aboutsummaryrefslogtreecommitdiffstats
path: root/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test
diff options
context:
space:
mode:
Diffstat (limited to 'roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test')
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAss.cnf76
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAssdh.cnf24
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAssdsa.cnf23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAssrsa.cnf24
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAtsa.cnf165
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/P1ss.cnf37
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/P2ss.cnf45
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/README149
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/README.external164
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/README.ssltest.md299
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/Sssdsa.cnf27
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/Sssrsa.cnf26
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/Uss.cnf41
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/aborttest.c16
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/afalgtest.c149
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_decode_test.c173
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_encode_test.c870
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_internal_test.c115
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_string_table_test.c77
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_time_test.c358
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asynciotest.c409
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asynctest.c291
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bad_dtls_test.c586
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bftest.c461
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bio_callback_test.c178
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bio_enc_test.c232
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bio_memleak_test.c240
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bioprinttest.c302
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bntest.c2804
-rwxr-xr-xroms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bntests.pl156
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/build.info602
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/casttest.c112
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt1-cert.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt1-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt2-cert.pem20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt2-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt3-cert.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt3-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc3-cert.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc3-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc4-cert.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc4-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc6-cert.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc6-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad.key27
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt1-cert.pem20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt1-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt10-cert.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt10-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt2-cert.pem20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt2-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt3-cert.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt3-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt4-cert.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt4-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt5-cert.pem20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt5-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt6-cert.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt6-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt7-cert.pem22
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt7-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt8-cert.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt8-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt9-cert.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt9-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badcn1-cert.pem20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badcn1-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca+anyEKU.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca+clientAuth.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca+serverAuth.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-anyEKU.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert-768.pem15
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert-768i.pem15
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert-md5-any.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert-md5.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert2.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-clientAuth.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-expired.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-key-768.pem13
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-key2.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-name2.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-nonbc.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-nonca.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-root2.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-serverAuth.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca+anyEKU.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca+clientAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca+serverAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca-anyEKU.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca-cert.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca-clientAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca-serverAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/client-ed25519-cert.pem32
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/client-ed25519-key.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/client-ed448-cert.pem15
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/client-ed448-key.pem4
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot+anyEKU.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot+clientAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot+serverAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot-anyEKU.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot-cert.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot-clientAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot-serverAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic.msb83
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic.pem25
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic.utf883
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic_crl.pem13
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic_crl.utf839
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/dhp2048.pem8
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee+clientAuth.pem20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee+serverAuth.pem20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert-768.pem16
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert-768i.pem16
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert-md5.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert2.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-client-chain.pem37
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-client.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-clientAuth.pem20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-ecdsa-client-chain.pem33
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-ecdsa-key.pem5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-ed25519.pem9
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-expired.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-key-768.pem13
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-name2.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-pathlen.pem17
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-pss-sha1-cert.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-pss-sha256-cert.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-serverAuth.pem20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs1-key.pem15
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs1.pem20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs1.sct12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs1_issuer.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs3.pem44
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs3.sct36
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs3_issuer.pem35
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/goodcn1-cert.pem22
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/goodcn1-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/interCA.key27
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/interCA.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/leaf.key27
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/leaf.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/many-constraints.pem292
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/many-names1.pem409
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/many-names2.pem251
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/many-names3.pem571
-rwxr-xr-xroms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/mkcert.sh291
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/nca+anyEKU.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/nca+serverAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca-cert.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca1-cert.pem20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca1-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca2-cert.pem20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca2-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca3-cert.pem20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca3-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/nroot+anyEKU.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/nroot+serverAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p256-server-cert.pem12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p256-server-key.pem5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p384-root-key.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p384-root.pem12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p384-server-cert.pem13
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p384-server-key.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pathlen.pem22
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc1-cert.pem20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc1-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc2-cert.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc2-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc5-cert.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc5-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root+anyEKU.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root+clientAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root+serverAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-anyEKU.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert-768.pem11
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert-md5.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert-rsa2.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert2.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-clientAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-ed25519.pem9
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-ed448-cert.pem10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-ed448-key.pem4
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-key-768.pem13
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-key2.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-name2.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-nonca.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-noserver.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-serverAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root2+clientAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root2+serverAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root2-serverAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/rootCA.key27
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/rootCA.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/rootcert.pem18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/rootkey.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/roots.pem42
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca+anyEKU.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca+clientAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca+serverAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca-anyEKU.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca-cert.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca-clientAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca-serverAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-cecdsa-cert.pem15
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-cecdsa-key.pem4
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-dsa-cert.pem31
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-dsa-key.pem15
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ecdsa-brainpoolP256r1-cert.pem16
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ecdsa-brainpoolP256r1-key.pem5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ecdsa-cert.pem15
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ecdsa-key.pem5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ed25519-cert.pem14
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ed25519-key.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ed448-cert.pem11
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ed448-key.pem4
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-pss-cert.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-pss-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-pss-restrict-cert.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-pss-restrict-key.pem29
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-trusted.pem20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/servercert.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/serverkey.pem28
-rwxr-xr-xroms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/setup.sh384
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/some-names1.pem211
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/some-names2.pem133
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/some-names3.pem293
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot+anyEKU.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot+clientAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot+serverAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot-anyEKU.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot-cert.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot-clientAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot-serverAuth.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/subinterCA-ss.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/subinterCA.key27
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/subinterCA.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/untrusted.pem42
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/wrongcert.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/wrongkey.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/x509-check-key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/x509-check.csr15
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/chacha_internal_test.c190
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cipher_overhead_test.c49
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cipherbytes_test.c149
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cipherlist_test.c258
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ciphername_test.c470
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/clienthellotest.c251
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cms-examples.pl365
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cmsapitest.c93
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/conf_include_test.c218
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/constant_time_test.c414
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/crltest.c393
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ct/log_list.conf38
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ct/tls1.sct12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ct_test.c535
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ctype_internal_test.c90
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/curve448_internal_test.c713
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad-cms.der1
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad-int-pad0.derbin0 -> 4 bytes
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad-int-padminus1.der1
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad_bio.derbin0 -> 7 bytes
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad_cert.derbin0 -> 1007 bytes
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad_generalname.der1
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/high_tag.derbin0 -> 6 bytes
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/int0.derbin0 -> 3 bytes
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/int1.der1
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/intminus1.der1
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i_test.c164
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/danetest.c430
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/danetest.in1878
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/danetest.pem14
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/destest.c721
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dhtest.c695
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbg_cavs_data.c170320
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbg_cavs_data.h82
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbg_cavs_test.c278
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbgtest.c1029
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbgtest.h579
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dsa_no_digest_size_test.c245
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dsatest.c141
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dtls_mtu_test.c196
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dtlstest.c349
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dtlsv1listentest.c357
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ec_internal_test.c205
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ecdsatest.c339
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ecdsatest.h10214
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ecstresstest.c149
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ectest.c2138
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/enginetest.c371
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/errtest.c39
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/evp_extra_test.c1213
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/evp_test.c2728
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/evp_test.h11
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/exdatatest.c265
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/exptest.c206
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/fatalerrtest.c94
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/generate_buildtest.pl34
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/generate_ssl_tests.pl141
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/gmdifftest.c65
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/gosttest.c91
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/handshake_helper.c1772
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/handshake_helper.h81
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/hmactest.c269
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ideatest.c119
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/igetest.c454
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/lhash_test.c228
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/md2test.c67
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/mdc2_internal_test.c71
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/mdc2test.c78
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/memleaktest.c56
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/modes_internal_test.c892
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D1.ors32
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D1_Cert_EE.pem38
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D1_Issuer_ICA.pem27
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D2.ors32
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D2_Cert_ICA.pem26
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D2_Issuer_Root.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D3.ors38
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D3_Cert_EE.pem31
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D3_Issuer_Root.pem83
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISDOSC_D1.ors32
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISDOSC_D2.ors32
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISDOSC_D3.ors38
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_D1_Issuer_ICA.pem27
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_D2_Issuer_Root.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_D3_Issuer_Root.pem41
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_ND1_Issuer_ICA.pem29
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_ND2_Issuer_Root.pem23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_ND3_Issuer_Root.pem25
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_D1.ors32
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_D2.ors32
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_D3.ors38
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_ND1.ors10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_ND2.ors10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_ND3.ors10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1.ors10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1_Cert_EE.pem36
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1_Cross_Root.pem25
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1_Issuer_ICA-Cross.pem58
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1_Issuer_ICA.pem29
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND2.ors10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND2_Cert_ICA.pem29
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND2_Issuer_Root.pem23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND3.ors10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND3_Cert_EE.pem34
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND3_Issuer_Root.pem25
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_D1.ors32
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_D2.ors32
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_D3.ors38
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_ND1.ors10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_ND2.ors10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_ND3.ors10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_D1.ors32
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_D2.ors32
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_D3.ors38
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_ND1.ors10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_ND2.ors10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_ND3.ors10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKDOSC_D1.ors32
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKDOSC_D2.ors32
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKDOSC_D3.ors38
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_D1_Issuer_ICA.pem27
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_D2_Issuer_Root.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_D3_Issuer_Root.pem41
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_ND1_Issuer_ICA.pem29
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_ND2_Issuer_Root.pem23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_ND3_Issuer_Root.pem25
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_D1.ors32
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_D2.ors32
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_D3.ors38
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_ND1.ors10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_ND2.ors10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_ND3.ors10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_D1_Issuer_ICA.pem27
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_D2_Issuer_Root.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_D3_Issuer_Root.pem41
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_ND1_Issuer_ICA.pem29
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_ND2_Issuer_Root.pem23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_ND3_Issuer_Root.pem25
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocspapitest.c225
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/async_bio.cc183
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/async_bio.h39
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/build.info6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/include/openssl/base.h111
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/ossl_config.json301
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/ossl_shim.cc1300
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/packeted_bio.cc299
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/packeted_bio.h35
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/test_config.cc195
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/test_config.h88
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/packettest.c494
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pbelutest.c50
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pemtest.c91
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkcs7-1.pem15
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkcs7.pem54
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkey_meth_kdf_test.c181
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkey_meth_test.c83
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkits-test.pl905
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/poly1305_internal_test.c1576
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rc2test.c68
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rc4test.c128
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rc5test.c234
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rdrand_sanitytest.c126
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/01-test_abort.t16
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/01-test_sanity.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/01-test_symbol_presence.t116
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/01-test_test.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_errstr.t121
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_internal_ctype.t17
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_lhash.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_ordinals.t58
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_stack.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_exdata.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_asn1.t16
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_chacha.t16
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_curve448.t19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_ec.t19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_mdc2.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_modes.t16
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_poly1305.t16
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_siphash.t16
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_sm2.t16
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_sm4.t17
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_ssl_cert_table.t16
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_x509.t16
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_ui.t13
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_asn1_decode.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_asn1_encode.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_asn1_string_table.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_bio_callback.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_bioprint.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_err.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem.t108
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/NOTES3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/beermug.pem30
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-1023line.pem13
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-1024line.pem13
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-1025line.pem13
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-255line.pem25
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-256line.pem25
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-257line.pem25
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-blankline.pem29
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-comment.pem29
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-earlypad.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-extrapad.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-infixwhitespace.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-junk.pem29
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-leadingwhitespace.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-longline.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-misalignedpad.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-onecolumn.pem1646
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-oneline.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-shortandlongline.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-shortline.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-threecolumn.pem550
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-trailingwhitespace.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/csr.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-1023line.pem9
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-1024line.pem8
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-1025line.pem8
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-255line.pem21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-256line.pem20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-257line.pem20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-blankline.pem24
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-comment.pem24
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-corruptedheader.pem23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-corruptiv.pem23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-earlypad.pem23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-extrapad.pem24
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-infixwhitespace.pem23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-junk.pem24
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-leadingwhitespace.pem23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-longline.pem23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-misalignedpad.pem24
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-onecolumn.pem1157
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-oneline.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-onelineheader.pem22
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-shortandlongline.pem23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-shortline.pem24
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-threecolumn.pem389
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-trailingwhitespace.pem23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa.pem23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsaparam.pem14
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/wellknown1
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_bf.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_cast.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_des.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_hmac.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_idea.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_md2.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_mdc2.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_rand.t17
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_rc2.t11
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_rc4.t11
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_rc5.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/06-test-rdrand.t22
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn.t27
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnexp.txt30
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bngcd.txt17179
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnmod.txt2801
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnmul.txt2678
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnshift.txt2427
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnsum.txt2626
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_exp.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_dh.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_dsa.t40
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ec.t38
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecdsa.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam.t34
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/invalid/c2pnb208w1-reducible.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/invalid/nistp256-nonprime.pem8
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/invalid/nistp256-offcurve.pem8
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/invalid/nistp256-wrongorder.pem8
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v1-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v2-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v2-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v3-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v3-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb176v1-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb176v1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb208w1-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb208w1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb272w1-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb272w1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb304w1-explicit.pem8
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb304w1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb368w1-explicit.pem9
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb368w1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v1-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v2-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v2-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v3-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v3-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v1-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v2-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v2-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v3-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v3-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb359v1-explicit.pem9
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb359v1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb431r1-explicit.pem9
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb431r1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v1-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v2-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v2-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v3-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v3-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v1-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v2-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v2-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v3-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v3-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime256v1-explicit.pem8
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime256v1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp112r1-explicit.pem5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp112r1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp112r2-explicit.pem5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp112r2-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp128r1-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp128r1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp128r2-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp128r2-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160k1-explicit.pem5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160k1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160r1-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160r1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160r2-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160r2-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp192k1-explicit.pem5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp192k1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp224k1-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp224k1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp224r1-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp224r1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp256k1-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp256k1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp384r1-explicit.pem10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp384r1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp521r1-explicit.pem12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp521r1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect113r1-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect113r1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect113r2-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect113r2-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect131r1-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect131r1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect131r2-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect131r2-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163k1-explicit.pem5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163k1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163r1-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163r1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163r2-explicit.pem5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163r2-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect193r1-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect193r1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect193r2-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect193r2-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect233k1-explicit.pem5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect233k1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect233r1-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect233r1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect239k1-explicit.pem5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect239k1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect283k1-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect283k1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect283r1-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect283r1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect409k1-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect409k1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect409r1-explicit.pem8
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect409r1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect571k1-explicit.pem8
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect571k1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect571r1-explicit.pem10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect571r1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls1-explicit.pem4
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls1-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls10-explicit.pem5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls10-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls11-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls11-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls12-explicit.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls12-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls3-explicit.pem5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls3-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls4-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls4-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls5-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls5-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls6-explicit.pem5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls6-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls7-explicit.pem6
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls7-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls8-explicit.pem4
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls8-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls9-explicit.pem5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls9-named.pem3
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_genrsa.t54
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_mp_rsa.t111
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_mp_rsa_data/plain_text4
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_out_option.t73
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_rsa.t47
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_rsapss.t49
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/20-test_enc.t70
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/20-test_enc_more.t61
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/20-test_passwd.t125
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_crl.t53
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_d2i.t93
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_pkcs7.t27
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_req.t151
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_sid.t28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_verify.t379
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_x509.t49
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_afalg.t23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_engine.t18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp.t26
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpcase.txt54
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpccmcavs.txt23927
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpciph.txt2606
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpdigest.txt546
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpencod.txt194
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpkdf.txt305
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpmac.txt643
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evppbe.txt256
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evppkey.txt18493
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evppkey_ecc.txt4771
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_extra.t18
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_pbelu.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_pkey_meth.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_pkey_meth_kdf.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/40-test_rehash.t98
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/60-test_x509_check_cert_pkey.t46
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/60-test_x509_dup_cert.t17
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/60-test_x509_store.t53
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/60-test_x509_time.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_asyncio.t21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_bad_dtls.t20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_clienthello.t21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_comp.t110
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_key_share.t388
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_packet.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_recordlen.t21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_renegotiation.t98
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_servername.t26
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslcbcpadding.t131
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslcertstatus.t67
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslextension.t260
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslmessages.t430
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslrecords.t699
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslsessiontick.t273
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslsigalgs.t491
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslsignature.t144
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslskewith0p.t66
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslversions.t185
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslvertol.t138
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13alerts.t56
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13cookie.t111
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13downgrade.t126
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13hrr.t93
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13kexmodes.t375
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13messages.t391
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13psk.t152
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tlsextms.t256
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_verify_extra.t19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_wpacket.t20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ca.t67
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cipherbytes.t26
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cipherlist.t31
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ciphername.t27
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms.t586
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms_data/bad_signtime_attr.cmsbin0 -> 1524 bytes
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms_data/ct_multiple_attr.cmsbin0 -> 1549 bytes
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms_data/no_ct_attr.cmsbin0 -> 1496 bytes
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms_data/no_md_attr.cmsbin0 -> 1473 bytes
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cmsapi.t21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ct.t17
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_dane.t24
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_dtls.t20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_dtls_mtu.t21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_dtlsv1listen.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ocsp.t219
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ocsp_data/cert.pem19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ocsp_data/key.pem28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_pkcs12.t68
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ssl_new.t160
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ssl_old.t590
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ssl_test_ctx.t19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_sslcorrupt.t20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_tsa.t207
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_x509aux.t27
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_asn1_time.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_async.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_bio_enc.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_bio_memleak.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_constant_time.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_fatalerr.t21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gmdiff.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost.t41
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/gost.conf13
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/server-cert2001.pem13
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/server-cert2012.pem13
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/server-key2001.pem4
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/server-key2012.pem4
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_ige.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes.t27
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/conf-includes/includes1.cnf36
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/conf-includes/includes2.cnf53
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes-broken.cnf5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes-eq-ws.cnf5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes-eq.cnf5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes-file.cnf5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes.cnf5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/vms-includes-file.cnf5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/vms-includes.cnf5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_memleak.t15
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_overhead.t20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_secmem.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_shlibload.t81
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_srp.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_sslapi.t28
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_sslapi_data/passwd.txt1
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_sslbuffers.t21
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_store.t494
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_store_data/ca.cnf56
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_store_data/user.cnf19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_sysdefault.t23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_threads.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_time_offset.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_tls13ccs.t22
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_tls13encryption.t20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_tls13secrets.t20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_v3name.t12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_boringssl.t30
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_krb5.t23
-rwxr-xr-xroms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_krb5_data/krb5.sh23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_pyca.t28
-rwxr-xr-xroms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_pyca_data/cryptography.sh64
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/99-test_ecstress.t23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/99-test_fuzz.t40
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/ocsp-response.derbin0 -> 1517 bytes
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/tconversion.pl105
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recordlentest.c197
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rsa_complex.c27
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rsa_mp_test.c230
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rsa_test.c369
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/run_tests.pl143
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sanitytest.c103
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/secmemtest.c183
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/serverinfo.pem16
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/serverinfo2.pem8
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/servername_test.c242
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/session.pem31
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/shibboleth.pfxbin0 -> 2519 bytes
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/shlibloadtest.c335
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/siphash_internal_test.c290
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sm2_internal_test.c377
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sm4_internal_test.c86
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smcont.txt1
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/ca.cnf66
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/mksmime-certs.sh85
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdh.pem33
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdsa1.pem47
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdsa2.pem47
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdsa3.pem47
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdsap.pem9
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smec1.pem22
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smec2.pem23
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smec3.pem22
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smroot.pem49
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smrsa1.pem49
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smrsa2.pem49
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smrsa3.pem49
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/srptest.c276
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/01-simple.conf78
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/01-simple.conf.in42
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/02-protocol-version.conf18822
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/02-protocol-version.conf.in19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/03-custom_verify.conf238
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/03-custom_verify.conf.in145
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/04-client_auth.conf1132
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/04-client_auth.conf.in196
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/05-sni.conf308
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/05-sni.conf.in169
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/06-sni-ticket.conf767
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/06-sni-ticket.conf.in101
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/07-dtls-protocol-version.conf1820
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/07-dtls-protocol-version.conf.in19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/08-npn.conf816
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/08-npn.conf.in443
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/09-alpn.conf619
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/09-alpn.conf.in325
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/10-resumption.conf2439
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/10-resumption.conf.in19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/11-dtls_resumption.conf620
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/11-dtls_resumption.conf.in19
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/12-ct.conf191
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/12-ct.conf.in119
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/13-fragmentation.conf577
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/13-fragmentation.conf.in268
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/14-curves.conf874
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/14-curves.conf.in47
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/15-certstatus.conf62
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/15-certstatus.conf.in45
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/16-certstatus.conf0
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/16-dtls-certstatus.conf62
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/16-dtls-certstatus.conf.in78
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/17-renegotiate.conf432
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/17-renegotiate.conf.in249
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/18-dtls-renegotiate.conf285
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/18-dtls-renegotiate.conf.in192
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/19-mac-then-encrypt.conf162
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/19-mac-then-encrypt.conf.in102
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/20-cert-select.conf1816
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/20-cert-select.conf.in933
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/21-key-update.conf112
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/21-key-update.conf.in62
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/22-compression.conf216
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/22-compression.conf.in127
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/23-srp.conf148
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/23-srp.conf.in107
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/24-padding.conf34
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/24-padding.conf.in25
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/25-cipher.conf244
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/25-cipher.conf.in156
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/26-tls13_client_auth.conf488
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/26-tls13_client_auth.conf.in302
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/27-ticket-appdata.conf146
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/27-ticket-appdata.conf.in99
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/28-seclevel.conf150
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/28-seclevel.conf.in83
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/29-dtls-sctp-label-bug.conf116
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/29-dtls-sctp-label-bug.conf.in67
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/protocol_version.pm315
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/ssltests_base.pm30
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_cert_table_internal_test.c83
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_ctx_test.c76
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test.c530
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test.tmpl126
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test_ctx.c895
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test_ctx.h253
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test_ctx_test.c262
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test_ctx_test.conf97
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sslapitest.c6602
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sslbuffertest.c183
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sslcorrupttest.c267
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssltest_old.c3087
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssltestlib.c944
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssltestlib.h56
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/stack_test.c380
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sysdefault.cnf15
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sysdefaulttest.c50
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/test.cnf88
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/test_test.c557
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testcrl.pem16
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testdsa.pem12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testdsapub.pem12
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testec-p256.pem5
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testecpub-p256.pem4
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testp7.pem46
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testreq2.pem7
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testrsa.pem9
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testrsapub.pem4
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testsid.pem38
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil.h468
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/basic_output.c58
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/cb.c16
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/driver.c317
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/format_output.c529
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/main.c106
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/output.h32
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/output_helpers.c34
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/random.c40
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/stanza.c158
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/tap_bio.c154
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/test_cleanup.c14
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/tests.c448
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/testutil_init.c15
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/tu_local.h51
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testx509.pem10
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/threadstest.c193
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/time_offset_test.c113
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/tls13ccstest.c498
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/tls13encryptiontest.c428
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/tls13secretstest.c400
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/uitest.c96
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/v3-cert1.pem16
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/v3-cert2.pem16
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/v3ext.c47
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/v3nametest.c366
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/verify_extra_test.c190
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/versions.c20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/wpackettest.c380
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509_check_cert_pkey_test.c122
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509_dup_cert_test.c47
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509_internal_test.c64
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509_time_test.c493
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509aux.c175
953 files changed, 388939 insertions, 0 deletions
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAss.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAss.cnf
new file mode 100644
index 000000000..b20a24276
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAss.cnf
@@ -0,0 +1,76 @@
+#
+# SSLeay example configuration file.
+# This is mostly being used for generation of certificate requests.
+#
+
+RANDFILE = ./.rnd
+
+####################################################################
+[ req ]
+default_bits = 2048
+default_keyfile = keySS.pem
+distinguished_name = req_distinguished_name
+encrypt_rsa_key = no
+default_md = sha1
+
+[ req_distinguished_name ]
+countryName = Country Name (2 letter code)
+countryName_default = AU
+countryName_value = AU
+
+organizationName = Organization Name (eg, company)
+organizationName_value = Dodgy Brothers
+
+commonName = Common Name (eg, YOUR name)
+commonName_value = Dodgy CA
+
+####################################################################
+[ ca ]
+default_ca = CA_default # The default ca section
+
+####################################################################
+[ CA_default ]
+
+dir = ./demoCA # Where everything is kept
+certs = $dir/certs # Where the issued certs are kept
+crl_dir = $dir/crl # Where the issued crl are kept
+database = $dir/index.txt # database index file.
+#unique_subject = no # Set to 'no' to allow creation of
+ # several certificates with same subject.
+new_certs_dir = $dir/newcerts # default place for new certs.
+
+certificate = $dir/cacert.pem # The CA certificate
+serial = $dir/serial # The current serial number
+crl = $dir/crl.pem # The current CRL
+private_key = $dir/private/cakey.pem# The private key
+RANDFILE = $dir/private/.rand # private random number file
+
+x509_extensions = v3_ca # The extensions to add to the cert
+
+name_opt = ca_default # Subject Name options
+cert_opt = ca_default # Certificate field options
+
+default_days = 365 # how long to certify for
+default_crl_days= 30 # how long before next CRL
+default_md = md5 # which md to use.
+preserve = no # keep passed DN ordering
+
+policy = policy_anything
+
+[ policy_anything ]
+countryName = optional
+stateOrProvinceName = optional
+localityName = optional
+organizationName = optional
+organizationalUnitName = optional
+commonName = supplied
+emailAddress = optional
+
+
+
+[ v3_ca ]
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid:always,issuer:always
+basicConstraints = critical,CA:true,pathlen:1
+keyUsage = cRLSign, keyCertSign
+issuerAltName=issuer:copy
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAssdh.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAssdh.cnf
new file mode 100644
index 000000000..4e0a90867
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAssdh.cnf
@@ -0,0 +1,24 @@
+#
+# SSLeay example configuration file.
+# This is mostly being used for generation of certificate requests.
+#
+# hacked by iang to do DH certs - CA
+
+RANDFILE = ./.rnd
+
+####################################################################
+[ req ]
+distinguished_name = req_distinguished_name
+encrypt_rsa_key = no
+
+[ req_distinguished_name ]
+countryName = Country Name (2 letter code)
+countryName_default = CU
+countryName_value = CU
+
+organizationName = Organization Name (eg, company)
+organizationName_value = La Junta de la Revolucion
+
+commonName = Common Name (eg, YOUR name)
+commonName_value = Junta
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAssdsa.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAssdsa.cnf
new file mode 100644
index 000000000..a6b4d1810
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAssdsa.cnf
@@ -0,0 +1,23 @@
+#
+# SSLeay example configuration file.
+# This is mostly being used for generation of certificate requests.
+#
+# hacked by iang to do DSA certs - CA
+
+RANDFILE = ./.rnd
+
+####################################################################
+[ req ]
+distinguished_name = req_distinguished_name
+encrypt_rsa_key = no
+
+[ req_distinguished_name ]
+countryName = Country Name (2 letter code)
+countryName_default = ES
+countryName_value = ES
+
+organizationName = Organization Name (eg, company)
+organizationName_value = Hermanos Locos
+
+commonName = Common Name (eg, YOUR name)
+commonName_value = Hermanos Locos CA
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAssrsa.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAssrsa.cnf
new file mode 100644
index 000000000..eb24a6dfc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAssrsa.cnf
@@ -0,0 +1,24 @@
+#
+# SSLeay example configuration file.
+# This is mostly being used for generation of certificate requests.
+#
+# create RSA certs - CA
+
+RANDFILE = ./.rnd
+
+####################################################################
+[ req ]
+distinguished_name = req_distinguished_name
+encrypt_key = no
+
+[ req_distinguished_name ]
+countryName = Country Name (2 letter code)
+countryName_default = ES
+countryName_value = ES
+
+organizationName = Organization Name (eg, company)
+organizationName_value = Hermanos Locos
+
+commonName = Common Name (eg, YOUR name)
+commonName_value = Hermanos Locos CA
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAtsa.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAtsa.cnf
new file mode 100644
index 000000000..d1642879b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/CAtsa.cnf
@@ -0,0 +1,165 @@
+
+#
+# This config is used by the Time Stamp Authority tests.
+#
+
+RANDFILE = ./.rnd
+
+# Extra OBJECT IDENTIFIER info:
+oid_section = new_oids
+
+TSDNSECT = ts_cert_dn
+INDEX = 1
+
+[ new_oids ]
+
+# Policies used by the TSA tests.
+tsa_policy1 = 1.2.3.4.1
+tsa_policy2 = 1.2.3.4.5.6
+tsa_policy3 = 1.2.3.4.5.7
+
+#----------------------------------------------------------------------
+[ ca ]
+default_ca = CA_default # The default ca section
+
+[ CA_default ]
+
+dir = ./demoCA
+certs = $dir/certs # Where the issued certs are kept
+database = $dir/index.txt # database index file.
+new_certs_dir = $dir/newcerts # default place for new certs.
+
+certificate = $dir/cacert.pem # The CA certificate
+serial = $dir/serial # The current serial number
+private_key = $dir/private/cakey.pem# The private key
+RANDFILE = $dir/private/.rand # private random number file
+
+default_days = 365 # how long to certify for
+default_md = sha256 # which md to use.
+preserve = no # keep passed DN ordering
+
+policy = policy_match
+
+# For the CA policy
+[ policy_match ]
+countryName = supplied
+stateOrProvinceName = supplied
+organizationName = supplied
+organizationalUnitName = optional
+commonName = supplied
+emailAddress = optional
+
+#----------------------------------------------------------------------
+[ req ]
+default_bits = 2048
+default_md = sha1
+distinguished_name = $ENV::TSDNSECT
+encrypt_rsa_key = no
+prompt = no
+# attributes = req_attributes
+x509_extensions = v3_ca # The extensions to add to the self signed cert
+
+string_mask = nombstr
+
+[ ts_ca_dn ]
+countryName = HU
+stateOrProvinceName = Budapest
+localityName = Budapest
+organizationName = Gov-CA Ltd.
+commonName = ca1
+
+[ ts_cert_dn ]
+countryName = HU
+stateOrProvinceName = Budapest
+localityName = Buda
+organizationName = Hun-TSA Ltd.
+commonName = tsa$ENV::INDEX
+
+[ tsa_cert ]
+
+# TSA server cert is not a CA cert.
+basicConstraints=CA:FALSE
+
+# The following key usage flags are needed for TSA server certificates.
+keyUsage = nonRepudiation, digitalSignature
+extendedKeyUsage = critical,timeStamping
+
+# PKIX recommendations harmless if included in all certificates.
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid,issuer:always
+
+[ non_tsa_cert ]
+
+# This is not a CA cert and not a TSA cert, either (timeStamping usage missing)
+basicConstraints=CA:FALSE
+
+# The following key usage flags are needed for TSA server certificates.
+keyUsage = nonRepudiation, digitalSignature
+# timeStamping is not supported by this certificate
+# extendedKeyUsage = critical,timeStamping
+
+# PKIX recommendations harmless if included in all certificates.
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid,issuer:always
+
+[ v3_req ]
+
+# Extensions to add to a certificate request
+basicConstraints = CA:FALSE
+keyUsage = nonRepudiation, digitalSignature
+
+[ v3_ca ]
+
+# Extensions for a typical CA
+
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid:always,issuer:always
+basicConstraints = critical,CA:true
+keyUsage = cRLSign, keyCertSign
+
+#----------------------------------------------------------------------
+[ tsa ]
+
+default_tsa = tsa_config1 # the default TSA section
+
+[ tsa_config1 ]
+
+# These are used by the TSA reply generation only.
+dir = . # TSA root directory
+serial = $dir/tsa_serial # The current serial number (mandatory)
+signer_cert = $dir/tsa_cert1.pem # The TSA signing certificate
+ # (optional)
+certs = $dir/tsaca.pem # Certificate chain to include in reply
+ # (optional)
+signer_key = $dir/tsa_key1.pem # The TSA private key (optional)
+signer_digest = sha256 # Signing digest to use. (Optional)
+default_policy = tsa_policy1 # Policy if request did not specify it
+ # (optional)
+other_policies = tsa_policy2, tsa_policy3 # acceptable policies (optional)
+digests = sha1, sha256, sha384, sha512 # Acceptable message digests (mandatory)
+accuracy = secs:1, millisecs:500, microsecs:100 # (optional)
+ordering = yes # Is ordering defined for timestamps?
+ # (optional, default: no)
+tsa_name = yes # Must the TSA name be included in the reply?
+ # (optional, default: no)
+ess_cert_id_chain = yes # Must the ESS cert id chain be included?
+ # (optional, default: no)
+ess_cert_id_alg = sha256 # algorithm to compute certificate
+ # identifier (optional, default: sha1)
+
+[ tsa_config2 ]
+
+# This configuration uses a certificate which doesn't have timeStamping usage.
+# These are used by the TSA reply generation only.
+dir = . # TSA root directory
+serial = $dir/tsa_serial # The current serial number (mandatory)
+signer_cert = $dir/tsa_cert2.pem # The TSA signing certificate
+ # (optional)
+certs = $dir/demoCA/cacert.pem# Certificate chain to include in reply
+ # (optional)
+signer_key = $dir/tsa_key2.pem # The TSA private key (optional)
+signer_digest = sha256 # Signing digest to use. (Optional)
+default_policy = tsa_policy1 # Policy if request did not specify it
+ # (optional)
+other_policies = tsa_policy2, tsa_policy3 # acceptable policies (optional)
+digests = sha1, sha256, sha384, sha512 # Acceptable message digests (mandatory)
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/P1ss.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/P1ss.cnf
new file mode 100644
index 000000000..e6118dc81
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/P1ss.cnf
@@ -0,0 +1,37 @@
+#
+# SSLeay example configuration file.
+# This is mostly being used for generation of certificate requests.
+#
+
+RANDFILE = ./.rnd
+
+####################################################################
+[ req ]
+default_bits = 2048
+default_keyfile = keySS.pem
+distinguished_name = req_distinguished_name
+encrypt_rsa_key = no
+default_md = sha256
+
+[ req_distinguished_name ]
+countryName = Country Name (2 letter code)
+countryName_default = AU
+countryName_value = AU
+
+organizationName = Organization Name (eg, company)
+organizationName_value = Dodgy Brothers
+
+0.commonName = Common Name (eg, YOUR name)
+0.commonName_value = Brother 1
+
+1.commonName = Common Name (eg, YOUR name)
+1.commonName_value = Brother 2
+
+2.commonName = Common Name (eg, YOUR name)
+2.commonName_value = Proxy 1
+
+[ v3_proxy ]
+basicConstraints=CA:FALSE
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid,issuer:always
+proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:1,policy:text:AB
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/P2ss.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/P2ss.cnf
new file mode 100644
index 000000000..d530e31f9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/P2ss.cnf
@@ -0,0 +1,45 @@
+#
+# SSLeay example configuration file.
+# This is mostly being used for generation of certificate requests.
+#
+
+RANDFILE = ./.rnd
+
+####################################################################
+[ req ]
+default_bits = 2048
+default_keyfile = keySS.pem
+distinguished_name = req_distinguished_name
+encrypt_rsa_key = no
+default_md = sha256
+
+[ req_distinguished_name ]
+countryName = Country Name (2 letter code)
+countryName_default = AU
+countryName_value = AU
+
+organizationName = Organization Name (eg, company)
+organizationName_value = Dodgy Brothers
+
+0.commonName = Common Name (eg, YOUR name)
+0.commonName_value = Brother 1
+
+1.commonName = Common Name (eg, YOUR name)
+1.commonName_value = Brother 2
+
+2.commonName = Common Name (eg, YOUR name)
+2.commonName_value = Proxy 1
+
+3.commonName = Common Name (eg, YOUR name)
+3.commonName_value = Proxy 2
+
+[ v3_proxy ]
+basicConstraints=CA:FALSE
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid,issuer:always
+proxyCertInfo=critical,@proxy_ext
+
+[ proxy_ext ]
+language=id-ppl-anyLanguage
+pathlen=0
+policy=text:BC
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/README b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/README
new file mode 100644
index 000000000..ebe778460
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/README
@@ -0,0 +1,149 @@
+How to add recipes
+==================
+
+For any test that you want to perform, you write a script located in
+test/recipes/, named {nn}-test_{name}.t, where {nn} is a two digit number and
+{name} is a unique name of your choice.
+
+Please note that if a test involves a new testing executable, you will need to
+do some additions in test/Makefile. More on this later.
+
+
+Naming conventions
+=================
+
+A test executable is named test/{name}test.c
+
+A test recipe is named test/recipes/{nn}-test_{name}.t, where {nn} is a two
+digit number and {name} is a unique name of your choice.
+
+The number {nn} is (somewhat loosely) grouped as follows:
+
+00-04 sanity, internal and essential API tests
+05-09 individual symmetric cipher algorithms
+10-14 math (bignum)
+15-19 individual asymmetric cipher algorithms
+20-24 openssl commands (some otherwise not tested)
+25-29 certificate forms, generation and verification
+30-35 engine and evp
+60-79 APIs
+ 70 PACKET layer
+80-89 "larger" protocols (CA, CMS, OCSP, SSL, TSA)
+90-98 misc
+99 most time consuming tests [such as test_fuzz]
+
+
+A recipe that just runs a test executable
+=========================================
+
+A script that just runs a program looks like this:
+
+ #! /usr/bin/perl
+
+ use OpenSSL::Test::Simple;
+
+ simple_test("test_{name}", "{name}test", "{name}");
+
+{name} is the unique name you have chosen for your test.
+
+The second argument to `simple_test' is the test executable, and `simple_test'
+expects it to be located in test/
+
+For documentation on OpenSSL::Test::Simple, do
+`perldoc util/perl/OpenSSL/Test/Simple.pm'.
+
+
+A recipe that runs a more complex test
+======================================
+
+For more complex tests, you will need to read up on Test::More and
+OpenSSL::Test. Test::More is normally preinstalled, do `man Test::More' for
+documentation. For OpenSSL::Test, do `perldoc util/perl/OpenSSL/Test.pm'.
+
+A script to start from could be this:
+
+ #! /usr/bin/perl
+
+ use strict;
+ use warnings;
+ use OpenSSL::Test;
+
+ setup("test_{name}");
+
+ plan tests => 2; # The number of tests being performed
+
+ ok(test1, "test1");
+ ok(test2, "test1");
+
+ sub test1
+ {
+ # test feature 1
+ }
+
+ sub test2
+ {
+ # test feature 2
+ }
+
+
+Changes to test/build.info
+==========================
+
+Whenever a new test involves a new test executable you need to do the
+following (at all times, replace {NAME} and {name} with the name of your
+test):
+
+* add {name} to the list of programs under PROGRAMS_NO_INST
+
+* create a three line description of how to build the test, you will have
+to modify the include paths and source files if you don't want to use the
+basic test framework:
+
+ SOURCE[{name}]={name}.c
+ INCLUDE[{name}]=.. ../include
+ DEPEND[{name}]=../libcrypto libtestutil.a
+
+Generic form of C test executables
+==================================
+
+ #include "testutil.h"
+
+ static int my_test(void)
+ {
+ int testresult = 0; /* Assume the test will fail */
+ int observed;
+
+ observed = function(); /* Call the code under test */
+ if (!TEST_int_eq(observed, 2)) /* Check the result is correct */
+ goto end; /* Exit on failure - optional */
+
+ testresult = 1; /* Mark the test case a success */
+ end:
+ cleanup(); /* Any cleanup you require */
+ return testresult;
+ }
+
+ int setup_tests(void)
+ {
+ ADD_TEST(my_test); /* Add each test separately */
+ return 1; /* Indicate success */
+ }
+
+You should use the TEST_xxx macros provided by testutil.h to test all failure
+conditions. These macros produce an error message in a standard format if the
+condition is not met (and nothing if the condition is met). Additional
+information can be presented with the TEST_info macro that takes a printf
+format string and arguments. TEST_error is useful for complicated conditions,
+it also takes a printf format string and argument. In all cases the TEST_xxx
+macros are guaranteed to evaluate their arguments exactly once. This means
+that expressions with side effects are allowed as parameters. Thus,
+
+ if (!TEST_ptr(ptr = OPENSSL_malloc(..)))
+
+works fine and can be used in place of:
+
+ ptr = OPENSSL_malloc(..);
+ if (!TEST_ptr(ptr))
+
+The former produces a more meaningful message on failure than the latter.
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/README.external b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/README.external
new file mode 100644
index 000000000..2f5423cbc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/README.external
@@ -0,0 +1,164 @@
+Running external test suites with OpenSSL
+=========================================
+
+It is possible to integrate external test suites into OpenSSL's "make test".
+This capability is considered a developer option and does not work on all
+platforms.
+
+
+
+The BoringSSL test suite
+========================
+
+In order to run the BoringSSL tests with OpenSSL, first checkout the BoringSSL
+source code into an appropriate directory. This can be done in two ways:
+
+1) Separately from the OpenSSL checkout using:
+
+ $ git clone https://boringssl.googlesource.com/boringssl boringssl
+
+ The BoringSSL tests are only confirmed to work at a specific commit in the
+ BoringSSL repository. Later commits may or may not pass the test suite:
+
+ $ cd boringssl
+ $ git checkout 490469f850e
+
+2) Using the already configured submodule settings in OpenSSL:
+
+ $ git submodule update --init
+
+Configure the OpenSSL source code to enable the external tests:
+
+$ cd ../openssl
+$ ./config enable-ssl3 enable-ssl3-method enable-weak-ssl-ciphers \
+ enable-external-tests
+
+Note that using other config options than those given above may cause the tests
+to fail.
+
+Run the OpenSSL tests by providing the path to the BoringSSL test runner in the
+BORING_RUNNER_DIR environment variable:
+
+$ BORING_RUNNER_DIR=/path/to/boringssl/ssl/test/runner make test
+
+Note that the test suite may change directory while running so the path provided
+should be absolute and not relative to the current working directory.
+
+To see more detailed output you can run just the BoringSSL tests with the
+verbose option:
+
+$ VERBOSE=1 BORING_RUNNER_DIR=/path/to/boringssl/ssl/test/runner make \
+ TESTS="test_external_boringssl" test
+
+
+Test failures and suppressions
+------------------------------
+
+A large number of the BoringSSL tests are known to fail. A test could fail
+because of many possible reasons. For example:
+
+- A bug in OpenSSL
+- Different interpretations of standards
+- Assumptions about the way BoringSSL works that do not apply to OpenSSL
+- The test uses APIs added to BoringSSL that are not present in OpenSSL
+- etc
+
+In order to provide a "clean" baseline run with all the tests passing a config
+file has been provided that suppresses the running of tests that are known to
+fail. These suppressions are held in the file "test/ossl_shim/ossl_config.json"
+within the OpenSSL source code.
+
+The community is encouraged to contribute patches which reduce the number of
+suppressions that are currently present.
+
+
+Python PYCA/Cryptography test suite
+===================================
+
+This python test suite runs cryptographic tests with a local OpenSSL build as
+the implementation.
+
+First checkout the PYCA/Cryptography module into ./pyca-cryptography using:
+
+$ git submodule update --init
+
+Then configure/build OpenSSL compatible with the python module:
+
+$ ./config shared enable-external-tests
+$ make
+
+The tests will run in a python virtual environment which requires virtualenv
+to be installed.
+
+$ make test VERBOSE=1 TESTS=test_external_pyca
+
+Test failures and suppressions
+------------------------------
+
+Some tests target older (<=1.0.2) versions so will not run. Other tests target
+other crypto implementations so are not relevant. Currently no tests fail.
+
+
+krb5 test suite
+===============
+
+Much like the PYCA/Cryptography test suite, this builds and runs the krb5
+tests against the local OpenSSL build.
+
+You will need a git checkout of krb5 at the top level:
+
+$ git clone https://github.com/krb5/krb5
+
+krb5's master has to pass this same CI, but a known-good version is
+krb5-1.15.1-final if you want to be sure.
+
+$ cd krb5
+$ git checkout krb5-1.15.1-final
+$ cd ..
+
+OpenSSL must be built with external tests enabled:
+
+$ ./config enable-external-tests
+$ make
+
+krb5's tests will then be run as part of the rest of the suite, or can be
+explicitly run (with more debugging):
+
+$ VERBOSE=1 make TESTS=test_external_krb5 test
+
+Test-failures suppressions
+--------------------------
+
+krb5 will automatically adapt its test suite to account for the configuration
+of your system. Certain tests may require more installed packages to run. No
+tests are expected to fail.
+
+
+Updating test suites
+====================
+
+To update the commit for any of the above test suites:
+
+- Make sure the submodules are cloned locally:
+
+ $ git submodule update --init --recursive
+
+- Enter subdirectory and pull from the repository (use a specific branch/tag if required):
+
+ $ cd <submodule-dir>
+ $ git pull origin master
+
+- Go to root directory, there should be a new git status:
+
+ $ cd ../
+ $ git status
+ ...
+ # modified: <submodule-dir> (new commits)
+ ...
+
+- Add/commit/push the update
+
+ git add <submodule-dir>
+ git commit -m "Updated <submodule> to latest commit"
+ git push
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/README.ssltest.md b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/README.ssltest.md
new file mode 100644
index 000000000..3b4bb564f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/README.ssltest.md
@@ -0,0 +1,299 @@
+# SSL tests
+
+SSL testcases are configured in the `ssl-tests` directory.
+
+Each `ssl_*.conf.in` file contains a number of test configurations. These files
+are used to generate testcases in the OpenSSL CONF format.
+
+The precise test output can be dependent on the library configuration. The test
+harness generates the output files on the fly.
+
+However, for verification, we also include checked-in configuration outputs
+corresponding to the default configuration. These testcases live in
+`test/ssl-tests/*.conf` files.
+
+For more details, see `ssl-tests/01-simple.conf.in` for an example.
+
+## Configuring the test
+
+First, give your test a name. The names do not have to be unique.
+
+An example test input looks like this:
+
+```
+ {
+ name => "test-default",
+ server => { "CipherString" => "DEFAULT" },
+ client => { "CipherString" => "DEFAULT" },
+ test => { "ExpectedResult" => "Success" },
+ }
+```
+
+The test section supports the following options
+
+### Test mode
+
+* Method - the method to test. One of DTLS or TLS.
+
+* HandshakeMode - which handshake flavour to test:
+ - Simple - plain handshake (default)
+ - Resume - test resumption
+ - RenegotiateServer - test server initiated renegotiation
+ - RenegotiateClient - test client initiated renegotiation
+
+When HandshakeMode is Resume or Renegotiate, the original handshake is expected
+to succeed. All configured test expectations are verified against the second
+handshake.
+
+* ApplicationData - amount of application data bytes to send (integer, defaults
+ to 256 bytes). Applies to both client and server. Application data is sent in
+ 64kB chunks (but limited by MaxFragmentSize and available parallelization, see
+ below).
+
+* MaxFragmentSize - maximum send fragment size (integer, defaults to 512 in
+ tests - see `SSL_CTX_set_max_send_fragment` for documentation). Applies to
+ both client and server. Lowering the fragment size will split handshake and
+ application data up between more `SSL_write` calls, thus allowing to exercise
+ different code paths. In particular, if the buffer size (64kB) is at least
+ four times as large as the maximum fragment, interleaved multi-buffer crypto
+ implementations may be used on some platforms.
+
+### Test expectations
+
+* ExpectedResult - expected handshake outcome. One of
+ - Success - handshake success
+ - ServerFail - serverside handshake failure
+ - ClientFail - clientside handshake failure
+ - InternalError - some other error
+
+* ExpectedClientAlert, ExpectedServerAlert - expected alert. See
+ `ssl_test_ctx.c` for known values. Note: the expected alert is currently
+ matched against the _last_ received alert (i.e., a fatal alert or a
+ `close_notify`). Warning alert expectations are not yet supported. (A warning
+ alert will not be correctly matched, if followed by a `close_notify` or
+ another alert.)
+
+* ExpectedProtocol - expected negotiated protocol. One of
+ SSLv3, TLSv1, TLSv1.1, TLSv1.2.
+
+* SessionTicketExpected - whether or not a session ticket is expected
+ - Ignore - do not check for a session ticket (default)
+ - Yes - a session ticket is expected
+ - No - a session ticket is not expected
+
+* SessionIdExpected - whether or not a session id is expected
+ - Ignore - do not check for a session id (default)
+ - Yes - a session id is expected
+ - No - a session id is not expected
+
+* ResumptionExpected - whether or not resumption is expected (Resume mode only)
+ - Yes - resumed handshake
+ - No - full handshake (default)
+
+* ExpectedNPNProtocol, ExpectedALPNProtocol - NPN and ALPN expectations.
+
+* ExpectedTmpKeyType - the expected algorithm or curve of server temp key
+
+* ExpectedServerCertType, ExpectedClientCertType - the expected algorithm or
+ curve of server or client certificate
+
+* ExpectedServerSignHash, ExpectedClientSignHash - the expected
+ signing hash used by server or client certificate
+
+* ExpectedServerSignType, ExpectedClientSignType - the expected
+ signature type used by server or client when signing messages
+
+* ExpectedClientCANames - for client auth list of CA names the server must
+ send. If this is "empty" the list is expected to be empty otherwise it
+ is a file of certificates whose subject names form the list.
+
+* ExpectedServerCANames - list of CA names the client must send, TLS 1.3 only.
+ If this is "empty" the list is expected to be empty otherwise it is a file
+ of certificates whose subject names form the list.
+
+## Configuring the client and server
+
+The client and server configurations can be any valid `SSL_CTX`
+configurations. For details, see the manpages for `SSL_CONF_cmd`.
+
+Give your configurations as a dictionary of CONF commands, e.g.
+
+```
+server => {
+ "CipherString" => "DEFAULT",
+ "MinProtocol" => "TLSv1",
+}
+```
+
+The following sections may optionally be defined:
+
+* server2 - this section configures a secondary context that is selected via the
+ ServerName test option. This context is used whenever a ServerNameCallback is
+ specified. If the server2 section is not present, then the configuration
+ matches server.
+* resume_server - this section configures the client to resume its session
+ against a different server. This context is used whenever HandshakeMode is
+ Resume. If the resume_server section is not present, then the configuration
+ matches server.
+* resume_client - this section configures the client to resume its session with
+ a different configuration. In practice this may occur when, for example,
+ upgraded clients reuse sessions persisted on disk. This context is used
+ whenever HandshakeMode is Resume. If the resume_client section is not present,
+ then the configuration matches client.
+
+### Configuring callbacks and additional options
+
+Additional handshake settings can be configured in the `extra` section of each
+client and server:
+
+```
+client => {
+ "CipherString" => "DEFAULT",
+ extra => {
+ "ServerName" => "server2",
+ }
+}
+```
+
+#### Supported client-side options
+
+* ClientVerifyCallback - the client's custom certificate verify callback.
+ Used to test callback behaviour. One of
+ - None - no custom callback (default)
+ - AcceptAll - accepts all certificates.
+ - RejectAll - rejects all certificates.
+
+* ServerName - the server the client should attempt to connect to. One of
+ - None - do not use SNI (default)
+ - server1 - the initial context
+ - server2 - the secondary context
+ - invalid - an unknown context
+
+* CTValidation - Certificate Transparency validation strategy. One of
+ - None - no validation (default)
+ - Permissive - SSL_CT_VALIDATION_PERMISSIVE
+ - Strict - SSL_CT_VALIDATION_STRICT
+
+#### Supported server-side options
+
+* ServerNameCallback - the SNI switching callback to use
+ - None - no callback (default)
+ - IgnoreMismatch - continue the handshake on SNI mismatch
+ - RejectMismatch - abort the handshake on SNI mismatch
+
+* BrokenSessionTicket - a special test case where the session ticket callback
+ does not initialize crypto.
+ - No (default)
+ - Yes
+
+#### Mutually supported options
+
+* NPNProtocols, ALPNProtocols - NPN and ALPN settings. Server and client
+ protocols can be specified as a comma-separated list, and a callback with the
+ recommended behaviour will be installed automatically.
+
+* SRPUser, SRPPassword - SRP settings. For client, this is the SRP user to
+ connect as; for server, this is a known SRP user.
+
+### Default server and client configurations
+
+The default server certificate and CA files are added to the configurations
+automatically. Server certificate verification is requested by default.
+
+You can override these options by redefining them:
+
+```
+client => {
+ "VerifyCAFile" => "/path/to/custom/file"
+}
+```
+
+or by deleting them
+
+```
+client => {
+ "VerifyCAFile" => undef
+}
+```
+
+## Adding a test to the test harness
+
+1. Add a new test configuration to `test/ssl-tests`, following the examples of
+ existing `*.conf.in` files (for example, `01-simple.conf.in`).
+
+2. Generate the generated `*.conf` test input file. You can do so by running
+ `generate_ssl_tests.pl`:
+
+```
+$ ./config
+$ cd test
+$ TOP=.. perl -I ../util/perl/ generate_ssl_tests.pl ssl-tests/my.conf.in \
+ > ssl-tests/my.conf
+```
+
+where `my.conf.in` is your test input file.
+
+For example, to generate the test cases in `ssl-tests/01-simple.conf.in`, do
+
+```
+$ TOP=.. perl -I ../util/perl/ generate_ssl_tests.pl ssl-tests/01-simple.conf.in > ssl-tests/01-simple.conf
+```
+
+Alternatively (hackish but simple), you can comment out
+
+```
+unlink glob $tmp_file;
+```
+
+in `test/recipes/80-test_ssl_new.t` and run
+
+```
+$ make TESTS=test_ssl_new test
+```
+
+This will save the generated output in a `*.tmp` file in the build directory.
+
+3. Update the number of tests planned in `test/recipes/80-test_ssl_new.t`. If
+ the test suite has any skip conditions, update those too (see
+ `test/recipes/80-test_ssl_new.t` for details).
+
+## Running the tests with the test harness
+
+```
+HARNESS_VERBOSE=yes make TESTS=test_ssl_new test
+```
+
+## Running a test manually
+
+These steps are only needed during development. End users should run `make test`
+or follow the instructions above to run the SSL test suite.
+
+To run an SSL test manually from the command line, the `TEST_CERTS_DIR`
+environment variable to point to the location of the certs. E.g., from the root
+OpenSSL directory, do
+
+```
+$ CTLOG_FILE=test/ct/log_list.conf TEST_CERTS_DIR=test/certs test/ssl_test \
+ test/ssl-tests/01-simple.conf
+```
+
+or for shared builds
+
+```
+$ CTLOG_FILE=test/ct/log_list.conf TEST_CERTS_DIR=test/certs \
+ util/shlib_wrap.sh test/ssl_test test/ssl-tests/01-simple.conf
+```
+
+Note that the test expectations sometimes depend on the Configure settings. For
+example, the negotiated protocol depends on the set of available (enabled)
+protocols: a build with `enable-ssl3` has different test expectations than a
+build with `no-ssl3`.
+
+The Perl test harness automatically generates expected outputs, so users who
+just run `make test` do not need any extra steps.
+
+However, when running a test manually, keep in mind that the repository version
+of the generated `test/ssl-tests/*.conf` correspond to expected outputs in with
+the default Configure options. To run `ssl_test` manually from the command line
+in a build with a different configuration, you may need to generate the right
+`*.conf` file from the `*.conf.in` input first.
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/Sssdsa.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/Sssdsa.cnf
new file mode 100644
index 000000000..8e170a28e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/Sssdsa.cnf
@@ -0,0 +1,27 @@
+#
+# SSLeay example configuration file.
+# This is mostly being used for generation of certificate requests.
+#
+# hacked by iang to do DSA certs - Server
+
+RANDFILE = ./.rnd
+
+####################################################################
+[ req ]
+distinguished_name = req_distinguished_name
+encrypt_rsa_key = no
+
+[ req_distinguished_name ]
+countryName = Country Name (2 letter code)
+countryName_default = ES
+countryName_value = ES
+
+organizationName = Organization Name (eg, company)
+organizationName_value = Tortilleras S.A.
+
+0.commonName = Common Name (eg, YOUR name)
+0.commonName_value = Torti
+
+1.commonName = Common Name (eg, YOUR name)
+1.commonName_value = Gordita
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/Sssrsa.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/Sssrsa.cnf
new file mode 100644
index 000000000..8c79a03fc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/Sssrsa.cnf
@@ -0,0 +1,26 @@
+#
+# SSLeay example configuration file.
+# This is mostly being used for generation of certificate requests.
+#
+# create RSA certs - Server
+
+RANDFILE = ./.rnd
+
+####################################################################
+[ req ]
+distinguished_name = req_distinguished_name
+encrypt_key = no
+
+[ req_distinguished_name ]
+countryName = Country Name (2 letter code)
+countryName_default = ES
+countryName_value = ES
+
+organizationName = Organization Name (eg, company)
+organizationName_value = Tortilleras S.A.
+
+0.commonName = Common Name (eg, YOUR name)
+0.commonName_value = Torti
+
+1.commonName = Common Name (eg, YOUR name)
+1.commonName_value = Gordita
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/Uss.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/Uss.cnf
new file mode 100644
index 000000000..f655e7448
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/Uss.cnf
@@ -0,0 +1,41 @@
+#
+# SSLeay example configuration file.
+# This is mostly being used for generation of certificate requests.
+#
+
+RANDFILE = ./.rnd
+CN2 = Brother 2
+
+####################################################################
+[ req ]
+default_bits = 2048
+default_keyfile = keySS.pem
+distinguished_name = req_distinguished_name
+encrypt_rsa_key = no
+default_md = sha256
+prompt = no
+
+[ req_distinguished_name ]
+countryName = AU
+organizationName = Dodgy Brothers
+0.commonName = Brother 1
+1.commonName = $ENV::CN2
+
+[ v3_ee ]
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid,issuer:always
+basicConstraints = CA:false
+keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+
+[ v3_ee_dsa ]
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid:always
+basicConstraints = CA:false
+keyUsage = nonRepudiation, digitalSignature
+
+[ v3_ee_ec ]
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid:always
+basicConstraints = CA:false
+keyUsage = nonRepudiation, digitalSignature, keyAgreement
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/aborttest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/aborttest.c
new file mode 100644
index 000000000..ba5055edf
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/aborttest.c
@@ -0,0 +1,16 @@
+/*
+ * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <openssl/crypto.h>
+
+int main(int argc, char **argv)
+{
+ OPENSSL_die("Voluntary abort", __FILE__, __LINE__);
+ return 0;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/afalgtest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/afalgtest.c
new file mode 100644
index 000000000..adb2977f3
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/afalgtest.c
@@ -0,0 +1,149 @@
+/*
+ * Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <openssl/opensslconf.h>
+
+#include <string.h>
+#include <openssl/engine.h>
+#include <openssl/evp.h>
+#include <openssl/rand.h>
+#include "testutil.h"
+
+/* Use a buffer size which is not aligned to block size */
+#define BUFFER_SIZE 17
+
+#ifndef OPENSSL_NO_ENGINE
+static ENGINE *e;
+#endif
+
+
+#ifndef OPENSSL_NO_AFALGENG
+# include <linux/version.h>
+# define K_MAJ 4
+# define K_MIN1 1
+# define K_MIN2 0
+# if LINUX_VERSION_CODE < KERNEL_VERSION(K_MAJ, K_MIN1, K_MIN2)
+/*
+ * If we get here then it looks like there is a mismatch between the linux
+ * headers and the actual kernel version, so we have tried to compile with
+ * afalg support, but then skipped it in e_afalg.c. As far as this test is
+ * concerned we behave as if we had been configured without support
+ */
+# define OPENSSL_NO_AFALGENG
+# endif
+#endif
+
+#ifndef OPENSSL_NO_AFALGENG
+static int test_afalg_aes_cbc(int keysize_idx)
+{
+ EVP_CIPHER_CTX *ctx;
+ const EVP_CIPHER *cipher;
+ unsigned char key[] = "\x06\xa9\x21\x40\x36\xb8\xa1\x5b"
+ "\x51\x2e\x03\xd5\x34\x12\x00\x06"
+ "\x06\xa9\x21\x40\x36\xb8\xa1\x5b"
+ "\x51\x2e\x03\xd5\x34\x12\x00\x06";
+ unsigned char iv[] = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30"
+ "\xb4\x22\xda\x80\x2c\x9f\xac\x41";
+ /* input = "Single block msg\n" 17Bytes*/
+ unsigned char in[BUFFER_SIZE] = "\x53\x69\x6e\x67\x6c\x65\x20\x62"
+ "\x6c\x6f\x63\x6b\x20\x6d\x73\x67\x0a";
+ unsigned char ebuf[BUFFER_SIZE + 32];
+ unsigned char dbuf[BUFFER_SIZE + 32];
+ unsigned char encresult_128[] = "\xe3\x53\x77\x9c\x10\x79\xae\xb8"
+ "\x27\x08\x94\x2d\xbe\x77\x18\x1a\x2d";
+ unsigned char encresult_192[] = "\xf7\xe4\x26\xd1\xd5\x4f\x8f\x39"
+ "\xb1\x9e\xe0\xdf\x61\xb9\xc2\x55\xeb";
+ unsigned char encresult_256[] = "\xa0\x76\x85\xfd\xc1\x65\x71\x9d"
+ "\xc7\xe9\x13\x6e\xae\x55\x49\xb4\x13";
+ unsigned char *enc_result = NULL;
+
+ int encl, encf, decl, decf;
+ int ret = 0;
+
+ switch (keysize_idx) {
+ case 0:
+ cipher = EVP_aes_128_cbc();
+ enc_result = &encresult_128[0];
+ break;
+ case 1:
+ cipher = EVP_aes_192_cbc();
+ enc_result = &encresult_192[0];
+ break;
+ case 2:
+ cipher = EVP_aes_256_cbc();
+ enc_result = &encresult_256[0];
+ break;
+ default:
+ cipher = NULL;
+ }
+ if (!TEST_ptr(ctx = EVP_CIPHER_CTX_new()))
+ return 0;
+
+ if (!TEST_true(EVP_CipherInit_ex(ctx, cipher, e, key, iv, 1))
+ || !TEST_true(EVP_CipherUpdate(ctx, ebuf, &encl, in, BUFFER_SIZE))
+ || !TEST_true(EVP_CipherFinal_ex(ctx, ebuf+encl, &encf)))
+ goto end;
+ encl += encf;
+
+ if (!TEST_mem_eq(enc_result, BUFFER_SIZE, ebuf, BUFFER_SIZE))
+ goto end;
+
+ if (!TEST_true(EVP_CIPHER_CTX_reset(ctx))
+ || !TEST_true(EVP_CipherInit_ex(ctx, cipher, e, key, iv, 0))
+ || !TEST_true(EVP_CipherUpdate(ctx, dbuf, &decl, ebuf, encl))
+ || !TEST_true(EVP_CipherFinal_ex(ctx, dbuf+decl, &decf)))
+ goto end;
+ decl += decf;
+
+ if (!TEST_int_eq(decl, BUFFER_SIZE)
+ || !TEST_mem_eq(dbuf, BUFFER_SIZE, in, BUFFER_SIZE))
+ goto end;
+
+ ret = 1;
+
+ end:
+ EVP_CIPHER_CTX_free(ctx);
+ return ret;
+}
+#endif
+
+#ifndef OPENSSL_NO_ENGINE
+int global_init(void)
+{
+ ENGINE_load_builtin_engines();
+# ifndef OPENSSL_NO_STATIC_ENGINE
+ OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_AFALG, NULL);
+# endif
+ return 1;
+}
+#endif
+
+int setup_tests(void)
+{
+#ifndef OPENSSL_NO_ENGINE
+ if ((e = ENGINE_by_id("afalg")) == NULL) {
+ /* Probably a platform env issue, not a test failure. */
+ TEST_info("Can't load AFALG engine");
+ } else {
+# ifndef OPENSSL_NO_AFALGENG
+ ADD_ALL_TESTS(test_afalg_aes_cbc, 3);
+# endif
+ }
+#endif
+
+ return 1;
+}
+
+#ifndef OPENSSL_NO_ENGINE
+void cleanup_tests(void)
+{
+ ENGINE_free(e);
+}
+#endif
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_decode_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_decode_test.c
new file mode 100644
index 000000000..369023d5f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_decode_test.c
@@ -0,0 +1,173 @@
+/*
+ * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/rand.h>
+#include <openssl/asn1t.h>
+#include "internal/numbers.h"
+#include "testutil.h"
+
+#ifdef __GNUC__
+# pragma GCC diagnostic ignored "-Wunused-function"
+#endif
+#ifdef __clang__
+# pragma clang diagnostic ignored "-Wunused-function"
+#endif
+
+/* Badly coded ASN.1 INTEGER zero wrapped in a sequence */
+static unsigned char t_invalid_zero[] = {
+ 0x30, 0x02, /* SEQUENCE tag + length */
+ 0x02, 0x00 /* INTEGER tag + length */
+};
+
+#if OPENSSL_API_COMPAT < 0x10200000L
+/* LONG case ************************************************************* */
+
+typedef struct {
+ long test_long;
+} ASN1_LONG_DATA;
+
+ASN1_SEQUENCE(ASN1_LONG_DATA) = {
+ ASN1_EMBED(ASN1_LONG_DATA, test_long, LONG),
+} static_ASN1_SEQUENCE_END(ASN1_LONG_DATA)
+
+IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_LONG_DATA)
+IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(ASN1_LONG_DATA)
+
+static int test_long(void)
+{
+ const unsigned char *p = t_invalid_zero;
+ ASN1_LONG_DATA *dectst =
+ d2i_ASN1_LONG_DATA(NULL, &p, sizeof(t_invalid_zero));
+
+ if (dectst == NULL)
+ return 0; /* Fail */
+
+ ASN1_LONG_DATA_free(dectst);
+ return 1;
+}
+#endif
+
+/* INT32 case ************************************************************* */
+
+typedef struct {
+ int32_t test_int32;
+} ASN1_INT32_DATA;
+
+ASN1_SEQUENCE(ASN1_INT32_DATA) = {
+ ASN1_EMBED(ASN1_INT32_DATA, test_int32, INT32),
+} static_ASN1_SEQUENCE_END(ASN1_INT32_DATA)
+
+IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_INT32_DATA)
+IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(ASN1_INT32_DATA)
+
+static int test_int32(void)
+{
+ const unsigned char *p = t_invalid_zero;
+ ASN1_INT32_DATA *dectst =
+ d2i_ASN1_INT32_DATA(NULL, &p, sizeof(t_invalid_zero));
+
+ if (dectst == NULL)
+ return 0; /* Fail */
+
+ ASN1_INT32_DATA_free(dectst);
+ return 1;
+}
+
+/* UINT32 case ************************************************************* */
+
+typedef struct {
+ uint32_t test_uint32;
+} ASN1_UINT32_DATA;
+
+ASN1_SEQUENCE(ASN1_UINT32_DATA) = {
+ ASN1_EMBED(ASN1_UINT32_DATA, test_uint32, UINT32),
+} static_ASN1_SEQUENCE_END(ASN1_UINT32_DATA)
+
+IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_UINT32_DATA)
+IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(ASN1_UINT32_DATA)
+
+static int test_uint32(void)
+{
+ const unsigned char *p = t_invalid_zero;
+ ASN1_UINT32_DATA *dectst =
+ d2i_ASN1_UINT32_DATA(NULL, &p, sizeof(t_invalid_zero));
+
+ if (dectst == NULL)
+ return 0; /* Fail */
+
+ ASN1_UINT32_DATA_free(dectst);
+ return 1;
+}
+
+/* INT64 case ************************************************************* */
+
+typedef struct {
+ int64_t test_int64;
+} ASN1_INT64_DATA;
+
+ASN1_SEQUENCE(ASN1_INT64_DATA) = {
+ ASN1_EMBED(ASN1_INT64_DATA, test_int64, INT64),
+} static_ASN1_SEQUENCE_END(ASN1_INT64_DATA)
+
+IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_INT64_DATA)
+IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(ASN1_INT64_DATA)
+
+static int test_int64(void)
+{
+ const unsigned char *p = t_invalid_zero;
+ ASN1_INT64_DATA *dectst =
+ d2i_ASN1_INT64_DATA(NULL, &p, sizeof(t_invalid_zero));
+
+ if (dectst == NULL)
+ return 0; /* Fail */
+
+ ASN1_INT64_DATA_free(dectst);
+ return 1;
+}
+
+/* UINT64 case ************************************************************* */
+
+typedef struct {
+ uint64_t test_uint64;
+} ASN1_UINT64_DATA;
+
+ASN1_SEQUENCE(ASN1_UINT64_DATA) = {
+ ASN1_EMBED(ASN1_UINT64_DATA, test_uint64, UINT64),
+} static_ASN1_SEQUENCE_END(ASN1_UINT64_DATA)
+
+IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_UINT64_DATA)
+IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(ASN1_UINT64_DATA)
+
+static int test_uint64(void)
+{
+ const unsigned char *p = t_invalid_zero;
+ ASN1_UINT64_DATA *dectst =
+ d2i_ASN1_UINT64_DATA(NULL, &p, sizeof(t_invalid_zero));
+
+ if (dectst == NULL)
+ return 0; /* Fail */
+
+ ASN1_UINT64_DATA_free(dectst);
+ return 1;
+}
+
+int setup_tests(void)
+{
+#if OPENSSL_API_COMPAT < 0x10200000L
+ ADD_TEST(test_long);
+#endif
+ ADD_TEST(test_int32);
+ ADD_TEST(test_uint32);
+ ADD_TEST(test_int64);
+ ADD_TEST(test_uint64);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_encode_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_encode_test.c
new file mode 100644
index 000000000..ed920a4d6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_encode_test.c
@@ -0,0 +1,870 @@
+/*
+ * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/rand.h>
+#include <openssl/asn1t.h>
+#include "internal/numbers.h"
+#include "testutil.h"
+
+#ifdef __GNUC__
+# pragma GCC diagnostic ignored "-Wunused-function"
+# pragma GCC diagnostic ignored "-Wformat"
+#endif
+#ifdef __clang__
+# pragma clang diagnostic ignored "-Wunused-function"
+# pragma clang diagnostic ignored "-Wformat"
+#endif
+
+/***** Custom test data ******************************************************/
+
+/*
+ * We conduct tests with these arrays for every type we try out.
+ * You will find the expected results together with the test structures
+ * for each type, further down.
+ */
+
+static unsigned char t_zero[] = {
+ 0x00
+};
+static unsigned char t_one[] = {
+ 0x01
+};
+static unsigned char t_one_neg[] = {
+ 0xff
+};
+static unsigned char t_minus_256[] = {
+ 0xff, 0x00
+};
+static unsigned char t_longundef[] = {
+ 0x7f, 0xff, 0xff, 0xff
+};
+static unsigned char t_9bytes_1[] = {
+ 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+};
+static unsigned char t_8bytes_1[] = {
+ 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+static unsigned char t_8bytes_2[] = {
+ 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+};
+static unsigned char t_8bytes_3_pad[] = {
+ 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+};
+static unsigned char t_8bytes_4_neg[] = {
+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+static unsigned char t_8bytes_5_negpad[] = {
+ 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+/* 32-bit long */
+static unsigned char t_5bytes_1[] = {
+ 0x01, 0xff, 0xff, 0xff, 0xff
+};
+static unsigned char t_4bytes_1[] = {
+ 0x00, 0x80, 0x00, 0x00, 0x00
+};
+/* We make the last byte 0xfe to avoid a clash with ASN1_LONG_UNDEF */
+static unsigned char t_4bytes_2[] = {
+ 0x7f, 0xff, 0xff, 0xfe
+};
+static unsigned char t_4bytes_3_pad[] = {
+ 0x00, 0x7f, 0xff, 0xff, 0xfe
+};
+static unsigned char t_4bytes_4_neg[] = {
+ 0x80, 0x00, 0x00, 0x00
+};
+static unsigned char t_4bytes_5_negpad[] = {
+ 0xff, 0x80, 0x00, 0x00, 0x00
+};
+
+typedef struct {
+ unsigned char *bytes1;
+ size_t nbytes1;
+ unsigned char *bytes2;
+ size_t nbytes2;
+} TEST_CUSTOM_DATA;
+#define CUSTOM_DATA(v) \
+ { v, sizeof(v), t_one, sizeof(t_one) }, \
+ { t_one, sizeof(t_one), v, sizeof(v) }
+
+static TEST_CUSTOM_DATA test_custom_data[] = {
+ CUSTOM_DATA(t_zero),
+ CUSTOM_DATA(t_longundef),
+ CUSTOM_DATA(t_one),
+ CUSTOM_DATA(t_one_neg),
+ CUSTOM_DATA(t_minus_256),
+ CUSTOM_DATA(t_9bytes_1),
+ CUSTOM_DATA(t_8bytes_1),
+ CUSTOM_DATA(t_8bytes_2),
+ CUSTOM_DATA(t_8bytes_3_pad),
+ CUSTOM_DATA(t_8bytes_4_neg),
+ CUSTOM_DATA(t_8bytes_5_negpad),
+ CUSTOM_DATA(t_5bytes_1),
+ CUSTOM_DATA(t_4bytes_1),
+ CUSTOM_DATA(t_4bytes_2),
+ CUSTOM_DATA(t_4bytes_3_pad),
+ CUSTOM_DATA(t_4bytes_4_neg),
+ CUSTOM_DATA(t_4bytes_5_negpad),
+};
+
+
+/***** Type specific test data ***********************************************/
+
+/*
+ * First, a few utility things that all type specific data can use, or in some
+ * cases, MUST use.
+ */
+
+/*
+ * For easy creation of arrays of expected data. These macros correspond to
+ * the uses of CUSTOM_DATA above.
+ */
+#define CUSTOM_EXPECTED_SUCCESS(num, znum) \
+ { 0xff, num, 1 }, \
+ { 0xff, 1, znum }
+#define CUSTOM_EXPECTED_FAILURE \
+ { 0, 0, 0 }, \
+ { 0, 0, 0 }
+
+/*
+ * A structure to collect all test information in. There MUST be one instance
+ * of this for each test
+ */
+typedef int i2d_fn(void *a, unsigned char **pp);
+typedef void *d2i_fn(void **a, unsigned char **pp, long length);
+typedef void ifree_fn(void *a);
+typedef struct {
+ ASN1_ITEM_EXP *asn1_type;
+ const char *name;
+ int skip; /* 1 if this package should be skipped */
+
+ /* An array of structures to compare decoded custom data with */
+ void *encode_expectations;
+ size_t encode_expectations_size;
+ size_t encode_expectations_elem_size;
+
+ /*
+ * An array of structures that are encoded into a DER blob, which is
+ * then decoded, and result gets compared with the original.
+ */
+ void *encdec_data;
+ size_t encdec_data_size;
+ size_t encdec_data_elem_size;
+
+ /* The i2d function to use with this type */
+ i2d_fn *i2d;
+ /* The d2i function to use with this type */
+ d2i_fn *d2i;
+ /* Function to free a decoded structure */
+ ifree_fn *ifree;
+} TEST_PACKAGE;
+
+/* To facilitate the creation of an encdec_data array */
+#define ENCDEC_DATA(num, znum) \
+ { 0xff, num, 1 }, { 0xff, 1, znum }
+#define ENCDEC_ARRAY(max, zmax, min, zmin) \
+ ENCDEC_DATA(max,zmax), \
+ ENCDEC_DATA(min,zmin), \
+ ENCDEC_DATA(1, 1), \
+ ENCDEC_DATA(-1, -1), \
+ ENCDEC_DATA(0, ASN1_LONG_UNDEF)
+
+#if OPENSSL_API_COMPAT < 0x10200000L
+/***** LONG ******************************************************************/
+
+typedef struct {
+ /* If decoding is expected to succeed, set this to 1, otherwise 0 */
+ ASN1_BOOLEAN success;
+ long test_long;
+ long test_zlong;
+} ASN1_LONG_DATA;
+
+ASN1_SEQUENCE(ASN1_LONG_DATA) = {
+ ASN1_SIMPLE(ASN1_LONG_DATA, success, ASN1_FBOOLEAN),
+ ASN1_SIMPLE(ASN1_LONG_DATA, test_long, LONG),
+ ASN1_EXP_OPT(ASN1_LONG_DATA, test_zlong, ZLONG, 0)
+} static_ASN1_SEQUENCE_END(ASN1_LONG_DATA)
+
+IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_LONG_DATA)
+IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(ASN1_LONG_DATA)
+
+static ASN1_LONG_DATA long_expected_32bit[] = {
+ /* The following should fail on the second because it's the default */
+ { 0xff, 0, 1 }, { 0, 0, 0 }, /* t_zero */
+ { 0, 0, 0 }, { 0xff, 1, 0x7fffffff }, /* t_longundef */
+ CUSTOM_EXPECTED_SUCCESS(1, 1), /* t_one */
+ CUSTOM_EXPECTED_SUCCESS(-1, -1), /* t_one_neg */
+ CUSTOM_EXPECTED_SUCCESS(-256, -256), /* t_minus_256 */
+ CUSTOM_EXPECTED_FAILURE, /* t_9bytes_1 */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_1 */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_2 */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_3_pad */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_4_neg */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_5_negpad */
+ CUSTOM_EXPECTED_FAILURE, /* t_5bytes_1 */
+ CUSTOM_EXPECTED_FAILURE, /* t_4bytes_1 (too large positive) */
+ CUSTOM_EXPECTED_SUCCESS(INT32_MAX - 1, INT32_MAX -1), /* t_4bytes_2 */
+ CUSTOM_EXPECTED_FAILURE, /* t_4bytes_3_pad (illegal padding) */
+ CUSTOM_EXPECTED_SUCCESS(INT32_MIN, INT32_MIN), /* t_4bytes_4_neg */
+ CUSTOM_EXPECTED_FAILURE, /* t_4bytes_5_negpad (illegal padding) */
+};
+static ASN1_LONG_DATA long_encdec_data_32bit[] = {
+ ENCDEC_ARRAY(LONG_MAX - 1, LONG_MAX, LONG_MIN, LONG_MIN),
+ /* Check that default numbers fail */
+ { 0, ASN1_LONG_UNDEF, 1 }, { 0, 1, 0 }
+};
+
+static TEST_PACKAGE long_test_package_32bit = {
+ ASN1_ITEM_ref(ASN1_LONG_DATA), "LONG", sizeof(long) != 4,
+ long_expected_32bit,
+ sizeof(long_expected_32bit), sizeof(long_expected_32bit[0]),
+ long_encdec_data_32bit,
+ sizeof(long_encdec_data_32bit), sizeof(long_encdec_data_32bit[0]),
+ (i2d_fn *)i2d_ASN1_LONG_DATA, (d2i_fn *)d2i_ASN1_LONG_DATA,
+ (ifree_fn *)ASN1_LONG_DATA_free
+};
+
+static ASN1_LONG_DATA long_expected_64bit[] = {
+ /* The following should fail on the second because it's the default */
+ { 0xff, 0, 1 }, { 0, 0, 0 }, /* t_zero */
+ { 0, 0, 0 }, { 0xff, 1, 0x7fffffff }, /* t_longundef */
+ CUSTOM_EXPECTED_SUCCESS(1, 1), /* t_one */
+ CUSTOM_EXPECTED_SUCCESS(-1, -1), /* t_one_neg */
+ CUSTOM_EXPECTED_SUCCESS(-256, -256), /* t_minus_256 */
+ CUSTOM_EXPECTED_FAILURE, /* t_9bytes_1 */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_1 */
+ CUSTOM_EXPECTED_SUCCESS(LONG_MAX, LONG_MAX), /* t_8bytes_2 */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_3_pad (illegal padding) */
+ CUSTOM_EXPECTED_SUCCESS(LONG_MIN, LONG_MIN), /* t_8bytes_4_neg */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_5_negpad (illegal padding) */
+ CUSTOM_EXPECTED_SUCCESS((long)0x1ffffffff, (long)0x1ffffffff), /* t_5bytes_1 */
+ CUSTOM_EXPECTED_SUCCESS((long)0x80000000, (long)0x80000000), /* t_4bytes_1 */
+ CUSTOM_EXPECTED_SUCCESS(INT32_MAX - 1, INT32_MAX -1), /* t_4bytes_2 */
+ CUSTOM_EXPECTED_FAILURE, /* t_4bytes_3_pad (illegal padding) */
+ CUSTOM_EXPECTED_SUCCESS(INT32_MIN, INT32_MIN), /* t_4bytes_4_neg */
+ CUSTOM_EXPECTED_FAILURE, /* t_4bytes_5_negpad (illegal padding) */
+};
+static ASN1_LONG_DATA long_encdec_data_64bit[] = {
+ ENCDEC_ARRAY(LONG_MAX, LONG_MAX, LONG_MIN, LONG_MIN),
+ /* Check that default numbers fail */
+ { 0, ASN1_LONG_UNDEF, 1 }, { 0, 1, 0 }
+};
+
+static TEST_PACKAGE long_test_package_64bit = {
+ ASN1_ITEM_ref(ASN1_LONG_DATA), "LONG", sizeof(long) != 8,
+ long_expected_64bit,
+ sizeof(long_expected_64bit), sizeof(long_expected_64bit[0]),
+ long_encdec_data_64bit,
+ sizeof(long_encdec_data_64bit), sizeof(long_encdec_data_64bit[0]),
+ (i2d_fn *)i2d_ASN1_LONG_DATA, (d2i_fn *)d2i_ASN1_LONG_DATA,
+ (ifree_fn *)ASN1_LONG_DATA_free
+};
+#endif
+
+/***** INT32 *****************************************************************/
+
+typedef struct {
+ ASN1_BOOLEAN success;
+ int32_t test_int32;
+ int32_t test_zint32;
+} ASN1_INT32_DATA;
+
+ASN1_SEQUENCE(ASN1_INT32_DATA) = {
+ ASN1_SIMPLE(ASN1_INT32_DATA, success, ASN1_FBOOLEAN),
+ ASN1_EMBED(ASN1_INT32_DATA, test_int32, INT32),
+ ASN1_EXP_OPT_EMBED(ASN1_INT32_DATA, test_zint32, ZINT32, 0)
+} static_ASN1_SEQUENCE_END(ASN1_INT32_DATA)
+
+IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_INT32_DATA)
+IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(ASN1_INT32_DATA)
+
+static ASN1_INT32_DATA int32_expected[] = {
+ CUSTOM_EXPECTED_SUCCESS(0, 0), /* t_zero */
+ CUSTOM_EXPECTED_SUCCESS(ASN1_LONG_UNDEF, ASN1_LONG_UNDEF), /* t_zero */
+ CUSTOM_EXPECTED_SUCCESS(1, 1), /* t_one */
+ CUSTOM_EXPECTED_SUCCESS(-1, -1), /* t_one_neg */
+ CUSTOM_EXPECTED_SUCCESS(-256, -256), /* t_minus_256 */
+ CUSTOM_EXPECTED_FAILURE, /* t_9bytes_1 */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_1 */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_2 */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_3_pad */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_4_neg */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_5_negpad */
+ CUSTOM_EXPECTED_FAILURE, /* t_5bytes_1 */
+ CUSTOM_EXPECTED_FAILURE, /* t_4bytes_1 (too large positive) */
+ CUSTOM_EXPECTED_SUCCESS(INT32_MAX - 1, INT32_MAX -1), /* t_4bytes_2 */
+ CUSTOM_EXPECTED_FAILURE, /* t_4bytes_3_pad (illegal padding) */
+ CUSTOM_EXPECTED_SUCCESS(INT32_MIN, INT32_MIN), /* t_4bytes_4_neg */
+ CUSTOM_EXPECTED_FAILURE, /* t_4bytes_5_negpad (illegal padding) */
+};
+static ASN1_INT32_DATA int32_encdec_data[] = {
+ ENCDEC_ARRAY(INT32_MAX, INT32_MAX, INT32_MIN, INT32_MIN),
+};
+
+static TEST_PACKAGE int32_test_package = {
+ ASN1_ITEM_ref(ASN1_INT32_DATA), "INT32", 0,
+ int32_expected, sizeof(int32_expected), sizeof(int32_expected[0]),
+ int32_encdec_data, sizeof(int32_encdec_data), sizeof(int32_encdec_data[0]),
+ (i2d_fn *)i2d_ASN1_INT32_DATA, (d2i_fn *)d2i_ASN1_INT32_DATA,
+ (ifree_fn *)ASN1_INT32_DATA_free
+};
+
+/***** UINT32 ****************************************************************/
+
+typedef struct {
+ ASN1_BOOLEAN success;
+ uint32_t test_uint32;
+ uint32_t test_zuint32;
+} ASN1_UINT32_DATA;
+
+ASN1_SEQUENCE(ASN1_UINT32_DATA) = {
+ ASN1_SIMPLE(ASN1_UINT32_DATA, success, ASN1_FBOOLEAN),
+ ASN1_EMBED(ASN1_UINT32_DATA, test_uint32, UINT32),
+ ASN1_EXP_OPT_EMBED(ASN1_UINT32_DATA, test_zuint32, ZUINT32, 0)
+} static_ASN1_SEQUENCE_END(ASN1_UINT32_DATA)
+
+IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_UINT32_DATA)
+IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(ASN1_UINT32_DATA)
+
+static ASN1_UINT32_DATA uint32_expected[] = {
+ CUSTOM_EXPECTED_SUCCESS(0, 0), /* t_zero */
+ CUSTOM_EXPECTED_SUCCESS(ASN1_LONG_UNDEF, ASN1_LONG_UNDEF), /* t_zero */
+ CUSTOM_EXPECTED_SUCCESS(1, 1), /* t_one */
+ CUSTOM_EXPECTED_FAILURE, /* t_one_neg (illegal negative value) */
+ CUSTOM_EXPECTED_FAILURE, /* t_minus_256 (illegal negative value) */
+ CUSTOM_EXPECTED_FAILURE, /* t_9bytes_1 */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_1 */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_2 */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_3_pad */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_4_neg */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_5_negpad */
+ CUSTOM_EXPECTED_FAILURE, /* t_5bytes_1 */
+ CUSTOM_EXPECTED_SUCCESS(0x80000000, 0x80000000), /* t_4bytes_1 */
+ CUSTOM_EXPECTED_SUCCESS(INT32_MAX - 1, INT32_MAX -1), /* t_4bytes_2 */
+ CUSTOM_EXPECTED_FAILURE, /* t_4bytes_3_pad (illegal padding) */
+ CUSTOM_EXPECTED_FAILURE, /* t_4bytes_4_neg (illegal negative value) */
+ CUSTOM_EXPECTED_FAILURE, /* t_4bytes_5_negpad (illegal padding) */
+};
+static ASN1_UINT32_DATA uint32_encdec_data[] = {
+ ENCDEC_ARRAY(UINT32_MAX, UINT32_MAX, 0, 0),
+};
+
+static TEST_PACKAGE uint32_test_package = {
+ ASN1_ITEM_ref(ASN1_UINT32_DATA), "UINT32", 0,
+ uint32_expected, sizeof(uint32_expected), sizeof(uint32_expected[0]),
+ uint32_encdec_data, sizeof(uint32_encdec_data), sizeof(uint32_encdec_data[0]),
+ (i2d_fn *)i2d_ASN1_UINT32_DATA, (d2i_fn *)d2i_ASN1_UINT32_DATA,
+ (ifree_fn *)ASN1_UINT32_DATA_free
+};
+
+/***** INT64 *****************************************************************/
+
+typedef struct {
+ ASN1_BOOLEAN success;
+ int64_t test_int64;
+ int64_t test_zint64;
+} ASN1_INT64_DATA;
+
+ASN1_SEQUENCE(ASN1_INT64_DATA) = {
+ ASN1_SIMPLE(ASN1_INT64_DATA, success, ASN1_FBOOLEAN),
+ ASN1_EMBED(ASN1_INT64_DATA, test_int64, INT64),
+ ASN1_EXP_OPT_EMBED(ASN1_INT64_DATA, test_zint64, ZINT64, 0)
+} static_ASN1_SEQUENCE_END(ASN1_INT64_DATA)
+
+IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_INT64_DATA)
+IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(ASN1_INT64_DATA)
+
+static ASN1_INT64_DATA int64_expected[] = {
+ CUSTOM_EXPECTED_SUCCESS(0, 0), /* t_zero */
+ CUSTOM_EXPECTED_SUCCESS(ASN1_LONG_UNDEF, ASN1_LONG_UNDEF), /* t_zero */
+ CUSTOM_EXPECTED_SUCCESS(1, 1), /* t_one */
+ CUSTOM_EXPECTED_SUCCESS(-1, -1), /* t_one_neg */
+ CUSTOM_EXPECTED_SUCCESS(-256, -256), /* t_minus_256 */
+ CUSTOM_EXPECTED_FAILURE, /* t_9bytes_1 */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_1 (too large positive) */
+ CUSTOM_EXPECTED_SUCCESS(INT64_MAX, INT64_MAX), /* t_8bytes_2 */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_3_pad (illegal padding) */
+ CUSTOM_EXPECTED_SUCCESS(INT64_MIN, INT64_MIN), /* t_8bytes_4_neg */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_5_negpad (illegal padding) */
+ CUSTOM_EXPECTED_SUCCESS(0x1ffffffffULL, 0x1ffffffffULL), /* t_5bytes_1 */
+ CUSTOM_EXPECTED_SUCCESS(0x80000000, 0x80000000), /* t_4bytes_1 */
+ CUSTOM_EXPECTED_SUCCESS(INT32_MAX - 1, INT32_MAX -1), /* t_4bytes_2 */
+ CUSTOM_EXPECTED_FAILURE, /* t_4bytes_3_pad (illegal padding) */
+ CUSTOM_EXPECTED_SUCCESS(INT32_MIN, INT32_MIN), /* t_4bytes_4_neg */
+ CUSTOM_EXPECTED_FAILURE, /* t_4bytes_5_negpad (illegal padding) */
+};
+static ASN1_INT64_DATA int64_encdec_data[] = {
+ ENCDEC_ARRAY(INT64_MAX, INT64_MAX, INT64_MIN, INT64_MIN),
+ ENCDEC_ARRAY(INT32_MAX, INT32_MAX, INT32_MIN, INT32_MIN),
+};
+
+static TEST_PACKAGE int64_test_package = {
+ ASN1_ITEM_ref(ASN1_INT64_DATA), "INT64", 0,
+ int64_expected, sizeof(int64_expected), sizeof(int64_expected[0]),
+ int64_encdec_data, sizeof(int64_encdec_data), sizeof(int64_encdec_data[0]),
+ (i2d_fn *)i2d_ASN1_INT64_DATA, (d2i_fn *)d2i_ASN1_INT64_DATA,
+ (ifree_fn *)ASN1_INT64_DATA_free
+};
+
+/***** UINT64 ****************************************************************/
+
+typedef struct {
+ ASN1_BOOLEAN success;
+ uint64_t test_uint64;
+ uint64_t test_zuint64;
+} ASN1_UINT64_DATA;
+
+ASN1_SEQUENCE(ASN1_UINT64_DATA) = {
+ ASN1_SIMPLE(ASN1_UINT64_DATA, success, ASN1_FBOOLEAN),
+ ASN1_EMBED(ASN1_UINT64_DATA, test_uint64, UINT64),
+ ASN1_EXP_OPT_EMBED(ASN1_UINT64_DATA, test_zuint64, ZUINT64, 0)
+} static_ASN1_SEQUENCE_END(ASN1_UINT64_DATA)
+
+IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_UINT64_DATA)
+IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(ASN1_UINT64_DATA)
+
+static ASN1_UINT64_DATA uint64_expected[] = {
+ CUSTOM_EXPECTED_SUCCESS(0, 0), /* t_zero */
+ CUSTOM_EXPECTED_SUCCESS(ASN1_LONG_UNDEF, ASN1_LONG_UNDEF), /* t_zero */
+ CUSTOM_EXPECTED_SUCCESS(1, 1), /* t_one */
+ CUSTOM_EXPECTED_FAILURE, /* t_one_neg (illegal negative value) */
+ CUSTOM_EXPECTED_FAILURE, /* t_minus_256 (illegal negative value) */
+ CUSTOM_EXPECTED_FAILURE, /* t_9bytes_1 */
+ CUSTOM_EXPECTED_SUCCESS((uint64_t)INT64_MAX+1, (uint64_t)INT64_MAX+1),
+ /* t_8bytes_1 */
+ CUSTOM_EXPECTED_SUCCESS(INT64_MAX, INT64_MAX), /* t_8bytes_2 */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_3_pad */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_4_neg */
+ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_5_negpad */
+ CUSTOM_EXPECTED_SUCCESS(0x1ffffffffULL, 0x1ffffffffULL), /* t_5bytes_1 */
+ CUSTOM_EXPECTED_SUCCESS(0x80000000, 0x80000000), /* t_4bytes_1 */
+ CUSTOM_EXPECTED_SUCCESS(INT32_MAX - 1, INT32_MAX -1), /* t_4bytes_2 */
+ CUSTOM_EXPECTED_FAILURE, /* t_4bytes_3_pad (illegal padding) */
+ CUSTOM_EXPECTED_FAILURE, /* t_4bytes_4_neg (illegal negative value) */
+ CUSTOM_EXPECTED_FAILURE, /* t_4bytes_5_negpad (illegal padding) */
+};
+static ASN1_UINT64_DATA uint64_encdec_data[] = {
+ ENCDEC_ARRAY(UINT64_MAX, UINT64_MAX, 0, 0),
+};
+
+static TEST_PACKAGE uint64_test_package = {
+ ASN1_ITEM_ref(ASN1_UINT64_DATA), "UINT64", 0,
+ uint64_expected, sizeof(uint64_expected), sizeof(uint64_expected[0]),
+ uint64_encdec_data, sizeof(uint64_encdec_data), sizeof(uint64_encdec_data[0]),
+ (i2d_fn *)i2d_ASN1_UINT64_DATA, (d2i_fn *)d2i_ASN1_UINT64_DATA,
+ (ifree_fn *)ASN1_UINT64_DATA_free
+};
+
+/***** General testing functions *********************************************/
+
+
+/* Template structure to map onto any test data structure */
+typedef struct {
+ ASN1_BOOLEAN success;
+ unsigned char bytes[1]; /* In reality, there's more */
+} EXPECTED;
+
+/*
+ * do_decode returns a tristate:
+ *
+ * -1 Couldn't decode
+ * 0 decoded structure wasn't what was expected (failure)
+ * 1 decoded structure was what was expected (success)
+ */
+static int do_decode(unsigned char *bytes, long nbytes,
+ const EXPECTED *expected, size_t expected_size,
+ const TEST_PACKAGE *package)
+{
+ EXPECTED *enctst = NULL;
+ const unsigned char *start;
+ int ret = 0;
+
+ start = bytes;
+ enctst = package->d2i(NULL, &bytes, nbytes);
+ if (enctst == NULL) {
+ if (expected->success == 0) {
+ ret = 1;
+ ERR_clear_error();
+ } else {
+ ret = -1;
+ }
+ } else {
+ if (start + nbytes == bytes
+ && memcmp(enctst, expected, expected_size) == 0)
+ ret = 1;
+ else
+ ret = 0;
+ }
+
+ package->ifree(enctst);
+ return ret;
+}
+
+/*
+ * do_encode returns a tristate:
+ *
+ * -1 Couldn't encode
+ * 0 encoded DER wasn't what was expected (failure)
+ * 1 encoded DER was what was expected (success)
+ */
+static int do_encode(EXPECTED *input,
+ const unsigned char *expected, size_t expected_len,
+ const TEST_PACKAGE *package)
+{
+ unsigned char *data = NULL;
+ int len;
+ int ret = 0;
+
+ len = package->i2d(input, &data);
+ if (len < 0)
+ return -1;
+
+ if ((size_t)len != expected_len
+ || memcmp(data, expected, expected_len) != 0) {
+ if (input->success == 0) {
+ ret = 1;
+ ERR_clear_error();
+ } else {
+ ret = 0;
+ }
+ } else {
+ ret = 1;
+ }
+
+ OPENSSL_free(data);
+ return ret;
+}
+
+/* Do an encode/decode round trip */
+static int do_enc_dec(EXPECTED *bytes, long nbytes,
+ const TEST_PACKAGE *package)
+{
+ unsigned char *data = NULL;
+ int len;
+ int ret = 0;
+ void *p = bytes;
+
+ len = package->i2d(p, &data);
+ if (len < 0)
+ return -1;
+
+ ret = do_decode(data, len, bytes, nbytes, package);
+ OPENSSL_free(data);
+ return ret;
+}
+
+static size_t der_encode_length(size_t len, unsigned char **pp)
+{
+ size_t lenbytes;
+
+ OPENSSL_assert(len < 0x8000);
+ if (len > 255)
+ lenbytes = 3;
+ else if (len > 127)
+ lenbytes = 2;
+ else
+ lenbytes = 1;
+
+ if (pp != NULL) {
+ if (lenbytes == 1) {
+ *(*pp)++ = (unsigned char)len;
+ } else {
+ *(*pp)++ = (unsigned char)(lenbytes - 1);
+ if (lenbytes == 2) {
+ *(*pp)++ = (unsigned char)(0x80 | len);
+ } else {
+ *(*pp)++ = (unsigned char)(0x80 | (len >> 8));
+ *(*pp)++ = (unsigned char)(len);
+ }
+ }
+ }
+ return lenbytes;
+}
+
+static size_t make_custom_der(const TEST_CUSTOM_DATA *custom_data,
+ unsigned char **encoding, int explicit_default)
+{
+ size_t firstbytes, secondbytes = 0, secondbytesinner = 0, seqbytes;
+ const unsigned char t_true[] = { V_ASN1_BOOLEAN, 0x01, 0xff };
+ unsigned char *p = NULL;
+ size_t i;
+
+ /*
+ * The first item is just an INTEGER tag, INTEGER length and INTEGER content
+ */
+ firstbytes =
+ 1 + der_encode_length(custom_data->nbytes1, NULL)
+ + custom_data->nbytes1;
+
+ for (i = custom_data->nbytes2; i > 0; i--) {
+ if (custom_data->bytes2[i - 1] != '\0')
+ break;
+ }
+ if (explicit_default || i > 0) {
+ /*
+ * The second item is an explicit tag, content length, INTEGER tag,
+ * INTEGER length, INTEGER bytes
+ */
+ secondbytesinner =
+ 1 + der_encode_length(custom_data->nbytes2, NULL)
+ + custom_data->nbytes2;
+ secondbytes =
+ 1 + der_encode_length(secondbytesinner, NULL) + secondbytesinner;
+ }
+
+ /*
+ * The whole sequence is the sequence tag, content length, BOOLEAN true
+ * (copied from t_true), the first (firstbytes) and second (secondbytes)
+ * items
+ */
+ seqbytes =
+ 1 + der_encode_length(sizeof(t_true) + firstbytes + secondbytes, NULL)
+ + sizeof(t_true) + firstbytes + secondbytes;
+
+ *encoding = p = OPENSSL_malloc(seqbytes);
+ if (*encoding == NULL)
+ return 0;
+
+ /* Sequence tag */
+ *p++ = 0x30;
+ der_encode_length(sizeof(t_true) + firstbytes + secondbytes, &p);
+
+ /* ASN1_BOOLEAN TRUE */
+ memcpy(p, t_true, sizeof(t_true)); /* Marks decoding success */
+ p += sizeof(t_true);
+
+ /* First INTEGER item (non-optional) */
+ *p++ = V_ASN1_INTEGER;
+ der_encode_length(custom_data->nbytes1, &p);
+ memcpy(p, custom_data->bytes1, custom_data->nbytes1);
+ p += custom_data->nbytes1;
+
+ if (secondbytes > 0) {
+ /* Second INTEGER item (optional) */
+ /* Start with the explicit optional tag */
+ *p++ = 0xa0;
+ der_encode_length(secondbytesinner, &p);
+ *p++ = V_ASN1_INTEGER;
+ der_encode_length(custom_data->nbytes2, &p);
+ memcpy(p, custom_data->bytes2, custom_data->nbytes2);
+ p += custom_data->nbytes2;
+ }
+
+ OPENSSL_assert(seqbytes == (size_t)(p - *encoding));
+
+ return seqbytes;
+}
+
+/* Attempt to decode a custom encoding of the test structure */
+static int do_decode_custom(const TEST_CUSTOM_DATA *custom_data,
+ const EXPECTED *expected, size_t expected_size,
+ const TEST_PACKAGE *package)
+{
+ unsigned char *encoding = NULL;
+ /*
+ * We force the defaults to be explicitly encoded to make sure we test
+ * for defaults that shouldn't be present (i.e. we check for failure)
+ */
+ size_t encoding_length = make_custom_der(custom_data, &encoding, 1);
+ int ret;
+
+ if (encoding_length == 0)
+ return -1;
+
+ ret = do_decode(encoding, encoding_length, expected, expected_size,
+ package);
+ OPENSSL_free(encoding);
+
+ return ret;
+}
+
+/* Attempt to encode the test structure and compare it to custom DER */
+static int do_encode_custom(EXPECTED *input,
+ const TEST_CUSTOM_DATA *custom_data,
+ const TEST_PACKAGE *package)
+{
+ unsigned char *expected = NULL;
+ size_t expected_length = make_custom_der(custom_data, &expected, 0);
+ int ret;
+
+ if (expected_length == 0)
+ return -1;
+
+ ret = do_encode(input, expected, expected_length, package);
+ OPENSSL_free(expected);
+
+ return ret;
+}
+
+static int do_print_item(const TEST_PACKAGE *package)
+{
+#define DATA_BUF_SIZE 256
+ const ASN1_ITEM *i = ASN1_ITEM_ptr(package->asn1_type);
+ ASN1_VALUE *o;
+ int ret;
+
+ OPENSSL_assert(package->encode_expectations_elem_size <= DATA_BUF_SIZE);
+ if ((o = OPENSSL_malloc(DATA_BUF_SIZE)) == NULL)
+ return 0;
+
+ (void)RAND_bytes((unsigned char*)o,
+ (int)package->encode_expectations_elem_size);
+ ret = ASN1_item_print(bio_err, o, 0, i, NULL);
+ OPENSSL_free(o);
+
+ return ret;
+}
+
+
+static int test_intern(const TEST_PACKAGE *package)
+{
+ unsigned int i;
+ size_t nelems;
+ int fail = 0;
+
+ if (package->skip)
+ return 1;
+
+ /* Do decode_custom checks */
+ nelems = package->encode_expectations_size
+ / package->encode_expectations_elem_size;
+ OPENSSL_assert(nelems ==
+ sizeof(test_custom_data) / sizeof(test_custom_data[0]));
+ for (i = 0; i < nelems; i++) {
+ size_t pos = i * package->encode_expectations_elem_size;
+ switch (do_encode_custom((EXPECTED *)&((unsigned char *)package
+ ->encode_expectations)[pos],
+ &test_custom_data[i], package)) {
+ case -1:
+ TEST_error("Failed custom encode round trip %u of %s",
+ i, package->name);
+ TEST_openssl_errors();
+ fail++;
+ break;
+ case 0:
+ TEST_error("Custom encode round trip %u of %s mismatch",
+ i, package->name);
+ TEST_openssl_errors();
+ fail++;
+ break;
+ case 1:
+ break;
+ default:
+ OPENSSL_die("do_encode_custom() return unknown value",
+ __FILE__, __LINE__);
+ }
+ switch (do_decode_custom(&test_custom_data[i],
+ (EXPECTED *)&((unsigned char *)package
+ ->encode_expectations)[pos],
+ package->encode_expectations_elem_size,
+ package)) {
+ case -1:
+ TEST_error("Failed custom decode round trip %u of %s",
+ i, package->name);
+ TEST_openssl_errors();
+ fail++;
+ break;
+ case 0:
+ TEST_error("Custom decode round trip %u of %s mismatch",
+ i, package->name);
+ TEST_openssl_errors();
+ fail++;
+ break;
+ case 1:
+ break;
+ default:
+ OPENSSL_die("do_decode_custom() return unknown value",
+ __FILE__, __LINE__);
+ }
+ }
+
+ /* Do enc_dec checks */
+ nelems = package->encdec_data_size / package->encdec_data_elem_size;
+ for (i = 0; i < nelems; i++) {
+ size_t pos = i * package->encdec_data_elem_size;
+ switch (do_enc_dec((EXPECTED *)&((unsigned char *)package
+ ->encdec_data)[pos],
+ package->encdec_data_elem_size,
+ package)) {
+ case -1:
+ TEST_error("Failed encode/decode round trip %u of %s",
+ i, package->name);
+ TEST_openssl_errors();
+ fail++;
+ break;
+ case 0:
+ TEST_error("Encode/decode round trip %u of %s mismatch",
+ i, package->name);
+ fail++;
+ break;
+ case 1:
+ break;
+ default:
+ OPENSSL_die("do_enc_dec() return unknown value",
+ __FILE__, __LINE__);
+ }
+ }
+
+ if (!do_print_item(package)) {
+ TEST_error("Printing of %s failed", package->name);
+ TEST_openssl_errors();
+ fail++;
+ }
+
+ return fail == 0;
+}
+
+#if OPENSSL_API_COMPAT < 0x10200000L
+static int test_long_32bit(void)
+{
+ return test_intern(&long_test_package_32bit);
+}
+
+static int test_long_64bit(void)
+{
+ return test_intern(&long_test_package_64bit);
+}
+#endif
+
+static int test_int32(void)
+{
+ return test_intern(&int32_test_package);
+}
+
+static int test_uint32(void)
+{
+ return test_intern(&uint32_test_package);
+}
+
+static int test_int64(void)
+{
+ return test_intern(&int64_test_package);
+}
+
+static int test_uint64(void)
+{
+ return test_intern(&uint64_test_package);
+}
+
+int setup_tests(void)
+{
+#if OPENSSL_API_COMPAT < 0x10200000L
+ ADD_TEST(test_long_32bit);
+ ADD_TEST(test_long_64bit);
+#endif
+ ADD_TEST(test_int32);
+ ADD_TEST(test_uint32);
+ ADD_TEST(test_int64);
+ ADD_TEST(test_uint64);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_internal_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_internal_test.c
new file mode 100644
index 000000000..865e05842
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_internal_test.c
@@ -0,0 +1,115 @@
+/*
+ * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/* Internal tests for the asn1 module */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/asn1.h>
+#include <openssl/evp.h>
+#include <openssl/objects.h>
+#include "testutil.h"
+#include "internal/nelem.h"
+
+/**********************************************************************
+ *
+ * Test of a_strnid's tbl_standard
+ *
+ ***/
+
+#include "../crypto/asn1/tbl_standard.h"
+
+static int test_tbl_standard(void)
+{
+ const ASN1_STRING_TABLE *tmp;
+ int last_nid = -1;
+ size_t i;
+
+ for (tmp = tbl_standard, i = 0; i < OSSL_NELEM(tbl_standard); i++, tmp++) {
+ if (tmp->nid < last_nid) {
+ last_nid = 0;
+ break;
+ }
+ last_nid = tmp->nid;
+ }
+
+ if (TEST_int_ne(last_nid, 0)) {
+ TEST_info("asn1 tbl_standard: Table order OK");
+ return 1;
+ }
+
+ TEST_info("asn1 tbl_standard: out of order");
+ for (tmp = tbl_standard, i = 0; i < OSSL_NELEM(tbl_standard); i++, tmp++)
+ TEST_note("asn1 tbl_standard: Index %zu, NID %d, Name=%s",
+ i, tmp->nid, OBJ_nid2ln(tmp->nid));
+
+ return 0;
+}
+
+/**********************************************************************
+ *
+ * Test of ameth_lib's standard_methods
+ *
+ ***/
+
+#include "crypto/asn1.h"
+#include "../crypto/asn1/standard_methods.h"
+
+static int test_standard_methods(void)
+{
+ const EVP_PKEY_ASN1_METHOD **tmp;
+ int last_pkey_id = -1;
+ size_t i;
+ int ok = 1;
+
+ for (tmp = standard_methods, i = 0; i < OSSL_NELEM(standard_methods);
+ i++, tmp++) {
+ if ((*tmp)->pkey_id < last_pkey_id) {
+ last_pkey_id = 0;
+ break;
+ }
+ last_pkey_id = (*tmp)->pkey_id;
+
+ /*
+ * One of the following must be true:
+ *
+ * pem_str == NULL AND ASN1_PKEY_ALIAS is set
+ * pem_str != NULL AND ASN1_PKEY_ALIAS is clear
+ *
+ * Anything else is an error and may lead to a corrupt ASN1 method table
+ */
+ if (!TEST_true(((*tmp)->pem_str == NULL && ((*tmp)->pkey_flags & ASN1_PKEY_ALIAS) != 0)
+ || ((*tmp)->pem_str != NULL && ((*tmp)->pkey_flags & ASN1_PKEY_ALIAS) == 0))) {
+ TEST_note("asn1 standard methods: Index %zu, pkey ID %d, Name=%s",
+ i, (*tmp)->pkey_id, OBJ_nid2sn((*tmp)->pkey_id));
+ ok = 0;
+ }
+ }
+
+ if (TEST_int_ne(last_pkey_id, 0)) {
+ TEST_info("asn1 standard methods: Table order OK");
+ return ok;
+ }
+
+ TEST_note("asn1 standard methods: out of order");
+ for (tmp = standard_methods, i = 0; i < OSSL_NELEM(standard_methods);
+ i++, tmp++)
+ TEST_note("asn1 standard methods: Index %zu, pkey ID %d, Name=%s",
+ i, (*tmp)->pkey_id, OBJ_nid2sn((*tmp)->pkey_id));
+
+ return 0;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_tbl_standard);
+ ADD_TEST(test_standard_methods);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_string_table_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_string_table_test.c
new file mode 100644
index 000000000..3c6cc257b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_string_table_test.c
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/* Tests for the ANS1_STRING_TABLE_* functions */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/asn1.h>
+#include "testutil.h"
+
+static int test_string_tbl(void)
+{
+ const ASN1_STRING_TABLE *tmp = NULL;
+ int nid = 12345678, nid2 = 87654321, rv = 0, ret = 0;
+
+ tmp = ASN1_STRING_TABLE_get(nid);
+ if (!TEST_ptr_null(tmp)) {
+ TEST_info("asn1 string table: ASN1_STRING_TABLE_get non-exist nid");
+ goto out;
+ }
+
+ ret = ASN1_STRING_TABLE_add(nid, -1, -1, MBSTRING_ASC, 0);
+ if (!TEST_true(ret)) {
+ TEST_info("asn1 string table: add NID(%d) failed", nid);
+ goto out;
+ }
+
+ ret = ASN1_STRING_TABLE_add(nid2, -1, -1, MBSTRING_ASC, 0);
+ if (!TEST_true(ret)) {
+ TEST_info("asn1 string table: add NID(%d) failed", nid2);
+ goto out;
+ }
+
+ tmp = ASN1_STRING_TABLE_get(nid);
+ if (!TEST_ptr(tmp)) {
+ TEST_info("asn1 string table: get NID(%d) failed", nid);
+ goto out;
+ }
+
+ tmp = ASN1_STRING_TABLE_get(nid2);
+ if (!TEST_ptr(tmp)) {
+ TEST_info("asn1 string table: get NID(%d) failed", nid2);
+ goto out;
+ }
+
+ ASN1_STRING_TABLE_cleanup();
+
+ /* check if all newly added NIDs are cleaned up */
+ tmp = ASN1_STRING_TABLE_get(nid);
+ if (!TEST_ptr_null(tmp)) {
+ TEST_info("asn1 string table: get NID(%d) failed", nid);
+ goto out;
+ }
+
+ tmp = ASN1_STRING_TABLE_get(nid2);
+ if (!TEST_ptr_null(tmp)) {
+ TEST_info("asn1 string table: get NID(%d) failed", nid2);
+ goto out;
+ }
+
+ rv = 1;
+ out:
+ return rv;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_string_tbl);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_time_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_time_test.c
new file mode 100644
index 000000000..b43763d05
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asn1_time_test.c
@@ -0,0 +1,358 @@
+/*
+ * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/* Time tests for the asn1 module */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/asn1.h>
+#include <openssl/evp.h>
+#include <openssl/objects.h>
+#include "testutil.h"
+#include "internal/nelem.h"
+
+struct testdata {
+ char *data; /* TIME string value */
+ int type; /* GENERALIZED OR UTC */
+ int expected_type; /* expected type after set/set_string_gmt */
+ int check_result; /* check result */
+ time_t t; /* expected time_t*/
+ int cmp_result; /* comparison to baseline result */
+ int convert_result; /* conversion result */
+};
+
+static struct testdata tbl_testdata_pos[] = {
+ { "0", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, }, /* Bad time */
+ { "ABCD", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "0ABCD", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "1-700101000000Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "`9700101000000Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "19700101000000Z", V_ASN1_UTCTIME, V_ASN1_UTCTIME, 0, 0, 0, 0, },
+ { "A00101000000Z", V_ASN1_UTCTIME, V_ASN1_UTCTIME, 0, 0, 0, 0, },
+ { "A9700101000000Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "1A700101000000Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "19A00101000000Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "197A0101000000Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "1970A101000000Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "19700A01000000Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "197001A1000000Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "1970010A000000Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "19700101A00000Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "197001010A0000Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "1970010100A000Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "19700101000A00Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "197001010000A0Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "1970010100000AZ", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "700101000000X", V_ASN1_UTCTIME, V_ASN1_UTCTIME, 0, 0, 0, 0, },
+ { "19700101000000X", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 0, 0, 0, 0, },
+ { "19700101000000Z", V_ASN1_GENERALIZEDTIME, V_ASN1_UTCTIME, 1, 0, -1, 1, }, /* Epoch begins */
+ { "700101000000Z", V_ASN1_UTCTIME, V_ASN1_UTCTIME, 1, 0, -1, 1, }, /* ditto */
+ { "20380119031407Z", V_ASN1_GENERALIZEDTIME, V_ASN1_UTCTIME, 1, 0x7FFFFFFF, 1, 1, }, /* Max 32bit time_t */
+ { "380119031407Z", V_ASN1_UTCTIME, V_ASN1_UTCTIME, 1, 0x7FFFFFFF, 1, 1, },
+ { "20371231235959Z", V_ASN1_GENERALIZEDTIME, V_ASN1_UTCTIME, 1, 2145916799, 1, 1, }, /* Just before 2038 */
+ { "20371231235959Z", V_ASN1_UTCTIME, V_ASN1_UTCTIME, 0, 0, 0, 1, }, /* Bad UTC time */
+ { "371231235959Z", V_ASN1_UTCTIME, V_ASN1_UTCTIME, 1, 2145916799, 1, 1, },
+ { "19701006121456Z", V_ASN1_GENERALIZEDTIME, V_ASN1_UTCTIME, 1, 24063296, -1, 1, },
+ { "701006121456Z", V_ASN1_UTCTIME, V_ASN1_UTCTIME, 1, 24063296, -1, 1, },
+ { "19991231000000Z", V_ASN1_GENERALIZEDTIME, V_ASN1_UTCTIME, 1, 946598400, 0, 1, }, /* Match baseline */
+ { "199912310000Z", V_ASN1_GENERALIZEDTIME, V_ASN1_UTCTIME, 1, 946598400, 0, 1, }, /* In various flavors */
+ { "991231000000Z", V_ASN1_UTCTIME, V_ASN1_UTCTIME, 1, 946598400, 0, 1, },
+ { "9912310000Z", V_ASN1_UTCTIME, V_ASN1_UTCTIME, 1, 946598400, 0, 1, },
+ { "9912310000+0000", V_ASN1_UTCTIME, V_ASN1_UTCTIME, 1, 946598400, 0, 1, },
+ { "199912310000+0000", V_ASN1_GENERALIZEDTIME, V_ASN1_UTCTIME, 1, 946598400, 0, 1, },
+ { "9912310000-0000", V_ASN1_UTCTIME, V_ASN1_UTCTIME, 1, 946598400, 0, 1, },
+ { "199912310000-0000", V_ASN1_GENERALIZEDTIME, V_ASN1_UTCTIME, 1, 946598400, 0, 1, },
+ { "199912310100+0100", V_ASN1_GENERALIZEDTIME, V_ASN1_UTCTIME, 1, 946598400, 0, 1, },
+ { "199912302300-0100", V_ASN1_GENERALIZEDTIME, V_ASN1_UTCTIME, 1, 946598400, 0, 1, },
+ { "199912302300-A000", V_ASN1_GENERALIZEDTIME, V_ASN1_UTCTIME, 0, 946598400, 0, 1, },
+ { "199912302300-0A00", V_ASN1_GENERALIZEDTIME, V_ASN1_UTCTIME, 0, 946598400, 0, 1, },
+ { "9912310100+0100", V_ASN1_UTCTIME, V_ASN1_UTCTIME, 1, 946598400, 0, 1, },
+ { "9912302300-0100", V_ASN1_UTCTIME, V_ASN1_UTCTIME, 1, 946598400, 0, 1, },
+};
+
+/* ASSUMES SIGNED TIME_T */
+static struct testdata tbl_testdata_neg[] = {
+ { "19011213204552Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 1, INT_MIN, -1, 0, },
+ { "691006121456Z", V_ASN1_UTCTIME, V_ASN1_UTCTIME, 1, -7472704, -1, 1, },
+ { "19691006121456Z", V_ASN1_GENERALIZEDTIME, V_ASN1_UTCTIME, 1, -7472704, -1, 1, },
+};
+
+/* explicit casts to time_t short warnings on systems with 32-bit time_t */
+static struct testdata tbl_testdata_pos_64bit[] = {
+ { "20380119031408Z", V_ASN1_GENERALIZEDTIME, V_ASN1_UTCTIME, 1, (time_t)0x80000000, 1, 1, },
+ { "20380119031409Z", V_ASN1_GENERALIZEDTIME, V_ASN1_UTCTIME, 1, (time_t)0x80000001, 1, 1, },
+ { "380119031408Z", V_ASN1_UTCTIME, V_ASN1_UTCTIME, 1, (time_t)0x80000000, 1, 1, },
+ { "20500101120000Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 1, (time_t)0x967b1ec0, 1, 0, },
+};
+
+/* ASSUMES SIGNED TIME_T */
+static struct testdata tbl_testdata_neg_64bit[] = {
+ { "19011213204551Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 1, (time_t)-2147483649LL, -1, 0, },
+ { "19000101120000Z", V_ASN1_GENERALIZEDTIME, V_ASN1_GENERALIZEDTIME, 1, (time_t)-2208945600LL, -1, 0, },
+};
+
+/* A baseline time to compare to */
+static ASN1_TIME gtime = {
+ 15,
+ V_ASN1_GENERALIZEDTIME,
+ (unsigned char*)"19991231000000Z",
+ 0
+};
+static time_t gtime_t = 946598400;
+
+static int test_table(struct testdata *tbl, int idx)
+{
+ int error = 0;
+ ASN1_TIME atime;
+ ASN1_TIME *ptime;
+ struct testdata *td = &tbl[idx];
+ int day, sec;
+
+ atime.data = (unsigned char*)td->data;
+ atime.length = strlen((char*)atime.data);
+ atime.type = td->type;
+ atime.flags = 0;
+
+ if (!TEST_int_eq(ASN1_TIME_check(&atime), td->check_result)) {
+ TEST_info("ASN1_TIME_check(%s) unexpected result", atime.data);
+ error = 1;
+ }
+ if (td->check_result == 0)
+ return 1;
+
+ if (!TEST_int_eq(ASN1_TIME_cmp_time_t(&atime, td->t), 0)) {
+ TEST_info("ASN1_TIME_cmp_time_t(%s vs %ld) compare failed", atime.data, (long)td->t);
+ error = 1;
+ }
+
+ if (!TEST_true(ASN1_TIME_diff(&day, &sec, &atime, &atime))) {
+ TEST_info("ASN1_TIME_diff(%s) to self failed", atime.data);
+ error = 1;
+ }
+ if (!TEST_int_eq(day, 0) || !TEST_int_eq(sec, 0)) {
+ TEST_info("ASN1_TIME_diff(%s) to self not equal", atime.data);
+ error = 1;
+ }
+
+ if (!TEST_true(ASN1_TIME_diff(&day, &sec, &gtime, &atime))) {
+ TEST_info("ASN1_TIME_diff(%s) to baseline failed", atime.data);
+ error = 1;
+ } else if (!((td->cmp_result == 0 && TEST_true((day == 0 && sec == 0))) ||
+ (td->cmp_result == -1 && TEST_true((day < 0 || sec < 0))) ||
+ (td->cmp_result == 1 && TEST_true((day > 0 || sec > 0))))) {
+ TEST_info("ASN1_TIME_diff(%s) to baseline bad comparison", atime.data);
+ error = 1;
+ }
+
+ if (!TEST_int_eq(ASN1_TIME_cmp_time_t(&atime, gtime_t), td->cmp_result)) {
+ TEST_info("ASN1_TIME_cmp_time_t(%s) to baseline bad comparison", atime.data);
+ error = 1;
+ }
+
+ ptime = ASN1_TIME_set(NULL, td->t);
+ if (!TEST_ptr(ptime)) {
+ TEST_info("ASN1_TIME_set(%ld) failed", (long)td->t);
+ error = 1;
+ } else {
+ int local_error = 0;
+ if (!TEST_int_eq(ASN1_TIME_cmp_time_t(ptime, td->t), 0)) {
+ TEST_info("ASN1_TIME_set(%ld) compare failed (%s->%s)",
+ (long)td->t, td->data, ptime->data);
+ local_error = error = 1;
+ }
+ if (!TEST_int_eq(ptime->type, td->expected_type)) {
+ TEST_info("ASN1_TIME_set(%ld) unexpected type", (long)td->t);
+ local_error = error = 1;
+ }
+ if (local_error)
+ TEST_info("ASN1_TIME_set() = %*s", ptime->length, ptime->data);
+ ASN1_TIME_free(ptime);
+ }
+
+ ptime = ASN1_TIME_new();
+ if (!TEST_ptr(ptime)) {
+ TEST_info("ASN1_TIME_new() failed");
+ error = 1;
+ } else {
+ int local_error = 0;
+ if (!TEST_int_eq(ASN1_TIME_set_string(ptime, td->data), td->check_result)) {
+ TEST_info("ASN1_TIME_set_string_gmt(%s) failed", td->data);
+ local_error = error = 1;
+ }
+ if (!TEST_int_eq(ASN1_TIME_normalize(ptime), td->check_result)) {
+ TEST_info("ASN1_TIME_normalize(%s) failed", td->data);
+ local_error = error = 1;
+ }
+ if (!TEST_int_eq(ptime->type, td->expected_type)) {
+ TEST_info("ASN1_TIME_set_string_gmt(%s) unexpected type", td->data);
+ local_error = error = 1;
+ }
+ day = sec = 0;
+ if (!TEST_true(ASN1_TIME_diff(&day, &sec, ptime, &atime)) || !TEST_int_eq(day, 0) || !TEST_int_eq(sec, 0)) {
+ TEST_info("ASN1_TIME_diff(day=%d, sec=%d, %s) after ASN1_TIME_set_string_gmt() failed", day, sec, td->data);
+ local_error = error = 1;
+ }
+ if (!TEST_int_eq(ASN1_TIME_cmp_time_t(ptime, gtime_t), td->cmp_result)) {
+ TEST_info("ASN1_TIME_cmp_time_t(%s) after ASN1_TIME_set_string_gnt() to baseline bad comparison", td->data);
+ local_error = error = 1;
+ }
+ if (local_error)
+ TEST_info("ASN1_TIME_set_string_gmt() = %*s", ptime->length, ptime->data);
+ ASN1_TIME_free(ptime);
+ }
+
+ ptime = ASN1_TIME_new();
+ if (!TEST_ptr(ptime)) {
+ TEST_info("ASN1_TIME_new() failed");
+ error = 1;
+ } else {
+ int local_error = 0;
+ if (!TEST_int_eq(ASN1_TIME_set_string(ptime, td->data), td->check_result)) {
+ TEST_info("ASN1_TIME_set_string(%s) failed", td->data);
+ local_error = error = 1;
+ }
+ day = sec = 0;
+ if (!TEST_true(ASN1_TIME_diff(&day, &sec, ptime, &atime)) || !TEST_int_eq(day, 0) || !TEST_int_eq(sec, 0)) {
+ TEST_info("ASN1_TIME_diff(day=%d, sec=%d, %s) after ASN1_TIME_set_string() failed", day, sec, td->data);
+ local_error = error = 1;
+ }
+ if (!TEST_int_eq(ASN1_TIME_cmp_time_t(ptime, gtime_t), td->cmp_result)) {
+ TEST_info("ASN1_TIME_cmp_time_t(%s) after ASN1_TIME_set_string() to baseline bad comparison", td->data);
+ local_error = error = 1;
+ }
+ if (local_error)
+ TEST_info("ASN1_TIME_set_string() = %*s", ptime->length, ptime->data);
+ ASN1_TIME_free(ptime);
+ }
+
+ if (td->type == V_ASN1_UTCTIME) {
+ ptime = ASN1_TIME_to_generalizedtime(&atime, NULL);
+ if (td->convert_result == 1 && !TEST_ptr(ptime)) {
+ TEST_info("ASN1_TIME_to_generalizedtime(%s) failed", atime.data);
+ error = 1;
+ } else if (td->convert_result == 0 && !TEST_ptr_null(ptime)) {
+ TEST_info("ASN1_TIME_to_generalizedtime(%s) should have failed", atime.data);
+ error = 1;
+ }
+ if (ptime != NULL && !TEST_int_eq(ASN1_TIME_cmp_time_t(ptime, td->t), 0)) {
+ TEST_info("ASN1_TIME_to_generalizedtime(%s->%s) bad result", atime.data, ptime->data);
+ error = 1;
+ }
+ ASN1_TIME_free(ptime);
+ }
+ /* else cannot simply convert GENERALIZEDTIME to UTCTIME */
+
+ if (error)
+ TEST_error("atime=%s", atime.data);
+
+ return !error;
+}
+
+static int test_table_pos(int idx)
+{
+ return test_table(tbl_testdata_pos, idx);
+}
+
+static int test_table_neg(int idx)
+{
+ return test_table(tbl_testdata_neg, idx);
+}
+
+static int test_table_pos_64bit(int idx)
+{
+ return test_table(tbl_testdata_pos_64bit, idx);
+}
+
+static int test_table_neg_64bit(int idx)
+{
+ return test_table(tbl_testdata_neg_64bit, idx);
+}
+
+struct compare_testdata {
+ ASN1_TIME t1;
+ ASN1_TIME t2;
+ int result;
+};
+
+static unsigned char TODAY_GEN_STR[] = "20170825000000Z";
+static unsigned char TOMORROW_GEN_STR[] = "20170826000000Z";
+static unsigned char TODAY_UTC_STR[] = "170825000000Z";
+static unsigned char TOMORROW_UTC_STR[] = "170826000000Z";
+
+#define TODAY_GEN { sizeof(TODAY_GEN_STR)-1, V_ASN1_GENERALIZEDTIME, TODAY_GEN_STR, 0 }
+#define TOMORROW_GEN { sizeof(TOMORROW_GEN_STR)-1, V_ASN1_GENERALIZEDTIME, TOMORROW_GEN_STR, 0 }
+#define TODAY_UTC { sizeof(TODAY_UTC_STR)-1, V_ASN1_UTCTIME, TODAY_UTC_STR, 0 }
+#define TOMORROW_UTC { sizeof(TOMORROW_UTC_STR)-1, V_ASN1_UTCTIME, TOMORROW_UTC_STR, 0 }
+
+static struct compare_testdata tbl_compare_testdata[] = {
+ { TODAY_GEN, TODAY_GEN, 0 },
+ { TODAY_GEN, TODAY_UTC, 0 },
+ { TODAY_GEN, TOMORROW_GEN, -1 },
+ { TODAY_GEN, TOMORROW_UTC, -1 },
+
+ { TODAY_UTC, TODAY_GEN, 0 },
+ { TODAY_UTC, TODAY_UTC, 0 },
+ { TODAY_UTC, TOMORROW_GEN, -1 },
+ { TODAY_UTC, TOMORROW_UTC, -1 },
+
+ { TOMORROW_GEN, TODAY_GEN, 1 },
+ { TOMORROW_GEN, TODAY_UTC, 1 },
+ { TOMORROW_GEN, TOMORROW_GEN, 0 },
+ { TOMORROW_GEN, TOMORROW_UTC, 0 },
+
+ { TOMORROW_UTC, TODAY_GEN, 1 },
+ { TOMORROW_UTC, TODAY_UTC, 1 },
+ { TOMORROW_UTC, TOMORROW_GEN, 0 },
+ { TOMORROW_UTC, TOMORROW_UTC, 0 }
+};
+
+static int test_table_compare(int idx)
+{
+ struct compare_testdata *td = &tbl_compare_testdata[idx];
+
+ return TEST_int_eq(ASN1_TIME_compare(&td->t1, &td->t2), td->result);
+}
+
+int setup_tests(void)
+{
+ /*
+ * On platforms where |time_t| is an unsigned integer, t will be a
+ * positive number.
+ *
+ * We check if we're on a platform with a signed |time_t| with '!(t > 0)'
+ * because some compilers are picky if you do 't < 0', or even 't <= 0'
+ * if |t| is unsigned.
+ */
+ time_t t = -1;
+ /*
+ * On some platforms, |time_t| is signed, but a negative value is an
+ * error, and using it with gmtime() or localtime() generates a NULL.
+ * If that is the case, we can't perform tests on negative values.
+ */
+ struct tm *ptm = localtime(&t);
+
+ ADD_ALL_TESTS(test_table_pos, OSSL_NELEM(tbl_testdata_pos));
+ if (!(t > 0) && ptm != NULL) {
+ TEST_info("Adding negative-sign time_t tests");
+ ADD_ALL_TESTS(test_table_neg, OSSL_NELEM(tbl_testdata_neg));
+ }
+ if (sizeof(time_t) > sizeof(uint32_t)) {
+ TEST_info("Adding 64-bit time_t tests");
+ ADD_ALL_TESTS(test_table_pos_64bit, OSSL_NELEM(tbl_testdata_pos_64bit));
+#ifndef __hpux
+ if (!(t > 0) && ptm != NULL) {
+ TEST_info("Adding negative-sign 64-bit time_t tests");
+ ADD_ALL_TESTS(test_table_neg_64bit, OSSL_NELEM(tbl_testdata_neg_64bit));
+ }
+#endif
+ }
+ ADD_ALL_TESTS(test_table_compare, OSSL_NELEM(tbl_compare_testdata));
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asynciotest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asynciotest.c
new file mode 100644
index 000000000..5a12d0134
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asynciotest.c
@@ -0,0 +1,409 @@
+/*
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL licenses, (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * https://www.openssl.org/source/license.html
+ * or in the file LICENSE in the source distribution.
+ */
+
+#include <string.h>
+#include <openssl/ssl.h>
+#include <openssl/bio.h>
+#include <openssl/err.h>
+
+#include "../ssl/packet_local.h"
+
+#include "ssltestlib.h"
+#include "testutil.h"
+
+/* Should we fragment records or not? 0 = no, !0 = yes*/
+static int fragment = 0;
+
+static char *cert = NULL;
+static char *privkey = NULL;
+
+static int async_new(BIO *bi);
+static int async_free(BIO *a);
+static int async_read(BIO *b, char *out, int outl);
+static int async_write(BIO *b, const char *in, int inl);
+static long async_ctrl(BIO *b, int cmd, long num, void *ptr);
+static int async_gets(BIO *bp, char *buf, int size);
+static int async_puts(BIO *bp, const char *str);
+
+/* Choose a sufficiently large type likely to be unused for this custom BIO */
+# define BIO_TYPE_ASYNC_FILTER (0x80 | BIO_TYPE_FILTER)
+
+static BIO_METHOD *methods_async = NULL;
+
+struct async_ctrs {
+ unsigned int rctr;
+ unsigned int wctr;
+};
+
+static const BIO_METHOD *bio_f_async_filter(void)
+{
+ if (methods_async == NULL) {
+ methods_async = BIO_meth_new(BIO_TYPE_ASYNC_FILTER, "Async filter");
+ if ( methods_async == NULL
+ || !BIO_meth_set_write(methods_async, async_write)
+ || !BIO_meth_set_read(methods_async, async_read)
+ || !BIO_meth_set_puts(methods_async, async_puts)
+ || !BIO_meth_set_gets(methods_async, async_gets)
+ || !BIO_meth_set_ctrl(methods_async, async_ctrl)
+ || !BIO_meth_set_create(methods_async, async_new)
+ || !BIO_meth_set_destroy(methods_async, async_free))
+ return NULL;
+ }
+ return methods_async;
+}
+
+static int async_new(BIO *bio)
+{
+ struct async_ctrs *ctrs;
+
+ ctrs = OPENSSL_zalloc(sizeof(struct async_ctrs));
+ if (ctrs == NULL)
+ return 0;
+
+ BIO_set_data(bio, ctrs);
+ BIO_set_init(bio, 1);
+ return 1;
+}
+
+static int async_free(BIO *bio)
+{
+ struct async_ctrs *ctrs;
+
+ if (bio == NULL)
+ return 0;
+ ctrs = BIO_get_data(bio);
+ OPENSSL_free(ctrs);
+ BIO_set_data(bio, NULL);
+ BIO_set_init(bio, 0);
+
+ return 1;
+}
+
+static int async_read(BIO *bio, char *out, int outl)
+{
+ struct async_ctrs *ctrs;
+ int ret = 0;
+ BIO *next = BIO_next(bio);
+
+ if (outl <= 0)
+ return 0;
+ if (next == NULL)
+ return 0;
+
+ ctrs = BIO_get_data(bio);
+
+ BIO_clear_retry_flags(bio);
+
+ if (ctrs->rctr > 0) {
+ ret = BIO_read(next, out, 1);
+ if (ret <= 0 && BIO_should_read(next))
+ BIO_set_retry_read(bio);
+ ctrs->rctr = 0;
+ } else {
+ ctrs->rctr++;
+ BIO_set_retry_read(bio);
+ }
+
+ return ret;
+}
+
+#define MIN_RECORD_LEN 6
+
+#define CONTENTTYPEPOS 0
+#define VERSIONHIPOS 1
+#define VERSIONLOPOS 2
+#define DATAPOS 5
+
+static int async_write(BIO *bio, const char *in, int inl)
+{
+ struct async_ctrs *ctrs;
+ int ret = 0;
+ size_t written = 0;
+ BIO *next = BIO_next(bio);
+
+ if (inl <= 0)
+ return 0;
+ if (next == NULL)
+ return 0;
+
+ ctrs = BIO_get_data(bio);
+
+ BIO_clear_retry_flags(bio);
+
+ if (ctrs->wctr > 0) {
+ ctrs->wctr = 0;
+ if (fragment) {
+ PACKET pkt;
+
+ if (!PACKET_buf_init(&pkt, (const unsigned char *)in, inl))
+ return -1;
+
+ while (PACKET_remaining(&pkt) > 0) {
+ PACKET payload, wholebody, sessionid, extensions;
+ unsigned int contenttype, versionhi, versionlo, data;
+ unsigned int msgtype = 0, negversion = 0;
+
+ if (!PACKET_get_1(&pkt, &contenttype)
+ || !PACKET_get_1(&pkt, &versionhi)
+ || !PACKET_get_1(&pkt, &versionlo)
+ || !PACKET_get_length_prefixed_2(&pkt, &payload))
+ return -1;
+
+ /* Pretend we wrote out the record header */
+ written += SSL3_RT_HEADER_LENGTH;
+
+ wholebody = payload;
+ if (contenttype == SSL3_RT_HANDSHAKE
+ && !PACKET_get_1(&wholebody, &msgtype))
+ return -1;
+
+ if (msgtype == SSL3_MT_SERVER_HELLO) {
+ if (!PACKET_forward(&wholebody,
+ SSL3_HM_HEADER_LENGTH - 1)
+ || !PACKET_get_net_2(&wholebody, &negversion)
+ /* Skip random (32 bytes) */
+ || !PACKET_forward(&wholebody, 32)
+ /* Skip session id */
+ || !PACKET_get_length_prefixed_1(&wholebody,
+ &sessionid)
+ /*
+ * Skip ciphersuite (2 bytes) and compression
+ * method (1 byte)
+ */
+ || !PACKET_forward(&wholebody, 2 + 1)
+ || !PACKET_get_length_prefixed_2(&wholebody,
+ &extensions))
+ return -1;
+
+ /*
+ * Find the negotiated version in supported_versions
+ * extension, if present.
+ */
+ while (PACKET_remaining(&extensions)) {
+ unsigned int type;
+ PACKET extbody;
+
+ if (!PACKET_get_net_2(&extensions, &type)
+ || !PACKET_get_length_prefixed_2(&extensions,
+ &extbody))
+ return -1;
+
+ if (type == TLSEXT_TYPE_supported_versions
+ && (!PACKET_get_net_2(&extbody, &negversion)
+ || PACKET_remaining(&extbody) != 0))
+ return -1;
+ }
+ }
+
+ while (PACKET_get_1(&payload, &data)) {
+ /* Create a new one byte long record for each byte in the
+ * record in the input buffer
+ */
+ char smallrec[MIN_RECORD_LEN] = {
+ 0, /* Content type */
+ 0, /* Version hi */
+ 0, /* Version lo */
+ 0, /* Length hi */
+ 1, /* Length lo */
+ 0 /* Data */
+ };
+
+ smallrec[CONTENTTYPEPOS] = contenttype;
+ smallrec[VERSIONHIPOS] = versionhi;
+ smallrec[VERSIONLOPOS] = versionlo;
+ smallrec[DATAPOS] = data;
+ ret = BIO_write(next, smallrec, MIN_RECORD_LEN);
+ if (ret <= 0)
+ return -1;
+ written++;
+ }
+ /*
+ * We can't fragment anything after the ServerHello (or CCS <=
+ * TLS1.2), otherwise we get a bad record MAC
+ */
+ if (contenttype == SSL3_RT_CHANGE_CIPHER_SPEC
+ || (negversion == TLS1_3_VERSION
+ && msgtype == SSL3_MT_SERVER_HELLO)) {
+ fragment = 0;
+ break;
+ }
+ }
+ }
+ /* Write any data we have left after fragmenting */
+ ret = 0;
+ if ((int)written < inl) {
+ ret = BIO_write(next, in + written, inl - written);
+ }
+
+ if (ret <= 0 && BIO_should_write(next))
+ BIO_set_retry_write(bio);
+ else
+ ret += written;
+ } else {
+ ctrs->wctr++;
+ BIO_set_retry_write(bio);
+ }
+
+ return ret;
+}
+
+static long async_ctrl(BIO *bio, int cmd, long num, void *ptr)
+{
+ long ret;
+ BIO *next = BIO_next(bio);
+
+ if (next == NULL)
+ return 0;
+
+ switch (cmd) {
+ case BIO_CTRL_DUP:
+ ret = 0L;
+ break;
+ default:
+ ret = BIO_ctrl(next, cmd, num, ptr);
+ break;
+ }
+ return ret;
+}
+
+static int async_gets(BIO *bio, char *buf, int size)
+{
+ /* We don't support this - not needed anyway */
+ return -1;
+}
+
+static int async_puts(BIO *bio, const char *str)
+{
+ return async_write(bio, str, strlen(str));
+}
+
+#define MAX_ATTEMPTS 100
+
+static int test_asyncio(int test)
+{
+ SSL_CTX *serverctx = NULL, *clientctx = NULL;
+ SSL *serverssl = NULL, *clientssl = NULL;
+ BIO *s_to_c_fbio = NULL, *c_to_s_fbio = NULL;
+ int testresult = 0, ret;
+ size_t i, j;
+ const char testdata[] = "Test data";
+ char buf[sizeof(testdata)];
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &serverctx, &clientctx, cert, privkey)))
+ goto end;
+
+ /*
+ * We do 2 test runs. The first time around we just do a normal handshake
+ * with lots of async io going on. The second time around we also break up
+ * all records so that the content is only one byte length (up until the
+ * CCS)
+ */
+ if (test == 1)
+ fragment = 1;
+
+
+ s_to_c_fbio = BIO_new(bio_f_async_filter());
+ c_to_s_fbio = BIO_new(bio_f_async_filter());
+ if (!TEST_ptr(s_to_c_fbio)
+ || !TEST_ptr(c_to_s_fbio)) {
+ BIO_free(s_to_c_fbio);
+ BIO_free(c_to_s_fbio);
+ goto end;
+ }
+
+ /* BIOs get freed on error */
+ if (!TEST_true(create_ssl_objects(serverctx, clientctx, &serverssl,
+ &clientssl, s_to_c_fbio, c_to_s_fbio))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ /*
+ * Send and receive some test data. Do the whole thing twice to ensure
+ * we hit at least one async event in both reading and writing
+ */
+ for (j = 0; j < 2; j++) {
+ int len;
+
+ /*
+ * Write some test data. It should never take more than 2 attempts
+ * (the first one might be a retryable fail).
+ */
+ for (ret = -1, i = 0, len = 0; len != sizeof(testdata) && i < 2;
+ i++) {
+ ret = SSL_write(clientssl, testdata + len,
+ sizeof(testdata) - len);
+ if (ret > 0) {
+ len += ret;
+ } else {
+ int ssl_error = SSL_get_error(clientssl, ret);
+
+ if (!TEST_false(ssl_error == SSL_ERROR_SYSCALL ||
+ ssl_error == SSL_ERROR_SSL))
+ goto end;
+ }
+ }
+ if (!TEST_size_t_eq(len, sizeof(testdata)))
+ goto end;
+
+ /*
+ * Now read the test data. It may take more attempts here because
+ * it could fail once for each byte read, including all overhead
+ * bytes from the record header/padding etc.
+ */
+ for (ret = -1, i = 0, len = 0; len != sizeof(testdata) &&
+ i < MAX_ATTEMPTS; i++) {
+ ret = SSL_read(serverssl, buf + len, sizeof(buf) - len);
+ if (ret > 0) {
+ len += ret;
+ } else {
+ int ssl_error = SSL_get_error(serverssl, ret);
+
+ if (!TEST_false(ssl_error == SSL_ERROR_SYSCALL ||
+ ssl_error == SSL_ERROR_SSL))
+ goto end;
+ }
+ }
+ if (!TEST_mem_eq(testdata, sizeof(testdata), buf, len))
+ goto end;
+ }
+
+ /* Also frees the BIOs */
+ SSL_free(clientssl);
+ SSL_free(serverssl);
+ clientssl = serverssl = NULL;
+
+ testresult = 1;
+
+ end:
+ SSL_free(clientssl);
+ SSL_free(serverssl);
+ SSL_CTX_free(clientctx);
+ SSL_CTX_free(serverctx);
+
+ return testresult;
+}
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(cert = test_get_argument(0))
+ || !TEST_ptr(privkey = test_get_argument(1)))
+ return 0;
+
+ ADD_ALL_TESTS(test_asyncio, 2);
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+ BIO_meth_free(methods_async);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asynctest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asynctest.c
new file mode 100644
index 000000000..9728a3791
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/asynctest.c
@@ -0,0 +1,291 @@
+/*
+ * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#ifdef _WIN32
+# include <windows.h>
+#endif
+
+#include <stdio.h>
+#include <string.h>
+#include <openssl/async.h>
+#include <openssl/crypto.h>
+
+static int ctr = 0;
+static ASYNC_JOB *currjob = NULL;
+
+static int only_pause(void *args)
+{
+ ASYNC_pause_job();
+
+ return 1;
+}
+
+static int add_two(void *args)
+{
+ ctr++;
+ ASYNC_pause_job();
+ ctr++;
+
+ return 2;
+}
+
+static int save_current(void *args)
+{
+ currjob = ASYNC_get_current_job();
+ ASYNC_pause_job();
+
+ return 1;
+}
+
+#define MAGIC_WAIT_FD ((OSSL_ASYNC_FD)99)
+static int waitfd(void *args)
+{
+ ASYNC_JOB *job;
+ ASYNC_WAIT_CTX *waitctx;
+ job = ASYNC_get_current_job();
+ if (job == NULL)
+ return 0;
+ waitctx = ASYNC_get_wait_ctx(job);
+ if (waitctx == NULL)
+ return 0;
+
+ /* First case: no fd added or removed */
+ ASYNC_pause_job();
+
+ /* Second case: one fd added */
+ if (!ASYNC_WAIT_CTX_set_wait_fd(waitctx, waitctx, MAGIC_WAIT_FD, NULL, NULL))
+ return 0;
+ ASYNC_pause_job();
+
+ /* Third case: all fd removed */
+ if (!ASYNC_WAIT_CTX_clear_fd(waitctx, waitctx))
+ return 0;
+ ASYNC_pause_job();
+
+ /* Last case: fd added and immediately removed */
+ if (!ASYNC_WAIT_CTX_set_wait_fd(waitctx, waitctx, MAGIC_WAIT_FD, NULL, NULL))
+ return 0;
+ if (!ASYNC_WAIT_CTX_clear_fd(waitctx, waitctx))
+ return 0;
+
+ return 1;
+}
+
+static int blockpause(void *args)
+{
+ ASYNC_block_pause();
+ ASYNC_pause_job();
+ ASYNC_unblock_pause();
+ ASYNC_pause_job();
+
+ return 1;
+}
+
+static int test_ASYNC_init_thread(void)
+{
+ ASYNC_JOB *job1 = NULL, *job2 = NULL, *job3 = NULL;
+ int funcret1, funcret2, funcret3;
+ ASYNC_WAIT_CTX *waitctx = NULL;
+
+ if ( !ASYNC_init_thread(2, 0)
+ || (waitctx = ASYNC_WAIT_CTX_new()) == NULL
+ || ASYNC_start_job(&job1, waitctx, &funcret1, only_pause, NULL, 0)
+ != ASYNC_PAUSE
+ || ASYNC_start_job(&job2, waitctx, &funcret2, only_pause, NULL, 0)
+ != ASYNC_PAUSE
+ || ASYNC_start_job(&job3, waitctx, &funcret3, only_pause, NULL, 0)
+ != ASYNC_NO_JOBS
+ || ASYNC_start_job(&job1, waitctx, &funcret1, only_pause, NULL, 0)
+ != ASYNC_FINISH
+ || ASYNC_start_job(&job3, waitctx, &funcret3, only_pause, NULL, 0)
+ != ASYNC_PAUSE
+ || ASYNC_start_job(&job2, waitctx, &funcret2, only_pause, NULL, 0)
+ != ASYNC_FINISH
+ || ASYNC_start_job(&job3, waitctx, &funcret3, only_pause, NULL, 0)
+ != ASYNC_FINISH
+ || funcret1 != 1
+ || funcret2 != 1
+ || funcret3 != 1) {
+ fprintf(stderr, "test_ASYNC_init_thread() failed\n");
+ ASYNC_WAIT_CTX_free(waitctx);
+ ASYNC_cleanup_thread();
+ return 0;
+ }
+
+ ASYNC_WAIT_CTX_free(waitctx);
+ ASYNC_cleanup_thread();
+ return 1;
+}
+
+static int test_ASYNC_start_job(void)
+{
+ ASYNC_JOB *job = NULL;
+ int funcret;
+ ASYNC_WAIT_CTX *waitctx = NULL;
+
+ ctr = 0;
+
+ if ( !ASYNC_init_thread(1, 0)
+ || (waitctx = ASYNC_WAIT_CTX_new()) == NULL
+ || ASYNC_start_job(&job, waitctx, &funcret, add_two, NULL, 0)
+ != ASYNC_PAUSE
+ || ctr != 1
+ || ASYNC_start_job(&job, waitctx, &funcret, add_two, NULL, 0)
+ != ASYNC_FINISH
+ || ctr != 2
+ || funcret != 2) {
+ fprintf(stderr, "test_ASYNC_start_job() failed\n");
+ ASYNC_WAIT_CTX_free(waitctx);
+ ASYNC_cleanup_thread();
+ return 0;
+ }
+
+ ASYNC_WAIT_CTX_free(waitctx);
+ ASYNC_cleanup_thread();
+ return 1;
+}
+
+static int test_ASYNC_get_current_job(void)
+{
+ ASYNC_JOB *job = NULL;
+ int funcret;
+ ASYNC_WAIT_CTX *waitctx = NULL;
+
+ currjob = NULL;
+
+ if ( !ASYNC_init_thread(1, 0)
+ || (waitctx = ASYNC_WAIT_CTX_new()) == NULL
+ || ASYNC_start_job(&job, waitctx, &funcret, save_current, NULL, 0)
+ != ASYNC_PAUSE
+ || currjob != job
+ || ASYNC_start_job(&job, waitctx, &funcret, save_current, NULL, 0)
+ != ASYNC_FINISH
+ || funcret != 1) {
+ fprintf(stderr, "test_ASYNC_get_current_job() failed\n");
+ ASYNC_WAIT_CTX_free(waitctx);
+ ASYNC_cleanup_thread();
+ return 0;
+ }
+
+ ASYNC_WAIT_CTX_free(waitctx);
+ ASYNC_cleanup_thread();
+ return 1;
+}
+
+static int test_ASYNC_WAIT_CTX_get_all_fds(void)
+{
+ ASYNC_JOB *job = NULL;
+ int funcret;
+ ASYNC_WAIT_CTX *waitctx = NULL;
+ OSSL_ASYNC_FD fd = OSSL_BAD_ASYNC_FD, delfd = OSSL_BAD_ASYNC_FD;
+ size_t numfds, numdelfds;
+
+ if ( !ASYNC_init_thread(1, 0)
+ || (waitctx = ASYNC_WAIT_CTX_new()) == NULL
+ /* On first run we're not expecting any wait fds */
+ || ASYNC_start_job(&job, waitctx, &funcret, waitfd, NULL, 0)
+ != ASYNC_PAUSE
+ || !ASYNC_WAIT_CTX_get_all_fds(waitctx, NULL, &numfds)
+ || numfds != 0
+ || !ASYNC_WAIT_CTX_get_changed_fds(waitctx, NULL, &numfds, NULL,
+ &numdelfds)
+ || numfds != 0
+ || numdelfds != 0
+ /* On second run we're expecting one added fd */
+ || ASYNC_start_job(&job, waitctx, &funcret, waitfd, NULL, 0)
+ != ASYNC_PAUSE
+ || !ASYNC_WAIT_CTX_get_all_fds(waitctx, NULL, &numfds)
+ || numfds != 1
+ || !ASYNC_WAIT_CTX_get_all_fds(waitctx, &fd, &numfds)
+ || fd != MAGIC_WAIT_FD
+ || (fd = OSSL_BAD_ASYNC_FD, 0) /* Assign to something else */
+ || !ASYNC_WAIT_CTX_get_changed_fds(waitctx, NULL, &numfds, NULL,
+ &numdelfds)
+ || numfds != 1
+ || numdelfds != 0
+ || !ASYNC_WAIT_CTX_get_changed_fds(waitctx, &fd, &numfds, NULL,
+ &numdelfds)
+ || fd != MAGIC_WAIT_FD
+ /* On third run we expect one deleted fd */
+ || ASYNC_start_job(&job, waitctx, &funcret, waitfd, NULL, 0)
+ != ASYNC_PAUSE
+ || !ASYNC_WAIT_CTX_get_all_fds(waitctx, NULL, &numfds)
+ || numfds != 0
+ || !ASYNC_WAIT_CTX_get_changed_fds(waitctx, NULL, &numfds, NULL,
+ &numdelfds)
+ || numfds != 0
+ || numdelfds != 1
+ || !ASYNC_WAIT_CTX_get_changed_fds(waitctx, NULL, &numfds, &delfd,
+ &numdelfds)
+ || delfd != MAGIC_WAIT_FD
+ /* On last run we are not expecting any wait fd */
+ || ASYNC_start_job(&job, waitctx, &funcret, waitfd, NULL, 0)
+ != ASYNC_FINISH
+ || !ASYNC_WAIT_CTX_get_all_fds(waitctx, NULL, &numfds)
+ || numfds != 0
+ || !ASYNC_WAIT_CTX_get_changed_fds(waitctx, NULL, &numfds, NULL,
+ &numdelfds)
+ || numfds != 0
+ || numdelfds != 0
+ || funcret != 1) {
+ fprintf(stderr, "test_ASYNC_get_wait_fd() failed\n");
+ ASYNC_WAIT_CTX_free(waitctx);
+ ASYNC_cleanup_thread();
+ return 0;
+ }
+
+ ASYNC_WAIT_CTX_free(waitctx);
+ ASYNC_cleanup_thread();
+ return 1;
+}
+
+static int test_ASYNC_block_pause(void)
+{
+ ASYNC_JOB *job = NULL;
+ int funcret;
+ ASYNC_WAIT_CTX *waitctx = NULL;
+
+ if ( !ASYNC_init_thread(1, 0)
+ || (waitctx = ASYNC_WAIT_CTX_new()) == NULL
+ || ASYNC_start_job(&job, waitctx, &funcret, blockpause, NULL, 0)
+ != ASYNC_PAUSE
+ || ASYNC_start_job(&job, waitctx, &funcret, blockpause, NULL, 0)
+ != ASYNC_FINISH
+ || funcret != 1) {
+ fprintf(stderr, "test_ASYNC_block_pause() failed\n");
+ ASYNC_WAIT_CTX_free(waitctx);
+ ASYNC_cleanup_thread();
+ return 0;
+ }
+
+ ASYNC_WAIT_CTX_free(waitctx);
+ ASYNC_cleanup_thread();
+ return 1;
+}
+
+int main(int argc, char **argv)
+{
+ if (!ASYNC_is_capable()) {
+ fprintf(stderr,
+ "OpenSSL build is not ASYNC capable - skipping async tests\n");
+ } else {
+ CRYPTO_set_mem_debug(1);
+ CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
+
+ if ( !test_ASYNC_init_thread()
+ || !test_ASYNC_start_job()
+ || !test_ASYNC_get_current_job()
+ || !test_ASYNC_WAIT_CTX_get_all_fds()
+ || !test_ASYNC_block_pause()) {
+ return 1;
+ }
+ }
+ printf("PASS\n");
+ return 0;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bad_dtls_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bad_dtls_test.c
new file mode 100644
index 000000000..e06206b6a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bad_dtls_test.c
@@ -0,0 +1,586 @@
+/*
+ * Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/*
+ * Unit test for Cisco DTLS1_BAD_VER session resume, as used by
+ * AnyConnect VPN protocol.
+ *
+ * This is designed to exercise the code paths in
+ * http://git.infradead.org/users/dwmw2/openconnect.git/blob/HEAD:/dtls.c
+ * which have frequently been affected by regressions in DTLS1_BAD_VER
+ * support.
+ *
+ * Note that unlike other SSL tests, we don't test against our own SSL
+ * server method. Firstly because we don't have one; we *only* support
+ * DTLS1_BAD_VER as a client. And secondly because even if that were
+ * fixed up it's the wrong thing to test against - because if changes
+ * are made in generic DTLS code which don't take DTLS1_BAD_VER into
+ * account, there's plenty of scope for making those changes such that
+ * they break *both* the client and the server in the same way.
+ *
+ * So we handle the server side manually. In a session resume there isn't
+ * much to be done anyway.
+ */
+#include <string.h>
+
+#include <openssl/opensslconf.h>
+#include <openssl/bio.h>
+#include <openssl/crypto.h>
+#include <openssl/evp.h>
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+#include <openssl/rand.h>
+#include <openssl/kdf.h>
+#include "../ssl/packet_local.h"
+#include "internal/nelem.h"
+#include "testutil.h"
+
+/* For DTLS1_BAD_VER packets the MAC doesn't include the handshake header */
+#define MAC_OFFSET (DTLS1_RT_HEADER_LENGTH + DTLS1_HM_HEADER_LENGTH)
+
+static unsigned char client_random[SSL3_RANDOM_SIZE];
+static unsigned char server_random[SSL3_RANDOM_SIZE];
+
+/* These are all generated locally, sized purely according to our own whim */
+static unsigned char session_id[32];
+static unsigned char master_secret[48];
+static unsigned char cookie[20];
+
+/* We've hard-coded the cipher suite; we know it's 104 bytes */
+static unsigned char key_block[104];
+#define mac_key (key_block + 20)
+#define dec_key (key_block + 40)
+#define enc_key (key_block + 56)
+
+static EVP_MD_CTX *handshake_md;
+
+static int do_PRF(const void *seed1, int seed1_len,
+ const void *seed2, int seed2_len,
+ const void *seed3, int seed3_len,
+ unsigned char *out, int olen)
+{
+ EVP_PKEY_CTX *pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_TLS1_PRF, NULL);
+ size_t outlen = olen;
+
+ /* No error handling. If it all screws up, the test will fail anyway */
+ EVP_PKEY_derive_init(pctx);
+ EVP_PKEY_CTX_set_tls1_prf_md(pctx, EVP_md5_sha1());
+ EVP_PKEY_CTX_set1_tls1_prf_secret(pctx, master_secret, sizeof(master_secret));
+ EVP_PKEY_CTX_add1_tls1_prf_seed(pctx, seed1, seed1_len);
+ EVP_PKEY_CTX_add1_tls1_prf_seed(pctx, seed2, seed2_len);
+ EVP_PKEY_CTX_add1_tls1_prf_seed(pctx, seed3, seed3_len);
+ EVP_PKEY_derive(pctx, out, &outlen);
+ EVP_PKEY_CTX_free(pctx);
+ return 1;
+}
+
+static SSL_SESSION *client_session(void)
+{
+ static unsigned char session_asn1[] = {
+ 0x30, 0x5F, /* SEQUENCE, length 0x5F */
+ 0x02, 0x01, 0x01, /* INTEGER, SSL_SESSION_ASN1_VERSION */
+ 0x02, 0x02, 0x01, 0x00, /* INTEGER, DTLS1_BAD_VER */
+ 0x04, 0x02, 0x00, 0x2F, /* OCTET_STRING, AES128-SHA */
+ 0x04, 0x20, /* OCTET_STRING, session id */
+#define SS_SESSID_OFS 15 /* Session ID goes here */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x30, /* OCTET_STRING, master secret */
+#define SS_SECRET_OFS 49 /* Master secret goes here */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ };
+ const unsigned char *p = session_asn1;
+
+ /* Copy the randomly-generated fields into the above ASN1 */
+ memcpy(session_asn1 + SS_SESSID_OFS, session_id, sizeof(session_id));
+ memcpy(session_asn1 + SS_SECRET_OFS, master_secret, sizeof(master_secret));
+
+ return d2i_SSL_SESSION(NULL, &p, sizeof(session_asn1));
+}
+
+/* Returns 1 for initial ClientHello, 2 for ClientHello with cookie */
+static int validate_client_hello(BIO *wbio)
+{
+ PACKET pkt, pkt2;
+ long len;
+ unsigned char *data;
+ int cookie_found = 0;
+ unsigned int u = 0;
+
+ len = BIO_get_mem_data(wbio, (char **)&data);
+ if (!PACKET_buf_init(&pkt, data, len))
+ return 0;
+
+ /* Check record header type */
+ if (!PACKET_get_1(&pkt, &u) || u != SSL3_RT_HANDSHAKE)
+ return 0;
+ /* Version */
+ if (!PACKET_get_net_2(&pkt, &u) || u != DTLS1_BAD_VER)
+ return 0;
+ /* Skip the rest of the record header */
+ if (!PACKET_forward(&pkt, DTLS1_RT_HEADER_LENGTH - 3))
+ return 0;
+
+ /* Check it's a ClientHello */
+ if (!PACKET_get_1(&pkt, &u) || u != SSL3_MT_CLIENT_HELLO)
+ return 0;
+ /* Skip the rest of the handshake message header */
+ if (!PACKET_forward(&pkt, DTLS1_HM_HEADER_LENGTH - 1))
+ return 0;
+
+ /* Check client version */
+ if (!PACKET_get_net_2(&pkt, &u) || u != DTLS1_BAD_VER)
+ return 0;
+
+ /* Store random */
+ if (!PACKET_copy_bytes(&pkt, client_random, SSL3_RANDOM_SIZE))
+ return 0;
+
+ /* Check session id length and content */
+ if (!PACKET_get_length_prefixed_1(&pkt, &pkt2) ||
+ !PACKET_equal(&pkt2, session_id, sizeof(session_id)))
+ return 0;
+
+ /* Check cookie */
+ if (!PACKET_get_length_prefixed_1(&pkt, &pkt2))
+ return 0;
+ if (PACKET_remaining(&pkt2)) {
+ if (!PACKET_equal(&pkt2, cookie, sizeof(cookie)))
+ return 0;
+ cookie_found = 1;
+ }
+
+ /* Skip ciphers */
+ if (!PACKET_get_net_2(&pkt, &u) || !PACKET_forward(&pkt, u))
+ return 0;
+
+ /* Skip compression */
+ if (!PACKET_get_1(&pkt, &u) || !PACKET_forward(&pkt, u))
+ return 0;
+
+ /* Skip extensions */
+ if (!PACKET_get_net_2(&pkt, &u) || !PACKET_forward(&pkt, u))
+ return 0;
+
+ /* Now we are at the end */
+ if (PACKET_remaining(&pkt))
+ return 0;
+
+ /* Update handshake MAC for second ClientHello (with cookie) */
+ if (cookie_found && !EVP_DigestUpdate(handshake_md, data + MAC_OFFSET,
+ len - MAC_OFFSET))
+ return 0;
+
+ (void)BIO_reset(wbio);
+
+ return 1 + cookie_found;
+}
+
+static int send_hello_verify(BIO *rbio)
+{
+ static unsigned char hello_verify[] = {
+ 0x16, /* Handshake */
+ 0x01, 0x00, /* DTLS1_BAD_VER */
+ 0x00, 0x00, /* Epoch 0 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Seq# 0 */
+ 0x00, 0x23, /* Length */
+ 0x03, /* Hello Verify */
+ 0x00, 0x00, 0x17, /* Length */
+ 0x00, 0x00, /* Seq# 0 */
+ 0x00, 0x00, 0x00, /* Fragment offset */
+ 0x00, 0x00, 0x17, /* Fragment length */
+ 0x01, 0x00, /* DTLS1_BAD_VER */
+ 0x14, /* Cookie length */
+#define HV_COOKIE_OFS 28 /* Cookie goes here */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ };
+
+ memcpy(hello_verify + HV_COOKIE_OFS, cookie, sizeof(cookie));
+
+ BIO_write(rbio, hello_verify, sizeof(hello_verify));
+
+ return 1;
+}
+
+static int send_server_hello(BIO *rbio)
+{
+ static unsigned char server_hello[] = {
+ 0x16, /* Handshake */
+ 0x01, 0x00, /* DTLS1_BAD_VER */
+ 0x00, 0x00, /* Epoch 0 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, /* Seq# 1 */
+ 0x00, 0x52, /* Length */
+ 0x02, /* Server Hello */
+ 0x00, 0x00, 0x46, /* Length */
+ 0x00, 0x01, /* Seq# */
+ 0x00, 0x00, 0x00, /* Fragment offset */
+ 0x00, 0x00, 0x46, /* Fragment length */
+ 0x01, 0x00, /* DTLS1_BAD_VER */
+#define SH_RANDOM_OFS 27 /* Server random goes here */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x20, /* Session ID length */
+#define SH_SESSID_OFS 60 /* Session ID goes here */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x2f, /* Cipher suite AES128-SHA */
+ 0x00, /* Compression null */
+ };
+ static unsigned char change_cipher_spec[] = {
+ 0x14, /* Change Cipher Spec */
+ 0x01, 0x00, /* DTLS1_BAD_VER */
+ 0x00, 0x00, /* Epoch 0 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, /* Seq# 2 */
+ 0x00, 0x03, /* Length */
+ 0x01, 0x00, 0x02, /* Message */
+ };
+
+ memcpy(server_hello + SH_RANDOM_OFS, server_random, sizeof(server_random));
+ memcpy(server_hello + SH_SESSID_OFS, session_id, sizeof(session_id));
+
+ if (!EVP_DigestUpdate(handshake_md, server_hello + MAC_OFFSET,
+ sizeof(server_hello) - MAC_OFFSET))
+ return 0;
+
+ BIO_write(rbio, server_hello, sizeof(server_hello));
+ BIO_write(rbio, change_cipher_spec, sizeof(change_cipher_spec));
+
+ return 1;
+}
+
+/* Create header, HMAC, pad, encrypt and send a record */
+static int send_record(BIO *rbio, unsigned char type, uint64_t seqnr,
+ const void *msg, size_t len)
+{
+ /* Note that the order of the record header fields on the wire,
+ * and in the HMAC, is different. So we just keep them in separate
+ * variables and handle them individually. */
+ static unsigned char epoch[2] = { 0x00, 0x01 };
+ static unsigned char seq[6] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
+ static unsigned char ver[2] = { 0x01, 0x00 }; /* DTLS1_BAD_VER */
+ unsigned char lenbytes[2];
+ HMAC_CTX *ctx;
+ EVP_CIPHER_CTX *enc_ctx;
+ unsigned char iv[16];
+ unsigned char pad;
+ unsigned char *enc;
+
+ seq[0] = (seqnr >> 40) & 0xff;
+ seq[1] = (seqnr >> 32) & 0xff;
+ seq[2] = (seqnr >> 24) & 0xff;
+ seq[3] = (seqnr >> 16) & 0xff;
+ seq[4] = (seqnr >> 8) & 0xff;
+ seq[5] = seqnr & 0xff;
+
+ pad = 15 - ((len + SHA_DIGEST_LENGTH) % 16);
+ enc = OPENSSL_malloc(len + SHA_DIGEST_LENGTH + 1 + pad);
+ if (enc == NULL)
+ return 0;
+
+ /* Copy record to encryption buffer */
+ memcpy(enc, msg, len);
+
+ /* Append HMAC to data */
+ ctx = HMAC_CTX_new();
+ HMAC_Init_ex(ctx, mac_key, 20, EVP_sha1(), NULL);
+ HMAC_Update(ctx, epoch, 2);
+ HMAC_Update(ctx, seq, 6);
+ HMAC_Update(ctx, &type, 1);
+ HMAC_Update(ctx, ver, 2); /* Version */
+ lenbytes[0] = (unsigned char)(len >> 8);
+ lenbytes[1] = (unsigned char)(len);
+ HMAC_Update(ctx, lenbytes, 2); /* Length */
+ HMAC_Update(ctx, enc, len); /* Finally the data itself */
+ HMAC_Final(ctx, enc + len, NULL);
+ HMAC_CTX_free(ctx);
+
+ /* Append padding bytes */
+ len += SHA_DIGEST_LENGTH;
+ do {
+ enc[len++] = pad;
+ } while (len % 16);
+
+ /* Generate IV, and encrypt */
+ RAND_bytes(iv, sizeof(iv));
+ enc_ctx = EVP_CIPHER_CTX_new();
+ EVP_CipherInit_ex(enc_ctx, EVP_aes_128_cbc(), NULL, enc_key, iv, 1);
+ EVP_Cipher(enc_ctx, enc, enc, len);
+ EVP_CIPHER_CTX_free(enc_ctx);
+
+ /* Finally write header (from fragmented variables), IV and encrypted record */
+ BIO_write(rbio, &type, 1);
+ BIO_write(rbio, ver, 2);
+ BIO_write(rbio, epoch, 2);
+ BIO_write(rbio, seq, 6);
+ lenbytes[0] = (unsigned char)((len + sizeof(iv)) >> 8);
+ lenbytes[1] = (unsigned char)(len + sizeof(iv));
+ BIO_write(rbio, lenbytes, 2);
+
+ BIO_write(rbio, iv, sizeof(iv));
+ BIO_write(rbio, enc, len);
+
+ OPENSSL_free(enc);
+ return 1;
+}
+
+static int send_finished(SSL *s, BIO *rbio)
+{
+ static unsigned char finished_msg[DTLS1_HM_HEADER_LENGTH +
+ TLS1_FINISH_MAC_LENGTH] = {
+ 0x14, /* Finished */
+ 0x00, 0x00, 0x0c, /* Length */
+ 0x00, 0x03, /* Seq# 3 */
+ 0x00, 0x00, 0x00, /* Fragment offset */
+ 0x00, 0x00, 0x0c, /* Fragment length */
+ /* Finished MAC (12 bytes) */
+ };
+ unsigned char handshake_hash[EVP_MAX_MD_SIZE];
+
+ /* Derive key material */
+ do_PRF(TLS_MD_KEY_EXPANSION_CONST, TLS_MD_KEY_EXPANSION_CONST_SIZE,
+ server_random, SSL3_RANDOM_SIZE,
+ client_random, SSL3_RANDOM_SIZE,
+ key_block, sizeof(key_block));
+
+ /* Generate Finished MAC */
+ if (!EVP_DigestFinal_ex(handshake_md, handshake_hash, NULL))
+ return 0;
+
+ do_PRF(TLS_MD_SERVER_FINISH_CONST, TLS_MD_SERVER_FINISH_CONST_SIZE,
+ handshake_hash, EVP_MD_CTX_size(handshake_md),
+ NULL, 0,
+ finished_msg + DTLS1_HM_HEADER_LENGTH, TLS1_FINISH_MAC_LENGTH);
+
+ return send_record(rbio, SSL3_RT_HANDSHAKE, 0,
+ finished_msg, sizeof(finished_msg));
+}
+
+static int validate_ccs(BIO *wbio)
+{
+ PACKET pkt;
+ long len;
+ unsigned char *data;
+ unsigned int u;
+
+ len = BIO_get_mem_data(wbio, (char **)&data);
+ if (!PACKET_buf_init(&pkt, data, len))
+ return 0;
+
+ /* Check record header type */
+ if (!PACKET_get_1(&pkt, &u) || u != SSL3_RT_CHANGE_CIPHER_SPEC)
+ return 0;
+ /* Version */
+ if (!PACKET_get_net_2(&pkt, &u) || u != DTLS1_BAD_VER)
+ return 0;
+ /* Skip the rest of the record header */
+ if (!PACKET_forward(&pkt, DTLS1_RT_HEADER_LENGTH - 3))
+ return 0;
+
+ /* Check ChangeCipherSpec message */
+ if (!PACKET_get_1(&pkt, &u) || u != SSL3_MT_CCS)
+ return 0;
+ /* A DTLS1_BAD_VER ChangeCipherSpec also contains the
+ * handshake sequence number (which is 2 here) */
+ if (!PACKET_get_net_2(&pkt, &u) || u != 0x0002)
+ return 0;
+
+ /* Now check the Finished packet */
+ if (!PACKET_get_1(&pkt, &u) || u != SSL3_RT_HANDSHAKE)
+ return 0;
+ if (!PACKET_get_net_2(&pkt, &u) || u != DTLS1_BAD_VER)
+ return 0;
+
+ /* Check epoch is now 1 */
+ if (!PACKET_get_net_2(&pkt, &u) || u != 0x0001)
+ return 0;
+
+ /* That'll do for now. If OpenSSL accepted *our* Finished packet
+ * then it's evidently remembered that DTLS1_BAD_VER doesn't
+ * include the handshake header in the MAC. There's not a lot of
+ * point in implementing decryption here, just to check that it
+ * continues to get it right for one more packet. */
+
+ return 1;
+}
+
+#define NODROP(x) { x##UL, 0 }
+#define DROP(x) { x##UL, 1 }
+
+static struct {
+ uint64_t seq;
+ int drop;
+} tests[] = {
+ NODROP(1), NODROP(3), NODROP(2),
+ NODROP(0x1234), NODROP(0x1230), NODROP(0x1235),
+ NODROP(0xffff), NODROP(0x10001), NODROP(0xfffe), NODROP(0x10000),
+ DROP(0x10001), DROP(0xff), NODROP(0x100000), NODROP(0x800000), NODROP(0x7fffe1),
+ NODROP(0xffffff), NODROP(0x1000000), NODROP(0xfffffe), DROP(0xffffff), NODROP(0x1000010),
+ NODROP(0xfffffd), NODROP(0x1000011), DROP(0x12), NODROP(0x1000012),
+ NODROP(0x1ffffff), NODROP(0x2000000), DROP(0x1ff00fe), NODROP(0x2000001),
+ NODROP(0x20fffff), NODROP(0x2105500), DROP(0x20ffffe), NODROP(0x21054ff),
+ NODROP(0x211ffff), DROP(0x2110000), NODROP(0x2120000)
+ /* The last test should be NODROP, because a DROP wouldn't get tested. */
+};
+
+static int test_bad_dtls(void)
+{
+ SSL_SESSION *sess = NULL;
+ SSL_CTX *ctx = NULL;
+ SSL *con = NULL;
+ BIO *rbio = NULL;
+ BIO *wbio = NULL;
+ time_t now = 0;
+ int testresult = 0;
+ int ret;
+ int i;
+
+ RAND_bytes(session_id, sizeof(session_id));
+ RAND_bytes(master_secret, sizeof(master_secret));
+ RAND_bytes(cookie, sizeof(cookie));
+ RAND_bytes(server_random + 4, sizeof(server_random) - 4);
+
+ now = time(NULL);
+ memcpy(server_random, &now, sizeof(now));
+
+ sess = client_session();
+ if (!TEST_ptr(sess))
+ goto end;
+
+ handshake_md = EVP_MD_CTX_new();
+ if (!TEST_ptr(handshake_md)
+ || !TEST_true(EVP_DigestInit_ex(handshake_md, EVP_md5_sha1(),
+ NULL)))
+ goto end;
+
+ ctx = SSL_CTX_new(DTLS_client_method());
+ if (!TEST_ptr(ctx)
+ || !TEST_true(SSL_CTX_set_min_proto_version(ctx, DTLS1_BAD_VER))
+ || !TEST_true(SSL_CTX_set_max_proto_version(ctx, DTLS1_BAD_VER))
+ || !TEST_true(SSL_CTX_set_cipher_list(ctx, "AES128-SHA")))
+ goto end;
+
+ con = SSL_new(ctx);
+ if (!TEST_ptr(con)
+ || !TEST_true(SSL_set_session(con, sess)))
+ goto end;
+ SSL_SESSION_free(sess);
+
+ rbio = BIO_new(BIO_s_mem());
+ wbio = BIO_new(BIO_s_mem());
+
+ if (!TEST_ptr(rbio)
+ || !TEST_ptr(wbio))
+ goto end;
+
+ SSL_set_bio(con, rbio, wbio);
+
+ if (!TEST_true(BIO_up_ref(rbio))) {
+ /*
+ * We can't up-ref but we assigned ownership to con, so we shouldn't
+ * free in the "end" block
+ */
+ rbio = wbio = NULL;
+ goto end;
+ }
+
+ if (!TEST_true(BIO_up_ref(wbio))) {
+ wbio = NULL;
+ goto end;
+ }
+
+ SSL_set_connect_state(con);
+
+ /* Send initial ClientHello */
+ ret = SSL_do_handshake(con);
+ if (!TEST_int_le(ret, 0)
+ || !TEST_int_eq(SSL_get_error(con, ret), SSL_ERROR_WANT_READ)
+ || !TEST_int_eq(validate_client_hello(wbio), 1)
+ || !TEST_true(send_hello_verify(rbio)))
+ goto end;
+
+ ret = SSL_do_handshake(con);
+ if (!TEST_int_le(ret, 0)
+ || !TEST_int_eq(SSL_get_error(con, ret), SSL_ERROR_WANT_READ)
+ || !TEST_int_eq(validate_client_hello(wbio), 2)
+ || !TEST_true(send_server_hello(rbio)))
+ goto end;
+
+ ret = SSL_do_handshake(con);
+ if (!TEST_int_le(ret, 0)
+ || !TEST_int_eq(SSL_get_error(con, ret), SSL_ERROR_WANT_READ)
+ || !TEST_true(send_finished(con, rbio)))
+ goto end;
+
+ ret = SSL_do_handshake(con);
+ if (!TEST_int_gt(ret, 0)
+ || !TEST_true(validate_ccs(wbio)))
+ goto end;
+
+ /* While we're here and crafting packets by hand, we might as well do a
+ bit of a stress test on the DTLS record replay handling. Not Cisco-DTLS
+ specific but useful anyway for the general case. It's been broken
+ before, and in fact was broken even for a basic 0, 2, 1 test case
+ when this test was first added.... */
+ for (i = 0; i < (int)OSSL_NELEM(tests); i++) {
+ uint64_t recv_buf[2];
+
+ if (!TEST_true(send_record(rbio, SSL3_RT_APPLICATION_DATA, tests[i].seq,
+ &tests[i].seq, sizeof(uint64_t)))) {
+ TEST_error("Failed to send data seq #0x%x%08x (%d)\n",
+ (unsigned int)(tests[i].seq >> 32), (unsigned int)tests[i].seq, i);
+ goto end;
+ }
+
+ if (tests[i].drop)
+ continue;
+
+ ret = SSL_read(con, recv_buf, 2 * sizeof(uint64_t));
+ if (!TEST_int_eq(ret, (int)sizeof(uint64_t))) {
+ TEST_error("SSL_read failed or wrong size on seq#0x%x%08x (%d)\n",
+ (unsigned int)(tests[i].seq >> 32), (unsigned int)tests[i].seq, i);
+ goto end;
+ }
+ if (!TEST_true(recv_buf[0] == tests[i].seq))
+ goto end;
+ }
+
+ /* The last test cannot be DROP() */
+ if (!TEST_false(tests[i-1].drop))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ BIO_free(rbio);
+ BIO_free(wbio);
+ SSL_free(con);
+ SSL_CTX_free(ctx);
+ EVP_MD_CTX_free(handshake_md);
+
+ return testresult;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_bad_dtls);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bftest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bftest.c
new file mode 100644
index 000000000..5abb81d7c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bftest.c
@@ -0,0 +1,461 @@
+/*
+ * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/*
+ * This has been a quickly hacked 'ideatest.c'. When I add tests for other
+ * RC2 modes, more of the code will be uncommented.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <openssl/opensslconf.h> /* To see if OPENSSL_NO_BF is defined */
+#include "testutil.h"
+
+#include "internal/nelem.h"
+
+#ifndef OPENSSL_NO_BF
+# include <openssl/blowfish.h>
+
+# ifdef CHARSET_EBCDIC
+# include <openssl/ebcdic.h>
+# endif
+
+static char bf_key[2][30] = {
+ "abcdefghijklmnopqrstuvwxyz",
+ "Who is John Galt?"
+};
+
+/* big endian */
+static BF_LONG bf_plain[2][2] = {
+ {0x424c4f57L, 0x46495348L},
+ {0xfedcba98L, 0x76543210L}
+};
+
+static BF_LONG bf_cipher[2][2] = {
+ {0x324ed0feL, 0xf413a203L},
+ {0xcc91732bL, 0x8022f684L}
+};
+
+/************/
+
+/* Lets use the DES test vectors :-) */
+# define NUM_TESTS 34
+static unsigned char ecb_data[NUM_TESTS][8] = {
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
+ {0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11},
+ {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF},
+ {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10},
+ {0x7C, 0xA1, 0x10, 0x45, 0x4A, 0x1A, 0x6E, 0x57},
+ {0x01, 0x31, 0xD9, 0x61, 0x9D, 0xC1, 0x37, 0x6E},
+ {0x07, 0xA1, 0x13, 0x3E, 0x4A, 0x0B, 0x26, 0x86},
+ {0x38, 0x49, 0x67, 0x4C, 0x26, 0x02, 0x31, 0x9E},
+ {0x04, 0xB9, 0x15, 0xBA, 0x43, 0xFE, 0xB5, 0xB6},
+ {0x01, 0x13, 0xB9, 0x70, 0xFD, 0x34, 0xF2, 0xCE},
+ {0x01, 0x70, 0xF1, 0x75, 0x46, 0x8F, 0xB5, 0xE6},
+ {0x43, 0x29, 0x7F, 0xAD, 0x38, 0xE3, 0x73, 0xFE},
+ {0x07, 0xA7, 0x13, 0x70, 0x45, 0xDA, 0x2A, 0x16},
+ {0x04, 0x68, 0x91, 0x04, 0xC2, 0xFD, 0x3B, 0x2F},
+ {0x37, 0xD0, 0x6B, 0xB5, 0x16, 0xCB, 0x75, 0x46},
+ {0x1F, 0x08, 0x26, 0x0D, 0x1A, 0xC2, 0x46, 0x5E},
+ {0x58, 0x40, 0x23, 0x64, 0x1A, 0xBA, 0x61, 0x76},
+ {0x02, 0x58, 0x16, 0x16, 0x46, 0x29, 0xB0, 0x07},
+ {0x49, 0x79, 0x3E, 0xBC, 0x79, 0xB3, 0x25, 0x8F},
+ {0x4F, 0xB0, 0x5E, 0x15, 0x15, 0xAB, 0x73, 0xA7},
+ {0x49, 0xE9, 0x5D, 0x6D, 0x4C, 0xA2, 0x29, 0xBF},
+ {0x01, 0x83, 0x10, 0xDC, 0x40, 0x9B, 0x26, 0xD6},
+ {0x1C, 0x58, 0x7F, 0x1C, 0x13, 0x92, 0x4F, 0xEF},
+ {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01},
+ {0x1F, 0x1F, 0x1F, 0x1F, 0x0E, 0x0E, 0x0E, 0x0E},
+ {0xE0, 0xFE, 0xE0, 0xFE, 0xF1, 0xFE, 0xF1, 0xFE},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
+ {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF},
+ {0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10}
+};
+
+static unsigned char plain_data[NUM_TESTS][8] = {
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
+ {0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01},
+ {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11},
+ {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11},
+ {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF},
+ {0x01, 0xA1, 0xD6, 0xD0, 0x39, 0x77, 0x67, 0x42},
+ {0x5C, 0xD5, 0x4C, 0xA8, 0x3D, 0xEF, 0x57, 0xDA},
+ {0x02, 0x48, 0xD4, 0x38, 0x06, 0xF6, 0x71, 0x72},
+ {0x51, 0x45, 0x4B, 0x58, 0x2D, 0xDF, 0x44, 0x0A},
+ {0x42, 0xFD, 0x44, 0x30, 0x59, 0x57, 0x7F, 0xA2},
+ {0x05, 0x9B, 0x5E, 0x08, 0x51, 0xCF, 0x14, 0x3A},
+ {0x07, 0x56, 0xD8, 0xE0, 0x77, 0x47, 0x61, 0xD2},
+ {0x76, 0x25, 0x14, 0xB8, 0x29, 0xBF, 0x48, 0x6A},
+ {0x3B, 0xDD, 0x11, 0x90, 0x49, 0x37, 0x28, 0x02},
+ {0x26, 0x95, 0x5F, 0x68, 0x35, 0xAF, 0x60, 0x9A},
+ {0x16, 0x4D, 0x5E, 0x40, 0x4F, 0x27, 0x52, 0x32},
+ {0x6B, 0x05, 0x6E, 0x18, 0x75, 0x9F, 0x5C, 0xCA},
+ {0x00, 0x4B, 0xD6, 0xEF, 0x09, 0x17, 0x60, 0x62},
+ {0x48, 0x0D, 0x39, 0x00, 0x6E, 0xE7, 0x62, 0xF2},
+ {0x43, 0x75, 0x40, 0xC8, 0x69, 0x8F, 0x3C, 0xFA},
+ {0x07, 0x2D, 0x43, 0xA0, 0x77, 0x07, 0x52, 0x92},
+ {0x02, 0xFE, 0x55, 0x77, 0x81, 0x17, 0xF1, 0x2A},
+ {0x1D, 0x9D, 0x5C, 0x50, 0x18, 0xF7, 0x28, 0xC2},
+ {0x30, 0x55, 0x32, 0x28, 0x6D, 0x6F, 0x29, 0x5A},
+ {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF},
+ {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF},
+ {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF},
+ {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
+};
+
+static unsigned char cipher_data[NUM_TESTS][8] = {
+ {0x4E, 0xF9, 0x97, 0x45, 0x61, 0x98, 0xDD, 0x78},
+ {0x51, 0x86, 0x6F, 0xD5, 0xB8, 0x5E, 0xCB, 0x8A},
+ {0x7D, 0x85, 0x6F, 0x9A, 0x61, 0x30, 0x63, 0xF2},
+ {0x24, 0x66, 0xDD, 0x87, 0x8B, 0x96, 0x3C, 0x9D},
+ {0x61, 0xF9, 0xC3, 0x80, 0x22, 0x81, 0xB0, 0x96},
+ {0x7D, 0x0C, 0xC6, 0x30, 0xAF, 0xDA, 0x1E, 0xC7},
+ {0x4E, 0xF9, 0x97, 0x45, 0x61, 0x98, 0xDD, 0x78},
+ {0x0A, 0xCE, 0xAB, 0x0F, 0xC6, 0xA0, 0xA2, 0x8D},
+ {0x59, 0xC6, 0x82, 0x45, 0xEB, 0x05, 0x28, 0x2B},
+ {0xB1, 0xB8, 0xCC, 0x0B, 0x25, 0x0F, 0x09, 0xA0},
+ {0x17, 0x30, 0xE5, 0x77, 0x8B, 0xEA, 0x1D, 0xA4},
+ {0xA2, 0x5E, 0x78, 0x56, 0xCF, 0x26, 0x51, 0xEB},
+ {0x35, 0x38, 0x82, 0xB1, 0x09, 0xCE, 0x8F, 0x1A},
+ {0x48, 0xF4, 0xD0, 0x88, 0x4C, 0x37, 0x99, 0x18},
+ {0x43, 0x21, 0x93, 0xB7, 0x89, 0x51, 0xFC, 0x98},
+ {0x13, 0xF0, 0x41, 0x54, 0xD6, 0x9D, 0x1A, 0xE5},
+ {0x2E, 0xED, 0xDA, 0x93, 0xFF, 0xD3, 0x9C, 0x79},
+ {0xD8, 0x87, 0xE0, 0x39, 0x3C, 0x2D, 0xA6, 0xE3},
+ {0x5F, 0x99, 0xD0, 0x4F, 0x5B, 0x16, 0x39, 0x69},
+ {0x4A, 0x05, 0x7A, 0x3B, 0x24, 0xD3, 0x97, 0x7B},
+ {0x45, 0x20, 0x31, 0xC1, 0xE4, 0xFA, 0xDA, 0x8E},
+ {0x75, 0x55, 0xAE, 0x39, 0xF5, 0x9B, 0x87, 0xBD},
+ {0x53, 0xC5, 0x5F, 0x9C, 0xB4, 0x9F, 0xC0, 0x19},
+ {0x7A, 0x8E, 0x7B, 0xFA, 0x93, 0x7E, 0x89, 0xA3},
+ {0xCF, 0x9C, 0x5D, 0x7A, 0x49, 0x86, 0xAD, 0xB5},
+ {0xD1, 0xAB, 0xB2, 0x90, 0x65, 0x8B, 0xC7, 0x78},
+ {0x55, 0xCB, 0x37, 0x74, 0xD1, 0x3E, 0xF2, 0x01},
+ {0xFA, 0x34, 0xEC, 0x48, 0x47, 0xB2, 0x68, 0xB2},
+ {0xA7, 0x90, 0x79, 0x51, 0x08, 0xEA, 0x3C, 0xAE},
+ {0xC3, 0x9E, 0x07, 0x2D, 0x9F, 0xAC, 0x63, 0x1D},
+ {0x01, 0x49, 0x33, 0xE0, 0xCD, 0xAF, 0xF6, 0xE4},
+ {0xF2, 0x1E, 0x9A, 0x77, 0xB7, 0x1C, 0x49, 0xBC},
+ {0x24, 0x59, 0x46, 0x88, 0x57, 0x54, 0x36, 0x9A},
+ {0x6B, 0x5C, 0x5A, 0x9C, 0x5D, 0x9E, 0x0A, 0x5A},
+};
+
+static unsigned char cbc_key[16] = {
+ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
+ 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87
+};
+static unsigned char cbc_iv[8] =
+ { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 };
+static char cbc_data[40] = "7654321 Now is the time for ";
+static unsigned char cbc_ok[32] = {
+ 0x6B, 0x77, 0xB4, 0xD6, 0x30, 0x06, 0xDE, 0xE6,
+ 0x05, 0xB1, 0x56, 0xE2, 0x74, 0x03, 0x97, 0x93,
+ 0x58, 0xDE, 0xB9, 0xE7, 0x15, 0x46, 0x16, 0xD9,
+ 0x59, 0xF1, 0x65, 0x2B, 0xD5, 0xFF, 0x92, 0xCC
+};
+
+static unsigned char cfb64_ok[] = {
+ 0xE7, 0x32, 0x14, 0xA2, 0x82, 0x21, 0x39, 0xCA,
+ 0xF2, 0x6E, 0xCF, 0x6D, 0x2E, 0xB9, 0xE7, 0x6E,
+ 0x3D, 0xA3, 0xDE, 0x04, 0xD1, 0x51, 0x72, 0x00,
+ 0x51, 0x9D, 0x57, 0xA6, 0xC3
+};
+
+static unsigned char ofb64_ok[] = {
+ 0xE7, 0x32, 0x14, 0xA2, 0x82, 0x21, 0x39, 0xCA,
+ 0x62, 0xB3, 0x43, 0xCC, 0x5B, 0x65, 0x58, 0x73,
+ 0x10, 0xDD, 0x90, 0x8D, 0x0C, 0x24, 0x1B, 0x22,
+ 0x63, 0xC2, 0xCF, 0x80, 0xDA
+};
+
+# define KEY_TEST_NUM 25
+static unsigned char key_test[KEY_TEST_NUM] = {
+ 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87,
+ 0x78, 0x69, 0x5a, 0x4b, 0x3c, 0x2d, 0x1e, 0x0f,
+ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
+ 0x88
+};
+
+static unsigned char key_data[8] =
+ { 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10 };
+
+static unsigned char key_out[KEY_TEST_NUM][8] = {
+ {0xF9, 0xAD, 0x59, 0x7C, 0x49, 0xDB, 0x00, 0x5E},
+ {0xE9, 0x1D, 0x21, 0xC1, 0xD9, 0x61, 0xA6, 0xD6},
+ {0xE9, 0xC2, 0xB7, 0x0A, 0x1B, 0xC6, 0x5C, 0xF3},
+ {0xBE, 0x1E, 0x63, 0x94, 0x08, 0x64, 0x0F, 0x05},
+ {0xB3, 0x9E, 0x44, 0x48, 0x1B, 0xDB, 0x1E, 0x6E},
+ {0x94, 0x57, 0xAA, 0x83, 0xB1, 0x92, 0x8C, 0x0D},
+ {0x8B, 0xB7, 0x70, 0x32, 0xF9, 0x60, 0x62, 0x9D},
+ {0xE8, 0x7A, 0x24, 0x4E, 0x2C, 0xC8, 0x5E, 0x82},
+ {0x15, 0x75, 0x0E, 0x7A, 0x4F, 0x4E, 0xC5, 0x77},
+ {0x12, 0x2B, 0xA7, 0x0B, 0x3A, 0xB6, 0x4A, 0xE0},
+ {0x3A, 0x83, 0x3C, 0x9A, 0xFF, 0xC5, 0x37, 0xF6},
+ {0x94, 0x09, 0xDA, 0x87, 0xA9, 0x0F, 0x6B, 0xF2},
+ {0x88, 0x4F, 0x80, 0x62, 0x50, 0x60, 0xB8, 0xB4},
+ {0x1F, 0x85, 0x03, 0x1C, 0x19, 0xE1, 0x19, 0x68},
+ {0x79, 0xD9, 0x37, 0x3A, 0x71, 0x4C, 0xA3, 0x4F},
+ {0x93, 0x14, 0x28, 0x87, 0xEE, 0x3B, 0xE1, 0x5C},
+ {0x03, 0x42, 0x9E, 0x83, 0x8C, 0xE2, 0xD1, 0x4B},
+ {0xA4, 0x29, 0x9E, 0x27, 0x46, 0x9F, 0xF6, 0x7B},
+ {0xAF, 0xD5, 0xAE, 0xD1, 0xC1, 0xBC, 0x96, 0xA8},
+ {0x10, 0x85, 0x1C, 0x0E, 0x38, 0x58, 0xDA, 0x9F},
+ {0xE6, 0xF5, 0x1E, 0xD7, 0x9B, 0x9D, 0xB2, 0x1F},
+ {0x64, 0xA6, 0xE1, 0x4A, 0xFD, 0x36, 0xB4, 0x6F},
+ {0x80, 0xC7, 0xD7, 0xD4, 0x5A, 0x54, 0x79, 0xAD},
+ {0x05, 0x04, 0x4B, 0x62, 0xFA, 0x52, 0xD0, 0x80},
+};
+
+static int print_test_data(void)
+{
+ unsigned int i, j;
+
+ printf("ecb test data\n");
+ printf("key bytes\t\tclear bytes\t\tcipher bytes\n");
+ for (i = 0; i < NUM_TESTS; i++) {
+ for (j = 0; j < 8; j++)
+ printf("%02X", ecb_data[i][j]);
+ printf("\t");
+ for (j = 0; j < 8; j++)
+ printf("%02X", plain_data[i][j]);
+ printf("\t");
+ for (j = 0; j < 8; j++)
+ printf("%02X", cipher_data[i][j]);
+ printf("\n");
+ }
+
+ printf("set_key test data\n");
+ printf("data[8]= ");
+ for (j = 0; j < 8; j++)
+ printf("%02X", key_data[j]);
+ printf("\n");
+ for (i = 0; i < KEY_TEST_NUM - 1; i++) {
+ printf("c=");
+ for (j = 0; j < 8; j++)
+ printf("%02X", key_out[i][j]);
+ printf(" k[%2u]=", i + 1);
+ for (j = 0; j < i + 1; j++)
+ printf("%02X", key_test[j]);
+ printf("\n");
+ }
+
+ printf("\nchaining mode test data\n");
+ printf("key[16] = ");
+ for (j = 0; j < 16; j++)
+ printf("%02X", cbc_key[j]);
+ printf("\niv[8] = ");
+ for (j = 0; j < 8; j++)
+ printf("%02X", cbc_iv[j]);
+ printf("\ndata[%d] = '%s'", (int)strlen(cbc_data) + 1, cbc_data);
+ printf("\ndata[%d] = ", (int)strlen(cbc_data) + 1);
+ for (j = 0; j < strlen(cbc_data) + 1; j++)
+ printf("%02X", cbc_data[j]);
+ printf("\n");
+ printf("cbc cipher text\n");
+ printf("cipher[%d]= ", 32);
+ for (j = 0; j < 32; j++)
+ printf("%02X", cbc_ok[j]);
+ printf("\n");
+
+ printf("cfb64 cipher text\n");
+ printf("cipher[%d]= ", (int)strlen(cbc_data) + 1);
+ for (j = 0; j < strlen(cbc_data) + 1; j++)
+ printf("%02X", cfb64_ok[j]);
+ printf("\n");
+
+ printf("ofb64 cipher text\n");
+ printf("cipher[%d]= ", (int)strlen(cbc_data) + 1);
+ for (j = 0; j < strlen(cbc_data) + 1; j++)
+ printf("%02X", ofb64_ok[j]);
+ printf("\n");
+ return 0;
+}
+
+static int test_bf_ecb_raw(int n)
+{
+ int ret = 1;
+ BF_KEY key;
+ BF_LONG data[2];
+
+ BF_set_key(&key, strlen(bf_key[n]), (unsigned char *)bf_key[n]);
+
+ data[0] = bf_plain[n][0];
+ data[1] = bf_plain[n][1];
+ BF_encrypt(data, &key);
+ if (!TEST_mem_eq(&(bf_cipher[n][0]), BF_BLOCK, &(data[0]), BF_BLOCK))
+ ret = 0;
+
+ BF_decrypt(&(data[0]), &key);
+ if (!TEST_mem_eq(&(bf_plain[n][0]), BF_BLOCK, &(data[0]), BF_BLOCK))
+ ret = 0;
+
+ return ret;
+}
+
+static int test_bf_ecb(int n)
+{
+ int ret = 1;
+ BF_KEY key;
+ unsigned char out[8];
+
+ BF_set_key(&key, 8, ecb_data[n]);
+
+ BF_ecb_encrypt(&(plain_data[n][0]), out, &key, BF_ENCRYPT);
+ if (!TEST_mem_eq(&(cipher_data[n][0]), BF_BLOCK, out, BF_BLOCK))
+ ret = 0;
+
+ BF_ecb_encrypt(out, out, &key, BF_DECRYPT);
+ if (!TEST_mem_eq(&(plain_data[n][0]), BF_BLOCK, out, BF_BLOCK))
+ ret = 0;
+
+ return ret;
+}
+
+static int test_bf_set_key(int n)
+{
+ int ret = 1;
+ BF_KEY key;
+ unsigned char out[8];
+
+ BF_set_key(&key, n+1, key_test);
+ BF_ecb_encrypt(key_data, out, &key, BF_ENCRYPT);
+ /* mips-sgi-irix6.5-gcc vv -mabi=64 bug workaround */
+ if (!TEST_mem_eq(out, 8, &(key_out[n][0]), 8))
+ ret = 0;
+
+ return ret;
+}
+
+static int test_bf_cbc(void)
+{
+ unsigned char cbc_in[40], cbc_out[40], iv[8];
+ int ret = 1;
+ BF_KEY key;
+ BF_LONG len;
+
+ len = strlen(cbc_data) + 1;
+
+ BF_set_key(&key, 16, cbc_key);
+ memset(cbc_in, 0, sizeof(cbc_in));
+ memset(cbc_out, 0, sizeof(cbc_out));
+ memcpy(iv, cbc_iv, sizeof(iv));
+ BF_cbc_encrypt((unsigned char *)cbc_data, cbc_out, len,
+ &key, iv, BF_ENCRYPT);
+ if (!TEST_mem_eq(cbc_out, 32, cbc_ok, 32))
+ ret = 0;
+
+ memcpy(iv, cbc_iv, 8);
+ BF_cbc_encrypt(cbc_out, cbc_in, len, &key, iv, BF_DECRYPT);
+ if (!TEST_mem_eq(cbc_in, len, cbc_data, strlen(cbc_data) + 1))
+ ret = 0;
+
+ return ret;
+}
+
+static int test_bf_cfb64(void)
+{
+ unsigned char cbc_in[40], cbc_out[40], iv[8];
+ int n, ret = 1;
+ BF_KEY key;
+ BF_LONG len;
+
+ len = strlen(cbc_data) + 1;
+
+ BF_set_key(&key, 16, cbc_key);
+ memset(cbc_in, 0, 40);
+ memset(cbc_out, 0, 40);
+ memcpy(iv, cbc_iv, 8);
+ n = 0;
+ BF_cfb64_encrypt((unsigned char *)cbc_data, cbc_out, (long)13,
+ &key, iv, &n, BF_ENCRYPT);
+ BF_cfb64_encrypt((unsigned char *)&(cbc_data[13]), &(cbc_out[13]),
+ len - 13, &key, iv, &n, BF_ENCRYPT);
+ if (!TEST_mem_eq(cbc_out, (int)len, cfb64_ok, (int)len))
+ ret = 0;
+
+ n = 0;
+ memcpy(iv, cbc_iv, 8);
+ BF_cfb64_encrypt(cbc_out, cbc_in, 17, &key, iv, &n, BF_DECRYPT);
+ BF_cfb64_encrypt(&(cbc_out[17]), &(cbc_in[17]), len - 17,
+ &key, iv, &n, BF_DECRYPT);
+ if (!TEST_mem_eq(cbc_in, (int)len, cbc_data, (int)len))
+ ret = 0;
+
+ return ret;
+}
+
+static int test_bf_ofb64(void)
+{
+ unsigned char cbc_in[40], cbc_out[40], iv[8];
+ int n, ret = 1;
+ BF_KEY key;
+ BF_LONG len;
+
+ len = strlen(cbc_data) + 1;
+
+ BF_set_key(&key, 16, cbc_key);
+ memset(cbc_in, 0, 40);
+ memset(cbc_out, 0, 40);
+ memcpy(iv, cbc_iv, 8);
+ n = 0;
+ BF_ofb64_encrypt((unsigned char *)cbc_data, cbc_out, (long)13, &key, iv,
+ &n);
+ BF_ofb64_encrypt((unsigned char *)&(cbc_data[13]), &(cbc_out[13]),
+ len - 13, &key, iv, &n);
+ if (!TEST_mem_eq(cbc_out, (int)len, ofb64_ok, (int)len))
+ ret = 0;
+
+ n = 0;
+ memcpy(iv, cbc_iv, 8);
+ BF_ofb64_encrypt(cbc_out, cbc_in, 17, &key, iv, &n);
+ BF_ofb64_encrypt(&(cbc_out[17]), &(cbc_in[17]), len - 17, &key, iv, &n);
+ if (!TEST_mem_eq(cbc_in, (int)len, cbc_data, (int)len))
+ ret = 0;
+
+ return ret;
+}
+#endif
+
+int setup_tests(void)
+{
+#ifndef OPENSSL_NO_BF
+# ifdef CHARSET_EBCDIC
+ int n;
+
+ ebcdic2ascii(cbc_data, cbc_data, strlen(cbc_data));
+ for (n = 0; n < 2; n++) {
+ ebcdic2ascii(bf_key[n], bf_key[n], strlen(bf_key[n]));
+ }
+# endif
+
+ if (test_get_argument(0) != NULL) {
+ print_test_data();
+ } else {
+ ADD_ALL_TESTS(test_bf_ecb_raw, 2);
+ ADD_ALL_TESTS(test_bf_ecb, NUM_TESTS);
+ ADD_ALL_TESTS(test_bf_set_key, KEY_TEST_NUM-1);
+ ADD_TEST(test_bf_cbc);
+ ADD_TEST(test_bf_cfb64);
+ ADD_TEST(test_bf_ofb64);
+ }
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bio_callback_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bio_callback_test.c
new file mode 100644
index 000000000..8a17602d7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bio_callback_test.c
@@ -0,0 +1,178 @@
+/*
+ * Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+#include <stdio.h>
+#include <string.h>
+#include <openssl/bio.h>
+
+#include "testutil.h"
+
+#define MAXCOUNT 5
+static int my_param_count;
+static BIO *my_param_b[MAXCOUNT];
+static int my_param_oper[MAXCOUNT];
+static const char *my_param_argp[MAXCOUNT];
+static int my_param_argi[MAXCOUNT];
+static long my_param_argl[MAXCOUNT];
+static long my_param_ret[MAXCOUNT];
+
+static long my_bio_callback(BIO *b, int oper, const char *argp, int argi,
+ long argl, long ret)
+{
+ if (my_param_count >= MAXCOUNT)
+ return -1;
+ my_param_b[my_param_count] = b;
+ my_param_oper[my_param_count] = oper;
+ my_param_argp[my_param_count] = argp;
+ my_param_argi[my_param_count] = argi;
+ my_param_argl[my_param_count] = argl;
+ my_param_ret[my_param_count] = ret;
+ my_param_count++;
+ return ret;
+}
+
+static int test_bio_callback(void)
+{
+ int ok = 0;
+ BIO *bio;
+ int i;
+ char test1[] = "test";
+ const int test1len = sizeof(test1) - 1;
+ char test2[] = "hello";
+ const int test2len = sizeof(test2) - 1;
+ char buf[16];
+
+ my_param_count = 0;
+
+ bio = BIO_new(BIO_s_mem());
+ if (bio == NULL)
+ goto err;
+
+ BIO_set_callback(bio, my_bio_callback);
+ i = BIO_write(bio, test1, test1len);
+ if (!TEST_int_eq(i, test1len)
+ || !TEST_int_eq(my_param_count, 2)
+ || !TEST_ptr_eq(my_param_b[0], bio)
+ || !TEST_int_eq(my_param_oper[0], BIO_CB_WRITE)
+ || !TEST_ptr_eq(my_param_argp[0], test1)
+ || !TEST_int_eq(my_param_argi[0], test1len)
+ || !TEST_long_eq(my_param_argl[0], 0L)
+ || !TEST_long_eq(my_param_ret[0], 1L)
+ || !TEST_ptr_eq(my_param_b[1], bio)
+ || !TEST_int_eq(my_param_oper[1], BIO_CB_WRITE | BIO_CB_RETURN)
+ || !TEST_ptr_eq(my_param_argp[1], test1)
+ || !TEST_int_eq(my_param_argi[1], test1len)
+ || !TEST_long_eq(my_param_argl[1], 0L)
+ || !TEST_long_eq(my_param_ret[1], (long)test1len))
+ goto err;
+
+ my_param_count = 0;
+ i = BIO_read(bio, buf, sizeof(buf));
+ if (!TEST_mem_eq(buf, i, test1, test1len)
+ || !TEST_int_eq(my_param_count, 2)
+ || !TEST_ptr_eq(my_param_b[0], bio)
+ || !TEST_int_eq(my_param_oper[0], BIO_CB_READ)
+ || !TEST_ptr_eq(my_param_argp[0], buf)
+ || !TEST_int_eq(my_param_argi[0], sizeof(buf))
+ || !TEST_long_eq(my_param_argl[0], 0L)
+ || !TEST_long_eq(my_param_ret[0], 1L)
+ || !TEST_ptr_eq(my_param_b[1], bio)
+ || !TEST_int_eq(my_param_oper[1], BIO_CB_READ | BIO_CB_RETURN)
+ || !TEST_ptr_eq(my_param_argp[1], buf)
+ || !TEST_int_eq(my_param_argi[1], sizeof(buf))
+ || !TEST_long_eq(my_param_argl[1], 0L)
+ || !TEST_long_eq(my_param_ret[1], (long)test1len))
+ goto err;
+
+ /* By default a mem bio returns -1 if it has run out of data */
+ my_param_count = 0;
+ i = BIO_read(bio, buf, sizeof(buf));
+ if (!TEST_int_eq(i, -1)
+ || !TEST_int_eq(my_param_count, 2)
+ || !TEST_ptr_eq(my_param_b[0], bio)
+ || !TEST_int_eq(my_param_oper[0], BIO_CB_READ)
+ || !TEST_ptr_eq(my_param_argp[0], buf)
+ || !TEST_int_eq(my_param_argi[0], sizeof(buf))
+ || !TEST_long_eq(my_param_argl[0], 0L)
+ || !TEST_long_eq(my_param_ret[0], 1L)
+ || !TEST_ptr_eq(my_param_b[1], bio)
+ || !TEST_int_eq(my_param_oper[1], BIO_CB_READ | BIO_CB_RETURN)
+ || !TEST_ptr_eq(my_param_argp[1], buf)
+ || !TEST_int_eq(my_param_argi[1], sizeof(buf))
+ || !TEST_long_eq(my_param_argl[1], 0L)
+ || !TEST_long_eq(my_param_ret[1], -1L))
+ goto err;
+
+ /* Force the mem bio to return 0 if it has run out of data */
+ BIO_set_mem_eof_return(bio, 0);
+ my_param_count = 0;
+ i = BIO_read(bio, buf, sizeof(buf));
+ if (!TEST_int_eq(i, 0)
+ || !TEST_int_eq(my_param_count, 2)
+ || !TEST_ptr_eq(my_param_b[0], bio)
+ || !TEST_int_eq(my_param_oper[0], BIO_CB_READ)
+ || !TEST_ptr_eq(my_param_argp[0], buf)
+ || !TEST_int_eq(my_param_argi[0], sizeof(buf))
+ || !TEST_long_eq(my_param_argl[0], 0L)
+ || !TEST_long_eq(my_param_ret[0], 1L)
+ || !TEST_ptr_eq(my_param_b[1], bio)
+ || !TEST_int_eq(my_param_oper[1], BIO_CB_READ | BIO_CB_RETURN)
+ || !TEST_ptr_eq(my_param_argp[1], buf)
+ || !TEST_int_eq(my_param_argi[1], sizeof(buf))
+ || !TEST_long_eq(my_param_argl[1], 0L)
+ || !TEST_long_eq(my_param_ret[1], 0L))
+ goto err;
+
+ my_param_count = 0;
+ i = BIO_puts(bio, test2);
+ if (!TEST_int_eq(i, 5)
+ || !TEST_int_eq(my_param_count, 2)
+ || !TEST_ptr_eq(my_param_b[0], bio)
+ || !TEST_int_eq(my_param_oper[0], BIO_CB_PUTS)
+ || !TEST_ptr_eq(my_param_argp[0], test2)
+ || !TEST_int_eq(my_param_argi[0], 0)
+ || !TEST_long_eq(my_param_argl[0], 0L)
+ || !TEST_long_eq(my_param_ret[0], 1L)
+ || !TEST_ptr_eq(my_param_b[1], bio)
+ || !TEST_int_eq(my_param_oper[1], BIO_CB_PUTS | BIO_CB_RETURN)
+ || !TEST_ptr_eq(my_param_argp[1], test2)
+ || !TEST_int_eq(my_param_argi[1], 0)
+ || !TEST_long_eq(my_param_argl[1], 0L)
+ || !TEST_long_eq(my_param_ret[1], (long)test2len))
+ goto err;
+
+ my_param_count = 0;
+ i = BIO_free(bio);
+ if (!TEST_int_eq(i, 1)
+ || !TEST_int_eq(my_param_count, 1)
+ || !TEST_ptr_eq(my_param_b[0], bio)
+ || !TEST_int_eq(my_param_oper[0], BIO_CB_FREE)
+ || !TEST_ptr_eq(my_param_argp[0], NULL)
+ || !TEST_int_eq(my_param_argi[0], 0)
+ || !TEST_long_eq(my_param_argl[0], 0L)
+ || !TEST_long_eq(my_param_ret[0], 1L))
+ goto finish;
+
+ ok = 1;
+ goto finish;
+
+err:
+ BIO_free(bio);
+
+finish:
+ /* This helps finding memory leaks with ASAN */
+ memset(my_param_b, 0, sizeof(my_param_b));
+ memset(my_param_argp, 0, sizeof(my_param_argp));
+ return ok;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_bio_callback);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bio_enc_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bio_enc_test.c
new file mode 100644
index 000000000..282e8dac6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bio_enc_test.c
@@ -0,0 +1,232 @@
+/*
+ * Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+#include <stdio.h>
+#include <string.h>
+#include <openssl/evp.h>
+#include <openssl/bio.h>
+#include <openssl/rand.h>
+
+#include "testutil.h"
+
+#define ENCRYPT 1
+#define DECRYPT 0
+
+#define DATA_SIZE 1024
+#define MAX_IV 32
+#define BUF_SIZE (DATA_SIZE + MAX_IV)
+
+static const unsigned char KEY[] = {
+ 0x51, 0x50, 0xd1, 0x77, 0x2f, 0x50, 0x83, 0x4a,
+ 0x50, 0x3e, 0x06, 0x9a, 0x97, 0x3f, 0xbd, 0x7c,
+ 0xe6, 0x1c, 0x43, 0x2b, 0x72, 0x0b, 0x19, 0xd1,
+ 0x8e, 0xc8, 0xd8, 0x4b, 0xdc, 0x63, 0x15, 0x1b
+};
+
+static const unsigned char IV[] = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
+};
+
+static int do_bio_cipher(const EVP_CIPHER* cipher, const unsigned char* key,
+ const unsigned char* iv)
+{
+ BIO *b;
+ static unsigned char inp[BUF_SIZE] = { 0 };
+ unsigned char out[BUF_SIZE], ref[BUF_SIZE];
+ int i, lref, len;
+
+ /* Fill buffer with non-zero data so that over steps can be detected */
+ if (!TEST_int_gt(RAND_bytes(inp, DATA_SIZE), 0))
+ return 0;
+
+ /* Encrypt tests */
+
+ /* reference output for single-chunk operation */
+ b = BIO_new(BIO_f_cipher());
+ if (!TEST_true(BIO_set_cipher(b, cipher, key, iv, ENCRYPT)))
+ return 0;
+ BIO_push(b, BIO_new_mem_buf(inp, DATA_SIZE));
+ lref = BIO_read(b, ref, sizeof(ref));
+ BIO_free_all(b);
+
+ /* perform split operations and compare to reference */
+ for (i = 1; i < lref; i++) {
+ b = BIO_new(BIO_f_cipher());
+ if (!TEST_true(BIO_set_cipher(b, cipher, key, iv, ENCRYPT))) {
+ TEST_info("Split encrypt failed @ operation %d", i);
+ return 0;
+ }
+ BIO_push(b, BIO_new_mem_buf(inp, DATA_SIZE));
+ memset(out, 0, sizeof(out));
+ out[i] = ~ref[i];
+ len = BIO_read(b, out, i);
+ /* check for overstep */
+ if (!TEST_uchar_eq(out[i], (unsigned char)~ref[i])) {
+ TEST_info("Encrypt overstep check failed @ operation %d", i);
+ return 0;
+ }
+ len += BIO_read(b, out + len, sizeof(out) - len);
+ BIO_free_all(b);
+
+ if (!TEST_mem_eq(out, len, ref, lref)) {
+ TEST_info("Encrypt compare failed @ operation %d", i);
+ return 0;
+ }
+ }
+
+ /* perform small-chunk operations and compare to reference */
+ for (i = 1; i < lref / 2; i++) {
+ int delta;
+
+ b = BIO_new(BIO_f_cipher());
+ if (!TEST_true(BIO_set_cipher(b, cipher, key, iv, ENCRYPT))) {
+ TEST_info("Small chunk encrypt failed @ operation %d", i);
+ return 0;
+ }
+ BIO_push(b, BIO_new_mem_buf(inp, DATA_SIZE));
+ memset(out, 0, sizeof(out));
+ for (len = 0; (delta = BIO_read(b, out + len, i)); ) {
+ len += delta;
+ }
+ BIO_free_all(b);
+
+ if (!TEST_mem_eq(out, len, ref, lref)) {
+ TEST_info("Small chunk encrypt compare failed @ operation %d", i);
+ return 0;
+ }
+ }
+
+ /* Decrypt tests */
+
+ /* reference output for single-chunk operation */
+ b = BIO_new(BIO_f_cipher());
+ if (!TEST_true(BIO_set_cipher(b, cipher, key, iv, DECRYPT)))
+ return 0;
+ /* Use original reference output as input */
+ BIO_push(b, BIO_new_mem_buf(ref, lref));
+ (void)BIO_flush(b);
+ memset(out, 0, sizeof(out));
+ len = BIO_read(b, out, sizeof(out));
+ BIO_free_all(b);
+
+ if (!TEST_mem_eq(inp, DATA_SIZE, out, len))
+ return 0;
+
+ /* perform split operations and compare to reference */
+ for (i = 1; i < lref; i++) {
+ b = BIO_new(BIO_f_cipher());
+ if (!TEST_true(BIO_set_cipher(b, cipher, key, iv, DECRYPT))) {
+ TEST_info("Split decrypt failed @ operation %d", i);
+ return 0;
+ }
+ BIO_push(b, BIO_new_mem_buf(ref, lref));
+ memset(out, 0, sizeof(out));
+ out[i] = ~ref[i];
+ len = BIO_read(b, out, i);
+ /* check for overstep */
+ if (!TEST_uchar_eq(out[i], (unsigned char)~ref[i])) {
+ TEST_info("Decrypt overstep check failed @ operation %d", i);
+ return 0;
+ }
+ len += BIO_read(b, out + len, sizeof(out) - len);
+ BIO_free_all(b);
+
+ if (!TEST_mem_eq(inp, DATA_SIZE, out, len)) {
+ TEST_info("Decrypt compare failed @ operation %d", i);
+ return 0;
+ }
+ }
+
+ /* perform small-chunk operations and compare to reference */
+ for (i = 1; i < lref / 2; i++) {
+ int delta;
+
+ b = BIO_new(BIO_f_cipher());
+ if (!TEST_true(BIO_set_cipher(b, cipher, key, iv, DECRYPT))) {
+ TEST_info("Small chunk decrypt failed @ operation %d", i);
+ return 0;
+ }
+ BIO_push(b, BIO_new_mem_buf(ref, lref));
+ memset(out, 0, sizeof(out));
+ for (len = 0; (delta = BIO_read(b, out + len, i)); ) {
+ len += delta;
+ }
+ BIO_free_all(b);
+
+ if (!TEST_mem_eq(inp, DATA_SIZE, out, len)) {
+ TEST_info("Small chunk decrypt compare failed @ operation %d", i);
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
+static int do_test_bio_cipher(const EVP_CIPHER* cipher, int idx)
+{
+ switch(idx)
+ {
+ case 0:
+ return do_bio_cipher(cipher, KEY, NULL);
+ case 1:
+ return do_bio_cipher(cipher, KEY, IV);
+ }
+ return 0;
+}
+
+static int test_bio_enc_aes_128_cbc(int idx)
+{
+ return do_test_bio_cipher(EVP_aes_128_cbc(), idx);
+}
+
+static int test_bio_enc_aes_128_ctr(int idx)
+{
+ return do_test_bio_cipher(EVP_aes_128_ctr(), idx);
+}
+
+static int test_bio_enc_aes_256_cfb(int idx)
+{
+ return do_test_bio_cipher(EVP_aes_256_cfb(), idx);
+}
+
+static int test_bio_enc_aes_256_ofb(int idx)
+{
+ return do_test_bio_cipher(EVP_aes_256_ofb(), idx);
+}
+
+# ifndef OPENSSL_NO_CHACHA
+static int test_bio_enc_chacha20(int idx)
+{
+ return do_test_bio_cipher(EVP_chacha20(), idx);
+}
+
+# ifndef OPENSSL_NO_POLY1305
+static int test_bio_enc_chacha20_poly1305(int idx)
+{
+ return do_test_bio_cipher(EVP_chacha20_poly1305(), idx);
+}
+# endif
+# endif
+
+int setup_tests(void)
+{
+ ADD_ALL_TESTS(test_bio_enc_aes_128_cbc, 2);
+ ADD_ALL_TESTS(test_bio_enc_aes_128_ctr, 2);
+ ADD_ALL_TESTS(test_bio_enc_aes_256_cfb, 2);
+ ADD_ALL_TESTS(test_bio_enc_aes_256_ofb, 2);
+# ifndef OPENSSL_NO_CHACHA
+ ADD_ALL_TESTS(test_bio_enc_chacha20, 2);
+# ifndef OPENSSL_NO_POLY1305
+ ADD_ALL_TESTS(test_bio_enc_chacha20_poly1305, 2);
+# endif
+# endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bio_memleak_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bio_memleak_test.c
new file mode 100644
index 000000000..383c82d15
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bio_memleak_test.c
@@ -0,0 +1,240 @@
+/*
+ * Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+#include <stdio.h>
+#include <string.h>
+#include <openssl/buffer.h>
+#include <openssl/bio.h>
+
+#include "testutil.h"
+
+static int test_bio_memleak(void)
+{
+ int ok = 0;
+ BIO *bio;
+ BUF_MEM bufmem;
+ static const char str[] = "BIO test\n";
+ char buf[100];
+
+ bio = BIO_new(BIO_s_mem());
+ if (!TEST_ptr(bio))
+ goto finish;
+ bufmem.length = sizeof(str);
+ bufmem.data = (char *) str;
+ bufmem.max = bufmem.length;
+ BIO_set_mem_buf(bio, &bufmem, BIO_NOCLOSE);
+ BIO_set_flags(bio, BIO_FLAGS_MEM_RDONLY);
+ if (!TEST_int_eq(BIO_read(bio, buf, sizeof(buf)), sizeof(str)))
+ goto finish;
+ if (!TEST_mem_eq(buf, sizeof(str), str, sizeof(str)))
+ goto finish;
+ ok = 1;
+
+finish:
+ BIO_free(bio);
+ return ok;
+}
+
+static int test_bio_get_mem(void)
+{
+ int ok = 0;
+ BIO *bio = NULL;
+ BUF_MEM *bufmem = NULL;
+
+ bio = BIO_new(BIO_s_mem());
+ if (!TEST_ptr(bio))
+ goto finish;
+ if (!TEST_int_eq(BIO_puts(bio, "Hello World\n"), 12))
+ goto finish;
+ BIO_get_mem_ptr(bio, &bufmem);
+ if (!TEST_ptr(bufmem))
+ goto finish;
+ if (!TEST_int_gt(BIO_set_close(bio, BIO_NOCLOSE), 0))
+ goto finish;
+ BIO_free(bio);
+ bio = NULL;
+ if (!TEST_mem_eq(bufmem->data, bufmem->length, "Hello World\n", 12))
+ goto finish;
+ ok = 1;
+
+finish:
+ BIO_free(bio);
+ BUF_MEM_free(bufmem);
+ return ok;
+}
+
+static int test_bio_new_mem_buf(void)
+{
+ int ok = 0;
+ BIO *bio;
+ BUF_MEM *bufmem;
+ char data[16];
+
+ bio = BIO_new_mem_buf("Hello World\n", 12);
+ if (!TEST_ptr(bio))
+ goto finish;
+ if (!TEST_int_eq(BIO_read(bio, data, 5), 5))
+ goto finish;
+ if (!TEST_mem_eq(data, 5, "Hello", 5))
+ goto finish;
+ if (!TEST_int_gt(BIO_get_mem_ptr(bio, &bufmem), 0))
+ goto finish;
+ if (!TEST_int_lt(BIO_write(bio, "test", 4), 0))
+ goto finish;
+ if (!TEST_int_eq(BIO_read(bio, data, 16), 7))
+ goto finish;
+ if (!TEST_mem_eq(data, 7, " World\n", 7))
+ goto finish;
+ if (!TEST_int_gt(BIO_reset(bio), 0))
+ goto finish;
+ if (!TEST_int_eq(BIO_read(bio, data, 16), 12))
+ goto finish;
+ if (!TEST_mem_eq(data, 12, "Hello World\n", 12))
+ goto finish;
+ ok = 1;
+
+finish:
+ BIO_free(bio);
+ return ok;
+}
+
+static int test_bio_rdonly_mem_buf(void)
+{
+ int ok = 0;
+ BIO *bio, *bio2 = NULL;
+ BUF_MEM *bufmem;
+ char data[16];
+
+ bio = BIO_new_mem_buf("Hello World\n", 12);
+ if (!TEST_ptr(bio))
+ goto finish;
+ if (!TEST_int_eq(BIO_read(bio, data, 5), 5))
+ goto finish;
+ if (!TEST_mem_eq(data, 5, "Hello", 5))
+ goto finish;
+ if (!TEST_int_gt(BIO_get_mem_ptr(bio, &bufmem), 0))
+ goto finish;
+ (void)BIO_set_close(bio, BIO_NOCLOSE);
+
+ bio2 = BIO_new(BIO_s_mem());
+ if (!TEST_ptr(bio2))
+ goto finish;
+ BIO_set_mem_buf(bio2, bufmem, BIO_CLOSE);
+ BIO_set_flags(bio2, BIO_FLAGS_MEM_RDONLY);
+
+ if (!TEST_int_eq(BIO_read(bio2, data, 16), 7))
+ goto finish;
+ if (!TEST_mem_eq(data, 7, " World\n", 7))
+ goto finish;
+ if (!TEST_int_gt(BIO_reset(bio2), 0))
+ goto finish;
+ if (!TEST_int_eq(BIO_read(bio2, data, 16), 7))
+ goto finish;
+ if (!TEST_mem_eq(data, 7, " World\n", 7))
+ goto finish;
+ ok = 1;
+
+finish:
+ BIO_free(bio);
+ BIO_free(bio2);
+ return ok;
+}
+
+static int test_bio_rdwr_rdonly(void)
+{
+ int ok = 0;
+ BIO *bio = NULL;
+ char data[16];
+
+ bio = BIO_new(BIO_s_mem());
+ if (!TEST_ptr(bio))
+ goto finish;
+ if (!TEST_int_eq(BIO_puts(bio, "Hello World\n"), 12))
+ goto finish;
+
+ BIO_set_flags(bio, BIO_FLAGS_MEM_RDONLY);
+ if (!TEST_int_eq(BIO_read(bio, data, 16), 12))
+ goto finish;
+ if (!TEST_mem_eq(data, 12, "Hello World\n", 12))
+ goto finish;
+ if (!TEST_int_gt(BIO_reset(bio), 0))
+ goto finish;
+
+ BIO_clear_flags(bio, BIO_FLAGS_MEM_RDONLY);
+ if (!TEST_int_eq(BIO_puts(bio, "Hi!\n"), 4))
+ goto finish;
+ if (!TEST_int_eq(BIO_read(bio, data, 16), 16))
+ goto finish;
+
+ if (!TEST_mem_eq(data, 16, "Hello World\nHi!\n", 16))
+ goto finish;
+
+ ok = 1;
+
+finish:
+ BIO_free(bio);
+ return ok;
+}
+
+static int test_bio_nonclear_rst(void)
+{
+ int ok = 0;
+ BIO *bio = NULL;
+ char data[16];
+
+ bio = BIO_new(BIO_s_mem());
+ if (!TEST_ptr(bio))
+ goto finish;
+ if (!TEST_int_eq(BIO_puts(bio, "Hello World\n"), 12))
+ goto finish;
+
+ BIO_set_flags(bio, BIO_FLAGS_NONCLEAR_RST);
+
+ if (!TEST_int_eq(BIO_read(bio, data, 16), 12))
+ goto finish;
+ if (!TEST_mem_eq(data, 12, "Hello World\n", 12))
+ goto finish;
+ if (!TEST_int_gt(BIO_reset(bio), 0))
+ goto finish;
+
+ if (!TEST_int_eq(BIO_read(bio, data, 16), 12))
+ goto finish;
+ if (!TEST_mem_eq(data, 12, "Hello World\n", 12))
+ goto finish;
+
+ BIO_clear_flags(bio, BIO_FLAGS_NONCLEAR_RST);
+ if (!TEST_int_gt(BIO_reset(bio), 0))
+ goto finish;
+
+ if (!TEST_int_lt(BIO_read(bio, data, 16), 1))
+ goto finish;
+
+ ok = 1;
+
+finish:
+ BIO_free(bio);
+ return ok;
+}
+
+int global_init(void)
+{
+ CRYPTO_set_mem_debug(1);
+ CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
+ return 1;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_bio_memleak);
+ ADD_TEST(test_bio_get_mem);
+ ADD_TEST(test_bio_new_mem_buf);
+ ADD_TEST(test_bio_rdonly_mem_buf);
+ ADD_TEST(test_bio_rdwr_rdonly);
+ ADD_TEST(test_bio_nonclear_rst);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bioprinttest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bioprinttest.c
new file mode 100644
index 000000000..680391ea9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bioprinttest.c
@@ -0,0 +1,302 @@
+/*
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#define TESTUTIL_NO_size_t_COMPARISON
+
+#include <stdio.h>
+#include <string.h>
+#include <openssl/bio.h>
+#include "internal/numbers.h"
+#include "testutil.h"
+#include "testutil/output.h"
+
+#define nelem(x) (int)(sizeof(x) / sizeof((x)[0]))
+
+static int justprint = 0;
+
+static char *fpexpected[][10][5] = {
+ {
+ /* 00 */ { "0.0000e+00", "0.0000", "0", "0.0000E+00", "0" },
+ /* 01 */ { "6.7000e-01", "0.6700", "0.67", "6.7000E-01", "0.67" },
+ /* 02 */ { "6.6667e-01", "0.6667", "0.6667", "6.6667E-01", "0.6667" },
+ /* 03 */ { "6.6667e-04", "0.0007", "0.0006667", "6.6667E-04", "0.0006667" },
+ /* 04 */ { "6.6667e-05", "0.0001", "6.667e-05", "6.6667E-05", "6.667E-05" },
+ /* 05 */ { "6.6667e+00", "6.6667", "6.667", "6.6667E+00", "6.667" },
+ /* 06 */ { "6.6667e+01", "66.6667", "66.67", "6.6667E+01", "66.67" },
+ /* 07 */ { "6.6667e+02", "666.6667", "666.7", "6.6667E+02", "666.7" },
+ /* 08 */ { "6.6667e+03", "6666.6667", "6667", "6.6667E+03", "6667" },
+ /* 09 */ { "6.6667e+04", "66666.6667", "6.667e+04", "6.6667E+04", "6.667E+04" },
+ },
+ {
+ /* 10 */ { "0.00000e+00", "0.00000", "0", "0.00000E+00", "0" },
+ /* 11 */ { "6.70000e-01", "0.67000", "0.67", "6.70000E-01", "0.67" },
+ /* 12 */ { "6.66667e-01", "0.66667", "0.66667", "6.66667E-01", "0.66667" },
+ /* 13 */ { "6.66667e-04", "0.00067", "0.00066667", "6.66667E-04", "0.00066667" },
+ /* 14 */ { "6.66667e-05", "0.00007", "6.6667e-05", "6.66667E-05", "6.6667E-05" },
+ /* 15 */ { "6.66667e+00", "6.66667", "6.6667", "6.66667E+00", "6.6667" },
+ /* 16 */ { "6.66667e+01", "66.66667", "66.667", "6.66667E+01", "66.667" },
+ /* 17 */ { "6.66667e+02", "666.66667", "666.67", "6.66667E+02", "666.67" },
+ /* 18 */ { "6.66667e+03", "6666.66667", "6666.7", "6.66667E+03", "6666.7" },
+ /* 19 */ { "6.66667e+04", "66666.66667", "66667", "6.66667E+04", "66667" },
+ },
+ {
+ /* 20 */ { " 0.0000e+00", " 0.0000", " 0", " 0.0000E+00", " 0" },
+ /* 21 */ { " 6.7000e-01", " 0.6700", " 0.67", " 6.7000E-01", " 0.67" },
+ /* 22 */ { " 6.6667e-01", " 0.6667", " 0.6667", " 6.6667E-01", " 0.6667" },
+ /* 23 */ { " 6.6667e-04", " 0.0007", " 0.0006667", " 6.6667E-04", " 0.0006667" },
+ /* 24 */ { " 6.6667e-05", " 0.0001", " 6.667e-05", " 6.6667E-05", " 6.667E-05" },
+ /* 25 */ { " 6.6667e+00", " 6.6667", " 6.667", " 6.6667E+00", " 6.667" },
+ /* 26 */ { " 6.6667e+01", " 66.6667", " 66.67", " 6.6667E+01", " 66.67" },
+ /* 27 */ { " 6.6667e+02", " 666.6667", " 666.7", " 6.6667E+02", " 666.7" },
+ /* 28 */ { " 6.6667e+03", " 6666.6667", " 6667", " 6.6667E+03", " 6667" },
+ /* 29 */ { " 6.6667e+04", " 66666.6667", " 6.667e+04", " 6.6667E+04", " 6.667E+04" },
+ },
+ {
+ /* 30 */ { " 0.00000e+00", " 0.00000", " 0", " 0.00000E+00", " 0" },
+ /* 31 */ { " 6.70000e-01", " 0.67000", " 0.67", " 6.70000E-01", " 0.67" },
+ /* 32 */ { " 6.66667e-01", " 0.66667", " 0.66667", " 6.66667E-01", " 0.66667" },
+ /* 33 */ { " 6.66667e-04", " 0.00067", " 0.00066667", " 6.66667E-04", " 0.00066667" },
+ /* 34 */ { " 6.66667e-05", " 0.00007", " 6.6667e-05", " 6.66667E-05", " 6.6667E-05" },
+ /* 35 */ { " 6.66667e+00", " 6.66667", " 6.6667", " 6.66667E+00", " 6.6667" },
+ /* 36 */ { " 6.66667e+01", " 66.66667", " 66.667", " 6.66667E+01", " 66.667" },
+ /* 37 */ { " 6.66667e+02", " 666.66667", " 666.67", " 6.66667E+02", " 666.67" },
+ /* 38 */ { " 6.66667e+03", " 6666.66667", " 6666.7", " 6.66667E+03", " 6666.7" },
+ /* 39 */ { " 6.66667e+04", " 66666.66667", " 66667", " 6.66667E+04", " 66667" },
+ },
+ {
+ /* 40 */ { "0e+00", "0", "0", "0E+00", "0" },
+ /* 41 */ { "7e-01", "1", "0.7", "7E-01", "0.7" },
+ /* 42 */ { "7e-01", "1", "0.7", "7E-01", "0.7" },
+ /* 43 */ { "7e-04", "0", "0.0007", "7E-04", "0.0007" },
+ /* 44 */ { "7e-05", "0", "7e-05", "7E-05", "7E-05" },
+ /* 45 */ { "7e+00", "7", "7", "7E+00", "7" },
+ /* 46 */ { "7e+01", "67", "7e+01", "7E+01", "7E+01" },
+ /* 47 */ { "7e+02", "667", "7e+02", "7E+02", "7E+02" },
+ /* 48 */ { "7e+03", "6667", "7e+03", "7E+03", "7E+03" },
+ /* 49 */ { "7e+04", "66667", "7e+04", "7E+04", "7E+04" },
+ },
+ {
+ /* 50 */ { "0.000000e+00", "0.000000", "0", "0.000000E+00", "0" },
+ /* 51 */ { "6.700000e-01", "0.670000", "0.67", "6.700000E-01", "0.67" },
+ /* 52 */ { "6.666667e-01", "0.666667", "0.666667", "6.666667E-01", "0.666667" },
+ /* 53 */ { "6.666667e-04", "0.000667", "0.000666667", "6.666667E-04", "0.000666667" },
+ /* 54 */ { "6.666667e-05", "0.000067", "6.66667e-05", "6.666667E-05", "6.66667E-05" },
+ /* 55 */ { "6.666667e+00", "6.666667", "6.66667", "6.666667E+00", "6.66667" },
+ /* 56 */ { "6.666667e+01", "66.666667", "66.6667", "6.666667E+01", "66.6667" },
+ /* 57 */ { "6.666667e+02", "666.666667", "666.667", "6.666667E+02", "666.667" },
+ /* 58 */ { "6.666667e+03", "6666.666667", "6666.67", "6.666667E+03", "6666.67" },
+ /* 59 */ { "6.666667e+04", "66666.666667", "66666.7", "6.666667E+04", "66666.7" },
+ },
+ {
+ /* 60 */ { "0.0000e+00", "000.0000", "00000000", "0.0000E+00", "00000000" },
+ /* 61 */ { "6.7000e-01", "000.6700", "00000.67", "6.7000E-01", "00000.67" },
+ /* 62 */ { "6.6667e-01", "000.6667", "000.6667", "6.6667E-01", "000.6667" },
+ /* 63 */ { "6.6667e-04", "000.0007", "0.0006667", "6.6667E-04", "0.0006667" },
+ /* 64 */ { "6.6667e-05", "000.0001", "6.667e-05", "6.6667E-05", "6.667E-05" },
+ /* 65 */ { "6.6667e+00", "006.6667", "0006.667", "6.6667E+00", "0006.667" },
+ /* 66 */ { "6.6667e+01", "066.6667", "00066.67", "6.6667E+01", "00066.67" },
+ /* 67 */ { "6.6667e+02", "666.6667", "000666.7", "6.6667E+02", "000666.7" },
+ /* 68 */ { "6.6667e+03", "6666.6667", "00006667", "6.6667E+03", "00006667" },
+ /* 69 */ { "6.6667e+04", "66666.6667", "6.667e+04", "6.6667E+04", "6.667E+04" },
+ },
+};
+
+typedef struct z_data_st {
+ size_t value;
+ const char *format;
+ const char *expected;
+} z_data;
+
+static z_data zu_data[] = {
+ { SIZE_MAX, "%zu", (sizeof(size_t) == 4 ? "4294967295"
+ : sizeof(size_t) == 8 ? "18446744073709551615"
+ : "") },
+ /*
+ * in 2-complement, the unsigned number divided by two plus one becomes the
+ * smallest possible negative signed number of the corresponding type
+ */
+ { SIZE_MAX / 2 + 1, "%zi", (sizeof(size_t) == 4 ? "-2147483648"
+ : sizeof(size_t) == 8 ? "-9223372036854775808"
+ : "") },
+ { 0, "%zu", "0" },
+ { 0, "%zi", "0" },
+};
+
+static int test_zu(int i)
+{
+ char bio_buf[80];
+ const z_data *data = &zu_data[i];
+
+ BIO_snprintf(bio_buf, sizeof(bio_buf) - 1, data->format, data->value);
+ if (!TEST_str_eq(bio_buf, data->expected))
+ return 0;
+ return 1;
+}
+
+typedef struct j_data_st {
+ uint64_t value;
+ const char *format;
+ const char *expected;
+} j_data;
+
+static j_data jf_data[] = {
+ { 0xffffffffffffffffULL, "%ju", "18446744073709551615" },
+ { 0xffffffffffffffffULL, "%jx", "ffffffffffffffff" },
+ { 0x8000000000000000ULL, "%ju", "9223372036854775808" },
+ /*
+ * These tests imply two's-complement, but it's the only binary
+ * representation we support, see test/sanitytest.c...
+ */
+ { 0x8000000000000000ULL, "%ji", "-9223372036854775808" },
+};
+
+static int test_j(int i)
+{
+ const j_data *data = &jf_data[i];
+ char bio_buf[80];
+
+ BIO_snprintf(bio_buf, sizeof(bio_buf) - 1, data->format, data->value);
+ if (!TEST_str_eq(bio_buf, data->expected))
+ return 0;
+ return 1;
+}
+
+
+/* Precision and width. */
+typedef struct pw_st {
+ int p;
+ const char *w;
+} pw;
+
+static pw pw_params[] = {
+ { 4, "" },
+ { 5, "" },
+ { 4, "12" },
+ { 5, "12" },
+ { 0, "" },
+ { -1, "" },
+ { 4, "08" }
+};
+
+static int dofptest(int test, int sub, double val, const char *width, int prec)
+{
+ static const char *fspecs[] = {
+ "e", "f", "g", "E", "G"
+ };
+ char format[80], result[80];
+ int ret = 1, i;
+
+ for (i = 0; i < nelem(fspecs); i++) {
+ const char *fspec = fspecs[i];
+
+ if (prec >= 0)
+ BIO_snprintf(format, sizeof(format), "%%%s.%d%s", width, prec,
+ fspec);
+ else
+ BIO_snprintf(format, sizeof(format), "%%%s%s", width, fspec);
+ BIO_snprintf(result, sizeof(result), format, val);
+
+ if (justprint) {
+ if (i == 0)
+ printf(" /* %d%d */ { \"%s\"", test, sub, result);
+ else
+ printf(", \"%s\"", result);
+ } else if (!TEST_str_eq(fpexpected[test][sub][i], result)) {
+ TEST_info("test %d format=|%s| exp=|%s|, ret=|%s|",
+ test, format, fpexpected[test][sub][i], result);
+ ret = 0;
+ }
+ }
+ if (justprint)
+ printf(" },\n");
+ return ret;
+}
+
+static int test_fp(int i)
+{
+ int t = 0, r;
+ const double frac = 2.0 / 3.0;
+ const pw *pwp = &pw_params[i];
+
+ if (justprint)
+ printf(" {\n");
+ r = TEST_true(dofptest(i, t++, 0.0, pwp->w, pwp->p))
+ && TEST_true(dofptest(i, t++, 0.67, pwp->w, pwp->p))
+ && TEST_true(dofptest(i, t++, frac, pwp->w, pwp->p))
+ && TEST_true(dofptest(i, t++, frac / 1000, pwp->w, pwp->p))
+ && TEST_true(dofptest(i, t++, frac / 10000, pwp->w, pwp->p))
+ && TEST_true(dofptest(i, t++, 6.0 + frac, pwp->w, pwp->p))
+ && TEST_true(dofptest(i, t++, 66.0 + frac, pwp->w, pwp->p))
+ && TEST_true(dofptest(i, t++, 666.0 + frac, pwp->w, pwp->p))
+ && TEST_true(dofptest(i, t++, 6666.0 + frac, pwp->w, pwp->p))
+ && TEST_true(dofptest(i, t++, 66666.0 + frac, pwp->w, pwp->p));
+ if (justprint)
+ printf(" },\n");
+ return r;
+}
+
+static int test_big(void)
+{
+ char buf[80];
+
+ /* Test excessively big number. Should fail */
+ if (!TEST_int_eq(BIO_snprintf(buf, sizeof(buf),
+ "%f\n", 2 * (double)ULONG_MAX), -1))
+ return 0;
+ return 1;
+}
+
+
+int setup_tests(void)
+{
+ justprint = test_has_option("-expected");
+
+ ADD_TEST(test_big);
+ ADD_ALL_TESTS(test_fp, nelem(pw_params));
+ ADD_ALL_TESTS(test_zu, nelem(zu_data));
+ ADD_ALL_TESTS(test_j, nelem(jf_data));
+ return 1;
+}
+
+/*
+ * Replace testutil output routines. We do this to eliminate possible sources
+ * of BIO error
+ */
+void test_open_streams(void)
+{
+}
+
+void test_close_streams(void)
+{
+}
+
+/*
+ * This works out as long as caller doesn't use any "fancy" formats.
+ * But we are caller's caller, and test_str_eq is the only one called,
+ * and it uses only "%s", which is not "fancy"...
+ */
+int test_vprintf_stdout(const char *fmt, va_list ap)
+{
+ return vfprintf(stdout, fmt, ap);
+}
+
+int test_vprintf_stderr(const char *fmt, va_list ap)
+{
+ return vfprintf(stderr, fmt, ap);
+}
+
+int test_flush_stdout(void)
+{
+ return fflush(stdout);
+}
+
+int test_flush_stderr(void)
+{
+ return fflush(stderr);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bntest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bntest.c
new file mode 100644
index 000000000..97d08ac0b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bntest.c
@@ -0,0 +1,2804 @@
+/*
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+#include <assert.h>
+#include <errno.h>
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+
+#include <openssl/bn.h>
+#include <openssl/crypto.h>
+#include <openssl/err.h>
+#include <openssl/rand.h>
+#include "internal/nelem.h"
+#include "internal/numbers.h"
+#include "testutil.h"
+
+#ifdef OPENSSL_SYS_WINDOWS
+# define strcasecmp _stricmp
+#endif
+
+/*
+ * Things in boring, not in openssl. TODO we should add them.
+ */
+#define HAVE_BN_PADDED 0
+#define HAVE_BN_SQRT 0
+
+typedef struct filetest_st {
+ const char *name;
+ int (*func)(STANZA *s);
+} FILETEST;
+
+typedef struct mpitest_st {
+ const char *base10;
+ const char *mpi;
+ size_t mpi_len;
+} MPITEST;
+
+static const int NUM0 = 100; /* number of tests */
+static const int NUM1 = 50; /* additional tests for some functions */
+static BN_CTX *ctx;
+
+/*
+ * Polynomial coefficients used in GFM tests.
+ */
+#ifndef OPENSSL_NO_EC2M
+static int p0[] = { 163, 7, 6, 3, 0, -1 };
+static int p1[] = { 193, 15, 0, -1 };
+#endif
+
+/*
+ * Look for |key| in the stanza and return it or NULL if not found.
+ */
+static const char *findattr(STANZA *s, const char *key)
+{
+ int i = s->numpairs;
+ PAIR *pp = s->pairs;
+
+ for ( ; --i >= 0; pp++)
+ if (strcasecmp(pp->key, key) == 0)
+ return pp->value;
+ return NULL;
+}
+
+/*
+ * Parse BIGNUM from sparse hex-strings, return |BN_hex2bn| result.
+ */
+static int parse_bigBN(BIGNUM **out, const char *bn_strings[])
+{
+ char *bigstring = glue_strings(bn_strings, NULL);
+ int ret = BN_hex2bn(out, bigstring);
+
+ OPENSSL_free(bigstring);
+ return ret;
+}
+
+/*
+ * Parse BIGNUM, return number of bytes parsed.
+ */
+static int parseBN(BIGNUM **out, const char *in)
+{
+ *out = NULL;
+ return BN_hex2bn(out, in);
+}
+
+static int parsedecBN(BIGNUM **out, const char *in)
+{
+ *out = NULL;
+ return BN_dec2bn(out, in);
+}
+
+static BIGNUM *getBN(STANZA *s, const char *attribute)
+{
+ const char *hex;
+ BIGNUM *ret = NULL;
+
+ if ((hex = findattr(s, attribute)) == NULL) {
+ TEST_error("%s:%d: Can't find %s", s->test_file, s->start, attribute);
+ return NULL;
+ }
+
+ if (parseBN(&ret, hex) != (int)strlen(hex)) {
+ TEST_error("Could not decode '%s'", hex);
+ return NULL;
+ }
+ return ret;
+}
+
+static int getint(STANZA *s, int *out, const char *attribute)
+{
+ BIGNUM *ret;
+ BN_ULONG word;
+ int st = 0;
+
+ if (!TEST_ptr(ret = getBN(s, attribute))
+ || !TEST_ulong_le(word = BN_get_word(ret), INT_MAX))
+ goto err;
+
+ *out = (int)word;
+ st = 1;
+ err:
+ BN_free(ret);
+ return st;
+}
+
+static int equalBN(const char *op, const BIGNUM *expected, const BIGNUM *actual)
+{
+ if (BN_cmp(expected, actual) == 0)
+ return 1;
+
+ TEST_error("unexpected %s value", op);
+ TEST_BN_eq(expected, actual);
+ return 0;
+}
+
+/*
+ * Return a "random" flag for if a BN should be negated.
+ */
+static int rand_neg(void)
+{
+ static unsigned int neg = 0;
+ static int sign[8] = { 0, 0, 0, 1, 1, 0, 1, 1 };
+
+ return sign[(neg++) % 8];
+}
+
+static int test_swap(void)
+{
+ BIGNUM *a = NULL, *b = NULL, *c = NULL, *d = NULL;
+ int top, cond, st = 0;
+
+ if (!TEST_ptr(a = BN_new())
+ || !TEST_ptr(b = BN_new())
+ || !TEST_ptr(c = BN_new())
+ || !TEST_ptr(d = BN_new()))
+ goto err;
+
+ if (!(TEST_true(BN_bntest_rand(a, 1024, 1, 0))
+ && TEST_true(BN_bntest_rand(b, 1024, 1, 0))
+ && TEST_ptr(BN_copy(c, a))
+ && TEST_ptr(BN_copy(d, b))))
+ goto err;
+ top = BN_num_bits(a) / BN_BITS2;
+
+ /* regular swap */
+ BN_swap(a, b);
+ if (!equalBN("swap", a, d)
+ || !equalBN("swap", b, c))
+ goto err;
+
+ /* conditional swap: true */
+ cond = 1;
+ BN_consttime_swap(cond, a, b, top);
+ if (!equalBN("cswap true", a, c)
+ || !equalBN("cswap true", b, d))
+ goto err;
+
+ /* conditional swap: false */
+ cond = 0;
+ BN_consttime_swap(cond, a, b, top);
+ if (!equalBN("cswap false", a, c)
+ || !equalBN("cswap false", b, d))
+ goto err;
+
+ /* same tests but checking flag swap */
+ BN_set_flags(a, BN_FLG_CONSTTIME);
+
+ BN_swap(a, b);
+ if (!equalBN("swap, flags", a, d)
+ || !equalBN("swap, flags", b, c)
+ || !TEST_true(BN_get_flags(b, BN_FLG_CONSTTIME))
+ || !TEST_false(BN_get_flags(a, BN_FLG_CONSTTIME)))
+ goto err;
+
+ cond = 1;
+ BN_consttime_swap(cond, a, b, top);
+ if (!equalBN("cswap true, flags", a, c)
+ || !equalBN("cswap true, flags", b, d)
+ || !TEST_true(BN_get_flags(a, BN_FLG_CONSTTIME))
+ || !TEST_false(BN_get_flags(b, BN_FLG_CONSTTIME)))
+ goto err;
+
+ cond = 0;
+ BN_consttime_swap(cond, a, b, top);
+ if (!equalBN("cswap false, flags", a, c)
+ || !equalBN("cswap false, flags", b, d)
+ || !TEST_true(BN_get_flags(a, BN_FLG_CONSTTIME))
+ || !TEST_false(BN_get_flags(b, BN_FLG_CONSTTIME)))
+ goto err;
+
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b);
+ BN_free(c);
+ BN_free(d);
+ return st;
+}
+
+static int test_sub(void)
+{
+ BIGNUM *a = NULL, *b = NULL, *c = NULL;
+ int i, st = 0;
+
+ if (!TEST_ptr(a = BN_new())
+ || !TEST_ptr(b = BN_new())
+ || !TEST_ptr(c = BN_new()))
+ goto err;
+
+ for (i = 0; i < NUM0 + NUM1; i++) {
+ if (i < NUM1) {
+ if (!(TEST_true(BN_bntest_rand(a, 512, 0, 0)))
+ && TEST_ptr(BN_copy(b, a))
+ && TEST_int_ne(BN_set_bit(a, i), 0)
+ && TEST_true(BN_add_word(b, i)))
+ goto err;
+ } else {
+ if (!TEST_true(BN_bntest_rand(b, 400 + i - NUM1, 0, 0)))
+ goto err;
+ BN_set_negative(a, rand_neg());
+ BN_set_negative(b, rand_neg());
+ }
+ if (!(TEST_true(BN_sub(c, a, b))
+ && TEST_true(BN_add(c, c, b))
+ && TEST_true(BN_sub(c, c, a))
+ && TEST_BN_eq_zero(c)))
+ goto err;
+ }
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b);
+ BN_free(c);
+ return st;
+}
+
+static int test_div_recip(void)
+{
+ BIGNUM *a = NULL, *b = NULL, *c = NULL, *d = NULL, *e = NULL;
+ BN_RECP_CTX *recp = NULL;
+ int st = 0, i;
+
+ if (!TEST_ptr(a = BN_new())
+ || !TEST_ptr(b = BN_new())
+ || !TEST_ptr(c = BN_new())
+ || !TEST_ptr(d = BN_new())
+ || !TEST_ptr(e = BN_new())
+ || !TEST_ptr(recp = BN_RECP_CTX_new()))
+ goto err;
+
+ for (i = 0; i < NUM0 + NUM1; i++) {
+ if (i < NUM1) {
+ if (!(TEST_true(BN_bntest_rand(a, 400, 0, 0))
+ && TEST_ptr(BN_copy(b, a))
+ && TEST_true(BN_lshift(a, a, i))
+ && TEST_true(BN_add_word(a, i))))
+ goto err;
+ } else {
+ if (!(TEST_true(BN_bntest_rand(b, 50 + 3 * (i - NUM1), 0, 0))))
+ goto err;
+ }
+ BN_set_negative(a, rand_neg());
+ BN_set_negative(b, rand_neg());
+ if (!(TEST_true(BN_RECP_CTX_set(recp, b, ctx))
+ && TEST_true(BN_div_recp(d, c, a, recp, ctx))
+ && TEST_true(BN_mul(e, d, b, ctx))
+ && TEST_true(BN_add(d, e, c))
+ && TEST_true(BN_sub(d, d, a))
+ && TEST_BN_eq_zero(d)))
+ goto err;
+ }
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b);
+ BN_free(c);
+ BN_free(d);
+ BN_free(e);
+ BN_RECP_CTX_free(recp);
+ return st;
+}
+
+static int test_mod(void)
+{
+ BIGNUM *a = NULL, *b = NULL, *c = NULL, *d = NULL, *e = NULL;
+ int st = 0, i;
+
+ if (!TEST_ptr(a = BN_new())
+ || !TEST_ptr(b = BN_new())
+ || !TEST_ptr(c = BN_new())
+ || !TEST_ptr(d = BN_new())
+ || !TEST_ptr(e = BN_new()))
+ goto err;
+
+ if (!(TEST_true(BN_bntest_rand(a, 1024, 0, 0))))
+ goto err;
+ for (i = 0; i < NUM0; i++) {
+ if (!(TEST_true(BN_bntest_rand(b, 450 + i * 10, 0, 0))))
+ goto err;
+ BN_set_negative(a, rand_neg());
+ BN_set_negative(b, rand_neg());
+ if (!(TEST_true(BN_mod(c, a, b, ctx))
+ && TEST_true(BN_div(d, e, a, b, ctx))
+ && TEST_true(BN_sub(e, e, c))
+ && TEST_BN_eq_zero(e)))
+ goto err;
+ }
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b);
+ BN_free(c);
+ BN_free(d);
+ BN_free(e);
+ return st;
+}
+
+static const char *bn1strings[] = {
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000FFFFFFFF00",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "00000000000000000000000000000000000000000000000000FFFFFFFFFFFFFF",
+ NULL
+};
+
+static const char *bn2strings[] = {
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000FFFFFFFF0000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "000000000000000000000000000000000000000000FFFFFFFFFFFFFF00000000",
+ NULL
+};
+
+/*
+ * Test constant-time modular exponentiation with 1024-bit inputs, which on
+ * x86_64 cause a different code branch to be taken.
+ */
+static int test_modexp_mont5(void)
+{
+ BIGNUM *a = NULL, *p = NULL, *m = NULL, *d = NULL, *e = NULL;
+ BIGNUM *b = NULL, *n = NULL, *c = NULL;
+ BN_MONT_CTX *mont = NULL;
+ int st = 0;
+
+ if (!TEST_ptr(a = BN_new())
+ || !TEST_ptr(p = BN_new())
+ || !TEST_ptr(m = BN_new())
+ || !TEST_ptr(d = BN_new())
+ || !TEST_ptr(e = BN_new())
+ || !TEST_ptr(b = BN_new())
+ || !TEST_ptr(n = BN_new())
+ || !TEST_ptr(c = BN_new())
+ || !TEST_ptr(mont = BN_MONT_CTX_new()))
+ goto err;
+
+ /* must be odd for montgomery */
+ if (!(TEST_true(BN_bntest_rand(m, 1024, 0, 1))
+ /* Zero exponent */
+ && TEST_true(BN_bntest_rand(a, 1024, 0, 0))))
+ goto err;
+ BN_zero(p);
+
+ if (!TEST_true(BN_mod_exp_mont_consttime(d, a, p, m, ctx, NULL)))
+ goto err;
+ if (!TEST_BN_eq_one(d))
+ goto err;
+
+ /* Regression test for carry bug in mulx4x_mont */
+ if (!(TEST_true(BN_hex2bn(&a,
+ "7878787878787878787878787878787878787878787878787878787878787878"
+ "7878787878787878787878787878787878787878787878787878787878787878"
+ "7878787878787878787878787878787878787878787878787878787878787878"
+ "7878787878787878787878787878787878787878787878787878787878787878"))
+ && TEST_true(BN_hex2bn(&b,
+ "095D72C08C097BA488C5E439C655A192EAFB6380073D8C2664668EDDB4060744"
+ "E16E57FB4EDB9AE10A0CEFCDC28A894F689A128379DB279D48A2E20849D68593"
+ "9B7803BCF46CEBF5C533FB0DD35B080593DE5472E3FE5DB951B8BFF9B4CB8F03"
+ "9CC638A5EE8CDD703719F8000E6A9F63BEED5F2FCD52FF293EA05A251BB4AB81"))
+ && TEST_true(BN_hex2bn(&n,
+ "D78AF684E71DB0C39CFF4E64FB9DB567132CB9C50CC98009FEB820B26F2DED9B"
+ "91B9B5E2B83AE0AE4EB4E0523CA726BFBE969B89FD754F674CE99118C3F2D1C5"
+ "D81FDC7C54E02B60262B241D53C040E99E45826ECA37A804668E690E1AFC1CA4"
+ "2C9A15D84D4954425F0B7642FC0BD9D7B24E2618D2DCC9B729D944BADACFDDAF"))))
+ goto err;
+
+ if (!(TEST_true(BN_MONT_CTX_set(mont, n, ctx))
+ && TEST_true(BN_mod_mul_montgomery(c, a, b, mont, ctx))
+ && TEST_true(BN_mod_mul_montgomery(d, b, a, mont, ctx))
+ && TEST_BN_eq(c, d)))
+ goto err;
+
+ /* Regression test for carry bug in sqr[x]8x_mont */
+ if (!(TEST_true(parse_bigBN(&n, bn1strings))
+ && TEST_true(parse_bigBN(&a, bn2strings))))
+ goto err;
+ BN_free(b);
+ if (!(TEST_ptr(b = BN_dup(a))
+ && TEST_true(BN_MONT_CTX_set(mont, n, ctx))
+ && TEST_true(BN_mod_mul_montgomery(c, a, a, mont, ctx))
+ && TEST_true(BN_mod_mul_montgomery(d, a, b, mont, ctx))
+ && TEST_BN_eq(c, d)))
+ goto err;
+
+ /* Regression test for carry bug in bn_sqrx8x_internal */
+ {
+ static const char *ahex[] = {
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFEADBCFC4DAE7FFF908E92820306B",
+ "9544D954000000006C0000000000000000000000000000000000000000000000",
+ "00000000000000000000FF030202FFFFF8FFEBDBCFC4DAE7FFF908E92820306B",
+ "9544D954000000006C000000FF0302030000000000FFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01FC00FF02FFFFFFFF",
+ "00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FCFD",
+ "FCFFFFFFFFFF000000000000000000FF0302030000000000FFFFFFFFFFFFFFFF",
+ "FF00FCFDFDFF030202FF00000000FFFFFFFFFFFFFFFFFF00FCFDFCFFFFFFFFFF",
+ NULL
+ };
+ static const char *nhex[] = {
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F8000000",
+ "00000010000000006C0000000000000000000000000000000000000000000000",
+ "00000000000000000000000000000000000000FFFFFFFFFFFFF8F8F8F8000000",
+ "00000010000000006C000000000000000000000000FFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFF000000000000000000000000000000000000FFFFFFFFFFFFFFFF",
+ "FFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ NULL
+ };
+
+ if (!(TEST_true(parse_bigBN(&a, ahex))
+ && TEST_true(parse_bigBN(&n, nhex))))
+ goto err;
+ }
+ BN_free(b);
+ if (!(TEST_ptr(b = BN_dup(a))
+ && TEST_true(BN_MONT_CTX_set(mont, n, ctx))))
+ goto err;
+
+ if (!TEST_true(BN_mod_mul_montgomery(c, a, a, mont, ctx))
+ || !TEST_true(BN_mod_mul_montgomery(d, a, b, mont, ctx))
+ || !TEST_BN_eq(c, d))
+ goto err;
+
+ /* Regression test for bug in BN_from_montgomery_word */
+ if (!(TEST_true(BN_hex2bn(&a,
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"))
+ && TEST_true(BN_hex2bn(&n,
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"))
+ && TEST_true(BN_MONT_CTX_set(mont, n, ctx))
+ && TEST_false(BN_mod_mul_montgomery(d, a, a, mont, ctx))))
+ goto err;
+
+ /* Regression test for bug in rsaz_1024_mul_avx2 */
+ if (!(TEST_true(BN_hex2bn(&a,
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2020202020DF"))
+ && TEST_true(BN_hex2bn(&b,
+ "2020202020202020202020202020202020202020202020202020202020202020"
+ "2020202020202020202020202020202020202020202020202020202020202020"
+ "20202020202020FF202020202020202020202020202020202020202020202020"
+ "2020202020202020202020202020202020202020202020202020202020202020"))
+ && TEST_true(BN_hex2bn(&n,
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2020202020FF"))
+ && TEST_true(BN_MONT_CTX_set(mont, n, ctx))
+ && TEST_true(BN_mod_exp_mont_consttime(c, a, b, n, ctx, mont))
+ && TEST_true(BN_mod_exp_mont(d, a, b, n, ctx, mont))
+ && TEST_BN_eq(c, d)))
+ goto err;
+
+ /*
+ * rsaz_1024_mul_avx2 expects fully-reduced inputs.
+ * BN_mod_exp_mont_consttime should reduce the input first.
+ */
+ if (!(TEST_true(BN_hex2bn(&a,
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2020202020DF"))
+ && TEST_true(BN_hex2bn(&b,
+ "1FA53F26F8811C58BE0357897AA5E165693230BC9DF5F01DFA6A2D59229EC69D"
+ "9DE6A89C36E3B6957B22D6FAAD5A3C73AE587B710DBE92E83D3A9A3339A085CB"
+ "B58F508CA4F837924BB52CC1698B7FDC2FD74362456A595A5B58E38E38E38E38"
+ "E38E38E38E38E38E38E38E38E38E38E38E38E38E38E38E38E38E38E38E38E38E"))
+ && TEST_true(BN_hex2bn(&n,
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2020202020DF"))
+ && TEST_true(BN_MONT_CTX_set(mont, n, ctx))
+ && TEST_true(BN_mod_exp_mont_consttime(c, a, b, n, ctx, mont))))
+ goto err;
+ BN_zero(d);
+ if (!TEST_BN_eq(c, d))
+ goto err;
+
+ /* Zero input */
+ if (!TEST_true(BN_bntest_rand(p, 1024, 0, 0)))
+ goto err;
+ BN_zero(a);
+ if (!TEST_true(BN_mod_exp_mont_consttime(d, a, p, m, ctx, NULL))
+ || !TEST_BN_eq_zero(d))
+ goto err;
+
+ /*
+ * Craft an input whose Montgomery representation is 1, i.e., shorter
+ * than the modulus m, in order to test the const time precomputation
+ * scattering/gathering.
+ */
+ if (!(TEST_true(BN_one(a))
+ && TEST_true(BN_MONT_CTX_set(mont, m, ctx))))
+ goto err;
+ if (!TEST_true(BN_from_montgomery(e, a, mont, ctx))
+ || !TEST_true(BN_mod_exp_mont_consttime(d, e, p, m, ctx, NULL))
+ || !TEST_true(BN_mod_exp_simple(a, e, p, m, ctx))
+ || !TEST_BN_eq(a, d))
+ goto err;
+
+ /* Finally, some regular test vectors. */
+ if (!(TEST_true(BN_bntest_rand(e, 1024, 0, 0))
+ && TEST_true(BN_mod_exp_mont_consttime(d, e, p, m, ctx, NULL))
+ && TEST_true(BN_mod_exp_simple(a, e, p, m, ctx))
+ && TEST_BN_eq(a, d)))
+ goto err;
+
+ st = 1;
+
+ err:
+ BN_MONT_CTX_free(mont);
+ BN_free(a);
+ BN_free(p);
+ BN_free(m);
+ BN_free(d);
+ BN_free(e);
+ BN_free(b);
+ BN_free(n);
+ BN_free(c);
+ return st;
+}
+
+#ifndef OPENSSL_NO_EC2M
+static int test_gf2m_add(void)
+{
+ BIGNUM *a = NULL, *b = NULL, *c = NULL;
+ int i, st = 0;
+
+ if (!TEST_ptr(a = BN_new())
+ || !TEST_ptr(b = BN_new())
+ || !TEST_ptr(c = BN_new()))
+ goto err;
+
+ for (i = 0; i < NUM0; i++) {
+ if (!(TEST_true(BN_rand(a, 512, 0, 0))
+ && TEST_ptr(BN_copy(b, BN_value_one()))))
+ goto err;
+ BN_set_negative(a, rand_neg());
+ BN_set_negative(b, rand_neg());
+ if (!(TEST_true(BN_GF2m_add(c, a, b))
+ /* Test that two added values have the correct parity. */
+ && TEST_false((BN_is_odd(a) && BN_is_odd(c))
+ || (!BN_is_odd(a) && !BN_is_odd(c)))))
+ goto err;
+ if (!(TEST_true(BN_GF2m_add(c, c, c))
+ /* Test that c + c = 0. */
+ && TEST_BN_eq_zero(c)))
+ goto err;
+ }
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b);
+ BN_free(c);
+ return st;
+}
+
+static int test_gf2m_mod(void)
+{
+ BIGNUM *a = NULL, *b[2] = {NULL,NULL}, *c = NULL, *d = NULL, *e = NULL;
+ int i, j, st = 0;
+
+ if (!TEST_ptr(a = BN_new())
+ || !TEST_ptr(b[0] = BN_new())
+ || !TEST_ptr(b[1] = BN_new())
+ || !TEST_ptr(c = BN_new())
+ || !TEST_ptr(d = BN_new())
+ || !TEST_ptr(e = BN_new()))
+ goto err;
+
+ if (!(TEST_true(BN_GF2m_arr2poly(p0, b[0]))
+ && TEST_true(BN_GF2m_arr2poly(p1, b[1]))))
+ goto err;
+
+ for (i = 0; i < NUM0; i++) {
+ if (!TEST_true(BN_bntest_rand(a, 1024, 0, 0)))
+ goto err;
+ for (j = 0; j < 2; j++) {
+ if (!(TEST_true(BN_GF2m_mod(c, a, b[j]))
+ && TEST_true(BN_GF2m_add(d, a, c))
+ && TEST_true(BN_GF2m_mod(e, d, b[j]))
+ /* Test that a + (a mod p) mod p == 0. */
+ && TEST_BN_eq_zero(e)))
+ goto err;
+ }
+ }
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b[0]);
+ BN_free(b[1]);
+ BN_free(c);
+ BN_free(d);
+ BN_free(e);
+ return st;
+}
+
+static int test_gf2m_mul(void)
+{
+ BIGNUM *a, *b[2] = {NULL, NULL}, *c = NULL, *d = NULL;
+ BIGNUM *e = NULL, *f = NULL, *g = NULL, *h = NULL;
+ int i, j, st = 0;
+
+ if (!TEST_ptr(a = BN_new())
+ || !TEST_ptr(b[0] = BN_new())
+ || !TEST_ptr(b[1] = BN_new())
+ || !TEST_ptr(c = BN_new())
+ || !TEST_ptr(d = BN_new())
+ || !TEST_ptr(e = BN_new())
+ || !TEST_ptr(f = BN_new())
+ || !TEST_ptr(g = BN_new())
+ || !TEST_ptr(h = BN_new()))
+ goto err;
+
+ if (!(TEST_true(BN_GF2m_arr2poly(p0, b[0]))
+ && TEST_true(BN_GF2m_arr2poly(p1, b[1]))))
+ goto err;
+
+ for (i = 0; i < NUM0; i++) {
+ if (!(TEST_true(BN_bntest_rand(a, 1024, 0, 0))
+ && TEST_true(BN_bntest_rand(c, 1024, 0, 0))
+ && TEST_true(BN_bntest_rand(d, 1024, 0, 0))))
+ goto err;
+ for (j = 0; j < 2; j++) {
+ if (!(TEST_true(BN_GF2m_mod_mul(e, a, c, b[j], ctx))
+ && TEST_true(BN_GF2m_add(f, a, d))
+ && TEST_true(BN_GF2m_mod_mul(g, f, c, b[j], ctx))
+ && TEST_true(BN_GF2m_mod_mul(h, d, c, b[j], ctx))
+ && TEST_true(BN_GF2m_add(f, e, g))
+ && TEST_true(BN_GF2m_add(f, f, h))
+ /* Test that (a+d)*c = a*c + d*c. */
+ && TEST_BN_eq_zero(f)))
+ goto err;
+ }
+ }
+ st = 1;
+
+ err:
+ BN_free(a);
+ BN_free(b[0]);
+ BN_free(b[1]);
+ BN_free(c);
+ BN_free(d);
+ BN_free(e);
+ BN_free(f);
+ BN_free(g);
+ BN_free(h);
+ return st;
+}
+
+static int test_gf2m_sqr(void)
+{
+ BIGNUM *a = NULL, *b[2] = {NULL,NULL}, *c = NULL, *d = NULL;
+ int i, j, st = 0;
+
+ if (!TEST_ptr(a = BN_new())
+ || !TEST_ptr(b[0] = BN_new())
+ || !TEST_ptr(b[1] = BN_new())
+ || !TEST_ptr(c = BN_new())
+ || !TEST_ptr(d = BN_new()))
+ goto err;
+
+ if (!(TEST_true(BN_GF2m_arr2poly(p0, b[0]))
+ && TEST_true(BN_GF2m_arr2poly(p1, b[1]))))
+ goto err;
+
+ for (i = 0; i < NUM0; i++) {
+ if (!TEST_true(BN_bntest_rand(a, 1024, 0, 0)))
+ goto err;
+ for (j = 0; j < 2; j++) {
+ if (!(TEST_true(BN_GF2m_mod_sqr(c, a, b[j], ctx))
+ && TEST_true(BN_copy(d, a))
+ && TEST_true(BN_GF2m_mod_mul(d, a, d, b[j], ctx))
+ && TEST_true(BN_GF2m_add(d, c, d))
+ /* Test that a*a = a^2. */
+ && TEST_BN_eq_zero(d)))
+ goto err;
+ }
+ }
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b[0]);
+ BN_free(b[1]);
+ BN_free(c);
+ BN_free(d);
+ return st;
+}
+
+static int test_gf2m_modinv(void)
+{
+ BIGNUM *a = NULL, *b[2] = {NULL,NULL}, *c = NULL, *d = NULL;
+ int i, j, st = 0;
+
+ if (!TEST_ptr(a = BN_new())
+ || !TEST_ptr(b[0] = BN_new())
+ || !TEST_ptr(b[1] = BN_new())
+ || !TEST_ptr(c = BN_new())
+ || !TEST_ptr(d = BN_new()))
+ goto err;
+
+ if (!(TEST_true(BN_GF2m_arr2poly(p0, b[0]))
+ && TEST_true(BN_GF2m_arr2poly(p1, b[1]))))
+ goto err;
+
+ for (i = 0; i < NUM0; i++) {
+ if (!TEST_true(BN_bntest_rand(a, 512, 0, 0)))
+ goto err;
+ for (j = 0; j < 2; j++) {
+ if (!(TEST_true(BN_GF2m_mod_inv(c, a, b[j], ctx))
+ && TEST_true(BN_GF2m_mod_mul(d, a, c, b[j], ctx))
+ /* Test that ((1/a)*a) = 1. */
+ && TEST_BN_eq_one(d)))
+ goto err;
+ }
+ }
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b[0]);
+ BN_free(b[1]);
+ BN_free(c);
+ BN_free(d);
+ return st;
+}
+
+static int test_gf2m_moddiv(void)
+{
+ BIGNUM *a = NULL, *b[2] = {NULL,NULL}, *c = NULL, *d = NULL;
+ BIGNUM *e = NULL, *f = NULL;
+ int i, j, st = 0;
+
+ if (!TEST_ptr(a = BN_new())
+ || !TEST_ptr(b[0] = BN_new())
+ || !TEST_ptr(b[1] = BN_new())
+ || !TEST_ptr(c = BN_new())
+ || !TEST_ptr(d = BN_new())
+ || !TEST_ptr(e = BN_new())
+ || !TEST_ptr(f = BN_new()))
+ goto err;
+
+ if (!(TEST_true(BN_GF2m_arr2poly(p0, b[0]))
+ && TEST_true(BN_GF2m_arr2poly(p1, b[1]))))
+ goto err;
+
+ for (i = 0; i < NUM0; i++) {
+ if (!(TEST_true(BN_bntest_rand(a, 512, 0, 0))
+ && TEST_true(BN_bntest_rand(c, 512, 0, 0))))
+ goto err;
+ for (j = 0; j < 2; j++) {
+ if (!(TEST_true(BN_GF2m_mod_div(d, a, c, b[j], ctx))
+ && TEST_true(BN_GF2m_mod_mul(e, d, c, b[j], ctx))
+ && TEST_true(BN_GF2m_mod_div(f, a, e, b[j], ctx))
+ /* Test that ((a/c)*c)/a = 1. */
+ && TEST_BN_eq_one(f)))
+ goto err;
+ }
+ }
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b[0]);
+ BN_free(b[1]);
+ BN_free(c);
+ BN_free(d);
+ BN_free(e);
+ BN_free(f);
+ return st;
+}
+
+static int test_gf2m_modexp(void)
+{
+ BIGNUM *a = NULL, *b[2] = {NULL,NULL}, *c = NULL, *d = NULL;
+ BIGNUM *e = NULL, *f = NULL;
+ int i, j, st = 0;
+
+ if (!TEST_ptr(a = BN_new())
+ || !TEST_ptr(b[0] = BN_new())
+ || !TEST_ptr(b[1] = BN_new())
+ || !TEST_ptr(c = BN_new())
+ || !TEST_ptr(d = BN_new())
+ || !TEST_ptr(e = BN_new())
+ || !TEST_ptr(f = BN_new()))
+ goto err;
+
+ if (!(TEST_true(BN_GF2m_arr2poly(p0, b[0]))
+ && TEST_true(BN_GF2m_arr2poly(p1, b[1]))))
+ goto err;
+
+ for (i = 0; i < NUM0; i++) {
+ if (!(TEST_true(BN_bntest_rand(a, 512, 0, 0))
+ && TEST_true(BN_bntest_rand(c, 512, 0, 0))
+ && TEST_true(BN_bntest_rand(d, 512, 0, 0))))
+ goto err;
+ for (j = 0; j < 2; j++) {
+ if (!(TEST_true(BN_GF2m_mod_exp(e, a, c, b[j], ctx))
+ && TEST_true(BN_GF2m_mod_exp(f, a, d, b[j], ctx))
+ && TEST_true(BN_GF2m_mod_mul(e, e, f, b[j], ctx))
+ && TEST_true(BN_add(f, c, d))
+ && TEST_true(BN_GF2m_mod_exp(f, a, f, b[j], ctx))
+ && TEST_true(BN_GF2m_add(f, e, f))
+ /* Test that a^(c+d)=a^c*a^d. */
+ && TEST_BN_eq_zero(f)))
+ goto err;
+ }
+ }
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b[0]);
+ BN_free(b[1]);
+ BN_free(c);
+ BN_free(d);
+ BN_free(e);
+ BN_free(f);
+ return st;
+}
+
+static int test_gf2m_modsqrt(void)
+{
+ BIGNUM *a = NULL, *b[2] = {NULL,NULL}, *c = NULL, *d = NULL;
+ BIGNUM *e = NULL, *f = NULL;
+ int i, j, st = 0;
+
+ if (!TEST_ptr(a = BN_new())
+ || !TEST_ptr(b[0] = BN_new())
+ || !TEST_ptr(b[1] = BN_new())
+ || !TEST_ptr(c = BN_new())
+ || !TEST_ptr(d = BN_new())
+ || !TEST_ptr(e = BN_new())
+ || !TEST_ptr(f = BN_new()))
+ goto err;
+
+ if (!(TEST_true(BN_GF2m_arr2poly(p0, b[0]))
+ && TEST_true(BN_GF2m_arr2poly(p1, b[1]))))
+ goto err;
+
+ for (i = 0; i < NUM0; i++) {
+ if (!TEST_true(BN_bntest_rand(a, 512, 0, 0)))
+ goto err;
+
+ for (j = 0; j < 2; j++) {
+ if (!(TEST_true(BN_GF2m_mod(c, a, b[j]))
+ && TEST_true(BN_GF2m_mod_sqrt(d, a, b[j], ctx))
+ && TEST_true(BN_GF2m_mod_sqr(e, d, b[j], ctx))
+ && TEST_true(BN_GF2m_add(f, c, e))
+ /* Test that d^2 = a, where d = sqrt(a). */
+ && TEST_BN_eq_zero(f)))
+ goto err;
+ }
+ }
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b[0]);
+ BN_free(b[1]);
+ BN_free(c);
+ BN_free(d);
+ BN_free(e);
+ BN_free(f);
+ return st;
+}
+
+static int test_gf2m_modsolvequad(void)
+{
+ BIGNUM *a = NULL, *b[2] = {NULL,NULL}, *c = NULL, *d = NULL;
+ BIGNUM *e = NULL;
+ int i, j, s = 0, t, st = 0;
+
+ if (!TEST_ptr(a = BN_new())
+ || !TEST_ptr(b[0] = BN_new())
+ || !TEST_ptr(b[1] = BN_new())
+ || !TEST_ptr(c = BN_new())
+ || !TEST_ptr(d = BN_new())
+ || !TEST_ptr(e = BN_new()))
+ goto err;
+
+ if (!(TEST_true(BN_GF2m_arr2poly(p0, b[0]))
+ && TEST_true(BN_GF2m_arr2poly(p1, b[1]))))
+ goto err;
+
+ for (i = 0; i < NUM0; i++) {
+ if (!TEST_true(BN_bntest_rand(a, 512, 0, 0)))
+ goto err;
+ for (j = 0; j < 2; j++) {
+ t = BN_GF2m_mod_solve_quad(c, a, b[j], ctx);
+ if (t) {
+ s++;
+ if (!(TEST_true(BN_GF2m_mod_sqr(d, c, b[j], ctx))
+ && TEST_true(BN_GF2m_add(d, c, d))
+ && TEST_true(BN_GF2m_mod(e, a, b[j]))
+ && TEST_true(BN_GF2m_add(e, e, d))
+ /*
+ * Test that solution of quadratic c
+ * satisfies c^2 + c = a.
+ */
+ && TEST_BN_eq_zero(e)))
+ goto err;
+ }
+ }
+ }
+ if (!TEST_int_ge(s, 0)) {
+ TEST_info("%d tests found no roots; probably an error", NUM0);
+ goto err;
+ }
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b[0]);
+ BN_free(b[1]);
+ BN_free(c);
+ BN_free(d);
+ BN_free(e);
+ return st;
+}
+#endif
+
+static int test_kronecker(void)
+{
+ BIGNUM *a = NULL, *b = NULL, *r = NULL, *t = NULL;
+ int i, legendre, kronecker, st = 0;
+
+ if (!TEST_ptr(a = BN_new())
+ || !TEST_ptr(b = BN_new())
+ || !TEST_ptr(r = BN_new())
+ || !TEST_ptr(t = BN_new()))
+ goto err;
+
+ /*
+ * We test BN_kronecker(a, b, ctx) just for b odd (Jacobi symbol). In
+ * this case we know that if b is prime, then BN_kronecker(a, b, ctx) is
+ * congruent to $a^{(b-1)/2}$, modulo $b$ (Legendre symbol). So we
+ * generate a random prime b and compare these values for a number of
+ * random a's. (That is, we run the Solovay-Strassen primality test to
+ * confirm that b is prime, except that we don't want to test whether b
+ * is prime but whether BN_kronecker works.)
+ */
+
+ if (!TEST_true(BN_generate_prime_ex(b, 512, 0, NULL, NULL, NULL)))
+ goto err;
+ BN_set_negative(b, rand_neg());
+
+ for (i = 0; i < NUM0; i++) {
+ if (!TEST_true(BN_bntest_rand(a, 512, 0, 0)))
+ goto err;
+ BN_set_negative(a, rand_neg());
+
+ /* t := (|b|-1)/2 (note that b is odd) */
+ if (!TEST_true(BN_copy(t, b)))
+ goto err;
+ BN_set_negative(t, 0);
+ if (!TEST_true(BN_sub_word(t, 1)))
+ goto err;
+ if (!TEST_true(BN_rshift1(t, t)))
+ goto err;
+ /* r := a^t mod b */
+ BN_set_negative(b, 0);
+
+ if (!TEST_true(BN_mod_exp_recp(r, a, t, b, ctx)))
+ goto err;
+ BN_set_negative(b, 1);
+
+ if (BN_is_word(r, 1))
+ legendre = 1;
+ else if (BN_is_zero(r))
+ legendre = 0;
+ else {
+ if (!TEST_true(BN_add_word(r, 1)))
+ goto err;
+ if (!TEST_int_eq(BN_ucmp(r, b), 0)) {
+ TEST_info("Legendre symbol computation failed");
+ goto err;
+ }
+ legendre = -1;
+ }
+
+ if (!TEST_int_ge(kronecker = BN_kronecker(a, b, ctx), -1))
+ goto err;
+ /* we actually need BN_kronecker(a, |b|) */
+ if (BN_is_negative(a) && BN_is_negative(b))
+ kronecker = -kronecker;
+
+ if (!TEST_int_eq(legendre, kronecker))
+ goto err;
+ }
+
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b);
+ BN_free(r);
+ BN_free(t);
+ return st;
+}
+
+static int file_sum(STANZA *s)
+{
+ BIGNUM *a = NULL, *b = NULL, *sum = NULL, *ret = NULL;
+ BN_ULONG b_word;
+ int st = 0;
+
+ if (!TEST_ptr(a = getBN(s, "A"))
+ || !TEST_ptr(b = getBN(s, "B"))
+ || !TEST_ptr(sum = getBN(s, "Sum"))
+ || !TEST_ptr(ret = BN_new()))
+ goto err;
+
+ if (!TEST_true(BN_add(ret, a, b))
+ || !equalBN("A + B", sum, ret)
+ || !TEST_true(BN_sub(ret, sum, a))
+ || !equalBN("Sum - A", b, ret)
+ || !TEST_true(BN_sub(ret, sum, b))
+ || !equalBN("Sum - B", a, ret))
+ goto err;
+
+ /*
+ * Test that the functions work when |r| and |a| point to the same BIGNUM,
+ * or when |r| and |b| point to the same BIGNUM.
+ * TODO: Test where all of |r|, |a|, and |b| point to the same BIGNUM.
+ */
+ if (!TEST_true(BN_copy(ret, a))
+ || !TEST_true(BN_add(ret, ret, b))
+ || !equalBN("A + B (r is a)", sum, ret)
+ || !TEST_true(BN_copy(ret, b))
+ || !TEST_true(BN_add(ret, a, ret))
+ || !equalBN("A + B (r is b)", sum, ret)
+ || !TEST_true(BN_copy(ret, sum))
+ || !TEST_true(BN_sub(ret, ret, a))
+ || !equalBN("Sum - A (r is a)", b, ret)
+ || !TEST_true(BN_copy(ret, a))
+ || !TEST_true(BN_sub(ret, sum, ret))
+ || !equalBN("Sum - A (r is b)", b, ret)
+ || !TEST_true(BN_copy(ret, sum))
+ || !TEST_true(BN_sub(ret, ret, b))
+ || !equalBN("Sum - B (r is a)", a, ret)
+ || !TEST_true(BN_copy(ret, b))
+ || !TEST_true(BN_sub(ret, sum, ret))
+ || !equalBN("Sum - B (r is b)", a, ret))
+ goto err;
+
+ /*
+ * Test BN_uadd() and BN_usub() with the prerequisites they are
+ * documented as having. Note that these functions are frequently used
+ * when the prerequisites don't hold. In those cases, they are supposed
+ * to work as if the prerequisite hold, but we don't test that yet.
+ * TODO: test that.
+ */
+ if (!BN_is_negative(a) && !BN_is_negative(b) && BN_cmp(a, b) >= 0) {
+ if (!TEST_true(BN_uadd(ret, a, b))
+ || !equalBN("A +u B", sum, ret)
+ || !TEST_true(BN_usub(ret, sum, a))
+ || !equalBN("Sum -u A", b, ret)
+ || !TEST_true(BN_usub(ret, sum, b))
+ || !equalBN("Sum -u B", a, ret))
+ goto err;
+ /*
+ * Test that the functions work when |r| and |a| point to the same
+ * BIGNUM, or when |r| and |b| point to the same BIGNUM.
+ * TODO: Test where all of |r|, |a|, and |b| point to the same BIGNUM.
+ */
+ if (!TEST_true(BN_copy(ret, a))
+ || !TEST_true(BN_uadd(ret, ret, b))
+ || !equalBN("A +u B (r is a)", sum, ret)
+ || !TEST_true(BN_copy(ret, b))
+ || !TEST_true(BN_uadd(ret, a, ret))
+ || !equalBN("A +u B (r is b)", sum, ret)
+ || !TEST_true(BN_copy(ret, sum))
+ || !TEST_true(BN_usub(ret, ret, a))
+ || !equalBN("Sum -u A (r is a)", b, ret)
+ || !TEST_true(BN_copy(ret, a))
+ || !TEST_true(BN_usub(ret, sum, ret))
+ || !equalBN("Sum -u A (r is b)", b, ret)
+ || !TEST_true(BN_copy(ret, sum))
+ || !TEST_true(BN_usub(ret, ret, b))
+ || !equalBN("Sum -u B (r is a)", a, ret)
+ || !TEST_true(BN_copy(ret, b))
+ || !TEST_true(BN_usub(ret, sum, ret))
+ || !equalBN("Sum -u B (r is b)", a, ret))
+ goto err;
+ }
+
+ /*
+ * Test with BN_add_word() and BN_sub_word() if |b| is small enough.
+ */
+ b_word = BN_get_word(b);
+ if (!BN_is_negative(b) && b_word != (BN_ULONG)-1) {
+ if (!TEST_true(BN_copy(ret, a))
+ || !TEST_true(BN_add_word(ret, b_word))
+ || !equalBN("A + B (word)", sum, ret)
+ || !TEST_true(BN_copy(ret, sum))
+ || !TEST_true(BN_sub_word(ret, b_word))
+ || !equalBN("Sum - B (word)", a, ret))
+ goto err;
+ }
+ st = 1;
+
+ err:
+ BN_free(a);
+ BN_free(b);
+ BN_free(sum);
+ BN_free(ret);
+ return st;
+}
+
+static int file_lshift1(STANZA *s)
+{
+ BIGNUM *a = NULL, *lshift1 = NULL, *zero = NULL, *ret = NULL;
+ BIGNUM *two = NULL, *remainder = NULL;
+ int st = 0;
+
+ if (!TEST_ptr(a = getBN(s, "A"))
+ || !TEST_ptr(lshift1 = getBN(s, "LShift1"))
+ || !TEST_ptr(zero = BN_new())
+ || !TEST_ptr(ret = BN_new())
+ || !TEST_ptr(two = BN_new())
+ || !TEST_ptr(remainder = BN_new()))
+ goto err;
+
+ BN_zero(zero);
+
+ if (!TEST_true(BN_set_word(two, 2))
+ || !TEST_true(BN_add(ret, a, a))
+ || !equalBN("A + A", lshift1, ret)
+ || !TEST_true(BN_mul(ret, a, two, ctx))
+ || !equalBN("A * 2", lshift1, ret)
+ || !TEST_true(BN_div(ret, remainder, lshift1, two, ctx))
+ || !equalBN("LShift1 / 2", a, ret)
+ || !equalBN("LShift1 % 2", zero, remainder)
+ || !TEST_true(BN_lshift1(ret, a))
+ || !equalBN("A << 1", lshift1, ret)
+ || !TEST_true(BN_rshift1(ret, lshift1))
+ || !equalBN("LShift >> 1", a, ret)
+ || !TEST_true(BN_rshift1(ret, lshift1))
+ || !equalBN("LShift >> 1", a, ret))
+ goto err;
+
+ /* Set the LSB to 1 and test rshift1 again. */
+ if (!TEST_true(BN_set_bit(lshift1, 0))
+ || !TEST_true(BN_div(ret, NULL /* rem */ , lshift1, two, ctx))
+ || !equalBN("(LShift1 | 1) / 2", a, ret)
+ || !TEST_true(BN_rshift1(ret, lshift1))
+ || !equalBN("(LShift | 1) >> 1", a, ret))
+ goto err;
+
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(lshift1);
+ BN_free(zero);
+ BN_free(ret);
+ BN_free(two);
+ BN_free(remainder);
+
+ return st;
+}
+
+static int file_lshift(STANZA *s)
+{
+ BIGNUM *a = NULL, *lshift = NULL, *ret = NULL;
+ int n = 0, st = 0;
+
+ if (!TEST_ptr(a = getBN(s, "A"))
+ || !TEST_ptr(lshift = getBN(s, "LShift"))
+ || !TEST_ptr(ret = BN_new())
+ || !getint(s, &n, "N"))
+ goto err;
+
+ if (!TEST_true(BN_lshift(ret, a, n))
+ || !equalBN("A << N", lshift, ret)
+ || !TEST_true(BN_rshift(ret, lshift, n))
+ || !equalBN("A >> N", a, ret))
+ goto err;
+
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(lshift);
+ BN_free(ret);
+ return st;
+}
+
+static int file_rshift(STANZA *s)
+{
+ BIGNUM *a = NULL, *rshift = NULL, *ret = NULL;
+ int n = 0, st = 0;
+
+ if (!TEST_ptr(a = getBN(s, "A"))
+ || !TEST_ptr(rshift = getBN(s, "RShift"))
+ || !TEST_ptr(ret = BN_new())
+ || !getint(s, &n, "N"))
+ goto err;
+
+ if (!TEST_true(BN_rshift(ret, a, n))
+ || !equalBN("A >> N", rshift, ret))
+ goto err;
+
+ /* If N == 1, try with rshift1 as well */
+ if (n == 1) {
+ if (!TEST_true(BN_rshift1(ret, a))
+ || !equalBN("A >> 1 (rshift1)", rshift, ret))
+ goto err;
+ }
+ st = 1;
+
+ err:
+ BN_free(a);
+ BN_free(rshift);
+ BN_free(ret);
+ return st;
+}
+
+static int file_square(STANZA *s)
+{
+ BIGNUM *a = NULL, *square = NULL, *zero = NULL, *ret = NULL;
+ BIGNUM *remainder = NULL, *tmp = NULL;
+ int st = 0;
+
+ if (!TEST_ptr(a = getBN(s, "A"))
+ || !TEST_ptr(square = getBN(s, "Square"))
+ || !TEST_ptr(zero = BN_new())
+ || !TEST_ptr(ret = BN_new())
+ || !TEST_ptr(remainder = BN_new()))
+ goto err;
+
+ BN_zero(zero);
+ if (!TEST_true(BN_sqr(ret, a, ctx))
+ || !equalBN("A^2", square, ret)
+ || !TEST_true(BN_mul(ret, a, a, ctx))
+ || !equalBN("A * A", square, ret)
+ || !TEST_true(BN_div(ret, remainder, square, a, ctx))
+ || !equalBN("Square / A", a, ret)
+ || !equalBN("Square % A", zero, remainder))
+ goto err;
+
+#if HAVE_BN_SQRT
+ BN_set_negative(a, 0);
+ if (!TEST_true(BN_sqrt(ret, square, ctx))
+ || !equalBN("sqrt(Square)", a, ret))
+ goto err;
+
+ /* BN_sqrt should fail on non-squares and negative numbers. */
+ if (!TEST_BN_eq_zero(square)) {
+ if (!TEST_ptr(tmp = BN_new())
+ || !TEST_true(BN_copy(tmp, square)))
+ goto err;
+ BN_set_negative(tmp, 1);
+
+ if (!TEST_int_eq(BN_sqrt(ret, tmp, ctx), 0))
+ goto err;
+ ERR_clear_error();
+
+ BN_set_negative(tmp, 0);
+ if (BN_add(tmp, tmp, BN_value_one()))
+ goto err;
+ if (!TEST_int_eq(BN_sqrt(ret, tmp, ctx)))
+ goto err;
+ ERR_clear_error();
+ }
+#endif
+
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(square);
+ BN_free(zero);
+ BN_free(ret);
+ BN_free(remainder);
+ BN_free(tmp);
+ return st;
+}
+
+static int file_product(STANZA *s)
+{
+ BIGNUM *a = NULL, *b = NULL, *product = NULL, *ret = NULL;
+ BIGNUM *remainder = NULL, *zero = NULL;
+ int st = 0;
+
+ if (!TEST_ptr(a = getBN(s, "A"))
+ || !TEST_ptr(b = getBN(s, "B"))
+ || !TEST_ptr(product = getBN(s, "Product"))
+ || !TEST_ptr(ret = BN_new())
+ || !TEST_ptr(remainder = BN_new())
+ || !TEST_ptr(zero = BN_new()))
+ goto err;
+
+ BN_zero(zero);
+
+ if (!TEST_true(BN_mul(ret, a, b, ctx))
+ || !equalBN("A * B", product, ret)
+ || !TEST_true(BN_div(ret, remainder, product, a, ctx))
+ || !equalBN("Product / A", b, ret)
+ || !equalBN("Product % A", zero, remainder)
+ || !TEST_true(BN_div(ret, remainder, product, b, ctx))
+ || !equalBN("Product / B", a, ret)
+ || !equalBN("Product % B", zero, remainder))
+ goto err;
+
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b);
+ BN_free(product);
+ BN_free(ret);
+ BN_free(remainder);
+ BN_free(zero);
+ return st;
+}
+
+static int file_quotient(STANZA *s)
+{
+ BIGNUM *a = NULL, *b = NULL, *quotient = NULL, *remainder = NULL;
+ BIGNUM *ret = NULL, *ret2 = NULL, *nnmod = NULL;
+ BN_ULONG b_word, ret_word;
+ int st = 0;
+
+ if (!TEST_ptr(a = getBN(s, "A"))
+ || !TEST_ptr(b = getBN(s, "B"))
+ || !TEST_ptr(quotient = getBN(s, "Quotient"))
+ || !TEST_ptr(remainder = getBN(s, "Remainder"))
+ || !TEST_ptr(ret = BN_new())
+ || !TEST_ptr(ret2 = BN_new())
+ || !TEST_ptr(nnmod = BN_new()))
+ goto err;
+
+ if (!TEST_true(BN_div(ret, ret2, a, b, ctx))
+ || !equalBN("A / B", quotient, ret)
+ || !equalBN("A % B", remainder, ret2)
+ || !TEST_true(BN_mul(ret, quotient, b, ctx))
+ || !TEST_true(BN_add(ret, ret, remainder))
+ || !equalBN("Quotient * B + Remainder", a, ret))
+ goto err;
+
+ /*
+ * Test with BN_mod_word() and BN_div_word() if the divisor is
+ * small enough.
+ */
+ b_word = BN_get_word(b);
+ if (!BN_is_negative(b) && b_word != (BN_ULONG)-1) {
+ BN_ULONG remainder_word = BN_get_word(remainder);
+
+ assert(remainder_word != (BN_ULONG)-1);
+ if (!TEST_ptr(BN_copy(ret, a)))
+ goto err;
+ ret_word = BN_div_word(ret, b_word);
+ if (ret_word != remainder_word) {
+#ifdef BN_DEC_FMT1
+ TEST_error(
+ "Got A %% B (word) = " BN_DEC_FMT1 ", wanted " BN_DEC_FMT1,
+ ret_word, remainder_word);
+#else
+ TEST_error("Got A %% B (word) mismatch");
+#endif
+ goto err;
+ }
+ if (!equalBN ("A / B (word)", quotient, ret))
+ goto err;
+
+ ret_word = BN_mod_word(a, b_word);
+ if (ret_word != remainder_word) {
+#ifdef BN_DEC_FMT1
+ TEST_error(
+ "Got A %% B (word) = " BN_DEC_FMT1 ", wanted " BN_DEC_FMT1 "",
+ ret_word, remainder_word);
+#else
+ TEST_error("Got A %% B (word) mismatch");
+#endif
+ goto err;
+ }
+ }
+
+ /* Test BN_nnmod. */
+ if (!BN_is_negative(b)) {
+ if (!TEST_true(BN_copy(nnmod, remainder))
+ || (BN_is_negative(nnmod)
+ && !TEST_true(BN_add(nnmod, nnmod, b)))
+ || !TEST_true(BN_nnmod(ret, a, b, ctx))
+ || !equalBN("A % B (non-negative)", nnmod, ret))
+ goto err;
+ }
+
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b);
+ BN_free(quotient);
+ BN_free(remainder);
+ BN_free(ret);
+ BN_free(ret2);
+ BN_free(nnmod);
+ return st;
+}
+
+static int file_modmul(STANZA *s)
+{
+ BIGNUM *a = NULL, *b = NULL, *m = NULL, *mod_mul = NULL, *ret = NULL;
+ int st = 0;
+
+ if (!TEST_ptr(a = getBN(s, "A"))
+ || !TEST_ptr(b = getBN(s, "B"))
+ || !TEST_ptr(m = getBN(s, "M"))
+ || !TEST_ptr(mod_mul = getBN(s, "ModMul"))
+ || !TEST_ptr(ret = BN_new()))
+ goto err;
+
+ if (!TEST_true(BN_mod_mul(ret, a, b, m, ctx))
+ || !equalBN("A * B (mod M)", mod_mul, ret))
+ goto err;
+
+ if (BN_is_odd(m)) {
+ /* Reduce |a| and |b| and test the Montgomery version. */
+ BN_MONT_CTX *mont = BN_MONT_CTX_new();
+ BIGNUM *a_tmp = BN_new();
+ BIGNUM *b_tmp = BN_new();
+
+ if (mont == NULL || a_tmp == NULL || b_tmp == NULL
+ || !TEST_true(BN_MONT_CTX_set(mont, m, ctx))
+ || !TEST_true(BN_nnmod(a_tmp, a, m, ctx))
+ || !TEST_true(BN_nnmod(b_tmp, b, m, ctx))
+ || !TEST_true(BN_to_montgomery(a_tmp, a_tmp, mont, ctx))
+ || !TEST_true(BN_to_montgomery(b_tmp, b_tmp, mont, ctx))
+ || !TEST_true(BN_mod_mul_montgomery(ret, a_tmp, b_tmp,
+ mont, ctx))
+ || !TEST_true(BN_from_montgomery(ret, ret, mont, ctx))
+ || !equalBN("A * B (mod M) (mont)", mod_mul, ret))
+ st = 0;
+ else
+ st = 1;
+ BN_MONT_CTX_free(mont);
+ BN_free(a_tmp);
+ BN_free(b_tmp);
+ if (st == 0)
+ goto err;
+ }
+
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b);
+ BN_free(m);
+ BN_free(mod_mul);
+ BN_free(ret);
+ return st;
+}
+
+static int file_modexp(STANZA *s)
+{
+ BIGNUM *a = NULL, *e = NULL, *m = NULL, *mod_exp = NULL, *ret = NULL;
+ BIGNUM *b = NULL, *c = NULL, *d = NULL;
+ int st = 0;
+
+ if (!TEST_ptr(a = getBN(s, "A"))
+ || !TEST_ptr(e = getBN(s, "E"))
+ || !TEST_ptr(m = getBN(s, "M"))
+ || !TEST_ptr(mod_exp = getBN(s, "ModExp"))
+ || !TEST_ptr(ret = BN_new())
+ || !TEST_ptr(d = BN_new()))
+ goto err;
+
+ if (!TEST_true(BN_mod_exp(ret, a, e, m, ctx))
+ || !equalBN("A ^ E (mod M)", mod_exp, ret))
+ goto err;
+
+ if (BN_is_odd(m)) {
+ if (!TEST_true(BN_mod_exp_mont(ret, a, e, m, ctx, NULL))
+ || !equalBN("A ^ E (mod M) (mont)", mod_exp, ret)
+ || !TEST_true(BN_mod_exp_mont_consttime(ret, a, e, m,
+ ctx, NULL))
+ || !equalBN("A ^ E (mod M) (mont const", mod_exp, ret))
+ goto err;
+ }
+
+ /* Regression test for carry propagation bug in sqr8x_reduction */
+ BN_hex2bn(&a, "050505050505");
+ BN_hex2bn(&b, "02");
+ BN_hex2bn(&c,
+ "4141414141414141414141274141414141414141414141414141414141414141"
+ "4141414141414141414141414141414141414141414141414141414141414141"
+ "4141414141414141414141800000000000000000000000000000000000000000"
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ "0000000000000000000000000000000000000000000000000000000001");
+ if (!TEST_true(BN_mod_exp(d, a, b, c, ctx))
+ || !TEST_true(BN_mul(e, a, a, ctx))
+ || !TEST_BN_eq(d, e))
+ goto err;
+
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b);
+ BN_free(c);
+ BN_free(d);
+ BN_free(e);
+ BN_free(m);
+ BN_free(mod_exp);
+ BN_free(ret);
+ return st;
+}
+
+static int file_exp(STANZA *s)
+{
+ BIGNUM *a = NULL, *e = NULL, *exp = NULL, *ret = NULL;
+ int st = 0;
+
+ if (!TEST_ptr(a = getBN(s, "A"))
+ || !TEST_ptr(e = getBN(s, "E"))
+ || !TEST_ptr(exp = getBN(s, "Exp"))
+ || !TEST_ptr(ret = BN_new()))
+ goto err;
+
+ if (!TEST_true(BN_exp(ret, a, e, ctx))
+ || !equalBN("A ^ E", exp, ret))
+ goto err;
+
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(e);
+ BN_free(exp);
+ BN_free(ret);
+ return st;
+}
+
+static int file_modsqrt(STANZA *s)
+{
+ BIGNUM *a = NULL, *p = NULL, *mod_sqrt = NULL, *ret = NULL, *ret2 = NULL;
+ int st = 0;
+
+ if (!TEST_ptr(a = getBN(s, "A"))
+ || !TEST_ptr(p = getBN(s, "P"))
+ || !TEST_ptr(mod_sqrt = getBN(s, "ModSqrt"))
+ || !TEST_ptr(ret = BN_new())
+ || !TEST_ptr(ret2 = BN_new()))
+ goto err;
+
+ /* There are two possible answers. */
+ if (!TEST_true(BN_mod_sqrt(ret, a, p, ctx))
+ || !TEST_true(BN_sub(ret2, p, ret)))
+ goto err;
+
+ /* The first condition should NOT be a test. */
+ if (BN_cmp(ret2, mod_sqrt) != 0
+ && !equalBN("sqrt(A) (mod P)", mod_sqrt, ret))
+ goto err;
+
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(p);
+ BN_free(mod_sqrt);
+ BN_free(ret);
+ BN_free(ret2);
+ return st;
+}
+
+static int file_gcd(STANZA *s)
+{
+ BIGNUM *a = NULL, *b = NULL, *gcd = NULL, *ret = NULL;
+ int st = 0;
+
+ if (!TEST_ptr(a = getBN(s, "A"))
+ || !TEST_ptr(b = getBN(s, "B"))
+ || !TEST_ptr(gcd = getBN(s, "GCD"))
+ || !TEST_ptr(ret = BN_new()))
+ goto err;
+
+ if (!TEST_true(BN_gcd(ret, a, b, ctx))
+ || !equalBN("gcd(A,B)", gcd, ret))
+ goto err;
+
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b);
+ BN_free(gcd);
+ BN_free(ret);
+ return st;
+}
+
+static int test_bn2padded(void)
+{
+#if HAVE_BN_PADDED
+ uint8_t zeros[256], out[256], reference[128];
+ BIGNUM *n = BN_new();
+ int st = 0;
+
+ /* Test edge case at 0. */
+ if (n == NULL)
+ goto err;
+ if (!TEST_true(BN_bn2bin_padded(NULL, 0, n)))
+ goto err;
+ memset(out, -1, sizeof(out));
+ if (!TEST_true(BN_bn2bin_padded(out, sizeof(out)), n))
+ goto err;
+ memset(zeros, 0, sizeof(zeros));
+ if (!TEST_mem_eq(zeros, sizeof(zeros), out, sizeof(out)))
+ goto err;
+
+ /* Test a random numbers at various byte lengths. */
+ for (size_t bytes = 128 - 7; bytes <= 128; bytes++) {
+# define TOP_BIT_ON 0
+# define BOTTOM_BIT_NOTOUCH 0
+ if (!TEST_true(BN_rand(n, bytes * 8, TOP_BIT_ON, BOTTOM_BIT_NOTOUCH)))
+ goto err;
+ if (!TEST_int_eq(BN_num_bytes(n),A) bytes
+ || TEST_int_eq(BN_bn2bin(n, reference), bytes))
+ goto err;
+ /* Empty buffer should fail. */
+ if (!TEST_int_eq(BN_bn2bin_padded(NULL, 0, n)), 0)
+ goto err;
+ /* One byte short should fail. */
+ if (BN_bn2bin_padded(out, bytes - 1, n))
+ goto err;
+ /* Exactly right size should encode. */
+ if (!TEST_true(BN_bn2bin_padded(out, bytes, n))
+ || TEST_mem_eq(out, bytes, reference, bytes))
+ goto err;
+ /* Pad up one byte extra. */
+ if (!TEST_true(BN_bn2bin_padded(out, bytes + 1, n))
+ || !TEST_mem_eq(out + 1, bytes, reference, bytes)
+ || !TEST_mem_eq(out, 1, zeros, 1))
+ goto err;
+ /* Pad up to 256. */
+ if (!TEST_true(BN_bn2bin_padded(out, sizeof(out)), n)
+ || !TEST_mem_eq(out + sizeof(out) - bytes, bytes,
+ reference, bytes)
+ || !TEST_mem_eq(out, sizseof(out) - bytes,
+ zeros, sizeof(out) - bytes))
+ goto err;
+ }
+
+ st = 1;
+ err:
+ BN_free(n);
+ return st;
+#else
+ return ctx != NULL;
+#endif
+}
+
+static int test_dec2bn(void)
+{
+ BIGNUM *bn = NULL;
+ int st = 0;
+
+ if (!TEST_int_eq(parsedecBN(&bn, "0"), 1)
+ || !TEST_BN_eq_word(bn, 0)
+ || !TEST_BN_eq_zero(bn)
+ || !TEST_BN_le_zero(bn)
+ || !TEST_BN_ge_zero(bn)
+ || !TEST_BN_even(bn))
+ goto err;
+ BN_free(bn);
+ bn = NULL;
+
+ if (!TEST_int_eq(parsedecBN(&bn, "256"), 3)
+ || !TEST_BN_eq_word(bn, 256)
+ || !TEST_BN_ge_zero(bn)
+ || !TEST_BN_gt_zero(bn)
+ || !TEST_BN_ne_zero(bn)
+ || !TEST_BN_even(bn))
+ goto err;
+ BN_free(bn);
+ bn = NULL;
+
+ if (!TEST_int_eq(parsedecBN(&bn, "-42"), 3)
+ || !TEST_BN_abs_eq_word(bn, 42)
+ || !TEST_BN_lt_zero(bn)
+ || !TEST_BN_le_zero(bn)
+ || !TEST_BN_ne_zero(bn)
+ || !TEST_BN_even(bn))
+ goto err;
+ BN_free(bn);
+ bn = NULL;
+
+ if (!TEST_int_eq(parsedecBN(&bn, "1"), 1)
+ || !TEST_BN_eq_word(bn, 1)
+ || !TEST_BN_ne_zero(bn)
+ || !TEST_BN_gt_zero(bn)
+ || !TEST_BN_ge_zero(bn)
+ || !TEST_BN_eq_one(bn)
+ || !TEST_BN_odd(bn))
+ goto err;
+ BN_free(bn);
+ bn = NULL;
+
+ if (!TEST_int_eq(parsedecBN(&bn, "-0"), 2)
+ || !TEST_BN_eq_zero(bn)
+ || !TEST_BN_ge_zero(bn)
+ || !TEST_BN_le_zero(bn)
+ || !TEST_BN_even(bn))
+ goto err;
+ BN_free(bn);
+ bn = NULL;
+
+ if (!TEST_int_eq(parsedecBN(&bn, "42trailing garbage is ignored"), 2)
+ || !TEST_BN_abs_eq_word(bn, 42)
+ || !TEST_BN_ge_zero(bn)
+ || !TEST_BN_gt_zero(bn)
+ || !TEST_BN_ne_zero(bn)
+ || !TEST_BN_even(bn))
+ goto err;
+
+ st = 1;
+ err:
+ BN_free(bn);
+ return st;
+}
+
+static int test_hex2bn(void)
+{
+ BIGNUM *bn = NULL;
+ int st = 0;
+
+ if (!TEST_int_eq(parseBN(&bn, "0"), 1)
+ || !TEST_BN_eq_zero(bn)
+ || !TEST_BN_ge_zero(bn)
+ || !TEST_BN_even(bn))
+ goto err;
+ BN_free(bn);
+ bn = NULL;
+
+ if (!TEST_int_eq(parseBN(&bn, "256"), 3)
+ || !TEST_BN_eq_word(bn, 0x256)
+ || !TEST_BN_ge_zero(bn)
+ || !TEST_BN_gt_zero(bn)
+ || !TEST_BN_ne_zero(bn)
+ || !TEST_BN_even(bn))
+ goto err;
+ BN_free(bn);
+ bn = NULL;
+
+ if (!TEST_int_eq(parseBN(&bn, "-42"), 3)
+ || !TEST_BN_abs_eq_word(bn, 0x42)
+ || !TEST_BN_lt_zero(bn)
+ || !TEST_BN_le_zero(bn)
+ || !TEST_BN_ne_zero(bn)
+ || !TEST_BN_even(bn))
+ goto err;
+ BN_free(bn);
+ bn = NULL;
+
+ if (!TEST_int_eq(parseBN(&bn, "cb"), 2)
+ || !TEST_BN_eq_word(bn, 0xCB)
+ || !TEST_BN_ge_zero(bn)
+ || !TEST_BN_gt_zero(bn)
+ || !TEST_BN_ne_zero(bn)
+ || !TEST_BN_odd(bn))
+ goto err;
+ BN_free(bn);
+ bn = NULL;
+
+ if (!TEST_int_eq(parseBN(&bn, "-0"), 2)
+ || !TEST_BN_eq_zero(bn)
+ || !TEST_BN_ge_zero(bn)
+ || !TEST_BN_le_zero(bn)
+ || !TEST_BN_even(bn))
+ goto err;
+ BN_free(bn);
+ bn = NULL;
+
+ if (!TEST_int_eq(parseBN(&bn, "abctrailing garbage is ignored"), 3)
+ || !TEST_BN_eq_word(bn, 0xabc)
+ || !TEST_BN_ge_zero(bn)
+ || !TEST_BN_gt_zero(bn)
+ || !TEST_BN_ne_zero(bn)
+ || !TEST_BN_even(bn))
+ goto err;
+ st = 1;
+
+ err:
+ BN_free(bn);
+ return st;
+}
+
+static int test_asc2bn(void)
+{
+ BIGNUM *bn = NULL;
+ int st = 0;
+
+ if (!TEST_ptr(bn = BN_new()))
+ goto err;
+
+ if (!TEST_true(BN_asc2bn(&bn, "0"))
+ || !TEST_BN_eq_zero(bn)
+ || !TEST_BN_ge_zero(bn))
+ goto err;
+
+ if (!TEST_true(BN_asc2bn(&bn, "256"))
+ || !TEST_BN_eq_word(bn, 256)
+ || !TEST_BN_ge_zero(bn))
+ goto err;
+
+ if (!TEST_true(BN_asc2bn(&bn, "-42"))
+ || !TEST_BN_abs_eq_word(bn, 42)
+ || !TEST_BN_lt_zero(bn))
+ goto err;
+
+ if (!TEST_true(BN_asc2bn(&bn, "0x1234"))
+ || !TEST_BN_eq_word(bn, 0x1234)
+ || !TEST_BN_ge_zero(bn))
+ goto err;
+
+ if (!TEST_true(BN_asc2bn(&bn, "0X1234"))
+ || !TEST_BN_eq_word(bn, 0x1234)
+ || !TEST_BN_ge_zero(bn))
+ goto err;
+
+ if (!TEST_true(BN_asc2bn(&bn, "-0xabcd"))
+ || !TEST_BN_abs_eq_word(bn, 0xabcd)
+ || !TEST_BN_lt_zero(bn))
+ goto err;
+
+ if (!TEST_true(BN_asc2bn(&bn, "-0"))
+ || !TEST_BN_eq_zero(bn)
+ || !TEST_BN_ge_zero(bn))
+ goto err;
+
+ if (!TEST_true(BN_asc2bn(&bn, "123trailing garbage is ignored"))
+ || !TEST_BN_eq_word(bn, 123)
+ || !TEST_BN_ge_zero(bn))
+ goto err;
+
+ st = 1;
+ err:
+ BN_free(bn);
+ return st;
+}
+
+static const MPITEST kMPITests[] = {
+ {"0", "\x00\x00\x00\x00", 4},
+ {"1", "\x00\x00\x00\x01\x01", 5},
+ {"-1", "\x00\x00\x00\x01\x81", 5},
+ {"128", "\x00\x00\x00\x02\x00\x80", 6},
+ {"256", "\x00\x00\x00\x02\x01\x00", 6},
+ {"-256", "\x00\x00\x00\x02\x81\x00", 6},
+};
+
+static int test_mpi(int i)
+{
+ uint8_t scratch[8];
+ const MPITEST *test = &kMPITests[i];
+ size_t mpi_len, mpi_len2;
+ BIGNUM *bn = NULL;
+ BIGNUM *bn2 = NULL;
+ int st = 0;
+
+ if (!TEST_ptr(bn = BN_new())
+ || !TEST_true(BN_asc2bn(&bn, test->base10)))
+ goto err;
+ mpi_len = BN_bn2mpi(bn, NULL);
+ if (!TEST_size_t_le(mpi_len, sizeof(scratch)))
+ goto err;
+
+ if (!TEST_size_t_eq(mpi_len2 = BN_bn2mpi(bn, scratch), mpi_len)
+ || !TEST_mem_eq(test->mpi, test->mpi_len, scratch, mpi_len))
+ goto err;
+
+ if (!TEST_ptr(bn2 = BN_mpi2bn(scratch, mpi_len, NULL)))
+ goto err;
+
+ if (!TEST_BN_eq(bn, bn2)) {
+ BN_free(bn2);
+ goto err;
+ }
+ BN_free(bn2);
+
+ st = 1;
+ err:
+ BN_free(bn);
+ return st;
+}
+
+static int test_rand(void)
+{
+ BIGNUM *bn = NULL;
+ int st = 0;
+
+ if (!TEST_ptr(bn = BN_new()))
+ return 0;
+
+ /* Test BN_rand for degenerate cases with |top| and |bottom| parameters. */
+ if (!TEST_false(BN_rand(bn, 0, 0 /* top */ , 0 /* bottom */ ))
+ || !TEST_false(BN_rand(bn, 0, 1 /* top */ , 1 /* bottom */ ))
+ || !TEST_true(BN_rand(bn, 1, 0 /* top */ , 0 /* bottom */ ))
+ || !TEST_BN_eq_one(bn)
+ || !TEST_false(BN_rand(bn, 1, 1 /* top */ , 0 /* bottom */ ))
+ || !TEST_true(BN_rand(bn, 1, -1 /* top */ , 1 /* bottom */ ))
+ || !TEST_BN_eq_one(bn)
+ || !TEST_true(BN_rand(bn, 2, 1 /* top */ , 0 /* bottom */ ))
+ || !TEST_BN_eq_word(bn, 3))
+ goto err;
+
+ st = 1;
+ err:
+ BN_free(bn);
+ return st;
+}
+
+static int test_negzero(void)
+{
+ BIGNUM *a = NULL, *b = NULL, *c = NULL, *d = NULL;
+ BIGNUM *numerator = NULL, *denominator = NULL;
+ int consttime, st = 0;
+
+ if (!TEST_ptr(a = BN_new())
+ || !TEST_ptr(b = BN_new())
+ || !TEST_ptr(c = BN_new())
+ || !TEST_ptr(d = BN_new()))
+ goto err;
+
+ /* Test that BN_mul never gives negative zero. */
+ if (!TEST_true(BN_set_word(a, 1)))
+ goto err;
+ BN_set_negative(a, 1);
+ BN_zero(b);
+ if (!TEST_true(BN_mul(c, a, b, ctx)))
+ goto err;
+ if (!TEST_BN_eq_zero(c)
+ || !TEST_BN_ge_zero(c))
+ goto err;
+
+ for (consttime = 0; consttime < 2; consttime++) {
+ if (!TEST_ptr(numerator = BN_new())
+ || !TEST_ptr(denominator = BN_new()))
+ goto err;
+ if (consttime) {
+ BN_set_flags(numerator, BN_FLG_CONSTTIME);
+ BN_set_flags(denominator, BN_FLG_CONSTTIME);
+ }
+ /* Test that BN_div never gives negative zero in the quotient. */
+ if (!TEST_true(BN_set_word(numerator, 1))
+ || !TEST_true(BN_set_word(denominator, 2)))
+ goto err;
+ BN_set_negative(numerator, 1);
+ if (!TEST_true(BN_div(a, b, numerator, denominator, ctx))
+ || !TEST_BN_eq_zero(a)
+ || !TEST_BN_ge_zero(a))
+ goto err;
+
+ /* Test that BN_div never gives negative zero in the remainder. */
+ if (!TEST_true(BN_set_word(denominator, 1))
+ || !TEST_true(BN_div(a, b, numerator, denominator, ctx))
+ || !TEST_BN_eq_zero(b)
+ || !TEST_BN_ge_zero(b))
+ goto err;
+ BN_free(numerator);
+ BN_free(denominator);
+ numerator = denominator = NULL;
+ }
+
+ /* Test that BN_set_negative will not produce a negative zero. */
+ BN_zero(a);
+ BN_set_negative(a, 1);
+ if (BN_is_negative(a))
+ goto err;
+ st = 1;
+
+ err:
+ BN_free(a);
+ BN_free(b);
+ BN_free(c);
+ BN_free(d);
+ BN_free(numerator);
+ BN_free(denominator);
+ return st;
+}
+
+static int test_badmod(void)
+{
+ BIGNUM *a = NULL, *b = NULL, *zero = NULL;
+ BN_MONT_CTX *mont = NULL;
+ int st = 0;
+
+ if (!TEST_ptr(a = BN_new())
+ || !TEST_ptr(b = BN_new())
+ || !TEST_ptr(zero = BN_new())
+ || !TEST_ptr(mont = BN_MONT_CTX_new()))
+ goto err;
+ BN_zero(zero);
+
+ if (!TEST_false(BN_div(a, b, BN_value_one(), zero, ctx)))
+ goto err;
+ ERR_clear_error();
+
+ if (!TEST_false(BN_mod_mul(a, BN_value_one(), BN_value_one(), zero, ctx)))
+ goto err;
+ ERR_clear_error();
+
+ if (!TEST_false(BN_mod_exp(a, BN_value_one(), BN_value_one(), zero, ctx)))
+ goto err;
+ ERR_clear_error();
+
+ if (!TEST_false(BN_mod_exp_mont(a, BN_value_one(), BN_value_one(),
+ zero, ctx, NULL)))
+ goto err;
+ ERR_clear_error();
+
+ if (!TEST_false(BN_mod_exp_mont_consttime(a, BN_value_one(), BN_value_one(),
+ zero, ctx, NULL)))
+ goto err;
+ ERR_clear_error();
+
+ if (!TEST_false(BN_MONT_CTX_set(mont, zero, ctx)))
+ goto err;
+ ERR_clear_error();
+
+ /* Some operations also may not be used with an even modulus. */
+ if (!TEST_true(BN_set_word(b, 16)))
+ goto err;
+
+ if (!TEST_false(BN_MONT_CTX_set(mont, b, ctx)))
+ goto err;
+ ERR_clear_error();
+
+ if (!TEST_false(BN_mod_exp_mont(a, BN_value_one(), BN_value_one(),
+ b, ctx, NULL)))
+ goto err;
+ ERR_clear_error();
+
+ if (!TEST_false(BN_mod_exp_mont_consttime(a, BN_value_one(), BN_value_one(),
+ b, ctx, NULL)))
+ goto err;
+ ERR_clear_error();
+
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b);
+ BN_free(zero);
+ BN_MONT_CTX_free(mont);
+ return st;
+}
+
+static int test_expmodzero(void)
+{
+ BIGNUM *a = NULL, *r = NULL, *zero = NULL;
+ int st = 0;
+
+ if (!TEST_ptr(zero = BN_new())
+ || !TEST_ptr(a = BN_new())
+ || !TEST_ptr(r = BN_new()))
+ goto err;
+ BN_zero(zero);
+
+ if (!TEST_true(BN_mod_exp(r, a, zero, BN_value_one(), NULL))
+ || !TEST_BN_eq_zero(r)
+ || !TEST_true(BN_mod_exp_mont(r, a, zero, BN_value_one(),
+ NULL, NULL))
+ || !TEST_BN_eq_zero(r)
+ || !TEST_true(BN_mod_exp_mont_consttime(r, a, zero,
+ BN_value_one(),
+ NULL, NULL))
+ || !TEST_BN_eq_zero(r)
+ || !TEST_true(BN_mod_exp_mont_word(r, 42, zero,
+ BN_value_one(), NULL, NULL))
+ || !TEST_BN_eq_zero(r))
+ goto err;
+
+ st = 1;
+ err:
+ BN_free(zero);
+ BN_free(a);
+ BN_free(r);
+ return st;
+}
+
+static int test_expmodone(void)
+{
+ int ret = 0, i;
+ BIGNUM *r = BN_new();
+ BIGNUM *a = BN_new();
+ BIGNUM *p = BN_new();
+ BIGNUM *m = BN_new();
+
+ if (!TEST_ptr(r)
+ || !TEST_ptr(a)
+ || !TEST_ptr(p)
+ || !TEST_ptr(p)
+ || !TEST_ptr(m)
+ || !TEST_true(BN_set_word(a, 1))
+ || !TEST_true(BN_set_word(p, 0))
+ || !TEST_true(BN_set_word(m, 1)))
+ goto err;
+
+ /* Calculate r = 1 ^ 0 mod 1, and check the result is always 0 */
+ for (i = 0; i < 2; i++) {
+ if (!TEST_true(BN_mod_exp(r, a, p, m, NULL))
+ || !TEST_BN_eq_zero(r)
+ || !TEST_true(BN_mod_exp_mont(r, a, p, m, NULL, NULL))
+ || !TEST_BN_eq_zero(r)
+ || !TEST_true(BN_mod_exp_mont_consttime(r, a, p, m, NULL, NULL))
+ || !TEST_BN_eq_zero(r)
+ || !TEST_true(BN_mod_exp_mont_word(r, 1, p, m, NULL, NULL))
+ || !TEST_BN_eq_zero(r)
+ || !TEST_true(BN_mod_exp_simple(r, a, p, m, NULL))
+ || !TEST_BN_eq_zero(r)
+ || !TEST_true(BN_mod_exp_recp(r, a, p, m, NULL))
+ || !TEST_BN_eq_zero(r))
+ goto err;
+ /* Repeat for r = 1 ^ 0 mod -1 */
+ if (i == 0)
+ BN_set_negative(m, 1);
+ }
+
+ ret = 1;
+ err:
+ BN_free(r);
+ BN_free(a);
+ BN_free(p);
+ BN_free(m);
+ return ret;
+}
+
+static int test_smallprime(int kBits)
+{
+ BIGNUM *r;
+ int st = 0;
+
+ if (!TEST_ptr(r = BN_new()))
+ goto err;
+
+ if (kBits <= 1) {
+ if (!TEST_false(BN_generate_prime_ex(r, kBits, 0,
+ NULL, NULL, NULL)))
+ goto err;
+ } else {
+ if (!TEST_true(BN_generate_prime_ex(r, kBits, 0,
+ NULL, NULL, NULL))
+ || !TEST_int_eq(BN_num_bits(r), kBits))
+ goto err;
+ }
+
+ st = 1;
+ err:
+ BN_free(r);
+ return st;
+}
+
+static int test_smallsafeprime(int kBits)
+{
+ BIGNUM *r;
+ int st = 0;
+
+ if (!TEST_ptr(r = BN_new()))
+ goto err;
+
+ if (kBits <= 5 && kBits != 3) {
+ if (!TEST_false(BN_generate_prime_ex(r, kBits, 1,
+ NULL, NULL, NULL)))
+ goto err;
+ } else {
+ if (!TEST_true(BN_generate_prime_ex(r, kBits, 1,
+ NULL, NULL, NULL))
+ || !TEST_int_eq(BN_num_bits(r), kBits))
+ goto err;
+ }
+
+ st = 1;
+ err:
+ BN_free(r);
+ return st;
+}
+
+static int primes[] = { 2, 3, 5, 7, 17863 };
+
+static int test_is_prime(int i)
+{
+ int ret = 0;
+ BIGNUM *r = NULL;
+ int trial;
+
+ if (!TEST_ptr(r = BN_new()))
+ goto err;
+
+ for (trial = 0; trial <= 1; ++trial) {
+ if (!TEST_true(BN_set_word(r, primes[i]))
+ || !TEST_int_eq(BN_is_prime_fasttest_ex(r, 1, ctx, trial, NULL),
+ 1))
+ goto err;
+ }
+
+ ret = 1;
+ err:
+ BN_free(r);
+ return ret;
+}
+
+static int not_primes[] = { -1, 0, 1, 4 };
+
+static int test_not_prime(int i)
+{
+ int ret = 0;
+ BIGNUM *r = NULL;
+ int trial;
+
+ if (!TEST_ptr(r = BN_new()))
+ goto err;
+
+ for (trial = 0; trial <= 1; ++trial) {
+ if (!TEST_true(BN_set_word(r, not_primes[i]))
+ || !TEST_false(BN_is_prime_fasttest_ex(r, 1, ctx, trial, NULL)))
+ goto err;
+ }
+
+ ret = 1;
+ err:
+ BN_free(r);
+ return ret;
+}
+
+static int test_ctx_set_ct_flag(BN_CTX *c)
+{
+ int st = 0;
+ size_t i;
+ BIGNUM *b[15];
+
+ BN_CTX_start(c);
+ for (i = 0; i < OSSL_NELEM(b); i++) {
+ if (!TEST_ptr(b[i] = BN_CTX_get(c)))
+ goto err;
+ if (i % 2 == 1)
+ BN_set_flags(b[i], BN_FLG_CONSTTIME);
+ }
+
+ st = 1;
+ err:
+ BN_CTX_end(c);
+ return st;
+}
+
+static int test_ctx_check_ct_flag(BN_CTX *c)
+{
+ int st = 0;
+ size_t i;
+ BIGNUM *b[30];
+
+ BN_CTX_start(c);
+ for (i = 0; i < OSSL_NELEM(b); i++) {
+ if (!TEST_ptr(b[i] = BN_CTX_get(c)))
+ goto err;
+ if (!TEST_false(BN_get_flags(b[i], BN_FLG_CONSTTIME)))
+ goto err;
+ }
+
+ st = 1;
+ err:
+ BN_CTX_end(c);
+ return st;
+}
+
+static int test_ctx_consttime_flag(void)
+{
+ /*-
+ * The constant-time flag should not "leak" among BN_CTX frames:
+ *
+ * - test_ctx_set_ct_flag() starts a frame in the given BN_CTX and
+ * sets the BN_FLG_CONSTTIME flag on some of the BIGNUMs obtained
+ * from the frame before ending it.
+ * - test_ctx_check_ct_flag() then starts a new frame and gets a
+ * number of BIGNUMs from it. In absence of leaks, none of the
+ * BIGNUMs in the new frame should have BN_FLG_CONSTTIME set.
+ *
+ * In actual BN_CTX usage inside libcrypto the leak could happen at
+ * any depth level in the BN_CTX stack, with varying results
+ * depending on the patterns of sibling trees of nested function
+ * calls sharing the same BN_CTX object, and the effect of
+ * unintended BN_FLG_CONSTTIME on the called BN_* functions.
+ *
+ * This simple unit test abstracts away this complexity and verifies
+ * that the leak does not happen between two sibling functions
+ * sharing the same BN_CTX object at the same level of nesting.
+ *
+ */
+ BN_CTX *nctx = NULL;
+ BN_CTX *sctx = NULL;
+ size_t i = 0;
+ int st = 0;
+
+ if (!TEST_ptr(nctx = BN_CTX_new())
+ || !TEST_ptr(sctx = BN_CTX_secure_new()))
+ goto err;
+
+ for (i = 0; i < 2; i++) {
+ BN_CTX *c = i == 0 ? nctx : sctx;
+ if (!TEST_true(test_ctx_set_ct_flag(c))
+ || !TEST_true(test_ctx_check_ct_flag(c)))
+ goto err;
+ }
+
+ st = 1;
+ err:
+ BN_CTX_free(nctx);
+ BN_CTX_free(sctx);
+ return st;
+}
+
+static int test_gcd_prime(void)
+{
+ BIGNUM *a = NULL, *b = NULL, *gcd = NULL;
+ int i, st = 0;
+
+ if (!TEST_ptr(a = BN_new())
+ || !TEST_ptr(b = BN_new())
+ || !TEST_ptr(gcd = BN_new()))
+ goto err;
+
+ if (!TEST_true(BN_generate_prime_ex(a, 1024, 0, NULL, NULL, NULL)))
+ goto err;
+ for (i = 0; i < NUM0; i++) {
+ if (!TEST_true(BN_generate_prime_ex(b, 1024, 0,
+ NULL, NULL, NULL))
+ || !TEST_true(BN_gcd(gcd, a, b, ctx))
+ || !TEST_true(BN_is_one(gcd)))
+ goto err;
+ }
+
+ st = 1;
+ err:
+ BN_free(a);
+ BN_free(b);
+ BN_free(gcd);
+ return st;
+}
+
+typedef struct mod_exp_test_st
+{
+ const char *base;
+ const char *exp;
+ const char *mod;
+ const char *res;
+} MOD_EXP_TEST;
+
+static const MOD_EXP_TEST ModExpTests[] = {
+ /* original test vectors for rsaz_512_sqr bug, by OSS-Fuzz */
+ {
+ "1166180238001879113042182292626169621106255558914000595999312084"
+ "4627946820899490684928760491249738643524880720584249698100907201"
+ "002086675047927600340800371",
+ "8000000000000000000000000000000000000000000000000000000000000000"
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ "00000000",
+ "1340780792684523720980737645613191762604395855615117867483316354"
+ "3294276330515137663421134775482798690129946803802212663956180562"
+ "088664022929883876655300863",
+ "8243904058268085430037326628480645845409758077568738532059032482"
+ "8294114415890603594730158120426756266457928475330450251339773498"
+ "26758407619521544102068438"
+ },
+ {
+ "4974270041410803822078866696159586946995877618987010219312844726"
+ "0284386121835740784990869050050504348861513337232530490826340663"
+ "197278031692737429054",
+ "4974270041410803822078866696159586946995877428188754995041148539"
+ "1663243362592271353668158565195557417149981094324650322556843202"
+ "946445882670777892608",
+ "1340780716511420227215592830971452482815377482627251725537099028"
+ "4429769497230131760206012644403029349547320953206103351725462999"
+ "947509743623340557059752191",
+ "5296244594780707015616522701706118082963369547253192207884519362"
+ "1767869984947542695665420219028522815539559194793619684334900442"
+ "49304558011362360473525933"
+ },
+ /* test vectors for rsaz_512_srq bug, with rcx/rbx=1 */
+ { /* between first and second iteration */
+ "5148719036160389201525610950887605325980251964889646556085286545"
+ "3931548809178823413169359635978762036512397113080988070677858033"
+ "36463909753993540214027190",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042158",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042159",
+ "1"
+ },
+ { /* between second and third iteration */
+ "8908340854353752577419678771330460827942371434853054158622636544"
+ "8151360109722890949471912566649465436296659601091730745087014189"
+ "2672764191218875181826063",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042158",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042159",
+ "1"
+ },
+ { /* between third and fourth iteration */
+ "3427446396505596330634350984901719674479522569002785244080234738"
+ "4288743635435746136297299366444548736533053717416735379073185344"
+ "26985272974404612945608761",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042158",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042159",
+ "1"
+ },
+ { /* between fourth and fifth iteration */
+ "3472743044917564564078857826111874560045331237315597383869652985"
+ "6919870028890895988478351133601517365908445058405433832718206902"
+ "4088133164805266956353542",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042158",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042159",
+ "1"
+ },
+ { /* between fifth and sixth iteration */
+ "3608632990153469264412378349742339216742409743898601587274768025"
+ "0110772032985643555192767717344946174122842255204082586753499651"
+ "14483434992887431333675068",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042158",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042159",
+ "1"
+ },
+ { /* between sixth and seventh iteration */
+ "8455374370234070242910508226941981520235709767260723212165264877"
+ "8689064388017521524568434328264431772644802567028663962962025746"
+ "9283458217850119569539086",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042158",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042159",
+ "1"
+ },
+ { /* between seventh and eighth iteration */
+ "5155371529688532178421209781159131443543419764974688878527112131"
+ "7446518205609427412336183157918981038066636807317733319323257603"
+ "04416292040754017461076359",
+ "1005585594745694782468051874865438459560952436544429503329267108"
+ "2791323022555160232601405723625177570767523893639864538140315412"
+ "108959927459825236754563832",
+ "1005585594745694782468051874865438459560952436544429503329267108"
+ "2791323022555160232601405723625177570767523893639864538140315412"
+ "108959927459825236754563833",
+ "1"
+ },
+ /* test vectors for rsaz_512_srq bug, with rcx/rbx=2 */
+ { /* between first and second iteration */
+ "3155666506033786929967309937640790361084670559125912405342594979"
+ "4345142818528956285490897841406338022378565972533508820577760065"
+ "58494345853302083699912572",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042158",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042159",
+ "1"
+ },
+ { /* between second and third iteration */
+ "3789819583801342198190405714582958759005991915505282362397087750"
+ "4213544724644823098843135685133927198668818185338794377239590049"
+ "41019388529192775771488319",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042158",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042159",
+ "1"
+ },
+ { /* between third and forth iteration */
+ "4695752552040706867080542538786056470322165281761525158189220280"
+ "4025547447667484759200742764246905647644662050122968912279199065"
+ "48065034299166336940507214",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042158",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042159",
+ "1"
+ },
+ { /* between forth and fifth iteration */
+ "2159140240970485794188159431017382878636879856244045329971239574"
+ "8919691133560661162828034323196457386059819832804593989740268964"
+ "74502911811812651475927076",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042158",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042159",
+ "1"
+ },
+ { /* between fifth and sixth iteration */
+ "5239312332984325668414624633307915097111691815000872662334695514"
+ "5436533521392362443557163429336808208137221322444780490437871903"
+ "99972784701334569424519255",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042158",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042159",
+ "1"
+ },
+ { /* between sixth and seventh iteration */
+ "1977953647322612860406858017869125467496941904523063466791308891"
+ "1172796739058531929470539758361774569875505293428856181093904091"
+ "33788264851714311303725089",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042158",
+ "6703903964971298549787012499102923063739682910296196688861780721"
+ "8608820150367734884009371490834517138450159290932430254268769414"
+ "05973284973216824503042159",
+ "1"
+ },
+ { /* between seventh and eighth iteration */
+ "6456987954117763835533395796948878140715006860263624787492985786"
+ "8514630216966738305923915688821526449499763719943997120302368211"
+ "04813318117996225041943964",
+ "1340780792994259709957402499820584612747936582059239337772356144"
+ "3721764030073546976801874298166903427690031858186486050853753882"
+ "811946551499689575296532556",
+ "1340780792994259709957402499820584612747936582059239337772356144"
+ "3721764030073546976801874298166903427690031858186486050853753882"
+ "811946551499689575296532557",
+ "1"
+ }
+};
+
+static int test_mod_exp(int i)
+{
+ const MOD_EXP_TEST *test = &ModExpTests[i];
+ int res = 0;
+ BIGNUM* result = NULL;
+ BIGNUM *base = NULL, *exponent = NULL, *modulo = NULL;
+ char *s = NULL;
+
+ if (!TEST_ptr(result = BN_new())
+ || !TEST_true(BN_dec2bn(&base, test->base))
+ || !TEST_true(BN_dec2bn(&exponent, test->exp))
+ || !TEST_true(BN_dec2bn(&modulo, test->mod)))
+ goto err;
+
+ if (!TEST_int_eq(BN_mod_exp(result, base, exponent, modulo, ctx), 1))
+ goto err;
+
+ if (!TEST_ptr(s = BN_bn2dec(result)))
+ goto err;
+
+ if (!TEST_mem_eq(s, strlen(s), test->res, strlen(test->res)))
+ goto err;
+
+ res = 1;
+
+ err:
+ OPENSSL_free(s);
+ BN_free(result);
+ BN_free(base);
+ BN_free(exponent);
+ BN_free(modulo);
+ return res;
+}
+
+static int test_mod_exp_consttime(int i)
+{
+ const MOD_EXP_TEST *test = &ModExpTests[i];
+ int res = 0;
+ BIGNUM* result = NULL;
+ BIGNUM *base = NULL, *exponent = NULL, *modulo = NULL;
+ char *s = NULL;
+
+ if (!TEST_ptr(result = BN_new())
+ || !TEST_true(BN_dec2bn(&base, test->base))
+ || !TEST_true(BN_dec2bn(&exponent, test->exp))
+ || !TEST_true(BN_dec2bn(&modulo, test->mod)))
+ goto err;
+
+ BN_set_flags(base, BN_FLG_CONSTTIME);
+ BN_set_flags(exponent, BN_FLG_CONSTTIME);
+ BN_set_flags(modulo, BN_FLG_CONSTTIME);
+
+ if (!TEST_int_eq(BN_mod_exp(result, base, exponent, modulo, ctx), 1))
+ goto err;
+
+ if (!TEST_ptr(s = BN_bn2dec(result)))
+ goto err;
+
+ if (!TEST_mem_eq(s, strlen(s), test->res, strlen(test->res)))
+ goto err;
+
+ res = 1;
+
+ err:
+ OPENSSL_free(s);
+ BN_free(result);
+ BN_free(base);
+ BN_free(exponent);
+ BN_free(modulo);
+ return res;
+}
+
+static int file_test_run(STANZA *s)
+{
+ static const FILETEST filetests[] = {
+ {"Sum", file_sum},
+ {"LShift1", file_lshift1},
+ {"LShift", file_lshift},
+ {"RShift", file_rshift},
+ {"Square", file_square},
+ {"Product", file_product},
+ {"Quotient", file_quotient},
+ {"ModMul", file_modmul},
+ {"ModExp", file_modexp},
+ {"Exp", file_exp},
+ {"ModSqrt", file_modsqrt},
+ {"GCD", file_gcd},
+ };
+ int numtests = OSSL_NELEM(filetests);
+ const FILETEST *tp = filetests;
+
+ for ( ; --numtests >= 0; tp++) {
+ if (findattr(s, tp->name) != NULL) {
+ if (!tp->func(s)) {
+ TEST_info("%s:%d: Failed %s test",
+ s->test_file, s->start, tp->name);
+ return 0;
+ }
+ return 1;
+ }
+ }
+ TEST_info("%s:%d: Unknown test", s->test_file, s->start);
+ return 0;
+}
+
+static int run_file_tests(int i)
+{
+ STANZA *s = NULL;
+ char *testfile = test_get_argument(i);
+ int c;
+
+ if (!TEST_ptr(s = OPENSSL_zalloc(sizeof(*s))))
+ return 0;
+ if (!test_start_file(s, testfile)) {
+ OPENSSL_free(s);
+ return 0;
+ }
+
+ /* Read test file. */
+ while (!BIO_eof(s->fp) && test_readstanza(s)) {
+ if (s->numpairs == 0)
+ continue;
+ if (!file_test_run(s))
+ s->errors++;
+ s->numtests++;
+ test_clearstanza(s);
+ }
+ test_end_file(s);
+ c = s->errors;
+ OPENSSL_free(s);
+
+ return c == 0;
+}
+
+
+int setup_tests(void)
+{
+ int n = test_get_argument_count();
+
+ if (!TEST_ptr(ctx = BN_CTX_new()))
+ return 0;
+
+ if (n == 0) {
+ ADD_TEST(test_sub);
+ ADD_TEST(test_div_recip);
+ ADD_TEST(test_mod);
+ ADD_TEST(test_modexp_mont5);
+ ADD_TEST(test_kronecker);
+ ADD_TEST(test_rand);
+ ADD_TEST(test_bn2padded);
+ ADD_TEST(test_dec2bn);
+ ADD_TEST(test_hex2bn);
+ ADD_TEST(test_asc2bn);
+ ADD_ALL_TESTS(test_mpi, (int)OSSL_NELEM(kMPITests));
+ ADD_TEST(test_negzero);
+ ADD_TEST(test_badmod);
+ ADD_TEST(test_expmodzero);
+ ADD_TEST(test_expmodone);
+ ADD_ALL_TESTS(test_smallprime, 16);
+ ADD_ALL_TESTS(test_smallsafeprime, 16);
+ ADD_TEST(test_swap);
+ ADD_TEST(test_ctx_consttime_flag);
+#ifndef OPENSSL_NO_EC2M
+ ADD_TEST(test_gf2m_add);
+ ADD_TEST(test_gf2m_mod);
+ ADD_TEST(test_gf2m_mul);
+ ADD_TEST(test_gf2m_sqr);
+ ADD_TEST(test_gf2m_modinv);
+ ADD_TEST(test_gf2m_moddiv);
+ ADD_TEST(test_gf2m_modexp);
+ ADD_TEST(test_gf2m_modsqrt);
+ ADD_TEST(test_gf2m_modsolvequad);
+#endif
+ ADD_ALL_TESTS(test_is_prime, (int)OSSL_NELEM(primes));
+ ADD_ALL_TESTS(test_not_prime, (int)OSSL_NELEM(not_primes));
+ ADD_TEST(test_gcd_prime);
+ ADD_ALL_TESTS(test_mod_exp, (int)OSSL_NELEM(ModExpTests));
+ ADD_ALL_TESTS(test_mod_exp_consttime, (int)OSSL_NELEM(ModExpTests));
+ } else {
+ ADD_ALL_TESTS(run_file_tests, n);
+ }
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+ BN_CTX_free(ctx);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bntests.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bntests.pl
new file mode 100755
index 000000000..9adeaef17
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/bntests.pl
@@ -0,0 +1,156 @@
+#! /usr/bin/env perl
+# Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# Run the tests specified in bntests.txt, as a check against OpenSSL.
+use strict;
+use warnings;
+use Math::BigInt;
+
+my $EXPECTED_FAILURES = 0;
+my $failures = 0;
+
+sub bn
+{
+ my $x = shift;
+ my ($sign, $hex) = ($x =~ /^([+\-]?)(.*)$/);
+
+ $hex = '0x' . $hex if $hex !~ /^0x/;
+ return Math::BigInt->from_hex($sign.$hex);
+}
+
+sub evaluate
+{
+ my $lineno = shift;
+ my %s = @_;
+
+ if ( defined $s{'Sum'} ) {
+ # Sum = A + B
+ my $sum = bn($s{'Sum'});
+ my $a = bn($s{'A'});
+ my $b = bn($s{'B'});
+ return if $sum == $a + $b;
+ } elsif ( defined $s{'LShift1'} ) {
+ # LShift1 = A * 2
+ my $lshift1 = bn($s{'LShift1'});
+ my $a = bn($s{'A'});
+ return if $lshift1 == $a->bmul(2);
+ } elsif ( defined $s{'LShift'} ) {
+ # LShift = A * 2**N
+ my $lshift = bn($s{'LShift'});
+ my $a = bn($s{'A'});
+ my $n = bn($s{'N'});
+ return if $lshift == $a->blsft($n);
+ } elsif ( defined $s{'RShift'} ) {
+ # RShift = A / 2**N
+ my $rshift = bn($s{'RShift'});
+ my $a = bn($s{'A'});
+ my $n = bn($s{'N'});
+ return if $rshift == $a->brsft($n);
+ } elsif ( defined $s{'Square'} ) {
+ # Square = A * A
+ my $square = bn($s{'Square'});
+ my $a = bn($s{'A'});
+ return if $square == $a->bmul($a);
+ } elsif ( defined $s{'Product'} ) {
+ # Product = A * B
+ my $product = bn($s{'Product'});
+ my $a = bn($s{'A'});
+ my $b = bn($s{'B'});
+ return if $product == $a->bmul($b);
+ } elsif ( defined $s{'Quotient'} ) {
+ # Quotient = A / B
+ # Remainder = A - B * Quotient
+ my $quotient = bn($s{'Quotient'});
+ my $remainder = bn($s{'Remainder'});
+ my $a = bn($s{'A'});
+ my $b = bn($s{'B'});
+
+ # First the remainder test.
+ $b->bmul($quotient);
+ my $rempassed = $remainder == $a->bsub($b) ? 1 : 0;
+
+ # Math::BigInt->bdiv() is documented to do floored division,
+ # i.e. 1 / -4 = -1, while OpenSSL BN_div does truncated
+ # division, i.e. 1 / -4 = 0. We need to make the operation
+ # work like OpenSSL's BN_div to be able to verify.
+ $a = bn($s{'A'});
+ $b = bn($s{'B'});
+ my $neg = $a->is_neg() ? !$b->is_neg() : $b->is_neg();
+ $a->babs();
+ $b->babs();
+ $a->bdiv($b);
+ $a->bneg() if $neg;
+ return if $rempassed && $quotient == $a;
+ } elsif ( defined $s{'ModMul'} ) {
+ # ModMul = (A * B) mod M
+ my $modmul = bn($s{'ModMul'});
+ my $a = bn($s{'A'});
+ my $b = bn($s{'B'});
+ my $m = bn($s{'M'});
+ $a->bmul($b);
+ return if $modmul == $a->bmod($m);
+ } elsif ( defined $s{'ModExp'} ) {
+ # ModExp = (A ** E) mod M
+ my $modexp = bn($s{'ModExp'});
+ my $a = bn($s{'A'});
+ my $e = bn($s{'E'});
+ my $m = bn($s{'M'});
+ return if $modexp == $a->bmodpow($e, $m);
+ } elsif ( defined $s{'Exp'} ) {
+ my $exp = bn($s{'Exp'});
+ my $a = bn($s{'A'});
+ my $e = bn($s{'E'});
+ return if $exp == $a ** $e;
+ } elsif ( defined $s{'ModSqrt'} ) {
+ # (ModSqrt * ModSqrt) mod P = A mod P
+ my $modsqrt = bn($s{'ModSqrt'});
+ my $a = bn($s{'A'});
+ my $p = bn($s{'P'});
+ $modsqrt->bmul($modsqrt);
+ $modsqrt->bmod($p);
+ $a->bmod($p);
+ return if $modsqrt == $a;
+ } else {
+ print "# Unknown test: ";
+ }
+ $failures++;
+ print "# #$failures Test (before line $lineno) failed\n";
+ foreach ( keys %s ) {
+ print "$_ = $s{$_}\n";
+ }
+ print "\n";
+}
+
+my $infile = shift || 'bntests.txt';
+die "No such file, $infile" unless -f $infile;
+open my $IN, $infile || die "Can't read $infile, $!\n";
+
+my %stanza = ();
+my $l = 0;
+while ( <$IN> ) {
+ $l++;
+ s|\R$||;
+ next if /^#/;
+ if ( /^$/ ) {
+ if ( keys %stanza ) {
+ evaluate($l, %stanza);
+ %stanza = ();
+ }
+ next;
+ }
+ # Parse 'key = value'
+ if ( ! /\s*([^\s]*)\s*=\s*(.*)\s*/ ) {
+ print "Skipping $_\n";
+ next;
+ }
+ $stanza{$1} = $2;
+};
+evaluate($l, %stanza) if keys %stanza;
+die "Got $failures, expected $EXPECTED_FAILURES"
+ if $infile eq 'bntests.txt' and $failures != $EXPECTED_FAILURES;
+close($IN)
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/build.info b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/build.info
new file mode 100644
index 000000000..200fb8c14
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/build.info
@@ -0,0 +1,602 @@
+{-
+ use File::Spec::Functions;
+ sub rebase_files
+ {
+ my ($base, $files) = @_;
+ return join(" ", map { "$base/$_" } split(/\s+/, $files));
+ }
+ ""
+-}
+IF[{- !$disabled{tests} -}]
+ LIBS_NO_INST=libtestutil.a
+ SOURCE[libtestutil.a]=testutil/basic_output.c testutil/output_helpers.c \
+ testutil/driver.c testutil/tests.c testutil/cb.c testutil/stanza.c \
+ testutil/format_output.c testutil/tap_bio.c \
+ testutil/test_cleanup.c testutil/main.c testutil/testutil_init.c \
+ testutil/random.c
+ INCLUDE[libtestutil.a]=../include
+ DEPEND[libtestutil.a]=../libcrypto
+
+ # Special hack for descrip.mms to include the MAIN object module
+ # explicitly. This will only be done if there isn't a MAIN in the
+ # program's object modules already.
+ BEGINRAW[descrip.mms]
+INCLUDE_MAIN___test_libtestutil_OLB = /INCLUDE=MAIN
+ ENDRAW[descrip.mms]
+
+ PROGRAMS_NO_INST=\
+ versions \
+ aborttest test_test \
+ sanitytest rsa_complex exdatatest bntest \
+ ectest ecstresstest ecdsatest gmdifftest pbelutest ideatest \
+ md2test \
+ hmactest \
+ rc2test rc4test rc5test \
+ destest mdc2test \
+ dhtest enginetest casttest \
+ bftest ssltest_old dsatest dsa_no_digest_size_test exptest rsa_test \
+ evp_test evp_extra_test igetest v3nametest v3ext \
+ crltest danetest bad_dtls_test lhash_test \
+ conf_include_test \
+ constant_time_test verify_extra_test clienthellotest \
+ packettest asynctest secmemtest srptest memleaktest stack_test \
+ dtlsv1listentest ct_test threadstest afalgtest d2i_test \
+ ssl_test_ctx_test ssl_test x509aux cipherlist_test asynciotest \
+ bio_callback_test bio_memleak_test \
+ bioprinttest sslapitest dtlstest sslcorrupttest bio_enc_test \
+ pkey_meth_test pkey_meth_kdf_test uitest cipherbytes_test \
+ asn1_encode_test asn1_decode_test asn1_string_table_test \
+ x509_time_test x509_dup_cert_test x509_check_cert_pkey_test \
+ recordlentest drbgtest sslbuffertest \
+ recordlentest drbgtest drbg_cavs_test sslbuffertest \
+ time_offset_test pemtest ssl_cert_table_internal_test ciphername_test \
+ servername_test ocspapitest rsa_mp_test fatalerrtest tls13ccstest \
+ sysdefaulttest errtest ssl_ctx_test gosttest
+
+ SOURCE[versions]=versions.c
+ INCLUDE[versions]=../include
+ DEPEND[versions]=../libcrypto
+
+ SOURCE[aborttest]=aborttest.c
+ INCLUDE[aborttest]=../include
+ DEPEND[aborttest]=../libcrypto
+
+ SOURCE[sanitytest]=sanitytest.c
+ INCLUDE[sanitytest]=../include
+ DEPEND[sanitytest]=../libcrypto libtestutil.a
+
+ SOURCE[rsa_complex]=rsa_complex.c
+ INCLUDE[rsa_complex]=../include
+
+ SOURCE[test_test]=test_test.c
+ INCLUDE[test_test]=../include
+ DEPEND[test_test]=../libcrypto libtestutil.a
+
+ SOURCE[exdatatest]=exdatatest.c
+ INCLUDE[exdatatest]=../include
+ DEPEND[exdatatest]=../libcrypto libtestutil.a
+
+ SOURCE[bntest]=bntest.c
+ INCLUDE[bntest]=../include
+ DEPEND[bntest]=../libcrypto libtestutil.a
+
+ SOURCE[ectest]=ectest.c
+ INCLUDE[ectest]=../include
+ DEPEND[ectest]=../libcrypto libtestutil.a
+
+ SOURCE[ecstresstest]=ecstresstest.c
+ INCLUDE[ecstresstest]=../include
+ DEPEND[ecstresstest]=../libcrypto libtestutil.a
+
+ SOURCE[ecdsatest]=ecdsatest.c
+ INCLUDE[ecdsatest]=../include
+ DEPEND[ecdsatest]=../libcrypto libtestutil.a
+
+ SOURCE[gmdifftest]=gmdifftest.c
+ INCLUDE[gmdifftest]=../include
+ DEPEND[gmdifftest]=../libcrypto libtestutil.a
+
+ SOURCE[pbelutest]=pbelutest.c
+ INCLUDE[pbelutest]=../include
+ DEPEND[pbelutest]=../libcrypto libtestutil.a
+
+ SOURCE[ideatest]=ideatest.c
+ INCLUDE[ideatest]=../include
+ DEPEND[ideatest]=../libcrypto libtestutil.a
+
+ SOURCE[md2test]=md2test.c
+ INCLUDE[md2test]=../include
+ DEPEND[md2test]=../libcrypto libtestutil.a
+
+ SOURCE[hmactest]=hmactest.c
+ INCLUDE[hmactest]=../include
+ DEPEND[hmactest]=../libcrypto libtestutil.a
+
+ SOURCE[rc2test]=rc2test.c
+ INCLUDE[rc2test]=../include
+ DEPEND[rc2test]=../libcrypto libtestutil.a
+
+ SOURCE[rc4test]=rc4test.c
+ INCLUDE[rc4test]=../include
+ DEPEND[rc4test]=../libcrypto libtestutil.a
+
+ SOURCE[rc5test]=rc5test.c
+ INCLUDE[rc5test]=../include
+ DEPEND[rc5test]=../libcrypto libtestutil.a
+
+ SOURCE[destest]=destest.c
+ INCLUDE[destest]=../include
+ DEPEND[destest]=../libcrypto libtestutil.a
+
+ SOURCE[mdc2test]=mdc2test.c
+ INCLUDE[mdc2test]=../include
+ DEPEND[mdc2test]=../libcrypto libtestutil.a
+
+ SOURCE[dhtest]=dhtest.c
+ INCLUDE[dhtest]=../include
+ DEPEND[dhtest]=../libcrypto libtestutil.a
+
+ SOURCE[enginetest]=enginetest.c
+ INCLUDE[enginetest]=../include
+ DEPEND[enginetest]=../libcrypto libtestutil.a
+
+ SOURCE[casttest]=casttest.c
+ INCLUDE[casttest]=../include
+ DEPEND[casttest]=../libcrypto libtestutil.a
+
+ SOURCE[bftest]=bftest.c
+ INCLUDE[bftest]=../include
+ DEPEND[bftest]=../libcrypto libtestutil.a
+
+ SOURCE[ssltest_old]=ssltest_old.c
+ INCLUDE[ssltest_old]=.. ../include
+ DEPEND[ssltest_old]=../libcrypto ../libssl
+
+ SOURCE[dsatest]=dsatest.c
+ INCLUDE[dsatest]=../include
+ DEPEND[dsatest]=../libcrypto libtestutil.a
+
+ SOURCE[dsa_no_digest_size_test]=dsa_no_digest_size_test.c
+ INCLUDE[dsa_no_digest_size_test]=../include
+ DEPEND[dsa_no_digest_size_test]=../libcrypto libtestutil.a
+
+ SOURCE[exptest]=exptest.c
+ INCLUDE[exptest]=../include
+ DEPEND[exptest]=../libcrypto libtestutil.a
+
+ SOURCE[rsa_test]=rsa_test.c
+ INCLUDE[rsa_test]=../include
+ DEPEND[rsa_test]=../libcrypto libtestutil.a
+
+ SOURCE[rsa_mp_test]=rsa_mp_test.c
+ INCLUDE[rsa_mp_test]=../include
+ DEPEND[rsa_mp_test]=../libcrypto libtestutil.a
+
+ SOURCE[fatalerrtest]=fatalerrtest.c ssltestlib.c
+ INCLUDE[fatalerrtest]=../include
+ DEPEND[fatalerrtest]=../libcrypto ../libssl libtestutil.a
+
+ SOURCE[tls13ccstest]=tls13ccstest.c ssltestlib.c
+ INCLUDE[tls13ccstest]=../include
+ DEPEND[tls13ccstest]=../libcrypto ../libssl libtestutil.a
+
+ SOURCE[evp_test]=evp_test.c
+ INCLUDE[evp_test]=../include
+ DEPEND[evp_test]=../libcrypto libtestutil.a
+
+ SOURCE[evp_extra_test]=evp_extra_test.c
+ INCLUDE[evp_extra_test]=../include
+ DEPEND[evp_extra_test]=../libcrypto libtestutil.a
+
+ SOURCE[igetest]=igetest.c
+ INCLUDE[igetest]=../include
+ DEPEND[igetest]=../libcrypto libtestutil.a
+
+ SOURCE[v3nametest]=v3nametest.c
+ INCLUDE[v3nametest]=../include
+ DEPEND[v3nametest]=../libcrypto libtestutil.a
+
+ SOURCE[crltest]=crltest.c
+ INCLUDE[crltest]=../include
+ DEPEND[crltest]=../libcrypto libtestutil.a
+
+ SOURCE[v3ext]=v3ext.c
+ INCLUDE[v3ext]=../include
+ DEPEND[v3ext]=../libcrypto libtestutil.a
+
+ SOURCE[danetest]=danetest.c
+ INCLUDE[danetest]=../include
+ DEPEND[danetest]=../libcrypto ../libssl libtestutil.a
+
+ SOURCE[constant_time_test]=constant_time_test.c
+ INCLUDE[constant_time_test]=../include
+ DEPEND[constant_time_test]=../libcrypto libtestutil.a
+
+ SOURCE[verify_extra_test]=verify_extra_test.c
+ INCLUDE[verify_extra_test]=../include
+ DEPEND[verify_extra_test]=../libcrypto libtestutil.a
+
+ SOURCE[clienthellotest]=clienthellotest.c
+ INCLUDE[clienthellotest]=../include
+ DEPEND[clienthellotest]=../libcrypto ../libssl libtestutil.a
+
+ SOURCE[bad_dtls_test]=bad_dtls_test.c
+ INCLUDE[bad_dtls_test]=../include
+ DEPEND[bad_dtls_test]=../libcrypto ../libssl libtestutil.a
+
+ SOURCE[packettest]=packettest.c
+ INCLUDE[packettest]=../include
+ DEPEND[packettest]=../libcrypto libtestutil.a
+
+ SOURCE[asynctest]=asynctest.c
+ INCLUDE[asynctest]=../include
+ DEPEND[asynctest]=../libcrypto
+
+ SOURCE[secmemtest]=secmemtest.c
+ INCLUDE[secmemtest]=../include
+ DEPEND[secmemtest]=../libcrypto libtestutil.a
+
+ SOURCE[srptest]=srptest.c
+ INCLUDE[srptest]=../include
+ DEPEND[srptest]=../libcrypto libtestutil.a
+
+ SOURCE[memleaktest]=memleaktest.c
+ INCLUDE[memleaktest]=../include
+ DEPEND[memleaktest]=../libcrypto libtestutil.a
+
+ SOURCE[stack_test]=stack_test.c
+ INCLUDE[stack_test]=../include
+ DEPEND[stack_test]=../libcrypto libtestutil.a
+
+ SOURCE[lhash_test]=lhash_test.c
+ INCLUDE[lhash_test]=../include
+ DEPEND[lhash_test]=../libcrypto libtestutil.a
+
+ SOURCE[dtlsv1listentest]=dtlsv1listentest.c
+ INCLUDE[dtlsv1listentest]=../include
+ DEPEND[dtlsv1listentest]=../libssl libtestutil.a
+
+ SOURCE[ct_test]=ct_test.c
+ INCLUDE[ct_test]=../include
+ DEPEND[ct_test]=../libcrypto libtestutil.a
+
+ SOURCE[threadstest]=threadstest.c
+ INCLUDE[threadstest]=../include
+ DEPEND[threadstest]=../libcrypto libtestutil.a
+
+ SOURCE[afalgtest]=afalgtest.c
+ INCLUDE[afalgtest]=../include
+ DEPEND[afalgtest]=../libcrypto libtestutil.a
+
+ SOURCE[d2i_test]=d2i_test.c
+ INCLUDE[d2i_test]=../include
+ DEPEND[d2i_test]=../libcrypto libtestutil.a
+
+ SOURCE[ssl_test_ctx_test]=ssl_test_ctx_test.c ssl_test_ctx.c
+ INCLUDE[ssl_test_ctx_test]=../include
+ DEPEND[ssl_test_ctx_test]=../libcrypto ../libssl libtestutil.a
+
+ SOURCE[ssl_test]=ssl_test.c ssl_test_ctx.c handshake_helper.c
+ INCLUDE[ssl_test]=../include
+ DEPEND[ssl_test]=../libcrypto ../libssl libtestutil.a
+
+ SOURCE[cipherlist_test]=cipherlist_test.c
+ INCLUDE[cipherlist_test]=../include
+ DEPEND[cipherlist_test]=../libcrypto ../libssl libtestutil.a
+
+ INCLUDE[ssl_test_ctx.o]=../include
+ INCLUDE[handshake_helper.o]=.. ../include
+ INCLUDE[ssltestlib.o]=.. ../include
+
+ SOURCE[x509aux]=x509aux.c
+ INCLUDE[x509aux]=../include
+ DEPEND[x509aux]=../libcrypto libtestutil.a
+
+ SOURCE[asynciotest]=asynciotest.c ssltestlib.c
+ INCLUDE[asynciotest]=../include
+ DEPEND[asynciotest]=../libcrypto ../libssl libtestutil.a
+
+ SOURCE[bio_callback_test]=bio_callback_test.c
+ INCLUDE[bio_callback_test]=../include
+ DEPEND[bio_callback_test]=../libcrypto libtestutil.a
+
+ SOURCE[bio_memleak_test]=bio_memleak_test.c
+ INCLUDE[bio_memleak_test]=../include
+ DEPEND[bio_memleak_test]=../libcrypto libtestutil.a
+
+ SOURCE[bioprinttest]=bioprinttest.c
+ INCLUDE[bioprinttest]=../include
+ DEPEND[bioprinttest]=../libcrypto libtestutil.a
+
+ SOURCE[sslapitest]=sslapitest.c ssltestlib.c
+ INCLUDE[sslapitest]=../include ..
+ DEPEND[sslapitest]=../libcrypto ../libssl libtestutil.a
+
+ SOURCE[ocspapitest]=ocspapitest.c
+ INCLUDE[ocspapitest]=../include
+ DEPEND[ocspapitest]=../libcrypto libtestutil.a
+
+ SOURCE[dtlstest]=dtlstest.c ssltestlib.c
+ INCLUDE[dtlstest]=../include
+ DEPEND[dtlstest]=../libcrypto ../libssl libtestutil.a
+
+ SOURCE[sslcorrupttest]=sslcorrupttest.c ssltestlib.c
+ INCLUDE[sslcorrupttest]=../include
+ DEPEND[sslcorrupttest]=../libcrypto ../libssl libtestutil.a
+
+ SOURCE[bio_enc_test]=bio_enc_test.c
+ INCLUDE[bio_enc_test]=../include
+ DEPEND[bio_enc_test]=../libcrypto libtestutil.a
+
+ SOURCE[pkey_meth_test]=pkey_meth_test.c
+ INCLUDE[pkey_meth_test]=../include
+ DEPEND[pkey_meth_test]=../libcrypto libtestutil.a
+
+ SOURCE[pkey_meth_kdf_test]=pkey_meth_kdf_test.c
+ INCLUDE[pkey_meth_kdf_test]=../include
+ DEPEND[pkey_meth_kdf_test]=../libcrypto libtestutil.a
+
+ SOURCE[x509_time_test]=x509_time_test.c
+ INCLUDE[x509_time_test]=../include
+ DEPEND[x509_time_test]=../libcrypto libtestutil.a
+
+ SOURCE[recordlentest]=recordlentest.c ssltestlib.c
+ INCLUDE[recordlentest]=../include
+ DEPEND[recordlentest]=../libcrypto ../libssl libtestutil.a
+
+ SOURCE[drbgtest]=drbgtest.c
+ INCLUDE[drbgtest]=../include
+ DEPEND[drbgtest]=../libcrypto.a libtestutil.a
+
+ SOURCE[drbg_cavs_test]=drbg_cavs_test.c drbg_cavs_data.c
+ INCLUDE[drbg_cavs_test]=../include . ..
+ DEPEND[drbg_cavs_test]=../libcrypto libtestutil.a
+
+ SOURCE[x509_dup_cert_test]=x509_dup_cert_test.c
+ INCLUDE[x509_dup_cert_test]=../include
+ DEPEND[x509_dup_cert_test]=../libcrypto libtestutil.a
+
+ SOURCE[x509_check_cert_pkey_test]=x509_check_cert_pkey_test.c
+ INCLUDE[x509_check_cert_pkey_test]=../include
+ DEPEND[x509_check_cert_pkey_test]=../libcrypto libtestutil.a
+
+ SOURCE[pemtest]=pemtest.c
+ INCLUDE[pemtest]=../include
+ DEPEND[pemtest]=../libcrypto libtestutil.a
+
+ SOURCE[ssl_cert_table_internal_test]=ssl_cert_table_internal_test.c
+ INCLUDE[ssl_cert_table_internal_test]=.. ../include
+ DEPEND[ssl_cert_table_internal_test]=../libcrypto libtestutil.a
+
+ SOURCE[ciphername_test]=ciphername_test.c
+ INCLUDE[ciphername_test]=../include
+ DEPEND[ciphername_test]=../libcrypto ../libssl libtestutil.a
+
+ SOURCE[servername_test]=servername_test.c ssltestlib.c
+ INCLUDE[servername_test]=../include
+ DEPEND[servername_test]=../libcrypto ../libssl libtestutil.a
+
+ IF[{- !$disabled{cms} -}]
+ PROGRAMS_NO_INST=cmsapitest
+ SOURCE[cmsapitest]=cmsapitest.c
+ INCLUDE[cmsapitest]=../include
+ DEPEND[cmsapitest]=../libcrypto libtestutil.a
+ ENDIF
+
+ IF[{- !$disabled{psk} -}]
+ PROGRAMS_NO_INST=dtls_mtu_test
+ SOURCE[dtls_mtu_test]=dtls_mtu_test.c ssltestlib.c
+ INCLUDE[dtls_mtu_test]=.. ../include
+ DEPEND[dtls_mtu_test]=../libcrypto ../libssl libtestutil.a
+ ENDIF
+
+ IF[{- !$disabled{shared} -}]
+ PROGRAMS_NO_INST=shlibloadtest
+ SOURCE[shlibloadtest]=shlibloadtest.c
+ INCLUDE[shlibloadtest]=../include
+ ENDIF
+
+ IF[{- $disabled{shared} -}]
+ PROGRAMS_NO_INST=cipher_overhead_test
+ SOURCE[cipher_overhead_test]=cipher_overhead_test.c
+ INCLUDE[cipher_overhead_test]=.. ../include
+ DEPEND[cipher_overhead_test]=../libcrypto ../libssl libtestutil.a
+ ENDIF
+
+ SOURCE[uitest]=uitest.c \
+ {- rebase_files("../apps",
+ split(/\s+/, $target{apps_init_src})) -}
+ INCLUDE[uitest]=.. ../include ../apps
+ DEPEND[uitest]=../apps/libapps.a ../libcrypto ../libssl libtestutil.a
+
+ SOURCE[cipherbytes_test]=cipherbytes_test.c
+ INCLUDE[cipherbytes_test]=../include
+ DEPEND[cipherbytes_test]=../libcrypto ../libssl libtestutil.a
+
+ SOURCE[asn1_encode_test]=asn1_encode_test.c
+ INCLUDE[asn1_encode_test]=../include
+ DEPEND[asn1_encode_test]=../libcrypto libtestutil.a
+
+ SOURCE[asn1_decode_test]=asn1_decode_test.c
+ INCLUDE[asn1_decode_test]=../include
+ DEPEND[asn1_decode_test]=../libcrypto libtestutil.a
+
+ SOURCE[asn1_string_table_test]=asn1_string_table_test.c
+ INCLUDE[asn1_string_table_test]=../include
+ DEPEND[asn1_string_table_test]=../libcrypto libtestutil.a
+
+ SOURCE[time_offset_test]=time_offset_test.c
+ INCLUDE[time_offset_test]=../include
+ DEPEND[time_offset_test]=../libcrypto libtestutil.a
+
+ SOURCE[conf_include_test]=conf_include_test.c
+ INCLUDE[conf_include_test]=../include
+ DEPEND[conf_include_test]=../libcrypto libtestutil.a
+
+ # Internal test programs. These are essentially a collection of internal
+ # test routines. Some of them need to reach internal symbols that aren't
+ # available through the shared library (at least on Linux, Solaris, Windows
+ # and VMS, where the exported symbols are those listed in util/*.num), these
+ # programs are forcibly linked with the static libraries, where all symbols
+ # are always available.
+ IF[1]
+ PROGRAMS_NO_INST=asn1_internal_test modes_internal_test x509_internal_test \
+ tls13encryptiontest wpackettest ctype_internal_test \
+ rdrand_sanitytest
+ IF[{- !$disabled{poly1305} -}]
+ PROGRAMS_NO_INST=poly1305_internal_test
+ ENDIF
+ IF[{- !$disabled{chacha} -}]
+ PROGRAMS_NO_INST=chacha_internal_test
+ ENDIF
+ IF[{- !$disabled{siphash} -}]
+ PROGRAMS_NO_INST=siphash_internal_test
+ ENDIF
+ IF[{- !$disabled{sm2} -}]
+ PROGRAMS_NO_INST=sm2_internal_test
+ ENDIF
+ IF[{- !$disabled{sm4} -}]
+ PROGRAMS_NO_INST=sm4_internal_test
+ ENDIF
+ IF[{- !$disabled{ec} -}]
+ PROGRAMS_NO_INST=ec_internal_test curve448_internal_test
+ ENDIF
+
+ SOURCE[poly1305_internal_test]=poly1305_internal_test.c
+ INCLUDE[poly1305_internal_test]=.. ../include
+ DEPEND[poly1305_internal_test]=../libcrypto.a libtestutil.a
+
+ SOURCE[chacha_internal_test]=chacha_internal_test.c
+ INCLUDE[chacha_internal_test]=.. ../include
+ DEPEND[chacha_internal_test]=../libcrypto.a libtestutil.a
+
+ SOURCE[asn1_internal_test]=asn1_internal_test.c
+ INCLUDE[asn1_internal_test]=.. ../include
+ DEPEND[asn1_internal_test]=../libcrypto.a libtestutil.a
+
+ SOURCE[modes_internal_test]=modes_internal_test.c
+ INCLUDE[modes_internal_test]=.. ../include
+ DEPEND[modes_internal_test]=../libcrypto.a libtestutil.a
+
+ SOURCE[x509_internal_test]=x509_internal_test.c
+ INCLUDE[x509_internal_test]=.. ../include
+ DEPEND[x509_internal_test]=../libcrypto.a libtestutil.a
+
+ SOURCE[tls13encryptiontest]=tls13encryptiontest.c
+ INCLUDE[tls13encryptiontest]=.. ../include
+ DEPEND[tls13encryptiontest]=../libcrypto ../libssl.a libtestutil.a
+
+ SOURCE[wpackettest]=wpackettest.c
+ INCLUDE[wpackettest]=../include
+ DEPEND[wpackettest]=../libcrypto ../libssl.a libtestutil.a
+
+ SOURCE[ctype_internal_test]=ctype_internal_test.c
+ INCLUDE[ctype_internal_test]=.. ../include
+ DEPEND[ctype_internal_test]=../libcrypto.a libtestutil.a
+
+ SOURCE[siphash_internal_test]=siphash_internal_test.c
+ INCLUDE[siphash_internal_test]=.. ../include
+ DEPEND[siphash_internal_test]=../libcrypto.a libtestutil.a
+
+ SOURCE[sm2_internal_test]=sm2_internal_test.c
+ INCLUDE[sm2_internal_test]=../include
+ DEPEND[sm2_internal_test]=../libcrypto.a libtestutil.a
+
+ SOURCE[sm4_internal_test]=sm4_internal_test.c
+ INCLUDE[sm4_internal_test]=.. ../include
+ DEPEND[sm4_internal_test]=../libcrypto.a libtestutil.a
+
+ SOURCE[ec_internal_test]=ec_internal_test.c
+ INCLUDE[ec_internal_test]=../include ../crypto/ec
+ DEPEND[ec_internal_test]=../libcrypto.a libtestutil.a
+
+ SOURCE[curve448_internal_test]=curve448_internal_test.c
+ INCLUDE[curve448_internal_test]=.. ../include ../crypto/ec/curve448
+ DEPEND[curve448_internal_test]=../libcrypto.a libtestutil.a
+
+ SOURCE[rdrand_sanitytest]=rdrand_sanitytest.c
+ INCLUDE[rdrand_sanitytest]=../include
+ DEPEND[rdrand_sanitytest]=../libcrypto.a libtestutil.a
+ ENDIF
+
+ IF[{- !$disabled{mdc2} -}]
+ PROGRAMS_NO_INST=mdc2_internal_test
+ ENDIF
+
+ SOURCE[mdc2_internal_test]=mdc2_internal_test.c
+ INCLUDE[mdc2_internal_test]=.. ../include
+ DEPEND[mdc2_internal_test]=../libcrypto libtestutil.a
+
+ PROGRAMS_NO_INST=asn1_time_test
+ SOURCE[asn1_time_test]=asn1_time_test.c
+ INCLUDE[asn1_time_test]=../include
+ DEPEND[asn1_time_test]=../libcrypto libtestutil.a
+
+ # We disable this test completely in a shared build because it deliberately
+ # redefines some internal libssl symbols. This doesn't work in a non-shared
+ # build
+ IF[{- !$disabled{shared} -}]
+ PROGRAMS_NO_INST=tls13secretstest
+ SOURCE[tls13secretstest]=tls13secretstest.c
+ SOURCE[tls13secretstest]= ../ssl/tls13_enc.c ../ssl/packet.c
+ INCLUDE[tls13secretstest]=.. ../include
+ DEPEND[tls13secretstest]=../libcrypto ../libssl libtestutil.a
+ ENDIF
+
+ SOURCE[sslbuffertest]=sslbuffertest.c ssltestlib.c
+ INCLUDE[sslbuffertest]=../include
+ DEPEND[sslbuffertest]=../libcrypto ../libssl libtestutil.a
+
+ SOURCE[sysdefaulttest]=sysdefaulttest.c
+ INCLUDE[sysdefaulttest]=../include
+ DEPEND[sysdefaulttest]=../libcrypto ../libssl libtestutil.a
+
+ SOURCE[errtest]=errtest.c
+ INCLUDE[errtest]=../include
+ DEPEND[errtest]=../libcrypto libtestutil.a
+
+ SOURCE[gosttest]=gosttest.c ssltestlib.c
+ INCLUDE[gosttest]=../include ..
+ DEPEND[gosttest]=../libcrypto ../libssl libtestutil.a
+ENDIF
+
+ SOURCE[ssl_ctx_test]=ssl_ctx_test.c
+ INCLUDE[ssl_ctx_test]=../include
+ DEPEND[ssl_ctx_test]=../libcrypto ../libssl libtestutil.a
+
+{-
+ use File::Spec::Functions;
+ use File::Basename;
+ use OpenSSL::Glob;
+
+ my @nogo_headers = ( "asn1_mac.h",
+ "opensslconf.h",
+ "__decc_include_prologue.h",
+ "__decc_include_epilogue.h" );
+ my @nogo_headers_re = ( qr/.*err\.h/ );
+ my @headerfiles = glob catfile($sourcedir,
+ updir(), "include", "openssl", "*.h");
+
+ foreach my $headerfile (@headerfiles) {
+ my $name = basename($headerfile, ".h");
+ next if $disabled{$name};
+ next if grep { $_ eq lc("$name.h") } @nogo_headers;
+ next if grep { lc("$name.h") =~ m/$_/i } @nogo_headers_re;
+ $OUT .= <<"_____";
+
+ PROGRAMS_NO_INST=buildtest_c_$name
+ SOURCE[buildtest_c_$name]=buildtest_$name.c
+ GENERATE[buildtest_$name.c]=generate_buildtest.pl $name
+ INCLUDE[buildtest_c_$name]=../include
+ DEPEND[buildtest_c_$name]=../libssl ../libcrypto
+_____
+ $OUT .= <<"_____" if $config{CXX} && !$disabled{"buildtest-c++"};
+
+ PROGRAMS_NO_INST=buildtest_cc_$name
+ SOURCE[buildtest_cc_$name]=buildtest_$name.cc
+ GENERATE[buildtest_$name.cc]=generate_buildtest.pl $name
+ INCLUDE[buildtest_cc_$name]=../include
+ DEPEND[buildtest_cc_$name]=../libssl ../libcrypto
+_____
+ }
+-}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/casttest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/casttest.c
new file mode 100644
index 000000000..179d7d56d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/casttest.c
@@ -0,0 +1,112 @@
+/*
+ * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <openssl/opensslconf.h> /* To see if OPENSSL_NO_CAST is defined */
+#include "internal/nelem.h"
+#include "testutil.h"
+
+#ifndef OPENSSL_NO_CAST
+# include <openssl/cast.h>
+
+static unsigned char k[16] = {
+ 0x01, 0x23, 0x45, 0x67, 0x12, 0x34, 0x56, 0x78,
+ 0x23, 0x45, 0x67, 0x89, 0x34, 0x56, 0x78, 0x9A
+};
+
+static unsigned char in[8] =
+ { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF };
+
+static int k_len[3] = { 16, 10, 5 };
+
+static unsigned char c[3][8] = {
+ {0x23, 0x8B, 0x4F, 0xE5, 0x84, 0x7E, 0x44, 0xB2},
+ {0xEB, 0x6A, 0x71, 0x1A, 0x2C, 0x02, 0x27, 0x1B},
+ {0x7A, 0xC8, 0x16, 0xD1, 0x6E, 0x9B, 0x30, 0x2E},
+};
+
+static unsigned char in_a[16] = {
+ 0x01, 0x23, 0x45, 0x67, 0x12, 0x34, 0x56, 0x78,
+ 0x23, 0x45, 0x67, 0x89, 0x34, 0x56, 0x78, 0x9A
+};
+
+static unsigned char in_b[16] = {
+ 0x01, 0x23, 0x45, 0x67, 0x12, 0x34, 0x56, 0x78,
+ 0x23, 0x45, 0x67, 0x89, 0x34, 0x56, 0x78, 0x9A
+};
+
+static unsigned char c_a[16] = {
+ 0xEE, 0xA9, 0xD0, 0xA2, 0x49, 0xFD, 0x3B, 0xA6,
+ 0xB3, 0x43, 0x6F, 0xB8, 0x9D, 0x6D, 0xCA, 0x92
+};
+
+static unsigned char c_b[16] = {
+ 0xB2, 0xC9, 0x5E, 0xB0, 0x0C, 0x31, 0xAD, 0x71,
+ 0x80, 0xAC, 0x05, 0xB8, 0xE8, 0x3D, 0x69, 0x6E
+};
+
+static int cast_test_vector(int z)
+{
+ int testresult = 1;
+ CAST_KEY key;
+ unsigned char out[80];
+
+ CAST_set_key(&key, k_len[z], k);
+ CAST_ecb_encrypt(in, out, &key, CAST_ENCRYPT);
+ if (!TEST_mem_eq(out, sizeof(c[z]), c[z], sizeof(c[z]))) {
+ TEST_info("CAST_ENCRYPT iteration %d failed (len=%d)", z, k_len[z]);
+ testresult = 0;
+ }
+
+ CAST_ecb_encrypt(out, out, &key, CAST_DECRYPT);
+ if (!TEST_mem_eq(out, sizeof(in), in, sizeof(in))) {
+ TEST_info("CAST_DECRYPT iteration %d failed (len=%d)", z, k_len[z]);
+ testresult = 0;
+ }
+ return testresult;
+}
+
+static int cast_test_iterations(void)
+{
+ long l;
+ int testresult = 1;
+ CAST_KEY key, key_b;
+ unsigned char out_a[16], out_b[16];
+
+ memcpy(out_a, in_a, sizeof(in_a));
+ memcpy(out_b, in_b, sizeof(in_b));
+
+ for (l = 0; l < 1000000L; l++) {
+ CAST_set_key(&key_b, 16, out_b);
+ CAST_ecb_encrypt(&(out_a[0]), &(out_a[0]), &key_b, CAST_ENCRYPT);
+ CAST_ecb_encrypt(&(out_a[8]), &(out_a[8]), &key_b, CAST_ENCRYPT);
+ CAST_set_key(&key, 16, out_a);
+ CAST_ecb_encrypt(&(out_b[0]), &(out_b[0]), &key, CAST_ENCRYPT);
+ CAST_ecb_encrypt(&(out_b[8]), &(out_b[8]), &key, CAST_ENCRYPT);
+ }
+
+ if (!TEST_mem_eq(out_a, sizeof(c_a), c_a, sizeof(c_a))
+ || !TEST_mem_eq(out_b, sizeof(c_b), c_b, sizeof(c_b)))
+ testresult = 0;
+
+ return testresult;
+}
+#endif
+
+int setup_tests(void)
+{
+#ifndef OPENSSL_NO_CAST
+ ADD_ALL_TESTS(cast_test_vector, OSSL_NELEM(k_len));
+ ADD_TEST(cast_test_iterations);
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt1-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt1-cert.pem
new file mode 100644
index 000000000..d68b0e519
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt1-cert.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDgTCCAmmgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0
+IE5DIENBIDEwIBcNMTgwNTE2MDIzODEzWhgPMjExODA1MTcwMjM4MTNaMFQxIzAh
+BgNVBAoMGkdvb2QgTkMgVGVzdCBDZXJ0aWZpY2F0ZSAxMRgwFgYDVQQDDA93d3cu
+ZXhhbXBsZS5uZXQxEzARBgNVBAMMCkpvZSBCbG9nZ3MwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQDTqvf6j+WxCtn4RU8/6uXXgCTcksv6NDXCZ9JAz4Vv
+cQbJfhFbDWpGZQZDOCqwtj+7CSVIraxItHzPlrt36cevsoPmpuqGbHrUaOLneme2
+x81SXUq0z/DmDvwxVENmRj1u7iCt3sL7awcid4SiotLOY2F1jBazmqprqKZBUiyQ
+XqpSp+9uSav77ydwDXCrQozBdns1YRshgU9omQrTcIqHCj1f9Lo+A2y4+TZYZkvS
+DuUZiTfPTPouR6sopM8JLyAZc+TvFFncEg24N+zz3O3jwH82BZEjzavw92J9npJB
+UXvKb8O9z7UA65WYuL2he7kSQCsPNLoRWZnVpchwr3VHAgMBAAGjgZgwgZUwHQYD
+VR0OBBYEFHvLhGWckFjVXdDI3ds9Wti6zgXAMB8GA1UdIwQYMBaAFAjRm/nm1WRw
+oPFrGp7tUtrd9VBDMAkGA1UdEwQCMAAwSAYDVR0RBEEwP4IMd3d3Lmdvb2Qub3Jn
+ggxhbnkuZ29vZC5jb22BDWdvb2RAZ29vZC5vcmeBDGFueUBnb29kLmNvbYcEwKgA
+ATANBgkqhkiG9w0BAQsFAAOCAQEATVcTyrAxsehdQNrkL6kquXxWlyegJcxvVxUe
+hfh9+Lw4620b2S1/l2YxFM3peLAsRgJOznmJOeG18+y7/kx/3UNqYGY7e8iJQ3Gl
+JwDIJp5JCaUOlodjhMJtRc7jn9RcsL97oizXdcryyWT0vSlM9Pie9NtHG5iq5X4+
+oL3X8+OG25MOkF2h3YVCEG3vDu7quyTlHc2ebwpdLZRndcOewO2Cap1ettyWXUPP
+Mha6wyJE8LJhrGmrI8Lw+i7gGscP0xYZn3yCLk5BtOabn4dvCiDmb+TPruKQQARw
+BG45LEZzGxz+Ad3xRdZyVi1I67v9YShoYTCpMTSxJaR0erH74g==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt1-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt1-key.pem
new file mode 100644
index 000000000..6df050a38
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt1-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDTqvf6j+WxCtn4
+RU8/6uXXgCTcksv6NDXCZ9JAz4VvcQbJfhFbDWpGZQZDOCqwtj+7CSVIraxItHzP
+lrt36cevsoPmpuqGbHrUaOLneme2x81SXUq0z/DmDvwxVENmRj1u7iCt3sL7awci
+d4SiotLOY2F1jBazmqprqKZBUiyQXqpSp+9uSav77ydwDXCrQozBdns1YRshgU9o
+mQrTcIqHCj1f9Lo+A2y4+TZYZkvSDuUZiTfPTPouR6sopM8JLyAZc+TvFFncEg24
+N+zz3O3jwH82BZEjzavw92J9npJBUXvKb8O9z7UA65WYuL2he7kSQCsPNLoRWZnV
+pchwr3VHAgMBAAECggEACPTB+1sdV+lioaulF8pDoWOtq5uWf+a3o5sq/U0Kk1WP
++PSZnWWq6oGZyzxUKhf8CFjxt+qJUKY6Zbo2AnPk3B1MkXTclYV/iP9LIoo+WzCH
+EoYaBB6MTd+ycg/jri8oqEnxHgo/681yhtXRyePj0ZHI7OVZjI3tyhJfvoHQmuci
+u6qYYUP0GWuyM+kHS11vn6Q1U8nOZWvXpEDXDDdJ7+2QRuv01AXcjFxpbFzkMn2W
+JkhKkCTIQpUU66VMRHwNexi+TR2rRESq0G+fa+6gaVFVIs0vBukq48IeC5W21j1L
+zyftHxci67FlYC9iaiUxDVt3KB+lcukx6Cz5mjtzqQKBgQD/GrAtFfjiXKj9O5ld
+K7dnnBHE8fzyWQWyOfwpVjNAC1J7tgwFvDpBpTHOwS5JnCwMWWM3rkBPRhCusmrF
+AtfE8b643G+cJbTgDuEhGh11QR0p9VWMVFQL9kZxx12PegDtFBfzcfcI3XQwKVKL
+ZbQn4ibW3BKSt9+Nh3APa0s5iwKBgQDUaTxZBajTdzoDd6Pg3warL5BhsxWr2tUQ
+qf+iVoba2Y9NTBdxBht2whSaYweU9kxmeNZvnCu95B8HeRGE69Dxb7IWwpsaxoaf
+ND0NcCF7aPZgx7hvhbHF7duzt3nuv+q5sOuuyHPzm+nF2snAuY3Zg+Bpv3nlYekf
+18aXZdwStQKBgEpF8e9ei1UUl1sLZC6dUMvIw9+sePHye1cVzNYYM9m8sio0qbFt
+ySRdvW+uDRT/dE+wItQOVsj95FOIvM9ZcYr0u4vFGnXDALOPgXqKyPLfn2cc9+hg
+kQvei0oLOrFQWz6rcAHAN6WMHIz9KvxNAzPtg1NhRcMT5/Gj8jt7CK7bAoGAIeKz
+7OO5Phr8F0eDzkDmGHMbDmr6XxMnAGSOUoCJPOqOMN+dsbsusHBfxw1bTUlJgONw
+GhgI5l85EAEhaVoRWCLgfz8GbWwUV9uGjdlAjiZ9f4z9AFWMua2rae0wN4VIVd1C
+i/yQeuF5lsXDf8paNcQTDeus74oCHcFXfhmS1S0CgYB2q8E+H0kFHbUxkIZYwhsM
+r0lTecn+kVsyPPje2UlzfTwvcC9dFIC4ppCdJGUJAwi/PJnr6xNyOH6I1pjUA8ER
+Aofm4Oj2DwX8W+81oO71/RXSfEFUjdOw0H6iRDyvWa1gqftj2/aWjV7Ifdo49thx
+EzX/9GdsRInifN6FfOfo/A==
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt2-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt2-cert.pem
new file mode 100644
index 000000000..0e0f1400b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt2-cert.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDVjCCAj6gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0
+IE5DIENBIDIwIBcNMTYwNzA5MTQ0ODExWhgPMjExNjA3MTAxNDQ4MTFaMCUxIzAh
+BgNVBAoMGkdvb2QgTkMgVGVzdCBDZXJ0aWZpY2F0ZSAyMIIBIjANBgkqhkiG9w0B
+AQEFAAOCAQ8AMIIBCgKCAQEAw+bG1zr36IgcElBxX1vFcfq1NhdwjzUWlYt88oVr
+Zbn2cKzOZWTA2ft8slJf5b5AgWWuJ1Ph1EdX9evBvUE3qVUPDpJQ7UNBMvScqL8J
+pCjWBcRK9WWguV6MTqF8dJnadup7qfN0i6IWquA4yDEcJDQR4j0BjoAEsQgkASYi
+maYN5W7PW5swj7AR4K0W5Cwy+KF4+UXKkHPCmYUlbBa6lXZRp3uwU/gXT0fmLz3W
+O8eT1PdoPnbRVFIKPhZrHcNAORti4xr4Cn8IEhTaqxIQnCjSCjhksoOuoojhW0qR
+s9t1lTDxyBX5Uz6smanEyCQ6TQFOdMj4m8ULNYTSZbGYcwIDAQABo4GcMIGZMB0G
+A1UdDgQWBBT4YmD7D7JsE8BJzNs/5cIpbtZxhjAfBgNVHSMEGDAWgBS6A5+dBiSk
+V+Zz+vU6Cfm6hcyp+jAJBgNVHRMEAjAAMEwGA1UdEQRFMEOCEHd3dy5hbnl0aGlu
+Zy5vcmeCDWFueS5vdGhlci5jb22BDW90aGVyQGJhZC5vcmeBEWFueUBzb21ldGhp
+bmcuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQBaH8qg41pSXo2ViEsZWVyUmB7QwVVW
+bWeR191XTQPfPNEDFmUzzeBllMUedF4HyD36v7Flpo/LdPdXQnZQ/eyKalztFHgm
+uePN5DNdS5xn9aqiKNF5pkO9WDhhYuwLRM50JeiyvKk2NvNx9oDFUQ7G6jEJu/r9
+rd+8PCUa0SK1dDPJ9dpGrfsAYwk8kST5/JfyDMrocsijOu3v1uGTttMQ0h0A6w6g
+EW8p77dVS/a2S3wJo9EiFHhnrAN493cwSXgBZUhKoKOri2u6XKV2D3g8N6bp22Ut
+S5wx0pC8o3wW5upPsDAnEUt9kJJgVkS0FfCEHhHZ8iQyuwX15Yft2Qsj
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt2-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt2-key.pem
new file mode 100644
index 000000000..4c1280061
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt2-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDD5sbXOvfoiBwS
+UHFfW8Vx+rU2F3CPNRaVi3zyhWtlufZwrM5lZMDZ+3yyUl/lvkCBZa4nU+HUR1f1
+68G9QTepVQ8OklDtQ0Ey9JyovwmkKNYFxEr1ZaC5XoxOoXx0mdp26nup83SLohaq
+4DjIMRwkNBHiPQGOgASxCCQBJiKZpg3lbs9bmzCPsBHgrRbkLDL4oXj5RcqQc8KZ
+hSVsFrqVdlGne7BT+BdPR+YvPdY7x5PU92g+dtFUUgo+Fmsdw0A5G2LjGvgKfwgS
+FNqrEhCcKNIKOGSyg66iiOFbSpGz23WVMPHIFflTPqyZqcTIJDpNAU50yPibxQs1
+hNJlsZhzAgMBAAECggEAfuMureALDTmD/TTPijV1+TKrRyL9jDSVsT1NLATRIG3I
+OwkjErek1kw3Y4VJihSl0Wpb2CtT3dxsE+Slc4EXnX1zqDuLYXKre2bHReGfTA4L
+Omb/Kl2uMgMUnCWq6BdzUozklpsTRRIy3nEnNjvg/24em0xqgrNW1pfwQjJCPQQX
+5ZLma+msDjT0BW2V7cnVh76A8qjDVRvJzKGRseVZEh+8Uke+SIKKLi1qICcK6MmX
+1TpGs/Yy+GaXk7HajmKEYEEDSRdS9sqFnvqkf1TsbHrZQqKdtWuXtIvss1ap7y1c
+PL5Y1z0/zf5WXV9nV3Yjd7F1tTN6S4sY7exOgNenmQKBgQDtkElQSwPHI3GCddfp
+Eo79w0K0N+PkkQTXkP/3566xTCg78xGU1HW0aw8jabVsSpHC2uD0dBJbkQ0iBa24
+VOwwGUUy8ZME14M0ToCDm2vXTR8oOw05DBcM4RwQQdGVxdnwScUJnDzefJEUyx57
+3HO4QWu+h4nBqp5CTk+Y5gu4ZQKBgQDTGsgtIcdQevWay4nXKp+kcUYJy2zmCnBO
+RFryyvdSSr3Tf7eeEZTicBiBp20fzppHc8/hdWnaF8+jlRx/hYY0M6hO2DEvXg78
+BbkqxwGV3dOZXEVusy8CPCQuRfQNY8XhQ195VyFdfsRKZ1dKD7C1Gky7dXgA26Ms
+KdWarvuD9wKBgQCi/h0fBujnp6zIqtvhoQcUmvTYO4STnOAqmuTUjVQxdyQfxazp
+ZUAA8ndnf66nRx5tB8nSTxUNWB8fma/QSgvnEF+HDXImn0r5B2drZKaACPz4mFOB
+MYdbIdQkX1RSI3ZdQ+/5oQWuTN8p2hbnOqD26YPoLIxaoRqGOb6pFCU0dQKBgDUm
++CHM8HdGDlLkTpd7ZuirkJvkuU2OcUpzkYayLeVtZjA7ZwsImDkPSkxS0HoCtfup
+oDy/KGC+QAyK/brp7ql0HDuF2ZR4lUNFWaL4qmCGksF5Zw4BVaO1atKv0EwSw/78
+zKwrkP4ObfPh4yuFmdNvhMRqRkXJB2OWQO8Kgc9vAoGBALXo6IGSM6TtHoNrnEwi
+LozF+eV6ZmYb1miBEBVOyCDl0BVx+6n3iNt17v2EmWLcFYS4ZE+AF9EuRfxuDv+V
+ZSK8sQKka0YgQmLPIoBXksZGwTUYBaO1ojFKuVzrE0ATnbVzuu5wHLZeyK2soCQF
+slY5WVhO5Oo2YTGB7Wxzs4Ut
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt3-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt3-cert.pem
new file mode 100644
index 000000000..877734f4a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt3-cert.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDeDCCAmCgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAZMRcwFQYDVQQDDA5UZXN0
+IE5DIHN1YiBDQTAgFw0xNjA3MDkxNDQ4MTFaGA8yMTE2MDcxMDE0NDgxMVowVDEj
+MCEGA1UECgwaR29vZCBOQyBUZXN0IENlcnRpZmljYXRlIDMxGDAWBgNVBAMMD3d3
+dy5vay5nb29kLmNvbTETMBEGA1UEAwwKSm9lIEJsb2dnczCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBANF68Ty4b18vK4fqVqJMIbwj/mLnF+WA6lvrzEE2
+79mtKLn6jHAjXWJCJ8U+ib23dRf7K3F3qJcQF3sEZpY3VgbmBMZe6mQ1A4Kfza3k
+Wm+D2vNy8BTh8esu3P9TsD89679qUaZ2/85RykFmnV8NdJnAgFEQ+NZuBeQck2Ya
+cZiYyjNCfWEnSsvmO66M99VXzzD9kkpEUXpe2GbLfzE1iP+79sFGGFHYAvmTmhKY
+DFIEJqKY56bnYBlFtQFTWGqjDe8irV8vFJ+VoXR73DXq/J/k9UvwytwDtsJMeRsj
+O61UpbBDV+QipZeGC6cXtRzxPDsxz0BAXQeWQl7F4xavc78CAwEAAaOBjTCBijAd
+BgNVHQ4EFgQU0K7Prr9eRi5yL/vKPFPpfIBCRUwwHwYDVR0jBBgwFoAU8FOJh91W
+GcAZ5iBVbwv8FBXXo7IwCQYDVR0TBAIwADA9BgNVHREENjA0gg93d3cub2suZ29v
+ZC5jb22BDWdvb2RAZ29vZC5vcmeBDGFueUBnb29kLmNvbYcEwKgAATANBgkqhkiG
+9w0BAQsFAAOCAQEAfJyYbBQfCHNwPeKi1/OYZA5CLOzktiiR8Uh/1YQLb80jNtcn
+f4zZOHURqd4mLDrKNnQ7MVqlj+CC3oN4c/L58yQqLm1fbTKXgH6t6OGgg2IL3Aet
+XWbHOg0arknwyOKY5jjVkzbZthZ9EaS0QTlN8eULHV3nwImlfc5IFDetzIvPJkz9
+82fYuUO5jeCB4vjKBX5Ha7rvg/6rnNX71vA3++JrFc0PRFoJvnQ6GQTtBSZE4dFK
+TOH5jE60bjDUL48jl267HLF5RklGuQRgZ3XfIU8JqDtEQuWJTWHc3NPEl2GOJO86
+QDfXLy4+TUfWsoAEuoVeOvR5zitzy3Wqcm3Idw==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt3-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt3-key.pem
new file mode 100644
index 000000000..cc4186072
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/alt3-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDRevE8uG9fLyuH
+6laiTCG8I/5i5xflgOpb68xBNu/ZrSi5+oxwI11iQifFPom9t3UX+ytxd6iXEBd7
+BGaWN1YG5gTGXupkNQOCn82t5Fpvg9rzcvAU4fHrLtz/U7A/Peu/alGmdv/OUcpB
+Zp1fDXSZwIBREPjWbgXkHJNmGnGYmMozQn1hJ0rL5juujPfVV88w/ZJKRFF6Xthm
+y38xNYj/u/bBRhhR2AL5k5oSmAxSBCaimOem52AZRbUBU1hqow3vIq1fLxSflaF0
+e9w16vyf5PVL8MrcA7bCTHkbIzutVKWwQ1fkIqWXhgunF7Uc8Tw7Mc9AQF0HlkJe
+xeMWr3O/AgMBAAECggEBAJFEuNZq8JEJnR58G+gg86QNMfRUXfYCGIP2WYdAGcTS
+mFOgtJNvcusZBYt7evndp44h2FavrHJV7nKY8qtpZHcUPGt0lwc23GBRgcj9etmq
+jsQVCPjyV1nI/ejymF7DCiGMEWNnUq45ehEwoCGyqxGUtWeCZY4Obndqea1s2SoA
+SIwrP74kSP+cjcOb+KEg5jF5aT0Mzo9ipQuuoxLzjXJhtQuyDYOulq4g/jalMewk
+GLgRgbzrEDK8/DMVu35rNJ+CHWHowo+1G4lLY4DhajPMXMqb0dgR1JlFF5qyBoTN
+CJXq4mpuf4ApEd61MTCm0FoqSm/AprSAIISCqapytQECgYEA/ND+C9ZnOOtTxgqI
+nuq2r1yGFlNnbovcfiU3vrceUvmN+ne1tBtXSTNB4H95AUuoBeVAeYApBKxc0c9K
+5Pnwp5NdPbana2cfuorzJrIHM09RP/obDP8VTnNJeO7wd+00Cx5ZnV5g8UcicebH
+hbjfsc/lkd8G8YCIx+DBigzjIO8CgYEA1B4/JjCOuzM7Ag3y+XIIl3Ud4n15uog1
+5tDD1y3xWzZbL7fh0APf4mT8cTTU0ms4i9Rnpraw8ds9EfhMDXxJBs+LO6Ivw5RY
+RxWoAB1YTPU+T8EuTzZzIp/jrWTgsvLkjNq25W/lbZLO1n8ofFMgAAbWsN0J40ZN
+70Sib/JAOjECgYBSiJvXG3h5QYIIzhmJ39Ah8Y+orDPBCBHEcLwBG+Dfb67lDL2Z
+/a8CK6Se+J51SNCilBP3VlqNtwNaT1UA6YOiAV7YLc/8JR9bk88LW+Uz3/oDa8/2
+7zNyd/qNa1u/mwV5d8ADuvLk8bcR/ig2xILqlpc4htnKb463ye0E924SqwKBgHKL
+OtKmmgzg51Z+rdyiBZ20MsUhuOBPubvAtGC4gIMe4TLte1VXIkkg+2kufFZ8a/am
+ZqqSMQ8JsvrHOFp36P9yh99V/7D/pIQOX8BgGFTGgjWTPiysXJQv/0SdGvHHVD/z
+w5w2RpBbHLKbzAMG6FrbVof/dN10E5XHXGhTSvehAoGAHA6WgpPFp7iJBoC13NrZ
+q3DKluiytegvljyDW5hOlRGqdWp7551EGYLnWtc4bSHboIf89Iz4mW/hyYr7frzE
+A3Ksob4NIUCGMFJGSyTuK7eyhAxlVZbzqepZ+YftfTvW3iVXkxXx6kEgdzwPrNMx
+DXwfc6G23PX5tUayTZqKC+g=
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc3-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc3-cert.pem
new file mode 100644
index 000000000..f8e76ff52
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc3-cert.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDajCCAlKgAwIBAgIBAjANBgkqhkiG9w0BAQsFADArMRcwFQYDVQQDDA5zZXJ2
+ZXIuZXhhbXBsZTEQMA4GA1UEAwwHcHJveHkgMTAgFw0xNjA2MTgxOTU0NDZaGA8y
+MTE2MDYxOTE5NTQ0NlowKzEXMBUGA1UEAwwOc2VydmVyLmV4YW1wbGUxEDAOBgNV
+BAMMB3Byb3h5IDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDfkPXh
+tGaOG5MRdMZ6mSI+OVj13SjQEMO741bjZmZM7/WwJwNx4/ozwy5w3hbcvEom2qe6
+WCKThzpB+hufIgsElrLL6YHu/eExxfMqSkuUnlYye8JLriqs54i47bvtLn+h/vZd
+MnsIrS/WGmGCDfVGC3u21h3tTmcVd/jC8vUueXdgoFVCq4elMidmM0ar5+tNAJRc
+G9ZSeuuGiVbYCiGaYY+7PkyyYy1UiWyrhBPNvdQ3xcakygpWOXSQ19INYTLcAM6G
+MSnEBK6F55zZyvuq3Ob60+okaSYWAo+7D0/BrzVfCWlzmWeFyJVR3Ps3nLxteahs
++Fl7D7a9DbgPbY2HAgMBAAGjgZYwgZMwHQYDVR0OBBYEFH18o4bnybHle31aYNRi
+QZSGJ96XMEEGA1UdIwQ6MDiAFNOib4aG0AVcbb7pbh224iVD3Jx8oR2kGzAZMRcw
+FQYDVQQDDA5zZXJ2ZXIuZXhhbXBsZYIBAjAJBgNVHRMEAjAAMCQGCCsGAQUFBwEO
+AQH/BBUwEwIBADAOBggrBgEFBQcVAAQCQUIwDQYJKoZIhvcNAQELBQADggEBAGKD
+jTgyuFlwNRgrw0g4IZMmbEWcgW4r1v2yMRyAXhZuVyc8lkUZoe14eM4kqwJ5ayti
+peN+ETpRk6AS4eaCEBnn4tE/S8TD4KRovio1EWy5TvjPE6M9jPonF5IfNKgGuR3o
+7gN0KKJpzf9jj5JEJPV/d5AKw9fMdSZseea7bZ6JV8kKCW+9WCSMFnwR7POPWSQa
+ZNJy1PN6GlvHykdK4QwZT3jHaQMVY/uIC1BXrN3sC3l79jnL5tTeK8JLvZAqjfy5
++5pNH71k8zqVR2z0fC4oiv8TNsDn2g07wCCcQmzg8JHsP5p/hyUg51RqrQJhAbaf
+eUmD8lyBBdfcia2UqJM=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc3-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc3-key.pem
new file mode 100644
index 000000000..8ddee57ab
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc3-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDfkPXhtGaOG5MR
+dMZ6mSI+OVj13SjQEMO741bjZmZM7/WwJwNx4/ozwy5w3hbcvEom2qe6WCKThzpB
++hufIgsElrLL6YHu/eExxfMqSkuUnlYye8JLriqs54i47bvtLn+h/vZdMnsIrS/W
+GmGCDfVGC3u21h3tTmcVd/jC8vUueXdgoFVCq4elMidmM0ar5+tNAJRcG9ZSeuuG
+iVbYCiGaYY+7PkyyYy1UiWyrhBPNvdQ3xcakygpWOXSQ19INYTLcAM6GMSnEBK6F
+55zZyvuq3Ob60+okaSYWAo+7D0/BrzVfCWlzmWeFyJVR3Ps3nLxteahs+Fl7D7a9
+DbgPbY2HAgMBAAECggEASAMzkG5BkojDSJ4qyJbG9vAV/awtV0fvJHhIJpt3XFT2
++LS4YVkj4MSAEw8WoidsYzOPT3DQQmEOnO3pM8sNbX71PMWMeuUAQr4WY4rm6YpP
+DZfbr/D8AhHacmbxX6bYqd+sj7yQ8OyIOhjpS7EfTl6ojO5PWX8lqT6pvHHyE/Ol
+1ZH2MG4GaX10IfrF7bw88XozmFfsw6eVX6t3cBK3PNapxj+RNEwcYBAgtXBNVVAJ
+mSMkgSZ8/kTggRr3ntKvXCiOrm8Iud6Bwqp+aXB8+etT9p6gWDs0J4MCfkWvva+1
+WuZDgryiVnIdqwalrLMg2IfwJhjtlqZjj0R1Oe2isQKBgQD/JSlg+/ZYAmm/BzzV
+C3mII94Vw0lvX6qpeKMXvcwVcWRSwJMnMPMxnxebyEZopn0t25CRu0+N+sHNUZKg
+JVw5wL9nA7815JGTfVV9znN8leSYdhvWh6amrKT+Ku+1vXTBONFAR85eilzYUtff
+jKGVDhBuZ7a5YIT6+DOLoPbMdQKBgQDgULasEUxNTeVSq6qzM/1tvSR4Z9W2JIFr
+nDxC/RyPq5LN+3Pg5JiA3FFION6C2Rb+rb2RBlpSxuO4Jv+gPWnqZfuXZiTusiDd
+dnyFsAoGPnb2SIm3OAO2N3w/7ttmRCsWnm0mkFLkd4XJG/mtDcHrit1SZTEWima2
+wKf2RJEiiwKBgQCH5+aTp4K/vIFRZOyNWvBgiSJ6GyzZq26/mOfe9JVp8p2KytNX
+c+aGzwSHUXXXtp9FNwhZ6BlnOmPTFxlwPpZSmQ4bNE68yUSV+JP6UGcJvNooL/mC
+G320mI/GZ16KQyGW7snfYKBXkYIFJJOim0lSmUw9Uvds5THQcTcbsCDmJQKBgQDE
+F2sJUnncXkspkO5BiCJ0a1NVepgFiTYmJ0c63F+6bKeCL94l7FAw3eikdSp3QmXq
+r2E3RVFyaXGqi1UN9IIBqbNdr6p7i/ZVA35ps/Gfcb23IMRbCbmc8jZJAXqElPUB
+6e7LNoFwPdgTbcQ+9vbd/N/rZpCZ/tU5z4NFMr2ZbwKBgQCPN9KsqsRRK2v+j0wt
+ArKrWHK5w1Cj5rRbedOn8659edTB5tqrFtZh4YJB842oe4s2XYXtk+Kq9HBRh4Em
+CkO/JSH7lgVXT1zsf0ZYojaZWLhVTNHa3PO6R0FtyC0h7MtHV9aquPNCeiQDkwbT
+RBV8wc0Stpj+QEShPIS9gEQVNA==
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc4-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc4-cert.pem
new file mode 100644
index 000000000..5e47992ac
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc4-cert.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAmSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADArMRcwFQYDVQQDDA5zZXJ2
+ZXIuZXhhbXBsZTEQMA4GA1UEAwwHcHJveHkgMTAgFw0xNjA2MTgxOTU0NTBaGA8y
+MTE2MDYxOTE5NTQ1MFowPTEXMBUGA1UEAwwOc2VydmVyLmV4YW1wbGUxEDAOBgNV
+BAMMB3Byb3h5IDExEDAOBgNVBAMMB3Byb3h5IDQwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQC2xxl2G3u38wzrx5uWgKiZ557ZIbLQECZgwmMbGzdrNqbD
+veVgTEdkIxRk0py1QUqqukhTk9OpkUrYiSUpkAMkc3yRtpCp2KZeuN6OwyeAm8Jf
+KUHeEvvM+GNZw/AoahgRJ5Cd9OykI4Uv3y0BzwZGXCrKDWr0Bpwcg6aQ/0+dFtd0
+ElBKq2v2hHpKn4P7ZM0mpvPSEwJ5nPUDY6iuRZNVrihmuZ4UZtKsz7EFbXfqaiLz
+zfns+Kmh4j5OK3Iunm7gQLpv9RrXxsad2s7gKzgRhuEi6sECg/+4qOKwhUUxVWRX
+iJYTxJfKfyIb8fjtrQrEWxNb1n/1Ea9nWuOk1N3XAgMBAAGjgZYwgZMwHQYDVR0O
+BBYEFLFSiWVtSRQ48ziWfxHBtmC/PwPiMEEGA1UdIwQ6MDiAFNOib4aG0AVcbb7p
+bh224iVD3Jx8oR2kGzAZMRcwFQYDVQQDDA5zZXJ2ZXIuZXhhbXBsZYIBAjAJBgNV
+HRMEAjAAMCQGCCsGAQUFBwEOAQH/BBUwEwIBATAOBggrBgEFBQcVAAQCQUIwDQYJ
+KoZIhvcNAQELBQADggEBAEg+p78n5eTkl7D6OPecC47nqFp7pNQtWTksTxMgBtz4
+LeZR0nBX1kZdA0arVd7RAeqjR5wCwGIbdc3hFu/xeoPeTUBFv/7tiTWsCFBmfoSK
+Tu/NeYrfIc3Qd6KhW9iwUxN7GFAZZFhJ3xVpaDhjpMDlgp9UZ24vN+eY0KRhuHQv
+hGJcyWs5M0dYGVyTSS5VueJSWlXD98KT49LzdyAfaveQoIMFaSH3rmR4BXvUMjEw
+ByFwvFeG0lrtvcx3RhvlJQYixUPME6TcNOAWJARJ0qiO1PCufFDlOSjq8GjtxGbc
+JjMc3GfdaieMM8afXWQPflfLw/Jb1rPOKpikva05ZMI=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc4-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc4-key.pem
new file mode 100644
index 000000000..49406bce5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc4-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC2xxl2G3u38wzr
+x5uWgKiZ557ZIbLQECZgwmMbGzdrNqbDveVgTEdkIxRk0py1QUqqukhTk9OpkUrY
+iSUpkAMkc3yRtpCp2KZeuN6OwyeAm8JfKUHeEvvM+GNZw/AoahgRJ5Cd9OykI4Uv
+3y0BzwZGXCrKDWr0Bpwcg6aQ/0+dFtd0ElBKq2v2hHpKn4P7ZM0mpvPSEwJ5nPUD
+Y6iuRZNVrihmuZ4UZtKsz7EFbXfqaiLzzfns+Kmh4j5OK3Iunm7gQLpv9RrXxsad
+2s7gKzgRhuEi6sECg/+4qOKwhUUxVWRXiJYTxJfKfyIb8fjtrQrEWxNb1n/1Ea9n
+WuOk1N3XAgMBAAECggEAQbq33VFk3HH7Y48U1LrP5wj0hwEnXMtyAbnmCglvlI7C
+ygGwS0EjK0+yNc/HqycfwuXavLOcmo41bEllo9y2RJWDZqNQwsO2kLnKz2w++HEL
+JU2g8kvBYaSxlcZwxxfgL8saprM9polfjCel99CLYSIkASVyIO9/lIGDlQE7kDHb
+B+YdDzucQtyi3LXsdcfW8so2DsZla2Qa9305ZAZPEOFXFjsvKR41WdI5r1uwsrYU
+voMcH9k3aefOd62+e1KodO5w9TxSYTw2bLrGhjB1UzEzRGIgOY7L+VSmYzTn+ARY
+loXqK4sA9yvr7z+ZXHeA1y0XuMRzkG7qf5Z0pc29AQKBgQDd4piLIt0Rygzud4WQ
+5UBwwLd1u1A3jdU5EACvG4GBlJiQQPU0hHcTGoFbnTNy+y7QSBl/3viRH5WPx8Cx
+O1nJ2Qc7mlAmoKq3Gs4gso6utPP2x9Rs/bIPkL/LhAdi9BBnp6H/5dyrvtv8O1OQ
+S1rXpYTjmYj9X7BSU1PsDUiyWQKBgQDS4TwxXycJYClGufq9mrNuAoMfReXaiwv3
+b7wfRfOn1cL0hjLjLAhxn8eau+/7ZKS8ScXqHszrz0yXPfxTtWJ/DvhuobWOOWJd
+RmHN+OAxCLvcZD1hy6bzXqYuuX2WrARUKWZRg7RXxlOwnkcR8/7OrmnsnEiCh8wg
+9h/GGd4rrwKBgQCXV4BOnrgE8zjAyrtKqmO6xGgeIGZFjjNaWYTt6yf5V358HiJh
+8Nw7JoAHGgFGsvcqT5M8+bu3WMCtskTHXkEPAT4CtG1o+3uVqu3ftYrGtVwV/hTx
+RlVWcpevW92h6/DokplXrtRGPMdVkq2bpRpQLnCmwUmD8OmWLYn3XtQv+QKBgCA6
+jBh/kle8epJ0mf2gRwvpFmERLa/Y0FtgmD+vUS21XbZBTEWr1R6IbNkZH/QrzYF5
+ROYjDu57IBl9P7MLZaJFh3JhBH5YBtB6kTgJcToNO6jTKQ5pMXrAXGWHs8nzQDYc
+naaXmlhP1zqG9hWoVKkBvu6KdAp+9pOTCggcq/fBAoGBALHpj0QFvEzROBpLiNtW
+zrU7jcl4TwAbTh26cjb3Nj/2J+JH3lmLilxT6ltKUvtXFMmAT20at46RMGqY8z7R
+Z1OgtiraQtSG7BeSMRLJ2aCM8+JotvYMjRauiC00jXZCsusyJ1mLqgWlHu+YORVE
+9fO6/M0yLLz4mk5z2gdrP9MA
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc6-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc6-cert.pem
new file mode 100644
index 000000000..d52909170
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc6-cert.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDejCCAmKgAwIBAgIBAjANBgkqhkiG9w0BAQsFADArMRcwFQYDVQQDDA5zZXJ2
+ZXIuZXhhbXBsZTEQMA4GA1UEAwwHcHJveHkgMTAgFw0xNjA2MjAxODAwMjRaGA8y
+MTE2MDYyMTE4MDAyNFowOzEXMBUGA1UEAwwOc2VydmVyLmV4YW1wbGUxIDAOBgNV
+BAMMB3Byb3h5IDEwDgYDVQQDDAdwcm94eSA2MIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEA5hE+Hzx8w4tAPaYsbdY9ZJSzpzpa8ZBsZxhiJr9ayIU4C71m
+uV7EMZtUGyAbl1pXzBcvNQq/lUnXL4hpl612h9Pg7H+oaNM1ZVDnRFyIWvaq/oVu
+msi//4z5QetkM2zRa9T3BtSWNJF+9BnDsdDxi2qLW5xY9xN3tFr234ueri9HNK4O
+V0vJX67wgmVgGmIX6EQlgX5RF+PdU4SYjqxZZe2v0+ND334svlDAdQfKYf4pYqMB
+Vs5hi4PYiuU2QDhLOms0m4Fs54mRjRQ/m/I4L/j2R4051xLO1ya5UrZWepkvd4Uk
+rW7lC5JyFvG3Mp/QChrGZF0cb9iHi81iUNULAwIDAQABo4GWMIGTMB0GA1UdDgQW
+BBQwWHApUcXg5oqkZdg2JpLWKfsUVjBBBgNVHSMEOjA4gBTTom+GhtAFXG2+6W4d
+tuIlQ9ycfKEdpBswGTEXMBUGA1UEAwwOc2VydmVyLmV4YW1wbGWCAQIwCQYDVR0T
+BAIwADAkBggrBgEFBQcBDgEB/wQVMBMCAQAwDgYIKwYBBQUHFQAEAkFCMA0GCSqG
+SIb3DQEBCwUAA4IBAQBe/pghhwiZk++TtmV/eTLbQ/tMOxlb1Q5MhX+nF42eI52G
+Hwsg3dBHgy2RSgTE6fzMUt8cyEplG4nqCpR7qm2ZGcHmn/IEO7exZmWTvurun4tF
+56L2W0oe5hLLJV9W4akVTH6LpRZOR/CgMcew6tvzmuAADcP0KidFSxkd/Y7plhSy
+hptq50Qey2yyA1UVTCQ8k7OSvL2lyD6F3EasejmK0FuHekgewB54cTMCBBw/7aZc
+08rvhIi9X/yQKFD1o5kvbTi5//zcCx0RbMVZRFcrFUD+PNwt7QLpFrMs4u08aok4
+/QzS0G+801JZa1zoUMnnNPNGlfybvANVbovUCc2h
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc6-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc6-key.pem
new file mode 100644
index 000000000..ef7541cd6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad-pc6-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDmET4fPHzDi0A9
+pixt1j1klLOnOlrxkGxnGGImv1rIhTgLvWa5XsQxm1QbIBuXWlfMFy81Cr+VSdcv
+iGmXrXaH0+Dsf6ho0zVlUOdEXIha9qr+hW6ayL//jPlB62QzbNFr1PcG1JY0kX70
+GcOx0PGLaotbnFj3E3e0Wvbfi56uL0c0rg5XS8lfrvCCZWAaYhfoRCWBflEX491T
+hJiOrFll7a/T40Pffiy+UMB1B8ph/iliowFWzmGLg9iK5TZAOEs6azSbgWzniZGN
+FD+b8jgv+PZHjTnXEs7XJrlStlZ6mS93hSStbuULknIW8bcyn9AKGsZkXRxv2IeL
+zWJQ1QsDAgMBAAECggEAV8MsF25TiaSNFPdW629WbA/tmFVCa/PT5l/+0Rkd4HAx
+OQk/LmdgICxIoTBWVh44b7pIX8uB2ckZNSCsZxfcp2PD4XOxIouvSr7Z+dHykgCW
+qhDsaE88LpfwXZ0V1CgmmyPaN9jQk60M6MELTcGO4sf58TBrH5VljH9GvW/dUEQv
+f85PsN8VMWdZYx5AU97oLxNlZgRgZa72rtRfW3xi+Nnf/TbyqQ7pJAHdGju7kR7C
+Mv7Kp+us/FzPXJxHdumh8BSAbqn2Fr1hgUyH7v/7n7oSLpBATLOQ49K0X4OnEN3m
++GYzj9rpnza9QAX3too3EP0tDYZaJUUZiQqdtFIzgQKBgQD6KISBQq7LjRGNOr+R
+ayA27HlrZ0O0STyOkxOCx8GqdHQjLS/REGnLAJy6ggm3Col4ACXkD8zNLenFCCsA
+CVq6iEQcGiT5bZyJa7cwLEGdoj8Aqd6OM30TgJ1u9ZJSWukys0BhhQ7huBmxdpm3
+ykIGQ5DxhnecXJdYylzdunktmwKBgQDrcJ5fyYFSheQjW2TkNTRSDccToGVPIECd
+/a/FvhzqhwLWt1d0Hpub9M37AwpN3V8IM7PHcDqgpzrD3q+vLW726h68ETAqZX4H
+FDHLPiENkoBZoj6yjS5fmAkVa7jhGQBFSIQ1s6eYkAHCRwSbF2jfNK1no8fERwkp
+XjEf6yWiuQKBgFPfQ9Xm2p4qlQjp+pKx/SINFQSaocuPhnsy+qatfNQ+qTWmD9Mj
+kqTadrHdqY4yPTb7rbiSR5M/YpKKE4i2mjHSQCu/5EewpXw5njjLjdBhNohta833
+m2bvh1lNgpqUGn3CNcK8junFBPBIGG/To2FgQ/eGoxHMxX2ik5JP1BMjAoGBAJ+K
+ryeFqua66D+1XQbvrsazo2V/WWdnGaJ2GDhNfdbHKntJvi9n1la2ayZfhwoAqrcq
+IfdR68iVydKVAkQY64rSV4VluFficqZlXuC09zz1O5iBwy7HUNdidTVYy+1tPau1
+WjHxze4qF6cI7OwTzvMCBUenymUNJf4sX+mbNOOxAoGAHYK/AbJtXFKcYx8uj0MA
+YnkWWjTKMJ2TQIu94CaSf1oR4M6fuskgPfuRjW/CyBFQ3zh9+F4l7lG2Ywv16rBb
+/1B7W5euucM8JYxSGAicqKX7iYV6Ikz0l21Slw6fy+e1U4gIDfZPgx56iV7yVoGc
+IywUjiA/G1N3M5WBVqBl3K8=
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad.key b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad.key
new file mode 100644
index 000000000..470849520
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEogIBAAKCAQEAwTqNko5vQiQ5BQohPJ3sySrjT6JedjsKtt1OZ8ndR2C1asUi
+HgpVO8QDHKID88Qklx6UCieeKAwIY0VzqWzTyZWTwdqTU9t8arHHJu7IcFlmWsAL
+fwTmARWJmpY+K8fGnQx1Kxfi6nQJ8Whq4bcAqJ2HXzG69Wjs3Ki70ScNbQ9RUwXJ
+n/FeNrsphKAv5K22zBqjWAQdYMg6vtKZAXCET8jw6OkPVnUb/QvyoBEijWt0+HBh
+7wLkSUvMj/7fc88+xtvGqZPyG2Py4DdWW1stpgiZ3TTohEk84t1u5L3qQaRQmVE6
+y5RMImyVY8hegC4zc6aGZDFRv8MR+gk6prcuUwIDAQABAoIBAEkz4YZwJ34rMt7R
+452PRrE/ajY1EQxBeeGlHZr8QrRT0ubMIAy5ZWjq7TLfvhePaz1E/FiMgcIyLMtO
++G5rKCDqZbu/DqlqMUxKZWQ+efj2JWyj7LcGKAypGCRUXuE/IeNFYO4ecnzX0Rx/
+rl4scjdu1mYd9PIb+f/ufJjT7qYtykmwlb0MbEJ25yjTC4iHzacvFLJgdXrPp8b9
+ZGlVBKyuk9ZrZDC8/a4QrKt7Hp2SqqO4WqaTgM1G+cQFYuVBmj74bQhJHMmQ+Opr
+5KXwBKEHMtJkq1GPVZ34W90V82d+8MJAxymuPomwRXKl1dKgnvny+0eobXkiBDcF
+XCBCmIECgYEA8c/fE7Sa1vLZriw0Meq+TxU5hru4YM6OmQ+idc6diCp2U9lW+KJr
+YrIRTZFcmhEGmRjAEZrdK0oFY7h5RhsZ+gTftmNZuL8WJCK9+y2DE9dB++md3oVC
+PK0d4SmQKsivOTTeiK/VYFGoLc8t8Ud/anu2Q1kFdC+7cH/TrRseV4MCgYEAzJDw
+MTil055rYlrAAH8ePEuONomu2MoZRRCX/tWuVvz+eIzA35mryW3OR45l5qNluQoZ
+AdpVE68kBak2wIrF2oyWcF1s8VzSbAJCoqK42lKiSGVDVnr6jb69WUujCkYUZIwR
+Q20QYBUUQu0JiFBU22tRgILIAK+rRah37EP4RPECgYBN3hKH1fDGpw1R+QoVyPHf
+pYYQzQJiqiFhSJeYOCCiaIoSFjrbdfH+pjjMMbMQKctmIYI4KRZvijaSFiV3XeLP
+kCI6KWQLCf2nRUjISa+cBAVLib88mMzrnROyHiA+psFGOrAuc/DSQ3lUxxKUT+HH
++G6I4XHQKE7Du2X+qGzs4QKBgBZyJNjRxWhF7rR5Dq4/RHsLM0yKqPPCoSkx2+ur
+WJjU47sofpVKUE4mzUaOumGnNicqk3nfkgw54HL6kTZpQ7JqUKt9pNGLBM+zI8qi
+njPec04MRmo7zjg1YKNmqDodXGl38QD7+5r/VRzO04fwgI8e5G98aiOhIuLezGHR
+R3GRAoGAAyhwtKoC87fSGrpyZQ16UAYuqNy0fVAQtrDgRgP5Nu4esr9QxS/hWjcR
+8s2P82wsR4gZna6l6vSz4awGVG4PGKnVjteAtZxok3nBHxPmRke5o7IpdObPjpQP
+RJNZYbJ9G/PbYDhciEoTjVyig6Ol5BRe9stSbO7+JIxEYr7VSpA=
+-----END RSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad.pem
new file mode 100644
index 000000000..876923151
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/bad.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIJAJgwOOciuxjSMA0GCSqGSIb3DQEBCwUAMFQxCzAJBgNV
+BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQxDTALBgNVBAMTBGxlYWYwHhcNMTUwNzAyMTMyMDQ2WhcN
+MzUwNzAyMTMyMDQ2WjBTMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0
+ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMQwwCgYDVQQDEwNi
+YWQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDBOo2Sjm9CJDkFCiE8
+nezJKuNPol52Owq23U5nyd1HYLVqxSIeClU7xAMcogPzxCSXHpQKJ54oDAhjRXOp
+bNPJlZPB2pNT23xqsccm7shwWWZawAt/BOYBFYmalj4rx8adDHUrF+LqdAnxaGrh
+twConYdfMbr1aOzcqLvRJw1tD1FTBcmf8V42uymEoC/krbbMGqNYBB1gyDq+0pkB
+cIRPyPDo6Q9WdRv9C/KgESKNa3T4cGHvAuRJS8yP/t9zzz7G28apk/IbY/LgN1Zb
+Wy2mCJndNOiESTzi3W7kvepBpFCZUTrLlEwibJVjyF6ALjNzpoZkMVG/wxH6CTqm
+ty5TAgMBAAGjTTBLMAkGA1UdEwQCMAAwHQYDVR0OBBYEFJoH29IULbskIG8BwYp4
+9yD+q7wbMB8GA1UdIwQYMBaAFBwdxP7xJUYhGU31hO4z2uXPtRl/MA0GCSqGSIb3
+DQEBCwUAA4IBAQBl0tHkWMBHW6r3ywBlWWFdok04xlt2QD8eA4ywwz97t/8JgLht
+OpuHO1bQtrZR6bxAgYT1+yHQnYBTfjKxFq+S9EP6nxBe94mEgizLmMv9pf7x5q+H
+pfT8ejcY54E/oXlFXSbLDE1BDpfgkWll2/TIsTRJNoM2n8mytEdPqzRburwWnoFR
+VchcfO968asdc9/8glSLJSNO+Wh9vQlbtcPzfbd4ZVE5E/P6drQzSwNjWvHQdswJ
+ujkY1zkTP2rtVBGN4OyOfkE6enVKpt5lN6AqjEMhJ5i/yFM/jDndTrgd/JkAvyUJ
+O2ELtifCd8DeSYNA9Qm8/MEUYq1xXQrGJHCE
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt1-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt1-cert.pem
new file mode 100644
index 000000000..99f1e26b9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt1-cert.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDTDCCAjSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0
+IE5DIENBIDEwIBcNMTYwNzA5MTQ0ODExWhgPMjExNjA3MTAxNDQ4MTFaMCQxIjAg
+BgNVBAoMGUJhZCBOQyBUZXN0IENlcnRpZmljYXRlIDMwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQCiqb6LYFYj1uPeIVuzuDL1bfV8+xlrws67I+9yVDiH
+slYdA7ygv41gYKEmKSbL2SvAOnfjgDEb8RYfLhF3LQUvXyON0LkjkZseXVFLNokD
+BXoNVeP1QjWfznPxHpgGN/xF7OQpkX3FVByCIVUOpiXBbq5FtsuLhquHK0yAsY1g
+JYP8QFHUbCnE5vrpK8lOv4MZEc9rS6ZrSKn69+s3nGx9QheboiDVTWqynxDQn2W5
+ZyTyKQX0IRnKg2zLJ6Dg2ec8OUh5nvzzUdnsAJ/pN2Yc3ri53OPodTkmrRha31N4
+8TA7st35XepAk4vZnSq7cml+85xs8Az/OZDSHH1EV5sDAgMBAAGjgZMwgZAwHQYD
+VR0OBBYEFOI3TVHkhEPOWw3mh25Ri85AMqJmMB8GA1UdIwQYMBaAFAjRm/nm1WRw
+oPFrGp7tUtrd9VBDMAkGA1UdEwQCMAAwQwYDVR0RBDwwOoIMd3d3Lmdvb2Qub3Jn
+ggxhbnkuZ29vZC5jb22BDm90aGVyQGdvb2Qub3JngQxhbnlAZ29vZC5jb20wDQYJ
+KoZIhvcNAQELBQADggEBAGpxmDDbqtgDry35nKv2pTDMHW9Yqv80ZQmy61kQiatN
+vJzxdb+admW+CNXHHqsAeRr6ai2aQkn2bJrMkGuosNrkVOg43Qw7k45nIK4jUgUc
+dcH7vVp+8isjSYXo2fIxulhE8N8fhhMVAQrhQywkdJW98fDlq+lHqUAEHJ7vNtlb
+4LssY78+hq1ftjYiItAybc8peU3iDjUl+TTk0ZLTX6E9XE0xRYV9berAyTIUDSIE
+GpzEtsBqZlTdkvZOfsTs4s4tpkOoZQ1aHniCk8fQ+/nI3CS9EHuWqt/s573rCRl4
+HfiXnUmwyOm6IKzBLsbgxlByfI7fAS1Nm/hLhgtglfk=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt1-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt1-key.pem
new file mode 100644
index 000000000..8d70885fc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt1-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC8n4gY4wOae4Sg
+pyqOZf4bg5JDa/NvzZV/g6PawamFQJIAjf41ylZ5Cjdi9+2H9CuFZ4e3im9L6Hu4
+2ihsTeLmxtIabr2w0bFxTW5ZQ/NogfyNGgdcSqUrQLF8nSqE2NJ88sNVyrMQPLMk
+LllqvVFhXEBntFfZSXKIz2sA6LIeC/t8UReznRfAKF5lJoBjjDXJLOYmgz44rxqq
+L7m84ABJYD119LXRc8N5XfEvC7ff61ZrBOrmxtwZY8FJWODsS/CC+RBN8nnt8rh8
+ICyfh/2gA4x6Mwt6dVMax2dw4u/esgbokjQ16wvFGjWKzufdSPa3Tk7hrhvRC38h
+8jAqpxtZAgMBAAECggEADW9fhkZFL2+01qyRf2sMWnFYray2vjPqfhamSSKaLH+Y
+5qk2fiZXWm+72jTGmnRt1Sa2qAAYRVPd3CDN2EkD7GQk+vUAVePZu7REM99/KuZ3
+UqWT+KLoeNg2zCV1rdizxWqVNzsk3fc021Lh05SAg2rKu5hA2Z09pzj+6iWo6jLY
+0pFml3LgNjYy7VQ1V8978vtaVhVYklOiAT4dfNirt42F1NBGgaRCLhOlROOJYPz1
+LCjSlKzF2T6e/4hNvxQXGt2yJ1fq9dIj9h2XaGBbyPhiy7gUvMNC46LB66kOkPwL
+4rX7OGAEgr/vHpZvPiCVALK7dm92Z87+yem92UrDwQKBgQDzj+HvgfxDsezpZUHh
+rFEobTx98XOtCDDn9uS1dODGB+DaRROzybqfcf1D3ayWoS0ucajoOsv+/brq5FsA
+f7aNMbSTZNIIqjOyioWAz/4Jqupcr3RFczaVG+mX+OPHq1WnvCWfD/yNI8MSy+FO
+b7LdO7idN12M9HNurZGmO0Jv9QKBgQDGQW0efsO55DN/Ve6QdLeqSjVvXhmDKv9i
+6bBu8zQQWD5hFqirDl8144VY1SqTua3N+QfX0DX0QAxqkVeG9O2sNERumElWaBm+
+MnOKW/IklXIK7shmjtAzarRD0cX/8di0Wwv0qZfL6iU8tkmh89kNyUE6tHbmpeUj
+fVeO0G3TVQKBgCWAkw5Y2mnl/I+XasR/zuNFppnR0rji2PzulBqoi2+SiPmyxyzY
+s+aXG6MWf9uVp6pOD+7qFr0FfoFqdeSmxYoKDD7huEFjS6CDGblSzU/ZxEpPLbz/
+13iwGpCu3wvAgujX3IcYZA+rYP8E64UzR7wu1OdIPhxVC20QRqvs1fb9AoGAPCgy
+IiS44zkZXzQF9ZNU/7kQycA14ZU0dSEPxjrJu4PrOa6Uc4Mi5Mkq9y+Hgde/o1ZD
+SPsGxByDJ/r+IhdD3xLlCOHwruVbmljYsk0ABpXKSwL1kBkZl+By3nlSqT0LUn6l
+/BFR3DAqKGfvo9LIM+SzhEqqIYaJJuGrpcwc5xkCgYBu0Q1goQd3me/U1KCIRYN1
+u0f8H1uav2zGp9818PvLny6tMa83Kfam/zT8zGIOBEty530jPFWDnky+CLAm6qYL
+ANLPHiCErO+3n15C80porioSFnUL7QY/5uRfTwDjcgCjGQgDiL1RhwZJurmFgwM3
+RBPODQ6vGkTdrJOJr2AWCA==
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt10-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt10-cert.pem
new file mode 100644
index 000000000..9db176845
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt10-cert.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDiTCCAnGgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAZMRcwFQYDVQQDDA5UZXN0
+IE5DIHN1YiBDQTAgFw0xNjA3MDkxNDQ4MTJaGA8yMTE2MDcxMDE0NDgxMlowVDEj
+MCEGA1UECgwaQmFkIE5DIFRlc3QgQ2VydGlmaWNhdGUgMTAxGDAWBgNVBAMMD3d3
+dy5vay5nb29kLmNvbTETMBEGA1UEAwwKSm9lIEJsb2dnczCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBAM273Y+gNkheA8Ifd/zsmibA0KmeuEKGZsLvv4Vl
+HXABoOtYli7wkfyZPexHgUUdNe6Tu9de7nYDCx/iWoSdrcKl+/5BBiFcLY72Buqk
+DF2vmC+un8z4ykHa+dqJ2KaL7j8uLsiSPCOk9+tM+bvCYv4o1wPBsoDmPg50yvXp
+RVR7487cN29h4BnZC1BMXuwUzEexpYCy7i2GQTI4DrQ+oN1OsIUbHS9qQxrfx+vG
+TYpeZOkR2Mb6OtPEHCGpCsxNCDzhPAmlH6jaxT2kCkhuAWkqkhHLTuga3kmXuH2r
+OBOpq9TRhC2kPipcuOcIdnhexovcODVJ0X0prkS3P10K3fcCAwEAAaOBnjCBmzAd
+BgNVHQ4EFgQUmGUQRhEili5u8F+d8jSgSLailgUwHwYDVR0jBBgwFoAU8FOJh91W
+GcAZ5iBVbwv8FBXXo7IwCQYDVR0TBAIwADBOBgNVHREERzBFgg93d3cub2suZ29v
+ZC5jb22CD2JhZC5vay5nb29kLmNvbYENZ29vZEBnb29kLm9yZ4EMYW55QGdvb2Qu
+Y29thwTAqAABMA0GCSqGSIb3DQEBCwUAA4IBAQBZ4RTnIR7Tgv4rq1Qx7pbx3Hlw
+Y68L0Nt/8GaFZK0pOrKHuY6HUcUOSabtchcm/CYF1ZowKT5KGWmR8X1WzgHe9Aay
+4njzcnTu66hc1osZdH2lF1+lkNA+HLvzNNcBu0XwqzCs2f/yp4uznuHZKvX45y4L
+x5TUh570LVUnnoosdTmzicZdXcw0nzikbueNAFSrZFLPt+lH/t1P7d+gNj6hAOYi
+6Ac+JEjSAPXZOzbNrf56SC77cvkkFrYONjXgrJfNpZHMCNj1M3bqileTYIV5Leyh
+PgoXCRyteMyNjwTih90SZPq4dLPx3Mf/WNG2/hXIkC1AvFXpp/u0iuwlw7AO
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt10-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt10-key.pem
new file mode 100644
index 000000000..e62c0e17d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt10-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDNu92PoDZIXgPC
+H3f87JomwNCpnrhChmbC77+FZR1wAaDrWJYu8JH8mT3sR4FFHTXuk7vXXu52Awsf
+4lqEna3Cpfv+QQYhXC2O9gbqpAxdr5gvrp/M+MpB2vnaidimi+4/Li7IkjwjpPfr
+TPm7wmL+KNcDwbKA5j4OdMr16UVUe+PO3DdvYeAZ2QtQTF7sFMxHsaWAsu4thkEy
+OA60PqDdTrCFGx0vakMa38frxk2KXmTpEdjG+jrTxBwhqQrMTQg84TwJpR+o2sU9
+pApIbgFpKpIRy07oGt5Jl7h9qzgTqavU0YQtpD4qXLjnCHZ4XsaL3Dg1SdF9Ka5E
+tz9dCt33AgMBAAECggEBAJzXPb+C2h8tXRwetXCiR5qHoAvPrpU4tRqjf5SIU3rS
+IwWIEWZTjFfP039Pu+Mes8Df63HzM0PQaiiyfWNgedlMhOF+XNgN18WHFhrHWY4K
+kbC4Jacze63c7GGIeRvuzYBpCs1pfmOGHmLJ2hEjzigIpnJ8tkLCREjtDNWQMoSG
+V5LznbgZ9S/2KjyvTW5ff6m4GQH3BShPPkFDICgQTulwdZT/Y8SDKx5+qX2RAtjY
+RguaaNSKQnOHroF+FPNPMUsK5gLZLWIdIECTi6YHaba1BThKzeKFKtQ0lWI5ebxg
+R4kzEPFJmEHbNplxUHSkY4ZIsWK9m09Sn72IrmVY6fECgYEA9e4+w2x/YLtnfwYT
+tVj+kR5MRTn6t+gOR7o6lsWGvkFqwSi0syfN8D6u3KeoYORUUY7ISCFJgIag5Y5V
+Hp8T23O4rRcWuoAmolxNyvYiUYsVdflDbAZFKMSvrAv3XlRRf0vJYXym32k8KAhx
+1qo1zTl7THWM/skv/SF+VMItnO0CgYEA1ihKz8LbtPcbsOaivJX7cXVf1AuRty6F
+lKX8QIGg0ppq/EFkZDWg7+OCVneO53bFVDDqKoiM4Dq9+aA6Dgx4fjFof8rUaCet
+H/isEkjcvEmG2a71PU/moamDuZDu8yRodUl4zyjqthQgc2n6ryV/ZIU8vNZmjpIr
+EhITW8/mbfMCgYEA7UMjpDA5l55VlDPNscihGGpNlQABxYmItWSSf8EjZMwB7UaT
+RsChKyWeV90cUhYWzvRcf1I18lxwP+eYcUlxw+eaBMvgrp9SJpO8rZHWvCrd0opf
+pIlMEa/n96k3xva8BX6dU4MKD0IculajVUGzVEIflT1XgLuio6i7k5Qeo2UCgYA3
+I8SvXbKIE5/Tmm6IM+27tsbnp9rq2VWXgm1Chp3L2+pz7LpWeuBnI6LpdHsc6Z3B
+IZ8JOINdMIK9hR2thFR52WrYjHbIIn8W3kYfpxb+e8f2wG9wS+RL94NtAf4kKFmk
+6TfrztMv8lqwnLbo5bS5QvzyehmJ1+SzEGhfmVXxNQKBgQCULij+SMWsFC/gPJHh
+BCnx12Dx9t5+qE4vrjtNumCCnj9i0nRPludbWapRfHyfe0WlhpnnHo2OTFcl3qna
+wBln8Km2CWNsX/QeosZBPr5KAakfD+l8LieK350t7yE1LEboYCZkBNCG2gJXIyTs
+o5DsYNoxX/IWq2EbB6qQ3Cys6w==
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt2-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt2-cert.pem
new file mode 100644
index 000000000..890c551c5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt2-cert.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDSjCCAjKgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0
+IE5DIENBIDIwIBcNMTYwNzA5MTQ0ODExWhgPMjExNjA3MTAxNDQ4MTFaMCQxIjAg
+BgNVBAoMGUJhZCBOQyBUZXN0IENlcnRpZmljYXRlIDIwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQCy5dZH9k2pwH5jw7iWD1TwOIqtmkNBOGDDk9jKvovm
+VUYm7nvLOrx4amqi7OUEpYaJTroPS1UxFo1E7/0yqjIesNPVvqzn2wzuii4VsfDn
+qN1lqbpg/unr2g2gd095AyY8VQwuqYa3bXOQHSOHNgzm108XfpubuqleEy+ykHhX
+bgzqVTQ0Y3UjD53f6P9kSUnjnODG0RK0dgHWQDWKE8TiQiGzb0sXWdkXvPt+zGw2
++C76lID3p7y1+8G4rpfGpi2aPOH6m4beqNAkekUzu/dauhHY4aGRoX/EsDTN8K4F
+YtGGaoViFIh9Twc3nWvERXbjXSayeu08f+7CNiSo6WMzAgMBAAGjgZEwgY4wHQYD
+VR0OBBYEFPIaUwk0/m0BQNvG30Cm6oNqQFIXMB8GA1UdIwQYMBaAFLoDn50GJKRX
+5nP69ToJ+bqFzKn6MAkGA1UdEwQCMAAwQQYDVR0RBDowOIIMd3d3Lmdvb2Qub3Jn
+ggthbnkuYmFkLmNvbYENZ29vZEBnb29kLm9yZ4EMYW55QGdvb2QuY29tMA0GCSqG
+SIb3DQEBCwUAA4IBAQBjicKVS7UDgLCb15ucoKfnrVGvKUs7XSKfF/xae+c/2xWP
++jCCqbilW0QhVuAYyK6GgVO9cG3PKhCH/Us2Az0oCzwLXibRHcDSRfrjJJ9uiofc
+f71p9AzAtRMlSwl3UhSLS8xbHLRbniNXi928+1iMoKb8Ua2ZVHzF3s/T3J26EEkR
+D2DtWq+y7ETlTPS/GklldW1x6qzWRgi4IriApX2taccJtFhaZH/Ih0XtnEWkmtOL
+dwsadu9bjbLtUsFBeW/bcRBqZoI/7xbSxVwHVXF2MZwHkdFuq/3eJE9RXVGpy86+
+JXOcEouXyLAVjj9XCWLW8ilVTkYE6EmUvKSF4aON
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt2-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt2-key.pem
new file mode 100644
index 000000000..895900db9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt2-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCy5dZH9k2pwH5j
+w7iWD1TwOIqtmkNBOGDDk9jKvovmVUYm7nvLOrx4amqi7OUEpYaJTroPS1UxFo1E
+7/0yqjIesNPVvqzn2wzuii4VsfDnqN1lqbpg/unr2g2gd095AyY8VQwuqYa3bXOQ
+HSOHNgzm108XfpubuqleEy+ykHhXbgzqVTQ0Y3UjD53f6P9kSUnjnODG0RK0dgHW
+QDWKE8TiQiGzb0sXWdkXvPt+zGw2+C76lID3p7y1+8G4rpfGpi2aPOH6m4beqNAk
+ekUzu/dauhHY4aGRoX/EsDTN8K4FYtGGaoViFIh9Twc3nWvERXbjXSayeu08f+7C
+NiSo6WMzAgMBAAECggEAe5D7MBt1S0H1Ss1+as/OOFqllwGNYLgjRhOR04BHu2G9
+Idjp0tcQJRBD9aMxEMOQKLkjFLtQ7aYJD8vAFMWv9rjmqKWaYk9QIFd7O2r73dcq
+jTTt0l9gjZLAhMzELO6680M/Nd/MeFf2UV1/E76GrM+dBrphmvAUWjFgabMWHDR0
+vFmZW46MGyDLAmihSYXXtwamYxf4UHYC9QxW2KNu1l+llalrRqzT0tQde93W+lM7
+fZBXgjdLayqdPpYhKd6QkEfVYrgtkuZern+DlIhfQcBwVqj+2gVfO87hFVEb5V2+
+Rt4v6xpL2Um+MvojE1NO353WPDBFMYOmoMjSBL+CoQKBgQDXzk0ke/+ZZoOIWLfd
+z57s9HyoTbiUHNELIhCNjJmpEVMlUn6TSRu8r8s4EciOb9yj4j5dr0p5tdsmP0eL
+KJZyTvNlEsq93azCuzG82Z+963iqq/1msncjvcbnIll8kGwpr38sLAN/qjc11/o1
+gLbWuiztGyTPuFtM/Hy/UvkV4wKBgQDUN78TSEGzuKDtyuZNMCnvSJdXm2p3XMaz
+d52ooRtZ0REH/MGMFW5u1xJxnDflcgnzXRVq8xaw3TMo/3Fx+Op6PGq8zVEwGDBQ
+0WQqBVB/b4Rw21Kf9fMVMtXvOxIsQcdz2583s6Lojr63H4P11fF60EEVmEW2cXs7
+MviuHdt+cQKBgQCpgS0ufwbgYpjlu2mQG8fkrpRLTeCw1YGMkREXXVxEY4s/QXCS
+F1Zl+l5QiAdTeaGAR/BcfZatyp17iTCUqSiiWEjtFrmQMFHGEmqavwStlAqPY9AB
+niPeOu3EFkLbiESs6V+mPlvxJq1+6UlqRNNYDZvEERH05gUwjxEc5fsnqQKBgQCo
+Q2cqJ8GIeVyIDreZ/hVR15G/8cdxysr1o2MLQGpKRb0mQx9HLfr4wWirUfzz3P7M
+ykJgIUwdgdW9rQRLJNztfJf5CSZVZuhwPAYaV0pjMI2nWg7iLAXICh2caI7ZLnKx
+hzJv3OvPTtcipUdhFXg5M4RXVfv4U3QtFRYeIChX0QKBgQDDQ7mGmWkuR++svxXG
+A5ITe+7RBRO8kVhXEGYQbIiuk4fM2ZXWnw/MwMVX3cZRfL2DPVmRa5Xcgs9OLwQD
+hoGqX9LBAkyB1p+ZBqNJaHa86awXR01gWNPW7/GJTp4Q7V4KkGvjIbWVWH/7TpMe
+d6YkymUz7h0qMN/M5nsB5Xg4jg==
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt3-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt3-cert.pem
new file mode 100644
index 000000000..cd44b22a8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt3-cert.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDaTCCAlGgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0
+IE5DIENBIDEwIBcNMTYwNzAxMTMzNjIzWhgPMjExNjA3MDIxMzM2MjNaMEIxIjAg
+BgNVBAoMGUJhZCBOQyBUZXN0IENlcnRpZmljYXRlIDQxHDAaBgkqhkiG9w0BCQEW
+DWFueUBvdGhlci5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD7
+yQbYxTDmAxcJzHqauQqtUWWDj96qO481h0oELUC1VEbmV9Qr1v2OPebjVQfa+gSc
+YYqC96IrJRwtg+z/mQzGE2QbLdVrCwktLmd0e3udfT4DObkKFJ63G9wH1kkBcsXy
+esNTqmUvUS6uXMZYlAGX3uml7UmwXJ+E3zHzFILTeZcQxqjLm1BLGbSFZzT37euc
+ymsZucA6pZwGiJQdRieSDTliXCkECZJhRf+tFBvcGuTnbYHsK6RnAlAN1Y8LSLrq
+sjJunJA9U+5y++QR+xSzDrwjQ2RjiCDO6HU5k6x67x0g8tdkhS8yjT+lBIxOuU6T
+I3GC4vN3U9LvZrWTj26DAgMBAAGjgZIwgY8wHQYDVR0OBBYEFIcSdFjChgdLODYp
+IIL3Cx40pmomMB8GA1UdIwQYMBaAFAjRm/nm1WRwoPFrGp7tUtrd9VBDMAkGA1Ud
+EwQCMAAwQgYDVR0RBDswOYIMd3d3Lmdvb2Qub3JnggxhbnkuZ29vZC5jb22BDWdv
+b2RAZ29vZC5vcmeBDGFueUBnb29kLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAZSDs
+XlhVEqGRU5Y/n6EIznEBdDSMSxjrZ62Nf4rWzrQGYT+R9CjUQra9/6wXyjvlTZZO
+w+BP3y0n2vH1TrCP22fA3n4Tw8WoJfq4Sb3x/eSgTlUYAiZvHv6vfugC7y36c7xh
+3dCgKWCDxaAplRsMkXIQXgfCNp360Z+OMMeNpcpVnxnp3LfMKCpsDWUKuWvN1AJE
+mi1VCWQuQIC3vmiZbZc/YKF1kAgUHxCnqHcLtU3GAZUuCVyNrdWXk8IjzjzX+ZpN
+qr/RUVVZ4IYDUUiGLHW2AvpVv9mt+SBspsCDXyiAf5O6xdek+tiTYLmU9uUOmtJ3
+ndvhdtnodLRvtBeJUg==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt3-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt3-key.pem
new file mode 100644
index 000000000..398b52f76
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt3-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCiqb6LYFYj1uPe
+IVuzuDL1bfV8+xlrws67I+9yVDiHslYdA7ygv41gYKEmKSbL2SvAOnfjgDEb8RYf
+LhF3LQUvXyON0LkjkZseXVFLNokDBXoNVeP1QjWfznPxHpgGN/xF7OQpkX3FVByC
+IVUOpiXBbq5FtsuLhquHK0yAsY1gJYP8QFHUbCnE5vrpK8lOv4MZEc9rS6ZrSKn6
+9+s3nGx9QheboiDVTWqynxDQn2W5ZyTyKQX0IRnKg2zLJ6Dg2ec8OUh5nvzzUdns
+AJ/pN2Yc3ri53OPodTkmrRha31N48TA7st35XepAk4vZnSq7cml+85xs8Az/OZDS
+HH1EV5sDAgMBAAECggEAUIndN2NGo04l2vkHT4/XY1/DWdN1/b4h39TmHOSIbN+m
+9YzBG5JcbKjLgXqEpA/uMqqAa9sv9ZbEDkIgEbLvy0m+79u1n1/bvwgTVTs2UZGn
+oeyyBuB2bp6pF2y/duzHctPdEJvh+w8vYlsgozUuonyruwbL91SBn1aX9Wx0BHMk
+rReJHuLxnGGgUVJzmNqKaGKBpuBaLhpytcIuwkNErDHUfzyxDcpu8IPo70jCafrE
+hlrbs9o8vKcnWF3XZ2LVPdrF0MQeXfvOPc0txiAOU4DQ91gsoZsVsYJCXY4Qw+4S
+ajpxidF6nQDtRtB/aTq+OCMzCVGog6V8Mg7VbA8u4QKBgQDQSHDEBgvPfoA/6Sxp
+uzFV7T0Vgl58oV35EqPFl81cBUSwTElx8ueP4kK00964j47Qe/N5TQOzvH+rxlGQ
+cBgQzG3W83c9HmfHjdx6lSQIruRW/HwqOsJtPcxP3XyxSO73+hqwf3hsOWRq74Lq
+MHcgvWZ1iy/A0smVQu2sDLDk8QKBgQDH7b+FbKSngDZU+9uEYKkPpmhh0qGXVgSX
+1W1BKYxIKd2y6aDOCxZJDTJGNBMpVdOTm1VNrL2J+cF73XOJWaG7KnSbxl/tkrS4
+9hwJ+Ut2VOumFWHEUqp+nxLxwJdCtA2f/YTNqJPLj3GiGJB+xp+dZr4ARn/+P5/N
+DC5G6S3vMwKBgQCreWg1ShEBI9FsTIi/B1kHuAgZJDqr+qIGQ/1G2MI+Jyw0xKmW
+wXc48vseKmvroGzgYZvCWtBYcjDd96kA8/gsJFGtrMWXMOgZ10YUOaLv7ySYJMgI
+cFXPYBhMDDnzLutmhqbgdiFrYBi3HTa3nW0GLEglL5EB+8fwNai8g7pC0QKBgG6A
+su3NGcjW7bDVMASf5HGY+XKwF85spcdCGMv+aeHs+fOMe+vGZv/jglkZKUocfP/F
+yEVRZ8WePNn4kYZl+yVXFvKOl7DY+HiO1vqQRqxVzZWTleEMC95GkBL87t3YZPt8
+BW4iceX+F8GPMDZSFCDMi9HdJZtikTGlPOLGuTPPAoGAAjVUGfbNqnpQv6aDpyWX
+Szd2uA9TzBCkh1hf7x4+E/Wr0leTGgXVez9uNarfpnVfgHTDv+OYK+Qnrq+UEHQr
+9xRAgXLEZWXPbkUakB1o7ZW52MxR6C1zZgitTZYVzeX0EMeWc+1Ujjwe7Qu3L6RN
+kEI6l4ZQL9buxDhqXH1UFbw=
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt4-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt4-cert.pem
new file mode 100644
index 000000000..3c041cf34
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt4-cert.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDaTCCAlGgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0
+IE5DIENBIDEwIBcNMTYwNzA5MTQ0ODExWhgPMjExNjA3MTAxNDQ4MTFaMEIxIjAg
+BgNVBAoMGUJhZCBOQyBUZXN0IENlcnRpZmljYXRlIDQxHDAaBgkqhkiG9w0BCQEW
+DWFueUBvdGhlci5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD7
+yQbYxTDmAxcJzHqauQqtUWWDj96qO481h0oELUC1VEbmV9Qr1v2OPebjVQfa+gSc
+YYqC96IrJRwtg+z/mQzGE2QbLdVrCwktLmd0e3udfT4DObkKFJ63G9wH1kkBcsXy
+esNTqmUvUS6uXMZYlAGX3uml7UmwXJ+E3zHzFILTeZcQxqjLm1BLGbSFZzT37euc
+ymsZucA6pZwGiJQdRieSDTliXCkECZJhRf+tFBvcGuTnbYHsK6RnAlAN1Y8LSLrq
+sjJunJA9U+5y++QR+xSzDrwjQ2RjiCDO6HU5k6x67x0g8tdkhS8yjT+lBIxOuU6T
+I3GC4vN3U9LvZrWTj26DAgMBAAGjgZIwgY8wHQYDVR0OBBYEFIcSdFjChgdLODYp
+IIL3Cx40pmomMB8GA1UdIwQYMBaAFAjRm/nm1WRwoPFrGp7tUtrd9VBDMAkGA1Ud
+EwQCMAAwQgYDVR0RBDswOYIMd3d3Lmdvb2Qub3JnggxhbnkuZ29vZC5jb22BDWdv
+b2RAZ29vZC5vcmeBDGFueUBnb29kLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAiF/+
+jEoLAFll7JZN9PioyP0i7EEYCCVc7omFaKnIV0A9ZfV/TlHBZH/IQKdUXbSPF6eF
+4UwOQbkc2gwYEliNsU+rw5PANBEwPhCGKBIClWhReIzQqY8oTRxKOpq3cHd6hsab
+P3NYRUtinFdoOGlUHQQcql3zYwD/guOvA/zG8sR58ed9Fd0gt3OnSEvUSiR4e9bg
+gbqgSYgagIDcZn4kEJWVHQGj7lA4ot60X3VYk6vWSB/RmWqbmsGxzoNayGWaCw7l
+CuipVdk9yi4eROoQAxWvVBDz+7Q9CF7j1PkDMYB+QwiXwNfGplOMAWv6nQUNJPs5
+dIn/eeha7QWrqG/45A==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt4-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt4-key.pem
new file mode 100644
index 000000000..aad778dd4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt4-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQD7yQbYxTDmAxcJ
+zHqauQqtUWWDj96qO481h0oELUC1VEbmV9Qr1v2OPebjVQfa+gScYYqC96IrJRwt
+g+z/mQzGE2QbLdVrCwktLmd0e3udfT4DObkKFJ63G9wH1kkBcsXyesNTqmUvUS6u
+XMZYlAGX3uml7UmwXJ+E3zHzFILTeZcQxqjLm1BLGbSFZzT37eucymsZucA6pZwG
+iJQdRieSDTliXCkECZJhRf+tFBvcGuTnbYHsK6RnAlAN1Y8LSLrqsjJunJA9U+5y
+++QR+xSzDrwjQ2RjiCDO6HU5k6x67x0g8tdkhS8yjT+lBIxOuU6TI3GC4vN3U9Lv
+ZrWTj26DAgMBAAECggEAB5KFLTHJBbHkGHxY15xnEM1Y4zsJdE80QGTgOf3ua0Ws
+mDLeA6+EkqmT7xRYlyJbzyQz2Tp/WxLTpR7JmupMcwyUPykCuSRs0zoJDHzGO/dP
+TSOISCBUoacp1+Z+7Zc5EtDUXQjL4D9tyvqpUHKrFZkzp7TaOX6foYxg4TGluZxo
+RDp6qlAOzZJiAcmavgqPpvfgbkNs4cfdh9yu7FDX2Orqa0pQNsPDWp2VyOkDEPiR
+7LTK0OxQiHLdBbLvjiW34eElyJl2tJhCb08JcRrfbYpeS43j0rOcyDJQZX6tkpxK
+BJwgWVwqwuKBlZyGT2inASNeqON1tAGWhz59cWXcyQKBgQD++LSllDv7fOZTRKgC
+e+MGbkCKrPgjUr9NJgcrQhQ+kxE69E3p4iUtj/YTwIc23qxjuZ+jyG1wOFIULRYz
+KjBbuyEugfmcgWtFWeJokl71IHBk1QUT4xlSSMvccs8pTseBCdVWIkPRIc4qeGRB
+3RCPrJmmcvsJ7gnYPFfmKL1tRQKBgQD8zQflPYNLPgGPNaCbFiy0aCNYzvd+4ETz
+3TsKbmITXnq3W2Mf80RctzasFkTxM4Kma2fXbDNt4Z26s2x12FuEg7oaKtGKZBy9
+anmg4u4Cr1lk9BSSqlQeKsqQOp0mI3hyBW6v9CDhgCbMbKT6DgskwZpQjHLPf8UK
+DCfJ2Mq1JwKBgFuy8rVCNLhj2SpFXO9XwvSDHm9BehSqI+cJMDbckw9WMTI0vvjI
+vno+dk/wRDD1sKZFEicDZGihuNNMy9km6TF0gaCKWk1xNjVA+G6HheM/AW0iN6tJ
+V8gCKl9kYyEGFjZQZQuPUziZod4gYl5VtSkW+EOmwqZ1l9DPEwXRzR7JAoGAAu2A
+9Oe0eI+cRwNQ+9rS47f9CM9E0IRaaBSc1W8X1a+Xbj4xtLIFjalVicKsQ7rb/X9q
+8XTAV7pwMDRZwjeiP7Oi2SC70oV8S7lK9VELfp53Q5MMFfLBDKRkOi1jmoh4oaFs
+eb8zDkmEqYNsmbTF7kQLvHkT71FEf+xKHa1UE6sCgYEA+9bRKxPgngVA1qAhwrDM
+jjODdUhrlJZDZ7oAVs/CelAO6sSXZ7Yqyujs2YonuQ9aUiLLA/b3b26XEqW/iMzG
+onhxrQXGlsvqK+V5u+x8yBpBUj9KBw8RXBtdhPEl5iRIeQ17xKRi+9WilOuhwdKJ
+dlpiKXP638lF4t5jvaCy28o=
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt5-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt5-cert.pem
new file mode 100644
index 000000000..bd67898bd
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt5-cert.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDUTCCAjmgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0
+IE5DIENBIDEwIBcNMTYwNzA5MTQ0ODExWhgPMjExNjA3MTAxNDQ4MTFaMCQxIjAg
+BgNVBAoMGUJhZCBOQyBUZXN0IENlcnRpZmljYXRlIDUwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQCzgx886aURB161wWGRp4rr45Di4KhS/wUUSaHTQo5n
+9jD+7glAOBTrbQYb+Gz/tusDsuHvZOGOvQ45D05MJVvWsz7M42lA8GLJfKIX90aN
+PMkX0pjNbx4admrAf4PYGabkihF9iPJ/ONiAYuoGoT0gjOEqtoxyEu/buXgNMTdt
+lZ+wL30WKL518MCm1KIsqFpSrNRYZq5E206Umsna7uje5tBI3CwYy0OD/XVwnSEx
+OgWkQ71RAqciVV3bCptBpheWSL8RH2Zom//INa6g5ArJy6TCy3IsmE0hCwteaHKB
+jcFUPfLQKqJZiIg5DgJjjdwZ3KAWMljo3GjdSVbdZ6hNAgMBAAGjgZgwgZUwHQYD
+VR0OBBYEFHecitO/eIltLUNkgT19Gn4TVkc2MB8GA1UdIwQYMBaAFAjRm/nm1WRw
+oPFrGp7tUtrd9VBDMAkGA1UdEwQCMAAwSAYDVR0RBEEwP4IMd3d3Lmdvb2Qub3Jn
+ggxhbnkuZ29vZC5jb22BDWdvb2RAZ29vZC5vcmeBDGFueUBnb29kLmNvbYcEfwAA
+AjANBgkqhkiG9w0BAQsFAAOCAQEAOBZXBSNNAAAaII+l4mMoeXCpvofbaHuNlJur
+G+1uu5ra6VF5Juc5/uBa9zVQa2npe0kKOtx8xcI6QMQW+usphaUEh8t7AgR3efyK
+bsSKPnGxXtCSaYZIEiwFyAFTx1idzZixEfHUHTO+LQUwNTskDGCWK46V1P1wL478
+jXikGqc76DSmOXTc93asCMxCBIbHN7LLJIRhbUpiL2JrBPydzERPVoqiEZ9SWG4p
+DB4T0hHq5FUUnR1Wg7yQoClhyButeB4A2eGwLjhpSeLeXo+w6ENlcm9Lp5rOhbOo
+xqwgz6kUtU6smxWv0HruLT8Pq9hIKuPz6DWG/vIpiSLwz4B25A==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt5-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt5-key.pem
new file mode 100644
index 000000000..89cdf2539
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt5-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCzgx886aURB161
+wWGRp4rr45Di4KhS/wUUSaHTQo5n9jD+7glAOBTrbQYb+Gz/tusDsuHvZOGOvQ45
+D05MJVvWsz7M42lA8GLJfKIX90aNPMkX0pjNbx4admrAf4PYGabkihF9iPJ/ONiA
+YuoGoT0gjOEqtoxyEu/buXgNMTdtlZ+wL30WKL518MCm1KIsqFpSrNRYZq5E206U
+msna7uje5tBI3CwYy0OD/XVwnSExOgWkQ71RAqciVV3bCptBpheWSL8RH2Zom//I
+Na6g5ArJy6TCy3IsmE0hCwteaHKBjcFUPfLQKqJZiIg5DgJjjdwZ3KAWMljo3Gjd
+SVbdZ6hNAgMBAAECggEAcNWYiwcptFx3kbNuCsnPLpqp9ZHU++ZEYQ4vY8VQEdTT
+00n4Ep+ttpWe43HxwYJOktKb5Yf5p2j6Sa9vPbm10mx0qwC+pgzza0al9H5/oEN2
++zxqw6Z2u5d3XmxIiUsGdly6xbeRBZrLq1eBVo1/CLjEx75a5VE151zbMx+egYge
+xETVRushMINQwkMbVUQp6MLX+M5eqEP8c2xyzPVEtxtxpu4yxZWbDuFezModhdvj
+ncV0QTBvlvB5Eg+4CeZiOvgu8ulnNUJsYGvMGCK8b9FwJhpM1CVtmw070CnRL0hx
+6Xrhgw26oAUmxWkvzzXsgwxAZFJMpM5Rg3rwrNDzWQKBgQDnR9FIh24gOK6g9dOx
+i/LVKFZ1V1/HVXTXiBjPHwecNkBXLLlgE46fxSHd1mt1yoHnyp3qOXbCIsqnk0S9
+KyMN0y7YG0P6QHxdrnhhr2zsZaVBEoLXmBn7vp6M50xt/Je4qvOGwkPTrU2Uftil
+qMIexti5oO/tOksmWw0Bm0R0WwKBgQDGsthSr9y1zpACJnu9rdMkwqZoxn8n7CPN
+y2L66WSpCopBKighfvn9ymOkV07TdcY9PEo/Yb5G3jT23trY2GOd6EYTSa0S8yDt
+lslXTzZJGAK+RiMf5zHBwIS800XSBqXCjL+yJ3w0sQd9uRcQr8XjIJLZfbT10sRg
+1jQBMK1WdwKBgQDJdsXXaCGF79ouW/ULs9zT0U9+552HBenB1cvGoEEA0kE5rrvL
+9T1H73CQzTbOZJjEULs+TNAmTCg70Q0Pu4PNhyhHF3kfhQzQjipO7YD0a5aIGJfh
+NZ1srZ9vHgx1wpJnSoLX4GE1AsGRmO0fYOG37X7cNFTLUPwlbSrnO1lmAQKBgHdR
+kJve5X/7wfi4mVgnGQMbLIkAof0cTcfYGeEo5HyqSqmlIiIzOPYRYlKe50QOlnPR
+T5jOHlA6Qb35x5uuHewGPoZ4mMknXR+vi8q1U5kDJSqTvaX71KJP9KXbjTL5MPMq
+SDc4hNqzcBcsXdB0bTXeKrEWTuPLpIeuOd55F64zAoGBAMooy318nDZ0c2Qek3/N
++SN+cG5tLH7HjbI9C4XBYVbxXHIvg/nSzFRxBbC2ZFetJ27xvweM1J/Clk7d1Lvq
+PM7fcVgcc+ccHNM7KX77k0/J+FJF1uNsj9Rgg2TFveLKbtHfmaZd31k1HIYhSS5E
+a0BZeU4ZpKQJxpf8YbXbPi2Z
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt6-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt6-cert.pem
new file mode 100644
index 000000000..f41568f6e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt6-cert.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDeDCCAmCgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0
+IE5DIENBIDEwIBcNMTgwNTE2MDMyNjMyWhgPMjExODA1MTcwMzI2MzJaMGkxIjAg
+BgNVBAoMGUJhZCBOQyBUZXN0IENlcnRpZmljYXRlIDYxFzAVBgNVBAMMDm90aGVy
+Lmdvb2Qub3JnMRMwEQYDVQQDDApKb2UgQmxvZ2dzMRUwEwYDVQQDDAxhbnkuZ29v
+ZC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDl46xhstHmmYhp
+XY/FcnQStR4XHtHcNRyvq1perl0fezeCY85KkddGppic5qIWQDL4ViP3HfvhMlDZ
+E0tAjEfr8Auac9gpa2IFVJAzMnnzOkhO6cr5kmid4392tNCG5sUWS99t2Z4f9sOP
+DQKdoN7lnmxnpZqNf9NUERsN5i4fcvErfQZ4LqV5ld810ZAQZUfarn1rg6/U/ADc
+qA0uQgk9RxVgSDt3M5mi8AaC73Be9nAefXQUybzs6J8EfsDijhD85msxs4Fha4pg
+gM+bXHv9C7whxM5F2WTeET0cIcAfE3+jzQlkjcjlS1rTEq4d0Pd+1rXkhMwZeze2
+KRL2Le8jAgMBAAGjezB5MB0GA1UdDgQWBBRJJljvheyfKr9neNplhIMIFx25QjAf
+BgNVHSMEGDAWgBQI0Zv55tVkcKDxaxqe7VLa3fVQQzAJBgNVHRMEAjAAMCwGA1Ud
+EQQlMCOBDWdvb2RAZ29vZC5vcmeBDGFueUBnb29kLmNvbYcEwKgAATANBgkqhkiG
+9w0BAQsFAAOCAQEAPfRFkpkTsPlH54n/i3kxR8Hw17kUOV0/v39fnNzV+PXS/IIU
+9OFfP7qNeuoWVQKXCwNWGWYXb7O0LNJMJQWWtyXtzWH3rOSxdSRIrTsCVHA41Lbo
+te2nrfnGMtg6em51Do6Kk0JM304sVAWl5OY/eckBmuDgN/5WfZudOLd8Ohv8vZ6U
+ZNoSBNpu1x5gfEPywMUGAgbkNZVpzNAfulx3/D2kWk0qwEKqnphUyaXiTVqO49gr
+n1LwSVdqBcmapBmEO3puV4TBWFwM49iMMNGn0fp/JBVsLjt+q7TK96qGBo/BSEL+
+e2TXTNpdkn3l+ZK2FYdf7s8fytoe+6o92dN+fA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt6-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt6-key.pem
new file mode 100644
index 000000000..782d69334
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt6-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDl46xhstHmmYhp
+XY/FcnQStR4XHtHcNRyvq1perl0fezeCY85KkddGppic5qIWQDL4ViP3HfvhMlDZ
+E0tAjEfr8Auac9gpa2IFVJAzMnnzOkhO6cr5kmid4392tNCG5sUWS99t2Z4f9sOP
+DQKdoN7lnmxnpZqNf9NUERsN5i4fcvErfQZ4LqV5ld810ZAQZUfarn1rg6/U/ADc
+qA0uQgk9RxVgSDt3M5mi8AaC73Be9nAefXQUybzs6J8EfsDijhD85msxs4Fha4pg
+gM+bXHv9C7whxM5F2WTeET0cIcAfE3+jzQlkjcjlS1rTEq4d0Pd+1rXkhMwZeze2
+KRL2Le8jAgMBAAECggEBAMcDjTTa2GmYWoZUr+UPizqyvsTnMmg/NoFBhy9WJVne
+kpR3kJvvm30XNiEGbCV1GGryL5p7w5UVuPXjhQ7xIkY3feQNC4H361iP93HK7dXJ
+i9V9AfGCdLzSuILsT2Wpm88MifUQIpqrRmqtqakKHkyMFG655409rpYlZNVogl9H
+vzrTE8rjysNMjP+bpbgkxUJfeATw8OYhEwd9ahj/E0r0r2enYhGEP3j+1zYsGdmM
+L2Uy4M+modaAWpZg5pUWpFjxl+V2cSJHdaQc8KYg8Z8RUyzYipFk3YzjP5jtprq5
+dHf9FqlcXk+MtzcYe+x8mIb3uwZhOtdpnUqe5l+GTyECgYEA9j++rS9sajQzMqp0
+p+EptacD/p7A3wldIDGEpPJsSQL+vhcigyn4iPCM1pGWR4iuR7Od9RpQSf3Tfnqc
+ZwUJQOpiYpxo1+QlqlBJkDjDRztp+kETZAgzc084ZhwQv9PfYyxa+8layQFhnClt
+Z9G0o4AV1povVeQLO5+9CQZQ4VMCgYEA7v4WuydzlLGKppsJEG8vvieR64mjOfO4
+gHBMEYnzEeTZPDvIfEfguM1upJCvt5GXp3huVHCAsFgs6kDjVbpIL1A2HzrMPtOa
+MNDSOrpuLcakAgEgx2VFv4TMnA1QKPg3//YCqEqqTJyX0C4OwaADRZJS7YfHp9lg
+mpv90baE8PECgYAv3oxulj15F9SsEL7Es9yr11/La4kK0oMr8vRaLFYoi1CCG3U2
+Ej6iQEDgpUSVe1iFz8DxGMBq4dDvUV5+GFiIKggeK1GmRk+cICdsxdwQSNh9MZFX
+bNCzpb7M+r+2yrUuTj0RnT7svDwBY3xFJlr7PbcBFNAG3mHgoVjaHEQ0yQKBgHbS
+zepvSv/65bzACFmrbklU0zAQVp9RlcIGE0wFEl0rMvbHon5oHkrDmOcpKLRUJtqU
+/gXtiY4jyPEPIfhVjd44OzB7w2DZRChRKrUYS/9ma9SzSuDYcT0vgat00w4Lm4wf
+fGK//Lvqf3B59cw/CmFkxuZiQ9ooMees9x11adOBAoGBAMdb0r8sAtgh+KTbA8Kq
+guIWiknOk6/LYUTuT3fidPIPbErrUQQR9WWHuXjrj2RyHI/RLjYLFamikvhU7PmE
+jPjPAo4p1a0WBwrYgjGDIRjTVjbUK282vuYkunGWYfgnZurAyjJCndL/eNZuX2F5
+m1rTfab8O+tOOGKGyzfouD2A
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt7-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt7-cert.pem
new file mode 100644
index 000000000..4fa81b3c6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt7-cert.pem
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDtjCCAp6gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0
+IE5DIENBIDEwIBcNMTgwNTE2MDMyNzA5WhgPMjExODA1MTcwMzI3MDlaMIGmMTsw
+OQYDVQQKHjIAQgBhAGQAIABOAEMAIABUAGUAcwB0ACAAQwBlAHIAdABpAGYAaQBj
+AGEAdABlACAANzElMCMGA1UEAx4cAG8AdABoAGUAcgAuAGcAbwBvAGQALgBvAHIA
+ZzEdMBsGA1UEAx4UAEoAbwBlACAAQgBsAG8AZwBnAHMxITAfBgNVBAMeGABhAG4A
+eQAuAGcAbwBvAGQALgBjAG8AbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAOG4PegItzkmJDwlSA/FyVHWLWUIQrnxgS0KSds3On2CMsjDJ+X77B4s1IPI
+yKHuqNbXqV/hJGAxKnZRZe0D6VsmKlYOYpz9QtFxvpo5DwA3q6BTx6sIElFn/lip
+Pbu5ZeIMNeN4bot7x5sBobr6OgidAVaAuqQHHJnD7mQ1s22qY0UqkBqNBhhJWOmx
+YC0Q56WDi9+C7Cy2+kiiSlT4jCZ8m1K0F7tTK5mF0p4HppXmXLzcecZ/Sw8jOqQK
+JM/4UCj/nxWCGYKWkv8zLJtG+ryfZMf15/0Cd1dzHAS9mYU4mFssPdFyT+WFpw7b
+K3TOTXkS/tAPbj0xin2wqBJz8m8CAwEAAaN7MHkwHQYDVR0OBBYEFOWYNq+H1LH6
+lZUpgijb/S/sAiDsMB8GA1UdIwQYMBaAFAjRm/nm1WRwoPFrGp7tUtrd9VBDMAkG
+A1UdEwQCMAAwLAYDVR0RBCUwI4ENZ29vZEBnb29kLm9yZ4EMYW55QGdvb2QuY29t
+hwTAqAABMA0GCSqGSIb3DQEBCwUAA4IBAQAwUxnqq0gBgKmEHIRgZVu10KtOknjt
+p/wEcqQ9METvXb+4/a4U6ftjTgaOrPVjamNFlaoUcTgx2nk2zRsjM+e+tpnxDgRR
+/yoVB3HsISpdeN70s/WYAgvev/FdV3O+JWhUYHdKrDB4DMfPhlRIfSgOymJljo6+
+wL8qa7lVonF91Im4SCbq4dqtAnbg4ttblQ3yjFfQtuwzyJD/3ism6FQPLbg1K4eu
+1Si0EDL4Fct581Gb5D+NU8PYiwg7Nk8ubNlRHXydoVGDLmT0hLE+/IsPd1M8tMqm
+sifRl2Is+lGVeg4pPHFjB0npTNkaYafu89dz/3PNRRr5If06B+apk4AX
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt7-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt7-key.pem
new file mode 100644
index 000000000..b453f1ff3
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt7-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDhuD3oCLc5JiQ8
+JUgPxclR1i1lCEK58YEtCknbNzp9gjLIwyfl++weLNSDyMih7qjW16lf4SRgMSp2
+UWXtA+lbJipWDmKc/ULRcb6aOQ8AN6ugU8erCBJRZ/5YqT27uWXiDDXjeG6Le8eb
+AaG6+joInQFWgLqkBxyZw+5kNbNtqmNFKpAajQYYSVjpsWAtEOelg4vfguwstvpI
+okpU+IwmfJtStBe7UyuZhdKeB6aV5ly83HnGf0sPIzqkCiTP+FAo/58VghmClpL/
+MyybRvq8n2TH9ef9AndXcxwEvZmFOJhbLD3Rck/lhacO2yt0zk15Ev7QD249MYp9
+sKgSc/JvAgMBAAECggEAZG2cJawTEXtV7ejMii//Jck8g1JMlfzM86Q7Pizxejw+
+qjKiguI2qSpbF5NzKRFNz+E+e+lpTN8zPFd1GSJ/Zk2x0n4uBBlu7E9GdcnjUb5z
+Py9njEJYHB4//WS3kdmoag3ywBWqYaceJWpxcga5YXGx0bIO2MJNSGDzpWR7Q9QQ
+tG/lWmno5goY2BxI08BTKSlqNIBkg/rr9jJo3axRcEmbx7hj4vUkAlypFKtmR4dW
+bNo0f6VAd5Y6c9YbnKybR/44lScBksuSkZjm076cbbbp5PpsiLGe/12bqUcwCH+T
+8hRVndmOLdOxC11OZOvMbX6x2uXNh3/Qr/GMyfzZcQKBgQD4we7E9vOygk1J5Vbl
+1zETR9x3dujpBBx3xaHXUSJNUTNwmnZ+0JoFTqPkRmmPMNK7XfZuPymBehtk8WYt
+NnezM2UNTdbfVOnJWnU6igRNGBaDW6F9AezlADBNwIbFVw6RqP4fTUFsmm9TQ/8M
+4kZmmlW4uLZyX0WQO+AJa7NShwKBgQDoSpnQgmWqXMcaHwY2l8fEDuDc41nDoJIm
+/CMppPbr7GkUX4OU785p6E0N0o1ONt+xCBT1lxHwWEeMAKZXrNC1XGpfvhpVZ72v
+VruATDFs1rcL3S2Sty7A+jhFKKXlGeDWNcpaKY8nDvv2uJG0+J3bLprdMqnY/gQ1
+C+FzyQ6S2QKBgDnHIaRSD6xoo3cEc7iS0O0/ha+hyNtGfy46kyqlx6fZsm73EYrG
+/N86ssp0qFP/7RJj8rcMqKFQMUiy4R6jRg4zY8dBSyU4XczM2+mq4PDfJWuBPvMA
+HXvbHV0R2LvBSrr+W3f9w7Jr9GuMoZLmg5+VPU/YZ1gNVOT5Y0IM5+vFAoGBANx9
+CzlGvLeTrw1VS3GAaobn1Hr2dlrhTDki9UFvK03PLgK/ksdJRLV0YcdwBt6p6XRB
+hpuC1O087lSuvTXVfJnZacMNUDOm7/7BpeJm8DcuK7tgKwTrSb61A7ppleY7xRWv
+Iy6n6hCaAYIzuWJ85mGJAEhb8apdmqK7bzmXK3UpAoGBALdOvJfqbF0YlHbdQCVi
+ftjtxs/dZKdF1rNARR0VMqUtZX+WP2b6OPXlwux94Cr//iNv5ih3B4Z4LIgTpgBJ
+AKGXEBGMMthAlptC4BcOAEs9cYeWGLAoYk8jpNmXvXjhGqvzhPO2YrX5xy46dVOG
+iiCseyA7Kr8Axt9QhUzoi5f7
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt8-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt8-cert.pem
new file mode 100644
index 000000000..205606026
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt8-cert.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDgjCCAmqgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAZMRcwFQYDVQQDDA5UZXN0
+IE5DIHN1YiBDQTAgFw0xNjA3MDkxNDQ4MTFaGA8yMTE2MDcxMDE0NDgxMVowUDEi
+MCAGA1UECgwZQmFkIE5DIFRlc3QgQ2VydGlmaWNhdGUgODEVMBMGA1UEAwwMd3d3
+Lmdvb2QuY29tMRMwEQYDVQQDDApKb2UgQmxvZ2dzMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAp5T7voqwIiauadaESOe4RMhRVU9tHp5JZlz1yJ7ZYF81
+PJJ9XfERTCJQow3BNRbVeXEyI4mvMMcuFwd5cKqy/gP5yfEV01QbpqACKhIK90Nj
+9fM2QOiYE81FmvQzP6j7QFYt0E6J4kupvj0D8Z2Nri0kXDGe5+hbgLPkZvnh0vvJ
+Ck7AEQ2iqO4Npe4uHoDx3GXNo2Jb6BKNf+nMsJPLo7sqUuZA0/mFDVPNRvKfiq6b
+ObFUdbY/qPVPHk9VBWZuO9etk35G2yTSQ9KiGRNgcoWQAozAyLRx0yECHZEbrZ5J
+JFuPXO/r7saqNuV7L8UpR0Z0SpyXKs7suLGBpYnO/wIDAQABo4GbMIGYMB0GA1Ud
+DgQWBBRkrc1ZEOlR+93o/6EPrgFeM37AsjAfBgNVHSMEGDAWgBTwU4mH3VYZwBnm
+IFVvC/wUFdejsjAJBgNVHRMEAjAAMEsGA1UdEQREMEKCD3d3dy5vay5nb29kLmNv
+bYIMd3d3Lmdvb2QubmV0gQ1nb29kQGdvb2Qub3JngQxhbnlAZ29vZC5jb22HBMCo
+AAEwDQYJKoZIhvcNAQELBQADggEBAJ/gHSUGV0LahCqlFzhi4iP5JTleZlhsqOQd
+S2I6KV24gC+Hz4NHv4XhYv9mqZbivNSpf6+TV+77wcncfmkeAGqYMVXVt8DlJ7co
+NiKJZu3e2InmhLm5b6cYRidPhPEM7qYpxIhjpia1v7U83nNWvwEITmC0H0Qp3Cuf
+dv1EjAyGZsER05jBsy0qqH/64+djqd92zKNKCEaWXkTlC1XE+/PbEb94X8YbQaUn
+/wpvioqQ5rv+Bk2Jss23DDh0zOdWrCbKPc9BfsWCfLZYfOAyn5iH1vNdCVd85ggJ
+YyHBQ4JiF/uqkHZ7iQJ1QinJIJruAsC0BV0S3mdGgGQAmTT3m84=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt8-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt8-key.pem
new file mode 100644
index 000000000..1b5cfbce4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt8-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCnlPu+irAiJq5p
+1oRI57hEyFFVT20enklmXPXIntlgXzU8kn1d8RFMIlCjDcE1FtV5cTIjia8wxy4X
+B3lwqrL+A/nJ8RXTVBumoAIqEgr3Q2P18zZA6JgTzUWa9DM/qPtAVi3QToniS6m+
+PQPxnY2uLSRcMZ7n6FuAs+Rm+eHS+8kKTsARDaKo7g2l7i4egPHcZc2jYlvoEo1/
+6cywk8ujuypS5kDT+YUNU81G8p+Krps5sVR1tj+o9U8eT1UFZm47162TfkbbJNJD
+0qIZE2ByhZACjMDItHHTIQIdkRutnkkkW49c7+vuxqo25XsvxSlHRnRKnJcqzuy4
+sYGlic7/AgMBAAECggEAEnrYZAOxNqLjWuKABfYfmN4qMeknVFgKKhKYO/5gZEM7
+gKl6z7A0wxuJnuF2a99PvSuhZs/ZFNzyFTIKz0TTpjVUB1Phn0NIJVDBzFffA7NX
+w5iFZBUCKDTbtyG0wRFmW4rlVHJEvEKxvjvGQo+oPwvVVaFXL6Ws6X1s83oc0AIs
+U3NKt8Q69o5pMHUo4Cv8Lgv41J2dfmxqf81FPLPl8NO+E5zV8OKT1AEisYh98P8R
+l7E6qWdPVv8hbqmtpXx2rDvUdooaNZPBczjbb/b6zdqxkR3Weu6xBFKTIJAsb7hi
+QI/DNxRTKnlDt8QFZi37KwkXAtSIQb7rjZ2OVOGfgQKBgQDQs5+u1ufRxi65Vw/8
+lkVjuB0L5+2Z58HlNrB8+iXqh9eovph17Y23ADaCUGEgEUyK3SfA2SFaj0C9nGtf
+SgqI2btQQm53sYq/MDNxKf9f0hJ0K0EK0LVyyl4fmGTSexrz+sEYPmp27/RhFSAR
+f+uccT0lI/V1V8NKkSKAK30zvwKBgQDNj7FK/+ER7e1+gE5CWKEimOPys3hd91Il
+2hNWOzllPtOj5C9qayG18XNYZm0+YqQtYZLhV5REMxY2sNtpfMxtqkjUrZnuaqy0
+thhQQP8BRS7eoyOgZ4lAvizsroAqvM9Hqxu7EMspBVLvKDoyGf+L4QsvWB6A7K9q
+4EjDrx00wQKBgCxh1paG6zuoKq2Nfz/W8SC4uaybgOLW71wAWl3pkICkrM8c4S1K
+/HUrXWwvDciVBTMOvvJ6+mXYywrHpenYxA7ARt5Vkkpv/jKUXIw3QzCsavI7dJSJ
+N90Wfhe3/9DnDx9NdxzhwSBT/SNcK7qs+n0Fc9xfHkb7B/Pmk3CwTurfAoGAKlf7
+MXPcLRFR5skPVeNj7fiInCoUFWco6NsvOIginpR+jDgo/EbtPslp9T/EKSGwqBh9
+ZSXhSNstLD7qM6Sdh8mYDxdjqhUXVnJcN8vru5tAuGPqptQtFcUXA/o+NI+IMz8w
+Cyy+bMjH+LPUqRVp6qqE30/LmMsop19kHcsovQECgYEArGQs1WwBCkKCyjAbUOXF
+m7pTgqrVEA/+ACrB2/4lCNgBwRvo2/b23pceEIekfcfzlJnsy0i73Jbh6OV5yk1N
+Glq+druyWBpK6Ao9emVeLWBJVinSB7WMZ2XPPKEUHVQkYSN0rMuBisEa07lai01E
+RxbCxTFtyUMpmWzDwgiwPbM=
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt9-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt9-cert.pem
new file mode 100644
index 000000000..f3d78208e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt9-cert.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDgTCCAmmgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAZMRcwFQYDVQQDDA5UZXN0
+IE5DIHN1YiBDQTAgFw0xNjA3MDkxNDQ4MTJaGA8yMTE2MDcxMDE0NDgxMlowUDEi
+MCAGA1UECgwZQmFkIE5DIFRlc3QgQ2VydGlmaWNhdGUgOTEVMBMGA1UEAwwMd3d3
+Lmdvb2QuY29tMRMwEQYDVQQDDApKb2UgQmxvZ2dzMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEA9Y+SgizcSJ9TIHvJf0k3cnBDWx8xJKurrmpiuvQMl1YY
+lzmI4Qxojr5CRDSvCZh50xtF4CDMXW1MnTtYelFhfSmQ09M6lyfjMF+hrYTFkDMX
+Rz8WhtN6/YP80xuy7NuhsA00/hUJKqsAKT8ggwlf++0e+L0ELiu9dmB46zaxWzr4
+z+DigvrA+O7xrpiD/NscLNK02uIURKPKqlPL5LxUenC9ROFGNAIYJoWzsjxoVD0D
+X4bf0COBRzGlLFUHN4FY8LBwGhTcQ+hvsYn0JbT913daX46BuEkrT2V2plCsFDXz
+TOtKAHEBm/U4slrp1F3CPsXeqdqnB+3Ktaj+UQ5ZRwIDAQABo4GaMIGXMB0GA1Ud
+DgQWBBSauJ1kxBbvxrSyMER4Eh+hEnOo/TAfBgNVHSMEGDAWgBTwU4mH3VYZwBnm
+IFVvC/wUFdejsjAJBgNVHRMEAjAAMEoGA1UdEQRDMEGCDHd3dy5nb29kLmNvbYIO
+b3RoZXIuZ29vZC5jb22BDWdvb2RAZ29vZC5vcmeBDGFueUBnb29kLmNvbYcEwKgA
+ATANBgkqhkiG9w0BAQsFAAOCAQEAGrRJCrSxYLrkJ2MUyaMmJTrhfijIw9ZdYRLx
+lkCeW+i6qIV58JQKZeRQVVRJSUEV9OGWn6/46xZZdZWpJIab0EtoNHlMQoB1xni/
+1D8+gyOdiWy4jgg83arMMulre37T256vOGtNOu7PpDQCoPWCJkb9xuMt3RJrK8N/
+tFYB8TvWATtY/LGzk9Tmm+C7hNxsWx0l+ewxlqdHvpc7xwXuf8u7Ise0JkCDi8NY
+z6BxnUyWJ83G20npGnAWXJoaXNDcY0H75dGni3WcRPTAayboEr4xjR9Xqiu3bzlZ
+eVdPGwLwbgkvj7NDCQDphHl0HseTUToHGJrVj8dbR4lV10gogA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt9-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt9-key.pem
new file mode 100644
index 000000000..873bae8af
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badalt9-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQD1j5KCLNxIn1Mg
+e8l/STdycENbHzEkq6uuamK69AyXVhiXOYjhDGiOvkJENK8JmHnTG0XgIMxdbUyd
+O1h6UWF9KZDT0zqXJ+MwX6GthMWQMxdHPxaG03r9g/zTG7Ls26GwDTT+FQkqqwAp
+PyCDCV/77R74vQQuK712YHjrNrFbOvjP4OKC+sD47vGumIP82xws0rTa4hREo8qq
+U8vkvFR6cL1E4UY0AhgmhbOyPGhUPQNfht/QI4FHMaUsVQc3gVjwsHAaFNxD6G+x
+ifQltP3Xd1pfjoG4SStPZXamUKwUNfNM60oAcQGb9TiyWunUXcI+xd6p2qcH7cq1
+qP5RDllHAgMBAAECggEBAJYazkcOnxUxd0HrCU/qdJ9aqoG//m1ZFxgF5hY76ppz
+wZJnVBmlWSCwgpdo0Pp/nzCBgmQwCFyv3F5ckYgryPkWeHZTr4QImOLQAmesOowb
+/wXJNb7y9UKU9O4jB2usEhko6ZTLTRAs+Ws9MGWJTIgV+ZG5ER4cFLOQ4zl89Es7
+/Z9dQFs4c9SqLfyEY3kbXqSQ2uwbUPvZxk22gEmT1OPJGCLAV/fVIaHlGMwacvDV
+W2xqNd+uhkqm2ym5u/ROKOCg0jNDkbyHvfTaqCuM1um92nV5kE+JdPiZvAF9XYsf
+BDWCaYZW7b97drptp3LOCCptjNAqXc0PH8inVvqbjnkCgYEA/jK6BnXM4lzlLUPt
+Bzec+poqyS6uUjP81Ug5CRP5kr+H9GkpBT3iUIU73S+F6Tg6YpobiSP4vpp5kB1p
+iZxApte404EtVtOd1M08fx1rQVnyc8RjDENvYQk5hefOg3DrJ28iQzN/c+m8tHfb
+OjBp90PFDGSsVvvQjJlwtB5oj+0CgYEA900sE2hBGpm5jXgER7CaahcDnHp9qSlB
+lsQYDTDu751V11iRyUVUqZ8IzmgOu53vXbuCpfuQO0H2aFhbe16fCk223eLPJHWh
+cGl3FUeLi+uwShMiRWAikMSQ/fUxoOfeal+N+VgiGYZtT7u2s1mpm83/mw3J/gaT
+CQI19A67H4MCgYBX7xZZC8EvgTEqYngJahycuF4asFJPT3qkEVLhqA5KzITscMBm
+9sxmTGC0GC97yR6xY1wpKc9vqCJrTzFmEC5xSOjACcy0X4oWxlSqKHQk7Eep8oLN
+CDrsV3OVteXDpHlEb/ZrRtJNN8s2psuoqnzNs5zjt6PCh2PSb3YEaQyE1QKBgQCp
+6VfzLZotkJkwXdly+B/f7FgK1w4nf7UUxT5RMeG4uD0WbEAeLYhx0lbWmiAlP+oK
+WJ73M9RxIm0OXEbeiLB0/9g4s3Dm9/snpQ6wjCuQwyqoemT9jYOyO5vzINgsWaMz
+Ktv9CVTEfNv2AF8S8vPZnLuV6O9znUjA08gGG2jtyQKBgBisaBV0L3zTllp/KxiN
+rFf3u42XibhfTuiyaJtUDQftkvfW727nE4nTZ9Q7uVXuK4xdmihfA0htsMbHX7Jc
+1R6SzJ8x8T/2HXsiHLubqbANWfOYxYxlvmfZ7/Bv1GhBIq4d7A8a/Eyz34j9w/xs
+C34TbBAlm79KVANPHT+CJoR1
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badcn1-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badcn1-cert.pem
new file mode 100644
index 000000000..3b3bad658
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badcn1-cert.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDQDCCAiigAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0
+IE5DIENBIDEwIBcNMTgwNTE2MDI0MTMyWhgPMjExODA1MTcwMjQxMzJaME4xIzAh
+BgNVBAoMGkdvb2QgTkMgVGVzdCBDZXJ0aWZpY2F0ZSAxMRUwEwYDVQQDDAx3d3cu
+Z29vZC5vcmcxEDAOBgNVBAMMB2JhZC5uZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDN9WI6OyxnW+R98FqrWwMo3JE165bRB8iQOdDP3xE1+bvUMDYh
+8wFR9gfNrKhqXubJ3lCHKgaApTXNKM/jwrT/pqhF6iNfPIbKAMTT4VZPy4/eI45R
+03Yn+dJnZLDz7BDpnuhORp8XzQqfxSGBX0Rdr17xYOwGHcruwoitRyS/w8p8EKos
+/LIDvjzye5GaPXqXkAkcBcLBpWlgMm+j8xE+LzGw1NVw8vWMSpP2WX9kp7aPbh+A
+jSbT522yHy1r6WeElbSY7WOFvnmgbZ19pUdyz8CN6KKb87dBA0joyWSly5ZsNbjh
+/YuRhCgRExvdQ6kImwdKAfO7RLkxho6jny1HAgMBAAGjXjBcMB0GA1UdDgQWBBT5
+fenRjyFKUb1XvUnm4GV9kZmONDAfBgNVHSMEGDAWgBQI0Zv55tVkcKDxaxqe7VLa
+3fVQQzAJBgNVHRMEAjAAMA8GA1UdEQQIMAaHBMCoAAEwDQYJKoZIhvcNAQELBQAD
+ggEBACKtfZCcP/pY8Bu+lb/pGZj5txsmNbJ1l2RVACQA7CGjwfUr7VaQGMuT+FuA
+Erlh+UnEC3R/e1xQwgJeuAXBOWFkxA61isVSrmM7YM6vDB0+t8N9lMUFjPbRyEkM
+A5kaSLPrgSOg7ONsO6YGbaWm1XCoUC6Ilrdzy+ckzklgjYRth99b2d5WrjIxEWIq
+BX2DI2ruetjXYGRzsqSK+O9d4fsqrb5M0ZCNWQZ4WnrMNaAeHWpW6NqSvof/N21x
+WC5zcU7GXLrDigwWPMDLQhVtu4OihWjsqugh6Jl7DxDBhi8JKO6tJQAISHjKaL98
+yXZFsQ//q7ATwlcHyB81B+X16AI=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badcn1-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badcn1-key.pem
new file mode 100644
index 000000000..dbcf4b5d4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/badcn1-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDN9WI6OyxnW+R9
+8FqrWwMo3JE165bRB8iQOdDP3xE1+bvUMDYh8wFR9gfNrKhqXubJ3lCHKgaApTXN
+KM/jwrT/pqhF6iNfPIbKAMTT4VZPy4/eI45R03Yn+dJnZLDz7BDpnuhORp8XzQqf
+xSGBX0Rdr17xYOwGHcruwoitRyS/w8p8EKos/LIDvjzye5GaPXqXkAkcBcLBpWlg
+Mm+j8xE+LzGw1NVw8vWMSpP2WX9kp7aPbh+AjSbT522yHy1r6WeElbSY7WOFvnmg
+bZ19pUdyz8CN6KKb87dBA0joyWSly5ZsNbjh/YuRhCgRExvdQ6kImwdKAfO7RLkx
+ho6jny1HAgMBAAECggEBAKDxiUHx7cATShm0ElZnd6+dtQfKwv8zsuIpm+hk62Ef
+d0zYI+UhrT1sIiryKmV9JaJITOtixtQOxl088D+Obrx8cnC4B84rUTVXpnfgVf9j
+FljDtjpxIZsZmPbc836ZUZoOaICKpVYHD69Mb+NWG+mN2oaLc8VP0L4FXKLzvl7u
+69NQlTPG2CS61BktVqMtWWc/9CvdOwqwVbckyISj9QLUgSXIyB4IP3bjp0RYSpOu
+m3nhuhil1G3c05R4UfiE2d9Er7SBBoQ304ld892YRinSgtZqC1G25uZmWJ3ekAAM
+bg6P0hBd86F/G2TxNdelYrxTazjqZShYi1N48SK6kUECgYEA+51O19Q5XkskD/Dn
+VfaCjSOTFwDlb5ATmVCrJu+13/5IJfmJgWA6xdqfWoqxSOsJzXBEETKWgkahoo4K
+OU1UaBTHEJ588xOpoMzbJkKlb5hPseEQsvu055Ky0euMgmlrALPQQ9e1DUSlowui
+Cq9wCak4dqq9NNs6FMIeGhqczGECgYEA0YxcajJFxPHJsdFCVa4tdy9jgfC64t4Y
+CWDzRfUnuX24ILbW9+olvvoZkMSzoVpiQ9YU8kPJUaOyFrw6jUV5GRHUCMgfkx2Y
+nqe+7aSFmv0Nlo0RMV2PqaOZzlxnG9FzyNE+4PygZqtFhN21b5Idc69k2Ltu7K4J
+J4MG1kMUGqcCgYEA0ttUPEisPtoHgZhntUFczHx4gnmMzH5X/k5876dIqkrFGZXR
+5urGthHtIwpBYZMeZtxjHmpfeRNJ1xjjdnvYdVScMdAvc+ERcSDbsmd9jlR8zNuI
+jAWl576nPoX//TXspu0JZiE5p8HUcRuJkxzMbjwyhje1Ubs6JDU81rFgn2ECgYAG
+3WVNqVX1zMIBzEwzCGC+7dOBt0Q4GHSLIhz2JsDlZ8P3dmX2ezo/Vmwt/POxjod3
+l3TaNvRKc2VrL0FvzV3ZP2dF3mCCbk7Iq9AqcuBZon6mdvqgNmN1eEGarBZIqAT2
+CDzaHAyZMHU3lBfUjuHeH1nba9CHenAcVkOME2h+MwKBgQDiHAnTK4ovCNmT5E9i
+03x/wPSH8FZ3Wrb1GMtNlTc7lOtB5eYIvwkaloJkNKHbUDv57V66hnYT6CyH4u45
+dPtuohtafL9mdScYqmicGLtbLLglSQpJYt4J59hffNZ30E84dKXtyDN7E5P5Z00Z
+8PbOMUy3oK6j+GMP/xRNI76RtA==
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca+anyEKU.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca+anyEKU.pem
new file mode 100644
index 000000000..36ed837cf
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca+anyEKU.pem
@@ -0,0 +1,18 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIC7DCCAdSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNQME4wHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wDQYJ
+KoZIhvcNAQELBQADggEBADnZ9uXGAdwfNC3xuERIlBwgLROeBRGgcfHWdXZB/tWk
+IM9ox88wYKWynanPbra4n0zhepooKt+naeY2HLR8UgwT6sTi0Yfld9mjytA8/DP6
+AcqtIDDf60vNI00sgxjgZqofVayA9KShzIPzjBec4zI1sg5YzoSNyH28VXFstEpi
+8CVtmRYQHhc2gDI9MGge4sHRYwaIFkegzpwcEUnp6tTVe9ZvHawgsXF/rCGfH4M6
+uNO0D+9Md1bdW7382yOtWbkyibsugqnfBYCUH6hAhDlfYzpba2Smb0roc6Crq7HR
+5HpEYY6qEir9wFMkD5MZsWrNRGRuzd5am82J+aaHz/4wCDAGBgRVHSUA
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca+clientAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca+clientAuth.pem
new file mode 100644
index 000000000..bb940076b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca+clientAuth.pem
@@ -0,0 +1,18 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIC7DCCAdSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNQME4wHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wDQYJ
+KoZIhvcNAQELBQADggEBADnZ9uXGAdwfNC3xuERIlBwgLROeBRGgcfHWdXZB/tWk
+IM9ox88wYKWynanPbra4n0zhepooKt+naeY2HLR8UgwT6sTi0Yfld9mjytA8/DP6
+AcqtIDDf60vNI00sgxjgZqofVayA9KShzIPzjBec4zI1sg5YzoSNyH28VXFstEpi
+8CVtmRYQHhc2gDI9MGge4sHRYwaIFkegzpwcEUnp6tTVe9ZvHawgsXF/rCGfH4M6
+uNO0D+9Md1bdW7382yOtWbkyibsugqnfBYCUH6hAhDlfYzpba2Smb0roc6Crq7HR
+5HpEYY6qEir9wFMkD5MZsWrNRGRuzd5am82J+aaHz/4wDDAKBggrBgEFBQcDAg==
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca+serverAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca+serverAuth.pem
new file mode 100644
index 000000000..a07c7771d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca+serverAuth.pem
@@ -0,0 +1,18 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIC7DCCAdSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNQME4wHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wDQYJ
+KoZIhvcNAQELBQADggEBADnZ9uXGAdwfNC3xuERIlBwgLROeBRGgcfHWdXZB/tWk
+IM9ox88wYKWynanPbra4n0zhepooKt+naeY2HLR8UgwT6sTi0Yfld9mjytA8/DP6
+AcqtIDDf60vNI00sgxjgZqofVayA9KShzIPzjBec4zI1sg5YzoSNyH28VXFstEpi
+8CVtmRYQHhc2gDI9MGge4sHRYwaIFkegzpwcEUnp6tTVe9ZvHawgsXF/rCGfH4M6
+uNO0D+9Md1bdW7382yOtWbkyibsugqnfBYCUH6hAhDlfYzpba2Smb0roc6Crq7HR
+5HpEYY6qEir9wFMkD5MZsWrNRGRuzd5am82J+aaHz/4wDDAKBggrBgEFBQcDAQ==
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-anyEKU.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-anyEKU.pem
new file mode 100644
index 000000000..241d7b498
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-anyEKU.pem
@@ -0,0 +1,18 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIC7DCCAdSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNQME4wHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wDQYJ
+KoZIhvcNAQELBQADggEBADnZ9uXGAdwfNC3xuERIlBwgLROeBRGgcfHWdXZB/tWk
+IM9ox88wYKWynanPbra4n0zhepooKt+naeY2HLR8UgwT6sTi0Yfld9mjytA8/DP6
+AcqtIDDf60vNI00sgxjgZqofVayA9KShzIPzjBec4zI1sg5YzoSNyH28VXFstEpi
+8CVtmRYQHhc2gDI9MGge4sHRYwaIFkegzpwcEUnp6tTVe9ZvHawgsXF/rCGfH4M6
+uNO0D+9Md1bdW7382yOtWbkyibsugqnfBYCUH6hAhDlfYzpba2Smb0roc6Crq7HR
+5HpEYY6qEir9wFMkD5MZsWrNRGRuzd5am82J+aaHz/4wCKAGBgRVHSUA
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert-768.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert-768.pem
new file mode 100644
index 000000000..0c8ff2944
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert-768.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICRDCCASygAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDMyMDA2MjcyN1oYDzIxMTYwMzIxMDYyNzI3WjANMQswCQYDVQQD
+DAJDQTB8MA0GCSqGSIb3DQEBAQUAA2sAMGgCYQC3wNLc1A9gAjz1H94ozPrLOhE2
+R8c6RQjkUIALCOuw8xbZV+AEDSqP11Bw8MVzvmpksR9s1idJhLOugwMNTHfTXJjV
+DWoQh9ofR51J5sOph4yDhQBXRmiuvqMDj+a81UkCAwEAAaNQME4wHQYDVR0OBBYE
+FKrzei/LKJop6yShiJupKskW0ZQcMB8GA1UdIwQYMBaAFI71Ja8em2uEPXyAmslT
+nE1y96NSMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFr4hjVtLuZz
+gxLILAOREEtanckfnapUrhTLukog9Q8uzqMUE+YDEhkcP4YAVjcab6HaXrbcxXsn
+zn+v+GPszD9G3doGbUjuwEEAHz+k/9sjsn8QAGw/XslYhd5dktaRRCqaTNiWT+Ks
+xKntAsgXcgWNIpvGikzTB/W7IrjIV8/S1JjLABtoY88tFUX81Ohr3bFFsRc9EHVS
+MtGnEwfoBOSlCUjaTWBNHHi1HstK9sG2SNT/nhN1HATk/aiCiQRKr/bm6ezPC2If
+6mRidaNiQN8+vzvtn86BqtRJOEi8jj5CBax6IqwfE+lDZIwT7H9C9Cu8Yp4mTM0x
+wwzRDnFVisM=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert-768i.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert-768i.pem
new file mode 100644
index 000000000..acc432fad
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert-768i.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICSjCCAdSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDMyMDA2MjcyN1oYDzIxMTYwMzIxMDYyNzI3WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNQME4wHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFFjzE/eu8wvKwzb2aODw52C+0gLVMAwGA1UdEwQFMAMBAf8wDQYJ
+KoZIhvcNAQELBQADYQCZM1sSpIyjyuGirBYvezFryUq5EyZiME3HIHJ7AbmquPtE
+LcoE8lwxEYXl7OTbLZHxIKkt6+WX2TL/0yshJLq/42nh5DZwyug7fIITmkzmzidF
+rbnl7fIop7OJX/kELbY=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert-md5-any.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert-md5-any.pem
new file mode 100644
index 000000000..7c2b53f5d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert-md5-any.pem
@@ -0,0 +1,18 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIC7DCCAdSgAwIBAgIBAjANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDMyMDA2MjcyN1oYDzIxMTYwMzIxMDYyNzI3WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNQME4wHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wDQYJ
+KoZIhvcNAQEEBQADggEBACTmLO0KOkXFNjj6hXozC9GzQYMXdCfNmgMuetk8xdVm
+TqkF/qIGK2FBWn91IH0/9ydZbL83EKjPjqjwqzXqExJ0Un+fy7XbYMKtjGJ21egJ
+x97jzKey5phEwRD/4fJ+PCml9eE/SNzBV0xKSDq4qQYvSJ3GF6KCATVlr0bDzQJZ
+yTY3FeNoy+K7Mb0rHtsGru60C/Ft1dl9uiJ+yKXMiCxPcDjYb+95mA9QJ1kXfR8J
+JVfeKhEEK+QIVpz/37aQ4jx/zbGblFsruALK22aLnpgrfUzrsYQ8W8T/DV2dV1ra
+4wHz/QtlE4isInOaK2+pvXwyGar+1/s3+VxXEiPlZ7IwCDAGBgRVHSUA
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert-md5.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert-md5.pem
new file mode 100644
index 000000000..be564ddd1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert-md5.pem
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC7DCCAdSgAwIBAgIBAjANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDMyMDA2MjcyN1oYDzIxMTYwMzIxMDYyNzI3WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNQME4wHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wDQYJ
+KoZIhvcNAQEEBQADggEBACTmLO0KOkXFNjj6hXozC9GzQYMXdCfNmgMuetk8xdVm
+TqkF/qIGK2FBWn91IH0/9ydZbL83EKjPjqjwqzXqExJ0Un+fy7XbYMKtjGJ21egJ
+x97jzKey5phEwRD/4fJ+PCml9eE/SNzBV0xKSDq4qQYvSJ3GF6KCATVlr0bDzQJZ
+yTY3FeNoy+K7Mb0rHtsGru60C/Ft1dl9uiJ+yKXMiCxPcDjYb+95mA9QJ1kXfR8J
+JVfeKhEEK+QIVpz/37aQ4jx/zbGblFsruALK22aLnpgrfUzrsYQ8W8T/DV2dV1ra
+4wHz/QtlE4isInOaK2+pvXwyGar+1/s3+VxXEiPlZ7I=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert.pem
new file mode 100644
index 000000000..f6bc23302
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert.pem
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC7DCCAdSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNQME4wHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wDQYJ
+KoZIhvcNAQELBQADggEBADnZ9uXGAdwfNC3xuERIlBwgLROeBRGgcfHWdXZB/tWk
+IM9ox88wYKWynanPbra4n0zhepooKt+naeY2HLR8UgwT6sTi0Yfld9mjytA8/DP6
+AcqtIDDf60vNI00sgxjgZqofVayA9KShzIPzjBec4zI1sg5YzoSNyH28VXFstEpi
+8CVtmRYQHhc2gDI9MGge4sHRYwaIFkegzpwcEUnp6tTVe9ZvHawgsXF/rCGfH4M6
+uNO0D+9Md1bdW7382yOtWbkyibsugqnfBYCUH6hAhDlfYzpba2Smb0roc6Crq7HR
+5HpEYY6qEir9wFMkD5MZsWrNRGRuzd5am82J+aaHz/4=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert2.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert2.pem
new file mode 100644
index 000000000..561ffb27b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-cert2.pem
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC7DCCAdSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOsBxQ3RD9TDABcU
+Uddp+r5s2pLcA/IUN8MnH2PoemxgfJUKfWm+t0VR2mFqyiSeym1V1TkDnuhzui1Y
+ftOuiN1qVs0s6xBcU0+S9vWzYIu5SFTkOgB5APYamCLfbDw3xFTQvRs55UfR+yof
+T/sN6Enq6AhptqnJ/eYVX9EuLTDwV55Kptb4gv9JQs6v01aEHzJ9KGlK2zKpS9Am
+E67xNkwPeXwbzDdqXgr2a+aSrZjtHUfOsV5gZwH8XPAY0kFmrwhHIJsYZInsZhFo
+nil/9pMB8gHFU2EHq3LXbs4GUouQoIf+m3OmgeHCI+t7nAfQgU94FJzq+r6p4WxQ
+KI7cotkCAwEAAaNQME4wHQYDVR0OBBYEFAFonW/5R1NkYk6W28NxJdMyTlCtMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wDQYJ
+KoZIhvcNAQELBQADggEBAJIyn7fl5QppxeRmCLhj18Ic+Nft5LMCvaOkv9HNctL+
+f1Qe2RgtdrMbHpYykXYrOI4KDt4LhLLInGjXNgV+lp8tSi/ok26wNIpwjf68bfP+
+nWNHi2Lt0Eeo9Wpq2VqdsHct98VvBXyuLysbThEJVbrLRsgvBWxdEzbf5RnwdWd5
+ZTDQyHgP1/gabl+AyvDFne101IyEA3i90NBhQ8NmSNn4ShTTrerbZSiWhy4eQEzo
+PeWfUVERV28/0D4XIt/fFuF3M/0RbEgKq2wlDMCT8+W/hWmcZsdyt4xSyiGyjh9Y
+ldYmdyOrlfOGVzkZ63GTOAC68SNVCXJg3cOmfEczkRw=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-clientAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-clientAuth.pem
new file mode 100644
index 000000000..838c70ee3
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-clientAuth.pem
@@ -0,0 +1,18 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIC7DCCAdSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNQME4wHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wDQYJ
+KoZIhvcNAQELBQADggEBADnZ9uXGAdwfNC3xuERIlBwgLROeBRGgcfHWdXZB/tWk
+IM9ox88wYKWynanPbra4n0zhepooKt+naeY2HLR8UgwT6sTi0Yfld9mjytA8/DP6
+AcqtIDDf60vNI00sgxjgZqofVayA9KShzIPzjBec4zI1sg5YzoSNyH28VXFstEpi
+8CVtmRYQHhc2gDI9MGge4sHRYwaIFkegzpwcEUnp6tTVe9ZvHawgsXF/rCGfH4M6
+uNO0D+9Md1bdW7382yOtWbkyibsugqnfBYCUH6hAhDlfYzpba2Smb0roc6Crq7HR
+5HpEYY6qEir9wFMkD5MZsWrNRGRuzd5am82J+aaHz/4wDKAKBggrBgEFBQcDAg==
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-expired.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-expired.pem
new file mode 100644
index 000000000..5be60fa34
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-expired.pem
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC6jCCAdKgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMB4XDTE2MDExNTA4MTk0OVoXDTE2MDExNDA4MTk0OVowDTELMAkGA1UEAwwC
+Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCWnaQ9AEscX8bL3Y/S
+MbKIFczEhixc4mmLhPSno1PfkeO/UYn78HwQDTutrDVidfV///RuVI8FppIjs59Z
+OdA5GLAQQN5ic4pOsI7f3OfJQSJUhIAIKbw1PIbfMN7dtCT/fmKlwHroKhY/1pfa
+xULbL2lkkcsI11ZaeX8bhEHpTZ13CRCobCkzRMbAVGXm6OPydQVqZJVswPT9JWFu
+SDbwwAMHBdZ85RH9GOhKLdNyDDcoNjExOIXocY3YAknIvBmJxYqxP6I16qqQHGRo
+e69naloGVA9Q4fm09r461M4/Hkx9xncyPqJY7dvddNiSFGqo98s0WJGofBSxfQiz
+TbFHAgMBAAGjUDBOMB0GA1UdDgQWBBS0ETPx1+Je91OeICIQT4YGvx/JXjAfBgNV
+HSMEGDAWgBSO9SWvHptrhD18gJrJU5xNcvejUjAMBgNVHRMEBTADAQH/MA0GCSqG
+SIb3DQEBCwUAA4IBAQAW1MwF8Rfcgj6zHutqzzt7RQB5GT1b/vJNzgUyGTRK9kch
+HOw7rM9WpfP1cMEjhLwGJEZkHPb0DA8rZ4uFERuoZky04/vTum0GgLXmlnSTaAk5
+ImJyJn9aFR+sbD6QyfkSmQk9yS48AHom62IfA9yVwQStq3HvI038oVEb2IO5TE+L
+CTX8dVFl4ZgYMVWTLYGzvECCvM42enR9QT0yp+9k8dZ9DcGzknZouoDd1BC2u05V
+TJIviKNZMA/UEsON5QL02h25r1YRNlegeC4zl1DbJXXhJfDiacMZD7AA6NWMdwlk
+7jDeEHIItT7V/x0NWllSqSPPZIsuyuuwFNmLZHfw
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-key-768.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-key-768.pem
new file mode 100644
index 000000000..7aea5eda1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-key-768.pem
@@ -0,0 +1,13 @@
+-----BEGIN PRIVATE KEY-----
+MIIB5QIBADANBgkqhkiG9w0BAQEFAASCAc8wggHLAgEAAmEAt8DS3NQPYAI89R/e
+KMz6yzoRNkfHOkUI5FCACwjrsPMW2VfgBA0qj9dQcPDFc75qZLEfbNYnSYSzroMD
+DUx301yY1Q1qEIfaH0edSebDqYeMg4UAV0Zorr6jA4/mvNVJAgMBAAECYQCJAsu3
+QJ9eNQ0CsQpTXdO6aMegs5CHkCX7J1Lx52rl+7uTv4QXQUH1EtS2AbEYhmdGzMFN
+ZlBrg1vDsW/yn02NZzvT6xT/kvzFhQVw1i8B0YyB8wPao3f2ZxPkAfeoAAECMQDa
+6VkNYlHgPOlTtwU1WYUirFczpipQsuk/lIf7B3+rVRUHoAE4nbeIRJgkKZaJEAEC
+MQDW4pYsyN79HEqFpOFlfsrERw3y4hLRXGeHxbfJFdAe7SUfNj28ZI2EPFE0DJhX
+RUkCMA39M2+jhM/rlI2A+Jg8LEHW+YuXZsTZagZiG35zMDlmqn1eQDW5/mx61a4Z
+6kDAAQIwIlbZWtTK1bX0rsC3iEmny4/zSbIZAb37iXXuNcM3nAmXmhJH8Vg8STp+
+W4v7uE6JAjEAwiB9wCVwG4UhvKNQ4Wd2mfJiKZQNF4rL4ID0g+Wk6kX67c7u2hfH
+sSaluw9nM91s
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-key.pem
new file mode 100644
index 000000000..d84dcd237
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCWnaQ9AEscX8bL
+3Y/SMbKIFczEhixc4mmLhPSno1PfkeO/UYn78HwQDTutrDVidfV///RuVI8FppIj
+s59ZOdA5GLAQQN5ic4pOsI7f3OfJQSJUhIAIKbw1PIbfMN7dtCT/fmKlwHroKhY/
+1pfaxULbL2lkkcsI11ZaeX8bhEHpTZ13CRCobCkzRMbAVGXm6OPydQVqZJVswPT9
+JWFuSDbwwAMHBdZ85RH9GOhKLdNyDDcoNjExOIXocY3YAknIvBmJxYqxP6I16qqQ
+HGRoe69naloGVA9Q4fm09r461M4/Hkx9xncyPqJY7dvddNiSFGqo98s0WJGofBSx
+fQizTbFHAgMBAAECggEABdXHpiFbx5aiUgWca81HGGSX0UlNcK/I3QHipJf8SN4T
+D7dt/Be+BrUsibbxPoZJY5Mb+iZGgDaK1N1BoChQO9YMBCUvOGs3gYLvlhat2Csw
+1Etp1mcfhoR4yS7Qg5BWGpvf4IILgPEYeZKrwWsBAxLcJ2xKjGYjT1ADr6I5F3u+
+FYN+bvlXxr07GccfS+UHt04oT0dHwxQzFaJj+yqKWGo2IFtPqtr6Sgoh9a+yFYIi
+8a9MigTTt+IyJ55OuC/FHRf1PofprftADFts78k43qxWtrxSrQVdlNXp1lpZOtuR
+7gvB/r3a2byDYxCxYVu98tQuOfW909TdDgPmEJjcAQKBgQDHcTYi+zcGKooN3tfK
+Oc6hnFXAYTNpYp074NfIYB8i10CwbvWta1FDoi3iRqlQFwg+pu12UefZsj21F+aF
+v2eGP33kQ6yiXJQ3j7jam7dY+tZ6xb0dthm+X/INuHp/HbSb1qKFmSO2rmMDQg+e
+Crqts9+t5Xk04ewTgpySLZjvRwKBgQDBU85Ls3s8osre5EmVBRd5qBt6ILnjtdoa
+UxrrrWopRx2q3HsI41VhKFx0PGs6ia0c6+9GFR6wX/Qevj85DADbzHDA5XEZq98q
+8yH4lme2Uj2gOlWqyhDeC/g4S+MsbNoIaUOZbMGg/phyAe20HvtvD7MUhZ/2rkta
+U5UjFpouAQKBgQC/+vU+tQ0hTV94vJKBoiWKIX/V4HrprbhmxCdSRVyTYBpv+09X
+8J7X+MwsLRKb+p/AF1UreOox/sYxhOEsy7MuYf2f9Zi+7VjrJtis7gmOiF5e7er+
+J6UeQSMyG+smY4TQIcptyZy8I59Bqpx36CIMRMJClUqYIgTqPubSOzwkzwKBgENB
+9LNBbc5alFmW8kJ10wTwBx8l44Xk7kvaPbNgUV6q7xdSPTuKW1nBwOhvXJ6w5xj4
+u/WVw2d4+mT3qucd1e6h4Vg6em6D7M/0Zg0lxk8XrXjg0ozoX5XgdCqhvBboh7IF
+bQ8jVvm7mS2QnjHb1X196L9q/YvEd1KlYW0jn+ABAoGBAKwArjjmr3zRhJurujA5
+x/+V28hUf8m8P2NxP5ALaDZagdaMfzjGZo3O3wDv33Cds0P5GMGQYnRXDxcZN/2L
+/453f0uUObRwFepuv9HzuvPgkTRGpcLFiIHCThiKdyBgPKoq39qjbAyWQcfmW8+S
+2k24wuH7oUtLlvf05p4cqfEx
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-key2.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-key2.pem
new file mode 100644
index 000000000..6ddf16f92
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-key2.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDrAcUN0Q/UwwAX
+FFHXafq+bNqS3APyFDfDJx9j6HpsYHyVCn1pvrdFUdphasoknsptVdU5A57oc7ot
+WH7TrojdalbNLOsQXFNPkvb1s2CLuUhU5DoAeQD2Gpgi32w8N8RU0L0bOeVH0fsq
+H0/7DehJ6ugIabapyf3mFV/RLi0w8FeeSqbW+IL/SULOr9NWhB8yfShpStsyqUvQ
+JhOu8TZMD3l8G8w3al4K9mvmkq2Y7R1HzrFeYGcB/FzwGNJBZq8IRyCbGGSJ7GYR
+aJ4pf/aTAfIBxVNhB6ty127OBlKLkKCH/ptzpoHhwiPre5wH0IFPeBSc6vq+qeFs
+UCiO3KLZAgMBAAECggEAWrrGLz1llUjrwf1QU5BRBC/WexiCVXXEyY1TKylYCnt9
+3bS9EpRVAWhGnZGzFUxQ7sFSnr5tHWWAnX0rCeK6aHFjrbcH0bszVudwfQ+R2J/h
+8xRh6EjPPDSsQ9pqWR1WqUAloltJz96bz3ljUZPe+Jq+lnDp2sdnROs/oOzo+Zkz
+ZkesMwX+aR9prRhnT60A0UeQXZyDJFrWMCVnaeO3JUI5RvjZ3xdEgi5jj4AiNUvH
+x1k/CApynTvJN4LTFncc6qfnyNH/BU0521WKOcTVCI7tWioRIhiX369xR9qqgRfL
+woifc3UjW1f66eMRTsIeh+smcoG4WkHvmpknVDG74QKBgQD7lOtCRMZr9gKIEWNy
+pwm1sMS91zuJnaVLEHjIc6Glc9TqDlZOGp5KcAgXA8Tm7TblQXJ+QlGjX6RBdRD6
+XTHbQcyCJ/5rUU+2a6BBga++moBp2ugLSjc/YSTpzVTRC9+Lw1dZ5czrn3exozQj
+1/jxdOUVToOomwhpGHoXxVqv3QKBgQDvIlUbvHxrwE8EmBWYjhYZeOTREmzhWNCo
+6p7zibZPvKyfZxzXSonJ+T1k/pxNlkMg3SuhZozOCdhQtQupauRlrQ4Hzw3Vc6gr
+Dv5Qew/UwxB02zWjG2PhAfDV1KQgZAwC1g1TCWwqQcV52g5p0kdUgKaPte1P336l
+YvwmTduNLQKBgQDutNsQEr+OWmsGfjE07Sb6XRIf6qOULJ9UfPmNgKGkoiYoOphL
+HViJ2ojihXIDhppqplGjWPurHylz7kbAt0KB/om0CYyOeSVAOhhhb1K4cFJdnhZD
++BQ5r8vdhzTt8O0X6K3uH2vzOWjRhMAJLngHalmegNPNW+R8C3x1J42nhQKBgF9s
+q9mtlVjKHL4Qkk2WJWt0uppTZ+9kqZ8+QL+eLIoVGC1j0DZ5IBLgyocKswSi+Zab
+q1V0vqtZcmCCXmz0or+QFxE2pqaOyISmLwWeleqpDGAVOYok2+5l/9zURcpHIiPf
+luGT2P3j0RGW2jmQF7a4v76JMnG1FayZm1UNrJbhAoGAGM8s9YbDW2+DaTbbSQbg
+IBmT+8MLjVczRUmv5Yi8y4z/aEGjsM7032LjFRiR1PUTeAnkKLnII5rdbEo96UDb
+OMv8SAH3G4lhfS+lq2TSy+XjlAAIOkiI9xW6Xo/KakIOepDzORzY74ayrxqjiyQv
+uchNPF6GhCMnLZC9AxZs4Fg=
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-name2.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-name2.pem
new file mode 100644
index 000000000..b8bbc807c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-name2.pem
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC7TCCAdWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjAOMQwwCgYDVQQD
+DANDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCWnaQ9AEscX8bL
+3Y/SMbKIFczEhixc4mmLhPSno1PfkeO/UYn78HwQDTutrDVidfV///RuVI8FppIj
+s59ZOdA5GLAQQN5ic4pOsI7f3OfJQSJUhIAIKbw1PIbfMN7dtCT/fmKlwHroKhY/
+1pfaxULbL2lkkcsI11ZaeX8bhEHpTZ13CRCobCkzRMbAVGXm6OPydQVqZJVswPT9
+JWFuSDbwwAMHBdZ85RH9GOhKLdNyDDcoNjExOIXocY3YAknIvBmJxYqxP6I16qqQ
+HGRoe69naloGVA9Q4fm09r461M4/Hkx9xncyPqJY7dvddNiSFGqo98s0WJGofBSx
+fQizTbFHAgMBAAGjUDBOMB0GA1UdDgQWBBS0ETPx1+Je91OeICIQT4YGvx/JXjAf
+BgNVHSMEGDAWgBSO9SWvHptrhD18gJrJU5xNcvejUjAMBgNVHRMEBTADAQH/MA0G
+CSqGSIb3DQEBCwUAA4IBAQCnVQGsqB3UipgBdwnxQMQJxaeo6MUdBs0gc3rFg2e9
+EFoDE92/hX+Ze7YRji6GRDzmRDd/i5gLgn6tMtJZzPPV6pzFsDZ0mB1pHJrObB+q
+nZVjRFpGFcIm1epXjYRssCQepu92DR7ReSsLqFDSmBROAKfYvt3hdN34W8rp5Gnb
+2kxm5F+dJrtDIs0C/3hItBkBmZ69KHqSWq5lmBY7K1cpKU6enZFgJEZ+w3pqAPBI
+jrbxER2qdr4g80hzT9g+YPIlI+PfkGf5jmClugpsJ7ptXEdW1LsdEyZgd2VUZymw
+rcIp4tupJNvgLC18ZcYcyQ6jMPZOfhfGpNlqZ37jI7Yu
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-nonbc.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-nonbc.pem
new file mode 100644
index 000000000..013775b96
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-nonbc.pem
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC6zCCAdOgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDMzMDAwMDE1N1oYDzIxMTYwMzMxMDAwMTU3WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNPME0wHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAsGA1UdDwQEAwIBBjANBgkq
+hkiG9w0BAQsFAAOCAQEAPo7bKKFLbwT3x7dw+OPZMDxwyG1pk5x+5SD7iv45mOzS
+5lZ2ByaOH+jnjTfG6beNmTCbfq6RcHqTvD6LXYex5z9KliIL9Fpwh507uGDXmKDN
+lM0zmbYhXiWGRwP5NkbB/EppbiSk42l5/ky4gmCH/a9kQfiBW+Gwe3aBwRX6v+5p
+BLwH12YrM46DdEL4RHd2H/9rjSaX4X3aaZd9kZsf/yaOU65iQX15cNDfxkKncYQK
+K+xjT2S/NLcwslkPzQLCWeWZVBV4Vd+TEjjZA1tFpu5e1oNlJYvGbqjIuUurpoxv
+IhsVUfWJEf7KjpFy+kgPyijNYRUBFrMspdb6x771RQ==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-nonca.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-nonca.pem
new file mode 100644
index 000000000..cdb2cd186
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-nonca.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDDTCCAfWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNxMG8wHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAkGA1UdEwQCMAAwEwYDVR0l
+BAwwCgYIKwYBBQUHAwEwDQYDVR0RBAYwBIICQ0EwDQYJKoZIhvcNAQELBQADggEB
+AL/aEy4Nk2W2UQNi/0h9MLkiq4J5IkjUocJp4grPUsdUJKu68GFYgWnJSBZjKMhs
+X390IUWrRJ8C7SJtyGOhbh2E6Zn7TveI77Mnw2CZpGhy+xieqTFmaIIWJgZVzaTT
+3hMhnXImn06k8eJiJiQQAHKr9XKDK9HIiESyBpujIW5hI7wrklkn0asl6DwiXcUw
+AuXqNffWpomWI4ZZceOJkr5dSFM9HyksQi4uzj0qYTDyDHJ6BLuGYWbUoB64pnKF
+wCn0cPOmbo866l0XqzJlxQYPvwOicAptX8jTjSpYsx5SLripS4KwyfxbGy5If8mT
+X4st+BN48+n9wHuDQJ97sBs=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-root2.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-root2.pem
new file mode 100644
index 000000000..28d9854c6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-root2.pem
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC7DCCAdSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNQME4wHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFJzOZkIwqxwIJl9zGW3fD6euWFIeMAwGA1UdEwQFMAMBAf8wDQYJ
+KoZIhvcNAQELBQADggEBAEqhb/i7hTJ9l/UdLm9fgm4QYmNb1OMWyCU84y5QI/Rj
+uHueaHLy6zEWHTavz9m4VcQpu8hblxFG+4CWWr92QjSYwTsyi578k7Ju5jNzvZQ5
+RnVAL+eeaTVa/7mazmqYzOHgyE4IpljX1MOd0QDpUjRGuNLoWfKXeXn7ul44r3ry
+1hDMwmc3SS3XMzJ9Wl6k5SjKObbkMc8e0WjhhAwGjw3lODa5nj2xGf6W/Ikr/XTp
+pnVjYsm+jxHoj+qmMgmXa1h11wdFCPUl15V1qq4R4rcS5zR8YxKUGZRo1R839geW
+w4G8ytKRsapdFi165mOXZUumyHpJ8i43SEvYlcJux0I=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-serverAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-serverAuth.pem
new file mode 100644
index 000000000..f10155d99
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ca-serverAuth.pem
@@ -0,0 +1,18 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIC7DCCAdSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNQME4wHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wDQYJ
+KoZIhvcNAQELBQADggEBADnZ9uXGAdwfNC3xuERIlBwgLROeBRGgcfHWdXZB/tWk
+IM9ox88wYKWynanPbra4n0zhepooKt+naeY2HLR8UgwT6sTi0Yfld9mjytA8/DP6
+AcqtIDDf60vNI00sgxjgZqofVayA9KShzIPzjBec4zI1sg5YzoSNyH28VXFstEpi
+8CVtmRYQHhc2gDI9MGge4sHRYwaIFkegzpwcEUnp6tTVe9ZvHawgsXF/rCGfH4M6
+uNO0D+9Md1bdW7382yOtWbkyibsugqnfBYCUH6hAhDlfYzpba2Smb0roc6Crq7HR
+5HpEYY6qEir9wFMkD5MZsWrNRGRuzd5am82J+aaHz/4wDKAKBggrBgEFBQcDAQ==
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca+anyEKU.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca+anyEKU.pem
new file mode 100644
index 000000000..46ee9fae6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca+anyEKU.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDATCCAemgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNlMGMwHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wEwYD
+VR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAB6mihrap7ByLl3w
+P/0XsqMvOkxCxoWTeI0cEwbxSpUXfMTE24oIQJiqIyHO6qeSRgSywk/DTU0uJWOB
+Idr6dPI6wPrS4jvFqcgoFH1OPjAJCpl5CuCJEH8gB3LJ4dNfj+O7shT0XeI+R1vw
+gp+fJ8v6jX4y8Nk/Bcy748dC1HZhMWHxQblzjRu8Xmd6lDiMskoWE2JAwgRK7b3M
+dCpuTCHMTsdCspwBUvQ4gNYNP5IURE+09DBtEBQicN/1RHyRZOw7YGs5ZOdc5mRe
+O5E+WHE1xiJ0QwUu2co55PFlukidWXx7LE02foNaNm+rw4OUTrzsqmmgkp1qqAab
+ap/RSXgwCDAGBgRVHSUA
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca+clientAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca+clientAuth.pem
new file mode 100644
index 000000000..0b857eece
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca+clientAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDATCCAemgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNlMGMwHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wEwYD
+VR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAB6mihrap7ByLl3w
+P/0XsqMvOkxCxoWTeI0cEwbxSpUXfMTE24oIQJiqIyHO6qeSRgSywk/DTU0uJWOB
+Idr6dPI6wPrS4jvFqcgoFH1OPjAJCpl5CuCJEH8gB3LJ4dNfj+O7shT0XeI+R1vw
+gp+fJ8v6jX4y8Nk/Bcy748dC1HZhMWHxQblzjRu8Xmd6lDiMskoWE2JAwgRK7b3M
+dCpuTCHMTsdCspwBUvQ4gNYNP5IURE+09DBtEBQicN/1RHyRZOw7YGs5ZOdc5mRe
+O5E+WHE1xiJ0QwUu2co55PFlukidWXx7LE02foNaNm+rw4OUTrzsqmmgkp1qqAab
+ap/RSXgwDDAKBggrBgEFBQcDAg==
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca+serverAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca+serverAuth.pem
new file mode 100644
index 000000000..38a0bdb83
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca+serverAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDATCCAemgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNlMGMwHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wEwYD
+VR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAB6mihrap7ByLl3w
+P/0XsqMvOkxCxoWTeI0cEwbxSpUXfMTE24oIQJiqIyHO6qeSRgSywk/DTU0uJWOB
+Idr6dPI6wPrS4jvFqcgoFH1OPjAJCpl5CuCJEH8gB3LJ4dNfj+O7shT0XeI+R1vw
+gp+fJ8v6jX4y8Nk/Bcy748dC1HZhMWHxQblzjRu8Xmd6lDiMskoWE2JAwgRK7b3M
+dCpuTCHMTsdCspwBUvQ4gNYNP5IURE+09DBtEBQicN/1RHyRZOw7YGs5ZOdc5mRe
+O5E+WHE1xiJ0QwUu2co55PFlukidWXx7LE02foNaNm+rw4OUTrzsqmmgkp1qqAab
+ap/RSXgwDDAKBggrBgEFBQcDAQ==
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca-anyEKU.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca-anyEKU.pem
new file mode 100644
index 000000000..cb3e70894
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca-anyEKU.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDATCCAemgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNlMGMwHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wEwYD
+VR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAB6mihrap7ByLl3w
+P/0XsqMvOkxCxoWTeI0cEwbxSpUXfMTE24oIQJiqIyHO6qeSRgSywk/DTU0uJWOB
+Idr6dPI6wPrS4jvFqcgoFH1OPjAJCpl5CuCJEH8gB3LJ4dNfj+O7shT0XeI+R1vw
+gp+fJ8v6jX4y8Nk/Bcy748dC1HZhMWHxQblzjRu8Xmd6lDiMskoWE2JAwgRK7b3M
+dCpuTCHMTsdCspwBUvQ4gNYNP5IURE+09DBtEBQicN/1RHyRZOw7YGs5ZOdc5mRe
+O5E+WHE1xiJ0QwUu2co55PFlukidWXx7LE02foNaNm+rw4OUTrzsqmmgkp1qqAab
+ap/RSXgwCKAGBgRVHSUA
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca-cert.pem
new file mode 100644
index 000000000..6bccc4cce
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca-cert.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDATCCAemgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNlMGMwHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wEwYD
+VR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAB6mihrap7ByLl3w
+P/0XsqMvOkxCxoWTeI0cEwbxSpUXfMTE24oIQJiqIyHO6qeSRgSywk/DTU0uJWOB
+Idr6dPI6wPrS4jvFqcgoFH1OPjAJCpl5CuCJEH8gB3LJ4dNfj+O7shT0XeI+R1vw
+gp+fJ8v6jX4y8Nk/Bcy748dC1HZhMWHxQblzjRu8Xmd6lDiMskoWE2JAwgRK7b3M
+dCpuTCHMTsdCspwBUvQ4gNYNP5IURE+09DBtEBQicN/1RHyRZOw7YGs5ZOdc5mRe
+O5E+WHE1xiJ0QwUu2co55PFlukidWXx7LE02foNaNm+rw4OUTrzsqmmgkp1qqAab
+ap/RSXg=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca-clientAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca-clientAuth.pem
new file mode 100644
index 000000000..0b857eece
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca-clientAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDATCCAemgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNlMGMwHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wEwYD
+VR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAB6mihrap7ByLl3w
+P/0XsqMvOkxCxoWTeI0cEwbxSpUXfMTE24oIQJiqIyHO6qeSRgSywk/DTU0uJWOB
+Idr6dPI6wPrS4jvFqcgoFH1OPjAJCpl5CuCJEH8gB3LJ4dNfj+O7shT0XeI+R1vw
+gp+fJ8v6jX4y8Nk/Bcy748dC1HZhMWHxQblzjRu8Xmd6lDiMskoWE2JAwgRK7b3M
+dCpuTCHMTsdCspwBUvQ4gNYNP5IURE+09DBtEBQicN/1RHyRZOw7YGs5ZOdc5mRe
+O5E+WHE1xiJ0QwUu2co55PFlukidWXx7LE02foNaNm+rw4OUTrzsqmmgkp1qqAab
+ap/RSXgwDDAKBggrBgEFBQcDAg==
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca-serverAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca-serverAuth.pem
new file mode 100644
index 000000000..46cbce05a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cca-serverAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDATCCAemgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNlMGMwHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wEwYD
+VR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAB6mihrap7ByLl3w
+P/0XsqMvOkxCxoWTeI0cEwbxSpUXfMTE24oIQJiqIyHO6qeSRgSywk/DTU0uJWOB
+Idr6dPI6wPrS4jvFqcgoFH1OPjAJCpl5CuCJEH8gB3LJ4dNfj+O7shT0XeI+R1vw
+gp+fJ8v6jX4y8Nk/Bcy748dC1HZhMWHxQblzjRu8Xmd6lDiMskoWE2JAwgRK7b3M
+dCpuTCHMTsdCspwBUvQ4gNYNP5IURE+09DBtEBQicN/1RHyRZOw7YGs5ZOdc5mRe
+O5E+WHE1xiJ0QwUu2co55PFlukidWXx7LE02foNaNm+rw4OUTrzsqmmgkp1qqAab
+ap/RSXgwDKAKBggrBgEFBQcDAQ==
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/client-ed25519-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/client-ed25519-cert.pem
new file mode 100644
index 000000000..5cd01f669
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/client-ed25519-cert.pem
@@ -0,0 +1,32 @@
+-----BEGIN CERTIFICATE-----
+MIICJjCCAQ6gAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDDAJDQTAg
+Fw0xNzA2MTgxNjMzMjBaGA8yMTE3MDYxOTE2MzMyMFowGTEXMBUGA1UEAwwOQ2xp
+ZW50LUVkMjU1MTkwKjAFBgMrZXADIQDWm1IkIasMcyVYSiKuFl6zZMRM4x7h/Qbf
+fmpdgcM8/6N9MHswHQYDVR0OBBYEFDAIOfJie9HYZehOjFLE+amS8RH7MB8GA1Ud
+IwQYMBaAFLQRM/HX4l73U54gIhBPhga/H8leMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwIwGQYDVR0RBBIwEIIOQ2xpZW50LUVkMjU1MTkwDQYJKoZIhvcN
+AQELBQADggEBAFvF2AWOELLBafWwmemtFALQcJbXndS8QyBAkBSPwIp6Q8Oledeh
+gynamdc+66c5Ozdl4lNknXPGVGcNaW0RmlkqcqSMksuL11OGba0iIZkiUU2QPA07
+BRunnV4/pgFsy0ewYKEdaSplyfoBoIJwuxPHL1ExlzAmhSYWYYOFMgD302Be4dXr
+pm0c4hj1XcJmtsD5wBcBCRrvOj+uCdqIwtWgdwo6poqzsO1AofuAgsjE9WWyi/NQ
+ule8nVKIVbwVFP8/dI240v0RF1VLyE+8lPf2nYuFAXbzL/8MRwJeeFVIYNiy+51B
+10ZVx5WtbbMjbr7e+xSU5jIAPZQS0r/4M8U=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC7DCCAdSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNQME4wHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wDQYJ
+KoZIhvcNAQELBQADggEBADnZ9uXGAdwfNC3xuERIlBwgLROeBRGgcfHWdXZB/tWk
+IM9ox88wYKWynanPbra4n0zhepooKt+naeY2HLR8UgwT6sTi0Yfld9mjytA8/DP6
+AcqtIDDf60vNI00sgxjgZqofVayA9KShzIPzjBec4zI1sg5YzoSNyH28VXFstEpi
+8CVtmRYQHhc2gDI9MGge4sHRYwaIFkegzpwcEUnp6tTVe9ZvHawgsXF/rCGfH4M6
+uNO0D+9Md1bdW7382yOtWbkyibsugqnfBYCUH6hAhDlfYzpba2Smb0roc6Crq7HR
+5HpEYY6qEir9wFMkD5MZsWrNRGRuzd5am82J+aaHz/4=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/client-ed25519-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/client-ed25519-key.pem
new file mode 100644
index 000000000..3f673b311
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/client-ed25519-key.pem
@@ -0,0 +1,3 @@
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwBQYDK2VwBCIEINZzpIpIiXXsKx4M7mUr2cb+DMfgHyu2msRAgNa5CxJJ
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/client-ed448-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/client-ed448-cert.pem
new file mode 100644
index 000000000..3d6d5e87c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/client-ed448-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICQDCCASigAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE4MDIyNzE3MTAxN1oYDzIxMTgwMjI4MTcxMDE3WjAXMRUwEwYDVQQD
+DAxDbGllbnQtRWQ0NDgwQzAFBgMrZXEDOgB4bFbdmw9IviAHXKt/2/hRDaiEr6JH
+bsLr3IPNQq3XIYxYh4AIPx3YffYW3xukHDGWTQ50dptQiwCjezB5MB0GA1UdDgQW
+BBTEno3ezhmTYZzGdD65nVRMp3f2hzAfBgNVHSMEGDAWgBSO9SWvHptrhD18gJrJ
+U5xNcvejUjAJBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMCMBcGA1UdEQQQ
+MA6CDENsaWVudC1FZDQ0ODANBgkqhkiG9w0BAQsFAAOCAQEAP2/y30iko57i8lUY
+ju9Vb4V0TCATKa+HNnzHG1jyWAgiWpPtHe269Cnb8AvdwWKVeppKkG6LeWHo3btP
+LOd8xEFhnklM4rPkxMYMCQ0lcw2xagbw3CW12mLs15N3QCjxSnA/kuuftzor9fRl
+gzazVh4Kf/jXtlRyBI6R4+bXSGgKhIipdBF5xWmTPvZBViWKxgysQuP1bNzw9AC4
+QMGm4ApOVuY9iE8dPYKgJUVGWc3d9l23fkd422kEgz5euK66HovjYaBj0S0kZhEZ
+tWUCRTcv4k40ke2jr8/Zm3Ugab09XWU2T98k/OvXu+Y0AlLMZp2ehC6wXObprEXv
+dY5URg==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/client-ed448-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/client-ed448-key.pem
new file mode 100644
index 000000000..ab4d7ff3d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/client-ed448-key.pem
@@ -0,0 +1,4 @@
+-----BEGIN PRIVATE KEY-----
+MEcCAQAwBQYDK2VxBDsEOWmRn7GCRupyB1q/qQZ+h1lEt+TGtZSNJ5U+Saa+X+hk
+gWpeKJP9MTpw7kdMAeAhb6XlhCANH2zV9A==
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot+anyEKU.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot+anyEKU.pem
new file mode 100644
index 000000000..88ce120df
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot+anyEKU.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDBjCCAe6gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo2UwYzAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAQEAi/mR+SIa
+bs1egGRRSAzqu4KkrOG1vGVQNj0XfHn1WeAdmwEAjNi+llErpkMyY08Cjb/3fiQc
+6H9CA36utf/Ym84OQOY64m4C1Kikxw8EHudoPNvSWQAFEpCk5gs6rCJEnj9QolL3
+32IvZQ1m+GcrjGg976PccEaM7S362kTj+kcAswmS8iJmDAJ2b+ghHTFrFQS4GAw7
+XOcqQbinx9ntGn135VsJLOXKveYvQSD7sHKCd4RFrFTSEwWmtBL96vRXmTV5wTAr
+tpkKKKw5N9CiHnbhNyVrSRiLCzVDTpYQDaBJhb7XOsHi+/HOzmbK6LHe0Lt1nP+k
+4PR8O0S5WC0PlzAIMAYGBFUdJQA=
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot+clientAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot+clientAuth.pem
new file mode 100644
index 000000000..aa45a06ba
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot+clientAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDBjCCAe6gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo2UwYzAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAQEAi/mR+SIa
+bs1egGRRSAzqu4KkrOG1vGVQNj0XfHn1WeAdmwEAjNi+llErpkMyY08Cjb/3fiQc
+6H9CA36utf/Ym84OQOY64m4C1Kikxw8EHudoPNvSWQAFEpCk5gs6rCJEnj9QolL3
+32IvZQ1m+GcrjGg976PccEaM7S362kTj+kcAswmS8iJmDAJ2b+ghHTFrFQS4GAw7
+XOcqQbinx9ntGn135VsJLOXKveYvQSD7sHKCd4RFrFTSEwWmtBL96vRXmTV5wTAr
+tpkKKKw5N9CiHnbhNyVrSRiLCzVDTpYQDaBJhb7XOsHi+/HOzmbK6LHe0Lt1nP+k
+4PR8O0S5WC0PlzAMMAoGCCsGAQUFBwMC
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot+serverAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot+serverAuth.pem
new file mode 100644
index 000000000..35647691e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot+serverAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDBjCCAe6gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo2UwYzAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAQEAi/mR+SIa
+bs1egGRRSAzqu4KkrOG1vGVQNj0XfHn1WeAdmwEAjNi+llErpkMyY08Cjb/3fiQc
+6H9CA36utf/Ym84OQOY64m4C1Kikxw8EHudoPNvSWQAFEpCk5gs6rCJEnj9QolL3
+32IvZQ1m+GcrjGg976PccEaM7S362kTj+kcAswmS8iJmDAJ2b+ghHTFrFQS4GAw7
+XOcqQbinx9ntGn135VsJLOXKveYvQSD7sHKCd4RFrFTSEwWmtBL96vRXmTV5wTAr
+tpkKKKw5N9CiHnbhNyVrSRiLCzVDTpYQDaBJhb7XOsHi+/HOzmbK6LHe0Lt1nP+k
+4PR8O0S5WC0PlzAMMAoGCCsGAQUFBwMB
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot-anyEKU.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot-anyEKU.pem
new file mode 100644
index 000000000..50fffbfee
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot-anyEKU.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDBjCCAe6gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo2UwYzAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAQEAi/mR+SIa
+bs1egGRRSAzqu4KkrOG1vGVQNj0XfHn1WeAdmwEAjNi+llErpkMyY08Cjb/3fiQc
+6H9CA36utf/Ym84OQOY64m4C1Kikxw8EHudoPNvSWQAFEpCk5gs6rCJEnj9QolL3
+32IvZQ1m+GcrjGg976PccEaM7S362kTj+kcAswmS8iJmDAJ2b+ghHTFrFQS4GAw7
+XOcqQbinx9ntGn135VsJLOXKveYvQSD7sHKCd4RFrFTSEwWmtBL96vRXmTV5wTAr
+tpkKKKw5N9CiHnbhNyVrSRiLCzVDTpYQDaBJhb7XOsHi+/HOzmbK6LHe0Lt1nP+k
+4PR8O0S5WC0PlzAIoAYGBFUdJQA=
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot-cert.pem
new file mode 100644
index 000000000..f3459f4c9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot-cert.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDBjCCAe6gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo2UwYzAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAQEAi/mR+SIa
+bs1egGRRSAzqu4KkrOG1vGVQNj0XfHn1WeAdmwEAjNi+llErpkMyY08Cjb/3fiQc
+6H9CA36utf/Ym84OQOY64m4C1Kikxw8EHudoPNvSWQAFEpCk5gs6rCJEnj9QolL3
+32IvZQ1m+GcrjGg976PccEaM7S362kTj+kcAswmS8iJmDAJ2b+ghHTFrFQS4GAw7
+XOcqQbinx9ntGn135VsJLOXKveYvQSD7sHKCd4RFrFTSEwWmtBL96vRXmTV5wTAr
+tpkKKKw5N9CiHnbhNyVrSRiLCzVDTpYQDaBJhb7XOsHi+/HOzmbK6LHe0Lt1nP+k
+4PR8O0S5WC0Plw==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot-clientAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot-clientAuth.pem
new file mode 100644
index 000000000..78456413e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot-clientAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDBjCCAe6gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo2UwYzAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAQEAi/mR+SIa
+bs1egGRRSAzqu4KkrOG1vGVQNj0XfHn1WeAdmwEAjNi+llErpkMyY08Cjb/3fiQc
+6H9CA36utf/Ym84OQOY64m4C1Kikxw8EHudoPNvSWQAFEpCk5gs6rCJEnj9QolL3
+32IvZQ1m+GcrjGg976PccEaM7S362kTj+kcAswmS8iJmDAJ2b+ghHTFrFQS4GAw7
+XOcqQbinx9ntGn135VsJLOXKveYvQSD7sHKCd4RFrFTSEwWmtBL96vRXmTV5wTAr
+tpkKKKw5N9CiHnbhNyVrSRiLCzVDTpYQDaBJhb7XOsHi+/HOzmbK6LHe0Lt1nP+k
+4PR8O0S5WC0PlzAMoAoGCCsGAQUFBwMC
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot-serverAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot-serverAuth.pem
new file mode 100644
index 000000000..7e4ffa7d6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/croot-serverAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDBjCCAe6gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo2UwYzAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAQEAi/mR+SIa
+bs1egGRRSAzqu4KkrOG1vGVQNj0XfHn1WeAdmwEAjNi+llErpkMyY08Cjb/3fiQc
+6H9CA36utf/Ym84OQOY64m4C1Kikxw8EHudoPNvSWQAFEpCk5gs6rCJEnj9QolL3
+32IvZQ1m+GcrjGg976PccEaM7S362kTj+kcAswmS8iJmDAJ2b+ghHTFrFQS4GAw7
+XOcqQbinx9ntGn135VsJLOXKveYvQSD7sHKCd4RFrFTSEwWmtBL96vRXmTV5wTAr
+tpkKKKw5N9CiHnbhNyVrSRiLCzVDTpYQDaBJhb7XOsHi+/HOzmbK6LHe0Lt1nP+k
+4PR8O0S5WC0PlzAMoAoGCCsGAQUFBwMB
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic.msb b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic.msb
new file mode 100644
index 000000000..ec58ac9b2
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic.msb
@@ -0,0 +1,83 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ be:47:3c:53:a6:2a:c0:3a
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=RU, ST=\U041C\U043E\U0441\U043A\U0432\U0430, L=\U041C\U043E\U0441\U043A\U0432\U0430, O=\U0414\U043C\U0438\U0442\U0440\U0438\U0439 \U0411\U0435\U043B\U044F\U0432\U0441\U043A\U0438\U0439, OU=\U042F, CN=Dmitry Belyavskiy, emailAddress=beldmit@example.com
+ Validity
+ Not Before: Feb 21 19:35:22 2017 GMT
+ Not After : Mar 23 19:35:22 2017 GMT
+ Subject: C=RU, ST=\U041C\U043E\U0441\U043A\U0432\U0430, L=\U041C\U043E\U0441\U043A\U0432\U0430, O=\U0414\U043C\U0438\U0442\U0440\U0438\U0439 \U0411\U0435\U043B\U044F\U0432\U0441\U043A\U0438\U0439, OU=\U042F, CN=Dmitry Belyavskiy, emailAddress=beldmit@example.com
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public-Key: (2048 bit)
+ Modulus:
+ 00:a4:57:96:36:55:6d:95:21:25:17:f8:85:87:53:
+ ba:bc:d5:9a:d6:dc:21:66:72:30:36:ca:94:43:3c:
+ 37:22:81:31:af:bb:8f:31:df:20:e2:6a:04:ee:12:
+ a1:ea:8c:94:63:84:ab:66:ca:e7:cf:ae:3f:f0:c0:
+ 38:7f:67:a8:bf:f4:8a:70:65:3d:5c:1f:60:0c:6a:
+ 86:b9:68:4f:45:37:0c:89:ef:45:e8:ab:c4:bd:1a:
+ 88:49:05:4b:5f:f4:a2:8d:1c:38:e4:50:54:aa:25:
+ a6:4d:5c:64:eb:1c:31:91:d1:38:f0:b4:82:4c:c4:
+ 58:60:4f:21:95:94:56:16:dc:d9:a7:30:46:54:bc:
+ cd:3a:3f:a4:54:58:a4:ea:0b:b0:7d:72:03:15:49:
+ 52:22:0f:a1:9b:aa:ca:0b:05:c6:ee:0c:0b:f4:58:
+ 0d:4c:1a:71:29:93:db:f7:12:f5:dc:df:01:15:18:
+ 07:d4:e4:f6:e0:c9:a9:09:da:03:23:da:fc:b4:07:
+ f3:86:18:87:1b:db:3f:50:fe:21:7a:9c:c1:00:5d:
+ 93:ec:f1:b9:5f:78:14:57:e1:01:b8:a9:e6:07:fd:
+ d3:77:bb:71:b4:1d:86:65:a8:0a:0a:a3:fe:f9:f5:
+ 83:a5:5c:cd:5d:ea:29:3c:1a:d8:63:6b:c5:c5:3e:
+ b2:d1
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Subject Key Identifier:
+ 11:49:46:19:2A:4E:4D:D1:C8:FB:79:55:3D:81:99:22:EE:34:4F:22
+ X509v3 Authority Key Identifier:
+ keyid:11:49:46:19:2A:4E:4D:D1:C8:FB:79:55:3D:81:99:22:EE:34:4F:22
+
+ X509v3 Basic Constraints:
+ CA:TRUE
+ Signature Algorithm: sha256WithRSAEncryption
+ 04:8f:c3:77:48:06:29:c0:8d:66:2e:6b:48:a3:b3:e0:dd:5b:
+ 0a:e7:a4:0b:7e:72:91:fc:37:29:7f:81:1e:60:66:7b:ba:94:
+ 30:f8:c0:79:56:bc:ed:87:88:d9:bd:d8:7b:dc:1b:87:bb:ef:
+ 15:d0:77:74:59:d7:3f:30:09:71:86:da:d7:d7:50:cb:ef:8f:
+ 34:26:76:b5:0a:de:d0:ce:ca:40:57:86:ce:13:24:2a:9e:97:
+ db:5d:3e:73:8c:24:cc:89:84:42:04:45:62:f9:fd:4b:79:b2:
+ 1b:a0:01:d7:4c:1f:4d:d1:4c:5b:99:0a:27:5e:c9:79:3c:0f:
+ b7:3c:09:db:32:d6:ca:56:91:32:0d:7f:79:94:bc:bc:a8:ba:
+ 54:4b:39:6e:2d:9a:21:77:13:f8:b5:62:5d:a8:8c:c8:8d:ec:
+ 67:6c:14:2d:f6:ce:e6:d3:a6:fa:37:36:5b:31:7a:80:66:83:
+ 02:64:82:c1:ec:bf:38:8e:49:b0:e5:ec:09:9b:80:16:e4:32:
+ 91:4e:72:c4:5f:2d:b3:e9:57:b1:00:36:2d:1a:e9:9f:4a:b1:
+ 1c:d1:ae:fb:15:79:02:0b:14:97:81:ee:42:01:ed:00:58:38:
+ b2:30:89:f2:89:11:b7:03:7c:16:95:30:eb:32:9c:9f:00:e5:
+ 22:12:db:7a
+-----BEGIN CERTIFICATE-----
+MIIEPTCCAyWgAwIBAgIJAL5HPFOmKsA6MA0GCSqGSIb3DQEBCwUAMIG0MQswCQYD
+VQQGEwJSVTEVMBMGA1UECAwM0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQ
+utCy0LAxKjAoBgNVBAoMIdCU0LzQuNGC0YDQuNC5INCR0LXQu9GP0LLRgdC60LjQ
+uTELMAkGA1UECwwC0K8xGjAYBgNVBAMMEURtaXRyeSBCZWx5YXZza2l5MSIwIAYJ
+KoZIhvcNAQkBFhNiZWxkbWl0QGV4YW1wbGUuY29tMB4XDTE3MDIyMTE5MzUyMloX
+DTE3MDMyMzE5MzUyMlowgbQxCzAJBgNVBAYTAlJVMRUwEwYDVQQIDAzQnNC+0YHQ
+utCy0LAxFTATBgNVBAcMDNCc0L7RgdC60LLQsDEqMCgGA1UECgwh0JTQvNC40YLR
+gNC40Lkg0JHQtdC70Y/QstGB0LrQuNC5MQswCQYDVQQLDALQrzEaMBgGA1UEAwwR
+RG1pdHJ5IEJlbHlhdnNraXkxIjAgBgkqhkiG9w0BCQEWE2JlbGRtaXRAZXhhbXBs
+ZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCkV5Y2VW2VISUX
++IWHU7q81ZrW3CFmcjA2ypRDPDcigTGvu48x3yDiagTuEqHqjJRjhKtmyufPrj/w
+wDh/Z6i/9IpwZT1cH2AMaoa5aE9FNwyJ70Xoq8S9GohJBUtf9KKNHDjkUFSqJaZN
+XGTrHDGR0TjwtIJMxFhgTyGVlFYW3NmnMEZUvM06P6RUWKTqC7B9cgMVSVIiD6Gb
+qsoLBcbuDAv0WA1MGnEpk9v3EvXc3wEVGAfU5PbgyakJ2gMj2vy0B/OGGIcb2z9Q
+/iF6nMEAXZPs8blfeBRX4QG4qeYH/dN3u3G0HYZlqAoKo/759YOlXM1d6ik8Gthj
+a8XFPrLRAgMBAAGjUDBOMB0GA1UdDgQWBBQRSUYZKk5N0cj7eVU9gZki7jRPIjAf
+BgNVHSMEGDAWgBQRSUYZKk5N0cj7eVU9gZki7jRPIjAMBgNVHRMEBTADAQH/MA0G
+CSqGSIb3DQEBCwUAA4IBAQAEj8N3SAYpwI1mLmtIo7Pg3VsK56QLfnKR/Dcpf4Ee
+YGZ7upQw+MB5Vrzth4jZvdh73BuHu+8V0Hd0Wdc/MAlxhtrX11DL7480Jna1Ct7Q
+zspAV4bOEyQqnpfbXT5zjCTMiYRCBEVi+f1LebIboAHXTB9N0UxbmQonXsl5PA+3
+PAnbMtbKVpEyDX95lLy8qLpUSzluLZohdxP4tWJdqIzIjexnbBQt9s7m06b6NzZb
+MXqAZoMCZILB7L84jkmw5ewJm4AW5DKRTnLEXy2z6VexADYtGumfSrEc0a77FXkC
+CxSXge5CAe0AWDiyMInyiRG3A3wWlTDrMpyfAOUiEtt6
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic.pem
new file mode 100644
index 000000000..7bf135d4b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic.pem
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEPTCCAyWgAwIBAgIJAL5HPFOmKsA6MA0GCSqGSIb3DQEBCwUAMIG0MQswCQYD
+VQQGEwJSVTEVMBMGA1UECAwM0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQ
+utCy0LAxKjAoBgNVBAoMIdCU0LzQuNGC0YDQuNC5INCR0LXQu9GP0LLRgdC60LjQ
+uTELMAkGA1UECwwC0K8xGjAYBgNVBAMMEURtaXRyeSBCZWx5YXZza2l5MSIwIAYJ
+KoZIhvcNAQkBFhNiZWxkbWl0QGV4YW1wbGUuY29tMB4XDTE3MDIyMTE5MzUyMloX
+DTE3MDMyMzE5MzUyMlowgbQxCzAJBgNVBAYTAlJVMRUwEwYDVQQIDAzQnNC+0YHQ
+utCy0LAxFTATBgNVBAcMDNCc0L7RgdC60LLQsDEqMCgGA1UECgwh0JTQvNC40YLR
+gNC40Lkg0JHQtdC70Y/QstGB0LrQuNC5MQswCQYDVQQLDALQrzEaMBgGA1UEAwwR
+RG1pdHJ5IEJlbHlhdnNraXkxIjAgBgkqhkiG9w0BCQEWE2JlbGRtaXRAZXhhbXBs
+ZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCkV5Y2VW2VISUX
++IWHU7q81ZrW3CFmcjA2ypRDPDcigTGvu48x3yDiagTuEqHqjJRjhKtmyufPrj/w
+wDh/Z6i/9IpwZT1cH2AMaoa5aE9FNwyJ70Xoq8S9GohJBUtf9KKNHDjkUFSqJaZN
+XGTrHDGR0TjwtIJMxFhgTyGVlFYW3NmnMEZUvM06P6RUWKTqC7B9cgMVSVIiD6Gb
+qsoLBcbuDAv0WA1MGnEpk9v3EvXc3wEVGAfU5PbgyakJ2gMj2vy0B/OGGIcb2z9Q
+/iF6nMEAXZPs8blfeBRX4QG4qeYH/dN3u3G0HYZlqAoKo/759YOlXM1d6ik8Gthj
+a8XFPrLRAgMBAAGjUDBOMB0GA1UdDgQWBBQRSUYZKk5N0cj7eVU9gZki7jRPIjAf
+BgNVHSMEGDAWgBQRSUYZKk5N0cj7eVU9gZki7jRPIjAMBgNVHRMEBTADAQH/MA0G
+CSqGSIb3DQEBCwUAA4IBAQAEj8N3SAYpwI1mLmtIo7Pg3VsK56QLfnKR/Dcpf4Ee
+YGZ7upQw+MB5Vrzth4jZvdh73BuHu+8V0Hd0Wdc/MAlxhtrX11DL7480Jna1Ct7Q
+zspAV4bOEyQqnpfbXT5zjCTMiYRCBEVi+f1LebIboAHXTB9N0UxbmQonXsl5PA+3
+PAnbMtbKVpEyDX95lLy8qLpUSzluLZohdxP4tWJdqIzIjexnbBQt9s7m06b6NzZb
+MXqAZoMCZILB7L84jkmw5ewJm4AW5DKRTnLEXy2z6VexADYtGumfSrEc0a77FXkC
+CxSXge5CAe0AWDiyMInyiRG3A3wWlTDrMpyfAOUiEtt6
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic.utf8 b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic.utf8
new file mode 100644
index 000000000..2096e4fb3
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic.utf8
@@ -0,0 +1,83 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ be:47:3c:53:a6:2a:c0:3a
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=RU, ST=МоÑква, L=МоÑква, O=Дмитрий БелÑвÑкий, OU=Я, CN=Dmitry Belyavskiy, emailAddress=beldmit@example.com
+ Validity
+ Not Before: Feb 21 19:35:22 2017 GMT
+ Not After : Mar 23 19:35:22 2017 GMT
+ Subject: C=RU, ST=МоÑква, L=МоÑква, O=Дмитрий БелÑвÑкий, OU=Я, CN=Dmitry Belyavskiy, emailAddress=beldmit@example.com
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public-Key: (2048 bit)
+ Modulus:
+ 00:a4:57:96:36:55:6d:95:21:25:17:f8:85:87:53:
+ ba:bc:d5:9a:d6:dc:21:66:72:30:36:ca:94:43:3c:
+ 37:22:81:31:af:bb:8f:31:df:20:e2:6a:04:ee:12:
+ a1:ea:8c:94:63:84:ab:66:ca:e7:cf:ae:3f:f0:c0:
+ 38:7f:67:a8:bf:f4:8a:70:65:3d:5c:1f:60:0c:6a:
+ 86:b9:68:4f:45:37:0c:89:ef:45:e8:ab:c4:bd:1a:
+ 88:49:05:4b:5f:f4:a2:8d:1c:38:e4:50:54:aa:25:
+ a6:4d:5c:64:eb:1c:31:91:d1:38:f0:b4:82:4c:c4:
+ 58:60:4f:21:95:94:56:16:dc:d9:a7:30:46:54:bc:
+ cd:3a:3f:a4:54:58:a4:ea:0b:b0:7d:72:03:15:49:
+ 52:22:0f:a1:9b:aa:ca:0b:05:c6:ee:0c:0b:f4:58:
+ 0d:4c:1a:71:29:93:db:f7:12:f5:dc:df:01:15:18:
+ 07:d4:e4:f6:e0:c9:a9:09:da:03:23:da:fc:b4:07:
+ f3:86:18:87:1b:db:3f:50:fe:21:7a:9c:c1:00:5d:
+ 93:ec:f1:b9:5f:78:14:57:e1:01:b8:a9:e6:07:fd:
+ d3:77:bb:71:b4:1d:86:65:a8:0a:0a:a3:fe:f9:f5:
+ 83:a5:5c:cd:5d:ea:29:3c:1a:d8:63:6b:c5:c5:3e:
+ b2:d1
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Subject Key Identifier:
+ 11:49:46:19:2A:4E:4D:D1:C8:FB:79:55:3D:81:99:22:EE:34:4F:22
+ X509v3 Authority Key Identifier:
+ keyid:11:49:46:19:2A:4E:4D:D1:C8:FB:79:55:3D:81:99:22:EE:34:4F:22
+
+ X509v3 Basic Constraints:
+ CA:TRUE
+ Signature Algorithm: sha256WithRSAEncryption
+ 04:8f:c3:77:48:06:29:c0:8d:66:2e:6b:48:a3:b3:e0:dd:5b:
+ 0a:e7:a4:0b:7e:72:91:fc:37:29:7f:81:1e:60:66:7b:ba:94:
+ 30:f8:c0:79:56:bc:ed:87:88:d9:bd:d8:7b:dc:1b:87:bb:ef:
+ 15:d0:77:74:59:d7:3f:30:09:71:86:da:d7:d7:50:cb:ef:8f:
+ 34:26:76:b5:0a:de:d0:ce:ca:40:57:86:ce:13:24:2a:9e:97:
+ db:5d:3e:73:8c:24:cc:89:84:42:04:45:62:f9:fd:4b:79:b2:
+ 1b:a0:01:d7:4c:1f:4d:d1:4c:5b:99:0a:27:5e:c9:79:3c:0f:
+ b7:3c:09:db:32:d6:ca:56:91:32:0d:7f:79:94:bc:bc:a8:ba:
+ 54:4b:39:6e:2d:9a:21:77:13:f8:b5:62:5d:a8:8c:c8:8d:ec:
+ 67:6c:14:2d:f6:ce:e6:d3:a6:fa:37:36:5b:31:7a:80:66:83:
+ 02:64:82:c1:ec:bf:38:8e:49:b0:e5:ec:09:9b:80:16:e4:32:
+ 91:4e:72:c4:5f:2d:b3:e9:57:b1:00:36:2d:1a:e9:9f:4a:b1:
+ 1c:d1:ae:fb:15:79:02:0b:14:97:81:ee:42:01:ed:00:58:38:
+ b2:30:89:f2:89:11:b7:03:7c:16:95:30:eb:32:9c:9f:00:e5:
+ 22:12:db:7a
+-----BEGIN CERTIFICATE-----
+MIIEPTCCAyWgAwIBAgIJAL5HPFOmKsA6MA0GCSqGSIb3DQEBCwUAMIG0MQswCQYD
+VQQGEwJSVTEVMBMGA1UECAwM0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQ
+utCy0LAxKjAoBgNVBAoMIdCU0LzQuNGC0YDQuNC5INCR0LXQu9GP0LLRgdC60LjQ
+uTELMAkGA1UECwwC0K8xGjAYBgNVBAMMEURtaXRyeSBCZWx5YXZza2l5MSIwIAYJ
+KoZIhvcNAQkBFhNiZWxkbWl0QGV4YW1wbGUuY29tMB4XDTE3MDIyMTE5MzUyMloX
+DTE3MDMyMzE5MzUyMlowgbQxCzAJBgNVBAYTAlJVMRUwEwYDVQQIDAzQnNC+0YHQ
+utCy0LAxFTATBgNVBAcMDNCc0L7RgdC60LLQsDEqMCgGA1UECgwh0JTQvNC40YLR
+gNC40Lkg0JHQtdC70Y/QstGB0LrQuNC5MQswCQYDVQQLDALQrzEaMBgGA1UEAwwR
+RG1pdHJ5IEJlbHlhdnNraXkxIjAgBgkqhkiG9w0BCQEWE2JlbGRtaXRAZXhhbXBs
+ZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCkV5Y2VW2VISUX
++IWHU7q81ZrW3CFmcjA2ypRDPDcigTGvu48x3yDiagTuEqHqjJRjhKtmyufPrj/w
+wDh/Z6i/9IpwZT1cH2AMaoa5aE9FNwyJ70Xoq8S9GohJBUtf9KKNHDjkUFSqJaZN
+XGTrHDGR0TjwtIJMxFhgTyGVlFYW3NmnMEZUvM06P6RUWKTqC7B9cgMVSVIiD6Gb
+qsoLBcbuDAv0WA1MGnEpk9v3EvXc3wEVGAfU5PbgyakJ2gMj2vy0B/OGGIcb2z9Q
+/iF6nMEAXZPs8blfeBRX4QG4qeYH/dN3u3G0HYZlqAoKo/759YOlXM1d6ik8Gthj
+a8XFPrLRAgMBAAGjUDBOMB0GA1UdDgQWBBQRSUYZKk5N0cj7eVU9gZki7jRPIjAf
+BgNVHSMEGDAWgBQRSUYZKk5N0cj7eVU9gZki7jRPIjAMBgNVHRMEBTADAQH/MA0G
+CSqGSIb3DQEBCwUAA4IBAQAEj8N3SAYpwI1mLmtIo7Pg3VsK56QLfnKR/Dcpf4Ee
+YGZ7upQw+MB5Vrzth4jZvdh73BuHu+8V0Hd0Wdc/MAlxhtrX11DL7480Jna1Ct7Q
+zspAV4bOEyQqnpfbXT5zjCTMiYRCBEVi+f1LebIboAHXTB9N0UxbmQonXsl5PA+3
+PAnbMtbKVpEyDX95lLy8qLpUSzluLZohdxP4tWJdqIzIjexnbBQt9s7m06b6NzZb
+MXqAZoMCZILB7L84jkmw5ewJm4AW5DKRTnLEXy2z6VexADYtGumfSrEc0a77FXkC
+CxSXge5CAe0AWDiyMInyiRG3A3wWlTDrMpyfAOUiEtt6
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic_crl.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic_crl.pem
new file mode 100644
index 000000000..5ba2b2c97
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic_crl.pem
@@ -0,0 +1,13 @@
+-----BEGIN X509 CRL-----
+MIIB6DCB0QIBATANBgkqhkiG9w0BAQsFADCBjjELMAkGA1UEBhMCUlUxFTATBgNV
+BAgMDNCc0L7RgdC60LLQsDELMAkGA1UECgwC0K8xCzAJBgNVBAsMAtCvMSowKAYD
+VQQDDCHQlNC80LjRgtGA0LjQuSDQkdC10LvRj9Cy0YHQutC40LkxIjAgBgkqhkiG
+9w0BCQEWE2JlbGRtaXRAZXhhbXBsZS5jb20XDTE3MDQyNDEzMjUzMVoXDTE3MDUy
+NDEzMjUzMVqgDjAMMAoGA1UdFAQDAgEBMA0GCSqGSIb3DQEBCwUAA4IBAQCF5eX+
+1BM/BxoHU2/3pQHJgPSKevN0/K/daiFHiJl7Kb9GCwKY14B1RvbN2rUP/58Mt+aq
+jvauf1yBzlaJQeJKZcsCmG9p6Tr1y0BJXhrq5kC0SLyNDsfGUTfuxnwmo+clHXRU
++gKuk+h0WkJL022ZYbJ38w588k4NT3CWVHeE23EDC264p942mlDE7en6MyL152Pe
+Ld9YrWiq5iOIOrIbQLErq0EjwxvHG9sMiYFUa6VrwmRf26nyZ7u9RKJDP+o2dltw
+diBaSXC3Qt3pZ8BIfv/l81lwp8Dr63SwCII2pIRplyICdQqmX/a+1q8kThXIP2Kx
++X48g7VE2o2X4cfy
+-----END X509 CRL-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic_crl.utf8 b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic_crl.utf8
new file mode 100644
index 000000000..e55c549d4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/cyrillic_crl.utf8
@@ -0,0 +1,39 @@
+Certificate Revocation List (CRL):
+ Version 2 (0x1)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=RU, ST=МоÑква, O=Я, OU=Я, CN=Дмитрий БелÑвÑкий, emailAddress=beldmit@example.com
+ Last Update: Apr 24 13:25:31 2017 GMT
+ Next Update: May 24 13:25:31 2017 GMT
+ CRL extensions:
+ X509v3 CRL Number:
+ 1
+No Revoked Certificates.
+ Signature Algorithm: sha256WithRSAEncryption
+ 85:e5:e5:fe:d4:13:3f:07:1a:07:53:6f:f7:a5:01:c9:80:f4:
+ 8a:7a:f3:74:fc:af:dd:6a:21:47:88:99:7b:29:bf:46:0b:02:
+ 98:d7:80:75:46:f6:cd:da:b5:0f:ff:9f:0c:b7:e6:aa:8e:f6:
+ ae:7f:5c:81:ce:56:89:41:e2:4a:65:cb:02:98:6f:69:e9:3a:
+ f5:cb:40:49:5e:1a:ea:e6:40:b4:48:bc:8d:0e:c7:c6:51:37:
+ ee:c6:7c:26:a3:e7:25:1d:74:54:fa:02:ae:93:e8:74:5a:42:
+ 4b:d3:6d:99:61:b2:77:f3:0e:7c:f2:4e:0d:4f:70:96:54:77:
+ 84:db:71:03:0b:6e:b8:a7:de:36:9a:50:c4:ed:e9:fa:33:22:
+ f5:e7:63:de:2d:df:58:ad:68:aa:e6:23:88:3a:b2:1b:40:b1:
+ 2b:ab:41:23:c3:1b:c7:1b:db:0c:89:81:54:6b:a5:6b:c2:64:
+ 5f:db:a9:f2:67:bb:bd:44:a2:43:3f:ea:36:76:5b:70:76:20:
+ 5a:49:70:b7:42:dd:e9:67:c0:48:7e:ff:e5:f3:59:70:a7:c0:
+ eb:eb:74:b0:08:82:36:a4:84:69:97:22:02:75:0a:a6:5f:f6:
+ be:d6:af:24:4e:15:c8:3f:62:b1:f9:7e:3c:83:b5:44:da:8d:
+ 97:e1:c7:f2
+-----BEGIN X509 CRL-----
+MIIB6DCB0QIBATANBgkqhkiG9w0BAQsFADCBjjELMAkGA1UEBhMCUlUxFTATBgNV
+BAgMDNCc0L7RgdC60LLQsDELMAkGA1UECgwC0K8xCzAJBgNVBAsMAtCvMSowKAYD
+VQQDDCHQlNC80LjRgtGA0LjQuSDQkdC10LvRj9Cy0YHQutC40LkxIjAgBgkqhkiG
+9w0BCQEWE2JlbGRtaXRAZXhhbXBsZS5jb20XDTE3MDQyNDEzMjUzMVoXDTE3MDUy
+NDEzMjUzMVqgDjAMMAoGA1UdFAQDAgEBMA0GCSqGSIb3DQEBCwUAA4IBAQCF5eX+
+1BM/BxoHU2/3pQHJgPSKevN0/K/daiFHiJl7Kb9GCwKY14B1RvbN2rUP/58Mt+aq
+jvauf1yBzlaJQeJKZcsCmG9p6Tr1y0BJXhrq5kC0SLyNDsfGUTfuxnwmo+clHXRU
++gKuk+h0WkJL022ZYbJ38w588k4NT3CWVHeE23EDC264p942mlDE7en6MyL152Pe
+Ld9YrWiq5iOIOrIbQLErq0EjwxvHG9sMiYFUa6VrwmRf26nyZ7u9RKJDP+o2dltw
+diBaSXC3Qt3pZ8BIfv/l81lwp8Dr63SwCII2pIRplyICdQqmX/a+1q8kThXIP2Kx
++X48g7VE2o2X4cfy
+-----END X509 CRL-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/dhp2048.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/dhp2048.pem
new file mode 100644
index 000000000..9ee474b82
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/dhp2048.pem
@@ -0,0 +1,8 @@
+-----BEGIN DH PARAMETERS-----
+MIIBCAKCAQEAoI0V5HKAcsG4LlAnVJhYnnl2ErOcdvz7WN4n+LoSkZVkfPcPExAF
+uXnT6v16rYfxCgZDPB/tSYaRhOxpJgaAHGA9PrfwprM4xQm9HLIWtidyIGtkgynQ
+rrtxaCculbPOMxc1od7V0jw8/Sj4pdKjijmdvY3VsvuQPu6Lo7qV94u3pYN+WSP9
+ESPcY0lvIV0s0eYxzU5LOU7FZRv6gpe658yxnpaQf13M3sFBqcQEnw+vIjNyaBBK
+Nm4jVFeKCN3aIz+yJL8y14HEnV/tnhtIrr33MAJvsG1qFBY7iFvbvlx/gKDW7qyk
+V0/iN2uElrJZIGxD2uPMZNXO+dci+EriMwIBAg==
+-----END DH PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee+clientAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee+clientAuth.pem
new file mode 100644
index 000000000..850a868ff
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee+clientAuth.pem
@@ -0,0 +1,20 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDDAJDQTAg
+Fw0xNjAxMTUwODE5NTBaGA8yMTE2MDExNjA4MTk1MFowGTEXMBUGA1UEAwwOc2Vy
+dmVyLmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo/4lY
+YYWu3tssD9Vz++K3qBt6dWAr1H08c3a1rt6TL38kkG3JHPSKOM2fooAWVsu0LLuT
+5Rcf/w3GQ/4xNPgo2HXpo7uIgu+jcuJTYgVFTeAxl++qnRDSWA2eBp4yuxsIVl1l
+Dz9mjsI2oBH/wFk1/Ukc3RxCMwZ4rgQ4I+XndWfTlK1aqUAfrFkQ9QzBZK1KxMY1
+U7OWaoIbFYvRmavknm+UqtKW5Vf7jJFkijwkFsbSGb6CYBM7YrDtPh2zyvlr3zG5
+ep5LR2inKcc/SuIiJ7TvkGPX79ByST5brbkb1Ctvhmjd1XMSuEPJ3EEPoqNGT4tn
+iIQPYf55NB9KiR+3AgMBAAGjfTB7MB0GA1UdDgQWBBTnm+IqrYpsOst2UeWOB5gi
+l+FzojAfBgNVHSMEGDAWgBS0ETPx1+Je91OeICIQT4YGvx/JXjAJBgNVHRMEAjAA
+MBMGA1UdJQQMMAoGCCsGAQUFBwMCMBkGA1UdEQQSMBCCDnNlcnZlci5leGFtcGxl
+MA0GCSqGSIb3DQEBCwUAA4IBAQB+x23yjviJ9/n0G65xjntoPCLpsZtqId+WvN/9
+sXGqRZyAnBWPFpWrf9qXdxXZpTw7KRfywnEVsUQP12XKCc9JH4tG4l/wCDaHi9qO
+pLstQskcXk40gWaU83ojjchdtDFBaxR5KxC83SR669Rw9mn66bWz/6zpK9VYohVh
+A5/3RqteQaeQETFbZdlb6e7jAjiGp6DmAiH/WLrVvMY8k0z81TD0+UjJqI9097mF
+VtNX0l+46/tR4zvyA4yYqxK+L8M57SjfwxvwUpDxxVVnRsf3kHhudeAc+UDWzqws
+n5P71o+AfbkYzhHsSFIZyYUnGv+JApFpcGEMEiHL2iBhCRdxMAwwCgYIKwYBBQUH
+AwI=
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee+serverAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee+serverAuth.pem
new file mode 100644
index 000000000..61d03ace4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee+serverAuth.pem
@@ -0,0 +1,20 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDDAJDQTAg
+Fw0xNjAxMTUwODE5NDlaGA8yMTE2MDExNjA4MTk0OVowGTEXMBUGA1UEAwwOc2Vy
+dmVyLmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo/4lY
+YYWu3tssD9Vz++K3qBt6dWAr1H08c3a1rt6TL38kkG3JHPSKOM2fooAWVsu0LLuT
+5Rcf/w3GQ/4xNPgo2HXpo7uIgu+jcuJTYgVFTeAxl++qnRDSWA2eBp4yuxsIVl1l
+Dz9mjsI2oBH/wFk1/Ukc3RxCMwZ4rgQ4I+XndWfTlK1aqUAfrFkQ9QzBZK1KxMY1
+U7OWaoIbFYvRmavknm+UqtKW5Vf7jJFkijwkFsbSGb6CYBM7YrDtPh2zyvlr3zG5
+ep5LR2inKcc/SuIiJ7TvkGPX79ByST5brbkb1Ctvhmjd1XMSuEPJ3EEPoqNGT4tn
+iIQPYf55NB9KiR+3AgMBAAGjfTB7MB0GA1UdDgQWBBTnm+IqrYpsOst2UeWOB5gi
+l+FzojAfBgNVHSMEGDAWgBS0ETPx1+Je91OeICIQT4YGvx/JXjAJBgNVHRMEAjAA
+MBMGA1UdJQQMMAoGCCsGAQUFBwMBMBkGA1UdEQQSMBCCDnNlcnZlci5leGFtcGxl
+MA0GCSqGSIb3DQEBCwUAA4IBAQBBtDxPYULl5b7VFC7/U0NgV8vTJk4zpPnUMMQ4
+QF2AWDFAek8oLKrz18KQ8M/DEhDxgkaoeXEMLT6BJUEVNYuFEYHEDGarl0nMDRXL
+xOgAExfz3Tf/pjsLaha5aWH7NyCSKWC+lYkIOJ/Kb/m/6QsDJoXsEC8AhrPfqJhz
+UzsCoxIlaDWqawH4+S8bdeX0tvs2VtJk/WOJHxMqXra6kgI4fAgyvr2kIZHinQ3y
+cgX40uAC38bwpE95kJ7FhSfQlE1Rt7sOspUj098Dd0RNDn2uKyOTxEqIELHfw4AX
+O3XAzt8qDyho8nEd/xiQ6qgsQnvXa+hSRJw42g3/czVskxRxMAwwCgYIKwYBBQUH
+AwE=
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert-768.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert-768.pem
new file mode 100644
index 000000000..794f93c01
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert-768.pem
@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE-----
+MIICeDCCAWCgAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDDAJDQTAg
+Fw0xNjAzMjAwNjI3MjdaGA8yMTE2MDMyMTA2MjcyN1owGTEXMBUGA1UEAwwOc2Vy
+dmVyLmV4YW1wbGUwfDANBgkqhkiG9w0BAQEFAANrADBoAmEAwCvrPAynx+7VtpFz
+4cWZW3/n3/nMwK4fxkWSB0kbVUhQaYiaQGWEfB4JpRz5rPt8NW5m2aVGT7mMjScu
+8YyFa3IDdpBeQL1n8VQUH3FLySgQHC1bkkzwyzQM8JirCdl/AgMBAAGjfTB7MB0G
+A1UdDgQWBBSRBasp1P/UDCesreviw4Lwz8tFBDAfBgNVHSMEGDAWgBS0ETPx1+Je
+91OeICIQT4YGvx/JXjAJBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMBkG
+A1UdEQQSMBCCDnNlcnZlci5leGFtcGxlMA0GCSqGSIb3DQEBCwUAA4IBAQB5xled
+do7U++n86KmJDGnXd4XMpr1QbTFVSO7fhSiObeGm961re/TI7AhuLlsZYP601YhZ
+pRe9B7tiEuzu3iCD4kKB0yxgUCSsF0u1KbHSUNe2H5bBJC21c2eLZh6U54y014nL
+gFSDOsA8M1301+Hlh5AS+4iTR0Ra02RaZb3L5HCR2wtkJubh3rSj8eBzb6fx+Lhw
+JoeRg34lhycGC4bBVwkRT8bo73Nrs71JUP2A6/PjdsIfF2rtVMEuIq8AMQ5wInZ+
+2mIxJ4MwCClwLCq3VxI1bzdf1TYsPNxYTUS1POb2VgNofG0mBTHNUYUO20aF0ct8
+PCQqIqxUIegfS3f5
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert-768i.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert-768i.pem
new file mode 100644
index 000000000..d6532fb5d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert-768i.pem
@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE-----
+MIICfjCCAgigAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDDAJDQTAg
+Fw0xNjAzMjAwNjI3MjdaGA8yMTE2MDMyMTA2MjcyN1owGTEXMBUGA1UEAwwOc2Vy
+dmVyLmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo/4lY
+YYWu3tssD9Vz++K3qBt6dWAr1H08c3a1rt6TL38kkG3JHPSKOM2fooAWVsu0LLuT
+5Rcf/w3GQ/4xNPgo2HXpo7uIgu+jcuJTYgVFTeAxl++qnRDSWA2eBp4yuxsIVl1l
+Dz9mjsI2oBH/wFk1/Ukc3RxCMwZ4rgQ4I+XndWfTlK1aqUAfrFkQ9QzBZK1KxMY1
+U7OWaoIbFYvRmavknm+UqtKW5Vf7jJFkijwkFsbSGb6CYBM7YrDtPh2zyvlr3zG5
+ep5LR2inKcc/SuIiJ7TvkGPX79ByST5brbkb1Ctvhmjd1XMSuEPJ3EEPoqNGT4tn
+iIQPYf55NB9KiR+3AgMBAAGjfTB7MB0GA1UdDgQWBBTnm+IqrYpsOst2UeWOB5gi
+l+FzojAfBgNVHSMEGDAWgBSq83ovyyiaKeskoYibqSrJFtGUHDAJBgNVHRMEAjAA
+MBMGA1UdJQQMMAoGCCsGAQUFBwMBMBkGA1UdEQQSMBCCDnNlcnZlci5leGFtcGxl
+MA0GCSqGSIb3DQEBCwUAA2EASAwDwXsYGnhQDyWixI9eKZwXAA9E4rEIdmKNvVjU
+jWkMh1oC0FZl4TTHU+sAaXmv2QItZOcG2QEHoTIZDPYiy+7eZC7pPQY25dkxeSZ9
+TIlMnfePzYTc3BnfxZj82Mny
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert-md5.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert-md5.pem
new file mode 100644
index 000000000..8c26422fc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert-md5.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIBAjANBgkqhkiG9w0BAQQFADANMQswCQYDVQQDDAJDQTAg
+Fw0xNjAzMjAwNjI3MjdaGA8yMTE2MDMyMTA2MjcyN1owGTEXMBUGA1UEAwwOc2Vy
+dmVyLmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo/4lY
+YYWu3tssD9Vz++K3qBt6dWAr1H08c3a1rt6TL38kkG3JHPSKOM2fooAWVsu0LLuT
+5Rcf/w3GQ/4xNPgo2HXpo7uIgu+jcuJTYgVFTeAxl++qnRDSWA2eBp4yuxsIVl1l
+Dz9mjsI2oBH/wFk1/Ukc3RxCMwZ4rgQ4I+XndWfTlK1aqUAfrFkQ9QzBZK1KxMY1
+U7OWaoIbFYvRmavknm+UqtKW5Vf7jJFkijwkFsbSGb6CYBM7YrDtPh2zyvlr3zG5
+ep5LR2inKcc/SuIiJ7TvkGPX79ByST5brbkb1Ctvhmjd1XMSuEPJ3EEPoqNGT4tn
+iIQPYf55NB9KiR+3AgMBAAGjfTB7MB0GA1UdDgQWBBTnm+IqrYpsOst2UeWOB5gi
+l+FzojAfBgNVHSMEGDAWgBS0ETPx1+Je91OeICIQT4YGvx/JXjAJBgNVHRMEAjAA
+MBMGA1UdJQQMMAoGCCsGAQUFBwMBMBkGA1UdEQQSMBCCDnNlcnZlci5leGFtcGxl
+MA0GCSqGSIb3DQEBBAUAA4IBAQBqCPfIEZOVUiq2exiRFoxVOvq668Y55lJZ9+4j
+E5Ncq9mdbuD7GIxJSKByf899yBJUG32ZIbmwnSHfBkPolc/LjQhUDxJtSBE8vFaA
+8AZ1rsOcaWapPQ94gYIgncBS15t7RjTX1l04fY0NPqVsWmTji+ummA5e7iCj6l6t
+CqRGhMeSZWa1mc+Plurmz7oWEqkUK5cfTrlDnXeQNOI8EK8lc636elqqdnw0amO4
+yKJlaXRlm/I1nQdUQ0G5Bk2Tp/QGoJCtJ25XsoIbnCs0tIbpQllTdLsRQmOussAP
+NvdwbKtAAolgMAxH9pl1Mc6OIo2e8405EWs1jvGEMgE0IFAY
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert.pem
new file mode 100644
index 000000000..05d2318db
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDDAJDQTAg
+Fw0xNjAxMTUwODE5NDlaGA8yMTE2MDExNjA4MTk0OVowGTEXMBUGA1UEAwwOc2Vy
+dmVyLmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo/4lY
+YYWu3tssD9Vz++K3qBt6dWAr1H08c3a1rt6TL38kkG3JHPSKOM2fooAWVsu0LLuT
+5Rcf/w3GQ/4xNPgo2HXpo7uIgu+jcuJTYgVFTeAxl++qnRDSWA2eBp4yuxsIVl1l
+Dz9mjsI2oBH/wFk1/Ukc3RxCMwZ4rgQ4I+XndWfTlK1aqUAfrFkQ9QzBZK1KxMY1
+U7OWaoIbFYvRmavknm+UqtKW5Vf7jJFkijwkFsbSGb6CYBM7YrDtPh2zyvlr3zG5
+ep5LR2inKcc/SuIiJ7TvkGPX79ByST5brbkb1Ctvhmjd1XMSuEPJ3EEPoqNGT4tn
+iIQPYf55NB9KiR+3AgMBAAGjfTB7MB0GA1UdDgQWBBTnm+IqrYpsOst2UeWOB5gi
+l+FzojAfBgNVHSMEGDAWgBS0ETPx1+Je91OeICIQT4YGvx/JXjAJBgNVHRMEAjAA
+MBMGA1UdJQQMMAoGCCsGAQUFBwMBMBkGA1UdEQQSMBCCDnNlcnZlci5leGFtcGxl
+MA0GCSqGSIb3DQEBCwUAA4IBAQBBtDxPYULl5b7VFC7/U0NgV8vTJk4zpPnUMMQ4
+QF2AWDFAek8oLKrz18KQ8M/DEhDxgkaoeXEMLT6BJUEVNYuFEYHEDGarl0nMDRXL
+xOgAExfz3Tf/pjsLaha5aWH7NyCSKWC+lYkIOJ/Kb/m/6QsDJoXsEC8AhrPfqJhz
+UzsCoxIlaDWqawH4+S8bdeX0tvs2VtJk/WOJHxMqXra6kgI4fAgyvr2kIZHinQ3y
+cgX40uAC38bwpE95kJ7FhSfQlE1Rt7sOspUj098Dd0RNDn2uKyOTxEqIELHfw4AX
+O3XAzt8qDyho8nEd/xiQ6qgsQnvXa+hSRJw42g3/czVskxRx
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert2.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert2.pem
new file mode 100644
index 000000000..b6ad97696
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-cert2.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDDAJDQTAg
+Fw0xNjAxMTUwODE5NDlaGA8yMTE2MDExNjA4MTk0OVowGTEXMBUGA1UEAwwOc2Vy
+dmVyLmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo/4lY
+YYWu3tssD9Vz++K3qBt6dWAr1H08c3a1rt6TL38kkG3JHPSKOM2fooAWVsu0LLuT
+5Rcf/w3GQ/4xNPgo2HXpo7uIgu+jcuJTYgVFTeAxl++qnRDSWA2eBp4yuxsIVl1l
+Dz9mjsI2oBH/wFk1/Ukc3RxCMwZ4rgQ4I+XndWfTlK1aqUAfrFkQ9QzBZK1KxMY1
+U7OWaoIbFYvRmavknm+UqtKW5Vf7jJFkijwkFsbSGb6CYBM7YrDtPh2zyvlr3zG5
+ep5LR2inKcc/SuIiJ7TvkGPX79ByST5brbkb1Ctvhmjd1XMSuEPJ3EEPoqNGT4tn
+iIQPYf55NB9KiR+3AgMBAAGjfTB7MB0GA1UdDgQWBBTnm+IqrYpsOst2UeWOB5gi
+l+FzojAfBgNVHSMEGDAWgBQBaJ1v+UdTZGJOltvDcSXTMk5QrTAJBgNVHRMEAjAA
+MBMGA1UdJQQMMAoGCCsGAQUFBwMBMBkGA1UdEQQSMBCCDnNlcnZlci5leGFtcGxl
+MA0GCSqGSIb3DQEBCwUAA4IBAQC8XKL6Bh01xQv+3BTk4Kqu95/TEecZdBPsxU4r
+mCT829HsTw54Od7ID64Kzxi52RtJKPDnd3GB1tDAChEYI+U0g3582JiZCXPwxkC0
+y2YEhsXgatfOj0h5eT47FdmH7YeY4S6PxNo7Ek3ma5523M6dqcbP71fLvFptu5DZ
+dP9+I9hxeojAeumKONzVK4ADWthqgMgVKqjV34lqNNcWDEXgOUjJwT1HXnlwnCMk
+PtdnDSvzHEQFt25RZwkiOjimC97FZAPmsyYmLHc4q6s81ms5M4S9dackCA6TDRvv
+sOzivaeM07/94iKBINFpoHpJmD9Z5zE+vH2weMVjhSQnFsGc
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-client-chain.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-client-chain.pem
new file mode 100644
index 000000000..27652fa29
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-client-chain.pem
@@ -0,0 +1,37 @@
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDDAJDQTAg
+Fw0xNjAxMTUwODE5NTBaGA8yMTE2MDExNjA4MTk1MFowGTEXMBUGA1UEAwwOc2Vy
+dmVyLmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo/4lY
+YYWu3tssD9Vz++K3qBt6dWAr1H08c3a1rt6TL38kkG3JHPSKOM2fooAWVsu0LLuT
+5Rcf/w3GQ/4xNPgo2HXpo7uIgu+jcuJTYgVFTeAxl++qnRDSWA2eBp4yuxsIVl1l
+Dz9mjsI2oBH/wFk1/Ukc3RxCMwZ4rgQ4I+XndWfTlK1aqUAfrFkQ9QzBZK1KxMY1
+U7OWaoIbFYvRmavknm+UqtKW5Vf7jJFkijwkFsbSGb6CYBM7YrDtPh2zyvlr3zG5
+ep5LR2inKcc/SuIiJ7TvkGPX79ByST5brbkb1Ctvhmjd1XMSuEPJ3EEPoqNGT4tn
+iIQPYf55NB9KiR+3AgMBAAGjfTB7MB0GA1UdDgQWBBTnm+IqrYpsOst2UeWOB5gi
+l+FzojAfBgNVHSMEGDAWgBS0ETPx1+Je91OeICIQT4YGvx/JXjAJBgNVHRMEAjAA
+MBMGA1UdJQQMMAoGCCsGAQUFBwMCMBkGA1UdEQQSMBCCDnNlcnZlci5leGFtcGxl
+MA0GCSqGSIb3DQEBCwUAA4IBAQB+x23yjviJ9/n0G65xjntoPCLpsZtqId+WvN/9
+sXGqRZyAnBWPFpWrf9qXdxXZpTw7KRfywnEVsUQP12XKCc9JH4tG4l/wCDaHi9qO
+pLstQskcXk40gWaU83ojjchdtDFBaxR5KxC83SR669Rw9mn66bWz/6zpK9VYohVh
+A5/3RqteQaeQETFbZdlb6e7jAjiGp6DmAiH/WLrVvMY8k0z81TD0+UjJqI9097mF
+VtNX0l+46/tR4zvyA4yYqxK+L8M57SjfwxvwUpDxxVVnRsf3kHhudeAc+UDWzqws
+n5P71o+AfbkYzhHsSFIZyYUnGv+JApFpcGEMEiHL2iBhCRdx
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC7DCCAdSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNQME4wHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wDQYJ
+KoZIhvcNAQELBQADggEBADnZ9uXGAdwfNC3xuERIlBwgLROeBRGgcfHWdXZB/tWk
+IM9ox88wYKWynanPbra4n0zhepooKt+naeY2HLR8UgwT6sTi0Yfld9mjytA8/DP6
+AcqtIDDf60vNI00sgxjgZqofVayA9KShzIPzjBec4zI1sg5YzoSNyH28VXFstEpi
+8CVtmRYQHhc2gDI9MGge4sHRYwaIFkegzpwcEUnp6tTVe9ZvHawgsXF/rCGfH4M6
+uNO0D+9Md1bdW7382yOtWbkyibsugqnfBYCUH6hAhDlfYzpba2Smb0roc6Crq7HR
+5HpEYY6qEir9wFMkD5MZsWrNRGRuzd5am82J+aaHz/4=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-client.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-client.pem
new file mode 100644
index 000000000..a6105b24c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-client.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDDAJDQTAg
+Fw0xNjAxMTUwODE5NTBaGA8yMTE2MDExNjA4MTk1MFowGTEXMBUGA1UEAwwOc2Vy
+dmVyLmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo/4lY
+YYWu3tssD9Vz++K3qBt6dWAr1H08c3a1rt6TL38kkG3JHPSKOM2fooAWVsu0LLuT
+5Rcf/w3GQ/4xNPgo2HXpo7uIgu+jcuJTYgVFTeAxl++qnRDSWA2eBp4yuxsIVl1l
+Dz9mjsI2oBH/wFk1/Ukc3RxCMwZ4rgQ4I+XndWfTlK1aqUAfrFkQ9QzBZK1KxMY1
+U7OWaoIbFYvRmavknm+UqtKW5Vf7jJFkijwkFsbSGb6CYBM7YrDtPh2zyvlr3zG5
+ep5LR2inKcc/SuIiJ7TvkGPX79ByST5brbkb1Ctvhmjd1XMSuEPJ3EEPoqNGT4tn
+iIQPYf55NB9KiR+3AgMBAAGjfTB7MB0GA1UdDgQWBBTnm+IqrYpsOst2UeWOB5gi
+l+FzojAfBgNVHSMEGDAWgBS0ETPx1+Je91OeICIQT4YGvx/JXjAJBgNVHRMEAjAA
+MBMGA1UdJQQMMAoGCCsGAQUFBwMCMBkGA1UdEQQSMBCCDnNlcnZlci5leGFtcGxl
+MA0GCSqGSIb3DQEBCwUAA4IBAQB+x23yjviJ9/n0G65xjntoPCLpsZtqId+WvN/9
+sXGqRZyAnBWPFpWrf9qXdxXZpTw7KRfywnEVsUQP12XKCc9JH4tG4l/wCDaHi9qO
+pLstQskcXk40gWaU83ojjchdtDFBaxR5KxC83SR669Rw9mn66bWz/6zpK9VYohVh
+A5/3RqteQaeQETFbZdlb6e7jAjiGp6DmAiH/WLrVvMY8k0z81TD0+UjJqI9097mF
+VtNX0l+46/tR4zvyA4yYqxK+L8M57SjfwxvwUpDxxVVnRsf3kHhudeAc+UDWzqws
+n5P71o+AfbkYzhHsSFIZyYUnGv+JApFpcGEMEiHL2iBhCRdx
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-clientAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-clientAuth.pem
new file mode 100644
index 000000000..e6b88a75f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-clientAuth.pem
@@ -0,0 +1,20 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDDAJDQTAg
+Fw0xNjAxMTUwODE5NTBaGA8yMTE2MDExNjA4MTk1MFowGTEXMBUGA1UEAwwOc2Vy
+dmVyLmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo/4lY
+YYWu3tssD9Vz++K3qBt6dWAr1H08c3a1rt6TL38kkG3JHPSKOM2fooAWVsu0LLuT
+5Rcf/w3GQ/4xNPgo2HXpo7uIgu+jcuJTYgVFTeAxl++qnRDSWA2eBp4yuxsIVl1l
+Dz9mjsI2oBH/wFk1/Ukc3RxCMwZ4rgQ4I+XndWfTlK1aqUAfrFkQ9QzBZK1KxMY1
+U7OWaoIbFYvRmavknm+UqtKW5Vf7jJFkijwkFsbSGb6CYBM7YrDtPh2zyvlr3zG5
+ep5LR2inKcc/SuIiJ7TvkGPX79ByST5brbkb1Ctvhmjd1XMSuEPJ3EEPoqNGT4tn
+iIQPYf55NB9KiR+3AgMBAAGjfTB7MB0GA1UdDgQWBBTnm+IqrYpsOst2UeWOB5gi
+l+FzojAfBgNVHSMEGDAWgBS0ETPx1+Je91OeICIQT4YGvx/JXjAJBgNVHRMEAjAA
+MBMGA1UdJQQMMAoGCCsGAQUFBwMCMBkGA1UdEQQSMBCCDnNlcnZlci5leGFtcGxl
+MA0GCSqGSIb3DQEBCwUAA4IBAQB+x23yjviJ9/n0G65xjntoPCLpsZtqId+WvN/9
+sXGqRZyAnBWPFpWrf9qXdxXZpTw7KRfywnEVsUQP12XKCc9JH4tG4l/wCDaHi9qO
+pLstQskcXk40gWaU83ojjchdtDFBaxR5KxC83SR669Rw9mn66bWz/6zpK9VYohVh
+A5/3RqteQaeQETFbZdlb6e7jAjiGp6DmAiH/WLrVvMY8k0z81TD0+UjJqI9097mF
+VtNX0l+46/tR4zvyA4yYqxK+L8M57SjfwxvwUpDxxVVnRsf3kHhudeAc+UDWzqws
+n5P71o+AfbkYzhHsSFIZyYUnGv+JApFpcGEMEiHL2iBhCRdxMAygCgYIKwYBBQUH
+AwI=
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-ecdsa-client-chain.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-ecdsa-client-chain.pem
new file mode 100644
index 000000000..ba04fdbd7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-ecdsa-client-chain.pem
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIICXDCCAUSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDDAJDQTAg
+Fw0xNzAyMTUxOTMxMTBaGA8yMTE3MDIxNjE5MzExMFowHDEaMBgGA1UEAwwRRUNE
+U0EgQ2xpZW50IEF1dGgwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATpeZcBUFBT
+zmRIEaNlNcLA3+dvPgc5T3y2/Cut6ixNHjGCM1KzMSyZC2LwBhtKAl1CJxAfPvoP
+WECveS18FWXWo4GAMH4wHQYDVR0OBBYEFKP225wj9a3okk5Y2GvNHvJqH8sAMB8G
+A1UdIwQYMBaAFLQRM/HX4l73U54gIhBPhga/H8leMAkGA1UdEwQCMAAwEwYDVR0l
+BAwwCgYIKwYBBQUHAwIwHAYDVR0RBBUwE4IRRUNEU0EgQ2xpZW50IEF1dGgwDQYJ
+KoZIhvcNAQELBQADggEBAG8P/XEQnwHrd3O6GIAE5/Yloxqrjw5CoxbKmmVwrojz
+JGMHXPqE+V+RGUUnvP9Za8mIxtTi6hfvPRGNxRUhsPHXcQ52kwYf6r/ZeSXT0yFF
+ITVFFXM63p/jfF1NQgeEQ2NgPYJ9H6WTQbOu7EkaF/2E//DPUf93is8DKUgFLtdM
+p5Afb4yMul64wS2nHZIa3oR+15BDCQJ0FQtYX5bM2+6AZ0EZZT6q6t1cRRW8Tk4d
+YyUS5SSfxEdhdxnLPM5n88IYFhHV5klhgfp42CRXOWgLSBQeBZ8LqgUs7buHSxv5
+duOKJn5+mGvktlxvThrXpKgBx3yApThRKmBvb6Avrq8=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC7DCCAdSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNQME4wHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wDQYJ
+KoZIhvcNAQELBQADggEBADnZ9uXGAdwfNC3xuERIlBwgLROeBRGgcfHWdXZB/tWk
+IM9ox88wYKWynanPbra4n0zhepooKt+naeY2HLR8UgwT6sTi0Yfld9mjytA8/DP6
+AcqtIDDf60vNI00sgxjgZqofVayA9KShzIPzjBec4zI1sg5YzoSNyH28VXFstEpi
+8CVtmRYQHhc2gDI9MGge4sHRYwaIFkegzpwcEUnp6tTVe9ZvHawgsXF/rCGfH4M6
+uNO0D+9Md1bdW7382yOtWbkyibsugqnfBYCUH6hAhDlfYzpba2Smb0roc6Crq7HR
+5HpEYY6qEir9wFMkD5MZsWrNRGRuzd5am82J+aaHz/4=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-ecdsa-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-ecdsa-key.pem
new file mode 100644
index 000000000..6844a0b36
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-ecdsa-key.pem
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgi5sKk1Y8QjhMSK6P
+69wCABpFCv9/aCaMpLhlzAMfEjOhRANCAATpeZcBUFBTzmRIEaNlNcLA3+dvPgc5
+T3y2/Cut6ixNHjGCM1KzMSyZC2LwBhtKAl1CJxAfPvoPWECveS18FWXW
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-ed25519.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-ed25519.pem
new file mode 100644
index 000000000..3f4b5b2ac
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-ed25519.pem
@@ -0,0 +1,9 @@
+-----BEGIN CERTIFICATE-----
+MIIBLDCB36ADAgECAghWAUdKKo3DMDAFBgMrZXAwGTEXMBUGA1UEAwwOSUVURiBUZX
+N0IERlbW8wHhcNMTYwODAxMTIxOTI0WhcNNDAxMjMxMjM1OTU5WjAZMRcwFQYDVQQD
+DA5JRVRGIFRlc3QgRGVtbzAqMAUGAytlbgMhAIUg8AmJMKdUdIt93LQ+91oNvzoNJj
+ga9OukqY6qm05qo0UwQzAPBgNVHRMBAf8EBTADAQEAMA4GA1UdDwEBAAQEAwIDCDAg
+BgNVHQ4BAQAEFgQUmx9e7e0EM4Xk97xiPFl1uQvIuzswBQYDK2VwA0EAryMB/t3J5v
+/BzKc9dNZIpDmAgs3babFOTQbs+BolzlDUwsPrdGxO3YNGhW7Ibz3OGhhlxXrCe1Cg
+w1AH9efZBw==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-expired.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-expired.pem
new file mode 100644
index 000000000..bc490029d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-expired.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDHjCCAgagAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDDAJDQTAe
+Fw0xNjAxMTUwODE5NDlaFw0xNjAxMTQwODE5NDlaMBkxFzAVBgNVBAMMDnNlcnZl
+ci5leGFtcGxlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqP+JWGGF
+rt7bLA/Vc/vit6gbenVgK9R9PHN2ta7eky9/JJBtyRz0ijjNn6KAFlbLtCy7k+UX
+H/8NxkP+MTT4KNh16aO7iILvo3LiU2IFRU3gMZfvqp0Q0lgNngaeMrsbCFZdZQ8/
+Zo7CNqAR/8BZNf1JHN0cQjMGeK4EOCPl53Vn05StWqlAH6xZEPUMwWStSsTGNVOz
+lmqCGxWL0Zmr5J5vlKrSluVX+4yRZIo8JBbG0hm+gmATO2Kw7T4ds8r5a98xuXqe
+S0dopynHP0riIie075Bj1+/Qckk+W625G9Qrb4Zo3dVzErhDydxBD6KjRk+LZ4iE
+D2H+eTQfSokftwIDAQABo30wezAdBgNVHQ4EFgQU55viKq2KbDrLdlHljgeYIpfh
+c6IwHwYDVR0jBBgwFoAUtBEz8dfiXvdTniAiEE+GBr8fyV4wCQYDVR0TBAIwADAT
+BgNVHSUEDDAKBggrBgEFBQcDATAZBgNVHREEEjAQgg5zZXJ2ZXIuZXhhbXBsZTAN
+BgkqhkiG9w0BAQsFAAOCAQEAaxdo2UEbO7GovfQ18HNQ8hTwZGTyv8h4nZuUcgkf
+6L63FLoeyakcNtg1jgpsXmIEuCvWGNrUZJiNt7IiWW8fqmEgVMsYNtldUrQfIhUC
+I91SQveIy16Yoebx+1o8JPGIwoN19mqRWXC48gnF6Tmb5XuPVA5niidVryJR2U1m
+xciwaDZMNFvEogWopMajZrRTt/hjZYXdFuBVrJPwoP0uc/qYO9e8r5rKdthE3A9B
+sRezBb1FRe1ssFshgHcCwXl8AWRlaDFOW3TJvzJgvW3hjEm9z9booKD5dNuUeWWN
+CgM8Igp1gjCLXo0a/ZhCwiyE+7uGsLkDjHoGclcGwW17YA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-key-768.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-key-768.pem
new file mode 100644
index 000000000..0d44f8552
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-key-768.pem
@@ -0,0 +1,13 @@
+-----BEGIN PRIVATE KEY-----
+MIIB5QIBADANBgkqhkiG9w0BAQEFAASCAc8wggHLAgEAAmEAwCvrPAynx+7VtpFz
+4cWZW3/n3/nMwK4fxkWSB0kbVUhQaYiaQGWEfB4JpRz5rPt8NW5m2aVGT7mMjScu
+8YyFa3IDdpBeQL1n8VQUH3FLySgQHC1bkkzwyzQM8JirCdl/AgMBAAECYQCzO0MW
+qqcBrhvdPyPZerZhxJW7K/xv6PbxsYlVCjZYAC4ff6x+SzCZolpUiQXE9Hdyhlyk
+alcqn2vT5TagWk64YUmIMP7BCT2Ps/IW0nQl07k27c2BNq3IzdRnBz5SbQECMQDg
+9UxISqFOG6sLdZIKA88Q+M2HE/MdzwiJby/bSUXhn5aluZqjR60nGPqAb2S/r98C
+MQDasGzUTXqEYOPsAL4irzKMMiMdqbj6dNHsmo1GIYKx8PuN193i/cNd5XDv78Gm
+imECMQC10IvewbKtVl9f2540ye9JYE18pvsPVI0pxtt++DGqsTkoqGH7JasktmN/
++ogLBTECMBf9/xKTpXtcfeTod/OqMOt8nKmmcyrXIijJE/K7vnDzNUXshuVeXc6x
+W2CXdzFkQQIweyLLA6etAJGsmCRwIgnfp1ubmVdfPou68byHSnzAf4/GxBriSd5b
+EQcYwjE7SDI7
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-key.pem
new file mode 100644
index 000000000..9bc2a8483
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCo/4lYYYWu3tss
+D9Vz++K3qBt6dWAr1H08c3a1rt6TL38kkG3JHPSKOM2fooAWVsu0LLuT5Rcf/w3G
+Q/4xNPgo2HXpo7uIgu+jcuJTYgVFTeAxl++qnRDSWA2eBp4yuxsIVl1lDz9mjsI2
+oBH/wFk1/Ukc3RxCMwZ4rgQ4I+XndWfTlK1aqUAfrFkQ9QzBZK1KxMY1U7OWaoIb
+FYvRmavknm+UqtKW5Vf7jJFkijwkFsbSGb6CYBM7YrDtPh2zyvlr3zG5ep5LR2in
+Kcc/SuIiJ7TvkGPX79ByST5brbkb1Ctvhmjd1XMSuEPJ3EEPoqNGT4tniIQPYf55
+NB9KiR+3AgMBAAECggEAFvp/40uHUMquhGQ2wsl5/zzVV6ZECFGhIaoVdwiq7Npl
+cERPGSxdt7mXg+AliGQO2JXIf4iDx273oYC3PFuWbn9YMQd5RUuAZ/oD+hB25QB8
+vmGJTeqDUgZ0+4qs0fsM5upPUqFrHnfEwoarS9oMh0HEQi9yWzHy7E/E9Rk0dm8Q
+qAwfKKqqwBe0RIp6GOwRJ2AO4NLvPh1oddVX15zvVeDP5pmHScZKtGXf9sIKfJJo
+JN7N5UaviOKEGpQtxKVNOjn1wYusvzrvz3U3TmvyXTGkPCdSxK/6bz0LN+Lwyfzw
+RpSoNUe/cREZJkXDIIaqvmzlQVk1aKDdAx4+8ltyWQKBgQDahgSMZAAeGuQwtI+S
+jor9dNWcxEr5Uf/iw5gWmp5E59CSyc35Zj5rdf4M12X7jPRqAbFcM6FgERtbKyYd
+lg+PGgcKMYXKXJWimA6xU06+wwRl1iI/j718FCLeov6Lt17VHr8sjO3GiZ/WtHz1
+H6mqV8i9vcClmA6IyS+EQvtkBQKBgQDF+y0JwcbEzS3YqTHy4DGQtcCOkcLi+WM5
+APch7pev4I9MTgZdRnC6ZjnYKXQU9nzALZrH1PoHnFRZbsXbCFsmTdh/6g1L0b7B
+/zfZhB+9LiB7NBpfHiUydj1JQfkw/EvnLbs7r5EYGbpkMhpzmmzE9Yv0d+xj1CPd
+6kz/6CRdiwKBgBE1ZpxLr7qvMXModPn8obNuBPhweNsDexw3fP2itX4Fp2Y34DGY
+vKenxhbqy4wwwHqsoXP6WOYA0t+uGTVRQO5rBUznM3sJKXuBb/7E6bmaD/mZEF9j
+CXABAfH4cgU8roon/rQacQsmgWDeG80N7kWM3jEbBVXFELfy5/wJblSlAoGAUZax
+eNPiljf4LNGNRAogYwKD2D05k1AzE8rSDanF2TUx2MBO3yGoUyjNrcdnjzwFLS2e
+G7wpTfmeyTxdTWakKaTrE8vgrt5BPrFu0rUgX1YjDKLsO0axDZqspwQJLabLoPm3
+r2Eq6kOwDJqZTArXyFNo2daSFJHYNhvYn52LXwECgYB9CRrPMe0sWdbVPm55bXGM
+Ern05LQuaLaDZjsbsaH9Q5YPk99Sq7jklyQ3ZuHodSLAArHGu/96uu66xtMrRYcj
+c89fqFeqc/BwnkodvWJ3K80UNulnjfOcPVAPHaAr9GE9rJcjICNpu2+wJ2wi4JAF
+rLxFTZXBDbnGZ9QtcGcJSw==
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-name2.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-name2.pem
new file mode 100644
index 000000000..234704efe
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-name2.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDITCCAgmgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAOMQwwCgYDVQQDDANDQTIw
+IBcNMTYwMTE1MDgxOTQ5WhgPMjExNjAxMTYwODE5NDlaMBkxFzAVBgNVBAMMDnNl
+cnZlci5leGFtcGxlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqP+J
+WGGFrt7bLA/Vc/vit6gbenVgK9R9PHN2ta7eky9/JJBtyRz0ijjNn6KAFlbLtCy7
+k+UXH/8NxkP+MTT4KNh16aO7iILvo3LiU2IFRU3gMZfvqp0Q0lgNngaeMrsbCFZd
+ZQ8/Zo7CNqAR/8BZNf1JHN0cQjMGeK4EOCPl53Vn05StWqlAH6xZEPUMwWStSsTG
+NVOzlmqCGxWL0Zmr5J5vlKrSluVX+4yRZIo8JBbG0hm+gmATO2Kw7T4ds8r5a98x
+uXqeS0dopynHP0riIie075Bj1+/Qckk+W625G9Qrb4Zo3dVzErhDydxBD6KjRk+L
+Z4iED2H+eTQfSokftwIDAQABo30wezAdBgNVHQ4EFgQU55viKq2KbDrLdlHljgeY
+Ipfhc6IwHwYDVR0jBBgwFoAUtBEz8dfiXvdTniAiEE+GBr8fyV4wCQYDVR0TBAIw
+ADATBgNVHSUEDDAKBggrBgEFBQcDATAZBgNVHREEEjAQgg5zZXJ2ZXIuZXhhbXBs
+ZTANBgkqhkiG9w0BAQsFAAOCAQEAS963QA7e4VCU5bdx4fBV9j5I6KhlEZnLOj5h
+MYH1gr3/+V2cdbjctMvsZHB9NLfha7PcDyYHhPDjFuSwu834r31opR4LaSJKlGiW
+l+K6mhGk1ofLIQLJedFFdBCuUAHMsTN7yWY6398y72XglJ+KtQh9wUd9g6H6QMzN
+OWlZZmVQjVllFOj3y5v1YsJ9JlUFDDzdJVB9KgiyAIj6hcz7pJX42nFtsQvTHBUT
+r6J+ViasAnOGjBSVsE5MQw9dYVgSbVd3ftUZkDkLQ5ShTZ5N2ndIMY2xzw7lifrX
+O34gCkt55vyZNkOzZgCfMglkloYm7ww7pofZVfjmkmm3k/HGFw==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-pathlen.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-pathlen.pem
new file mode 100644
index 000000000..0bcae1d7b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-pathlen.pem
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICszCCAZugAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDDAJDQTAg
+Fw0yMDA0MDMwODA0MTVaGA8yMTIwMDQwNDA4MDQxNVowGTEXMBUGA1UEAwwOc2Vy
+dmVyLmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo/4lY
+YYWu3tssD9Vz++K3qBt6dWAr1H08c3a1rt6TL38kkG3JHPSKOM2fooAWVsu0LLuT
+5Rcf/w3GQ/4xNPgo2HXpo7uIgu+jcuJTYgVFTeAxl++qnRDSWA2eBp4yuxsIVl1l
+Dz9mjsI2oBH/wFk1/Ukc3RxCMwZ4rgQ4I+XndWfTlK1aqUAfrFkQ9QzBZK1KxMY1
+U7OWaoIbFYvRmavknm+UqtKW5Vf7jJFkijwkFsbSGb6CYBM7YrDtPh2zyvlr3zG5
+ep5LR2inKcc/SuIiJ7TvkGPX79ByST5brbkb1Ctvhmjd1XMSuEPJ3EEPoqNGT4tn
+iIQPYf55NB9KiR+3AgMBAAGjEDAOMAwGA1UdEwQFMAMCAQAwDQYJKoZIhvcNAQEL
+BQADggEBAApOUnWWd09I0ts3xa1oK7eakc+fKTF4d7pbGznFNONaCR3KFRgnBVlG
+Bm8/oehrrQ28Ad3XPSug34DQQ5kM6JIuaddx50/n4Xkgj8/fgXVA0HXizOJ3QpKC
+IojLVajXlQHhpo72VUQuNOha0UxG9daYjS20iXRhanTm9rUz7qQZEugVQCiR0z/f
+9NgM7FU9UaSidzH3gZu/Ufc4Ggn6nZV7LM9sf4IUV+KszS1VpcK+9phAmsB6BaAi
+cFXvVXZjTNualQgPyPwOD8c+vVCIfIemfF5TZ6fyqpOjprWQAphwrTtfNDSmqRTz
+FRhDf+vJERQclgUtg37EgWGKtnNQeRY=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-pss-sha1-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-pss-sha1-cert.pem
new file mode 100644
index 000000000..b504aea58
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-pss-sha1-cert.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDFDCCAfygAwIBAgIBAjANBgkqhkiG9w0BAQowADANMQswCQYDVQQDDAJDQTAg
+Fw0xNzA0MjQyMTE5NDlaGA8yMTE3MDQyNTIxMTk0OVowEzERMA8GA1UEAwwIUFNT
+LVNIQTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo/4lYYYWu3tss
+D9Vz++K3qBt6dWAr1H08c3a1rt6TL38kkG3JHPSKOM2fooAWVsu0LLuT5Rcf/w3G
+Q/4xNPgo2HXpo7uIgu+jcuJTYgVFTeAxl++qnRDSWA2eBp4yuxsIVl1lDz9mjsI2
+oBH/wFk1/Ukc3RxCMwZ4rgQ4I+XndWfTlK1aqUAfrFkQ9QzBZK1KxMY1U7OWaoIb
+FYvRmavknm+UqtKW5Vf7jJFkijwkFsbSGb6CYBM7YrDtPh2zyvlr3zG5ep5LR2in
+Kcc/SuIiJ7TvkGPX79ByST5brbkb1Ctvhmjd1XMSuEPJ3EEPoqNGT4tniIQPYf55
+NB9KiR+3AgMBAAGjdzB1MB0GA1UdDgQWBBTnm+IqrYpsOst2UeWOB5gil+FzojAf
+BgNVHSMEGDAWgBS0ETPx1+Je91OeICIQT4YGvx/JXjAJBgNVHRMEAjAAMBMGA1Ud
+JQQMMAoGCCsGAQUFBwMBMBMGA1UdEQQMMAqCCFBTUy1TSEExMA0GCSqGSIb3DQEB
+CjAAA4IBAQCC4qIOu7FVYMvRx13IrvzviF+RFRRfAD5NZSPFw5+riLMeRlA4Pdw/
+vCctNIpqjDaSFu8BRTUuyHPXSIvPo0Rl64TsfQNHP1Ut1/8XCecYCEBx/ROJHbM5
+YjoHMCAy+mR3f4BK1827Mp5U/wRJ6ljvE5EbALQ06ZEuIO6zqEAO6AROUCjWSyFd
+z9fkEHS0XmploIywH4QXR7X+ueWOE3n76x+vziM4qoGsYxy0sxePfTWM1DscT1Kt
+l5skZdZEKo6J8m8ImxfmtLutky2/tw5cdeWbovX3xfipabjPqpzO9Tf9aa4iblJa
+AEQwRss+D6ixFO1rNKs1fjFva7A+9lrO
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-pss-sha256-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-pss-sha256-cert.pem
new file mode 100644
index 000000000..cde508992
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-pss-sha256-cert.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDeDCCAjCgAwIBAgIBAjA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEa
+MBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiAwIBIDANMQswCQYDVQQDDAJDQTAg
+Fw0xNzA0MjQyMTE5NDlaGA8yMTE3MDQyNTIxMTk0OVowFTETMBEGA1UEAwwKUFNT
+LVNIQTI1NjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKj/iVhhha7e
+2ywP1XP74reoG3p1YCvUfTxzdrWu3pMvfySQbckc9Io4zZ+igBZWy7Qsu5PlFx//
+DcZD/jE0+CjYdemju4iC76Ny4lNiBUVN4DGX76qdENJYDZ4GnjK7GwhWXWUPP2aO
+wjagEf/AWTX9SRzdHEIzBniuBDgj5ed1Z9OUrVqpQB+sWRD1DMFkrUrExjVTs5Zq
+ghsVi9GZq+Seb5Sq0pblV/uMkWSKPCQWxtIZvoJgEztisO0+HbPK+WvfMbl6nktH
+aKcpxz9K4iIntO+QY9fv0HJJPlutuRvUK2+GaN3VcxK4Q8ncQQ+io0ZPi2eIhA9h
+/nk0H0qJH7cCAwEAAaN5MHcwHQYDVR0OBBYEFOeb4iqtimw6y3ZR5Y4HmCKX4XOi
+MB8GA1UdIwQYMBaAFLQRM/HX4l73U54gIhBPhga/H8leMAkGA1UdEwQCMAAwEwYD
+VR0lBAwwCgYIKwYBBQUHAwEwFQYDVR0RBA4wDIIKUFNTLVNIQTI1NjA9BgkqhkiG
+9w0BAQowMKANMAsGCWCGSAFlAwQCAaEaMBgGCSqGSIb3DQEBCDALBglghkgBZQME
+AgGiAwIBIAOCAQEAfKQyXj7HSdUQJA599+SBjalw3dsaxYg6wgLH1IW3GHXPR+c0
+4cugrsPFNRTZL2u/xwHfdxcR3N2vzsdqa+Ep3iyC6egiwxmhIkw0OI+uk/WO9P8Z
+42bznkeDjOQ3Y04IIt7a5VbMY7AuWdQfnuVRFiJFAZi7s4+b6QL7+iwydZESVNRL
+K+Y6rjMEOrGK7codcRKxrwIt7kxkcT7MI/O7Jt5aa1XDvdSzrieo/CpNVCLCm/zq
+Hn1MZ7SAxjTlvwZIj1FhDrFJJppPc5fS7rQDcEaEV6qkBMowtccQR61Iim4834gV
+ZTesKQBRtAgW/h4OD5Za98hSEesP6YNhE3GK7A==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-serverAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-serverAuth.pem
new file mode 100644
index 000000000..fd6ab2821
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ee-serverAuth.pem
@@ -0,0 +1,20 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDDAJDQTAg
+Fw0xNjAxMTUwODE5NDlaGA8yMTE2MDExNjA4MTk0OVowGTEXMBUGA1UEAwwOc2Vy
+dmVyLmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo/4lY
+YYWu3tssD9Vz++K3qBt6dWAr1H08c3a1rt6TL38kkG3JHPSKOM2fooAWVsu0LLuT
+5Rcf/w3GQ/4xNPgo2HXpo7uIgu+jcuJTYgVFTeAxl++qnRDSWA2eBp4yuxsIVl1l
+Dz9mjsI2oBH/wFk1/Ukc3RxCMwZ4rgQ4I+XndWfTlK1aqUAfrFkQ9QzBZK1KxMY1
+U7OWaoIbFYvRmavknm+UqtKW5Vf7jJFkijwkFsbSGb6CYBM7YrDtPh2zyvlr3zG5
+ep5LR2inKcc/SuIiJ7TvkGPX79ByST5brbkb1Ctvhmjd1XMSuEPJ3EEPoqNGT4tn
+iIQPYf55NB9KiR+3AgMBAAGjfTB7MB0GA1UdDgQWBBTnm+IqrYpsOst2UeWOB5gi
+l+FzojAfBgNVHSMEGDAWgBS0ETPx1+Je91OeICIQT4YGvx/JXjAJBgNVHRMEAjAA
+MBMGA1UdJQQMMAoGCCsGAQUFBwMBMBkGA1UdEQQSMBCCDnNlcnZlci5leGFtcGxl
+MA0GCSqGSIb3DQEBCwUAA4IBAQBBtDxPYULl5b7VFC7/U0NgV8vTJk4zpPnUMMQ4
+QF2AWDFAek8oLKrz18KQ8M/DEhDxgkaoeXEMLT6BJUEVNYuFEYHEDGarl0nMDRXL
+xOgAExfz3Tf/pjsLaha5aWH7NyCSKWC+lYkIOJ/Kb/m/6QsDJoXsEC8AhrPfqJhz
+UzsCoxIlaDWqawH4+S8bdeX0tvs2VtJk/WOJHxMqXra6kgI4fAgyvr2kIZHinQ3y
+cgX40uAC38bwpE95kJ7FhSfQlE1Rt7sOspUj098Dd0RNDn2uKyOTxEqIELHfw4AX
+O3XAzt8qDyho8nEd/xiQ6qgsQnvXa+hSRJw42g3/czVskxRxMAygCgYIKwYBBQUH
+AwE=
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs1-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs1-key.pem
new file mode 100644
index 000000000..e3e66d55c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs1-key.pem
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQC+75jnwmh3rjhfdTJaDB0ym+3xj6r015a/BH634c4VyVui+A7k
+WL19uG+KSyUhkaeb1wDDjpwDibRc1NyaEgqyHgy0HNDnKAWkEM2cW9tdSSdyba8X
+EPYBhzd+olsaHjnu0LiBGdwVTcaPfajjDK8VijPmyVCfSgWwFAn/Xdh+tQIDAQAB
+AoGAK/daG0vt6Fkqy/hdrtSJSKUVRoGRmS2nnba4Qzlwzh1+x2kdbMFuaOu2a37g
+PvmeQclheKZ3EG1+Jb4yShwLcBCV6pkRJhOKuhvqGnjngr6uBH4gMCjpZVj7GDMf
+flYHhdJCs3Cz/TY0wKN3o1Fldil2DHR/AEOc1nImeSp5/EUCQQDjKS3W957kYtTU
+X5BeRjvg03Ug8tJq6IFuhTFvUJ+XQ5bAc0DmxAbQVKqRS7Wje59zTknVvS+MFdeQ
+pz4dGuV7AkEA1y0X2yarIls+0A/S1uwkvwRTIkfS+QwFJ1zVya8sApRdKAcidIzA
+b70hkKLilU9+LrXg5iZdFp8l752qJiw9jwJAXjItN/7mfH4fExGto+or2kbVQxxt
+9LcFNPc2UJp2ExuL37HrL8YJrUnukOF8KJaSwBWuuFsC5GwKP4maUCdfEQJAUwBR
+83c3DEmmMRvpeH4erpA8gTyzZN3+HvDwhpvLnjMcvBQEdnDUykVqbSBnxrCjO+Fs
+n1qtDczWFVf8Cj2GgQJAQ14Awx32Cn9sF+3M+sEVtlAf6CqiEbkYeYdSCbsplMmZ
+1UoaxiwXY3z+B7epsRnnPR3KaceAlAxw2/zQJMFNOQ==
+-----END RSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs1.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs1.pem
new file mode 100644
index 000000000..d1e85120a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs1.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDWTCCAsKgAwIBAgIBBzANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJHQjEk
+MCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4wDAYDVQQIEwVX
+YWxlczEQMA4GA1UEBxMHRXJ3IFdlbjAeFw0xMjA2MDEwMDAwMDBaFw0yMjA2MDEw
+MDAwMDBaMFIxCzAJBgNVBAYTAkdCMSEwHwYDVQQKExhDZXJ0aWZpY2F0ZSBUcmFu
+c3BhcmVuY3kxDjAMBgNVBAgTBVdhbGVzMRAwDgYDVQQHEwdFcncgV2VuMIGfMA0G
+CSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+75jnwmh3rjhfdTJaDB0ym+3xj6r015a/
+BH634c4VyVui+A7kWL19uG+KSyUhkaeb1wDDjpwDibRc1NyaEgqyHgy0HNDnKAWk
+EM2cW9tdSSdyba8XEPYBhzd+olsaHjnu0LiBGdwVTcaPfajjDK8VijPmyVCfSgWw
+FAn/Xdh+tQIDAQABo4IBOjCCATYwHQYDVR0OBBYEFCAxVBryXAX/2GWLaEN5T16Q
+Nve0MH0GA1UdIwR2MHSAFF+diA3Ic+ZU1PgN2OawwSS0R8NVoVmkVzBVMQswCQYD
+VQQGEwJHQjEkMCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4w
+DAYDVQQIEwVXYWxlczEQMA4GA1UEBxMHRXJ3IFdlboIBADAJBgNVHRMEAjAAMIGK
+BgorBgEEAdZ5AgQCBHwEegB4AHYA3xwuwRUAlFJHqWFoMl3cXHlZ6PfG04j8AC4L
+vT9012QAAAE92yffkwAABAMARzBFAiBIL2dRrzXbplQ2vh/WZA89v5pBQpSVkkUw
+KI+j5eI+BgIhAOTtwNs6xXKx4vXoq2poBlOYfc9BAn3+/6EFUZ2J7b8IMA0GCSqG
+SIb3DQEBBQUAA4GBAIoMS+8JnUeSea+goo5on5HhxEIb4tJpoupspOghXd7dyhUE
+oR58h8S3foDw6XkDUmjyfKIOFmgErlVvMWmB+Wo5Srer/T4lWsAERRP+dlcMZ5Wr
+5HAxM9MD+J86+mu8/FFzGd/ZW5NCQSEfY0A1w9B4MHpoxgdaLiDInza4kQyg
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs1.sct b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs1.sct
new file mode 100644
index 000000000..59362dcee
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs1.sct
@@ -0,0 +1,12 @@
+Signed Certificate Timestamp:
+ Version : v1 (0x0)
+ Log ID : DF:1C:2E:C1:15:00:94:52:47:A9:61:68:32:5D:DC:5C:
+ 79:59:E8:F7:C6:D3:88:FC:00:2E:0B:BD:3F:74:D7:64
+ Timestamp : Apr 5 17:04:16.275 2013 GMT
+ Extensions: none
+ Signature : ecdsa-with-SHA256
+ 30:45:02:20:48:2F:67:51:AF:35:DB:A6:54:36:BE:1F:
+ D6:64:0F:3D:BF:9A:41:42:94:95:92:45:30:28:8F:A3:
+ E5:E2:3E:06:02:21:00:E4:ED:C0:DB:3A:C5:72:B1:E2:
+ F5:E8:AB:6A:68:06:53:98:7D:CF:41:02:7D:FE:FF:A1:
+ 05:51:9D:89:ED:BF:08 \ No newline at end of file
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs1_issuer.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs1_issuer.pem
new file mode 100644
index 000000000..1fa449d5a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs1_issuer.pem
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC0DCCAjmgAwIBAgIBADANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJHQjEk
+MCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4wDAYDVQQIEwVX
+YWxlczEQMA4GA1UEBxMHRXJ3IFdlbjAeFw0xMjA2MDEwMDAwMDBaFw0yMjA2MDEw
+MDAwMDBaMFUxCzAJBgNVBAYTAkdCMSQwIgYDVQQKExtDZXJ0aWZpY2F0ZSBUcmFu
+c3BhcmVuY3kgQ0ExDjAMBgNVBAgTBVdhbGVzMRAwDgYDVQQHEwdFcncgV2VuMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVimhTYhCicRmTbneDIRgcKkATxtB7
+jHbrkVfT0PtLO1FuzsvRyY2RxS90P6tjXVUJnNE6uvMa5UFEJFGnTHgW8iQ8+EjP
+KDHM5nugSlojgZ88ujfmJNnDvbKZuDnd/iYx0ss6hPx7srXFL8/BT/9Ab1zURmnL
+svfP34b7arnRsQIDAQABo4GvMIGsMB0GA1UdDgQWBBRfnYgNyHPmVNT4DdjmsMEk
+tEfDVTB9BgNVHSMEdjB0gBRfnYgNyHPmVNT4DdjmsMEktEfDVaFZpFcwVTELMAkG
+A1UEBhMCR0IxJDAiBgNVBAoTG0NlcnRpZmljYXRlIFRyYW5zcGFyZW5jeSBDQTEO
+MAwGA1UECBMFV2FsZXMxEDAOBgNVBAcTB0VydyBXZW6CAQAwDAYDVR0TBAUwAwEB
+/zANBgkqhkiG9w0BAQUFAAOBgQAGCMxKbWTyIF4UbASydvkrDvqUpdryOvw4BmBt
+OZDQoeojPUApV2lGOwRmYef6HReZFSCa6i4Kd1F2QRIn18ADB8dHDmFYT9czQiRy
+f1HWkLxHqd81TbD26yWVXeGJPE3VICskovPkQNJ0tU4b03YmnKliibduyqQQkOFP
+OwqULg==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs3.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs3.pem
new file mode 100644
index 000000000..bce8918ec
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs3.pem
@@ -0,0 +1,44 @@
+-----BEGIN CERTIFICATE-----
+MIIHvzCCBqegAwIBAgIRANSYNM/GMmLagfa+3OOk63swDQYJKoZIhvcNAQELBQAw
+gZIxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
+BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMTgwNgYD
+VQQDEy9DT01PRE8gUlNBIEV4dGVuZGVkIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZl
+ciBDQTAeFw0xNTEyMDEwMDAwMDBaFw0xODAyMjUyMzU5NTlaMIIBMzEQMA4GA1UE
+BRMHMzgzMDEzODETMBEGCysGAQQBgjc8AgEDEwJVUzEZMBcGCysGAQQBgjc8AgEC
+EwhEZWxhd2FyZTEdMBsGA1UEDxMUUHJpdmF0ZSBPcmdhbml6YXRpb24xCzAJBgNV
+BAYTAlVTMQ4wDAYDVQQREwUwNzAxMzELMAkGA1UECBMCTkoxEDAOBgNVBAcTB0Ns
+aWZ0b24xEjAQBgNVBAkTCVN1aXRlIDEwMDEXMBUGA1UECRMOMTI1NSBCcm9hZCBT
+dC4xGjAYBgNVBAoTEUNvbW9kbyBHcm91cCBJbmMuMRYwFAYDVQQLEw1DT01PRE8g
+RVYgU1NMMRowGAYDVQQLExFDT01PRE8gRVYgU0dDIFNTTDEXMBUGA1UEAxMOd3d3
+LmNvbW9kby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC5S2RD
+XGjch2spb10rLVCA4TgeB/TiNLHPczeKMJzIY9qKUGQfcYCTwfWe2E1xBer/i0OX
+IUca+/Br3HTK2qkNoc/nuFkJJ3ej17A9Kv1EYhsN+2gHobKEy+sMTJyGmFVo98nu
+V9mmiEWM7Bi0Y6YRVYCOey4K2yUwSK1MOgc10RzbwDsk+P2mvTzvPi8QZzd4I36/
+xlFFhk39VKY94PorJCzF/6qifmNnIjxMkrmSKJKKQaZu8vgbshqlj3+TkeCtIjdR
+77OcZuROMFdnKsp8JKAq9bzXmDkwlDmUzxAzgYmAvqCwQvNWtJrm0SeiEkNsoK5F
+xadrfw6OO7BCGXiNAgMBAAGjggNqMIIDZjAfBgNVHSMEGDAWgBQ52v/KKBSKqHQT
+CLnkDqnS+n6daTAdBgNVHQ4EFgQURD5zMOsLG6ennQ/aeZZNGofpnSEwDgYDVR0P
+AQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwNAYDVR0lBC0wKwYIKwYBBQUHAwEGCCsG
+AQUFBwMCBgorBgEEAYI3CgMDBglghkgBhvhCBAEwRgYDVR0gBD8wPTA7BgwrBgEE
+AbIxAQIBBQEwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv
+bS9DUFMwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5jb21vZG9jYS5jb20v
+Q09NT0RPUlNBRXh0ZW5kZWRWYWxpZGF0aW9uU2VjdXJlU2VydmVyQ0EuY3JsMIGH
+BggrBgEFBQcBAQR7MHkwUQYIKwYBBQUHMAKGRWh0dHA6Ly9jcnQuY29tb2RvY2Eu
+Y29tL0NPTU9ET1JTQUV4dGVuZGVkVmFsaWRhdGlvblNlY3VyZVNlcnZlckNBLmNy
+dDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMCUGA1UdEQQe
+MByCDnd3dy5jb21vZG8uY29tggpjb21vZG8uY29tMIIBfQYKKwYBBAHWeQIEAgSC
+AW0EggFpAWcAdQBo9pj4H2SCvjqM7rkoHUz8cVFdZ5PURNEKZ6y7T0/7xAAAAVFd
+vZuJAAAEAwBGMEQCIFgtCr54QYrnialeZiHFahZ53zOFitPzHXGvdTD7zE5FAiBB
+nIm4gBmHRmwcOpULvvSYddTKSZf9JS7jeLU2MCAmTQB2AFYUBpov18Ls0/XhvUSy
+PsdGdrm8mRFcwO+UmFXWidDdAAABUV29mSgAAAQDAEcwRQIgeWjpcDhaY/OmsZcO
+ftDFcRt2BssJY0ge4SDzp+8qTnQCIQCOt7vthV2FG1RePMXs8hOcCdEKAcJZX3wx
+GaGd4RfHHwB2AKS5CZC0GFgUh7sTosxncAo8NZgE+RvfuON3zQ7IDdwQAAABUV29
+m5wAAAQDAEcwRQIgKwZCD9lxvSFCpfnFVYPSneWhjbY9pnOJQjKckQ87anQCIQCG
+7hD5EOZ7F2XZLTdTSjvwrgPkIXY376+0RC4r9VzGkTANBgkqhkiG9w0BAQsFAAOC
+AQEAHVZgKwtIKcxJg6k5THIICJ63vZyaPJN21HVYPAN/heDUcbYzOqP0F+v+ahj5
+yNiRhSji/xxcOf5bWT158dHQoMtC1Ld1dI3lttVAvDTgXOApbmc8N0Xpjvapag3r
+b0IYW5SJio0qn1VxgeSsf0UCBTyw0N8lgbaIr3FHw2SP2rUS8PUixFRK52MYnyEp
+6Imz730Adl0RgUvp7mzRcWVDK4i6sPRqV6my68XsyaBcQr2qKALQK0Js+mE/0850
+47USqZ1XjbUke47OPxdlF85uUtIUSGquHTWnxrqy7FLMPIu9HL8XGo3vVlTYCCsb
+d6V/RWexyzZiHDGA1ToA0Y16Aw==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs3.sct b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs3.sct
new file mode 100644
index 000000000..ad1ccf0ff
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs3.sct
@@ -0,0 +1,36 @@
+Signed Certificate Timestamp:
+ Version : v1 (0x0)
+ Log ID : 68:F6:98:F8:1F:64:82:BE:3A:8C:EE:B9:28:1D:4C:FC:
+ 71:51:5D:67:93:D4:44:D1:0A:67:AC:BB:4F:4F:FB:C4
+ Timestamp : Dec 1 13:31:25.961 2015 GMT
+ Extensions: none
+ Signature : ecdsa-with-SHA256
+ 30:44:02:20:58:2D:0A:BE:78:41:8A:E7:89:A9:5E:66:
+ 21:C5:6A:16:79:DF:33:85:8A:D3:F3:1D:71:AF:75:30:
+ FB:CC:4E:45:02:20:41:9C:89:B8:80:19:87:46:6C:1C:
+ 3A:95:0B:BE:F4:98:75:D4:CA:49:97:FD:25:2E:E3:78:
+ B5:36:30:20:26:4D
+Signed Certificate Timestamp:
+ Version : v1 (0x0)
+ Log ID : 56:14:06:9A:2F:D7:C2:EC:D3:F5:E1:BD:44:B2:3E:C7:
+ 46:76:B9:BC:99:11:5C:C0:EF:94:98:55:D6:89:D0:DD
+ Timestamp : Dec 1 13:31:25.352 2015 GMT
+ Extensions: none
+ Signature : ecdsa-with-SHA256
+ 30:45:02:20:79:68:E9:70:38:5A:63:F3:A6:B1:97:0E:
+ 7E:D0:C5:71:1B:76:06:CB:09:63:48:1E:E1:20:F3:A7:
+ EF:2A:4E:74:02:21:00:8E:B7:BB:ED:85:5D:85:1B:54:
+ 5E:3C:C5:EC:F2:13:9C:09:D1:0A:01:C2:59:5F:7C:31:
+ 19:A1:9D:E1:17:C7:1F
+Signed Certificate Timestamp:
+ Version : v1 (0x0)
+ Log ID : A4:B9:09:90:B4:18:58:14:87:BB:13:A2:CC:67:70:0A:
+ 3C:35:98:04:F9:1B:DF:B8:E3:77:CD:0E:C8:0D:DC:10
+ Timestamp : Dec 1 13:31:25.980 2015 GMT
+ Extensions: none
+ Signature : ecdsa-with-SHA256
+ 30:45:02:20:2B:06:42:0F:D9:71:BD:21:42:A5:F9:C5:
+ 55:83:D2:9D:E5:A1:8D:B6:3D:A6:73:89:42:32:9C:91:
+ 0F:3B:6A:74:02:21:00:86:EE:10:F9:10:E6:7B:17:65:
+ D9:2D:37:53:4A:3B:F0:AE:03:E4:21:76:37:EF:AF:B4:
+ 44:2E:2B:F5:5C:C6:91 \ No newline at end of file
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs3_issuer.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs3_issuer.pem
new file mode 100644
index 000000000..f4bc31274
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/embeddedSCTs3_issuer.pem
@@ -0,0 +1,35 @@
+-----BEGIN CERTIFICATE-----
+MIIGDjCCA/agAwIBAgIQBqdDgNTr/tQ1taP34Wq92DANBgkqhkiG9w0BAQwFADCB
+hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
+BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTIwMjEy
+MDAwMDAwWhcNMjcwMjExMjM1OTU5WjCBkjELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
+EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
+Q09NT0RPIENBIExpbWl0ZWQxODA2BgNVBAMTL0NPTU9ETyBSU0EgRXh0ZW5kZWQg
+VmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAlVbeVLTf1QJJe9FbXKKyHo+cK2JMK40SKPMalaPGEP0p3uGf
+CzhAk9HvbpUQ/OGQF3cs7nU+e2PsYZJuTzurgElr3wDqAwB/L3XVKC/sVmePgIOj
+vdwDmZOLlJFWW6G4ajo/Br0OksxgnP214J9mMF/b5pTwlWqvyIqvgNnmiDkBfBzA
+xSr3e5Wg8narbZtyOTDr0VdVAZ1YEZ18bYSPSeidCfw8/QpKdhQhXBZzQCMZdMO6
+WAqmli7eNuWf0MLw4eDBYuPCGEUZUaoXHugjddTI0JYT/8ck0YwLJ66eetw6YWNg
+iJctXQUL5Tvrrs46R3N2qPos3cCHF+msMJn4HwIDAQABo4IBaTCCAWUwHwYDVR0j
+BBgwFoAUu69+Aj36pvE8hI6t7jiY7NkyMtQwHQYDVR0OBBYEFDna/8ooFIqodBMI
+ueQOqdL6fp1pMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMD4G
+A1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwczovL3NlY3VyZS5j
+b21vZG8uY29tL0NQUzBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLmNvbW9k
+b2NhLmNvbS9DT01PRE9SU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBxBggr
+BgEFBQcBAQRlMGMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9jcnQuY29tb2RvY2EuY29t
+L0NPTU9ET1JTQUFkZFRydXN0Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2Nz
+cC5jb21vZG9jYS5jb20wDQYJKoZIhvcNAQEMBQADggIBAERCnUFRK0iIXZebeV4R
+AUpSGXtBLMeJPNBy3IX6WK/VJeQT+FhlZ58N/1eLqYVeyqZLsKeyLeCMIs37/3mk
+jCuN/gI9JN6pXV/kD0fQ22YlPodHDK4ixVAihNftSlka9pOlk7DgG4HyVsTIEFPk
+1Hax0VtpS3ey4E/EhOfUoFDuPPpE/NBXueEoU/1Tzdy5H3pAvTA/2GzS8+cHnx8i
+teoiccsq8FZ8/qyo0QYPFBRSTP5kKwxpKrgNUG4+BAe/eiCL+O5lCeHHSQgyPQ0o
+fkkdt0rvAucNgBfIXOBhYsvss2B5JdoaZXOcOBCgJjqwyBZ9kzEi7nQLiMBciUEA
+KKlHMd99SUWa9eanRRrSjhMQ34Ovmw2tfn6dNVA0BM7pINae253UqNpktNEvWS5e
+ojZh1CSggjMziqHRbO9haKPl0latxf1eYusVqHQSTC8xjOnB3xBLAer2VBvNfzu9
+XJ/B288ByvK6YBIhMe2pZLiySVgXbVrXzYxtvp5/4gJYp9vDLVj2dAZqmvZh+fYA
+tmnYOosxWd2R5nwnI4fdAw+PKowegwFOAWEMUnNt/AiiuSpm5HZNMaBWm9lTjaK2
+jwLI5jqmBNFI+8NKAnb9L9K8E7bobTQk+p0pisehKxTxlgBzuRPpwLk6R1YCcYAn
+pLwltum95OmYdBbxN4SBB7SC
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/goodcn1-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/goodcn1-cert.pem
new file mode 100644
index 000000000..d9205e03b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/goodcn1-cert.pem
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDkTCCAnmgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0
+IE5DIENBIDEwIBcNMTgwNTE2MDI0MDA0WhgPMjExODA1MTcwMjQwMDRaMIGeMSMw
+IQYDVQQKDBpHb29kIE5DIFRlc3QgQ2VydGlmaWNhdGUgMTEVMBMGA1UEAwwMd3d3
+Lmdvb2Qub3JnMRUwEwYDVQQDDAxhbnkuZ29vZC5jb20xETAPBgNVBAMMCG5vdC4u
+ZG5zMRAwDgYDVQQDDAdub3RAZG5zMREwDwYDVQQDDAhub3QtLmRuczERMA8GA1UE
+AwwIbm90LmRucy4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDigxI
+nlYVjHtrFI+Iv/3b0jeZbs1jVnPF6ZREk46BTNAVNZsq24jKFG6yK4n9vKA/JuS7
+jZe+gMX+sWh/S1IlsNDY8/Io1UsG/s1tmsvE2UrURUX4s8HnqB6AZ4Y9Cp4rSADe
+mD/YdekRf3HFA0IKQvIFRkpegj8uuWwILC0n/ozMNUlNmxCBlOmtFwjFxmNr9Txa
+ZeFvWvvc6oTubAETK4HcjLdimx1tePdd4+0mxJ/akQ3wVzUAI2ysijMmMJDzTxLs
+FPkw4yUtJHK0/H2yJtpoJ4wQjsWd6a8F7wY/pHszAud1M8QZJKQDzkJOMnqLKNLT
+OKw6dm1UG2J7iuqtAgMBAAGjXjBcMB0GA1UdDgQWBBSTKvqap2ab0z/UPrdDgc0V
+m88R3TAfBgNVHSMEGDAWgBQI0Zv55tVkcKDxaxqe7VLa3fVQQzAJBgNVHRMEAjAA
+MA8GA1UdEQQIMAaHBMCoAAEwDQYJKoZIhvcNAQELBQADggEBADcdm62qaOHbIDoa
+5oUjXGHSQjV1g4BFe6DLH5/CZ0wOws3QzfQbPIxJrp3yJgDcQyZNOE/xQlq/nASS
+thU6cUTB07voFVnbotB8YQuNU1wM9TAJOHC9LT1Y0J2GIP6QeXts6Cz6aBlqaQEZ
+IrGRLuKVZePTO0Haup0mZ91XoXs3CBzkSerl0XpFL7BeugSigrhprFRPB4UC3IWb
+pdNar61Wk4bN/COb6utRkK3iYk5YUTqYFib9EG4VBdxYfXv/tiBIGqQLnqPbId6w
+q+McpSEPF1DIcCyL0vEDdIVN0SzxMfnfHMx0Qp0sh2aydIZk4xfEqXHZgZthSrse
+u7nhn7s=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/goodcn1-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/goodcn1-key.pem
new file mode 100644
index 000000000..2ad660c6d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/goodcn1-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDDigxInlYVjHtr
+FI+Iv/3b0jeZbs1jVnPF6ZREk46BTNAVNZsq24jKFG6yK4n9vKA/JuS7jZe+gMX+
+sWh/S1IlsNDY8/Io1UsG/s1tmsvE2UrURUX4s8HnqB6AZ4Y9Cp4rSADemD/YdekR
+f3HFA0IKQvIFRkpegj8uuWwILC0n/ozMNUlNmxCBlOmtFwjFxmNr9TxaZeFvWvvc
+6oTubAETK4HcjLdimx1tePdd4+0mxJ/akQ3wVzUAI2ysijMmMJDzTxLsFPkw4yUt
+JHK0/H2yJtpoJ4wQjsWd6a8F7wY/pHszAud1M8QZJKQDzkJOMnqLKNLTOKw6dm1U
+G2J7iuqtAgMBAAECggEAeQ1xZVOAf36kuTnVUhdplTii6v3JcQIIUjG0dG/U/P8M
+otS45uNZ36CelvaVStwHaJEvcVzK4EjgSjiSNJvwkxzPbkA3XkgNVptPmdcG5yqO
+RLNOChVeqYdOurdcR1XXbXv57dPbUqpMS2TWjdzieW/QXKuTRsbjTo3D75tJqUO6
+1Bm4sSM3PogmsQwTP8HlZAmJXuSD+ZSB22Np5pT1dn5TvQU6xeA3NJR4ZO/HEZz4
+CHJEiOx2BuGD6M0V1ZL6DzEsyIS/KKsvj4I2F4ROAK1j3lSD5VqrYPXn3oEsQdlm
+OW8aVnHPYO6FI0LVLgcIEKxhdwGV3i6v/GRUe0Y9kQKBgQD0Zqn1trAuP5Peiy1K
+Wc91yRjQxQTwSD00hzXMtvKzkEIiLEuVZq9qrqQ2TRRa5xneDGHDuUY9eZY8JwEr
+l7f8CcfYC93PXLyRM2Gaz0jMxZxVPz5w7zssK3DZ+7JvH3nKkCUl7+Y0tH26qTO0
+wTD9w9jd9bf85SLVgk3zSbUDwwKBgQDM0b2ffZpxyA16h7w8ZBuk1Z+iumrxnn5/
+lKtffR2b4dZN37KiWw2c265vYhRfe/ANnVuagXb9aRM97yeQloRlWR10AaXJz3EB
+sromqFShkorYRhwZoRiJC0laLG3W76wKMRr2T6TM1UG9gJ0szdGFG/yUDU+9pTRo
+uq514rGgzwKBgQCGtsAgLF7YXzsGg/im7vInnn0LNk4OlAMInS7OdFk7GN0bMQdI
+hp1SVIk3VS1PHetoNbL9y3YoFIj3BxjiCnLjfhClyYSt9BQMhSHbzz31gUc2xfGJ
+FpSrOBawUMh97/+V4/ZV/vIJQyO6a+GQVJzIg9daIUMVJsgYoAaPf6VDOQKBgFyH
+eHnf/XDfpq8vOOuzcgWieG7EduHW72DlohIObNzqRq2BnKraJakyWXh6P6fvTsBn
+0WVYjY/n80hsjVw1k3RRsQuiXupv66aPvqcOLsWbdVxFOBaf/3yR+75gCfMq7Xbh
+PkP+MP5UbVGWE+uUw821mgKsjNSpGKcjhwM8uXBjAoGAFEU3O8gQXfocVB8lxUeU
+c0inLdAIgiw/36NPuW4NwKxzLOmHzlmvn7C98ihnbnGoQ0XBRfLw8siTbD3INgHY
+NA0JeK8Qrt56b6wK14w9RzLQTu9gy1pULW21p1wswdNK4tlxfnnnozISZAYxeqAx
+YMTtYZN77nb+yY4oE6XEugQ=
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/interCA.key b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/interCA.key
new file mode 100644
index 000000000..c32fe26bc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/interCA.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAu7NHo76UDp738A/nuEfvVkKL7a7Kjk8PJIYkRKouSZZgBW6Q
+xBWptfJ6UZLeoDnBjJ47hc7s+ohLkJnnsodAalgMKTIFjDLXhMyzgGqpBJf/ydvl
+oEWwP/KZsB32z1v3fn926euBaA9YUAHpwc15i8VaIREPQQPsRA0ZC/3AN2PpPztQ
+vTkYUkKyTbAfWhN8ymxR3fZjph+GjUrBfDp90qpUVTgkIp3uXOgAkndB1BI2MvWj
+m6mOO8kjVC281auculTozLNFvthv16q3FZMc3/W1aslQa6wCa529+f8v4itM1oCQ
+T/h14cK+ZjE7zbhIqwXlWLs/uoVHq1G7iYa9BQIDAQABAoIBABa8FldNBB3pP1rC
+cmytud2W3eACJeKqzMi9vrLachTTs/m0dLBrd0zke9BZm8GIfVsM52TDtYx66bww
+CBJls3WuCHsM5gMfPV+Gc8+AG8zEpGTMz7lj938nYVolpvliyE14Hu0ia2AxS58V
+PD0PKEO3ubz7lf9n/DwZ4gjDyX5r1Cq+thwPlIf4PbEcGHk5SYxNm2DGR0DNL676
+X7CrRu3JBa2mY+moTV/pMrjvwAInmSxs4RBO7ggdYEief/4cBYyzMdiQ1v0UxvdO
+674dBJJFG32akPrnPqza7U41ivoDPlgCpKWHDaZadI0Joozd2pw0Mq0a8cyig0BJ
+Wa3d9xkCgYEA9T3j8F52u+QMaMzV1VENUAwo0Sqhk8xU0r/4l5PsvCjOuJ7NZkkW
+EQnNOI++zaPCeBRV55X0A5E8Pi3uEdKt6m+wsncJzGEVNRwixfd0Ul7Itntq7u9L
+/DHTlwpQ4t4PLNu8/uSBDN9A2slY2WsoXkJsdYPgjkrS2rYkt5bHFN8CgYEAw+8w
+Qw/zTCBmerzYLJSsjz9rcD2hTtDw72UF1rvEg4QP/9v0I/OU7Lu0ds0KmKJcJfay
+ZDMeBT8tW6LFztqdFi24tKISfodfYdET32lNd4QnMtWhoqXXXNiJY5gQC16YmSJm
+R7Dgw9hBrr0323/lhhwDDysq1lgD9QbUVEacJpsCgYAoau/TIK5u3vHQn9mqE3af
+N7HObzk785QTO8JLsPx2Mj+Hm9x8PBVf736cEMzAdXnKcoeJ6GPT5q7IDKfM1i0F
+kyzK7OV3gpSNMTrl55eLL8XilUqVYGjkgo29udyE11Ym7XwjgiNmrLCynjZ/drKr
+fkUDxR1QNjK0CwrYGwhqfwKBgQDAYGn3foK4nRthqWdrJjLjlzZLBwgJldbqhjsc
+YlIJezImWnU0k2YGpioDd0DPKqLlV3pCLXptVmGXlpM3jags7YlsObGE8C+zoBAu
+DHtWPLgsDltckg6Jh8YltlkSgLe9q2vXOhEF2aBsDDb62nGmonxSeWTe/Z4tB56U
+fJu2vwKBgFnGbZIcH8sDR7Vwh0sjSKnFkZ1v0T4qsBKpDz9yCvZVIgIFXPkKnALT
++OEpQTuLVN/MZxVlc8qo8UFflJprDsK1/Rm3iPaw+lwErswgddNUKNLnLPjlxcEe
+nTinsfyf4i48+IW55UFVU118nyufNeDdasoU6SSBH/MdeNq4hrTa
+-----END RSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/interCA.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/interCA.pem
new file mode 100644
index 000000000..35568abe1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/interCA.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDgDCCAmigAwIBAgIJANnoWlLlEsTgMA0GCSqGSIb3DQEBCwUAMFYxCzAJBgNV
+BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQxDzANBgNVBAMMBnJvb3RDQTAeFw0xNTA3MDIxMzE3MDVa
+Fw0zNTA3MDIxMzE3MDVaMFcxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0
+YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMT
+B2ludGVyQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7s0ejvpQO
+nvfwD+e4R+9WQovtrsqOTw8khiREqi5JlmAFbpDEFam18npRkt6gOcGMnjuFzuz6
+iEuQmeeyh0BqWAwpMgWMMteEzLOAaqkEl//J2+WgRbA/8pmwHfbPW/d+f3bp64Fo
+D1hQAenBzXmLxVohEQ9BA+xEDRkL/cA3Y+k/O1C9ORhSQrJNsB9aE3zKbFHd9mOm
+H4aNSsF8On3SqlRVOCQine5c6ACSd0HUEjYy9aObqY47ySNULbzVq5y6VOjMs0W+
+2G/XqrcVkxzf9bVqyVBrrAJrnb35/y/iK0zWgJBP+HXhwr5mMTvNuEirBeVYuz+6
+hUerUbuJhr0FAgMBAAGjUDBOMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFBj61iO5
+j11dE30+j6iRx9lhwBcuMB8GA1UdIwQYMBaAFIVWiTXinwAa4YYDC0uvdhJrM239
+MA0GCSqGSIb3DQEBCwUAA4IBAQDAU0MvL/yZpmibhxUsoSsa97UJbejn5IbxpPzZ
+4WHw8lsoUGs12ZHzQJ9LxkZVeuccFXy9yFEHW56GTlkBmD2qrddlmQCfQ3m8jtZ9
+Hh5feKAyrqfmfsWF5QPjAmdj/MFdq+yMJVosDftkmUmaBHjzbvbcq1sWh/6drH8U
+7pdYRpfeEY8dHSU6FHwVN/H8VaBB7vYYc2wXwtk8On7z2ocIVHn9RPkcLwmwJjb/
+e4jmcYiyZev22KXQudeHc4w6crWiEFkVspomn5PqDmza3rkdB3baXFVZ6sd23ufU
+wjkiKKtwRBwU+5tCCagQZoeQ5dZXQThkiH2XEIOCOLxyD/tb
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/leaf.key b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/leaf.key
new file mode 100644
index 000000000..a1b172124
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/leaf.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEAv0Qo9WC/BKA70LtQJdwVGSXqr9dut3cQmiFzTb/SaWldjOT1
+sRNDFxSzdTJjU/8cIDEZvaTIwRxP/dtVQLjc+4jzrUwz93NuZYlsEWUEUg4Lrnfs
+0Nz50yHk4rJhVxWjb8Ii/wRBViWHFExP7CwTkXiTclC1bCqTuWkjxF3thTfTsttR
+yY7qNkz2JpNx0guD8v4otQoYjA5AEZvK4IXLwOwxol5xBTMvIrvvff2kkh+c7OC2
+QVbUTow/oppjqIKCx2maNHCtLFTJELf3fwtRJLJsy4fKGP0/6kpZc8Sp88WK4B4F
+auF9IV1CmoAJUC1vJxhagHIKfVtFjUWs8GPobQIDAQABAoIBAB1fCiskQDElqgnT
+uesWcOb7u55lJstlrVb97Ab0fgtR8tvADTq0Colw1F4a7sXnVxpab+l/dJSzFFWX
+aPAXc1ftH/5sxU4qm7lb8Qx6xr8TCRgxslwgkvypJ8zoN6p32DFBTr56mM3x1Vx4
+m41Y92hPa9USL8n8f9LpImT1R5Q9ShI/RUCowPyzhC6OGkFSBJu72nyA3WK0znXn
+q5TNsTRdJLOug7eoJJvhOPfy3neNQV0f2jQ+2wDKCYvn6i4j9FSLgYC/vorqofEd
+vFBHxl374117F6DXdBChyD4CD5vsplB0zcExRUCT5+iBqf5uc8CbLHeyNk6vSaf5
+BljHWsECgYEA93QnlKsVycgCQqHt2q8EIZ5p7ksGYRVfBEzgetsNdpxvSwrLyLQE
+L5AKG3upndOofCeJnLuQF1j954FjCs5Y+8Sy2H1D1EPrHSBp4ig2F5aOxT3vYROd
+v+/mF4ZUzlIlv3jNDz5IoLaxm9vhXTtLLUtQyTueGDmqwlht0Kr3/gcCgYEAxd86
+Q23jT4DmJqUl+g0lWdc2dgej0jwFfJ2BEw/Q55vHjqj96oAX5QQZFOUhZU8Otd/D
+lLzlsFn0pOaSW/RB4l5Kv8ab+ZpxfAV6Gq47nlfzmEGGx4wcoL0xkHufiXg0sqaG
+UtEMSKFhxPQZhWojUimK/+YIF69molxA6G9miOsCgYEA8mICSytxwh55qE74rtXz
+1AJZfKJcc0f9tDahQ3XBsEb29Kh0h/lciEIsxFLTB9dFF6easb0/HL98pQElxHXu
+z14SWOAKSqbka7lOPcppgZ1l52oNSiduw4z28mAQPbBVbUGkiqPVfCa3vhUYoLvt
+nUZCsXoGF3CVBJydpGFzXI0CgYEAtt3Jg72PoM8YZEimI0R462F4xHXlEYtE6tjJ
+C+vG/fU65P4Kw+ijrJQv9d6YEX+RscXdg51bjLJl5OvuAStopCLOZBPR3Ei+bobF
+RNkW4gyYZHLSc6JqZqbSopuNYkeENEKvyuPFvW3f5FxPJbxkbi9UdZCKlBEXAh/O
+IMGregcCgYBC8bS7zk6KNDy8q2uC/m/g6LRMxpb8G4jsrcLoyuJs3zDckBjQuLJQ
+IOMXcQBWN1h+DKekF2ecr3fJAJyEv4pU4Ct2r/ZTYFMdJTyAbjw0mqOjUR4nsdOh
+t/vCbt0QW3HXYTcVdCnFqBtelKnI12KoC0jAO9EAJGZ6kE/NwG6dQg==
+-----END RSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/leaf.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/leaf.pem
new file mode 100644
index 000000000..bb94d126e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/leaf.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDfjCCAmagAwIBAgIJAKRNsDKacUqNMA0GCSqGSIb3DQEBCwUAMFoxCzAJBgNV
+BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQxEzARBgNVBAMTCnN1YmludGVyQ0EwHhcNMTUwNzAyMTMx
+OTQ5WhcNMzUwNzAyMTMxOTQ5WjBUMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29t
+ZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMQ0wCwYD
+VQQDEwRsZWFmMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv0Qo9WC/
+BKA70LtQJdwVGSXqr9dut3cQmiFzTb/SaWldjOT1sRNDFxSzdTJjU/8cIDEZvaTI
+wRxP/dtVQLjc+4jzrUwz93NuZYlsEWUEUg4Lrnfs0Nz50yHk4rJhVxWjb8Ii/wRB
+ViWHFExP7CwTkXiTclC1bCqTuWkjxF3thTfTsttRyY7qNkz2JpNx0guD8v4otQoY
+jA5AEZvK4IXLwOwxol5xBTMvIrvvff2kkh+c7OC2QVbUTow/oppjqIKCx2maNHCt
+LFTJELf3fwtRJLJsy4fKGP0/6kpZc8Sp88WK4B4FauF9IV1CmoAJUC1vJxhagHIK
+fVtFjUWs8GPobQIDAQABo00wSzAJBgNVHRMEAjAAMB0GA1UdDgQWBBQcHcT+8SVG
+IRlN9YTuM9rlz7UZfzAfBgNVHSMEGDAWgBTpZ30QdMGarrhMPwk+HHAV3R8aTzAN
+BgkqhkiG9w0BAQsFAAOCAQEAGjmSkF8is+v0/RLcnSRiCXENz+yNi4pFCAt6dOtT
+6Gtpqa1tY5It9lVppfWb26JrygMIzOr/fB0r1Q7FtZ/7Ft3P6IXVdk3GDO0QsORD
+2dRAejhYpc5c7joHxAw9oRfKrEqE+ihVPUTcfcIuBaalvuhkpQRmKP71ws5DVzOw
+QhnMd0TtIrbKHaNQ4kNsmSY5fQolwB0LtNfTus7OEFdcZWhOXrWImKXN9jewPKdV
+mSG34NfXOnA6qx0eQg06z+TkdrptH6j1Va2vS1/bL+h1GxjpTHlvTGaZYxaloIjw
+y/EzY5jygRoABnR3eBm15CYZwwKL9izIq1H3OhymEi/Ycg==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/many-constraints.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/many-constraints.pem
new file mode 100644
index 000000000..13b8ab29b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/many-constraints.pem
@@ -0,0 +1,292 @@
+-----BEGIN CERTIFICATE-----
+MII2MzCCNRugAwIBAgIBATANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJDQTAg
+Fw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowDTELMAkGA1UEAxMCQ0Ew
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6C9qEGRIBQXV8Lj29vVu+
+U+tyXzSSinWIumK5ijPhCm3DLnv4RayxkFwemtnkGRZ/o94ZnsXkBfU/IlsYdkuq
+8wK9WI/ql3gwWjH+KARIhIQcSLGiJcLN6kGuG2nlRBKMcPgPiEq2B0yBXFf4tG3C
+Bbeae7+8G7uvOmv8NLyKj32neWpnUCTL5o2VwyPoxjLxT5gUR69v9XSVFj2irCZb
+sEedeKSb++LqyMhLfnRTzNv+ZHNh4izZHrktR25MvnT5QyBq32hx7AjZ2/xo70Om
+H7w10a2DwsVjJNMdxTEmgyvU9M6CeYRPX1Ykfg+sXCTtkTVAlBDUviIqY95CKy25
+AgMBAAGjgjOaMIIzljAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0lBAwwCgYIKwYBBQUH
+AwEwDwYDVR0TAQH/BAUwAwEB/zCCM1wGA1UdHgSCM1MwgjNPoIIZqDAJggd0MC50
+ZXN0MAmCB3QxLnRlc3QwCYIHdDIudGVzdDAJggd0My50ZXN0MAmCB3Q0LnRlc3Qw
+CYIHdDUudGVzdDAJggd0Ni50ZXN0MAmCB3Q3LnRlc3QwCYIHdDgudGVzdDAJggd0
+OS50ZXN0MAqCCHQxMC50ZXN0MAqCCHQxMS50ZXN0MAqCCHQxMi50ZXN0MAqCCHQx
+My50ZXN0MAqCCHQxNC50ZXN0MAqCCHQxNS50ZXN0MAqCCHQxNi50ZXN0MAqCCHQx
+Ny50ZXN0MAqCCHQxOC50ZXN0MAqCCHQxOS50ZXN0MAqCCHQyMC50ZXN0MAqCCHQy
+MS50ZXN0MAqCCHQyMi50ZXN0MAqCCHQyMy50ZXN0MAqCCHQyNC50ZXN0MAqCCHQy
+NS50ZXN0MAqCCHQyNi50ZXN0MAqCCHQyNy50ZXN0MAqCCHQyOC50ZXN0MAqCCHQy
+OS50ZXN0MAqCCHQzMC50ZXN0MAqCCHQzMS50ZXN0MAqCCHQzMi50ZXN0MAqCCHQz
+My50ZXN0MAqCCHQzNC50ZXN0MAqCCHQzNS50ZXN0MAqCCHQzNi50ZXN0MAqCCHQz
+Ny50ZXN0MAqCCHQzOC50ZXN0MAqCCHQzOS50ZXN0MAqCCHQ0MC50ZXN0MAqCCHQ0
+MS50ZXN0MAqCCHQ0Mi50ZXN0MAqCCHQ0My50ZXN0MAqCCHQ0NC50ZXN0MAqCCHQ0
+NS50ZXN0MAqCCHQ0Ni50ZXN0MAqCCHQ0Ny50ZXN0MAqCCHQ0OC50ZXN0MAqCCHQ0
+OS50ZXN0MAqCCHQ1MC50ZXN0MAqCCHQ1MS50ZXN0MAqCCHQ1Mi50ZXN0MAqCCHQ1
+My50ZXN0MAqCCHQ1NC50ZXN0MAqCCHQ1NS50ZXN0MAqCCHQ1Ni50ZXN0MAqCCHQ1
+Ny50ZXN0MAqCCHQ1OC50ZXN0MAqCCHQ1OS50ZXN0MAqCCHQ2MC50ZXN0MAqCCHQ2
+MS50ZXN0MAqCCHQ2Mi50ZXN0MAqCCHQ2My50ZXN0MAqCCHQ2NC50ZXN0MAqCCHQ2
+NS50ZXN0MAqCCHQ2Ni50ZXN0MAqCCHQ2Ny50ZXN0MAqCCHQ2OC50ZXN0MAqCCHQ2
+OS50ZXN0MAqCCHQ3MC50ZXN0MAqCCHQ3MS50ZXN0MAqCCHQ3Mi50ZXN0MAqCCHQ3
+My50ZXN0MAqCCHQ3NC50ZXN0MAqCCHQ3NS50ZXN0MAqCCHQ3Ni50ZXN0MAqCCHQ3
+Ny50ZXN0MAqCCHQ3OC50ZXN0MAqCCHQ3OS50ZXN0MAqCCHQ4MC50ZXN0MAqCCHQ4
+MS50ZXN0MAqCCHQ4Mi50ZXN0MAqCCHQ4My50ZXN0MAqCCHQ4NC50ZXN0MAqCCHQ4
+NS50ZXN0MAqCCHQ4Ni50ZXN0MAqCCHQ4Ny50ZXN0MAqCCHQ4OC50ZXN0MAqCCHQ4
+OS50ZXN0MAqCCHQ5MC50ZXN0MAqCCHQ5MS50ZXN0MAqCCHQ5Mi50ZXN0MAqCCHQ5
+My50ZXN0MAqCCHQ5NC50ZXN0MAqCCHQ5NS50ZXN0MAqCCHQ5Ni50ZXN0MAqCCHQ5
+Ny50ZXN0MAqCCHQ5OC50ZXN0MAqCCHQ5OS50ZXN0MAuCCXQxMDAudGVzdDALggl0
+MTAxLnRlc3QwC4IJdDEwMi50ZXN0MAuCCXQxMDMudGVzdDALggl0MTA0LnRlc3Qw
+C4IJdDEwNS50ZXN0MAuCCXQxMDYudGVzdDALggl0MTA3LnRlc3QwC4IJdDEwOC50
+ZXN0MAuCCXQxMDkudGVzdDALggl0MTEwLnRlc3QwC4IJdDExMS50ZXN0MAuCCXQx
+MTIudGVzdDALggl0MTEzLnRlc3QwC4IJdDExNC50ZXN0MAuCCXQxMTUudGVzdDAL
+ggl0MTE2LnRlc3QwC4IJdDExNy50ZXN0MAuCCXQxMTgudGVzdDALggl0MTE5LnRl
+c3QwC4IJdDEyMC50ZXN0MAuCCXQxMjEudGVzdDALggl0MTIyLnRlc3QwC4IJdDEy
+My50ZXN0MAuCCXQxMjQudGVzdDALggl0MTI1LnRlc3QwC4IJdDEyNi50ZXN0MAuC
+CXQxMjcudGVzdDALggl0MTI4LnRlc3QwC4IJdDEyOS50ZXN0MAuCCXQxMzAudGVz
+dDALggl0MTMxLnRlc3QwC4IJdDEzMi50ZXN0MAuCCXQxMzMudGVzdDALggl0MTM0
+LnRlc3QwC4IJdDEzNS50ZXN0MAuCCXQxMzYudGVzdDALggl0MTM3LnRlc3QwC4IJ
+dDEzOC50ZXN0MAuCCXQxMzkudGVzdDALggl0MTQwLnRlc3QwC4IJdDE0MS50ZXN0
+MAuCCXQxNDIudGVzdDALggl0MTQzLnRlc3QwC4IJdDE0NC50ZXN0MAuCCXQxNDUu
+dGVzdDALggl0MTQ2LnRlc3QwC4IJdDE0Ny50ZXN0MAuCCXQxNDgudGVzdDALggl0
+MTQ5LnRlc3QwC4IJdDE1MC50ZXN0MAuCCXQxNTEudGVzdDALggl0MTUyLnRlc3Qw
+C4IJdDE1My50ZXN0MAuCCXQxNTQudGVzdDALggl0MTU1LnRlc3QwC4IJdDE1Ni50
+ZXN0MAuCCXQxNTcudGVzdDALggl0MTU4LnRlc3QwC4IJdDE1OS50ZXN0MAuCCXQx
+NjAudGVzdDALggl0MTYxLnRlc3QwC4IJdDE2Mi50ZXN0MAuCCXQxNjMudGVzdDAL
+ggl0MTY0LnRlc3QwC4IJdDE2NS50ZXN0MAuCCXQxNjYudGVzdDALggl0MTY3LnRl
+c3QwC4IJdDE2OC50ZXN0MAuCCXQxNjkudGVzdDALggl0MTcwLnRlc3QwC4IJdDE3
+MS50ZXN0MAuCCXQxNzIudGVzdDALggl0MTczLnRlc3QwC4IJdDE3NC50ZXN0MAuC
+CXQxNzUudGVzdDALggl0MTc2LnRlc3QwC4IJdDE3Ny50ZXN0MAuCCXQxNzgudGVz
+dDALggl0MTc5LnRlc3QwC4IJdDE4MC50ZXN0MAuCCXQxODEudGVzdDALggl0MTgy
+LnRlc3QwC4IJdDE4My50ZXN0MAuCCXQxODQudGVzdDALggl0MTg1LnRlc3QwC4IJ
+dDE4Ni50ZXN0MAuCCXQxODcudGVzdDALggl0MTg4LnRlc3QwC4IJdDE4OS50ZXN0
+MAuCCXQxOTAudGVzdDALggl0MTkxLnRlc3QwC4IJdDE5Mi50ZXN0MAuCCXQxOTMu
+dGVzdDALggl0MTk0LnRlc3QwC4IJdDE5NS50ZXN0MAuCCXQxOTYudGVzdDALggl0
+MTk3LnRlc3QwC4IJdDE5OC50ZXN0MAuCCXQxOTkudGVzdDALggl0MjAwLnRlc3Qw
+C4IJdDIwMS50ZXN0MAuCCXQyMDIudGVzdDALggl0MjAzLnRlc3QwC4IJdDIwNC50
+ZXN0MAuCCXQyMDUudGVzdDALggl0MjA2LnRlc3QwC4IJdDIwNy50ZXN0MAuCCXQy
+MDgudGVzdDALggl0MjA5LnRlc3QwC4IJdDIxMC50ZXN0MAuCCXQyMTEudGVzdDAL
+ggl0MjEyLnRlc3QwC4IJdDIxMy50ZXN0MAuCCXQyMTQudGVzdDALggl0MjE1LnRl
+c3QwC4IJdDIxNi50ZXN0MAuCCXQyMTcudGVzdDALggl0MjE4LnRlc3QwC4IJdDIx
+OS50ZXN0MAuCCXQyMjAudGVzdDALggl0MjIxLnRlc3QwC4IJdDIyMi50ZXN0MAuC
+CXQyMjMudGVzdDALggl0MjI0LnRlc3QwC4IJdDIyNS50ZXN0MAuCCXQyMjYudGVz
+dDALggl0MjI3LnRlc3QwC4IJdDIyOC50ZXN0MAuCCXQyMjkudGVzdDALggl0MjMw
+LnRlc3QwC4IJdDIzMS50ZXN0MAuCCXQyMzIudGVzdDALggl0MjMzLnRlc3QwC4IJ
+dDIzNC50ZXN0MAuCCXQyMzUudGVzdDALggl0MjM2LnRlc3QwC4IJdDIzNy50ZXN0
+MAuCCXQyMzgudGVzdDALggl0MjM5LnRlc3QwC4IJdDI0MC50ZXN0MAuCCXQyNDEu
+dGVzdDALggl0MjQyLnRlc3QwC4IJdDI0My50ZXN0MAuCCXQyNDQudGVzdDALggl0
+MjQ1LnRlc3QwC4IJdDI0Ni50ZXN0MAuCCXQyNDcudGVzdDALggl0MjQ4LnRlc3Qw
+C4IJdDI0OS50ZXN0MAuCCXQyNTAudGVzdDALggl0MjUxLnRlc3QwC4IJdDI1Mi50
+ZXN0MAuCCXQyNTMudGVzdDALggl0MjU0LnRlc3QwC4IJdDI1NS50ZXN0MAuCCXQy
+NTYudGVzdDALggl0MjU3LnRlc3QwC4IJdDI1OC50ZXN0MAuCCXQyNTkudGVzdDAL
+ggl0MjYwLnRlc3QwC4IJdDI2MS50ZXN0MAuCCXQyNjIudGVzdDALggl0MjYzLnRl
+c3QwC4IJdDI2NC50ZXN0MAuCCXQyNjUudGVzdDALggl0MjY2LnRlc3QwC4IJdDI2
+Ny50ZXN0MAuCCXQyNjgudGVzdDALggl0MjY5LnRlc3QwC4IJdDI3MC50ZXN0MAuC
+CXQyNzEudGVzdDALggl0MjcyLnRlc3QwC4IJdDI3My50ZXN0MAuCCXQyNzQudGVz
+dDALggl0Mjc1LnRlc3QwC4IJdDI3Ni50ZXN0MAuCCXQyNzcudGVzdDALggl0Mjc4
+LnRlc3QwC4IJdDI3OS50ZXN0MAuCCXQyODAudGVzdDALggl0MjgxLnRlc3QwC4IJ
+dDI4Mi50ZXN0MAuCCXQyODMudGVzdDALggl0Mjg0LnRlc3QwC4IJdDI4NS50ZXN0
+MAuCCXQyODYudGVzdDALggl0Mjg3LnRlc3QwC4IJdDI4OC50ZXN0MAuCCXQyODku
+dGVzdDALggl0MjkwLnRlc3QwC4IJdDI5MS50ZXN0MAuCCXQyOTIudGVzdDALggl0
+MjkzLnRlc3QwC4IJdDI5NC50ZXN0MAuCCXQyOTUudGVzdDALggl0Mjk2LnRlc3Qw
+C4IJdDI5Ny50ZXN0MAuCCXQyOTgudGVzdDALggl0Mjk5LnRlc3QwC4IJdDMwMC50
+ZXN0MAuCCXQzMDEudGVzdDALggl0MzAyLnRlc3QwC4IJdDMwMy50ZXN0MAuCCXQz
+MDQudGVzdDALggl0MzA1LnRlc3QwC4IJdDMwNi50ZXN0MAuCCXQzMDcudGVzdDAL
+ggl0MzA4LnRlc3QwC4IJdDMwOS50ZXN0MAuCCXQzMTAudGVzdDALggl0MzExLnRl
+c3QwC4IJdDMxMi50ZXN0MAuCCXQzMTMudGVzdDALggl0MzE0LnRlc3QwC4IJdDMx
+NS50ZXN0MAuCCXQzMTYudGVzdDALggl0MzE3LnRlc3QwC4IJdDMxOC50ZXN0MAuC
+CXQzMTkudGVzdDALggl0MzIwLnRlc3QwC4IJdDMyMS50ZXN0MAuCCXQzMjIudGVz
+dDALggl0MzIzLnRlc3QwC4IJdDMyNC50ZXN0MAuCCXQzMjUudGVzdDALggl0MzI2
+LnRlc3QwC4IJdDMyNy50ZXN0MAuCCXQzMjgudGVzdDALggl0MzI5LnRlc3QwC4IJ
+dDMzMC50ZXN0MAuCCXQzMzEudGVzdDALggl0MzMyLnRlc3QwC4IJdDMzMy50ZXN0
+MAuCCXQzMzQudGVzdDALggl0MzM1LnRlc3QwC4IJdDMzNi50ZXN0MAuCCXQzMzcu
+dGVzdDALggl0MzM4LnRlc3QwC4IJdDMzOS50ZXN0MAuCCXQzNDAudGVzdDALggl0
+MzQxLnRlc3QwC4IJdDM0Mi50ZXN0MAuCCXQzNDMudGVzdDALggl0MzQ0LnRlc3Qw
+C4IJdDM0NS50ZXN0MAuCCXQzNDYudGVzdDALggl0MzQ3LnRlc3QwC4IJdDM0OC50
+ZXN0MAuCCXQzNDkudGVzdDALggl0MzUwLnRlc3QwC4IJdDM1MS50ZXN0MAuCCXQz
+NTIudGVzdDALggl0MzUzLnRlc3QwC4IJdDM1NC50ZXN0MAuCCXQzNTUudGVzdDAL
+ggl0MzU2LnRlc3QwC4IJdDM1Ny50ZXN0MAuCCXQzNTgudGVzdDALggl0MzU5LnRl
+c3QwC4IJdDM2MC50ZXN0MAuCCXQzNjEudGVzdDALggl0MzYyLnRlc3QwC4IJdDM2
+My50ZXN0MAuCCXQzNjQudGVzdDALggl0MzY1LnRlc3QwC4IJdDM2Ni50ZXN0MAuC
+CXQzNjcudGVzdDALggl0MzY4LnRlc3QwC4IJdDM2OS50ZXN0MAuCCXQzNzAudGVz
+dDALggl0MzcxLnRlc3QwC4IJdDM3Mi50ZXN0MAuCCXQzNzMudGVzdDALggl0Mzc0
+LnRlc3QwC4IJdDM3NS50ZXN0MAuCCXQzNzYudGVzdDALggl0Mzc3LnRlc3QwC4IJ
+dDM3OC50ZXN0MAuCCXQzNzkudGVzdDALggl0MzgwLnRlc3QwC4IJdDM4MS50ZXN0
+MAuCCXQzODIudGVzdDALggl0MzgzLnRlc3QwC4IJdDM4NC50ZXN0MAuCCXQzODUu
+dGVzdDALggl0Mzg2LnRlc3QwC4IJdDM4Ny50ZXN0MAuCCXQzODgudGVzdDALggl0
+Mzg5LnRlc3QwC4IJdDM5MC50ZXN0MAuCCXQzOTEudGVzdDALggl0MzkyLnRlc3Qw
+C4IJdDM5My50ZXN0MAuCCXQzOTQudGVzdDALggl0Mzk1LnRlc3QwC4IJdDM5Ni50
+ZXN0MAuCCXQzOTcudGVzdDALggl0Mzk4LnRlc3QwC4IJdDM5OS50ZXN0MAuCCXQ0
+MDAudGVzdDALggl0NDAxLnRlc3QwC4IJdDQwMi50ZXN0MAuCCXQ0MDMudGVzdDAL
+ggl0NDA0LnRlc3QwC4IJdDQwNS50ZXN0MAuCCXQ0MDYudGVzdDALggl0NDA3LnRl
+c3QwC4IJdDQwOC50ZXN0MAuCCXQ0MDkudGVzdDALggl0NDEwLnRlc3QwC4IJdDQx
+MS50ZXN0MAuCCXQ0MTIudGVzdDALggl0NDEzLnRlc3QwC4IJdDQxNC50ZXN0MAuC
+CXQ0MTUudGVzdDALggl0NDE2LnRlc3QwC4IJdDQxNy50ZXN0MAuCCXQ0MTgudGVz
+dDALggl0NDE5LnRlc3QwC4IJdDQyMC50ZXN0MAuCCXQ0MjEudGVzdDALggl0NDIy
+LnRlc3QwC4IJdDQyMy50ZXN0MAuCCXQ0MjQudGVzdDALggl0NDI1LnRlc3QwC4IJ
+dDQyNi50ZXN0MAuCCXQ0MjcudGVzdDALggl0NDI4LnRlc3QwC4IJdDQyOS50ZXN0
+MAuCCXQ0MzAudGVzdDALggl0NDMxLnRlc3QwC4IJdDQzMi50ZXN0MAuCCXQ0MzMu
+dGVzdDALggl0NDM0LnRlc3QwC4IJdDQzNS50ZXN0MAuCCXQ0MzYudGVzdDALggl0
+NDM3LnRlc3QwC4IJdDQzOC50ZXN0MAuCCXQ0MzkudGVzdDALggl0NDQwLnRlc3Qw
+C4IJdDQ0MS50ZXN0MAuCCXQ0NDIudGVzdDALggl0NDQzLnRlc3QwC4IJdDQ0NC50
+ZXN0MAuCCXQ0NDUudGVzdDALggl0NDQ2LnRlc3QwC4IJdDQ0Ny50ZXN0MAuCCXQ0
+NDgudGVzdDALggl0NDQ5LnRlc3QwC4IJdDQ1MC50ZXN0MAuCCXQ0NTEudGVzdDAL
+ggl0NDUyLnRlc3QwC4IJdDQ1My50ZXN0MAuCCXQ0NTQudGVzdDALggl0NDU1LnRl
+c3QwC4IJdDQ1Ni50ZXN0MAuCCXQ0NTcudGVzdDALggl0NDU4LnRlc3QwC4IJdDQ1
+OS50ZXN0MAuCCXQ0NjAudGVzdDALggl0NDYxLnRlc3QwC4IJdDQ2Mi50ZXN0MAuC
+CXQ0NjMudGVzdDALggl0NDY0LnRlc3QwC4IJdDQ2NS50ZXN0MAuCCXQ0NjYudGVz
+dDALggl0NDY3LnRlc3QwC4IJdDQ2OC50ZXN0MAuCCXQ0NjkudGVzdDALggl0NDcw
+LnRlc3QwC4IJdDQ3MS50ZXN0MAuCCXQ0NzIudGVzdDALggl0NDczLnRlc3QwC4IJ
+dDQ3NC50ZXN0MAuCCXQ0NzUudGVzdDALggl0NDc2LnRlc3QwC4IJdDQ3Ny50ZXN0
+MAuCCXQ0NzgudGVzdDALggl0NDc5LnRlc3QwC4IJdDQ4MC50ZXN0MAuCCXQ0ODEu
+dGVzdDALggl0NDgyLnRlc3QwC4IJdDQ4My50ZXN0MAuCCXQ0ODQudGVzdDALggl0
+NDg1LnRlc3QwC4IJdDQ4Ni50ZXN0MAuCCXQ0ODcudGVzdDALggl0NDg4LnRlc3Qw
+C4IJdDQ4OS50ZXN0MAuCCXQ0OTAudGVzdDALggl0NDkxLnRlc3QwC4IJdDQ5Mi50
+ZXN0MAuCCXQ0OTMudGVzdDALggl0NDk0LnRlc3QwC4IJdDQ5NS50ZXN0MAuCCXQ0
+OTYudGVzdDALggl0NDk3LnRlc3QwC4IJdDQ5OC50ZXN0MAuCCXQ0OTkudGVzdDAL
+ggl0NTAwLnRlc3QwC4IJdDUwMS50ZXN0MAuCCXQ1MDIudGVzdDALggl0NTAzLnRl
+c3QwC4IJdDUwNC50ZXN0MAuCCXQ1MDUudGVzdDALggl0NTA2LnRlc3QwC4IJdDUw
+Ny50ZXN0MAuCCXQ1MDgudGVzdDALggl0NTA5LnRlc3QwC4IJdDUxMC50ZXN0MAuC
+CXQ1MTEudGVzdDALggl0NTEyLnRlc3QwB4IFLnRlc3ShghmfMAmCB3gwLnRlc3Qw
+CYIHeDEudGVzdDAJggd4Mi50ZXN0MAmCB3gzLnRlc3QwCYIHeDQudGVzdDAJggd4
+NS50ZXN0MAmCB3g2LnRlc3QwCYIHeDcudGVzdDAJggd4OC50ZXN0MAmCB3g5LnRl
+c3QwCoIIeDEwLnRlc3QwCoIIeDExLnRlc3QwCoIIeDEyLnRlc3QwCoIIeDEzLnRl
+c3QwCoIIeDE0LnRlc3QwCoIIeDE1LnRlc3QwCoIIeDE2LnRlc3QwCoIIeDE3LnRl
+c3QwCoIIeDE4LnRlc3QwCoIIeDE5LnRlc3QwCoIIeDIwLnRlc3QwCoIIeDIxLnRl
+c3QwCoIIeDIyLnRlc3QwCoIIeDIzLnRlc3QwCoIIeDI0LnRlc3QwCoIIeDI1LnRl
+c3QwCoIIeDI2LnRlc3QwCoIIeDI3LnRlc3QwCoIIeDI4LnRlc3QwCoIIeDI5LnRl
+c3QwCoIIeDMwLnRlc3QwCoIIeDMxLnRlc3QwCoIIeDMyLnRlc3QwCoIIeDMzLnRl
+c3QwCoIIeDM0LnRlc3QwCoIIeDM1LnRlc3QwCoIIeDM2LnRlc3QwCoIIeDM3LnRl
+c3QwCoIIeDM4LnRlc3QwCoIIeDM5LnRlc3QwCoIIeDQwLnRlc3QwCoIIeDQxLnRl
+c3QwCoIIeDQyLnRlc3QwCoIIeDQzLnRlc3QwCoIIeDQ0LnRlc3QwCoIIeDQ1LnRl
+c3QwCoIIeDQ2LnRlc3QwCoIIeDQ3LnRlc3QwCoIIeDQ4LnRlc3QwCoIIeDQ5LnRl
+c3QwCoIIeDUwLnRlc3QwCoIIeDUxLnRlc3QwCoIIeDUyLnRlc3QwCoIIeDUzLnRl
+c3QwCoIIeDU0LnRlc3QwCoIIeDU1LnRlc3QwCoIIeDU2LnRlc3QwCoIIeDU3LnRl
+c3QwCoIIeDU4LnRlc3QwCoIIeDU5LnRlc3QwCoIIeDYwLnRlc3QwCoIIeDYxLnRl
+c3QwCoIIeDYyLnRlc3QwCoIIeDYzLnRlc3QwCoIIeDY0LnRlc3QwCoIIeDY1LnRl
+c3QwCoIIeDY2LnRlc3QwCoIIeDY3LnRlc3QwCoIIeDY4LnRlc3QwCoIIeDY5LnRl
+c3QwCoIIeDcwLnRlc3QwCoIIeDcxLnRlc3QwCoIIeDcyLnRlc3QwCoIIeDczLnRl
+c3QwCoIIeDc0LnRlc3QwCoIIeDc1LnRlc3QwCoIIeDc2LnRlc3QwCoIIeDc3LnRl
+c3QwCoIIeDc4LnRlc3QwCoIIeDc5LnRlc3QwCoIIeDgwLnRlc3QwCoIIeDgxLnRl
+c3QwCoIIeDgyLnRlc3QwCoIIeDgzLnRlc3QwCoIIeDg0LnRlc3QwCoIIeDg1LnRl
+c3QwCoIIeDg2LnRlc3QwCoIIeDg3LnRlc3QwCoIIeDg4LnRlc3QwCoIIeDg5LnRl
+c3QwCoIIeDkwLnRlc3QwCoIIeDkxLnRlc3QwCoIIeDkyLnRlc3QwCoIIeDkzLnRl
+c3QwCoIIeDk0LnRlc3QwCoIIeDk1LnRlc3QwCoIIeDk2LnRlc3QwCoIIeDk3LnRl
+c3QwCoIIeDk4LnRlc3QwCoIIeDk5LnRlc3QwC4IJeDEwMC50ZXN0MAuCCXgxMDEu
+dGVzdDALggl4MTAyLnRlc3QwC4IJeDEwMy50ZXN0MAuCCXgxMDQudGVzdDALggl4
+MTA1LnRlc3QwC4IJeDEwNi50ZXN0MAuCCXgxMDcudGVzdDALggl4MTA4LnRlc3Qw
+C4IJeDEwOS50ZXN0MAuCCXgxMTAudGVzdDALggl4MTExLnRlc3QwC4IJeDExMi50
+ZXN0MAuCCXgxMTMudGVzdDALggl4MTE0LnRlc3QwC4IJeDExNS50ZXN0MAuCCXgx
+MTYudGVzdDALggl4MTE3LnRlc3QwC4IJeDExOC50ZXN0MAuCCXgxMTkudGVzdDAL
+ggl4MTIwLnRlc3QwC4IJeDEyMS50ZXN0MAuCCXgxMjIudGVzdDALggl4MTIzLnRl
+c3QwC4IJeDEyNC50ZXN0MAuCCXgxMjUudGVzdDALggl4MTI2LnRlc3QwC4IJeDEy
+Ny50ZXN0MAuCCXgxMjgudGVzdDALggl4MTI5LnRlc3QwC4IJeDEzMC50ZXN0MAuC
+CXgxMzEudGVzdDALggl4MTMyLnRlc3QwC4IJeDEzMy50ZXN0MAuCCXgxMzQudGVz
+dDALggl4MTM1LnRlc3QwC4IJeDEzNi50ZXN0MAuCCXgxMzcudGVzdDALggl4MTM4
+LnRlc3QwC4IJeDEzOS50ZXN0MAuCCXgxNDAudGVzdDALggl4MTQxLnRlc3QwC4IJ
+eDE0Mi50ZXN0MAuCCXgxNDMudGVzdDALggl4MTQ0LnRlc3QwC4IJeDE0NS50ZXN0
+MAuCCXgxNDYudGVzdDALggl4MTQ3LnRlc3QwC4IJeDE0OC50ZXN0MAuCCXgxNDku
+dGVzdDALggl4MTUwLnRlc3QwC4IJeDE1MS50ZXN0MAuCCXgxNTIudGVzdDALggl4
+MTUzLnRlc3QwC4IJeDE1NC50ZXN0MAuCCXgxNTUudGVzdDALggl4MTU2LnRlc3Qw
+C4IJeDE1Ny50ZXN0MAuCCXgxNTgudGVzdDALggl4MTU5LnRlc3QwC4IJeDE2MC50
+ZXN0MAuCCXgxNjEudGVzdDALggl4MTYyLnRlc3QwC4IJeDE2My50ZXN0MAuCCXgx
+NjQudGVzdDALggl4MTY1LnRlc3QwC4IJeDE2Ni50ZXN0MAuCCXgxNjcudGVzdDAL
+ggl4MTY4LnRlc3QwC4IJeDE2OS50ZXN0MAuCCXgxNzAudGVzdDALggl4MTcxLnRl
+c3QwC4IJeDE3Mi50ZXN0MAuCCXgxNzMudGVzdDALggl4MTc0LnRlc3QwC4IJeDE3
+NS50ZXN0MAuCCXgxNzYudGVzdDALggl4MTc3LnRlc3QwC4IJeDE3OC50ZXN0MAuC
+CXgxNzkudGVzdDALggl4MTgwLnRlc3QwC4IJeDE4MS50ZXN0MAuCCXgxODIudGVz
+dDALggl4MTgzLnRlc3QwC4IJeDE4NC50ZXN0MAuCCXgxODUudGVzdDALggl4MTg2
+LnRlc3QwC4IJeDE4Ny50ZXN0MAuCCXgxODgudGVzdDALggl4MTg5LnRlc3QwC4IJ
+eDE5MC50ZXN0MAuCCXgxOTEudGVzdDALggl4MTkyLnRlc3QwC4IJeDE5My50ZXN0
+MAuCCXgxOTQudGVzdDALggl4MTk1LnRlc3QwC4IJeDE5Ni50ZXN0MAuCCXgxOTcu
+dGVzdDALggl4MTk4LnRlc3QwC4IJeDE5OS50ZXN0MAuCCXgyMDAudGVzdDALggl4
+MjAxLnRlc3QwC4IJeDIwMi50ZXN0MAuCCXgyMDMudGVzdDALggl4MjA0LnRlc3Qw
+C4IJeDIwNS50ZXN0MAuCCXgyMDYudGVzdDALggl4MjA3LnRlc3QwC4IJeDIwOC50
+ZXN0MAuCCXgyMDkudGVzdDALggl4MjEwLnRlc3QwC4IJeDIxMS50ZXN0MAuCCXgy
+MTIudGVzdDALggl4MjEzLnRlc3QwC4IJeDIxNC50ZXN0MAuCCXgyMTUudGVzdDAL
+ggl4MjE2LnRlc3QwC4IJeDIxNy50ZXN0MAuCCXgyMTgudGVzdDALggl4MjE5LnRl
+c3QwC4IJeDIyMC50ZXN0MAuCCXgyMjEudGVzdDALggl4MjIyLnRlc3QwC4IJeDIy
+My50ZXN0MAuCCXgyMjQudGVzdDALggl4MjI1LnRlc3QwC4IJeDIyNi50ZXN0MAuC
+CXgyMjcudGVzdDALggl4MjI4LnRlc3QwC4IJeDIyOS50ZXN0MAuCCXgyMzAudGVz
+dDALggl4MjMxLnRlc3QwC4IJeDIzMi50ZXN0MAuCCXgyMzMudGVzdDALggl4MjM0
+LnRlc3QwC4IJeDIzNS50ZXN0MAuCCXgyMzYudGVzdDALggl4MjM3LnRlc3QwC4IJ
+eDIzOC50ZXN0MAuCCXgyMzkudGVzdDALggl4MjQwLnRlc3QwC4IJeDI0MS50ZXN0
+MAuCCXgyNDIudGVzdDALggl4MjQzLnRlc3QwC4IJeDI0NC50ZXN0MAuCCXgyNDUu
+dGVzdDALggl4MjQ2LnRlc3QwC4IJeDI0Ny50ZXN0MAuCCXgyNDgudGVzdDALggl4
+MjQ5LnRlc3QwC4IJeDI1MC50ZXN0MAuCCXgyNTEudGVzdDALggl4MjUyLnRlc3Qw
+C4IJeDI1My50ZXN0MAuCCXgyNTQudGVzdDALggl4MjU1LnRlc3QwC4IJeDI1Ni50
+ZXN0MAuCCXgyNTcudGVzdDALggl4MjU4LnRlc3QwC4IJeDI1OS50ZXN0MAuCCXgy
+NjAudGVzdDALggl4MjYxLnRlc3QwC4IJeDI2Mi50ZXN0MAuCCXgyNjMudGVzdDAL
+ggl4MjY0LnRlc3QwC4IJeDI2NS50ZXN0MAuCCXgyNjYudGVzdDALggl4MjY3LnRl
+c3QwC4IJeDI2OC50ZXN0MAuCCXgyNjkudGVzdDALggl4MjcwLnRlc3QwC4IJeDI3
+MS50ZXN0MAuCCXgyNzIudGVzdDALggl4MjczLnRlc3QwC4IJeDI3NC50ZXN0MAuC
+CXgyNzUudGVzdDALggl4Mjc2LnRlc3QwC4IJeDI3Ny50ZXN0MAuCCXgyNzgudGVz
+dDALggl4Mjc5LnRlc3QwC4IJeDI4MC50ZXN0MAuCCXgyODEudGVzdDALggl4Mjgy
+LnRlc3QwC4IJeDI4My50ZXN0MAuCCXgyODQudGVzdDALggl4Mjg1LnRlc3QwC4IJ
+eDI4Ni50ZXN0MAuCCXgyODcudGVzdDALggl4Mjg4LnRlc3QwC4IJeDI4OS50ZXN0
+MAuCCXgyOTAudGVzdDALggl4MjkxLnRlc3QwC4IJeDI5Mi50ZXN0MAuCCXgyOTMu
+dGVzdDALggl4Mjk0LnRlc3QwC4IJeDI5NS50ZXN0MAuCCXgyOTYudGVzdDALggl4
+Mjk3LnRlc3QwC4IJeDI5OC50ZXN0MAuCCXgyOTkudGVzdDALggl4MzAwLnRlc3Qw
+C4IJeDMwMS50ZXN0MAuCCXgzMDIudGVzdDALggl4MzAzLnRlc3QwC4IJeDMwNC50
+ZXN0MAuCCXgzMDUudGVzdDALggl4MzA2LnRlc3QwC4IJeDMwNy50ZXN0MAuCCXgz
+MDgudGVzdDALggl4MzA5LnRlc3QwC4IJeDMxMC50ZXN0MAuCCXgzMTEudGVzdDAL
+ggl4MzEyLnRlc3QwC4IJeDMxMy50ZXN0MAuCCXgzMTQudGVzdDALggl4MzE1LnRl
+c3QwC4IJeDMxNi50ZXN0MAuCCXgzMTcudGVzdDALggl4MzE4LnRlc3QwC4IJeDMx
+OS50ZXN0MAuCCXgzMjAudGVzdDALggl4MzIxLnRlc3QwC4IJeDMyMi50ZXN0MAuC
+CXgzMjMudGVzdDALggl4MzI0LnRlc3QwC4IJeDMyNS50ZXN0MAuCCXgzMjYudGVz
+dDALggl4MzI3LnRlc3QwC4IJeDMyOC50ZXN0MAuCCXgzMjkudGVzdDALggl4MzMw
+LnRlc3QwC4IJeDMzMS50ZXN0MAuCCXgzMzIudGVzdDALggl4MzMzLnRlc3QwC4IJ
+eDMzNC50ZXN0MAuCCXgzMzUudGVzdDALggl4MzM2LnRlc3QwC4IJeDMzNy50ZXN0
+MAuCCXgzMzgudGVzdDALggl4MzM5LnRlc3QwC4IJeDM0MC50ZXN0MAuCCXgzNDEu
+dGVzdDALggl4MzQyLnRlc3QwC4IJeDM0My50ZXN0MAuCCXgzNDQudGVzdDALggl4
+MzQ1LnRlc3QwC4IJeDM0Ni50ZXN0MAuCCXgzNDcudGVzdDALggl4MzQ4LnRlc3Qw
+C4IJeDM0OS50ZXN0MAuCCXgzNTAudGVzdDALggl4MzUxLnRlc3QwC4IJeDM1Mi50
+ZXN0MAuCCXgzNTMudGVzdDALggl4MzU0LnRlc3QwC4IJeDM1NS50ZXN0MAuCCXgz
+NTYudGVzdDALggl4MzU3LnRlc3QwC4IJeDM1OC50ZXN0MAuCCXgzNTkudGVzdDAL
+ggl4MzYwLnRlc3QwC4IJeDM2MS50ZXN0MAuCCXgzNjIudGVzdDALggl4MzYzLnRl
+c3QwC4IJeDM2NC50ZXN0MAuCCXgzNjUudGVzdDALggl4MzY2LnRlc3QwC4IJeDM2
+Ny50ZXN0MAuCCXgzNjgudGVzdDALggl4MzY5LnRlc3QwC4IJeDM3MC50ZXN0MAuC
+CXgzNzEudGVzdDALggl4MzcyLnRlc3QwC4IJeDM3My50ZXN0MAuCCXgzNzQudGVz
+dDALggl4Mzc1LnRlc3QwC4IJeDM3Ni50ZXN0MAuCCXgzNzcudGVzdDALggl4Mzc4
+LnRlc3QwC4IJeDM3OS50ZXN0MAuCCXgzODAudGVzdDALggl4MzgxLnRlc3QwC4IJ
+eDM4Mi50ZXN0MAuCCXgzODMudGVzdDALggl4Mzg0LnRlc3QwC4IJeDM4NS50ZXN0
+MAuCCXgzODYudGVzdDALggl4Mzg3LnRlc3QwC4IJeDM4OC50ZXN0MAuCCXgzODku
+dGVzdDALggl4MzkwLnRlc3QwC4IJeDM5MS50ZXN0MAuCCXgzOTIudGVzdDALggl4
+MzkzLnRlc3QwC4IJeDM5NC50ZXN0MAuCCXgzOTUudGVzdDALggl4Mzk2LnRlc3Qw
+C4IJeDM5Ny50ZXN0MAuCCXgzOTgudGVzdDALggl4Mzk5LnRlc3QwC4IJeDQwMC50
+ZXN0MAuCCXg0MDEudGVzdDALggl4NDAyLnRlc3QwC4IJeDQwMy50ZXN0MAuCCXg0
+MDQudGVzdDALggl4NDA1LnRlc3QwC4IJeDQwNi50ZXN0MAuCCXg0MDcudGVzdDAL
+ggl4NDA4LnRlc3QwC4IJeDQwOS50ZXN0MAuCCXg0MTAudGVzdDALggl4NDExLnRl
+c3QwC4IJeDQxMi50ZXN0MAuCCXg0MTMudGVzdDALggl4NDE0LnRlc3QwC4IJeDQx
+NS50ZXN0MAuCCXg0MTYudGVzdDALggl4NDE3LnRlc3QwC4IJeDQxOC50ZXN0MAuC
+CXg0MTkudGVzdDALggl4NDIwLnRlc3QwC4IJeDQyMS50ZXN0MAuCCXg0MjIudGVz
+dDALggl4NDIzLnRlc3QwC4IJeDQyNC50ZXN0MAuCCXg0MjUudGVzdDALggl4NDI2
+LnRlc3QwC4IJeDQyNy50ZXN0MAuCCXg0MjgudGVzdDALggl4NDI5LnRlc3QwC4IJ
+eDQzMC50ZXN0MAuCCXg0MzEudGVzdDALggl4NDMyLnRlc3QwC4IJeDQzMy50ZXN0
+MAuCCXg0MzQudGVzdDALggl4NDM1LnRlc3QwC4IJeDQzNi50ZXN0MAuCCXg0Mzcu
+dGVzdDALggl4NDM4LnRlc3QwC4IJeDQzOS50ZXN0MAuCCXg0NDAudGVzdDALggl4
+NDQxLnRlc3QwC4IJeDQ0Mi50ZXN0MAuCCXg0NDMudGVzdDALggl4NDQ0LnRlc3Qw
+C4IJeDQ0NS50ZXN0MAuCCXg0NDYudGVzdDALggl4NDQ3LnRlc3QwC4IJeDQ0OC50
+ZXN0MAuCCXg0NDkudGVzdDALggl4NDUwLnRlc3QwC4IJeDQ1MS50ZXN0MAuCCXg0
+NTIudGVzdDALggl4NDUzLnRlc3QwC4IJeDQ1NC50ZXN0MAuCCXg0NTUudGVzdDAL
+ggl4NDU2LnRlc3QwC4IJeDQ1Ny50ZXN0MAuCCXg0NTgudGVzdDALggl4NDU5LnRl
+c3QwC4IJeDQ2MC50ZXN0MAuCCXg0NjEudGVzdDALggl4NDYyLnRlc3QwC4IJeDQ2
+My50ZXN0MAuCCXg0NjQudGVzdDALggl4NDY1LnRlc3QwC4IJeDQ2Ni50ZXN0MAuC
+CXg0NjcudGVzdDALggl4NDY4LnRlc3QwC4IJeDQ2OS50ZXN0MAuCCXg0NzAudGVz
+dDALggl4NDcxLnRlc3QwC4IJeDQ3Mi50ZXN0MAuCCXg0NzMudGVzdDALggl4NDc0
+LnRlc3QwC4IJeDQ3NS50ZXN0MAuCCXg0NzYudGVzdDALggl4NDc3LnRlc3QwC4IJ
+eDQ3OC50ZXN0MAuCCXg0NzkudGVzdDALggl4NDgwLnRlc3QwC4IJeDQ4MS50ZXN0
+MAuCCXg0ODIudGVzdDALggl4NDgzLnRlc3QwC4IJeDQ4NC50ZXN0MAuCCXg0ODUu
+dGVzdDALggl4NDg2LnRlc3QwC4IJeDQ4Ny50ZXN0MAuCCXg0ODgudGVzdDALggl4
+NDg5LnRlc3QwC4IJeDQ5MC50ZXN0MAuCCXg0OTEudGVzdDALggl4NDkyLnRlc3Qw
+C4IJeDQ5My50ZXN0MAuCCXg0OTQudGVzdDALggl4NDk1LnRlc3QwC4IJeDQ5Ni50
+ZXN0MAuCCXg0OTcudGVzdDALggl4NDk4LnRlc3QwC4IJeDQ5OS50ZXN0MAuCCXg1
+MDAudGVzdDALggl4NTAxLnRlc3QwC4IJeDUwMi50ZXN0MAuCCXg1MDMudGVzdDAL
+ggl4NTA0LnRlc3QwC4IJeDUwNS50ZXN0MAuCCXg1MDYudGVzdDALggl4NTA3LnRl
+c3QwC4IJeDUwOC50ZXN0MAuCCXg1MDkudGVzdDALggl4NTEwLnRlc3QwC4IJeDUx
+MS50ZXN0MAuCCXg1MTIudGVzdDANBgkqhkiG9w0BAQsFAAOCAQEAL2zj4W3+BzBa
+UA0pBD3K5mXq5H94uVT3YFiS1Yrrv1aGJjnb9iabNjdPNRFq7eBm1OajFTv8UtE/
+WJR0JDvBTs7yvpOgTy+JY9RY8NP72gdOOvpZ3DbJ0bbSUFqBVQlM8771Mz9RVQX9
+i9oCqVkakKI/9guAU2XHx9ztTB6N3mULB3QkeFmlyrqeeVK/2lFErArRxyKQXjxb
+cfD76JGADWpp6p1/QUGYmPNYGxHMtWzAhzX1zs/OdGwVVX7g6xxfFdOw0z2PVSPL
+otKS5E3GWvqe43Edz3D6AI7jp6ibtH32HX/D4lLLd9nSiQURvJJ0nrMYZI+7p1DE
+6BsnsA2jNg==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/many-names1.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/many-names1.pem
new file mode 100644
index 000000000..cf6a0df3c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/many-names1.pem
@@ -0,0 +1,409 @@
+-----BEGIN CERTIFICATE-----
+MIJMMTCCSxmgAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJDQTAg
+Fw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowgjO+MRAwDgYDVQQDEwd0
+MC50ZXN0MRYwFAYJKoZIhvcNAQkBFgd0MEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+MUB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0MkB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+M0B0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0NEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+NUB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0NkB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+N0B0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0OEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+OUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MTBAdGVzdDEXMBUGCSqGSIb3DQEJARYI
+dDExQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQxMkB0ZXN0MRcwFQYJKoZIhvcNAQkB
+Fgh0MTNAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDE0QHRlc3QxFzAVBgkqhkiG9w0B
+CQEWCHQxNUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MTZAdGVzdDEXMBUGCSqGSIb3
+DQEJARYIdDE3QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQxOEB0ZXN0MRcwFQYJKoZI
+hvcNAQkBFgh0MTlAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDIwQHRlc3QxFzAVBgkq
+hkiG9w0BCQEWCHQyMUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MjJAdGVzdDEXMBUG
+CSqGSIb3DQEJARYIdDIzQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQyNEB0ZXN0MRcw
+FQYJKoZIhvcNAQkBFgh0MjVAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDI2QHRlc3Qx
+FzAVBgkqhkiG9w0BCQEWCHQyN0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MjhAdGVz
+dDEXMBUGCSqGSIb3DQEJARYIdDI5QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzMEB0
+ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MzFAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDMy
+QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzM0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0
+MzRAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDM1QHRlc3QxFzAVBgkqhkiG9w0BCQEW
+CHQzNkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MzdAdGVzdDEXMBUGCSqGSIb3DQEJ
+ARYIdDM4QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzOUB0ZXN0MRcwFQYJKoZIhvcN
+AQkBFgh0NDBAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDQxQHRlc3QxFzAVBgkqhkiG
+9w0BCQEWCHQ0MkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NDNAdGVzdDEXMBUGCSqG
+SIb3DQEJARYIdDQ0QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ0NUB0ZXN0MRcwFQYJ
+KoZIhvcNAQkBFgh0NDZAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDQ3QHRlc3QxFzAV
+BgkqhkiG9w0BCQEWCHQ0OEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NDlAdGVzdDEX
+MBUGCSqGSIb3DQEJARYIdDUwQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ1MUB0ZXN0
+MRcwFQYJKoZIhvcNAQkBFgh0NTJAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDUzQHRl
+c3QxFzAVBgkqhkiG9w0BCQEWCHQ1NEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NTVA
+dGVzdDEXMBUGCSqGSIb3DQEJARYIdDU2QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ1
+N0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NThAdGVzdDEXMBUGCSqGSIb3DQEJARYI
+dDU5QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ2MEB0ZXN0MRcwFQYJKoZIhvcNAQkB
+Fgh0NjFAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDYyQHRlc3QxFzAVBgkqhkiG9w0B
+CQEWCHQ2M0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NjRAdGVzdDEXMBUGCSqGSIb3
+DQEJARYIdDY1QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ2NkB0ZXN0MRcwFQYJKoZI
+hvcNAQkBFgh0NjdAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDY4QHRlc3QxFzAVBgkq
+hkiG9w0BCQEWCHQ2OUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzBAdGVzdDEXMBUG
+CSqGSIb3DQEJARYIdDcxQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ3MkB0ZXN0MRcw
+FQYJKoZIhvcNAQkBFgh0NzNAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDc0QHRlc3Qx
+FzAVBgkqhkiG9w0BCQEWCHQ3NUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzZAdGVz
+dDEXMBUGCSqGSIb3DQEJARYIdDc3QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ3OEB0
+ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzlAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDgw
+QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ4MUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0
+ODJAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDgzQHRlc3QxFzAVBgkqhkiG9w0BCQEW
+CHQ4NEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0ODVAdGVzdDEXMBUGCSqGSIb3DQEJ
+ARYIdDg2QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ4N0B0ZXN0MRcwFQYJKoZIhvcN
+AQkBFgh0ODhAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDg5QHRlc3QxFzAVBgkqhkiG
+9w0BCQEWCHQ5MEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0OTFAdGVzdDEXMBUGCSqG
+SIb3DQEJARYIdDkyQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ5M0B0ZXN0MRcwFQYJ
+KoZIhvcNAQkBFgh0OTRAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDk1QHRlc3QxFzAV
+BgkqhkiG9w0BCQEWCHQ5NkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0OTdAdGVzdDEX
+MBUGCSqGSIb3DQEJARYIdDk4QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ5OUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTAwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMDFA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDEwMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTAzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMDRAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDEwNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTA2QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQxMDdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEwOEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MTA5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTBAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDExMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTEyQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQxMTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEx
+NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTE1QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQxMTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDExN0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MTE4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTlAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDEyMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTIxQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQxMjJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEyM0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTI0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMjVA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDEyNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTI3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMjhAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDEyOUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTMwQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQxMzFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEzMkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MTMzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMzRAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDEzNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTM2QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQxMzdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEz
+OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTM5QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQxNDBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE0MUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MTQyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNDNAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDE0NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTQ1QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQxNDZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE0N0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTQ4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNDlA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDE1MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTUxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNTJAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDE1M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTU0QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQxNTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE1NkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MTU3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNThAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDE1OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTYwQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQxNjFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE2
+MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTYzQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQxNjRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE2NUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MTY2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNjdAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDE2OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTY5QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQxNzBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE3MUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTcyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNzNA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDE3NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTc1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNzZAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDE3N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTc4QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQxNzlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4MEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MTgxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxODJAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDE4M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTg0QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQxODVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4
+NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTg3QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQxODhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4OUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MTkwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxOTFAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDE5MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTkzQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQxOTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE5NUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTk2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxOTdA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDE5OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTk5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDBAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDIwMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjAyQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQyMDNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIwNEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MjA1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDZAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDIwN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjA4QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQyMDlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIx
+MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjExQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQyMTJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIxM0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MjE0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMTVAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDIxNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjE3QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQyMThAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIxOUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MjIwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMjFA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDIyMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MjIzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMjRAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDIyNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjI2QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQyMjdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIyOEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MjI5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzBAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDIzMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjMyQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQyMzNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIz
+NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjM1QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQyMzZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIzN0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MjM4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzlAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDI0MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjQxQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQyNDJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI0M0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MjQ0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNDVA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDI0NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MjQ3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNDhAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDI0OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjUwQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQyNTFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI1MkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MjUzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNTRAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDI1NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjU2QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQyNTdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI1
+OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjU5QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQyNjBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI2MUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MjYyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNjNAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDI2NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjY1QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQyNjZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI2N0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MjY4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNjlA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDI3MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MjcxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNzJAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDI3M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mjc0QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQyNzVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI3NkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0Mjc3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNzhAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDI3OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjgwQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQyODFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI4
+MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjgzQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQyODRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI4NUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0Mjg2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyODdAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDI4OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mjg5QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQyOTBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI5MUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MjkyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyOTNA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDI5NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+Mjk1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyOTZAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDI5N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mjk4QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQyOTlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMwMEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MzAxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMDJAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDMwM0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzA0QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQzMDVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMw
+NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzA3QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQzMDhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMwOUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MzEwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMTFAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDMxMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzEzQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQzMTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMxNUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MzE2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMTdA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDMxOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MzE5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMjBAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDMyMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzIyQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQzMjNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMyNEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MzI1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMjZAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDMyN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzI4QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQzMjlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMz
+MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzMxQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQzMzJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMzM0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MzM0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMzVAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDMzNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzM3QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQzMzhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMzOUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MzQwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNDFA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDM0MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MzQzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNDRAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDM0NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzQ2QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQzNDdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM0OEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MzQ5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNTBAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDM1MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzUyQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQzNTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM1
+NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzU1QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQzNTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM1N0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MzU4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNTlAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDM2MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzYxQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQzNjJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM2M0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MzY0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNjVA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDM2NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MzY3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNjhAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDM2OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzcwQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQzNzFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM3MkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MzczQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNzRAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDM3NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzc2QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQzNzdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM3
+OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzc5QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQzODBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM4MUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MzgyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzODNAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDM4NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzg1QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQzODZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM4N0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0Mzg4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzODlA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDM5MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MzkxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzOTJAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDM5M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzk0QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQzOTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM5NkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0Mzk3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzOThAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDM5OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDAwQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ0MDFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQw
+MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDAzQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ0MDRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQwNUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NDA2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MDdAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDQwOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDA5QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ0MTBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQxMUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NDEyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MTNA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDQxNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NDE1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MTZAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDQxN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDE4QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ0MTlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQyMEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NDIxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MjJAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDQyM0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDI0QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ0MjVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQy
+NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDI3QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ0MjhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQyOUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NDMwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MzFAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDQzMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDMzQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ0MzRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQzNUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NDM2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MzdA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDQzOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NDM5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NDBAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDQ0MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDQyQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ0NDNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ0NEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NDQ1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NDZAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDQ0N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDQ4QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ0NDlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ1
+MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDUxQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ0NTJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ1M0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NDU0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NTVAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDQ1NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDU3QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ0NThAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ1OUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NDYwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NjFA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ2MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NDYzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NjRAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDQ2NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDY2QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ0NjdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ2OEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NDY5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NzBAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDQ3MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDcyQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ0NzNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ3
+NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDc1QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ0NzZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ3N0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NDc4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NzlAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDQ4MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDgxQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ0ODJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ4M0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NDg0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0ODVA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ4NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NDg3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0ODhAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDQ4OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDkwQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ0OTFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ5MkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NDkzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0OTRAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDQ5NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDk2QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ0OTdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ5
+OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDk5QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ1MDBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUwMUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NTAyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MDNAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDUwNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTA1QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ1MDZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUwN0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NTA4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MDlA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDUxMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NTExQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MTJAdGVzdDCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBALoL2oQZEgFBdXwuPb29W75T63JfNJKKdYi6YrmK
+M+EKbcMue/hFrLGQXB6a2eQZFn+j3hmexeQF9T8iWxh2S6rzAr1Yj+qXeDBaMf4o
+BEiEhBxIsaIlws3qQa4baeVEEoxw+A+ISrYHTIFcV/i0bcIFt5p7v7wbu686a/w0
+vIqPfad5amdQJMvmjZXDI+jGMvFPmBRHr2/1dJUWPaKsJluwR514pJv74urIyEt+
+dFPM2/5kc2HiLNkeuS1Hbky+dPlDIGrfaHHsCNnb/GjvQ6YfvDXRrYPCxWMk0x3F
+MSaDK9T0zoJ5hE9fViR+D6xcJO2RNUCUENS+Iipj3kIrLbkCAwEAAaOCFeUwghXh
+MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8E
+AjAAMIIVqgYDVR0RBIIVoTCCFZ2CB3QwLnRlc3SCB3QxLnRlc3SCB3QyLnRlc3SC
+B3QzLnRlc3SCB3Q0LnRlc3SCB3Q1LnRlc3SCB3Q2LnRlc3SCB3Q3LnRlc3SCB3Q4
+LnRlc3SCB3Q5LnRlc3SCCHQxMC50ZXN0ggh0MTEudGVzdIIIdDEyLnRlc3SCCHQx
+My50ZXN0ggh0MTQudGVzdIIIdDE1LnRlc3SCCHQxNi50ZXN0ggh0MTcudGVzdIII
+dDE4LnRlc3SCCHQxOS50ZXN0ggh0MjAudGVzdIIIdDIxLnRlc3SCCHQyMi50ZXN0
+ggh0MjMudGVzdIIIdDI0LnRlc3SCCHQyNS50ZXN0ggh0MjYudGVzdIIIdDI3LnRl
+c3SCCHQyOC50ZXN0ggh0MjkudGVzdIIIdDMwLnRlc3SCCHQzMS50ZXN0ggh0MzIu
+dGVzdIIIdDMzLnRlc3SCCHQzNC50ZXN0ggh0MzUudGVzdIIIdDM2LnRlc3SCCHQz
+Ny50ZXN0ggh0MzgudGVzdIIIdDM5LnRlc3SCCHQ0MC50ZXN0ggh0NDEudGVzdIII
+dDQyLnRlc3SCCHQ0My50ZXN0ggh0NDQudGVzdIIIdDQ1LnRlc3SCCHQ0Ni50ZXN0
+ggh0NDcudGVzdIIIdDQ4LnRlc3SCCHQ0OS50ZXN0ggh0NTAudGVzdIIIdDUxLnRl
+c3SCCHQ1Mi50ZXN0ggh0NTMudGVzdIIIdDU0LnRlc3SCCHQ1NS50ZXN0ggh0NTYu
+dGVzdIIIdDU3LnRlc3SCCHQ1OC50ZXN0ggh0NTkudGVzdIIIdDYwLnRlc3SCCHQ2
+MS50ZXN0ggh0NjIudGVzdIIIdDYzLnRlc3SCCHQ2NC50ZXN0ggh0NjUudGVzdIII
+dDY2LnRlc3SCCHQ2Ny50ZXN0ggh0NjgudGVzdIIIdDY5LnRlc3SCCHQ3MC50ZXN0
+ggh0NzEudGVzdIIIdDcyLnRlc3SCCHQ3My50ZXN0ggh0NzQudGVzdIIIdDc1LnRl
+c3SCCHQ3Ni50ZXN0ggh0NzcudGVzdIIIdDc4LnRlc3SCCHQ3OS50ZXN0ggh0ODAu
+dGVzdIIIdDgxLnRlc3SCCHQ4Mi50ZXN0ggh0ODMudGVzdIIIdDg0LnRlc3SCCHQ4
+NS50ZXN0ggh0ODYudGVzdIIIdDg3LnRlc3SCCHQ4OC50ZXN0ggh0ODkudGVzdIII
+dDkwLnRlc3SCCHQ5MS50ZXN0ggh0OTIudGVzdIIIdDkzLnRlc3SCCHQ5NC50ZXN0
+ggh0OTUudGVzdIIIdDk2LnRlc3SCCHQ5Ny50ZXN0ggh0OTgudGVzdIIIdDk5LnRl
+c3SCCXQxMDAudGVzdIIJdDEwMS50ZXN0ggl0MTAyLnRlc3SCCXQxMDMudGVzdIIJ
+dDEwNC50ZXN0ggl0MTA1LnRlc3SCCXQxMDYudGVzdIIJdDEwNy50ZXN0ggl0MTA4
+LnRlc3SCCXQxMDkudGVzdIIJdDExMC50ZXN0ggl0MTExLnRlc3SCCXQxMTIudGVz
+dIIJdDExMy50ZXN0ggl0MTE0LnRlc3SCCXQxMTUudGVzdIIJdDExNi50ZXN0ggl0
+MTE3LnRlc3SCCXQxMTgudGVzdIIJdDExOS50ZXN0ggl0MTIwLnRlc3SCCXQxMjEu
+dGVzdIIJdDEyMi50ZXN0ggl0MTIzLnRlc3SCCXQxMjQudGVzdIIJdDEyNS50ZXN0
+ggl0MTI2LnRlc3SCCXQxMjcudGVzdIIJdDEyOC50ZXN0ggl0MTI5LnRlc3SCCXQx
+MzAudGVzdIIJdDEzMS50ZXN0ggl0MTMyLnRlc3SCCXQxMzMudGVzdIIJdDEzNC50
+ZXN0ggl0MTM1LnRlc3SCCXQxMzYudGVzdIIJdDEzNy50ZXN0ggl0MTM4LnRlc3SC
+CXQxMzkudGVzdIIJdDE0MC50ZXN0ggl0MTQxLnRlc3SCCXQxNDIudGVzdIIJdDE0
+My50ZXN0ggl0MTQ0LnRlc3SCCXQxNDUudGVzdIIJdDE0Ni50ZXN0ggl0MTQ3LnRl
+c3SCCXQxNDgudGVzdIIJdDE0OS50ZXN0ggl0MTUwLnRlc3SCCXQxNTEudGVzdIIJ
+dDE1Mi50ZXN0ggl0MTUzLnRlc3SCCXQxNTQudGVzdIIJdDE1NS50ZXN0ggl0MTU2
+LnRlc3SCCXQxNTcudGVzdIIJdDE1OC50ZXN0ggl0MTU5LnRlc3SCCXQxNjAudGVz
+dIIJdDE2MS50ZXN0ggl0MTYyLnRlc3SCCXQxNjMudGVzdIIJdDE2NC50ZXN0ggl0
+MTY1LnRlc3SCCXQxNjYudGVzdIIJdDE2Ny50ZXN0ggl0MTY4LnRlc3SCCXQxNjku
+dGVzdIIJdDE3MC50ZXN0ggl0MTcxLnRlc3SCCXQxNzIudGVzdIIJdDE3My50ZXN0
+ggl0MTc0LnRlc3SCCXQxNzUudGVzdIIJdDE3Ni50ZXN0ggl0MTc3LnRlc3SCCXQx
+NzgudGVzdIIJdDE3OS50ZXN0ggl0MTgwLnRlc3SCCXQxODEudGVzdIIJdDE4Mi50
+ZXN0ggl0MTgzLnRlc3SCCXQxODQudGVzdIIJdDE4NS50ZXN0ggl0MTg2LnRlc3SC
+CXQxODcudGVzdIIJdDE4OC50ZXN0ggl0MTg5LnRlc3SCCXQxOTAudGVzdIIJdDE5
+MS50ZXN0ggl0MTkyLnRlc3SCCXQxOTMudGVzdIIJdDE5NC50ZXN0ggl0MTk1LnRl
+c3SCCXQxOTYudGVzdIIJdDE5Ny50ZXN0ggl0MTk4LnRlc3SCCXQxOTkudGVzdIIJ
+dDIwMC50ZXN0ggl0MjAxLnRlc3SCCXQyMDIudGVzdIIJdDIwMy50ZXN0ggl0MjA0
+LnRlc3SCCXQyMDUudGVzdIIJdDIwNi50ZXN0ggl0MjA3LnRlc3SCCXQyMDgudGVz
+dIIJdDIwOS50ZXN0ggl0MjEwLnRlc3SCCXQyMTEudGVzdIIJdDIxMi50ZXN0ggl0
+MjEzLnRlc3SCCXQyMTQudGVzdIIJdDIxNS50ZXN0ggl0MjE2LnRlc3SCCXQyMTcu
+dGVzdIIJdDIxOC50ZXN0ggl0MjE5LnRlc3SCCXQyMjAudGVzdIIJdDIyMS50ZXN0
+ggl0MjIyLnRlc3SCCXQyMjMudGVzdIIJdDIyNC50ZXN0ggl0MjI1LnRlc3SCCXQy
+MjYudGVzdIIJdDIyNy50ZXN0ggl0MjI4LnRlc3SCCXQyMjkudGVzdIIJdDIzMC50
+ZXN0ggl0MjMxLnRlc3SCCXQyMzIudGVzdIIJdDIzMy50ZXN0ggl0MjM0LnRlc3SC
+CXQyMzUudGVzdIIJdDIzNi50ZXN0ggl0MjM3LnRlc3SCCXQyMzgudGVzdIIJdDIz
+OS50ZXN0ggl0MjQwLnRlc3SCCXQyNDEudGVzdIIJdDI0Mi50ZXN0ggl0MjQzLnRl
+c3SCCXQyNDQudGVzdIIJdDI0NS50ZXN0ggl0MjQ2LnRlc3SCCXQyNDcudGVzdIIJ
+dDI0OC50ZXN0ggl0MjQ5LnRlc3SCCXQyNTAudGVzdIIJdDI1MS50ZXN0ggl0MjUy
+LnRlc3SCCXQyNTMudGVzdIIJdDI1NC50ZXN0ggl0MjU1LnRlc3SCCXQyNTYudGVz
+dIIJdDI1Ny50ZXN0ggl0MjU4LnRlc3SCCXQyNTkudGVzdIIJdDI2MC50ZXN0ggl0
+MjYxLnRlc3SCCXQyNjIudGVzdIIJdDI2My50ZXN0ggl0MjY0LnRlc3SCCXQyNjUu
+dGVzdIIJdDI2Ni50ZXN0ggl0MjY3LnRlc3SCCXQyNjgudGVzdIIJdDI2OS50ZXN0
+ggl0MjcwLnRlc3SCCXQyNzEudGVzdIIJdDI3Mi50ZXN0ggl0MjczLnRlc3SCCXQy
+NzQudGVzdIIJdDI3NS50ZXN0ggl0Mjc2LnRlc3SCCXQyNzcudGVzdIIJdDI3OC50
+ZXN0ggl0Mjc5LnRlc3SCCXQyODAudGVzdIIJdDI4MS50ZXN0ggl0MjgyLnRlc3SC
+CXQyODMudGVzdIIJdDI4NC50ZXN0ggl0Mjg1LnRlc3SCCXQyODYudGVzdIIJdDI4
+Ny50ZXN0ggl0Mjg4LnRlc3SCCXQyODkudGVzdIIJdDI5MC50ZXN0ggl0MjkxLnRl
+c3SCCXQyOTIudGVzdIIJdDI5My50ZXN0ggl0Mjk0LnRlc3SCCXQyOTUudGVzdIIJ
+dDI5Ni50ZXN0ggl0Mjk3LnRlc3SCCXQyOTgudGVzdIIJdDI5OS50ZXN0ggl0MzAw
+LnRlc3SCCXQzMDEudGVzdIIJdDMwMi50ZXN0ggl0MzAzLnRlc3SCCXQzMDQudGVz
+dIIJdDMwNS50ZXN0ggl0MzA2LnRlc3SCCXQzMDcudGVzdIIJdDMwOC50ZXN0ggl0
+MzA5LnRlc3SCCXQzMTAudGVzdIIJdDMxMS50ZXN0ggl0MzEyLnRlc3SCCXQzMTMu
+dGVzdIIJdDMxNC50ZXN0ggl0MzE1LnRlc3SCCXQzMTYudGVzdIIJdDMxNy50ZXN0
+ggl0MzE4LnRlc3SCCXQzMTkudGVzdIIJdDMyMC50ZXN0ggl0MzIxLnRlc3SCCXQz
+MjIudGVzdIIJdDMyMy50ZXN0ggl0MzI0LnRlc3SCCXQzMjUudGVzdIIJdDMyNi50
+ZXN0ggl0MzI3LnRlc3SCCXQzMjgudGVzdIIJdDMyOS50ZXN0ggl0MzMwLnRlc3SC
+CXQzMzEudGVzdIIJdDMzMi50ZXN0ggl0MzMzLnRlc3SCCXQzMzQudGVzdIIJdDMz
+NS50ZXN0ggl0MzM2LnRlc3SCCXQzMzcudGVzdIIJdDMzOC50ZXN0ggl0MzM5LnRl
+c3SCCXQzNDAudGVzdIIJdDM0MS50ZXN0ggl0MzQyLnRlc3SCCXQzNDMudGVzdIIJ
+dDM0NC50ZXN0ggl0MzQ1LnRlc3SCCXQzNDYudGVzdIIJdDM0Ny50ZXN0ggl0MzQ4
+LnRlc3SCCXQzNDkudGVzdIIJdDM1MC50ZXN0ggl0MzUxLnRlc3SCCXQzNTIudGVz
+dIIJdDM1My50ZXN0ggl0MzU0LnRlc3SCCXQzNTUudGVzdIIJdDM1Ni50ZXN0ggl0
+MzU3LnRlc3SCCXQzNTgudGVzdIIJdDM1OS50ZXN0ggl0MzYwLnRlc3SCCXQzNjEu
+dGVzdIIJdDM2Mi50ZXN0ggl0MzYzLnRlc3SCCXQzNjQudGVzdIIJdDM2NS50ZXN0
+ggl0MzY2LnRlc3SCCXQzNjcudGVzdIIJdDM2OC50ZXN0ggl0MzY5LnRlc3SCCXQz
+NzAudGVzdIIJdDM3MS50ZXN0ggl0MzcyLnRlc3SCCXQzNzMudGVzdIIJdDM3NC50
+ZXN0ggl0Mzc1LnRlc3SCCXQzNzYudGVzdIIJdDM3Ny50ZXN0ggl0Mzc4LnRlc3SC
+CXQzNzkudGVzdIIJdDM4MC50ZXN0ggl0MzgxLnRlc3SCCXQzODIudGVzdIIJdDM4
+My50ZXN0ggl0Mzg0LnRlc3SCCXQzODUudGVzdIIJdDM4Ni50ZXN0ggl0Mzg3LnRl
+c3SCCXQzODgudGVzdIIJdDM4OS50ZXN0ggl0MzkwLnRlc3SCCXQzOTEudGVzdIIJ
+dDM5Mi50ZXN0ggl0MzkzLnRlc3SCCXQzOTQudGVzdIIJdDM5NS50ZXN0ggl0Mzk2
+LnRlc3SCCXQzOTcudGVzdIIJdDM5OC50ZXN0ggl0Mzk5LnRlc3SCCXQ0MDAudGVz
+dIIJdDQwMS50ZXN0ggl0NDAyLnRlc3SCCXQ0MDMudGVzdIIJdDQwNC50ZXN0ggl0
+NDA1LnRlc3SCCXQ0MDYudGVzdIIJdDQwNy50ZXN0ggl0NDA4LnRlc3SCCXQ0MDku
+dGVzdIIJdDQxMC50ZXN0ggl0NDExLnRlc3SCCXQ0MTIudGVzdIIJdDQxMy50ZXN0
+ggl0NDE0LnRlc3SCCXQ0MTUudGVzdIIJdDQxNi50ZXN0ggl0NDE3LnRlc3SCCXQ0
+MTgudGVzdIIJdDQxOS50ZXN0ggl0NDIwLnRlc3SCCXQ0MjEudGVzdIIJdDQyMi50
+ZXN0ggl0NDIzLnRlc3SCCXQ0MjQudGVzdIIJdDQyNS50ZXN0ggl0NDI2LnRlc3SC
+CXQ0MjcudGVzdIIJdDQyOC50ZXN0ggl0NDI5LnRlc3SCCXQ0MzAudGVzdIIJdDQz
+MS50ZXN0ggl0NDMyLnRlc3SCCXQ0MzMudGVzdIIJdDQzNC50ZXN0ggl0NDM1LnRl
+c3SCCXQ0MzYudGVzdIIJdDQzNy50ZXN0ggl0NDM4LnRlc3SCCXQ0MzkudGVzdIIJ
+dDQ0MC50ZXN0ggl0NDQxLnRlc3SCCXQ0NDIudGVzdIIJdDQ0My50ZXN0ggl0NDQ0
+LnRlc3SCCXQ0NDUudGVzdIIJdDQ0Ni50ZXN0ggl0NDQ3LnRlc3SCCXQ0NDgudGVz
+dIIJdDQ0OS50ZXN0ggl0NDUwLnRlc3SCCXQ0NTEudGVzdIIJdDQ1Mi50ZXN0ggl0
+NDUzLnRlc3SCCXQ0NTQudGVzdIIJdDQ1NS50ZXN0ggl0NDU2LnRlc3SCCXQ0NTcu
+dGVzdIIJdDQ1OC50ZXN0ggl0NDU5LnRlc3SCCXQ0NjAudGVzdIIJdDQ2MS50ZXN0
+ggl0NDYyLnRlc3SCCXQ0NjMudGVzdIIJdDQ2NC50ZXN0ggl0NDY1LnRlc3SCCXQ0
+NjYudGVzdIIJdDQ2Ny50ZXN0ggl0NDY4LnRlc3SCCXQ0NjkudGVzdIIJdDQ3MC50
+ZXN0ggl0NDcxLnRlc3SCCXQ0NzIudGVzdIIJdDQ3My50ZXN0ggl0NDc0LnRlc3SC
+CXQ0NzUudGVzdIIJdDQ3Ni50ZXN0ggl0NDc3LnRlc3SCCXQ0NzgudGVzdIIJdDQ3
+OS50ZXN0ggl0NDgwLnRlc3SCCXQ0ODEudGVzdIIJdDQ4Mi50ZXN0ggl0NDgzLnRl
+c3SCCXQ0ODQudGVzdIIJdDQ4NS50ZXN0ggl0NDg2LnRlc3SCCXQ0ODcudGVzdIIJ
+dDQ4OC50ZXN0ggl0NDg5LnRlc3SCCXQ0OTAudGVzdIIJdDQ5MS50ZXN0ggl0NDky
+LnRlc3SCCXQ0OTMudGVzdIIJdDQ5NC50ZXN0ggl0NDk1LnRlc3SCCXQ0OTYudGVz
+dIIJdDQ5Ny50ZXN0ggl0NDk4LnRlc3SCCXQ0OTkudGVzdIIJdDUwMC50ZXN0ggl0
+NTAxLnRlc3SCCXQ1MDIudGVzdIIJdDUwMy50ZXN0ggl0NTA0LnRlc3SCCXQ1MDUu
+dGVzdIIJdDUwNi50ZXN0ggl0NTA3LnRlc3SCCXQ1MDgudGVzdIIJdDUwOS50ZXN0
+ggl0NTEwLnRlc3SCCXQ1MTEudGVzdIIJdDUxMi50ZXN0MA0GCSqGSIb3DQEBCwUA
+A4IBAQCp6JcB0NWRQJSgjsI0ycv1gpuoo2k/NjPlkYCcsLwmTPRVdpBHi9MJNS2i
+MKPk7Wek2y9wJw6QPq9fMi/XSmEqRcFC8uBZ9evyTwmVbzzRsEN3qGHCrVdOnVLa
+D7x7NjoTLApVNelYTxMPEennTd9+we8cl0T2TqosTnbxyvP+pnwtpazjDAFKlt8e
+JpLRlRtWR/aScZ+P8CGj4b3prp12NJIAPG9W2ZqiHNLNMhTQG4Bz+O5+zMnIbC+e
+Ahc4co+A/7qzselNZL1pcFFyRtTeLAcREuZVTTRa/EXmlLqzMe+UEEinEtdktnPL
+KO0ED3qPXggpBbFaa4/PVubBS4QU
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/many-names2.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/many-names2.pem
new file mode 100644
index 000000000..842ac6089
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/many-names2.pem
@@ -0,0 +1,251 @@
+-----BEGIN CERTIFICATE-----
+MIIunDCCLYSgAwIBAgIBAzANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJDQTAg
+Fw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowEjEQMA4GA1UEAxMHdDAu
+dGVzdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoL2oQZEgFBdXwu
+Pb29W75T63JfNJKKdYi6YrmKM+EKbcMue/hFrLGQXB6a2eQZFn+j3hmexeQF9T8i
+Wxh2S6rzAr1Yj+qXeDBaMf4oBEiEhBxIsaIlws3qQa4baeVEEoxw+A+ISrYHTIFc
+V/i0bcIFt5p7v7wbu686a/w0vIqPfad5amdQJMvmjZXDI+jGMvFPmBRHr2/1dJUW
+PaKsJluwR514pJv74urIyEt+dFPM2/5kc2HiLNkeuS1Hbky+dPlDIGrfaHHsCNnb
+/GjvQ6YfvDXRrYPCxWMk0x3FMSaDK9T0zoJ5hE9fViR+D6xcJO2RNUCUENS+Iipj
+3kIrLbkCAwEAAaOCK/4wgiv6MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggr
+BgEFBQcDATAMBgNVHRMBAf8EAjAAMIIrwwYDVR0RBIIrujCCK7aCB3QwLnRlc3SC
+B3QxLnRlc3SCB3QyLnRlc3SCB3QzLnRlc3SCB3Q0LnRlc3SCB3Q1LnRlc3SCB3Q2
+LnRlc3SCB3Q3LnRlc3SCB3Q4LnRlc3SCB3Q5LnRlc3SCCHQxMC50ZXN0ggh0MTEu
+dGVzdIIIdDEyLnRlc3SCCHQxMy50ZXN0ggh0MTQudGVzdIIIdDE1LnRlc3SCCHQx
+Ni50ZXN0ggh0MTcudGVzdIIIdDE4LnRlc3SCCHQxOS50ZXN0ggh0MjAudGVzdIII
+dDIxLnRlc3SCCHQyMi50ZXN0ggh0MjMudGVzdIIIdDI0LnRlc3SCCHQyNS50ZXN0
+ggh0MjYudGVzdIIIdDI3LnRlc3SCCHQyOC50ZXN0ggh0MjkudGVzdIIIdDMwLnRl
+c3SCCHQzMS50ZXN0ggh0MzIudGVzdIIIdDMzLnRlc3SCCHQzNC50ZXN0ggh0MzUu
+dGVzdIIIdDM2LnRlc3SCCHQzNy50ZXN0ggh0MzgudGVzdIIIdDM5LnRlc3SCCHQ0
+MC50ZXN0ggh0NDEudGVzdIIIdDQyLnRlc3SCCHQ0My50ZXN0ggh0NDQudGVzdIII
+dDQ1LnRlc3SCCHQ0Ni50ZXN0ggh0NDcudGVzdIIIdDQ4LnRlc3SCCHQ0OS50ZXN0
+ggh0NTAudGVzdIIIdDUxLnRlc3SCCHQ1Mi50ZXN0ggh0NTMudGVzdIIIdDU0LnRl
+c3SCCHQ1NS50ZXN0ggh0NTYudGVzdIIIdDU3LnRlc3SCCHQ1OC50ZXN0ggh0NTku
+dGVzdIIIdDYwLnRlc3SCCHQ2MS50ZXN0ggh0NjIudGVzdIIIdDYzLnRlc3SCCHQ2
+NC50ZXN0ggh0NjUudGVzdIIIdDY2LnRlc3SCCHQ2Ny50ZXN0ggh0NjgudGVzdIII
+dDY5LnRlc3SCCHQ3MC50ZXN0ggh0NzEudGVzdIIIdDcyLnRlc3SCCHQ3My50ZXN0
+ggh0NzQudGVzdIIIdDc1LnRlc3SCCHQ3Ni50ZXN0ggh0NzcudGVzdIIIdDc4LnRl
+c3SCCHQ3OS50ZXN0ggh0ODAudGVzdIIIdDgxLnRlc3SCCHQ4Mi50ZXN0ggh0ODMu
+dGVzdIIIdDg0LnRlc3SCCHQ4NS50ZXN0ggh0ODYudGVzdIIIdDg3LnRlc3SCCHQ4
+OC50ZXN0ggh0ODkudGVzdIIIdDkwLnRlc3SCCHQ5MS50ZXN0ggh0OTIudGVzdIII
+dDkzLnRlc3SCCHQ5NC50ZXN0ggh0OTUudGVzdIIIdDk2LnRlc3SCCHQ5Ny50ZXN0
+ggh0OTgudGVzdIIIdDk5LnRlc3SCCXQxMDAudGVzdIIJdDEwMS50ZXN0ggl0MTAy
+LnRlc3SCCXQxMDMudGVzdIIJdDEwNC50ZXN0ggl0MTA1LnRlc3SCCXQxMDYudGVz
+dIIJdDEwNy50ZXN0ggl0MTA4LnRlc3SCCXQxMDkudGVzdIIJdDExMC50ZXN0ggl0
+MTExLnRlc3SCCXQxMTIudGVzdIIJdDExMy50ZXN0ggl0MTE0LnRlc3SCCXQxMTUu
+dGVzdIIJdDExNi50ZXN0ggl0MTE3LnRlc3SCCXQxMTgudGVzdIIJdDExOS50ZXN0
+ggl0MTIwLnRlc3SCCXQxMjEudGVzdIIJdDEyMi50ZXN0ggl0MTIzLnRlc3SCCXQx
+MjQudGVzdIIJdDEyNS50ZXN0ggl0MTI2LnRlc3SCCXQxMjcudGVzdIIJdDEyOC50
+ZXN0ggl0MTI5LnRlc3SCCXQxMzAudGVzdIIJdDEzMS50ZXN0ggl0MTMyLnRlc3SC
+CXQxMzMudGVzdIIJdDEzNC50ZXN0ggl0MTM1LnRlc3SCCXQxMzYudGVzdIIJdDEz
+Ny50ZXN0ggl0MTM4LnRlc3SCCXQxMzkudGVzdIIJdDE0MC50ZXN0ggl0MTQxLnRl
+c3SCCXQxNDIudGVzdIIJdDE0My50ZXN0ggl0MTQ0LnRlc3SCCXQxNDUudGVzdIIJ
+dDE0Ni50ZXN0ggl0MTQ3LnRlc3SCCXQxNDgudGVzdIIJdDE0OS50ZXN0ggl0MTUw
+LnRlc3SCCXQxNTEudGVzdIIJdDE1Mi50ZXN0ggl0MTUzLnRlc3SCCXQxNTQudGVz
+dIIJdDE1NS50ZXN0ggl0MTU2LnRlc3SCCXQxNTcudGVzdIIJdDE1OC50ZXN0ggl0
+MTU5LnRlc3SCCXQxNjAudGVzdIIJdDE2MS50ZXN0ggl0MTYyLnRlc3SCCXQxNjMu
+dGVzdIIJdDE2NC50ZXN0ggl0MTY1LnRlc3SCCXQxNjYudGVzdIIJdDE2Ny50ZXN0
+ggl0MTY4LnRlc3SCCXQxNjkudGVzdIIJdDE3MC50ZXN0ggl0MTcxLnRlc3SCCXQx
+NzIudGVzdIIJdDE3My50ZXN0ggl0MTc0LnRlc3SCCXQxNzUudGVzdIIJdDE3Ni50
+ZXN0ggl0MTc3LnRlc3SCCXQxNzgudGVzdIIJdDE3OS50ZXN0ggl0MTgwLnRlc3SC
+CXQxODEudGVzdIIJdDE4Mi50ZXN0ggl0MTgzLnRlc3SCCXQxODQudGVzdIIJdDE4
+NS50ZXN0ggl0MTg2LnRlc3SCCXQxODcudGVzdIIJdDE4OC50ZXN0ggl0MTg5LnRl
+c3SCCXQxOTAudGVzdIIJdDE5MS50ZXN0ggl0MTkyLnRlc3SCCXQxOTMudGVzdIIJ
+dDE5NC50ZXN0ggl0MTk1LnRlc3SCCXQxOTYudGVzdIIJdDE5Ny50ZXN0ggl0MTk4
+LnRlc3SCCXQxOTkudGVzdIIJdDIwMC50ZXN0ggl0MjAxLnRlc3SCCXQyMDIudGVz
+dIIJdDIwMy50ZXN0ggl0MjA0LnRlc3SCCXQyMDUudGVzdIIJdDIwNi50ZXN0ggl0
+MjA3LnRlc3SCCXQyMDgudGVzdIIJdDIwOS50ZXN0ggl0MjEwLnRlc3SCCXQyMTEu
+dGVzdIIJdDIxMi50ZXN0ggl0MjEzLnRlc3SCCXQyMTQudGVzdIIJdDIxNS50ZXN0
+ggl0MjE2LnRlc3SCCXQyMTcudGVzdIIJdDIxOC50ZXN0ggl0MjE5LnRlc3SCCXQy
+MjAudGVzdIIJdDIyMS50ZXN0ggl0MjIyLnRlc3SCCXQyMjMudGVzdIIJdDIyNC50
+ZXN0ggl0MjI1LnRlc3SCCXQyMjYudGVzdIIJdDIyNy50ZXN0ggl0MjI4LnRlc3SC
+CXQyMjkudGVzdIIJdDIzMC50ZXN0ggl0MjMxLnRlc3SCCXQyMzIudGVzdIIJdDIz
+My50ZXN0ggl0MjM0LnRlc3SCCXQyMzUudGVzdIIJdDIzNi50ZXN0ggl0MjM3LnRl
+c3SCCXQyMzgudGVzdIIJdDIzOS50ZXN0ggl0MjQwLnRlc3SCCXQyNDEudGVzdIIJ
+dDI0Mi50ZXN0ggl0MjQzLnRlc3SCCXQyNDQudGVzdIIJdDI0NS50ZXN0ggl0MjQ2
+LnRlc3SCCXQyNDcudGVzdIIJdDI0OC50ZXN0ggl0MjQ5LnRlc3SCCXQyNTAudGVz
+dIIJdDI1MS50ZXN0ggl0MjUyLnRlc3SCCXQyNTMudGVzdIIJdDI1NC50ZXN0ggl0
+MjU1LnRlc3SCCXQyNTYudGVzdIIJdDI1Ny50ZXN0ggl0MjU4LnRlc3SCCXQyNTku
+dGVzdIIJdDI2MC50ZXN0ggl0MjYxLnRlc3SCCXQyNjIudGVzdIIJdDI2My50ZXN0
+ggl0MjY0LnRlc3SCCXQyNjUudGVzdIIJdDI2Ni50ZXN0ggl0MjY3LnRlc3SCCXQy
+NjgudGVzdIIJdDI2OS50ZXN0ggl0MjcwLnRlc3SCCXQyNzEudGVzdIIJdDI3Mi50
+ZXN0ggl0MjczLnRlc3SCCXQyNzQudGVzdIIJdDI3NS50ZXN0ggl0Mjc2LnRlc3SC
+CXQyNzcudGVzdIIJdDI3OC50ZXN0ggl0Mjc5LnRlc3SCCXQyODAudGVzdIIJdDI4
+MS50ZXN0ggl0MjgyLnRlc3SCCXQyODMudGVzdIIJdDI4NC50ZXN0ggl0Mjg1LnRl
+c3SCCXQyODYudGVzdIIJdDI4Ny50ZXN0ggl0Mjg4LnRlc3SCCXQyODkudGVzdIIJ
+dDI5MC50ZXN0ggl0MjkxLnRlc3SCCXQyOTIudGVzdIIJdDI5My50ZXN0ggl0Mjk0
+LnRlc3SCCXQyOTUudGVzdIIJdDI5Ni50ZXN0ggl0Mjk3LnRlc3SCCXQyOTgudGVz
+dIIJdDI5OS50ZXN0ggl0MzAwLnRlc3SCCXQzMDEudGVzdIIJdDMwMi50ZXN0ggl0
+MzAzLnRlc3SCCXQzMDQudGVzdIIJdDMwNS50ZXN0ggl0MzA2LnRlc3SCCXQzMDcu
+dGVzdIIJdDMwOC50ZXN0ggl0MzA5LnRlc3SCCXQzMTAudGVzdIIJdDMxMS50ZXN0
+ggl0MzEyLnRlc3SCCXQzMTMudGVzdIIJdDMxNC50ZXN0ggl0MzE1LnRlc3SCCXQz
+MTYudGVzdIIJdDMxNy50ZXN0ggl0MzE4LnRlc3SCCXQzMTkudGVzdIIJdDMyMC50
+ZXN0ggl0MzIxLnRlc3SCCXQzMjIudGVzdIIJdDMyMy50ZXN0ggl0MzI0LnRlc3SC
+CXQzMjUudGVzdIIJdDMyNi50ZXN0ggl0MzI3LnRlc3SCCXQzMjgudGVzdIIJdDMy
+OS50ZXN0ggl0MzMwLnRlc3SCCXQzMzEudGVzdIIJdDMzMi50ZXN0ggl0MzMzLnRl
+c3SCCXQzMzQudGVzdIIJdDMzNS50ZXN0ggl0MzM2LnRlc3SCCXQzMzcudGVzdIIJ
+dDMzOC50ZXN0ggl0MzM5LnRlc3SCCXQzNDAudGVzdIIJdDM0MS50ZXN0ggl0MzQy
+LnRlc3SCCXQzNDMudGVzdIIJdDM0NC50ZXN0ggl0MzQ1LnRlc3SCCXQzNDYudGVz
+dIIJdDM0Ny50ZXN0ggl0MzQ4LnRlc3SCCXQzNDkudGVzdIIJdDM1MC50ZXN0ggl0
+MzUxLnRlc3SCCXQzNTIudGVzdIIJdDM1My50ZXN0ggl0MzU0LnRlc3SCCXQzNTUu
+dGVzdIIJdDM1Ni50ZXN0ggl0MzU3LnRlc3SCCXQzNTgudGVzdIIJdDM1OS50ZXN0
+ggl0MzYwLnRlc3SCCXQzNjEudGVzdIIJdDM2Mi50ZXN0ggl0MzYzLnRlc3SCCXQz
+NjQudGVzdIIJdDM2NS50ZXN0ggl0MzY2LnRlc3SCCXQzNjcudGVzdIIJdDM2OC50
+ZXN0ggl0MzY5LnRlc3SCCXQzNzAudGVzdIIJdDM3MS50ZXN0ggl0MzcyLnRlc3SC
+CXQzNzMudGVzdIIJdDM3NC50ZXN0ggl0Mzc1LnRlc3SCCXQzNzYudGVzdIIJdDM3
+Ny50ZXN0ggl0Mzc4LnRlc3SCCXQzNzkudGVzdIIJdDM4MC50ZXN0ggl0MzgxLnRl
+c3SCCXQzODIudGVzdIIJdDM4My50ZXN0ggl0Mzg0LnRlc3SCCXQzODUudGVzdIIJ
+dDM4Ni50ZXN0ggl0Mzg3LnRlc3SCCXQzODgudGVzdIIJdDM4OS50ZXN0ggl0Mzkw
+LnRlc3SCCXQzOTEudGVzdIIJdDM5Mi50ZXN0ggl0MzkzLnRlc3SCCXQzOTQudGVz
+dIIJdDM5NS50ZXN0ggl0Mzk2LnRlc3SCCXQzOTcudGVzdIIJdDM5OC50ZXN0ggl0
+Mzk5LnRlc3SCCXQ0MDAudGVzdIIJdDQwMS50ZXN0ggl0NDAyLnRlc3SCCXQ0MDMu
+dGVzdIIJdDQwNC50ZXN0ggl0NDA1LnRlc3SCCXQ0MDYudGVzdIIJdDQwNy50ZXN0
+ggl0NDA4LnRlc3SCCXQ0MDkudGVzdIIJdDQxMC50ZXN0ggl0NDExLnRlc3SCCXQ0
+MTIudGVzdIIJdDQxMy50ZXN0ggl0NDE0LnRlc3SCCXQ0MTUudGVzdIIJdDQxNi50
+ZXN0ggl0NDE3LnRlc3SCCXQ0MTgudGVzdIIJdDQxOS50ZXN0ggl0NDIwLnRlc3SC
+CXQ0MjEudGVzdIIJdDQyMi50ZXN0ggl0NDIzLnRlc3SCCXQ0MjQudGVzdIIJdDQy
+NS50ZXN0ggl0NDI2LnRlc3SCCXQ0MjcudGVzdIIJdDQyOC50ZXN0ggl0NDI5LnRl
+c3SCCXQ0MzAudGVzdIIJdDQzMS50ZXN0ggl0NDMyLnRlc3SCCXQ0MzMudGVzdIIJ
+dDQzNC50ZXN0ggl0NDM1LnRlc3SCCXQ0MzYudGVzdIIJdDQzNy50ZXN0ggl0NDM4
+LnRlc3SCCXQ0MzkudGVzdIIJdDQ0MC50ZXN0ggl0NDQxLnRlc3SCCXQ0NDIudGVz
+dIIJdDQ0My50ZXN0ggl0NDQ0LnRlc3SCCXQ0NDUudGVzdIIJdDQ0Ni50ZXN0ggl0
+NDQ3LnRlc3SCCXQ0NDgudGVzdIIJdDQ0OS50ZXN0ggl0NDUwLnRlc3SCCXQ0NTEu
+dGVzdIIJdDQ1Mi50ZXN0ggl0NDUzLnRlc3SCCXQ0NTQudGVzdIIJdDQ1NS50ZXN0
+ggl0NDU2LnRlc3SCCXQ0NTcudGVzdIIJdDQ1OC50ZXN0ggl0NDU5LnRlc3SCCXQ0
+NjAudGVzdIIJdDQ2MS50ZXN0ggl0NDYyLnRlc3SCCXQ0NjMudGVzdIIJdDQ2NC50
+ZXN0ggl0NDY1LnRlc3SCCXQ0NjYudGVzdIIJdDQ2Ny50ZXN0ggl0NDY4LnRlc3SC
+CXQ0NjkudGVzdIIJdDQ3MC50ZXN0ggl0NDcxLnRlc3SCCXQ0NzIudGVzdIIJdDQ3
+My50ZXN0ggl0NDc0LnRlc3SCCXQ0NzUudGVzdIIJdDQ3Ni50ZXN0ggl0NDc3LnRl
+c3SCCXQ0NzgudGVzdIIJdDQ3OS50ZXN0ggl0NDgwLnRlc3SCCXQ0ODEudGVzdIIJ
+dDQ4Mi50ZXN0ggl0NDgzLnRlc3SCCXQ0ODQudGVzdIIJdDQ4NS50ZXN0ggl0NDg2
+LnRlc3SCCXQ0ODcudGVzdIIJdDQ4OC50ZXN0ggl0NDg5LnRlc3SCCXQ0OTAudGVz
+dIIJdDQ5MS50ZXN0ggl0NDkyLnRlc3SCCXQ0OTMudGVzdIIJdDQ5NC50ZXN0ggl0
+NDk1LnRlc3SCCXQ0OTYudGVzdIIJdDQ5Ny50ZXN0ggl0NDk4LnRlc3SCCXQ0OTku
+dGVzdIIJdDUwMC50ZXN0ggl0NTAxLnRlc3SCCXQ1MDIudGVzdIIJdDUwMy50ZXN0
+ggl0NTA0LnRlc3SCCXQ1MDUudGVzdIIJdDUwNi50ZXN0ggl0NTA3LnRlc3SCCXQ1
+MDgudGVzdIIJdDUwOS50ZXN0ggl0NTEwLnRlc3SCCXQ1MTEudGVzdIIJdDUxMi50
+ZXN0ggl0NTEzLnRlc3SCCXQ1MTQudGVzdIIJdDUxNS50ZXN0ggl0NTE2LnRlc3SC
+CXQ1MTcudGVzdIIJdDUxOC50ZXN0ggl0NTE5LnRlc3SCCXQ1MjAudGVzdIIJdDUy
+MS50ZXN0ggl0NTIyLnRlc3SCCXQ1MjMudGVzdIIJdDUyNC50ZXN0ggl0NTI1LnRl
+c3SCCXQ1MjYudGVzdIIJdDUyNy50ZXN0ggl0NTI4LnRlc3SCCXQ1MjkudGVzdIIJ
+dDUzMC50ZXN0ggl0NTMxLnRlc3SCCXQ1MzIudGVzdIIJdDUzMy50ZXN0ggl0NTM0
+LnRlc3SCCXQ1MzUudGVzdIIJdDUzNi50ZXN0ggl0NTM3LnRlc3SCCXQ1MzgudGVz
+dIIJdDUzOS50ZXN0ggl0NTQwLnRlc3SCCXQ1NDEudGVzdIIJdDU0Mi50ZXN0ggl0
+NTQzLnRlc3SCCXQ1NDQudGVzdIIJdDU0NS50ZXN0ggl0NTQ2LnRlc3SCCXQ1NDcu
+dGVzdIIJdDU0OC50ZXN0ggl0NTQ5LnRlc3SCCXQ1NTAudGVzdIIJdDU1MS50ZXN0
+ggl0NTUyLnRlc3SCCXQ1NTMudGVzdIIJdDU1NC50ZXN0ggl0NTU1LnRlc3SCCXQ1
+NTYudGVzdIIJdDU1Ny50ZXN0ggl0NTU4LnRlc3SCCXQ1NTkudGVzdIIJdDU2MC50
+ZXN0ggl0NTYxLnRlc3SCCXQ1NjIudGVzdIIJdDU2My50ZXN0ggl0NTY0LnRlc3SC
+CXQ1NjUudGVzdIIJdDU2Ni50ZXN0ggl0NTY3LnRlc3SCCXQ1NjgudGVzdIIJdDU2
+OS50ZXN0ggl0NTcwLnRlc3SCCXQ1NzEudGVzdIIJdDU3Mi50ZXN0ggl0NTczLnRl
+c3SCCXQ1NzQudGVzdIIJdDU3NS50ZXN0ggl0NTc2LnRlc3SCCXQ1NzcudGVzdIIJ
+dDU3OC50ZXN0ggl0NTc5LnRlc3SCCXQ1ODAudGVzdIIJdDU4MS50ZXN0ggl0NTgy
+LnRlc3SCCXQ1ODMudGVzdIIJdDU4NC50ZXN0ggl0NTg1LnRlc3SCCXQ1ODYudGVz
+dIIJdDU4Ny50ZXN0ggl0NTg4LnRlc3SCCXQ1ODkudGVzdIIJdDU5MC50ZXN0ggl0
+NTkxLnRlc3SCCXQ1OTIudGVzdIIJdDU5My50ZXN0ggl0NTk0LnRlc3SCCXQ1OTUu
+dGVzdIIJdDU5Ni50ZXN0ggl0NTk3LnRlc3SCCXQ1OTgudGVzdIIJdDU5OS50ZXN0
+ggl0NjAwLnRlc3SCCXQ2MDEudGVzdIIJdDYwMi50ZXN0ggl0NjAzLnRlc3SCCXQ2
+MDQudGVzdIIJdDYwNS50ZXN0ggl0NjA2LnRlc3SCCXQ2MDcudGVzdIIJdDYwOC50
+ZXN0ggl0NjA5LnRlc3SCCXQ2MTAudGVzdIIJdDYxMS50ZXN0ggl0NjEyLnRlc3SC
+CXQ2MTMudGVzdIIJdDYxNC50ZXN0ggl0NjE1LnRlc3SCCXQ2MTYudGVzdIIJdDYx
+Ny50ZXN0ggl0NjE4LnRlc3SCCXQ2MTkudGVzdIIJdDYyMC50ZXN0ggl0NjIxLnRl
+c3SCCXQ2MjIudGVzdIIJdDYyMy50ZXN0ggl0NjI0LnRlc3SCCXQ2MjUudGVzdIIJ
+dDYyNi50ZXN0ggl0NjI3LnRlc3SCCXQ2MjgudGVzdIIJdDYyOS50ZXN0ggl0NjMw
+LnRlc3SCCXQ2MzEudGVzdIIJdDYzMi50ZXN0ggl0NjMzLnRlc3SCCXQ2MzQudGVz
+dIIJdDYzNS50ZXN0ggl0NjM2LnRlc3SCCXQ2MzcudGVzdIIJdDYzOC50ZXN0ggl0
+NjM5LnRlc3SCCXQ2NDAudGVzdIIJdDY0MS50ZXN0ggl0NjQyLnRlc3SCCXQ2NDMu
+dGVzdIIJdDY0NC50ZXN0ggl0NjQ1LnRlc3SCCXQ2NDYudGVzdIIJdDY0Ny50ZXN0
+ggl0NjQ4LnRlc3SCCXQ2NDkudGVzdIIJdDY1MC50ZXN0ggl0NjUxLnRlc3SCCXQ2
+NTIudGVzdIIJdDY1My50ZXN0ggl0NjU0LnRlc3SCCXQ2NTUudGVzdIIJdDY1Ni50
+ZXN0ggl0NjU3LnRlc3SCCXQ2NTgudGVzdIIJdDY1OS50ZXN0ggl0NjYwLnRlc3SC
+CXQ2NjEudGVzdIIJdDY2Mi50ZXN0ggl0NjYzLnRlc3SCCXQ2NjQudGVzdIIJdDY2
+NS50ZXN0ggl0NjY2LnRlc3SCCXQ2NjcudGVzdIIJdDY2OC50ZXN0ggl0NjY5LnRl
+c3SCCXQ2NzAudGVzdIIJdDY3MS50ZXN0ggl0NjcyLnRlc3SCCXQ2NzMudGVzdIIJ
+dDY3NC50ZXN0ggl0Njc1LnRlc3SCCXQ2NzYudGVzdIIJdDY3Ny50ZXN0ggl0Njc4
+LnRlc3SCCXQ2NzkudGVzdIIJdDY4MC50ZXN0ggl0NjgxLnRlc3SCCXQ2ODIudGVz
+dIIJdDY4My50ZXN0ggl0Njg0LnRlc3SCCXQ2ODUudGVzdIIJdDY4Ni50ZXN0ggl0
+Njg3LnRlc3SCCXQ2ODgudGVzdIIJdDY4OS50ZXN0ggl0NjkwLnRlc3SCCXQ2OTEu
+dGVzdIIJdDY5Mi50ZXN0ggl0NjkzLnRlc3SCCXQ2OTQudGVzdIIJdDY5NS50ZXN0
+ggl0Njk2LnRlc3SCCXQ2OTcudGVzdIIJdDY5OC50ZXN0ggl0Njk5LnRlc3SCCXQ3
+MDAudGVzdIIJdDcwMS50ZXN0ggl0NzAyLnRlc3SCCXQ3MDMudGVzdIIJdDcwNC50
+ZXN0ggl0NzA1LnRlc3SCCXQ3MDYudGVzdIIJdDcwNy50ZXN0ggl0NzA4LnRlc3SC
+CXQ3MDkudGVzdIIJdDcxMC50ZXN0ggl0NzExLnRlc3SCCXQ3MTIudGVzdIIJdDcx
+My50ZXN0ggl0NzE0LnRlc3SCCXQ3MTUudGVzdIIJdDcxNi50ZXN0ggl0NzE3LnRl
+c3SCCXQ3MTgudGVzdIIJdDcxOS50ZXN0ggl0NzIwLnRlc3SCCXQ3MjEudGVzdIIJ
+dDcyMi50ZXN0ggl0NzIzLnRlc3SCCXQ3MjQudGVzdIIJdDcyNS50ZXN0ggl0NzI2
+LnRlc3SCCXQ3MjcudGVzdIIJdDcyOC50ZXN0ggl0NzI5LnRlc3SCCXQ3MzAudGVz
+dIIJdDczMS50ZXN0ggl0NzMyLnRlc3SCCXQ3MzMudGVzdIIJdDczNC50ZXN0ggl0
+NzM1LnRlc3SCCXQ3MzYudGVzdIIJdDczNy50ZXN0ggl0NzM4LnRlc3SCCXQ3Mzku
+dGVzdIIJdDc0MC50ZXN0ggl0NzQxLnRlc3SCCXQ3NDIudGVzdIIJdDc0My50ZXN0
+ggl0NzQ0LnRlc3SCCXQ3NDUudGVzdIIJdDc0Ni50ZXN0ggl0NzQ3LnRlc3SCCXQ3
+NDgudGVzdIIJdDc0OS50ZXN0ggl0NzUwLnRlc3SCCXQ3NTEudGVzdIIJdDc1Mi50
+ZXN0ggl0NzUzLnRlc3SCCXQ3NTQudGVzdIIJdDc1NS50ZXN0ggl0NzU2LnRlc3SC
+CXQ3NTcudGVzdIIJdDc1OC50ZXN0ggl0NzU5LnRlc3SCCXQ3NjAudGVzdIIJdDc2
+MS50ZXN0ggl0NzYyLnRlc3SCCXQ3NjMudGVzdIIJdDc2NC50ZXN0ggl0NzY1LnRl
+c3SCCXQ3NjYudGVzdIIJdDc2Ny50ZXN0ggl0NzY4LnRlc3SCCXQ3NjkudGVzdIIJ
+dDc3MC50ZXN0ggl0NzcxLnRlc3SCCXQ3NzIudGVzdIIJdDc3My50ZXN0ggl0Nzc0
+LnRlc3SCCXQ3NzUudGVzdIIJdDc3Ni50ZXN0ggl0Nzc3LnRlc3SCCXQ3NzgudGVz
+dIIJdDc3OS50ZXN0ggl0NzgwLnRlc3SCCXQ3ODEudGVzdIIJdDc4Mi50ZXN0ggl0
+NzgzLnRlc3SCCXQ3ODQudGVzdIIJdDc4NS50ZXN0ggl0Nzg2LnRlc3SCCXQ3ODcu
+dGVzdIIJdDc4OC50ZXN0ggl0Nzg5LnRlc3SCCXQ3OTAudGVzdIIJdDc5MS50ZXN0
+ggl0NzkyLnRlc3SCCXQ3OTMudGVzdIIJdDc5NC50ZXN0ggl0Nzk1LnRlc3SCCXQ3
+OTYudGVzdIIJdDc5Ny50ZXN0ggl0Nzk4LnRlc3SCCXQ3OTkudGVzdIIJdDgwMC50
+ZXN0ggl0ODAxLnRlc3SCCXQ4MDIudGVzdIIJdDgwMy50ZXN0ggl0ODA0LnRlc3SC
+CXQ4MDUudGVzdIIJdDgwNi50ZXN0ggl0ODA3LnRlc3SCCXQ4MDgudGVzdIIJdDgw
+OS50ZXN0ggl0ODEwLnRlc3SCCXQ4MTEudGVzdIIJdDgxMi50ZXN0ggl0ODEzLnRl
+c3SCCXQ4MTQudGVzdIIJdDgxNS50ZXN0ggl0ODE2LnRlc3SCCXQ4MTcudGVzdIIJ
+dDgxOC50ZXN0ggl0ODE5LnRlc3SCCXQ4MjAudGVzdIIJdDgyMS50ZXN0ggl0ODIy
+LnRlc3SCCXQ4MjMudGVzdIIJdDgyNC50ZXN0ggl0ODI1LnRlc3SCCXQ4MjYudGVz
+dIIJdDgyNy50ZXN0ggl0ODI4LnRlc3SCCXQ4MjkudGVzdIIJdDgzMC50ZXN0ggl0
+ODMxLnRlc3SCCXQ4MzIudGVzdIIJdDgzMy50ZXN0ggl0ODM0LnRlc3SCCXQ4MzUu
+dGVzdIIJdDgzNi50ZXN0ggl0ODM3LnRlc3SCCXQ4MzgudGVzdIIJdDgzOS50ZXN0
+ggl0ODQwLnRlc3SCCXQ4NDEudGVzdIIJdDg0Mi50ZXN0ggl0ODQzLnRlc3SCCXQ4
+NDQudGVzdIIJdDg0NS50ZXN0ggl0ODQ2LnRlc3SCCXQ4NDcudGVzdIIJdDg0OC50
+ZXN0ggl0ODQ5LnRlc3SCCXQ4NTAudGVzdIIJdDg1MS50ZXN0ggl0ODUyLnRlc3SC
+CXQ4NTMudGVzdIIJdDg1NC50ZXN0ggl0ODU1LnRlc3SCCXQ4NTYudGVzdIIJdDg1
+Ny50ZXN0ggl0ODU4LnRlc3SCCXQ4NTkudGVzdIIJdDg2MC50ZXN0ggl0ODYxLnRl
+c3SCCXQ4NjIudGVzdIIJdDg2My50ZXN0ggl0ODY0LnRlc3SCCXQ4NjUudGVzdIIJ
+dDg2Ni50ZXN0ggl0ODY3LnRlc3SCCXQ4NjgudGVzdIIJdDg2OS50ZXN0ggl0ODcw
+LnRlc3SCCXQ4NzEudGVzdIIJdDg3Mi50ZXN0ggl0ODczLnRlc3SCCXQ4NzQudGVz
+dIIJdDg3NS50ZXN0ggl0ODc2LnRlc3SCCXQ4NzcudGVzdIIJdDg3OC50ZXN0ggl0
+ODc5LnRlc3SCCXQ4ODAudGVzdIIJdDg4MS50ZXN0ggl0ODgyLnRlc3SCCXQ4ODMu
+dGVzdIIJdDg4NC50ZXN0ggl0ODg1LnRlc3SCCXQ4ODYudGVzdIIJdDg4Ny50ZXN0
+ggl0ODg4LnRlc3SCCXQ4ODkudGVzdIIJdDg5MC50ZXN0ggl0ODkxLnRlc3SCCXQ4
+OTIudGVzdIIJdDg5My50ZXN0ggl0ODk0LnRlc3SCCXQ4OTUudGVzdIIJdDg5Ni50
+ZXN0ggl0ODk3LnRlc3SCCXQ4OTgudGVzdIIJdDg5OS50ZXN0ggl0OTAwLnRlc3SC
+CXQ5MDEudGVzdIIJdDkwMi50ZXN0ggl0OTAzLnRlc3SCCXQ5MDQudGVzdIIJdDkw
+NS50ZXN0ggl0OTA2LnRlc3SCCXQ5MDcudGVzdIIJdDkwOC50ZXN0ggl0OTA5LnRl
+c3SCCXQ5MTAudGVzdIIJdDkxMS50ZXN0ggl0OTEyLnRlc3SCCXQ5MTMudGVzdIIJ
+dDkxNC50ZXN0ggl0OTE1LnRlc3SCCXQ5MTYudGVzdIIJdDkxNy50ZXN0ggl0OTE4
+LnRlc3SCCXQ5MTkudGVzdIIJdDkyMC50ZXN0ggl0OTIxLnRlc3SCCXQ5MjIudGVz
+dIIJdDkyMy50ZXN0ggl0OTI0LnRlc3SCCXQ5MjUudGVzdIIJdDkyNi50ZXN0ggl0
+OTI3LnRlc3SCCXQ5MjgudGVzdIIJdDkyOS50ZXN0ggl0OTMwLnRlc3SCCXQ5MzEu
+dGVzdIIJdDkzMi50ZXN0ggl0OTMzLnRlc3SCCXQ5MzQudGVzdIIJdDkzNS50ZXN0
+ggl0OTM2LnRlc3SCCXQ5MzcudGVzdIIJdDkzOC50ZXN0ggl0OTM5LnRlc3SCCXQ5
+NDAudGVzdIIJdDk0MS50ZXN0ggl0OTQyLnRlc3SCCXQ5NDMudGVzdIIJdDk0NC50
+ZXN0ggl0OTQ1LnRlc3SCCXQ5NDYudGVzdIIJdDk0Ny50ZXN0ggl0OTQ4LnRlc3SC
+CXQ5NDkudGVzdIIJdDk1MC50ZXN0ggl0OTUxLnRlc3SCCXQ5NTIudGVzdIIJdDk1
+My50ZXN0ggl0OTU0LnRlc3SCCXQ5NTUudGVzdIIJdDk1Ni50ZXN0ggl0OTU3LnRl
+c3SCCXQ5NTgudGVzdIIJdDk1OS50ZXN0ggl0OTYwLnRlc3SCCXQ5NjEudGVzdIIJ
+dDk2Mi50ZXN0ggl0OTYzLnRlc3SCCXQ5NjQudGVzdIIJdDk2NS50ZXN0ggl0OTY2
+LnRlc3SCCXQ5NjcudGVzdIIJdDk2OC50ZXN0ggl0OTY5LnRlc3SCCXQ5NzAudGVz
+dIIJdDk3MS50ZXN0ggl0OTcyLnRlc3SCCXQ5NzMudGVzdIIJdDk3NC50ZXN0ggl0
+OTc1LnRlc3SCCXQ5NzYudGVzdIIJdDk3Ny50ZXN0ggl0OTc4LnRlc3SCCXQ5Nzku
+dGVzdIIJdDk4MC50ZXN0ggl0OTgxLnRlc3SCCXQ5ODIudGVzdIIJdDk4My50ZXN0
+ggl0OTg0LnRlc3SCCXQ5ODUudGVzdIIJdDk4Ni50ZXN0ggl0OTg3LnRlc3SCCXQ5
+ODgudGVzdIIJdDk4OS50ZXN0ggl0OTkwLnRlc3SCCXQ5OTEudGVzdIIJdDk5Mi50
+ZXN0ggl0OTkzLnRlc3SCCXQ5OTQudGVzdIIJdDk5NS50ZXN0ggl0OTk2LnRlc3SC
+CXQ5OTcudGVzdIIJdDk5OC50ZXN0ggl0OTk5LnRlc3SCCnQxMDAwLnRlc3SCCnQx
+MDAxLnRlc3SCCnQxMDAyLnRlc3SCCnQxMDAzLnRlc3SCCnQxMDA0LnRlc3SCCnQx
+MDA1LnRlc3SCCnQxMDA2LnRlc3SCCnQxMDA3LnRlc3SCCnQxMDA4LnRlc3SCCnQx
+MDA5LnRlc3SCCnQxMDEwLnRlc3SCCnQxMDExLnRlc3SCCnQxMDEyLnRlc3SCCnQx
+MDEzLnRlc3SCCnQxMDE0LnRlc3SCCnQxMDE1LnRlc3SCCnQxMDE2LnRlc3SCCnQx
+MDE3LnRlc3SCCnQxMDE4LnRlc3SCCnQxMDE5LnRlc3SCCnQxMDIwLnRlc3SCCnQx
+MDIxLnRlc3SCCnQxMDIyLnRlc3SCCnQxMDIzLnRlc3SCCnQxMDI0LnRlc3QwDQYJ
+KoZIhvcNAQELBQADggEBAGfZxjrjcjFw5FnJMzq7SIad+JpmvMar7VnzXj84hjoV
+FuUqiclqjg1KRD7aIh5M1VEQv+AAk8UP6jMrvLJpoi5OD8ljivNA8zycj1N/LhNq
+8MjZauCTS+tuXIoh5hOE/TQqY6cUxY4LRBLIFIcbH0FGF22amCtowMVbRoaUpPvr
+GR5OXPAS3yRiEWrp703c21o3hw9QckB82z7Lxnt3oOFPg62EFPXiqE07Wkw/1xH4
+J9yy45XW5A77kfel22hVs873QVHI+GkKoTPe/q6eQVgesR2vpDRytKDP9K4tK4KS
+6hqVxj6a8Eqund0izSV+UXkskc9iN6EPXvVTELo3hD8=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/many-names3.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/many-names3.pem
new file mode 100644
index 000000000..dbfa04281
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/many-names3.pem
@@ -0,0 +1,571 @@
+-----BEGIN CERTIFICATE-----
+MIJqmDCCaYCgAwIBAgIBBDANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJDQTAg
+Fw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowgmfXMRAwDgYDVQQDEwd0
+MC50ZXN0MRYwFAYJKoZIhvcNAQkBFgd0MEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+MUB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0MkB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+M0B0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0NEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+NUB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0NkB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+N0B0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0OEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+OUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MTBAdGVzdDEXMBUGCSqGSIb3DQEJARYI
+dDExQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQxMkB0ZXN0MRcwFQYJKoZIhvcNAQkB
+Fgh0MTNAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDE0QHRlc3QxFzAVBgkqhkiG9w0B
+CQEWCHQxNUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MTZAdGVzdDEXMBUGCSqGSIb3
+DQEJARYIdDE3QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQxOEB0ZXN0MRcwFQYJKoZI
+hvcNAQkBFgh0MTlAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDIwQHRlc3QxFzAVBgkq
+hkiG9w0BCQEWCHQyMUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MjJAdGVzdDEXMBUG
+CSqGSIb3DQEJARYIdDIzQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQyNEB0ZXN0MRcw
+FQYJKoZIhvcNAQkBFgh0MjVAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDI2QHRlc3Qx
+FzAVBgkqhkiG9w0BCQEWCHQyN0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MjhAdGVz
+dDEXMBUGCSqGSIb3DQEJARYIdDI5QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzMEB0
+ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MzFAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDMy
+QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzM0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0
+MzRAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDM1QHRlc3QxFzAVBgkqhkiG9w0BCQEW
+CHQzNkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MzdAdGVzdDEXMBUGCSqGSIb3DQEJ
+ARYIdDM4QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzOUB0ZXN0MRcwFQYJKoZIhvcN
+AQkBFgh0NDBAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDQxQHRlc3QxFzAVBgkqhkiG
+9w0BCQEWCHQ0MkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NDNAdGVzdDEXMBUGCSqG
+SIb3DQEJARYIdDQ0QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ0NUB0ZXN0MRcwFQYJ
+KoZIhvcNAQkBFgh0NDZAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDQ3QHRlc3QxFzAV
+BgkqhkiG9w0BCQEWCHQ0OEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NDlAdGVzdDEX
+MBUGCSqGSIb3DQEJARYIdDUwQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ1MUB0ZXN0
+MRcwFQYJKoZIhvcNAQkBFgh0NTJAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDUzQHRl
+c3QxFzAVBgkqhkiG9w0BCQEWCHQ1NEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NTVA
+dGVzdDEXMBUGCSqGSIb3DQEJARYIdDU2QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ1
+N0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NThAdGVzdDEXMBUGCSqGSIb3DQEJARYI
+dDU5QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ2MEB0ZXN0MRcwFQYJKoZIhvcNAQkB
+Fgh0NjFAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDYyQHRlc3QxFzAVBgkqhkiG9w0B
+CQEWCHQ2M0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NjRAdGVzdDEXMBUGCSqGSIb3
+DQEJARYIdDY1QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ2NkB0ZXN0MRcwFQYJKoZI
+hvcNAQkBFgh0NjdAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDY4QHRlc3QxFzAVBgkq
+hkiG9w0BCQEWCHQ2OUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzBAdGVzdDEXMBUG
+CSqGSIb3DQEJARYIdDcxQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ3MkB0ZXN0MRcw
+FQYJKoZIhvcNAQkBFgh0NzNAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDc0QHRlc3Qx
+FzAVBgkqhkiG9w0BCQEWCHQ3NUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzZAdGVz
+dDEXMBUGCSqGSIb3DQEJARYIdDc3QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ3OEB0
+ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzlAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDgw
+QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ4MUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0
+ODJAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDgzQHRlc3QxFzAVBgkqhkiG9w0BCQEW
+CHQ4NEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0ODVAdGVzdDEXMBUGCSqGSIb3DQEJ
+ARYIdDg2QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ4N0B0ZXN0MRcwFQYJKoZIhvcN
+AQkBFgh0ODhAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDg5QHRlc3QxFzAVBgkqhkiG
+9w0BCQEWCHQ5MEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0OTFAdGVzdDEXMBUGCSqG
+SIb3DQEJARYIdDkyQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ5M0B0ZXN0MRcwFQYJ
+KoZIhvcNAQkBFgh0OTRAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDk1QHRlc3QxFzAV
+BgkqhkiG9w0BCQEWCHQ5NkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0OTdAdGVzdDEX
+MBUGCSqGSIb3DQEJARYIdDk4QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ5OUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTAwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMDFA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDEwMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTAzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMDRAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDEwNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTA2QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQxMDdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEwOEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MTA5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTBAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDExMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTEyQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQxMTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEx
+NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTE1QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQxMTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDExN0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MTE4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTlAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDEyMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTIxQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQxMjJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEyM0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTI0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMjVA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDEyNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTI3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMjhAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDEyOUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTMwQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQxMzFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEzMkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MTMzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMzRAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDEzNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTM2QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQxMzdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEz
+OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTM5QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQxNDBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE0MUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MTQyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNDNAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDE0NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTQ1QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQxNDZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE0N0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTQ4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNDlA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDE1MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTUxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNTJAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDE1M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTU0QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQxNTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE1NkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MTU3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNThAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDE1OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTYwQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQxNjFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE2
+MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTYzQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQxNjRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE2NUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MTY2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNjdAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDE2OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTY5QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQxNzBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE3MUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTcyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNzNA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDE3NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTc1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNzZAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDE3N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTc4QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQxNzlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4MEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MTgxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxODJAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDE4M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTg0QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQxODVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4
+NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTg3QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQxODhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4OUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MTkwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxOTFAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDE5MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTkzQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQxOTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE5NUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTk2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxOTdA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDE5OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTk5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDBAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDIwMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjAyQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQyMDNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIwNEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MjA1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDZAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDIwN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjA4QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQyMDlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIx
+MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjExQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQyMTJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIxM0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MjE0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMTVAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDIxNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjE3QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQyMThAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIxOUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MjIwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMjFA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDIyMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MjIzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMjRAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDIyNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjI2QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQyMjdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIyOEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MjI5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzBAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDIzMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjMyQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQyMzNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIz
+NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjM1QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQyMzZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIzN0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MjM4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzlAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDI0MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjQxQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQyNDJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI0M0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MjQ0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNDVA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDI0NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MjQ3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNDhAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDI0OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjUwQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQyNTFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI1MkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MjUzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNTRAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDI1NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjU2QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQyNTdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI1
+OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjU5QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQyNjBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI2MUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MjYyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNjNAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDI2NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjY1QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQyNjZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI2N0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MjY4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNjlA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDI3MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MjcxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNzJAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDI3M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mjc0QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQyNzVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI3NkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0Mjc3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNzhAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDI3OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjgwQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQyODFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI4
+MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjgzQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQyODRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI4NUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0Mjg2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyODdAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDI4OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mjg5QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQyOTBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI5MUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MjkyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyOTNA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDI5NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+Mjk1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyOTZAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDI5N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mjk4QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQyOTlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMwMEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MzAxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMDJAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDMwM0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzA0QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQzMDVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMw
+NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzA3QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQzMDhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMwOUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MzEwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMTFAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDMxMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzEzQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQzMTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMxNUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MzE2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMTdA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDMxOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MzE5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMjBAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDMyMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzIyQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQzMjNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMyNEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MzI1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMjZAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDMyN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzI4QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQzMjlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMz
+MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzMxQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQzMzJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMzM0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MzM0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMzVAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDMzNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzM3QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQzMzhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMzOUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MzQwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNDFA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDM0MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MzQzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNDRAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDM0NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzQ2QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQzNDdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM0OEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MzQ5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNTBAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDM1MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzUyQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQzNTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM1
+NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzU1QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQzNTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM1N0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MzU4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNTlAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDM2MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzYxQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQzNjJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM2M0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MzY0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNjVA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDM2NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MzY3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNjhAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDM2OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzcwQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQzNzFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM3MkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MzczQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNzRAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDM3NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzc2QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQzNzdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM3
+OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzc5QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQzODBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM4MUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MzgyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzODNAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDM4NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzg1QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQzODZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM4N0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0Mzg4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzODlA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDM5MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MzkxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzOTJAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDM5M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzk0QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQzOTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM5NkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0Mzk3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzOThAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDM5OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDAwQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ0MDFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQw
+MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDAzQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ0MDRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQwNUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NDA2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MDdAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDQwOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDA5QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ0MTBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQxMUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NDEyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MTNA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDQxNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NDE1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MTZAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDQxN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDE4QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ0MTlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQyMEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NDIxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MjJAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDQyM0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDI0QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ0MjVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQy
+NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDI3QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ0MjhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQyOUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NDMwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MzFAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDQzMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDMzQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ0MzRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQzNUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NDM2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MzdA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDQzOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NDM5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NDBAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDQ0MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDQyQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ0NDNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ0NEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NDQ1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NDZAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDQ0N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDQ4QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ0NDlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ1
+MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDUxQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ0NTJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ1M0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NDU0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NTVAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDQ1NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDU3QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ0NThAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ1OUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NDYwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NjFA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ2MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NDYzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NjRAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDQ2NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDY2QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ0NjdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ2OEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NDY5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NzBAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDQ3MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDcyQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ0NzNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ3
+NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDc1QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ0NzZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ3N0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NDc4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NzlAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDQ4MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDgxQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ0ODJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ4M0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NDg0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0ODVA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ4NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NDg3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0ODhAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDQ4OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDkwQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ0OTFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ5MkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NDkzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0OTRAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDQ5NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDk2QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ0OTdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ5
+OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDk5QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ1MDBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUwMUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NTAyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MDNAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDUwNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTA1QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ1MDZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUwN0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NTA4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MDlA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDUxMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NTExQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MTJAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDUxM0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTE0QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ1MTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUxNkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NTE3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MThAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDUxOUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTIwQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ1MjFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUy
+MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTIzQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ1MjRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUyNUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NTI2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MjdAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDUyOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTI5QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ1MzBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUzMUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NTMyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MzNA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDUzNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NTM1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MzZAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDUzN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTM4QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ1MzlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU0MEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NTQxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1NDJAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDU0M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTQ0QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ1NDVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU0
+NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTQ3QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ1NDhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU0OUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NTUwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1NTFAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDU1MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTUzQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ1NTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU1NUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NTU2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1NTdA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDU1OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NTU5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1NjBAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDU2MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTYyQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ1NjNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU2NEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NTY1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1NjZAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDU2N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTY4QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ1NjlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU3
+MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTcxQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ1NzJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU3M0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NTc0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1NzVAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDU3NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTc3QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ1NzhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU3OUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NTgwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1ODFA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDU4MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NTgzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1ODRAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDU4NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTg2QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ1ODdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU4OEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NTg5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1OTBAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDU5MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTkyQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ1OTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU5
+NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTk1QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ1OTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU5N0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NTk4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1OTlAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDYwMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjAxQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ2MDJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDYwM0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NjA0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2MDVA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDYwNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NjA3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2MDhAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDYwOUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjEwQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ2MTFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDYxMkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NjEzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2MTRAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDYxNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjE2QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ2MTdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDYx
+OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjE5QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ2MjBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDYyMUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NjIyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2MjNAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDYyNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjI1QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ2MjZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDYyN0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NjI4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2MjlA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDYzMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NjMxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2MzJAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDYzM0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjM0QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ2MzVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDYzNkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NjM3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2MzhAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDYzOUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjQwQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ2NDFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY0
+MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjQzQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ2NDRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY0NUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NjQ2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2NDdAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDY0OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjQ5QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ2NTBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY1MUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NjUyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2NTNA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDY1NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NjU1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2NTZAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDY1N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjU4QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ2NTlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY2MEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NjYxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2NjJAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDY2M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjY0QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ2NjVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY2
+NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjY3QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ2NjhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY2OUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NjcwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2NzFAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDY3MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjczQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ2NzRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY3NUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0Njc2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2NzdA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDY3OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+Njc5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2ODBAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDY4MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjgyQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ2ODNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY4NEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0Njg1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2ODZAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDY4N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Njg4QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ2ODlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY5
+MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjkxQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ2OTJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY5M0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0Njk0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2OTVAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDY5NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Njk3QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ2OThAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY5OUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NzAwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3MDFA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDcwMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NzAzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3MDRAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDcwNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzA2QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ3MDdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDcwOEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NzA5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3MTBAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDcxMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzEyQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ3MTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDcx
+NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzE1QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ3MTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDcxN0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NzE4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3MTlAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDcyMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzIxQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ3MjJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDcyM0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NzI0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3MjVA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDcyNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NzI3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3MjhAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDcyOUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzMwQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ3MzFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDczMkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NzMzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3MzRAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDczNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzM2QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ3MzdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDcz
+OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzM5QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ3NDBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc0MUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NzQyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3NDNAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDc0NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzQ1QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ3NDZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc0N0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NzQ4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3NDlA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDc1MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NzUxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3NTJAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDc1M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzU0QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ3NTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc1NkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NzU3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3NThAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDc1OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzYwQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ3NjFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc2
+MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzYzQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ3NjRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc2NUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NzY2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3NjdAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDc2OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzY5QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ3NzBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc3MUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NzcyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3NzNA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDc3NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+Nzc1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3NzZAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDc3N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Nzc4QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ3NzlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc4MEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NzgxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3ODJAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDc4M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Nzg0QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ3ODVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc4
+NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Nzg3QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ3ODhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc4OUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NzkwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3OTFAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDc5MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzkzQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ3OTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc5NUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0Nzk2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3OTdA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDc5OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+Nzk5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4MDBAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDgwMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODAyQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ4MDNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDgwNEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0ODA1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4MDZAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDgwN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODA4QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ4MDlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDgx
+MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODExQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ4MTJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDgxM0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0ODE0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4MTVAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDgxNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODE3QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ4MThAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDgxOUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0ODIwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4MjFA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDgyMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+ODIzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4MjRAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDgyNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODI2QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ4MjdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDgyOEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0ODI5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4MzBAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDgzMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODMyQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ4MzNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDgz
+NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODM1QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ4MzZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDgzN0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0ODM4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4MzlAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDg0MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODQxQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ4NDJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDg0M0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0ODQ0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4NDVA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDg0NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+ODQ3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4NDhAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDg0OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODUwQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ4NTFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDg1MkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0ODUzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4NTRAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDg1NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODU2QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ4NTdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDg1
+OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODU5QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ4NjBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDg2MUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0ODYyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4NjNAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDg2NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODY1QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ4NjZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDg2N0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0ODY4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4NjlA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDg3MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+ODcxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4NzJAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDg3M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODc0QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ4NzVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDg3NkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0ODc3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4NzhAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDg3OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODgwQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ4ODFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDg4
+MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODgzQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ4ODRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDg4NUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0ODg2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4ODdAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDg4OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODg5QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ4OTBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDg5MUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0ODkyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4OTNA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDg5NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+ODk1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4OTZAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDg5N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODk4QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ4OTlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDkwMEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0OTAxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5MDJAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDkwM0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTA0QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ5MDVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDkw
+NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTA3QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ5MDhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDkwOUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0OTEwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5MTFAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDkxMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTEzQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ5MTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDkxNUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0OTE2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5MTdA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDkxOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+OTE5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5MjBAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDkyMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTIyQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ5MjNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDkyNEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0OTI1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5MjZAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDkyN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTI4QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ5MjlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDkz
+MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTMxQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ5MzJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDkzM0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0OTM0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5MzVAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDkzNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTM3QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ5MzhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDkzOUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0OTQwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5NDFA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDk0MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+OTQzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5NDRAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDk0NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTQ2QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ5NDdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDk0OEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0OTQ5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5NTBAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDk1MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTUyQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ5NTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDk1
+NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTU1QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ5NTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDk1N0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0OTU4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5NTlAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDk2MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTYxQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ5NjJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDk2M0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0OTY0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5NjVA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDk2NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+OTY3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5NjhAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDk2OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTcwQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ5NzFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDk3MkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0OTczQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5NzRAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDk3NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTc2QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ5NzdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDk3
+OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTc5QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ5ODBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDk4MUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0OTgyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5ODNAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDk4NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTg1QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ5ODZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDk4N0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0OTg4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5ODlA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDk5MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+OTkxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5OTJAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDk5M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTk0QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ5OTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDk5NkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0OTk3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5OThAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDk5OUB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAwMEB0
+ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAwMUB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0
+MTAwMkB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAwM0B0ZXN0MRkwFwYJKoZIhvcN
+AQkBFgp0MTAwNEB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAwNUB0ZXN0MRkwFwYJ
+KoZIhvcNAQkBFgp0MTAwNkB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAwN0B0ZXN0
+MRkwFwYJKoZIhvcNAQkBFgp0MTAwOEB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAw
+OUB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAxMEB0ZXN0MRkwFwYJKoZIhvcNAQkB
+Fgp0MTAxMUB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAxMkB0ZXN0MRkwFwYJKoZI
+hvcNAQkBFgp0MTAxM0B0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAxNEB0ZXN0MRkw
+FwYJKoZIhvcNAQkBFgp0MTAxNUB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAxNkB0
+ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAxN0B0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0
+MTAxOEB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAxOUB0ZXN0MRkwFwYJKoZIhvcN
+AQkBFgp0MTAyMEB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAyMUB0ZXN0MRkwFwYJ
+KoZIhvcNAQkBFgp0MTAyMkB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAyM0B0ZXN0
+MRkwFwYJKoZIhvcNAQkBFgp0MTAyNEB0ZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAugvahBkSAUF1fC49vb1bvlPrcl80kop1iLpiuYoz4Qptwy57
++EWssZBcHprZ5BkWf6PeGZ7F5AX1PyJbGHZLqvMCvViP6pd4MFox/igESISEHEix
+oiXCzepBrhtp5UQSjHD4D4hKtgdMgVxX+LRtwgW3mnu/vBu7rzpr/DS8io99p3lq
+Z1Aky+aNlcMj6MYy8U+YFEevb/V0lRY9oqwmW7BHnXikm/vi6sjIS350U8zb/mRz
+YeIs2R65LUduTL50+UMgat9ocewI2dv8aO9Dph+8NdGtg8LFYyTTHcUxJoMr1PTO
+gnmET19WJH4PrFwk7ZE1QJQQ1L4iKmPeQistuQIDAQABozUwMzAOBgNVHQ8BAf8E
+BAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADANBgkqhkiG
+9w0BAQsFAAOCAQEAtMIpnGzOBkJXEBmCsRVbTrg9QgYRlGPG48+cXT2QbIutAmbj
+miF+OYg/bRsQtuqcKjnJYog+x6UCU3d34jaMEfEXfHSwF7xPQrqJm45MXhG3so4E
++el5GMAS+SKFQK3w8NPoGhGwn82sz4XV6HMG+ANUxMlCrOcx2jh5UW+7ITjdRwJd
+ReJ/JaMpneJdwGFSU9Vn+t7PFb51/pOYqO/PuEANzphovjMVcFZ6mtAQwYDkQZBJ
+Vy1/7bPoNmbKD0GAS6HpS+xaJ/DnjjD6Kal2T7GMyvRMogj5BeZ/uEkXCEhvoaBT
+os1gaqqnGpZ6JSEDctzjgpCtEPR40yiz1wv1CA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/mkcert.sh b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/mkcert.sh
new file mode 100755
index 000000000..ebb71c177
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/mkcert.sh
@@ -0,0 +1,291 @@
+#! /bin/bash
+#
+# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright (c) 2016 Viktor Dukhovni <openssl-users@dukhovni.org>.
+# All rights reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# This file is dual-licensed and is also available under other terms.
+# Please contact the author.
+
+# 100 years should be enough for now
+if [ -z "$DAYS" ]; then
+ DAYS=36525
+fi
+
+if [ -z "$OPENSSL_SIGALG" ]; then
+ OPENSSL_SIGALG=sha256
+fi
+
+if [ -z "$REQMASK" ]; then
+ REQMASK=utf8only
+fi
+
+stderr_onerror() {
+ (
+ err=$("$@" >&3 2>&1) || {
+ printf "%s\n" "$err" >&2
+ exit 1
+ }
+ ) 3>&1
+}
+
+key() {
+ local key=$1; shift
+
+ local alg=rsa
+ if [ -n "$OPENSSL_KEYALG" ]; then
+ alg=$OPENSSL_KEYALG
+ fi
+
+ local bits=2048
+ if [ -n "$OPENSSL_KEYBITS" ]; then
+ bits=$OPENSSL_KEYBITS
+ fi
+
+ if [ ! -f "${key}.pem" ]; then
+ args=(-algorithm "$alg")
+ case $alg in
+ rsa) args=("${args[@]}" -pkeyopt rsa_keygen_bits:$bits );;
+ ec) args=("${args[@]}" -pkeyopt "ec_paramgen_curve:$bits")
+ args=("${args[@]}" -pkeyopt ec_param_enc:named_curve);;
+ dsa) args=(-paramfile "$bits");;
+ ed25519) ;;
+ ed448) ;;
+ *) printf "Unsupported key algorithm: %s\n" "$alg" >&2; return 1;;
+ esac
+ stderr_onerror \
+ openssl genpkey "${args[@]}" -out "${key}.pem"
+ fi
+}
+
+# Usage: $0 req keyname dn1 dn2 ...
+req() {
+ local key=$1; shift
+
+ key "$key"
+ local errs
+
+ stderr_onerror \
+ openssl req -new -"${OPENSSL_SIGALG}" -key "${key}.pem" \
+ -config <(printf "string_mask=%s\n[req]\n%s\n%s\n[dn]\n" \
+ "$REQMASK" "prompt = no" "distinguished_name = dn"
+ for dn in "$@"; do echo "$dn"; done)
+}
+
+req_nocn() {
+ local key=$1; shift
+
+ key "$key"
+ stderr_onerror \
+ openssl req -new -"${OPENSSL_SIGALG}" -subj / -key "${key}.pem" \
+ -config <(printf "[req]\n%s\n[dn]\nCN_default =\n" \
+ "distinguished_name = dn")
+}
+
+cert() {
+ local cert=$1; shift
+ local exts=$1; shift
+
+ stderr_onerror \
+ openssl x509 -req -"${OPENSSL_SIGALG}" -out "${cert}.pem" \
+ -extfile <(printf "%s\n" "$exts") "$@"
+}
+
+genroot() {
+ local cn=$1; shift
+ local key=$1; shift
+ local cert=$1; shift
+ local skid="subjectKeyIdentifier = hash"
+ local akid="authorityKeyIdentifier = keyid"
+
+ exts=$(printf "%s\n%s\n%s\n" "$skid" "$akid" "basicConstraints = critical,CA:true")
+ for eku in "$@"
+ do
+ exts=$(printf "%s\nextendedKeyUsage = %s\n" "$exts" "$eku")
+ done
+ csr=$(req "$key" "CN = $cn") || return 1
+ echo "$csr" |
+ cert "$cert" "$exts" -signkey "${key}.pem" -set_serial 1 -days "${DAYS}"
+}
+
+genca() {
+ local cn=$1; shift
+ local key=$1; shift
+ local cert=$1; shift
+ local cakey=$1; shift
+ local cacert=$1; shift
+ local skid="subjectKeyIdentifier = hash"
+ local akid="authorityKeyIdentifier = keyid"
+
+ exts=$(printf "%s\n%s\n%s\n" "$skid" "$akid" "basicConstraints = critical,CA:true")
+ for eku in "$@"
+ do
+ exts=$(printf "%s\nextendedKeyUsage = %s\n" "$exts" "$eku")
+ done
+ if [ -n "$NC" ]; then
+ exts=$(printf "%s\nnameConstraints = %s\n" "$exts" "$NC")
+ fi
+ csr=$(req "$key" "CN = $cn") || return 1
+ echo "$csr" |
+ cert "$cert" "$exts" -CA "${cacert}.pem" -CAkey "${cakey}.pem" \
+ -set_serial 2 -days "${DAYS}"
+}
+
+gen_nonbc_ca() {
+ local cn=$1; shift
+ local key=$1; shift
+ local cert=$1; shift
+ local cakey=$1; shift
+ local cacert=$1; shift
+ local skid="subjectKeyIdentifier = hash"
+ local akid="authorityKeyIdentifier = keyid"
+
+ exts=$(printf "%s\n%s\n%s\n" "$skid" "$akid")
+ exts=$(printf "%s\nkeyUsage = %s\n" "$exts" "keyCertSign, cRLSign")
+ for eku in "$@"
+ do
+ exts=$(printf "%s\nextendedKeyUsage = %s\n" "$exts" "$eku")
+ done
+ csr=$(req "$key" "CN = $cn") || return 1
+ echo "$csr" |
+ cert "$cert" "$exts" -CA "${cacert}.pem" -CAkey "${cakey}.pem" \
+ -set_serial 2 -days "${DAYS}"
+}
+
+# Usage: $0 genpc keyname certname eekeyname eecertname pcext1 pcext2 ...
+#
+# Note: takes csr on stdin, so must be used with $0 req like this:
+#
+# $0 req keyname dn | $0 genpc keyname certname eekeyname eecertname pcext ...
+genpc() {
+ local key=$1; shift
+ local cert=$1; shift
+ local cakey=$1; shift
+ local ca=$1; shift
+
+ exts=$(printf "%s\n%s\n%s\n%s\n" \
+ "subjectKeyIdentifier = hash" \
+ "authorityKeyIdentifier = keyid, issuer:always" \
+ "basicConstraints = CA:false" \
+ "proxyCertInfo = critical, @pcexts";
+ echo "[pcexts]";
+ for x in "$@"; do echo $x; done)
+ cert "$cert" "$exts" -CA "${ca}.pem" -CAkey "${cakey}.pem" \
+ -set_serial 2 -days "${DAYS}"
+}
+
+# Usage: $0 geneealt keyname certname eekeyname eecertname alt1 alt2 ...
+#
+# Note: takes csr on stdin, so must be used with $0 req like this:
+#
+# $0 req keyname dn | $0 geneealt keyname certname eekeyname eecertname alt ...
+geneealt() {
+ local key=$1; shift
+ local cert=$1; shift
+ local cakey=$1; shift
+ local ca=$1; shift
+
+ exts=$(printf "%s\n%s\n%s\n%s\n" \
+ "subjectKeyIdentifier = hash" \
+ "authorityKeyIdentifier = keyid" \
+ "basicConstraints = CA:false" \
+ "subjectAltName = @alts";
+ echo "[alts]";
+ for x in "$@"; do echo $x; done)
+ cert "$cert" "$exts" -CA "${ca}.pem" -CAkey "${cakey}.pem" \
+ -set_serial 2 -days "${DAYS}"
+}
+
+genee() {
+ local OPTIND=1
+ local purpose=serverAuth
+
+ while getopts p: o
+ do
+ case $o in
+ p) purpose="$OPTARG";;
+ *) echo "Usage: $0 genee [-p EKU] cn keyname certname cakeyname cacertname" >&2
+ return 1;;
+ esac
+ done
+
+ shift $((OPTIND - 1))
+ local cn=$1; shift
+ local key=$1; shift
+ local cert=$1; shift
+ local cakey=$1; shift
+ local ca=$1; shift
+
+ exts=$(printf "%s\n%s\n%s\n%s\n%s\n[alts]\n%s\n" \
+ "subjectKeyIdentifier = hash" \
+ "authorityKeyIdentifier = keyid, issuer" \
+ "basicConstraints = CA:false" \
+ "extendedKeyUsage = $purpose" \
+ "subjectAltName = @alts" "DNS=${cn}")
+ csr=$(req "$key" "CN = $cn") || return 1
+ echo "$csr" |
+ cert "$cert" "$exts" -CA "${ca}.pem" -CAkey "${cakey}.pem" \
+ -set_serial 2 -days "${DAYS}" "$@"
+}
+
+geneenocsr() {
+ local OPTIND=1
+ local purpose=serverAuth
+
+ while getopts p: o
+ do
+ case $o in
+ p) purpose="$OPTARG";;
+ *) echo "Usage: $0 genee [-p EKU] cn certname cakeyname cacertname" >&2
+ return 1;;
+ esac
+ done
+
+ shift $((OPTIND - 1))
+ local cn=$1; shift
+ local cert=$1; shift
+ local cakey=$1; shift
+ local ca=$1; shift
+
+ exts=$(printf "%s\n%s\n%s\n%s\n%s\n[alts]\n%s\n" \
+ "subjectKeyIdentifier = hash" \
+ "authorityKeyIdentifier = keyid, issuer" \
+ "basicConstraints = CA:false" \
+ "extendedKeyUsage = $purpose" \
+ "subjectAltName = @alts" "DNS=${cn}")
+ cert "$cert" "$exts" -CA "${ca}.pem" -CAkey "${cakey}.pem" \
+ -set_serial 2 -days "${DAYS}" "$@"
+}
+
+genss() {
+ local cn=$1; shift
+ local key=$1; shift
+ local cert=$1; shift
+
+ exts=$(printf "%s\n%s\n%s\n%s\n%s\n[alts]\n%s\n" \
+ "subjectKeyIdentifier = hash" \
+ "authorityKeyIdentifier = keyid, issuer" \
+ "basicConstraints = CA:false" \
+ "extendedKeyUsage = serverAuth" \
+ "subjectAltName = @alts" "DNS=${cn}")
+ csr=$(req "$key" "CN = $cn") || return 1
+ echo "$csr" |
+ cert "$cert" "$exts" -signkey "${key}.pem" \
+ -set_serial 1 -days "${DAYS}" "$@"
+}
+
+gennocn() {
+ local key=$1; shift
+ local cert=$1; shift
+
+ csr=$(req_nocn "$key") || return 1
+ echo "$csr" |
+ cert "$cert" "" -signkey "${key}.pem" -set_serial 1 -days -1 "$@"
+}
+
+"$@"
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/nca+anyEKU.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/nca+anyEKU.pem
new file mode 100644
index 000000000..b97a4559f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/nca+anyEKU.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDDTCCAfWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNxMG8wHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAkGA1UdEwQCMAAwEwYDVR0l
+BAwwCgYIKwYBBQUHAwEwDQYDVR0RBAYwBIICQ0EwDQYJKoZIhvcNAQELBQADggEB
+AL/aEy4Nk2W2UQNi/0h9MLkiq4J5IkjUocJp4grPUsdUJKu68GFYgWnJSBZjKMhs
+X390IUWrRJ8C7SJtyGOhbh2E6Zn7TveI77Mnw2CZpGhy+xieqTFmaIIWJgZVzaTT
+3hMhnXImn06k8eJiJiQQAHKr9XKDK9HIiESyBpujIW5hI7wrklkn0asl6DwiXcUw
+AuXqNffWpomWI4ZZceOJkr5dSFM9HyksQi4uzj0qYTDyDHJ6BLuGYWbUoB64pnKF
+wCn0cPOmbo866l0XqzJlxQYPvwOicAptX8jTjSpYsx5SLripS4KwyfxbGy5If8mT
+X4st+BN48+n9wHuDQJ97sBswDDAKBggrBgEFBQcDAQ==
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/nca+serverAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/nca+serverAuth.pem
new file mode 100644
index 000000000..b97a4559f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/nca+serverAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDDTCCAfWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNxMG8wHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAkGA1UdEwQCMAAwEwYDVR0l
+BAwwCgYIKwYBBQUHAwEwDQYDVR0RBAYwBIICQ0EwDQYJKoZIhvcNAQELBQADggEB
+AL/aEy4Nk2W2UQNi/0h9MLkiq4J5IkjUocJp4grPUsdUJKu68GFYgWnJSBZjKMhs
+X390IUWrRJ8C7SJtyGOhbh2E6Zn7TveI77Mnw2CZpGhy+xieqTFmaIIWJgZVzaTT
+3hMhnXImn06k8eJiJiQQAHKr9XKDK9HIiESyBpujIW5hI7wrklkn0asl6DwiXcUw
+AuXqNffWpomWI4ZZceOJkr5dSFM9HyksQi4uzj0qYTDyDHJ6BLuGYWbUoB64pnKF
+wCn0cPOmbo866l0XqzJlxQYPvwOicAptX8jTjSpYsx5SLripS4KwyfxbGy5If8mT
+X4st+BN48+n9wHuDQJ97sBswDDAKBggrBgEFBQcDAQ==
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca-cert.pem
new file mode 100644
index 000000000..a79bba6f5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca-cert.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDeTCCAmGgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDcwMTExMzQwMloYDzIxMTYwNzAyMTEzNDAyWjAVMRMwEQYDVQQD
+DApUZXN0IE5DIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmuWS
+Ozk+X7+BorU9o4nDc9jhk+Qajzav6yRFpJFlnxL5I4Az3wQiHFwyDWkR58FKYFLx
+adAahUYRIJioBwUhKEiMyJcT/Lr+lxioQog268nCUosqr5r3iaAQkXj9j49HXIdo
+qD+hbMH/82IqYP7vpJl8yvjRCZQ69KJZOQN4F4rHtUxJYLLmmbeIF02uNNib5hiH
+m3sdn1ic2Cxk1h1mHQqa5fPfKz2NSANKRYVQcOYiFSwroNFbgKo7++N59NGgYY0a
+n5uz+MZh/10+PsRF7WFsxt0TdExv++mN1fFRkBB4fD7fFp+52Qef27lv37X2JT5U
+C2gpXXUWQC8jJIijPwIDAQABo4HUMIHRMB0GA1UdDgQWBBRh7exLM2xCRHrP9Slp
+oxYhlykaqDAfBgNVHSMEGDAWgBSO9SWvHptrhD18gJrJU5xNcvejUjAPBgNVHRMB
+Af8EBTADAQH/MH4GA1UdHgR3MHWgOzAOggx3d3cuZ29vZC5vcmcwC4IJLmdvb2Qu
+Y29tMA+BDWdvb2RAZ29vZC5vcmcwC4EJQGdvb2QuY29toTYwDYILd3d3LmJhZC5v
+cmcwCoIILmJhZC5jb20wDYELYmFkQGJhZC5vcmcwCoEIQGJhZC5jb20wDQYJKoZI
+hvcNAQELBQADggEBAEFkGH/0mh93mMCWZ1QZOhlK48arnco0wjC5sYcVX5X/PoO1
+2DmHFiyHmHablH4d8uWUt9A63Akt0ogIPL4R0I3nOkUU38A1geXruSJDlDVsH75/
+MT7RVRTqJriVwqX6YlAVj2i0De20BLgyZiN3WaR+nngVC7JjdY+n1qskGByEWrin
+pwDVdFtWBTPDq1Nh9sm3FewrfOws7KQvjf0Pj88PIrNEDZm9SR512eH7EFPMvHJv
+7usU33GL34VRZAYtspQ5EwZbspHXe1FFwdhZLr71gChGeNpDfpqVDQQxhDNor7uQ
+z8L+Xuh7FvhjFgCp1Mnd6VN1q2Pwt5sG8Z3i29Q=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca-key.pem
new file mode 100644
index 000000000..d08554154
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCa5ZI7OT5fv4Gi
+tT2jicNz2OGT5BqPNq/rJEWkkWWfEvkjgDPfBCIcXDINaRHnwUpgUvFp0BqFRhEg
+mKgHBSEoSIzIlxP8uv6XGKhCiDbrycJSiyqvmveJoBCReP2Pj0dch2ioP6Fswf/z
+Yipg/u+kmXzK+NEJlDr0olk5A3gXise1TElgsuaZt4gXTa402JvmGIebex2fWJzY
+LGTWHWYdCprl898rPY1IA0pFhVBw5iIVLCug0VuAqjv743n00aBhjRqfm7P4xmH/
+XT4+xEXtYWzG3RN0TG/76Y3V8VGQEHh8Pt8Wn7nZB5/buW/ftfYlPlQLaClddRZA
+LyMkiKM/AgMBAAECggEAfZqBDKMrkArDvUPIes9gfZU1vm3ul4kZ98wO6Ra519dT
+zVTNOx+n5WVhdPxpd4uGmztG5a3Jg57AjrUbM64WKAtElffkTkD352AoOOMp3eNa
+PwL4lzNLXP890CjTO9FMZZyr4hrO9FkQCrTkdojjnI6V4iUHpQPdFrh7Lz8/553v
+sfbXW0o6jRtnN8jslLs7LQY+n0QQeLuvwrJGJRdQSfubtjTOYzlE/WZJmitJMi2X
+0qnoVK5B91bo3NcdFxstSgv36RL5Txsas8PfXWrFzPxqgjPjlpw1xMrF5bT3rK72
+oPB+/HunqIJc0OHHs2mi38Jea0yBCaJHzniAp2INcQKBgQDLjP5STKvu+SSZGpBp
+T3m+i6hbmo1HzYZBSi9jJiyGB8G50G5rbGJ0c/BgjfkhfRhmJ5Ym4NVVgxQgrMHe
+pFP5L4yDtspFwbRWuuYHoWFupUbqnZfksDHB5xQHFbJPFKBQOKBgM4crDG6PTnYO
+2M+fNlY7IL/QTlJxUHYH07CPGQKBgQDCzytixBLPB/mmIZNhwyK8pyecu6tCEpBi
+QiG/gcaLejXMwGieTiZQ/5sCG+oQWywFXqbPsgQ/gAlXsZ0yZ5GW7TTtsOGksnmt
+W1+bxQQ3Pv99wpg/G71SLdK0em5lAodCT6gccqjbKRj23sRnmL+M2GeEGI5hsNyC
+OFmyYisIFwKBgHLNk8cRLUu8QzMC834h8BVTKWJ4+cQMm/MJB08Rgb0adN37O7vk
+xmbN2T5r9J45suAy5ZIJ7uiq5FhFd5a98gqyEbtcBhtv0+mywfh9wbkpCKVcuwWl
+hnrJfNc+GnJVvNFiDroTdeIGwfiblSRsjjVK7TmuD+FJu1/jtJ5Xe9ZJAoGASHwP
+N5ufJ/ter6r0jL6vsSQ8//twOJBxuq3CouAlwQYC+KFrC+QmK6M/yOQcDmPuGD1k
+sgkZvYrlbwS+ad/Rcyfltr9G5iImVhOWmn4PGINPSzrZrTmkEuzL5q1bYCg1rb23
+3oXnQEylZk3zJFzYgQ6QTb1ZVQ4arjVLYq1WN5cCgYEAxRBqa8ZfwlS5D6bBNgn3
+DDCwz2kZNXG5U3wIw905NNrpUC55W33qcKe9UzoRZEOzuUjq3EL2maMrJULldLGy
+g+elvsZhz7cfmestY2cnbxExqwrTrLWfA8s9Hyl7i9tkfRze5WfhNGc3kwm1qrVG
+5zFZgtb/mTLnvQVIYCX9ks4=
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca1-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca1-cert.pem
new file mode 100644
index 000000000..1f7f52e7d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca1-cert.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDWTCCAkGgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDcwOTE0NDgxMVoYDzIxMTYwNzEwMTQ0ODExWjAXMRUwEwYDVQQD
+DAxUZXN0IE5DIENBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDC
+XjL5JEImsGFW5whlXCfDTeqjZAVb+rSXAhZQ25bP9YvhsbmPVYe8A61zwGStl2rF
+mChzN9/+LA40/lh0mjCV82mfNp1XLRPhE9sPGXwfLgJGCy/d6pp/8yGuFmkWPus9
+bhxlOk7ADw4e3R3kVdwn9I3O3mIrI+I45ywZpzrbs/NGFiqhRxXbZTAKyI4INxgB
+VZfkoxqesnjD1j36fq7qEVas6gVm27YA9b+31ofFLM7WN811LQELwTdWiF0/xXiO
+XawU1QnkrNPxCSPWyeaM4tN50ZPRQA/ArV4I7szKhKskRzGwFgdaxorYn8c+2gTq
+fedLPvNw1WPryAumidqTAgMBAAGjgbIwga8wHQYDVR0OBBYEFAjRm/nm1WRwoPFr
+Gp7tUtrd9VBDMB8GA1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMA8GA1Ud
+EwEB/wQFMAMBAf8wXAYDVR0eBFUwU6BRMA6CDHd3dy5nb29kLm9yZzAKgghnb29k
+LmNvbTAPgQ1nb29kQGdvb2Qub3JnMAqBCGdvb2QuY29tMAqHCH8AAAH/////MAqH
+CMCoAAD//wAAMA0GCSqGSIb3DQEBCwUAA4IBAQDRpRo9txGcsPsfBInz2ctvl37p
+a7DcrFTSLltADj+7/80OwYBtdmxiU9OfuETxdq5XbkghlmBGrDswtGHhcoDnSugm
+2n3Ov0YOQHYgStGYEsmXahjZ49Xlh8gzt9NBfzJIm6blBpJo845Z0cbzd1LdCgt/
+ck83nGnLvhIEZ3nFrT2K9vWQ3UkrFMfR3gCZpu/2X3+5UgK9IpGU+crDcGUcpdoz
+YaJka2w7rjw0mvQX8JtVBRt4xGRRAXXL2YA421nIzX7tKLHngYp6V9zu7QE2G5zS
+RewAXU3TERFQi4bF+N9mmwj8z9CYClRH56uFboGGBEGSulsbF5C4DB0p7dbl
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca1-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca1-key.pem
new file mode 100644
index 000000000..eef6b14b9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca1-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDCXjL5JEImsGFW
+5whlXCfDTeqjZAVb+rSXAhZQ25bP9YvhsbmPVYe8A61zwGStl2rFmChzN9/+LA40
+/lh0mjCV82mfNp1XLRPhE9sPGXwfLgJGCy/d6pp/8yGuFmkWPus9bhxlOk7ADw4e
+3R3kVdwn9I3O3mIrI+I45ywZpzrbs/NGFiqhRxXbZTAKyI4INxgBVZfkoxqesnjD
+1j36fq7qEVas6gVm27YA9b+31ofFLM7WN811LQELwTdWiF0/xXiOXawU1QnkrNPx
+CSPWyeaM4tN50ZPRQA/ArV4I7szKhKskRzGwFgdaxorYn8c+2gTqfedLPvNw1WPr
+yAumidqTAgMBAAECggEAcIZCclQYa/eO0tW72ZppdrsEDQWZyK8yn33Y14TZIZnh
+Go9egumcRC/I2gtW/dx8NtqpCFMfvTFaJDnfkdm2KQmba04d9tsk+BgbqPkzD4X+
+UPinBI2OVma2Z+eXfQZ9/7lgfQYtkyjkHuAaLxe59fOxqUK7iIgkrpa+xDc5bvkR
+v3e/ipJ1lrLn7aaQUR87wIkG9hs5UpRHiTd8PgaVavX8SdeXsOChv89owIKya2d3
+HCZiFVPwHrn7FVmDD41sllC78r+qvsyRs1j9aU5hGk8XlslxrYehphCCUHTUWRfM
+Mc6iSzuJyHFj1faOSs64eab5FLWp612S709vcfhSqQKBgQD7ycj2VhoPII6sko+k
+iUS0hzX7qC17cP4RmqGKbyffNW0L5B5+XmqBrw13duSv7O388F9P0+ctxbLgg6ML
+2r0PxkNTNISJim+vWbwMAFevJ9mzsOMRaPZKqx1MghWJzjR2LdPD5x9nHrYi7uUC
+NJe6R6pjtPCSU4yMLgu0IOEm7wKBgQDFnocCLCNiHwaJZ0v1wgSpQmYcE6MOKp+1
+SqOAsWwRtEgMQFoAEC3gGotm0BYF0fwSbM8XFFWqO2NITSV7b8/RkADocvvHWfQN
+d/ETJy3iL1UZgr012jwa91VuhL4XbqON+CAZSgwmVnOhTaXg1imuorHrwR6f1JzT
+F9EQhiqmnQKBgCmsYS2cXJ3KVrLrYwjpi0yR4HZxhG2c6wBA5qHB+ghwkEbaj818
+lQY30fPG4tzXSyCFLFFLEkU6JnwQbYkFwCr/Np9r3s/g8NFF+eDGobykzNx3121H
+QRRks+m40hXH4lj5Bsay1zi7FYw8m/y8daxoNiRgizy8xVNiP5+lnX5TAoGAQ4bJ
+50ohxROI7kanxBBJ+3Q+4/Up0FtsO0yH1h/KJ7qMq/MJTeA5bMxlOfp8q/x2v+0C
+ToaaRxMH99q0phsszhUA2mz/77yjEj8b10mZ+iHmWFM+SDqMM0K0pJEjS2p45LgW
+b83HnQoJdOLNfahwkcXyOfbBeifydoc63wSZalkCgYEA2gNC+Fvtzv/Zm6yj6M2j
+RdU2Ncbi3fAKCiOhTcsXSWi0H7IYi/r8Su48946X7GTLgZIFM4HlGbQaStX5MUbJ
+BjtOyYaUGjzH/7KKiuyuoLVuWWi4llV+Xigc+WSqO5X/DUmjXA9ldbB5/vcDiHk0
+QZ/pla7vZ4cbNPFd2cFHk84=
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca2-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca2-cert.pem
new file mode 100644
index 000000000..2b649a20a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca2-cert.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDSDCCAjCgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDcwOTE0NDgxMVoYDzIxMTYwNzEwMTQ0ODExWjAXMRUwEwYDVQQD
+DAxUZXN0IE5DIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8
+Dg3FeyXgtP6MAYaLRCH1peDogKo0OI5dqERirJDymgg0eqUkGPD86n/ZRDFZMhqM
+2LATVNS9UHybb/8aBZaSNmCVGcQuhGFFI1STjtu34n8z7+XFE66I2cFUo20kUdTl
+OeUAj7Wd+a2paAtPW3G2mX6EIzm/6/3HMh/y1d0knCBRjialOCdhrRTvGcamYBqw
+PJd8X8nMtM320ZNDF5wBvx09/5KY1jLhdzBVbzezFogX0Bj1LX9UZRu+xN2dHAUn
+CuYevJJwkfiHeg0EZxr/p4AZ7GICWkpk+bRzQ16+IifXtc5qIns0VvWKtffsDExV
+mlM6af1eIjgLhKGAd9cZAgMBAAGjgaEwgZ4wHQYDVR0OBBYEFLoDn50GJKRX5nP6
+9ToJ+bqFzKn6MB8GA1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMA8GA1Ud
+EwEB/wQFMAMBAf8wSwYDVR0eBEQwQqFAMA2CC3d3dy5iYWQub3JnMAmCB2JhZC5j
+b20wDYELYmFkQGJhZC5vcmcwCYEHYmFkLmNvbTAKhwgKAAAA/wAAADANBgkqhkiG
+9w0BAQsFAAOCAQEAlqqhiquvukmLApryy5ztoy3bGtF6S6k/MGAZAf1ndxpdhHNX
+vQmjSrFL2IPENwTrPd5T1Muf5C+ZfX/NOf6QWoF3kbD/98K1vfEa6C+3fgsflUQu
+1Tu20ItN2C7VkMawOhItxBXU9nLcIULUJye0dRC+xvh1ECHiLBh45y/fG0bdZGpd
+/NajC+1FwBGI2k62mbW8KGpNDKeJWwcDe4SsMs70Y3JybCj5PNO63JF6db9yZGF3
+2esHfYJ1NQTA9oRsOztlf+PQADQx/HoCJ/BhJSuOcBL/r9uN+YQUtBzG8BKGODE3
+aOrnkbDctDI3zZXUADTidBVxO5HzizGlRGodSQ==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca2-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca2-key.pem
new file mode 100644
index 000000000..03eae6df4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca2-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC8Dg3FeyXgtP6M
+AYaLRCH1peDogKo0OI5dqERirJDymgg0eqUkGPD86n/ZRDFZMhqM2LATVNS9UHyb
+b/8aBZaSNmCVGcQuhGFFI1STjtu34n8z7+XFE66I2cFUo20kUdTlOeUAj7Wd+a2p
+aAtPW3G2mX6EIzm/6/3HMh/y1d0knCBRjialOCdhrRTvGcamYBqwPJd8X8nMtM32
+0ZNDF5wBvx09/5KY1jLhdzBVbzezFogX0Bj1LX9UZRu+xN2dHAUnCuYevJJwkfiH
+eg0EZxr/p4AZ7GICWkpk+bRzQ16+IifXtc5qIns0VvWKtffsDExVmlM6af1eIjgL
+hKGAd9cZAgMBAAECggEAT1t+5D87lL/MSzi5ljuCOS9u4a6qJK9ZJJzFfv5jjH0D
+yWGYHsuHprMukHj+ei1yls06QG4j+F/mtZFljY2eJMVdrI3bA+ZJRevK3RoEDm0+
+UKSDyc6scIOz2gu9Gv6NYM41nS8H7UpXxo1peGuWaQANK6XR0PO9fDni0Y7+a1vc
+mTbiI5m2mKcYRgLmDBXzTGANszBdgGK9UxHL+Jx+j04ZdcMSg3b/OE1RAZr9zS86
+2CiZgcEVdddXjQ0HufkeG7gozyX7Y4JulLuqLZiROyHiIv+8kXLyLi7MUBFuizKP
+GdmJxGhYfbYVLU5KXsLjf/oakYroatxabonn4HnpoQKBgQD3zhL2dEuyhPwxpGHu
+53hpZmNSbLj7pT441t4WwraoV8SyOb195yeX77IVT1FSctmYi2txXdfe1MAseKcf
+8P7XuWchEnro5dE7sTcZ4M3uLMDsEFPkWyRz3Y+CIg6IjMz0JsByyVVa8f4Kjw9G
+99ceZPd+M16YNwYgj/1GB9HOBwKBgQDCRiIlWz8BPnY6xltQPSC4AXffD4V5pzOo
+/b82y6+aeCvzwZGcXz9ac3fbRkiOKdPa0b+mYm/ZTpO0XIMALkpsQRN5Jnt5UeaP
+J3n7IAS13Gy2gDXuRrllXbbRZI4VPiI7gADzYYpu68sBnJwH2FC0w2l96Gj6woCI
+POoClgfp3wKBgQCMLqWHig5wdM59/rHwBj2V0ngJXrvej4H9gX+tfIT8AnqhIAzU
+Nnmtd8lUSMSGUbZKl0Q2o5HE2rHD9pUEer6PprBygxPIwIl2rS+wkf2s6OBSKoJq
+wiyC5ymRwlZaZNxkma9wv/hrNE40Bu3rhbTJ2vAvEjxG+4mZzhrHDRFg7QKBgGCK
+6b0WsyCzIZ3jpM0jE3ddg2xeEj56ULnSH4vjfMiOn4jq0Kmcy6bvasiVDMlZD+bW
+BR9yG5Mp8UzYDGGyn1lcnYi/Du0jPig1vfCF4NFfUMcAv8xBaTBuecNk7RaxYeGf
+otlPx7OHicKrSP69CJ5L3cisDj9PGQCbBM90L0qRAoGAcXUoDdI+EYBBqxIOXvvl
+ZuSOyNPZHwcPw+918uSpuh1xSn/qGD6EdlsBRIxBGk1ztQDNfhOmpFiPSeCmFzhS
++IEy2NMVWRoJTaVwN2UzpKfyDRIzs6DWTs8fJARNDWO+lp04skToFRPdY5L6RJhP
+dl0yHofPTNUz2lLmMOhTOw4=
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca3-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca3-cert.pem
new file mode 100644
index 000000000..207c7a7dd
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca3-cert.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDQzCCAiugAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0
+IE5DIENBIDEwIBcNMTYwNzA5MTQ0ODExWhgPMjExNjA3MTAxNDQ4MTFaMBkxFzAV
+BgNVBAMMDlRlc3QgTkMgc3ViIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAu6gOQAcNel3NCbWCctR4Y4BqRNPbo6W3HpFyY+204kGimdNZvE2zkpfs
+HR6PB7AHUvq+44+NN/l1J//JkT/9rFVoGDbb/L354US/iBJ3zjBSqeeXvofSmsvf
+6+x6g9W7bFLETJ0mH+vjPQ2f3dS4O4Lc7W3HsldR/WUkesQb3+FsxBph6/84vylM
+oSsScd/2HFD7lrt+Fk1DGqkMI10tl6PozREAxSJgSFLUtr2P15a7wyi4m5LBM4+L
+YKMr/vuj7wFtH2BEwh2iRbJ2wYxxjKV42Hg+6l5XlahVr2rTpK6aP9R8spg+Og/P
+A+d2shD3+q6OkglEyq9rRGa2mRZrwwIDAQABo4GVMIGSMB0GA1UdDgQWBBTwU4mH
+3VYZwBnmIFVvC/wUFdejsjAfBgNVHSMEGDAWgBQI0Zv55tVkcKDxaxqe7VLa3fVQ
+QzAPBgNVHRMBAf8EBTADAQH/MD8GA1UdHgQ4MDagHzAOggx3d3cuZ29vZC5uZXQw
+DYILb2suZ29vZC5jb22hEzARgg9iYWQub2suZ29vZC5jb20wDQYJKoZIhvcNAQEL
+BQADggEBAMIXGpXdI4jpDzPkqJIoDtAC4KQlC8fm8nW/fEgfHiOZgGHsCkjcvpFU
+4yQ/ito9qlV4d4SoWLQijc5eJmTvWQKvHfZNCM9nKWQCY/QDMMePT2UO8RLHjkI3
+V2ARfrFv9NEQ8gd7u0dvsGivacE0vlIS480saVVnda54gOHh5RVe1/mr3EUqnQJr
+RTothfmTcCH104SUBUB92gD9Cgh3NpvRS/sZI1pv3diUyw1QF9qszWfk1NPDan4g
+hX6VBeHQ4n6PbZLhdbUawE1tVyoN7Q7siz/ybNH0Uj68k87q+HOIx99Qtihw6xoj
+UhL2ht4Pmyhy3ACeEI2BTZESEzG/WBI=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca3-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca3-key.pem
new file mode 100644
index 000000000..3277dd245
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/ncca3-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC7qA5ABw16Xc0J
+tYJy1HhjgGpE09ujpbcekXJj7bTiQaKZ01m8TbOSl+wdHo8HsAdS+r7jj403+XUn
+/8mRP/2sVWgYNtv8vfnhRL+IEnfOMFKp55e+h9Kay9/r7HqD1btsUsRMnSYf6+M9
+DZ/d1Lg7gtztbceyV1H9ZSR6xBvf4WzEGmHr/zi/KUyhKxJx3/YcUPuWu34WTUMa
+qQwjXS2Xo+jNEQDFImBIUtS2vY/XlrvDKLibksEzj4tgoyv++6PvAW0fYETCHaJF
+snbBjHGMpXjYeD7qXleVqFWvatOkrpo/1HyymD46D88D53ayEPf6ro6SCUTKr2tE
+ZraZFmvDAgMBAAECggEALp/Lopbd/2gs2FuzpIoruzUdsiodKSS0QbELhc56obiD
+CMsdQY7grex3Kqj8CoHu3+wS34E8Kgsd06lW0HLguR+jNFj1AW/GFPU6zTkhcSZK
+c5Jp/lnKttEuunRP4E+LOJe70/k7jrTSCcpHzRrcB1U1RPyAoEvXwCiQDryI3G+9
+jDw1vUvQTlb3u/0j798N8a13ahi2cepauOrxS/Si0fHt9LxOnaRfVJWyQ5hmyh0j
+MFpAzpqGtI6hlq0HO0Kzu+zFIl9POcrMyAjPdfhIR7zC+pHsyOGXsRpRU0HKHQfC
+ukImc9wZ9xy2/lQVwWJnjksaZfM6qVG5IOkpIUskIQKBgQDtnhkkGo4BlGA/yCY+
+2Vt6dZOBEtJlqBVzL4Us0B5PLqE4L09r5pTil7pep8itM5u5Bn1zio839Q0iUDxc
+omfViJA/y/eJb0trLZXKen8QUcVkBvB4VL4vVPjULcKCpWPNcop2toJDJdDZuSvR
+DQUYvkd22MlBCg3YCVcDGPXisQKBgQDKLIB2sSwTph6XjBPnsC3br11ymSog5RAq
+zXpnBczre1CT7dLixbJP6ISbVJwlDrvFum33r3hEOUDE5BZo2aVyQoZ6tPTmIfkG
+C14xsnvyuGYBTWemd7dyt2rXbvZaq0a3U1IHxt/KQlj99DrSASyfKH0Hk44EZ3dS
+wsi7Vq4KswKBgAr7dKQDii6ugehQwtvCxgSZ7JBZo1nJc/xX5OrWT6BPQmpLXXta
+M+VpJ9b6ID9JFFhv4Vp2u/nVHJ9KYA/T/cKTxj78mVtDxpOUjsjF8pt5fAsMew7E
+s+mSHtIHr2bEaCF1usqT0t9xnv6BHXJTDLpBCSKIEH0uDse+XsQo4ixxAoGAVjgm
+TPf/8R0+HKkrb/pNhEvEUXQKaF7nxyk8EyWBH8fGNGAPOJDRG4zwyIGL2a3v3EJG
+VYPqiUXVXmJbQDnZeeHvEfOMIXzJg49ji1Qv0fJb5iBJnM+fV3frQ5bZzw8OKG6L
+JC/nDo2/AAag8yB3FCUjNRDzVuN9Grlg+6vaq0sCgYEAnpSh/EA1lxKpHFs8dh8l
+qtoKzBZzBFODMp8avJVYUYI3oVjm4CUXKbMdSNgQiFjfWKe6I0vzFxhIBOEI+5JR
+N29VMjeFxgXkD4qmz6qjCZr9tmJiiu3tMJfW13D94U5RKi5OFAzlPxtBLe+sx6nq
+NXMk2XIx1ndW+uWUjtU0EQc=
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/nroot+anyEKU.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/nroot+anyEKU.pem
new file mode 100644
index 000000000..395b8446a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/nroot+anyEKU.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDFzCCAf+gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo3YwdDAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwCQYDVR0TBAIwADAT
+BgNVHSUEDDAKBggrBgEFBQcDATASBgNVHREECzAJggdSb290IENBMA0GCSqGSIb3
+DQEBCwUAA4IBAQCJLiUshLaVQxjnoxN4MISOIM7vy9jIfCEabtyOumjVXasvLqKS
+fF0nLoRb/6iCd0VnJlliTKky/p8aaG4+VooQPTxwpat6zir4G1N2dWwYbMTDpVfh
+836wHNPmmFvCUSKZcoLAEmMVRrNU9gBXkS64FfoP0FCoWeHb9NSlQY5YFb0BO8C/
+6AZlMGCt1HDPEK+gE/Uwayk7Yo3npSb+ZgnwZpA0ip0lPJ0Uf5cZ5Q/RBP0H+nxi
+KLKzBpY01IJ67/7R1Ioc27JiUpBGmKQzjg48POSMOECFolv0dH33O6aXJaXtw9Kq
+m8y3rPQqNPehWzbRq75txC/sayQZXNUrteVzMAgwBgYEVR0lAA==
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/nroot+serverAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/nroot+serverAuth.pem
new file mode 100644
index 000000000..7b84f262c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/nroot+serverAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDFzCCAf+gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo3YwdDAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwCQYDVR0TBAIwADAT
+BgNVHSUEDDAKBggrBgEFBQcDATASBgNVHREECzAJggdSb290IENBMA0GCSqGSIb3
+DQEBCwUAA4IBAQCJLiUshLaVQxjnoxN4MISOIM7vy9jIfCEabtyOumjVXasvLqKS
+fF0nLoRb/6iCd0VnJlliTKky/p8aaG4+VooQPTxwpat6zir4G1N2dWwYbMTDpVfh
+836wHNPmmFvCUSKZcoLAEmMVRrNU9gBXkS64FfoP0FCoWeHb9NSlQY5YFb0BO8C/
+6AZlMGCt1HDPEK+gE/Uwayk7Yo3npSb+ZgnwZpA0ip0lPJ0Uf5cZ5Q/RBP0H+nxi
+KLKzBpY01IJ67/7R1Ioc27JiUpBGmKQzjg48POSMOECFolv0dH33O6aXJaXtw9Kq
+m8y3rPQqNPehWzbRq75txC/sayQZXNUrteVzMAwwCgYIKwYBBQUHAwE=
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p256-server-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p256-server-cert.pem
new file mode 100644
index 000000000..f144e11dc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p256-server-cert.pem
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIByjCCAU+gAwIBAgIBAjAKBggqhkjOPQQDAjAbMRkwFwYDVQQDDBBFQ0RTQSBQ
+LTM4NCByb290MCAXDTE3MDIxODE4NTA1NloYDzIxMTcwMjE5MTg1MDU2WjAcMRow
+GAYDVQQDDBFQLTI1NiBTZXJ2ZXIgQ2VydDBZMBMGByqGSM49AgEGCCqGSM49AwEH
+A0IABBQtneXPCnPgmqOCJdOnixLtRxYCYJoKLMTKpVRHg1toZa5hst1EmlfcIJ2q
+0mwDj2N7MZxHCQKrY7h2ussdSuujgYAwfjAdBgNVHQ4EFgQUXkNyi959A0GuCidm
+beH0E4OStLYwHwYDVR0jBBgwFoAUJtCPHXtf3B5/QYB9Y8ocdYHWhWkwCQYDVR0T
+BAIwADATBgNVHSUEDDAKBggrBgEFBQcDATAcBgNVHREEFTATghFQLTI1NiBTZXJ2
+ZXIgQ2VydDAKBggqhkjOPQQDAgNpADBmAjEA5Bli9loRg3x9jCo/Xyu6pxN9xmaA
+GzGrJ+sVfAoKCDPjfvXR3VA+auFR7c65R3lvAjEAuNC6+SIYdp0kOXB9W0s5RcMl
+e9e1+PVLCMU9PG1+lfy8cJV4iDymomx/+jX2f0R0
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p256-server-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p256-server-key.pem
new file mode 100644
index 000000000..b2ebd6957
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p256-server-key.pem
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgJ51ke8aiotgRnxNb
+le4OYpOA/E5Cuj0+yU8lbeg0GgOhRANCAAQULZ3lzwpz4JqjgiXTp4sS7UcWAmCa
+CizEyqVUR4NbaGWuYbLdRJpX3CCdqtJsA49jezGcRwkCq2O4drrLHUrr
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p384-root-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p384-root-key.pem
new file mode 100644
index 000000000..6556c56e1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p384-root-key.pem
@@ -0,0 +1,6 @@
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDAp+VkMpwM7uCJWk+fo
+bSxLtiF2nd/4YDJy2IjO+IjzoEDGJB4Ekr1AGxYmiS57IVWhZANiAAS/4vfY5YBd
+dvcJs81VXvm3gqwIvzycNtT48ZQ9bqGJBERMAXkmOgzPVz4cSIr33KfIKGhfgjVK
+xSAorUKfc0cWf0dZZh3UxpXeN1x3dxtK3hED1y8pemwuz3tYuuOBbtw=
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p384-root.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p384-root.pem
new file mode 100644
index 000000000..df5057f94
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p384-root.pem
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIBtzCCAT2gAwIBAgIBATAKBggqhkjOPQQDAjAbMRkwFwYDVQQDDBBFQ0RTQSBQ
+LTM4NCByb290MCAXDTE3MDIxODEzNDUzN1oYDzIxMTcwMjE5MTM0NTM3WjAbMRkw
+FwYDVQQDDBBFQ0RTQSBQLTM4NCByb290MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE
+v+L32OWAXXb3CbPNVV75t4KsCL88nDbU+PGUPW6hiQRETAF5JjoMz1c+HEiK99yn
+yChoX4I1SsUgKK1Cn3NHFn9HWWYd1MaV3jdcd3cbSt4RA9cvKXpsLs97WLrjgW7c
+o1MwUTAdBgNVHQ4EFgQUJtCPHXtf3B5/QYB9Y8ocdYHWhWkwHwYDVR0jBBgwFoAU
+JtCPHXtf3B5/QYB9Y8ocdYHWhWkwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQD
+AgNoADBlAjEA9ZGtIjZhUPqqyjB2YdfXh7K+AUIXdxmtHmioVNbksIApEzbZ25rI
+o1WkqRowwbkNAjAw0TzgEv0q4MtQN0G5Lh/z0aVdaFICpXI6UhDXZyiZeRjt2Lbi
+3Da3rKRZdHHswY4=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p384-server-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p384-server-cert.pem
new file mode 100644
index 000000000..c6435122a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p384-server-cert.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB5jCCAWygAwIBAgIBAjAKBggqhkjOPQQDAjAbMRkwFwYDVQQDDBBFQ0RTQSBQ
+LTM4NCByb290MCAXDTE3MDIxODE4NDk1NFoYDzIxMTcwMjE5MTg0OTU0WjAcMRow
+GAYDVQQDDBFQLTM4NCBTZXJ2ZXIgQ2VydDB2MBAGByqGSM49AgEGBSuBBAAiA2IA
+BNgfdX1zL/wbUQekHkIYpI9KKBDH5oxUbjeHqc0EkEDOLHs7zb3f7UdsqaZ/4Ukn
+Wqm8Kmcz5TOYpvg7gn+jPmtVpI2BCfxqYD2WceePkllWENoJFtt/VwOPMGMymeUH
+3KOBgDB+MB0GA1UdDgQWBBSY+ffqAKeBpiQl4b6hjUOXuBbIljAfBgNVHSMEGDAW
+gBQm0I8de1/cHn9BgH1jyhx1gdaFaTAJBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMBwGA1UdEQQVMBOCEVAtMzg0IFNlcnZlciBDZXJ0MAoGCCqGSM49BAMC
+A2gAMGUCMQDD1uzmDMxAmkyokImzX4hW6f2Hxt/iZJhT6C15zCjYfoWcBdP/EiF5
+m2FMPUvxq+0CMAmKOndcfOwQ7OoaEUySx2q10iXgrkE42HsTvFER8FUN7repOUnD
+JhC9UKJW7I5A9w==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p384-server-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p384-server-key.pem
new file mode 100644
index 000000000..438e8f47f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/p384-server-key.pem
@@ -0,0 +1,6 @@
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDBg3D9RcSwjYqyeLmW+
+nw3mGtBTeNFH2heMO4uOl3EAzJAB8Q+1DjD9Prlrsc+JX7yhZANiAATYH3V9cy/8
+G1EHpB5CGKSPSigQx+aMVG43h6nNBJBAzix7O8293+1HbKmmf+FJJ1qpvCpnM+Uz
+mKb4O4J/oz5rVaSNgQn8amA9lnHnj5JZVhDaCRbbf1cDjzBjMpnlB9w=
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pathlen.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pathlen.pem
new file mode 100644
index 000000000..c0ef75e28
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pathlen.pem
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDjTCCAnWgAwIBAgIBGzANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJVUzEf
+MB0GA1UEChMWVGVzdCBDZXJ0aWZpY2F0ZXMgMjAxMTEVMBMGA1UEAxMMVHJ1c3Qg
+QW5jaG9yMB4XDTEwMDEwMTA4MzAwMFoXDTMwMTIzMTA4MzAwMFowTjELMAkGA1UE
+BhMCVVMxHzAdBgNVBAoTFlRlc3QgQ2VydGlmaWNhdGVzIDIwMTExHjAcBgNVBAMT
+FXBhdGhMZW5Db25zdHJhaW50NiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBAMhrG5ilLNK2JnW0V+GiT392lCKM4vUjPjAOxrg0mdIfK2AI1D9pgYUN
+h5jXFarP18NT65fkskd/NPPSbEePcEzi0ZjOBqnaUFS+tA425QiWkqdld/q+r4H/
+1ZF/f6Cz6CrguSUDNPT1a0cmv1t7dlLnae1UTP9HiVBLNCTfabBaTN95vzM3dyVR
+mcGYkT+ahiEgXDLYXuoWjqHjkz5Y8yd3+3TQ2IsyrmSN0NJCj4P/fC5sdpzFRDoB
+FYCXsCL0gXVUsvfzn/ds1BUqxcHw6O4UUadhBj+Khuleq0forX+77bxFhUnZkGo5
+iO+EZhvr6t32d7IG/MKfXt5nb25jypMCAwEAAaN/MH0wHwYDVR0jBBgwFoAU5H1f
+0VyVhggsBa6+dbZlp9ldqGYwHQYDVR0OBBYEFK+8ha7+TK7hjZcjiMilsWALuk7Y
+MA4GA1UdDwEB/wQEAwIBBjAXBgNVHSAEEDAOMAwGCmCGSAFlAwIBMAEwEgYDVR0T
+AQH/BAgwBgEB/wIBBjANBgkqhkiG9w0BAQsFAAOCAQEAMJCr70MBeik9uEqE4f27
+dR2O/kNaoqIOtzn+Y4PIzJGRspeGRjhkl4E+wafiPgHeyYCWIlO/R2E4BmI/ZNeD
+xQCHbIVzPDHeSI7DD6F9N/atZ/b3L3J4VnfU8gFdNq1wsGqf1hxHcvdpLXLTU0LX
+2j+th4jY/ogHv4kz3SHT7un1ktxQk2Rhb1u4PSBbQ6lI9oP4Jnda0jtakb1ZqhdZ
+8N/sJvsfEQuqxss/jp+j70dmIGH/bDJfxU1oG0xdyi1xP2qjqdrWHI/mEVlygfXi
+oxJ8JTfEcEHVsTffYR9fDUn0NylqCLdqFaDwLKqWl+C2inODNMpNusqleDAViw6B
+CA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc1-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc1-cert.pem
new file mode 100644
index 000000000..e0a373a73
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc1-cert.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDTDCCAjSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAZMRcwFQYDVQQDDA5zZXJ2
+ZXIuZXhhbXBsZTAgFw0xNjA2MTgxOTU0MzZaGA8yMTE2MDYxOTE5NTQzNlowKzEX
+MBUGA1UEAwwOc2VydmVyLmV4YW1wbGUxEDAOBgNVBAMMB3Byb3h5IDEwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCeF5hc7UW6KtJ/26YrZTeG5Pu7FrPd
+9W58Wq/xpll8sg2priHgomhwFG+EtBqxP/qfGQADwCBpynm+bxngsRX94+puCbdp
+DCRV19vZNfrrdH57PbUmujQfCAPuWnGye7TWbtilqkgJf88yfI+0Y2qmGWpvl3Pc
+ijZVbNxEan1FKkB5v1E25+UCDU4Y4nfyJ1jtqSA6RJeixCUE363iLanJL4Ph781u
+/GUhICeqj6oKdPzEmnzT9Udt8APpS2pfIjhfcw4w8A+pFXf0HsezGdcodiZqzs39
+mdmS8cmMk77xJ8BIOlT484Jg/bB9PfBfEB2LXO3jz/HyrRWQVHgyF2ONAgMBAAGj
+gYowgYcwHQYDVR0OBBYEFNOib4aG0AVcbb7pbh224iVD3Jx8MDUGA1UdIwQuMCyA
+FOeb4iqtimw6y3ZR5Y4HmCKX4XOioRGkDzANMQswCQYDVQQDDAJDQYIBAjAJBgNV
+HRMEAjAAMCQGCCsGAQUFBwEOAQH/BBUwEwIBATAOBggrBgEFBQcVAAQCQUIwDQYJ
+KoZIhvcNAQELBQADggEBAGCPfyKX74TwnX7sakAKq+IY5qbFnUAupiACsoqNyf2C
+J6/wsAHz51SA69UcOmQsLCtBzvr11Mh9tFG6uqAquMifP6Cx3274sHCglb5BYFQX
+eOwSc30FyaqUZzCWKHRjuzdBUUplS2NVl778xLEbWySLkpHehp7Hpj6mBT9lLNyw
+6L2ZXJcBmxCSB6+aKJ0v4h3wrTNkbYh1Pz9sQqKMgnK+dC5xNmQWWzaVnAPERmbT
+/11HRF2cGE6OKVmPrksI2NVOe0S0BmL2UwIeO1mIoQikJlOlCsa6QHS7KNQKGtrV
+0Z/z5ahapEq7+wlyrw+lsZf+rBKFzwbowl1K2YJva9Q=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc1-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc1-key.pem
new file mode 100644
index 000000000..d879dbc09
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc1-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCeF5hc7UW6KtJ/
+26YrZTeG5Pu7FrPd9W58Wq/xpll8sg2priHgomhwFG+EtBqxP/qfGQADwCBpynm+
+bxngsRX94+puCbdpDCRV19vZNfrrdH57PbUmujQfCAPuWnGye7TWbtilqkgJf88y
+fI+0Y2qmGWpvl3PcijZVbNxEan1FKkB5v1E25+UCDU4Y4nfyJ1jtqSA6RJeixCUE
+363iLanJL4Ph781u/GUhICeqj6oKdPzEmnzT9Udt8APpS2pfIjhfcw4w8A+pFXf0
+HsezGdcodiZqzs39mdmS8cmMk77xJ8BIOlT484Jg/bB9PfBfEB2LXO3jz/HyrRWQ
+VHgyF2ONAgMBAAECggEBAJtfoTUjVPYlBAD5RRU9QxdmkSlMpLYucsnw7x7WWPi+
+ncL4Cv+VXoNY8klAIUO3F3+puGP3PWP7xS8uTgaQxIZkq5A+KG4rqsJbhgyyistC
+ENTazuEi+/rLi+GELl42SoK9KluXQXlkjaSW2z10v+pC7GKEPTCw/blzZgAvkLKZ
+ykQgEEyKf/kNR4+exiJqdBi8gp0cB1+WwBYqYitNKahhf9sFjcLWhj8umYN/+Hb4
+6hH+8JMaHm0G3DvBUIGTkuUQVZB+BkOG7DRivgwNCFlUqvA100JGhoVnBoqj2pan
+eD7TtJfIW7UMoXFr0qCMMGvUXnhJb2v01oxpQTfBLEECgYEA0Ys2RjxUAQmh8j90
+jRV2dI/zL5t1NXxfSTn7JmLp2r2SEWfxiXwCs2bly6J8Xr07bY8DeM6+NfmQ7en1
+pdwxorIROhXRI2X6ZIdIfLwRw+l2TrQVzqgSnUI8GnU3gy57m1QLrcRW9Gxv7r1j
+DjlRMtf828C7oUd+2h0rXY6DeMUCgYEAwSQ20OJy9qDvT569cOMADgvZRKjU0ZLd
+2ER40WakK+6gyvSkUYpdSK5722xMo5CAFmE35xn5r/JX4QnIK3DGnJcm0e68GtyE
+qh5YGXqTlnvgl/+YxBjgrvL97OWKtvof/ZjGqF48sNB4trMz9+80M5oBsr7ZjoPQ
+1B1mFTi9nCkCgYBojLgQxSr4tZCq6MRDXHEU6XnhyAPsItj8FUTdOz8JF8rYim82
+NLy4PF/tgW3iazJKkK+fyC+ZiKKqQjCBh+LwFT6JJ7eInOoY3HLrYX7PrB2OWUYE
+LVHUSuboIJIJDtk3f/Cvy6XDIJOcn7vbrfd4kdGk5332k1CUjTdE38VzLQKBgQCl
+TbRoxVd1xDnuIEOtSWuzmeqDvCghkpyyy6/IMRwTybHu4sF8VHsQiN3S5/cUCsnF
+3cE112J/d2BFZ9TdcTFbtnZwOO7f4prc6wmmDOYiZrXMAeOi+lPbCHfR+IfnoV4d
+81MbqUQyZMrcO7Yf3qgD/iyz6mpTcngaA2tqgFywOQKBgFigb4O1tKsK16HwflMm
+6EQB/3TmdhIsoNEq6M6tOuV3uypze+97olwJMjsgIMxpIqnff55WLBmDjmoMZSoS
+6juHCqmKWKwTZPHPdWNVUgMOGVHFjcCgQjuqWYWupl6un/CefXPleImZ/wrXee5w
+f2DAK68puLIhIySfEIjrYh4P
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc2-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc2-cert.pem
new file mode 100644
index 000000000..2913b9859
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc2-cert.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAmSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADArMRcwFQYDVQQDDA5zZXJ2
+ZXIuZXhhbXBsZTEQMA4GA1UEAwwHcHJveHkgMTAgFw0xNjA2MTgxOTU0NDFaGA8y
+MTE2MDYxOTE5NTQ0MVowPTEXMBUGA1UEAwwOc2VydmVyLmV4YW1wbGUxEDAOBgNV
+BAMMB3Byb3h5IDExEDAOBgNVBAMMB3Byb3h5IDIwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQDgpvzv40QOQxRy6qhowyMfSRwn8TSUX/tt9U92ij/HDurM
+aT+89lLd6oOCohmXomg4t18Fik3yUyoKOi2Jo/ATV5ZYvhKOQzf4d7zTno3SsTSB
+s1i9aNVnwVd9QZA/Y1lHtEUETIr94neET6bvaV9DHrtmVaEC6rXxbLmm6dLEcqEh
++XnjoAi6PL/+U+RSQm6ekLEWwhwePUCr2QvGotjpUzDJngHCtxrVj6ZK8DPlgXpo
+2CWC2l6uwlakxkMQkCQQICywMKsmyMVPWFbalUezRDl7S/J9ybZYK61aq8mrBYzn
+tCaD3HwtjKmkAZ3tKcDfPidqwVtUAioBSzB6ztc/AgMBAAGjgZYwgZMwHQYDVR0O
+BBYEFPg3PONgEnnZVF3tRrg4aY4hBGVhMEEGA1UdIwQ6MDiAFNOib4aG0AVcbb7p
+bh224iVD3Jx8oR2kGzAZMRcwFQYDVQQDDA5zZXJ2ZXIuZXhhbXBsZYIBAjAJBgNV
+HRMEAjAAMCQGCCsGAQUFBwEOAQH/BBUwEwIBADAOBggrBgEFBQcVAAQCQUIwDQYJ
+KoZIhvcNAQELBQADggEBAJvmPj0eIOQEZSFrvbMEz5dp0udK+TIMKBmgPfCVrSPu
+g5wArKY5CqFzrrvXb8FWHuAuP9KsXaqU+oqaTrRlGDs0sl6LWkvamz9FLDbYS2+d
+9cGMdlEmWxPJg9Nkc557ng4b54xncyw+YQ/1vqkTtBX7w5Y4lFTOaZW3uq3iL1NU
+v1TO5fCNksndgw7tdilbps2BLeNcEJ7DZyS7ESPPe7NX78RCKsDLSj7C9bMlKvUc
+swUADTDhNTValfr2RQswlEPIt5qURe2vsvacQ701cPPwT+fgQj1N/XLFsBGTmnOP
+KpT6Adh+uk8xTHv2BUg+XDRAFOhoLMu1hnloiH14FgY=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc2-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc2-key.pem
new file mode 100644
index 000000000..77ab6ff94
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc2-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDgpvzv40QOQxRy
+6qhowyMfSRwn8TSUX/tt9U92ij/HDurMaT+89lLd6oOCohmXomg4t18Fik3yUyoK
+Oi2Jo/ATV5ZYvhKOQzf4d7zTno3SsTSBs1i9aNVnwVd9QZA/Y1lHtEUETIr94neE
+T6bvaV9DHrtmVaEC6rXxbLmm6dLEcqEh+XnjoAi6PL/+U+RSQm6ekLEWwhwePUCr
+2QvGotjpUzDJngHCtxrVj6ZK8DPlgXpo2CWC2l6uwlakxkMQkCQQICywMKsmyMVP
+WFbalUezRDl7S/J9ybZYK61aq8mrBYzntCaD3HwtjKmkAZ3tKcDfPidqwVtUAioB
+SzB6ztc/AgMBAAECggEBAKMvCWpjZksJ1O/Inn5CyN9v5uDop+3jbqqn14ne0IcS
+weGrzh2/u9/w+ohIoVhxI02XfZFzrj0Ixe/Z5LwndjtGkzJxFt952k1FBMefU5up
+Ft/j2+DyJpoQajHVDyfMTcz1GHEP/KKA/5n/ld4wZ39E8pFaP/PzdCgjdxPUo0II
+OWvNehyLqiOQseYsnWTYFGgBFX5Dr8/cZH8duaNTkGzr+/4O3KmF04lTYS2SPkQ8
+8ospMX9a9N4+gDXF6KWlIJUEk4Xelv/BT7jygEz0K0bIcRGdmgFe57Rh9qTHxZrl
+YkHh3lHC5XD5sWuOjoEu54jJdL/u1zfaK/jpQXKMjtECgYEA+eCIg1vBPKl53s38
+Ch/nRuwmtu8qJlcN6aYBAdUn/Z95Qy5gKmL0hW7qJ5+kgwLJZEdLQ+xIHBdnWjdP
+7VJ7k6NEsy/EQ2NOYBzxysvnyYSAwY1Wb4StPO9ejqb02LrY6gBNfePE/wpR1EqK
+Suyzocf0x02blO8dQ3JaGn/IKlkCgYEA5ig4jtcKUzP2vRQ8tWaaJvLxP2fEzEgb
+J+r1zLrdMqZvWwjhbdIbQRnhwjpelVKpxGFiOP91bf9+6qiX8q3TOar3tDu2o2Nu
+yFNvExoqxfaD+IHfDo3KjTwohysbBXdZzqeOwL2N7HcQz5E11e0JDgTPLXtWk2UN
+qeYUNHeXq1cCgYAmKXWP4j6D3jo/nePlQ/QVb9GF1MbyLg9w5Kp4ti4yXN2vNfD3
+6D8B9euK+6WrYIyTZRQInphwud5N9+6cByHabW/7kcr+o7b/lMwUtcmDjFoBtW1D
+ANdYXBJr5PG1++tO6ZbsKBIZBWFz86JlSPsyNRCcM60UNOSaPWenbmaKmQKBgQC8
+qEt0CqDUAsxFwMjiiO/i7VEDADQ4nwJjfh1ta97VHcg5ftYKByd//Y8ofl/5VoEC
+EDFLN1syhzOpdfjXW9TAeHwCqM/UrjSo0HtD1Tcqfh8/HHWSoHdfvegapCLKIELl
+OkOxia9EHXUSL51JdbruWtLYHTmiKDtDAO2e9EjGkQKBgHOEZ0u07bCyz+EZHTQb
+sWt1U2LztJ/cNSNqgVc4NTTna0KisjXBTbtIQeArI42GHXNBazE+KbApnHQy8f7M
+DJIl2/70CRTfosDdSE6DnQk672BhJ4fr6Ln/VyvcATlcv34UYiGsDY3LCf0UTdjd
+GsR6pGtD+3qErri9pbdxDvRC
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc5-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc5-cert.pem
new file mode 100644
index 000000000..8663bdf36
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc5-cert.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDeDCCAmCgAwIBAgIBAjANBgkqhkiG9w0BAQsFADArMRcwFQYDVQQDDA5zZXJ2
+ZXIuZXhhbXBsZTEQMA4GA1UEAwwHcHJveHkgMTAgFw0xNjA2MTgxOTU0NTVaGA8y
+MTE2MDYxOTE5NTQ1NVowPTEXMBUGA1UEAwwOc2VydmVyLmV4YW1wbGUxEDAOBgNV
+BAMMB3Byb3h5IDExEDAOBgNVBAMMB3Byb3h5IDUwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQCvDPn1fctKUE8+aHf036mHkIEsWn0iNFl2K/qAOMqjqOvs
+lj+zxhRqwj29v1Prb4ZYvjRrJ2GQdh7GXju4cP6wQKKHGOurJhYczcfqwAfi+21K
+Bn4gmM3i4GESuIC6GuXWqw24oMZYBi5H3zsBMr2mobSQJV3gN/5jfGIEtZW3GqVW
+iKAutNCbmV76NoRJm0sRzrFwyX1pomHCm9odwJQ0nNvyetMulY9tX9xYn01FLfiz
+JS2UmyOYxkSyKOSsmGJDVK/mZ86xYnQygUy6yIiz2hR2yq5M1oeRYOEONwt9mY/e
+ZVoIbquW28PEDQE6KtK/EYUdWn8482XQdRcdKmSlAgMBAAGjgZIwgY8wHQYDVR0O
+BBYEFEfQwyLv6WIDOf9VQ/ElxxcFKkX5MEEGA1UdIwQ6MDiAFNOib4aG0AVcbb7p
+bh224iVD3Jx8oR2kGzAZMRcwFQYDVQQDDA5zZXJ2ZXIuZXhhbXBsZYIBAjAJBgNV
+HRMEAjAAMCAGCCsGAQUFBwEOAQH/BBEwDwIBADAKBggrBgEFBQcVADANBgkqhkiG
+9w0BAQsFAAOCAQEAl93p1Pcw3hBbTTnm9oa9cOUvPBkUwLJmSJ1Il3HQQuLz5H+H
+OiF3ePaa7wmGmMTwHEYtOvIhGO5c6zilVRint03BaXRizZcqdjDiHUgVcr11pzX5
+F4ihFOF91c6DmUorRrtkjglLb/gAMdUE0eT/wukiMjJWgcw+O2EVxGjpAgRVNw/v
+byYx4TPmvnnigqfMY9lVFKJy0g5Ovw6Nb2ff8ndSEZsCDB8XdNg2u07zYu1dM/vF
+wpjsA/omrfXP3opH1ustvMQm9BPkySLRzNbIYHHRJX3Hkhn+EYzMmxv3cH0EEtn6
+taj7Gfsp7TfLpfSgP/Y88EsKhQAWsdFt2tT3FQ==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc5-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc5-key.pem
new file mode 100644
index 000000000..1ad080553
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/pc5-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCvDPn1fctKUE8+
+aHf036mHkIEsWn0iNFl2K/qAOMqjqOvslj+zxhRqwj29v1Prb4ZYvjRrJ2GQdh7G
+Xju4cP6wQKKHGOurJhYczcfqwAfi+21KBn4gmM3i4GESuIC6GuXWqw24oMZYBi5H
+3zsBMr2mobSQJV3gN/5jfGIEtZW3GqVWiKAutNCbmV76NoRJm0sRzrFwyX1pomHC
+m9odwJQ0nNvyetMulY9tX9xYn01FLfizJS2UmyOYxkSyKOSsmGJDVK/mZ86xYnQy
+gUy6yIiz2hR2yq5M1oeRYOEONwt9mY/eZVoIbquW28PEDQE6KtK/EYUdWn8482XQ
+dRcdKmSlAgMBAAECggEBAKqEmXjp8P2S/Z5tZWzD8wB7Y1kxTHPlSsAyVvJQYBTM
+mAT+107nxTu5uyr7FWRiXxxTK/y1f/SZG6FgagxhBbfrPmcbf3ZYw3GLgxLJvOT+
+xpc1e+eE8gnvSKBT2hFv4jQarGMNOijE3JBmg7PHGbcYDivcOnYQFV4T6+dqe0zA
+q2bLi/lko81Plunp7ev3i2ATjNxcYoannaTCq0HFxMLoOgrAoLqJqt8nkqXIY91z
+phx1x13HrHyikhuDBDb15TdJo68rbHngDolHFC7rHW65+vp0emJDtdEkBnQLDa5W
+a3ZeVe/xY0aaMPlcw//ZB8KMUD69VdCuiGXjrrHISAECgYEA2uIh82TIp+xG2Tk/
+2uZS1dOCCEEkkBqqgKwH2m2fctTHGMnKJaxSTCNKPEIpxaTt6EMp3jlviOmdrPtd
+pUS1OqkA99bzT8ZBEd8fg33XGCN5W7wvfo5077onwwJ+ocd//KJqQ2M6MioEp5im
+6Z8cDDdGA6NI3kJ+G3+CwczRTXECgYEAzLwKVkfd7TNJZQ7Z0n2x+O8hPJAaut2/
+qFIeItSBFo+ErQL8NnJPLMxBkWfVmnc4vFKc2bxgjz8S+cJCEucTrOAS7+ikP6KU
+Mo2NjbzA4omceuy3t+3eGJdYE44nBL/V+ZVAt6F0TQ7rayMAurcLJurHMiFYQEfs
+qAlsaYCiAHUCgYAmv7Wm8waaw7dfKUVmqTOs6v6wG2gvoqjgkpPpVVLO72A3wTFq
+LfF7zRuNQ2FFvgboAUveLWjTYhgp0W4onds/gT/MoF7+lmhak5dunc6AVXdciBoY
+W3vUHK6BVWW5minMPax2NZDN5KZiTSHvZd1/RCG+7x8tSbQthgtN58Z94QKBgHbH
+aZ/hFgo1xRESaqFKN2TbJ4dBe6CKYlU/Pyip7TKvlSPjJXxZGUI+RpQbj7uMC6iG
+rWVNex/gUhwA7eCVm76iSZpSeGhK5Hvn0AY5ShakC9rtVzEomb/enkTKJi0FNxkT
+1HY0/4pta3u+1P9+jsPHVkXpPpAcqlpbDUCwVky5AoGAJgwr1pxM7RDQon8Mpjxm
+XTJ36Vl+6dq/5yPBcKylQ49e5XrugS2trV1aSZKsiVuLGK9N8ND2N8OazxfpXbee
+q6b8GAqWWz4ewe30FKo0ipL1SfsJUTv8lPKIGo8oNk4vsUvv/bLJHpr6+g2d8lCw
+A0i6wzzrXUiXlynYm+VCKhs=
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root+anyEKU.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root+anyEKU.pem
new file mode 100644
index 000000000..97e073218
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root+anyEKU.pem
@@ -0,0 +1,18 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIC8TCCAdmgAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo1AwTjAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zANBgkqhkiG9w0BAQsFAAOCAQEAyRRJx27WYOogPXZpPfAMt8ptapr/ugLWGLlw
+bzKySoyLpoV2/YNAvTAGB90iFq6x/ujjrK41/ES0p3v38/Qfuxo24gcZgc/oYLV2
+UqR+uGCx68p2OWLYctBsARtYWOEgPhHFb9aVxcOQKyZHtivDX0wLGX+nqZoHX9IY
+mc0sbpRBRMzxRsChbzD5re9kZ5NrgkjA6DJ7jYh2GitOM6oIU3Dd9+pk3bCEkFUg
+Ry9qN/k+AyeqH1Qcb5LU+MTmlw8bmyzmMOBZgdegtO4HshcBMO054KSB3WSfBPDO
+bEhZ0vm/lw63TGi88yIMtlkmcU2g0RKpeQI96G6QeqHyKF3p8DAIMAYGBFUdJQA=
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root+clientAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root+clientAuth.pem
new file mode 100644
index 000000000..8004e63dc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root+clientAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIC8TCCAdmgAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo1AwTjAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zANBgkqhkiG9w0BAQsFAAOCAQEAyRRJx27WYOogPXZpPfAMt8ptapr/ugLWGLlw
+bzKySoyLpoV2/YNAvTAGB90iFq6x/ujjrK41/ES0p3v38/Qfuxo24gcZgc/oYLV2
+UqR+uGCx68p2OWLYctBsARtYWOEgPhHFb9aVxcOQKyZHtivDX0wLGX+nqZoHX9IY
+mc0sbpRBRMzxRsChbzD5re9kZ5NrgkjA6DJ7jYh2GitOM6oIU3Dd9+pk3bCEkFUg
+Ry9qN/k+AyeqH1Qcb5LU+MTmlw8bmyzmMOBZgdegtO4HshcBMO054KSB3WSfBPDO
+bEhZ0vm/lw63TGi88yIMtlkmcU2g0RKpeQI96G6QeqHyKF3p8DAMMAoGCCsGAQUF
+BwMC
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root+serverAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root+serverAuth.pem
new file mode 100644
index 000000000..966676ddb
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root+serverAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIC8TCCAdmgAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo1AwTjAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zANBgkqhkiG9w0BAQsFAAOCAQEAyRRJx27WYOogPXZpPfAMt8ptapr/ugLWGLlw
+bzKySoyLpoV2/YNAvTAGB90iFq6x/ujjrK41/ES0p3v38/Qfuxo24gcZgc/oYLV2
+UqR+uGCx68p2OWLYctBsARtYWOEgPhHFb9aVxcOQKyZHtivDX0wLGX+nqZoHX9IY
+mc0sbpRBRMzxRsChbzD5re9kZ5NrgkjA6DJ7jYh2GitOM6oIU3Dd9+pk3bCEkFUg
+Ry9qN/k+AyeqH1Qcb5LU+MTmlw8bmyzmMOBZgdegtO4HshcBMO054KSB3WSfBPDO
+bEhZ0vm/lw63TGi88yIMtlkmcU2g0RKpeQI96G6QeqHyKF3p8DAMMAoGCCsGAQUF
+BwMB
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-anyEKU.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-anyEKU.pem
new file mode 100644
index 000000000..712b1f572
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-anyEKU.pem
@@ -0,0 +1,18 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIC8TCCAdmgAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo1AwTjAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zANBgkqhkiG9w0BAQsFAAOCAQEAyRRJx27WYOogPXZpPfAMt8ptapr/ugLWGLlw
+bzKySoyLpoV2/YNAvTAGB90iFq6x/ujjrK41/ES0p3v38/Qfuxo24gcZgc/oYLV2
+UqR+uGCx68p2OWLYctBsARtYWOEgPhHFb9aVxcOQKyZHtivDX0wLGX+nqZoHX9IY
+mc0sbpRBRMzxRsChbzD5re9kZ5NrgkjA6DJ7jYh2GitOM6oIU3Dd9+pk3bCEkFUg
+Ry9qN/k+AyeqH1Qcb5LU+MTmlw8bmyzmMOBZgdegtO4HshcBMO054KSB3WSfBPDO
+bEhZ0vm/lw63TGi88yIMtlkmcU2g0RKpeQI96G6QeqHyKF3p8DAIoAYGBFUdJQA=
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert-768.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert-768.pem
new file mode 100644
index 000000000..4392ef0e4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert-768.pem
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBpzCCATGgAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDMyMDA2MjcyN1oYDzIxMTYwMzIxMDYyNzI3WjASMRAwDgYDVQQD
+DAdSb290IENBMHwwDQYJKoZIhvcNAQEBBQADawAwaAJhALntqSk2YVnhNalAikA2
+tuSOvHUKVSJlqjKmzlUPI+gQFyBWxtyQdwepI87tl8EW1in2IiOeN49W+OtVOlBi
+Mxwqi/BcBltTbbSrlRpoSKOH6V7zIXvfsqjwWsDi37V1xQIDAQABo1AwTjAdBgNV
+HQ4EFgQUWPMT967zC8rDNvZo4PDnYL7SAtUwHwYDVR0jBBgwFoAUWPMT967zC8rD
+NvZo4PDnYL7SAtUwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAANhAFDU7FyF
+Ma6EG0OBS4IYws2US9t3IQwlI5noQwm9R3Nk/3AIUrdPG8ydRyV1N4GuRhRpprh0
+sEbX3ZO9/E54DbPYfS5kqfZZtohUNy+Wmx8XY9OSv4SWUrrMSIRFXS63MA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert-md5.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert-md5.pem
new file mode 100644
index 000000000..b6ed10c62
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert-md5.pem
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC8TCCAdmgAwIBAgIBATANBgkqhkiG9w0BAQQFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDMyMDA2MjcyN1oYDzIxMTYwMzIxMDYyNzI3WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo1AwTjAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zANBgkqhkiG9w0BAQQFAAOCAQEAwSTZo97psLqiNmgvCC/Z51F3S9bFKPjGK4dc
+Kqh8pMJsb8DnfGlPnsYXq/0oPcBThTRGZDqTeZa0ms8G+g4GS21TPF7lmvVJUJhz
+GRLJxX7TYB8xriSJ15DwZgGmEGPfzmoIq27nwrO4TRAi0TCLdw01XZwiq2V7anl+
+jrIpJPDuaT3oBqnGTMZ5IoaQq2TX8PS/ZW6icJiRmXLMp/HUycKpDUshiuARR5Mi
+UOzX8IHwn76Zj6z1R8xW9j1WcEycFYevTMaRuS6hnYagiSaAytIQU8hgMR4AWodM
+NFYv5t9rguJnimGUGMMBIYXnPNE2kaoq9qCVgjuC14gWU0kq6Q==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert-rsa2.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert-rsa2.pem
new file mode 100644
index 000000000..b817fdf3e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert-rsa2.pem
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC7DCCAdSgAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBHTAIBgRVCAEBBQADggEPADCCAQoCggEBAOHmAPUGvKBGOHkP
+Px5xGRNtAt8rm3Zr/KywIe3WkQhCO6VjNexSW6CiSsXWAJQDl1o9uWco0n3jIVyk
+7cY8jY6E0Z1Uwz3ZdKKWdmdx+cYaUHez/XjuW+DjjIkjwpoi7D7UN54HzcArVREX
+OjRCHGkNOhiw7RWUXsb9nofGHOeUGpLAXwXBc0PlA94JkckkztiOi34u4DFI0YYq
+alUmeugLNk6XseCkydpcaUsDgAhWg6Mfsiq4wUz+xbFN1MABqu2+ziW97mmt9gfN
+biuhiVT1aOuYCe3JYGbLM2JKA7Bo1g6rX8E1VX79Ru6669y2oqPthX9337VoIkN+
+ZiQjr8UCAwEAAaNQME4wHQYDVR0OBBYEFI71Ja8em2uEPXyAmslTnE1y96NSMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wDQYJ
+KoZIhvcNAQELBQADggEBAJ0OIdog3uQ1pmsjv1Qtf1w4If1geOn5uK0EOj2wYBHt
+NxlFn7l8d9+51QMZFO+RlQJ0s3Webyo1ReuaL2dMn2LGJhWMoSBAwrMALAENU3lv
+8jioRbfO2OamsdpJpKxQUyUJYudNe+BoKNX/ry3rxezmsFsRr9nDMiJZpmBCXiMm
+mFFJOJkG0CheexBbMkua4kyStIOwO4rb5bSHszVso/9ucdGHBSC7oRcJXoWSDjBx
+PdQPPBK5g4yqL8Lz26ehgsmhRKL9k32eVyjDKcIzgpmgcPTfTqNbd1KHQJKx4ssb
+7nEpGKHalSo5Oq5L9s9qYrUv37kwBY4OpJFtmGaodoI=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert.pem
new file mode 100644
index 000000000..21ffa4d42
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert.pem
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC8TCCAdmgAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo1AwTjAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zANBgkqhkiG9w0BAQsFAAOCAQEAyRRJx27WYOogPXZpPfAMt8ptapr/ugLWGLlw
+bzKySoyLpoV2/YNAvTAGB90iFq6x/ujjrK41/ES0p3v38/Qfuxo24gcZgc/oYLV2
+UqR+uGCx68p2OWLYctBsARtYWOEgPhHFb9aVxcOQKyZHtivDX0wLGX+nqZoHX9IY
+mc0sbpRBRMzxRsChbzD5re9kZ5NrgkjA6DJ7jYh2GitOM6oIU3Dd9+pk3bCEkFUg
+Ry9qN/k+AyeqH1Qcb5LU+MTmlw8bmyzmMOBZgdegtO4HshcBMO054KSB3WSfBPDO
+bEhZ0vm/lw63TGi88yIMtlkmcU2g0RKpeQI96G6QeqHyKF3p8A==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert2.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert2.pem
new file mode 100644
index 000000000..e47e91e6a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-cert2.pem
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC8TCCAdmgAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyB6dJAD5
+wbStQf4HE0EhldtDShNVQ/jhDu6s2Ka30FdP4ml1+c2Py7ODUSjSCegXaBIOXCA+
+R0zaBAJ3ZeqXx3UrE9PiXaHRGZcoPtX4mK9IOHhIdxwPUa6ceSOJn4cHY+p0cFLp
+/5bnUErp4IqbL1bMd4v8fFxJ0ZDGJahfLiurnYUyalaNCHK+hK2+RaeRgPlsXfiU
+/vwhhjFhdhixbPm8l+S+2xNySV1JAAzrUvEDdNZ0iBvuVcS2mlhSKTht5Zeg+0C6
+7kYYqxM9CVZCwcV/aSUImwjeFsNMJsl/nFyEacu6vXz0rjvLwPzTAeVYZy592Gwv
+akWOtiDdap7WJQIDAQABo1AwTjAdBgNVHQ4EFgQUnM5mQjCrHAgmX3MZbd8Pp65Y
+Uh4wHwYDVR0jBBgwFoAUnM5mQjCrHAgmX3MZbd8Pp65YUh4wDAYDVR0TBAUwAwEB
+/zANBgkqhkiG9w0BAQsFAAOCAQEADkH6+rUX2QD5TMBn8x4PR9mTQsxhD2k8K2bv
+NpbsWX0ta2pDPhiBpIbrTrTmw656MMRkwMLYIAX7BFhyjO9gO0nVXfU1SSTDsso+
+qu/K1t2US/rLeJQn8gYiTw6AqmvxHOndLaZQrYef4rUzsYnahNzxcoS1FMVxoJFM
+o+1Wo0BFBlASv5Az0iFfjd1Uy3+AHB41+2vczNIWSki3mg4hzus2PSS4AA9IYeh+
+zU/HJMddnVedLKNstTAfR85ftACtsP6JhBqCBqC4mCVsN2ZlgucETbsOMyWYB4+y
+9b6JIYDA1wxNVBXwN+D4MyALxjmjwcTsL6pXgoVc0JEJWVqQ1w==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-clientAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-clientAuth.pem
new file mode 100644
index 000000000..8d82866a4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-clientAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIC8TCCAdmgAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo1AwTjAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zANBgkqhkiG9w0BAQsFAAOCAQEAyRRJx27WYOogPXZpPfAMt8ptapr/ugLWGLlw
+bzKySoyLpoV2/YNAvTAGB90iFq6x/ujjrK41/ES0p3v38/Qfuxo24gcZgc/oYLV2
+UqR+uGCx68p2OWLYctBsARtYWOEgPhHFb9aVxcOQKyZHtivDX0wLGX+nqZoHX9IY
+mc0sbpRBRMzxRsChbzD5re9kZ5NrgkjA6DJ7jYh2GitOM6oIU3Dd9+pk3bCEkFUg
+Ry9qN/k+AyeqH1Qcb5LU+MTmlw8bmyzmMOBZgdegtO4HshcBMO054KSB3WSfBPDO
+bEhZ0vm/lw63TGi88yIMtlkmcU2g0RKpeQI96G6QeqHyKF3p8DAMoAoGCCsGAQUF
+BwMC
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-ed25519.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-ed25519.pem
new file mode 100644
index 000000000..e509d5401
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-ed25519.pem
@@ -0,0 +1,9 @@
+-----BEGIN CERTIFICATE-----
+MIIBODCB66ADAgECAgkAhPEIPRzjLZUwBQYDK2VwMBkxFzAVBgNVBAMMDklFVEYg
+VGVzdCBEZW1vMB4XDTE3MDQxOTIxMzYzOVoXDTQxMDIxMjIxMzYzOVowGTEXMBUG
+A1UEAwwOSUVURiBUZXN0IERlbW8wKjAFBgMrZXADIQAZv0QJaYTN/oVBusFn3DuW
+yFCGqjC2tssMXDitcDFm4aNQME4wHQYDVR0OBBYEFKKMwfhuWWDT4DrnXJYsl6jU
+SCk8MB8GA1UdIwQYMBaAFKKMwfhuWWDT4DrnXJYsl6jUSCk8MAwGA1UdEwQFMAMB
+Af8wBQYDK2VwA0EAa6iEoQZBWB1MhCzASv5HuFM7fR5Nz2/KM7GxYjQWsfvK2Ds1
+jaPSG7Lx4uywIndMafp5CoPoFr6yLBkt+NZLAg==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-ed448-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-ed448-cert.pem
new file mode 100644
index 000000000..48e293d69
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-ed448-cert.pem
@@ -0,0 +1,10 @@
+-----BEGIN CERTIFICATE-----
+MIIBeDCB+aADAgECAgEBMAUGAytlcTAVMRMwEQYDVQQDDApSb290IEVkNDQ4MCAX
+DTIwMDIwOTEzMjY1NVoYDzIxMjAwMjEwMTMyNjU1WjAVMRMwEQYDVQQDDApSb290
+IEVkNDQ4MEMwBQYDK2VxAzoAbbhuwNA/rdlgdLSyTJ6WaCVNO1gzccKiKW6pCADM
+McMBCNiQqWSt4EIbHpqDc+eWoiKbG6t7tjUAo1MwUTAdBgNVHQ4EFgQUVg2aQ+yh
+VRhOuW1l19jtgxfTgj8wHwYDVR0jBBgwFoAUVg2aQ+yhVRhOuW1l19jtgxfTgj8w
+DwYDVR0TAQH/BAUwAwEB/zAFBgMrZXEDcwCiXlZXyMubWFqLYiLXfKYrurajBMON
+lclLrYr57Syd+nAIlgXiF0rGK2PawoMPXVB3VWWSigEb54AImb6tsW42gC+zC6oq
+nkPC2FTLXPvqqgGXUpK/OfhPUP9bWw6mcJaIozlyzJD4AyebN9LDrBqCMwA=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-ed448-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-ed448-key.pem
new file mode 100644
index 000000000..e0c36ff43
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-ed448-key.pem
@@ -0,0 +1,4 @@
+-----BEGIN PRIVATE KEY-----
+MEcCAQAwBQYDK2VxBDsEOQeryQn6L8gItRarrM0pRHxjNdtaIz3BrWU2mwhLZQaq
+8Cm6w5gP6aitAIde7Td3nQ55bIGC5roxFQ==
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-key-768.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-key-768.pem
new file mode 100644
index 000000000..4ecdcd3fd
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-key-768.pem
@@ -0,0 +1,13 @@
+-----BEGIN PRIVATE KEY-----
+MIIB5AIBADANBgkqhkiG9w0BAQEFAASCAc4wggHKAgEAAmEAue2pKTZhWeE1qUCK
+QDa25I68dQpVImWqMqbOVQ8j6BAXIFbG3JB3B6kjzu2XwRbWKfYiI543j1b461U6
+UGIzHCqL8FwGW1NttKuVGmhIo4fpXvMhe9+yqPBawOLftXXFAgMBAAECYH1FP4Bg
+/16Lepg6v+tb8gY0lY1WFN5EGVRfRw3QUaT9kldboEjjnQ8wSswVEPYr56IHZ8mH
+Or8LtJVrB3fjriq5vNOt7lRscuV7IcVtOyVWu5+MoJmO67Q2vRJXLWTdAQIxANtp
+AiqObXo8vyT+EDcOEW104PfKNVh/4fhyrDwAk/yTcxkv4dcnuTykeLPvkXq4cQIx
+ANjvQa+9LubMy3N1uXIbWWsiEBi4BdNK+xuppJ2puckaiQU42Mfmw/Nj4LMEJLfc
+lQIwCYcv3uU8f9hvfI3D6oAj5Zrzwg737hXvnDhunlRwGMHWd7uKlStWcfm6fCXl
+LW0hAjEAneK0egVEp3IR+PyLdcL194UZFgSJKNj/nYiAaMdokjcf1o8jJ4qKvw/I
+MEIpvy9pAjAzaFHKRugCN01V2dgXYYGL8+zkcwG4ehDXH1XEs4v8r3WtHBPPKED6
+AemfAQJLvh8=
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-key.pem
new file mode 100644
index 000000000..0e0ee11c7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDh5gD1BrygRjh5
+Dz8ecRkTbQLfK5t2a/yssCHt1pEIQjulYzXsUlugokrF1gCUA5daPblnKNJ94yFc
+pO3GPI2OhNGdVMM92XSilnZncfnGGlB3s/147lvg44yJI8KaIuw+1DeeB83AK1UR
+Fzo0QhxpDToYsO0VlF7G/Z6HxhznlBqSwF8FwXND5QPeCZHJJM7Yjot+LuAxSNGG
+KmpVJnroCzZOl7HgpMnaXGlLA4AIVoOjH7IquMFM/sWxTdTAAartvs4lve5prfYH
+zW4roYlU9WjrmAntyWBmyzNiSgOwaNYOq1/BNVV+/UbuuuvctqKj7YV/d9+1aCJD
+fmYkI6/FAgMBAAECggEBAJWfUmL441cFK8KDZrszDfjf61cF+yKkw+ddghuWUtm1
+hOw2mjC9HBN5ay0+YYOoHUeYOoUpdMIM/rvuQc9brCcJsg0TZ34/2hEWt7Yst9OO
++l1OykSfHBwIm7z6Aps1JmU3Ct+RK6ZtDRsU12hloYuzRxezmFUCwQPsWGR1xA9d
+usQHGbhM6F0WXFiTUulwf5x/06egO4IcDQL/qi5B79Byou+YnEQXcvWlF+6shPb6
+dvQbHuNRWd7QJRU/nJ/yhUDQ8Kx8e1WB2QJemBbf3jzkrGxHxWojcr6avJOQuNk4
+DCo+ksUcpiJqKLF26dGyLTypqL3s1L6FXbQ2kvlGqMECgYEA+Bpv+uJAZk7N83+N
+9DSsDmzQ1I1pp9tnwHvHko3gaWBr2O0bC7kl2CyLlUZ8Fi1SuiZPkWBXbffZbLxb
+H7t8ppvsvnVC4+BWkdmQR9du6mtl16GojZxPE1GL0Gqqw8CyJGSATBm9UJs/roq1
+hQxnvWrbGZp2+PGJTndlb+UpIXMCgYEA6Raj0bHa4Lzb2CLxf5eo6p4iBNacD3as
+CokJmDETIAwXFpjnHLDEuq8W26OACCv6vZtHefhtO0ULqJC1pRLF5/3lxhp219pp
+5Q1bSIysOKUJtZyqNwvhvROoiFgTDRyfu48eKsAx18pzRJ/ZFHsHqNbNUVWjF2Nf
+1yNC6PErO+cCgYEAufImhyPXHFZnqN2qqKJpaY5InWU3EKUyB2M92isXTCMF8VkT
+ch/bqz8HhmODUKO7YuSfsddA75xYilRI/2lnLP+j2cLM1Tkn6LvklNNzv6GqfIge
+abQC1/nADf5D6d6cJQZl2aNY7fbNLaWsEgGQJrjVaUUJcd6lB/gYQFrCDt0CgYAb
+61RQB8e556VFrFnU+KuI/swAXFxxFbvhvyxhCG/MBOa3FDWKoDnQSqyoPltVnz73
+eyQCnhknYkvVMxAu56LA+Q6OvhjCHi1U/FaUyBTQ7CPPlyZkVY4CgdpMCpCtn2Ia
+qzfn0wGlYWCRNbxg0aPHO4N4XJOed47BTD31fP26vQKBgDWXNz5he9pLYYDiF4F3
+jdjbG/QCmO41VBdfd81pFajJKm4TaskuMLTaWa51KHcoW+ddQQLy72qtXH53X4SL
+lO/RacV9hRoSX5Nq7ivSO8sM1fnU55kBre+V/ZgKkG4Xe669P1Hd4TpmmpoYDhgO
+Jq+6oI4L87uoIoyqvltRK3hM
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-key2.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-key2.pem
new file mode 100644
index 000000000..990b20d64
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-key2.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDIHp0kAPnBtK1B
+/gcTQSGV20NKE1VD+OEO7qzYprfQV0/iaXX5zY/Ls4NRKNIJ6BdoEg5cID5HTNoE
+Andl6pfHdSsT0+JdodEZlyg+1fiYr0g4eEh3HA9Rrpx5I4mfhwdj6nRwUun/ludQ
+SungipsvVsx3i/x8XEnRkMYlqF8uK6udhTJqVo0Icr6Erb5Fp5GA+Wxd+JT+/CGG
+MWF2GLFs+byX5L7bE3JJXUkADOtS8QN01nSIG+5VxLaaWFIpOG3ll6D7QLruRhir
+Ez0JVkLBxX9pJQibCN4Ww0wmyX+cXIRpy7q9fPSuO8vA/NMB5VhnLn3YbC9qRY62
+IN1qntYlAgMBAAECggEAJgHieHcS+F43VcRIVbjWBx8orYX0eL9pByv/efpYCOK8
+UlUTSglnmRmUBDMLiUQiReq//XFGQsZu1boeMSYYA5LWRqLEaGIWU5To2N5Mo7sO
+rWLy6GRU6H+QSlWcisbbeXeK+9ZTiO6BKjfAKZxJkvkaRk44+umQP5QOfhJ3WU4t
+0wkwYOfm8uOEg48yZTgjUVzhIORHAq5RHH/5goLrNwO2bIqOHOqzSrXGQJJ+oDaL
+JykccyVAElUGd5JaSpm5z0a43C4A5q770ppiByGxJv1L3ID1hkik1ZpWfMtwPH1Y
+FIAINqlhVoeAEwOCpL9axZ5OCGQrgWLNV4LfJyG4NQKBgQDyHGDyp+ZpMJRxCtDt
+8QWtthuoOfwmXOR81ZJGD3GA8rEGcG1zH4F+B4Z76/Kwb/uabH9FPURS+kcDpsuM
+9Avx88JTg6YFhtpQQCcmhY7awgc+B4ve95ziz6DOMhCD8Yb36UjM7B1jY+zVLIYt
+yQhZOKQEzPFqfPMrzEDsabT+GwKBgQDTmY35/l13zYi21xmCL+309KzjbZEyX0NF
+SE2JjIdwcWvKSMPFlWv7l1ssIg1fF0Hu7mEbLB74eUU0fe4D0LPeoEX3ihjYej4N
+M/EdKv7+WhCr11lnWwWTM+aeeFAmwdD95Gdvv0hTnG/GqxiOt19HhGhMHJueAKDL
+Tmci9hPAvwKBgQCkjbM62fEZp4IMvtw4DKveYDq2AQsnC9XkHsh3Q8HScaDuDnXl
+XBGIFhdKnJhrYQEx+PIbnkOU3jRr/+6zE6AWx6VZW834TaqOBrxVS0tH1b5UY46m
+ccc4xQO3gYGGHB+u2ei4Fvb2eZEbZlKgRdWdxoh8FssypFAmgYHS7Rmt5wKBgEYu
+symM1aGL2WGTnJFSpmFN2h4g1DzZ3e0X2yfZJX8FD5RraAub0NIE1Kehr7+vbh36
+kNi7XJZbWrnbXtuDGHWpwSsmcbEzcmtcpAdhoGvqoYbtiWi/huzZFQ/Qpf0E4fWk
+ES6+ShX5WBWT4DRN29tTrmg4QOE6IhrsqUauScTvAoGAKxEzsSHPgZm5rGOfVPcI
+cFeSJFCsaPfVk97T9aNievhMMChKBV8vT3Unlk0RObcsMweo6OMmfnRxrHhgfVz8
+elpLOlzEHfELlR8HELvxCeWWzuPgNCAPcG3BmjRnm8g5xmmkfQuRKlkQTcGbHotI
+wIPT+bHg3fjx7CemHl+rZeo=
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-name2.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-name2.pem
new file mode 100644
index 000000000..ac3a4bb84
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-name2.pem
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC+TCCAeGgAwIBAgIBATANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtSb290
+IENlcnQgMjAgFw0xNjAxMTUwODE5NDlaGA8yMTE2MDExNjA4MTk0OVowFjEUMBIG
+A1UEAwwLUm9vdCBDZXJ0IDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQDh5gD1BrygRjh5Dz8ecRkTbQLfK5t2a/yssCHt1pEIQjulYzXsUlugokrF1gCU
+A5daPblnKNJ94yFcpO3GPI2OhNGdVMM92XSilnZncfnGGlB3s/147lvg44yJI8Ka
+Iuw+1DeeB83AK1URFzo0QhxpDToYsO0VlF7G/Z6HxhznlBqSwF8FwXND5QPeCZHJ
+JM7Yjot+LuAxSNGGKmpVJnroCzZOl7HgpMnaXGlLA4AIVoOjH7IquMFM/sWxTdTA
+Aartvs4lve5prfYHzW4roYlU9WjrmAntyWBmyzNiSgOwaNYOq1/BNVV+/Ubuuuvc
+tqKj7YV/d9+1aCJDfmYkI6/FAgMBAAGjUDBOMB0GA1UdDgQWBBSO9SWvHptrhD18
+gJrJU5xNcvejUjAfBgNVHSMEGDAWgBSO9SWvHptrhD18gJrJU5xNcvejUjAMBgNV
+HRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAXH466iCDUusG2NbpU/tMZVWB2
+8wVwawbXn2LNYCdWPAgOHR+87OekNAh/vXBoPu9up9Up40/l/4+29zl5s9tKpF7X
+SI8QeM2HC9LLGsbFNEJoX4kcz6Q8WxrhtEeBTu1api4CB4POGkj5VlKFCwa3bjPH
+brDwCODq1Gkggf4NR0piiqFKUEKTteMoeC3dod+FzBh6eDssGcVsNxhB0FiMk4GG
+3Fc1NR56gL+Qz3QFZf2tdpMcBXECc1nP7fNq6CwSRwcgDgte/qqYr3gkeBo3M3Bz
+7JE19lq7kjfiTq6zyswacaqlvN9bJAxNkbshW7kvIqw+27y5XErpestuoxSt
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-nonca.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-nonca.pem
new file mode 100644
index 000000000..5c86abe5c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-nonca.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDFzCCAf+gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo3YwdDAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwCQYDVR0TBAIwADAT
+BgNVHSUEDDAKBggrBgEFBQcDATASBgNVHREECzAJggdSb290IENBMA0GCSqGSIb3
+DQEBCwUAA4IBAQCJLiUshLaVQxjnoxN4MISOIM7vy9jIfCEabtyOumjVXasvLqKS
+fF0nLoRb/6iCd0VnJlliTKky/p8aaG4+VooQPTxwpat6zir4G1N2dWwYbMTDpVfh
+836wHNPmmFvCUSKZcoLAEmMVRrNU9gBXkS64FfoP0FCoWeHb9NSlQY5YFb0BO8C/
+6AZlMGCt1HDPEK+gE/Uwayk7Yo3npSb+ZgnwZpA0ip0lPJ0Uf5cZ5Q/RBP0H+nxi
+KLKzBpY01IJ67/7R1Ioc27JiUpBGmKQzjg48POSMOECFolv0dH33O6aXJaXtw9Kq
+m8y3rPQqNPehWzbRq75txC/sayQZXNUrteVz
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-noserver.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-noserver.pem
new file mode 100644
index 000000000..0c7fb8d1d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-noserver.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIC8TCCAdmgAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNDIyMjkwNVoYDzIxMTYwMTE1MjIyOTA1WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv5oV1s3N
+us7SINg7omu5AxueEgK97mh5PU3hgZpliSFaESmL2qLGeP609oXs/68XDXVW4utU
+LCOjLh0np+5Xy3i3GRDXgBZ72QDe23WqqQqqaBlQVVm1WxG+amRtZJEWdSIsiFBt
+k+8dBElHh2WQDhDOWqHGHQarQgJPxGB97MRhMSlbTwK1T5KAWOlqi5mJW5L6vNrQ
+7Tra/YceH70fU0fJYOXhBxM92NwD1bbVd9GPYFSqrdrVj19bvo63XsxZduex5QHr
+RkWqT5w5mgAHaEgCqWrS/64q9TR9UEwrB8kiZZg3k9/im+zBwEULTZu0r8oMEkpj
+bTlXLmt8EMBqxwIDAQABo1AwTjAdBgNVHQ4EFgQUcH8uroNoWZgEIyrN6z4XzSTd
+AUkwHwYDVR0jBBgwFoAUcH8uroNoWZgEIyrN6z4XzSTdAUkwDAYDVR0TBAUwAwEB
+/zANBgkqhkiG9w0BAQsFAAOCAQEAuiLq2lhcOJHrwUP0txbHk2vy6rmGTPxqmcCo
+CUQFZ3KrvUQM+rtRqqQ0+LzU4wSTFogBz9KSMfT03gPegY3b/7L2TOaMmUFRzTdd
+c9PNT0lP8V3pNQrxp0IjKir791QkGe2Ux45iMKf/SXpeTWASp4zeMiD6/LXFzzaK
+BfNS5IrIWRDev41lFasDzudK5/kmVaMvDOFyW51KkKkqb64VS4UA81JIEzClvz+3
+Vp3k1AXup5+XnTvhqu2nRhrLpJR5w8OXQpcn6qjKlVc2BXtb3xwci1/ibHlZy3CZ
+n70e2NYihU5yYKccReP+fjLgVFsuhsDs/0hRML1u9bLp9nUbYDAMoAoGCCsGAQUF
+BwMB
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-serverAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-serverAuth.pem
new file mode 100644
index 000000000..37b49f6a8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root-serverAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIC8TCCAdmgAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo1AwTjAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zANBgkqhkiG9w0BAQsFAAOCAQEAyRRJx27WYOogPXZpPfAMt8ptapr/ugLWGLlw
+bzKySoyLpoV2/YNAvTAGB90iFq6x/ujjrK41/ES0p3v38/Qfuxo24gcZgc/oYLV2
+UqR+uGCx68p2OWLYctBsARtYWOEgPhHFb9aVxcOQKyZHtivDX0wLGX+nqZoHX9IY
+mc0sbpRBRMzxRsChbzD5re9kZ5NrgkjA6DJ7jYh2GitOM6oIU3Dd9+pk3bCEkFUg
+Ry9qN/k+AyeqH1Qcb5LU+MTmlw8bmyzmMOBZgdegtO4HshcBMO054KSB3WSfBPDO
+bEhZ0vm/lw63TGi88yIMtlkmcU2g0RKpeQI96G6QeqHyKF3p8DAMoAoGCCsGAQUF
+BwMB
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root2+clientAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root2+clientAuth.pem
new file mode 100644
index 000000000..41355b040
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root2+clientAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIC8TCCAdmgAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyB6dJAD5
+wbStQf4HE0EhldtDShNVQ/jhDu6s2Ka30FdP4ml1+c2Py7ODUSjSCegXaBIOXCA+
+R0zaBAJ3ZeqXx3UrE9PiXaHRGZcoPtX4mK9IOHhIdxwPUa6ceSOJn4cHY+p0cFLp
+/5bnUErp4IqbL1bMd4v8fFxJ0ZDGJahfLiurnYUyalaNCHK+hK2+RaeRgPlsXfiU
+/vwhhjFhdhixbPm8l+S+2xNySV1JAAzrUvEDdNZ0iBvuVcS2mlhSKTht5Zeg+0C6
+7kYYqxM9CVZCwcV/aSUImwjeFsNMJsl/nFyEacu6vXz0rjvLwPzTAeVYZy592Gwv
+akWOtiDdap7WJQIDAQABo1AwTjAdBgNVHQ4EFgQUnM5mQjCrHAgmX3MZbd8Pp65Y
+Uh4wHwYDVR0jBBgwFoAUnM5mQjCrHAgmX3MZbd8Pp65YUh4wDAYDVR0TBAUwAwEB
+/zANBgkqhkiG9w0BAQsFAAOCAQEADkH6+rUX2QD5TMBn8x4PR9mTQsxhD2k8K2bv
+NpbsWX0ta2pDPhiBpIbrTrTmw656MMRkwMLYIAX7BFhyjO9gO0nVXfU1SSTDsso+
+qu/K1t2US/rLeJQn8gYiTw6AqmvxHOndLaZQrYef4rUzsYnahNzxcoS1FMVxoJFM
+o+1Wo0BFBlASv5Az0iFfjd1Uy3+AHB41+2vczNIWSki3mg4hzus2PSS4AA9IYeh+
+zU/HJMddnVedLKNstTAfR85ftACtsP6JhBqCBqC4mCVsN2ZlgucETbsOMyWYB4+y
+9b6JIYDA1wxNVBXwN+D4MyALxjmjwcTsL6pXgoVc0JEJWVqQ1zAMMAoGCCsGAQUF
+BwMC
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root2+serverAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root2+serverAuth.pem
new file mode 100644
index 000000000..52053f1bf
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root2+serverAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIC8TCCAdmgAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyB6dJAD5
+wbStQf4HE0EhldtDShNVQ/jhDu6s2Ka30FdP4ml1+c2Py7ODUSjSCegXaBIOXCA+
+R0zaBAJ3ZeqXx3UrE9PiXaHRGZcoPtX4mK9IOHhIdxwPUa6ceSOJn4cHY+p0cFLp
+/5bnUErp4IqbL1bMd4v8fFxJ0ZDGJahfLiurnYUyalaNCHK+hK2+RaeRgPlsXfiU
+/vwhhjFhdhixbPm8l+S+2xNySV1JAAzrUvEDdNZ0iBvuVcS2mlhSKTht5Zeg+0C6
+7kYYqxM9CVZCwcV/aSUImwjeFsNMJsl/nFyEacu6vXz0rjvLwPzTAeVYZy592Gwv
+akWOtiDdap7WJQIDAQABo1AwTjAdBgNVHQ4EFgQUnM5mQjCrHAgmX3MZbd8Pp65Y
+Uh4wHwYDVR0jBBgwFoAUnM5mQjCrHAgmX3MZbd8Pp65YUh4wDAYDVR0TBAUwAwEB
+/zANBgkqhkiG9w0BAQsFAAOCAQEADkH6+rUX2QD5TMBn8x4PR9mTQsxhD2k8K2bv
+NpbsWX0ta2pDPhiBpIbrTrTmw656MMRkwMLYIAX7BFhyjO9gO0nVXfU1SSTDsso+
+qu/K1t2US/rLeJQn8gYiTw6AqmvxHOndLaZQrYef4rUzsYnahNzxcoS1FMVxoJFM
+o+1Wo0BFBlASv5Az0iFfjd1Uy3+AHB41+2vczNIWSki3mg4hzus2PSS4AA9IYeh+
+zU/HJMddnVedLKNstTAfR85ftACtsP6JhBqCBqC4mCVsN2ZlgucETbsOMyWYB4+y
+9b6JIYDA1wxNVBXwN+D4MyALxjmjwcTsL6pXgoVc0JEJWVqQ1zAMMAoGCCsGAQUF
+BwMB
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root2-serverAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root2-serverAuth.pem
new file mode 100644
index 000000000..dae848a1a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/root2-serverAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIC8TCCAdmgAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyB6dJAD5
+wbStQf4HE0EhldtDShNVQ/jhDu6s2Ka30FdP4ml1+c2Py7ODUSjSCegXaBIOXCA+
+R0zaBAJ3ZeqXx3UrE9PiXaHRGZcoPtX4mK9IOHhIdxwPUa6ceSOJn4cHY+p0cFLp
+/5bnUErp4IqbL1bMd4v8fFxJ0ZDGJahfLiurnYUyalaNCHK+hK2+RaeRgPlsXfiU
+/vwhhjFhdhixbPm8l+S+2xNySV1JAAzrUvEDdNZ0iBvuVcS2mlhSKTht5Zeg+0C6
+7kYYqxM9CVZCwcV/aSUImwjeFsNMJsl/nFyEacu6vXz0rjvLwPzTAeVYZy592Gwv
+akWOtiDdap7WJQIDAQABo1AwTjAdBgNVHQ4EFgQUnM5mQjCrHAgmX3MZbd8Pp65Y
+Uh4wHwYDVR0jBBgwFoAUnM5mQjCrHAgmX3MZbd8Pp65YUh4wDAYDVR0TBAUwAwEB
+/zANBgkqhkiG9w0BAQsFAAOCAQEADkH6+rUX2QD5TMBn8x4PR9mTQsxhD2k8K2bv
+NpbsWX0ta2pDPhiBpIbrTrTmw656MMRkwMLYIAX7BFhyjO9gO0nVXfU1SSTDsso+
+qu/K1t2US/rLeJQn8gYiTw6AqmvxHOndLaZQrYef4rUzsYnahNzxcoS1FMVxoJFM
+o+1Wo0BFBlASv5Az0iFfjd1Uy3+AHB41+2vczNIWSki3mg4hzus2PSS4AA9IYeh+
+zU/HJMddnVedLKNstTAfR85ftACtsP6JhBqCBqC4mCVsN2ZlgucETbsOMyWYB4+y
+9b6JIYDA1wxNVBXwN+D4MyALxjmjwcTsL6pXgoVc0JEJWVqQ1zAMoAoGCCsGAQUF
+BwMB
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/rootCA.key b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/rootCA.key
new file mode 100644
index 000000000..527f3ad75
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/rootCA.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEAwPFrd4isNd/7c1MvkoAvdBYyTfUQIG9sOo7R3GvhLj7DBA+/
+m8TJEtHkC0WX5QbNZjrh4OIr36LE7HvTPTyK/150oKunA2oWW16SxH5beYpp1LyD
+Xq5CknSlK+cAwanc1bFTBw9z946tFD4lnuUe5syRzZUMgEQgw/0Xz5E9YxAcFFv7
+w6jBiLJ3/5zb/GpERET3hewILNTfgaN5yf4em5MWU7eXq75PGqXi+kYF5A2cKqTM
+uR4hoGzEq1mwQDm7+Yit/d+NtAuvfkHgITzIM0VJhC+TBu79T+1P87yb3vwlXlXV
+ddTFezpANQafxIS0bJMMrzdar7ZBTSYjHLgCswIDAQABAoIBAC1EdwJEfqLlOgmE
+qtSkXn3N919y76Wsfqf+eh5M8Tf4YajCSSIyuTpBJE/AtDJ3thkWF4i7h6+gcLNL
+GfR0D+h6MMLBgx259iTZu3V+b9fEMbBHykqcd+IEm/wA5pyJTdaVE/XEGmEqiFEH
+g6wT9XwQ4uRo49X0JfvVlZCNcumapYfPY+BwPQloydm/cLtgUtc1RKUCG7i27aHM
+VaUm+NdYZIwwCQs0Aof/h7PkEWvHq0idaxY9qkLbbZHb1Np/IkmvqCo/PSS1whDj
+/KIQGJDBGuXX/V+cZ+DYkCXAq1fCto9MjarEVmlLW5Hr5QojdbpvwsxSmrGfCqdH
+bfc/9gECgYEA6y6EcYBuvCibmO4G2OA1sNSe5lJF911xUHuUl3CRORdeVFDi9Ch+
+LKzE+XEOlvA+qFSIA/KztevX3dvmvvBMwu0PUWDtBKJZ1mXt4Mgo63MHpYnKIzWz
+YuDaMKpvbl3iTFJlKPUkPlv+/uDccd0QYYvk4gbBrWVQDghV3ya9LqMCgYEA0gW6
+Cu5yRWodehCh0z8VtFfOGDkhZEav6B5mZvyDCk5f+zVeRlsTJwY4BsgnoMUJ+SjQ
+iQwQX3FbWrwcyYPOIA+ja6Hisgb9p/f+hxsQOOhN9nFsk2MNIHkwrMRcE8pj7pc1
+uBoYqpdX8blEs8wkJI+bTI3/SIZw6vjbogSqbLECgYEAhXuQho9byoXN0p3+2ude
+8e+sBJPbzEuH/iM2MkIc2ueNjZOfTO8Sti6VWfK2UisnlQjtbjg5kd67Vdvy+pqP
+Ju/ACvNVc5TmIo8V1cglmYVfaLBtP1DCcTOoA4ko196Hi8QUUIvat14lu+pKlIHh
+Q0xQa41kLhNbvaszegWVyLsCgYEAxhuGySbw/U9CbNDhhL1eANZOXoUNXWRcK6z5
+VS3dgcw6N2C5A86G+2mfUa5dywXyCWgZhRyvGQh5btZApUlCFvYJZc63Ysy7WkTQ
+f6rkm3ltiQimrURirn4CjwVOAZEIwJc7oeRj3g6Scz4acysd8KrRh93trwC55LtH
+mcWi6JECgYAlqCQvaAnvaWpR0RX7m/UMpqWOVgIperGR7hrN3d04RaWG4yv1+66T
+xANNBA8aDxhFwXjAKev4iOE/rp8SEjYXh3lbKmx+p9dk8REUdIFqoClX9tqctW9g
+AkDF34S0mSE4T34zhs2+InfohJa6ojsuiNJSQMBPBxfr6wV2C+UWMQ==
+-----END RSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/rootCA.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/rootCA.pem
new file mode 100644
index 000000000..ef73d001b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/rootCA.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDfzCCAmegAwIBAgIJAIhDKcvC6xWaMA0GCSqGSIb3DQEBCwUAMFYxCzAJBgNV
+BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQxDzANBgNVBAMMBnJvb3RDQTAeFw0xNTA3MDIxMzE1MTFa
+Fw0zNTA3MDIxMzE1MTFaMFYxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0
+YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxDzANBgNVBAMM
+BnJvb3RDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMDxa3eIrDXf
++3NTL5KAL3QWMk31ECBvbDqO0dxr4S4+wwQPv5vEyRLR5AtFl+UGzWY64eDiK9+i
+xOx70z08iv9edKCrpwNqFlteksR+W3mKadS8g16uQpJ0pSvnAMGp3NWxUwcPc/eO
+rRQ+JZ7lHubMkc2VDIBEIMP9F8+RPWMQHBRb+8OowYiyd/+c2/xqRERE94XsCCzU
+34Gjecn+HpuTFlO3l6u+Txql4vpGBeQNnCqkzLkeIaBsxKtZsEA5u/mIrf3fjbQL
+r35B4CE8yDNFSYQvkwbu/U/tT/O8m978JV5V1XXUxXs6QDUGn8SEtGyTDK83Wq+2
+QU0mIxy4ArMCAwEAAaNQME4wDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUhVaJNeKf
+ABrhhgMLS692Emszbf0wHwYDVR0jBBgwFoAUhVaJNeKfABrhhgMLS692Emszbf0w
+DQYJKoZIhvcNAQELBQADggEBADIKvyoK4rtPQ86I2lo5EDeAuzctXi2I3SZpnOe0
+mCCxJeZhWW0S7JuHvlfhEgXFBPEXzhS4HJLUlZUsWyiJ+3KcINMygaiF7MgIe6hZ
+WzpsMatS4mbNFElc89M+YryRFrQc9d1Uqjxhl3ms5MhDNcMP/PNwHa/wnIoqkpNI
+qtDoR741wcZ7bdr6XVdF8+pBjzbBPPRSf24x3bqavHBWcTjcSVcM/ZEXxeqH5SN0
+GbK2mQxrogX4UWjtl+DfYvl+ejpEcYNXKEmIabUUHtpG42544cuPtZizLW5bt/aT
+JBQfpPZpvf9MUlACxUONFOLQdZ8SXpSJ0e93iX2J2Z52mSQ=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/rootcert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/rootcert.pem
new file mode 100644
index 000000000..2b90ddb3e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/rootcert.pem
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC8TCCAdmgAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNDIyMjkwNVoYDzIxMTYwMTE1MjIyOTA1WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv5oV1s3N
+us7SINg7omu5AxueEgK97mh5PU3hgZpliSFaESmL2qLGeP609oXs/68XDXVW4utU
+LCOjLh0np+5Xy3i3GRDXgBZ72QDe23WqqQqqaBlQVVm1WxG+amRtZJEWdSIsiFBt
+k+8dBElHh2WQDhDOWqHGHQarQgJPxGB97MRhMSlbTwK1T5KAWOlqi5mJW5L6vNrQ
+7Tra/YceH70fU0fJYOXhBxM92NwD1bbVd9GPYFSqrdrVj19bvo63XsxZduex5QHr
+RkWqT5w5mgAHaEgCqWrS/64q9TR9UEwrB8kiZZg3k9/im+zBwEULTZu0r8oMEkpj
+bTlXLmt8EMBqxwIDAQABo1AwTjAdBgNVHQ4EFgQUcH8uroNoWZgEIyrN6z4XzSTd
+AUkwHwYDVR0jBBgwFoAUcH8uroNoWZgEIyrN6z4XzSTdAUkwDAYDVR0TBAUwAwEB
+/zANBgkqhkiG9w0BAQsFAAOCAQEAuiLq2lhcOJHrwUP0txbHk2vy6rmGTPxqmcCo
+CUQFZ3KrvUQM+rtRqqQ0+LzU4wSTFogBz9KSMfT03gPegY3b/7L2TOaMmUFRzTdd
+c9PNT0lP8V3pNQrxp0IjKir791QkGe2Ux45iMKf/SXpeTWASp4zeMiD6/LXFzzaK
+BfNS5IrIWRDev41lFasDzudK5/kmVaMvDOFyW51KkKkqb64VS4UA81JIEzClvz+3
+Vp3k1AXup5+XnTvhqu2nRhrLpJR5w8OXQpcn6qjKlVc2BXtb3xwci1/ibHlZy3CZ
+n70e2NYihU5yYKccReP+fjLgVFsuhsDs/0hRML1u9bLp9nUbYA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/rootkey.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/rootkey.pem
new file mode 100644
index 000000000..d85c96f89
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/rootkey.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC/mhXWzc26ztIg
+2Duia7kDG54SAr3uaHk9TeGBmmWJIVoRKYvaosZ4/rT2hez/rxcNdVbi61QsI6Mu
+HSen7lfLeLcZENeAFnvZAN7bdaqpCqpoGVBVWbVbEb5qZG1kkRZ1IiyIUG2T7x0E
+SUeHZZAOEM5aocYdBqtCAk/EYH3sxGExKVtPArVPkoBY6WqLmYlbkvq82tDtOtr9
+hx4fvR9TR8lg5eEHEz3Y3APVttV30Y9gVKqt2tWPX1u+jrdezFl257HlAetGRapP
+nDmaAAdoSAKpatL/rir1NH1QTCsHySJlmDeT3+Kb7MHARQtNm7SvygwSSmNtOVcu
+a3wQwGrHAgMBAAECggEBAL4rWle8JuCuHGNbGz1nO9d41tg7fnYdnZAaN6OiMfr8
+bl+wY84aV3GKJOS2InfYOcIy340UU5QHvxOq/kwwRVV/uAOZ8rqAFmZY9djOnhdv
+rZjq3xAHnPgJ0XvZt7XkR2z1AUw+v7Pf1WYGsYcSZ/t99MKB5Je0odA/aRqZRwLy
+YflbsnAJtxdJ6fsiVCSJcU76V8sxfiCimw6ppLMEp3zCjveQ5Lv0eVoL2zNYeh+l
+GiSwqTqaR+WJekkDiXRd9KYI19drf7OkTII1DtOd6bgvKX3zv2lNiere4J4k7cAP
+rW6fBFgtSq2oklTpWUlXRH7XQAgDtDvldXdlKaj96dkCgYEA8KPSu5ywg8pjCofE
+nLtJTfVyD2g9tgNLj9dI3kuSniZU51kOtk5rZZwL0S8piGczL908aV9DIWdXWsND
+5hlXquKUTSjxPYEzZvaN+tvf9e0AcY/D/UaK0mKPjEbh7vg6pS77aZZz2EL2inOs
+dam8famOOC9RUkxH5JWa3UV4UhsCgYEAy9T0wPQctjuvDkZQTqKEKsHrmrgY2PXT
+Re8DDGI8hxjYb8l+NoFQ7eiwTHir/DULupxQoBBUQtS+idQzUu02tzLMnGcjHNwh
+Tu+vZ4xlVnXxfgIRjDKkfQjiAC5SLzoNO9Jn8g4eS/1mEPXhQ0TXIsFonZDypp/n
+RMp21DkvdMUCgYAIMgwjR5rbYjEtUqJnlBlTBmD0FWDEqigQpgxdRcWgjT2nA2l0
+3AbcVwwv+6M2eg1MPASqsgvfP13CQZQ2afaKY10Zo6NTrOrLPupm+MYP4hp5w6Ox
+JI3lzGWHKYLYWKvmpEr7tZwMaXtsC7R77WP2A6hMUZA7dU2dg1ra3lrSsQKBgQDA
+sPIsUtmtwOBtqzUSEXrGfQqA+larDEGNVDVaiKfVwzwg+aeyWS+rqRS5Rj64L2GG
+KW3i020EvN/fplZap9vY9lIN7UZ5avSmDdqRFl1ajiccy1HRarKrbTFRoHibItMN
+4YvYfVZQ2h2aHQe2Myb6OULv6e4qbPIRyyDo4aKmTQKBgQCadq2JfICFIP9Q1aQn
+93oD7Z4WcYs+KsLYO+/uJxWMrn0/gv90cGrSfstJqDOHnRq4WKUcgK9ErxaE4LkW
+sD0mBhRM3SMxnRJZRO+6roRdehtjHkvzKu75KjcsuwefoMs2sFa4CLQ1YU2vO3Tx
+dgzpnKS2bH/i5yLwhelRfddZ6Q==
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/roots.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/roots.pem
new file mode 100644
index 000000000..0bc69127d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/roots.pem
@@ -0,0 +1,42 @@
+-----BEGIN CERTIFICATE-----
+MIIDgDCCAmigAwIBAgIJANnoWlLlEsTgMA0GCSqGSIb3DQEBCwUAMFYxCzAJBgNV
+BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQxDzANBgNVBAMMBnJvb3RDQTAeFw0xNTA3MDIxMzE3MDVa
+Fw0zNTA3MDIxMzE3MDVaMFcxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0
+YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMT
+B2ludGVyQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7s0ejvpQO
+nvfwD+e4R+9WQovtrsqOTw8khiREqi5JlmAFbpDEFam18npRkt6gOcGMnjuFzuz6
+iEuQmeeyh0BqWAwpMgWMMteEzLOAaqkEl//J2+WgRbA/8pmwHfbPW/d+f3bp64Fo
+D1hQAenBzXmLxVohEQ9BA+xEDRkL/cA3Y+k/O1C9ORhSQrJNsB9aE3zKbFHd9mOm
+H4aNSsF8On3SqlRVOCQine5c6ACSd0HUEjYy9aObqY47ySNULbzVq5y6VOjMs0W+
+2G/XqrcVkxzf9bVqyVBrrAJrnb35/y/iK0zWgJBP+HXhwr5mMTvNuEirBeVYuz+6
+hUerUbuJhr0FAgMBAAGjUDBOMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFBj61iO5
+j11dE30+j6iRx9lhwBcuMB8GA1UdIwQYMBaAFIVWiTXinwAa4YYDC0uvdhJrM239
+MA0GCSqGSIb3DQEBCwUAA4IBAQDAU0MvL/yZpmibhxUsoSsa97UJbejn5IbxpPzZ
+4WHw8lsoUGs12ZHzQJ9LxkZVeuccFXy9yFEHW56GTlkBmD2qrddlmQCfQ3m8jtZ9
+Hh5feKAyrqfmfsWF5QPjAmdj/MFdq+yMJVosDftkmUmaBHjzbvbcq1sWh/6drH8U
+7pdYRpfeEY8dHSU6FHwVN/H8VaBB7vYYc2wXwtk8On7z2ocIVHn9RPkcLwmwJjb/
+e4jmcYiyZev22KXQudeHc4w6crWiEFkVspomn5PqDmza3rkdB3baXFVZ6sd23ufU
+wjkiKKtwRBwU+5tCCagQZoeQ5dZXQThkiH2XEIOCOLxyD/tb
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDhzCCAm+gAwIBAgIJAJTed6XmFiu/MA0GCSqGSIb3DQEBCwUAMFoxCzAJBgNV
+BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQxEzARBgNVBAMMCnN1YmludGVyQ0EwHhcNMTUwNzAyMTMy
+MTU4WhcNMzUwNzAyMTMyMTU4WjBaMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29t
+ZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRMwEQYD
+VQQDDApzdWJpbnRlckNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
+/zQjvhbU7RWDsRaEkVUBZWR/PqZ49GoE9p3OyRN4pkt1c1yb2ARVkYZP5e9gHb04
+wPVz2+FYy+2mNkl+uAZbcK5w5fWO3WJIEn57he4MkWu3ew1nJeSv3na8gyOoCheG
+64kWVbA2YL92mR7QoSCo4SP7RmykLrwj6TlDxqgH6DxKSD/CpdCHE3DKAzAiri3G
+Vc90OJAszYHlje4/maVIOayGROVET3xa5cbtRJl8IBgmqhMywtz4hhY/XZTvdEn2
+90aL857Hk7JjogA7mLKi07yKzknMxHV+k6JX7xJEttkcNQRFHONWZG1T4mRY1Drh
+6VbJGb+0GNIldNLQqigkfwIDAQABo1AwTjAMBgNVHRMEBTADAQH/MB0GA1UdDgQW
+BBTpZ30QdMGarrhMPwk+HHAV3R8aTzAfBgNVHSMEGDAWgBTpZ30QdMGarrhMPwk+
+HHAV3R8aTzANBgkqhkiG9w0BAQsFAAOCAQEAF8UAMtV1DClUWRw1h+THdAhjeo8S
+9BOp6QphtlYuc9o+tQri5m+WqbyUZKIBEtumNhFb7QI1e4hO64y1kKbSs2AjWcJ2
+QxAyGiMM3wl2UfxPohDtgNhm0GFgQ1tUTeSnW3kAom9NqI7U/2lPpLh4rrFYTepR
+wy0FV3NpRuHPtJE0VfqYnwWiTRdCJ7w1XzknKOUSHP/hRbyJVlwQp3VEQ9SIOYU6
+C+QEVGIgQiST6MRlCvoNP43guaRtrMuBZJaHKy/hLPvkdRpXHoUeKQFDuH77sZsF
+sBv3EHNKoBvpSpSJndZN6UcH7Z1yn41Y6AnO4u492jiRAjQpP9+Nf/x1eg==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca+anyEKU.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca+anyEKU.pem
new file mode 100644
index 000000000..459a4dc5f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca+anyEKU.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDATCCAemgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNlMGMwHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wEwYD
+VR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAB4hlnzu/V80J5+R
+rT57HXi0ufIjXLTC4zEghc/xL3V5vKst2dDPTKJ6SqG6PWSlVg1nJJbjekR3kH+G
+knFp8wMIDp4EZDt1vU2jHtEyLTEmuFPY/MiR2fnLtX4jlPk5EpuMCA7n69lBAD3I
+rlyQxv/DVfBSxkXJYFKZCTghxYHsP7TrHvmI4qQ3Of0OXeH0vn7j8mqA8xBERUQl
+ZCRUQWZoHd5zJX1ELv0iBaB7pQbV4f3ILhEBfWE04m8GxkbRNdEi4+i5BIvjSqw7
+SBKP9nn4g4+CfKFex6cHGafkAb+gBCoUWMofXJCNr1b7FBc6Zi6xnBMHwhUnhEdj
+LGCBSw0wCDAGBgRVHSUA
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca+clientAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca+clientAuth.pem
new file mode 100644
index 000000000..3807805f7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca+clientAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDATCCAemgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNlMGMwHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wEwYD
+VR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAB4hlnzu/V80J5+R
+rT57HXi0ufIjXLTC4zEghc/xL3V5vKst2dDPTKJ6SqG6PWSlVg1nJJbjekR3kH+G
+knFp8wMIDp4EZDt1vU2jHtEyLTEmuFPY/MiR2fnLtX4jlPk5EpuMCA7n69lBAD3I
+rlyQxv/DVfBSxkXJYFKZCTghxYHsP7TrHvmI4qQ3Of0OXeH0vn7j8mqA8xBERUQl
+ZCRUQWZoHd5zJX1ELv0iBaB7pQbV4f3ILhEBfWE04m8GxkbRNdEi4+i5BIvjSqw7
+SBKP9nn4g4+CfKFex6cHGafkAb+gBCoUWMofXJCNr1b7FBc6Zi6xnBMHwhUnhEdj
+LGCBSw0wDDAKBggrBgEFBQcDAg==
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca+serverAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca+serverAuth.pem
new file mode 100644
index 000000000..952d288f6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca+serverAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDATCCAemgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNlMGMwHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wEwYD
+VR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAB4hlnzu/V80J5+R
+rT57HXi0ufIjXLTC4zEghc/xL3V5vKst2dDPTKJ6SqG6PWSlVg1nJJbjekR3kH+G
+knFp8wMIDp4EZDt1vU2jHtEyLTEmuFPY/MiR2fnLtX4jlPk5EpuMCA7n69lBAD3I
+rlyQxv/DVfBSxkXJYFKZCTghxYHsP7TrHvmI4qQ3Of0OXeH0vn7j8mqA8xBERUQl
+ZCRUQWZoHd5zJX1ELv0iBaB7pQbV4f3ILhEBfWE04m8GxkbRNdEi4+i5BIvjSqw7
+SBKP9nn4g4+CfKFex6cHGafkAb+gBCoUWMofXJCNr1b7FBc6Zi6xnBMHwhUnhEdj
+LGCBSw0wDDAKBggrBgEFBQcDAQ==
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca-anyEKU.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca-anyEKU.pem
new file mode 100644
index 000000000..a43c0211d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca-anyEKU.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDATCCAemgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNlMGMwHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wEwYD
+VR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAB4hlnzu/V80J5+R
+rT57HXi0ufIjXLTC4zEghc/xL3V5vKst2dDPTKJ6SqG6PWSlVg1nJJbjekR3kH+G
+knFp8wMIDp4EZDt1vU2jHtEyLTEmuFPY/MiR2fnLtX4jlPk5EpuMCA7n69lBAD3I
+rlyQxv/DVfBSxkXJYFKZCTghxYHsP7TrHvmI4qQ3Of0OXeH0vn7j8mqA8xBERUQl
+ZCRUQWZoHd5zJX1ELv0iBaB7pQbV4f3ILhEBfWE04m8GxkbRNdEi4+i5BIvjSqw7
+SBKP9nn4g4+CfKFex6cHGafkAb+gBCoUWMofXJCNr1b7FBc6Zi6xnBMHwhUnhEdj
+LGCBSw0wCKAGBgRVHSUA
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca-cert.pem
new file mode 100644
index 000000000..6b800b630
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca-cert.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDATCCAemgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNlMGMwHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wEwYD
+VR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAB4hlnzu/V80J5+R
+rT57HXi0ufIjXLTC4zEghc/xL3V5vKst2dDPTKJ6SqG6PWSlVg1nJJbjekR3kH+G
+knFp8wMIDp4EZDt1vU2jHtEyLTEmuFPY/MiR2fnLtX4jlPk5EpuMCA7n69lBAD3I
+rlyQxv/DVfBSxkXJYFKZCTghxYHsP7TrHvmI4qQ3Of0OXeH0vn7j8mqA8xBERUQl
+ZCRUQWZoHd5zJX1ELv0iBaB7pQbV4f3ILhEBfWE04m8GxkbRNdEi4+i5BIvjSqw7
+SBKP9nn4g4+CfKFex6cHGafkAb+gBCoUWMofXJCNr1b7FBc6Zi6xnBMHwhUnhEdj
+LGCBSw0=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca-clientAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca-clientAuth.pem
new file mode 100644
index 000000000..62a98ff34
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca-clientAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDATCCAemgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNlMGMwHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wEwYD
+VR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAB4hlnzu/V80J5+R
+rT57HXi0ufIjXLTC4zEghc/xL3V5vKst2dDPTKJ6SqG6PWSlVg1nJJbjekR3kH+G
+knFp8wMIDp4EZDt1vU2jHtEyLTEmuFPY/MiR2fnLtX4jlPk5EpuMCA7n69lBAD3I
+rlyQxv/DVfBSxkXJYFKZCTghxYHsP7TrHvmI4qQ3Of0OXeH0vn7j8mqA8xBERUQl
+ZCRUQWZoHd5zJX1ELv0iBaB7pQbV4f3ILhEBfWE04m8GxkbRNdEi4+i5BIvjSqw7
+SBKP9nn4g4+CfKFex6cHGafkAb+gBCoUWMofXJCNr1b7FBc6Zi6xnBMHwhUnhEdj
+LGCBSw0wDKAKBggrBgEFBQcDAg==
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca-serverAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca-serverAuth.pem
new file mode 100644
index 000000000..062087439
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sca-serverAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDATCCAemgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaNlMGMwHQYDVR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8G
+A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wEwYD
+VR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAB4hlnzu/V80J5+R
+rT57HXi0ufIjXLTC4zEghc/xL3V5vKst2dDPTKJ6SqG6PWSlVg1nJJbjekR3kH+G
+knFp8wMIDp4EZDt1vU2jHtEyLTEmuFPY/MiR2fnLtX4jlPk5EpuMCA7n69lBAD3I
+rlyQxv/DVfBSxkXJYFKZCTghxYHsP7TrHvmI4qQ3Of0OXeH0vn7j8mqA8xBERUQl
+ZCRUQWZoHd5zJX1ELv0iBaB7pQbV4f3ILhEBfWE04m8GxkbRNdEi4+i5BIvjSqw7
+SBKP9nn4g4+CfKFex6cHGafkAb+gBCoUWMofXJCNr1b7FBc6Zi6xnBMHwhUnhEdj
+LGCBSw0wDKAKBggrBgEFBQcDAQ==
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-cecdsa-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-cecdsa-cert.pem
new file mode 100644
index 000000000..6446bbf08
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-cecdsa-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICSDCCATCgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE3MDIyNDE3MjgxOFoYDzIxMTcwMjI1MTcyODE4WjAfMR0wGwYDVQQD
+DBRFQ0RTQSBjb21wcmVzc2VkIGtleTA5MBMGByqGSM49AgEGCCqGSM49AwEHAyIA
+AuI7NNxE483tJyIKT6KOQM5Zlfrigh12BEcHxnzpudgVo4GEMIGBMB0GA1UdDgQW
+BBRYM6sJF9MGP6q5g0lxnwQzVozv2DAfBgNVHSMEGDAWgBRwfy6ug2hZmAQjKs3r
+PhfNJN0BSTAJBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMB8GA1UdEQQY
+MBaCFEVDRFNBIGNvbXByZXNzZWQga2V5MA0GCSqGSIb3DQEBCwUAA4IBAQCEmLt+
+eW36thd16Coscs4LYV8aFS6cyCw1dXUOAsDn8SH6zFkhidahgGY4cXdYeNpffYWZ
+yL1ydfL5ce76Ye4liLY0N/3tvsMTdyvtMxzVrC27W7yxfh65tPGhQtZNbzWZPkUr
+pBQ5w8pN9go/B/tCmflffzAXz5XOI2dRGxENfHV/6KTjn+ojbgWL2JmkbBuTSk7w
+18s5ae+T7rUFPTxlN9vFoFyCf+mjHArRhIHBR1AiZ9/Q1XN44u7EWYbKkiJgki1Q
+VBd4jvGz3GsH2DWMm1B1VqO0vddRNFDy7DtMO36VRz0k0k2ysOw1Y82XAniPboS7
+jC8uUGdh3iKWaOb5
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-cecdsa-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-cecdsa-key.pem
new file mode 100644
index 000000000..ae157dfe7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-cecdsa-key.pem
@@ -0,0 +1,4 @@
+-----BEGIN EC PRIVATE KEY-----
+MFcCAQEEIEyOTc8v2AjaRLgE6+oxbbmQOVbNec21ziVORF5fiQHuoAoGCCqGSM49
+AwEHoSQDIgAC4js03ETjze0nIgpPoo5AzlmV+uKCHXYERwfGfOm52BU=
+-----END EC PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-dsa-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-dsa-cert.pem
new file mode 100644
index 000000000..0ea189492
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-dsa-cert.pem
@@ -0,0 +1,31 @@
+-----BEGIN CERTIFICATE-----
+MIIFQzCCBCugAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE3MDIxNzE0MDgxOVoYDzIxMTcwMjE4MTQwODE5WjAVMRMwEQYDVQQD
+DApTZXJ2ZXIgRFNBMIIDSDCCAjoGByqGSM44BAEwggItAoIBAQD+P3LcpaA+AYu9
+M1gSsHi8fixl7VPCsKK96oaH7/ZJqvOD0TdASkn+4Td8SPvkc+KG2bBbmp39FCxG
+pa4d8CRLKVbIHAFtaKHIDFuMlPuFnsiaU0uWN/s3lROhAHWrTiODhehFM+NiPrAO
+JmtXQURBoeQ07t4HoyKz7sUyTF2qotw1JDvBRb6JXw+13Z2a1iZGJopLZN3Ricvo
+Hee3rYEsM5AHMS3cntYX2NhQUHjiQ451iL2OkFJtVeaUoX5JV6KYSzz4lzNlYwJf
+F/Tzac/+l1aFA1NDbNFcQ1UC0JXscKeT/J2Wo8kRwpx042UKaayw5jkOv3GndgKC
+OaCe29UrAiEAh8hMJV/kKTLolNr6kV87KV8eTaJfrnSRS2E3ToOhWH0CggEBAOd/
+YKl8svYqvJtThaOsmVETeXwEvz/MLqpj4hZr029Oqps7z6OmeZ2er7aldxC5+BKM
+xCfPlhFo0iQ9XITp+J7UqS3qrRZqAnxMjd6VmEGXKWOoeAc0CpEzR1QNkjKodzgs
+tQj5oYbiiPG0SgCtBV4I1b/IuKzkjcLxQaF+8Rob/lzLBwA6pFjZNa6FcDjthmtH
+2pC+zI760sv05rbZGcXDj8G0SLsvbkrfiRIn/8LkgBpoTWpKfa8BmvYtt9WI/CYk
+beQYIwM9sXUPwRSD1VONSg5bXTW3Sxmzy3Yfy9RYt+suMKzi78oSv81e5BoL1D2H
+tfxSAFQbiJU3kipxvhsDggEGAAKCAQEArDidnkCegHb/itBTFeyGsebv+I8Z93V3
+jGcKPOs3s1wqB/+HRL5ERlhQOq/lfYPigUFKhfC8tlCVAM+MtUDqXCzqAkomw0yX
+8oVkp9plswxHKlqjzKr6PWLOJGp/NDBAL1ZcUzHB1omvmkUHy9pYiapVVNUuUdL2
+Z5EvDze8jQoiR0k9zgMKiH+MyCfV0tLo8W8djFJPlIM9Ypa7DH4fazcEfRuzq1jv
+K/uX4+HWmg3Nswdh5eysb++RqtJSUBtGT3tAQY59WjBf2nXMG0nkZGkT7TCJ6icv
+NdbSl1AlAGMV/nZN3PFsFH17L8uMUYS7V5PWiqQTxe5COHqpGumo9KN5MHcwHQYD
+VR0OBBYEFDrWNm+9we7UIIpUiKJ8aOrCviIUMB8GA1UdIwQYMBaAFHB/Lq6DaFmY
+BCMqzes+F80k3QFJMAkGA1UdEwQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwFQYD
+VR0RBA4wDIIKU2VydmVyIERTQTANBgkqhkiG9w0BAQsFAAOCAQEAsKn2puy5BLfg
+eVnxJiDOxYeHHB82GBZjzG4kmroWqP/yKGLQa0CWw/GNcP2zVNKZ12fzQJRRhiHd
+MohKKSHJlmKwP/6qXhRConlIVzVHdAQHxIS6rr/hwctUpX1lFvxd7hUOnwyOlvvq
+Qu0R8OIYZVmCdQuoM+nFek25TxUI160/6H7UhY4t2Y0iry+QjQCBLw/yHb2a3iQE
+Ho84MDYGNWauDK/rohSRm/CzPSqfZaFyykwRRE47x4XOmtQPRZCIaHSA7LsNqJ42
+OJRAv3kePiW4XSWAbVJ8gRHRFg9wjrMV8zBL00durls1mZVNbh81I3Bdu62y0lY0
+L6LYw0U7GQ==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-dsa-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-dsa-key.pem
new file mode 100644
index 000000000..fdd1da299
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-dsa-key.pem
@@ -0,0 +1,15 @@
+-----BEGIN PRIVATE KEY-----
+MIICZQIBADCCAjoGByqGSM44BAEwggItAoIBAQD+P3LcpaA+AYu9M1gSsHi8fixl
+7VPCsKK96oaH7/ZJqvOD0TdASkn+4Td8SPvkc+KG2bBbmp39FCxGpa4d8CRLKVbI
+HAFtaKHIDFuMlPuFnsiaU0uWN/s3lROhAHWrTiODhehFM+NiPrAOJmtXQURBoeQ0
+7t4HoyKz7sUyTF2qotw1JDvBRb6JXw+13Z2a1iZGJopLZN3RicvoHee3rYEsM5AH
+MS3cntYX2NhQUHjiQ451iL2OkFJtVeaUoX5JV6KYSzz4lzNlYwJfF/Tzac/+l1aF
+A1NDbNFcQ1UC0JXscKeT/J2Wo8kRwpx042UKaayw5jkOv3GndgKCOaCe29UrAiEA
+h8hMJV/kKTLolNr6kV87KV8eTaJfrnSRS2E3ToOhWH0CggEBAOd/YKl8svYqvJtT
+haOsmVETeXwEvz/MLqpj4hZr029Oqps7z6OmeZ2er7aldxC5+BKMxCfPlhFo0iQ9
+XITp+J7UqS3qrRZqAnxMjd6VmEGXKWOoeAc0CpEzR1QNkjKodzgstQj5oYbiiPG0
+SgCtBV4I1b/IuKzkjcLxQaF+8Rob/lzLBwA6pFjZNa6FcDjthmtH2pC+zI760sv0
+5rbZGcXDj8G0SLsvbkrfiRIn/8LkgBpoTWpKfa8BmvYtt9WI/CYkbeQYIwM9sXUP
+wRSD1VONSg5bXTW3Sxmzy3Yfy9RYt+suMKzi78oSv81e5BoL1D2HtfxSAFQbiJU3
+kipxvhsEIgIgFadGQ61c3i/D01zXhSsKyE0/BerqJmTrrlVK1o0ZFu8=
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ecdsa-brainpoolP256r1-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ecdsa-brainpoolP256r1-cert.pem
new file mode 100644
index 000000000..bb41f9990
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ecdsa-brainpoolP256r1-cert.pem
@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE-----
+MIICgzCCAWugAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE4MTAyNDEzNDUwOFoYDzIxMTgxMDI1MTM0NTA4WjAsMSowKAYDVQQD
+DCFTZXJ2ZXIgRUNEU0EgYnJhaW5wb29sUDI1NnIxIGNlcnQwWjAUBgcqhkjOPQIB
+BgkrJAMDAggBAQcDQgAETYDLIgpvvoxSBJxB5apcNrTZ0vYpVyG18hDEOplqkyln
+W7kekN9a83WtIwPRoSwhczgFg/MhvLZ/BHQJW2SU3qOBkTCBjjAdBgNVHQ4EFgQU
+it8K0UIpDYE264JfNmQ/44H1WMUwHwYDVR0jBBgwFoAUcH8uroNoWZgEIyrN6z4X
+zSTdAUkwCQYDVR0TBAIwADATBgNVHSUEDDAKBggrBgEFBQcDATAsBgNVHREEJTAj
+giFTZXJ2ZXIgRUNEU0EgYnJhaW5wb29sUDI1NnIxIGNlcnQwDQYJKoZIhvcNAQEL
+BQADggEBAKCEUMQlB+M6crHe2zfGmQJnsEGzY4fJUFYdFfOM359dXR8Xs+JHF2XP
+0BHJ64BHLzy+3eoa9w/B+/i6OVJo3VhCoCChcP+gnGzQVQy5Maxq55DlsVdpellS
+Tml/BnLcqcZFAP63qEpcuZuC4CytZcHYCU+NLI/3JGzH1/xHxk4UgRTa2B7OhjXt
+Ptl3vLaSqJXEmVeCP0hibhhiszs0zR14fJqmVn0V5MKC7twmG8CBlW03ksLjzzvn
+m7WAy7q5WcFcAcrFR3zAPqcx4UQSS9FiwJ+OOZGqIasMk9i9zxqh0ic5M5ls7Qaf
+roudyLLkkvDFkcb88RwYGKrdVFGDgF0=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ecdsa-brainpoolP256r1-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ecdsa-brainpoolP256r1-key.pem
new file mode 100644
index 000000000..c9d233fa5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ecdsa-brainpoolP256r1-key.pem
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGIAgEAMBQGByqGSM49AgEGCSskAwMCCAEBBwRtMGsCAQEEIKZSRhbD6lGhKbIm
+5JVgxnN8MHGB0whroUsSf0zmsAz+oUQDQgAETYDLIgpvvoxSBJxB5apcNrTZ0vYp
+VyG18hDEOplqkylnW7kekN9a83WtIwPRoSwhczgFg/MhvLZ/BHQJW2SU3g==
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ecdsa-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ecdsa-cert.pem
new file mode 100644
index 000000000..e61026b50
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ecdsa-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICYTCCAUmgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE3MDExMjE0NDUwMVoYDzIxMTcwMTEzMTQ0NTAxWjAcMRowGAYDVQQD
+DBFTZXJ2ZXIgRUNEU0EgY2VydDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOI7
+NNxE483tJyIKT6KOQM5Zlfrigh12BEcHxnzpudgVHYA4aL5D5JulYGFzL0LQ5Q55
+GpCub1V2j+AhyBMKPQqjgYAwfjAdBgNVHQ4EFgQUSDzlr0Ayx22BljPtY6YRLTes
+qgwwHwYDVR0jBBgwFoAUcH8uroNoWZgEIyrN6z4XzSTdAUkwCQYDVR0TBAIwADAT
+BgNVHSUEDDAKBggrBgEFBQcDATAcBgNVHREEFTATghFTZXJ2ZXIgRUNEU0EgY2Vy
+dDANBgkqhkiG9w0BAQsFAAOCAQEAOJDgr1hRNuxW1D93yDWFwP1o2KuaI0BMZVFS
+6rzzLThCo3FeS6X7DCrBP699PCYcKeyMDmQwg9mVMABSZzox2GBO3hoqtnUXjsK3
+Qxh+4O5EmIXX4v8szdSBP14O2c5krAk4lbVWxLHE78NAc8dL94VORndyTcmaXUTn
+FQeBaRJjXto3okPvwYlczPS9sq0AhuBh5hwsLOYwpLf6/loPLjl40iwPQ+iqQ1EV
+m0Sac3o+0qI0cKiz4nXgd4NkFvV3G8lwd0Um8KSS/EFuZbgJNKKD6+1+90sibM4a
+Y/JiO6weK/VTlqCLn7zV9LcDT4gU18UCn85UV1XlVYKXZlaXYQ==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ecdsa-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ecdsa-key.pem
new file mode 100644
index 000000000..b4d075db1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ecdsa-key.pem
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgTI5Nzy/YCNpEuATr
+6jFtuZA5Vs15zbXOJU5EXl+JAe6hRANCAATiOzTcROPN7SciCk+ijkDOWZX64oId
+dgRHB8Z86bnYFR2AOGi+Q+SbpWBhcy9C0OUOeRqQrm9Vdo/gIcgTCj0K
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ed25519-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ed25519-cert.pem
new file mode 100644
index 000000000..729ccfbd0
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ed25519-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICHTCCAQWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE3MDYxNDIzMzExOVoYDzIxMTcwNjE1MjMzMTE5WjASMRAwDgYDVQQD
+DAdFZDI1NTE5MCowBQYDK2VwAyEACkEMj+SRLjZSth3SIrG013cyYVN9frrVnfbN
+M2IqaT6jdjB0MB0GA1UdDgQWBBQqd22ipNHF0d+yJjFDgI/Jruq3rjAfBgNVHSME
+GDAWgBRwfy6ug2hZmAQjKs3rPhfNJN0BSTAJBgNVHRMEAjAAMBMGA1UdJQQMMAoG
+CCsGAQUFBwMBMBIGA1UdEQQLMAmCB0VkMjU1MTkwDQYJKoZIhvcNAQELBQADggEB
+AIdNMPRa2sgUW/qtCBWxmi0iVRoazl5pjU35cRl/ahBpI4pL5+fDVYuBzSOgEh7W
+6FUVix9mGvY9CK3ZkqrXCGRKeWnKrmdql5jrra5Qew43B+aZqa63639TGWqtm7Rk
+rWT14P7gma4K9Ea8eiXcT5NJ8sT7D2BOL0sL2alUmRT+k3YDUxiih7AiTkpo7f2Q
+x5l9f8qoRb6Skec+kuMQ4hIjBIe/3C+j4nqq9kDkJs8+VEaW7+7shSQzv0tnzBOl
+v5ty89x7LYAbGKvZNi8Z3814AWBWbYTskF0kW2/f6aZDpt239llYDazdErU1dEsS
+cc1gKHOG3zgz9wfih55M0dE=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ed25519-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ed25519-key.pem
new file mode 100644
index 000000000..f9f150e05
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ed25519-key.pem
@@ -0,0 +1,3 @@
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwBQYDK2VwBCIEINa5/E1IzuSLg1rwoHxl1VV7BdcnmMeul9pvsvzKorjm
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ed448-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ed448-cert.pem
new file mode 100644
index 000000000..ba050077c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ed448-cert.pem
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlTCCARWgAwIBAgIBAjAFBgMrZXEwFTETMBEGA1UEAwwKUm9vdCBFZDQ0ODAg
+Fw0yMDAyMDkxMzMwMjJaGA8yMTIwMDIxMDEzMzAyMlowEDEOMAwGA1UEAwwFZWQ0
+NDgwQzAFBgMrZXEDOgAQYnGJYRtbNwKBuQRZmN6+dJSc40KBEeM8LonhHkE7ysSx
+FdOrxoe/VFjuskORcapsbzNRf18O0QCjdDByMB0GA1UdDgQWBBQMGtS+Jt6cAPPi
+BCeyv+Is64ySBzAfBgNVHSMEGDAWgBRWDZpD7KFVGE65bWXX2O2DF9OCPzAJBgNV
+HRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMBAGA1UdEQQJMAeCBWVkNDQ4MAUG
+AytlcQNzABLGZiaU6JPKa9eQ/VsE4HN9XjSogZBKIEHEWwyxrtGvjWiZ5MOnNJmQ
+7mX+Y2eJzfZ6MGHc63IlgPdIPFPzInnnAugw297kUNoLTg9SsGYeVGLbI3PNjwFL
+mQ3508f1Jobb8qZnf8YFUZrd85aurgoKAA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ed448-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ed448-key.pem
new file mode 100644
index 000000000..25a750fec
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-ed448-key.pem
@@ -0,0 +1,4 @@
+-----BEGIN PRIVATE KEY-----
+MEcCAQAwBQYDK2VxBDsEOTiHqANC9pFHbs8VAeqZ52cwKi0jPTSM5GjsKW4vbgG6
+BMFSdURqGj2FD02H7xsyrR20pIXI1GbE+A==
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-pss-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-pss-cert.pem
new file mode 100644
index 000000000..5777c4d29
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-pss-cert.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDGzCCAgOgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE3MDkxNDEyNTg0MVoYDzIxMTcwOTE1MTI1ODQxWjAVMRMwEQYDVQQD
+DApSU0FTU0EtUFNTMIIBIDALBgkqhkiG9w0BAQoDggEPADCCAQoCggEBAJzIk36B
+urRLuRWsMHUzcmoNDYEZw4VMN0ZNVGUYj7RJtCP6wKBcQEkHu667J3XGxUm3RHT8
+EBv2R+XKcVX+VOc8SSb5+k1/QCHXF1qamNFan7wtYjgbAXiA0/Wg9ydlhfwj5gp4
+n5168Lc/DnkFBdyMSylNOESUvtKyu811l+ecakeidUbUnLGF2XbqyK1WKp18t1n1
+rJYi/+oMm8xoJPMtWjoC2zit3wT1k8+9lClxWZFhLmDFy0lmT8FAVvMOk4Y/E+2e
+Q0sRrV+REsfyFEoytmoGKlwO9z2gK5n3WaJx+Y15EykMG6CsjBp84iCiFkd6LOND
+nXQBBLAvmg1Ci8UCAwEAAaN5MHcwHQYDVR0OBBYEFG+1oaEnl3Bs6E2vHFdWwUY0
+qdlhMB8GA1UdIwQYMBaAFHB/Lq6DaFmYBCMqzes+F80k3QFJMAkGA1UdEwQCMAAw
+EwYDVR0lBAwwCgYIKwYBBQUHAwEwFQYDVR0RBA4wDIIKUlNBU1NBLVBTUzANBgkq
+hkiG9w0BAQsFAAOCAQEAh1MrKKwdpsjT7Q+gfyAXQRgwBz15m08eZip7rznzieE0
++PuXaGQT9jOEmSKTtEHd07mJ0YMijdGvItrZaodUV0rscdCFd4lUe4uctirjVMIU
+OKALZ7HsobWvKWnob2GRQJ/vTB7plUeclFhX1FskiG7kh50cMeeL2Oy7Oy4csf7e
+2ab5q1dYri1Yk7HSi/XXGwomvWz8jGqUS9UGJrQQENrogg5Ue315u32lbR+N7gTB
+7w3KirvpP+wzJgiTqMJ9BuGo8vSoXA3qrmBaYS/FQ7x4gQ86Jb0oLRuTiyniWC/v
+A4exY19iM/j6/IQWM4IY7iuNAU3DMGdXOHkuxryizA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-pss-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-pss-key.pem
new file mode 100644
index 000000000..6b2d8cc7a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-pss-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADALBgkqhkiG9w0BAQoEggSoMIIEpAIBAAKCAQEAnMiTfoG6tEu5Faww
+dTNyag0NgRnDhUw3Rk1UZRiPtEm0I/rAoFxASQe7rrsndcbFSbdEdPwQG/ZH5cpx
+Vf5U5zxJJvn6TX9AIdcXWpqY0VqfvC1iOBsBeIDT9aD3J2WF/CPmCnifnXrwtz8O
+eQUF3IxLKU04RJS+0rK7zXWX55xqR6J1RtScsYXZdurIrVYqnXy3WfWsliL/6gyb
+zGgk8y1aOgLbOK3fBPWTz72UKXFZkWEuYMXLSWZPwUBW8w6Thj8T7Z5DSxGtX5ES
+x/IUSjK2agYqXA73PaArmfdZonH5jXkTKQwboKyMGnziIKIWR3os40OddAEEsC+a
+DUKLxQIDAQABAoIBAAGf1l9eKrgJfM5rrUjZkprkrbojsTHlW0FANdqiSYLdrJ8e
+zvYaXpQjH1+tEriWqZ6c5nmrzuLrR01rLodsjiajKkLcHirFYb24A8btiR3KKZOC
+iNz58qbz9r45v7XJyHyXRp/fJhA0oN/VKGo6khf54CF6alXTkLKQJX/4cu10XkJd
+lknXMiQsGBzt7WezRzqzbJsMSjhSPBowmapDRYqALIlINY96f3QUALiKh0WwkbEB
+MU71Hharv9+jwpu58NcGXHvNfqQYUU6QTXiOKTxt71VChO6lefazaTrCYan9Zpx/
+6rofVqkpZUebNI1gVa/FbzGaMhQYlMWEhvk+sZUCgYEAzftGwnoHbMoyXbw30bAJ
+MMEvc892o2qJPPnHJMwKIHDVEnY026c/TO5FSGhKcv9CPKe6bcdA6CtPjSGA484z
+ErLo9GfWigN4jVkn3eYKUKFn0+tQ4HKYoPZrBApQ9pm25/KpPSIsVJ6iuEN72CZU
+MM1y8NgCF2IlAvi04org8e8CgYEAwtrufdryJHQ+o69fhCMfYe1mCCuGeaueIEfa
+ccZUSfe1A7p5mqSjYTw4GW6E64uELUkVGkZpuVj3Qwr2BmCY7u4Hgp5Lg+WWVZt7
+qvHhDnb19ITL1nrXAKBr2XPlkUSnPJ+Dl20F8ErIb4zsnq7xH+AoDIZldh/wCflY
+mW7mwYsCgYEAxKs8vocg+8B7IoCJk05PGBv8IMlfb1xTOMMMX5fpu1vANWZjxa4E
+hIGj6SSaoP4T0jIbkKGE2agwxoHMvLWukhX80w8qCpCR0/PiWr4/7wiNSAwQJp2E
+GXvuZecrsqjFuOU6rcIpLYphtynH33OJQyeGrWqxZH4y9IlevEb5zEUCgYEAudis
+PVeVOdWxZNdAp7wEE5ekiEhTMzrPT4SYwYljHUVn3Y1+rFM5DOWtr/vsROhFghfB
+S9U6wzAqbURIER8S3lgiy58E8WEJeM8aLZoTiINH5Ra/f+qbpBpdowJaQ6qSQ0z0
+6nluf5gkAdkMWfELQ9a8++03WmntvOWYbocLCi8CgYASTpxnjl62YY201mIkVAKC
+b6XK+RQS2ZohTintLqzePwKR3XJrlwAz9smyMqUTFklkmrc6XQABVfnpZOnOZEdV
+kzsvLmQin9a9Mr6n1WYz9YQDuS2wY0NAbCzy61YYXO9IdNyQTWolWLmyzwpUXP/D
+T28vNzPfGv4WW1OjDtFmQg==
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-pss-restrict-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-pss-restrict-cert.pem
new file mode 100644
index 000000000..273363808
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-pss-restrict-cert.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDYjCCAkqgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE5MDgwODEwNDMxMFoYDzIxMTkwODA5MTA0MzEwWjAUMRIwEAYDVQQD
+DAlsb2NhbGhvc3QwggFSMD0GCSqGSIb3DQEBCjAwoA0wCwYJYIZIAWUDBAIBoRow
+GAYJKoZIhvcNAQEIMAsGCWCGSAFlAwQCAaIDAgEgA4IBDwAwggEKAoIBAQDDlygk
+sUEAajpdVquo9XIAyTd9ZJ+55hNmhBfhn3lHz3ryPD+0XlgCE9qsKwfR7iYaqmnN
+ilQnsxWpMGXAgOlC1+w5zh8qHvrI5wX+A6U9N8leIOSgFuFNP0FMMG7I677QzRxG
+FqKX1o4V73JWqnHCfnfHRyZY9xM0tYbJKNbRO7Hy4jKBPl3ptPHUoTltr4WYTOpg
+stcEamdiiif+0U4bQvVltNg9pzFEjkAktTUGn92W5CgLnsbPXxBo6a/kUlHcgmhY
+bpOXEjCPufZLgsQo8iF2Bq8eWMEsByjr0chQjzrfZAUVtD8Hmh2uMVAPQFAHUkaL
+j2tHukL+s9tAaWKNAgMBAAGjgY4wgYswHQYDVR0OBBYEFLqlLFaNrS8hbX6voiGi
+AfMYfsivMB8GA1UdIwQYMBaAFHB/Lq6DaFmYBCMqzes+F80k3QFJMAkGA1UdEwQC
+MAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwKQYDVR0RBCIwIIIeU2VydmVyIFJTQS1Q
+U1MgcmVzdHJpY3RlZCBjZXJ0MA0GCSqGSIb3DQEBCwUAA4IBAQAEhm9Skn2XfEZo
+Q+YMu6HIQZovRT3IljHvesjIby7KfS86SU4r+CG7qaPLw7jeIR92YMnihnaXRGGJ
+POixpHY6gapEzR2Sqg7c0ApGenDZ3uKnBUjf9LEorPmhrEHUsnHREXoPx5Lt5Nh/
+7WRNB/GKvbnAby+5HQBOvU6P8t37/zK1JjJhGNv0uvaYthQGk3r6nEhQG+O6JBSw
+H/auU4ClIB4fg8GWaMuupN5VMNP9mxpL9tONH8QRKs+KIQWMOsr83rOKwSHrrkIL
+/vDI5hPj9RHvjjta6FQx140wA6c8ZB59x9YIv1alJWf6s3+TM8bv70L/aBBT8+IM
+vwjUz9Gp
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-pss-restrict-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-pss-restrict-key.pem
new file mode 100644
index 000000000..65032269c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-pss-restrict-key.pem
@@ -0,0 +1,29 @@
+-----BEGIN PRIVATE KEY-----
+MIIE7wIBADA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEaMBgGCSqGSIb3
+DQEBCDALBglghkgBZQMEAgGiAwIBIASCBKkwggSlAgEAAoIBAQDDlygksUEAajpd
+Vquo9XIAyTd9ZJ+55hNmhBfhn3lHz3ryPD+0XlgCE9qsKwfR7iYaqmnNilQnsxWp
+MGXAgOlC1+w5zh8qHvrI5wX+A6U9N8leIOSgFuFNP0FMMG7I677QzRxGFqKX1o4V
+73JWqnHCfnfHRyZY9xM0tYbJKNbRO7Hy4jKBPl3ptPHUoTltr4WYTOpgstcEamdi
+iif+0U4bQvVltNg9pzFEjkAktTUGn92W5CgLnsbPXxBo6a/kUlHcgmhYbpOXEjCP
+ufZLgsQo8iF2Bq8eWMEsByjr0chQjzrfZAUVtD8Hmh2uMVAPQFAHUkaLj2tHukL+
+s9tAaWKNAgMBAAECggEBAIzgfwWOtmb6HHfGSXY085wlUlZ696EKWsboNdtI5i4W
+/1Mimi/sFC/K5SJFDCjlA4UJYZOuItdFYkCun1t8foaqx3cLQ98u2SuDWwmOzqG9
+YMjvoDy+viDJgtrBt8n4I0R5t/ezrgD3hPe/s/dAZRfVx6g9Ux2ZOLgqV57kT3X7
+6paEz3jrIMvuoXQCsi9Qh+eJQ23/sAcc7OHQ7uD8QJVudEBnSHQ+ttvOPXhr7tba
+8NuNVa6E/KewkKHRAZqBTJolCVyPtWmvfaDwdJtunCvyR1w3Rv1adZLK4YRFz+vc
+sOMK+K1c2aojA+/Fnba19inNq13j6Dwqmq8Ho7MZwHECgYEA6aSx7/93S1VGpxQ9
+KqFE4Fy9ylliC/hanc9qOcfEIo0tDus9lfpuPp+aOXML0msVkIfhCnaru32qtnaI
+AQkIbPhSZFvC/i6BibpArXINbDzTS/46zZHehXskjWFGw+iRm/YI7MBuCmWzSnFO
+YUwSKRIPKZKyXswFzP8RsQO/QbsCgYEA1k5SamQheuKdo/X40ShWTTOoDlpL4Sir
+b2zTnEqlHyMv8c7w880hPf4P+0pqrKyf7jmEykJvp1qSAmyMUCWzrKTr8gQ2sMyb
+zj90cEm++M5YIQh5lPJy4pGqmCliJXqkt+zT1xmnRASwMNQOnU2bBmXkve/ofb4M
+dEwyig/nZFcCgYBLWPilTD6dhce+NBGxwMZkkKQIMKEk+RfIEs7QCXNgLSUdzZFT
+36pT+caTxl1Go5AVxyw04qZpVZKLO1iK9O3Jrp9rjAgrTrYpw23+QWzAvjDqLfeq
+ueMIKvlTus5GeacTo9mm+DvEkJ2sYTQEvrKQmilXn950IdmxDYUYD/xK5wKBgQDQ
+5ON9BUGFUSQsUHVLG7CT7EhiRS41ubjyEfhrHm+53Ei9weQpIcjHbsERR8aXrmTu
+h26i4QOI88XjSv+ymC19mfzLmcPdrnQpJL1RPvFCAZDyEhrBT1sg8rCBRcV/lv68
+scMEpuLecFt2HR5pwt3b7LJ9Wj8bYoctTaDt5va8XQKBgQDCr4hZB5haAcKmNm/g
+PjlaLdrDEIuuBjxMzX1t3PXwsEene1cE731v6fbmrDUa8AuJyMY80xhGrTTDQfS3
+QOu/6wtcUv/JC/06OwEaUlT/kdYek+zYfBm3b1sKP3HVKSxCLTcPcC4aQoAFqbEy
+3kuSVh03vVBdaP//qMPyeue17w==
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-trusted.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-trusted.pem
new file mode 100644
index 000000000..7508cfff5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/server-trusted.pem
@@ -0,0 +1,20 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNDIyMjk0NloYDzIxMTYwMTE1MjIyOTQ2WjAZMRcwFQYDVQQD
+DA5zZXJ2ZXIuZXhhbXBsZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANVdYGrf/GHuSKqMEUhDpW22Ul2qmEmxYZI1sfw6BCUMbXn/tNXJ6VwcO+Crs7h9
+o95tveDd11q/FEcRQl6mgtBhwX/dE0bmCYUHDvLU/Bpk0gqtIKsga5bwrczEGVNV
+3AEdpLPvirRJU12KBRzx3OFEv8XX4ncZV1yXC3XuiENxD8pswbSyUKd3RmxYDxG/
+8XYkWq45QrdRZynh0FUwbxfkkeqt+CjCQ2+iZKn7nZiSYkg+6w1PgkqK/z9y7pa1
+rqHBmLrvfZB1bf9aUp6r9cB+0IdD24UHBw99OHr90dPuZR3T6jlqhzfuStPgDW71
+cKzCvfFu85KVXqnwoWWVk40CAwEAAaN9MHswHQYDVR0OBBYEFMDnhL/oWSczELBS
+T1FSLwbWwHrNMB8GA1UdIwQYMBaAFHB/Lq6DaFmYBCMqzes+F80k3QFJMAkGA1Ud
+EwQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwGQYDVR0RBBIwEIIOc2VydmVyLmV4
+YW1wbGUwDQYJKoZIhvcNAQELBQADggEBAHvTBEN1ig8RrsT716Ginv4gGNX0LzGI
+RrZ1jO7lm5emuaPNYJpGw0iX5Zdo91qGNXPZaZ75X3S55pQTActq3OPEBOll2pyk
+iyjz+Zp/v5cfRZLlBbFW5gv2R94eibYr4U3fSn4B0yPcl4xH/l/HzJhGDsSDW8qK
+8VIJvmvsPwmL0JMCv+FR59F+NFYZdND/KCXet59WUpF9ICmFCoBEX3EyJXEPwhbi
+X2sdPzJbCjx0HLli8e0HUKNttLQxCsBTRGo6iISLLamwN47mGDa9miBADwGSiz2q
+YeeuLO02zToHhnQ6KbPXOrQAqcL1kngO4g+j/ru+4AZThFkdkGnltvkwDDAKBggr
+BgEFBQcDAQ==
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/servercert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/servercert.pem
new file mode 100644
index 000000000..cc17d3ffa
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/servercert.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNDIyMjk0NloYDzIxMTYwMTE1MjIyOTQ2WjAZMRcwFQYDVQQD
+DA5zZXJ2ZXIuZXhhbXBsZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANVdYGrf/GHuSKqMEUhDpW22Ul2qmEmxYZI1sfw6BCUMbXn/tNXJ6VwcO+Crs7h9
+o95tveDd11q/FEcRQl6mgtBhwX/dE0bmCYUHDvLU/Bpk0gqtIKsga5bwrczEGVNV
+3AEdpLPvirRJU12KBRzx3OFEv8XX4ncZV1yXC3XuiENxD8pswbSyUKd3RmxYDxG/
+8XYkWq45QrdRZynh0FUwbxfkkeqt+CjCQ2+iZKn7nZiSYkg+6w1PgkqK/z9y7pa1
+rqHBmLrvfZB1bf9aUp6r9cB+0IdD24UHBw99OHr90dPuZR3T6jlqhzfuStPgDW71
+cKzCvfFu85KVXqnwoWWVk40CAwEAAaN9MHswHQYDVR0OBBYEFMDnhL/oWSczELBS
+T1FSLwbWwHrNMB8GA1UdIwQYMBaAFHB/Lq6DaFmYBCMqzes+F80k3QFJMAkGA1Ud
+EwQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwGQYDVR0RBBIwEIIOc2VydmVyLmV4
+YW1wbGUwDQYJKoZIhvcNAQELBQADggEBAHvTBEN1ig8RrsT716Ginv4gGNX0LzGI
+RrZ1jO7lm5emuaPNYJpGw0iX5Zdo91qGNXPZaZ75X3S55pQTActq3OPEBOll2pyk
+iyjz+Zp/v5cfRZLlBbFW5gv2R94eibYr4U3fSn4B0yPcl4xH/l/HzJhGDsSDW8qK
+8VIJvmvsPwmL0JMCv+FR59F+NFYZdND/KCXet59WUpF9ICmFCoBEX3EyJXEPwhbi
+X2sdPzJbCjx0HLli8e0HUKNttLQxCsBTRGo6iISLLamwN47mGDa9miBADwGSiz2q
+YeeuLO02zToHhnQ6KbPXOrQAqcL1kngO4g+j/ru+4AZThFkdkGnltvk=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/serverkey.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/serverkey.pem
new file mode 100644
index 000000000..0d7e4049f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/serverkey.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDVXWBq3/xh7kiq
+jBFIQ6VttlJdqphJsWGSNbH8OgQlDG15/7TVyelcHDvgq7O4faPebb3g3ddavxRH
+EUJepoLQYcF/3RNG5gmFBw7y1PwaZNIKrSCrIGuW8K3MxBlTVdwBHaSz74q0SVNd
+igUc8dzhRL/F1+J3GVdclwt17ohDcQ/KbMG0slCnd0ZsWA8Rv/F2JFquOUK3UWcp
+4dBVMG8X5JHqrfgowkNvomSp+52YkmJIPusNT4JKiv8/cu6Wta6hwZi6732QdW3/
+WlKeq/XAftCHQ9uFBwcPfTh6/dHT7mUd0+o5aoc37krT4A1u9XCswr3xbvOSlV6p
+8KFllZONAgMBAAECggEADLTt7A+A2Vg2jamf0dztejY0e42QWjstI2b9PZc67fXq
+gyx+WYkX07t+uWegYWliG/oPJ9guXiIpE/5sJHToL37S5kmFP2CtynVcJ4wVo4DD
+nY0n9+kLX0bgIuS+2V6wpoRcbbbjXM9NHrH8kfe5ftT4UtEDlLI2qLX6IcDd7p4u
+OYjILChR8GSGTw96yIy2Ws/1Uq9PMw64JoT4RcK5QqnkcPMDFRH1SeLOL+zXP2c4
+nEl9yOy3HauZKxwl/Ry/XK1s3DdjopIAU29ut+hAuMiTb06kzZnumL9NoplKoZtU
+otw/gVcCKhT+Ep+p6i8InLF0XEME8A0qUR0niWebgQKBgQD6vkxR49B8ZZQrzjw4
+XKs1lI9cP7cgPiuWlDHMNjYou3WbOaGrMeScvbB1Ldh9A8pjAhxlw8AaV/xs4qcA
+trmVmSISVMVyc1wSGlJXWi2nUzTNs9OE3vj22SyStihf8UUZtWwX2b5Y4JrYhA/V
++ThGGqHR03oLNLShNLtJc2c7YQKBgQDZ1nkibEyrepexw/fnwkw61IJKq9wRIh1G
+PREakhbe9wU5ie0knuf9razt7awzQiwFmlixmWqsM7UEtLuXNnNPciwdrKhhbvrd
+vD/rkbIEHEPllIhFlDtOzn3hRBWTzWmXFjpou/2LvHTSbVis4IYVZymTp2jb1ZLs
+7VbiG9JTrQKBgQDc6n75g1szzpdehQT/r33U5j/syeJBUSU8NPMu9fB/sLHsgjlT
+SNEf2+y1QSBE/Or6kmiMrIv7advn30W+Vj9qc5HWTsPrk4HiHTjA553jl2alebN5
+lK4LZspjtIQcC8mS3goPdXPEgJdM/gWpwzr2YQ6DfOxBJT2j7n64NyoT4QKBgH7/
+yx+GhCx1DHtXBPDZFhg2TL+78lEK0oZgk9gp06up2CHzh44SFq6O0oLkTcCUk5Ww
+poTkLIy4mJBlzfgahp+KsK2cO46SZS9g0ONFzcMXt33hWpE2Gl2XhUwPpYTF/QlY
+rDTjZK5S8Mi9dzVSsNlJi7PJphiEK2R1+nFYRwcBAoGBANWoIG85jpXAOnq/Kcgx
+Rl3YivR0Ke6r1tFlP58rT7X3EkiboXyQl5vLIFCAwUte6RGrLl1dy3Qyh80B9ySL
+Jx6vj42CK7vgv6A96TuVYhnXTnEI6ZvwAQ2VGaw4BizhjALs/kdSE/og9aSCs3ws
+KQypwAFz0tbHxaNag/bSAN0J
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/setup.sh b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/setup.sh
new file mode 100755
index 000000000..bbe4842a5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/setup.sh
@@ -0,0 +1,384 @@
+#! /bin/sh
+
+# Primary root: root-cert
+# root cert variants: CA:false, key2, DN2
+# trust variants: +serverAuth -serverAuth +clientAuth -clientAuth +anyEKU -anyEKU
+#
+./mkcert.sh genroot "Root CA" root-key root-cert
+./mkcert.sh genss "Root CA" root-key root-nonca
+./mkcert.sh genroot "Root CA" root-key2 root-cert2
+./mkcert.sh genroot "Root Cert 2" root-key root-name2
+#
+openssl x509 -in root-cert.pem -trustout \
+ -addtrust serverAuth -out root+serverAuth.pem
+openssl x509 -in root-cert.pem -trustout \
+ -addreject serverAuth -out root-serverAuth.pem
+openssl x509 -in root-cert.pem -trustout \
+ -addtrust clientAuth -out root+clientAuth.pem
+openssl x509 -in root-cert.pem -trustout \
+ -addreject clientAuth -out root-clientAuth.pem
+openssl x509 -in root-cert.pem -trustout \
+ -addreject anyExtendedKeyUsage -out root-anyEKU.pem
+openssl x509 -in root-cert.pem -trustout \
+ -addtrust anyExtendedKeyUsage -out root+anyEKU.pem
+openssl x509 -in root-cert2.pem -trustout \
+ -addtrust serverAuth -out root2+serverAuth.pem
+openssl x509 -in root-cert2.pem -trustout \
+ -addreject serverAuth -out root2-serverAuth.pem
+openssl x509 -in root-cert2.pem -trustout \
+ -addtrust clientAuth -out root2+clientAuth.pem
+openssl x509 -in root-nonca.pem -trustout \
+ -addtrust serverAuth -out nroot+serverAuth.pem
+openssl x509 -in root-nonca.pem -trustout \
+ -addtrust anyExtendedKeyUsage -out nroot+anyEKU.pem
+
+# Root CA security level variants:
+# MD5 self-signature
+OPENSSL_SIGALG=md5 \
+./mkcert.sh genroot "Root CA" root-key root-cert-md5
+# 768-bit key
+OPENSSL_KEYBITS=768 \
+./mkcert.sh genroot "Root CA" root-key-768 root-cert-768
+
+# primary client-EKU root: croot-cert
+# trust variants: +serverAuth -serverAuth +clientAuth +anyEKU -anyEKU
+#
+./mkcert.sh genroot "Root CA" root-key croot-cert clientAuth
+#
+openssl x509 -in croot-cert.pem -trustout \
+ -addtrust serverAuth -out croot+serverAuth.pem
+openssl x509 -in croot-cert.pem -trustout \
+ -addreject serverAuth -out croot-serverAuth.pem
+openssl x509 -in croot-cert.pem -trustout \
+ -addtrust clientAuth -out croot+clientAuth.pem
+openssl x509 -in croot-cert.pem -trustout \
+ -addreject clientAuth -out croot-clientAuth.pem
+openssl x509 -in croot-cert.pem -trustout \
+ -addreject anyExtendedKeyUsage -out croot-anyEKU.pem
+openssl x509 -in croot-cert.pem -trustout \
+ -addtrust anyExtendedKeyUsage -out croot+anyEKU.pem
+
+# primary server-EKU root: sroot-cert
+# trust variants: +serverAuth -serverAuth +clientAuth +anyEKU -anyEKU
+#
+./mkcert.sh genroot "Root CA" root-key sroot-cert serverAuth
+#
+openssl x509 -in sroot-cert.pem -trustout \
+ -addtrust serverAuth -out sroot+serverAuth.pem
+openssl x509 -in sroot-cert.pem -trustout \
+ -addreject serverAuth -out sroot-serverAuth.pem
+openssl x509 -in sroot-cert.pem -trustout \
+ -addtrust clientAuth -out sroot+clientAuth.pem
+openssl x509 -in sroot-cert.pem -trustout \
+ -addreject clientAuth -out sroot-clientAuth.pem
+openssl x509 -in sroot-cert.pem -trustout \
+ -addreject anyExtendedKeyUsage -out sroot-anyEKU.pem
+openssl x509 -in sroot-cert.pem -trustout \
+ -addtrust anyExtendedKeyUsage -out sroot+anyEKU.pem
+
+# Primary intermediate ca: ca-cert
+# ca variants: CA:false, key2, DN2, issuer2, expired
+# trust variants: +serverAuth, -serverAuth, +clientAuth, -clientAuth, -anyEKU, +anyEKU
+#
+./mkcert.sh genca "CA" ca-key ca-cert root-key root-cert
+./mkcert.sh genee "CA" ca-key ca-nonca root-key root-cert
+./mkcert.sh gen_nonbc_ca "CA" ca-key ca-nonbc root-key root-cert
+./mkcert.sh genca "CA" ca-key2 ca-cert2 root-key root-cert
+./mkcert.sh genca "CA2" ca-key ca-name2 root-key root-cert
+./mkcert.sh genca "CA" ca-key ca-root2 root-key2 root-cert2
+DAYS=-1 ./mkcert.sh genca "CA" ca-key ca-expired root-key root-cert
+#
+openssl x509 -in ca-cert.pem -trustout \
+ -addtrust serverAuth -out ca+serverAuth.pem
+openssl x509 -in ca-cert.pem -trustout \
+ -addreject serverAuth -out ca-serverAuth.pem
+openssl x509 -in ca-cert.pem -trustout \
+ -addtrust clientAuth -out ca+clientAuth.pem
+openssl x509 -in ca-cert.pem -trustout \
+ -addreject clientAuth -out ca-clientAuth.pem
+openssl x509 -in ca-cert.pem -trustout \
+ -addreject anyExtendedKeyUsage -out ca-anyEKU.pem
+openssl x509 -in ca-cert.pem -trustout \
+ -addtrust anyExtendedKeyUsage -out ca+anyEKU.pem
+openssl x509 -in ca-nonca.pem -trustout \
+ -addtrust serverAuth -out nca+serverAuth.pem
+openssl x509 -in ca-nonca.pem -trustout \
+ -addtrust serverAuth -out nca+anyEKU.pem
+
+# Intermediate CA security variants:
+# MD5 issuer signature,
+OPENSSL_SIGALG=md5 \
+./mkcert.sh genca "CA" ca-key ca-cert-md5 root-key root-cert
+openssl x509 -in ca-cert-md5.pem -trustout \
+ -addtrust anyExtendedKeyUsage -out ca-cert-md5-any.pem
+# Issuer has 768-bit key
+./mkcert.sh genca "CA" ca-key ca-cert-768i root-key-768 root-cert-768
+# CA has 768-bit key
+OPENSSL_KEYBITS=768 \
+./mkcert.sh genca "CA" ca-key-768 ca-cert-768 root-key root-cert
+
+# client intermediate ca: cca-cert
+# trust variants: +serverAuth, -serverAuth, +clientAuth, -clientAuth
+#
+./mkcert.sh genca "CA" ca-key cca-cert root-key root-cert clientAuth
+#
+openssl x509 -in cca-cert.pem -trustout \
+ -addtrust serverAuth -out cca+serverAuth.pem
+openssl x509 -in cca-cert.pem -trustout \
+ -addreject serverAuth -out cca-serverAuth.pem
+openssl x509 -in cca-cert.pem -trustout \
+ -addtrust clientAuth -out cca+clientAuth.pem
+openssl x509 -in cca-cert.pem -trustout \
+ -addtrust clientAuth -out cca-clientAuth.pem
+openssl x509 -in cca-cert.pem -trustout \
+ -addreject anyExtendedKeyUsage -out cca-anyEKU.pem
+openssl x509 -in cca-cert.pem -trustout \
+ -addtrust anyExtendedKeyUsage -out cca+anyEKU.pem
+
+# server intermediate ca: sca-cert
+# trust variants: +serverAuth, -serverAuth, +clientAuth, -clientAuth, -anyEKU, +anyEKU
+#
+./mkcert.sh genca "CA" ca-key sca-cert root-key root-cert serverAuth
+#
+openssl x509 -in sca-cert.pem -trustout \
+ -addtrust serverAuth -out sca+serverAuth.pem
+openssl x509 -in sca-cert.pem -trustout \
+ -addreject serverAuth -out sca-serverAuth.pem
+openssl x509 -in sca-cert.pem -trustout \
+ -addtrust clientAuth -out sca+clientAuth.pem
+openssl x509 -in sca-cert.pem -trustout \
+ -addreject clientAuth -out sca-clientAuth.pem
+openssl x509 -in sca-cert.pem -trustout \
+ -addreject anyExtendedKeyUsage -out sca-anyEKU.pem
+openssl x509 -in sca-cert.pem -trustout \
+ -addtrust anyExtendedKeyUsage -out sca+anyEKU.pem
+
+# Primary leaf cert: ee-cert
+# ee variants: expired, issuer-key2, issuer-name2, bad-pathlen
+# trust variants: +serverAuth, -serverAuth, +clientAuth, -clientAuth
+# purpose variants: client
+#
+./mkcert.sh genee server.example ee-key ee-cert ca-key ca-cert
+./mkcert.sh genee server.example ee-key ee-expired ca-key ca-cert -days -1
+./mkcert.sh genee server.example ee-key ee-cert2 ca-key2 ca-cert2
+./mkcert.sh genee server.example ee-key ee-name2 ca-key ca-name2
+./mkcert.sh genee -p clientAuth server.example ee-key ee-client ca-key ca-cert
+./mkcert.sh genee server.example ee-key ee-pathlen ca-key ca-cert \
+ -extfile <(echo "basicConstraints=CA:FALSE,pathlen:0")
+#
+openssl x509 -in ee-cert.pem -trustout \
+ -addtrust serverAuth -out ee+serverAuth.pem
+openssl x509 -in ee-cert.pem -trustout \
+ -addreject serverAuth -out ee-serverAuth.pem
+openssl x509 -in ee-client.pem -trustout \
+ -addtrust clientAuth -out ee+clientAuth.pem
+openssl x509 -in ee-client.pem -trustout \
+ -addreject clientAuth -out ee-clientAuth.pem
+
+# Leaf cert security level variants
+# MD5 issuer signature
+OPENSSL_SIGALG=md5 \
+./mkcert.sh genee server.example ee-key ee-cert-md5 ca-key ca-cert
+# 768-bit issuer key
+./mkcert.sh genee server.example ee-key ee-cert-768i ca-key-768 ca-cert-768
+# 768-bit leaf key
+OPENSSL_KEYBITS=768 \
+./mkcert.sh genee server.example ee-key-768 ee-cert-768 ca-key ca-cert
+
+# Proxy certificates, off of ee-client
+# Start with some good ones
+./mkcert.sh req pc1-key "0.CN = server.example" "1.CN = proxy 1" | \
+ ./mkcert.sh genpc pc1-key pc1-cert ee-key ee-client \
+ "language = id-ppl-anyLanguage" "pathlen = 1" "policy = text:AB"
+./mkcert.sh req pc2-key "0.CN = server.example" "1.CN = proxy 1" "2.CN = proxy 2" | \
+ ./mkcert.sh genpc pc2-key pc2-cert pc1-key pc1-cert \
+ "language = id-ppl-anyLanguage" "pathlen = 0" "policy = text:AB"
+# And now a couple of bad ones
+# pc3: incorrect CN
+./mkcert.sh req bad-pc3-key "0.CN = server.example" "1.CN = proxy 3" | \
+ ./mkcert.sh genpc bad-pc3-key bad-pc3-cert pc1-key pc1-cert \
+ "language = id-ppl-anyLanguage" "pathlen = 0" "policy = text:AB"
+# pc4: incorrect pathlen
+./mkcert.sh req bad-pc4-key "0.CN = server.example" "1.CN = proxy 1" "2.CN = proxy 4" | \
+ ./mkcert.sh genpc bad-pc4-key bad-pc4-cert pc1-key pc1-cert \
+ "language = id-ppl-anyLanguage" "pathlen = 1" "policy = text:AB"
+# pc5: no policy
+./mkcert.sh req pc5-key "0.CN = server.example" "1.CN = proxy 1" "2.CN = proxy 5" | \
+ ./mkcert.sh genpc pc5-key pc5-cert pc1-key pc1-cert \
+ "language = id-ppl-anyLanguage" "pathlen = 0"
+# pc6: incorrect CN (made into a component of a multivalue RDN)
+./mkcert.sh req bad-pc6-key "0.CN = server.example" "1.CN = proxy 1" "2.+CN = proxy 6" | \
+ ./mkcert.sh genpc bad-pc6-key bad-pc6-cert pc1-key pc1-cert \
+ "language = id-ppl-anyLanguage" "pathlen = 0" "policy = text:AB"
+
+# Name constraints test certificates.
+
+# NC CA1 only permits the host www.good.org and *.good.com email address
+# good@good.org and *@good.com and IP addresses 127.0.0.1 and
+# 192.168.0.0/16
+
+NC="permitted;DNS:www.good.org, permitted;DNS:good.com,"
+NC="$NC permitted;email:good@good.org, permitted;email:good.com,"
+NC="$NC permitted;IP:127.0.0.1/255.255.255.255, permitted;IP:192.168.0.0/255.255.0.0"
+
+NC=$NC ./mkcert.sh genca "Test NC CA 1" ncca1-key ncca1-cert root-key root-cert
+
+# NC CA2 allows anything apart from hosts www.bad.org and *.bad.com
+# and email addresses bad@bad.org and *@bad.com
+
+NC="excluded;DNS:www.bad.org, excluded;DNS:bad.com,"
+NC="$NC excluded;email:bad@bad.org, excluded;email:bad.com, "
+NC="$NC excluded;IP:10.0.0.0/255.0.0.0"
+
+NC=$NC ./mkcert.sh genca "Test NC CA 2" ncca2-key ncca2-cert root-key root-cert
+
+# Name constraints subordinate CA. Adds www.good.net (which should be
+# disallowed because parent CA doesn't permit it) adds ok.good.com
+# (which should be allowed because parent allows *.good.com
+# and now excludes bad.ok.good.com (allowed in permitted subtrees
+# but explicitly excluded).
+
+NC="permitted;DNS:www.good.net, permitted;DNS:ok.good.com, "
+NC="$NC excluded;DNS:bad.ok.good.com"
+NC=$NC ./mkcert.sh genca "Test NC sub CA" ncca3-key ncca3-cert \
+ ncca1-key ncca1-cert
+
+# all subjectAltNames allowed by CA1. Some CNs are not!
+
+./mkcert.sh req alt1-key "O = Good NC Test Certificate 1" \
+ "1.CN=www.example.net" "2.CN=Joe Bloggs" | \
+ ./mkcert.sh geneealt alt1-key alt1-cert ncca1-key ncca1-cert \
+ "DNS.1 = www.good.org" "DNS.2 = any.good.com" \
+ "email.1 = good@good.org" "email.2 = any@good.com" \
+ "IP = 127.0.0.1" "IP = 192.168.0.1"
+
+# all DNS-like CNs allowed by CA1, no DNS SANs.
+
+./mkcert.sh req goodcn1-key "O = Good NC Test Certificate 1" \
+ "1.CN=www.good.org" "2.CN=any.good.com" \
+ "3.CN=not..dns" "4.CN=not@dns" "5.CN=not-.dns" "6.CN=not.dns." | \
+ ./mkcert.sh geneealt goodcn1-key goodcn1-cert ncca1-key ncca1-cert \
+ "IP = 127.0.0.1" "IP = 192.168.0.1"
+
+# Some DNS-like CNs not permitted by CA1, no DNS SANs.
+
+./mkcert.sh req badcn1-key "O = Good NC Test Certificate 1" \
+ "1.CN=www.good.org" "3.CN=bad.net" | \
+ ./mkcert.sh geneealt badcn1-key badcn1-cert ncca1-key ncca1-cert \
+ "IP = 127.0.0.1" "IP = 192.168.0.1"
+
+# no subjectAltNames excluded by CA2.
+
+./mkcert.sh req alt2-key "O = Good NC Test Certificate 2" | \
+ ./mkcert.sh geneealt alt2-key alt2-cert ncca2-key ncca2-cert \
+ "DNS.1 = www.anything.org" "DNS.2 = any.other.com" \
+ "email.1 = other@bad.org" "email.2 = any@something.com"
+
+# hostname other.good.org which is not allowed by CA1.
+
+./mkcert.sh req badalt1-key "O = Bad NC Test Certificate 1" | \
+ ./mkcert.sh geneealt badalt1-key badalt1-cert ncca1-key ncca1-cert \
+ "DNS.1 = other.good.org" "DNS.2 = any.good.com" \
+ "email.1 = good@good.org" "email.2 = any@good.com"
+
+# any.bad.com is excluded by CA2.
+
+./mkcert.sh req badalt2-key 'O = Bad NC Test Certificate 2' | \
+ ./mkcert.sh geneealt badalt2-key badalt2-cert ncca2-key ncca2-cert \
+ "DNS.1 = www.good.org" "DNS.2 = any.bad.com" \
+ "email.1 = good@good.org" "email.2 = any@good.com"
+
+# other@good.org not permitted by CA1
+
+./mkcert.sh req badalt3-key "O = Bad NC Test Certificate 3" | \
+ ./mkcert.sh geneealt badalt3-key badalt1-cert ncca1-key ncca1-cert \
+ "DNS.1 = www.good.org" "DNS.2 = any.good.com" \
+ "email.1 = other@good.org" "email.2 = any@good.com"
+
+# all subject alt names OK but subject email address not allowed by CA1.
+
+./mkcert.sh req badalt4-key 'O = Bad NC Test Certificate 4' \
+ "emailAddress = any@other.com" | \
+ ./mkcert.sh geneealt badalt4-key badalt4-cert ncca1-key ncca1-cert \
+ "DNS.1 = www.good.org" "DNS.2 = any.good.com" \
+ "email.1 = good@good.org" "email.2 = any@good.com"
+
+# IP address not allowed by CA1
+./mkcert.sh req badalt5-key "O = Bad NC Test Certificate 5" | \
+ ./mkcert.sh geneealt badalt5-key badalt5-cert ncca1-key ncca1-cert \
+ "DNS.1 = www.good.org" "DNS.2 = any.good.com" \
+ "email.1 = good@good.org" "email.2 = any@good.com" \
+ "IP = 127.0.0.2"
+
+# No DNS-ID SANs and subject CN not allowed by CA1.
+./mkcert.sh req badalt6-key "O = Bad NC Test Certificate 6" \
+ "1.CN=other.good.org" "2.CN=Joe Bloggs" "3.CN=any.good.com" | \
+ ./mkcert.sh geneealt badalt6-key badalt6-cert ncca1-key ncca1-cert \
+ "email.1 = good@good.org" "email.2 = any@good.com" \
+ "IP = 127.0.0.1" "IP = 192.168.0.1"
+
+# No DNS-ID SANS and subject CN not allowed by CA1, BMPSTRING
+REQMASK=MASK:0x800 ./mkcert.sh req badalt7-key "O = Bad NC Test Certificate 7" \
+ "1.CN=other.good.org" "2.CN=Joe Bloggs" "3.CN=any.good.com" | \
+ ./mkcert.sh geneealt badalt7-key badalt7-cert ncca1-key ncca1-cert \
+ "email.1 = good@good.org" "email.2 = any@good.com" \
+ "IP = 127.0.0.1" "IP = 192.168.0.1"
+
+# all subjectAltNames allowed by chain
+
+./mkcert.sh req alt3-key "O = Good NC Test Certificate 3" \
+ "1.CN=www.ok.good.com" "2.CN=Joe Bloggs" | \
+ ./mkcert.sh geneealt alt3-key alt3-cert ncca3-key ncca3-cert \
+ "DNS.1 = www.ok.good.com" \
+ "email.1 = good@good.org" "email.2 = any@good.com" \
+ "IP = 127.0.0.1" "IP = 192.168.0.1"
+
+# www.good.net allowed by parent CA but not parent of parent
+
+./mkcert.sh req badalt8-key "O = Bad NC Test Certificate 8" \
+ "1.CN=www.good.com" "2.CN=Joe Bloggs" | \
+ ./mkcert.sh geneealt badalt8-key badalt8-cert ncca3-key ncca3-cert \
+ "DNS.1 = www.ok.good.com" "DNS.2 = www.good.net" \
+ "email.1 = good@good.org" "email.2 = any@good.com" \
+ "IP = 127.0.0.1" "IP = 192.168.0.1"
+
+# other.good.com not allowed by parent CA but allowed by parent of parent
+
+./mkcert.sh req badalt9-key "O = Bad NC Test Certificate 9" \
+ "1.CN=www.good.com" "2.CN=Joe Bloggs" | \
+ ./mkcert.sh geneealt badalt9-key badalt9-cert ncca3-key ncca3-cert \
+ "DNS.1 = www.good.com" "DNS.2 = other.good.com" \
+ "email.1 = good@good.org" "email.2 = any@good.com" \
+ "IP = 127.0.0.1" "IP = 192.168.0.1"
+
+# www.bad.net excluded by parent CA.
+
+./mkcert.sh req badalt10-key "O = Bad NC Test Certificate 10" \
+ "1.CN=www.ok.good.com" "2.CN=Joe Bloggs" | \
+ ./mkcert.sh geneealt badalt10-key badalt10-cert ncca3-key ncca3-cert \
+ "DNS.1 = www.ok.good.com" "DNS.2 = bad.ok.good.com" \
+ "email.1 = good@good.org" "email.2 = any@good.com" \
+ "IP = 127.0.0.1" "IP = 192.168.0.1"
+
+# RSA-PSS signatures
+# SHA1
+./mkcert.sh genee PSS-SHA1 ee-key ee-pss-sha1-cert ca-key ca-cert \
+ -sha1 -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:digest
+# SHA256
+./mkcert.sh genee PSS-SHA256 ee-key ee-pss-sha256-cert ca-key ca-cert \
+ -sha256 -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:digest
+
+OPENSSL_KEYALG=ec OPENSSL_KEYBITS=brainpoolP256r1 ./mkcert.sh genee \
+ "Server ECDSA brainpoolP256r1 cert" server-ecdsa-brainpoolP256r1-key \
+ server-ecdsa-brainpoolP256r1-cert rootkey rootcert
+
+openssl req -new -nodes -subj "/CN=localhost" \
+ -newkey rsa-pss -keyout server-pss-restrict-key.pem \
+ -pkeyopt rsa_pss_keygen_md:sha256 -pkeyopt rsa_pss_keygen_saltlen:32 | \
+ ./mkcert.sh geneenocsr "Server RSA-PSS restricted cert" \
+ server-pss-restrict-cert rootkey rootcert
+
+OPENSSL_SIGALG=ED448 OPENSSL_KEYALG=ed448 ./mkcert.sh genroot "Root Ed448" \
+ root-ed448-key root-ed448-cert
+OPENSSL_SIGALG=ED448 OPENSSL_KEYALG=ed448 ./mkcert.sh genee ed448 \
+ server-ed448-key server-ed448-cert root-ed448-key root-ed448-cert
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/some-names1.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/some-names1.pem
new file mode 100644
index 000000000..21eed8338
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/some-names1.pem
@@ -0,0 +1,211 @@
+-----BEGIN CERTIFICATE-----
+MIInDDCCJfSgAwIBAgIBBTANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJDQTAg
+Fw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowghmkMRAwDgYDVQQDEwd0
+MC50ZXN0MRYwFAYJKoZIhvcNAQkBFgd0MEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+MUB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0MkB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+M0B0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0NEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+NUB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0NkB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+N0B0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0OEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+OUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MTBAdGVzdDEXMBUGCSqGSIb3DQEJARYI
+dDExQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQxMkB0ZXN0MRcwFQYJKoZIhvcNAQkB
+Fgh0MTNAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDE0QHRlc3QxFzAVBgkqhkiG9w0B
+CQEWCHQxNUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MTZAdGVzdDEXMBUGCSqGSIb3
+DQEJARYIdDE3QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQxOEB0ZXN0MRcwFQYJKoZI
+hvcNAQkBFgh0MTlAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDIwQHRlc3QxFzAVBgkq
+hkiG9w0BCQEWCHQyMUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MjJAdGVzdDEXMBUG
+CSqGSIb3DQEJARYIdDIzQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQyNEB0ZXN0MRcw
+FQYJKoZIhvcNAQkBFgh0MjVAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDI2QHRlc3Qx
+FzAVBgkqhkiG9w0BCQEWCHQyN0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MjhAdGVz
+dDEXMBUGCSqGSIb3DQEJARYIdDI5QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzMEB0
+ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MzFAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDMy
+QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzM0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0
+MzRAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDM1QHRlc3QxFzAVBgkqhkiG9w0BCQEW
+CHQzNkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MzdAdGVzdDEXMBUGCSqGSIb3DQEJ
+ARYIdDM4QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzOUB0ZXN0MRcwFQYJKoZIhvcN
+AQkBFgh0NDBAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDQxQHRlc3QxFzAVBgkqhkiG
+9w0BCQEWCHQ0MkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NDNAdGVzdDEXMBUGCSqG
+SIb3DQEJARYIdDQ0QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ0NUB0ZXN0MRcwFQYJ
+KoZIhvcNAQkBFgh0NDZAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDQ3QHRlc3QxFzAV
+BgkqhkiG9w0BCQEWCHQ0OEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NDlAdGVzdDEX
+MBUGCSqGSIb3DQEJARYIdDUwQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ1MUB0ZXN0
+MRcwFQYJKoZIhvcNAQkBFgh0NTJAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDUzQHRl
+c3QxFzAVBgkqhkiG9w0BCQEWCHQ1NEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NTVA
+dGVzdDEXMBUGCSqGSIb3DQEJARYIdDU2QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ1
+N0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NThAdGVzdDEXMBUGCSqGSIb3DQEJARYI
+dDU5QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ2MEB0ZXN0MRcwFQYJKoZIhvcNAQkB
+Fgh0NjFAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDYyQHRlc3QxFzAVBgkqhkiG9w0B
+CQEWCHQ2M0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NjRAdGVzdDEXMBUGCSqGSIb3
+DQEJARYIdDY1QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ2NkB0ZXN0MRcwFQYJKoZI
+hvcNAQkBFgh0NjdAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDY4QHRlc3QxFzAVBgkq
+hkiG9w0BCQEWCHQ2OUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzBAdGVzdDEXMBUG
+CSqGSIb3DQEJARYIdDcxQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ3MkB0ZXN0MRcw
+FQYJKoZIhvcNAQkBFgh0NzNAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDc0QHRlc3Qx
+FzAVBgkqhkiG9w0BCQEWCHQ3NUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzZAdGVz
+dDEXMBUGCSqGSIb3DQEJARYIdDc3QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ3OEB0
+ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzlAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDgw
+QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ4MUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0
+ODJAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDgzQHRlc3QxFzAVBgkqhkiG9w0BCQEW
+CHQ4NEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0ODVAdGVzdDEXMBUGCSqGSIb3DQEJ
+ARYIdDg2QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ4N0B0ZXN0MRcwFQYJKoZIhvcN
+AQkBFgh0ODhAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDg5QHRlc3QxFzAVBgkqhkiG
+9w0BCQEWCHQ5MEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0OTFAdGVzdDEXMBUGCSqG
+SIb3DQEJARYIdDkyQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ5M0B0ZXN0MRcwFQYJ
+KoZIhvcNAQkBFgh0OTRAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDk1QHRlc3QxFzAV
+BgkqhkiG9w0BCQEWCHQ5NkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0OTdAdGVzdDEX
+MBUGCSqGSIb3DQEJARYIdDk4QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ5OUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTAwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMDFA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDEwMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTAzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMDRAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDEwNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTA2QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQxMDdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEwOEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MTA5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTBAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDExMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTEyQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQxMTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEx
+NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTE1QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQxMTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDExN0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MTE4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTlAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDEyMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTIxQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQxMjJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEyM0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTI0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMjVA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDEyNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTI3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMjhAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDEyOUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTMwQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQxMzFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEzMkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MTMzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMzRAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDEzNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTM2QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQxMzdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEz
+OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTM5QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQxNDBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE0MUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MTQyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNDNAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDE0NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTQ1QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQxNDZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE0N0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTQ4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNDlA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDE1MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTUxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNTJAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDE1M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTU0QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQxNTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE1NkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MTU3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNThAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDE1OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTYwQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQxNjFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE2
+MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTYzQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQxNjRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE2NUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MTY2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNjdAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDE2OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTY5QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQxNzBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE3MUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTcyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNzNA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDE3NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTc1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNzZAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDE3N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTc4QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQxNzlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4MEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MTgxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxODJAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDE4M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTg0QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQxODVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4
+NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTg3QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQxODhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4OUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MTkwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxOTFAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDE5MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTkzQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQxOTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE5NUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTk2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxOTdA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDE5OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTk5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDBAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDIwMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjAyQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQyMDNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIwNEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MjA1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDZAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDIwN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjA4QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQyMDlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIx
+MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjExQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQyMTJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIxM0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MjE0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMTVAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDIxNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjE3QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQyMThAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIxOUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MjIwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMjFA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDIyMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MjIzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMjRAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDIyNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjI2QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQyMjdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIyOEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MjI5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzBAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDIzMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjMyQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQyMzNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIz
+NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjM1QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQyMzZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIzN0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MjM4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzlAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDI0MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjQxQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQyNDJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI0M0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MjQ0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNDVA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDI0NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MjQ3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNDhAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDI0OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjUwQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQyNTFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI1MkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MjUzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNTRAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDI1NUB0ZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAugvahBkSAUF1fC49vb1bvlPrcl80kop1iLpiuYoz4Qptwy57+EWs
+sZBcHprZ5BkWf6PeGZ7F5AX1PyJbGHZLqvMCvViP6pd4MFox/igESISEHEixoiXC
+zepBrhtp5UQSjHD4D4hKtgdMgVxX+LRtwgW3mnu/vBu7rzpr/DS8io99p3lqZ1Ak
+y+aNlcMj6MYy8U+YFEevb/V0lRY9oqwmW7BHnXikm/vi6sjIS350U8zb/mRzYeIs
+2R65LUduTL50+UMgat9ocewI2dv8aO9Dph+8NdGtg8LFYyTTHcUxJoMr1PTOgnmE
+T19WJH4PrFwk7ZE1QJQQ1L4iKmPeQistuQIDAQABo4IK2jCCCtYwDgYDVR0PAQH/
+BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwggqfBgNV
+HREEggqWMIIKkoIHdDAudGVzdIIHdDEudGVzdIIHdDIudGVzdIIHdDMudGVzdIIH
+dDQudGVzdIIHdDUudGVzdIIHdDYudGVzdIIHdDcudGVzdIIHdDgudGVzdIIHdDku
+dGVzdIIIdDEwLnRlc3SCCHQxMS50ZXN0ggh0MTIudGVzdIIIdDEzLnRlc3SCCHQx
+NC50ZXN0ggh0MTUudGVzdIIIdDE2LnRlc3SCCHQxNy50ZXN0ggh0MTgudGVzdIII
+dDE5LnRlc3SCCHQyMC50ZXN0ggh0MjEudGVzdIIIdDIyLnRlc3SCCHQyMy50ZXN0
+ggh0MjQudGVzdIIIdDI1LnRlc3SCCHQyNi50ZXN0ggh0MjcudGVzdIIIdDI4LnRl
+c3SCCHQyOS50ZXN0ggh0MzAudGVzdIIIdDMxLnRlc3SCCHQzMi50ZXN0ggh0MzMu
+dGVzdIIIdDM0LnRlc3SCCHQzNS50ZXN0ggh0MzYudGVzdIIIdDM3LnRlc3SCCHQz
+OC50ZXN0ggh0MzkudGVzdIIIdDQwLnRlc3SCCHQ0MS50ZXN0ggh0NDIudGVzdIII
+dDQzLnRlc3SCCHQ0NC50ZXN0ggh0NDUudGVzdIIIdDQ2LnRlc3SCCHQ0Ny50ZXN0
+ggh0NDgudGVzdIIIdDQ5LnRlc3SCCHQ1MC50ZXN0ggh0NTEudGVzdIIIdDUyLnRl
+c3SCCHQ1My50ZXN0ggh0NTQudGVzdIIIdDU1LnRlc3SCCHQ1Ni50ZXN0ggh0NTcu
+dGVzdIIIdDU4LnRlc3SCCHQ1OS50ZXN0ggh0NjAudGVzdIIIdDYxLnRlc3SCCHQ2
+Mi50ZXN0ggh0NjMudGVzdIIIdDY0LnRlc3SCCHQ2NS50ZXN0ggh0NjYudGVzdIII
+dDY3LnRlc3SCCHQ2OC50ZXN0ggh0NjkudGVzdIIIdDcwLnRlc3SCCHQ3MS50ZXN0
+ggh0NzIudGVzdIIIdDczLnRlc3SCCHQ3NC50ZXN0ggh0NzUudGVzdIIIdDc2LnRl
+c3SCCHQ3Ny50ZXN0ggh0NzgudGVzdIIIdDc5LnRlc3SCCHQ4MC50ZXN0ggh0ODEu
+dGVzdIIIdDgyLnRlc3SCCHQ4My50ZXN0ggh0ODQudGVzdIIIdDg1LnRlc3SCCHQ4
+Ni50ZXN0ggh0ODcudGVzdIIIdDg4LnRlc3SCCHQ4OS50ZXN0ggh0OTAudGVzdIII
+dDkxLnRlc3SCCHQ5Mi50ZXN0ggh0OTMudGVzdIIIdDk0LnRlc3SCCHQ5NS50ZXN0
+ggh0OTYudGVzdIIIdDk3LnRlc3SCCHQ5OC50ZXN0ggh0OTkudGVzdIIJdDEwMC50
+ZXN0ggl0MTAxLnRlc3SCCXQxMDIudGVzdIIJdDEwMy50ZXN0ggl0MTA0LnRlc3SC
+CXQxMDUudGVzdIIJdDEwNi50ZXN0ggl0MTA3LnRlc3SCCXQxMDgudGVzdIIJdDEw
+OS50ZXN0ggl0MTEwLnRlc3SCCXQxMTEudGVzdIIJdDExMi50ZXN0ggl0MTEzLnRl
+c3SCCXQxMTQudGVzdIIJdDExNS50ZXN0ggl0MTE2LnRlc3SCCXQxMTcudGVzdIIJ
+dDExOC50ZXN0ggl0MTE5LnRlc3SCCXQxMjAudGVzdIIJdDEyMS50ZXN0ggl0MTIy
+LnRlc3SCCXQxMjMudGVzdIIJdDEyNC50ZXN0ggl0MTI1LnRlc3SCCXQxMjYudGVz
+dIIJdDEyNy50ZXN0ggl0MTI4LnRlc3SCCXQxMjkudGVzdIIJdDEzMC50ZXN0ggl0
+MTMxLnRlc3SCCXQxMzIudGVzdIIJdDEzMy50ZXN0ggl0MTM0LnRlc3SCCXQxMzUu
+dGVzdIIJdDEzNi50ZXN0ggl0MTM3LnRlc3SCCXQxMzgudGVzdIIJdDEzOS50ZXN0
+ggl0MTQwLnRlc3SCCXQxNDEudGVzdIIJdDE0Mi50ZXN0ggl0MTQzLnRlc3SCCXQx
+NDQudGVzdIIJdDE0NS50ZXN0ggl0MTQ2LnRlc3SCCXQxNDcudGVzdIIJdDE0OC50
+ZXN0ggl0MTQ5LnRlc3SCCXQxNTAudGVzdIIJdDE1MS50ZXN0ggl0MTUyLnRlc3SC
+CXQxNTMudGVzdIIJdDE1NC50ZXN0ggl0MTU1LnRlc3SCCXQxNTYudGVzdIIJdDE1
+Ny50ZXN0ggl0MTU4LnRlc3SCCXQxNTkudGVzdIIJdDE2MC50ZXN0ggl0MTYxLnRl
+c3SCCXQxNjIudGVzdIIJdDE2My50ZXN0ggl0MTY0LnRlc3SCCXQxNjUudGVzdIIJ
+dDE2Ni50ZXN0ggl0MTY3LnRlc3SCCXQxNjgudGVzdIIJdDE2OS50ZXN0ggl0MTcw
+LnRlc3SCCXQxNzEudGVzdIIJdDE3Mi50ZXN0ggl0MTczLnRlc3SCCXQxNzQudGVz
+dIIJdDE3NS50ZXN0ggl0MTc2LnRlc3SCCXQxNzcudGVzdIIJdDE3OC50ZXN0ggl0
+MTc5LnRlc3SCCXQxODAudGVzdIIJdDE4MS50ZXN0ggl0MTgyLnRlc3SCCXQxODMu
+dGVzdIIJdDE4NC50ZXN0ggl0MTg1LnRlc3SCCXQxODYudGVzdIIJdDE4Ny50ZXN0
+ggl0MTg4LnRlc3SCCXQxODkudGVzdIIJdDE5MC50ZXN0ggl0MTkxLnRlc3SCCXQx
+OTIudGVzdIIJdDE5My50ZXN0ggl0MTk0LnRlc3SCCXQxOTUudGVzdIIJdDE5Ni50
+ZXN0ggl0MTk3LnRlc3SCCXQxOTgudGVzdIIJdDE5OS50ZXN0ggl0MjAwLnRlc3SC
+CXQyMDEudGVzdIIJdDIwMi50ZXN0ggl0MjAzLnRlc3SCCXQyMDQudGVzdIIJdDIw
+NS50ZXN0ggl0MjA2LnRlc3SCCXQyMDcudGVzdIIJdDIwOC50ZXN0ggl0MjA5LnRl
+c3SCCXQyMTAudGVzdIIJdDIxMS50ZXN0ggl0MjEyLnRlc3SCCXQyMTMudGVzdIIJ
+dDIxNC50ZXN0ggl0MjE1LnRlc3SCCXQyMTYudGVzdIIJdDIxNy50ZXN0ggl0MjE4
+LnRlc3SCCXQyMTkudGVzdIIJdDIyMC50ZXN0ggl0MjIxLnRlc3SCCXQyMjIudGVz
+dIIJdDIyMy50ZXN0ggl0MjI0LnRlc3SCCXQyMjUudGVzdIIJdDIyNi50ZXN0ggl0
+MjI3LnRlc3SCCXQyMjgudGVzdIIJdDIyOS50ZXN0ggl0MjMwLnRlc3SCCXQyMzEu
+dGVzdIIJdDIzMi50ZXN0ggl0MjMzLnRlc3SCCXQyMzQudGVzdIIJdDIzNS50ZXN0
+ggl0MjM2LnRlc3SCCXQyMzcudGVzdIIJdDIzOC50ZXN0ggl0MjM5LnRlc3SCCXQy
+NDAudGVzdIIJdDI0MS50ZXN0ggl0MjQyLnRlc3SCCXQyNDMudGVzdIIJdDI0NC50
+ZXN0ggl0MjQ1LnRlc3SCCXQyNDYudGVzdIIJdDI0Ny50ZXN0ggl0MjQ4LnRlc3SC
+CXQyNDkudGVzdIIJdDI1MC50ZXN0ggl0MjUxLnRlc3SCCXQyNTIudGVzdIIJdDI1
+My50ZXN0ggl0MjU0LnRlc3SCCXQyNTUudGVzdDANBgkqhkiG9w0BAQsFAAOCAQEA
+JIFn5ymMVnj0DOFldXQzAjaosat0Z1dAca0BFO/4bf+IfvpaLvZCiSucInV0ejgR
+dP3UsoiXV8qXBax1nr5t4k+yOGYbhgj3imHFtKhFaqJ45AqEJOmzCHWIN0LkN+YL
+ME6JBJr86EB+diLPBS7iljmtvN7avvmJ8AbGFI6eB5BwSjewavWpv55u52zMWti7
+Ca2WpKffH74zhnGqkbMzEiiRa1L1+H/uQBJ0BEeAZbr+pSkJZJvzY/eH8a7fLHra
+LfBqD4epDm6RI6gSNeJ+G7qSfpVSk7l9bsVh7rUTSSCKBxhcImudqBuLfswoa0Ub
+ZoA33vstMRAur0m/blHQHA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/some-names2.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/some-names2.pem
new file mode 100644
index 000000000..328e3d162
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/some-names2.pem
@@ -0,0 +1,133 @@
+-----BEGIN CERTIFICATE-----
+MIIYgzCCF2ugAwIBAgIBBjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJDQTAg
+Fw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowEjEQMA4GA1UEAxMHdDAu
+dGVzdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoL2oQZEgFBdXwu
+Pb29W75T63JfNJKKdYi6YrmKM+EKbcMue/hFrLGQXB6a2eQZFn+j3hmexeQF9T8i
+Wxh2S6rzAr1Yj+qXeDBaMf4oBEiEhBxIsaIlws3qQa4baeVEEoxw+A+ISrYHTIFc
+V/i0bcIFt5p7v7wbu686a/w0vIqPfad5amdQJMvmjZXDI+jGMvFPmBRHr2/1dJUW
+PaKsJluwR514pJv74urIyEt+dFPM2/5kc2HiLNkeuS1Hbky+dPlDIGrfaHHsCNnb
+/GjvQ6YfvDXRrYPCxWMk0x3FMSaDK9T0zoJ5hE9fViR+D6xcJO2RNUCUENS+Iipj
+3kIrLbkCAwEAAaOCFeUwghXhMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggr
+BgEFBQcDATAMBgNVHRMBAf8EAjAAMIIVqgYDVR0RBIIVoTCCFZ2CB3QwLnRlc3SC
+B3QxLnRlc3SCB3QyLnRlc3SCB3QzLnRlc3SCB3Q0LnRlc3SCB3Q1LnRlc3SCB3Q2
+LnRlc3SCB3Q3LnRlc3SCB3Q4LnRlc3SCB3Q5LnRlc3SCCHQxMC50ZXN0ggh0MTEu
+dGVzdIIIdDEyLnRlc3SCCHQxMy50ZXN0ggh0MTQudGVzdIIIdDE1LnRlc3SCCHQx
+Ni50ZXN0ggh0MTcudGVzdIIIdDE4LnRlc3SCCHQxOS50ZXN0ggh0MjAudGVzdIII
+dDIxLnRlc3SCCHQyMi50ZXN0ggh0MjMudGVzdIIIdDI0LnRlc3SCCHQyNS50ZXN0
+ggh0MjYudGVzdIIIdDI3LnRlc3SCCHQyOC50ZXN0ggh0MjkudGVzdIIIdDMwLnRl
+c3SCCHQzMS50ZXN0ggh0MzIudGVzdIIIdDMzLnRlc3SCCHQzNC50ZXN0ggh0MzUu
+dGVzdIIIdDM2LnRlc3SCCHQzNy50ZXN0ggh0MzgudGVzdIIIdDM5LnRlc3SCCHQ0
+MC50ZXN0ggh0NDEudGVzdIIIdDQyLnRlc3SCCHQ0My50ZXN0ggh0NDQudGVzdIII
+dDQ1LnRlc3SCCHQ0Ni50ZXN0ggh0NDcudGVzdIIIdDQ4LnRlc3SCCHQ0OS50ZXN0
+ggh0NTAudGVzdIIIdDUxLnRlc3SCCHQ1Mi50ZXN0ggh0NTMudGVzdIIIdDU0LnRl
+c3SCCHQ1NS50ZXN0ggh0NTYudGVzdIIIdDU3LnRlc3SCCHQ1OC50ZXN0ggh0NTku
+dGVzdIIIdDYwLnRlc3SCCHQ2MS50ZXN0ggh0NjIudGVzdIIIdDYzLnRlc3SCCHQ2
+NC50ZXN0ggh0NjUudGVzdIIIdDY2LnRlc3SCCHQ2Ny50ZXN0ggh0NjgudGVzdIII
+dDY5LnRlc3SCCHQ3MC50ZXN0ggh0NzEudGVzdIIIdDcyLnRlc3SCCHQ3My50ZXN0
+ggh0NzQudGVzdIIIdDc1LnRlc3SCCHQ3Ni50ZXN0ggh0NzcudGVzdIIIdDc4LnRl
+c3SCCHQ3OS50ZXN0ggh0ODAudGVzdIIIdDgxLnRlc3SCCHQ4Mi50ZXN0ggh0ODMu
+dGVzdIIIdDg0LnRlc3SCCHQ4NS50ZXN0ggh0ODYudGVzdIIIdDg3LnRlc3SCCHQ4
+OC50ZXN0ggh0ODkudGVzdIIIdDkwLnRlc3SCCHQ5MS50ZXN0ggh0OTIudGVzdIII
+dDkzLnRlc3SCCHQ5NC50ZXN0ggh0OTUudGVzdIIIdDk2LnRlc3SCCHQ5Ny50ZXN0
+ggh0OTgudGVzdIIIdDk5LnRlc3SCCXQxMDAudGVzdIIJdDEwMS50ZXN0ggl0MTAy
+LnRlc3SCCXQxMDMudGVzdIIJdDEwNC50ZXN0ggl0MTA1LnRlc3SCCXQxMDYudGVz
+dIIJdDEwNy50ZXN0ggl0MTA4LnRlc3SCCXQxMDkudGVzdIIJdDExMC50ZXN0ggl0
+MTExLnRlc3SCCXQxMTIudGVzdIIJdDExMy50ZXN0ggl0MTE0LnRlc3SCCXQxMTUu
+dGVzdIIJdDExNi50ZXN0ggl0MTE3LnRlc3SCCXQxMTgudGVzdIIJdDExOS50ZXN0
+ggl0MTIwLnRlc3SCCXQxMjEudGVzdIIJdDEyMi50ZXN0ggl0MTIzLnRlc3SCCXQx
+MjQudGVzdIIJdDEyNS50ZXN0ggl0MTI2LnRlc3SCCXQxMjcudGVzdIIJdDEyOC50
+ZXN0ggl0MTI5LnRlc3SCCXQxMzAudGVzdIIJdDEzMS50ZXN0ggl0MTMyLnRlc3SC
+CXQxMzMudGVzdIIJdDEzNC50ZXN0ggl0MTM1LnRlc3SCCXQxMzYudGVzdIIJdDEz
+Ny50ZXN0ggl0MTM4LnRlc3SCCXQxMzkudGVzdIIJdDE0MC50ZXN0ggl0MTQxLnRl
+c3SCCXQxNDIudGVzdIIJdDE0My50ZXN0ggl0MTQ0LnRlc3SCCXQxNDUudGVzdIIJ
+dDE0Ni50ZXN0ggl0MTQ3LnRlc3SCCXQxNDgudGVzdIIJdDE0OS50ZXN0ggl0MTUw
+LnRlc3SCCXQxNTEudGVzdIIJdDE1Mi50ZXN0ggl0MTUzLnRlc3SCCXQxNTQudGVz
+dIIJdDE1NS50ZXN0ggl0MTU2LnRlc3SCCXQxNTcudGVzdIIJdDE1OC50ZXN0ggl0
+MTU5LnRlc3SCCXQxNjAudGVzdIIJdDE2MS50ZXN0ggl0MTYyLnRlc3SCCXQxNjMu
+dGVzdIIJdDE2NC50ZXN0ggl0MTY1LnRlc3SCCXQxNjYudGVzdIIJdDE2Ny50ZXN0
+ggl0MTY4LnRlc3SCCXQxNjkudGVzdIIJdDE3MC50ZXN0ggl0MTcxLnRlc3SCCXQx
+NzIudGVzdIIJdDE3My50ZXN0ggl0MTc0LnRlc3SCCXQxNzUudGVzdIIJdDE3Ni50
+ZXN0ggl0MTc3LnRlc3SCCXQxNzgudGVzdIIJdDE3OS50ZXN0ggl0MTgwLnRlc3SC
+CXQxODEudGVzdIIJdDE4Mi50ZXN0ggl0MTgzLnRlc3SCCXQxODQudGVzdIIJdDE4
+NS50ZXN0ggl0MTg2LnRlc3SCCXQxODcudGVzdIIJdDE4OC50ZXN0ggl0MTg5LnRl
+c3SCCXQxOTAudGVzdIIJdDE5MS50ZXN0ggl0MTkyLnRlc3SCCXQxOTMudGVzdIIJ
+dDE5NC50ZXN0ggl0MTk1LnRlc3SCCXQxOTYudGVzdIIJdDE5Ny50ZXN0ggl0MTk4
+LnRlc3SCCXQxOTkudGVzdIIJdDIwMC50ZXN0ggl0MjAxLnRlc3SCCXQyMDIudGVz
+dIIJdDIwMy50ZXN0ggl0MjA0LnRlc3SCCXQyMDUudGVzdIIJdDIwNi50ZXN0ggl0
+MjA3LnRlc3SCCXQyMDgudGVzdIIJdDIwOS50ZXN0ggl0MjEwLnRlc3SCCXQyMTEu
+dGVzdIIJdDIxMi50ZXN0ggl0MjEzLnRlc3SCCXQyMTQudGVzdIIJdDIxNS50ZXN0
+ggl0MjE2LnRlc3SCCXQyMTcudGVzdIIJdDIxOC50ZXN0ggl0MjE5LnRlc3SCCXQy
+MjAudGVzdIIJdDIyMS50ZXN0ggl0MjIyLnRlc3SCCXQyMjMudGVzdIIJdDIyNC50
+ZXN0ggl0MjI1LnRlc3SCCXQyMjYudGVzdIIJdDIyNy50ZXN0ggl0MjI4LnRlc3SC
+CXQyMjkudGVzdIIJdDIzMC50ZXN0ggl0MjMxLnRlc3SCCXQyMzIudGVzdIIJdDIz
+My50ZXN0ggl0MjM0LnRlc3SCCXQyMzUudGVzdIIJdDIzNi50ZXN0ggl0MjM3LnRl
+c3SCCXQyMzgudGVzdIIJdDIzOS50ZXN0ggl0MjQwLnRlc3SCCXQyNDEudGVzdIIJ
+dDI0Mi50ZXN0ggl0MjQzLnRlc3SCCXQyNDQudGVzdIIJdDI0NS50ZXN0ggl0MjQ2
+LnRlc3SCCXQyNDcudGVzdIIJdDI0OC50ZXN0ggl0MjQ5LnRlc3SCCXQyNTAudGVz
+dIIJdDI1MS50ZXN0ggl0MjUyLnRlc3SCCXQyNTMudGVzdIIJdDI1NC50ZXN0ggl0
+MjU1LnRlc3SCCXQyNTYudGVzdIIJdDI1Ny50ZXN0ggl0MjU4LnRlc3SCCXQyNTku
+dGVzdIIJdDI2MC50ZXN0ggl0MjYxLnRlc3SCCXQyNjIudGVzdIIJdDI2My50ZXN0
+ggl0MjY0LnRlc3SCCXQyNjUudGVzdIIJdDI2Ni50ZXN0ggl0MjY3LnRlc3SCCXQy
+NjgudGVzdIIJdDI2OS50ZXN0ggl0MjcwLnRlc3SCCXQyNzEudGVzdIIJdDI3Mi50
+ZXN0ggl0MjczLnRlc3SCCXQyNzQudGVzdIIJdDI3NS50ZXN0ggl0Mjc2LnRlc3SC
+CXQyNzcudGVzdIIJdDI3OC50ZXN0ggl0Mjc5LnRlc3SCCXQyODAudGVzdIIJdDI4
+MS50ZXN0ggl0MjgyLnRlc3SCCXQyODMudGVzdIIJdDI4NC50ZXN0ggl0Mjg1LnRl
+c3SCCXQyODYudGVzdIIJdDI4Ny50ZXN0ggl0Mjg4LnRlc3SCCXQyODkudGVzdIIJ
+dDI5MC50ZXN0ggl0MjkxLnRlc3SCCXQyOTIudGVzdIIJdDI5My50ZXN0ggl0Mjk0
+LnRlc3SCCXQyOTUudGVzdIIJdDI5Ni50ZXN0ggl0Mjk3LnRlc3SCCXQyOTgudGVz
+dIIJdDI5OS50ZXN0ggl0MzAwLnRlc3SCCXQzMDEudGVzdIIJdDMwMi50ZXN0ggl0
+MzAzLnRlc3SCCXQzMDQudGVzdIIJdDMwNS50ZXN0ggl0MzA2LnRlc3SCCXQzMDcu
+dGVzdIIJdDMwOC50ZXN0ggl0MzA5LnRlc3SCCXQzMTAudGVzdIIJdDMxMS50ZXN0
+ggl0MzEyLnRlc3SCCXQzMTMudGVzdIIJdDMxNC50ZXN0ggl0MzE1LnRlc3SCCXQz
+MTYudGVzdIIJdDMxNy50ZXN0ggl0MzE4LnRlc3SCCXQzMTkudGVzdIIJdDMyMC50
+ZXN0ggl0MzIxLnRlc3SCCXQzMjIudGVzdIIJdDMyMy50ZXN0ggl0MzI0LnRlc3SC
+CXQzMjUudGVzdIIJdDMyNi50ZXN0ggl0MzI3LnRlc3SCCXQzMjgudGVzdIIJdDMy
+OS50ZXN0ggl0MzMwLnRlc3SCCXQzMzEudGVzdIIJdDMzMi50ZXN0ggl0MzMzLnRl
+c3SCCXQzMzQudGVzdIIJdDMzNS50ZXN0ggl0MzM2LnRlc3SCCXQzMzcudGVzdIIJ
+dDMzOC50ZXN0ggl0MzM5LnRlc3SCCXQzNDAudGVzdIIJdDM0MS50ZXN0ggl0MzQy
+LnRlc3SCCXQzNDMudGVzdIIJdDM0NC50ZXN0ggl0MzQ1LnRlc3SCCXQzNDYudGVz
+dIIJdDM0Ny50ZXN0ggl0MzQ4LnRlc3SCCXQzNDkudGVzdIIJdDM1MC50ZXN0ggl0
+MzUxLnRlc3SCCXQzNTIudGVzdIIJdDM1My50ZXN0ggl0MzU0LnRlc3SCCXQzNTUu
+dGVzdIIJdDM1Ni50ZXN0ggl0MzU3LnRlc3SCCXQzNTgudGVzdIIJdDM1OS50ZXN0
+ggl0MzYwLnRlc3SCCXQzNjEudGVzdIIJdDM2Mi50ZXN0ggl0MzYzLnRlc3SCCXQz
+NjQudGVzdIIJdDM2NS50ZXN0ggl0MzY2LnRlc3SCCXQzNjcudGVzdIIJdDM2OC50
+ZXN0ggl0MzY5LnRlc3SCCXQzNzAudGVzdIIJdDM3MS50ZXN0ggl0MzcyLnRlc3SC
+CXQzNzMudGVzdIIJdDM3NC50ZXN0ggl0Mzc1LnRlc3SCCXQzNzYudGVzdIIJdDM3
+Ny50ZXN0ggl0Mzc4LnRlc3SCCXQzNzkudGVzdIIJdDM4MC50ZXN0ggl0MzgxLnRl
+c3SCCXQzODIudGVzdIIJdDM4My50ZXN0ggl0Mzg0LnRlc3SCCXQzODUudGVzdIIJ
+dDM4Ni50ZXN0ggl0Mzg3LnRlc3SCCXQzODgudGVzdIIJdDM4OS50ZXN0ggl0Mzkw
+LnRlc3SCCXQzOTEudGVzdIIJdDM5Mi50ZXN0ggl0MzkzLnRlc3SCCXQzOTQudGVz
+dIIJdDM5NS50ZXN0ggl0Mzk2LnRlc3SCCXQzOTcudGVzdIIJdDM5OC50ZXN0ggl0
+Mzk5LnRlc3SCCXQ0MDAudGVzdIIJdDQwMS50ZXN0ggl0NDAyLnRlc3SCCXQ0MDMu
+dGVzdIIJdDQwNC50ZXN0ggl0NDA1LnRlc3SCCXQ0MDYudGVzdIIJdDQwNy50ZXN0
+ggl0NDA4LnRlc3SCCXQ0MDkudGVzdIIJdDQxMC50ZXN0ggl0NDExLnRlc3SCCXQ0
+MTIudGVzdIIJdDQxMy50ZXN0ggl0NDE0LnRlc3SCCXQ0MTUudGVzdIIJdDQxNi50
+ZXN0ggl0NDE3LnRlc3SCCXQ0MTgudGVzdIIJdDQxOS50ZXN0ggl0NDIwLnRlc3SC
+CXQ0MjEudGVzdIIJdDQyMi50ZXN0ggl0NDIzLnRlc3SCCXQ0MjQudGVzdIIJdDQy
+NS50ZXN0ggl0NDI2LnRlc3SCCXQ0MjcudGVzdIIJdDQyOC50ZXN0ggl0NDI5LnRl
+c3SCCXQ0MzAudGVzdIIJdDQzMS50ZXN0ggl0NDMyLnRlc3SCCXQ0MzMudGVzdIIJ
+dDQzNC50ZXN0ggl0NDM1LnRlc3SCCXQ0MzYudGVzdIIJdDQzNy50ZXN0ggl0NDM4
+LnRlc3SCCXQ0MzkudGVzdIIJdDQ0MC50ZXN0ggl0NDQxLnRlc3SCCXQ0NDIudGVz
+dIIJdDQ0My50ZXN0ggl0NDQ0LnRlc3SCCXQ0NDUudGVzdIIJdDQ0Ni50ZXN0ggl0
+NDQ3LnRlc3SCCXQ0NDgudGVzdIIJdDQ0OS50ZXN0ggl0NDUwLnRlc3SCCXQ0NTEu
+dGVzdIIJdDQ1Mi50ZXN0ggl0NDUzLnRlc3SCCXQ0NTQudGVzdIIJdDQ1NS50ZXN0
+ggl0NDU2LnRlc3SCCXQ0NTcudGVzdIIJdDQ1OC50ZXN0ggl0NDU5LnRlc3SCCXQ0
+NjAudGVzdIIJdDQ2MS50ZXN0ggl0NDYyLnRlc3SCCXQ0NjMudGVzdIIJdDQ2NC50
+ZXN0ggl0NDY1LnRlc3SCCXQ0NjYudGVzdIIJdDQ2Ny50ZXN0ggl0NDY4LnRlc3SC
+CXQ0NjkudGVzdIIJdDQ3MC50ZXN0ggl0NDcxLnRlc3SCCXQ0NzIudGVzdIIJdDQ3
+My50ZXN0ggl0NDc0LnRlc3SCCXQ0NzUudGVzdIIJdDQ3Ni50ZXN0ggl0NDc3LnRl
+c3SCCXQ0NzgudGVzdIIJdDQ3OS50ZXN0ggl0NDgwLnRlc3SCCXQ0ODEudGVzdIIJ
+dDQ4Mi50ZXN0ggl0NDgzLnRlc3SCCXQ0ODQudGVzdIIJdDQ4NS50ZXN0ggl0NDg2
+LnRlc3SCCXQ0ODcudGVzdIIJdDQ4OC50ZXN0ggl0NDg5LnRlc3SCCXQ0OTAudGVz
+dIIJdDQ5MS50ZXN0ggl0NDkyLnRlc3SCCXQ0OTMudGVzdIIJdDQ5NC50ZXN0ggl0
+NDk1LnRlc3SCCXQ0OTYudGVzdIIJdDQ5Ny50ZXN0ggl0NDk4LnRlc3SCCXQ0OTku
+dGVzdIIJdDUwMC50ZXN0ggl0NTAxLnRlc3SCCXQ1MDIudGVzdIIJdDUwMy50ZXN0
+ggl0NTA0LnRlc3SCCXQ1MDUudGVzdIIJdDUwNi50ZXN0ggl0NTA3LnRlc3SCCXQ1
+MDgudGVzdIIJdDUwOS50ZXN0ggl0NTEwLnRlc3SCCXQ1MTEudGVzdIIJdDUxMi50
+ZXN0MA0GCSqGSIb3DQEBCwUAA4IBAQBjxDfYTobCREWVHPrt1T9iT2t0gieS7hVw
+lQaezO1n+m0MerQ92DHhMXBROBiMXIWyvTa341xClpYAwPqqAIUEdS0L5r4Jq/Ep
+4uglb+eZXMvTAm89KH3L8xTugc8UtHMqbfyo92v96wgFXBrcDDXIkGdPkLyz2s2J
+QjpNVG/La/EYTQdHPgv6Rg0g+t6RNN1JJ0p1wQ5ItDc8d/bfWdlG/EViWVRsiSBh
+7YRbkGWdnHnorCe0yIg0jKCk3UhgXaYY66/alpmE/QVXSaLgNvdmJ5m9mixY0ZaB
+0niy+KzIgBczvDcxVdL5/fsxGvA4nI8Gi7Z+EJDKXeED+FwcTDJD
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/some-names3.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/some-names3.pem
new file mode 100644
index 000000000..a6d3ee790
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/some-names3.pem
@@ -0,0 +1,293 @@
+-----BEGIN CERTIFICATE-----
+MII2fzCCNWegAwIBAgIBBzANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJDQTAg
+Fw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowgjO+MRAwDgYDVQQDEwd0
+MC50ZXN0MRYwFAYJKoZIhvcNAQkBFgd0MEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+MUB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0MkB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+M0B0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0NEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+NUB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0NkB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+N0B0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0OEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0
+OUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MTBAdGVzdDEXMBUGCSqGSIb3DQEJARYI
+dDExQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQxMkB0ZXN0MRcwFQYJKoZIhvcNAQkB
+Fgh0MTNAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDE0QHRlc3QxFzAVBgkqhkiG9w0B
+CQEWCHQxNUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MTZAdGVzdDEXMBUGCSqGSIb3
+DQEJARYIdDE3QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQxOEB0ZXN0MRcwFQYJKoZI
+hvcNAQkBFgh0MTlAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDIwQHRlc3QxFzAVBgkq
+hkiG9w0BCQEWCHQyMUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MjJAdGVzdDEXMBUG
+CSqGSIb3DQEJARYIdDIzQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQyNEB0ZXN0MRcw
+FQYJKoZIhvcNAQkBFgh0MjVAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDI2QHRlc3Qx
+FzAVBgkqhkiG9w0BCQEWCHQyN0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MjhAdGVz
+dDEXMBUGCSqGSIb3DQEJARYIdDI5QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzMEB0
+ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MzFAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDMy
+QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzM0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0
+MzRAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDM1QHRlc3QxFzAVBgkqhkiG9w0BCQEW
+CHQzNkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MzdAdGVzdDEXMBUGCSqGSIb3DQEJ
+ARYIdDM4QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzOUB0ZXN0MRcwFQYJKoZIhvcN
+AQkBFgh0NDBAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDQxQHRlc3QxFzAVBgkqhkiG
+9w0BCQEWCHQ0MkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NDNAdGVzdDEXMBUGCSqG
+SIb3DQEJARYIdDQ0QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ0NUB0ZXN0MRcwFQYJ
+KoZIhvcNAQkBFgh0NDZAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDQ3QHRlc3QxFzAV
+BgkqhkiG9w0BCQEWCHQ0OEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NDlAdGVzdDEX
+MBUGCSqGSIb3DQEJARYIdDUwQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ1MUB0ZXN0
+MRcwFQYJKoZIhvcNAQkBFgh0NTJAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDUzQHRl
+c3QxFzAVBgkqhkiG9w0BCQEWCHQ1NEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NTVA
+dGVzdDEXMBUGCSqGSIb3DQEJARYIdDU2QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ1
+N0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NThAdGVzdDEXMBUGCSqGSIb3DQEJARYI
+dDU5QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ2MEB0ZXN0MRcwFQYJKoZIhvcNAQkB
+Fgh0NjFAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDYyQHRlc3QxFzAVBgkqhkiG9w0B
+CQEWCHQ2M0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NjRAdGVzdDEXMBUGCSqGSIb3
+DQEJARYIdDY1QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ2NkB0ZXN0MRcwFQYJKoZI
+hvcNAQkBFgh0NjdAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDY4QHRlc3QxFzAVBgkq
+hkiG9w0BCQEWCHQ2OUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzBAdGVzdDEXMBUG
+CSqGSIb3DQEJARYIdDcxQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ3MkB0ZXN0MRcw
+FQYJKoZIhvcNAQkBFgh0NzNAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDc0QHRlc3Qx
+FzAVBgkqhkiG9w0BCQEWCHQ3NUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzZAdGVz
+dDEXMBUGCSqGSIb3DQEJARYIdDc3QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ3OEB0
+ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzlAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDgw
+QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ4MUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0
+ODJAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDgzQHRlc3QxFzAVBgkqhkiG9w0BCQEW
+CHQ4NEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0ODVAdGVzdDEXMBUGCSqGSIb3DQEJ
+ARYIdDg2QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ4N0B0ZXN0MRcwFQYJKoZIhvcN
+AQkBFgh0ODhAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDg5QHRlc3QxFzAVBgkqhkiG
+9w0BCQEWCHQ5MEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0OTFAdGVzdDEXMBUGCSqG
+SIb3DQEJARYIdDkyQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ5M0B0ZXN0MRcwFQYJ
+KoZIhvcNAQkBFgh0OTRAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDk1QHRlc3QxFzAV
+BgkqhkiG9w0BCQEWCHQ5NkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0OTdAdGVzdDEX
+MBUGCSqGSIb3DQEJARYIdDk4QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ5OUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTAwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMDFA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDEwMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTAzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMDRAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDEwNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTA2QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQxMDdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEwOEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MTA5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTBAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDExMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTEyQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQxMTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEx
+NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTE1QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQxMTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDExN0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MTE4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTlAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDEyMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTIxQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQxMjJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEyM0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTI0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMjVA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDEyNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTI3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMjhAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDEyOUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTMwQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQxMzFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEzMkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MTMzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMzRAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDEzNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTM2QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQxMzdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEz
+OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTM5QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQxNDBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE0MUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MTQyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNDNAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDE0NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTQ1QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQxNDZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE0N0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTQ4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNDlA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDE1MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTUxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNTJAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDE1M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTU0QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQxNTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE1NkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MTU3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNThAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDE1OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTYwQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQxNjFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE2
+MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTYzQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQxNjRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE2NUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MTY2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNjdAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDE2OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTY5QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQxNzBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE3MUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTcyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNzNA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDE3NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTc1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNzZAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDE3N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTc4QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQxNzlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4MEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MTgxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxODJAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDE4M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTg0QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQxODVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4
+NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTg3QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQxODhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4OUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MTkwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxOTFAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDE5MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTkzQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQxOTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE5NUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MTk2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxOTdA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDE5OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MTk5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDBAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDIwMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjAyQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQyMDNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIwNEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MjA1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDZAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDIwN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjA4QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQyMDlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIx
+MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjExQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQyMTJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIxM0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MjE0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMTVAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDIxNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjE3QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQyMThAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIxOUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MjIwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMjFA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDIyMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MjIzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMjRAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDIyNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjI2QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQyMjdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIyOEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MjI5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzBAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDIzMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjMyQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQyMzNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIz
+NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjM1QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQyMzZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIzN0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MjM4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzlAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDI0MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjQxQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQyNDJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI0M0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MjQ0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNDVA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDI0NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MjQ3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNDhAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDI0OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjUwQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQyNTFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI1MkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MjUzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNTRAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDI1NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjU2QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQyNTdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI1
+OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjU5QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQyNjBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI2MUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MjYyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNjNAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDI2NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjY1QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQyNjZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI2N0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MjY4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNjlA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDI3MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MjcxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNzJAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDI3M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mjc0QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQyNzVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI3NkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0Mjc3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNzhAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDI3OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjgwQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQyODFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI4
+MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjgzQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQyODRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI4NUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0Mjg2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyODdAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDI4OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mjg5QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQyOTBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI5MUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MjkyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyOTNA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDI5NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+Mjk1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyOTZAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDI5N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mjk4QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQyOTlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMwMEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MzAxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMDJAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDMwM0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzA0QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQzMDVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMw
+NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzA3QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQzMDhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMwOUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MzEwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMTFAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDMxMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzEzQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQzMTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMxNUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MzE2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMTdA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDMxOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MzE5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMjBAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDMyMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzIyQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQzMjNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMyNEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MzI1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMjZAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDMyN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzI4QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQzMjlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMz
+MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzMxQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQzMzJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMzM0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MzM0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMzVAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDMzNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzM3QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQzMzhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMzOUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MzQwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNDFA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDM0MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MzQzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNDRAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDM0NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzQ2QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQzNDdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM0OEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MzQ5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNTBAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDM1MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzUyQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQzNTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM1
+NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzU1QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQzNTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM1N0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MzU4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNTlAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDM2MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzYxQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQzNjJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM2M0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0MzY0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNjVA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDM2NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MzY3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNjhAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDM2OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzcwQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQzNzFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM3MkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0MzczQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNzRAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDM3NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzc2QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQzNzdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM3
+OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzc5QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQzODBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM4MUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0MzgyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzODNAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDM4NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzg1QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQzODZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM4N0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0Mzg4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzODlA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDM5MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+MzkxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzOTJAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDM5M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzk0QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQzOTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM5NkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0Mzk3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzOThAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDM5OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDAwQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ0MDFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQw
+MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDAzQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ0MDRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQwNUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NDA2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MDdAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDQwOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDA5QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ0MTBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQxMUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NDEyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MTNA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDQxNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NDE1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MTZAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDQxN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDE4QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ0MTlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQyMEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NDIxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MjJAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDQyM0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDI0QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ0MjVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQy
+NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDI3QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ0MjhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQyOUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NDMwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MzFAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDQzMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDMzQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ0MzRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQzNUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NDM2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MzdA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDQzOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NDM5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NDBAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDQ0MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDQyQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ0NDNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ0NEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NDQ1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NDZAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDQ0N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDQ4QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ0NDlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ1
+MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDUxQHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ0NTJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ1M0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NDU0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NTVAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDQ1NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDU3QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ0NThAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ1OUB0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NDYwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NjFA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ2MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NDYzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NjRAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDQ2NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDY2QHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ0NjdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ2OEB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NDY5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NzBAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDQ3MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDcyQHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ0NzNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ3
+NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDc1QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ0NzZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ3N0B0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NDc4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NzlAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDQ4MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDgxQHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ0ODJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ4M0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NDg0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0ODVA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ4NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NDg3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0ODhAdGVzdDEYMBYGCSqGSIb3DQEJ
+ARYJdDQ4OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDkwQHRlc3QxGDAWBgkqhkiG
+9w0BCQEWCXQ0OTFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ5MkB0ZXN0MRgwFgYJ
+KoZIhvcNAQkBFgl0NDkzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0OTRAdGVzdDEY
+MBYGCSqGSIb3DQEJARYJdDQ5NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDk2QHRl
+c3QxGDAWBgkqhkiG9w0BCQEWCXQ0OTdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ5
+OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDk5QHRlc3QxGDAWBgkqhkiG9w0BCQEW
+CXQ1MDBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUwMUB0ZXN0MRgwFgYJKoZIhvcN
+AQkBFgl0NTAyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MDNAdGVzdDEYMBYGCSqG
+SIb3DQEJARYJdDUwNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTA1QHRlc3QxGDAW
+BgkqhkiG9w0BCQEWCXQ1MDZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUwN0B0ZXN0
+MRgwFgYJKoZIhvcNAQkBFgl0NTA4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MDlA
+dGVzdDEYMBYGCSqGSIb3DQEJARYJdDUxMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0
+NTExQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MTJAdGVzdDCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBALoL2oQZEgFBdXwuPb29W75T63JfNJKKdYi6YrmK
+M+EKbcMue/hFrLGQXB6a2eQZFn+j3hmexeQF9T8iWxh2S6rzAr1Yj+qXeDBaMf4o
+BEiEhBxIsaIlws3qQa4baeVEEoxw+A+ISrYHTIFcV/i0bcIFt5p7v7wbu686a/w0
+vIqPfad5amdQJMvmjZXDI+jGMvFPmBRHr2/1dJUWPaKsJluwR514pJv74urIyEt+
+dFPM2/5kc2HiLNkeuS1Hbky+dPlDIGrfaHHsCNnb/GjvQ6YfvDXRrYPCxWMk0x3F
+MSaDK9T0zoJ5hE9fViR+D6xcJO2RNUCUENS+Iipj3kIrLbkCAwEAAaM1MDMwDgYD
+VR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAw
+DQYJKoZIhvcNAQELBQADggEBAH6ad2kFE0qGDe3ErMdwTGjbBz3T12dDvAUVhGHQ
+uZShOdPsXMHD2mUqFgLE0iJFeXB7jOSAKtzmKHNmxZ4W0UZ7eMPPogkgIbG3d3yR
+8zBO21CUyOQWChywpKcAou9ji3Kq6pb4+mqq0a5TGIYyGJKSUTv09KI+iHgwteCX
+DHzzhuTs8AhodmNO5K/F9YFWJWvQ1NrwyUmOFEw8/UcljyKxFrP2VEov0fWeiTRB
+Ps6VaFBW7SEEi8fAM9W5kfsl+iWRvwFcFdXGQt1HbeywCu58DLI4uceHCFb+3MMO
+Xv7wJ5UhQODuzwuq7CuZvlxR2tiFoPP+s5fPH0L8MBP5z6w=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot+anyEKU.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot+anyEKU.pem
new file mode 100644
index 000000000..9beefa9b0
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot+anyEKU.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDBjCCAe6gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo2UwYzAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOCAQEAknUQhKHR
+lI3BOPTuD+DMabjdfZ6Sb5ICpIOcvYFnlZV0lkyK3TuOw+iSlUUzHT3MlMos1w2a
+mYPb1BpACTpB1vOcRZPaoSZqiOJrKzes+oUZG7R75lz+TK4Y1lQlWObsnUlFUDzr
+c3P3mbCALr9RPee+Mqd10E/57jjIF0sb3Cq74l7MEzD/3JWKhxEtTmChG+Q29bzW
+foaDqVaePdyk4M+TMQMioGqXYqu/4bzCnZyls1J5FfwBCtPGJ1/3wxLwk+Pavu9w
+TSagWsC90QGRYH0EauS1KqlJ6dR6Tyf6G5HHmDPufzHT0ouL5Db6C59XSMWud6RG
+E3ODKNXOOP3jsDAIMAYGBFUdJQA=
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot+clientAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot+clientAuth.pem
new file mode 100644
index 000000000..939e3e85e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot+clientAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDBjCCAe6gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo2UwYzAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOCAQEAknUQhKHR
+lI3BOPTuD+DMabjdfZ6Sb5ICpIOcvYFnlZV0lkyK3TuOw+iSlUUzHT3MlMos1w2a
+mYPb1BpACTpB1vOcRZPaoSZqiOJrKzes+oUZG7R75lz+TK4Y1lQlWObsnUlFUDzr
+c3P3mbCALr9RPee+Mqd10E/57jjIF0sb3Cq74l7MEzD/3JWKhxEtTmChG+Q29bzW
+foaDqVaePdyk4M+TMQMioGqXYqu/4bzCnZyls1J5FfwBCtPGJ1/3wxLwk+Pavu9w
+TSagWsC90QGRYH0EauS1KqlJ6dR6Tyf6G5HHmDPufzHT0ouL5Db6C59XSMWud6RG
+E3ODKNXOOP3jsDAMMAoGCCsGAQUFBwMC
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot+serverAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot+serverAuth.pem
new file mode 100644
index 000000000..447d2e3a2
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot+serverAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDBjCCAe6gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo2UwYzAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOCAQEAknUQhKHR
+lI3BOPTuD+DMabjdfZ6Sb5ICpIOcvYFnlZV0lkyK3TuOw+iSlUUzHT3MlMos1w2a
+mYPb1BpACTpB1vOcRZPaoSZqiOJrKzes+oUZG7R75lz+TK4Y1lQlWObsnUlFUDzr
+c3P3mbCALr9RPee+Mqd10E/57jjIF0sb3Cq74l7MEzD/3JWKhxEtTmChG+Q29bzW
+foaDqVaePdyk4M+TMQMioGqXYqu/4bzCnZyls1J5FfwBCtPGJ1/3wxLwk+Pavu9w
+TSagWsC90QGRYH0EauS1KqlJ6dR6Tyf6G5HHmDPufzHT0ouL5Db6C59XSMWud6RG
+E3ODKNXOOP3jsDAMMAoGCCsGAQUFBwMB
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot-anyEKU.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot-anyEKU.pem
new file mode 100644
index 000000000..7f1766a36
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot-anyEKU.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDBjCCAe6gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo2UwYzAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOCAQEAknUQhKHR
+lI3BOPTuD+DMabjdfZ6Sb5ICpIOcvYFnlZV0lkyK3TuOw+iSlUUzHT3MlMos1w2a
+mYPb1BpACTpB1vOcRZPaoSZqiOJrKzes+oUZG7R75lz+TK4Y1lQlWObsnUlFUDzr
+c3P3mbCALr9RPee+Mqd10E/57jjIF0sb3Cq74l7MEzD/3JWKhxEtTmChG+Q29bzW
+foaDqVaePdyk4M+TMQMioGqXYqu/4bzCnZyls1J5FfwBCtPGJ1/3wxLwk+Pavu9w
+TSagWsC90QGRYH0EauS1KqlJ6dR6Tyf6G5HHmDPufzHT0ouL5Db6C59XSMWud6RG
+E3ODKNXOOP3jsDAIoAYGBFUdJQA=
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot-cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot-cert.pem
new file mode 100644
index 000000000..55508d994
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot-cert.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDBjCCAe6gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo2UwYzAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOCAQEAknUQhKHR
+lI3BOPTuD+DMabjdfZ6Sb5ICpIOcvYFnlZV0lkyK3TuOw+iSlUUzHT3MlMos1w2a
+mYPb1BpACTpB1vOcRZPaoSZqiOJrKzes+oUZG7R75lz+TK4Y1lQlWObsnUlFUDzr
+c3P3mbCALr9RPee+Mqd10E/57jjIF0sb3Cq74l7MEzD/3JWKhxEtTmChG+Q29bzW
+foaDqVaePdyk4M+TMQMioGqXYqu/4bzCnZyls1J5FfwBCtPGJ1/3wxLwk+Pavu9w
+TSagWsC90QGRYH0EauS1KqlJ6dR6Tyf6G5HHmDPufzHT0ouL5Db6C59XSMWud6RG
+E3ODKNXOOP3jsA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot-clientAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot-clientAuth.pem
new file mode 100644
index 000000000..e91f1d2d6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot-clientAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDBjCCAe6gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo2UwYzAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOCAQEAknUQhKHR
+lI3BOPTuD+DMabjdfZ6Sb5ICpIOcvYFnlZV0lkyK3TuOw+iSlUUzHT3MlMos1w2a
+mYPb1BpACTpB1vOcRZPaoSZqiOJrKzes+oUZG7R75lz+TK4Y1lQlWObsnUlFUDzr
+c3P3mbCALr9RPee+Mqd10E/57jjIF0sb3Cq74l7MEzD/3JWKhxEtTmChG+Q29bzW
+foaDqVaePdyk4M+TMQMioGqXYqu/4bzCnZyls1J5FfwBCtPGJ1/3wxLwk+Pavu9w
+TSagWsC90QGRYH0EauS1KqlJ6dR6Tyf6G5HHmDPufzHT0ouL5Db6C59XSMWud6RG
+E3ODKNXOOP3jsDAMoAoGCCsGAQUFBwMC
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot-serverAuth.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot-serverAuth.pem
new file mode 100644
index 000000000..2fd78ccfb
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/sroot-serverAuth.pem
@@ -0,0 +1,19 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIDBjCCAe6gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDEyOTA0NDc0NloYDzIxMTYwMTMwMDQ0NzQ2WjASMRAwDgYDVQQD
+DAdSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eYA9Qa8
+oEY4eQ8/HnEZE20C3yubdmv8rLAh7daRCEI7pWM17FJboKJKxdYAlAOXWj25ZyjS
+feMhXKTtxjyNjoTRnVTDPdl0opZ2Z3H5xhpQd7P9eO5b4OOMiSPCmiLsPtQ3ngfN
+wCtVERc6NEIcaQ06GLDtFZRexv2eh8Yc55QaksBfBcFzQ+UD3gmRySTO2I6Lfi7g
+MUjRhipqVSZ66As2Tpex4KTJ2lxpSwOACFaDox+yKrjBTP7FsU3UwAGq7b7OJb3u
+aa32B81uK6GJVPVo65gJ7clgZsszYkoDsGjWDqtfwTVVfv1G7rrr3Laio+2Ff3ff
+tWgiQ35mJCOvxQIDAQABo2UwYzAdBgNVHQ4EFgQUjvUlrx6ba4Q9fICayVOcTXL3
+o1IwHwYDVR0jBBgwFoAUjvUlrx6ba4Q9fICayVOcTXL3o1IwDAYDVR0TBAUwAwEB
+/zATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOCAQEAknUQhKHR
+lI3BOPTuD+DMabjdfZ6Sb5ICpIOcvYFnlZV0lkyK3TuOw+iSlUUzHT3MlMos1w2a
+mYPb1BpACTpB1vOcRZPaoSZqiOJrKzes+oUZG7R75lz+TK4Y1lQlWObsnUlFUDzr
+c3P3mbCALr9RPee+Mqd10E/57jjIF0sb3Cq74l7MEzD/3JWKhxEtTmChG+Q29bzW
+foaDqVaePdyk4M+TMQMioGqXYqu/4bzCnZyls1J5FfwBCtPGJ1/3wxLwk+Pavu9w
+TSagWsC90QGRYH0EauS1KqlJ6dR6Tyf6G5HHmDPufzHT0ouL5Db6C59XSMWud6RG
+E3ODKNXOOP3jsDAMoAoGCCsGAQUFBwMB
+-----END TRUSTED CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/subinterCA-ss.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/subinterCA-ss.pem
new file mode 100644
index 000000000..a436b4b00
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/subinterCA-ss.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDhzCCAm+gAwIBAgIJAJTed6XmFiu/MA0GCSqGSIb3DQEBCwUAMFoxCzAJBgNV
+BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQxEzARBgNVBAMMCnN1YmludGVyQ0EwHhcNMTUwNzAyMTMy
+MTU4WhcNMzUwNzAyMTMyMTU4WjBaMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29t
+ZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRMwEQYD
+VQQDDApzdWJpbnRlckNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
+/zQjvhbU7RWDsRaEkVUBZWR/PqZ49GoE9p3OyRN4pkt1c1yb2ARVkYZP5e9gHb04
+wPVz2+FYy+2mNkl+uAZbcK5w5fWO3WJIEn57he4MkWu3ew1nJeSv3na8gyOoCheG
+64kWVbA2YL92mR7QoSCo4SP7RmykLrwj6TlDxqgH6DxKSD/CpdCHE3DKAzAiri3G
+Vc90OJAszYHlje4/maVIOayGROVET3xa5cbtRJl8IBgmqhMywtz4hhY/XZTvdEn2
+90aL857Hk7JjogA7mLKi07yKzknMxHV+k6JX7xJEttkcNQRFHONWZG1T4mRY1Drh
+6VbJGb+0GNIldNLQqigkfwIDAQABo1AwTjAMBgNVHRMEBTADAQH/MB0GA1UdDgQW
+BBTpZ30QdMGarrhMPwk+HHAV3R8aTzAfBgNVHSMEGDAWgBTpZ30QdMGarrhMPwk+
+HHAV3R8aTzANBgkqhkiG9w0BAQsFAAOCAQEAF8UAMtV1DClUWRw1h+THdAhjeo8S
+9BOp6QphtlYuc9o+tQri5m+WqbyUZKIBEtumNhFb7QI1e4hO64y1kKbSs2AjWcJ2
+QxAyGiMM3wl2UfxPohDtgNhm0GFgQ1tUTeSnW3kAom9NqI7U/2lPpLh4rrFYTepR
+wy0FV3NpRuHPtJE0VfqYnwWiTRdCJ7w1XzknKOUSHP/hRbyJVlwQp3VEQ9SIOYU6
+C+QEVGIgQiST6MRlCvoNP43guaRtrMuBZJaHKy/hLPvkdRpXHoUeKQFDuH77sZsF
+sBv3EHNKoBvpSpSJndZN6UcH7Z1yn41Y6AnO4u492jiRAjQpP9+Nf/x1eg==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/subinterCA.key b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/subinterCA.key
new file mode 100644
index 000000000..c867af946
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/subinterCA.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpQIBAAKCAQEA/zQjvhbU7RWDsRaEkVUBZWR/PqZ49GoE9p3OyRN4pkt1c1yb
+2ARVkYZP5e9gHb04wPVz2+FYy+2mNkl+uAZbcK5w5fWO3WJIEn57he4MkWu3ew1n
+JeSv3na8gyOoCheG64kWVbA2YL92mR7QoSCo4SP7RmykLrwj6TlDxqgH6DxKSD/C
+pdCHE3DKAzAiri3GVc90OJAszYHlje4/maVIOayGROVET3xa5cbtRJl8IBgmqhMy
+wtz4hhY/XZTvdEn290aL857Hk7JjogA7mLKi07yKzknMxHV+k6JX7xJEttkcNQRF
+HONWZG1T4mRY1Drh6VbJGb+0GNIldNLQqigkfwIDAQABAoIBAQDg14MWGu+F4gqg
+nwI1OPt95UjmXaz7Sd0NmoNxTKJjgN/9v33emBL7n6YNIxU/nlK+ToLBGo0tPjfO
+ZHoskA1H/aiiMfKowcpV4PHbUZvpE0oYM/rIu+7mxR3ZPDT0jz3jjmgLHrEKFCXd
+SfTtwOSJVzYvGdCdDE1nUXiRMcGlrJYxPf+0k3sGK7G90rYJkgffz92yuJote/s5
+P5nsK1h30yjKaWEzvf3ABladplykFN3GkICRGaCq0Nj5YWiG7qX9H9smYrioG0VH
+VqgIbV2sHnmUYZaOTmC0RnwDWSZR25xOHVbugZ7rGnf4NdoM2S/oTI/SAXcDsaDX
+lDpiEEuBAoGBAP/TISpeDRtUWzfVQxH+wbMdSbABjawf5sT7op7IsWsurY7u+KVh
+ubhaSdeR7YbTyVUqbAc4mg9TIZxDe6+/I2S8LibQAa8wnv5aR1iPj/tZJOKrtu+Z
+uHUyXMDR+8pIjQS0N+ukFp0tw9nicPNUt23JpqDFMvpASF+kUlnHOWAvAoGBAP9g
+5rDid235QnnAhNJGkxE1ZwICPSo66AD/kF8XsMnAVasR0EPJCQ1+Zmh7wsXGq6Im
+S65F4m0tsw4jeD67D1o5yuAnk/LLcdOdHW1w7iHuIhYKuWf1fqsOIqJLy7gdzwj4
+hImECoE40cqlLTge7xByxeHJwKF9ssXcwHFBIJyxAoGBAI5SeyUC5e/KYmURdBrS
+zBhFtvUAKD0WEmCMTdBgfrPOaCgYsqPvVk9Fi8cuHCLiOCP1UdxClRLpgM1ajbkc
+cShduJ9HIWjBd/KxbvfKBqQi1+5y8Xci4gfxWMC9EYNcEXgIewPRafNPvqG85HG7
+M8EUamsOymmG0bzDwjzIJRdpAoGAOUoVtmy3ehZG0WVc5ocqitu+BfdWnViln0O1
+sX9xC3F4Rm4ymGJLA5ntg1bwNMoCytdodun6h5+O4YcXfIseQJFib7KxP/Bf0qcW
+aOzCnx36y5MQUMAD8H+1SU9TnjQhs9N8eBUE/kQu3BT99e8KllgJCEPoUNIP/s8s
+5LtFg6ECgYEAgLwJoJ3hBwr0LmUi3kpFYdbZ+tAKIvKQH3xYMnQulOqtlXJFy0bu
+ZcIAwsigRUqdCC2JuyAUw52HCtVVlpQjNs4BnUzaKooLOCm3w3i6X27mnHE0200S
+zqC0rcB0xNz/IltGc7IP+T8UK5xX38uhJ/vUW75OvAjqheJSBwR9h5c=
+-----END RSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/subinterCA.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/subinterCA.pem
new file mode 100644
index 000000000..2cdf48011
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/subinterCA.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDhDCCAmygAwIBAgIJAJkv2OGshkmUMA0GCSqGSIb3DQEBCwUAMFcxCzAJBgNV
+BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMTB2ludGVyQ0EwHhcNMTUwNzAyMTMxODIz
+WhcNMzUwNzAyMTMxODIzWjBaMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1T
+dGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRMwEQYDVQQD
+EwpzdWJpbnRlckNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/zQj
+vhbU7RWDsRaEkVUBZWR/PqZ49GoE9p3OyRN4pkt1c1yb2ARVkYZP5e9gHb04wPVz
+2+FYy+2mNkl+uAZbcK5w5fWO3WJIEn57he4MkWu3ew1nJeSv3na8gyOoCheG64kW
+VbA2YL92mR7QoSCo4SP7RmykLrwj6TlDxqgH6DxKSD/CpdCHE3DKAzAiri3GVc90
+OJAszYHlje4/maVIOayGROVET3xa5cbtRJl8IBgmqhMywtz4hhY/XZTvdEn290aL
+857Hk7JjogA7mLKi07yKzknMxHV+k6JX7xJEttkcNQRFHONWZG1T4mRY1Drh6VbJ
+Gb+0GNIldNLQqigkfwIDAQABo1AwTjAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBTp
+Z30QdMGarrhMPwk+HHAV3R8aTzAfBgNVHSMEGDAWgBQY+tYjuY9dXRN9Po+okcfZ
+YcAXLjANBgkqhkiG9w0BAQsFAAOCAQEAgVUsOf9rdHlQDw4clP8GMY7QahfXbvd8
+8o++P18KeInQXH6+sCg0axZXzhOmKwn+Ina3EsOP7xk4aKIYwJ4A1xBuT7fKxquQ
+pbJyjkEBsNRVLC9t4gOA0FC791v5bOCZjyff5uN+hy8r0828nVxha6CKLqwrPd+E
+mC7DtilSZIgO2vwbTBL6ifmw9n1dd/Bl8Wdjnl7YJqTIf0Ozc2SZSMRUq9ryn4Wq
+YrjRl8NwioGb1LfjEJ0wJi2ngL3IgaN94qmDn10OJs8hlsufwP1n+Bca3fsl0m5U
+gUMG+CXxbF0kdCKZ9kQb1MJE4vOk6zfyBGQndmQnxHjt5botI/xpXg==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/untrusted.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/untrusted.pem
new file mode 100644
index 000000000..d93d312dd
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/untrusted.pem
@@ -0,0 +1,42 @@
+-----BEGIN CERTIFICATE-----
+MIIDhDCCAmygAwIBAgIJAJkv2OGshkmUMA0GCSqGSIb3DQEBCwUAMFcxCzAJBgNV
+BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMTB2ludGVyQ0EwHhcNMTUwNzAyMTMxODIz
+WhcNMzUwNzAyMTMxODIzWjBaMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1T
+dGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRMwEQYDVQQD
+EwpzdWJpbnRlckNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/zQj
+vhbU7RWDsRaEkVUBZWR/PqZ49GoE9p3OyRN4pkt1c1yb2ARVkYZP5e9gHb04wPVz
+2+FYy+2mNkl+uAZbcK5w5fWO3WJIEn57he4MkWu3ew1nJeSv3na8gyOoCheG64kW
+VbA2YL92mR7QoSCo4SP7RmykLrwj6TlDxqgH6DxKSD/CpdCHE3DKAzAiri3GVc90
+OJAszYHlje4/maVIOayGROVET3xa5cbtRJl8IBgmqhMywtz4hhY/XZTvdEn290aL
+857Hk7JjogA7mLKi07yKzknMxHV+k6JX7xJEttkcNQRFHONWZG1T4mRY1Drh6VbJ
+Gb+0GNIldNLQqigkfwIDAQABo1AwTjAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBTp
+Z30QdMGarrhMPwk+HHAV3R8aTzAfBgNVHSMEGDAWgBQY+tYjuY9dXRN9Po+okcfZ
+YcAXLjANBgkqhkiG9w0BAQsFAAOCAQEAgVUsOf9rdHlQDw4clP8GMY7QahfXbvd8
+8o++P18KeInQXH6+sCg0axZXzhOmKwn+Ina3EsOP7xk4aKIYwJ4A1xBuT7fKxquQ
+pbJyjkEBsNRVLC9t4gOA0FC791v5bOCZjyff5uN+hy8r0828nVxha6CKLqwrPd+E
+mC7DtilSZIgO2vwbTBL6ifmw9n1dd/Bl8Wdjnl7YJqTIf0Ozc2SZSMRUq9ryn4Wq
+YrjRl8NwioGb1LfjEJ0wJi2ngL3IgaN94qmDn10OJs8hlsufwP1n+Bca3fsl0m5U
+gUMG+CXxbF0kdCKZ9kQb1MJE4vOk6zfyBGQndmQnxHjt5botI/xpXg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDfjCCAmagAwIBAgIJAKRNsDKacUqNMA0GCSqGSIb3DQEBCwUAMFoxCzAJBgNV
+BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQxEzARBgNVBAMTCnN1YmludGVyQ0EwHhcNMTUwNzAyMTMx
+OTQ5WhcNMzUwNzAyMTMxOTQ5WjBUMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29t
+ZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMQ0wCwYD
+VQQDEwRsZWFmMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv0Qo9WC/
+BKA70LtQJdwVGSXqr9dut3cQmiFzTb/SaWldjOT1sRNDFxSzdTJjU/8cIDEZvaTI
+wRxP/dtVQLjc+4jzrUwz93NuZYlsEWUEUg4Lrnfs0Nz50yHk4rJhVxWjb8Ii/wRB
+ViWHFExP7CwTkXiTclC1bCqTuWkjxF3thTfTsttRyY7qNkz2JpNx0guD8v4otQoY
+jA5AEZvK4IXLwOwxol5xBTMvIrvvff2kkh+c7OC2QVbUTow/oppjqIKCx2maNHCt
+LFTJELf3fwtRJLJsy4fKGP0/6kpZc8Sp88WK4B4FauF9IV1CmoAJUC1vJxhagHIK
+fVtFjUWs8GPobQIDAQABo00wSzAJBgNVHRMEAjAAMB0GA1UdDgQWBBQcHcT+8SVG
+IRlN9YTuM9rlz7UZfzAfBgNVHSMEGDAWgBTpZ30QdMGarrhMPwk+HHAV3R8aTzAN
+BgkqhkiG9w0BAQsFAAOCAQEAGjmSkF8is+v0/RLcnSRiCXENz+yNi4pFCAt6dOtT
+6Gtpqa1tY5It9lVppfWb26JrygMIzOr/fB0r1Q7FtZ/7Ft3P6IXVdk3GDO0QsORD
+2dRAejhYpc5c7joHxAw9oRfKrEqE+ihVPUTcfcIuBaalvuhkpQRmKP71ws5DVzOw
+QhnMd0TtIrbKHaNQ4kNsmSY5fQolwB0LtNfTus7OEFdcZWhOXrWImKXN9jewPKdV
+mSG34NfXOnA6qx0eQg06z+TkdrptH6j1Va2vS1/bL+h1GxjpTHlvTGaZYxaloIjw
+y/EzY5jygRoABnR3eBm15CYZwwKL9izIq1H3OhymEi/Ycg==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/wrongcert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/wrongcert.pem
new file mode 100644
index 000000000..b8b3cfdba
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/wrongcert.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIC/TCCAeWgAwIBAgIBATANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1Xcm9u
+ZyBSb290IENBMCAXDTE2MDExNDIyMjkwMVoYDzIxMTYwMTE1MjIyOTAxWjAYMRYw
+FAYDVQQDDA1Xcm9uZyBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEA1qOM0wmfvpzDnuZbMaZd5VtYPVYFoYMhlSmUQWCH/I17zxzzWi2SCRvc
+JXx+mZcK1l7KXYabewH1fxHzBGJYI/huxqEF3G7e0cqa60XAhyEKfop0VrKMpqDh
+sNRxqC3PWaQQzijlD2XEY5h3u97qn/m4mAMO1RvKUtv0l0Go9G3VZVp0HSPxW2VM
+0xDyOhlPSYzQ0solQgvb3Nir6dyxzOFz4kCJiVwOQQ4YFvRps72NcBV7q6OWpXHE
+URIGlVlc7p/8ysGNMgj/G3mtPjVtb+AKFDESO+l9ZGi5JU1LJJf23A2BVUgP4eL1
+huZGrTsVNdIYMds1yHyoDfHABLI+TQIDAQABo1AwTjAdBgNVHQ4EFgQU0sgStYvh
+Wvrkc0aam05HE5YMZFgwHwYDVR0jBBgwFoAU0sgStYvhWvrkc0aam05HE5YMZFgw
+DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAT4DDpFvHBIzhKR1/LJx6
+1gsXYCAp1fre5luek/kGTRrInWg6OLZ7B2wLtGcfNlfpRCvLHCh1ORgctNaYwBgE
+xOGWHTsbFDfq15cOcATXgDqRch8dLv/5XKm8rXDwmi6mUfbwUDF5qko4f3hpBWvA
+EBRJSqPvaRxfiJs3SXGnCbiIcYEz0nAwgqfJl7QFXnD22Fu0FGczwzW/7kh0EeIW
+tMsyrIvMR+s6AYzwYrRnUjXBNHjRxuiy5KmyvTMoFm5R6PsD2YfUN1xFkdRy48vb
+8fVYApmiXoNWMBgVSija261L81OY4yZZw3BK8nAGrko5VmXjbfYIScpiMlZkXLHN
+Ww==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/wrongkey.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/wrongkey.pem
new file mode 100644
index 000000000..72ab17b00
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/wrongkey.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDWo4zTCZ++nMOe
+5lsxpl3lW1g9VgWhgyGVKZRBYIf8jXvPHPNaLZIJG9wlfH6ZlwrWXspdhpt7AfV/
+EfMEYlgj+G7GoQXcbt7RyprrRcCHIQp+inRWsoymoOGw1HGoLc9ZpBDOKOUPZcRj
+mHe73uqf+biYAw7VG8pS2/SXQaj0bdVlWnQdI/FbZUzTEPI6GU9JjNDSyiVCC9vc
+2Kvp3LHM4XPiQImJXA5BDhgW9GmzvY1wFXuro5alccRREgaVWVzun/zKwY0yCP8b
+ea0+NW1v4AoUMRI76X1kaLklTUskl/bcDYFVSA/h4vWG5katOxU10hgx2zXIfKgN
+8cAEsj5NAgMBAAECggEBAJBlHKMI0W/RVIT8oZMIQhi/V+CDk2wxpJENlNBamYFc
+yVLvPgOHrrv0Aykw1JaNF1xaDrfWi5i4G6jtsVhctMEWK6fywdemur3WGFx442nE
+36N7j4KXwamDh/GHKiMjFmBO0INw3ZB7PSBnfP1lnOAchoO1YvAZLwaJNMXhBUHR
+uoGrL2nv2F6EDe1whuNd6ifNPT8aX+8kOP0ooe6+rEvoe8Q6N+ktMLcl/b6y7nqt
+Tkl1CzuCnC/KJwY6LRRl6NUttw1c78IauqeNRuLYuaUKMXRjWkKTzPY7sHAdQbey
+szC6Rowso6i26n7a0yJFnML8NDZPJAsJqj7NA1rfn4ECgYEA8K51eqVe9C0uNdcG
+jxbzZZggPXM2SjGLwSz7DazN67kGkLY54B4BO1s428ZfpgsI364Cyg7vocDegAr2
+t9/+N+i/fF7c9yKICxefNcO/Q1i4hozTimQHEWpCDKgystBrWl+CopRrq/QMndGh
+oFfeLzIwQ3m69lFgTBwyTRCDsi0CgYEA5EzEI3uGVfP639x06/7h2kLeBYUlvIaA
+84O4t7oAvsIRHBsTvi5OKR2YB9ONkDLmdSEZaGg7KUgzPDBoJ2PDmGP6jEiW//bD
+9ftXb6UPUuHMyQu92wzJW6qrNSZu13NqkQ0XTBYBYlYGTvESljJhbWTDLpUd7dlV
+i4xxAkxJ8KECgYAD4MvDziZZiODVvUE9zQDfAjSCyPh2+ZVm53KkJcSrp6+TZVxJ
+YDJk4nNoFyozYroh4Ivq9ZKm6JStO3/+Nn3CKN3tAxpMYSIQC7FlDGJok2VlxZ8i
++7mhbjTiP1ORzgnsyt0wAXQ6sRQC9v3Dt6a82/IrJCr/DRCgKVQmKb31gQKBgQC5
+IctYHr5UC1KgoGysR3es/9Z9UXjFhakiT+nGC265QjSPvyFmcrRtQRNdHV/J1Izv
+5NRuxz9afbMWlwaPEqa1eDXf9qmEjf5hBd3kqkxf4L2pNv1Rme/bhu3pXu45ht2f
+HKeMyrd6n9njwDhbViWNiU2CA+hOTZTCYjPuMiEvoQKBgQCY4styVO7gKdNc3j9c
+iPAjnMjBBqLzEJdS4de2BFdKM4xhX4OWbNsO+GcMlq4k1Tt6dMKdcLmjnHWsdsqp
+UFGEMMZDd/ez6kOAGInYajr7rmRjxAolZwK7mc1OQcDiNgjb5Qs0E5zM4TEg5r56
+sU+ewyfUH6y1dTTJhjIldEfUtw==
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/x509-check-key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/x509-check-key.pem
new file mode 100644
index 000000000..20888d043
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/x509-check-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCd6jpgFiM/ZW6d
+CJlEIxmKk7rH7MRL93wW32o5duTwtT1cs/y+ylfey0l5tYBzGMxjUPNeYGTBqiuz
+6ueVyMvbe3wymXPp+zzoaq3if3Jycb+1gurSyiQpF6T1PLmfJDgQQT0XnI7qRwHI
+5FJTvKM9mpv3iKohBseT/a8yfdk27zFYrSMZjfaqZc+0a18bHi/SgNN36Lj+vnPc
+s2DzS8ymBJ10Zq6icy6xL30sHDKPOKKrD8+EJ6suUm5CpLL4N6jPOmk9Dj7XQv2Y
+woX2S0Ys6dFpHuGBJ1NngBW/0Zm9oseDOxxqplPGIYa8nN7BIrTwAJEhkmKTEi9P
+8APIi6DVAgMBAAECggEAMWkKnuoOWVXJiIUaP8GjykJzHP8uZH6paxa4zAYxmEd9
+TbZbjO8PE30UHmr2KA1IVoMLwynyHM68Ie2MTMepUaGPuN1e8YVVB3vpsIckLj79
+NzQheZcaPWlSihFYGz1f9WYUUYEBDrjtDAi04dKSWUI5LviqEu9mHx4vZWMPRiqP
+mrtp3CH34ViJL4v4TtvEeuOvLf4mYpfWe1Il7U2eYSqcxO0lCwk7nd/JCzpPWA7C
+TQZSTtp5AQ4OT7LPFZIgs/87Qi8fuEEvN+6rt07r0j6/gPOVa2xoj4a7MJYsxi9O
+s1xA8Q+xjUEnjHth1MLCrmHYbJuWptIqgPTkVvB2OQKBgQDSAywBvs7PDdt+BLTc
+6J4g/gOL/17ATysmhUGJ6VxrNulViLtiFeyf3p4vj/fSa2y4ZnP/hHovzfces1Bd
+6YXtPGIuRNOnVdlYx2Y/OGrw0baxRAIW8D6Z4ms1n8hesGssteKZeaT4ojIPpJS1
+c1UtextX5OBLYaiFxwTb1Q6bAwKBgQDAfpbrlBN4936glc5uFmKNvFfNB8P30+Bk
+DFtth5TMsCL406aUlIl4lkBrXAgUTndRai2cWYD9ffsXQmm+yx1q5kO6akeAaueq
+WMo3ViZnxK8Fe4oF4M9OoaEQRcVmV5jFMKH9S268B8/x96lNh/i7M58nB5AeNDlV
+AMyHW2vhRwKBgAxduXKk3KKei0UhW9ECNYV1z5mnwNmMD9tlz1Uik5mQky7BLV96
+MQO85Q2h6ZLPVoiJJ91s3JECDMIXBu1wub0daB6XWOsqh/DNVPz2An4JqztG6OSW
+4ujGx09SCEdjFfx8/UnSOt+VFWOMamFA2EwkSpjjVj26E2VFMckMA58nAoGADabs
+vTh7SREEgg8d3ODpjHPXJktuspzsRSw7L8F15C55zHv2TINcXJkLaJHWYNpPzA5j
+vbr7Uv8kV7n2FfoB1BsQop/3AjySwZoafWI2xxVD9HeWimQvT7xW1/iaz29W/mU8
+l+JJsDw9m0OdVkpWcbBvkS0QI5RAnK650r/BHvECgYB6s9Qp5osOCdtPli7MYyD6
+mw+61DSgThUgKa7j96NG2ToYeNWTdf2Fd4Xa7s6MWryaGY+IMSRga24CM+WvaaAL
+iGZLY8dfpM/yDr0pva4WF66ARajDhNx1wvOBQJpHnldX0G4gYczIsIWgUhzo4eH8
+37OzKradFq+avGmtCBeV8A==
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/x509-check.csr b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/x509-check.csr
new file mode 100644
index 000000000..179d05a0a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/certs/x509-check.csr
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIICXzCCAUcCAQAwGjEYMBYGA1UEAwwPeDUwOS1jaGVjay10ZXN0MIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAneo6YBYjP2VunQiZRCMZipO6x+zES/d8
+Ft9qOXbk8LU9XLP8vspX3stJebWAcxjMY1DzXmBkwaors+rnlcjL23t8Mplz6fs8
+6Gqt4n9ycnG/tYLq0sokKRek9Ty5nyQ4EEE9F5yO6kcByORSU7yjPZqb94iqIQbH
+k/2vMn3ZNu8xWK0jGY32qmXPtGtfGx4v0oDTd+i4/r5z3LNg80vMpgSddGauonMu
+sS99LBwyjziiqw/PhCerLlJuQqSy+DeozzppPQ4+10L9mMKF9ktGLOnRaR7hgSdT
+Z4AVv9GZvaLHgzscaqZTxiGGvJzewSK08ACRIZJikxIvT/ADyIug1QIDAQABoAAw
+DQYJKoZIhvcNAQELBQADggEBABN+XkwFoyyN1+b5SYhUzdQFj0ZfhzNxiMXOFR/n
+ww0gW7KCAhZd90aPBtQjEORzsCUX2xhllglXaojw+wOaEMaJDMDzojJelan1TEWJ
+Vyvklj8OBoH25ur5Y8iWrnMivkb4hU1Mrd4QxF697FVVTniwVyUy8Xfn6D44vEII
+gyCUk/jCD6MAD6/hBaexetqrbUQyVrtPewYgXrJokRDGDzFlG3jcXvl3CV2iib2X
+hAbiaAJmlgZwIMeu/60YgJoIWwilG7dYq9hvcpyfQhYXa9BbOz62WRsLvT0Ewue9
+81kzAkwhfvGauPh/yjP+6K5HY09KdOtg30xtwUtT4IU5yHQ=
+-----END CERTIFICATE REQUEST-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/chacha_internal_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/chacha_internal_test.c
new file mode 100644
index 000000000..dcb3c2372
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/chacha_internal_test.c
@@ -0,0 +1,190 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/*
+ * Internal tests for the chacha module. EVP tests would exercise
+ * complete 32-byte blocks. This test goes per byte...
+ */
+
+#include <string.h>
+#include <openssl/opensslconf.h>
+#include "testutil.h"
+#include "crypto/chacha.h"
+
+static const unsigned int key[] = {
+ 0x03020100, 0x07060504, 0x0b0a0908, 0x0f0e0d0c,
+ 0x13121110, 0x17161514, 0x1b1a1918, 0x1f1e1d1c
+};
+
+static const unsigned int ivp[] = {
+ 0x00000000, 0x00000000, 0x03020100, 0x07060504
+};
+
+static const unsigned char ref[] = {
+ 0xf7, 0x98, 0xa1, 0x89, 0xf1, 0x95, 0xe6, 0x69,
+ 0x82, 0x10, 0x5f, 0xfb, 0x64, 0x0b, 0xb7, 0x75,
+ 0x7f, 0x57, 0x9d, 0xa3, 0x16, 0x02, 0xfc, 0x93,
+ 0xec, 0x01, 0xac, 0x56, 0xf8, 0x5a, 0xc3, 0xc1,
+ 0x34, 0xa4, 0x54, 0x7b, 0x73, 0x3b, 0x46, 0x41,
+ 0x30, 0x42, 0xc9, 0x44, 0x00, 0x49, 0x17, 0x69,
+ 0x05, 0xd3, 0xbe, 0x59, 0xea, 0x1c, 0x53, 0xf1,
+ 0x59, 0x16, 0x15, 0x5c, 0x2b, 0xe8, 0x24, 0x1a,
+ 0x38, 0x00, 0x8b, 0x9a, 0x26, 0xbc, 0x35, 0x94,
+ 0x1e, 0x24, 0x44, 0x17, 0x7c, 0x8a, 0xde, 0x66,
+ 0x89, 0xde, 0x95, 0x26, 0x49, 0x86, 0xd9, 0x58,
+ 0x89, 0xfb, 0x60, 0xe8, 0x46, 0x29, 0xc9, 0xbd,
+ 0x9a, 0x5a, 0xcb, 0x1c, 0xc1, 0x18, 0xbe, 0x56,
+ 0x3e, 0xb9, 0xb3, 0xa4, 0xa4, 0x72, 0xf8, 0x2e,
+ 0x09, 0xa7, 0xe7, 0x78, 0x49, 0x2b, 0x56, 0x2e,
+ 0xf7, 0x13, 0x0e, 0x88, 0xdf, 0xe0, 0x31, 0xc7,
+ 0x9d, 0xb9, 0xd4, 0xf7, 0xc7, 0xa8, 0x99, 0x15,
+ 0x1b, 0x9a, 0x47, 0x50, 0x32, 0xb6, 0x3f, 0xc3,
+ 0x85, 0x24, 0x5f, 0xe0, 0x54, 0xe3, 0xdd, 0x5a,
+ 0x97, 0xa5, 0xf5, 0x76, 0xfe, 0x06, 0x40, 0x25,
+ 0xd3, 0xce, 0x04, 0x2c, 0x56, 0x6a, 0xb2, 0xc5,
+ 0x07, 0xb1, 0x38, 0xdb, 0x85, 0x3e, 0x3d, 0x69,
+ 0x59, 0x66, 0x09, 0x96, 0x54, 0x6c, 0xc9, 0xc4,
+ 0xa6, 0xea, 0xfd, 0xc7, 0x77, 0xc0, 0x40, 0xd7,
+ 0x0e, 0xaf, 0x46, 0xf7, 0x6d, 0xad, 0x39, 0x79,
+ 0xe5, 0xc5, 0x36, 0x0c, 0x33, 0x17, 0x16, 0x6a,
+ 0x1c, 0x89, 0x4c, 0x94, 0xa3, 0x71, 0x87, 0x6a,
+ 0x94, 0xdf, 0x76, 0x28, 0xfe, 0x4e, 0xaa, 0xf2,
+ 0xcc, 0xb2, 0x7d, 0x5a, 0xaa, 0xe0, 0xad, 0x7a,
+ 0xd0, 0xf9, 0xd4, 0xb6, 0xad, 0x3b, 0x54, 0x09,
+ 0x87, 0x46, 0xd4, 0x52, 0x4d, 0x38, 0x40, 0x7a,
+ 0x6d, 0xeb, 0x3a, 0xb7, 0x8f, 0xab, 0x78, 0xc9,
+ 0x42, 0x13, 0x66, 0x8b, 0xbb, 0xd3, 0x94, 0xc5,
+ 0xde, 0x93, 0xb8, 0x53, 0x17, 0x8a, 0xdd, 0xd6,
+ 0xb9, 0x7f, 0x9f, 0xa1, 0xec, 0x3e, 0x56, 0xc0,
+ 0x0c, 0x9d, 0xdf, 0xf0, 0xa4, 0x4a, 0x20, 0x42,
+ 0x41, 0x17, 0x5a, 0x4c, 0xab, 0x0f, 0x96, 0x1b,
+ 0xa5, 0x3e, 0xde, 0x9b, 0xdf, 0x96, 0x0b, 0x94,
+ 0xf9, 0x82, 0x9b, 0x1f, 0x34, 0x14, 0x72, 0x64,
+ 0x29, 0xb3, 0x62, 0xc5, 0xb5, 0x38, 0xe3, 0x91,
+ 0x52, 0x0f, 0x48, 0x9b, 0x7e, 0xd8, 0xd2, 0x0a,
+ 0xe3, 0xfd, 0x49, 0xe9, 0xe2, 0x59, 0xe4, 0x43,
+ 0x97, 0x51, 0x4d, 0x61, 0x8c, 0x96, 0xc4, 0x84,
+ 0x6b, 0xe3, 0xc6, 0x80, 0xbd, 0xc1, 0x1c, 0x71,
+ 0xdc, 0xbb, 0xe2, 0x9c, 0xcf, 0x80, 0xd6, 0x2a,
+ 0x09, 0x38, 0xfa, 0x54, 0x93, 0x91, 0xe6, 0xea,
+ 0x57, 0xec, 0xbe, 0x26, 0x06, 0x79, 0x0e, 0xc1,
+ 0x5d, 0x22, 0x24, 0xae, 0x30, 0x7c, 0x14, 0x42,
+ 0x26, 0xb7, 0xc4, 0xe8, 0xc2, 0xf9, 0x7d, 0x2a,
+ 0x1d, 0x67, 0x85, 0x2d, 0x29, 0xbe, 0xba, 0x11,
+ 0x0e, 0xdd, 0x44, 0x51, 0x97, 0x01, 0x20, 0x62,
+ 0xa3, 0x93, 0xa9, 0xc9, 0x28, 0x03, 0xad, 0x3b,
+ 0x4f, 0x31, 0xd7, 0xbc, 0x60, 0x33, 0xcc, 0xf7,
+ 0x93, 0x2c, 0xfe, 0xd3, 0xf0, 0x19, 0x04, 0x4d,
+ 0x25, 0x90, 0x59, 0x16, 0x77, 0x72, 0x86, 0xf8,
+ 0x2f, 0x9a, 0x4c, 0xc1, 0xff, 0xe4, 0x30, 0xff,
+ 0xd1, 0xdc, 0xfc, 0x27, 0xde, 0xed, 0x32, 0x7b,
+ 0x9f, 0x96, 0x30, 0xd2, 0xfa, 0x96, 0x9f, 0xb6,
+ 0xf0, 0x60, 0x3c, 0xd1, 0x9d, 0xd9, 0xa9, 0x51,
+ 0x9e, 0x67, 0x3b, 0xcf, 0xcd, 0x90, 0x14, 0x12,
+ 0x52, 0x91, 0xa4, 0x46, 0x69, 0xef, 0x72, 0x85,
+ 0xe7, 0x4e, 0xd3, 0x72, 0x9b, 0x67, 0x7f, 0x80,
+ 0x1c, 0x3c, 0xdf, 0x05, 0x8c, 0x50, 0x96, 0x31,
+ 0x68, 0xb4, 0x96, 0x04, 0x37, 0x16, 0xc7, 0x30,
+ 0x7c, 0xd9, 0xe0, 0xcd, 0xd1, 0x37, 0xfc, 0xcb,
+ 0x0f, 0x05, 0xb4, 0x7c, 0xdb, 0xb9, 0x5c, 0x5f,
+ 0x54, 0x83, 0x16, 0x22, 0xc3, 0x65, 0x2a, 0x32,
+ 0xb2, 0x53, 0x1f, 0xe3, 0x26, 0xbc, 0xd6, 0xe2,
+ 0xbb, 0xf5, 0x6a, 0x19, 0x4f, 0xa1, 0x96, 0xfb,
+ 0xd1, 0xa5, 0x49, 0x52, 0x11, 0x0f, 0x51, 0xc7,
+ 0x34, 0x33, 0x86, 0x5f, 0x76, 0x64, 0xb8, 0x36,
+ 0x68, 0x5e, 0x36, 0x64, 0xb3, 0xd8, 0x44, 0x4a,
+ 0xf8, 0x9a, 0x24, 0x28, 0x05, 0xe1, 0x8c, 0x97,
+ 0x5f, 0x11, 0x46, 0x32, 0x49, 0x96, 0xfd, 0xe1,
+ 0x70, 0x07, 0xcf, 0x3e, 0x6e, 0x8f, 0x4e, 0x76,
+ 0x40, 0x22, 0x53, 0x3e, 0xdb, 0xfe, 0x07, 0xd4,
+ 0x73, 0x3e, 0x48, 0xbb, 0x37, 0x2d, 0x75, 0xb0,
+ 0xef, 0x48, 0xec, 0x98, 0x3e, 0xb7, 0x85, 0x32,
+ 0x16, 0x1c, 0xc5, 0x29, 0xe5, 0xab, 0xb8, 0x98,
+ 0x37, 0xdf, 0xcc, 0xa6, 0x26, 0x1d, 0xbb, 0x37,
+ 0xc7, 0xc5, 0xe6, 0xa8, 0x74, 0x78, 0xbf, 0x41,
+ 0xee, 0x85, 0xa5, 0x18, 0xc0, 0xf4, 0xef, 0xa9,
+ 0xbd, 0xe8, 0x28, 0xc5, 0xa7, 0x1b, 0x8e, 0x46,
+ 0x59, 0x7b, 0x63, 0x4a, 0xfd, 0x20, 0x4d, 0x3c,
+ 0x50, 0x13, 0x34, 0x23, 0x9c, 0x34, 0x14, 0x28,
+ 0x5e, 0xd7, 0x2d, 0x3a, 0x91, 0x69, 0xea, 0xbb,
+ 0xd4, 0xdc, 0x25, 0xd5, 0x2b, 0xb7, 0x51, 0x6d,
+ 0x3b, 0xa7, 0x12, 0xd7, 0x5a, 0xd8, 0xc0, 0xae,
+ 0x5d, 0x49, 0x3c, 0x19, 0xe3, 0x8a, 0x77, 0x93,
+ 0x9e, 0x7a, 0x05, 0x8d, 0x71, 0x3e, 0x9c, 0xcc,
+ 0xca, 0x58, 0x04, 0x5f, 0x43, 0x6b, 0x43, 0x4b,
+ 0x1c, 0x80, 0xd3, 0x65, 0x47, 0x24, 0x06, 0xe3,
+ 0x92, 0x95, 0x19, 0x87, 0xdb, 0x69, 0x05, 0xc8,
+ 0x0d, 0x43, 0x1d, 0xa1, 0x84, 0x51, 0x13, 0x5b,
+ 0xe7, 0xe8, 0x2b, 0xca, 0xb3, 0x58, 0xcb, 0x39,
+ 0x71, 0xe6, 0x14, 0x05, 0xb2, 0xff, 0x17, 0x98,
+ 0x0d, 0x6e, 0x7e, 0x67, 0xe8, 0x61, 0xe2, 0x82,
+ 0x01, 0xc1, 0xee, 0x30, 0xb4, 0x41, 0x04, 0x0f,
+ 0xd0, 0x68, 0x78, 0xd6, 0x50, 0x42, 0xc9, 0x55,
+ 0x82, 0xa4, 0x31, 0x82, 0x07, 0xbf, 0xc7, 0x00,
+ 0xbe, 0x0c, 0xe3, 0x28, 0x89, 0xae, 0xc2, 0xff,
+ 0xe5, 0x08, 0x5e, 0x89, 0x67, 0x91, 0x0d, 0x87,
+ 0x9f, 0xa0, 0xe8, 0xc0, 0xff, 0x85, 0xfd, 0xc5,
+ 0x10, 0xb9, 0xff, 0x2f, 0xbf, 0x87, 0xcf, 0xcb,
+ 0x29, 0x57, 0x7d, 0x68, 0x09, 0x9e, 0x04, 0xff,
+ 0xa0, 0x5f, 0x75, 0x2a, 0x73, 0xd3, 0x77, 0xc7,
+ 0x0d, 0x3a, 0x8b, 0xc2, 0xda, 0x80, 0xe6, 0xe7,
+ 0x80, 0xec, 0x05, 0x71, 0x82, 0xc3, 0x3a, 0xd1,
+ 0xde, 0x38, 0x72, 0x52, 0x25, 0x8a, 0x1e, 0x18,
+ 0xe6, 0xfa, 0xd9, 0x10, 0x32, 0x7c, 0xe7, 0xf4,
+ 0x2f, 0xd1, 0xe1, 0xe0, 0x51, 0x5f, 0x95, 0x86,
+ 0xe2, 0xf2, 0xef, 0xcb, 0x9f, 0x47, 0x2b, 0x1d,
+ 0xbd, 0xba, 0xc3, 0x54, 0xa4, 0x16, 0x21, 0x51,
+ 0xe9, 0xd9, 0x2c, 0x79, 0xfb, 0x08, 0xbb, 0x4d,
+ 0xdc, 0x56, 0xf1, 0x94, 0x48, 0xc0, 0x17, 0x5a,
+ 0x46, 0xe2, 0xe6, 0xc4, 0x91, 0xfe, 0xc7, 0x14,
+ 0x19, 0xaa, 0x43, 0xa3, 0x49, 0xbe, 0xa7, 0x68,
+ 0xa9, 0x2c, 0x75, 0xde, 0x68, 0xfd, 0x95, 0x91,
+ 0xe6, 0x80, 0x67, 0xf3, 0x19, 0x70, 0x94, 0xd3,
+ 0xfb, 0x87, 0xed, 0x81, 0x78, 0x5e, 0xa0, 0x75,
+ 0xe4, 0xb6, 0x5e, 0x3e, 0x4c, 0x78, 0xf8, 0x1d,
+ 0xa9, 0xb7, 0x51, 0xc5, 0xef, 0xe0, 0x24, 0x15,
+ 0x23, 0x01, 0xc4, 0x8e, 0x63, 0x24, 0x5b, 0x55,
+ 0x6c, 0x4c, 0x67, 0xaf, 0xf8, 0x57, 0xe5, 0xea,
+ 0x15, 0xa9, 0x08, 0xd8, 0x3a, 0x1d, 0x97, 0x04,
+ 0xf8, 0xe5, 0x5e, 0x73, 0x52, 0xb2, 0x0b, 0x69,
+ 0x4b, 0xf9, 0x97, 0x02, 0x98, 0xe6, 0xb5, 0xaa,
+ 0xd3, 0x3e, 0xa2, 0x15, 0x5d, 0x10, 0x5d, 0x4e
+};
+
+static int test_cha_cha_internal(int n)
+{
+ unsigned char buf[sizeof(ref)];
+ unsigned int i = n + 1, j;
+
+ memset(buf, 0, i);
+ memcpy(buf + i, ref + i, sizeof(ref) - i);
+
+ ChaCha20_ctr32(buf, buf, i, key, ivp);
+
+ /*
+ * Idea behind checking for whole sizeof(ref) is that if
+ * ChaCha20_ctr32 oversteps i-th byte, then we'd know
+ */
+ for (j = 0; j < sizeof(ref); j++)
+ if (!TEST_uchar_eq(buf[j], ref[j])) {
+ TEST_info("%d failed at %u (%02x)\n", i, j, buf[j]);
+ return 0;
+ }
+ return 1;
+}
+
+int setup_tests(void)
+{
+#ifdef CPUID_OBJ
+ OPENSSL_cpuid_setup();
+#endif
+
+ ADD_ALL_TESTS(test_cha_cha_internal, sizeof(ref));
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cipher_overhead_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cipher_overhead_test.c
new file mode 100644
index 000000000..2275fceda
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cipher_overhead_test.c
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "internal/nelem.h"
+#include "testutil.h"
+
+#ifdef __VMS
+# pragma names save
+# pragma names as_is,shortened
+#endif
+
+#include "../ssl/ssl_local.h"
+
+#ifdef __VMS
+# pragma names restore
+#endif
+
+static int cipher_overhead(void)
+{
+ int ret = 1, i, n = ssl3_num_ciphers();
+ const SSL_CIPHER *ciph;
+ size_t mac, in, blk, ex;
+
+ for (i = 0; i < n; i++) {
+ ciph = ssl3_get_cipher(i);
+ if (!ciph->min_dtls)
+ continue;
+ if (!TEST_true(ssl_cipher_get_overhead(ciph, &mac, &in, &blk, &ex))) {
+ TEST_info("Failed getting %s", ciph->name);
+ ret = 0;
+ } else {
+ TEST_info("Cipher %s: %zu %zu %zu %zu",
+ ciph->name, mac, in, blk, ex);
+ }
+ }
+ return ret;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(cipher_overhead);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cipherbytes_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cipherbytes_test.c
new file mode 100644
index 000000000..6418b4240
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cipherbytes_test.c
@@ -0,0 +1,149 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL licenses, (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * https://www.openssl.org/source/license.html
+ * or in the file LICENSE in the source distribution.
+ */
+
+#include <string.h>
+#include <stdio.h>
+
+#include <openssl/opensslconf.h>
+#include <openssl/err.h>
+#include <openssl/e_os2.h>
+#include <openssl/ssl.h>
+#include <openssl/ssl3.h>
+#include <openssl/tls1.h>
+
+#include "internal/nelem.h"
+#include "testutil.h"
+
+static SSL_CTX *ctx;
+static SSL *s;
+
+static int test_empty(void)
+{
+ STACK_OF(SSL_CIPHER) *sk = NULL, *scsv = NULL;
+ const unsigned char bytes[] = {0x00};
+ int ret = 0;
+
+ if (!TEST_int_eq(SSL_bytes_to_cipher_list(s, bytes, 0, 0, &sk, &scsv), 0)
+ || !TEST_ptr_null(sk)
+ || !TEST_ptr_null(scsv))
+ goto err;
+ ret = 1;
+
+err:
+ sk_SSL_CIPHER_free(sk);
+ sk_SSL_CIPHER_free(scsv);
+ return ret;
+}
+
+static int test_unsupported(void)
+{
+ STACK_OF(SSL_CIPHER) *sk, *scsv;
+ /* ECDH-RSA-AES256 (unsupported), ECDHE-ECDSA-AES128, <unassigned> */
+ const unsigned char bytes[] = {0xc0, 0x0f, 0x00, 0x2f, 0x01, 0x00};
+ int ret = 0;
+
+ if (!TEST_true(SSL_bytes_to_cipher_list(s, bytes, sizeof(bytes),
+ 0, &sk, &scsv))
+ || !TEST_ptr(sk)
+ || !TEST_int_eq(sk_SSL_CIPHER_num(sk), 1)
+ || !TEST_ptr(scsv)
+ || !TEST_int_eq(sk_SSL_CIPHER_num(scsv), 0)
+ || !TEST_str_eq(SSL_CIPHER_get_name(sk_SSL_CIPHER_value(sk, 0)),
+ "AES128-SHA"))
+ goto err;
+
+ ret = 1;
+err:
+ sk_SSL_CIPHER_free(sk);
+ sk_SSL_CIPHER_free(scsv);
+ return ret;
+}
+
+static int test_v2(void)
+{
+ STACK_OF(SSL_CIPHER) *sk, *scsv;
+ /* ECDHE-ECDSA-AES256GCM, SSL2_RC4_1238_WITH_MD5,
+ * ECDHE-ECDSA-CHACHA20-POLY1305 */
+ const unsigned char bytes[] = {0x00, 0x00, 0x35, 0x01, 0x00, 0x80,
+ 0x00, 0x00, 0x33};
+ int ret = 0;
+
+ if (!TEST_true(SSL_bytes_to_cipher_list(s, bytes, sizeof(bytes), 1,
+ &sk, &scsv))
+ || !TEST_ptr(sk)
+ || !TEST_int_eq(sk_SSL_CIPHER_num(sk), 2)
+ || !TEST_ptr(scsv)
+ || !TEST_int_eq(sk_SSL_CIPHER_num(scsv), 0))
+ goto err;
+ if (strcmp(SSL_CIPHER_get_name(sk_SSL_CIPHER_value(sk, 0)),
+ "AES256-SHA") != 0 ||
+ strcmp(SSL_CIPHER_get_name(sk_SSL_CIPHER_value(sk, 1)),
+ "DHE-RSA-AES128-SHA") != 0)
+ goto err;
+
+ ret = 1;
+
+err:
+ sk_SSL_CIPHER_free(sk);
+ sk_SSL_CIPHER_free(scsv);
+ return ret;
+}
+
+static int test_v3(void)
+{
+ STACK_OF(SSL_CIPHER) *sk = NULL, *scsv = NULL;
+ /* ECDHE-ECDSA-AES256GCM, ECDHE-ECDSA-CHACHAPOLY, DHE-RSA-AES256GCM,
+ * EMPTY-RENEGOTIATION-INFO-SCSV, FALLBACK-SCSV */
+ const unsigned char bytes[] = {0x00, 0x2f, 0x00, 0x33, 0x00, 0x9f, 0x00, 0xff,
+ 0x56, 0x00};
+ int ret = 0;
+
+ if (!SSL_bytes_to_cipher_list(s, bytes, sizeof(bytes), 0, &sk, &scsv)
+ || !TEST_ptr(sk)
+ || !TEST_int_eq(sk_SSL_CIPHER_num(sk), 3)
+ || !TEST_ptr(scsv)
+ || !TEST_int_eq(sk_SSL_CIPHER_num(scsv), 2)
+ || !TEST_str_eq(SSL_CIPHER_get_name(sk_SSL_CIPHER_value(sk, 0)),
+ "AES128-SHA")
+ || !TEST_str_eq(SSL_CIPHER_get_name(sk_SSL_CIPHER_value(sk, 1)),
+ "DHE-RSA-AES128-SHA")
+ || !TEST_str_eq(SSL_CIPHER_get_name(sk_SSL_CIPHER_value(sk, 2)),
+ "DHE-RSA-AES256-GCM-SHA384")
+ || !TEST_str_eq(SSL_CIPHER_get_name(sk_SSL_CIPHER_value(scsv, 0)),
+ "TLS_EMPTY_RENEGOTIATION_INFO_SCSV")
+ || !TEST_str_eq(SSL_CIPHER_get_name(sk_SSL_CIPHER_value(scsv, 1)),
+ "TLS_FALLBACK_SCSV"))
+ goto err;
+
+ ret = 1;
+err:
+ sk_SSL_CIPHER_free(sk);
+ sk_SSL_CIPHER_free(scsv);
+ return ret;
+}
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(ctx = SSL_CTX_new(TLS_server_method()))
+ || !TEST_ptr(s = SSL_new(ctx)))
+ return 0;
+
+ ADD_TEST(test_empty);
+ ADD_TEST(test_unsupported);
+ ADD_TEST(test_v2);
+ ADD_TEST(test_v3);
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+ SSL_free(s);
+ SSL_CTX_free(ctx);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cipherlist_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cipherlist_test.c
new file mode 100644
index 000000000..8ee491091
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cipherlist_test.c
@@ -0,0 +1,258 @@
+/*
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL licenses, (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * https://www.openssl.org/source/license.html
+ * or in the file LICENSE in the source distribution.
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/opensslconf.h>
+#include <openssl/err.h>
+#include <openssl/e_os2.h>
+#include <openssl/ssl.h>
+#include <openssl/ssl3.h>
+#include <openssl/tls1.h>
+
+#include "internal/nelem.h"
+#include "testutil.h"
+
+typedef struct cipherlist_test_fixture {
+ const char *test_case_name;
+ SSL_CTX *server;
+ SSL_CTX *client;
+} CIPHERLIST_TEST_FIXTURE;
+
+
+static void tear_down(CIPHERLIST_TEST_FIXTURE *fixture)
+{
+ if (fixture != NULL) {
+ SSL_CTX_free(fixture->server);
+ SSL_CTX_free(fixture->client);
+ fixture->server = fixture->client = NULL;
+ OPENSSL_free(fixture);
+ }
+}
+
+static CIPHERLIST_TEST_FIXTURE *set_up(const char *const test_case_name)
+{
+ CIPHERLIST_TEST_FIXTURE *fixture;
+
+ if (!TEST_ptr(fixture = OPENSSL_zalloc(sizeof(*fixture))))
+ return NULL;
+ fixture->test_case_name = test_case_name;
+ if (!TEST_ptr(fixture->server = SSL_CTX_new(TLS_server_method()))
+ || !TEST_ptr(fixture->client = SSL_CTX_new(TLS_client_method()))) {
+ tear_down(fixture);
+ return NULL;
+ }
+ return fixture;
+}
+
+/*
+ * All ciphers in the DEFAULT cipherlist meet the default security level.
+ * However, default supported ciphers exclude SRP and PSK ciphersuites
+ * for which no callbacks have been set up.
+ *
+ * Supported ciphers also exclude TLSv1.2 ciphers if TLSv1.2 is disabled,
+ * and individual disabled algorithms. However, NO_RSA, NO_AES and NO_SHA
+ * are currently broken and should be considered mission impossible in libssl.
+ */
+static const uint32_t default_ciphers_in_order[] = {
+#ifndef OPENSSL_NO_TLS1_3
+ TLS1_3_CK_AES_256_GCM_SHA384,
+# if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305)
+ TLS1_3_CK_CHACHA20_POLY1305_SHA256,
+# endif
+ TLS1_3_CK_AES_128_GCM_SHA256,
+#endif
+#ifndef OPENSSL_NO_TLS1_2
+# ifndef OPENSSL_NO_EC
+ TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
+ TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
+# endif
+# ifndef OPENSSL_NO_DH
+ TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384,
+# endif
+
+# if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305)
+# ifndef OPENSSL_NO_EC
+ TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,
+ TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305,
+# endif
+# ifndef OPENSSL_NO_DH
+ TLS1_CK_DHE_RSA_WITH_CHACHA20_POLY1305,
+# endif
+# endif /* !OPENSSL_NO_CHACHA && !OPENSSL_NO_POLY1305 */
+
+# ifndef OPENSSL_NO_EC
+ TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
+ TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
+# endif
+# ifndef OPENSSL_NO_DH
+ TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256,
+# endif
+# ifndef OPENSSL_NO_EC
+ TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384,
+ TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384,
+# endif
+# ifndef OPENSSL_NO_DH
+ TLS1_CK_DHE_RSA_WITH_AES_256_SHA256,
+# endif
+# ifndef OPENSSL_NO_EC
+ TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256,
+ TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256,
+# endif
+# ifndef OPENSSL_NO_DH
+ TLS1_CK_DHE_RSA_WITH_AES_128_SHA256,
+# endif
+#endif /* !OPENSSL_NO_TLS1_2 */
+
+#if !defined(OPENSSL_NO_TLS1_2) || defined(OPENSSL_NO_TLS1_3)
+ /* These won't be usable if TLSv1.3 is available but TLSv1.2 isn't */
+# ifndef OPENSSL_NO_EC
+ TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
+ TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA,
+# endif
+ #ifndef OPENSSL_NO_DH
+ TLS1_CK_DHE_RSA_WITH_AES_256_SHA,
+# endif
+# ifndef OPENSSL_NO_EC
+ TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
+ TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA,
+# endif
+# ifndef OPENSSL_NO_DH
+ TLS1_CK_DHE_RSA_WITH_AES_128_SHA,
+# endif
+#endif /* !defined(OPENSSL_NO_TLS1_2) || defined(OPENSSL_NO_TLS1_3) */
+
+#ifndef OPENSSL_NO_TLS1_2
+ TLS1_CK_RSA_WITH_AES_256_GCM_SHA384,
+ TLS1_CK_RSA_WITH_AES_128_GCM_SHA256,
+#endif
+#ifndef OPENSSL_NO_TLS1_2
+ TLS1_CK_RSA_WITH_AES_256_SHA256,
+ TLS1_CK_RSA_WITH_AES_128_SHA256,
+#endif
+#if !defined(OPENSSL_NO_TLS1_2) || defined(OPENSSL_NO_TLS1_3)
+ /* These won't be usable if TLSv1.3 is available but TLSv1.2 isn't */
+ TLS1_CK_RSA_WITH_AES_256_SHA,
+ TLS1_CK_RSA_WITH_AES_128_SHA,
+#endif
+};
+
+static int test_default_cipherlist(SSL_CTX *ctx)
+{
+ STACK_OF(SSL_CIPHER) *ciphers = NULL;
+ SSL *ssl = NULL;
+ int i, ret = 0, num_expected_ciphers, num_ciphers;
+ uint32_t expected_cipher_id, cipher_id;
+
+ if (ctx == NULL)
+ return 0;
+
+ if (!TEST_ptr(ssl = SSL_new(ctx))
+ || !TEST_ptr(ciphers = SSL_get1_supported_ciphers(ssl)))
+ goto err;
+
+ num_expected_ciphers = OSSL_NELEM(default_ciphers_in_order);
+ num_ciphers = sk_SSL_CIPHER_num(ciphers);
+ if (!TEST_int_eq(num_ciphers, num_expected_ciphers))
+ goto err;
+
+ for (i = 0; i < num_ciphers; i++) {
+ expected_cipher_id = default_ciphers_in_order[i];
+ cipher_id = SSL_CIPHER_get_id(sk_SSL_CIPHER_value(ciphers, i));
+ if (!TEST_int_eq(cipher_id, expected_cipher_id)) {
+ TEST_info("Wrong cipher at position %d", i);
+ goto err;
+ }
+ }
+
+ ret = 1;
+
+ err:
+ sk_SSL_CIPHER_free(ciphers);
+ SSL_free(ssl);
+ return ret;
+}
+
+static int execute_test(CIPHERLIST_TEST_FIXTURE *fixture)
+{
+ return fixture != NULL
+ && test_default_cipherlist(fixture->server)
+ && test_default_cipherlist(fixture->client);
+}
+
+#define SETUP_CIPHERLIST_TEST_FIXTURE() \
+ SETUP_TEST_FIXTURE(CIPHERLIST_TEST_FIXTURE, set_up)
+
+#define EXECUTE_CIPHERLIST_TEST() \
+ EXECUTE_TEST(execute_test, tear_down)
+
+static int test_default_cipherlist_implicit(void)
+{
+ SETUP_CIPHERLIST_TEST_FIXTURE();
+ if (fixture == NULL)
+ return 0;
+ EXECUTE_CIPHERLIST_TEST();
+ return result;
+}
+
+static int test_default_cipherlist_explicit(void)
+{
+ SETUP_CIPHERLIST_TEST_FIXTURE();
+ if (fixture == NULL)
+ return 0;
+ if (!TEST_true(SSL_CTX_set_cipher_list(fixture->server, "DEFAULT"))
+ || !TEST_true(SSL_CTX_set_cipher_list(fixture->client, "DEFAULT")))
+ tear_down(fixture);
+ EXECUTE_CIPHERLIST_TEST();
+ return result;
+}
+
+/* SSL_CTX_set_cipher_list() should fail if it clears all TLSv1.2 ciphers. */
+static int test_default_cipherlist_clear(void)
+{
+ SETUP_CIPHERLIST_TEST_FIXTURE();
+ SSL *s = NULL;
+
+ if (fixture == NULL)
+ return 0;
+
+ if (!TEST_int_eq(SSL_CTX_set_cipher_list(fixture->server, "no-such"), 0))
+ goto end;
+
+ if (!TEST_int_eq(ERR_GET_REASON(ERR_get_error()), SSL_R_NO_CIPHER_MATCH))
+ goto end;
+
+ s = SSL_new(fixture->client);
+
+ if (!TEST_ptr(s))
+ goto end;
+
+ if (!TEST_int_eq(SSL_set_cipher_list(s, "no-such"), 0))
+ goto end;
+
+ if (!TEST_int_eq(ERR_GET_REASON(ERR_get_error()),
+ SSL_R_NO_CIPHER_MATCH))
+ goto end;
+
+ result = 1;
+end:
+ SSL_free(s);
+ tear_down(fixture);
+ return result;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_default_cipherlist_implicit);
+ ADD_TEST(test_default_cipherlist_explicit);
+ ADD_TEST(test_default_cipherlist_clear);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ciphername_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ciphername_test.c
new file mode 100644
index 000000000..303e28f50
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ciphername_test.c
@@ -0,0 +1,470 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2017 BaishanCloud. All rights reserved.
+ *
+ * Licensed under the OpenSSL licenses, (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * https://www.openssl.org/source/license.html
+ * or in the file LICENSE in the source distribution.
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/opensslconf.h>
+#include <openssl/err.h>
+#include <openssl/e_os2.h>
+#include <openssl/ssl.h>
+#include <openssl/ssl3.h>
+#include <openssl/tls1.h>
+
+#include "internal/nelem.h"
+#include "testutil.h"
+
+typedef struct cipher_id_name {
+ int id;
+ const char *name;
+} CIPHER_ID_NAME;
+
+/* Cipher suites, copied from t1_trce.c */
+static CIPHER_ID_NAME cipher_names[] = {
+ {0x0000, "TLS_NULL_WITH_NULL_NULL"},
+ {0x0001, "TLS_RSA_WITH_NULL_MD5"},
+ {0x0002, "TLS_RSA_WITH_NULL_SHA"},
+ {0x0003, "TLS_RSA_EXPORT_WITH_RC4_40_MD5"},
+ {0x0004, "TLS_RSA_WITH_RC4_128_MD5"},
+ {0x0005, "TLS_RSA_WITH_RC4_128_SHA"},
+ {0x0006, "TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5"},
+ {0x0007, "TLS_RSA_WITH_IDEA_CBC_SHA"},
+ {0x0008, "TLS_RSA_EXPORT_WITH_DES40_CBC_SHA"},
+ {0x0009, "TLS_RSA_WITH_DES_CBC_SHA"},
+ {0x000A, "TLS_RSA_WITH_3DES_EDE_CBC_SHA"},
+ {0x000B, "TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA"},
+ {0x000C, "TLS_DH_DSS_WITH_DES_CBC_SHA"},
+ {0x000D, "TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA"},
+ {0x000E, "TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA"},
+ {0x000F, "TLS_DH_RSA_WITH_DES_CBC_SHA"},
+ {0x0010, "TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA"},
+ {0x0011, "TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA"},
+ {0x0012, "TLS_DHE_DSS_WITH_DES_CBC_SHA"},
+ {0x0013, "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA"},
+ {0x0014, "TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA"},
+ {0x0015, "TLS_DHE_RSA_WITH_DES_CBC_SHA"},
+ {0x0016, "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA"},
+ {0x0017, "TLS_DH_anon_EXPORT_WITH_RC4_40_MD5"},
+ {0x0018, "TLS_DH_anon_WITH_RC4_128_MD5"},
+ {0x0019, "TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA"},
+ {0x001A, "TLS_DH_anon_WITH_DES_CBC_SHA"},
+ {0x001B, "TLS_DH_anon_WITH_3DES_EDE_CBC_SHA"},
+ {0x001D, "SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA"},
+ {0x001E, "SSL_FORTEZZA_KEA_WITH_RC4_128_SHA"},
+ {0x001F, "TLS_KRB5_WITH_3DES_EDE_CBC_SHA"},
+ {0x0020, "TLS_KRB5_WITH_RC4_128_SHA"},
+ {0x0021, "TLS_KRB5_WITH_IDEA_CBC_SHA"},
+ {0x0022, "TLS_KRB5_WITH_DES_CBC_MD5"},
+ {0x0023, "TLS_KRB5_WITH_3DES_EDE_CBC_MD5"},
+ {0x0024, "TLS_KRB5_WITH_RC4_128_MD5"},
+ {0x0025, "TLS_KRB5_WITH_IDEA_CBC_MD5"},
+ {0x0026, "TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA"},
+ {0x0027, "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA"},
+ {0x0028, "TLS_KRB5_EXPORT_WITH_RC4_40_SHA"},
+ {0x0029, "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5"},
+ {0x002A, "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5"},
+ {0x002B, "TLS_KRB5_EXPORT_WITH_RC4_40_MD5"},
+ {0x002C, "TLS_PSK_WITH_NULL_SHA"},
+ {0x002D, "TLS_DHE_PSK_WITH_NULL_SHA"},
+ {0x002E, "TLS_RSA_PSK_WITH_NULL_SHA"},
+ {0x002F, "TLS_RSA_WITH_AES_128_CBC_SHA"},
+ {0x0030, "TLS_DH_DSS_WITH_AES_128_CBC_SHA"},
+ {0x0031, "TLS_DH_RSA_WITH_AES_128_CBC_SHA"},
+ {0x0032, "TLS_DHE_DSS_WITH_AES_128_CBC_SHA"},
+ {0x0033, "TLS_DHE_RSA_WITH_AES_128_CBC_SHA"},
+ {0x0034, "TLS_DH_anon_WITH_AES_128_CBC_SHA"},
+ {0x0035, "TLS_RSA_WITH_AES_256_CBC_SHA"},
+ {0x0036, "TLS_DH_DSS_WITH_AES_256_CBC_SHA"},
+ {0x0037, "TLS_DH_RSA_WITH_AES_256_CBC_SHA"},
+ {0x0038, "TLS_DHE_DSS_WITH_AES_256_CBC_SHA"},
+ {0x0039, "TLS_DHE_RSA_WITH_AES_256_CBC_SHA"},
+ {0x003A, "TLS_DH_anon_WITH_AES_256_CBC_SHA"},
+ {0x003B, "TLS_RSA_WITH_NULL_SHA256"},
+ {0x003C, "TLS_RSA_WITH_AES_128_CBC_SHA256"},
+ {0x003D, "TLS_RSA_WITH_AES_256_CBC_SHA256"},
+ {0x003E, "TLS_DH_DSS_WITH_AES_128_CBC_SHA256"},
+ {0x003F, "TLS_DH_RSA_WITH_AES_128_CBC_SHA256"},
+ {0x0040, "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256"},
+ {0x0041, "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA"},
+ {0x0042, "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA"},
+ {0x0043, "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA"},
+ {0x0044, "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA"},
+ {0x0045, "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA"},
+ {0x0046, "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA"},
+ {0x0067, "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256"},
+ {0x0068, "TLS_DH_DSS_WITH_AES_256_CBC_SHA256"},
+ {0x0069, "TLS_DH_RSA_WITH_AES_256_CBC_SHA256"},
+ {0x006A, "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256"},
+ {0x006B, "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256"},
+ {0x006C, "TLS_DH_anon_WITH_AES_128_CBC_SHA256"},
+ {0x006D, "TLS_DH_anon_WITH_AES_256_CBC_SHA256"},
+ {0x0084, "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA"},
+ {0x0085, "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA"},
+ {0x0086, "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA"},
+ {0x0087, "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA"},
+ {0x0088, "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA"},
+ {0x0089, "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA"},
+ {0x008A, "TLS_PSK_WITH_RC4_128_SHA"},
+ {0x008B, "TLS_PSK_WITH_3DES_EDE_CBC_SHA"},
+ {0x008C, "TLS_PSK_WITH_AES_128_CBC_SHA"},
+ {0x008D, "TLS_PSK_WITH_AES_256_CBC_SHA"},
+ {0x008E, "TLS_DHE_PSK_WITH_RC4_128_SHA"},
+ {0x008F, "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA"},
+ {0x0090, "TLS_DHE_PSK_WITH_AES_128_CBC_SHA"},
+ {0x0091, "TLS_DHE_PSK_WITH_AES_256_CBC_SHA"},
+ {0x0092, "TLS_RSA_PSK_WITH_RC4_128_SHA"},
+ {0x0093, "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA"},
+ {0x0094, "TLS_RSA_PSK_WITH_AES_128_CBC_SHA"},
+ {0x0095, "TLS_RSA_PSK_WITH_AES_256_CBC_SHA"},
+ {0x0096, "TLS_RSA_WITH_SEED_CBC_SHA"},
+ {0x0097, "TLS_DH_DSS_WITH_SEED_CBC_SHA"},
+ {0x0098, "TLS_DH_RSA_WITH_SEED_CBC_SHA"},
+ {0x0099, "TLS_DHE_DSS_WITH_SEED_CBC_SHA"},
+ {0x009A, "TLS_DHE_RSA_WITH_SEED_CBC_SHA"},
+ {0x009B, "TLS_DH_anon_WITH_SEED_CBC_SHA"},
+ {0x009C, "TLS_RSA_WITH_AES_128_GCM_SHA256"},
+ {0x009D, "TLS_RSA_WITH_AES_256_GCM_SHA384"},
+ {0x009E, "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256"},
+ {0x009F, "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384"},
+ {0x00A0, "TLS_DH_RSA_WITH_AES_128_GCM_SHA256"},
+ {0x00A1, "TLS_DH_RSA_WITH_AES_256_GCM_SHA384"},
+ {0x00A2, "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256"},
+ {0x00A3, "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384"},
+ {0x00A4, "TLS_DH_DSS_WITH_AES_128_GCM_SHA256"},
+ {0x00A5, "TLS_DH_DSS_WITH_AES_256_GCM_SHA384"},
+ {0x00A6, "TLS_DH_anon_WITH_AES_128_GCM_SHA256"},
+ {0x00A7, "TLS_DH_anon_WITH_AES_256_GCM_SHA384"},
+ {0x00A8, "TLS_PSK_WITH_AES_128_GCM_SHA256"},
+ {0x00A9, "TLS_PSK_WITH_AES_256_GCM_SHA384"},
+ {0x00AA, "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256"},
+ {0x00AB, "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384"},
+ {0x00AC, "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256"},
+ {0x00AD, "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384"},
+ {0x00AE, "TLS_PSK_WITH_AES_128_CBC_SHA256"},
+ {0x00AF, "TLS_PSK_WITH_AES_256_CBC_SHA384"},
+ {0x00B0, "TLS_PSK_WITH_NULL_SHA256"},
+ {0x00B1, "TLS_PSK_WITH_NULL_SHA384"},
+ {0x00B2, "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256"},
+ {0x00B3, "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384"},
+ {0x00B4, "TLS_DHE_PSK_WITH_NULL_SHA256"},
+ {0x00B5, "TLS_DHE_PSK_WITH_NULL_SHA384"},
+ {0x00B6, "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256"},
+ {0x00B7, "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384"},
+ {0x00B8, "TLS_RSA_PSK_WITH_NULL_SHA256"},
+ {0x00B9, "TLS_RSA_PSK_WITH_NULL_SHA384"},
+ {0x00BA, "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0x00BB, "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0x00BC, "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0x00BD, "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0x00BE, "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0x00BF, "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0x00C0, "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256"},
+ {0x00C1, "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256"},
+ {0x00C2, "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256"},
+ {0x00C3, "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256"},
+ {0x00C4, "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256"},
+ {0x00C5, "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256"},
+ {0x00FF, "TLS_EMPTY_RENEGOTIATION_INFO_SCSV"},
+ {0x5600, "TLS_FALLBACK_SCSV"},
+ {0xC001, "TLS_ECDH_ECDSA_WITH_NULL_SHA"},
+ {0xC002, "TLS_ECDH_ECDSA_WITH_RC4_128_SHA"},
+ {0xC003, "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA"},
+ {0xC004, "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA"},
+ {0xC005, "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA"},
+ {0xC006, "TLS_ECDHE_ECDSA_WITH_NULL_SHA"},
+ {0xC007, "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA"},
+ {0xC008, "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA"},
+ {0xC009, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA"},
+ {0xC00A, "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA"},
+ {0xC00B, "TLS_ECDH_RSA_WITH_NULL_SHA"},
+ {0xC00C, "TLS_ECDH_RSA_WITH_RC4_128_SHA"},
+ {0xC00D, "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA"},
+ {0xC00E, "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA"},
+ {0xC00F, "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA"},
+ {0xC010, "TLS_ECDHE_RSA_WITH_NULL_SHA"},
+ {0xC011, "TLS_ECDHE_RSA_WITH_RC4_128_SHA"},
+ {0xC012, "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA"},
+ {0xC013, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"},
+ {0xC014, "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA"},
+ {0xC015, "TLS_ECDH_anon_WITH_NULL_SHA"},
+ {0xC016, "TLS_ECDH_anon_WITH_RC4_128_SHA"},
+ {0xC017, "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA"},
+ {0xC018, "TLS_ECDH_anon_WITH_AES_128_CBC_SHA"},
+ {0xC019, "TLS_ECDH_anon_WITH_AES_256_CBC_SHA"},
+ {0xC01A, "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA"},
+ {0xC01B, "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA"},
+ {0xC01C, "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA"},
+ {0xC01D, "TLS_SRP_SHA_WITH_AES_128_CBC_SHA"},
+ {0xC01E, "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA"},
+ {0xC01F, "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA"},
+ {0xC020, "TLS_SRP_SHA_WITH_AES_256_CBC_SHA"},
+ {0xC021, "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA"},
+ {0xC022, "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA"},
+ {0xC023, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"},
+ {0xC024, "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384"},
+ {0xC025, "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256"},
+ {0xC026, "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384"},
+ {0xC027, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"},
+ {0xC028, "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"},
+ {0xC029, "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256"},
+ {0xC02A, "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384"},
+ {0xC02B, "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"},
+ {0xC02C, "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"},
+ {0xC02D, "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256"},
+ {0xC02E, "TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384"},
+ {0xC02F, "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"},
+ {0xC030, "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"},
+ {0xC031, "TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256"},
+ {0xC032, "TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384"},
+ {0xC033, "TLS_ECDHE_PSK_WITH_RC4_128_SHA"},
+ {0xC034, "TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA"},
+ {0xC035, "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA"},
+ {0xC036, "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA"},
+ {0xC037, "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256"},
+ {0xC038, "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384"},
+ {0xC039, "TLS_ECDHE_PSK_WITH_NULL_SHA"},
+ {0xC03A, "TLS_ECDHE_PSK_WITH_NULL_SHA256"},
+ {0xC03B, "TLS_ECDHE_PSK_WITH_NULL_SHA384"},
+ {0xC03C, "TLS_RSA_WITH_ARIA_128_CBC_SHA256"},
+ {0xC03D, "TLS_RSA_WITH_ARIA_256_CBC_SHA384"},
+ {0xC03E, "TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256"},
+ {0xC03F, "TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384"},
+ {0xC040, "TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256"},
+ {0xC041, "TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384"},
+ {0xC042, "TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256"},
+ {0xC043, "TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384"},
+ {0xC044, "TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256"},
+ {0xC045, "TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384"},
+ {0xC046, "TLS_DH_anon_WITH_ARIA_128_CBC_SHA256"},
+ {0xC047, "TLS_DH_anon_WITH_ARIA_256_CBC_SHA384"},
+ {0xC048, "TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256"},
+ {0xC049, "TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384"},
+ {0xC04A, "TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256"},
+ {0xC04B, "TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384"},
+ {0xC04C, "TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256"},
+ {0xC04D, "TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384"},
+ {0xC04E, "TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256"},
+ {0xC04F, "TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384"},
+ {0xC050, "TLS_RSA_WITH_ARIA_128_GCM_SHA256"},
+ {0xC051, "TLS_RSA_WITH_ARIA_256_GCM_SHA384"},
+ {0xC052, "TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256"},
+ {0xC053, "TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384"},
+ {0xC054, "TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256"},
+ {0xC055, "TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384"},
+ {0xC056, "TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256"},
+ {0xC057, "TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384"},
+ {0xC058, "TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256"},
+ {0xC059, "TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384"},
+ {0xC05A, "TLS_DH_anon_WITH_ARIA_128_GCM_SHA256"},
+ {0xC05B, "TLS_DH_anon_WITH_ARIA_256_GCM_SHA384"},
+ {0xC05C, "TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256"},
+ {0xC05D, "TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384"},
+ {0xC05E, "TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256"},
+ {0xC05F, "TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384"},
+ {0xC060, "TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256"},
+ {0xC061, "TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384"},
+ {0xC062, "TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256"},
+ {0xC063, "TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384"},
+ {0xC064, "TLS_PSK_WITH_ARIA_128_CBC_SHA256"},
+ {0xC065, "TLS_PSK_WITH_ARIA_256_CBC_SHA384"},
+ {0xC066, "TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256"},
+ {0xC067, "TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384"},
+ {0xC068, "TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256"},
+ {0xC069, "TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384"},
+ {0xC06A, "TLS_PSK_WITH_ARIA_128_GCM_SHA256"},
+ {0xC06B, "TLS_PSK_WITH_ARIA_256_GCM_SHA384"},
+ {0xC06C, "TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256"},
+ {0xC06D, "TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384"},
+ {0xC06E, "TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256"},
+ {0xC06F, "TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384"},
+ {0xC070, "TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256"},
+ {0xC071, "TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384"},
+ {0xC072, "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0xC073, "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384"},
+ {0xC074, "TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0xC075, "TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384"},
+ {0xC076, "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0xC077, "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384"},
+ {0xC078, "TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0xC079, "TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384"},
+ {0xC07A, "TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256"},
+ {0xC07B, "TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384"},
+ {0xC07C, "TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256"},
+ {0xC07D, "TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384"},
+ {0xC07E, "TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256"},
+ {0xC07F, "TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384"},
+ {0xC080, "TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256"},
+ {0xC081, "TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384"},
+ {0xC082, "TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256"},
+ {0xC083, "TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384"},
+ {0xC084, "TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256"},
+ {0xC085, "TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384"},
+ {0xC086, "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256"},
+ {0xC087, "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384"},
+ {0xC088, "TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256"},
+ {0xC089, "TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384"},
+ {0xC08A, "TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256"},
+ {0xC08B, "TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384"},
+ {0xC08C, "TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256"},
+ {0xC08D, "TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384"},
+ {0xC08E, "TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256"},
+ {0xC08F, "TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384"},
+ {0xC090, "TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256"},
+ {0xC091, "TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384"},
+ {0xC092, "TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256"},
+ {0xC093, "TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384"},
+ {0xC094, "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0xC095, "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384"},
+ {0xC096, "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0xC097, "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384"},
+ {0xC098, "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0xC099, "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384"},
+ {0xC09A, "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0xC09B, "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384"},
+ {0xC09C, "TLS_RSA_WITH_AES_128_CCM"},
+ {0xC09D, "TLS_RSA_WITH_AES_256_CCM"},
+ {0xC09E, "TLS_DHE_RSA_WITH_AES_128_CCM"},
+ {0xC09F, "TLS_DHE_RSA_WITH_AES_256_CCM"},
+ {0xC0A0, "TLS_RSA_WITH_AES_128_CCM_8"},
+ {0xC0A1, "TLS_RSA_WITH_AES_256_CCM_8"},
+ {0xC0A2, "TLS_DHE_RSA_WITH_AES_128_CCM_8"},
+ {0xC0A3, "TLS_DHE_RSA_WITH_AES_256_CCM_8"},
+ {0xC0A4, "TLS_PSK_WITH_AES_128_CCM"},
+ {0xC0A5, "TLS_PSK_WITH_AES_256_CCM"},
+ {0xC0A6, "TLS_DHE_PSK_WITH_AES_128_CCM"},
+ {0xC0A7, "TLS_DHE_PSK_WITH_AES_256_CCM"},
+ {0xC0A8, "TLS_PSK_WITH_AES_128_CCM_8"},
+ {0xC0A9, "TLS_PSK_WITH_AES_256_CCM_8"},
+ {0xC0AA, "TLS_PSK_DHE_WITH_AES_128_CCM_8"},
+ {0xC0AB, "TLS_PSK_DHE_WITH_AES_256_CCM_8"},
+ {0xC0AC, "TLS_ECDHE_ECDSA_WITH_AES_128_CCM"},
+ {0xC0AD, "TLS_ECDHE_ECDSA_WITH_AES_256_CCM"},
+ {0xC0AE, "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8"},
+ {0xC0AF, "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8"},
+ {0xCCA8, "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256"},
+ {0xCCA9, "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256"},
+ {0xCCAA, "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256"},
+ {0xCCAB, "TLS_PSK_WITH_CHACHA20_POLY1305_SHA256"},
+ {0xCCAC, "TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256"},
+ {0xCCAD, "TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256"},
+ {0xCCAE, "TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256"},
+ {0x1301, "TLS_AES_128_GCM_SHA256"},
+ {0x1302, "TLS_AES_256_GCM_SHA384"},
+ {0x1303, "TLS_CHACHA20_POLY1305_SHA256"},
+ {0x1304, "TLS_AES_128_CCM_SHA256"},
+ {0x1305, "TLS_AES_128_CCM_8_SHA256"},
+ {0xFEFE, "SSL_RSA_FIPS_WITH_DES_CBC_SHA"},
+ {0xFEFF, "SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA"},
+};
+
+static const char *get_std_name_by_id(int id)
+{
+ size_t i;
+
+ for (i = 0; i < OSSL_NELEM(cipher_names); i++)
+ if (cipher_names[i].id == id)
+ return cipher_names[i].name;
+
+ return NULL;
+}
+
+static int test_cipher_name(void)
+{
+ SSL_CTX *ctx = NULL;
+ SSL *ssl = NULL;
+ const SSL_CIPHER *c;
+ STACK_OF(SSL_CIPHER) *sk = NULL;
+ const char *ciphers = "ALL:eNULL", *p, *q, *r;
+ int i, id = 0, ret = 0;
+
+ /* tests for invalid input */
+ p = SSL_CIPHER_standard_name(NULL);
+ if (!TEST_str_eq(p, "(NONE)")) {
+ TEST_info("test_cipher_name(std) failed: NULL input doesn't return \"(NONE)\"\n");
+ goto err;
+ }
+
+ p = OPENSSL_cipher_name(NULL);
+ if (!TEST_str_eq(p, "(NONE)")) {
+ TEST_info("test_cipher_name(ossl) failed: NULL input doesn't return \"(NONE)\"\n");
+ goto err;
+ }
+
+ p = OPENSSL_cipher_name("This is not a valid cipher");
+ if (!TEST_str_eq(p, "(NONE)")) {
+ TEST_info("test_cipher_name(ossl) failed: invalid input doesn't return \"(NONE)\"\n");
+ goto err;
+ }
+
+ /* tests for valid input */
+ ctx = SSL_CTX_new(TLS_server_method());
+ if (ctx == NULL) {
+ TEST_info("test_cipher_name failed: internal error\n");
+ goto err;
+ }
+
+ if (!SSL_CTX_set_cipher_list(ctx, ciphers)) {
+ TEST_info("test_cipher_name failed: internal error\n");
+ goto err;
+ }
+
+ ssl = SSL_new(ctx);
+ if (ssl == NULL) {
+ TEST_info("test_cipher_name failed: internal error\n");
+ goto err;
+ }
+
+ sk = SSL_get_ciphers(ssl);
+ if (sk == NULL) {
+ TEST_info("test_cipher_name failed: internal error\n");
+ goto err;
+ }
+
+ for (i = 0; i < sk_SSL_CIPHER_num(sk); i++) {
+ c = sk_SSL_CIPHER_value(sk, i);
+ id = SSL_CIPHER_get_id(c) & 0xFFFF;
+ if ((id == 0xFF85) || (id == 0xFF87))
+ /* skip GOST2012-GOST8912-GOST891 and GOST2012-NULL-GOST12 */
+ continue;
+ p = SSL_CIPHER_standard_name(c);
+ q = get_std_name_by_id(id);
+ if (!TEST_ptr(p)) {
+ TEST_info("test_cipher_name failed: expected %s, got NULL, cipher %x\n",
+ q, id);
+ goto err;
+ }
+ /* check if p is a valid standard name */
+ if (!TEST_str_eq(p, q)) {
+ TEST_info("test_cipher_name(std) failed: expected %s, got %s, cipher %x\n",
+ q, p, id);
+ goto err;
+ }
+ /* test OPENSSL_cipher_name */
+ q = SSL_CIPHER_get_name(c);
+ r = OPENSSL_cipher_name(p);
+ if (!TEST_str_eq(r, q)) {
+ TEST_info("test_cipher_name(ossl) failed: expected %s, got %s, cipher %x\n",
+ q, r, id);
+ goto err;
+ }
+ }
+ ret = 1;
+err:
+ SSL_CTX_free(ctx);
+ SSL_free(ssl);
+ return ret;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_cipher_name);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/clienthellotest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/clienthellotest.c
new file mode 100644
index 000000000..8ae1e4d9c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/clienthellotest.c
@@ -0,0 +1,251 @@
+/*
+ * Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+
+#include <openssl/opensslconf.h>
+#include <openssl/bio.h>
+#include <openssl/crypto.h>
+#include <openssl/evp.h>
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+#include <time.h>
+
+#include "../ssl/packet_local.h"
+
+#include "testutil.h"
+
+#define CLIENT_VERSION_LEN 2
+
+#define TOTAL_NUM_TESTS 4
+
+/*
+ * Test that explicitly setting ticket data results in it appearing in the
+ * ClientHello for a negotiated SSL/TLS version
+ */
+#define TEST_SET_SESSION_TICK_DATA_VER_NEG 0
+/* Enable padding and make sure ClientHello is long enough to require it */
+#define TEST_ADD_PADDING 1
+/* Enable padding and make sure ClientHello is short enough to not need it */
+#define TEST_PADDING_NOT_NEEDED 2
+/*
+ * Enable padding and add a PSK to the ClientHello (this will also ensure the
+ * ClientHello is long enough to need padding)
+ */
+#define TEST_ADD_PADDING_AND_PSK 3
+
+#define F5_WORKAROUND_MIN_MSG_LEN 0x7f
+#define F5_WORKAROUND_MAX_MSG_LEN 0x200
+
+static const char *sessionfile = NULL;
+/* Dummy ALPN protocols used to pad out the size of the ClientHello */
+static const char alpn_prots[] =
+ "0123456789012345678901234567890123456789012345678901234567890123456789"
+ "0123456789012345678901234567890123456789012345678901234567890123456789"
+ "01234567890123456789";
+
+static int test_client_hello(int currtest)
+{
+ SSL_CTX *ctx;
+ SSL *con = NULL;
+ BIO *rbio;
+ BIO *wbio;
+ long len;
+ unsigned char *data;
+ PACKET pkt = {0}, pkt2 = {0}, pkt3 = {0};
+ char *dummytick = "Hello World!";
+ unsigned int type = 0;
+ int testresult = 0;
+ size_t msglen;
+ BIO *sessbio = NULL;
+ SSL_SESSION *sess = NULL;
+
+#ifdef OPENSSL_NO_TLS1_3
+ if (currtest == TEST_ADD_PADDING_AND_PSK)
+ return 1;
+#endif
+
+ /*
+ * For each test set up an SSL_CTX and SSL and see what ClientHello gets
+ * produced when we try to connect
+ */
+ ctx = SSL_CTX_new(TLS_method());
+ if (!TEST_ptr(ctx))
+ goto end;
+ if (!TEST_true(SSL_CTX_set_max_proto_version(ctx, TLS_MAX_VERSION)))
+ goto end;
+
+ switch(currtest) {
+ case TEST_SET_SESSION_TICK_DATA_VER_NEG:
+#if !defined(OPENSSL_NO_TLS1_3) && defined(OPENSSL_NO_TLS1_2)
+ /* TLSv1.3 is enabled and TLSv1.2 is disabled so can't do this test */
+ return 1;
+#else
+ /* Testing for session tickets <= TLS1.2; not relevant for 1.3 */
+ if (!TEST_true(SSL_CTX_set_max_proto_version(ctx, TLS1_2_VERSION)))
+ goto end;
+#endif
+ break;
+
+ case TEST_ADD_PADDING_AND_PSK:
+ /*
+ * In this case we're doing TLSv1.3 and we're sending a PSK so the
+ * ClientHello is already going to be quite long. To avoid getting one
+ * that is too long for this test we use a restricted ciphersuite list
+ */
+ if (!TEST_false(SSL_CTX_set_cipher_list(ctx, "")))
+ goto end;
+ ERR_clear_error();
+ /* Fall through */
+ case TEST_ADD_PADDING:
+ case TEST_PADDING_NOT_NEEDED:
+ SSL_CTX_set_options(ctx, SSL_OP_TLSEXT_PADDING);
+ /* Make sure we get a consistent size across TLS versions */
+ SSL_CTX_clear_options(ctx, SSL_OP_ENABLE_MIDDLEBOX_COMPAT);
+ /*
+ * Add some dummy ALPN protocols so that the ClientHello is at least
+ * F5_WORKAROUND_MIN_MSG_LEN bytes long - meaning padding will be
+ * needed.
+ */
+ if (currtest == TEST_ADD_PADDING) {
+ if (!TEST_false(SSL_CTX_set_alpn_protos(ctx,
+ (unsigned char *)alpn_prots,
+ sizeof(alpn_prots) - 1)))
+ goto end;
+ /*
+ * Otherwise we need to make sure we have a small enough message to
+ * not need padding.
+ */
+ } else if (!TEST_true(SSL_CTX_set_cipher_list(ctx,
+ "AES128-SHA"))
+ || !TEST_true(SSL_CTX_set_ciphersuites(ctx,
+ "TLS_AES_128_GCM_SHA256"))) {
+ goto end;
+ }
+ break;
+
+ default:
+ goto end;
+ }
+
+ con = SSL_new(ctx);
+ if (!TEST_ptr(con))
+ goto end;
+
+ if (currtest == TEST_ADD_PADDING_AND_PSK) {
+ sessbio = BIO_new_file(sessionfile, "r");
+ if (!TEST_ptr(sessbio)) {
+ TEST_info("Unable to open session.pem");
+ goto end;
+ }
+ sess = PEM_read_bio_SSL_SESSION(sessbio, NULL, NULL, NULL);
+ if (!TEST_ptr(sess)) {
+ TEST_info("Unable to load SSL_SESSION");
+ goto end;
+ }
+ /*
+ * We reset the creation time so that we don't discard the session as
+ * too old.
+ */
+ if (!TEST_true(SSL_SESSION_set_time(sess, (long)time(NULL)))
+ || !TEST_true(SSL_set_session(con, sess)))
+ goto end;
+ }
+
+ rbio = BIO_new(BIO_s_mem());
+ wbio = BIO_new(BIO_s_mem());
+ if (!TEST_ptr(rbio)|| !TEST_ptr(wbio)) {
+ BIO_free(rbio);
+ BIO_free(wbio);
+ goto end;
+ }
+
+ SSL_set_bio(con, rbio, wbio);
+ SSL_set_connect_state(con);
+
+ if (currtest == TEST_SET_SESSION_TICK_DATA_VER_NEG) {
+ if (!TEST_true(SSL_set_session_ticket_ext(con, dummytick,
+ strlen(dummytick))))
+ goto end;
+ }
+
+ if (!TEST_int_le(SSL_connect(con), 0)) {
+ /* This shouldn't succeed because we don't have a server! */
+ goto end;
+ }
+
+ len = BIO_get_mem_data(wbio, (char **)&data);
+ if (!TEST_true(PACKET_buf_init(&pkt, data, len))
+ /* Skip the record header */
+ || !PACKET_forward(&pkt, SSL3_RT_HEADER_LENGTH))
+ goto end;
+
+ msglen = PACKET_remaining(&pkt);
+
+ /* Skip the handshake message header */
+ if (!TEST_true(PACKET_forward(&pkt, SSL3_HM_HEADER_LENGTH))
+ /* Skip client version and random */
+ || !TEST_true(PACKET_forward(&pkt, CLIENT_VERSION_LEN
+ + SSL3_RANDOM_SIZE))
+ /* Skip session id */
+ || !TEST_true(PACKET_get_length_prefixed_1(&pkt, &pkt2))
+ /* Skip ciphers */
+ || !TEST_true(PACKET_get_length_prefixed_2(&pkt, &pkt2))
+ /* Skip compression */
+ || !TEST_true(PACKET_get_length_prefixed_1(&pkt, &pkt2))
+ /* Extensions len */
+ || !TEST_true(PACKET_as_length_prefixed_2(&pkt, &pkt2)))
+ goto end;
+
+ /* Loop through all extensions */
+ while (PACKET_remaining(&pkt2)) {
+
+ if (!TEST_true(PACKET_get_net_2(&pkt2, &type))
+ || !TEST_true(PACKET_get_length_prefixed_2(&pkt2, &pkt3)))
+ goto end;
+
+ if (type == TLSEXT_TYPE_session_ticket) {
+ if (currtest == TEST_SET_SESSION_TICK_DATA_VER_NEG) {
+ if (TEST_true(PACKET_equal(&pkt3, dummytick,
+ strlen(dummytick)))) {
+ /* Ticket data is as we expected */
+ testresult = 1;
+ }
+ goto end;
+ }
+ }
+ if (type == TLSEXT_TYPE_padding) {
+ if (!TEST_false(currtest == TEST_PADDING_NOT_NEEDED))
+ goto end;
+ else if (TEST_true(currtest == TEST_ADD_PADDING
+ || currtest == TEST_ADD_PADDING_AND_PSK))
+ testresult = TEST_true(msglen == F5_WORKAROUND_MAX_MSG_LEN);
+ }
+ }
+
+ if (currtest == TEST_PADDING_NOT_NEEDED)
+ testresult = 1;
+
+end:
+ SSL_free(con);
+ SSL_CTX_free(ctx);
+ SSL_SESSION_free(sess);
+ BIO_free(sessbio);
+
+ return testresult;
+}
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(sessionfile = test_get_argument(0)))
+ return 0;
+
+ ADD_ALL_TESTS(test_client_hello, TOTAL_NUM_TESTS);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cms-examples.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cms-examples.pl
new file mode 100644
index 000000000..ec1c5fa2c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cms-examples.pl
@@ -0,0 +1,365 @@
+#! /usr/bin/env perl
+# Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# Perl script to run tests against S/MIME examples in RFC4134
+# Assumes RFC is in current directory and called "rfc4134.txt"
+
+use MIME::Base64;
+
+my $badttest = 0;
+my $verbose = 1;
+
+my $cmscmd;
+my $exdir = "./";
+my $exfile = "./rfc4134.txt";
+
+if (-f "../apps/openssl")
+ {
+ $cmscmd = "../util/shlib_wrap.sh ../apps/openssl cms";
+ }
+elsif (-f "..\\out32dll\\openssl.exe")
+ {
+ $cmscmd = "..\\out32dll\\openssl.exe cms";
+ }
+elsif (-f "..\\out32\\openssl.exe")
+ {
+ $cmscmd = "..\\out32\\openssl.exe cms";
+ }
+
+my @test_list = (
+ [ "3.1.bin" => "dataout" ],
+ [ "3.2.bin" => "encode, dataout" ],
+ [ "4.1.bin" => "encode, verifyder, cont, dss" ],
+ [ "4.2.bin" => "encode, verifyder, cont, rsa" ],
+ [ "4.3.bin" => "encode, verifyder, cont_extern, dss" ],
+ [ "4.4.bin" => "encode, verifyder, cont, dss" ],
+ [ "4.5.bin" => "verifyder, cont, rsa" ],
+ [ "4.6.bin" => "encode, verifyder, cont, dss" ],
+ [ "4.7.bin" => "encode, verifyder, cont, dss" ],
+ [ "4.8.eml" => "verifymime, dss" ],
+ [ "4.9.eml" => "verifymime, dss" ],
+ [ "4.10.bin" => "encode, verifyder, cont, dss" ],
+ [ "4.11.bin" => "encode, certsout" ],
+ [ "5.1.bin" => "encode, envelopeder, cont" ],
+ [ "5.2.bin" => "encode, envelopeder, cont" ],
+ [ "5.3.eml" => "envelopemime, cont" ],
+ [ "6.0.bin" => "encode, digest, cont" ],
+ [ "7.1.bin" => "encode, encrypted, cont" ],
+ [ "7.2.bin" => "encode, encrypted, cont" ]
+);
+
+# Extract examples from RFC4134 text.
+# Base64 decode all examples, certificates and
+# private keys are converted to PEM format.
+
+my ( $filename, $data );
+
+my @cleanup = ( "cms.out", "cms.err", "tmp.der", "tmp.txt" );
+
+$data = "";
+
+open( IN, $exfile ) || die "Can't Open RFC examples file $exfile";
+
+while (<IN>) {
+ next unless (/^\|/);
+ s/^\|//;
+ next if (/^\*/);
+ if (/^>(.*)$/) {
+ $filename = $1;
+ next;
+ }
+ if (/^</) {
+ $filename = "$exdir/$filename";
+ if ( $filename =~ /\.bin$/ || $filename =~ /\.eml$/ ) {
+ $data = decode_base64($data);
+ open OUT, ">$filename";
+ binmode OUT;
+ print OUT $data;
+ close OUT;
+ push @cleanup, $filename;
+ }
+ elsif ( $filename =~ /\.cer$/ ) {
+ write_pem( $filename, "CERTIFICATE", $data );
+ }
+ elsif ( $filename =~ /\.pri$/ ) {
+ write_pem( $filename, "PRIVATE KEY", $data );
+ }
+ $data = "";
+ $filename = "";
+ }
+ else {
+ $data .= $_;
+ }
+
+}
+
+my $secretkey =
+ "73:7c:79:1f:25:ea:d0:e0:46:29:25:43:52:f7:dc:62:91:e5:cb:26:91:7a:da:32";
+
+foreach (@test_list) {
+ my ( $file, $tlist ) = @$_;
+ print "Example file $file:\n";
+ if ( $tlist =~ /encode/ ) {
+ run_reencode_test( $exdir, $file );
+ }
+ if ( $tlist =~ /certsout/ ) {
+ run_certsout_test( $exdir, $file );
+ }
+ if ( $tlist =~ /dataout/ ) {
+ run_dataout_test( $exdir, $file );
+ }
+ if ( $tlist =~ /verify/ ) {
+ run_verify_test( $exdir, $tlist, $file );
+ }
+ if ( $tlist =~ /digest/ ) {
+ run_digest_test( $exdir, $tlist, $file );
+ }
+ if ( $tlist =~ /encrypted/ ) {
+ run_encrypted_test( $exdir, $tlist, $file, $secretkey );
+ }
+ if ( $tlist =~ /envelope/ ) {
+ run_envelope_test( $exdir, $tlist, $file );
+ }
+
+}
+
+foreach (@cleanup) {
+ unlink $_;
+}
+
+if ($badtest) {
+ print "\n$badtest TESTS FAILED!!\n";
+}
+else {
+ print "\n***All tests successful***\n";
+}
+
+sub write_pem {
+ my ( $filename, $str, $data ) = @_;
+
+ $filename =~ s/\.[^.]*$/.pem/;
+
+ push @cleanup, $filename;
+
+ open OUT, ">$filename";
+
+ print OUT "-----BEGIN $str-----\n";
+ print OUT $data;
+ print OUT "-----END $str-----\n";
+
+ close OUT;
+}
+
+sub run_reencode_test {
+ my ( $cmsdir, $tfile ) = @_;
+ unlink "tmp.der";
+
+ system( "$cmscmd -cmsout -inform DER -outform DER"
+ . " -in $cmsdir/$tfile -out tmp.der" );
+
+ if ($?) {
+ print "\tReencode command FAILED!!\n";
+ $badtest++;
+ }
+ elsif ( !cmp_files( "$cmsdir/$tfile", "tmp.der" ) ) {
+ print "\tReencode FAILED!!\n";
+ $badtest++;
+ }
+ else {
+ print "\tReencode passed\n" if $verbose;
+ }
+}
+
+sub run_certsout_test {
+ my ( $cmsdir, $tfile ) = @_;
+ unlink "tmp.der";
+ unlink "tmp.pem";
+
+ system( "$cmscmd -cmsout -inform DER -certsout tmp.pem"
+ . " -in $cmsdir/$tfile -out tmp.der" );
+
+ if ($?) {
+ print "\tCertificate output command FAILED!!\n";
+ $badtest++;
+ }
+ else {
+ print "\tCertificate output passed\n" if $verbose;
+ }
+}
+
+sub run_dataout_test {
+ my ( $cmsdir, $tfile ) = @_;
+ unlink "tmp.txt";
+
+ system(
+ "$cmscmd -data_out -inform DER" . " -in $cmsdir/$tfile -out tmp.txt" );
+
+ if ($?) {
+ print "\tDataout command FAILED!!\n";
+ $badtest++;
+ }
+ elsif ( !cmp_files( "$cmsdir/ExContent.bin", "tmp.txt" ) ) {
+ print "\tDataout compare FAILED!!\n";
+ $badtest++;
+ }
+ else {
+ print "\tDataout passed\n" if $verbose;
+ }
+}
+
+sub run_verify_test {
+ my ( $cmsdir, $tlist, $tfile ) = @_;
+ unlink "tmp.txt";
+
+ $form = "DER" if $tlist =~ /verifyder/;
+ $form = "SMIME" if $tlist =~ /verifymime/;
+ $cafile = "$cmsdir/CarlDSSSelf.pem" if $tlist =~ /dss/;
+ $cafile = "$cmsdir/CarlRSASelf.pem" if $tlist =~ /rsa/;
+
+ $cmd =
+ "$cmscmd -verify -inform $form"
+ . " -CAfile $cafile"
+ . " -in $cmsdir/$tfile -out tmp.txt";
+
+ $cmd .= " -content $cmsdir/ExContent.bin" if $tlist =~ /cont_extern/;
+
+ system("$cmd 2>cms.err 1>cms.out");
+
+ if ($?) {
+ print "\tVerify command FAILED!!\n";
+ $badtest++;
+ }
+ elsif ( $tlist =~ /cont/
+ && !cmp_files( "$cmsdir/ExContent.bin", "tmp.txt" ) )
+ {
+ print "\tVerify content compare FAILED!!\n";
+ $badtest++;
+ }
+ else {
+ print "\tVerify passed\n" if $verbose;
+ }
+}
+
+sub run_envelope_test {
+ my ( $cmsdir, $tlist, $tfile ) = @_;
+ unlink "tmp.txt";
+
+ $form = "DER" if $tlist =~ /envelopeder/;
+ $form = "SMIME" if $tlist =~ /envelopemime/;
+
+ $cmd =
+ "$cmscmd -decrypt -inform $form"
+ . " -recip $cmsdir/BobRSASignByCarl.pem"
+ . " -inkey $cmsdir/BobPrivRSAEncrypt.pem"
+ . " -in $cmsdir/$tfile -out tmp.txt";
+
+ system("$cmd 2>cms.err 1>cms.out");
+
+ if ($?) {
+ print "\tDecrypt command FAILED!!\n";
+ $badtest++;
+ }
+ elsif ( $tlist =~ /cont/
+ && !cmp_files( "$cmsdir/ExContent.bin", "tmp.txt" ) )
+ {
+ print "\tDecrypt content compare FAILED!!\n";
+ $badtest++;
+ }
+ else {
+ print "\tDecrypt passed\n" if $verbose;
+ }
+}
+
+sub run_digest_test {
+ my ( $cmsdir, $tlist, $tfile ) = @_;
+ unlink "tmp.txt";
+
+ my $cmd =
+ "$cmscmd -digest_verify -inform DER" . " -in $cmsdir/$tfile -out tmp.txt";
+
+ system("$cmd 2>cms.err 1>cms.out");
+
+ if ($?) {
+ print "\tDigest verify command FAILED!!\n";
+ $badtest++;
+ }
+ elsif ( $tlist =~ /cont/
+ && !cmp_files( "$cmsdir/ExContent.bin", "tmp.txt" ) )
+ {
+ print "\tDigest verify content compare FAILED!!\n";
+ $badtest++;
+ }
+ else {
+ print "\tDigest verify passed\n" if $verbose;
+ }
+}
+
+sub run_encrypted_test {
+ my ( $cmsdir, $tlist, $tfile, $key ) = @_;
+ unlink "tmp.txt";
+
+ system( "$cmscmd -EncryptedData_decrypt -inform DER"
+ . " -secretkey $key"
+ . " -in $cmsdir/$tfile -out tmp.txt" );
+
+ if ($?) {
+ print "\tEncrypted Data command FAILED!!\n";
+ $badtest++;
+ }
+ elsif ( $tlist =~ /cont/
+ && !cmp_files( "$cmsdir/ExContent.bin", "tmp.txt" ) )
+ {
+ print "\tEncrypted Data content compare FAILED!!\n";
+ $badtest++;
+ }
+ else {
+ print "\tEncryptedData verify passed\n" if $verbose;
+ }
+}
+
+sub cmp_files {
+ my ( $f1, $f2 ) = @_;
+ my ( $fp1, $fp2 );
+
+ my ( $rd1, $rd2 );
+
+ if ( !open( $fp1, "<$f1" ) ) {
+ print STDERR "Can't Open file $f1\n";
+ return 0;
+ }
+
+ if ( !open( $fp2, "<$f2" ) ) {
+ print STDERR "Can't Open file $f2\n";
+ return 0;
+ }
+
+ binmode $fp1;
+ binmode $fp2;
+
+ my $ret = 0;
+
+ for ( ; ; ) {
+ $n1 = sysread $fp1, $rd1, 4096;
+ $n2 = sysread $fp2, $rd2, 4096;
+ last if ( $n1 != $n2 );
+ last if ( $rd1 ne $rd2 );
+
+ if ( $n1 == 0 ) {
+ $ret = 1;
+ last;
+ }
+
+ }
+
+ close $fp1;
+ close $fp2;
+
+ return $ret;
+
+}
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cmsapitest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cmsapitest.c
new file mode 100644
index 000000000..a79ae8c04
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/cmsapitest.c
@@ -0,0 +1,93 @@
+#include <string.h>
+
+#include <openssl/cms.h>
+#include <openssl/bio.h>
+#include <openssl/x509.h>
+#include <openssl/pem.h>
+
+#include "testutil.h"
+
+static X509 *cert = NULL;
+static EVP_PKEY *privkey = NULL;
+
+static int test_encrypt_decrypt(void)
+{
+ int testresult = 0;
+ STACK_OF(X509) *certstack = sk_X509_new_null();
+ const char *msg = "Hello world";
+ BIO *msgbio = BIO_new_mem_buf(msg, strlen(msg));
+ BIO *outmsgbio = BIO_new(BIO_s_mem());
+ CMS_ContentInfo* content = NULL;
+ char buf[80];
+
+ if (!TEST_ptr(certstack) || !TEST_ptr(msgbio) || !TEST_ptr(outmsgbio))
+ goto end;
+
+ if (!TEST_int_gt(sk_X509_push(certstack, cert), 0))
+ goto end;
+
+ content = CMS_encrypt(certstack, msgbio, EVP_aes_128_cbc(), CMS_TEXT);
+ if (!TEST_ptr(content))
+ goto end;
+
+ if (!TEST_true(CMS_decrypt(content, privkey, cert, NULL, outmsgbio,
+ CMS_TEXT)))
+ goto end;
+
+ /* Check we got the message we first started with */
+ if (!TEST_int_eq(BIO_gets(outmsgbio, buf, sizeof(buf)), strlen(msg))
+ || !TEST_int_eq(strcmp(buf, msg), 0))
+ goto end;
+
+ testresult = 1;
+ end:
+ sk_X509_free(certstack);
+ BIO_free(msgbio);
+ BIO_free(outmsgbio);
+ CMS_ContentInfo_free(content);
+
+ return testresult;
+}
+
+int setup_tests(void)
+{
+ char *certin = NULL, *privkeyin = NULL;
+ BIO *certbio = NULL, *privkeybio = NULL;
+
+ if (!TEST_ptr(certin = test_get_argument(0))
+ || !TEST_ptr(privkeyin = test_get_argument(1)))
+ return 0;
+
+ certbio = BIO_new_file(certin, "r");
+ if (!TEST_ptr(certbio))
+ return 0;
+ if (!TEST_true(PEM_read_bio_X509(certbio, &cert, NULL, NULL))) {
+ BIO_free(certbio);
+ return 0;
+ }
+ BIO_free(certbio);
+
+ privkeybio = BIO_new_file(privkeyin, "r");
+ if (!TEST_ptr(privkeybio)) {
+ X509_free(cert);
+ cert = NULL;
+ return 0;
+ }
+ if (!TEST_true(PEM_read_bio_PrivateKey(privkeybio, &privkey, NULL, NULL))) {
+ BIO_free(privkeybio);
+ X509_free(cert);
+ cert = NULL;
+ return 0;
+ }
+ BIO_free(privkeybio);
+
+ ADD_TEST(test_encrypt_decrypt);
+
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+ X509_free(cert);
+ EVP_PKEY_free(privkey);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/conf_include_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/conf_include_test.c
new file mode 100644
index 000000000..ff0319a1c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/conf_include_test.c
@@ -0,0 +1,218 @@
+/*
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <openssl/conf.h>
+#include <openssl/err.h>
+#include "testutil.h"
+
+#ifdef _WIN32
+# include <direct.h>
+# define DIRSEP "/\\"
+# define chdir _chdir
+# define DIRSEP_PRESERVE 0
+#elif !defined(OPENSSL_NO_POSIX_IO)
+# include <unistd.h>
+# ifndef OPENSSL_SYS_VMS
+# define DIRSEP "/"
+# define DIRSEP_PRESERVE 0
+# else
+# define DIRSEP "/]:"
+# define DIRSEP_PRESERVE 1
+# endif
+#else
+/* the test does not work without chdir() */
+# define chdir(x) (-1);
+# define DIRSEP "/"
+# define DIRSEP_PRESERVE 0
+#endif
+
+/* changes path to that of the filename */
+static int change_path(const char *file)
+{
+ char *s = OPENSSL_strdup(file);
+ char *p = s;
+ char *last = NULL;
+ int ret;
+
+ if (s == NULL)
+ return -1;
+
+ while ((p = strpbrk(p, DIRSEP)) != NULL) {
+ last = p++;
+ }
+ if (last == NULL)
+ return 0;
+ last[DIRSEP_PRESERVE] = 0;
+
+ TEST_note("changing path to %s", s);
+ ret = chdir(s);
+ OPENSSL_free(s);
+ return ret;
+}
+
+/*
+ * This test program checks the operation of the .include directive.
+ */
+
+static CONF *conf;
+static BIO *in;
+static int expect_failure = 0;
+
+static int test_load_config(void)
+{
+ long errline;
+ long val;
+ char *str;
+ long err;
+
+ if (!TEST_int_gt(NCONF_load_bio(conf, in, &errline), 0)
+ || !TEST_int_eq(err = ERR_peek_error(), 0)) {
+ if (expect_failure)
+ return 1;
+ TEST_note("Failure loading the configuration at line %ld", errline);
+ return 0;
+ }
+ if (expect_failure) {
+ TEST_note("Failure expected but did not happen");
+ return 0;
+ }
+
+ if (!TEST_int_gt(CONF_modules_load(conf, NULL, 0), 0)) {
+ TEST_note("Failed in CONF_modules_load");
+ return 0;
+ }
+
+ /* verify whether RANDFILE is set correctly */
+ str = NCONF_get_string(conf, "", "RANDFILE");
+ if (!TEST_ptr(str) || !TEST_str_eq(str, "./.rnd")) {
+ TEST_note("RANDFILE incorrect");
+ return 0;
+ }
+
+ /* verify whether CA_default/default_days is set */
+ val = 0;
+ if (!TEST_int_eq(NCONF_get_number(conf, "CA_default", "default_days", &val), 1)
+ || !TEST_int_eq(val, 365)) {
+ TEST_note("default_days incorrect");
+ return 0;
+ }
+
+ /* verify whether req/default_bits is set */
+ val = 0;
+ if (!TEST_int_eq(NCONF_get_number(conf, "req", "default_bits", &val), 1)
+ || !TEST_int_eq(val, 2048)) {
+ TEST_note("default_bits incorrect");
+ return 0;
+ }
+
+ /* verify whether countryName_default is set correctly */
+ str = NCONF_get_string(conf, "req_distinguished_name", "countryName_default");
+ if (!TEST_ptr(str) || !TEST_str_eq(str, "AU")) {
+ TEST_note("countryName_default incorrect");
+ return 0;
+ }
+
+ return 1;
+}
+
+static int test_check_null_numbers(void)
+{
+#if defined(_BSD_SOURCE) \
+ || (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200112L) \
+ || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE >= 600)
+ long val = 0;
+
+ /* Verify that a NULL config with a present environment variable returns
+ * success and the value.
+ */
+ if (!TEST_int_eq(setenv("FNORD", "123", 1), 0)
+ || !TEST_true(NCONF_get_number(NULL, "missing", "FNORD", &val))
+ || !TEST_long_eq(val, 123)) {
+ TEST_note("environment variable with NULL conf failed");
+ return 0;
+ }
+
+ /*
+ * Verify that a NULL config with a missing environment variable returns
+ * a failure code.
+ */
+ if (!TEST_int_eq(unsetenv("FNORD"), 0)
+ || !TEST_false(NCONF_get_number(NULL, "missing", "FNORD", &val))) {
+ TEST_note("missing environment variable with NULL conf failed");
+ return 0;
+ }
+#endif
+ return 1;
+}
+
+static int test_check_overflow(void)
+{
+#if defined(_BSD_SOURCE) \
+ || (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200112L) \
+ || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE >= 600)
+ long val = 0;
+ char max[(sizeof(long) * 8) / 3 + 3];
+ char *p;
+
+ p = max + sprintf(max, "0%ld", LONG_MAX) - 1;
+ setenv("FNORD", max, 1);
+ if (!TEST_true(NCONF_get_number(NULL, "missing", "FNORD", &val))
+ || !TEST_long_eq(val, LONG_MAX))
+ return 0;
+
+ while (++*p > '9')
+ *p-- = '0';
+
+ setenv("FNORD", max, 1);
+ if (!TEST_false(NCONF_get_number(NULL, "missing", "FNORD", &val)))
+ return 0;
+#endif
+ return 1;
+}
+
+int setup_tests(void)
+{
+ const char *conf_file;
+ const char *arg2;
+
+ if (!TEST_ptr(conf = NCONF_new(NULL)))
+ return 0;
+
+ conf_file = test_get_argument(0);
+
+ if (!TEST_ptr(conf_file)
+ || !TEST_ptr(in = BIO_new_file(conf_file, "r"))) {
+ TEST_note("Unable to open the file argument");
+ return 0;
+ }
+
+ if ((arg2 = test_get_argument(1)) != NULL && *arg2 == 'f') {
+ expect_failure = 1;
+ }
+
+ /*
+ * For this test we need to chdir as we use relative
+ * path names in the config files.
+ */
+ change_path(conf_file);
+
+ ADD_TEST(test_load_config);
+ ADD_TEST(test_check_null_numbers);
+ ADD_TEST(test_check_overflow);
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+ BIO_vfree(in);
+ NCONF_free(conf);
+ CONF_modules_unload(1);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/constant_time_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/constant_time_test.c
new file mode 100644
index 000000000..25f539280
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/constant_time_test.c
@@ -0,0 +1,414 @@
+/*
+ * Copyright 2014-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "internal/nelem.h"
+#include "internal/constant_time.h"
+#include "testutil.h"
+#include "internal/numbers.h"
+
+static const unsigned int CONSTTIME_TRUE = (unsigned)(~0);
+static const unsigned int CONSTTIME_FALSE = 0;
+static const unsigned char CONSTTIME_TRUE_8 = 0xff;
+static const unsigned char CONSTTIME_FALSE_8 = 0;
+static const size_t CONSTTIME_TRUE_S = ~((size_t)0);
+static const size_t CONSTTIME_FALSE_S = 0;
+static uint32_t CONSTTIME_TRUE_32 = (uint32_t)(~(uint32_t)0);
+static uint32_t CONSTTIME_FALSE_32 = 0;
+static uint64_t CONSTTIME_TRUE_64 = (uint64_t)(~(uint64_t)0);
+static uint64_t CONSTTIME_FALSE_64 = 0;
+
+static unsigned int test_values[] = {
+ 0, 1, 1024, 12345, 32000, UINT_MAX / 2 - 1,
+ UINT_MAX / 2, UINT_MAX / 2 + 1, UINT_MAX - 1,
+ UINT_MAX
+};
+
+static unsigned char test_values_8[] = {
+ 0, 1, 2, 20, 32, 127, 128, 129, 255
+};
+
+static int signed_test_values[] = {
+ 0, 1, -1, 1024, -1024, 12345, -12345,
+ 32000, -32000, INT_MAX, INT_MIN, INT_MAX - 1,
+ INT_MIN + 1
+};
+
+static size_t test_values_s[] = {
+ 0, 1, 1024, 12345, 32000, SIZE_MAX / 2 - 1,
+ SIZE_MAX / 2, SIZE_MAX / 2 + 1, SIZE_MAX - 1,
+ SIZE_MAX
+};
+
+static uint32_t test_values_32[] = {
+ 0, 1, 1024, 12345, 32000, UINT32_MAX / 2, UINT32_MAX / 2 + 1,
+ UINT32_MAX - 1, UINT32_MAX
+};
+
+static uint64_t test_values_64[] = {
+ 0, 1, 1024, 12345, 32000, 32000000, 32000000001, UINT64_MAX / 2,
+ UINT64_MAX / 2 + 1, UINT64_MAX - 1, UINT64_MAX
+};
+
+static int test_binary_op(unsigned int (*op) (unsigned int a, unsigned int b),
+ const char *op_name, unsigned int a, unsigned int b,
+ int is_true)
+{
+ if (is_true && !TEST_uint_eq(op(a, b), CONSTTIME_TRUE))
+ return 0;
+ if (!is_true && !TEST_uint_eq(op(a, b), CONSTTIME_FALSE))
+ return 0;
+ return 1;
+}
+
+static int test_binary_op_8(unsigned
+ char (*op) (unsigned int a, unsigned int b),
+ const char *op_name, unsigned int a,
+ unsigned int b, int is_true)
+{
+ if (is_true && !TEST_uint_eq(op(a, b), CONSTTIME_TRUE_8))
+ return 0;
+ if (!is_true && !TEST_uint_eq(op(a, b), CONSTTIME_FALSE_8))
+ return 0;
+ return 1;
+}
+
+static int test_binary_op_s(size_t (*op) (size_t a, size_t b),
+ const char *op_name, size_t a, size_t b,
+ int is_true)
+{
+ if (is_true && !TEST_size_t_eq(op(a,b), CONSTTIME_TRUE_S))
+ return 0;
+ if (!is_true && !TEST_uint_eq(op(a,b), CONSTTIME_FALSE_S))
+ return 0;
+ return 1;
+}
+
+static int test_binary_op_64(uint64_t (*op)(uint64_t a, uint64_t b),
+ const char *op_name, uint64_t a, uint64_t b,
+ int is_true)
+{
+ uint64_t c = op(a, b);
+
+ if (is_true && c != CONSTTIME_TRUE_64) {
+ TEST_error("TRUE %s op failed", op_name);
+ BIO_printf(bio_err, "a=%jx b=%jx\n", a, b);
+ return 0;
+ } else if (!is_true && c != CONSTTIME_FALSE_64) {
+ TEST_error("FALSE %s op failed", op_name);
+ BIO_printf(bio_err, "a=%jx b=%jx\n", a, b);
+ return 0;
+ }
+ return 1;
+}
+
+static int test_is_zero(int i)
+{
+ unsigned int a = test_values[i];
+
+ if (a == 0 && !TEST_uint_eq(constant_time_is_zero(a), CONSTTIME_TRUE))
+ return 0;
+ if (a != 0 && !TEST_uint_eq(constant_time_is_zero(a), CONSTTIME_FALSE))
+ return 0;
+ return 1;
+}
+
+static int test_is_zero_8(int i)
+{
+ unsigned int a = test_values_8[i];
+
+ if (a == 0 && !TEST_uint_eq(constant_time_is_zero_8(a), CONSTTIME_TRUE_8))
+ return 0;
+ if (a != 0 && !TEST_uint_eq(constant_time_is_zero_8(a), CONSTTIME_FALSE_8))
+ return 0;
+ return 1;
+}
+
+static int test_is_zero_32(int i)
+{
+ uint32_t a = test_values_32[i];
+
+ if (a == 0 && !TEST_true(constant_time_is_zero_32(a) == CONSTTIME_TRUE_32))
+ return 0;
+ if (a != 0 && !TEST_true(constant_time_is_zero_32(a) == CONSTTIME_FALSE_32))
+ return 0;
+ return 1;
+}
+
+static int test_is_zero_s(int i)
+{
+ size_t a = test_values_s[i];
+
+ if (a == 0 && !TEST_size_t_eq(constant_time_is_zero_s(a), CONSTTIME_TRUE_S))
+ return 0;
+ if (a != 0 && !TEST_uint_eq(constant_time_is_zero_s(a), CONSTTIME_FALSE_S))
+ return 0;
+ return 1;
+}
+
+static int test_select(unsigned int a, unsigned int b)
+{
+ if (!TEST_uint_eq(constant_time_select(CONSTTIME_TRUE, a, b), a))
+ return 0;
+ if (!TEST_uint_eq(constant_time_select(CONSTTIME_FALSE, a, b), b))
+ return 0;
+ return 1;
+}
+
+static int test_select_8(unsigned char a, unsigned char b)
+{
+ if (!TEST_uint_eq(constant_time_select_8(CONSTTIME_TRUE_8, a, b), a))
+ return 0;
+ if (!TEST_uint_eq(constant_time_select_8(CONSTTIME_FALSE_8, a, b), b))
+ return 0;
+ return 1;
+}
+
+static int test_select_32(uint32_t a, uint32_t b)
+{
+ if (!TEST_true(constant_time_select_32(CONSTTIME_TRUE_32, a, b) == a))
+ return 0;
+ if (!TEST_true(constant_time_select_32(CONSTTIME_FALSE_32, a, b) == b))
+ return 0;
+ return 1;
+}
+
+static int test_select_s(size_t a, size_t b)
+{
+ if (!TEST_uint_eq(constant_time_select_s(CONSTTIME_TRUE_S, a, b), a))
+ return 0;
+ if (!TEST_uint_eq(constant_time_select_s(CONSTTIME_FALSE_S, a, b), b))
+ return 0;
+ return 1;
+}
+
+static int test_select_64(uint64_t a, uint64_t b)
+{
+ uint64_t selected = constant_time_select_64(CONSTTIME_TRUE_64, a, b);
+
+ if (selected != a) {
+ TEST_error("test_select_64 TRUE failed");
+ BIO_printf(bio_err, "a=%jx b=%jx got %jx wanted a\n", a, b, selected);
+ return 0;
+ }
+ selected = constant_time_select_64(CONSTTIME_FALSE_64, a, b);
+ if (selected != b) {
+ BIO_printf(bio_err, "a=%jx b=%jx got %jx wanted b\n", a, b, selected);
+ return 0;
+ }
+ return 1;
+}
+
+static int test_select_int(int a, int b)
+{
+ if (!TEST_int_eq(constant_time_select_int(CONSTTIME_TRUE, a, b), a))
+ return 0;
+ if (!TEST_int_eq(constant_time_select_int(CONSTTIME_FALSE, a, b), b))
+ return 0;
+ return 1;
+}
+
+static int test_eq_int_8(int a, int b)
+{
+ if (a == b && !TEST_int_eq(constant_time_eq_int_8(a, b), CONSTTIME_TRUE_8))
+ return 0;
+ if (a != b && !TEST_int_eq(constant_time_eq_int_8(a, b), CONSTTIME_FALSE_8))
+ return 0;
+ return 1;
+}
+
+static int test_eq_s(size_t a, size_t b)
+{
+ if (a == b && !TEST_size_t_eq(constant_time_eq_s(a, b), CONSTTIME_TRUE_S))
+ return 0;
+ if (a != b && !TEST_int_eq(constant_time_eq_s(a, b), CONSTTIME_FALSE_S))
+ return 0;
+ return 1;
+}
+
+static int test_eq_int(int a, int b)
+{
+ if (a == b && !TEST_uint_eq(constant_time_eq_int(a, b), CONSTTIME_TRUE))
+ return 0;
+ if (a != b && !TEST_uint_eq(constant_time_eq_int(a, b), CONSTTIME_FALSE))
+ return 0;
+ return 1;
+}
+
+static int test_sizeofs(void)
+{
+ if (!TEST_uint_eq(OSSL_NELEM(test_values), OSSL_NELEM(test_values_s)))
+ return 0;
+ return 1;
+}
+
+static int test_binops(int i)
+{
+ unsigned int a = test_values[i];
+ int j;
+ int ret = 1;
+
+ for (j = 0; j < (int)OSSL_NELEM(test_values); ++j) {
+ unsigned int b = test_values[j];
+
+ if (!test_select(a, b)
+ || !test_binary_op(&constant_time_lt, "ct_lt",
+ a, b, a < b)
+ || !test_binary_op(&constant_time_lt, "constant_time_lt",
+ b, a, b < a)
+ || !test_binary_op(&constant_time_ge, "constant_time_ge",
+ a, b, a >= b)
+ || !test_binary_op(&constant_time_ge, "constant_time_ge",
+ b, a, b >= a)
+ || !test_binary_op(&constant_time_eq, "constant_time_eq",
+ a, b, a == b)
+ || !test_binary_op(&constant_time_eq, "constant_time_eq",
+ b, a, b == a))
+ ret = 0;
+ }
+ return ret;
+}
+
+static int test_binops_8(int i)
+{
+ unsigned int a = test_values_8[i];
+ int j;
+ int ret = 1;
+
+ for (j = 0; j < (int)OSSL_NELEM(test_values_8); ++j) {
+ unsigned int b = test_values_8[j];
+
+ if (!test_binary_op_8(&constant_time_lt_8, "constant_time_lt_8",
+ a, b, a < b)
+ || !test_binary_op_8(&constant_time_lt_8, "constant_time_lt_8",
+ b, a, b < a)
+ || !test_binary_op_8(&constant_time_ge_8, "constant_time_ge_8",
+ a, b, a >= b)
+ || !test_binary_op_8(&constant_time_ge_8, "constant_time_ge_8",
+ b, a, b >= a)
+ || !test_binary_op_8(&constant_time_eq_8, "constant_time_eq_8",
+ a, b, a == b)
+ || !test_binary_op_8(&constant_time_eq_8, "constant_time_eq_8",
+ b, a, b == a))
+ ret = 0;
+ }
+ return ret;
+}
+
+static int test_binops_s(int i)
+{
+ size_t a = test_values_s[i];
+ int j;
+ int ret = 1;
+
+ for (j = 0; j < (int)OSSL_NELEM(test_values_s); ++j) {
+ size_t b = test_values_s[j];
+
+ if (!test_select_s(a, b)
+ || !test_eq_s(a, b)
+ || !test_binary_op_s(&constant_time_lt_s, "constant_time_lt_s",
+ a, b, a < b)
+ || !test_binary_op_s(&constant_time_lt_s, "constant_time_lt_s",
+ b, a, b < a)
+ || !test_binary_op_s(&constant_time_ge_s, "constant_time_ge_s",
+ a, b, a >= b)
+ || !test_binary_op_s(&constant_time_ge_s, "constant_time_ge_s",
+ b, a, b >= a)
+ || !test_binary_op_s(&constant_time_eq_s, "constant_time_eq_s",
+ a, b, a == b)
+ || !test_binary_op_s(&constant_time_eq_s, "constant_time_eq_s",
+ b, a, b == a))
+ ret = 0;
+ }
+ return ret;
+}
+
+static int test_signed(int i)
+{
+ int c = signed_test_values[i];
+ unsigned int j;
+ int ret = 1;
+
+ for (j = 0; j < OSSL_NELEM(signed_test_values); ++j) {
+ int d = signed_test_values[j];
+
+ if (!test_select_int(c, d)
+ || !test_eq_int(c, d)
+ || !test_eq_int_8(c, d))
+ ret = 0;
+ }
+ return ret;
+}
+
+static int test_8values(int i)
+{
+ unsigned char e = test_values_8[i];
+ unsigned int j;
+ int ret = 1;
+
+ for (j = 0; j < sizeof(test_values_8); ++j) {
+ unsigned char f = test_values_8[j];
+
+ if (!test_select_8(e, f))
+ ret = 0;
+ }
+ return ret;
+}
+
+static int test_32values(int i)
+{
+ uint32_t e = test_values_32[i];
+ size_t j;
+ int ret = 1;
+
+ for (j = 0; j < OSSL_NELEM(test_values_32); j++) {
+ uint32_t f = test_values_32[j];
+
+ if (!test_select_32(e, f))
+ ret = 0;
+ }
+ return ret;
+}
+
+static int test_64values(int i)
+{
+ uint64_t g = test_values_64[i];
+ int j, ret = 1;
+
+ for (j = i + 1; j < (int)OSSL_NELEM(test_values_64); j++) {
+ uint64_t h = test_values_64[j];
+
+ if (!test_binary_op_64(&constant_time_lt_64, "constant_time_lt_64",
+ g, h, g < h)
+ || !test_select_64(g, h)) {
+ TEST_info("test_64values failed i=%d j=%d", i, j);
+ ret = 0;
+ }
+ }
+ return ret;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_sizeofs);
+ ADD_ALL_TESTS(test_is_zero, OSSL_NELEM(test_values));
+ ADD_ALL_TESTS(test_is_zero_8, OSSL_NELEM(test_values_8));
+ ADD_ALL_TESTS(test_is_zero_32, OSSL_NELEM(test_values_32));
+ ADD_ALL_TESTS(test_is_zero_s, OSSL_NELEM(test_values_s));
+ ADD_ALL_TESTS(test_binops, OSSL_NELEM(test_values));
+ ADD_ALL_TESTS(test_binops_8, OSSL_NELEM(test_values_8));
+ ADD_ALL_TESTS(test_binops_s, OSSL_NELEM(test_values_s));
+ ADD_ALL_TESTS(test_signed, OSSL_NELEM(signed_test_values));
+ ADD_ALL_TESTS(test_8values, OSSL_NELEM(test_values_8));
+ ADD_ALL_TESTS(test_32values, OSSL_NELEM(test_values_32));
+ ADD_ALL_TESTS(test_64values, OSSL_NELEM(test_values_64));
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/crltest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/crltest.c
new file mode 100644
index 000000000..fe5228211
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/crltest.c
@@ -0,0 +1,393 @@
+/*
+ * Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "internal/nelem.h"
+#include <string.h>
+#include <openssl/bio.h>
+#include <openssl/crypto.h>
+#include <openssl/err.h>
+#include <openssl/pem.h>
+#include <openssl/x509.h>
+
+#include "testutil.h"
+
+#define PARAM_TIME 1474934400 /* Sep 27th, 2016 */
+
+static const char *kCRLTestRoot[] = {
+ "-----BEGIN CERTIFICATE-----\n",
+ "MIIDbzCCAlegAwIBAgIJAODri7v0dDUFMA0GCSqGSIb3DQEBCwUAME4xCzAJBgNV\n",
+ "BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW\n",
+ "aWV3MRIwEAYDVQQKDAlCb3JpbmdTU0wwHhcNMTYwOTI2MTUwNjI2WhcNMjYwOTI0\n",
+ "MTUwNjI2WjBOMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQG\n",
+ "A1UEBwwNTW91bnRhaW4gVmlldzESMBAGA1UECgwJQm9yaW5nU1NMMIIBIjANBgkq\n",
+ "hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo16WiLWZuaymsD8n5SKPmxV1y6jjgr3B\n",
+ "S/dUBpbrzd1aeFzNlI8l2jfAnzUyp+I21RQ+nh/MhqjGElkTtK9xMn1Y+S9GMRh+\n",
+ "5R/Du0iCb1tCZIPY07Tgrb0KMNWe0v2QKVVruuYSgxIWodBfxlKO64Z8AJ5IbnWp\n",
+ "uRqO6rctN9qUoMlTIAB6dL4G0tDJ/PGFWOJYwOMEIX54bly2wgyYJVBKiRRt4f7n\n",
+ "8H922qmvPNA9idmX9G1VAtgV6x97XXi7ULORIQvn9lVQF6nTYDBJhyuPB+mLThbL\n",
+ "P2o9orxGx7aCtnnBZUIxUvHNOI0FaSaZH7Fi0xsZ/GkG2HZe7ImPJwIDAQABo1Aw\n",
+ "TjAdBgNVHQ4EFgQUWPt3N5cZ/CRvubbrkqfBnAqhq94wHwYDVR0jBBgwFoAUWPt3\n",
+ "N5cZ/CRvubbrkqfBnAqhq94wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC\n",
+ "AQEAORu6M0MOwXy+3VEBwNilfTxyqDfruQsc1jA4PT8Oe8zora1WxE1JB4q2FJOz\n",
+ "EAuM3H/NXvEnBuN+ITvKZAJUfm4NKX97qmjMJwLKWe1gVv+VQTr63aR7mgWJReQN\n",
+ "XdMztlVeZs2dppV6uEg3ia1X0G7LARxGpA9ETbMyCpb39XxlYuTClcbA5ftDN99B\n",
+ "3Xg9KNdd++Ew22O3HWRDvdDpTO/JkzQfzi3sYwUtzMEonENhczJhGf7bQMmvL/w5\n",
+ "24Wxj4Z7KzzWIHsNqE/RIs6RV3fcW61j/mRgW2XyoWnMVeBzvcJr9NXp4VQYmFPw\n",
+ "amd8GKMZQvP0ufGnUn7D7uartA==\n",
+ "-----END CERTIFICATE-----\n",
+ NULL
+};
+
+static const char *kCRLTestLeaf[] = {
+ "-----BEGIN CERTIFICATE-----\n",
+ "MIIDkDCCAnigAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwTjELMAkGA1UEBhMCVVMx\n",
+ "EzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEjAQ\n",
+ "BgNVBAoMCUJvcmluZ1NTTDAeFw0xNjA5MjYxNTA4MzFaFw0xNzA5MjYxNTA4MzFa\n",
+ "MEsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQKDAlC\n",
+ "b3JpbmdTU0wxEzARBgNVBAMMCmJvcmluZy5zc2wwggEiMA0GCSqGSIb3DQEBAQUA\n",
+ "A4IBDwAwggEKAoIBAQDc5v1S1M0W+QWM+raWfO0LH8uvqEwuJQgODqMaGnSlWUx9\n",
+ "8iQcnWfjyPja3lWg9K62hSOFDuSyEkysKHDxijz5R93CfLcfnVXjWQDJe7EJTTDP\n",
+ "ozEvxN6RjAeYv7CF000euYr3QT5iyBjg76+bon1p0jHZBJeNPP1KqGYgyxp+hzpx\n",
+ "e0gZmTlGAXd8JQK4v8kpdYwD6PPifFL/jpmQpqOtQmH/6zcLjY4ojmqpEdBqIKIX\n",
+ "+saA29hMq0+NK3K+wgg31RU+cVWxu3tLOIiesETkeDgArjWRS1Vkzbi4v9SJxtNu\n",
+ "OZuAxWiynRJw3JwH/OFHYZIvQqz68ZBoj96cepjPAgMBAAGjezB5MAkGA1UdEwQC\n",
+ "MAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRl\n",
+ "MB0GA1UdDgQWBBTGn0OVVh/aoYt0bvEKG+PIERqnDzAfBgNVHSMEGDAWgBRY+3c3\n",
+ "lxn8JG+5tuuSp8GcCqGr3jANBgkqhkiG9w0BAQsFAAOCAQEAd2nM8gCQN2Dc8QJw\n",
+ "XSZXyuI3DBGGCHcay/3iXu0JvTC3EiQo8J6Djv7WLI0N5KH8mkm40u89fJAB2lLZ\n",
+ "ShuHVtcC182bOKnePgwp9CNwQ21p0rDEu/P3X46ZvFgdxx82E9xLa0tBB8PiPDWh\n",
+ "lV16jbaKTgX5AZqjnsyjR5o9/mbZVupZJXx5Syq+XA8qiJfstSYJs4KyKK9UOjql\n",
+ "ICkJVKpi2ahDBqX4MOH4SLfzVk8pqSpviS6yaA1RXqjpkxiN45WWaXDldVHMSkhC\n",
+ "5CNXsXi4b1nAntu89crwSLA3rEwzCWeYj+BX7e1T9rr3oJdwOU/2KQtW1js1yQUG\n",
+ "tjJMFw==\n",
+ "-----END CERTIFICATE-----\n",
+ NULL
+};
+
+static const char *kBasicCRL[] = {
+ "-----BEGIN X509 CRL-----\n",
+ "MIIBpzCBkAIBATANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJVUzETMBEGA1UE\n",
+ "CAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzESMBAGA1UECgwJ\n",
+ "Qm9yaW5nU1NMFw0xNjA5MjYxNTEwNTVaFw0xNjEwMjYxNTEwNTVaoA4wDDAKBgNV\n",
+ "HRQEAwIBATANBgkqhkiG9w0BAQsFAAOCAQEAnrBKKgvd9x9zwK9rtUvVeFeJ7+LN\n",
+ "ZEAc+a5oxpPNEsJx6hXoApYEbzXMxuWBQoCs5iEBycSGudct21L+MVf27M38KrWo\n",
+ "eOkq0a2siqViQZO2Fb/SUFR0k9zb8xl86Zf65lgPplALun0bV/HT7MJcl04Tc4os\n",
+ "dsAReBs5nqTGNEd5AlC1iKHvQZkM//MD51DspKnDpsDiUVi54h9C1SpfZmX8H2Vv\n",
+ "diyu0fZ/bPAM3VAGawatf/SyWfBMyKpoPXEG39oAzmjjOj8en82psn7m474IGaho\n",
+ "/vBbhl1ms5qQiLYPjm4YELtnXQoFyC72tBjbdFd/ZE9k4CNKDbxFUXFbkw==\n",
+ "-----END X509 CRL-----\n",
+ NULL
+};
+
+static const char *kRevokedCRL[] = {
+ "-----BEGIN X509 CRL-----\n",
+ "MIIBvjCBpwIBATANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJVUzETMBEGA1UE\n",
+ "CAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzESMBAGA1UECgwJ\n",
+ "Qm9yaW5nU1NMFw0xNjA5MjYxNTEyNDRaFw0xNjEwMjYxNTEyNDRaMBUwEwICEAAX\n",
+ "DTE2MDkyNjE1MTIyNlqgDjAMMAoGA1UdFAQDAgECMA0GCSqGSIb3DQEBCwUAA4IB\n",
+ "AQCUGaM4DcWzlQKrcZvI8TMeR8BpsvQeo5BoI/XZu2a8h//PyRyMwYeaOM+3zl0d\n",
+ "sjgCT8b3C1FPgT+P2Lkowv7rJ+FHJRNQkogr+RuqCSPTq65ha4WKlRGWkMFybzVH\n",
+ "NloxC+aU3lgp/NlX9yUtfqYmJek1CDrOOGPrAEAwj1l/BUeYKNGqfBWYJQtPJu+5\n",
+ "OaSvIYGpETCZJscUWODmLEb/O3DM438vLvxonwGqXqS0KX37+CHpUlyhnSovxXxp\n",
+ "Pz4aF+L7OtczxL0GYtD2fR9B7TDMqsNmHXgQrixvvOY7MUdLGbd4RfJL3yA53hyO\n",
+ "xzfKY2TzxLiOmctG0hXFkH5J\n",
+ "-----END X509 CRL-----\n",
+ NULL
+};
+
+static const char *kBadIssuerCRL[] = {
+ "-----BEGIN X509 CRL-----\n",
+ "MIIBwjCBqwIBATANBgkqhkiG9w0BAQsFADBSMQswCQYDVQQGEwJVUzETMBEGA1UE\n",
+ "CAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEWMBQGA1UECgwN\n",
+ "Tm90IEJvcmluZ1NTTBcNMTYwOTI2MTUxMjQ0WhcNMTYxMDI2MTUxMjQ0WjAVMBMC\n",
+ "AhAAFw0xNjA5MjYxNTEyMjZaoA4wDDAKBgNVHRQEAwIBAjANBgkqhkiG9w0BAQsF\n",
+ "AAOCAQEAlBmjOA3Fs5UCq3GbyPEzHkfAabL0HqOQaCP12btmvIf/z8kcjMGHmjjP\n",
+ "t85dHbI4Ak/G9wtRT4E/j9i5KML+6yfhRyUTUJKIK/kbqgkj06uuYWuFipURlpDB\n",
+ "cm81RzZaMQvmlN5YKfzZV/clLX6mJiXpNQg6zjhj6wBAMI9ZfwVHmCjRqnwVmCUL\n",
+ "TybvuTmkryGBqREwmSbHFFjg5ixG/ztwzON/Ly78aJ8Bql6ktCl9+/gh6VJcoZ0q\n",
+ "L8V8aT8+Ghfi+zrXM8S9BmLQ9n0fQe0wzKrDZh14EK4sb7zmOzFHSxm3eEXyS98g\n",
+ "Od4cjsc3ymNk88S4jpnLRtIVxZB+SQ==\n",
+ "-----END X509 CRL-----\n",
+ NULL
+};
+
+/*
+ * This is kBasicCRL but with a critical issuing distribution point
+ * extension.
+ */
+static const char *kKnownCriticalCRL[] = {
+ "-----BEGIN X509 CRL-----\n",
+ "MIIBujCBowIBATANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJVUzETMBEGA1UE\n",
+ "CAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzESMBAGA1UECgwJ\n",
+ "Qm9yaW5nU1NMFw0xNjA5MjYxNTEwNTVaFw0xNjEwMjYxNTEwNTVaoCEwHzAKBgNV\n",
+ "HRQEAwIBATARBgNVHRwBAf8EBzAFoQMBAf8wDQYJKoZIhvcNAQELBQADggEBAA+3\n",
+ "i+5e5Ub8sccfgOBs6WVJFI9c8gvJjrJ8/dYfFIAuCyeocs7DFXn1n13CRZ+URR/Q\n",
+ "mVWgU28+xeusuSPYFpd9cyYTcVyNUGNTI3lwgcE/yVjPaOmzSZKdPakApRxtpKKQ\n",
+ "NN/56aQz3bnT/ZSHQNciRB8U6jiD9V30t0w+FDTpGaG+7bzzUH3UVF9xf9Ctp60A\n",
+ "3mfLe0scas7owSt4AEFuj2SPvcE7yvdOXbu+IEv21cEJUVExJAbhvIweHXh6yRW+\n",
+ "7VVeiNzdIjkZjyTmAzoXGha4+wbxXyBRbfH+XWcO/H+8nwyG8Gktdu2QB9S9nnIp\n",
+ "o/1TpfOMSGhMyMoyPrk=\n",
+ "-----END X509 CRL-----\n",
+ NULL
+};
+
+/*
+ * kUnknownCriticalCRL is kBasicCRL but with an unknown critical extension.
+ */
+static const char *kUnknownCriticalCRL[] = {
+ "-----BEGIN X509 CRL-----\n",
+ "MIIBvDCBpQIBATANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJVUzETMBEGA1UE\n",
+ "CAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzESMBAGA1UECgwJ\n",
+ "Qm9yaW5nU1NMFw0xNjA5MjYxNTEwNTVaFw0xNjEwMjYxNTEwNTVaoCMwITAKBgNV\n",
+ "HRQEAwIBATATBgwqhkiG9xIEAYS3CQABAf8EADANBgkqhkiG9w0BAQsFAAOCAQEA\n",
+ "GvBP0xqL509InMj/3493YVRV+ldTpBv5uTD6jewzf5XdaxEQ/VjTNe5zKnxbpAib\n",
+ "Kf7cwX0PMSkZjx7k7kKdDlEucwVvDoqC+O9aJcqVmM6GDyNb9xENxd0XCXja6MZC\n",
+ "yVgP4AwLauB2vSiEprYJyI1APph3iAEeDm60lTXX/wBM/tupQDDujKh2GPyvBRfJ\n",
+ "+wEDwGg3ICwvu4gO4zeC5qnFR+bpL9t5tOMAQnVZ0NWv+k7mkd2LbHdD44dxrfXC\n",
+ "nhtfERx99SDmC/jtUAJrGhtCO8acr7exCeYcduN7KKCm91OeCJKK6OzWst0Og1DB\n",
+ "kwzzU2rL3G65CrZ7H0SZsQ==\n",
+ "-----END X509 CRL-----\n",
+ NULL
+};
+
+/*
+ * kUnknownCriticalCRL2 is kBasicCRL but with a critical issuing distribution
+ * point extension followed by an unknown critical extension
+ */
+static const char *kUnknownCriticalCRL2[] = {
+ "-----BEGIN X509 CRL-----\n",
+ "MIIBzzCBuAIBATANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJVUzETMBEGA1UE\n",
+ "CAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzESMBAGA1UECgwJ\n",
+ "Qm9yaW5nU1NMFw0xNjA5MjYxNTEwNTVaFw0xNjEwMjYxNTEwNTVaoDYwNDAKBgNV\n",
+ "HRQEAwIBATARBgNVHRwBAf8EBzAFoQMBAf8wEwYMKoZIhvcSBAGEtwkAAQH/BAAw\n",
+ "DQYJKoZIhvcNAQELBQADggEBACTcpQC8jXL12JN5YzOcQ64ubQIe0XxRAd30p7qB\n",
+ "BTXGpgqBjrjxRfLms7EBYodEXB2oXMsDq3km0vT1MfYdsDD05S+SQ9CDsq/pUfaC\n",
+ "E2WNI5p8WircRnroYvbN2vkjlRbMd1+yNITohXYXCJwjEOAWOx3XIM10bwPYBv4R\n",
+ "rDobuLHoMgL3yHgMHmAkP7YpkBucNqeBV8cCdeAZLuhXFWi6yfr3r/X18yWbC/r2\n",
+ "2xXdkrSqXLFo7ToyP8YKTgiXpya4x6m53biEYwa2ULlas0igL6DK7wjYZX95Uy7H\n",
+ "GKljn9weIYiMPV/BzGymwfv2EW0preLwtyJNJPaxbdin6Jc=\n",
+ "-----END X509 CRL-----\n",
+ NULL
+};
+
+static const char **unknown_critical_crls[] = {
+ kUnknownCriticalCRL, kUnknownCriticalCRL2
+};
+
+static X509 *test_root = NULL;
+static X509 *test_leaf = NULL;
+
+/*
+ * Glue an array of strings together. Return a BIO and put the string
+ * into |*out| so we can free it.
+ */
+static BIO *glue2bio(const char **pem, char **out)
+{
+ size_t s = 0;
+
+ *out = glue_strings(pem, &s);
+ return BIO_new_mem_buf(*out, s);
+}
+
+/*
+ * Create a CRL from an array of strings.
+ */
+static X509_CRL *CRL_from_strings(const char **pem)
+{
+ char *p;
+ BIO *b = glue2bio(pem, &p);
+ X509_CRL *crl = PEM_read_bio_X509_CRL(b, NULL, NULL, NULL);
+
+ OPENSSL_free(p);
+ BIO_free(b);
+ return crl;
+}
+
+/*
+ * Create an X509 from an array of strings.
+ */
+static X509 *X509_from_strings(const char **pem)
+{
+ char *p;
+ BIO *b = glue2bio(pem, &p);
+ X509 *x = PEM_read_bio_X509(b, NULL, NULL, NULL);
+
+ OPENSSL_free(p);
+ BIO_free(b);
+ return x;
+}
+
+/*
+ * Verify |leaf| certificate (chained up to |root|). |crls| if
+ * not NULL, is a list of CRLs to include in the verification. It is
+ * also free'd before returning, which is kinda yucky but convenient.
+ * Returns a value from X509_V_ERR_xxx or X509_V_OK.
+ */
+static int verify(X509 *leaf, X509 *root, STACK_OF(X509_CRL) *crls,
+ unsigned long flags)
+{
+ X509_STORE_CTX *ctx = X509_STORE_CTX_new();
+ X509_STORE *store = X509_STORE_new();
+ X509_VERIFY_PARAM *param = X509_VERIFY_PARAM_new();
+ STACK_OF(X509) *roots = sk_X509_new_null();
+ int status = X509_V_ERR_UNSPECIFIED;
+
+ if (!TEST_ptr(ctx)
+ || !TEST_ptr(store)
+ || !TEST_ptr(param)
+ || !TEST_ptr(roots))
+ goto err;
+
+ /* Create a stack; upref the cert because we free it below. */
+ X509_up_ref(root);
+ if (!TEST_true(sk_X509_push(roots, root))
+ || !TEST_true(X509_STORE_CTX_init(ctx, store, leaf, NULL)))
+ goto err;
+ X509_STORE_CTX_set0_trusted_stack(ctx, roots);
+ X509_STORE_CTX_set0_crls(ctx, crls);
+ X509_VERIFY_PARAM_set_time(param, PARAM_TIME);
+ if (!TEST_long_eq((long)X509_VERIFY_PARAM_get_time(param), PARAM_TIME))
+ goto err;
+ X509_VERIFY_PARAM_set_depth(param, 16);
+ if (flags)
+ X509_VERIFY_PARAM_set_flags(param, flags);
+ X509_STORE_CTX_set0_param(ctx, param);
+ param = NULL;
+
+ ERR_clear_error();
+ status = X509_verify_cert(ctx) == 1 ? X509_V_OK
+ : X509_STORE_CTX_get_error(ctx);
+err:
+ sk_X509_pop_free(roots, X509_free);
+ sk_X509_CRL_pop_free(crls, X509_CRL_free);
+ X509_VERIFY_PARAM_free(param);
+ X509_STORE_CTX_free(ctx);
+ X509_STORE_free(store);
+ return status;
+}
+
+/*
+ * Create a stack of CRL's. Upref each one because we call pop_free on
+ * the stack and need to keep the CRL's around until the test exits.
+ * Yes this crashes on malloc failure; it forces us to debug.
+ */
+static STACK_OF(X509_CRL) *make_CRL_stack(X509_CRL *x1, X509_CRL *x2)
+{
+ STACK_OF(X509_CRL) *sk = sk_X509_CRL_new_null();
+
+ sk_X509_CRL_push(sk, x1);
+ X509_CRL_up_ref(x1);
+ if (x2 != NULL) {
+ sk_X509_CRL_push(sk, x2);
+ X509_CRL_up_ref(x2);
+ }
+ return sk;
+}
+
+static int test_basic_crl(void)
+{
+ X509_CRL *basic_crl = CRL_from_strings(kBasicCRL);
+ X509_CRL *revoked_crl = CRL_from_strings(kRevokedCRL);
+ int r;
+
+ r = TEST_ptr(basic_crl)
+ && TEST_ptr(revoked_crl)
+ && TEST_int_eq(verify(test_leaf, test_root,
+ make_CRL_stack(basic_crl, NULL),
+ X509_V_FLAG_CRL_CHECK), X509_V_OK)
+ && TEST_int_eq(verify(test_leaf, test_root,
+ make_CRL_stack(basic_crl, revoked_crl),
+ X509_V_FLAG_CRL_CHECK), X509_V_ERR_CERT_REVOKED);
+ X509_CRL_free(basic_crl);
+ X509_CRL_free(revoked_crl);
+ return r;
+}
+
+static int test_no_crl(void)
+{
+ return TEST_int_eq(verify(test_leaf, test_root, NULL,
+ X509_V_FLAG_CRL_CHECK),
+ X509_V_ERR_UNABLE_TO_GET_CRL);
+}
+
+static int test_bad_issuer_crl(void)
+{
+ X509_CRL *bad_issuer_crl = CRL_from_strings(kBadIssuerCRL);
+ int r;
+
+ r = TEST_ptr(bad_issuer_crl)
+ && TEST_int_eq(verify(test_leaf, test_root,
+ make_CRL_stack(bad_issuer_crl, NULL),
+ X509_V_FLAG_CRL_CHECK),
+ X509_V_ERR_UNABLE_TO_GET_CRL);
+ X509_CRL_free(bad_issuer_crl);
+ return r;
+}
+
+static int test_known_critical_crl(void)
+{
+ X509_CRL *known_critical_crl = CRL_from_strings(kKnownCriticalCRL);
+ int r;
+
+ r = TEST_ptr(known_critical_crl)
+ && TEST_int_eq(verify(test_leaf, test_root,
+ make_CRL_stack(known_critical_crl, NULL),
+ X509_V_FLAG_CRL_CHECK), X509_V_OK);
+ X509_CRL_free(known_critical_crl);
+ return r;
+}
+
+static int test_unknown_critical_crl(int n)
+{
+ X509_CRL *unknown_critical_crl = CRL_from_strings(unknown_critical_crls[n]);
+ int r;
+
+ r = TEST_ptr(unknown_critical_crl)
+ && TEST_int_eq(verify(test_leaf, test_root,
+ make_CRL_stack(unknown_critical_crl, NULL),
+ X509_V_FLAG_CRL_CHECK),
+ X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION);
+ X509_CRL_free(unknown_critical_crl);
+ return r;
+}
+
+static int test_reuse_crl(void)
+{
+ X509_CRL *reused_crl = CRL_from_strings(kBasicCRL);
+ char *p;
+ BIO *b = glue2bio(kRevokedCRL, &p);
+
+ reused_crl = PEM_read_bio_X509_CRL(b, &reused_crl, NULL, NULL);
+
+ OPENSSL_free(p);
+ BIO_free(b);
+ X509_CRL_free(reused_crl);
+ return 1;
+}
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(test_root = X509_from_strings(kCRLTestRoot))
+ || !TEST_ptr(test_leaf = X509_from_strings(kCRLTestLeaf)))
+ return 0;
+
+ ADD_TEST(test_no_crl);
+ ADD_TEST(test_basic_crl);
+ ADD_TEST(test_bad_issuer_crl);
+ ADD_TEST(test_known_critical_crl);
+ ADD_ALL_TESTS(test_unknown_critical_crl, OSSL_NELEM(unknown_critical_crls));
+ ADD_TEST(test_reuse_crl);
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+ X509_free(test_root);
+ X509_free(test_leaf);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ct/log_list.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ct/log_list.conf
new file mode 100644
index 000000000..4b68e5355
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ct/log_list.conf
@@ -0,0 +1,38 @@
+enabled_logs=test,pilot,aviator,rocketeer,digicert,certly,izempe,symantec,venafi
+
+[test]
+description = https://github.com/google/certificate-transparency/tree/99218b6445906a81f219d84e9c6d2683e13e4e58/test/testdata
+key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmXg8sUUzwBYaWrRb+V0IopzQ6o3UyEJ04r5ZrRXGdpYM8K+hB0pXrGRLI0eeWz+3skXrS0IO83AhA3GpRL6s6w==
+
+[pilot]
+description = Google Pilot Log
+key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEfahLEimAoz2t01p3uMziiLOl/fHTDM0YDOhBRuiBARsV4UvxG2LdNgoIGLrtCzWE0J5APC2em4JlvR8EEEFMoA==
+
+[aviator]
+description = Google Aviator log
+key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1/TMabLkDpCjiupacAlP7xNi0I1JYP8bQFAHDG1xhtolSY1l4QgNRzRrvSe8liE+NPWHdjGxfx3JhTsN9x8/6Q==
+
+[rocketeer]
+description = Google Rocketeer log
+key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIFsYyDzBi7MxCAC/oJBXK7dHjG+1aLCOkHjpoHPqTyghLpzA9BYbqvnV16mAw04vUjyYASVGJCUoI3ctBcJAeg==
+
+[digicert]
+description = DigiCert Log Server
+key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAkbFvhu7gkAW6MHSrBlpE1n4+HCFRkC5OLAjgqhkTH+/uzSfSl8ois8ZxAD2NgaTZe1M9akhYlrYkes4JECs6A==
+
+[certly]
+description = Certly.IO log
+key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAECyPLhWKYYUgEc+tUXfPQB4wtGS2MNvXrjwFCCnyYJifBtd2Sk7Cu+Js9DNhMTh35FftHaHu6ZrclnNBKwmbbSA==
+
+[izempe]
+description = Izempe log
+key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEJ2Q5DC3cUBj4IQCiDu0s6j51up+TZAkAEcQRF6tczw90rLWXkJMAW7jr9yc92bIKgV8vDXU4lDeZHvYHduDuvg==
+
+[symantec]
+description = Symantec log
+key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEluqsHEYMG1XcDfy1lCdGV0JwOmkY4r87xNuroPS2bMBTP01CEDPwWJePa75y9CrsHEKqAy8afig1dpkIPSEUhg==
+
+[venafi]
+description = Venafi log
+key = MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAolpIHxdSlTXLo1s6H1OCdpSj/4DyHDc8wLG9wVmLqy1lk9fz4ATVmm+/1iN2Nk8jmctUKK2MFUtlWXZBSpym97M7frGlSaQXUWyA3CqQUEuIJOmlEjKTBEiQAvpfDjCHjlV2Be4qTM6jamkJbiWtgnYPhJL6ONaGTiSPm7Byy57iaz/hbckldSOIoRhYBiMzeNoA0DiRZ9KmfSeXZ1rB8y8X5urSW+iBzf2SaOfzBvDpcoTuAaWx2DPazoOl28fP1hZ+kHUYvxbcMjttjauCFx+JII0dmuZNIwjfeG/GBb9frpSX219k1O4Wi6OEbHEr8at/XQ0y7gTikOxBn/s5wQIDAQAB
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ct/tls1.sct b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ct/tls1.sct
new file mode 100644
index 000000000..59362dcee
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ct/tls1.sct
@@ -0,0 +1,12 @@
+Signed Certificate Timestamp:
+ Version : v1 (0x0)
+ Log ID : DF:1C:2E:C1:15:00:94:52:47:A9:61:68:32:5D:DC:5C:
+ 79:59:E8:F7:C6:D3:88:FC:00:2E:0B:BD:3F:74:D7:64
+ Timestamp : Apr 5 17:04:16.275 2013 GMT
+ Extensions: none
+ Signature : ecdsa-with-SHA256
+ 30:45:02:20:48:2F:67:51:AF:35:DB:A6:54:36:BE:1F:
+ D6:64:0F:3D:BF:9A:41:42:94:95:92:45:30:28:8F:A3:
+ E5:E2:3E:06:02:21:00:E4:ED:C0:DB:3A:C5:72:B1:E2:
+ F5:E8:AB:6A:68:06:53:98:7D:CF:41:02:7D:FE:FF:A1:
+ 05:51:9D:89:ED:BF:08 \ No newline at end of file
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ct_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ct_test.c
new file mode 100644
index 000000000..78d11ca98
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ct_test.c
@@ -0,0 +1,535 @@
+/*
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <openssl/ct.h>
+#include <openssl/err.h>
+#include <openssl/pem.h>
+#include <openssl/x509.h>
+#include <openssl/x509v3.h>
+#include "testutil.h"
+#include <openssl/crypto.h>
+
+#ifndef OPENSSL_NO_CT
+/* Used when declaring buffers to read text files into */
+# define CT_TEST_MAX_FILE_SIZE 8096
+
+static char *certs_dir = NULL;
+static char *ct_dir = NULL;
+
+typedef struct ct_test_fixture {
+ const char *test_case_name;
+ /* The current time in milliseconds */
+ uint64_t epoch_time_in_ms;
+ /* The CT log store to use during tests */
+ CTLOG_STORE* ctlog_store;
+ /* Set the following to test handling of SCTs in X509 certificates */
+ const char *certs_dir;
+ char *certificate_file;
+ char *issuer_file;
+ /* Expected number of SCTs */
+ int expected_sct_count;
+ /* Expected number of valid SCTS */
+ int expected_valid_sct_count;
+ /* Set the following to test handling of SCTs in TLS format */
+ const unsigned char *tls_sct_list;
+ size_t tls_sct_list_len;
+ STACK_OF(SCT) *sct_list;
+ /*
+ * A file to load the expected SCT text from.
+ * This text will be compared to the actual text output during the test.
+ * A maximum of |CT_TEST_MAX_FILE_SIZE| bytes will be read of this file.
+ */
+ const char *sct_dir;
+ const char *sct_text_file;
+ /* Whether to test the validity of the SCT(s) */
+ int test_validity;
+} CT_TEST_FIXTURE;
+
+static CT_TEST_FIXTURE *set_up(const char *const test_case_name)
+{
+ CT_TEST_FIXTURE *fixture = NULL;
+
+ if (!TEST_ptr(fixture = OPENSSL_zalloc(sizeof(*fixture))))
+ goto end;
+ fixture->test_case_name = test_case_name;
+ fixture->epoch_time_in_ms = 1473269626000ULL; /* Sep 7 17:33:46 2016 GMT */
+ if (!TEST_ptr(fixture->ctlog_store = CTLOG_STORE_new())
+ || !TEST_int_eq(
+ CTLOG_STORE_load_default_file(fixture->ctlog_store), 1))
+ goto end;
+ return fixture;
+
+end:
+ if (fixture != NULL)
+ CTLOG_STORE_free(fixture->ctlog_store);
+ OPENSSL_free(fixture);
+ TEST_error("Failed to setup");
+ return NULL;
+}
+
+static void tear_down(CT_TEST_FIXTURE *fixture)
+{
+ if (fixture != NULL) {
+ CTLOG_STORE_free(fixture->ctlog_store);
+ SCT_LIST_free(fixture->sct_list);
+ }
+ OPENSSL_free(fixture);
+}
+
+static X509 *load_pem_cert(const char *dir, const char *file)
+{
+ X509 *cert = NULL;
+ char *file_path = test_mk_file_path(dir, file);
+
+ if (file_path != NULL) {
+ BIO *cert_io = BIO_new_file(file_path, "r");
+
+ if (cert_io != NULL)
+ cert = PEM_read_bio_X509(cert_io, NULL, NULL, NULL);
+ BIO_free(cert_io);
+ }
+
+ OPENSSL_free(file_path);
+ return cert;
+}
+
+static int read_text_file(const char *dir, const char *file,
+ char *buffer, int buffer_length)
+{
+ int len = -1;
+ char *file_path = test_mk_file_path(dir, file);
+
+ if (file_path != NULL) {
+ BIO *file_io = BIO_new_file(file_path, "r");
+
+ if (file_io != NULL)
+ len = BIO_read(file_io, buffer, buffer_length);
+ BIO_free(file_io);
+ }
+
+ OPENSSL_free(file_path);
+ return len;
+}
+
+static int compare_sct_list_printout(STACK_OF(SCT) *sct,
+ const char *expected_output)
+{
+ BIO *text_buffer = NULL;
+ char *actual_output = NULL;
+ int result = 0;
+
+ if (!TEST_ptr(text_buffer = BIO_new(BIO_s_mem())))
+ goto end;
+
+ SCT_LIST_print(sct, text_buffer, 0, "\n", NULL);
+
+ /* Append \0 because we're about to use the buffer contents as a string. */
+ if (!TEST_true(BIO_write(text_buffer, "\0", 1)))
+ goto end;
+
+ BIO_get_mem_data(text_buffer, &actual_output);
+ if (!TEST_str_eq(actual_output, expected_output))
+ goto end;
+ result = 1;
+
+end:
+ BIO_free(text_buffer);
+ return result;
+}
+
+static int compare_extension_printout(X509_EXTENSION *extension,
+ const char *expected_output)
+{
+ BIO *text_buffer = NULL;
+ char *actual_output = NULL;
+ int result = 0;
+
+ if (!TEST_ptr(text_buffer = BIO_new(BIO_s_mem()))
+ || !TEST_true(X509V3_EXT_print(text_buffer, extension,
+ X509V3_EXT_DEFAULT, 0)))
+ goto end;
+
+ /* Append \0 because we're about to use the buffer contents as a string. */
+ if (!TEST_true(BIO_write(text_buffer, "\0", 1)))
+ goto end;
+
+ BIO_get_mem_data(text_buffer, &actual_output);
+ if (!TEST_str_eq(actual_output, expected_output))
+ goto end;
+
+ result = 1;
+
+end:
+ BIO_free(text_buffer);
+ return result;
+}
+
+static int assert_validity(CT_TEST_FIXTURE *fixture, STACK_OF(SCT) *scts,
+ CT_POLICY_EVAL_CTX *policy_ctx)
+{
+ int invalid_sct_count = 0;
+ int valid_sct_count = 0;
+ int i;
+
+ if (!TEST_int_ge(SCT_LIST_validate(scts, policy_ctx), 0))
+ return 0;
+
+ for (i = 0; i < sk_SCT_num(scts); ++i) {
+ SCT *sct_i = sk_SCT_value(scts, i);
+
+ switch (SCT_get_validation_status(sct_i)) {
+ case SCT_VALIDATION_STATUS_VALID:
+ ++valid_sct_count;
+ break;
+ case SCT_VALIDATION_STATUS_INVALID:
+ ++invalid_sct_count;
+ break;
+ case SCT_VALIDATION_STATUS_NOT_SET:
+ case SCT_VALIDATION_STATUS_UNKNOWN_LOG:
+ case SCT_VALIDATION_STATUS_UNVERIFIED:
+ case SCT_VALIDATION_STATUS_UNKNOWN_VERSION:
+ /* Ignore other validation statuses. */
+ break;
+ }
+ }
+
+ if (!TEST_int_eq(valid_sct_count, fixture->expected_valid_sct_count)) {
+ int unverified_sct_count = sk_SCT_num(scts) -
+ invalid_sct_count - valid_sct_count;
+
+ TEST_info("%d SCTs failed, %d SCTs unverified",
+ invalid_sct_count, unverified_sct_count);
+ return 0;
+ }
+
+ return 1;
+}
+
+static int execute_cert_test(CT_TEST_FIXTURE *fixture)
+{
+ int success = 0;
+ X509 *cert = NULL, *issuer = NULL;
+ STACK_OF(SCT) *scts = NULL;
+ SCT *sct = NULL;
+ char expected_sct_text[CT_TEST_MAX_FILE_SIZE];
+ int sct_text_len = 0;
+ unsigned char *tls_sct_list = NULL;
+ size_t tls_sct_list_len = 0;
+ CT_POLICY_EVAL_CTX *ct_policy_ctx = CT_POLICY_EVAL_CTX_new();
+
+ if (fixture->sct_text_file != NULL) {
+ sct_text_len = read_text_file(fixture->sct_dir, fixture->sct_text_file,
+ expected_sct_text,
+ CT_TEST_MAX_FILE_SIZE - 1);
+
+ if (!TEST_int_ge(sct_text_len, 0))
+ goto end;
+ expected_sct_text[sct_text_len] = '\0';
+ }
+
+ CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(
+ ct_policy_ctx, fixture->ctlog_store);
+
+ CT_POLICY_EVAL_CTX_set_time(ct_policy_ctx, fixture->epoch_time_in_ms);
+
+ if (fixture->certificate_file != NULL) {
+ int sct_extension_index;
+ int i;
+ X509_EXTENSION *sct_extension = NULL;
+
+ if (!TEST_ptr(cert = load_pem_cert(fixture->certs_dir,
+ fixture->certificate_file)))
+ goto end;
+
+ CT_POLICY_EVAL_CTX_set1_cert(ct_policy_ctx, cert);
+
+ if (fixture->issuer_file != NULL) {
+ if (!TEST_ptr(issuer = load_pem_cert(fixture->certs_dir,
+ fixture->issuer_file)))
+ goto end;
+ CT_POLICY_EVAL_CTX_set1_issuer(ct_policy_ctx, issuer);
+ }
+
+ sct_extension_index =
+ X509_get_ext_by_NID(cert, NID_ct_precert_scts, -1);
+ sct_extension = X509_get_ext(cert, sct_extension_index);
+ if (fixture->expected_sct_count > 0) {
+ if (!TEST_ptr(sct_extension))
+ goto end;
+
+ if (fixture->sct_text_file
+ && !compare_extension_printout(sct_extension,
+ expected_sct_text))
+ goto end;
+
+ scts = X509V3_EXT_d2i(sct_extension);
+ for (i = 0; i < sk_SCT_num(scts); ++i) {
+ SCT *sct_i = sk_SCT_value(scts, i);
+
+ if (!TEST_int_eq(SCT_get_source(sct_i),
+ SCT_SOURCE_X509V3_EXTENSION)) {
+ goto end;
+ }
+ }
+
+ if (fixture->test_validity) {
+ if (!assert_validity(fixture, scts, ct_policy_ctx))
+ goto end;
+ }
+ } else if (!TEST_ptr_null(sct_extension)) {
+ goto end;
+ }
+ }
+
+ if (fixture->tls_sct_list != NULL) {
+ const unsigned char *p = fixture->tls_sct_list;
+
+ if (!TEST_ptr(o2i_SCT_LIST(&scts, &p, fixture->tls_sct_list_len)))
+ goto end;
+
+ if (fixture->test_validity && cert != NULL) {
+ if (!assert_validity(fixture, scts, ct_policy_ctx))
+ goto end;
+ }
+
+ if (fixture->sct_text_file
+ && !compare_sct_list_printout(scts, expected_sct_text)) {
+ goto end;
+ }
+
+ tls_sct_list_len = i2o_SCT_LIST(scts, &tls_sct_list);
+ if (!TEST_mem_eq(fixture->tls_sct_list, fixture->tls_sct_list_len,
+ tls_sct_list, tls_sct_list_len))
+ goto end;
+ }
+ success = 1;
+
+end:
+ X509_free(cert);
+ X509_free(issuer);
+ SCT_LIST_free(scts);
+ SCT_free(sct);
+ CT_POLICY_EVAL_CTX_free(ct_policy_ctx);
+ OPENSSL_free(tls_sct_list);
+ return success;
+}
+
+# define SETUP_CT_TEST_FIXTURE() SETUP_TEST_FIXTURE(CT_TEST_FIXTURE, set_up)
+# define EXECUTE_CT_TEST() EXECUTE_TEST(execute_cert_test, tear_down)
+
+static int test_no_scts_in_certificate(void)
+{
+ SETUP_CT_TEST_FIXTURE();
+ if (fixture == NULL)
+ return 0;
+ fixture->certs_dir = certs_dir;
+ fixture->certificate_file = "leaf.pem";
+ fixture->issuer_file = "subinterCA.pem";
+ fixture->expected_sct_count = 0;
+ EXECUTE_CT_TEST();
+ return result;
+}
+
+static int test_one_sct_in_certificate(void)
+{
+ SETUP_CT_TEST_FIXTURE();
+ if (fixture == NULL)
+ return 0;
+ fixture->certs_dir = certs_dir;
+ fixture->certificate_file = "embeddedSCTs1.pem";
+ fixture->issuer_file = "embeddedSCTs1_issuer.pem";
+ fixture->expected_sct_count = 1;
+ fixture->sct_dir = certs_dir;
+ fixture->sct_text_file = "embeddedSCTs1.sct";
+ EXECUTE_CT_TEST();
+ return result;
+}
+
+static int test_multiple_scts_in_certificate(void)
+{
+ SETUP_CT_TEST_FIXTURE();
+ if (fixture == NULL)
+ return 0;
+ fixture->certs_dir = certs_dir;
+ fixture->certificate_file = "embeddedSCTs3.pem";
+ fixture->issuer_file = "embeddedSCTs3_issuer.pem";
+ fixture->expected_sct_count = 3;
+ fixture->sct_dir = certs_dir;
+ fixture->sct_text_file = "embeddedSCTs3.sct";
+ EXECUTE_CT_TEST();
+ return result;
+}
+
+static int test_verify_one_sct(void)
+{
+ SETUP_CT_TEST_FIXTURE();
+ if (fixture == NULL)
+ return 0;
+ fixture->certs_dir = certs_dir;
+ fixture->certificate_file = "embeddedSCTs1.pem";
+ fixture->issuer_file = "embeddedSCTs1_issuer.pem";
+ fixture->expected_sct_count = fixture->expected_valid_sct_count = 1;
+ fixture->test_validity = 1;
+ EXECUTE_CT_TEST();
+ return result;
+}
+
+static int test_verify_multiple_scts(void)
+{
+ SETUP_CT_TEST_FIXTURE();
+ if (fixture == NULL)
+ return 0;
+ fixture->certs_dir = certs_dir;
+ fixture->certificate_file = "embeddedSCTs3.pem";
+ fixture->issuer_file = "embeddedSCTs3_issuer.pem";
+ fixture->expected_sct_count = fixture->expected_valid_sct_count = 3;
+ fixture->test_validity = 1;
+ EXECUTE_CT_TEST();
+ return result;
+}
+
+static int test_verify_fails_for_future_sct(void)
+{
+ SETUP_CT_TEST_FIXTURE();
+ if (fixture == NULL)
+ return 0;
+ fixture->epoch_time_in_ms = 1365094800000ULL; /* Apr 4 17:00:00 2013 GMT */
+ fixture->certs_dir = certs_dir;
+ fixture->certificate_file = "embeddedSCTs1.pem";
+ fixture->issuer_file = "embeddedSCTs1_issuer.pem";
+ fixture->expected_sct_count = 1;
+ fixture->expected_valid_sct_count = 0;
+ fixture->test_validity = 1;
+ EXECUTE_CT_TEST();
+ return result;
+}
+
+static int test_decode_tls_sct(void)
+{
+ const unsigned char tls_sct_list[] = "\x00\x78" /* length of list */
+ "\x00\x76"
+ "\x00" /* version */
+ /* log ID */
+ "\xDF\x1C\x2E\xC1\x15\x00\x94\x52\x47\xA9\x61\x68\x32\x5D\xDC\x5C\x79"
+ "\x59\xE8\xF7\xC6\xD3\x88\xFC\x00\x2E\x0B\xBD\x3F\x74\xD7\x64"
+ "\x00\x00\x01\x3D\xDB\x27\xDF\x93" /* timestamp */
+ "\x00\x00" /* extensions length */
+ "" /* extensions */
+ "\x04\x03" /* hash and signature algorithms */
+ "\x00\x47" /* signature length */
+ /* signature */
+ "\x30\x45\x02\x20\x48\x2F\x67\x51\xAF\x35\xDB\xA6\x54\x36\xBE\x1F\xD6"
+ "\x64\x0F\x3D\xBF\x9A\x41\x42\x94\x95\x92\x45\x30\x28\x8F\xA3\xE5\xE2"
+ "\x3E\x06\x02\x21\x00\xE4\xED\xC0\xDB\x3A\xC5\x72\xB1\xE2\xF5\xE8\xAB"
+ "\x6A\x68\x06\x53\x98\x7D\xCF\x41\x02\x7D\xFE\xFF\xA1\x05\x51\x9D\x89"
+ "\xED\xBF\x08";
+
+ SETUP_CT_TEST_FIXTURE();
+ if (fixture == NULL)
+ return 0;
+ fixture->tls_sct_list = tls_sct_list;
+ fixture->tls_sct_list_len = 0x7a;
+ fixture->sct_dir = ct_dir;
+ fixture->sct_text_file = "tls1.sct";
+ EXECUTE_CT_TEST();
+ return result;
+}
+
+static int test_encode_tls_sct(void)
+{
+ const char log_id[] = "3xwuwRUAlFJHqWFoMl3cXHlZ6PfG04j8AC4LvT9012Q=";
+ const uint64_t timestamp = 1;
+ const char extensions[] = "";
+ const char signature[] = "BAMARzBAMiBIL2dRrzXbplQ2vh/WZA89v5pBQpSVkkUwKI+j5"
+ "eI+BgIhAOTtwNs6xXKx4vXoq2poBlOYfc9BAn3+/6EFUZ2J7b8I";
+ SCT *sct = NULL;
+
+ SETUP_CT_TEST_FIXTURE();
+ if (fixture == NULL)
+ return 0;
+
+ fixture->sct_list = sk_SCT_new_null();
+ if (!TEST_ptr(sct = SCT_new_from_base64(SCT_VERSION_V1, log_id,
+ CT_LOG_ENTRY_TYPE_X509, timestamp,
+ extensions, signature)))
+
+ return 0;
+
+ sk_SCT_push(fixture->sct_list, sct);
+ fixture->sct_dir = ct_dir;
+ fixture->sct_text_file = "tls1.sct";
+ EXECUTE_CT_TEST();
+ return result;
+}
+
+/*
+ * Tests that the CT_POLICY_EVAL_CTX default time is approximately now.
+ * Allow +-10 minutes, as it may compensate for clock skew.
+ */
+static int test_default_ct_policy_eval_ctx_time_is_now(void)
+{
+ int success = 0;
+ CT_POLICY_EVAL_CTX *ct_policy_ctx = CT_POLICY_EVAL_CTX_new();
+ const time_t default_time =
+ (time_t)(CT_POLICY_EVAL_CTX_get_time(ct_policy_ctx) / 1000);
+ const time_t time_tolerance = 600; /* 10 minutes */
+
+ if (!TEST_time_t_le(abs((int)difftime(time(NULL), default_time)),
+ time_tolerance))
+ goto end;
+
+ success = 1;
+end:
+ CT_POLICY_EVAL_CTX_free(ct_policy_ctx);
+ return success;
+}
+
+static int test_ctlog_from_base64(void)
+{
+ CTLOG *ctlogp = NULL;
+ const char notb64[] = "\01\02\03\04";
+ const char pad[] = "====";
+ const char name[] = "name";
+
+ /* We expect these to both fail! */
+ if (!TEST_true(!CTLOG_new_from_base64(&ctlogp, notb64, name))
+ || !TEST_true(!CTLOG_new_from_base64(&ctlogp, pad, name)))
+ return 0;
+ return 1;
+}
+#endif
+
+int setup_tests(void)
+{
+#ifndef OPENSSL_NO_CT
+ if ((ct_dir = getenv("CT_DIR")) == NULL)
+ ct_dir = "ct";
+ if ((certs_dir = getenv("CERTS_DIR")) == NULL)
+ certs_dir = "certs";
+
+ ADD_TEST(test_no_scts_in_certificate);
+ ADD_TEST(test_one_sct_in_certificate);
+ ADD_TEST(test_multiple_scts_in_certificate);
+ ADD_TEST(test_verify_one_sct);
+ ADD_TEST(test_verify_multiple_scts);
+ ADD_TEST(test_verify_fails_for_future_sct);
+ ADD_TEST(test_decode_tls_sct);
+ ADD_TEST(test_encode_tls_sct);
+ ADD_TEST(test_default_ct_policy_eval_ctx_time_is_now);
+ ADD_TEST(test_ctlog_from_base64);
+#else
+ printf("No CT support\n");
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ctype_internal_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ctype_internal_test.c
new file mode 100644
index 000000000..1bb61ab1f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ctype_internal_test.c
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "testutil.h"
+#include "crypto/ctype.h"
+#include "internal/nelem.h"
+#include <ctype.h>
+#include <stdio.h>
+
+/*
+ * Even though the VMS C RTL claims to be C99 compatible, it's not entirely
+ * so far (C RTL version 8.4). Same applies to OSF. For the sake of these
+ * tests, we therefore define our own.
+ */
+#if (defined(__VMS) && __CRTL_VER <= 80400000) || defined(__osf__)
+static int isblank(int c)
+{
+ return c == ' ' || c == '\t';
+}
+#endif
+
+static int test_ctype_chars(int n)
+{
+ if (!TEST_int_eq(isascii((unsigned char)n) != 0, ossl_isascii(n) != 0))
+ return 0;
+
+ if (!ossl_isascii(n))
+ return 1;
+
+ return TEST_int_eq(isalpha(n) != 0, ossl_isalpha(n) != 0)
+ && TEST_int_eq(isalnum(n) != 0, ossl_isalnum(n) != 0)
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+ && TEST_int_eq(isblank(n) != 0, ossl_isblank(n) != 0)
+#endif
+ && TEST_int_eq(iscntrl(n) != 0, ossl_iscntrl(n) != 0)
+ && TEST_int_eq(isdigit(n) != 0, ossl_isdigit(n) != 0)
+ && TEST_int_eq(isgraph(n) != 0, ossl_isgraph(n) != 0)
+ && TEST_int_eq(islower(n) != 0, ossl_islower(n) != 0)
+ && TEST_int_eq(isprint(n) != 0, ossl_isprint(n) != 0)
+ && TEST_int_eq(ispunct(n) != 0, ossl_ispunct(n) != 0)
+ && TEST_int_eq(isspace(n) != 0, ossl_isspace(n) != 0)
+ && TEST_int_eq(isupper(n) != 0, ossl_isupper(n) != 0)
+ && TEST_int_eq(isxdigit(n) != 0, ossl_isxdigit(n) != 0);
+}
+
+static struct {
+ int u;
+ int l;
+} case_change[] = {
+ { 'A', 'a' },
+ { 'X', 'x' },
+ { 'Z', 'z' },
+ { '0', '0' },
+ { '%', '%' },
+ { '~', '~' },
+ { 0, 0 },
+ { EOF, EOF }
+};
+
+static int test_ctype_toupper(int n)
+{
+ return TEST_int_eq(ossl_toupper(case_change[n].l), case_change[n].u)
+ && TEST_int_eq(ossl_toupper(case_change[n].u), case_change[n].u);
+}
+
+static int test_ctype_tolower(int n)
+{
+ return TEST_int_eq(ossl_tolower(case_change[n].u), case_change[n].l)
+ && TEST_int_eq(ossl_tolower(case_change[n].l), case_change[n].l);
+}
+
+static int test_ctype_eof(void)
+{
+ return test_ctype_chars(EOF);
+}
+
+int setup_tests(void)
+{
+ ADD_ALL_TESTS(test_ctype_chars, 256);
+ ADD_ALL_TESTS(test_ctype_toupper, OSSL_NELEM(case_change));
+ ADD_ALL_TESTS(test_ctype_tolower, OSSL_NELEM(case_change));
+ ADD_TEST(test_ctype_eof);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/curve448_internal_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/curve448_internal_test.c
new file mode 100644
index 000000000..4b65ee3fa
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/curve448_internal_test.c
@@ -0,0 +1,713 @@
+/*
+ * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+#include <stdio.h>
+#include <string.h>
+#include <openssl/e_os2.h>
+#include <openssl/evp.h>
+
+#ifdef __VMS
+# pragma names save
+# pragma names as_is,shortened
+#endif
+
+#include "curve448_local.h"
+
+#ifdef __VMS
+# pragma names restore
+#endif
+
+#include "testutil.h"
+
+static unsigned int max = 1000;
+static unsigned int verbose = 0;
+
+/* Test vectors from RFC7748 for X448 */
+
+static const uint8_t in_scalar1[56] = {
+ 0x3d, 0x26, 0x2f, 0xdd, 0xf9, 0xec, 0x8e, 0x88, 0x49, 0x52, 0x66, 0xfe,
+ 0xa1, 0x9a, 0x34, 0xd2, 0x88, 0x82, 0xac, 0xef, 0x04, 0x51, 0x04, 0xd0,
+ 0xd1, 0xaa, 0xe1, 0x21, 0x70, 0x0a, 0x77, 0x9c, 0x98, 0x4c, 0x24, 0xf8,
+ 0xcd, 0xd7, 0x8f, 0xbf, 0xf4, 0x49, 0x43, 0xeb, 0xa3, 0x68, 0xf5, 0x4b,
+ 0x29, 0x25, 0x9a, 0x4f, 0x1c, 0x60, 0x0a, 0xd3
+};
+
+static const uint8_t in_u1[56] = {
+ 0x06, 0xfc, 0xe6, 0x40, 0xfa, 0x34, 0x87, 0xbf, 0xda, 0x5f, 0x6c, 0xf2,
+ 0xd5, 0x26, 0x3f, 0x8a, 0xad, 0x88, 0x33, 0x4c, 0xbd, 0x07, 0x43, 0x7f,
+ 0x02, 0x0f, 0x08, 0xf9, 0x81, 0x4d, 0xc0, 0x31, 0xdd, 0xbd, 0xc3, 0x8c,
+ 0x19, 0xc6, 0xda, 0x25, 0x83, 0xfa, 0x54, 0x29, 0xdb, 0x94, 0xad, 0xa1,
+ 0x8a, 0xa7, 0xa7, 0xfb, 0x4e, 0xf8, 0xa0, 0x86
+};
+
+static const uint8_t out_u1[56] = {
+ 0xce, 0x3e, 0x4f, 0xf9, 0x5a, 0x60, 0xdc, 0x66, 0x97, 0xda, 0x1d, 0xb1,
+ 0xd8, 0x5e, 0x6a, 0xfb, 0xdf, 0x79, 0xb5, 0x0a, 0x24, 0x12, 0xd7, 0x54,
+ 0x6d, 0x5f, 0x23, 0x9f, 0xe1, 0x4f, 0xba, 0xad, 0xeb, 0x44, 0x5f, 0xc6,
+ 0x6a, 0x01, 0xb0, 0x77, 0x9d, 0x98, 0x22, 0x39, 0x61, 0x11, 0x1e, 0x21,
+ 0x76, 0x62, 0x82, 0xf7, 0x3d, 0xd9, 0x6b, 0x6f
+};
+
+static const uint8_t in_scalar2[56] = {
+ 0x20, 0x3d, 0x49, 0x44, 0x28, 0xb8, 0x39, 0x93, 0x52, 0x66, 0x5d, 0xdc,
+ 0xa4, 0x2f, 0x9d, 0xe8, 0xfe, 0xf6, 0x00, 0x90, 0x8e, 0x0d, 0x46, 0x1c,
+ 0xb0, 0x21, 0xf8, 0xc5, 0x38, 0x34, 0x5d, 0xd7, 0x7c, 0x3e, 0x48, 0x06,
+ 0xe2, 0x5f, 0x46, 0xd3, 0x31, 0x5c, 0x44, 0xe0, 0xa5, 0xb4, 0x37, 0x12,
+ 0x82, 0xdd, 0x2c, 0x8d, 0x5b, 0xe3, 0x09, 0x5f
+};
+
+static const uint8_t in_u2[56] = {
+ 0x0f, 0xbc, 0xc2, 0xf9, 0x93, 0xcd, 0x56, 0xd3, 0x30, 0x5b, 0x0b, 0x7d,
+ 0x9e, 0x55, 0xd4, 0xc1, 0xa8, 0xfb, 0x5d, 0xbb, 0x52, 0xf8, 0xe9, 0xa1,
+ 0xe9, 0xb6, 0x20, 0x1b, 0x16, 0x5d, 0x01, 0x58, 0x94, 0xe5, 0x6c, 0x4d,
+ 0x35, 0x70, 0xbe, 0xe5, 0x2f, 0xe2, 0x05, 0xe2, 0x8a, 0x78, 0xb9, 0x1c,
+ 0xdf, 0xbd, 0xe7, 0x1c, 0xe8, 0xd1, 0x57, 0xdb
+};
+
+static const uint8_t out_u2[56] = {
+ 0x88, 0x4a, 0x02, 0x57, 0x62, 0x39, 0xff, 0x7a, 0x2f, 0x2f, 0x63, 0xb2,
+ 0xdb, 0x6a, 0x9f, 0xf3, 0x70, 0x47, 0xac, 0x13, 0x56, 0x8e, 0x1e, 0x30,
+ 0xfe, 0x63, 0xc4, 0xa7, 0xad, 0x1b, 0x3e, 0xe3, 0xa5, 0x70, 0x0d, 0xf3,
+ 0x43, 0x21, 0xd6, 0x20, 0x77, 0xe6, 0x36, 0x33, 0xc5, 0x75, 0xc1, 0xc9,
+ 0x54, 0x51, 0x4e, 0x99, 0xda, 0x7c, 0x17, 0x9d
+};
+
+static const uint8_t in_u3[56] = {
+ 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const uint8_t out_u3[3][56] = {
+ {
+ 0x3f, 0x48, 0x2c, 0x8a, 0x9f, 0x19, 0xb0, 0x1e, 0x6c, 0x46, 0xee, 0x97,
+ 0x11, 0xd9, 0xdc, 0x14, 0xfd, 0x4b, 0xf6, 0x7a, 0xf3, 0x07, 0x65, 0xc2,
+ 0xae, 0x2b, 0x84, 0x6a, 0x4d, 0x23, 0xa8, 0xcd, 0x0d, 0xb8, 0x97, 0x08,
+ 0x62, 0x39, 0x49, 0x2c, 0xaf, 0x35, 0x0b, 0x51, 0xf8, 0x33, 0x86, 0x8b,
+ 0x9b, 0xc2, 0xb3, 0xbc, 0xa9, 0xcf, 0x41, 0x13
+ }, {
+ 0xaa, 0x3b, 0x47, 0x49, 0xd5, 0x5b, 0x9d, 0xaf, 0x1e, 0x5b, 0x00, 0x28,
+ 0x88, 0x26, 0xc4, 0x67, 0x27, 0x4c, 0xe3, 0xeb, 0xbd, 0xd5, 0xc1, 0x7b,
+ 0x97, 0x5e, 0x09, 0xd4, 0xaf, 0x6c, 0x67, 0xcf, 0x10, 0xd0, 0x87, 0x20,
+ 0x2d, 0xb8, 0x82, 0x86, 0xe2, 0xb7, 0x9f, 0xce, 0xea, 0x3e, 0xc3, 0x53,
+ 0xef, 0x54, 0xfa, 0xa2, 0x6e, 0x21, 0x9f, 0x38
+ }, {
+ 0x07, 0x7f, 0x45, 0x36, 0x81, 0xca, 0xca, 0x36, 0x93, 0x19, 0x84, 0x20,
+ 0xbb, 0xe5, 0x15, 0xca, 0xe0, 0x00, 0x24, 0x72, 0x51, 0x9b, 0x3e, 0x67,
+ 0x66, 0x1a, 0x7e, 0x89, 0xca, 0xb9, 0x46, 0x95, 0xc8, 0xf4, 0xbc, 0xd6,
+ 0x6e, 0x61, 0xb9, 0xb9, 0xc9, 0x46, 0xda, 0x8d, 0x52, 0x4d, 0xe3, 0xd6,
+ 0x9b, 0xd9, 0xd9, 0xd6, 0x6b, 0x99, 0x7e, 0x37
+ }
+};
+
+/* Test vectors from RFC8032 for Ed448 */
+
+/* Pure Ed448 */
+
+static const uint8_t privkey1[57] = {
+ 0x6c, 0x82, 0xa5, 0x62, 0xcb, 0x80, 0x8d, 0x10, 0xd6, 0x32, 0xbe, 0x89,
+ 0xc8, 0x51, 0x3e, 0xbf, 0x6c, 0x92, 0x9f, 0x34, 0xdd, 0xfa, 0x8c, 0x9f,
+ 0x63, 0xc9, 0x96, 0x0e, 0xf6, 0xe3, 0x48, 0xa3, 0x52, 0x8c, 0x8a, 0x3f,
+ 0xcc, 0x2f, 0x04, 0x4e, 0x39, 0xa3, 0xfc, 0x5b, 0x94, 0x49, 0x2f, 0x8f,
+ 0x03, 0x2e, 0x75, 0x49, 0xa2, 0x00, 0x98, 0xf9, 0x5b
+};
+
+static const uint8_t pubkey1[57] = {
+ 0x5f, 0xd7, 0x44, 0x9b, 0x59, 0xb4, 0x61, 0xfd, 0x2c, 0xe7, 0x87, 0xec,
+ 0x61, 0x6a, 0xd4, 0x6a, 0x1d, 0xa1, 0x34, 0x24, 0x85, 0xa7, 0x0e, 0x1f,
+ 0x8a, 0x0e, 0xa7, 0x5d, 0x80, 0xe9, 0x67, 0x78, 0xed, 0xf1, 0x24, 0x76,
+ 0x9b, 0x46, 0xc7, 0x06, 0x1b, 0xd6, 0x78, 0x3d, 0xf1, 0xe5, 0x0f, 0x6c,
+ 0xd1, 0xfa, 0x1a, 0xbe, 0xaf, 0xe8, 0x25, 0x61, 0x80
+};
+
+static const uint8_t sig1[114] = {
+ 0x53, 0x3a, 0x37, 0xf6, 0xbb, 0xe4, 0x57, 0x25, 0x1f, 0x02, 0x3c, 0x0d,
+ 0x88, 0xf9, 0x76, 0xae, 0x2d, 0xfb, 0x50, 0x4a, 0x84, 0x3e, 0x34, 0xd2,
+ 0x07, 0x4f, 0xd8, 0x23, 0xd4, 0x1a, 0x59, 0x1f, 0x2b, 0x23, 0x3f, 0x03,
+ 0x4f, 0x62, 0x82, 0x81, 0xf2, 0xfd, 0x7a, 0x22, 0xdd, 0xd4, 0x7d, 0x78,
+ 0x28, 0xc5, 0x9b, 0xd0, 0xa2, 0x1b, 0xfd, 0x39, 0x80, 0xff, 0x0d, 0x20,
+ 0x28, 0xd4, 0xb1, 0x8a, 0x9d, 0xf6, 0x3e, 0x00, 0x6c, 0x5d, 0x1c, 0x2d,
+ 0x34, 0x5b, 0x92, 0x5d, 0x8d, 0xc0, 0x0b, 0x41, 0x04, 0x85, 0x2d, 0xb9,
+ 0x9a, 0xc5, 0xc7, 0xcd, 0xda, 0x85, 0x30, 0xa1, 0x13, 0xa0, 0xf4, 0xdb,
+ 0xb6, 0x11, 0x49, 0xf0, 0x5a, 0x73, 0x63, 0x26, 0x8c, 0x71, 0xd9, 0x58,
+ 0x08, 0xff, 0x2e, 0x65, 0x26, 0x00
+};
+
+static const uint8_t privkey2[57] = {
+ 0xc4, 0xea, 0xb0, 0x5d, 0x35, 0x70, 0x07, 0xc6, 0x32, 0xf3, 0xdb, 0xb4,
+ 0x84, 0x89, 0x92, 0x4d, 0x55, 0x2b, 0x08, 0xfe, 0x0c, 0x35, 0x3a, 0x0d,
+ 0x4a, 0x1f, 0x00, 0xac, 0xda, 0x2c, 0x46, 0x3a, 0xfb, 0xea, 0x67, 0xc5,
+ 0xe8, 0xd2, 0x87, 0x7c, 0x5e, 0x3b, 0xc3, 0x97, 0xa6, 0x59, 0x94, 0x9e,
+ 0xf8, 0x02, 0x1e, 0x95, 0x4e, 0x0a, 0x12, 0x27, 0x4e
+};
+
+static const uint8_t pubkey2[57] = {
+ 0x43, 0xba, 0x28, 0xf4, 0x30, 0xcd, 0xff, 0x45, 0x6a, 0xe5, 0x31, 0x54,
+ 0x5f, 0x7e, 0xcd, 0x0a, 0xc8, 0x34, 0xa5, 0x5d, 0x93, 0x58, 0xc0, 0x37,
+ 0x2b, 0xfa, 0x0c, 0x6c, 0x67, 0x98, 0xc0, 0x86, 0x6a, 0xea, 0x01, 0xeb,
+ 0x00, 0x74, 0x28, 0x02, 0xb8, 0x43, 0x8e, 0xa4, 0xcb, 0x82, 0x16, 0x9c,
+ 0x23, 0x51, 0x60, 0x62, 0x7b, 0x4c, 0x3a, 0x94, 0x80
+};
+
+static const uint8_t msg2[1] = {
+ 0x03
+};
+
+static const uint8_t sig2[114] = {
+ 0x26, 0xb8, 0xf9, 0x17, 0x27, 0xbd, 0x62, 0x89, 0x7a, 0xf1, 0x5e, 0x41,
+ 0xeb, 0x43, 0xc3, 0x77, 0xef, 0xb9, 0xc6, 0x10, 0xd4, 0x8f, 0x23, 0x35,
+ 0xcb, 0x0b, 0xd0, 0x08, 0x78, 0x10, 0xf4, 0x35, 0x25, 0x41, 0xb1, 0x43,
+ 0xc4, 0xb9, 0x81, 0xb7, 0xe1, 0x8f, 0x62, 0xde, 0x8c, 0xcd, 0xf6, 0x33,
+ 0xfc, 0x1b, 0xf0, 0x37, 0xab, 0x7c, 0xd7, 0x79, 0x80, 0x5e, 0x0d, 0xbc,
+ 0xc0, 0xaa, 0xe1, 0xcb, 0xce, 0xe1, 0xaf, 0xb2, 0xe0, 0x27, 0xdf, 0x36,
+ 0xbc, 0x04, 0xdc, 0xec, 0xbf, 0x15, 0x43, 0x36, 0xc1, 0x9f, 0x0a, 0xf7,
+ 0xe0, 0xa6, 0x47, 0x29, 0x05, 0xe7, 0x99, 0xf1, 0x95, 0x3d, 0x2a, 0x0f,
+ 0xf3, 0x34, 0x8a, 0xb2, 0x1a, 0xa4, 0xad, 0xaf, 0xd1, 0xd2, 0x34, 0x44,
+ 0x1c, 0xf8, 0x07, 0xc0, 0x3a, 0x00
+};
+
+static const uint8_t privkey3[57] = {
+ 0xc4, 0xea, 0xb0, 0x5d, 0x35, 0x70, 0x07, 0xc6, 0x32, 0xf3, 0xdb, 0xb4,
+ 0x84, 0x89, 0x92, 0x4d, 0x55, 0x2b, 0x08, 0xfe, 0x0c, 0x35, 0x3a, 0x0d,
+ 0x4a, 0x1f, 0x00, 0xac, 0xda, 0x2c, 0x46, 0x3a, 0xfb, 0xea, 0x67, 0xc5,
+ 0xe8, 0xd2, 0x87, 0x7c, 0x5e, 0x3b, 0xc3, 0x97, 0xa6, 0x59, 0x94, 0x9e,
+ 0xf8, 0x02, 0x1e, 0x95, 0x4e, 0x0a, 0x12, 0x27, 0x4e
+};
+
+static const uint8_t pubkey3[57] = {
+ 0x43, 0xba, 0x28, 0xf4, 0x30, 0xcd, 0xff, 0x45, 0x6a, 0xe5, 0x31, 0x54,
+ 0x5f, 0x7e, 0xcd, 0x0a, 0xc8, 0x34, 0xa5, 0x5d, 0x93, 0x58, 0xc0, 0x37,
+ 0x2b, 0xfa, 0x0c, 0x6c, 0x67, 0x98, 0xc0, 0x86, 0x6a, 0xea, 0x01, 0xeb,
+ 0x00, 0x74, 0x28, 0x02, 0xb8, 0x43, 0x8e, 0xa4, 0xcb, 0x82, 0x16, 0x9c,
+ 0x23, 0x51, 0x60, 0x62, 0x7b, 0x4c, 0x3a, 0x94, 0x80
+};
+
+static const uint8_t msg3[1] = {
+ 0x03
+};
+
+static const uint8_t context3[3] = {
+ 0x66, 0x6f, 0x6f
+};
+
+static const uint8_t sig3[114] = {
+ 0xd4, 0xf8, 0xf6, 0x13, 0x17, 0x70, 0xdd, 0x46, 0xf4, 0x08, 0x67, 0xd6,
+ 0xfd, 0x5d, 0x50, 0x55, 0xde, 0x43, 0x54, 0x1f, 0x8c, 0x5e, 0x35, 0xab,
+ 0xbc, 0xd0, 0x01, 0xb3, 0x2a, 0x89, 0xf7, 0xd2, 0x15, 0x1f, 0x76, 0x47,
+ 0xf1, 0x1d, 0x8c, 0xa2, 0xae, 0x27, 0x9f, 0xb8, 0x42, 0xd6, 0x07, 0x21,
+ 0x7f, 0xce, 0x6e, 0x04, 0x2f, 0x68, 0x15, 0xea, 0x00, 0x0c, 0x85, 0x74,
+ 0x1d, 0xe5, 0xc8, 0xda, 0x11, 0x44, 0xa6, 0xa1, 0xab, 0xa7, 0xf9, 0x6d,
+ 0xe4, 0x25, 0x05, 0xd7, 0xa7, 0x29, 0x85, 0x24, 0xfd, 0xa5, 0x38, 0xfc,
+ 0xcb, 0xbb, 0x75, 0x4f, 0x57, 0x8c, 0x1c, 0xad, 0x10, 0xd5, 0x4d, 0x0d,
+ 0x54, 0x28, 0x40, 0x7e, 0x85, 0xdc, 0xbc, 0x98, 0xa4, 0x91, 0x55, 0xc1,
+ 0x37, 0x64, 0xe6, 0x6c, 0x3c, 0x00
+};
+
+static const uint8_t privkey4[57] = {
+ 0xcd, 0x23, 0xd2, 0x4f, 0x71, 0x42, 0x74, 0xe7, 0x44, 0x34, 0x32, 0x37,
+ 0xb9, 0x32, 0x90, 0xf5, 0x11, 0xf6, 0x42, 0x5f, 0x98, 0xe6, 0x44, 0x59,
+ 0xff, 0x20, 0x3e, 0x89, 0x85, 0x08, 0x3f, 0xfd, 0xf6, 0x05, 0x00, 0x55,
+ 0x3a, 0xbc, 0x0e, 0x05, 0xcd, 0x02, 0x18, 0x4b, 0xdb, 0x89, 0xc4, 0xcc,
+ 0xd6, 0x7e, 0x18, 0x79, 0x51, 0x26, 0x7e, 0xb3, 0x28
+};
+
+static const uint8_t pubkey4[57] = {
+ 0xdc, 0xea, 0x9e, 0x78, 0xf3, 0x5a, 0x1b, 0xf3, 0x49, 0x9a, 0x83, 0x1b,
+ 0x10, 0xb8, 0x6c, 0x90, 0xaa, 0xc0, 0x1c, 0xd8, 0x4b, 0x67, 0xa0, 0x10,
+ 0x9b, 0x55, 0xa3, 0x6e, 0x93, 0x28, 0xb1, 0xe3, 0x65, 0xfc, 0xe1, 0x61,
+ 0xd7, 0x1c, 0xe7, 0x13, 0x1a, 0x54, 0x3e, 0xa4, 0xcb, 0x5f, 0x7e, 0x9f,
+ 0x1d, 0x8b, 0x00, 0x69, 0x64, 0x47, 0x00, 0x14, 0x00
+};
+
+static const uint8_t msg4[11] = {
+ 0x0c, 0x3e, 0x54, 0x40, 0x74, 0xec, 0x63, 0xb0, 0x26, 0x5e, 0x0c
+};
+
+static const uint8_t sig4[114] = {
+ 0x1f, 0x0a, 0x88, 0x88, 0xce, 0x25, 0xe8, 0xd4, 0x58, 0xa2, 0x11, 0x30,
+ 0x87, 0x9b, 0x84, 0x0a, 0x90, 0x89, 0xd9, 0x99, 0xaa, 0xba, 0x03, 0x9e,
+ 0xaf, 0x3e, 0x3a, 0xfa, 0x09, 0x0a, 0x09, 0xd3, 0x89, 0xdb, 0xa8, 0x2c,
+ 0x4f, 0xf2, 0xae, 0x8a, 0xc5, 0xcd, 0xfb, 0x7c, 0x55, 0xe9, 0x4d, 0x5d,
+ 0x96, 0x1a, 0x29, 0xfe, 0x01, 0x09, 0x94, 0x1e, 0x00, 0xb8, 0xdb, 0xde,
+ 0xea, 0x6d, 0x3b, 0x05, 0x10, 0x68, 0xdf, 0x72, 0x54, 0xc0, 0xcd, 0xc1,
+ 0x29, 0xcb, 0xe6, 0x2d, 0xb2, 0xdc, 0x95, 0x7d, 0xbb, 0x47, 0xb5, 0x1f,
+ 0xd3, 0xf2, 0x13, 0xfb, 0x86, 0x98, 0xf0, 0x64, 0x77, 0x42, 0x50, 0xa5,
+ 0x02, 0x89, 0x61, 0xc9, 0xbf, 0x8f, 0xfd, 0x97, 0x3f, 0xe5, 0xd5, 0xc2,
+ 0x06, 0x49, 0x2b, 0x14, 0x0e, 0x00
+};
+
+static const uint8_t privkey5[57] = {
+ 0x25, 0x8c, 0xdd, 0x4a, 0xda, 0x32, 0xed, 0x9c, 0x9f, 0xf5, 0x4e, 0x63,
+ 0x75, 0x6a, 0xe5, 0x82, 0xfb, 0x8f, 0xab, 0x2a, 0xc7, 0x21, 0xf2, 0xc8,
+ 0xe6, 0x76, 0xa7, 0x27, 0x68, 0x51, 0x3d, 0x93, 0x9f, 0x63, 0xdd, 0xdb,
+ 0x55, 0x60, 0x91, 0x33, 0xf2, 0x9a, 0xdf, 0x86, 0xec, 0x99, 0x29, 0xdc,
+ 0xcb, 0x52, 0xc1, 0xc5, 0xfd, 0x2f, 0xf7, 0xe2, 0x1b
+};
+
+static const uint8_t pubkey5[57] = {
+ 0x3b, 0xa1, 0x6d, 0xa0, 0xc6, 0xf2, 0xcc, 0x1f, 0x30, 0x18, 0x77, 0x40,
+ 0x75, 0x6f, 0x5e, 0x79, 0x8d, 0x6b, 0xc5, 0xfc, 0x01, 0x5d, 0x7c, 0x63,
+ 0xcc, 0x95, 0x10, 0xee, 0x3f, 0xd4, 0x4a, 0xdc, 0x24, 0xd8, 0xe9, 0x68,
+ 0xb6, 0xe4, 0x6e, 0x6f, 0x94, 0xd1, 0x9b, 0x94, 0x53, 0x61, 0x72, 0x6b,
+ 0xd7, 0x5e, 0x14, 0x9e, 0xf0, 0x98, 0x17, 0xf5, 0x80
+};
+
+static const uint8_t msg5[12] = {
+ 0x64, 0xa6, 0x5f, 0x3c, 0xde, 0xdc, 0xdd, 0x66, 0x81, 0x1e, 0x29, 0x15
+};
+
+static const uint8_t sig5[114] = {
+ 0x7e, 0xee, 0xab, 0x7c, 0x4e, 0x50, 0xfb, 0x79, 0x9b, 0x41, 0x8e, 0xe5,
+ 0xe3, 0x19, 0x7f, 0xf6, 0xbf, 0x15, 0xd4, 0x3a, 0x14, 0xc3, 0x43, 0x89,
+ 0xb5, 0x9d, 0xd1, 0xa7, 0xb1, 0xb8, 0x5b, 0x4a, 0xe9, 0x04, 0x38, 0xac,
+ 0xa6, 0x34, 0xbe, 0xa4, 0x5e, 0x3a, 0x26, 0x95, 0xf1, 0x27, 0x0f, 0x07,
+ 0xfd, 0xcd, 0xf7, 0xc6, 0x2b, 0x8e, 0xfe, 0xaf, 0x00, 0xb4, 0x5c, 0x2c,
+ 0x96, 0xba, 0x45, 0x7e, 0xb1, 0xa8, 0xbf, 0x07, 0x5a, 0x3d, 0xb2, 0x8e,
+ 0x5c, 0x24, 0xf6, 0xb9, 0x23, 0xed, 0x4a, 0xd7, 0x47, 0xc3, 0xc9, 0xe0,
+ 0x3c, 0x70, 0x79, 0xef, 0xb8, 0x7c, 0xb1, 0x10, 0xd3, 0xa9, 0x98, 0x61,
+ 0xe7, 0x20, 0x03, 0xcb, 0xae, 0x6d, 0x6b, 0x8b, 0x82, 0x7e, 0x4e, 0x6c,
+ 0x14, 0x30, 0x64, 0xff, 0x3c, 0x00
+};
+
+static const uint8_t privkey6[57] = {
+ 0x7e, 0xf4, 0xe8, 0x45, 0x44, 0x23, 0x67, 0x52, 0xfb, 0xb5, 0x6b, 0x8f,
+ 0x31, 0xa2, 0x3a, 0x10, 0xe4, 0x28, 0x14, 0xf5, 0xf5, 0x5c, 0xa0, 0x37,
+ 0xcd, 0xcc, 0x11, 0xc6, 0x4c, 0x9a, 0x3b, 0x29, 0x49, 0xc1, 0xbb, 0x60,
+ 0x70, 0x03, 0x14, 0x61, 0x17, 0x32, 0xa6, 0xc2, 0xfe, 0xa9, 0x8e, 0xeb,
+ 0xc0, 0x26, 0x6a, 0x11, 0xa9, 0x39, 0x70, 0x10, 0x0e
+};
+
+static const uint8_t pubkey6[57] = {
+ 0xb3, 0xda, 0x07, 0x9b, 0x0a, 0xa4, 0x93, 0xa5, 0x77, 0x20, 0x29, 0xf0,
+ 0x46, 0x7b, 0xae, 0xbe, 0xe5, 0xa8, 0x11, 0x2d, 0x9d, 0x3a, 0x22, 0x53,
+ 0x23, 0x61, 0xda, 0x29, 0x4f, 0x7b, 0xb3, 0x81, 0x5c, 0x5d, 0xc5, 0x9e,
+ 0x17, 0x6b, 0x4d, 0x9f, 0x38, 0x1c, 0xa0, 0x93, 0x8e, 0x13, 0xc6, 0xc0,
+ 0x7b, 0x17, 0x4b, 0xe6, 0x5d, 0xfa, 0x57, 0x8e, 0x80
+};
+
+static const uint8_t msg6[13] = {
+ 0x64, 0xa6, 0x5f, 0x3c, 0xde, 0xdc, 0xdd, 0x66, 0x81, 0x1e, 0x29, 0x15,
+ 0xe7
+};
+
+static const uint8_t sig6[114] = {
+ 0x6a, 0x12, 0x06, 0x6f, 0x55, 0x33, 0x1b, 0x6c, 0x22, 0xac, 0xd5, 0xd5,
+ 0xbf, 0xc5, 0xd7, 0x12, 0x28, 0xfb, 0xda, 0x80, 0xae, 0x8d, 0xec, 0x26,
+ 0xbd, 0xd3, 0x06, 0x74, 0x3c, 0x50, 0x27, 0xcb, 0x48, 0x90, 0x81, 0x0c,
+ 0x16, 0x2c, 0x02, 0x74, 0x68, 0x67, 0x5e, 0xcf, 0x64, 0x5a, 0x83, 0x17,
+ 0x6c, 0x0d, 0x73, 0x23, 0xa2, 0xcc, 0xde, 0x2d, 0x80, 0xef, 0xe5, 0xa1,
+ 0x26, 0x8e, 0x8a, 0xca, 0x1d, 0x6f, 0xbc, 0x19, 0x4d, 0x3f, 0x77, 0xc4,
+ 0x49, 0x86, 0xeb, 0x4a, 0xb4, 0x17, 0x79, 0x19, 0xad, 0x8b, 0xec, 0x33,
+ 0xeb, 0x47, 0xbb, 0xb5, 0xfc, 0x6e, 0x28, 0x19, 0x6f, 0xd1, 0xca, 0xf5,
+ 0x6b, 0x4e, 0x7e, 0x0b, 0xa5, 0x51, 0x92, 0x34, 0xd0, 0x47, 0x15, 0x5a,
+ 0xc7, 0x27, 0xa1, 0x05, 0x31, 0x00
+};
+
+static const uint8_t privkey7[57] = {
+ 0xd6, 0x5d, 0xf3, 0x41, 0xad, 0x13, 0xe0, 0x08, 0x56, 0x76, 0x88, 0xba,
+ 0xed, 0xda, 0x8e, 0x9d, 0xcd, 0xc1, 0x7d, 0xc0, 0x24, 0x97, 0x4e, 0xa5,
+ 0xb4, 0x22, 0x7b, 0x65, 0x30, 0xe3, 0x39, 0xbf, 0xf2, 0x1f, 0x99, 0xe6,
+ 0x8c, 0xa6, 0x96, 0x8f, 0x3c, 0xca, 0x6d, 0xfe, 0x0f, 0xb9, 0xf4, 0xfa,
+ 0xb4, 0xfa, 0x13, 0x5d, 0x55, 0x42, 0xea, 0x3f, 0x01
+};
+
+static const uint8_t pubkey7[57] = {
+ 0xdf, 0x97, 0x05, 0xf5, 0x8e, 0xdb, 0xab, 0x80, 0x2c, 0x7f, 0x83, 0x63,
+ 0xcf, 0xe5, 0x56, 0x0a, 0xb1, 0xc6, 0x13, 0x2c, 0x20, 0xa9, 0xf1, 0xdd,
+ 0x16, 0x34, 0x83, 0xa2, 0x6f, 0x8a, 0xc5, 0x3a, 0x39, 0xd6, 0x80, 0x8b,
+ 0xf4, 0xa1, 0xdf, 0xbd, 0x26, 0x1b, 0x09, 0x9b, 0xb0, 0x3b, 0x3f, 0xb5,
+ 0x09, 0x06, 0xcb, 0x28, 0xbd, 0x8a, 0x08, 0x1f, 0x00
+};
+
+static const uint8_t msg7[64] = {
+ 0xbd, 0x0f, 0x6a, 0x37, 0x47, 0xcd, 0x56, 0x1b, 0xdd, 0xdf, 0x46, 0x40,
+ 0xa3, 0x32, 0x46, 0x1a, 0x4a, 0x30, 0xa1, 0x2a, 0x43, 0x4c, 0xd0, 0xbf,
+ 0x40, 0xd7, 0x66, 0xd9, 0xc6, 0xd4, 0x58, 0xe5, 0x51, 0x22, 0x04, 0xa3,
+ 0x0c, 0x17, 0xd1, 0xf5, 0x0b, 0x50, 0x79, 0x63, 0x1f, 0x64, 0xeb, 0x31,
+ 0x12, 0x18, 0x2d, 0xa3, 0x00, 0x58, 0x35, 0x46, 0x11, 0x13, 0x71, 0x8d,
+ 0x1a, 0x5e, 0xf9, 0x44
+};
+
+static const uint8_t sig7[114] = {
+ 0x55, 0x4b, 0xc2, 0x48, 0x08, 0x60, 0xb4, 0x9e, 0xab, 0x85, 0x32, 0xd2,
+ 0xa5, 0x33, 0xb7, 0xd5, 0x78, 0xef, 0x47, 0x3e, 0xeb, 0x58, 0xc9, 0x8b,
+ 0xb2, 0xd0, 0xe1, 0xce, 0x48, 0x8a, 0x98, 0xb1, 0x8d, 0xfd, 0xe9, 0xb9,
+ 0xb9, 0x07, 0x75, 0xe6, 0x7f, 0x47, 0xd4, 0xa1, 0xc3, 0x48, 0x20, 0x58,
+ 0xef, 0xc9, 0xf4, 0x0d, 0x2c, 0xa0, 0x33, 0xa0, 0x80, 0x1b, 0x63, 0xd4,
+ 0x5b, 0x3b, 0x72, 0x2e, 0xf5, 0x52, 0xba, 0xd3, 0xb4, 0xcc, 0xb6, 0x67,
+ 0xda, 0x35, 0x01, 0x92, 0xb6, 0x1c, 0x50, 0x8c, 0xf7, 0xb6, 0xb5, 0xad,
+ 0xad, 0xc2, 0xc8, 0xd9, 0xa4, 0x46, 0xef, 0x00, 0x3f, 0xb0, 0x5c, 0xba,
+ 0x5f, 0x30, 0xe8, 0x8e, 0x36, 0xec, 0x27, 0x03, 0xb3, 0x49, 0xca, 0x22,
+ 0x9c, 0x26, 0x70, 0x83, 0x39, 0x00
+};
+
+static const uint8_t privkey8[57] = {
+ 0x2e, 0xc5, 0xfe, 0x3c, 0x17, 0x04, 0x5a, 0xbd, 0xb1, 0x36, 0xa5, 0xe6,
+ 0xa9, 0x13, 0xe3, 0x2a, 0xb7, 0x5a, 0xe6, 0x8b, 0x53, 0xd2, 0xfc, 0x14,
+ 0x9b, 0x77, 0xe5, 0x04, 0x13, 0x2d, 0x37, 0x56, 0x9b, 0x7e, 0x76, 0x6b,
+ 0xa7, 0x4a, 0x19, 0xbd, 0x61, 0x62, 0x34, 0x3a, 0x21, 0xc8, 0x59, 0x0a,
+ 0xa9, 0xce, 0xbc, 0xa9, 0x01, 0x4c, 0x63, 0x6d, 0xf5
+};
+
+static const uint8_t pubkey8[57] = {
+ 0x79, 0x75, 0x6f, 0x01, 0x4d, 0xcf, 0xe2, 0x07, 0x9f, 0x5d, 0xd9, 0xe7,
+ 0x18, 0xbe, 0x41, 0x71, 0xe2, 0xef, 0x24, 0x86, 0xa0, 0x8f, 0x25, 0x18,
+ 0x6f, 0x6b, 0xff, 0x43, 0xa9, 0x93, 0x6b, 0x9b, 0xfe, 0x12, 0x40, 0x2b,
+ 0x08, 0xae, 0x65, 0x79, 0x8a, 0x3d, 0x81, 0xe2, 0x2e, 0x9e, 0xc8, 0x0e,
+ 0x76, 0x90, 0x86, 0x2e, 0xf3, 0xd4, 0xed, 0x3a, 0x00
+};
+
+static const uint8_t msg8[256] = {
+ 0x15, 0x77, 0x75, 0x32, 0xb0, 0xbd, 0xd0, 0xd1, 0x38, 0x9f, 0x63, 0x6c,
+ 0x5f, 0x6b, 0x9b, 0xa7, 0x34, 0xc9, 0x0a, 0xf5, 0x72, 0x87, 0x7e, 0x2d,
+ 0x27, 0x2d, 0xd0, 0x78, 0xaa, 0x1e, 0x56, 0x7c, 0xfa, 0x80, 0xe1, 0x29,
+ 0x28, 0xbb, 0x54, 0x23, 0x30, 0xe8, 0x40, 0x9f, 0x31, 0x74, 0x50, 0x41,
+ 0x07, 0xec, 0xd5, 0xef, 0xac, 0x61, 0xae, 0x75, 0x04, 0xda, 0xbe, 0x2a,
+ 0x60, 0x2e, 0xde, 0x89, 0xe5, 0xcc, 0xa6, 0x25, 0x7a, 0x7c, 0x77, 0xe2,
+ 0x7a, 0x70, 0x2b, 0x3a, 0xe3, 0x9f, 0xc7, 0x69, 0xfc, 0x54, 0xf2, 0x39,
+ 0x5a, 0xe6, 0xa1, 0x17, 0x8c, 0xab, 0x47, 0x38, 0xe5, 0x43, 0x07, 0x2f,
+ 0xc1, 0xc1, 0x77, 0xfe, 0x71, 0xe9, 0x2e, 0x25, 0xbf, 0x03, 0xe4, 0xec,
+ 0xb7, 0x2f, 0x47, 0xb6, 0x4d, 0x04, 0x65, 0xaa, 0xea, 0x4c, 0x7f, 0xad,
+ 0x37, 0x25, 0x36, 0xc8, 0xba, 0x51, 0x6a, 0x60, 0x39, 0xc3, 0xc2, 0xa3,
+ 0x9f, 0x0e, 0x4d, 0x83, 0x2b, 0xe4, 0x32, 0xdf, 0xa9, 0xa7, 0x06, 0xa6,
+ 0xe5, 0xc7, 0xe1, 0x9f, 0x39, 0x79, 0x64, 0xca, 0x42, 0x58, 0x00, 0x2f,
+ 0x7c, 0x05, 0x41, 0xb5, 0x90, 0x31, 0x6d, 0xbc, 0x56, 0x22, 0xb6, 0xb2,
+ 0xa6, 0xfe, 0x7a, 0x4a, 0xbf, 0xfd, 0x96, 0x10, 0x5e, 0xca, 0x76, 0xea,
+ 0x7b, 0x98, 0x81, 0x6a, 0xf0, 0x74, 0x8c, 0x10, 0xdf, 0x04, 0x8c, 0xe0,
+ 0x12, 0xd9, 0x01, 0x01, 0x5a, 0x51, 0xf1, 0x89, 0xf3, 0x88, 0x81, 0x45,
+ 0xc0, 0x36, 0x50, 0xaa, 0x23, 0xce, 0x89, 0x4c, 0x3b, 0xd8, 0x89, 0xe0,
+ 0x30, 0xd5, 0x65, 0x07, 0x1c, 0x59, 0xf4, 0x09, 0xa9, 0x98, 0x1b, 0x51,
+ 0x87, 0x8f, 0xd6, 0xfc, 0x11, 0x06, 0x24, 0xdc, 0xbc, 0xde, 0x0b, 0xf7,
+ 0xa6, 0x9c, 0xcc, 0xe3, 0x8f, 0xab, 0xdf, 0x86, 0xf3, 0xbe, 0xf6, 0x04,
+ 0x48, 0x19, 0xde, 0x11
+};
+
+static const uint8_t sig8[114] = {
+ 0xc6, 0x50, 0xdd, 0xbb, 0x06, 0x01, 0xc1, 0x9c, 0xa1, 0x14, 0x39, 0xe1,
+ 0x64, 0x0d, 0xd9, 0x31, 0xf4, 0x3c, 0x51, 0x8e, 0xa5, 0xbe, 0xa7, 0x0d,
+ 0x3d, 0xcd, 0xe5, 0xf4, 0x19, 0x1f, 0xe5, 0x3f, 0x00, 0xcf, 0x96, 0x65,
+ 0x46, 0xb7, 0x2b, 0xcc, 0x7d, 0x58, 0xbe, 0x2b, 0x9b, 0xad, 0xef, 0x28,
+ 0x74, 0x39, 0x54, 0xe3, 0xa4, 0x4a, 0x23, 0xf8, 0x80, 0xe8, 0xd4, 0xf1,
+ 0xcf, 0xce, 0x2d, 0x7a, 0x61, 0x45, 0x2d, 0x26, 0xda, 0x05, 0x89, 0x6f,
+ 0x0a, 0x50, 0xda, 0x66, 0xa2, 0x39, 0xa8, 0xa1, 0x88, 0xb6, 0xd8, 0x25,
+ 0xb3, 0x30, 0x5a, 0xd7, 0x7b, 0x73, 0xfb, 0xac, 0x08, 0x36, 0xec, 0xc6,
+ 0x09, 0x87, 0xfd, 0x08, 0x52, 0x7c, 0x1a, 0x8e, 0x80, 0xd5, 0x82, 0x3e,
+ 0x65, 0xca, 0xfe, 0x2a, 0x3d, 0x00
+};
+
+static const uint8_t privkey9[57] = {
+ 0x87, 0x2d, 0x09, 0x37, 0x80, 0xf5, 0xd3, 0x73, 0x0d, 0xf7, 0xc2, 0x12,
+ 0x66, 0x4b, 0x37, 0xb8, 0xa0, 0xf2, 0x4f, 0x56, 0x81, 0x0d, 0xaa, 0x83,
+ 0x82, 0xcd, 0x4f, 0xa3, 0xf7, 0x76, 0x34, 0xec, 0x44, 0xdc, 0x54, 0xf1,
+ 0xc2, 0xed, 0x9b, 0xea, 0x86, 0xfa, 0xfb, 0x76, 0x32, 0xd8, 0xbe, 0x19,
+ 0x9e, 0xa1, 0x65, 0xf5, 0xad, 0x55, 0xdd, 0x9c, 0xe8
+};
+
+static const uint8_t pubkey9[57] = {
+ 0xa8, 0x1b, 0x2e, 0x8a, 0x70, 0xa5, 0xac, 0x94, 0xff, 0xdb, 0xcc, 0x9b,
+ 0xad, 0xfc, 0x3f, 0xeb, 0x08, 0x01, 0xf2, 0x58, 0x57, 0x8b, 0xb1, 0x14,
+ 0xad, 0x44, 0xec, 0xe1, 0xec, 0x0e, 0x79, 0x9d, 0xa0, 0x8e, 0xff, 0xb8,
+ 0x1c, 0x5d, 0x68, 0x5c, 0x0c, 0x56, 0xf6, 0x4e, 0xec, 0xae, 0xf8, 0xcd,
+ 0xf1, 0x1c, 0xc3, 0x87, 0x37, 0x83, 0x8c, 0xf4, 0x00
+};
+
+static const uint8_t msg9[1023] = {
+ 0x6d, 0xdf, 0x80, 0x2e, 0x1a, 0xae, 0x49, 0x86, 0x93, 0x5f, 0x7f, 0x98,
+ 0x1b, 0xa3, 0xf0, 0x35, 0x1d, 0x62, 0x73, 0xc0, 0xa0, 0xc2, 0x2c, 0x9c,
+ 0x0e, 0x83, 0x39, 0x16, 0x8e, 0x67, 0x54, 0x12, 0xa3, 0xde, 0xbf, 0xaf,
+ 0x43, 0x5e, 0xd6, 0x51, 0x55, 0x80, 0x07, 0xdb, 0x43, 0x84, 0xb6, 0x50,
+ 0xfc, 0xc0, 0x7e, 0x3b, 0x58, 0x6a, 0x27, 0xa4, 0xf7, 0xa0, 0x0a, 0xc8,
+ 0xa6, 0xfe, 0xc2, 0xcd, 0x86, 0xae, 0x4b, 0xf1, 0x57, 0x0c, 0x41, 0xe6,
+ 0xa4, 0x0c, 0x93, 0x1d, 0xb2, 0x7b, 0x2f, 0xaa, 0x15, 0xa8, 0xce, 0xdd,
+ 0x52, 0xcf, 0xf7, 0x36, 0x2c, 0x4e, 0x6e, 0x23, 0xda, 0xec, 0x0f, 0xbc,
+ 0x3a, 0x79, 0xb6, 0x80, 0x6e, 0x31, 0x6e, 0xfc, 0xc7, 0xb6, 0x81, 0x19,
+ 0xbf, 0x46, 0xbc, 0x76, 0xa2, 0x60, 0x67, 0xa5, 0x3f, 0x29, 0x6d, 0xaf,
+ 0xdb, 0xdc, 0x11, 0xc7, 0x7f, 0x77, 0x77, 0xe9, 0x72, 0x66, 0x0c, 0xf4,
+ 0xb6, 0xa9, 0xb3, 0x69, 0xa6, 0x66, 0x5f, 0x02, 0xe0, 0xcc, 0x9b, 0x6e,
+ 0xdf, 0xad, 0x13, 0x6b, 0x4f, 0xab, 0xe7, 0x23, 0xd2, 0x81, 0x3d, 0xb3,
+ 0x13, 0x6c, 0xfd, 0xe9, 0xb6, 0xd0, 0x44, 0x32, 0x2f, 0xee, 0x29, 0x47,
+ 0x95, 0x2e, 0x03, 0x1b, 0x73, 0xab, 0x5c, 0x60, 0x33, 0x49, 0xb3, 0x07,
+ 0xbd, 0xc2, 0x7b, 0xc6, 0xcb, 0x8b, 0x8b, 0xbd, 0x7b, 0xd3, 0x23, 0x21,
+ 0x9b, 0x80, 0x33, 0xa5, 0x81, 0xb5, 0x9e, 0xad, 0xeb, 0xb0, 0x9b, 0x3c,
+ 0x4f, 0x3d, 0x22, 0x77, 0xd4, 0xf0, 0x34, 0x36, 0x24, 0xac, 0xc8, 0x17,
+ 0x80, 0x47, 0x28, 0xb2, 0x5a, 0xb7, 0x97, 0x17, 0x2b, 0x4c, 0x5c, 0x21,
+ 0xa2, 0x2f, 0x9c, 0x78, 0x39, 0xd6, 0x43, 0x00, 0x23, 0x2e, 0xb6, 0x6e,
+ 0x53, 0xf3, 0x1c, 0x72, 0x3f, 0xa3, 0x7f, 0xe3, 0x87, 0xc7, 0xd3, 0xe5,
+ 0x0b, 0xdf, 0x98, 0x13, 0xa3, 0x0e, 0x5b, 0xb1, 0x2c, 0xf4, 0xcd, 0x93,
+ 0x0c, 0x40, 0xcf, 0xb4, 0xe1, 0xfc, 0x62, 0x25, 0x92, 0xa4, 0x95, 0x88,
+ 0x79, 0x44, 0x94, 0xd5, 0x6d, 0x24, 0xea, 0x4b, 0x40, 0xc8, 0x9f, 0xc0,
+ 0x59, 0x6c, 0xc9, 0xeb, 0xb9, 0x61, 0xc8, 0xcb, 0x10, 0xad, 0xde, 0x97,
+ 0x6a, 0x5d, 0x60, 0x2b, 0x1c, 0x3f, 0x85, 0xb9, 0xb9, 0xa0, 0x01, 0xed,
+ 0x3c, 0x6a, 0x4d, 0x3b, 0x14, 0x37, 0xf5, 0x20, 0x96, 0xcd, 0x19, 0x56,
+ 0xd0, 0x42, 0xa5, 0x97, 0xd5, 0x61, 0xa5, 0x96, 0xec, 0xd3, 0xd1, 0x73,
+ 0x5a, 0x8d, 0x57, 0x0e, 0xa0, 0xec, 0x27, 0x22, 0x5a, 0x2c, 0x4a, 0xaf,
+ 0xf2, 0x63, 0x06, 0xd1, 0x52, 0x6c, 0x1a, 0xf3, 0xca, 0x6d, 0x9c, 0xf5,
+ 0xa2, 0xc9, 0x8f, 0x47, 0xe1, 0xc4, 0x6d, 0xb9, 0xa3, 0x32, 0x34, 0xcf,
+ 0xd4, 0xd8, 0x1f, 0x2c, 0x98, 0x53, 0x8a, 0x09, 0xeb, 0xe7, 0x69, 0x98,
+ 0xd0, 0xd8, 0xfd, 0x25, 0x99, 0x7c, 0x7d, 0x25, 0x5c, 0x6d, 0x66, 0xec,
+ 0xe6, 0xfa, 0x56, 0xf1, 0x11, 0x44, 0x95, 0x0f, 0x02, 0x77, 0x95, 0xe6,
+ 0x53, 0x00, 0x8f, 0x4b, 0xd7, 0xca, 0x2d, 0xee, 0x85, 0xd8, 0xe9, 0x0f,
+ 0x3d, 0xc3, 0x15, 0x13, 0x0c, 0xe2, 0xa0, 0x03, 0x75, 0xa3, 0x18, 0xc7,
+ 0xc3, 0xd9, 0x7b, 0xe2, 0xc8, 0xce, 0x5b, 0x6d, 0xb4, 0x1a, 0x62, 0x54,
+ 0xff, 0x26, 0x4f, 0xa6, 0x15, 0x5b, 0xae, 0xe3, 0xb0, 0x77, 0x3c, 0x0f,
+ 0x49, 0x7c, 0x57, 0x3f, 0x19, 0xbb, 0x4f, 0x42, 0x40, 0x28, 0x1f, 0x0b,
+ 0x1f, 0x4f, 0x7b, 0xe8, 0x57, 0xa4, 0xe5, 0x9d, 0x41, 0x6c, 0x06, 0xb4,
+ 0xc5, 0x0f, 0xa0, 0x9e, 0x18, 0x10, 0xdd, 0xc6, 0xb1, 0x46, 0x7b, 0xae,
+ 0xac, 0x5a, 0x36, 0x68, 0xd1, 0x1b, 0x6e, 0xca, 0xa9, 0x01, 0x44, 0x00,
+ 0x16, 0xf3, 0x89, 0xf8, 0x0a, 0xcc, 0x4d, 0xb9, 0x77, 0x02, 0x5e, 0x7f,
+ 0x59, 0x24, 0x38, 0x8c, 0x7e, 0x34, 0x0a, 0x73, 0x2e, 0x55, 0x44, 0x40,
+ 0xe7, 0x65, 0x70, 0xf8, 0xdd, 0x71, 0xb7, 0xd6, 0x40, 0xb3, 0x45, 0x0d,
+ 0x1f, 0xd5, 0xf0, 0x41, 0x0a, 0x18, 0xf9, 0xa3, 0x49, 0x4f, 0x70, 0x7c,
+ 0x71, 0x7b, 0x79, 0xb4, 0xbf, 0x75, 0xc9, 0x84, 0x00, 0xb0, 0x96, 0xb2,
+ 0x16, 0x53, 0xb5, 0xd2, 0x17, 0xcf, 0x35, 0x65, 0xc9, 0x59, 0x74, 0x56,
+ 0xf7, 0x07, 0x03, 0x49, 0x7a, 0x07, 0x87, 0x63, 0x82, 0x9b, 0xc0, 0x1b,
+ 0xb1, 0xcb, 0xc8, 0xfa, 0x04, 0xea, 0xdc, 0x9a, 0x6e, 0x3f, 0x66, 0x99,
+ 0x58, 0x7a, 0x9e, 0x75, 0xc9, 0x4e, 0x5b, 0xab, 0x00, 0x36, 0xe0, 0xb2,
+ 0xe7, 0x11, 0x39, 0x2c, 0xff, 0x00, 0x47, 0xd0, 0xd6, 0xb0, 0x5b, 0xd2,
+ 0xa5, 0x88, 0xbc, 0x10, 0x97, 0x18, 0x95, 0x42, 0x59, 0xf1, 0xd8, 0x66,
+ 0x78, 0xa5, 0x79, 0xa3, 0x12, 0x0f, 0x19, 0xcf, 0xb2, 0x96, 0x3f, 0x17,
+ 0x7a, 0xeb, 0x70, 0xf2, 0xd4, 0x84, 0x48, 0x26, 0x26, 0x2e, 0x51, 0xb8,
+ 0x02, 0x71, 0x27, 0x20, 0x68, 0xef, 0x5b, 0x38, 0x56, 0xfa, 0x85, 0x35,
+ 0xaa, 0x2a, 0x88, 0xb2, 0xd4, 0x1f, 0x2a, 0x0e, 0x2f, 0xda, 0x76, 0x24,
+ 0xc2, 0x85, 0x02, 0x72, 0xac, 0x4a, 0x2f, 0x56, 0x1f, 0x8f, 0x2f, 0x7a,
+ 0x31, 0x8b, 0xfd, 0x5c, 0xaf, 0x96, 0x96, 0x14, 0x9e, 0x4a, 0xc8, 0x24,
+ 0xad, 0x34, 0x60, 0x53, 0x8f, 0xdc, 0x25, 0x42, 0x1b, 0xee, 0xc2, 0xcc,
+ 0x68, 0x18, 0x16, 0x2d, 0x06, 0xbb, 0xed, 0x0c, 0x40, 0xa3, 0x87, 0x19,
+ 0x23, 0x49, 0xdb, 0x67, 0xa1, 0x18, 0xba, 0xda, 0x6c, 0xd5, 0xab, 0x01,
+ 0x40, 0xee, 0x27, 0x32, 0x04, 0xf6, 0x28, 0xaa, 0xd1, 0xc1, 0x35, 0xf7,
+ 0x70, 0x27, 0x9a, 0x65, 0x1e, 0x24, 0xd8, 0xc1, 0x4d, 0x75, 0xa6, 0x05,
+ 0x9d, 0x76, 0xb9, 0x6a, 0x6f, 0xd8, 0x57, 0xde, 0xf5, 0xe0, 0xb3, 0x54,
+ 0xb2, 0x7a, 0xb9, 0x37, 0xa5, 0x81, 0x5d, 0x16, 0xb5, 0xfa, 0xe4, 0x07,
+ 0xff, 0x18, 0x22, 0x2c, 0x6d, 0x1e, 0xd2, 0x63, 0xbe, 0x68, 0xc9, 0x5f,
+ 0x32, 0xd9, 0x08, 0xbd, 0x89, 0x5c, 0xd7, 0x62, 0x07, 0xae, 0x72, 0x64,
+ 0x87, 0x56, 0x7f, 0x9a, 0x67, 0xda, 0xd7, 0x9a, 0xbe, 0xc3, 0x16, 0xf6,
+ 0x83, 0xb1, 0x7f, 0x2d, 0x02, 0xbf, 0x07, 0xe0, 0xac, 0x8b, 0x5b, 0xc6,
+ 0x16, 0x2c, 0xf9, 0x46, 0x97, 0xb3, 0xc2, 0x7c, 0xd1, 0xfe, 0xa4, 0x9b,
+ 0x27, 0xf2, 0x3b, 0xa2, 0x90, 0x18, 0x71, 0x96, 0x25, 0x06, 0x52, 0x0c,
+ 0x39, 0x2d, 0xa8, 0xb6, 0xad, 0x0d, 0x99, 0xf7, 0x01, 0x3f, 0xbc, 0x06,
+ 0xc2, 0xc1, 0x7a, 0x56, 0x95, 0x00, 0xc8, 0xa7, 0x69, 0x64, 0x81, 0xc1,
+ 0xcd, 0x33, 0xe9, 0xb1, 0x4e, 0x40, 0xb8, 0x2e, 0x79, 0xa5, 0xf5, 0xdb,
+ 0x82, 0x57, 0x1b, 0xa9, 0x7b, 0xae, 0x3a, 0xd3, 0xe0, 0x47, 0x95, 0x15,
+ 0xbb, 0x0e, 0x2b, 0x0f, 0x3b, 0xfc, 0xd1, 0xfd, 0x33, 0x03, 0x4e, 0xfc,
+ 0x62, 0x45, 0xed, 0xdd, 0x7e, 0xe2, 0x08, 0x6d, 0xda, 0xe2, 0x60, 0x0d,
+ 0x8c, 0xa7, 0x3e, 0x21, 0x4e, 0x8c, 0x2b, 0x0b, 0xdb, 0x2b, 0x04, 0x7c,
+ 0x6a, 0x46, 0x4a, 0x56, 0x2e, 0xd7, 0x7b, 0x73, 0xd2, 0xd8, 0x41, 0xc4,
+ 0xb3, 0x49, 0x73, 0x55, 0x12, 0x57, 0x71, 0x3b, 0x75, 0x36, 0x32, 0xef,
+ 0xba, 0x34, 0x81, 0x69, 0xab, 0xc9, 0x0a, 0x68, 0xf4, 0x26, 0x11, 0xa4,
+ 0x01, 0x26, 0xd7, 0xcb, 0x21, 0xb5, 0x86, 0x95, 0x56, 0x81, 0x86, 0xf7,
+ 0xe5, 0x69, 0xd2, 0xff, 0x0f, 0x9e, 0x74, 0x5d, 0x04, 0x87, 0xdd, 0x2e,
+ 0xb9, 0x97, 0xca, 0xfc, 0x5a, 0xbf, 0x9d, 0xd1, 0x02, 0xe6, 0x2f, 0xf6,
+ 0x6c, 0xba, 0x87
+};
+
+static const uint8_t sig9[114] = {
+ 0xe3, 0x01, 0x34, 0x5a, 0x41, 0xa3, 0x9a, 0x4d, 0x72, 0xff, 0xf8, 0xdf,
+ 0x69, 0xc9, 0x80, 0x75, 0xa0, 0xcc, 0x08, 0x2b, 0x80, 0x2f, 0xc9, 0xb2,
+ 0xb6, 0xbc, 0x50, 0x3f, 0x92, 0x6b, 0x65, 0xbd, 0xdf, 0x7f, 0x4c, 0x8f,
+ 0x1c, 0xb4, 0x9f, 0x63, 0x96, 0xaf, 0xc8, 0xa7, 0x0a, 0xbe, 0x6d, 0x8a,
+ 0xef, 0x0d, 0xb4, 0x78, 0xd4, 0xc6, 0xb2, 0x97, 0x00, 0x76, 0xc6, 0xa0,
+ 0x48, 0x4f, 0xe7, 0x6d, 0x76, 0xb3, 0xa9, 0x76, 0x25, 0xd7, 0x9f, 0x1c,
+ 0xe2, 0x40, 0xe7, 0xc5, 0x76, 0x75, 0x0d, 0x29, 0x55, 0x28, 0x28, 0x6f,
+ 0x71, 0x9b, 0x41, 0x3d, 0xe9, 0xad, 0xa3, 0xe8, 0xeb, 0x78, 0xed, 0x57,
+ 0x36, 0x03, 0xce, 0x30, 0xd8, 0xbb, 0x76, 0x17, 0x85, 0xdc, 0x30, 0xdb,
+ 0xc3, 0x20, 0x86, 0x9e, 0x1a, 0x00
+};
+
+/* Prehash Ed448 */
+
+static const uint8_t phprivkey1[57] = {
+ 0x83, 0x3f, 0xe6, 0x24, 0x09, 0x23, 0x7b, 0x9d, 0x62, 0xec, 0x77, 0x58,
+ 0x75, 0x20, 0x91, 0x1e, 0x9a, 0x75, 0x9c, 0xec, 0x1d, 0x19, 0x75, 0x5b,
+ 0x7d, 0xa9, 0x01, 0xb9, 0x6d, 0xca, 0x3d, 0x42, 0xef, 0x78, 0x22, 0xe0,
+ 0xd5, 0x10, 0x41, 0x27, 0xdc, 0x05, 0xd6, 0xdb, 0xef, 0xde, 0x69, 0xe3,
+ 0xab, 0x2c, 0xec, 0x7c, 0x86, 0x7c, 0x6e, 0x2c, 0x49
+};
+
+static const uint8_t phpubkey1[57] = {
+ 0x25, 0x9b, 0x71, 0xc1, 0x9f, 0x83, 0xef, 0x77, 0xa7, 0xab, 0xd2, 0x65,
+ 0x24, 0xcb, 0xdb, 0x31, 0x61, 0xb5, 0x90, 0xa4, 0x8f, 0x7d, 0x17, 0xde,
+ 0x3e, 0xe0, 0xba, 0x9c, 0x52, 0xbe, 0xb7, 0x43, 0xc0, 0x94, 0x28, 0xa1,
+ 0x31, 0xd6, 0xb1, 0xb5, 0x73, 0x03, 0xd9, 0x0d, 0x81, 0x32, 0xc2, 0x76,
+ 0xd5, 0xed, 0x3d, 0x5d, 0x01, 0xc0, 0xf5, 0x38, 0x80
+};
+
+static const uint8_t phmsg1[3] = {
+ 0x61, 0x62, 0x63
+};
+
+static const uint8_t phsig1[114] = {
+ 0x82, 0x2f, 0x69, 0x01, 0xf7, 0x48, 0x0f, 0x3d, 0x5f, 0x56, 0x2c, 0x59,
+ 0x29, 0x94, 0xd9, 0x69, 0x36, 0x02, 0x87, 0x56, 0x14, 0x48, 0x32, 0x56,
+ 0x50, 0x56, 0x00, 0xbb, 0xc2, 0x81, 0xae, 0x38, 0x1f, 0x54, 0xd6, 0xbc,
+ 0xe2, 0xea, 0x91, 0x15, 0x74, 0x93, 0x2f, 0x52, 0xa4, 0xe6, 0xca, 0xdd,
+ 0x78, 0x76, 0x93, 0x75, 0xec, 0x3f, 0xfd, 0x1b, 0x80, 0x1a, 0x0d, 0x9b,
+ 0x3f, 0x40, 0x30, 0xcd, 0x43, 0x39, 0x64, 0xb6, 0x45, 0x7e, 0xa3, 0x94,
+ 0x76, 0x51, 0x12, 0x14, 0xf9, 0x74, 0x69, 0xb5, 0x7d, 0xd3, 0x2d, 0xbc,
+ 0x56, 0x0a, 0x9a, 0x94, 0xd0, 0x0b, 0xff, 0x07, 0x62, 0x04, 0x64, 0xa3,
+ 0xad, 0x20, 0x3d, 0xf7, 0xdc, 0x7c, 0xe3, 0x60, 0xc3, 0xcd, 0x36, 0x96,
+ 0xd9, 0xd9, 0xfa, 0xb9, 0x0f, 0x00
+};
+
+static const uint8_t phprivkey2[57] = {
+ 0x83, 0x3f, 0xe6, 0x24, 0x09, 0x23, 0x7b, 0x9d, 0x62, 0xec, 0x77, 0x58,
+ 0x75, 0x20, 0x91, 0x1e, 0x9a, 0x75, 0x9c, 0xec, 0x1d, 0x19, 0x75, 0x5b,
+ 0x7d, 0xa9, 0x01, 0xb9, 0x6d, 0xca, 0x3d, 0x42, 0xef, 0x78, 0x22, 0xe0,
+ 0xd5, 0x10, 0x41, 0x27, 0xdc, 0x05, 0xd6, 0xdb, 0xef, 0xde, 0x69, 0xe3,
+ 0xab, 0x2c, 0xec, 0x7c, 0x86, 0x7c, 0x6e, 0x2c, 0x49
+};
+
+static const uint8_t phpubkey2[57] = {
+ 0x25, 0x9b, 0x71, 0xc1, 0x9f, 0x83, 0xef, 0x77, 0xa7, 0xab, 0xd2, 0x65,
+ 0x24, 0xcb, 0xdb, 0x31, 0x61, 0xb5, 0x90, 0xa4, 0x8f, 0x7d, 0x17, 0xde,
+ 0x3e, 0xe0, 0xba, 0x9c, 0x52, 0xbe, 0xb7, 0x43, 0xc0, 0x94, 0x28, 0xa1,
+ 0x31, 0xd6, 0xb1, 0xb5, 0x73, 0x03, 0xd9, 0x0d, 0x81, 0x32, 0xc2, 0x76,
+ 0xd5, 0xed, 0x3d, 0x5d, 0x01, 0xc0, 0xf5, 0x38, 0x80
+};
+
+static const uint8_t phmsg2[3] = {
+ 0x61, 0x62, 0x63
+};
+
+static const uint8_t phcontext2[3] = {
+ 0x66, 0x6f, 0x6f
+};
+
+static const uint8_t phsig2[114] = {
+ 0xc3, 0x22, 0x99, 0xd4, 0x6e, 0xc8, 0xff, 0x02, 0xb5, 0x45, 0x40, 0x98,
+ 0x28, 0x14, 0xdc, 0xe9, 0xa0, 0x58, 0x12, 0xf8, 0x19, 0x62, 0xb6, 0x49,
+ 0xd5, 0x28, 0x09, 0x59, 0x16, 0xa2, 0xaa, 0x48, 0x10, 0x65, 0xb1, 0x58,
+ 0x04, 0x23, 0xef, 0x92, 0x7e, 0xcf, 0x0a, 0xf5, 0x88, 0x8f, 0x90, 0xda,
+ 0x0f, 0x6a, 0x9a, 0x85, 0xad, 0x5d, 0xc3, 0xf2, 0x80, 0xd9, 0x12, 0x24,
+ 0xba, 0x99, 0x11, 0xa3, 0x65, 0x3d, 0x00, 0xe4, 0x84, 0xe2, 0xce, 0x23,
+ 0x25, 0x21, 0x48, 0x1c, 0x86, 0x58, 0xdf, 0x30, 0x4b, 0xb7, 0x74, 0x5a,
+ 0x73, 0x51, 0x4c, 0xdb, 0x9b, 0xf3, 0xe1, 0x57, 0x84, 0xab, 0x71, 0x28,
+ 0x4f, 0x8d, 0x07, 0x04, 0xa6, 0x08, 0xc5, 0x4a, 0x6b, 0x62, 0xd9, 0x7b,
+ 0xeb, 0x51, 0x1d, 0x13, 0x21, 0x00
+};
+
+static const uint8_t *dohash(EVP_MD_CTX *hashctx, const uint8_t *msg,
+ size_t msglen)
+{
+ static uint8_t hashout[64];
+
+ if (!EVP_DigestInit_ex(hashctx, EVP_shake256(), NULL)
+ || !EVP_DigestUpdate(hashctx, msg, msglen)
+ || !EVP_DigestFinalXOF(hashctx, hashout, sizeof(hashout)))
+ return NULL;
+
+ return hashout;
+}
+
+static int test_ed448(void)
+{
+ uint8_t outsig[114];
+ EVP_MD_CTX *hashctx = EVP_MD_CTX_new();
+
+ if (!TEST_ptr(hashctx)
+ || !TEST_true(ED448_sign(outsig, NULL, 0, pubkey1, privkey1, NULL,
+ 0))
+ || !TEST_int_eq(memcmp(sig1, outsig, sizeof(sig1)), 0)
+ || !TEST_true(ED448_sign(outsig, msg2, sizeof(msg2), pubkey2,
+ privkey2, NULL, 0))
+ || !TEST_int_eq(memcmp(sig2, outsig, sizeof(sig2)), 0)
+ || !TEST_true(ED448_sign(outsig, msg3, sizeof(msg3), pubkey3,
+ privkey3, context3, sizeof(context3)))
+ || !TEST_int_eq(memcmp(sig3, outsig, sizeof(sig3)), 0)
+ || !TEST_true(ED448_sign(outsig, msg4, sizeof(msg4), pubkey4,
+ privkey4, NULL, 0))
+ || !TEST_int_eq(memcmp(sig4, outsig, sizeof(sig4)), 0)
+ || !TEST_true(ED448_sign(outsig, msg5, sizeof(msg5), pubkey5,
+ privkey5, NULL, 0))
+ || !TEST_int_eq(memcmp(sig5, outsig, sizeof(sig5)), 0)
+ || !TEST_true(ED448_sign(outsig, msg6, sizeof(msg6), pubkey6,
+ privkey6, NULL, 0))
+ || !TEST_int_eq(memcmp(sig6, outsig, sizeof(sig6)), 0)
+ || !TEST_true(ED448_sign(outsig, msg7, sizeof(msg7), pubkey7,
+ privkey7, NULL, 0))
+ || !TEST_int_eq(memcmp(sig7, outsig, sizeof(sig7)), 0)
+ || !TEST_true(ED448_sign(outsig, msg8, sizeof(msg8), pubkey8,
+ privkey8, NULL, 0))
+ || !TEST_int_eq(memcmp(sig8, outsig, sizeof(sig8)), 0)
+ || !TEST_true(ED448_sign(outsig, msg9, sizeof(msg9), pubkey9,
+ privkey9, NULL, 0))
+ || !TEST_int_eq(memcmp(sig9, outsig, sizeof(sig9)), 0)
+ || !TEST_true(ED448ph_sign(outsig, dohash(hashctx, phmsg1,
+ sizeof(phmsg1)), phpubkey1, phprivkey1,
+ NULL, 0))
+ || !TEST_int_eq(memcmp(phsig1, outsig, sizeof(phsig1)), 0)
+ || !TEST_true(ED448ph_sign(outsig, dohash(hashctx, phmsg2,
+ sizeof(phmsg2)), phpubkey2, phprivkey2,
+ phcontext2, sizeof(phcontext2)))
+ || !TEST_int_eq(memcmp(phsig2, outsig, sizeof(phsig2)), 0)) {
+ EVP_MD_CTX_free(hashctx);
+ return 0;
+ }
+
+ EVP_MD_CTX_free(hashctx);
+ return 1;
+}
+
+static int test_x448(void)
+{
+ uint8_t u[56], k[56], out[56];
+ unsigned int i;
+ int j = -1;
+
+ /* Curve448 tests */
+
+ if (!TEST_true(X448(out, in_scalar1, in_u1))
+ || !TEST_int_eq(memcmp(out, out_u1, sizeof(out)), 0)
+ || !TEST_true(X448(out, in_scalar2, in_u2))
+ || !TEST_int_eq(memcmp(out, out_u2, sizeof(out)), 0))
+ return 0;
+
+ memcpy(u, in_u3, sizeof(u));
+ memcpy(k, in_u3, sizeof(k));
+ for (i = 1; i <= max; i++) {
+ if (verbose && i % 10000 == 0) {
+ printf(".");
+ fflush(stdout);
+ }
+
+ if (!TEST_true(X448(out, k, u)))
+ return 0;
+
+ if (i == 1 || i == 1000 || i == 1000000) {
+ j++;
+ if (!TEST_int_eq(memcmp(out, out_u3[j], sizeof(out)), 0)) {
+ TEST_info("Failed at iteration %d", i);
+ return 0;
+ }
+ }
+ memcpy(u, k, sizeof(u));
+ memcpy(k, out, sizeof(k));
+ }
+
+ return 1;
+}
+
+int setup_tests(void)
+{
+ /*
+ * The test vectors contain one test which takes a very long time to run,
+ * so we don't do that be default. Using the -f option will cause it to be
+ * run.
+ */
+ if (test_has_option("-f"))
+ max = 1000000;
+
+ /* Print progress dots */
+ if (test_has_option("-v"))
+ verbose = 1;
+
+ ADD_TEST(test_x448);
+ ADD_TEST(test_ed448);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad-cms.der b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad-cms.der
new file mode 100644
index 000000000..19cd3cc3f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad-cms.der
@@ -0,0 +1 @@
+0 *†H†÷   010 \ No newline at end of file
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad-int-pad0.der b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad-int-pad0.der
new file mode 100644
index 000000000..46f6092a8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad-int-pad0.der
Binary files differ
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad-int-padminus1.der b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad-int-padminus1.der
new file mode 100644
index 000000000..a4b6bb979
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad-int-padminus1.der
@@ -0,0 +1 @@
+ÿÿ \ No newline at end of file
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad_bio.der b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad_bio.der
new file mode 100644
index 000000000..8681f0528
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad_bio.der
Binary files differ
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad_cert.der b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad_cert.der
new file mode 100644
index 000000000..f75efad39
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad_cert.der
Binary files differ
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad_generalname.der b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad_generalname.der
new file mode 100644
index 000000000..af45855c5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/bad_generalname.der
@@ -0,0 +1 @@
+¥€0;¶!;)''ï÷!l¿(,:µ¿(*;©:§«½:“**;i)*w*ë)ã;U:'):ñ;l*!'Ò£ \ No newline at end of file
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/high_tag.der b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/high_tag.der
new file mode 100644
index 000000000..5c523ecde
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/high_tag.der
Binary files differ
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/int0.der b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/int0.der
new file mode 100644
index 000000000..bbfb76b9d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/int0.der
Binary files differ
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/int1.der b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/int1.der
new file mode 100644
index 000000000..26dd6b16d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/int1.der
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/intminus1.der b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/intminus1.der
new file mode 100644
index 000000000..e7c1cea38
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i-tests/intminus1.der
@@ -0,0 +1 @@
+ÿ \ No newline at end of file
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i_test.c
new file mode 100644
index 000000000..afea2dcb9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/d2i_test.c
@@ -0,0 +1,164 @@
+/*
+ * Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/* Regression tests for ASN.1 parsing bugs. */
+
+#include <stdio.h>
+#include <string.h>
+
+#include "testutil.h"
+
+#include <openssl/asn1.h>
+#include <openssl/asn1t.h>
+#include <openssl/bio.h>
+#include <openssl/err.h>
+#include <openssl/x509.h>
+#include <openssl/x509v3.h>
+#include "internal/nelem.h"
+
+static const ASN1_ITEM *item_type;
+static const char *test_file;
+
+typedef enum {
+ ASN1_UNKNOWN,
+ ASN1_OK,
+ ASN1_BIO,
+ ASN1_DECODE,
+ ASN1_ENCODE,
+ ASN1_COMPARE
+} expected_error_t;
+
+typedef struct {
+ const char *str;
+ expected_error_t code;
+} error_enum;
+
+static expected_error_t expected_error = ASN1_UNKNOWN;
+
+static int test_bad_asn1(void)
+{
+ BIO *bio = NULL;
+ ASN1_VALUE *value = NULL;
+ int ret = 0;
+ unsigned char buf[2048];
+ const unsigned char *buf_ptr = buf;
+ unsigned char *der = NULL;
+ int derlen;
+ int len;
+
+ bio = BIO_new_file(test_file, "r");
+ if (!TEST_ptr(bio))
+ return 0;
+
+ if (expected_error == ASN1_BIO) {
+ if (TEST_ptr_null(ASN1_item_d2i_bio(item_type, bio, NULL)))
+ ret = 1;
+ goto err;
+ }
+
+ /*
+ * Unless we are testing it we don't use ASN1_item_d2i_bio because it
+ * performs sanity checks on the input and can reject it before the
+ * decoder is called.
+ */
+ len = BIO_read(bio, buf, sizeof(buf));
+ if (!TEST_int_ge(len, 0))
+ goto err;
+
+ value = ASN1_item_d2i(NULL, &buf_ptr, len, item_type);
+ if (value == NULL) {
+ if (TEST_int_eq(expected_error, ASN1_DECODE))
+ ret = 1;
+ goto err;
+ }
+
+ derlen = ASN1_item_i2d(value, &der, item_type);
+
+ if (der == NULL || derlen < 0) {
+ if (TEST_int_eq(expected_error, ASN1_ENCODE))
+ ret = 1;
+ goto err;
+ }
+
+ if (derlen != len || memcmp(der, buf, derlen) != 0) {
+ if (TEST_int_eq(expected_error, ASN1_COMPARE))
+ ret = 1;
+ goto err;
+ }
+
+ if (TEST_int_eq(expected_error, ASN1_OK))
+ ret = 1;
+
+ err:
+ /* Don't indicate success for memory allocation errors */
+ if (ret == 1
+ && !TEST_false(ERR_GET_REASON(ERR_peek_error()) == ERR_R_MALLOC_FAILURE))
+ ret = 0;
+ BIO_free(bio);
+ OPENSSL_free(der);
+ ASN1_item_free(value, item_type);
+ return ret;
+}
+
+/*
+ * Usage: d2i_test <name> <type> <file>, e.g.
+ * d2i_test generalname bad_generalname.der
+ */
+int setup_tests(void)
+{
+ const char *test_type_name;
+ const char *expected_error_string;
+
+ size_t i;
+
+ static error_enum expected_errors[] = {
+ {"OK", ASN1_OK},
+ {"BIO", ASN1_BIO},
+ {"decode", ASN1_DECODE},
+ {"encode", ASN1_ENCODE},
+ {"compare", ASN1_COMPARE}
+ };
+
+ if (!TEST_ptr(test_type_name = test_get_argument(0))
+ || !TEST_ptr(expected_error_string = test_get_argument(1))
+ || !TEST_ptr(test_file = test_get_argument(2))) {
+ TEST_note("Usage: d2i_test item_name expected_error file.der");
+ return 0;
+ }
+
+ item_type = ASN1_ITEM_lookup(test_type_name);
+
+ if (item_type == NULL) {
+ TEST_error("Unknown type %s", test_type_name);
+ TEST_note("Supported types:");
+ for (i = 0;; i++) {
+ const ASN1_ITEM *it = ASN1_ITEM_get(i);
+
+ if (it == NULL)
+ break;
+ TEST_note("\t%s", it->sname);
+ }
+ return 0;
+ }
+
+ for (i = 0; i < OSSL_NELEM(expected_errors); i++) {
+ if (strcmp(expected_errors[i].str, expected_error_string) == 0) {
+ expected_error = expected_errors[i].code;
+ break;
+ }
+ }
+
+ if (expected_error == ASN1_UNKNOWN) {
+ TEST_error("Unknown expected error %s\n", expected_error_string);
+ return 0;
+ }
+
+ ADD_TEST(test_bad_asn1);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/danetest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/danetest.c
new file mode 100644
index 000000000..54a79ab51
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/danetest.c
@@ -0,0 +1,430 @@
+/*
+ * Copyright 2015-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+#include <limits.h>
+#include <errno.h>
+
+#include <openssl/crypto.h>
+#include <openssl/evp.h>
+#include <openssl/x509.h>
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+#include <openssl/conf.h>
+#ifndef OPENSSL_NO_ENGINE
+#include <openssl/engine.h>
+#endif
+#include "testutil.h"
+
+#include "internal/nelem.h"
+
+#define _UC(c) ((unsigned char)(c))
+
+static const char *basedomain;
+static const char *CAfile;
+static const char *tlsafile;
+
+/*
+ * Forward declaration, of function that uses internal interfaces, from headers
+ * included at the end of this module.
+ */
+static void store_ctx_dane_init(X509_STORE_CTX *, SSL *);
+
+static int saved_errno;
+
+static void save_errno(void)
+{
+ saved_errno = errno;
+}
+
+static int restore_errno(void)
+{
+ int ret = errno;
+ errno = saved_errno;
+ return ret;
+}
+
+static int verify_chain(SSL *ssl, STACK_OF(X509) *chain)
+{
+ X509_STORE_CTX *store_ctx = NULL;
+ SSL_CTX *ssl_ctx = NULL;
+ X509_STORE *store = NULL;
+ X509 *cert = NULL;
+ int ret = 0;
+ int store_ctx_idx = SSL_get_ex_data_X509_STORE_CTX_idx();
+
+ if (!TEST_ptr(store_ctx = X509_STORE_CTX_new())
+ || !TEST_ptr(ssl_ctx = SSL_get_SSL_CTX(ssl))
+ || !TEST_ptr(store = SSL_CTX_get_cert_store(ssl_ctx))
+ || !TEST_ptr(cert = sk_X509_value(chain, 0))
+ || !TEST_true(X509_STORE_CTX_init(store_ctx, store, cert, chain))
+ || !TEST_true(X509_STORE_CTX_set_ex_data(store_ctx, store_ctx_idx,
+ ssl)))
+ goto end;
+
+ X509_STORE_CTX_set_default(store_ctx,
+ SSL_is_server(ssl) ? "ssl_client" : "ssl_server");
+ X509_VERIFY_PARAM_set1(X509_STORE_CTX_get0_param(store_ctx),
+ SSL_get0_param(ssl));
+ store_ctx_dane_init(store_ctx, ssl);
+
+ if (SSL_get_verify_callback(ssl) != NULL)
+ X509_STORE_CTX_set_verify_cb(store_ctx, SSL_get_verify_callback(ssl));
+
+ /* Mask "internal failures" (-1) from our return value. */
+ if (!TEST_int_ge(ret = X509_verify_cert(store_ctx), 0))
+ ret = 0;
+
+ SSL_set_verify_result(ssl, X509_STORE_CTX_get_error(store_ctx));
+ X509_STORE_CTX_cleanup(store_ctx);
+
+end:
+ X509_STORE_CTX_free(store_ctx);
+ return ret;
+}
+
+static STACK_OF(X509) *load_chain(BIO *fp, int nelem)
+{
+ int count;
+ char *name = 0;
+ char *header = 0;
+ unsigned char *data = 0;
+ long len;
+ char *errtype = 0; /* if error: cert or pkey? */
+ STACK_OF(X509) *chain;
+ typedef X509 *(*d2i_X509_t)(X509 **, const unsigned char **, long);
+
+ if (!TEST_ptr(chain = sk_X509_new_null()))
+ goto err;
+
+ for (count = 0;
+ count < nelem && errtype == 0
+ && PEM_read_bio(fp, &name, &header, &data, &len) == 1;
+ ++count) {
+ if (strcmp(name, PEM_STRING_X509) == 0
+ || strcmp(name, PEM_STRING_X509_TRUSTED) == 0
+ || strcmp(name, PEM_STRING_X509_OLD) == 0) {
+ d2i_X509_t d = strcmp(name, PEM_STRING_X509_TRUSTED) != 0
+ ? d2i_X509_AUX : d2i_X509;
+ X509 *cert;
+ const unsigned char *p = data;
+
+ if (!TEST_ptr(cert = d(0, &p, len))
+ || !TEST_long_eq(p - data, len)) {
+ TEST_info("Certificate parsing error");
+ goto err;
+ }
+
+ if (!TEST_true(sk_X509_push(chain, cert)))
+ goto err;
+ } else {
+ TEST_info("Unknown chain file object %s", name);
+ goto err;
+ }
+
+ OPENSSL_free(name);
+ OPENSSL_free(header);
+ OPENSSL_free(data);
+ name = header = NULL;
+ data = NULL;
+ }
+
+ if (count == nelem) {
+ ERR_clear_error();
+ return chain;
+ }
+
+err:
+ OPENSSL_free(name);
+ OPENSSL_free(header);
+ OPENSSL_free(data);
+ sk_X509_pop_free(chain, X509_free);
+ return NULL;
+}
+
+static char *read_to_eol(BIO *f)
+{
+ static char buf[1024];
+ int n;
+
+ if (!BIO_gets(f, buf, sizeof(buf)))
+ return NULL;
+
+ n = strlen(buf);
+ if (buf[n - 1] != '\n') {
+ if (n + 1 == sizeof(buf))
+ TEST_error("input too long");
+ else
+ TEST_error("EOF before newline");
+ return NULL;
+ }
+
+ /* Trim trailing whitespace */
+ while (n > 0 && isspace(_UC(buf[n - 1])))
+ buf[--n] = '\0';
+
+ return buf;
+}
+
+/*
+ * Hex decoder that tolerates optional whitespace
+ */
+static ossl_ssize_t hexdecode(const char *in, void *result)
+{
+ unsigned char **out = (unsigned char **)result;
+ unsigned char *ret;
+ unsigned char *cp;
+ uint8_t byte;
+ int nibble = 0;
+
+ if (!TEST_ptr(ret = OPENSSL_malloc(strlen(in) / 2)))
+ return -1;
+ cp = ret;
+
+ for (byte = 0; *in; ++in) {
+ int x;
+
+ if (isspace(_UC(*in)))
+ continue;
+ x = OPENSSL_hexchar2int(*in);
+ if (x < 0) {
+ OPENSSL_free(ret);
+ return 0;
+ }
+ byte |= (char)x;
+ if ((nibble ^= 1) == 0) {
+ *cp++ = byte;
+ byte = 0;
+ } else {
+ byte <<= 4;
+ }
+ }
+ if (nibble != 0) {
+ OPENSSL_free(ret);
+ return 0;
+ }
+
+ return cp - (*out = ret);
+}
+
+static ossl_ssize_t checked_uint8(const char *in, void *out)
+{
+ uint8_t *result = (uint8_t *)out;
+ const char *cp = in;
+ char *endp;
+ long v;
+ int e;
+
+ save_errno();
+ v = strtol(cp, &endp, 10);
+ e = restore_errno();
+
+ if (((v == LONG_MIN || v == LONG_MAX) && e == ERANGE) ||
+ endp == cp || !isspace(_UC(*endp)) ||
+ v != (*(uint8_t *)result = (uint8_t) v)) {
+ return -1;
+ }
+ for (cp = endp; isspace(_UC(*cp)); ++cp)
+ continue;
+ return cp - in;
+}
+
+struct tlsa_field {
+ void *var;
+ const char *name;
+ ossl_ssize_t (*parser)(const char *, void *);
+};
+
+static int tlsa_import_rr(SSL *ssl, const char *rrdata)
+{
+ static uint8_t usage;
+ static uint8_t selector;
+ static uint8_t mtype;
+ static unsigned char *data = NULL;
+ static struct tlsa_field tlsa_fields[] = {
+ { &usage, "usage", checked_uint8 },
+ { &selector, "selector", checked_uint8 },
+ { &mtype, "mtype", checked_uint8 },
+ { &data, "data", hexdecode },
+ { NULL, }
+ };
+ int ret;
+ struct tlsa_field *f;
+ const char *cp = rrdata;
+ ossl_ssize_t len = 0;
+
+ for (f = tlsa_fields; f->var; ++f) {
+ if ((len = f->parser(cp += len, f->var)) <= 0) {
+ TEST_info("bad TLSA %s field in: %s", f->name, rrdata);
+ return 0;
+ }
+ }
+
+ ret = SSL_dane_tlsa_add(ssl, usage, selector, mtype, data, len);
+ OPENSSL_free(data);
+ if (ret == 0) {
+ TEST_info("unusable TLSA rrdata: %s", rrdata);
+ return 0;
+ }
+ if (ret < 0) {
+ TEST_info("error loading TLSA rrdata: %s", rrdata);
+ return 0;
+ }
+
+ return ret;
+}
+
+static int allws(const char *cp)
+{
+ while (*cp)
+ if (!isspace(_UC(*cp++)))
+ return 0;
+ return 1;
+}
+
+static int test_tlsafile(SSL_CTX *ctx, const char *base_name,
+ BIO *f, const char *path)
+{
+ char *line;
+ int testno = 0;
+ int ret = 1;
+ SSL *ssl;
+
+ while (ret > 0 && (line = read_to_eol(f)) != NULL) {
+ STACK_OF(X509) *chain;
+ int ntlsa;
+ int ncert;
+ int noncheck;
+ int want;
+ int want_depth;
+ int off;
+ int i;
+ int ok;
+ int err;
+ int mdpth;
+
+ if (*line == '\0' || *line == '#')
+ continue;
+
+ ++testno;
+ if (sscanf(line, "%d %d %d %d %d%n",
+ &ntlsa, &ncert, &noncheck, &want, &want_depth, &off) != 5
+ || !allws(line + off)) {
+ TEST_error("Malformed line for test %d", testno);
+ return 0;
+ }
+
+ if (!TEST_ptr(ssl = SSL_new(ctx)))
+ return 0;
+ SSL_set_connect_state(ssl);
+ if (SSL_dane_enable(ssl, base_name) <= 0) {
+ SSL_free(ssl);
+ return 0;
+ }
+ if (noncheck)
+ SSL_dane_set_flags(ssl, DANE_FLAG_NO_DANE_EE_NAMECHECKS);
+
+ for (i = 0; i < ntlsa; ++i) {
+ if ((line = read_to_eol(f)) == NULL || !tlsa_import_rr(ssl, line)) {
+ SSL_free(ssl);
+ return 0;
+ }
+ }
+
+ /* Don't report old news */
+ ERR_clear_error();
+ if (!TEST_ptr(chain = load_chain(f, ncert))) {
+ SSL_free(ssl);
+ return 0;
+ }
+
+ ok = verify_chain(ssl, chain);
+ sk_X509_pop_free(chain, X509_free);
+ err = SSL_get_verify_result(ssl);
+ /*
+ * Peek under the hood, normally TLSA match data is hidden when
+ * verification fails, we can obtain any suppressed data by setting the
+ * verification result to X509_V_OK before looking.
+ */
+ SSL_set_verify_result(ssl, X509_V_OK);
+ mdpth = SSL_get0_dane_authority(ssl, NULL, NULL);
+ /* Not needed any more, but lead by example and put the error back. */
+ SSL_set_verify_result(ssl, err);
+ SSL_free(ssl);
+
+ if (!TEST_int_eq(err, want)) {
+ if (want == X509_V_OK)
+ TEST_info("Verification failure in test %d: %d=%s",
+ testno, err, X509_verify_cert_error_string(err));
+ else
+ TEST_info("Unexpected error in test %d", testno);
+ ret = 0;
+ continue;
+ }
+ if (!TEST_false(want == 0 && ok == 0)) {
+ TEST_info("Verification failure in test %d: ok=0", testno);
+ ret = 0;
+ continue;
+ }
+ if (!TEST_int_eq(mdpth, want_depth)) {
+ TEST_info("In test test %d", testno);
+ ret = 0;
+ }
+ }
+ ERR_clear_error();
+
+ return ret;
+}
+
+static int run_tlsatest(void)
+{
+ SSL_CTX *ctx = NULL;
+ BIO *f = NULL;
+ int ret = 0;
+
+ if (!TEST_ptr(f = BIO_new_file(tlsafile, "r"))
+ || !TEST_ptr(ctx = SSL_CTX_new(TLS_client_method()))
+ || !TEST_int_gt(SSL_CTX_dane_enable(ctx), 0)
+ || !TEST_true(SSL_CTX_load_verify_locations(ctx, CAfile, NULL))
+ || !TEST_int_gt(SSL_CTX_dane_mtype_set(ctx, EVP_sha512(), 2, 1),
+ 0)
+ || !TEST_int_gt(SSL_CTX_dane_mtype_set(ctx, EVP_sha256(), 1, 2),
+ 0)
+ || !TEST_int_gt(test_tlsafile(ctx, basedomain, f, tlsafile), 0))
+ goto end;
+ ret = 1;
+
+end:
+ BIO_free(f);
+ SSL_CTX_free(ctx);
+
+ return ret;
+}
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(basedomain = test_get_argument(0))
+ || !TEST_ptr(CAfile = test_get_argument(1))
+ || !TEST_ptr(tlsafile = test_get_argument(2))) {
+ TEST_error("Usage error: danetest basedomain CAfile tlsafile");
+ return 0;
+ }
+
+ ADD_TEST(run_tlsatest);
+ return 1;
+}
+
+#include "internal/dane.h"
+
+static void store_ctx_dane_init(X509_STORE_CTX *store_ctx, SSL *ssl)
+{
+ X509_STORE_CTX_set0_dane(store_ctx, SSL_get0_dane(ssl));
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/danetest.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/danetest.in
new file mode 100644
index 000000000..0cedf10a2
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/danetest.in
@@ -0,0 +1,1878 @@
+# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+#
+# Blank and comment lines ignored.
+#
+# The first line in each block takes the form:
+#
+# <TLSA-count> <cert-count> <nonamechecks> <desired-verify-result> <desired-match-depth>
+#
+# It is followed by <TLSA-count> lines of the form:
+#
+# <usage> <selector> <mtype> <hex-data>
+#
+# and finally, by <cert-count> certificates.
+
+# Test chain matching TLSA records
+# --
+# subject= CN = example.com
+# 3 0 0 308201943082013BA003020102020102300A06082A8648CE3D04030230143112301006035504030C094973737565722043413020170D3135313231333233323335325A180F33303135303431353233323335325A30163114301206035504030C0B6578616D706C652E636F6D3059301306072A8648CE3D020106082A8648CE3D03010703420004664995F47BDE35E7B4DE48B258E9E8A07ADEBBDB863B3D06F481A1946C83DA9F56CFF4D9389B855D2F364B1585B0C734FCFA263026964FF5A4308B3FC879BDB8A37A3078301D0603551D0E041604145B20CA417D9088C7A4C017CB6C0C1C739BB07D8A301F0603551D230418301680147AB75A3CD295CA5DF7C5150916E18FF5CC376A1530090603551D130402300030130603551D25040C300A06082B0601050507030130160603551D11040F300D820B6578616D706C652E636F6D300A06082A8648CE3D0403020347003044021F21C9032A5C8A93872D3F4AEF321A9574DD956D43BD93C369944C72D6902858022100C8B3290D7AF37E571A84D704DBAD339D2987D41852DC5936F212947063911181
+# 3 0 1 BEDC04764CECAE80AEE454D332758F50847DCA424216466E4012E0DEAE1F2E5F
+# 3 0 2 F756CCD61F3CA50D017653911701CA0052AF0B29E273DD263DD23643D86D4369D03686BD1369EF54BB2DC2DAE3CE4F05AF39D54648F94D54AA86B259AEAD9923
+# 3 1 0 3059301306072A8648CE3D020106082A8648CE3D03010703420004664995F47BDE35E7B4DE48B258E9E8A07ADEBBDB863B3D06F481A1946C83DA9F56CFF4D9389B855D2F364B1585B0C734FCFA263026964FF5A4308B3FC879BDB8
+# 3 1 1 3111668338043DE264D0256A702248696C9484B6221A42740F920187B4C61838
+# 3 1 2 CB861AF6DDED185EE04472A9092052CCC735120C34785E72C996C94B122EBA6F329BE630B1B4C6E2756E7A75392C21E253C6AEACC31FD45FF4595DED375FAF62
+# --
+# subject= CN = Issuer CA
+# 2 0 0 308201683082010DA003020102020102300A06082A8648CE3D04030230123110300E06035504030C07526F6F742043413020170D3135313231333233323030395A180F33303135303431353233323030395A30143112301006035504030C094973737565722043413059301306072A8648CE3D020106082A8648CE3D030107034200047D4BAE18B49F5DC69D0A3C85C66A3E2119DE92CFAD081FAD55C12D510EC97B6C00E13695A8D9713548FE60DF15573390433E2A1BD92DB4B7AA016EC6185DC5AFA350304E301D0603551D0E041604147AB75A3CD295CA5DF7C5150916E18FF5CC376A15301F0603551D23041830168014E4BD405F052A820DDF9883F93D7D3F90AAEC723F300C0603551D13040530030101FF300A06082A8648CE3D0403020349003046022100831DCD882DA8785D50E41020898C0248879DDDF72D701D1DC1DE6BE08155B43E022100B84B2FB519C4CD3CBC791603D4488F7707597DB7980D9C173E7FDD0ECD7CA308
+# 2 0 1 0DAA76425A1FC398C55A643D5A2485AE4CC2B64B9515A75054722B2E83C31BBD
+# 2 0 2 6BC0C0F2500320A49392910965263A3EBDD594173D3E36CCE38A003D2EC3FAFBC315EDB776CD3139637DF494FB60359601542A4F821BF0542F926E6270C9762C
+# 2 1 0 3059301306072A8648CE3D020106082A8648CE3D030107034200047D4BAE18B49F5DC69D0A3C85C66A3E2119DE92CFAD081FAD55C12D510EC97B6C00E13695A8D9713548FE60DF15573390433E2A1BD92DB4B7AA016EC6185DC5AF
+# 2 1 1 65A457617072DA3E7F1152471EB3D406526530097D0A9AA34EB47C990A1FCDA3
+# 2 1 2 1F484106F765B6F1AC483CC509CDAD36486A83D1BA115F562516F407C1109303658408B455824DA0785A252B205DBEECB1AFB5DB869E8AAC242091B63F258F05
+# --
+# subject= CN = Root CA
+# 2 0 0 308201643082010BA003020102020101300A06082A8648CE3D04030230123110300E06035504030C07526F6F742043413020170D3135313231333233313330385A180F33303135303431353233313330385A30123110300E06035504030C07526F6F742043413059301306072A8648CE3D020106082A8648CE3D03010703420004D1DA578FD18FB86456B0D91B5656BDD68D4DDBD250E337571127C75E0560F41D0AF91BFAF8805F80C28C026A14D4FE8C30A9673B9EC0C05A84AA810D1341B76CA350304E301D0603551D0E04160414E4BD405F052A820DDF9883F93D7D3F90AAEC723F301F0603551D23041830168014E4BD405F052A820DDF9883F93D7D3F90AAEC723F300C0603551D13040530030101FF300A06082A8648CE3D040302034700304402206869E6AA9F9B4D4BF308091A5A7AB2C30E3619B0D75E528819468E4BB926F4C9022017F1B8458611966FBC109CAED3582966BF25FC0598EABA6C793C58DCC3537CC5
+# 2 0 1 FE7C8E01110627A782765E468D8CB4D2CC7907EAC4BA5974CD92B540ED2AAC3C
+# 2 0 2 361029F20A3B59DAFAAF05D41811EFC1A9439B972BC6B9D7F13BC5469570E49ACAE0CB0C877C75D58346590EA950AC7A39AED6E8AA8004EA7F5DE3AB9462047E
+# 2 1 0 3059301306072A8648CE3D020106082A8648CE3D03010703420004D1DA578FD18FB86456B0D91B5656BDD68D4DDBD250E337571127C75E0560F41D0AF91BFAF8805F80C28C026A14D4FE8C30A9673B9EC0C05A84AA810D1341B76C
+# 2 1 1 91D942E4A2D4226DDAF28CADAA7F13018E4ED0D9A43A529247E51C965188576C
+# 2 1 2 5F414D4D7BFDF22E39952D9F46C51370FDD050F10C55B4CDB42E40FA98611FDE23EEE9B23315EE1ECDB198C7419E9A2D6742860E4806AF45164507799C3B452E
+
+# Renumber:
+# << 'EOF' perl -pe 'BEGIN {$t = 0; $/="\n\n"} if (s/\A\s*# \d+\s*?\n//sm) {printf "# %d\n", ++$t}'
+
+## -- Anonymous and "never valid" leaf certificate DANE-EE(3) tests
+
+# 1
+1 1 1 0 0
+3 0 1 588FD5F414E3327EAFE3169DC040AE161247D1296BF38304AB9CF464850A1365
+subject=
+issuer=
+notBefore=Dec 14 00:10:34 2015 GMT
+notAfter=Dec 13 00:10:34 2015 GMT
+-----BEGIN CERTIFICATE-----
+MIHsMIGToAMCAQICAQEwCgYIKoZIzj0EAwIwADAeFw0xNTEyMTQwMDEwMzRaFw0x
+NTEyMTMwMDEwMzRaMAAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATFpP+gCO68
+A2m5dHmflHnLRzYFRPr8AsQgT7PfMeiKGk8YyFgx6T+YXFsjEJRUG0MWtcscnAyV
+CIb+EUPzn2EJMAoGCCqGSM49BAMCA0gAMEUCIGrnt6hw3yEIHpqYlgIKr4VgmEh1
+yBKzbWcWMavIefhyAiEAsIia0rOBTuZL3dWn9qmN6kPLQ1BJRpy1CkQEy97uH9Y=
+-----END CERTIFICATE-----
+
+# 2
+1 1 1 0 0
+3 1 1 05C66146D7909EAE2379825F6D0F5284146B79598DA12E403DC29C33147CF33E
+subject=
+issuer=
+notBefore=Dec 14 00:10:34 2015 GMT
+notAfter=Dec 13 00:10:34 2015 GMT
+-----BEGIN CERTIFICATE-----
+MIHsMIGToAMCAQICAQEwCgYIKoZIzj0EAwIwADAeFw0xNTEyMTQwMDEwMzRaFw0x
+NTEyMTMwMDEwMzRaMAAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATFpP+gCO68
+A2m5dHmflHnLRzYFRPr8AsQgT7PfMeiKGk8YyFgx6T+YXFsjEJRUG0MWtcscnAyV
+CIb+EUPzn2EJMAoGCCqGSM49BAMCA0gAMEUCIGrnt6hw3yEIHpqYlgIKr4VgmEh1
+yBKzbWcWMavIefhyAiEAsIia0rOBTuZL3dWn9qmN6kPLQ1BJRpy1CkQEy97uH9Y=
+-----END CERTIFICATE-----
+
+# 3
+1 1 1 0 0
+3 0 2 42BEE929852C8063A0D619B53D0DD35703BBAD2FC25F2055F737C7A14DDFEA544491F8C00F50FA083BD0AD1B5C98529994FF811BBA5E5170CC6EE9F3ED5563E1
+subject=
+issuer=
+notBefore=Dec 14 00:10:34 2015 GMT
+notAfter=Dec 13 00:10:34 2015 GMT
+-----BEGIN CERTIFICATE-----
+MIHsMIGToAMCAQICAQEwCgYIKoZIzj0EAwIwADAeFw0xNTEyMTQwMDEwMzRaFw0x
+NTEyMTMwMDEwMzRaMAAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATFpP+gCO68
+A2m5dHmflHnLRzYFRPr8AsQgT7PfMeiKGk8YyFgx6T+YXFsjEJRUG0MWtcscnAyV
+CIb+EUPzn2EJMAoGCCqGSM49BAMCA0gAMEUCIGrnt6hw3yEIHpqYlgIKr4VgmEh1
+yBKzbWcWMavIefhyAiEAsIia0rOBTuZL3dWn9qmN6kPLQ1BJRpy1CkQEy97uH9Y=
+-----END CERTIFICATE-----
+
+# 4
+1 1 1 0 0
+3 1 2 D91A3E5DC34879CD77AD1E989F56FA78FACADF05EF8D445EDF5652BD58EE392C87C02F84C0119D62309041F2D5128A73399DF25D1F47BCD497357EAF1A1009A3
+subject=
+issuer=
+notBefore=Dec 14 00:10:34 2015 GMT
+notAfter=Dec 13 00:10:34 2015 GMT
+-----BEGIN CERTIFICATE-----
+MIHsMIGToAMCAQICAQEwCgYIKoZIzj0EAwIwADAeFw0xNTEyMTQwMDEwMzRaFw0x
+NTEyMTMwMDEwMzRaMAAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATFpP+gCO68
+A2m5dHmflHnLRzYFRPr8AsQgT7PfMeiKGk8YyFgx6T+YXFsjEJRUG0MWtcscnAyV
+CIb+EUPzn2EJMAoGCCqGSM49BAMCA0gAMEUCIGrnt6hw3yEIHpqYlgIKr4VgmEh1
+yBKzbWcWMavIefhyAiEAsIia0rOBTuZL3dWn9qmN6kPLQ1BJRpy1CkQEy97uH9Y=
+-----END CERTIFICATE-----
+
+# 5
+1 1 1 65 -1
+3 0 1 588FD5F414E3327EAFE3169DC040AE161247D1296BF38304AB9CF464850A1366
+subject=
+issuer=
+notBefore=Dec 14 00:10:34 2015 GMT
+notAfter=Dec 13 00:10:34 2015 GMT
+-----BEGIN CERTIFICATE-----
+MIHsMIGToAMCAQICAQEwCgYIKoZIzj0EAwIwADAeFw0xNTEyMTQwMDEwMzRaFw0x
+NTEyMTMwMDEwMzRaMAAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATFpP+gCO68
+A2m5dHmflHnLRzYFRPr8AsQgT7PfMeiKGk8YyFgx6T+YXFsjEJRUG0MWtcscnAyV
+CIb+EUPzn2EJMAoGCCqGSM49BAMCA0gAMEUCIGrnt6hw3yEIHpqYlgIKr4VgmEh1
+yBKzbWcWMavIefhyAiEAsIia0rOBTuZL3dWn9qmN6kPLQ1BJRpy1CkQEy97uH9Y=
+-----END CERTIFICATE-----
+
+# 6
+1 1 1 65 -1
+3 1 1 05C66146D7909EAE2379825F6D0F5284146B79598DA12E403DC29C33147CF33F
+subject=
+issuer=
+notBefore=Dec 14 00:10:34 2015 GMT
+notAfter=Dec 13 00:10:34 2015 GMT
+-----BEGIN CERTIFICATE-----
+MIHsMIGToAMCAQICAQEwCgYIKoZIzj0EAwIwADAeFw0xNTEyMTQwMDEwMzRaFw0x
+NTEyMTMwMDEwMzRaMAAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATFpP+gCO68
+A2m5dHmflHnLRzYFRPr8AsQgT7PfMeiKGk8YyFgx6T+YXFsjEJRUG0MWtcscnAyV
+CIb+EUPzn2EJMAoGCCqGSM49BAMCA0gAMEUCIGrnt6hw3yEIHpqYlgIKr4VgmEh1
+yBKzbWcWMavIefhyAiEAsIia0rOBTuZL3dWn9qmN6kPLQ1BJRpy1CkQEy97uH9Y=
+-----END CERTIFICATE-----
+
+# 7
+1 1 1 65 -1
+3 0 2 42BEE929852C8063A0D619B53D0DD35703BBAD2FC25F2055F737C7A14DDFEA544491F8C00F50FA083BD0AD1B5C98529994FF811BBA5E5170CC6EE9F3ED5563E2
+subject=
+issuer=
+notBefore=Dec 14 00:10:34 2015 GMT
+notAfter=Dec 13 00:10:34 2015 GMT
+-----BEGIN CERTIFICATE-----
+MIHsMIGToAMCAQICAQEwCgYIKoZIzj0EAwIwADAeFw0xNTEyMTQwMDEwMzRaFw0x
+NTEyMTMwMDEwMzRaMAAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATFpP+gCO68
+A2m5dHmflHnLRzYFRPr8AsQgT7PfMeiKGk8YyFgx6T+YXFsjEJRUG0MWtcscnAyV
+CIb+EUPzn2EJMAoGCCqGSM49BAMCA0gAMEUCIGrnt6hw3yEIHpqYlgIKr4VgmEh1
+yBKzbWcWMavIefhyAiEAsIia0rOBTuZL3dWn9qmN6kPLQ1BJRpy1CkQEy97uH9Y=
+-----END CERTIFICATE-----
+
+# 8
+1 1 1 65 -1
+3 1 2 D91A3E5DC34879CD77AD1E989F56FA78FACADF05EF8D445EDF5652BD58EE392C87C02F84C0119D62309041F2D5128A73399DF25D1F47BCD497357EAF1A1009A4
+subject=
+issuer=
+notBefore=Dec 14 00:10:34 2015 GMT
+notAfter=Dec 13 00:10:34 2015 GMT
+-----BEGIN CERTIFICATE-----
+MIHsMIGToAMCAQICAQEwCgYIKoZIzj0EAwIwADAeFw0xNTEyMTQwMDEwMzRaFw0x
+NTEyMTMwMDEwMzRaMAAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATFpP+gCO68
+A2m5dHmflHnLRzYFRPr8AsQgT7PfMeiKGk8YyFgx6T+YXFsjEJRUG0MWtcscnAyV
+CIb+EUPzn2EJMAoGCCqGSM49BAMCA0gAMEUCIGrnt6hw3yEIHpqYlgIKr4VgmEh1
+yBKzbWcWMavIefhyAiEAsIia0rOBTuZL3dWn9qmN6kPLQ1BJRpy1CkQEy97uH9Y=
+-----END CERTIFICATE-----
+
+## -- DANE-?? chain tests --
+
+# 9
+1 3 0 0 0
+3 0 1 BEDC04764CECAE80AEE454D332758F50847DCA424216466E4012E0DEAE1F2E5F
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 10
+1 3 0 0 0
+3 1 1 3111668338043DE264D0256A702248696C9484B6221A42740F920187B4C61838
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 11
+1 3 0 0 0
+3 0 2 F756CCD61F3CA50D017653911701CA0052AF0B29E273DD263DD23643D86D4369D03686BD1369EF54BB2DC2DAE3CE4F05AF39D54648F94D54AA86B259AEAD9923
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 12
+1 3 0 0 0
+3 1 2 CB861AF6DDED185EE04472A9092052CCC735120C34785E72C996C94B122EBA6F329BE630B1B4C6E2756E7A75392C21E253C6AEACC31FD45FF4595DED375FAF62
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 13
+1 3 0 0 1
+2 0 1 0DAA76425A1FC398C55A643D5A2485AE4CC2B64B9515A75054722B2E83C31BBD
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 14
+1 3 0 0 1
+2 1 1 65A457617072DA3E7F1152471EB3D406526530097D0A9AA34EB47C990A1FCDA3
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 15
+1 3 0 0 1
+2 0 2 6BC0C0F2500320A49392910965263A3EBDD594173D3E36CCE38A003D2EC3FAFBC315EDB776CD3139637DF494FB60359601542A4F821BF0542F926E6270C9762C
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 16
+1 3 0 0 1
+2 1 2 1F484106F765B6F1AC483CC509CDAD36486A83D1BA115F562516F407C1109303658408B455824DA0785A252B205DBEECB1AFB5DB869E8AAC242091B63F258F05
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 17
+1 3 0 0 2
+2 0 1 FE7C8E01110627A782765E468D8CB4D2CC7907EAC4BA5974CD92B540ED2AAC3C
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 18
+1 3 0 0 2
+2 1 1 91D942E4A2D4226DDAF28CADAA7F13018E4ED0D9A43A529247E51C965188576C
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 19
+1 3 0 0 2
+2 0 2 361029F20A3B59DAFAAF05D41811EFC1A9439B972BC6B9D7F13BC5469570E49ACAE0CB0C877C75D58346590EA950AC7A39AED6E8AA8004EA7F5DE3AB9462047E
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 20
+1 3 0 0 2
+2 1 2 5F414D4D7BFDF22E39952D9F46C51370FDD050F10C55B4CDB42E40FA98611FDE23EEE9B23315EE1ECDB198C7419E9A2D6742860E4806AF45164507799C3B452E
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+## -- PKIX-?? chain tests --
+
+# 21
+1 2 0 0 0
+1 0 1 BEDC04764CECAE80AEE454D332758F50847DCA424216466E4012E0DEAE1F2E5F
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+
+# 22
+1 2 0 0 0
+1 1 1 3111668338043DE264D0256A702248696C9484B6221A42740F920187B4C61838
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+
+# 23
+1 3 0 0 0
+1 0 2 F756CCD61F3CA50D017653911701CA0052AF0B29E273DD263DD23643D86D4369D03686BD1369EF54BB2DC2DAE3CE4F05AF39D54648F94D54AA86B259AEAD9923
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 24
+1 3 0 0 0
+1 1 2 CB861AF6DDED185EE04472A9092052CCC735120C34785E72C996C94B122EBA6F329BE630B1B4C6E2756E7A75392C21E253C6AEACC31FD45FF4595DED375FAF62
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 25
+1 2 0 0 1
+0 0 1 0DAA76425A1FC398C55A643D5A2485AE4CC2B64B9515A75054722B2E83C31BBD
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+
+# 26
+1 2 0 0 1
+0 1 1 65A457617072DA3E7F1152471EB3D406526530097D0A9AA34EB47C990A1FCDA3
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+
+# 27
+1 3 0 0 1
+0 0 2 6BC0C0F2500320A49392910965263A3EBDD594173D3E36CCE38A003D2EC3FAFBC315EDB776CD3139637DF494FB60359601542A4F821BF0542F926E6270C9762C
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 28
+1 3 0 0 1
+0 1 2 1F484106F765B6F1AC483CC509CDAD36486A83D1BA115F562516F407C1109303658408B455824DA0785A252B205DBEECB1AFB5DB869E8AAC242091B63F258F05
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 29
+1 2 0 0 2
+0 0 1 FE7C8E01110627A782765E468D8CB4D2CC7907EAC4BA5974CD92B540ED2AAC3C
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+
+# 30
+1 2 0 0 2
+0 1 1 91D942E4A2D4226DDAF28CADAA7F13018E4ED0D9A43A529247E51C965188576C
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+
+# 31
+1 3 0 0 2
+0 0 2 361029F20A3B59DAFAAF05D41811EFC1A9439B972BC6B9D7F13BC5469570E49ACAE0CB0C877C75D58346590EA950AC7A39AED6E8AA8004EA7F5DE3AB9462047E
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 32
+1 3 0 0 2
+0 1 2 5F414D4D7BFDF22E39952D9F46C51370FDD050F10C55B4CDB42E40FA98611FDE23EEE9B23315EE1ECDB198C7419E9A2D6742860E4806AF45164507799C3B452E
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+## -- PKIX-?? chain failures --
+
+# 33
+# Missing intermediate CA
+1 1 0 20 0
+1 0 1 BEDC04764CECAE80AEE454D332758F50847DCA424216466E4012E0DEAE1F2E5F
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+
+# 34
+# Missing PKIX intermediate, provided via DNS
+2 1 0 0 0
+1 1 1 3111668338043DE264D0256A702248696C9484B6221A42740F920187B4C61838
+0 0 0 308201683082010DA003020102020102300A06082A8648CE3D04030230123110300E06035504030C07526F6F742043413020170D3135313231333233323030395A180F33303135303431353233323030395A30143112301006035504030C094973737565722043413059301306072A8648CE3D020106082A8648CE3D030107034200047D4BAE18B49F5DC69D0A3C85C66A3E2119DE92CFAD081FAD55C12D510EC97B6C00E13695A8D9713548FE60DF15573390433E2A1BD92DB4B7AA016EC6185DC5AFA350304E301D0603551D0E041604147AB75A3CD295CA5DF7C5150916E18FF5CC376A15301F0603551D23041830168014E4BD405F052A820DDF9883F93D7D3F90AAEC723F300C0603551D13040530030101FF300A06082A8648CE3D0403020349003046022100831DCD882DA8785D50E41020898C0248879DDDF72D701D1DC1DE6BE08155B43E022100B84B2FB519C4CD3CBC791603D4488F7707597DB7980D9C173E7FDD0ECD7CA308
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+
+# 35
+# Wrong leaf digest
+1 3 0 65 -1
+1 0 2 F756CCD61F3CA50D017653911701CA0052AF0B29E273DD263DD23643D86D4369D03686BD1369EF54BB2DC2DAE3CE4F05AF39D54648F94D54AA86B259AEAD9924
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 36
+# Wrong intermediate digest
+1 2 0 65 -1
+0 0 1 0DAA76425A1FC398C55A643D5A2485AE4CC2B64B9515A75054722B2E83C31BBE
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+
+# 37
+# Wrong root digest
+1 2 0 65 -1
+0 0 1 FE7C8E01110627A782765E468D8CB4D2CC7907EAC4BA5974CD92B540ED2AAC3D
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+
+## -- Mixed usage cases
+
+# 38
+# DANE-EE(3) beats DANE-TA(2)
+1 3 0 0 0
+3 1 2 CB861AF6DDED185EE04472A9092052CCC735120C34785E72C996C94B122EBA6F329BE630B1B4C6E2756E7A75392C21E253C6AEACC31FD45FF4595DED375FAF62
+2 1 2 5F414D4D7BFDF22E39952D9F46C51370FDD050F10C55B4CDB42E40FA98611FDE23EEE9B23315EE1ECDB198C7419E9A2D6742860E4806AF45164507799C3B452E
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 39
+# DANE-TA(2) depth 1 beats DANE-TA(2) depth 2
+1 3 0 0 1
+2 1 2 1F484106F765B6F1AC483CC509CDAD36486A83D1BA115F562516F407C1109303658408B455824DA0785A252B205DBEECB1AFB5DB869E8AAC242091B63F258F05
+2 1 2 5F414D4D7BFDF22E39952D9F46C51370FDD050F10C55B4CDB42E40FA98611FDE23EEE9B23315EE1ECDB198C7419E9A2D6742860E4806AF45164507799C3B452E
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 40
+# DANE-TA(2) depth 2 beats PKIX-TA(0) depth 1
+1 3 0 0 2
+2 0 1 FE7C8E01110627A782765E468D8CB4D2CC7907EAC4BA5974CD92B540ED2AAC3C
+0 0 1 0DAA76425A1FC398C55A643D5A2485AE4CC2B64B9515A75054722B2E83C31BBD
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 41
+# DANE-TA(2) depth 2 beats PKIX-EE depth 0
+1 3 0 0 2
+2 0 1 FE7C8E01110627A782765E468D8CB4D2CC7907EAC4BA5974CD92B540ED2AAC3C
+0 0 1 0DAA76425A1FC398C55A643D5A2485AE4CC2B64B9515A75054722B2E83C31BBD
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
+
+# 42
+# DANE-TA(2) Full(0) root "from DNS":
+1 2 0 0 2
+2 0 0 308201643082010BA003020102020101300A06082A8648CE3D04030230123110300E06035504030C07526F6F742043413020170D3135313231333233313330385A180F33303135303431353233313330385A30123110300E06035504030C07526F6F742043413059301306072A8648CE3D020106082A8648CE3D03010703420004D1DA578FD18FB86456B0D91B5656BDD68D4DDBD250E337571127C75E0560F41D0AF91BFAF8805F80C28C026A14D4FE8C30A9673B9EC0C05A84AA810D1341B76CA350304E301D0603551D0E04160414E4BD405F052A820DDF9883F93D7D3F90AAEC723F301F0603551D23041830168014E4BD405F052A820DDF9883F93D7D3F90AAEC723F300C0603551D13040530030101FF300A06082A8648CE3D040302034700304402206869E6AA9F9B4D4BF308091A5A7AB2C30E3619B0D75E528819468E4BB926F4C9022017F1B8458611966FBC109CAED3582966BF25FC0598EABA6C793C58DCC3537CC5
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+
+# 43
+# DANE-TA(2) Full(0) intermediate "from DNS":
+1 1 0 0 1
+2 0 0 308201683082010DA003020102020102300A06082A8648CE3D04030230123110300E06035504030C07526F6F742043413020170D3135313231333233323030395A180F33303135303431353233323030395A30143112301006035504030C094973737565722043413059301306072A8648CE3D020106082A8648CE3D030107034200047D4BAE18B49F5DC69D0A3C85C66A3E2119DE92CFAD081FAD55C12D510EC97B6C00E13695A8D9713548FE60DF15573390433E2A1BD92DB4B7AA016EC6185DC5AFA350304E301D0603551D0E041604147AB75A3CD295CA5DF7C5150916E18FF5CC376A15301F0603551D23041830168014E4BD405F052A820DDF9883F93D7D3F90AAEC723F300C0603551D13040530030101FF300A06082A8648CE3D0403020349003046022100831DCD882DA8785D50E41020898C0248879DDDF72D701D1DC1DE6BE08155B43E022100B84B2FB519C4CD3CBC791603D4488F7707597DB7980D9C173E7FDD0ECD7CA308
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+
+# 44
+# DANE-TA(2) SPKI(1) Full(0) intermediate "from DNS":
+1 1 0 0 0
+2 1 0 3059301306072A8648CE3D020106082A8648CE3D030107034200047D4BAE18B49F5DC69D0A3C85C66A3E2119DE92CFAD081FAD55C12D510EC97B6C00E13695A8D9713548FE60DF15573390433E2A1BD92DB4B7AA016EC6185DC5AF
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+
+# 45
+# DANE-TA(2) SPKI(1) Full(0) root "from DNS":
+1 2 0 0 1
+2 1 0 3059301306072A8648CE3D020106082A8648CE3D03010703420004D1DA578FD18FB86456B0D91B5656BDD68D4DDBD250E337571127C75E0560F41D0AF91BFAF8805F80C28C026A14D4FE8C30A9673B9EC0C05A84AA810D1341B76C
+subject= /CN=example.com
+issuer= /CN=Issuer CA
+notBefore=Dec 13 23:23:52 2015 GMT
+notAfter=Apr 15 23:23:52 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBlDCCATugAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDDAlJc3N1ZXIg
+Q0EwIBcNMTUxMjEzMjMyMzUyWhgPMzAxNTA0MTUyMzIzNTJaMBYxFDASBgNVBAMM
+C2V4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZkmV9HveNee0
+3kiyWOnooHreu9uGOz0G9IGhlGyD2p9Wz/TZOJuFXS82SxWFsMc0/PomMCaWT/Wk
+MIs/yHm9uKN6MHgwHQYDVR0OBBYEFFsgykF9kIjHpMAXy2wMHHObsH2KMB8GA1Ud
+IwQYMBaAFHq3WjzSlcpd98UVCRbhj/XMN2oVMAkGA1UdEwQCMAAwEwYDVR0lBAww
+CgYIKwYBBQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID
+RwAwRAIfIckDKlyKk4ctP0rvMhqVdN2VbUO9k8NplExy1pAoWAIhAMizKQ16835X
+GoTXBNutM50ph9QYUtxZNvISlHBjkRGB
+-----END CERTIFICATE-----
+subject= /CN=Issuer CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:20:09 2015 GMT
+notAfter=Apr 15 23:20:09 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBAjAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMjAwOVoYDzMwMTUwNDE1MjMyMDA5WjAUMRIwEAYDVQQDDAlJ
+c3N1ZXIgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9S64YtJ9dxp0KPIXG
+aj4hGd6Sz60IH61VwS1RDsl7bADhNpWo2XE1SP5g3xVXM5BDPiob2S20t6oBbsYY
+XcWvo1AwTjAdBgNVHQ4EFgQUerdaPNKVyl33xRUJFuGP9cw3ahUwHwYDVR0jBBgw
+FoAU5L1AXwUqgg3fmIP5PX0/kKrscj8wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAgx3NiC2oeF1Q5BAgiYwCSIed3fctcB0dwd5r4IFVtD4CIQC4Sy+1
+GcTNPLx5FgPUSI93B1l9t5gNnBc+f90OzXyjCA==
+-----END CERTIFICATE-----
+
+# 46
+# Mismatched name "example.org", should still succeed given a
+# DANE-EE(3) match.
+1 3 1 0 0
+3 1 1 ee1477190203f5d8b4767f4451b89e7367cdec7f6965a4988227983562ac8270
+subject= CN = example.org
+issuer= CN = CA2
+notBefore=Feb 6 22:39:47 2016 GMT
+notAfter=Feb 7 22:39:47 2116 GMT
+-----BEGIN CERTIFICATE-----
+MIIBkDCCATWgAwIBAgIBAjAKBggqhkjOPQQDAjAOMQwwCgYDVQQDDANDQTIwIBcN
+MTYwMjA2MjIzOTQ3WhgPMjExNjAyMDcyMjM5NDdaMBYxFDASBgNVBAMMC2V4YW1w
+bGUub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/YCEn0pxClPTvpjioxU4
+ajopRa4j/6XTqxy9zqn1AcMCiVWp6j22B6RpLmKEHoRHQxFzebd2juTXIDq81CID
+z6N6MHgwHQYDVR0OBBYEFOrSA+2YKXa5KR6k0687CZuhai5OMB8GA1UdIwQYMBaA
+FLTY4vqgjcQ01aCcB8AYVbUhEU7VMAkGA1UdEwQCMAAwEwYDVR0lBAwwCgYIKwYB
+BQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5vcmcwCgYIKoZIzj0EAwIDSQAwRgIh
+AKSsLwlidPiSrgda6XWihov4D4KHu6ZX3ZAAZ2uiBAefAiEArCq5WiO3Zeunl0Ct
+PyDiaL1QKbJ7lnqPQCS1o8xn+RI=
+-----END CERTIFICATE-----
+subject= CN = CA2
+issuer= CN = Root CA2
+notBefore=Feb 6 22:39:13 2016 GMT
+notAfter=Feb 7 22:39:13 2116 GMT
+-----BEGIN CERTIFICATE-----
+MIIBYjCCAQigAwIBAgIBAjAKBggqhkjOPQQDAjATMREwDwYDVQQDDAhSb290IENB
+MjAgFw0xNjAyMDYyMjM5MTNaGA8yMTE2MDIwNzIyMzkxM1owDjEMMAoGA1UEAwwD
+Q0EyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEYr6zgBxpsxA31IFiGyb6uaGC
+CQdNMyJfDgqCihsU1eOEuauzXO7tydCbjfRmhqQK1EGd254IjcGY+37tZEbvPKNQ
+ME4wHQYDVR0OBBYEFLTY4vqgjcQ01aCcB8AYVbUhEU7VMB8GA1UdIwQYMBaAFBRb
++/qrntsksembakoZTwTZk8AXMAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAw
+RQIgX2fmMykyiuryf1AeKyc1j8HgmM8u/nyQfJnTCwvYUcECIQC6JHd3ybV9eJQo
+7sfr/jV+rRlZY2iaRv160BWYd82L7g==
+-----END CERTIFICATE-----
+subject= CN = Root CA2
+issuer= CN = Root CA2
+notBefore=Feb 6 22:38:48 2016 GMT
+notAfter=Feb 7 22:38:48 2116 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBATAKBggqhkjOPQQDAjATMREwDwYDVQQDDAhSb290IENB
+MjAgFw0xNjAyMDYyMjM4NDhaGA8yMTE2MDIwNzIyMzg0OFowEzERMA8GA1UEAwwI
+Um9vdCBDQTIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATlTxAPKteg+L1LmxMl
+sbAFMxj6/322nR5RRGeF07KZRBFPaFZLgwZ1DuNrwM3wxxNdUyoZ6iAyDmwNf3K1
+42/Uo1AwTjAdBgNVHQ4EFgQUFFv7+que2ySx6ZtqShlPBNmTwBcwHwYDVR0jBBgw
+FoAUFFv7+que2ySx6ZtqShlPBNmTwBcwDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAumhPWZ37swl10awM/amX+jv0UlUyJBf8RGA6QMG5bwICIQDbinER
+fEevg+GOsr1P6nNMCAsQd9NwsvTQ+jm+TBArWQ==
+-----END CERTIFICATE-----
+
+# 47
+# Mismatched name "example.org", should fail despite a DANE-TA(2)
+# match for the intermediate CA.
+1 3 0 62 1
+2 1 1 946af0956378efaba7ee1bbedc17af110ea8de19c079a98e77398724a3708a1f
+subject= CN = example.org
+issuer= CN = CA2
+notBefore=Feb 6 22:39:47 2016 GMT
+notAfter=Feb 7 22:39:47 2116 GMT
+-----BEGIN CERTIFICATE-----
+MIIBkDCCATWgAwIBAgIBAjAKBggqhkjOPQQDAjAOMQwwCgYDVQQDDANDQTIwIBcN
+MTYwMjA2MjIzOTQ3WhgPMjExNjAyMDcyMjM5NDdaMBYxFDASBgNVBAMMC2V4YW1w
+bGUub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/YCEn0pxClPTvpjioxU4
+ajopRa4j/6XTqxy9zqn1AcMCiVWp6j22B6RpLmKEHoRHQxFzebd2juTXIDq81CID
+z6N6MHgwHQYDVR0OBBYEFOrSA+2YKXa5KR6k0687CZuhai5OMB8GA1UdIwQYMBaA
+FLTY4vqgjcQ01aCcB8AYVbUhEU7VMAkGA1UdEwQCMAAwEwYDVR0lBAwwCgYIKwYB
+BQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5vcmcwCgYIKoZIzj0EAwIDSQAwRgIh
+AKSsLwlidPiSrgda6XWihov4D4KHu6ZX3ZAAZ2uiBAefAiEArCq5WiO3Zeunl0Ct
+PyDiaL1QKbJ7lnqPQCS1o8xn+RI=
+-----END CERTIFICATE-----
+subject= CN = CA2
+issuer= CN = Root CA2
+notBefore=Feb 6 22:39:13 2016 GMT
+notAfter=Feb 7 22:39:13 2116 GMT
+-----BEGIN CERTIFICATE-----
+MIIBYjCCAQigAwIBAgIBAjAKBggqhkjOPQQDAjATMREwDwYDVQQDDAhSb290IENB
+MjAgFw0xNjAyMDYyMjM5MTNaGA8yMTE2MDIwNzIyMzkxM1owDjEMMAoGA1UEAwwD
+Q0EyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEYr6zgBxpsxA31IFiGyb6uaGC
+CQdNMyJfDgqCihsU1eOEuauzXO7tydCbjfRmhqQK1EGd254IjcGY+37tZEbvPKNQ
+ME4wHQYDVR0OBBYEFLTY4vqgjcQ01aCcB8AYVbUhEU7VMB8GA1UdIwQYMBaAFBRb
++/qrntsksembakoZTwTZk8AXMAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAw
+RQIgX2fmMykyiuryf1AeKyc1j8HgmM8u/nyQfJnTCwvYUcECIQC6JHd3ybV9eJQo
+7sfr/jV+rRlZY2iaRv160BWYd82L7g==
+-----END CERTIFICATE-----
+subject= CN = Root CA2
+issuer= CN = Root CA2
+notBefore=Feb 6 22:38:48 2016 GMT
+notAfter=Feb 7 22:38:48 2116 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBATAKBggqhkjOPQQDAjATMREwDwYDVQQDDAhSb290IENB
+MjAgFw0xNjAyMDYyMjM4NDhaGA8yMTE2MDIwNzIyMzg0OFowEzERMA8GA1UEAwwI
+Um9vdCBDQTIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATlTxAPKteg+L1LmxMl
+sbAFMxj6/322nR5RRGeF07KZRBFPaFZLgwZ1DuNrwM3wxxNdUyoZ6iAyDmwNf3K1
+42/Uo1AwTjAdBgNVHQ4EFgQUFFv7+que2ySx6ZtqShlPBNmTwBcwHwYDVR0jBBgw
+FoAUFFv7+que2ySx6ZtqShlPBNmTwBcwDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAumhPWZ37swl10awM/amX+jv0UlUyJBf8RGA6QMG5bwICIQDbinER
+fEevg+GOsr1P6nNMCAsQd9NwsvTQ+jm+TBArWQ==
+-----END CERTIFICATE-----
+
+# 48
+# Mismatched name "example.org", should fail despite a DANE-TA(2)
+# match for the root CA.
+1 3 0 62 2
+2 1 1 34474f2fbc39da44dfbd11215bdafadf9507406c04de1f65dbd2a1bc4f2165cc
+subject= CN = example.org
+issuer= CN = CA2
+notBefore=Feb 6 22:39:47 2016 GMT
+notAfter=Feb 7 22:39:47 2116 GMT
+-----BEGIN CERTIFICATE-----
+MIIBkDCCATWgAwIBAgIBAjAKBggqhkjOPQQDAjAOMQwwCgYDVQQDDANDQTIwIBcN
+MTYwMjA2MjIzOTQ3WhgPMjExNjAyMDcyMjM5NDdaMBYxFDASBgNVBAMMC2V4YW1w
+bGUub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/YCEn0pxClPTvpjioxU4
+ajopRa4j/6XTqxy9zqn1AcMCiVWp6j22B6RpLmKEHoRHQxFzebd2juTXIDq81CID
+z6N6MHgwHQYDVR0OBBYEFOrSA+2YKXa5KR6k0687CZuhai5OMB8GA1UdIwQYMBaA
+FLTY4vqgjcQ01aCcB8AYVbUhEU7VMAkGA1UdEwQCMAAwEwYDVR0lBAwwCgYIKwYB
+BQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5vcmcwCgYIKoZIzj0EAwIDSQAwRgIh
+AKSsLwlidPiSrgda6XWihov4D4KHu6ZX3ZAAZ2uiBAefAiEArCq5WiO3Zeunl0Ct
+PyDiaL1QKbJ7lnqPQCS1o8xn+RI=
+-----END CERTIFICATE-----
+subject= CN = CA2
+issuer= CN = Root CA2
+notBefore=Feb 6 22:39:13 2016 GMT
+notAfter=Feb 7 22:39:13 2116 GMT
+-----BEGIN CERTIFICATE-----
+MIIBYjCCAQigAwIBAgIBAjAKBggqhkjOPQQDAjATMREwDwYDVQQDDAhSb290IENB
+MjAgFw0xNjAyMDYyMjM5MTNaGA8yMTE2MDIwNzIyMzkxM1owDjEMMAoGA1UEAwwD
+Q0EyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEYr6zgBxpsxA31IFiGyb6uaGC
+CQdNMyJfDgqCihsU1eOEuauzXO7tydCbjfRmhqQK1EGd254IjcGY+37tZEbvPKNQ
+ME4wHQYDVR0OBBYEFLTY4vqgjcQ01aCcB8AYVbUhEU7VMB8GA1UdIwQYMBaAFBRb
++/qrntsksembakoZTwTZk8AXMAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAw
+RQIgX2fmMykyiuryf1AeKyc1j8HgmM8u/nyQfJnTCwvYUcECIQC6JHd3ybV9eJQo
+7sfr/jV+rRlZY2iaRv160BWYd82L7g==
+-----END CERTIFICATE-----
+subject= CN = Root CA2
+issuer= CN = Root CA2
+notBefore=Feb 6 22:38:48 2016 GMT
+notAfter=Feb 7 22:38:48 2116 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBATAKBggqhkjOPQQDAjATMREwDwYDVQQDDAhSb290IENB
+MjAgFw0xNjAyMDYyMjM4NDhaGA8yMTE2MDIwNzIyMzg0OFowEzERMA8GA1UEAwwI
+Um9vdCBDQTIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATlTxAPKteg+L1LmxMl
+sbAFMxj6/322nR5RRGeF07KZRBFPaFZLgwZ1DuNrwM3wxxNdUyoZ6iAyDmwNf3K1
+42/Uo1AwTjAdBgNVHQ4EFgQUFFv7+que2ySx6ZtqShlPBNmTwBcwHwYDVR0jBBgw
+FoAUFFv7+que2ySx6ZtqShlPBNmTwBcwDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAumhPWZ37swl10awM/amX+jv0UlUyJBf8RGA6QMG5bwICIQDbinER
+fEevg+GOsr1P6nNMCAsQd9NwsvTQ+jm+TBArWQ==
+-----END CERTIFICATE-----
+
+# 49
+# Mismatched name "example.org", should fail when name checks
+# are not disabled for DANE-EE(3).
+1 3 0 62 0
+3 1 1 ee1477190203f5d8b4767f4451b89e7367cdec7f6965a4988227983562ac8270
+subject= CN = example.org
+issuer= CN = CA2
+notBefore=Feb 6 22:39:47 2016 GMT
+notAfter=Feb 7 22:39:47 2116 GMT
+-----BEGIN CERTIFICATE-----
+MIIBkDCCATWgAwIBAgIBAjAKBggqhkjOPQQDAjAOMQwwCgYDVQQDDANDQTIwIBcN
+MTYwMjA2MjIzOTQ3WhgPMjExNjAyMDcyMjM5NDdaMBYxFDASBgNVBAMMC2V4YW1w
+bGUub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/YCEn0pxClPTvpjioxU4
+ajopRa4j/6XTqxy9zqn1AcMCiVWp6j22B6RpLmKEHoRHQxFzebd2juTXIDq81CID
+z6N6MHgwHQYDVR0OBBYEFOrSA+2YKXa5KR6k0687CZuhai5OMB8GA1UdIwQYMBaA
+FLTY4vqgjcQ01aCcB8AYVbUhEU7VMAkGA1UdEwQCMAAwEwYDVR0lBAwwCgYIKwYB
+BQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5vcmcwCgYIKoZIzj0EAwIDSQAwRgIh
+AKSsLwlidPiSrgda6XWihov4D4KHu6ZX3ZAAZ2uiBAefAiEArCq5WiO3Zeunl0Ct
+PyDiaL1QKbJ7lnqPQCS1o8xn+RI=
+-----END CERTIFICATE-----
+subject= CN = CA2
+issuer= CN = Root CA2
+notBefore=Feb 6 22:39:13 2016 GMT
+notAfter=Feb 7 22:39:13 2116 GMT
+-----BEGIN CERTIFICATE-----
+MIIBYjCCAQigAwIBAgIBAjAKBggqhkjOPQQDAjATMREwDwYDVQQDDAhSb290IENB
+MjAgFw0xNjAyMDYyMjM5MTNaGA8yMTE2MDIwNzIyMzkxM1owDjEMMAoGA1UEAwwD
+Q0EyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEYr6zgBxpsxA31IFiGyb6uaGC
+CQdNMyJfDgqCihsU1eOEuauzXO7tydCbjfRmhqQK1EGd254IjcGY+37tZEbvPKNQ
+ME4wHQYDVR0OBBYEFLTY4vqgjcQ01aCcB8AYVbUhEU7VMB8GA1UdIwQYMBaAFBRb
++/qrntsksembakoZTwTZk8AXMAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAw
+RQIgX2fmMykyiuryf1AeKyc1j8HgmM8u/nyQfJnTCwvYUcECIQC6JHd3ybV9eJQo
+7sfr/jV+rRlZY2iaRv160BWYd82L7g==
+-----END CERTIFICATE-----
+subject= CN = Root CA2
+issuer= CN = Root CA2
+notBefore=Feb 6 22:38:48 2016 GMT
+notAfter=Feb 7 22:38:48 2116 GMT
+-----BEGIN CERTIFICATE-----
+MIIBaDCCAQ2gAwIBAgIBATAKBggqhkjOPQQDAjATMREwDwYDVQQDDAhSb290IENB
+MjAgFw0xNjAyMDYyMjM4NDhaGA8yMTE2MDIwNzIyMzg0OFowEzERMA8GA1UEAwwI
+Um9vdCBDQTIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATlTxAPKteg+L1LmxMl
+sbAFMxj6/322nR5RRGeF07KZRBFPaFZLgwZ1DuNrwM3wxxNdUyoZ6iAyDmwNf3K1
+42/Uo1AwTjAdBgNVHQ4EFgQUFFv7+que2ySx6ZtqShlPBNmTwBcwHwYDVR0jBBgw
+FoAUFFv7+que2ySx6ZtqShlPBNmTwBcwDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD
+AgNJADBGAiEAumhPWZ37swl10awM/amX+jv0UlUyJBf8RGA6QMG5bwICIQDbinER
+fEevg+GOsr1P6nNMCAsQd9NwsvTQ+jm+TBArWQ==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/danetest.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/danetest.pem
new file mode 100644
index 000000000..68d4f444f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/danetest.pem
@@ -0,0 +1,14 @@
+subject= /CN=Root CA
+issuer= /CN=Root CA
+notBefore=Dec 13 23:13:08 2015 GMT
+notAfter=Apr 15 23:13:08 3015 GMT
+-----BEGIN CERTIFICATE-----
+MIIBZDCCAQugAwIBAgIBATAKBggqhkjOPQQDAjASMRAwDgYDVQQDDAdSb290IENB
+MCAXDTE1MTIxMzIzMTMwOFoYDzMwMTUwNDE1MjMxMzA4WjASMRAwDgYDVQQDDAdS
+b290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dpXj9GPuGRWsNkbVla9
+1o1N29JQ4zdXESfHXgVg9B0K+Rv6+IBfgMKMAmoU1P6MMKlnO57AwFqEqoENE0G3
+bKNQME4wHQYDVR0OBBYEFOS9QF8FKoIN35iD+T19P5Cq7HI/MB8GA1UdIwQYMBaA
+FOS9QF8FKoIN35iD+T19P5Cq7HI/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwID
+RwAwRAIgaGnmqp+bTUvzCAkaWnqyww42GbDXXlKIGUaOS7km9MkCIBfxuEWGEZZv
+vBCcrtNYKWa/JfwFmOq6bHk8WNzDU3zF
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/destest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/destest.c
new file mode 100644
index 000000000..26c5f83e2
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/destest.c
@@ -0,0 +1,721 @@
+/*
+ * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <openssl/e_os2.h>
+#include <string.h>
+
+#include "testutil.h"
+
+#ifndef OPENSSL_NO_DES
+# include <openssl/des.h>
+
+/* In case any platform doesn't use unsigned int for its checksums */
+# define TEST_cs_eq TEST_uint_eq
+
+# define DATA_BUF_SIZE 20
+
+/* tisk tisk - the test keys don't all have odd parity :-( */
+/* test data */
+# define NUM_TESTS 34
+static unsigned char key_data[NUM_TESTS][8] = {
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
+ {0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11},
+ {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF},
+ {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10},
+ {0x7C, 0xA1, 0x10, 0x45, 0x4A, 0x1A, 0x6E, 0x57},
+ {0x01, 0x31, 0xD9, 0x61, 0x9D, 0xC1, 0x37, 0x6E},
+ {0x07, 0xA1, 0x13, 0x3E, 0x4A, 0x0B, 0x26, 0x86},
+ {0x38, 0x49, 0x67, 0x4C, 0x26, 0x02, 0x31, 0x9E},
+ {0x04, 0xB9, 0x15, 0xBA, 0x43, 0xFE, 0xB5, 0xB6},
+ {0x01, 0x13, 0xB9, 0x70, 0xFD, 0x34, 0xF2, 0xCE},
+ {0x01, 0x70, 0xF1, 0x75, 0x46, 0x8F, 0xB5, 0xE6},
+ {0x43, 0x29, 0x7F, 0xAD, 0x38, 0xE3, 0x73, 0xFE},
+ {0x07, 0xA7, 0x13, 0x70, 0x45, 0xDA, 0x2A, 0x16},
+ {0x04, 0x68, 0x91, 0x04, 0xC2, 0xFD, 0x3B, 0x2F},
+ {0x37, 0xD0, 0x6B, 0xB5, 0x16, 0xCB, 0x75, 0x46},
+ {0x1F, 0x08, 0x26, 0x0D, 0x1A, 0xC2, 0x46, 0x5E},
+ {0x58, 0x40, 0x23, 0x64, 0x1A, 0xBA, 0x61, 0x76},
+ {0x02, 0x58, 0x16, 0x16, 0x46, 0x29, 0xB0, 0x07},
+ {0x49, 0x79, 0x3E, 0xBC, 0x79, 0xB3, 0x25, 0x8F},
+ {0x4F, 0xB0, 0x5E, 0x15, 0x15, 0xAB, 0x73, 0xA7},
+ {0x49, 0xE9, 0x5D, 0x6D, 0x4C, 0xA2, 0x29, 0xBF},
+ {0x01, 0x83, 0x10, 0xDC, 0x40, 0x9B, 0x26, 0xD6},
+ {0x1C, 0x58, 0x7F, 0x1C, 0x13, 0x92, 0x4F, 0xEF},
+ {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01},
+ {0x1F, 0x1F, 0x1F, 0x1F, 0x0E, 0x0E, 0x0E, 0x0E},
+ {0xE0, 0xFE, 0xE0, 0xFE, 0xF1, 0xFE, 0xF1, 0xFE},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
+ {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF},
+ {0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10}
+};
+
+static unsigned char plain_data[NUM_TESTS][8] = {
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
+ {0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01},
+ {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11},
+ {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11},
+ {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF},
+ {0x01, 0xA1, 0xD6, 0xD0, 0x39, 0x77, 0x67, 0x42},
+ {0x5C, 0xD5, 0x4C, 0xA8, 0x3D, 0xEF, 0x57, 0xDA},
+ {0x02, 0x48, 0xD4, 0x38, 0x06, 0xF6, 0x71, 0x72},
+ {0x51, 0x45, 0x4B, 0x58, 0x2D, 0xDF, 0x44, 0x0A},
+ {0x42, 0xFD, 0x44, 0x30, 0x59, 0x57, 0x7F, 0xA2},
+ {0x05, 0x9B, 0x5E, 0x08, 0x51, 0xCF, 0x14, 0x3A},
+ {0x07, 0x56, 0xD8, 0xE0, 0x77, 0x47, 0x61, 0xD2},
+ {0x76, 0x25, 0x14, 0xB8, 0x29, 0xBF, 0x48, 0x6A},
+ {0x3B, 0xDD, 0x11, 0x90, 0x49, 0x37, 0x28, 0x02},
+ {0x26, 0x95, 0x5F, 0x68, 0x35, 0xAF, 0x60, 0x9A},
+ {0x16, 0x4D, 0x5E, 0x40, 0x4F, 0x27, 0x52, 0x32},
+ {0x6B, 0x05, 0x6E, 0x18, 0x75, 0x9F, 0x5C, 0xCA},
+ {0x00, 0x4B, 0xD6, 0xEF, 0x09, 0x17, 0x60, 0x62},
+ {0x48, 0x0D, 0x39, 0x00, 0x6E, 0xE7, 0x62, 0xF2},
+ {0x43, 0x75, 0x40, 0xC8, 0x69, 0x8F, 0x3C, 0xFA},
+ {0x07, 0x2D, 0x43, 0xA0, 0x77, 0x07, 0x52, 0x92},
+ {0x02, 0xFE, 0x55, 0x77, 0x81, 0x17, 0xF1, 0x2A},
+ {0x1D, 0x9D, 0x5C, 0x50, 0x18, 0xF7, 0x28, 0xC2},
+ {0x30, 0x55, 0x32, 0x28, 0x6D, 0x6F, 0x29, 0x5A},
+ {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF},
+ {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF},
+ {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF},
+ {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
+};
+
+static unsigned char cipher_data[NUM_TESTS][8] = {
+ {0x8C, 0xA6, 0x4D, 0xE9, 0xC1, 0xB1, 0x23, 0xA7},
+ {0x73, 0x59, 0xB2, 0x16, 0x3E, 0x4E, 0xDC, 0x58},
+ {0x95, 0x8E, 0x6E, 0x62, 0x7A, 0x05, 0x55, 0x7B},
+ {0xF4, 0x03, 0x79, 0xAB, 0x9E, 0x0E, 0xC5, 0x33},
+ {0x17, 0x66, 0x8D, 0xFC, 0x72, 0x92, 0x53, 0x2D},
+ {0x8A, 0x5A, 0xE1, 0xF8, 0x1A, 0xB8, 0xF2, 0xDD},
+ {0x8C, 0xA6, 0x4D, 0xE9, 0xC1, 0xB1, 0x23, 0xA7},
+ {0xED, 0x39, 0xD9, 0x50, 0xFA, 0x74, 0xBC, 0xC4},
+ {0x69, 0x0F, 0x5B, 0x0D, 0x9A, 0x26, 0x93, 0x9B},
+ {0x7A, 0x38, 0x9D, 0x10, 0x35, 0x4B, 0xD2, 0x71},
+ {0x86, 0x8E, 0xBB, 0x51, 0xCA, 0xB4, 0x59, 0x9A},
+ {0x71, 0x78, 0x87, 0x6E, 0x01, 0xF1, 0x9B, 0x2A},
+ {0xAF, 0x37, 0xFB, 0x42, 0x1F, 0x8C, 0x40, 0x95},
+ {0x86, 0xA5, 0x60, 0xF1, 0x0E, 0xC6, 0xD8, 0x5B},
+ {0x0C, 0xD3, 0xDA, 0x02, 0x00, 0x21, 0xDC, 0x09},
+ {0xEA, 0x67, 0x6B, 0x2C, 0xB7, 0xDB, 0x2B, 0x7A},
+ {0xDF, 0xD6, 0x4A, 0x81, 0x5C, 0xAF, 0x1A, 0x0F},
+ {0x5C, 0x51, 0x3C, 0x9C, 0x48, 0x86, 0xC0, 0x88},
+ {0x0A, 0x2A, 0xEE, 0xAE, 0x3F, 0xF4, 0xAB, 0x77},
+ {0xEF, 0x1B, 0xF0, 0x3E, 0x5D, 0xFA, 0x57, 0x5A},
+ {0x88, 0xBF, 0x0D, 0xB6, 0xD7, 0x0D, 0xEE, 0x56},
+ {0xA1, 0xF9, 0x91, 0x55, 0x41, 0x02, 0x0B, 0x56},
+ {0x6F, 0xBF, 0x1C, 0xAF, 0xCF, 0xFD, 0x05, 0x56},
+ {0x2F, 0x22, 0xE4, 0x9B, 0xAB, 0x7C, 0xA1, 0xAC},
+ {0x5A, 0x6B, 0x61, 0x2C, 0xC2, 0x6C, 0xCE, 0x4A},
+ {0x5F, 0x4C, 0x03, 0x8E, 0xD1, 0x2B, 0x2E, 0x41},
+ {0x63, 0xFA, 0xC0, 0xD0, 0x34, 0xD9, 0xF7, 0x93},
+ {0x61, 0x7B, 0x3A, 0x0C, 0xE8, 0xF0, 0x71, 0x00},
+ {0xDB, 0x95, 0x86, 0x05, 0xF8, 0xC8, 0xC6, 0x06},
+ {0xED, 0xBF, 0xD1, 0xC6, 0x6C, 0x29, 0xCC, 0xC7},
+ {0x35, 0x55, 0x50, 0xB2, 0x15, 0x0E, 0x24, 0x51},
+ {0xCA, 0xAA, 0xAF, 0x4D, 0xEA, 0xF1, 0xDB, 0xAE},
+ {0xD5, 0xD4, 0x4F, 0xF7, 0x20, 0x68, 0x3D, 0x0D},
+ {0x2A, 0x2B, 0xB0, 0x08, 0xDF, 0x97, 0xC2, 0xF2}
+};
+
+static unsigned char cipher_ecb2[NUM_TESTS - 1][8] = {
+ {0x92, 0x95, 0xB5, 0x9B, 0xB3, 0x84, 0x73, 0x6E},
+ {0x19, 0x9E, 0x9D, 0x6D, 0xF3, 0x9A, 0xA8, 0x16},
+ {0x2A, 0x4B, 0x4D, 0x24, 0x52, 0x43, 0x84, 0x27},
+ {0x35, 0x84, 0x3C, 0x01, 0x9D, 0x18, 0xC5, 0xB6},
+ {0x4A, 0x5B, 0x2F, 0x42, 0xAA, 0x77, 0x19, 0x25},
+ {0xA0, 0x6B, 0xA9, 0xB8, 0xCA, 0x5B, 0x17, 0x8A},
+ {0xAB, 0x9D, 0xB7, 0xFB, 0xED, 0x95, 0xF2, 0x74},
+ {0x3D, 0x25, 0x6C, 0x23, 0xA7, 0x25, 0x2F, 0xD6},
+ {0xB7, 0x6F, 0xAB, 0x4F, 0xBD, 0xBD, 0xB7, 0x67},
+ {0x8F, 0x68, 0x27, 0xD6, 0x9C, 0xF4, 0x1A, 0x10},
+ {0x82, 0x57, 0xA1, 0xD6, 0x50, 0x5E, 0x81, 0x85},
+ {0xA2, 0x0F, 0x0A, 0xCD, 0x80, 0x89, 0x7D, 0xFA},
+ {0xCD, 0x2A, 0x53, 0x3A, 0xDB, 0x0D, 0x7E, 0xF3},
+ {0xD2, 0xC2, 0xBE, 0x27, 0xE8, 0x1B, 0x68, 0xE3},
+ {0xE9, 0x24, 0xCF, 0x4F, 0x89, 0x3C, 0x5B, 0x0A},
+ {0xA7, 0x18, 0xC3, 0x9F, 0xFA, 0x9F, 0xD7, 0x69},
+ {0x77, 0x2C, 0x79, 0xB1, 0xD2, 0x31, 0x7E, 0xB1},
+ {0x49, 0xAB, 0x92, 0x7F, 0xD0, 0x22, 0x00, 0xB7},
+ {0xCE, 0x1C, 0x6C, 0x7D, 0x85, 0xE3, 0x4A, 0x6F},
+ {0xBE, 0x91, 0xD6, 0xE1, 0x27, 0xB2, 0xE9, 0x87},
+ {0x70, 0x28, 0xAE, 0x8F, 0xD1, 0xF5, 0x74, 0x1A},
+ {0xAA, 0x37, 0x80, 0xBB, 0xF3, 0x22, 0x1D, 0xDE},
+ {0xA6, 0xC4, 0xD2, 0x5E, 0x28, 0x93, 0xAC, 0xB3},
+ {0x22, 0x07, 0x81, 0x5A, 0xE4, 0xB7, 0x1A, 0xAD},
+ {0xDC, 0xCE, 0x05, 0xE7, 0x07, 0xBD, 0xF5, 0x84},
+ {0x26, 0x1D, 0x39, 0x2C, 0xB3, 0xBA, 0xA5, 0x85},
+ {0xB4, 0xF7, 0x0F, 0x72, 0xFB, 0x04, 0xF0, 0xDC},
+ {0x95, 0xBA, 0xA9, 0x4E, 0x87, 0x36, 0xF2, 0x89},
+ {0xD4, 0x07, 0x3A, 0xF1, 0x5A, 0x17, 0x82, 0x0E},
+ {0xEF, 0x6F, 0xAF, 0xA7, 0x66, 0x1A, 0x7E, 0x89},
+ {0xC1, 0x97, 0xF5, 0x58, 0x74, 0x8A, 0x20, 0xE7},
+ {0x43, 0x34, 0xCF, 0xDA, 0x22, 0xC4, 0x86, 0xC8},
+ {0x08, 0xD7, 0xB4, 0xFB, 0x62, 0x9D, 0x08, 0x85}
+};
+
+static unsigned char cbc_key[8] =
+ { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef };
+static unsigned char cbc2_key[8] =
+ { 0xf1, 0xe0, 0xd3, 0xc2, 0xb5, 0xa4, 0x97, 0x86 };
+static unsigned char cbc3_key[8] =
+ { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 };
+static unsigned char cbc_iv[8] =
+ { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 };
+/*
+ * Changed the following text constant to binary so it will work on ebcdic
+ * machines :-)
+ */
+/* static char cbc_data[40]="7654321 Now is the time for \0001"; */
+static unsigned char cbc_data[40] = {
+ 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x20,
+ 0x4E, 0x6F, 0x77, 0x20, 0x69, 0x73, 0x20, 0x74,
+ 0x68, 0x65, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x20,
+ 0x66, 0x6F, 0x72, 0x20, 0x00, 0x31, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static unsigned char cbc_ok[32] = {
+ 0xcc, 0xd1, 0x73, 0xff, 0xab, 0x20, 0x39, 0xf4,
+ 0xac, 0xd8, 0xae, 0xfd, 0xdf, 0xd8, 0xa1, 0xeb,
+ 0x46, 0x8e, 0x91, 0x15, 0x78, 0x88, 0xba, 0x68,
+ 0x1d, 0x26, 0x93, 0x97, 0xf7, 0xfe, 0x62, 0xb4
+};
+
+# ifdef SCREW_THE_PARITY
+# error "SCREW_THE_PARITY is not meant to be defined."
+# error "Original vectors are preserved for reference only."
+static unsigned char cbc2_key[8] =
+ { 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87 };
+static unsigned char xcbc_ok[32] = {
+ 0x86, 0x74, 0x81, 0x0D, 0x61, 0xA4, 0xA5, 0x48,
+ 0xB9, 0x93, 0x03, 0xE1, 0xB8, 0xBB, 0xBD, 0xBD,
+ 0x64, 0x30, 0x0B, 0xB9, 0x06, 0x65, 0x81, 0x76,
+ 0x04, 0x1D, 0x77, 0x62, 0x17, 0xCA, 0x2B, 0xD2,
+};
+# else
+static unsigned char xcbc_ok[32] = {
+ 0x84, 0x6B, 0x29, 0x14, 0x85, 0x1E, 0x9A, 0x29,
+ 0x54, 0x73, 0x2F, 0x8A, 0xA0, 0xA6, 0x11, 0xC1,
+ 0x15, 0xCD, 0xC2, 0xD7, 0x95, 0x1B, 0x10, 0x53,
+ 0xA6, 0x3C, 0x5E, 0x03, 0xB2, 0x1A, 0xA3, 0xC4,
+};
+# endif
+
+static unsigned char cbc3_ok[32] = {
+ 0x3F, 0xE3, 0x01, 0xC9, 0x62, 0xAC, 0x01, 0xD0,
+ 0x22, 0x13, 0x76, 0x3C, 0x1C, 0xBD, 0x4C, 0xDC,
+ 0x79, 0x96, 0x57, 0xC0, 0x64, 0xEC, 0xF5, 0xD4,
+ 0x1C, 0x67, 0x38, 0x12, 0xCF, 0xDE, 0x96, 0x75
+};
+
+static unsigned char pcbc_ok[32] = {
+ 0xcc, 0xd1, 0x73, 0xff, 0xab, 0x20, 0x39, 0xf4,
+ 0x6d, 0xec, 0xb4, 0x70, 0xa0, 0xe5, 0x6b, 0x15,
+ 0xae, 0xa6, 0xbf, 0x61, 0xed, 0x7d, 0x9c, 0x9f,
+ 0xf7, 0x17, 0x46, 0x3b, 0x8a, 0xb3, 0xcc, 0x88
+};
+
+static unsigned char cfb_key[8] =
+ { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef };
+static unsigned char cfb_iv[8] =
+ { 0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef };
+static unsigned char cfb_buf1[40], cfb_buf2[40], cfb_tmp[8];
+static unsigned char plain[24] = {
+ 0x4e, 0x6f, 0x77, 0x20, 0x69, 0x73,
+ 0x20, 0x74, 0x68, 0x65, 0x20, 0x74,
+ 0x69, 0x6d, 0x65, 0x20, 0x66, 0x6f,
+ 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20
+};
+
+static unsigned char cfb_cipher8[24] = {
+ 0xf3, 0x1f, 0xda, 0x07, 0x01, 0x14, 0x62, 0xee, 0x18, 0x7f, 0x43, 0xd8,
+ 0x0a, 0x7c, 0xd9, 0xb5, 0xb0, 0xd2, 0x90, 0xda, 0x6e, 0x5b, 0x9a, 0x87
+};
+
+static unsigned char cfb_cipher16[24] = {
+ 0xF3, 0x09, 0x87, 0x87, 0x7F, 0x57, 0xF7, 0x3C, 0x36, 0xB6, 0xDB, 0x70,
+ 0xD8, 0xD5, 0x34, 0x19, 0xD3, 0x86, 0xB2, 0x23, 0xB7, 0xB2, 0xAD, 0x1B
+};
+
+static unsigned char cfb_cipher32[24] = {
+ 0xF3, 0x09, 0x62, 0x49, 0xA4, 0xDF, 0xA4, 0x9F, 0x33, 0xDC, 0x7B, 0xAD,
+ 0x4C, 0xC8, 0x9F, 0x64, 0xE4, 0x53, 0xE5, 0xEC, 0x67, 0x20, 0xDA, 0xB6
+};
+
+static unsigned char cfb_cipher48[24] = {
+ 0xF3, 0x09, 0x62, 0x49, 0xC7, 0xF4, 0x30, 0xB5, 0x15, 0xEC, 0xBB, 0x85,
+ 0x97, 0x5A, 0x13, 0x8C, 0x68, 0x60, 0xE2, 0x38, 0x34, 0x3C, 0xDC, 0x1F
+};
+
+static unsigned char cfb_cipher64[24] = {
+ 0xF3, 0x09, 0x62, 0x49, 0xC7, 0xF4, 0x6E, 0x51, 0xA6, 0x9E, 0x83, 0x9B,
+ 0x1A, 0x92, 0xF7, 0x84, 0x03, 0x46, 0x71, 0x33, 0x89, 0x8E, 0xA6, 0x22
+};
+
+static unsigned char ofb_key[8] =
+ { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef };
+static unsigned char ofb_iv[8] =
+ { 0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef };
+static unsigned char ofb_buf1[24], ofb_buf2[24], ofb_tmp[8];
+static unsigned char ofb_cipher[24] = {
+ 0xf3, 0x09, 0x62, 0x49, 0xc7, 0xf4, 0x6e, 0x51,
+ 0x35, 0xf2, 0x4a, 0x24, 0x2e, 0xeb, 0x3d, 0x3f,
+ 0x3d, 0x6d, 0x5b, 0xe3, 0x25, 0x5a, 0xf8, 0xc3
+};
+static DES_LONG cbc_cksum_ret = 0xF7FE62B4L;
+static unsigned char cbc_cksum_data[8] =
+ { 0x1D, 0x26, 0x93, 0x97, 0xf7, 0xfe, 0x62, 0xb4 };
+
+static char *pt(const unsigned char *p, char buf[DATA_BUF_SIZE])
+{
+ char *ret;
+ int i;
+ static char *f = "0123456789ABCDEF";
+
+ ret = &(buf[0]);
+ for (i = 0; i < 8; i++) {
+ ret[i * 2] = f[(p[i] >> 4) & 0xf];
+ ret[i * 2 + 1] = f[p[i] & 0xf];
+ }
+ ret[16] = '\0';
+ return ret;
+}
+
+static int test_des_ecb(int i)
+{
+ DES_key_schedule ks;
+ DES_cblock in, out, outin;
+ char b1[DATA_BUF_SIZE], b2[DATA_BUF_SIZE];
+
+ DES_set_key_unchecked(&key_data[i], &ks);
+ memcpy(in, plain_data[i], 8);
+ memset(out, 0, 8);
+ memset(outin, 0, 8);
+ DES_ecb_encrypt(&in, &out, &ks, DES_ENCRYPT);
+ DES_ecb_encrypt(&out, &outin, &ks, DES_DECRYPT);
+
+ if (!TEST_mem_eq(out, 8, cipher_data[i], 8)) {
+ TEST_info("Encryption error %2d k=%s p=%s", i + 1,
+ pt(key_data[i], b1), pt(in, b2));
+ return 0;
+ }
+ if (!TEST_mem_eq(in, 8, outin, 8)) {
+ TEST_info("Decryption error %2d k=%s p=%s", i + 1,
+ pt(key_data[i], b1), pt(out, b2));
+ return 0;
+ }
+ return 1;
+}
+
+static int test_des_ede_ecb(int i)
+{
+ DES_cblock in, out, outin;
+ DES_key_schedule ks, ks2, ks3;
+ char b1[DATA_BUF_SIZE], b2[DATA_BUF_SIZE];
+
+ DES_set_key_unchecked(&key_data[i], &ks);
+ DES_set_key_unchecked(&key_data[i + 1], &ks2);
+ DES_set_key_unchecked(&key_data[i + 2], &ks3);
+ memcpy(in, plain_data[i], 8);
+ memset(out, 0, 8);
+ memset(outin, 0, 8);
+ DES_ecb3_encrypt(&in, &out, &ks, &ks2, &ks, DES_ENCRYPT);
+ DES_ecb3_encrypt(&out, &outin, &ks, &ks2, &ks, DES_DECRYPT);
+
+ if (!TEST_mem_eq(out, 8, cipher_ecb2[i], 8)) {
+ TEST_info("Encryption error %2d k=%s p=%s", i + 1,
+ pt(key_data[i], b1), pt(in, b2));
+ return 0;
+ }
+ if (!TEST_mem_eq(in, 8, outin, 8)) {
+ TEST_info("Decryption error %2d k=%s p=%s ", i + 1,
+ pt(key_data[i], b1), pt(out, b2));
+ return 0;
+ }
+ return 1;
+}
+
+static int test_des_cbc(void)
+{
+ unsigned char cbc_in[40];
+ unsigned char cbc_out[40];
+ DES_cblock iv3;
+ DES_key_schedule ks;
+ const size_t cbc_data_len = strlen((char *)cbc_data);
+
+ if (!TEST_int_eq(DES_set_key_checked(&cbc_key, &ks), 0))
+ return 0;
+ memset(cbc_out, 0, sizeof(cbc_out));
+ memset(cbc_in, 0, sizeof(cbc_in));
+ memcpy(iv3, cbc_iv, sizeof(cbc_iv));
+ DES_ncbc_encrypt(cbc_data, cbc_out, cbc_data_len + 1, &ks,
+ &iv3, DES_ENCRYPT);
+ if (!TEST_mem_eq(cbc_out, 32, cbc_ok, 32))
+ return 0;
+
+ memcpy(iv3, cbc_iv, sizeof(cbc_iv));
+ DES_ncbc_encrypt(cbc_out, cbc_in, cbc_data_len + 1, &ks,
+ &iv3, DES_DECRYPT);
+ return TEST_mem_eq(cbc_in, cbc_data_len, cbc_data, cbc_data_len);
+}
+
+static int test_des_ede_cbc(void)
+{
+ DES_cblock iv3;
+ DES_key_schedule ks;
+ unsigned char cbc_in[40];
+ unsigned char cbc_out[40];
+ const size_t n = strlen((char *)cbc_data) + 1;
+
+ if (!TEST_int_eq(DES_set_key_checked(&cbc_key, &ks), 0))
+ return 0;
+ memset(cbc_out, 0, sizeof(cbc_out));
+ memset(cbc_in, 0, sizeof(cbc_in));
+ memcpy(iv3, cbc_iv, sizeof(cbc_iv));
+ DES_xcbc_encrypt(cbc_data, cbc_out, n, &ks, &iv3, &cbc2_key, &cbc3_key,
+ DES_ENCRYPT);
+ if (!TEST_mem_eq(cbc_out, sizeof(xcbc_ok), xcbc_ok, sizeof(xcbc_ok)))
+ return 0;
+ memcpy(iv3, cbc_iv, sizeof(cbc_iv));
+ DES_xcbc_encrypt(cbc_out, cbc_in, n, &ks, &iv3, &cbc2_key, &cbc3_key,
+ DES_DECRYPT);
+ return TEST_mem_eq(cbc_data, n, cbc_data, n);
+}
+
+static int test_ede_cbc(void)
+{
+ DES_cblock iv3;
+ DES_key_schedule ks, ks2, ks3;
+ unsigned char cbc_in[40];
+ unsigned char cbc_out[40];
+ const size_t i = strlen((char *)cbc_data) + 1;
+ const size_t n = (i + 7) / 8 * 8;
+
+ if (!TEST_int_eq(DES_set_key_checked(&cbc_key, &ks), 0))
+ return 0;
+ if (!TEST_int_eq(DES_set_key_checked(&cbc2_key, &ks2), 0))
+ return 0;
+ if (!TEST_int_eq(DES_set_key_checked(&cbc3_key, &ks3), 0))
+ return 0;
+ memset(cbc_out, 0, sizeof(cbc_out));
+ memset(cbc_in, 0, sizeof(cbc_in));
+ memcpy(iv3, cbc_iv, sizeof(cbc_iv));
+
+ DES_ede3_cbc_encrypt(cbc_data, cbc_out, 16L, &ks, &ks2, &ks3, &iv3,
+ DES_ENCRYPT);
+ DES_ede3_cbc_encrypt(&cbc_data[16], &cbc_out[16], i - 16, &ks, &ks2,
+ &ks3, &iv3, DES_ENCRYPT);
+ if (!TEST_mem_eq(cbc_out, n, cbc3_ok, n))
+ return 0;
+
+ memcpy(iv3, cbc_iv, sizeof(cbc_iv));
+ DES_ede3_cbc_encrypt(cbc_out, cbc_in, i, &ks, &ks2, &ks3, &iv3,
+ DES_DECRYPT);
+ return TEST_mem_eq(cbc_in, i, cbc_data, i);
+}
+
+static int test_input_align(int i)
+{
+ unsigned char cbc_out[40];
+ DES_cblock iv;
+ DES_key_schedule ks;
+ const size_t n = strlen(i + (char *)cbc_data) + 1;
+
+ memset(cbc_out, 0, sizeof(cbc_out));
+ memcpy(iv, cbc_iv, sizeof(cbc_iv));
+ if (!TEST_int_eq(DES_set_key_checked(&cbc_key, &ks), 0))
+ return 0;
+ DES_ncbc_encrypt(&cbc_data[i], cbc_out, n, &ks, &iv, DES_ENCRYPT);
+ return 1;
+}
+
+static int test_output_align(int i)
+{
+ unsigned char cbc_out[40];
+ DES_cblock iv;
+ DES_key_schedule ks;
+ const size_t n = strlen((char *)cbc_data) + 1;
+
+ memset(cbc_out, 0, sizeof(cbc_out));
+ memcpy(iv, cbc_iv, sizeof(cbc_iv));
+ if (!TEST_int_eq(DES_set_key_checked(&cbc_key, &ks), 0))
+ return 0;
+ DES_ncbc_encrypt(cbc_data, &cbc_out[i], n, &ks, &iv, DES_ENCRYPT);
+ return 1;
+}
+
+static int test_des_crypt(void)
+{
+ if (!TEST_str_eq("efGnQx2725bI2", DES_crypt("testing", "ef")))
+ return 0;
+ if (!TEST_str_eq("yA1Rp/1hZXIJk", DES_crypt("bca76;23", "yA")))
+ return 0;
+
+ if (!TEST_ptr_null(DES_crypt("testing", "y\202")))
+ return 0;
+ if (!TEST_ptr_null(DES_crypt("testing", "\0A")))
+ return 0;
+ if (!TEST_ptr_null(DES_crypt("testing", "A")))
+ return 0;
+ return 1;
+}
+
+static int test_des_pcbc(void)
+{
+ unsigned char cbc_in[40];
+ unsigned char cbc_out[40];
+ DES_key_schedule ks;
+ const int n = strlen((char *)cbc_data) + 1;
+
+ if (!TEST_int_eq(DES_set_key_checked(&cbc_key, &ks), 0))
+ return 0;
+ memset(cbc_out, 0, sizeof(cbc_out));
+ memset(cbc_in, 0, sizeof(cbc_in));
+ DES_pcbc_encrypt(cbc_data, cbc_out, n, &ks,
+ &cbc_iv, DES_ENCRYPT);
+ if (!TEST_mem_eq(cbc_out, sizeof(pcbc_ok), pcbc_ok, sizeof(pcbc_ok)))
+ return 0;
+ DES_pcbc_encrypt(cbc_out, cbc_in, n, &ks,
+ &cbc_iv, DES_DECRYPT);
+ return TEST_mem_eq(cbc_in, n, cbc_data, n);
+}
+
+static int cfb_test(int bits, unsigned char *cfb_cipher)
+{
+ DES_key_schedule ks;
+
+ DES_set_key_checked(&cfb_key, &ks);
+ memcpy(cfb_tmp, cfb_iv, sizeof(cfb_iv));
+ DES_cfb_encrypt(plain, cfb_buf1, bits, sizeof(plain), &ks, &cfb_tmp,
+ DES_ENCRYPT);
+ if (!TEST_mem_eq(cfb_cipher, sizeof(plain), cfb_buf1, sizeof(plain)))
+ return 0;
+ memcpy(cfb_tmp, cfb_iv, sizeof(cfb_iv));
+ DES_cfb_encrypt(cfb_buf1, cfb_buf2, bits, sizeof(plain), &ks, &cfb_tmp,
+ DES_DECRYPT);
+ return TEST_mem_eq(plain, sizeof(plain), cfb_buf2, sizeof(plain));
+}
+
+static int test_des_cfb8(void)
+{
+ return cfb_test(8, cfb_cipher8);
+}
+
+static int test_des_cfb16(void)
+{
+ return cfb_test(16, cfb_cipher16);
+}
+
+static int test_des_cfb32(void)
+{
+ return cfb_test(32, cfb_cipher32);
+}
+
+static int test_des_cfb48(void)
+{
+ return cfb_test(48, cfb_cipher48);
+}
+
+static int test_des_cfb64(void)
+{
+ DES_key_schedule ks;
+ int n;
+ size_t i;
+
+ if (!cfb_test(64, cfb_cipher64))
+ return 0;
+
+ DES_set_key_checked(&cfb_key, &ks);
+ memcpy(cfb_tmp, cfb_iv, sizeof(cfb_iv));
+ n = 0;
+ DES_cfb64_encrypt(plain, cfb_buf1, 12, &ks, &cfb_tmp, &n, DES_ENCRYPT);
+ DES_cfb64_encrypt(&plain[12], &cfb_buf1[12], sizeof(plain) - 12, &ks,
+ &cfb_tmp, &n, DES_ENCRYPT);
+ if (!TEST_mem_eq(cfb_cipher64, sizeof(plain), cfb_buf1, sizeof(plain)))
+ return 0;
+ memcpy(cfb_tmp, cfb_iv, sizeof(cfb_iv));
+ n = 0;
+ DES_cfb64_encrypt(cfb_buf1, cfb_buf2, 17, &ks, &cfb_tmp, &n, DES_DECRYPT);
+ DES_cfb64_encrypt(&cfb_buf1[17], &cfb_buf2[17],
+ sizeof(plain) - 17, &ks, &cfb_tmp, &n, DES_DECRYPT);
+ if (!TEST_mem_eq(plain, sizeof(plain), cfb_buf2, sizeof(plain)))
+ return 0;
+
+ memcpy(cfb_tmp, cfb_iv, sizeof(cfb_iv));
+ for (i = 0; i < sizeof(plain); i++)
+ DES_cfb_encrypt(&plain[i], &cfb_buf1[i], 8, 1, &ks, &cfb_tmp,
+ DES_ENCRYPT);
+ if (!TEST_mem_eq(cfb_cipher8, sizeof(plain), cfb_buf1, sizeof(plain)))
+ return 0;
+
+ memcpy(cfb_tmp, cfb_iv, sizeof(cfb_iv));
+ for (i = 0; i < sizeof(plain); i++)
+ DES_cfb_encrypt(&cfb_buf1[i], &cfb_buf2[i], 8, 1, &ks, &cfb_tmp,
+ DES_DECRYPT);
+ return TEST_mem_eq(plain, sizeof(plain), cfb_buf2, sizeof(plain));
+}
+
+static int test_des_ede_cfb64(void)
+{
+ DES_key_schedule ks;
+ int n;
+
+ DES_set_key_checked(&cfb_key, &ks);
+ memcpy(cfb_tmp, cfb_iv, sizeof(cfb_iv));
+ n = 0;
+ DES_ede3_cfb64_encrypt(plain, cfb_buf1, 12, &ks, &ks, &ks, &cfb_tmp, &n,
+ DES_ENCRYPT);
+ DES_ede3_cfb64_encrypt(&plain[12], &cfb_buf1[12], sizeof(plain) - 12, &ks,
+ &ks, &ks, &cfb_tmp, &n, DES_ENCRYPT);
+ if (!TEST_mem_eq(cfb_cipher64, sizeof(plain), cfb_buf1, sizeof(plain)))
+ return 0;
+ memcpy(cfb_tmp, cfb_iv, sizeof(cfb_iv));
+ n = 0;
+ DES_ede3_cfb64_encrypt(cfb_buf1, cfb_buf2, (long)17, &ks, &ks, &ks,
+ &cfb_tmp, &n, DES_DECRYPT);
+ DES_ede3_cfb64_encrypt(&cfb_buf1[17], &cfb_buf2[17], sizeof(plain) - 17,
+ &ks, &ks, &ks, &cfb_tmp, &n, DES_DECRYPT);
+ return TEST_mem_eq(plain, sizeof(plain), cfb_buf2, sizeof(plain));
+}
+
+static int test_des_ofb(void)
+{
+ DES_key_schedule ks;
+
+ DES_set_key_checked(&ofb_key, &ks);
+ memcpy(ofb_tmp, ofb_iv, sizeof(ofb_iv));
+ DES_ofb_encrypt(plain, ofb_buf1, 64, sizeof(plain) / 8, &ks, &ofb_tmp);
+ if (!TEST_mem_eq(ofb_cipher, sizeof(ofb_buf1), ofb_buf1, sizeof(ofb_buf1)))
+ return 0;
+
+ memcpy(ofb_tmp, ofb_iv, sizeof(ofb_iv));
+ DES_ofb_encrypt(ofb_buf1, ofb_buf2, 64, sizeof(ofb_buf1) / 8, &ks,
+ &ofb_tmp);
+ return TEST_mem_eq(plain, sizeof(ofb_buf2), ofb_buf2, sizeof(ofb_buf2));
+}
+
+static int test_des_ofb64(void)
+{
+ DES_key_schedule ks;
+ int num;
+ size_t i;
+
+ DES_set_key_checked(&ofb_key, &ks);
+ memcpy(ofb_tmp, ofb_iv, sizeof(ofb_iv));
+ memset(ofb_buf1, 0, sizeof(ofb_buf1));
+ memset(ofb_buf2, 0, sizeof(ofb_buf1));
+ num = 0;
+ for (i = 0; i < sizeof(plain); i++) {
+ DES_ofb64_encrypt(&plain[i], &ofb_buf1[i], 1, &ks, &ofb_tmp, &num);
+ }
+ if (!TEST_mem_eq(ofb_cipher, sizeof(ofb_buf1), ofb_buf1, sizeof(ofb_buf1)))
+ return 0;
+ memcpy(ofb_tmp, ofb_iv, sizeof(ofb_iv));
+ num = 0;
+ DES_ofb64_encrypt(ofb_buf1, ofb_buf2, sizeof(ofb_buf1), &ks, &ofb_tmp,
+ &num);
+ return TEST_mem_eq(plain, sizeof(ofb_buf2), ofb_buf2, sizeof(ofb_buf2));
+}
+
+static int test_des_ede_ofb64(void)
+{
+ DES_key_schedule ks;
+ int num;
+ size_t i;
+
+ DES_set_key_checked(&ofb_key, &ks);
+ memcpy(ofb_tmp, ofb_iv, sizeof(ofb_iv));
+ memset(ofb_buf1, 0, sizeof(ofb_buf1));
+ memset(ofb_buf2, 0, sizeof(ofb_buf1));
+ num = 0;
+ for (i = 0; i < sizeof(plain); i++) {
+ DES_ede3_ofb64_encrypt(&plain[i], &ofb_buf1[i], 1, &ks, &ks,
+ &ks, &ofb_tmp, &num);
+ }
+ if (!TEST_mem_eq(ofb_cipher, sizeof(ofb_buf1), ofb_buf1, sizeof(ofb_buf1)))
+ return 0;
+ memcpy(ofb_tmp, ofb_iv, sizeof(ofb_iv));
+ num = 0;
+ DES_ede3_ofb64_encrypt(ofb_buf1, ofb_buf2, sizeof(ofb_buf1), &ks, &ks, &ks,
+ &ofb_tmp, &num);
+ return TEST_mem_eq(plain, sizeof(ofb_buf2), ofb_buf2, sizeof(ofb_buf2));
+}
+
+static int test_des_cbc_cksum(void)
+{
+ DES_LONG cs;
+ DES_key_schedule ks;
+ unsigned char cret[8];
+
+ DES_set_key_checked(&cbc_key, &ks);
+ cs = DES_cbc_cksum(cbc_data, &cret, strlen((char *)cbc_data), &ks,
+ &cbc_iv);
+ if (!TEST_cs_eq(cs, cbc_cksum_ret))
+ return 0;
+ return TEST_mem_eq(cret, 8, cbc_cksum_data, 8);
+}
+
+static int test_des_quad_cksum(void)
+{
+ DES_LONG cs, lqret[4];
+
+ cs = DES_quad_cksum(cbc_data, (DES_cblock *)lqret,
+ (long)strlen((char *)cbc_data), 2,
+ (DES_cblock *)cbc_iv);
+ if (!TEST_cs_eq(cs, 0x70d7a63aL))
+ return 0;
+ if (!TEST_cs_eq(lqret[0], 0x327eba8dL))
+ return 0;
+ if (!TEST_cs_eq(lqret[1], 0x201a49ccL))
+ return 0;
+ if (!TEST_cs_eq(lqret[2], 0x70d7a63aL))
+ return 0;
+ if (!TEST_cs_eq(lqret[3], 0x501c2c26L))
+ return 0;
+ return 1;
+}
+#endif
+
+int setup_tests(void)
+{
+#ifndef OPENSSL_NO_DES
+ ADD_ALL_TESTS(test_des_ecb, NUM_TESTS);
+ ADD_TEST(test_des_cbc);
+ ADD_TEST(test_ede_cbc);
+ ADD_ALL_TESTS(test_des_ede_ecb, NUM_TESTS - 2);
+ ADD_TEST(test_des_ede_cbc);
+ ADD_TEST(test_des_pcbc);
+ ADD_TEST(test_des_cfb8);
+ ADD_TEST(test_des_cfb16);
+ ADD_TEST(test_des_cfb32);
+ ADD_TEST(test_des_cfb48);
+ ADD_TEST(test_des_cfb64);
+ ADD_TEST(test_des_ede_cfb64);
+ ADD_TEST(test_des_ofb);
+ ADD_TEST(test_des_ofb64);
+ ADD_TEST(test_des_ede_ofb64);
+ ADD_TEST(test_des_cbc_cksum);
+ ADD_TEST(test_des_quad_cksum);
+ ADD_TEST(test_des_crypt);
+ ADD_ALL_TESTS(test_input_align, 4);
+ ADD_ALL_TESTS(test_output_align, 4);
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dhtest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dhtest.c
new file mode 100644
index 000000000..9d5609b94
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dhtest.c
@@ -0,0 +1,695 @@
+/*
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "internal/nelem.h"
+#include <openssl/crypto.h>
+#include <openssl/bio.h>
+#include <openssl/bn.h>
+#include <openssl/rand.h>
+#include <openssl/err.h>
+#include <openssl/obj_mac.h>
+#include "testutil.h"
+
+#ifndef OPENSSL_NO_DH
+# include <openssl/dh.h>
+
+static int cb(int p, int n, BN_GENCB *arg);
+
+static int dh_test(void)
+{
+ DH *dh = NULL;
+ BIGNUM *p = NULL, *q = NULL, *g = NULL;
+ const BIGNUM *p2, *q2, *g2;
+ BIGNUM *priv_key = NULL;
+ const BIGNUM *pub_key2, *priv_key2;
+ BN_GENCB *_cb = NULL;
+ DH *a = NULL;
+ DH *b = NULL;
+ DH *c = NULL;
+ const BIGNUM *ap = NULL, *ag = NULL, *apub_key = NULL;
+ const BIGNUM *bpub_key = NULL, *bpriv_key = NULL;
+ BIGNUM *bp = NULL, *bg = NULL, *cpriv_key = NULL;
+ unsigned char *abuf = NULL;
+ unsigned char *bbuf = NULL;
+ unsigned char *cbuf = NULL;
+ int i, alen, blen, clen, aout, bout, cout;
+ int ret = 0;
+
+ if (!TEST_ptr(dh = DH_new())
+ || !TEST_ptr(p = BN_new())
+ || !TEST_ptr(q = BN_new())
+ || !TEST_ptr(g = BN_new())
+ || !TEST_ptr(priv_key = BN_new()))
+ goto err1;
+
+ /*
+ * I) basic tests
+ */
+
+ /* using a small predefined Sophie Germain DH group with generator 3 */
+ if (!TEST_true(BN_set_word(p, 4079L))
+ || !TEST_true(BN_set_word(q, 2039L))
+ || !TEST_true(BN_set_word(g, 3L))
+ || !TEST_true(DH_set0_pqg(dh, p, q, g)))
+ goto err1;
+
+ if (!DH_check(dh, &i))
+ goto err2;
+ if (!TEST_false(i & DH_CHECK_P_NOT_PRIME)
+ || !TEST_false(i & DH_CHECK_P_NOT_SAFE_PRIME)
+ || !TEST_false(i & DH_CHECK_INVALID_Q_VALUE)
+ || !TEST_false(i & DH_CHECK_Q_NOT_PRIME)
+ || !TEST_false(i & DH_UNABLE_TO_CHECK_GENERATOR)
+ || !TEST_false(i & DH_NOT_SUITABLE_GENERATOR)
+ || !TEST_false(i))
+ goto err2;
+
+ /* test the combined getter for p, q, and g */
+ DH_get0_pqg(dh, &p2, &q2, &g2);
+ if (!TEST_ptr_eq(p2, p)
+ || !TEST_ptr_eq(q2, q)
+ || !TEST_ptr_eq(g2, g))
+ goto err2;
+
+ /* test the simple getters for p, q, and g */
+ if (!TEST_ptr_eq(DH_get0_p(dh), p2)
+ || !TEST_ptr_eq(DH_get0_q(dh), q2)
+ || !TEST_ptr_eq(DH_get0_g(dh), g2))
+ goto err2;
+
+ /* set the private key only*/
+ if (!TEST_true(BN_set_word(priv_key, 1234L))
+ || !TEST_true(DH_set0_key(dh, NULL, priv_key)))
+ goto err2;
+
+ /* test the combined getter for pub_key and priv_key */
+ DH_get0_key(dh, &pub_key2, &priv_key2);
+ if (!TEST_ptr_eq(pub_key2, NULL)
+ || !TEST_ptr_eq(priv_key2, priv_key))
+ goto err3;
+
+ /* test the simple getters for pub_key and priv_key */
+ if (!TEST_ptr_eq(DH_get0_pub_key(dh), pub_key2)
+ || !TEST_ptr_eq(DH_get0_priv_key(dh), priv_key2))
+ goto err3;
+
+ /* now generate a key pair ... */
+ if (!DH_generate_key(dh))
+ goto err3;
+
+ /* ... and check whether the private key was reused: */
+
+ /* test it with the combined getter for pub_key and priv_key */
+ DH_get0_key(dh, &pub_key2, &priv_key2);
+ if (!TEST_ptr(pub_key2)
+ || !TEST_ptr_eq(priv_key2, priv_key))
+ goto err3;
+
+ /* test it the simple getters for pub_key and priv_key */
+ if (!TEST_ptr_eq(DH_get0_pub_key(dh), pub_key2)
+ || !TEST_ptr_eq(DH_get0_priv_key(dh), priv_key2))
+ goto err3;
+
+ /* check whether the public key was calculated correctly */
+ TEST_uint_eq(BN_get_word(pub_key2), 3331L);
+
+ /*
+ * II) key generation
+ */
+
+ /* generate a DH group ... */
+ if (!TEST_ptr(_cb = BN_GENCB_new()))
+ goto err3;
+ BN_GENCB_set(_cb, &cb, NULL);
+ if (!TEST_ptr(a = DH_new())
+ || !TEST_true(DH_generate_parameters_ex(a, 64,
+ DH_GENERATOR_5, _cb)))
+ goto err3;
+
+ /* ... and check whether it is valid */
+ if (!DH_check(a, &i))
+ goto err3;
+ if (!TEST_false(i & DH_CHECK_P_NOT_PRIME)
+ || !TEST_false(i & DH_CHECK_P_NOT_SAFE_PRIME)
+ || !TEST_false(i & DH_UNABLE_TO_CHECK_GENERATOR)
+ || !TEST_false(i & DH_NOT_SUITABLE_GENERATOR)
+ || !TEST_false(i))
+ goto err3;
+
+ DH_get0_pqg(a, &ap, NULL, &ag);
+
+ /* now create another copy of the DH group for the peer */
+ if (!TEST_ptr(b = DH_new()))
+ goto err3;
+
+ if (!TEST_ptr(bp = BN_dup(ap))
+ || !TEST_ptr(bg = BN_dup(ag))
+ || !TEST_true(DH_set0_pqg(b, bp, NULL, bg)))
+ goto err3;
+ bp = bg = NULL;
+
+ /*
+ * III) simulate a key exchange
+ */
+
+ if (!DH_generate_key(a))
+ goto err3;
+ DH_get0_key(a, &apub_key, NULL);
+
+ if (!DH_generate_key(b))
+ goto err3;
+ DH_get0_key(b, &bpub_key, &bpriv_key);
+
+ /* Also test with a private-key-only copy of |b|. */
+ if (!TEST_ptr(c = DHparams_dup(b))
+ || !TEST_ptr(cpriv_key = BN_dup(bpriv_key))
+ || !TEST_true(DH_set0_key(c, NULL, cpriv_key)))
+ goto err3;
+ cpriv_key = NULL;
+
+ alen = DH_size(a);
+ if (!TEST_ptr(abuf = OPENSSL_malloc(alen))
+ || !TEST_true((aout = DH_compute_key(abuf, bpub_key, a)) != -1))
+ goto err3;
+
+ blen = DH_size(b);
+ if (!TEST_ptr(bbuf = OPENSSL_malloc(blen))
+ || !TEST_true((bout = DH_compute_key(bbuf, apub_key, b)) != -1))
+ goto err3;
+
+ clen = DH_size(c);
+ if (!TEST_ptr(cbuf = OPENSSL_malloc(clen))
+ || !TEST_true((cout = DH_compute_key(cbuf, apub_key, c)) != -1))
+ goto err3;
+
+ if (!TEST_true(aout >= 4)
+ || !TEST_mem_eq(abuf, aout, bbuf, bout)
+ || !TEST_mem_eq(abuf, aout, cbuf, cout))
+ goto err3;
+
+ ret = 1;
+ goto success;
+
+ err1:
+ /* an error occurred before p,q,g were assigned to dh */
+ BN_free(p);
+ BN_free(q);
+ BN_free(g);
+ err2:
+ /* an error occurred before priv_key was assigned to dh */
+ BN_free(priv_key);
+ err3:
+ success:
+ OPENSSL_free(abuf);
+ OPENSSL_free(bbuf);
+ OPENSSL_free(cbuf);
+ DH_free(b);
+ DH_free(a);
+ DH_free(c);
+ BN_free(bp);
+ BN_free(bg);
+ BN_free(cpriv_key);
+ BN_GENCB_free(_cb);
+ DH_free(dh);
+
+ return ret;
+}
+
+static int cb(int p, int n, BN_GENCB *arg)
+{
+ return 1;
+}
+
+/* Test data from RFC 5114 */
+
+static const unsigned char dhtest_1024_160_xA[] = {
+ 0xB9, 0xA3, 0xB3, 0xAE, 0x8F, 0xEF, 0xC1, 0xA2, 0x93, 0x04, 0x96, 0x50,
+ 0x70, 0x86, 0xF8, 0x45, 0x5D, 0x48, 0x94, 0x3E
+};
+
+static const unsigned char dhtest_1024_160_yA[] = {
+ 0x2A, 0x85, 0x3B, 0x3D, 0x92, 0x19, 0x75, 0x01, 0xB9, 0x01, 0x5B, 0x2D,
+ 0xEB, 0x3E, 0xD8, 0x4F, 0x5E, 0x02, 0x1D, 0xCC, 0x3E, 0x52, 0xF1, 0x09,
+ 0xD3, 0x27, 0x3D, 0x2B, 0x75, 0x21, 0x28, 0x1C, 0xBA, 0xBE, 0x0E, 0x76,
+ 0xFF, 0x57, 0x27, 0xFA, 0x8A, 0xCC, 0xE2, 0x69, 0x56, 0xBA, 0x9A, 0x1F,
+ 0xCA, 0x26, 0xF2, 0x02, 0x28, 0xD8, 0x69, 0x3F, 0xEB, 0x10, 0x84, 0x1D,
+ 0x84, 0xA7, 0x36, 0x00, 0x54, 0xEC, 0xE5, 0xA7, 0xF5, 0xB7, 0xA6, 0x1A,
+ 0xD3, 0xDF, 0xB3, 0xC6, 0x0D, 0x2E, 0x43, 0x10, 0x6D, 0x87, 0x27, 0xDA,
+ 0x37, 0xDF, 0x9C, 0xCE, 0x95, 0xB4, 0x78, 0x75, 0x5D, 0x06, 0xBC, 0xEA,
+ 0x8F, 0x9D, 0x45, 0x96, 0x5F, 0x75, 0xA5, 0xF3, 0xD1, 0xDF, 0x37, 0x01,
+ 0x16, 0x5F, 0xC9, 0xE5, 0x0C, 0x42, 0x79, 0xCE, 0xB0, 0x7F, 0x98, 0x95,
+ 0x40, 0xAE, 0x96, 0xD5, 0xD8, 0x8E, 0xD7, 0x76
+};
+
+static const unsigned char dhtest_1024_160_xB[] = {
+ 0x93, 0x92, 0xC9, 0xF9, 0xEB, 0x6A, 0x7A, 0x6A, 0x90, 0x22, 0xF7, 0xD8,
+ 0x3E, 0x72, 0x23, 0xC6, 0x83, 0x5B, 0xBD, 0xDA
+};
+
+static const unsigned char dhtest_1024_160_yB[] = {
+ 0x71, 0x7A, 0x6C, 0xB0, 0x53, 0x37, 0x1F, 0xF4, 0xA3, 0xB9, 0x32, 0x94,
+ 0x1C, 0x1E, 0x56, 0x63, 0xF8, 0x61, 0xA1, 0xD6, 0xAD, 0x34, 0xAE, 0x66,
+ 0x57, 0x6D, 0xFB, 0x98, 0xF6, 0xC6, 0xCB, 0xF9, 0xDD, 0xD5, 0xA5, 0x6C,
+ 0x78, 0x33, 0xF6, 0xBC, 0xFD, 0xFF, 0x09, 0x55, 0x82, 0xAD, 0x86, 0x8E,
+ 0x44, 0x0E, 0x8D, 0x09, 0xFD, 0x76, 0x9E, 0x3C, 0xEC, 0xCD, 0xC3, 0xD3,
+ 0xB1, 0xE4, 0xCF, 0xA0, 0x57, 0x77, 0x6C, 0xAA, 0xF9, 0x73, 0x9B, 0x6A,
+ 0x9F, 0xEE, 0x8E, 0x74, 0x11, 0xF8, 0xD6, 0xDA, 0xC0, 0x9D, 0x6A, 0x4E,
+ 0xDB, 0x46, 0xCC, 0x2B, 0x5D, 0x52, 0x03, 0x09, 0x0E, 0xAE, 0x61, 0x26,
+ 0x31, 0x1E, 0x53, 0xFD, 0x2C, 0x14, 0xB5, 0x74, 0xE6, 0xA3, 0x10, 0x9A,
+ 0x3D, 0xA1, 0xBE, 0x41, 0xBD, 0xCE, 0xAA, 0x18, 0x6F, 0x5C, 0xE0, 0x67,
+ 0x16, 0xA2, 0xB6, 0xA0, 0x7B, 0x3C, 0x33, 0xFE
+};
+
+static const unsigned char dhtest_1024_160_Z[] = {
+ 0x5C, 0x80, 0x4F, 0x45, 0x4D, 0x30, 0xD9, 0xC4, 0xDF, 0x85, 0x27, 0x1F,
+ 0x93, 0x52, 0x8C, 0x91, 0xDF, 0x6B, 0x48, 0xAB, 0x5F, 0x80, 0xB3, 0xB5,
+ 0x9C, 0xAA, 0xC1, 0xB2, 0x8F, 0x8A, 0xCB, 0xA9, 0xCD, 0x3E, 0x39, 0xF3,
+ 0xCB, 0x61, 0x45, 0x25, 0xD9, 0x52, 0x1D, 0x2E, 0x64, 0x4C, 0x53, 0xB8,
+ 0x07, 0xB8, 0x10, 0xF3, 0x40, 0x06, 0x2F, 0x25, 0x7D, 0x7D, 0x6F, 0xBF,
+ 0xE8, 0xD5, 0xE8, 0xF0, 0x72, 0xE9, 0xB6, 0xE9, 0xAF, 0xDA, 0x94, 0x13,
+ 0xEA, 0xFB, 0x2E, 0x8B, 0x06, 0x99, 0xB1, 0xFB, 0x5A, 0x0C, 0xAC, 0xED,
+ 0xDE, 0xAE, 0xAD, 0x7E, 0x9C, 0xFB, 0xB3, 0x6A, 0xE2, 0xB4, 0x20, 0x83,
+ 0x5B, 0xD8, 0x3A, 0x19, 0xFB, 0x0B, 0x5E, 0x96, 0xBF, 0x8F, 0xA4, 0xD0,
+ 0x9E, 0x34, 0x55, 0x25, 0x16, 0x7E, 0xCD, 0x91, 0x55, 0x41, 0x6F, 0x46,
+ 0xF4, 0x08, 0xED, 0x31, 0xB6, 0x3C, 0x6E, 0x6D
+};
+
+static const unsigned char dhtest_2048_224_xA[] = {
+ 0x22, 0xE6, 0x26, 0x01, 0xDB, 0xFF, 0xD0, 0x67, 0x08, 0xA6, 0x80, 0xF7,
+ 0x47, 0xF3, 0x61, 0xF7, 0x6D, 0x8F, 0x4F, 0x72, 0x1A, 0x05, 0x48, 0xE4,
+ 0x83, 0x29, 0x4B, 0x0C
+};
+
+static const unsigned char dhtest_2048_224_yA[] = {
+ 0x1B, 0x3A, 0x63, 0x45, 0x1B, 0xD8, 0x86, 0xE6, 0x99, 0xE6, 0x7B, 0x49,
+ 0x4E, 0x28, 0x8B, 0xD7, 0xF8, 0xE0, 0xD3, 0x70, 0xBA, 0xDD, 0xA7, 0xA0,
+ 0xEF, 0xD2, 0xFD, 0xE7, 0xD8, 0xF6, 0x61, 0x45, 0xCC, 0x9F, 0x28, 0x04,
+ 0x19, 0x97, 0x5E, 0xB8, 0x08, 0x87, 0x7C, 0x8A, 0x4C, 0x0C, 0x8E, 0x0B,
+ 0xD4, 0x8D, 0x4A, 0x54, 0x01, 0xEB, 0x1E, 0x87, 0x76, 0xBF, 0xEE, 0xE1,
+ 0x34, 0xC0, 0x38, 0x31, 0xAC, 0x27, 0x3C, 0xD9, 0xD6, 0x35, 0xAB, 0x0C,
+ 0xE0, 0x06, 0xA4, 0x2A, 0x88, 0x7E, 0x3F, 0x52, 0xFB, 0x87, 0x66, 0xB6,
+ 0x50, 0xF3, 0x80, 0x78, 0xBC, 0x8E, 0xE8, 0x58, 0x0C, 0xEF, 0xE2, 0x43,
+ 0x96, 0x8C, 0xFC, 0x4F, 0x8D, 0xC3, 0xDB, 0x08, 0x45, 0x54, 0x17, 0x1D,
+ 0x41, 0xBF, 0x2E, 0x86, 0x1B, 0x7B, 0xB4, 0xD6, 0x9D, 0xD0, 0xE0, 0x1E,
+ 0xA3, 0x87, 0xCB, 0xAA, 0x5C, 0xA6, 0x72, 0xAF, 0xCB, 0xE8, 0xBD, 0xB9,
+ 0xD6, 0x2D, 0x4C, 0xE1, 0x5F, 0x17, 0xDD, 0x36, 0xF9, 0x1E, 0xD1, 0xEE,
+ 0xDD, 0x65, 0xCA, 0x4A, 0x06, 0x45, 0x5C, 0xB9, 0x4C, 0xD4, 0x0A, 0x52,
+ 0xEC, 0x36, 0x0E, 0x84, 0xB3, 0xC9, 0x26, 0xE2, 0x2C, 0x43, 0x80, 0xA3,
+ 0xBF, 0x30, 0x9D, 0x56, 0x84, 0x97, 0x68, 0xB7, 0xF5, 0x2C, 0xFD, 0xF6,
+ 0x55, 0xFD, 0x05, 0x3A, 0x7E, 0xF7, 0x06, 0x97, 0x9E, 0x7E, 0x58, 0x06,
+ 0xB1, 0x7D, 0xFA, 0xE5, 0x3A, 0xD2, 0xA5, 0xBC, 0x56, 0x8E, 0xBB, 0x52,
+ 0x9A, 0x7A, 0x61, 0xD6, 0x8D, 0x25, 0x6F, 0x8F, 0xC9, 0x7C, 0x07, 0x4A,
+ 0x86, 0x1D, 0x82, 0x7E, 0x2E, 0xBC, 0x8C, 0x61, 0x34, 0x55, 0x31, 0x15,
+ 0xB7, 0x0E, 0x71, 0x03, 0x92, 0x0A, 0xA1, 0x6D, 0x85, 0xE5, 0x2B, 0xCB,
+ 0xAB, 0x8D, 0x78, 0x6A, 0x68, 0x17, 0x8F, 0xA8, 0xFF, 0x7C, 0x2F, 0x5C,
+ 0x71, 0x64, 0x8D, 0x6F
+};
+
+static const unsigned char dhtest_2048_224_xB[] = {
+ 0x4F, 0xF3, 0xBC, 0x96, 0xC7, 0xFC, 0x6A, 0x6D, 0x71, 0xD3, 0xB3, 0x63,
+ 0x80, 0x0A, 0x7C, 0xDF, 0xEF, 0x6F, 0xC4, 0x1B, 0x44, 0x17, 0xEA, 0x15,
+ 0x35, 0x3B, 0x75, 0x90
+};
+
+static const unsigned char dhtest_2048_224_yB[] = {
+ 0x4D, 0xCE, 0xE9, 0x92, 0xA9, 0x76, 0x2A, 0x13, 0xF2, 0xF8, 0x38, 0x44,
+ 0xAD, 0x3D, 0x77, 0xEE, 0x0E, 0x31, 0xC9, 0x71, 0x8B, 0x3D, 0xB6, 0xC2,
+ 0x03, 0x5D, 0x39, 0x61, 0x18, 0x2C, 0x3E, 0x0B, 0xA2, 0x47, 0xEC, 0x41,
+ 0x82, 0xD7, 0x60, 0xCD, 0x48, 0xD9, 0x95, 0x99, 0x97, 0x06, 0x22, 0xA1,
+ 0x88, 0x1B, 0xBA, 0x2D, 0xC8, 0x22, 0x93, 0x9C, 0x78, 0xC3, 0x91, 0x2C,
+ 0x66, 0x61, 0xFA, 0x54, 0x38, 0xB2, 0x07, 0x66, 0x22, 0x2B, 0x75, 0xE2,
+ 0x4C, 0x2E, 0x3A, 0xD0, 0xC7, 0x28, 0x72, 0x36, 0x12, 0x95, 0x25, 0xEE,
+ 0x15, 0xB5, 0xDD, 0x79, 0x98, 0xAA, 0x04, 0xC4, 0xA9, 0x69, 0x6C, 0xAC,
+ 0xD7, 0x17, 0x20, 0x83, 0xA9, 0x7A, 0x81, 0x66, 0x4E, 0xAD, 0x2C, 0x47,
+ 0x9E, 0x44, 0x4E, 0x4C, 0x06, 0x54, 0xCC, 0x19, 0xE2, 0x8D, 0x77, 0x03,
+ 0xCE, 0xE8, 0xDA, 0xCD, 0x61, 0x26, 0xF5, 0xD6, 0x65, 0xEC, 0x52, 0xC6,
+ 0x72, 0x55, 0xDB, 0x92, 0x01, 0x4B, 0x03, 0x7E, 0xB6, 0x21, 0xA2, 0xAC,
+ 0x8E, 0x36, 0x5D, 0xE0, 0x71, 0xFF, 0xC1, 0x40, 0x0A, 0xCF, 0x07, 0x7A,
+ 0x12, 0x91, 0x3D, 0xD8, 0xDE, 0x89, 0x47, 0x34, 0x37, 0xAB, 0x7B, 0xA3,
+ 0x46, 0x74, 0x3C, 0x1B, 0x21, 0x5D, 0xD9, 0xC1, 0x21, 0x64, 0xA7, 0xE4,
+ 0x05, 0x31, 0x18, 0xD1, 0x99, 0xBE, 0xC8, 0xEF, 0x6F, 0xC5, 0x61, 0x17,
+ 0x0C, 0x84, 0xC8, 0x7D, 0x10, 0xEE, 0x9A, 0x67, 0x4A, 0x1F, 0xA8, 0xFF,
+ 0xE1, 0x3B, 0xDF, 0xBA, 0x1D, 0x44, 0xDE, 0x48, 0x94, 0x6D, 0x68, 0xDC,
+ 0x0C, 0xDD, 0x77, 0x76, 0x35, 0xA7, 0xAB, 0x5B, 0xFB, 0x1E, 0x4B, 0xB7,
+ 0xB8, 0x56, 0xF9, 0x68, 0x27, 0x73, 0x4C, 0x18, 0x41, 0x38, 0xE9, 0x15,
+ 0xD9, 0xC3, 0x00, 0x2E, 0xBC, 0xE5, 0x31, 0x20, 0x54, 0x6A, 0x7E, 0x20,
+ 0x02, 0x14, 0x2B, 0x6C
+};
+
+static const unsigned char dhtest_2048_224_Z[] = {
+ 0x34, 0xD9, 0xBD, 0xDC, 0x1B, 0x42, 0x17, 0x6C, 0x31, 0x3F, 0xEA, 0x03,
+ 0x4C, 0x21, 0x03, 0x4D, 0x07, 0x4A, 0x63, 0x13, 0xBB, 0x4E, 0xCD, 0xB3,
+ 0x70, 0x3F, 0xFF, 0x42, 0x45, 0x67, 0xA4, 0x6B, 0xDF, 0x75, 0x53, 0x0E,
+ 0xDE, 0x0A, 0x9D, 0xA5, 0x22, 0x9D, 0xE7, 0xD7, 0x67, 0x32, 0x28, 0x6C,
+ 0xBC, 0x0F, 0x91, 0xDA, 0x4C, 0x3C, 0x85, 0x2F, 0xC0, 0x99, 0xC6, 0x79,
+ 0x53, 0x1D, 0x94, 0xC7, 0x8A, 0xB0, 0x3D, 0x9D, 0xEC, 0xB0, 0xA4, 0xE4,
+ 0xCA, 0x8B, 0x2B, 0xB4, 0x59, 0x1C, 0x40, 0x21, 0xCF, 0x8C, 0xE3, 0xA2,
+ 0x0A, 0x54, 0x1D, 0x33, 0x99, 0x40, 0x17, 0xD0, 0x20, 0x0A, 0xE2, 0xC9,
+ 0x51, 0x6E, 0x2F, 0xF5, 0x14, 0x57, 0x79, 0x26, 0x9E, 0x86, 0x2B, 0x0F,
+ 0xB4, 0x74, 0xA2, 0xD5, 0x6D, 0xC3, 0x1E, 0xD5, 0x69, 0xA7, 0x70, 0x0B,
+ 0x4C, 0x4A, 0xB1, 0x6B, 0x22, 0xA4, 0x55, 0x13, 0x53, 0x1E, 0xF5, 0x23,
+ 0xD7, 0x12, 0x12, 0x07, 0x7B, 0x5A, 0x16, 0x9B, 0xDE, 0xFF, 0xAD, 0x7A,
+ 0xD9, 0x60, 0x82, 0x84, 0xC7, 0x79, 0x5B, 0x6D, 0x5A, 0x51, 0x83, 0xB8,
+ 0x70, 0x66, 0xDE, 0x17, 0xD8, 0xD6, 0x71, 0xC9, 0xEB, 0xD8, 0xEC, 0x89,
+ 0x54, 0x4D, 0x45, 0xEC, 0x06, 0x15, 0x93, 0xD4, 0x42, 0xC6, 0x2A, 0xB9,
+ 0xCE, 0x3B, 0x1C, 0xB9, 0x94, 0x3A, 0x1D, 0x23, 0xA5, 0xEA, 0x3B, 0xCF,
+ 0x21, 0xA0, 0x14, 0x71, 0xE6, 0x7E, 0x00, 0x3E, 0x7F, 0x8A, 0x69, 0xC7,
+ 0x28, 0xBE, 0x49, 0x0B, 0x2F, 0xC8, 0x8C, 0xFE, 0xB9, 0x2D, 0xB6, 0xA2,
+ 0x15, 0xE5, 0xD0, 0x3C, 0x17, 0xC4, 0x64, 0xC9, 0xAC, 0x1A, 0x46, 0xE2,
+ 0x03, 0xE1, 0x3F, 0x95, 0x29, 0x95, 0xFB, 0x03, 0xC6, 0x9D, 0x3C, 0xC4,
+ 0x7F, 0xCB, 0x51, 0x0B, 0x69, 0x98, 0xFF, 0xD3, 0xAA, 0x6D, 0xE7, 0x3C,
+ 0xF9, 0xF6, 0x38, 0x69
+};
+
+static const unsigned char dhtest_2048_256_xA[] = {
+ 0x08, 0x81, 0x38, 0x2C, 0xDB, 0x87, 0x66, 0x0C, 0x6D, 0xC1, 0x3E, 0x61,
+ 0x49, 0x38, 0xD5, 0xB9, 0xC8, 0xB2, 0xF2, 0x48, 0x58, 0x1C, 0xC5, 0xE3,
+ 0x1B, 0x35, 0x45, 0x43, 0x97, 0xFC, 0xE5, 0x0E
+};
+
+static const unsigned char dhtest_2048_256_yA[] = {
+ 0x2E, 0x93, 0x80, 0xC8, 0x32, 0x3A, 0xF9, 0x75, 0x45, 0xBC, 0x49, 0x41,
+ 0xDE, 0xB0, 0xEC, 0x37, 0x42, 0xC6, 0x2F, 0xE0, 0xEC, 0xE8, 0x24, 0xA6,
+ 0xAB, 0xDB, 0xE6, 0x6C, 0x59, 0xBE, 0xE0, 0x24, 0x29, 0x11, 0xBF, 0xB9,
+ 0x67, 0x23, 0x5C, 0xEB, 0xA3, 0x5A, 0xE1, 0x3E, 0x4E, 0xC7, 0x52, 0xBE,
+ 0x63, 0x0B, 0x92, 0xDC, 0x4B, 0xDE, 0x28, 0x47, 0xA9, 0xC6, 0x2C, 0xB8,
+ 0x15, 0x27, 0x45, 0x42, 0x1F, 0xB7, 0xEB, 0x60, 0xA6, 0x3C, 0x0F, 0xE9,
+ 0x15, 0x9F, 0xCC, 0xE7, 0x26, 0xCE, 0x7C, 0xD8, 0x52, 0x3D, 0x74, 0x50,
+ 0x66, 0x7E, 0xF8, 0x40, 0xE4, 0x91, 0x91, 0x21, 0xEB, 0x5F, 0x01, 0xC8,
+ 0xC9, 0xB0, 0xD3, 0xD6, 0x48, 0xA9, 0x3B, 0xFB, 0x75, 0x68, 0x9E, 0x82,
+ 0x44, 0xAC, 0x13, 0x4A, 0xF5, 0x44, 0x71, 0x1C, 0xE7, 0x9A, 0x02, 0xDC,
+ 0xC3, 0x42, 0x26, 0x68, 0x47, 0x80, 0xDD, 0xDC, 0xB4, 0x98, 0x59, 0x41,
+ 0x06, 0xC3, 0x7F, 0x5B, 0xC7, 0x98, 0x56, 0x48, 0x7A, 0xF5, 0xAB, 0x02,
+ 0x2A, 0x2E, 0x5E, 0x42, 0xF0, 0x98, 0x97, 0xC1, 0xA8, 0x5A, 0x11, 0xEA,
+ 0x02, 0x12, 0xAF, 0x04, 0xD9, 0xB4, 0xCE, 0xBC, 0x93, 0x7C, 0x3C, 0x1A,
+ 0x3E, 0x15, 0xA8, 0xA0, 0x34, 0x2E, 0x33, 0x76, 0x15, 0xC8, 0x4E, 0x7F,
+ 0xE3, 0xB8, 0xB9, 0xB8, 0x7F, 0xB1, 0xE7, 0x3A, 0x15, 0xAF, 0x12, 0xA3,
+ 0x0D, 0x74, 0x6E, 0x06, 0xDF, 0xC3, 0x4F, 0x29, 0x0D, 0x79, 0x7C, 0xE5,
+ 0x1A, 0xA1, 0x3A, 0xA7, 0x85, 0xBF, 0x66, 0x58, 0xAF, 0xF5, 0xE4, 0xB0,
+ 0x93, 0x00, 0x3C, 0xBE, 0xAF, 0x66, 0x5B, 0x3C, 0x2E, 0x11, 0x3A, 0x3A,
+ 0x4E, 0x90, 0x52, 0x69, 0x34, 0x1D, 0xC0, 0x71, 0x14, 0x26, 0x68, 0x5F,
+ 0x4E, 0xF3, 0x7E, 0x86, 0x8A, 0x81, 0x26, 0xFF, 0x3F, 0x22, 0x79, 0xB5,
+ 0x7C, 0xA6, 0x7E, 0x29
+};
+
+static const unsigned char dhtest_2048_256_xB[] = {
+ 0x7D, 0x62, 0xA7, 0xE3, 0xEF, 0x36, 0xDE, 0x61, 0x7B, 0x13, 0xD1, 0xAF,
+ 0xB8, 0x2C, 0x78, 0x0D, 0x83, 0xA2, 0x3B, 0xD4, 0xEE, 0x67, 0x05, 0x64,
+ 0x51, 0x21, 0xF3, 0x71, 0xF5, 0x46, 0xA5, 0x3D
+};
+
+static const unsigned char dhtest_2048_256_yB[] = {
+ 0x57, 0x5F, 0x03, 0x51, 0xBD, 0x2B, 0x1B, 0x81, 0x74, 0x48, 0xBD, 0xF8,
+ 0x7A, 0x6C, 0x36, 0x2C, 0x1E, 0x28, 0x9D, 0x39, 0x03, 0xA3, 0x0B, 0x98,
+ 0x32, 0xC5, 0x74, 0x1F, 0xA2, 0x50, 0x36, 0x3E, 0x7A, 0xCB, 0xC7, 0xF7,
+ 0x7F, 0x3D, 0xAC, 0xBC, 0x1F, 0x13, 0x1A, 0xDD, 0x8E, 0x03, 0x36, 0x7E,
+ 0xFF, 0x8F, 0xBB, 0xB3, 0xE1, 0xC5, 0x78, 0x44, 0x24, 0x80, 0x9B, 0x25,
+ 0xAF, 0xE4, 0xD2, 0x26, 0x2A, 0x1A, 0x6F, 0xD2, 0xFA, 0xB6, 0x41, 0x05,
+ 0xCA, 0x30, 0xA6, 0x74, 0xE0, 0x7F, 0x78, 0x09, 0x85, 0x20, 0x88, 0x63,
+ 0x2F, 0xC0, 0x49, 0x23, 0x37, 0x91, 0xAD, 0x4E, 0xDD, 0x08, 0x3A, 0x97,
+ 0x8B, 0x88, 0x3E, 0xE6, 0x18, 0xBC, 0x5E, 0x0D, 0xD0, 0x47, 0x41, 0x5F,
+ 0x2D, 0x95, 0xE6, 0x83, 0xCF, 0x14, 0x82, 0x6B, 0x5F, 0xBE, 0x10, 0xD3,
+ 0xCE, 0x41, 0xC6, 0xC1, 0x20, 0xC7, 0x8A, 0xB2, 0x00, 0x08, 0xC6, 0x98,
+ 0xBF, 0x7F, 0x0B, 0xCA, 0xB9, 0xD7, 0xF4, 0x07, 0xBE, 0xD0, 0xF4, 0x3A,
+ 0xFB, 0x29, 0x70, 0xF5, 0x7F, 0x8D, 0x12, 0x04, 0x39, 0x63, 0xE6, 0x6D,
+ 0xDD, 0x32, 0x0D, 0x59, 0x9A, 0xD9, 0x93, 0x6C, 0x8F, 0x44, 0x13, 0x7C,
+ 0x08, 0xB1, 0x80, 0xEC, 0x5E, 0x98, 0x5C, 0xEB, 0xE1, 0x86, 0xF3, 0xD5,
+ 0x49, 0x67, 0x7E, 0x80, 0x60, 0x73, 0x31, 0xEE, 0x17, 0xAF, 0x33, 0x80,
+ 0xA7, 0x25, 0xB0, 0x78, 0x23, 0x17, 0xD7, 0xDD, 0x43, 0xF5, 0x9D, 0x7A,
+ 0xF9, 0x56, 0x8A, 0x9B, 0xB6, 0x3A, 0x84, 0xD3, 0x65, 0xF9, 0x22, 0x44,
+ 0xED, 0x12, 0x09, 0x88, 0x21, 0x93, 0x02, 0xF4, 0x29, 0x24, 0xC7, 0xCA,
+ 0x90, 0xB8, 0x9D, 0x24, 0xF7, 0x1B, 0x0A, 0xB6, 0x97, 0x82, 0x3D, 0x7D,
+ 0xEB, 0x1A, 0xFF, 0x5B, 0x0E, 0x8E, 0x4A, 0x45, 0xD4, 0x9F, 0x7F, 0x53,
+ 0x75, 0x7E, 0x19, 0x13
+};
+
+static const unsigned char dhtest_2048_256_Z[] = {
+ 0x86, 0xC7, 0x0B, 0xF8, 0xD0, 0xBB, 0x81, 0xBB, 0x01, 0x07, 0x8A, 0x17,
+ 0x21, 0x9C, 0xB7, 0xD2, 0x72, 0x03, 0xDB, 0x2A, 0x19, 0xC8, 0x77, 0xF1,
+ 0xD1, 0xF1, 0x9F, 0xD7, 0xD7, 0x7E, 0xF2, 0x25, 0x46, 0xA6, 0x8F, 0x00,
+ 0x5A, 0xD5, 0x2D, 0xC8, 0x45, 0x53, 0xB7, 0x8F, 0xC6, 0x03, 0x30, 0xBE,
+ 0x51, 0xEA, 0x7C, 0x06, 0x72, 0xCA, 0xC1, 0x51, 0x5E, 0x4B, 0x35, 0xC0,
+ 0x47, 0xB9, 0xA5, 0x51, 0xB8, 0x8F, 0x39, 0xDC, 0x26, 0xDA, 0x14, 0xA0,
+ 0x9E, 0xF7, 0x47, 0x74, 0xD4, 0x7C, 0x76, 0x2D, 0xD1, 0x77, 0xF9, 0xED,
+ 0x5B, 0xC2, 0xF1, 0x1E, 0x52, 0xC8, 0x79, 0xBD, 0x95, 0x09, 0x85, 0x04,
+ 0xCD, 0x9E, 0xEC, 0xD8, 0xA8, 0xF9, 0xB3, 0xEF, 0xBD, 0x1F, 0x00, 0x8A,
+ 0xC5, 0x85, 0x30, 0x97, 0xD9, 0xD1, 0x83, 0x7F, 0x2B, 0x18, 0xF7, 0x7C,
+ 0xD7, 0xBE, 0x01, 0xAF, 0x80, 0xA7, 0xC7, 0xB5, 0xEA, 0x3C, 0xA5, 0x4C,
+ 0xC0, 0x2D, 0x0C, 0x11, 0x6F, 0xEE, 0x3F, 0x95, 0xBB, 0x87, 0x39, 0x93,
+ 0x85, 0x87, 0x5D, 0x7E, 0x86, 0x74, 0x7E, 0x67, 0x6E, 0x72, 0x89, 0x38,
+ 0xAC, 0xBF, 0xF7, 0x09, 0x8E, 0x05, 0xBE, 0x4D, 0xCF, 0xB2, 0x40, 0x52,
+ 0xB8, 0x3A, 0xEF, 0xFB, 0x14, 0x78, 0x3F, 0x02, 0x9A, 0xDB, 0xDE, 0x7F,
+ 0x53, 0xFA, 0xE9, 0x20, 0x84, 0x22, 0x40, 0x90, 0xE0, 0x07, 0xCE, 0xE9,
+ 0x4D, 0x4B, 0xF2, 0xBA, 0xCE, 0x9F, 0xFD, 0x4B, 0x57, 0xD2, 0xAF, 0x7C,
+ 0x72, 0x4D, 0x0C, 0xAA, 0x19, 0xBF, 0x05, 0x01, 0xF6, 0xF1, 0x7B, 0x4A,
+ 0xA1, 0x0F, 0x42, 0x5E, 0x3E, 0xA7, 0x60, 0x80, 0xB4, 0xB9, 0xD6, 0xB3,
+ 0xCE, 0xFE, 0xA1, 0x15, 0xB2, 0xCE, 0xB8, 0x78, 0x9B, 0xB8, 0xA3, 0xB0,
+ 0xEA, 0x87, 0xFE, 0xBE, 0x63, 0xB6, 0xC8, 0xF8, 0x46, 0xEC, 0x6D, 0xB0,
+ 0xC2, 0x6C, 0x5D, 0x7C
+};
+
+static const unsigned char dhtest_rfc5114_2048_224_bad_y[] = {
+ 0x45, 0x32, 0x5F, 0x51, 0x07, 0xE5, 0xDF, 0x1C, 0xD6, 0x02, 0x82, 0xB3,
+ 0x32, 0x8F, 0xA4, 0x0F, 0x87, 0xB8, 0x41, 0xFE, 0xB9, 0x35, 0xDE, 0xAD,
+ 0xC6, 0x26, 0x85, 0xB4, 0xFF, 0x94, 0x8C, 0x12, 0x4C, 0xBF, 0x5B, 0x20,
+ 0xC4, 0x46, 0xA3, 0x26, 0xEB, 0xA4, 0x25, 0xB7, 0x68, 0x8E, 0xCC, 0x67,
+ 0xBA, 0xEA, 0x58, 0xD0, 0xF2, 0xE9, 0xD2, 0x24, 0x72, 0x60, 0xDA, 0x88,
+ 0x18, 0x9C, 0xE0, 0x31, 0x6A, 0xAD, 0x50, 0x6D, 0x94, 0x35, 0x8B, 0x83,
+ 0x4A, 0x6E, 0xFA, 0x48, 0x73, 0x0F, 0x83, 0x87, 0xFF, 0x6B, 0x66, 0x1F,
+ 0xA8, 0x82, 0xC6, 0x01, 0xE5, 0x80, 0xB5, 0xB0, 0x52, 0xD0, 0xE9, 0xD8,
+ 0x72, 0xF9, 0x7D, 0x5B, 0x8B, 0xA5, 0x4C, 0xA5, 0x25, 0x95, 0x74, 0xE2,
+ 0x7A, 0x61, 0x4E, 0xA7, 0x8F, 0x12, 0xE2, 0xD2, 0x9D, 0x8C, 0x02, 0x70,
+ 0x34, 0x44, 0x32, 0xC7, 0xB2, 0xF3, 0xB9, 0xFE, 0x17, 0x2B, 0xD6, 0x1F,
+ 0x8B, 0x7E, 0x4A, 0xFA, 0xA3, 0xB5, 0x3E, 0x7A, 0x81, 0x9A, 0x33, 0x66,
+ 0x62, 0xA4, 0x50, 0x18, 0x3E, 0xA2, 0x5F, 0x00, 0x07, 0xD8, 0x9B, 0x22,
+ 0xE4, 0xEC, 0x84, 0xD5, 0xEB, 0x5A, 0xF3, 0x2A, 0x31, 0x23, 0xD8, 0x44,
+ 0x22, 0x2A, 0x8B, 0x37, 0x44, 0xCC, 0xC6, 0x87, 0x4B, 0xBE, 0x50, 0x9D,
+ 0x4A, 0xC4, 0x8E, 0x45, 0xCF, 0x72, 0x4D, 0xC0, 0x89, 0xB3, 0x72, 0xED,
+ 0x33, 0x2C, 0xBC, 0x7F, 0x16, 0x39, 0x3B, 0xEB, 0xD2, 0xDD, 0xA8, 0x01,
+ 0x73, 0x84, 0x62, 0xB9, 0x29, 0xD2, 0xC9, 0x51, 0x32, 0x9E, 0x7A, 0x6A,
+ 0xCF, 0xC1, 0x0A, 0xDB, 0x0E, 0xE0, 0x62, 0x77, 0x6F, 0x59, 0x62, 0x72,
+ 0x5A, 0x69, 0xA6, 0x5B, 0x70, 0xCA, 0x65, 0xC4, 0x95, 0x6F, 0x9A, 0xC2,
+ 0xDF, 0x72, 0x6D, 0xB1, 0x1E, 0x54, 0x7B, 0x51, 0xB4, 0xEF, 0x7F, 0x89,
+ 0x93, 0x74, 0x89, 0x59
+};
+
+typedef struct {
+ DH *(*get_param) (void);
+ const unsigned char *xA;
+ size_t xA_len;
+ const unsigned char *yA;
+ size_t yA_len;
+ const unsigned char *xB;
+ size_t xB_len;
+ const unsigned char *yB;
+ size_t yB_len;
+ const unsigned char *Z;
+ size_t Z_len;
+} rfc5114_td;
+
+# define make_rfc5114_td(pre) { \
+ DH_get_##pre, \
+ dhtest_##pre##_xA, sizeof(dhtest_##pre##_xA), \
+ dhtest_##pre##_yA, sizeof(dhtest_##pre##_yA), \
+ dhtest_##pre##_xB, sizeof(dhtest_##pre##_xB), \
+ dhtest_##pre##_yB, sizeof(dhtest_##pre##_yB), \
+ dhtest_##pre##_Z, sizeof(dhtest_##pre##_Z) \
+ }
+
+static const rfc5114_td rfctd[] = {
+ make_rfc5114_td(1024_160),
+ make_rfc5114_td(2048_224),
+ make_rfc5114_td(2048_256)
+};
+
+static int rfc5114_test(void)
+{
+ int i;
+ DH *dhA = NULL;
+ DH *dhB = NULL;
+ unsigned char *Z1 = NULL;
+ unsigned char *Z2 = NULL;
+ const rfc5114_td *td = NULL;
+ BIGNUM *bady = NULL, *priv_key = NULL, *pub_key = NULL;
+ const BIGNUM *pub_key_tmp;
+
+ for (i = 0; i < (int)OSSL_NELEM(rfctd); i++) {
+ td = rfctd + i;
+ /* Set up DH structures setting key components */
+ if (!TEST_ptr(dhA = td->get_param())
+ || !TEST_ptr(dhB = td->get_param()))
+ goto bad_err;
+
+ if (!TEST_ptr(priv_key = BN_bin2bn(td->xA, td->xA_len, NULL))
+ || !TEST_ptr(pub_key = BN_bin2bn(td->yA, td->yA_len, NULL))
+ || !TEST_true(DH_set0_key(dhA, pub_key, priv_key)))
+ goto bad_err;
+
+ if (!TEST_ptr(priv_key = BN_bin2bn(td->xB, td->xB_len, NULL))
+ || !TEST_ptr(pub_key = BN_bin2bn(td->yB, td->yB_len, NULL))
+ || !TEST_true( DH_set0_key(dhB, pub_key, priv_key)))
+ goto bad_err;
+ priv_key = pub_key = NULL;
+
+ if (!TEST_uint_eq(td->Z_len, (size_t)DH_size(dhA))
+ || !TEST_uint_eq(td->Z_len, (size_t)DH_size(dhB)))
+ goto err;
+
+ if (!TEST_ptr(Z1 = OPENSSL_malloc(DH_size(dhA)))
+ || !TEST_ptr(Z2 = OPENSSL_malloc(DH_size(dhB))))
+ goto bad_err;
+ /*
+ * Work out shared secrets using both sides and compare with expected
+ * values.
+ */
+ DH_get0_key(dhB, &pub_key_tmp, NULL);
+ if (!TEST_int_ne(DH_compute_key(Z1, pub_key_tmp, dhA), -1))
+ goto bad_err;
+
+ DH_get0_key(dhA, &pub_key_tmp, NULL);
+ if (!TEST_int_ne(DH_compute_key(Z2, pub_key_tmp, dhB), -1))
+ goto bad_err;
+
+ if (!TEST_mem_eq(Z1, td->Z_len, td->Z, td->Z_len)
+ || !TEST_mem_eq(Z2, td->Z_len, td->Z, td->Z_len))
+ goto err;
+
+ DH_free(dhA);
+ dhA = NULL;
+ DH_free(dhB);
+ dhB = NULL;
+ OPENSSL_free(Z1);
+ Z1 = NULL;
+ OPENSSL_free(Z2);
+ Z2 = NULL;
+ }
+
+ /* Now i == OSSL_NELEM(rfctd) */
+ /* RFC5114 uses unsafe primes, so now test an invalid y value */
+ if (!TEST_ptr(dhA = DH_get_2048_224())
+ || !TEST_ptr(Z1 = OPENSSL_malloc(DH_size(dhA))))
+ goto bad_err;
+
+ if (!TEST_ptr(bady = BN_bin2bn(dhtest_rfc5114_2048_224_bad_y,
+ sizeof(dhtest_rfc5114_2048_224_bad_y),
+ NULL)))
+ goto bad_err;
+
+ if (!DH_generate_key(dhA))
+ goto bad_err;
+
+ if (DH_compute_key(Z1, bady, dhA) != -1) {
+ /*
+ * DH_compute_key should fail with -1. If we get here we unexpectedly
+ * allowed an invalid y value
+ */
+ goto err;
+ }
+ /* We'll have a stale error on the queue from the above test so clear it */
+ ERR_clear_error();
+ BN_free(bady);
+ DH_free(dhA);
+ OPENSSL_free(Z1);
+ return 1;
+
+ bad_err:
+ BN_free(bady);
+ DH_free(dhA);
+ DH_free(dhB);
+ BN_free(pub_key);
+ BN_free(priv_key);
+ OPENSSL_free(Z1);
+ OPENSSL_free(Z2);
+ TEST_error("Initialisation error RFC5114 set %d\n", i + 1);
+ return 0;
+
+ err:
+ BN_free(bady);
+ DH_free(dhA);
+ DH_free(dhB);
+ OPENSSL_free(Z1);
+ OPENSSL_free(Z2);
+ TEST_error("Test failed RFC5114 set %d\n", i + 1);
+ return 0;
+}
+
+static int rfc7919_test(void)
+{
+ DH *a = NULL, *b = NULL;
+ const BIGNUM *apub_key = NULL, *bpub_key = NULL;
+ unsigned char *abuf = NULL;
+ unsigned char *bbuf = NULL;
+ int i, alen, blen, aout, bout;
+ int ret = 0;
+
+ if (!TEST_ptr(a = DH_new_by_nid(NID_ffdhe2048)))
+ goto err;
+
+ if (!DH_check(a, &i))
+ goto err;
+ if (!TEST_false(i & DH_CHECK_P_NOT_PRIME)
+ || !TEST_false(i & DH_CHECK_P_NOT_SAFE_PRIME)
+ || !TEST_false(i & DH_UNABLE_TO_CHECK_GENERATOR)
+ || !TEST_false(i & DH_NOT_SUITABLE_GENERATOR)
+ || !TEST_false(i))
+ goto err;
+
+ if (!DH_generate_key(a))
+ goto err;
+ DH_get0_key(a, &apub_key, NULL);
+
+ /* now create another copy of the DH group for the peer */
+ if (!TEST_ptr(b = DH_new_by_nid(NID_ffdhe2048)))
+ goto err;
+
+ if (!DH_generate_key(b))
+ goto err;
+ DH_get0_key(b, &bpub_key, NULL);
+
+ alen = DH_size(a);
+ if (!TEST_ptr(abuf = OPENSSL_malloc(alen))
+ || !TEST_true((aout = DH_compute_key(abuf, bpub_key, a)) != -1))
+ goto err;
+
+ blen = DH_size(b);
+ if (!TEST_ptr(bbuf = OPENSSL_malloc(blen))
+ || !TEST_true((bout = DH_compute_key(bbuf, apub_key, b)) != -1))
+ goto err;
+
+ if (!TEST_true(aout >= 20)
+ || !TEST_mem_eq(abuf, aout, bbuf, bout))
+ goto err;
+
+ ret = 1;
+
+ err:
+ OPENSSL_free(abuf);
+ OPENSSL_free(bbuf);
+ DH_free(a);
+ DH_free(b);
+ return ret;
+}
+#endif
+
+
+int setup_tests(void)
+{
+#ifdef OPENSSL_NO_DH
+ TEST_note("No DH support");
+#else
+ ADD_TEST(dh_test);
+ ADD_TEST(rfc5114_test);
+ ADD_TEST(rfc7919_test);
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbg_cavs_data.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbg_cavs_data.c
new file mode 100644
index 000000000..6f676ab09
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbg_cavs_data.c
@@ -0,0 +1,170320 @@
+/*
+ * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/*
+ * DRBG test vectors from:
+ * https://csrc.nist.gov/projects/cryptographic-algorithm-validation-program/
+ */
+
+#include <openssl/obj_mac.h>
+#include "internal/nelem.h"
+#include "drbg_cavs_data.h"
+
+static const unsigned char kat1_entropyin[] = {
+ 0x89, 0x0e, 0xb0, 0x67, 0xac, 0xf7, 0x38, 0x2e, 0xff, 0x80, 0xb0, 0xc7,
+ 0x3b, 0xc8, 0x72, 0xc6,
+};
+static const unsigned char kat1_nonce[] = {
+ 0xaa, 0xd4, 0x71, 0xef, 0x3e, 0xf1, 0xd2, 0x03,
+};
+static const unsigned char kat1_persstr[] = {0};
+static const unsigned char kat1_addin0[] = {0};
+static const unsigned char kat1_addin1[] = {0};
+static const unsigned char kat1_retbits[] = {
+ 0xa5, 0x51, 0x4e, 0xd7, 0x09, 0x5f, 0x64, 0xf3, 0xd0, 0xd3, 0xa5, 0x76,
+ 0x03, 0x94, 0xab, 0x42, 0x06, 0x2f, 0x37, 0x3a, 0x25, 0x07, 0x2a, 0x6e,
+ 0xa6, 0xbc, 0xfd, 0x84, 0x89, 0xe9, 0x4a, 0xf6, 0xcf, 0x18, 0x65, 0x9f,
+ 0xea, 0x22, 0xed, 0x1c, 0xa0, 0xa9, 0xe3, 0x3f, 0x71, 0x8b, 0x11, 0x5e,
+ 0xe5, 0x36, 0xb1, 0x28, 0x09, 0xc3, 0x1b, 0x72, 0xb0, 0x8d, 0xdd, 0x8b,
+ 0xe1, 0x91, 0x0f, 0xa3,
+};
+static const struct drbg_kat_no_reseed kat1_t = {
+ 0, kat1_entropyin, kat1_nonce, kat1_persstr,
+ kat1_addin0, kat1_addin1, kat1_retbits
+};
+static const struct drbg_kat kat1 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1_t
+};
+
+static const unsigned char kat2_entropyin[] = {
+ 0xc4, 0x7b, 0xe8, 0xe8, 0x21, 0x9a, 0x5a, 0x87, 0xc9, 0x40, 0x64, 0xa5,
+ 0x12, 0x08, 0x9f, 0x2b,
+};
+static const unsigned char kat2_nonce[] = {
+ 0xf2, 0xa2, 0x3e, 0x63, 0x6a, 0xee, 0x75, 0xc6,
+};
+static const unsigned char kat2_persstr[] = {0};
+static const unsigned char kat2_addin0[] = {0};
+static const unsigned char kat2_addin1[] = {0};
+static const unsigned char kat2_retbits[] = {
+ 0x5a, 0x16, 0x50, 0xbb, 0x6d, 0x6a, 0x16, 0xf6, 0x04, 0x05, 0x91, 0xd5,
+ 0x6a, 0xbc, 0xd5, 0xdd, 0x3d, 0xb8, 0x77, 0x2a, 0x9c, 0x75, 0xc4, 0x4d,
+ 0x9f, 0xc6, 0x4d, 0x51, 0xb7, 0x33, 0xd4, 0xa6, 0x75, 0x9b, 0xd5, 0xa6,
+ 0x4e, 0xc4, 0x23, 0x1a, 0x24, 0xe6, 0x62, 0xfd, 0xd4, 0x7c, 0x82, 0xdb,
+ 0x63, 0xb2, 0x00, 0xda, 0xf8, 0xd0, 0x98, 0x56, 0x0e, 0xb5, 0xba, 0x7b,
+ 0xf3, 0xf9, 0xab, 0xf7,
+};
+static const struct drbg_kat_no_reseed kat2_t = {
+ 1, kat2_entropyin, kat2_nonce, kat2_persstr,
+ kat2_addin0, kat2_addin1, kat2_retbits
+};
+static const struct drbg_kat kat2 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2_t
+};
+
+static const unsigned char kat3_entropyin[] = {
+ 0x13, 0x0b, 0x8c, 0x3d, 0x2d, 0x7b, 0x6e, 0x02, 0xc4, 0x10, 0xb4, 0x16,
+ 0x8e, 0x12, 0x2c, 0x38,
+};
+static const unsigned char kat3_nonce[] = {
+ 0x79, 0xa6, 0x74, 0xc5, 0xb2, 0xc5, 0x1a, 0xa9,
+};
+static const unsigned char kat3_persstr[] = {0};
+static const unsigned char kat3_addin0[] = {0};
+static const unsigned char kat3_addin1[] = {0};
+static const unsigned char kat3_retbits[] = {
+ 0x57, 0xe8, 0xa1, 0xe5, 0x78, 0xed, 0xe1, 0xc6, 0x68, 0x79, 0xc4, 0x30,
+ 0xdf, 0x72, 0x64, 0x35, 0xd5, 0x1a, 0x36, 0x9a, 0x0f, 0xe5, 0x9a, 0x03,
+ 0x58, 0xd1, 0xde, 0x35, 0x2d, 0x42, 0x80, 0xfd, 0x7b, 0x22, 0x5f, 0x5f,
+ 0x38, 0x6a, 0x4f, 0xcf, 0x12, 0xf7, 0x27, 0x94, 0xad, 0x0f, 0x37, 0x57,
+ 0xfb, 0x25, 0xde, 0xba, 0x3c, 0x75, 0x12, 0xce, 0x4d, 0x37, 0x33, 0xc7,
+ 0xee, 0x06, 0x70, 0x43,
+};
+static const struct drbg_kat_no_reseed kat3_t = {
+ 2, kat3_entropyin, kat3_nonce, kat3_persstr,
+ kat3_addin0, kat3_addin1, kat3_retbits
+};
+static const struct drbg_kat kat3 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3_t
+};
+
+static const unsigned char kat4_entropyin[] = {
+ 0x04, 0xd2, 0x41, 0x45, 0x28, 0x76, 0x64, 0xf6, 0x76, 0x2b, 0x5d, 0x2a,
+ 0x10, 0x2a, 0xc6, 0x03,
+};
+static const unsigned char kat4_nonce[] = {
+ 0xec, 0xac, 0x63, 0xe1, 0x21, 0x7e, 0xe3, 0x35,
+};
+static const unsigned char kat4_persstr[] = {0};
+static const unsigned char kat4_addin0[] = {0};
+static const unsigned char kat4_addin1[] = {0};
+static const unsigned char kat4_retbits[] = {
+ 0xfa, 0x5e, 0x74, 0x6d, 0xec, 0xd6, 0x80, 0x1e, 0xb7, 0x08, 0x3b, 0x6f,
+ 0x0e, 0x72, 0x43, 0x2e, 0x1f, 0xd4, 0x24, 0x31, 0x04, 0xf7, 0x48, 0xd0,
+ 0xf1, 0x90, 0x83, 0x92, 0x3b, 0x95, 0x55, 0x68, 0x8f, 0x43, 0x14, 0x6d,
+ 0x5a, 0xce, 0xa9, 0x62, 0xda, 0x01, 0x23, 0x1d, 0x9e, 0x5f, 0xaf, 0xf0,
+ 0xe8, 0x1f, 0x3d, 0x39, 0x4a, 0xce, 0x3a, 0x34, 0x54, 0x53, 0x6d, 0x72,
+ 0x65, 0x75, 0x04, 0x1f,
+};
+static const struct drbg_kat_no_reseed kat4_t = {
+ 3, kat4_entropyin, kat4_nonce, kat4_persstr,
+ kat4_addin0, kat4_addin1, kat4_retbits
+};
+static const struct drbg_kat kat4 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat4_t
+};
+
+static const unsigned char kat5_entropyin[] = {
+ 0xae, 0xde, 0x4e, 0x61, 0x35, 0x56, 0xb1, 0xd5, 0xa3, 0x0f, 0xce, 0x26,
+ 0x1f, 0xbb, 0x82, 0x0c,
+};
+static const unsigned char kat5_nonce[] = {
+ 0x39, 0xac, 0xba, 0x03, 0xc5, 0xf1, 0x0a, 0xf4,
+};
+static const unsigned char kat5_persstr[] = {0};
+static const unsigned char kat5_addin0[] = {0};
+static const unsigned char kat5_addin1[] = {0};
+static const unsigned char kat5_retbits[] = {
+ 0x23, 0x2c, 0x44, 0xb8, 0x19, 0xb8, 0x8f, 0x1a, 0xeb, 0x83, 0xf2, 0x03,
+ 0x4f, 0x84, 0x2d, 0x5a, 0x00, 0xf0, 0x30, 0x15, 0x05, 0xd2, 0xaa, 0x69,
+ 0xaa, 0xec, 0xb3, 0xcb, 0x14, 0xbc, 0xb1, 0x58, 0x75, 0xe0, 0xfd, 0x60,
+ 0x07, 0x1a, 0x80, 0xf6, 0x26, 0x2d, 0xce, 0xbc, 0xf4, 0x1a, 0x0e, 0x14,
+ 0x76, 0xd9, 0x6f, 0x40, 0x97, 0x12, 0xd8, 0x28, 0xae, 0x31, 0x3a, 0x9d,
+ 0x28, 0xec, 0x2d, 0xee,
+};
+static const struct drbg_kat_no_reseed kat5_t = {
+ 4, kat5_entropyin, kat5_nonce, kat5_persstr,
+ kat5_addin0, kat5_addin1, kat5_retbits
+};
+static const struct drbg_kat kat5 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat5_t
+};
+
+static const unsigned char kat6_entropyin[] = {
+ 0x9f, 0x90, 0x54, 0x1c, 0x10, 0xd4, 0xb7, 0xc0, 0x89, 0xfe, 0x68, 0x8e,
+ 0xa3, 0xef, 0x4f, 0xc6,
+};
+static const unsigned char kat6_nonce[] = {
+ 0x1e, 0xac, 0x1c, 0x22, 0x03, 0x6e, 0x2b, 0x22,
+};
+static const unsigned char kat6_persstr[] = {0};
+static const unsigned char kat6_addin0[] = {0};
+static const unsigned char kat6_addin1[] = {0};
+static const unsigned char kat6_retbits[] = {
+ 0x71, 0xaf, 0x3f, 0xdf, 0x67, 0x34, 0x04, 0x16, 0x3b, 0x06, 0x73, 0x7e,
+ 0x0f, 0x39, 0x91, 0x5f, 0xae, 0xc2, 0x18, 0x21, 0x81, 0x6c, 0x31, 0x42,
+ 0xe8, 0x0a, 0x50, 0x3c, 0x70, 0xcb, 0x2e, 0xdd, 0x46, 0x8c, 0x3f, 0x03,
+ 0xcb, 0x1f, 0x8a, 0x2f, 0x92, 0x48, 0x63, 0x5b, 0x63, 0xd7, 0xb8, 0xf1,
+ 0x9e, 0x9e, 0x11, 0xca, 0xf0, 0xab, 0x0c, 0x3d, 0x2f, 0xf9, 0xc7, 0x13,
+ 0x21, 0xca, 0xc1, 0x54,
+};
+static const struct drbg_kat_no_reseed kat6_t = {
+ 5, kat6_entropyin, kat6_nonce, kat6_persstr,
+ kat6_addin0, kat6_addin1, kat6_retbits
+};
+static const struct drbg_kat kat6 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat6_t
+};
+
+static const unsigned char kat7_entropyin[] = {
+ 0x3b, 0x8a, 0x18, 0x1c, 0xea, 0x83, 0x90, 0xd5, 0xd7, 0xa4, 0xe6, 0x51,
+ 0x5c, 0xf9, 0x2e, 0x3e,
+};
+static const unsigned char kat7_nonce[] = {
+ 0x37, 0xf4, 0xd1, 0x74, 0x87, 0x14, 0x34, 0x5b,
+};
+static const unsigned char kat7_persstr[] = {0};
+static const unsigned char kat7_addin0[] = {0};
+static const unsigned char kat7_addin1[] = {0};
+static const unsigned char kat7_retbits[] = {
+ 0xd6, 0xfd, 0x0f, 0xfb, 0x10, 0x85, 0x0e, 0xb6, 0xeb, 0x70, 0x50, 0xe6,
+ 0x1e, 0xac, 0x00, 0xd4, 0x72, 0xf6, 0x5c, 0xd3, 0xd9, 0x35, 0x08, 0x14,
+ 0x77, 0xfe, 0x44, 0xaa, 0x85, 0x69, 0x4e, 0x12, 0x0a, 0xb5, 0xa1, 0xca,
+ 0x1f, 0xa1, 0x98, 0xaf, 0x76, 0xdf, 0xa8, 0xd0, 0xab, 0xdf, 0x53, 0xe8,
+ 0x5a, 0xa8, 0xc8, 0x7f, 0xed, 0x0a, 0x8c, 0x24, 0x16, 0x39, 0x43, 0xb9,
+ 0x6d, 0x80, 0xaa, 0xfb,
+};
+static const struct drbg_kat_no_reseed kat7_t = {
+ 6, kat7_entropyin, kat7_nonce, kat7_persstr,
+ kat7_addin0, kat7_addin1, kat7_retbits
+};
+static const struct drbg_kat kat7 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat7_t
+};
+
+static const unsigned char kat8_entropyin[] = {
+ 0x85, 0x4c, 0xaa, 0x2a, 0x74, 0xf3, 0xf4, 0x3b, 0x6a, 0xbd, 0x80, 0x6d,
+ 0x67, 0x48, 0xed, 0x80,
+};
+static const unsigned char kat8_nonce[] = {
+ 0x0c, 0xbd, 0x13, 0x72, 0xbe, 0xb6, 0x27, 0x36,
+};
+static const unsigned char kat8_persstr[] = {0};
+static const unsigned char kat8_addin0[] = {0};
+static const unsigned char kat8_addin1[] = {0};
+static const unsigned char kat8_retbits[] = {
+ 0x46, 0x53, 0x40, 0x28, 0x16, 0x5f, 0xfe, 0x28, 0x45, 0xa9, 0x72, 0x62,
+ 0x7e, 0x67, 0xe1, 0x53, 0x51, 0x0c, 0xa1, 0x88, 0x0e, 0x6a, 0x3a, 0xd3,
+ 0x1f, 0xde, 0xe7, 0x1f, 0xf2, 0x40, 0xd3, 0x27, 0x86, 0x24, 0xb3, 0x1f,
+ 0x2d, 0x38, 0x6d, 0x7b, 0x22, 0x28, 0xce, 0xd6, 0x24, 0xa4, 0x2e, 0x7a,
+ 0x3b, 0x07, 0x48, 0x0b, 0x23, 0x23, 0x16, 0x6c, 0x18, 0xd1, 0xac, 0x0f,
+ 0x60, 0x00, 0x2e, 0xc4,
+};
+static const struct drbg_kat_no_reseed kat8_t = {
+ 7, kat8_entropyin, kat8_nonce, kat8_persstr,
+ kat8_addin0, kat8_addin1, kat8_retbits
+};
+static const struct drbg_kat kat8 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat8_t
+};
+
+static const unsigned char kat9_entropyin[] = {
+ 0x87, 0xe1, 0xc5, 0x32, 0x99, 0x7f, 0x57, 0xa3, 0x5c, 0x28, 0x6d, 0xe8,
+ 0x64, 0xbf, 0xf2, 0x64,
+};
+static const unsigned char kat9_nonce[] = {
+ 0xa3, 0x9e, 0x98, 0xdb, 0x6c, 0x10, 0x78, 0x7f,
+};
+static const unsigned char kat9_persstr[] = {0};
+static const unsigned char kat9_addin0[] = {0};
+static const unsigned char kat9_addin1[] = {0};
+static const unsigned char kat9_retbits[] = {
+ 0x2c, 0x14, 0x7e, 0x24, 0x11, 0x9a, 0xd8, 0xd4, 0xb2, 0xed, 0x61, 0xc1,
+ 0x53, 0xd0, 0x50, 0xc9, 0x24, 0xff, 0x59, 0x75, 0x15, 0xf1, 0x17, 0x3a,
+ 0x3d, 0xf4, 0x4b, 0x2c, 0x84, 0x28, 0xef, 0x89, 0x0e, 0xb9, 0xde, 0xf3,
+ 0xe4, 0x78, 0x04, 0xb2, 0xfd, 0x9b, 0x35, 0x7f, 0xe1, 0x3f, 0x8a, 0x3e,
+ 0x10, 0xc8, 0x67, 0x0a, 0xf9, 0xdf, 0x2d, 0x6c, 0x96, 0xfb, 0xb2, 0xb8,
+ 0xcb, 0x2d, 0xd6, 0xb0,
+};
+static const struct drbg_kat_no_reseed kat9_t = {
+ 8, kat9_entropyin, kat9_nonce, kat9_persstr,
+ kat9_addin0, kat9_addin1, kat9_retbits
+};
+static const struct drbg_kat kat9 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat9_t
+};
+
+static const unsigned char kat10_entropyin[] = {
+ 0x2f, 0xc6, 0x23, 0x42, 0x90, 0x29, 0xc9, 0x6e, 0xde, 0xf6, 0x16, 0x62,
+ 0x47, 0xb0, 0x8c, 0xb0,
+};
+static const unsigned char kat10_nonce[] = {
+ 0x99, 0x82, 0x66, 0x33, 0x55, 0x58, 0x27, 0x88,
+};
+static const unsigned char kat10_persstr[] = {0};
+static const unsigned char kat10_addin0[] = {0};
+static const unsigned char kat10_addin1[] = {0};
+static const unsigned char kat10_retbits[] = {
+ 0x55, 0x96, 0xcb, 0x16, 0xf3, 0xbe, 0x85, 0x52, 0xc1, 0xe5, 0xc1, 0x64,
+ 0xd5, 0x40, 0xcb, 0x1f, 0xaf, 0x4b, 0xea, 0x87, 0x33, 0xb6, 0x0a, 0x8a,
+ 0xd0, 0xc4, 0x06, 0x26, 0x25, 0x65, 0x48, 0xc7, 0xaa, 0x96, 0xd1, 0xd2,
+ 0x72, 0x9d, 0x26, 0xf0, 0x08, 0x73, 0x1f, 0xc3, 0x93, 0x07, 0xbe, 0x5b,
+ 0xcd, 0x20, 0x81, 0xc6, 0x9e, 0x31, 0x4e, 0x0c, 0x73, 0xe3, 0xd0, 0xfd,
+ 0x1d, 0x90, 0x58, 0x28,
+};
+static const struct drbg_kat_no_reseed kat10_t = {
+ 9, kat10_entropyin, kat10_nonce, kat10_persstr,
+ kat10_addin0, kat10_addin1, kat10_retbits
+};
+static const struct drbg_kat kat10 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat10_t
+};
+
+static const unsigned char kat11_entropyin[] = {
+ 0x98, 0xab, 0x8b, 0x4e, 0xaf, 0xab, 0x6e, 0x53, 0x6f, 0x78, 0x45, 0xab,
+ 0xec, 0x13, 0x78, 0x08,
+};
+static const unsigned char kat11_nonce[] = {
+ 0xdb, 0xa9, 0x44, 0xc9, 0x8b, 0x31, 0x1d, 0x8e,
+};
+static const unsigned char kat11_persstr[] = {0};
+static const unsigned char kat11_addin0[] = {0};
+static const unsigned char kat11_addin1[] = {0};
+static const unsigned char kat11_retbits[] = {
+ 0x86, 0xee, 0xd3, 0xa9, 0xfa, 0x53, 0x45, 0x2f, 0xb1, 0x1d, 0xba, 0x9c,
+ 0xac, 0x8e, 0x44, 0x02, 0x52, 0x29, 0x28, 0xf2, 0x70, 0x5a, 0x5e, 0x58,
+ 0x2f, 0x4d, 0x00, 0xeb, 0x8f, 0xed, 0x81, 0x8e, 0x62, 0x9c, 0x72, 0xa6,
+ 0xa7, 0x79, 0xbe, 0xb4, 0xed, 0x9a, 0x23, 0x93, 0x68, 0x23, 0x3c, 0xbf,
+ 0xcf, 0x55, 0x68, 0x5d, 0xbf, 0x2d, 0xe3, 0x4a, 0xb5, 0x89, 0x20, 0xcf,
+ 0xac, 0xa4, 0xaa, 0xfe,
+};
+static const struct drbg_kat_no_reseed kat11_t = {
+ 10, kat11_entropyin, kat11_nonce, kat11_persstr,
+ kat11_addin0, kat11_addin1, kat11_retbits
+};
+static const struct drbg_kat kat11 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat11_t
+};
+
+static const unsigned char kat12_entropyin[] = {
+ 0x7d, 0xcf, 0x4f, 0xa7, 0x31, 0x13, 0x9c, 0x5b, 0xb6, 0x44, 0x2f, 0xed,
+ 0x91, 0xe8, 0x9f, 0x68,
+};
+static const unsigned char kat12_nonce[] = {
+ 0xff, 0xd9, 0x4f, 0xe2, 0x1a, 0x80, 0x8b, 0x15,
+};
+static const unsigned char kat12_persstr[] = {0};
+static const unsigned char kat12_addin0[] = {0};
+static const unsigned char kat12_addin1[] = {0};
+static const unsigned char kat12_retbits[] = {
+ 0x8e, 0xca, 0x20, 0xe3, 0x1c, 0x98, 0x39, 0xb7, 0x41, 0xaa, 0xa9, 0xbf,
+ 0x6c, 0xee, 0xe2, 0x24, 0xd3, 0x21, 0x26, 0xb3, 0x19, 0x6e, 0xef, 0x3e,
+ 0xcd, 0x34, 0x3d, 0x41, 0x4d, 0x32, 0x33, 0xb9, 0xfd, 0x0e, 0xa0, 0xed,
+ 0x1b, 0xc7, 0x70, 0x0c, 0x88, 0xcd, 0x7c, 0x88, 0xd3, 0xc0, 0x76, 0x13,
+ 0xc4, 0x2c, 0xd1, 0xf9, 0x09, 0xfe, 0xd8, 0xc6, 0xa7, 0x08, 0xd0, 0x5d,
+ 0x6b, 0x68, 0xfb, 0x2e,
+};
+static const struct drbg_kat_no_reseed kat12_t = {
+ 11, kat12_entropyin, kat12_nonce, kat12_persstr,
+ kat12_addin0, kat12_addin1, kat12_retbits
+};
+static const struct drbg_kat kat12 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat12_t
+};
+
+static const unsigned char kat13_entropyin[] = {
+ 0x51, 0x9c, 0x6e, 0xfe, 0xde, 0xd2, 0xa1, 0x10, 0xac, 0x41, 0x83, 0x9a,
+ 0x8b, 0x8a, 0xbf, 0xce,
+};
+static const unsigned char kat13_nonce[] = {
+ 0x81, 0xd9, 0x5e, 0xdc, 0x06, 0xdd, 0xe6, 0xb3,
+};
+static const unsigned char kat13_persstr[] = {0};
+static const unsigned char kat13_addin0[] = {0};
+static const unsigned char kat13_addin1[] = {0};
+static const unsigned char kat13_retbits[] = {
+ 0x39, 0xcd, 0xd1, 0x0e, 0x49, 0xe0, 0x35, 0x81, 0xe3, 0x81, 0x1d, 0xdd,
+ 0x07, 0xd9, 0xd0, 0xac, 0xc3, 0x40, 0x85, 0xa1, 0x2c, 0x1c, 0x6b, 0x87,
+ 0xa7, 0x63, 0x86, 0xe9, 0x70, 0x32, 0xdc, 0x01, 0xf5, 0x23, 0xf6, 0x32,
+ 0xec, 0x95, 0x0d, 0x04, 0x34, 0xc2, 0x59, 0x37, 0xe4, 0x32, 0xd9, 0x85,
+ 0x54, 0x59, 0x9a, 0x85, 0x5d, 0xb9, 0xad, 0xf5, 0x8b, 0x9e, 0x04, 0x59,
+ 0x7a, 0x21, 0xd0, 0x0d,
+};
+static const struct drbg_kat_no_reseed kat13_t = {
+ 12, kat13_entropyin, kat13_nonce, kat13_persstr,
+ kat13_addin0, kat13_addin1, kat13_retbits
+};
+static const struct drbg_kat kat13 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat13_t
+};
+
+static const unsigned char kat14_entropyin[] = {
+ 0x80, 0xc1, 0x9e, 0xea, 0xad, 0x1a, 0x58, 0x37, 0x94, 0x66, 0xaf, 0xae,
+ 0x1d, 0x80, 0x87, 0x6d,
+};
+static const unsigned char kat14_nonce[] = {
+ 0xd9, 0xa2, 0x09, 0x3f, 0x11, 0x89, 0x2b, 0x82,
+};
+static const unsigned char kat14_persstr[] = {0};
+static const unsigned char kat14_addin0[] = {0};
+static const unsigned char kat14_addin1[] = {0};
+static const unsigned char kat14_retbits[] = {
+ 0xce, 0xc5, 0x1b, 0x98, 0x5e, 0xc9, 0x7b, 0x18, 0xee, 0x8e, 0xad, 0x36,
+ 0x15, 0x7b, 0xea, 0xf9, 0x6f, 0x12, 0x9f, 0x28, 0x28, 0x08, 0x89, 0xec,
+ 0x87, 0x3c, 0x27, 0xb5, 0x62, 0x71, 0x98, 0xc5, 0x85, 0xa6, 0xad, 0x21,
+ 0xae, 0x23, 0xa9, 0x59, 0xc9, 0xfa, 0x49, 0xd9, 0x85, 0xaf, 0x0d, 0xf4,
+ 0x02, 0x8f, 0xdf, 0x1f, 0x51, 0xd8, 0x2e, 0x8f, 0x2b, 0x3f, 0x02, 0x88,
+ 0x53, 0xf1, 0x4e, 0x8f,
+};
+static const struct drbg_kat_no_reseed kat14_t = {
+ 13, kat14_entropyin, kat14_nonce, kat14_persstr,
+ kat14_addin0, kat14_addin1, kat14_retbits
+};
+static const struct drbg_kat kat14 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat14_t
+};
+
+static const unsigned char kat15_entropyin[] = {
+ 0xb7, 0x7b, 0xd2, 0x2e, 0xfe, 0xb7, 0x71, 0x58, 0x6d, 0x51, 0x6f, 0x58,
+ 0x21, 0x92, 0xa3, 0x11,
+};
+static const unsigned char kat15_nonce[] = {
+ 0xa6, 0x99, 0xf4, 0x2a, 0x49, 0x81, 0xfe, 0xfc,
+};
+static const unsigned char kat15_persstr[] = {0};
+static const unsigned char kat15_addin0[] = {0};
+static const unsigned char kat15_addin1[] = {0};
+static const unsigned char kat15_retbits[] = {
+ 0x7f, 0xf0, 0xab, 0xea, 0xff, 0xc6, 0xec, 0x92, 0x3c, 0xeb, 0xd9, 0x10,
+ 0xf5, 0x93, 0x7b, 0xf1, 0x4f, 0xc5, 0x2d, 0x2a, 0x74, 0x25, 0x83, 0x88,
+ 0xc7, 0x6c, 0x1b, 0xc9, 0xe6, 0x35, 0xad, 0xf1, 0x75, 0x85, 0x8f, 0x0a,
+ 0x55, 0x87, 0x7e, 0x7e, 0x9f, 0x5f, 0x86, 0x7d, 0x00, 0xb9, 0xb1, 0x36,
+ 0x3d, 0xde, 0x46, 0x28, 0x8a, 0x6f, 0xff, 0x53, 0x21, 0xf4, 0x69, 0x44,
+ 0x5a, 0xad, 0x41, 0x98,
+};
+static const struct drbg_kat_no_reseed kat15_t = {
+ 14, kat15_entropyin, kat15_nonce, kat15_persstr,
+ kat15_addin0, kat15_addin1, kat15_retbits
+};
+static const struct drbg_kat kat15 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat15_t
+};
+
+static const unsigned char kat16_entropyin[] = {
+ 0xb4, 0x08, 0xce, 0xfb, 0x5b, 0xc7, 0x15, 0x7d, 0x3f, 0x26, 0xcb, 0x95,
+ 0xa8, 0xb1, 0xd7, 0xac,
+};
+static const unsigned char kat16_nonce[] = {
+ 0x02, 0x6c, 0x76, 0x8f, 0xd5, 0x77, 0xb9, 0x2a,
+};
+static const unsigned char kat16_persstr[] = {0};
+static const unsigned char kat16_addin0[] = {
+ 0x57, 0x37, 0xef, 0x81, 0xde, 0xe3, 0x65, 0xb6, 0xda, 0xdb, 0x3f, 0xee,
+ 0xbf, 0x5d, 0x10, 0x84,
+};
+static const unsigned char kat16_addin1[] = {
+ 0x33, 0x68, 0xa5, 0x16, 0xb3, 0x43, 0x1a, 0x3d, 0xaa, 0xa6, 0x0d, 0xc8,
+ 0x74, 0x3c, 0x82, 0x97,
+};
+static const unsigned char kat16_retbits[] = {
+ 0x4e, 0x90, 0x9e, 0xbb, 0x24, 0x14, 0x7a, 0x00, 0x04, 0x06, 0x3a, 0x5e,
+ 0x47, 0xee, 0x04, 0x4f, 0xea, 0xd6, 0x10, 0xd6, 0x23, 0x24, 0xbd, 0x0f,
+ 0x96, 0x3f, 0x75, 0x6f, 0xb9, 0x13, 0x61, 0xe8, 0xb8, 0x7e, 0x3a, 0x76,
+ 0xa3, 0x98, 0x14, 0x3f, 0xe8, 0x81, 0x30, 0xfe, 0x1b, 0x54, 0x7b, 0x66,
+ 0x1a, 0x64, 0x80, 0xc7, 0x11, 0xb7, 0x39, 0xf1, 0x8a, 0x9d, 0xf3, 0xae,
+ 0x51, 0xd4, 0x1b, 0xc9,
+};
+static const struct drbg_kat_no_reseed kat16_t = {
+ 0, kat16_entropyin, kat16_nonce, kat16_persstr,
+ kat16_addin0, kat16_addin1, kat16_retbits
+};
+static const struct drbg_kat kat16 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat16_t
+};
+
+static const unsigned char kat17_entropyin[] = {
+ 0x71, 0xbd, 0xce, 0x35, 0x42, 0x7d, 0x20, 0xbf, 0x58, 0xcf, 0x17, 0x74,
+ 0xce, 0x72, 0xd8, 0x33,
+};
+static const unsigned char kat17_nonce[] = {
+ 0x34, 0x50, 0x2d, 0x8f, 0x5b, 0x14, 0xc4, 0xdd,
+};
+static const unsigned char kat17_persstr[] = {0};
+static const unsigned char kat17_addin0[] = {
+ 0x66, 0xef, 0x42, 0xd6, 0x9a, 0x8c, 0x3d, 0x6d, 0x4a, 0x9e, 0x95, 0xa6,
+ 0x91, 0x4d, 0x81, 0x56,
+};
+static const unsigned char kat17_addin1[] = {
+ 0xe3, 0x18, 0x83, 0xd9, 0x4b, 0x5e, 0xc4, 0xcc, 0xaa, 0x61, 0x2f, 0xbb,
+ 0x4a, 0x55, 0xd1, 0xc6,
+};
+static const unsigned char kat17_retbits[] = {
+ 0x97, 0x33, 0xe8, 0x20, 0x12, 0xe2, 0x7b, 0xa1, 0x46, 0x8f, 0xf2, 0x34,
+ 0xb3, 0xc9, 0xb6, 0x6b, 0x20, 0xb2, 0x4f, 0xee, 0x27, 0xd8, 0x0b, 0x21,
+ 0x8c, 0xff, 0x63, 0x73, 0x69, 0x29, 0xfb, 0xf3, 0x85, 0xcd, 0x88, 0x8e,
+ 0x43, 0x2c, 0x71, 0x8b, 0xa2, 0x55, 0xd2, 0x0f, 0x1d, 0x7f, 0xe3, 0xe1,
+ 0x2a, 0xa3, 0xe9, 0x2c, 0x25, 0x89, 0xc7, 0x14, 0x52, 0x99, 0x56, 0xcc,
+ 0xc3, 0xdf, 0xb3, 0x81,
+};
+static const struct drbg_kat_no_reseed kat17_t = {
+ 1, kat17_entropyin, kat17_nonce, kat17_persstr,
+ kat17_addin0, kat17_addin1, kat17_retbits
+};
+static const struct drbg_kat kat17 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat17_t
+};
+
+static const unsigned char kat18_entropyin[] = {
+ 0x9c, 0x0e, 0x4a, 0xea, 0xfc, 0x35, 0x7f, 0xf8, 0xe3, 0xf5, 0x40, 0xa4,
+ 0x55, 0x67, 0x8d, 0x7e,
+};
+static const unsigned char kat18_nonce[] = {
+ 0xef, 0xd8, 0x3d, 0xc5, 0xc5, 0x31, 0xd1, 0x67,
+};
+static const unsigned char kat18_persstr[] = {0};
+static const unsigned char kat18_addin0[] = {
+ 0x58, 0xa1, 0x18, 0x14, 0x08, 0x1c, 0x1c, 0x35, 0xaf, 0x89, 0x88, 0xf1,
+ 0x31, 0x40, 0xf6, 0xcc,
+};
+static const unsigned char kat18_addin1[] = {
+ 0x19, 0x19, 0x22, 0x70, 0xd6, 0x1a, 0x43, 0x26, 0x4a, 0x30, 0xba, 0x9e,
+ 0xbc, 0x72, 0x8a, 0x5b,
+};
+static const unsigned char kat18_retbits[] = {
+ 0x1e, 0xff, 0x1c, 0xf6, 0xb5, 0x75, 0x31, 0x55, 0x90, 0x70, 0x38, 0x82,
+ 0x35, 0x9b, 0x6a, 0xdb, 0x3c, 0x21, 0xeb, 0xcf, 0xda, 0x5d, 0x3b, 0x5d,
+ 0x6e, 0x88, 0xac, 0xab, 0x6e, 0x87, 0x9e, 0x0a, 0x6f, 0x75, 0x37, 0x5c,
+ 0x02, 0xd1, 0xd3, 0xfb, 0xae, 0x94, 0x3c, 0x34, 0x43, 0xe3, 0x9c, 0x29,
+ 0x9b, 0x80, 0xe2, 0x41, 0xcd, 0x36, 0x5d, 0x4a, 0xf8, 0xcd, 0x1a, 0xd5,
+ 0xd9, 0xd5, 0x4c, 0x58,
+};
+static const struct drbg_kat_no_reseed kat18_t = {
+ 2, kat18_entropyin, kat18_nonce, kat18_persstr,
+ kat18_addin0, kat18_addin1, kat18_retbits
+};
+static const struct drbg_kat kat18 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat18_t
+};
+
+static const unsigned char kat19_entropyin[] = {
+ 0x95, 0x07, 0x01, 0x9b, 0x1f, 0xe8, 0x79, 0x84, 0xbe, 0xc1, 0xd0, 0x9c,
+ 0xec, 0xcf, 0x36, 0x35,
+};
+static const unsigned char kat19_nonce[] = {
+ 0x47, 0x58, 0x62, 0x74, 0xfa, 0x75, 0x3e, 0x0d,
+};
+static const unsigned char kat19_persstr[] = {0};
+static const unsigned char kat19_addin0[] = {
+ 0xf1, 0x7d, 0xe4, 0xce, 0xef, 0x9f, 0x2f, 0x23, 0x42, 0x20, 0xcb, 0x71,
+ 0xd8, 0xce, 0xb7, 0x0d,
+};
+static const unsigned char kat19_addin1[] = {
+ 0x99, 0xd4, 0x8d, 0x9c, 0xe2, 0xfe, 0x76, 0xdc, 0xb8, 0xd0, 0x5f, 0xa4,
+ 0xec, 0x07, 0x1a, 0xec,
+};
+static const unsigned char kat19_retbits[] = {
+ 0x25, 0xa0, 0xd1, 0x67, 0x8e, 0x25, 0xb1, 0x94, 0x39, 0xd8, 0x33, 0x4c,
+ 0xa9, 0x02, 0xdb, 0x63, 0x47, 0xa9, 0xa4, 0x2b, 0x86, 0xf3, 0x54, 0xb9,
+ 0xe0, 0xb3, 0xc4, 0xf4, 0xe8, 0xba, 0x9d, 0x19, 0x2a, 0x5d, 0x76, 0x5a,
+ 0xae, 0x5f, 0x4c, 0x5a, 0x74, 0xa0, 0x17, 0x7d, 0x3e, 0xb6, 0x13, 0x70,
+ 0x62, 0xe6, 0xd9, 0x8b, 0x65, 0x18, 0x22, 0x26, 0x5b, 0xfe, 0xfc, 0x92,
+ 0x9a, 0x39, 0x69, 0xdd,
+};
+static const struct drbg_kat_no_reseed kat19_t = {
+ 3, kat19_entropyin, kat19_nonce, kat19_persstr,
+ kat19_addin0, kat19_addin1, kat19_retbits
+};
+static const struct drbg_kat kat19 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat19_t
+};
+
+static const unsigned char kat20_entropyin[] = {
+ 0x12, 0xe8, 0xb3, 0xda, 0x3a, 0x3b, 0x3e, 0x77, 0x3a, 0xfc, 0x23, 0x05,
+ 0xbd, 0xa8, 0x6d, 0xb6,
+};
+static const unsigned char kat20_nonce[] = {
+ 0xc4, 0x9f, 0x26, 0x1a, 0x9a, 0xb9, 0xd9, 0xf8,
+};
+static const unsigned char kat20_persstr[] = {0};
+static const unsigned char kat20_addin0[] = {
+ 0x86, 0xb6, 0x38, 0x52, 0x41, 0x96, 0x15, 0x9d, 0xea, 0x01, 0x76, 0xe5,
+ 0x46, 0x2a, 0xe6, 0x5c,
+};
+static const unsigned char kat20_addin1[] = {
+ 0x5e, 0xad, 0xb7, 0x67, 0x72, 0xbe, 0x3c, 0xe8, 0x47, 0xaf, 0x6b, 0x77,
+ 0x94, 0xe0, 0x02, 0xe3,
+};
+static const unsigned char kat20_retbits[] = {
+ 0x1b, 0xbf, 0x85, 0xe0, 0x2c, 0x1f, 0xc0, 0x4b, 0xea, 0x5f, 0xc4, 0x7f,
+ 0x23, 0x6a, 0x07, 0x1c, 0x13, 0xf8, 0xf5, 0x2e, 0xb1, 0x13, 0xcb, 0x83,
+ 0xc4, 0x15, 0x2a, 0xc8, 0x32, 0x62, 0x7a, 0xbb, 0xa6, 0xec, 0xde, 0xc1,
+ 0x7a, 0x9f, 0xf0, 0x30, 0x5b, 0x7a, 0x49, 0x81, 0x79, 0x83, 0xfa, 0x5b,
+ 0x66, 0x51, 0x45, 0xe7, 0xba, 0x9a, 0x5d, 0xf5, 0x72, 0x26, 0xec, 0xcf,
+ 0xc1, 0x64, 0xe3, 0xbb,
+};
+static const struct drbg_kat_no_reseed kat20_t = {
+ 4, kat20_entropyin, kat20_nonce, kat20_persstr,
+ kat20_addin0, kat20_addin1, kat20_retbits
+};
+static const struct drbg_kat kat20 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat20_t
+};
+
+static const unsigned char kat21_entropyin[] = {
+ 0xb6, 0x08, 0xb1, 0x49, 0xcf, 0x44, 0xfe, 0x06, 0x06, 0x13, 0xb1, 0x66,
+ 0x1d, 0xa0, 0xdf, 0x63,
+};
+static const unsigned char kat21_nonce[] = {
+ 0x95, 0x17, 0xc9, 0x93, 0xf1, 0x50, 0x34, 0x77,
+};
+static const unsigned char kat21_persstr[] = {0};
+static const unsigned char kat21_addin0[] = {
+ 0x55, 0x9c, 0xb8, 0x12, 0xc3, 0x75, 0x8b, 0x2b, 0x31, 0x9d, 0xd9, 0xf5,
+ 0x76, 0x8e, 0x8d, 0x3d,
+};
+static const unsigned char kat21_addin1[] = {
+ 0xc9, 0xaf, 0x98, 0x7e, 0xfc, 0xe4, 0x70, 0x0f, 0xa9, 0xc8, 0xeb, 0xb9,
+ 0xfe, 0xcf, 0x00, 0xda,
+};
+static const unsigned char kat21_retbits[] = {
+ 0x5b, 0x48, 0x13, 0x4d, 0xc7, 0xe6, 0x58, 0x9f, 0x1b, 0x40, 0x2c, 0xf5,
+ 0xc4, 0xf6, 0xe3, 0xa3, 0xeb, 0xfd, 0xa8, 0x26, 0x72, 0x50, 0xe8, 0xe8,
+ 0x11, 0xec, 0x05, 0x98, 0x6f, 0xf2, 0x1c, 0x78, 0xa1, 0x69, 0x30, 0xa8,
+ 0xe0, 0x81, 0x03, 0x07, 0x76, 0x08, 0xc0, 0x6f, 0xa5, 0xe2, 0xa0, 0x48,
+ 0xe8, 0x5d, 0xd6, 0xf3, 0x95, 0xce, 0xe2, 0x01, 0xd3, 0xcd, 0xe6, 0x35,
+ 0xe1, 0x7e, 0x20, 0x3e,
+};
+static const struct drbg_kat_no_reseed kat21_t = {
+ 5, kat21_entropyin, kat21_nonce, kat21_persstr,
+ kat21_addin0, kat21_addin1, kat21_retbits
+};
+static const struct drbg_kat kat21 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat21_t
+};
+
+static const unsigned char kat22_entropyin[] = {
+ 0xe9, 0x2f, 0xd0, 0x7a, 0x09, 0xf2, 0xbc, 0xcb, 0x43, 0x42, 0x4c, 0x57,
+ 0x57, 0x73, 0xb0, 0xf0,
+};
+static const unsigned char kat22_nonce[] = {
+ 0xb4, 0xe3, 0xca, 0x71, 0xae, 0x15, 0xa0, 0x36,
+};
+static const unsigned char kat22_persstr[] = {0};
+static const unsigned char kat22_addin0[] = {
+ 0xe1, 0xb4, 0xb0, 0x40, 0x13, 0xdc, 0x12, 0x18, 0x8c, 0x62, 0x3d, 0x10,
+ 0x11, 0xd4, 0x08, 0xf1,
+};
+static const unsigned char kat22_addin1[] = {
+ 0x79, 0x56, 0xbf, 0x5b, 0x16, 0x58, 0x0b, 0x3e, 0x72, 0x0a, 0x81, 0x33,
+ 0x3e, 0xae, 0x24, 0x83,
+};
+static const unsigned char kat22_retbits[] = {
+ 0x21, 0xa4, 0x67, 0x22, 0x42, 0x46, 0x56, 0x37, 0x0c, 0x47, 0x5b, 0x69,
+ 0xa1, 0xfb, 0xc7, 0x0c, 0x8c, 0xbf, 0x44, 0x2d, 0xc2, 0xbc, 0x28, 0xe0,
+ 0xab, 0x34, 0xbb, 0x6f, 0xfe, 0xd0, 0x6d, 0x10, 0xf4, 0x90, 0xdf, 0x7e,
+ 0x78, 0x7c, 0x12, 0xb6, 0x52, 0xd2, 0x19, 0xa5, 0x77, 0x30, 0x6f, 0x04,
+ 0xa9, 0xc8, 0x78, 0xb6, 0xcf, 0xdf, 0xf4, 0x3e, 0x13, 0x55, 0xc4, 0xd1,
+ 0x10, 0xfb, 0x0f, 0xb2,
+};
+static const struct drbg_kat_no_reseed kat22_t = {
+ 6, kat22_entropyin, kat22_nonce, kat22_persstr,
+ kat22_addin0, kat22_addin1, kat22_retbits
+};
+static const struct drbg_kat kat22 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat22_t
+};
+
+static const unsigned char kat23_entropyin[] = {
+ 0xde, 0x0b, 0x4e, 0xa1, 0xa4, 0x40, 0xce, 0x68, 0x0e, 0xd0, 0x04, 0xcf,
+ 0x64, 0xaf, 0xbe, 0x0f,
+};
+static const unsigned char kat23_nonce[] = {
+ 0xab, 0xb3, 0x1a, 0x3a, 0xb1, 0x5e, 0xd4, 0x49,
+};
+static const unsigned char kat23_persstr[] = {0};
+static const unsigned char kat23_addin0[] = {
+ 0x45, 0xe7, 0x10, 0x10, 0x0c, 0xad, 0x00, 0xf3, 0xd2, 0x93, 0xdb, 0x75,
+ 0x5e, 0xe1, 0x99, 0x0d,
+};
+static const unsigned char kat23_addin1[] = {
+ 0xb9, 0x11, 0xc9, 0xa4, 0x38, 0x9e, 0x71, 0x67, 0x98, 0x2a, 0x51, 0x24,
+ 0x8e, 0xe2, 0x93, 0x7e,
+};
+static const unsigned char kat23_retbits[] = {
+ 0x01, 0xc3, 0xaf, 0x83, 0x55, 0x7c, 0x63, 0x2d, 0xd8, 0x22, 0x83, 0x3f,
+ 0x18, 0xe5, 0x48, 0xfb, 0x60, 0x36, 0xe9, 0xcc, 0xac, 0xc3, 0xb4, 0x33,
+ 0xc5, 0xa7, 0x00, 0x79, 0x39, 0x93, 0x30, 0x89, 0x16, 0x22, 0x0e, 0x5a,
+ 0x74, 0x16, 0x39, 0x86, 0x1c, 0x2f, 0x17, 0x71, 0x9b, 0x32, 0x51, 0x22,
+ 0x06, 0xe3, 0x6e, 0x94, 0x7b, 0x28, 0x60, 0x07, 0x3b, 0x11, 0x3c, 0xcd,
+ 0xa3, 0xfe, 0x31, 0x68,
+};
+static const struct drbg_kat_no_reseed kat23_t = {
+ 7, kat23_entropyin, kat23_nonce, kat23_persstr,
+ kat23_addin0, kat23_addin1, kat23_retbits
+};
+static const struct drbg_kat kat23 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat23_t
+};
+
+static const unsigned char kat24_entropyin[] = {
+ 0x72, 0x27, 0xe1, 0x1c, 0xfc, 0x1a, 0x6b, 0x84, 0xb4, 0x0e, 0xca, 0x24,
+ 0xe7, 0x7f, 0x8c, 0x64,
+};
+static const unsigned char kat24_nonce[] = {
+ 0xab, 0x7e, 0x9f, 0xc4, 0x5e, 0x58, 0x63, 0xfb,
+};
+static const unsigned char kat24_persstr[] = {0};
+static const unsigned char kat24_addin0[] = {
+ 0xca, 0xeb, 0xb3, 0xcd, 0x32, 0xc9, 0xd3, 0xe1, 0xf5, 0xd3, 0x8f, 0x8b,
+ 0xdd, 0x89, 0x58, 0x7d,
+};
+static const unsigned char kat24_addin1[] = {
+ 0x31, 0x38, 0x09, 0x26, 0xb8, 0x60, 0x80, 0x06, 0xb7, 0xc7, 0x93, 0x61,
+ 0xf0, 0xf9, 0x1d, 0x5e,
+};
+static const unsigned char kat24_retbits[] = {
+ 0x3a, 0xd7, 0xb9, 0x32, 0x59, 0xc6, 0xd0, 0xfd, 0xb5, 0x14, 0x27, 0x7a,
+ 0xe9, 0x95, 0x01, 0x22, 0xfb, 0x97, 0x11, 0x33, 0x74, 0x2d, 0xe8, 0xe5,
+ 0x17, 0xdd, 0x22, 0x69, 0xdd, 0x5a, 0x3c, 0x25, 0x7e, 0x3d, 0x10, 0x6b,
+ 0x55, 0x56, 0x60, 0xcf, 0xdd, 0x6a, 0x92, 0xc2, 0xcd, 0xdf, 0x1e, 0x53,
+ 0xc4, 0x94, 0x5e, 0xd7, 0x72, 0xee, 0x30, 0x38, 0x04, 0xd0, 0x56, 0xf2,
+ 0x42, 0xbf, 0x53, 0x99,
+};
+static const struct drbg_kat_no_reseed kat24_t = {
+ 8, kat24_entropyin, kat24_nonce, kat24_persstr,
+ kat24_addin0, kat24_addin1, kat24_retbits
+};
+static const struct drbg_kat kat24 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat24_t
+};
+
+static const unsigned char kat25_entropyin[] = {
+ 0x3b, 0x9e, 0xe2, 0x0c, 0x82, 0x42, 0xb3, 0xf3, 0x58, 0xdb, 0xe8, 0xea,
+ 0x58, 0x9e, 0x6e, 0x7c,
+};
+static const unsigned char kat25_nonce[] = {
+ 0xb1, 0xdc, 0x3a, 0x47, 0x03, 0x68, 0x52, 0x15,
+};
+static const unsigned char kat25_persstr[] = {0};
+static const unsigned char kat25_addin0[] = {
+ 0x47, 0x33, 0x34, 0x47, 0x86, 0x73, 0xe7, 0xb4, 0xa4, 0x3e, 0x9a, 0xe6,
+ 0xa8, 0xac, 0x98, 0xbf,
+};
+static const unsigned char kat25_addin1[] = {
+ 0x06, 0x1f, 0xe4, 0x45, 0x5a, 0x17, 0x08, 0x74, 0x98, 0xfe, 0x20, 0x9c,
+ 0x2c, 0xba, 0x7a, 0x91,
+};
+static const unsigned char kat25_retbits[] = {
+ 0x8e, 0x50, 0x62, 0xb1, 0xfb, 0x29, 0x05, 0xc1, 0x57, 0xc5, 0x26, 0xfa,
+ 0x5f, 0x67, 0xcc, 0x99, 0xc6, 0xd7, 0x08, 0x0a, 0x3d, 0x31, 0x42, 0xfa,
+ 0x37, 0xc2, 0x09, 0xcf, 0x53, 0x4a, 0xf1, 0x6a, 0x9a, 0x2f, 0x28, 0x61,
+ 0xb8, 0x94, 0xea, 0x84, 0xa3, 0x73, 0xd4, 0xa8, 0x04, 0xc3, 0xdc, 0xd5,
+ 0x1f, 0xcc, 0x09, 0xdd, 0x0f, 0x5b, 0x39, 0x45, 0x69, 0x7a, 0xac, 0xd0,
+ 0xb8, 0xf3, 0xea, 0xfd,
+};
+static const struct drbg_kat_no_reseed kat25_t = {
+ 9, kat25_entropyin, kat25_nonce, kat25_persstr,
+ kat25_addin0, kat25_addin1, kat25_retbits
+};
+static const struct drbg_kat kat25 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat25_t
+};
+
+static const unsigned char kat26_entropyin[] = {
+ 0x8f, 0xf7, 0x57, 0xb2, 0x11, 0x69, 0xb3, 0xfd, 0x6e, 0x88, 0x00, 0xaa,
+ 0xc0, 0xe3, 0xc4, 0x1f,
+};
+static const unsigned char kat26_nonce[] = {
+ 0x49, 0x4d, 0x42, 0x51, 0xe8, 0x88, 0x15, 0xb4,
+};
+static const unsigned char kat26_persstr[] = {0};
+static const unsigned char kat26_addin0[] = {
+ 0xe0, 0x19, 0x9f, 0xb9, 0xf0, 0xf0, 0xa1, 0xa8, 0xdd, 0x9d, 0x19, 0xd1,
+ 0x43, 0x68, 0xfa, 0x1e,
+};
+static const unsigned char kat26_addin1[] = {
+ 0x21, 0x91, 0xab, 0xe7, 0x24, 0x41, 0x28, 0x56, 0x36, 0xc1, 0x1b, 0xde,
+ 0xe9, 0x83, 0xed, 0x8c,
+};
+static const unsigned char kat26_retbits[] = {
+ 0x06, 0x75, 0xb2, 0x25, 0x4b, 0x71, 0x31, 0x8e, 0xb3, 0xa3, 0x60, 0x4d,
+ 0x7b, 0x6d, 0x77, 0x80, 0x6c, 0xd7, 0xdf, 0x32, 0x5c, 0x7c, 0xe8, 0x9e,
+ 0x16, 0xd3, 0xbd, 0x56, 0x16, 0xb0, 0xfa, 0xec, 0x33, 0x0c, 0xfe, 0x6b,
+ 0x84, 0xb6, 0x87, 0x61, 0xad, 0xf7, 0x0c, 0xc1, 0x4e, 0x46, 0x25, 0x3e,
+ 0x11, 0x55, 0x72, 0xc1, 0xa4, 0xac, 0xbb, 0xae, 0xee, 0x1a, 0xd6, 0x81,
+ 0xb5, 0x38, 0xd6, 0xc9,
+};
+static const struct drbg_kat_no_reseed kat26_t = {
+ 10, kat26_entropyin, kat26_nonce, kat26_persstr,
+ kat26_addin0, kat26_addin1, kat26_retbits
+};
+static const struct drbg_kat kat26 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat26_t
+};
+
+static const unsigned char kat27_entropyin[] = {
+ 0x46, 0x0c, 0x0a, 0x1e, 0x92, 0x9b, 0x75, 0x18, 0xdb, 0xcf, 0x44, 0xe4,
+ 0xe7, 0xee, 0x4d, 0x83,
+};
+static const unsigned char kat27_nonce[] = {
+ 0x88, 0x65, 0xd5, 0x01, 0x53, 0x48, 0x25, 0x9e,
+};
+static const unsigned char kat27_persstr[] = {0};
+static const unsigned char kat27_addin0[] = {
+ 0xf9, 0x32, 0x78, 0x91, 0x40, 0xa0, 0xa7, 0x6f, 0x07, 0xb2, 0x5b, 0x5f,
+ 0x8e, 0x1d, 0x00, 0xdc,
+};
+static const unsigned char kat27_addin1[] = {
+ 0xe6, 0x44, 0x6a, 0xe2, 0xc6, 0x62, 0x66, 0x73, 0xe1, 0x8e, 0x37, 0x3d,
+ 0xeb, 0x12, 0xbd, 0x26,
+};
+static const unsigned char kat27_retbits[] = {
+ 0xc5, 0xde, 0x2e, 0x1a, 0x2a, 0xa7, 0x0a, 0x28, 0xac, 0xe6, 0x8e, 0x62,
+ 0x0c, 0x94, 0xb8, 0x88, 0xa0, 0x7b, 0x07, 0x80, 0xb3, 0x14, 0x38, 0xc5,
+ 0xe1, 0x1c, 0x5d, 0x76, 0xdf, 0xd6, 0x15, 0xf4, 0x1d, 0x4b, 0xa3, 0x24,
+ 0xd2, 0x2c, 0x12, 0xfe, 0xe3, 0x8f, 0x58, 0x93, 0x5d, 0xad, 0x35, 0xe0,
+ 0x0f, 0xe6, 0xa6, 0xe6, 0x11, 0x86, 0xc7, 0x88, 0x1c, 0x30, 0x6e, 0x96,
+ 0x31, 0xcc, 0x15, 0xec,
+};
+static const struct drbg_kat_no_reseed kat27_t = {
+ 11, kat27_entropyin, kat27_nonce, kat27_persstr,
+ kat27_addin0, kat27_addin1, kat27_retbits
+};
+static const struct drbg_kat kat27 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat27_t
+};
+
+static const unsigned char kat28_entropyin[] = {
+ 0xb2, 0xda, 0x44, 0xbc, 0x3b, 0xe2, 0xd1, 0x7a, 0x9a, 0xc2, 0x08, 0x80,
+ 0x85, 0xe9, 0x26, 0xf8,
+};
+static const unsigned char kat28_nonce[] = {
+ 0x04, 0xbe, 0x54, 0x49, 0x35, 0x26, 0xc5, 0x78,
+};
+static const unsigned char kat28_persstr[] = {0};
+static const unsigned char kat28_addin0[] = {
+ 0x67, 0xbe, 0x89, 0x19, 0x59, 0x65, 0xcd, 0x7d, 0xc9, 0x84, 0x27, 0x1b,
+ 0x49, 0x7d, 0x61, 0x90,
+};
+static const unsigned char kat28_addin1[] = {
+ 0xc9, 0x95, 0x6b, 0x00, 0x4b, 0x0c, 0x26, 0xb3, 0xf6, 0x57, 0xc6, 0xc1,
+ 0x55, 0xd3, 0x60, 0xcc,
+};
+static const unsigned char kat28_retbits[] = {
+ 0xc7, 0x74, 0x56, 0x62, 0x19, 0x48, 0xf6, 0x08, 0x38, 0xe3, 0x77, 0x9a,
+ 0x14, 0x60, 0x63, 0x22, 0x52, 0x96, 0xda, 0x38, 0x18, 0x0e, 0x2c, 0x4c,
+ 0x58, 0x35, 0xea, 0x27, 0xb2, 0x84, 0x24, 0xa8, 0x83, 0x1c, 0xee, 0x8c,
+ 0x8d, 0xf7, 0x39, 0xa2, 0xb1, 0x73, 0xb3, 0x7b, 0xe2, 0xc0, 0x2b, 0xff,
+ 0x38, 0xe0, 0xb3, 0x67, 0xd4, 0x82, 0xfb, 0x76, 0x54, 0x5f, 0xb3, 0xc9,
+ 0x8d, 0x82, 0xb6, 0xe7,
+};
+static const struct drbg_kat_no_reseed kat28_t = {
+ 12, kat28_entropyin, kat28_nonce, kat28_persstr,
+ kat28_addin0, kat28_addin1, kat28_retbits
+};
+static const struct drbg_kat kat28 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat28_t
+};
+
+static const unsigned char kat29_entropyin[] = {
+ 0xf1, 0x77, 0xbc, 0x8a, 0xf7, 0x5c, 0x49, 0xe1, 0xd3, 0x79, 0xb5, 0x72,
+ 0x26, 0x92, 0xbb, 0x3f,
+};
+static const unsigned char kat29_nonce[] = {
+ 0xd8, 0xb5, 0xfb, 0xdc, 0x5d, 0xa7, 0xea, 0x7b,
+};
+static const unsigned char kat29_persstr[] = {0};
+static const unsigned char kat29_addin0[] = {
+ 0x37, 0x41, 0x94, 0x38, 0x35, 0x54, 0xa4, 0x21, 0x41, 0x0a, 0xf5, 0xde,
+ 0x2f, 0xc2, 0xec, 0x82,
+};
+static const unsigned char kat29_addin1[] = {
+ 0x00, 0x0b, 0xe9, 0xac, 0x8e, 0x4b, 0x0c, 0xd1, 0x24, 0x5d, 0x7b, 0x7d,
+ 0xbf, 0x8d, 0x87, 0x4f,
+};
+static const unsigned char kat29_retbits[] = {
+ 0xb4, 0xa0, 0x0c, 0xd6, 0xe5, 0xf4, 0x7e, 0xa8, 0x7b, 0x12, 0x07, 0xc3,
+ 0xa2, 0x18, 0xd8, 0x98, 0x8d, 0x4c, 0xb7, 0xed, 0x52, 0xb1, 0x4b, 0x79,
+ 0xbb, 0xa5, 0x6a, 0xa7, 0xe5, 0x7e, 0x63, 0x64, 0x05, 0x70, 0x25, 0xab,
+ 0x8f, 0x60, 0xd9, 0x7b, 0x84, 0x71, 0x7b, 0xbf, 0x25, 0x58, 0xdd, 0x43,
+ 0x1f, 0x4b, 0xc3, 0x8c, 0xf1, 0xf6, 0x1e, 0xc0, 0xe7, 0xc2, 0xb4, 0xae,
+ 0xb5, 0x4b, 0x2f, 0xaa,
+};
+static const struct drbg_kat_no_reseed kat29_t = {
+ 13, kat29_entropyin, kat29_nonce, kat29_persstr,
+ kat29_addin0, kat29_addin1, kat29_retbits
+};
+static const struct drbg_kat kat29 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat29_t
+};
+
+static const unsigned char kat30_entropyin[] = {
+ 0x52, 0x6b, 0xc8, 0xb7, 0x97, 0xad, 0x67, 0xeb, 0x9b, 0x11, 0xbb, 0x5d,
+ 0x17, 0x32, 0x00, 0x87,
+};
+static const unsigned char kat30_nonce[] = {
+ 0x64, 0x7b, 0xd2, 0x32, 0xad, 0x4d, 0x13, 0x00,
+};
+static const unsigned char kat30_persstr[] = {0};
+static const unsigned char kat30_addin0[] = {
+ 0x58, 0xc8, 0xbf, 0x95, 0x0f, 0xab, 0x02, 0x71, 0x19, 0xee, 0x4a, 0x59,
+ 0x27, 0x27, 0xaa, 0x02,
+};
+static const unsigned char kat30_addin1[] = {
+ 0x25, 0x39, 0xe1, 0x23, 0x92, 0x6b, 0x74, 0xab, 0x23, 0x41, 0x4d, 0x63,
+ 0x50, 0xb8, 0x92, 0x87,
+};
+static const unsigned char kat30_retbits[] = {
+ 0x35, 0x9c, 0x56, 0x08, 0x34, 0xbb, 0xeb, 0xdb, 0x41, 0x34, 0xcc, 0x3e,
+ 0x66, 0xbc, 0x06, 0x95, 0xce, 0xfd, 0xb4, 0xfe, 0x56, 0x63, 0x75, 0x2b,
+ 0x6e, 0xba, 0x97, 0x4c, 0x4b, 0x85, 0x92, 0x4a, 0x01, 0xdc, 0xd4, 0xea,
+ 0x3e, 0xd7, 0x7f, 0x2a, 0xf3, 0x95, 0x7b, 0x87, 0x51, 0xf7, 0x37, 0x15,
+ 0x74, 0xbb, 0x8b, 0x09, 0x0b, 0xc0, 0xd5, 0x12, 0xc1, 0x57, 0xc6, 0x55,
+ 0x9c, 0x16, 0xd0, 0xfd,
+};
+static const struct drbg_kat_no_reseed kat30_t = {
+ 14, kat30_entropyin, kat30_nonce, kat30_persstr,
+ kat30_addin0, kat30_addin1, kat30_retbits
+};
+static const struct drbg_kat kat30 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat30_t
+};
+
+static const unsigned char kat31_entropyin[] = {
+ 0xe1, 0x0b, 0xc2, 0x8a, 0x0b, 0xfd, 0xdf, 0xe9, 0x3e, 0x7f, 0x51, 0x86,
+ 0xe0, 0xca, 0x0b, 0x3b,
+};
+static const unsigned char kat31_nonce[] = {
+ 0x9f, 0xf4, 0x77, 0xc1, 0x86, 0x73, 0x84, 0x0d,
+};
+static const unsigned char kat31_persstr[] = {
+ 0xc9, 0x80, 0xde, 0xdf, 0x98, 0x82, 0xed, 0x44, 0x64, 0xa6, 0x74, 0x96,
+ 0x78, 0x68, 0xf1, 0x43,
+};
+static const unsigned char kat31_addin0[] = {0};
+static const unsigned char kat31_addin1[] = {0};
+static const unsigned char kat31_retbits[] = {
+ 0x35, 0xb0, 0x0d, 0xf6, 0x26, 0x9b, 0x66, 0x41, 0xfd, 0x4c, 0xcb, 0x35,
+ 0x4d, 0x56, 0xd8, 0x51, 0xde, 0x7a, 0x77, 0x52, 0x7e, 0x03, 0x4d, 0x60,
+ 0xc9, 0xe1, 0xa9, 0xe1, 0x52, 0x5a, 0x30, 0xed, 0x36, 0x1f, 0xde, 0xd8,
+ 0x9d, 0x3d, 0xcc, 0xb9, 0x78, 0xd4, 0xe7, 0xa9, 0xe1, 0x00, 0xeb, 0xf6,
+ 0x30, 0x62, 0x73, 0x5b, 0x52, 0x83, 0x1c, 0x6f, 0x0a, 0x1d, 0x3e, 0x1b,
+ 0xdc, 0x5e, 0xbc, 0x72,
+};
+static const struct drbg_kat_no_reseed kat31_t = {
+ 0, kat31_entropyin, kat31_nonce, kat31_persstr,
+ kat31_addin0, kat31_addin1, kat31_retbits
+};
+static const struct drbg_kat kat31 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat31_t
+};
+
+static const unsigned char kat32_entropyin[] = {
+ 0xca, 0x4b, 0x1e, 0xfa, 0x75, 0xbd, 0x69, 0x36, 0x38, 0x73, 0xb8, 0xf9,
+ 0xdb, 0x4d, 0x35, 0x0e,
+};
+static const unsigned char kat32_nonce[] = {
+ 0x47, 0xbf, 0x6c, 0x37, 0x72, 0xfd, 0xf7, 0xa9,
+};
+static const unsigned char kat32_persstr[] = {
+ 0xeb, 0xaa, 0x60, 0x2c, 0x4d, 0xbe, 0x33, 0xff, 0x1b, 0xef, 0xbf, 0x0a,
+ 0x0b, 0xc6, 0x97, 0x54,
+};
+static const unsigned char kat32_addin0[] = {0};
+static const unsigned char kat32_addin1[] = {0};
+static const unsigned char kat32_retbits[] = {
+ 0x59, 0xc3, 0x19, 0x79, 0x1b, 0xb1, 0xf3, 0x0e, 0xe9, 0x34, 0xae, 0x6e,
+ 0x8b, 0x1f, 0xad, 0x1f, 0x74, 0xca, 0x25, 0x45, 0x68, 0xb8, 0x7f, 0x75,
+ 0x12, 0xf8, 0xf2, 0xab, 0x4c, 0x23, 0x01, 0x03, 0x05, 0xe1, 0x70, 0xee,
+ 0x75, 0xd8, 0xcb, 0xeb, 0x23, 0x4c, 0x7a, 0x23, 0x6e, 0x12, 0x27, 0xdb,
+ 0x6f, 0x7a, 0xac, 0x3c, 0x44, 0xb7, 0x87, 0x4b, 0x65, 0x56, 0x74, 0x45,
+ 0x34, 0x30, 0x0c, 0x3d,
+};
+static const struct drbg_kat_no_reseed kat32_t = {
+ 1, kat32_entropyin, kat32_nonce, kat32_persstr,
+ kat32_addin0, kat32_addin1, kat32_retbits
+};
+static const struct drbg_kat kat32 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat32_t
+};
+
+static const unsigned char kat33_entropyin[] = {
+ 0x35, 0x19, 0x49, 0x15, 0x74, 0x71, 0x9d, 0xdb, 0x1f, 0x51, 0xb5, 0xf5,
+ 0x9e, 0x21, 0xad, 0x3d,
+};
+static const unsigned char kat33_nonce[] = {
+ 0xef, 0x1d, 0xbe, 0xae, 0x79, 0xf0, 0x89, 0x8b,
+};
+static const unsigned char kat33_persstr[] = {
+ 0x7f, 0xdc, 0x21, 0xe3, 0x53, 0x24, 0x9e, 0x93, 0xdf, 0x98, 0xf2, 0x91,
+ 0x02, 0xb9, 0xac, 0xec,
+};
+static const unsigned char kat33_addin0[] = {0};
+static const unsigned char kat33_addin1[] = {0};
+static const unsigned char kat33_retbits[] = {
+ 0x19, 0x2c, 0x71, 0x85, 0x74, 0x47, 0xaf, 0x82, 0x01, 0x37, 0x06, 0xb8,
+ 0xeb, 0x00, 0x8f, 0x8e, 0x2c, 0x2e, 0xb3, 0x99, 0x4a, 0x23, 0x8c, 0xf7,
+ 0x39, 0xe1, 0x74, 0x60, 0xfe, 0x84, 0xef, 0x71, 0xca, 0x43, 0x7e, 0x8a,
+ 0xcb, 0xb8, 0xd9, 0xd2, 0x88, 0x07, 0xc4, 0x7a, 0x5f, 0x03, 0x44, 0x42,
+ 0xaa, 0xf3, 0xc2, 0xf3, 0xe7, 0xde, 0xbe, 0x53, 0x1b, 0xc3, 0x59, 0x60,
+ 0x56, 0x68, 0x58, 0x48,
+};
+static const struct drbg_kat_no_reseed kat33_t = {
+ 2, kat33_entropyin, kat33_nonce, kat33_persstr,
+ kat33_addin0, kat33_addin1, kat33_retbits
+};
+static const struct drbg_kat kat33 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat33_t
+};
+
+static const unsigned char kat34_entropyin[] = {
+ 0x68, 0xed, 0xc1, 0xc7, 0xf0, 0x4f, 0xa2, 0x2f, 0x75, 0x1b, 0x91, 0x8b,
+ 0x01, 0x6b, 0xbf, 0xb5,
+};
+static const unsigned char kat34_nonce[] = {
+ 0xa9, 0xb6, 0x7a, 0x39, 0x58, 0xf2, 0x02, 0xf0,
+};
+static const unsigned char kat34_persstr[] = {
+ 0x9d, 0x6f, 0xbb, 0x02, 0x0e, 0x3d, 0x99, 0xd1, 0x95, 0xff, 0x46, 0x9f,
+ 0x0a, 0xc0, 0xb8, 0xca,
+};
+static const unsigned char kat34_addin0[] = {0};
+static const unsigned char kat34_addin1[] = {0};
+static const unsigned char kat34_retbits[] = {
+ 0xd9, 0x02, 0x89, 0xb1, 0xb6, 0x76, 0x3a, 0x76, 0x90, 0xfc, 0xb5, 0xd6,
+ 0x7c, 0x81, 0xc2, 0x03, 0xa1, 0xcf, 0xb0, 0x88, 0x71, 0xb9, 0x4a, 0xf6,
+ 0x51, 0xc4, 0xcd, 0x7e, 0xc2, 0xfa, 0x4b, 0x9d, 0x47, 0xc8, 0xe5, 0xfc,
+ 0xc9, 0x9a, 0xff, 0xc2, 0x21, 0x43, 0xb6, 0x12, 0x70, 0x18, 0xe9, 0xe2,
+ 0xc0, 0x91, 0x4f, 0x9d, 0x47, 0xa5, 0xa3, 0x0b, 0x26, 0xe7, 0x4d, 0xdc,
+ 0x31, 0xa4, 0x48, 0x42,
+};
+static const struct drbg_kat_no_reseed kat34_t = {
+ 3, kat34_entropyin, kat34_nonce, kat34_persstr,
+ kat34_addin0, kat34_addin1, kat34_retbits
+};
+static const struct drbg_kat kat34 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat34_t
+};
+
+static const unsigned char kat35_entropyin[] = {
+ 0x8e, 0x6b, 0xaf, 0x81, 0xa3, 0xf9, 0xe7, 0x32, 0xef, 0xb9, 0x65, 0xaf,
+ 0xa5, 0x9e, 0x71, 0xee,
+};
+static const unsigned char kat35_nonce[] = {
+ 0x9a, 0x40, 0x36, 0xfe, 0x7f, 0xf2, 0x25, 0xb8,
+};
+static const unsigned char kat35_persstr[] = {
+ 0xc5, 0x7e, 0x42, 0xad, 0x7a, 0xef, 0x53, 0x77, 0xfc, 0x4c, 0xd6, 0x20,
+ 0xd6, 0x31, 0xb0, 0x61,
+};
+static const unsigned char kat35_addin0[] = {0};
+static const unsigned char kat35_addin1[] = {0};
+static const unsigned char kat35_retbits[] = {
+ 0x71, 0x39, 0xa2, 0xd6, 0x74, 0xee, 0xfe, 0x54, 0x08, 0x7a, 0x2d, 0xd5,
+ 0xf4, 0x97, 0xf5, 0xa1, 0xcb, 0x44, 0x44, 0x72, 0xe3, 0x64, 0x04, 0x5c,
+ 0xb9, 0x20, 0x2b, 0xce, 0x24, 0x58, 0x1b, 0x4b, 0x1b, 0x80, 0x3f, 0xa5,
+ 0xf4, 0xa9, 0xac, 0x6d, 0x66, 0x37, 0xbd, 0xd9, 0x06, 0xaf, 0x3d, 0x8f,
+ 0x49, 0xb5, 0xb8, 0x0f, 0x44, 0xcd, 0x16, 0xee, 0x5b, 0x1a, 0xe3, 0xbf,
+ 0x51, 0xb5, 0x98, 0xba,
+};
+static const struct drbg_kat_no_reseed kat35_t = {
+ 4, kat35_entropyin, kat35_nonce, kat35_persstr,
+ kat35_addin0, kat35_addin1, kat35_retbits
+};
+static const struct drbg_kat kat35 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat35_t
+};
+
+static const unsigned char kat36_entropyin[] = {
+ 0xf8, 0x99, 0x2f, 0x34, 0x0f, 0x90, 0xc8, 0xd8, 0x16, 0xb4, 0xbd, 0x8b,
+ 0x43, 0x5d, 0xa0, 0x35,
+};
+static const unsigned char kat36_nonce[] = {
+ 0xfc, 0xf9, 0x44, 0x00, 0x6f, 0x29, 0x27, 0x98,
+};
+static const unsigned char kat36_persstr[] = {
+ 0x56, 0x32, 0x23, 0x5e, 0x85, 0x2c, 0x07, 0x40, 0x09, 0xb4, 0x97, 0xed,
+ 0xa4, 0x38, 0xa1, 0x6f,
+};
+static const unsigned char kat36_addin0[] = {0};
+static const unsigned char kat36_addin1[] = {0};
+static const unsigned char kat36_retbits[] = {
+ 0x9e, 0xab, 0x55, 0xfa, 0x4b, 0x2c, 0x1c, 0xfa, 0xc6, 0x3d, 0x4d, 0xe4,
+ 0x7a, 0xa8, 0xf5, 0x9f, 0x78, 0x5e, 0xe4, 0x90, 0xda, 0x44, 0xce, 0xe3,
+ 0x0f, 0x91, 0x61, 0xe9, 0x3a, 0xfc, 0x46, 0x1d, 0xad, 0x0e, 0x7f, 0x4a,
+ 0x06, 0x4e, 0x92, 0xef, 0xd6, 0x00, 0x89, 0x16, 0xc2, 0x2f, 0x83, 0x64,
+ 0xc1, 0x90, 0x46, 0x7a, 0xde, 0x12, 0xab, 0x4e, 0x18, 0xb1, 0xf3, 0x9c,
+ 0xe1, 0x8b, 0x35, 0x8a,
+};
+static const struct drbg_kat_no_reseed kat36_t = {
+ 5, kat36_entropyin, kat36_nonce, kat36_persstr,
+ kat36_addin0, kat36_addin1, kat36_retbits
+};
+static const struct drbg_kat kat36 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat36_t
+};
+
+static const unsigned char kat37_entropyin[] = {
+ 0x07, 0x43, 0x8f, 0x83, 0x53, 0xb7, 0xb0, 0x67, 0x42, 0x18, 0x31, 0x9e,
+ 0x29, 0x54, 0x0b, 0xca,
+};
+static const unsigned char kat37_nonce[] = {
+ 0x41, 0x14, 0x77, 0x63, 0x6a, 0x50, 0x0c, 0x62,
+};
+static const unsigned char kat37_persstr[] = {
+ 0xcf, 0x36, 0xf2, 0xaa, 0x72, 0xf2, 0xf3, 0x5e, 0x33, 0x5e, 0x65, 0xcf,
+ 0xd1, 0x7e, 0x2d, 0x3d,
+};
+static const unsigned char kat37_addin0[] = {0};
+static const unsigned char kat37_addin1[] = {0};
+static const unsigned char kat37_retbits[] = {
+ 0x6c, 0xfa, 0xcf, 0xe4, 0x7a, 0xcf, 0x8f, 0x61, 0xd8, 0xaf, 0x3e, 0xd4,
+ 0xfb, 0xac, 0xef, 0x5c, 0xd7, 0x41, 0xac, 0x2f, 0x16, 0x5e, 0x15, 0xbd,
+ 0xaa, 0xb1, 0xd0, 0x30, 0xc6, 0x85, 0x67, 0x83, 0x7e, 0xf3, 0xda, 0x1e,
+ 0xc8, 0x3d, 0xa0, 0x42, 0x3c, 0xa3, 0x42, 0x4c, 0xf2, 0x93, 0xf6, 0x1f,
+ 0x71, 0x75, 0xfb, 0xa8, 0xe9, 0x1e, 0x5f, 0xdc, 0x8b, 0x39, 0x55, 0x77,
+ 0x73, 0x61, 0xd6, 0x90,
+};
+static const struct drbg_kat_no_reseed kat37_t = {
+ 6, kat37_entropyin, kat37_nonce, kat37_persstr,
+ kat37_addin0, kat37_addin1, kat37_retbits
+};
+static const struct drbg_kat kat37 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat37_t
+};
+
+static const unsigned char kat38_entropyin[] = {
+ 0x8e, 0x93, 0x73, 0x5c, 0x34, 0xae, 0x0c, 0x5e, 0xa5, 0x21, 0x3d, 0x83,
+ 0xa8, 0xda, 0x80, 0x45,
+};
+static const unsigned char kat38_nonce[] = {
+ 0x2a, 0x0b, 0x27, 0x9a, 0x9d, 0x67, 0x78, 0x38,
+};
+static const unsigned char kat38_persstr[] = {
+ 0x14, 0xf4, 0x52, 0x66, 0x52, 0x4a, 0x81, 0x52, 0x85, 0x7a, 0x83, 0x31,
+ 0x6a, 0x17, 0x75, 0x85,
+};
+static const unsigned char kat38_addin0[] = {0};
+static const unsigned char kat38_addin1[] = {0};
+static const unsigned char kat38_retbits[] = {
+ 0xe0, 0x0c, 0xb8, 0x63, 0x6f, 0x96, 0x02, 0xc3, 0x30, 0x21, 0xa8, 0x2a,
+ 0x7f, 0x9d, 0xc9, 0xc7, 0x4e, 0xd3, 0x43, 0x5b, 0x34, 0x89, 0x7d, 0x6e,
+ 0xfd, 0x8c, 0x05, 0xf1, 0x77, 0xe8, 0x55, 0x6a, 0x44, 0x3b, 0xd1, 0x8c,
+ 0x20, 0xa5, 0x57, 0xb9, 0xbd, 0xc4, 0x17, 0xe8, 0x99, 0x85, 0x06, 0x48,
+ 0x50, 0x91, 0xd6, 0xbc, 0x91, 0x8e, 0x9c, 0xbf, 0xfb, 0xb8, 0x5c, 0x62,
+ 0x0f, 0x74, 0xc6, 0xec,
+};
+static const struct drbg_kat_no_reseed kat38_t = {
+ 7, kat38_entropyin, kat38_nonce, kat38_persstr,
+ kat38_addin0, kat38_addin1, kat38_retbits
+};
+static const struct drbg_kat kat38 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat38_t
+};
+
+static const unsigned char kat39_entropyin[] = {
+ 0xec, 0x6b, 0x87, 0xe9, 0xe0, 0x3f, 0x44, 0xf9, 0x19, 0xe4, 0x0e, 0x1d,
+ 0xac, 0x02, 0xf8, 0x73,
+};
+static const unsigned char kat39_nonce[] = {
+ 0x5e, 0x9a, 0xc5, 0x09, 0x0a, 0x5e, 0x28, 0x97,
+};
+static const unsigned char kat39_persstr[] = {
+ 0x0d, 0x9b, 0xa4, 0x62, 0xbf, 0x16, 0x6f, 0x3b, 0x36, 0x6a, 0x2a, 0xdf,
+ 0x55, 0xd2, 0x76, 0x45,
+};
+static const unsigned char kat39_addin0[] = {0};
+static const unsigned char kat39_addin1[] = {0};
+static const unsigned char kat39_retbits[] = {
+ 0xec, 0x37, 0xac, 0xbd, 0xdf, 0xb0, 0x41, 0xe4, 0x24, 0x9c, 0x1c, 0xb9,
+ 0x83, 0x3a, 0x31, 0xfc, 0x6f, 0xbd, 0xaa, 0x66, 0x58, 0xe4, 0xb7, 0x48,
+ 0xc0, 0xeb, 0xf6, 0xab, 0x54, 0xa3, 0xb9, 0xc0, 0xf6, 0x2d, 0x7c, 0x89,
+ 0xdb, 0xb2, 0x1d, 0x1d, 0xe1, 0x33, 0x15, 0xcb, 0xae, 0x2f, 0xf4, 0xf5,
+ 0x46, 0x24, 0x91, 0x32, 0x1f, 0xbe, 0x04, 0xb4, 0x14, 0xfb, 0xa2, 0x80,
+ 0x7e, 0xd9, 0x14, 0xee,
+};
+static const struct drbg_kat_no_reseed kat39_t = {
+ 8, kat39_entropyin, kat39_nonce, kat39_persstr,
+ kat39_addin0, kat39_addin1, kat39_retbits
+};
+static const struct drbg_kat kat39 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat39_t
+};
+
+static const unsigned char kat40_entropyin[] = {
+ 0x9d, 0x28, 0x2f, 0x5a, 0x0c, 0x15, 0xa6, 0x53, 0x04, 0x73, 0x10, 0xb5,
+ 0x62, 0x7d, 0x8f, 0xa2,
+};
+static const unsigned char kat40_nonce[] = {
+ 0x55, 0x22, 0xc4, 0x2f, 0x4b, 0xb0, 0x76, 0xdc,
+};
+static const unsigned char kat40_persstr[] = {
+ 0x84, 0x6b, 0x2e, 0x17, 0xb0, 0x62, 0xc4, 0xc7, 0xc5, 0x61, 0x94, 0x3b,
+ 0x5d, 0x97, 0x56, 0x5d,
+};
+static const unsigned char kat40_addin0[] = {0};
+static const unsigned char kat40_addin1[] = {0};
+static const unsigned char kat40_retbits[] = {
+ 0x45, 0xf6, 0x0e, 0x1b, 0xa9, 0x81, 0xaf, 0x7f, 0x52, 0xef, 0x49, 0x39,
+ 0xc0, 0xbb, 0x0b, 0xdb, 0x6f, 0xe4, 0x6f, 0x37, 0x2c, 0xc6, 0x48, 0x06,
+ 0x4b, 0xbd, 0x3a, 0x0a, 0x2b, 0x85, 0xc0, 0x23, 0x91, 0xb2, 0x97, 0x92,
+ 0xcc, 0x88, 0x05, 0xbb, 0x5d, 0x45, 0x3e, 0xe2, 0x90, 0xcd, 0x1b, 0x9c,
+ 0x9f, 0x8f, 0x20, 0xb0, 0x91, 0x16, 0xaf, 0x1f, 0xd5, 0xec, 0xea, 0xe8,
+ 0x0d, 0x03, 0x58, 0xd8,
+};
+static const struct drbg_kat_no_reseed kat40_t = {
+ 9, kat40_entropyin, kat40_nonce, kat40_persstr,
+ kat40_addin0, kat40_addin1, kat40_retbits
+};
+static const struct drbg_kat kat40 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat40_t
+};
+
+static const unsigned char kat41_entropyin[] = {
+ 0x83, 0x82, 0x7c, 0x08, 0x52, 0x4b, 0x54, 0xe8, 0x0f, 0x60, 0xe1, 0x86,
+ 0xcf, 0xce, 0x36, 0xdb,
+};
+static const unsigned char kat41_nonce[] = {
+ 0x17, 0x7e, 0x5c, 0x00, 0xf7, 0x85, 0xa6, 0xf9,
+};
+static const unsigned char kat41_persstr[] = {
+ 0x71, 0x75, 0xa2, 0xc2, 0x2e, 0xab, 0x4d, 0x0b, 0x1a, 0x65, 0xfd, 0xad,
+ 0xed, 0x35, 0x6a, 0xeb,
+};
+static const unsigned char kat41_addin0[] = {0};
+static const unsigned char kat41_addin1[] = {0};
+static const unsigned char kat41_retbits[] = {
+ 0x84, 0x24, 0xe7, 0x6c, 0x73, 0x6c, 0x03, 0x09, 0x42, 0x3c, 0xf4, 0x8d,
+ 0xc1, 0x05, 0xfe, 0xef, 0x22, 0x8d, 0xd4, 0x7b, 0xfd, 0x8d, 0x33, 0x80,
+ 0x19, 0x50, 0xd2, 0x10, 0x2d, 0x5d, 0xba, 0xfb, 0x51, 0xe1, 0xa8, 0x5b,
+ 0x4a, 0x97, 0x1e, 0x4f, 0x0b, 0x9d, 0x52, 0x65, 0x69, 0x73, 0xdb, 0x45,
+ 0x5b, 0x28, 0x6f, 0x58, 0x8c, 0xa6, 0x1d, 0x15, 0x99, 0xc4, 0xec, 0x60,
+ 0xdd, 0x80, 0xbe, 0x98,
+};
+static const struct drbg_kat_no_reseed kat41_t = {
+ 10, kat41_entropyin, kat41_nonce, kat41_persstr,
+ kat41_addin0, kat41_addin1, kat41_retbits
+};
+static const struct drbg_kat kat41 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat41_t
+};
+
+static const unsigned char kat42_entropyin[] = {
+ 0x9f, 0x32, 0x13, 0xa2, 0xd6, 0xfe, 0x5f, 0x3d, 0xfa, 0xf0, 0xe4, 0xed,
+ 0x29, 0x2e, 0x0f, 0x2a,
+};
+static const unsigned char kat42_nonce[] = {
+ 0xf9, 0xc0, 0x55, 0x3b, 0x18, 0xb2, 0x1c, 0xc3,
+};
+static const unsigned char kat42_persstr[] = {
+ 0x21, 0x73, 0xd3, 0x9b, 0x37, 0x55, 0x04, 0x19, 0x11, 0x98, 0x9f, 0x89,
+ 0xf1, 0xe9, 0x5d, 0x3e,
+};
+static const unsigned char kat42_addin0[] = {0};
+static const unsigned char kat42_addin1[] = {0};
+static const unsigned char kat42_retbits[] = {
+ 0x10, 0x45, 0xf7, 0xb5, 0x36, 0xda, 0xb4, 0xde, 0x01, 0x54, 0x48, 0xac,
+ 0x47, 0x66, 0x18, 0x8a, 0x36, 0x7b, 0xb6, 0x93, 0x97, 0x91, 0x3d, 0xfd,
+ 0x3d, 0x5b, 0xbf, 0x83, 0xf1, 0xbb, 0xac, 0x73, 0x23, 0x2d, 0x47, 0x64,
+ 0x4e, 0x5a, 0x9c, 0x16, 0x99, 0x60, 0x58, 0x1e, 0x4a, 0xd5, 0xed, 0x26,
+ 0x95, 0x36, 0x0b, 0x94, 0xf4, 0x20, 0x9c, 0x77, 0xd7, 0x69, 0x40, 0x16,
+ 0xb4, 0xb3, 0x97, 0xc2,
+};
+static const struct drbg_kat_no_reseed kat42_t = {
+ 11, kat42_entropyin, kat42_nonce, kat42_persstr,
+ kat42_addin0, kat42_addin1, kat42_retbits
+};
+static const struct drbg_kat kat42 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat42_t
+};
+
+static const unsigned char kat43_entropyin[] = {
+ 0xfb, 0xc8, 0x19, 0x90, 0x74, 0xa7, 0x6f, 0x23, 0x68, 0x86, 0x36, 0xae,
+ 0x31, 0x14, 0x28, 0x1e,
+};
+static const unsigned char kat43_nonce[] = {
+ 0xeb, 0xc2, 0x2e, 0x95, 0xdd, 0xae, 0xb6, 0xfc,
+};
+static const unsigned char kat43_persstr[] = {
+ 0x71, 0xfb, 0xd5, 0x9f, 0x88, 0xfc, 0x99, 0xa9, 0xb6, 0x07, 0x00, 0x27,
+ 0xe7, 0x35, 0x41, 0xc2,
+};
+static const unsigned char kat43_addin0[] = {0};
+static const unsigned char kat43_addin1[] = {0};
+static const unsigned char kat43_retbits[] = {
+ 0x87, 0x25, 0x66, 0xa7, 0x00, 0x47, 0x98, 0xe0, 0x06, 0x97, 0xbd, 0xb3,
+ 0x3a, 0xf1, 0xee, 0x7a, 0x07, 0x6e, 0x9f, 0xd2, 0x89, 0xaf, 0x83, 0xaf,
+ 0xcb, 0x10, 0xa0, 0x25, 0x2b, 0xb5, 0xc1, 0x06, 0xc8, 0xdd, 0x20, 0xd7,
+ 0x7c, 0x85, 0x9f, 0x14, 0x01, 0x11, 0x8c, 0x24, 0xf5, 0xa8, 0x96, 0x8f,
+ 0x11, 0xfa, 0x9f, 0x77, 0x78, 0xc2, 0x80, 0x31, 0x89, 0xc8, 0xda, 0x87,
+ 0xe6, 0x49, 0x45, 0xc8,
+};
+static const struct drbg_kat_no_reseed kat43_t = {
+ 12, kat43_entropyin, kat43_nonce, kat43_persstr,
+ kat43_addin0, kat43_addin1, kat43_retbits
+};
+static const struct drbg_kat kat43 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat43_t
+};
+
+static const unsigned char kat44_entropyin[] = {
+ 0x43, 0xf4, 0xd0, 0x89, 0x06, 0x0c, 0x90, 0x7f, 0x38, 0x76, 0x05, 0x1f,
+ 0xd5, 0xe3, 0x6f, 0x74,
+};
+static const unsigned char kat44_nonce[] = {
+ 0x45, 0x71, 0xe6, 0x61, 0x5b, 0xa3, 0xbb, 0xce,
+};
+static const unsigned char kat44_persstr[] = {
+ 0xfc, 0x90, 0x57, 0x74, 0x9b, 0xa4, 0x37, 0xd8, 0xfb, 0xe9, 0xf8, 0x1d,
+ 0x29, 0xdf, 0x5e, 0xf1,
+};
+static const unsigned char kat44_addin0[] = {0};
+static const unsigned char kat44_addin1[] = {0};
+static const unsigned char kat44_retbits[] = {
+ 0x90, 0x78, 0xf1, 0xbc, 0x92, 0x91, 0x0e, 0xbc, 0xf8, 0xe3, 0x17, 0x57,
+ 0xb6, 0x24, 0xbd, 0x23, 0xdb, 0xcd, 0x74, 0xf9, 0xca, 0x70, 0xff, 0x1c,
+ 0x6f, 0x2b, 0x21, 0xd8, 0x59, 0xa4, 0xe8, 0xa4, 0xe9, 0x96, 0x3e, 0xf1,
+ 0x32, 0xa0, 0x25, 0xb3, 0xae, 0x28, 0x5b, 0x43, 0xa6, 0x96, 0x98, 0x90,
+ 0x0d, 0x4f, 0x8a, 0x30, 0xbb, 0x5e, 0x99, 0x29, 0x0e, 0x45, 0x04, 0x16,
+ 0x19, 0x97, 0xa8, 0x37,
+};
+static const struct drbg_kat_no_reseed kat44_t = {
+ 13, kat44_entropyin, kat44_nonce, kat44_persstr,
+ kat44_addin0, kat44_addin1, kat44_retbits
+};
+static const struct drbg_kat kat44 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat44_t
+};
+
+static const unsigned char kat45_entropyin[] = {
+ 0x0e, 0xe3, 0x8e, 0xa2, 0x9d, 0x71, 0x95, 0x00, 0x3e, 0x2b, 0x94, 0x2a,
+ 0xbf, 0x13, 0x48, 0xfc,
+};
+static const unsigned char kat45_nonce[] = {
+ 0x80, 0xa7, 0x5c, 0x77, 0xce, 0xff, 0x54, 0xe4,
+};
+static const unsigned char kat45_persstr[] = {
+ 0x83, 0x8e, 0xae, 0xbc, 0x98, 0x2c, 0xaa, 0x15, 0x62, 0xc3, 0x06, 0x4c,
+ 0xce, 0x42, 0xe5, 0x1e,
+};
+static const unsigned char kat45_addin0[] = {0};
+static const unsigned char kat45_addin1[] = {0};
+static const unsigned char kat45_retbits[] = {
+ 0x66, 0x29, 0x1b, 0x86, 0x85, 0xe9, 0x7c, 0x76, 0xe2, 0x21, 0x6d, 0x70,
+ 0x8b, 0x40, 0x70, 0x22, 0x68, 0x4b, 0x28, 0x29, 0x1f, 0x3d, 0xc7, 0x1b,
+ 0x5d, 0x60, 0xde, 0x14, 0x3f, 0x5f, 0xdf, 0x0b, 0xb0, 0x7a, 0xe9, 0xd7,
+ 0x52, 0x44, 0x56, 0xc4, 0xdf, 0xd0, 0x89, 0xea, 0x88, 0xde, 0x86, 0xdd,
+ 0xfa, 0x1d, 0x48, 0xca, 0x54, 0x2f, 0x00, 0xfa, 0x58, 0x6d, 0xa7, 0xa6,
+ 0x02, 0x7d, 0x83, 0x7b,
+};
+static const struct drbg_kat_no_reseed kat45_t = {
+ 14, kat45_entropyin, kat45_nonce, kat45_persstr,
+ kat45_addin0, kat45_addin1, kat45_retbits
+};
+static const struct drbg_kat kat45 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat45_t
+};
+
+static const unsigned char kat46_entropyin[] = {
+ 0xca, 0xe4, 0x8d, 0xd8, 0x0d, 0x29, 0x81, 0x03, 0xef, 0x1e, 0xc0, 0xbf,
+ 0x1b, 0xb9, 0x62, 0x70,
+};
+static const unsigned char kat46_nonce[] = {
+ 0xd8, 0x27, 0xf9, 0x16, 0x13, 0xe0, 0xb4, 0x7f,
+};
+static const unsigned char kat46_persstr[] = {
+ 0xcc, 0x92, 0x8f, 0x3d, 0x2d, 0xf3, 0x1a, 0x29, 0xf4, 0xe4, 0x44, 0xf3,
+ 0xdf, 0x08, 0xbe, 0x21,
+};
+static const unsigned char kat46_addin0[] = {
+ 0x7e, 0xaa, 0x1b, 0xbe, 0xc7, 0x93, 0x93, 0xa7, 0xf4, 0xa8, 0x22, 0x7b,
+ 0x69, 0x1e, 0xcb, 0x68,
+};
+static const unsigned char kat46_addin1[] = {
+ 0x68, 0x69, 0xc6, 0xc7, 0xb9, 0xe6, 0x65, 0x3b, 0x39, 0x77, 0xf0, 0x78,
+ 0x9e, 0x94, 0x47, 0x8a,
+};
+static const unsigned char kat46_retbits[] = {
+ 0x92, 0x01, 0x32, 0xcd, 0x28, 0x46, 0x95, 0xb8, 0x68, 0xb5, 0xbc, 0x4b,
+ 0x70, 0x3a, 0xfe, 0xa4, 0xd9, 0x96, 0x62, 0x4a, 0x8f, 0x57, 0xe9, 0xfb,
+ 0xf5, 0xe7, 0x93, 0xb5, 0x09, 0xcb, 0x15, 0xb4, 0xbe, 0xaf, 0x70, 0x2d,
+ 0xac, 0x28, 0x71, 0x2d, 0x24, 0x9a, 0xe7, 0x50, 0x90, 0xa9, 0x1f, 0xd3,
+ 0x57, 0x75, 0x29, 0x4b, 0xf2, 0x4d, 0xde, 0xbf, 0xd2, 0x4e, 0x45, 0xd1,
+ 0x3f, 0x4a, 0x17, 0x48,
+};
+static const struct drbg_kat_no_reseed kat46_t = {
+ 0, kat46_entropyin, kat46_nonce, kat46_persstr,
+ kat46_addin0, kat46_addin1, kat46_retbits
+};
+static const struct drbg_kat kat46 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat46_t
+};
+
+static const unsigned char kat47_entropyin[] = {
+ 0xc0, 0x70, 0x1f, 0x92, 0x50, 0x75, 0x8f, 0xcd, 0xf2, 0xbe, 0x73, 0x98,
+ 0x80, 0xdb, 0x66, 0xeb,
+};
+static const unsigned char kat47_nonce[] = {
+ 0x14, 0x68, 0xb4, 0xa5, 0x87, 0x9c, 0x2d, 0xa6,
+};
+static const unsigned char kat47_persstr[] = {
+ 0x80, 0x08, 0xae, 0xe8, 0xe9, 0x69, 0x40, 0xc5, 0x08, 0x73, 0xc7, 0x9f,
+ 0x8e, 0xcf, 0xe0, 0x02,
+};
+static const unsigned char kat47_addin0[] = {
+ 0xf9, 0x01, 0xf8, 0x16, 0x7a, 0x1d, 0xff, 0xde, 0x8e, 0x3c, 0x83, 0xe2,
+ 0x44, 0x85, 0xe7, 0xfe,
+};
+static const unsigned char kat47_addin1[] = {
+ 0x17, 0x1c, 0x09, 0x38, 0xc2, 0x38, 0x9f, 0x97, 0x87, 0x60, 0x55, 0xb4,
+ 0x82, 0x16, 0x62, 0x7f,
+};
+static const unsigned char kat47_retbits[] = {
+ 0x97, 0xc0, 0xc0, 0xe5, 0xa0, 0xcc, 0xf2, 0x4f, 0x33, 0x63, 0x48, 0x8a,
+ 0xdb, 0x13, 0x0a, 0x35, 0x89, 0xbf, 0x80, 0x65, 0x62, 0xee, 0x13, 0x95,
+ 0x7c, 0x33, 0xd3, 0x7d, 0xf4, 0x07, 0x77, 0x7a, 0x2b, 0x65, 0x0b, 0x5f,
+ 0x45, 0x5c, 0x13, 0xf1, 0x90, 0x77, 0x7f, 0xc5, 0x04, 0x3f, 0xcc, 0x1a,
+ 0x38, 0xf8, 0xcd, 0x1b, 0xbb, 0xd5, 0x57, 0xd1, 0x4a, 0x4c, 0x2e, 0x8a,
+ 0x2b, 0x49, 0x1e, 0x5c,
+};
+static const struct drbg_kat_no_reseed kat47_t = {
+ 1, kat47_entropyin, kat47_nonce, kat47_persstr,
+ kat47_addin0, kat47_addin1, kat47_retbits
+};
+static const struct drbg_kat kat47 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat47_t
+};
+
+static const unsigned char kat48_entropyin[] = {
+ 0x6b, 0x98, 0x53, 0x2d, 0x67, 0x8f, 0xd2, 0x79, 0xcf, 0x73, 0x7c, 0x58,
+ 0x15, 0x0c, 0xe5, 0x89,
+};
+static const unsigned char kat48_nonce[] = {
+ 0xca, 0x55, 0x45, 0x07, 0x3d, 0x54, 0x9d, 0x06,
+};
+static const unsigned char kat48_persstr[] = {
+ 0x80, 0x90, 0x8a, 0xc1, 0x34, 0xe0, 0xcd, 0x23, 0xef, 0x7e, 0x31, 0x85,
+ 0x48, 0xf9, 0x21, 0x91,
+};
+static const unsigned char kat48_addin0[] = {
+ 0x53, 0x79, 0x0d, 0xa9, 0x09, 0xbf, 0xde, 0xed, 0xaa, 0xfd, 0x99, 0x61,
+ 0x9f, 0x3f, 0x46, 0x1b,
+};
+static const unsigned char kat48_addin1[] = {
+ 0xc7, 0xa5, 0x87, 0x77, 0xd1, 0xfb, 0xd1, 0x55, 0x3e, 0x95, 0x46, 0xc8,
+ 0x3e, 0x40, 0x9f, 0xc2,
+};
+static const unsigned char kat48_retbits[] = {
+ 0xd9, 0x84, 0xa2, 0x40, 0x58, 0x87, 0x39, 0x02, 0x27, 0x94, 0x09, 0x59,
+ 0xe4, 0x9f, 0x94, 0x4e, 0x49, 0x04, 0xc4, 0xf0, 0x46, 0x7f, 0xf2, 0x4d,
+ 0x87, 0x64, 0xdb, 0x91, 0x53, 0x0a, 0x1e, 0x59, 0x65, 0x68, 0x84, 0x72,
+ 0xfa, 0xc1, 0x31, 0xbe, 0xa0, 0x55, 0xc7, 0x15, 0x12, 0x27, 0xe2, 0xfc,
+ 0xb0, 0xda, 0xd9, 0x65, 0x5e, 0xc3, 0xac, 0x22, 0xcd, 0x7d, 0xff, 0x72,
+ 0xf6, 0xc7, 0x4a, 0xa0,
+};
+static const struct drbg_kat_no_reseed kat48_t = {
+ 2, kat48_entropyin, kat48_nonce, kat48_persstr,
+ kat48_addin0, kat48_addin1, kat48_retbits
+};
+static const struct drbg_kat kat48 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat48_t
+};
+
+static const unsigned char kat49_entropyin[] = {
+ 0x97, 0x51, 0x6e, 0x48, 0xd9, 0x10, 0x37, 0x2a, 0x3f, 0x1f, 0xb4, 0xaa,
+ 0x7a, 0xe4, 0x93, 0x0f,
+};
+static const unsigned char kat49_nonce[] = {
+ 0xbb, 0xa3, 0x0b, 0x3d, 0xeb, 0x19, 0x33, 0x89,
+};
+static const unsigned char kat49_persstr[] = {
+ 0x8c, 0x0e, 0x3e, 0x71, 0xc8, 0x20, 0x1a, 0x77, 0x10, 0x55, 0x19, 0xdf,
+ 0xfa, 0x89, 0xc1, 0xaa,
+};
+static const unsigned char kat49_addin0[] = {
+ 0x0a, 0x18, 0x78, 0x7e, 0x46, 0x50, 0xfa, 0x02, 0x49, 0xf7, 0x79, 0x62,
+ 0xac, 0x15, 0x8c, 0x63,
+};
+static const unsigned char kat49_addin1[] = {
+ 0x2f, 0xb1, 0x92, 0x31, 0x4c, 0x3e, 0x07, 0xf9, 0x63, 0xfb, 0xa3, 0x4d,
+ 0x8d, 0xfc, 0x8c, 0x9c,
+};
+static const unsigned char kat49_retbits[] = {
+ 0xd7, 0xb7, 0x3e, 0x44, 0x9a, 0xed, 0x8f, 0x0a, 0x06, 0x93, 0x84, 0x83,
+ 0xe8, 0x78, 0x11, 0x04, 0x9b, 0x4a, 0xcf, 0xe5, 0x1c, 0xa5, 0x55, 0xf1,
+ 0xee, 0x97, 0x86, 0xe3, 0x3f, 0xce, 0x90, 0x69, 0x7d, 0xb6, 0x8d, 0x2d,
+ 0xc6, 0x36, 0x1c, 0x94, 0x2c, 0xf6, 0x7d, 0x89, 0x26, 0x19, 0x49, 0x7e,
+ 0x96, 0x19, 0x43, 0x32, 0xae, 0x32, 0xa6, 0x35, 0xcf, 0x35, 0x5b, 0xbc,
+ 0x3c, 0x66, 0x79, 0x55,
+};
+static const struct drbg_kat_no_reseed kat49_t = {
+ 3, kat49_entropyin, kat49_nonce, kat49_persstr,
+ kat49_addin0, kat49_addin1, kat49_retbits
+};
+static const struct drbg_kat kat49 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat49_t
+};
+
+static const unsigned char kat50_entropyin[] = {
+ 0x62, 0xce, 0xf3, 0x5a, 0x51, 0x8e, 0xf6, 0x52, 0x0b, 0x6e, 0xdb, 0x1a,
+ 0xa9, 0xa2, 0x14, 0x96,
+};
+static const unsigned char kat50_nonce[] = {
+ 0x2b, 0x98, 0xe2, 0x69, 0xf5, 0x1f, 0xb3, 0xba,
+};
+static const unsigned char kat50_persstr[] = {
+ 0x89, 0xa6, 0xc9, 0x11, 0x27, 0x13, 0xd0, 0xd1, 0x96, 0xc8, 0xe0, 0x26,
+ 0x60, 0xa2, 0x51, 0x31,
+};
+static const unsigned char kat50_addin0[] = {
+ 0x35, 0xed, 0xb8, 0x77, 0x01, 0xcb, 0x50, 0x01, 0x43, 0x4d, 0xb1, 0x85,
+ 0x7b, 0xf9, 0x8e, 0xfb,
+};
+static const unsigned char kat50_addin1[] = {
+ 0xa9, 0xfa, 0x53, 0xb5, 0xd3, 0x03, 0x2e, 0x4b, 0xe6, 0x0d, 0xcd, 0xb1,
+ 0xe9, 0x4b, 0x4f, 0x50,
+};
+static const unsigned char kat50_retbits[] = {
+ 0xde, 0x8b, 0x77, 0x0b, 0x3e, 0xd4, 0x33, 0x15, 0xab, 0x7e, 0x83, 0x31,
+ 0xe2, 0xdf, 0x12, 0xcb, 0x9a, 0xbe, 0xb3, 0xf6, 0xb1, 0x4c, 0x45, 0x7a,
+ 0x30, 0x4b, 0xcd, 0x1d, 0xf7, 0x30, 0xdb, 0x52, 0xd4, 0xb4, 0x02, 0xf7,
+ 0x8b, 0x80, 0x54, 0x59, 0x65, 0xfc, 0x5a, 0x83, 0xdd, 0xf9, 0x99, 0x63,
+ 0xaa, 0xb5, 0xe1, 0xb3, 0x79, 0x24, 0x57, 0xdf, 0x4b, 0xf9, 0x27, 0xb6,
+ 0x6a, 0x4d, 0x67, 0x45,
+};
+static const struct drbg_kat_no_reseed kat50_t = {
+ 4, kat50_entropyin, kat50_nonce, kat50_persstr,
+ kat50_addin0, kat50_addin1, kat50_retbits
+};
+static const struct drbg_kat kat50 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat50_t
+};
+
+static const unsigned char kat51_entropyin[] = {
+ 0xc0, 0x2a, 0xf7, 0x05, 0xf6, 0x99, 0xc3, 0xa7, 0xf5, 0xe2, 0xbb, 0x9b,
+ 0x14, 0xc7, 0xce, 0xa7,
+};
+static const unsigned char kat51_nonce[] = {
+ 0xeb, 0x24, 0x6b, 0x26, 0xa3, 0xa0, 0xa1, 0x0b,
+};
+static const unsigned char kat51_persstr[] = {
+ 0x07, 0xdf, 0x3d, 0x3d, 0x48, 0x6b, 0xbe, 0x68, 0x19, 0x04, 0x40, 0x94,
+ 0xc9, 0x15, 0x89, 0x99,
+};
+static const unsigned char kat51_addin0[] = {
+ 0xf4, 0x9d, 0x27, 0x9f, 0x04, 0x81, 0x5d, 0x98, 0x30, 0x92, 0xb6, 0xb5,
+ 0xfe, 0x4f, 0x10, 0xf7,
+};
+static const unsigned char kat51_addin1[] = {
+ 0xd7, 0x66, 0x07, 0x00, 0x64, 0xdf, 0xe2, 0x03, 0xb2, 0xa3, 0x9d, 0x1b,
+ 0x24, 0x75, 0x84, 0x10,
+};
+static const unsigned char kat51_retbits[] = {
+ 0xdd, 0xbb, 0x48, 0x8c, 0x6b, 0x6f, 0x0f, 0x9c, 0xb7, 0x05, 0xa3, 0xc5,
+ 0xab, 0x13, 0xc3, 0x17, 0x6f, 0x86, 0x7b, 0x12, 0x0c, 0x29, 0xdb, 0x37,
+ 0xf7, 0x9c, 0x00, 0x23, 0x8a, 0x77, 0xa0, 0x41, 0x45, 0x04, 0xd3, 0x28,
+ 0x93, 0xa0, 0x8c, 0x7e, 0x99, 0xc2, 0xb1, 0xa8, 0x8d, 0x50, 0x92, 0x2e,
+ 0x52, 0xb0, 0xdf, 0x56, 0x0b, 0x75, 0x3a, 0xdd, 0x48, 0x60, 0x4c, 0xaa,
+ 0xbb, 0xb9, 0x75, 0x2f,
+};
+static const struct drbg_kat_no_reseed kat51_t = {
+ 5, kat51_entropyin, kat51_nonce, kat51_persstr,
+ kat51_addin0, kat51_addin1, kat51_retbits
+};
+static const struct drbg_kat kat51 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat51_t
+};
+
+static const unsigned char kat52_entropyin[] = {
+ 0x56, 0x6f, 0xc3, 0x38, 0x98, 0x5a, 0x8f, 0xc8, 0x67, 0xda, 0xbe, 0x24,
+ 0xf7, 0xf9, 0x09, 0x7d,
+};
+static const unsigned char kat52_nonce[] = {
+ 0xdb, 0xf7, 0x1d, 0x79, 0x17, 0xe0, 0xb1, 0x51,
+};
+static const unsigned char kat52_persstr[] = {
+ 0x66, 0x56, 0x94, 0x18, 0x17, 0xa6, 0x15, 0xe2, 0x9f, 0x62, 0xbd, 0x4f,
+ 0x1d, 0x93, 0xcb, 0x11,
+};
+static const unsigned char kat52_addin0[] = {
+ 0xa2, 0x74, 0xbe, 0x52, 0x97, 0x46, 0xbd, 0x0b, 0x6a, 0x58, 0x73, 0xdc,
+ 0x3c, 0x1d, 0xae, 0xbc,
+};
+static const unsigned char kat52_addin1[] = {
+ 0x4e, 0x23, 0xfa, 0x29, 0xd2, 0x6b, 0x1f, 0xe9, 0x2b, 0xb4, 0x2b, 0x3e,
+ 0x9f, 0x2b, 0x4c, 0x08,
+};
+static const unsigned char kat52_retbits[] = {
+ 0xb5, 0xda, 0x60, 0xb8, 0x70, 0x22, 0x6a, 0x48, 0xb2, 0xb9, 0xb5, 0xd9,
+ 0xa9, 0x46, 0x49, 0x54, 0xa8, 0xdb, 0x0d, 0x3e, 0x5f, 0xb3, 0x06, 0x3c,
+ 0x80, 0xe6, 0x75, 0x19, 0x7d, 0xc5, 0x84, 0x07, 0xb4, 0xc0, 0x40, 0x9c,
+ 0xd0, 0x69, 0x75, 0xed, 0xa8, 0xaf, 0xe6, 0x66, 0x7a, 0xa0, 0xd7, 0x9e,
+ 0xcf, 0x55, 0x5e, 0x23, 0x8f, 0x83, 0x42, 0x4f, 0x13, 0x08, 0x19, 0x20,
+ 0x0c, 0x24, 0x4a, 0x77,
+};
+static const struct drbg_kat_no_reseed kat52_t = {
+ 6, kat52_entropyin, kat52_nonce, kat52_persstr,
+ kat52_addin0, kat52_addin1, kat52_retbits
+};
+static const struct drbg_kat kat52 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat52_t
+};
+
+static const unsigned char kat53_entropyin[] = {
+ 0x67, 0x43, 0xbc, 0x12, 0x2a, 0xaa, 0x13, 0x4f, 0x82, 0xac, 0x8c, 0x78,
+ 0xcc, 0x0b, 0x64, 0xe7,
+};
+static const unsigned char kat53_nonce[] = {
+ 0x2d, 0xc3, 0x2e, 0x4f, 0x3b, 0xba, 0x5a, 0x20,
+};
+static const unsigned char kat53_persstr[] = {
+ 0xb8, 0x07, 0x7f, 0x23, 0xa9, 0x08, 0xc4, 0x25, 0x92, 0xc1, 0x3b, 0x63,
+ 0x89, 0x09, 0x98, 0xd0,
+};
+static const unsigned char kat53_addin0[] = {
+ 0xd6, 0x83, 0x74, 0xf5, 0x8c, 0xe2, 0x5b, 0xd8, 0xe9, 0x5f, 0xe0, 0x6d,
+ 0xe8, 0xa9, 0x50, 0xa1,
+};
+static const unsigned char kat53_addin1[] = {
+ 0x07, 0xb7, 0xab, 0x9c, 0x32, 0xa9, 0x78, 0x30, 0xa0, 0x0e, 0xd9, 0x89,
+ 0x5e, 0x3b, 0xbe, 0x19,
+};
+static const unsigned char kat53_retbits[] = {
+ 0xfe, 0x82, 0x7f, 0x53, 0x07, 0x6d, 0xf3, 0x08, 0x47, 0xd0, 0xfb, 0x0f,
+ 0x55, 0xa2, 0xcd, 0x63, 0x81, 0xca, 0x0e, 0x79, 0xe6, 0x81, 0x62, 0x1f,
+ 0x49, 0xf3, 0x1e, 0x48, 0x11, 0xe9, 0xa6, 0x4c, 0x57, 0xc0, 0x99, 0x4f,
+ 0x18, 0x0c, 0x31, 0x1a, 0x40, 0x44, 0x40, 0xf2, 0x77, 0xfa, 0x62, 0xe0,
+ 0xf9, 0x9c, 0x6f, 0x5c, 0x7b, 0x88, 0xbe, 0xe2, 0x07, 0xfc, 0xa9, 0x92,
+ 0x6b, 0xfc, 0x9e, 0x46,
+};
+static const struct drbg_kat_no_reseed kat53_t = {
+ 7, kat53_entropyin, kat53_nonce, kat53_persstr,
+ kat53_addin0, kat53_addin1, kat53_retbits
+};
+static const struct drbg_kat kat53 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat53_t
+};
+
+static const unsigned char kat54_entropyin[] = {
+ 0xf2, 0xad, 0xdf, 0x01, 0x67, 0xa1, 0x6d, 0xa3, 0x8d, 0x2f, 0xd7, 0x92,
+ 0xa7, 0x18, 0x9c, 0x06,
+};
+static const unsigned char kat54_nonce[] = {
+ 0x2b, 0x50, 0xd8, 0xcc, 0x7f, 0x71, 0x40, 0x1c,
+};
+static const unsigned char kat54_persstr[] = {
+ 0xb9, 0x17, 0xa5, 0x4c, 0x13, 0xd5, 0x8c, 0xb6, 0xad, 0x47, 0xc8, 0xfa,
+ 0xf6, 0xf9, 0xa7, 0xf5,
+};
+static const unsigned char kat54_addin0[] = {
+ 0xcf, 0x2e, 0x78, 0x5a, 0x06, 0xbc, 0x5e, 0xb7, 0x1e, 0x3b, 0x52, 0x4f,
+ 0x11, 0x72, 0xc7, 0x55,
+};
+static const unsigned char kat54_addin1[] = {
+ 0xc9, 0xa7, 0x53, 0xa9, 0xce, 0xdd, 0xd7, 0x5d, 0x1a, 0x62, 0x6d, 0xa7,
+ 0x27, 0x95, 0xa3, 0xc6,
+};
+static const unsigned char kat54_retbits[] = {
+ 0xe2, 0xaa, 0xf1, 0x1c, 0x20, 0xde, 0x2b, 0xaf, 0x89, 0x23, 0x04, 0x1d,
+ 0x83, 0x8f, 0x4a, 0xcb, 0x38, 0xe2, 0x22, 0xd3, 0x06, 0xb9, 0x7c, 0x97,
+ 0xbf, 0xe5, 0x46, 0x61, 0x7b, 0x3d, 0x8d, 0x92, 0xe4, 0x0c, 0xaa, 0x2e,
+ 0xdc, 0xac, 0x7a, 0x2f, 0xb0, 0x64, 0x3e, 0xd5, 0x7d, 0x47, 0xa9, 0x0a,
+ 0x11, 0x64, 0x10, 0x44, 0xb6, 0xc6, 0xa7, 0xdf, 0x42, 0x4d, 0xbd, 0xa2,
+ 0xb4, 0x5f, 0x0d, 0xf9,
+};
+static const struct drbg_kat_no_reseed kat54_t = {
+ 8, kat54_entropyin, kat54_nonce, kat54_persstr,
+ kat54_addin0, kat54_addin1, kat54_retbits
+};
+static const struct drbg_kat kat54 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat54_t
+};
+
+static const unsigned char kat55_entropyin[] = {
+ 0xca, 0x23, 0x34, 0x58, 0xf6, 0x6b, 0x26, 0xf2, 0xc1, 0x35, 0x7a, 0xef,
+ 0xce, 0xb6, 0x79, 0xef,
+};
+static const unsigned char kat55_nonce[] = {
+ 0xfe, 0x13, 0x64, 0x04, 0xad, 0x7a, 0x49, 0xe7,
+};
+static const unsigned char kat55_persstr[] = {
+ 0x26, 0x83, 0xdc, 0x31, 0x3b, 0xc0, 0xbb, 0x93, 0xeb, 0xb4, 0x6b, 0xbb,
+ 0x55, 0x3f, 0x58, 0x75,
+};
+static const unsigned char kat55_addin0[] = {
+ 0xf7, 0x8a, 0xb1, 0xf4, 0x52, 0x6f, 0x0f, 0xa5, 0xcb, 0x75, 0x43, 0xd1,
+ 0x46, 0x43, 0xfe, 0xb5,
+};
+static const unsigned char kat55_addin1[] = {
+ 0x40, 0xb9, 0x26, 0x32, 0x4c, 0xc2, 0x94, 0x3a, 0xca, 0x83, 0x7f, 0x69,
+ 0x0d, 0x0b, 0xcd, 0xa4,
+};
+static const unsigned char kat55_retbits[] = {
+ 0x37, 0x24, 0xd0, 0xe5, 0x80, 0xe9, 0x0d, 0x4e, 0xf3, 0x2e, 0x5f, 0x8a,
+ 0x5b, 0xb5, 0x62, 0x25, 0xa9, 0x13, 0xf2, 0x10, 0xb7, 0x6d, 0x5a, 0x78,
+ 0xfd, 0x8e, 0xf2, 0x5d, 0x6e, 0xec, 0x9f, 0xf1, 0x47, 0x11, 0xd6, 0xdb,
+ 0x80, 0xe1, 0xe8, 0x11, 0x42, 0xa5, 0x60, 0x75, 0x34, 0xa7, 0x25, 0xd2,
+ 0x78, 0x5c, 0x8e, 0x3e, 0x4a, 0x48, 0xa5, 0x94, 0xb0, 0xd9, 0x1b, 0xc9,
+ 0x32, 0x82, 0x7b, 0xd7,
+};
+static const struct drbg_kat_no_reseed kat55_t = {
+ 9, kat55_entropyin, kat55_nonce, kat55_persstr,
+ kat55_addin0, kat55_addin1, kat55_retbits
+};
+static const struct drbg_kat kat55 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat55_t
+};
+
+static const unsigned char kat56_entropyin[] = {
+ 0x2b, 0x52, 0x1d, 0xc4, 0x03, 0x12, 0x9f, 0xd9, 0xed, 0x0b, 0xe9, 0xf5,
+ 0xfd, 0xe0, 0x66, 0x17,
+};
+static const unsigned char kat56_nonce[] = {
+ 0xf0, 0xdf, 0xa0, 0x1e, 0x09, 0x9b, 0x95, 0xa1,
+};
+static const unsigned char kat56_persstr[] = {
+ 0xfe, 0x85, 0x8d, 0x59, 0xd7, 0x34, 0xf6, 0x0f, 0x71, 0xa3, 0x87, 0x55,
+ 0x3c, 0xca, 0x46, 0xff,
+};
+static const unsigned char kat56_addin0[] = {
+ 0x6f, 0xba, 0x8d, 0x06, 0xff, 0x43, 0x30, 0x07, 0xbd, 0x7d, 0x15, 0x56,
+ 0x9a, 0xf3, 0xd0, 0x69,
+};
+static const unsigned char kat56_addin1[] = {
+ 0x80, 0xb0, 0xc1, 0x1f, 0x18, 0xb5, 0x92, 0x3a, 0x89, 0xf0, 0xfe, 0x23,
+ 0x77, 0x6d, 0x39, 0x05,
+};
+static const unsigned char kat56_retbits[] = {
+ 0x41, 0x73, 0x88, 0xde, 0xe9, 0x08, 0x4f, 0x58, 0x8d, 0x0a, 0xdb, 0x5e,
+ 0x5d, 0x1b, 0x54, 0x6b, 0x12, 0x55, 0xcd, 0xf5, 0x9d, 0x69, 0x95, 0x7a,
+ 0xe6, 0x87, 0xc7, 0x82, 0x2b, 0x93, 0x5c, 0xe0, 0x29, 0x30, 0x6c, 0x02,
+ 0x50, 0xd4, 0x69, 0x83, 0x9c, 0x7d, 0xf9, 0xd3, 0xd0, 0x8e, 0xc8, 0xc5,
+ 0x0a, 0x66, 0x7a, 0xf1, 0x0d, 0x8d, 0x5b, 0x00, 0x73, 0x02, 0xa6, 0xe8,
+ 0x7b, 0x4e, 0x7f, 0x2c,
+};
+static const struct drbg_kat_no_reseed kat56_t = {
+ 10, kat56_entropyin, kat56_nonce, kat56_persstr,
+ kat56_addin0, kat56_addin1, kat56_retbits
+};
+static const struct drbg_kat kat56 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat56_t
+};
+
+static const unsigned char kat57_entropyin[] = {
+ 0xd0, 0x50, 0x2b, 0x78, 0xf7, 0xaa, 0x6f, 0xa1, 0xd8, 0x88, 0x42, 0x1d,
+ 0x70, 0x2c, 0xad, 0xd1,
+};
+static const unsigned char kat57_nonce[] = {
+ 0x4b, 0x37, 0xb8, 0x96, 0x59, 0x69, 0xea, 0x8d,
+};
+static const unsigned char kat57_persstr[] = {
+ 0x56, 0xbd, 0x43, 0x1f, 0x04, 0x88, 0xfe, 0x6d, 0x7b, 0xa3, 0x83, 0x6e,
+ 0x5c, 0x8c, 0x7a, 0xa9,
+};
+static const unsigned char kat57_addin0[] = {
+ 0x26, 0x92, 0x5d, 0xbc, 0xbe, 0xd7, 0x33, 0xbe, 0x2a, 0x5e, 0x76, 0x49,
+ 0xc8, 0x76, 0xa0, 0xf8,
+};
+static const unsigned char kat57_addin1[] = {
+ 0x9c, 0x70, 0x35, 0x2d, 0x4f, 0x9c, 0x88, 0x0e, 0x76, 0xd4, 0x68, 0x08,
+ 0x38, 0xdd, 0x0d, 0xea,
+};
+static const unsigned char kat57_retbits[] = {
+ 0x65, 0x00, 0x24, 0x2c, 0x35, 0x88, 0xb4, 0x52, 0x30, 0x7b, 0x2a, 0x06,
+ 0x34, 0x90, 0x0e, 0x75, 0x6a, 0x3d, 0x26, 0x19, 0xfc, 0x2a, 0xdf, 0x10,
+ 0x77, 0x69, 0x22, 0xb0, 0x06, 0x61, 0x7e, 0xe8, 0x81, 0x82, 0x83, 0x66,
+ 0xac, 0x52, 0x7f, 0xad, 0xa0, 0x01, 0x86, 0xbc, 0x8b, 0xfd, 0x6b, 0xee,
+ 0x66, 0xd6, 0x38, 0x03, 0x5a, 0xaf, 0xff, 0xbc, 0x83, 0x32, 0xa5, 0x4c,
+ 0xa1, 0x7d, 0xf1, 0x6f,
+};
+static const struct drbg_kat_no_reseed kat57_t = {
+ 11, kat57_entropyin, kat57_nonce, kat57_persstr,
+ kat57_addin0, kat57_addin1, kat57_retbits
+};
+static const struct drbg_kat kat57 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat57_t
+};
+
+static const unsigned char kat58_entropyin[] = {
+ 0xa3, 0xb9, 0x5f, 0x32, 0x01, 0xfa, 0x01, 0x01, 0x07, 0x57, 0x30, 0x74,
+ 0xb1, 0x19, 0x9b, 0xc0,
+};
+static const unsigned char kat58_nonce[] = {
+ 0x60, 0x30, 0xe5, 0xb6, 0x13, 0x47, 0xb0, 0xe2,
+};
+static const unsigned char kat58_persstr[] = {
+ 0x9e, 0x77, 0x85, 0x46, 0xd4, 0x5f, 0x17, 0x93, 0xa1, 0x1d, 0x80, 0xa0,
+ 0x2e, 0x4c, 0xa3, 0xc3,
+};
+static const unsigned char kat58_addin0[] = {
+ 0xe5, 0x07, 0x33, 0x61, 0x98, 0x25, 0x31, 0x37, 0xa5, 0x55, 0xe8, 0xc1,
+ 0x18, 0xa1, 0x2d, 0x2f,
+};
+static const unsigned char kat58_addin1[] = {
+ 0xe5, 0xce, 0xea, 0xcb, 0xb5, 0x22, 0xf5, 0xde, 0x81, 0x78, 0x9c, 0x32,
+ 0xcb, 0xcd, 0xef, 0x30,
+};
+static const unsigned char kat58_retbits[] = {
+ 0x4a, 0xd1, 0x8e, 0xa0, 0x83, 0x7f, 0x06, 0x3e, 0x9f, 0xbf, 0x6c, 0x72,
+ 0xd1, 0xaf, 0x6f, 0x77, 0x96, 0x41, 0xf4, 0xe1, 0x1c, 0x40, 0x0d, 0x95,
+ 0xcb, 0x2b, 0xa4, 0x22, 0x99, 0xa9, 0x66, 0x48, 0xe0, 0x59, 0xe1, 0xa6,
+ 0x3f, 0x7c, 0x03, 0x79, 0x25, 0x44, 0x89, 0xc7, 0xcb, 0xff, 0xfb, 0x22,
+ 0x11, 0x84, 0x57, 0x18, 0xc5, 0x26, 0x00, 0xc9, 0xe8, 0x58, 0x49, 0xd6,
+ 0xe0, 0x95, 0x1f, 0x7b,
+};
+static const struct drbg_kat_no_reseed kat58_t = {
+ 12, kat58_entropyin, kat58_nonce, kat58_persstr,
+ kat58_addin0, kat58_addin1, kat58_retbits
+};
+static const struct drbg_kat kat58 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat58_t
+};
+
+static const unsigned char kat59_entropyin[] = {
+ 0x88, 0x18, 0xbe, 0x7e, 0x8e, 0x81, 0x5b, 0xca, 0x0c, 0xb5, 0xa0, 0x14,
+ 0x4d, 0x44, 0xb6, 0x72,
+};
+static const unsigned char kat59_nonce[] = {
+ 0x12, 0x2b, 0x14, 0x8c, 0xa1, 0xaa, 0xba, 0x60,
+};
+static const unsigned char kat59_persstr[] = {
+ 0x90, 0x6d, 0xc3, 0x0b, 0x39, 0x54, 0x27, 0x38, 0x56, 0x73, 0x26, 0x13,
+ 0x66, 0xf5, 0xe9, 0xa8,
+};
+static const unsigned char kat59_addin0[] = {
+ 0x56, 0xee, 0x67, 0xff, 0x14, 0x66, 0xce, 0xed, 0xd7, 0x28, 0x1d, 0x73,
+ 0xf3, 0x9c, 0x6c, 0x85,
+};
+static const unsigned char kat59_addin1[] = {
+ 0x82, 0xe4, 0xa6, 0xed, 0xb0, 0x78, 0x00, 0x79, 0xfa, 0xee, 0x25, 0x8e,
+ 0xd1, 0x13, 0x7e, 0xcf,
+};
+static const unsigned char kat59_retbits[] = {
+ 0x88, 0x55, 0xad, 0x03, 0xe3, 0x87, 0x27, 0xd0, 0x49, 0xe8, 0x55, 0x8e,
+ 0xcc, 0x66, 0x3b, 0x8c, 0x89, 0xcb, 0x5b, 0xd1, 0x38, 0xac, 0x34, 0x9c,
+ 0x6e, 0x5f, 0x78, 0x41, 0x70, 0xc5, 0x07, 0x69, 0xc8, 0xc9, 0x7b, 0x09,
+ 0x4d, 0xfa, 0x07, 0x52, 0xd0, 0x65, 0x53, 0x1d, 0xa4, 0x00, 0x85, 0x81,
+ 0x7c, 0xcb, 0x08, 0xf2, 0xb9, 0x4c, 0xbb, 0xba, 0xe7, 0x59, 0x8c, 0x96,
+ 0x3e, 0x3a, 0xd6, 0xd1,
+};
+static const struct drbg_kat_no_reseed kat59_t = {
+ 13, kat59_entropyin, kat59_nonce, kat59_persstr,
+ kat59_addin0, kat59_addin1, kat59_retbits
+};
+static const struct drbg_kat kat59 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat59_t
+};
+
+static const unsigned char kat60_entropyin[] = {
+ 0x00, 0x90, 0xdc, 0xb9, 0x1f, 0x02, 0x70, 0xf6, 0x58, 0x20, 0x7d, 0x49,
+ 0xa7, 0x47, 0x38, 0xe2,
+};
+static const unsigned char kat60_nonce[] = {
+ 0x9d, 0x18, 0xae, 0xa2, 0x68, 0x4e, 0xe2, 0xb7,
+};
+static const unsigned char kat60_persstr[] = {
+ 0x64, 0xa8, 0x18, 0x57, 0xce, 0x29, 0xf0, 0xd2, 0xa8, 0x51, 0x03, 0x00,
+ 0xb0, 0xa3, 0xfa, 0xc0,
+};
+static const unsigned char kat60_addin0[] = {
+ 0xcd, 0x7f, 0x89, 0xf8, 0xd5, 0x46, 0x8e, 0xae, 0x8b, 0xca, 0x31, 0x4f,
+ 0xd9, 0xf2, 0x5b, 0x23,
+};
+static const unsigned char kat60_addin1[] = {
+ 0x94, 0x9b, 0x94, 0x41, 0x7f, 0xb4, 0x2b, 0xbc, 0x7c, 0xdb, 0x3f, 0x53,
+ 0xa0, 0x55, 0x80, 0x19,
+};
+static const unsigned char kat60_retbits[] = {
+ 0x63, 0xd3, 0xe9, 0x19, 0x88, 0x1f, 0x87, 0xd6, 0x9c, 0xba, 0xdc, 0xb6,
+ 0x78, 0x9e, 0x0b, 0x8f, 0x2e, 0x49, 0xf4, 0xc9, 0xd0, 0xe3, 0xba, 0x1e,
+ 0x4a, 0x59, 0x16, 0x2a, 0xf7, 0x18, 0xbc, 0x40, 0xdd, 0x67, 0x3e, 0xae,
+ 0x8f, 0x48, 0xfd, 0x27, 0x82, 0xe0, 0x6c, 0xde, 0xc5, 0x63, 0x2a, 0x4b,
+ 0x2e, 0x60, 0x65, 0x5c, 0xba, 0x75, 0xaf, 0xaf, 0x4c, 0x12, 0xa6, 0x74,
+ 0xee, 0xe4, 0xd3, 0xfc,
+};
+static const struct drbg_kat_no_reseed kat60_t = {
+ 14, kat60_entropyin, kat60_nonce, kat60_persstr,
+ kat60_addin0, kat60_addin1, kat60_retbits
+};
+static const struct drbg_kat kat60 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat60_t
+};
+
+static const unsigned char kat61_entropyin[] = {
+ 0x2d, 0x2a, 0xb5, 0x64, 0x20, 0x29, 0x18, 0xc4, 0xef, 0x5b, 0x10, 0x2d,
+ 0xda, 0x38, 0x5a, 0x18,
+};
+static const unsigned char kat61_nonce[] = {
+ 0x25, 0x91, 0x95, 0x26, 0x9e, 0xc1, 0x1a, 0xf6,
+};
+static const unsigned char kat61_persstr[] = {0};
+static const unsigned char kat61_addin0[] = {0};
+static const unsigned char kat61_addin1[] = {0};
+static const unsigned char kat61_retbits[] = {
+ 0x2c, 0x5c, 0xd7, 0x9e, 0xd8, 0x76, 0x22, 0xa9, 0x1b, 0x86, 0x54, 0xc8,
+ 0x90, 0x3d, 0x85, 0x22, 0x42, 0xcd, 0x49, 0xcb, 0x5d, 0xf2, 0xd4, 0xb4,
+ 0x15, 0x05, 0x84, 0x30, 0x1c, 0x59, 0xf0, 0x1f, 0xd9, 0x5a, 0x70, 0x2a,
+ 0xc1, 0x57, 0xc8, 0x4c, 0xc1, 0x5f, 0x42, 0xc8, 0x21, 0x13, 0x35, 0x67,
+ 0x2d, 0x8c, 0xe1, 0x29, 0x1e, 0xf9, 0xb1, 0xde, 0xf7, 0x81, 0x49, 0xa0,
+ 0x4f, 0xa2, 0x69, 0x7c,
+};
+static const struct drbg_kat_no_reseed kat61_t = {
+ 0, kat61_entropyin, kat61_nonce, kat61_persstr,
+ kat61_addin0, kat61_addin1, kat61_retbits
+};
+static const struct drbg_kat kat61 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat61_t
+};
+
+static const unsigned char kat62_entropyin[] = {
+ 0xa0, 0x16, 0x46, 0x3d, 0xbb, 0x49, 0x99, 0x90, 0xcb, 0xcd, 0xa4, 0x50,
+ 0x46, 0xd8, 0xf3, 0x37,
+};
+static const unsigned char kat62_nonce[] = {
+ 0x24, 0x9d, 0x02, 0xde, 0x2d, 0xcf, 0x3e, 0x57,
+};
+static const unsigned char kat62_persstr[] = {0};
+static const unsigned char kat62_addin0[] = {0};
+static const unsigned char kat62_addin1[] = {0};
+static const unsigned char kat62_retbits[] = {
+ 0x35, 0xb8, 0x1f, 0xb9, 0x42, 0x41, 0xf4, 0xc9, 0x31, 0x9a, 0x7f, 0x16,
+ 0xb4, 0x42, 0x49, 0x52, 0x52, 0xdb, 0x4c, 0x98, 0x48, 0x60, 0xd0, 0x35,
+ 0xf6, 0xc4, 0x54, 0x03, 0xf9, 0x74, 0xf5, 0x34, 0xfa, 0x93, 0xb2, 0x1b,
+ 0x6b, 0x89, 0x44, 0x1b, 0xe0, 0x7c, 0x5c, 0x29, 0x31, 0x7f, 0x86, 0x8d,
+ 0xc9, 0xab, 0x5c, 0x18, 0x37, 0x74, 0x37, 0xfa, 0xdb, 0x4d, 0x85, 0x7e,
+ 0xe0, 0x92, 0xf9, 0x23,
+};
+static const struct drbg_kat_no_reseed kat62_t = {
+ 1, kat62_entropyin, kat62_nonce, kat62_persstr,
+ kat62_addin0, kat62_addin1, kat62_retbits
+};
+static const struct drbg_kat kat62 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat62_t
+};
+
+static const unsigned char kat63_entropyin[] = {
+ 0x1e, 0x38, 0x20, 0xc4, 0x6e, 0x50, 0xb7, 0xcb, 0xc5, 0x8b, 0x05, 0xaa,
+ 0x72, 0x24, 0x27, 0xa8,
+};
+static const unsigned char kat63_nonce[] = {
+ 0xfe, 0x0f, 0x40, 0x01, 0x4e, 0xb3, 0x27, 0x9f,
+};
+static const unsigned char kat63_persstr[] = {0};
+static const unsigned char kat63_addin0[] = {0};
+static const unsigned char kat63_addin1[] = {0};
+static const unsigned char kat63_retbits[] = {
+ 0x18, 0x53, 0x0b, 0x9d, 0xe8, 0x89, 0xd8, 0xad, 0x3f, 0x41, 0xd5, 0x39,
+ 0x79, 0x6c, 0x2a, 0x95, 0xd6, 0x82, 0xfb, 0x02, 0x6d, 0xf7, 0xca, 0x09,
+ 0x4a, 0xf4, 0xab, 0x23, 0x95, 0x29, 0x2e, 0x6f, 0xcd, 0xb1, 0x75, 0xba,
+ 0x25, 0x7d, 0x61, 0x27, 0x9d, 0xa4, 0xd0, 0xfc, 0x78, 0xfd, 0xf8, 0xa4,
+ 0xeb, 0x46, 0xa0, 0xe2, 0xd7, 0x54, 0xf5, 0xf8, 0xf0, 0x9e, 0xcb, 0x15,
+ 0x7c, 0x8a, 0x58, 0xa1,
+};
+static const struct drbg_kat_no_reseed kat63_t = {
+ 2, kat63_entropyin, kat63_nonce, kat63_persstr,
+ kat63_addin0, kat63_addin1, kat63_retbits
+};
+static const struct drbg_kat kat63 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat63_t
+};
+
+static const unsigned char kat64_entropyin[] = {
+ 0x3b, 0x02, 0xc5, 0xa4, 0x74, 0x67, 0x96, 0x48, 0xe2, 0xfe, 0x09, 0x0a,
+ 0x13, 0xbe, 0x04, 0x1c,
+};
+static const unsigned char kat64_nonce[] = {
+ 0x71, 0xed, 0x5a, 0xa0, 0x78, 0xb8, 0x3a, 0x7b,
+};
+static const unsigned char kat64_persstr[] = {0};
+static const unsigned char kat64_addin0[] = {0};
+static const unsigned char kat64_addin1[] = {0};
+static const unsigned char kat64_retbits[] = {
+ 0xe8, 0xe2, 0xe5, 0xd8, 0xbd, 0x99, 0x29, 0xe4, 0xe1, 0x67, 0x5c, 0x84,
+ 0x61, 0x45, 0x7c, 0xab, 0x06, 0x33, 0xd8, 0x3f, 0x9b, 0xd2, 0x43, 0xbc,
+ 0x58, 0x29, 0x37, 0xc2, 0xb9, 0x61, 0xb7, 0x1c, 0x11, 0x85, 0x6f, 0x83,
+ 0x6c, 0x37, 0x32, 0x9d, 0x3f, 0xa8, 0x63, 0x76, 0xee, 0xc9, 0x71, 0x39,
+ 0x10, 0x4d, 0xe5, 0x32, 0x60, 0xe1, 0x22, 0xcb, 0x2b, 0x6d, 0x82, 0x4e,
+ 0x21, 0xe7, 0x5c, 0xe7,
+};
+static const struct drbg_kat_no_reseed kat64_t = {
+ 3, kat64_entropyin, kat64_nonce, kat64_persstr,
+ kat64_addin0, kat64_addin1, kat64_retbits
+};
+static const struct drbg_kat kat64 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat64_t
+};
+
+static const unsigned char kat65_entropyin[] = {
+ 0x05, 0x0c, 0x48, 0xab, 0x8a, 0x05, 0xff, 0x69, 0x0b, 0x62, 0xe3, 0x7d,
+ 0x9b, 0x21, 0xf2, 0xfa,
+};
+static const unsigned char kat65_nonce[] = {
+ 0xf7, 0x96, 0x48, 0x75, 0xbe, 0x28, 0x83, 0x53,
+};
+static const unsigned char kat65_persstr[] = {0};
+static const unsigned char kat65_addin0[] = {0};
+static const unsigned char kat65_addin1[] = {0};
+static const unsigned char kat65_retbits[] = {
+ 0x24, 0xcb, 0x0e, 0xdc, 0xb8, 0x9e, 0xec, 0x61, 0x76, 0x13, 0xa2, 0x7f,
+ 0xe3, 0xe4, 0x47, 0x5a, 0xff, 0xab, 0x49, 0x8d, 0x57, 0xbc, 0x3c, 0x4e,
+ 0xf8, 0x44, 0xfe, 0x19, 0xb3, 0x84, 0x13, 0x47, 0x7c, 0x1d, 0xb0, 0x40,
+ 0xf1, 0x67, 0x57, 0xf1, 0x85, 0x1b, 0x79, 0x9c, 0x1f, 0x26, 0x69, 0xaa,
+ 0x9f, 0x9c, 0x50, 0x53, 0x2e, 0xaf, 0xbe, 0x1e, 0x29, 0x48, 0xe3, 0x38,
+ 0xd1, 0xca, 0x4b, 0xd7,
+};
+static const struct drbg_kat_no_reseed kat65_t = {
+ 4, kat65_entropyin, kat65_nonce, kat65_persstr,
+ kat65_addin0, kat65_addin1, kat65_retbits
+};
+static const struct drbg_kat kat65 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat65_t
+};
+
+static const unsigned char kat66_entropyin[] = {
+ 0xec, 0xd9, 0x9c, 0x0b, 0x49, 0x1c, 0xf6, 0xa3, 0x23, 0xbc, 0x33, 0x36,
+ 0x46, 0xe5, 0xc5, 0x6a,
+};
+static const unsigned char kat66_nonce[] = {
+ 0xb1, 0x0a, 0x17, 0x84, 0x99, 0x5c, 0xb3, 0x4c,
+};
+static const unsigned char kat66_persstr[] = {0};
+static const unsigned char kat66_addin0[] = {0};
+static const unsigned char kat66_addin1[] = {0};
+static const unsigned char kat66_retbits[] = {
+ 0x65, 0x35, 0xc4, 0x8d, 0x99, 0x9a, 0x30, 0x6a, 0xcb, 0x83, 0xf7, 0xb7,
+ 0x20, 0xb3, 0xc3, 0x97, 0x72, 0xa4, 0x96, 0xe7, 0x5a, 0x89, 0x0f, 0x6e,
+ 0x14, 0xd7, 0x0a, 0x82, 0x41, 0x42, 0xa1, 0x2d, 0x01, 0xde, 0xe5, 0x52,
+ 0x71, 0xb8, 0x2c, 0x7b, 0x02, 0x7b, 0x94, 0x68, 0xc3, 0x09, 0xfa, 0x2d,
+ 0x08, 0xe9, 0x1e, 0x5e, 0x37, 0x9e, 0xb9, 0x0c, 0xf8, 0x91, 0x5c, 0xf4,
+ 0xcc, 0x24, 0x1b, 0x50,
+};
+static const struct drbg_kat_no_reseed kat66_t = {
+ 5, kat66_entropyin, kat66_nonce, kat66_persstr,
+ kat66_addin0, kat66_addin1, kat66_retbits
+};
+static const struct drbg_kat kat66 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat66_t
+};
+
+static const unsigned char kat67_entropyin[] = {
+ 0x34, 0xae, 0xe3, 0xef, 0x35, 0xb2, 0xa1, 0xe3, 0x1c, 0x42, 0x97, 0x25,
+ 0xfe, 0xaa, 0x6b, 0xfd,
+};
+static const unsigned char kat67_nonce[] = {
+ 0xe4, 0x36, 0x9b, 0x6a, 0xda, 0x90, 0x91, 0xed,
+};
+static const unsigned char kat67_persstr[] = {0};
+static const unsigned char kat67_addin0[] = {0};
+static const unsigned char kat67_addin1[] = {0};
+static const unsigned char kat67_retbits[] = {
+ 0xaf, 0x9d, 0xb4, 0xdf, 0x46, 0xac, 0x80, 0xfe, 0xca, 0xd6, 0xc3, 0xd1,
+ 0xd9, 0x75, 0xd2, 0xd0, 0xa6, 0x65, 0xf3, 0x1b, 0x4e, 0x3b, 0x07, 0xd9,
+ 0x62, 0x63, 0x22, 0x96, 0xb7, 0x60, 0x39, 0xdd, 0xca, 0xb8, 0xed, 0xde,
+ 0x17, 0xba, 0xd6, 0x23, 0x01, 0x31, 0x16, 0x2e, 0x59, 0xd0, 0x7d, 0xbb,
+ 0xd0, 0xf0, 0xb5, 0x2e, 0x5c, 0xa9, 0x3c, 0xf3, 0x7f, 0x12, 0xc0, 0x30,
+ 0x42, 0xbf, 0x0c, 0x82,
+};
+static const struct drbg_kat_no_reseed kat67_t = {
+ 6, kat67_entropyin, kat67_nonce, kat67_persstr,
+ kat67_addin0, kat67_addin1, kat67_retbits
+};
+static const struct drbg_kat kat67 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat67_t
+};
+
+static const unsigned char kat68_entropyin[] = {
+ 0x91, 0x15, 0x64, 0x69, 0x54, 0x0c, 0x78, 0x5d, 0xf5, 0x6a, 0x10, 0xe1,
+ 0x6b, 0x66, 0x10, 0x7c,
+};
+static const unsigned char kat68_nonce[] = {
+ 0x7e, 0x2b, 0x2a, 0x7f, 0x58, 0xf3, 0xef, 0x20,
+};
+static const unsigned char kat68_persstr[] = {0};
+static const unsigned char kat68_addin0[] = {0};
+static const unsigned char kat68_addin1[] = {0};
+static const unsigned char kat68_retbits[] = {
+ 0x9a, 0x76, 0x3a, 0x4c, 0x05, 0x27, 0x25, 0xe7, 0xae, 0x9d, 0x21, 0x22,
+ 0xa4, 0x5c, 0xd1, 0x8e, 0xa2, 0x8c, 0x58, 0x17, 0x2b, 0x87, 0xc5, 0x7e,
+ 0xdb, 0x9d, 0xaa, 0x32, 0xf8, 0xa2, 0x6e, 0xb9, 0x8d, 0x6b, 0x88, 0x12,
+ 0x09, 0x5a, 0x54, 0xcf, 0x62, 0x82, 0xc5, 0xe0, 0xfc, 0x18, 0xcd, 0x30,
+ 0x12, 0x44, 0x15, 0xd2, 0x67, 0xc9, 0xfc, 0x2c, 0xda, 0xe9, 0xbe, 0xed,
+ 0xbb, 0x86, 0x58, 0x4e,
+};
+static const struct drbg_kat_no_reseed kat68_t = {
+ 7, kat68_entropyin, kat68_nonce, kat68_persstr,
+ kat68_addin0, kat68_addin1, kat68_retbits
+};
+static const struct drbg_kat kat68 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat68_t
+};
+
+static const unsigned char kat69_entropyin[] = {
+ 0xcd, 0x5d, 0xbc, 0x35, 0xd1, 0xb4, 0x43, 0x5c, 0x4c, 0x94, 0x5b, 0xaf,
+ 0xe4, 0xb8, 0xfc, 0x7a,
+};
+static const unsigned char kat69_nonce[] = {
+ 0xaf, 0x4a, 0xcd, 0xfc, 0x81, 0x19, 0x32, 0x2c,
+};
+static const unsigned char kat69_persstr[] = {0};
+static const unsigned char kat69_addin0[] = {0};
+static const unsigned char kat69_addin1[] = {0};
+static const unsigned char kat69_retbits[] = {
+ 0xfe, 0x67, 0x82, 0x99, 0xf1, 0xad, 0xe1, 0x96, 0x21, 0x88, 0x02, 0x35,
+ 0xfa, 0x6f, 0xe2, 0xb5, 0x01, 0x84, 0xf8, 0x12, 0x43, 0x83, 0x3e, 0xbe,
+ 0x68, 0xc6, 0x16, 0xa9, 0x03, 0x4e, 0x23, 0xe0, 0xcc, 0x87, 0x3e, 0x8a,
+ 0xc4, 0xd0, 0xe3, 0x65, 0xb5, 0x24, 0xa3, 0x78, 0x32, 0xb5, 0x2d, 0x97,
+ 0xa8, 0x38, 0x62, 0x93, 0x24, 0x91, 0xd2, 0x64, 0x3a, 0x73, 0xe4, 0x6a,
+ 0x80, 0xb5, 0x14, 0x9c,
+};
+static const struct drbg_kat_no_reseed kat69_t = {
+ 8, kat69_entropyin, kat69_nonce, kat69_persstr,
+ kat69_addin0, kat69_addin1, kat69_retbits
+};
+static const struct drbg_kat kat69 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat69_t
+};
+
+static const unsigned char kat70_entropyin[] = {
+ 0xd5, 0x2d, 0x11, 0x59, 0x78, 0x7b, 0xaa, 0xb2, 0x13, 0xe8, 0x79, 0x21,
+ 0xfd, 0x95, 0x91, 0x10,
+};
+static const unsigned char kat70_nonce[] = {
+ 0x7a, 0xb3, 0x75, 0x38, 0xee, 0x02, 0x45, 0xc8,
+};
+static const unsigned char kat70_persstr[] = {0};
+static const unsigned char kat70_addin0[] = {0};
+static const unsigned char kat70_addin1[] = {0};
+static const unsigned char kat70_retbits[] = {
+ 0xf4, 0xd9, 0xea, 0xd3, 0x59, 0x46, 0x06, 0xac, 0x51, 0x94, 0x22, 0x15,
+ 0xaa, 0x0b, 0xd2, 0x9b, 0xaa, 0x7c, 0x28, 0x1e, 0x62, 0xd2, 0xbc, 0xc1,
+ 0xa7, 0x7f, 0x57, 0xe3, 0x59, 0x66, 0x83, 0x19, 0x9d, 0x70, 0xc0, 0x09,
+ 0xc0, 0x84, 0xeb, 0x36, 0x54, 0x22, 0x4e, 0xd7, 0xb0, 0x7a, 0x09, 0xb4,
+ 0x94, 0x48, 0x0a, 0x11, 0x3b, 0x33, 0xe0, 0x36, 0x6c, 0xb2, 0x25, 0x3e,
+ 0xdb, 0xb0, 0xcb, 0x5e,
+};
+static const struct drbg_kat_no_reseed kat70_t = {
+ 9, kat70_entropyin, kat70_nonce, kat70_persstr,
+ kat70_addin0, kat70_addin1, kat70_retbits
+};
+static const struct drbg_kat kat70 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat70_t
+};
+
+static const unsigned char kat71_entropyin[] = {
+ 0x51, 0x10, 0xdb, 0x9d, 0x5f, 0x4f, 0xbd, 0xc0, 0x37, 0x55, 0x0e, 0x83,
+ 0xc2, 0xbd, 0x96, 0xfe,
+};
+static const unsigned char kat71_nonce[] = {
+ 0xde, 0xe6, 0x41, 0xf9, 0x17, 0x7c, 0x9d, 0xa4,
+};
+static const unsigned char kat71_persstr[] = {0};
+static const unsigned char kat71_addin0[] = {0};
+static const unsigned char kat71_addin1[] = {0};
+static const unsigned char kat71_retbits[] = {
+ 0x05, 0xf8, 0xca, 0xd2, 0xd0, 0x31, 0xce, 0x6b, 0x52, 0x7e, 0xe0, 0x43,
+ 0xb5, 0x05, 0x6d, 0xb2, 0x0e, 0xe5, 0xca, 0x66, 0x0a, 0x95, 0xc2, 0x9b,
+ 0x8f, 0x8b, 0x2e, 0x43, 0xef, 0xa5, 0xc7, 0xaa, 0x62, 0x35, 0x12, 0x33,
+ 0xf4, 0xf1, 0x60, 0x36, 0x8c, 0x3d, 0xad, 0x4a, 0x74, 0xf4, 0x71, 0xbb,
+ 0x02, 0x15, 0x3f, 0x86, 0xc8, 0x7a, 0x14, 0x0a, 0x36, 0xe0, 0xf1, 0x22,
+ 0xc6, 0x8b, 0xa7, 0x7d,
+};
+static const struct drbg_kat_no_reseed kat71_t = {
+ 10, kat71_entropyin, kat71_nonce, kat71_persstr,
+ kat71_addin0, kat71_addin1, kat71_retbits
+};
+static const struct drbg_kat kat71 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat71_t
+};
+
+static const unsigned char kat72_entropyin[] = {
+ 0x97, 0x90, 0x65, 0xbc, 0x1a, 0x1c, 0x8c, 0x82, 0x90, 0xdd, 0xe2, 0x19,
+ 0xf0, 0x12, 0x1a, 0xbe,
+};
+static const unsigned char kat72_nonce[] = {
+ 0x59, 0x3a, 0x0e, 0x1f, 0xa9, 0x85, 0x64, 0xa3,
+};
+static const unsigned char kat72_persstr[] = {0};
+static const unsigned char kat72_addin0[] = {0};
+static const unsigned char kat72_addin1[] = {0};
+static const unsigned char kat72_retbits[] = {
+ 0x19, 0x9e, 0x68, 0xe5, 0xb6, 0x37, 0xa2, 0x7b, 0xe7, 0x94, 0x53, 0xd9,
+ 0x95, 0x3a, 0x0e, 0x52, 0x95, 0x36, 0x37, 0x4e, 0x7f, 0x63, 0xe8, 0x59,
+ 0x5a, 0xfe, 0x4b, 0x5d, 0x4e, 0x3b, 0xb3, 0x79, 0xc6, 0xd4, 0x62, 0xf6,
+ 0x43, 0x12, 0x44, 0xaf, 0x43, 0x36, 0xb1, 0x7f, 0x9d, 0xfd, 0xfe, 0xaf,
+ 0xa6, 0xf4, 0xff, 0xf5, 0x00, 0x4a, 0xa6, 0x5f, 0x7d, 0x6b, 0xb3, 0xb8,
+ 0x8a, 0xf8, 0xe9, 0xe2,
+};
+static const struct drbg_kat_no_reseed kat72_t = {
+ 11, kat72_entropyin, kat72_nonce, kat72_persstr,
+ kat72_addin0, kat72_addin1, kat72_retbits
+};
+static const struct drbg_kat kat72 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat72_t
+};
+
+static const unsigned char kat73_entropyin[] = {
+ 0x89, 0xa7, 0x87, 0xbe, 0x64, 0xba, 0x33, 0x58, 0x95, 0x2f, 0x9d, 0x60,
+ 0x2b, 0xd8, 0xfa, 0xb4,
+};
+static const unsigned char kat73_nonce[] = {
+ 0xab, 0x96, 0x1b, 0x68, 0xc6, 0x58, 0x92, 0xd3,
+};
+static const unsigned char kat73_persstr[] = {0};
+static const unsigned char kat73_addin0[] = {0};
+static const unsigned char kat73_addin1[] = {0};
+static const unsigned char kat73_retbits[] = {
+ 0x6e, 0x5d, 0xd2, 0xa6, 0x51, 0xf2, 0x61, 0x4f, 0xca, 0x88, 0x1f, 0x5e,
+ 0xdb, 0x05, 0xd5, 0xee, 0xc6, 0x12, 0x75, 0xdd, 0x05, 0xb3, 0x1f, 0xd8,
+ 0xa3, 0x06, 0x2f, 0xac, 0x51, 0x59, 0x60, 0xde, 0xf7, 0xb0, 0xd4, 0xdb,
+ 0x30, 0x4f, 0x64, 0x2b, 0x91, 0xe6, 0x40, 0x1f, 0x2a, 0x00, 0xb0, 0xfb,
+ 0x69, 0x3e, 0xdd, 0x73, 0x13, 0x10, 0x2f, 0x58, 0xd7, 0x33, 0x02, 0xea,
+ 0x8b, 0x5a, 0x9d, 0x7a,
+};
+static const struct drbg_kat_no_reseed kat73_t = {
+ 12, kat73_entropyin, kat73_nonce, kat73_persstr,
+ kat73_addin0, kat73_addin1, kat73_retbits
+};
+static const struct drbg_kat kat73 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat73_t
+};
+
+static const unsigned char kat74_entropyin[] = {
+ 0x21, 0xf0, 0x2f, 0xc7, 0x5a, 0x28, 0x2d, 0x7f, 0x87, 0xca, 0xb0, 0x57,
+ 0x67, 0x55, 0x8e, 0x08,
+};
+static const unsigned char kat74_nonce[] = {
+ 0x3b, 0x43, 0xd7, 0x7b, 0x0c, 0x64, 0x71, 0xe9,
+};
+static const unsigned char kat74_persstr[] = {0};
+static const unsigned char kat74_addin0[] = {0};
+static const unsigned char kat74_addin1[] = {0};
+static const unsigned char kat74_retbits[] = {
+ 0x3b, 0x87, 0x09, 0xce, 0xfe, 0x27, 0x06, 0x27, 0xeb, 0x49, 0x47, 0xf3,
+ 0xc7, 0x69, 0x5e, 0xed, 0x2c, 0x85, 0xcc, 0x15, 0x25, 0xbe, 0x25, 0x3f,
+ 0x20, 0x0a, 0x44, 0xad, 0x55, 0xf7, 0x58, 0x3e, 0x10, 0x91, 0xb8, 0x80,
+ 0xee, 0x16, 0xa8, 0x08, 0xe9, 0x0d, 0xc1, 0xdd, 0x5c, 0x0e, 0xd3, 0xb8,
+ 0xd1, 0x96, 0x40, 0x76, 0x61, 0xde, 0x80, 0x61, 0xf6, 0xa2, 0xd7, 0x8c,
+ 0xdc, 0x93, 0x42, 0x9d,
+};
+static const struct drbg_kat_no_reseed kat74_t = {
+ 13, kat74_entropyin, kat74_nonce, kat74_persstr,
+ kat74_addin0, kat74_addin1, kat74_retbits
+};
+static const struct drbg_kat kat74 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat74_t
+};
+
+static const unsigned char kat75_entropyin[] = {
+ 0xdf, 0x5b, 0x1c, 0xd5, 0x10, 0x45, 0xc8, 0x38, 0x01, 0x53, 0x24, 0x49,
+ 0xd6, 0xa8, 0x7a, 0xed,
+};
+static const unsigned char kat75_nonce[] = {
+ 0x8d, 0xd1, 0x72, 0xb8, 0x12, 0x86, 0xa2, 0x38,
+};
+static const unsigned char kat75_persstr[] = {0};
+static const unsigned char kat75_addin0[] = {0};
+static const unsigned char kat75_addin1[] = {0};
+static const unsigned char kat75_retbits[] = {
+ 0xf0, 0x17, 0x2b, 0x3a, 0x5b, 0x42, 0xea, 0xd6, 0xe6, 0x54, 0xd3, 0xab,
+ 0xc7, 0x8d, 0xda, 0x08, 0x78, 0x0e, 0xa4, 0x32, 0x23, 0x62, 0x57, 0x07,
+ 0xf8, 0xab, 0x02, 0x1b, 0xef, 0x54, 0x12, 0xdb, 0x89, 0xb0, 0x89, 0xcf,
+ 0x75, 0x11, 0x78, 0xeb, 0x1b, 0x97, 0xbe, 0x13, 0xf5, 0xe8, 0x3b, 0x9f,
+ 0x10, 0x76, 0xd0, 0xfc, 0x88, 0xe6, 0xbb, 0xd6, 0xee, 0xf1, 0xef, 0x63,
+ 0x55, 0xe3, 0x67, 0x2b,
+};
+static const struct drbg_kat_no_reseed kat75_t = {
+ 14, kat75_entropyin, kat75_nonce, kat75_persstr,
+ kat75_addin0, kat75_addin1, kat75_retbits
+};
+static const struct drbg_kat kat75 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat75_t
+};
+
+static const unsigned char kat76_entropyin[] = {
+ 0xad, 0xf5, 0x71, 0x1f, 0x93, 0xd8, 0xc8, 0x99, 0x73, 0x49, 0x42, 0x9c,
+ 0xca, 0xed, 0xae, 0x0a,
+};
+static const unsigned char kat76_nonce[] = {
+ 0xb2, 0x57, 0x16, 0x93, 0x1b, 0x6e, 0x3c, 0xc1,
+};
+static const unsigned char kat76_persstr[] = {0};
+static const unsigned char kat76_addin0[] = {
+ 0xab, 0xf8, 0xcd, 0x66, 0xdd, 0x39, 0x75, 0x8b, 0x01, 0xd7, 0xdb, 0xb9,
+ 0x9a, 0xb1, 0x7d, 0xc3,
+};
+static const unsigned char kat76_addin1[] = {
+ 0x4b, 0xe0, 0xf6, 0xb2, 0x75, 0x53, 0x77, 0xc6, 0xe8, 0x81, 0xfb, 0xb2,
+ 0x61, 0xb5, 0x6b, 0xeb,
+};
+static const unsigned char kat76_retbits[] = {
+ 0xd4, 0x20, 0x60, 0x4d, 0xee, 0x64, 0x67, 0x49, 0x2d, 0xb5, 0x95, 0x7c,
+ 0x86, 0x20, 0x7a, 0x70, 0x8f, 0xd2, 0x42, 0xed, 0x67, 0x94, 0x2a, 0xed,
+ 0x29, 0x94, 0x25, 0x33, 0x5c, 0x83, 0xb4, 0x14, 0x37, 0x41, 0x85, 0x82,
+ 0xf4, 0x1b, 0xc7, 0xfc, 0x0e, 0xf0, 0xd6, 0x92, 0x7f, 0x34, 0xd8, 0x3a,
+ 0xcd, 0x67, 0xc7, 0x01, 0x33, 0x64, 0x4f, 0xd7, 0x11, 0xdd, 0x5a, 0x65,
+ 0x73, 0x1f, 0x9f, 0x02,
+};
+static const struct drbg_kat_no_reseed kat76_t = {
+ 0, kat76_entropyin, kat76_nonce, kat76_persstr,
+ kat76_addin0, kat76_addin1, kat76_retbits
+};
+static const struct drbg_kat kat76 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat76_t
+};
+
+static const unsigned char kat77_entropyin[] = {
+ 0xe9, 0x21, 0x00, 0x02, 0x07, 0x34, 0x90, 0x9d, 0x61, 0x09, 0xd2, 0x9c,
+ 0xf2, 0xc8, 0x98, 0xb0,
+};
+static const unsigned char kat77_nonce[] = {
+ 0x91, 0xfb, 0xd9, 0xa3, 0xa8, 0xed, 0xc3, 0xa4,
+};
+static const unsigned char kat77_persstr[] = {0};
+static const unsigned char kat77_addin0[] = {
+ 0x09, 0x80, 0xc7, 0xdb, 0xcf, 0xd0, 0xe7, 0xf7, 0x7a, 0xf8, 0x35, 0xac,
+ 0xc7, 0x4a, 0x4b, 0xa3,
+};
+static const unsigned char kat77_addin1[] = {
+ 0x3c, 0xbf, 0x47, 0xd4, 0x66, 0x55, 0xa0, 0xce, 0x75, 0xa5, 0xd5, 0x65,
+ 0x28, 0x12, 0x7b, 0xc0,
+};
+static const unsigned char kat77_retbits[] = {
+ 0xe7, 0x7c, 0xcc, 0x52, 0x63, 0x62, 0x54, 0x29, 0xce, 0x7e, 0x53, 0x56,
+ 0x22, 0x48, 0x1d, 0x0b, 0xef, 0x47, 0x61, 0x41, 0xd1, 0xa0, 0xab, 0xfa,
+ 0x7f, 0x69, 0x67, 0xc1, 0x1f, 0x47, 0xf7, 0xa7, 0x0f, 0xa9, 0xbc, 0x70,
+ 0x59, 0x8e, 0xce, 0x3f, 0xf2, 0x83, 0xe5, 0xae, 0x04, 0xf1, 0x05, 0x35,
+ 0xd3, 0x49, 0xc2, 0x31, 0x34, 0x9a, 0xf8, 0x07, 0x1a, 0x22, 0x32, 0x3a,
+ 0x6e, 0x95, 0x10, 0x39,
+};
+static const struct drbg_kat_no_reseed kat77_t = {
+ 1, kat77_entropyin, kat77_nonce, kat77_persstr,
+ kat77_addin0, kat77_addin1, kat77_retbits
+};
+static const struct drbg_kat kat77 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat77_t
+};
+
+static const unsigned char kat78_entropyin[] = {
+ 0x09, 0x2f, 0xfe, 0x74, 0x57, 0xd6, 0x17, 0x3e, 0x67, 0x13, 0xb0, 0xaf,
+ 0x76, 0x52, 0x1d, 0x82,
+};
+static const unsigned char kat78_nonce[] = {
+ 0xd0, 0xb8, 0xca, 0xe6, 0xab, 0x9e, 0x29, 0xac,
+};
+static const unsigned char kat78_persstr[] = {0};
+static const unsigned char kat78_addin0[] = {
+ 0xe3, 0x1a, 0xf5, 0xe1, 0x81, 0xc4, 0x34, 0x6e, 0x42, 0x3e, 0xbc, 0x1f,
+ 0xf9, 0xf4, 0x6d, 0xdd,
+};
+static const unsigned char kat78_addin1[] = {
+ 0x02, 0xb9, 0x49, 0xd1, 0x34, 0xfc, 0x89, 0x68, 0xba, 0x51, 0x8f, 0xda,
+ 0x3b, 0x42, 0xc9, 0x7f,
+};
+static const unsigned char kat78_retbits[] = {
+ 0x0b, 0x64, 0xd9, 0xc6, 0x1d, 0x1f, 0x23, 0x44, 0x0c, 0xe5, 0x7d, 0xbf,
+ 0x46, 0x5f, 0x8c, 0x62, 0x9a, 0x9f, 0xfe, 0xdd, 0x16, 0x43, 0x99, 0xab,
+ 0x84, 0xfc, 0x11, 0x84, 0x66, 0xa5, 0x67, 0x9b, 0xb2, 0xd9, 0xc8, 0x05,
+ 0xea, 0x9d, 0x29, 0x49, 0x72, 0x61, 0xea, 0x58, 0xbd, 0x8f, 0xa4, 0x5c,
+ 0xf2, 0x4e, 0x21, 0x2c, 0x07, 0x7b, 0xab, 0xa4, 0xd4, 0xe5, 0x73, 0x8b,
+ 0xb8, 0x83, 0xc8, 0x83,
+};
+static const struct drbg_kat_no_reseed kat78_t = {
+ 2, kat78_entropyin, kat78_nonce, kat78_persstr,
+ kat78_addin0, kat78_addin1, kat78_retbits
+};
+static const struct drbg_kat kat78 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat78_t
+};
+
+static const unsigned char kat79_entropyin[] = {
+ 0xa7, 0xa4, 0x78, 0x41, 0xcf, 0x1a, 0x75, 0xee, 0x96, 0x93, 0x5f, 0x52,
+ 0xa3, 0x32, 0x2d, 0x9d,
+};
+static const unsigned char kat79_nonce[] = {
+ 0x5b, 0x48, 0xc3, 0xc3, 0x47, 0x39, 0x46, 0x56,
+};
+static const unsigned char kat79_persstr[] = {0};
+static const unsigned char kat79_addin0[] = {
+ 0xaa, 0xc2, 0x03, 0x1f, 0x6a, 0xa4, 0x0f, 0x08, 0x75, 0x49, 0x33, 0x70,
+ 0x92, 0x7c, 0x7c, 0xa8,
+};
+static const unsigned char kat79_addin1[] = {
+ 0x1a, 0x67, 0x44, 0xd0, 0x3f, 0xc2, 0x15, 0x12, 0x94, 0x70, 0x7c, 0x3b,
+ 0xce, 0xa8, 0x84, 0x02,
+};
+static const unsigned char kat79_retbits[] = {
+ 0xb4, 0x67, 0x48, 0x67, 0xcb, 0x6c, 0xd4, 0xfa, 0xde, 0x78, 0x46, 0xf4,
+ 0x92, 0xbd, 0x9e, 0xca, 0x69, 0xc1, 0x33, 0xf1, 0x17, 0x1c, 0xc6, 0x0b,
+ 0x6c, 0xd7, 0x5f, 0x22, 0xe2, 0xba, 0x7e, 0x70, 0x20, 0x7c, 0xa3, 0x8b,
+ 0xdc, 0xef, 0x17, 0xac, 0x15, 0xe4, 0x88, 0x49, 0xba, 0x13, 0x0d, 0x5f,
+ 0xb8, 0x10, 0x84, 0x4c, 0x25, 0x39, 0xfe, 0xc5, 0x19, 0xc4, 0xfa, 0x97,
+ 0x7f, 0xfa, 0x07, 0x38,
+};
+static const struct drbg_kat_no_reseed kat79_t = {
+ 3, kat79_entropyin, kat79_nonce, kat79_persstr,
+ kat79_addin0, kat79_addin1, kat79_retbits
+};
+static const struct drbg_kat kat79 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat79_t
+};
+
+static const unsigned char kat80_entropyin[] = {
+ 0x52, 0x89, 0xc3, 0x33, 0xce, 0x1c, 0xee, 0xf5, 0x6a, 0x19, 0xa1, 0x11,
+ 0xe9, 0x20, 0x1a, 0x38,
+};
+static const unsigned char kat80_nonce[] = {
+ 0xdb, 0xd6, 0xb7, 0x6b, 0x1f, 0xdf, 0x5d, 0x1b,
+};
+static const unsigned char kat80_persstr[] = {0};
+static const unsigned char kat80_addin0[] = {
+ 0xf1, 0xfa, 0x6e, 0xc8, 0xca, 0xf9, 0x4f, 0x65, 0xf1, 0x2e, 0x9c, 0x0d,
+ 0x8f, 0x57, 0x04, 0xf6,
+};
+static const unsigned char kat80_addin1[] = {
+ 0x6e, 0xb6, 0xa5, 0x57, 0xf1, 0x70, 0x18, 0x83, 0x0b, 0x5d, 0x72, 0xb6,
+ 0x7d, 0x32, 0x22, 0x63,
+};
+static const unsigned char kat80_retbits[] = {
+ 0x39, 0xec, 0x96, 0xbc, 0x71, 0x6e, 0x1d, 0x21, 0x48, 0x80, 0xd1, 0xf4,
+ 0xb8, 0xa9, 0x84, 0xbb, 0x83, 0x39, 0x94, 0x53, 0xec, 0x1e, 0xb9, 0xf3,
+ 0x71, 0x28, 0x2d, 0x65, 0x8e, 0x32, 0xd7, 0x39, 0xb4, 0x89, 0xf4, 0xc5,
+ 0xee, 0xae, 0x62, 0xa8, 0xfe, 0xe8, 0xe0, 0x84, 0xee, 0xae, 0x6d, 0x01,
+ 0xcc, 0xa0, 0xad, 0x80, 0xda, 0x1c, 0x53, 0x23, 0x0f, 0x8a, 0x1f, 0xaf,
+ 0x7c, 0x33, 0x5e, 0xdf,
+};
+static const struct drbg_kat_no_reseed kat80_t = {
+ 4, kat80_entropyin, kat80_nonce, kat80_persstr,
+ kat80_addin0, kat80_addin1, kat80_retbits
+};
+static const struct drbg_kat kat80 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat80_t
+};
+
+static const unsigned char kat81_entropyin[] = {
+ 0x4f, 0x05, 0xef, 0x26, 0xc6, 0x85, 0x44, 0x4d, 0x6e, 0x65, 0xd8, 0xf2,
+ 0x6e, 0x0f, 0x2e, 0xf2,
+};
+static const unsigned char kat81_nonce[] = {
+ 0xd0, 0xab, 0x06, 0x6c, 0x7a, 0x49, 0x03, 0xb7,
+};
+static const unsigned char kat81_persstr[] = {0};
+static const unsigned char kat81_addin0[] = {
+ 0xd2, 0x75, 0x42, 0x60, 0x43, 0xa8, 0x2d, 0xe2, 0x0f, 0x89, 0xf1, 0xcb,
+ 0x2c, 0xff, 0x5c, 0x9b,
+};
+static const unsigned char kat81_addin1[] = {
+ 0x02, 0xa3, 0x27, 0x63, 0xed, 0x9a, 0xab, 0x16, 0x72, 0x82, 0xd0, 0xa0,
+ 0x97, 0xf3, 0x10, 0x3e,
+};
+static const unsigned char kat81_retbits[] = {
+ 0xaf, 0xa2, 0xd3, 0x7c, 0xc1, 0xc7, 0x9d, 0x20, 0xa6, 0x10, 0x4d, 0x67,
+ 0x29, 0xfc, 0x75, 0x44, 0x36, 0x1b, 0x95, 0xd2, 0x36, 0x33, 0x48, 0x7e,
+ 0x8b, 0xb2, 0x82, 0xb2, 0x77, 0xe2, 0x5f, 0x8a, 0xd5, 0x31, 0x36, 0x10,
+ 0x9b, 0x21, 0xc3, 0x80, 0xaa, 0x05, 0xe4, 0x1d, 0xd9, 0xef, 0xd8, 0xad,
+ 0xf4, 0x6b, 0x7d, 0x69, 0x5b, 0xba, 0xf5, 0xb0, 0x30, 0x72, 0x16, 0xa1,
+ 0x94, 0xfd, 0x91, 0x28,
+};
+static const struct drbg_kat_no_reseed kat81_t = {
+ 5, kat81_entropyin, kat81_nonce, kat81_persstr,
+ kat81_addin0, kat81_addin1, kat81_retbits
+};
+static const struct drbg_kat kat81 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat81_t
+};
+
+static const unsigned char kat82_entropyin[] = {
+ 0x0c, 0x2c, 0xcf, 0xd6, 0x5c, 0x23, 0xbc, 0x06, 0x93, 0xc9, 0xd4, 0x66,
+ 0x7a, 0x94, 0x2b, 0x42,
+};
+static const unsigned char kat82_nonce[] = {
+ 0xc0, 0x8d, 0x55, 0x22, 0x8f, 0xe8, 0x4b, 0xd7,
+};
+static const unsigned char kat82_persstr[] = {0};
+static const unsigned char kat82_addin0[] = {
+ 0xcc, 0x01, 0x7b, 0xb7, 0x96, 0x2d, 0xa6, 0xdb, 0x0f, 0x51, 0x7b, 0xe9,
+ 0x18, 0x3f, 0xa6, 0xf4,
+};
+static const unsigned char kat82_addin1[] = {
+ 0xc4, 0x24, 0xaa, 0x0c, 0xe8, 0x4a, 0x80, 0x7a, 0x78, 0xb7, 0xb7, 0x32,
+ 0x11, 0x3c, 0x22, 0xa1,
+};
+static const unsigned char kat82_retbits[] = {
+ 0xcb, 0x55, 0x6f, 0x6d, 0x22, 0x3a, 0x51, 0xa2, 0x00, 0xd7, 0x35, 0xf2,
+ 0xf4, 0xba, 0x21, 0x7a, 0x67, 0x2e, 0xf6, 0xbc, 0x14, 0x51, 0x97, 0x6d,
+ 0x1d, 0x05, 0xb4, 0x4a, 0x2c, 0x0d, 0x54, 0x27, 0x8a, 0xf7, 0x47, 0x83,
+ 0x79, 0x22, 0xcd, 0x0b, 0x28, 0xd7, 0xaa, 0xa2, 0xa8, 0x7e, 0x23, 0x05,
+ 0x5e, 0x18, 0xd6, 0x7d, 0x76, 0xfa, 0x90, 0x72, 0x82, 0x94, 0xab, 0xa4,
+ 0xac, 0x36, 0x96, 0x5e,
+};
+static const struct drbg_kat_no_reseed kat82_t = {
+ 6, kat82_entropyin, kat82_nonce, kat82_persstr,
+ kat82_addin0, kat82_addin1, kat82_retbits
+};
+static const struct drbg_kat kat82 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat82_t
+};
+
+static const unsigned char kat83_entropyin[] = {
+ 0x3b, 0x74, 0x81, 0x3e, 0xeb, 0xf5, 0xf5, 0xf2, 0xa6, 0xa5, 0xa4, 0xf3,
+ 0xf9, 0x07, 0xdc, 0xb8,
+};
+static const unsigned char kat83_nonce[] = {
+ 0x35, 0xda, 0xa2, 0xef, 0xda, 0xd8, 0x8f, 0xb8,
+};
+static const unsigned char kat83_persstr[] = {0};
+static const unsigned char kat83_addin0[] = {
+ 0x5e, 0x0a, 0xe3, 0x69, 0xb6, 0xe8, 0x50, 0xed, 0x30, 0xf9, 0xae, 0x64,
+ 0xfe, 0x10, 0x5a, 0xf3,
+};
+static const unsigned char kat83_addin1[] = {
+ 0x3e, 0x69, 0x7b, 0xb2, 0xbf, 0x25, 0x85, 0x26, 0x45, 0xf2, 0xd1, 0x6f,
+ 0x67, 0x6f, 0x90, 0x78,
+};
+static const unsigned char kat83_retbits[] = {
+ 0x79, 0x0b, 0x1f, 0x6c, 0xcd, 0xf3, 0x52, 0xde, 0xc0, 0xe5, 0x7f, 0xa0,
+ 0xc7, 0x72, 0xc6, 0x4d, 0x77, 0x77, 0xe4, 0xbd, 0xb9, 0xff, 0x8a, 0x91,
+ 0xda, 0x01, 0x89, 0x02, 0x20, 0x3d, 0xb5, 0x82, 0xf9, 0x01, 0xc2, 0x0d,
+ 0xd2, 0x53, 0x61, 0xdf, 0x22, 0xe7, 0x17, 0x12, 0xa4, 0x97, 0x57, 0x8d,
+ 0x22, 0xee, 0xa8, 0x52, 0x46, 0xce, 0xfd, 0x42, 0x5b, 0x08, 0xf1, 0x50,
+ 0x74, 0x34, 0x1f, 0x39,
+};
+static const struct drbg_kat_no_reseed kat83_t = {
+ 7, kat83_entropyin, kat83_nonce, kat83_persstr,
+ kat83_addin0, kat83_addin1, kat83_retbits
+};
+static const struct drbg_kat kat83 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat83_t
+};
+
+static const unsigned char kat84_entropyin[] = {
+ 0x46, 0x26, 0x07, 0xb2, 0xb7, 0x7b, 0x90, 0x3f, 0xdb, 0xd4, 0x2b, 0xf1,
+ 0xd7, 0x7b, 0xc8, 0x1a,
+};
+static const unsigned char kat84_nonce[] = {
+ 0xb5, 0x4d, 0x43, 0x00, 0x6a, 0xde, 0x2a, 0x7c,
+};
+static const unsigned char kat84_persstr[] = {0};
+static const unsigned char kat84_addin0[] = {
+ 0x61, 0x05, 0xc5, 0xdd, 0xed, 0xcc, 0x74, 0x46, 0x65, 0x91, 0x5e, 0xbe,
+ 0x48, 0xad, 0x3b, 0x54,
+};
+static const unsigned char kat84_addin1[] = {
+ 0xfd, 0xde, 0xe2, 0x35, 0xc3, 0x7e, 0xd4, 0xbc, 0x21, 0xea, 0xe0, 0x8e,
+ 0x61, 0x53, 0x33, 0x1f,
+};
+static const unsigned char kat84_retbits[] = {
+ 0x16, 0x33, 0x9e, 0x91, 0x0e, 0xaf, 0x9b, 0xad, 0x90, 0x4a, 0x7b, 0x3f,
+ 0x9b, 0x2e, 0x02, 0x41, 0xd2, 0xb4, 0x66, 0x5d, 0x1f, 0x9c, 0x76, 0x55,
+ 0xf9, 0x21, 0x7e, 0x34, 0x25, 0x3a, 0xcc, 0x33, 0x0d, 0xfc, 0x98, 0x81,
+ 0x7d, 0x97, 0x81, 0x86, 0xf8, 0xad, 0x77, 0xb1, 0x0f, 0x38, 0xdd, 0x72,
+ 0xf4, 0x71, 0xb4, 0x61, 0x5b, 0x28, 0xf3, 0xa3, 0x9c, 0x40, 0x66, 0x23,
+ 0xea, 0x5d, 0x63, 0x77,
+};
+static const struct drbg_kat_no_reseed kat84_t = {
+ 8, kat84_entropyin, kat84_nonce, kat84_persstr,
+ kat84_addin0, kat84_addin1, kat84_retbits
+};
+static const struct drbg_kat kat84 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat84_t
+};
+
+static const unsigned char kat85_entropyin[] = {
+ 0xba, 0x2e, 0xa9, 0x9b, 0x79, 0x2b, 0xde, 0xe8, 0xbd, 0xba, 0xf9, 0xc0,
+ 0x5a, 0xb7, 0xb6, 0x33,
+};
+static const unsigned char kat85_nonce[] = {
+ 0x44, 0x53, 0x34, 0x46, 0x44, 0xd4, 0x34, 0xa5,
+};
+static const unsigned char kat85_persstr[] = {0};
+static const unsigned char kat85_addin0[] = {
+ 0x81, 0x72, 0x7d, 0x30, 0xd6, 0x4a, 0xe0, 0x7f, 0xf6, 0x15, 0x69, 0xfc,
+ 0x7a, 0x35, 0x0c, 0xcc,
+};
+static const unsigned char kat85_addin1[] = {
+ 0x65, 0x56, 0xf6, 0x2f, 0x75, 0xd5, 0x26, 0x84, 0x93, 0xcc, 0xa5, 0x12,
+ 0x01, 0x14, 0x93, 0x4c,
+};
+static const unsigned char kat85_retbits[] = {
+ 0x2a, 0x3b, 0x39, 0x87, 0x02, 0xbc, 0x5f, 0xff, 0xd9, 0x14, 0xf9, 0x16,
+ 0x72, 0xaa, 0x05, 0xbe, 0xb6, 0x87, 0x82, 0xe0, 0xa6, 0x22, 0xf6, 0x7b,
+ 0x21, 0x82, 0x6c, 0x23, 0x32, 0x6c, 0x50, 0x78, 0xcc, 0xda, 0x6a, 0xa3,
+ 0xdb, 0x01, 0x4c, 0xec, 0x56, 0xa0, 0x65, 0x63, 0x6b, 0x80, 0x57, 0xe8,
+ 0x12, 0xa6, 0xf4, 0xb7, 0xc6, 0xc4, 0xde, 0x6e, 0x9f, 0x06, 0xaa, 0x53,
+ 0x77, 0xb2, 0x8b, 0xe6,
+};
+static const struct drbg_kat_no_reseed kat85_t = {
+ 9, kat85_entropyin, kat85_nonce, kat85_persstr,
+ kat85_addin0, kat85_addin1, kat85_retbits
+};
+static const struct drbg_kat kat85 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat85_t
+};
+
+static const unsigned char kat86_entropyin[] = {
+ 0x61, 0xcf, 0x4e, 0x09, 0xd9, 0xa4, 0x6a, 0xf3, 0x18, 0xc7, 0x06, 0x42,
+ 0x5c, 0xd3, 0x50, 0xfb,
+};
+static const unsigned char kat86_nonce[] = {
+ 0x28, 0xec, 0x9c, 0x4a, 0xe9, 0x8f, 0x05, 0x74,
+};
+static const unsigned char kat86_persstr[] = {0};
+static const unsigned char kat86_addin0[] = {
+ 0x7f, 0xc3, 0xbf, 0x8a, 0xd3, 0x3e, 0x59, 0x61, 0x74, 0x5b, 0xb2, 0xae,
+ 0x7c, 0x39, 0x9b, 0xa0,
+};
+static const unsigned char kat86_addin1[] = {
+ 0x31, 0x35, 0x71, 0xd3, 0x0d, 0xc5, 0x90, 0x9a, 0x03, 0x38, 0x8c, 0x69,
+ 0x3f, 0x4e, 0xf9, 0x4c,
+};
+static const unsigned char kat86_retbits[] = {
+ 0xd2, 0x25, 0xf0, 0xc6, 0x5e, 0x9a, 0xe8, 0xc3, 0x64, 0x93, 0xb0, 0x09,
+ 0x47, 0x6f, 0x5a, 0x56, 0x36, 0xd4, 0x52, 0x54, 0x4c, 0xe1, 0x6b, 0x99,
+ 0x1c, 0x73, 0xd6, 0xea, 0xe5, 0xef, 0x5e, 0xff, 0x3b, 0x74, 0xe0, 0x03,
+ 0x28, 0xf8, 0x7f, 0x20, 0x30, 0xf3, 0xdf, 0x53, 0xb2, 0xfc, 0x26, 0x47,
+ 0xd6, 0x3a, 0x28, 0xe5, 0xc7, 0xb5, 0x83, 0x44, 0xed, 0x99, 0xc5, 0xd0,
+ 0xbc, 0x62, 0x93, 0xb4,
+};
+static const struct drbg_kat_no_reseed kat86_t = {
+ 10, kat86_entropyin, kat86_nonce, kat86_persstr,
+ kat86_addin0, kat86_addin1, kat86_retbits
+};
+static const struct drbg_kat kat86 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat86_t
+};
+
+static const unsigned char kat87_entropyin[] = {
+ 0xdd, 0x6c, 0x7d, 0xba, 0xc4, 0xfc, 0x4c, 0x8d, 0x9c, 0x69, 0xce, 0x4d,
+ 0xcf, 0x43, 0xb6, 0x67,
+};
+static const unsigned char kat87_nonce[] = {
+ 0x83, 0x26, 0x16, 0x1c, 0x2a, 0xac, 0x48, 0x06,
+};
+static const unsigned char kat87_persstr[] = {0};
+static const unsigned char kat87_addin0[] = {
+ 0xcf, 0x95, 0x9f, 0x9e, 0x93, 0x89, 0x09, 0xd9, 0x5c, 0x47, 0x25, 0xdc,
+ 0x39, 0xd7, 0xef, 0xd7,
+};
+static const unsigned char kat87_addin1[] = {
+ 0xe4, 0x37, 0xd2, 0x26, 0xc4, 0x02, 0x68, 0xcb, 0x9f, 0x63, 0x94, 0x5c,
+ 0xbc, 0xe5, 0x4b, 0x2d,
+};
+static const unsigned char kat87_retbits[] = {
+ 0x90, 0xdd, 0xc5, 0x3c, 0x48, 0x04, 0x1f, 0x0c, 0x45, 0x01, 0xff, 0xee,
+ 0x61, 0x7b, 0x3a, 0x35, 0x83, 0xcb, 0xf5, 0x1a, 0x4c, 0x45, 0xad, 0x7b,
+ 0xa5, 0xb3, 0xdd, 0x34, 0x65, 0xff, 0x13, 0x92, 0xbd, 0x2e, 0xb4, 0x65,
+ 0x1a, 0xc2, 0x2a, 0x34, 0xa0, 0xf5, 0x37, 0x72, 0x01, 0x27, 0x12, 0xf2,
+ 0x39, 0x31, 0xba, 0x8f, 0x0a, 0x3b, 0x74, 0xfa, 0xe0, 0xa1, 0x6b, 0xd4,
+ 0xa1, 0x88, 0x35, 0x13,
+};
+static const struct drbg_kat_no_reseed kat87_t = {
+ 11, kat87_entropyin, kat87_nonce, kat87_persstr,
+ kat87_addin0, kat87_addin1, kat87_retbits
+};
+static const struct drbg_kat kat87 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat87_t
+};
+
+static const unsigned char kat88_entropyin[] = {
+ 0xdf, 0x4f, 0xef, 0xc1, 0xc3, 0xd4, 0x03, 0xfb, 0x17, 0x9b, 0x9b, 0x95,
+ 0x77, 0x53, 0x81, 0xe3,
+};
+static const unsigned char kat88_nonce[] = {
+ 0xd6, 0x84, 0x83, 0xae, 0xe4, 0x2c, 0xfc, 0x00,
+};
+static const unsigned char kat88_persstr[] = {0};
+static const unsigned char kat88_addin0[] = {
+ 0xe8, 0x77, 0xeb, 0x37, 0x51, 0xe2, 0xba, 0xfe, 0xa0, 0x33, 0xac, 0x8c,
+ 0xc5, 0xba, 0x66, 0xf6,
+};
+static const unsigned char kat88_addin1[] = {
+ 0x79, 0x56, 0x87, 0x40, 0x22, 0xb5, 0x0a, 0xa0, 0x32, 0xba, 0xfa, 0x29,
+ 0xe7, 0x21, 0xf3, 0x56,
+};
+static const unsigned char kat88_retbits[] = {
+ 0x6a, 0xda, 0x06, 0x20, 0xd4, 0x29, 0xcd, 0x38, 0x75, 0x4e, 0x55, 0x9a,
+ 0x2e, 0xb8, 0x8c, 0x08, 0x26, 0x6c, 0xd9, 0xcb, 0xac, 0x24, 0x48, 0xb2,
+ 0xb8, 0xa0, 0x5d, 0x92, 0x7d, 0xa1, 0x72, 0x59, 0x19, 0x9d, 0xbc, 0xc5,
+ 0xeb, 0x0b, 0x7a, 0xde, 0xe6, 0x1c, 0x60, 0x74, 0xae, 0x2e, 0x7a, 0xf6,
+ 0xb2, 0xc9, 0xb1, 0xfd, 0x52, 0x89, 0xfb, 0xc3, 0xd9, 0xbe, 0x30, 0x85,
+ 0x84, 0xd0, 0xae, 0x4a,
+};
+static const struct drbg_kat_no_reseed kat88_t = {
+ 12, kat88_entropyin, kat88_nonce, kat88_persstr,
+ kat88_addin0, kat88_addin1, kat88_retbits
+};
+static const struct drbg_kat kat88 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat88_t
+};
+
+static const unsigned char kat89_entropyin[] = {
+ 0x62, 0x0e, 0xa3, 0x17, 0x34, 0x4d, 0x86, 0x85, 0x8d, 0x64, 0xf6, 0xbb,
+ 0x05, 0xd4, 0x47, 0x97,
+};
+static const unsigned char kat89_nonce[] = {
+ 0xf6, 0xdd, 0xc5, 0x84, 0x4f, 0xbd, 0x73, 0x9e,
+};
+static const unsigned char kat89_persstr[] = {0};
+static const unsigned char kat89_addin0[] = {
+ 0x3c, 0xcf, 0xb0, 0x69, 0xef, 0x27, 0xf8, 0x64, 0xe3, 0xb7, 0x31, 0xd9,
+ 0x4c, 0x3f, 0x2c, 0x6c,
+};
+static const unsigned char kat89_addin1[] = {
+ 0x80, 0x85, 0x7d, 0x3f, 0x59, 0x8b, 0x1b, 0x16, 0x01, 0x4e, 0x6a, 0x35,
+ 0x49, 0xa2, 0xd2, 0x2c,
+};
+static const unsigned char kat89_retbits[] = {
+ 0xd7, 0xa7, 0x87, 0xbe, 0xeb, 0x7e, 0xfc, 0x9c, 0x58, 0x4f, 0x93, 0x34,
+ 0x55, 0x33, 0xa5, 0x99, 0xed, 0x61, 0x5e, 0xb2, 0x13, 0x6b, 0x8f, 0xb8,
+ 0x74, 0xa7, 0xf5, 0xa7, 0x1a, 0xea, 0x98, 0xf8, 0x0c, 0x56, 0x92, 0x30,
+ 0x98, 0x56, 0x7a, 0xa3, 0xb4, 0xc3, 0x16, 0x96, 0x82, 0x6f, 0x08, 0x16,
+ 0x76, 0xa3, 0xce, 0xed, 0x1d, 0x91, 0x4c, 0x94, 0x9d, 0x54, 0x23, 0x90,
+ 0xb6, 0x99, 0xd3, 0xfe,
+};
+static const struct drbg_kat_no_reseed kat89_t = {
+ 13, kat89_entropyin, kat89_nonce, kat89_persstr,
+ kat89_addin0, kat89_addin1, kat89_retbits
+};
+static const struct drbg_kat kat89 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat89_t
+};
+
+static const unsigned char kat90_entropyin[] = {
+ 0xd8, 0xba, 0x9d, 0x16, 0xa0, 0x07, 0x0f, 0xbd, 0xf5, 0x10, 0x9d, 0x3c,
+ 0x1e, 0xd8, 0x59, 0x16,
+};
+static const unsigned char kat90_nonce[] = {
+ 0x29, 0xce, 0x07, 0xdd, 0xa6, 0x1b, 0x50, 0x14,
+};
+static const unsigned char kat90_persstr[] = {0};
+static const unsigned char kat90_addin0[] = {
+ 0x16, 0x0a, 0xd7, 0x76, 0x75, 0xc6, 0x4c, 0x74, 0x87, 0xee, 0xdb, 0x34,
+ 0x34, 0x37, 0x00, 0xc0,
+};
+static const unsigned char kat90_addin1[] = {
+ 0x16, 0x32, 0x54, 0x60, 0x58, 0xf1, 0x9e, 0xe1, 0xb8, 0x49, 0xe5, 0xd2,
+ 0x7e, 0x2d, 0x75, 0x5a,
+};
+static const unsigned char kat90_retbits[] = {
+ 0xe0, 0x5c, 0x62, 0xcb, 0xef, 0xaf, 0x03, 0x80, 0x43, 0xd4, 0x9c, 0x97,
+ 0x6b, 0xa8, 0x55, 0x21, 0xc2, 0x06, 0x71, 0xd9, 0xf8, 0x1c, 0xeb, 0xf5,
+ 0xa8, 0x75, 0x81, 0x65, 0x9e, 0x3d, 0x18, 0x19, 0x90, 0x8e, 0x84, 0xec,
+ 0x01, 0x93, 0xa5, 0x30, 0xf3, 0x10, 0xcc, 0x35, 0x44, 0xba, 0x90, 0xad,
+ 0x92, 0xa6, 0xc9, 0x9d, 0x3a, 0x1a, 0xf5, 0x5b, 0x5a, 0xed, 0x72, 0x87,
+ 0x1d, 0xb8, 0x90, 0x02,
+};
+static const struct drbg_kat_no_reseed kat90_t = {
+ 14, kat90_entropyin, kat90_nonce, kat90_persstr,
+ kat90_addin0, kat90_addin1, kat90_retbits
+};
+static const struct drbg_kat kat90 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat90_t
+};
+
+static const unsigned char kat91_entropyin[] = {
+ 0x0a, 0xf1, 0x3f, 0x64, 0x59, 0x02, 0xaf, 0x49, 0xe9, 0xa7, 0xce, 0xd6,
+ 0xe3, 0x6a, 0x21, 0x0d,
+};
+static const unsigned char kat91_nonce[] = {
+ 0xc3, 0xbf, 0xf2, 0x91, 0xa1, 0x1a, 0xc4, 0x97,
+};
+static const unsigned char kat91_persstr[] = {
+ 0xe8, 0xf1, 0xd1, 0xb4, 0x73, 0x1c, 0x4d, 0x57, 0xd7, 0xea, 0xd9, 0xc2,
+ 0xf6, 0x00, 0xfd, 0xc6,
+};
+static const unsigned char kat91_addin0[] = {0};
+static const unsigned char kat91_addin1[] = {0};
+static const unsigned char kat91_retbits[] = {
+ 0xac, 0x6f, 0x94, 0x5a, 0x4b, 0x9f, 0xd3, 0xb4, 0x7c, 0x74, 0x37, 0x9e,
+ 0xb1, 0xf2, 0xa7, 0xbb, 0xed, 0xf8, 0xee, 0xc6, 0x8e, 0xfd, 0x3c, 0x7a,
+ 0x6c, 0xf6, 0x8c, 0x54, 0xae, 0x7a, 0x3f, 0x7b, 0xe7, 0x28, 0x0f, 0x45,
+ 0x9c, 0x2e, 0x0b, 0x72, 0xaf, 0xa4, 0x5c, 0xeb, 0xbe, 0xbb, 0xa1, 0x7c,
+ 0x86, 0x7e, 0x96, 0x11, 0xc8, 0x96, 0xa5, 0x7d, 0x51, 0x5b, 0xeb, 0x06,
+ 0xa7, 0xb9, 0x1f, 0x4c,
+};
+static const struct drbg_kat_no_reseed kat91_t = {
+ 0, kat91_entropyin, kat91_nonce, kat91_persstr,
+ kat91_addin0, kat91_addin1, kat91_retbits
+};
+static const struct drbg_kat kat91 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat91_t
+};
+
+static const unsigned char kat92_entropyin[] = {
+ 0x0e, 0x11, 0x3f, 0x47, 0xf2, 0xfc, 0x76, 0xe8, 0x3e, 0x2d, 0x13, 0xd5,
+ 0x72, 0x24, 0x56, 0x08,
+};
+static const unsigned char kat92_nonce[] = {
+ 0x5f, 0xf8, 0x5c, 0xc6, 0xa5, 0x34, 0xf1, 0x5a,
+};
+static const unsigned char kat92_persstr[] = {
+ 0x50, 0x25, 0x06, 0x68, 0xe5, 0x9d, 0xe3, 0x5f, 0xde, 0x91, 0xe0, 0x8f,
+ 0xe1, 0x84, 0x84, 0xab,
+};
+static const unsigned char kat92_addin0[] = {0};
+static const unsigned char kat92_addin1[] = {0};
+static const unsigned char kat92_retbits[] = {
+ 0xdc, 0xc6, 0x4a, 0x96, 0x6a, 0x52, 0xd6, 0x00, 0x8d, 0xbe, 0x07, 0xa2,
+ 0x48, 0x4b, 0xca, 0xad, 0x67, 0xb2, 0x54, 0xd6, 0xf2, 0x46, 0xe4, 0x50,
+ 0x1d, 0x98, 0x64, 0xb6, 0x4a, 0xd8, 0xb7, 0xed, 0xf1, 0x0f, 0xdb, 0xc6,
+ 0xdd, 0xc4, 0x14, 0xa9, 0xb4, 0x31, 0xb0, 0x58, 0xa7, 0xee, 0x5c, 0xed,
+ 0x23, 0xf7, 0xa6, 0xac, 0x7e, 0xea, 0x0f, 0xe6, 0x13, 0x1c, 0x9e, 0xb7,
+ 0x41, 0x2e, 0x68, 0xdf,
+};
+static const struct drbg_kat_no_reseed kat92_t = {
+ 1, kat92_entropyin, kat92_nonce, kat92_persstr,
+ kat92_addin0, kat92_addin1, kat92_retbits
+};
+static const struct drbg_kat kat92 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat92_t
+};
+
+static const unsigned char kat93_entropyin[] = {
+ 0x16, 0xd2, 0xa2, 0x33, 0xf0, 0x49, 0x7c, 0x75, 0x1d, 0xdd, 0x85, 0xef,
+ 0x7c, 0xd8, 0x62, 0xe6,
+};
+static const unsigned char kat93_nonce[] = {
+ 0x7e, 0x7e, 0x1a, 0xab, 0x1b, 0x82, 0x67, 0x5d,
+};
+static const unsigned char kat93_persstr[] = {
+ 0x15, 0xf8, 0x1e, 0x40, 0xa2, 0x49, 0x3b, 0x85, 0x9c, 0xce, 0xd3, 0x3c,
+ 0xdf, 0x7b, 0x75, 0x90,
+};
+static const unsigned char kat93_addin0[] = {0};
+static const unsigned char kat93_addin1[] = {0};
+static const unsigned char kat93_retbits[] = {
+ 0xc5, 0x20, 0x97, 0xd2, 0xd0, 0x09, 0xdc, 0xe7, 0xcb, 0xd4, 0x6d, 0x74,
+ 0x0d, 0xe5, 0x4d, 0x70, 0xc0, 0x73, 0x2f, 0x96, 0xfa, 0xc0, 0xbd, 0x16,
+ 0x9f, 0x38, 0x56, 0xe5, 0x0f, 0x9e, 0x46, 0x01, 0x67, 0x25, 0x38, 0xb2,
+ 0x3f, 0x37, 0x1f, 0x78, 0x0e, 0x61, 0xe8, 0x2f, 0x2d, 0xb9, 0x9e, 0xf3,
+ 0x83, 0x40, 0x08, 0xaa, 0xdc, 0x26, 0xc2, 0x78, 0x55, 0xa6, 0x86, 0x96,
+ 0xee, 0x81, 0x2c, 0x9c,
+};
+static const struct drbg_kat_no_reseed kat93_t = {
+ 2, kat93_entropyin, kat93_nonce, kat93_persstr,
+ kat93_addin0, kat93_addin1, kat93_retbits
+};
+static const struct drbg_kat kat93 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat93_t
+};
+
+static const unsigned char kat94_entropyin[] = {
+ 0xea, 0x36, 0x89, 0x1e, 0x0d, 0x64, 0x26, 0x94, 0x5a, 0x6e, 0x1f, 0x33,
+ 0x8c, 0x86, 0xca, 0x4b,
+};
+static const unsigned char kat94_nonce[] = {
+ 0x89, 0x69, 0x66, 0x60, 0x0e, 0x85, 0xd3, 0xda,
+};
+static const unsigned char kat94_persstr[] = {
+ 0xb8, 0xc7, 0x01, 0xa1, 0x1e, 0x7c, 0x00, 0x8e, 0x37, 0xc2, 0x32, 0x62,
+ 0x7c, 0x24, 0xb6, 0xd1,
+};
+static const unsigned char kat94_addin0[] = {0};
+static const unsigned char kat94_addin1[] = {0};
+static const unsigned char kat94_retbits[] = {
+ 0x44, 0x63, 0x60, 0xf1, 0x6b, 0x1e, 0x59, 0xa8, 0x25, 0x96, 0xe6, 0x1d,
+ 0xf2, 0x3a, 0xf1, 0x8f, 0x5a, 0x95, 0xb7, 0xd8, 0xb7, 0xdd, 0x61, 0x72,
+ 0xf3, 0x57, 0x5d, 0x45, 0x25, 0x13, 0x86, 0xb0, 0x4b, 0x69, 0x78, 0x5b,
+ 0xa4, 0x4a, 0x75, 0xeb, 0x2a, 0x54, 0x15, 0x71, 0x3a, 0x84, 0x36, 0x5c,
+ 0xac, 0x81, 0xb3, 0x0d, 0xf0, 0xb4, 0x8a, 0x61, 0x09, 0x77, 0xfe, 0x69,
+ 0x61, 0xe7, 0xee, 0x8a,
+};
+static const struct drbg_kat_no_reseed kat94_t = {
+ 3, kat94_entropyin, kat94_nonce, kat94_persstr,
+ kat94_addin0, kat94_addin1, kat94_retbits
+};
+static const struct drbg_kat kat94 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat94_t
+};
+
+static const unsigned char kat95_entropyin[] = {
+ 0x3f, 0x41, 0x38, 0xd8, 0x4d, 0x7a, 0xbd, 0x13, 0xbb, 0xe1, 0x5e, 0x18,
+ 0xb2, 0x92, 0xf1, 0x5f,
+};
+static const unsigned char kat95_nonce[] = {
+ 0x34, 0x62, 0xe5, 0x2e, 0x82, 0xf2, 0x86, 0x53,
+};
+static const unsigned char kat95_persstr[] = {
+ 0x24, 0xc5, 0x17, 0x70, 0x84, 0x95, 0x1c, 0xf5, 0x32, 0xf2, 0x43, 0x2a,
+ 0x18, 0x82, 0x59, 0x6f,
+};
+static const unsigned char kat95_addin0[] = {0};
+static const unsigned char kat95_addin1[] = {0};
+static const unsigned char kat95_retbits[] = {
+ 0xba, 0x2c, 0xa1, 0xe4, 0x43, 0xc7, 0x5d, 0x55, 0xc4, 0x20, 0x65, 0xba,
+ 0x91, 0xf7, 0x7d, 0xb5, 0xb8, 0xde, 0x6c, 0x34, 0x2b, 0x65, 0xa2, 0xc1,
+ 0x49, 0x44, 0x59, 0x79, 0xff, 0x26, 0x3e, 0x9d, 0x01, 0x8f, 0x56, 0x44,
+ 0x30, 0xfe, 0x1e, 0xdb, 0x48, 0xb4, 0x03, 0xce, 0xf2, 0x3f, 0x86, 0x0e,
+ 0xa2, 0x71, 0x46, 0xd8, 0x51, 0x18, 0x43, 0xe0, 0xa3, 0x9f, 0xf3, 0x37,
+ 0xba, 0x74, 0xd2, 0x21,
+};
+static const struct drbg_kat_no_reseed kat95_t = {
+ 4, kat95_entropyin, kat95_nonce, kat95_persstr,
+ kat95_addin0, kat95_addin1, kat95_retbits
+};
+static const struct drbg_kat kat95 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat95_t
+};
+
+static const unsigned char kat96_entropyin[] = {
+ 0xa6, 0xae, 0xf8, 0x0f, 0xab, 0x61, 0xe2, 0x7e, 0xf6, 0x11, 0xb8, 0x6f,
+ 0x92, 0x4e, 0x97, 0x6c,
+};
+static const unsigned char kat96_nonce[] = {
+ 0x74, 0x27, 0x8f, 0x50, 0x23, 0xc2, 0x55, 0x2c,
+};
+static const unsigned char kat96_persstr[] = {
+ 0xa3, 0x85, 0x16, 0x79, 0xe1, 0x12, 0x94, 0x82, 0x01, 0x39, 0x6d, 0x98,
+ 0xd6, 0xbe, 0x5c, 0x13,
+};
+static const unsigned char kat96_addin0[] = {0};
+static const unsigned char kat96_addin1[] = {0};
+static const unsigned char kat96_retbits[] = {
+ 0x68, 0x57, 0x26, 0x82, 0x7f, 0x3d, 0x38, 0x42, 0x7d, 0x07, 0xdf, 0xcf,
+ 0xb6, 0x4a, 0x7f, 0x95, 0xb6, 0xf0, 0x6e, 0xf0, 0x1c, 0xed, 0x28, 0x1d,
+ 0xce, 0x7f, 0x41, 0x30, 0x34, 0x12, 0x36, 0x11, 0x24, 0x36, 0x2b, 0xa5,
+ 0x1c, 0xe8, 0xd2, 0x55, 0x2a, 0xf0, 0x54, 0xa2, 0x0f, 0xda, 0xc9, 0x4e,
+ 0x51, 0x69, 0x16, 0x5b, 0x71, 0x52, 0x67, 0x63, 0x8c, 0x1e, 0x0b, 0x9b,
+ 0x34, 0x52, 0xb5, 0xb7,
+};
+static const struct drbg_kat_no_reseed kat96_t = {
+ 5, kat96_entropyin, kat96_nonce, kat96_persstr,
+ kat96_addin0, kat96_addin1, kat96_retbits
+};
+static const struct drbg_kat kat96 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat96_t
+};
+
+static const unsigned char kat97_entropyin[] = {
+ 0x01, 0x64, 0xae, 0x53, 0xe5, 0x33, 0xf2, 0xf1, 0x22, 0x2d, 0x4a, 0xa2,
+ 0x72, 0x76, 0x81, 0x4c,
+};
+static const unsigned char kat97_nonce[] = {
+ 0x26, 0x05, 0xf5, 0x89, 0xcb, 0x1b, 0xea, 0x9c,
+};
+static const unsigned char kat97_persstr[] = {
+ 0x9d, 0xe7, 0x03, 0xa5, 0xe2, 0xbb, 0xf2, 0xe5, 0x3d, 0x0f, 0xe3, 0xb5,
+ 0x73, 0xf5, 0x2a, 0xcf,
+};
+static const unsigned char kat97_addin0[] = {0};
+static const unsigned char kat97_addin1[] = {0};
+static const unsigned char kat97_retbits[] = {
+ 0xfd, 0x7f, 0x64, 0x62, 0x2e, 0x87, 0xde, 0x3b, 0x66, 0xe1, 0x99, 0x30,
+ 0xcf, 0x4c, 0xcd, 0xc3, 0xe6, 0x72, 0xf5, 0xa4, 0xde, 0xf0, 0xda, 0xdd,
+ 0xb3, 0x71, 0x07, 0x43, 0x0e, 0xc7, 0xf6, 0x91, 0xc6, 0x32, 0x15, 0x45,
+ 0x10, 0x3c, 0x2a, 0x61, 0x4d, 0x7f, 0x0f, 0x33, 0x17, 0x3b, 0xde, 0xc4,
+ 0x20, 0x58, 0x58, 0x22, 0xcd, 0xa8, 0xc2, 0x72, 0x20, 0x19, 0x22, 0xb6,
+ 0x02, 0xf5, 0xd8, 0xa7,
+};
+static const struct drbg_kat_no_reseed kat97_t = {
+ 6, kat97_entropyin, kat97_nonce, kat97_persstr,
+ kat97_addin0, kat97_addin1, kat97_retbits
+};
+static const struct drbg_kat kat97 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat97_t
+};
+
+static const unsigned char kat98_entropyin[] = {
+ 0x29, 0xdc, 0x8b, 0xad, 0x50, 0x0c, 0xce, 0x29, 0x5b, 0x9e, 0x86, 0xb2,
+ 0x15, 0x9c, 0x6d, 0xcd,
+};
+static const unsigned char kat98_nonce[] = {
+ 0xb6, 0x9a, 0x5a, 0x77, 0x69, 0x4f, 0xc4, 0xa0,
+};
+static const unsigned char kat98_persstr[] = {
+ 0xc5, 0x3b, 0x13, 0xaf, 0xbf, 0x21, 0xf1, 0x7e, 0xe9, 0xf4, 0xdd, 0x7c,
+ 0x09, 0x93, 0xe0, 0xf9,
+};
+static const unsigned char kat98_addin0[] = {0};
+static const unsigned char kat98_addin1[] = {0};
+static const unsigned char kat98_retbits[] = {
+ 0x08, 0xc9, 0x7d, 0x63, 0x8b, 0x5d, 0x82, 0x59, 0x93, 0x10, 0x32, 0x5d,
+ 0x3b, 0x1e, 0x63, 0x27, 0x74, 0x1c, 0xd9, 0x18, 0x87, 0xd6, 0x58, 0xb5,
+ 0xd8, 0x15, 0xee, 0xed, 0x7a, 0x72, 0xab, 0x86, 0xe2, 0xfa, 0x17, 0xe9,
+ 0xd0, 0x13, 0xe1, 0x7a, 0x92, 0x14, 0xd6, 0x39, 0x6a, 0xc1, 0x48, 0x1f,
+ 0x76, 0x88, 0x30, 0xa4, 0xd8, 0xc4, 0xfc, 0x39, 0x20, 0x12, 0xe9, 0x07,
+ 0x64, 0x34, 0x93, 0x9f,
+};
+static const struct drbg_kat_no_reseed kat98_t = {
+ 7, kat98_entropyin, kat98_nonce, kat98_persstr,
+ kat98_addin0, kat98_addin1, kat98_retbits
+};
+static const struct drbg_kat kat98 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat98_t
+};
+
+static const unsigned char kat99_entropyin[] = {
+ 0xb3, 0xae, 0xe2, 0xcf, 0x80, 0xe3, 0xd0, 0x5a, 0xed, 0xa0, 0xe0, 0x1c,
+ 0xf6, 0x5e, 0xa9, 0x65,
+};
+static const unsigned char kat99_nonce[] = {
+ 0x24, 0xb5, 0x8b, 0x7c, 0x6a, 0x99, 0xeb, 0x2a,
+};
+static const unsigned char kat99_persstr[] = {
+ 0x73, 0x44, 0x04, 0x3c, 0x84, 0x91, 0x5b, 0xcd, 0xd6, 0xd8, 0x1f, 0x3f,
+ 0xe2, 0x3b, 0xa2, 0x73,
+};
+static const unsigned char kat99_addin0[] = {0};
+static const unsigned char kat99_addin1[] = {0};
+static const unsigned char kat99_retbits[] = {
+ 0xbe, 0x35, 0x3c, 0xf8, 0x32, 0xe8, 0x46, 0x44, 0x4a, 0xf0, 0x01, 0x5e,
+ 0xd0, 0x5d, 0x54, 0xb7, 0x2c, 0x9a, 0x1a, 0x02, 0x31, 0xf2, 0xa4, 0xc4,
+ 0x75, 0x61, 0x17, 0x46, 0xef, 0x86, 0x10, 0x29, 0xe1, 0x88, 0x42, 0xc1,
+ 0xb7, 0x61, 0x48, 0xd2, 0xa3, 0xeb, 0x01, 0x74, 0xa3, 0x0c, 0xad, 0x81,
+ 0xb5, 0x58, 0xd0, 0xd1, 0xe0, 0x1a, 0x8c, 0x7d, 0xd5, 0x10, 0xf0, 0xb5,
+ 0x6f, 0x1f, 0xdd, 0xc3,
+};
+static const struct drbg_kat_no_reseed kat99_t = {
+ 8, kat99_entropyin, kat99_nonce, kat99_persstr,
+ kat99_addin0, kat99_addin1, kat99_retbits
+};
+static const struct drbg_kat kat99 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat99_t
+};
+
+static const unsigned char kat100_entropyin[] = {
+ 0xa5, 0x25, 0xf6, 0x91, 0x65, 0xc4, 0x4f, 0x3a, 0x8a, 0xf8, 0x08, 0x57,
+ 0xa5, 0xe8, 0x74, 0xb0,
+};
+static const unsigned char kat100_nonce[] = {
+ 0x0c, 0x80, 0x6a, 0x40, 0xc1, 0xdc, 0xb7, 0xcc,
+};
+static const unsigned char kat100_persstr[] = {
+ 0x43, 0x12, 0xc2, 0x30, 0x9a, 0x1d, 0xfe, 0x2d, 0x9a, 0x66, 0xf5, 0xc1,
+ 0x8f, 0xc4, 0x0b, 0x87,
+};
+static const unsigned char kat100_addin0[] = {0};
+static const unsigned char kat100_addin1[] = {0};
+static const unsigned char kat100_retbits[] = {
+ 0xd0, 0xb4, 0x6f, 0x7e, 0x18, 0x77, 0xdb, 0x24, 0x4f, 0xf4, 0xe0, 0xae,
+ 0xb6, 0x4c, 0x4e, 0xfa, 0x3e, 0x8c, 0x2a, 0x86, 0x62, 0x41, 0x5c, 0xf5,
+ 0xba, 0x67, 0xf2, 0xdc, 0x91, 0xe8, 0x23, 0x10, 0xa6, 0xa9, 0x33, 0xc4,
+ 0xdf, 0x6a, 0x40, 0x2f, 0x8f, 0xae, 0x27, 0x0b, 0x22, 0x9b, 0xf2, 0x54,
+ 0xcd, 0x35, 0x94, 0x3a, 0x13, 0x34, 0x09, 0x79, 0x37, 0x66, 0x69, 0x11,
+ 0x9e, 0x0e, 0x5c, 0xf8,
+};
+static const struct drbg_kat_no_reseed kat100_t = {
+ 9, kat100_entropyin, kat100_nonce, kat100_persstr,
+ kat100_addin0, kat100_addin1, kat100_retbits
+};
+static const struct drbg_kat kat100 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat100_t
+};
+
+static const unsigned char kat101_entropyin[] = {
+ 0x06, 0x08, 0xdc, 0x6c, 0x8f, 0x9f, 0x19, 0x56, 0xfb, 0xe7, 0xd5, 0xa7,
+ 0xc8, 0x2f, 0xd3, 0xb3,
+};
+static const unsigned char kat101_nonce[] = {
+ 0x61, 0x5b, 0x62, 0xa0, 0x0d, 0x6d, 0x8d, 0x85,
+};
+static const unsigned char kat101_persstr[] = {
+ 0x70, 0xdd, 0x43, 0xc1, 0x76, 0x43, 0x18, 0x17, 0x4a, 0x28, 0x57, 0xc4,
+ 0x20, 0xdd, 0xf4, 0x07,
+};
+static const unsigned char kat101_addin0[] = {0};
+static const unsigned char kat101_addin1[] = {0};
+static const unsigned char kat101_retbits[] = {
+ 0x71, 0xf4, 0xb5, 0xdf, 0x5b, 0xfa, 0x5f, 0xd5, 0x2c, 0xdc, 0x98, 0x51,
+ 0xa6, 0x33, 0xf7, 0x7e, 0xd9, 0x04, 0x58, 0xb5, 0xa2, 0x90, 0xb0, 0x4d,
+ 0x2f, 0x35, 0x13, 0x0d, 0x67, 0xa4, 0x2c, 0x16, 0x98, 0xac, 0x5f, 0x9b,
+ 0x13, 0x9a, 0x9e, 0xcf, 0x35, 0x90, 0x75, 0x5a, 0x20, 0x41, 0x60, 0xa3,
+ 0xa8, 0xf1, 0x7b, 0x77, 0x72, 0x66, 0x52, 0xc6, 0xdc, 0x6e, 0x9f, 0x00,
+ 0x96, 0x64, 0x54, 0xfd,
+};
+static const struct drbg_kat_no_reseed kat101_t = {
+ 10, kat101_entropyin, kat101_nonce, kat101_persstr,
+ kat101_addin0, kat101_addin1, kat101_retbits
+};
+static const struct drbg_kat kat101 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat101_t
+};
+
+static const unsigned char kat102_entropyin[] = {
+ 0x7b, 0x39, 0x1f, 0x35, 0xdb, 0x0e, 0x53, 0xbf, 0x48, 0xee, 0x55, 0x76,
+ 0xb0, 0x23, 0xff, 0x90,
+};
+static const unsigned char kat102_nonce[] = {
+ 0x76, 0x21, 0xaa, 0xd5, 0x32, 0x98, 0x2b, 0x23,
+};
+static const unsigned char kat102_persstr[] = {
+ 0xa6, 0xe7, 0x57, 0x78, 0xb7, 0x77, 0xd0, 0x1f, 0x00, 0x62, 0x27, 0xc4,
+ 0x00, 0xd8, 0xff, 0x86,
+};
+static const unsigned char kat102_addin0[] = {0};
+static const unsigned char kat102_addin1[] = {0};
+static const unsigned char kat102_retbits[] = {
+ 0xd6, 0x17, 0x80, 0xb5, 0xc7, 0x81, 0x41, 0x2b, 0xf3, 0x08, 0x5e, 0xec,
+ 0xce, 0xe4, 0x9b, 0x99, 0x35, 0x8a, 0x18, 0x32, 0x23, 0x82, 0x8c, 0x1d,
+ 0x80, 0x13, 0xac, 0xe6, 0x13, 0xd8, 0x9a, 0x45, 0x04, 0xd7, 0x5b, 0xa3,
+ 0x09, 0xe5, 0x10, 0x58, 0x9a, 0x53, 0xb4, 0x72, 0xbd, 0x5f, 0xa1, 0xee,
+ 0x2a, 0x22, 0x39, 0x2b, 0x82, 0x65, 0x70, 0x7c, 0x15, 0xe3, 0x29, 0x35,
+ 0xbc, 0x8e, 0xfb, 0x4e,
+};
+static const struct drbg_kat_no_reseed kat102_t = {
+ 11, kat102_entropyin, kat102_nonce, kat102_persstr,
+ kat102_addin0, kat102_addin1, kat102_retbits
+};
+static const struct drbg_kat kat102 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat102_t
+};
+
+static const unsigned char kat103_entropyin[] = {
+ 0x09, 0x9f, 0x1f, 0x59, 0x17, 0x07, 0xd1, 0xf9, 0xab, 0xae, 0x7e, 0x2b,
+ 0x65, 0xad, 0xab, 0xc3,
+};
+static const unsigned char kat103_nonce[] = {
+ 0xf9, 0x0d, 0x35, 0x7a, 0x90, 0x1f, 0x11, 0x35,
+};
+static const unsigned char kat103_persstr[] = {
+ 0x74, 0xb8, 0x26, 0x0c, 0xed, 0x4b, 0xbb, 0x80, 0x41, 0x77, 0x92, 0xf1,
+ 0x93, 0xc6, 0xf9, 0xac,
+};
+static const unsigned char kat103_addin0[] = {0};
+static const unsigned char kat103_addin1[] = {0};
+static const unsigned char kat103_retbits[] = {
+ 0x86, 0xf5, 0x06, 0x25, 0x6d, 0x29, 0x45, 0x0f, 0x16, 0x07, 0x31, 0x27,
+ 0x39, 0xe5, 0xa0, 0x89, 0xb6, 0xb7, 0x86, 0xfd, 0xf5, 0x21, 0x45, 0x76,
+ 0x9c, 0xb7, 0x0e, 0xf4, 0xee, 0xd3, 0x21, 0x09, 0xcf, 0x62, 0x36, 0x9d,
+ 0x7a, 0x76, 0x59, 0x55, 0x78, 0x1e, 0xae, 0x63, 0x52, 0x02, 0x75, 0x16,
+ 0x93, 0x68, 0x25, 0x7c, 0x6d, 0x34, 0x8e, 0xcc, 0x90, 0x0a, 0x38, 0x98,
+ 0x77, 0x8d, 0x9a, 0x1a,
+};
+static const struct drbg_kat_no_reseed kat103_t = {
+ 12, kat103_entropyin, kat103_nonce, kat103_persstr,
+ kat103_addin0, kat103_addin1, kat103_retbits
+};
+static const struct drbg_kat kat103 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat103_t
+};
+
+static const unsigned char kat104_entropyin[] = {
+ 0xc9, 0x05, 0x9d, 0x7c, 0x01, 0x5c, 0x64, 0xf6, 0xe4, 0x1a, 0xa4, 0x92,
+ 0x09, 0x9f, 0x4e, 0xf0,
+};
+static const unsigned char kat104_nonce[] = {
+ 0x3f, 0x6e, 0x07, 0x69, 0xce, 0xe1, 0x77, 0xc6,
+};
+static const unsigned char kat104_persstr[] = {
+ 0x76, 0xc6, 0xc6, 0x61, 0x32, 0x98, 0xd9, 0x25, 0xa6, 0xc5, 0x07, 0xae,
+ 0x65, 0x4d, 0x6d, 0x9a,
+};
+static const unsigned char kat104_addin0[] = {0};
+static const unsigned char kat104_addin1[] = {0};
+static const unsigned char kat104_retbits[] = {
+ 0x23, 0x81, 0x11, 0xc0, 0x06, 0xe5, 0x14, 0xc0, 0x5f, 0x2a, 0xe9, 0x35,
+ 0xa3, 0x2d, 0xba, 0xa0, 0xb1, 0x28, 0xda, 0xa0, 0x73, 0x6e, 0x83, 0xd9,
+ 0x34, 0x03, 0x77, 0x6c, 0x91, 0xe4, 0x77, 0xd0, 0xd0, 0x2c, 0x4a, 0x24,
+ 0x87, 0x6a, 0x23, 0x29, 0xa0, 0xf1, 0x06, 0x03, 0x8d, 0x70, 0x1f, 0xed,
+ 0xdf, 0x02, 0x47, 0xcc, 0x75, 0x84, 0x6d, 0xd3, 0x01, 0x08, 0x29, 0x9d,
+ 0x84, 0x0e, 0xc4, 0xa8,
+};
+static const struct drbg_kat_no_reseed kat104_t = {
+ 13, kat104_entropyin, kat104_nonce, kat104_persstr,
+ kat104_addin0, kat104_addin1, kat104_retbits
+};
+static const struct drbg_kat kat104 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat104_t
+};
+
+static const unsigned char kat105_entropyin[] = {
+ 0x98, 0xd1, 0x3c, 0x30, 0xa6, 0xda, 0xe2, 0xca, 0x76, 0xd7, 0xd6, 0x67,
+ 0x9f, 0x1f, 0xfb, 0xc4,
+};
+static const unsigned char kat105_nonce[] = {
+ 0x49, 0x0b, 0x93, 0x9e, 0xb5, 0x56, 0xff, 0x1b,
+};
+static const unsigned char kat105_persstr[] = {
+ 0x6c, 0x10, 0xa7, 0xc3, 0x0f, 0xb5, 0x34, 0xb5, 0x93, 0x4b, 0x1c, 0x29,
+ 0x80, 0x84, 0x94, 0xb9,
+};
+static const unsigned char kat105_addin0[] = {0};
+static const unsigned char kat105_addin1[] = {0};
+static const unsigned char kat105_retbits[] = {
+ 0xcb, 0x7d, 0xee, 0xea, 0x97, 0xbd, 0xb0, 0x3f, 0x72, 0xa0, 0x3b, 0x2d,
+ 0x9b, 0x5f, 0x1b, 0x33, 0x03, 0x44, 0x48, 0x6e, 0x53, 0xe0, 0x49, 0x27,
+ 0xc5, 0x8f, 0xb6, 0x3c, 0x97, 0x1a, 0xc9, 0x87, 0x33, 0xb0, 0x24, 0x9a,
+ 0x1e, 0xfa, 0x85, 0xf8, 0x8b, 0xec, 0x48, 0x18, 0xe1, 0x31, 0x10, 0x22,
+ 0x07, 0x76, 0xe4, 0xfd, 0xe4, 0x29, 0xe6, 0x39, 0x0a, 0xf4, 0x66, 0x71,
+ 0x29, 0x01, 0x18, 0x9b,
+};
+static const struct drbg_kat_no_reseed kat105_t = {
+ 14, kat105_entropyin, kat105_nonce, kat105_persstr,
+ kat105_addin0, kat105_addin1, kat105_retbits
+};
+static const struct drbg_kat kat105 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat105_t
+};
+
+static const unsigned char kat106_entropyin[] = {
+ 0x25, 0xad, 0x6e, 0x73, 0x05, 0x5e, 0xcb, 0xc9, 0x49, 0xf2, 0x91, 0xf0,
+ 0xf7, 0x97, 0xf1, 0x7a,
+};
+static const unsigned char kat106_nonce[] = {
+ 0x1f, 0x85, 0xa9, 0x2a, 0x46, 0x0a, 0x2e, 0xea,
+};
+static const unsigned char kat106_persstr[] = {
+ 0x83, 0xd0, 0x4b, 0x4b, 0x15, 0x91, 0xc7, 0xba, 0xc9, 0xbc, 0xa9, 0x07,
+ 0xbb, 0xe9, 0xdd, 0xd4,
+};
+static const unsigned char kat106_addin0[] = {
+ 0x52, 0x3c, 0x6c, 0xb0, 0xbc, 0x27, 0xd1, 0x9f, 0x8d, 0x2e, 0xbe, 0xf5,
+ 0x79, 0x26, 0xdd, 0xe4,
+};
+static const unsigned char kat106_addin1[] = {
+ 0xd3, 0x3c, 0xd1, 0x4b, 0x5b, 0x79, 0x37, 0x38, 0x8e, 0x89, 0xec, 0xc0,
+ 0x80, 0x63, 0x03, 0xf0,
+};
+static const unsigned char kat106_retbits[] = {
+ 0x23, 0xd9, 0x19, 0x5e, 0x40, 0x26, 0xed, 0xf0, 0x70, 0x88, 0xb8, 0x37,
+ 0x62, 0x75, 0x47, 0xa0, 0xea, 0x91, 0x37, 0xed, 0x03, 0x36, 0xd7, 0x69,
+ 0x60, 0x15, 0xdd, 0x6f, 0x29, 0x84, 0xde, 0xdb, 0x2a, 0x20, 0x7f, 0x2e,
+ 0xb8, 0xa2, 0x56, 0x60, 0xa5, 0xee, 0x78, 0x11, 0x78, 0x57, 0x9a, 0x0f,
+ 0x23, 0x3f, 0xb6, 0xf7, 0x26, 0x03, 0x58, 0xdb, 0xfd, 0x53, 0x25, 0xc3,
+ 0xf8, 0xc8, 0xfe, 0x33,
+};
+static const struct drbg_kat_no_reseed kat106_t = {
+ 0, kat106_entropyin, kat106_nonce, kat106_persstr,
+ kat106_addin0, kat106_addin1, kat106_retbits
+};
+static const struct drbg_kat kat106 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat106_t
+};
+
+static const unsigned char kat107_entropyin[] = {
+ 0xae, 0x33, 0x2f, 0x73, 0x39, 0x0e, 0x27, 0x75, 0x6b, 0xc9, 0x3d, 0x2b,
+ 0x95, 0x1b, 0x8b, 0x44,
+};
+static const unsigned char kat107_nonce[] = {
+ 0xe6, 0x9f, 0xc8, 0xa1, 0x64, 0x50, 0xfb, 0x6d,
+};
+static const unsigned char kat107_persstr[] = {
+ 0x5f, 0x76, 0x86, 0x3d, 0x3a, 0x20, 0x87, 0xe9, 0xcb, 0x90, 0xe1, 0x12,
+ 0xc1, 0x68, 0x06, 0xe2,
+};
+static const unsigned char kat107_addin0[] = {
+ 0xbf, 0x6a, 0x8e, 0x05, 0x6e, 0x6c, 0x3c, 0xc1, 0xa6, 0xcb, 0xdb, 0x6b,
+ 0x59, 0xeb, 0xea, 0xe2,
+};
+static const unsigned char kat107_addin1[] = {
+ 0xd8, 0x7a, 0xb9, 0x22, 0x4a, 0xa9, 0xcd, 0x9b, 0x5b, 0x84, 0x78, 0x35,
+ 0xcb, 0x0d, 0xaa, 0xc4,
+};
+static const unsigned char kat107_retbits[] = {
+ 0xe0, 0xa2, 0xdd, 0x56, 0x06, 0xa0, 0xa2, 0x61, 0x57, 0xf9, 0x21, 0x05,
+ 0x11, 0xbb, 0xde, 0x50, 0xc9, 0x2f, 0x34, 0xad, 0x92, 0x36, 0x3c, 0xb9,
+ 0x2a, 0x05, 0x20, 0x8b, 0x60, 0xb3, 0x3d, 0x21, 0xc3, 0xd6, 0xc0, 0xc6,
+ 0xef, 0x05, 0x4e, 0xc4, 0x09, 0xb4, 0x63, 0x0d, 0xea, 0xc4, 0xc6, 0xd1,
+ 0xad, 0x1b, 0x6b, 0xe7, 0x5f, 0xff, 0x27, 0xaa, 0x74, 0x94, 0x13, 0xc8,
+ 0xb6, 0x4c, 0xf3, 0xe1,
+};
+static const struct drbg_kat_no_reseed kat107_t = {
+ 1, kat107_entropyin, kat107_nonce, kat107_persstr,
+ kat107_addin0, kat107_addin1, kat107_retbits
+};
+static const struct drbg_kat kat107 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat107_t
+};
+
+static const unsigned char kat108_entropyin[] = {
+ 0xe1, 0xa5, 0x89, 0xaf, 0xab, 0x83, 0x91, 0x69, 0x2d, 0xba, 0x52, 0x31,
+ 0x8a, 0xa8, 0xdc, 0x0d,
+};
+static const unsigned char kat108_nonce[] = {
+ 0x22, 0xeb, 0xcf, 0x2e, 0x24, 0xa9, 0x55, 0x28,
+};
+static const unsigned char kat108_persstr[] = {
+ 0x82, 0xe8, 0xc3, 0x55, 0xdb, 0xc9, 0xcd, 0x4c, 0x8d, 0x52, 0xfa, 0x45,
+ 0x21, 0x18, 0xf9, 0xf8,
+};
+static const unsigned char kat108_addin0[] = {
+ 0xf7, 0x74, 0x57, 0xec, 0x32, 0xde, 0x66, 0x6f, 0x37, 0x0d, 0xa9, 0xe6,
+ 0xc2, 0x20, 0xc5, 0x80,
+};
+static const unsigned char kat108_addin1[] = {
+ 0xba, 0x25, 0xaa, 0x3a, 0xb3, 0xd5, 0x0a, 0x72, 0xb6, 0xc1, 0xb4, 0x3f,
+ 0x30, 0xdb, 0x44, 0x55,
+};
+static const unsigned char kat108_retbits[] = {
+ 0x88, 0x59, 0x55, 0xd1, 0x27, 0xfa, 0xf4, 0xc9, 0x21, 0xc4, 0xed, 0x3f,
+ 0x38, 0xbc, 0x15, 0x42, 0xb9, 0x5a, 0x87, 0x83, 0x4d, 0x4d, 0x73, 0xd1,
+ 0x56, 0x24, 0x00, 0xa6, 0xd3, 0xaa, 0x8e, 0x6c, 0x69, 0x7b, 0x71, 0x1d,
+ 0x91, 0x0e, 0xec, 0xeb, 0xc9, 0xca, 0x4e, 0xc2, 0xdc, 0x17, 0xe7, 0x98,
+ 0x93, 0xe7, 0xf7, 0x34, 0xc4, 0x56, 0x75, 0xde, 0x47, 0x7f, 0x55, 0x45,
+ 0xbd, 0x94, 0xcd, 0xee,
+};
+static const struct drbg_kat_no_reseed kat108_t = {
+ 2, kat108_entropyin, kat108_nonce, kat108_persstr,
+ kat108_addin0, kat108_addin1, kat108_retbits
+};
+static const struct drbg_kat kat108 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat108_t
+};
+
+static const unsigned char kat109_entropyin[] = {
+ 0x6f, 0xb7, 0x6f, 0xcd, 0x3d, 0x76, 0x2f, 0xa4, 0xc5, 0x0d, 0xe1, 0xf2,
+ 0x2e, 0x92, 0x76, 0x83,
+};
+static const unsigned char kat109_nonce[] = {
+ 0xa5, 0xee, 0xf1, 0x2f, 0x3b, 0x3c, 0x25, 0xa3,
+};
+static const unsigned char kat109_persstr[] = {
+ 0x54, 0x86, 0x7d, 0x7d, 0xc8, 0xce, 0xf5, 0x23, 0x42, 0xbb, 0xc0, 0x09,
+ 0x95, 0x4e, 0xfb, 0xf8,
+};
+static const unsigned char kat109_addin0[] = {
+ 0xfa, 0xc5, 0x52, 0xaa, 0x87, 0x96, 0xe8, 0x85, 0x8d, 0x55, 0xae, 0x37,
+ 0x1a, 0x0f, 0x54, 0x8f,
+};
+static const unsigned char kat109_addin1[] = {
+ 0xfe, 0xfb, 0xe9, 0xc8, 0x3c, 0x15, 0x9f, 0xcf, 0xa9, 0x2e, 0xe8, 0x18,
+ 0x76, 0x1d, 0x49, 0xdc,
+};
+static const unsigned char kat109_retbits[] = {
+ 0x09, 0x4f, 0x86, 0x3b, 0x88, 0xe2, 0xb5, 0x5e, 0xf4, 0x15, 0xd2, 0x68,
+ 0x82, 0x94, 0xc7, 0xd8, 0xd2, 0xd7, 0x76, 0xc1, 0x69, 0x16, 0x73, 0x91,
+ 0xdf, 0x36, 0xf8, 0x0a, 0xd8, 0xe9, 0x83, 0x3e, 0x97, 0x61, 0x6e, 0xf6,
+ 0xe0, 0xa4, 0x5f, 0x94, 0x0d, 0x66, 0x38, 0x30, 0x18, 0xae, 0xe8, 0x6a,
+ 0x48, 0x0a, 0x26, 0x51, 0xd6, 0xe2, 0xef, 0xad, 0x61, 0x5a, 0x05, 0x1f,
+ 0x0d, 0xca, 0x64, 0xae,
+};
+static const struct drbg_kat_no_reseed kat109_t = {
+ 3, kat109_entropyin, kat109_nonce, kat109_persstr,
+ kat109_addin0, kat109_addin1, kat109_retbits
+};
+static const struct drbg_kat kat109 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat109_t
+};
+
+static const unsigned char kat110_entropyin[] = {
+ 0x5b, 0x32, 0xa3, 0x92, 0xdc, 0x66, 0x5a, 0xb5, 0x8f, 0x25, 0x98, 0xea,
+ 0xb0, 0x7d, 0x8e, 0x53,
+};
+static const unsigned char kat110_nonce[] = {
+ 0xc6, 0xf6, 0x13, 0x10, 0x73, 0x88, 0x60, 0xf5,
+};
+static const unsigned char kat110_persstr[] = {
+ 0x9f, 0x30, 0x9a, 0x68, 0x53, 0x29, 0x82, 0x16, 0x92, 0xa9, 0x73, 0x00,
+ 0x62, 0x0c, 0x01, 0x56,
+};
+static const unsigned char kat110_addin0[] = {
+ 0x87, 0x5a, 0x4a, 0x43, 0xbd, 0xdf, 0x1a, 0x73, 0x05, 0x52, 0x6a, 0x48,
+ 0x8a, 0x1e, 0x0e, 0xb4,
+};
+static const unsigned char kat110_addin1[] = {
+ 0x21, 0x14, 0xa7, 0xcb, 0x15, 0x49, 0x0c, 0x06, 0x3b, 0xb4, 0x66, 0x8f,
+ 0x36, 0x9a, 0x3d, 0x8e,
+};
+static const unsigned char kat110_retbits[] = {
+ 0x91, 0xc1, 0xf1, 0x99, 0xf6, 0x71, 0xff, 0x56, 0x8e, 0x0e, 0xce, 0x46,
+ 0x08, 0x87, 0x65, 0x16, 0x23, 0x22, 0xa8, 0x21, 0x60, 0x66, 0xf9, 0xa4,
+ 0x15, 0xd7, 0xcc, 0xd9, 0xdf, 0xe7, 0x23, 0xc5, 0x21, 0xf5, 0x7d, 0xbd,
+ 0x84, 0x69, 0xe3, 0x9b, 0xac, 0xda, 0xc3, 0x1e, 0x74, 0x2a, 0x2d, 0x2f,
+ 0xf2, 0xa3, 0x1d, 0x5a, 0x15, 0xa0, 0x1b, 0xfd, 0x32, 0xbe, 0x50, 0x28,
+ 0x6c, 0x73, 0x0e, 0xad,
+};
+static const struct drbg_kat_no_reseed kat110_t = {
+ 4, kat110_entropyin, kat110_nonce, kat110_persstr,
+ kat110_addin0, kat110_addin1, kat110_retbits
+};
+static const struct drbg_kat kat110 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat110_t
+};
+
+static const unsigned char kat111_entropyin[] = {
+ 0x79, 0x95, 0x7c, 0x33, 0xe4, 0x5b, 0xba, 0x1c, 0x8a, 0xe6, 0x90, 0x29,
+ 0x07, 0x7a, 0xe3, 0x6b,
+};
+static const unsigned char kat111_nonce[] = {
+ 0x5b, 0x49, 0xd8, 0xe7, 0xc1, 0x80, 0xbc, 0xb6,
+};
+static const unsigned char kat111_persstr[] = {
+ 0x2a, 0xa8, 0xe7, 0x7b, 0x94, 0xfe, 0x0d, 0xdf, 0x0e, 0x57, 0x30, 0x2c,
+ 0x8e, 0xbd, 0xc2, 0x2a,
+};
+static const unsigned char kat111_addin0[] = {
+ 0x14, 0x84, 0x4d, 0x85, 0xe5, 0x0c, 0xb1, 0xfc, 0xb4, 0xe6, 0x88, 0x7b,
+ 0x3f, 0xc6, 0x7f, 0x54,
+};
+static const unsigned char kat111_addin1[] = {
+ 0x4c, 0x7c, 0xb0, 0x69, 0x29, 0x7c, 0x18, 0x65, 0x33, 0x94, 0xb8, 0x2b,
+ 0xe6, 0xa9, 0x30, 0x99,
+};
+static const unsigned char kat111_retbits[] = {
+ 0x06, 0x61, 0xe2, 0x41, 0x6e, 0x71, 0xfe, 0x49, 0x11, 0x9f, 0x96, 0x76,
+ 0x42, 0xfd, 0x37, 0xdd, 0xb5, 0x82, 0xa1, 0x89, 0xa8, 0x88, 0xe7, 0xd4,
+ 0xa2, 0xaa, 0x56, 0x27, 0x51, 0x94, 0xc8, 0xca, 0x69, 0x8f, 0xb2, 0xd6,
+ 0x96, 0x83, 0x4b, 0x88, 0xb5, 0x72, 0xf0, 0xfd, 0xf5, 0xba, 0xdb, 0x6b,
+ 0xf5, 0x8d, 0x16, 0x12, 0xd2, 0x5f, 0x5e, 0xe3, 0xf6, 0x2d, 0x33, 0xdb,
+ 0x9a, 0x86, 0xb0, 0x87,
+};
+static const struct drbg_kat_no_reseed kat111_t = {
+ 5, kat111_entropyin, kat111_nonce, kat111_persstr,
+ kat111_addin0, kat111_addin1, kat111_retbits
+};
+static const struct drbg_kat kat111 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat111_t
+};
+
+static const unsigned char kat112_entropyin[] = {
+ 0x70, 0x50, 0x89, 0x80, 0x36, 0x2e, 0x96, 0x2a, 0xe7, 0x78, 0x45, 0x80,
+ 0x81, 0xcf, 0xbb, 0xe6,
+};
+static const unsigned char kat112_nonce[] = {
+ 0x29, 0xcc, 0xf6, 0xed, 0xba, 0x46, 0x2d, 0xc2,
+};
+static const unsigned char kat112_persstr[] = {
+ 0x48, 0xa3, 0xd8, 0xdb, 0xdc, 0x85, 0x18, 0x8a, 0xbb, 0x35, 0xb5, 0x6c,
+ 0x19, 0x4d, 0x60, 0x20,
+};
+static const unsigned char kat112_addin0[] = {
+ 0xa8, 0x14, 0x72, 0x42, 0xe2, 0x47, 0x37, 0xfc, 0xf3, 0xb0, 0x07, 0xd2,
+ 0x84, 0xd6, 0x61, 0xc4,
+};
+static const unsigned char kat112_addin1[] = {
+ 0x96, 0x4a, 0x9d, 0x06, 0x86, 0xd9, 0x61, 0x93, 0xfb, 0x2e, 0x4a, 0x35,
+ 0x14, 0x5e, 0xdc, 0xc8,
+};
+static const unsigned char kat112_retbits[] = {
+ 0xd8, 0x1b, 0xd5, 0xda, 0x60, 0xd9, 0x9d, 0x6d, 0xaa, 0xec, 0xeb, 0xc0,
+ 0x60, 0x65, 0x26, 0x33, 0xec, 0x14, 0xdc, 0x3b, 0x84, 0x69, 0x3b, 0xdf,
+ 0xf7, 0x67, 0x77, 0x1f, 0x03, 0x2b, 0xfa, 0x2e, 0x4d, 0xfa, 0xd5, 0x3e,
+ 0xf6, 0xd1, 0x99, 0x10, 0xbd, 0x92, 0x5d, 0xf1, 0x20, 0x9f, 0x33, 0xea,
+ 0x11, 0xe3, 0xf1, 0xe8, 0x37, 0xb0, 0x3e, 0x7a, 0x70, 0x03, 0x25, 0x7f,
+ 0xf4, 0x20, 0xa6, 0x92,
+};
+static const struct drbg_kat_no_reseed kat112_t = {
+ 6, kat112_entropyin, kat112_nonce, kat112_persstr,
+ kat112_addin0, kat112_addin1, kat112_retbits
+};
+static const struct drbg_kat kat112 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat112_t
+};
+
+static const unsigned char kat113_entropyin[] = {
+ 0xb7, 0x83, 0x71, 0xba, 0xf5, 0x86, 0xc0, 0xdd, 0x05, 0x4b, 0xfd, 0x29,
+ 0x3f, 0xc7, 0xe8, 0xdc,
+};
+static const unsigned char kat113_nonce[] = {
+ 0x11, 0x9b, 0x23, 0x2c, 0xe4, 0xca, 0xda, 0x97,
+};
+static const unsigned char kat113_persstr[] = {
+ 0x3a, 0x58, 0x75, 0xb4, 0x43, 0x07, 0x3c, 0x9b, 0xf6, 0x4a, 0x0a, 0xaa,
+ 0xf2, 0x6b, 0xa4, 0x4f,
+};
+static const unsigned char kat113_addin0[] = {
+ 0x4d, 0x2d, 0x4f, 0x16, 0xb7, 0xb7, 0xd2, 0xd2, 0xbb, 0x4d, 0x83, 0xa4,
+ 0x92, 0x99, 0x96, 0xb2,
+};
+static const unsigned char kat113_addin1[] = {
+ 0x7d, 0x31, 0x73, 0xe0, 0x8a, 0xea, 0x4c, 0x8b, 0x6e, 0xf9, 0xe3, 0xcd,
+ 0x69, 0x8f, 0x9b, 0x09,
+};
+static const unsigned char kat113_retbits[] = {
+ 0xbb, 0x04, 0x86, 0x41, 0xf0, 0x36, 0xdc, 0x11, 0xb8, 0xdf, 0x8a, 0xd3,
+ 0xe4, 0xd5, 0xbd, 0xfc, 0x30, 0x9b, 0x2c, 0x3f, 0x22, 0xb3, 0xd2, 0xb8,
+ 0xac, 0xf1, 0x96, 0xd5, 0x0c, 0xd5, 0x42, 0xde, 0x13, 0xcd, 0x99, 0x97,
+ 0x8a, 0x92, 0x0a, 0xcb, 0xa6, 0x1d, 0xc0, 0x7c, 0x64, 0x6b, 0x48, 0x09,
+ 0x44, 0x79, 0xbb, 0x44, 0x17, 0xd8, 0x40, 0x9a, 0xba, 0xe3, 0xd6, 0x9e,
+ 0xd5, 0x2a, 0x2a, 0x3e,
+};
+static const struct drbg_kat_no_reseed kat113_t = {
+ 7, kat113_entropyin, kat113_nonce, kat113_persstr,
+ kat113_addin0, kat113_addin1, kat113_retbits
+};
+static const struct drbg_kat kat113 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat113_t
+};
+
+static const unsigned char kat114_entropyin[] = {
+ 0x96, 0xbf, 0xc3, 0x47, 0xb3, 0x06, 0x80, 0x5a, 0xf8, 0x8d, 0xa0, 0x07,
+ 0x67, 0x5d, 0xb4, 0x7c,
+};
+static const unsigned char kat114_nonce[] = {
+ 0x12, 0x95, 0x37, 0x06, 0xa0, 0x6e, 0xb5, 0x30,
+};
+static const unsigned char kat114_persstr[] = {
+ 0x46, 0x73, 0x3d, 0xdd, 0xaf, 0x70, 0xe3, 0xf2, 0x07, 0x5c, 0xb8, 0x70,
+ 0xf4, 0x7e, 0x72, 0xdf,
+};
+static const unsigned char kat114_addin0[] = {
+ 0x64, 0xf7, 0x9a, 0xd1, 0xdf, 0xa3, 0x93, 0xd3, 0x6b, 0xf5, 0xbe, 0x83,
+ 0x32, 0x90, 0xb6, 0x94,
+};
+static const unsigned char kat114_addin1[] = {
+ 0x5d, 0x21, 0x0f, 0x12, 0x85, 0xf0, 0xfb, 0x03, 0x8a, 0x75, 0x34, 0x76,
+ 0xef, 0x24, 0x91, 0x79,
+};
+static const unsigned char kat114_retbits[] = {
+ 0x67, 0xb6, 0x9b, 0xa4, 0x34, 0x90, 0x3e, 0x2b, 0xbf, 0x46, 0xd3, 0xf5,
+ 0xe3, 0x00, 0xb9, 0xe5, 0xcf, 0x33, 0x01, 0xbe, 0xaa, 0xb7, 0xd3, 0x0b,
+ 0x46, 0x52, 0xed, 0x3b, 0xf6, 0x62, 0x65, 0x79, 0x50, 0x3a, 0x54, 0x4e,
+ 0x58, 0x23, 0x7c, 0x5e, 0x55, 0x1a, 0xd5, 0xee, 0x17, 0xb7, 0x36, 0x12,
+ 0x0c, 0x37, 0xa3, 0x02, 0x9b, 0xd7, 0xa1, 0x03, 0x4d, 0x4c, 0x49, 0xf6,
+ 0x1e, 0x04, 0x0a, 0xca,
+};
+static const struct drbg_kat_no_reseed kat114_t = {
+ 8, kat114_entropyin, kat114_nonce, kat114_persstr,
+ kat114_addin0, kat114_addin1, kat114_retbits
+};
+static const struct drbg_kat kat114 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat114_t
+};
+
+static const unsigned char kat115_entropyin[] = {
+ 0x9a, 0x4c, 0x8b, 0x46, 0xa9, 0x74, 0xfb, 0xc8, 0x5e, 0x25, 0x6d, 0x1f,
+ 0x07, 0xcc, 0x59, 0xaa,
+};
+static const unsigned char kat115_nonce[] = {
+ 0xeb, 0x8d, 0x66, 0x21, 0x02, 0x09, 0x01, 0x14,
+};
+static const unsigned char kat115_persstr[] = {
+ 0xb9, 0x4b, 0x8d, 0x2a, 0x64, 0x92, 0x66, 0x64, 0x5a, 0x71, 0x5a, 0xfc,
+ 0xa0, 0x99, 0x5d, 0x9d,
+};
+static const unsigned char kat115_addin0[] = {
+ 0xf3, 0x36, 0xe1, 0xd6, 0x2a, 0xc5, 0x68, 0xed, 0x13, 0x2e, 0xa0, 0x18,
+ 0x15, 0xda, 0xd5, 0x08,
+};
+static const unsigned char kat115_addin1[] = {
+ 0x66, 0x76, 0x26, 0xa2, 0x3d, 0x23, 0xb7, 0x16, 0x5a, 0x6a, 0x88, 0x5d,
+ 0x41, 0xfa, 0x90, 0x1c,
+};
+static const unsigned char kat115_retbits[] = {
+ 0x2d, 0xf3, 0x3f, 0x7a, 0xd2, 0xc2, 0xd8, 0x6e, 0x61, 0x63, 0x3c, 0x25,
+ 0xa8, 0xac, 0x57, 0xb5, 0xde, 0xad, 0x88, 0x02, 0x1c, 0x93, 0xad, 0x69,
+ 0xba, 0x6c, 0x52, 0x27, 0x99, 0xc4, 0xbe, 0xbf, 0xda, 0x78, 0x27, 0x72,
+ 0xc8, 0x1e, 0x7e, 0x02, 0xd8, 0xb8, 0x82, 0x54, 0x6b, 0x24, 0x2b, 0xb2,
+ 0x2f, 0x31, 0x05, 0x65, 0xba, 0xc3, 0x16, 0x26, 0x9f, 0xfc, 0x80, 0x04,
+ 0xd5, 0x44, 0x06, 0x31,
+};
+static const struct drbg_kat_no_reseed kat115_t = {
+ 9, kat115_entropyin, kat115_nonce, kat115_persstr,
+ kat115_addin0, kat115_addin1, kat115_retbits
+};
+static const struct drbg_kat kat115 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat115_t
+};
+
+static const unsigned char kat116_entropyin[] = {
+ 0xc7, 0xd6, 0x55, 0x75, 0x65, 0xa1, 0xfd, 0xe4, 0x80, 0x84, 0x1f, 0x1f,
+ 0x1a, 0x10, 0xf6, 0x7d,
+};
+static const unsigned char kat116_nonce[] = {
+ 0x02, 0xf8, 0x47, 0x98, 0x66, 0x26, 0xbb, 0x4b,
+};
+static const unsigned char kat116_persstr[] = {
+ 0x61, 0x8c, 0xac, 0x99, 0x53, 0x17, 0x91, 0x67, 0x36, 0x03, 0xa1, 0x6b,
+ 0x99, 0xab, 0x0e, 0x80,
+};
+static const unsigned char kat116_addin0[] = {
+ 0x81, 0x0c, 0x8b, 0xe4, 0xb1, 0x80, 0x1f, 0xec, 0x75, 0x40, 0x63, 0xc2,
+ 0x61, 0x15, 0x66, 0x60,
+};
+static const unsigned char kat116_addin1[] = {
+ 0xe2, 0x59, 0x4d, 0x34, 0xce, 0x1a, 0xd6, 0x53, 0x51, 0x28, 0x60, 0x69,
+ 0xeb, 0x1a, 0x63, 0x08,
+};
+static const unsigned char kat116_retbits[] = {
+ 0xa3, 0xc4, 0xd0, 0x2d, 0xa0, 0x16, 0x6f, 0xef, 0x32, 0xce, 0x69, 0x97,
+ 0x5d, 0xb9, 0x4d, 0x19, 0x60, 0x44, 0xe8, 0x1f, 0x59, 0x04, 0x4d, 0x22,
+ 0xdf, 0x84, 0x05, 0xb4, 0x68, 0xeb, 0xd5, 0xa9, 0x29, 0x97, 0xfe, 0xeb,
+ 0xa8, 0x2d, 0x7a, 0xdf, 0x97, 0xcc, 0xbb, 0x1a, 0x59, 0x35, 0x56, 0x26,
+ 0xae, 0xfa, 0xe0, 0xd4, 0x35, 0xb4, 0x03, 0xb7, 0xde, 0xb9, 0x00, 0x5b,
+ 0x8f, 0x5e, 0xa9, 0xa5,
+};
+static const struct drbg_kat_no_reseed kat116_t = {
+ 10, kat116_entropyin, kat116_nonce, kat116_persstr,
+ kat116_addin0, kat116_addin1, kat116_retbits
+};
+static const struct drbg_kat kat116 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat116_t
+};
+
+static const unsigned char kat117_entropyin[] = {
+ 0x14, 0x0d, 0xbf, 0xf6, 0x3e, 0x70, 0x83, 0xc3, 0x08, 0x41, 0x9f, 0x86,
+ 0x4c, 0x09, 0x3e, 0x99,
+};
+static const unsigned char kat117_nonce[] = {
+ 0xeb, 0x1c, 0x66, 0x92, 0xdb, 0x94, 0x9d, 0x5a,
+};
+static const unsigned char kat117_persstr[] = {
+ 0x23, 0xd3, 0x27, 0x21, 0xf1, 0xc0, 0x3a, 0x90, 0xf3, 0x9e, 0xf0, 0x21,
+ 0xac, 0x88, 0x84, 0xc7,
+};
+static const unsigned char kat117_addin0[] = {
+ 0xc6, 0xe3, 0x80, 0x8d, 0xb9, 0xf9, 0xda, 0x14, 0x23, 0x9a, 0xd7, 0xd7,
+ 0x18, 0x28, 0x6a, 0x96,
+};
+static const unsigned char kat117_addin1[] = {
+ 0xa8, 0x4a, 0xaa, 0xdb, 0x7d, 0x57, 0x2a, 0x9a, 0xfc, 0xa3, 0xf7, 0x6c,
+ 0xed, 0xf0, 0xa4, 0xb9,
+};
+static const unsigned char kat117_retbits[] = {
+ 0x74, 0x3d, 0xf9, 0x7c, 0x2e, 0x99, 0xd9, 0x74, 0x07, 0x77, 0x72, 0xa6,
+ 0xfe, 0xa4, 0x03, 0x12, 0x8f, 0x41, 0xff, 0x32, 0xa9, 0x5f, 0xb4, 0xf8,
+ 0xb0, 0xec, 0xca, 0xa0, 0x57, 0x1c, 0xd2, 0x57, 0x8e, 0x48, 0x2c, 0xe7,
+ 0x09, 0x84, 0x99, 0xc4, 0xd3, 0x01, 0x5f, 0x91, 0x92, 0x35, 0x52, 0x38,
+ 0xc7, 0x0f, 0x8b, 0x76, 0xa5, 0x04, 0x27, 0x2a, 0x87, 0x09, 0xcd, 0x0e,
+ 0x2d, 0xc8, 0x2c, 0x9c,
+};
+static const struct drbg_kat_no_reseed kat117_t = {
+ 11, kat117_entropyin, kat117_nonce, kat117_persstr,
+ kat117_addin0, kat117_addin1, kat117_retbits
+};
+static const struct drbg_kat kat117 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat117_t
+};
+
+static const unsigned char kat118_entropyin[] = {
+ 0x6a, 0xf3, 0x96, 0x2f, 0xd6, 0xae, 0x84, 0xde, 0xc3, 0xf8, 0x94, 0xbf,
+ 0x39, 0xc6, 0x46, 0x42,
+};
+static const unsigned char kat118_nonce[] = {
+ 0xc0, 0x20, 0x49, 0x64, 0x61, 0xa3, 0x91, 0x61,
+};
+static const unsigned char kat118_persstr[] = {
+ 0x75, 0xca, 0xef, 0xe7, 0x75, 0x20, 0x45, 0xfc, 0xb1, 0xe5, 0xfc, 0x22,
+ 0x7f, 0xfb, 0x94, 0x0d,
+};
+static const unsigned char kat118_addin0[] = {
+ 0x16, 0x64, 0xf7, 0xcc, 0x88, 0xd0, 0x1d, 0x7f, 0x27, 0x86, 0x15, 0xc5,
+ 0x63, 0x09, 0x2f, 0xd6,
+};
+static const unsigned char kat118_addin1[] = {
+ 0x60, 0xb7, 0xa8, 0x6b, 0xc0, 0xc8, 0xdd, 0x2b, 0xd0, 0x7a, 0xda, 0xa4,
+ 0xd5, 0xc2, 0x4d, 0x68,
+};
+static const unsigned char kat118_retbits[] = {
+ 0xb4, 0xed, 0xc9, 0x65, 0x0d, 0x81, 0x47, 0x17, 0x0c, 0x81, 0x52, 0x9f,
+ 0x2f, 0xd7, 0x33, 0x11, 0x53, 0xa6, 0x1d, 0x0d, 0x58, 0xb7, 0x6b, 0x50,
+ 0xbb, 0x52, 0xda, 0x0a, 0x79, 0x51, 0x64, 0xbe, 0xeb, 0xc6, 0x09, 0x32,
+ 0x05, 0x20, 0x32, 0x8f, 0x3d, 0x4e, 0x83, 0xcd, 0x80, 0xd0, 0xb1, 0xcb,
+ 0xbb, 0xfd, 0x0a, 0x84, 0xa9, 0x65, 0x10, 0x88, 0x11, 0x01, 0xfb, 0xc7,
+ 0x40, 0xb2, 0x81, 0x7f,
+};
+static const struct drbg_kat_no_reseed kat118_t = {
+ 12, kat118_entropyin, kat118_nonce, kat118_persstr,
+ kat118_addin0, kat118_addin1, kat118_retbits
+};
+static const struct drbg_kat kat118 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat118_t
+};
+
+static const unsigned char kat119_entropyin[] = {
+ 0x36, 0xe2, 0x7a, 0xa6, 0xb3, 0x66, 0x99, 0xe9, 0x46, 0x45, 0x95, 0xa9,
+ 0x32, 0xcc, 0x92, 0x8e,
+};
+static const unsigned char kat119_nonce[] = {
+ 0x65, 0x16, 0xbb, 0x91, 0x85, 0x66, 0xbf, 0x89,
+};
+static const unsigned char kat119_persstr[] = {
+ 0x9b, 0xc6, 0x83, 0xa1, 0xf4, 0x65, 0xba, 0x0f, 0x2c, 0xe1, 0x8c, 0x8b,
+ 0x9c, 0x61, 0x42, 0x44,
+};
+static const unsigned char kat119_addin0[] = {
+ 0x0d, 0x17, 0x5b, 0x34, 0xd8, 0xb9, 0xe2, 0x70, 0x74, 0x5a, 0x71, 0xf3,
+ 0x5d, 0x41, 0x6f, 0x10,
+};
+static const unsigned char kat119_addin1[] = {
+ 0xa7, 0x90, 0xc8, 0x6f, 0xdf, 0x0c, 0xa8, 0x0e, 0xb3, 0xd6, 0xf7, 0x02,
+ 0x91, 0x6e, 0xa9, 0x9f,
+};
+static const unsigned char kat119_retbits[] = {
+ 0x34, 0xea, 0x96, 0x29, 0x62, 0x7f, 0x66, 0x84, 0xb9, 0xab, 0x85, 0xf8,
+ 0x16, 0x46, 0x86, 0x4d, 0xd8, 0xef, 0x3a, 0x15, 0xed, 0xc8, 0x01, 0xdc,
+ 0x39, 0xa7, 0x31, 0xdc, 0x9e, 0x80, 0xe6, 0x26, 0xfc, 0x8c, 0xe2, 0x1e,
+ 0x9b, 0x62, 0xe9, 0x48, 0x88, 0x64, 0x89, 0xd5, 0xe4, 0x43, 0x6e, 0x65,
+ 0x9f, 0x26, 0xbf, 0xb3, 0x43, 0x51, 0x04, 0xad, 0x9b, 0xfa, 0x0a, 0xaf,
+ 0xc5, 0x50, 0x69, 0x17,
+};
+static const struct drbg_kat_no_reseed kat119_t = {
+ 13, kat119_entropyin, kat119_nonce, kat119_persstr,
+ kat119_addin0, kat119_addin1, kat119_retbits
+};
+static const struct drbg_kat kat119 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat119_t
+};
+
+static const unsigned char kat120_entropyin[] = {
+ 0xac, 0xa3, 0x59, 0xf1, 0x07, 0xc3, 0x24, 0x64, 0x8a, 0xd4, 0x45, 0x56,
+ 0x4b, 0xfa, 0xe5, 0x6d,
+};
+static const unsigned char kat120_nonce[] = {
+ 0xf9, 0x5d, 0x1c, 0x8f, 0xd2, 0x66, 0xdf, 0x64,
+};
+static const unsigned char kat120_persstr[] = {
+ 0xa5, 0xcf, 0xdc, 0x76, 0xc4, 0xe8, 0x49, 0xe4, 0x5d, 0x8b, 0xcc, 0x68,
+ 0xee, 0xb0, 0x12, 0x84,
+};
+static const unsigned char kat120_addin0[] = {
+ 0x57, 0x80, 0x2c, 0xc0, 0x6e, 0xf0, 0x34, 0x4b, 0xd1, 0x4a, 0x48, 0x57,
+ 0xc6, 0x9f, 0x68, 0xd4,
+};
+static const unsigned char kat120_addin1[] = {
+ 0x53, 0x14, 0xfc, 0xcb, 0xe4, 0x52, 0x01, 0x8f, 0xc1, 0x6e, 0x5f, 0xfb,
+ 0x5d, 0x90, 0xe8, 0x88,
+};
+static const unsigned char kat120_retbits[] = {
+ 0x21, 0x1d, 0x90, 0xec, 0xd7, 0xd3, 0xdd, 0xd0, 0x3f, 0x91, 0xe8, 0xa6,
+ 0x74, 0x40, 0x0f, 0xb1, 0x8d, 0x3f, 0xb3, 0x98, 0x86, 0xa2, 0x26, 0x2f,
+ 0x0e, 0x09, 0xff, 0x07, 0x5f, 0x99, 0x8d, 0x21, 0x74, 0x19, 0xf2, 0xe9,
+ 0x35, 0x3d, 0x45, 0xb9, 0xdf, 0x10, 0x72, 0x3e, 0xba, 0xeb, 0xcf, 0xf1,
+ 0xaa, 0x80, 0x24, 0xd9, 0xb0, 0x96, 0x06, 0x4d, 0x6f, 0x31, 0x83, 0x5b,
+ 0x75, 0xf8, 0xea, 0xa6,
+};
+static const struct drbg_kat_no_reseed kat120_t = {
+ 14, kat120_entropyin, kat120_nonce, kat120_persstr,
+ kat120_addin0, kat120_addin1, kat120_retbits
+};
+static const struct drbg_kat kat120 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat120_t
+};
+
+static const unsigned char kat121_entropyin[] = {
+ 0x2e, 0x17, 0x24, 0xdb, 0x48, 0x22, 0x32, 0xa3, 0xe6, 0x1f, 0x92, 0xc1,
+ 0xc2, 0x66, 0xfa, 0xf8,
+};
+static const unsigned char kat121_nonce[] = {
+ 0x38, 0xaa, 0x55, 0x90, 0xf6, 0xbf, 0xaa, 0x4b,
+};
+static const unsigned char kat121_persstr[] = {0};
+static const unsigned char kat121_addin0[] = {0};
+static const unsigned char kat121_addin1[] = {0};
+static const unsigned char kat121_retbits[] = {
+ 0x44, 0x38, 0xb4, 0x8a, 0x45, 0xfb, 0x01, 0x41, 0xe3, 0x1f, 0x0a, 0x96,
+ 0x24, 0xdf, 0xe6, 0xfc, 0xc2, 0xf9, 0xed, 0xc0, 0x75, 0xc0, 0xa5, 0x2b,
+ 0xc5, 0xfc, 0x46, 0xd8, 0x5a, 0x96, 0x6c, 0x85, 0x3f, 0xee, 0xe6, 0xaf,
+ 0x91, 0x32, 0x34, 0xb3, 0xf9, 0xa6, 0x79, 0xf6, 0x67, 0x89, 0x8d, 0xc1,
+ 0x5a, 0x24, 0xaa, 0xed, 0x89, 0xf0, 0x35, 0xbf, 0xa5, 0xda, 0x51, 0x6e,
+ 0x43, 0x5b, 0xba, 0xd1,
+};
+static const struct drbg_kat_no_reseed kat121_t = {
+ 0, kat121_entropyin, kat121_nonce, kat121_persstr,
+ kat121_addin0, kat121_addin1, kat121_retbits
+};
+static const struct drbg_kat kat121 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat121_t
+};
+
+static const unsigned char kat122_entropyin[] = {
+ 0x22, 0x56, 0x4f, 0x77, 0xc4, 0x5b, 0x05, 0x3c, 0xdf, 0x61, 0x43, 0x3e,
+ 0xb9, 0x6b, 0x1d, 0x7c,
+};
+static const unsigned char kat122_nonce[] = {
+ 0xcf, 0x73, 0xe6, 0x20, 0xf8, 0x51, 0x52, 0x03,
+};
+static const unsigned char kat122_persstr[] = {0};
+static const unsigned char kat122_addin0[] = {0};
+static const unsigned char kat122_addin1[] = {0};
+static const unsigned char kat122_retbits[] = {
+ 0xc7, 0x90, 0x8e, 0x71, 0x2c, 0x71, 0x6d, 0x1f, 0x5e, 0xd5, 0x33, 0xe1,
+ 0x42, 0xe7, 0x21, 0x87, 0xea, 0x77, 0xfb, 0x4f, 0x51, 0x6d, 0xc3, 0x1a,
+ 0xa1, 0x0a, 0x1e, 0x54, 0x9d, 0x85, 0xea, 0xdb, 0x7a, 0x46, 0x46, 0x17,
+ 0x04, 0x64, 0xc1, 0xf7, 0xa7, 0x52, 0xc0, 0x1a, 0x94, 0x06, 0xbe, 0x66,
+ 0x43, 0xee, 0x96, 0x7d, 0x04, 0x64, 0xb8, 0x4b, 0x6a, 0x08, 0xb2, 0xed,
+ 0x0a, 0x7a, 0xcb, 0x07,
+};
+static const struct drbg_kat_no_reseed kat122_t = {
+ 1, kat122_entropyin, kat122_nonce, kat122_persstr,
+ kat122_addin0, kat122_addin1, kat122_retbits
+};
+static const struct drbg_kat kat122 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat122_t
+};
+
+static const unsigned char kat123_entropyin[] = {
+ 0x2a, 0x5b, 0x01, 0x2b, 0x09, 0x79, 0x26, 0xe8, 0xf8, 0x57, 0x0f, 0xf8,
+ 0x69, 0x2c, 0xc5, 0xd1,
+};
+static const unsigned char kat123_nonce[] = {
+ 0xde, 0x8e, 0x07, 0x2d, 0x15, 0x81, 0xaf, 0xe6,
+};
+static const unsigned char kat123_persstr[] = {0};
+static const unsigned char kat123_addin0[] = {0};
+static const unsigned char kat123_addin1[] = {0};
+static const unsigned char kat123_retbits[] = {
+ 0x81, 0xf2, 0xe2, 0xc8, 0x58, 0x5e, 0x8d, 0xc4, 0x65, 0xd7, 0x8e, 0x7b,
+ 0x75, 0xb9, 0xf6, 0xc2, 0xbb, 0xdc, 0xde, 0x94, 0x75, 0xd4, 0x25, 0x0f,
+ 0xb4, 0x9e, 0x04, 0xc5, 0x6e, 0x30, 0x48, 0x9e, 0x24, 0xdf, 0x48, 0x58,
+ 0xf7, 0x4e, 0xd0, 0x85, 0xcb, 0xa9, 0xf9, 0x92, 0xeb, 0x7d, 0x13, 0xe4,
+ 0xe0, 0x64, 0xa7, 0x45, 0xf4, 0x51, 0xcb, 0x6e, 0xdf, 0xc3, 0x7c, 0x57,
+ 0xf3, 0x5e, 0x8d, 0x57,
+};
+static const struct drbg_kat_no_reseed kat123_t = {
+ 2, kat123_entropyin, kat123_nonce, kat123_persstr,
+ kat123_addin0, kat123_addin1, kat123_retbits
+};
+static const struct drbg_kat kat123 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat123_t
+};
+
+static const unsigned char kat124_entropyin[] = {
+ 0x2c, 0x6b, 0x05, 0xd1, 0xc8, 0x6a, 0xae, 0x86, 0xa8, 0x9e, 0x81, 0x64,
+ 0x82, 0x98, 0x32, 0x36,
+};
+static const unsigned char kat124_nonce[] = {
+ 0x33, 0x85, 0xd9, 0x29, 0xad, 0xe9, 0x96, 0xe8,
+};
+static const unsigned char kat124_persstr[] = {0};
+static const unsigned char kat124_addin0[] = {0};
+static const unsigned char kat124_addin1[] = {0};
+static const unsigned char kat124_retbits[] = {
+ 0x52, 0x56, 0xa6, 0x44, 0x29, 0xa5, 0x56, 0xd1, 0xa9, 0x1d, 0x58, 0x99,
+ 0x9c, 0x75, 0xb3, 0x6d, 0xe7, 0xcc, 0x01, 0xf7, 0x46, 0x3c, 0x4e, 0x24,
+ 0xaf, 0xd1, 0x5d, 0xe0, 0xa3, 0x5d, 0xcb, 0x5a, 0xda, 0x26, 0x79, 0x13,
+ 0x4f, 0x15, 0xf4, 0xc5, 0x1d, 0xc0, 0x6b, 0x34, 0x45, 0x4d, 0x6d, 0xca,
+ 0xa1, 0xd2, 0x51, 0x1c, 0x1d, 0x22, 0x6f, 0x23, 0x2f, 0x44, 0x52, 0x76,
+ 0x25, 0x57, 0x51, 0xe6,
+};
+static const struct drbg_kat_no_reseed kat124_t = {
+ 3, kat124_entropyin, kat124_nonce, kat124_persstr,
+ kat124_addin0, kat124_addin1, kat124_retbits
+};
+static const struct drbg_kat kat124 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat124_t
+};
+
+static const unsigned char kat125_entropyin[] = {
+ 0x48, 0xba, 0xb2, 0xf8, 0x2d, 0x80, 0x59, 0x7f, 0x93, 0xad, 0xdb, 0x7e,
+ 0x1f, 0x0f, 0x2e, 0x72,
+};
+static const unsigned char kat125_nonce[] = {
+ 0xf5, 0xf4, 0x90, 0x18, 0xe8, 0x55, 0x9b, 0x0a,
+};
+static const unsigned char kat125_persstr[] = {0};
+static const unsigned char kat125_addin0[] = {0};
+static const unsigned char kat125_addin1[] = {0};
+static const unsigned char kat125_retbits[] = {
+ 0xfa, 0x32, 0x3d, 0x2d, 0xae, 0x96, 0x74, 0xd8, 0x0b, 0xd2, 0xf1, 0x42,
+ 0x7c, 0x1c, 0x79, 0x53, 0x2b, 0x23, 0x74, 0xed, 0x1f, 0xb3, 0xa1, 0x3c,
+ 0x62, 0x06, 0x05, 0x04, 0x8a, 0xc5, 0x78, 0xb3, 0x07, 0x0c, 0x67, 0x48,
+ 0x31, 0x4e, 0x5e, 0xd1, 0xdb, 0xd3, 0xea, 0xaa, 0x64, 0x1e, 0x50, 0x5c,
+ 0x3d, 0x3f, 0x59, 0xfa, 0xc2, 0x5d, 0x89, 0x7b, 0xf3, 0x94, 0xdc, 0xad,
+ 0xb6, 0x3b, 0x7f, 0xf9,
+};
+static const struct drbg_kat_no_reseed kat125_t = {
+ 4, kat125_entropyin, kat125_nonce, kat125_persstr,
+ kat125_addin0, kat125_addin1, kat125_retbits
+};
+static const struct drbg_kat kat125 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat125_t
+};
+
+static const unsigned char kat126_entropyin[] = {
+ 0xad, 0x7a, 0xff, 0x42, 0x24, 0xe9, 0x3f, 0x32, 0x35, 0x45, 0x41, 0x6a,
+ 0x1e, 0x56, 0x97, 0xce,
+};
+static const unsigned char kat126_nonce[] = {
+ 0x9c, 0xc1, 0x2c, 0xe2, 0xed, 0x5e, 0x8d, 0x1c,
+};
+static const unsigned char kat126_persstr[] = {0};
+static const unsigned char kat126_addin0[] = {0};
+static const unsigned char kat126_addin1[] = {0};
+static const unsigned char kat126_retbits[] = {
+ 0x36, 0xc7, 0x22, 0x23, 0xb9, 0x24, 0x4c, 0xdb, 0x2c, 0x2c, 0x0d, 0xd5,
+ 0xa5, 0x97, 0x06, 0x55, 0x8e, 0x2e, 0x5a, 0x11, 0x84, 0x5c, 0xab, 0xf9,
+ 0x54, 0x5c, 0xd4, 0xad, 0x08, 0x15, 0x4a, 0x46, 0x70, 0x3a, 0xe7, 0x50,
+ 0xb7, 0xf0, 0xc4, 0xf5, 0xbb, 0x33, 0xac, 0xd3, 0xc3, 0x81, 0xe5, 0xee,
+ 0x4c, 0xe0, 0x99, 0x16, 0x43, 0x11, 0x44, 0xe8, 0x51, 0x5f, 0xed, 0x91,
+ 0x4d, 0x5c, 0x5b, 0x5e,
+};
+static const struct drbg_kat_no_reseed kat126_t = {
+ 5, kat126_entropyin, kat126_nonce, kat126_persstr,
+ kat126_addin0, kat126_addin1, kat126_retbits
+};
+static const struct drbg_kat kat126 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat126_t
+};
+
+static const unsigned char kat127_entropyin[] = {
+ 0x29, 0x9c, 0x01, 0xd3, 0xa2, 0xf1, 0x32, 0x3d, 0xf7, 0x53, 0xcf, 0x14,
+ 0x84, 0x5e, 0x0d, 0xe5,
+};
+static const unsigned char kat127_nonce[] = {
+ 0x51, 0x1e, 0x36, 0x23, 0x2a, 0x11, 0x29, 0x1d,
+};
+static const unsigned char kat127_persstr[] = {0};
+static const unsigned char kat127_addin0[] = {0};
+static const unsigned char kat127_addin1[] = {0};
+static const unsigned char kat127_retbits[] = {
+ 0x77, 0x09, 0xfd, 0xc6, 0x27, 0x8d, 0xb4, 0x4b, 0x21, 0xd3, 0x9a, 0x19,
+ 0x4b, 0x80, 0x6e, 0x48, 0xe7, 0xfe, 0x3e, 0x9a, 0xe1, 0x16, 0xe2, 0x38,
+ 0xc2, 0x05, 0xc2, 0xc3, 0x45, 0x98, 0x1c, 0xe8, 0x1f, 0x25, 0x57, 0x13,
+ 0x59, 0x7c, 0xec, 0x2b, 0x3a, 0xd3, 0x91, 0x0f, 0x2b, 0x67, 0x42, 0xae,
+ 0xa6, 0x64, 0x04, 0x71, 0x2d, 0xf8, 0x32, 0x8d, 0x2f, 0x2d, 0x19, 0x48,
+ 0x41, 0x30, 0x97, 0xdb,
+};
+static const struct drbg_kat_no_reseed kat127_t = {
+ 6, kat127_entropyin, kat127_nonce, kat127_persstr,
+ kat127_addin0, kat127_addin1, kat127_retbits
+};
+static const struct drbg_kat kat127 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat127_t
+};
+
+static const unsigned char kat128_entropyin[] = {
+ 0xb6, 0xee, 0x77, 0x79, 0x99, 0x4b, 0xa8, 0xcd, 0x49, 0x0a, 0x03, 0xcf,
+ 0x68, 0x99, 0xb1, 0x35,
+};
+static const unsigned char kat128_nonce[] = {
+ 0x66, 0xed, 0xa9, 0xb5, 0xa5, 0x4d, 0x7d, 0xed,
+};
+static const unsigned char kat128_persstr[] = {0};
+static const unsigned char kat128_addin0[] = {0};
+static const unsigned char kat128_addin1[] = {0};
+static const unsigned char kat128_retbits[] = {
+ 0x4e, 0x21, 0xb4, 0x8f, 0xde, 0x08, 0x22, 0x63, 0xd7, 0x6a, 0x10, 0x34,
+ 0xe8, 0x7a, 0x56, 0x6e, 0x1a, 0x1c, 0x9d, 0x2e, 0x1b, 0xd5, 0xc7, 0x48,
+ 0xe3, 0x0e, 0x1d, 0x87, 0x50, 0xf2, 0xff, 0x03, 0x93, 0x1c, 0x4b, 0xfe,
+ 0x19, 0x4d, 0x2d, 0xa4, 0xed, 0x1c, 0xf1, 0x53, 0x03, 0x01, 0xe5, 0xb1,
+ 0xab, 0xc4, 0xbd, 0x2b, 0xda, 0x7b, 0xe8, 0x92, 0x84, 0xf8, 0xc2, 0x19,
+ 0x36, 0x88, 0xc9, 0x82,
+};
+static const struct drbg_kat_no_reseed kat128_t = {
+ 7, kat128_entropyin, kat128_nonce, kat128_persstr,
+ kat128_addin0, kat128_addin1, kat128_retbits
+};
+static const struct drbg_kat kat128 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat128_t
+};
+
+static const unsigned char kat129_entropyin[] = {
+ 0xe3, 0xcc, 0xb9, 0x91, 0xc3, 0xe1, 0xb3, 0xed, 0xa0, 0xb4, 0x0b, 0x51,
+ 0x42, 0xac, 0x84, 0xd3,
+};
+static const unsigned char kat129_nonce[] = {
+ 0x99, 0x87, 0x57, 0xe0, 0x0d, 0xa2, 0xb9, 0xef,
+};
+static const unsigned char kat129_persstr[] = {0};
+static const unsigned char kat129_addin0[] = {0};
+static const unsigned char kat129_addin1[] = {0};
+static const unsigned char kat129_retbits[] = {
+ 0xd3, 0x2b, 0xc1, 0x90, 0x99, 0x8f, 0x18, 0xe9, 0xd5, 0x50, 0x9f, 0x46,
+ 0x02, 0x29, 0x05, 0xd0, 0x11, 0xbb, 0xec, 0x77, 0x4f, 0x05, 0x83, 0x69,
+ 0x1d, 0x48, 0x12, 0x43, 0x79, 0xe8, 0x1d, 0x99, 0xf0, 0xcd, 0xd4, 0x61,
+ 0x38, 0xbc, 0xcc, 0x47, 0xeb, 0x77, 0x3f, 0x25, 0x7a, 0x66, 0x2b, 0x79,
+ 0x8f, 0xab, 0x27, 0x58, 0x86, 0x94, 0x89, 0x36, 0xbc, 0xe7, 0x2d, 0xbd,
+ 0x2c, 0x61, 0x88, 0xac,
+};
+static const struct drbg_kat_no_reseed kat129_t = {
+ 8, kat129_entropyin, kat129_nonce, kat129_persstr,
+ kat129_addin0, kat129_addin1, kat129_retbits
+};
+static const struct drbg_kat kat129 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat129_t
+};
+
+static const unsigned char kat130_entropyin[] = {
+ 0xc3, 0x4e, 0x39, 0x80, 0x41, 0xcc, 0xee, 0x23, 0x89, 0x7f, 0x7c, 0xa3,
+ 0x43, 0xf3, 0x56, 0x40,
+};
+static const unsigned char kat130_nonce[] = {
+ 0xa2, 0x4f, 0x8e, 0xa0, 0x88, 0x6b, 0xf6, 0xbf,
+};
+static const unsigned char kat130_persstr[] = {0};
+static const unsigned char kat130_addin0[] = {0};
+static const unsigned char kat130_addin1[] = {0};
+static const unsigned char kat130_retbits[] = {
+ 0x5f, 0xf0, 0xda, 0xef, 0x30, 0x04, 0xc5, 0x03, 0xb8, 0x09, 0x8e, 0x3b,
+ 0x96, 0x8a, 0x8e, 0x32, 0x33, 0x19, 0xbe, 0x78, 0x6c, 0x7b, 0x74, 0x2a,
+ 0xac, 0xee, 0x35, 0x5f, 0x1a, 0x3c, 0x9d, 0xe7, 0x50, 0x61, 0x10, 0x8e,
+ 0x79, 0x18, 0x13, 0x61, 0xf2, 0xe3, 0x30, 0x6a, 0xf0, 0x7b, 0xcd, 0xed,
+ 0x10, 0xe3, 0x2d, 0xef, 0x1b, 0x7b, 0xb3, 0xe4, 0xeb, 0xc1, 0x70, 0x96,
+ 0xc6, 0x93, 0x30, 0x58,
+};
+static const struct drbg_kat_no_reseed kat130_t = {
+ 9, kat130_entropyin, kat130_nonce, kat130_persstr,
+ kat130_addin0, kat130_addin1, kat130_retbits
+};
+static const struct drbg_kat kat130 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat130_t
+};
+
+static const unsigned char kat131_entropyin[] = {
+ 0xfc, 0x1f, 0xd2, 0x5c, 0xed, 0x5b, 0xd3, 0x0a, 0x62, 0x1c, 0xd4, 0xae,
+ 0x77, 0x96, 0x80, 0xad,
+};
+static const unsigned char kat131_nonce[] = {
+ 0xaf, 0x17, 0xa9, 0xc9, 0x74, 0xb3, 0x6e, 0x6c,
+};
+static const unsigned char kat131_persstr[] = {0};
+static const unsigned char kat131_addin0[] = {0};
+static const unsigned char kat131_addin1[] = {0};
+static const unsigned char kat131_retbits[] = {
+ 0x59, 0xf9, 0x9d, 0x08, 0x57, 0x49, 0x36, 0x74, 0x78, 0x68, 0x4a, 0x5d,
+ 0xdc, 0x8f, 0xe1, 0x81, 0xb9, 0x7a, 0x4e, 0x67, 0xfd, 0xe5, 0xc1, 0x51,
+ 0xc4, 0x69, 0x6d, 0x52, 0x3d, 0x7c, 0x14, 0xb7, 0x26, 0x89, 0xa9, 0x5a,
+ 0x5b, 0x60, 0x92, 0xe9, 0x49, 0xdd, 0x16, 0x3b, 0xd8, 0xf9, 0xe4, 0x57,
+ 0x27, 0xd2, 0xb8, 0xa3, 0x1e, 0xd2, 0x88, 0xc8, 0xc6, 0x22, 0x9e, 0x8b,
+ 0xe6, 0x80, 0x8e, 0xc8,
+};
+static const struct drbg_kat_no_reseed kat131_t = {
+ 10, kat131_entropyin, kat131_nonce, kat131_persstr,
+ kat131_addin0, kat131_addin1, kat131_retbits
+};
+static const struct drbg_kat kat131 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat131_t
+};
+
+static const unsigned char kat132_entropyin[] = {
+ 0x72, 0xc0, 0xe2, 0x3d, 0x92, 0x07, 0x0a, 0x8b, 0xab, 0x70, 0x7f, 0x65,
+ 0xd5, 0x95, 0x18, 0x6d,
+};
+static const unsigned char kat132_nonce[] = {
+ 0x1a, 0x63, 0xdc, 0xfc, 0x52, 0xe5, 0x5c, 0x58,
+};
+static const unsigned char kat132_persstr[] = {0};
+static const unsigned char kat132_addin0[] = {0};
+static const unsigned char kat132_addin1[] = {0};
+static const unsigned char kat132_retbits[] = {
+ 0x49, 0xfe, 0xc2, 0x67, 0x58, 0x85, 0xd5, 0x4a, 0x4c, 0x6b, 0x10, 0x1f,
+ 0x29, 0x19, 0x45, 0xc7, 0x35, 0xad, 0x9c, 0x2d, 0xb5, 0x1a, 0x63, 0xb9,
+ 0x41, 0xbc, 0x18, 0x2e, 0xe5, 0x1f, 0xd8, 0xfd, 0x84, 0xb8, 0xc6, 0x33,
+ 0x7b, 0x0f, 0x77, 0xf3, 0x10, 0xca, 0x50, 0x69, 0x3b, 0x91, 0xb5, 0x90,
+ 0xe3, 0xef, 0x65, 0x5b, 0xe7, 0xad, 0x76, 0x21, 0xed, 0x21, 0xff, 0x39,
+ 0xd3, 0x29, 0x2e, 0xfd,
+};
+static const struct drbg_kat_no_reseed kat132_t = {
+ 11, kat132_entropyin, kat132_nonce, kat132_persstr,
+ kat132_addin0, kat132_addin1, kat132_retbits
+};
+static const struct drbg_kat kat132 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat132_t
+};
+
+static const unsigned char kat133_entropyin[] = {
+ 0xa0, 0x90, 0x91, 0xca, 0x32, 0x80, 0xf7, 0xf5, 0x83, 0x76, 0xbf, 0x68,
+ 0x0d, 0xe1, 0x11, 0x92,
+};
+static const unsigned char kat133_nonce[] = {
+ 0x1d, 0x08, 0xdc, 0x0d, 0x06, 0x00, 0x95, 0xb3,
+};
+static const unsigned char kat133_persstr[] = {0};
+static const unsigned char kat133_addin0[] = {0};
+static const unsigned char kat133_addin1[] = {0};
+static const unsigned char kat133_retbits[] = {
+ 0x0d, 0x59, 0xac, 0xa0, 0x23, 0x64, 0x7f, 0x0b, 0xf2, 0x68, 0x81, 0xd9,
+ 0x12, 0x6b, 0xab, 0x8c, 0x7f, 0xea, 0x92, 0x2d, 0x2b, 0x4c, 0x24, 0xf1,
+ 0xdc, 0xc0, 0xbf, 0xf8, 0x7a, 0x3d, 0x0d, 0x1b, 0x1d, 0xa0, 0xe8, 0x75,
+ 0x62, 0x6a, 0x56, 0x42, 0x61, 0x86, 0xef, 0xd0, 0x07, 0x1f, 0x5a, 0x78,
+ 0x9f, 0xbf, 0x35, 0xfa, 0x8b, 0xfc, 0x85, 0xaf, 0xaf, 0xd3, 0xaf, 0x6c,
+ 0x9c, 0x7c, 0xd0, 0x7a,
+};
+static const struct drbg_kat_no_reseed kat133_t = {
+ 12, kat133_entropyin, kat133_nonce, kat133_persstr,
+ kat133_addin0, kat133_addin1, kat133_retbits
+};
+static const struct drbg_kat kat133 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat133_t
+};
+
+static const unsigned char kat134_entropyin[] = {
+ 0x8b, 0x41, 0x75, 0xd0, 0xa1, 0x95, 0x39, 0xef, 0x3d, 0x5d, 0x40, 0x84,
+ 0x6c, 0xb4, 0x0a, 0xb3,
+};
+static const unsigned char kat134_nonce[] = {
+ 0x8c, 0x31, 0x0d, 0x43, 0x1c, 0xf0, 0x0b, 0x3e,
+};
+static const unsigned char kat134_persstr[] = {0};
+static const unsigned char kat134_addin0[] = {0};
+static const unsigned char kat134_addin1[] = {0};
+static const unsigned char kat134_retbits[] = {
+ 0x92, 0xb3, 0xb0, 0xe5, 0x7a, 0xe4, 0xce, 0xfc, 0x40, 0xd6, 0xe5, 0xfa,
+ 0x0d, 0x9f, 0xa8, 0x5c, 0x97, 0x0c, 0x2d, 0xd0, 0xcd, 0x4e, 0x04, 0xd7,
+ 0x27, 0x27, 0x56, 0x63, 0x4b, 0x84, 0xcc, 0x20, 0xc5, 0x36, 0x8f, 0x3a,
+ 0x7b, 0x3e, 0x12, 0x11, 0xc5, 0xfa, 0x2e, 0x63, 0x35, 0x43, 0x6b, 0x88,
+ 0x58, 0x2d, 0x04, 0x8b, 0xc7, 0x6a, 0x7c, 0x19, 0xbb, 0xfe, 0xc1, 0x35,
+ 0xa1, 0x05, 0x5c, 0xbd,
+};
+static const struct drbg_kat_no_reseed kat134_t = {
+ 13, kat134_entropyin, kat134_nonce, kat134_persstr,
+ kat134_addin0, kat134_addin1, kat134_retbits
+};
+static const struct drbg_kat kat134 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat134_t
+};
+
+static const unsigned char kat135_entropyin[] = {
+ 0x68, 0xc8, 0x53, 0xb9, 0x12, 0x9c, 0xb2, 0x0a, 0x3d, 0xdf, 0x11, 0xe7,
+ 0x8a, 0x58, 0x75, 0xba,
+};
+static const unsigned char kat135_nonce[] = {
+ 0xf5, 0xab, 0x54, 0x86, 0x05, 0xa5, 0x11, 0x03,
+};
+static const unsigned char kat135_persstr[] = {0};
+static const unsigned char kat135_addin0[] = {0};
+static const unsigned char kat135_addin1[] = {0};
+static const unsigned char kat135_retbits[] = {
+ 0x43, 0xcf, 0xb0, 0x3a, 0x51, 0xd7, 0xda, 0x40, 0xb3, 0x94, 0x68, 0x36,
+ 0x1c, 0x2e, 0xe0, 0x78, 0x81, 0x90, 0x75, 0x87, 0x2f, 0x4f, 0x7c, 0x5d,
+ 0x2b, 0x09, 0xef, 0x39, 0x91, 0x46, 0x02, 0xa7, 0x2a, 0x62, 0xc6, 0x3e,
+ 0x29, 0x38, 0x3f, 0xbb, 0x9e, 0x45, 0x0f, 0xb2, 0xae, 0xf3, 0x2e, 0xb9,
+ 0xf3, 0x70, 0xcb, 0xbc, 0x1a, 0xb4, 0x70, 0x8a, 0x5d, 0x28, 0x98, 0xdf,
+ 0x8a, 0xe4, 0xf6, 0x26,
+};
+static const struct drbg_kat_no_reseed kat135_t = {
+ 14, kat135_entropyin, kat135_nonce, kat135_persstr,
+ kat135_addin0, kat135_addin1, kat135_retbits
+};
+static const struct drbg_kat kat135 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat135_t
+};
+
+static const unsigned char kat136_entropyin[] = {
+ 0x9b, 0xfa, 0xef, 0xb6, 0x98, 0xb1, 0xb5, 0xfc, 0xc6, 0x2d, 0xb2, 0xc1,
+ 0x64, 0x98, 0xc3, 0x3a,
+};
+static const unsigned char kat136_nonce[] = {
+ 0x11, 0x1d, 0x86, 0x12, 0xa0, 0xf0, 0x4e, 0x2a,
+};
+static const unsigned char kat136_persstr[] = {0};
+static const unsigned char kat136_addin0[] = {
+ 0xae, 0xdb, 0xe0, 0x28, 0x47, 0xb1, 0xb0, 0x8b, 0x6a, 0x67, 0x3b, 0xdf,
+ 0x25, 0xb0, 0x22, 0x4c,
+};
+static const unsigned char kat136_addin1[] = {
+ 0x99, 0x01, 0xea, 0xd6, 0x2c, 0xe5, 0x65, 0x73, 0xb0, 0xf7, 0x1c, 0xd0,
+ 0x20, 0xfe, 0x34, 0x69,
+};
+static const unsigned char kat136_retbits[] = {
+ 0xdf, 0xf8, 0xbf, 0x2a, 0xec, 0x53, 0x1f, 0x85, 0x32, 0x60, 0x7e, 0x73,
+ 0x8b, 0xd7, 0x9f, 0x91, 0xd6, 0x08, 0x5c, 0xb1, 0x95, 0x68, 0xb7, 0xb0,
+ 0x24, 0x0c, 0xe6, 0xa6, 0xb3, 0x71, 0xa2, 0x82, 0xba, 0xfc, 0xdb, 0xa0,
+ 0x21, 0x37, 0xdf, 0x99, 0x05, 0x35, 0xd9, 0xeb, 0xf0, 0xba, 0x77, 0x11,
+ 0x77, 0x51, 0x62, 0x6b, 0x26, 0x78, 0xac, 0xa7, 0xbe, 0x4d, 0xec, 0xfd,
+ 0x6b, 0x9d, 0x4b, 0x38,
+};
+static const struct drbg_kat_no_reseed kat136_t = {
+ 0, kat136_entropyin, kat136_nonce, kat136_persstr,
+ kat136_addin0, kat136_addin1, kat136_retbits
+};
+static const struct drbg_kat kat136 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat136_t
+};
+
+static const unsigned char kat137_entropyin[] = {
+ 0xdf, 0x99, 0x3f, 0xed, 0xd5, 0x96, 0x74, 0xa8, 0x7a, 0x15, 0x14, 0x7b,
+ 0x80, 0xbe, 0x37, 0xae,
+};
+static const unsigned char kat137_nonce[] = {
+ 0x22, 0xb3, 0x31, 0x5a, 0xcc, 0xf1, 0xad, 0x13,
+};
+static const unsigned char kat137_persstr[] = {0};
+static const unsigned char kat137_addin0[] = {
+ 0x9f, 0x9b, 0x94, 0x09, 0x04, 0x8a, 0x71, 0x17, 0x45, 0xc7, 0xef, 0x7a,
+ 0x6d, 0xdd, 0xc1, 0x7d,
+};
+static const unsigned char kat137_addin1[] = {
+ 0xc5, 0x60, 0x68, 0x5b, 0xd4, 0x9c, 0x05, 0x9f, 0x04, 0x38, 0xe9, 0xdf,
+ 0xf6, 0x2d, 0x82, 0xd7,
+};
+static const unsigned char kat137_retbits[] = {
+ 0x04, 0xd7, 0x4f, 0xa1, 0xb6, 0x9d, 0xe6, 0x89, 0x3a, 0x47, 0xbf, 0xb0,
+ 0xb6, 0xae, 0x58, 0xa7, 0x98, 0x4b, 0xbb, 0x08, 0x8f, 0xce, 0x62, 0x0b,
+ 0x9d, 0x8e, 0xbc, 0x0b, 0x54, 0xcd, 0xdb, 0xca, 0x00, 0x45, 0xd7, 0x5d,
+ 0x5b, 0x04, 0x6f, 0xcd, 0x88, 0x95, 0xc1, 0x6b, 0x05, 0x13, 0xaa, 0x52,
+ 0x1b, 0x8d, 0x4a, 0xf2, 0x76, 0x78, 0x3d, 0x9d, 0x25, 0x77, 0xac, 0xb3,
+ 0x2c, 0xea, 0xdb, 0x89,
+};
+static const struct drbg_kat_no_reseed kat137_t = {
+ 1, kat137_entropyin, kat137_nonce, kat137_persstr,
+ kat137_addin0, kat137_addin1, kat137_retbits
+};
+static const struct drbg_kat kat137 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat137_t
+};
+
+static const unsigned char kat138_entropyin[] = {
+ 0xdb, 0x4f, 0xae, 0x0c, 0x43, 0x02, 0xeb, 0xe8, 0x4f, 0x2a, 0x28, 0xad,
+ 0x98, 0x4d, 0xae, 0xc1,
+};
+static const unsigned char kat138_nonce[] = {
+ 0x07, 0x9e, 0xbf, 0x0f, 0x00, 0x93, 0xcd, 0xb2,
+};
+static const unsigned char kat138_persstr[] = {0};
+static const unsigned char kat138_addin0[] = {
+ 0x2f, 0xfb, 0x64, 0x85, 0xac, 0xe2, 0xad, 0x77, 0xd5, 0xf8, 0xad, 0xbd,
+ 0x09, 0xb3, 0xf3, 0x72,
+};
+static const unsigned char kat138_addin1[] = {
+ 0xf4, 0xb8, 0x44, 0x74, 0x3d, 0x00, 0x65, 0xa0, 0x38, 0x98, 0x80, 0x49,
+ 0xf6, 0xaa, 0x53, 0xb5,
+};
+static const unsigned char kat138_retbits[] = {
+ 0xcb, 0x8e, 0x71, 0x44, 0x8f, 0xf7, 0x91, 0x1e, 0x5c, 0xae, 0xa7, 0xd5,
+ 0x4a, 0x12, 0x94, 0x5e, 0xd3, 0x4b, 0xea, 0x42, 0xdb, 0xb6, 0x57, 0x3b,
+ 0xf8, 0x42, 0x0d, 0xbb, 0x6b, 0xae, 0x6a, 0x11, 0xe0, 0x24, 0x82, 0x92,
+ 0xc9, 0xd9, 0x3d, 0xa3, 0x09, 0x68, 0x56, 0xe0, 0xf2, 0x94, 0x18, 0xf1,
+ 0xc8, 0x0d, 0x13, 0x8b, 0x34, 0x15, 0x66, 0x7b, 0xfb, 0x45, 0x6b, 0x08,
+ 0x9f, 0x26, 0x62, 0x1a,
+};
+static const struct drbg_kat_no_reseed kat138_t = {
+ 2, kat138_entropyin, kat138_nonce, kat138_persstr,
+ kat138_addin0, kat138_addin1, kat138_retbits
+};
+static const struct drbg_kat kat138 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat138_t
+};
+
+static const unsigned char kat139_entropyin[] = {
+ 0xa4, 0x23, 0x48, 0xf1, 0xbe, 0xc0, 0x6f, 0x58, 0x36, 0xfc, 0xa0, 0x60,
+ 0x66, 0x14, 0x34, 0xc0,
+};
+static const unsigned char kat139_nonce[] = {
+ 0x2f, 0x70, 0xf6, 0xa2, 0xe7, 0xd0, 0xb4, 0x36,
+};
+static const unsigned char kat139_persstr[] = {0};
+static const unsigned char kat139_addin0[] = {
+ 0x54, 0x70, 0x91, 0xef, 0x85, 0xb0, 0x13, 0xf3, 0xf5, 0xdc, 0x82, 0x2a,
+ 0x5b, 0x3f, 0x27, 0xf9,
+};
+static const unsigned char kat139_addin1[] = {
+ 0x2c, 0xa9, 0x9e, 0xe7, 0x97, 0xf4, 0xa9, 0xb1, 0x67, 0x88, 0xd2, 0x98,
+ 0xbb, 0xa2, 0xd1, 0x83,
+};
+static const unsigned char kat139_retbits[] = {
+ 0x4b, 0x41, 0xed, 0x62, 0x81, 0xa8, 0x1d, 0x44, 0x2a, 0x8c, 0xb0, 0x3a,
+ 0x81, 0x45, 0xfe, 0x78, 0x86, 0x3d, 0x25, 0xd7, 0xee, 0x70, 0xe7, 0x2d,
+ 0x4d, 0x3a, 0xfd, 0x51, 0x68, 0x16, 0x48, 0x76, 0xa6, 0x6b, 0x5a, 0xca,
+ 0x31, 0x8c, 0x9c, 0x91, 0x17, 0x23, 0x05, 0xe3, 0x88, 0xe1, 0xda, 0xc3,
+ 0x86, 0xcb, 0xab, 0x6d, 0x15, 0x0a, 0x39, 0x12, 0x36, 0x9c, 0x93, 0x90,
+ 0x08, 0x6b, 0xd7, 0x44,
+};
+static const struct drbg_kat_no_reseed kat139_t = {
+ 3, kat139_entropyin, kat139_nonce, kat139_persstr,
+ kat139_addin0, kat139_addin1, kat139_retbits
+};
+static const struct drbg_kat kat139 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat139_t
+};
+
+static const unsigned char kat140_entropyin[] = {
+ 0x14, 0x83, 0xb9, 0x8e, 0x08, 0xc0, 0x40, 0x12, 0xb0, 0x3f, 0x1f, 0x61,
+ 0x02, 0xa2, 0x83, 0x06,
+};
+static const unsigned char kat140_nonce[] = {
+ 0x89, 0xe6, 0x7c, 0xa1, 0xda, 0x05, 0xdd, 0x4f,
+};
+static const unsigned char kat140_persstr[] = {0};
+static const unsigned char kat140_addin0[] = {
+ 0x30, 0x85, 0x9e, 0xcc, 0x30, 0x25, 0x04, 0x79, 0x30, 0xb3, 0x85, 0x3a,
+ 0xe6, 0x8a, 0xbd, 0xa2,
+};
+static const unsigned char kat140_addin1[] = {
+ 0xf5, 0x05, 0x57, 0xf0, 0x40, 0x29, 0x28, 0x6c, 0xaf, 0xb2, 0xfc, 0xbf,
+ 0x14, 0x64, 0xe4, 0xe5,
+};
+static const unsigned char kat140_retbits[] = {
+ 0x45, 0xac, 0xf5, 0x2f, 0xf5, 0x69, 0xcc, 0x48, 0x15, 0x95, 0x88, 0x01,
+ 0x62, 0x89, 0x3b, 0x57, 0x9b, 0xe4, 0x05, 0x43, 0xc5, 0x6a, 0x94, 0xb7,
+ 0x18, 0x4b, 0xc9, 0x92, 0xd1, 0xdf, 0x37, 0x85, 0x18, 0xf9, 0x3f, 0xb4,
+ 0xd9, 0x75, 0x5d, 0x86, 0x58, 0xe9, 0x72, 0x2b, 0x34, 0x79, 0x53, 0x6b,
+ 0xa4, 0x83, 0x9a, 0x8e, 0xee, 0x7a, 0x65, 0x5f, 0xed, 0x88, 0x4a, 0xaf,
+ 0x5a, 0x55, 0x6e, 0xb7,
+};
+static const struct drbg_kat_no_reseed kat140_t = {
+ 4, kat140_entropyin, kat140_nonce, kat140_persstr,
+ kat140_addin0, kat140_addin1, kat140_retbits
+};
+static const struct drbg_kat kat140 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat140_t
+};
+
+static const unsigned char kat141_entropyin[] = {
+ 0xbe, 0x9f, 0xcd, 0xd7, 0x11, 0xce, 0x1b, 0x0a, 0x3c, 0x97, 0xb1, 0xac,
+ 0x19, 0x79, 0x20, 0x7d,
+};
+static const unsigned char kat141_nonce[] = {
+ 0xa8, 0x02, 0x94, 0xb5, 0xd6, 0x59, 0xff, 0xb4,
+};
+static const unsigned char kat141_persstr[] = {0};
+static const unsigned char kat141_addin0[] = {
+ 0xb2, 0x0c, 0x04, 0x54, 0x6a, 0x0c, 0x6a, 0x5e, 0x6b, 0x95, 0x63, 0x7c,
+ 0x96, 0x0b, 0xca, 0x63,
+};
+static const unsigned char kat141_addin1[] = {
+ 0x67, 0x07, 0xcc, 0x21, 0x7f, 0xb1, 0x98, 0xaf, 0x85, 0x2e, 0x06, 0xdb,
+ 0x14, 0x61, 0x58, 0x05,
+};
+static const unsigned char kat141_retbits[] = {
+ 0x6b, 0x62, 0x0c, 0x76, 0xf0, 0xb1, 0xa4, 0xa3, 0xd7, 0xf0, 0xf6, 0x0a,
+ 0x76, 0x45, 0x81, 0x1b, 0xb7, 0x9b, 0xf1, 0x84, 0x77, 0xf8, 0x5b, 0x94,
+ 0xf0, 0xee, 0x09, 0xe0, 0xc6, 0x8b, 0x0f, 0xdb, 0x3e, 0x11, 0xd8, 0xe5,
+ 0x8a, 0x34, 0xd2, 0x4f, 0xe3, 0x6e, 0x8b, 0x7e, 0xa7, 0x2a, 0x26, 0xb6,
+ 0xcb, 0x92, 0xd9, 0x87, 0xc5, 0x81, 0xab, 0x48, 0xe5, 0xfb, 0x8f, 0xb7,
+ 0x0f, 0x76, 0x5f, 0x5f,
+};
+static const struct drbg_kat_no_reseed kat141_t = {
+ 5, kat141_entropyin, kat141_nonce, kat141_persstr,
+ kat141_addin0, kat141_addin1, kat141_retbits
+};
+static const struct drbg_kat kat141 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat141_t
+};
+
+static const unsigned char kat142_entropyin[] = {
+ 0xa5, 0x8e, 0xb5, 0x4d, 0x10, 0x9b, 0x51, 0x4d, 0xb3, 0x38, 0xfc, 0xce,
+ 0xa2, 0x8e, 0xf2, 0xea,
+};
+static const unsigned char kat142_nonce[] = {
+ 0x91, 0x2d, 0x24, 0xa1, 0xd8, 0x1d, 0xe7, 0xdc,
+};
+static const unsigned char kat142_persstr[] = {0};
+static const unsigned char kat142_addin0[] = {
+ 0x59, 0xd4, 0x59, 0xb0, 0x73, 0x52, 0x60, 0x21, 0xec, 0x45, 0x51, 0x12,
+ 0x56, 0xcf, 0xb3, 0x58,
+};
+static const unsigned char kat142_addin1[] = {
+ 0xf7, 0x9f, 0x7e, 0x5a, 0x2a, 0x79, 0x1a, 0x39, 0xbb, 0x32, 0xb6, 0xb1,
+ 0x5f, 0xe0, 0x14, 0x61,
+};
+static const unsigned char kat142_retbits[] = {
+ 0xc1, 0x26, 0xd4, 0x09, 0xc2, 0x0d, 0x5d, 0x3d, 0x4c, 0x79, 0x46, 0x12,
+ 0x56, 0xf5, 0x40, 0x3d, 0x1c, 0xc5, 0x9b, 0xcf, 0x11, 0xa4, 0xa6, 0x16,
+ 0xab, 0xf0, 0x65, 0x30, 0x32, 0xe0, 0x45, 0x0a, 0x11, 0xf3, 0x2f, 0x38,
+ 0x16, 0xc3, 0x51, 0x91, 0x2f, 0xe8, 0xe3, 0x00, 0x84, 0xed, 0x34, 0xdb,
+ 0xcd, 0x0a, 0x9c, 0x95, 0xe1, 0xc0, 0x13, 0x62, 0xef, 0x61, 0x6d, 0xd2,
+ 0x2a, 0x13, 0x7f, 0x72,
+};
+static const struct drbg_kat_no_reseed kat142_t = {
+ 6, kat142_entropyin, kat142_nonce, kat142_persstr,
+ kat142_addin0, kat142_addin1, kat142_retbits
+};
+static const struct drbg_kat kat142 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat142_t
+};
+
+static const unsigned char kat143_entropyin[] = {
+ 0xe0, 0xa5, 0xd9, 0x4d, 0x0c, 0xa9, 0x5a, 0x7b, 0x38, 0x0b, 0x99, 0x9c,
+ 0x69, 0xd9, 0x01, 0x1c,
+};
+static const unsigned char kat143_nonce[] = {
+ 0x47, 0xcd, 0xc5, 0x5a, 0x19, 0x56, 0xaf, 0x8d,
+};
+static const unsigned char kat143_persstr[] = {0};
+static const unsigned char kat143_addin0[] = {
+ 0xa9, 0x16, 0x84, 0xd0, 0x12, 0xdc, 0x48, 0x83, 0x0b, 0xe4, 0xcf, 0xae,
+ 0xe2, 0xfc, 0x88, 0x54,
+};
+static const unsigned char kat143_addin1[] = {
+ 0xa0, 0x61, 0xc2, 0xb1, 0x3b, 0xf1, 0x00, 0x6d, 0x3b, 0xa2, 0xf2, 0x29,
+ 0x7f, 0x95, 0x4f, 0xb5,
+};
+static const unsigned char kat143_retbits[] = {
+ 0xe1, 0x36, 0xea, 0x57, 0x3d, 0x1d, 0x81, 0xec, 0xb7, 0x84, 0x2e, 0xc4,
+ 0x3a, 0xf0, 0xb4, 0xb9, 0x78, 0x3f, 0x3f, 0xe4, 0xb1, 0xab, 0x90, 0x24,
+ 0xc6, 0x2e, 0xae, 0xf0, 0x86, 0x0e, 0x81, 0x3d, 0x5a, 0x24, 0xf1, 0xa5,
+ 0xfa, 0xb7, 0x4b, 0x8f, 0x1f, 0x66, 0x1b, 0x50, 0x39, 0x29, 0x02, 0x56,
+ 0xd0, 0xe5, 0xaa, 0xa9, 0xe0, 0xfd, 0xab, 0x3a, 0x18, 0x9b, 0x2d, 0x66,
+ 0x95, 0x89, 0x39, 0x99,
+};
+static const struct drbg_kat_no_reseed kat143_t = {
+ 7, kat143_entropyin, kat143_nonce, kat143_persstr,
+ kat143_addin0, kat143_addin1, kat143_retbits
+};
+static const struct drbg_kat kat143 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat143_t
+};
+
+static const unsigned char kat144_entropyin[] = {
+ 0x91, 0x8b, 0xda, 0x9e, 0x89, 0x72, 0x7b, 0xbd, 0x97, 0x04, 0x25, 0xc7,
+ 0x48, 0x3e, 0xf1, 0xaf,
+};
+static const unsigned char kat144_nonce[] = {
+ 0xfc, 0x3b, 0xee, 0xec, 0x38, 0x0b, 0x02, 0xc2,
+};
+static const unsigned char kat144_persstr[] = {0};
+static const unsigned char kat144_addin0[] = {
+ 0x6f, 0x48, 0x36, 0x73, 0xaf, 0x64, 0xbc, 0xd7, 0x4c, 0xfe, 0xff, 0x3f,
+ 0x98, 0xb6, 0xcd, 0x5a,
+};
+static const unsigned char kat144_addin1[] = {
+ 0x15, 0xbd, 0x5e, 0xab, 0xba, 0x23, 0x2d, 0xf5, 0xa1, 0xb6, 0x03, 0xa2,
+ 0xfc, 0x16, 0x39, 0xc0,
+};
+static const unsigned char kat144_retbits[] = {
+ 0x43, 0x85, 0x55, 0x1a, 0x3a, 0x7d, 0xd9, 0x0d, 0x77, 0xa7, 0x65, 0xf7,
+ 0xcb, 0x85, 0x9d, 0x80, 0xab, 0x6a, 0xc4, 0x84, 0x8e, 0x3b, 0xd9, 0x11,
+ 0x01, 0xb4, 0x52, 0x32, 0x34, 0xca, 0x0f, 0x16, 0xc0, 0x6a, 0x45, 0x79,
+ 0xa9, 0x7e, 0xa5, 0x1d, 0xb0, 0x37, 0xfd, 0x8b, 0x8c, 0x40, 0x83, 0xcd,
+ 0xb6, 0xf4, 0xed, 0x97, 0x56, 0xf5, 0xa4, 0x48, 0x8b, 0xb5, 0xdf, 0xcf,
+ 0x7a, 0x8f, 0x8a, 0x9a,
+};
+static const struct drbg_kat_no_reseed kat144_t = {
+ 8, kat144_entropyin, kat144_nonce, kat144_persstr,
+ kat144_addin0, kat144_addin1, kat144_retbits
+};
+static const struct drbg_kat kat144 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat144_t
+};
+
+static const unsigned char kat145_entropyin[] = {
+ 0xd8, 0xad, 0xd3, 0x82, 0xd4, 0xdc, 0x7a, 0x1d, 0x10, 0xd4, 0x63, 0x03,
+ 0x17, 0x39, 0x18, 0x01,
+};
+static const unsigned char kat145_nonce[] = {
+ 0x6f, 0xc0, 0xb1, 0xa3, 0xaa, 0x2b, 0x3a, 0xdb,
+};
+static const unsigned char kat145_persstr[] = {0};
+static const unsigned char kat145_addin0[] = {
+ 0x10, 0x1f, 0xcf, 0xd6, 0x60, 0x80, 0x75, 0xdc, 0xbb, 0xf2, 0xeb, 0xe8,
+ 0x32, 0xd9, 0x6b, 0x13,
+};
+static const unsigned char kat145_addin1[] = {
+ 0x63, 0x2f, 0x7a, 0x11, 0xfb, 0xa9, 0x79, 0xd2, 0x97, 0x9e, 0x41, 0x7e,
+ 0x2d, 0xed, 0x1d, 0x30,
+};
+static const unsigned char kat145_retbits[] = {
+ 0xa6, 0xa1, 0x55, 0x95, 0xbb, 0xd8, 0x57, 0xbb, 0x62, 0x15, 0x04, 0xc8,
+ 0x5f, 0x03, 0x03, 0x3c, 0xe4, 0x7b, 0x5d, 0xf8, 0x62, 0x96, 0xb8, 0x0d,
+ 0x40, 0xd0, 0x09, 0xfe, 0x6c, 0x5e, 0x1f, 0xff, 0xf0, 0x84, 0x04, 0x56,
+ 0x99, 0x0a, 0x14, 0xf3, 0xa1, 0xc4, 0x9c, 0x36, 0x73, 0x7b, 0x70, 0xb6,
+ 0x2f, 0x40, 0x6f, 0xa3, 0xc5, 0x32, 0x95, 0x2f, 0xb2, 0x2e, 0xfc, 0x76,
+ 0x00, 0x9a, 0x1b, 0x1a,
+};
+static const struct drbg_kat_no_reseed kat145_t = {
+ 9, kat145_entropyin, kat145_nonce, kat145_persstr,
+ kat145_addin0, kat145_addin1, kat145_retbits
+};
+static const struct drbg_kat kat145 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat145_t
+};
+
+static const unsigned char kat146_entropyin[] = {
+ 0xd1, 0x9f, 0xa3, 0x38, 0xc7, 0xbd, 0x52, 0x40, 0x74, 0x7b, 0xac, 0xab,
+ 0x70, 0x32, 0x8f, 0xb3,
+};
+static const unsigned char kat146_nonce[] = {
+ 0x5b, 0x42, 0x82, 0x35, 0x41, 0x42, 0x83, 0xb4,
+};
+static const unsigned char kat146_persstr[] = {0};
+static const unsigned char kat146_addin0[] = {
+ 0xf3, 0x7c, 0x9f, 0xeb, 0x90, 0xc9, 0x6a, 0x26, 0x3f, 0x41, 0xb1, 0xc4,
+ 0x98, 0xd5, 0xe0, 0x75,
+};
+static const unsigned char kat146_addin1[] = {
+ 0xa3, 0xd8, 0x86, 0x96, 0xfc, 0x1a, 0x44, 0x70, 0x28, 0x42, 0x31, 0x71,
+ 0xba, 0xd4, 0x65, 0x24,
+};
+static const unsigned char kat146_retbits[] = {
+ 0x11, 0xee, 0x72, 0xb4, 0x81, 0xd5, 0x54, 0xf0, 0xfe, 0x49, 0xdc, 0x27,
+ 0x37, 0x46, 0x6d, 0x5f, 0x5a, 0x64, 0x76, 0xa2, 0xb5, 0xb2, 0xf9, 0x3c,
+ 0xd6, 0x0e, 0xe8, 0xab, 0x1b, 0xf7, 0x56, 0x3d, 0x3e, 0xbc, 0x60, 0x5e,
+ 0x44, 0xc3, 0x65, 0xe7, 0x86, 0x5b, 0xff, 0x31, 0xc0, 0x77, 0xd1, 0x76,
+ 0xd3, 0x61, 0xa4, 0x24, 0x06, 0x27, 0xde, 0xb2, 0x8a, 0xd5, 0x68, 0x50,
+ 0x46, 0x91, 0xf9, 0x47,
+};
+static const struct drbg_kat_no_reseed kat146_t = {
+ 10, kat146_entropyin, kat146_nonce, kat146_persstr,
+ kat146_addin0, kat146_addin1, kat146_retbits
+};
+static const struct drbg_kat kat146 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat146_t
+};
+
+static const unsigned char kat147_entropyin[] = {
+ 0xc3, 0xd8, 0x2c, 0x63, 0x01, 0x41, 0x77, 0xe6, 0x2b, 0xda, 0x82, 0xdd,
+ 0xe9, 0x11, 0x54, 0x50,
+};
+static const unsigned char kat147_nonce[] = {
+ 0x5e, 0x6f, 0x3b, 0x1c, 0x75, 0x70, 0x6f, 0x5f,
+};
+static const unsigned char kat147_persstr[] = {0};
+static const unsigned char kat147_addin0[] = {
+ 0x72, 0xa7, 0x17, 0xc6, 0x6f, 0xb2, 0x69, 0x06, 0xd6, 0x99, 0x5d, 0x3e,
+ 0xec, 0xc5, 0x79, 0xd9,
+};
+static const unsigned char kat147_addin1[] = {
+ 0xb1, 0xb7, 0xa9, 0xad, 0x3c, 0x64, 0x35, 0x5d, 0x5d, 0x70, 0xf0, 0x3c,
+ 0x7b, 0x83, 0x29, 0xb0,
+};
+static const unsigned char kat147_retbits[] = {
+ 0x34, 0xc3, 0x09, 0xf2, 0x35, 0x27, 0x09, 0xa9, 0x1f, 0x1f, 0x1a, 0x6a,
+ 0xfb, 0x60, 0x14, 0x66, 0xf8, 0x6d, 0xc8, 0x02, 0x2b, 0xcb, 0xfd, 0xee,
+ 0x09, 0x51, 0x90, 0xa8, 0x5f, 0xe1, 0xf0, 0x33, 0x2b, 0x8b, 0xab, 0x32,
+ 0xf4, 0x42, 0x49, 0x43, 0x00, 0x41, 0xcb, 0x0c, 0xf2, 0xc4, 0x0d, 0x9c,
+ 0xdd, 0x0c, 0x0d, 0xf4, 0x23, 0xe3, 0x4f, 0x2d, 0xa8, 0xd7, 0xf7, 0xb8,
+ 0x32, 0x94, 0x56, 0x19,
+};
+static const struct drbg_kat_no_reseed kat147_t = {
+ 11, kat147_entropyin, kat147_nonce, kat147_persstr,
+ kat147_addin0, kat147_addin1, kat147_retbits
+};
+static const struct drbg_kat kat147 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat147_t
+};
+
+static const unsigned char kat148_entropyin[] = {
+ 0x1c, 0x34, 0x80, 0x46, 0x79, 0x40, 0x8c, 0x0d, 0xd1, 0xc0, 0xb0, 0xb2,
+ 0xcb, 0x4c, 0x0c, 0x8d,
+};
+static const unsigned char kat148_nonce[] = {
+ 0x23, 0xe6, 0xd5, 0xa1, 0x31, 0x74, 0x0e, 0xc9,
+};
+static const unsigned char kat148_persstr[] = {0};
+static const unsigned char kat148_addin0[] = {
+ 0x8b, 0x99, 0xe4, 0x48, 0x55, 0x10, 0xe7, 0xc4, 0xef, 0x31, 0x86, 0xc7,
+ 0x5d, 0x0f, 0x42, 0x1d,
+};
+static const unsigned char kat148_addin1[] = {
+ 0xcc, 0x1e, 0xcf, 0x02, 0x3c, 0x9b, 0xea, 0xfb, 0x63, 0x48, 0x69, 0x57,
+ 0x32, 0x7c, 0x2b, 0xde,
+};
+static const unsigned char kat148_retbits[] = {
+ 0x7f, 0xbf, 0x33, 0xf0, 0x51, 0x08, 0x78, 0x6f, 0xe0, 0x19, 0x97, 0x14,
+ 0x6a, 0x27, 0xe5, 0x94, 0x68, 0x76, 0x49, 0x9a, 0x8b, 0xa5, 0x2a, 0x71,
+ 0x47, 0x16, 0xd9, 0x82, 0xce, 0xa2, 0x3f, 0x39, 0x2d, 0x40, 0x23, 0x4d,
+ 0x3e, 0x00, 0x33, 0x8d, 0x1a, 0xc8, 0x80, 0x9d, 0x43, 0xc7, 0x79, 0x42,
+ 0x40, 0x30, 0x19, 0x3b, 0xc6, 0x12, 0x3b, 0x70, 0x67, 0xb6, 0xa8, 0xc2,
+ 0xed, 0x17, 0x9a, 0x25,
+};
+static const struct drbg_kat_no_reseed kat148_t = {
+ 12, kat148_entropyin, kat148_nonce, kat148_persstr,
+ kat148_addin0, kat148_addin1, kat148_retbits
+};
+static const struct drbg_kat kat148 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat148_t
+};
+
+static const unsigned char kat149_entropyin[] = {
+ 0xaa, 0x70, 0xaa, 0x9d, 0x3c, 0x0a, 0x77, 0xf8, 0x68, 0x38, 0x80, 0x5e,
+ 0xef, 0x34, 0x82, 0xba,
+};
+static const unsigned char kat149_nonce[] = {
+ 0xcf, 0x7a, 0x0f, 0x57, 0xc7, 0xde, 0xdf, 0x50,
+};
+static const unsigned char kat149_persstr[] = {0};
+static const unsigned char kat149_addin0[] = {
+ 0xf6, 0xd4, 0x76, 0xea, 0xe4, 0x2f, 0x02, 0xc9, 0xec, 0x21, 0x98, 0x12,
+ 0x29, 0xd0, 0xf9, 0x76,
+};
+static const unsigned char kat149_addin1[] = {
+ 0x1a, 0xa4, 0x1e, 0xfd, 0xf1, 0x06, 0xe5, 0xa3, 0xe5, 0xd9, 0x76, 0x77,
+ 0x8b, 0x8f, 0x0c, 0x32,
+};
+static const unsigned char kat149_retbits[] = {
+ 0x84, 0xc1, 0xc0, 0x61, 0x9f, 0x69, 0x79, 0xe2, 0xf4, 0xd2, 0xab, 0xc6,
+ 0x33, 0x35, 0x42, 0xbf, 0x42, 0xfd, 0x32, 0x79, 0x14, 0x2f, 0x07, 0x1d,
+ 0xad, 0xb2, 0x64, 0x45, 0xfb, 0x2d, 0xe5, 0x1c, 0x4f, 0xad, 0x68, 0x1d,
+ 0xce, 0x89, 0x18, 0xaf, 0x3a, 0xe1, 0x64, 0x19, 0xfa, 0xfa, 0x3c, 0x55,
+ 0x26, 0xd8, 0xc4, 0x78, 0x59, 0x9e, 0x85, 0xee, 0x61, 0xa2, 0x73, 0x18,
+ 0x36, 0x05, 0x45, 0x0e,
+};
+static const struct drbg_kat_no_reseed kat149_t = {
+ 13, kat149_entropyin, kat149_nonce, kat149_persstr,
+ kat149_addin0, kat149_addin1, kat149_retbits
+};
+static const struct drbg_kat kat149 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat149_t
+};
+
+static const unsigned char kat150_entropyin[] = {
+ 0x94, 0xc6, 0x97, 0x57, 0xc9, 0x75, 0xe5, 0x3c, 0xa9, 0x44, 0xcb, 0xe8,
+ 0xf7, 0x68, 0x6f, 0x85,
+};
+static const unsigned char kat150_nonce[] = {
+ 0x6e, 0x14, 0x5c, 0xc7, 0xd7, 0x2d, 0xec, 0x57,
+};
+static const unsigned char kat150_persstr[] = {0};
+static const unsigned char kat150_addin0[] = {
+ 0xce, 0x08, 0x94, 0x6b, 0x04, 0xfd, 0x83, 0x13, 0xdc, 0xda, 0x8c, 0xde,
+ 0x3b, 0x0f, 0xf9, 0xdf,
+};
+static const unsigned char kat150_addin1[] = {
+ 0x9f, 0xfc, 0x93, 0x9d, 0x30, 0x5a, 0xe5, 0x86, 0xd8, 0x6a, 0x1a, 0x14,
+ 0x70, 0x32, 0x68, 0x0b,
+};
+static const unsigned char kat150_retbits[] = {
+ 0xb1, 0xd7, 0xb3, 0x87, 0xa9, 0xf6, 0x7b, 0x91, 0x50, 0x55, 0xe6, 0x82,
+ 0x98, 0xe0, 0x37, 0x73, 0xa0, 0x19, 0x75, 0x56, 0xf8, 0xd4, 0xb7, 0xe0,
+ 0x29, 0x52, 0x03, 0x35, 0xef, 0xdc, 0xe2, 0xac, 0xb0, 0xd4, 0xd4, 0xcd,
+ 0xae, 0x8a, 0xf8, 0xc0, 0x9f, 0xb5, 0x7a, 0x21, 0x5f, 0x20, 0x87, 0xab,
+ 0xb8, 0x4e, 0xc8, 0x5b, 0x12, 0xdc, 0x3a, 0x85, 0x3d, 0x73, 0xa4, 0xdd,
+ 0x11, 0x43, 0x00, 0xc5,
+};
+static const struct drbg_kat_no_reseed kat150_t = {
+ 14, kat150_entropyin, kat150_nonce, kat150_persstr,
+ kat150_addin0, kat150_addin1, kat150_retbits
+};
+static const struct drbg_kat kat150 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat150_t
+};
+
+static const unsigned char kat151_entropyin[] = {
+ 0xab, 0xa3, 0x6f, 0xf7, 0xa5, 0x35, 0x37, 0x45, 0x4b, 0x5c, 0xb2, 0x68,
+ 0x39, 0x17, 0x15, 0x40,
+};
+static const unsigned char kat151_nonce[] = {
+ 0x68, 0x71, 0xc0, 0xf5, 0x26, 0xfb, 0xcd, 0xc7,
+};
+static const unsigned char kat151_persstr[] = {
+ 0xdb, 0xc4, 0x4a, 0xf4, 0x98, 0x16, 0x1f, 0x1f, 0x2a, 0xf6, 0xfc, 0xe6,
+ 0x6c, 0xcc, 0x30, 0xa8,
+};
+static const unsigned char kat151_addin0[] = {0};
+static const unsigned char kat151_addin1[] = {0};
+static const unsigned char kat151_retbits[] = {
+ 0xaf, 0x68, 0x6e, 0x9a, 0xaf, 0x10, 0xaa, 0xbc, 0xbb, 0x44, 0xb3, 0x74,
+ 0x89, 0x53, 0xad, 0x18, 0x5d, 0xbf, 0x12, 0x89, 0x8e, 0x52, 0x4d, 0x04,
+ 0x08, 0x61, 0x02, 0xe4, 0x5f, 0x38, 0x41, 0xc6, 0x50, 0xf6, 0x23, 0xf4,
+ 0x8f, 0x54, 0x2c, 0xaa, 0x14, 0x79, 0x3e, 0x4f, 0xcb, 0xbc, 0xf2, 0xe4,
+ 0x61, 0xbe, 0x1c, 0x01, 0xed, 0x8f, 0x1f, 0x48, 0xb9, 0x70, 0x4d, 0x79,
+ 0xa8, 0xeb, 0xf7, 0x9d,
+};
+static const struct drbg_kat_no_reseed kat151_t = {
+ 0, kat151_entropyin, kat151_nonce, kat151_persstr,
+ kat151_addin0, kat151_addin1, kat151_retbits
+};
+static const struct drbg_kat kat151 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat151_t
+};
+
+static const unsigned char kat152_entropyin[] = {
+ 0x47, 0xaf, 0xb8, 0x3e, 0x3a, 0xda, 0x22, 0x0f, 0x7d, 0x7e, 0x63, 0x82,
+ 0xa8, 0xb3, 0x8c, 0xbb,
+};
+static const unsigned char kat152_nonce[] = {
+ 0x7a, 0xb8, 0xae, 0x9b, 0xac, 0x8b, 0x15, 0xa5,
+};
+static const unsigned char kat152_persstr[] = {
+ 0x8b, 0xec, 0x1c, 0xb2, 0xd1, 0x80, 0xb3, 0x67, 0x7c, 0xd1, 0xa8, 0x60,
+ 0x4b, 0x61, 0x4d, 0xbe,
+};
+static const unsigned char kat152_addin0[] = {0};
+static const unsigned char kat152_addin1[] = {0};
+static const unsigned char kat152_retbits[] = {
+ 0x90, 0xcf, 0x1d, 0x9e, 0x65, 0xd9, 0x76, 0xca, 0xce, 0x2f, 0x20, 0xe7,
+ 0x81, 0x47, 0xd5, 0x04, 0x0d, 0x02, 0x23, 0x7e, 0x04, 0x17, 0x3f, 0x1f,
+ 0x37, 0x10, 0xe5, 0x22, 0x7d, 0xcb, 0x85, 0x64, 0x68, 0x4f, 0x2e, 0xba,
+ 0x38, 0xe1, 0xde, 0xf7, 0x2b, 0x93, 0xbe, 0xdb, 0x44, 0x85, 0xf2, 0xb8,
+ 0x17, 0xee, 0x66, 0xc1, 0x89, 0x02, 0x4b, 0x2a, 0x12, 0x73, 0x65, 0xbc,
+ 0x83, 0x50, 0x08, 0x71,
+};
+static const struct drbg_kat_no_reseed kat152_t = {
+ 1, kat152_entropyin, kat152_nonce, kat152_persstr,
+ kat152_addin0, kat152_addin1, kat152_retbits
+};
+static const struct drbg_kat kat152 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat152_t
+};
+
+static const unsigned char kat153_entropyin[] = {
+ 0xbb, 0x69, 0x93, 0xaf, 0xf4, 0x80, 0x4a, 0x87, 0xdd, 0x42, 0x59, 0x73,
+ 0xfd, 0xe3, 0x53, 0x11,
+};
+static const unsigned char kat153_nonce[] = {
+ 0xfb, 0x14, 0x70, 0x0b, 0x33, 0x5a, 0x01, 0x46,
+};
+static const unsigned char kat153_persstr[] = {
+ 0x1e, 0xb0, 0x65, 0x44, 0xca, 0xa8, 0x6e, 0x2a, 0xc4, 0x58, 0x8a, 0xa8,
+ 0x51, 0xe8, 0xfc, 0x0e,
+};
+static const unsigned char kat153_addin0[] = {0};
+static const unsigned char kat153_addin1[] = {0};
+static const unsigned char kat153_retbits[] = {
+ 0x4e, 0xe7, 0x27, 0x07, 0x3a, 0xba, 0xa3, 0xd7, 0x41, 0x8d, 0x6b, 0x3e,
+ 0x3b, 0xd4, 0x67, 0xc9, 0x28, 0x48, 0x54, 0x42, 0x3b, 0xa6, 0xd4, 0xef,
+ 0x02, 0xb2, 0xda, 0xbf, 0x14, 0xb9, 0xb8, 0x24, 0xb2, 0x7a, 0xda, 0x2b,
+ 0x4a, 0x42, 0xf7, 0xdd, 0x1c, 0xd3, 0x9d, 0xc4, 0x42, 0x0e, 0xe6, 0xe8,
+ 0x43, 0xfa, 0x7f, 0x2e, 0xee, 0x06, 0xbb, 0x05, 0xc6, 0x47, 0xdc, 0xc0,
+ 0xd6, 0x97, 0xc0, 0x09,
+};
+static const struct drbg_kat_no_reseed kat153_t = {
+ 2, kat153_entropyin, kat153_nonce, kat153_persstr,
+ kat153_addin0, kat153_addin1, kat153_retbits
+};
+static const struct drbg_kat kat153 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat153_t
+};
+
+static const unsigned char kat154_entropyin[] = {
+ 0xa0, 0x5d, 0x9d, 0x84, 0xa5, 0x0d, 0xe7, 0x97, 0x01, 0xc7, 0x59, 0x59,
+ 0xaf, 0x26, 0xa8, 0xfa,
+};
+static const unsigned char kat154_nonce[] = {
+ 0x7e, 0xde, 0x7f, 0x16, 0x30, 0xdc, 0x01, 0xf7,
+};
+static const unsigned char kat154_persstr[] = {
+ 0x54, 0xf5, 0xd6, 0xe5, 0xd9, 0xb1, 0xfe, 0xb0, 0xa1, 0xc3, 0xd9, 0xa7,
+ 0xec, 0x81, 0xdd, 0x98,
+};
+static const unsigned char kat154_addin0[] = {0};
+static const unsigned char kat154_addin1[] = {0};
+static const unsigned char kat154_retbits[] = {
+ 0xf4, 0x7a, 0xab, 0x57, 0xdf, 0xff, 0x93, 0x1d, 0x4b, 0xfc, 0x75, 0xa0,
+ 0x13, 0x11, 0x86, 0xf0, 0xf5, 0xc1, 0x50, 0x5e, 0x9c, 0x6c, 0x7e, 0xb9,
+ 0x35, 0xe3, 0x1b, 0x49, 0xf1, 0x34, 0xef, 0xc0, 0x0e, 0x45, 0xfc, 0x96,
+ 0x73, 0x58, 0xee, 0xc4, 0xa9, 0x21, 0xfd, 0xa0, 0xd0, 0x53, 0x7d, 0x9e,
+ 0x4f, 0xb3, 0x3b, 0x26, 0x3d, 0xb8, 0xe0, 0x8e, 0x73, 0xf2, 0x1f, 0xe1,
+ 0x75, 0x05, 0x19, 0x6f,
+};
+static const struct drbg_kat_no_reseed kat154_t = {
+ 3, kat154_entropyin, kat154_nonce, kat154_persstr,
+ kat154_addin0, kat154_addin1, kat154_retbits
+};
+static const struct drbg_kat kat154 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat154_t
+};
+
+static const unsigned char kat155_entropyin[] = {
+ 0x80, 0x7d, 0x1b, 0x10, 0x96, 0xe3, 0xd7, 0xf7, 0x89, 0x03, 0x6d, 0x64,
+ 0x4d, 0xfb, 0x9e, 0x8b,
+};
+static const unsigned char kat155_nonce[] = {
+ 0x8c, 0xd7, 0x7f, 0x71, 0xcc, 0xd8, 0xa3, 0x22,
+};
+static const unsigned char kat155_persstr[] = {
+ 0x4f, 0x72, 0x74, 0x5e, 0x2f, 0x2a, 0xa5, 0x43, 0x61, 0x89, 0xdb, 0x92,
+ 0x27, 0x82, 0x0e, 0x46,
+};
+static const unsigned char kat155_addin0[] = {0};
+static const unsigned char kat155_addin1[] = {0};
+static const unsigned char kat155_retbits[] = {
+ 0xff, 0x4a, 0xe0, 0x06, 0x4c, 0x25, 0xfc, 0xef, 0x07, 0x4a, 0xb3, 0x65,
+ 0x0e, 0xb6, 0xd3, 0x04, 0x4f, 0x86, 0x68, 0x7e, 0x6d, 0xb2, 0x26, 0x29,
+ 0x99, 0x2b, 0x08, 0xed, 0x07, 0x8c, 0x65, 0xd0, 0x3d, 0xaf, 0x62, 0x41,
+ 0xa3, 0x10, 0xe5, 0x76, 0x3c, 0x29, 0x86, 0x63, 0x84, 0x8e, 0x32, 0xd0,
+ 0x61, 0x4e, 0x98, 0x98, 0x9a, 0x16, 0xd3, 0x7d, 0xc1, 0x72, 0x91, 0x35,
+ 0xfc, 0xa5, 0xe6, 0x2e,
+};
+static const struct drbg_kat_no_reseed kat155_t = {
+ 4, kat155_entropyin, kat155_nonce, kat155_persstr,
+ kat155_addin0, kat155_addin1, kat155_retbits
+};
+static const struct drbg_kat kat155 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat155_t
+};
+
+static const unsigned char kat156_entropyin[] = {
+ 0x1a, 0xbc, 0xe2, 0x1f, 0x12, 0x33, 0x68, 0xb2, 0x6c, 0x66, 0x56, 0xb0,
+ 0xce, 0xbc, 0x03, 0xe8,
+};
+static const unsigned char kat156_nonce[] = {
+ 0x1f, 0x7a, 0x6d, 0x5b, 0xc2, 0xcb, 0x97, 0x59,
+};
+static const unsigned char kat156_persstr[] = {
+ 0x00, 0xcd, 0x25, 0x9b, 0xb8, 0x7e, 0x4e, 0x6e, 0x21, 0x3e, 0xd4, 0x4e,
+ 0xec, 0x19, 0xd9, 0x9d,
+};
+static const unsigned char kat156_addin0[] = {0};
+static const unsigned char kat156_addin1[] = {0};
+static const unsigned char kat156_retbits[] = {
+ 0x86, 0xc0, 0x0d, 0x31, 0x81, 0xc1, 0xb6, 0x06, 0xc5, 0x1f, 0x90, 0x98,
+ 0x93, 0x83, 0xb4, 0xb8, 0x92, 0x2e, 0x4a, 0x19, 0x0b, 0x94, 0x01, 0x65,
+ 0x8f, 0x8d, 0x45, 0x13, 0x69, 0x7c, 0xa7, 0xd5, 0x84, 0xf5, 0xfc, 0xce,
+ 0xb3, 0x32, 0x4f, 0x62, 0x4c, 0x47, 0x81, 0xdf, 0xe5, 0x5c, 0x0d, 0xba,
+ 0x2d, 0x66, 0xbd, 0x85, 0x8f, 0xb6, 0x43, 0xf2, 0x3c, 0xe5, 0xd6, 0x7e,
+ 0x57, 0x25, 0x00, 0x07,
+};
+static const struct drbg_kat_no_reseed kat156_t = {
+ 5, kat156_entropyin, kat156_nonce, kat156_persstr,
+ kat156_addin0, kat156_addin1, kat156_retbits
+};
+static const struct drbg_kat kat156 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat156_t
+};
+
+static const unsigned char kat157_entropyin[] = {
+ 0x06, 0xd5, 0xfb, 0x81, 0x4c, 0xa4, 0xb2, 0xba, 0xc9, 0xe1, 0xcf, 0xba,
+ 0x0f, 0x13, 0x69, 0x9d,
+};
+static const unsigned char kat157_nonce[] = {
+ 0x0e, 0xa8, 0x7b, 0x9f, 0x3b, 0xb1, 0xe6, 0x29,
+};
+static const unsigned char kat157_persstr[] = {
+ 0xf6, 0x36, 0x79, 0xdf, 0xa3, 0x53, 0x70, 0x3f, 0x12, 0xe7, 0x23, 0x61,
+ 0x73, 0xc7, 0xd3, 0x20,
+};
+static const unsigned char kat157_addin0[] = {0};
+static const unsigned char kat157_addin1[] = {0};
+static const unsigned char kat157_retbits[] = {
+ 0xe0, 0xc8, 0xff, 0x1f, 0x1d, 0x2c, 0x69, 0xaf, 0xca, 0xe0, 0xb7, 0x3b,
+ 0xe8, 0xb3, 0xc4, 0xc7, 0x41, 0x3f, 0x7f, 0xbc, 0xbe, 0xfc, 0x3b, 0xcf,
+ 0x1e, 0x68, 0x8d, 0x2a, 0x7d, 0x08, 0x49, 0xfd, 0xee, 0x60, 0xbd, 0xe9,
+ 0x1a, 0x0f, 0xb1, 0xa5, 0xef, 0x4b, 0xf3, 0xdf, 0xb3, 0x36, 0xb7, 0x3e,
+ 0xd0, 0x47, 0xdf, 0xa7, 0x74, 0x77, 0xa5, 0x1c, 0x6d, 0xee, 0x81, 0x72,
+ 0x63, 0xa2, 0x0c, 0x37,
+};
+static const struct drbg_kat_no_reseed kat157_t = {
+ 6, kat157_entropyin, kat157_nonce, kat157_persstr,
+ kat157_addin0, kat157_addin1, kat157_retbits
+};
+static const struct drbg_kat kat157 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat157_t
+};
+
+static const unsigned char kat158_entropyin[] = {
+ 0xdd, 0x3b, 0x7c, 0xfc, 0x51, 0x8c, 0x18, 0x0c, 0xf2, 0x89, 0xf1, 0x45,
+ 0x25, 0x15, 0x0c, 0xa5,
+};
+static const unsigned char kat158_nonce[] = {
+ 0x36, 0x94, 0x04, 0x3c, 0x71, 0xc2, 0xdd, 0xc5,
+};
+static const unsigned char kat158_persstr[] = {
+ 0x3b, 0x1c, 0x08, 0xfa, 0xb6, 0x36, 0x18, 0x51, 0xd7, 0xa5, 0x18, 0xae,
+ 0x35, 0x5b, 0x8c, 0x9b,
+};
+static const unsigned char kat158_addin0[] = {0};
+static const unsigned char kat158_addin1[] = {0};
+static const unsigned char kat158_retbits[] = {
+ 0x59, 0x16, 0x4b, 0xac, 0x7a, 0x71, 0x4f, 0xcd, 0x5a, 0x45, 0x80, 0xfb,
+ 0x54, 0xed, 0x4d, 0xdf, 0x99, 0xc3, 0x9c, 0xf5, 0x9c, 0x23, 0xf8, 0x5f,
+ 0x6c, 0x52, 0x16, 0xf4, 0xe8, 0x9c, 0xf2, 0x8d, 0xa1, 0x59, 0x9f, 0x82,
+ 0x57, 0xa6, 0xaf, 0xc3, 0x02, 0xed, 0x3a, 0x1d, 0xec, 0x00, 0x3f, 0xf4,
+ 0x50, 0x91, 0x2c, 0x2b, 0xcd, 0x68, 0x2c, 0xd3, 0x40, 0x79, 0xcf, 0xb3,
+ 0xcc, 0xf2, 0x59, 0x3a,
+};
+static const struct drbg_kat_no_reseed kat158_t = {
+ 7, kat158_entropyin, kat158_nonce, kat158_persstr,
+ kat158_addin0, kat158_addin1, kat158_retbits
+};
+static const struct drbg_kat kat158 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat158_t
+};
+
+static const unsigned char kat159_entropyin[] = {
+ 0xb7, 0x31, 0x4b, 0xac, 0xd0, 0xb3, 0xe9, 0xe2, 0x21, 0x4e, 0x11, 0xa4,
+ 0x9c, 0x4f, 0xab, 0x54,
+};
+static const unsigned char kat159_nonce[] = {
+ 0x8c, 0xd5, 0x9a, 0x9c, 0x39, 0x50, 0x1c, 0x0b,
+};
+static const unsigned char kat159_persstr[] = {
+ 0xb6, 0xe3, 0xa4, 0x64, 0x4f, 0xb9, 0x13, 0xa5, 0x4c, 0x89, 0x21, 0xcb,
+ 0xc1, 0x73, 0x72, 0x38,
+};
+static const unsigned char kat159_addin0[] = {0};
+static const unsigned char kat159_addin1[] = {0};
+static const unsigned char kat159_retbits[] = {
+ 0xe9, 0x2c, 0x97, 0xcc, 0xbb, 0xd6, 0x01, 0x31, 0x78, 0xee, 0x06, 0xd0,
+ 0x1a, 0xd2, 0xc9, 0xeb, 0x54, 0x64, 0xa7, 0xe3, 0x04, 0x32, 0xb9, 0x43,
+ 0xe0, 0xb3, 0x71, 0xf1, 0x36, 0xa9, 0x94, 0xb9, 0xf5, 0x44, 0xf3, 0x7b,
+ 0x60, 0x56, 0x1e, 0x10, 0x25, 0xb1, 0x2b, 0x5a, 0x15, 0xcb, 0x66, 0x1b,
+ 0x30, 0x1b, 0x5d, 0xd4, 0x38, 0x4b, 0x8b, 0xc0, 0x0d, 0x1d, 0x72, 0xb3,
+ 0xc6, 0x18, 0xf8, 0x75,
+};
+static const struct drbg_kat_no_reseed kat159_t = {
+ 8, kat159_entropyin, kat159_nonce, kat159_persstr,
+ kat159_addin0, kat159_addin1, kat159_retbits
+};
+static const struct drbg_kat kat159 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat159_t
+};
+
+static const unsigned char kat160_entropyin[] = {
+ 0xd6, 0x2b, 0x1f, 0xc2, 0xb0, 0x45, 0x71, 0x8a, 0x3f, 0xe5, 0x9d, 0xfa,
+ 0xc4, 0xa1, 0xc0, 0x3b,
+};
+static const unsigned char kat160_nonce[] = {
+ 0x41, 0x99, 0x17, 0xd5, 0x8a, 0x67, 0x56, 0xa5,
+};
+static const unsigned char kat160_persstr[] = {
+ 0xf4, 0x79, 0x4b, 0xdc, 0x10, 0x9f, 0x13, 0x00, 0x4b, 0x89, 0x3b, 0x32,
+ 0x83, 0xc0, 0x97, 0x7e,
+};
+static const unsigned char kat160_addin0[] = {0};
+static const unsigned char kat160_addin1[] = {0};
+static const unsigned char kat160_retbits[] = {
+ 0x05, 0x42, 0xdf, 0xda, 0xb8, 0x8e, 0x34, 0x91, 0x63, 0xed, 0x9b, 0xa6,
+ 0x34, 0xee, 0x76, 0x25, 0x7d, 0xc9, 0x27, 0x66, 0x61, 0xcd, 0x5d, 0xd2,
+ 0xfa, 0xa9, 0x31, 0xbc, 0x3a, 0x2e, 0x9c, 0x2d, 0x17, 0xe5, 0x70, 0xff,
+ 0xa1, 0xa5, 0xf1, 0x44, 0x96, 0xf0, 0xea, 0xc3, 0x33, 0x9e, 0xfd, 0xe4,
+ 0x6a, 0xa4, 0x0e, 0x87, 0xf2, 0x1a, 0x98, 0x54, 0x95, 0xfd, 0xa3, 0x94,
+ 0xf2, 0x06, 0x6e, 0xbb,
+};
+static const struct drbg_kat_no_reseed kat160_t = {
+ 9, kat160_entropyin, kat160_nonce, kat160_persstr,
+ kat160_addin0, kat160_addin1, kat160_retbits
+};
+static const struct drbg_kat kat160 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat160_t
+};
+
+static const unsigned char kat161_entropyin[] = {
+ 0x91, 0xb4, 0xaa, 0x7d, 0x56, 0x58, 0x32, 0xe9, 0x6a, 0x21, 0xd6, 0x80,
+ 0xa0, 0xec, 0xdb, 0x4c,
+};
+static const unsigned char kat161_nonce[] = {
+ 0x06, 0x09, 0x09, 0xe2, 0xce, 0x8b, 0x2d, 0xc8,
+};
+static const unsigned char kat161_persstr[] = {
+ 0x5c, 0xba, 0xce, 0xb8, 0x9c, 0x15, 0x0d, 0x22, 0x9b, 0x51, 0x6c, 0x34,
+ 0x93, 0x60, 0xf2, 0x7f,
+};
+static const unsigned char kat161_addin0[] = {0};
+static const unsigned char kat161_addin1[] = {0};
+static const unsigned char kat161_retbits[] = {
+ 0xc0, 0x79, 0xc2, 0x91, 0x7e, 0x8f, 0x6b, 0x84, 0xc5, 0x8e, 0x02, 0x26,
+ 0xad, 0x0b, 0x8a, 0x60, 0xa8, 0x7b, 0x88, 0x22, 0xa9, 0x90, 0x45, 0x9d,
+ 0xe2, 0x4c, 0xc6, 0x55, 0x4c, 0x7f, 0x24, 0x1a, 0xff, 0x30, 0xcd, 0xea,
+ 0x61, 0xa7, 0x48, 0x47, 0x0a, 0x58, 0xc9, 0x4a, 0x15, 0x0e, 0xbd, 0xdc,
+ 0x35, 0x5c, 0x64, 0x4d, 0xd4, 0x78, 0x6e, 0x36, 0xf1, 0x7e, 0xcf, 0xce,
+ 0xa7, 0x33, 0x9d, 0x42,
+};
+static const struct drbg_kat_no_reseed kat161_t = {
+ 10, kat161_entropyin, kat161_nonce, kat161_persstr,
+ kat161_addin0, kat161_addin1, kat161_retbits
+};
+static const struct drbg_kat kat161 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat161_t
+};
+
+static const unsigned char kat162_entropyin[] = {
+ 0x32, 0xe1, 0x66, 0xc0, 0x93, 0x8d, 0x6d, 0xa7, 0x21, 0xcf, 0xce, 0x23,
+ 0x5a, 0x66, 0xa1, 0x80,
+};
+static const unsigned char kat162_nonce[] = {
+ 0xeb, 0x68, 0x79, 0x96, 0xa8, 0xff, 0x63, 0x94,
+};
+static const unsigned char kat162_persstr[] = {
+ 0x05, 0xb9, 0x9f, 0x8d, 0x9f, 0x10, 0x2c, 0x5f, 0xf6, 0xd0, 0xd4, 0x5c,
+ 0x4d, 0x68, 0x5f, 0xf8,
+};
+static const unsigned char kat162_addin0[] = {0};
+static const unsigned char kat162_addin1[] = {0};
+static const unsigned char kat162_retbits[] = {
+ 0xec, 0x5a, 0xe3, 0x97, 0x25, 0x72, 0x20, 0x45, 0x2e, 0x61, 0x05, 0xa5,
+ 0xa2, 0x9f, 0x56, 0xd9, 0x33, 0x21, 0x32, 0xf5, 0x33, 0x8d, 0x19, 0xe8,
+ 0x1a, 0xf6, 0xd3, 0x10, 0x22, 0xbb, 0x91, 0xf8, 0x7f, 0x04, 0xe4, 0x52,
+ 0x0d, 0x50, 0x76, 0x61, 0x43, 0xd3, 0x53, 0x3e, 0x7b, 0x9d, 0x57, 0x0a,
+ 0x80, 0x68, 0x84, 0xa3, 0xdf, 0xe2, 0x81, 0xe0, 0x00, 0xf7, 0x7e, 0x7b,
+ 0x85, 0x59, 0x44, 0x34,
+};
+static const struct drbg_kat_no_reseed kat162_t = {
+ 11, kat162_entropyin, kat162_nonce, kat162_persstr,
+ kat162_addin0, kat162_addin1, kat162_retbits
+};
+static const struct drbg_kat kat162 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat162_t
+};
+
+static const unsigned char kat163_entropyin[] = {
+ 0x3a, 0x3d, 0x6a, 0xa9, 0xdb, 0x0f, 0x54, 0x0a, 0x37, 0xeb, 0x81, 0x50,
+ 0x9d, 0xdb, 0x65, 0x5d,
+};
+static const unsigned char kat163_nonce[] = {
+ 0x1f, 0xe8, 0xc2, 0x5b, 0x27, 0xee, 0x3a, 0xbe,
+};
+static const unsigned char kat163_persstr[] = {
+ 0x8e, 0x15, 0xa5, 0xad, 0x7a, 0x5f, 0x29, 0x38, 0xeb, 0xdb, 0x5c, 0x08,
+ 0x8b, 0xdc, 0xf3, 0x07,
+};
+static const unsigned char kat163_addin0[] = {0};
+static const unsigned char kat163_addin1[] = {0};
+static const unsigned char kat163_retbits[] = {
+ 0x8d, 0x7e, 0xae, 0xe5, 0x0e, 0x87, 0xf0, 0xbc, 0x34, 0xa4, 0x9b, 0xe9,
+ 0x4e, 0x7a, 0x4a, 0x64, 0xfd, 0x1e, 0xc9, 0x86, 0x1e, 0xf3, 0x34, 0x22,
+ 0x2f, 0xfb, 0x15, 0xaf, 0x89, 0x29, 0xf9, 0xed, 0x42, 0xfb, 0x3f, 0xa6,
+ 0x29, 0xd6, 0xba, 0x39, 0x70, 0x6b, 0x91, 0x93, 0xe1, 0x2b, 0xa2, 0x40,
+ 0x44, 0x76, 0x17, 0x7c, 0x4f, 0x69, 0xbf, 0xd1, 0x8c, 0xfe, 0x59, 0x55,
+ 0x5d, 0xca, 0x7c, 0x04,
+};
+static const struct drbg_kat_no_reseed kat163_t = {
+ 12, kat163_entropyin, kat163_nonce, kat163_persstr,
+ kat163_addin0, kat163_addin1, kat163_retbits
+};
+static const struct drbg_kat kat163 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat163_t
+};
+
+static const unsigned char kat164_entropyin[] = {
+ 0xc0, 0x84, 0x69, 0xf8, 0x36, 0xfc, 0x12, 0x48, 0xde, 0xd4, 0xed, 0xd8,
+ 0xaf, 0x4d, 0x9d, 0xe8,
+};
+static const unsigned char kat164_nonce[] = {
+ 0x74, 0x6e, 0xa2, 0xd7, 0x4c, 0xcc, 0xc4, 0xcd,
+};
+static const unsigned char kat164_persstr[] = {
+ 0xa5, 0x18, 0x18, 0xae, 0x54, 0x37, 0x56, 0x25, 0x52, 0x65, 0x11, 0x80,
+ 0xf3, 0xde, 0x5d, 0xae,
+};
+static const unsigned char kat164_addin0[] = {0};
+static const unsigned char kat164_addin1[] = {0};
+static const unsigned char kat164_retbits[] = {
+ 0xa0, 0x8a, 0xee, 0xde, 0x46, 0x3f, 0xc9, 0xac, 0x48, 0x90, 0x7a, 0xb4,
+ 0xb0, 0xb3, 0x9d, 0x6f, 0x86, 0xa8, 0x79, 0xf4, 0x21, 0x81, 0x61, 0x41,
+ 0xa0, 0x52, 0xeb, 0x48, 0xd8, 0x7f, 0xf5, 0xd9, 0xb5, 0xb6, 0xcb, 0xfe,
+ 0xef, 0xdd, 0x8c, 0xfc, 0x17, 0x72, 0xeb, 0x62, 0x67, 0x12, 0x45, 0x3f,
+ 0x88, 0xec, 0x74, 0x7f, 0x6a, 0x05, 0xaf, 0x91, 0x7c, 0x9f, 0xa1, 0x61,
+ 0xed, 0xe1, 0x1d, 0x7f,
+};
+static const struct drbg_kat_no_reseed kat164_t = {
+ 13, kat164_entropyin, kat164_nonce, kat164_persstr,
+ kat164_addin0, kat164_addin1, kat164_retbits
+};
+static const struct drbg_kat kat164 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat164_t
+};
+
+static const unsigned char kat165_entropyin[] = {
+ 0x0c, 0xe4, 0xc1, 0x82, 0x8f, 0x9c, 0x9f, 0x0a, 0xea, 0xb4, 0x95, 0x36,
+ 0x72, 0x23, 0x59, 0x23,
+};
+static const unsigned char kat165_nonce[] = {
+ 0x46, 0x4b, 0x42, 0xc9, 0xfc, 0x5b, 0x38, 0x31,
+};
+static const unsigned char kat165_persstr[] = {
+ 0x48, 0xde, 0x34, 0xd8, 0x48, 0x29, 0x8d, 0xcf, 0x3f, 0x58, 0xc5, 0x2d,
+ 0x96, 0xc7, 0x7b, 0xf5,
+};
+static const unsigned char kat165_addin0[] = {0};
+static const unsigned char kat165_addin1[] = {0};
+static const unsigned char kat165_retbits[] = {
+ 0xa7, 0xd3, 0x79, 0x02, 0x26, 0xf5, 0xab, 0x5b, 0x38, 0x33, 0xdc, 0xc7,
+ 0x63, 0xc2, 0xe9, 0xe7, 0xc5, 0xb7, 0x7d, 0x57, 0xc2, 0xfa, 0x26, 0x15,
+ 0x47, 0xae, 0x0e, 0x39, 0xe9, 0x78, 0x4d, 0xf2, 0x69, 0xd0, 0x8b, 0xbd,
+ 0x40, 0x36, 0x46, 0x2f, 0x3a, 0xcc, 0xc7, 0x1b, 0x37, 0x8b, 0x09, 0x41,
+ 0xe9, 0x9c, 0x32, 0x7c, 0x4a, 0x50, 0x34, 0x39, 0xa9, 0x3b, 0x4e, 0xc7,
+ 0xa0, 0x39, 0xa2, 0xa8,
+};
+static const struct drbg_kat_no_reseed kat165_t = {
+ 14, kat165_entropyin, kat165_nonce, kat165_persstr,
+ kat165_addin0, kat165_addin1, kat165_retbits
+};
+static const struct drbg_kat kat165 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat165_t
+};
+
+static const unsigned char kat166_entropyin[] = {
+ 0x70, 0x7a, 0x43, 0x07, 0x2e, 0xac, 0xb8, 0xce, 0xa9, 0x5f, 0xb8, 0x52,
+ 0x1a, 0xe5, 0x16, 0x0b,
+};
+static const unsigned char kat166_nonce[] = {
+ 0xfd, 0x62, 0x12, 0x13, 0x26, 0x16, 0x30, 0xad,
+};
+static const unsigned char kat166_persstr[] = {
+ 0x6b, 0xf9, 0xa7, 0x2e, 0xaf, 0xe3, 0x5d, 0x58, 0x3c, 0x91, 0x5c, 0x95,
+ 0x25, 0x74, 0x7b, 0xa0,
+};
+static const unsigned char kat166_addin0[] = {
+ 0xe3, 0xdf, 0xd6, 0x92, 0x7c, 0x4a, 0xe1, 0x03, 0x43, 0x2e, 0xb6, 0x19,
+ 0x63, 0x67, 0xec, 0xee,
+};
+static const unsigned char kat166_addin1[] = {
+ 0xe1, 0x8c, 0xd5, 0x04, 0xe9, 0x40, 0x27, 0x53, 0x3c, 0xf3, 0x30, 0x71,
+ 0xca, 0x93, 0x1b, 0x60,
+};
+static const unsigned char kat166_retbits[] = {
+ 0xee, 0x46, 0x3c, 0xdc, 0x78, 0xdd, 0x25, 0x3c, 0x44, 0x66, 0xdd, 0xc2,
+ 0xe3, 0x5c, 0xc4, 0xa9, 0x1a, 0xf2, 0x0a, 0xd3, 0xb3, 0x39, 0x66, 0x69,
+ 0xce, 0xf5, 0x22, 0x1b, 0x0a, 0x9c, 0xcc, 0x5d, 0xfc, 0x72, 0x3b, 0x2f,
+ 0xe1, 0xe5, 0x7f, 0xa2, 0x6d, 0xd0, 0x30, 0xad, 0x0b, 0x6e, 0xa1, 0x4e,
+ 0xcb, 0x89, 0xf9, 0x1c, 0x4b, 0xc6, 0x93, 0x82, 0xa0, 0x1d, 0x8d, 0xfa,
+ 0x6f, 0x1d, 0xff, 0x8a,
+};
+static const struct drbg_kat_no_reseed kat166_t = {
+ 0, kat166_entropyin, kat166_nonce, kat166_persstr,
+ kat166_addin0, kat166_addin1, kat166_retbits
+};
+static const struct drbg_kat kat166 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat166_t
+};
+
+static const unsigned char kat167_entropyin[] = {
+ 0x35, 0x67, 0xac, 0x54, 0xb9, 0x03, 0xfd, 0x5d, 0xdc, 0x57, 0x23, 0x4c,
+ 0x31, 0x9b, 0x14, 0x15,
+};
+static const unsigned char kat167_nonce[] = {
+ 0x8f, 0x75, 0xc5, 0x6a, 0x85, 0x77, 0x21, 0x92,
+};
+static const unsigned char kat167_persstr[] = {
+ 0xd1, 0xe3, 0xff, 0xed, 0x85, 0x21, 0x1c, 0x40, 0x8e, 0x31, 0xdb, 0x12,
+ 0xe8, 0x5b, 0x75, 0xdb,
+};
+static const unsigned char kat167_addin0[] = {
+ 0xcc, 0x38, 0x84, 0x33, 0x5e, 0x19, 0x42, 0x7c, 0xaf, 0x09, 0xf0, 0x1c,
+ 0x63, 0x4b, 0x30, 0x8a,
+};
+static const unsigned char kat167_addin1[] = {
+ 0xf7, 0x73, 0x3d, 0x02, 0x51, 0xff, 0x02, 0xaf, 0xc0, 0xe9, 0x61, 0xc1,
+ 0x12, 0x28, 0x84, 0xfc,
+};
+static const unsigned char kat167_retbits[] = {
+ 0x28, 0xc6, 0x9b, 0xb4, 0x98, 0x76, 0x42, 0xe5, 0xa4, 0x67, 0x93, 0x8f,
+ 0x52, 0xa7, 0x37, 0x14, 0xd3, 0x9a, 0xd0, 0x89, 0xee, 0x09, 0xda, 0xbe,
+ 0x70, 0xd6, 0x90, 0x36, 0x17, 0x8f, 0x59, 0x98, 0x18, 0x6c, 0xc6, 0x45,
+ 0x10, 0x0b, 0x56, 0xf9, 0x8e, 0xf4, 0x5c, 0xe3, 0x5b, 0x06, 0xf0, 0x9c,
+ 0x26, 0x20, 0xba, 0x68, 0x0a, 0x5a, 0x03, 0xd3, 0xd9, 0x59, 0x43, 0xed,
+ 0x17, 0x16, 0x0f, 0xe4,
+};
+static const struct drbg_kat_no_reseed kat167_t = {
+ 1, kat167_entropyin, kat167_nonce, kat167_persstr,
+ kat167_addin0, kat167_addin1, kat167_retbits
+};
+static const struct drbg_kat kat167 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat167_t
+};
+
+static const unsigned char kat168_entropyin[] = {
+ 0x41, 0x76, 0x72, 0x58, 0xe0, 0x6e, 0x50, 0x11, 0x24, 0xf3, 0xdb, 0x8b,
+ 0xe4, 0x58, 0xd3, 0xbf,
+};
+static const unsigned char kat168_nonce[] = {
+ 0xde, 0x8f, 0xa0, 0xa7, 0x9f, 0x1a, 0x7f, 0x0c,
+};
+static const unsigned char kat168_persstr[] = {
+ 0x9d, 0xab, 0x2f, 0x46, 0xd2, 0x2d, 0x37, 0x86, 0x08, 0xe2, 0x1f, 0xc2,
+ 0x37, 0xe9, 0x98, 0x71,
+};
+static const unsigned char kat168_addin0[] = {
+ 0xea, 0x41, 0xd1, 0x33, 0xb4, 0xf8, 0x6a, 0x35, 0x22, 0x7b, 0x76, 0x16,
+ 0x7f, 0x51, 0xbb, 0x5f,
+};
+static const unsigned char kat168_addin1[] = {
+ 0x71, 0x61, 0xe1, 0x2c, 0x6f, 0x65, 0xc1, 0x42, 0xba, 0xf9, 0x4f, 0x1a,
+ 0x09, 0xe9, 0x4e, 0x22,
+};
+static const unsigned char kat168_retbits[] = {
+ 0xb3, 0x90, 0xc9, 0x52, 0x0e, 0xad, 0x28, 0x82, 0x69, 0x2a, 0x29, 0x59,
+ 0x3d, 0x16, 0x5c, 0x58, 0xbc, 0x66, 0x14, 0x62, 0x11, 0x2a, 0xf6, 0xd2,
+ 0x5a, 0x57, 0x14, 0x73, 0xe6, 0x1f, 0x1c, 0xbc, 0xd0, 0x75, 0xe3, 0xad,
+ 0x1c, 0xae, 0xeb, 0x51, 0xcb, 0x99, 0x28, 0x40, 0x51, 0xce, 0xa4, 0x5a,
+ 0x17, 0x06, 0xe9, 0x84, 0xe2, 0x7c, 0x32, 0x84, 0xfc, 0x1e, 0x87, 0xab,
+ 0x68, 0xa6, 0xf1, 0x46,
+};
+static const struct drbg_kat_no_reseed kat168_t = {
+ 2, kat168_entropyin, kat168_nonce, kat168_persstr,
+ kat168_addin0, kat168_addin1, kat168_retbits
+};
+static const struct drbg_kat kat168 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat168_t
+};
+
+static const unsigned char kat169_entropyin[] = {
+ 0x19, 0xdb, 0x2d, 0xcd, 0xc5, 0x7d, 0xf2, 0x1e, 0x55, 0xb6, 0x56, 0x4e,
+ 0xae, 0x47, 0x41, 0x0b,
+};
+static const unsigned char kat169_nonce[] = {
+ 0xeb, 0xec, 0x8e, 0xce, 0x62, 0xd3, 0x29, 0xb6,
+};
+static const unsigned char kat169_persstr[] = {
+ 0x80, 0xba, 0xec, 0xa8, 0x2b, 0x3b, 0xa2, 0x07, 0xb9, 0xf3, 0x75, 0x08,
+ 0x38, 0xbd, 0xe4, 0x98,
+};
+static const unsigned char kat169_addin0[] = {
+ 0x5d, 0x74, 0xcd, 0xd7, 0xbc, 0xbe, 0x7b, 0xc9, 0x48, 0xb8, 0xf1, 0x3e,
+ 0xfa, 0x83, 0x5a, 0xd4,
+};
+static const unsigned char kat169_addin1[] = {
+ 0x17, 0xbb, 0x7c, 0xb9, 0x1b, 0x48, 0x11, 0xa5, 0xe7, 0xdb, 0x26, 0x78,
+ 0x4c, 0xbb, 0xc2, 0xe5,
+};
+static const unsigned char kat169_retbits[] = {
+ 0x26, 0x54, 0xd9, 0x86, 0x67, 0xf7, 0x56, 0x15, 0xfb, 0x6c, 0x74, 0xd5,
+ 0xb9, 0x0b, 0x62, 0x3c, 0xcc, 0xb9, 0x62, 0x49, 0xe1, 0x4e, 0x08, 0xe8,
+ 0x8d, 0x1c, 0xb5, 0xe0, 0x90, 0x93, 0x26, 0xb6, 0x77, 0x67, 0xa5, 0x73,
+ 0xe0, 0xa4, 0xd1, 0xdf, 0x05, 0x7f, 0x2d, 0xe7, 0xa4, 0x95, 0xde, 0xae,
+ 0xcb, 0xeb, 0x7e, 0x25, 0xe3, 0xaa, 0x82, 0xde, 0x55, 0x59, 0x08, 0xbf,
+ 0xe3, 0xcc, 0x6a, 0x85,
+};
+static const struct drbg_kat_no_reseed kat169_t = {
+ 3, kat169_entropyin, kat169_nonce, kat169_persstr,
+ kat169_addin0, kat169_addin1, kat169_retbits
+};
+static const struct drbg_kat kat169 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat169_t
+};
+
+static const unsigned char kat170_entropyin[] = {
+ 0x64, 0xd7, 0xb4, 0x2c, 0x52, 0x64, 0x33, 0x76, 0xd8, 0xa1, 0x1b, 0x0d,
+ 0xa5, 0xcc, 0xa5, 0xe6,
+};
+static const unsigned char kat170_nonce[] = {
+ 0x6f, 0xeb, 0x03, 0x5f, 0x39, 0x14, 0x25, 0x14,
+};
+static const unsigned char kat170_persstr[] = {
+ 0x3f, 0x12, 0xa6, 0xf2, 0x40, 0x01, 0xb9, 0x8c, 0x1f, 0x24, 0xab, 0xcf,
+ 0xab, 0x68, 0x95, 0x08,
+};
+static const unsigned char kat170_addin0[] = {
+ 0xfe, 0xe4, 0x82, 0xb1, 0xfe, 0xa0, 0x53, 0x65, 0xab, 0xa0, 0x7b, 0xc7,
+ 0xc3, 0x35, 0x1c, 0x6d,
+};
+static const unsigned char kat170_addin1[] = {
+ 0xaf, 0x13, 0x59, 0x83, 0xab, 0x81, 0x13, 0x91, 0x45, 0x35, 0x13, 0x49,
+ 0x18, 0x78, 0xb5, 0xb5,
+};
+static const unsigned char kat170_retbits[] = {
+ 0x0c, 0x21, 0xf6, 0x97, 0xf1, 0xb0, 0x0d, 0x22, 0x83, 0xae, 0xe4, 0xe7,
+ 0xb7, 0xe1, 0x01, 0x33, 0x38, 0x6a, 0xb0, 0xab, 0xfa, 0xdb, 0x5e, 0x14,
+ 0xbf, 0xe5, 0xb4, 0x52, 0xa6, 0xd9, 0x17, 0x46, 0x2a, 0x7b, 0xd0, 0xed,
+ 0xa0, 0x6f, 0xa1, 0x41, 0xb1, 0xbc, 0x3e, 0xab, 0x4f, 0x47, 0x73, 0xa2,
+ 0x40, 0xbe, 0x73, 0x51, 0xe3, 0x2a, 0x1d, 0xab, 0xdd, 0xc5, 0x7b, 0xae,
+ 0x02, 0xd2, 0x6c, 0xd2,
+};
+static const struct drbg_kat_no_reseed kat170_t = {
+ 4, kat170_entropyin, kat170_nonce, kat170_persstr,
+ kat170_addin0, kat170_addin1, kat170_retbits
+};
+static const struct drbg_kat kat170 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat170_t
+};
+
+static const unsigned char kat171_entropyin[] = {
+ 0xa5, 0x5a, 0x5a, 0x07, 0x29, 0xc3, 0x9e, 0xfb, 0xc8, 0x6c, 0xe6, 0x4d,
+ 0x91, 0x51, 0x03, 0x4e,
+};
+static const unsigned char kat171_nonce[] = {
+ 0x10, 0xf1, 0x15, 0x57, 0x73, 0xfb, 0xcd, 0x3b,
+};
+static const unsigned char kat171_persstr[] = {
+ 0x6c, 0x6f, 0x3f, 0x77, 0x80, 0x15, 0xb2, 0xd3, 0x34, 0x92, 0x2e, 0x7a,
+ 0x13, 0xea, 0xd6, 0xe6,
+};
+static const unsigned char kat171_addin0[] = {
+ 0x84, 0x10, 0x15, 0x5a, 0x9f, 0x4d, 0x40, 0xa3, 0x29, 0x8d, 0x5b, 0x0f,
+ 0x42, 0xc0, 0xef, 0x46,
+};
+static const unsigned char kat171_addin1[] = {
+ 0xfd, 0x91, 0x1c, 0x8b, 0xb6, 0xff, 0x14, 0xe7, 0xd7, 0x6a, 0x61, 0x1a,
+ 0xdd, 0xda, 0x72, 0x11,
+};
+static const unsigned char kat171_retbits[] = {
+ 0x16, 0x5f, 0x07, 0xd1, 0x4b, 0xb1, 0xb3, 0x7b, 0xd9, 0xe0, 0x94, 0x9e,
+ 0x7b, 0x0c, 0x0d, 0xfa, 0xdd, 0x06, 0x7a, 0xdf, 0x15, 0xb6, 0x6c, 0xb3,
+ 0x96, 0xe6, 0x44, 0x4b, 0xcd, 0xf1, 0x1b, 0xc2, 0x34, 0xb0, 0xd5, 0x9b,
+ 0x23, 0x17, 0x21, 0x4a, 0x9c, 0xde, 0x72, 0xe5, 0x32, 0xf3, 0x00, 0xc9,
+ 0xd0, 0x90, 0x7f, 0xf5, 0x9e, 0x62, 0x12, 0x82, 0x6a, 0x92, 0x0f, 0xd9,
+ 0x2b, 0x53, 0xad, 0xf7,
+};
+static const struct drbg_kat_no_reseed kat171_t = {
+ 5, kat171_entropyin, kat171_nonce, kat171_persstr,
+ kat171_addin0, kat171_addin1, kat171_retbits
+};
+static const struct drbg_kat kat171 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat171_t
+};
+
+static const unsigned char kat172_entropyin[] = {
+ 0x53, 0xea, 0x1b, 0xef, 0x71, 0x12, 0xfd, 0xcb, 0x15, 0x51, 0x36, 0x16,
+ 0xae, 0x7e, 0x07, 0x03,
+};
+static const unsigned char kat172_nonce[] = {
+ 0xca, 0xac, 0x5b, 0x2f, 0xbf, 0x5b, 0xd1, 0xb8,
+};
+static const unsigned char kat172_persstr[] = {
+ 0x79, 0x04, 0x26, 0x8d, 0x84, 0x6f, 0x81, 0x41, 0xcd, 0x78, 0x3e, 0xcb,
+ 0xa6, 0xef, 0xc9, 0x01,
+};
+static const unsigned char kat172_addin0[] = {
+ 0x03, 0x64, 0xae, 0xea, 0xf7, 0x42, 0x4c, 0x92, 0xc2, 0x61, 0x1f, 0x33,
+ 0x86, 0xfb, 0xe3, 0x8a,
+};
+static const unsigned char kat172_addin1[] = {
+ 0x9c, 0x77, 0xd6, 0x80, 0xc5, 0xf2, 0x70, 0xae, 0xfa, 0x8a, 0x45, 0xb3,
+ 0xe9, 0x35, 0x53, 0x30,
+};
+static const unsigned char kat172_retbits[] = {
+ 0xe5, 0x6f, 0xa9, 0x81, 0x29, 0x23, 0x89, 0x0b, 0x94, 0x81, 0xee, 0x07,
+ 0x80, 0xea, 0x23, 0xb2, 0x05, 0x94, 0x7e, 0x80, 0xf3, 0xe3, 0x8f, 0x55,
+ 0xc2, 0x2d, 0xef, 0xce, 0x6c, 0xae, 0xa8, 0x4f, 0xd9, 0x85, 0x0f, 0x2c,
+ 0x50, 0x9c, 0x51, 0x48, 0xe0, 0x1c, 0xd9, 0x77, 0x34, 0x8c, 0xc8, 0xb3,
+ 0xcc, 0xab, 0xd3, 0xd7, 0x51, 0x5c, 0xc2, 0xca, 0x95, 0xd0, 0xbc, 0x13,
+ 0x48, 0xba, 0xc5, 0xc2,
+};
+static const struct drbg_kat_no_reseed kat172_t = {
+ 6, kat172_entropyin, kat172_nonce, kat172_persstr,
+ kat172_addin0, kat172_addin1, kat172_retbits
+};
+static const struct drbg_kat kat172 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat172_t
+};
+
+static const unsigned char kat173_entropyin[] = {
+ 0x1f, 0xae, 0xf5, 0x93, 0x5c, 0xb8, 0x2d, 0x27, 0x08, 0x13, 0x25, 0x2c,
+ 0x77, 0xef, 0x3d, 0x6c,
+};
+static const unsigned char kat173_nonce[] = {
+ 0x75, 0xf6, 0x8a, 0x1b, 0x65, 0x8c, 0x72, 0x77,
+};
+static const unsigned char kat173_persstr[] = {
+ 0x08, 0x15, 0xfa, 0x38, 0x8d, 0xb0, 0x3a, 0x89, 0x2d, 0xf4, 0x47, 0x4f,
+ 0x19, 0xde, 0x31, 0xbc,
+};
+static const unsigned char kat173_addin0[] = {
+ 0x9f, 0x92, 0x23, 0xae, 0x37, 0x86, 0xd3, 0x8c, 0x43, 0xe0, 0xe9, 0x2a,
+ 0xa1, 0xbf, 0x5e, 0x3f,
+};
+static const unsigned char kat173_addin1[] = {
+ 0x4d, 0x9c, 0x28, 0xcd, 0x69, 0x4e, 0x01, 0x6f, 0xaf, 0xbd, 0xe3, 0xcb,
+ 0x30, 0x85, 0xb8, 0xd9,
+};
+static const unsigned char kat173_retbits[] = {
+ 0xcd, 0x69, 0x3a, 0xab, 0x02, 0xec, 0x80, 0xa0, 0x4b, 0xeb, 0xcf, 0xef,
+ 0x66, 0x04, 0x38, 0x4f, 0x48, 0xc8, 0xeb, 0x7d, 0x44, 0xd6, 0x91, 0xac,
+ 0x35, 0xfb, 0x11, 0xe1, 0x81, 0x83, 0x88, 0x4b, 0x9e, 0x35, 0xd5, 0x8e,
+ 0x62, 0xfc, 0x56, 0x7b, 0x9a, 0x3d, 0xa4, 0x0e, 0x3a, 0xee, 0xa7, 0x83,
+ 0x11, 0x5e, 0x80, 0x19, 0x22, 0x09, 0x03, 0xab, 0x55, 0x9b, 0xe9, 0x83,
+ 0x4c, 0x37, 0x77, 0x58,
+};
+static const struct drbg_kat_no_reseed kat173_t = {
+ 7, kat173_entropyin, kat173_nonce, kat173_persstr,
+ kat173_addin0, kat173_addin1, kat173_retbits
+};
+static const struct drbg_kat kat173 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat173_t
+};
+
+static const unsigned char kat174_entropyin[] = {
+ 0x0b, 0x8c, 0x52, 0x08, 0xd9, 0x11, 0x3c, 0xbe, 0x8a, 0x31, 0xcf, 0x3d,
+ 0xe1, 0x43, 0x38, 0x1a,
+};
+static const unsigned char kat174_nonce[] = {
+ 0x44, 0x9e, 0xbf, 0x57, 0xb8, 0x2a, 0xa5, 0xcb,
+};
+static const unsigned char kat174_persstr[] = {
+ 0x7f, 0x60, 0x01, 0xd6, 0x0c, 0x31, 0xcf, 0x8a, 0x90, 0x4c, 0xb3, 0x18,
+ 0xcb, 0x70, 0x04, 0x7b,
+};
+static const unsigned char kat174_addin0[] = {
+ 0x4f, 0xe0, 0x45, 0xed, 0xbb, 0x98, 0x16, 0x0a, 0x42, 0x63, 0x5b, 0x77,
+ 0x79, 0x6e, 0x8a, 0x97,
+};
+static const unsigned char kat174_addin1[] = {
+ 0xd8, 0x96, 0x4e, 0x5f, 0xa8, 0x16, 0xea, 0x83, 0xd1, 0xa5, 0xab, 0xbd,
+ 0x15, 0x68, 0xad, 0xaa,
+};
+static const unsigned char kat174_retbits[] = {
+ 0xab, 0x1f, 0xba, 0xf1, 0x54, 0xa9, 0x07, 0x2b, 0x62, 0xc3, 0xd6, 0xbb,
+ 0x9d, 0x01, 0x48, 0xac, 0xe4, 0xb4, 0xcd, 0xe0, 0x8d, 0x9a, 0x71, 0x2a,
+ 0xa2, 0x94, 0x10, 0xab, 0x51, 0x4d, 0x03, 0xe3, 0x5d, 0xb3, 0xf4, 0x91,
+ 0x80, 0x66, 0x73, 0x04, 0x18, 0x33, 0xa2, 0xeb, 0xeb, 0xe8, 0x70, 0x55,
+ 0xf1, 0xf5, 0xfb, 0x64, 0xdd, 0x8e, 0x40, 0x8e, 0x3b, 0x99, 0x57, 0xd2,
+ 0x1e, 0x66, 0xca, 0xa2,
+};
+static const struct drbg_kat_no_reseed kat174_t = {
+ 8, kat174_entropyin, kat174_nonce, kat174_persstr,
+ kat174_addin0, kat174_addin1, kat174_retbits
+};
+static const struct drbg_kat kat174 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat174_t
+};
+
+static const unsigned char kat175_entropyin[] = {
+ 0xae, 0x90, 0x6d, 0x89, 0x04, 0x15, 0x45, 0xc7, 0xef, 0x70, 0x71, 0xf5,
+ 0x3e, 0xce, 0xea, 0x52,
+};
+static const unsigned char kat175_nonce[] = {
+ 0x1f, 0x4b, 0x28, 0x4c, 0x36, 0xaa, 0xe3, 0xba,
+};
+static const unsigned char kat175_persstr[] = {
+ 0xb9, 0x19, 0x98, 0xc3, 0x21, 0x83, 0x00, 0x6f, 0x7d, 0xf1, 0xc5, 0xd7,
+ 0x1f, 0xba, 0xc5, 0x7b,
+};
+static const unsigned char kat175_addin0[] = {
+ 0x86, 0x47, 0x5c, 0xa2, 0xb4, 0x84, 0xb8, 0xc6, 0xf3, 0x3b, 0x11, 0x22,
+ 0x8b, 0xc6, 0x65, 0x05,
+};
+static const unsigned char kat175_addin1[] = {
+ 0x0c, 0x34, 0xe0, 0xea, 0xe8, 0xfa, 0x94, 0xc2, 0x6c, 0xb5, 0x11, 0xc7,
+ 0x9a, 0x49, 0x83, 0x3e,
+};
+static const unsigned char kat175_retbits[] = {
+ 0x89, 0xeb, 0xf1, 0x81, 0x5e, 0x2c, 0x33, 0x32, 0x59, 0xd6, 0xaa, 0xa0,
+ 0x07, 0xd1, 0x9c, 0xa5, 0xe0, 0x1e, 0x59, 0x87, 0x76, 0xac, 0x2a, 0xf5,
+ 0x5a, 0xbf, 0x78, 0xc1, 0x1b, 0x4e, 0xd7, 0x44, 0xb6, 0xde, 0x87, 0x5a,
+ 0x36, 0xf4, 0x52, 0xc2, 0x7a, 0xc4, 0xa0, 0xe6, 0x77, 0x93, 0x8b, 0x16,
+ 0x1b, 0x2c, 0x00, 0xeb, 0x06, 0x59, 0xbd, 0xf2, 0xdc, 0x42, 0x5a, 0x89,
+ 0xa2, 0x4a, 0xff, 0xd0,
+};
+static const struct drbg_kat_no_reseed kat175_t = {
+ 9, kat175_entropyin, kat175_nonce, kat175_persstr,
+ kat175_addin0, kat175_addin1, kat175_retbits
+};
+static const struct drbg_kat kat175 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat175_t
+};
+
+static const unsigned char kat176_entropyin[] = {
+ 0x1d, 0x0e, 0x60, 0xe6, 0x80, 0x17, 0x40, 0x42, 0x1d, 0x29, 0xf6, 0x5a,
+ 0x60, 0x60, 0x6c, 0x1b,
+};
+static const unsigned char kat176_nonce[] = {
+ 0x37, 0x03, 0x36, 0xdb, 0x08, 0x35, 0xe9, 0x1a,
+};
+static const unsigned char kat176_persstr[] = {
+ 0x7a, 0x27, 0x3b, 0x4d, 0x99, 0x75, 0x35, 0x11, 0xfc, 0xf3, 0x4f, 0x3b,
+ 0x1b, 0xb2, 0x9e, 0x16,
+};
+static const unsigned char kat176_addin0[] = {
+ 0xd6, 0x44, 0xcb, 0x46, 0xe0, 0x1c, 0x07, 0x12, 0xef, 0x9d, 0xa4, 0xed,
+ 0xe5, 0xca, 0x40, 0x7c,
+};
+static const unsigned char kat176_addin1[] = {
+ 0x5c, 0x99, 0x05, 0x45, 0xee, 0xaf, 0x59, 0xde, 0x4d, 0x34, 0x9a, 0xe6,
+ 0x66, 0x1f, 0x70, 0x41,
+};
+static const unsigned char kat176_retbits[] = {
+ 0xda, 0xd5, 0x03, 0xe7, 0x20, 0x96, 0x02, 0xa8, 0x6f, 0x18, 0xd0, 0x1a,
+ 0x2b, 0x05, 0x15, 0xb4, 0xb3, 0xd4, 0xa4, 0xc0, 0x37, 0xaf, 0x71, 0x86,
+ 0xec, 0xba, 0x25, 0xdc, 0xb7, 0x81, 0xd9, 0x73, 0x11, 0x81, 0x0f, 0x98,
+ 0xc1, 0x7c, 0x34, 0x17, 0x30, 0x61, 0xab, 0x78, 0xec, 0xcb, 0xd4, 0x91,
+ 0x85, 0xcf, 0x5d, 0x4f, 0xb9, 0x1d, 0xff, 0xf4, 0xb0, 0xb6, 0x53, 0xdc,
+ 0x15, 0x89, 0x92, 0x29,
+};
+static const struct drbg_kat_no_reseed kat176_t = {
+ 10, kat176_entropyin, kat176_nonce, kat176_persstr,
+ kat176_addin0, kat176_addin1, kat176_retbits
+};
+static const struct drbg_kat kat176 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat176_t
+};
+
+static const unsigned char kat177_entropyin[] = {
+ 0x67, 0x58, 0x85, 0x38, 0x3c, 0x6b, 0x3b, 0x00, 0x8e, 0x88, 0x49, 0x37,
+ 0xed, 0xa7, 0x7b, 0xe8,
+};
+static const unsigned char kat177_nonce[] = {
+ 0xb9, 0x1c, 0x7c, 0x06, 0x87, 0x85, 0x32, 0xf2,
+};
+static const unsigned char kat177_persstr[] = {
+ 0x12, 0xce, 0x97, 0xb4, 0x0a, 0x1b, 0xcd, 0xe5, 0x03, 0x90, 0xe3, 0x15,
+ 0xcd, 0x91, 0x1d, 0x53,
+};
+static const unsigned char kat177_addin0[] = {
+ 0x10, 0x58, 0x43, 0x4c, 0xf9, 0xb3, 0x8f, 0xd7, 0x2a, 0x14, 0x0c, 0xf0,
+ 0x94, 0x24, 0x36, 0xe3,
+};
+static const unsigned char kat177_addin1[] = {
+ 0x59, 0x8b, 0xf8, 0x01, 0x43, 0x39, 0x82, 0x09, 0x66, 0xd9, 0x4b, 0xe1,
+ 0xe2, 0xe9, 0xc8, 0x55,
+};
+static const unsigned char kat177_retbits[] = {
+ 0x45, 0x48, 0x8c, 0xa0, 0xe2, 0xf2, 0x83, 0xf1, 0x74, 0x1b, 0xcb, 0xf4,
+ 0x9a, 0x79, 0x36, 0x54, 0x59, 0x07, 0x52, 0x49, 0xe1, 0xc4, 0x17, 0x77,
+ 0xf3, 0xe0, 0x08, 0xd8, 0x02, 0x0e, 0xe1, 0xf5, 0x98, 0xac, 0xa0, 0xad,
+ 0x26, 0xed, 0xcd, 0x92, 0x0c, 0x85, 0x59, 0xd0, 0xea, 0xf7, 0xcc, 0x5d,
+ 0x5a, 0x71, 0x44, 0x37, 0xc0, 0x45, 0x81, 0xa6, 0x4c, 0x74, 0x99, 0xe5,
+ 0xf0, 0xbe, 0x08, 0x9c,
+};
+static const struct drbg_kat_no_reseed kat177_t = {
+ 11, kat177_entropyin, kat177_nonce, kat177_persstr,
+ kat177_addin0, kat177_addin1, kat177_retbits
+};
+static const struct drbg_kat kat177 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat177_t
+};
+
+static const unsigned char kat178_entropyin[] = {
+ 0x71, 0x23, 0x93, 0xa9, 0xf4, 0xa1, 0xb0, 0xbb, 0xab, 0xf4, 0xf4, 0x96,
+ 0xe8, 0x17, 0x0a, 0xdc,
+};
+static const unsigned char kat178_nonce[] = {
+ 0x0f, 0x59, 0x0c, 0x32, 0x39, 0xc6, 0xcf, 0x47,
+};
+static const unsigned char kat178_persstr[] = {
+ 0xb7, 0x2b, 0x40, 0x97, 0xa9, 0xfb, 0x3d, 0x45, 0xbb, 0x06, 0x24, 0x15,
+ 0xb6, 0xf2, 0xdf, 0xb1,
+};
+static const unsigned char kat178_addin0[] = {
+ 0xe2, 0x7a, 0xde, 0x7c, 0x11, 0x86, 0x56, 0x55, 0x3f, 0x06, 0xec, 0x20,
+ 0x19, 0x9b, 0x53, 0x70,
+};
+static const unsigned char kat178_addin1[] = {
+ 0x4e, 0xb4, 0xfd, 0xa3, 0xff, 0xda, 0xd4, 0xf9, 0xdd, 0xaf, 0xd0, 0xd0,
+ 0xbf, 0xec, 0xd4, 0x44,
+};
+static const unsigned char kat178_retbits[] = {
+ 0x04, 0x49, 0xa8, 0x2a, 0x31, 0x7e, 0x22, 0xe5, 0xa7, 0xa6, 0x68, 0x4d,
+ 0x08, 0xb8, 0xf6, 0x3e, 0x02, 0xd8, 0xb9, 0x08, 0x5d, 0x61, 0x9a, 0xb5,
+ 0x6c, 0xde, 0x52, 0x2c, 0x86, 0x67, 0xd5, 0xf8, 0x8b, 0x2e, 0xa8, 0x83,
+ 0x03, 0x29, 0x49, 0x1a, 0x5e, 0xa8, 0x28, 0xe0, 0xa3, 0x66, 0xae, 0x7e,
+ 0x84, 0xf2, 0xcd, 0xee, 0x69, 0x8a, 0x92, 0x41, 0x18, 0x88, 0x83, 0xbe,
+ 0x00, 0xc5, 0x33, 0xe8,
+};
+static const struct drbg_kat_no_reseed kat178_t = {
+ 12, kat178_entropyin, kat178_nonce, kat178_persstr,
+ kat178_addin0, kat178_addin1, kat178_retbits
+};
+static const struct drbg_kat kat178 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat178_t
+};
+
+static const unsigned char kat179_entropyin[] = {
+ 0x57, 0x66, 0x40, 0xf9, 0x76, 0xa6, 0x28, 0xb0, 0x9e, 0x98, 0xaf, 0x48,
+ 0x3b, 0x64, 0x5e, 0x56,
+};
+static const unsigned char kat179_nonce[] = {
+ 0x82, 0x2e, 0x8a, 0x10, 0xdf, 0x06, 0xd0, 0xfe,
+};
+static const unsigned char kat179_persstr[] = {
+ 0x6d, 0x6a, 0x6f, 0x68, 0xbb, 0x38, 0x1c, 0x29, 0x1f, 0x3f, 0xa6, 0x21,
+ 0xd6, 0xab, 0x64, 0xb2,
+};
+static const unsigned char kat179_addin0[] = {
+ 0xb0, 0x5f, 0x14, 0xe4, 0x1f, 0x54, 0x33, 0x8c, 0x44, 0x15, 0xa5, 0xb5,
+ 0xc8, 0xc5, 0x61, 0x99,
+};
+static const unsigned char kat179_addin1[] = {
+ 0xc6, 0x84, 0x7c, 0x9e, 0xd7, 0x4c, 0x86, 0x9a, 0xc4, 0xa5, 0x6f, 0xf2,
+ 0xd0, 0x95, 0x6d, 0x6b,
+};
+static const unsigned char kat179_retbits[] = {
+ 0x5c, 0x6a, 0x7e, 0x58, 0xea, 0xcf, 0xa5, 0x8d, 0xca, 0x93, 0x99, 0xa3,
+ 0xf9, 0xb6, 0xcb, 0x41, 0xd2, 0xbc, 0x24, 0xf6, 0x72, 0x58, 0x7d, 0xb2,
+ 0x29, 0xbf, 0x22, 0x20, 0xc2, 0x85, 0x13, 0x47, 0xd4, 0x7d, 0xa1, 0xca,
+ 0x0a, 0x6a, 0x13, 0x77, 0x96, 0x05, 0xdb, 0x90, 0xd9, 0x1a, 0x61, 0x48,
+ 0x88, 0x18, 0xd3, 0x3b, 0x2a, 0x4a, 0xd6, 0x74, 0x09, 0x00, 0x68, 0x5f,
+ 0x8e, 0xc6, 0x13, 0x6f,
+};
+static const struct drbg_kat_no_reseed kat179_t = {
+ 13, kat179_entropyin, kat179_nonce, kat179_persstr,
+ kat179_addin0, kat179_addin1, kat179_retbits
+};
+static const struct drbg_kat kat179 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat179_t
+};
+
+static const unsigned char kat180_entropyin[] = {
+ 0x69, 0x65, 0x03, 0xc8, 0x48, 0x60, 0x51, 0x87, 0x84, 0xdd, 0x4c, 0x6c,
+ 0x31, 0x71, 0x0f, 0x43,
+};
+static const unsigned char kat180_nonce[] = {
+ 0xee, 0x52, 0xc0, 0xa4, 0xcd, 0x90, 0xdf, 0x1e,
+};
+static const unsigned char kat180_persstr[] = {
+ 0x9a, 0x08, 0xd6, 0xb4, 0x80, 0xef, 0x3a, 0xc2, 0x00, 0xa1, 0x30, 0x87,
+ 0x8d, 0x80, 0xd0, 0x79,
+};
+static const unsigned char kat180_addin0[] = {
+ 0x5c, 0x51, 0x31, 0x59, 0x7b, 0xd3, 0xab, 0x02, 0x5c, 0xa0, 0x05, 0x79,
+ 0xc8, 0x6f, 0xfd, 0xed,
+};
+static const unsigned char kat180_addin1[] = {
+ 0xa8, 0xcc, 0x33, 0xc8, 0x51, 0xee, 0x11, 0xe4, 0x70, 0x1a, 0x32, 0x19,
+ 0x7b, 0x61, 0x76, 0x23,
+};
+static const unsigned char kat180_retbits[] = {
+ 0x9a, 0xfd, 0xc4, 0x54, 0xf5, 0xc2, 0xce, 0x29, 0x95, 0xfc, 0x7c, 0xcf,
+ 0xb4, 0xe8, 0x67, 0x1a, 0x4b, 0x27, 0xdf, 0xcb, 0x1c, 0x02, 0xfe, 0xc6,
+ 0x07, 0xaa, 0xfc, 0x64, 0x22, 0x65, 0x70, 0x96, 0xce, 0x18, 0x14, 0x10,
+ 0x1b, 0x8a, 0x74, 0x3e, 0x2d, 0x4a, 0x2c, 0x4e, 0x2e, 0x8d, 0xa2, 0x57,
+ 0x57, 0x8d, 0xe7, 0x10, 0x54, 0x12, 0xf3, 0x52, 0xa4, 0xcd, 0x14, 0xaf,
+ 0x7d, 0xb0, 0xeb, 0x03,
+};
+static const struct drbg_kat_no_reseed kat180_t = {
+ 14, kat180_entropyin, kat180_nonce, kat180_persstr,
+ kat180_addin0, kat180_addin1, kat180_retbits
+};
+static const struct drbg_kat kat180 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat180_t
+};
+
+static const unsigned char kat181_entropyin[] = {
+ 0x6b, 0xdf, 0x53, 0x32, 0xbd, 0xce, 0x46, 0x55, 0xd4, 0x5c, 0x2c, 0xfe,
+ 0xa8, 0x97, 0xb0, 0x00,
+};
+static const unsigned char kat181_nonce[] = {
+ 0xe7, 0x8c, 0x55, 0x71, 0xc5, 0xf9, 0x26, 0xf9,
+};
+static const unsigned char kat181_persstr[] = {0};
+static const unsigned char kat181_addin0[] = {0};
+static const unsigned char kat181_addin1[] = {0};
+static const unsigned char kat181_retbits[] = {
+ 0xe0, 0x71, 0x56, 0x88, 0x76, 0x5a, 0x32, 0x85, 0xe7, 0xb7, 0xdb, 0x55,
+ 0x5f, 0x27, 0x79, 0x24, 0xe7, 0x17, 0x1f, 0x75, 0x41, 0xbf, 0x26, 0x12,
+ 0x2b, 0x13, 0xdb, 0xaa, 0xa3, 0x9f, 0x9e, 0x2b, 0x03, 0x45, 0xc6, 0x59,
+ 0x58, 0x3f, 0xf8, 0xc9, 0xcf, 0xd8, 0x88, 0xf1, 0xab, 0xd2, 0xf3, 0xb3,
+ 0x6a, 0x7c, 0x9d, 0x47, 0xc6, 0x87, 0xb0, 0x1c, 0x81, 0x9a, 0x9f, 0x98,
+ 0x88, 0x54, 0x2e, 0x0f,
+};
+static const struct drbg_kat_no_reseed kat181_t = {
+ 0, kat181_entropyin, kat181_nonce, kat181_persstr,
+ kat181_addin0, kat181_addin1, kat181_retbits
+};
+static const struct drbg_kat kat181 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat181_t
+};
+
+static const unsigned char kat182_entropyin[] = {
+ 0xa4, 0x73, 0x7d, 0x48, 0xa8, 0x93, 0x25, 0x07, 0x85, 0x79, 0xe6, 0x49,
+ 0xe2, 0xfa, 0x65, 0xeb,
+};
+static const unsigned char kat182_nonce[] = {
+ 0x6a, 0x79, 0x9a, 0x7a, 0x2f, 0x13, 0xe8, 0x13,
+};
+static const unsigned char kat182_persstr[] = {0};
+static const unsigned char kat182_addin0[] = {0};
+static const unsigned char kat182_addin1[] = {0};
+static const unsigned char kat182_retbits[] = {
+ 0x75, 0x2a, 0x91, 0x6d, 0x98, 0x05, 0x18, 0xd9, 0xe7, 0xe4, 0x75, 0x99,
+ 0x06, 0x6b, 0x45, 0x71, 0x46, 0x61, 0xf3, 0x41, 0x59, 0xf0, 0xc8, 0xce,
+ 0xa8, 0xda, 0xbd, 0x59, 0x6a, 0x06, 0x6a, 0xff, 0x7a, 0xe6, 0xc2, 0x1e,
+ 0x69, 0xa3, 0x56, 0xdd, 0x2e, 0xe0, 0xda, 0x55, 0x42, 0x9c, 0x67, 0x5a,
+ 0xa6, 0xfa, 0x09, 0x00, 0x17, 0x3f, 0x54, 0x77, 0xcd, 0x7f, 0xd6, 0x49,
+ 0xea, 0xe0, 0xc9, 0x9a,
+};
+static const struct drbg_kat_no_reseed kat182_t = {
+ 1, kat182_entropyin, kat182_nonce, kat182_persstr,
+ kat182_addin0, kat182_addin1, kat182_retbits
+};
+static const struct drbg_kat kat182 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat182_t
+};
+
+static const unsigned char kat183_entropyin[] = {
+ 0x99, 0xb4, 0xe9, 0xe5, 0xba, 0xaa, 0x99, 0xbf, 0x8b, 0x8a, 0x0c, 0x2c,
+ 0xfd, 0x9a, 0x89, 0xce,
+};
+static const unsigned char kat183_nonce[] = {
+ 0xf4, 0x8b, 0x31, 0x29, 0x41, 0xd3, 0x55, 0x4d,
+};
+static const unsigned char kat183_persstr[] = {0};
+static const unsigned char kat183_addin0[] = {0};
+static const unsigned char kat183_addin1[] = {0};
+static const unsigned char kat183_retbits[] = {
+ 0x85, 0xcf, 0x14, 0x8c, 0x65, 0xec, 0xe7, 0x52, 0x5d, 0xea, 0x96, 0x34,
+ 0x4d, 0xa6, 0x45, 0x11, 0x99, 0x49, 0x21, 0x85, 0xc8, 0xb8, 0xdf, 0xff,
+ 0x50, 0x0d, 0xdd, 0x68, 0xca, 0xab, 0x50, 0xbd, 0x74, 0x18, 0x66, 0x93,
+ 0x7a, 0x50, 0x1a, 0xf8, 0x76, 0xae, 0x84, 0x9b, 0x5b, 0x1b, 0x53, 0x30,
+ 0xde, 0x65, 0xeb, 0xf3, 0x8e, 0x9d, 0x55, 0x96, 0x93, 0xfa, 0xe8, 0x05,
+ 0xcc, 0xc9, 0xaa, 0xed,
+};
+static const struct drbg_kat_no_reseed kat183_t = {
+ 2, kat183_entropyin, kat183_nonce, kat183_persstr,
+ kat183_addin0, kat183_addin1, kat183_retbits
+};
+static const struct drbg_kat kat183 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat183_t
+};
+
+static const unsigned char kat184_entropyin[] = {
+ 0x7c, 0x1e, 0xf8, 0x46, 0xe7, 0xf3, 0xa7, 0xcf, 0xe5, 0xc7, 0xbb, 0x47,
+ 0xe4, 0x6a, 0xa0, 0xe8,
+};
+static const unsigned char kat184_nonce[] = {
+ 0x78, 0xeb, 0x00, 0x29, 0x55, 0xd2, 0x70, 0xd3,
+};
+static const unsigned char kat184_persstr[] = {0};
+static const unsigned char kat184_addin0[] = {0};
+static const unsigned char kat184_addin1[] = {0};
+static const unsigned char kat184_retbits[] = {
+ 0xb7, 0x39, 0xf9, 0x53, 0x39, 0xe8, 0x3f, 0xe8, 0xa3, 0x39, 0x16, 0x2f,
+ 0x1e, 0x96, 0xcc, 0x82, 0xb6, 0x7a, 0xf4, 0x17, 0x59, 0xf4, 0x83, 0x06,
+ 0x4e, 0x61, 0xa0, 0x39, 0x13, 0x7a, 0xf0, 0x7d, 0x93, 0x4a, 0x0e, 0xb7,
+ 0xca, 0x72, 0x84, 0xc1, 0x46, 0x86, 0xca, 0x04, 0x88, 0x95, 0x3e, 0xe4,
+ 0x40, 0xf6, 0xcd, 0x11, 0x45, 0xd0, 0x76, 0x6f, 0x4f, 0xf1, 0xc7, 0x7b,
+ 0x0d, 0x81, 0xd3, 0x61,
+};
+static const struct drbg_kat_no_reseed kat184_t = {
+ 3, kat184_entropyin, kat184_nonce, kat184_persstr,
+ kat184_addin0, kat184_addin1, kat184_retbits
+};
+static const struct drbg_kat kat184 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat184_t
+};
+
+static const unsigned char kat185_entropyin[] = {
+ 0x6f, 0x75, 0x0f, 0xb7, 0x3f, 0xbc, 0xb6, 0xdb, 0x57, 0x50, 0x6c, 0xf2,
+ 0xde, 0xfa, 0xf6, 0xd4,
+};
+static const unsigned char kat185_nonce[] = {
+ 0xa5, 0x2c, 0x92, 0x97, 0xe0, 0x2f, 0x42, 0x55,
+};
+static const unsigned char kat185_persstr[] = {0};
+static const unsigned char kat185_addin0[] = {0};
+static const unsigned char kat185_addin1[] = {0};
+static const unsigned char kat185_retbits[] = {
+ 0x0c, 0xa7, 0x48, 0xfc, 0xb3, 0xba, 0x23, 0xbd, 0x04, 0x3f, 0x48, 0x50,
+ 0x75, 0x85, 0x42, 0x52, 0x34, 0xec, 0x4a, 0x0f, 0x35, 0x0e, 0xfd, 0xcc,
+ 0x87, 0xf9, 0x06, 0x2c, 0x8a, 0xe0, 0xcf, 0x1e, 0x03, 0x3b, 0x7d, 0xf8,
+ 0x35, 0x7f, 0x5b, 0x0e, 0x4f, 0x7c, 0x21, 0xd4, 0xfb, 0xdc, 0xf8, 0x9c,
+ 0xe0, 0x19, 0x9c, 0x25, 0x79, 0x02, 0x70, 0xfe, 0x67, 0xff, 0xee, 0xc2,
+ 0x6c, 0xfc, 0x4d, 0x18,
+};
+static const struct drbg_kat_no_reseed kat185_t = {
+ 4, kat185_entropyin, kat185_nonce, kat185_persstr,
+ kat185_addin0, kat185_addin1, kat185_retbits
+};
+static const struct drbg_kat kat185 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat185_t
+};
+
+static const unsigned char kat186_entropyin[] = {
+ 0x44, 0xb6, 0xc3, 0x9a, 0x3a, 0xf6, 0xa4, 0x73, 0x14, 0x8e, 0x32, 0xd9,
+ 0x79, 0x2b, 0x9e, 0xee,
+};
+static const unsigned char kat186_nonce[] = {
+ 0xde, 0x44, 0xdd, 0x36, 0x00, 0x3e, 0x48, 0x22,
+};
+static const unsigned char kat186_persstr[] = {0};
+static const unsigned char kat186_addin0[] = {0};
+static const unsigned char kat186_addin1[] = {0};
+static const unsigned char kat186_retbits[] = {
+ 0x10, 0x12, 0x20, 0x08, 0x7c, 0xa7, 0x70, 0xe4, 0x57, 0x4f, 0xd0, 0x5b,
+ 0x2e, 0x88, 0x85, 0x1b, 0x48, 0x09, 0xcf, 0x21, 0xe6, 0x5e, 0xb0, 0xe3,
+ 0xd1, 0xec, 0xda, 0x29, 0xaa, 0xcf, 0x2d, 0x93, 0xe7, 0x5d, 0x79, 0x3b,
+ 0x99, 0x24, 0xae, 0xdd, 0x9b, 0x9a, 0x38, 0x84, 0x4d, 0xb4, 0x30, 0x47,
+ 0x0d, 0x01, 0x5d, 0xa6, 0x04, 0x18, 0x75, 0x3f, 0x2e, 0x3c, 0x6a, 0x15,
+ 0xf5, 0x58, 0xf4, 0xa9,
+};
+static const struct drbg_kat_no_reseed kat186_t = {
+ 5, kat186_entropyin, kat186_nonce, kat186_persstr,
+ kat186_addin0, kat186_addin1, kat186_retbits
+};
+static const struct drbg_kat kat186 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat186_t
+};
+
+static const unsigned char kat187_entropyin[] = {
+ 0xe4, 0xd1, 0xff, 0x1c, 0x3c, 0xd2, 0x78, 0x49, 0xa2, 0x97, 0xe5, 0xa9,
+ 0x8e, 0xde, 0x08, 0x6a,
+};
+static const unsigned char kat187_nonce[] = {
+ 0xf8, 0x9d, 0x58, 0xb0, 0x61, 0x7e, 0x5d, 0x10,
+};
+static const unsigned char kat187_persstr[] = {0};
+static const unsigned char kat187_addin0[] = {0};
+static const unsigned char kat187_addin1[] = {0};
+static const unsigned char kat187_retbits[] = {
+ 0x54, 0xc4, 0x67, 0x97, 0xa3, 0x8e, 0x11, 0xc5, 0x43, 0x47, 0x78, 0x09,
+ 0xd9, 0xd6, 0xed, 0x0a, 0xe4, 0x02, 0x02, 0x85, 0xed, 0xf9, 0x9e, 0x7e,
+ 0xc9, 0x45, 0xcf, 0xcf, 0x21, 0xdd, 0xaa, 0x6d, 0x9a, 0x71, 0x85, 0x6b,
+ 0xdb, 0xd6, 0x61, 0x3b, 0xf8, 0xe9, 0x7e, 0x0a, 0xf8, 0xd3, 0xc4, 0xce,
+ 0xdd, 0x0d, 0xfc, 0xfb, 0x47, 0x42, 0xa2, 0xef, 0x0a, 0x44, 0x3e, 0xf8,
+ 0x78, 0x96, 0x0e, 0x6f,
+};
+static const struct drbg_kat_no_reseed kat187_t = {
+ 6, kat187_entropyin, kat187_nonce, kat187_persstr,
+ kat187_addin0, kat187_addin1, kat187_retbits
+};
+static const struct drbg_kat kat187 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat187_t
+};
+
+static const unsigned char kat188_entropyin[] = {
+ 0x15, 0x14, 0xbe, 0x70, 0x6e, 0x4c, 0x16, 0x72, 0x90, 0x55, 0x06, 0xb0,
+ 0xc5, 0x53, 0x47, 0xf2,
+};
+static const unsigned char kat188_nonce[] = {
+ 0xad, 0x8d, 0x88, 0x9f, 0x2b, 0x91, 0xa6, 0xdd,
+};
+static const unsigned char kat188_persstr[] = {0};
+static const unsigned char kat188_addin0[] = {0};
+static const unsigned char kat188_addin1[] = {0};
+static const unsigned char kat188_retbits[] = {
+ 0xb3, 0x64, 0x4a, 0x6d, 0x16, 0x34, 0x0e, 0xf8, 0xb2, 0x8a, 0xd0, 0x6f,
+ 0x4c, 0xbf, 0xd5, 0xe7, 0x99, 0xf0, 0x80, 0xd4, 0xb2, 0xf8, 0x31, 0xfd,
+ 0x90, 0xb3, 0x13, 0xc8, 0x62, 0xd5, 0x76, 0x3d, 0x22, 0xb1, 0x21, 0x7f,
+ 0xe3, 0xd4, 0xf0, 0x7c, 0x00, 0x6a, 0x39, 0x89, 0x5d, 0x46, 0xd5, 0x24,
+ 0x70, 0xb3, 0xf8, 0xb7, 0x75, 0x21, 0xe1, 0x41, 0xf6, 0x8b, 0x06, 0xb5,
+ 0x4c, 0x38, 0x66, 0x6f,
+};
+static const struct drbg_kat_no_reseed kat188_t = {
+ 7, kat188_entropyin, kat188_nonce, kat188_persstr,
+ kat188_addin0, kat188_addin1, kat188_retbits
+};
+static const struct drbg_kat kat188 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat188_t
+};
+
+static const unsigned char kat189_entropyin[] = {
+ 0x83, 0x35, 0xa4, 0x33, 0xa8, 0x0d, 0x5a, 0x3e, 0x8a, 0xb1, 0xf7, 0x38,
+ 0x55, 0xf9, 0x7a, 0x9b,
+};
+static const unsigned char kat189_nonce[] = {
+ 0x02, 0x62, 0xb4, 0x7c, 0x2a, 0xb5, 0xfc, 0xba,
+};
+static const unsigned char kat189_persstr[] = {0};
+static const unsigned char kat189_addin0[] = {0};
+static const unsigned char kat189_addin1[] = {0};
+static const unsigned char kat189_retbits[] = {
+ 0x66, 0xa0, 0x3a, 0x0b, 0x3b, 0x2e, 0xf8, 0xd0, 0x4e, 0x01, 0xda, 0x6e,
+ 0x31, 0xbc, 0x90, 0x02, 0xeb, 0xac, 0xa9, 0x8d, 0x63, 0xfd, 0xde, 0xb0,
+ 0x7f, 0xa3, 0xe0, 0x65, 0x0a, 0x32, 0xe1, 0x42, 0xfc, 0xab, 0x99, 0x63,
+ 0xf0, 0x6b, 0xa8, 0x8c, 0xd5, 0x8b, 0xe7, 0x5a, 0x99, 0xdf, 0xa1, 0x3b,
+ 0x4f, 0x8f, 0xea, 0xe6, 0xf8, 0x4c, 0xe2, 0xde, 0x4d, 0x20, 0x19, 0x92,
+ 0x23, 0x1f, 0xf3, 0xb8,
+};
+static const struct drbg_kat_no_reseed kat189_t = {
+ 8, kat189_entropyin, kat189_nonce, kat189_persstr,
+ kat189_addin0, kat189_addin1, kat189_retbits
+};
+static const struct drbg_kat kat189 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat189_t
+};
+
+static const unsigned char kat190_entropyin[] = {
+ 0x37, 0xfa, 0xeb, 0x0b, 0x3f, 0x85, 0x37, 0x2c, 0xcb, 0x44, 0x22, 0xe3,
+ 0x66, 0x90, 0xe9, 0x6c,
+};
+static const unsigned char kat190_nonce[] = {
+ 0xda, 0x16, 0x5c, 0x92, 0xd5, 0xfa, 0xaa, 0x3a,
+};
+static const unsigned char kat190_persstr[] = {0};
+static const unsigned char kat190_addin0[] = {0};
+static const unsigned char kat190_addin1[] = {0};
+static const unsigned char kat190_retbits[] = {
+ 0x47, 0x75, 0x15, 0x90, 0x25, 0xd5, 0xb8, 0x82, 0xf3, 0x7c, 0x7e, 0xdb,
+ 0x8d, 0x89, 0xb3, 0x8a, 0xcb, 0x14, 0xa0, 0x28, 0x39, 0x80, 0x2c, 0x37,
+ 0x7a, 0xc4, 0x82, 0xf8, 0xc6, 0xb5, 0x9a, 0xd6, 0x9c, 0x7d, 0x67, 0x55,
+ 0x6b, 0xc4, 0x1c, 0xc3, 0x22, 0xd9, 0xcd, 0x75, 0x03, 0x2a, 0xf5, 0x27,
+ 0x15, 0xb3, 0x60, 0x2f, 0x24, 0xc2, 0xb0, 0x99, 0x84, 0x0e, 0xab, 0x00,
+ 0xb7, 0x42, 0x93, 0xad,
+};
+static const struct drbg_kat_no_reseed kat190_t = {
+ 9, kat190_entropyin, kat190_nonce, kat190_persstr,
+ kat190_addin0, kat190_addin1, kat190_retbits
+};
+static const struct drbg_kat kat190 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat190_t
+};
+
+static const unsigned char kat191_entropyin[] = {
+ 0xb6, 0x83, 0x0f, 0x64, 0xe4, 0x73, 0x88, 0xa9, 0xc3, 0xc6, 0x4a, 0xa0,
+ 0xbe, 0x70, 0x84, 0x51,
+};
+static const unsigned char kat191_nonce[] = {
+ 0x5c, 0xd4, 0x30, 0x34, 0xc9, 0x89, 0xda, 0x56,
+};
+static const unsigned char kat191_persstr[] = {0};
+static const unsigned char kat191_addin0[] = {0};
+static const unsigned char kat191_addin1[] = {0};
+static const unsigned char kat191_retbits[] = {
+ 0xe1, 0x2f, 0x1e, 0x9f, 0xd9, 0x0e, 0x4f, 0x16, 0x6a, 0x13, 0xa4, 0xd3,
+ 0x5f, 0x90, 0x91, 0xa9, 0x74, 0x44, 0x32, 0x91, 0xff, 0xae, 0x44, 0x02,
+ 0xcb, 0xcd, 0x9a, 0x24, 0x89, 0x3b, 0x77, 0x09, 0x6b, 0x0a, 0x00, 0xdb,
+ 0x20, 0xe4, 0x32, 0x88, 0x62, 0x61, 0x39, 0xf7, 0xc1, 0x76, 0x7f, 0x6e,
+ 0x7f, 0xfe, 0xe9, 0x02, 0x2d, 0xde, 0x41, 0xb4, 0x78, 0x48, 0x5e, 0xe9,
+ 0x12, 0x5f, 0x3e, 0xb8,
+};
+static const struct drbg_kat_no_reseed kat191_t = {
+ 10, kat191_entropyin, kat191_nonce, kat191_persstr,
+ kat191_addin0, kat191_addin1, kat191_retbits
+};
+static const struct drbg_kat kat191 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat191_t
+};
+
+static const unsigned char kat192_entropyin[] = {
+ 0xf7, 0x1a, 0x01, 0xef, 0x00, 0xb3, 0xd6, 0x13, 0x46, 0x07, 0xdf, 0xc5,
+ 0x73, 0x25, 0xf6, 0x87,
+};
+static const unsigned char kat192_nonce[] = {
+ 0x49, 0x76, 0x0a, 0xeb, 0xbc, 0x89, 0x61, 0xfe,
+};
+static const unsigned char kat192_persstr[] = {0};
+static const unsigned char kat192_addin0[] = {0};
+static const unsigned char kat192_addin1[] = {0};
+static const unsigned char kat192_retbits[] = {
+ 0x0f, 0x00, 0x8e, 0x60, 0xab, 0x48, 0x14, 0xcc, 0xd8, 0xd2, 0x89, 0x77,
+ 0x53, 0xf5, 0x8c, 0xa3, 0x58, 0xba, 0xcd, 0x3f, 0x2e, 0xfc, 0x22, 0xc0,
+ 0xec, 0x89, 0xa6, 0x5b, 0x0a, 0x91, 0x82, 0xf5, 0x55, 0xcc, 0x49, 0x7a,
+ 0xa5, 0x9a, 0xf9, 0x14, 0xbc, 0x9c, 0x65, 0xbe, 0x7c, 0x09, 0x21, 0x46,
+ 0xcb, 0x78, 0xfc, 0xe2, 0x40, 0xfc, 0x8f, 0xe1, 0x36, 0x72, 0x9e, 0xa7,
+ 0x77, 0x16, 0x44, 0x7f,
+};
+static const struct drbg_kat_no_reseed kat192_t = {
+ 11, kat192_entropyin, kat192_nonce, kat192_persstr,
+ kat192_addin0, kat192_addin1, kat192_retbits
+};
+static const struct drbg_kat kat192 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat192_t
+};
+
+static const unsigned char kat193_entropyin[] = {
+ 0x79, 0x0e, 0xf8, 0xf0, 0xee, 0x6d, 0xf4, 0x80, 0xb2, 0xd4, 0x4d, 0xac,
+ 0x1c, 0x37, 0x61, 0x4c,
+};
+static const unsigned char kat193_nonce[] = {
+ 0xd5, 0x52, 0x44, 0x4d, 0x7d, 0xc3, 0x5e, 0x5c,
+};
+static const unsigned char kat193_persstr[] = {0};
+static const unsigned char kat193_addin0[] = {0};
+static const unsigned char kat193_addin1[] = {0};
+static const unsigned char kat193_retbits[] = {
+ 0x2a, 0xf8, 0xe3, 0x09, 0x77, 0x55, 0x6f, 0xae, 0x7c, 0x18, 0xae, 0x12,
+ 0xba, 0x22, 0x01, 0xb4, 0x0d, 0xe8, 0xc0, 0x21, 0x66, 0xed, 0x94, 0xc1,
+ 0x41, 0x27, 0x20, 0x50, 0xdb, 0xea, 0x72, 0xf3, 0xb8, 0xf9, 0x91, 0x54,
+ 0x7f, 0xc0, 0xf5, 0x58, 0x36, 0x17, 0x12, 0x67, 0xd4, 0x2a, 0x53, 0xdc,
+ 0xfb, 0x37, 0xc1, 0x5a, 0x22, 0x76, 0x76, 0xbf, 0x21, 0x8a, 0x49, 0xd0,
+ 0xb7, 0x23, 0x68, 0x9c,
+};
+static const struct drbg_kat_no_reseed kat193_t = {
+ 12, kat193_entropyin, kat193_nonce, kat193_persstr,
+ kat193_addin0, kat193_addin1, kat193_retbits
+};
+static const struct drbg_kat kat193 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat193_t
+};
+
+static const unsigned char kat194_entropyin[] = {
+ 0xbe, 0x19, 0x6c, 0x9c, 0xe3, 0x83, 0xc8, 0xb1, 0x01, 0xcd, 0x27, 0xa1,
+ 0x12, 0x91, 0x9f, 0xbc,
+};
+static const unsigned char kat194_nonce[] = {
+ 0x33, 0x2e, 0xbe, 0x3d, 0x47, 0x3a, 0x3a, 0x35,
+};
+static const unsigned char kat194_persstr[] = {0};
+static const unsigned char kat194_addin0[] = {0};
+static const unsigned char kat194_addin1[] = {0};
+static const unsigned char kat194_retbits[] = {
+ 0x01, 0x6b, 0x05, 0xd5, 0x57, 0x77, 0x7b, 0x36, 0xa1, 0x92, 0x04, 0x0c,
+ 0x58, 0x0a, 0x5c, 0x51, 0x6d, 0xda, 0x11, 0x55, 0x93, 0x4a, 0xfb, 0xd9,
+ 0x6c, 0xc8, 0x5b, 0x6e, 0x8b, 0x00, 0x83, 0xbb, 0xda, 0x27, 0x3e, 0xa6,
+ 0xdb, 0x52, 0xa0, 0x58, 0x9d, 0x9d, 0xe2, 0xe5, 0x56, 0x8f, 0xfe, 0xf9,
+ 0xdb, 0x39, 0x50, 0x09, 0x3c, 0x4d, 0xb2, 0xe8, 0xce, 0x9c, 0x25, 0x13,
+ 0x08, 0x46, 0x93, 0xe4,
+};
+static const struct drbg_kat_no_reseed kat194_t = {
+ 13, kat194_entropyin, kat194_nonce, kat194_persstr,
+ kat194_addin0, kat194_addin1, kat194_retbits
+};
+static const struct drbg_kat kat194 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat194_t
+};
+
+static const unsigned char kat195_entropyin[] = {
+ 0x76, 0x39, 0x61, 0x6e, 0xe5, 0xcb, 0x26, 0x9b, 0x5f, 0x54, 0x0d, 0xe1,
+ 0x50, 0xb4, 0x65, 0x0e,
+};
+static const unsigned char kat195_nonce[] = {
+ 0x3c, 0x93, 0x3a, 0xbe, 0xd3, 0x07, 0xf6, 0xe2,
+};
+static const unsigned char kat195_persstr[] = {0};
+static const unsigned char kat195_addin0[] = {0};
+static const unsigned char kat195_addin1[] = {0};
+static const unsigned char kat195_retbits[] = {
+ 0x06, 0x33, 0xc9, 0xaf, 0x4d, 0x40, 0xf3, 0xc2, 0x1a, 0xd4, 0xe0, 0x78,
+ 0xa0, 0xc8, 0x4e, 0xe0, 0x3a, 0xd7, 0xad, 0x41, 0x0a, 0x0f, 0x7c, 0xf3,
+ 0xdf, 0xdf, 0xf5, 0x92, 0x0d, 0xcd, 0x39, 0x87, 0xfc, 0xec, 0xed, 0x11,
+ 0xa2, 0xb3, 0x8b, 0x15, 0x53, 0x5e, 0x44, 0xb5, 0x53, 0x77, 0xa8, 0xf2,
+ 0x0f, 0x4f, 0xe0, 0x51, 0x87, 0xf9, 0x76, 0xa2, 0x76, 0xe6, 0x4b, 0x81,
+ 0x3e, 0x55, 0xa8, 0xb9,
+};
+static const struct drbg_kat_no_reseed kat195_t = {
+ 14, kat195_entropyin, kat195_nonce, kat195_persstr,
+ kat195_addin0, kat195_addin1, kat195_retbits
+};
+static const struct drbg_kat kat195 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat195_t
+};
+
+static const unsigned char kat196_entropyin[] = {
+ 0x8b, 0x80, 0x93, 0x6e, 0x69, 0xc6, 0x7e, 0xdb, 0x77, 0x1c, 0x28, 0xf9,
+ 0xb9, 0x45, 0x21, 0x24,
+};
+static const unsigned char kat196_nonce[] = {
+ 0x7e, 0xe2, 0x61, 0x4e, 0xad, 0x3c, 0x12, 0x8e,
+};
+static const unsigned char kat196_persstr[] = {0};
+static const unsigned char kat196_addin0[] = {
+ 0xfc, 0x35, 0xcb, 0xa9, 0x7a, 0x1e, 0x21, 0x1b, 0xc4, 0x20, 0xe8, 0xaf,
+ 0x53, 0xf8, 0xe1, 0x3c,
+};
+static const unsigned char kat196_addin1[] = {
+ 0xfb, 0xa4, 0x38, 0xaa, 0xa7, 0x5a, 0x3c, 0xd4, 0xcd, 0x0c, 0xce, 0x39,
+ 0x9b, 0xfe, 0xc7, 0x4a,
+};
+static const unsigned char kat196_retbits[] = {
+ 0x67, 0x21, 0xcc, 0x1a, 0xda, 0x5e, 0xbc, 0x17, 0x13, 0xf7, 0x4c, 0x75,
+ 0x90, 0x00, 0x76, 0x56, 0x52, 0xee, 0xb5, 0xf3, 0xf9, 0xc2, 0x4f, 0xb9,
+ 0x34, 0x1b, 0x36, 0xa3, 0x69, 0xce, 0xc1, 0xd2, 0x7e, 0xa8, 0x0d, 0x6b,
+ 0x73, 0xb5, 0x60, 0x47, 0xaf, 0x07, 0x13, 0x8c, 0x5a, 0x43, 0xc9, 0x9a,
+ 0x87, 0x75, 0x31, 0x15, 0xc4, 0x71, 0xb8, 0x58, 0x7e, 0xa6, 0x5f, 0xa2,
+ 0x06, 0x5e, 0x3c, 0xe0,
+};
+static const struct drbg_kat_no_reseed kat196_t = {
+ 0, kat196_entropyin, kat196_nonce, kat196_persstr,
+ kat196_addin0, kat196_addin1, kat196_retbits
+};
+static const struct drbg_kat kat196 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat196_t
+};
+
+static const unsigned char kat197_entropyin[] = {
+ 0x89, 0xce, 0x6c, 0x76, 0xbc, 0x41, 0xaa, 0x32, 0xa9, 0xc8, 0xe3, 0xe3,
+ 0x7d, 0x62, 0x02, 0xef,
+};
+static const unsigned char kat197_nonce[] = {
+ 0xa3, 0x47, 0xf6, 0xcb, 0x64, 0xed, 0x19, 0xdd,
+};
+static const unsigned char kat197_persstr[] = {0};
+static const unsigned char kat197_addin0[] = {
+ 0xc5, 0x03, 0xb1, 0x22, 0x95, 0x7d, 0xce, 0xc8, 0xd9, 0xeb, 0x9c, 0xc9,
+ 0x94, 0xb8, 0xd1, 0x22,
+};
+static const unsigned char kat197_addin1[] = {
+ 0x3b, 0xb2, 0xf1, 0x19, 0x7a, 0x99, 0x58, 0x8d, 0xf3, 0x57, 0xc0, 0xd1,
+ 0x98, 0x6a, 0xc6, 0xed,
+};
+static const unsigned char kat197_retbits[] = {
+ 0xf0, 0xf4, 0x25, 0xb1, 0x9e, 0xb7, 0x5a, 0xea, 0x68, 0x99, 0xfa, 0xb7,
+ 0x61, 0x2c, 0x98, 0xa0, 0xb5, 0xc5, 0xc5, 0xa3, 0xc8, 0x61, 0x07, 0xa8,
+ 0xc2, 0x01, 0x62, 0x3f, 0x75, 0x99, 0x31, 0x90, 0x9a, 0xfd, 0x63, 0x41,
+ 0x9d, 0x1c, 0xce, 0xb8, 0x6b, 0xd4, 0xf1, 0x6e, 0x94, 0x8a, 0xef, 0x08,
+ 0x47, 0x61, 0x70, 0x75, 0x7b, 0xca, 0xf7, 0x98, 0x84, 0xf9, 0xc3, 0x6b,
+ 0xc7, 0x7e, 0x9f, 0xf9,
+};
+static const struct drbg_kat_no_reseed kat197_t = {
+ 1, kat197_entropyin, kat197_nonce, kat197_persstr,
+ kat197_addin0, kat197_addin1, kat197_retbits
+};
+static const struct drbg_kat kat197 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat197_t
+};
+
+static const unsigned char kat198_entropyin[] = {
+ 0xbc, 0x51, 0x67, 0x8d, 0x1f, 0x31, 0x28, 0x65, 0x7b, 0x38, 0x84, 0x9a,
+ 0xe9, 0xc4, 0xbb, 0x1e,
+};
+static const unsigned char kat198_nonce[] = {
+ 0xdd, 0x29, 0xd9, 0xd8, 0x3f, 0xdb, 0x5e, 0x09,
+};
+static const unsigned char kat198_persstr[] = {0};
+static const unsigned char kat198_addin0[] = {
+ 0xd4, 0xcd, 0x00, 0x67, 0x5c, 0xfe, 0x22, 0x7d, 0xe0, 0xcb, 0xab, 0x65,
+ 0x11, 0x35, 0x22, 0x89,
+};
+static const unsigned char kat198_addin1[] = {
+ 0x55, 0xbb, 0x93, 0x62, 0x80, 0xae, 0x46, 0xb2, 0x6d, 0x66, 0xb2, 0xf3,
+ 0xfe, 0xb2, 0x68, 0xd8,
+};
+static const unsigned char kat198_retbits[] = {
+ 0xe5, 0x81, 0x38, 0xb6, 0xb0, 0x23, 0x2e, 0x4d, 0x6d, 0x9e, 0xa8, 0xb6,
+ 0x5b, 0xd7, 0x69, 0x65, 0xcd, 0xbc, 0x58, 0x4c, 0xca, 0x2e, 0x83, 0xd4,
+ 0xea, 0xd9, 0x36, 0xbf, 0xb9, 0xc7, 0x9d, 0x77, 0xde, 0xc9, 0x42, 0x4f,
+ 0x2c, 0xf8, 0x95, 0x01, 0x1e, 0xf1, 0x03, 0x3c, 0x61, 0x9e, 0x28, 0xd1,
+ 0xdb, 0xa5, 0xdd, 0x3c, 0xed, 0x04, 0x42, 0x9c, 0x1b, 0xd3, 0xc0, 0x3e,
+ 0x5d, 0x13, 0xe2, 0xb8,
+};
+static const struct drbg_kat_no_reseed kat198_t = {
+ 2, kat198_entropyin, kat198_nonce, kat198_persstr,
+ kat198_addin0, kat198_addin1, kat198_retbits
+};
+static const struct drbg_kat kat198 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat198_t
+};
+
+static const unsigned char kat199_entropyin[] = {
+ 0x06, 0x5a, 0x5d, 0x4f, 0xdb, 0x34, 0xb0, 0x8f, 0xd8, 0xef, 0xc8, 0x1f,
+ 0x99, 0x62, 0x69, 0xab,
+};
+static const unsigned char kat199_nonce[] = {
+ 0xd5, 0xa6, 0x74, 0x7c, 0x7f, 0x8e, 0xef, 0x46,
+};
+static const unsigned char kat199_persstr[] = {0};
+static const unsigned char kat199_addin0[] = {
+ 0x72, 0xeb, 0xd3, 0x51, 0xed, 0xc0, 0x00, 0xd8, 0x36, 0x32, 0x58, 0xa6,
+ 0x9f, 0x2b, 0x98, 0xcc,
+};
+static const unsigned char kat199_addin1[] = {
+ 0xe5, 0xc8, 0x61, 0x21, 0x32, 0x96, 0xea, 0x2a, 0xd5, 0x09, 0x8f, 0x9b,
+ 0x4c, 0x50, 0x64, 0x7d,
+};
+static const unsigned char kat199_retbits[] = {
+ 0xa8, 0xea, 0x47, 0x0f, 0x17, 0xbe, 0xe5, 0x02, 0x1d, 0x49, 0xc8, 0x4b,
+ 0x72, 0x1e, 0x0b, 0x67, 0x47, 0x0d, 0x3b, 0xc4, 0xf9, 0x8f, 0xac, 0x68,
+ 0xc6, 0x74, 0x42, 0x97, 0x9d, 0x4f, 0xbc, 0xcb, 0xbc, 0xd0, 0x47, 0x7c,
+ 0x1e, 0x74, 0x93, 0x12, 0x6c, 0xbe, 0x16, 0x9b, 0x84, 0x44, 0x6f, 0x5f,
+ 0xcf, 0x66, 0x67, 0x86, 0x77, 0x5d, 0x19, 0xf3, 0x5c, 0x61, 0x52, 0x52,
+ 0x9a, 0x41, 0xde, 0x6d,
+};
+static const struct drbg_kat_no_reseed kat199_t = {
+ 3, kat199_entropyin, kat199_nonce, kat199_persstr,
+ kat199_addin0, kat199_addin1, kat199_retbits
+};
+static const struct drbg_kat kat199 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat199_t
+};
+
+static const unsigned char kat200_entropyin[] = {
+ 0x12, 0x48, 0xed, 0x4b, 0xf6, 0x06, 0xcc, 0x65, 0x8b, 0x64, 0x1b, 0x79,
+ 0x58, 0x59, 0x7f, 0x5a,
+};
+static const unsigned char kat200_nonce[] = {
+ 0x16, 0xc8, 0x8d, 0xea, 0x4e, 0x75, 0x3d, 0x50,
+};
+static const unsigned char kat200_persstr[] = {0};
+static const unsigned char kat200_addin0[] = {
+ 0xfc, 0x67, 0xe7, 0x63, 0x41, 0x32, 0x02, 0xe0, 0x4c, 0x55, 0x69, 0x7e,
+ 0xb7, 0x54, 0x8c, 0x56,
+};
+static const unsigned char kat200_addin1[] = {
+ 0x21, 0xe0, 0xe3, 0x86, 0x65, 0xec, 0xf6, 0x0f, 0xa9, 0x73, 0x0b, 0xdf,
+ 0x7e, 0x22, 0xcc, 0x7f,
+};
+static const unsigned char kat200_retbits[] = {
+ 0x63, 0xd9, 0xb5, 0x0d, 0xd6, 0x9e, 0xa9, 0xda, 0xc7, 0x5f, 0x48, 0xae,
+ 0x01, 0x2f, 0xce, 0xc2, 0x7c, 0x2e, 0x1d, 0xcf, 0xc2, 0xac, 0x2e, 0x59,
+ 0x24, 0x4a, 0xf4, 0xa6, 0xce, 0x9a, 0x73, 0xc4, 0xd8, 0xbd, 0xe6, 0x57,
+ 0x0d, 0x85, 0xee, 0x15, 0xb0, 0x8a, 0x48, 0xef, 0x47, 0x3d, 0x12, 0xdb,
+ 0x87, 0x1f, 0x6d, 0xf1, 0xd8, 0x14, 0x41, 0x61, 0x3d, 0xcc, 0x1e, 0xfb,
+ 0x20, 0x18, 0xf0, 0xc3,
+};
+static const struct drbg_kat_no_reseed kat200_t = {
+ 4, kat200_entropyin, kat200_nonce, kat200_persstr,
+ kat200_addin0, kat200_addin1, kat200_retbits
+};
+static const struct drbg_kat kat200 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat200_t
+};
+
+static const unsigned char kat201_entropyin[] = {
+ 0x6f, 0xa6, 0x29, 0xd0, 0x3c, 0xb4, 0xeb, 0x53, 0x4e, 0xfa, 0x03, 0x33,
+ 0x4d, 0x3b, 0x1d, 0x02,
+};
+static const unsigned char kat201_nonce[] = {
+ 0xd9, 0x52, 0x15, 0x3e, 0x79, 0xdf, 0x53, 0x8f,
+};
+static const unsigned char kat201_persstr[] = {0};
+static const unsigned char kat201_addin0[] = {
+ 0x2e, 0x5c, 0x55, 0x45, 0x78, 0xa0, 0x69, 0xf5, 0xe4, 0x95, 0x9d, 0xcb,
+ 0x35, 0x1a, 0x29, 0x4d,
+};
+static const unsigned char kat201_addin1[] = {
+ 0x2d, 0x26, 0xae, 0xaa, 0xd9, 0xcb, 0xf2, 0x53, 0xad, 0xd8, 0x68, 0x4d,
+ 0x29, 0xb1, 0xa6, 0x33,
+};
+static const unsigned char kat201_retbits[] = {
+ 0xf5, 0x82, 0x46, 0x31, 0x32, 0x84, 0x99, 0x02, 0x98, 0x86, 0x4a, 0x89,
+ 0xbf, 0xe7, 0xbe, 0x19, 0x70, 0xc0, 0x33, 0xdc, 0x16, 0x64, 0xad, 0x7f,
+ 0x5c, 0xd9, 0xb8, 0x12, 0xf5, 0xb7, 0xe9, 0x0f, 0x69, 0xa4, 0x9c, 0xdf,
+ 0xbe, 0xe0, 0xe2, 0x79, 0xf7, 0xdf, 0x1a, 0x8e, 0xd7, 0x9e, 0xca, 0x6e,
+ 0x68, 0x0d, 0x74, 0x0c, 0x0f, 0x2a, 0xe1, 0x2f, 0x87, 0x79, 0x8a, 0xcc,
+ 0x6d, 0x73, 0xd4, 0x2f,
+};
+static const struct drbg_kat_no_reseed kat201_t = {
+ 5, kat201_entropyin, kat201_nonce, kat201_persstr,
+ kat201_addin0, kat201_addin1, kat201_retbits
+};
+static const struct drbg_kat kat201 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat201_t
+};
+
+static const unsigned char kat202_entropyin[] = {
+ 0xc5, 0x8e, 0xeb, 0x2e, 0x57, 0xf2, 0x95, 0xd7, 0xaf, 0x1a, 0x37, 0x67,
+ 0x93, 0x5b, 0x85, 0xeb,
+};
+static const unsigned char kat202_nonce[] = {
+ 0x98, 0x61, 0x2b, 0x6c, 0xa0, 0x2f, 0x60, 0xe4,
+};
+static const unsigned char kat202_persstr[] = {0};
+static const unsigned char kat202_addin0[] = {
+ 0x10, 0xe8, 0x9c, 0x27, 0x1e, 0x2b, 0x28, 0x3d, 0x69, 0xb0, 0x4a, 0xbf,
+ 0x6c, 0x54, 0xb1, 0xe1,
+};
+static const unsigned char kat202_addin1[] = {
+ 0x20, 0x79, 0x50, 0xc2, 0x8b, 0x26, 0xec, 0x16, 0xc4, 0xf2, 0x81, 0x21,
+ 0x60, 0x7f, 0x4a, 0x5a,
+};
+static const unsigned char kat202_retbits[] = {
+ 0x28, 0xef, 0xf6, 0x03, 0xff, 0x0d, 0xc8, 0x39, 0xf8, 0x8f, 0x84, 0x47,
+ 0x33, 0xb2, 0x75, 0xbc, 0x6f, 0xda, 0x6d, 0x45, 0x46, 0xee, 0x26, 0x03,
+ 0x4f, 0x51, 0xf8, 0x4c, 0xe4, 0x30, 0xb0, 0x73, 0xc3, 0xda, 0x8a, 0xbf,
+ 0xe8, 0x2b, 0x53, 0x13, 0xba, 0x2e, 0x0f, 0x60, 0x04, 0x5b, 0x80, 0x96,
+ 0xb9, 0xcf, 0x31, 0x42, 0x48, 0x63, 0xe0, 0x6f, 0x72, 0xef, 0xf1, 0xba,
+ 0xa4, 0xb2, 0x52, 0x70,
+};
+static const struct drbg_kat_no_reseed kat202_t = {
+ 6, kat202_entropyin, kat202_nonce, kat202_persstr,
+ kat202_addin0, kat202_addin1, kat202_retbits
+};
+static const struct drbg_kat kat202 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat202_t
+};
+
+static const unsigned char kat203_entropyin[] = {
+ 0x8a, 0x34, 0x5b, 0x5a, 0x5e, 0xb7, 0xd7, 0xaa, 0x70, 0x0b, 0xff, 0x26,
+ 0x61, 0x25, 0xed, 0xe1,
+};
+static const unsigned char kat203_nonce[] = {
+ 0x00, 0xb2, 0x96, 0x37, 0x27, 0x8d, 0xa4, 0x57,
+};
+static const unsigned char kat203_persstr[] = {0};
+static const unsigned char kat203_addin0[] = {
+ 0x44, 0x53, 0x4b, 0x92, 0xaf, 0x03, 0x81, 0x71, 0xb6, 0x7b, 0x70, 0xf4,
+ 0xe1, 0xd5, 0xe7, 0xf5,
+};
+static const unsigned char kat203_addin1[] = {
+ 0x53, 0x14, 0x76, 0x60, 0xc0, 0xfd, 0xe5, 0xf9, 0x89, 0x34, 0x74, 0xf0,
+ 0x38, 0x84, 0xab, 0x14,
+};
+static const unsigned char kat203_retbits[] = {
+ 0xa6, 0xa7, 0xa5, 0x6f, 0xc3, 0x2c, 0x3d, 0x3c, 0x33, 0x06, 0xdd, 0x65,
+ 0x10, 0x9f, 0xf8, 0xd6, 0x80, 0x31, 0x19, 0x3b, 0xbf, 0x5b, 0x38, 0x38,
+ 0x0e, 0x38, 0x25, 0xdb, 0x7b, 0xef, 0x72, 0x94, 0x05, 0x14, 0x16, 0x26,
+ 0x37, 0x95, 0xf3, 0x34, 0xd1, 0xf8, 0x70, 0x54, 0xe9, 0x7d, 0xbb, 0x52,
+ 0xdd, 0x24, 0x4d, 0x52, 0x7a, 0x6f, 0xfc, 0xe0, 0x86, 0xd1, 0xad, 0x17,
+ 0x7b, 0xa8, 0xfb, 0x81,
+};
+static const struct drbg_kat_no_reseed kat203_t = {
+ 7, kat203_entropyin, kat203_nonce, kat203_persstr,
+ kat203_addin0, kat203_addin1, kat203_retbits
+};
+static const struct drbg_kat kat203 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat203_t
+};
+
+static const unsigned char kat204_entropyin[] = {
+ 0xfe, 0x50, 0x4e, 0x06, 0x89, 0x5d, 0x34, 0x08, 0x90, 0x50, 0x9f, 0x39,
+ 0x8f, 0xe7, 0x08, 0x32,
+};
+static const unsigned char kat204_nonce[] = {
+ 0x3b, 0x3d, 0x94, 0xb6, 0x94, 0x8f, 0x74, 0x01,
+};
+static const unsigned char kat204_persstr[] = {0};
+static const unsigned char kat204_addin0[] = {
+ 0x64, 0x20, 0x03, 0x18, 0x1f, 0x79, 0x1c, 0xb5, 0xba, 0xce, 0xf7, 0x23,
+ 0xc9, 0x6c, 0xe2, 0x62,
+};
+static const unsigned char kat204_addin1[] = {
+ 0x34, 0x5e, 0x8d, 0x29, 0xd5, 0xef, 0xdd, 0xc8, 0xab, 0x37, 0x83, 0x8b,
+ 0x18, 0x91, 0xbc, 0xd0,
+};
+static const unsigned char kat204_retbits[] = {
+ 0x45, 0x30, 0x40, 0x99, 0x14, 0x5b, 0x8e, 0x3d, 0xa8, 0x00, 0xa9, 0x2e,
+ 0x0f, 0x59, 0x15, 0xc8, 0x98, 0x1f, 0xb7, 0x70, 0x6a, 0x1d, 0xf0, 0xa6,
+ 0xc0, 0xb2, 0xad, 0x54, 0x35, 0xda, 0x19, 0xce, 0xd3, 0xac, 0xdf, 0xd5,
+ 0x83, 0x27, 0x95, 0x01, 0x3a, 0xfa, 0x5f, 0xf2, 0x1f, 0xf3, 0x32, 0x6a,
+ 0xda, 0x7d, 0x57, 0x78, 0x17, 0xf6, 0xb9, 0x4e, 0xb3, 0x5f, 0x33, 0x62,
+ 0x3d, 0xb4, 0x71, 0x76,
+};
+static const struct drbg_kat_no_reseed kat204_t = {
+ 8, kat204_entropyin, kat204_nonce, kat204_persstr,
+ kat204_addin0, kat204_addin1, kat204_retbits
+};
+static const struct drbg_kat kat204 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat204_t
+};
+
+static const unsigned char kat205_entropyin[] = {
+ 0xe0, 0x22, 0x7d, 0xe1, 0x4d, 0x5b, 0xc6, 0xad, 0xe2, 0xa0, 0x14, 0xee,
+ 0x43, 0x01, 0x51, 0xb4,
+};
+static const unsigned char kat205_nonce[] = {
+ 0x15, 0x37, 0xf8, 0x56, 0x16, 0x75, 0x87, 0x53,
+};
+static const unsigned char kat205_persstr[] = {0};
+static const unsigned char kat205_addin0[] = {
+ 0x87, 0xee, 0xfe, 0xf0, 0xe0, 0xcf, 0xd9, 0x0d, 0xd2, 0x6d, 0x48, 0x33,
+ 0x79, 0x78, 0x7c, 0x7f,
+};
+static const unsigned char kat205_addin1[] = {
+ 0x74, 0xd2, 0xff, 0xf6, 0xf2, 0x9f, 0x89, 0x2e, 0x66, 0xa9, 0xf8, 0x0b,
+ 0x2a, 0x5d, 0x9d, 0x20,
+};
+static const unsigned char kat205_retbits[] = {
+ 0xdd, 0xe0, 0x86, 0xce, 0xc0, 0xad, 0xd3, 0x1f, 0xb9, 0x55, 0x3d, 0x56,
+ 0xcc, 0x2c, 0x6b, 0x7c, 0x02, 0x2d, 0x8c, 0x87, 0xff, 0x54, 0x99, 0xfa,
+ 0x78, 0xa6, 0x8e, 0xeb, 0x05, 0x1c, 0xdb, 0xf8, 0x99, 0x67, 0x3b, 0x4e,
+ 0xd7, 0x6f, 0xe8, 0x67, 0xb7, 0x9e, 0xcf, 0x6f, 0xc1, 0xd7, 0xc6, 0xf8,
+ 0xf5, 0x97, 0x01, 0x31, 0x39, 0xd5, 0x28, 0xd3, 0x48, 0xca, 0x3b, 0xee,
+ 0x96, 0x05, 0xdd, 0x80,
+};
+static const struct drbg_kat_no_reseed kat205_t = {
+ 9, kat205_entropyin, kat205_nonce, kat205_persstr,
+ kat205_addin0, kat205_addin1, kat205_retbits
+};
+static const struct drbg_kat kat205 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat205_t
+};
+
+static const unsigned char kat206_entropyin[] = {
+ 0x44, 0xb7, 0x28, 0x2f, 0x95, 0x1c, 0x59, 0x1a, 0x7a, 0x3d, 0x9f, 0xf6,
+ 0x96, 0x0f, 0x20, 0xb9,
+};
+static const unsigned char kat206_nonce[] = {
+ 0xb7, 0x7e, 0xbe, 0x26, 0x99, 0x0c, 0xbe, 0x8c,
+};
+static const unsigned char kat206_persstr[] = {0};
+static const unsigned char kat206_addin0[] = {
+ 0x90, 0x00, 0x58, 0x7b, 0xb1, 0x8d, 0x20, 0x1e, 0xcf, 0xd5, 0x6f, 0x30,
+ 0xdb, 0xa4, 0x83, 0xd2,
+};
+static const unsigned char kat206_addin1[] = {
+ 0x24, 0x55, 0x23, 0x06, 0x0b, 0x0a, 0xf3, 0xe5, 0x75, 0xb1, 0x48, 0x0a,
+ 0xa6, 0xd8, 0xa3, 0x3b,
+};
+static const unsigned char kat206_retbits[] = {
+ 0x9f, 0x25, 0x67, 0x4a, 0xc0, 0x85, 0xa7, 0xa4, 0x87, 0xe7, 0xd7, 0x20,
+ 0x84, 0xd5, 0xd3, 0xc0, 0xfb, 0xd7, 0xd4, 0x18, 0x70, 0xf0, 0xf7, 0x66,
+ 0xd6, 0x13, 0x01, 0x59, 0x96, 0x05, 0x2e, 0xbf, 0xc6, 0xf6, 0x2e, 0x4c,
+ 0xf3, 0x89, 0xaf, 0x85, 0xcf, 0x12, 0x5d, 0x9d, 0x99, 0xc6, 0x49, 0xd4,
+ 0xe8, 0x75, 0x50, 0x79, 0xa6, 0x81, 0x7a, 0x9e, 0x81, 0x44, 0x5d, 0x1b,
+ 0x99, 0x4d, 0x29, 0x61,
+};
+static const struct drbg_kat_no_reseed kat206_t = {
+ 10, kat206_entropyin, kat206_nonce, kat206_persstr,
+ kat206_addin0, kat206_addin1, kat206_retbits
+};
+static const struct drbg_kat kat206 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat206_t
+};
+
+static const unsigned char kat207_entropyin[] = {
+ 0x74, 0x5c, 0xa1, 0x6e, 0xbc, 0x9e, 0x1a, 0x58, 0xda, 0x81, 0x02, 0x78,
+ 0x88, 0x5d, 0xff, 0x33,
+};
+static const unsigned char kat207_nonce[] = {
+ 0x7e, 0x11, 0xf9, 0x49, 0x86, 0x2c, 0xbc, 0xc9,
+};
+static const unsigned char kat207_persstr[] = {0};
+static const unsigned char kat207_addin0[] = {
+ 0x4b, 0x89, 0x8e, 0xbd, 0xd3, 0x21, 0x42, 0x62, 0x78, 0x15, 0xbe, 0x10,
+ 0x35, 0x43, 0x56, 0x96,
+};
+static const unsigned char kat207_addin1[] = {
+ 0x33, 0x0b, 0x0c, 0xe2, 0x87, 0x84, 0x2d, 0x3d, 0x71, 0x9a, 0x0c, 0xe4,
+ 0x15, 0x36, 0x3b, 0x77,
+};
+static const unsigned char kat207_retbits[] = {
+ 0x9c, 0x6d, 0xd7, 0x63, 0x88, 0x80, 0x65, 0x54, 0x1b, 0x1a, 0x38, 0x0c,
+ 0xf4, 0xf4, 0x59, 0x83, 0x9f, 0xb4, 0xf1, 0xef, 0x4f, 0x78, 0x17, 0x28,
+ 0x6b, 0xe4, 0x50, 0x33, 0x95, 0x7f, 0x79, 0xd1, 0x42, 0x9c, 0xfe, 0xfe,
+ 0xd1, 0xab, 0xd6, 0x22, 0x8b, 0x26, 0x74, 0x7e, 0x69, 0xec, 0x9b, 0x1a,
+ 0x02, 0x7b, 0x3a, 0x0b, 0x9a, 0x28, 0x48, 0x7e, 0x95, 0x4d, 0xda, 0x06,
+ 0xb7, 0xee, 0xb4, 0x54,
+};
+static const struct drbg_kat_no_reseed kat207_t = {
+ 11, kat207_entropyin, kat207_nonce, kat207_persstr,
+ kat207_addin0, kat207_addin1, kat207_retbits
+};
+static const struct drbg_kat kat207 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat207_t
+};
+
+static const unsigned char kat208_entropyin[] = {
+ 0x1e, 0x54, 0x6f, 0xee, 0xba, 0xf0, 0xfe, 0xba, 0x3a, 0x07, 0xc6, 0x35,
+ 0xe6, 0x23, 0x5b, 0xfb,
+};
+static const unsigned char kat208_nonce[] = {
+ 0x17, 0x88, 0xd9, 0xee, 0xa4, 0x44, 0xad, 0x7b,
+};
+static const unsigned char kat208_persstr[] = {0};
+static const unsigned char kat208_addin0[] = {
+ 0x51, 0x99, 0xd4, 0xaa, 0x59, 0x30, 0x22, 0x0c, 0x27, 0x34, 0x2e, 0x1c,
+ 0x0b, 0x99, 0x46, 0x4f,
+};
+static const unsigned char kat208_addin1[] = {
+ 0x16, 0xdd, 0x52, 0x0f, 0x00, 0x93, 0x29, 0xed, 0x7b, 0xe1, 0x4d, 0x25,
+ 0xe5, 0xc7, 0x91, 0x12,
+};
+static const unsigned char kat208_retbits[] = {
+ 0x34, 0xfa, 0x78, 0x30, 0x6c, 0x9e, 0xfb, 0x91, 0x2e, 0xe7, 0x8f, 0xb9,
+ 0x8a, 0x03, 0x54, 0x6d, 0x16, 0xc1, 0xcc, 0x9b, 0xc3, 0xb6, 0x7a, 0x04,
+ 0xf2, 0xa8, 0xe6, 0xfb, 0x26, 0x24, 0x14, 0xbc, 0xf3, 0xcc, 0x51, 0xd3,
+ 0xcf, 0x3a, 0x1a, 0x30, 0x48, 0x09, 0xf1, 0x86, 0xbd, 0x74, 0xf2, 0x09,
+ 0xb2, 0x42, 0x86, 0xf7, 0x71, 0x76, 0x67, 0xcc, 0x56, 0x60, 0xd3, 0xec,
+ 0x73, 0x2f, 0xb0, 0xd3,
+};
+static const struct drbg_kat_no_reseed kat208_t = {
+ 12, kat208_entropyin, kat208_nonce, kat208_persstr,
+ kat208_addin0, kat208_addin1, kat208_retbits
+};
+static const struct drbg_kat kat208 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat208_t
+};
+
+static const unsigned char kat209_entropyin[] = {
+ 0xde, 0x1f, 0xca, 0xee, 0x63, 0x29, 0xe9, 0xac, 0x06, 0xa6, 0xdc, 0x18,
+ 0xa1, 0x8d, 0x14, 0x7d,
+};
+static const unsigned char kat209_nonce[] = {
+ 0xe1, 0x0e, 0xa5, 0x48, 0xcc, 0x37, 0x73, 0xab,
+};
+static const unsigned char kat209_persstr[] = {0};
+static const unsigned char kat209_addin0[] = {
+ 0x5c, 0xdd, 0xd4, 0xfd, 0x07, 0xb6, 0xac, 0x3e, 0x96, 0xb1, 0x33, 0x39,
+ 0xa7, 0x5f, 0x56, 0xf9,
+};
+static const unsigned char kat209_addin1[] = {
+ 0x45, 0x47, 0x14, 0xbe, 0xbf, 0x96, 0x03, 0xe1, 0xcf, 0xef, 0x7b, 0x80,
+ 0x38, 0x37, 0x48, 0x99,
+};
+static const unsigned char kat209_retbits[] = {
+ 0x5e, 0x34, 0x83, 0x12, 0x58, 0x35, 0x24, 0x30, 0x48, 0xa5, 0x10, 0x18,
+ 0x4f, 0x08, 0x64, 0x87, 0xe9, 0xb0, 0x2f, 0xc0, 0xca, 0x60, 0xfb, 0x46,
+ 0x41, 0x6f, 0xb0, 0xcc, 0xc1, 0x3e, 0x45, 0x08, 0x1d, 0xa5, 0x96, 0x91,
+ 0xe3, 0x26, 0x78, 0xfc, 0xb6, 0xaa, 0xbe, 0xf5, 0x85, 0xfb, 0x49, 0x2b,
+ 0x19, 0x4e, 0x06, 0x17, 0x1a, 0x8d, 0x17, 0xaf, 0x85, 0x56, 0xa3, 0x6b,
+ 0xf4, 0x93, 0x1f, 0xf5,
+};
+static const struct drbg_kat_no_reseed kat209_t = {
+ 13, kat209_entropyin, kat209_nonce, kat209_persstr,
+ kat209_addin0, kat209_addin1, kat209_retbits
+};
+static const struct drbg_kat kat209 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat209_t
+};
+
+static const unsigned char kat210_entropyin[] = {
+ 0x8b, 0x52, 0x95, 0x07, 0xbc, 0x2e, 0x8f, 0x71, 0x19, 0x34, 0xad, 0xc8,
+ 0x8c, 0x65, 0x30, 0xa3,
+};
+static const unsigned char kat210_nonce[] = {
+ 0x72, 0x15, 0x95, 0x6b, 0x7c, 0x57, 0x4e, 0x71,
+};
+static const unsigned char kat210_persstr[] = {0};
+static const unsigned char kat210_addin0[] = {
+ 0x1a, 0xdb, 0x1e, 0xf6, 0x33, 0x47, 0xb2, 0x1e, 0x33, 0x51, 0x8b, 0x96,
+ 0x2f, 0x6d, 0xb8, 0x98,
+};
+static const unsigned char kat210_addin1[] = {
+ 0xd5, 0xc6, 0x9f, 0x42, 0xf3, 0x6e, 0xa2, 0x24, 0x98, 0x42, 0xb6, 0xfc,
+ 0x26, 0xac, 0x54, 0xfe,
+};
+static const unsigned char kat210_retbits[] = {
+ 0xc3, 0x74, 0xbd, 0xd6, 0x2c, 0xb1, 0xe4, 0x2e, 0x64, 0x84, 0x03, 0x84,
+ 0x3b, 0x8c, 0x06, 0xc0, 0xb3, 0x05, 0xf9, 0x45, 0x68, 0x5f, 0x72, 0xd1,
+ 0xbc, 0x2e, 0x42, 0x8c, 0x19, 0xdf, 0x45, 0x20, 0x18, 0xdd, 0xea, 0x81,
+ 0xeb, 0xe5, 0xb1, 0x5f, 0xad, 0x3b, 0xe4, 0xeb, 0x17, 0xfa, 0x2d, 0x2c,
+ 0xf5, 0x78, 0x36, 0xdd, 0x08, 0x09, 0x70, 0xf7, 0x16, 0xc0, 0xb2, 0x2f,
+ 0x72, 0x63, 0x41, 0x4a,
+};
+static const struct drbg_kat_no_reseed kat210_t = {
+ 14, kat210_entropyin, kat210_nonce, kat210_persstr,
+ kat210_addin0, kat210_addin1, kat210_retbits
+};
+static const struct drbg_kat kat210 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat210_t
+};
+
+static const unsigned char kat211_entropyin[] = {
+ 0xf4, 0x1f, 0x46, 0x6b, 0x32, 0x19, 0xbe, 0x21, 0x59, 0x77, 0x63, 0xfa,
+ 0x7b, 0x76, 0xfb, 0x40,
+};
+static const unsigned char kat211_nonce[] = {
+ 0xcd, 0x93, 0xfe, 0xb9, 0x96, 0x2e, 0x81, 0xac,
+};
+static const unsigned char kat211_persstr[] = {
+ 0xb5, 0x8f, 0x86, 0x9a, 0xd0, 0xaa, 0x98, 0x08, 0xf6, 0x64, 0x61, 0x37,
+ 0x43, 0x1d, 0x43, 0x0c,
+};
+static const unsigned char kat211_addin0[] = {0};
+static const unsigned char kat211_addin1[] = {0};
+static const unsigned char kat211_retbits[] = {
+ 0x2f, 0xb6, 0xd7, 0xec, 0xa3, 0x92, 0x67, 0x4f, 0xc7, 0x22, 0xa6, 0x19,
+ 0x20, 0x2e, 0x81, 0x9d, 0x0d, 0xa9, 0xd1, 0x1b, 0xc6, 0x7d, 0xb1, 0x0b,
+ 0xe4, 0xc1, 0x3c, 0xb9, 0x64, 0xe3, 0x0a, 0xda, 0x96, 0xdc, 0xcf, 0x0c,
+ 0x92, 0x2b, 0x71, 0x0a, 0xc0, 0x0d, 0xed, 0x54, 0x57, 0xfa, 0x97, 0x1b,
+ 0xb1, 0xc6, 0x61, 0xa0, 0x9a, 0xfa, 0x72, 0x0a, 0x58, 0x64, 0x34, 0x4b,
+ 0xf7, 0x7a, 0x36, 0xae,
+};
+static const struct drbg_kat_no_reseed kat211_t = {
+ 0, kat211_entropyin, kat211_nonce, kat211_persstr,
+ kat211_addin0, kat211_addin1, kat211_retbits
+};
+static const struct drbg_kat kat211 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat211_t
+};
+
+static const unsigned char kat212_entropyin[] = {
+ 0x9d, 0x1b, 0x88, 0x34, 0x83, 0x2f, 0xfa, 0x13, 0x83, 0x2e, 0xb0, 0x86,
+ 0x04, 0x7b, 0xf3, 0xb1,
+};
+static const unsigned char kat212_nonce[] = {
+ 0xd0, 0xf1, 0x5e, 0xfe, 0x86, 0x47, 0x7f, 0x75,
+};
+static const unsigned char kat212_persstr[] = {
+ 0x73, 0xc9, 0x37, 0x34, 0xf6, 0xea, 0x39, 0xae, 0x04, 0xe6, 0xa4, 0xb4,
+ 0x97, 0x66, 0xb8, 0x20,
+};
+static const unsigned char kat212_addin0[] = {0};
+static const unsigned char kat212_addin1[] = {0};
+static const unsigned char kat212_retbits[] = {
+ 0x9f, 0xb6, 0x7d, 0x35, 0x37, 0x89, 0x40, 0xa5, 0xd7, 0x6b, 0x96, 0x3a,
+ 0xce, 0x4f, 0x81, 0x58, 0xe9, 0x3f, 0xe0, 0xca, 0x06, 0x4f, 0x96, 0x56,
+ 0xd4, 0x6d, 0xf1, 0xc1, 0x0d, 0x02, 0x5f, 0x48, 0xb3, 0x35, 0x69, 0xda,
+ 0x07, 0xc7, 0x7e, 0xc5, 0x12, 0x23, 0x6d, 0x08, 0xd2, 0x69, 0x97, 0xd6,
+ 0xb9, 0xbb, 0x69, 0x15, 0xdf, 0x63, 0x9e, 0xa8, 0x9d, 0xa9, 0x57, 0xe6,
+ 0x6f, 0xc2, 0x90, 0x03,
+};
+static const struct drbg_kat_no_reseed kat212_t = {
+ 1, kat212_entropyin, kat212_nonce, kat212_persstr,
+ kat212_addin0, kat212_addin1, kat212_retbits
+};
+static const struct drbg_kat kat212 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat212_t
+};
+
+static const unsigned char kat213_entropyin[] = {
+ 0x29, 0x89, 0x86, 0x2a, 0x79, 0xe2, 0x55, 0x19, 0x5a, 0x24, 0x82, 0x8f,
+ 0xd3, 0x00, 0xeb, 0x34,
+};
+static const unsigned char kat213_nonce[] = {
+ 0x30, 0xff, 0xda, 0xcb, 0x3a, 0xc7, 0xb2, 0x7b,
+};
+static const unsigned char kat213_persstr[] = {
+ 0x71, 0x9b, 0x89, 0x9c, 0x9e, 0x4a, 0x5d, 0xb9, 0xe7, 0x1d, 0xfd, 0xa4,
+ 0x8f, 0xa6, 0x58, 0xcd,
+};
+static const unsigned char kat213_addin0[] = {0};
+static const unsigned char kat213_addin1[] = {0};
+static const unsigned char kat213_retbits[] = {
+ 0xb4, 0xf2, 0x00, 0x60, 0xea, 0x30, 0x01, 0xef, 0xdb, 0xd5, 0xcc, 0x89,
+ 0x83, 0x8e, 0x0a, 0x08, 0xc0, 0x9f, 0x7a, 0x6f, 0xe5, 0xbc, 0x02, 0x3c,
+ 0x33, 0xd1, 0x15, 0xfe, 0xdd, 0x6a, 0xe1, 0x51, 0x30, 0x74, 0x22, 0xf9,
+ 0x97, 0xd3, 0x2b, 0x3c, 0xea, 0xb8, 0x79, 0x95, 0x86, 0x23, 0x68, 0xc4,
+ 0xc3, 0xaf, 0x7a, 0xc4, 0x81, 0x58, 0x74, 0xc0, 0x08, 0x4e, 0xa1, 0xdc,
+ 0xec, 0x50, 0x58, 0xba,
+};
+static const struct drbg_kat_no_reseed kat213_t = {
+ 2, kat213_entropyin, kat213_nonce, kat213_persstr,
+ kat213_addin0, kat213_addin1, kat213_retbits
+};
+static const struct drbg_kat kat213 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat213_t
+};
+
+static const unsigned char kat214_entropyin[] = {
+ 0x74, 0x82, 0xb2, 0xb0, 0x2a, 0x74, 0x46, 0xde, 0x58, 0x9d, 0x7e, 0x60,
+ 0xcf, 0x01, 0x29, 0x69,
+};
+static const unsigned char kat214_nonce[] = {
+ 0x1c, 0x4b, 0xda, 0x6a, 0x57, 0xf4, 0x1f, 0xfb,
+};
+static const unsigned char kat214_persstr[] = {
+ 0x52, 0x9e, 0x4e, 0x80, 0xf5, 0x01, 0xe7, 0x3e, 0xc8, 0x6e, 0xaa, 0x25,
+ 0x96, 0x28, 0xa1, 0x97,
+};
+static const unsigned char kat214_addin0[] = {0};
+static const unsigned char kat214_addin1[] = {0};
+static const unsigned char kat214_retbits[] = {
+ 0x74, 0x98, 0xf9, 0x17, 0x2a, 0xf7, 0xf5, 0xf2, 0x6d, 0x84, 0x77, 0x97,
+ 0x76, 0x8e, 0x45, 0x91, 0x70, 0xdd, 0x9e, 0xc7, 0xf4, 0x2a, 0x1f, 0xe9,
+ 0x79, 0xa2, 0xe4, 0xfa, 0x32, 0xa5, 0xe1, 0x24, 0xc5, 0xcb, 0x1a, 0xd4,
+ 0xc3, 0x94, 0xa2, 0xc2, 0x09, 0x9e, 0x8f, 0x94, 0x2e, 0xfb, 0xe5, 0x9a,
+ 0xf0, 0x97, 0x5b, 0x56, 0xa9, 0xaf, 0xa7, 0x74, 0x33, 0x16, 0x12, 0xad,
+ 0x88, 0x7b, 0x3f, 0x55,
+};
+static const struct drbg_kat_no_reseed kat214_t = {
+ 3, kat214_entropyin, kat214_nonce, kat214_persstr,
+ kat214_addin0, kat214_addin1, kat214_retbits
+};
+static const struct drbg_kat kat214 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat214_t
+};
+
+static const unsigned char kat215_entropyin[] = {
+ 0x0a, 0x84, 0x05, 0x99, 0x1a, 0xeb, 0x64, 0xf3, 0xa8, 0x2d, 0x8b, 0xef,
+ 0x2b, 0x6c, 0x94, 0x22,
+};
+static const unsigned char kat215_nonce[] = {
+ 0xa7, 0xa5, 0x8d, 0xa9, 0xb2, 0x16, 0xf7, 0xfb,
+};
+static const unsigned char kat215_persstr[] = {
+ 0x68, 0xdf, 0x62, 0xfc, 0x01, 0xd3, 0xdb, 0xb0, 0x18, 0xc1, 0x63, 0xbe,
+ 0x34, 0x29, 0xf2, 0xaa,
+};
+static const unsigned char kat215_addin0[] = {0};
+static const unsigned char kat215_addin1[] = {0};
+static const unsigned char kat215_retbits[] = {
+ 0x7a, 0x9b, 0xa1, 0xe8, 0x25, 0x13, 0x3f, 0xf4, 0xc1, 0xd6, 0x46, 0xce,
+ 0x55, 0x77, 0xf3, 0x5a, 0x17, 0x84, 0xee, 0xc2, 0xc1, 0x97, 0x70, 0x90,
+ 0xb4, 0x8e, 0x30, 0xbd, 0x3b, 0x75, 0x06, 0xf4, 0x47, 0xee, 0x62, 0xd0,
+ 0x21, 0xca, 0xe1, 0x2a, 0xd2, 0x87, 0xb4, 0x17, 0xed, 0xdb, 0x9e, 0xc6,
+ 0x46, 0x0e, 0x3e, 0x28, 0x4a, 0xfa, 0x73, 0xb7, 0x39, 0x56, 0x4e, 0x40,
+ 0x73, 0xd0, 0x0e, 0x3c,
+};
+static const struct drbg_kat_no_reseed kat215_t = {
+ 4, kat215_entropyin, kat215_nonce, kat215_persstr,
+ kat215_addin0, kat215_addin1, kat215_retbits
+};
+static const struct drbg_kat kat215 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat215_t
+};
+
+static const unsigned char kat216_entropyin[] = {
+ 0xc7, 0xe9, 0xf6, 0x88, 0x33, 0xb1, 0x8e, 0x03, 0x6a, 0xa1, 0xda, 0x02,
+ 0x5a, 0x35, 0x9e, 0xd7,
+};
+static const unsigned char kat216_nonce[] = {
+ 0x99, 0xf0, 0xe4, 0x9c, 0xe8, 0x11, 0xee, 0x7e,
+};
+static const unsigned char kat216_persstr[] = {
+ 0x8d, 0xe7, 0xc8, 0x6b, 0x8e, 0xc6, 0x1d, 0x6a, 0xbb, 0x52, 0xa7, 0x91,
+ 0x66, 0x71, 0xad, 0xb9,
+};
+static const unsigned char kat216_addin0[] = {0};
+static const unsigned char kat216_addin1[] = {0};
+static const unsigned char kat216_retbits[] = {
+ 0x14, 0x07, 0xb6, 0x81, 0x51, 0xfc, 0xb0, 0xf0, 0x8e, 0xba, 0xbc, 0x21,
+ 0xc6, 0xc1, 0x81, 0xac, 0x1d, 0xbf, 0x9c, 0x6f, 0xb1, 0xb2, 0xc1, 0x6e,
+ 0xaf, 0x1f, 0x8c, 0x49, 0x0d, 0x6f, 0x7d, 0x52, 0xd0, 0xf4, 0x21, 0x11,
+ 0x6a, 0x59, 0x98, 0x33, 0x0d, 0x81, 0x05, 0xf5, 0x02, 0x76, 0x17, 0xdc,
+ 0x94, 0xb1, 0x4c, 0x08, 0x3f, 0x49, 0xd1, 0x1c, 0x34, 0xf4, 0xf2, 0x63,
+ 0x02, 0x31, 0x66, 0x24,
+};
+static const struct drbg_kat_no_reseed kat216_t = {
+ 5, kat216_entropyin, kat216_nonce, kat216_persstr,
+ kat216_addin0, kat216_addin1, kat216_retbits
+};
+static const struct drbg_kat kat216 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat216_t
+};
+
+static const unsigned char kat217_entropyin[] = {
+ 0xd6, 0x7e, 0xeb, 0x00, 0xa4, 0x29, 0x1a, 0x18, 0x47, 0x11, 0x84, 0xb4,
+ 0x31, 0x59, 0xd2, 0xbd,
+};
+static const unsigned char kat217_nonce[] = {
+ 0xe4, 0xa3, 0x61, 0x49, 0x7e, 0xe1, 0x43, 0x8a,
+};
+static const unsigned char kat217_persstr[] = {
+ 0xf0, 0x54, 0xad, 0xf2, 0xad, 0x38, 0x49, 0xda, 0x72, 0x72, 0xb3, 0xb3,
+ 0x2a, 0xe0, 0xfc, 0xab,
+};
+static const unsigned char kat217_addin0[] = {0};
+static const unsigned char kat217_addin1[] = {0};
+static const unsigned char kat217_retbits[] = {
+ 0x52, 0x45, 0xc3, 0x0a, 0x65, 0x1d, 0x98, 0x61, 0xb6, 0x36, 0xc8, 0xe8,
+ 0xcc, 0x8b, 0x84, 0x52, 0x46, 0xda, 0x10, 0xc1, 0x04, 0xd7, 0x81, 0x34,
+ 0xa8, 0x4e, 0x41, 0xfe, 0xa8, 0x0e, 0x0e, 0x73, 0x69, 0x2f, 0x84, 0x81,
+ 0xcd, 0x4d, 0x75, 0x0c, 0x79, 0xe3, 0x87, 0x6b, 0x9a, 0xbf, 0xa9, 0xd6,
+ 0x14, 0xd8, 0x68, 0x24, 0x96, 0x05, 0x61, 0x9d, 0xef, 0xef, 0x29, 0x68,
+ 0xfd, 0x33, 0x14, 0x1e,
+};
+static const struct drbg_kat_no_reseed kat217_t = {
+ 6, kat217_entropyin, kat217_nonce, kat217_persstr,
+ kat217_addin0, kat217_addin1, kat217_retbits
+};
+static const struct drbg_kat kat217 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat217_t
+};
+
+static const unsigned char kat218_entropyin[] = {
+ 0xce, 0x08, 0xf0, 0x2b, 0xcd, 0xe4, 0x7f, 0x60, 0x30, 0x82, 0x02, 0x43,
+ 0xe1, 0x01, 0x38, 0x87,
+};
+static const unsigned char kat218_nonce[] = {
+ 0xd1, 0xb1, 0x51, 0x30, 0xcd, 0x03, 0x8d, 0x6d,
+};
+static const unsigned char kat218_persstr[] = {
+ 0xad, 0x0b, 0xcb, 0x82, 0x01, 0x16, 0x0d, 0x82, 0xf1, 0x79, 0x66, 0xd4,
+ 0xc7, 0xb6, 0xa4, 0xec,
+};
+static const unsigned char kat218_addin0[] = {0};
+static const unsigned char kat218_addin1[] = {0};
+static const unsigned char kat218_retbits[] = {
+ 0xf4, 0x8e, 0xd0, 0x3b, 0xdb, 0xa9, 0x31, 0x0d, 0x7f, 0xe0, 0xa5, 0xdd,
+ 0xdf, 0x9d, 0xf4, 0x9c, 0x0d, 0xbe, 0x07, 0xb9, 0x5b, 0xde, 0x25, 0xa0,
+ 0xb6, 0x6e, 0xd0, 0x1a, 0x9f, 0x7a, 0x07, 0x82, 0x0f, 0x2d, 0x7e, 0xaa,
+ 0x98, 0x63, 0x70, 0xa0, 0xce, 0x00, 0x01, 0x3b, 0x43, 0x31, 0xe4, 0x4b,
+ 0xeb, 0x30, 0x10, 0x57, 0x5a, 0xf7, 0xd6, 0x25, 0xbe, 0xd5, 0x5a, 0x59,
+ 0x2d, 0x97, 0x38, 0x28,
+};
+static const struct drbg_kat_no_reseed kat218_t = {
+ 7, kat218_entropyin, kat218_nonce, kat218_persstr,
+ kat218_addin0, kat218_addin1, kat218_retbits
+};
+static const struct drbg_kat kat218 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat218_t
+};
+
+static const unsigned char kat219_entropyin[] = {
+ 0x8d, 0xbc, 0xda, 0xa7, 0x8a, 0xdd, 0xb2, 0x85, 0xdf, 0xdb, 0x5e, 0x41,
+ 0xee, 0xf6, 0x7e, 0x6f,
+};
+static const unsigned char kat219_nonce[] = {
+ 0x49, 0x06, 0x2c, 0x09, 0x8b, 0x64, 0xe7, 0xf8,
+};
+static const unsigned char kat219_persstr[] = {
+ 0x7d, 0xc1, 0x4e, 0x73, 0x96, 0xf6, 0x24, 0x50, 0xbe, 0xbd, 0xf2, 0xeb,
+ 0xf0, 0x17, 0xaa, 0xd5,
+};
+static const unsigned char kat219_addin0[] = {0};
+static const unsigned char kat219_addin1[] = {0};
+static const unsigned char kat219_retbits[] = {
+ 0x49, 0xd0, 0x3f, 0xe3, 0xb7, 0x2d, 0x44, 0xa8, 0xa1, 0xe4, 0x69, 0xd2,
+ 0x5a, 0x14, 0x5b, 0xa6, 0x4d, 0x61, 0x69, 0xdd, 0x94, 0x7f, 0x87, 0x93,
+ 0xd5, 0xef, 0x43, 0xde, 0x7b, 0x23, 0x94, 0x13, 0x70, 0x83, 0xe6, 0xe7,
+ 0x69, 0xbb, 0xfd, 0xe9, 0x60, 0x0c, 0x36, 0xb0, 0x32, 0xb7, 0x78, 0x65,
+ 0x22, 0x07, 0x0b, 0x5a, 0x65, 0xc7, 0x93, 0x92, 0x68, 0x92, 0xb9, 0xfb,
+ 0x0d, 0x1c, 0x1d, 0x54,
+};
+static const struct drbg_kat_no_reseed kat219_t = {
+ 8, kat219_entropyin, kat219_nonce, kat219_persstr,
+ kat219_addin0, kat219_addin1, kat219_retbits
+};
+static const struct drbg_kat kat219 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat219_t
+};
+
+static const unsigned char kat220_entropyin[] = {
+ 0x0d, 0x98, 0x37, 0x0c, 0xff, 0xa0, 0xa8, 0x79, 0xfe, 0x85, 0xb5, 0xde,
+ 0x4e, 0x69, 0xcf, 0x7d,
+};
+static const unsigned char kat220_nonce[] = {
+ 0x93, 0x50, 0xa8, 0x6b, 0x7a, 0x1b, 0xc6, 0x8a,
+};
+static const unsigned char kat220_persstr[] = {
+ 0x01, 0x61, 0xb2, 0x4d, 0x1c, 0x3c, 0xa5, 0x90, 0x11, 0x7e, 0xc2, 0x9a,
+ 0xcc, 0x39, 0x44, 0x6f,
+};
+static const unsigned char kat220_addin0[] = {0};
+static const unsigned char kat220_addin1[] = {0};
+static const unsigned char kat220_retbits[] = {
+ 0x7c, 0xd6, 0x46, 0x84, 0x28, 0x9b, 0x43, 0xb1, 0xe5, 0x93, 0xd9, 0x4a,
+ 0xe9, 0x79, 0xf7, 0xfa, 0x5d, 0xe8, 0x95, 0x77, 0xf3, 0x7c, 0x7a, 0xea,
+ 0x0b, 0x58, 0x4d, 0x18, 0x60, 0x2c, 0x25, 0x1b, 0x1e, 0xc2, 0x5f, 0xf6,
+ 0x12, 0xd9, 0x7f, 0xda, 0x37, 0x84, 0xe9, 0x65, 0x59, 0x73, 0xe3, 0x1f,
+ 0xd4, 0xb5, 0xd1, 0xea, 0xde, 0xc6, 0x68, 0x61, 0xae, 0x2e, 0x97, 0x19,
+ 0xad, 0x34, 0x47, 0x30,
+};
+static const struct drbg_kat_no_reseed kat220_t = {
+ 9, kat220_entropyin, kat220_nonce, kat220_persstr,
+ kat220_addin0, kat220_addin1, kat220_retbits
+};
+static const struct drbg_kat kat220 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat220_t
+};
+
+static const unsigned char kat221_entropyin[] = {
+ 0xd9, 0xb6, 0xfb, 0x62, 0xda, 0x0a, 0x02, 0x32, 0x35, 0xe7, 0xcd, 0x78,
+ 0x16, 0x37, 0x7c, 0xf5,
+};
+static const unsigned char kat221_nonce[] = {
+ 0x1c, 0xa8, 0xc5, 0xfa, 0x5b, 0x9f, 0x8c, 0x90,
+};
+static const unsigned char kat221_persstr[] = {
+ 0x17, 0xbe, 0x48, 0x85, 0xb5, 0xf9, 0x64, 0x1b, 0xf5, 0xf6, 0x89, 0xbc,
+ 0x97, 0x97, 0x88, 0x58,
+};
+static const unsigned char kat221_addin0[] = {0};
+static const unsigned char kat221_addin1[] = {0};
+static const unsigned char kat221_retbits[] = {
+ 0xe1, 0x1e, 0x3c, 0xa6, 0xc8, 0x32, 0xf4, 0x6f, 0xf1, 0xf9, 0x71, 0xc0,
+ 0x7e, 0x7b, 0x66, 0xc7, 0xd5, 0xb1, 0xb2, 0xe6, 0xec, 0x8c, 0x5f, 0xfc,
+ 0x77, 0x10, 0x3f, 0x0a, 0xd3, 0x08, 0x80, 0x0b, 0xb9, 0x89, 0xb9, 0xab,
+ 0x70, 0x10, 0x68, 0x33, 0x78, 0xa3, 0xf7, 0x81, 0x9a, 0x29, 0x7a, 0x37,
+ 0x65, 0x25, 0x6a, 0xc4, 0x0f, 0xb0, 0xa9, 0xcb, 0x22, 0x46, 0xae, 0xb8,
+ 0x5d, 0x73, 0x60, 0x1b,
+};
+static const struct drbg_kat_no_reseed kat221_t = {
+ 10, kat221_entropyin, kat221_nonce, kat221_persstr,
+ kat221_addin0, kat221_addin1, kat221_retbits
+};
+static const struct drbg_kat kat221 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat221_t
+};
+
+static const unsigned char kat222_entropyin[] = {
+ 0xa7, 0x11, 0x39, 0x44, 0xfc, 0x4d, 0x4b, 0x15, 0xa9, 0x49, 0x67, 0xc8,
+ 0xf5, 0x65, 0x2a, 0x36,
+};
+static const unsigned char kat222_nonce[] = {
+ 0xa5, 0x06, 0xb7, 0x9a, 0xfe, 0x6a, 0xf8, 0x22,
+};
+static const unsigned char kat222_persstr[] = {
+ 0x91, 0x8f, 0xe4, 0xf3, 0x65, 0x25, 0x9c, 0x18, 0xeb, 0x68, 0x50, 0xfb,
+ 0xee, 0x40, 0x3f, 0x5e,
+};
+static const unsigned char kat222_addin0[] = {0};
+static const unsigned char kat222_addin1[] = {0};
+static const unsigned char kat222_retbits[] = {
+ 0x60, 0x76, 0xb2, 0xc0, 0xf7, 0xde, 0x1d, 0xd3, 0xe4, 0x6a, 0xdb, 0x11,
+ 0x61, 0xb7, 0x2a, 0x7f, 0x83, 0xb8, 0x77, 0x3f, 0xab, 0x0d, 0xcb, 0x1c,
+ 0x1f, 0xde, 0x25, 0xdb, 0x0d, 0x09, 0x86, 0x2a, 0xcd, 0xd3, 0x8f, 0x8d,
+ 0x21, 0x64, 0x90, 0x3a, 0x8e, 0x88, 0x58, 0xf8, 0xa9, 0xb6, 0x1b, 0xd7,
+ 0xda, 0xe3, 0xf6, 0x06, 0x68, 0xe6, 0xee, 0x26, 0x4b, 0x9f, 0xfa, 0xf5,
+ 0x78, 0xb5, 0x56, 0x46,
+};
+static const struct drbg_kat_no_reseed kat222_t = {
+ 11, kat222_entropyin, kat222_nonce, kat222_persstr,
+ kat222_addin0, kat222_addin1, kat222_retbits
+};
+static const struct drbg_kat kat222 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat222_t
+};
+
+static const unsigned char kat223_entropyin[] = {
+ 0xac, 0xf7, 0x62, 0x38, 0x39, 0xb9, 0x4b, 0xd7, 0xa8, 0x93, 0xc2, 0x87,
+ 0x61, 0x6c, 0xdb, 0x6a,
+};
+static const unsigned char kat223_nonce[] = {
+ 0xa1, 0xf6, 0x03, 0x9f, 0x91, 0xc1, 0x76, 0x23,
+};
+static const unsigned char kat223_persstr[] = {
+ 0x5f, 0x9c, 0x69, 0xde, 0x2c, 0x32, 0x87, 0x3f, 0x67, 0x9d, 0x17, 0x68,
+ 0xef, 0x3c, 0x70, 0xfb,
+};
+static const unsigned char kat223_addin0[] = {0};
+static const unsigned char kat223_addin1[] = {0};
+static const unsigned char kat223_retbits[] = {
+ 0xf6, 0xab, 0xbf, 0xfd, 0x79, 0x65, 0x64, 0x94, 0x36, 0xb4, 0x8b, 0x09,
+ 0x20, 0x86, 0xcd, 0xf0, 0x50, 0x2f, 0x52, 0xc8, 0x7c, 0x8f, 0xdc, 0x8f,
+ 0x6d, 0x49, 0xf0, 0x84, 0x33, 0xa2, 0x02, 0xd8, 0xbe, 0x44, 0xf6, 0x56,
+ 0x2a, 0xce, 0x58, 0x0e, 0x80, 0x75, 0xf0, 0xbc, 0x67, 0x0b, 0x2e, 0x9d,
+ 0x95, 0x1f, 0x15, 0xf8, 0x4d, 0x82, 0xaf, 0xe6, 0xb8, 0x32, 0x76, 0x5e,
+ 0xca, 0xb0, 0x37, 0xee,
+};
+static const struct drbg_kat_no_reseed kat223_t = {
+ 12, kat223_entropyin, kat223_nonce, kat223_persstr,
+ kat223_addin0, kat223_addin1, kat223_retbits
+};
+static const struct drbg_kat kat223 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat223_t
+};
+
+static const unsigned char kat224_entropyin[] = {
+ 0xd9, 0x0d, 0x78, 0x6e, 0x9d, 0x19, 0x62, 0x84, 0x3b, 0x02, 0x7a, 0xa0,
+ 0xe8, 0x59, 0x8f, 0xd4,
+};
+static const unsigned char kat224_nonce[] = {
+ 0x04, 0x17, 0xf1, 0x4f, 0x96, 0xf2, 0x02, 0x9c,
+};
+static const unsigned char kat224_persstr[] = {
+ 0xec, 0x5c, 0x55, 0x14, 0x5a, 0x4f, 0x95, 0x52, 0xf2, 0x51, 0xf7, 0xdf,
+ 0xb0, 0x17, 0xc1, 0xd4,
+};
+static const unsigned char kat224_addin0[] = {0};
+static const unsigned char kat224_addin1[] = {0};
+static const unsigned char kat224_retbits[] = {
+ 0xfe, 0x2c, 0xa4, 0x44, 0x55, 0xa5, 0xe7, 0xde, 0x70, 0x8a, 0x71, 0x0a,
+ 0xb6, 0x46, 0xcf, 0xcf, 0xbc, 0x87, 0xd6, 0x78, 0xb3, 0xe9, 0x41, 0x06,
+ 0x3f, 0xa7, 0x01, 0xda, 0xc7, 0xcb, 0x4f, 0x09, 0x53, 0xaf, 0x8f, 0xce,
+ 0x45, 0x8c, 0xee, 0x54, 0x9f, 0x53, 0x7f, 0xa7, 0x71, 0xb8, 0x9b, 0x04,
+ 0x94, 0xc0, 0xbb, 0x5c, 0xfd, 0x35, 0xbf, 0x67, 0xf4, 0xb2, 0x70, 0xd6,
+ 0x20, 0x5f, 0x47, 0x03,
+};
+static const struct drbg_kat_no_reseed kat224_t = {
+ 13, kat224_entropyin, kat224_nonce, kat224_persstr,
+ kat224_addin0, kat224_addin1, kat224_retbits
+};
+static const struct drbg_kat kat224 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat224_t
+};
+
+static const unsigned char kat225_entropyin[] = {
+ 0x1c, 0xdb, 0x74, 0x45, 0x59, 0xa8, 0x2c, 0x62, 0xfb, 0x3b, 0x15, 0xa2,
+ 0xa3, 0xaa, 0xd1, 0x89,
+};
+static const unsigned char kat225_nonce[] = {
+ 0x43, 0x43, 0x2c, 0xe3, 0x0a, 0xe7, 0xf9, 0x6b,
+};
+static const unsigned char kat225_persstr[] = {
+ 0xf5, 0x9a, 0xd9, 0x93, 0x9f, 0xcd, 0x6c, 0x0f, 0x47, 0x8c, 0xc5, 0x08,
+ 0x39, 0xf8, 0xff, 0xce,
+};
+static const unsigned char kat225_addin0[] = {0};
+static const unsigned char kat225_addin1[] = {0};
+static const unsigned char kat225_retbits[] = {
+ 0x91, 0xb9, 0xeb, 0xeb, 0x92, 0x9d, 0xc6, 0x99, 0x94, 0x91, 0x22, 0x97,
+ 0x0b, 0x21, 0x77, 0xd5, 0xd5, 0xb7, 0x05, 0x04, 0x2d, 0x3a, 0x0d, 0x60,
+ 0xd7, 0xd3, 0xbb, 0x21, 0x8b, 0x7a, 0x69, 0xe1, 0xcd, 0x68, 0x64, 0xb8,
+ 0xa2, 0x68, 0xca, 0x78, 0xc8, 0x34, 0x23, 0x2d, 0x0c, 0xb8, 0x8f, 0x93,
+ 0x77, 0x30, 0x08, 0x4b, 0x1e, 0xc7, 0xd2, 0x86, 0x7f, 0xbc, 0x85, 0x0e,
+ 0x04, 0x05, 0x03, 0x24,
+};
+static const struct drbg_kat_no_reseed kat225_t = {
+ 14, kat225_entropyin, kat225_nonce, kat225_persstr,
+ kat225_addin0, kat225_addin1, kat225_retbits
+};
+static const struct drbg_kat kat225 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat225_t
+};
+
+static const unsigned char kat226_entropyin[] = {
+ 0x71, 0xba, 0x02, 0x9a, 0x7a, 0x92, 0x39, 0x1b, 0x3f, 0x29, 0x4f, 0x2f,
+ 0xbf, 0x57, 0x27, 0xab,
+};
+static const unsigned char kat226_nonce[] = {
+ 0xf0, 0xe9, 0x12, 0x78, 0x8f, 0x98, 0x27, 0xff,
+};
+static const unsigned char kat226_persstr[] = {
+ 0x23, 0xf3, 0x69, 0x80, 0xda, 0x40, 0x16, 0x64, 0x2c, 0x81, 0x0d, 0xa2,
+ 0x99, 0x0a, 0xa2, 0x5e,
+};
+static const unsigned char kat226_addin0[] = {
+ 0x59, 0xab, 0x41, 0xb2, 0x4e, 0xe8, 0xe2, 0x71, 0xe2, 0x53, 0xc6, 0xcc,
+ 0x40, 0x48, 0x7c, 0xb5,
+};
+static const unsigned char kat226_addin1[] = {
+ 0x91, 0x64, 0xf0, 0x28, 0x60, 0x77, 0x3e, 0x3b, 0x96, 0xd8, 0x5b, 0x37,
+ 0x38, 0x38, 0x50, 0x66,
+};
+static const unsigned char kat226_retbits[] = {
+ 0xde, 0x1b, 0x8a, 0x25, 0x95, 0x89, 0x23, 0x54, 0xda, 0x47, 0xb4, 0xea,
+ 0xaf, 0x9d, 0xdc, 0xec, 0x64, 0xa9, 0x61, 0x01, 0x17, 0xb0, 0x5e, 0x40,
+ 0xd0, 0x76, 0x60, 0xa8, 0x0b, 0xcf, 0x82, 0x5e, 0xef, 0xdb, 0xd2, 0x8e,
+ 0x07, 0xd5, 0x96, 0x81, 0xf9, 0xe0, 0x03, 0x7b, 0xdb, 0x72, 0x5f, 0xe6,
+ 0xce, 0x84, 0x6d, 0x82, 0x4b, 0x3b, 0x34, 0xc2, 0xc2, 0x1a, 0x48, 0xf8,
+ 0x89, 0x5f, 0x9f, 0x5e,
+};
+static const struct drbg_kat_no_reseed kat226_t = {
+ 0, kat226_entropyin, kat226_nonce, kat226_persstr,
+ kat226_addin0, kat226_addin1, kat226_retbits
+};
+static const struct drbg_kat kat226 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat226_t
+};
+
+static const unsigned char kat227_entropyin[] = {
+ 0x67, 0x73, 0x94, 0xf0, 0x3e, 0xac, 0xb5, 0xa1, 0x37, 0x51, 0x5f, 0xcd,
+ 0x3e, 0xa2, 0xbb, 0xc7,
+};
+static const unsigned char kat227_nonce[] = {
+ 0x9a, 0x5c, 0x1c, 0xea, 0x26, 0xef, 0xbf, 0x76,
+};
+static const unsigned char kat227_persstr[] = {
+ 0xdd, 0x73, 0xb1, 0x8e, 0xee, 0x62, 0x94, 0x34, 0x9a, 0xa6, 0x45, 0x6d,
+ 0xaa, 0x77, 0xd2, 0x4f,
+};
+static const unsigned char kat227_addin0[] = {
+ 0xeb, 0x70, 0x19, 0x82, 0x6d, 0xb3, 0x27, 0x17, 0xa5, 0x73, 0x5e, 0xb4,
+ 0x07, 0x73, 0xea, 0x56,
+};
+static const unsigned char kat227_addin1[] = {
+ 0xb6, 0x2d, 0xe2, 0xb4, 0xaa, 0x8d, 0x97, 0xf5, 0x26, 0xdd, 0xba, 0x44,
+ 0x09, 0xf5, 0xaa, 0x26,
+};
+static const unsigned char kat227_retbits[] = {
+ 0x22, 0x22, 0xa6, 0xbb, 0x0f, 0xfe, 0x14, 0xd2, 0xf7, 0x89, 0xe6, 0x4d,
+ 0xcd, 0xf4, 0x78, 0x51, 0xa6, 0xc3, 0xa6, 0xe1, 0xd0, 0x83, 0x7d, 0x8b,
+ 0x51, 0x1a, 0xa2, 0xf5, 0x6a, 0x6d, 0x08, 0x53, 0x4c, 0x97, 0xf4, 0xb1,
+ 0x2a, 0x77, 0x44, 0x7d, 0xb2, 0x04, 0x09, 0xd3, 0x27, 0xfc, 0x08, 0x81,
+ 0x62, 0xc0, 0xf2, 0xc5, 0x9f, 0xe4, 0x7e, 0x8c, 0x92, 0xae, 0x5d, 0xcd,
+ 0xd7, 0x38, 0xc7, 0x68,
+};
+static const struct drbg_kat_no_reseed kat227_t = {
+ 1, kat227_entropyin, kat227_nonce, kat227_persstr,
+ kat227_addin0, kat227_addin1, kat227_retbits
+};
+static const struct drbg_kat kat227 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat227_t
+};
+
+static const unsigned char kat228_entropyin[] = {
+ 0x3f, 0x51, 0xf6, 0xcc, 0xf2, 0x24, 0x79, 0xed, 0x89, 0x1b, 0x89, 0x1f,
+ 0xc4, 0xc6, 0xb5, 0x51,
+};
+static const unsigned char kat228_nonce[] = {
+ 0x19, 0xe0, 0x75, 0x4f, 0x7b, 0xfa, 0x0c, 0xef,
+};
+static const unsigned char kat228_persstr[] = {
+ 0x40, 0x2a, 0x1d, 0xab, 0x45, 0x0e, 0xa9, 0x04, 0x97, 0x38, 0x78, 0x2a,
+ 0x93, 0x34, 0x7a, 0xff,
+};
+static const unsigned char kat228_addin0[] = {
+ 0x52, 0xc9, 0x0f, 0x57, 0x1c, 0x8c, 0x63, 0xf0, 0xdc, 0xdb, 0xd4, 0xe6,
+ 0xc9, 0x65, 0x34, 0x78,
+};
+static const unsigned char kat228_addin1[] = {
+ 0x8b, 0xe6, 0x3b, 0x5e, 0xf2, 0x12, 0x69, 0x4e, 0xdb, 0xc2, 0xc8, 0xde,
+ 0xc9, 0xa0, 0x58, 0x7b,
+};
+static const unsigned char kat228_retbits[] = {
+ 0x1a, 0xbf, 0xe2, 0xd7, 0x21, 0x93, 0xb6, 0xe3, 0xd9, 0xbe, 0x85, 0x10,
+ 0x7e, 0xce, 0x8f, 0xea, 0x5d, 0x22, 0x95, 0x68, 0x56, 0x8c, 0x93, 0xeb,
+ 0x5e, 0xae, 0xd4, 0x63, 0xbf, 0x2b, 0x79, 0xcf, 0xdb, 0xd0, 0x47, 0x40,
+ 0x2f, 0xf4, 0xe4, 0x22, 0x34, 0xc4, 0xe3, 0xe1, 0x50, 0xc1, 0xf0, 0xe8,
+ 0x24, 0x00, 0xf6, 0xa5, 0x9e, 0xeb, 0xd0, 0x92, 0xee, 0x73, 0xad, 0xf1,
+ 0xff, 0xca, 0x64, 0x94,
+};
+static const struct drbg_kat_no_reseed kat228_t = {
+ 2, kat228_entropyin, kat228_nonce, kat228_persstr,
+ kat228_addin0, kat228_addin1, kat228_retbits
+};
+static const struct drbg_kat kat228 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat228_t
+};
+
+static const unsigned char kat229_entropyin[] = {
+ 0x5a, 0x01, 0xb6, 0x38, 0x31, 0x1a, 0x29, 0x6b, 0xfe, 0x1f, 0x6e, 0x18,
+ 0x0f, 0x24, 0x3d, 0x5b,
+};
+static const unsigned char kat229_nonce[] = {
+ 0x16, 0xbb, 0x4e, 0x36, 0xfd, 0x04, 0xb0, 0x5b,
+};
+static const unsigned char kat229_persstr[] = {
+ 0xd5, 0x44, 0x0a, 0x6f, 0xa4, 0xd3, 0x45, 0xcb, 0x84, 0xd5, 0x6d, 0xec,
+ 0xaa, 0x3d, 0xbd, 0x18,
+};
+static const unsigned char kat229_addin0[] = {
+ 0xbd, 0x3e, 0x11, 0xdb, 0xb9, 0xf4, 0x0a, 0x13, 0x51, 0xc8, 0xbf, 0x7b,
+ 0xd8, 0x94, 0xad, 0x20,
+};
+static const unsigned char kat229_addin1[] = {
+ 0xe0, 0x4a, 0x83, 0xa5, 0x18, 0x75, 0x15, 0x10, 0x4a, 0xa1, 0xe7, 0xf4,
+ 0x34, 0xff, 0x43, 0x36,
+};
+static const unsigned char kat229_retbits[] = {
+ 0x27, 0x28, 0xfc, 0xc1, 0xfe, 0xa7, 0xfe, 0x63, 0x5d, 0xdf, 0xed, 0x8b,
+ 0xb3, 0xf7, 0xca, 0x29, 0xe1, 0xcb, 0xd8, 0x51, 0x6a, 0x2b, 0x5e, 0xab,
+ 0xb7, 0xd0, 0x91, 0xe6, 0xe7, 0xf2, 0x04, 0x6a, 0x80, 0x77, 0xef, 0x6d,
+ 0x1a, 0x90, 0x16, 0x5f, 0x18, 0x9d, 0x07, 0xa8, 0x97, 0xcd, 0xfc, 0x06,
+ 0x88, 0x2a, 0xdb, 0x78, 0x1b, 0xe5, 0x89, 0xe0, 0xe5, 0xeb, 0x2d, 0xc9,
+ 0x7b, 0xe6, 0x54, 0x6b,
+};
+static const struct drbg_kat_no_reseed kat229_t = {
+ 3, kat229_entropyin, kat229_nonce, kat229_persstr,
+ kat229_addin0, kat229_addin1, kat229_retbits
+};
+static const struct drbg_kat kat229 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat229_t
+};
+
+static const unsigned char kat230_entropyin[] = {
+ 0x97, 0xe4, 0x15, 0xb3, 0xca, 0x11, 0x0a, 0x80, 0x9e, 0xa6, 0x00, 0xa1,
+ 0x3e, 0x47, 0xaa, 0x04,
+};
+static const unsigned char kat230_nonce[] = {
+ 0x12, 0x6e, 0x16, 0xdc, 0x57, 0x22, 0xa4, 0x49,
+};
+static const unsigned char kat230_persstr[] = {
+ 0xa9, 0xbe, 0x38, 0xe3, 0x01, 0x19, 0x86, 0xb9, 0x04, 0x71, 0x71, 0x93,
+ 0xec, 0x4a, 0x7d, 0x4c,
+};
+static const unsigned char kat230_addin0[] = {
+ 0x19, 0x68, 0x69, 0x92, 0x21, 0xeb, 0x8b, 0x5e, 0xd0, 0x23, 0xa5, 0xd2,
+ 0xd2, 0xd8, 0x12, 0x56,
+};
+static const unsigned char kat230_addin1[] = {
+ 0x4b, 0x5e, 0x1b, 0xde, 0x38, 0xb2, 0xa9, 0x79, 0x3b, 0x16, 0x6d, 0x86,
+ 0x81, 0x6e, 0xd2, 0x31,
+};
+static const unsigned char kat230_retbits[] = {
+ 0x4b, 0xe9, 0x89, 0x89, 0xdf, 0x2f, 0xe6, 0x68, 0x7e, 0x50, 0x88, 0xe5,
+ 0x06, 0x98, 0x50, 0x7d, 0x91, 0x06, 0x1a, 0x8d, 0x6e, 0xb9, 0x5d, 0x66,
+ 0x27, 0xd2, 0xb8, 0x57, 0x25, 0x3f, 0x05, 0x3c, 0x99, 0xee, 0x79, 0x84,
+ 0xa4, 0x98, 0xde, 0x4d, 0xf3, 0x12, 0x44, 0x42, 0x85, 0x6f, 0x18, 0xe9,
+ 0x8e, 0x66, 0x41, 0xf1, 0x52, 0xcd, 0x12, 0x9b, 0xd0, 0x4e, 0x99, 0x71,
+ 0x09, 0x30, 0xc3, 0xe1,
+};
+static const struct drbg_kat_no_reseed kat230_t = {
+ 4, kat230_entropyin, kat230_nonce, kat230_persstr,
+ kat230_addin0, kat230_addin1, kat230_retbits
+};
+static const struct drbg_kat kat230 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat230_t
+};
+
+static const unsigned char kat231_entropyin[] = {
+ 0xb6, 0xc4, 0xcd, 0x96, 0xf7, 0xfd, 0xe8, 0x3e, 0xb5, 0x71, 0x22, 0x9b,
+ 0x53, 0x7a, 0xcf, 0x5a,
+};
+static const unsigned char kat231_nonce[] = {
+ 0x4c, 0x4e, 0x0a, 0xac, 0xb5, 0xc5, 0x28, 0xe7,
+};
+static const unsigned char kat231_persstr[] = {
+ 0x5c, 0xe1, 0x09, 0x4d, 0x0d, 0x30, 0x7b, 0x41, 0xdb, 0x9b, 0xf2, 0x6d,
+ 0xa4, 0x1d, 0xb1, 0x00,
+};
+static const unsigned char kat231_addin0[] = {
+ 0x98, 0x04, 0x7e, 0xe9, 0x87, 0x63, 0x7e, 0x45, 0x84, 0xfe, 0x7f, 0xe2,
+ 0x86, 0x9c, 0x84, 0x5d,
+};
+static const unsigned char kat231_addin1[] = {
+ 0x17, 0x7e, 0x3c, 0x29, 0xd4, 0xfa, 0xf0, 0x43, 0x07, 0x7f, 0xbe, 0xfe,
+ 0x0b, 0x99, 0x4b, 0x91,
+};
+static const unsigned char kat231_retbits[] = {
+ 0x5e, 0xaf, 0x01, 0x3f, 0xd3, 0x77, 0x5a, 0x2d, 0x3e, 0x97, 0x16, 0x6d,
+ 0x23, 0x15, 0x3a, 0x00, 0xf1, 0x86, 0x44, 0x96, 0x3e, 0x69, 0xcb, 0x96,
+ 0x2a, 0x7b, 0xd2, 0xc3, 0x0a, 0xf9, 0xbd, 0x6a, 0x29, 0xd4, 0xbc, 0x70,
+ 0x93, 0x0a, 0x92, 0x9b, 0x92, 0x52, 0xd8, 0x08, 0xdb, 0x41, 0x0c, 0x66,
+ 0x41, 0x23, 0xbd, 0x69, 0xc1, 0xd0, 0xc1, 0xd4, 0xba, 0x3c, 0x7d, 0x8f,
+ 0xf7, 0xae, 0x00, 0xf0,
+};
+static const struct drbg_kat_no_reseed kat231_t = {
+ 5, kat231_entropyin, kat231_nonce, kat231_persstr,
+ kat231_addin0, kat231_addin1, kat231_retbits
+};
+static const struct drbg_kat kat231 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat231_t
+};
+
+static const unsigned char kat232_entropyin[] = {
+ 0x2d, 0x1b, 0x80, 0x61, 0xd7, 0xd5, 0x83, 0xf8, 0x3b, 0xe5, 0x53, 0xc4,
+ 0x83, 0x72, 0x12, 0xa0,
+};
+static const unsigned char kat232_nonce[] = {
+ 0x62, 0xa1, 0xfa, 0x74, 0x53, 0x62, 0xba, 0xce,
+};
+static const unsigned char kat232_persstr[] = {
+ 0x4d, 0x97, 0x6a, 0xdd, 0x18, 0xd5, 0xe2, 0x48, 0x4f, 0x67, 0xf7, 0xc8,
+ 0x4c, 0xc6, 0x8b, 0x52,
+};
+static const unsigned char kat232_addin0[] = {
+ 0x57, 0x64, 0xde, 0x5d, 0xb9, 0x7e, 0x22, 0x3c, 0x04, 0x4a, 0x83, 0x3f,
+ 0xa4, 0x2c, 0xf6, 0x29,
+};
+static const unsigned char kat232_addin1[] = {
+ 0xde, 0xef, 0x8d, 0x58, 0x1f, 0x6e, 0x4f, 0x80, 0x89, 0x92, 0xfd, 0x20,
+ 0xc0, 0x6e, 0x10, 0x2d,
+};
+static const unsigned char kat232_retbits[] = {
+ 0xac, 0xb7, 0x8f, 0x27, 0x33, 0x50, 0xd4, 0x59, 0xc7, 0x98, 0x09, 0xd8,
+ 0x9b, 0x40, 0x28, 0x25, 0xbb, 0x00, 0xe3, 0x8a, 0xbd, 0x5e, 0xc1, 0x2f,
+ 0xea, 0xdc, 0xde, 0xf6, 0x11, 0x46, 0x84, 0xb6, 0xfc, 0xb0, 0xe1, 0x76,
+ 0xcb, 0xe4, 0x65, 0x91, 0x0f, 0xc2, 0x84, 0x8f, 0x0a, 0x70, 0x88, 0x44,
+ 0x79, 0x4c, 0x5e, 0xea, 0xfe, 0xad, 0xa7, 0x56, 0x3c, 0x38, 0xc3, 0xee,
+ 0x63, 0xc9, 0x7e, 0xf9,
+};
+static const struct drbg_kat_no_reseed kat232_t = {
+ 6, kat232_entropyin, kat232_nonce, kat232_persstr,
+ kat232_addin0, kat232_addin1, kat232_retbits
+};
+static const struct drbg_kat kat232 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat232_t
+};
+
+static const unsigned char kat233_entropyin[] = {
+ 0xef, 0x30, 0xfd, 0x99, 0x5f, 0xf0, 0xef, 0x44, 0xcc, 0xe6, 0x07, 0x7b,
+ 0xb2, 0x2d, 0xe6, 0x99,
+};
+static const unsigned char kat233_nonce[] = {
+ 0x85, 0xc7, 0xd6, 0x05, 0x4a, 0x57, 0x76, 0x22,
+};
+static const unsigned char kat233_persstr[] = {
+ 0x5d, 0x59, 0xb3, 0xf0, 0x25, 0x00, 0x60, 0xe2, 0x20, 0x02, 0xad, 0xf7,
+ 0x06, 0x48, 0x6d, 0x85,
+};
+static const unsigned char kat233_addin0[] = {
+ 0x79, 0x46, 0x81, 0xf7, 0x5d, 0xf9, 0xc9, 0x88, 0x30, 0x3f, 0x75, 0x1f,
+ 0xb7, 0xe7, 0xfb, 0xa9,
+};
+static const unsigned char kat233_addin1[] = {
+ 0x7b, 0x13, 0x74, 0xc8, 0x47, 0x25, 0x37, 0xfa, 0x31, 0x11, 0xeb, 0x44,
+ 0xe5, 0x2a, 0xfa, 0x23,
+};
+static const unsigned char kat233_retbits[] = {
+ 0xb0, 0x49, 0x50, 0xf1, 0xa3, 0x57, 0x52, 0xc0, 0x67, 0xbc, 0xe8, 0x35,
+ 0x76, 0x35, 0xf4, 0x70, 0xd1, 0x0b, 0x3b, 0xae, 0x47, 0x46, 0x6f, 0xd1,
+ 0x16, 0x6f, 0x9f, 0xfa, 0xef, 0xbd, 0x32, 0x4b, 0x26, 0x53, 0xc7, 0xf3,
+ 0x0e, 0xe4, 0x84, 0x86, 0x73, 0xd7, 0x04, 0x18, 0x65, 0xd9, 0x95, 0x45,
+ 0x12, 0x58, 0x94, 0x92, 0x98, 0x9a, 0x00, 0xea, 0x4d, 0xa1, 0xdd, 0x28,
+ 0x9e, 0x87, 0x17, 0xc3,
+};
+static const struct drbg_kat_no_reseed kat233_t = {
+ 7, kat233_entropyin, kat233_nonce, kat233_persstr,
+ kat233_addin0, kat233_addin1, kat233_retbits
+};
+static const struct drbg_kat kat233 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat233_t
+};
+
+static const unsigned char kat234_entropyin[] = {
+ 0xee, 0x4b, 0xde, 0x4f, 0x71, 0x2d, 0xc9, 0xfc, 0x1f, 0x2c, 0x01, 0xf1,
+ 0xc6, 0x08, 0x6f, 0x35,
+};
+static const unsigned char kat234_nonce[] = {
+ 0xf6, 0x83, 0x7c, 0xfe, 0x53, 0xec, 0x48, 0x74,
+};
+static const unsigned char kat234_persstr[] = {
+ 0xfd, 0xb8, 0xf6, 0x4d, 0x99, 0xbd, 0x71, 0x7e, 0xee, 0x3d, 0x89, 0x35,
+ 0x3b, 0x73, 0xc9, 0xc1,
+};
+static const unsigned char kat234_addin0[] = {
+ 0x09, 0xe5, 0xba, 0x3b, 0x23, 0x89, 0x5c, 0x5d, 0xff, 0x89, 0x38, 0x2d,
+ 0x5e, 0x91, 0x70, 0x0d,
+};
+static const unsigned char kat234_addin1[] = {
+ 0xeb, 0x1a, 0x98, 0xde, 0x89, 0x62, 0xbb, 0xc4, 0xcb, 0x75, 0xcf, 0x0b,
+ 0xf0, 0xf8, 0xdf, 0xa4,
+};
+static const unsigned char kat234_retbits[] = {
+ 0xaa, 0xcd, 0xee, 0x0f, 0x3d, 0x1f, 0x95, 0x5f, 0x89, 0x6d, 0x5a, 0x5a,
+ 0x25, 0x30, 0xfd, 0x80, 0x9a, 0x20, 0x2c, 0x92, 0x1d, 0x90, 0xa9, 0xcf,
+ 0x59, 0x3e, 0x03, 0x93, 0x4e, 0x07, 0xc3, 0x92, 0xcc, 0x55, 0x54, 0xf5,
+ 0x99, 0x21, 0xb4, 0x0c, 0xc0, 0x03, 0xfc, 0x26, 0x82, 0xca, 0xef, 0x9e,
+ 0x6e, 0x61, 0xee, 0x4a, 0xbf, 0x45, 0x14, 0x8e, 0x5f, 0xf3, 0xff, 0x65,
+ 0x87, 0x1b, 0x0d, 0x81,
+};
+static const struct drbg_kat_no_reseed kat234_t = {
+ 8, kat234_entropyin, kat234_nonce, kat234_persstr,
+ kat234_addin0, kat234_addin1, kat234_retbits
+};
+static const struct drbg_kat kat234 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat234_t
+};
+
+static const unsigned char kat235_entropyin[] = {
+ 0xa6, 0xaa, 0x94, 0x5e, 0xbe, 0x19, 0x29, 0x98, 0xbe, 0x8e, 0x24, 0x7d,
+ 0xb9, 0x9c, 0xe7, 0xd0,
+};
+static const unsigned char kat235_nonce[] = {
+ 0x7d, 0xff, 0x26, 0xe9, 0x7a, 0x0a, 0x8d, 0xba,
+};
+static const unsigned char kat235_persstr[] = {
+ 0x4b, 0x6c, 0xcf, 0xac, 0x6c, 0x47, 0xfd, 0x65, 0x64, 0xbc, 0xfd, 0x94,
+ 0xfe, 0x9e, 0xb2, 0x8d,
+};
+static const unsigned char kat235_addin0[] = {
+ 0x07, 0x83, 0x70, 0x53, 0xd2, 0x4c, 0xd0, 0xf4, 0xf4, 0x32, 0x7e, 0x97,
+ 0xd2, 0x9d, 0x67, 0x95,
+};
+static const unsigned char kat235_addin1[] = {
+ 0x3b, 0x17, 0x2d, 0xdc, 0x8d, 0x38, 0x3b, 0x98, 0xd4, 0x08, 0x39, 0x4c,
+ 0x0b, 0xa1, 0x52, 0xc1,
+};
+static const unsigned char kat235_retbits[] = {
+ 0xd9, 0x0a, 0xa4, 0x22, 0xa8, 0xd2, 0xb8, 0x6e, 0x1f, 0x09, 0xde, 0x29,
+ 0xdd, 0x16, 0xd4, 0x60, 0x50, 0x98, 0xa4, 0x5a, 0xea, 0xbe, 0x69, 0xc6,
+ 0xbc, 0x8a, 0xe0, 0xc8, 0xf0, 0x1b, 0x7c, 0xc7, 0x3f, 0x88, 0x50, 0xec,
+ 0x0c, 0x47, 0xd6, 0x16, 0xcb, 0x6c, 0xca, 0xb7, 0x7f, 0x22, 0x07, 0x99,
+ 0x38, 0xed, 0x11, 0xb4, 0x8f, 0xcf, 0x3c, 0xf4, 0x6a, 0x3f, 0x64, 0x2f,
+ 0x05, 0xae, 0xb8, 0xb7,
+};
+static const struct drbg_kat_no_reseed kat235_t = {
+ 9, kat235_entropyin, kat235_nonce, kat235_persstr,
+ kat235_addin0, kat235_addin1, kat235_retbits
+};
+static const struct drbg_kat kat235 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat235_t
+};
+
+static const unsigned char kat236_entropyin[] = {
+ 0x7e, 0xb5, 0x0f, 0x53, 0x2b, 0x00, 0x76, 0x52, 0x8e, 0x2d, 0x1f, 0x26,
+ 0x6b, 0x38, 0x14, 0x06,
+};
+static const unsigned char kat236_nonce[] = {
+ 0x2a, 0x5e, 0x92, 0xe8, 0xfb, 0xf0, 0xe9, 0xee,
+};
+static const unsigned char kat236_persstr[] = {
+ 0x7e, 0xcb, 0xfd, 0x22, 0x98, 0x87, 0x2a, 0x79, 0x34, 0xe4, 0xed, 0x61,
+ 0xa9, 0xf0, 0x04, 0xcd,
+};
+static const unsigned char kat236_addin0[] = {
+ 0x17, 0x9f, 0xa5, 0xd2, 0xeb, 0x90, 0xd4, 0x15, 0x48, 0x19, 0x2c, 0xc7,
+ 0x44, 0x98, 0xbd, 0x42,
+};
+static const unsigned char kat236_addin1[] = {
+ 0x92, 0xdc, 0x9d, 0x60, 0xd2, 0xe3, 0x6d, 0x4b, 0xfb, 0x97, 0x90, 0x78,
+ 0x3d, 0x1c, 0x58, 0x19,
+};
+static const unsigned char kat236_retbits[] = {
+ 0x9a, 0x17, 0x1b, 0x50, 0x48, 0xba, 0xf1, 0x37, 0x5c, 0x14, 0x07, 0xa8,
+ 0xdc, 0x1c, 0x8e, 0xda, 0x53, 0x2d, 0xf5, 0x52, 0x96, 0x77, 0x06, 0x88,
+ 0x4e, 0x5f, 0xe3, 0xd4, 0x67, 0x86, 0x07, 0x74, 0x48, 0xf2, 0x8f, 0x89,
+ 0xb3, 0x8e, 0xb7, 0x64, 0xdf, 0x7e, 0x0e, 0x3b, 0x40, 0x1a, 0xed, 0x3a,
+ 0x23, 0x06, 0xfa, 0x2b, 0xed, 0xe3, 0x82, 0xaa, 0xe1, 0x08, 0xe1, 0x6a,
+ 0xb4, 0x85, 0x69, 0x1e,
+};
+static const struct drbg_kat_no_reseed kat236_t = {
+ 10, kat236_entropyin, kat236_nonce, kat236_persstr,
+ kat236_addin0, kat236_addin1, kat236_retbits
+};
+static const struct drbg_kat kat236 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat236_t
+};
+
+static const unsigned char kat237_entropyin[] = {
+ 0x7d, 0x33, 0x40, 0xa8, 0xb1, 0xe1, 0x51, 0x71, 0xee, 0x34, 0x03, 0xcc,
+ 0x19, 0xd3, 0xfe, 0xa9,
+};
+static const unsigned char kat237_nonce[] = {
+ 0xfd, 0xe6, 0x97, 0xac, 0xc7, 0xe7, 0x2b, 0x75,
+};
+static const unsigned char kat237_persstr[] = {
+ 0xa1, 0x28, 0x79, 0x71, 0x79, 0xc5, 0xca, 0xd6, 0xa9, 0xb4, 0x76, 0xff,
+ 0x99, 0xf9, 0x82, 0x8f,
+};
+static const unsigned char kat237_addin0[] = {
+ 0x2d, 0xfa, 0x30, 0x85, 0xfa, 0x02, 0x3b, 0x53, 0x61, 0xdb, 0xa7, 0x9d,
+ 0x40, 0x77, 0x38, 0xbc,
+};
+static const unsigned char kat237_addin1[] = {
+ 0xae, 0xf5, 0x3a, 0xf3, 0xbe, 0x89, 0x41, 0xe7, 0xd2, 0x71, 0x3c, 0x71,
+ 0x28, 0x41, 0xdc, 0x68,
+};
+static const unsigned char kat237_retbits[] = {
+ 0xc1, 0xf7, 0x25, 0xb2, 0x90, 0xed, 0x13, 0x10, 0xdd, 0x3f, 0x39, 0xe9,
+ 0x9c, 0x7a, 0x65, 0xb8, 0x01, 0xb4, 0x74, 0x2f, 0x50, 0x66, 0xb3, 0xc7,
+ 0x1b, 0xb4, 0x6f, 0x3d, 0xe7, 0x4d, 0xd2, 0xca, 0xae, 0xa4, 0x08, 0x21,
+ 0x17, 0x4f, 0x67, 0x67, 0x22, 0xdb, 0x38, 0xfe, 0xda, 0x5d, 0x10, 0x96,
+ 0xc7, 0x9a, 0xd1, 0xea, 0xbe, 0xff, 0x78, 0xde, 0xf0, 0x84, 0x7a, 0x24,
+ 0x23, 0xbb, 0x46, 0x02,
+};
+static const struct drbg_kat_no_reseed kat237_t = {
+ 11, kat237_entropyin, kat237_nonce, kat237_persstr,
+ kat237_addin0, kat237_addin1, kat237_retbits
+};
+static const struct drbg_kat kat237 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat237_t
+};
+
+static const unsigned char kat238_entropyin[] = {
+ 0x05, 0x71, 0xd4, 0x1f, 0x98, 0xb7, 0x1e, 0xad, 0x41, 0x5f, 0xcb, 0x97,
+ 0xfd, 0x05, 0xa1, 0xf1,
+};
+static const unsigned char kat238_nonce[] = {
+ 0x42, 0x16, 0x18, 0x2c, 0x09, 0x4c, 0x4b, 0x14,
+};
+static const unsigned char kat238_persstr[] = {
+ 0x6b, 0xed, 0x5c, 0xc7, 0x26, 0x60, 0xf7, 0xfd, 0x4c, 0x32, 0xab, 0xe5,
+ 0xcb, 0x1a, 0xef, 0xed,
+};
+static const unsigned char kat238_addin0[] = {
+ 0xb1, 0x98, 0x97, 0x3f, 0x68, 0x9c, 0x37, 0xeb, 0x63, 0x76, 0xa0, 0x88,
+ 0xa7, 0xc7, 0x3e, 0x97,
+};
+static const unsigned char kat238_addin1[] = {
+ 0xdf, 0xf3, 0xa3, 0xb0, 0x72, 0x43, 0x02, 0xf8, 0x3b, 0x85, 0x4f, 0x2f,
+ 0xa8, 0xec, 0x34, 0x96,
+};
+static const unsigned char kat238_retbits[] = {
+ 0x66, 0x7d, 0xdb, 0x87, 0x07, 0x9b, 0x39, 0x49, 0x03, 0x0f, 0x41, 0xff,
+ 0x91, 0xb2, 0xec, 0x0a, 0x59, 0x8a, 0xb2, 0xd5, 0x5c, 0x99, 0xd0, 0x17,
+ 0xe4, 0xfc, 0x79, 0xe9, 0x4f, 0x15, 0xb4, 0x10, 0xcc, 0x29, 0x70, 0xff,
+ 0x01, 0x74, 0x82, 0xb2, 0x9e, 0xef, 0x2c, 0x25, 0x0a, 0x09, 0x12, 0x8a,
+ 0x18, 0x60, 0x5e, 0x0f, 0xa1, 0x4a, 0xcc, 0xe3, 0x7b, 0x89, 0xc4, 0x38,
+ 0xc8, 0x21, 0x31, 0x94,
+};
+static const struct drbg_kat_no_reseed kat238_t = {
+ 12, kat238_entropyin, kat238_nonce, kat238_persstr,
+ kat238_addin0, kat238_addin1, kat238_retbits
+};
+static const struct drbg_kat kat238 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat238_t
+};
+
+static const unsigned char kat239_entropyin[] = {
+ 0x8e, 0xe3, 0xed, 0xc1, 0xc6, 0x4e, 0xa7, 0xd6, 0xf0, 0xba, 0xb9, 0x73,
+ 0x1e, 0x5d, 0x17, 0x62,
+};
+static const unsigned char kat239_nonce[] = {
+ 0x92, 0xa1, 0x42, 0x26, 0x08, 0x7a, 0xfa, 0xfb,
+};
+static const unsigned char kat239_persstr[] = {
+ 0x2a, 0x24, 0x04, 0xbe, 0xf6, 0xf7, 0x11, 0x34, 0x17, 0xdf, 0x0b, 0x18,
+ 0x54, 0xd8, 0x47, 0x3d,
+};
+static const unsigned char kat239_addin0[] = {
+ 0xa2, 0x78, 0xe8, 0xa5, 0x0b, 0xcc, 0xd6, 0x12, 0x97, 0x4d, 0x02, 0x6e,
+ 0xde, 0xf7, 0x50, 0x1c,
+};
+static const unsigned char kat239_addin1[] = {
+ 0xe7, 0x48, 0xf5, 0xe2, 0xf9, 0x8b, 0x48, 0x8e, 0x74, 0xb0, 0xbb, 0xd5,
+ 0x59, 0xb5, 0xba, 0xbc,
+};
+static const unsigned char kat239_retbits[] = {
+ 0x81, 0xec, 0xf8, 0xb7, 0xb0, 0x7c, 0x64, 0xce, 0xd1, 0xa4, 0x9b, 0x21,
+ 0x33, 0x54, 0x99, 0x5a, 0x7b, 0xf1, 0x68, 0xd3, 0x8a, 0x83, 0x0b, 0x15,
+ 0x70, 0x41, 0x4f, 0x5a, 0x20, 0x15, 0x49, 0x9e, 0x09, 0xaf, 0xf3, 0xbf,
+ 0x58, 0x37, 0x19, 0x88, 0x6f, 0xe9, 0x9d, 0x00, 0xe6, 0xd9, 0xeb, 0x9a,
+ 0x4f, 0xde, 0x29, 0xd8, 0xd9, 0x78, 0x8d, 0xd6, 0xff, 0xe2, 0x09, 0x83,
+ 0x9a, 0x73, 0x9c, 0xd2,
+};
+static const struct drbg_kat_no_reseed kat239_t = {
+ 13, kat239_entropyin, kat239_nonce, kat239_persstr,
+ kat239_addin0, kat239_addin1, kat239_retbits
+};
+static const struct drbg_kat kat239 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat239_t
+};
+
+static const unsigned char kat240_entropyin[] = {
+ 0x06, 0x18, 0xc2, 0x88, 0x49, 0x14, 0x71, 0x22, 0x26, 0xad, 0x4e, 0x95,
+ 0x80, 0xc0, 0x95, 0x23,
+};
+static const unsigned char kat240_nonce[] = {
+ 0x6e, 0xbc, 0x4d, 0x5d, 0xb4, 0x76, 0x7f, 0x5f,
+};
+static const unsigned char kat240_persstr[] = {
+ 0x7a, 0x82, 0x50, 0xa3, 0xbc, 0xbd, 0x81, 0x54, 0xc5, 0x05, 0x8b, 0x55,
+ 0x1c, 0xf2, 0x20, 0x36,
+};
+static const unsigned char kat240_addin0[] = {
+ 0x30, 0x26, 0x05, 0x32, 0xb5, 0x6c, 0x0f, 0x8e, 0xde, 0x9b, 0x72, 0x5c,
+ 0x32, 0x20, 0x8f, 0x31,
+};
+static const unsigned char kat240_addin1[] = {
+ 0x1e, 0x90, 0xdc, 0x4f, 0x67, 0xc1, 0xcb, 0x2d, 0xa1, 0x2d, 0x10, 0xa0,
+ 0xb0, 0xfb, 0xb6, 0x26,
+};
+static const unsigned char kat240_retbits[] = {
+ 0x49, 0x93, 0x57, 0x58, 0x80, 0xd0, 0x01, 0x45, 0xc1, 0xf9, 0x67, 0xdb,
+ 0x25, 0xcc, 0xc8, 0xf3, 0x4c, 0xf0, 0xc6, 0x2a, 0xcc, 0xcb, 0xcf, 0xa0,
+ 0xe7, 0x2c, 0x89, 0xea, 0xcf, 0x9f, 0xbe, 0x56, 0x14, 0x50, 0x74, 0xe4,
+ 0xd4, 0x7f, 0x2b, 0x76, 0x74, 0xf4, 0xb0, 0xe0, 0x7e, 0xe3, 0xb5, 0x10,
+ 0x4b, 0xf7, 0xcc, 0xfe, 0xd8, 0x00, 0x1d, 0x67, 0x11, 0xc6, 0x6f, 0xda,
+ 0x94, 0x44, 0xfb, 0x8a,
+};
+static const struct drbg_kat_no_reseed kat240_t = {
+ 14, kat240_entropyin, kat240_nonce, kat240_persstr,
+ kat240_addin0, kat240_addin1, kat240_retbits
+};
+static const struct drbg_kat kat240 = {
+ NO_RESEED, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat240_t
+};
+
+static const unsigned char kat241_entropyin[] = {
+ 0xc3, 0x5c, 0x2f, 0xa2, 0xa8, 0x9d, 0x52, 0xa1, 0x1f, 0xa3, 0x2a, 0xa9,
+ 0x6c, 0x95, 0xb8, 0xf1, 0xc9, 0xa8, 0xf9, 0xcb, 0x24, 0x5a, 0x8b, 0x40,
+};
+static const unsigned char kat241_nonce[] = {
+ 0xf3, 0xa6, 0xe5, 0xa7, 0xfb, 0xd9, 0xd3, 0xc6, 0x8e, 0x27, 0x7b, 0xa9,
+ 0xac, 0x9b, 0xbb, 0x00,
+};
+static const unsigned char kat241_persstr[] = {0};
+static const unsigned char kat241_addin0[] = {0};
+static const unsigned char kat241_addin1[] = {0};
+static const unsigned char kat241_retbits[] = {
+ 0x8c, 0x2e, 0x72, 0xab, 0xfd, 0x9b, 0xb8, 0x28, 0x4d, 0xb7, 0x9e, 0x17,
+ 0xa4, 0x3a, 0x31, 0x46, 0xcd, 0x76, 0x94, 0xe3, 0x52, 0x49, 0xfc, 0x33,
+ 0x83, 0x91, 0x4a, 0x71, 0x17, 0xf4, 0x13, 0x68, 0xe6, 0xd4, 0xf1, 0x48,
+ 0xff, 0x49, 0xbf, 0x29, 0x07, 0x6b, 0x50, 0x15, 0xc5, 0x9f, 0x45, 0x79,
+ 0x45, 0x66, 0x2e, 0x3d, 0x35, 0x03, 0x84, 0x3f, 0x4a, 0xa5, 0xa3, 0xdf,
+ 0x9a, 0x9d, 0xf1, 0x0d,
+};
+static const struct drbg_kat_no_reseed kat241_t = {
+ 0, kat241_entropyin, kat241_nonce, kat241_persstr,
+ kat241_addin0, kat241_addin1, kat241_retbits
+};
+static const struct drbg_kat kat241 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat241_t
+};
+
+static const unsigned char kat242_entropyin[] = {
+ 0xc1, 0x5f, 0x9f, 0xc5, 0x74, 0x1f, 0x2c, 0xac, 0xe0, 0xb5, 0x8d, 0x72,
+ 0x49, 0xbd, 0x03, 0x77, 0xbd, 0x57, 0x08, 0xe3, 0x65, 0x88, 0x4b, 0x59,
+};
+static const unsigned char kat242_nonce[] = {
+ 0xc3, 0x34, 0x3e, 0x3a, 0x11, 0xb2, 0xdc, 0x15, 0x26, 0x1c, 0x51, 0x75,
+ 0x1f, 0x51, 0x3b, 0x60,
+};
+static const unsigned char kat242_persstr[] = {0};
+static const unsigned char kat242_addin0[] = {0};
+static const unsigned char kat242_addin1[] = {0};
+static const unsigned char kat242_retbits[] = {
+ 0x5c, 0x6c, 0xed, 0x80, 0x50, 0xbc, 0x5a, 0xde, 0x3f, 0x9a, 0xca, 0xcf,
+ 0x23, 0x89, 0x9f, 0x98, 0xf5, 0xe0, 0x45, 0xa7, 0x68, 0xba, 0x53, 0x8f,
+ 0xc3, 0x71, 0x74, 0x74, 0x62, 0xeb, 0x9b, 0x84, 0x82, 0x8c, 0x9c, 0xe8,
+ 0x8e, 0x41, 0x99, 0x05, 0x23, 0x59, 0xb1, 0x58, 0x33, 0x66, 0x89, 0x44,
+ 0xd6, 0x18, 0x76, 0x7d, 0x0c, 0x6c, 0xfc, 0x24, 0x11, 0xf8, 0x2e, 0x04,
+ 0x12, 0x06, 0x7a, 0xf6,
+};
+static const struct drbg_kat_no_reseed kat242_t = {
+ 1, kat242_entropyin, kat242_nonce, kat242_persstr,
+ kat242_addin0, kat242_addin1, kat242_retbits
+};
+static const struct drbg_kat kat242 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat242_t
+};
+
+static const unsigned char kat243_entropyin[] = {
+ 0x34, 0xdb, 0xd5, 0xcf, 0xe7, 0x9c, 0xac, 0xa4, 0x25, 0x8c, 0xd1, 0xae,
+ 0x24, 0xb5, 0xaf, 0xe2, 0xd3, 0x7c, 0xb4, 0x69, 0x5d, 0x65, 0x5a, 0x7b,
+};
+static const unsigned char kat243_nonce[] = {
+ 0x55, 0xc2, 0x8f, 0xb4, 0x4e, 0x58, 0x49, 0xb5, 0x7a, 0x77, 0x87, 0x35,
+ 0x13, 0xc6, 0x57, 0x05,
+};
+static const unsigned char kat243_persstr[] = {0};
+static const unsigned char kat243_addin0[] = {0};
+static const unsigned char kat243_addin1[] = {0};
+static const unsigned char kat243_retbits[] = {
+ 0x9d, 0x47, 0x1d, 0x2c, 0xb8, 0xe4, 0x20, 0x02, 0xce, 0x24, 0xe0, 0xc6,
+ 0xbe, 0x84, 0xc8, 0x99, 0x37, 0x59, 0x5e, 0x61, 0xfa, 0xf0, 0x37, 0x1c,
+ 0xb7, 0xe8, 0x28, 0x5d, 0x76, 0xbe, 0x6b, 0x34, 0xef, 0x1d, 0xb5, 0xf7,
+ 0xd2, 0xeb, 0xad, 0x4b, 0xf8, 0xff, 0x77, 0x65, 0x13, 0x89, 0xef, 0xcf,
+ 0x13, 0xba, 0xe7, 0x2b, 0xd8, 0xa1, 0x3c, 0x8e, 0x9f, 0xc6, 0x18, 0x55,
+ 0x58, 0x1b, 0x8e, 0xa9,
+};
+static const struct drbg_kat_no_reseed kat243_t = {
+ 2, kat243_entropyin, kat243_nonce, kat243_persstr,
+ kat243_addin0, kat243_addin1, kat243_retbits
+};
+static const struct drbg_kat kat243 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat243_t
+};
+
+static const unsigned char kat244_entropyin[] = {
+ 0x64, 0x3e, 0x95, 0xbf, 0xea, 0xca, 0xfc, 0x7d, 0x72, 0x1b, 0x48, 0xb9,
+ 0xf1, 0x5a, 0x80, 0xce, 0x8a, 0xd7, 0x07, 0x7f, 0x30, 0x1f, 0x16, 0xc5,
+};
+static const unsigned char kat244_nonce[] = {
+ 0x2d, 0x90, 0x8d, 0xd6, 0x95, 0x2f, 0x86, 0x2a, 0xda, 0x90, 0x2b, 0xc1,
+ 0xa1, 0x4a, 0x61, 0x29,
+};
+static const unsigned char kat244_persstr[] = {0};
+static const unsigned char kat244_addin0[] = {0};
+static const unsigned char kat244_addin1[] = {0};
+static const unsigned char kat244_retbits[] = {
+ 0xd6, 0xee, 0x5e, 0x37, 0x96, 0x34, 0x9d, 0x47, 0xc2, 0xed, 0xe3, 0x2c,
+ 0x93, 0x8f, 0x2c, 0x06, 0xef, 0x8a, 0x65, 0x11, 0xb4, 0xe9, 0xbb, 0xbe,
+ 0x74, 0xeb, 0x71, 0xbc, 0x3c, 0x47, 0x70, 0xd9, 0x0c, 0x70, 0xcd, 0xcd,
+ 0xff, 0x6b, 0x3c, 0x9f, 0xbf, 0x4f, 0xa6, 0xbc, 0x38, 0x0a, 0xc2, 0xf2,
+ 0xe1, 0x61, 0x96, 0xb4, 0xc4, 0xc8, 0xa6, 0x44, 0x8f, 0x04, 0x0d, 0x11,
+ 0xd3, 0x6b, 0x42, 0x14,
+};
+static const struct drbg_kat_no_reseed kat244_t = {
+ 3, kat244_entropyin, kat244_nonce, kat244_persstr,
+ kat244_addin0, kat244_addin1, kat244_retbits
+};
+static const struct drbg_kat kat244 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat244_t
+};
+
+static const unsigned char kat245_entropyin[] = {
+ 0x0f, 0x47, 0x7a, 0x59, 0x14, 0x90, 0xa0, 0xac, 0xcf, 0x82, 0x9c, 0x67,
+ 0x3f, 0x15, 0x06, 0xda, 0xca, 0x70, 0xdf, 0x96, 0x58, 0x2c, 0x3d, 0x3a,
+};
+static const unsigned char kat245_nonce[] = {
+ 0x1a, 0x8d, 0xd4, 0x23, 0x3b, 0xed, 0xe3, 0xf2, 0x83, 0x86, 0x34, 0xc0,
+ 0x95, 0x44, 0xab, 0x6e,
+};
+static const unsigned char kat245_persstr[] = {0};
+static const unsigned char kat245_addin0[] = {0};
+static const unsigned char kat245_addin1[] = {0};
+static const unsigned char kat245_retbits[] = {
+ 0x43, 0x16, 0x75, 0x73, 0x86, 0x7d, 0x53, 0xca, 0x92, 0xe2, 0x96, 0x86,
+ 0xd9, 0xfd, 0x99, 0x3c, 0x69, 0x80, 0x5a, 0x63, 0x11, 0xe3, 0x3e, 0xb9,
+ 0x63, 0x30, 0xc5, 0x37, 0xdc, 0xbd, 0xea, 0xb1, 0x1b, 0x0b, 0xa1, 0x5e,
+ 0xe5, 0xb2, 0x28, 0x7f, 0x24, 0x85, 0xe2, 0xe3, 0xa6, 0xe0, 0xed, 0x62,
+ 0xd2, 0xeb, 0x81, 0x08, 0xc1, 0xfc, 0x73, 0x90, 0x8d, 0xfd, 0x4b, 0xc7,
+ 0xb7, 0x1b, 0x16, 0x6f,
+};
+static const struct drbg_kat_no_reseed kat245_t = {
+ 4, kat245_entropyin, kat245_nonce, kat245_persstr,
+ kat245_addin0, kat245_addin1, kat245_retbits
+};
+static const struct drbg_kat kat245 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat245_t
+};
+
+static const unsigned char kat246_entropyin[] = {
+ 0x00, 0xa6, 0xed, 0x77, 0x83, 0x11, 0x52, 0x81, 0x09, 0xe6, 0xfb, 0x5c,
+ 0xbd, 0x60, 0xd1, 0xa7, 0x6c, 0x4b, 0xd5, 0xd0, 0x0d, 0xd1, 0x03, 0xa4,
+};
+static const unsigned char kat246_nonce[] = {
+ 0x40, 0x89, 0xf2, 0xf0, 0xb7, 0x4c, 0x18, 0x4a, 0xc9, 0xaf, 0xc9, 0x56,
+ 0x47, 0xcd, 0xe8, 0x4b,
+};
+static const unsigned char kat246_persstr[] = {0};
+static const unsigned char kat246_addin0[] = {0};
+static const unsigned char kat246_addin1[] = {0};
+static const unsigned char kat246_retbits[] = {
+ 0xb9, 0x08, 0xd9, 0x3a, 0xb2, 0xfd, 0xeb, 0x1a, 0x54, 0x7b, 0x6d, 0x15,
+ 0xeb, 0x95, 0x0e, 0xdd, 0xce, 0x25, 0x95, 0x6d, 0x8f, 0x5e, 0xe9, 0xa4,
+ 0xb1, 0xd5, 0x08, 0xc0, 0x82, 0x77, 0xdd, 0x7a, 0x1a, 0x10, 0x60, 0xfc,
+ 0xec, 0xaf, 0x93, 0xeb, 0x7a, 0x47, 0x2a, 0x36, 0x3e, 0x97, 0xd7, 0xe6,
+ 0x3c, 0xde, 0xc7, 0xf9, 0x4a, 0x5d, 0xc2, 0x6d, 0xb7, 0xb2, 0xb7, 0xf1,
+ 0x2c, 0xd8, 0xf3, 0xee,
+};
+static const struct drbg_kat_no_reseed kat246_t = {
+ 5, kat246_entropyin, kat246_nonce, kat246_persstr,
+ kat246_addin0, kat246_addin1, kat246_retbits
+};
+static const struct drbg_kat kat246 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat246_t
+};
+
+static const unsigned char kat247_entropyin[] = {
+ 0x5f, 0x34, 0x55, 0x2a, 0x45, 0x5a, 0x02, 0x9b, 0x4b, 0xac, 0xf1, 0xb8,
+ 0x0c, 0xb1, 0xcf, 0xb4, 0x12, 0x56, 0x5f, 0xb7, 0x73, 0x4f, 0x7e, 0x0a,
+};
+static const unsigned char kat247_nonce[] = {
+ 0xbd, 0x55, 0xae, 0xf0, 0x6d, 0xb6, 0xf2, 0x0d, 0xf2, 0x71, 0xcf, 0x60,
+ 0x59, 0x4c, 0x22, 0xac,
+};
+static const unsigned char kat247_persstr[] = {0};
+static const unsigned char kat247_addin0[] = {0};
+static const unsigned char kat247_addin1[] = {0};
+static const unsigned char kat247_retbits[] = {
+ 0xd4, 0xb1, 0x00, 0xef, 0x27, 0xd7, 0x9a, 0x5d, 0x10, 0x03, 0x1d, 0xb0,
+ 0xcc, 0xc7, 0x2b, 0xa8, 0x9c, 0x68, 0x19, 0x77, 0x6c, 0x19, 0xf0, 0x2f,
+ 0x9a, 0xfe, 0x4a, 0x44, 0x05, 0xc5, 0x84, 0xa0, 0x66, 0x21, 0xf1, 0xbb,
+ 0x5b, 0xa2, 0x9a, 0xf5, 0xea, 0x69, 0x63, 0x83, 0xa6, 0x7a, 0x9e, 0xc6,
+ 0x52, 0xbe, 0xe7, 0x59, 0x28, 0x11, 0x3d, 0xb2, 0x8f, 0x39, 0x40, 0x4f,
+ 0xf0, 0xba, 0x37, 0x38,
+};
+static const struct drbg_kat_no_reseed kat247_t = {
+ 6, kat247_entropyin, kat247_nonce, kat247_persstr,
+ kat247_addin0, kat247_addin1, kat247_retbits
+};
+static const struct drbg_kat kat247 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat247_t
+};
+
+static const unsigned char kat248_entropyin[] = {
+ 0x6d, 0x7c, 0xb2, 0x32, 0xa3, 0x20, 0x3c, 0xa6, 0x95, 0x5c, 0x1f, 0x1e,
+ 0xdd, 0xd6, 0xb8, 0xe0, 0x9d, 0x82, 0x0b, 0xf6, 0xc0, 0x5f, 0xfb, 0x6e,
+};
+static const unsigned char kat248_nonce[] = {
+ 0xc0, 0x4f, 0x16, 0x27, 0xed, 0x1d, 0x7b, 0x31, 0x0a, 0xa4, 0x7e, 0xcc,
+ 0x79, 0x83, 0x83, 0x6a,
+};
+static const unsigned char kat248_persstr[] = {0};
+static const unsigned char kat248_addin0[] = {0};
+static const unsigned char kat248_addin1[] = {0};
+static const unsigned char kat248_retbits[] = {
+ 0x63, 0xd6, 0x96, 0x3e, 0xff, 0x3d, 0x50, 0xfc, 0x0c, 0x21, 0xab, 0xa6,
+ 0x1d, 0x63, 0x65, 0x74, 0x2c, 0x4b, 0xce, 0xa7, 0xbf, 0x76, 0xc9, 0x5d,
+ 0x64, 0x5e, 0x88, 0xcb, 0x13, 0x92, 0x53, 0xd5, 0x63, 0x50, 0x3e, 0xc3,
+ 0x99, 0x9e, 0xe7, 0x72, 0xc8, 0x97, 0xc9, 0xd3, 0x66, 0x3f, 0x64, 0x5a,
+ 0xb3, 0x04, 0x1d, 0xcf, 0x3d, 0x9e, 0xe8, 0xf4, 0xc9, 0x2e, 0x89, 0x5b,
+ 0x76, 0x44, 0x41, 0x4d,
+};
+static const struct drbg_kat_no_reseed kat248_t = {
+ 7, kat248_entropyin, kat248_nonce, kat248_persstr,
+ kat248_addin0, kat248_addin1, kat248_retbits
+};
+static const struct drbg_kat kat248 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat248_t
+};
+
+static const unsigned char kat249_entropyin[] = {
+ 0x48, 0xbf, 0xce, 0xf7, 0xdb, 0xe6, 0x8d, 0x5e, 0x09, 0xdf, 0x38, 0xe9,
+ 0x7f, 0x89, 0x77, 0xe2, 0xa1, 0x50, 0x14, 0xbf, 0x75, 0x1f, 0x9e, 0x27,
+};
+static const unsigned char kat249_nonce[] = {
+ 0xee, 0xa0, 0x3c, 0x6d, 0x77, 0x80, 0x2a, 0xa2, 0xc5, 0xd5, 0xe1, 0x29,
+ 0x36, 0x31, 0xe3, 0x9b,
+};
+static const unsigned char kat249_persstr[] = {0};
+static const unsigned char kat249_addin0[] = {0};
+static const unsigned char kat249_addin1[] = {0};
+static const unsigned char kat249_retbits[] = {
+ 0xec, 0xdd, 0x8e, 0x7c, 0x78, 0x81, 0x94, 0x69, 0x82, 0xff, 0x3a, 0x11,
+ 0xa4, 0x3b, 0xd0, 0x20, 0xe9, 0x70, 0xa3, 0xb8, 0x90, 0x13, 0x87, 0xa1,
+ 0xcd, 0x3e, 0xb6, 0x3d, 0xf3, 0xfb, 0x51, 0x06, 0x60, 0xbc, 0x82, 0xa5,
+ 0xe0, 0x29, 0xbe, 0xee, 0x26, 0xb4, 0xcc, 0x5d, 0x89, 0x1f, 0xaf, 0xcf,
+ 0x5e, 0x42, 0xb6, 0xf4, 0xdc, 0x41, 0x49, 0x16, 0xfc, 0xd8, 0xb0, 0x5e,
+ 0xd3, 0xf4, 0xa6, 0x85,
+};
+static const struct drbg_kat_no_reseed kat249_t = {
+ 8, kat249_entropyin, kat249_nonce, kat249_persstr,
+ kat249_addin0, kat249_addin1, kat249_retbits
+};
+static const struct drbg_kat kat249 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat249_t
+};
+
+static const unsigned char kat250_entropyin[] = {
+ 0x5b, 0xe9, 0x61, 0x75, 0x4f, 0xe9, 0xe9, 0x72, 0x06, 0x35, 0x87, 0x5f,
+ 0xeb, 0x2f, 0x37, 0xc7, 0x4f, 0xb9, 0x62, 0x0e, 0x47, 0xb8, 0x81, 0x41,
+};
+static const unsigned char kat250_nonce[] = {
+ 0x23, 0xd3, 0x5a, 0xac, 0xee, 0xfb, 0x41, 0x2a, 0x6f, 0xbd, 0x18, 0x7f,
+ 0x57, 0x87, 0xbc, 0x53,
+};
+static const unsigned char kat250_persstr[] = {0};
+static const unsigned char kat250_addin0[] = {0};
+static const unsigned char kat250_addin1[] = {0};
+static const unsigned char kat250_retbits[] = {
+ 0x8a, 0x8e, 0x0e, 0x44, 0x3b, 0x8e, 0x94, 0x4d, 0x58, 0xc8, 0x40, 0x73,
+ 0x92, 0x29, 0x6a, 0x2c, 0x7f, 0xc4, 0xeb, 0x04, 0xfc, 0xb7, 0x2c, 0xc7,
+ 0xea, 0x99, 0x51, 0x35, 0x59, 0xc0, 0x91, 0x76, 0x61, 0xdb, 0x2e, 0xda,
+ 0x20, 0x9f, 0xbb, 0xed, 0x40, 0x00, 0x89, 0xe3, 0xfc, 0x48, 0xff, 0x69,
+ 0x90, 0xd9, 0x7c, 0x04, 0x1b, 0xb5, 0x75, 0x27, 0x92, 0xd1, 0x30, 0xa1,
+ 0x52, 0x57, 0xca, 0x44,
+};
+static const struct drbg_kat_no_reseed kat250_t = {
+ 9, kat250_entropyin, kat250_nonce, kat250_persstr,
+ kat250_addin0, kat250_addin1, kat250_retbits
+};
+static const struct drbg_kat kat250 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat250_t
+};
+
+static const unsigned char kat251_entropyin[] = {
+ 0x2a, 0x25, 0x35, 0xa5, 0xaf, 0xc9, 0xb1, 0x71, 0x75, 0x42, 0x92, 0x8a,
+ 0x3d, 0x35, 0xe9, 0x5a, 0x7f, 0x63, 0xb8, 0x77, 0xa8, 0x38, 0x8a, 0x09,
+};
+static const unsigned char kat251_nonce[] = {
+ 0xab, 0x21, 0x7b, 0x02, 0x9a, 0x33, 0xf0, 0x56, 0x35, 0x30, 0xd3, 0x7f,
+ 0x4f, 0xbf, 0xf1, 0x0b,
+};
+static const unsigned char kat251_persstr[] = {0};
+static const unsigned char kat251_addin0[] = {0};
+static const unsigned char kat251_addin1[] = {0};
+static const unsigned char kat251_retbits[] = {
+ 0x31, 0xa2, 0x10, 0x65, 0x55, 0x29, 0xfb, 0x46, 0xeb, 0x4e, 0x79, 0x97,
+ 0x10, 0xc6, 0x31, 0x92, 0xe3, 0x65, 0x6c, 0xb1, 0xea, 0x24, 0x04, 0x08,
+ 0x52, 0x7d, 0xf7, 0xfe, 0xf8, 0x2b, 0x30, 0x5c, 0x5f, 0xa9, 0x8a, 0x1d,
+ 0x82, 0x4f, 0x78, 0x30, 0xd8, 0x4a, 0x53, 0x64, 0x3c, 0xfb, 0x52, 0x51,
+ 0x76, 0x63, 0xd5, 0x16, 0x11, 0x5d, 0x45, 0x27, 0x2f, 0x59, 0x72, 0x24,
+ 0x0f, 0xe8, 0x48, 0x27,
+};
+static const struct drbg_kat_no_reseed kat251_t = {
+ 10, kat251_entropyin, kat251_nonce, kat251_persstr,
+ kat251_addin0, kat251_addin1, kat251_retbits
+};
+static const struct drbg_kat kat251 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat251_t
+};
+
+static const unsigned char kat252_entropyin[] = {
+ 0xff, 0xd8, 0xb1, 0x50, 0xb2, 0x87, 0xb3, 0xed, 0x9d, 0x01, 0x28, 0xdc,
+ 0xc8, 0xcc, 0x5d, 0xeb, 0x90, 0xbd, 0xa9, 0x8a, 0xca, 0x79, 0x14, 0x83,
+};
+static const unsigned char kat252_nonce[] = {
+ 0xbc, 0x7b, 0x6a, 0x7f, 0xb0, 0x59, 0x2f, 0xda, 0x4a, 0xbc, 0x43, 0xee,
+ 0xee, 0x42, 0xb1, 0xf6,
+};
+static const unsigned char kat252_persstr[] = {0};
+static const unsigned char kat252_addin0[] = {0};
+static const unsigned char kat252_addin1[] = {0};
+static const unsigned char kat252_retbits[] = {
+ 0x3f, 0xdb, 0x4f, 0xf8, 0x3c, 0x36, 0x2b, 0x76, 0xa8, 0x3b, 0x00, 0xa8,
+ 0x90, 0x5f, 0x2c, 0x05, 0x8b, 0xaf, 0xe8, 0xeb, 0xdf, 0xf8, 0xeb, 0x2e,
+ 0x5f, 0x53, 0xcb, 0x9c, 0xa5, 0xc8, 0x2e, 0x32, 0x17, 0xc2, 0xc6, 0x03,
+ 0x26, 0xb0, 0xbb, 0xa6, 0xc9, 0x1c, 0x44, 0x0a, 0x48, 0x52, 0xc7, 0x2c,
+ 0xd7, 0x33, 0x45, 0xc5, 0xe0, 0xd4, 0xcc, 0x2e, 0x15, 0x84, 0x01, 0x04,
+ 0x5a, 0x77, 0xe0, 0xf9,
+};
+static const struct drbg_kat_no_reseed kat252_t = {
+ 11, kat252_entropyin, kat252_nonce, kat252_persstr,
+ kat252_addin0, kat252_addin1, kat252_retbits
+};
+static const struct drbg_kat kat252 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat252_t
+};
+
+static const unsigned char kat253_entropyin[] = {
+ 0xcb, 0x33, 0xfc, 0x14, 0xf2, 0xb6, 0x94, 0x01, 0xb7, 0x8b, 0xbd, 0x78,
+ 0x1c, 0xbf, 0xe6, 0x58, 0x5f, 0x1e, 0x73, 0x64, 0x59, 0x00, 0x0c, 0x26,
+};
+static const unsigned char kat253_nonce[] = {
+ 0x5a, 0x91, 0x4f, 0x81, 0xd6, 0x5b, 0x19, 0x7a, 0x5d, 0x89, 0x24, 0xfa,
+ 0x88, 0xfa, 0x9b, 0xa3,
+};
+static const unsigned char kat253_persstr[] = {0};
+static const unsigned char kat253_addin0[] = {0};
+static const unsigned char kat253_addin1[] = {0};
+static const unsigned char kat253_retbits[] = {
+ 0x6c, 0x63, 0x20, 0x91, 0x88, 0x6e, 0x24, 0x26, 0x5d, 0x12, 0x3b, 0x5c,
+ 0x7f, 0xca, 0x06, 0x3d, 0x70, 0xdf, 0xea, 0x32, 0xc7, 0x78, 0x0a, 0xfa,
+ 0xab, 0x89, 0x5c, 0x10, 0xb5, 0x12, 0x62, 0xbc, 0x4d, 0x36, 0x3d, 0x21,
+ 0x65, 0x99, 0x83, 0x67, 0xc9, 0xa8, 0xa5, 0x16, 0x47, 0x6b, 0xc7, 0x63,
+ 0x99, 0x02, 0x41, 0xba, 0xf9, 0x2d, 0x6b, 0x87, 0xe4, 0xde, 0x62, 0x2d,
+ 0x40, 0x19, 0xdb, 0x6c,
+};
+static const struct drbg_kat_no_reseed kat253_t = {
+ 12, kat253_entropyin, kat253_nonce, kat253_persstr,
+ kat253_addin0, kat253_addin1, kat253_retbits
+};
+static const struct drbg_kat kat253 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat253_t
+};
+
+static const unsigned char kat254_entropyin[] = {
+ 0xc4, 0x57, 0xe7, 0xd1, 0xc6, 0x9b, 0x1a, 0x53, 0x00, 0xb4, 0x75, 0xef,
+ 0x80, 0x44, 0x1c, 0x40, 0x80, 0x0c, 0xd3, 0x76, 0x4e, 0x41, 0x4c, 0xe1,
+};
+static const unsigned char kat254_nonce[] = {
+ 0x39, 0x33, 0xe4, 0x98, 0xa0, 0xf2, 0x0d, 0x3f, 0xcf, 0x05, 0xa3, 0xb8,
+ 0x2b, 0x67, 0xac, 0x6d,
+};
+static const unsigned char kat254_persstr[] = {0};
+static const unsigned char kat254_addin0[] = {0};
+static const unsigned char kat254_addin1[] = {0};
+static const unsigned char kat254_retbits[] = {
+ 0x26, 0x89, 0x41, 0x9f, 0xa0, 0xf9, 0xb3, 0xa4, 0xc5, 0xe9, 0x6a, 0x71,
+ 0xf6, 0x76, 0xef, 0x7f, 0x76, 0x76, 0x7b, 0x51, 0xb3, 0xcd, 0x5c, 0xe8,
+ 0x37, 0xe9, 0xd8, 0x28, 0x6f, 0xa8, 0x37, 0xa5, 0xa3, 0x45, 0x66, 0x95,
+ 0xe3, 0xe9, 0xca, 0x93, 0x96, 0xe8, 0xd5, 0xb9, 0x47, 0x8a, 0x1e, 0x8c,
+ 0xdd, 0x5c, 0x31, 0xfb, 0xaa, 0x5e, 0x07, 0x43, 0xd2, 0x77, 0xfd, 0xf4,
+ 0xaf, 0xc7, 0x95, 0x9a,
+};
+static const struct drbg_kat_no_reseed kat254_t = {
+ 13, kat254_entropyin, kat254_nonce, kat254_persstr,
+ kat254_addin0, kat254_addin1, kat254_retbits
+};
+static const struct drbg_kat kat254 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat254_t
+};
+
+static const unsigned char kat255_entropyin[] = {
+ 0x49, 0xbc, 0x4a, 0xa4, 0xca, 0xba, 0x36, 0x42, 0x42, 0xdf, 0x51, 0x84,
+ 0x90, 0x9c, 0xe5, 0x88, 0xf2, 0x4a, 0x2d, 0xe3, 0x40, 0xe3, 0x30, 0x82,
+};
+static const unsigned char kat255_nonce[] = {
+ 0x51, 0x01, 0xf0, 0x0a, 0xc1, 0x89, 0x9c, 0x9b, 0xa4, 0x5e, 0x92, 0x3e,
+ 0x07, 0x16, 0x64, 0x07,
+};
+static const unsigned char kat255_persstr[] = {0};
+static const unsigned char kat255_addin0[] = {0};
+static const unsigned char kat255_addin1[] = {0};
+static const unsigned char kat255_retbits[] = {
+ 0x9b, 0x71, 0xe0, 0xa0, 0x9c, 0x39, 0x3e, 0xb0, 0xf0, 0x34, 0xa1, 0x2d,
+ 0x3a, 0xd1, 0x32, 0x0a, 0xc1, 0xca, 0x42, 0x2a, 0x82, 0x96, 0x7c, 0xc5,
+ 0x4d, 0x14, 0xed, 0x0e, 0x36, 0x42, 0x9a, 0xb2, 0xa0, 0xe8, 0xc6, 0x7a,
+ 0x5c, 0x7f, 0x60, 0xe5, 0x37, 0xe4, 0x10, 0xeb, 0x5f, 0xf0, 0x75, 0xb7,
+ 0xc6, 0x7a, 0xc4, 0x80, 0x52, 0x00, 0xa5, 0xab, 0x2f, 0xb6, 0x29, 0xb4,
+ 0x84, 0x60, 0xcc, 0xe4,
+};
+static const struct drbg_kat_no_reseed kat255_t = {
+ 14, kat255_entropyin, kat255_nonce, kat255_persstr,
+ kat255_addin0, kat255_addin1, kat255_retbits
+};
+static const struct drbg_kat kat255 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat255_t
+};
+
+static const unsigned char kat256_entropyin[] = {
+ 0x89, 0xd3, 0x2f, 0x3d, 0xe1, 0x67, 0xde, 0xbe, 0xdf, 0xc1, 0x43, 0xe4,
+ 0xda, 0x78, 0x9a, 0x5f, 0x83, 0x31, 0x2a, 0x9d, 0x42, 0x0c, 0x29, 0xd4,
+};
+static const unsigned char kat256_nonce[] = {
+ 0x9a, 0xe3, 0xba, 0xb2, 0xd9, 0x65, 0xdb, 0xe9, 0x96, 0xa6, 0xc4, 0xc0,
+ 0xde, 0x28, 0x05, 0x01,
+};
+static const unsigned char kat256_persstr[] = {0};
+static const unsigned char kat256_addin0[] = {
+ 0xd5, 0x16, 0x5f, 0xbf, 0x88, 0x50, 0xe2, 0xec, 0xfb, 0x46, 0x87, 0xaf,
+ 0x79, 0xdc, 0x62, 0x36, 0x1e, 0x75, 0x57, 0x70, 0x70, 0x51, 0xa1, 0x36,
+ 0x80, 0x47, 0x1e, 0xe1, 0x29, 0xf2, 0x84, 0xf9,
+};
+static const unsigned char kat256_addin1[] = {
+ 0x85, 0x22, 0x56, 0xde, 0x34, 0x79, 0xdc, 0x86, 0xa3, 0xb4, 0xd4, 0x04,
+ 0xc2, 0x64, 0x7b, 0x74, 0xf5, 0xf8, 0xa1, 0xc0, 0x1b, 0x68, 0x1f, 0x1d,
+ 0x8e, 0xfd, 0xfe, 0xdc, 0x54, 0xc1, 0x0c, 0x07,
+};
+static const unsigned char kat256_retbits[] = {
+ 0xb0, 0x39, 0x7e, 0xda, 0x1d, 0xaf, 0x45, 0x44, 0x10, 0x4f, 0x73, 0x04,
+ 0x01, 0xcb, 0xd1, 0xbe, 0x29, 0x98, 0x9c, 0xd2, 0x87, 0x97, 0xde, 0x2c,
+ 0x13, 0xcd, 0xbf, 0x18, 0x4f, 0x86, 0xc6, 0x37, 0x8f, 0x8d, 0xfa, 0x39,
+ 0x4e, 0x08, 0xd9, 0xa7, 0x1d, 0xe1, 0xf1, 0x63, 0x3b, 0x5b, 0x28, 0x36,
+ 0x3d, 0xf2, 0x16, 0x59, 0xce, 0x58, 0xb1, 0x25, 0x92, 0xe8, 0xee, 0x4f,
+ 0x55, 0xcb, 0x81, 0xac,
+};
+static const struct drbg_kat_no_reseed kat256_t = {
+ 0, kat256_entropyin, kat256_nonce, kat256_persstr,
+ kat256_addin0, kat256_addin1, kat256_retbits
+};
+static const struct drbg_kat kat256 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat256_t
+};
+
+static const unsigned char kat257_entropyin[] = {
+ 0xad, 0x3b, 0x6f, 0xa3, 0xd6, 0x32, 0xa4, 0x2f, 0x8c, 0x58, 0x0b, 0x59,
+ 0xfa, 0xf8, 0x82, 0xc0, 0x33, 0x8c, 0x5b, 0xb0, 0x44, 0xb8, 0x8f, 0x37,
+};
+static const unsigned char kat257_nonce[] = {
+ 0xf9, 0x99, 0x66, 0xdb, 0x52, 0xa2, 0xf7, 0x27, 0x11, 0xb5, 0xaf, 0x10,
+ 0xef, 0xf4, 0x2f, 0xef,
+};
+static const unsigned char kat257_persstr[] = {0};
+static const unsigned char kat257_addin0[] = {
+ 0xbe, 0xe5, 0x97, 0x4c, 0x34, 0x30, 0x2a, 0xee, 0xfe, 0x31, 0xc7, 0x32,
+ 0x59, 0x87, 0xc1, 0x58, 0xdf, 0x80, 0x38, 0xa2, 0x37, 0xef, 0x9e, 0xcb,
+ 0xb8, 0xfe, 0x74, 0xfe, 0xfb, 0xb3, 0xe2, 0x29,
+};
+static const unsigned char kat257_addin1[] = {
+ 0x47, 0xb9, 0xbd, 0x9b, 0xab, 0xc4, 0x15, 0xaf, 0xaa, 0xed, 0xbb, 0x8a,
+ 0xc9, 0xeb, 0xf0, 0x2e, 0xb5, 0x81, 0xd1, 0xeb, 0x5f, 0xb0, 0xb7, 0xd4,
+ 0x34, 0x55, 0x84, 0x8d, 0x66, 0xce, 0xb5, 0x3b,
+};
+static const unsigned char kat257_retbits[] = {
+ 0x75, 0x92, 0x2a, 0x7b, 0x19, 0x33, 0xf4, 0xbe, 0xc2, 0x75, 0xc1, 0x50,
+ 0xe2, 0xf9, 0x89, 0x37, 0x14, 0xcb, 0xa1, 0x19, 0xc5, 0xdf, 0x7d, 0xc2,
+ 0xcf, 0xaa, 0x96, 0x18, 0xf1, 0xeb, 0xa5, 0x4d, 0x68, 0xd5, 0x58, 0xe9,
+ 0x76, 0xce, 0x29, 0x2e, 0x4b, 0x9f, 0x83, 0x06, 0xf1, 0xd1, 0x75, 0x59,
+ 0x78, 0x04, 0x12, 0x24, 0x74, 0x80, 0x06, 0xbd, 0x57, 0x12, 0x31, 0x0f,
+ 0xd0, 0x85, 0xaf, 0xa0,
+};
+static const struct drbg_kat_no_reseed kat257_t = {
+ 1, kat257_entropyin, kat257_nonce, kat257_persstr,
+ kat257_addin0, kat257_addin1, kat257_retbits
+};
+static const struct drbg_kat kat257 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat257_t
+};
+
+static const unsigned char kat258_entropyin[] = {
+ 0x16, 0xd3, 0x99, 0xb5, 0x26, 0xa8, 0x37, 0x66, 0xb5, 0xf9, 0x35, 0xe4,
+ 0xc1, 0x23, 0x41, 0x98, 0x17, 0x24, 0xcd, 0x87, 0x24, 0x25, 0xd8, 0x59,
+};
+static const unsigned char kat258_nonce[] = {
+ 0xc0, 0xf3, 0x83, 0x54, 0xae, 0x69, 0x68, 0x35, 0xf9, 0xc8, 0x56, 0x71,
+ 0x6f, 0x18, 0x6e, 0x4d,
+};
+static const unsigned char kat258_persstr[] = {0};
+static const unsigned char kat258_addin0[] = {
+ 0x56, 0x94, 0x3f, 0x5e, 0xf7, 0xee, 0xa6, 0x6a, 0xf2, 0xec, 0x60, 0x7f,
+ 0xcf, 0xa2, 0xbd, 0x76, 0x69, 0x89, 0x9b, 0x6e, 0xce, 0x4c, 0xab, 0xac,
+ 0x8d, 0x6e, 0x7a, 0x08, 0x68, 0xbe, 0x42, 0x2b,
+};
+static const unsigned char kat258_addin1[] = {
+ 0x2f, 0x7e, 0x74, 0x6e, 0x2d, 0x05, 0xcd, 0x1e, 0x52, 0x33, 0x39, 0x92,
+ 0x6e, 0x3e, 0x96, 0x56, 0x8f, 0x5d, 0x23, 0x1b, 0x80, 0xc2, 0x68, 0xf4,
+ 0x4b, 0x1d, 0xf9, 0x62, 0x22, 0x9e, 0x5b, 0x27,
+};
+static const unsigned char kat258_retbits[] = {
+ 0x0b, 0xd1, 0xc4, 0x1c, 0x30, 0x28, 0x4f, 0xad, 0xa0, 0x9e, 0xb2, 0x44,
+ 0x7d, 0x56, 0x38, 0xa7, 0xa0, 0xb7, 0x3d, 0x99, 0xc6, 0x51, 0xed, 0xc5,
+ 0xb8, 0xaa, 0x15, 0xd4, 0xe9, 0x81, 0x40, 0x48, 0xd7, 0x9c, 0x52, 0x38,
+ 0x2b, 0xaa, 0x20, 0x3d, 0x3f, 0x72, 0x78, 0xf4, 0x86, 0x4d, 0x18, 0x36,
+ 0x65, 0x66, 0x24, 0x80, 0x06, 0x58, 0x7c, 0xf3, 0xf9, 0x02, 0x71, 0xc4,
+ 0x8c, 0x49, 0x3d, 0x5d,
+};
+static const struct drbg_kat_no_reseed kat258_t = {
+ 2, kat258_entropyin, kat258_nonce, kat258_persstr,
+ kat258_addin0, kat258_addin1, kat258_retbits
+};
+static const struct drbg_kat kat258 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat258_t
+};
+
+static const unsigned char kat259_entropyin[] = {
+ 0x8d, 0x2b, 0xcb, 0x66, 0xbd, 0x17, 0xe8, 0xb2, 0xe3, 0x6a, 0x2a, 0x5f,
+ 0xd1, 0xc1, 0xa0, 0x86, 0x1f, 0xe3, 0x4e, 0x1c, 0xb8, 0xf2, 0x21, 0x9b,
+};
+static const unsigned char kat259_nonce[] = {
+ 0x86, 0x8c, 0x2b, 0xab, 0xe9, 0x69, 0xd7, 0x77, 0x6f, 0x92, 0x92, 0x97,
+ 0x95, 0xa9, 0x1e, 0xb7,
+};
+static const unsigned char kat259_persstr[] = {0};
+static const unsigned char kat259_addin0[] = {
+ 0x46, 0x18, 0x36, 0x6b, 0x0d, 0x51, 0xf9, 0x09, 0x5f, 0xd8, 0x67, 0xfa,
+ 0x7a, 0x40, 0xe7, 0x73, 0x62, 0x94, 0xa9, 0x2f, 0xdc, 0xc5, 0xd0, 0xec,
+ 0xf2, 0x93, 0x04, 0x25, 0x66, 0x68, 0x34, 0x48,
+};
+static const unsigned char kat259_addin1[] = {
+ 0xc4, 0x5c, 0x21, 0x8f, 0xc6, 0x48, 0xde, 0x1b, 0xfb, 0xaa, 0xa6, 0x3b,
+ 0xe0, 0x27, 0xaf, 0xa0, 0x8c, 0xde, 0x5c, 0x7d, 0x84, 0xa6, 0x29, 0xdb,
+ 0x9b, 0x54, 0xa2, 0x0c, 0xf6, 0x4c, 0x5a, 0x75,
+};
+static const unsigned char kat259_retbits[] = {
+ 0xb8, 0x5b, 0x85, 0xcf, 0xf7, 0x18, 0x51, 0xce, 0x21, 0x1d, 0x4e, 0xb2,
+ 0xdc, 0x56, 0x9a, 0xc2, 0xd4, 0x3c, 0xcf, 0x52, 0xff, 0x71, 0xcc, 0x00,
+ 0x90, 0xed, 0x59, 0xc8, 0x7e, 0x78, 0x50, 0x61, 0xb9, 0x9f, 0x35, 0x2e,
+ 0x39, 0x8f, 0x61, 0xd2, 0x3d, 0xc0, 0xa1, 0x7e, 0x44, 0x76, 0xda, 0x39,
+ 0xc3, 0x1f, 0x7b, 0x81, 0x73, 0x8c, 0xaa, 0x61, 0x47, 0x53, 0x17, 0x36,
+ 0x3c, 0x20, 0x5a, 0xba,
+};
+static const struct drbg_kat_no_reseed kat259_t = {
+ 3, kat259_entropyin, kat259_nonce, kat259_persstr,
+ kat259_addin0, kat259_addin1, kat259_retbits
+};
+static const struct drbg_kat kat259 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat259_t
+};
+
+static const unsigned char kat260_entropyin[] = {
+ 0xf3, 0xca, 0x9e, 0xe3, 0x24, 0xcb, 0x01, 0x11, 0xd5, 0xec, 0x08, 0x1e,
+ 0xdf, 0x77, 0xd3, 0xfa, 0x0b, 0x77, 0x71, 0x8a, 0x87, 0xfb, 0xf4, 0xf5,
+};
+static const unsigned char kat260_nonce[] = {
+ 0x98, 0xd1, 0x2b, 0xbe, 0x87, 0xe4, 0x76, 0x03, 0x7a, 0x5b, 0x24, 0x47,
+ 0x35, 0xd2, 0x10, 0x2a,
+};
+static const unsigned char kat260_persstr[] = {0};
+static const unsigned char kat260_addin0[] = {
+ 0x19, 0x06, 0x9b, 0x8f, 0xb8, 0x14, 0x8a, 0xc0, 0x0c, 0xf6, 0x07, 0xcf,
+ 0xce, 0x76, 0xa9, 0x54, 0xf3, 0x12, 0x9c, 0x79, 0x75, 0x19, 0x6b, 0x8b,
+ 0x61, 0x28, 0xa3, 0x00, 0xce, 0x0d, 0xc0, 0xa7,
+};
+static const unsigned char kat260_addin1[] = {
+ 0x4f, 0x07, 0x8d, 0xaa, 0xbd, 0x37, 0x76, 0x80, 0xea, 0xe1, 0x82, 0x30,
+ 0x74, 0xab, 0x0d, 0x40, 0xa6, 0x93, 0xd6, 0x81, 0x21, 0xbb, 0xa4, 0x29,
+ 0xde, 0xbd, 0xfe, 0x0f, 0x88, 0x37, 0x03, 0xdd,
+};
+static const unsigned char kat260_retbits[] = {
+ 0x67, 0x28, 0x47, 0x2e, 0xbc, 0x52, 0xa8, 0x75, 0xb1, 0xa1, 0x63, 0x21,
+ 0x1c, 0x2b, 0x77, 0x1b, 0xdc, 0xa9, 0x9e, 0x03, 0xf0, 0xde, 0x54, 0xa6,
+ 0xf4, 0xa1, 0x41, 0xa7, 0x69, 0x1d, 0x6f, 0x96, 0x79, 0xf9, 0x63, 0xc2,
+ 0xfa, 0x37, 0x7f, 0x0a, 0xe4, 0x71, 0xec, 0xc4, 0x70, 0x76, 0x88, 0x18,
+ 0xab, 0x4e, 0x62, 0x77, 0x11, 0xa0, 0xf9, 0x88, 0xff, 0x97, 0x3e, 0x4b,
+ 0xce, 0x50, 0x1b, 0x69,
+};
+static const struct drbg_kat_no_reseed kat260_t = {
+ 4, kat260_entropyin, kat260_nonce, kat260_persstr,
+ kat260_addin0, kat260_addin1, kat260_retbits
+};
+static const struct drbg_kat kat260 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat260_t
+};
+
+static const unsigned char kat261_entropyin[] = {
+ 0x54, 0x47, 0x86, 0x8c, 0xd9, 0x25, 0x24, 0x23, 0xf0, 0x3c, 0xa3, 0xbd,
+ 0x8b, 0x0a, 0x45, 0x43, 0x35, 0xd3, 0x2e, 0xa5, 0x4f, 0xbd, 0x3e, 0xdb,
+};
+static const unsigned char kat261_nonce[] = {
+ 0x64, 0xf2, 0xde, 0x76, 0x5d, 0x20, 0x28, 0xa8, 0xba, 0x06, 0xe6, 0xd2,
+ 0x04, 0xac, 0x4b, 0xc4,
+};
+static const unsigned char kat261_persstr[] = {0};
+static const unsigned char kat261_addin0[] = {
+ 0x19, 0x1a, 0x39, 0xd6, 0x30, 0xd6, 0x6c, 0xa9, 0x46, 0x72, 0x0a, 0xef,
+ 0xe8, 0x0c, 0x94, 0xbf, 0xdd, 0x3e, 0x24, 0xdd, 0xa3, 0xe3, 0x7c, 0x41,
+ 0x4a, 0x93, 0xeb, 0xb7, 0x84, 0xd3, 0xe7, 0xc4,
+};
+static const unsigned char kat261_addin1[] = {
+ 0x8b, 0x66, 0x4b, 0xa7, 0x4f, 0xd0, 0xbb, 0x50, 0x06, 0xed, 0xd3, 0x37,
+ 0xa1, 0xc4, 0xdb, 0xbf, 0xe7, 0x73, 0x90, 0x2e, 0x08, 0x4c, 0x55, 0x8b,
+ 0xa1, 0x45, 0xe8, 0xf8, 0xca, 0x34, 0x54, 0x87,
+};
+static const unsigned char kat261_retbits[] = {
+ 0xce, 0x5f, 0x7a, 0x69, 0x68, 0xf3, 0xcf, 0x5f, 0xb0, 0x1e, 0x62, 0x08,
+ 0xa1, 0x65, 0x17, 0x20, 0xfe, 0x1e, 0x90, 0x76, 0x4d, 0xea, 0x46, 0x50,
+ 0x4e, 0x10, 0x6f, 0x13, 0xeb, 0xff, 0xf3, 0xd9, 0x79, 0x07, 0x2b, 0x6f,
+ 0x54, 0x59, 0x06, 0x9a, 0x77, 0x30, 0x03, 0xe3, 0xec, 0xa4, 0xee, 0x3b,
+ 0x73, 0x0a, 0xeb, 0xfe, 0x95, 0x7c, 0x0e, 0x68, 0x77, 0x4d, 0xdc, 0xb9,
+ 0x71, 0xbf, 0x46, 0x03,
+};
+static const struct drbg_kat_no_reseed kat261_t = {
+ 5, kat261_entropyin, kat261_nonce, kat261_persstr,
+ kat261_addin0, kat261_addin1, kat261_retbits
+};
+static const struct drbg_kat kat261 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat261_t
+};
+
+static const unsigned char kat262_entropyin[] = {
+ 0xe8, 0xd9, 0x3d, 0x86, 0xc3, 0xe9, 0x8d, 0xe6, 0x4f, 0x40, 0x80, 0xbb,
+ 0x64, 0x52, 0x05, 0x5c, 0xc7, 0xdb, 0x86, 0xd2, 0x5b, 0xb3, 0xa9, 0x23,
+};
+static const unsigned char kat262_nonce[] = {
+ 0xa5, 0x44, 0x7f, 0x91, 0x15, 0x89, 0x1d, 0x48, 0x30, 0x37, 0xad, 0x4d,
+ 0xd4, 0xc2, 0x2a, 0x8a,
+};
+static const unsigned char kat262_persstr[] = {0};
+static const unsigned char kat262_addin0[] = {
+ 0x56, 0xc6, 0xce, 0xa0, 0x19, 0x72, 0x73, 0x74, 0x21, 0xa0, 0x7c, 0xb2,
+ 0x0c, 0x79, 0xb8, 0xf7, 0x6b, 0x32, 0xa9, 0xe9, 0xfb, 0xbb, 0xe4, 0x6d,
+ 0xd7, 0x1f, 0x02, 0xc7, 0x2d, 0x1e, 0x45, 0x0a,
+};
+static const unsigned char kat262_addin1[] = {
+ 0x96, 0x42, 0xc8, 0x21, 0x59, 0xc3, 0x6a, 0x48, 0xa2, 0x52, 0xcc, 0xfe,
+ 0xe6, 0x1c, 0x5c, 0x1c, 0xed, 0x6d, 0x3a, 0x04, 0x09, 0x9d, 0x98, 0xf9,
+ 0xdb, 0xe5, 0x34, 0x87, 0x7b, 0x80, 0xa9, 0x8f,
+};
+static const unsigned char kat262_retbits[] = {
+ 0x18, 0x7f, 0x40, 0x48, 0x9f, 0x22, 0xf3, 0x55, 0x83, 0xe7, 0x58, 0x21,
+ 0xd6, 0x9f, 0x36, 0x9d, 0x12, 0x59, 0x35, 0x21, 0x71, 0xc5, 0x69, 0xf2,
+ 0xd8, 0xe9, 0xa1, 0x50, 0x97, 0x87, 0x6c, 0xe5, 0x26, 0x1b, 0x41, 0x74,
+ 0x53, 0x04, 0x69, 0x82, 0x9b, 0xa2, 0xc0, 0x01, 0x45, 0xcb, 0xf4, 0xd2,
+ 0xa1, 0x20, 0x5e, 0x91, 0x1c, 0x2c, 0x32, 0xd3, 0x3b, 0x5d, 0x67, 0x06,
+ 0x40, 0x97, 0x72, 0xd2,
+};
+static const struct drbg_kat_no_reseed kat262_t = {
+ 6, kat262_entropyin, kat262_nonce, kat262_persstr,
+ kat262_addin0, kat262_addin1, kat262_retbits
+};
+static const struct drbg_kat kat262 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat262_t
+};
+
+static const unsigned char kat263_entropyin[] = {
+ 0x59, 0xb9, 0xb4, 0xdf, 0x1b, 0xb4, 0xf7, 0x78, 0xea, 0x1a, 0x1b, 0xfc,
+ 0x41, 0x25, 0x5c, 0xc3, 0x25, 0xd6, 0xbf, 0x4f, 0xfc, 0x42, 0x8c, 0xe1,
+};
+static const unsigned char kat263_nonce[] = {
+ 0xe0, 0xfb, 0x72, 0xdd, 0x71, 0xff, 0x3c, 0x2e, 0x07, 0x2f, 0x27, 0xd6,
+ 0x57, 0x26, 0x0d, 0xa2,
+};
+static const unsigned char kat263_persstr[] = {0};
+static const unsigned char kat263_addin0[] = {
+ 0xcc, 0xfb, 0x64, 0xf4, 0x3f, 0x84, 0xf0, 0x3c, 0xd9, 0x8e, 0x1a, 0xa3,
+ 0x56, 0x6c, 0xa0, 0xc9, 0xb7, 0x43, 0x82, 0x04, 0xc8, 0xe6, 0x5a, 0x9c,
+ 0xb8, 0x22, 0x7e, 0x20, 0x11, 0xb9, 0xa7, 0x16,
+};
+static const unsigned char kat263_addin1[] = {
+ 0x30, 0x64, 0xa3, 0x1a, 0x84, 0xc4, 0xea, 0xa6, 0x98, 0x0e, 0x6d, 0x41,
+ 0x2c, 0xd4, 0xf4, 0x19, 0x11, 0x4b, 0xf0, 0xe8, 0xb2, 0x27, 0x45, 0x6a,
+ 0x91, 0xda, 0x0f, 0xc0, 0xf7, 0xdc, 0xb7, 0x5f,
+};
+static const unsigned char kat263_retbits[] = {
+ 0x7d, 0x48, 0x83, 0x6e, 0xd6, 0x57, 0x23, 0x1f, 0x62, 0x62, 0x7b, 0xa5,
+ 0x08, 0x97, 0xca, 0x8f, 0x37, 0x9f, 0x68, 0xd8, 0x6f, 0xab, 0xe2, 0x6c,
+ 0xaa, 0x7b, 0x44, 0x41, 0xcd, 0x2b, 0x6c, 0x2a, 0xd1, 0xda, 0xf4, 0xea,
+ 0xbc, 0x2c, 0x34, 0xb3, 0x96, 0x34, 0x00, 0xd2, 0x36, 0x11, 0x74, 0xee,
+ 0x22, 0x95, 0x2d, 0x6a, 0x28, 0xe8, 0x99, 0x37, 0xb2, 0x31, 0xc9, 0xbc,
+ 0x22, 0x8a, 0x78, 0xc5,
+};
+static const struct drbg_kat_no_reseed kat263_t = {
+ 7, kat263_entropyin, kat263_nonce, kat263_persstr,
+ kat263_addin0, kat263_addin1, kat263_retbits
+};
+static const struct drbg_kat kat263 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat263_t
+};
+
+static const unsigned char kat264_entropyin[] = {
+ 0x0d, 0x03, 0xee, 0x60, 0xbc, 0xa7, 0x23, 0x99, 0x9d, 0x49, 0x58, 0x9e,
+ 0xb6, 0xe4, 0x04, 0x2f, 0xf9, 0x7b, 0x22, 0x43, 0x3c, 0x81, 0x22, 0x42,
+};
+static const unsigned char kat264_nonce[] = {
+ 0x8a, 0x2f, 0x6f, 0xc8, 0xd4, 0xc5, 0x4b, 0xf6, 0x85, 0x2b, 0x90, 0x2b,
+ 0xcf, 0x2c, 0x41, 0xec,
+};
+static const unsigned char kat264_persstr[] = {0};
+static const unsigned char kat264_addin0[] = {
+ 0xcb, 0x26, 0x94, 0x41, 0x03, 0x5e, 0x07, 0x11, 0x01, 0xac, 0x8e, 0xfb,
+ 0x4e, 0xb7, 0xf9, 0xf1, 0xde, 0x21, 0x84, 0x77, 0x1e, 0xc0, 0xea, 0xc6,
+ 0x2d, 0x06, 0x92, 0xe6, 0x7b, 0xdf, 0x1f, 0xae,
+};
+static const unsigned char kat264_addin1[] = {
+ 0x90, 0x5e, 0x3d, 0x9c, 0x18, 0x00, 0xe1, 0x36, 0x6b, 0xc7, 0x49, 0xa6,
+ 0x0d, 0x21, 0xce, 0x51, 0x8f, 0xde, 0xf2, 0xa3, 0x6f, 0x88, 0x0c, 0x26,
+ 0xc1, 0x52, 0x8f, 0x12, 0xdf, 0xfb, 0x91, 0x76,
+};
+static const unsigned char kat264_retbits[] = {
+ 0xa4, 0xcb, 0x87, 0xde, 0x76, 0xb2, 0xeb, 0x39, 0x59, 0x9f, 0x68, 0x40,
+ 0x22, 0x93, 0xce, 0xe9, 0xc6, 0x1d, 0xc9, 0xdc, 0x12, 0x57, 0x78, 0x99,
+ 0x64, 0xa2, 0xac, 0xf0, 0xc3, 0x2f, 0x61, 0xc9, 0x07, 0x29, 0x4b, 0xde,
+ 0xca, 0x88, 0xb0, 0x5d, 0xaa, 0xe0, 0x75, 0x4d, 0x21, 0xf0, 0xc2, 0xb7,
+ 0x56, 0x97, 0xd8, 0x61, 0x42, 0x37, 0x4f, 0x96, 0x76, 0xdb, 0x34, 0x75,
+ 0x33, 0x71, 0xe6, 0x18,
+};
+static const struct drbg_kat_no_reseed kat264_t = {
+ 8, kat264_entropyin, kat264_nonce, kat264_persstr,
+ kat264_addin0, kat264_addin1, kat264_retbits
+};
+static const struct drbg_kat kat264 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat264_t
+};
+
+static const unsigned char kat265_entropyin[] = {
+ 0xb9, 0x5d, 0x8b, 0x26, 0x6a, 0xcc, 0xcd, 0x6c, 0xba, 0xc0, 0xc0, 0x61,
+ 0xec, 0x32, 0xa1, 0xea, 0x71, 0x1f, 0xfe, 0xc8, 0x00, 0x6b, 0xc7, 0xcc,
+};
+static const unsigned char kat265_nonce[] = {
+ 0xbf, 0xa0, 0x84, 0x02, 0xc0, 0xc6, 0xb8, 0x7d, 0xec, 0xa2, 0x24, 0x6d,
+ 0x81, 0xf6, 0x7f, 0x58,
+};
+static const unsigned char kat265_persstr[] = {0};
+static const unsigned char kat265_addin0[] = {
+ 0x72, 0xff, 0xd4, 0xa1, 0x83, 0x99, 0x0d, 0xac, 0x6b, 0xc7, 0xa9, 0x46,
+ 0x47, 0x14, 0x27, 0x59, 0xbf, 0x88, 0x1c, 0xc0, 0xb3, 0x17, 0x8f, 0x60,
+ 0xe0, 0xe2, 0xcb, 0xc3, 0x33, 0x79, 0xf7, 0xad,
+};
+static const unsigned char kat265_addin1[] = {
+ 0x2e, 0x9f, 0xe4, 0xd1, 0xaf, 0x62, 0xb1, 0x5f, 0x85, 0x35, 0xe1, 0x98,
+ 0xaa, 0xd7, 0x93, 0x61, 0xe9, 0x46, 0x16, 0x41, 0x8e, 0xd2, 0xd8, 0x01,
+ 0xe7, 0x0f, 0xad, 0x9e, 0x0e, 0x9c, 0xa5, 0xb8,
+};
+static const unsigned char kat265_retbits[] = {
+ 0x1b, 0x0d, 0x15, 0xfb, 0x4f, 0xcd, 0xca, 0x14, 0x97, 0xdc, 0xfe, 0x60,
+ 0xe7, 0xd8, 0x2b, 0xd0, 0x40, 0x1b, 0x16, 0x23, 0x36, 0x6a, 0x71, 0xcf,
+ 0x8f, 0xa5, 0x75, 0x4f, 0x87, 0x8e, 0x20, 0xd8, 0xf2, 0x54, 0x5b, 0xc3,
+ 0xd4, 0x1e, 0x79, 0x73, 0xae, 0x32, 0x90, 0x50, 0x6b, 0xa2, 0xa9, 0x76,
+ 0xb8, 0x3b, 0x7b, 0x98, 0xc7, 0x66, 0xd8, 0xec, 0x0c, 0x26, 0x4b, 0xe2,
+ 0x87, 0xee, 0x63, 0xf5,
+};
+static const struct drbg_kat_no_reseed kat265_t = {
+ 9, kat265_entropyin, kat265_nonce, kat265_persstr,
+ kat265_addin0, kat265_addin1, kat265_retbits
+};
+static const struct drbg_kat kat265 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat265_t
+};
+
+static const unsigned char kat266_entropyin[] = {
+ 0x6d, 0x30, 0x46, 0x58, 0x37, 0xa6, 0x1e, 0x49, 0xda, 0xc0, 0xfc, 0x84,
+ 0x48, 0xde, 0x3a, 0xfa, 0x2e, 0x22, 0xe0, 0x94, 0x28, 0x6a, 0x5a, 0xed,
+};
+static const unsigned char kat266_nonce[] = {
+ 0x94, 0x18, 0xc0, 0x28, 0x70, 0xef, 0x4c, 0xd1, 0x19, 0xdd, 0xb6, 0x73,
+ 0xee, 0x69, 0x9d, 0xde,
+};
+static const unsigned char kat266_persstr[] = {0};
+static const unsigned char kat266_addin0[] = {
+ 0xac, 0x32, 0x2e, 0xcf, 0xff, 0x1f, 0x73, 0x26, 0xa4, 0xf4, 0xcb, 0x33,
+ 0xc1, 0x76, 0xfe, 0x83, 0x1c, 0x0d, 0xdf, 0x37, 0x37, 0x69, 0xfd, 0xe6,
+ 0x1a, 0x42, 0x42, 0x6f, 0xe9, 0x9e, 0xa8, 0x49,
+};
+static const unsigned char kat266_addin1[] = {
+ 0x5b, 0x70, 0x52, 0x49, 0x1c, 0x3f, 0x53, 0x6e, 0xcb, 0x91, 0xfd, 0x04,
+ 0x38, 0x0f, 0x9f, 0x03, 0x80, 0xa4, 0x15, 0xdc, 0xde, 0x60, 0x1a, 0x67,
+ 0x0a, 0x1e, 0xe6, 0xb8, 0xf2, 0x2e, 0x96, 0xda,
+};
+static const unsigned char kat266_retbits[] = {
+ 0xdc, 0xa3, 0xfd, 0xae, 0xf8, 0xbf, 0xb2, 0xd0, 0x9b, 0xb9, 0x06, 0xab,
+ 0xcb, 0x21, 0x81, 0x8a, 0xa6, 0x6a, 0x06, 0x4e, 0x71, 0x18, 0xff, 0x3d,
+ 0xac, 0x55, 0x66, 0xca, 0x99, 0x1e, 0xbb, 0x37, 0x33, 0x82, 0x41, 0xe0,
+ 0xc8, 0x29, 0x76, 0x8f, 0x71, 0x5e, 0x4c, 0x2f, 0x11, 0x57, 0xeb, 0x0a,
+ 0xc4, 0x73, 0xba, 0xd8, 0x6b, 0x05, 0x13, 0xb6, 0x48, 0x54, 0xf3, 0xed,
+ 0x8d, 0xa4, 0x83, 0x28,
+};
+static const struct drbg_kat_no_reseed kat266_t = {
+ 10, kat266_entropyin, kat266_nonce, kat266_persstr,
+ kat266_addin0, kat266_addin1, kat266_retbits
+};
+static const struct drbg_kat kat266 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat266_t
+};
+
+static const unsigned char kat267_entropyin[] = {
+ 0xc6, 0x83, 0x21, 0x3a, 0x47, 0x37, 0x5e, 0x29, 0x75, 0xd3, 0x00, 0x4b,
+ 0xcd, 0x6f, 0xb4, 0xaa, 0xb6, 0x55, 0x31, 0xc7, 0x52, 0x93, 0x1d, 0x6b,
+};
+static const unsigned char kat267_nonce[] = {
+ 0x11, 0xf2, 0x78, 0xb8, 0x64, 0x4f, 0x52, 0xa0, 0xa4, 0x07, 0x41, 0x64,
+ 0x09, 0x7d, 0xe4, 0x58,
+};
+static const unsigned char kat267_persstr[] = {0};
+static const unsigned char kat267_addin0[] = {
+ 0x37, 0xc0, 0x65, 0x5e, 0xa6, 0xc2, 0x0e, 0xc4, 0x3c, 0x58, 0x85, 0x5b,
+ 0xe3, 0x14, 0xaf, 0xde, 0x29, 0x32, 0x4a, 0x81, 0x86, 0xae, 0x9c, 0x08,
+ 0xc8, 0xad, 0x4d, 0x85, 0x70, 0x08, 0x1a, 0x72,
+};
+static const unsigned char kat267_addin1[] = {
+ 0xc3, 0x9b, 0xc5, 0x60, 0xc7, 0x1a, 0xa5, 0xcd, 0xf2, 0xa0, 0xec, 0xa0,
+ 0xff, 0xa4, 0xfb, 0x56, 0x2c, 0xab, 0x13, 0x79, 0xbc, 0x90, 0x43, 0x25,
+ 0x9e, 0xf8, 0x93, 0x44, 0x36, 0x14, 0x23, 0x23,
+};
+static const unsigned char kat267_retbits[] = {
+ 0x7a, 0xf8, 0xcd, 0xc7, 0x05, 0xcb, 0x06, 0xc4, 0x08, 0xf7, 0x89, 0xb5,
+ 0xa0, 0xd6, 0x77, 0xe6, 0x6f, 0xb3, 0x2b, 0xc7, 0xa5, 0x78, 0xc4, 0xcd,
+ 0x6d, 0xe3, 0x42, 0x02, 0xf1, 0x7a, 0x88, 0xd9, 0x1a, 0x23, 0x85, 0x74,
+ 0x66, 0x64, 0x49, 0xc4, 0x05, 0x9f, 0x2b, 0xdf, 0x59, 0x35, 0x57, 0xfb,
+ 0x78, 0xd0, 0x77, 0x95, 0x37, 0x16, 0x46, 0xf0, 0x3c, 0xf3, 0x85, 0xf3,
+ 0x05, 0x8b, 0x1d, 0x78,
+};
+static const struct drbg_kat_no_reseed kat267_t = {
+ 11, kat267_entropyin, kat267_nonce, kat267_persstr,
+ kat267_addin0, kat267_addin1, kat267_retbits
+};
+static const struct drbg_kat kat267 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat267_t
+};
+
+static const unsigned char kat268_entropyin[] = {
+ 0x8b, 0xd5, 0xa5, 0x95, 0x22, 0x83, 0x77, 0x67, 0xfb, 0xc7, 0x83, 0xca,
+ 0xa9, 0xa7, 0xfe, 0xec, 0x68, 0xdf, 0x13, 0x56, 0x16, 0xe9, 0x88, 0x78,
+};
+static const unsigned char kat268_nonce[] = {
+ 0x14, 0xaa, 0xa4, 0x14, 0xad, 0xe4, 0x8e, 0x33, 0xac, 0x5b, 0x44, 0x3b,
+ 0x94, 0xa9, 0xf1, 0xac,
+};
+static const unsigned char kat268_persstr[] = {0};
+static const unsigned char kat268_addin0[] = {
+ 0x23, 0x3b, 0x1e, 0x2c, 0x23, 0x0c, 0xea, 0xba, 0xf8, 0x8e, 0xc1, 0xba,
+ 0x30, 0xef, 0xb7, 0x2e, 0x35, 0xcb, 0xf9, 0x9f, 0xdc, 0x92, 0x59, 0x51,
+ 0x40, 0x19, 0xbc, 0x96, 0xf6, 0xee, 0xcb, 0xde,
+};
+static const unsigned char kat268_addin1[] = {
+ 0xf8, 0xb1, 0x99, 0x22, 0xb8, 0x89, 0x61, 0x75, 0xad, 0xa1, 0x15, 0x24,
+ 0xb9, 0x8f, 0xff, 0xc1, 0x15, 0x9f, 0x14, 0x56, 0xdd, 0x7a, 0xa6, 0x57,
+ 0xb7, 0x54, 0x7f, 0x0b, 0xf9, 0xe4, 0xfd, 0xe4,
+};
+static const unsigned char kat268_retbits[] = {
+ 0x49, 0x4a, 0x5d, 0x31, 0xa5, 0x8a, 0x50, 0xf5, 0x06, 0x82, 0x52, 0x79,
+ 0xb2, 0x48, 0x83, 0x59, 0x14, 0x08, 0x1d, 0xdc, 0xcd, 0x63, 0x80, 0x67,
+ 0xdf, 0x0e, 0x2d, 0x3c, 0x62, 0x00, 0x8a, 0x4f, 0x10, 0x8c, 0x81, 0x91,
+ 0x59, 0x00, 0x0b, 0xc0, 0xd0, 0xc7, 0x51, 0x5d, 0xbe, 0x48, 0x8c, 0x3d,
+ 0xc6, 0xca, 0x3f, 0x28, 0x78, 0xca, 0x58, 0x96, 0xb1, 0x33, 0x50, 0x98,
+ 0x5e, 0xd7, 0x60, 0x2d,
+};
+static const struct drbg_kat_no_reseed kat268_t = {
+ 12, kat268_entropyin, kat268_nonce, kat268_persstr,
+ kat268_addin0, kat268_addin1, kat268_retbits
+};
+static const struct drbg_kat kat268 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat268_t
+};
+
+static const unsigned char kat269_entropyin[] = {
+ 0x97, 0xfe, 0xf1, 0xc3, 0x6e, 0x3c, 0xab, 0x72, 0xd5, 0x04, 0x3e, 0x41,
+ 0x6c, 0xb1, 0x57, 0x06, 0xd6, 0xd7, 0x6e, 0xc5, 0x01, 0x64, 0x51, 0xe2,
+};
+static const unsigned char kat269_nonce[] = {
+ 0xaa, 0x86, 0x57, 0x62, 0xb8, 0x01, 0x65, 0xe2, 0x39, 0xed, 0x79, 0x51,
+ 0xb0, 0x56, 0xc7, 0x70,
+};
+static const unsigned char kat269_persstr[] = {0};
+static const unsigned char kat269_addin0[] = {
+ 0x41, 0x89, 0x07, 0xa2, 0x53, 0x32, 0xb9, 0xd2, 0x42, 0xbb, 0x18, 0x77,
+ 0x5f, 0xdc, 0xb0, 0xb4, 0xf2, 0xec, 0x98, 0x11, 0x75, 0x0e, 0x05, 0x1f,
+ 0x96, 0xe3, 0xd6, 0xd2, 0x52, 0xeb, 0x87, 0xde,
+};
+static const unsigned char kat269_addin1[] = {
+ 0x57, 0x4b, 0x64, 0x27, 0x93, 0x94, 0x23, 0x4f, 0xe5, 0x9a, 0x14, 0xcb,
+ 0xc9, 0x40, 0x4a, 0x0b, 0xc1, 0x46, 0x9e, 0x6d, 0x18, 0x1e, 0xeb, 0x4e,
+ 0x74, 0x14, 0xa4, 0xa6, 0xde, 0x0b, 0xab, 0x7d,
+};
+static const unsigned char kat269_retbits[] = {
+ 0x8c, 0x6b, 0x47, 0x5b, 0xac, 0xf9, 0x33, 0xc0, 0xf7, 0xa0, 0x7c, 0x88,
+ 0xa5, 0x28, 0xfe, 0xef, 0xc9, 0x52, 0xb9, 0x55, 0x31, 0x05, 0xb2, 0x0a,
+ 0x17, 0xe3, 0xba, 0xd3, 0x93, 0x9e, 0x94, 0x32, 0x0f, 0xa8, 0xe2, 0x80,
+ 0xfc, 0x54, 0xb4, 0x85, 0xd4, 0xcf, 0xe7, 0x94, 0x08, 0x1c, 0x05, 0x4e,
+ 0xe8, 0xe7, 0xc2, 0x4c, 0x65, 0xf6, 0xbb, 0x95, 0xd8, 0x82, 0x72, 0x87,
+ 0x4d, 0x2a, 0x04, 0x2f,
+};
+static const struct drbg_kat_no_reseed kat269_t = {
+ 13, kat269_entropyin, kat269_nonce, kat269_persstr,
+ kat269_addin0, kat269_addin1, kat269_retbits
+};
+static const struct drbg_kat kat269 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat269_t
+};
+
+static const unsigned char kat270_entropyin[] = {
+ 0x54, 0x32, 0xa3, 0x40, 0x20, 0x56, 0x25, 0xc2, 0x0a, 0xfd, 0xd4, 0x2e,
+ 0xcd, 0x54, 0xe8, 0xd6, 0xef, 0x80, 0xb2, 0x9c, 0x73, 0xf6, 0x2d, 0xba,
+};
+static const unsigned char kat270_nonce[] = {
+ 0xb8, 0xfb, 0x44, 0x40, 0xd8, 0x95, 0x54, 0x99, 0xcd, 0xad, 0x97, 0xb9,
+ 0xb0, 0xe3, 0x3f, 0x63,
+};
+static const unsigned char kat270_persstr[] = {0};
+static const unsigned char kat270_addin0[] = {
+ 0x9a, 0x53, 0x54, 0x10, 0x62, 0x6b, 0x87, 0x2d, 0xa5, 0x06, 0x43, 0x19,
+ 0xdb, 0x92, 0x1d, 0x9f, 0xa0, 0x15, 0xa6, 0x75, 0x48, 0xf1, 0x2e, 0x8a,
+ 0xf2, 0xb1, 0x55, 0x13, 0x0a, 0xb6, 0x32, 0xd0,
+};
+static const unsigned char kat270_addin1[] = {
+ 0x3a, 0x12, 0x51, 0x9f, 0x49, 0x7a, 0x8c, 0x3a, 0xf0, 0xf3, 0x5f, 0xdf,
+ 0xe4, 0xaa, 0x47, 0xfe, 0xf0, 0x39, 0x56, 0x3c, 0x03, 0x8c, 0x52, 0xaa,
+ 0x4e, 0xe4, 0xce, 0xcd, 0x05, 0x5f, 0x1b, 0xb6,
+};
+static const unsigned char kat270_retbits[] = {
+ 0x57, 0x01, 0xe2, 0xee, 0x57, 0x46, 0x84, 0xc8, 0x55, 0xd4, 0x03, 0xe5,
+ 0xa6, 0x1b, 0x13, 0x2c, 0x21, 0x1e, 0x64, 0x6f, 0xf5, 0xed, 0x41, 0xcf,
+ 0xcb, 0x81, 0xf7, 0x9b, 0xdd, 0x86, 0x7e, 0xf5, 0xcd, 0xa7, 0xf0, 0xba,
+ 0x57, 0x99, 0xf9, 0x3c, 0x07, 0xf4, 0xb5, 0x58, 0x8c, 0x34, 0xd4, 0x33,
+ 0xdf, 0x93, 0x35, 0x01, 0x0f, 0xb6, 0x01, 0x10, 0x91, 0x17, 0x7f, 0x5e,
+ 0x0a, 0x7c, 0xed, 0xe7,
+};
+static const struct drbg_kat_no_reseed kat270_t = {
+ 14, kat270_entropyin, kat270_nonce, kat270_persstr,
+ kat270_addin0, kat270_addin1, kat270_retbits
+};
+static const struct drbg_kat kat270 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat270_t
+};
+
+static const unsigned char kat271_entropyin[] = {
+ 0xeb, 0x45, 0x53, 0xf7, 0x14, 0x1b, 0xc1, 0x08, 0x82, 0xf0, 0xa3, 0x74,
+ 0x17, 0x80, 0xa4, 0x2d, 0xf8, 0xbc, 0x38, 0xa7, 0x12, 0x1d, 0x3b, 0x7e,
+};
+static const unsigned char kat271_nonce[] = {
+ 0x6f, 0x34, 0x7f, 0x9c, 0x1d, 0xe8, 0x4f, 0xd5, 0x34, 0x16, 0x25, 0xae,
+ 0x8d, 0x6b, 0xf5, 0x0c,
+};
+static const unsigned char kat271_persstr[] = {
+ 0x5e, 0x2e, 0x73, 0xb8, 0x6c, 0xa2, 0xf3, 0x15, 0x0d, 0x53, 0xd2, 0x3d,
+ 0x59, 0x0a, 0xcb, 0xee, 0xda, 0xaf, 0x91, 0x63, 0x8b, 0xdc, 0x3f, 0x9d,
+ 0x58, 0x8e, 0x94, 0x5a, 0xf4, 0xbb, 0x6e, 0xa2,
+};
+static const unsigned char kat271_addin0[] = {0};
+static const unsigned char kat271_addin1[] = {0};
+static const unsigned char kat271_retbits[] = {
+ 0xa1, 0xde, 0xb9, 0xa5, 0xaa, 0xd6, 0x08, 0xa5, 0x87, 0xd6, 0x1c, 0xe5,
+ 0xe0, 0xd7, 0xc7, 0xdd, 0x44, 0x9b, 0x8c, 0x87, 0x89, 0x83, 0x54, 0xad,
+ 0x1a, 0xdd, 0x6e, 0x05, 0x85, 0x38, 0x73, 0xd2, 0x79, 0xeb, 0xe4, 0x13,
+ 0x2f, 0xc2, 0x36, 0xa4, 0x2d, 0x8f, 0xf0, 0xdc, 0x3a, 0xce, 0x95, 0xd2,
+ 0xcd, 0xf9, 0xd0, 0xb0, 0x57, 0x11, 0x7c, 0xb1, 0x19, 0xee, 0x75, 0x50,
+ 0xce, 0x03, 0x08, 0x5c,
+};
+static const struct drbg_kat_no_reseed kat271_t = {
+ 0, kat271_entropyin, kat271_nonce, kat271_persstr,
+ kat271_addin0, kat271_addin1, kat271_retbits
+};
+static const struct drbg_kat kat271 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat271_t
+};
+
+static const unsigned char kat272_entropyin[] = {
+ 0xf9, 0xce, 0x2d, 0x06, 0x49, 0xbc, 0x99, 0x28, 0x8a, 0xf1, 0x5f, 0xdf,
+ 0xbc, 0x3d, 0xb8, 0x89, 0x56, 0xd9, 0x6c, 0x84, 0xc0, 0xd7, 0xe5, 0xd2,
+};
+static const unsigned char kat272_nonce[] = {
+ 0x8c, 0xf0, 0x0c, 0x63, 0x7a, 0x07, 0x9a, 0x98, 0x36, 0x2e, 0xad, 0x51,
+ 0x14, 0x9e, 0x55, 0x67,
+};
+static const unsigned char kat272_persstr[] = {
+ 0xb2, 0x44, 0xd6, 0x8a, 0x9b, 0x30, 0xf3, 0xac, 0x88, 0x04, 0x0d, 0x64,
+ 0x58, 0xa6, 0x25, 0x08, 0x00, 0x20, 0x53, 0x53, 0x41, 0x53, 0x3b, 0xe2,
+ 0x70, 0xe8, 0x94, 0x00, 0x2c, 0x07, 0x69, 0x7d,
+};
+static const unsigned char kat272_addin0[] = {0};
+static const unsigned char kat272_addin1[] = {0};
+static const unsigned char kat272_retbits[] = {
+ 0x28, 0x51, 0x19, 0x2f, 0xd3, 0xb3, 0x73, 0x51, 0xd0, 0x51, 0x10, 0x97,
+ 0x43, 0x88, 0xec, 0xe0, 0x11, 0xd1, 0x0e, 0x7b, 0x9d, 0x38, 0x01, 0x40,
+ 0x29, 0x10, 0x48, 0xce, 0x36, 0x72, 0xc1, 0x34, 0xbc, 0xb4, 0xa0, 0xcd,
+ 0x07, 0x4f, 0xff, 0xf3, 0x89, 0xa0, 0x2a, 0xf5, 0x9c, 0x52, 0x26, 0xbe,
+ 0x02, 0x53, 0xe7, 0xb7, 0x40, 0x0e, 0x63, 0x44, 0xb1, 0xa0, 0xd0, 0xd1,
+ 0x45, 0xff, 0x36, 0x6c,
+};
+static const struct drbg_kat_no_reseed kat272_t = {
+ 1, kat272_entropyin, kat272_nonce, kat272_persstr,
+ kat272_addin0, kat272_addin1, kat272_retbits
+};
+static const struct drbg_kat kat272 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat272_t
+};
+
+static const unsigned char kat273_entropyin[] = {
+ 0x61, 0x8a, 0xb7, 0xda, 0x12, 0xa5, 0x83, 0x9b, 0x4d, 0x80, 0x8b, 0xc2,
+ 0x7c, 0xd5, 0xd3, 0x25, 0x00, 0x00, 0x78, 0x14, 0xa5, 0x4e, 0x5d, 0xe0,
+};
+static const unsigned char kat273_nonce[] = {
+ 0xc3, 0xef, 0xab, 0x85, 0x7f, 0x1f, 0xeb, 0x04, 0x9e, 0xe0, 0x60, 0xba,
+ 0x76, 0x0f, 0x17, 0xe0,
+};
+static const unsigned char kat273_persstr[] = {
+ 0x33, 0xc6, 0xaf, 0x4e, 0x26, 0x4f, 0x0d, 0x19, 0xc3, 0x61, 0xec, 0xec,
+ 0xf8, 0x9b, 0xd7, 0x86, 0x9f, 0xb0, 0xaf, 0x7f, 0x9b, 0x39, 0x15, 0x9c,
+ 0x0f, 0xab, 0xe0, 0x81, 0x14, 0x31, 0xe6, 0x2c,
+};
+static const unsigned char kat273_addin0[] = {0};
+static const unsigned char kat273_addin1[] = {0};
+static const unsigned char kat273_retbits[] = {
+ 0x1d, 0x74, 0xba, 0x44, 0xea, 0xdb, 0xae, 0x17, 0x6a, 0x0a, 0x87, 0x06,
+ 0x22, 0x17, 0x5e, 0x4b, 0x0e, 0xe4, 0xe4, 0x35, 0x2f, 0x8c, 0x2e, 0xe1,
+ 0x95, 0x53, 0xdc, 0xb2, 0x10, 0x0f, 0x8e, 0x2f, 0x13, 0x2d, 0xfd, 0x4f,
+ 0x4c, 0xad, 0x5e, 0x01, 0xe3, 0xb7, 0x02, 0x22, 0x89, 0x02, 0xdc, 0xbe,
+ 0xe5, 0xaf, 0xd5, 0x39, 0x09, 0x39, 0xc3, 0x61, 0x88, 0x2a, 0x0b, 0x67,
+ 0x9d, 0xc2, 0xcd, 0x69,
+};
+static const struct drbg_kat_no_reseed kat273_t = {
+ 2, kat273_entropyin, kat273_nonce, kat273_persstr,
+ kat273_addin0, kat273_addin1, kat273_retbits
+};
+static const struct drbg_kat kat273 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat273_t
+};
+
+static const unsigned char kat274_entropyin[] = {
+ 0x7d, 0xf2, 0xa3, 0xc0, 0xbd, 0x95, 0xc6, 0xba, 0x88, 0x73, 0xd6, 0xa5,
+ 0xad, 0x5d, 0xbf, 0x0e, 0x06, 0x9d, 0xa3, 0xcd, 0xe1, 0xe3, 0x94, 0x3d,
+};
+static const unsigned char kat274_nonce[] = {
+ 0xfa, 0x28, 0x22, 0x4a, 0x89, 0x49, 0x13, 0x4e, 0x28, 0x50, 0xc5, 0x2a,
+ 0x28, 0x57, 0x6f, 0x65,
+};
+static const unsigned char kat274_persstr[] = {
+ 0xe2, 0xde, 0xa1, 0x5d, 0x8d, 0x3a, 0xee, 0xd8, 0x7f, 0xf4, 0x5e, 0x79,
+ 0xa4, 0xa7, 0x60, 0xa8, 0x96, 0x83, 0xdc, 0xf8, 0x2c, 0xfe, 0x35, 0x64,
+ 0x67, 0xaf, 0xfc, 0x44, 0x59, 0x2e, 0x2b, 0xf5,
+};
+static const unsigned char kat274_addin0[] = {0};
+static const unsigned char kat274_addin1[] = {0};
+static const unsigned char kat274_retbits[] = {
+ 0x3c, 0x48, 0x82, 0x3f, 0x45, 0x28, 0xb3, 0x96, 0xc8, 0x66, 0x74, 0x07,
+ 0xcb, 0x88, 0x46, 0xa2, 0x29, 0x52, 0x7d, 0x95, 0x89, 0xf1, 0xce, 0xb2,
+ 0xfe, 0xe6, 0x40, 0xa8, 0x3f, 0x93, 0x32, 0x71, 0x07, 0xc4, 0xc9, 0x91,
+ 0xc2, 0xc8, 0xba, 0x3e, 0xe8, 0x18, 0x53, 0x14, 0x0a, 0x34, 0x8c, 0x1c,
+ 0xa5, 0xce, 0x26, 0x4e, 0xf7, 0x5d, 0xb4, 0x95, 0x67, 0x94, 0x26, 0x8c,
+ 0x55, 0x38, 0x10, 0x1f,
+};
+static const struct drbg_kat_no_reseed kat274_t = {
+ 3, kat274_entropyin, kat274_nonce, kat274_persstr,
+ kat274_addin0, kat274_addin1, kat274_retbits
+};
+static const struct drbg_kat kat274 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat274_t
+};
+
+static const unsigned char kat275_entropyin[] = {
+ 0x2d, 0x8a, 0x1a, 0x3a, 0x6a, 0x77, 0xe3, 0xcd, 0x46, 0x40, 0xa0, 0x78,
+ 0x0f, 0x59, 0xcb, 0x97, 0x5f, 0x81, 0xc2, 0x73, 0x3a, 0xd7, 0xf4, 0x98,
+};
+static const unsigned char kat275_nonce[] = {
+ 0x50, 0xfc, 0x6b, 0xcc, 0x7e, 0xcb, 0xdb, 0x3d, 0x57, 0xbe, 0xab, 0x7e,
+ 0x28, 0xa4, 0x9b, 0xc0,
+};
+static const unsigned char kat275_persstr[] = {
+ 0x95, 0xf9, 0xc3, 0x56, 0x3b, 0x53, 0x5e, 0x69, 0xa4, 0x91, 0x34, 0xc3,
+ 0x36, 0xcb, 0x80, 0xfa, 0x9a, 0xd9, 0x51, 0x08, 0xc7, 0x56, 0xea, 0x26,
+ 0x1f, 0x5b, 0x3a, 0xe9, 0xcb, 0xaf, 0xd4, 0x1b,
+};
+static const unsigned char kat275_addin0[] = {0};
+static const unsigned char kat275_addin1[] = {0};
+static const unsigned char kat275_retbits[] = {
+ 0x86, 0x87, 0x1f, 0x9c, 0xb6, 0xb4, 0xed, 0x25, 0x2b, 0xd1, 0xe8, 0x68,
+ 0xc8, 0x0a, 0x26, 0x3e, 0x02, 0x5b, 0xba, 0xe2, 0x28, 0x5c, 0xca, 0x59,
+ 0xc6, 0x29, 0x98, 0x27, 0x32, 0xa5, 0x06, 0x3e, 0x5c, 0xbd, 0xa2, 0x76,
+ 0xf2, 0x82, 0xfd, 0xaa, 0x90, 0xae, 0xf8, 0xec, 0x6d, 0xd3, 0x1d, 0x32,
+ 0xb7, 0x04, 0xde, 0x50, 0x28, 0xdd, 0xd3, 0x2e, 0x22, 0xde, 0x36, 0x80,
+ 0x08, 0x6f, 0x9a, 0x89,
+};
+static const struct drbg_kat_no_reseed kat275_t = {
+ 4, kat275_entropyin, kat275_nonce, kat275_persstr,
+ kat275_addin0, kat275_addin1, kat275_retbits
+};
+static const struct drbg_kat kat275 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat275_t
+};
+
+static const unsigned char kat276_entropyin[] = {
+ 0x13, 0x35, 0x24, 0xed, 0xab, 0xd5, 0xa7, 0xf7, 0x85, 0x8c, 0x13, 0xf2,
+ 0x79, 0x53, 0xe9, 0x87, 0x28, 0x3c, 0xb1, 0x72, 0xa2, 0xc3, 0x7f, 0x17,
+};
+static const unsigned char kat276_nonce[] = {
+ 0x5e, 0x6c, 0xb7, 0xf7, 0xc9, 0x8e, 0xe1, 0x3f, 0x46, 0x7d, 0x6b, 0xda,
+ 0x28, 0x8b, 0x57, 0x7e,
+};
+static const unsigned char kat276_persstr[] = {
+ 0x67, 0xd3, 0x91, 0x60, 0xcc, 0xee, 0x30, 0x40, 0xdb, 0x78, 0x20, 0xa3,
+ 0x7a, 0xef, 0xb7, 0xd4, 0xa1, 0x0f, 0x7d, 0xcd, 0xf3, 0xbc, 0xa6, 0x69,
+ 0xfe, 0x23, 0x5d, 0xb6, 0x3a, 0xb2, 0x47, 0x60,
+};
+static const unsigned char kat276_addin0[] = {0};
+static const unsigned char kat276_addin1[] = {0};
+static const unsigned char kat276_retbits[] = {
+ 0x2d, 0x13, 0xee, 0x8b, 0x73, 0xd5, 0x18, 0xb0, 0xaf, 0xbf, 0x4e, 0x1e,
+ 0xa6, 0xf6, 0x32, 0x00, 0x6b, 0xa5, 0x6e, 0x3f, 0x4e, 0x24, 0xa2, 0x1f,
+ 0x68, 0x77, 0xed, 0x0f, 0x79, 0xc3, 0xec, 0x7f, 0xfd, 0x19, 0xce, 0x81,
+ 0xbb, 0x17, 0x0b, 0x3a, 0xa9, 0x0d, 0xf6, 0x97, 0xf5, 0xcd, 0x98, 0x72,
+ 0xcc, 0xb3, 0xd1, 0xe3, 0x38, 0x94, 0xdd, 0x16, 0xc6, 0xf5, 0xcf, 0x2f,
+ 0xb1, 0x07, 0xae, 0xdd,
+};
+static const struct drbg_kat_no_reseed kat276_t = {
+ 5, kat276_entropyin, kat276_nonce, kat276_persstr,
+ kat276_addin0, kat276_addin1, kat276_retbits
+};
+static const struct drbg_kat kat276 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat276_t
+};
+
+static const unsigned char kat277_entropyin[] = {
+ 0xf2, 0x97, 0x47, 0x4b, 0x5b, 0x7e, 0x68, 0xd5, 0xae, 0xa9, 0x48, 0xf7,
+ 0x51, 0xbc, 0x89, 0x9b, 0x36, 0xc2, 0x12, 0x63, 0x6f, 0x28, 0x8b, 0x84,
+};
+static const unsigned char kat277_nonce[] = {
+ 0xb8, 0xa6, 0x0d, 0xd7, 0x26, 0xa0, 0x3f, 0xd0, 0xd2, 0xbf, 0x19, 0x5d,
+ 0x2c, 0xb0, 0x9a, 0x03,
+};
+static const unsigned char kat277_persstr[] = {
+ 0x8e, 0x32, 0xdb, 0x43, 0x66, 0x90, 0x7a, 0xbb, 0x98, 0xc0, 0xe0, 0x9c,
+ 0x53, 0x60, 0xc5, 0x6f, 0xdb, 0x6f, 0x48, 0x3c, 0x84, 0xe6, 0x06, 0xf0,
+ 0x7f, 0x5d, 0x1d, 0x45, 0xa0, 0x93, 0x46, 0xca,
+};
+static const unsigned char kat277_addin0[] = {0};
+static const unsigned char kat277_addin1[] = {0};
+static const unsigned char kat277_retbits[] = {
+ 0x92, 0x08, 0x90, 0x94, 0xa8, 0x9f, 0xb5, 0x32, 0xf0, 0x68, 0xa8, 0x63,
+ 0x0f, 0xa9, 0x47, 0xb8, 0xf8, 0x6e, 0xee, 0x22, 0xd5, 0x6f, 0x22, 0xa5,
+ 0x14, 0xf8, 0xa6, 0x87, 0x1a, 0xa4, 0xc8, 0x08, 0xc8, 0xc9, 0xf4, 0x7c,
+ 0x13, 0x54, 0xf1, 0x51, 0xc6, 0x8b, 0xc1, 0x30, 0xc8, 0xe8, 0x5f, 0xe4,
+ 0x7e, 0x8b, 0xea, 0xc8, 0xcb, 0x34, 0x6b, 0x8e, 0xe2, 0xa7, 0xe0, 0x01,
+ 0x59, 0xa0, 0xea, 0x80,
+};
+static const struct drbg_kat_no_reseed kat277_t = {
+ 6, kat277_entropyin, kat277_nonce, kat277_persstr,
+ kat277_addin0, kat277_addin1, kat277_retbits
+};
+static const struct drbg_kat kat277 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat277_t
+};
+
+static const unsigned char kat278_entropyin[] = {
+ 0x70, 0x50, 0x8f, 0x60, 0x35, 0xcd, 0xc4, 0x1a, 0xf6, 0x32, 0x52, 0xaf,
+ 0x23, 0xbe, 0x67, 0xaf, 0x4a, 0x46, 0x8f, 0x45, 0x53, 0x31, 0x10, 0xc8,
+};
+static const unsigned char kat278_nonce[] = {
+ 0x77, 0xc2, 0xbc, 0x1a, 0x84, 0xf4, 0xf9, 0x91, 0x79, 0x6f, 0x9c, 0x07,
+ 0x09, 0x2a, 0xd5, 0xc7,
+};
+static const unsigned char kat278_persstr[] = {
+ 0x47, 0x73, 0x82, 0xb2, 0xf6, 0xde, 0x44, 0xe2, 0xf0, 0x9a, 0x1d, 0x13,
+ 0x5a, 0x35, 0xf1, 0xcc, 0xb0, 0x28, 0x51, 0xf9, 0xe1, 0xf0, 0x03, 0xf9,
+ 0x8e, 0x02, 0x20, 0x43, 0x45, 0x8f, 0x5b, 0x66,
+};
+static const unsigned char kat278_addin0[] = {0};
+static const unsigned char kat278_addin1[] = {0};
+static const unsigned char kat278_retbits[] = {
+ 0xfc, 0x63, 0x4f, 0xd4, 0xdc, 0xa7, 0xfc, 0xd6, 0x6c, 0x38, 0x92, 0x65,
+ 0x18, 0xa8, 0xd6, 0xfd, 0xee, 0xca, 0x07, 0xf8, 0x7e, 0x9b, 0x9f, 0xe5,
+ 0x40, 0x5e, 0xfd, 0x9a, 0xf9, 0xc9, 0x41, 0xcb, 0xf1, 0x56, 0xbc, 0x5b,
+ 0x09, 0xa5, 0x3f, 0x5c, 0xc8, 0xb5, 0xbf, 0x94, 0x37, 0xe6, 0x76, 0x90,
+ 0x5a, 0xfa, 0xee, 0x58, 0x02, 0x7b, 0xc2, 0x5a, 0xd4, 0x6c, 0x32, 0xab,
+ 0xbe, 0xa0, 0x5c, 0x85,
+};
+static const struct drbg_kat_no_reseed kat278_t = {
+ 7, kat278_entropyin, kat278_nonce, kat278_persstr,
+ kat278_addin0, kat278_addin1, kat278_retbits
+};
+static const struct drbg_kat kat278 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat278_t
+};
+
+static const unsigned char kat279_entropyin[] = {
+ 0x2e, 0x5d, 0x95, 0x68, 0x7b, 0x0e, 0x9b, 0x77, 0x7f, 0x13, 0x94, 0xf1,
+ 0x86, 0x63, 0xe7, 0x98, 0xed, 0xbd, 0x24, 0xcf, 0x0c, 0x3b, 0x94, 0x58,
+};
+static const unsigned char kat279_nonce[] = {
+ 0x02, 0x05, 0x5f, 0xa3, 0xeb, 0x3d, 0x12, 0x04, 0xc2, 0x53, 0xeb, 0xf3,
+ 0x5e, 0x31, 0x43, 0xbd,
+};
+static const unsigned char kat279_persstr[] = {
+ 0x17, 0x56, 0x63, 0x5c, 0x33, 0xf8, 0x68, 0x6b, 0x45, 0x8d, 0xaa, 0xec,
+ 0x9b, 0x9b, 0x44, 0x60, 0xb8, 0xa1, 0xd7, 0x5a, 0xa2, 0xe3, 0x00, 0xe7,
+ 0x55, 0x57, 0x41, 0x12, 0x49, 0xab, 0xc0, 0x0f,
+};
+static const unsigned char kat279_addin0[] = {0};
+static const unsigned char kat279_addin1[] = {0};
+static const unsigned char kat279_retbits[] = {
+ 0x91, 0xc7, 0xe7, 0x18, 0x3e, 0xed, 0x6b, 0xa6, 0x64, 0x96, 0x67, 0x8b,
+ 0x9e, 0xe8, 0xec, 0x8b, 0x86, 0xde, 0x02, 0xfd, 0x7c, 0x6c, 0xb9, 0x77,
+ 0x48, 0x2f, 0x0d, 0xf4, 0x84, 0x9a, 0x72, 0x85, 0x9a, 0x80, 0x4d, 0x26,
+ 0x86, 0x68, 0xa8, 0xf4, 0xc9, 0x49, 0x34, 0x41, 0x3a, 0x94, 0xa2, 0xff,
+ 0x0d, 0x9d, 0x39, 0xb5, 0x18, 0x86, 0x07, 0xcc, 0x75, 0xa0, 0x79, 0xa7,
+ 0xe4, 0x84, 0x61, 0x69,
+};
+static const struct drbg_kat_no_reseed kat279_t = {
+ 8, kat279_entropyin, kat279_nonce, kat279_persstr,
+ kat279_addin0, kat279_addin1, kat279_retbits
+};
+static const struct drbg_kat kat279 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat279_t
+};
+
+static const unsigned char kat280_entropyin[] = {
+ 0x2e, 0x99, 0x70, 0x3a, 0x2b, 0xf1, 0x95, 0xa1, 0x82, 0xd2, 0x21, 0xce,
+ 0x79, 0xbd, 0xbd, 0xfc, 0xa4, 0xdb, 0x53, 0xe1, 0x6e, 0x75, 0x7a, 0x5b,
+};
+static const unsigned char kat280_nonce[] = {
+ 0x4b, 0xe5, 0x2f, 0xba, 0x5d, 0x1f, 0xbc, 0x7e, 0xa7, 0x7b, 0x4a, 0xe3,
+ 0x0d, 0x16, 0xe0, 0xe9,
+};
+static const unsigned char kat280_persstr[] = {
+ 0x8a, 0xf3, 0x46, 0xe5, 0x2f, 0x8c, 0x9b, 0xe6, 0x8a, 0x58, 0xf4, 0x0d,
+ 0x50, 0x05, 0x70, 0x04, 0xb7, 0xd7, 0x58, 0x07, 0xaf, 0x92, 0x27, 0x32,
+ 0x84, 0x36, 0x96, 0xc1, 0x82, 0x90, 0xd5, 0x89,
+};
+static const unsigned char kat280_addin0[] = {0};
+static const unsigned char kat280_addin1[] = {0};
+static const unsigned char kat280_retbits[] = {
+ 0x23, 0x35, 0x2a, 0x39, 0x99, 0x4a, 0x03, 0xf4, 0x25, 0x06, 0xc3, 0x4d,
+ 0xdb, 0x8e, 0x0d, 0x19, 0x12, 0x7e, 0xbb, 0xfe, 0x82, 0x39, 0xc3, 0x4a,
+ 0x27, 0x11, 0xcd, 0xf1, 0xb1, 0xbe, 0xb1, 0xcf, 0x75, 0x40, 0x2a, 0x61,
+ 0x3c, 0x85, 0x31, 0xd1, 0xdc, 0xce, 0xac, 0xdb, 0x49, 0x00, 0x73, 0xc7,
+ 0xa5, 0x6f, 0x0a, 0xff, 0xb3, 0xf1, 0x1f, 0x26, 0xe8, 0xc1, 0x90, 0x1f,
+ 0xaf, 0x3d, 0xfb, 0x2f,
+};
+static const struct drbg_kat_no_reseed kat280_t = {
+ 9, kat280_entropyin, kat280_nonce, kat280_persstr,
+ kat280_addin0, kat280_addin1, kat280_retbits
+};
+static const struct drbg_kat kat280 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat280_t
+};
+
+static const unsigned char kat281_entropyin[] = {
+ 0x23, 0x93, 0x1f, 0x7e, 0x10, 0xad, 0x6e, 0x55, 0x3a, 0x28, 0x54, 0x81,
+ 0xac, 0xae, 0x7c, 0xfc, 0xb3, 0x2f, 0x64, 0x4e, 0x08, 0xc5, 0xb0, 0x09,
+};
+static const unsigned char kat281_nonce[] = {
+ 0x7b, 0xc2, 0xb5, 0x7e, 0xde, 0x91, 0x35, 0xb4, 0x19, 0x2c, 0x51, 0x81,
+ 0xf9, 0x08, 0x08, 0xc6,
+};
+static const unsigned char kat281_persstr[] = {
+ 0x6e, 0xcd, 0x84, 0xef, 0x10, 0xb4, 0xe8, 0x62, 0xbc, 0x34, 0x47, 0x86,
+ 0x7b, 0x3e, 0x80, 0x88, 0xe9, 0xdb, 0x4c, 0x5b, 0xe5, 0x38, 0x1d, 0xbc,
+ 0xb6, 0x05, 0x14, 0x05, 0x13, 0x90, 0xbf, 0xaf,
+};
+static const unsigned char kat281_addin0[] = {0};
+static const unsigned char kat281_addin1[] = {0};
+static const unsigned char kat281_retbits[] = {
+ 0xa5, 0xc1, 0x15, 0xbf, 0x8f, 0x95, 0x0b, 0x5d, 0x18, 0x71, 0x8a, 0x9a,
+ 0x22, 0x69, 0x75, 0x9e, 0x78, 0xe4, 0xfb, 0x79, 0x89, 0x37, 0xaf, 0xd0,
+ 0x6d, 0xaf, 0xc9, 0xea, 0xc9, 0xf5, 0x72, 0x60, 0x27, 0xd6, 0x39, 0xde,
+ 0x08, 0xd0, 0xb7, 0xb0, 0x08, 0x53, 0x2f, 0x70, 0xbc, 0x48, 0xa8, 0xf8,
+ 0x8f, 0x63, 0x7e, 0x67, 0xca, 0x7f, 0xb3, 0xfc, 0xe5, 0x19, 0x6e, 0x99,
+ 0x3f, 0x6d, 0x3a, 0x25,
+};
+static const struct drbg_kat_no_reseed kat281_t = {
+ 10, kat281_entropyin, kat281_nonce, kat281_persstr,
+ kat281_addin0, kat281_addin1, kat281_retbits
+};
+static const struct drbg_kat kat281 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat281_t
+};
+
+static const unsigned char kat282_entropyin[] = {
+ 0x61, 0x96, 0x42, 0xe8, 0x63, 0xa8, 0xf8, 0xd2, 0xf7, 0xdb, 0x9c, 0x2e,
+ 0xe5, 0x6c, 0x13, 0xa2, 0xf0, 0x39, 0x59, 0x5c, 0x29, 0xed, 0x74, 0x96,
+};
+static const unsigned char kat282_nonce[] = {
+ 0x9c, 0x50, 0xab, 0x67, 0xfc, 0x76, 0x68, 0xde, 0xc6, 0x03, 0x4e, 0x82,
+ 0x24, 0xae, 0x1d, 0x54,
+};
+static const unsigned char kat282_persstr[] = {
+ 0x23, 0x0b, 0x18, 0x7d, 0x67, 0xc9, 0x31, 0x2e, 0xaf, 0x19, 0x23, 0x52,
+ 0x6b, 0xfb, 0xcb, 0x31, 0x9d, 0x9d, 0x33, 0x9f, 0xe8, 0xc8, 0x62, 0xd1,
+ 0xa9, 0xfa, 0x1e, 0xa7, 0x83, 0x09, 0x29, 0xb2,
+};
+static const unsigned char kat282_addin0[] = {0};
+static const unsigned char kat282_addin1[] = {0};
+static const unsigned char kat282_retbits[] = {
+ 0x0e, 0xce, 0x18, 0x8d, 0x8d, 0x1a, 0x37, 0xf1, 0x58, 0xa6, 0xd0, 0x65,
+ 0xf9, 0x07, 0x37, 0x69, 0xd7, 0x50, 0xb6, 0xd3, 0x3b, 0xf8, 0x49, 0x3d,
+ 0xf9, 0x6d, 0x99, 0xfa, 0x98, 0xc9, 0x90, 0x00, 0x76, 0xf7, 0xab, 0xeb,
+ 0x02, 0x31, 0x2a, 0xd4, 0xe0, 0xc6, 0xed, 0xde, 0x99, 0xeb, 0xd6, 0x1c,
+ 0x39, 0x6a, 0x83, 0x75, 0xa1, 0xd7, 0x1f, 0x6b, 0x20, 0x86, 0xd9, 0x02,
+ 0x1c, 0x11, 0xa1, 0x4c,
+};
+static const struct drbg_kat_no_reseed kat282_t = {
+ 11, kat282_entropyin, kat282_nonce, kat282_persstr,
+ kat282_addin0, kat282_addin1, kat282_retbits
+};
+static const struct drbg_kat kat282 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat282_t
+};
+
+static const unsigned char kat283_entropyin[] = {
+ 0xbf, 0x4e, 0x56, 0x6b, 0x60, 0xa5, 0x92, 0xf6, 0xc8, 0x89, 0xbb, 0x19,
+ 0x25, 0x2b, 0x54, 0x48, 0x9a, 0x58, 0x15, 0xf2, 0xbd, 0x07, 0x4b, 0x41,
+};
+static const unsigned char kat283_nonce[] = {
+ 0x32, 0xa2, 0xf8, 0xe7, 0x8e, 0x17, 0x57, 0x4d, 0x63, 0x84, 0xe1, 0xf5,
+ 0x39, 0x95, 0x9a, 0xda,
+};
+static const unsigned char kat283_persstr[] = {
+ 0xcf, 0x75, 0x8d, 0x77, 0x29, 0x63, 0xf5, 0x76, 0xb5, 0x1d, 0x32, 0x7d,
+ 0xba, 0xa3, 0x51, 0x76, 0x13, 0xf3, 0x38, 0x7c, 0xb9, 0x0c, 0x85, 0x49,
+ 0x7a, 0x93, 0x60, 0xe0, 0x4e, 0xbf, 0xb1, 0x79,
+};
+static const unsigned char kat283_addin0[] = {0};
+static const unsigned char kat283_addin1[] = {0};
+static const unsigned char kat283_retbits[] = {
+ 0xf6, 0xbf, 0x71, 0x1d, 0x50, 0x02, 0x99, 0x7a, 0x3e, 0xca, 0xa3, 0x6c,
+ 0xeb, 0x5e, 0xe6, 0x3c, 0xae, 0x53, 0x01, 0x72, 0x89, 0x07, 0x64, 0xae,
+ 0xb8, 0xaf, 0xd5, 0xd8, 0x12, 0xc3, 0x68, 0x56, 0x8e, 0x4a, 0xb0, 0xaf,
+ 0xd2, 0xdd, 0xf9, 0x7d, 0xc3, 0x10, 0xb1, 0xc3, 0x53, 0xe6, 0x73, 0xfd,
+ 0xac, 0x59, 0x2a, 0xc6, 0x08, 0xe1, 0x30, 0x4f, 0x97, 0xa5, 0xf2, 0x57,
+ 0x8c, 0x1e, 0xc1, 0xd4,
+};
+static const struct drbg_kat_no_reseed kat283_t = {
+ 12, kat283_entropyin, kat283_nonce, kat283_persstr,
+ kat283_addin0, kat283_addin1, kat283_retbits
+};
+static const struct drbg_kat kat283 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat283_t
+};
+
+static const unsigned char kat284_entropyin[] = {
+ 0x18, 0x01, 0x0f, 0xfb, 0xae, 0xac, 0xab, 0x06, 0xa4, 0xc5, 0x5a, 0x38,
+ 0xe8, 0xe9, 0x36, 0xd7, 0x9a, 0xd4, 0x9a, 0xf9, 0x76, 0xb8, 0xf7, 0x48,
+};
+static const unsigned char kat284_nonce[] = {
+ 0xcf, 0x55, 0xbc, 0x78, 0xa1, 0xf1, 0xee, 0x4a, 0xbd, 0xc5, 0x54, 0xe8,
+ 0x7b, 0x3f, 0x11, 0x4d,
+};
+static const unsigned char kat284_persstr[] = {
+ 0x53, 0xa9, 0x74, 0x38, 0x6b, 0xa1, 0x01, 0xba, 0x34, 0xea, 0x65, 0xb7,
+ 0x5b, 0xc3, 0x60, 0xe9, 0xc1, 0xcb, 0x80, 0xc2, 0xa6, 0x50, 0x82, 0x90,
+ 0xa7, 0x8a, 0xe2, 0x3e, 0x5c, 0x70, 0x15, 0x37,
+};
+static const unsigned char kat284_addin0[] = {0};
+static const unsigned char kat284_addin1[] = {0};
+static const unsigned char kat284_retbits[] = {
+ 0x57, 0x26, 0xde, 0x68, 0x48, 0xee, 0x07, 0x4f, 0x35, 0x3c, 0xf1, 0x7b,
+ 0xf3, 0xee, 0x0b, 0x09, 0xb6, 0xb6, 0x03, 0xb1, 0x24, 0x64, 0x25, 0xdd,
+ 0xde, 0x1d, 0x01, 0xb5, 0xbf, 0x5a, 0xf0, 0xd8, 0x88, 0x88, 0x21, 0x7d,
+ 0x59, 0x01, 0x8d, 0xb3, 0x17, 0x18, 0x11, 0xda, 0x02, 0xe6, 0x67, 0xfd,
+ 0xdf, 0x8c, 0xb3, 0x51, 0x00, 0x36, 0x9d, 0xc9, 0xa8, 0xcf, 0x2a, 0xaf,
+ 0xc5, 0x45, 0x21, 0x82,
+};
+static const struct drbg_kat_no_reseed kat284_t = {
+ 13, kat284_entropyin, kat284_nonce, kat284_persstr,
+ kat284_addin0, kat284_addin1, kat284_retbits
+};
+static const struct drbg_kat kat284 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat284_t
+};
+
+static const unsigned char kat285_entropyin[] = {
+ 0xf6, 0x20, 0x87, 0x73, 0xae, 0x06, 0xc6, 0x14, 0x10, 0x7a, 0x98, 0x65,
+ 0xc3, 0x6e, 0xeb, 0x2a, 0xc2, 0xe3, 0x48, 0xee, 0x7c, 0xd6, 0x9d, 0xde,
+};
+static const unsigned char kat285_nonce[] = {
+ 0xee, 0x7c, 0x9e, 0xc2, 0x68, 0x77, 0x03, 0xaa, 0x10, 0x30, 0x70, 0x57,
+ 0x4d, 0x61, 0x67, 0xd9,
+};
+static const unsigned char kat285_persstr[] = {
+ 0xa8, 0x5a, 0x25, 0xe5, 0xcd, 0x63, 0x90, 0xbe, 0xab, 0x64, 0xab, 0x8b,
+ 0x4f, 0x53, 0x42, 0x80, 0xf3, 0xfc, 0x7b, 0x16, 0x9e, 0xb0, 0xa7, 0x5c,
+ 0xb7, 0x7d, 0x9b, 0xf0, 0x62, 0x92, 0xab, 0xe8,
+};
+static const unsigned char kat285_addin0[] = {0};
+static const unsigned char kat285_addin1[] = {0};
+static const unsigned char kat285_retbits[] = {
+ 0xcd, 0x5f, 0x73, 0xd4, 0xfe, 0xbc, 0x7f, 0xe1, 0x73, 0x51, 0xbb, 0xb9,
+ 0x09, 0x47, 0x29, 0x75, 0x90, 0x16, 0xbd, 0x3e, 0xae, 0x0d, 0xd3, 0xd9,
+ 0x12, 0x86, 0x97, 0x81, 0x3a, 0x0b, 0x92, 0x9d, 0xcf, 0xce, 0x6b, 0xfe,
+ 0xfc, 0x1e, 0x08, 0xde, 0xdd, 0xf6, 0x17, 0xd4, 0xe7, 0x27, 0xaa, 0xa3,
+ 0xc7, 0xcb, 0x1f, 0xf2, 0x3b, 0xf0, 0x2f, 0xcd, 0xa7, 0x7d, 0x0b, 0x15,
+ 0x02, 0x39, 0x03, 0x49,
+};
+static const struct drbg_kat_no_reseed kat285_t = {
+ 14, kat285_entropyin, kat285_nonce, kat285_persstr,
+ kat285_addin0, kat285_addin1, kat285_retbits
+};
+static const struct drbg_kat kat285 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat285_t
+};
+
+static const unsigned char kat286_entropyin[] = {
+ 0xd5, 0x97, 0x3b, 0x5c, 0x91, 0x05, 0xcb, 0xf6, 0x7e, 0x97, 0x8f, 0x41,
+ 0x99, 0x24, 0x79, 0x0d, 0x83, 0x02, 0x3e, 0x86, 0xa8, 0xb5, 0xdd, 0x6b,
+};
+static const unsigned char kat286_nonce[] = {
+ 0x35, 0x8a, 0xf1, 0xae, 0x9a, 0x84, 0x2c, 0x6e, 0x03, 0xf8, 0x8d, 0xfa,
+ 0x2a, 0x31, 0x11, 0x61,
+};
+static const unsigned char kat286_persstr[] = {
+ 0x29, 0x4d, 0x7d, 0x35, 0xf5, 0x3a, 0x5d, 0x7d, 0xde, 0xf5, 0xca, 0x41,
+ 0x00, 0xf3, 0x54, 0x71, 0x12, 0xc9, 0x3e, 0x41, 0x25, 0x12, 0x57, 0xdc,
+ 0x0a, 0x19, 0xb6, 0xdf, 0xaa, 0x4a, 0x60, 0xa4,
+};
+static const unsigned char kat286_addin0[] = {
+ 0x08, 0x05, 0xf3, 0x14, 0x46, 0xc5, 0x1d, 0x5d, 0x9d, 0x27, 0xb7, 0xcb,
+ 0xb1, 0x6e, 0x84, 0x0b, 0x9e, 0x8b, 0x0d, 0xfe, 0x6f, 0xb4, 0xb6, 0x97,
+ 0x92, 0xbc, 0x8d, 0xe9, 0xe3, 0xbd, 0x6d, 0x92,
+};
+static const unsigned char kat286_addin1[] = {
+ 0x93, 0x4d, 0x7f, 0xd5, 0xe7, 0x16, 0x37, 0x63, 0x42, 0x60, 0x71, 0x23,
+ 0xea, 0x11, 0x3d, 0x6b, 0x20, 0x17, 0x0c, 0xcd, 0xa5, 0x3f, 0xc8, 0x65,
+ 0x41, 0x40, 0x7a, 0x15, 0x6c, 0xd9, 0x49, 0x04,
+};
+static const unsigned char kat286_retbits[] = {
+ 0xcb, 0x95, 0x45, 0x9d, 0x17, 0x35, 0xcb, 0x9b, 0xce, 0x8a, 0x75, 0xbf,
+ 0x09, 0x7a, 0x09, 0x9c, 0x9f, 0x7c, 0x70, 0xba, 0xd4, 0x3e, 0x3e, 0x43,
+ 0x1f, 0x2d, 0x38, 0x29, 0xd7, 0xca, 0x9d, 0x06, 0x17, 0xb9, 0xa9, 0x93,
+ 0x37, 0xaf, 0x52, 0x48, 0xd4, 0x74, 0x1c, 0xb5, 0xa6, 0x0d, 0xff, 0x6f,
+ 0x8c, 0x52, 0x21, 0xe2, 0x3f, 0x3c, 0xb5, 0x24, 0xa9, 0x4f, 0xfd, 0xd2,
+ 0x19, 0x0b, 0xfb, 0x3b,
+};
+static const struct drbg_kat_no_reseed kat286_t = {
+ 0, kat286_entropyin, kat286_nonce, kat286_persstr,
+ kat286_addin0, kat286_addin1, kat286_retbits
+};
+static const struct drbg_kat kat286 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat286_t
+};
+
+static const unsigned char kat287_entropyin[] = {
+ 0xa0, 0x44, 0x99, 0xcc, 0x2b, 0x36, 0x20, 0xa4, 0x7e, 0xe6, 0x6d, 0xe9,
+ 0xce, 0x65, 0x10, 0x03, 0x39, 0x40, 0x95, 0x85, 0x39, 0xf7, 0x54, 0xfb,
+};
+static const unsigned char kat287_nonce[] = {
+ 0xfa, 0xa4, 0x92, 0xb5, 0xee, 0xb6, 0x20, 0xe7, 0x8f, 0xb6, 0x37, 0x5c,
+ 0x62, 0x0f, 0x49, 0x5c,
+};
+static const unsigned char kat287_persstr[] = {
+ 0x31, 0x8a, 0x01, 0xb4, 0x75, 0x60, 0x11, 0x91, 0x43, 0x8c, 0xcf, 0x44,
+ 0xfe, 0xd9, 0xc0, 0xc6, 0xaf, 0x5f, 0x44, 0x15, 0xc2, 0x66, 0x8b, 0x2d,
+ 0x39, 0xf9, 0x59, 0xef, 0x6f, 0xa2, 0xe2, 0xee,
+};
+static const unsigned char kat287_addin0[] = {
+ 0xf1, 0xb9, 0x2d, 0x7f, 0xb1, 0x26, 0x79, 0x9f, 0x08, 0x02, 0x64, 0xbb,
+ 0xd2, 0xef, 0xf3, 0x9b, 0xd7, 0x55, 0xb8, 0xd1, 0xcb, 0xb8, 0x79, 0x63,
+ 0xa7, 0x71, 0xe7, 0xac, 0x54, 0x94, 0xc1, 0x54,
+};
+static const unsigned char kat287_addin1[] = {
+ 0xab, 0x79, 0x75, 0xe3, 0x42, 0xc2, 0x60, 0xf4, 0x01, 0x38, 0x56, 0xe5,
+ 0x9d, 0x76, 0x77, 0xe7, 0x07, 0x18, 0x21, 0xe4, 0x2d, 0xcb, 0x0b, 0x14,
+ 0x7d, 0xcc, 0x74, 0x07, 0x48, 0x32, 0x06, 0x1c,
+};
+static const unsigned char kat287_retbits[] = {
+ 0x64, 0x7a, 0x3e, 0x82, 0xbe, 0x71, 0x73, 0xe4, 0x57, 0x82, 0xd4, 0x2e,
+ 0xe0, 0xbc, 0x52, 0xff, 0xef, 0xc3, 0x07, 0x2e, 0xca, 0xb3, 0x06, 0x0a,
+ 0xe6, 0x06, 0x31, 0xb8, 0x48, 0x62, 0x89, 0x23, 0x0c, 0x00, 0xb3, 0xe9,
+ 0x64, 0x1f, 0x88, 0xd3, 0x42, 0x7f, 0xbf, 0xb1, 0x50, 0xfd, 0x14, 0xdc,
+ 0xf8, 0xf2, 0xc8, 0xdb, 0x14, 0xc7, 0x15, 0x45, 0x78, 0x89, 0x51, 0xef,
+ 0xa0, 0x74, 0xb2, 0x27,
+};
+static const struct drbg_kat_no_reseed kat287_t = {
+ 1, kat287_entropyin, kat287_nonce, kat287_persstr,
+ kat287_addin0, kat287_addin1, kat287_retbits
+};
+static const struct drbg_kat kat287 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat287_t
+};
+
+static const unsigned char kat288_entropyin[] = {
+ 0x56, 0x82, 0x91, 0x4c, 0x36, 0x77, 0x69, 0x45, 0xe0, 0x23, 0xf9, 0x8e,
+ 0x14, 0x17, 0x17, 0x25, 0xa2, 0xc0, 0x20, 0x4d, 0xe7, 0x99, 0xa3, 0x6f,
+};
+static const unsigned char kat288_nonce[] = {
+ 0x6d, 0x6f, 0x71, 0xcf, 0xef, 0x95, 0x7f, 0xf4, 0x75, 0x58, 0x33, 0x15,
+ 0x12, 0x5e, 0xad, 0x6b,
+};
+static const unsigned char kat288_persstr[] = {
+ 0x55, 0x7f, 0xde, 0x94, 0xd4, 0x1c, 0x13, 0xb2, 0x48, 0x29, 0xb8, 0xfd,
+ 0x42, 0x41, 0x24, 0x82, 0x5a, 0xac, 0xb1, 0x40, 0x94, 0xe5, 0xe7, 0xd4,
+ 0xf8, 0xde, 0xea, 0x7d, 0xb2, 0xac, 0x29, 0x40,
+};
+static const unsigned char kat288_addin0[] = {
+ 0x4c, 0x64, 0xc5, 0xa5, 0xc1, 0xc6, 0x91, 0x4b, 0x61, 0xfa, 0xf2, 0x64,
+ 0x92, 0x4c, 0x10, 0xde, 0xbc, 0x2f, 0x36, 0x7a, 0xc4, 0xcb, 0x1e, 0x01,
+ 0x24, 0x88, 0x32, 0x2f, 0xb1, 0x9d, 0x69, 0xa8,
+};
+static const unsigned char kat288_addin1[] = {
+ 0x71, 0x93, 0xe6, 0x1b, 0xb3, 0xe7, 0x5d, 0x48, 0xe4, 0xa3, 0xf9, 0x0b,
+ 0x10, 0x8e, 0x07, 0x07, 0x4c, 0x35, 0x39, 0x06, 0x93, 0xcd, 0x0a, 0x4c,
+ 0xd3, 0xbb, 0x6c, 0xd2, 0x46, 0xbe, 0xb7, 0x40,
+};
+static const unsigned char kat288_retbits[] = {
+ 0x7a, 0xed, 0x93, 0x1e, 0xe1, 0x7c, 0x7b, 0x05, 0x53, 0x3b, 0x52, 0xf6,
+ 0xb3, 0xdf, 0xc9, 0x76, 0x88, 0xf6, 0xf3, 0xb3, 0x97, 0x44, 0xed, 0xed,
+ 0x73, 0xdd, 0xe2, 0x7e, 0x03, 0x4a, 0xfb, 0x18, 0x01, 0xb3, 0xd1, 0x16,
+ 0x0d, 0xba, 0x79, 0x75, 0x59, 0xfd, 0x72, 0x16, 0x10, 0xf6, 0xd6, 0x2f,
+ 0x6d, 0x0c, 0x48, 0xa6, 0x74, 0x03, 0x07, 0x5f, 0x6c, 0x24, 0x50, 0xe6,
+ 0x24, 0x6a, 0x4d, 0x66,
+};
+static const struct drbg_kat_no_reseed kat288_t = {
+ 2, kat288_entropyin, kat288_nonce, kat288_persstr,
+ kat288_addin0, kat288_addin1, kat288_retbits
+};
+static const struct drbg_kat kat288 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat288_t
+};
+
+static const unsigned char kat289_entropyin[] = {
+ 0x19, 0x9c, 0xee, 0x8a, 0x88, 0x18, 0x88, 0x16, 0x6c, 0xb5, 0x2c, 0xf6,
+ 0x8f, 0xde, 0x78, 0x0f, 0x32, 0x55, 0xb1, 0x3d, 0x37, 0x0b, 0x68, 0x9a,
+};
+static const unsigned char kat289_nonce[] = {
+ 0x84, 0x80, 0x16, 0xaa, 0x71, 0x57, 0x1e, 0x1c, 0x63, 0xf3, 0x17, 0x4b,
+ 0xf9, 0x35, 0x87, 0xc9,
+};
+static const unsigned char kat289_persstr[] = {
+ 0x66, 0x21, 0x2f, 0x4c, 0x19, 0xb5, 0xcd, 0xf4, 0xa6, 0x59, 0x4f, 0xd4,
+ 0xc4, 0xf7, 0xb7, 0x83, 0x72, 0x30, 0xde, 0x71, 0xb9, 0x8d, 0x50, 0x6d,
+ 0x46, 0xde, 0xce, 0xac, 0xb5, 0xf0, 0xc6, 0x9c,
+};
+static const unsigned char kat289_addin0[] = {
+ 0x59, 0x34, 0xb3, 0x95, 0x8e, 0xbe, 0x21, 0x54, 0xc2, 0x46, 0xce, 0xa5,
+ 0x5d, 0xf2, 0x31, 0xe4, 0x1a, 0x86, 0x7e, 0x88, 0x44, 0x12, 0x9f, 0xd6,
+ 0xc7, 0xde, 0x6c, 0x9c, 0xf8, 0xd4, 0xd7, 0xb8,
+};
+static const unsigned char kat289_addin1[] = {
+ 0x0b, 0x4a, 0x32, 0xba, 0xb8, 0x42, 0xc4, 0xd2, 0x49, 0x99, 0xe9, 0xac,
+ 0x6b, 0xb1, 0x02, 0x4b, 0x76, 0x73, 0x08, 0x68, 0x95, 0xe8, 0x9a, 0x70,
+ 0x72, 0xa5, 0x9c, 0x8c, 0x75, 0xfe, 0x3e, 0x0a,
+};
+static const unsigned char kat289_retbits[] = {
+ 0x84, 0x50, 0x41, 0x0e, 0x9a, 0x7f, 0xf9, 0xa1, 0x04, 0xd6, 0xd0, 0xec,
+ 0xd2, 0x31, 0x5e, 0xa5, 0x40, 0xf5, 0x4c, 0xd8, 0x8d, 0x21, 0xac, 0x6d,
+ 0x7c, 0xae, 0x8a, 0x86, 0x18, 0x1d, 0xcb, 0x53, 0xf1, 0x88, 0x3e, 0xe1,
+ 0xdc, 0xe8, 0xa2, 0x86, 0x22, 0x61, 0x62, 0x08, 0x59, 0x33, 0x4f, 0xde,
+ 0x9c, 0xe2, 0xde, 0xaf, 0x1b, 0x58, 0xd4, 0xd4, 0xd0, 0x1d, 0xbd, 0xfe,
+ 0xe7, 0x73, 0x2e, 0x8e,
+};
+static const struct drbg_kat_no_reseed kat289_t = {
+ 3, kat289_entropyin, kat289_nonce, kat289_persstr,
+ kat289_addin0, kat289_addin1, kat289_retbits
+};
+static const struct drbg_kat kat289 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat289_t
+};
+
+static const unsigned char kat290_entropyin[] = {
+ 0x2f, 0xf3, 0xc6, 0x29, 0x0f, 0x51, 0x40, 0xb6, 0xc4, 0x96, 0x8a, 0xfe,
+ 0x0c, 0x6a, 0xc1, 0x8e, 0x55, 0x74, 0xc7, 0x11, 0x73, 0x29, 0x2e, 0x54,
+};
+static const unsigned char kat290_nonce[] = {
+ 0x93, 0xdd, 0x9d, 0xfd, 0xb4, 0x5f, 0x96, 0xb8, 0x05, 0x9c, 0xb3, 0xfd,
+ 0xc1, 0x25, 0xa3, 0xb5,
+};
+static const unsigned char kat290_persstr[] = {
+ 0xdb, 0xf6, 0x83, 0x70, 0x58, 0xa3, 0x74, 0x1a, 0xbf, 0x3a, 0xd0, 0x62,
+ 0x97, 0xc1, 0x9b, 0x81, 0xf4, 0xc4, 0x6a, 0xdf, 0x7d, 0x46, 0xc5, 0x8b,
+ 0xbb, 0xce, 0x5b, 0xcf, 0x29, 0x64, 0x00, 0xd5,
+};
+static const unsigned char kat290_addin0[] = {
+ 0x32, 0x9d, 0x4f, 0xe2, 0x73, 0x66, 0x16, 0xb0, 0x65, 0x28, 0x7f, 0x3c,
+ 0xad, 0x21, 0x63, 0x42, 0xb9, 0xbe, 0x26, 0xe8, 0xf2, 0xc5, 0x94, 0x64,
+ 0x5e, 0x7e, 0x27, 0x88, 0x07, 0x09, 0x7d, 0x5c,
+};
+static const unsigned char kat290_addin1[] = {
+ 0x8a, 0x1e, 0x25, 0x8c, 0x3a, 0x3f, 0xb9, 0xb0, 0x31, 0x45, 0x62, 0xa3,
+ 0x20, 0xc0, 0xc1, 0x1e, 0x6f, 0x81, 0x37, 0xe2, 0x91, 0xa7, 0x9e, 0xd5,
+ 0x68, 0x48, 0x9a, 0xd0, 0x56, 0x0c, 0x7c, 0x28,
+};
+static const unsigned char kat290_retbits[] = {
+ 0x28, 0x1c, 0xd7, 0x62, 0xf1, 0x0d, 0xdd, 0x29, 0xe0, 0xab, 0x11, 0xcf,
+ 0x79, 0x49, 0x4a, 0x7e, 0xb5, 0x92, 0xdd, 0x84, 0xdc, 0xe6, 0x58, 0x04,
+ 0x28, 0x6e, 0xea, 0x86, 0x4d, 0x8b, 0x85, 0x44, 0x28, 0x2d, 0x3f, 0xe8,
+ 0x0d, 0x76, 0xfe, 0x55, 0xf7, 0xfc, 0x66, 0xd0, 0x97, 0x1b, 0x8d, 0xcb,
+ 0x84, 0xa3, 0xf2, 0x5d, 0x85, 0x97, 0x21, 0x33, 0xe0, 0x74, 0xcd, 0xf1,
+ 0xe6, 0x0b, 0xf0, 0x69,
+};
+static const struct drbg_kat_no_reseed kat290_t = {
+ 4, kat290_entropyin, kat290_nonce, kat290_persstr,
+ kat290_addin0, kat290_addin1, kat290_retbits
+};
+static const struct drbg_kat kat290 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat290_t
+};
+
+static const unsigned char kat291_entropyin[] = {
+ 0x15, 0xb6, 0x96, 0xec, 0xc0, 0x14, 0x9b, 0x78, 0x05, 0xbd, 0xbe, 0xaa,
+ 0x65, 0xb9, 0xea, 0x9b, 0x76, 0xe7, 0x6d, 0xd6, 0x8b, 0xb9, 0xba, 0x5f,
+};
+static const unsigned char kat291_nonce[] = {
+ 0xee, 0x41, 0x74, 0xe0, 0x87, 0xf3, 0xe7, 0x4a, 0x3f, 0xd2, 0xfc, 0x40,
+ 0x35, 0x59, 0x20, 0x9c,
+};
+static const unsigned char kat291_persstr[] = {
+ 0xa4, 0x2d, 0xd8, 0x8c, 0xdb, 0xa2, 0x5d, 0x88, 0x9d, 0xbc, 0xd9, 0xc7,
+ 0xb7, 0xa7, 0xbc, 0xfe, 0x25, 0xad, 0x1a, 0x81, 0xa1, 0x76, 0x1e, 0x24,
+ 0xe0, 0x46, 0xca, 0xd4, 0x75, 0x91, 0x02, 0x5c,
+};
+static const unsigned char kat291_addin0[] = {
+ 0xa3, 0x73, 0xc6, 0x7b, 0xf7, 0xa8, 0x78, 0x98, 0x70, 0x76, 0x8a, 0xf6,
+ 0x01, 0x5a, 0x13, 0x39, 0x36, 0x82, 0x1d, 0x97, 0xcf, 0xe1, 0xdc, 0x49,
+ 0x73, 0x1b, 0x14, 0x5f, 0x66, 0x66, 0xdf, 0xe3,
+};
+static const unsigned char kat291_addin1[] = {
+ 0x7b, 0x93, 0xdd, 0x28, 0x55, 0xff, 0x93, 0xec, 0x1d, 0x19, 0x4c, 0x86,
+ 0x71, 0xa6, 0x25, 0x99, 0x39, 0xbc, 0x4a, 0x57, 0x29, 0x94, 0xae, 0x3d,
+ 0x52, 0xa8, 0x44, 0x11, 0x74, 0x90, 0x53, 0x3a,
+};
+static const unsigned char kat291_retbits[] = {
+ 0x78, 0xca, 0x84, 0xfe, 0x42, 0xb1, 0x6e, 0xab, 0x52, 0x88, 0x8d, 0x54,
+ 0x0c, 0x50, 0xe5, 0x21, 0x61, 0x5c, 0x5f, 0x4d, 0xff, 0x04, 0x56, 0xcb,
+ 0x80, 0x8d, 0x10, 0xf6, 0x66, 0xd0, 0x8d, 0xd1, 0x9c, 0x68, 0x78, 0x9b,
+ 0xe1, 0xd9, 0xd8, 0x55, 0xff, 0x99, 0x5d, 0xeb, 0x8e, 0x02, 0x61, 0xe8,
+ 0xc4, 0x4b, 0x12, 0x48, 0xb0, 0xb2, 0xde, 0xc2, 0x59, 0x9d, 0x8e, 0x77,
+ 0x9d, 0x24, 0xc8, 0x39,
+};
+static const struct drbg_kat_no_reseed kat291_t = {
+ 5, kat291_entropyin, kat291_nonce, kat291_persstr,
+ kat291_addin0, kat291_addin1, kat291_retbits
+};
+static const struct drbg_kat kat291 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat291_t
+};
+
+static const unsigned char kat292_entropyin[] = {
+ 0xdd, 0xc6, 0xe5, 0x0f, 0xf9, 0x08, 0x3f, 0xed, 0xf4, 0xa5, 0xd5, 0x6f,
+ 0xd9, 0x23, 0x8a, 0x25, 0x65, 0xf5, 0x01, 0x84, 0xdf, 0x28, 0x3a, 0x78,
+};
+static const unsigned char kat292_nonce[] = {
+ 0xa3, 0x06, 0x0e, 0x17, 0x32, 0xf1, 0xb1, 0xde, 0xfc, 0x8e, 0x5f, 0x39,
+ 0xe0, 0x12, 0xe3, 0x03,
+};
+static const unsigned char kat292_persstr[] = {
+ 0x86, 0x98, 0x83, 0x57, 0x95, 0x80, 0x4b, 0xa3, 0x46, 0x5f, 0x3e, 0xcd,
+ 0xd4, 0xac, 0xe0, 0x47, 0x50, 0x6c, 0xb1, 0x5d, 0xd9, 0xc8, 0x72, 0x8f,
+ 0x07, 0x5f, 0xce, 0xa5, 0x03, 0x3f, 0xa0, 0xd8,
+};
+static const unsigned char kat292_addin0[] = {
+ 0xb1, 0x01, 0x1f, 0x40, 0xcf, 0x33, 0x1e, 0x33, 0xd2, 0x4f, 0xfe, 0x86,
+ 0x17, 0x8f, 0x70, 0xe6, 0xc7, 0xd4, 0xd2, 0xb4, 0x43, 0xb6, 0x4f, 0xbd,
+ 0x5c, 0x97, 0x9b, 0x94, 0x19, 0x3c, 0xac, 0x60,
+};
+static const unsigned char kat292_addin1[] = {
+ 0x3a, 0x72, 0xe1, 0xe6, 0x63, 0x64, 0x04, 0xbe, 0x69, 0xf8, 0x53, 0xbe,
+ 0xb0, 0x63, 0x3d, 0x5d, 0xef, 0x03, 0xb1, 0x6b, 0x4b, 0x20, 0x5a, 0x02,
+ 0x38, 0x4c, 0x26, 0x95, 0x1c, 0xa0, 0xf2, 0x20,
+};
+static const unsigned char kat292_retbits[] = {
+ 0x7d, 0xbe, 0xac, 0xe1, 0xa9, 0x0a, 0x28, 0x43, 0xc3, 0xde, 0x36, 0xf3,
+ 0xbb, 0xac, 0x6e, 0x91, 0x40, 0xa9, 0x38, 0xce, 0xd6, 0x30, 0x41, 0x6e,
+ 0xb1, 0xe1, 0x63, 0x87, 0x08, 0xec, 0x12, 0xe4, 0x80, 0xda, 0x65, 0xe0,
+ 0x0c, 0x82, 0x94, 0x15, 0x1e, 0xa4, 0xb9, 0xa1, 0xd5, 0xb2, 0x59, 0x75,
+ 0xd7, 0x94, 0x0d, 0x57, 0xc8, 0xde, 0x72, 0xe2, 0x03, 0x82, 0x99, 0x6f,
+ 0xf4, 0xdc, 0x64, 0xc2,
+};
+static const struct drbg_kat_no_reseed kat292_t = {
+ 6, kat292_entropyin, kat292_nonce, kat292_persstr,
+ kat292_addin0, kat292_addin1, kat292_retbits
+};
+static const struct drbg_kat kat292 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat292_t
+};
+
+static const unsigned char kat293_entropyin[] = {
+ 0xdd, 0xe2, 0x70, 0x18, 0xcd, 0xea, 0x02, 0x7b, 0x27, 0x3a, 0x83, 0xab,
+ 0x28, 0xf8, 0x18, 0x22, 0x93, 0xe5, 0x37, 0x32, 0x91, 0x64, 0x12, 0x62,
+};
+static const unsigned char kat293_nonce[] = {
+ 0xe8, 0x81, 0x0e, 0x24, 0xfb, 0x96, 0xba, 0x67, 0x68, 0xb6, 0x57, 0x47,
+ 0xbb, 0x27, 0x93, 0xb8,
+};
+static const unsigned char kat293_persstr[] = {
+ 0xd8, 0xad, 0xa0, 0x62, 0xfb, 0x8a, 0x56, 0x7f, 0x42, 0x15, 0xeb, 0x1f,
+ 0xf8, 0x7a, 0x2c, 0xd6, 0xfe, 0x96, 0x4d, 0x7b, 0xeb, 0xcc, 0x9c, 0xf4,
+ 0xec, 0xc5, 0x31, 0xbe, 0x21, 0xad, 0x47, 0x8f,
+};
+static const unsigned char kat293_addin0[] = {
+ 0xee, 0xa0, 0xc6, 0x51, 0xaf, 0xae, 0x1c, 0xca, 0x7d, 0x6b, 0x4a, 0xef,
+ 0x4c, 0x1e, 0x0c, 0x22, 0x19, 0x4c, 0x70, 0xa6, 0x3f, 0xe4, 0x74, 0xa8,
+ 0xb5, 0xfc, 0xbd, 0x26, 0xa5, 0x69, 0x6c, 0x3c,
+};
+static const unsigned char kat293_addin1[] = {
+ 0x71, 0xee, 0xe7, 0x0d, 0x6b, 0x57, 0x85, 0x4d, 0xa6, 0x87, 0x89, 0xd9,
+ 0x92, 0xe4, 0x13, 0x24, 0x85, 0xa9, 0xaa, 0xcc, 0x3f, 0xb8, 0xfa, 0xab,
+ 0xc9, 0x08, 0xed, 0xda, 0x65, 0x3b, 0xf7, 0x40,
+};
+static const unsigned char kat293_retbits[] = {
+ 0xce, 0x2f, 0x8c, 0x2a, 0xcc, 0xc4, 0xc4, 0x5f, 0x18, 0x3b, 0xfe, 0xbe,
+ 0xcf, 0x1a, 0xdd, 0x4f, 0x32, 0xed, 0x36, 0x0d, 0x35, 0x6e, 0xfb, 0x90,
+ 0x63, 0x15, 0xc0, 0x43, 0xd1, 0x50, 0x66, 0x0a, 0x35, 0xb5, 0xd0, 0x35,
+ 0x0c, 0xb0, 0x53, 0xd4, 0x58, 0x16, 0x7e, 0xac, 0xf3, 0x5c, 0xc7, 0x01,
+ 0x2b, 0xdd, 0x1e, 0xf7, 0x08, 0x18, 0xde, 0xdd, 0xf3, 0x8b, 0x4e, 0x85,
+ 0x57, 0xbc, 0xc0, 0x3e,
+};
+static const struct drbg_kat_no_reseed kat293_t = {
+ 7, kat293_entropyin, kat293_nonce, kat293_persstr,
+ kat293_addin0, kat293_addin1, kat293_retbits
+};
+static const struct drbg_kat kat293 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat293_t
+};
+
+static const unsigned char kat294_entropyin[] = {
+ 0x49, 0xb2, 0xae, 0x2b, 0x29, 0x14, 0xd6, 0x88, 0x53, 0x8b, 0xb2, 0x91,
+ 0x93, 0xae, 0x63, 0x78, 0xe0, 0xe8, 0xb9, 0x41, 0xdd, 0x3e, 0x31, 0x52,
+};
+static const unsigned char kat294_nonce[] = {
+ 0x27, 0x9f, 0x5f, 0x18, 0x32, 0xcc, 0xd1, 0x0d, 0x08, 0x51, 0x40, 0x45,
+ 0x27, 0xed, 0x25, 0xfc,
+};
+static const unsigned char kat294_persstr[] = {
+ 0xee, 0x3a, 0x40, 0xee, 0x43, 0x22, 0xba, 0xb1, 0x68, 0x23, 0x59, 0x23,
+ 0xb5, 0x2b, 0x80, 0xa3, 0xc7, 0x11, 0xcd, 0x7a, 0xd7, 0x61, 0x8e, 0x76,
+ 0x40, 0x0e, 0x46, 0xf1, 0x53, 0xa1, 0x07, 0x22,
+};
+static const unsigned char kat294_addin0[] = {
+ 0xca, 0x3e, 0x55, 0xa7, 0xe1, 0xa5, 0x1d, 0x7d, 0xa3, 0x37, 0x9a, 0x2c,
+ 0xbc, 0x31, 0x62, 0xfe, 0xe7, 0x05, 0xff, 0xc8, 0xe2, 0xbb, 0x72, 0x94,
+ 0xe9, 0xf2, 0xd9, 0xc2, 0x9f, 0xe8, 0xb3, 0x86,
+};
+static const unsigned char kat294_addin1[] = {
+ 0x09, 0xac, 0xba, 0x8e, 0x05, 0x59, 0x39, 0x94, 0x24, 0x8d, 0x40, 0x66,
+ 0xb3, 0xd7, 0x70, 0xf4, 0x1b, 0x47, 0xab, 0x82, 0x44, 0x96, 0x8b, 0xb6,
+ 0x26, 0xbd, 0xfb, 0x6d, 0xb1, 0x41, 0x76, 0x0f,
+};
+static const unsigned char kat294_retbits[] = {
+ 0xaf, 0x2e, 0xb7, 0x3e, 0x49, 0xb1, 0x3c, 0x1c, 0x42, 0x62, 0x95, 0xfa,
+ 0x26, 0x43, 0xde, 0x08, 0xb1, 0x92, 0xac, 0x24, 0x07, 0x9b, 0x71, 0xc8,
+ 0xc1, 0x75, 0x50, 0x96, 0x44, 0x93, 0x7f, 0x22, 0x2d, 0xfb, 0xd6, 0xc7,
+ 0x7d, 0xd2, 0x5e, 0xa3, 0xea, 0xfe, 0xf7, 0x1d, 0xa2, 0xaa, 0x7b, 0xdb,
+ 0x68, 0xab, 0x4c, 0x8e, 0x97, 0xbd, 0xeb, 0x7c, 0x70, 0x6d, 0x99, 0xb5,
+ 0xb6, 0x7c, 0x6f, 0x9d,
+};
+static const struct drbg_kat_no_reseed kat294_t = {
+ 8, kat294_entropyin, kat294_nonce, kat294_persstr,
+ kat294_addin0, kat294_addin1, kat294_retbits
+};
+static const struct drbg_kat kat294 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat294_t
+};
+
+static const unsigned char kat295_entropyin[] = {
+ 0xe8, 0xc5, 0x38, 0xae, 0x11, 0x61, 0x98, 0x96, 0xbd, 0x34, 0x7d, 0x67,
+ 0x90, 0x07, 0x66, 0x1a, 0xce, 0x7e, 0x51, 0x92, 0xb8, 0x39, 0x19, 0x42,
+};
+static const unsigned char kat295_nonce[] = {
+ 0xf8, 0x26, 0x28, 0xa0, 0x5a, 0x8d, 0xfc, 0x06, 0x68, 0xf7, 0xf7, 0x54,
+ 0xb1, 0x71, 0xd5, 0xdb,
+};
+static const unsigned char kat295_persstr[] = {
+ 0x2c, 0x2a, 0x7e, 0xc3, 0x15, 0x64, 0xa3, 0x4e, 0x9c, 0xfb, 0x9f, 0x0f,
+ 0x42, 0xd8, 0xba, 0xb6, 0x81, 0x2b, 0x4a, 0xde, 0x26, 0x3a, 0xf4, 0xf0,
+ 0x02, 0x29, 0xe6, 0xeb, 0x99, 0x1e, 0x25, 0x92,
+};
+static const unsigned char kat295_addin0[] = {
+ 0x8d, 0x9e, 0x18, 0x24, 0xd2, 0x77, 0x37, 0xaf, 0xc4, 0x11, 0xb2, 0x4b,
+ 0xe6, 0x5e, 0xac, 0x50, 0x48, 0x0f, 0xce, 0x4a, 0xfb, 0xf7, 0x31, 0x7a,
+ 0x24, 0xb0, 0x4e, 0x24, 0x67, 0x20, 0x6f, 0x54,
+};
+static const unsigned char kat295_addin1[] = {
+ 0x3f, 0x02, 0x6a, 0x1a, 0x2b, 0xb8, 0xd0, 0x59, 0xc4, 0x95, 0xb0, 0xd4,
+ 0xa4, 0xf9, 0x73, 0x2d, 0x94, 0xaa, 0xf1, 0x5d, 0xe4, 0x2b, 0xf3, 0x44,
+ 0x12, 0xd7, 0x27, 0x0a, 0xaf, 0xca, 0x09, 0x9b,
+};
+static const unsigned char kat295_retbits[] = {
+ 0xb3, 0x96, 0xa8, 0x56, 0x93, 0x88, 0x93, 0x2a, 0x6f, 0xd2, 0x8c, 0xab,
+ 0x6c, 0xfb, 0x53, 0x37, 0x57, 0x1c, 0x1c, 0x91, 0xb8, 0xde, 0xf9, 0x83,
+ 0x5a, 0x2d, 0xcf, 0x23, 0x53, 0x66, 0x93, 0xb6, 0xa2, 0x75, 0xab, 0xb4,
+ 0xd4, 0xa3, 0xa2, 0xa1, 0xf4, 0x92, 0xb6, 0xfe, 0x5b, 0xce, 0x76, 0x30,
+ 0xde, 0x03, 0x99, 0x4e, 0xf2, 0x34, 0xd4, 0x25, 0x5e, 0xa3, 0x38, 0xa1,
+ 0x3a, 0xfb, 0x8e, 0x6d,
+};
+static const struct drbg_kat_no_reseed kat295_t = {
+ 9, kat295_entropyin, kat295_nonce, kat295_persstr,
+ kat295_addin0, kat295_addin1, kat295_retbits
+};
+static const struct drbg_kat kat295 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat295_t
+};
+
+static const unsigned char kat296_entropyin[] = {
+ 0x95, 0x44, 0xea, 0x65, 0x20, 0x52, 0x83, 0xf3, 0x66, 0x82, 0x4c, 0x55,
+ 0x60, 0x21, 0x78, 0xeb, 0x82, 0x13, 0x5d, 0x01, 0x57, 0x78, 0x8f, 0x86,
+};
+static const unsigned char kat296_nonce[] = {
+ 0x5e, 0x03, 0x79, 0xad, 0xec, 0x23, 0x87, 0xfc, 0xdb, 0xc6, 0x4d, 0x0f,
+ 0x9e, 0x23, 0xcc, 0xb5,
+};
+static const unsigned char kat296_persstr[] = {
+ 0xbe, 0x01, 0x6b, 0x1e, 0xf2, 0x74, 0xc7, 0x2c, 0x74, 0x97, 0x0c, 0x7f,
+ 0x16, 0xff, 0x9f, 0x6d, 0xd5, 0x79, 0xad, 0x73, 0x6a, 0xb8, 0x02, 0x38,
+ 0x5b, 0xb7, 0xc5, 0xee, 0xf7, 0x08, 0x6a, 0x95,
+};
+static const unsigned char kat296_addin0[] = {
+ 0xaa, 0xbf, 0xe4, 0x85, 0x76, 0x08, 0x9e, 0x44, 0x43, 0x1a, 0xe8, 0x94,
+ 0xcc, 0x31, 0x6e, 0xe9, 0x6b, 0xf7, 0xa4, 0x91, 0x89, 0xc7, 0xe4, 0x2a,
+ 0xbc, 0xca, 0x27, 0x87, 0x8b, 0x30, 0xef, 0x24,
+};
+static const unsigned char kat296_addin1[] = {
+ 0xb5, 0x29, 0xe2, 0xd3, 0x7b, 0x08, 0x08, 0xb1, 0xc9, 0x25, 0x34, 0x40,
+ 0x19, 0xdd, 0xdd, 0x3e, 0xea, 0x22, 0x77, 0x68, 0x38, 0xa0, 0x6e, 0x67,
+ 0x7f, 0xff, 0x67, 0x12, 0x7b, 0xb6, 0x8a, 0x6d,
+};
+static const unsigned char kat296_retbits[] = {
+ 0xab, 0x1a, 0x41, 0x84, 0x13, 0x30, 0xdf, 0x7e, 0x73, 0x4a, 0x57, 0xbe,
+ 0x20, 0x81, 0x71, 0x95, 0x0f, 0xa8, 0xe6, 0x4f, 0x4a, 0x2e, 0x26, 0xc7,
+ 0x2a, 0x10, 0xb3, 0x3d, 0xf9, 0xa7, 0x7b, 0xb2, 0x42, 0x84, 0xbf, 0xa7,
+ 0x22, 0x0b, 0xf8, 0xef, 0x03, 0x5e, 0x4d, 0x15, 0x84, 0x2b, 0xe5, 0x51,
+ 0x03, 0xec, 0x47, 0x43, 0xe2, 0xa9, 0x5b, 0xad, 0xd9, 0x48, 0x4b, 0x36,
+ 0x0d, 0x22, 0xe2, 0xdb,
+};
+static const struct drbg_kat_no_reseed kat296_t = {
+ 10, kat296_entropyin, kat296_nonce, kat296_persstr,
+ kat296_addin0, kat296_addin1, kat296_retbits
+};
+static const struct drbg_kat kat296 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat296_t
+};
+
+static const unsigned char kat297_entropyin[] = {
+ 0x25, 0xec, 0x07, 0x42, 0x27, 0x5e, 0x6f, 0xd6, 0xd3, 0x09, 0xa0, 0x26,
+ 0x99, 0xb7, 0xf2, 0x1a, 0xa1, 0x83, 0x62, 0xea, 0x68, 0x3b, 0xa7, 0x32,
+};
+static const unsigned char kat297_nonce[] = {
+ 0x54, 0x24, 0xe5, 0x50, 0x26, 0xf0, 0x28, 0x36, 0x9f, 0xd9, 0x6f, 0x57,
+ 0x50, 0x9b, 0xfe, 0x92,
+};
+static const unsigned char kat297_persstr[] = {
+ 0xef, 0xed, 0x65, 0x1e, 0x62, 0x79, 0x63, 0xc4, 0x3f, 0xbf, 0x16, 0x4b,
+ 0xd7, 0xb9, 0xb3, 0xbc, 0xf1, 0x8c, 0xb7, 0x8a, 0xe9, 0x7d, 0xc4, 0x8a,
+ 0x85, 0xd5, 0x21, 0x2a, 0xc7, 0x1a, 0x11, 0xfc,
+};
+static const unsigned char kat297_addin0[] = {
+ 0x26, 0xb0, 0xf1, 0x02, 0x5f, 0x31, 0x83, 0x14, 0xb5, 0x5f, 0xc1, 0xa4,
+ 0xdd, 0x32, 0x55, 0x13, 0xc4, 0x53, 0xb6, 0x6d, 0x0b, 0x21, 0x29, 0x3f,
+ 0x77, 0x5c, 0xcd, 0x7d, 0x3b, 0x9f, 0x43, 0x43,
+};
+static const unsigned char kat297_addin1[] = {
+ 0x2f, 0x94, 0xd7, 0xde, 0x2c, 0xe2, 0x5d, 0x12, 0x4d, 0x9d, 0xc6, 0x8b,
+ 0x39, 0xf9, 0x07, 0x6e, 0xcd, 0x2f, 0xf1, 0x4f, 0xe4, 0xe1, 0xd5, 0xc1,
+ 0x7c, 0x6e, 0x4d, 0xf2, 0x25, 0x7f, 0xc1, 0xde,
+};
+static const unsigned char kat297_retbits[] = {
+ 0xf9, 0xfd, 0x57, 0x61, 0x04, 0xd7, 0xf6, 0x8a, 0x2a, 0xf7, 0xd6, 0xa6,
+ 0x3f, 0x82, 0x44, 0xb0, 0x63, 0xe2, 0x87, 0x78, 0x7d, 0x8c, 0x93, 0xf3,
+ 0x16, 0x7e, 0xed, 0x9f, 0x8f, 0x83, 0x20, 0xc8, 0x61, 0xcd, 0x8c, 0xcb,
+ 0x51, 0x24, 0xd3, 0x2a, 0xc7, 0x5c, 0x57, 0x6d, 0xaa, 0xc3, 0x08, 0x2b,
+ 0x3f, 0x5f, 0x75, 0x50, 0x64, 0x0b, 0x77, 0x9e, 0x6f, 0xbe, 0xb7, 0xa3,
+ 0xf8, 0x9f, 0xcb, 0x11,
+};
+static const struct drbg_kat_no_reseed kat297_t = {
+ 11, kat297_entropyin, kat297_nonce, kat297_persstr,
+ kat297_addin0, kat297_addin1, kat297_retbits
+};
+static const struct drbg_kat kat297 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat297_t
+};
+
+static const unsigned char kat298_entropyin[] = {
+ 0xb7, 0x2b, 0xc2, 0xe7, 0x5e, 0x22, 0x7a, 0x5f, 0xab, 0xc2, 0x67, 0xc7,
+ 0x7f, 0xc7, 0xf9, 0x9c, 0x81, 0xd2, 0xe4, 0xe4, 0x1e, 0xfc, 0x31, 0xb0,
+};
+static const unsigned char kat298_nonce[] = {
+ 0x3e, 0x28, 0x60, 0x39, 0xed, 0x89, 0x9f, 0x2b, 0xdc, 0x70, 0x25, 0xa7,
+ 0xd3, 0x07, 0x12, 0xdc,
+};
+static const unsigned char kat298_persstr[] = {
+ 0x35, 0x90, 0x15, 0x3e, 0xf3, 0xb5, 0x80, 0x51, 0x6a, 0x0a, 0xae, 0x3e,
+ 0x9c, 0xc7, 0xe3, 0x8c, 0x3e, 0xe6, 0xf1, 0x70, 0x3b, 0xf7, 0x7a, 0x3a,
+ 0x6d, 0x8f, 0xdb, 0x58, 0x40, 0x0c, 0xf1, 0x20,
+};
+static const unsigned char kat298_addin0[] = {
+ 0x7d, 0x62, 0xa4, 0x68, 0x7d, 0x5c, 0x11, 0xd3, 0x7c, 0x3a, 0x86, 0x47,
+ 0x4a, 0x53, 0x22, 0x8c, 0xa5, 0x30, 0x7e, 0xc5, 0x80, 0x1d, 0xc2, 0x49,
+ 0x53, 0xa0, 0x12, 0x88, 0xde, 0x86, 0x8b, 0xdb,
+};
+static const unsigned char kat298_addin1[] = {
+ 0xf4, 0xce, 0x4d, 0x4b, 0x6c, 0xc8, 0x04, 0x1c, 0xc0, 0x94, 0xf0, 0x5f,
+ 0xb4, 0x68, 0x36, 0xfe, 0x79, 0x4c, 0x81, 0x0a, 0x00, 0xea, 0x54, 0x54,
+ 0x26, 0x29, 0x74, 0x96, 0xd1, 0xb3, 0xda, 0x84,
+};
+static const unsigned char kat298_retbits[] = {
+ 0x91, 0x91, 0x88, 0x42, 0x1a, 0xc9, 0x04, 0xb1, 0x86, 0x98, 0x66, 0x2d,
+ 0xf0, 0x6b, 0x1b, 0x2c, 0x61, 0xd9, 0x38, 0xee, 0x32, 0x45, 0x70, 0xa4,
+ 0xd3, 0xfd, 0x84, 0x53, 0x47, 0xf7, 0x6a, 0xb9, 0x0e, 0xa8, 0x98, 0xe8,
+ 0x74, 0xd5, 0x29, 0x07, 0x75, 0x42, 0x94, 0x1d, 0xf5, 0x47, 0xdc, 0xd1,
+ 0xb0, 0xa3, 0x70, 0xad, 0xb8, 0xf3, 0xcf, 0x2b, 0x66, 0x50, 0x9f, 0x2a,
+ 0xa0, 0x0c, 0xe0, 0x07,
+};
+static const struct drbg_kat_no_reseed kat298_t = {
+ 12, kat298_entropyin, kat298_nonce, kat298_persstr,
+ kat298_addin0, kat298_addin1, kat298_retbits
+};
+static const struct drbg_kat kat298 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat298_t
+};
+
+static const unsigned char kat299_entropyin[] = {
+ 0x80, 0x0e, 0xa2, 0xb7, 0xe2, 0xa3, 0x4b, 0xa4, 0xe0, 0x4a, 0x8b, 0x2e,
+ 0x3f, 0x40, 0x4a, 0x4e, 0xbe, 0x78, 0xd1, 0xb1, 0x19, 0x64, 0x71, 0x0b,
+};
+static const unsigned char kat299_nonce[] = {
+ 0x26, 0x14, 0xf4, 0x44, 0xb7, 0x0a, 0x50, 0xd8, 0xae, 0x85, 0x27, 0x07,
+ 0x86, 0x74, 0x16, 0x35,
+};
+static const unsigned char kat299_persstr[] = {
+ 0x61, 0x11, 0x2f, 0x45, 0x79, 0xe8, 0xda, 0x87, 0xf9, 0xbd, 0x33, 0xaa,
+ 0xd0, 0x8f, 0xbe, 0xea, 0x17, 0xe7, 0x8d, 0xe3, 0xdb, 0xf6, 0xa7, 0x55,
+ 0x49, 0xdc, 0x50, 0xd2, 0xa9, 0x22, 0x72, 0x16,
+};
+static const unsigned char kat299_addin0[] = {
+ 0x67, 0x1b, 0x8c, 0xc5, 0x1f, 0x1c, 0x53, 0xe4, 0x25, 0xd5, 0xf9, 0x7d,
+ 0x73, 0x05, 0x30, 0x21, 0xdd, 0x6a, 0xf2, 0x3f, 0x6a, 0xbd, 0xa8, 0x2e,
+ 0xfb, 0x00, 0x63, 0x75, 0xfd, 0xfe, 0x68, 0x18,
+};
+static const unsigned char kat299_addin1[] = {
+ 0x50, 0x2f, 0xc3, 0xd1, 0xe8, 0x9e, 0x17, 0xf0, 0xf1, 0x11, 0xdf, 0xa3,
+ 0x2c, 0x74, 0x8a, 0x79, 0xdd, 0x1b, 0x1e, 0x19, 0x02, 0x40, 0x27, 0xbc,
+ 0x0d, 0x92, 0xed, 0x30, 0x63, 0x85, 0x5b, 0x07,
+};
+static const unsigned char kat299_retbits[] = {
+ 0xad, 0xfc, 0xe1, 0x6f, 0x2f, 0x64, 0x82, 0xd0, 0x19, 0x0d, 0xdd, 0xbb,
+ 0x89, 0xea, 0xd4, 0x48, 0xe3, 0x32, 0x64, 0xfb, 0xe9, 0xf7, 0x6e, 0xf7,
+ 0x53, 0x07, 0x62, 0x25, 0xf1, 0xc4, 0x30, 0x68, 0x6f, 0x33, 0x2c, 0xba,
+ 0x84, 0x54, 0xab, 0x81, 0xef, 0x91, 0x86, 0xa8, 0x2a, 0x81, 0x45, 0x31,
+ 0xc4, 0x9a, 0x1e, 0x46, 0xa2, 0x37, 0x2f, 0xd0, 0x6f, 0xfc, 0x57, 0x68,
+ 0x23, 0x00, 0x1b, 0x97,
+};
+static const struct drbg_kat_no_reseed kat299_t = {
+ 13, kat299_entropyin, kat299_nonce, kat299_persstr,
+ kat299_addin0, kat299_addin1, kat299_retbits
+};
+static const struct drbg_kat kat299 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat299_t
+};
+
+static const unsigned char kat300_entropyin[] = {
+ 0x46, 0xbc, 0x30, 0x11, 0x14, 0x29, 0x14, 0xe8, 0x7f, 0x3b, 0xed, 0xea,
+ 0x5d, 0x09, 0xed, 0xc1, 0x88, 0xac, 0xdb, 0x2b, 0xd4, 0x96, 0x2d, 0x5e,
+};
+static const unsigned char kat300_nonce[] = {
+ 0x99, 0xb0, 0xb4, 0xb4, 0x42, 0xe8, 0x5e, 0xaf, 0x63, 0x8a, 0xb4, 0x65,
+ 0x44, 0x37, 0xc6, 0xbf,
+};
+static const unsigned char kat300_persstr[] = {
+ 0x5b, 0xe5, 0x1d, 0x43, 0x7e, 0x75, 0x05, 0x7d, 0xd2, 0xef, 0x4c, 0xa7,
+ 0x44, 0x3f, 0xad, 0xe0, 0x7d, 0x52, 0x0d, 0x17, 0x07, 0x4b, 0x5b, 0xd7,
+ 0x3a, 0xca, 0x11, 0x17, 0x31, 0xb5, 0x08, 0xa5,
+};
+static const unsigned char kat300_addin0[] = {
+ 0x81, 0xa5, 0x40, 0xc5, 0xf3, 0x37, 0x9a, 0x46, 0xa2, 0xea, 0x35, 0xcf,
+ 0xa3, 0x58, 0xd6, 0x7f, 0x6b, 0x35, 0xc0, 0x23, 0xf9, 0x10, 0x30, 0x4b,
+ 0x87, 0x37, 0x44, 0xaa, 0xb6, 0x32, 0x55, 0xbf,
+};
+static const unsigned char kat300_addin1[] = {
+ 0x55, 0xa2, 0xe3, 0x45, 0x99, 0xb0, 0x05, 0x08, 0xea, 0x03, 0x89, 0x56,
+ 0x3c, 0xf5, 0xc6, 0x63, 0x77, 0x5e, 0x4c, 0x19, 0x13, 0x01, 0x3e, 0x65,
+ 0x99, 0x9e, 0xa1, 0x52, 0x94, 0x78, 0x84, 0xfb,
+};
+static const unsigned char kat300_retbits[] = {
+ 0x56, 0x22, 0xea, 0x84, 0x41, 0x40, 0x52, 0x21, 0x81, 0xd8, 0x3c, 0x5d,
+ 0xb4, 0x31, 0x8e, 0xfe, 0xa2, 0x59, 0x07, 0x80, 0x70, 0x5b, 0x94, 0x9a,
+ 0x94, 0x22, 0xf0, 0xee, 0x57, 0x0c, 0x3e, 0x61, 0x35, 0x61, 0x64, 0xc2,
+ 0xe8, 0xc3, 0x27, 0x5f, 0x5e, 0xdc, 0x8c, 0xf1, 0x8b, 0x71, 0xec, 0xd6,
+ 0x34, 0xea, 0xe5, 0x29, 0x01, 0xca, 0xa5, 0x23, 0x04, 0x7d, 0xc1, 0x78,
+ 0xf0, 0x2f, 0x2c, 0xc6,
+};
+static const struct drbg_kat_no_reseed kat300_t = {
+ 14, kat300_entropyin, kat300_nonce, kat300_persstr,
+ kat300_addin0, kat300_addin1, kat300_retbits
+};
+static const struct drbg_kat kat300 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat300_t
+};
+
+static const unsigned char kat301_entropyin[] = {
+ 0xa5, 0x7c, 0xc3, 0xb9, 0x95, 0xf3, 0x55, 0x62, 0xba, 0x30, 0x61, 0x9c,
+ 0xe6, 0xc2, 0xb5, 0x1f, 0x22, 0x17, 0xbf, 0xf0, 0x14, 0x00, 0x6e, 0xf1,
+};
+static const unsigned char kat301_nonce[] = {
+ 0xe5, 0x0a, 0x31, 0x2b, 0x22, 0xd6, 0x8f, 0x32, 0x0d, 0x4b, 0xac, 0x24,
+ 0x0d, 0x41, 0x4f, 0x47,
+};
+static const unsigned char kat301_persstr[] = {0};
+static const unsigned char kat301_addin0[] = {0};
+static const unsigned char kat301_addin1[] = {0};
+static const unsigned char kat301_retbits[] = {
+ 0xf2, 0xcf, 0xfe, 0xb0, 0xf4, 0xff, 0xbe, 0x77, 0x3d, 0xc8, 0x04, 0x72,
+ 0x08, 0x2b, 0x3c, 0x0a, 0x87, 0x7a, 0xaa, 0x11, 0x3d, 0xc4, 0xd8, 0x67,
+ 0x8b, 0x25, 0xd8, 0x42, 0x02, 0x70, 0xe3, 0x50, 0x88, 0xcd, 0x9e, 0xb2,
+ 0xcb, 0xaa, 0xd9, 0xbc, 0x3d, 0x5b, 0x51, 0x86, 0x54, 0x47, 0x24, 0x5a,
+ 0x3a, 0x78, 0xb3, 0x8c, 0x51, 0xd0, 0xa1, 0x9c, 0xa0, 0x8c, 0x61, 0x95,
+ 0x58, 0x7d, 0xfd, 0x7a,
+};
+static const struct drbg_kat_no_reseed kat301_t = {
+ 0, kat301_entropyin, kat301_nonce, kat301_persstr,
+ kat301_addin0, kat301_addin1, kat301_retbits
+};
+static const struct drbg_kat kat301 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat301_t
+};
+
+static const unsigned char kat302_entropyin[] = {
+ 0x0b, 0x61, 0x0e, 0x89, 0x79, 0x68, 0x2f, 0x44, 0xd9, 0x37, 0xc9, 0x74,
+ 0xe7, 0x3a, 0x4c, 0x3d, 0xf9, 0x5a, 0x34, 0xb0, 0x92, 0x40, 0x5f, 0xe4,
+};
+static const unsigned char kat302_nonce[] = {
+ 0x08, 0x55, 0x81, 0xc0, 0x1f, 0xb9, 0x16, 0x15, 0x84, 0xb9, 0xf6, 0x52,
+ 0x6f, 0x54, 0x7b, 0x44,
+};
+static const unsigned char kat302_persstr[] = {0};
+static const unsigned char kat302_addin0[] = {0};
+static const unsigned char kat302_addin1[] = {0};
+static const unsigned char kat302_retbits[] = {
+ 0x28, 0x2d, 0xfb, 0x8a, 0x9e, 0xd6, 0x72, 0x12, 0x29, 0xf7, 0x81, 0xa1,
+ 0x5a, 0x70, 0x33, 0xad, 0xbc, 0xd4, 0x9a, 0x21, 0x0a, 0x23, 0x1e, 0x17,
+ 0xeb, 0x70, 0xd6, 0x4c, 0xa8, 0x03, 0x75, 0xa8, 0xff, 0xcb, 0x4e, 0x9a,
+ 0xc6, 0xe2, 0x32, 0x73, 0xca, 0x96, 0x54, 0xe6, 0x71, 0xcc, 0xb1, 0xae,
+ 0x3b, 0xb5, 0x96, 0xbf, 0x7a, 0x8d, 0xf5, 0xdd, 0x23, 0x0b, 0xf4, 0xa2,
+ 0xb3, 0x9b, 0xf9, 0x6f,
+};
+static const struct drbg_kat_no_reseed kat302_t = {
+ 1, kat302_entropyin, kat302_nonce, kat302_persstr,
+ kat302_addin0, kat302_addin1, kat302_retbits
+};
+static const struct drbg_kat kat302 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat302_t
+};
+
+static const unsigned char kat303_entropyin[] = {
+ 0xf9, 0x3e, 0x04, 0x17, 0x48, 0x91, 0x02, 0x81, 0xa4, 0xff, 0x37, 0xef,
+ 0xe8, 0x30, 0xac, 0x02, 0x64, 0xe4, 0xb1, 0x2e, 0xce, 0x06, 0x78, 0xee,
+};
+static const unsigned char kat303_nonce[] = {
+ 0x7d, 0x4d, 0x6c, 0x54, 0x5d, 0xe8, 0xc8, 0x11, 0x84, 0x55, 0x59, 0x54,
+ 0x34, 0x65, 0x1b, 0xbc,
+};
+static const unsigned char kat303_persstr[] = {0};
+static const unsigned char kat303_addin0[] = {0};
+static const unsigned char kat303_addin1[] = {0};
+static const unsigned char kat303_retbits[] = {
+ 0xa7, 0x3e, 0x59, 0xa6, 0x6d, 0xe5, 0x02, 0x29, 0x8a, 0x81, 0x06, 0x93,
+ 0x9f, 0xfa, 0xf8, 0x56, 0xaf, 0x9f, 0x17, 0x2b, 0x85, 0xf5, 0xe9, 0x9b,
+ 0x05, 0x7d, 0x6b, 0x4d, 0x6e, 0xf0, 0x52, 0xf1, 0x22, 0x67, 0x00, 0xe5,
+ 0xe3, 0x98, 0xe6, 0x80, 0x2f, 0x2a, 0x4a, 0xfa, 0x04, 0xe7, 0xff, 0x00,
+ 0xc4, 0x6f, 0x57, 0xf3, 0x45, 0xeb, 0x03, 0xde, 0x8f, 0xa7, 0x79, 0x5a,
+ 0x06, 0x0c, 0xf3, 0x40,
+};
+static const struct drbg_kat_no_reseed kat303_t = {
+ 2, kat303_entropyin, kat303_nonce, kat303_persstr,
+ kat303_addin0, kat303_addin1, kat303_retbits
+};
+static const struct drbg_kat kat303 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat303_t
+};
+
+static const unsigned char kat304_entropyin[] = {
+ 0x81, 0x48, 0x86, 0xa6, 0xb9, 0xa3, 0xcf, 0xc3, 0x18, 0x78, 0x5b, 0x41,
+ 0x93, 0x9f, 0x7b, 0x07, 0x5e, 0xc6, 0xb0, 0x0f, 0xc7, 0xff, 0x1c, 0x9c,
+};
+static const unsigned char kat304_nonce[] = {
+ 0xd1, 0x33, 0x13, 0x12, 0x3f, 0xbc, 0x45, 0xce, 0x8b, 0x9e, 0x8a, 0x0a,
+ 0x4d, 0x82, 0xb2, 0x7a,
+};
+static const unsigned char kat304_persstr[] = {0};
+static const unsigned char kat304_addin0[] = {0};
+static const unsigned char kat304_addin1[] = {0};
+static const unsigned char kat304_retbits[] = {
+ 0xba, 0x2a, 0x7c, 0x50, 0xc6, 0xd3, 0xe7, 0xef, 0x2d, 0x84, 0x91, 0x06,
+ 0xc6, 0xe8, 0x33, 0x10, 0xd9, 0xad, 0x1c, 0x1d, 0x0e, 0xf5, 0x3e, 0x61,
+ 0xc8, 0xb9, 0x55, 0xac, 0xb4, 0xef, 0x43, 0x42, 0xe1, 0xc0, 0xf5, 0xf2,
+ 0x2e, 0x19, 0xbb, 0x1e, 0xea, 0x5d, 0x0f, 0x03, 0xb6, 0xd5, 0x96, 0x92,
+ 0x91, 0xc4, 0x01, 0xfb, 0x6c, 0x55, 0xc9, 0x9f, 0x42, 0x52, 0xb6, 0xca,
+ 0x7f, 0x34, 0x19, 0x35,
+};
+static const struct drbg_kat_no_reseed kat304_t = {
+ 3, kat304_entropyin, kat304_nonce, kat304_persstr,
+ kat304_addin0, kat304_addin1, kat304_retbits
+};
+static const struct drbg_kat kat304 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat304_t
+};
+
+static const unsigned char kat305_entropyin[] = {
+ 0x69, 0xce, 0x9b, 0xc6, 0xa2, 0x66, 0x95, 0x02, 0x70, 0xba, 0xb4, 0x7f,
+ 0x50, 0x19, 0xf5, 0x76, 0xfb, 0x9d, 0xee, 0x08, 0x17, 0x9b, 0x34, 0xeb,
+};
+static const unsigned char kat305_nonce[] = {
+ 0x63, 0x02, 0x5d, 0x58, 0x8f, 0x1d, 0x08, 0xf3, 0x81, 0x16, 0x96, 0xa6,
+ 0x3a, 0x10, 0x02, 0xe7,
+};
+static const unsigned char kat305_persstr[] = {0};
+static const unsigned char kat305_addin0[] = {0};
+static const unsigned char kat305_addin1[] = {0};
+static const unsigned char kat305_retbits[] = {
+ 0x5e, 0x52, 0xaf, 0xd2, 0xa8, 0x67, 0x01, 0xcb, 0x40, 0xbd, 0x77, 0xba,
+ 0xf5, 0x5e, 0xff, 0x3a, 0x6c, 0x9f, 0x84, 0x34, 0x56, 0xed, 0x64, 0xd4,
+ 0x01, 0x53, 0x32, 0x77, 0x9f, 0xe0, 0xb2, 0x6a, 0xea, 0xc6, 0x34, 0xcb,
+ 0x06, 0x21, 0xc4, 0x3b, 0x3a, 0xb7, 0x1e, 0xea, 0x2a, 0xdf, 0x96, 0x31,
+ 0x2d, 0x38, 0x5c, 0x62, 0xc3, 0x1c, 0x09, 0x51, 0x52, 0x32, 0x60, 0xc4,
+ 0x69, 0xb2, 0x7d, 0x88,
+};
+static const struct drbg_kat_no_reseed kat305_t = {
+ 4, kat305_entropyin, kat305_nonce, kat305_persstr,
+ kat305_addin0, kat305_addin1, kat305_retbits
+};
+static const struct drbg_kat kat305 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat305_t
+};
+
+static const unsigned char kat306_entropyin[] = {
+ 0x25, 0x46, 0x9a, 0x3c, 0x9a, 0x37, 0xbd, 0x9e, 0xa9, 0x1c, 0x6f, 0x24,
+ 0x3e, 0x44, 0x4c, 0x1b, 0x36, 0x03, 0x01, 0x52, 0xd6, 0x38, 0x00, 0xf5,
+};
+static const unsigned char kat306_nonce[] = {
+ 0xa2, 0xb8, 0x39, 0xab, 0xcf, 0xe4, 0xa8, 0x73, 0x68, 0x65, 0x6f, 0x43,
+ 0xb5, 0xbb, 0x4e, 0x2e,
+};
+static const unsigned char kat306_persstr[] = {0};
+static const unsigned char kat306_addin0[] = {0};
+static const unsigned char kat306_addin1[] = {0};
+static const unsigned char kat306_retbits[] = {
+ 0x32, 0xc1, 0xfd, 0x38, 0xda, 0x53, 0xad, 0xbc, 0x0a, 0x21, 0xa8, 0x28,
+ 0xdd, 0xdc, 0xb6, 0x80, 0x9f, 0xb0, 0x1d, 0x28, 0x30, 0xc6, 0xa5, 0x44,
+ 0xd1, 0x2f, 0x55, 0xfa, 0x2e, 0x44, 0x43, 0xf9, 0x5f, 0x00, 0x5c, 0x0f,
+ 0xf2, 0x4c, 0x64, 0x92, 0xb6, 0x40, 0x95, 0xe3, 0x74, 0x6f, 0x07, 0x12,
+ 0x2f, 0x98, 0x3d, 0x23, 0x8f, 0x23, 0xda, 0xff, 0xf7, 0x10, 0x3a, 0x7c,
+ 0xda, 0x57, 0xeb, 0x0e,
+};
+static const struct drbg_kat_no_reseed kat306_t = {
+ 5, kat306_entropyin, kat306_nonce, kat306_persstr,
+ kat306_addin0, kat306_addin1, kat306_retbits
+};
+static const struct drbg_kat kat306 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat306_t
+};
+
+static const unsigned char kat307_entropyin[] = {
+ 0xb8, 0x8a, 0x61, 0x0e, 0x68, 0x7c, 0x1e, 0x06, 0xd1, 0x8c, 0xa9, 0x12,
+ 0x86, 0x6b, 0x55, 0xd2, 0x76, 0xa7, 0x89, 0xcf, 0xf9, 0x43, 0x95, 0x95,
+};
+static const unsigned char kat307_nonce[] = {
+ 0x25, 0x4f, 0x4b, 0xaa, 0x2b, 0x34, 0xe9, 0x89, 0x8d, 0x5f, 0x78, 0x59,
+ 0x77, 0x24, 0xdd, 0xc7,
+};
+static const unsigned char kat307_persstr[] = {0};
+static const unsigned char kat307_addin0[] = {0};
+static const unsigned char kat307_addin1[] = {0};
+static const unsigned char kat307_retbits[] = {
+ 0x32, 0x41, 0x1f, 0x32, 0x50, 0xbf, 0x2a, 0x18, 0xce, 0xd4, 0x8f, 0x52,
+ 0x2b, 0x3c, 0xc3, 0x06, 0xaf, 0xc1, 0x8e, 0x7a, 0x36, 0xcd, 0x64, 0x81,
+ 0x66, 0x47, 0xa0, 0x0c, 0x22, 0x1b, 0x99, 0x6a, 0x82, 0xee, 0x85, 0x0b,
+ 0x7c, 0x0a, 0x8c, 0xa2, 0x24, 0x1b, 0x7c, 0x6e, 0x64, 0x5b, 0x45, 0x3e,
+ 0x01, 0xfc, 0x35, 0xfb, 0xa5, 0x4d, 0x5b, 0xae, 0xd9, 0x22, 0x8a, 0x98,
+ 0xa6, 0x72, 0xdb, 0x67,
+};
+static const struct drbg_kat_no_reseed kat307_t = {
+ 6, kat307_entropyin, kat307_nonce, kat307_persstr,
+ kat307_addin0, kat307_addin1, kat307_retbits
+};
+static const struct drbg_kat kat307 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat307_t
+};
+
+static const unsigned char kat308_entropyin[] = {
+ 0xf3, 0x2b, 0xb1, 0x0c, 0x9e, 0x0d, 0x8f, 0x53, 0x45, 0x38, 0x94, 0x0f,
+ 0xba, 0xa3, 0x68, 0x44, 0xe7, 0xf6, 0xf0, 0x91, 0x97, 0x50, 0xe1, 0xeb,
+};
+static const unsigned char kat308_nonce[] = {
+ 0x33, 0x4b, 0x85, 0xe0, 0x31, 0x51, 0x96, 0x07, 0xe0, 0x01, 0xa2, 0x87,
+ 0xe3, 0x25, 0x83, 0x22,
+};
+static const unsigned char kat308_persstr[] = {0};
+static const unsigned char kat308_addin0[] = {0};
+static const unsigned char kat308_addin1[] = {0};
+static const unsigned char kat308_retbits[] = {
+ 0x75, 0x58, 0xc5, 0x96, 0x84, 0xf7, 0xa0, 0x47, 0xa1, 0xe5, 0x92, 0x9c,
+ 0x8a, 0x37, 0xde, 0xfc, 0x2f, 0x1f, 0x55, 0x4a, 0x34, 0xc4, 0x7f, 0xcd,
+ 0x9d, 0xda, 0xcf, 0x88, 0xbb, 0xf7, 0xea, 0xc4, 0x07, 0x04, 0xae, 0xaa,
+ 0x50, 0x3c, 0xff, 0x89, 0x63, 0x29, 0x5e, 0x70, 0x24, 0x35, 0xf7, 0x3c,
+ 0x93, 0xff, 0x35, 0x4f, 0x52, 0x9e, 0xe2, 0xda, 0x08, 0xc3, 0x50, 0xd4,
+ 0xcc, 0xb6, 0xd4, 0x5f,
+};
+static const struct drbg_kat_no_reseed kat308_t = {
+ 7, kat308_entropyin, kat308_nonce, kat308_persstr,
+ kat308_addin0, kat308_addin1, kat308_retbits
+};
+static const struct drbg_kat kat308 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat308_t
+};
+
+static const unsigned char kat309_entropyin[] = {
+ 0xcf, 0x14, 0x4d, 0xdf, 0xc1, 0x32, 0xa6, 0xa6, 0xe7, 0xb5, 0xa1, 0xef,
+ 0xd5, 0x15, 0xc7, 0x04, 0xfc, 0x22, 0x82, 0x3e, 0x21, 0x7d, 0x32, 0xdd,
+};
+static const unsigned char kat309_nonce[] = {
+ 0x5a, 0x0b, 0xc0, 0xc8, 0x7c, 0xcc, 0xd9, 0x08, 0xb4, 0x40, 0xd6, 0xa4,
+ 0xc7, 0x38, 0xfa, 0x74,
+};
+static const unsigned char kat309_persstr[] = {0};
+static const unsigned char kat309_addin0[] = {0};
+static const unsigned char kat309_addin1[] = {0};
+static const unsigned char kat309_retbits[] = {
+ 0x86, 0x5d, 0xb2, 0xd0, 0x71, 0x1d, 0xd3, 0xfd, 0xd5, 0xd2, 0xa1, 0x9a,
+ 0x65, 0xfb, 0x93, 0x1e, 0xec, 0xd8, 0x2b, 0xa2, 0xa7, 0xf2, 0xe5, 0x3b,
+ 0xd6, 0x42, 0x0a, 0x8b, 0x16, 0x47, 0xa4, 0x18, 0x02, 0xc0, 0x4f, 0x9b,
+ 0x6b, 0xa3, 0x4b, 0x85, 0xa7, 0x2b, 0x48, 0xfd, 0xe7, 0x60, 0x52, 0x3e,
+ 0x28, 0xd8, 0x7e, 0xda, 0xc9, 0xb8, 0xad, 0x6c, 0xba, 0x36, 0x1f, 0x13,
+ 0x53, 0xfd, 0x39, 0xae,
+};
+static const struct drbg_kat_no_reseed kat309_t = {
+ 8, kat309_entropyin, kat309_nonce, kat309_persstr,
+ kat309_addin0, kat309_addin1, kat309_retbits
+};
+static const struct drbg_kat kat309 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat309_t
+};
+
+static const unsigned char kat310_entropyin[] = {
+ 0xad, 0xe1, 0x90, 0x85, 0x34, 0x62, 0x4c, 0x6b, 0xc3, 0x75, 0x4d, 0xe0,
+ 0xdb, 0x75, 0x31, 0x38, 0x35, 0xa8, 0x28, 0x57, 0x2c, 0xd2, 0x77, 0xbd,
+};
+static const unsigned char kat310_nonce[] = {
+ 0x05, 0xa5, 0xb6, 0xd2, 0x1b, 0x98, 0x05, 0x05, 0x93, 0xab, 0x98, 0x13,
+ 0x26, 0x8e, 0x2d, 0xc2,
+};
+static const unsigned char kat310_persstr[] = {0};
+static const unsigned char kat310_addin0[] = {0};
+static const unsigned char kat310_addin1[] = {0};
+static const unsigned char kat310_retbits[] = {
+ 0xef, 0xb7, 0xb7, 0x7b, 0x76, 0xd7, 0xbf, 0x57, 0x1a, 0x9b, 0xb1, 0x3e,
+ 0x39, 0xec, 0x46, 0xa1, 0x9e, 0x91, 0x35, 0xab, 0x08, 0x6d, 0x06, 0xd5,
+ 0x9b, 0x20, 0xf0, 0x0c, 0x78, 0xf2, 0xaa, 0xa8, 0x48, 0xf6, 0x29, 0x32,
+ 0x7a, 0x0d, 0x67, 0x07, 0x29, 0xa4, 0x53, 0x91, 0xf2, 0xf0, 0x23, 0xa8,
+ 0xf4, 0x5f, 0x1c, 0xb1, 0x0b, 0x40, 0xc6, 0x61, 0x83, 0x17, 0xa4, 0x6a,
+ 0xfe, 0x0a, 0xe1, 0x30,
+};
+static const struct drbg_kat_no_reseed kat310_t = {
+ 9, kat310_entropyin, kat310_nonce, kat310_persstr,
+ kat310_addin0, kat310_addin1, kat310_retbits
+};
+static const struct drbg_kat kat310 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat310_t
+};
+
+static const unsigned char kat311_entropyin[] = {
+ 0x38, 0x80, 0xc2, 0x26, 0x90, 0x82, 0x47, 0x5c, 0x16, 0xb9, 0x78, 0xc7,
+ 0x2a, 0xf1, 0xde, 0x9d, 0x74, 0xec, 0x3c, 0x76, 0x94, 0xc5, 0x19, 0xca,
+};
+static const unsigned char kat311_nonce[] = {
+ 0x83, 0xea, 0xd0, 0xf2, 0xd4, 0x6d, 0x8d, 0x1a, 0x77, 0x86, 0x90, 0xae,
+ 0x51, 0x2d, 0x66, 0xbd,
+};
+static const unsigned char kat311_persstr[] = {0};
+static const unsigned char kat311_addin0[] = {0};
+static const unsigned char kat311_addin1[] = {0};
+static const unsigned char kat311_retbits[] = {
+ 0xaf, 0x4d, 0x71, 0xc1, 0x14, 0x75, 0x52, 0xbf, 0x8b, 0x35, 0x8e, 0x16,
+ 0xc9, 0xc7, 0xfe, 0x7f, 0x03, 0x66, 0x20, 0xcb, 0xd6, 0x1f, 0x14, 0x32,
+ 0xc8, 0xc5, 0xf2, 0x70, 0xda, 0xcc, 0xb2, 0xb9, 0xe1, 0x5c, 0x12, 0xe9,
+ 0xf5, 0x92, 0x10, 0x47, 0xdc, 0x92, 0xd4, 0x0a, 0x90, 0xe4, 0x5b, 0xf1,
+ 0x5f, 0xef, 0x12, 0x0a, 0x3e, 0x08, 0x42, 0x13, 0x54, 0x67, 0x4c, 0x95,
+ 0xa6, 0x30, 0x77, 0xe3,
+};
+static const struct drbg_kat_no_reseed kat311_t = {
+ 10, kat311_entropyin, kat311_nonce, kat311_persstr,
+ kat311_addin0, kat311_addin1, kat311_retbits
+};
+static const struct drbg_kat kat311 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat311_t
+};
+
+static const unsigned char kat312_entropyin[] = {
+ 0xb1, 0xd2, 0xc9, 0xab, 0x5a, 0x90, 0x45, 0x67, 0xbd, 0x03, 0x11, 0xc6,
+ 0x42, 0x04, 0x7d, 0xe1, 0xb3, 0x94, 0x41, 0xa5, 0xe2, 0xd9, 0x01, 0xbe,
+};
+static const unsigned char kat312_nonce[] = {
+ 0x91, 0xc8, 0xd1, 0x9b, 0xf5, 0xd4, 0xf9, 0x51, 0x1f, 0x6c, 0x66, 0x53,
+ 0xa6, 0x58, 0x5b, 0xa6,
+};
+static const unsigned char kat312_persstr[] = {0};
+static const unsigned char kat312_addin0[] = {0};
+static const unsigned char kat312_addin1[] = {0};
+static const unsigned char kat312_retbits[] = {
+ 0x8b, 0xc7, 0xb7, 0x90, 0xc7, 0x7b, 0x04, 0x7f, 0x7a, 0x17, 0x86, 0x41,
+ 0x61, 0x5c, 0x29, 0x5b, 0x16, 0x4b, 0x09, 0x03, 0x7c, 0x06, 0xa8, 0xdf,
+ 0x76, 0xbd, 0xa5, 0x9b, 0x77, 0xed, 0x28, 0x5f, 0x80, 0x8c, 0x96, 0xa4,
+ 0xb4, 0x9b, 0x45, 0x94, 0xa1, 0x82, 0x99, 0xc2, 0xa6, 0x2b, 0x1e, 0x0d,
+ 0x9c, 0xaa, 0xeb, 0x0f, 0x82, 0xc1, 0xde, 0x35, 0xb4, 0x28, 0x03, 0x8d,
+ 0x10, 0xab, 0x00, 0xc0,
+};
+static const struct drbg_kat_no_reseed kat312_t = {
+ 11, kat312_entropyin, kat312_nonce, kat312_persstr,
+ kat312_addin0, kat312_addin1, kat312_retbits
+};
+static const struct drbg_kat kat312 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat312_t
+};
+
+static const unsigned char kat313_entropyin[] = {
+ 0x19, 0x70, 0x0c, 0xe2, 0x88, 0x3e, 0xac, 0x51, 0x58, 0x75, 0xfc, 0x91,
+ 0x35, 0x3c, 0x9a, 0x9d, 0x59, 0x89, 0xb0, 0xd2, 0x9f, 0xa2, 0xee, 0xab,
+};
+static const unsigned char kat313_nonce[] = {
+ 0x56, 0x56, 0x44, 0x93, 0x11, 0xe2, 0x46, 0xee, 0x80, 0x25, 0xcf, 0x30,
+ 0x3d, 0x6b, 0x6d, 0xa9,
+};
+static const unsigned char kat313_persstr[] = {0};
+static const unsigned char kat313_addin0[] = {0};
+static const unsigned char kat313_addin1[] = {0};
+static const unsigned char kat313_retbits[] = {
+ 0x00, 0x02, 0x17, 0x84, 0x99, 0x39, 0xed, 0x26, 0xc9, 0xd5, 0xfd, 0xd4,
+ 0xd0, 0x03, 0xd5, 0x7c, 0x12, 0xf5, 0x2f, 0x6e, 0x7d, 0xae, 0x36, 0x4e,
+ 0x73, 0x75, 0x8c, 0x7f, 0xd1, 0x22, 0x5b, 0x17, 0xae, 0x66, 0xf3, 0x83,
+ 0x79, 0xa9, 0x03, 0xe7, 0x84, 0x54, 0x46, 0xf0, 0x99, 0x8a, 0x87, 0x45,
+ 0xe9, 0xae, 0xc9, 0xb4, 0xba, 0x31, 0x73, 0xba, 0x1b, 0x29, 0x21, 0xea,
+ 0xac, 0x31, 0x3e, 0x58,
+};
+static const struct drbg_kat_no_reseed kat313_t = {
+ 12, kat313_entropyin, kat313_nonce, kat313_persstr,
+ kat313_addin0, kat313_addin1, kat313_retbits
+};
+static const struct drbg_kat kat313 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat313_t
+};
+
+static const unsigned char kat314_entropyin[] = {
+ 0x55, 0x21, 0x10, 0x48, 0x6f, 0x04, 0xb8, 0xb1, 0x73, 0x74, 0x8b, 0xe0,
+ 0x9d, 0xb8, 0x53, 0x02, 0x3d, 0x7d, 0x1e, 0x6b, 0x9e, 0x63, 0x11, 0xf4,
+};
+static const unsigned char kat314_nonce[] = {
+ 0xd2, 0x8c, 0x45, 0xca, 0x09, 0xd5, 0x11, 0x04, 0xd5, 0x19, 0xd3, 0x81,
+ 0xb0, 0x0c, 0xd7, 0x12,
+};
+static const unsigned char kat314_persstr[] = {0};
+static const unsigned char kat314_addin0[] = {0};
+static const unsigned char kat314_addin1[] = {0};
+static const unsigned char kat314_retbits[] = {
+ 0xb3, 0x5b, 0x8c, 0xde, 0x56, 0xd5, 0xb2, 0xa3, 0x65, 0xa7, 0x55, 0xe4,
+ 0xd0, 0xbd, 0xbf, 0x70, 0x02, 0xe4, 0xb0, 0x61, 0x99, 0xa3, 0x42, 0xf1,
+ 0xb9, 0x8b, 0x73, 0x43, 0x11, 0xfc, 0xab, 0x66, 0xaf, 0x1e, 0xea, 0x2c,
+ 0x7f, 0xbc, 0x26, 0x42, 0xac, 0x36, 0x4c, 0x92, 0x0a, 0xf7, 0x24, 0xe3,
+ 0x7d, 0x45, 0xe8, 0xc1, 0x7c, 0xd4, 0x46, 0x7b, 0x89, 0x2a, 0x45, 0x36,
+ 0x47, 0x94, 0xa7, 0x46,
+};
+static const struct drbg_kat_no_reseed kat314_t = {
+ 13, kat314_entropyin, kat314_nonce, kat314_persstr,
+ kat314_addin0, kat314_addin1, kat314_retbits
+};
+static const struct drbg_kat kat314 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat314_t
+};
+
+static const unsigned char kat315_entropyin[] = {
+ 0xb2, 0xf6, 0x05, 0xfc, 0xf9, 0x92, 0x9b, 0x12, 0x43, 0xc8, 0x81, 0x99,
+ 0x14, 0x3f, 0x15, 0x42, 0x66, 0xfd, 0x85, 0x87, 0xc9, 0x0a, 0xaa, 0xb2,
+};
+static const unsigned char kat315_nonce[] = {
+ 0x78, 0x1c, 0x85, 0x7f, 0x75, 0xbb, 0x59, 0x48, 0xc2, 0xa2, 0x2d, 0xd7,
+ 0x57, 0xb2, 0x47, 0xbe,
+};
+static const unsigned char kat315_persstr[] = {0};
+static const unsigned char kat315_addin0[] = {0};
+static const unsigned char kat315_addin1[] = {0};
+static const unsigned char kat315_retbits[] = {
+ 0x77, 0x53, 0x79, 0x7b, 0x7b, 0x37, 0x25, 0xc8, 0x73, 0x9f, 0xf2, 0x11,
+ 0xa0, 0xcc, 0x8a, 0xe8, 0xa1, 0xe0, 0xf2, 0x80, 0x86, 0xed, 0xe4, 0xd4,
+ 0xf8, 0x36, 0xde, 0xe5, 0x7f, 0xbd, 0x78, 0x80, 0xf1, 0x05, 0x21, 0x24,
+ 0x27, 0x59, 0xb9, 0x72, 0x5a, 0x08, 0xcb, 0x64, 0x96, 0x59, 0xa2, 0xd8,
+ 0x1f, 0x54, 0x0e, 0x93, 0xf8, 0x7e, 0x49, 0x31, 0xd8, 0x1b, 0x59, 0xd9,
+ 0xcd, 0xcf, 0x45, 0xc0,
+};
+static const struct drbg_kat_no_reseed kat315_t = {
+ 14, kat315_entropyin, kat315_nonce, kat315_persstr,
+ kat315_addin0, kat315_addin1, kat315_retbits
+};
+static const struct drbg_kat kat315 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat315_t
+};
+
+static const unsigned char kat316_entropyin[] = {
+ 0xe6, 0x20, 0x98, 0xa1, 0x6d, 0x60, 0xd2, 0x75, 0x98, 0xea, 0x4c, 0x97,
+ 0xf2, 0xf0, 0x13, 0xc4, 0xff, 0xbd, 0x45, 0x6b, 0x54, 0xa8, 0xfc, 0xf7,
+};
+static const unsigned char kat316_nonce[] = {
+ 0x10, 0x39, 0x1c, 0x9e, 0x4d, 0x79, 0x69, 0xfd, 0x2b, 0x1f, 0x89, 0x86,
+ 0xe0, 0x48, 0x60, 0xc8,
+};
+static const unsigned char kat316_persstr[] = {0};
+static const unsigned char kat316_addin0[] = {
+ 0x6a, 0x7d, 0xb6, 0xd2, 0xf6, 0xf2, 0x35, 0x72, 0xfe, 0xff, 0xd3, 0xd7,
+ 0x74, 0x46, 0xf0, 0x7b, 0x92, 0x2e, 0xe7, 0xa9, 0xfe, 0x58, 0x01, 0x60,
+ 0xed, 0x2d, 0x8d, 0xd7, 0xff, 0xb5, 0x0b, 0x00,
+};
+static const unsigned char kat316_addin1[] = {
+ 0x1c, 0x4f, 0x98, 0x2a, 0xce, 0x96, 0xe7, 0x84, 0x10, 0x3e, 0xa2, 0x54,
+ 0xcf, 0xd6, 0x85, 0xe9, 0x5a, 0xda, 0xfe, 0x79, 0x88, 0xd9, 0xee, 0xbd,
+ 0xcd, 0x82, 0xe7, 0xba, 0x02, 0x5f, 0x31, 0x53,
+};
+static const unsigned char kat316_retbits[] = {
+ 0xaf, 0x0e, 0x2c, 0x20, 0x53, 0xe5, 0xa0, 0xef, 0x2d, 0xef, 0xa7, 0xdf,
+ 0xa6, 0xb4, 0x16, 0x4b, 0x4d, 0x83, 0x78, 0xf0, 0x0d, 0xfd, 0x97, 0x62,
+ 0xdb, 0xa6, 0x3a, 0x67, 0xef, 0x5b, 0x58, 0xc8, 0xe1, 0xa8, 0x6f, 0x56,
+ 0x0c, 0xcd, 0x93, 0x37, 0x11, 0x62, 0x43, 0x60, 0x9b, 0xc4, 0xb4, 0x54,
+ 0xbf, 0x8d, 0x1a, 0x1a, 0xa3, 0xf9, 0x9a, 0xd1, 0xd2, 0x58, 0xc3, 0x18,
+ 0xc7, 0x2d, 0x14, 0x4c,
+};
+static const struct drbg_kat_no_reseed kat316_t = {
+ 0, kat316_entropyin, kat316_nonce, kat316_persstr,
+ kat316_addin0, kat316_addin1, kat316_retbits
+};
+static const struct drbg_kat kat316 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat316_t
+};
+
+static const unsigned char kat317_entropyin[] = {
+ 0x83, 0x02, 0x64, 0x0e, 0x79, 0xce, 0xab, 0x3c, 0x2b, 0x9f, 0x2b, 0x3e,
+ 0xf8, 0x7e, 0x6a, 0xd9, 0x07, 0xd1, 0x2e, 0xa9, 0xad, 0x1a, 0x07, 0xc7,
+};
+static const unsigned char kat317_nonce[] = {
+ 0xbc, 0xf4, 0xb6, 0xd5, 0xf6, 0x9c, 0xa0, 0x9b, 0xa4, 0xb3, 0xbf, 0x58,
+ 0x17, 0x23, 0xcd, 0x6b,
+};
+static const unsigned char kat317_persstr[] = {0};
+static const unsigned char kat317_addin0[] = {
+ 0xc2, 0x7f, 0x38, 0x0b, 0x39, 0xcb, 0xb7, 0x15, 0x25, 0x67, 0x28, 0xde,
+ 0x46, 0x85, 0xf3, 0xc4, 0x28, 0x7b, 0x6e, 0x3b, 0xaf, 0x13, 0xc0, 0xf1,
+ 0xbe, 0x9b, 0xb4, 0xc8, 0x4d, 0xec, 0xad, 0x11,
+};
+static const unsigned char kat317_addin1[] = {
+ 0x13, 0x52, 0x30, 0xd9, 0x56, 0x35, 0xfb, 0x88, 0xc7, 0x37, 0x07, 0x07,
+ 0x80, 0x18, 0x79, 0x2d, 0x40, 0x65, 0x84, 0x8a, 0xd8, 0x13, 0xab, 0x98,
+ 0x14, 0x95, 0x57, 0x1c, 0xf9, 0x88, 0x8e, 0x7c,
+};
+static const unsigned char kat317_retbits[] = {
+ 0x9c, 0x61, 0xdc, 0xac, 0x29, 0xe1, 0xd8, 0x50, 0x8a, 0xef, 0x25, 0x38,
+ 0xad, 0xe8, 0xa8, 0x38, 0xec, 0xf5, 0xc5, 0x06, 0x1a, 0xdc, 0xda, 0xfb,
+ 0xce, 0x37, 0x74, 0xbd, 0x24, 0x0c, 0xc6, 0x23, 0x0b, 0x68, 0x48, 0x55,
+ 0x92, 0xa2, 0xec, 0x2c, 0x0b, 0x9d, 0x6f, 0x4f, 0x82, 0x02, 0xb1, 0x63,
+ 0xb8, 0x3e, 0xbc, 0x75, 0x2c, 0xc0, 0x8c, 0xc9, 0x27, 0xe2, 0xa7, 0x9d,
+ 0xb1, 0xba, 0xb8, 0x1e,
+};
+static const struct drbg_kat_no_reseed kat317_t = {
+ 1, kat317_entropyin, kat317_nonce, kat317_persstr,
+ kat317_addin0, kat317_addin1, kat317_retbits
+};
+static const struct drbg_kat kat317 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat317_t
+};
+
+static const unsigned char kat318_entropyin[] = {
+ 0xee, 0xad, 0x03, 0x90, 0xcd, 0x19, 0x34, 0x10, 0xc5, 0x20, 0xeb, 0x54,
+ 0x14, 0xae, 0x6f, 0x2e, 0x2e, 0xb0, 0x0b, 0xf5, 0xae, 0x0a, 0xf3, 0xde,
+};
+static const unsigned char kat318_nonce[] = {
+ 0xd4, 0x0c, 0xa3, 0xe5, 0x21, 0xf2, 0xa5, 0x7e, 0x35, 0xbf, 0x3a, 0xed,
+ 0x30, 0x02, 0xab, 0xc0,
+};
+static const unsigned char kat318_persstr[] = {0};
+static const unsigned char kat318_addin0[] = {
+ 0xe4, 0x30, 0x9e, 0xc8, 0x51, 0x9e, 0xed, 0x08, 0xe1, 0x54, 0x21, 0x30,
+ 0x14, 0x51, 0x8f, 0x02, 0xa8, 0x38, 0x75, 0xc7, 0x7e, 0x6b, 0xcb, 0x6e,
+ 0xb1, 0xdc, 0x21, 0xb1, 0x48, 0xbc, 0x17, 0xc1,
+};
+static const unsigned char kat318_addin1[] = {
+ 0xa7, 0x6a, 0xae, 0xb9, 0xbd, 0xda, 0x28, 0x26, 0x38, 0xae, 0x77, 0x4f,
+ 0x35, 0xdf, 0x92, 0xa1, 0x0e, 0x2f, 0xdc, 0xb2, 0xfc, 0x91, 0x70, 0x3e,
+ 0xc8, 0xd5, 0x69, 0x37, 0x2d, 0x86, 0x89, 0x44,
+};
+static const unsigned char kat318_retbits[] = {
+ 0xb4, 0xb8, 0x0f, 0x0d, 0x94, 0xa4, 0xf9, 0x31, 0x07, 0xe4, 0xb5, 0x4c,
+ 0x11, 0x8f, 0xd8, 0xa8, 0xca, 0x62, 0xd6, 0x0c, 0x54, 0x25, 0x86, 0x54,
+ 0xfb, 0x83, 0xdc, 0x3f, 0x4d, 0x24, 0xcf, 0xeb, 0x58, 0xa3, 0x71, 0x4e,
+ 0xe6, 0xfa, 0x47, 0x8e, 0x86, 0xea, 0x64, 0x9a, 0x64, 0xe9, 0x4e, 0xa4,
+ 0x9e, 0x10, 0x88, 0x54, 0xbf, 0x04, 0x8e, 0x4b, 0xc6, 0xa0, 0xf0, 0xf9,
+ 0x74, 0x0a, 0xaf, 0x92,
+};
+static const struct drbg_kat_no_reseed kat318_t = {
+ 2, kat318_entropyin, kat318_nonce, kat318_persstr,
+ kat318_addin0, kat318_addin1, kat318_retbits
+};
+static const struct drbg_kat kat318 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat318_t
+};
+
+static const unsigned char kat319_entropyin[] = {
+ 0xee, 0x1e, 0x3a, 0xf7, 0x32, 0xbf, 0xf0, 0x4e, 0x9e, 0x45, 0xba, 0x62,
+ 0xdb, 0xe6, 0x27, 0x04, 0x97, 0x08, 0xb6, 0xef, 0x4a, 0xa7, 0x93, 0xe7,
+};
+static const unsigned char kat319_nonce[] = {
+ 0x53, 0x1e, 0xdb, 0xba, 0x82, 0xb1, 0x20, 0x02, 0x68, 0x35, 0xb8, 0x56,
+ 0xbb, 0x5b, 0x63, 0xe0,
+};
+static const unsigned char kat319_persstr[] = {0};
+static const unsigned char kat319_addin0[] = {
+ 0xc3, 0x8b, 0x7a, 0x6c, 0xc5, 0xd5, 0xd2, 0x3c, 0xe4, 0x16, 0xf9, 0x24,
+ 0xc6, 0x04, 0xd6, 0x4e, 0x37, 0x8d, 0xee, 0x31, 0xf3, 0xdd, 0x70, 0xb7,
+ 0xb1, 0x1d, 0x26, 0x5a, 0xcb, 0x45, 0xf9, 0x8f,
+};
+static const unsigned char kat319_addin1[] = {
+ 0x49, 0x3e, 0x62, 0x62, 0x78, 0xf6, 0xaf, 0x2a, 0xb9, 0x9c, 0x53, 0x35,
+ 0xc2, 0x9d, 0xac, 0x38, 0x25, 0xf8, 0x52, 0xaa, 0xcd, 0x3b, 0x23, 0x7a,
+ 0x3f, 0x01, 0x4b, 0x9a, 0xdf, 0xbe, 0x4d, 0x4a,
+};
+static const unsigned char kat319_retbits[] = {
+ 0x07, 0x6a, 0xa4, 0x2c, 0x35, 0x03, 0x55, 0x75, 0xf1, 0xf0, 0xa4, 0x92,
+ 0x28, 0x8d, 0xbb, 0x9c, 0x46, 0x28, 0xc0, 0x91, 0xfc, 0xb3, 0x4e, 0xb6,
+ 0xb8, 0x03, 0x9a, 0x88, 0x7b, 0xa1, 0xed, 0x8e, 0x00, 0x29, 0xb2, 0xd1,
+ 0x8c, 0x3c, 0x1c, 0x32, 0x1d, 0x7f, 0x0e, 0x20, 0xb7, 0xdb, 0xcc, 0xea,
+ 0x88, 0x6a, 0xd5, 0x18, 0xae, 0xff, 0x08, 0x9d, 0x44, 0x70, 0x9e, 0xaa,
+ 0x58, 0x3e, 0x45, 0xef,
+};
+static const struct drbg_kat_no_reseed kat319_t = {
+ 3, kat319_entropyin, kat319_nonce, kat319_persstr,
+ kat319_addin0, kat319_addin1, kat319_retbits
+};
+static const struct drbg_kat kat319 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat319_t
+};
+
+static const unsigned char kat320_entropyin[] = {
+ 0x79, 0xb2, 0x03, 0x9d, 0xf2, 0x89, 0x3b, 0x45, 0xd7, 0xc4, 0xbe, 0x89,
+ 0xd0, 0xe0, 0xac, 0xf4, 0x1f, 0xb1, 0x1c, 0xf7, 0x0b, 0x12, 0xdb, 0xe4,
+};
+static const unsigned char kat320_nonce[] = {
+ 0x35, 0xd1, 0x9a, 0x10, 0x42, 0x0d, 0x53, 0x97, 0xd1, 0xa6, 0xfa, 0x35,
+ 0xa7, 0x67, 0x6e, 0xe6,
+};
+static const unsigned char kat320_persstr[] = {0};
+static const unsigned char kat320_addin0[] = {
+ 0xe3, 0x38, 0x4b, 0x09, 0xc4, 0xde, 0xad, 0xf0, 0x94, 0x67, 0xfb, 0x4c,
+ 0x68, 0xf2, 0x89, 0x8e, 0xd6, 0x41, 0x28, 0x0c, 0x2c, 0x61, 0xd8, 0xad,
+ 0x7f, 0x86, 0xbe, 0xd0, 0x56, 0x69, 0x27, 0xb3,
+};
+static const unsigned char kat320_addin1[] = {
+ 0x39, 0xda, 0x7d, 0x65, 0x30, 0x08, 0xb8, 0xb5, 0x99, 0xcd, 0xda, 0x25,
+ 0xcc, 0xba, 0x4d, 0x2d, 0x15, 0xa9, 0x6a, 0xdc, 0x1d, 0x12, 0xac, 0x13,
+ 0x1c, 0xbc, 0x43, 0x64, 0x88, 0xe1, 0xf7, 0xb0,
+};
+static const unsigned char kat320_retbits[] = {
+ 0xbe, 0xc5, 0x5b, 0x20, 0x67, 0xac, 0x47, 0x0d, 0xba, 0x7b, 0x2a, 0xe7,
+ 0xc7, 0x04, 0x3c, 0xa0, 0x41, 0x59, 0x95, 0x7b, 0xc5, 0x47, 0x28, 0x16,
+ 0x57, 0x41, 0xd0, 0x57, 0xf8, 0x09, 0xbf, 0x56, 0x7b, 0x9d, 0x7b, 0x58,
+ 0x89, 0xa5, 0x79, 0x95, 0x8d, 0x6b, 0xf2, 0xea, 0x11, 0xd3, 0x8e, 0xba,
+ 0x75, 0x43, 0x42, 0x0f, 0x80, 0x94, 0x8f, 0x71, 0x20, 0xd9, 0x64, 0x07,
+ 0x60, 0x67, 0xbe, 0xe7,
+};
+static const struct drbg_kat_no_reseed kat320_t = {
+ 4, kat320_entropyin, kat320_nonce, kat320_persstr,
+ kat320_addin0, kat320_addin1, kat320_retbits
+};
+static const struct drbg_kat kat320 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat320_t
+};
+
+static const unsigned char kat321_entropyin[] = {
+ 0x6a, 0x91, 0x0a, 0x86, 0x59, 0x1c, 0xf0, 0x55, 0x21, 0xc8, 0x9f, 0xa0,
+ 0x6b, 0x0f, 0xd7, 0xeb, 0xe3, 0xc8, 0xf1, 0xe0, 0xde, 0x18, 0x09, 0xe9,
+};
+static const unsigned char kat321_nonce[] = {
+ 0x44, 0x1e, 0xa2, 0x6f, 0xe9, 0x46, 0x39, 0x08, 0x5b, 0x0d, 0x8e, 0x28,
+ 0x22, 0x4b, 0xf1, 0x11,
+};
+static const unsigned char kat321_persstr[] = {0};
+static const unsigned char kat321_addin0[] = {
+ 0x29, 0x28, 0xcc, 0xab, 0x0d, 0xde, 0xb1, 0xe9, 0x68, 0x1f, 0xd9, 0x40,
+ 0x3a, 0x48, 0xe7, 0x34, 0xc3, 0x47, 0xae, 0x80, 0x45, 0x0b, 0xa8, 0x4b,
+ 0x2c, 0x3a, 0x68, 0x6c, 0x1a, 0xf6, 0xf2, 0x03,
+};
+static const unsigned char kat321_addin1[] = {
+ 0x22, 0xcf, 0x81, 0x0f, 0xff, 0x93, 0x50, 0xb5, 0xd3, 0xb3, 0x45, 0x24,
+ 0x76, 0x67, 0x0a, 0xb9, 0x64, 0x88, 0xb8, 0x6d, 0x64, 0x43, 0xdd, 0x87,
+ 0xc4, 0xc2, 0x49, 0xa7, 0x9e, 0xf1, 0xfa, 0xce,
+};
+static const unsigned char kat321_retbits[] = {
+ 0xa7, 0xb0, 0xa1, 0x39, 0xcd, 0x26, 0x27, 0x4c, 0x0f, 0xd5, 0xb7, 0x09,
+ 0x0a, 0xe5, 0xe6, 0x07, 0x5c, 0xd7, 0x8d, 0x93, 0x49, 0x77, 0x75, 0x11,
+ 0x32, 0xc0, 0xb8, 0xa7, 0xf2, 0x7b, 0x5f, 0xf1, 0xe8, 0x68, 0xe2, 0x01,
+ 0x76, 0x52, 0x31, 0x04, 0xe2, 0x34, 0x60, 0x27, 0xc4, 0xef, 0x3a, 0x69,
+ 0x72, 0xac, 0x75, 0x63, 0x28, 0xdc, 0x5f, 0x1c, 0xe1, 0x52, 0xb0, 0x1f,
+ 0x48, 0x61, 0xb5, 0x07,
+};
+static const struct drbg_kat_no_reseed kat321_t = {
+ 5, kat321_entropyin, kat321_nonce, kat321_persstr,
+ kat321_addin0, kat321_addin1, kat321_retbits
+};
+static const struct drbg_kat kat321 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat321_t
+};
+
+static const unsigned char kat322_entropyin[] = {
+ 0x70, 0x87, 0x4f, 0xaa, 0x74, 0xd1, 0xa1, 0xaf, 0x88, 0x2a, 0x36, 0x96,
+ 0xff, 0x2f, 0x40, 0x9f, 0x9c, 0x2e, 0x05, 0x96, 0xcc, 0xe1, 0xfb, 0x9c,
+};
+static const unsigned char kat322_nonce[] = {
+ 0x77, 0xc4, 0x98, 0xe0, 0xd5, 0x1a, 0xf0, 0xc6, 0x87, 0x36, 0x45, 0xfd,
+ 0x88, 0x89, 0xfc, 0x58,
+};
+static const unsigned char kat322_persstr[] = {0};
+static const unsigned char kat322_addin0[] = {
+ 0xe6, 0xed, 0x21, 0x0e, 0x04, 0x59, 0x16, 0xcf, 0x1a, 0x69, 0x1e, 0x36,
+ 0x69, 0x71, 0x22, 0x89, 0x04, 0x85, 0xf2, 0x85, 0x2a, 0x27, 0x85, 0x11,
+ 0x25, 0xeb, 0x17, 0xdb, 0xf5, 0x79, 0x1f, 0x91,
+};
+static const unsigned char kat322_addin1[] = {
+ 0x1f, 0x0d, 0x29, 0x59, 0xf9, 0x72, 0x56, 0x04, 0xe6, 0xa1, 0x3b, 0x7e,
+ 0x2e, 0x0d, 0x72, 0xad, 0xc8, 0xbb, 0xdf, 0xb4, 0xa3, 0x1b, 0x9b, 0x38,
+ 0xbd, 0x8c, 0xae, 0x26, 0x4d, 0x4d, 0xcb, 0x01,
+};
+static const unsigned char kat322_retbits[] = {
+ 0xb6, 0xef, 0x96, 0x03, 0xce, 0x5c, 0xb3, 0xb3, 0xde, 0x76, 0x87, 0xcc,
+ 0x73, 0x88, 0x32, 0xa1, 0x1c, 0x39, 0x8e, 0x73, 0x30, 0xaa, 0x55, 0x2f,
+ 0x67, 0x8e, 0x13, 0x2c, 0x71, 0xb7, 0xc0, 0x20, 0x98, 0x0c, 0x3c, 0xab,
+ 0x47, 0x3d, 0x17, 0xc8, 0x43, 0x99, 0xca, 0x19, 0x2e, 0x6b, 0x29, 0x35,
+ 0xde, 0x21, 0x1e, 0x17, 0x9f, 0x39, 0xaa, 0xb3, 0x05, 0x52, 0xc9, 0x7e,
+ 0x11, 0x1f, 0xf3, 0xc2,
+};
+static const struct drbg_kat_no_reseed kat322_t = {
+ 6, kat322_entropyin, kat322_nonce, kat322_persstr,
+ kat322_addin0, kat322_addin1, kat322_retbits
+};
+static const struct drbg_kat kat322 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat322_t
+};
+
+static const unsigned char kat323_entropyin[] = {
+ 0xaa, 0x69, 0x94, 0x9c, 0x60, 0x5a, 0x8c, 0x99, 0x7a, 0xa6, 0x50, 0x76,
+ 0xe8, 0xce, 0xb6, 0x3f, 0xc9, 0xd0, 0xaf, 0x84, 0x0e, 0xa8, 0x73, 0xbb,
+};
+static const unsigned char kat323_nonce[] = {
+ 0x6b, 0xe6, 0xf8, 0x9f, 0x54, 0x9f, 0x0e, 0xb6, 0xdf, 0xd7, 0x61, 0xf0,
+ 0x9b, 0xfb, 0xcc, 0xb5,
+};
+static const unsigned char kat323_persstr[] = {0};
+static const unsigned char kat323_addin0[] = {
+ 0xfa, 0x18, 0x0a, 0x06, 0xf0, 0x7f, 0xcd, 0xcc, 0x95, 0xff, 0x37, 0x11,
+ 0xc3, 0x48, 0xc1, 0x5b, 0xae, 0x75, 0x0b, 0x8c, 0xbd, 0x98, 0xe4, 0x3a,
+ 0xbe, 0x61, 0xfe, 0x15, 0x4f, 0x3f, 0x5c, 0xd5,
+};
+static const unsigned char kat323_addin1[] = {
+ 0xa5, 0x59, 0xc3, 0xf7, 0xcc, 0x60, 0x44, 0xed, 0xc0, 0x29, 0xa3, 0x5b,
+ 0xf0, 0x2a, 0x3a, 0x96, 0xad, 0x01, 0x83, 0x86, 0xe1, 0xbd, 0x99, 0x8a,
+ 0xf1, 0x08, 0xc8, 0xfd, 0xba, 0x6f, 0x78, 0xa1,
+};
+static const unsigned char kat323_retbits[] = {
+ 0xa1, 0x8f, 0x0f, 0xfe, 0xc3, 0x92, 0x70, 0x6f, 0xc8, 0x37, 0xc0, 0xa5,
+ 0x32, 0x15, 0x58, 0x08, 0x62, 0x32, 0xf7, 0xf6, 0x94, 0x70, 0xb6, 0xd2,
+ 0x99, 0xd3, 0x2b, 0xba, 0x24, 0xa3, 0xb1, 0xd5, 0x44, 0x1e, 0x27, 0xf0,
+ 0x83, 0x57, 0xb0, 0xe7, 0x0f, 0x00, 0x0c, 0x32, 0x1b, 0x70, 0x81, 0xdc,
+ 0xff, 0xad, 0x82, 0x4d, 0xe1, 0x30, 0x47, 0x32, 0x2d, 0xf5, 0xf7, 0xf4,
+ 0xaf, 0x25, 0x84, 0x3b,
+};
+static const struct drbg_kat_no_reseed kat323_t = {
+ 7, kat323_entropyin, kat323_nonce, kat323_persstr,
+ kat323_addin0, kat323_addin1, kat323_retbits
+};
+static const struct drbg_kat kat323 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat323_t
+};
+
+static const unsigned char kat324_entropyin[] = {
+ 0xd4, 0x17, 0x6b, 0x63, 0xa9, 0x19, 0x97, 0x39, 0xff, 0x7d, 0x7f, 0x46,
+ 0x20, 0x3a, 0x4a, 0x01, 0xbf, 0xcc, 0x34, 0xfa, 0x7b, 0xd7, 0x01, 0x9f,
+};
+static const unsigned char kat324_nonce[] = {
+ 0x05, 0x06, 0x01, 0xd5, 0x0c, 0xd5, 0x04, 0x4f, 0x97, 0x8d, 0xfe, 0x9e,
+ 0xe2, 0x69, 0x5a, 0x44,
+};
+static const unsigned char kat324_persstr[] = {0};
+static const unsigned char kat324_addin0[] = {
+ 0xa7, 0x6a, 0x67, 0x40, 0x9e, 0x51, 0x64, 0xea, 0x0a, 0xba, 0xd6, 0x2a,
+ 0x41, 0x8a, 0xbd, 0x8c, 0xd2, 0xe7, 0x29, 0xb6, 0x34, 0x82, 0xf2, 0xae,
+ 0xaf, 0xc0, 0xa3, 0x65, 0x0e, 0xa8, 0xb9, 0x52,
+};
+static const unsigned char kat324_addin1[] = {
+ 0x83, 0xc9, 0x37, 0x10, 0x55, 0xee, 0x7f, 0xbb, 0x93, 0x54, 0x83, 0x76,
+ 0x2e, 0x16, 0xe2, 0xd8, 0x5d, 0xcd, 0x70, 0xe1, 0x34, 0x97, 0xe6, 0x9a,
+ 0xab, 0x9a, 0xd3, 0x50, 0x01, 0x62, 0x7a, 0x4b,
+};
+static const unsigned char kat324_retbits[] = {
+ 0xe7, 0xb6, 0x7e, 0x05, 0x2c, 0x3b, 0x43, 0x97, 0x42, 0xdc, 0x52, 0x28,
+ 0x9f, 0x38, 0x84, 0x53, 0x4a, 0x0e, 0x85, 0xb8, 0x34, 0x19, 0x30, 0x8b,
+ 0xe0, 0xb4, 0xe6, 0x32, 0x77, 0x9b, 0x4c, 0x72, 0x2a, 0x4d, 0x8b, 0xd3,
+ 0x8c, 0x8f, 0xeb, 0x3a, 0x5c, 0x21, 0x33, 0x0d, 0xb1, 0xa2, 0xf5, 0xbd,
+ 0x6a, 0xde, 0x1e, 0x0a, 0x77, 0x88, 0x13, 0x9f, 0x9f, 0x0e, 0x52, 0xf2,
+ 0xe0, 0x1e, 0xf7, 0x59,
+};
+static const struct drbg_kat_no_reseed kat324_t = {
+ 8, kat324_entropyin, kat324_nonce, kat324_persstr,
+ kat324_addin0, kat324_addin1, kat324_retbits
+};
+static const struct drbg_kat kat324 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat324_t
+};
+
+static const unsigned char kat325_entropyin[] = {
+ 0xe1, 0xae, 0xa3, 0x22, 0x9c, 0x6c, 0x18, 0x1e, 0x32, 0xaf, 0x65, 0x00,
+ 0xae, 0x4d, 0xb0, 0x93, 0xd1, 0xd5, 0x70, 0x0d, 0x64, 0x7e, 0x27, 0x24,
+};
+static const unsigned char kat325_nonce[] = {
+ 0x65, 0x6c, 0x62, 0x42, 0xbb, 0x52, 0x0a, 0x88, 0x64, 0x09, 0xca, 0x4f,
+ 0x3a, 0xf4, 0x0a, 0x1c,
+};
+static const unsigned char kat325_persstr[] = {0};
+static const unsigned char kat325_addin0[] = {
+ 0x57, 0x48, 0x3f, 0x32, 0x65, 0x38, 0x02, 0xb2, 0xbf, 0xc8, 0x06, 0xd0,
+ 0x28, 0xf2, 0xb1, 0x68, 0x27, 0x1e, 0x55, 0xd4, 0x9a, 0x43, 0x6a, 0x5c,
+ 0x4e, 0x89, 0xc2, 0x0c, 0xaa, 0x0c, 0xa1, 0x07,
+};
+static const unsigned char kat325_addin1[] = {
+ 0x5c, 0xc0, 0x20, 0x2e, 0x9f, 0x5f, 0x19, 0xf4, 0x01, 0x0b, 0x68, 0xde,
+ 0x2b, 0x2c, 0x28, 0xc1, 0x99, 0x41, 0xce, 0xc8, 0xcf, 0x31, 0xf5, 0x9c,
+ 0x29, 0x9c, 0x89, 0x58, 0xe0, 0x7c, 0xed, 0xd7,
+};
+static const unsigned char kat325_retbits[] = {
+ 0x5b, 0xb5, 0x65, 0x0e, 0xcb, 0x99, 0x68, 0x2a, 0xfe, 0xf4, 0xba, 0x87,
+ 0xc2, 0x27, 0x27, 0xee, 0x7a, 0xb0, 0x80, 0xbc, 0xab, 0x60, 0xf1, 0x57,
+ 0x6e, 0x46, 0x27, 0xf7, 0xe9, 0x05, 0xa2, 0x48, 0xd7, 0x00, 0x29, 0xca,
+ 0xf3, 0x71, 0xab, 0x58, 0x98, 0x82, 0x3a, 0x35, 0xee, 0x5b, 0x81, 0x18,
+ 0x2c, 0x24, 0x03, 0x1d, 0xc3, 0x96, 0x6d, 0x7c, 0x24, 0x4b, 0x28, 0x80,
+ 0x3b, 0x36, 0x37, 0x00,
+};
+static const struct drbg_kat_no_reseed kat325_t = {
+ 9, kat325_entropyin, kat325_nonce, kat325_persstr,
+ kat325_addin0, kat325_addin1, kat325_retbits
+};
+static const struct drbg_kat kat325 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat325_t
+};
+
+static const unsigned char kat326_entropyin[] = {
+ 0x9c, 0xf9, 0x22, 0x67, 0x96, 0x9b, 0x13, 0x62, 0x4a, 0x01, 0x6a, 0xfc,
+ 0xbe, 0xdc, 0x99, 0x64, 0xc0, 0x71, 0xb6, 0xd5, 0x7b, 0x9b, 0xc1, 0xaa,
+};
+static const unsigned char kat326_nonce[] = {
+ 0x5f, 0xe0, 0xed, 0x8b, 0xec, 0xd3, 0xbb, 0xb4, 0x4a, 0x0d, 0xfa, 0x8d,
+ 0xe9, 0xcb, 0x47, 0xff,
+};
+static const unsigned char kat326_persstr[] = {0};
+static const unsigned char kat326_addin0[] = {
+ 0x3a, 0x10, 0xc0, 0x87, 0xcf, 0x4d, 0x09, 0xd1, 0x3c, 0x93, 0x3b, 0x73,
+ 0xce, 0x0c, 0xb2, 0x3d, 0x35, 0x21, 0x2a, 0x09, 0x80, 0xca, 0x88, 0xa9,
+ 0x5f, 0x71, 0xc0, 0x82, 0x61, 0x28, 0x99, 0x24,
+};
+static const unsigned char kat326_addin1[] = {
+ 0x23, 0xa3, 0x91, 0x51, 0x60, 0xa4, 0xc8, 0xc2, 0x2a, 0xdb, 0x26, 0xa8,
+ 0x6e, 0x29, 0x6f, 0x23, 0x63, 0x60, 0x12, 0x44, 0xfb, 0xc8, 0xcf, 0xed,
+ 0x07, 0x57, 0xf9, 0x31, 0xe4, 0x95, 0xa6, 0xb9,
+};
+static const unsigned char kat326_retbits[] = {
+ 0x65, 0xba, 0x2a, 0x31, 0x91, 0x1a, 0x00, 0x98, 0x33, 0x0a, 0xd9, 0x14,
+ 0xe7, 0x9c, 0x71, 0x4b, 0xb1, 0xb9, 0xa0, 0x06, 0x15, 0x51, 0xf9, 0x81,
+ 0xf3, 0xde, 0x6a, 0x88, 0x08, 0x74, 0x73, 0x72, 0xbe, 0xd7, 0xb5, 0xcc,
+ 0xb4, 0x53, 0x81, 0xab, 0x98, 0xb1, 0xc5, 0x56, 0x59, 0xb0, 0x23, 0x42,
+ 0x2b, 0x75, 0x39, 0x83, 0xb2, 0xd3, 0x54, 0x55, 0x98, 0xf3, 0x11, 0xfd,
+ 0x2a, 0xcd, 0xdb, 0x32,
+};
+static const struct drbg_kat_no_reseed kat326_t = {
+ 10, kat326_entropyin, kat326_nonce, kat326_persstr,
+ kat326_addin0, kat326_addin1, kat326_retbits
+};
+static const struct drbg_kat kat326 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat326_t
+};
+
+static const unsigned char kat327_entropyin[] = {
+ 0xf1, 0x3d, 0xa4, 0x54, 0xa1, 0xa1, 0x68, 0x51, 0x88, 0xce, 0x40, 0x2a,
+ 0xfc, 0x5f, 0x1a, 0xb8, 0xc2, 0x32, 0x40, 0xb2, 0x2c, 0x57, 0x0f, 0xe8,
+};
+static const unsigned char kat327_nonce[] = {
+ 0x65, 0x4d, 0x75, 0xd1, 0x03, 0xfb, 0xf3, 0x58, 0x9a, 0x66, 0x64, 0x24,
+ 0x7f, 0x6f, 0x32, 0xd7,
+};
+static const unsigned char kat327_persstr[] = {0};
+static const unsigned char kat327_addin0[] = {
+ 0x0f, 0x72, 0x58, 0x42, 0xcc, 0x60, 0x61, 0x97, 0xd3, 0xc3, 0xa3, 0x72,
+ 0x60, 0xfd, 0x24, 0x23, 0x71, 0x98, 0xb7, 0xe4, 0x86, 0x80, 0x1d, 0x32,
+ 0xa8, 0xe1, 0x55, 0xca, 0x22, 0xf8, 0x1e, 0xac,
+};
+static const unsigned char kat327_addin1[] = {
+ 0x78, 0x8e, 0xe6, 0xcd, 0x54, 0x3e, 0x8b, 0x1f, 0x69, 0xc6, 0x98, 0xb4,
+ 0xf9, 0xcc, 0xc3, 0x3f, 0x76, 0xf6, 0x63, 0x99, 0xe8, 0xbd, 0xf8, 0x9e,
+ 0xe2, 0xb6, 0x29, 0x54, 0x0f, 0xf7, 0x58, 0x50,
+};
+static const unsigned char kat327_retbits[] = {
+ 0xcc, 0xf1, 0x24, 0x79, 0x17, 0x7b, 0xbe, 0xca, 0xf4, 0x58, 0x50, 0xf2,
+ 0x30, 0x76, 0x8c, 0x97, 0x01, 0x91, 0xb7, 0x1b, 0x98, 0xf4, 0x68, 0x5f,
+ 0x47, 0x98, 0x49, 0x6c, 0x5c, 0x87, 0x7b, 0xc7, 0xa5, 0xda, 0xe4, 0x08,
+ 0x86, 0x27, 0x26, 0xac, 0xa4, 0xbb, 0xaf, 0xf3, 0x5c, 0x20, 0x08, 0x96,
+ 0x58, 0x6a, 0x4e, 0xad, 0x49, 0x3a, 0x4b, 0x4e, 0xb8, 0xaf, 0xb0, 0x1d,
+ 0xed, 0xf6, 0xea, 0xcb,
+};
+static const struct drbg_kat_no_reseed kat327_t = {
+ 11, kat327_entropyin, kat327_nonce, kat327_persstr,
+ kat327_addin0, kat327_addin1, kat327_retbits
+};
+static const struct drbg_kat kat327 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat327_t
+};
+
+static const unsigned char kat328_entropyin[] = {
+ 0xff, 0x69, 0x97, 0x35, 0x5e, 0x83, 0x80, 0xc6, 0xf1, 0x0f, 0xf0, 0x52,
+ 0xb1, 0x85, 0x34, 0xbe, 0x0d, 0x7e, 0x34, 0x4d, 0x11, 0xce, 0x6a, 0x37,
+};
+static const unsigned char kat328_nonce[] = {
+ 0xae, 0x30, 0xf9, 0x9e, 0xe7, 0xdb, 0x3f, 0xb0, 0xa6, 0xbe, 0x60, 0x5f,
+ 0x14, 0xa4, 0xa0, 0xf5,
+};
+static const unsigned char kat328_persstr[] = {0};
+static const unsigned char kat328_addin0[] = {
+ 0xd3, 0xaa, 0x9a, 0x02, 0xe5, 0x09, 0x31, 0xcd, 0xb6, 0x57, 0xe5, 0xac,
+ 0x56, 0x57, 0x22, 0xea, 0xc7, 0x69, 0xb1, 0x7e, 0xca, 0x63, 0xff, 0xe9,
+ 0x16, 0x92, 0x8b, 0x52, 0x6c, 0x58, 0x65, 0x87,
+};
+static const unsigned char kat328_addin1[] = {
+ 0x06, 0x79, 0x40, 0xbc, 0xb6, 0x55, 0x3a, 0xf8, 0xdb, 0x6e, 0x21, 0xfa,
+ 0x49, 0xc9, 0xf9, 0xba, 0x22, 0x27, 0x21, 0x64, 0x22, 0xae, 0x20, 0xdd,
+ 0xf7, 0x3b, 0x65, 0xa6, 0x65, 0xcd, 0x81, 0xc4,
+};
+static const unsigned char kat328_retbits[] = {
+ 0x00, 0x76, 0xb4, 0x66, 0x4e, 0x83, 0xfb, 0xe6, 0x93, 0xd5, 0x1e, 0x31,
+ 0x2d, 0x92, 0xf4, 0x1a, 0x29, 0xa7, 0x92, 0x16, 0xc1, 0x4d, 0xfa, 0x28,
+ 0xf6, 0xc2, 0xde, 0xd9, 0xd0, 0xe6, 0x9c, 0x6f, 0x51, 0x29, 0x80, 0xc2,
+ 0x5d, 0x72, 0x38, 0xcf, 0xbe, 0x6a, 0x39, 0x23, 0xd3, 0x0e, 0x2a, 0xf3,
+ 0xcb, 0xab, 0x71, 0x34, 0xc6, 0x53, 0x7f, 0xe1, 0x99, 0x91, 0x10, 0x5e,
+ 0x3d, 0xac, 0x89, 0x4b,
+};
+static const struct drbg_kat_no_reseed kat328_t = {
+ 12, kat328_entropyin, kat328_nonce, kat328_persstr,
+ kat328_addin0, kat328_addin1, kat328_retbits
+};
+static const struct drbg_kat kat328 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat328_t
+};
+
+static const unsigned char kat329_entropyin[] = {
+ 0xf7, 0x00, 0xbb, 0x6a, 0x92, 0xec, 0xc9, 0xee, 0x07, 0xd5, 0xc5, 0x96,
+ 0xbd, 0x66, 0x78, 0x62, 0x45, 0x56, 0x51, 0xb5, 0xe0, 0x9c, 0xc7, 0x16,
+};
+static const unsigned char kat329_nonce[] = {
+ 0x41, 0x19, 0x2c, 0x65, 0xd6, 0x6b, 0xa5, 0xf0, 0x9c, 0x03, 0x24, 0x91,
+ 0xa2, 0xc5, 0x3e, 0xde,
+};
+static const unsigned char kat329_persstr[] = {0};
+static const unsigned char kat329_addin0[] = {
+ 0x9e, 0x74, 0x82, 0x5c, 0xa0, 0xc3, 0xf9, 0xce, 0xb2, 0x72, 0x15, 0x0a,
+ 0xa5, 0x1f, 0x9f, 0x92, 0xe1, 0x99, 0xf3, 0x13, 0x3d, 0x91, 0x9d, 0x4f,
+ 0xa2, 0x16, 0x11, 0x9a, 0x13, 0x30, 0xe8, 0x8d,
+};
+static const unsigned char kat329_addin1[] = {
+ 0xc5, 0x94, 0x03, 0x87, 0x0a, 0xa5, 0xb1, 0x48, 0xec, 0x6f, 0x99, 0xff,
+ 0x8b, 0x80, 0x65, 0x69, 0xe9, 0x9f, 0xa8, 0x36, 0x75, 0x01, 0x71, 0x78,
+ 0x7b, 0xcc, 0x8c, 0x89, 0x31, 0xaa, 0x82, 0xac,
+};
+static const unsigned char kat329_retbits[] = {
+ 0x32, 0x21, 0x7f, 0xf9, 0x37, 0x1a, 0x6c, 0xbf, 0x79, 0x6c, 0x13, 0x8f,
+ 0x9c, 0xe3, 0xbe, 0x65, 0x8f, 0xba, 0x03, 0xdf, 0x9c, 0x10, 0xcd, 0x3d,
+ 0xe0, 0x9e, 0x82, 0xd1, 0xd9, 0xce, 0xc4, 0x3a, 0x96, 0x6a, 0xb8, 0x64,
+ 0xaa, 0xca, 0x56, 0x02, 0x4e, 0x8b, 0x36, 0x46, 0x3a, 0x31, 0x24, 0x56,
+ 0xb4, 0x21, 0xb2, 0x57, 0x66, 0x3f, 0xa5, 0xd4, 0x2a, 0xdb, 0xfa, 0x4a,
+ 0x54, 0x10, 0x79, 0x65,
+};
+static const struct drbg_kat_no_reseed kat329_t = {
+ 13, kat329_entropyin, kat329_nonce, kat329_persstr,
+ kat329_addin0, kat329_addin1, kat329_retbits
+};
+static const struct drbg_kat kat329 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat329_t
+};
+
+static const unsigned char kat330_entropyin[] = {
+ 0x15, 0x31, 0xb5, 0x6b, 0xff, 0x3f, 0x34, 0x44, 0x96, 0x74, 0xc5, 0xf9,
+ 0xb3, 0x10, 0x13, 0x8a, 0x51, 0x72, 0x1a, 0x40, 0xa4, 0x63, 0xe5, 0xbe,
+};
+static const unsigned char kat330_nonce[] = {
+ 0xeb, 0x78, 0x09, 0xf3, 0xf3, 0xba, 0x6e, 0xb5, 0x77, 0x75, 0xf1, 0x28,
+ 0x4f, 0xc2, 0x9f, 0x54,
+};
+static const unsigned char kat330_persstr[] = {0};
+static const unsigned char kat330_addin0[] = {
+ 0x85, 0xe6, 0xaa, 0x85, 0x9f, 0x43, 0x1d, 0xaa, 0xaf, 0xc9, 0x29, 0x9e,
+ 0xa6, 0x1f, 0xcd, 0xcf, 0xde, 0x71, 0x2f, 0xc2, 0xd0, 0x1d, 0x94, 0xfe,
+ 0x70, 0xcd, 0x0b, 0xc6, 0xda, 0xb7, 0xf3, 0xe9,
+};
+static const unsigned char kat330_addin1[] = {
+ 0xcb, 0x7f, 0xb3, 0x63, 0x3f, 0x42, 0x65, 0x92, 0x01, 0x02, 0x6c, 0x63,
+ 0x48, 0x94, 0xec, 0xc7, 0x19, 0xc0, 0x00, 0x32, 0x59, 0xa6, 0x92, 0x83,
+ 0x76, 0x09, 0xab, 0x90, 0x78, 0x2a, 0xe2, 0x3a,
+};
+static const unsigned char kat330_retbits[] = {
+ 0x74, 0x45, 0xb8, 0x12, 0xa7, 0xf5, 0xd3, 0xb8, 0xba, 0x79, 0xf7, 0x7a,
+ 0x80, 0x1a, 0xfc, 0xda, 0xb8, 0x23, 0x14, 0x0e, 0x5e, 0xb4, 0xa6, 0x6e,
+ 0x50, 0xf8, 0x58, 0x3d, 0x90, 0xdb, 0xad, 0xde, 0xe8, 0x69, 0x7d, 0x37,
+ 0xc0, 0xfd, 0x62, 0x47, 0xec, 0x6a, 0x3b, 0xf7, 0x66, 0x40, 0x18, 0xa5,
+ 0x8c, 0x04, 0x2b, 0xc3, 0xb3, 0xbe, 0x91, 0x2e, 0x88, 0xc2, 0xbe, 0x96,
+ 0xb9, 0xc6, 0x9e, 0x85,
+};
+static const struct drbg_kat_no_reseed kat330_t = {
+ 14, kat330_entropyin, kat330_nonce, kat330_persstr,
+ kat330_addin0, kat330_addin1, kat330_retbits
+};
+static const struct drbg_kat kat330 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat330_t
+};
+
+static const unsigned char kat331_entropyin[] = {
+ 0x50, 0x13, 0x4a, 0x63, 0x80, 0x92, 0xb0, 0x9e, 0x78, 0x70, 0x80, 0x50,
+ 0xdc, 0x40, 0x44, 0xe6, 0x3c, 0x7a, 0xbd, 0x22, 0x77, 0xbe, 0x3d, 0x71,
+};
+static const unsigned char kat331_nonce[] = {
+ 0xda, 0x88, 0x07, 0x00, 0x9d, 0x40, 0x04, 0x82, 0xc6, 0xda, 0x8e, 0x4e,
+ 0x9a, 0x4e, 0xe3, 0x3c,
+};
+static const unsigned char kat331_persstr[] = {
+ 0x8e, 0x01, 0x53, 0xaa, 0xbf, 0xd2, 0xca, 0x23, 0x74, 0xbd, 0xd1, 0xe9,
+ 0x7f, 0xf2, 0x3e, 0xe2, 0xe7, 0xdb, 0xff, 0x7e, 0x83, 0x6f, 0xa5, 0xad,
+ 0xb6, 0x57, 0x64, 0xf7, 0x07, 0x8d, 0xf1, 0xb8,
+};
+static const unsigned char kat331_addin0[] = {0};
+static const unsigned char kat331_addin1[] = {0};
+static const unsigned char kat331_retbits[] = {
+ 0x50, 0x27, 0x3a, 0xa2, 0x0f, 0xeb, 0xe8, 0x26, 0x85, 0xd4, 0x9a, 0x01,
+ 0x3e, 0x75, 0xa8, 0x4b, 0xcc, 0xc7, 0xc2, 0x01, 0x28, 0xbd, 0x09, 0x8a,
+ 0x22, 0x8c, 0x77, 0x1d, 0x08, 0xbb, 0x53, 0x03, 0xe7, 0x15, 0xfc, 0x30,
+ 0x82, 0x3d, 0xae, 0x08, 0x57, 0x80, 0xd6, 0xd2, 0x8d, 0x10, 0x71, 0xa2,
+ 0x65, 0x08, 0x13, 0x0f, 0x35, 0x25, 0xb3, 0xbf, 0xd5, 0x05, 0xf0, 0x75,
+ 0x75, 0xad, 0xd8, 0x74,
+};
+static const struct drbg_kat_no_reseed kat331_t = {
+ 0, kat331_entropyin, kat331_nonce, kat331_persstr,
+ kat331_addin0, kat331_addin1, kat331_retbits
+};
+static const struct drbg_kat kat331 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat331_t
+};
+
+static const unsigned char kat332_entropyin[] = {
+ 0x9b, 0x6c, 0x7b, 0x1c, 0x72, 0x9c, 0xeb, 0xca, 0xf4, 0xc4, 0xaf, 0xb9,
+ 0xa3, 0x51, 0xd2, 0xf6, 0xd1, 0xb3, 0x8a, 0xff, 0xc3, 0x5f, 0xdc, 0x2b,
+};
+static const unsigned char kat332_nonce[] = {
+ 0xd0, 0x46, 0x71, 0x5f, 0xee, 0x95, 0x6f, 0xa5, 0xe1, 0xa9, 0xd1, 0xaa,
+ 0xca, 0x6e, 0xd6, 0x7e,
+};
+static const unsigned char kat332_persstr[] = {
+ 0x37, 0x6b, 0x88, 0x73, 0xca, 0x51, 0x20, 0x9c, 0x93, 0xfb, 0xfb, 0x15,
+ 0x89, 0x96, 0x41, 0x2b, 0xc6, 0xcd, 0x1f, 0x41, 0xe9, 0xa2, 0x09, 0x3d,
+ 0x9e, 0xd6, 0xfb, 0x91, 0xca, 0x3b, 0xa2, 0xc7,
+};
+static const unsigned char kat332_addin0[] = {0};
+static const unsigned char kat332_addin1[] = {0};
+static const unsigned char kat332_retbits[] = {
+ 0x05, 0x92, 0x7f, 0xeb, 0x60, 0x85, 0x51, 0x27, 0xb4, 0xd6, 0x63, 0x2f,
+ 0x12, 0x17, 0xef, 0x30, 0x72, 0xa0, 0x3c, 0x03, 0x74, 0x0f, 0xdc, 0x14,
+ 0x1e, 0x56, 0x36, 0x0e, 0xfc, 0xbb, 0xd5, 0x5c, 0x5e, 0xf5, 0x16, 0xe3,
+ 0x91, 0x3b, 0xb2, 0x0d, 0xc4, 0xda, 0x9e, 0x79, 0x98, 0xb8, 0xb5, 0x93,
+ 0xe3, 0xa0, 0x21, 0x5d, 0xc0, 0x32, 0x24, 0x12, 0x14, 0xa3, 0x5e, 0x5e,
+ 0x4d, 0xdd, 0xf1, 0xa0,
+};
+static const struct drbg_kat_no_reseed kat332_t = {
+ 1, kat332_entropyin, kat332_nonce, kat332_persstr,
+ kat332_addin0, kat332_addin1, kat332_retbits
+};
+static const struct drbg_kat kat332 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat332_t
+};
+
+static const unsigned char kat333_entropyin[] = {
+ 0x32, 0xf7, 0x9c, 0x64, 0x90, 0x4f, 0x65, 0x16, 0x92, 0x77, 0xcf, 0x0e,
+ 0xaa, 0xd8, 0xce, 0xe6, 0xa6, 0x13, 0xf9, 0x2f, 0x08, 0x63, 0xb6, 0x62,
+};
+static const unsigned char kat333_nonce[] = {
+ 0xf4, 0x19, 0x07, 0xab, 0x3d, 0xd3, 0xfc, 0x0c, 0x33, 0x75, 0x81, 0xdb,
+ 0xf3, 0xcf, 0x6a, 0x61,
+};
+static const unsigned char kat333_persstr[] = {
+ 0xfe, 0x9b, 0xaf, 0x70, 0x43, 0xf1, 0x5c, 0x4e, 0xbe, 0x93, 0x30, 0x43,
+ 0x2d, 0xac, 0xda, 0xc1, 0x30, 0x6d, 0x42, 0x37, 0xe7, 0x65, 0xd5, 0xb8,
+ 0x26, 0x36, 0x0a, 0xad, 0x36, 0x84, 0xa2, 0x35,
+};
+static const unsigned char kat333_addin0[] = {0};
+static const unsigned char kat333_addin1[] = {0};
+static const unsigned char kat333_retbits[] = {
+ 0xa2, 0xce, 0x0a, 0xfe, 0x7f, 0xdb, 0xeb, 0x4a, 0xd1, 0x95, 0xc4, 0x61,
+ 0x0c, 0xae, 0x40, 0x68, 0x83, 0xb6, 0x9c, 0xbc, 0x85, 0x48, 0xa8, 0x2d,
+ 0x12, 0x2c, 0x46, 0x13, 0xa6, 0x2e, 0xb3, 0x6e, 0x98, 0x6c, 0xaf, 0xce,
+ 0x10, 0xfc, 0x32, 0x00, 0xae, 0xf2, 0x97, 0xa3, 0xdf, 0xf0, 0x1b, 0xe3,
+ 0xa5, 0xdf, 0x6c, 0x82, 0x58, 0xc0, 0xa6, 0x01, 0xd8, 0x91, 0x88, 0xd5,
+ 0xc0, 0x65, 0xce, 0x1e,
+};
+static const struct drbg_kat_no_reseed kat333_t = {
+ 2, kat333_entropyin, kat333_nonce, kat333_persstr,
+ kat333_addin0, kat333_addin1, kat333_retbits
+};
+static const struct drbg_kat kat333 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat333_t
+};
+
+static const unsigned char kat334_entropyin[] = {
+ 0xb7, 0x36, 0x7a, 0x69, 0xf9, 0x1c, 0x68, 0xc6, 0x75, 0x64, 0x83, 0x70,
+ 0x28, 0x5b, 0x0e, 0x48, 0x6a, 0x3a, 0x97, 0x0d, 0x12, 0xc5, 0x81, 0xac,
+};
+static const unsigned char kat334_nonce[] = {
+ 0xbd, 0x49, 0x96, 0x7a, 0x92, 0xa0, 0xf3, 0xca, 0x17, 0x31, 0x12, 0x5d,
+ 0x33, 0x5f, 0x86, 0xd3,
+};
+static const unsigned char kat334_persstr[] = {
+ 0x5e, 0x7d, 0x45, 0x32, 0x6c, 0x6e, 0x53, 0xf1, 0x90, 0x2e, 0x0b, 0x5a,
+ 0x31, 0x4e, 0x59, 0xa0, 0x44, 0x74, 0x78, 0x1a, 0x1a, 0x4c, 0xd3, 0xdc,
+ 0xf1, 0x3b, 0xe1, 0x78, 0xce, 0x73, 0x70, 0x70,
+};
+static const unsigned char kat334_addin0[] = {0};
+static const unsigned char kat334_addin1[] = {0};
+static const unsigned char kat334_retbits[] = {
+ 0x59, 0x6f, 0x86, 0xa7, 0x8c, 0x76, 0xd6, 0x93, 0xa6, 0x6b, 0xc0, 0x7e,
+ 0xd1, 0xf0, 0xd9, 0xfd, 0x3b, 0xa3, 0x06, 0xfd, 0xa4, 0xfb, 0x45, 0x6e,
+ 0x7d, 0xc6, 0x81, 0x29, 0x96, 0xe2, 0xf7, 0xba, 0xe4, 0x57, 0x95, 0xa9,
+ 0x0d, 0x9a, 0x92, 0xab, 0x4e, 0x06, 0x0d, 0x5b, 0x02, 0xe1, 0x50, 0x7a,
+ 0xc6, 0x81, 0x49, 0xeb, 0xd6, 0xf2, 0x37, 0xd3, 0xdf, 0x2e, 0x40, 0xa9,
+ 0xba, 0xf8, 0x91, 0x8c,
+};
+static const struct drbg_kat_no_reseed kat334_t = {
+ 3, kat334_entropyin, kat334_nonce, kat334_persstr,
+ kat334_addin0, kat334_addin1, kat334_retbits
+};
+static const struct drbg_kat kat334 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat334_t
+};
+
+static const unsigned char kat335_entropyin[] = {
+ 0xb6, 0x14, 0xaa, 0xf7, 0x99, 0x22, 0xf8, 0x3f, 0x67, 0xa4, 0xd4, 0x9d,
+ 0xf5, 0xc2, 0x40, 0x5f, 0xb5, 0xa9, 0x71, 0x26, 0xfd, 0x79, 0x2d, 0x80,
+};
+static const unsigned char kat335_nonce[] = {
+ 0xcc, 0xc1, 0x86, 0x76, 0x0d, 0x36, 0x33, 0x56, 0x8a, 0x5e, 0x9f, 0x38,
+ 0xc2, 0xdb, 0x4c, 0xa0,
+};
+static const unsigned char kat335_persstr[] = {
+ 0x65, 0x34, 0x7e, 0x04, 0xd7, 0x68, 0x8d, 0x1b, 0x0b, 0x69, 0xa3, 0xb1,
+ 0x81, 0x61, 0x3e, 0x6a, 0xbc, 0x78, 0x03, 0xc6, 0x48, 0x82, 0xbf, 0x62,
+ 0xd4, 0x10, 0x38, 0x95, 0x30, 0x06, 0x2e, 0x53,
+};
+static const unsigned char kat335_addin0[] = {0};
+static const unsigned char kat335_addin1[] = {0};
+static const unsigned char kat335_retbits[] = {
+ 0x9d, 0x57, 0x4a, 0xc6, 0x7c, 0xc3, 0x84, 0xa8, 0x8b, 0x5a, 0xa1, 0x5e,
+ 0x65, 0x6f, 0xe9, 0x4b, 0xc8, 0x0b, 0xb0, 0x0b, 0xfe, 0xe7, 0xfc, 0x79,
+ 0xaa, 0x2f, 0xa7, 0xd9, 0x8e, 0x6d, 0x87, 0x45, 0xc0, 0x38, 0x1e, 0xab,
+ 0x01, 0x06, 0x3b, 0x18, 0x90, 0xed, 0xac, 0x7e, 0xf3, 0x0e, 0x34, 0xb5,
+ 0xde, 0xdf, 0xe9, 0xb1, 0xc7, 0xf2, 0x1d, 0x48, 0x4b, 0x2f, 0x47, 0x0c,
+ 0xbe, 0x7b, 0xac, 0x9d,
+};
+static const struct drbg_kat_no_reseed kat335_t = {
+ 4, kat335_entropyin, kat335_nonce, kat335_persstr,
+ kat335_addin0, kat335_addin1, kat335_retbits
+};
+static const struct drbg_kat kat335 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat335_t
+};
+
+static const unsigned char kat336_entropyin[] = {
+ 0xa4, 0xcf, 0xbf, 0xc8, 0x94, 0x17, 0xd3, 0x55, 0x98, 0x86, 0xfd, 0xaf,
+ 0x38, 0x8d, 0x60, 0xb7, 0x82, 0x27, 0xae, 0xad, 0x26, 0xcd, 0x47, 0x2f,
+};
+static const unsigned char kat336_nonce[] = {
+ 0xe1, 0x8c, 0xd3, 0x79, 0x48, 0x0e, 0xf2, 0x68, 0x55, 0x2f, 0x74, 0x8e,
+ 0x9c, 0xc0, 0xf1, 0x33,
+};
+static const unsigned char kat336_persstr[] = {
+ 0xe6, 0xc4, 0x92, 0x78, 0x42, 0x42, 0xbc, 0x71, 0xc5, 0x82, 0xe4, 0xbd,
+ 0x79, 0xcc, 0xad, 0x4c, 0xf6, 0xb1, 0x12, 0x49, 0x01, 0xea, 0x7a, 0x4a,
+ 0x60, 0x1e, 0x91, 0x00, 0x67, 0x86, 0x41, 0x1a,
+};
+static const unsigned char kat336_addin0[] = {0};
+static const unsigned char kat336_addin1[] = {0};
+static const unsigned char kat336_retbits[] = {
+ 0x05, 0xbd, 0x50, 0x50, 0x20, 0xc3, 0xb1, 0x6d, 0xff, 0xc5, 0x11, 0xd6,
+ 0x25, 0xbd, 0xb3, 0x6d, 0x46, 0xca, 0x8a, 0x6a, 0xa1, 0xfa, 0xe9, 0x01,
+ 0x54, 0x46, 0x9a, 0x1c, 0x1a, 0x2c, 0xac, 0x50, 0x59, 0x8a, 0xcc, 0xb9,
+ 0x94, 0xd0, 0x89, 0x40, 0x26, 0xe4, 0xb3, 0x83, 0xf0, 0xf3, 0x11, 0x88,
+ 0xa7, 0x98, 0x9f, 0x98, 0xe9, 0xa7, 0x32, 0x95, 0x3c, 0x82, 0xa2, 0xff,
+ 0x32, 0xbf, 0x54, 0xed,
+};
+static const struct drbg_kat_no_reseed kat336_t = {
+ 5, kat336_entropyin, kat336_nonce, kat336_persstr,
+ kat336_addin0, kat336_addin1, kat336_retbits
+};
+static const struct drbg_kat kat336 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat336_t
+};
+
+static const unsigned char kat337_entropyin[] = {
+ 0xfa, 0x72, 0xab, 0x81, 0xa6, 0x3b, 0xa4, 0x90, 0x67, 0x76, 0x84, 0x8a,
+ 0xd1, 0xfb, 0xc6, 0x72, 0xae, 0xc0, 0x98, 0x3c, 0x9f, 0x09, 0xbe, 0x1f,
+};
+static const unsigned char kat337_nonce[] = {
+ 0x9d, 0x5f, 0x58, 0x70, 0x9f, 0xd2, 0x3f, 0xc2, 0x30, 0xdb, 0xd8, 0x33,
+ 0xac, 0x34, 0x2d, 0x3f,
+};
+static const unsigned char kat337_persstr[] = {
+ 0xa6, 0xce, 0x15, 0xe6, 0xb2, 0xce, 0x26, 0x0f, 0x8f, 0xb5, 0xd3, 0xd6,
+ 0xb9, 0x2a, 0xa2, 0x67, 0xe1, 0xa3, 0x23, 0x6e, 0x09, 0x10, 0xbe, 0x3a,
+ 0x9a, 0x06, 0xc7, 0xec, 0x86, 0xde, 0x5a, 0x58,
+};
+static const unsigned char kat337_addin0[] = {0};
+static const unsigned char kat337_addin1[] = {0};
+static const unsigned char kat337_retbits[] = {
+ 0xbd, 0x9b, 0x6f, 0x17, 0xc2, 0xa0, 0x6a, 0x7f, 0xa7, 0x42, 0x09, 0x2f,
+ 0x2d, 0xa8, 0x1f, 0x82, 0x49, 0x89, 0x9d, 0x13, 0xf0, 0x5b, 0x9b, 0xc6,
+ 0x3e, 0x37, 0x00, 0xf8, 0x16, 0x89, 0xb1, 0x11, 0x3e, 0x1d, 0x32, 0x4e,
+ 0x3b, 0x34, 0x12, 0xdc, 0xf2, 0xf8, 0x5b, 0x46, 0x9c, 0xbc, 0xe4, 0x4d,
+ 0x25, 0x9e, 0x71, 0x53, 0x33, 0x9a, 0x47, 0x57, 0xf8, 0x70, 0x31, 0xbf,
+ 0x59, 0x00, 0x30, 0x47,
+};
+static const struct drbg_kat_no_reseed kat337_t = {
+ 6, kat337_entropyin, kat337_nonce, kat337_persstr,
+ kat337_addin0, kat337_addin1, kat337_retbits
+};
+static const struct drbg_kat kat337 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat337_t
+};
+
+static const unsigned char kat338_entropyin[] = {
+ 0x6f, 0x8b, 0xd5, 0x7f, 0x52, 0x3a, 0x9a, 0x7d, 0x1b, 0xff, 0x9e, 0x6e,
+ 0x21, 0xd9, 0x34, 0xb6, 0x5e, 0x1c, 0x00, 0xf2, 0xb0, 0x69, 0x17, 0xeb,
+};
+static const unsigned char kat338_nonce[] = {
+ 0x74, 0x41, 0x0e, 0x8f, 0x55, 0xfd, 0x7d, 0x8c, 0x6e, 0x58, 0xc2, 0x81,
+ 0xc9, 0x74, 0x8a, 0xdd,
+};
+static const unsigned char kat338_persstr[] = {
+ 0x4b, 0x16, 0x63, 0xae, 0x4b, 0x57, 0x58, 0xbd, 0x57, 0x03, 0xc9, 0xae,
+ 0xed, 0xd7, 0xc9, 0x74, 0x0c, 0xe2, 0x57, 0xf0, 0x06, 0xbc, 0x7b, 0x68,
+ 0xf9, 0x0f, 0x71, 0xf6, 0x37, 0x19, 0xf7, 0x8a,
+};
+static const unsigned char kat338_addin0[] = {0};
+static const unsigned char kat338_addin1[] = {0};
+static const unsigned char kat338_retbits[] = {
+ 0xdc, 0x84, 0xd5, 0xef, 0x81, 0x94, 0xfa, 0x6c, 0x89, 0x75, 0x35, 0x88,
+ 0x0b, 0xf4, 0x84, 0x76, 0xf1, 0xe5, 0x31, 0x24, 0xb7, 0xad, 0x72, 0x99,
+ 0xcc, 0x1f, 0xf5, 0xe8, 0x56, 0x7e, 0xd4, 0xd5, 0x04, 0x1b, 0xa6, 0x2a,
+ 0x29, 0xb6, 0x32, 0x4e, 0x4a, 0x69, 0x40, 0xab, 0x8f, 0xba, 0xf3, 0x58,
+ 0xe9, 0xaa, 0x2d, 0xb4, 0x5f, 0x1c, 0x26, 0x69, 0xb7, 0x57, 0xeb, 0x3e,
+ 0xe9, 0xb9, 0xce, 0x70,
+};
+static const struct drbg_kat_no_reseed kat338_t = {
+ 7, kat338_entropyin, kat338_nonce, kat338_persstr,
+ kat338_addin0, kat338_addin1, kat338_retbits
+};
+static const struct drbg_kat kat338 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat338_t
+};
+
+static const unsigned char kat339_entropyin[] = {
+ 0x18, 0xa2, 0x35, 0x03, 0x50, 0xdc, 0x88, 0x05, 0x8d, 0x97, 0x18, 0x33,
+ 0x55, 0x26, 0xa3, 0x92, 0x59, 0x73, 0xd3, 0x69, 0x2c, 0xec, 0x6c, 0x2d,
+};
+static const unsigned char kat339_nonce[] = {
+ 0x8b, 0x0c, 0x04, 0x3b, 0x89, 0x71, 0x7a, 0xca, 0x31, 0x9f, 0x96, 0x72,
+ 0x1e, 0x45, 0xf0, 0xeb,
+};
+static const unsigned char kat339_persstr[] = {
+ 0x38, 0x5f, 0x0d, 0xdb, 0xe8, 0xa3, 0xd5, 0xba, 0x48, 0x0a, 0xbb, 0x7a,
+ 0xd5, 0x4d, 0x2a, 0xae, 0xa1, 0x29, 0x53, 0xdf, 0x7b, 0xe1, 0xd3, 0x48,
+ 0xfb, 0x38, 0x83, 0x86, 0xbe, 0x66, 0x51, 0xfa,
+};
+static const unsigned char kat339_addin0[] = {0};
+static const unsigned char kat339_addin1[] = {0};
+static const unsigned char kat339_retbits[] = {
+ 0xbf, 0x27, 0x45, 0xcc, 0x69, 0xc8, 0xe3, 0x76, 0xfe, 0x2d, 0x60, 0x63,
+ 0x5c, 0xd2, 0xb7, 0xf1, 0x32, 0x4b, 0x58, 0x29, 0xb3, 0xd2, 0x31, 0x49,
+ 0xed, 0xa9, 0x16, 0xd1, 0x92, 0x61, 0x61, 0xb2, 0x98, 0x8b, 0x6d, 0x01,
+ 0x43, 0x48, 0x89, 0x12, 0x6a, 0x5f, 0xbe, 0xca, 0xc4, 0xbb, 0xf3, 0x9a,
+ 0xb3, 0x52, 0x04, 0x2f, 0xa0, 0x78, 0x1a, 0x3b, 0x0b, 0x9d, 0x04, 0x6c,
+ 0xb9, 0xad, 0xbe, 0x9f,
+};
+static const struct drbg_kat_no_reseed kat339_t = {
+ 8, kat339_entropyin, kat339_nonce, kat339_persstr,
+ kat339_addin0, kat339_addin1, kat339_retbits
+};
+static const struct drbg_kat kat339 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat339_t
+};
+
+static const unsigned char kat340_entropyin[] = {
+ 0xcf, 0x2e, 0x38, 0xdd, 0x52, 0x04, 0x1d, 0xe7, 0xb4, 0x48, 0x63, 0x2b,
+ 0xbc, 0x11, 0xa9, 0x94, 0x79, 0x88, 0x7d, 0x44, 0xf3, 0xcc, 0xfc, 0xaf,
+};
+static const unsigned char kat340_nonce[] = {
+ 0x19, 0xc4, 0x29, 0x64, 0x80, 0xca, 0xa9, 0xe1, 0x60, 0x2e, 0x1c, 0x5e,
+ 0x8f, 0x21, 0x36, 0xb2,
+};
+static const unsigned char kat340_persstr[] = {
+ 0x64, 0xd3, 0x8b, 0xe3, 0x66, 0x26, 0xe8, 0x5f, 0xda, 0x02, 0x6a, 0x2a,
+ 0xdd, 0x7f, 0x98, 0x1b, 0x2e, 0x81, 0x44, 0x9e, 0xba, 0xf4, 0x5b, 0xfb,
+ 0xb5, 0x80, 0xab, 0x07, 0x62, 0x65, 0xb1, 0x61,
+};
+static const unsigned char kat340_addin0[] = {0};
+static const unsigned char kat340_addin1[] = {0};
+static const unsigned char kat340_retbits[] = {
+ 0x68, 0x77, 0x58, 0xf9, 0x5c, 0x73, 0x92, 0x86, 0x77, 0x23, 0x5d, 0x46,
+ 0x99, 0x4e, 0x90, 0x23, 0x13, 0xd4, 0x24, 0x61, 0x01, 0x69, 0x53, 0x59,
+ 0xcd, 0x81, 0xbd, 0x03, 0x5f, 0xda, 0xd3, 0xe8, 0xd8, 0xdc, 0x91, 0xd9,
+ 0x07, 0x63, 0x0e, 0xee, 0xfc, 0xfa, 0x44, 0x44, 0x5b, 0x00, 0xd1, 0x40,
+ 0x71, 0x49, 0xa1, 0x60, 0x6e, 0xdd, 0x72, 0x84, 0xaf, 0xca, 0xb5, 0xc8,
+ 0x69, 0xd7, 0x62, 0xfb,
+};
+static const struct drbg_kat_no_reseed kat340_t = {
+ 9, kat340_entropyin, kat340_nonce, kat340_persstr,
+ kat340_addin0, kat340_addin1, kat340_retbits
+};
+static const struct drbg_kat kat340 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat340_t
+};
+
+static const unsigned char kat341_entropyin[] = {
+ 0x75, 0xb3, 0xf1, 0x49, 0x96, 0xb0, 0x8a, 0x9c, 0xb2, 0x11, 0x11, 0xc1,
+ 0x05, 0x64, 0xf1, 0x24, 0x2f, 0xbc, 0x7e, 0xc2, 0xc1, 0x14, 0x56, 0xdd,
+};
+static const unsigned char kat341_nonce[] = {
+ 0x87, 0xac, 0x27, 0x4b, 0xad, 0x1f, 0x34, 0x7e, 0x05, 0x3f, 0x5f, 0x24,
+ 0x2e, 0x5b, 0x2a, 0x49,
+};
+static const unsigned char kat341_persstr[] = {
+ 0x1d, 0x4b, 0x88, 0xab, 0xff, 0xd4, 0x80, 0xbe, 0xdf, 0x4e, 0x4f, 0xcb,
+ 0xd8, 0x6e, 0x2c, 0xd3, 0x8c, 0x18, 0x3c, 0x93, 0xf2, 0xef, 0xe6, 0x21,
+ 0x8e, 0x94, 0x97, 0x63, 0xea, 0xfb, 0xa9, 0x81,
+};
+static const unsigned char kat341_addin0[] = {0};
+static const unsigned char kat341_addin1[] = {0};
+static const unsigned char kat341_retbits[] = {
+ 0x89, 0x58, 0x44, 0x32, 0x63, 0xf9, 0x4b, 0x01, 0x96, 0x34, 0xe3, 0x7f,
+ 0x7e, 0x5d, 0xec, 0x3b, 0x9f, 0xa7, 0xce, 0x24, 0xd0, 0xbf, 0xf6, 0x1c,
+ 0x5b, 0x8e, 0xe5, 0x4d, 0x0f, 0x29, 0x91, 0xfd, 0x2a, 0xf7, 0x2e, 0xf9,
+ 0x3b, 0x82, 0x2c, 0x55, 0xbd, 0xd2, 0xd2, 0x0e, 0xd3, 0xa7, 0x89, 0x05,
+ 0xa8, 0xc6, 0x01, 0xb4, 0xad, 0xd9, 0x8e, 0x66, 0x59, 0xb2, 0x17, 0x4c,
+ 0x45, 0x8c, 0x25, 0x87,
+};
+static const struct drbg_kat_no_reseed kat341_t = {
+ 10, kat341_entropyin, kat341_nonce, kat341_persstr,
+ kat341_addin0, kat341_addin1, kat341_retbits
+};
+static const struct drbg_kat kat341 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat341_t
+};
+
+static const unsigned char kat342_entropyin[] = {
+ 0x82, 0x0c, 0xcc, 0x71, 0xe2, 0x47, 0x27, 0x11, 0xe6, 0x3d, 0x44, 0x58,
+ 0xcc, 0x0b, 0x84, 0x66, 0xba, 0x0a, 0x79, 0xc2, 0x43, 0x9a, 0x8b, 0x9b,
+};
+static const unsigned char kat342_nonce[] = {
+ 0x98, 0xed, 0x21, 0xc6, 0x7c, 0x7c, 0x8d, 0x19, 0xbc, 0x21, 0x83, 0x70,
+ 0x58, 0x30, 0x6b, 0xc9,
+};
+static const unsigned char kat342_persstr[] = {
+ 0xa3, 0xdf, 0xf1, 0x63, 0x0c, 0x7f, 0xee, 0x3d, 0x69, 0x6a, 0x35, 0xfc,
+ 0xb6, 0x75, 0x4b, 0x63, 0xbd, 0xf1, 0x6c, 0x0a, 0x84, 0x9a, 0x54, 0x05,
+ 0x59, 0xea, 0xf3, 0x50, 0xa8, 0xa0, 0x3a, 0x80,
+};
+static const unsigned char kat342_addin0[] = {0};
+static const unsigned char kat342_addin1[] = {0};
+static const unsigned char kat342_retbits[] = {
+ 0x67, 0x01, 0xd4, 0x2f, 0xd9, 0xbe, 0x4a, 0x6e, 0xf9, 0x75, 0x0a, 0x5e,
+ 0xd6, 0x81, 0x7f, 0xd1, 0x6c, 0x06, 0xe3, 0x79, 0x1f, 0x4e, 0x7e, 0xd6,
+ 0xbf, 0x7e, 0x07, 0x84, 0x23, 0x9e, 0xb5, 0x5b, 0xbd, 0x5b, 0xf8, 0xbf,
+ 0x75, 0x7f, 0x73, 0x9a, 0x53, 0xd9, 0xe2, 0xce, 0xcc, 0x85, 0xdb, 0x1c,
+ 0x35, 0x72, 0x7e, 0xf0, 0x98, 0xd1, 0x9c, 0x09, 0x00, 0x0a, 0x7f, 0xb6,
+ 0x3a, 0x83, 0x6c, 0x68,
+};
+static const struct drbg_kat_no_reseed kat342_t = {
+ 11, kat342_entropyin, kat342_nonce, kat342_persstr,
+ kat342_addin0, kat342_addin1, kat342_retbits
+};
+static const struct drbg_kat kat342 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat342_t
+};
+
+static const unsigned char kat343_entropyin[] = {
+ 0x2a, 0xb2, 0x2f, 0x44, 0xac, 0x41, 0x93, 0xb1, 0x11, 0x15, 0x52, 0xd2,
+ 0x95, 0xe2, 0x41, 0xed, 0xf3, 0x7d, 0x6f, 0x4c, 0x28, 0xbb, 0xb3, 0xfc,
+};
+static const unsigned char kat343_nonce[] = {
+ 0x83, 0xb2, 0xdd, 0xa7, 0x9e, 0x88, 0xac, 0xb5, 0xb9, 0xbf, 0xf1, 0xbb,
+ 0xf6, 0x6f, 0x38, 0x78,
+};
+static const unsigned char kat343_persstr[] = {
+ 0xa6, 0xb0, 0xa7, 0x32, 0x04, 0xbc, 0x0d, 0xcc, 0x83, 0xfa, 0x2f, 0x48,
+ 0x0d, 0xb3, 0x71, 0xeb, 0x5b, 0x18, 0x3d, 0xaf, 0x59, 0x96, 0xed, 0xea,
+ 0xae, 0xb0, 0x9b, 0x82, 0x1a, 0x51, 0x66, 0x20,
+};
+static const unsigned char kat343_addin0[] = {0};
+static const unsigned char kat343_addin1[] = {0};
+static const unsigned char kat343_retbits[] = {
+ 0x69, 0x0e, 0x7f, 0x00, 0xc5, 0x57, 0xf7, 0x14, 0x29, 0xbc, 0x36, 0x42,
+ 0x5e, 0xd7, 0xd6, 0x21, 0x5d, 0x0f, 0xc1, 0x81, 0x29, 0xcc, 0x0f, 0x93,
+ 0x5f, 0xfb, 0x2b, 0xc4, 0xfb, 0x2c, 0x2b, 0x88, 0x3d, 0x6d, 0x95, 0xdd,
+ 0xcc, 0x07, 0x1f, 0xff, 0x5a, 0xd1, 0x99, 0x66, 0x09, 0x68, 0x0a, 0x7c,
+ 0xdc, 0xf5, 0x09, 0x9c, 0x88, 0x37, 0x1b, 0x6a, 0xc0, 0x65, 0x08, 0xd3,
+ 0x52, 0xcb, 0x91, 0x05,
+};
+static const struct drbg_kat_no_reseed kat343_t = {
+ 12, kat343_entropyin, kat343_nonce, kat343_persstr,
+ kat343_addin0, kat343_addin1, kat343_retbits
+};
+static const struct drbg_kat kat343 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat343_t
+};
+
+static const unsigned char kat344_entropyin[] = {
+ 0xe5, 0x99, 0x5b, 0x25, 0xb4, 0x74, 0x12, 0xc2, 0xcb, 0x2e, 0xcd, 0x2a,
+ 0x32, 0xb4, 0x06, 0x12, 0x4d, 0x90, 0xba, 0x5e, 0x26, 0xe6, 0x5b, 0x87,
+};
+static const unsigned char kat344_nonce[] = {
+ 0x12, 0x64, 0x3e, 0xa9, 0xfd, 0x57, 0x40, 0xa7, 0x38, 0x6f, 0x5f, 0x6a,
+ 0x01, 0xe6, 0xfe, 0x44,
+};
+static const unsigned char kat344_persstr[] = {
+ 0x3c, 0xef, 0x84, 0x53, 0x15, 0xcd, 0x98, 0x32, 0x2e, 0x2a, 0x28, 0xa4,
+ 0x44, 0x68, 0xcc, 0x14, 0xab, 0x68, 0x05, 0x03, 0xa6, 0xfa, 0x89, 0xad,
+ 0x4f, 0x87, 0x6b, 0x0e, 0x2c, 0x4f, 0x3c, 0xa7,
+};
+static const unsigned char kat344_addin0[] = {0};
+static const unsigned char kat344_addin1[] = {0};
+static const unsigned char kat344_retbits[] = {
+ 0x61, 0x29, 0xed, 0xa9, 0xef, 0x3b, 0x9e, 0xb9, 0xf3, 0x8f, 0xd8, 0xe9,
+ 0xca, 0x93, 0xe7, 0x31, 0x9b, 0x6f, 0xde, 0xd3, 0x63, 0xee, 0x15, 0x5c,
+ 0x97, 0x99, 0x19, 0xc3, 0x4b, 0x98, 0xce, 0x39, 0x9b, 0x0b, 0x4f, 0x99,
+ 0xf2, 0x83, 0x6f, 0x98, 0xea, 0x84, 0xd5, 0x26, 0x03, 0xf5, 0x79, 0x0d,
+ 0xa5, 0x20, 0x29, 0xa4, 0xe7, 0xcf, 0x87, 0x17, 0xdb, 0x4a, 0x62, 0x22,
+ 0x50, 0x0d, 0x7d, 0x2a,
+};
+static const struct drbg_kat_no_reseed kat344_t = {
+ 13, kat344_entropyin, kat344_nonce, kat344_persstr,
+ kat344_addin0, kat344_addin1, kat344_retbits
+};
+static const struct drbg_kat kat344 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat344_t
+};
+
+static const unsigned char kat345_entropyin[] = {
+ 0xf8, 0x1b, 0x47, 0x52, 0xd9, 0xb3, 0x4f, 0xea, 0x62, 0x82, 0x78, 0xbe,
+ 0xff, 0x92, 0x9d, 0x17, 0x9d, 0x04, 0x44, 0xa8, 0x1b, 0x0e, 0x1b, 0x75,
+};
+static const unsigned char kat345_nonce[] = {
+ 0xeb, 0xe6, 0xe2, 0x74, 0x3f, 0x5f, 0xd9, 0xc5, 0xb1, 0xbc, 0xeb, 0x12,
+ 0xf3, 0xf7, 0x9c, 0x2b,
+};
+static const unsigned char kat345_persstr[] = {
+ 0xd8, 0x6a, 0x1d, 0x62, 0x8b, 0xb8, 0x3d, 0x73, 0x86, 0x14, 0xa9, 0x3c,
+ 0x44, 0xc0, 0x8d, 0x37, 0x17, 0xf8, 0x03, 0xa2, 0x7b, 0xee, 0x61, 0xbe,
+ 0x24, 0xb8, 0xed, 0xf5, 0x2e, 0xfc, 0xd3, 0x68,
+};
+static const unsigned char kat345_addin0[] = {0};
+static const unsigned char kat345_addin1[] = {0};
+static const unsigned char kat345_retbits[] = {
+ 0xac, 0xd3, 0x01, 0xc2, 0x92, 0xbb, 0x6b, 0x80, 0x14, 0x01, 0xff, 0x9e,
+ 0x3b, 0x65, 0x56, 0xfa, 0x1c, 0xa8, 0x06, 0x1b, 0x99, 0xb8, 0xbd, 0x54,
+ 0x5b, 0x16, 0x33, 0x18, 0xbb, 0x88, 0x02, 0x28, 0xee, 0xb4, 0xee, 0x3a,
+ 0xd5, 0x6b, 0x21, 0x34, 0x33, 0x77, 0x92, 0x86, 0x2d, 0xa2, 0x51, 0xc5,
+ 0xac, 0x43, 0xc2, 0xa2, 0xa5, 0xd8, 0xcb, 0x38, 0xc1, 0x84, 0x36, 0x83,
+ 0x9f, 0xba, 0xb4, 0xdc,
+};
+static const struct drbg_kat_no_reseed kat345_t = {
+ 14, kat345_entropyin, kat345_nonce, kat345_persstr,
+ kat345_addin0, kat345_addin1, kat345_retbits
+};
+static const struct drbg_kat kat345 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat345_t
+};
+
+static const unsigned char kat346_entropyin[] = {
+ 0xf3, 0x58, 0x3f, 0x3c, 0x8b, 0x14, 0x7a, 0x7e, 0xe9, 0x92, 0xd5, 0xca,
+ 0x61, 0x1e, 0x47, 0x85, 0xb7, 0x72, 0xcb, 0x57, 0x5a, 0x53, 0xa5, 0x73,
+};
+static const unsigned char kat346_nonce[] = {
+ 0xeb, 0x1b, 0xce, 0xf5, 0x54, 0x1a, 0xba, 0x81, 0x29, 0xcd, 0xaa, 0x8b,
+ 0x23, 0x3b, 0x60, 0xf0,
+};
+static const unsigned char kat346_persstr[] = {
+ 0x08, 0xc1, 0x8b, 0x3c, 0x8f, 0x79, 0xed, 0xa3, 0xba, 0x18, 0xfc, 0xd2,
+ 0x71, 0x1c, 0x86, 0xfd, 0x1d, 0x6a, 0x28, 0x42, 0xea, 0x95, 0xf1, 0xd8,
+ 0x96, 0x17, 0x24, 0x01, 0x2c, 0x0a, 0x61, 0x21,
+};
+static const unsigned char kat346_addin0[] = {
+ 0x65, 0x7d, 0x1d, 0xf7, 0x80, 0xa9, 0xb6, 0x74, 0xb9, 0x0c, 0xce, 0x0d,
+ 0x49, 0xe2, 0xd5, 0xc0, 0xc0, 0x1e, 0xd2, 0xd2, 0xd7, 0x99, 0xf5, 0x04,
+ 0x34, 0x8d, 0x86, 0x37, 0x45, 0x76, 0xc4, 0x04,
+};
+static const unsigned char kat346_addin1[] = {
+ 0x94, 0x23, 0x4f, 0x2b, 0x6c, 0x9f, 0x32, 0x7c, 0xd8, 0x23, 0xe7, 0x53,
+ 0xec, 0x9c, 0x4d, 0xe4, 0x11, 0x97, 0x37, 0xaf, 0x91, 0x4d, 0xea, 0x5e,
+ 0x57, 0xe0, 0xa5, 0x0e, 0x33, 0x76, 0x13, 0x5f,
+};
+static const unsigned char kat346_retbits[] = {
+ 0x3c, 0x2e, 0x80, 0xe7, 0x21, 0x1e, 0x6a, 0x19, 0xa2, 0x7a, 0x53, 0xb4,
+ 0x95, 0x71, 0x65, 0xed, 0x87, 0xd1, 0xed, 0xb6, 0x62, 0x42, 0x6f, 0xee,
+ 0x92, 0x73, 0xae, 0x0d, 0x85, 0x40, 0x2c, 0xe2, 0x50, 0x7c, 0xda, 0x18,
+ 0x12, 0x6c, 0x07, 0xfb, 0x20, 0x11, 0x71, 0xf1, 0x76, 0xb0, 0x69, 0xd2,
+ 0xd2, 0xa1, 0x26, 0xaf, 0x5f, 0xb3, 0x1c, 0xe1, 0xd1, 0x99, 0x97, 0x8e,
+ 0x3d, 0x11, 0xd7, 0x71,
+};
+static const struct drbg_kat_no_reseed kat346_t = {
+ 0, kat346_entropyin, kat346_nonce, kat346_persstr,
+ kat346_addin0, kat346_addin1, kat346_retbits
+};
+static const struct drbg_kat kat346 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat346_t
+};
+
+static const unsigned char kat347_entropyin[] = {
+ 0x4e, 0x00, 0x8d, 0xc8, 0x72, 0xa7, 0x4a, 0x6a, 0x9d, 0x4c, 0x71, 0xc1,
+ 0x4a, 0x2d, 0x9b, 0x1a, 0xa7, 0xc0, 0x5a, 0x03, 0x40, 0x2c, 0xa1, 0x81,
+};
+static const unsigned char kat347_nonce[] = {
+ 0x33, 0xc5, 0x0f, 0xa9, 0x5f, 0x0d, 0x9d, 0x03, 0xbc, 0xc1, 0xde, 0x53,
+ 0x0e, 0x04, 0x44, 0x0d,
+};
+static const unsigned char kat347_persstr[] = {
+ 0x57, 0x87, 0x57, 0x74, 0x9b, 0x8e, 0xbe, 0x44, 0x2d, 0x93, 0xb6, 0x2c,
+ 0xb9, 0x42, 0x27, 0x8d, 0xe5, 0xaa, 0x89, 0x09, 0xf9, 0x14, 0x12, 0x0a,
+ 0x90, 0x58, 0xb2, 0xc3, 0x41, 0xe8, 0x86, 0xc8,
+};
+static const unsigned char kat347_addin0[] = {
+ 0xea, 0x62, 0x7c, 0xb9, 0xfe, 0x1a, 0x49, 0x9e, 0x3b, 0xc1, 0xae, 0x73,
+ 0x1a, 0xa3, 0x73, 0x2b, 0x53, 0x93, 0x97, 0x17, 0x88, 0x98, 0xba, 0x2d,
+ 0xc4, 0x0c, 0x04, 0xae, 0x68, 0x50, 0x48, 0x86,
+};
+static const unsigned char kat347_addin1[] = {
+ 0x77, 0x0a, 0xcb, 0x69, 0x0f, 0xd0, 0xba, 0x83, 0x09, 0x71, 0x93, 0x30,
+ 0x3d, 0x68, 0x44, 0x05, 0xdd, 0xb3, 0xdd, 0x4f, 0x67, 0x70, 0xf0, 0x14,
+ 0x1d, 0x58, 0x04, 0x62, 0x60, 0xe3, 0xf2, 0x73,
+};
+static const unsigned char kat347_retbits[] = {
+ 0xb0, 0xe1, 0x3a, 0xf5, 0x42, 0xc0, 0x77, 0x79, 0x61, 0xcb, 0xec, 0x4c,
+ 0x61, 0xc9, 0xb2, 0x25, 0xa1, 0x21, 0x01, 0x16, 0xcb, 0xc7, 0x4e, 0xed,
+ 0x6e, 0xa8, 0xb7, 0x3e, 0x96, 0x8c, 0x11, 0x8f, 0xe6, 0x0e, 0x36, 0x07,
+ 0x98, 0xa1, 0x77, 0x9f, 0x07, 0xe0, 0x0b, 0x3f, 0xd1, 0x24, 0xf2, 0x78,
+ 0xb2, 0x7f, 0x70, 0x04, 0x66, 0x12, 0x02, 0x1d, 0xb8, 0xb8, 0xad, 0x32,
+ 0x92, 0x89, 0x40, 0x64,
+};
+static const struct drbg_kat_no_reseed kat347_t = {
+ 1, kat347_entropyin, kat347_nonce, kat347_persstr,
+ kat347_addin0, kat347_addin1, kat347_retbits
+};
+static const struct drbg_kat kat347 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat347_t
+};
+
+static const unsigned char kat348_entropyin[] = {
+ 0x09, 0x65, 0xa0, 0xca, 0x7c, 0x1e, 0x68, 0x46, 0x26, 0xa4, 0x09, 0xd8,
+ 0xcb, 0xed, 0x26, 0x73, 0x0e, 0x86, 0x18, 0xbf, 0x7c, 0x2c, 0x70, 0x31,
+};
+static const unsigned char kat348_nonce[] = {
+ 0x19, 0xc4, 0x20, 0x55, 0xf5, 0xcd, 0x94, 0xdf, 0x0f, 0xe3, 0x03, 0x7a,
+ 0xf9, 0x81, 0x55, 0x0b,
+};
+static const unsigned char kat348_persstr[] = {
+ 0xc9, 0x08, 0x8b, 0x4b, 0x23, 0xa1, 0xbd, 0x96, 0x96, 0x3e, 0x43, 0xe1,
+ 0xe7, 0x74, 0x28, 0x70, 0xb6, 0xb0, 0xad, 0x58, 0xac, 0xe3, 0x32, 0x6f,
+ 0x1c, 0x7e, 0x67, 0x5a, 0xff, 0x6e, 0x53, 0x97,
+};
+static const unsigned char kat348_addin0[] = {
+ 0xcf, 0x58, 0x27, 0x39, 0x45, 0xa0, 0xc5, 0x26, 0x2b, 0xb1, 0x7e, 0x32,
+ 0xd2, 0xdc, 0x7a, 0xfa, 0x5f, 0xf9, 0x19, 0xee, 0xaf, 0xee, 0xf7, 0x32,
+ 0x2c, 0xa0, 0x2c, 0xa5, 0x05, 0x53, 0xf4, 0x91,
+};
+static const unsigned char kat348_addin1[] = {
+ 0x9d, 0x64, 0xc2, 0xef, 0x27, 0xde, 0xda, 0xe0, 0x99, 0xa1, 0x01, 0x6c,
+ 0x10, 0x93, 0x71, 0x5b, 0xd1, 0x36, 0x87, 0xfa, 0xa1, 0x72, 0x42, 0xfe,
+ 0xa8, 0xbf, 0x25, 0x48, 0xa6, 0xdd, 0x7d, 0xfd,
+};
+static const unsigned char kat348_retbits[] = {
+ 0x03, 0xa7, 0x58, 0x95, 0x2a, 0xc1, 0x7a, 0x40, 0x0a, 0xe9, 0x74, 0x28,
+ 0xba, 0xa6, 0x41, 0xd7, 0xb9, 0xe3, 0xcd, 0xdb, 0x16, 0x3c, 0x1f, 0x38,
+ 0x19, 0x69, 0xb2, 0x09, 0x5b, 0x5e, 0x00, 0x76, 0xc3, 0x53, 0xc8, 0xf5,
+ 0x54, 0x60, 0xf1, 0x62, 0xae, 0x85, 0x23, 0xa5, 0x2b, 0x46, 0xa0, 0x1d,
+ 0x5d, 0x26, 0x43, 0xac, 0x81, 0x52, 0x9e, 0x7f, 0xc7, 0x73, 0xac, 0xda,
+ 0xf6, 0x74, 0xed, 0x37,
+};
+static const struct drbg_kat_no_reseed kat348_t = {
+ 2, kat348_entropyin, kat348_nonce, kat348_persstr,
+ kat348_addin0, kat348_addin1, kat348_retbits
+};
+static const struct drbg_kat kat348 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat348_t
+};
+
+static const unsigned char kat349_entropyin[] = {
+ 0x0b, 0x74, 0xa0, 0xd1, 0x4e, 0x27, 0x94, 0xd8, 0x8b, 0x66, 0x17, 0x0c,
+ 0x90, 0xc4, 0xf9, 0x21, 0xaf, 0xa6, 0xe6, 0x78, 0xd4, 0x8a, 0x38, 0x6a,
+};
+static const unsigned char kat349_nonce[] = {
+ 0x2c, 0x38, 0x0c, 0xba, 0xbd, 0x98, 0x44, 0x3d, 0x64, 0x56, 0xea, 0xcf,
+ 0x25, 0xff, 0xdc, 0xfc,
+};
+static const unsigned char kat349_persstr[] = {
+ 0x11, 0x0b, 0xf5, 0xb1, 0x76, 0xd8, 0x7a, 0x0a, 0x4e, 0x6c, 0x48, 0x28,
+ 0x29, 0x72, 0x85, 0x4c, 0x3e, 0xde, 0xbd, 0xd2, 0x08, 0xc9, 0xa6, 0xa3,
+ 0xef, 0x52, 0x0f, 0x93, 0xa2, 0x1e, 0x1b, 0xbf,
+};
+static const unsigned char kat349_addin0[] = {
+ 0x0e, 0xee, 0xec, 0x35, 0x9c, 0x4c, 0x7b, 0x15, 0x5c, 0xd4, 0x91, 0x71,
+ 0x13, 0x65, 0x14, 0xde, 0xa7, 0x1a, 0xb8, 0xe4, 0x35, 0xa1, 0x22, 0x60,
+ 0x6c, 0xcc, 0x50, 0x40, 0xd4, 0xce, 0x82, 0x5b,
+};
+static const unsigned char kat349_addin1[] = {
+ 0x9d, 0xe0, 0xef, 0x32, 0x02, 0x88, 0x82, 0x3b, 0x06, 0xce, 0x81, 0x89,
+ 0x5e, 0x57, 0x23, 0xf1, 0x32, 0x39, 0xd5, 0x26, 0x9d, 0x50, 0x7c, 0xca,
+ 0xb6, 0xbc, 0xd9, 0x6b, 0x3b, 0x9b, 0x3f, 0xbf,
+};
+static const unsigned char kat349_retbits[] = {
+ 0x3f, 0xe1, 0x12, 0xcc, 0xd4, 0x4d, 0x50, 0xd5, 0xd5, 0x4e, 0x33, 0xbd,
+ 0xd6, 0xf1, 0x12, 0xf1, 0xef, 0x4c, 0xaa, 0xc0, 0x69, 0x58, 0x6d, 0xd4,
+ 0xd8, 0x9c, 0x64, 0xe6, 0x93, 0x14, 0xe2, 0xef, 0xc3, 0xcb, 0x77, 0xaa,
+ 0x5f, 0xe2, 0x08, 0x61, 0x59, 0xab, 0xfe, 0x21, 0x9e, 0xfd, 0xf5, 0x2b,
+ 0x86, 0x70, 0x41, 0x14, 0x75, 0x58, 0x57, 0xd7, 0x4c, 0x45, 0x9a, 0xf5,
+ 0x22, 0x85, 0xa4, 0x4a,
+};
+static const struct drbg_kat_no_reseed kat349_t = {
+ 3, kat349_entropyin, kat349_nonce, kat349_persstr,
+ kat349_addin0, kat349_addin1, kat349_retbits
+};
+static const struct drbg_kat kat349 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat349_t
+};
+
+static const unsigned char kat350_entropyin[] = {
+ 0xfe, 0x01, 0xd0, 0x64, 0xd2, 0x98, 0xa1, 0x6a, 0xa1, 0x38, 0xbf, 0x10,
+ 0xfe, 0x69, 0x2a, 0xd6, 0xaa, 0xae, 0x53, 0xf5, 0x19, 0xe6, 0xad, 0x13,
+};
+static const unsigned char kat350_nonce[] = {
+ 0x14, 0x32, 0xc2, 0x4e, 0x78, 0xa2, 0x45, 0x40, 0xdc, 0xb5, 0x91, 0x4e,
+ 0xe8, 0x51, 0x0c, 0xfa,
+};
+static const unsigned char kat350_persstr[] = {
+ 0x76, 0x99, 0x12, 0xbd, 0xd5, 0x9b, 0xcd, 0x14, 0x5c, 0x52, 0x7e, 0x9c,
+ 0x13, 0x2c, 0x5e, 0xca, 0x56, 0xb2, 0x87, 0x8f, 0x12, 0x2c, 0x0e, 0x53,
+ 0xfa, 0x34, 0x53, 0x14, 0x0a, 0x2b, 0x4b, 0x01,
+};
+static const unsigned char kat350_addin0[] = {
+ 0x30, 0x0b, 0x91, 0x87, 0x40, 0x26, 0x19, 0xf7, 0x75, 0xca, 0x2c, 0x53,
+ 0x52, 0xa3, 0x3a, 0x03, 0x4a, 0xd8, 0x00, 0x68, 0xcf, 0xef, 0x0f, 0xb1,
+ 0xea, 0xa7, 0xb5, 0x76, 0xa0, 0xc9, 0x10, 0xbd,
+};
+static const unsigned char kat350_addin1[] = {
+ 0xb6, 0xb1, 0x76, 0xd0, 0x6c, 0xe4, 0xfe, 0x18, 0x9d, 0x87, 0x73, 0xf4,
+ 0x13, 0xf2, 0x59, 0x26, 0x10, 0x63, 0x79, 0x69, 0xab, 0x9a, 0x1d, 0xde,
+ 0x51, 0x96, 0x0f, 0xcd, 0x42, 0x75, 0xfc, 0x80,
+};
+static const unsigned char kat350_retbits[] = {
+ 0x98, 0x90, 0x5c, 0x12, 0xc0, 0xe5, 0xc2, 0xe0, 0x7b, 0x32, 0x61, 0x7f,
+ 0xac, 0x64, 0x34, 0x34, 0x21, 0xfe, 0x69, 0x7b, 0x18, 0x88, 0x6a, 0x33,
+ 0x44, 0xa4, 0xe6, 0x28, 0x67, 0x73, 0x2e, 0x90, 0xe2, 0x85, 0x75, 0x04,
+ 0xf7, 0x53, 0xc1, 0x11, 0x83, 0xfd, 0xb4, 0xdb, 0xe4, 0x6e, 0x78, 0xfb,
+ 0x74, 0xe5, 0xbe, 0x32, 0xa6, 0x72, 0xb8, 0xe5, 0xc6, 0x99, 0xc3, 0x45,
+ 0xa8, 0x4a, 0x6d, 0xcc,
+};
+static const struct drbg_kat_no_reseed kat350_t = {
+ 4, kat350_entropyin, kat350_nonce, kat350_persstr,
+ kat350_addin0, kat350_addin1, kat350_retbits
+};
+static const struct drbg_kat kat350 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat350_t
+};
+
+static const unsigned char kat351_entropyin[] = {
+ 0x25, 0x38, 0x36, 0xb5, 0xb8, 0xe1, 0xda, 0x4a, 0x96, 0xf2, 0x01, 0xec,
+ 0xdc, 0xce, 0xbc, 0x2f, 0x9a, 0xed, 0xb9, 0xf2, 0x20, 0xed, 0x26, 0x61,
+};
+static const unsigned char kat351_nonce[] = {
+ 0x1e, 0x91, 0xb8, 0x74, 0x68, 0xf3, 0x28, 0x4a, 0x4e, 0x55, 0x08, 0x40,
+ 0x2a, 0x32, 0x74, 0x25,
+};
+static const unsigned char kat351_persstr[] = {
+ 0x25, 0xe8, 0x4e, 0x59, 0x21, 0xcd, 0x54, 0x8c, 0x38, 0x95, 0xac, 0xb0,
+ 0x1d, 0xcd, 0xff, 0xc9, 0xa4, 0x79, 0x22, 0x56, 0xf3, 0x1d, 0x1a, 0xdf,
+ 0x30, 0xe0, 0x89, 0xb6, 0xa4, 0x0c, 0xd0, 0x29,
+};
+static const unsigned char kat351_addin0[] = {
+ 0x0b, 0x8b, 0x88, 0xd3, 0xc3, 0x78, 0x73, 0x6b, 0x60, 0x69, 0x49, 0x0c,
+ 0xc8, 0xf8, 0x1b, 0x70, 0xb1, 0xc4, 0x2d, 0xc7, 0xb6, 0x30, 0xb5, 0xe8,
+ 0xb5, 0xd2, 0x57, 0xfa, 0x73, 0xda, 0x77, 0xcf,
+};
+static const unsigned char kat351_addin1[] = {
+ 0xe7, 0x92, 0x5d, 0xbd, 0x1b, 0x6e, 0xc3, 0x62, 0xf2, 0xb3, 0x94, 0x1c,
+ 0x34, 0xad, 0x6c, 0xc9, 0xf0, 0x9b, 0x7e, 0xe1, 0xe6, 0xc9, 0xff, 0xd5,
+ 0x12, 0x05, 0x4b, 0xdd, 0x40, 0x3d, 0xe0, 0xe1,
+};
+static const unsigned char kat351_retbits[] = {
+ 0xa4, 0x33, 0x61, 0xdf, 0xe3, 0x61, 0x97, 0x9a, 0xbf, 0xf5, 0x57, 0xf6,
+ 0x50, 0x06, 0xc5, 0x2e, 0x77, 0x64, 0xa2, 0x8f, 0x7d, 0x13, 0x69, 0x7c,
+ 0x94, 0x09, 0x85, 0x52, 0xaf, 0x40, 0x05, 0x97, 0x89, 0x3b, 0x9f, 0x02,
+ 0x71, 0x3f, 0x96, 0xd3, 0x94, 0xbb, 0x17, 0x83, 0x8f, 0x3c, 0x7b, 0xc8,
+ 0xdc, 0xb7, 0xaa, 0x03, 0x32, 0xb7, 0xef, 0x6b, 0x51, 0xde, 0xec, 0x7a,
+ 0x2f, 0x38, 0x16, 0x07,
+};
+static const struct drbg_kat_no_reseed kat351_t = {
+ 5, kat351_entropyin, kat351_nonce, kat351_persstr,
+ kat351_addin0, kat351_addin1, kat351_retbits
+};
+static const struct drbg_kat kat351 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat351_t
+};
+
+static const unsigned char kat352_entropyin[] = {
+ 0x0b, 0xa8, 0xc3, 0x0d, 0x69, 0x75, 0x23, 0x95, 0xd3, 0xa6, 0xdd, 0x5c,
+ 0x3d, 0x2e, 0xb1, 0x7c, 0x98, 0x4b, 0x40, 0xb4, 0x03, 0x82, 0xac, 0x84,
+};
+static const unsigned char kat352_nonce[] = {
+ 0x60, 0x79, 0x40, 0xf2, 0x5e, 0x5d, 0xb8, 0x9a, 0x7b, 0x2d, 0xa5, 0xd4,
+ 0xee, 0x79, 0xb8, 0x46,
+};
+static const unsigned char kat352_persstr[] = {
+ 0x87, 0x74, 0xab, 0x97, 0xc6, 0xfa, 0x93, 0x8e, 0x49, 0x37, 0x3e, 0x94,
+ 0x83, 0xc1, 0xa1, 0x8c, 0x8b, 0xf4, 0x3d, 0x3e, 0x38, 0xf9, 0xb9, 0x5e,
+ 0x23, 0xab, 0x04, 0x12, 0x24, 0x5b, 0x8f, 0xb5,
+};
+static const unsigned char kat352_addin0[] = {
+ 0x94, 0x6c, 0xe7, 0xd8, 0xda, 0xf6, 0x45, 0xbb, 0x0a, 0x21, 0x87, 0x85,
+ 0xc0, 0x24, 0x61, 0xdb, 0xf4, 0x97, 0x3a, 0xf9, 0xf9, 0xb1, 0xb7, 0x70,
+ 0x94, 0x89, 0xe1, 0xb4, 0xe2, 0xf9, 0x1b, 0xad,
+};
+static const unsigned char kat352_addin1[] = {
+ 0x73, 0xde, 0xf1, 0x10, 0x43, 0x86, 0xd8, 0x3e, 0xf8, 0xbc, 0x71, 0x7e,
+ 0x52, 0x2b, 0x14, 0x8c, 0xca, 0xac, 0xd4, 0x3a, 0x27, 0x9b, 0x73, 0xc3,
+ 0x73, 0xa6, 0xd5, 0xa6, 0x62, 0xf0, 0x26, 0xa3,
+};
+static const unsigned char kat352_retbits[] = {
+ 0x54, 0xbe, 0x8d, 0xaf, 0xf4, 0xb6, 0x5b, 0x03, 0x2b, 0xfa, 0x52, 0x34,
+ 0x92, 0x06, 0x1c, 0x46, 0xb5, 0xce, 0x36, 0xb2, 0x64, 0x60, 0x84, 0x47,
+ 0x43, 0x03, 0xd2, 0x62, 0x2b, 0x00, 0x61, 0x12, 0xdd, 0x18, 0x6d, 0xce,
+ 0x10, 0xc3, 0x06, 0x85, 0x6c, 0x2e, 0x88, 0xc1, 0xce, 0xdc, 0x40, 0x42,
+ 0x69, 0xb8, 0x92, 0x4f, 0x92, 0xd8, 0x43, 0x97, 0x30, 0xd6, 0x47, 0xda,
+ 0x55, 0xd6, 0x0e, 0x9b,
+};
+static const struct drbg_kat_no_reseed kat352_t = {
+ 6, kat352_entropyin, kat352_nonce, kat352_persstr,
+ kat352_addin0, kat352_addin1, kat352_retbits
+};
+static const struct drbg_kat kat352 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat352_t
+};
+
+static const unsigned char kat353_entropyin[] = {
+ 0x61, 0x91, 0x07, 0x37, 0x79, 0x9f, 0xa4, 0x68, 0xa3, 0xf6, 0x6d, 0xad,
+ 0xaf, 0x56, 0xf4, 0xe3, 0xb8, 0xf7, 0x98, 0xca, 0x65, 0xce, 0x03, 0x91,
+};
+static const unsigned char kat353_nonce[] = {
+ 0x72, 0x33, 0x99, 0xac, 0x93, 0x58, 0x69, 0xce, 0x20, 0x5d, 0x85, 0x50,
+ 0x9c, 0xc2, 0x78, 0x42,
+};
+static const unsigned char kat353_persstr[] = {
+ 0x29, 0xe3, 0xea, 0x51, 0x80, 0x5c, 0x78, 0xfe, 0x84, 0x91, 0x15, 0xc4,
+ 0xb7, 0x73, 0x61, 0xd7, 0x5b, 0x1b, 0x92, 0x46, 0xe5, 0x6c, 0x46, 0x41,
+ 0x66, 0xac, 0x7e, 0x8d, 0x1c, 0xa8, 0xe3, 0xab,
+};
+static const unsigned char kat353_addin0[] = {
+ 0xab, 0x8a, 0xa0, 0x35, 0xc7, 0x15, 0x01, 0xc1, 0xf4, 0x9d, 0xea, 0x7c,
+ 0x67, 0x8e, 0x02, 0xd6, 0x9e, 0x2f, 0x84, 0x3a, 0xf7, 0x44, 0x79, 0x36,
+ 0x7a, 0x38, 0x6f, 0x68, 0x4c, 0xc3, 0x60, 0xdb,
+};
+static const unsigned char kat353_addin1[] = {
+ 0x22, 0xdc, 0xd9, 0xf0, 0x31, 0x38, 0xf3, 0x72, 0xb1, 0x5f, 0x15, 0xac,
+ 0x6d, 0xc3, 0x1d, 0x13, 0x57, 0x10, 0x2e, 0xd4, 0xe8, 0x03, 0xb6, 0xd3,
+ 0x84, 0x29, 0x8e, 0x4c, 0xde, 0xb2, 0xe9, 0x01,
+};
+static const unsigned char kat353_retbits[] = {
+ 0x01, 0x86, 0x2e, 0x1d, 0x6f, 0xa1, 0x11, 0x73, 0x60, 0x9a, 0x18, 0x2d,
+ 0x6a, 0x5a, 0x73, 0x31, 0x0c, 0x76, 0xdf, 0xa8, 0x8d, 0x1e, 0xbf, 0xf2,
+ 0x5e, 0xf4, 0x5d, 0x57, 0x96, 0xbd, 0xf4, 0x7a, 0x2b, 0xb6, 0xb9, 0xcf,
+ 0x88, 0x17, 0xe6, 0xd7, 0x6b, 0x70, 0xbf, 0x0b, 0x9e, 0x83, 0xd8, 0xb4,
+ 0xa1, 0x28, 0xbe, 0xe0, 0x6b, 0x6b, 0x0e, 0xe3, 0x7b, 0x60, 0x21, 0xad,
+ 0x47, 0x22, 0xc4, 0xe7,
+};
+static const struct drbg_kat_no_reseed kat353_t = {
+ 7, kat353_entropyin, kat353_nonce, kat353_persstr,
+ kat353_addin0, kat353_addin1, kat353_retbits
+};
+static const struct drbg_kat kat353 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat353_t
+};
+
+static const unsigned char kat354_entropyin[] = {
+ 0x6d, 0xf2, 0x09, 0x57, 0x0e, 0xd2, 0x0e, 0x3d, 0x9f, 0x13, 0xe9, 0x6c,
+ 0x29, 0xd2, 0xb0, 0x14, 0xbc, 0xa9, 0xb9, 0xfb, 0xeb, 0x5a, 0x32, 0xcf,
+};
+static const unsigned char kat354_nonce[] = {
+ 0x53, 0x1a, 0x31, 0xc8, 0x7e, 0xc9, 0x2b, 0xa0, 0x6e, 0xf8, 0xa6, 0xdb,
+ 0x62, 0x3c, 0xf3, 0xc0,
+};
+static const unsigned char kat354_persstr[] = {
+ 0xf2, 0x55, 0x70, 0x3d, 0xc8, 0xcd, 0x5c, 0xeb, 0xba, 0x02, 0x29, 0xe4,
+ 0x31, 0x5a, 0xee, 0xe8, 0x6b, 0xee, 0x45, 0xae, 0xb7, 0x52, 0x79, 0xc0,
+ 0xe1, 0x20, 0xe4, 0x4e, 0x46, 0x93, 0x5b, 0x15,
+};
+static const unsigned char kat354_addin0[] = {
+ 0x7e, 0x16, 0x03, 0x2a, 0x61, 0x55, 0xc3, 0x7c, 0x24, 0x69, 0xb7, 0x3a,
+ 0x2a, 0x50, 0xba, 0xa8, 0x96, 0x53, 0xe9, 0xc1, 0xe7, 0xb2, 0x5b, 0xdb,
+ 0xf0, 0x67, 0x5c, 0xa6, 0x84, 0xec, 0x8a, 0x05,
+};
+static const unsigned char kat354_addin1[] = {
+ 0x95, 0x60, 0x81, 0xc8, 0x08, 0xea, 0x4b, 0x9f, 0xd3, 0xc9, 0x88, 0x01,
+ 0x40, 0xcd, 0xbe, 0x41, 0xcb, 0x0a, 0xa0, 0x39, 0xf0, 0xff, 0xad, 0x1e,
+ 0xfc, 0xb9, 0x4b, 0x41, 0x31, 0x7a, 0xb3, 0x21,
+};
+static const unsigned char kat354_retbits[] = {
+ 0x5e, 0x8d, 0x8b, 0x4b, 0x79, 0xeb, 0x53, 0x42, 0x2f, 0x92, 0x68, 0x36,
+ 0xef, 0x78, 0x05, 0x1f, 0x53, 0x3b, 0x93, 0x18, 0xf6, 0x1a, 0x62, 0x55,
+ 0x29, 0xb0, 0xad, 0xcc, 0x07, 0x0d, 0x71, 0xd2, 0xef, 0xd3, 0x3f, 0x61,
+ 0x14, 0xdb, 0x13, 0xcf, 0x26, 0xb6, 0x62, 0x1f, 0xe8, 0x56, 0xb7, 0x08,
+ 0xaf, 0x48, 0xa6, 0x7f, 0x3c, 0xb2, 0xed, 0x8b, 0x9a, 0x92, 0xe0, 0xb7,
+ 0x3b, 0xfb, 0xce, 0x57,
+};
+static const struct drbg_kat_no_reseed kat354_t = {
+ 8, kat354_entropyin, kat354_nonce, kat354_persstr,
+ kat354_addin0, kat354_addin1, kat354_retbits
+};
+static const struct drbg_kat kat354 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat354_t
+};
+
+static const unsigned char kat355_entropyin[] = {
+ 0x73, 0x2a, 0xda, 0x29, 0x7f, 0x8e, 0x2f, 0x25, 0x4e, 0x5c, 0x3c, 0xd3,
+ 0x27, 0x58, 0xa7, 0x00, 0xa4, 0xaa, 0x63, 0xea, 0x35, 0x31, 0x78, 0xf1,
+};
+static const unsigned char kat355_nonce[] = {
+ 0x19, 0x1f, 0x07, 0xc4, 0x99, 0x93, 0xf6, 0xb4, 0xb2, 0x49, 0xf6, 0xad,
+ 0x0d, 0x70, 0x2d, 0x7f,
+};
+static const unsigned char kat355_persstr[] = {
+ 0x9a, 0x31, 0x0d, 0x97, 0x0d, 0xaa, 0xff, 0x8a, 0xb0, 0xb2, 0x6a, 0x0e,
+ 0xdd, 0x2a, 0xa2, 0xe5, 0xc4, 0x0f, 0x83, 0x3c, 0xd1, 0x54, 0x21, 0x8d,
+ 0xd7, 0x12, 0xb1, 0x1c, 0x52, 0x93, 0x4a, 0xb2,
+};
+static const unsigned char kat355_addin0[] = {
+ 0xa3, 0x8c, 0x3e, 0x35, 0xc7, 0x3f, 0x78, 0xb3, 0x81, 0x6e, 0xe9, 0x0b,
+ 0x7d, 0x13, 0x16, 0xc4, 0x24, 0x71, 0x90, 0x47, 0xe1, 0x04, 0xe3, 0x09,
+ 0x73, 0xf6, 0x96, 0x10, 0xcb, 0x41, 0x40, 0x8a,
+};
+static const unsigned char kat355_addin1[] = {
+ 0x14, 0xae, 0xf4, 0x4a, 0x84, 0xb7, 0xc0, 0x21, 0xd4, 0xfc, 0xf3, 0x82,
+ 0x58, 0xcb, 0xfb, 0x95, 0xb1, 0x07, 0xbf, 0xf7, 0x51, 0xb5, 0x40, 0x5b,
+ 0xf2, 0x1e, 0x9d, 0x08, 0x8f, 0xd7, 0x2d, 0xab,
+};
+static const unsigned char kat355_retbits[] = {
+ 0x8a, 0x84, 0x0c, 0x68, 0x78, 0x67, 0x1d, 0x31, 0xac, 0x43, 0x84, 0xaa,
+ 0x7e, 0x11, 0x3b, 0x09, 0x74, 0x4f, 0x6d, 0x89, 0xa0, 0x9b, 0x0e, 0x5c,
+ 0xb7, 0xcd, 0x14, 0x80, 0xfd, 0x89, 0x4e, 0xa6, 0x9e, 0x56, 0x8d, 0x6e,
+ 0xe8, 0x31, 0xa9, 0xef, 0x4b, 0x90, 0xdb, 0x52, 0x77, 0xf6, 0xee, 0x48,
+ 0xac, 0x66, 0xbb, 0xc3, 0x78, 0x65, 0x68, 0x7c, 0xed, 0x77, 0xf9, 0x56,
+ 0xa2, 0xca, 0xcf, 0x90,
+};
+static const struct drbg_kat_no_reseed kat355_t = {
+ 9, kat355_entropyin, kat355_nonce, kat355_persstr,
+ kat355_addin0, kat355_addin1, kat355_retbits
+};
+static const struct drbg_kat kat355 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat355_t
+};
+
+static const unsigned char kat356_entropyin[] = {
+ 0x61, 0xd3, 0x83, 0x95, 0x16, 0x61, 0x74, 0x27, 0x61, 0x38, 0xd6, 0x43,
+ 0x68, 0x3b, 0x3e, 0x63, 0xd5, 0x90, 0x9e, 0x5d, 0x15, 0xd7, 0x31, 0x4a,
+};
+static const unsigned char kat356_nonce[] = {
+ 0x21, 0x14, 0x1c, 0xe4, 0x19, 0xc9, 0x54, 0x1d, 0x49, 0xbc, 0xff, 0xcc,
+ 0xf0, 0x16, 0xd5, 0x93,
+};
+static const unsigned char kat356_persstr[] = {
+ 0x63, 0xb3, 0xac, 0x79, 0x89, 0x91, 0x37, 0x69, 0x23, 0xc1, 0x11, 0x71,
+ 0x08, 0xdd, 0x09, 0x62, 0x74, 0x57, 0xb0, 0x4f, 0x20, 0xeb, 0x06, 0x3c,
+ 0xac, 0xb4, 0xe0, 0xc5, 0x6a, 0xee, 0xde, 0x43,
+};
+static const unsigned char kat356_addin0[] = {
+ 0x15, 0x07, 0xf2, 0x57, 0x0a, 0xc3, 0x47, 0xe2, 0x59, 0x3a, 0x77, 0x87,
+ 0x3e, 0xc2, 0xab, 0x50, 0x86, 0xd9, 0xb3, 0x65, 0x9f, 0xba, 0x3c, 0xa2,
+ 0xba, 0xe6, 0x04, 0x14, 0x21, 0x9b, 0xd7, 0x34,
+};
+static const unsigned char kat356_addin1[] = {
+ 0xc6, 0x2c, 0x67, 0x91, 0xec, 0x08, 0xe6, 0x4b, 0xe2, 0xfa, 0x59, 0xd2,
+ 0xfa, 0x9e, 0x17, 0x49, 0xc1, 0x86, 0x40, 0x85, 0x54, 0xa0, 0x55, 0x14,
+ 0x4e, 0x3e, 0xe9, 0x2d, 0x7b, 0xf1, 0x30, 0xbf,
+};
+static const unsigned char kat356_retbits[] = {
+ 0xff, 0x3d, 0xf5, 0x33, 0xee, 0xab, 0x76, 0x97, 0xef, 0x66, 0x8d, 0x30,
+ 0x1e, 0x9d, 0x69, 0x20, 0xb1, 0x55, 0xd6, 0x78, 0x1e, 0x4a, 0xbd, 0xad,
+ 0xb0, 0xef, 0xce, 0x45, 0x75, 0xa6, 0x49, 0xd1, 0x32, 0x97, 0xe0, 0xb2,
+ 0x98, 0x69, 0x40, 0x60, 0x8c, 0x65, 0x57, 0xfe, 0x19, 0x6d, 0x65, 0xb9,
+ 0xaa, 0x4f, 0x64, 0x21, 0x96, 0xca, 0x83, 0x6f, 0xd7, 0x57, 0xe0, 0xc3,
+ 0xc3, 0xcc, 0x5d, 0x1b,
+};
+static const struct drbg_kat_no_reseed kat356_t = {
+ 10, kat356_entropyin, kat356_nonce, kat356_persstr,
+ kat356_addin0, kat356_addin1, kat356_retbits
+};
+static const struct drbg_kat kat356 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat356_t
+};
+
+static const unsigned char kat357_entropyin[] = {
+ 0xa1, 0x32, 0xa5, 0x32, 0x44, 0xa7, 0x84, 0x07, 0x88, 0x00, 0x47, 0x4c,
+ 0xfe, 0xe3, 0xd7, 0x72, 0xcc, 0x00, 0xda, 0x9e, 0xfb, 0x5a, 0xab, 0xce,
+};
+static const unsigned char kat357_nonce[] = {
+ 0x6a, 0x29, 0x9b, 0x43, 0xe7, 0xd6, 0x71, 0xdf, 0xb2, 0xdb, 0x27, 0xb7,
+ 0x92, 0x02, 0xf3, 0x36,
+};
+static const unsigned char kat357_persstr[] = {
+ 0xf3, 0xf6, 0xe2, 0xff, 0xc0, 0x24, 0x06, 0x88, 0xfa, 0xa1, 0x2b, 0xfc,
+ 0x60, 0xcb, 0x28, 0x71, 0x9b, 0x8c, 0x4f, 0xfc, 0x42, 0x0f, 0xe9, 0x13,
+ 0x29, 0xcf, 0x0f, 0xa7, 0x92, 0xe3, 0x2e, 0xda,
+};
+static const unsigned char kat357_addin0[] = {
+ 0x13, 0x7e, 0x39, 0xe2, 0xd8, 0xb6, 0x5c, 0xac, 0x5a, 0x65, 0x4b, 0x00,
+ 0xa9, 0xfc, 0xe3, 0x82, 0x52, 0x16, 0x2e, 0xdb, 0x4e, 0xec, 0xc7, 0x92,
+ 0x07, 0x55, 0xbf, 0xfc, 0x96, 0xa5, 0xd6, 0x41,
+};
+static const unsigned char kat357_addin1[] = {
+ 0x98, 0xb6, 0xe4, 0x17, 0x61, 0x6f, 0x3c, 0xfe, 0x40, 0x90, 0x00, 0x87,
+ 0x28, 0x65, 0xf4, 0xd0, 0x8f, 0xb0, 0x32, 0x2b, 0xdd, 0xa4, 0x5e, 0xf1,
+ 0xcb, 0x70, 0x00, 0xfa, 0x45, 0x26, 0x6b, 0x20,
+};
+static const unsigned char kat357_retbits[] = {
+ 0x9a, 0x1b, 0xad, 0x8d, 0x87, 0x77, 0x7f, 0x45, 0xf9, 0xcb, 0x8b, 0xde,
+ 0x14, 0xc7, 0xea, 0xaa, 0xcd, 0x93, 0x74, 0xb9, 0x74, 0x26, 0x4e, 0x14,
+ 0xd1, 0xba, 0x31, 0xec, 0x59, 0x98, 0x3a, 0x35, 0x90, 0x74, 0x1d, 0xdf,
+ 0x6c, 0x85, 0xe9, 0x93, 0xff, 0xb7, 0xb8, 0x50, 0x35, 0x20, 0x2d, 0x24,
+ 0xf1, 0x06, 0x83, 0xa5, 0x3e, 0x87, 0xac, 0x92, 0x02, 0xf5, 0x5d, 0x8b,
+ 0x99, 0x18, 0x91, 0xc9,
+};
+static const struct drbg_kat_no_reseed kat357_t = {
+ 11, kat357_entropyin, kat357_nonce, kat357_persstr,
+ kat357_addin0, kat357_addin1, kat357_retbits
+};
+static const struct drbg_kat kat357 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat357_t
+};
+
+static const unsigned char kat358_entropyin[] = {
+ 0x44, 0x40, 0x2c, 0xfd, 0xba, 0xb2, 0x13, 0x4d, 0xfe, 0x82, 0x56, 0x06,
+ 0xd2, 0xa8, 0xe1, 0xa4, 0x92, 0xc7, 0x60, 0x84, 0xf1, 0x24, 0x54, 0x31,
+};
+static const unsigned char kat358_nonce[] = {
+ 0x31, 0x29, 0x85, 0x42, 0x7c, 0xf3, 0xc3, 0xe4, 0xe1, 0x49, 0x8f, 0x59,
+ 0x66, 0x30, 0xd0, 0xe6,
+};
+static const unsigned char kat358_persstr[] = {
+ 0xf3, 0x33, 0xe2, 0x9a, 0x3a, 0x03, 0xe7, 0x01, 0x1c, 0x05, 0x85, 0xbd,
+ 0x95, 0xbf, 0xd8, 0x19, 0xb8, 0x40, 0x32, 0xa8, 0xe0, 0x54, 0x9c, 0xdb,
+ 0xd0, 0xe1, 0x1a, 0xf1, 0x6b, 0xcb, 0x69, 0x3e,
+};
+static const unsigned char kat358_addin0[] = {
+ 0x9b, 0x3c, 0x03, 0x3e, 0x37, 0x43, 0x73, 0x2c, 0x9e, 0xce, 0x7d, 0xf9,
+ 0x41, 0xd1, 0xae, 0x4b, 0xce, 0x7e, 0x66, 0x31, 0x0c, 0x31, 0x75, 0x82,
+ 0x4e, 0x6e, 0xc6, 0xe8, 0x2c, 0x02, 0xc6, 0xa1,
+};
+static const unsigned char kat358_addin1[] = {
+ 0x9c, 0xd3, 0x9c, 0xdd, 0x2d, 0x43, 0x74, 0x0f, 0x30, 0x34, 0x73, 0x63,
+ 0x59, 0xe8, 0x9b, 0x7a, 0x78, 0xd2, 0x5b, 0xd1, 0x8a, 0xce, 0x9a, 0x14,
+ 0xdf, 0x1c, 0x36, 0xce, 0x7d, 0xde, 0x50, 0x5c,
+};
+static const unsigned char kat358_retbits[] = {
+ 0xe5, 0x84, 0xa0, 0x46, 0x49, 0x4b, 0x50, 0x76, 0x75, 0x76, 0x43, 0xba,
+ 0x84, 0xc7, 0xa7, 0xe0, 0x8c, 0x00, 0x45, 0xfc, 0xa4, 0x32, 0x5c, 0x3f,
+ 0x9c, 0x58, 0xf6, 0x66, 0x24, 0x52, 0x6c, 0xd4, 0x3a, 0x12, 0x8d, 0x10,
+ 0x54, 0xf8, 0x1b, 0x3c, 0x4b, 0x6f, 0x57, 0x35, 0xf3, 0xfb, 0x6f, 0x33,
+ 0xd2, 0x82, 0x50, 0x62, 0xec, 0x27, 0x05, 0x3f, 0x4d, 0x0d, 0xe2, 0x41,
+ 0xcc, 0xf7, 0x4a, 0xc8,
+};
+static const struct drbg_kat_no_reseed kat358_t = {
+ 12, kat358_entropyin, kat358_nonce, kat358_persstr,
+ kat358_addin0, kat358_addin1, kat358_retbits
+};
+static const struct drbg_kat kat358 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat358_t
+};
+
+static const unsigned char kat359_entropyin[] = {
+ 0x33, 0xba, 0xb5, 0xbb, 0x7c, 0x01, 0x37, 0xed, 0x68, 0xbb, 0xb9, 0x8b,
+ 0x2e, 0x16, 0x5d, 0xc9, 0x24, 0x77, 0xe2, 0x4c, 0xca, 0xd6, 0x0c, 0x3c,
+};
+static const unsigned char kat359_nonce[] = {
+ 0x72, 0x00, 0x6a, 0x08, 0x65, 0x3c, 0x6b, 0x83, 0x7f, 0xe2, 0x02, 0x43,
+ 0x8b, 0xaa, 0x43, 0x89,
+};
+static const unsigned char kat359_persstr[] = {
+ 0x09, 0x8f, 0x89, 0x66, 0x20, 0xff, 0x0e, 0x41, 0x43, 0x79, 0x7c, 0x1c,
+ 0x6b, 0xe8, 0x1c, 0x62, 0x5e, 0xd3, 0x7f, 0x79, 0xbc, 0x05, 0xa2, 0xd3,
+ 0x01, 0x84, 0x59, 0x09, 0x7f, 0xd1, 0x40, 0xb4,
+};
+static const unsigned char kat359_addin0[] = {
+ 0xc2, 0xa2, 0x89, 0xd2, 0x18, 0xdc, 0xd2, 0x80, 0xe6, 0xa8, 0x82, 0xe3,
+ 0x0e, 0x18, 0x2d, 0xa6, 0xa1, 0x3f, 0xd0, 0x96, 0x36, 0x85, 0xb3, 0xa9,
+ 0xaf, 0xca, 0xae, 0x8a, 0xe3, 0xac, 0xad, 0x69,
+};
+static const unsigned char kat359_addin1[] = {
+ 0x36, 0x1a, 0xcb, 0x27, 0xf5, 0x01, 0x40, 0x80, 0xa9, 0xe5, 0x21, 0xe0,
+ 0x42, 0x0d, 0xfd, 0x58, 0xe9, 0x20, 0x91, 0x11, 0xdf, 0x3b, 0x1b, 0xc7,
+ 0x7b, 0xef, 0x23, 0x55, 0x15, 0x81, 0x88, 0x72,
+};
+static const unsigned char kat359_retbits[] = {
+ 0xb0, 0x07, 0xae, 0xb8, 0x7b, 0x47, 0x85, 0x81, 0x5c, 0xf0, 0xb5, 0x46,
+ 0xff, 0x25, 0xdc, 0xf5, 0xbf, 0x96, 0xb3, 0xfa, 0xa8, 0x8d, 0xf8, 0xe4,
+ 0x5a, 0x12, 0xb7, 0x88, 0xc4, 0x74, 0x00, 0xce, 0xab, 0x79, 0xd9, 0x61,
+ 0xc9, 0xd6, 0x5b, 0xc4, 0x75, 0xb5, 0x6a, 0xbf, 0xf9, 0xba, 0x1d, 0x0e,
+ 0x3a, 0x5f, 0xf5, 0xfe, 0x56, 0xfb, 0xda, 0x06, 0xcd, 0xbd, 0x71, 0x02,
+ 0xa2, 0x72, 0x5a, 0xaa,
+};
+static const struct drbg_kat_no_reseed kat359_t = {
+ 13, kat359_entropyin, kat359_nonce, kat359_persstr,
+ kat359_addin0, kat359_addin1, kat359_retbits
+};
+static const struct drbg_kat kat359 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat359_t
+};
+
+static const unsigned char kat360_entropyin[] = {
+ 0xc6, 0xe8, 0x0e, 0x41, 0xa5, 0x24, 0x87, 0xd6, 0x26, 0xa4, 0x4e, 0xeb,
+ 0xc4, 0x35, 0xa1, 0xa4, 0x15, 0xda, 0x62, 0x53, 0x68, 0xff, 0xfa, 0xab,
+};
+static const unsigned char kat360_nonce[] = {
+ 0x8e, 0xb6, 0x09, 0x35, 0xa5, 0x9e, 0x8d, 0x55, 0xfe, 0x82, 0x66, 0xb4,
+ 0x34, 0x19, 0xd1, 0x05,
+};
+static const unsigned char kat360_persstr[] = {
+ 0xcc, 0x80, 0x42, 0xc0, 0xbe, 0x1c, 0x21, 0x27, 0x73, 0xc7, 0xd6, 0xe5,
+ 0xd8, 0x61, 0x82, 0xde, 0xe8, 0x1c, 0xde, 0x58, 0x70, 0x3e, 0x9b, 0x1d,
+ 0x6e, 0xd0, 0x8b, 0x66, 0x4e, 0x04, 0x77, 0x9c,
+};
+static const unsigned char kat360_addin0[] = {
+ 0x21, 0x12, 0xe9, 0xf2, 0x16, 0xee, 0xfd, 0xae, 0xe0, 0xc3, 0x7f, 0x6b,
+ 0x5c, 0xcd, 0xd0, 0x0c, 0xdc, 0x80, 0x91, 0xa2, 0x8d, 0x09, 0x4e, 0x56,
+ 0x7b, 0x69, 0x71, 0x09, 0xa7, 0x11, 0x0b, 0x7e,
+};
+static const unsigned char kat360_addin1[] = {
+ 0x4c, 0x32, 0x95, 0x4a, 0x5c, 0xa0, 0x45, 0x03, 0x78, 0xf5, 0x90, 0x7b,
+ 0x6e, 0xa0, 0xbe, 0x77, 0x0e, 0x40, 0x79, 0x70, 0x80, 0xa0, 0x57, 0xb1,
+ 0xa1, 0x4b, 0x45, 0x36, 0xe3, 0x89, 0xde, 0x98,
+};
+static const unsigned char kat360_retbits[] = {
+ 0xa5, 0x1d, 0x5f, 0x66, 0x1b, 0xb1, 0xd5, 0x0f, 0x2a, 0xae, 0xb0, 0xb8,
+ 0xb7, 0xaf, 0x40, 0x61, 0x42, 0xa1, 0x13, 0x57, 0x78, 0x46, 0x2b, 0x80,
+ 0x20, 0x16, 0xc5, 0xe3, 0x2b, 0xa5, 0x56, 0x3a, 0xdd, 0x27, 0x44, 0xd6,
+ 0x2c, 0x82, 0xc1, 0xdf, 0x91, 0xe6, 0xa9, 0x1d, 0xba, 0xa9, 0x53, 0x28,
+ 0x76, 0x3d, 0x23, 0x20, 0xac, 0x6c, 0x20, 0xb4, 0x24, 0xaa, 0x72, 0x9d,
+ 0x2b, 0x1c, 0x1a, 0x44,
+};
+static const struct drbg_kat_no_reseed kat360_t = {
+ 14, kat360_entropyin, kat360_nonce, kat360_persstr,
+ kat360_addin0, kat360_addin1, kat360_retbits
+};
+static const struct drbg_kat kat360 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat360_t
+};
+
+static const unsigned char kat361_entropyin[] = {
+ 0x4d, 0x5b, 0xe9, 0x19, 0x99, 0xc1, 0xdc, 0x6a, 0xe2, 0xe5, 0xf6, 0xde,
+ 0xb5, 0x63, 0xb1, 0x25, 0xbc, 0x84, 0x39, 0xe8, 0x5f, 0x25, 0x76, 0xfc,
+};
+static const unsigned char kat361_nonce[] = {
+ 0x11, 0xe1, 0xc2, 0xd4, 0xd4, 0xf7, 0x3b, 0x9c, 0x45, 0x7f, 0xca, 0xa0,
+ 0x6f, 0x4a, 0xf2, 0x2e,
+};
+static const unsigned char kat361_persstr[] = {0};
+static const unsigned char kat361_addin0[] = {0};
+static const unsigned char kat361_addin1[] = {0};
+static const unsigned char kat361_retbits[] = {
+ 0x53, 0xc2, 0xc0, 0x23, 0x7e, 0xdf, 0x94, 0x25, 0x84, 0x2a, 0xb9, 0x1c,
+ 0x63, 0x72, 0x36, 0x16, 0xe9, 0x8b, 0xb6, 0xc1, 0x2d, 0x16, 0xbf, 0x80,
+ 0x87, 0x77, 0x2d, 0x0a, 0x08, 0x0d, 0x28, 0x9f, 0x8b, 0x4f, 0x35, 0xdf,
+ 0xda, 0xef, 0x5b, 0x11, 0xcd, 0x58, 0x88, 0x14, 0xc6, 0xbc, 0x01, 0xdc,
+ 0x7e, 0x23, 0xb9, 0xbd, 0xd3, 0x9c, 0x0a, 0xee, 0x74, 0x07, 0xf7, 0x10,
+ 0x54, 0xa7, 0xc9, 0xaa,
+};
+static const struct drbg_kat_no_reseed kat361_t = {
+ 0, kat361_entropyin, kat361_nonce, kat361_persstr,
+ kat361_addin0, kat361_addin1, kat361_retbits
+};
+static const struct drbg_kat kat361 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat361_t
+};
+
+static const unsigned char kat362_entropyin[] = {
+ 0x24, 0xd8, 0xc6, 0x0f, 0x62, 0x90, 0x8b, 0x44, 0x74, 0xb6, 0xa0, 0x1e,
+ 0xc8, 0x8c, 0x99, 0x5b, 0x35, 0x7f, 0x82, 0xe2, 0x0d, 0x21, 0xc8, 0xf5,
+};
+static const unsigned char kat362_nonce[] = {
+ 0x45, 0xcb, 0x53, 0x4e, 0x0e, 0xa5, 0xc1, 0xb1, 0xa7, 0x5e, 0x6a, 0x66,
+ 0xd9, 0x90, 0xc7, 0x15,
+};
+static const unsigned char kat362_persstr[] = {0};
+static const unsigned char kat362_addin0[] = {0};
+static const unsigned char kat362_addin1[] = {0};
+static const unsigned char kat362_retbits[] = {
+ 0x86, 0xa1, 0xde, 0xb9, 0xa3, 0x28, 0x63, 0xf7, 0x13, 0xc3, 0xe6, 0xae,
+ 0xa8, 0x15, 0x04, 0xc7, 0xec, 0x76, 0x6d, 0x0b, 0x7e, 0x5a, 0xa8, 0x00,
+ 0xef, 0x0b, 0x44, 0x9c, 0xc3, 0x34, 0x08, 0xc7, 0xf8, 0x7e, 0x71, 0x2c,
+ 0xfd, 0x58, 0x84, 0x2c, 0x90, 0x5f, 0x8a, 0x26, 0x2a, 0x4e, 0x2a, 0xf7,
+ 0x45, 0xfa, 0x58, 0x4b, 0x37, 0x0b, 0x17, 0xe2, 0xaf, 0x89, 0xfc, 0xb7,
+ 0x3d, 0x39, 0x9c, 0xf3,
+};
+static const struct drbg_kat_no_reseed kat362_t = {
+ 1, kat362_entropyin, kat362_nonce, kat362_persstr,
+ kat362_addin0, kat362_addin1, kat362_retbits
+};
+static const struct drbg_kat kat362 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat362_t
+};
+
+static const unsigned char kat363_entropyin[] = {
+ 0x33, 0x54, 0xa9, 0x53, 0xf8, 0xe6, 0xcc, 0x3b, 0x64, 0xa8, 0x9f, 0xa7,
+ 0x4b, 0xcb, 0x45, 0x97, 0x1f, 0x14, 0xc4, 0xd1, 0xf7, 0x9c, 0xf9, 0x4a,
+};
+static const unsigned char kat363_nonce[] = {
+ 0xd2, 0xa8, 0x30, 0x7d, 0x96, 0x59, 0xfd, 0x46, 0xa0, 0x73, 0xeb, 0x33,
+ 0xf3, 0x48, 0x1a, 0xb7,
+};
+static const unsigned char kat363_persstr[] = {0};
+static const unsigned char kat363_addin0[] = {0};
+static const unsigned char kat363_addin1[] = {0};
+static const unsigned char kat363_retbits[] = {
+ 0xf6, 0x42, 0x33, 0x32, 0xc2, 0xb0, 0xd7, 0xb6, 0xed, 0xbd, 0x09, 0xe5,
+ 0x90, 0x20, 0x7b, 0xfb, 0xec, 0xa6, 0x2b, 0x4e, 0x8d, 0x80, 0xe8, 0x19,
+ 0xd6, 0x77, 0x34, 0x11, 0xb3, 0x61, 0xac, 0x63, 0xc5, 0x8d, 0x58, 0x7d,
+ 0x6e, 0xbb, 0xae, 0x5e, 0x0a, 0x21, 0x1d, 0x1f, 0xf8, 0xde, 0x7f, 0x90,
+ 0x1d, 0xf1, 0x53, 0x37, 0x38, 0x25, 0x6e, 0x44, 0xed, 0xaa, 0x2b, 0xb7,
+ 0xc1, 0xa1, 0x4e, 0x0e,
+};
+static const struct drbg_kat_no_reseed kat363_t = {
+ 2, kat363_entropyin, kat363_nonce, kat363_persstr,
+ kat363_addin0, kat363_addin1, kat363_retbits
+};
+static const struct drbg_kat kat363 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat363_t
+};
+
+static const unsigned char kat364_entropyin[] = {
+ 0x93, 0x18, 0x37, 0xf9, 0x6b, 0x3b, 0xe2, 0x58, 0x7c, 0xe6, 0x37, 0xe3,
+ 0x32, 0xa7, 0xc4, 0x44, 0x17, 0x37, 0xf9, 0xbf, 0x9b, 0x4a, 0x5a, 0x33,
+};
+static const unsigned char kat364_nonce[] = {
+ 0xdb, 0xab, 0x3e, 0x4e, 0xec, 0xb4, 0x53, 0xa1, 0x6c, 0xea, 0x08, 0xd6,
+ 0xfa, 0xfc, 0x2f, 0x36,
+};
+static const unsigned char kat364_persstr[] = {0};
+static const unsigned char kat364_addin0[] = {0};
+static const unsigned char kat364_addin1[] = {0};
+static const unsigned char kat364_retbits[] = {
+ 0xa8, 0x46, 0x4a, 0x65, 0xfd, 0x94, 0x2c, 0x2b, 0xee, 0xa2, 0x02, 0x95,
+ 0xcd, 0x25, 0x56, 0x01, 0x21, 0x08, 0x0f, 0xb6, 0x9c, 0xdc, 0xb4, 0x55,
+ 0x9a, 0xde, 0xd0, 0xc6, 0x70, 0xc8, 0x28, 0x38, 0xf6, 0xba, 0x46, 0xb0,
+ 0x0f, 0x5d, 0x59, 0x35, 0xcc, 0x77, 0xa1, 0x4a, 0x8c, 0x4e, 0xda, 0x02,
+ 0xae, 0x19, 0x8e, 0xa8, 0x7c, 0x9c, 0x98, 0x20, 0x4d, 0x38, 0xa6, 0x6a,
+ 0x8c, 0x68, 0x6f, 0x67,
+};
+static const struct drbg_kat_no_reseed kat364_t = {
+ 3, kat364_entropyin, kat364_nonce, kat364_persstr,
+ kat364_addin0, kat364_addin1, kat364_retbits
+};
+static const struct drbg_kat kat364 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat364_t
+};
+
+static const unsigned char kat365_entropyin[] = {
+ 0x55, 0x01, 0x82, 0x72, 0x5f, 0x54, 0x5e, 0x7c, 0xd4, 0xfd, 0x7b, 0x97,
+ 0x7f, 0x58, 0x74, 0x51, 0x11, 0x7c, 0xc7, 0x31, 0x92, 0x5b, 0xa2, 0x7c,
+};
+static const unsigned char kat365_nonce[] = {
+ 0xde, 0x0f, 0xc3, 0xbf, 0x40, 0xb6, 0x1e, 0xdc, 0xc3, 0x1e, 0x0c, 0xe6,
+ 0xf2, 0x01, 0x1c, 0xda,
+};
+static const unsigned char kat365_persstr[] = {0};
+static const unsigned char kat365_addin0[] = {0};
+static const unsigned char kat365_addin1[] = {0};
+static const unsigned char kat365_retbits[] = {
+ 0xea, 0x0d, 0xfb, 0x57, 0xcf, 0x50, 0x19, 0xc7, 0x3f, 0x58, 0x61, 0x8f,
+ 0xc0, 0x00, 0x31, 0x40, 0xa3, 0x6e, 0xd6, 0x87, 0xac, 0x14, 0x51, 0xa5,
+ 0xbd, 0xe0, 0x90, 0x50, 0xaa, 0x1b, 0x2f, 0x6f, 0xd1, 0xcd, 0x33, 0x7d,
+ 0xb4, 0x38, 0xca, 0x79, 0x59, 0x84, 0xca, 0x6a, 0x2b, 0x93, 0x56, 0x17,
+ 0xd9, 0x84, 0x66, 0x99, 0xd9, 0x9b, 0x69, 0x78, 0xfe, 0x87, 0x8c, 0x12,
+ 0xc3, 0xc8, 0xf9, 0xc9,
+};
+static const struct drbg_kat_no_reseed kat365_t = {
+ 4, kat365_entropyin, kat365_nonce, kat365_persstr,
+ kat365_addin0, kat365_addin1, kat365_retbits
+};
+static const struct drbg_kat kat365 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat365_t
+};
+
+static const unsigned char kat366_entropyin[] = {
+ 0x39, 0xc7, 0xcd, 0x1d, 0x98, 0x62, 0x13, 0x3a, 0x1a, 0xd4, 0xd4, 0x55,
+ 0x92, 0x11, 0x6c, 0x0e, 0x09, 0x89, 0x6f, 0xa6, 0x68, 0xad, 0xc7, 0x8a,
+};
+static const unsigned char kat366_nonce[] = {
+ 0xd0, 0x87, 0x82, 0x92, 0x52, 0xbf, 0x38, 0x39, 0x3c, 0xd0, 0x0f, 0x87,
+ 0xf7, 0x4d, 0xf4, 0xca,
+};
+static const unsigned char kat366_persstr[] = {0};
+static const unsigned char kat366_addin0[] = {0};
+static const unsigned char kat366_addin1[] = {0};
+static const unsigned char kat366_retbits[] = {
+ 0xf4, 0x90, 0x21, 0xcd, 0x85, 0x70, 0x71, 0x85, 0x83, 0xed, 0x21, 0xec,
+ 0x55, 0x46, 0x8b, 0x4c, 0x45, 0xf8, 0x7a, 0x7b, 0x8f, 0xf6, 0xdd, 0x51,
+ 0x72, 0xd9, 0x37, 0xd6, 0xe9, 0xd9, 0xb4, 0x08, 0x6a, 0x75, 0x9a, 0xad,
+ 0x92, 0x7e, 0xf9, 0xe8, 0xb7, 0xc2, 0x65, 0x9b, 0x0f, 0x06, 0xc2, 0xa4,
+ 0xf8, 0xe3, 0x5e, 0xd8, 0xb6, 0x71, 0x47, 0x0d, 0x9d, 0xc6, 0x1b, 0x03,
+ 0x1d, 0x7d, 0x17, 0x82,
+};
+static const struct drbg_kat_no_reseed kat366_t = {
+ 5, kat366_entropyin, kat366_nonce, kat366_persstr,
+ kat366_addin0, kat366_addin1, kat366_retbits
+};
+static const struct drbg_kat kat366 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat366_t
+};
+
+static const unsigned char kat367_entropyin[] = {
+ 0x88, 0xfa, 0x53, 0x8a, 0xeb, 0xf8, 0x34, 0x90, 0x74, 0xee, 0xb4, 0x5d,
+ 0x95, 0x67, 0xa9, 0x00, 0xc1, 0xc9, 0x76, 0x43, 0xb7, 0x9a, 0x2c, 0x16,
+};
+static const unsigned char kat367_nonce[] = {
+ 0xbb, 0x41, 0x66, 0x91, 0xb8, 0x63, 0x62, 0xfc, 0x96, 0x77, 0xe3, 0xfe,
+ 0x50, 0xd1, 0x57, 0xa9,
+};
+static const unsigned char kat367_persstr[] = {0};
+static const unsigned char kat367_addin0[] = {0};
+static const unsigned char kat367_addin1[] = {0};
+static const unsigned char kat367_retbits[] = {
+ 0x9e, 0xf3, 0x1c, 0xf9, 0x31, 0xf2, 0x1d, 0x89, 0x86, 0x8e, 0xaa, 0x24,
+ 0x5f, 0xf0, 0x48, 0x14, 0x60, 0x59, 0x68, 0x4e, 0x2f, 0xa5, 0x61, 0x9a,
+ 0x44, 0x0f, 0x1d, 0x8a, 0x19, 0x55, 0x00, 0x35, 0x5f, 0xe3, 0x94, 0xaf,
+ 0xe3, 0xd3, 0xf9, 0xec, 0x45, 0xd2, 0x06, 0xb3, 0x7f, 0xd8, 0xfb, 0x47,
+ 0x5b, 0xdb, 0x1a, 0xc8, 0x80, 0x0c, 0xe5, 0x4f, 0x04, 0xc9, 0x94, 0x03,
+ 0xeb, 0x76, 0xed, 0xee,
+};
+static const struct drbg_kat_no_reseed kat367_t = {
+ 6, kat367_entropyin, kat367_nonce, kat367_persstr,
+ kat367_addin0, kat367_addin1, kat367_retbits
+};
+static const struct drbg_kat kat367 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat367_t
+};
+
+static const unsigned char kat368_entropyin[] = {
+ 0x81, 0xa8, 0xb2, 0x19, 0x2d, 0x59, 0xa2, 0x5d, 0x54, 0x80, 0x46, 0x5e,
+ 0x50, 0x8c, 0x11, 0x93, 0x1a, 0x1a, 0xe5, 0xa4, 0x27, 0xf6, 0xd1, 0x17,
+};
+static const unsigned char kat368_nonce[] = {
+ 0x1b, 0x61, 0x0d, 0xf5, 0xaf, 0x73, 0xb7, 0x0e, 0x85, 0xd9, 0x7c, 0x15,
+ 0x9a, 0x13, 0xbc, 0x71,
+};
+static const unsigned char kat368_persstr[] = {0};
+static const unsigned char kat368_addin0[] = {0};
+static const unsigned char kat368_addin1[] = {0};
+static const unsigned char kat368_retbits[] = {
+ 0xcb, 0x0b, 0xab, 0x82, 0xb9, 0x1a, 0x72, 0x7c, 0xa3, 0xe1, 0x04, 0xb9,
+ 0xea, 0xca, 0xe0, 0x86, 0x05, 0xe0, 0x6d, 0x18, 0xee, 0xa0, 0xee, 0x2c,
+ 0x71, 0xeb, 0xab, 0xde, 0x5c, 0x98, 0xcc, 0xca, 0x7e, 0xdb, 0x47, 0x93,
+ 0x83, 0x6a, 0x65, 0xf2, 0x83, 0x8b, 0x82, 0x83, 0xcf, 0x4a, 0xdf, 0x49,
+ 0xfa, 0x1f, 0x38, 0x36, 0x87, 0x76, 0xe5, 0xba, 0x4e, 0xf7, 0xc5, 0x14,
+ 0x37, 0x88, 0x8f, 0xdf,
+};
+static const struct drbg_kat_no_reseed kat368_t = {
+ 7, kat368_entropyin, kat368_nonce, kat368_persstr,
+ kat368_addin0, kat368_addin1, kat368_retbits
+};
+static const struct drbg_kat kat368 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat368_t
+};
+
+static const unsigned char kat369_entropyin[] = {
+ 0xa4, 0x95, 0x85, 0xca, 0x40, 0xea, 0x98, 0x00, 0x20, 0x8a, 0xbe, 0xf7,
+ 0x03, 0xa4, 0xc2, 0x0b, 0xd3, 0xc4, 0xca, 0x59, 0x65, 0x25, 0x68, 0x2a,
+};
+static const unsigned char kat369_nonce[] = {
+ 0x11, 0xf7, 0xe4, 0x63, 0x0d, 0xc9, 0x6e, 0x2e, 0x4a, 0x35, 0x6f, 0x8e,
+ 0xff, 0xe8, 0xee, 0xf6,
+};
+static const unsigned char kat369_persstr[] = {0};
+static const unsigned char kat369_addin0[] = {0};
+static const unsigned char kat369_addin1[] = {0};
+static const unsigned char kat369_retbits[] = {
+ 0x63, 0x3a, 0x67, 0x28, 0xbf, 0x62, 0x16, 0xea, 0x30, 0x3f, 0x3b, 0x27,
+ 0xe4, 0xfa, 0xa5, 0x2d, 0x2d, 0xa4, 0x76, 0x8e, 0x6e, 0x7c, 0xed, 0x7d,
+ 0xcd, 0x33, 0xd4, 0xdf, 0x25, 0xad, 0x03, 0xe9, 0x1f, 0x5a, 0xe9, 0xe9,
+ 0xe1, 0xf1, 0x9c, 0x4d, 0xad, 0x74, 0xe3, 0xa1, 0xed, 0xe1, 0x52, 0x84,
+ 0xaf, 0xcc, 0xf5, 0x14, 0x8f, 0x18, 0x8b, 0x95, 0xa0, 0x56, 0x76, 0x70,
+ 0xe2, 0x06, 0xec, 0xa8,
+};
+static const struct drbg_kat_no_reseed kat369_t = {
+ 8, kat369_entropyin, kat369_nonce, kat369_persstr,
+ kat369_addin0, kat369_addin1, kat369_retbits
+};
+static const struct drbg_kat kat369 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat369_t
+};
+
+static const unsigned char kat370_entropyin[] = {
+ 0xbd, 0xe5, 0x3c, 0xa3, 0xe0, 0xb0, 0x11, 0x6b, 0x61, 0x19, 0x15, 0xa3,
+ 0xbe, 0xa8, 0x01, 0x41, 0x80, 0x14, 0x73, 0x40, 0x88, 0x63, 0x9c, 0xdd,
+};
+static const unsigned char kat370_nonce[] = {
+ 0x71, 0xb4, 0x99, 0x3c, 0xaf, 0xd8, 0x68, 0xac, 0x20, 0x9d, 0xb7, 0x22,
+ 0xcb, 0x75, 0x7f, 0xbc,
+};
+static const unsigned char kat370_persstr[] = {0};
+static const unsigned char kat370_addin0[] = {0};
+static const unsigned char kat370_addin1[] = {0};
+static const unsigned char kat370_retbits[] = {
+ 0x6c, 0xf1, 0xdc, 0x52, 0x14, 0xaf, 0x97, 0xc1, 0xc6, 0xd4, 0x3c, 0x31,
+ 0xac, 0xe4, 0x0c, 0xed, 0xbf, 0x3c, 0x32, 0xbc, 0x7f, 0x8d, 0x69, 0x28,
+ 0xbc, 0xb6, 0x13, 0xb6, 0xa9, 0xb3, 0x70, 0x11, 0xd4, 0x0a, 0x16, 0xe8,
+ 0x73, 0x9b, 0x2f, 0xba, 0xfd, 0xfe, 0x77, 0x47, 0xc8, 0xd5, 0x16, 0x3d,
+ 0xc4, 0x22, 0x3c, 0xe3, 0x30, 0x35, 0x32, 0xc7, 0x19, 0xab, 0xb1, 0x69,
+ 0xe6, 0x9d, 0x3d, 0xb9,
+};
+static const struct drbg_kat_no_reseed kat370_t = {
+ 9, kat370_entropyin, kat370_nonce, kat370_persstr,
+ kat370_addin0, kat370_addin1, kat370_retbits
+};
+static const struct drbg_kat kat370 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat370_t
+};
+
+static const unsigned char kat371_entropyin[] = {
+ 0x12, 0x40, 0xc0, 0x7f, 0x0c, 0x42, 0xda, 0x18, 0x3e, 0xbf, 0x8f, 0x44,
+ 0x13, 0xab, 0x31, 0x6a, 0x88, 0x24, 0x61, 0x66, 0xaa, 0x7b, 0xb7, 0x59,
+};
+static const unsigned char kat371_nonce[] = {
+ 0x6e, 0x52, 0x9d, 0x4e, 0x92, 0x47, 0x75, 0x79, 0xd0, 0x7f, 0xb9, 0xd2,
+ 0xde, 0x05, 0x4d, 0x8b,
+};
+static const unsigned char kat371_persstr[] = {0};
+static const unsigned char kat371_addin0[] = {0};
+static const unsigned char kat371_addin1[] = {0};
+static const unsigned char kat371_retbits[] = {
+ 0xdc, 0xdf, 0xa1, 0xa5, 0x73, 0x3e, 0x5b, 0xec, 0x22, 0xa2, 0x4c, 0x01,
+ 0xb6, 0xd4, 0x6a, 0xe1, 0x02, 0x09, 0x35, 0x12, 0x40, 0xdb, 0xb4, 0x26,
+ 0x86, 0xbc, 0xa8, 0x11, 0x7d, 0xaa, 0xa2, 0x28, 0x73, 0x26, 0x94, 0x20,
+ 0x21, 0xf1, 0x98, 0xec, 0x6b, 0xd2, 0xfd, 0x63, 0x4f, 0xe8, 0xcc, 0xd2,
+ 0x4a, 0x56, 0x2c, 0x48, 0x29, 0x76, 0x30, 0xf9, 0xf7, 0x18, 0x62, 0x3b,
+ 0xca, 0x0a, 0x64, 0xd7,
+};
+static const struct drbg_kat_no_reseed kat371_t = {
+ 10, kat371_entropyin, kat371_nonce, kat371_persstr,
+ kat371_addin0, kat371_addin1, kat371_retbits
+};
+static const struct drbg_kat kat371 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat371_t
+};
+
+static const unsigned char kat372_entropyin[] = {
+ 0x72, 0xed, 0x4b, 0x06, 0xe7, 0x5b, 0x59, 0xc6, 0xfb, 0xd1, 0x7b, 0xc7,
+ 0x26, 0xc2, 0xe9, 0x2a, 0x22, 0x01, 0x62, 0xbc, 0x6c, 0x1f, 0xfe, 0xb5,
+};
+static const unsigned char kat372_nonce[] = {
+ 0x46, 0x6e, 0xeb, 0x26, 0x5f, 0xa1, 0x47, 0xea, 0x1f, 0x77, 0x3f, 0x98,
+ 0x08, 0x7f, 0xbb, 0x83,
+};
+static const unsigned char kat372_persstr[] = {0};
+static const unsigned char kat372_addin0[] = {0};
+static const unsigned char kat372_addin1[] = {0};
+static const unsigned char kat372_retbits[] = {
+ 0x46, 0xc3, 0x56, 0x17, 0x4b, 0x28, 0xae, 0x3a, 0x90, 0x30, 0x71, 0x64,
+ 0x3a, 0xbc, 0xed, 0x78, 0x4b, 0x31, 0x68, 0xbb, 0x20, 0xa7, 0x8a, 0x08,
+ 0x2a, 0xbc, 0x3c, 0x8d, 0x76, 0xab, 0x53, 0x67, 0x3c, 0xec, 0x21, 0x81,
+ 0xd4, 0x0a, 0x42, 0x94, 0xcf, 0xfc, 0xc8, 0xa2, 0xfa, 0x43, 0xb8, 0x9b,
+ 0xcb, 0x96, 0x2f, 0x5e, 0xf3, 0x30, 0x0e, 0x7d, 0xf5, 0x00, 0xfb, 0x0c,
+ 0x96, 0xbe, 0x85, 0x8a,
+};
+static const struct drbg_kat_no_reseed kat372_t = {
+ 11, kat372_entropyin, kat372_nonce, kat372_persstr,
+ kat372_addin0, kat372_addin1, kat372_retbits
+};
+static const struct drbg_kat kat372 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat372_t
+};
+
+static const unsigned char kat373_entropyin[] = {
+ 0xc4, 0x47, 0xb5, 0xee, 0xc4, 0x1e, 0x14, 0xa9, 0xce, 0x9b, 0xbd, 0x85,
+ 0x93, 0xe8, 0xa7, 0xc0, 0xf5, 0x55, 0x9f, 0x4b, 0x0e, 0x11, 0x76, 0x88,
+};
+static const unsigned char kat373_nonce[] = {
+ 0x46, 0x55, 0xd3, 0xc7, 0x8c, 0xaa, 0x1c, 0x1c, 0xfe, 0x6d, 0x6e, 0x11,
+ 0x66, 0x46, 0x8b, 0x28,
+};
+static const unsigned char kat373_persstr[] = {0};
+static const unsigned char kat373_addin0[] = {0};
+static const unsigned char kat373_addin1[] = {0};
+static const unsigned char kat373_retbits[] = {
+ 0x68, 0xd4, 0x1f, 0xe2, 0x8b, 0xdb, 0x7d, 0xe4, 0xa7, 0x61, 0xcb, 0x60,
+ 0x04, 0xec, 0xed, 0xfa, 0x31, 0x09, 0x46, 0x07, 0x50, 0x92, 0x11, 0x1e,
+ 0x80, 0x6b, 0xee, 0xd6, 0x34, 0xff, 0x54, 0x0c, 0x38, 0x98, 0x7f, 0x16,
+ 0xa8, 0x9b, 0xe5, 0x2d, 0x35, 0xe3, 0x07, 0x59, 0x03, 0x0c, 0xbc, 0xa2,
+ 0x40, 0xbb, 0xe9, 0xa5, 0xdb, 0xbf, 0xf1, 0x9d, 0x15, 0x0b, 0xe3, 0xa2,
+ 0x29, 0x6b, 0x8c, 0xeb,
+};
+static const struct drbg_kat_no_reseed kat373_t = {
+ 12, kat373_entropyin, kat373_nonce, kat373_persstr,
+ kat373_addin0, kat373_addin1, kat373_retbits
+};
+static const struct drbg_kat kat373 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat373_t
+};
+
+static const unsigned char kat374_entropyin[] = {
+ 0x24, 0x04, 0xf9, 0x87, 0x09, 0x45, 0xbd, 0x40, 0x4f, 0xe1, 0x84, 0xb1,
+ 0x19, 0xa8, 0xa3, 0x03, 0x71, 0xae, 0xfa, 0x80, 0x15, 0xd4, 0x55, 0xcc,
+};
+static const unsigned char kat374_nonce[] = {
+ 0xe5, 0xfd, 0x16, 0x64, 0x17, 0x28, 0xb4, 0xd4, 0x6e, 0x3f, 0x0a, 0x43,
+ 0xae, 0x34, 0x84, 0x40,
+};
+static const unsigned char kat374_persstr[] = {0};
+static const unsigned char kat374_addin0[] = {0};
+static const unsigned char kat374_addin1[] = {0};
+static const unsigned char kat374_retbits[] = {
+ 0xea, 0x4b, 0xc0, 0xde, 0xc0, 0xf1, 0xa6, 0x1c, 0xf2, 0xac, 0x89, 0x0d,
+ 0x0c, 0x7d, 0x8d, 0xb4, 0x29, 0x32, 0x91, 0x48, 0x6d, 0x65, 0xf3, 0xed,
+ 0x8b, 0x5f, 0x75, 0x8e, 0xee, 0xe9, 0xd5, 0xde, 0xed, 0x2a, 0x1d, 0x05,
+ 0x06, 0xfe, 0xbe, 0x20, 0xbf, 0xd1, 0x8b, 0x68, 0x0c, 0x5a, 0x8d, 0x77,
+ 0x7c, 0x6b, 0x3b, 0xbb, 0x8c, 0xa1, 0xbf, 0xfa, 0x0f, 0x10, 0x5e, 0xe7,
+ 0xc1, 0x50, 0x73, 0x59,
+};
+static const struct drbg_kat_no_reseed kat374_t = {
+ 13, kat374_entropyin, kat374_nonce, kat374_persstr,
+ kat374_addin0, kat374_addin1, kat374_retbits
+};
+static const struct drbg_kat kat374 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat374_t
+};
+
+static const unsigned char kat375_entropyin[] = {
+ 0x45, 0x70, 0xff, 0x9a, 0xb9, 0x2e, 0x5b, 0x69, 0x4b, 0x8a, 0xce, 0xb3,
+ 0xd7, 0x65, 0xf4, 0x87, 0x2f, 0x2e, 0xa6, 0xad, 0x77, 0x07, 0xc5, 0x10,
+};
+static const unsigned char kat375_nonce[] = {
+ 0xa3, 0x46, 0x1b, 0xc1, 0x7d, 0x5d, 0xb6, 0x92, 0xf8, 0xcd, 0xd8, 0xcf,
+ 0x79, 0x18, 0x62, 0xb5,
+};
+static const unsigned char kat375_persstr[] = {0};
+static const unsigned char kat375_addin0[] = {0};
+static const unsigned char kat375_addin1[] = {0};
+static const unsigned char kat375_retbits[] = {
+ 0xb7, 0x76, 0x1d, 0x93, 0x00, 0xa2, 0x21, 0x8b, 0x28, 0x3b, 0x55, 0xce,
+ 0x29, 0xb4, 0x3c, 0x4e, 0x7a, 0x63, 0xfc, 0xc9, 0xb1, 0xd0, 0xc1, 0x68,
+ 0x6e, 0xfd, 0x8d, 0x5f, 0x0e, 0x40, 0x31, 0xc2, 0xdc, 0x74, 0x5f, 0x58,
+ 0xa5, 0x0b, 0x35, 0xbe, 0x81, 0xfc, 0xd5, 0xe9, 0x7d, 0x70, 0xf8, 0x96,
+ 0xb1, 0x7d, 0x3a, 0x64, 0x2a, 0x30, 0xba, 0x56, 0x72, 0x5d, 0x0a, 0xde,
+ 0xf1, 0x42, 0xef, 0xd6,
+};
+static const struct drbg_kat_no_reseed kat375_t = {
+ 14, kat375_entropyin, kat375_nonce, kat375_persstr,
+ kat375_addin0, kat375_addin1, kat375_retbits
+};
+static const struct drbg_kat kat375 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat375_t
+};
+
+static const unsigned char kat376_entropyin[] = {
+ 0x52, 0x69, 0x4c, 0x7c, 0xf7, 0x0f, 0xd3, 0xd2, 0x07, 0xd2, 0xe7, 0xef,
+ 0x19, 0x2a, 0x04, 0x9d, 0xf3, 0x20, 0xe7, 0xf9, 0x19, 0x1b, 0x93, 0xc4,
+};
+static const unsigned char kat376_nonce[] = {
+ 0xff, 0xc0, 0xc8, 0xe1, 0x68, 0x41, 0xec, 0x38, 0x4c, 0x08, 0xb3, 0xcc,
+ 0xd8, 0x16, 0x03, 0x31,
+};
+static const unsigned char kat376_persstr[] = {0};
+static const unsigned char kat376_addin0[] = {
+ 0x28, 0x7b, 0xba, 0x8b, 0xc6, 0xdf, 0xbd, 0x83, 0x6a, 0x21, 0xcb, 0x3d,
+ 0xda, 0x67, 0x8d, 0x3d, 0x7b, 0xa4, 0x1c, 0x5d, 0xfe, 0x08, 0xbd, 0xb3,
+ 0x56, 0xd9, 0x30, 0x72, 0x52, 0x82, 0x85, 0xe4,
+};
+static const unsigned char kat376_addin1[] = {
+ 0x1e, 0xea, 0x34, 0x1f, 0xf8, 0x1f, 0x90, 0x58, 0x3a, 0xff, 0xaa, 0x27,
+ 0x65, 0x9e, 0x2b, 0x06, 0xe3, 0xe0, 0x62, 0x06, 0x8c, 0xa4, 0xf1, 0xb4,
+ 0x08, 0x59, 0xa9, 0x22, 0x99, 0xa6, 0xb4, 0x90,
+};
+static const unsigned char kat376_retbits[] = {
+ 0xb3, 0x17, 0x56, 0x92, 0xec, 0xa9, 0xd7, 0xfe, 0x5e, 0xba, 0xb6, 0xdc,
+ 0x5d, 0x12, 0xc3, 0xd1, 0x10, 0x5e, 0x46, 0x73, 0x7c, 0xe6, 0xfe, 0xc8,
+ 0x9b, 0x26, 0x63, 0xef, 0xfd, 0xb4, 0x1a, 0x8f, 0x85, 0xf9, 0x83, 0x15,
+ 0x1a, 0xe4, 0xdb, 0xf7, 0x00, 0x20, 0x85, 0x3f, 0x48, 0x4f, 0xd1, 0xe9,
+ 0x6d, 0x74, 0x3d, 0x5f, 0x6c, 0xc4, 0x15, 0x68, 0x58, 0x90, 0xa0, 0xe3,
+ 0xf2, 0x5e, 0x3b, 0x69,
+};
+static const struct drbg_kat_no_reseed kat376_t = {
+ 0, kat376_entropyin, kat376_nonce, kat376_persstr,
+ kat376_addin0, kat376_addin1, kat376_retbits
+};
+static const struct drbg_kat kat376 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat376_t
+};
+
+static const unsigned char kat377_entropyin[] = {
+ 0x0f, 0xf3, 0xd4, 0x27, 0x5e, 0xde, 0x36, 0xd4, 0xe2, 0x9c, 0x42, 0xb1,
+ 0x7e, 0xd1, 0xdf, 0x14, 0xde, 0x2e, 0x77, 0x94, 0x9a, 0xf5, 0x5e, 0xb7,
+};
+static const unsigned char kat377_nonce[] = {
+ 0xac, 0x33, 0xac, 0x97, 0x0a, 0x24, 0x75, 0xb9, 0x1f, 0x0a, 0x3b, 0xde,
+ 0xf1, 0x78, 0xbf, 0xd4,
+};
+static const unsigned char kat377_persstr[] = {0};
+static const unsigned char kat377_addin0[] = {
+ 0xd3, 0x9f, 0xde, 0x81, 0x4e, 0xa3, 0xa6, 0x7e, 0x3b, 0x33, 0xe3, 0x25,
+ 0xab, 0x5e, 0x05, 0x53, 0xaa, 0x9a, 0x0f, 0x30, 0x14, 0xa7, 0x4f, 0xed,
+ 0x1b, 0x03, 0x02, 0x19, 0x54, 0x2f, 0xb0, 0x45,
+};
+static const unsigned char kat377_addin1[] = {
+ 0x1a, 0x1f, 0xc9, 0x24, 0x2e, 0x3e, 0xc8, 0x71, 0x25, 0x67, 0xe7, 0x80,
+ 0xdf, 0x05, 0x83, 0x06, 0x00, 0x1e, 0x6e, 0x10, 0xd5, 0xb6, 0xe4, 0xc2,
+ 0x1c, 0x6c, 0x17, 0x93, 0x14, 0x90, 0x34, 0xd3,
+};
+static const unsigned char kat377_retbits[] = {
+ 0xd2, 0x12, 0x92, 0x6f, 0x27, 0x63, 0x52, 0x74, 0x66, 0xff, 0x75, 0x11,
+ 0xdc, 0x56, 0xcf, 0x11, 0x78, 0xeb, 0x41, 0x50, 0xc5, 0xf6, 0x47, 0xbf,
+ 0x2c, 0x9c, 0x15, 0x05, 0xc0, 0x18, 0xf2, 0x71, 0xaf, 0x3a, 0x1b, 0xae,
+ 0x45, 0x61, 0x9f, 0x13, 0x07, 0xc1, 0x81, 0xbe, 0xdf, 0xc3, 0x62, 0xaf,
+ 0x34, 0x61, 0xc6, 0x03, 0x67, 0xaf, 0x08, 0xa3, 0x22, 0xf3, 0x67, 0xb3,
+ 0x2b, 0x0e, 0x0c, 0x1d,
+};
+static const struct drbg_kat_no_reseed kat377_t = {
+ 1, kat377_entropyin, kat377_nonce, kat377_persstr,
+ kat377_addin0, kat377_addin1, kat377_retbits
+};
+static const struct drbg_kat kat377 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat377_t
+};
+
+static const unsigned char kat378_entropyin[] = {
+ 0x71, 0x32, 0x63, 0xcb, 0x43, 0x59, 0x77, 0x66, 0xc7, 0xa9, 0x25, 0x38,
+ 0x1c, 0x3e, 0xce, 0x46, 0xc1, 0x26, 0xa4, 0x73, 0x3b, 0x0b, 0xb5, 0xd9,
+};
+static const unsigned char kat378_nonce[] = {
+ 0x58, 0xfa, 0x56, 0x55, 0x73, 0xa9, 0xe9, 0xc7, 0x2e, 0x22, 0xe5, 0xeb,
+ 0xb2, 0xbe, 0xb8, 0x18,
+};
+static const unsigned char kat378_persstr[] = {0};
+static const unsigned char kat378_addin0[] = {
+ 0x66, 0x73, 0x26, 0x0a, 0x58, 0x78, 0xb3, 0xda, 0x0b, 0xc6, 0x97, 0xb6,
+ 0x72, 0xd9, 0x8c, 0x36, 0x3e, 0x80, 0xe2, 0x55, 0x58, 0x8e, 0xfe, 0x79,
+ 0x60, 0x03, 0x0c, 0xdf, 0xb5, 0x87, 0x4c, 0x81,
+};
+static const unsigned char kat378_addin1[] = {
+ 0xb4, 0x2d, 0x33, 0xc1, 0x03, 0xea, 0xcb, 0xe8, 0xa2, 0xdc, 0x67, 0xcb,
+ 0x5f, 0x48, 0x57, 0x6e, 0x9b, 0xc8, 0x96, 0xda, 0xf0, 0x91, 0xa8, 0x33,
+ 0x9b, 0x0f, 0x04, 0x4c, 0x20, 0xc7, 0x2c, 0x8a,
+};
+static const unsigned char kat378_retbits[] = {
+ 0x6d, 0xfb, 0x11, 0x3e, 0x16, 0xaa, 0xeb, 0x39, 0x19, 0x13, 0x58, 0x27,
+ 0x31, 0x7f, 0xbd, 0xc2, 0x83, 0xe0, 0x66, 0x80, 0xdd, 0x4c, 0x83, 0x81,
+ 0x09, 0xd3, 0x73, 0x4b, 0x35, 0xfd, 0x44, 0x2d, 0x7f, 0xb7, 0x3e, 0x19,
+ 0x83, 0xd7, 0x4b, 0x1e, 0x3b, 0x4d, 0xa8, 0xe5, 0x9e, 0xa0, 0x21, 0xe9,
+ 0x29, 0x61, 0xc7, 0x04, 0xb6, 0x62, 0x7f, 0x15, 0xe8, 0xbe, 0xb5, 0xa3,
+ 0x22, 0x4b, 0x36, 0x18,
+};
+static const struct drbg_kat_no_reseed kat378_t = {
+ 2, kat378_entropyin, kat378_nonce, kat378_persstr,
+ kat378_addin0, kat378_addin1, kat378_retbits
+};
+static const struct drbg_kat kat378 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat378_t
+};
+
+static const unsigned char kat379_entropyin[] = {
+ 0x26, 0x08, 0x08, 0xc8, 0x8f, 0x5f, 0x6b, 0xe1, 0x11, 0xb6, 0x83, 0xf6,
+ 0xf2, 0x97, 0x4f, 0xb5, 0xbb, 0xb4, 0x9e, 0x3d, 0x90, 0x38, 0x3b, 0x7f,
+};
+static const unsigned char kat379_nonce[] = {
+ 0xc5, 0xa8, 0xb8, 0x70, 0x66, 0x11, 0x6d, 0x0b, 0xd8, 0xae, 0x39, 0x30,
+ 0x25, 0xdb, 0x35, 0xcc,
+};
+static const unsigned char kat379_persstr[] = {0};
+static const unsigned char kat379_addin0[] = {
+ 0x06, 0xb6, 0x26, 0xab, 0xc9, 0x66, 0xd9, 0x63, 0x06, 0x7f, 0x0f, 0xd9,
+ 0x3a, 0x84, 0xed, 0x71, 0x01, 0x62, 0x39, 0xe7, 0x9f, 0x63, 0x6f, 0xe9,
+ 0x09, 0x67, 0x2a, 0xe8, 0x4f, 0xf3, 0x6f, 0xa0,
+};
+static const unsigned char kat379_addin1[] = {
+ 0x3e, 0x32, 0x72, 0x6b, 0xa5, 0x5d, 0xf9, 0x15, 0xe0, 0xfb, 0x03, 0x2d,
+ 0xf0, 0x29, 0xdc, 0x96, 0xd4, 0x29, 0xcb, 0x5f, 0x45, 0x8b, 0x08, 0xe5,
+ 0xbe, 0x0b, 0x1c, 0x28, 0x33, 0x92, 0xbb, 0xe1,
+};
+static const unsigned char kat379_retbits[] = {
+ 0xb8, 0xfe, 0xbb, 0xd2, 0x88, 0x7b, 0xa6, 0x9e, 0x3f, 0xcb, 0x07, 0x8a,
+ 0xae, 0xff, 0xbd, 0x9b, 0x79, 0x08, 0x61, 0x80, 0x24, 0xe6, 0x03, 0x52,
+ 0x7c, 0xbe, 0x74, 0xc0, 0xf9, 0x9d, 0x6f, 0x40, 0xa0, 0xe8, 0x65, 0x18,
+ 0xac, 0xd9, 0xf9, 0xf7, 0xc3, 0x4b, 0x3f, 0x11, 0x78, 0x3a, 0x72, 0x78,
+ 0xfe, 0xc3, 0xc3, 0xb6, 0xd4, 0x07, 0xe1, 0x5a, 0x89, 0x84, 0x58, 0x43,
+ 0x23, 0x11, 0x3d, 0xe1,
+};
+static const struct drbg_kat_no_reseed kat379_t = {
+ 3, kat379_entropyin, kat379_nonce, kat379_persstr,
+ kat379_addin0, kat379_addin1, kat379_retbits
+};
+static const struct drbg_kat kat379 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat379_t
+};
+
+static const unsigned char kat380_entropyin[] = {
+ 0xd5, 0x81, 0xd9, 0xca, 0xfb, 0x39, 0xad, 0xbd, 0x2b, 0xca, 0x4a, 0xfa,
+ 0x48, 0x3a, 0xcc, 0x39, 0x9d, 0x4e, 0xb4, 0x7b, 0xc7, 0x60, 0xd8, 0x43,
+};
+static const unsigned char kat380_nonce[] = {
+ 0x36, 0x43, 0x2c, 0x59, 0x7e, 0x6c, 0xd8, 0xfb, 0x70, 0xda, 0x84, 0xb2,
+ 0x5d, 0x8d, 0xcc, 0xc9,
+};
+static const unsigned char kat380_persstr[] = {0};
+static const unsigned char kat380_addin0[] = {
+ 0x9c, 0x27, 0xf4, 0x75, 0x0a, 0x9b, 0x55, 0x32, 0x0d, 0x45, 0x15, 0xf2,
+ 0xe3, 0x52, 0x81, 0x48, 0xfc, 0x02, 0xd4, 0x8f, 0x84, 0x82, 0x24, 0x12,
+ 0x3a, 0xd6, 0xe9, 0x67, 0xff, 0x6a, 0x43, 0x50,
+};
+static const unsigned char kat380_addin1[] = {
+ 0xc7, 0xbf, 0xef, 0x3c, 0x24, 0x55, 0x2c, 0xd4, 0x66, 0xf2, 0xa5, 0x92,
+ 0x3c, 0x13, 0x4e, 0x56, 0xe9, 0xd1, 0x72, 0x55, 0xb4, 0x9c, 0x8b, 0x0f,
+ 0x2c, 0x81, 0x5f, 0x01, 0xfd, 0x72, 0xc4, 0xe0,
+};
+static const unsigned char kat380_retbits[] = {
+ 0xfc, 0x99, 0x80, 0xb6, 0x50, 0x06, 0xc6, 0x49, 0x34, 0x9f, 0x77, 0xb4,
+ 0x69, 0xe4, 0x0f, 0xb0, 0xb8, 0x03, 0xb2, 0xa7, 0xe0, 0xc1, 0x4a, 0xdc,
+ 0xd4, 0x0a, 0x4a, 0xe6, 0x51, 0xbb, 0xd1, 0xe1, 0x8d, 0xf6, 0xb8, 0xa1,
+ 0xc1, 0xa0, 0x28, 0xce, 0xb4, 0x3c, 0x26, 0x27, 0x8b, 0x43, 0xb9, 0x0d,
+ 0xe6, 0x17, 0x58, 0x37, 0x4f, 0x2c, 0x60, 0xba, 0x66, 0x3e, 0xf0, 0x4e,
+ 0xdd, 0xc3, 0x17, 0x48,
+};
+static const struct drbg_kat_no_reseed kat380_t = {
+ 4, kat380_entropyin, kat380_nonce, kat380_persstr,
+ kat380_addin0, kat380_addin1, kat380_retbits
+};
+static const struct drbg_kat kat380 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat380_t
+};
+
+static const unsigned char kat381_entropyin[] = {
+ 0x41, 0xed, 0x09, 0xa7, 0x4f, 0xe7, 0x75, 0xbb, 0x08, 0x24, 0xa7, 0x82,
+ 0x08, 0x83, 0x33, 0x7a, 0xe4, 0x93, 0xb9, 0xaa, 0xa7, 0x1b, 0x41, 0xaa,
+};
+static const unsigned char kat381_nonce[] = {
+ 0x9b, 0x3f, 0xa2, 0xde, 0x23, 0x8c, 0x61, 0x1b, 0xfc, 0x34, 0x8f, 0x07,
+ 0x94, 0xb9, 0xf8, 0x65,
+};
+static const unsigned char kat381_persstr[] = {0};
+static const unsigned char kat381_addin0[] = {
+ 0x27, 0x6c, 0xd3, 0xd2, 0x78, 0x77, 0x45, 0xc9, 0xf8, 0x93, 0xe7, 0xd0,
+ 0x97, 0xc4, 0x55, 0x2f, 0x3a, 0x0f, 0x29, 0x97, 0x7c, 0x33, 0xe6, 0x58,
+ 0x7a, 0xd1, 0x32, 0x59, 0x40, 0x89, 0xb6, 0xc0,
+};
+static const unsigned char kat381_addin1[] = {
+ 0xf9, 0x13, 0x36, 0x7e, 0x39, 0xcd, 0x59, 0xb7, 0xf4, 0x3d, 0x8a, 0x79,
+ 0x40, 0x57, 0x8f, 0x8a, 0x65, 0x19, 0xdb, 0xe6, 0xe0, 0x7a, 0xc2, 0xcc,
+ 0xb1, 0x18, 0x45, 0x3e, 0xd0, 0x28, 0x43, 0x32,
+};
+static const unsigned char kat381_retbits[] = {
+ 0xeb, 0x90, 0x27, 0xbb, 0x00, 0xa4, 0x79, 0x61, 0x12, 0x28, 0x2d, 0x14,
+ 0x7b, 0x6d, 0xde, 0xaf, 0xb4, 0x67, 0x3b, 0x83, 0x81, 0x00, 0x68, 0xdf,
+ 0x53, 0xb0, 0xbc, 0x8d, 0xda, 0x0a, 0x0b, 0xb7, 0x65, 0x1d, 0x2a, 0x38,
+ 0xd6, 0xd1, 0x92, 0x93, 0xa0, 0xe0, 0x17, 0x0e, 0xfe, 0x4e, 0xf8, 0x82,
+ 0x5d, 0xb8, 0xc7, 0xda, 0x6b, 0x48, 0x55, 0x4c, 0xdf, 0x68, 0x10, 0x4d,
+ 0xfe, 0x31, 0xc8, 0x46,
+};
+static const struct drbg_kat_no_reseed kat381_t = {
+ 5, kat381_entropyin, kat381_nonce, kat381_persstr,
+ kat381_addin0, kat381_addin1, kat381_retbits
+};
+static const struct drbg_kat kat381 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat381_t
+};
+
+static const unsigned char kat382_entropyin[] = {
+ 0xd8, 0xe9, 0x27, 0xd9, 0x38, 0xbf, 0xca, 0x29, 0x76, 0x1c, 0xd6, 0x3a,
+ 0x09, 0xc2, 0xe6, 0x09, 0xa9, 0xe5, 0x03, 0x55, 0x91, 0xc2, 0x1b, 0xaa,
+};
+static const unsigned char kat382_nonce[] = {
+ 0x19, 0x57, 0xdb, 0x12, 0x71, 0x81, 0xd0, 0x51, 0xfc, 0xee, 0x6f, 0xb8,
+ 0x7f, 0x7c, 0x86, 0x89,
+};
+static const unsigned char kat382_persstr[] = {0};
+static const unsigned char kat382_addin0[] = {
+ 0xfa, 0x05, 0x83, 0x2a, 0x2d, 0x88, 0x14, 0x70, 0xc9, 0xa6, 0x66, 0x02,
+ 0xc9, 0xef, 0x0a, 0x9f, 0x3c, 0x9a, 0xeb, 0xff, 0x5c, 0x92, 0x33, 0xd0,
+ 0x7e, 0xa4, 0xee, 0x46, 0x59, 0xa5, 0xdf, 0xf4,
+};
+static const unsigned char kat382_addin1[] = {
+ 0xf6, 0xb2, 0x35, 0xfc, 0x52, 0x4a, 0x46, 0xd6, 0xfa, 0x71, 0xeb, 0xcc,
+ 0xa2, 0x7c, 0x3f, 0x0c, 0x0f, 0x36, 0x66, 0x21, 0x6f, 0xdf, 0x89, 0xd2,
+ 0x5c, 0x45, 0xb2, 0x7b, 0x99, 0xa7, 0xac, 0x63,
+};
+static const unsigned char kat382_retbits[] = {
+ 0xbb, 0x51, 0xe9, 0xbb, 0x19, 0x85, 0x39, 0x4b, 0x44, 0x76, 0x53, 0xd1,
+ 0x44, 0x61, 0x29, 0x6f, 0x80, 0x4b, 0x01, 0xfd, 0x79, 0x42, 0x9b, 0x83,
+ 0x56, 0x4e, 0x97, 0x90, 0x8a, 0x3d, 0xb0, 0xf5, 0x4c, 0x5a, 0xf1, 0xa5,
+ 0x43, 0xc7, 0x13, 0x8e, 0x47, 0x8c, 0xa4, 0xd7, 0x95, 0xb0, 0x8c, 0xd1,
+ 0x2c, 0x77, 0x26, 0x00, 0xab, 0x0f, 0x78, 0xc5, 0x0c, 0xf2, 0x7c, 0x05,
+ 0xf5, 0x1e, 0x0a, 0xfb,
+};
+static const struct drbg_kat_no_reseed kat382_t = {
+ 6, kat382_entropyin, kat382_nonce, kat382_persstr,
+ kat382_addin0, kat382_addin1, kat382_retbits
+};
+static const struct drbg_kat kat382 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat382_t
+};
+
+static const unsigned char kat383_entropyin[] = {
+ 0x6a, 0x58, 0x81, 0xe0, 0x9d, 0x36, 0xd4, 0x66, 0xa1, 0x66, 0x7f, 0x62,
+ 0x59, 0xea, 0xe9, 0x27, 0xe1, 0x81, 0x57, 0xd3, 0x31, 0x0b, 0xa1, 0xb6,
+};
+static const unsigned char kat383_nonce[] = {
+ 0xfd, 0x9a, 0x1c, 0x82, 0xd4, 0xed, 0x4c, 0xd7, 0xcc, 0x4a, 0x52, 0xeb,
+ 0xd1, 0x61, 0x6f, 0x90,
+};
+static const unsigned char kat383_persstr[] = {0};
+static const unsigned char kat383_addin0[] = {
+ 0x82, 0x97, 0xd7, 0x02, 0x6e, 0x87, 0x61, 0x46, 0x6e, 0xf8, 0x8e, 0x28,
+ 0x23, 0xb2, 0x9f, 0xf8, 0xad, 0x1b, 0xf7, 0x4c, 0xbe, 0x6a, 0x55, 0x34,
+ 0x32, 0xd3, 0x59, 0xfc, 0xe9, 0x20, 0xcc, 0xb9,
+};
+static const unsigned char kat383_addin1[] = {
+ 0x3d, 0x4b, 0x7b, 0x99, 0x38, 0xd7, 0x71, 0x7f, 0xea, 0xa3, 0x0c, 0x7d,
+ 0x49, 0x07, 0xf3, 0x8a, 0xc2, 0x82, 0x70, 0x2c, 0xb5, 0x29, 0x2d, 0x96,
+ 0xe7, 0x23, 0x32, 0x80, 0x0a, 0x40, 0x86, 0x79,
+};
+static const unsigned char kat383_retbits[] = {
+ 0x97, 0xe5, 0xb0, 0xda, 0xb9, 0x74, 0x2c, 0xaa, 0xf5, 0x17, 0x0e, 0x17,
+ 0x23, 0xd5, 0xc3, 0x9f, 0xc7, 0x11, 0x8c, 0x72, 0xe1, 0xcb, 0x48, 0xe5,
+ 0x97, 0x46, 0x59, 0xf4, 0x99, 0x54, 0xef, 0xb7, 0x6f, 0x6b, 0x96, 0x62,
+ 0xb8, 0xb4, 0xcc, 0xfb, 0xf6, 0xe9, 0x4a, 0x79, 0x2a, 0xd1, 0x45, 0xa6,
+ 0x05, 0xb0, 0xc6, 0xc3, 0x43, 0x02, 0x6c, 0xba, 0x79, 0xf5, 0xcd, 0x10,
+ 0xbd, 0xc8, 0x66, 0x48,
+};
+static const struct drbg_kat_no_reseed kat383_t = {
+ 7, kat383_entropyin, kat383_nonce, kat383_persstr,
+ kat383_addin0, kat383_addin1, kat383_retbits
+};
+static const struct drbg_kat kat383 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat383_t
+};
+
+static const unsigned char kat384_entropyin[] = {
+ 0x2c, 0xc4, 0x79, 0x70, 0x0f, 0x90, 0x9e, 0x7b, 0xa2, 0x67, 0x7f, 0x3e,
+ 0x90, 0x12, 0x81, 0x9d, 0xbd, 0xa2, 0xbf, 0xa9, 0x6b, 0xbf, 0x0e, 0x71,
+};
+static const unsigned char kat384_nonce[] = {
+ 0x36, 0x2b, 0xb1, 0x0b, 0x3e, 0x7f, 0x8c, 0x3f, 0xb3, 0xe4, 0x29, 0x6b,
+ 0x23, 0x71, 0xd4, 0x50,
+};
+static const unsigned char kat384_persstr[] = {0};
+static const unsigned char kat384_addin0[] = {
+ 0x9d, 0xd4, 0x6b, 0xa2, 0x14, 0x56, 0x5b, 0xe1, 0xd6, 0xec, 0x71, 0xd5,
+ 0xfa, 0xa9, 0x2b, 0x45, 0x8b, 0x70, 0xe8, 0x99, 0x8a, 0x2e, 0x60, 0xab,
+ 0xf4, 0x28, 0xfb, 0x17, 0x96, 0xc5, 0x96, 0x51,
+};
+static const unsigned char kat384_addin1[] = {
+ 0xf4, 0x0e, 0x36, 0xed, 0x10, 0x05, 0xe8, 0xc4, 0x46, 0x8d, 0x9f, 0x93,
+ 0x4f, 0xbc, 0xf4, 0x6b, 0x34, 0x2e, 0x57, 0x45, 0x30, 0x9f, 0xa4, 0x00,
+ 0x4c, 0x15, 0x0b, 0xd4, 0xfb, 0x2b, 0x1e, 0x71,
+};
+static const unsigned char kat384_retbits[] = {
+ 0xcb, 0x69, 0xc3, 0x69, 0x35, 0x62, 0x0c, 0x7a, 0x23, 0x40, 0xd6, 0x72,
+ 0xb5, 0x59, 0xbe, 0x58, 0xcc, 0xaa, 0x82, 0xed, 0x45, 0x1a, 0x3f, 0x8e,
+ 0xa4, 0xfc, 0x06, 0xa9, 0x9c, 0x58, 0x9b, 0x96, 0x17, 0x67, 0x1d, 0xbf,
+ 0x26, 0x5a, 0xb9, 0xbf, 0xb9, 0xc5, 0x57, 0xdc, 0x6f, 0x6a, 0x70, 0x1b,
+ 0xa0, 0xcb, 0xc5, 0x03, 0x0e, 0x08, 0x5a, 0xf1, 0x6b, 0xc9, 0x73, 0x86,
+ 0x78, 0xcc, 0x31, 0xb4,
+};
+static const struct drbg_kat_no_reseed kat384_t = {
+ 8, kat384_entropyin, kat384_nonce, kat384_persstr,
+ kat384_addin0, kat384_addin1, kat384_retbits
+};
+static const struct drbg_kat kat384 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat384_t
+};
+
+static const unsigned char kat385_entropyin[] = {
+ 0xcd, 0x60, 0xf9, 0xaa, 0x04, 0xb8, 0x32, 0xb6, 0xa7, 0x6a, 0xc4, 0x3c,
+ 0x52, 0x76, 0x09, 0x25, 0xfa, 0x8e, 0x9d, 0x99, 0x59, 0x2b, 0xdd, 0xef,
+};
+static const unsigned char kat385_nonce[] = {
+ 0x12, 0x94, 0x99, 0x7f, 0x49, 0x24, 0x8a, 0xdc, 0x70, 0x54, 0x0c, 0x18,
+ 0xe8, 0xed, 0xe4, 0x70,
+};
+static const unsigned char kat385_persstr[] = {0};
+static const unsigned char kat385_addin0[] = {
+ 0xaf, 0x6c, 0xe3, 0x7c, 0x50, 0xc9, 0x27, 0x59, 0x37, 0x3d, 0x52, 0x06,
+ 0x62, 0x8f, 0x74, 0x7c, 0x16, 0x91, 0x53, 0xea, 0xbf, 0x80, 0x4d, 0x25,
+ 0x40, 0xc1, 0xc1, 0x77, 0x64, 0xae, 0x53, 0x8e,
+};
+static const unsigned char kat385_addin1[] = {
+ 0xfa, 0x2e, 0x5a, 0x76, 0x2d, 0xd5, 0x60, 0x96, 0x23, 0x0b, 0xa8, 0x34,
+ 0x43, 0xfd, 0x16, 0xc8, 0xbf, 0x6d, 0xa0, 0xf5, 0xaa, 0x07, 0xbe, 0x0e,
+ 0x52, 0x2d, 0x85, 0xb7, 0xfe, 0xc8, 0x8e, 0x96,
+};
+static const unsigned char kat385_retbits[] = {
+ 0xcb, 0x38, 0xaa, 0x9a, 0x8b, 0x89, 0x3e, 0xef, 0xb8, 0x81, 0x9b, 0x41,
+ 0x73, 0x47, 0x1b, 0x98, 0x3e, 0x64, 0xdd, 0x7f, 0xf6, 0x20, 0x92, 0xd4,
+ 0x0c, 0x22, 0x02, 0xa1, 0x2e, 0x07, 0x01, 0x36, 0x72, 0x84, 0x08, 0x04,
+ 0xd8, 0xf4, 0x9a, 0x17, 0x4a, 0xb0, 0x73, 0xb2, 0x93, 0xc6, 0x63, 0xd0,
+ 0x18, 0x2f, 0xe0, 0x03, 0x5f, 0x80, 0xe1, 0xd8, 0x82, 0x19, 0x8b, 0x4e,
+ 0x49, 0xfe, 0x70, 0x10,
+};
+static const struct drbg_kat_no_reseed kat385_t = {
+ 9, kat385_entropyin, kat385_nonce, kat385_persstr,
+ kat385_addin0, kat385_addin1, kat385_retbits
+};
+static const struct drbg_kat kat385 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat385_t
+};
+
+static const unsigned char kat386_entropyin[] = {
+ 0x69, 0x31, 0xcd, 0x18, 0xa6, 0xc7, 0x72, 0xce, 0x1a, 0xd6, 0xb1, 0xff,
+ 0x80, 0x46, 0x11, 0x10, 0xb3, 0x14, 0xc9, 0xc1, 0xb2, 0x7d, 0x6e, 0x5d,
+};
+static const unsigned char kat386_nonce[] = {
+ 0x4f, 0x3c, 0x93, 0xd4, 0x04, 0xb1, 0xa2, 0x0b, 0x83, 0x5e, 0x50, 0x12,
+ 0xe1, 0x2a, 0x65, 0x4f,
+};
+static const unsigned char kat386_persstr[] = {0};
+static const unsigned char kat386_addin0[] = {
+ 0x3c, 0x48, 0x21, 0x1e, 0x1f, 0x59, 0x62, 0xd1, 0xad, 0x49, 0xbb, 0x76,
+ 0x36, 0xab, 0x18, 0x2e, 0x8b, 0x84, 0x95, 0xe2, 0xff, 0xd3, 0x17, 0xfd,
+ 0x08, 0x52, 0x69, 0x50, 0x95, 0x08, 0xc4, 0x61,
+};
+static const unsigned char kat386_addin1[] = {
+ 0xaa, 0x0a, 0x70, 0x03, 0x1a, 0xf5, 0xfe, 0xdc, 0x2c, 0x00, 0x60, 0x5e,
+ 0x5b, 0x6e, 0x4b, 0x92, 0x59, 0xfd, 0x14, 0x21, 0x44, 0x63, 0x52, 0x03,
+ 0x4a, 0x4a, 0x4c, 0x80, 0x16, 0xe3, 0xe0, 0x16,
+};
+static const unsigned char kat386_retbits[] = {
+ 0xa4, 0x49, 0xf3, 0x78, 0x1a, 0x48, 0x84, 0x34, 0x92, 0x10, 0xc9, 0xd3,
+ 0xf6, 0x94, 0xf1, 0xa6, 0x38, 0x71, 0x60, 0x5f, 0xb0, 0x7a, 0xd3, 0x02,
+ 0xa2, 0xc2, 0xcd, 0x16, 0xd7, 0xc6, 0x44, 0xea, 0x7e, 0xb5, 0xfc, 0xbc,
+ 0x27, 0xb1, 0x2a, 0xd6, 0xa4, 0xb7, 0x5c, 0x84, 0xe2, 0xba, 0xdd, 0x4f,
+ 0x0a, 0x06, 0x62, 0x21, 0x64, 0xbc, 0xe3, 0xed, 0xc4, 0xbe, 0x8a, 0x35,
+ 0xba, 0x6c, 0x19, 0x7b,
+};
+static const struct drbg_kat_no_reseed kat386_t = {
+ 10, kat386_entropyin, kat386_nonce, kat386_persstr,
+ kat386_addin0, kat386_addin1, kat386_retbits
+};
+static const struct drbg_kat kat386 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat386_t
+};
+
+static const unsigned char kat387_entropyin[] = {
+ 0x59, 0x29, 0xc6, 0xc6, 0xc5, 0x63, 0xdc, 0x6b, 0x85, 0x4c, 0xd7, 0x1c,
+ 0x3a, 0x2e, 0x9c, 0x8f, 0x36, 0x88, 0x6b, 0xdf, 0x24, 0x46, 0xb1, 0x1f,
+};
+static const unsigned char kat387_nonce[] = {
+ 0x36, 0x6e, 0x9c, 0xc6, 0x90, 0x07, 0x44, 0xa7, 0xfd, 0x31, 0xed, 0x92,
+ 0xf5, 0x78, 0x5d, 0x2b,
+};
+static const unsigned char kat387_persstr[] = {0};
+static const unsigned char kat387_addin0[] = {
+ 0xdc, 0xc1, 0x53, 0x2d, 0x3d, 0x93, 0x48, 0x80, 0x7c, 0x19, 0x17, 0xa4,
+ 0x51, 0x39, 0xd7, 0x34, 0x5d, 0x15, 0xa8, 0xd9, 0xc7, 0xa6, 0xa1, 0x8c,
+ 0x82, 0x69, 0x45, 0xe8, 0x2b, 0x0b, 0x8a, 0x5e,
+};
+static const unsigned char kat387_addin1[] = {
+ 0x40, 0x22, 0xbc, 0x66, 0xf1, 0x81, 0x60, 0xeb, 0x8a, 0x87, 0x23, 0x76,
+ 0xba, 0x99, 0x8b, 0xbc, 0x40, 0x00, 0x31, 0xb7, 0xb9, 0x05, 0x03, 0x1a,
+ 0x38, 0x47, 0xd4, 0xec, 0x0d, 0xf9, 0x57, 0xcf,
+};
+static const unsigned char kat387_retbits[] = {
+ 0x36, 0x2f, 0xf3, 0xdf, 0x4d, 0x56, 0x3f, 0xca, 0xb2, 0x73, 0x0b, 0xb1,
+ 0x93, 0x2f, 0x27, 0x91, 0x99, 0x1e, 0x50, 0xe2, 0x46, 0x82, 0x1a, 0x74,
+ 0x68, 0xa2, 0xeb, 0x1a, 0xcf, 0x55, 0xd3, 0x30, 0xcd, 0x13, 0xba, 0x99,
+ 0x9c, 0x58, 0x52, 0xe8, 0x1d, 0x58, 0xc3, 0xc8, 0xe6, 0x38, 0x48, 0xbf,
+ 0xa6, 0xb2, 0x43, 0x3d, 0xe4, 0x53, 0xa0, 0xda, 0x6c, 0x79, 0x97, 0xa6,
+ 0x00, 0x0c, 0x9f, 0xc3,
+};
+static const struct drbg_kat_no_reseed kat387_t = {
+ 11, kat387_entropyin, kat387_nonce, kat387_persstr,
+ kat387_addin0, kat387_addin1, kat387_retbits
+};
+static const struct drbg_kat kat387 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat387_t
+};
+
+static const unsigned char kat388_entropyin[] = {
+ 0x61, 0xae, 0x1d, 0x52, 0x00, 0x54, 0x09, 0x68, 0x42, 0xc1, 0x7a, 0xb7,
+ 0x0c, 0x60, 0xa2, 0x78, 0x48, 0x0a, 0xae, 0xd2, 0x99, 0x57, 0x5e, 0x59,
+};
+static const unsigned char kat388_nonce[] = {
+ 0x9a, 0xbc, 0xbd, 0xbe, 0x26, 0x0a, 0x64, 0x19, 0xc7, 0x87, 0x70, 0x61,
+ 0x5d, 0xa5, 0x4c, 0x03,
+};
+static const unsigned char kat388_persstr[] = {0};
+static const unsigned char kat388_addin0[] = {
+ 0x0e, 0x5b, 0x2a, 0x49, 0xf3, 0x44, 0x51, 0x99, 0xcb, 0xbe, 0xca, 0x36,
+ 0x3b, 0x02, 0x3f, 0x4a, 0x29, 0x54, 0xc3, 0xe5, 0x67, 0xcb, 0xfc, 0x33,
+ 0xf1, 0xb2, 0x9f, 0xbc, 0x74, 0x20, 0xb1, 0x89,
+};
+static const unsigned char kat388_addin1[] = {
+ 0xa2, 0xff, 0xe5, 0x63, 0xdd, 0x17, 0x50, 0xbb, 0x3e, 0x07, 0xf2, 0xc4,
+ 0x98, 0xef, 0x18, 0xa6, 0xc4, 0xf2, 0x24, 0x53, 0xd9, 0xab, 0xc9, 0x93,
+ 0x55, 0x50, 0x9c, 0x42, 0xed, 0x01, 0x19, 0x60,
+};
+static const unsigned char kat388_retbits[] = {
+ 0x7b, 0xec, 0x6d, 0xaa, 0x15, 0xef, 0x65, 0x81, 0x72, 0x49, 0x04, 0x4d,
+ 0x37, 0x5f, 0xbd, 0x98, 0x57, 0x3a, 0xcd, 0xac, 0xb2, 0x11, 0x46, 0x78,
+ 0xd4, 0x11, 0x58, 0x9e, 0x44, 0xb7, 0x1c, 0xcc, 0xdf, 0xa7, 0xbd, 0x50,
+ 0x69, 0x5a, 0xdd, 0x94, 0x7b, 0x0e, 0xbb, 0x58, 0xb7, 0x38, 0x38, 0x65,
+ 0x37, 0xb6, 0x34, 0x40, 0xee, 0x84, 0xb7, 0x7f, 0x37, 0xe0, 0xc4, 0x58,
+ 0x77, 0x43, 0x0c, 0x70,
+};
+static const struct drbg_kat_no_reseed kat388_t = {
+ 12, kat388_entropyin, kat388_nonce, kat388_persstr,
+ kat388_addin0, kat388_addin1, kat388_retbits
+};
+static const struct drbg_kat kat388 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat388_t
+};
+
+static const unsigned char kat389_entropyin[] = {
+ 0xb6, 0x73, 0x5d, 0x76, 0x0d, 0x4d, 0xca, 0xa5, 0x7d, 0xae, 0xfc, 0x5b,
+ 0xdb, 0xf0, 0xb5, 0xa9, 0x4f, 0x2e, 0x6b, 0xc4, 0xa3, 0x60, 0x80, 0x4b,
+};
+static const unsigned char kat389_nonce[] = {
+ 0xd0, 0xa8, 0xbc, 0xef, 0xaa, 0x6d, 0x9f, 0x4b, 0x6a, 0xfd, 0x4c, 0x8a,
+ 0xd4, 0x27, 0x6e, 0xf0,
+};
+static const unsigned char kat389_persstr[] = {0};
+static const unsigned char kat389_addin0[] = {
+ 0x75, 0x61, 0x9e, 0xe0, 0xb4, 0xf2, 0x60, 0x1d, 0x5f, 0x1c, 0xb0, 0x83,
+ 0x3f, 0x32, 0x5e, 0x3a, 0x7b, 0x59, 0x21, 0x48, 0x17, 0x52, 0xe1, 0x22,
+ 0xc8, 0x78, 0x6d, 0xdc, 0x33, 0xa3, 0x8a, 0x27,
+};
+static const unsigned char kat389_addin1[] = {
+ 0x13, 0x60, 0xb2, 0x00, 0x07, 0x80, 0x37, 0x6f, 0x0a, 0xed, 0x1a, 0xef,
+ 0xfa, 0x3c, 0x26, 0xe6, 0xc2, 0x9d, 0x30, 0xb0, 0x74, 0x0d, 0xe1, 0x4b,
+ 0xbf, 0xe9, 0x31, 0xe5, 0xf1, 0xaa, 0xa9, 0x68,
+};
+static const unsigned char kat389_retbits[] = {
+ 0xae, 0x3b, 0xb8, 0x2b, 0xfb, 0xd1, 0xf4, 0x8c, 0x33, 0xe1, 0xeb, 0x0b,
+ 0x96, 0xca, 0x85, 0x0c, 0x35, 0x05, 0xa7, 0x5b, 0xf3, 0xfb, 0x07, 0xbb,
+ 0xad, 0xe7, 0xa2, 0xc1, 0x7b, 0xd1, 0xb0, 0x4d, 0x8a, 0xf5, 0xed, 0x1a,
+ 0x5c, 0x71, 0x56, 0x6c, 0xa2, 0xc0, 0x51, 0x35, 0xc4, 0x12, 0x8a, 0x0e,
+ 0x6e, 0x8e, 0x9a, 0x27, 0xb3, 0x7a, 0x76, 0xc9, 0xf7, 0x08, 0xdb, 0x02,
+ 0x7f, 0x94, 0x80, 0x1c,
+};
+static const struct drbg_kat_no_reseed kat389_t = {
+ 13, kat389_entropyin, kat389_nonce, kat389_persstr,
+ kat389_addin0, kat389_addin1, kat389_retbits
+};
+static const struct drbg_kat kat389 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat389_t
+};
+
+static const unsigned char kat390_entropyin[] = {
+ 0xbb, 0x90, 0xe5, 0x3c, 0x12, 0x40, 0xd6, 0x58, 0x40, 0x6d, 0x7c, 0x85,
+ 0xc0, 0xff, 0x23, 0xd7, 0x47, 0x4a, 0x67, 0x6a, 0x59, 0x20, 0xb0, 0xe1,
+};
+static const unsigned char kat390_nonce[] = {
+ 0x48, 0x02, 0xe0, 0x2a, 0xdc, 0xc5, 0xa1, 0x50, 0x4d, 0x6d, 0xde, 0x82,
+ 0xb6, 0xf2, 0x0a, 0x67,
+};
+static const unsigned char kat390_persstr[] = {0};
+static const unsigned char kat390_addin0[] = {
+ 0xfb, 0x2b, 0x97, 0x6d, 0x69, 0x4d, 0xf3, 0xfc, 0x2b, 0x32, 0xa3, 0x3f,
+ 0x7c, 0x98, 0x96, 0x83, 0xf5, 0x0c, 0x4c, 0xfc, 0xe6, 0x16, 0x8a, 0xd1,
+ 0xab, 0x9d, 0x1a, 0x79, 0xd5, 0xf5, 0x9d, 0x3c,
+};
+static const unsigned char kat390_addin1[] = {
+ 0x6c, 0x78, 0x61, 0x0d, 0xaf, 0x6e, 0xa4, 0x26, 0x64, 0x1b, 0xe5, 0x62,
+ 0x80, 0xcd, 0x62, 0x3e, 0x8b, 0x11, 0xdd, 0x96, 0x7a, 0xc6, 0x15, 0x4f,
+ 0x04, 0xa6, 0xd4, 0xa6, 0xc7, 0x49, 0xc9, 0x57,
+};
+static const unsigned char kat390_retbits[] = {
+ 0x97, 0xe3, 0x56, 0x01, 0x57, 0xab, 0x43, 0x42, 0xe7, 0x62, 0x48, 0x07,
+ 0x27, 0xd5, 0x50, 0x5a, 0x72, 0x29, 0x3e, 0x13, 0x53, 0x1c, 0x62, 0xea,
+ 0x70, 0x72, 0xb2, 0xac, 0xf8, 0xf7, 0x2e, 0xa8, 0xce, 0xd0, 0x9c, 0xbf,
+ 0x9e, 0xcb, 0x9e, 0x9d, 0x6d, 0xa6, 0x16, 0xfb, 0x8c, 0xa0, 0x61, 0x38,
+ 0x09, 0x38, 0x8e, 0xe9, 0x15, 0xaa, 0xcb, 0x59, 0xcb, 0x36, 0x27, 0xe3,
+ 0xf0, 0xc3, 0x89, 0xdf,
+};
+static const struct drbg_kat_no_reseed kat390_t = {
+ 14, kat390_entropyin, kat390_nonce, kat390_persstr,
+ kat390_addin0, kat390_addin1, kat390_retbits
+};
+static const struct drbg_kat kat390 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat390_t
+};
+
+static const unsigned char kat391_entropyin[] = {
+ 0xa7, 0x99, 0x43, 0x34, 0x23, 0x77, 0xca, 0x01, 0x85, 0x59, 0xd0, 0x88,
+ 0x6d, 0x43, 0xdf, 0xe0, 0x18, 0xd6, 0x30, 0x59, 0x0d, 0xb1, 0x02, 0x3b,
+};
+static const unsigned char kat391_nonce[] = {
+ 0x1b, 0x96, 0xf2, 0x2b, 0xd6, 0x61, 0x79, 0xf5, 0x93, 0x80, 0x9d, 0xb9,
+ 0x0f, 0xdf, 0xa6, 0x14,
+};
+static const unsigned char kat391_persstr[] = {
+ 0x5b, 0xed, 0xfc, 0x44, 0xb3, 0x72, 0x88, 0x44, 0x52, 0x36, 0x72, 0x29,
+ 0xf1, 0xf6, 0x7e, 0x93, 0xbc, 0x44, 0x7f, 0x8f, 0xbe, 0xe0, 0x44, 0xc3,
+ 0x1e, 0x10, 0x96, 0x7e, 0xf0, 0x12, 0x0c, 0x6d,
+};
+static const unsigned char kat391_addin0[] = {0};
+static const unsigned char kat391_addin1[] = {0};
+static const unsigned char kat391_retbits[] = {
+ 0x49, 0xeb, 0xb3, 0x6a, 0xfd, 0x56, 0x3e, 0x07, 0x72, 0xed, 0x7d, 0xc8,
+ 0xec, 0xbb, 0xee, 0xba, 0x47, 0xcc, 0xba, 0xbf, 0xd0, 0xbe, 0xeb, 0xb5,
+ 0xc9, 0x9c, 0x97, 0x71, 0xe2, 0xdf, 0x9a, 0x33, 0xe1, 0x9c, 0x4b, 0xb7,
+ 0x16, 0x44, 0x9e, 0xb5, 0xe9, 0xb6, 0x67, 0x39, 0xbd, 0xca, 0x2e, 0xe8,
+ 0xca, 0x21, 0x7e, 0xcc, 0x1c, 0x4f, 0xf6, 0xc0, 0x34, 0xcd, 0xfc, 0xad,
+ 0xb8, 0xf1, 0xc7, 0xda,
+};
+static const struct drbg_kat_no_reseed kat391_t = {
+ 0, kat391_entropyin, kat391_nonce, kat391_persstr,
+ kat391_addin0, kat391_addin1, kat391_retbits
+};
+static const struct drbg_kat kat391 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat391_t
+};
+
+static const unsigned char kat392_entropyin[] = {
+ 0xc3, 0x7b, 0xcf, 0xc7, 0x99, 0xb1, 0xa7, 0x51, 0xca, 0x6f, 0xc1, 0xfd,
+ 0xec, 0x29, 0x2a, 0xe8, 0xcd, 0x3a, 0x59, 0xb6, 0x15, 0x82, 0x8c, 0x89,
+};
+static const unsigned char kat392_nonce[] = {
+ 0x26, 0xeb, 0x7b, 0xb6, 0x85, 0xe4, 0xe9, 0x12, 0xe4, 0x74, 0x11, 0x5b,
+ 0x19, 0xfa, 0xb4, 0xa2,
+};
+static const unsigned char kat392_persstr[] = {
+ 0x02, 0x7c, 0xa3, 0x5a, 0x2a, 0xd5, 0x2c, 0x9e, 0xb8, 0x73, 0x07, 0xac,
+ 0x2b, 0x4d, 0xd0, 0x45, 0x9a, 0xb5, 0xfe, 0xf8, 0x74, 0xcd, 0x25, 0x34,
+ 0x27, 0x52, 0x88, 0x8c, 0x1d, 0xba, 0x63, 0x21,
+};
+static const unsigned char kat392_addin0[] = {0};
+static const unsigned char kat392_addin1[] = {0};
+static const unsigned char kat392_retbits[] = {
+ 0x0d, 0xb0, 0xad, 0x15, 0xbe, 0xe8, 0x9b, 0x26, 0xff, 0x32, 0xad, 0x9b,
+ 0x3e, 0x5e, 0xea, 0x25, 0xb3, 0x02, 0x6a, 0x0e, 0x76, 0xe8, 0x5d, 0x57,
+ 0x6a, 0x17, 0x40, 0x0e, 0x00, 0xe3, 0x8b, 0x82, 0x88, 0x3d, 0xd0, 0x1d,
+ 0x43, 0x03, 0x8c, 0xe6, 0xb5, 0x64, 0x5d, 0xe5, 0x8f, 0x3d, 0x08, 0xa2,
+ 0x38, 0xb8, 0x58, 0x97, 0x8d, 0xe4, 0x09, 0x06, 0xa8, 0x89, 0x08, 0x92,
+ 0x5a, 0x91, 0x82, 0x0d,
+};
+static const struct drbg_kat_no_reseed kat392_t = {
+ 1, kat392_entropyin, kat392_nonce, kat392_persstr,
+ kat392_addin0, kat392_addin1, kat392_retbits
+};
+static const struct drbg_kat kat392 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat392_t
+};
+
+static const unsigned char kat393_entropyin[] = {
+ 0x5f, 0xd9, 0xfd, 0xe9, 0x5f, 0x75, 0x96, 0x85, 0xda, 0x08, 0xaf, 0x67,
+ 0xd9, 0xd8, 0x4a, 0xa0, 0xd3, 0x32, 0x23, 0x5a, 0x0d, 0x32, 0x45, 0xe7,
+};
+static const unsigned char kat393_nonce[] = {
+ 0x1d, 0x30, 0xeb, 0x84, 0xed, 0xd4, 0x48, 0x7c, 0xa3, 0xbe, 0x0f, 0x08,
+ 0xf8, 0x1c, 0x8a, 0xfc,
+};
+static const unsigned char kat393_persstr[] = {
+ 0x2a, 0xe9, 0x1a, 0xd3, 0xbb, 0xae, 0x3f, 0x5f, 0x80, 0xe1, 0x80, 0xb7,
+ 0xe9, 0x4a, 0xe5, 0x01, 0x90, 0x1c, 0x01, 0x5f, 0xb1, 0x2f, 0x50, 0xd8,
+ 0xac, 0x8f, 0x2a, 0xc2, 0x15, 0x0a, 0xa2, 0xb6,
+};
+static const unsigned char kat393_addin0[] = {0};
+static const unsigned char kat393_addin1[] = {0};
+static const unsigned char kat393_retbits[] = {
+ 0x2a, 0xa5, 0xb7, 0xef, 0x58, 0x74, 0x59, 0x46, 0xec, 0xcf, 0xaf, 0x9c,
+ 0xe1, 0xe2, 0x8c, 0x03, 0x6a, 0xd4, 0xe9, 0x9e, 0xd5, 0x05, 0x1b, 0x51,
+ 0xc5, 0x74, 0x66, 0xea, 0xb0, 0xad, 0x08, 0x31, 0xcf, 0xa0, 0x14, 0x42,
+ 0x6c, 0x2c, 0x3d, 0x4b, 0xe7, 0x0f, 0x0e, 0xc7, 0x7e, 0x02, 0x43, 0x40,
+ 0x9d, 0xac, 0xb8, 0x7e, 0xd3, 0x40, 0xaf, 0x0b, 0x8e, 0x39, 0x45, 0x61,
+ 0x20, 0x64, 0x0e, 0xb9,
+};
+static const struct drbg_kat_no_reseed kat393_t = {
+ 2, kat393_entropyin, kat393_nonce, kat393_persstr,
+ kat393_addin0, kat393_addin1, kat393_retbits
+};
+static const struct drbg_kat kat393 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat393_t
+};
+
+static const unsigned char kat394_entropyin[] = {
+ 0xb0, 0x6b, 0xb1, 0x4c, 0xce, 0x0d, 0xb3, 0xf4, 0x1a, 0xf3, 0xe7, 0x79,
+ 0x10, 0x36, 0x1e, 0x77, 0x85, 0x42, 0x7c, 0x83, 0x02, 0xdd, 0xbd, 0xf4,
+};
+static const unsigned char kat394_nonce[] = {
+ 0xf3, 0x9d, 0x39, 0xc3, 0x05, 0xd1, 0x72, 0x7f, 0x7d, 0xcb, 0x62, 0x94,
+ 0xca, 0xfc, 0x30, 0x45,
+};
+static const unsigned char kat394_persstr[] = {
+ 0x06, 0x76, 0xb6, 0x8f, 0x21, 0xa6, 0xc2, 0x89, 0x52, 0x11, 0xce, 0x12,
+ 0x7a, 0x57, 0x48, 0xa0, 0x05, 0x0e, 0xeb, 0xec, 0x08, 0x04, 0x4e, 0xe2,
+ 0xfe, 0x26, 0x93, 0xbe, 0x05, 0xe2, 0x23, 0xe8,
+};
+static const unsigned char kat394_addin0[] = {0};
+static const unsigned char kat394_addin1[] = {0};
+static const unsigned char kat394_retbits[] = {
+ 0xbd, 0xe9, 0x73, 0x5f, 0x36, 0xb8, 0xd8, 0xaf, 0xe8, 0xac, 0x76, 0xa9,
+ 0x71, 0xec, 0x94, 0x66, 0x06, 0x5d, 0x22, 0xe1, 0x88, 0x5e, 0x75, 0xdb,
+ 0x61, 0xca, 0x11, 0x66, 0x28, 0x10, 0x6b, 0xeb, 0x15, 0xdd, 0xe7, 0xe5,
+ 0xe1, 0xc4, 0x86, 0xe4, 0xcc, 0x66, 0x05, 0x6e, 0xe1, 0x57, 0x0c, 0xd5,
+ 0x34, 0x9b, 0x6c, 0x62, 0x80, 0x94, 0xc9, 0x50, 0x67, 0x52, 0xde, 0x9f,
+ 0x3d, 0xa9, 0x5f, 0x8a,
+};
+static const struct drbg_kat_no_reseed kat394_t = {
+ 3, kat394_entropyin, kat394_nonce, kat394_persstr,
+ kat394_addin0, kat394_addin1, kat394_retbits
+};
+static const struct drbg_kat kat394 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat394_t
+};
+
+static const unsigned char kat395_entropyin[] = {
+ 0xc2, 0x10, 0x9a, 0x53, 0x44, 0x62, 0x8f, 0xfa, 0x5c, 0x43, 0x46, 0x0e,
+ 0x9e, 0x38, 0x5f, 0x4e, 0xa4, 0xc0, 0x7a, 0xa4, 0x01, 0xec, 0x98, 0x1e,
+};
+static const unsigned char kat395_nonce[] = {
+ 0xd2, 0x42, 0xbb, 0xb3, 0xba, 0x28, 0x2b, 0x9b, 0xb0, 0xd3, 0x64, 0x8a,
+ 0xee, 0x33, 0xf6, 0x99,
+};
+static const unsigned char kat395_persstr[] = {
+ 0x00, 0x33, 0x3c, 0xfe, 0x95, 0xaf, 0x5e, 0xcb, 0x99, 0xf9, 0xab, 0x69,
+ 0x86, 0x76, 0x2a, 0xd2, 0xd2, 0xf7, 0x70, 0x2a, 0xa5, 0xec, 0x5c, 0xef,
+ 0xc4, 0x31, 0x77, 0xee, 0xb3, 0xb3, 0x3d, 0xdb,
+};
+static const unsigned char kat395_addin0[] = {0};
+static const unsigned char kat395_addin1[] = {0};
+static const unsigned char kat395_retbits[] = {
+ 0xf8, 0xc4, 0xed, 0x2c, 0x6d, 0x7f, 0x32, 0x38, 0x28, 0xc5, 0xe9, 0xe5,
+ 0x0c, 0x86, 0x31, 0xe1, 0x35, 0xd1, 0xca, 0x04, 0x17, 0x3e, 0xaf, 0x15,
+ 0x03, 0x6a, 0xf8, 0x25, 0x0e, 0xf0, 0x9b, 0xdd, 0x59, 0x5d, 0x03, 0xa7,
+ 0x76, 0xae, 0x06, 0x6d, 0xa4, 0x62, 0xc6, 0x31, 0xfc, 0x6a, 0x66, 0xea,
+ 0xb3, 0x75, 0xfb, 0x0e, 0x2e, 0xde, 0x9a, 0x3b, 0x50, 0x83, 0x98, 0x0f,
+ 0x4f, 0xf8, 0x10, 0xc9,
+};
+static const struct drbg_kat_no_reseed kat395_t = {
+ 4, kat395_entropyin, kat395_nonce, kat395_persstr,
+ kat395_addin0, kat395_addin1, kat395_retbits
+};
+static const struct drbg_kat kat395 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat395_t
+};
+
+static const unsigned char kat396_entropyin[] = {
+ 0xb7, 0xa9, 0x0d, 0x58, 0xf3, 0x65, 0x08, 0x14, 0xad, 0x99, 0xd3, 0x08,
+ 0xb2, 0x3c, 0x79, 0xd9, 0x36, 0x57, 0xc7, 0x3d, 0x2d, 0xed, 0x54, 0x12,
+};
+static const unsigned char kat396_nonce[] = {
+ 0x8a, 0xe9, 0x69, 0x38, 0xdf, 0xfc, 0xcc, 0xef, 0xc8, 0xd5, 0xf9, 0x34,
+ 0x75, 0x3f, 0xd6, 0x70,
+};
+static const unsigned char kat396_persstr[] = {
+ 0xe3, 0x19, 0xf4, 0x51, 0x11, 0xce, 0xa3, 0x52, 0x90, 0xb0, 0x77, 0x30,
+ 0x2b, 0xd3, 0xb5, 0xd4, 0x5b, 0x0f, 0x7c, 0x5e, 0x9e, 0x1d, 0x97, 0x29,
+ 0xdd, 0x2f, 0xcc, 0xc7, 0x58, 0x85, 0x5c, 0x3a,
+};
+static const unsigned char kat396_addin0[] = {0};
+static const unsigned char kat396_addin1[] = {0};
+static const unsigned char kat396_retbits[] = {
+ 0x7b, 0xb1, 0x31, 0x47, 0x9e, 0x60, 0x64, 0xc7, 0x76, 0x7e, 0x17, 0xaf,
+ 0x46, 0xd5, 0x28, 0xe4, 0xb6, 0x59, 0xc7, 0xfa, 0xbf, 0x90, 0x6c, 0x0a,
+ 0x76, 0x79, 0xdd, 0x8a, 0xfd, 0xd4, 0xaa, 0xf1, 0x04, 0xf8, 0xe7, 0xca,
+ 0xab, 0x91, 0x53, 0x65, 0x2a, 0x30, 0xe3, 0x8f, 0x80, 0xda, 0xe1, 0x0e,
+ 0x67, 0xca, 0xf3, 0x02, 0xbf, 0x11, 0x71, 0x04, 0x94, 0x96, 0x49, 0xc7,
+ 0xb2, 0x0f, 0x5d, 0x38,
+};
+static const struct drbg_kat_no_reseed kat396_t = {
+ 5, kat396_entropyin, kat396_nonce, kat396_persstr,
+ kat396_addin0, kat396_addin1, kat396_retbits
+};
+static const struct drbg_kat kat396 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat396_t
+};
+
+static const unsigned char kat397_entropyin[] = {
+ 0x76, 0x18, 0xe5, 0x54, 0x6a, 0x59, 0x81, 0xcb, 0x4c, 0x72, 0xa5, 0x17,
+ 0xf2, 0x9a, 0x5f, 0xe8, 0x88, 0x6d, 0x4d, 0x3e, 0x9a, 0xd9, 0xfc, 0xb0,
+};
+static const unsigned char kat397_nonce[] = {
+ 0xd4, 0x75, 0x70, 0x4c, 0x10, 0xc4, 0xa1, 0x86, 0x6b, 0xca, 0xa4, 0x12,
+ 0xe6, 0xbf, 0xbe, 0x7d,
+};
+static const unsigned char kat397_persstr[] = {
+ 0xae, 0x8c, 0x3c, 0xde, 0x39, 0xed, 0x90, 0xda, 0x31, 0xb7, 0x32, 0x0c,
+ 0xf3, 0x59, 0x69, 0xfd, 0xe8, 0xf8, 0x28, 0x94, 0xe2, 0x22, 0xec, 0x2e,
+ 0x8a, 0xa1, 0x5d, 0x67, 0xb5, 0x5e, 0xfd, 0x89,
+};
+static const unsigned char kat397_addin0[] = {0};
+static const unsigned char kat397_addin1[] = {0};
+static const unsigned char kat397_retbits[] = {
+ 0x75, 0x30, 0x48, 0xb2, 0x87, 0x9a, 0xbd, 0x1a, 0x0c, 0xf2, 0x42, 0x6f,
+ 0x1e, 0x1b, 0x04, 0x1f, 0xcb, 0x6b, 0xa3, 0xf0, 0x71, 0x0e, 0xe8, 0xec,
+ 0x41, 0x0d, 0x79, 0x2f, 0xb3, 0x2b, 0xd6, 0x6b, 0x1b, 0xac, 0x95, 0xaf,
+ 0x81, 0xa3, 0x09, 0x01, 0xf7, 0xbd, 0xd4, 0x2e, 0x5f, 0x8f, 0xe6, 0xcd,
+ 0x28, 0x62, 0x3f, 0xde, 0xe9, 0xc5, 0x89, 0xbc, 0x47, 0xde, 0x1c, 0x6a,
+ 0x29, 0x0b, 0xec, 0x62,
+};
+static const struct drbg_kat_no_reseed kat397_t = {
+ 6, kat397_entropyin, kat397_nonce, kat397_persstr,
+ kat397_addin0, kat397_addin1, kat397_retbits
+};
+static const struct drbg_kat kat397 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat397_t
+};
+
+static const unsigned char kat398_entropyin[] = {
+ 0x1d, 0x38, 0xd2, 0x43, 0x0e, 0x12, 0x93, 0x2d, 0xa3, 0xc3, 0x8f, 0x44,
+ 0x93, 0x0c, 0x1a, 0x2f, 0xf4, 0xa6, 0x2e, 0xaf, 0xaf, 0x8c, 0x85, 0x6f,
+};
+static const unsigned char kat398_nonce[] = {
+ 0x18, 0x85, 0xf3, 0xbd, 0x33, 0x9f, 0x2c, 0x96, 0x59, 0x5c, 0x3b, 0x6d,
+ 0x99, 0x8e, 0x50, 0x83,
+};
+static const unsigned char kat398_persstr[] = {
+ 0x43, 0x0c, 0x78, 0x71, 0x90, 0x1e, 0x16, 0x56, 0xe0, 0x8f, 0xb3, 0x5e,
+ 0xb4, 0xec, 0x43, 0x98, 0x49, 0x37, 0xa7, 0x5a, 0xf5, 0x96, 0xc9, 0x45,
+ 0x86, 0xa8, 0xf0, 0x2a, 0xf1, 0x2b, 0x7f, 0xc3,
+};
+static const unsigned char kat398_addin0[] = {0};
+static const unsigned char kat398_addin1[] = {0};
+static const unsigned char kat398_retbits[] = {
+ 0x9e, 0xc5, 0x99, 0x81, 0x42, 0x37, 0x9d, 0x14, 0x89, 0x64, 0x51, 0x02,
+ 0x4f, 0xec, 0x60, 0x85, 0x34, 0x18, 0xa3, 0xef, 0x59, 0xd3, 0xa6, 0xbd,
+ 0x3f, 0xf1, 0x59, 0x28, 0x26, 0xb1, 0x13, 0x72, 0xf3, 0x21, 0xa9, 0x8c,
+ 0x54, 0xd1, 0xbf, 0x82, 0x25, 0xbb, 0x64, 0xec, 0x2f, 0x2f, 0x4f, 0x46,
+ 0xed, 0x64, 0x2a, 0xea, 0xf2, 0x8e, 0xb2, 0x0b, 0xc9, 0x93, 0xe6, 0xd6,
+ 0x84, 0xfa, 0x33, 0xde,
+};
+static const struct drbg_kat_no_reseed kat398_t = {
+ 7, kat398_entropyin, kat398_nonce, kat398_persstr,
+ kat398_addin0, kat398_addin1, kat398_retbits
+};
+static const struct drbg_kat kat398 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat398_t
+};
+
+static const unsigned char kat399_entropyin[] = {
+ 0xab, 0xb6, 0xb7, 0x68, 0x06, 0x81, 0x3c, 0x22, 0x73, 0xaa, 0x8e, 0xd4,
+ 0x76, 0xaf, 0x00, 0x74, 0xa7, 0xa4, 0x73, 0xea, 0x54, 0x8c, 0xc1, 0xef,
+};
+static const unsigned char kat399_nonce[] = {
+ 0xd9, 0x91, 0x77, 0x34, 0x3e, 0xa3, 0x83, 0x7f, 0x92, 0xd9, 0xc7, 0x36,
+ 0x7a, 0x70, 0x43, 0x3e,
+};
+static const unsigned char kat399_persstr[] = {
+ 0xef, 0x6b, 0x87, 0x66, 0x1f, 0x2a, 0x67, 0x8a, 0xd2, 0xd4, 0xdc, 0x85,
+ 0xba, 0x08, 0x45, 0xec, 0x8e, 0xea, 0xfa, 0x2b, 0x82, 0xb8, 0xae, 0xda,
+ 0x4f, 0xc6, 0x19, 0x38, 0xa8, 0xdd, 0x60, 0x77,
+};
+static const unsigned char kat399_addin0[] = {0};
+static const unsigned char kat399_addin1[] = {0};
+static const unsigned char kat399_retbits[] = {
+ 0x81, 0x1a, 0xc8, 0x8d, 0x4c, 0x96, 0x15, 0xb5, 0x35, 0xb0, 0xf7, 0x2a,
+ 0x9f, 0x49, 0x10, 0x7b, 0xac, 0xa2, 0x39, 0xa1, 0x3f, 0x26, 0xb9, 0x7b,
+ 0xa7, 0x33, 0xe4, 0xaf, 0x3a, 0x24, 0xdb, 0x8a, 0x65, 0x82, 0x75, 0xee,
+ 0x24, 0x16, 0xc0, 0x2f, 0x59, 0x68, 0xc2, 0x2d, 0x13, 0xaa, 0x62, 0x55,
+ 0xde, 0xb0, 0x98, 0x14, 0x51, 0x05, 0x22, 0x6f, 0x4a, 0xa8, 0x0a, 0xe3,
+ 0xdf, 0x8c, 0x1b, 0xfd,
+};
+static const struct drbg_kat_no_reseed kat399_t = {
+ 8, kat399_entropyin, kat399_nonce, kat399_persstr,
+ kat399_addin0, kat399_addin1, kat399_retbits
+};
+static const struct drbg_kat kat399 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat399_t
+};
+
+static const unsigned char kat400_entropyin[] = {
+ 0xde, 0xfc, 0x7c, 0x59, 0xd7, 0x8e, 0x50, 0xc4, 0x12, 0x32, 0xf7, 0xbe,
+ 0xbf, 0xc5, 0xe9, 0x40, 0x8c, 0xea, 0x26, 0x6f, 0xc1, 0xe3, 0xc5, 0xc8,
+};
+static const unsigned char kat400_nonce[] = {
+ 0x9f, 0xfa, 0x0d, 0xf6, 0x97, 0x93, 0xbb, 0x6d, 0x9e, 0x7d, 0x78, 0xeb,
+ 0xaf, 0x46, 0xf6, 0xa7,
+};
+static const unsigned char kat400_persstr[] = {
+ 0x98, 0xb3, 0xfa, 0xb2, 0xff, 0xe5, 0x47, 0xec, 0x1a, 0x41, 0x8e, 0xd9,
+ 0x8a, 0xe7, 0xac, 0x66, 0x9c, 0x07, 0x01, 0x17, 0x8b, 0xe6, 0x55, 0xa6,
+ 0xfa, 0xf9, 0x96, 0x2d, 0x80, 0xae, 0xe9, 0x51,
+};
+static const unsigned char kat400_addin0[] = {0};
+static const unsigned char kat400_addin1[] = {0};
+static const unsigned char kat400_retbits[] = {
+ 0xa9, 0xe6, 0x82, 0x0b, 0xf8, 0x3a, 0x8b, 0x29, 0x41, 0x46, 0xfc, 0xe2,
+ 0xd1, 0x94, 0x01, 0x9a, 0x99, 0x59, 0xcc, 0x58, 0x47, 0x29, 0xd6, 0x7d,
+ 0xc7, 0x17, 0x42, 0x39, 0x10, 0x60, 0xec, 0x6b, 0x24, 0xd6, 0x85, 0xe5,
+ 0x45, 0x80, 0x7b, 0x1c, 0xa9, 0xd8, 0xa2, 0x8b, 0x68, 0xe7, 0x6a, 0xf2,
+ 0x56, 0xd4, 0x35, 0xf6, 0xf8, 0x31, 0x63, 0x6c, 0x33, 0x2a, 0x7f, 0x13,
+ 0x80, 0x7b, 0x1f, 0x35,
+};
+static const struct drbg_kat_no_reseed kat400_t = {
+ 9, kat400_entropyin, kat400_nonce, kat400_persstr,
+ kat400_addin0, kat400_addin1, kat400_retbits
+};
+static const struct drbg_kat kat400 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat400_t
+};
+
+static const unsigned char kat401_entropyin[] = {
+ 0x6c, 0xfa, 0xaf, 0xb3, 0x1b, 0x1d, 0x6a, 0x6b, 0x9b, 0xed, 0x1d, 0xe9,
+ 0xa9, 0x93, 0xb7, 0x0f, 0xa1, 0x4d, 0xc6, 0x1f, 0xa1, 0x7a, 0xb1, 0xd0,
+};
+static const unsigned char kat401_nonce[] = {
+ 0xad, 0xd4, 0x61, 0x04, 0x8f, 0xf6, 0x97, 0x53, 0xf8, 0x87, 0xab, 0x87,
+ 0xb7, 0x4c, 0x25, 0xed,
+};
+static const unsigned char kat401_persstr[] = {
+ 0xe2, 0xde, 0xdf, 0xe6, 0xb7, 0x0f, 0xd4, 0x26, 0x34, 0x8b, 0x98, 0x38,
+ 0xb6, 0x3f, 0x01, 0xd5, 0x21, 0x18, 0x20, 0xbf, 0xba, 0x78, 0xa2, 0x19,
+ 0xa8, 0x8b, 0x9b, 0x67, 0xad, 0xbf, 0xa4, 0x52,
+};
+static const unsigned char kat401_addin0[] = {0};
+static const unsigned char kat401_addin1[] = {0};
+static const unsigned char kat401_retbits[] = {
+ 0xc6, 0x0f, 0xcf, 0x4d, 0x36, 0x2c, 0x92, 0x3b, 0xbb, 0x70, 0xda, 0x80,
+ 0x6c, 0x92, 0x65, 0x1b, 0x23, 0x9e, 0x32, 0x75, 0x2b, 0xf4, 0x37, 0x66,
+ 0x9a, 0x39, 0xfa, 0x5e, 0x24, 0xd8, 0xa3, 0x04, 0x66, 0x8b, 0xac, 0x92,
+ 0xba, 0x12, 0x8a, 0x8b, 0x7e, 0x02, 0xdf, 0x00, 0xba, 0x17, 0x8f, 0x76,
+ 0xde, 0x44, 0xb6, 0x56, 0xf3, 0x45, 0x1f, 0x21, 0x25, 0x0d, 0xe7, 0x78,
+ 0xe0, 0x40, 0x5f, 0x14,
+};
+static const struct drbg_kat_no_reseed kat401_t = {
+ 10, kat401_entropyin, kat401_nonce, kat401_persstr,
+ kat401_addin0, kat401_addin1, kat401_retbits
+};
+static const struct drbg_kat kat401 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat401_t
+};
+
+static const unsigned char kat402_entropyin[] = {
+ 0x90, 0x09, 0x14, 0x8d, 0xfc, 0x32, 0xc4, 0xcd, 0x2e, 0x67, 0x09, 0xc5,
+ 0x4a, 0x93, 0xf5, 0x7a, 0xa7, 0x5a, 0x93, 0x0a, 0x39, 0x5b, 0xf2, 0x01,
+};
+static const unsigned char kat402_nonce[] = {
+ 0xb2, 0x8d, 0xfc, 0x3c, 0x6b, 0x33, 0x9e, 0xb8, 0xbb, 0xaf, 0x29, 0xe5,
+ 0xf8, 0x19, 0x8b, 0x4e,
+};
+static const unsigned char kat402_persstr[] = {
+ 0xeb, 0xb2, 0xe3, 0x30, 0xa0, 0x5d, 0x1e, 0xaa, 0xfc, 0x51, 0x16, 0xe9,
+ 0x37, 0x62, 0x20, 0x73, 0x2c, 0xcf, 0x09, 0x1e, 0x1b, 0x0e, 0x40, 0x17,
+ 0xfa, 0xa9, 0x43, 0x46, 0xa8, 0x39, 0x45, 0xc6,
+};
+static const unsigned char kat402_addin0[] = {0};
+static const unsigned char kat402_addin1[] = {0};
+static const unsigned char kat402_retbits[] = {
+ 0x43, 0xc3, 0x1a, 0xc4, 0x9d, 0xe9, 0xf8, 0xe7, 0x74, 0xdf, 0xc8, 0xe4,
+ 0x37, 0xe4, 0x0a, 0x87, 0xe4, 0x25, 0x29, 0xe6, 0x25, 0xbd, 0xbd, 0x10,
+ 0xbf, 0x77, 0xbc, 0x0a, 0x81, 0x74, 0xfb, 0x9d, 0xd0, 0x8f, 0x6e, 0xdd,
+ 0x30, 0x8c, 0x6e, 0xeb, 0xa3, 0x17, 0x5b, 0xd3, 0x49, 0x6d, 0xa1, 0x14,
+ 0x36, 0xde, 0x61, 0x2a, 0x6d, 0x47, 0xf5, 0xd9, 0xe2, 0x63, 0x39, 0xeb,
+ 0xec, 0xda, 0x64, 0x9d,
+};
+static const struct drbg_kat_no_reseed kat402_t = {
+ 11, kat402_entropyin, kat402_nonce, kat402_persstr,
+ kat402_addin0, kat402_addin1, kat402_retbits
+};
+static const struct drbg_kat kat402 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat402_t
+};
+
+static const unsigned char kat403_entropyin[] = {
+ 0xf3, 0xf4, 0xe1, 0xab, 0xac, 0x55, 0x87, 0xf2, 0xa8, 0x40, 0x9b, 0x1a,
+ 0x22, 0x7f, 0x9c, 0x92, 0x41, 0x6f, 0x65, 0x67, 0x04, 0x95, 0x01, 0xdb,
+};
+static const unsigned char kat403_nonce[] = {
+ 0xc1, 0x97, 0x96, 0x37, 0xe6, 0xb4, 0xd0, 0x4b, 0xc9, 0x70, 0xd3, 0x7e,
+ 0x11, 0xcd, 0xeb, 0xb5,
+};
+static const unsigned char kat403_persstr[] = {
+ 0x3d, 0x49, 0x16, 0x31, 0xd7, 0x4d, 0x3d, 0x90, 0x8a, 0xc5, 0x8c, 0xc4,
+ 0x74, 0x81, 0xb5, 0xe0, 0x96, 0x4b, 0xb2, 0x19, 0x22, 0x06, 0x1c, 0xfe,
+ 0xbd, 0x83, 0x38, 0x20, 0xe9, 0x12, 0xa0, 0x0b,
+};
+static const unsigned char kat403_addin0[] = {0};
+static const unsigned char kat403_addin1[] = {0};
+static const unsigned char kat403_retbits[] = {
+ 0x90, 0xed, 0xdd, 0x43, 0x9e, 0xed, 0x53, 0x79, 0x9e, 0xa5, 0x74, 0xc9,
+ 0x23, 0x84, 0x73, 0xff, 0xf0, 0x30, 0x38, 0x1e, 0x1a, 0x48, 0x54, 0x5b,
+ 0xc0, 0x7b, 0xb2, 0xcc, 0x9b, 0xb2, 0xd0, 0xea, 0xf2, 0x3a, 0x23, 0xf0,
+ 0x09, 0x88, 0x1d, 0x1c, 0x24, 0x64, 0xe6, 0xb3, 0x9f, 0x02, 0x30, 0x5b,
+ 0x32, 0x14, 0xd8, 0x99, 0x32, 0xf8, 0xc2, 0x37, 0x96, 0x49, 0x82, 0xc9,
+ 0xa7, 0xad, 0xcb, 0xfb,
+};
+static const struct drbg_kat_no_reseed kat403_t = {
+ 12, kat403_entropyin, kat403_nonce, kat403_persstr,
+ kat403_addin0, kat403_addin1, kat403_retbits
+};
+static const struct drbg_kat kat403 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat403_t
+};
+
+static const unsigned char kat404_entropyin[] = {
+ 0xdc, 0x24, 0x65, 0x25, 0x7d, 0x55, 0x89, 0x89, 0xa3, 0x40, 0x26, 0x3f,
+ 0xaa, 0x86, 0xef, 0x3f, 0x98, 0xe8, 0xa9, 0xfb, 0x53, 0x98, 0x04, 0xa9,
+};
+static const unsigned char kat404_nonce[] = {
+ 0x1c, 0xa1, 0x60, 0x8e, 0xf5, 0xf2, 0x6b, 0xdf, 0xbb, 0xb1, 0xb5, 0x06,
+ 0xfd, 0x77, 0x24, 0x26,
+};
+static const unsigned char kat404_persstr[] = {
+ 0xdb, 0x9b, 0xa1, 0x82, 0x86, 0x42, 0x94, 0x65, 0xf7, 0x3b, 0x35, 0x73,
+ 0x9e, 0x6c, 0x98, 0x7e, 0x07, 0xc0, 0x39, 0x7d, 0xd6, 0x03, 0xe0, 0x36,
+ 0x85, 0x3c, 0x54, 0x6e, 0x49, 0x93, 0xfe, 0x89,
+};
+static const unsigned char kat404_addin0[] = {0};
+static const unsigned char kat404_addin1[] = {0};
+static const unsigned char kat404_retbits[] = {
+ 0xfd, 0x35, 0xff, 0xc4, 0x30, 0x51, 0x43, 0x57, 0x12, 0x37, 0x4a, 0xd9,
+ 0x03, 0xa4, 0x65, 0x5b, 0x36, 0xd3, 0x75, 0x4d, 0x78, 0x55, 0x1c, 0x3f,
+ 0x48, 0xd7, 0x04, 0x94, 0x74, 0x4e, 0xe2, 0xf3, 0x36, 0xbd, 0x19, 0xb7,
+ 0x80, 0xc8, 0xcb, 0x6e, 0x5d, 0xe4, 0xa6, 0x67, 0x11, 0x7d, 0x1f, 0xb6,
+ 0xb8, 0x1f, 0x03, 0xd3, 0x62, 0x0b, 0xb5, 0xbe, 0x18, 0x02, 0x15, 0x28,
+ 0x42, 0xc6, 0x97, 0x3e,
+};
+static const struct drbg_kat_no_reseed kat404_t = {
+ 13, kat404_entropyin, kat404_nonce, kat404_persstr,
+ kat404_addin0, kat404_addin1, kat404_retbits
+};
+static const struct drbg_kat kat404 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat404_t
+};
+
+static const unsigned char kat405_entropyin[] = {
+ 0x1b, 0xeb, 0xd5, 0xd8, 0x76, 0xe0, 0x94, 0x9d, 0x1d, 0x8d, 0xeb, 0x41,
+ 0x0d, 0x3a, 0x77, 0x9c, 0xed, 0x95, 0xe7, 0x0c, 0x0b, 0x4a, 0xd5, 0x31,
+};
+static const unsigned char kat405_nonce[] = {
+ 0x4c, 0x1d, 0xb0, 0x88, 0x71, 0x71, 0x96, 0x23, 0xea, 0xb2, 0xa2, 0x4f,
+ 0xcb, 0x8f, 0xca, 0x1c,
+};
+static const unsigned char kat405_persstr[] = {
+ 0xf7, 0x3f, 0x41, 0xc6, 0x14, 0x6f, 0x2c, 0x3d, 0x6a, 0xde, 0x95, 0x46,
+ 0x2a, 0x70, 0xf1, 0x23, 0xb9, 0x60, 0x4b, 0xea, 0x02, 0xfd, 0xca, 0x6b,
+ 0x11, 0x54, 0xc1, 0xf8, 0x6b, 0x89, 0x9b, 0x48,
+};
+static const unsigned char kat405_addin0[] = {0};
+static const unsigned char kat405_addin1[] = {0};
+static const unsigned char kat405_retbits[] = {
+ 0x4a, 0x0e, 0x35, 0xcf, 0x6a, 0x1e, 0x19, 0x9e, 0x56, 0xfc, 0x6b, 0x5f,
+ 0x37, 0x84, 0xb2, 0x8c, 0x1a, 0xc7, 0x0e, 0x91, 0xfd, 0x74, 0xd8, 0xa7,
+ 0xef, 0x45, 0xa1, 0x68, 0xb3, 0xaa, 0xd2, 0x8f, 0x32, 0x44, 0x11, 0xee,
+ 0x88, 0x6b, 0xb7, 0x39, 0xbb, 0x81, 0x4d, 0x5b, 0xa1, 0xdd, 0x79, 0x4a,
+ 0x0d, 0x37, 0x2e, 0xed, 0x5f, 0x4a, 0x97, 0x1a, 0x0c, 0x55, 0x42, 0xb9,
+ 0x47, 0xc4, 0xe9, 0x77,
+};
+static const struct drbg_kat_no_reseed kat405_t = {
+ 14, kat405_entropyin, kat405_nonce, kat405_persstr,
+ kat405_addin0, kat405_addin1, kat405_retbits
+};
+static const struct drbg_kat kat405 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat405_t
+};
+
+static const unsigned char kat406_entropyin[] = {
+ 0x05, 0xe7, 0x34, 0xb2, 0xb1, 0x28, 0x7f, 0x82, 0x73, 0x94, 0x22, 0x8f,
+ 0x81, 0x40, 0xda, 0xc0, 0x50, 0xad, 0xb8, 0x21, 0xbd, 0x37, 0xc4, 0xe2,
+};
+static const unsigned char kat406_nonce[] = {
+ 0xc5, 0x41, 0xec, 0xbe, 0x12, 0xd3, 0x00, 0xc1, 0x4a, 0x7c, 0x9f, 0xe9,
+ 0x0e, 0x38, 0xb1, 0xab,
+};
+static const unsigned char kat406_persstr[] = {
+ 0x01, 0x8b, 0x8e, 0x3d, 0x28, 0x5b, 0x9f, 0x7b, 0x92, 0x8c, 0xc8, 0x19,
+ 0xc5, 0x76, 0xfa, 0x21, 0x69, 0x2c, 0x52, 0xff, 0x71, 0x66, 0xda, 0xe7,
+ 0xb8, 0xaf, 0x78, 0x54, 0xcd, 0x3f, 0x8e, 0xf4,
+};
+static const unsigned char kat406_addin0[] = {
+ 0x1f, 0xd8, 0xd3, 0x7b, 0x2e, 0xa6, 0xb2, 0x0d, 0x74, 0x74, 0xd9, 0x5c,
+ 0xac, 0x58, 0x81, 0xa6, 0x9a, 0x12, 0x66, 0xba, 0xdc, 0x49, 0xc0, 0xda,
+ 0x8b, 0xe2, 0x95, 0xf3, 0xdf, 0x6a, 0xfb, 0x5e,
+};
+static const unsigned char kat406_addin1[] = {
+ 0x97, 0x26, 0x73, 0x24, 0x32, 0xe1, 0x56, 0x7e, 0x5d, 0x9e, 0x53, 0x55,
+ 0x4b, 0xcb, 0x88, 0x6f, 0x12, 0x9c, 0x80, 0x07, 0xda, 0x9e, 0x68, 0xb3,
+ 0x25, 0xbf, 0x16, 0xab, 0x74, 0x0f, 0x54, 0x0e,
+};
+static const unsigned char kat406_retbits[] = {
+ 0x3c, 0xc1, 0xec, 0x09, 0x29, 0x23, 0xa2, 0xba, 0x7f, 0xca, 0x0d, 0xbf,
+ 0x54, 0x3c, 0xce, 0xb9, 0xb7, 0x61, 0xc6, 0x1c, 0xad, 0xd0, 0x23, 0x35,
+ 0xdf, 0x36, 0x1b, 0xc4, 0x25, 0x34, 0xc9, 0xb0, 0x13, 0x73, 0xc8, 0xe5,
+ 0x13, 0xb0, 0x69, 0xef, 0x77, 0xdd, 0x0f, 0xf8, 0xe4, 0x62, 0x3e, 0xcf,
+ 0xd1, 0x2f, 0x29, 0x0a, 0x28, 0x45, 0xb8, 0xe7, 0xa1, 0xf2, 0xeb, 0x97,
+ 0x54, 0x7a, 0x16, 0xcc,
+};
+static const struct drbg_kat_no_reseed kat406_t = {
+ 0, kat406_entropyin, kat406_nonce, kat406_persstr,
+ kat406_addin0, kat406_addin1, kat406_retbits
+};
+static const struct drbg_kat kat406 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat406_t
+};
+
+static const unsigned char kat407_entropyin[] = {
+ 0x0a, 0x07, 0xb4, 0x89, 0x3a, 0xdc, 0x1d, 0x05, 0xf2, 0xe6, 0xf4, 0x61,
+ 0xa7, 0x17, 0xc3, 0xb4, 0xed, 0x12, 0xf9, 0xdc, 0x6a, 0xb1, 0xee, 0xc0,
+};
+static const unsigned char kat407_nonce[] = {
+ 0x90, 0x0a, 0xda, 0xad, 0xf9, 0x0e, 0xf5, 0x85, 0x67, 0x84, 0xea, 0x86,
+ 0x05, 0x7b, 0x57, 0x14,
+};
+static const unsigned char kat407_persstr[] = {
+ 0x12, 0x1e, 0x2e, 0xad, 0x8d, 0xa5, 0xb5, 0xcb, 0xc8, 0x40, 0x85, 0x6c,
+ 0x13, 0x6e, 0x94, 0x58, 0xe6, 0x5b, 0x53, 0x6a, 0x51, 0x31, 0x01, 0x5e,
+ 0x8e, 0xf4, 0xeb, 0x16, 0x7a, 0xa1, 0xf9, 0x64,
+};
+static const unsigned char kat407_addin0[] = {
+ 0x4b, 0x79, 0x78, 0x58, 0x37, 0x73, 0x29, 0xb1, 0x9a, 0x69, 0x4a, 0x32,
+ 0x0d, 0xec, 0xa0, 0x92, 0x69, 0xbc, 0xee, 0x49, 0x61, 0x1f, 0x7e, 0xd6,
+ 0xf4, 0x0e, 0xb9, 0x45, 0x99, 0xf4, 0x20, 0xb6,
+};
+static const unsigned char kat407_addin1[] = {
+ 0xfb, 0x4e, 0xb2, 0x1d, 0x67, 0xcb, 0xbe, 0x06, 0xb9, 0x96, 0xcf, 0x80,
+ 0xca, 0xb0, 0xcb, 0xbd, 0x61, 0xe9, 0xcf, 0x35, 0x80, 0x48, 0x77, 0x8e,
+ 0xbc, 0x50, 0x52, 0x0e, 0x5f, 0xb0, 0x1b, 0xb2,
+};
+static const unsigned char kat407_retbits[] = {
+ 0xfc, 0xf3, 0xaa, 0x35, 0xd1, 0x4d, 0x2b, 0xf7, 0xfc, 0xc6, 0xb4, 0x64,
+ 0x60, 0xb5, 0x0d, 0x6b, 0xc9, 0xee, 0xb7, 0xb1, 0x17, 0xae, 0xef, 0xf4,
+ 0x55, 0x02, 0x2d, 0xa6, 0xeb, 0x32, 0xaa, 0x3b, 0x3e, 0x9b, 0xf7, 0xdb,
+ 0x05, 0xd2, 0x44, 0xa8, 0xa6, 0xbd, 0xbb, 0xee, 0x4a, 0x73, 0xa9, 0x6e,
+ 0x9b, 0x3a, 0xc8, 0xf1, 0x9a, 0xa6, 0x0a, 0xb1, 0x19, 0xf0, 0x0b, 0xca,
+ 0xcf, 0x61, 0xdd, 0x13,
+};
+static const struct drbg_kat_no_reseed kat407_t = {
+ 1, kat407_entropyin, kat407_nonce, kat407_persstr,
+ kat407_addin0, kat407_addin1, kat407_retbits
+};
+static const struct drbg_kat kat407 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat407_t
+};
+
+static const unsigned char kat408_entropyin[] = {
+ 0x81, 0x98, 0x28, 0xbb, 0xcb, 0xc1, 0xd9, 0x5b, 0x72, 0x9e, 0xa4, 0xbd,
+ 0xe2, 0x7c, 0x4a, 0x78, 0x7f, 0x49, 0xe1, 0x67, 0x0f, 0xf7, 0xa5, 0xa2,
+};
+static const unsigned char kat408_nonce[] = {
+ 0xf8, 0x8a, 0x9c, 0xe0, 0x8c, 0x10, 0x86, 0xa6, 0x5e, 0x49, 0x95, 0x80,
+ 0x18, 0x62, 0xac, 0xb5,
+};
+static const unsigned char kat408_persstr[] = {
+ 0x7c, 0x63, 0x19, 0xe4, 0x88, 0x82, 0x0f, 0xb9, 0xe0, 0x49, 0x7b, 0x0b,
+ 0x2d, 0xf4, 0xdd, 0x7d, 0x8e, 0x1b, 0xfb, 0x4c, 0x21, 0xea, 0xd3, 0xaf,
+ 0x74, 0x47, 0x1c, 0x4d, 0xba, 0x63, 0xf5, 0x97,
+};
+static const unsigned char kat408_addin0[] = {
+ 0x66, 0x4d, 0x25, 0x83, 0x2d, 0x57, 0x30, 0x2f, 0xe8, 0x75, 0xe6, 0xad,
+ 0xeb, 0xac, 0xfa, 0x82, 0x5f, 0xfe, 0xf3, 0x94, 0xf6, 0x08, 0x56, 0xbc,
+ 0x21, 0xf7, 0x62, 0x07, 0x4d, 0x34, 0x91, 0x7d,
+};
+static const unsigned char kat408_addin1[] = {
+ 0x2a, 0x6c, 0xfa, 0x71, 0x0e, 0xc9, 0x20, 0x2b, 0x30, 0xe2, 0x76, 0xe1,
+ 0x8d, 0xb6, 0x99, 0x9e, 0x24, 0x5b, 0x76, 0x89, 0xd3, 0xff, 0x9a, 0xfe,
+ 0x1a, 0x79, 0x62, 0x72, 0xce, 0x86, 0xfe, 0x4c,
+};
+static const unsigned char kat408_retbits[] = {
+ 0x58, 0x53, 0x4c, 0x9c, 0xaa, 0xae, 0xf5, 0x47, 0xcc, 0x5b, 0x6e, 0x60,
+ 0x2c, 0x09, 0xa5, 0x2b, 0x04, 0x8c, 0x96, 0xd1, 0xeb, 0x03, 0xc1, 0xa1,
+ 0x7d, 0x3d, 0x8d, 0xe2, 0xca, 0x86, 0xed, 0xf4, 0x0f, 0xac, 0xd9, 0x9a,
+ 0x06, 0xcf, 0x8d, 0x22, 0x54, 0xd3, 0xa0, 0x5c, 0xb8, 0x07, 0x1b, 0xf8,
+ 0x5d, 0x54, 0x14, 0x08, 0x28, 0x01, 0x94, 0x65, 0x0e, 0x5c, 0x77, 0x64,
+ 0x3b, 0xbc, 0xf8, 0xea,
+};
+static const struct drbg_kat_no_reseed kat408_t = {
+ 2, kat408_entropyin, kat408_nonce, kat408_persstr,
+ kat408_addin0, kat408_addin1, kat408_retbits
+};
+static const struct drbg_kat kat408 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat408_t
+};
+
+static const unsigned char kat409_entropyin[] = {
+ 0x0a, 0x48, 0x1e, 0xd8, 0xc9, 0x9e, 0x58, 0xd3, 0x34, 0x61, 0xe0, 0x36,
+ 0x00, 0xa7, 0xd6, 0x5e, 0x36, 0xea, 0xfa, 0xa3, 0x45, 0xca, 0x07, 0xa8,
+};
+static const unsigned char kat409_nonce[] = {
+ 0x10, 0x8b, 0x19, 0x04, 0x64, 0x8f, 0xae, 0x51, 0x6f, 0x4a, 0x1b, 0x60,
+ 0xfe, 0xae, 0x9e, 0x8f,
+};
+static const unsigned char kat409_persstr[] = {
+ 0xbf, 0xf9, 0x9f, 0xdd, 0xca, 0x34, 0xd0, 0x8d, 0x77, 0x08, 0x44, 0x00,
+ 0x30, 0xf9, 0xf4, 0xe7, 0x55, 0x5e, 0x5a, 0xeb, 0x61, 0x60, 0x15, 0xcf,
+ 0xc8, 0xe6, 0xb8, 0x59, 0x9d, 0xac, 0x91, 0x64,
+};
+static const unsigned char kat409_addin0[] = {
+ 0x9f, 0x8c, 0x91, 0x95, 0xe5, 0x2a, 0xb0, 0x51, 0xeb, 0x94, 0x8f, 0x02,
+ 0xe5, 0x97, 0x2c, 0x5b, 0xbd, 0xb1, 0xa9, 0x38, 0x4a, 0x27, 0x82, 0xe0,
+ 0xc8, 0x3a, 0x45, 0xd2, 0x0c, 0x6a, 0x8c, 0xf7,
+};
+static const unsigned char kat409_addin1[] = {
+ 0x88, 0x61, 0x60, 0xff, 0x53, 0x4f, 0x3a, 0x4e, 0xd9, 0x7f, 0x43, 0x38,
+ 0x67, 0x93, 0xde, 0xc5, 0xaa, 0xb8, 0x6a, 0xe7, 0x7b, 0x30, 0xd1, 0x37,
+ 0x3b, 0x55, 0x6e, 0x8b, 0xf9, 0x27, 0x72, 0xff,
+};
+static const unsigned char kat409_retbits[] = {
+ 0x41, 0xaa, 0x8a, 0x43, 0x48, 0x0e, 0xe9, 0x7c, 0x72, 0xe3, 0xe0, 0x14,
+ 0x35, 0xd4, 0xd3, 0x41, 0xf2, 0x31, 0xcd, 0xc5, 0x19, 0xe8, 0x82, 0x5e,
+ 0x0f, 0x98, 0xfb, 0x63, 0xd7, 0xe9, 0xf7, 0x1b, 0xc4, 0x2c, 0x90, 0xfc,
+ 0x20, 0x3f, 0xcc, 0x87, 0x5a, 0xb9, 0xe1, 0x1d, 0xbb, 0x40, 0xa3, 0xaa,
+ 0x9e, 0xaa, 0x6e, 0x1b, 0x01, 0xcf, 0xf5, 0xed, 0x72, 0x65, 0x70, 0x8a,
+ 0x21, 0x08, 0x29, 0x42,
+};
+static const struct drbg_kat_no_reseed kat409_t = {
+ 3, kat409_entropyin, kat409_nonce, kat409_persstr,
+ kat409_addin0, kat409_addin1, kat409_retbits
+};
+static const struct drbg_kat kat409 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat409_t
+};
+
+static const unsigned char kat410_entropyin[] = {
+ 0xe4, 0x1f, 0x2d, 0xe0, 0xaa, 0xc4, 0x0d, 0xd3, 0xae, 0x65, 0x17, 0xfe,
+ 0xf3, 0xc1, 0x9c, 0x20, 0x48, 0xb4, 0x31, 0xb7, 0x70, 0x4c, 0x60, 0x76,
+};
+static const unsigned char kat410_nonce[] = {
+ 0x14, 0xdc, 0x27, 0xf4, 0x6c, 0xc0, 0xaa, 0x6c, 0x35, 0xf0, 0xa6, 0x60,
+ 0x85, 0x0b, 0x1f, 0xef,
+};
+static const unsigned char kat410_persstr[] = {
+ 0xde, 0x24, 0xa9, 0xd5, 0x6b, 0x0c, 0x0b, 0xc4, 0xb3, 0xa9, 0x1c, 0x62,
+ 0x43, 0x24, 0xfc, 0x98, 0xb6, 0xf6, 0x60, 0xc3, 0x0a, 0xd9, 0xc2, 0x04,
+ 0xa7, 0xb0, 0x2f, 0xee, 0xf6, 0xbf, 0xf0, 0x3e,
+};
+static const unsigned char kat410_addin0[] = {
+ 0xa2, 0x44, 0xcb, 0x28, 0xa1, 0x30, 0xca, 0x53, 0x31, 0xfb, 0x24, 0x11,
+ 0x63, 0x4b, 0x80, 0x9d, 0x32, 0x40, 0x8e, 0xd7, 0x45, 0xb2, 0xe3, 0x8c,
+ 0x4b, 0x90, 0x1a, 0x95, 0x5e, 0x1e, 0x24, 0xc3,
+};
+static const unsigned char kat410_addin1[] = {
+ 0xeb, 0xf7, 0xf1, 0x87, 0xad, 0x03, 0xa3, 0x91, 0x33, 0x17, 0x5f, 0xf9,
+ 0x09, 0x6a, 0x04, 0xb7, 0x2e, 0xfb, 0x0f, 0xfb, 0x09, 0x9d, 0xbf, 0x16,
+ 0xc5, 0x3d, 0xfb, 0x6f, 0x61, 0x82, 0xe3, 0xbb,
+};
+static const unsigned char kat410_retbits[] = {
+ 0xa0, 0xe7, 0xad, 0xcc, 0x6a, 0x7e, 0x36, 0x65, 0x61, 0x21, 0x17, 0xcf,
+ 0xc1, 0x56, 0x20, 0xe5, 0x69, 0xad, 0xd3, 0x1c, 0x02, 0x9c, 0x1d, 0xc1,
+ 0xa7, 0x9f, 0x07, 0x21, 0x23, 0xfc, 0xc5, 0x42, 0xb3, 0x97, 0xa2, 0xe7,
+ 0x04, 0x4a, 0x98, 0x3d, 0xaf, 0xe3, 0x62, 0x80, 0x59, 0x85, 0xff, 0xc1,
+ 0x64, 0xff, 0x83, 0xc5, 0x68, 0x21, 0xa9, 0x2e, 0xcd, 0xa3, 0x31, 0x55,
+ 0x1a, 0xa7, 0xf7, 0xb9,
+};
+static const struct drbg_kat_no_reseed kat410_t = {
+ 4, kat410_entropyin, kat410_nonce, kat410_persstr,
+ kat410_addin0, kat410_addin1, kat410_retbits
+};
+static const struct drbg_kat kat410 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat410_t
+};
+
+static const unsigned char kat411_entropyin[] = {
+ 0x4b, 0x55, 0xf7, 0xfb, 0xed, 0x3b, 0xab, 0x6e, 0x29, 0xeb, 0xbb, 0xc5,
+ 0x76, 0x85, 0x3e, 0xac, 0x83, 0xc9, 0x3e, 0x02, 0xac, 0xd6, 0x44, 0x2d,
+};
+static const unsigned char kat411_nonce[] = {
+ 0x5e, 0x4c, 0xa3, 0xe9, 0xf8, 0x0a, 0x16, 0xf5, 0x78, 0xab, 0x7d, 0x63,
+ 0x30, 0x1a, 0x52, 0x8a,
+};
+static const unsigned char kat411_persstr[] = {
+ 0xf4, 0xd4, 0x11, 0x07, 0x0a, 0x57, 0xe6, 0x0a, 0x17, 0xa6, 0x63, 0xbd,
+ 0x78, 0xec, 0x27, 0x25, 0xb7, 0x80, 0xcc, 0xa2, 0x81, 0x47, 0x61, 0x29,
+ 0x51, 0x98, 0x8c, 0x15, 0x2f, 0x2e, 0x27, 0x9f,
+};
+static const unsigned char kat411_addin0[] = {
+ 0x94, 0x99, 0xe3, 0x50, 0x4d, 0x86, 0x38, 0x04, 0x28, 0x0e, 0x32, 0x72,
+ 0x08, 0x93, 0xb8, 0xe5, 0xe7, 0x3e, 0x39, 0x62, 0x59, 0x1e, 0xc6, 0xd8,
+ 0x34, 0xb4, 0x97, 0x42, 0x38, 0x90, 0xbe, 0xc6,
+};
+static const unsigned char kat411_addin1[] = {
+ 0x24, 0x88, 0xbf, 0x77, 0x3c, 0x15, 0x3d, 0x85, 0x4c, 0x2b, 0x72, 0xa0,
+ 0x21, 0x91, 0x57, 0x92, 0x64, 0xf7, 0x84, 0xc2, 0x9a, 0x50, 0x9e, 0x0c,
+ 0x4e, 0xc1, 0x97, 0x46, 0xca, 0x98, 0x48, 0xa0,
+};
+static const unsigned char kat411_retbits[] = {
+ 0x7d, 0x1a, 0xa3, 0x30, 0xdf, 0xcf, 0xac, 0x15, 0x7a, 0xf9, 0x1e, 0x67,
+ 0x52, 0x12, 0x9c, 0x3e, 0xc8, 0x02, 0x9b, 0xf8, 0xad, 0x54, 0x37, 0xc4,
+ 0xc0, 0x14, 0x40, 0x62, 0x48, 0x10, 0x2c, 0x0c, 0xe0, 0x95, 0xb6, 0xb2,
+ 0x7f, 0x25, 0x2a, 0xe3, 0x12, 0xf4, 0x9f, 0x11, 0x98, 0x5e, 0x67, 0x3d,
+ 0x9c, 0xc7, 0xb2, 0xac, 0x18, 0x1a, 0x30, 0x44, 0xdc, 0x0f, 0xb5, 0xe6,
+ 0xad, 0x7a, 0x1d, 0x6a,
+};
+static const struct drbg_kat_no_reseed kat411_t = {
+ 5, kat411_entropyin, kat411_nonce, kat411_persstr,
+ kat411_addin0, kat411_addin1, kat411_retbits
+};
+static const struct drbg_kat kat411 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat411_t
+};
+
+static const unsigned char kat412_entropyin[] = {
+ 0xd5, 0xac, 0x19, 0x5a, 0x47, 0x31, 0x4d, 0x9f, 0x10, 0x5b, 0x29, 0x18,
+ 0x7d, 0x28, 0x3c, 0x6d, 0x24, 0xc4, 0x4c, 0x70, 0x54, 0x00, 0x64, 0x1d,
+};
+static const unsigned char kat412_nonce[] = {
+ 0xea, 0x92, 0xb7, 0x3e, 0xfc, 0x54, 0x31, 0xad, 0xd6, 0xca, 0x2a, 0xe8,
+ 0x7d, 0x9b, 0xaa, 0x31,
+};
+static const unsigned char kat412_persstr[] = {
+ 0x6e, 0x2b, 0x85, 0x89, 0xc4, 0x90, 0xe0, 0x48, 0x41, 0x3f, 0x0d, 0x88,
+ 0xc5, 0x51, 0x04, 0x7e, 0x3d, 0xe7, 0xff, 0xc7, 0xcf, 0x43, 0xdc, 0x9d,
+ 0x35, 0xdb, 0x93, 0x27, 0xb3, 0x5a, 0xb9, 0x70,
+};
+static const unsigned char kat412_addin0[] = {
+ 0x51, 0xed, 0x74, 0xbd, 0xd7, 0x55, 0x85, 0xc2, 0x14, 0x5c, 0xc2, 0x38,
+ 0x48, 0x62, 0xf3, 0x4e, 0xd0, 0xb4, 0x0c, 0x30, 0x44, 0xac, 0x60, 0x48,
+ 0x7e, 0xe1, 0x0b, 0xef, 0xaf, 0xd5, 0xb1, 0x6b,
+};
+static const unsigned char kat412_addin1[] = {
+ 0x89, 0x4a, 0xa5, 0x0d, 0x05, 0xa4, 0x0e, 0x5b, 0xff, 0x48, 0x14, 0xe7,
+ 0x56, 0x86, 0xe3, 0x42, 0x00, 0x4a, 0x66, 0x0e, 0x2e, 0x4d, 0xc7, 0x36,
+ 0x3e, 0xd7, 0x28, 0x88, 0xb7, 0x92, 0xc0, 0xc5,
+};
+static const unsigned char kat412_retbits[] = {
+ 0xcc, 0x3c, 0xe3, 0x94, 0xcb, 0x02, 0x5b, 0xcf, 0xf4, 0x36, 0xe6, 0xa6,
+ 0xc2, 0xf8, 0x03, 0x76, 0x7e, 0xa8, 0xed, 0xff, 0x89, 0x05, 0xa2, 0x3b,
+ 0xe4, 0x23, 0x9e, 0x64, 0xc2, 0x82, 0x6e, 0x54, 0xbe, 0xe2, 0xea, 0xb1,
+ 0xb1, 0x4f, 0xe4, 0x4a, 0x68, 0x2d, 0x15, 0x13, 0xc4, 0x05, 0x3b, 0x2e,
+ 0x46, 0x99, 0xb1, 0x8a, 0xd1, 0xc3, 0xc2, 0x5e, 0xf1, 0xa5, 0xe4, 0x22,
+ 0x73, 0x0a, 0xca, 0xfd,
+};
+static const struct drbg_kat_no_reseed kat412_t = {
+ 6, kat412_entropyin, kat412_nonce, kat412_persstr,
+ kat412_addin0, kat412_addin1, kat412_retbits
+};
+static const struct drbg_kat kat412 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat412_t
+};
+
+static const unsigned char kat413_entropyin[] = {
+ 0x8b, 0x5d, 0xd1, 0xe8, 0x9f, 0xa9, 0x7c, 0x9d, 0x08, 0x4f, 0x27, 0x7e,
+ 0x2e, 0xc5, 0x83, 0xbb, 0x30, 0x5c, 0x6b, 0x4d, 0x07, 0x37, 0xd7, 0xcf,
+};
+static const unsigned char kat413_nonce[] = {
+ 0x15, 0xab, 0x99, 0xd1, 0x5e, 0xa1, 0x12, 0x81, 0xd0, 0xfd, 0xcf, 0xd7,
+ 0x44, 0xf9, 0x64, 0xd0,
+};
+static const unsigned char kat413_persstr[] = {
+ 0xc2, 0xbf, 0x9e, 0x13, 0xb3, 0xb7, 0x10, 0x94, 0xea, 0x1a, 0x84, 0xa4,
+ 0x36, 0xa0, 0xce, 0x25, 0xe5, 0x32, 0xc2, 0xa5, 0xd9, 0xe6, 0x23, 0x12,
+ 0xf9, 0x67, 0xf4, 0xfd, 0x06, 0x20, 0x4d, 0x13,
+};
+static const unsigned char kat413_addin0[] = {
+ 0xfe, 0x60, 0xba, 0x40, 0x6b, 0xf6, 0x37, 0x84, 0xa0, 0xf8, 0x01, 0x9c,
+ 0x8f, 0x62, 0xe5, 0x25, 0xf2, 0xb8, 0x44, 0x47, 0xb9, 0x7d, 0x85, 0x87,
+ 0xda, 0xcd, 0x67, 0xb6, 0x90, 0xb3, 0xd8, 0xa8,
+};
+static const unsigned char kat413_addin1[] = {
+ 0x49, 0x8d, 0xec, 0x11, 0xe7, 0xcd, 0x55, 0x6a, 0x12, 0x07, 0xdc, 0x37,
+ 0x9c, 0x03, 0x13, 0x8e, 0xf6, 0x80, 0xba, 0x56, 0x99, 0xe4, 0x68, 0x66,
+ 0xa3, 0x97, 0xf1, 0xf4, 0xb9, 0x10, 0xb2, 0xe2,
+};
+static const unsigned char kat413_retbits[] = {
+ 0xca, 0xd4, 0x22, 0x4e, 0x71, 0x77, 0xaf, 0xe9, 0xf6, 0x84, 0x96, 0xb7,
+ 0xde, 0x52, 0x37, 0x6d, 0x8e, 0x71, 0x80, 0x7b, 0x2b, 0x3a, 0xf4, 0xe9,
+ 0x7e, 0x81, 0x85, 0xf5, 0xbe, 0x91, 0x2f, 0x85, 0xd3, 0x3d, 0xda, 0x07,
+ 0xee, 0x48, 0x99, 0x3f, 0x22, 0x3e, 0x4b, 0xd9, 0x4d, 0x1a, 0x45, 0xea,
+ 0xa2, 0x74, 0x44, 0x8e, 0xa7, 0x39, 0x59, 0x86, 0x01, 0x63, 0x16, 0x94,
+ 0x39, 0xa2, 0x5a, 0xa6,
+};
+static const struct drbg_kat_no_reseed kat413_t = {
+ 7, kat413_entropyin, kat413_nonce, kat413_persstr,
+ kat413_addin0, kat413_addin1, kat413_retbits
+};
+static const struct drbg_kat kat413 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat413_t
+};
+
+static const unsigned char kat414_entropyin[] = {
+ 0x78, 0xd2, 0xe9, 0x21, 0x65, 0x6d, 0xb1, 0x69, 0x8d, 0xcf, 0xd2, 0xbb,
+ 0x94, 0xe9, 0x48, 0xac, 0xb7, 0x59, 0xff, 0xd2, 0xc4, 0xfb, 0xa7, 0x28,
+};
+static const unsigned char kat414_nonce[] = {
+ 0x31, 0xe2, 0x0d, 0xc0, 0xf8, 0x61, 0x42, 0x7e, 0x78, 0xe0, 0xc4, 0xa3,
+ 0x06, 0x59, 0x64, 0xcf,
+};
+static const unsigned char kat414_persstr[] = {
+ 0x70, 0xa5, 0xbe, 0x6e, 0xb4, 0xd2, 0xde, 0xbd, 0x0b, 0xce, 0x7f, 0x02,
+ 0x7c, 0x08, 0xa6, 0x1e, 0x66, 0x5a, 0x0c, 0xfd, 0xe3, 0xe1, 0xb9, 0xa8,
+ 0x6d, 0xb8, 0x5a, 0x92, 0x30, 0x47, 0xcf, 0xb5,
+};
+static const unsigned char kat414_addin0[] = {
+ 0x0a, 0x20, 0x43, 0x22, 0xf4, 0x4c, 0x4e, 0x83, 0x23, 0x37, 0xf7, 0x40,
+ 0xa7, 0xcc, 0xba, 0xbc, 0xef, 0xda, 0x2f, 0xfa, 0x21, 0xc5, 0x11, 0x11,
+ 0x2a, 0xd5, 0x23, 0x0c, 0x41, 0x10, 0x9f, 0x67,
+};
+static const unsigned char kat414_addin1[] = {
+ 0x33, 0x02, 0xb3, 0x31, 0x5f, 0x17, 0x64, 0x27, 0xe9, 0x12, 0x2a, 0x08,
+ 0xc9, 0x82, 0xd6, 0xa9, 0x33, 0x5c, 0xe9, 0x6f, 0x0d, 0x24, 0x26, 0xbc,
+ 0xe3, 0x82, 0x01, 0x7d, 0xf2, 0xfb, 0x9e, 0x9f,
+};
+static const unsigned char kat414_retbits[] = {
+ 0xef, 0x96, 0xc7, 0x56, 0x99, 0xd6, 0x8e, 0xc0, 0x5e, 0xde, 0x3a, 0xc6,
+ 0x20, 0x54, 0xd8, 0xae, 0xc3, 0xfa, 0xb4, 0x4c, 0x06, 0x4a, 0xd6, 0x33,
+ 0x83, 0x73, 0x7a, 0x83, 0xe9, 0xc6, 0xd8, 0xaf, 0x3d, 0x61, 0xf2, 0xb8,
+ 0xd0, 0x81, 0xf2, 0xf8, 0x2f, 0x23, 0xbf, 0x3a, 0x82, 0x97, 0x60, 0x90,
+ 0x61, 0x81, 0x65, 0x98, 0xc5, 0xbf, 0x55, 0x01, 0x3a, 0xb4, 0xd2, 0x26,
+ 0x36, 0x0a, 0x7c, 0x2b,
+};
+static const struct drbg_kat_no_reseed kat414_t = {
+ 8, kat414_entropyin, kat414_nonce, kat414_persstr,
+ kat414_addin0, kat414_addin1, kat414_retbits
+};
+static const struct drbg_kat kat414 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat414_t
+};
+
+static const unsigned char kat415_entropyin[] = {
+ 0xa5, 0x60, 0x03, 0x7e, 0x96, 0xbb, 0x5b, 0x76, 0xbc, 0xc8, 0x1e, 0xe6,
+ 0xfd, 0x12, 0x7e, 0x25, 0xba, 0xc8, 0x9d, 0xdc, 0xa7, 0x1d, 0xd9, 0x41,
+};
+static const unsigned char kat415_nonce[] = {
+ 0x6a, 0x1a, 0xe2, 0x07, 0x02, 0xa1, 0xf2, 0x9d, 0xb6, 0x58, 0xe5, 0xf2,
+ 0xb2, 0x47, 0x6e, 0xfc,
+};
+static const unsigned char kat415_persstr[] = {
+ 0xdb, 0xc9, 0x3a, 0x3b, 0x72, 0xaa, 0x98, 0x90, 0xc0, 0x56, 0x76, 0x08,
+ 0x67, 0xa9, 0xd2, 0x56, 0xcd, 0x13, 0xee, 0x44, 0xdd, 0x76, 0x84, 0x47,
+ 0xd0, 0x68, 0x39, 0xd7, 0xc2, 0xfd, 0xf5, 0x94,
+};
+static const unsigned char kat415_addin0[] = {
+ 0x51, 0xd1, 0xf7, 0xaa, 0x0d, 0x55, 0x10, 0x79, 0xdb, 0x5c, 0x94, 0x2f,
+ 0xb9, 0x19, 0x9b, 0x11, 0xdd, 0xc1, 0x59, 0x73, 0x7f, 0xdc, 0xf8, 0x26,
+ 0x29, 0xe0, 0xe8, 0x2b, 0xc1, 0xed, 0x28, 0xe6,
+};
+static const unsigned char kat415_addin1[] = {
+ 0x73, 0x38, 0x86, 0xbf, 0xed, 0x59, 0xcf, 0xac, 0x56, 0x23, 0xe4, 0x1a,
+ 0x81, 0x89, 0x78, 0x0a, 0x3b, 0x24, 0x8e, 0xfd, 0x7b, 0xd4, 0xe1, 0x44,
+ 0x94, 0xec, 0x7d, 0x79, 0x3d, 0xb0, 0x62, 0x85,
+};
+static const unsigned char kat415_retbits[] = {
+ 0x0d, 0xb2, 0x95, 0x41, 0x85, 0x35, 0xa4, 0xbe, 0x1a, 0x05, 0x7e, 0xfb,
+ 0x85, 0xdc, 0x48, 0xd2, 0x9c, 0x73, 0xb7, 0x9f, 0x11, 0x3e, 0x9e, 0x4c,
+ 0x62, 0x4f, 0x42, 0x16, 0xa9, 0x2d, 0x8d, 0xf7, 0xb2, 0x2c, 0xf3, 0x8d,
+ 0xa8, 0x15, 0x63, 0x46, 0xfb, 0x5c, 0x01, 0x53, 0x71, 0x16, 0x56, 0xba,
+ 0x08, 0x20, 0x8a, 0x33, 0x39, 0x9c, 0x9a, 0x2d, 0x45, 0xe7, 0x6c, 0x09,
+ 0x50, 0x0d, 0x59, 0xe9,
+};
+static const struct drbg_kat_no_reseed kat415_t = {
+ 9, kat415_entropyin, kat415_nonce, kat415_persstr,
+ kat415_addin0, kat415_addin1, kat415_retbits
+};
+static const struct drbg_kat kat415 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat415_t
+};
+
+static const unsigned char kat416_entropyin[] = {
+ 0x9d, 0x57, 0x3e, 0xc9, 0x20, 0x5c, 0x17, 0x65, 0xd0, 0x04, 0x83, 0xff,
+ 0xa3, 0x6d, 0xea, 0x87, 0x38, 0x92, 0x88, 0xe5, 0x54, 0xf8, 0x43, 0x5b,
+};
+static const unsigned char kat416_nonce[] = {
+ 0x73, 0xa1, 0x75, 0xb5, 0xab, 0xa2, 0xb3, 0x65, 0xd4, 0x54, 0xe0, 0xe8,
+ 0x91, 0xb5, 0x4c, 0x48,
+};
+static const unsigned char kat416_persstr[] = {
+ 0x35, 0xdc, 0xa1, 0x49, 0xa7, 0x9b, 0x6e, 0x45, 0xe3, 0xf1, 0xdd, 0x16,
+ 0xb5, 0xc5, 0x55, 0xe8, 0x9f, 0x1b, 0x1c, 0xe3, 0x5d, 0x50, 0xcf, 0x3f,
+ 0x9f, 0xc0, 0x06, 0x26, 0x5d, 0x46, 0x4a, 0xc2,
+};
+static const unsigned char kat416_addin0[] = {
+ 0xf6, 0xcd, 0x2e, 0x99, 0x70, 0x50, 0x15, 0x87, 0x11, 0x26, 0x7d, 0xbf,
+ 0x2f, 0xd3, 0xdd, 0x4d, 0xe3, 0x37, 0xc4, 0xce, 0x1a, 0x13, 0x01, 0x41,
+ 0xc9, 0x4c, 0x02, 0xa8, 0xa6, 0x1a, 0x29, 0xc5,
+};
+static const unsigned char kat416_addin1[] = {
+ 0x45, 0x41, 0xd1, 0x9c, 0x8e, 0x93, 0x03, 0x4e, 0x61, 0xcf, 0x42, 0x65,
+ 0xab, 0x80, 0xf4, 0x1f, 0x95, 0x45, 0x23, 0xef, 0x58, 0x9c, 0xd0, 0x15,
+ 0x45, 0x5d, 0x4e, 0x69, 0x91, 0x9b, 0xa0, 0xfd,
+};
+static const unsigned char kat416_retbits[] = {
+ 0xcc, 0x14, 0x02, 0x9c, 0xac, 0x4f, 0x41, 0x79, 0xd2, 0x05, 0x61, 0xa8,
+ 0x9d, 0xef, 0xf9, 0x94, 0xb1, 0x32, 0xf7, 0x63, 0x21, 0x2f, 0x28, 0xda,
+ 0x1c, 0x4b, 0xbc, 0xac, 0x38, 0x68, 0xbd, 0xe0, 0xa7, 0x66, 0xac, 0xd1,
+ 0x00, 0xb0, 0xea, 0xdd, 0x7f, 0x4c, 0x47, 0xe4, 0x2a, 0x4d, 0x68, 0x2b,
+ 0xf1, 0xce, 0xec, 0xf6, 0x21, 0xb4, 0xbd, 0x5a, 0xaa, 0xb6, 0x8e, 0x04,
+ 0x6c, 0xa5, 0xd7, 0x4b,
+};
+static const struct drbg_kat_no_reseed kat416_t = {
+ 10, kat416_entropyin, kat416_nonce, kat416_persstr,
+ kat416_addin0, kat416_addin1, kat416_retbits
+};
+static const struct drbg_kat kat416 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat416_t
+};
+
+static const unsigned char kat417_entropyin[] = {
+ 0xb8, 0x1a, 0xc1, 0x61, 0xf0, 0x41, 0x97, 0x73, 0x3b, 0xd1, 0xbb, 0xaf,
+ 0x9e, 0xda, 0x79, 0xee, 0x51, 0xa8, 0x61, 0xf8, 0x0b, 0xd8, 0xc1, 0x2d,
+};
+static const unsigned char kat417_nonce[] = {
+ 0x5c, 0x9e, 0x5f, 0xcf, 0x06, 0x2d, 0xe1, 0x14, 0x52, 0x3f, 0x55, 0x4b,
+ 0x64, 0xc9, 0x35, 0xeb,
+};
+static const unsigned char kat417_persstr[] = {
+ 0x6f, 0xb5, 0xf7, 0x5a, 0x56, 0x31, 0x93, 0x08, 0x4e, 0x96, 0xed, 0x39,
+ 0x4e, 0x69, 0x61, 0x81, 0x88, 0x5b, 0xb2, 0xbc, 0x7b, 0x63, 0x56, 0x22,
+ 0x66, 0xdc, 0x4b, 0x97, 0x99, 0x9d, 0x25, 0xd8,
+};
+static const unsigned char kat417_addin0[] = {
+ 0xfd, 0x53, 0xb9, 0x23, 0x44, 0x4f, 0x97, 0x58, 0x6b, 0xec, 0x15, 0x50,
+ 0xa7, 0x4f, 0x36, 0x6c, 0xa9, 0x28, 0xbf, 0xb7, 0xab, 0xf6, 0xd1, 0xcf,
+ 0xe2, 0x44, 0xc2, 0x5b, 0x3a, 0xd9, 0x5f, 0xb7,
+};
+static const unsigned char kat417_addin1[] = {
+ 0xaf, 0x46, 0xc2, 0x6d, 0xb8, 0x46, 0xbf, 0x6e, 0x9e, 0x82, 0xb0, 0xe8,
+ 0x68, 0x2d, 0x0b, 0x4e, 0xe8, 0x72, 0x8c, 0x76, 0xb5, 0x26, 0x48, 0xe3,
+ 0xfc, 0xca, 0x0d, 0xa8, 0x82, 0x22, 0xe5, 0xe7,
+};
+static const unsigned char kat417_retbits[] = {
+ 0xc6, 0x62, 0x0e, 0x78, 0x0d, 0x72, 0x3d, 0xb4, 0x54, 0xea, 0xc8, 0x25,
+ 0xd1, 0x21, 0x81, 0x4b, 0xaa, 0x55, 0xf2, 0x1a, 0x9a, 0xe8, 0xae, 0x59,
+ 0x7c, 0xd0, 0x27, 0xc5, 0xcb, 0x13, 0xdc, 0x40, 0x72, 0xaa, 0xec, 0xbc,
+ 0xb4, 0x78, 0xdd, 0xca, 0x61, 0x22, 0x18, 0x6d, 0xd4, 0x7f, 0x90, 0x43,
+ 0xd2, 0x82, 0x8b, 0x5a, 0xf8, 0x5d, 0x01, 0x1b, 0xcf, 0xb9, 0x9d, 0x58,
+ 0x8b, 0x0c, 0x7b, 0xcd,
+};
+static const struct drbg_kat_no_reseed kat417_t = {
+ 11, kat417_entropyin, kat417_nonce, kat417_persstr,
+ kat417_addin0, kat417_addin1, kat417_retbits
+};
+static const struct drbg_kat kat417 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat417_t
+};
+
+static const unsigned char kat418_entropyin[] = {
+ 0x39, 0xdf, 0x42, 0x18, 0xbf, 0xf3, 0x1d, 0xd0, 0x10, 0x85, 0x96, 0x9a,
+ 0xb9, 0xf4, 0x81, 0x88, 0xb0, 0x11, 0x2e, 0xef, 0x75, 0x9e, 0xbc, 0x4e,
+};
+static const unsigned char kat418_nonce[] = {
+ 0x3e, 0x34, 0x41, 0xc2, 0x96, 0x66, 0xa5, 0xbd, 0x31, 0x37, 0xa3, 0x0c,
+ 0x6d, 0x05, 0x05, 0x3e,
+};
+static const unsigned char kat418_persstr[] = {
+ 0xd3, 0x82, 0xb3, 0xd6, 0x57, 0x73, 0xa9, 0xd6, 0x38, 0xfa, 0x83, 0x77,
+ 0xd9, 0xc0, 0x95, 0xa6, 0x7a, 0xb3, 0x36, 0xc5, 0x5d, 0xfd, 0xb8, 0x5d,
+ 0x45, 0x70, 0x31, 0x05, 0x85, 0x71, 0xc5, 0x72,
+};
+static const unsigned char kat418_addin0[] = {
+ 0xbd, 0xcd, 0xa7, 0xac, 0x59, 0x0a, 0x56, 0xc1, 0x50, 0xca, 0x85, 0x80,
+ 0x55, 0x29, 0x9c, 0x63, 0x86, 0x12, 0xfe, 0x04, 0x57, 0xc1, 0x8f, 0xbd,
+ 0x5a, 0x92, 0x04, 0x5f, 0x32, 0x58, 0x71, 0x95,
+};
+static const unsigned char kat418_addin1[] = {
+ 0xf4, 0x70, 0x51, 0xf2, 0xc2, 0x9a, 0xbc, 0xf5, 0x7a, 0xf9, 0x23, 0xf1,
+ 0xe0, 0x8c, 0x22, 0x85, 0x88, 0x06, 0xda, 0x9c, 0xfe, 0x14, 0x27, 0x57,
+ 0x21, 0x50, 0x20, 0xba, 0x67, 0x63, 0x80, 0x95,
+};
+static const unsigned char kat418_retbits[] = {
+ 0x1a, 0xa4, 0x1b, 0x4b, 0x31, 0x42, 0xd6, 0x11, 0xec, 0x62, 0x27, 0x62,
+ 0x42, 0xe7, 0x2a, 0x84, 0x0f, 0x82, 0xf5, 0x5e, 0x22, 0xa7, 0xc9, 0xd3,
+ 0xa3, 0x40, 0xa9, 0x3b, 0x43, 0x64, 0x8d, 0xa7, 0x5d, 0xd7, 0x3c, 0xae,
+ 0x3d, 0xc6, 0xa6, 0x0c, 0x9d, 0x59, 0x6c, 0x72, 0x3f, 0xf8, 0xd2, 0xf8,
+ 0xac, 0x6e, 0x6e, 0x23, 0x18, 0x32, 0xfd, 0x29, 0x7b, 0x54, 0xf3, 0xd8,
+ 0xd5, 0x89, 0xfe, 0xe8,
+};
+static const struct drbg_kat_no_reseed kat418_t = {
+ 12, kat418_entropyin, kat418_nonce, kat418_persstr,
+ kat418_addin0, kat418_addin1, kat418_retbits
+};
+static const struct drbg_kat kat418 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat418_t
+};
+
+static const unsigned char kat419_entropyin[] = {
+ 0x7d, 0x8c, 0x64, 0x8e, 0xf9, 0x6f, 0xbe, 0xc0, 0xf8, 0x17, 0x9a, 0xce,
+ 0xcc, 0x55, 0x56, 0x9d, 0x3b, 0xf4, 0x56, 0xce, 0x3b, 0xb2, 0xcf, 0x73,
+};
+static const unsigned char kat419_nonce[] = {
+ 0x78, 0x18, 0x93, 0xf4, 0xf3, 0xf3, 0x6b, 0x0d, 0x92, 0xd3, 0xb1, 0xac,
+ 0xe6, 0xd5, 0x05, 0xa3,
+};
+static const unsigned char kat419_persstr[] = {
+ 0x80, 0x0f, 0xef, 0x9c, 0xac, 0xf3, 0xf9, 0x1c, 0x04, 0x39, 0x6a, 0x52,
+ 0xc7, 0xd3, 0xee, 0x6c, 0x64, 0x78, 0x91, 0x16, 0x0e, 0x35, 0x01, 0x0a,
+ 0x4f, 0xd5, 0x02, 0xe5, 0x1d, 0x6d, 0xd6, 0x2c,
+};
+static const unsigned char kat419_addin0[] = {
+ 0x0f, 0x60, 0x97, 0x74, 0xdb, 0xb0, 0xbb, 0x50, 0x57, 0x12, 0x27, 0x38,
+ 0xd8, 0xf7, 0x66, 0x56, 0xb1, 0xb7, 0x05, 0xc4, 0xe4, 0x47, 0xb0, 0x0b,
+ 0x7d, 0xf8, 0x4c, 0xa2, 0x9f, 0xf8, 0x15, 0xe2,
+};
+static const unsigned char kat419_addin1[] = {
+ 0x9e, 0x7d, 0x9c, 0xed, 0x55, 0x0e, 0x42, 0x79, 0x90, 0xc3, 0xe2, 0x36,
+ 0xb7, 0x48, 0xb9, 0xd8, 0xb1, 0x90, 0xaa, 0xe4, 0x10, 0x70, 0x01, 0x5e,
+ 0xb2, 0x36, 0x97, 0x4b, 0x53, 0x4f, 0x0e, 0x25,
+};
+static const unsigned char kat419_retbits[] = {
+ 0x3b, 0xd0, 0x3c, 0x79, 0xf0, 0x36, 0x87, 0x99, 0x9b, 0x14, 0x7f, 0x39,
+ 0xc8, 0x79, 0xfc, 0x7c, 0x0d, 0x34, 0xd0, 0x04, 0x44, 0x5d, 0x75, 0xc7,
+ 0x15, 0x98, 0xff, 0xd5, 0x5e, 0x3f, 0xc5, 0x5c, 0x0e, 0x17, 0x33, 0x18,
+ 0x26, 0xac, 0x7d, 0xee, 0x4a, 0x8e, 0x6b, 0xa7, 0x98, 0x6f, 0x1d, 0x5c,
+ 0x84, 0x8c, 0x36, 0x36, 0x62, 0x8f, 0x4d, 0xbf, 0x9e, 0x67, 0xbe, 0xa5,
+ 0x72, 0x37, 0xd8, 0x86,
+};
+static const struct drbg_kat_no_reseed kat419_t = {
+ 13, kat419_entropyin, kat419_nonce, kat419_persstr,
+ kat419_addin0, kat419_addin1, kat419_retbits
+};
+static const struct drbg_kat kat419 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat419_t
+};
+
+static const unsigned char kat420_entropyin[] = {
+ 0x57, 0x45, 0xb2, 0x30, 0x14, 0x84, 0x54, 0xda, 0x9c, 0x4d, 0xd1, 0x2c,
+ 0xe1, 0xde, 0xdb, 0x5b, 0x14, 0x8f, 0x5b, 0xbe, 0x44, 0x56, 0x80, 0xc7,
+};
+static const unsigned char kat420_nonce[] = {
+ 0x73, 0x8a, 0xb9, 0x6e, 0x37, 0xad, 0x97, 0x1b, 0x7f, 0x5a, 0x38, 0x70,
+ 0x38, 0x3f, 0xc1, 0x72,
+};
+static const unsigned char kat420_persstr[] = {
+ 0x4d, 0xd3, 0x59, 0x3e, 0x0f, 0xa4, 0x94, 0xbf, 0xda, 0x36, 0x5b, 0x5f,
+ 0xc4, 0xe5, 0x48, 0x28, 0x01, 0xe5, 0xc3, 0x99, 0xa6, 0x5f, 0xc6, 0x98,
+ 0x62, 0x49, 0xbf, 0xd9, 0x4b, 0xe7, 0xb5, 0xa6,
+};
+static const unsigned char kat420_addin0[] = {
+ 0x80, 0xc1, 0xe2, 0xbb, 0x60, 0xd2, 0x2c, 0x8c, 0xe4, 0x4a, 0x2a, 0xbb,
+ 0x7a, 0x19, 0xdd, 0x60, 0xed, 0x6a, 0x38, 0x09, 0x8f, 0x2b, 0x09, 0x84,
+ 0x59, 0x71, 0x6a, 0xee, 0xf2, 0x47, 0x4e, 0xad,
+};
+static const unsigned char kat420_addin1[] = {
+ 0xc9, 0x6c, 0xf9, 0x96, 0xb2, 0xe9, 0xce, 0xb9, 0xa5, 0x78, 0x23, 0x80,
+ 0x0f, 0x89, 0x0c, 0x8c, 0xcf, 0xea, 0xfa, 0xc7, 0x9c, 0x96, 0x95, 0xca,
+ 0x21, 0xf0, 0xbb, 0x6f, 0x6f, 0xcf, 0x97, 0xa7,
+};
+static const unsigned char kat420_retbits[] = {
+ 0x8a, 0x7a, 0x6d, 0x38, 0x3f, 0x34, 0x4a, 0xd7, 0x17, 0xda, 0x7c, 0x04,
+ 0x4d, 0x94, 0x77, 0xe8, 0x14, 0x33, 0xe0, 0x4d, 0x3b, 0x9a, 0xe4, 0x33,
+ 0x4e, 0xce, 0x15, 0xe1, 0x0d, 0x7d, 0xfa, 0xa1, 0xca, 0xc7, 0x9d, 0xed,
+ 0x51, 0x7a, 0xb3, 0xe2, 0x4c, 0xf1, 0xd3, 0x1d, 0x34, 0x05, 0x90, 0x74,
+ 0x5f, 0xea, 0x2e, 0xef, 0x91, 0x53, 0x20, 0x4c, 0x12, 0x09, 0x43, 0x75,
+ 0xbb, 0x3c, 0x4e, 0xfa,
+};
+static const struct drbg_kat_no_reseed kat420_t = {
+ 14, kat420_entropyin, kat420_nonce, kat420_persstr,
+ kat420_addin0, kat420_addin1, kat420_retbits
+};
+static const struct drbg_kat kat420 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat420_t
+};
+
+static const unsigned char kat421_entropyin[] = {
+ 0xab, 0x85, 0x43, 0x81, 0x85, 0x45, 0x57, 0x3c, 0xa2, 0x17, 0xce, 0x4b,
+ 0x84, 0x4b, 0x9c, 0x39, 0x66, 0x70, 0x36, 0x20, 0x78, 0x4f, 0x1e, 0xec,
+};
+static const unsigned char kat421_nonce[] = {
+ 0x4d, 0x1a, 0xb7, 0x1f, 0x18, 0x24, 0x56, 0x0a, 0xf0, 0xde, 0xb8, 0x65,
+ 0xba, 0x4b, 0x66, 0x20,
+};
+static const unsigned char kat421_persstr[] = {0};
+static const unsigned char kat421_addin0[] = {0};
+static const unsigned char kat421_addin1[] = {0};
+static const unsigned char kat421_retbits[] = {
+ 0xcd, 0xd9, 0xab, 0xe9, 0x52, 0x6b, 0xc9, 0x18, 0x0c, 0xf6, 0x4b, 0xa2,
+ 0x67, 0x9d, 0x4c, 0x10, 0x1a, 0x5a, 0x8b, 0x52, 0x44, 0xf9, 0x32, 0x2a,
+ 0xff, 0x8a, 0x92, 0xed, 0x1d, 0x48, 0xa7, 0x7c, 0xe2, 0x0e, 0x39, 0xd1,
+ 0x91, 0x5e, 0x9a, 0x52, 0x75, 0xe8, 0xa1, 0xfe, 0x7a, 0x5a, 0xa8, 0xa2,
+ 0x8b, 0x06, 0x42, 0xda, 0xae, 0x9a, 0x70, 0xdc, 0x9e, 0xe4, 0xea, 0x76,
+ 0xac, 0x03, 0x82, 0x74,
+};
+static const struct drbg_kat_no_reseed kat421_t = {
+ 0, kat421_entropyin, kat421_nonce, kat421_persstr,
+ kat421_addin0, kat421_addin1, kat421_retbits
+};
+static const struct drbg_kat kat421 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat421_t
+};
+
+static const unsigned char kat422_entropyin[] = {
+ 0x20, 0xb0, 0x1e, 0x96, 0x04, 0xd2, 0x63, 0x26, 0xb8, 0x6c, 0x4b, 0xb2,
+ 0x2b, 0x6c, 0x8b, 0x97, 0x4e, 0x2a, 0x42, 0xf5, 0xcb, 0x92, 0x04, 0xef,
+};
+static const unsigned char kat422_nonce[] = {
+ 0x9f, 0x9d, 0x96, 0xd1, 0x25, 0x01, 0x07, 0x69, 0x45, 0x65, 0xf5, 0x0e,
+ 0xf0, 0x5e, 0xe2, 0xd9,
+};
+static const unsigned char kat422_persstr[] = {0};
+static const unsigned char kat422_addin0[] = {0};
+static const unsigned char kat422_addin1[] = {0};
+static const unsigned char kat422_retbits[] = {
+ 0x8c, 0x50, 0xe7, 0x36, 0x58, 0x38, 0x94, 0x89, 0x10, 0x32, 0xe5, 0xc3,
+ 0xa4, 0xf5, 0x09, 0x85, 0x44, 0x63, 0x68, 0x7c, 0xd1, 0xa4, 0xd1, 0x0b,
+ 0x77, 0x76, 0x0b, 0xbb, 0xea, 0xc8, 0x3b, 0xc7, 0xd9, 0xb6, 0x00, 0xaa,
+ 0x2f, 0xd3, 0xb1, 0xc2, 0x42, 0x10, 0xba, 0x25, 0xe2, 0x16, 0xec, 0x40,
+ 0x19, 0xaa, 0x7f, 0x75, 0xb7, 0x4d, 0x50, 0x6b, 0xa0, 0x91, 0x3f, 0xaa,
+ 0xab, 0xd0, 0x11, 0xbb,
+};
+static const struct drbg_kat_no_reseed kat422_t = {
+ 1, kat422_entropyin, kat422_nonce, kat422_persstr,
+ kat422_addin0, kat422_addin1, kat422_retbits
+};
+static const struct drbg_kat kat422 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat422_t
+};
+
+static const unsigned char kat423_entropyin[] = {
+ 0xd3, 0xed, 0x0d, 0x0b, 0xb5, 0x00, 0xf7, 0x35, 0xba, 0x08, 0x96, 0xc5,
+ 0x1f, 0x72, 0x34, 0xd5, 0x7f, 0x32, 0x98, 0xab, 0x72, 0x71, 0xfb, 0x8c,
+};
+static const unsigned char kat423_nonce[] = {
+ 0x33, 0x6d, 0xcd, 0x6b, 0xfb, 0x58, 0xea, 0x09, 0x3b, 0x92, 0x3e, 0xeb,
+ 0xc8, 0x44, 0xec, 0x64,
+};
+static const unsigned char kat423_persstr[] = {0};
+static const unsigned char kat423_addin0[] = {0};
+static const unsigned char kat423_addin1[] = {0};
+static const unsigned char kat423_retbits[] = {
+ 0xe7, 0xd9, 0xc7, 0x98, 0x11, 0x5e, 0xc4, 0x2e, 0x0a, 0xf0, 0x3e, 0x91,
+ 0xd8, 0x9d, 0x66, 0x32, 0x31, 0xdf, 0xb8, 0xdb, 0x11, 0x87, 0xe4, 0x37,
+ 0x17, 0x89, 0x9e, 0x1f, 0x80, 0x9f, 0x86, 0xfc, 0x0d, 0x59, 0x85, 0x70,
+ 0x98, 0x21, 0xed, 0xb8, 0xf6, 0x05, 0x45, 0xbf, 0x92, 0x2a, 0x82, 0x8e,
+ 0x8a, 0xc9, 0xc5, 0xba, 0x36, 0x23, 0xc2, 0xcf, 0x81, 0x67, 0x1e, 0xc3,
+ 0x36, 0x77, 0xbf, 0xdd,
+};
+static const struct drbg_kat_no_reseed kat423_t = {
+ 2, kat423_entropyin, kat423_nonce, kat423_persstr,
+ kat423_addin0, kat423_addin1, kat423_retbits
+};
+static const struct drbg_kat kat423 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat423_t
+};
+
+static const unsigned char kat424_entropyin[] = {
+ 0xfb, 0xf3, 0xc2, 0x67, 0x26, 0x4f, 0x54, 0xe4, 0x56, 0xcc, 0x56, 0xd1,
+ 0xe0, 0xae, 0x7f, 0xd2, 0xe5, 0x84, 0x74, 0x99, 0x71, 0x6e, 0x15, 0x80,
+};
+static const unsigned char kat424_nonce[] = {
+ 0xbf, 0x60, 0xb7, 0x1c, 0xb1, 0x3f, 0xfb, 0xf2, 0x8d, 0x20, 0xf9, 0x68,
+ 0x23, 0x0c, 0x17, 0x11,
+};
+static const unsigned char kat424_persstr[] = {0};
+static const unsigned char kat424_addin0[] = {0};
+static const unsigned char kat424_addin1[] = {0};
+static const unsigned char kat424_retbits[] = {
+ 0xec, 0x04, 0xec, 0x06, 0xaa, 0xe2, 0x0e, 0x31, 0x10, 0x1e, 0x8f, 0x3e,
+ 0x80, 0x57, 0x81, 0x3b, 0x15, 0xe0, 0x48, 0xc6, 0xbf, 0x05, 0x33, 0x2c,
+ 0x10, 0x82, 0x02, 0x4b, 0xde, 0x43, 0xbc, 0x69, 0xa3, 0xf9, 0x44, 0x4f,
+ 0x4a, 0xe9, 0x8e, 0xfb, 0xab, 0xf3, 0xd9, 0x86, 0x32, 0x7a, 0xf0, 0xc9,
+ 0x3b, 0x17, 0xf5, 0xd4, 0xe1, 0x3a, 0xf7, 0xa7, 0xe2, 0x19, 0xbc, 0x93,
+ 0xb6, 0xd2, 0x59, 0xc4,
+};
+static const struct drbg_kat_no_reseed kat424_t = {
+ 3, kat424_entropyin, kat424_nonce, kat424_persstr,
+ kat424_addin0, kat424_addin1, kat424_retbits
+};
+static const struct drbg_kat kat424 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat424_t
+};
+
+static const unsigned char kat425_entropyin[] = {
+ 0x3e, 0x19, 0x1f, 0xf8, 0x92, 0x64, 0x4d, 0x77, 0x03, 0x1b, 0x24, 0xbf,
+ 0x3d, 0xd6, 0xdd, 0x70, 0x4a, 0x97, 0x40, 0xd2, 0x55, 0x8c, 0xb9, 0xbe,
+};
+static const unsigned char kat425_nonce[] = {
+ 0x88, 0x89, 0x1f, 0xb2, 0x5e, 0x11, 0xb8, 0x6a, 0xba, 0x15, 0xc2, 0x46,
+ 0x08, 0xfc, 0x0e, 0xcf,
+};
+static const unsigned char kat425_persstr[] = {0};
+static const unsigned char kat425_addin0[] = {0};
+static const unsigned char kat425_addin1[] = {0};
+static const unsigned char kat425_retbits[] = {
+ 0x96, 0x71, 0x23, 0xe1, 0x3a, 0x69, 0xb8, 0xda, 0xb5, 0x2f, 0x08, 0x7b,
+ 0xf4, 0xa2, 0x1e, 0x43, 0x81, 0x20, 0xd1, 0xcf, 0x0e, 0x8e, 0xfc, 0x7c,
+ 0x12, 0x20, 0x73, 0x25, 0x99, 0xff, 0x67, 0x85, 0xe0, 0x2e, 0x0d, 0xf6,
+ 0xdf, 0x95, 0xc5, 0x0f, 0xb7, 0xcf, 0x6c, 0xf5, 0x7f, 0x13, 0xad, 0xae,
+ 0x64, 0xc2, 0xf8, 0xac, 0x00, 0xf5, 0x38, 0xeb, 0x4a, 0x7d, 0x24, 0x02,
+ 0x5e, 0x05, 0x01, 0xcb,
+};
+static const struct drbg_kat_no_reseed kat425_t = {
+ 4, kat425_entropyin, kat425_nonce, kat425_persstr,
+ kat425_addin0, kat425_addin1, kat425_retbits
+};
+static const struct drbg_kat kat425 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat425_t
+};
+
+static const unsigned char kat426_entropyin[] = {
+ 0xf3, 0xd7, 0xd0, 0x1a, 0x2c, 0xb2, 0x73, 0x1b, 0xb1, 0xd6, 0xe9, 0x9a,
+ 0x16, 0x74, 0x5f, 0x31, 0x9a, 0x61, 0x7e, 0xf9, 0x5d, 0xcb, 0x55, 0x0f,
+};
+static const unsigned char kat426_nonce[] = {
+ 0x8a, 0x4d, 0x89, 0x0e, 0x32, 0x30, 0xff, 0x9a, 0x1e, 0xea, 0x9a, 0x66,
+ 0x47, 0x9e, 0x92, 0x6f,
+};
+static const unsigned char kat426_persstr[] = {0};
+static const unsigned char kat426_addin0[] = {0};
+static const unsigned char kat426_addin1[] = {0};
+static const unsigned char kat426_retbits[] = {
+ 0x3c, 0xee, 0xf6, 0x0f, 0x8b, 0x23, 0xe5, 0x0e, 0x7d, 0x49, 0xa3, 0x0a,
+ 0xc2, 0xc4, 0xfd, 0x4d, 0xcc, 0xe3, 0xa1, 0x6f, 0x94, 0x33, 0x0a, 0xe7,
+ 0xff, 0xf7, 0xf2, 0x7f, 0x3d, 0x56, 0x9f, 0x25, 0x30, 0x0d, 0x59, 0xfe,
+ 0x87, 0xff, 0x7d, 0x75, 0xce, 0x90, 0xcd, 0x99, 0xe9, 0x4b, 0xa4, 0xf4,
+ 0xca, 0x30, 0xd7, 0x0c, 0x75, 0x97, 0x93, 0xbb, 0xcf, 0x7b, 0xce, 0x44,
+ 0xc2, 0x1d, 0xd8, 0x42,
+};
+static const struct drbg_kat_no_reseed kat426_t = {
+ 5, kat426_entropyin, kat426_nonce, kat426_persstr,
+ kat426_addin0, kat426_addin1, kat426_retbits
+};
+static const struct drbg_kat kat426 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat426_t
+};
+
+static const unsigned char kat427_entropyin[] = {
+ 0xd7, 0x69, 0x0e, 0x2a, 0xce, 0x3c, 0x17, 0x4e, 0x9d, 0x1c, 0x8c, 0xdc,
+ 0x1c, 0x9c, 0xda, 0x65, 0x83, 0x15, 0x26, 0x61, 0x11, 0x05, 0x19, 0x8b,
+};
+static const unsigned char kat427_nonce[] = {
+ 0xb0, 0xa1, 0x1c, 0xfb, 0x27, 0x44, 0xae, 0x7b, 0x0d, 0x67, 0x5e, 0xd0,
+ 0xbf, 0x26, 0x34, 0xa9,
+};
+static const unsigned char kat427_persstr[] = {0};
+static const unsigned char kat427_addin0[] = {0};
+static const unsigned char kat427_addin1[] = {0};
+static const unsigned char kat427_retbits[] = {
+ 0xd3, 0xea, 0x3d, 0xc6, 0x29, 0x6e, 0x36, 0x40, 0xf2, 0x2e, 0x75, 0xee,
+ 0x27, 0xe9, 0xf7, 0xf3, 0xc7, 0xff, 0x06, 0xf1, 0x79, 0x4d, 0x91, 0x5e,
+ 0x4f, 0xe9, 0xa4, 0x71, 0x43, 0x13, 0x17, 0xd0, 0x9d, 0x80, 0x17, 0x1b,
+ 0x1e, 0x7f, 0xd8, 0xfc, 0x57, 0xd8, 0xb8, 0xd1, 0xd1, 0xfa, 0x61, 0x16,
+ 0x2b, 0xbf, 0xc5, 0x67, 0x43, 0x83, 0x57, 0x42, 0xb4, 0xd5, 0x26, 0x66,
+ 0x6c, 0xf5, 0xcc, 0x03,
+};
+static const struct drbg_kat_no_reseed kat427_t = {
+ 6, kat427_entropyin, kat427_nonce, kat427_persstr,
+ kat427_addin0, kat427_addin1, kat427_retbits
+};
+static const struct drbg_kat kat427 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat427_t
+};
+
+static const unsigned char kat428_entropyin[] = {
+ 0x82, 0x51, 0xbb, 0x48, 0x80, 0x97, 0xe7, 0xd0, 0x7f, 0x41, 0xa7, 0x68,
+ 0xc1, 0xf3, 0x7c, 0x42, 0x11, 0x80, 0xc9, 0x8e, 0xf5, 0x9b, 0x73, 0x0b,
+};
+static const unsigned char kat428_nonce[] = {
+ 0xb7, 0x2b, 0xc5, 0x2b, 0x35, 0x8c, 0x79, 0x33, 0xa3, 0x16, 0xb1, 0x7c,
+ 0xbf, 0x07, 0xcc, 0x02,
+};
+static const unsigned char kat428_persstr[] = {0};
+static const unsigned char kat428_addin0[] = {0};
+static const unsigned char kat428_addin1[] = {0};
+static const unsigned char kat428_retbits[] = {
+ 0x31, 0xf3, 0x57, 0xab, 0xf5, 0xa2, 0xa0, 0x21, 0xee, 0x7e, 0x0e, 0xfb,
+ 0xad, 0x1f, 0xcb, 0x58, 0x11, 0x8e, 0x1b, 0xeb, 0xe4, 0x2e, 0xf6, 0x5a,
+ 0xc8, 0xcc, 0x93, 0xd6, 0xd0, 0xe5, 0x4f, 0x5a, 0xf7, 0xc4, 0x02, 0x2f,
+ 0x34, 0x3a, 0xd6, 0x3e, 0xfc, 0x94, 0xd9, 0x50, 0x35, 0x4b, 0x83, 0x8a,
+ 0x37, 0x8c, 0xc7, 0x7f, 0x20, 0xf7, 0x59, 0x70, 0x5b, 0xce, 0x43, 0xd8,
+ 0x73, 0x4e, 0x71, 0x7b,
+};
+static const struct drbg_kat_no_reseed kat428_t = {
+ 7, kat428_entropyin, kat428_nonce, kat428_persstr,
+ kat428_addin0, kat428_addin1, kat428_retbits
+};
+static const struct drbg_kat kat428 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat428_t
+};
+
+static const unsigned char kat429_entropyin[] = {
+ 0xab, 0xdb, 0x2e, 0xd2, 0xe0, 0x9a, 0xa0, 0x0d, 0x4c, 0x39, 0x4f, 0x80,
+ 0xfc, 0x0d, 0x5b, 0xf2, 0x13, 0xb4, 0x28, 0x3b, 0x76, 0x8b, 0x58, 0x12,
+};
+static const unsigned char kat429_nonce[] = {
+ 0x89, 0xe1, 0x9d, 0xb4, 0x2a, 0x96, 0x2a, 0x1d, 0x35, 0xd4, 0x9c, 0xb8,
+ 0xc6, 0x43, 0xb7, 0x13,
+};
+static const unsigned char kat429_persstr[] = {0};
+static const unsigned char kat429_addin0[] = {0};
+static const unsigned char kat429_addin1[] = {0};
+static const unsigned char kat429_retbits[] = {
+ 0x06, 0x7a, 0xe3, 0xea, 0x23, 0x04, 0x91, 0x71, 0x47, 0xcf, 0xf9, 0x76,
+ 0x86, 0x4d, 0x9b, 0x89, 0x4f, 0xb3, 0x8b, 0x1c, 0x8b, 0x0e, 0x57, 0x12,
+ 0x56, 0x47, 0x4a, 0x8e, 0x3c, 0x60, 0x20, 0x99, 0x6d, 0x16, 0x9c, 0x04,
+ 0x15, 0x45, 0x46, 0x64, 0x97, 0x6a, 0xdf, 0x95, 0x05, 0xc5, 0x3b, 0x5e,
+ 0x94, 0x6b, 0x4d, 0x0e, 0x65, 0x06, 0x67, 0x50, 0xcf, 0x0d, 0xe1, 0x41,
+ 0xe8, 0x46, 0x0b, 0x0b,
+};
+static const struct drbg_kat_no_reseed kat429_t = {
+ 8, kat429_entropyin, kat429_nonce, kat429_persstr,
+ kat429_addin0, kat429_addin1, kat429_retbits
+};
+static const struct drbg_kat kat429 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat429_t
+};
+
+static const unsigned char kat430_entropyin[] = {
+ 0x4a, 0x44, 0x10, 0x1f, 0x7a, 0x1f, 0x22, 0xb1, 0x7e, 0x7c, 0xcc, 0x91,
+ 0xe9, 0x78, 0x9f, 0xcc, 0x6f, 0x1b, 0x4d, 0xc3, 0x09, 0x72, 0x56, 0x7b,
+};
+static const unsigned char kat430_nonce[] = {
+ 0xcb, 0x9f, 0xc3, 0xd4, 0x52, 0xf6, 0xcb, 0xe5, 0xc9, 0x83, 0x1e, 0x65,
+ 0x37, 0x02, 0x7d, 0x94,
+};
+static const unsigned char kat430_persstr[] = {0};
+static const unsigned char kat430_addin0[] = {0};
+static const unsigned char kat430_addin1[] = {0};
+static const unsigned char kat430_retbits[] = {
+ 0xd9, 0x3b, 0x85, 0x86, 0xd6, 0x10, 0x91, 0xe3, 0xbb, 0xef, 0x18, 0x7e,
+ 0x5f, 0xed, 0x6a, 0x2b, 0x17, 0x00, 0xe9, 0x34, 0x10, 0x86, 0x6d, 0x10,
+ 0xbc, 0x02, 0xd3, 0xa6, 0x22, 0xa0, 0xa8, 0xb3, 0x8d, 0x8b, 0x08, 0x33,
+ 0x61, 0xad, 0x53, 0x19, 0x7b, 0xc1, 0x81, 0x17, 0x68, 0x20, 0x6e, 0x54,
+ 0x11, 0x15, 0xbf, 0x96, 0x12, 0x19, 0x65, 0xc1, 0x6d, 0x32, 0xe1, 0xc1,
+ 0x78, 0x0e, 0x4f, 0x24,
+};
+static const struct drbg_kat_no_reseed kat430_t = {
+ 9, kat430_entropyin, kat430_nonce, kat430_persstr,
+ kat430_addin0, kat430_addin1, kat430_retbits
+};
+static const struct drbg_kat kat430 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat430_t
+};
+
+static const unsigned char kat431_entropyin[] = {
+ 0xf5, 0xa4, 0x66, 0x2d, 0x9f, 0x51, 0x56, 0xd3, 0xbc, 0x28, 0x2a, 0x4b,
+ 0xf8, 0x2e, 0x5d, 0x97, 0x73, 0x1d, 0x36, 0xc0, 0x01, 0x79, 0xad, 0xab,
+};
+static const unsigned char kat431_nonce[] = {
+ 0x3e, 0x5e, 0x20, 0x38, 0x62, 0xbc, 0x32, 0x8e, 0x99, 0x87, 0xa7, 0x21,
+ 0x89, 0x7d, 0x47, 0xcd,
+};
+static const unsigned char kat431_persstr[] = {0};
+static const unsigned char kat431_addin0[] = {0};
+static const unsigned char kat431_addin1[] = {0};
+static const unsigned char kat431_retbits[] = {
+ 0x5e, 0x08, 0xab, 0x01, 0xb0, 0xa4, 0xca, 0x99, 0x2d, 0xa9, 0x96, 0xf1,
+ 0x64, 0x34, 0x1b, 0xe4, 0xe2, 0x01, 0xef, 0x0d, 0x1c, 0xd0, 0x49, 0xef,
+ 0xf6, 0x60, 0x59, 0x5a, 0x70, 0xce, 0xf1, 0x72, 0x31, 0x79, 0xcc, 0x58,
+ 0x8c, 0xa5, 0x2d, 0xe7, 0xef, 0xde, 0x20, 0x6a, 0x15, 0xed, 0x7a, 0xb4,
+ 0x14, 0xea, 0x7c, 0xfc, 0xf6, 0x71, 0xa0, 0x5c, 0xe9, 0x53, 0x43, 0x76,
+ 0x39, 0xa5, 0x8c, 0x1d,
+};
+static const struct drbg_kat_no_reseed kat431_t = {
+ 10, kat431_entropyin, kat431_nonce, kat431_persstr,
+ kat431_addin0, kat431_addin1, kat431_retbits
+};
+static const struct drbg_kat kat431 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat431_t
+};
+
+static const unsigned char kat432_entropyin[] = {
+ 0x10, 0xb6, 0xe2, 0x73, 0x3b, 0xa8, 0x56, 0x03, 0xdf, 0xd5, 0xd5, 0xaa,
+ 0x5a, 0x20, 0x67, 0x52, 0xa0, 0xf6, 0x07, 0xf9, 0xd4, 0xd3, 0xd7, 0x3c,
+};
+static const unsigned char kat432_nonce[] = {
+ 0xc0, 0xc2, 0x80, 0xae, 0x01, 0x4d, 0xf2, 0x00, 0xd0, 0x2c, 0xcd, 0x5b,
+ 0x79, 0xfd, 0x81, 0xb0,
+};
+static const unsigned char kat432_persstr[] = {0};
+static const unsigned char kat432_addin0[] = {0};
+static const unsigned char kat432_addin1[] = {0};
+static const unsigned char kat432_retbits[] = {
+ 0x9a, 0xf4, 0x6d, 0xc0, 0x1a, 0xa8, 0x60, 0xd9, 0xf1, 0xea, 0x68, 0xd3,
+ 0xef, 0x57, 0x33, 0x17, 0x50, 0x3e, 0x54, 0x65, 0x63, 0x63, 0xb5, 0x70,
+ 0xae, 0x26, 0x3b, 0x37, 0x60, 0xdc, 0x17, 0x49, 0x43, 0xe1, 0x81, 0x5f,
+ 0x97, 0x2c, 0xab, 0xbb, 0x42, 0xe6, 0x00, 0x90, 0x19, 0x29, 0x55, 0x3f,
+ 0x76, 0x73, 0x9e, 0x2d, 0x29, 0xf7, 0x7c, 0x5d, 0xd1, 0x13, 0x13, 0x8c,
+ 0xdf, 0x97, 0x11, 0x3e,
+};
+static const struct drbg_kat_no_reseed kat432_t = {
+ 11, kat432_entropyin, kat432_nonce, kat432_persstr,
+ kat432_addin0, kat432_addin1, kat432_retbits
+};
+static const struct drbg_kat kat432 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat432_t
+};
+
+static const unsigned char kat433_entropyin[] = {
+ 0x55, 0xfb, 0x21, 0x93, 0x9e, 0xbd, 0x06, 0xd2, 0x93, 0x2b, 0x6b, 0xce,
+ 0x9e, 0x02, 0x3e, 0x62, 0x35, 0x55, 0xf2, 0x7d, 0x73, 0xfa, 0xd8, 0x3a,
+};
+static const unsigned char kat433_nonce[] = {
+ 0x43, 0x65, 0x9f, 0x6b, 0xbb, 0x52, 0xf4, 0x16, 0xae, 0x94, 0x17, 0x90,
+ 0x8b, 0xeb, 0x7b, 0x2c,
+};
+static const unsigned char kat433_persstr[] = {0};
+static const unsigned char kat433_addin0[] = {0};
+static const unsigned char kat433_addin1[] = {0};
+static const unsigned char kat433_retbits[] = {
+ 0x41, 0xe8, 0x0b, 0x17, 0xf8, 0x52, 0xdb, 0xf0, 0xe3, 0x1e, 0xbe, 0x51,
+ 0x27, 0xf8, 0xc5, 0x28, 0xd0, 0x67, 0x44, 0x9a, 0xe6, 0xaa, 0x03, 0xc6,
+ 0x82, 0x5b, 0xb4, 0xc5, 0xdc, 0xc6, 0xad, 0x5a, 0x72, 0x84, 0x12, 0x13,
+ 0x30, 0x77, 0xc6, 0x8c, 0xba, 0x1e, 0x40, 0x33, 0xd7, 0x19, 0x85, 0x6b,
+ 0xbb, 0x30, 0xd0, 0x4b, 0x82, 0xd8, 0x40, 0xfb, 0x5a, 0x91, 0x05, 0x7c,
+ 0x43, 0xda, 0x8d, 0xa7,
+};
+static const struct drbg_kat_no_reseed kat433_t = {
+ 12, kat433_entropyin, kat433_nonce, kat433_persstr,
+ kat433_addin0, kat433_addin1, kat433_retbits
+};
+static const struct drbg_kat kat433 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat433_t
+};
+
+static const unsigned char kat434_entropyin[] = {
+ 0x93, 0xbf, 0x67, 0xed, 0xa3, 0x7b, 0xf7, 0x4b, 0xa8, 0x4b, 0x43, 0x57,
+ 0x49, 0xe5, 0xc3, 0x12, 0x4b, 0x98, 0x9b, 0x6a, 0xc6, 0xad, 0x72, 0x61,
+};
+static const unsigned char kat434_nonce[] = {
+ 0x29, 0x4c, 0xb2, 0x6c, 0x39, 0x58, 0x6e, 0x48, 0x95, 0xba, 0x8a, 0xe7,
+ 0x79, 0x10, 0x5d, 0xd2,
+};
+static const unsigned char kat434_persstr[] = {0};
+static const unsigned char kat434_addin0[] = {0};
+static const unsigned char kat434_addin1[] = {0};
+static const unsigned char kat434_retbits[] = {
+ 0xc4, 0x60, 0x11, 0x78, 0x92, 0x4d, 0x24, 0x3f, 0xee, 0x92, 0x55, 0x7e,
+ 0xa3, 0x0b, 0x9d, 0x48, 0xb8, 0x16, 0x25, 0x96, 0x42, 0xda, 0x4c, 0xbe,
+ 0x4d, 0x86, 0x8a, 0x94, 0x8c, 0xa7, 0xbd, 0xbd, 0x41, 0xe6, 0xcd, 0x5e,
+ 0xb8, 0x00, 0xbf, 0x44, 0xed, 0x60, 0x6d, 0x2d, 0xdc, 0xcb, 0x34, 0xdf,
+ 0xcf, 0x3b, 0xac, 0xa7, 0x06, 0x06, 0x1f, 0x12, 0x62, 0x1c, 0x79, 0x9f,
+ 0x55, 0x1f, 0x44, 0x8e,
+};
+static const struct drbg_kat_no_reseed kat434_t = {
+ 13, kat434_entropyin, kat434_nonce, kat434_persstr,
+ kat434_addin0, kat434_addin1, kat434_retbits
+};
+static const struct drbg_kat kat434 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat434_t
+};
+
+static const unsigned char kat435_entropyin[] = {
+ 0xc8, 0x03, 0x6e, 0x05, 0xb5, 0xc9, 0x7e, 0x1f, 0x17, 0x0d, 0xdd, 0x6c,
+ 0x95, 0x8c, 0xfe, 0x18, 0x8d, 0x44, 0x74, 0xb1, 0x1d, 0x67, 0x82, 0x62,
+};
+static const unsigned char kat435_nonce[] = {
+ 0xa1, 0x82, 0x9e, 0x13, 0x50, 0x31, 0xee, 0xf0, 0x0a, 0x27, 0xa6, 0xfe,
+ 0x02, 0x24, 0x8c, 0x1b,
+};
+static const unsigned char kat435_persstr[] = {0};
+static const unsigned char kat435_addin0[] = {0};
+static const unsigned char kat435_addin1[] = {0};
+static const unsigned char kat435_retbits[] = {
+ 0x15, 0xbe, 0x79, 0xf7, 0x7f, 0x5c, 0x18, 0x43, 0x10, 0x41, 0x6e, 0x92,
+ 0xd7, 0xa4, 0x7f, 0xc3, 0x25, 0x67, 0xe0, 0xc4, 0x85, 0x85, 0x40, 0xbc,
+ 0x54, 0x0c, 0x81, 0x95, 0x04, 0xb3, 0x9b, 0xd8, 0x2b, 0xcb, 0x96, 0x1e,
+ 0xaf, 0x50, 0xe3, 0x8d, 0xb9, 0x0c, 0x59, 0x30, 0x90, 0x51, 0x71, 0x7c,
+ 0x76, 0x74, 0xfa, 0x3e, 0x75, 0xa4, 0xf5, 0xec, 0x33, 0x66, 0x9c, 0x73,
+ 0x6e, 0xc4, 0x3a, 0x19,
+};
+static const struct drbg_kat_no_reseed kat435_t = {
+ 14, kat435_entropyin, kat435_nonce, kat435_persstr,
+ kat435_addin0, kat435_addin1, kat435_retbits
+};
+static const struct drbg_kat kat435 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat435_t
+};
+
+static const unsigned char kat436_entropyin[] = {
+ 0x17, 0x4d, 0xb4, 0xee, 0xa5, 0x56, 0x56, 0x9b, 0xc0, 0x45, 0xef, 0xc3,
+ 0x5f, 0x80, 0x15, 0x71, 0x75, 0x66, 0x50, 0x22, 0x88, 0xa1, 0xe7, 0xd0,
+};
+static const unsigned char kat436_nonce[] = {
+ 0x38, 0x87, 0x89, 0x0e, 0xdb, 0x10, 0x5c, 0x15, 0x41, 0xdb, 0x3a, 0xd5,
+ 0x95, 0x5e, 0x12, 0x62,
+};
+static const unsigned char kat436_persstr[] = {0};
+static const unsigned char kat436_addin0[] = {
+ 0x54, 0x95, 0x18, 0x3b, 0xa0, 0x88, 0xd7, 0x3c, 0xff, 0x04, 0xc6, 0x20,
+ 0xa0, 0xdc, 0x11, 0x55, 0xd3, 0xf2, 0x82, 0x5b, 0xb1, 0xfc, 0xb9, 0x49,
+ 0x15, 0xf1, 0xc1, 0xa5, 0x08, 0x7a, 0xeb, 0x2c,
+};
+static const unsigned char kat436_addin1[] = {
+ 0xd3, 0x0b, 0xdb, 0xfb, 0x41, 0xa1, 0xb4, 0x76, 0xc0, 0x05, 0x6b, 0x18,
+ 0x0f, 0x24, 0x34, 0xd3, 0xd8, 0x35, 0x22, 0x78, 0xaf, 0x47, 0x7f, 0x50,
+ 0x07, 0x94, 0x75, 0xc1, 0xbd, 0xbe, 0x62, 0x10,
+};
+static const unsigned char kat436_retbits[] = {
+ 0x24, 0xd3, 0x2b, 0x58, 0xe5, 0x9d, 0x00, 0x00, 0xff, 0x57, 0x4f, 0xd4,
+ 0x7e, 0x67, 0x02, 0xff, 0xd1, 0xa9, 0xb8, 0xdb, 0xcd, 0xb4, 0xf1, 0x64,
+ 0xab, 0xf1, 0x73, 0x14, 0x5c, 0xb6, 0xd2, 0xd9, 0x23, 0x65, 0x6b, 0x55,
+ 0xc4, 0xe8, 0x85, 0xca, 0x34, 0xd1, 0x8c, 0x15, 0x62, 0xf1, 0x7b, 0xb5,
+ 0x4d, 0x10, 0xd4, 0x6b, 0x1a, 0x53, 0xae, 0x14, 0x6e, 0xae, 0x07, 0x7d,
+ 0xdf, 0x93, 0xed, 0x53,
+};
+static const struct drbg_kat_no_reseed kat436_t = {
+ 0, kat436_entropyin, kat436_nonce, kat436_persstr,
+ kat436_addin0, kat436_addin1, kat436_retbits
+};
+static const struct drbg_kat kat436 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat436_t
+};
+
+static const unsigned char kat437_entropyin[] = {
+ 0x02, 0x17, 0x32, 0x7c, 0x7e, 0x3a, 0x61, 0xb0, 0x45, 0x9b, 0xb4, 0x92,
+ 0xb1, 0x0a, 0x73, 0xdd, 0x99, 0x86, 0xd2, 0x60, 0x5a, 0xdd, 0xb6, 0x64,
+};
+static const unsigned char kat437_nonce[] = {
+ 0x37, 0xeb, 0x5d, 0x66, 0x92, 0x88, 0x3c, 0xc6, 0xa6, 0xa4, 0x3c, 0x80,
+ 0xdf, 0x83, 0xf6, 0xe2,
+};
+static const unsigned char kat437_persstr[] = {0};
+static const unsigned char kat437_addin0[] = {
+ 0xa9, 0xd2, 0x22, 0x84, 0xc5, 0x03, 0x25, 0xd7, 0x96, 0xc7, 0x94, 0xba,
+ 0xd2, 0x8d, 0xfe, 0xf9, 0x2d, 0x13, 0x17, 0xc9, 0x3e, 0x20, 0x0b, 0xa2,
+ 0x20, 0xe0, 0x0b, 0xf4, 0xf3, 0xac, 0xec, 0xc6,
+};
+static const unsigned char kat437_addin1[] = {
+ 0xbc, 0x0f, 0xb7, 0x0a, 0xf9, 0x2d, 0xff, 0xf5, 0xd5, 0x03, 0x4f, 0x90,
+ 0xbd, 0xbb, 0x05, 0x29, 0x56, 0x25, 0xd1, 0xda, 0x45, 0x70, 0x7f, 0x7f,
+ 0xe1, 0x71, 0x50, 0xbf, 0xb9, 0x88, 0xad, 0xa2,
+};
+static const unsigned char kat437_retbits[] = {
+ 0x58, 0x59, 0xc8, 0x53, 0x9a, 0x37, 0x96, 0x1f, 0x74, 0x61, 0xe8, 0xb3,
+ 0x55, 0x24, 0x85, 0xce, 0x37, 0xf0, 0xc1, 0x96, 0x46, 0xf7, 0x84, 0xe6,
+ 0x82, 0x3a, 0x8d, 0xd6, 0x06, 0x41, 0x93, 0x13, 0x31, 0x21, 0x3a, 0x22,
+ 0x11, 0xb3, 0x2c, 0xf5, 0x7a, 0x1a, 0x26, 0xb5, 0xa3, 0xb6, 0xe6, 0xee,
+ 0xbd, 0xc5, 0xab, 0xbc, 0xe0, 0xd4, 0x3d, 0xdb, 0x96, 0x7a, 0x6d, 0xe5,
+ 0x7c, 0x97, 0xa8, 0xf6,
+};
+static const struct drbg_kat_no_reseed kat437_t = {
+ 1, kat437_entropyin, kat437_nonce, kat437_persstr,
+ kat437_addin0, kat437_addin1, kat437_retbits
+};
+static const struct drbg_kat kat437 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat437_t
+};
+
+static const unsigned char kat438_entropyin[] = {
+ 0x9e, 0x2f, 0x8e, 0xd0, 0x86, 0x1f, 0xcc, 0x64, 0x77, 0x9f, 0x01, 0xae,
+ 0x37, 0xb7, 0x61, 0x54, 0x40, 0x2e, 0x09, 0xc2, 0xac, 0x84, 0xec, 0x24,
+};
+static const unsigned char kat438_nonce[] = {
+ 0x6c, 0x1e, 0x77, 0x9a, 0x17, 0xff, 0x4d, 0xdc, 0x33, 0x25, 0x28, 0x41,
+ 0xda, 0x58, 0xc4, 0x81,
+};
+static const unsigned char kat438_persstr[] = {0};
+static const unsigned char kat438_addin0[] = {
+ 0x96, 0x0d, 0x53, 0x1c, 0x3a, 0x8e, 0x7c, 0x8c, 0x26, 0x9c, 0xed, 0x9f,
+ 0x74, 0x64, 0xfe, 0xde, 0xc8, 0xd4, 0xf4, 0x9e, 0x73, 0x96, 0xc6, 0x0f,
+ 0xbd, 0x89, 0xb2, 0xea, 0x4a, 0xf6, 0xfe, 0x40,
+};
+static const unsigned char kat438_addin1[] = {
+ 0xe3, 0x29, 0x50, 0x33, 0x92, 0xa8, 0xe7, 0xeb, 0x56, 0x2e, 0xf1, 0x30,
+ 0xd0, 0xf9, 0xfd, 0x5e, 0x66, 0xd5, 0xf2, 0x3f, 0x24, 0x87, 0x99, 0x55,
+ 0xe6, 0x60, 0x52, 0xd2, 0x00, 0x9f, 0xac, 0xda,
+};
+static const unsigned char kat438_retbits[] = {
+ 0x4a, 0x02, 0x0e, 0x7a, 0xd3, 0x3b, 0xa3, 0x80, 0xa5, 0x62, 0xad, 0x13,
+ 0x2d, 0x5b, 0x73, 0xee, 0xad, 0x1e, 0x89, 0xd9, 0x20, 0x7a, 0x6e, 0x4a,
+ 0xdb, 0x12, 0xe0, 0x8d, 0x62, 0xf4, 0x88, 0x6a, 0x27, 0xc2, 0x18, 0xb0,
+ 0x36, 0x41, 0xf7, 0xb6, 0xcf, 0x3a, 0x90, 0xe4, 0x46, 0x0b, 0x36, 0x39,
+ 0xe0, 0xaa, 0x9e, 0x70, 0xab, 0xc9, 0xae, 0x6b, 0xdc, 0xca, 0x60, 0x82,
+ 0x7a, 0x3a, 0x07, 0x53,
+};
+static const struct drbg_kat_no_reseed kat438_t = {
+ 2, kat438_entropyin, kat438_nonce, kat438_persstr,
+ kat438_addin0, kat438_addin1, kat438_retbits
+};
+static const struct drbg_kat kat438 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat438_t
+};
+
+static const unsigned char kat439_entropyin[] = {
+ 0x12, 0xf0, 0x6b, 0xc8, 0xea, 0x0c, 0x9e, 0x95, 0xb3, 0xf5, 0xb8, 0xd9,
+ 0xbe, 0x8d, 0x4b, 0x94, 0xfb, 0x80, 0x88, 0x33, 0x93, 0xd4, 0x44, 0x14,
+};
+static const unsigned char kat439_nonce[] = {
+ 0x49, 0xdf, 0xee, 0x73, 0x11, 0x72, 0x5f, 0x1f, 0x46, 0xc1, 0xd5, 0x00,
+ 0x10, 0x05, 0x41, 0xd1,
+};
+static const unsigned char kat439_persstr[] = {0};
+static const unsigned char kat439_addin0[] = {
+ 0xf7, 0xec, 0xc3, 0x52, 0xda, 0xc2, 0x80, 0x62, 0xf1, 0xda, 0xb5, 0x17,
+ 0x85, 0xb6, 0xb0, 0xe3, 0x1b, 0x81, 0xdb, 0x6e, 0xc7, 0x6e, 0xe0, 0x53,
+ 0xc3, 0x2b, 0xbc, 0xa8, 0x7c, 0x7e, 0x3b, 0x9c,
+};
+static const unsigned char kat439_addin1[] = {
+ 0xef, 0x29, 0xf6, 0x89, 0xef, 0x40, 0xb3, 0xa4, 0xf1, 0x86, 0xa3, 0xfd,
+ 0x57, 0xbd, 0x48, 0x3f, 0xf2, 0x8b, 0x5e, 0xa6, 0x29, 0x3e, 0x17, 0x33,
+ 0xa3, 0x9c, 0xa3, 0xdd, 0x33, 0x12, 0xff, 0xf4,
+};
+static const unsigned char kat439_retbits[] = {
+ 0x17, 0x3a, 0x29, 0x5b, 0xdd, 0x79, 0xad, 0x14, 0x8b, 0x15, 0xc2, 0x6d,
+ 0x8d, 0x13, 0x13, 0x3a, 0x0c, 0x3d, 0x52, 0xc5, 0xee, 0xb6, 0x47, 0x4a,
+ 0x73, 0xab, 0xb7, 0x6c, 0xbb, 0xbd, 0x2f, 0x74, 0x0a, 0xb8, 0xb6, 0x57,
+ 0xcb, 0xcf, 0x7b, 0x5f, 0xcc, 0x86, 0x27, 0x14, 0x08, 0xb1, 0x9f, 0xd9,
+ 0x35, 0xe4, 0xb7, 0x4a, 0x0d, 0xf9, 0xdd, 0x7f, 0xf5, 0x09, 0x9a, 0xe0,
+ 0x84, 0x9f, 0x4e, 0xa0,
+};
+static const struct drbg_kat_no_reseed kat439_t = {
+ 3, kat439_entropyin, kat439_nonce, kat439_persstr,
+ kat439_addin0, kat439_addin1, kat439_retbits
+};
+static const struct drbg_kat kat439 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat439_t
+};
+
+static const unsigned char kat440_entropyin[] = {
+ 0x3f, 0x4d, 0xab, 0x4b, 0xd4, 0x56, 0x79, 0x10, 0x1e, 0x4e, 0x9e, 0x1d,
+ 0x05, 0x38, 0xef, 0x4d, 0x76, 0x32, 0x30, 0xa0, 0xaf, 0x43, 0xfa, 0xe8,
+};
+static const unsigned char kat440_nonce[] = {
+ 0x8b, 0xb6, 0x8e, 0xd2, 0x94, 0x0f, 0x71, 0xb6, 0x0b, 0x7c, 0x7d, 0x8f,
+ 0x60, 0xc1, 0x5c, 0xa6,
+};
+static const unsigned char kat440_persstr[] = {0};
+static const unsigned char kat440_addin0[] = {
+ 0xce, 0xdf, 0xb5, 0x65, 0xd5, 0x54, 0x24, 0x9a, 0xcd, 0xf9, 0xe6, 0x1c,
+ 0xe9, 0x96, 0xee, 0xfe, 0xf0, 0xcf, 0x7e, 0xb7, 0xca, 0x0e, 0xcc, 0xda,
+ 0x77, 0xb7, 0xe6, 0x71, 0x5f, 0x38, 0xb7, 0x7c,
+};
+static const unsigned char kat440_addin1[] = {
+ 0xba, 0xa6, 0x40, 0xa1, 0x35, 0x06, 0xf7, 0x53, 0x66, 0x8e, 0xca, 0x79,
+ 0x0a, 0x8d, 0x3f, 0xc4, 0xc5, 0x3f, 0x16, 0xea, 0xa9, 0x3d, 0x08, 0x8d,
+ 0x69, 0xf1, 0xe5, 0x88, 0x15, 0xd4, 0x2b, 0x3e,
+};
+static const unsigned char kat440_retbits[] = {
+ 0xce, 0x36, 0xad, 0x85, 0x3b, 0x12, 0xd5, 0xd5, 0x09, 0x3b, 0xa3, 0x5f,
+ 0xde, 0xcf, 0xeb, 0x25, 0xf1, 0xb1, 0x33, 0x0c, 0xeb, 0x37, 0xe5, 0x8e,
+ 0x2e, 0x58, 0xa9, 0x40, 0xf0, 0x5f, 0x90, 0x02, 0xe0, 0xfe, 0x6b, 0x8d,
+ 0x36, 0xb5, 0x14, 0x6c, 0x18, 0x8a, 0xb1, 0xe3, 0x3b, 0xa8, 0x4e, 0x95,
+ 0x4d, 0x17, 0xa5, 0x20, 0x33, 0xcc, 0x08, 0x1a, 0xa8, 0xb2, 0x50, 0x7b,
+ 0xe8, 0xd5, 0x16, 0x13,
+};
+static const struct drbg_kat_no_reseed kat440_t = {
+ 4, kat440_entropyin, kat440_nonce, kat440_persstr,
+ kat440_addin0, kat440_addin1, kat440_retbits
+};
+static const struct drbg_kat kat440 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat440_t
+};
+
+static const unsigned char kat441_entropyin[] = {
+ 0x1a, 0xa5, 0xd2, 0x36, 0x13, 0xdd, 0x1f, 0x71, 0x71, 0x4a, 0x01, 0xe7,
+ 0x5e, 0xcc, 0x29, 0xa6, 0xd1, 0x48, 0x1c, 0x76, 0x15, 0x7a, 0x81, 0x77,
+};
+static const unsigned char kat441_nonce[] = {
+ 0x2c, 0xe6, 0xba, 0x4c, 0x82, 0xe7, 0xcc, 0x2e, 0x59, 0x8c, 0xda, 0x4b,
+ 0x3e, 0x6a, 0xc8, 0xa7,
+};
+static const unsigned char kat441_persstr[] = {0};
+static const unsigned char kat441_addin0[] = {
+ 0x02, 0x6c, 0x22, 0x49, 0x12, 0xb4, 0x9e, 0xa7, 0xb2, 0xa1, 0xa7, 0xcc,
+ 0xd5, 0x04, 0x18, 0x09, 0x0c, 0x13, 0x83, 0xc6, 0x4f, 0x28, 0x52, 0x34,
+ 0x1c, 0x28, 0xc1, 0xf6, 0x56, 0x2f, 0x9b, 0xf7,
+};
+static const unsigned char kat441_addin1[] = {
+ 0xd9, 0x81, 0x0d, 0x1a, 0x33, 0x92, 0x1f, 0x06, 0x20, 0x61, 0xd7, 0xf6,
+ 0x67, 0x50, 0x6b, 0x02, 0x79, 0xde, 0x3e, 0x14, 0x3e, 0x55, 0xf5, 0x72,
+ 0x28, 0x46, 0x93, 0x60, 0x9c, 0xb7, 0x37, 0x85,
+};
+static const unsigned char kat441_retbits[] = {
+ 0x47, 0x75, 0xcb, 0xe9, 0xf4, 0xa7, 0x4b, 0x72, 0xfa, 0xcf, 0x4a, 0x2c,
+ 0xf8, 0xe9, 0x58, 0x1a, 0xa0, 0x25, 0x32, 0x62, 0x60, 0x37, 0xfa, 0x3b,
+ 0x63, 0xef, 0xef, 0xc3, 0xc7, 0xc1, 0xc2, 0xdb, 0x0e, 0xb5, 0x90, 0x3e,
+ 0xa1, 0xa9, 0xcc, 0x9e, 0x40, 0xb2, 0xb9, 0xe6, 0x28, 0xac, 0xfd, 0x9d,
+ 0x74, 0xe6, 0x65, 0x72, 0xa8, 0x65, 0x6c, 0x75, 0xdb, 0x6a, 0x5f, 0xbf,
+ 0x5a, 0xc0, 0xad, 0x1e,
+};
+static const struct drbg_kat_no_reseed kat441_t = {
+ 5, kat441_entropyin, kat441_nonce, kat441_persstr,
+ kat441_addin0, kat441_addin1, kat441_retbits
+};
+static const struct drbg_kat kat441 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat441_t
+};
+
+static const unsigned char kat442_entropyin[] = {
+ 0x32, 0x6f, 0x6e, 0x91, 0x22, 0x70, 0x3e, 0x58, 0x31, 0x6e, 0x7e, 0x0e,
+ 0x2e, 0x58, 0x78, 0x61, 0x04, 0x23, 0xf0, 0xf5, 0x59, 0x73, 0x09, 0xa1,
+};
+static const unsigned char kat442_nonce[] = {
+ 0x42, 0x6e, 0x56, 0xf1, 0x3e, 0x11, 0x26, 0x9e, 0xa6, 0xbb, 0xaf, 0xa0,
+ 0x09, 0x86, 0x11, 0xf5,
+};
+static const unsigned char kat442_persstr[] = {0};
+static const unsigned char kat442_addin0[] = {
+ 0x8a, 0xe8, 0x8c, 0xdd, 0x32, 0x0e, 0x96, 0xe9, 0x21, 0xd0, 0x6d, 0xe2,
+ 0x3c, 0x92, 0xa7, 0x1b, 0x5c, 0x37, 0x0e, 0xcb, 0x4d, 0xba, 0x98, 0x87,
+ 0xf6, 0x03, 0x44, 0xe2, 0x08, 0x56, 0xa9, 0x04,
+};
+static const unsigned char kat442_addin1[] = {
+ 0xc5, 0xbe, 0xd3, 0x4c, 0xd6, 0x08, 0x50, 0x64, 0x04, 0x40, 0xd0, 0xc7,
+ 0x0d, 0xb4, 0xde, 0x17, 0x85, 0x9a, 0x25, 0xc2, 0xbd, 0xce, 0xee, 0xfe,
+ 0x5a, 0xe0, 0xcf, 0x8f, 0xc7, 0x80, 0x36, 0x2d,
+};
+static const unsigned char kat442_retbits[] = {
+ 0xf4, 0x62, 0x28, 0x0c, 0x4e, 0xb3, 0x9c, 0x83, 0xa2, 0x08, 0x5f, 0x8d,
+ 0x62, 0xa4, 0xbc, 0xec, 0x7c, 0x27, 0x62, 0x12, 0x02, 0x0b, 0xed, 0x35,
+ 0xe8, 0x98, 0xa5, 0x54, 0xd6, 0xaf, 0xb9, 0x8e, 0x77, 0x33, 0xd5, 0x71,
+ 0x2e, 0xaf, 0xf8, 0x84, 0x05, 0x8c, 0xa8, 0x8a, 0xb3, 0xe4, 0x3f, 0x3e,
+ 0x7f, 0x58, 0xd9, 0x8e, 0xa2, 0xbb, 0x97, 0xef, 0x8a, 0x5d, 0xac, 0x63,
+ 0x63, 0x56, 0x66, 0x70,
+};
+static const struct drbg_kat_no_reseed kat442_t = {
+ 6, kat442_entropyin, kat442_nonce, kat442_persstr,
+ kat442_addin0, kat442_addin1, kat442_retbits
+};
+static const struct drbg_kat kat442 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat442_t
+};
+
+static const unsigned char kat443_entropyin[] = {
+ 0x00, 0x71, 0x2f, 0x30, 0xc7, 0xf3, 0x2e, 0x21, 0xde, 0xbf, 0x40, 0x26,
+ 0x78, 0xa7, 0xe2, 0xf7, 0x20, 0x1e, 0x96, 0xe7, 0xc2, 0x55, 0x17, 0x96,
+};
+static const unsigned char kat443_nonce[] = {
+ 0x97, 0x23, 0x77, 0x2e, 0x04, 0x71, 0x0d, 0x54, 0xa3, 0x76, 0x51, 0x07,
+ 0xaa, 0xd9, 0x14, 0xf5,
+};
+static const unsigned char kat443_persstr[] = {0};
+static const unsigned char kat443_addin0[] = {
+ 0x17, 0x77, 0xd9, 0x9d, 0xbf, 0x76, 0xe0, 0x26, 0x5f, 0xf6, 0x85, 0x3b,
+ 0x83, 0x51, 0x8f, 0x34, 0x1b, 0x32, 0x78, 0x81, 0x71, 0xdb, 0x4f, 0x17,
+ 0xca, 0x65, 0x04, 0xd7, 0x88, 0xc2, 0xf1, 0x37,
+};
+static const unsigned char kat443_addin1[] = {
+ 0x79, 0xf3, 0xa3, 0x69, 0x5e, 0x2c, 0xfa, 0xa7, 0xf0, 0x87, 0x87, 0x29,
+ 0xe9, 0x31, 0x0b, 0xb4, 0x79, 0xd3, 0x00, 0xcd, 0xc1, 0x5c, 0xa3, 0x7e,
+ 0x36, 0x8e, 0x3a, 0x45, 0xe7, 0xf1, 0xea, 0x26,
+};
+static const unsigned char kat443_retbits[] = {
+ 0xe7, 0xbd, 0x54, 0x5d, 0x18, 0x53, 0x05, 0xa0, 0xe4, 0x43, 0x51, 0x65,
+ 0x01, 0xe7, 0xfa, 0x9a, 0xbf, 0xa8, 0x42, 0x27, 0x4d, 0x34, 0x2a, 0xe3,
+ 0xae, 0xb2, 0x95, 0x83, 0xc1, 0x50, 0xea, 0x55, 0x0b, 0xc6, 0xfb, 0xa9,
+ 0x52, 0xa4, 0x9e, 0x30, 0xf8, 0x4c, 0x29, 0x34, 0x29, 0x9c, 0x1f, 0xd2,
+ 0xd5, 0x58, 0x19, 0x1e, 0xb7, 0xad, 0x80, 0xd8, 0x28, 0xe6, 0x3a, 0xa9,
+ 0xff, 0x22, 0x31, 0x07,
+};
+static const struct drbg_kat_no_reseed kat443_t = {
+ 7, kat443_entropyin, kat443_nonce, kat443_persstr,
+ kat443_addin0, kat443_addin1, kat443_retbits
+};
+static const struct drbg_kat kat443 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat443_t
+};
+
+static const unsigned char kat444_entropyin[] = {
+ 0x0e, 0x1e, 0x1a, 0x43, 0x04, 0xbf, 0xe2, 0x37, 0xe9, 0xbd, 0xe5, 0x4c,
+ 0xcb, 0x87, 0x6b, 0xdb, 0x0e, 0x83, 0x3b, 0xfa, 0xa3, 0x60, 0x9e, 0xe1,
+};
+static const unsigned char kat444_nonce[] = {
+ 0x4a, 0xb3, 0xd5, 0x27, 0x40, 0xb7, 0xb9, 0xde, 0x6e, 0xd3, 0x9a, 0x01,
+ 0x32, 0x15, 0xd1, 0x4a,
+};
+static const unsigned char kat444_persstr[] = {0};
+static const unsigned char kat444_addin0[] = {
+ 0x02, 0x99, 0x8f, 0x33, 0xf6, 0xbe, 0x3b, 0xf8, 0x95, 0x5b, 0x94, 0x45,
+ 0x01, 0x75, 0x69, 0x71, 0x67, 0x26, 0x86, 0x6b, 0xe7, 0xd6, 0xda, 0x47,
+ 0x99, 0xe4, 0xf0, 0x72, 0x0a, 0xf5, 0x35, 0x93,
+};
+static const unsigned char kat444_addin1[] = {
+ 0x1d, 0x96, 0xd9, 0xe0, 0xff, 0x54, 0x79, 0x2f, 0x4f, 0xcc, 0xe9, 0x20,
+ 0xbf, 0x79, 0x0c, 0xf7, 0x2d, 0x58, 0xfc, 0x86, 0x5f, 0xe8, 0xf4, 0x46,
+ 0xfb, 0x03, 0xcb, 0xc2, 0xeb, 0x21, 0xea, 0x2f,
+};
+static const unsigned char kat444_retbits[] = {
+ 0xad, 0xb0, 0xe9, 0x3e, 0x74, 0x79, 0x19, 0x97, 0xdd, 0xcc, 0xf9, 0x6f,
+ 0x56, 0xbb, 0x29, 0x78, 0x93, 0xee, 0x40, 0xf5, 0x28, 0x9b, 0xc9, 0x92,
+ 0xb6, 0x78, 0x70, 0xaf, 0x19, 0xc9, 0x85, 0xaa, 0x9d, 0x91, 0x1b, 0x14,
+ 0x17, 0x56, 0x01, 0x72, 0xca, 0x70, 0xa9, 0xf6, 0x07, 0x65, 0x56, 0xf9,
+ 0x6b, 0x49, 0x57, 0xcc, 0x57, 0x4c, 0x09, 0x89, 0xfa, 0xdf, 0x1c, 0xed,
+ 0xa9, 0xdf, 0x9b, 0xc2,
+};
+static const struct drbg_kat_no_reseed kat444_t = {
+ 8, kat444_entropyin, kat444_nonce, kat444_persstr,
+ kat444_addin0, kat444_addin1, kat444_retbits
+};
+static const struct drbg_kat kat444 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat444_t
+};
+
+static const unsigned char kat445_entropyin[] = {
+ 0x16, 0x65, 0x4b, 0x44, 0xfd, 0x38, 0xc0, 0xb2, 0x44, 0x89, 0x67, 0x82,
+ 0x9b, 0xe7, 0xbf, 0xc4, 0x62, 0x78, 0x6f, 0x08, 0x8b, 0x1e, 0xb4, 0x57,
+};
+static const unsigned char kat445_nonce[] = {
+ 0xfe, 0xfa, 0x7f, 0xcc, 0x14, 0xfd, 0xe2, 0x5b, 0x6f, 0x4e, 0xe9, 0xa2,
+ 0x23, 0x14, 0x14, 0xf0,
+};
+static const unsigned char kat445_persstr[] = {0};
+static const unsigned char kat445_addin0[] = {
+ 0x14, 0x60, 0xfe, 0x86, 0x87, 0x84, 0xae, 0x02, 0xb2, 0x39, 0x42, 0x7a,
+ 0x0a, 0x44, 0x87, 0x20, 0x94, 0x26, 0x71, 0x38, 0xa2, 0x6c, 0xc4, 0x02,
+ 0xe7, 0x2a, 0xab, 0x14, 0x76, 0xdf, 0x21, 0x6a,
+};
+static const unsigned char kat445_addin1[] = {
+ 0x2a, 0x2f, 0x4d, 0x85, 0xd1, 0xfc, 0x79, 0x18, 0xe8, 0x15, 0x40, 0x53,
+ 0xd8, 0x43, 0x02, 0xb5, 0x49, 0x6c, 0xba, 0x91, 0xc3, 0x6e, 0x47, 0x7f,
+ 0xf0, 0x2c, 0x75, 0x48, 0x9e, 0xe7, 0x70, 0xbf,
+};
+static const unsigned char kat445_retbits[] = {
+ 0x9e, 0xa5, 0xe4, 0x07, 0x68, 0xaa, 0x35, 0xec, 0x4a, 0x70, 0x9b, 0x8a,
+ 0x7d, 0x6c, 0x27, 0x61, 0xe7, 0xa7, 0x7d, 0xce, 0x06, 0xcb, 0x25, 0x37,
+ 0x63, 0xeb, 0xd7, 0x0a, 0x9f, 0x69, 0xed, 0x62, 0x5c, 0xcc, 0x75, 0x2c,
+ 0x3e, 0x7e, 0x80, 0x97, 0x69, 0xfe, 0x99, 0xdd, 0x3a, 0xb8, 0x05, 0x64,
+ 0x5e, 0x96, 0xc6, 0x02, 0xff, 0x9b, 0x4f, 0x78, 0x12, 0x2e, 0xf2, 0xe8,
+ 0x09, 0xc3, 0x9e, 0x60,
+};
+static const struct drbg_kat_no_reseed kat445_t = {
+ 9, kat445_entropyin, kat445_nonce, kat445_persstr,
+ kat445_addin0, kat445_addin1, kat445_retbits
+};
+static const struct drbg_kat kat445 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat445_t
+};
+
+static const unsigned char kat446_entropyin[] = {
+ 0xee, 0xfa, 0x26, 0x21, 0x7e, 0xcf, 0xe8, 0xe0, 0x52, 0xd0, 0xd4, 0xc0,
+ 0x89, 0x39, 0x20, 0x83, 0x7b, 0xbd, 0x4b, 0x3f, 0x96, 0x6a, 0x34, 0x8b,
+};
+static const unsigned char kat446_nonce[] = {
+ 0xe9, 0x2a, 0x5c, 0xde, 0xa0, 0x72, 0xa2, 0xcb, 0xb9, 0x8a, 0x5d, 0x1a,
+ 0xb4, 0x1d, 0x7c, 0xcd,
+};
+static const unsigned char kat446_persstr[] = {0};
+static const unsigned char kat446_addin0[] = {
+ 0x48, 0xf1, 0xcc, 0xfb, 0xb5, 0x9d, 0x7a, 0xe7, 0x28, 0xfb, 0x22, 0x72,
+ 0x98, 0x12, 0x36, 0x6c, 0xf6, 0x6a, 0x7d, 0xf6, 0x35, 0xd3, 0x3e, 0xd1,
+ 0x85, 0x7f, 0x9b, 0x88, 0x01, 0x3b, 0x1f, 0x21,
+};
+static const unsigned char kat446_addin1[] = {
+ 0xb2, 0x47, 0x06, 0xd1, 0xde, 0x83, 0xe2, 0x47, 0x0c, 0x37, 0xee, 0x21,
+ 0x4c, 0xbd, 0x72, 0x71, 0xc3, 0x2b, 0xb1, 0x65, 0x05, 0x96, 0xed, 0x12,
+ 0x2a, 0xf4, 0x23, 0x93, 0x50, 0xbc, 0xef, 0x9e,
+};
+static const unsigned char kat446_retbits[] = {
+ 0x65, 0x0a, 0x98, 0xb3, 0x65, 0x57, 0x6e, 0x2f, 0xe8, 0x5b, 0xf7, 0x36,
+ 0xcf, 0x21, 0x6b, 0x45, 0x19, 0x2b, 0xeb, 0x91, 0x25, 0xbb, 0x1a, 0xe4,
+ 0x89, 0x12, 0xec, 0x06, 0xf3, 0x9d, 0x94, 0xe2, 0xda, 0x02, 0xea, 0xb9,
+ 0x70, 0xb9, 0xd9, 0xcb, 0xc7, 0x7e, 0x30, 0x27, 0x8e, 0x46, 0xa7, 0x98,
+ 0x2d, 0x7a, 0x2f, 0x7b, 0x75, 0xca, 0x6c, 0x7d, 0x53, 0x83, 0x90, 0xf9,
+ 0x54, 0x07, 0x38, 0x2f,
+};
+static const struct drbg_kat_no_reseed kat446_t = {
+ 10, kat446_entropyin, kat446_nonce, kat446_persstr,
+ kat446_addin0, kat446_addin1, kat446_retbits
+};
+static const struct drbg_kat kat446 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat446_t
+};
+
+static const unsigned char kat447_entropyin[] = {
+ 0xe7, 0x65, 0x32, 0x77, 0x4d, 0x4e, 0xf4, 0x5d, 0xeb, 0x39, 0xbf, 0xb5,
+ 0x2a, 0x40, 0x46, 0x1d, 0x31, 0x25, 0xe3, 0x62, 0xd2, 0x4a, 0x56, 0xb8,
+};
+static const unsigned char kat447_nonce[] = {
+ 0xaa, 0x47, 0x05, 0x55, 0xee, 0x44, 0x9f, 0x9f, 0x06, 0xba, 0x28, 0x12,
+ 0x97, 0x0c, 0xe6, 0x8e,
+};
+static const unsigned char kat447_persstr[] = {0};
+static const unsigned char kat447_addin0[] = {
+ 0xb2, 0xec, 0xe7, 0x17, 0xa6, 0x11, 0x19, 0xe9, 0xfd, 0x32, 0x45, 0x80,
+ 0x81, 0xd0, 0x0f, 0xbd, 0xd7, 0xc1, 0xb5, 0x34, 0x22, 0xa5, 0x3a, 0xa3,
+ 0x2f, 0xf0, 0x92, 0x37, 0xe5, 0x02, 0x86, 0x87,
+};
+static const unsigned char kat447_addin1[] = {
+ 0x6b, 0x9e, 0x89, 0x44, 0x99, 0xb1, 0xe4, 0x78, 0xce, 0x1f, 0x43, 0x91,
+ 0x50, 0xb4, 0x80, 0xef, 0x8b, 0x80, 0x14, 0x99, 0x3e, 0xa9, 0x31, 0xd8,
+ 0xae, 0xbe, 0xfc, 0x8b, 0x76, 0xa9, 0x62, 0x72,
+};
+static const unsigned char kat447_retbits[] = {
+ 0xf9, 0x8f, 0xdc, 0x5d, 0x33, 0xea, 0xb1, 0xa4, 0x56, 0xfc, 0x68, 0x08,
+ 0x0d, 0x59, 0x3b, 0x83, 0xbf, 0x6c, 0xf0, 0xc7, 0xcd, 0xb9, 0x83, 0x40,
+ 0x82, 0xde, 0x36, 0x86, 0x91, 0x9d, 0x07, 0x52, 0x36, 0x5a, 0x5c, 0xa6,
+ 0x4f, 0x32, 0x24, 0x37, 0x67, 0x1f, 0x05, 0x43, 0xff, 0x74, 0xee, 0x64,
+ 0x90, 0xa0, 0xe8, 0x70, 0x63, 0x4f, 0xed, 0x4b, 0x5e, 0xc9, 0x84, 0x82,
+ 0xef, 0x09, 0xa2, 0xf2,
+};
+static const struct drbg_kat_no_reseed kat447_t = {
+ 11, kat447_entropyin, kat447_nonce, kat447_persstr,
+ kat447_addin0, kat447_addin1, kat447_retbits
+};
+static const struct drbg_kat kat447 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat447_t
+};
+
+static const unsigned char kat448_entropyin[] = {
+ 0x4b, 0xcc, 0xcc, 0xe3, 0x5f, 0xea, 0xfd, 0xe5, 0xda, 0x22, 0xd9, 0x56,
+ 0x40, 0xd2, 0x8b, 0x23, 0x2c, 0xa7, 0xc6, 0xec, 0x67, 0xf4, 0x6e, 0x05,
+};
+static const unsigned char kat448_nonce[] = {
+ 0x0d, 0xf8, 0xf3, 0xcc, 0xa0, 0x12, 0x8a, 0xc3, 0x9c, 0x11, 0xc0, 0x38,
+ 0xf8, 0xdf, 0xe0, 0xae,
+};
+static const unsigned char kat448_persstr[] = {0};
+static const unsigned char kat448_addin0[] = {
+ 0xb3, 0xe1, 0x9b, 0x4a, 0xfc, 0x44, 0x66, 0x29, 0xf4, 0x5c, 0xea, 0x68,
+ 0xe7, 0x6b, 0x86, 0x43, 0xc7, 0x2c, 0x92, 0x6e, 0xa0, 0xf0, 0xbd, 0x47,
+ 0x3a, 0xff, 0x44, 0xc8, 0x43, 0x7c, 0xa2, 0xa8,
+};
+static const unsigned char kat448_addin1[] = {
+ 0xaf, 0x06, 0xe0, 0xf1, 0xbd, 0xb1, 0x1c, 0x07, 0xd6, 0x96, 0xd5, 0x9c,
+ 0x05, 0x61, 0x89, 0x6b, 0x76, 0x25, 0x83, 0x25, 0x39, 0x70, 0xa9, 0x5c,
+ 0xcd, 0xbb, 0x16, 0x90, 0xb5, 0xd3, 0xa2, 0x11,
+};
+static const unsigned char kat448_retbits[] = {
+ 0x11, 0x26, 0x68, 0x69, 0xe6, 0xa0, 0x9f, 0xb1, 0xc3, 0x63, 0xca, 0x25,
+ 0xf8, 0xf3, 0x28, 0x45, 0xea, 0x68, 0x50, 0x80, 0x78, 0x72, 0xde, 0x59,
+ 0x4c, 0xef, 0xa5, 0x5f, 0xb5, 0xd8, 0x4b, 0xc6, 0x89, 0xcc, 0x51, 0x8b,
+ 0x4e, 0xb8, 0x3b, 0xb4, 0x83, 0xc1, 0x5c, 0x62, 0xac, 0xcf, 0x47, 0x4c,
+ 0xc6, 0xaf, 0xec, 0xa5, 0x6f, 0xfa, 0x84, 0xc3, 0xc0, 0x1b, 0xee, 0xf6,
+ 0xae, 0xa5, 0xe2, 0x3a,
+};
+static const struct drbg_kat_no_reseed kat448_t = {
+ 12, kat448_entropyin, kat448_nonce, kat448_persstr,
+ kat448_addin0, kat448_addin1, kat448_retbits
+};
+static const struct drbg_kat kat448 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat448_t
+};
+
+static const unsigned char kat449_entropyin[] = {
+ 0x48, 0xa4, 0x79, 0x9f, 0xbb, 0x49, 0xbf, 0xc9, 0xdd, 0x09, 0x77, 0xae,
+ 0x3b, 0x1c, 0x89, 0x0d, 0x2f, 0xa6, 0x9f, 0x57, 0x75, 0x54, 0xc3, 0xd3,
+};
+static const unsigned char kat449_nonce[] = {
+ 0x6b, 0xfb, 0x2d, 0x6b, 0xb9, 0x2b, 0xb2, 0xed, 0x88, 0x17, 0x99, 0x2a,
+ 0xd9, 0x3c, 0xc6, 0xa9,
+};
+static const unsigned char kat449_persstr[] = {0};
+static const unsigned char kat449_addin0[] = {
+ 0x2c, 0xbe, 0xe2, 0xfb, 0x8b, 0xa4, 0x99, 0x65, 0xc8, 0x5a, 0x9f, 0x66,
+ 0x03, 0x68, 0xcf, 0x1d, 0x01, 0x81, 0xb6, 0xaf, 0xe6, 0x3b, 0x34, 0x82,
+ 0x21, 0x48, 0x22, 0x80, 0xc9, 0x05, 0x81, 0x2d,
+};
+static const unsigned char kat449_addin1[] = {
+ 0xbb, 0xd3, 0xe2, 0x4c, 0x95, 0xd8, 0xfb, 0x5c, 0x60, 0xd7, 0x15, 0x44,
+ 0xb6, 0x69, 0x6b, 0x56, 0x2a, 0x2d, 0x05, 0xce, 0x2e, 0xef, 0x65, 0x8e,
+ 0x21, 0x3f, 0x67, 0xaa, 0x2c, 0x1f, 0xe5, 0xd2,
+};
+static const unsigned char kat449_retbits[] = {
+ 0x8d, 0x78, 0xf3, 0xb7, 0x22, 0xd4, 0xfd, 0xa0, 0xd8, 0x18, 0x37, 0xa6,
+ 0x1f, 0x33, 0x10, 0x3b, 0x36, 0xf7, 0x72, 0xa2, 0x0b, 0x03, 0xf9, 0xfa,
+ 0x80, 0xd2, 0xe7, 0xfe, 0x0c, 0x84, 0x5e, 0xdf, 0x32, 0x61, 0x65, 0xd7,
+ 0x16, 0x85, 0x52, 0x79, 0x31, 0xa8, 0x9d, 0x7b, 0x1d, 0xeb, 0x01, 0x24,
+ 0x0a, 0xeb, 0x1f, 0x8f, 0x5f, 0xef, 0x8d, 0xab, 0x57, 0xe1, 0x43, 0x84,
+ 0x58, 0x0b, 0x69, 0x3f,
+};
+static const struct drbg_kat_no_reseed kat449_t = {
+ 13, kat449_entropyin, kat449_nonce, kat449_persstr,
+ kat449_addin0, kat449_addin1, kat449_retbits
+};
+static const struct drbg_kat kat449 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat449_t
+};
+
+static const unsigned char kat450_entropyin[] = {
+ 0xfc, 0xe8, 0x5e, 0x48, 0xde, 0xd7, 0x33, 0x7f, 0xf3, 0xd3, 0xea, 0xe3,
+ 0x91, 0xe2, 0xb2, 0xa3, 0x95, 0x42, 0xbe, 0x05, 0x05, 0xf2, 0x93, 0x0c,
+};
+static const unsigned char kat450_nonce[] = {
+ 0xe5, 0x90, 0x5c, 0xe6, 0x53, 0xb9, 0x27, 0x5f, 0x14, 0xb0, 0xe6, 0xa1,
+ 0x06, 0x23, 0xbd, 0x87,
+};
+static const unsigned char kat450_persstr[] = {0};
+static const unsigned char kat450_addin0[] = {
+ 0xbe, 0xea, 0x35, 0x64, 0xab, 0x77, 0xad, 0xf6, 0x3a, 0x2f, 0xb5, 0x14,
+ 0x29, 0x7f, 0xe9, 0x3f, 0xc8, 0x33, 0x23, 0x1c, 0x22, 0xdb, 0x98, 0x57,
+ 0xa3, 0x9d, 0x6e, 0x29, 0x70, 0x85, 0x84, 0x65,
+};
+static const unsigned char kat450_addin1[] = {
+ 0x62, 0x4f, 0x46, 0xac, 0x56, 0xc6, 0x87, 0xfc, 0x33, 0x6d, 0xd4, 0xc7,
+ 0xd7, 0xdb, 0x44, 0xa5, 0x62, 0x91, 0xeb, 0x7f, 0x66, 0xd1, 0x88, 0x42,
+ 0x76, 0x06, 0x6b, 0x38, 0x55, 0x0f, 0xfc, 0x17,
+};
+static const unsigned char kat450_retbits[] = {
+ 0x69, 0x8b, 0x1e, 0xbd, 0x23, 0x91, 0xc2, 0xf1, 0x4c, 0xc8, 0xb2, 0x0d,
+ 0x96, 0x4f, 0x39, 0xd5, 0xea, 0xfb, 0x56, 0xd6, 0x13, 0xda, 0xa8, 0xd3,
+ 0x8a, 0x45, 0xcc, 0x6f, 0xd9, 0xcc, 0x98, 0xca, 0x4e, 0xac, 0xc4, 0x79,
+ 0x4b, 0xc9, 0xc3, 0x17, 0xaa, 0xab, 0x14, 0x10, 0xb8, 0xd5, 0x65, 0x48,
+ 0x43, 0x67, 0xe3, 0xd9, 0x30, 0x67, 0x1d, 0x00, 0x17, 0x13, 0xc3, 0x29,
+ 0xe6, 0x5d, 0x28, 0xd9,
+};
+static const struct drbg_kat_no_reseed kat450_t = {
+ 14, kat450_entropyin, kat450_nonce, kat450_persstr,
+ kat450_addin0, kat450_addin1, kat450_retbits
+};
+static const struct drbg_kat kat450 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat450_t
+};
+
+static const unsigned char kat451_entropyin[] = {
+ 0x2a, 0x9b, 0x56, 0xc3, 0x5d, 0x17, 0xa5, 0xeb, 0xfc, 0x5b, 0x62, 0xae,
+ 0x44, 0xe9, 0x29, 0xac, 0x3a, 0x07, 0x47, 0x90, 0x7c, 0x15, 0xef, 0xa6,
+};
+static const unsigned char kat451_nonce[] = {
+ 0x8d, 0xf8, 0xca, 0x01, 0x19, 0x67, 0x19, 0xe5, 0x26, 0xff, 0x2f, 0xfe,
+ 0xe2, 0x01, 0xef, 0x45,
+};
+static const unsigned char kat451_persstr[] = {
+ 0xa4, 0xf5, 0xfa, 0xbe, 0xd0, 0x64, 0x69, 0x39, 0x13, 0x88, 0x0e, 0x33,
+ 0xf5, 0xae, 0xc5, 0xed, 0x13, 0x2f, 0x42, 0x9f, 0xdf, 0xeb, 0x22, 0x6b,
+ 0x0e, 0x83, 0x4e, 0x72, 0xd3, 0xff, 0xb4, 0x49,
+};
+static const unsigned char kat451_addin0[] = {0};
+static const unsigned char kat451_addin1[] = {0};
+static const unsigned char kat451_retbits[] = {
+ 0x51, 0xe1, 0x9a, 0x13, 0xb1, 0x18, 0x15, 0xb1, 0xec, 0xb0, 0x65, 0xd5,
+ 0x4b, 0xbf, 0xa4, 0x5e, 0x31, 0xd9, 0x4a, 0xde, 0xca, 0x33, 0x85, 0x62,
+ 0x54, 0xf4, 0x34, 0x81, 0x94, 0x45, 0x13, 0xde, 0x8f, 0xa6, 0xcf, 0x23,
+ 0xc4, 0xfb, 0x24, 0xb3, 0x32, 0x34, 0x6d, 0x00, 0x46, 0x4b, 0x06, 0xe9,
+ 0xae, 0x80, 0xd9, 0x8d, 0xa9, 0xc6, 0xfd, 0x38, 0x39, 0xcf, 0x0c, 0xa7,
+ 0x53, 0x1c, 0xcb, 0x89,
+};
+static const struct drbg_kat_no_reseed kat451_t = {
+ 0, kat451_entropyin, kat451_nonce, kat451_persstr,
+ kat451_addin0, kat451_addin1, kat451_retbits
+};
+static const struct drbg_kat kat451 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat451_t
+};
+
+static const unsigned char kat452_entropyin[] = {
+ 0x86, 0x08, 0xbd, 0xf7, 0xd3, 0x3d, 0x89, 0xc0, 0x93, 0x24, 0xb4, 0x98,
+ 0x95, 0x41, 0x10, 0xb8, 0xc0, 0xec, 0xcb, 0x52, 0x0c, 0xf8, 0x60, 0x68,
+};
+static const unsigned char kat452_nonce[] = {
+ 0x57, 0x2e, 0x58, 0x16, 0xca, 0x90, 0xe0, 0x29, 0x10, 0x2d, 0x5d, 0x68,
+ 0x21, 0x89, 0xd8, 0x56,
+};
+static const unsigned char kat452_persstr[] = {
+ 0xc4, 0xef, 0x4c, 0x15, 0x72, 0x13, 0x37, 0x20, 0x9a, 0xb0, 0xc1, 0x03,
+ 0xdb, 0xee, 0xdb, 0x46, 0x32, 0x93, 0x58, 0xaf, 0xc4, 0xaf, 0x0a, 0xb7,
+ 0x4a, 0x27, 0x82, 0x00, 0x88, 0xce, 0xbb, 0x5b,
+};
+static const unsigned char kat452_addin0[] = {0};
+static const unsigned char kat452_addin1[] = {0};
+static const unsigned char kat452_retbits[] = {
+ 0xc3, 0x93, 0xeb, 0xef, 0x36, 0xf8, 0x6f, 0x0f, 0xaa, 0x9e, 0x40, 0x92,
+ 0xea, 0x0a, 0xad, 0x0d, 0x8b, 0x81, 0x92, 0x0d, 0x76, 0x29, 0x66, 0xf3,
+ 0x1f, 0x1f, 0xfd, 0xc9, 0x0f, 0xd2, 0x13, 0x06, 0xf9, 0x04, 0x74, 0x22,
+ 0xa9, 0xde, 0x67, 0xeb, 0x2c, 0x51, 0xec, 0xfb, 0x27, 0xcb, 0xd0, 0x68,
+ 0x64, 0x85, 0x96, 0xc5, 0x86, 0xd9, 0xc9, 0x4f, 0x31, 0xe9, 0xe8, 0x20,
+ 0x47, 0xcd, 0xaa, 0xfd,
+};
+static const struct drbg_kat_no_reseed kat452_t = {
+ 1, kat452_entropyin, kat452_nonce, kat452_persstr,
+ kat452_addin0, kat452_addin1, kat452_retbits
+};
+static const struct drbg_kat kat452 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat452_t
+};
+
+static const unsigned char kat453_entropyin[] = {
+ 0x41, 0xc6, 0x98, 0x33, 0x96, 0x8c, 0xed, 0x2e, 0x0d, 0x26, 0x85, 0xe0,
+ 0x68, 0xea, 0x7d, 0x59, 0xf6, 0xe6, 0x73, 0xaf, 0x2b, 0x7d, 0x35, 0x99,
+};
+static const unsigned char kat453_nonce[] = {
+ 0xc6, 0x30, 0xe4, 0x8e, 0xe0, 0xd5, 0x35, 0x3f, 0xc7, 0xed, 0x4d, 0x60,
+ 0x7d, 0xef, 0x81, 0x31,
+};
+static const unsigned char kat453_persstr[] = {
+ 0x49, 0xcc, 0x83, 0x10, 0xe0, 0xe8, 0x98, 0x46, 0xb6, 0x4f, 0x58, 0xfb,
+ 0xe8, 0xe2, 0xbb, 0xf6, 0x8c, 0xf9, 0x99, 0x12, 0x6f, 0x44, 0x34, 0xdf,
+ 0x3e, 0x53, 0x26, 0xf6, 0x19, 0x6e, 0xfd, 0x41,
+};
+static const unsigned char kat453_addin0[] = {0};
+static const unsigned char kat453_addin1[] = {0};
+static const unsigned char kat453_retbits[] = {
+ 0xf7, 0xf4, 0xbd, 0x0d, 0xb9, 0x84, 0xa2, 0x38, 0xdf, 0xa9, 0xdd, 0xe2,
+ 0xb5, 0x19, 0xdd, 0xfd, 0x0e, 0xb9, 0x9a, 0x54, 0xfb, 0x0a, 0xbb, 0x73,
+ 0x87, 0x3b, 0x3c, 0x1f, 0x50, 0x84, 0xdc, 0x64, 0x12, 0xbe, 0x35, 0x3f,
+ 0x58, 0x0b, 0xe0, 0x1c, 0xba, 0x58, 0xdc, 0x1d, 0x90, 0xa5, 0x8b, 0xc9,
+ 0x63, 0xbd, 0xb7, 0x7d, 0x21, 0x70, 0x15, 0x99, 0x87, 0x25, 0x9b, 0x60,
+ 0xc6, 0x6b, 0x86, 0x10,
+};
+static const struct drbg_kat_no_reseed kat453_t = {
+ 2, kat453_entropyin, kat453_nonce, kat453_persstr,
+ kat453_addin0, kat453_addin1, kat453_retbits
+};
+static const struct drbg_kat kat453 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat453_t
+};
+
+static const unsigned char kat454_entropyin[] = {
+ 0xc1, 0xc7, 0x21, 0x67, 0x85, 0xa9, 0x1e, 0x28, 0x16, 0xc8, 0xd4, 0xd1,
+ 0x41, 0x77, 0x2d, 0x12, 0x2a, 0xc3, 0xa1, 0x08, 0xd6, 0xea, 0x03, 0x44,
+};
+static const unsigned char kat454_nonce[] = {
+ 0x8e, 0x22, 0x8b, 0x8f, 0xd6, 0xe4, 0x67, 0x16, 0x09, 0xa2, 0x46, 0x08,
+ 0x2c, 0xaa, 0x3f, 0x2b,
+};
+static const unsigned char kat454_persstr[] = {
+ 0xd4, 0x0f, 0x20, 0x72, 0xa2, 0x73, 0x54, 0xdc, 0xe5, 0xd4, 0xb1, 0x90,
+ 0xc0, 0x3c, 0x79, 0xc7, 0x04, 0x41, 0xf1, 0xb9, 0xac, 0x0e, 0x61, 0x34,
+ 0x5b, 0x76, 0x71, 0xdd, 0x57, 0x7f, 0xf4, 0xab,
+};
+static const unsigned char kat454_addin0[] = {0};
+static const unsigned char kat454_addin1[] = {0};
+static const unsigned char kat454_retbits[] = {
+ 0x55, 0xd4, 0x62, 0xeb, 0x21, 0x08, 0x3b, 0x55, 0xfa, 0x5b, 0xa9, 0xb6,
+ 0x06, 0xfb, 0xf6, 0x66, 0x91, 0x90, 0x23, 0x5c, 0xf1, 0x12, 0x12, 0x3a,
+ 0x40, 0xa4, 0xa2, 0xcb, 0xf2, 0x4a, 0xad, 0xb6, 0x18, 0x14, 0xfe, 0x50,
+ 0x35, 0x8e, 0xaa, 0x13, 0x77, 0xfc, 0x82, 0x93, 0x12, 0xd9, 0x83, 0x4d,
+ 0xc6, 0xa3, 0x73, 0x5d, 0x93, 0x6a, 0xb3, 0x05, 0x57, 0x53, 0x2b, 0x69,
+ 0xcd, 0x7b, 0x26, 0x8e,
+};
+static const struct drbg_kat_no_reseed kat454_t = {
+ 3, kat454_entropyin, kat454_nonce, kat454_persstr,
+ kat454_addin0, kat454_addin1, kat454_retbits
+};
+static const struct drbg_kat kat454 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat454_t
+};
+
+static const unsigned char kat455_entropyin[] = {
+ 0xb3, 0x47, 0x43, 0x30, 0xa2, 0x63, 0x61, 0xab, 0xaf, 0x69, 0x51, 0x1f,
+ 0x92, 0x01, 0x80, 0x69, 0x2a, 0x10, 0xb8, 0x29, 0xe6, 0x0f, 0x9e, 0x27,
+};
+static const unsigned char kat455_nonce[] = {
+ 0xbe, 0x42, 0x0f, 0xf2, 0x6f, 0x33, 0xae, 0x5c, 0x11, 0x35, 0x05, 0x7e,
+ 0x37, 0x9c, 0xe8, 0xf7,
+};
+static const unsigned char kat455_persstr[] = {
+ 0x2b, 0x21, 0xb8, 0x48, 0xb8, 0xae, 0xa5, 0x1b, 0x43, 0x24, 0xf9, 0xbd,
+ 0xd6, 0x27, 0x52, 0xf5, 0x48, 0xfc, 0xdc, 0x5a, 0xb3, 0x20, 0xcb, 0x33,
+ 0xdb, 0x1f, 0x23, 0xf9, 0x38, 0x3b, 0x57, 0x65,
+};
+static const unsigned char kat455_addin0[] = {0};
+static const unsigned char kat455_addin1[] = {0};
+static const unsigned char kat455_retbits[] = {
+ 0x31, 0x40, 0x15, 0x58, 0x8b, 0xa1, 0x8c, 0x37, 0x5f, 0xeb, 0xd6, 0x4e,
+ 0xe9, 0x54, 0x23, 0xd4, 0x2a, 0x76, 0x79, 0xda, 0x10, 0xe7, 0xe1, 0x17,
+ 0xd7, 0xb9, 0x70, 0x89, 0xbd, 0xd2, 0x00, 0x27, 0x01, 0x0d, 0x7e, 0x60,
+ 0x2d, 0x6e, 0x79, 0xb8, 0xec, 0x41, 0xa7, 0xe2, 0xbf, 0x6a, 0xc4, 0x6a,
+ 0x41, 0xea, 0x66, 0x16, 0x01, 0xbb, 0xf6, 0x66, 0xaa, 0xf9, 0x9f, 0xb5,
+ 0x46, 0x7f, 0x22, 0x1e,
+};
+static const struct drbg_kat_no_reseed kat455_t = {
+ 4, kat455_entropyin, kat455_nonce, kat455_persstr,
+ kat455_addin0, kat455_addin1, kat455_retbits
+};
+static const struct drbg_kat kat455 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat455_t
+};
+
+static const unsigned char kat456_entropyin[] = {
+ 0xa9, 0x5c, 0x12, 0xce, 0x08, 0xf5, 0x87, 0xfd, 0xec, 0xc6, 0x9e, 0x8f,
+ 0x41, 0xe7, 0xb7, 0x17, 0x90, 0x09, 0x4d, 0x46, 0xdd, 0x5b, 0xa7, 0xd9,
+};
+static const unsigned char kat456_nonce[] = {
+ 0xbe, 0x3e, 0xca, 0x66, 0x8b, 0x3e, 0xb2, 0x5d, 0xdc, 0x33, 0x36, 0xac,
+ 0x70, 0xe3, 0x4a, 0x56,
+};
+static const unsigned char kat456_persstr[] = {
+ 0x01, 0xbf, 0xca, 0x95, 0x6d, 0x03, 0x70, 0xb8, 0x50, 0x9e, 0xbd, 0x40,
+ 0x83, 0x48, 0x72, 0x28, 0xea, 0x95, 0x72, 0xeb, 0x52, 0xc6, 0x4e, 0x83,
+ 0x46, 0x2c, 0x09, 0x07, 0x72, 0x08, 0x87, 0x60,
+};
+static const unsigned char kat456_addin0[] = {0};
+static const unsigned char kat456_addin1[] = {0};
+static const unsigned char kat456_retbits[] = {
+ 0xa9, 0x94, 0xa0, 0xb9, 0x7c, 0x21, 0xcc, 0x35, 0x51, 0xcd, 0xc6, 0x46,
+ 0x02, 0xda, 0x0b, 0x1f, 0x67, 0x5d, 0x72, 0x29, 0xf4, 0x50, 0x40, 0x3e,
+ 0x30, 0x3d, 0x1a, 0x7c, 0xb9, 0x37, 0x6e, 0x9b, 0x5f, 0x88, 0x99, 0x2c,
+ 0x43, 0x86, 0xab, 0x75, 0x86, 0x4c, 0x24, 0xc5, 0xba, 0xe2, 0xfc, 0xe8,
+ 0xb0, 0x0e, 0x9b, 0xa6, 0xa6, 0x2f, 0x17, 0x62, 0x09, 0x89, 0x45, 0x65,
+ 0x04, 0x4c, 0x94, 0x21,
+};
+static const struct drbg_kat_no_reseed kat456_t = {
+ 5, kat456_entropyin, kat456_nonce, kat456_persstr,
+ kat456_addin0, kat456_addin1, kat456_retbits
+};
+static const struct drbg_kat kat456 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat456_t
+};
+
+static const unsigned char kat457_entropyin[] = {
+ 0xfd, 0xbf, 0x44, 0x18, 0x64, 0x51, 0xe1, 0x9c, 0x0e, 0x0e, 0x71, 0x98,
+ 0x49, 0x55, 0xd3, 0x01, 0x43, 0x46, 0x14, 0x67, 0x9c, 0xa0, 0x53, 0x10,
+};
+static const unsigned char kat457_nonce[] = {
+ 0xc4, 0x46, 0xf2, 0xc5, 0x0f, 0x81, 0x48, 0xb4, 0x43, 0x5f, 0xa7, 0xf0,
+ 0x39, 0x01, 0xad, 0x16,
+};
+static const unsigned char kat457_persstr[] = {
+ 0x0c, 0x40, 0x15, 0x31, 0x7c, 0x92, 0x2f, 0xbc, 0xe0, 0x93, 0x4b, 0xc2,
+ 0x96, 0xec, 0x4d, 0x0c, 0x5e, 0x87, 0x94, 0x0c, 0xc3, 0x5b, 0x53, 0x5e,
+ 0xbb, 0x32, 0x53, 0xc5, 0xd1, 0x0c, 0xb5, 0x0d,
+};
+static const unsigned char kat457_addin0[] = {0};
+static const unsigned char kat457_addin1[] = {0};
+static const unsigned char kat457_retbits[] = {
+ 0x0d, 0x20, 0x84, 0x32, 0x19, 0x43, 0x3b, 0x90, 0x3e, 0x8a, 0x8e, 0x70,
+ 0xe4, 0x55, 0xcf, 0x57, 0x4b, 0xb3, 0x15, 0x30, 0x8c, 0xf9, 0xf2, 0xd8,
+ 0x37, 0xb7, 0xb2, 0x35, 0xa9, 0x5f, 0x2a, 0xc9, 0x89, 0x66, 0x1c, 0xb8,
+ 0x65, 0xe8, 0xf4, 0xb7, 0x74, 0x94, 0xa3, 0xdc, 0xa3, 0x14, 0x80, 0x15,
+ 0xab, 0xde, 0x0a, 0x73, 0xc6, 0x56, 0xa7, 0xa3, 0x6a, 0xae, 0x91, 0xf0,
+ 0x2d, 0xce, 0x30, 0xbd,
+};
+static const struct drbg_kat_no_reseed kat457_t = {
+ 6, kat457_entropyin, kat457_nonce, kat457_persstr,
+ kat457_addin0, kat457_addin1, kat457_retbits
+};
+static const struct drbg_kat kat457 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat457_t
+};
+
+static const unsigned char kat458_entropyin[] = {
+ 0x3e, 0xf9, 0x4f, 0xda, 0x2d, 0x12, 0xa0, 0x76, 0xee, 0x5a, 0xbf, 0xd7,
+ 0xef, 0x39, 0xe6, 0xc7, 0xd7, 0x5a, 0x7f, 0xb9, 0x28, 0x1b, 0x4b, 0x55,
+};
+static const unsigned char kat458_nonce[] = {
+ 0xd8, 0x10, 0x72, 0xc4, 0x6e, 0xfb, 0xd9, 0x1e, 0x9c, 0x6b, 0xda, 0x13,
+ 0xcc, 0xc8, 0x7c, 0x7e,
+};
+static const unsigned char kat458_persstr[] = {
+ 0x57, 0x11, 0xa9, 0x70, 0x5d, 0x80, 0x0f, 0xa1, 0xa2, 0x1b, 0xd7, 0x75,
+ 0x2e, 0x3f, 0x1d, 0x3d, 0xa9, 0x0a, 0x1f, 0x33, 0x69, 0xfe, 0xa4, 0x03,
+ 0xa9, 0xcb, 0x65, 0x81, 0x24, 0x4c, 0x7d, 0xe9,
+};
+static const unsigned char kat458_addin0[] = {0};
+static const unsigned char kat458_addin1[] = {0};
+static const unsigned char kat458_retbits[] = {
+ 0x7d, 0x70, 0x72, 0x2a, 0x76, 0x82, 0x52, 0x64, 0xb3, 0x70, 0x19, 0xb4,
+ 0xda, 0x28, 0x6c, 0x73, 0x47, 0x89, 0x0f, 0x59, 0xf0, 0xa4, 0x98, 0x72,
+ 0x8e, 0x63, 0x59, 0xbd, 0x9d, 0x04, 0xed, 0x96, 0xa7, 0x58, 0x81, 0x66,
+ 0xc6, 0xef, 0x39, 0x1d, 0xa0, 0x79, 0x94, 0xd6, 0x3d, 0xb8, 0xa2, 0xfb,
+ 0x2c, 0xdc, 0xe3, 0x18, 0x7b, 0x56, 0xae, 0xe9, 0xa2, 0xd5, 0xcc, 0x0f,
+ 0x85, 0x2b, 0x2e, 0xd9,
+};
+static const struct drbg_kat_no_reseed kat458_t = {
+ 7, kat458_entropyin, kat458_nonce, kat458_persstr,
+ kat458_addin0, kat458_addin1, kat458_retbits
+};
+static const struct drbg_kat kat458 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat458_t
+};
+
+static const unsigned char kat459_entropyin[] = {
+ 0xf3, 0x51, 0x9e, 0x7d, 0xa5, 0x79, 0x70, 0x17, 0xef, 0xa1, 0xa1, 0xa0,
+ 0x15, 0xf9, 0xa6, 0x14, 0x47, 0xfa, 0x20, 0xd0, 0xf2, 0xfa, 0x4d, 0x51,
+};
+static const unsigned char kat459_nonce[] = {
+ 0xfd, 0x2d, 0x1e, 0xae, 0xe6, 0xd8, 0x45, 0x5a, 0x03, 0xe8, 0x3a, 0x0f,
+ 0x80, 0xe1, 0x5b, 0x17,
+};
+static const unsigned char kat459_persstr[] = {
+ 0x1a, 0xb1, 0x08, 0xec, 0x09, 0x92, 0x70, 0x04, 0x93, 0x26, 0xd1, 0xde,
+ 0xde, 0xee, 0x52, 0x6b, 0x29, 0xd1, 0x77, 0x73, 0xf7, 0x66, 0x57, 0x18,
+ 0x66, 0xf4, 0xe9, 0x38, 0x3c, 0x25, 0xcc, 0xfa,
+};
+static const unsigned char kat459_addin0[] = {0};
+static const unsigned char kat459_addin1[] = {0};
+static const unsigned char kat459_retbits[] = {
+ 0xd2, 0xe7, 0x66, 0x43, 0xe8, 0xf9, 0xec, 0x5a, 0x09, 0xf8, 0x66, 0x55,
+ 0xfc, 0x65, 0x73, 0x8d, 0xd0, 0xd2, 0x0a, 0x52, 0x5f, 0x14, 0x97, 0xb3,
+ 0x27, 0x29, 0xaf, 0xce, 0xe8, 0x73, 0xc8, 0x09, 0x9f, 0x6b, 0x61, 0xc4,
+ 0xd9, 0x32, 0x4e, 0x02, 0xa2, 0xd8, 0x9e, 0x50, 0xf3, 0x75, 0x84, 0xc2,
+ 0xcd, 0x27, 0x76, 0x34, 0x22, 0x10, 0xda, 0x42, 0x05, 0x8f, 0x07, 0xdf,
+ 0x3f, 0x85, 0xf8, 0xac,
+};
+static const struct drbg_kat_no_reseed kat459_t = {
+ 8, kat459_entropyin, kat459_nonce, kat459_persstr,
+ kat459_addin0, kat459_addin1, kat459_retbits
+};
+static const struct drbg_kat kat459 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat459_t
+};
+
+static const unsigned char kat460_entropyin[] = {
+ 0x41, 0x07, 0x2a, 0x1c, 0x20, 0x92, 0x0c, 0xe5, 0xc5, 0x2c, 0x9e, 0xb6,
+ 0x8b, 0x87, 0xf9, 0x7a, 0x65, 0x8a, 0x66, 0x97, 0xd4, 0xe9, 0x67, 0xdb,
+};
+static const unsigned char kat460_nonce[] = {
+ 0xcb, 0x03, 0xef, 0xae, 0xca, 0x21, 0x53, 0x4c, 0x59, 0xa9, 0xbb, 0x12,
+ 0xf1, 0x46, 0xee, 0x21,
+};
+static const unsigned char kat460_persstr[] = {
+ 0x9a, 0x09, 0xae, 0x50, 0xf7, 0x61, 0x49, 0xa9, 0xa1, 0xf5, 0x5a, 0x37,
+ 0xec, 0x30, 0xaa, 0x08, 0xcb, 0x57, 0x30, 0x57, 0xd4, 0xf5, 0xb5, 0xfa,
+ 0x77, 0x13, 0xef, 0x7a, 0x1c, 0x08, 0x9b, 0xaa,
+};
+static const unsigned char kat460_addin0[] = {0};
+static const unsigned char kat460_addin1[] = {0};
+static const unsigned char kat460_retbits[] = {
+ 0x52, 0x74, 0x42, 0x04, 0x1c, 0x23, 0x0a, 0xd4, 0x96, 0x82, 0xd7, 0x89,
+ 0x2c, 0x85, 0x16, 0xf6, 0x58, 0xed, 0x0b, 0x16, 0x38, 0xd1, 0xed, 0x01,
+ 0xb2, 0x79, 0x14, 0x7a, 0x6b, 0x4a, 0x81, 0x5e, 0x41, 0x66, 0x67, 0x90,
+ 0x99, 0xfc, 0x2e, 0xa1, 0xfc, 0x44, 0xb4, 0xe5, 0xe4, 0xb6, 0x10, 0x6f,
+ 0x66, 0x91, 0x50, 0x5d, 0xd0, 0x62, 0xea, 0x3b, 0x3d, 0xd6, 0x73, 0x32,
+ 0xec, 0x48, 0x2e, 0xf3,
+};
+static const struct drbg_kat_no_reseed kat460_t = {
+ 9, kat460_entropyin, kat460_nonce, kat460_persstr,
+ kat460_addin0, kat460_addin1, kat460_retbits
+};
+static const struct drbg_kat kat460 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat460_t
+};
+
+static const unsigned char kat461_entropyin[] = {
+ 0xfb, 0x67, 0xde, 0x62, 0x27, 0x1a, 0xda, 0xff, 0x78, 0xdd, 0x3c, 0x06,
+ 0xfa, 0xb6, 0xb9, 0xbd, 0x01, 0xa8, 0x49, 0x6f, 0xc9, 0xbe, 0xb6, 0xa1,
+};
+static const unsigned char kat461_nonce[] = {
+ 0x1c, 0x5f, 0x50, 0xe7, 0x37, 0x2f, 0x8f, 0x8d, 0x40, 0x44, 0x67, 0x4c,
+ 0x1f, 0xf1, 0x98, 0x98,
+};
+static const unsigned char kat461_persstr[] = {
+ 0x8e, 0x4f, 0x33, 0xea, 0x52, 0xa9, 0x94, 0x43, 0x83, 0xeb, 0xe9, 0x0a,
+ 0x30, 0x42, 0xaa, 0xfe, 0x13, 0x03, 0xc3, 0x28, 0x29, 0x34, 0x04, 0x37,
+ 0x95, 0x7f, 0x83, 0x35, 0x6c, 0x83, 0x7e, 0x2a,
+};
+static const unsigned char kat461_addin0[] = {0};
+static const unsigned char kat461_addin1[] = {0};
+static const unsigned char kat461_retbits[] = {
+ 0xf3, 0x26, 0x9b, 0x27, 0xab, 0x4f, 0x7e, 0xb1, 0xff, 0x07, 0x0e, 0xb2,
+ 0xbb, 0x87, 0x94, 0xb4, 0xf2, 0x2b, 0x0e, 0xec, 0x45, 0xc2, 0xad, 0x1b,
+ 0xbf, 0x2c, 0x5c, 0x0b, 0x7c, 0xd3, 0x2d, 0x4d, 0xe0, 0x68, 0xf3, 0xe8,
+ 0x28, 0x2c, 0x3d, 0xcc, 0x35, 0xc9, 0xf4, 0x69, 0xef, 0x0a, 0x9d, 0x31,
+ 0x75, 0x6a, 0xed, 0xce, 0x00, 0xcf, 0xae, 0xb3, 0x09, 0x59, 0x4b, 0x81,
+ 0x64, 0x91, 0xcc, 0xad,
+};
+static const struct drbg_kat_no_reseed kat461_t = {
+ 10, kat461_entropyin, kat461_nonce, kat461_persstr,
+ kat461_addin0, kat461_addin1, kat461_retbits
+};
+static const struct drbg_kat kat461 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat461_t
+};
+
+static const unsigned char kat462_entropyin[] = {
+ 0xa2, 0x2d, 0x4f, 0xac, 0x12, 0x66, 0xce, 0x8f, 0x7c, 0xba, 0xff, 0x6b,
+ 0x9d, 0x47, 0x42, 0x4a, 0x10, 0xf2, 0x69, 0xe1, 0x6b, 0x8c, 0x52, 0x78,
+};
+static const unsigned char kat462_nonce[] = {
+ 0x7a, 0x04, 0xd4, 0x04, 0x45, 0x33, 0xe9, 0x83, 0x92, 0x60, 0x23, 0xc5,
+ 0xa8, 0xc0, 0xb1, 0x0b,
+};
+static const unsigned char kat462_persstr[] = {
+ 0xa3, 0x75, 0xcb, 0x70, 0xba, 0x80, 0x06, 0xc7, 0x4c, 0xcd, 0x06, 0xa9,
+ 0xc8, 0xe4, 0x1e, 0xad, 0xc4, 0x45, 0x33, 0x1e, 0x14, 0xb8, 0xe1, 0x95,
+ 0xf4, 0xa3, 0xfa, 0xb0, 0xc1, 0xdf, 0x6c, 0x96,
+};
+static const unsigned char kat462_addin0[] = {0};
+static const unsigned char kat462_addin1[] = {0};
+static const unsigned char kat462_retbits[] = {
+ 0xb3, 0xf9, 0xa3, 0x93, 0x85, 0x61, 0x6f, 0x68, 0x51, 0xbe, 0xb7, 0xc3,
+ 0x77, 0x09, 0xac, 0x1f, 0x30, 0x66, 0x7d, 0xf1, 0x1c, 0x9d, 0x04, 0x7d,
+ 0xfc, 0xd5, 0xc7, 0x80, 0x3e, 0x93, 0x0b, 0xf3, 0x84, 0x07, 0x0e, 0x35,
+ 0x0f, 0x1d, 0x0b, 0x8f, 0xaa, 0x39, 0xf2, 0x9c, 0x98, 0xd9, 0xdf, 0x59,
+ 0xd3, 0x5f, 0xfb, 0x52, 0x0c, 0x8b, 0xc9, 0x0b, 0xe2, 0x2f, 0xc7, 0x7d,
+ 0x4d, 0x67, 0xf1, 0x34,
+};
+static const struct drbg_kat_no_reseed kat462_t = {
+ 11, kat462_entropyin, kat462_nonce, kat462_persstr,
+ kat462_addin0, kat462_addin1, kat462_retbits
+};
+static const struct drbg_kat kat462 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat462_t
+};
+
+static const unsigned char kat463_entropyin[] = {
+ 0x48, 0xc4, 0xfc, 0xab, 0x28, 0x5f, 0x5b, 0xb3, 0xed, 0xaa, 0x34, 0x8c,
+ 0x45, 0x06, 0xd2, 0x36, 0xbb, 0x9f, 0xbb, 0x29, 0x7d, 0xd4, 0xf3, 0x28,
+};
+static const unsigned char kat463_nonce[] = {
+ 0x8a, 0xda, 0x0b, 0x51, 0x6d, 0xc4, 0x9a, 0xc8, 0xc3, 0x44, 0xf3, 0xb7,
+ 0x28, 0x27, 0x40, 0x18,
+};
+static const unsigned char kat463_persstr[] = {
+ 0x52, 0x8e, 0xed, 0x74, 0x30, 0x85, 0xd3, 0xd4, 0x16, 0xbd, 0x06, 0x98,
+ 0x4d, 0xe2, 0x44, 0x16, 0x1b, 0xde, 0xe0, 0xbf, 0xb5, 0x98, 0xa7, 0x47,
+ 0xf2, 0x9c, 0x37, 0xfa, 0x94, 0x12, 0x97, 0x6f,
+};
+static const unsigned char kat463_addin0[] = {0};
+static const unsigned char kat463_addin1[] = {0};
+static const unsigned char kat463_retbits[] = {
+ 0x2b, 0x47, 0x3e, 0x1c, 0x19, 0x69, 0x3b, 0x30, 0x8d, 0xef, 0x41, 0xf0,
+ 0xcd, 0x99, 0xcd, 0xbf, 0x33, 0x1c, 0x7d, 0x7d, 0x21, 0x5c, 0xd5, 0x02,
+ 0x8e, 0x36, 0x19, 0xad, 0x91, 0xc8, 0xe7, 0xd5, 0xe0, 0x24, 0x80, 0x48,
+ 0x29, 0xf4, 0xb2, 0x90, 0x5a, 0x33, 0x54, 0x49, 0x96, 0x19, 0x6d, 0x5c,
+ 0xaf, 0xab, 0xd2, 0x27, 0x0d, 0x3c, 0xdd, 0x66, 0x89, 0xdd, 0x12, 0x46,
+ 0x24, 0x68, 0xad, 0x50,
+};
+static const struct drbg_kat_no_reseed kat463_t = {
+ 12, kat463_entropyin, kat463_nonce, kat463_persstr,
+ kat463_addin0, kat463_addin1, kat463_retbits
+};
+static const struct drbg_kat kat463 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat463_t
+};
+
+static const unsigned char kat464_entropyin[] = {
+ 0x60, 0x7f, 0xf9, 0x9f, 0xac, 0xb2, 0x69, 0xd5, 0xe8, 0x5b, 0xaf, 0x03,
+ 0xdd, 0x93, 0xde, 0x5e, 0xa5, 0x43, 0x16, 0x8e, 0x69, 0x39, 0xd9, 0x72,
+};
+static const unsigned char kat464_nonce[] = {
+ 0xf8, 0x49, 0xa0, 0xfa, 0x95, 0xd0, 0x4b, 0x74, 0x1e, 0x46, 0xd1, 0x8f,
+ 0x06, 0x12, 0xee, 0xb7,
+};
+static const unsigned char kat464_persstr[] = {
+ 0x95, 0xfe, 0x53, 0xeb, 0x4d, 0xb0, 0x9a, 0xa8, 0x5b, 0x94, 0x06, 0x53,
+ 0x0c, 0x9e, 0x99, 0x4c, 0x69, 0x5b, 0x86, 0xc9, 0xf0, 0x4e, 0xe5, 0x3f,
+ 0x7f, 0x49, 0x2c, 0x4d, 0x75, 0x82, 0x02, 0xad,
+};
+static const unsigned char kat464_addin0[] = {0};
+static const unsigned char kat464_addin1[] = {0};
+static const unsigned char kat464_retbits[] = {
+ 0xca, 0xe0, 0x4e, 0xd6, 0x42, 0xfa, 0x6d, 0xd8, 0x75, 0x6a, 0x97, 0xb6,
+ 0xa3, 0x24, 0x94, 0xd6, 0xb9, 0x5d, 0x5a, 0x52, 0x65, 0x41, 0x2d, 0x27,
+ 0xa0, 0xda, 0x9a, 0x70, 0xad, 0x91, 0x4e, 0xd3, 0x1a, 0x67, 0x4c, 0x6e,
+ 0xd9, 0x00, 0xbe, 0x9a, 0xfa, 0x49, 0x3f, 0x8e, 0x14, 0x1a, 0x08, 0xab,
+ 0xa8, 0xda, 0xb7, 0x5c, 0xba, 0x57, 0x3c, 0x46, 0x63, 0x7a, 0x9f, 0xaf,
+ 0x4c, 0x6a, 0x71, 0x61,
+};
+static const struct drbg_kat_no_reseed kat464_t = {
+ 13, kat464_entropyin, kat464_nonce, kat464_persstr,
+ kat464_addin0, kat464_addin1, kat464_retbits
+};
+static const struct drbg_kat kat464 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat464_t
+};
+
+static const unsigned char kat465_entropyin[] = {
+ 0x99, 0xe2, 0xdf, 0x3b, 0xd5, 0x50, 0x08, 0xe9, 0xce, 0xa0, 0xd0, 0xea,
+ 0x58, 0xc3, 0x02, 0x2e, 0xff, 0x1d, 0x1e, 0x48, 0x9c, 0xd6, 0xf8, 0xee,
+};
+static const unsigned char kat465_nonce[] = {
+ 0xb3, 0x90, 0x7b, 0x88, 0x20, 0xc9, 0xf2, 0x29, 0x79, 0xb6, 0x63, 0x29,
+ 0x2f, 0x7a, 0xc7, 0x88,
+};
+static const unsigned char kat465_persstr[] = {
+ 0x28, 0xbe, 0xb6, 0x61, 0x18, 0xcb, 0xce, 0x5e, 0xed, 0x82, 0x5b, 0xdc,
+ 0xa9, 0xc8, 0xb6, 0x5b, 0x6c, 0x6a, 0x49, 0x8d, 0xb6, 0x22, 0x6e, 0x72,
+ 0xe1, 0xfc, 0x01, 0xe7, 0x1f, 0xd2, 0x2c, 0x82,
+};
+static const unsigned char kat465_addin0[] = {0};
+static const unsigned char kat465_addin1[] = {0};
+static const unsigned char kat465_retbits[] = {
+ 0x43, 0xeb, 0x72, 0x1f, 0x36, 0x69, 0xf9, 0x18, 0xfd, 0x84, 0x1d, 0x79,
+ 0xe2, 0xa2, 0x36, 0x48, 0xf8, 0x8c, 0x98, 0x69, 0x26, 0x0b, 0x62, 0x4b,
+ 0x8a, 0x33, 0x81, 0xbd, 0xc1, 0xd2, 0xb1, 0x29, 0x6b, 0x6b, 0xa1, 0xe0,
+ 0x75, 0xcd, 0x4d, 0x3e, 0xe0, 0x6a, 0x8b, 0x4f, 0x98, 0x6c, 0x00, 0xbb,
+ 0x2b, 0x9c, 0x5a, 0x1e, 0xb2, 0x3b, 0x82, 0xce, 0x08, 0x1f, 0x51, 0x91,
+ 0x3e, 0x46, 0xa4, 0xdc,
+};
+static const struct drbg_kat_no_reseed kat465_t = {
+ 14, kat465_entropyin, kat465_nonce, kat465_persstr,
+ kat465_addin0, kat465_addin1, kat465_retbits
+};
+static const struct drbg_kat kat465 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat465_t
+};
+
+static const unsigned char kat466_entropyin[] = {
+ 0x43, 0xf2, 0x47, 0xa2, 0xee, 0x1c, 0xb5, 0x94, 0x3f, 0x0a, 0x4a, 0x69,
+ 0x42, 0x35, 0x5b, 0x16, 0x33, 0xab, 0x82, 0xd0, 0xcf, 0x60, 0xd4, 0x33,
+};
+static const unsigned char kat466_nonce[] = {
+ 0x81, 0x81, 0xab, 0x27, 0xf9, 0x3f, 0x66, 0x23, 0x25, 0xf8, 0xcd, 0xf7,
+ 0x7b, 0xd4, 0x63, 0x99,
+};
+static const unsigned char kat466_persstr[] = {
+ 0xd3, 0x93, 0x50, 0x8a, 0x6d, 0xa0, 0x49, 0xa6, 0x46, 0xaa, 0xc8, 0xc9,
+ 0xcf, 0x8f, 0xf5, 0x3a, 0x70, 0xf6, 0x64, 0x5a, 0x67, 0xec, 0x46, 0x6d,
+ 0x6e, 0xa6, 0x24, 0x1e, 0x0f, 0xac, 0xfa, 0xd9,
+};
+static const unsigned char kat466_addin0[] = {
+ 0xdc, 0x3e, 0x8d, 0x4c, 0x2b, 0xd4, 0xae, 0xe2, 0x78, 0xde, 0x3f, 0x99,
+ 0x8c, 0xa6, 0x03, 0xec, 0x50, 0x23, 0x32, 0xb6, 0xa1, 0xcb, 0x6c, 0x82,
+ 0x85, 0xb8, 0x4c, 0x84, 0xba, 0x54, 0xd7, 0x32,
+};
+static const unsigned char kat466_addin1[] = {
+ 0x1d, 0x0d, 0x64, 0xb5, 0xa5, 0x0d, 0xe0, 0x3e, 0xe2, 0x65, 0x4f, 0xa5,
+ 0x90, 0x00, 0xfb, 0xff, 0x87, 0xb4, 0xb8, 0xb3, 0x2e, 0x90, 0xa4, 0xde,
+ 0xe9, 0x0c, 0x9a, 0x76, 0x12, 0xea, 0xa5, 0x75,
+};
+static const unsigned char kat466_retbits[] = {
+ 0xd6, 0xd7, 0xc6, 0x4d, 0xd9, 0x22, 0xf9, 0xc7, 0xf3, 0xf5, 0x38, 0xc4,
+ 0xcb, 0xc7, 0x91, 0xda, 0x2d, 0xd1, 0x3f, 0x27, 0x81, 0x35, 0x22, 0x5c,
+ 0xd7, 0xce, 0x36, 0x73, 0x8c, 0xe2, 0x72, 0xf3, 0x51, 0x55, 0xd4, 0xc2,
+ 0x69, 0x6e, 0x7e, 0x10, 0xa8, 0xf4, 0x8c, 0x73, 0x60, 0xa1, 0xb3, 0x1a,
+ 0x30, 0x03, 0x7f, 0x66, 0x04, 0xff, 0xb7, 0xbc, 0x7b, 0x29, 0xef, 0x0e,
+ 0xf5, 0xac, 0xa8, 0x4a,
+};
+static const struct drbg_kat_no_reseed kat466_t = {
+ 0, kat466_entropyin, kat466_nonce, kat466_persstr,
+ kat466_addin0, kat466_addin1, kat466_retbits
+};
+static const struct drbg_kat kat466 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat466_t
+};
+
+static const unsigned char kat467_entropyin[] = {
+ 0xb4, 0xe8, 0xfb, 0xf6, 0x33, 0x51, 0x38, 0xa2, 0x4e, 0xfb, 0x12, 0x0e,
+ 0xe9, 0xff, 0x7f, 0x99, 0xe1, 0x94, 0xa1, 0x7e, 0x64, 0x49, 0x62, 0xe0,
+};
+static const unsigned char kat467_nonce[] = {
+ 0x8e, 0x4d, 0xad, 0x78, 0x74, 0x19, 0x52, 0xb3, 0x4a, 0x27, 0xbb, 0x85,
+ 0xce, 0x2b, 0xeb, 0xd7,
+};
+static const unsigned char kat467_persstr[] = {
+ 0x44, 0x08, 0xdc, 0x6f, 0x19, 0xad, 0x7c, 0xab, 0x07, 0x60, 0x56, 0x0c,
+ 0x21, 0x75, 0x32, 0xab, 0x7d, 0xd5, 0x65, 0x81, 0x20, 0xa9, 0x4a, 0x60,
+ 0x3f, 0xe3, 0xb6, 0x2f, 0x8f, 0xc5, 0x58, 0x38,
+};
+static const unsigned char kat467_addin0[] = {
+ 0x2f, 0x18, 0xe4, 0x2c, 0x7a, 0x50, 0x80, 0x1b, 0xf5, 0x13, 0x5a, 0x0d,
+ 0x8f, 0xce, 0x0a, 0x9b, 0x80, 0x2b, 0xea, 0x0b, 0xef, 0x4c, 0x7f, 0x35,
+ 0xe4, 0xd8, 0x94, 0x82, 0x11, 0x54, 0x72, 0x21,
+};
+static const unsigned char kat467_addin1[] = {
+ 0xde, 0x9e, 0x72, 0xfe, 0x41, 0x30, 0xfb, 0x75, 0xc8, 0xca, 0xed, 0x41,
+ 0x5e, 0x14, 0xbd, 0x0b, 0x92, 0x2b, 0x9b, 0xef, 0x8b, 0xe1, 0x44, 0xf4,
+ 0x36, 0xde, 0xfa, 0xda, 0x10, 0x96, 0xf9, 0x81,
+};
+static const unsigned char kat467_retbits[] = {
+ 0x85, 0x7a, 0x93, 0x1d, 0x68, 0xe2, 0xf1, 0xf4, 0x1d, 0x9e, 0x92, 0xa7,
+ 0x4f, 0x57, 0x8b, 0xcc, 0x86, 0x08, 0x26, 0x04, 0x03, 0x2f, 0x3b, 0xca,
+ 0x15, 0x2e, 0x70, 0xcb, 0xb4, 0xc0, 0xfa, 0xda, 0xdc, 0x26, 0xbd, 0x26,
+ 0x67, 0x19, 0x4a, 0x6c, 0x72, 0x7e, 0x32, 0xec, 0xc1, 0xb2, 0xfc, 0x63,
+ 0x4b, 0x5b, 0xdd, 0x2d, 0x90, 0x06, 0xe6, 0xfa, 0xaf, 0xfc, 0x23, 0x34,
+ 0x53, 0xda, 0x47, 0x25,
+};
+static const struct drbg_kat_no_reseed kat467_t = {
+ 1, kat467_entropyin, kat467_nonce, kat467_persstr,
+ kat467_addin0, kat467_addin1, kat467_retbits
+};
+static const struct drbg_kat kat467 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat467_t
+};
+
+static const unsigned char kat468_entropyin[] = {
+ 0xd3, 0xd9, 0x0c, 0x95, 0x3e, 0x60, 0xcc, 0xe2, 0x9d, 0x49, 0x13, 0xb6,
+ 0xba, 0x67, 0x66, 0xf9, 0xd8, 0x5f, 0x1f, 0xa0, 0x54, 0xf2, 0x35, 0x9c,
+};
+static const unsigned char kat468_nonce[] = {
+ 0x90, 0x23, 0xad, 0x28, 0xe8, 0xc5, 0xf2, 0xe4, 0xbe, 0x8f, 0xb2, 0xd8,
+ 0x6f, 0x62, 0x25, 0x05,
+};
+static const unsigned char kat468_persstr[] = {
+ 0xd4, 0x9d, 0xb6, 0x64, 0xdc, 0xa3, 0xc4, 0x0e, 0x69, 0x12, 0x7b, 0x04,
+ 0xf8, 0xec, 0x7f, 0xb0, 0x07, 0x73, 0xb8, 0xdd, 0xdd, 0xb9, 0x1a, 0xe2,
+ 0xe1, 0xe3, 0xc8, 0x4c, 0x68, 0xff, 0x98, 0x55,
+};
+static const unsigned char kat468_addin0[] = {
+ 0xee, 0x10, 0xa8, 0x06, 0x78, 0x41, 0xb5, 0xb4, 0xa3, 0xa6, 0xf3, 0x49,
+ 0x67, 0x04, 0xe9, 0x74, 0x78, 0xa4, 0x4c, 0xdc, 0xc8, 0x57, 0xe4, 0xf2,
+ 0x96, 0x80, 0xf6, 0x69, 0xec, 0x5a, 0x83, 0xd1,
+};
+static const unsigned char kat468_addin1[] = {
+ 0xef, 0xbb, 0x9a, 0x69, 0x6e, 0xfc, 0x90, 0xa7, 0x74, 0xee, 0x87, 0xb7,
+ 0xed, 0x43, 0x45, 0x03, 0x79, 0x2c, 0x1a, 0x29, 0xbe, 0xec, 0xe9, 0x34,
+ 0x2e, 0x0b, 0x57, 0x24, 0xc3, 0xf5, 0xbc, 0xc6,
+};
+static const unsigned char kat468_retbits[] = {
+ 0x28, 0x4f, 0xec, 0xb8, 0x33, 0xa6, 0xe4, 0x18, 0xe9, 0xe5, 0x16, 0xc1,
+ 0x71, 0xfc, 0xe8, 0x52, 0xe7, 0x02, 0xa4, 0x48, 0x86, 0x74, 0x77, 0x1c,
+ 0x91, 0x3e, 0x85, 0x16, 0x9f, 0x19, 0x5b, 0xb7, 0x99, 0xf0, 0x19, 0xac,
+ 0x1b, 0x55, 0xa7, 0xe3, 0x93, 0x7f, 0xa7, 0x70, 0x33, 0x07, 0x22, 0xa8,
+ 0x01, 0x51, 0x13, 0x84, 0xd8, 0x56, 0xfb, 0x19, 0x9b, 0x76, 0xe2, 0x64,
+ 0xca, 0xa0, 0x6b, 0x6d,
+};
+static const struct drbg_kat_no_reseed kat468_t = {
+ 2, kat468_entropyin, kat468_nonce, kat468_persstr,
+ kat468_addin0, kat468_addin1, kat468_retbits
+};
+static const struct drbg_kat kat468 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat468_t
+};
+
+static const unsigned char kat469_entropyin[] = {
+ 0x90, 0x7b, 0xc8, 0xc3, 0xa8, 0xc6, 0x94, 0x64, 0x69, 0xc4, 0x88, 0xbf,
+ 0x18, 0xa8, 0xe6, 0x7f, 0x7c, 0xc0, 0x45, 0xff, 0x4e, 0xd6, 0x9d, 0x5f,
+};
+static const unsigned char kat469_nonce[] = {
+ 0xc2, 0xe0, 0xcb, 0xb2, 0x6a, 0x48, 0x23, 0x2d, 0xd3, 0x23, 0x10, 0xb1,
+ 0xce, 0xb3, 0x2e, 0x9b,
+};
+static const unsigned char kat469_persstr[] = {
+ 0xab, 0x67, 0xf1, 0xfd, 0x53, 0xe1, 0x2c, 0x36, 0x47, 0x22, 0xd6, 0xb5,
+ 0x47, 0x5d, 0x55, 0x55, 0xa1, 0x79, 0x51, 0xeb, 0x10, 0xd2, 0x00, 0x55,
+ 0xca, 0x3e, 0x40, 0x86, 0xbb, 0xde, 0xd2, 0xdb,
+};
+static const unsigned char kat469_addin0[] = {
+ 0xac, 0x77, 0x29, 0x46, 0x2a, 0x01, 0x24, 0x14, 0x36, 0xc3, 0xbe, 0x8e,
+ 0x85, 0x40, 0x18, 0x73, 0x3a, 0x84, 0x25, 0x4f, 0x1e, 0x0a, 0x23, 0x43,
+ 0xca, 0x69, 0x05, 0x8c, 0x54, 0x71, 0x6f, 0x1b,
+};
+static const unsigned char kat469_addin1[] = {
+ 0x85, 0xd4, 0x36, 0x47, 0xb3, 0x6e, 0x29, 0x4a, 0xbd, 0xdb, 0x01, 0x36,
+ 0xb6, 0x55, 0x0d, 0xf3, 0xcb, 0x31, 0x4c, 0x88, 0x92, 0xfe, 0x27, 0x9b,
+ 0x96, 0x5f, 0x4e, 0x89, 0x31, 0xed, 0xf2, 0xbf,
+};
+static const unsigned char kat469_retbits[] = {
+ 0xad, 0x8a, 0x6f, 0xd4, 0xc3, 0xc8, 0x5c, 0x4d, 0xf1, 0x87, 0xf0, 0x35,
+ 0x43, 0x32, 0x50, 0xb6, 0x50, 0xec, 0x96, 0xad, 0x96, 0x2c, 0x36, 0x5a,
+ 0x8b, 0x14, 0x42, 0x5c, 0x4d, 0x37, 0xb0, 0xc4, 0xfd, 0x58, 0xd0, 0x0f,
+ 0x10, 0x94, 0xea, 0x76, 0x27, 0xac, 0xaf, 0x67, 0xb2, 0x37, 0x34, 0x46,
+ 0x83, 0xb5, 0x13, 0xe8, 0xf5, 0x24, 0xee, 0xc4, 0x96, 0xea, 0x90, 0x7b,
+ 0x0c, 0xb8, 0x1c, 0x27,
+};
+static const struct drbg_kat_no_reseed kat469_t = {
+ 3, kat469_entropyin, kat469_nonce, kat469_persstr,
+ kat469_addin0, kat469_addin1, kat469_retbits
+};
+static const struct drbg_kat kat469 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat469_t
+};
+
+static const unsigned char kat470_entropyin[] = {
+ 0x9e, 0xc0, 0x4e, 0x7c, 0x20, 0xf7, 0x76, 0x63, 0xd3, 0x30, 0xa4, 0x3e,
+ 0xf1, 0x93, 0xf3, 0xa3, 0xba, 0xee, 0xc8, 0x9e, 0xc0, 0x86, 0x0b, 0x7c,
+};
+static const unsigned char kat470_nonce[] = {
+ 0x32, 0x67, 0xaa, 0xcc, 0x67, 0x60, 0x2d, 0x44, 0xb4, 0x06, 0x63, 0xf3,
+ 0xe7, 0x9d, 0x99, 0xa1,
+};
+static const unsigned char kat470_persstr[] = {
+ 0xad, 0xc1, 0x05, 0xb4, 0x10, 0x39, 0xe0, 0x58, 0x63, 0x5b, 0x67, 0x6b,
+ 0xf7, 0xc0, 0x7d, 0x00, 0x45, 0xf7, 0x5e, 0xbf, 0x64, 0x23, 0x91, 0xf5,
+ 0x68, 0x49, 0x99, 0xa5, 0xc2, 0xf3, 0xa4, 0xfd,
+};
+static const unsigned char kat470_addin0[] = {
+ 0xa5, 0xb3, 0x74, 0xce, 0x0a, 0x74, 0x9e, 0xd1, 0x20, 0xb7, 0xb3, 0xad,
+ 0xcc, 0x5e, 0xe9, 0x3d, 0xcc, 0xb2, 0xb0, 0x54, 0x55, 0xc6, 0x26, 0xdf,
+ 0x03, 0xd1, 0x86, 0xc9, 0x65, 0xbb, 0x6b, 0xbc,
+};
+static const unsigned char kat470_addin1[] = {
+ 0x1e, 0xb5, 0x92, 0x13, 0x3f, 0x72, 0xec, 0x56, 0xc3, 0xda, 0xb6, 0xa5,
+ 0x37, 0x89, 0x72, 0x0b, 0xd2, 0xeb, 0xc1, 0xbd, 0x1f, 0x74, 0x6f, 0x7a,
+ 0x05, 0x49, 0x9d, 0xdb, 0x7d, 0x9c, 0x35, 0xa9,
+};
+static const unsigned char kat470_retbits[] = {
+ 0x69, 0x9f, 0x32, 0xe3, 0x06, 0x6a, 0xc7, 0xe1, 0xf9, 0x3c, 0x8e, 0x0b,
+ 0x41, 0xdd, 0xea, 0x89, 0x8d, 0xf4, 0x22, 0x89, 0xf8, 0x63, 0x2b, 0x97,
+ 0x6f, 0x5e, 0x64, 0xea, 0xa8, 0x23, 0xff, 0x28, 0xdf, 0xd9, 0xd4, 0xe1,
+ 0x24, 0x44, 0x9a, 0x7f, 0xfe, 0x1a, 0x60, 0x3e, 0x04, 0x07, 0xb1, 0x3f,
+ 0x7b, 0x44, 0xb4, 0xa5, 0x01, 0x02, 0x5e, 0x12, 0x24, 0xd8, 0x4b, 0xd2,
+ 0xe7, 0x80, 0xa6, 0x44,
+};
+static const struct drbg_kat_no_reseed kat470_t = {
+ 4, kat470_entropyin, kat470_nonce, kat470_persstr,
+ kat470_addin0, kat470_addin1, kat470_retbits
+};
+static const struct drbg_kat kat470 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat470_t
+};
+
+static const unsigned char kat471_entropyin[] = {
+ 0x9d, 0xa2, 0x56, 0xb4, 0xe1, 0x5b, 0x21, 0xd4, 0x8a, 0x9f, 0x59, 0x25,
+ 0xc1, 0x1d, 0x27, 0x5c, 0x8b, 0x45, 0x8a, 0xef, 0x75, 0x0e, 0xa2, 0xb5,
+};
+static const unsigned char kat471_nonce[] = {
+ 0x95, 0xa9, 0xbf, 0x02, 0xb8, 0xb9, 0xa9, 0x8f, 0x71, 0x20, 0xa8, 0x66,
+ 0x76, 0x41, 0x03, 0x54,
+};
+static const unsigned char kat471_persstr[] = {
+ 0xf6, 0xe8, 0xc3, 0x6b, 0x41, 0xd3, 0xd0, 0xd7, 0x47, 0x13, 0x31, 0x98,
+ 0xa0, 0x30, 0x3c, 0x8a, 0x9a, 0x9d, 0xe2, 0xaa, 0x78, 0x46, 0x39, 0xaf,
+ 0x12, 0x2b, 0xac, 0x75, 0xd6, 0xeb, 0x85, 0x35,
+};
+static const unsigned char kat471_addin0[] = {
+ 0x62, 0xda, 0x4a, 0xa2, 0x14, 0x44, 0x26, 0xd1, 0xee, 0x35, 0x81, 0xa8,
+ 0xc0, 0xf9, 0x1b, 0x84, 0xe1, 0x7a, 0xce, 0x43, 0xf5, 0x66, 0xb2, 0x57,
+ 0xd8, 0x5c, 0xf9, 0xf9, 0xb1, 0xdb, 0x02, 0x1d,
+};
+static const unsigned char kat471_addin1[] = {
+ 0xd7, 0x1f, 0xfa, 0x97, 0xfd, 0x0a, 0x7a, 0x80, 0xb9, 0x19, 0xc2, 0x1d,
+ 0xd7, 0xaf, 0xfc, 0x57, 0x77, 0x00, 0xac, 0xa7, 0xdc, 0xa6, 0x31, 0x1d,
+ 0x3b, 0x90, 0x64, 0xf5, 0x02, 0x08, 0x43, 0x5b,
+};
+static const unsigned char kat471_retbits[] = {
+ 0x12, 0x09, 0x92, 0xa8, 0x2a, 0xd8, 0xfe, 0xd5, 0xad, 0x49, 0xdb, 0x7b,
+ 0x75, 0x6b, 0x94, 0x18, 0x5e, 0x15, 0xb1, 0xfb, 0x53, 0xaa, 0xa6, 0x4e,
+ 0x6c, 0x7b, 0x9a, 0xc1, 0x44, 0x87, 0x30, 0x7d, 0x0f, 0xbb, 0x5f, 0x51,
+ 0x95, 0x27, 0xe4, 0x68, 0xfd, 0x97, 0x82, 0x91, 0x38, 0x1f, 0x95, 0x92,
+ 0xcc, 0xf5, 0x3d, 0xf5, 0x87, 0x58, 0x6c, 0xa0, 0xfd, 0xce, 0x0c, 0x81,
+ 0x31, 0x0d, 0xbb, 0xb3,
+};
+static const struct drbg_kat_no_reseed kat471_t = {
+ 5, kat471_entropyin, kat471_nonce, kat471_persstr,
+ kat471_addin0, kat471_addin1, kat471_retbits
+};
+static const struct drbg_kat kat471 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat471_t
+};
+
+static const unsigned char kat472_entropyin[] = {
+ 0xa8, 0x13, 0xae, 0x3d, 0x13, 0x8b, 0xb9, 0x76, 0x87, 0x59, 0xe2, 0x59,
+ 0x0a, 0xdd, 0xea, 0x63, 0x90, 0x26, 0x64, 0x05, 0xb8, 0xf5, 0x9b, 0x68,
+};
+static const unsigned char kat472_nonce[] = {
+ 0x52, 0x49, 0xee, 0x76, 0xa7, 0xe7, 0x92, 0xe6, 0xa1, 0xce, 0x5c, 0xad,
+ 0xe7, 0x89, 0xb8, 0x46,
+};
+static const unsigned char kat472_persstr[] = {
+ 0x7b, 0x4b, 0x71, 0x74, 0x7d, 0x17, 0x90, 0x2f, 0x3f, 0xbb, 0xeb, 0x3a,
+ 0x60, 0x00, 0x5c, 0x2a, 0x30, 0xe9, 0x02, 0xf6, 0x96, 0xa8, 0xd2, 0xd8,
+ 0xff, 0x68, 0x28, 0xd7, 0x55, 0x1d, 0x87, 0x49,
+};
+static const unsigned char kat472_addin0[] = {
+ 0x6d, 0xdb, 0x92, 0x55, 0x50, 0x8d, 0x29, 0xaf, 0x7a, 0x99, 0x8e, 0x14,
+ 0x6d, 0x82, 0x06, 0xbe, 0xaf, 0x82, 0xc1, 0xbb, 0x7d, 0x42, 0x3d, 0x92,
+ 0x60, 0x5e, 0x69, 0xa6, 0xa0, 0x31, 0x80, 0xe4,
+};
+static const unsigned char kat472_addin1[] = {
+ 0x84, 0x85, 0xf2, 0x57, 0xd4, 0x4a, 0x82, 0xbf, 0x92, 0x00, 0x13, 0xcc,
+ 0x8b, 0x83, 0x21, 0xa3, 0x57, 0xd1, 0x93, 0x3b, 0x64, 0x39, 0x5c, 0x12,
+ 0x55, 0x40, 0x90, 0x8d, 0xa9, 0xea, 0x9e, 0x99,
+};
+static const unsigned char kat472_retbits[] = {
+ 0x52, 0xfb, 0x04, 0x00, 0xf8, 0xdf, 0xcf, 0x69, 0x4f, 0x0d, 0xaa, 0xda,
+ 0x7b, 0xa7, 0x81, 0xe0, 0x9a, 0xf5, 0xe4, 0x8f, 0xcf, 0xcb, 0xe7, 0x18,
+ 0x05, 0x2b, 0x46, 0xa3, 0x89, 0xdf, 0x71, 0x3a, 0xb3, 0xaf, 0x71, 0x69,
+ 0x9c, 0x41, 0xd4, 0x1e, 0x65, 0x42, 0xb8, 0x7c, 0xd9, 0xbe, 0xc4, 0xce,
+ 0x0f, 0xd2, 0x92, 0xae, 0x52, 0xea, 0xd7, 0x8c, 0xf5, 0x2e, 0x0c, 0xac,
+ 0x5c, 0xcd, 0x4f, 0x01,
+};
+static const struct drbg_kat_no_reseed kat472_t = {
+ 6, kat472_entropyin, kat472_nonce, kat472_persstr,
+ kat472_addin0, kat472_addin1, kat472_retbits
+};
+static const struct drbg_kat kat472 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat472_t
+};
+
+static const unsigned char kat473_entropyin[] = {
+ 0x67, 0xe4, 0x44, 0x71, 0xbc, 0x65, 0x6e, 0xec, 0xee, 0x78, 0x05, 0x38,
+ 0x0e, 0x98, 0x49, 0xf9, 0xe3, 0xf4, 0xf2, 0xf4, 0xac, 0xba, 0x52, 0x05,
+};
+static const unsigned char kat473_nonce[] = {
+ 0x60, 0x18, 0xf7, 0xe1, 0xf9, 0x43, 0xfd, 0xcf, 0x7f, 0xc9, 0x59, 0x5e,
+ 0xd0, 0xa0, 0x81, 0x07,
+};
+static const unsigned char kat473_persstr[] = {
+ 0xff, 0x0f, 0x82, 0xbd, 0x94, 0xfa, 0x8c, 0x65, 0x54, 0xe0, 0x5c, 0x69,
+ 0x57, 0x97, 0x3b, 0xb8, 0xc4, 0xf3, 0xbd, 0x3e, 0x88, 0x57, 0xab, 0xfc,
+ 0xbc, 0xde, 0x87, 0xc5, 0x84, 0xf7, 0x56, 0x11,
+};
+static const unsigned char kat473_addin0[] = {
+ 0xf0, 0x9d, 0xfa, 0xdc, 0xbd, 0xa7, 0x19, 0x08, 0xda, 0x9d, 0xd7, 0xbb,
+ 0x7a, 0x9e, 0x16, 0xa3, 0xc2, 0x5e, 0x30, 0x20, 0x50, 0x23, 0x5e, 0xaf,
+ 0xd9, 0x43, 0x2a, 0x8a, 0x78, 0x78, 0xc1, 0x0d,
+};
+static const unsigned char kat473_addin1[] = {
+ 0x1f, 0xc8, 0xb6, 0x0f, 0xc0, 0x30, 0xf7, 0xc4, 0x17, 0x7a, 0x51, 0x47,
+ 0x07, 0x15, 0x13, 0xfc, 0x2f, 0x17, 0x46, 0x59, 0xb0, 0x12, 0x88, 0x9a,
+ 0x0c, 0x58, 0x3b, 0xed, 0x7c, 0x38, 0x18, 0xb7,
+};
+static const unsigned char kat473_retbits[] = {
+ 0x35, 0xb2, 0xbc, 0x5f, 0x59, 0x24, 0x28, 0xd6, 0x1b, 0xb7, 0xe0, 0x62,
+ 0xbf, 0x96, 0x30, 0x31, 0x02, 0x11, 0x8a, 0xc5, 0xb1, 0x66, 0x50, 0x8a,
+ 0xd5, 0xcd, 0x22, 0x81, 0xf5, 0x9b, 0x38, 0x06, 0xbe, 0x11, 0x8e, 0x97,
+ 0x88, 0x7c, 0x57, 0x32, 0xfd, 0x96, 0xc7, 0xb1, 0x71, 0x43, 0x17, 0x59,
+ 0x7a, 0xaf, 0x20, 0xa1, 0xa6, 0xdd, 0xf7, 0x57, 0x8e, 0xfb, 0x74, 0x36,
+ 0x98, 0x0f, 0x99, 0x38,
+};
+static const struct drbg_kat_no_reseed kat473_t = {
+ 7, kat473_entropyin, kat473_nonce, kat473_persstr,
+ kat473_addin0, kat473_addin1, kat473_retbits
+};
+static const struct drbg_kat kat473 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat473_t
+};
+
+static const unsigned char kat474_entropyin[] = {
+ 0x94, 0x32, 0x32, 0x27, 0x08, 0x8d, 0x2d, 0x5d, 0xdf, 0x36, 0xa1, 0xc4,
+ 0x24, 0x35, 0xe2, 0x05, 0xb9, 0xe7, 0xef, 0x19, 0xb6, 0xaf, 0xf0, 0x92,
+};
+static const unsigned char kat474_nonce[] = {
+ 0x9f, 0x96, 0x64, 0xc8, 0x7d, 0x7a, 0x43, 0x14, 0x2c, 0xe3, 0x79, 0x9d,
+ 0x17, 0x91, 0xc0, 0xc6,
+};
+static const unsigned char kat474_persstr[] = {
+ 0xa5, 0xf8, 0x3a, 0x66, 0x27, 0x7c, 0xb6, 0xc9, 0x4b, 0x20, 0x86, 0x0d,
+ 0xa0, 0x88, 0x74, 0xf3, 0x3c, 0x2a, 0x35, 0x34, 0xcf, 0xc7, 0xaa, 0x53,
+ 0xf4, 0x0b, 0xeb, 0x4f, 0xde, 0xff, 0x87, 0x0b,
+};
+static const unsigned char kat474_addin0[] = {
+ 0x41, 0x36, 0xba, 0xcf, 0x19, 0xb6, 0xed, 0xa7, 0x5f, 0x69, 0x92, 0x71,
+ 0xe5, 0xb3, 0x82, 0xf0, 0xf5, 0x8d, 0xd8, 0xb5, 0x9e, 0x0e, 0xaa, 0xc6,
+ 0xe4, 0x37, 0x99, 0x52, 0x5f, 0x7e, 0x3b, 0x76,
+};
+static const unsigned char kat474_addin1[] = {
+ 0x2c, 0xec, 0x57, 0xe8, 0xec, 0xb9, 0x34, 0x63, 0x80, 0xb3, 0x80, 0xbf,
+ 0x9e, 0xe7, 0x7d, 0x1b, 0x07, 0x7d, 0x8b, 0x79, 0x20, 0x4d, 0x73, 0xe0,
+ 0xe4, 0x46, 0xef, 0x38, 0xe1, 0xa9, 0xf2, 0x6e,
+};
+static const unsigned char kat474_retbits[] = {
+ 0x53, 0x11, 0x2d, 0x08, 0x4e, 0x01, 0x60, 0xa7, 0x62, 0xfd, 0x90, 0x8e,
+ 0x05, 0x40, 0xd5, 0x3b, 0x07, 0xcb, 0xe6, 0x48, 0x4b, 0xe9, 0xcd, 0xbd,
+ 0xa8, 0xf3, 0xa1, 0xc1, 0x4f, 0x79, 0xf2, 0xd2, 0xe0, 0x69, 0x39, 0x62,
+ 0xf1, 0x7e, 0x10, 0xed, 0xd0, 0x7c, 0x66, 0xd4, 0x2b, 0x40, 0xaf, 0xb4,
+ 0xf0, 0x2d, 0x69, 0x5e, 0x49, 0x84, 0x6f, 0x37, 0x6d, 0xcd, 0x2b, 0x5c,
+ 0xd2, 0x1c, 0x9c, 0xb6,
+};
+static const struct drbg_kat_no_reseed kat474_t = {
+ 8, kat474_entropyin, kat474_nonce, kat474_persstr,
+ kat474_addin0, kat474_addin1, kat474_retbits
+};
+static const struct drbg_kat kat474 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat474_t
+};
+
+static const unsigned char kat475_entropyin[] = {
+ 0xe1, 0xce, 0x5b, 0x2c, 0x05, 0xf4, 0x5a, 0x89, 0x46, 0xf5, 0xb7, 0x94,
+ 0x92, 0x51, 0x7e, 0x33, 0x2b, 0xae, 0xda, 0x4d, 0x56, 0xc2, 0xab, 0xf2,
+};
+static const unsigned char kat475_nonce[] = {
+ 0xcd, 0x2d, 0x68, 0x47, 0x5b, 0xbf, 0x8a, 0xd8, 0x75, 0xdd, 0x30, 0x9a,
+ 0xd4, 0x28, 0xd6, 0x44,
+};
+static const unsigned char kat475_persstr[] = {
+ 0x74, 0xc6, 0xb1, 0x70, 0x79, 0x1c, 0x53, 0xaa, 0x1c, 0xd5, 0x2e, 0x38,
+ 0x2e, 0xee, 0x21, 0x84, 0x82, 0x27, 0x56, 0x7a, 0xf4, 0x0c, 0x55, 0x81,
+ 0xf9, 0x87, 0x48, 0xf4, 0xef, 0xc6, 0x05, 0xbd,
+};
+static const unsigned char kat475_addin0[] = {
+ 0x49, 0xd5, 0xa1, 0x77, 0x0f, 0x85, 0x13, 0x94, 0xb6, 0xe1, 0x49, 0x19,
+ 0x80, 0xbf, 0xff, 0x76, 0x21, 0xbc, 0x56, 0x10, 0xb5, 0x77, 0x7e, 0x71,
+ 0xe9, 0xcd, 0xa3, 0x0d, 0xac, 0x1e, 0xea, 0xeb,
+};
+static const unsigned char kat475_addin1[] = {
+ 0x4c, 0x5b, 0x15, 0x82, 0xc5, 0xf7, 0xdf, 0x4f, 0xdf, 0x91, 0x12, 0x53,
+ 0x30, 0xf8, 0xda, 0xdc, 0x36, 0x68, 0x77, 0xad, 0x8f, 0xea, 0xd6, 0x51,
+ 0xc7, 0xfb, 0xee, 0xd8, 0xee, 0x4e, 0x41, 0x78,
+};
+static const unsigned char kat475_retbits[] = {
+ 0x3c, 0x37, 0xe1, 0xec, 0x6c, 0x18, 0x0b, 0x32, 0xa9, 0x63, 0xbc, 0x04,
+ 0x40, 0x22, 0x1a, 0xc5, 0xc1, 0xc3, 0x3d, 0x89, 0x27, 0x2b, 0x9f, 0x69,
+ 0x7c, 0x75, 0x73, 0x7d, 0xd9, 0xcd, 0x2c, 0x74, 0x9c, 0x25, 0xf3, 0xc8,
+ 0x45, 0x53, 0xdf, 0xae, 0xf8, 0x6a, 0xf4, 0x61, 0x13, 0xe0, 0x6f, 0xe1,
+ 0xf6, 0xc8, 0x91, 0xc6, 0xa3, 0x90, 0x59, 0x0e, 0x16, 0x68, 0xce, 0xb7,
+ 0x5c, 0x95, 0xd3, 0xc9,
+};
+static const struct drbg_kat_no_reseed kat475_t = {
+ 9, kat475_entropyin, kat475_nonce, kat475_persstr,
+ kat475_addin0, kat475_addin1, kat475_retbits
+};
+static const struct drbg_kat kat475 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat475_t
+};
+
+static const unsigned char kat476_entropyin[] = {
+ 0x7b, 0x9b, 0x3a, 0xaf, 0xb3, 0xda, 0x4f, 0xb6, 0x93, 0x5d, 0xe0, 0xa7,
+ 0x1a, 0xc9, 0xfb, 0x40, 0x95, 0xc6, 0x17, 0x35, 0x07, 0x2c, 0x28, 0xdb,
+};
+static const unsigned char kat476_nonce[] = {
+ 0x28, 0xbe, 0x54, 0xc1, 0x96, 0xbe, 0x07, 0x2f, 0xff, 0x92, 0xbc, 0x6c,
+ 0xaa, 0x8c, 0xcc, 0x02,
+};
+static const unsigned char kat476_persstr[] = {
+ 0x88, 0xea, 0x40, 0xac, 0xa2, 0xa8, 0xaa, 0xe4, 0x80, 0x85, 0x80, 0x74,
+ 0xbb, 0x14, 0x03, 0x69, 0x51, 0x66, 0x75, 0xbd, 0xff, 0xb7, 0xfa, 0xb4,
+ 0x31, 0x8c, 0xc5, 0x08, 0x35, 0x7b, 0x7b, 0xec,
+};
+static const unsigned char kat476_addin0[] = {
+ 0xc0, 0xe3, 0xe9, 0xd7, 0x00, 0x8d, 0x64, 0xfa, 0x30, 0x69, 0xaa, 0xb3,
+ 0x80, 0x5c, 0x0c, 0x81, 0x7c, 0x9a, 0x09, 0x71, 0x44, 0x6a, 0x8b, 0x53,
+ 0xd0, 0x0f, 0xca, 0xb0, 0x2a, 0x4c, 0xcb, 0x59,
+};
+static const unsigned char kat476_addin1[] = {
+ 0xdb, 0xac, 0x68, 0x1f, 0xbc, 0x3e, 0xb3, 0xc5, 0x73, 0x94, 0x52, 0xa5,
+ 0xe1, 0x50, 0xf5, 0x95, 0x65, 0x7c, 0x04, 0xf0, 0x7a, 0x52, 0x06, 0x20,
+ 0x52, 0xed, 0x1b, 0x19, 0xae, 0x53, 0xae, 0xd8,
+};
+static const unsigned char kat476_retbits[] = {
+ 0x4c, 0x4d, 0x6b, 0x05, 0x8f, 0xb1, 0x33, 0x44, 0xc4, 0x17, 0x5f, 0x02,
+ 0x39, 0x59, 0xa7, 0x70, 0x11, 0x52, 0xae, 0x35, 0x6e, 0x40, 0x09, 0x3f,
+ 0x70, 0x19, 0xd4, 0x7a, 0xe5, 0x1e, 0xe5, 0x19, 0x67, 0xe4, 0xfa, 0xbb,
+ 0x20, 0x9b, 0x67, 0xb2, 0x0a, 0x95, 0xa3, 0x37, 0xee, 0x8d, 0x4f, 0xe5,
+ 0xf6, 0x66, 0xcd, 0x08, 0xfd, 0xde, 0x3a, 0x74, 0xdc, 0x9f, 0xce, 0x0a,
+ 0x5a, 0xe0, 0xf9, 0x31,
+};
+static const struct drbg_kat_no_reseed kat476_t = {
+ 10, kat476_entropyin, kat476_nonce, kat476_persstr,
+ kat476_addin0, kat476_addin1, kat476_retbits
+};
+static const struct drbg_kat kat476 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat476_t
+};
+
+static const unsigned char kat477_entropyin[] = {
+ 0x4c, 0x59, 0xc6, 0xc6, 0x7c, 0x48, 0x44, 0x17, 0x5e, 0x5f, 0x1a, 0x34,
+ 0xad, 0x9e, 0x08, 0x43, 0x4c, 0x20, 0x51, 0x51, 0xb7, 0x44, 0x7a, 0x01,
+};
+static const unsigned char kat477_nonce[] = {
+ 0x82, 0x8d, 0xea, 0x3b, 0xc0, 0x7a, 0xbd, 0x45, 0xdf, 0x79, 0x7c, 0xe7,
+ 0xdc, 0x8e, 0xdd, 0x77,
+};
+static const unsigned char kat477_persstr[] = {
+ 0xfb, 0x12, 0x99, 0x2f, 0x39, 0x4b, 0x21, 0x3b, 0x08, 0x7b, 0x32, 0x8f,
+ 0xb2, 0x74, 0xa2, 0x8f, 0x0a, 0x2d, 0x5d, 0xed, 0x77, 0x0f, 0xb8, 0xd6,
+ 0xfd, 0x7b, 0xf3, 0x82, 0x1d, 0x86, 0xee, 0x39,
+};
+static const unsigned char kat477_addin0[] = {
+ 0x5a, 0xe8, 0xe9, 0x30, 0x56, 0x82, 0x1c, 0x7f, 0xb0, 0x7b, 0x48, 0xc5,
+ 0xc6, 0xaa, 0xd9, 0xfc, 0xf3, 0x34, 0x34, 0xec, 0x1c, 0x93, 0x94, 0x29,
+ 0x30, 0xec, 0x06, 0xf0, 0x31, 0x1c, 0xd0, 0x9e,
+};
+static const unsigned char kat477_addin1[] = {
+ 0x09, 0x22, 0x28, 0x75, 0xe6, 0x9e, 0x81, 0x1b, 0x92, 0xba, 0x62, 0xc4,
+ 0x85, 0xa3, 0xd8, 0x10, 0xa8, 0xca, 0x89, 0xf0, 0xbe, 0x46, 0x8c, 0x7c,
+ 0x13, 0x61, 0x41, 0x2e, 0x19, 0x3b, 0x3c, 0x32,
+};
+static const unsigned char kat477_retbits[] = {
+ 0xf7, 0x1b, 0x7f, 0x6c, 0xcf, 0x4d, 0xc0, 0xbc, 0x0b, 0x89, 0x8b, 0xd3,
+ 0x8a, 0xb8, 0x10, 0x24, 0x76, 0xd0, 0xbb, 0x7e, 0x9a, 0x1a, 0xdd, 0x22,
+ 0x56, 0x82, 0x16, 0xb0, 0xd5, 0xc5, 0x2c, 0x4b, 0x17, 0x19, 0xa6, 0xf2,
+ 0x22, 0x3b, 0xc2, 0x4a, 0x52, 0x48, 0xc9, 0x15, 0xf6, 0x5d, 0x5e, 0x18,
+ 0x3f, 0xb9, 0xfc, 0xfa, 0xea, 0xd6, 0x5f, 0x1a, 0xe0, 0x4b, 0xee, 0xff,
+ 0x1b, 0xf4, 0x25, 0x96,
+};
+static const struct drbg_kat_no_reseed kat477_t = {
+ 11, kat477_entropyin, kat477_nonce, kat477_persstr,
+ kat477_addin0, kat477_addin1, kat477_retbits
+};
+static const struct drbg_kat kat477 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat477_t
+};
+
+static const unsigned char kat478_entropyin[] = {
+ 0x81, 0xf4, 0xab, 0x51, 0x4e, 0x4e, 0xf1, 0xc8, 0x9f, 0x18, 0x61, 0x72,
+ 0x55, 0x39, 0x90, 0xaf, 0x49, 0xa3, 0xe0, 0x74, 0x72, 0x9b, 0xba, 0xec,
+};
+static const unsigned char kat478_nonce[] = {
+ 0x35, 0xd5, 0xbb, 0x6e, 0xff, 0x10, 0xd2, 0x70, 0x35, 0xe7, 0x88, 0x8f,
+ 0xd6, 0xc0, 0xc5, 0x70,
+};
+static const unsigned char kat478_persstr[] = {
+ 0xff, 0x5a, 0xa8, 0xcb, 0x94, 0x89, 0xf7, 0xfa, 0xd8, 0x82, 0x52, 0x2c,
+ 0x96, 0xa3, 0xc8, 0xca, 0xe8, 0x3a, 0x9b, 0x71, 0x13, 0xd0, 0xc1, 0xe4,
+ 0x9d, 0xa6, 0x81, 0x59, 0x8a, 0xe2, 0xfa, 0x56,
+};
+static const unsigned char kat478_addin0[] = {
+ 0x29, 0x41, 0x78, 0x55, 0x09, 0x14, 0x8b, 0x16, 0x81, 0x3f, 0x88, 0xf1,
+ 0xeb, 0x43, 0x0b, 0x28, 0x62, 0xe3, 0x03, 0xfd, 0x71, 0x6b, 0x71, 0x72,
+ 0xb1, 0x41, 0xb9, 0x99, 0x42, 0x3f, 0xa3, 0x0e,
+};
+static const unsigned char kat478_addin1[] = {
+ 0x3b, 0xeb, 0x13, 0xe4, 0x1b, 0x29, 0xc3, 0xf9, 0xe7, 0xc0, 0x4b, 0xd8,
+ 0xb9, 0x3a, 0xc2, 0xc8, 0xfb, 0xfe, 0xd0, 0x6e, 0xd3, 0x3b, 0x8e, 0xa9,
+ 0x31, 0x7f, 0xa4, 0xca, 0x3c, 0x25, 0x31, 0x01,
+};
+static const unsigned char kat478_retbits[] = {
+ 0x3c, 0x33, 0xd7, 0x78, 0xb1, 0xd6, 0x1c, 0x12, 0xce, 0x1f, 0x71, 0x18,
+ 0x0e, 0x8d, 0xda, 0xf4, 0xf3, 0x09, 0x8b, 0x09, 0x27, 0xad, 0x9e, 0x86,
+ 0x3d, 0x8f, 0x74, 0xfe, 0x87, 0x1e, 0xfc, 0xa1, 0xd6, 0x72, 0xb2, 0xd0,
+ 0x7c, 0xa5, 0x7a, 0x89, 0x11, 0x80, 0x62, 0xbb, 0x35, 0x49, 0x94, 0xc1,
+ 0xc5, 0xae, 0xa5, 0xab, 0x1b, 0xe2, 0xf9, 0x25, 0x71, 0xc0, 0x72, 0x01,
+ 0x97, 0x43, 0x5e, 0x73,
+};
+static const struct drbg_kat_no_reseed kat478_t = {
+ 12, kat478_entropyin, kat478_nonce, kat478_persstr,
+ kat478_addin0, kat478_addin1, kat478_retbits
+};
+static const struct drbg_kat kat478 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat478_t
+};
+
+static const unsigned char kat479_entropyin[] = {
+ 0x6c, 0xce, 0xcf, 0xbe, 0x10, 0xea, 0xb1, 0xca, 0xa8, 0xfd, 0xa9, 0x38,
+ 0x40, 0x2d, 0xdc, 0x3a, 0x32, 0x93, 0xed, 0x7a, 0xed, 0x4d, 0x87, 0xa9,
+};
+static const unsigned char kat479_nonce[] = {
+ 0x0e, 0x4e, 0x20, 0xa3, 0x5f, 0x77, 0xbd, 0xdc, 0x04, 0xb8, 0xd1, 0x72,
+ 0xf7, 0x8b, 0xbd, 0xee,
+};
+static const unsigned char kat479_persstr[] = {
+ 0x2a, 0x1e, 0x1d, 0x1f, 0x13, 0x10, 0xae, 0x69, 0xaa, 0x80, 0x6b, 0x2b,
+ 0x14, 0xed, 0x2b, 0x1b, 0xa3, 0x08, 0x8c, 0xd3, 0x9a, 0x4c, 0x4d, 0x8f,
+ 0x27, 0xb4, 0x8b, 0x9e, 0x62, 0x7d, 0xe6, 0x8e,
+};
+static const unsigned char kat479_addin0[] = {
+ 0xd4, 0x09, 0x75, 0x2d, 0x88, 0x87, 0xb3, 0x47, 0xe7, 0x78, 0x44, 0x72,
+ 0xc0, 0x28, 0xab, 0xd9, 0xf0, 0x45, 0xf9, 0x64, 0x1d, 0xb4, 0x63, 0x8d,
+ 0x67, 0x04, 0xa8, 0x2d, 0x77, 0x67, 0x16, 0xe9,
+};
+static const unsigned char kat479_addin1[] = {
+ 0xed, 0xa7, 0x99, 0x69, 0x15, 0x48, 0x2c, 0x06, 0x09, 0xa4, 0x32, 0xe7,
+ 0x25, 0xfe, 0xf5, 0x8f, 0xef, 0xd9, 0x15, 0xf7, 0x8a, 0xfb, 0x80, 0xd0,
+ 0x66, 0x4e, 0x99, 0x68, 0xbe, 0xf6, 0x5a, 0x91,
+};
+static const unsigned char kat479_retbits[] = {
+ 0x57, 0x99, 0x53, 0x12, 0x4f, 0x77, 0x96, 0xda, 0x17, 0xa3, 0x83, 0xc3,
+ 0x59, 0xc5, 0xcb, 0xae, 0x15, 0x1e, 0x18, 0xb1, 0x5f, 0x61, 0xb1, 0xe4,
+ 0x05, 0xed, 0x2c, 0xcd, 0xab, 0xae, 0x43, 0xe4, 0x49, 0x0d, 0x26, 0x92,
+ 0x72, 0x32, 0x6d, 0x13, 0x88, 0xe4, 0x59, 0x01, 0x40, 0xf4, 0xe5, 0x8d,
+ 0xfc, 0x6e, 0xca, 0x21, 0xf6, 0x36, 0x03, 0xdf, 0x0a, 0x62, 0x6b, 0xb7,
+ 0x6a, 0x28, 0x51, 0xd4,
+};
+static const struct drbg_kat_no_reseed kat479_t = {
+ 13, kat479_entropyin, kat479_nonce, kat479_persstr,
+ kat479_addin0, kat479_addin1, kat479_retbits
+};
+static const struct drbg_kat kat479 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat479_t
+};
+
+static const unsigned char kat480_entropyin[] = {
+ 0x3d, 0x17, 0x4d, 0x98, 0xec, 0xa8, 0x0a, 0xe3, 0x9c, 0x75, 0xd2, 0x7f,
+ 0x97, 0xb9, 0x9e, 0x9b, 0x0f, 0x74, 0x2b, 0x32, 0xe3, 0x7b, 0x94, 0xe8,
+};
+static const unsigned char kat480_nonce[] = {
+ 0xbc, 0xfc, 0x46, 0x13, 0x17, 0x5b, 0x6e, 0x35, 0x34, 0x08, 0xe2, 0x3b,
+ 0x85, 0x81, 0xe7, 0x05,
+};
+static const unsigned char kat480_persstr[] = {
+ 0x3d, 0x0e, 0x9f, 0xa5, 0x61, 0x6f, 0xa2, 0x5a, 0x0d, 0x58, 0xdd, 0xbd,
+ 0xc4, 0xa6, 0xa8, 0xe5, 0x5b, 0xef, 0x05, 0x1d, 0xb6, 0xfe, 0xdc, 0x8b,
+ 0xe8, 0xd4, 0xc7, 0x52, 0xf1, 0xd2, 0xc9, 0x4a,
+};
+static const unsigned char kat480_addin0[] = {
+ 0x87, 0x18, 0xb1, 0x5a, 0x55, 0x0f, 0x97, 0x89, 0x39, 0xf5, 0x82, 0x79,
+ 0xec, 0xda, 0xaf, 0xe7, 0x98, 0x0a, 0x1b, 0xbf, 0xe6, 0xb9, 0xde, 0x85,
+ 0xb9, 0xfe, 0x10, 0x7c, 0x72, 0xa8, 0xfe, 0x20,
+};
+static const unsigned char kat480_addin1[] = {
+ 0x07, 0x88, 0x99, 0xf5, 0xa1, 0xed, 0xd1, 0xba, 0x8e, 0x10, 0xeb, 0x8e,
+ 0xfa, 0x2c, 0x98, 0xba, 0x17, 0x4c, 0x1b, 0xd3, 0x5a, 0x74, 0x41, 0x4c,
+ 0xff, 0x86, 0x23, 0x63, 0x3a, 0xc1, 0xc2, 0x5b,
+};
+static const unsigned char kat480_retbits[] = {
+ 0x74, 0xe1, 0x55, 0xa5, 0x70, 0x7e, 0xb1, 0x9b, 0x79, 0xcf, 0x7e, 0xfc,
+ 0xe1, 0xc4, 0x23, 0x7b, 0xac, 0x69, 0xe3, 0xf9, 0x31, 0x14, 0x11, 0xc9,
+ 0x2d, 0xac, 0xfd, 0x8a, 0xc9, 0x2e, 0xa1, 0x1a, 0x87, 0x87, 0xa4, 0x7b,
+ 0xc4, 0x4f, 0x1c, 0x29, 0x44, 0x44, 0x5b, 0x2b, 0x05, 0x27, 0xe1, 0x6a,
+ 0xec, 0x6c, 0x01, 0x16, 0x54, 0x82, 0xd7, 0xe3, 0xb6, 0x44, 0x37, 0x09,
+ 0x3b, 0x87, 0xbf, 0xbc,
+};
+static const struct drbg_kat_no_reseed kat480_t = {
+ 14, kat480_entropyin, kat480_nonce, kat480_persstr,
+ kat480_addin0, kat480_addin1, kat480_retbits
+};
+static const struct drbg_kat kat480 = {
+ NO_RESEED, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat480_t
+};
+
+static const unsigned char kat481_entropyin[] = {
+ 0x36, 0x40, 0x19, 0x40, 0xfa, 0x8b, 0x1f, 0xba, 0x91, 0xa1, 0x66, 0x1f,
+ 0x21, 0x1d, 0x78, 0xa0, 0xb9, 0x38, 0x9a, 0x74, 0xe5, 0xbc, 0xcf, 0xec,
+ 0xe8, 0xd7, 0x66, 0xaf, 0x1a, 0x6d, 0x3b, 0x14,
+};
+static const unsigned char kat481_nonce[] = {
+ 0x49, 0x6f, 0x25, 0xb0, 0xf1, 0x30, 0x1b, 0x4f, 0x50, 0x1b, 0xe3, 0x03,
+ 0x80, 0xa1, 0x37, 0xeb,
+};
+static const unsigned char kat481_persstr[] = {0};
+static const unsigned char kat481_addin0[] = {0};
+static const unsigned char kat481_addin1[] = {0};
+static const unsigned char kat481_retbits[] = {
+ 0x58, 0x62, 0xeb, 0x38, 0xbd, 0x55, 0x8d, 0xd9, 0x78, 0xa6, 0x96, 0xe6,
+ 0xdf, 0x16, 0x47, 0x82, 0xdd, 0xd8, 0x87, 0xe7, 0xe9, 0xa6, 0xc9, 0xf3,
+ 0xf1, 0xfb, 0xaf, 0xb7, 0x89, 0x41, 0xb5, 0x35, 0xa6, 0x49, 0x12, 0xdf,
+ 0xd2, 0x24, 0xc6, 0xdc, 0x74, 0x54, 0xe5, 0x25, 0x0b, 0x3d, 0x97, 0x16,
+ 0x5e, 0x16, 0x26, 0x0c, 0x2f, 0xaf, 0x1c, 0xc7, 0x73, 0x5c, 0xb7, 0x5f,
+ 0xb4, 0xf0, 0x7e, 0x1d,
+};
+static const struct drbg_kat_no_reseed kat481_t = {
+ 0, kat481_entropyin, kat481_nonce, kat481_persstr,
+ kat481_addin0, kat481_addin1, kat481_retbits
+};
+static const struct drbg_kat kat481 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat481_t
+};
+
+static const unsigned char kat482_entropyin[] = {
+ 0x13, 0x19, 0x90, 0x90, 0xa4, 0x7f, 0xbd, 0x19, 0x84, 0xeb, 0x5f, 0xa9,
+ 0x58, 0x93, 0x45, 0x15, 0x46, 0x99, 0xef, 0x73, 0xf0, 0x0c, 0xd6, 0x2b,
+ 0x07, 0xc3, 0x41, 0x67, 0xc0, 0x32, 0x7e, 0x53,
+};
+static const unsigned char kat482_nonce[] = {
+ 0x5f, 0x96, 0x8f, 0x93, 0xb6, 0x59, 0xd8, 0xa5, 0x75, 0x0a, 0x95, 0x34,
+ 0x5a, 0x8a, 0xe2, 0x0c,
+};
+static const unsigned char kat482_persstr[] = {0};
+static const unsigned char kat482_addin0[] = {0};
+static const unsigned char kat482_addin1[] = {0};
+static const unsigned char kat482_retbits[] = {
+ 0xd1, 0x68, 0x78, 0xc5, 0xb0, 0x6d, 0x7b, 0x6c, 0xed, 0x8e, 0x8a, 0xeb,
+ 0x3a, 0x48, 0xd9, 0x5e, 0xc8, 0xdd, 0x65, 0x57, 0x33, 0xee, 0xc6, 0xef,
+ 0x47, 0x3a, 0x80, 0x78, 0xdf, 0xde, 0xa6, 0x00, 0xc0, 0xcc, 0x02, 0x16,
+ 0x8b, 0x4d, 0x6d, 0x74, 0x4e, 0xe8, 0x28, 0xba, 0x50, 0x31, 0x94, 0x1f,
+ 0x8e, 0x3d, 0x96, 0x58, 0x64, 0x07, 0xaf, 0x79, 0xeb, 0xa6, 0x0d, 0x14,
+ 0xaf, 0x47, 0xd5, 0x3a,
+};
+static const struct drbg_kat_no_reseed kat482_t = {
+ 1, kat482_entropyin, kat482_nonce, kat482_persstr,
+ kat482_addin0, kat482_addin1, kat482_retbits
+};
+static const struct drbg_kat kat482 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat482_t
+};
+
+static const unsigned char kat483_entropyin[] = {
+ 0xd6, 0xcc, 0xf8, 0xc8, 0x14, 0x3a, 0xbf, 0xe5, 0xfd, 0x70, 0x62, 0x6a,
+ 0xfc, 0x17, 0xf8, 0xae, 0xf1, 0x72, 0x02, 0x7c, 0x68, 0xc3, 0x8f, 0x94,
+ 0xce, 0x59, 0xf7, 0xae, 0xd5, 0xe9, 0x66, 0x57,
+};
+static const unsigned char kat483_nonce[] = {
+ 0x2e, 0xbc, 0x66, 0xd2, 0xfd, 0x66, 0xb4, 0xbf, 0x1e, 0xd2, 0x4f, 0xaf,
+ 0x74, 0x4f, 0xfb, 0xc9,
+};
+static const unsigned char kat483_persstr[] = {0};
+static const unsigned char kat483_addin0[] = {0};
+static const unsigned char kat483_addin1[] = {0};
+static const unsigned char kat483_retbits[] = {
+ 0x6d, 0x47, 0x4b, 0xa9, 0x71, 0xa8, 0x33, 0x9e, 0xca, 0x90, 0x4a, 0x4c,
+ 0x0d, 0xcf, 0x62, 0x65, 0x11, 0x6f, 0xbc, 0x66, 0xcb, 0xe5, 0xdd, 0xdf,
+ 0xdc, 0x42, 0x10, 0x45, 0x02, 0xeb, 0x21, 0x0e, 0x36, 0x60, 0xe1, 0xb1,
+ 0xb7, 0x10, 0xb9, 0x7d, 0x83, 0x0c, 0x27, 0x21, 0x2b, 0x33, 0x13, 0x1d,
+ 0x85, 0xd2, 0xf7, 0x3f, 0x39, 0x76, 0x07, 0x82, 0xf4, 0xb4, 0x7d, 0x44,
+ 0x7b, 0xa6, 0xa6, 0x8a,
+};
+static const struct drbg_kat_no_reseed kat483_t = {
+ 2, kat483_entropyin, kat483_nonce, kat483_persstr,
+ kat483_addin0, kat483_addin1, kat483_retbits
+};
+static const struct drbg_kat kat483 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat483_t
+};
+
+static const unsigned char kat484_entropyin[] = {
+ 0x39, 0x5d, 0x06, 0xb7, 0x54, 0x90, 0x73, 0xc4, 0x82, 0x52, 0xfb, 0x01,
+ 0xf3, 0x95, 0x42, 0x64, 0x56, 0x00, 0x31, 0x72, 0x20, 0x09, 0x00, 0x29,
+ 0xb2, 0xba, 0xc5, 0x8a, 0x7a, 0x4c, 0x35, 0xdf,
+};
+static const unsigned char kat484_nonce[] = {
+ 0x57, 0x26, 0xb9, 0x91, 0x1d, 0xa8, 0xf1, 0x66, 0xa8, 0x4f, 0x82, 0xc0,
+ 0x6f, 0x53, 0xdc, 0x9e,
+};
+static const unsigned char kat484_persstr[] = {0};
+static const unsigned char kat484_addin0[] = {0};
+static const unsigned char kat484_addin1[] = {0};
+static const unsigned char kat484_retbits[] = {
+ 0x0e, 0x18, 0x10, 0xb5, 0x04, 0x4f, 0x28, 0xef, 0x2c, 0xc7, 0x92, 0x8b,
+ 0xd6, 0x32, 0xd7, 0x03, 0x5b, 0xcd, 0xb9, 0x80, 0x1e, 0x9d, 0x84, 0xf5,
+ 0x69, 0xa5, 0xb6, 0xd0, 0x2d, 0x3c, 0xb5, 0xaa, 0xc0, 0xa1, 0x90, 0xbd,
+ 0x58, 0xd6, 0xa0, 0x8b, 0x67, 0x89, 0x52, 0x93, 0x20, 0xc7, 0x68, 0x17,
+ 0xf2, 0x7b, 0x7d, 0x33, 0x10, 0x85, 0x34, 0x67, 0x35, 0xad, 0x37, 0x1b,
+ 0x5c, 0x91, 0x89, 0xcd,
+};
+static const struct drbg_kat_no_reseed kat484_t = {
+ 3, kat484_entropyin, kat484_nonce, kat484_persstr,
+ kat484_addin0, kat484_addin1, kat484_retbits
+};
+static const struct drbg_kat kat484 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat484_t
+};
+
+static const unsigned char kat485_entropyin[] = {
+ 0xe5, 0x02, 0x71, 0x8e, 0x54, 0xc8, 0xa7, 0x9f, 0x31, 0x52, 0x9a, 0xba,
+ 0x42, 0x40, 0x48, 0x08, 0xe6, 0x52, 0x47, 0x7f, 0x59, 0x5a, 0xb3, 0x5b,
+ 0xc5, 0x4e, 0xaa, 0xc7, 0xaf, 0xaa, 0x22, 0x8a,
+};
+static const unsigned char kat485_nonce[] = {
+ 0xae, 0xe3, 0x28, 0xae, 0x82, 0x27, 0x4d, 0x9d, 0xff, 0xdb, 0x27, 0x72,
+ 0x31, 0x54, 0x89, 0xb2,
+};
+static const unsigned char kat485_persstr[] = {0};
+static const unsigned char kat485_addin0[] = {0};
+static const unsigned char kat485_addin1[] = {0};
+static const unsigned char kat485_retbits[] = {
+ 0x9d, 0x10, 0xba, 0xac, 0x91, 0x77, 0x0e, 0x97, 0xbe, 0x49, 0x0d, 0xb4,
+ 0xd8, 0x0d, 0x70, 0x07, 0xd6, 0xa2, 0x04, 0x07, 0x81, 0x3e, 0xee, 0x12,
+ 0x8a, 0xcb, 0x16, 0x1c, 0x6e, 0x36, 0xc2, 0x25, 0xeb, 0xc4, 0x2c, 0xa3,
+ 0x7b, 0x10, 0x7f, 0x04, 0x30, 0xb6, 0x98, 0x26, 0xad, 0xd2, 0xe5, 0x20,
+ 0xc2, 0xf1, 0x8f, 0xc0, 0x7e, 0x32, 0xec, 0x0a, 0x7b, 0x33, 0x46, 0x3b,
+ 0xcf, 0x48, 0xe5, 0x76,
+};
+static const struct drbg_kat_no_reseed kat485_t = {
+ 4, kat485_entropyin, kat485_nonce, kat485_persstr,
+ kat485_addin0, kat485_addin1, kat485_retbits
+};
+static const struct drbg_kat kat485 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat485_t
+};
+
+static const unsigned char kat486_entropyin[] = {
+ 0x63, 0xe6, 0x0f, 0xf1, 0x73, 0x9d, 0x46, 0x05, 0xf5, 0xc5, 0x11, 0xfd,
+ 0x0e, 0x39, 0x51, 0xdd, 0x3d, 0xe6, 0x57, 0x50, 0x8a, 0x60, 0xd7, 0xc8,
+ 0x7c, 0xe9, 0x5f, 0x39, 0x48, 0x1a, 0x75, 0x53,
+};
+static const unsigned char kat486_nonce[] = {
+ 0xb1, 0xc1, 0x7b, 0xb3, 0x4b, 0xaf, 0x2c, 0x7f, 0x3b, 0x03, 0xb7, 0x6e,
+ 0x68, 0x97, 0x31, 0x6f,
+};
+static const unsigned char kat486_persstr[] = {0};
+static const unsigned char kat486_addin0[] = {0};
+static const unsigned char kat486_addin1[] = {0};
+static const unsigned char kat486_retbits[] = {
+ 0x08, 0x19, 0x50, 0x61, 0xde, 0xd1, 0xab, 0x84, 0xbe, 0x7d, 0x5d, 0xcd,
+ 0x63, 0x0e, 0x7b, 0x90, 0x38, 0x54, 0xf1, 0x28, 0x43, 0x89, 0xe5, 0xe7,
+ 0x78, 0x49, 0xbb, 0xa1, 0x0c, 0x89, 0x08, 0x3b, 0xb6, 0xf3, 0x2f, 0x68,
+ 0x15, 0xcf, 0xac, 0x45, 0xb7, 0xca, 0xd0, 0xdf, 0xb5, 0x54, 0x98, 0xa4,
+ 0x7e, 0x87, 0x5d, 0x21, 0xed, 0x18, 0x42, 0xf5, 0x87, 0x79, 0x84, 0x5f,
+ 0x2f, 0x24, 0xc6, 0xe2,
+};
+static const struct drbg_kat_no_reseed kat486_t = {
+ 5, kat486_entropyin, kat486_nonce, kat486_persstr,
+ kat486_addin0, kat486_addin1, kat486_retbits
+};
+static const struct drbg_kat kat486 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat486_t
+};
+
+static const unsigned char kat487_entropyin[] = {
+ 0x63, 0xec, 0x70, 0x79, 0x2a, 0x6c, 0x78, 0x54, 0x0e, 0x40, 0xdb, 0x15,
+ 0xc1, 0xb8, 0x73, 0xfc, 0xde, 0x9b, 0xea, 0x1d, 0x74, 0x1d, 0x88, 0xb8,
+ 0x1b, 0xd1, 0xfd, 0x66, 0x13, 0x9d, 0xf7, 0x0c,
+};
+static const unsigned char kat487_nonce[] = {
+ 0xfc, 0x5f, 0x90, 0x2b, 0xdd, 0x0d, 0x7f, 0xe2, 0x16, 0xb1, 0x42, 0x3d,
+ 0x4f, 0x41, 0xf1, 0x2f,
+};
+static const unsigned char kat487_persstr[] = {0};
+static const unsigned char kat487_addin0[] = {0};
+static const unsigned char kat487_addin1[] = {0};
+static const unsigned char kat487_retbits[] = {
+ 0xe3, 0x66, 0xae, 0x29, 0x88, 0xf6, 0xf3, 0x78, 0x54, 0x85, 0x96, 0x02,
+ 0x31, 0x9e, 0x64, 0x38, 0x52, 0x44, 0x11, 0x50, 0x04, 0x38, 0x6a, 0x21,
+ 0xeb, 0x25, 0xe6, 0x94, 0x56, 0xc7, 0x78, 0x94, 0x7a, 0xe1, 0x1c, 0x95,
+ 0x32, 0xe5, 0x79, 0x4e, 0x62, 0x04, 0x60, 0x87, 0x7a, 0x5b, 0xcd, 0x77,
+ 0xf3, 0x70, 0xe8, 0xa9, 0x0d, 0x4b, 0xe3, 0x82, 0x06, 0xca, 0x39, 0x3e,
+ 0xdc, 0xea, 0xe3, 0xac,
+};
+static const struct drbg_kat_no_reseed kat487_t = {
+ 6, kat487_entropyin, kat487_nonce, kat487_persstr,
+ kat487_addin0, kat487_addin1, kat487_retbits
+};
+static const struct drbg_kat kat487 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat487_t
+};
+
+static const unsigned char kat488_entropyin[] = {
+ 0xea, 0xdc, 0x5b, 0x6a, 0x6f, 0x8d, 0x10, 0xa0, 0xa7, 0x89, 0x17, 0x03,
+ 0x55, 0x0e, 0xf4, 0x0f, 0xc2, 0x1c, 0xa5, 0x00, 0xee, 0x60, 0x3a, 0x68,
+ 0x5f, 0xf3, 0xd1, 0xfb, 0x56, 0xea, 0xd7, 0x0e,
+};
+static const unsigned char kat488_nonce[] = {
+ 0x6c, 0x5a, 0x65, 0xd7, 0xe8, 0xfb, 0xc2, 0xa7, 0xcf, 0xd9, 0xfa, 0x7a,
+ 0x5e, 0xfb, 0xdc, 0xd7,
+};
+static const unsigned char kat488_persstr[] = {0};
+static const unsigned char kat488_addin0[] = {0};
+static const unsigned char kat488_addin1[] = {0};
+static const unsigned char kat488_retbits[] = {
+ 0xd4, 0x28, 0xa2, 0x98, 0xcb, 0xfd, 0xf2, 0x0e, 0xf7, 0xbe, 0xe8, 0x91,
+ 0x3a, 0x26, 0xc5, 0x3e, 0xea, 0x49, 0x93, 0x3a, 0x2d, 0xde, 0x42, 0x1b,
+ 0xca, 0x4b, 0x1c, 0x6b, 0x86, 0x50, 0x6c, 0x6c, 0xa0, 0xef, 0x0b, 0xfa,
+ 0x13, 0xc0, 0x30, 0x50, 0x57, 0x48, 0xd5, 0x73, 0x7b, 0x23, 0x24, 0x80,
+ 0xed, 0xc0, 0xbb, 0xc9, 0xe7, 0xb7, 0xf3, 0xff, 0x8a, 0xef, 0xc2, 0x92,
+ 0x10, 0x6a, 0x62, 0x54,
+};
+static const struct drbg_kat_no_reseed kat488_t = {
+ 7, kat488_entropyin, kat488_nonce, kat488_persstr,
+ kat488_addin0, kat488_addin1, kat488_retbits
+};
+static const struct drbg_kat kat488 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat488_t
+};
+
+static const unsigned char kat489_entropyin[] = {
+ 0x0f, 0x91, 0x06, 0x58, 0x8b, 0xc9, 0x27, 0xec, 0xa2, 0x85, 0xe0, 0x5c,
+ 0x8c, 0x17, 0x0a, 0x68, 0xe9, 0xa1, 0x03, 0x10, 0x2a, 0x10, 0x67, 0x81,
+ 0xd8, 0xfb, 0x0a, 0x76, 0x88, 0xe4, 0x91, 0xc2,
+};
+static const unsigned char kat489_nonce[] = {
+ 0x2e, 0x58, 0xa8, 0x59, 0xb7, 0xbd, 0xc8, 0x16, 0xfb, 0x40, 0xb9, 0xee,
+ 0x59, 0x16, 0xa9, 0x25,
+};
+static const unsigned char kat489_persstr[] = {0};
+static const unsigned char kat489_addin0[] = {0};
+static const unsigned char kat489_addin1[] = {0};
+static const unsigned char kat489_retbits[] = {
+ 0xe3, 0xde, 0xcd, 0x08, 0x10, 0xe1, 0xdb, 0x9b, 0x77, 0x49, 0x0c, 0xbe,
+ 0x78, 0xca, 0xd2, 0x52, 0xc2, 0x61, 0xf0, 0xf3, 0x80, 0x51, 0xe5, 0xba,
+ 0x1e, 0x1f, 0xf9, 0x85, 0x2d, 0x0a, 0x68, 0xa1, 0xfb, 0xdc, 0x79, 0x8e,
+ 0xb1, 0x96, 0xf2, 0xba, 0x13, 0x2e, 0x6a, 0x45, 0x1d, 0xfe, 0x6a, 0x98,
+ 0x88, 0x83, 0x36, 0x66, 0xbb, 0xc3, 0x04, 0xc6, 0x17, 0xc2, 0xd6, 0x10,
+ 0xbd, 0x5e, 0x48, 0x9e,
+};
+static const struct drbg_kat_no_reseed kat489_t = {
+ 8, kat489_entropyin, kat489_nonce, kat489_persstr,
+ kat489_addin0, kat489_addin1, kat489_retbits
+};
+static const struct drbg_kat kat489 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat489_t
+};
+
+static const unsigned char kat490_entropyin[] = {
+ 0x41, 0x62, 0xa4, 0x2c, 0xb0, 0xd8, 0x3d, 0x33, 0x84, 0xa1, 0xdc, 0xb9,
+ 0xda, 0xdc, 0xc6, 0xd0, 0x70, 0xeb, 0xd1, 0x68, 0x3b, 0x3c, 0x09, 0x00,
+ 0xf3, 0x1d, 0x7c, 0xbe, 0x05, 0x0e, 0x6a, 0xca,
+};
+static const unsigned char kat490_nonce[] = {
+ 0x15, 0xf1, 0x54, 0xac, 0x7c, 0x82, 0x52, 0x58, 0xde, 0x3d, 0x66, 0x89,
+ 0xfb, 0x9a, 0xb4, 0x6f,
+};
+static const unsigned char kat490_persstr[] = {0};
+static const unsigned char kat490_addin0[] = {0};
+static const unsigned char kat490_addin1[] = {0};
+static const unsigned char kat490_retbits[] = {
+ 0x3e, 0xad, 0xb8, 0xac, 0xf7, 0xde, 0x3b, 0xd0, 0x98, 0x29, 0x70, 0x67,
+ 0x36, 0x61, 0x83, 0xa0, 0x79, 0x90, 0x55, 0x0a, 0xde, 0xad, 0x0b, 0xbb,
+ 0xe4, 0x8f, 0xe8, 0x7b, 0xfd, 0xe2, 0x1c, 0xa8, 0x78, 0xe3, 0xce, 0xc7,
+ 0x73, 0x79, 0xbb, 0x88, 0x4f, 0x28, 0x54, 0x6c, 0x57, 0xc4, 0x0e, 0x28,
+ 0xe7, 0x23, 0xf8, 0xcb, 0x8c, 0x9e, 0x04, 0xa8, 0x50, 0xa4, 0x6d, 0xc7,
+ 0x5f, 0xe9, 0x03, 0x68,
+};
+static const struct drbg_kat_no_reseed kat490_t = {
+ 9, kat490_entropyin, kat490_nonce, kat490_persstr,
+ kat490_addin0, kat490_addin1, kat490_retbits
+};
+static const struct drbg_kat kat490 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat490_t
+};
+
+static const unsigned char kat491_entropyin[] = {
+ 0x36, 0x52, 0x20, 0x1d, 0x2c, 0xed, 0x05, 0x6c, 0x83, 0x66, 0x71, 0x57,
+ 0xd7, 0xb0, 0xed, 0x02, 0xdc, 0x4b, 0xa3, 0xf6, 0xd4, 0x37, 0x99, 0xfd,
+ 0xa4, 0xa6, 0xd5, 0x20, 0x4c, 0x4e, 0x3b, 0xb4,
+};
+static const unsigned char kat491_nonce[] = {
+ 0x37, 0xf1, 0x81, 0x83, 0x70, 0x52, 0xd7, 0x29, 0xa7, 0x0b, 0x46, 0x2f,
+ 0x5c, 0x1f, 0xec, 0xc2,
+};
+static const unsigned char kat491_persstr[] = {0};
+static const unsigned char kat491_addin0[] = {0};
+static const unsigned char kat491_addin1[] = {0};
+static const unsigned char kat491_retbits[] = {
+ 0xb5, 0xbc, 0x59, 0x13, 0x8d, 0xf3, 0x51, 0x49, 0x00, 0x57, 0xcf, 0x9d,
+ 0xf9, 0x7e, 0x99, 0x17, 0x45, 0xe0, 0x3b, 0x30, 0xee, 0x96, 0x84, 0xe6,
+ 0x18, 0x12, 0xd8, 0x45, 0x3d, 0xac, 0x5b, 0xcf, 0x54, 0x99, 0x6d, 0x95,
+ 0xca, 0x1d, 0x71, 0xfb, 0xc5, 0x99, 0x2d, 0x18, 0xde, 0x9b, 0xf2, 0x24,
+ 0xf2, 0xba, 0x42, 0xd2, 0x4e, 0x3f, 0x8d, 0x13, 0xe3, 0x41, 0x18, 0x22,
+ 0x74, 0xcb, 0xcd, 0x32,
+};
+static const struct drbg_kat_no_reseed kat491_t = {
+ 10, kat491_entropyin, kat491_nonce, kat491_persstr,
+ kat491_addin0, kat491_addin1, kat491_retbits
+};
+static const struct drbg_kat kat491 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat491_t
+};
+
+static const unsigned char kat492_entropyin[] = {
+ 0xc1, 0xd3, 0xcb, 0xa4, 0x8d, 0x32, 0x8a, 0xd2, 0xe4, 0x1c, 0x75, 0xd2,
+ 0x1c, 0xb5, 0x3b, 0x69, 0xff, 0x16, 0xca, 0xfb, 0x51, 0xc2, 0x41, 0xd3,
+ 0x6e, 0x1d, 0x75, 0x2f, 0xa3, 0xde, 0x2d, 0xd3,
+};
+static const unsigned char kat492_nonce[] = {
+ 0xb1, 0xb6, 0xe9, 0xd1, 0xa5, 0x0d, 0x4f, 0xa6, 0x54, 0xeb, 0xd4, 0x46,
+ 0x63, 0xa8, 0xec, 0x01,
+};
+static const unsigned char kat492_persstr[] = {0};
+static const unsigned char kat492_addin0[] = {0};
+static const unsigned char kat492_addin1[] = {0};
+static const unsigned char kat492_retbits[] = {
+ 0x2b, 0x9b, 0xa1, 0xa9, 0xbc, 0x56, 0xc7, 0xf3, 0xe5, 0xb2, 0xd5, 0x87,
+ 0xaa, 0xf9, 0x8d, 0x1e, 0x7d, 0xa5, 0x66, 0xcf, 0xf5, 0xf2, 0xe7, 0xf9,
+ 0x17, 0x10, 0xd4, 0x3f, 0x8c, 0xf7, 0xe4, 0x85, 0x63, 0x2f, 0xf4, 0x51,
+ 0x11, 0x0a, 0xf8, 0x73, 0xe0, 0xb3, 0x3f, 0x0d, 0xff, 0x46, 0x8f, 0x09,
+ 0xc5, 0xe3, 0x23, 0x3d, 0x38, 0x07, 0xcd, 0x73, 0x99, 0x82, 0xb5, 0xe5,
+ 0x88, 0x54, 0x34, 0xc9,
+};
+static const struct drbg_kat_no_reseed kat492_t = {
+ 11, kat492_entropyin, kat492_nonce, kat492_persstr,
+ kat492_addin0, kat492_addin1, kat492_retbits
+};
+static const struct drbg_kat kat492 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat492_t
+};
+
+static const unsigned char kat493_entropyin[] = {
+ 0xd6, 0x70, 0x2e, 0xd5, 0xd0, 0x35, 0x96, 0xd2, 0xd1, 0xda, 0xf9, 0xff,
+ 0xe9, 0xc0, 0xa1, 0x9a, 0x47, 0x94, 0x77, 0xf7, 0xe9, 0x14, 0x65, 0x4f,
+ 0x7b, 0x11, 0x4d, 0x18, 0xb6, 0x3f, 0x50, 0x7c,
+};
+static const unsigned char kat493_nonce[] = {
+ 0x53, 0xb2, 0x9d, 0x4b, 0x42, 0xd3, 0xc8, 0x79, 0x8d, 0xc1, 0xe6, 0x3d,
+ 0xf9, 0xf3, 0x0b, 0xbf,
+};
+static const unsigned char kat493_persstr[] = {0};
+static const unsigned char kat493_addin0[] = {0};
+static const unsigned char kat493_addin1[] = {0};
+static const unsigned char kat493_retbits[] = {
+ 0xfb, 0x4e, 0x3f, 0x7b, 0x0c, 0x6e, 0xfa, 0xe1, 0x48, 0x13, 0x0f, 0x82,
+ 0xd5, 0x9c, 0xbc, 0x99, 0x38, 0x12, 0x41, 0x2e, 0x0f, 0x57, 0xb2, 0x06,
+ 0xff, 0x08, 0x64, 0xf4, 0xdb, 0xb8, 0xe4, 0x07, 0xeb, 0x7d, 0xe2, 0xc6,
+ 0x8a, 0xf8, 0xa5, 0x14, 0x16, 0x10, 0xed, 0x47, 0x65, 0x27, 0x49, 0x35,
+ 0xe6, 0xf3, 0x7e, 0xf4, 0xee, 0xd3, 0x7d, 0xe2, 0x73, 0x78, 0x85, 0x76,
+ 0xe7, 0xb8, 0x9d, 0xaa,
+};
+static const struct drbg_kat_no_reseed kat493_t = {
+ 12, kat493_entropyin, kat493_nonce, kat493_persstr,
+ kat493_addin0, kat493_addin1, kat493_retbits
+};
+static const struct drbg_kat kat493 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat493_t
+};
+
+static const unsigned char kat494_entropyin[] = {
+ 0x7e, 0xe6, 0x1f, 0xaa, 0x3b, 0x3f, 0xd9, 0x83, 0xba, 0x3b, 0x35, 0x0b,
+ 0xee, 0x25, 0xbd, 0x07, 0x5e, 0x2e, 0x6f, 0x17, 0x2b, 0xe9, 0x64, 0xbb,
+ 0xe4, 0xff, 0x21, 0x0f, 0xc9, 0x2d, 0xe6, 0x51,
+};
+static const unsigned char kat494_nonce[] = {
+ 0xa0, 0xc4, 0xeb, 0xcc, 0x0a, 0xef, 0x84, 0x8e, 0xd7, 0xb0, 0x0d, 0x3b,
+ 0x61, 0x29, 0x72, 0xc9,
+};
+static const unsigned char kat494_persstr[] = {0};
+static const unsigned char kat494_addin0[] = {0};
+static const unsigned char kat494_addin1[] = {0};
+static const unsigned char kat494_retbits[] = {
+ 0xa2, 0xa1, 0x90, 0xf0, 0xfd, 0xfa, 0xf6, 0x63, 0x14, 0xd4, 0xe0, 0x07,
+ 0x1d, 0x4e, 0xc3, 0xd2, 0x91, 0x4f, 0xa9, 0x3f, 0x89, 0x64, 0xef, 0x56,
+ 0x08, 0xec, 0x38, 0x6b, 0xba, 0x03, 0x46, 0x70, 0xec, 0x01, 0x77, 0x35,
+ 0x0a, 0x78, 0x02, 0x14, 0xba, 0xc5, 0x79, 0x29, 0x09, 0x18, 0xfb, 0xa9,
+ 0xb2, 0x1e, 0xf9, 0xf4, 0xf1, 0x21, 0x00, 0x34, 0xd0, 0x80, 0x9f, 0xed,
+ 0xc4, 0x4d, 0x33, 0xb9,
+};
+static const struct drbg_kat_no_reseed kat494_t = {
+ 13, kat494_entropyin, kat494_nonce, kat494_persstr,
+ kat494_addin0, kat494_addin1, kat494_retbits
+};
+static const struct drbg_kat kat494 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat494_t
+};
+
+static const unsigned char kat495_entropyin[] = {
+ 0x86, 0xe3, 0xcc, 0xf0, 0x93, 0x82, 0xf4, 0x61, 0x92, 0xd8, 0x93, 0x7e,
+ 0xba, 0x1d, 0xfc, 0x04, 0xad, 0x8e, 0x12, 0xef, 0x19, 0x6d, 0x6d, 0x94,
+ 0x19, 0x70, 0xb1, 0x6e, 0x15, 0x43, 0x8b, 0xb2,
+};
+static const unsigned char kat495_nonce[] = {
+ 0xe2, 0xf9, 0xcc, 0x7e, 0xab, 0x26, 0x49, 0x1e, 0x3e, 0xab, 0x3c, 0xfd,
+ 0xfa, 0xad, 0xda, 0x90,
+};
+static const unsigned char kat495_persstr[] = {0};
+static const unsigned char kat495_addin0[] = {0};
+static const unsigned char kat495_addin1[] = {0};
+static const unsigned char kat495_retbits[] = {
+ 0xd8, 0xbc, 0x7e, 0x82, 0x20, 0xcb, 0xe0, 0x79, 0xb4, 0x40, 0x3d, 0x6b,
+ 0x47, 0xe7, 0x97, 0x66, 0x05, 0x73, 0x5f, 0x95, 0x3a, 0xab, 0xf9, 0x3f,
+ 0xd0, 0x03, 0x93, 0x96, 0xdd, 0xb4, 0x08, 0x8e, 0x43, 0x60, 0x52, 0x72,
+ 0x2c, 0x43, 0x25, 0xf9, 0x0e, 0xb8, 0x68, 0x51, 0x2a, 0xe7, 0xce, 0x39,
+ 0x27, 0x37, 0x09, 0x40, 0xb2, 0x00, 0xf3, 0xcc, 0x81, 0xda, 0x77, 0x47,
+ 0x79, 0xe9, 0x0d, 0x7c,
+};
+static const struct drbg_kat_no_reseed kat495_t = {
+ 14, kat495_entropyin, kat495_nonce, kat495_persstr,
+ kat495_addin0, kat495_addin1, kat495_retbits
+};
+static const struct drbg_kat kat495 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat495_t
+};
+
+static const unsigned char kat496_entropyin[] = {
+ 0x81, 0x48, 0xd6, 0x5d, 0x86, 0x51, 0x3c, 0xe7, 0xd3, 0x89, 0x23, 0xec,
+ 0x2f, 0x26, 0xb9, 0xe7, 0xc6, 0x77, 0xdc, 0xc8, 0x99, 0x7e, 0x32, 0x5b,
+ 0x73, 0x72, 0x61, 0x9e, 0x75, 0x3e, 0xd9, 0x44,
+};
+static const unsigned char kat496_nonce[] = {
+ 0x41, 0xc7, 0x1a, 0x24, 0xd1, 0x7d, 0x97, 0x41, 0x90, 0x98, 0x2b, 0xb7,
+ 0x51, 0x5c, 0xe7, 0xf5,
+};
+static const unsigned char kat496_persstr[] = {0};
+static const unsigned char kat496_addin0[] = {
+ 0x55, 0xb4, 0x46, 0x04, 0x6c, 0x2d, 0x14, 0xbd, 0xd0, 0xcd, 0xba, 0x4b,
+ 0x71, 0x87, 0x3f, 0xd4, 0x76, 0x26, 0x50, 0x69, 0x5a, 0x11, 0x50, 0x79,
+ 0x49, 0x46, 0x2d, 0xa8, 0xd9, 0x64, 0xab, 0x6a,
+};
+static const unsigned char kat496_addin1[] = {
+ 0x91, 0x46, 0x8f, 0x1a, 0x09, 0x7d, 0x99, 0xee, 0x33, 0x94, 0x62, 0xca,
+ 0x91, 0x6c, 0xb4, 0xa1, 0x0f, 0x63, 0xd5, 0x38, 0x50, 0xa4, 0xf1, 0x7f,
+ 0x59, 0x8e, 0xac, 0x49, 0x02, 0x99, 0xb0, 0x2e,
+};
+static const unsigned char kat496_retbits[] = {
+ 0x54, 0x60, 0x3d, 0x1a, 0x50, 0x61, 0x32, 0xbb, 0xfa, 0x05, 0xb1, 0x53,
+ 0xa0, 0x4f, 0x22, 0xa1, 0xd5, 0x16, 0xcc, 0x46, 0x32, 0x3c, 0xef, 0x15,
+ 0x11, 0x1a, 0xf2, 0x21, 0xf0, 0x30, 0xf3, 0x8d, 0x68, 0x41, 0xd4, 0x67,
+ 0x05, 0x18, 0xb4, 0x91, 0x4a, 0x46, 0x31, 0xaf, 0x68, 0x2e, 0x74, 0x21,
+ 0xdf, 0xfa, 0xac, 0x98, 0x6a, 0x38, 0xe9, 0x4d, 0x92, 0xbf, 0xa7, 0x58,
+ 0xe2, 0xeb, 0x10, 0x1f,
+};
+static const struct drbg_kat_no_reseed kat496_t = {
+ 0, kat496_entropyin, kat496_nonce, kat496_persstr,
+ kat496_addin0, kat496_addin1, kat496_retbits
+};
+static const struct drbg_kat kat496 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat496_t
+};
+
+static const unsigned char kat497_entropyin[] = {
+ 0xeb, 0x4a, 0x0a, 0xdd, 0x69, 0x70, 0x97, 0xf1, 0xce, 0x3a, 0x71, 0x9d,
+ 0x0d, 0x4a, 0xe6, 0x9b, 0x17, 0x21, 0xdc, 0xe3, 0xec, 0x0e, 0x6c, 0x0e,
+ 0x90, 0x5d, 0x78, 0xee, 0x21, 0x28, 0x63, 0xb1,
+};
+static const unsigned char kat497_nonce[] = {
+ 0x5f, 0x36, 0x8e, 0x85, 0xc1, 0xf1, 0x7b, 0x64, 0x63, 0xa2, 0x78, 0x37,
+ 0x7f, 0x69, 0x1f, 0x37,
+};
+static const unsigned char kat497_persstr[] = {0};
+static const unsigned char kat497_addin0[] = {
+ 0xf9, 0x78, 0x01, 0xbc, 0xe9, 0x81, 0xb3, 0x50, 0x81, 0xc2, 0x58, 0x01,
+ 0x40, 0x0e, 0xc2, 0x07, 0x43, 0x3d, 0xa4, 0xf1, 0x7f, 0x32, 0x65, 0xa1,
+ 0x6e, 0x9e, 0x4e, 0x68, 0x37, 0x22, 0x70, 0x8b,
+};
+static const unsigned char kat497_addin1[] = {
+ 0xae, 0x54, 0xb4, 0x9a, 0x41, 0x12, 0xb3, 0xd9, 0x78, 0xe9, 0x66, 0xe2,
+ 0xdd, 0xa0, 0x62, 0xe3, 0x65, 0x2b, 0x58, 0xa1, 0x4b, 0xef, 0x4f, 0xfe,
+ 0x03, 0x85, 0x20, 0xc9, 0xa6, 0x75, 0xd3, 0x53,
+};
+static const unsigned char kat497_retbits[] = {
+ 0x6a, 0xee, 0x0b, 0x3a, 0x81, 0x5c, 0x82, 0xf9, 0xbb, 0x01, 0x19, 0xf8,
+ 0x6a, 0xf9, 0x07, 0x93, 0xfc, 0x1f, 0x99, 0x96, 0xdd, 0x5b, 0x72, 0xbb,
+ 0xc3, 0x26, 0xac, 0x4e, 0x6a, 0x5e, 0x87, 0x48, 0x50, 0xb2, 0xfe, 0xc1,
+ 0xd7, 0x20, 0x2c, 0x35, 0x58, 0x0b, 0xd6, 0x72, 0x70, 0x29, 0x60, 0x9f,
+ 0x24, 0x71, 0xe6, 0xc9, 0xb6, 0x16, 0x29, 0xd1, 0x74, 0xb8, 0x94, 0xcd,
+ 0x17, 0x8a, 0xdf, 0xd4,
+};
+static const struct drbg_kat_no_reseed kat497_t = {
+ 1, kat497_entropyin, kat497_nonce, kat497_persstr,
+ kat497_addin0, kat497_addin1, kat497_retbits
+};
+static const struct drbg_kat kat497 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat497_t
+};
+
+static const unsigned char kat498_entropyin[] = {
+ 0x7f, 0xd6, 0xe2, 0x62, 0xd8, 0x21, 0xd5, 0xe5, 0xb6, 0x60, 0x48, 0x57,
+ 0x55, 0xea, 0x79, 0x61, 0x57, 0x96, 0x31, 0xa4, 0xb9, 0x64, 0xcf, 0xb4,
+ 0xc2, 0xc3, 0x5a, 0xfd, 0xe6, 0x9f, 0xfe, 0xa1,
+};
+static const unsigned char kat498_nonce[] = {
+ 0xae, 0x8c, 0x54, 0xaf, 0xfd, 0xb7, 0x6c, 0x5f, 0xd1, 0x96, 0xfb, 0xd5,
+ 0xa2, 0xc4, 0x77, 0xec,
+};
+static const unsigned char kat498_persstr[] = {0};
+static const unsigned char kat498_addin0[] = {
+ 0xab, 0x81, 0x03, 0x5c, 0xb3, 0xc0, 0x17, 0xcb, 0xe5, 0x1a, 0x2b, 0xc6,
+ 0x47, 0x51, 0xce, 0x61, 0xf8, 0xae, 0x02, 0xe8, 0x0a, 0xfe, 0xf8, 0x37,
+ 0x8f, 0x42, 0xac, 0x67, 0x06, 0x0f, 0xfa, 0xf9,
+};
+static const unsigned char kat498_addin1[] = {
+ 0x4f, 0x7d, 0xb0, 0x2d, 0x34, 0x6b, 0xd4, 0x16, 0x68, 0xfc, 0xf6, 0x1b,
+ 0xac, 0x93, 0x93, 0x60, 0x03, 0xd2, 0x2f, 0xeb, 0xd3, 0xb9, 0xf8, 0xc0,
+ 0x23, 0x4d, 0x15, 0x1b, 0x49, 0x2b, 0x16, 0xe7,
+};
+static const unsigned char kat498_retbits[] = {
+ 0x93, 0x0c, 0x26, 0x43, 0x1a, 0x0f, 0xab, 0xb4, 0x5a, 0xbe, 0x41, 0x8d,
+ 0xb9, 0xaf, 0x10, 0xfe, 0x27, 0x55, 0x80, 0xf4, 0x99, 0xcd, 0xd7, 0x17,
+ 0xf7, 0xfc, 0xc9, 0x4b, 0x59, 0xf9, 0x52, 0xa0, 0x4e, 0xef, 0x8f, 0x1d,
+ 0x5a, 0xa0, 0xa4, 0x82, 0x0d, 0xdb, 0xe4, 0x13, 0xb5, 0xc3, 0xd7, 0xa0,
+ 0x89, 0x27, 0x34, 0x6a, 0x90, 0x63, 0x5e, 0xa2, 0xc5, 0x1b, 0x0a, 0xb0,
+ 0xe9, 0xce, 0xdb, 0x1d,
+};
+static const struct drbg_kat_no_reseed kat498_t = {
+ 2, kat498_entropyin, kat498_nonce, kat498_persstr,
+ kat498_addin0, kat498_addin1, kat498_retbits
+};
+static const struct drbg_kat kat498 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat498_t
+};
+
+static const unsigned char kat499_entropyin[] = {
+ 0x70, 0x50, 0x79, 0x0a, 0x8b, 0x22, 0xff, 0xea, 0x19, 0xa5, 0x05, 0xe4,
+ 0xfb, 0xb3, 0xbc, 0x2a, 0x3b, 0x41, 0xfd, 0x94, 0x7c, 0xe3, 0xdd, 0x50,
+ 0xb4, 0xf7, 0x38, 0xd8, 0xc2, 0x2f, 0xbe, 0xb0,
+};
+static const unsigned char kat499_nonce[] = {
+ 0x36, 0x56, 0x28, 0xa7, 0xb6, 0xe7, 0xa7, 0x16, 0x60, 0xfd, 0x36, 0x38,
+ 0x35, 0x1e, 0x6c, 0x12,
+};
+static const unsigned char kat499_persstr[] = {0};
+static const unsigned char kat499_addin0[] = {
+ 0x1d, 0xb1, 0xc1, 0x98, 0x48, 0x58, 0x0e, 0xe1, 0xf6, 0x9a, 0x63, 0x81,
+ 0x4b, 0x41, 0xad, 0x65, 0xea, 0x1a, 0x54, 0x26, 0x1e, 0x90, 0x7d, 0x3e,
+ 0xdb, 0x80, 0xb5, 0xe9, 0xc5, 0x58, 0x19, 0x9d,
+};
+static const unsigned char kat499_addin1[] = {
+ 0x06, 0x18, 0x12, 0x90, 0x6e, 0xd3, 0x31, 0x4a, 0x9d, 0xf0, 0xef, 0x61,
+ 0xb3, 0xb5, 0x2b, 0x68, 0x5c, 0xcc, 0x45, 0x60, 0x1d, 0x69, 0xd9, 0x84,
+ 0x4c, 0xdb, 0xdb, 0x45, 0x62, 0x7d, 0x42, 0x94,
+};
+static const unsigned char kat499_retbits[] = {
+ 0x0e, 0x6f, 0xc5, 0xde, 0x18, 0x29, 0x7e, 0x15, 0xb4, 0x32, 0xa1, 0x24,
+ 0xa9, 0xd8, 0x87, 0x7f, 0x9a, 0xdb, 0xd2, 0x33, 0x72, 0x40, 0x6f, 0x26,
+ 0x3e, 0x2d, 0xd7, 0x7c, 0x69, 0xbd, 0xe7, 0x55, 0x96, 0xeb, 0x9f, 0x8a,
+ 0x7a, 0x25, 0xd0, 0xb4, 0x5a, 0x40, 0x3a, 0x4c, 0x57, 0x58, 0x77, 0x1f,
+ 0x22, 0x49, 0x09, 0xd8, 0x84, 0x08, 0xf1, 0x74, 0x48, 0x7f, 0xdb, 0x30,
+ 0x55, 0x4c, 0x1f, 0x3b,
+};
+static const struct drbg_kat_no_reseed kat499_t = {
+ 3, kat499_entropyin, kat499_nonce, kat499_persstr,
+ kat499_addin0, kat499_addin1, kat499_retbits
+};
+static const struct drbg_kat kat499 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat499_t
+};
+
+static const unsigned char kat500_entropyin[] = {
+ 0x29, 0x68, 0xf8, 0x57, 0xd5, 0x83, 0xab, 0x28, 0x74, 0x10, 0xf4, 0x55,
+ 0xbf, 0x44, 0x62, 0xe8, 0xa7, 0x17, 0xfb, 0x93, 0xbc, 0x20, 0x0d, 0xb4,
+ 0x3d, 0x12, 0xb1, 0xd1, 0x33, 0xbe, 0x00, 0x3b,
+};
+static const unsigned char kat500_nonce[] = {
+ 0xdc, 0xdd, 0x14, 0x6a, 0x6f, 0x2f, 0x9f, 0x0f, 0x86, 0x80, 0x4f, 0x30,
+ 0x92, 0x16, 0xa7, 0xbe,
+};
+static const unsigned char kat500_persstr[] = {0};
+static const unsigned char kat500_addin0[] = {
+ 0x65, 0x5e, 0xac, 0x56, 0xcb, 0xb1, 0x24, 0xe1, 0x75, 0x82, 0xa1, 0xfa,
+ 0x7f, 0xa6, 0x19, 0x9e, 0xbe, 0x32, 0x81, 0x10, 0x1e, 0xc7, 0x8b, 0xac,
+ 0x74, 0x9a, 0x4d, 0x1d, 0x28, 0x7e, 0x1b, 0x82,
+};
+static const unsigned char kat500_addin1[] = {
+ 0x26, 0xba, 0x4b, 0x54, 0x01, 0xb9, 0xd1, 0x24, 0x62, 0x5a, 0x60, 0xd5,
+ 0x3f, 0x2d, 0x7b, 0x3f, 0x45, 0xdb, 0x5b, 0xc4, 0x36, 0x11, 0xd4, 0xcc,
+ 0x59, 0xc8, 0x3a, 0x18, 0x18, 0x16, 0x9c, 0xac,
+};
+static const unsigned char kat500_retbits[] = {
+ 0xa7, 0xbf, 0x0e, 0x65, 0x50, 0x20, 0xa2, 0xc9, 0xa5, 0x06, 0x43, 0xcc,
+ 0xde, 0x05, 0xfd, 0x95, 0xa6, 0x44, 0x66, 0xda, 0x7a, 0x75, 0x6b, 0xf1,
+ 0xb9, 0xd1, 0x95, 0xfb, 0xac, 0x0e, 0xe2, 0x05, 0x9b, 0xa9, 0xd5, 0xf5,
+ 0xe3, 0x43, 0xfd, 0x8d, 0x67, 0x55, 0xa2, 0xe5, 0x4c, 0x38, 0x80, 0x3c,
+ 0xcf, 0xc4, 0xe9, 0x19, 0x12, 0x4c, 0x1e, 0xcd, 0x48, 0x53, 0x71, 0x54,
+ 0x86, 0xbe, 0x4f, 0x1a,
+};
+static const struct drbg_kat_no_reseed kat500_t = {
+ 4, kat500_entropyin, kat500_nonce, kat500_persstr,
+ kat500_addin0, kat500_addin1, kat500_retbits
+};
+static const struct drbg_kat kat500 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat500_t
+};
+
+static const unsigned char kat501_entropyin[] = {
+ 0x8f, 0xd3, 0xb3, 0x30, 0xfc, 0x13, 0x8f, 0x42, 0x1a, 0x66, 0x92, 0x5f,
+ 0x72, 0x64, 0x89, 0x85, 0xe5, 0xa2, 0x55, 0xe5, 0x99, 0x7f, 0xf2, 0x47,
+ 0xe5, 0x33, 0x62, 0xdf, 0xf7, 0xa9, 0xa0, 0xf9,
+};
+static const unsigned char kat501_nonce[] = {
+ 0x3c, 0x67, 0x0e, 0x24, 0x67, 0xe3, 0xfb, 0x08, 0x7c, 0x7e, 0xa6, 0xcc,
+ 0x0a, 0xf5, 0x56, 0xff,
+};
+static const unsigned char kat501_persstr[] = {0};
+static const unsigned char kat501_addin0[] = {
+ 0xa8, 0x4e, 0xfb, 0x4a, 0x46, 0x4c, 0xc8, 0xaa, 0x75, 0x49, 0x7f, 0x86,
+ 0xc3, 0x51, 0x5c, 0x64, 0x76, 0xce, 0xdc, 0x7b, 0x94, 0x0f, 0x9d, 0x46,
+ 0xce, 0x40, 0x1b, 0xd1, 0xd5, 0x23, 0x49, 0xfd,
+};
+static const unsigned char kat501_addin1[] = {
+ 0x78, 0xdc, 0x05, 0x30, 0x7d, 0x06, 0x50, 0xa1, 0xa4, 0xc8, 0x64, 0x91,
+ 0xd5, 0xb3, 0x12, 0x54, 0xf5, 0x48, 0x50, 0xd5, 0x7e, 0xe4, 0xec, 0xfb,
+ 0x69, 0xc9, 0xa4, 0xd2, 0x68, 0x57, 0x0a, 0xc4,
+};
+static const unsigned char kat501_retbits[] = {
+ 0x3c, 0xb7, 0x70, 0x2d, 0x62, 0xe7, 0x6b, 0xee, 0xc9, 0x2f, 0x66, 0xc7,
+ 0x2c, 0x63, 0x13, 0x14, 0x3c, 0x56, 0x2b, 0x52, 0xee, 0x94, 0x84, 0xc8,
+ 0x20, 0x0d, 0x33, 0x15, 0x09, 0xcb, 0xe2, 0xd0, 0xf4, 0xcb, 0x4d, 0xba,
+ 0x7d, 0xfc, 0xd4, 0x18, 0x39, 0xf2, 0xe7, 0x67, 0x49, 0xab, 0x80, 0x15,
+ 0x61, 0x4a, 0x14, 0xaf, 0xfd, 0xdc, 0xff, 0x0f, 0xdd, 0x4e, 0xb1, 0x82,
+ 0xf2, 0xbc, 0x48, 0x4d,
+};
+static const struct drbg_kat_no_reseed kat501_t = {
+ 5, kat501_entropyin, kat501_nonce, kat501_persstr,
+ kat501_addin0, kat501_addin1, kat501_retbits
+};
+static const struct drbg_kat kat501 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat501_t
+};
+
+static const unsigned char kat502_entropyin[] = {
+ 0x18, 0x28, 0xce, 0x53, 0x41, 0xed, 0x77, 0x1c, 0x2c, 0x8e, 0x68, 0xef,
+ 0x5d, 0x57, 0x28, 0xa5, 0x25, 0xa3, 0xf7, 0x65, 0x53, 0x63, 0xc5, 0xec,
+ 0x01, 0xc3, 0xfc, 0xb3, 0x0c, 0x0d, 0x10, 0x25,
+};
+static const unsigned char kat502_nonce[] = {
+ 0xfd, 0x4c, 0x5d, 0x43, 0x54, 0x5e, 0x88, 0x56, 0xb6, 0x1c, 0xa4, 0x23,
+ 0xe9, 0x58, 0x0c, 0x7d,
+};
+static const unsigned char kat502_persstr[] = {0};
+static const unsigned char kat502_addin0[] = {
+ 0x38, 0xc2, 0x81, 0x99, 0x54, 0x46, 0xe6, 0xc2, 0x73, 0x63, 0x00, 0x80,
+ 0x08, 0xf9, 0xb2, 0x8f, 0xcb, 0x5c, 0x00, 0x38, 0x3a, 0x20, 0x95, 0x87,
+ 0x85, 0x5c, 0x1d, 0x81, 0x9d, 0x48, 0xbd, 0xa0,
+};
+static const unsigned char kat502_addin1[] = {
+ 0x9b, 0x1f, 0x6b, 0x84, 0xc4, 0x63, 0x2a, 0x5b, 0x21, 0x5f, 0xa3, 0xf8,
+ 0x41, 0x10, 0xc4, 0x5b, 0x6b, 0xd5, 0x3b, 0xcc, 0xca, 0x79, 0x2b, 0x4c,
+ 0x4d, 0x20, 0x73, 0xcc, 0xc9, 0x9e, 0xe3, 0x63,
+};
+static const unsigned char kat502_retbits[] = {
+ 0xa3, 0xd7, 0x96, 0x54, 0xcd, 0x4f, 0x56, 0x70, 0xa6, 0x37, 0xad, 0x40,
+ 0xf4, 0x7f, 0x7f, 0xd5, 0xce, 0x21, 0xd4, 0xd1, 0x8c, 0x6e, 0xab, 0x6d,
+ 0xd0, 0x2c, 0x79, 0x14, 0x28, 0xb6, 0xa9, 0x65, 0xd3, 0xf7, 0xeb, 0x0e,
+ 0x62, 0x03, 0xcc, 0xb8, 0xdd, 0xc0, 0x6f, 0x3e, 0x29, 0x8a, 0xb3, 0x13,
+ 0x16, 0x12, 0x94, 0x52, 0x2f, 0x14, 0x6d, 0x30, 0x84, 0x4c, 0xa7, 0x74,
+ 0x2e, 0x02, 0x20, 0x7e,
+};
+static const struct drbg_kat_no_reseed kat502_t = {
+ 6, kat502_entropyin, kat502_nonce, kat502_persstr,
+ kat502_addin0, kat502_addin1, kat502_retbits
+};
+static const struct drbg_kat kat502 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat502_t
+};
+
+static const unsigned char kat503_entropyin[] = {
+ 0x7c, 0x15, 0xca, 0xae, 0x3d, 0x1d, 0x58, 0xac, 0xde, 0x9f, 0xf7, 0x4d,
+ 0x35, 0x16, 0xc8, 0xc2, 0xe9, 0x60, 0xec, 0xa6, 0xda, 0xa1, 0x59, 0x6f,
+ 0x7b, 0x01, 0xd0, 0x8e, 0x91, 0x76, 0xb1, 0xa3,
+};
+static const unsigned char kat503_nonce[] = {
+ 0xf0, 0x86, 0x3c, 0x9d, 0x0f, 0x60, 0xaf, 0xf6, 0xbd, 0x1a, 0xbe, 0x2e,
+ 0xa2, 0x4c, 0xa9, 0x5c,
+};
+static const unsigned char kat503_persstr[] = {0};
+static const unsigned char kat503_addin0[] = {
+ 0x6e, 0x55, 0xd1, 0x3b, 0xfc, 0x16, 0x62, 0xb7, 0xfe, 0xfb, 0x1e, 0xc2,
+ 0x22, 0xe3, 0x86, 0x6b, 0x4d, 0xf1, 0xb0, 0xba, 0xed, 0xc3, 0x55, 0xf4,
+ 0xa5, 0x23, 0xdb, 0x43, 0x45, 0x60, 0x23, 0x3f,
+};
+static const unsigned char kat503_addin1[] = {
+ 0x31, 0xa7, 0x1c, 0x65, 0xdb, 0xab, 0xfd, 0x7c, 0x06, 0x2c, 0xb2, 0xe1,
+ 0x91, 0x17, 0x77, 0x38, 0x7b, 0xb9, 0x97, 0x09, 0x0b, 0x43, 0xe5, 0x3d,
+ 0xc9, 0x54, 0x34, 0x65, 0xa0, 0xee, 0xa6, 0xb0,
+};
+static const unsigned char kat503_retbits[] = {
+ 0xc3, 0x65, 0xb1, 0xda, 0xaa, 0x9c, 0xfd, 0x4c, 0xa1, 0x68, 0x10, 0x1d,
+ 0x99, 0x6f, 0x7b, 0x89, 0x82, 0xec, 0xd0, 0x63, 0x85, 0x81, 0x11, 0x1c,
+ 0x9b, 0xfd, 0xa5, 0x28, 0x9a, 0x30, 0xc4, 0x19, 0xea, 0x77, 0xc3, 0x13,
+ 0x26, 0x47, 0x8b, 0x07, 0x2f, 0xaa, 0x0f, 0x00, 0x31, 0x23, 0x85, 0xdc,
+ 0x0a, 0x3b, 0xf2, 0x6b, 0x6c, 0xd4, 0xff, 0xf0, 0xce, 0x2e, 0xfe, 0x4b,
+ 0x0b, 0x55, 0x7a, 0x5e,
+};
+static const struct drbg_kat_no_reseed kat503_t = {
+ 7, kat503_entropyin, kat503_nonce, kat503_persstr,
+ kat503_addin0, kat503_addin1, kat503_retbits
+};
+static const struct drbg_kat kat503 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat503_t
+};
+
+static const unsigned char kat504_entropyin[] = {
+ 0x73, 0xc1, 0x6b, 0xa1, 0x9c, 0xfc, 0x3f, 0x8d, 0x3d, 0x41, 0x71, 0xa2,
+ 0xa5, 0xff, 0x0e, 0xbd, 0x8e, 0x1b, 0x1e, 0x5e, 0x15, 0x2c, 0x1b, 0x45,
+ 0x9a, 0x58, 0x88, 0x76, 0xd2, 0xdb, 0x5f, 0xb6,
+};
+static const unsigned char kat504_nonce[] = {
+ 0xf2, 0x98, 0x62, 0xb5, 0x7a, 0x08, 0x96, 0xb5, 0x64, 0x44, 0x93, 0xed,
+ 0x97, 0x0e, 0x14, 0x2c,
+};
+static const unsigned char kat504_persstr[] = {0};
+static const unsigned char kat504_addin0[] = {
+ 0x7e, 0x48, 0x1b, 0xda, 0x6e, 0x72, 0x20, 0x7b, 0x6d, 0xf7, 0x4f, 0x30,
+ 0xf5, 0x9c, 0xfe, 0xa6, 0x99, 0xba, 0xaf, 0xdf, 0xb8, 0xc5, 0x04, 0xf8,
+ 0x74, 0xc9, 0x8d, 0xd3, 0xf2, 0x15, 0x78, 0x7c,
+};
+static const unsigned char kat504_addin1[] = {
+ 0x00, 0x3e, 0x69, 0x41, 0x85, 0xf0, 0x2d, 0x97, 0x38, 0xa7, 0x67, 0xb4,
+ 0x4a, 0x55, 0xf7, 0x95, 0x54, 0xc1, 0x46, 0x0a, 0x10, 0xc0, 0x67, 0x6a,
+ 0x7d, 0x22, 0x7e, 0xe4, 0x84, 0xc5, 0x8d, 0x88,
+};
+static const unsigned char kat504_retbits[] = {
+ 0xbc, 0xf8, 0x50, 0xfc, 0xd2, 0xff, 0x56, 0xdf, 0x24, 0xe4, 0x91, 0xea,
+ 0x33, 0x69, 0xb6, 0x5d, 0x69, 0x17, 0xc4, 0xaa, 0x34, 0x59, 0x28, 0x29,
+ 0xa7, 0x77, 0xf9, 0x5d, 0xd3, 0xd8, 0x6a, 0x3b, 0x8e, 0x88, 0x4d, 0x9d,
+ 0xa6, 0xe5, 0x32, 0x02, 0x90, 0xd1, 0xfd, 0x89, 0x95, 0xf1, 0xb5, 0x6e,
+ 0xf4, 0x7a, 0xec, 0x49, 0x2d, 0xc7, 0x20, 0xa2, 0x11, 0x89, 0x8d, 0xbc,
+ 0x5f, 0x50, 0x75, 0x4a,
+};
+static const struct drbg_kat_no_reseed kat504_t = {
+ 8, kat504_entropyin, kat504_nonce, kat504_persstr,
+ kat504_addin0, kat504_addin1, kat504_retbits
+};
+static const struct drbg_kat kat504 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat504_t
+};
+
+static const unsigned char kat505_entropyin[] = {
+ 0xba, 0x82, 0x14, 0x84, 0x74, 0x0f, 0xce, 0xf6, 0x01, 0x65, 0x28, 0xfc,
+ 0x68, 0xb8, 0x80, 0x96, 0xd1, 0x03, 0xb2, 0x4d, 0x1f, 0x08, 0xb9, 0xf9,
+ 0xd9, 0xfd, 0x12, 0xdd, 0xce, 0xfc, 0x1a, 0x87,
+};
+static const unsigned char kat505_nonce[] = {
+ 0xef, 0x53, 0xbe, 0x20, 0xeb, 0x5a, 0xaa, 0x86, 0x54, 0x49, 0xd7, 0x4c,
+ 0x48, 0x28, 0x18, 0x15,
+};
+static const unsigned char kat505_persstr[] = {0};
+static const unsigned char kat505_addin0[] = {
+ 0xee, 0x7a, 0x7d, 0x73, 0x8c, 0x39, 0x09, 0x1c, 0xeb, 0x31, 0x91, 0x1b,
+ 0x61, 0x49, 0xdb, 0x26, 0xc0, 0x57, 0x13, 0x2a, 0xa7, 0xe4, 0x06, 0x25,
+ 0xab, 0x4c, 0x2e, 0x24, 0xa1, 0xae, 0x1e, 0xc1,
+};
+static const unsigned char kat505_addin1[] = {
+ 0x71, 0xd4, 0xe3, 0x7d, 0x8e, 0x0b, 0xbc, 0xae, 0x40, 0x81, 0x3c, 0x33,
+ 0x09, 0x55, 0x81, 0xbf, 0xfd, 0xb1, 0x5d, 0x42, 0xc6, 0xba, 0xfd, 0x75,
+ 0x81, 0xbb, 0xca, 0x26, 0xbe, 0xa7, 0xba, 0xdf,
+};
+static const unsigned char kat505_retbits[] = {
+ 0xfd, 0xb8, 0x32, 0xec, 0xb3, 0x09, 0xab, 0x8f, 0xd4, 0x6d, 0x1a, 0x5b,
+ 0xc6, 0x4c, 0xb3, 0x7a, 0x19, 0x9a, 0x90, 0x68, 0x47, 0x85, 0xd3, 0x2d,
+ 0x13, 0x39, 0xd7, 0x5c, 0xed, 0xa5, 0x33, 0x8a, 0xe6, 0x96, 0x1e, 0xe4,
+ 0x1c, 0xd1, 0x63, 0x63, 0x32, 0x46, 0xd6, 0x7f, 0xa6, 0x03, 0xc4, 0xff,
+ 0xda, 0xd5, 0x6a, 0xbc, 0x3e, 0xec, 0xfd, 0x9e, 0x93, 0x97, 0xb6, 0x29,
+ 0xec, 0xb9, 0x65, 0xbd,
+};
+static const struct drbg_kat_no_reseed kat505_t = {
+ 9, kat505_entropyin, kat505_nonce, kat505_persstr,
+ kat505_addin0, kat505_addin1, kat505_retbits
+};
+static const struct drbg_kat kat505 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat505_t
+};
+
+static const unsigned char kat506_entropyin[] = {
+ 0xaf, 0xd3, 0x91, 0xb5, 0x0a, 0x0f, 0x2e, 0x81, 0xfe, 0xf3, 0xe0, 0x44,
+ 0xdb, 0x92, 0x68, 0xd7, 0x85, 0x9c, 0x2b, 0x61, 0xd5, 0x3c, 0x7d, 0x19,
+ 0x02, 0xa9, 0xaf, 0x69, 0xf0, 0x41, 0x42, 0x81,
+};
+static const unsigned char kat506_nonce[] = {
+ 0xf1, 0xbb, 0x5a, 0x11, 0x69, 0x44, 0x5a, 0x2d, 0xd8, 0xc5, 0xa8, 0x45,
+ 0x27, 0xc1, 0x0f, 0x7f,
+};
+static const unsigned char kat506_persstr[] = {0};
+static const unsigned char kat506_addin0[] = {
+ 0xb5, 0x94, 0xb0, 0x46, 0xa5, 0x79, 0x60, 0x94, 0x1e, 0x83, 0x4a, 0x00,
+ 0xa2, 0xcd, 0xc7, 0xd6, 0xf2, 0x43, 0x0b, 0x93, 0xf5, 0xe2, 0x69, 0x40,
+ 0xb2, 0xd6, 0x94, 0x1f, 0x42, 0x4d, 0x4b, 0xac,
+};
+static const unsigned char kat506_addin1[] = {
+ 0xe7, 0xd7, 0x67, 0xd3, 0xa8, 0x1e, 0x39, 0xb6, 0xb0, 0xe9, 0x8f, 0xf3,
+ 0xed, 0x0c, 0xe6, 0xff, 0xbb, 0x43, 0xdd, 0x5b, 0x98, 0x6b, 0x9c, 0xb8,
+ 0xc2, 0x74, 0x2b, 0xdf, 0xa0, 0x2f, 0xae, 0xd1,
+};
+static const unsigned char kat506_retbits[] = {
+ 0x28, 0x36, 0x80, 0x0d, 0x4e, 0x0a, 0x01, 0x80, 0xb2, 0x79, 0xf0, 0xee,
+ 0x1f, 0xf6, 0x14, 0x8b, 0x0b, 0x36, 0x77, 0x09, 0xf9, 0xa9, 0xa3, 0xd1,
+ 0x03, 0x03, 0xd4, 0x8e, 0xc8, 0x03, 0x6a, 0x53, 0x17, 0x92, 0xd3, 0x21,
+ 0x0d, 0x9d, 0x67, 0x17, 0x46, 0xe2, 0x03, 0xfc, 0x07, 0xcd, 0xdb, 0x29,
+ 0xf7, 0x87, 0x77, 0x77, 0x75, 0xed, 0xe3, 0xc9, 0x8c, 0x50, 0x88, 0x5d,
+ 0xf7, 0xdd, 0xfe, 0x6b,
+};
+static const struct drbg_kat_no_reseed kat506_t = {
+ 10, kat506_entropyin, kat506_nonce, kat506_persstr,
+ kat506_addin0, kat506_addin1, kat506_retbits
+};
+static const struct drbg_kat kat506 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat506_t
+};
+
+static const unsigned char kat507_entropyin[] = {
+ 0x05, 0x92, 0x51, 0x95, 0xf9, 0x73, 0x5e, 0x38, 0x45, 0x7a, 0xce, 0xf4,
+ 0xb7, 0x26, 0xcb, 0xc5, 0x8f, 0x83, 0xca, 0x37, 0x40, 0xc5, 0x58, 0x31,
+ 0x76, 0xb1, 0x13, 0x5c, 0x15, 0x84, 0xda, 0xed,
+};
+static const unsigned char kat507_nonce[] = {
+ 0xd5, 0xcb, 0xe9, 0x50, 0x34, 0xea, 0xad, 0x6e, 0x10, 0xe5, 0x5a, 0x05,
+ 0x15, 0x5a, 0xe6, 0xb9,
+};
+static const unsigned char kat507_persstr[] = {0};
+static const unsigned char kat507_addin0[] = {
+ 0xae, 0x5e, 0x51, 0x1f, 0x35, 0x7e, 0x36, 0x2e, 0x39, 0x20, 0xca, 0x3e,
+ 0x7c, 0xda, 0xd2, 0xae, 0x44, 0x91, 0x2d, 0x64, 0xbc, 0x09, 0x62, 0x9d,
+ 0x2e, 0xeb, 0x9c, 0xc5, 0x40, 0xb3, 0x04, 0xf6,
+};
+static const unsigned char kat507_addin1[] = {
+ 0x3f, 0xe1, 0xaa, 0xf5, 0xc7, 0x91, 0xb8, 0x38, 0x65, 0xe5, 0x6b, 0xd1,
+ 0x9e, 0xd1, 0x9a, 0x01, 0x9d, 0x25, 0x90, 0xc0, 0xcd, 0x59, 0x6e, 0xb7,
+ 0x2f, 0x46, 0x44, 0xc8, 0xc4, 0x14, 0x90, 0xf4,
+};
+static const unsigned char kat507_retbits[] = {
+ 0x31, 0x23, 0xc4, 0xe8, 0x1a, 0x8d, 0x06, 0x71, 0xfe, 0xe1, 0xd5, 0x28,
+ 0x32, 0x8e, 0xad, 0x1c, 0xa4, 0xde, 0x8d, 0x07, 0xb3, 0xe5, 0x70, 0xcd,
+ 0x0c, 0x5a, 0xa1, 0xc6, 0x66, 0x15, 0x8b, 0x86, 0xc3, 0xb5, 0x48, 0xfa,
+ 0xe6, 0x00, 0xd0, 0x02, 0x50, 0xf3, 0xa8, 0x56, 0x55, 0xca, 0xe3, 0xf4,
+ 0x09, 0x99, 0xe4, 0x39, 0x32, 0xea, 0x75, 0x64, 0x7a, 0x4d, 0xf1, 0xc7,
+ 0x5a, 0x19, 0xfa, 0x80,
+};
+static const struct drbg_kat_no_reseed kat507_t = {
+ 11, kat507_entropyin, kat507_nonce, kat507_persstr,
+ kat507_addin0, kat507_addin1, kat507_retbits
+};
+static const struct drbg_kat kat507 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat507_t
+};
+
+static const unsigned char kat508_entropyin[] = {
+ 0xae, 0x13, 0xa2, 0xd2, 0x37, 0x34, 0xb2, 0xd6, 0x57, 0xf6, 0x7d, 0x6b,
+ 0xab, 0x36, 0xe1, 0x12, 0x1d, 0x5d, 0x2c, 0x1e, 0xdb, 0x4e, 0x36, 0xf4,
+ 0xef, 0x2f, 0xfb, 0xc1, 0x0b, 0x62, 0x8c, 0xfb,
+};
+static const unsigned char kat508_nonce[] = {
+ 0x6a, 0x1d, 0xb3, 0x53, 0xe3, 0xc5, 0xa6, 0xe6, 0x65, 0x7c, 0x86, 0xca,
+ 0xa7, 0x26, 0x33, 0xd8,
+};
+static const unsigned char kat508_persstr[] = {0};
+static const unsigned char kat508_addin0[] = {
+ 0xcb, 0xfc, 0xce, 0x20, 0x9f, 0xde, 0x42, 0x08, 0xef, 0xab, 0xb2, 0x41,
+ 0x79, 0x52, 0xb1, 0xc9, 0xfc, 0x22, 0x84, 0x3c, 0xe2, 0x17, 0x46, 0x08,
+ 0xbe, 0x04, 0xa4, 0x5f, 0x1d, 0x98, 0x27, 0xc2,
+};
+static const unsigned char kat508_addin1[] = {
+ 0xa8, 0xd0, 0xca, 0x78, 0x88, 0x00, 0x85, 0x2c, 0x5d, 0xf5, 0xea, 0xbb,
+ 0xea, 0xf1, 0xf5, 0xfb, 0xd9, 0x4b, 0xeb, 0x74, 0x61, 0x03, 0xb0, 0x43,
+ 0x68, 0x76, 0xbc, 0x80, 0x92, 0xda, 0x8b, 0xad,
+};
+static const unsigned char kat508_retbits[] = {
+ 0xd3, 0x86, 0x88, 0x90, 0xe7, 0x38, 0xbb, 0xf5, 0x60, 0x2c, 0xa4, 0x6e,
+ 0x00, 0x9d, 0xab, 0xaf, 0xb1, 0x6f, 0x56, 0x86, 0xfd, 0xdb, 0x78, 0x7c,
+ 0x8c, 0xca, 0x32, 0x89, 0x23, 0x60, 0xf6, 0x10, 0x99, 0xf0, 0xd7, 0x7c,
+ 0xce, 0x39, 0xdc, 0x8f, 0x6e, 0x53, 0x05, 0x40, 0xfc, 0x5f, 0xab, 0x3e,
+ 0xb6, 0x57, 0x11, 0x48, 0x47, 0xd3, 0xa3, 0x95, 0xfa, 0xf4, 0x0f, 0x8a,
+ 0xf6, 0x4f, 0x4d, 0x2d,
+};
+static const struct drbg_kat_no_reseed kat508_t = {
+ 12, kat508_entropyin, kat508_nonce, kat508_persstr,
+ kat508_addin0, kat508_addin1, kat508_retbits
+};
+static const struct drbg_kat kat508 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat508_t
+};
+
+static const unsigned char kat509_entropyin[] = {
+ 0xfa, 0x9f, 0x4f, 0xd3, 0x46, 0x55, 0x5d, 0xb3, 0x5d, 0x3e, 0xe8, 0xf1,
+ 0x57, 0x95, 0x7c, 0x81, 0x91, 0xe3, 0xe8, 0x61, 0x84, 0x4b, 0x4f, 0x50,
+ 0x00, 0xda, 0xb4, 0x82, 0x61, 0xf8, 0x5f, 0x74,
+};
+static const unsigned char kat509_nonce[] = {
+ 0x5e, 0x18, 0x8b, 0x4e, 0xe0, 0x78, 0xd5, 0x7f, 0x91, 0xd7, 0xde, 0x21,
+ 0x9f, 0xc4, 0x25, 0xed,
+};
+static const unsigned char kat509_persstr[] = {0};
+static const unsigned char kat509_addin0[] = {
+ 0x5e, 0xb2, 0x48, 0xcd, 0x13, 0x8b, 0x8f, 0xef, 0xa2, 0xb7, 0xe8, 0xfc,
+ 0x75, 0x2c, 0x0f, 0xbc, 0xb0, 0x82, 0xbe, 0x51, 0xd0, 0xf4, 0xe2, 0xa9,
+ 0x88, 0xbf, 0x5f, 0x87, 0xfc, 0x73, 0x74, 0x47,
+};
+static const unsigned char kat509_addin1[] = {
+ 0x7c, 0xf9, 0x60, 0x6d, 0x30, 0x2f, 0x53, 0x56, 0x7e, 0x45, 0xb9, 0x8c,
+ 0x38, 0xd4, 0xda, 0xae, 0x23, 0x2c, 0x92, 0x5c, 0xb9, 0x2e, 0x54, 0xc7,
+ 0x4b, 0xcf, 0x14, 0x10, 0x4e, 0x32, 0xa1, 0x13,
+};
+static const unsigned char kat509_retbits[] = {
+ 0x89, 0x58, 0xd2, 0x45, 0xd7, 0x02, 0x35, 0x55, 0x5a, 0x1e, 0xcc, 0xf4,
+ 0xfa, 0xf2, 0x00, 0x9d, 0x32, 0x76, 0x2e, 0x33, 0x24, 0x94, 0xef, 0xe5,
+ 0xf4, 0x8f, 0xa5, 0xd7, 0xff, 0x30, 0xc7, 0xcb, 0xf0, 0x7c, 0x9b, 0xcc,
+ 0x3e, 0x70, 0xd6, 0x2b, 0x94, 0xa4, 0xed, 0x21, 0xdb, 0x5e, 0x39, 0xcd,
+ 0xd0, 0x1a, 0x1e, 0x96, 0x68, 0x8b, 0x3b, 0xb9, 0xb2, 0xc4, 0xac, 0x0a,
+ 0x7a, 0xfe, 0xec, 0x24,
+};
+static const struct drbg_kat_no_reseed kat509_t = {
+ 13, kat509_entropyin, kat509_nonce, kat509_persstr,
+ kat509_addin0, kat509_addin1, kat509_retbits
+};
+static const struct drbg_kat kat509 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat509_t
+};
+
+static const unsigned char kat510_entropyin[] = {
+ 0xc7, 0x64, 0xbc, 0xcc, 0x19, 0x05, 0x3d, 0x7f, 0x12, 0xdf, 0x71, 0x01,
+ 0x1b, 0x35, 0x87, 0x8d, 0xd0, 0xbb, 0x58, 0x7d, 0xeb, 0x88, 0x7f, 0x8a,
+ 0x05, 0xf0, 0x40, 0xec, 0x45, 0xe3, 0x24, 0xbc,
+};
+static const unsigned char kat510_nonce[] = {
+ 0xa4, 0xb1, 0xa9, 0xff, 0x04, 0x91, 0x72, 0x47, 0x6a, 0xb9, 0x9f, 0x7a,
+ 0xe0, 0x64, 0x5e, 0x6c,
+};
+static const unsigned char kat510_persstr[] = {0};
+static const unsigned char kat510_addin0[] = {
+ 0xb6, 0xf2, 0xaa, 0x8a, 0x99, 0x3a, 0xa0, 0x42, 0x52, 0xd6, 0xc0, 0x14,
+ 0xea, 0xc8, 0xad, 0x0b, 0x90, 0xcf, 0x0e, 0xd4, 0x38, 0x88, 0x81, 0x73,
+ 0xe1, 0x5e, 0xab, 0x28, 0x0f, 0x73, 0xab, 0xe0,
+};
+static const unsigned char kat510_addin1[] = {
+ 0xc6, 0x38, 0x4c, 0x9a, 0x2c, 0x9d, 0x8f, 0xc4, 0xc7, 0x42, 0x2f, 0xe4,
+ 0x0e, 0x43, 0x0e, 0x4f, 0x36, 0xe6, 0xae, 0x9b, 0xd6, 0xb0, 0x39, 0xd5,
+ 0x5a, 0xbf, 0xdd, 0x8f, 0x05, 0xd6, 0xa2, 0x0e,
+};
+static const unsigned char kat510_retbits[] = {
+ 0x63, 0x00, 0xf2, 0x89, 0x41, 0xdc, 0x17, 0x3a, 0x9f, 0x6f, 0x5e, 0x4c,
+ 0x11, 0xf1, 0xd1, 0xd7, 0xd4, 0xfd, 0x7f, 0xbb, 0xaf, 0x6f, 0xc3, 0xa9,
+ 0x7a, 0xcd, 0xfc, 0x00, 0x8a, 0x00, 0x10, 0x9a, 0x67, 0x0e, 0x48, 0x7e,
+ 0x5d, 0xce, 0x42, 0x3a, 0x3e, 0xee, 0x48, 0x82, 0x34, 0x7e, 0xf2, 0x64,
+ 0x49, 0x88, 0x8c, 0x8d, 0xd7, 0x3b, 0x9a, 0xaa, 0x73, 0xd1, 0x94, 0xc1,
+ 0x71, 0x46, 0x9a, 0xf6,
+};
+static const struct drbg_kat_no_reseed kat510_t = {
+ 14, kat510_entropyin, kat510_nonce, kat510_persstr,
+ kat510_addin0, kat510_addin1, kat510_retbits
+};
+static const struct drbg_kat kat510 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat510_t
+};
+
+static const unsigned char kat511_entropyin[] = {
+ 0x54, 0x16, 0xe7, 0x7b, 0x5e, 0x1d, 0x87, 0x2d, 0x4f, 0xf9, 0x19, 0x73,
+ 0xb1, 0xbe, 0x66, 0xbc, 0x07, 0xf4, 0xa9, 0x9e, 0x30, 0xdb, 0x7d, 0x00,
+ 0x06, 0xda, 0x00, 0x6f, 0xcf, 0xb0, 0x82, 0xdb,
+};
+static const unsigned char kat511_nonce[] = {
+ 0x7a, 0x81, 0x1c, 0xe6, 0x2b, 0x9f, 0xd3, 0x4a, 0xf1, 0x86, 0xb2, 0xb3,
+ 0xe5, 0x0e, 0xaf, 0x5d,
+};
+static const unsigned char kat511_persstr[] = {
+ 0x71, 0xee, 0x0c, 0x76, 0x99, 0xac, 0x0e, 0x80, 0x56, 0x32, 0xf2, 0x05,
+ 0x8d, 0xe3, 0x8b, 0xf8, 0x72, 0xb8, 0x34, 0x0f, 0x89, 0x99, 0x8f, 0x7a,
+ 0x8a, 0x2a, 0xd4, 0xac, 0x04, 0x5a, 0xe6, 0xef,
+};
+static const unsigned char kat511_addin0[] = {0};
+static const unsigned char kat511_addin1[] = {0};
+static const unsigned char kat511_retbits[] = {
+ 0x68, 0xf5, 0x85, 0x9c, 0xf7, 0x6f, 0x94, 0xc4, 0x45, 0xd9, 0xfc, 0xd3,
+ 0x4f, 0xc1, 0x7a, 0xc2, 0x24, 0xc3, 0xd7, 0xd7, 0xc2, 0xfc, 0x38, 0xfa,
+ 0xaf, 0x3c, 0x24, 0xbe, 0x6c, 0xd3, 0xcd, 0x93, 0xb7, 0xf9, 0xd8, 0xa6,
+ 0x14, 0x6f, 0x5a, 0xc8, 0x3a, 0xc1, 0xd7, 0xb1, 0xb2, 0xb7, 0xe7, 0xec,
+ 0xbc, 0x1a, 0x2e, 0x38, 0x76, 0x0e, 0xf8, 0x6a, 0x57, 0x7d, 0x40, 0x2d,
+ 0x85, 0x99, 0x0d, 0x9b,
+};
+static const struct drbg_kat_no_reseed kat511_t = {
+ 0, kat511_entropyin, kat511_nonce, kat511_persstr,
+ kat511_addin0, kat511_addin1, kat511_retbits
+};
+static const struct drbg_kat kat511 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat511_t
+};
+
+static const unsigned char kat512_entropyin[] = {
+ 0x70, 0x8e, 0xca, 0x2e, 0x3a, 0x92, 0x65, 0xa7, 0x90, 0x60, 0x7e, 0xdb,
+ 0xe0, 0x5f, 0xe3, 0x42, 0x66, 0x3f, 0x84, 0xc6, 0x61, 0x7e, 0xda, 0x14,
+ 0xf2, 0x52, 0x76, 0xa9, 0x43, 0x90, 0x1f, 0xda,
+};
+static const unsigned char kat512_nonce[] = {
+ 0x75, 0xaf, 0xb4, 0x9a, 0x18, 0x4b, 0x23, 0x50, 0x6b, 0xe1, 0x49, 0x26,
+ 0xcd, 0x4a, 0x03, 0xf0,
+};
+static const unsigned char kat512_persstr[] = {
+ 0xcb, 0xb4, 0x8e, 0xf8, 0x41, 0x46, 0xc1, 0x0e, 0x02, 0x24, 0x0d, 0x87,
+ 0x40, 0xd3, 0x48, 0x7b, 0x6a, 0x42, 0x08, 0x40, 0x53, 0x83, 0xc0, 0x1a,
+ 0x66, 0x4e, 0xc7, 0xd3, 0xad, 0xa0, 0x7e, 0x2d,
+};
+static const unsigned char kat512_addin0[] = {0};
+static const unsigned char kat512_addin1[] = {0};
+static const unsigned char kat512_retbits[] = {
+ 0x26, 0xb0, 0xaa, 0x6e, 0x82, 0x2c, 0x4c, 0xc9, 0x12, 0xcf, 0x1d, 0xba,
+ 0xe6, 0x69, 0xc7, 0xda, 0xd0, 0xbd, 0xcf, 0xf6, 0x5f, 0x22, 0x81, 0x3a,
+ 0xfd, 0x06, 0x22, 0x5b, 0x7f, 0xf7, 0x99, 0xf7, 0x80, 0x3b, 0x3a, 0xd4,
+ 0x8b, 0xc8, 0x8d, 0x2b, 0xe0, 0xf5, 0xa3, 0x57, 0xf6, 0x20, 0xcc, 0x61,
+ 0x7f, 0x44, 0x6f, 0xc6, 0xd2, 0x12, 0x59, 0x2a, 0xda, 0x69, 0xb7, 0xdc,
+ 0x8f, 0xf4, 0xa2, 0x22,
+};
+static const struct drbg_kat_no_reseed kat512_t = {
+ 1, kat512_entropyin, kat512_nonce, kat512_persstr,
+ kat512_addin0, kat512_addin1, kat512_retbits
+};
+static const struct drbg_kat kat512 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat512_t
+};
+
+static const unsigned char kat513_entropyin[] = {
+ 0x44, 0xcc, 0x6b, 0x44, 0x33, 0xce, 0xc6, 0x15, 0xc3, 0xc2, 0x14, 0xe1,
+ 0x66, 0xc7, 0xdc, 0xff, 0x25, 0x8f, 0x8c, 0xfe, 0x57, 0x48, 0xe6, 0x42,
+ 0x32, 0x1c, 0xda, 0x2f, 0x7d, 0xb4, 0x26, 0xe3,
+};
+static const unsigned char kat513_nonce[] = {
+ 0x6a, 0x25, 0x26, 0x95, 0x4b, 0x5d, 0xf9, 0x89, 0xd6, 0x1e, 0x1f, 0xaf,
+ 0x93, 0xdd, 0xa2, 0xae,
+};
+static const unsigned char kat513_persstr[] = {
+ 0x88, 0x22, 0x63, 0x13, 0xc7, 0xf1, 0xec, 0x03, 0xcd, 0xe3, 0x77, 0x97,
+ 0x0c, 0x8e, 0xa7, 0xd7, 0x41, 0xa9, 0xf2, 0x1a, 0x8f, 0x54, 0xb6, 0xb9,
+ 0x70, 0x43, 0xbc, 0x3e, 0x8d, 0xa4, 0x0b, 0x1e,
+};
+static const unsigned char kat513_addin0[] = {0};
+static const unsigned char kat513_addin1[] = {0};
+static const unsigned char kat513_retbits[] = {
+ 0xc1, 0x95, 0x6c, 0x41, 0x95, 0xad, 0xfc, 0x3e, 0xe7, 0x15, 0x82, 0xab,
+ 0x2c, 0x63, 0xed, 0xc0, 0xa7, 0x8a, 0xf4, 0x9e, 0xcc, 0x23, 0xa3, 0xdd,
+ 0xbc, 0xf2, 0xdf, 0xaf, 0x80, 0xc7, 0x61, 0xfd, 0x63, 0x43, 0xaf, 0x6d,
+ 0x14, 0x31, 0x0e, 0x71, 0x9d, 0x8c, 0xd3, 0xc6, 0xbb, 0xb4, 0x91, 0xc8,
+ 0x69, 0x0a, 0x7d, 0xd8, 0xa1, 0x68, 0xcd, 0x8a, 0x48, 0x02, 0x17, 0xe5,
+ 0xdd, 0x20, 0x88, 0xaf,
+};
+static const struct drbg_kat_no_reseed kat513_t = {
+ 2, kat513_entropyin, kat513_nonce, kat513_persstr,
+ kat513_addin0, kat513_addin1, kat513_retbits
+};
+static const struct drbg_kat kat513 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat513_t
+};
+
+static const unsigned char kat514_entropyin[] = {
+ 0x54, 0xcc, 0xb1, 0xe5, 0xf0, 0x44, 0x44, 0x7d, 0xce, 0x52, 0xa4, 0x70,
+ 0xf4, 0x7f, 0xe2, 0x68, 0x27, 0x17, 0xdd, 0x29, 0x6d, 0x64, 0x49, 0x1e,
+ 0xe2, 0xac, 0xc9, 0x9e, 0x9a, 0xd6, 0x56, 0x6f,
+};
+static const unsigned char kat514_nonce[] = {
+ 0xff, 0x4c, 0xd3, 0x18, 0x56, 0x11, 0xcb, 0xe0, 0x67, 0x84, 0xe3, 0x25,
+ 0x80, 0xb2, 0xf2, 0x3c,
+};
+static const unsigned char kat514_persstr[] = {
+ 0x13, 0x2e, 0xf5, 0x42, 0xf9, 0x07, 0xb8, 0x4c, 0x44, 0x3d, 0x19, 0x73,
+ 0xb3, 0x90, 0x9b, 0x6d, 0x9a, 0x0d, 0x91, 0x24, 0xd3, 0x8b, 0xd1, 0xe7,
+ 0xc8, 0x83, 0x3f, 0x48, 0xae, 0xcf, 0xc0, 0x8d,
+};
+static const unsigned char kat514_addin0[] = {0};
+static const unsigned char kat514_addin1[] = {0};
+static const unsigned char kat514_retbits[] = {
+ 0x0f, 0x2f, 0x56, 0xea, 0x8b, 0x91, 0x1c, 0xbe, 0x59, 0xa7, 0xb8, 0xfa,
+ 0xb1, 0xc7, 0x10, 0xa7, 0xeb, 0xb6, 0xec, 0x9a, 0x09, 0x55, 0x5c, 0xa4,
+ 0x9c, 0xcd, 0xdd, 0x9a, 0xfd, 0x38, 0xed, 0x61, 0xb8, 0x55, 0xcf, 0x3f,
+ 0x33, 0xf2, 0xc5, 0xbc, 0x61, 0x6d, 0xf6, 0xcb, 0x17, 0x26, 0x96, 0x84,
+ 0x83, 0xc6, 0x9c, 0x18, 0x49, 0xe0, 0xf1, 0xb4, 0x6b, 0xa0, 0x29, 0xaa,
+ 0x6f, 0x5d, 0xeb, 0xdb,
+};
+static const struct drbg_kat_no_reseed kat514_t = {
+ 3, kat514_entropyin, kat514_nonce, kat514_persstr,
+ kat514_addin0, kat514_addin1, kat514_retbits
+};
+static const struct drbg_kat kat514 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat514_t
+};
+
+static const unsigned char kat515_entropyin[] = {
+ 0x3d, 0x3f, 0xdd, 0x9d, 0x90, 0xac, 0xbc, 0xee, 0x07, 0x00, 0x2f, 0x17,
+ 0x37, 0x00, 0x45, 0xfe, 0xb5, 0xea, 0xa3, 0x34, 0xfd, 0x74, 0x59, 0x4e,
+ 0x11, 0x21, 0x14, 0xd3, 0x92, 0x8d, 0xd5, 0xd9,
+};
+static const unsigned char kat515_nonce[] = {
+ 0xf8, 0x50, 0x95, 0x29, 0x4e, 0xbc, 0x5f, 0xdd, 0xf4, 0x49, 0x41, 0xbe,
+ 0x5f, 0xfa, 0xf1, 0x0c,
+};
+static const unsigned char kat515_persstr[] = {
+ 0x59, 0xe2, 0xff, 0xa1, 0x64, 0x73, 0x3f, 0xf1, 0x1b, 0x5a, 0x95, 0xeb,
+ 0x99, 0xa7, 0x83, 0x66, 0x90, 0x6d, 0xe4, 0xfa, 0xc6, 0x4e, 0x51, 0x24,
+ 0x00, 0x08, 0x11, 0x16, 0xac, 0xce, 0x53, 0x90,
+};
+static const unsigned char kat515_addin0[] = {0};
+static const unsigned char kat515_addin1[] = {0};
+static const unsigned char kat515_retbits[] = {
+ 0x12, 0x44, 0xe5, 0x32, 0x79, 0x9f, 0x1e, 0xa4, 0xed, 0x32, 0x18, 0x94,
+ 0xda, 0xc5, 0x1b, 0x3c, 0x78, 0xd2, 0xfa, 0x5f, 0x0e, 0x1c, 0x92, 0x2f,
+ 0xfd, 0x2f, 0xf6, 0x08, 0x27, 0x54, 0x00, 0x83, 0x4d, 0x03, 0x45, 0x49,
+ 0x42, 0xd3, 0x1a, 0x20, 0x14, 0xcc, 0xfe, 0x07, 0xc2, 0x35, 0x41, 0x12,
+ 0x36, 0x3c, 0x60, 0xf4, 0x8d, 0xd1, 0x2b, 0x29, 0xa3, 0x73, 0x41, 0x28,
+ 0xa5, 0x9b, 0xca, 0x21,
+};
+static const struct drbg_kat_no_reseed kat515_t = {
+ 4, kat515_entropyin, kat515_nonce, kat515_persstr,
+ kat515_addin0, kat515_addin1, kat515_retbits
+};
+static const struct drbg_kat kat515 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat515_t
+};
+
+static const unsigned char kat516_entropyin[] = {
+ 0x25, 0x36, 0xd7, 0xea, 0x90, 0x6d, 0x1e, 0xee, 0xa8, 0x3e, 0x1c, 0x9d,
+ 0xa0, 0x8c, 0xf7, 0x6d, 0x09, 0x5b, 0x7d, 0x4f, 0x55, 0xb4, 0x33, 0xbb,
+ 0xd5, 0x22, 0x5a, 0xa8, 0x70, 0xcc, 0x3f, 0x50,
+};
+static const unsigned char kat516_nonce[] = {
+ 0x17, 0x70, 0x4a, 0x7c, 0x50, 0xf9, 0x37, 0xac, 0xf6, 0x26, 0xe8, 0x54,
+ 0xe0, 0xb9, 0x5f, 0x80,
+};
+static const unsigned char kat516_persstr[] = {
+ 0xb6, 0x1f, 0xcc, 0xd4, 0x0d, 0x9c, 0xeb, 0xc4, 0xb9, 0x27, 0xba, 0x77,
+ 0x3b, 0x93, 0x29, 0x57, 0xc2, 0x99, 0xf7, 0x79, 0xc4, 0x26, 0x6a, 0x83,
+ 0xf1, 0x69, 0xb6, 0xde, 0x50, 0x7d, 0x31, 0x27,
+};
+static const unsigned char kat516_addin0[] = {0};
+static const unsigned char kat516_addin1[] = {0};
+static const unsigned char kat516_retbits[] = {
+ 0x8c, 0x3b, 0x0b, 0x71, 0xd6, 0x43, 0x2e, 0x10, 0x22, 0x97, 0x6c, 0x9c,
+ 0x8e, 0xbb, 0x14, 0x06, 0xb1, 0xda, 0x99, 0x5e, 0x29, 0x37, 0x22, 0x1d,
+ 0x18, 0xd7, 0x51, 0x81, 0x68, 0x25, 0xfc, 0xa0, 0x64, 0x53, 0x4e, 0x21,
+ 0x69, 0xcc, 0x63, 0xb5, 0x07, 0x05, 0x29, 0xff, 0x02, 0xb5, 0xee, 0x5b,
+ 0x70, 0x81, 0xa0, 0x8e, 0xbd, 0xd8, 0x78, 0x62, 0x59, 0x5e, 0xa3, 0x7a,
+ 0x95, 0xc1, 0xe4, 0xa7,
+};
+static const struct drbg_kat_no_reseed kat516_t = {
+ 5, kat516_entropyin, kat516_nonce, kat516_persstr,
+ kat516_addin0, kat516_addin1, kat516_retbits
+};
+static const struct drbg_kat kat516 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat516_t
+};
+
+static const unsigned char kat517_entropyin[] = {
+ 0xfe, 0xe9, 0x82, 0xd8, 0x7d, 0xf4, 0xc3, 0x20, 0x57, 0xcb, 0x49, 0x9d,
+ 0xf6, 0xea, 0x21, 0xdd, 0x69, 0x16, 0xdd, 0x38, 0x85, 0x0a, 0x87, 0x2a,
+ 0xbe, 0x34, 0x36, 0x0f, 0x29, 0x14, 0xb5, 0x6c,
+};
+static const unsigned char kat517_nonce[] = {
+ 0x5a, 0x1f, 0xf0, 0x69, 0x2d, 0x9a, 0xdc, 0x5e, 0xdb, 0x1a, 0xf7, 0x74,
+ 0x61, 0xfd, 0x05, 0x31,
+};
+static const unsigned char kat517_persstr[] = {
+ 0x1c, 0x0d, 0x18, 0x5f, 0xa4, 0xbe, 0xde, 0xdb, 0x78, 0x1b, 0x8b, 0x73,
+ 0x61, 0x6d, 0xef, 0x74, 0x40, 0x82, 0x21, 0x72, 0xd0, 0x1a, 0x61, 0x9a,
+ 0x20, 0x66, 0xb7, 0x9e, 0xfa, 0xce, 0x68, 0x5f,
+};
+static const unsigned char kat517_addin0[] = {0};
+static const unsigned char kat517_addin1[] = {0};
+static const unsigned char kat517_retbits[] = {
+ 0xd7, 0xc2, 0x28, 0xe7, 0x00, 0x2b, 0xc2, 0xa1, 0xa2, 0x3a, 0x16, 0xe4,
+ 0x89, 0xba, 0x8f, 0x0a, 0x61, 0x62, 0x7a, 0xb4, 0xb2, 0x44, 0x4f, 0x00,
+ 0xf2, 0x3e, 0xd3, 0x71, 0x7b, 0x87, 0x94, 0x4f, 0xee, 0xbb, 0x16, 0x9e,
+ 0xe4, 0xe9, 0x79, 0x08, 0x9c, 0x35, 0xe8, 0x3f, 0x24, 0x30, 0x79, 0xe4,
+ 0x77, 0x19, 0x18, 0x86, 0x2e, 0x15, 0x03, 0x6e, 0xc6, 0xa9, 0xc9, 0xee,
+ 0xe4, 0xbb, 0x00, 0xb5,
+};
+static const struct drbg_kat_no_reseed kat517_t = {
+ 6, kat517_entropyin, kat517_nonce, kat517_persstr,
+ kat517_addin0, kat517_addin1, kat517_retbits
+};
+static const struct drbg_kat kat517 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat517_t
+};
+
+static const unsigned char kat518_entropyin[] = {
+ 0x25, 0x32, 0x7b, 0x05, 0xf8, 0x6e, 0x50, 0x79, 0xab, 0x55, 0x2e, 0x98,
+ 0x7e, 0xc7, 0xe2, 0x81, 0x62, 0x59, 0x51, 0x09, 0x33, 0xbc, 0x0c, 0x7a,
+ 0x05, 0xc3, 0x5e, 0x16, 0x3b, 0x47, 0xb4, 0xce,
+};
+static const unsigned char kat518_nonce[] = {
+ 0x7e, 0xf8, 0xd6, 0x30, 0x8e, 0xe6, 0xb5, 0x06, 0x1c, 0xbc, 0xb8, 0x50,
+ 0x48, 0x5a, 0x15, 0xa7,
+};
+static const unsigned char kat518_persstr[] = {
+ 0x9a, 0x39, 0xed, 0x86, 0xb2, 0xe8, 0x29, 0x0f, 0x74, 0xca, 0x88, 0x6b,
+ 0x32, 0x0d, 0x8e, 0x23, 0xd8, 0xa1, 0xd4, 0x95, 0x3c, 0x27, 0x62, 0xf8,
+ 0x1f, 0x07, 0x1d, 0x84, 0x2c, 0xe9, 0x51, 0xe3,
+};
+static const unsigned char kat518_addin0[] = {0};
+static const unsigned char kat518_addin1[] = {0};
+static const unsigned char kat518_retbits[] = {
+ 0x21, 0x19, 0x71, 0x63, 0x2f, 0x8e, 0x6c, 0x60, 0x82, 0xf1, 0x10, 0x76,
+ 0xbb, 0x70, 0x7e, 0xc9, 0xc6, 0x5e, 0x34, 0x34, 0xc2, 0x72, 0x7e, 0x59,
+ 0xa5, 0xd1, 0x3e, 0x54, 0x35, 0x62, 0xa1, 0xda, 0x4d, 0x7b, 0xc2, 0xe4,
+ 0x83, 0x03, 0x5d, 0x46, 0x68, 0x53, 0x6a, 0xd1, 0xd6, 0x9f, 0x61, 0x19,
+ 0x04, 0x59, 0x99, 0x52, 0x4d, 0x92, 0xc4, 0x8c, 0x4a, 0xed, 0xe6, 0x22,
+ 0xee, 0x53, 0x63, 0x8d,
+};
+static const struct drbg_kat_no_reseed kat518_t = {
+ 7, kat518_entropyin, kat518_nonce, kat518_persstr,
+ kat518_addin0, kat518_addin1, kat518_retbits
+};
+static const struct drbg_kat kat518 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat518_t
+};
+
+static const unsigned char kat519_entropyin[] = {
+ 0x7b, 0x16, 0x3d, 0xc1, 0x1e, 0x15, 0x6b, 0x1b, 0xb1, 0x70, 0xc2, 0x2d,
+ 0xcd, 0xd1, 0x21, 0xea, 0xea, 0x30, 0x1d, 0x61, 0x72, 0xe3, 0xc0, 0xb4,
+ 0xbb, 0xc4, 0xf3, 0x77, 0xbe, 0x04, 0x09, 0x40,
+};
+static const unsigned char kat519_nonce[] = {
+ 0x32, 0x33, 0xf1, 0x56, 0x37, 0x28, 0x69, 0xd9, 0x37, 0xf3, 0x69, 0x4c,
+ 0x50, 0xea, 0x98, 0x32,
+};
+static const unsigned char kat519_persstr[] = {
+ 0x7d, 0x61, 0xda, 0xf2, 0x37, 0xbd, 0xea, 0x1b, 0xa3, 0xb0, 0x30, 0x1f,
+ 0x02, 0xcb, 0xe6, 0x1c, 0xea, 0xa1, 0x88, 0xee, 0xf8, 0x5b, 0x95, 0x84,
+ 0x24, 0x32, 0x47, 0x0c, 0x65, 0xa1, 0x33, 0x67,
+};
+static const unsigned char kat519_addin0[] = {0};
+static const unsigned char kat519_addin1[] = {0};
+static const unsigned char kat519_retbits[] = {
+ 0x8b, 0x9e, 0x1b, 0x2a, 0xa9, 0x50, 0xd0, 0x16, 0xae, 0xe5, 0x5c, 0x3a,
+ 0xbf, 0x0c, 0x7f, 0x1d, 0x3c, 0x1c, 0x0d, 0x8a, 0x62, 0xce, 0x5d, 0x59,
+ 0xe8, 0x4b, 0x72, 0xa1, 0x32, 0x2f, 0x17, 0x46, 0xef, 0xaf, 0x0e, 0x46,
+ 0xe6, 0x7b, 0x17, 0x66, 0x43, 0xc7, 0xb5, 0x7e, 0x3d, 0xbf, 0xfb, 0xdf,
+ 0x32, 0xce, 0x7a, 0xff, 0xfd, 0x6f, 0xf7, 0xf2, 0x30, 0x81, 0xae, 0x4c,
+ 0x4f, 0x97, 0x3e, 0xb0,
+};
+static const struct drbg_kat_no_reseed kat519_t = {
+ 8, kat519_entropyin, kat519_nonce, kat519_persstr,
+ kat519_addin0, kat519_addin1, kat519_retbits
+};
+static const struct drbg_kat kat519 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat519_t
+};
+
+static const unsigned char kat520_entropyin[] = {
+ 0x96, 0xcb, 0x5f, 0x53, 0x1e, 0x02, 0xac, 0x25, 0x44, 0x45, 0x67, 0x3d,
+ 0xe5, 0xe1, 0xdc, 0xad, 0x51, 0x76, 0x10, 0x26, 0xe7, 0x78, 0xa0, 0x33,
+ 0x21, 0xb4, 0x9c, 0x59, 0x77, 0x45, 0x73, 0x1b,
+};
+static const unsigned char kat520_nonce[] = {
+ 0x13, 0x91, 0x98, 0xde, 0x0c, 0xa9, 0x82, 0xc4, 0x9b, 0x8a, 0x88, 0xe5,
+ 0xab, 0x88, 0x6c, 0xb8,
+};
+static const unsigned char kat520_persstr[] = {
+ 0x00, 0x6f, 0x17, 0x2e, 0x51, 0x86, 0xfb, 0x47, 0x9f, 0x3c, 0xd8, 0xe3,
+ 0x42, 0x5a, 0x75, 0x2b, 0x8f, 0x8d, 0x56, 0xa3, 0xf1, 0x76, 0xc6, 0xfa,
+ 0xba, 0x6c, 0xa4, 0xa4, 0xdd, 0xea, 0xe6, 0x37,
+};
+static const unsigned char kat520_addin0[] = {0};
+static const unsigned char kat520_addin1[] = {0};
+static const unsigned char kat520_retbits[] = {
+ 0x38, 0x8e, 0x5c, 0x98, 0xc0, 0x54, 0x39, 0x30, 0x84, 0xa9, 0x44, 0x15,
+ 0xe1, 0xa9, 0xba, 0x32, 0x04, 0x4c, 0x87, 0x45, 0x62, 0xc1, 0x85, 0x39,
+ 0x9b, 0x96, 0x99, 0x94, 0xb6, 0x40, 0x6f, 0x9e, 0xf8, 0x63, 0x19, 0x10,
+ 0x2f, 0xd8, 0x9d, 0xf6, 0x70, 0x90, 0x35, 0x67, 0xf8, 0x6d, 0xe8, 0x67,
+ 0x6b, 0x0f, 0x72, 0x29, 0x8a, 0xa0, 0x01, 0x91, 0x15, 0x12, 0x62, 0xe7,
+ 0xe0, 0x89, 0x87, 0x91,
+};
+static const struct drbg_kat_no_reseed kat520_t = {
+ 9, kat520_entropyin, kat520_nonce, kat520_persstr,
+ kat520_addin0, kat520_addin1, kat520_retbits
+};
+static const struct drbg_kat kat520 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat520_t
+};
+
+static const unsigned char kat521_entropyin[] = {
+ 0x58, 0x5a, 0xf2, 0x7f, 0x7f, 0x52, 0x4a, 0xb4, 0xc5, 0xa7, 0xfc, 0xa4,
+ 0x3b, 0x70, 0xb4, 0x64, 0xcd, 0x71, 0xd7, 0xc5, 0xbf, 0xb4, 0x45, 0x5e,
+ 0x6d, 0xbd, 0x10, 0x2d, 0x89, 0x33, 0x5e, 0x89,
+};
+static const unsigned char kat521_nonce[] = {
+ 0x0a, 0xc9, 0xcb, 0x4d, 0x14, 0xbf, 0x52, 0x26, 0x16, 0xc6, 0x13, 0x06,
+ 0x86, 0x98, 0xb1, 0x6b,
+};
+static const unsigned char kat521_persstr[] = {
+ 0x0c, 0xa0, 0xed, 0x30, 0x27, 0xd3, 0xb4, 0x7f, 0x78, 0x3f, 0xee, 0xf1,
+ 0x8a, 0x40, 0x34, 0x0c, 0xc5, 0x85, 0x1b, 0x34, 0x2f, 0x39, 0xf2, 0xb7,
+ 0xd9, 0x08, 0x91, 0x0b, 0x96, 0x79, 0x2e, 0x3a,
+};
+static const unsigned char kat521_addin0[] = {0};
+static const unsigned char kat521_addin1[] = {0};
+static const unsigned char kat521_retbits[] = {
+ 0xf4, 0xc2, 0xb3, 0xb8, 0x64, 0x71, 0xb2, 0xfb, 0x44, 0x69, 0x92, 0x79,
+ 0x19, 0x42, 0x15, 0x6d, 0x85, 0xfa, 0xc3, 0xc9, 0x37, 0xa8, 0xe5, 0x0e,
+ 0x79, 0xac, 0xa7, 0x92, 0xc6, 0x69, 0x50, 0x92, 0xd6, 0x7f, 0x80, 0x7e,
+ 0xb7, 0xac, 0x0d, 0xae, 0xe3, 0x1d, 0x68, 0xf6, 0x6a, 0x83, 0x48, 0xc3,
+ 0x3c, 0x31, 0x5e, 0x4b, 0xe1, 0xef, 0x58, 0x6d, 0xbd, 0x40, 0x8e, 0x63,
+ 0xdb, 0x1d, 0x8a, 0xb0,
+};
+static const struct drbg_kat_no_reseed kat521_t = {
+ 10, kat521_entropyin, kat521_nonce, kat521_persstr,
+ kat521_addin0, kat521_addin1, kat521_retbits
+};
+static const struct drbg_kat kat521 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat521_t
+};
+
+static const unsigned char kat522_entropyin[] = {
+ 0x4e, 0x7b, 0x5b, 0x7b, 0x30, 0xb8, 0xb9, 0x0b, 0x1b, 0xdc, 0x04, 0x3c,
+ 0x78, 0x80, 0x54, 0x58, 0x4f, 0xd3, 0x94, 0x5f, 0x45, 0xca, 0x54, 0x70,
+ 0x9f, 0x89, 0xc1, 0x9b, 0x75, 0x56, 0x6d, 0xc3,
+};
+static const unsigned char kat522_nonce[] = {
+ 0x85, 0xa4, 0x00, 0x11, 0x6e, 0xb9, 0x03, 0x0c, 0x92, 0x49, 0xce, 0xae,
+ 0xe8, 0xde, 0xc9, 0xc7,
+};
+static const unsigned char kat522_persstr[] = {
+ 0x09, 0x1f, 0x59, 0x0f, 0x58, 0x42, 0x30, 0x69, 0x61, 0x63, 0xb6, 0xb5,
+ 0x3a, 0x11, 0xf5, 0x2c, 0x2e, 0x92, 0x59, 0xaa, 0x09, 0x82, 0xd9, 0x89,
+ 0x7e, 0x7d, 0xc5, 0x94, 0x19, 0x9d, 0x48, 0xcb,
+};
+static const unsigned char kat522_addin0[] = {0};
+static const unsigned char kat522_addin1[] = {0};
+static const unsigned char kat522_retbits[] = {
+ 0xc8, 0x9b, 0xc0, 0x8d, 0x62, 0x33, 0x5d, 0x3c, 0x28, 0x46, 0x4e, 0xe2,
+ 0x76, 0x22, 0x85, 0xce, 0xb0, 0xee, 0xfc, 0x95, 0x77, 0x19, 0x5a, 0x8f,
+ 0x89, 0xd6, 0x3e, 0x05, 0x52, 0x02, 0x01, 0x82, 0x3a, 0xf8, 0x87, 0x30,
+ 0x5c, 0xff, 0x9b, 0x2d, 0x7f, 0xd1, 0x7f, 0x60, 0xb5, 0x11, 0x7f, 0xdc,
+ 0xd0, 0xed, 0x3e, 0xf1, 0x8b, 0xac, 0x7e, 0x5f, 0x15, 0x08, 0x08, 0x02,
+ 0xa8, 0xab, 0x13, 0x9e,
+};
+static const struct drbg_kat_no_reseed kat522_t = {
+ 11, kat522_entropyin, kat522_nonce, kat522_persstr,
+ kat522_addin0, kat522_addin1, kat522_retbits
+};
+static const struct drbg_kat kat522 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat522_t
+};
+
+static const unsigned char kat523_entropyin[] = {
+ 0xac, 0x2d, 0xd6, 0x82, 0xa9, 0x6e, 0xe0, 0xe8, 0x18, 0x82, 0x9d, 0xb5,
+ 0x62, 0xfb, 0xc3, 0x0a, 0x7c, 0x00, 0xe0, 0x19, 0x31, 0x47, 0xc5, 0x33,
+ 0xe2, 0xa5, 0x1b, 0x37, 0x4a, 0x46, 0x79, 0x58,
+};
+static const unsigned char kat523_nonce[] = {
+ 0xb8, 0xe6, 0x39, 0x64, 0x49, 0xd8, 0x84, 0xe9, 0xc6, 0xee, 0x7c, 0xed,
+ 0x8c, 0x7a, 0xd9, 0x2e,
+};
+static const unsigned char kat523_persstr[] = {
+ 0x10, 0x87, 0xed, 0x01, 0xb4, 0xa8, 0x53, 0xef, 0xd8, 0xb9, 0xd3, 0xad,
+ 0xc5, 0x89, 0x39, 0x36, 0x49, 0x9d, 0xd2, 0x97, 0x45, 0xcd, 0xc6, 0xd3,
+ 0xd8, 0x93, 0xad, 0xc8, 0x1d, 0x5a, 0x1b, 0xcd,
+};
+static const unsigned char kat523_addin0[] = {0};
+static const unsigned char kat523_addin1[] = {0};
+static const unsigned char kat523_retbits[] = {
+ 0xe1, 0x15, 0x4b, 0x37, 0x6b, 0x8c, 0x7c, 0x26, 0x15, 0x1b, 0x7f, 0x68,
+ 0xa5, 0xdb, 0x27, 0x4d, 0x73, 0x10, 0x18, 0x03, 0xc1, 0xe7, 0xc2, 0xf6,
+ 0xd1, 0x0f, 0x37, 0x4e, 0x4b, 0x88, 0x3b, 0x10, 0x30, 0x5a, 0x5d, 0x58,
+ 0x76, 0x76, 0x02, 0x0d, 0x52, 0xc6, 0xc4, 0xa7, 0xe5, 0x53, 0xbb, 0x96,
+ 0xa9, 0x53, 0xb6, 0xe9, 0xf2, 0xe4, 0xa7, 0xdd, 0x60, 0xed, 0x4f, 0x94,
+ 0xd1, 0x23, 0xe4, 0xa3,
+};
+static const struct drbg_kat_no_reseed kat523_t = {
+ 12, kat523_entropyin, kat523_nonce, kat523_persstr,
+ kat523_addin0, kat523_addin1, kat523_retbits
+};
+static const struct drbg_kat kat523 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat523_t
+};
+
+static const unsigned char kat524_entropyin[] = {
+ 0x40, 0x44, 0x29, 0x9a, 0x1a, 0x97, 0x12, 0x6a, 0x52, 0x45, 0x97, 0xc8,
+ 0xdf, 0x58, 0x0c, 0x9f, 0x54, 0xad, 0xb4, 0x14, 0x3a, 0x82, 0x82, 0x33,
+ 0x64, 0x96, 0xd9, 0xed, 0x41, 0x88, 0x13, 0x57,
+};
+static const unsigned char kat524_nonce[] = {
+ 0x78, 0x7d, 0xa4, 0xf0, 0x15, 0x98, 0xb6, 0xf0, 0x9e, 0x3a, 0x7b, 0x68,
+ 0x65, 0xf9, 0x09, 0x87,
+};
+static const unsigned char kat524_persstr[] = {
+ 0xc7, 0x78, 0x25, 0x4d, 0x48, 0x62, 0x8e, 0x48, 0xf4, 0xdc, 0xac, 0x3c,
+ 0x96, 0xdf, 0xb2, 0xcf, 0x84, 0x10, 0xf9, 0xcd, 0xb6, 0xc0, 0x0d, 0x62,
+ 0x5b, 0x41, 0x1a, 0x01, 0x47, 0xbf, 0xe1, 0x6d,
+};
+static const unsigned char kat524_addin0[] = {0};
+static const unsigned char kat524_addin1[] = {0};
+static const unsigned char kat524_retbits[] = {
+ 0x1b, 0xfa, 0xb9, 0x3a, 0x54, 0xb7, 0xa0, 0xbb, 0xc6, 0xa7, 0x7d, 0x63,
+ 0xd8, 0x13, 0x2a, 0x5d, 0x6c, 0x19, 0x1c, 0x84, 0xe0, 0x9a, 0x85, 0x91,
+ 0xd2, 0xb7, 0xd8, 0x8f, 0x33, 0x9c, 0xad, 0x29, 0xd4, 0x3c, 0xc8, 0xd0,
+ 0xbf, 0x01, 0xd6, 0xea, 0x9f, 0xfe, 0x27, 0xfa, 0x1f, 0xf7, 0x69, 0x9c,
+ 0x87, 0x1a, 0x84, 0x11, 0x33, 0x2a, 0xb0, 0xbc, 0xeb, 0xce, 0x01, 0x7a,
+ 0xde, 0xd3, 0xef, 0xb6,
+};
+static const struct drbg_kat_no_reseed kat524_t = {
+ 13, kat524_entropyin, kat524_nonce, kat524_persstr,
+ kat524_addin0, kat524_addin1, kat524_retbits
+};
+static const struct drbg_kat kat524 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat524_t
+};
+
+static const unsigned char kat525_entropyin[] = {
+ 0x56, 0xe5, 0xdd, 0x70, 0x78, 0x2f, 0xca, 0x50, 0x49, 0x3b, 0x5d, 0x22,
+ 0x2b, 0x83, 0xb6, 0xdd, 0x7b, 0xdf, 0x10, 0x22, 0xd3, 0x04, 0xf4, 0xf2,
+ 0x92, 0xdb, 0x38, 0x5f, 0x3a, 0xcd, 0x8a, 0xb0,
+};
+static const unsigned char kat525_nonce[] = {
+ 0xf0, 0xec, 0x46, 0xde, 0x4a, 0x9a, 0xab, 0x3f, 0x9e, 0x7f, 0xd4, 0x7f,
+ 0x60, 0xd2, 0x04, 0x50,
+};
+static const unsigned char kat525_persstr[] = {
+ 0xcc, 0x54, 0x2e, 0x50, 0xfc, 0x0a, 0xbb, 0x15, 0xb7, 0xdd, 0xe7, 0xb0,
+ 0xdf, 0xe8, 0x41, 0xc7, 0x9f, 0x74, 0x82, 0x44, 0xa0, 0xd1, 0xd0, 0xa0,
+ 0x2e, 0x9f, 0x90, 0x8a, 0xb9, 0x9c, 0x61, 0xc2,
+};
+static const unsigned char kat525_addin0[] = {0};
+static const unsigned char kat525_addin1[] = {0};
+static const unsigned char kat525_retbits[] = {
+ 0x74, 0x27, 0xc7, 0x01, 0x8c, 0x51, 0xf3, 0xb0, 0x60, 0xcb, 0xd8, 0xfe,
+ 0x25, 0x3a, 0x8b, 0x62, 0xb6, 0x72, 0xa3, 0x1f, 0xb8, 0x48, 0xf5, 0x58,
+ 0x31, 0xbe, 0x1b, 0x04, 0x5f, 0x60, 0x85, 0xc9, 0x13, 0x64, 0x85, 0x3c,
+ 0x7e, 0x35, 0x3b, 0xe0, 0xa5, 0x2d, 0xca, 0xdb, 0x30, 0x92, 0x8e, 0x94,
+ 0xe1, 0x77, 0x2b, 0xed, 0xbf, 0x27, 0x10, 0x1a, 0x2a, 0x8f, 0xf8, 0x71,
+ 0x3d, 0x9c, 0x9f, 0x4c,
+};
+static const struct drbg_kat_no_reseed kat525_t = {
+ 14, kat525_entropyin, kat525_nonce, kat525_persstr,
+ kat525_addin0, kat525_addin1, kat525_retbits
+};
+static const struct drbg_kat kat525 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat525_t
+};
+
+static const unsigned char kat526_entropyin[] = {
+ 0x87, 0xb5, 0x6e, 0x96, 0x4e, 0xba, 0x22, 0x71, 0x54, 0x72, 0x4b, 0xb9,
+ 0x48, 0x4b, 0x81, 0x2d, 0x3e, 0x2c, 0x0c, 0x43, 0xb3, 0xd1, 0x7f, 0x60,
+ 0x98, 0xd9, 0x52, 0x6e, 0x16, 0xe6, 0xd0, 0xef,
+};
+static const unsigned char kat526_nonce[] = {
+ 0x9b, 0xea, 0x6a, 0x7f, 0xf2, 0x35, 0x8d, 0xf1, 0x42, 0xe6, 0xc2, 0x3e,
+ 0x21, 0x57, 0xfb, 0x83,
+};
+static const unsigned char kat526_persstr[] = {
+ 0x98, 0x60, 0xb4, 0x32, 0xed, 0xd5, 0x8d, 0x1c, 0xcb, 0xfe, 0xec, 0xbc,
+ 0xe9, 0x9f, 0xfa, 0xee, 0x7d, 0x93, 0x5a, 0x61, 0x48, 0x60, 0xd4, 0xe9,
+ 0x65, 0xbd, 0x67, 0x04, 0x14, 0x03, 0x09, 0x6b,
+};
+static const unsigned char kat526_addin0[] = {
+ 0x99, 0xa5, 0xcc, 0x87, 0x92, 0x4e, 0x8e, 0xa6, 0x5a, 0x59, 0x6f, 0x81,
+ 0xfd, 0x17, 0xd6, 0x3f, 0x5b, 0x45, 0x42, 0xfe, 0x6e, 0x8e, 0x15, 0x11,
+ 0xb5, 0xd3, 0x5c, 0x83, 0x5d, 0xfa, 0xdb, 0x0b,
+};
+static const unsigned char kat526_addin1[] = {
+ 0x9a, 0x8d, 0xec, 0x54, 0x73, 0x4a, 0x34, 0x58, 0x2a, 0x23, 0x32, 0xf3,
+ 0x45, 0x2e, 0x82, 0x31, 0x35, 0x24, 0xc3, 0xe0, 0xdf, 0xb4, 0x85, 0xfa,
+ 0xea, 0xc6, 0xca, 0x5f, 0xc0, 0xff, 0x50, 0x4d,
+};
+static const unsigned char kat526_retbits[] = {
+ 0xdb, 0xc6, 0xa2, 0x33, 0x0b, 0x19, 0xb5, 0xcd, 0xdd, 0x8c, 0xd6, 0x39,
+ 0x2e, 0xc1, 0xfb, 0x50, 0x86, 0x78, 0xc8, 0x05, 0xe8, 0x7d, 0x1a, 0xca,
+ 0x07, 0xac, 0x26, 0x50, 0x07, 0x63, 0x25, 0x03, 0x04, 0x4a, 0x00, 0x61,
+ 0x0c, 0x79, 0xd9, 0x83, 0x75, 0xaf, 0xa7, 0xab, 0x4c, 0xca, 0x1a, 0x90,
+ 0x98, 0x9c, 0xbf, 0xe7, 0xc6, 0x74, 0xaf, 0x5d, 0x82, 0x3c, 0xed, 0x11,
+ 0xc4, 0x7e, 0x9a, 0xf6,
+};
+static const struct drbg_kat_no_reseed kat526_t = {
+ 0, kat526_entropyin, kat526_nonce, kat526_persstr,
+ kat526_addin0, kat526_addin1, kat526_retbits
+};
+static const struct drbg_kat kat526 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat526_t
+};
+
+static const unsigned char kat527_entropyin[] = {
+ 0xb3, 0x60, 0x32, 0xf5, 0xd7, 0x77, 0x25, 0x08, 0x26, 0xd8, 0x31, 0x56,
+ 0x6e, 0xc5, 0x85, 0x45, 0x2d, 0x70, 0xb9, 0x20, 0x65, 0x43, 0x55, 0xac,
+ 0xf8, 0xf6, 0x91, 0x94, 0x16, 0x43, 0xee, 0x95,
+};
+static const unsigned char kat527_nonce[] = {
+ 0xda, 0xcf, 0x74, 0x7e, 0x85, 0xfa, 0xa6, 0xa3, 0xeb, 0x01, 0x6d, 0xf9,
+ 0x29, 0xc9, 0x0e, 0x8b,
+};
+static const unsigned char kat527_persstr[] = {
+ 0xf0, 0x32, 0x65, 0xb2, 0xf2, 0x17, 0x4c, 0xea, 0x93, 0x8f, 0xf2, 0x3c,
+ 0x7e, 0x60, 0xa7, 0x5d, 0xcb, 0xa1, 0xe4, 0xe4, 0x12, 0xbb, 0xad, 0x4b,
+ 0x5d, 0x3b, 0x3e, 0x23, 0x68, 0x5e, 0x80, 0xd8,
+};
+static const unsigned char kat527_addin0[] = {
+ 0xd4, 0x77, 0x23, 0x80, 0xde, 0x77, 0x4b, 0xbb, 0xb6, 0x10, 0x0d, 0x93,
+ 0x39, 0x59, 0x0e, 0xff, 0x03, 0x3f, 0xf5, 0x48, 0xb8, 0x26, 0x68, 0x55,
+ 0x53, 0xa2, 0xe8, 0x57, 0x80, 0x0a, 0x07, 0xe2,
+};
+static const unsigned char kat527_addin1[] = {
+ 0x05, 0x01, 0x1d, 0x3d, 0xd4, 0xdd, 0xcf, 0x19, 0x07, 0x6f, 0xae, 0x65,
+ 0x69, 0x73, 0xaa, 0xc9, 0xa1, 0x16, 0x41, 0xb2, 0x10, 0x96, 0x3c, 0xec,
+ 0x81, 0xd1, 0xea, 0x58, 0xdb, 0x7b, 0xb7, 0xe0,
+};
+static const unsigned char kat527_retbits[] = {
+ 0x3d, 0x35, 0x31, 0x05, 0x79, 0x77, 0x40, 0x10, 0x72, 0xce, 0x44, 0xe2,
+ 0xe6, 0x63, 0x17, 0xa8, 0x08, 0xd4, 0x7c, 0x44, 0xaa, 0xd4, 0xf9, 0x8c,
+ 0x08, 0xd8, 0x8e, 0xac, 0x7b, 0x59, 0x8c, 0x40, 0x71, 0x4a, 0xd1, 0x24,
+ 0x17, 0xb6, 0x16, 0x99, 0xd1, 0x12, 0x6e, 0xa4, 0xc6, 0x42, 0xb0, 0x9f,
+ 0xe9, 0xf5, 0xde, 0xd3, 0x6f, 0x2e, 0x37, 0xed, 0x2c, 0xce, 0x97, 0x2e,
+ 0x0d, 0xfc, 0xc7, 0xce,
+};
+static const struct drbg_kat_no_reseed kat527_t = {
+ 1, kat527_entropyin, kat527_nonce, kat527_persstr,
+ kat527_addin0, kat527_addin1, kat527_retbits
+};
+static const struct drbg_kat kat527 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat527_t
+};
+
+static const unsigned char kat528_entropyin[] = {
+ 0x32, 0x42, 0xa1, 0xb9, 0x7c, 0x11, 0xe5, 0xea, 0x8a, 0x1b, 0x96, 0xcc,
+ 0xdc, 0xc2, 0x56, 0x28, 0xe7, 0x9e, 0xc5, 0xd1, 0x4b, 0x04, 0x15, 0x58,
+ 0xd3, 0x12, 0xea, 0x72, 0xa3, 0xdd, 0x0d, 0xd0,
+};
+static const unsigned char kat528_nonce[] = {
+ 0xd9, 0xf1, 0xa8, 0xdd, 0x83, 0xb0, 0xf1, 0x13, 0x17, 0xa9, 0x2d, 0x20,
+ 0x51, 0xe0, 0x7e, 0x97,
+};
+static const unsigned char kat528_persstr[] = {
+ 0x93, 0x0b, 0x0c, 0x3b, 0x96, 0x26, 0x3c, 0x3e, 0xc7, 0xed, 0xf2, 0x58,
+ 0x90, 0xcc, 0x5d, 0x7e, 0xa4, 0x1d, 0x65, 0x64, 0xa8, 0x1f, 0x17, 0x89,
+ 0x9f, 0xc7, 0xb4, 0x9c, 0x5c, 0x40, 0xb0, 0x91,
+};
+static const unsigned char kat528_addin0[] = {
+ 0xa9, 0x05, 0xda, 0xb4, 0xad, 0xe7, 0x5e, 0xe5, 0xe6, 0x8a, 0x07, 0x09,
+ 0xd1, 0xd0, 0x69, 0x9a, 0x87, 0xf5, 0xd4, 0xf8, 0xe4, 0x9c, 0x8c, 0x95,
+ 0xd9, 0x59, 0x0d, 0x7c, 0x12, 0x38, 0xd0, 0xf9,
+};
+static const unsigned char kat528_addin1[] = {
+ 0x4d, 0x8e, 0x2d, 0x92, 0x29, 0x97, 0x65, 0xb9, 0xce, 0xf0, 0x39, 0xd9,
+ 0x47, 0xd4, 0x42, 0x7d, 0x4b, 0x9c, 0x14, 0xf4, 0x2c, 0x81, 0xe1, 0x2b,
+ 0xc9, 0x1b, 0x4e, 0x29, 0x72, 0x33, 0xfc, 0xe1,
+};
+static const unsigned char kat528_retbits[] = {
+ 0xfa, 0x3a, 0xdb, 0x6a, 0x35, 0xe0, 0x50, 0x85, 0x34, 0x80, 0x3e, 0xda,
+ 0x5f, 0x39, 0xd9, 0xfd, 0x62, 0x22, 0x74, 0x74, 0xd9, 0xe1, 0x43, 0x5e,
+ 0xd0, 0xe5, 0xe6, 0xda, 0x01, 0xe2, 0xe4, 0xd8, 0x3a, 0x3d, 0xa9, 0x39,
+ 0x5a, 0x3c, 0x96, 0xef, 0xec, 0xdf, 0xe9, 0x2b, 0x89, 0xe1, 0x5e, 0x8c,
+ 0xaf, 0x25, 0xe8, 0x17, 0x24, 0xb3, 0x97, 0x35, 0x51, 0x97, 0x2a, 0x8f,
+ 0xf5, 0xb5, 0xcd, 0x0f,
+};
+static const struct drbg_kat_no_reseed kat528_t = {
+ 2, kat528_entropyin, kat528_nonce, kat528_persstr,
+ kat528_addin0, kat528_addin1, kat528_retbits
+};
+static const struct drbg_kat kat528 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat528_t
+};
+
+static const unsigned char kat529_entropyin[] = {
+ 0xbb, 0x2c, 0x5c, 0x0d, 0xe9, 0xdd, 0x27, 0x69, 0x42, 0xca, 0x0a, 0x54,
+ 0xfa, 0xf9, 0xa4, 0xf7, 0x25, 0xe2, 0x7b, 0x19, 0x6a, 0x6f, 0x16, 0xe9,
+ 0xdd, 0x34, 0x59, 0x53, 0x79, 0xe5, 0xb8, 0x69,
+};
+static const unsigned char kat529_nonce[] = {
+ 0x76, 0x30, 0xfb, 0xb7, 0x1d, 0x49, 0xba, 0x0b, 0xa3, 0x6d, 0xd8, 0x8d,
+ 0x2d, 0x49, 0x1d, 0x61,
+};
+static const unsigned char kat529_persstr[] = {
+ 0xa0, 0x26, 0x4b, 0x50, 0x05, 0xdb, 0xfc, 0x57, 0x19, 0x4b, 0xac, 0x89,
+ 0x08, 0x9c, 0x16, 0xa7, 0x85, 0x22, 0x2a, 0xf0, 0x08, 0x31, 0x0b, 0x20,
+ 0xa6, 0x08, 0x5e, 0xe7, 0x41, 0x89, 0x2c, 0xed,
+};
+static const unsigned char kat529_addin0[] = {
+ 0x63, 0x4f, 0xd7, 0xca, 0xd0, 0x00, 0xb7, 0x86, 0xfe, 0x36, 0x2c, 0x91,
+ 0x48, 0x57, 0xb5, 0xd9, 0xed, 0x26, 0x69, 0xcd, 0x5c, 0x77, 0x7c, 0x52,
+ 0x07, 0x5c, 0xff, 0x38, 0x40, 0xbb, 0x58, 0xab,
+};
+static const unsigned char kat529_addin1[] = {
+ 0xfd, 0xfe, 0x16, 0x1f, 0x0c, 0xa0, 0xe6, 0xec, 0xd6, 0x35, 0x6a, 0xdb,
+ 0x64, 0x6e, 0xf6, 0x29, 0x35, 0xd8, 0xcf, 0xc7, 0x52, 0x22, 0x44, 0xa6,
+ 0x04, 0x1c, 0xb3, 0xd7, 0xcc, 0x6e, 0x68, 0x39,
+};
+static const unsigned char kat529_retbits[] = {
+ 0xe3, 0xc7, 0x8a, 0x24, 0xd5, 0xa3, 0x4b, 0x2a, 0x70, 0x26, 0x4d, 0x13,
+ 0x70, 0x7c, 0xa6, 0x35, 0xc9, 0x54, 0x26, 0xf4, 0x22, 0xdb, 0x78, 0xc1,
+ 0x8c, 0x91, 0xe3, 0xc4, 0x0f, 0xb7, 0x39, 0x2c, 0x02, 0xb0, 0xa9, 0xed,
+ 0x2e, 0x1d, 0x5a, 0x9c, 0x73, 0xef, 0x45, 0x6c, 0x37, 0xaf, 0xe6, 0xae,
+ 0x0c, 0xc1, 0x86, 0x72, 0x63, 0xb4, 0x63, 0x0a, 0xbd, 0x73, 0x84, 0xab,
+ 0x68, 0x29, 0x03, 0x42,
+};
+static const struct drbg_kat_no_reseed kat529_t = {
+ 3, kat529_entropyin, kat529_nonce, kat529_persstr,
+ kat529_addin0, kat529_addin1, kat529_retbits
+};
+static const struct drbg_kat kat529 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat529_t
+};
+
+static const unsigned char kat530_entropyin[] = {
+ 0x73, 0x74, 0xb7, 0x23, 0xd4, 0x1a, 0xc8, 0x7c, 0xd1, 0xee, 0x53, 0x88,
+ 0x0c, 0x0d, 0x76, 0xbd, 0x95, 0x8b, 0x50, 0xa8, 0x71, 0x4f, 0xfd, 0x07,
+ 0x0f, 0x45, 0x3b, 0xd8, 0x49, 0x86, 0x22, 0xc8,
+};
+static const unsigned char kat530_nonce[] = {
+ 0x86, 0xe1, 0x23, 0xcd, 0x4f, 0x07, 0x4c, 0x7f, 0x07, 0x31, 0x63, 0xfb,
+ 0x18, 0x9a, 0xf9, 0xfd,
+};
+static const unsigned char kat530_persstr[] = {
+ 0x16, 0xb6, 0x26, 0x75, 0xe9, 0xf9, 0x24, 0xc6, 0xfc, 0xaa, 0x13, 0x3c,
+ 0x0c, 0x75, 0xc4, 0x1b, 0x5e, 0xde, 0x75, 0xbd, 0xfd, 0x4a, 0x70, 0x11,
+ 0x0e, 0xa7, 0x4a, 0xfb, 0x73, 0xd2, 0x56, 0x97,
+};
+static const unsigned char kat530_addin0[] = {
+ 0xfc, 0x06, 0x04, 0x40, 0x87, 0x2b, 0xa7, 0xee, 0x4b, 0x26, 0xb0, 0xca,
+ 0xb6, 0x70, 0x7c, 0xd3, 0x88, 0xc6, 0x9d, 0x85, 0xac, 0xb5, 0x7d, 0x65,
+ 0x79, 0xc8, 0xd8, 0xbc, 0x4a, 0xf1, 0xad, 0xfe,
+};
+static const unsigned char kat530_addin1[] = {
+ 0xcd, 0xd1, 0x50, 0xf8, 0xd7, 0x0d, 0x5a, 0xad, 0x87, 0x84, 0xea, 0x74,
+ 0xc5, 0x09, 0x86, 0x05, 0xf8, 0x3c, 0xb0, 0x7f, 0x69, 0xdb, 0xad, 0xe1,
+ 0x93, 0x89, 0x3b, 0xc0, 0x18, 0x4d, 0xab, 0x39,
+};
+static const unsigned char kat530_retbits[] = {
+ 0xcb, 0x7e, 0x38, 0xfc, 0xfa, 0xd9, 0x1f, 0x1e, 0xb8, 0x2d, 0xac, 0xd2,
+ 0xce, 0x99, 0x11, 0xb7, 0x9b, 0xfd, 0xb0, 0x7e, 0xdb, 0xab, 0x2e, 0xdf,
+ 0x24, 0x19, 0x0a, 0x2d, 0x9d, 0xa1, 0x71, 0xc1, 0x8c, 0x62, 0xbd, 0x10,
+ 0xe3, 0xb7, 0xd7, 0xff, 0x01, 0x9b, 0x66, 0x6e, 0xbf, 0xf4, 0x26, 0x77,
+ 0xd7, 0x9b, 0x40, 0x1a, 0xe6, 0x4a, 0x41, 0x37, 0x28, 0x76, 0x36, 0xd4,
+ 0x9c, 0xad, 0xdc, 0xdc,
+};
+static const struct drbg_kat_no_reseed kat530_t = {
+ 4, kat530_entropyin, kat530_nonce, kat530_persstr,
+ kat530_addin0, kat530_addin1, kat530_retbits
+};
+static const struct drbg_kat kat530 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat530_t
+};
+
+static const unsigned char kat531_entropyin[] = {
+ 0x0d, 0xb7, 0x5d, 0x22, 0xf0, 0xd1, 0x69, 0x02, 0xc7, 0xa1, 0x81, 0x3b,
+ 0x0a, 0xda, 0xb2, 0xeb, 0xc6, 0x75, 0xf4, 0x30, 0x57, 0x38, 0x46, 0x9b,
+ 0x14, 0x2b, 0x7f, 0x9a, 0x39, 0xd5, 0xea, 0xf7,
+};
+static const unsigned char kat531_nonce[] = {
+ 0x1a, 0xce, 0x39, 0x3a, 0x30, 0xcb, 0x36, 0xda, 0xbf, 0xcd, 0x85, 0x48,
+ 0x34, 0x91, 0xb9, 0x48,
+};
+static const unsigned char kat531_persstr[] = {
+ 0x1f, 0x9f, 0x7a, 0xbf, 0xca, 0x5d, 0x53, 0x65, 0xc6, 0x44, 0xf7, 0xd9,
+ 0xd3, 0x3d, 0x12, 0x88, 0xcb, 0x62, 0xb2, 0x7e, 0x87, 0x3a, 0x4d, 0x52,
+ 0xaa, 0xd0, 0xe7, 0xcc, 0x1c, 0x89, 0x53, 0x88,
+};
+static const unsigned char kat531_addin0[] = {
+ 0xb0, 0x21, 0x01, 0x79, 0xbb, 0x14, 0x59, 0x8a, 0xd3, 0x0c, 0x4f, 0xe1,
+ 0xf2, 0xbf, 0x43, 0xc7, 0x81, 0xea, 0x9d, 0x8b, 0x51, 0xa2, 0x6b, 0x88,
+ 0x55, 0xa8, 0x12, 0xb5, 0x5a, 0x1c, 0xf8, 0x94,
+};
+static const unsigned char kat531_addin1[] = {
+ 0x73, 0xa2, 0x8b, 0x72, 0xcd, 0xa9, 0xf8, 0x31, 0xe2, 0x1b, 0x77, 0x6b,
+ 0xc9, 0x2e, 0x34, 0x04, 0x13, 0x2a, 0xbe, 0x5d, 0x7c, 0x2f, 0xe1, 0xc2,
+ 0x6a, 0xd4, 0xca, 0x6c, 0xa6, 0xe4, 0xea, 0x47,
+};
+static const unsigned char kat531_retbits[] = {
+ 0xf7, 0xb6, 0x39, 0x82, 0x60, 0xd3, 0x0e, 0x5b, 0x24, 0x0d, 0xfd, 0x5b,
+ 0xa0, 0x13, 0x6b, 0xa2, 0xda, 0x98, 0xb8, 0xbf, 0x25, 0x3f, 0x7a, 0x7c,
+ 0x1b, 0xad, 0x91, 0x32, 0x62, 0x54, 0x04, 0xe8, 0x99, 0x88, 0xd2, 0x71,
+ 0xba, 0xf0, 0xa2, 0x6e, 0x19, 0x78, 0x61, 0x06, 0xba, 0xc9, 0x20, 0xb9,
+ 0x43, 0x3c, 0xc8, 0xb4, 0xf5, 0xb9, 0x85, 0x3e, 0x24, 0x7c, 0x05, 0x06,
+ 0xd1, 0xb1, 0x14, 0x88,
+};
+static const struct drbg_kat_no_reseed kat531_t = {
+ 5, kat531_entropyin, kat531_nonce, kat531_persstr,
+ kat531_addin0, kat531_addin1, kat531_retbits
+};
+static const struct drbg_kat kat531 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat531_t
+};
+
+static const unsigned char kat532_entropyin[] = {
+ 0x6b, 0xd0, 0x81, 0xc5, 0x86, 0x37, 0xe5, 0x55, 0x10, 0x5e, 0x14, 0x1d,
+ 0xca, 0xca, 0x4b, 0x95, 0xb5, 0xbe, 0xcf, 0x39, 0x96, 0x73, 0xdb, 0x6c,
+ 0xc0, 0xe9, 0x6c, 0x66, 0xe1, 0x60, 0x92, 0xcd,
+};
+static const unsigned char kat532_nonce[] = {
+ 0xce, 0xa7, 0x1d, 0xe8, 0x81, 0x9b, 0x59, 0x99, 0x37, 0xdb, 0xa4, 0x84,
+ 0x77, 0xae, 0x9f, 0xba,
+};
+static const unsigned char kat532_persstr[] = {
+ 0xeb, 0x04, 0x5c, 0x29, 0x85, 0xab, 0x91, 0x69, 0x07, 0x58, 0xc2, 0xb5,
+ 0x6c, 0x7d, 0xba, 0xd2, 0x56, 0xdb, 0x16, 0xef, 0xc4, 0x14, 0x34, 0x4a,
+ 0x4b, 0xba, 0xe2, 0x54, 0xbe, 0x41, 0x70, 0xfa,
+};
+static const unsigned char kat532_addin0[] = {
+ 0xf1, 0x32, 0xbb, 0x2e, 0x73, 0x1c, 0xd1, 0xcc, 0xfa, 0x37, 0x3b, 0x4d,
+ 0x1e, 0x8a, 0x52, 0x7e, 0xd0, 0x8b, 0x42, 0x94, 0x47, 0xf3, 0x2b, 0x23,
+ 0xb9, 0x6d, 0x31, 0x2e, 0x5b, 0xab, 0xdd, 0x23,
+};
+static const unsigned char kat532_addin1[] = {
+ 0x0a, 0x55, 0x4d, 0xed, 0x57, 0xc1, 0xef, 0xec, 0xc4, 0xd4, 0xa0, 0x1a,
+ 0x82, 0xff, 0x17, 0x99, 0xc6, 0xe9, 0x36, 0xf9, 0xf9, 0x34, 0x02, 0xbc,
+ 0xe4, 0x62, 0x10, 0x2c, 0x2d, 0x25, 0x91, 0x0a,
+};
+static const unsigned char kat532_retbits[] = {
+ 0x7d, 0xe6, 0x0b, 0x0a, 0x40, 0xfb, 0x83, 0x59, 0xda, 0x92, 0x92, 0xc6,
+ 0x8f, 0x26, 0x16, 0x31, 0xd1, 0x84, 0xb0, 0x3e, 0x90, 0x47, 0x33, 0xb5,
+ 0xc9, 0x63, 0x96, 0x6a, 0x74, 0xd4, 0x87, 0x5a, 0x8f, 0x36, 0x50, 0x87,
+ 0xde, 0xe9, 0xc2, 0xcb, 0x8d, 0x05, 0x77, 0x8b, 0x0e, 0x0b, 0x46, 0xe5,
+ 0x26, 0xbc, 0xa1, 0x3c, 0x4c, 0x50, 0xbe, 0x49, 0x06, 0x25, 0xef, 0x05,
+ 0x0a, 0x79, 0x45, 0x28,
+};
+static const struct drbg_kat_no_reseed kat532_t = {
+ 6, kat532_entropyin, kat532_nonce, kat532_persstr,
+ kat532_addin0, kat532_addin1, kat532_retbits
+};
+static const struct drbg_kat kat532 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat532_t
+};
+
+static const unsigned char kat533_entropyin[] = {
+ 0xb7, 0x1b, 0xd1, 0x4e, 0x15, 0x87, 0xf6, 0x33, 0x4b, 0x7f, 0x94, 0x64,
+ 0x26, 0x16, 0xa3, 0x6a, 0x55, 0xff, 0xe4, 0xa7, 0x5e, 0xea, 0xde, 0x86,
+ 0x4e, 0xa7, 0x05, 0x1e, 0x64, 0x6b, 0xad, 0x52,
+};
+static const unsigned char kat533_nonce[] = {
+ 0xa4, 0x3d, 0xc9, 0x7f, 0x41, 0x1b, 0xe9, 0x7c, 0xd1, 0x8d, 0xbe, 0xcf,
+ 0xce, 0x56, 0x2f, 0x23,
+};
+static const unsigned char kat533_persstr[] = {
+ 0xeb, 0xbd, 0xb8, 0x1e, 0xc0, 0x3a, 0x13, 0xa1, 0x5a, 0x03, 0xdb, 0x56,
+ 0x98, 0xf3, 0x4a, 0xa8, 0xc0, 0x29, 0x38, 0xbf, 0x87, 0x85, 0xf1, 0x3f,
+ 0xde, 0x75, 0xcb, 0xcd, 0x82, 0x3e, 0x61, 0xf7,
+};
+static const unsigned char kat533_addin0[] = {
+ 0x58, 0x17, 0xe3, 0x93, 0x93, 0xe8, 0x8f, 0x09, 0x39, 0xd5, 0xa8, 0xd7,
+ 0x03, 0x83, 0x08, 0x3f, 0xc6, 0x6d, 0x9c, 0x53, 0x3b, 0xae, 0xe6, 0x28,
+ 0x28, 0x2d, 0xf7, 0x80, 0x46, 0xfc, 0xd8, 0xfa,
+};
+static const unsigned char kat533_addin1[] = {
+ 0xf9, 0x67, 0xa6, 0xd7, 0x9c, 0x65, 0x7d, 0x0b, 0xff, 0xd3, 0x34, 0x6f,
+ 0xb2, 0x80, 0x46, 0x91, 0x1b, 0x1f, 0x8c, 0x30, 0x31, 0xcc, 0x6e, 0x22,
+ 0x04, 0xc2, 0xc9, 0xe8, 0x88, 0x43, 0x2f, 0x77,
+};
+static const unsigned char kat533_retbits[] = {
+ 0xe1, 0xba, 0x47, 0xd4, 0x5d, 0x73, 0xba, 0x54, 0xda, 0x50, 0x30, 0x15,
+ 0x98, 0x7d, 0x8e, 0x12, 0x14, 0xc3, 0x46, 0x87, 0xa6, 0xff, 0x78, 0x6a,
+ 0x88, 0x0c, 0x98, 0xe5, 0xe2, 0xe5, 0x59, 0x0e, 0xae, 0x69, 0x09, 0x5a,
+ 0x93, 0x21, 0x6d, 0x12, 0x73, 0x50, 0x4d, 0x94, 0xde, 0xa6, 0x7c, 0x51,
+ 0xf4, 0xa8, 0xa5, 0xd9, 0x7d, 0x02, 0x42, 0x89, 0x0c, 0x39, 0x4b, 0xf7,
+ 0x3e, 0xf5, 0x2d, 0x63,
+};
+static const struct drbg_kat_no_reseed kat533_t = {
+ 7, kat533_entropyin, kat533_nonce, kat533_persstr,
+ kat533_addin0, kat533_addin1, kat533_retbits
+};
+static const struct drbg_kat kat533 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat533_t
+};
+
+static const unsigned char kat534_entropyin[] = {
+ 0x0d, 0x97, 0x0e, 0xa0, 0xa1, 0xe8, 0x9d, 0x36, 0xfb, 0x66, 0xa7, 0x3a,
+ 0xe7, 0xa7, 0xbb, 0x47, 0x60, 0xca, 0x9b, 0x0e, 0x22, 0x96, 0xe2, 0xd2,
+ 0x41, 0x62, 0x9b, 0x99, 0x24, 0x9a, 0xc9, 0xf3,
+};
+static const unsigned char kat534_nonce[] = {
+ 0xc0, 0x30, 0x31, 0xdc, 0x1c, 0xd9, 0xcf, 0x62, 0xc4, 0xd0, 0x3e, 0x2e,
+ 0x37, 0x20, 0x39, 0x1b,
+};
+static const unsigned char kat534_persstr[] = {
+ 0x91, 0x68, 0x2b, 0xe8, 0x19, 0x34, 0xaf, 0xd8, 0x1d, 0xcb, 0x63, 0x8b,
+ 0xa8, 0x88, 0x3a, 0x88, 0x91, 0x3e, 0x32, 0x65, 0xda, 0x1b, 0x92, 0xc8,
+ 0xd9, 0xb3, 0x4a, 0x2b, 0x90, 0x66, 0x24, 0xcd,
+};
+static const unsigned char kat534_addin0[] = {
+ 0xc3, 0xb3, 0x3d, 0xc2, 0xf9, 0x8d, 0xc8, 0xde, 0xdc, 0x22, 0x54, 0xb3,
+ 0x82, 0x65, 0x4c, 0x75, 0x38, 0x1a, 0x4d, 0xf0, 0x71, 0x33, 0x4c, 0xe2,
+ 0x28, 0x60, 0xe9, 0x2c, 0x61, 0x64, 0xf8, 0xcc,
+};
+static const unsigned char kat534_addin1[] = {
+ 0x53, 0xb2, 0xae, 0x27, 0xf9, 0x64, 0xfc, 0x86, 0x2b, 0x39, 0xf4, 0xa1,
+ 0x6d, 0x73, 0xa9, 0x98, 0x0e, 0x81, 0x94, 0x6c, 0xce, 0x5c, 0x2a, 0xe4,
+ 0xa5, 0xef, 0x6a, 0x25, 0xb9, 0x2a, 0x08, 0xaa,
+};
+static const unsigned char kat534_retbits[] = {
+ 0xe3, 0x47, 0x1a, 0xbe, 0xe1, 0x16, 0x7a, 0x57, 0x66, 0x71, 0x32, 0xdd,
+ 0x31, 0x59, 0x0e, 0x95, 0x12, 0x5f, 0x61, 0x95, 0x7e, 0xcd, 0x62, 0x1d,
+ 0xdb, 0xa4, 0x9e, 0xbf, 0xa5, 0x3a, 0x8f, 0x5a, 0xfe, 0xaa, 0x30, 0xac,
+ 0xa1, 0xad, 0xf1, 0x1c, 0xa2, 0x0d, 0xe2, 0xcb, 0x08, 0xf0, 0xdd, 0x43,
+ 0x29, 0xd9, 0x50, 0xd0, 0x53, 0x92, 0x09, 0x26, 0x93, 0x1f, 0x67, 0x28,
+ 0x27, 0x93, 0x1f, 0x8c,
+};
+static const struct drbg_kat_no_reseed kat534_t = {
+ 8, kat534_entropyin, kat534_nonce, kat534_persstr,
+ kat534_addin0, kat534_addin1, kat534_retbits
+};
+static const struct drbg_kat kat534 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat534_t
+};
+
+static const unsigned char kat535_entropyin[] = {
+ 0xbe, 0xd9, 0x60, 0xee, 0x26, 0xeb, 0x33, 0xfd, 0xf4, 0xa6, 0x2c, 0xdf,
+ 0xfd, 0xe8, 0x4e, 0x6d, 0x18, 0x32, 0xc6, 0x91, 0x48, 0xa2, 0xae, 0x5c,
+ 0xbc, 0x9b, 0xa5, 0x03, 0x63, 0x13, 0xc2, 0xd2,
+};
+static const unsigned char kat535_nonce[] = {
+ 0x53, 0xe0, 0x92, 0xe7, 0x08, 0xe8, 0xb8, 0xa4, 0xa0, 0x36, 0xed, 0x6d,
+ 0x0c, 0xd1, 0x28, 0x70,
+};
+static const unsigned char kat535_persstr[] = {
+ 0x08, 0x03, 0xf2, 0x8c, 0x79, 0xd5, 0x3f, 0x05, 0x79, 0x53, 0xdb, 0x4a,
+ 0x1a, 0xb5, 0xa3, 0xca, 0xb5, 0x81, 0xf2, 0xc1, 0x6d, 0x1e, 0x08, 0x3f,
+ 0x29, 0x48, 0xac, 0xd0, 0xfb, 0xf9, 0xbe, 0xec,
+};
+static const unsigned char kat535_addin0[] = {
+ 0x42, 0x9a, 0x33, 0x10, 0xc1, 0xae, 0x67, 0x31, 0xd4, 0x68, 0xef, 0x6f,
+ 0x2b, 0x1c, 0x99, 0x49, 0xbb, 0xfc, 0x8d, 0x36, 0xeb, 0x66, 0xfb, 0xee,
+ 0x0c, 0x86, 0x2e, 0x42, 0x58, 0x6a, 0xac, 0x3f,
+};
+static const unsigned char kat535_addin1[] = {
+ 0xd7, 0xa5, 0xd5, 0x80, 0x04, 0x8d, 0xba, 0x0c, 0xe6, 0x76, 0xb5, 0x04,
+ 0x7a, 0x98, 0x9e, 0xcc, 0xf3, 0xe4, 0x05, 0x2a, 0x60, 0x28, 0xef, 0xff,
+ 0x29, 0xe7, 0xcb, 0x0a, 0x13, 0xab, 0x64, 0xce,
+};
+static const unsigned char kat535_retbits[] = {
+ 0x27, 0x03, 0x84, 0x5c, 0xa0, 0x40, 0xff, 0x03, 0x49, 0xb6, 0x6c, 0x1b,
+ 0xf8, 0x22, 0x6f, 0xf8, 0x9f, 0x27, 0x87, 0x57, 0xba, 0xad, 0xb7, 0x4d,
+ 0x27, 0x74, 0xfd, 0xb5, 0x4d, 0xf0, 0x17, 0x74, 0xf0, 0x4b, 0xbe, 0x9a,
+ 0xcd, 0x6b, 0xc8, 0xe8, 0xa1, 0xf2, 0xd9, 0x7a, 0xeb, 0x89, 0x13, 0x03,
+ 0xa5, 0x33, 0x7b, 0xcd, 0x69, 0xce, 0x4a, 0xfd, 0x4c, 0x6b, 0x62, 0x42,
+ 0x64, 0x49, 0xdd, 0x63,
+};
+static const struct drbg_kat_no_reseed kat535_t = {
+ 9, kat535_entropyin, kat535_nonce, kat535_persstr,
+ kat535_addin0, kat535_addin1, kat535_retbits
+};
+static const struct drbg_kat kat535 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat535_t
+};
+
+static const unsigned char kat536_entropyin[] = {
+ 0x8e, 0x7b, 0x62, 0x75, 0xc4, 0x8f, 0xa6, 0x0a, 0xae, 0x68, 0xbc, 0xd6,
+ 0xae, 0xde, 0xd1, 0x7f, 0xce, 0xcc, 0xe7, 0x12, 0xba, 0x47, 0xa5, 0xda,
+ 0x79, 0xdc, 0x88, 0x83, 0xa2, 0xb2, 0xb4, 0x43,
+};
+static const unsigned char kat536_nonce[] = {
+ 0xc1, 0xaa, 0x1c, 0x23, 0x7e, 0x69, 0x85, 0x3d, 0xcf, 0x44, 0xc7, 0x55,
+ 0x8d, 0xca, 0x07, 0xd8,
+};
+static const unsigned char kat536_persstr[] = {
+ 0xd5, 0x73, 0x7e, 0x7b, 0x1f, 0x4e, 0x53, 0xdd, 0x92, 0x41, 0x51, 0xfd,
+ 0x71, 0xc5, 0x1a, 0x77, 0xe6, 0x55, 0xf5, 0x17, 0x3c, 0xcd, 0xf0, 0xe9,
+ 0x73, 0x51, 0x24, 0x1b, 0x57, 0x0e, 0xa4, 0xf0,
+};
+static const unsigned char kat536_addin0[] = {
+ 0xbb, 0x70, 0xb8, 0xdb, 0x19, 0xd3, 0xc1, 0xab, 0xfd, 0x6d, 0x25, 0x13,
+ 0x65, 0x3f, 0x24, 0x83, 0xbe, 0x43, 0x30, 0x06, 0x7f, 0xf6, 0x6b, 0x8f,
+ 0xb6, 0x2f, 0xc8, 0xe6, 0x72, 0xdf, 0x96, 0x28,
+};
+static const unsigned char kat536_addin1[] = {
+ 0x00, 0x05, 0xe3, 0x1b, 0x93, 0x34, 0x24, 0x2b, 0xeb, 0x2f, 0x3c, 0xa9,
+ 0x88, 0x60, 0x3f, 0x5d, 0xcb, 0xa6, 0x85, 0x57, 0x6e, 0xb7, 0x60, 0x78,
+ 0x1d, 0x9f, 0x47, 0x25, 0x2b, 0xa5, 0xe2, 0x9f,
+};
+static const unsigned char kat536_retbits[] = {
+ 0xe0, 0x30, 0x08, 0x5f, 0x66, 0x79, 0x37, 0xf8, 0x66, 0xe1, 0x3a, 0xd0,
+ 0x85, 0x4f, 0x24, 0x5b, 0x8f, 0x39, 0x2e, 0x07, 0x01, 0x5e, 0x03, 0x71,
+ 0xd5, 0xec, 0x72, 0xb9, 0x27, 0x1f, 0xf9, 0xf0, 0x94, 0x6a, 0x6d, 0x44,
+ 0x69, 0xc7, 0x70, 0x1c, 0x48, 0x5f, 0xa4, 0x9a, 0xd7, 0x9e, 0xf5, 0xdb,
+ 0xd0, 0xb1, 0x01, 0x0d, 0x58, 0xd6, 0xb1, 0x7d, 0xd4, 0x05, 0x4c, 0x13,
+ 0x08, 0x15, 0x00, 0x65,
+};
+static const struct drbg_kat_no_reseed kat536_t = {
+ 10, kat536_entropyin, kat536_nonce, kat536_persstr,
+ kat536_addin0, kat536_addin1, kat536_retbits
+};
+static const struct drbg_kat kat536 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat536_t
+};
+
+static const unsigned char kat537_entropyin[] = {
+ 0x80, 0xdb, 0x28, 0xc5, 0x45, 0x7f, 0x9b, 0x55, 0x72, 0x39, 0xdb, 0x59,
+ 0x51, 0xce, 0x1a, 0x29, 0xa5, 0xb8, 0xe4, 0x85, 0x6c, 0x7f, 0x89, 0xd0,
+ 0x28, 0x58, 0x94, 0x6a, 0x27, 0x8c, 0xb7, 0x05,
+};
+static const unsigned char kat537_nonce[] = {
+ 0x94, 0x14, 0xcf, 0xc5, 0x45, 0x2a, 0xfb, 0xe4, 0xd9, 0x3a, 0xfa, 0xf1,
+ 0x62, 0x60, 0x4b, 0x0e,
+};
+static const unsigned char kat537_persstr[] = {
+ 0x78, 0x81, 0x6b, 0xa6, 0xd7, 0xb6, 0x3d, 0xc2, 0x01, 0xb5, 0x9c, 0x74,
+ 0xb1, 0x1d, 0x29, 0x18, 0xb0, 0x58, 0xe7, 0x10, 0x58, 0x28, 0xcf, 0xff,
+ 0x5d, 0xcc, 0x17, 0x81, 0xcf, 0x1d, 0xfb, 0xe5,
+};
+static const unsigned char kat537_addin0[] = {
+ 0x63, 0x56, 0xdb, 0x39, 0xf5, 0x9e, 0x61, 0xf8, 0x8d, 0xa6, 0x15, 0xa7,
+ 0x9e, 0x62, 0x17, 0x11, 0x3f, 0x79, 0xa1, 0x7c, 0x17, 0xa9, 0x12, 0x34,
+ 0x34, 0x12, 0xef, 0xd0, 0x56, 0x8e, 0xc2, 0x33,
+};
+static const unsigned char kat537_addin1[] = {
+ 0x44, 0x8c, 0x62, 0xe9, 0x72, 0xab, 0xf9, 0xc4, 0x0b, 0xf9, 0x18, 0x5d,
+ 0x42, 0xb3, 0x45, 0xaa, 0x6f, 0xba, 0x9b, 0x98, 0xee, 0xe2, 0x35, 0x3a,
+ 0x5f, 0xd0, 0x15, 0x97, 0x38, 0x7b, 0x60, 0x96,
+};
+static const unsigned char kat537_retbits[] = {
+ 0xe6, 0x60, 0xe4, 0xe2, 0xb2, 0x42, 0x58, 0x71, 0x31, 0x8c, 0x45, 0x3a,
+ 0x6b, 0x31, 0x1d, 0x0b, 0xbb, 0x01, 0x85, 0x2b, 0xde, 0x28, 0x0b, 0x0e,
+ 0x38, 0xd6, 0xc3, 0xd0, 0x7f, 0x4b, 0x8a, 0x9b, 0x3a, 0x4f, 0xd1, 0xa2,
+ 0x6d, 0x26, 0x3b, 0xb7, 0x57, 0x44, 0x7a, 0xca, 0x15, 0x30, 0xa0, 0x41,
+ 0xc1, 0x27, 0xa7, 0x7e, 0xe2, 0xe5, 0xed, 0x83, 0x25, 0x9f, 0x64, 0x62,
+ 0xe1, 0xdb, 0xef, 0x6d,
+};
+static const struct drbg_kat_no_reseed kat537_t = {
+ 11, kat537_entropyin, kat537_nonce, kat537_persstr,
+ kat537_addin0, kat537_addin1, kat537_retbits
+};
+static const struct drbg_kat kat537 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat537_t
+};
+
+static const unsigned char kat538_entropyin[] = {
+ 0xac, 0xed, 0xba, 0x21, 0x5c, 0x39, 0x0b, 0xab, 0xcf, 0x0f, 0x1d, 0x46,
+ 0x19, 0x3c, 0x18, 0x9e, 0x15, 0xc5, 0x80, 0xc1, 0xbf, 0x49, 0x09, 0x65,
+ 0xbd, 0xee, 0x96, 0x3d, 0x38, 0xfe, 0x97, 0x13,
+};
+static const unsigned char kat538_nonce[] = {
+ 0xbb, 0xa7, 0x79, 0x9f, 0x72, 0x41, 0xe1, 0x26, 0x78, 0x6d, 0x53, 0x34,
+ 0x16, 0x86, 0x3a, 0x33,
+};
+static const unsigned char kat538_persstr[] = {
+ 0x7b, 0x1e, 0x05, 0x7e, 0xe5, 0x2c, 0xa0, 0xd4, 0x15, 0x3c, 0x1c, 0xe6,
+ 0x48, 0x28, 0xc8, 0x70, 0x52, 0x30, 0xd1, 0x9f, 0x90, 0x0d, 0x7a, 0x77,
+ 0x1a, 0xa7, 0x71, 0x82, 0xfc, 0xc7, 0x88, 0x07,
+};
+static const unsigned char kat538_addin0[] = {
+ 0x6c, 0xd1, 0x68, 0x49, 0x88, 0xd7, 0x0d, 0x56, 0x9b, 0x0a, 0xf5, 0x58,
+ 0x5f, 0xb9, 0xb8, 0xba, 0x69, 0x8b, 0x59, 0x9d, 0xc4, 0xa0, 0xbd, 0x7b,
+ 0x21, 0x9c, 0x2e, 0x92, 0x01, 0x4a, 0x1e, 0xf4,
+};
+static const unsigned char kat538_addin1[] = {
+ 0x85, 0x7a, 0x8b, 0x64, 0xa8, 0x20, 0xa2, 0x1b, 0xc4, 0x9a, 0x16, 0x3f,
+ 0x72, 0x17, 0x5f, 0xda, 0x94, 0xa2, 0x87, 0x82, 0x87, 0x86, 0x6c, 0xde,
+ 0x86, 0x36, 0xd4, 0x6f, 0xba, 0xd9, 0xde, 0x33,
+};
+static const unsigned char kat538_retbits[] = {
+ 0xa3, 0x21, 0xe4, 0x2e, 0xab, 0x68, 0x41, 0x50, 0xfe, 0x55, 0xdb, 0x9e,
+ 0x1f, 0x4e, 0xfc, 0x9a, 0xb6, 0xbc, 0x94, 0xad, 0xfd, 0x78, 0xb8, 0x7a,
+ 0x8d, 0x58, 0xeb, 0xd1, 0x1d, 0x20, 0xab, 0x3c, 0xae, 0x9b, 0x0e, 0x1b,
+ 0xdb, 0x31, 0xf1, 0xec, 0x1c, 0x1d, 0x85, 0xc1, 0xf0, 0x71, 0xac, 0xe6,
+ 0x39, 0xc0, 0x53, 0xa0, 0x68, 0x2a, 0x07, 0x71, 0x47, 0x31, 0x45, 0x06,
+ 0xc0, 0x7b, 0xda, 0xad,
+};
+static const struct drbg_kat_no_reseed kat538_t = {
+ 12, kat538_entropyin, kat538_nonce, kat538_persstr,
+ kat538_addin0, kat538_addin1, kat538_retbits
+};
+static const struct drbg_kat kat538 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat538_t
+};
+
+static const unsigned char kat539_entropyin[] = {
+ 0x5d, 0xce, 0xd2, 0xaf, 0xdf, 0x72, 0xd2, 0x2d, 0x2b, 0x42, 0x80, 0xe1,
+ 0x81, 0x18, 0x6e, 0xb3, 0xfc, 0xd5, 0x5c, 0xbe, 0xc0, 0xd4, 0xa0, 0x26,
+ 0x93, 0x62, 0x62, 0xbd, 0x0f, 0x7d, 0xf6, 0x36,
+};
+static const unsigned char kat539_nonce[] = {
+ 0x07, 0x6c, 0xde, 0x76, 0x2a, 0xc3, 0x9b, 0x18, 0xe4, 0x48, 0x82, 0x6e,
+ 0xdc, 0xea, 0x42, 0x9c,
+};
+static const unsigned char kat539_persstr[] = {
+ 0xef, 0x7d, 0xb5, 0xdd, 0x64, 0x02, 0x8a, 0x67, 0x45, 0xbf, 0xe0, 0xe5,
+ 0x7c, 0x83, 0x05, 0xc4, 0x5e, 0xc2, 0x44, 0x38, 0xd9, 0xa6, 0x53, 0x71,
+ 0xb7, 0xd9, 0x8c, 0x93, 0xab, 0x73, 0x20, 0xcc,
+};
+static const unsigned char kat539_addin0[] = {
+ 0x64, 0x3b, 0xe9, 0x51, 0x2f, 0xb8, 0x23, 0x5a, 0x12, 0xdb, 0x98, 0x11,
+ 0x11, 0x07, 0x9b, 0x5c, 0x45, 0x36, 0x99, 0xd4, 0x8f, 0x0b, 0x1b, 0xc0,
+ 0x0d, 0x64, 0x3c, 0xe0, 0xe0, 0x17, 0xdd, 0x04,
+};
+static const unsigned char kat539_addin1[] = {
+ 0xb8, 0x53, 0xe7, 0x9d, 0xdb, 0x46, 0xb2, 0x59, 0x15, 0x89, 0xfe, 0xe4,
+ 0x3d, 0x3d, 0xd7, 0xad, 0x9e, 0xa1, 0x69, 0x33, 0x2f, 0x83, 0xd4, 0x46,
+ 0x44, 0xc3, 0x0b, 0x0c, 0xf5, 0xc9, 0x79, 0x2d,
+};
+static const unsigned char kat539_retbits[] = {
+ 0x48, 0x78, 0x78, 0xdc, 0x78, 0xa9, 0xe8, 0x6f, 0x5f, 0xaa, 0x7f, 0x77,
+ 0x99, 0x76, 0xf3, 0xf0, 0xc2, 0x07, 0xf8, 0xe9, 0xcf, 0xd3, 0x1b, 0xea,
+ 0x54, 0xbf, 0x12, 0x1c, 0x41, 0x22, 0x7c, 0x86, 0xd7, 0x25, 0x64, 0xc0,
+ 0xa1, 0xb5, 0x85, 0xe6, 0xf2, 0x84, 0xaa, 0x73, 0x2b, 0x5d, 0xbe, 0xac,
+ 0x78, 0xab, 0x5c, 0xe1, 0x72, 0xb2, 0x86, 0xf6, 0xdd, 0x2d, 0x7b, 0x97,
+ 0x63, 0xe7, 0x67, 0x25,
+};
+static const struct drbg_kat_no_reseed kat539_t = {
+ 13, kat539_entropyin, kat539_nonce, kat539_persstr,
+ kat539_addin0, kat539_addin1, kat539_retbits
+};
+static const struct drbg_kat kat539 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat539_t
+};
+
+static const unsigned char kat540_entropyin[] = {
+ 0x4d, 0x6d, 0x0d, 0x6c, 0x03, 0x55, 0x28, 0x80, 0xc0, 0xd0, 0xc5, 0x67,
+ 0xf1, 0x43, 0xe2, 0x97, 0xf7, 0x7d, 0x9a, 0x5e, 0xcb, 0x54, 0x7c, 0x28,
+ 0xab, 0xcf, 0xf1, 0x71, 0x5b, 0x06, 0x10, 0x84,
+};
+static const unsigned char kat540_nonce[] = {
+ 0x1b, 0x47, 0x76, 0x61, 0x13, 0x28, 0x34, 0xab, 0xcd, 0x71, 0x3b, 0xe2,
+ 0x27, 0x97, 0x88, 0x20,
+};
+static const unsigned char kat540_persstr[] = {
+ 0x1c, 0x58, 0x44, 0x91, 0xac, 0xb3, 0xf1, 0xa6, 0x2e, 0xcf, 0x84, 0x12,
+ 0x0e, 0x4c, 0x6a, 0xdb, 0x67, 0x6c, 0x23, 0x3a, 0x16, 0x84, 0xf2, 0xd1,
+ 0xb8, 0xcd, 0x54, 0x2a, 0x62, 0x9f, 0x6c, 0x84,
+};
+static const unsigned char kat540_addin0[] = {
+ 0xf2, 0x4b, 0x84, 0x67, 0xae, 0x57, 0x66, 0x9e, 0x4a, 0xd6, 0x75, 0x88,
+ 0xa4, 0x1f, 0x95, 0x12, 0xfd, 0x48, 0x97, 0x66, 0x42, 0xdb, 0x17, 0x37,
+ 0x12, 0x20, 0x64, 0xa1, 0xc1, 0x23, 0x44, 0x48,
+};
+static const unsigned char kat540_addin1[] = {
+ 0x7a, 0x6f, 0x1a, 0x19, 0x11, 0x17, 0xc2, 0xdc, 0xd5, 0xc9, 0xc1, 0x75,
+ 0xc8, 0x27, 0xd8, 0xda, 0x04, 0xe3, 0x80, 0x2a, 0xe8, 0x35, 0xb2, 0x51,
+ 0x82, 0xfa, 0x83, 0xbf, 0x91, 0xdc, 0x68, 0x71,
+};
+static const unsigned char kat540_retbits[] = {
+ 0x1d, 0xce, 0xe0, 0xaf, 0xbf, 0xfb, 0x8a, 0x0c, 0xf4, 0x00, 0x2c, 0xfc,
+ 0x26, 0x2c, 0x4f, 0xe0, 0x58, 0xd1, 0x3e, 0x35, 0xc7, 0x4c, 0x70, 0xb0,
+ 0x10, 0x47, 0x6c, 0x71, 0x53, 0x31, 0x3d, 0x71, 0x45, 0xdf, 0x88, 0x9c,
+ 0x2f, 0x99, 0x1f, 0x8f, 0x97, 0x8f, 0x0d, 0x73, 0xc9, 0x5e, 0x86, 0x7c,
+ 0x4d, 0x2d, 0xa4, 0xf3, 0xf4, 0xd9, 0x32, 0xd0, 0xb9, 0xa2, 0x3c, 0x78,
+ 0xe0, 0xf1, 0x12, 0xa5,
+};
+static const struct drbg_kat_no_reseed kat540_t = {
+ 14, kat540_entropyin, kat540_nonce, kat540_persstr,
+ kat540_addin0, kat540_addin1, kat540_retbits
+};
+static const struct drbg_kat kat540 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat540_t
+};
+
+static const unsigned char kat541_entropyin[] = {
+ 0x8b, 0x0b, 0xcb, 0x3f, 0x93, 0x21, 0x70, 0x41, 0x67, 0x39, 0xea, 0x42,
+ 0xe7, 0xdc, 0xdc, 0x6f, 0xa9, 0x60, 0x64, 0x5b, 0xc0, 0x18, 0x82, 0x01,
+ 0x34, 0xf7, 0x14, 0xb3, 0xc6, 0x91, 0x2b, 0x56,
+};
+static const unsigned char kat541_nonce[] = {
+ 0xba, 0xc0, 0xfd, 0xc0, 0xc4, 0x17, 0xaa, 0x26, 0x9b, 0xbd, 0xea, 0x77,
+ 0xe9, 0x28, 0xf9, 0xf8,
+};
+static const unsigned char kat541_persstr[] = {0};
+static const unsigned char kat541_addin0[] = {0};
+static const unsigned char kat541_addin1[] = {0};
+static const unsigned char kat541_retbits[] = {
+ 0xd9, 0xc4, 0xfd, 0x81, 0xf6, 0x62, 0x1a, 0x8c, 0xf0, 0x6d, 0x61, 0x2e,
+ 0x9a, 0x84, 0xb8, 0x0f, 0xa1, 0x3d, 0x09, 0x8d, 0xce, 0xaf, 0x2c, 0x08,
+ 0x3d, 0xc8, 0x1c, 0xd8, 0x0c, 0xae, 0xdd, 0x10, 0x5c, 0x7f, 0x27, 0x89,
+ 0x96, 0x3a, 0x16, 0x7d, 0x72, 0xf7, 0x6e, 0x81, 0x17, 0x80, 0x01, 0xfd,
+ 0x93, 0xde, 0x46, 0x23, 0xc2, 0x60, 0xfe, 0x9e, 0xeb, 0xce, 0xd8, 0x9f,
+ 0x7b, 0x4b, 0x04, 0x7a,
+};
+static const struct drbg_kat_no_reseed kat541_t = {
+ 0, kat541_entropyin, kat541_nonce, kat541_persstr,
+ kat541_addin0, kat541_addin1, kat541_retbits
+};
+static const struct drbg_kat kat541 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat541_t
+};
+
+static const unsigned char kat542_entropyin[] = {
+ 0x67, 0xb6, 0xe8, 0x4d, 0x5a, 0x56, 0x0a, 0xf4, 0xd9, 0x27, 0x45, 0x85,
+ 0x3d, 0xa8, 0x3c, 0x4e, 0x8d, 0xcf, 0xf4, 0x69, 0x86, 0x9e, 0xca, 0x69,
+ 0x98, 0x10, 0x55, 0xba, 0x4c, 0x6f, 0x84, 0xc3,
+};
+static const unsigned char kat542_nonce[] = {
+ 0xaa, 0xbc, 0x8d, 0x3a, 0xb5, 0x93, 0xdb, 0xea, 0x35, 0xfa, 0xb1, 0xff,
+ 0x6c, 0xdc, 0x26, 0xfb,
+};
+static const unsigned char kat542_persstr[] = {0};
+static const unsigned char kat542_addin0[] = {0};
+static const unsigned char kat542_addin1[] = {0};
+static const unsigned char kat542_retbits[] = {
+ 0xe7, 0x4a, 0xd6, 0x22, 0xa7, 0x12, 0x98, 0x98, 0x3a, 0xa2, 0x10, 0x66,
+ 0xd7, 0x88, 0xfd, 0xcd, 0x6a, 0xfd, 0xc9, 0xaa, 0xf7, 0xfc, 0x8a, 0x55,
+ 0x53, 0x4e, 0xc0, 0x91, 0x7d, 0x68, 0x40, 0xd1, 0x5c, 0x1b, 0xa2, 0xf0,
+ 0xa7, 0x03, 0xf0, 0x4b, 0x14, 0x8b, 0xd7, 0xbc, 0x49, 0x83, 0xb2, 0x79,
+ 0xa4, 0x14, 0xe3, 0x93, 0x7c, 0x17, 0xa8, 0x18, 0x1e, 0x64, 0x4e, 0xa0,
+ 0x66, 0x2d, 0xbe, 0xbc,
+};
+static const struct drbg_kat_no_reseed kat542_t = {
+ 1, kat542_entropyin, kat542_nonce, kat542_persstr,
+ kat542_addin0, kat542_addin1, kat542_retbits
+};
+static const struct drbg_kat kat542 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat542_t
+};
+
+static const unsigned char kat543_entropyin[] = {
+ 0xbe, 0x57, 0xcf, 0x16, 0xb2, 0x64, 0x81, 0xaa, 0xb3, 0x16, 0x4b, 0x80,
+ 0x60, 0xc2, 0x9f, 0x17, 0x98, 0x27, 0x11, 0xb4, 0x51, 0x18, 0x8d, 0xea,
+ 0xcd, 0xc9, 0x80, 0x5e, 0xf7, 0xe0, 0x16, 0xbe,
+};
+static const unsigned char kat543_nonce[] = {
+ 0x85, 0x48, 0x4d, 0xaa, 0x20, 0xb8, 0x60, 0x25, 0x07, 0xb3, 0xd7, 0x68,
+ 0x50, 0x93, 0x9e, 0x59,
+};
+static const unsigned char kat543_persstr[] = {0};
+static const unsigned char kat543_addin0[] = {0};
+static const unsigned char kat543_addin1[] = {0};
+static const unsigned char kat543_retbits[] = {
+ 0x4b, 0x95, 0x46, 0x92, 0x16, 0x03, 0x7d, 0xe3, 0xaf, 0xb2, 0x79, 0x0d,
+ 0xd1, 0x52, 0x34, 0x73, 0xcb, 0x8d, 0xbd, 0xf7, 0x23, 0x0b, 0x0f, 0x85,
+ 0x43, 0xf7, 0x38, 0xc6, 0xba, 0xa0, 0xa1, 0xa4, 0x6d, 0x13, 0x36, 0x6f,
+ 0xe3, 0x16, 0x4f, 0x24, 0x56, 0x76, 0xdf, 0xe1, 0xaf, 0x02, 0x14, 0xc5,
+ 0x58, 0x1e, 0x82, 0x79, 0x0f, 0xde, 0x30, 0xb0, 0x20, 0x3e, 0x45, 0x54,
+ 0x80, 0x4b, 0x98, 0x26,
+};
+static const struct drbg_kat_no_reseed kat543_t = {
+ 2, kat543_entropyin, kat543_nonce, kat543_persstr,
+ kat543_addin0, kat543_addin1, kat543_retbits
+};
+static const struct drbg_kat kat543 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat543_t
+};
+
+static const unsigned char kat544_entropyin[] = {
+ 0x3c, 0xbb, 0xdc, 0x1b, 0xbb, 0x6f, 0x00, 0x58, 0x97, 0xd6, 0x53, 0x84,
+ 0xed, 0x79, 0x79, 0xdf, 0x6d, 0x71, 0x08, 0x55, 0x9c, 0x3e, 0x76, 0x19,
+ 0xd6, 0xdf, 0xc8, 0xda, 0xd8, 0xe6, 0x54, 0x9f,
+};
+static const unsigned char kat544_nonce[] = {
+ 0x7c, 0x9f, 0x78, 0xb7, 0xd1, 0x5e, 0xa7, 0x32, 0x44, 0x12, 0x3f, 0xfd,
+ 0xb4, 0x48, 0x9f, 0x0d,
+};
+static const unsigned char kat544_persstr[] = {0};
+static const unsigned char kat544_addin0[] = {0};
+static const unsigned char kat544_addin1[] = {0};
+static const unsigned char kat544_retbits[] = {
+ 0xc2, 0x1a, 0xf2, 0x65, 0x18, 0xc9, 0x7d, 0x67, 0x63, 0xb7, 0x53, 0x93,
+ 0x9a, 0xb0, 0xdf, 0x09, 0xcd, 0x2d, 0x59, 0xfa, 0x10, 0x90, 0x93, 0x3e,
+ 0x26, 0x41, 0xc9, 0x43, 0x9f, 0x79, 0xfb, 0x3b, 0x90, 0x22, 0xfa, 0x6e,
+ 0x07, 0xc9, 0x95, 0x0c, 0xe9, 0xea, 0xdc, 0x33, 0x27, 0xdc, 0x49, 0xf9,
+ 0x1d, 0xc8, 0x00, 0x6c, 0x7d, 0xa5, 0x2b, 0x02, 0x1e, 0x5a, 0xe8, 0x35,
+ 0x82, 0xf3, 0x04, 0x75,
+};
+static const struct drbg_kat_no_reseed kat544_t = {
+ 3, kat544_entropyin, kat544_nonce, kat544_persstr,
+ kat544_addin0, kat544_addin1, kat544_retbits
+};
+static const struct drbg_kat kat544 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat544_t
+};
+
+static const unsigned char kat545_entropyin[] = {
+ 0x06, 0x31, 0x1c, 0xc8, 0x1e, 0x75, 0xb1, 0x22, 0x69, 0xbc, 0x67, 0xed,
+ 0x0e, 0x13, 0x13, 0x48, 0x0f, 0x32, 0x4b, 0x75, 0x2a, 0x1f, 0xd7, 0x83,
+ 0xce, 0x09, 0x77, 0x0d, 0x1d, 0x40, 0x00, 0xfb,
+};
+static const unsigned char kat545_nonce[] = {
+ 0xae, 0x2c, 0xc5, 0x17, 0xb2, 0x15, 0x85, 0x5b, 0x1e, 0x91, 0xd1, 0xf7,
+ 0x94, 0x2d, 0x93, 0x1e,
+};
+static const unsigned char kat545_persstr[] = {0};
+static const unsigned char kat545_addin0[] = {0};
+static const unsigned char kat545_addin1[] = {0};
+static const unsigned char kat545_retbits[] = {
+ 0x5e, 0xd9, 0x14, 0x43, 0x8a, 0x62, 0xcc, 0x4d, 0x46, 0x33, 0x67, 0xb1,
+ 0x7c, 0x89, 0x60, 0x42, 0x90, 0xe9, 0x72, 0x35, 0x22, 0xef, 0x80, 0x1e,
+ 0xad, 0x51, 0x5c, 0xa3, 0x52, 0xe0, 0x99, 0xd6, 0xfa, 0x13, 0x62, 0xde,
+ 0xd3, 0x2a, 0x3f, 0xa3, 0x6b, 0x24, 0x53, 0x42, 0x2f, 0x11, 0x4f, 0x8c,
+ 0xf2, 0x46, 0xc1, 0x8c, 0x8c, 0xdd, 0x78, 0x6a, 0xa2, 0x43, 0x80, 0x1c,
+ 0xae, 0xf2, 0xb2, 0xed,
+};
+static const struct drbg_kat_no_reseed kat545_t = {
+ 4, kat545_entropyin, kat545_nonce, kat545_persstr,
+ kat545_addin0, kat545_addin1, kat545_retbits
+};
+static const struct drbg_kat kat545 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat545_t
+};
+
+static const unsigned char kat546_entropyin[] = {
+ 0x59, 0x27, 0xad, 0x80, 0xb1, 0x2b, 0x86, 0x26, 0x9e, 0xb3, 0x1e, 0x85,
+ 0xc3, 0xb1, 0x22, 0xa7, 0xb8, 0x2d, 0x8e, 0xd5, 0x78, 0x22, 0x76, 0x34,
+ 0x4b, 0xe3, 0xf5, 0x2e, 0xdf, 0x62, 0x80, 0xdb,
+};
+static const unsigned char kat546_nonce[] = {
+ 0xe6, 0x74, 0x0d, 0x37, 0x13, 0xda, 0x61, 0x7b, 0xaa, 0x5a, 0x5c, 0xd5,
+ 0xb4, 0xd6, 0xbe, 0xd8,
+};
+static const unsigned char kat546_persstr[] = {0};
+static const unsigned char kat546_addin0[] = {0};
+static const unsigned char kat546_addin1[] = {0};
+static const unsigned char kat546_retbits[] = {
+ 0x52, 0xf3, 0x10, 0xec, 0x9a, 0xdc, 0xf4, 0x91, 0xde, 0x58, 0xdc, 0x52,
+ 0x59, 0x5d, 0xdb, 0xb1, 0xfe, 0xe9, 0x66, 0xe6, 0x9e, 0x60, 0xba, 0x0e,
+ 0x65, 0xbe, 0xd7, 0xfb, 0xf8, 0xdc, 0x3d, 0x58, 0x14, 0x85, 0x38, 0xa1,
+ 0xb4, 0x56, 0xae, 0xce, 0x1b, 0x41, 0x47, 0x9d, 0xea, 0x06, 0xe1, 0x01,
+ 0x5b, 0x7b, 0x10, 0xde, 0xb6, 0x6c, 0x97, 0x74, 0x02, 0x9f, 0x0b, 0x52,
+ 0xce, 0xb1, 0xf5, 0x8a,
+};
+static const struct drbg_kat_no_reseed kat546_t = {
+ 5, kat546_entropyin, kat546_nonce, kat546_persstr,
+ kat546_addin0, kat546_addin1, kat546_retbits
+};
+static const struct drbg_kat kat546 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat546_t
+};
+
+static const unsigned char kat547_entropyin[] = {
+ 0x6e, 0xc1, 0x35, 0x79, 0x2f, 0x27, 0x02, 0x67, 0x72, 0x73, 0x9e, 0x89,
+ 0x3a, 0xc5, 0x08, 0x52, 0x20, 0x35, 0x1f, 0x59, 0x05, 0x75, 0xfe, 0xb9,
+ 0xa3, 0xd3, 0x79, 0x2a, 0xc9, 0x13, 0xd8, 0xa4,
+};
+static const unsigned char kat547_nonce[] = {
+ 0xa0, 0x96, 0x9c, 0xdb, 0x40, 0x59, 0x14, 0x36, 0xcb, 0x63, 0x7f, 0xe0,
+ 0x93, 0x15, 0x6f, 0x16,
+};
+static const unsigned char kat547_persstr[] = {0};
+static const unsigned char kat547_addin0[] = {0};
+static const unsigned char kat547_addin1[] = {0};
+static const unsigned char kat547_retbits[] = {
+ 0x08, 0xd2, 0x73, 0x57, 0x18, 0xf9, 0xc8, 0x82, 0x32, 0x2f, 0xde, 0xf7,
+ 0xb1, 0x21, 0x33, 0x9d, 0x5a, 0x7f, 0x59, 0xb0, 0x74, 0xd3, 0xc6, 0xf8,
+ 0xb8, 0xfc, 0x51, 0x7a, 0x07, 0x2d, 0x35, 0x6b, 0xb7, 0x02, 0xd9, 0x0d,
+ 0xbc, 0xec, 0x40, 0xe0, 0x1c, 0x4d, 0xdb, 0x62, 0x81, 0x38, 0x7e, 0x73,
+ 0x1b, 0x2b, 0xd0, 0xe7, 0x2a, 0x61, 0x64, 0xef, 0x4a, 0x72, 0x1d, 0xad,
+ 0x01, 0x02, 0x3b, 0x2a,
+};
+static const struct drbg_kat_no_reseed kat547_t = {
+ 6, kat547_entropyin, kat547_nonce, kat547_persstr,
+ kat547_addin0, kat547_addin1, kat547_retbits
+};
+static const struct drbg_kat kat547 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat547_t
+};
+
+static const unsigned char kat548_entropyin[] = {
+ 0xe9, 0xc4, 0x8b, 0xe6, 0xd6, 0x5c, 0x8d, 0xd3, 0xbb, 0x37, 0x22, 0x31,
+ 0xdf, 0xa8, 0xa7, 0x07, 0x8d, 0xf5, 0x01, 0xa9, 0x23, 0x8d, 0x63, 0x11,
+ 0x61, 0xce, 0xe3, 0xf0, 0xaf, 0xa9, 0x78, 0x89,
+};
+static const unsigned char kat548_nonce[] = {
+ 0x1d, 0x32, 0xb5, 0xa3, 0x7b, 0xe3, 0xad, 0x60, 0x96, 0xe8, 0x0c, 0x7f,
+ 0xab, 0xf8, 0xa7, 0x9b,
+};
+static const unsigned char kat548_persstr[] = {0};
+static const unsigned char kat548_addin0[] = {0};
+static const unsigned char kat548_addin1[] = {0};
+static const unsigned char kat548_retbits[] = {
+ 0x02, 0x4f, 0xa9, 0x5b, 0x3c, 0xef, 0x85, 0xdd, 0x9a, 0x22, 0x7c, 0x93,
+ 0xa8, 0x22, 0x3b, 0x1d, 0x02, 0xd5, 0x7f, 0xd5, 0x06, 0xed, 0x42, 0xa1,
+ 0x03, 0xf7, 0xee, 0x0d, 0x92, 0x05, 0xca, 0xd9, 0xfc, 0x51, 0xbc, 0xbd,
+ 0xb7, 0xc4, 0x01, 0xd1, 0x5f, 0xcb, 0x06, 0xe4, 0xa5, 0xed, 0xa1, 0x75,
+ 0x36, 0xfe, 0x9e, 0x93, 0x81, 0x2e, 0xb9, 0x9a, 0x87, 0x9b, 0x91, 0x06,
+ 0xca, 0x0b, 0x6d, 0x8d,
+};
+static const struct drbg_kat_no_reseed kat548_t = {
+ 7, kat548_entropyin, kat548_nonce, kat548_persstr,
+ kat548_addin0, kat548_addin1, kat548_retbits
+};
+static const struct drbg_kat kat548 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat548_t
+};
+
+static const unsigned char kat549_entropyin[] = {
+ 0x6f, 0x37, 0xbb, 0x62, 0xe2, 0xb3, 0x01, 0xde, 0x8f, 0xf6, 0xc5, 0xa8,
+ 0x0a, 0xd8, 0x63, 0x4a, 0xc7, 0x18, 0x73, 0x1b, 0xa7, 0x89, 0xb2, 0x47,
+ 0xc3, 0x50, 0x72, 0x16, 0xf6, 0x4b, 0xae, 0x42,
+};
+static const unsigned char kat549_nonce[] = {
+ 0x41, 0xe5, 0x14, 0x98, 0x0d, 0x2c, 0x79, 0x57, 0x25, 0x84, 0xd0, 0xe6,
+ 0x0f, 0x20, 0x2c, 0x67,
+};
+static const unsigned char kat549_persstr[] = {0};
+static const unsigned char kat549_addin0[] = {0};
+static const unsigned char kat549_addin1[] = {0};
+static const unsigned char kat549_retbits[] = {
+ 0xc1, 0xad, 0x07, 0x4f, 0xb5, 0x74, 0x8f, 0x09, 0xa3, 0x4b, 0x8f, 0x8b,
+ 0x8b, 0x15, 0x78, 0x9d, 0x26, 0xa6, 0xaf, 0xf4, 0x71, 0x40, 0x95, 0xc5,
+ 0x4f, 0x62, 0x61, 0x1d, 0x88, 0xee, 0x2a, 0x45, 0xa4, 0xac, 0x11, 0x10,
+ 0xa3, 0xe4, 0xec, 0x9d, 0x59, 0xba, 0x85, 0xec, 0x1d, 0x80, 0xda, 0xac,
+ 0xdd, 0xae, 0x3e, 0xa5, 0x8f, 0x95, 0x39, 0x21, 0x9a, 0xfa, 0xf5, 0x7f,
+ 0xe9, 0x53, 0x53, 0x6e,
+};
+static const struct drbg_kat_no_reseed kat549_t = {
+ 8, kat549_entropyin, kat549_nonce, kat549_persstr,
+ kat549_addin0, kat549_addin1, kat549_retbits
+};
+static const struct drbg_kat kat549 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat549_t
+};
+
+static const unsigned char kat550_entropyin[] = {
+ 0x54, 0x90, 0x2f, 0x1c, 0xe7, 0x88, 0xfd, 0xdb, 0x8d, 0x81, 0x5a, 0x80,
+ 0xe5, 0xb0, 0x2d, 0xa3, 0x6a, 0xe0, 0x9f, 0xe2, 0xce, 0xcb, 0x6c, 0xad,
+ 0x76, 0x6b, 0x75, 0x72, 0x38, 0xa0, 0x95, 0x46,
+};
+static const unsigned char kat550_nonce[] = {
+ 0x52, 0xfc, 0x08, 0x26, 0x5f, 0x84, 0xbb, 0x3b, 0x2f, 0x5d, 0xab, 0x01,
+ 0xeb, 0x8a, 0xde, 0x3c,
+};
+static const unsigned char kat550_persstr[] = {0};
+static const unsigned char kat550_addin0[] = {0};
+static const unsigned char kat550_addin1[] = {0};
+static const unsigned char kat550_retbits[] = {
+ 0x0d, 0x11, 0x4d, 0x27, 0xd1, 0xc4, 0xae, 0x86, 0x18, 0x6c, 0x31, 0x3e,
+ 0x4f, 0x1b, 0xfb, 0x00, 0x2d, 0xe3, 0xf2, 0xa8, 0x27, 0xb7, 0x15, 0x39,
+ 0x41, 0xf9, 0x0f, 0x99, 0x4b, 0x56, 0xc8, 0xc2, 0x66, 0x81, 0x6c, 0xc6,
+ 0x9e, 0x10, 0x72, 0xa2, 0xb3, 0xbe, 0x19, 0xc2, 0x9f, 0x80, 0xab, 0x3d,
+ 0x03, 0x9e, 0xd5, 0x72, 0x2f, 0xed, 0xcc, 0x01, 0x6f, 0xa8, 0x2b, 0x39,
+ 0x61, 0x78, 0x28, 0x58,
+};
+static const struct drbg_kat_no_reseed kat550_t = {
+ 9, kat550_entropyin, kat550_nonce, kat550_persstr,
+ kat550_addin0, kat550_addin1, kat550_retbits
+};
+static const struct drbg_kat kat550 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat550_t
+};
+
+static const unsigned char kat551_entropyin[] = {
+ 0xfe, 0x55, 0xe2, 0xf9, 0x6b, 0x16, 0xd2, 0xdd, 0x91, 0x5c, 0xa1, 0x1e,
+ 0x25, 0x04, 0xd7, 0x20, 0xf1, 0xaa, 0x19, 0x18, 0x63, 0x1c, 0x47, 0x2c,
+ 0xb0, 0xb4, 0x49, 0x9b, 0x7d, 0x88, 0x6b, 0x56,
+};
+static const unsigned char kat551_nonce[] = {
+ 0x85, 0x30, 0xfc, 0x3e, 0xba, 0x5a, 0x01, 0xb7, 0x63, 0x08, 0x9e, 0x80,
+ 0x43, 0xdf, 0xdf, 0x79,
+};
+static const unsigned char kat551_persstr[] = {0};
+static const unsigned char kat551_addin0[] = {0};
+static const unsigned char kat551_addin1[] = {0};
+static const unsigned char kat551_retbits[] = {
+ 0xbe, 0x3e, 0x72, 0xb3, 0xaa, 0x0b, 0x07, 0xd0, 0x75, 0x66, 0x45, 0xa5,
+ 0xf5, 0xa7, 0x4a, 0xa6, 0xa0, 0x15, 0xb7, 0xce, 0xa6, 0x85, 0x81, 0xfc,
+ 0x8e, 0xd7, 0x62, 0x66, 0x0d, 0x9e, 0x54, 0xa7, 0x81, 0x0e, 0x71, 0x2d,
+ 0x81, 0x98, 0x8e, 0xa7, 0x06, 0xad, 0x2b, 0x93, 0x8e, 0x33, 0x65, 0x1a,
+ 0x3e, 0x8a, 0x67, 0x55, 0xd5, 0x92, 0xf5, 0x21, 0x7f, 0xf2, 0xc9, 0xea,
+ 0x8f, 0x41, 0xa5, 0xc4,
+};
+static const struct drbg_kat_no_reseed kat551_t = {
+ 10, kat551_entropyin, kat551_nonce, kat551_persstr,
+ kat551_addin0, kat551_addin1, kat551_retbits
+};
+static const struct drbg_kat kat551 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat551_t
+};
+
+static const unsigned char kat552_entropyin[] = {
+ 0xf5, 0xfc, 0x14, 0x97, 0x1b, 0x96, 0x6a, 0x4f, 0x95, 0xbb, 0x13, 0xd5,
+ 0x5a, 0x68, 0x2b, 0xfd, 0xc7, 0xda, 0x7f, 0x26, 0xc9, 0x43, 0xdb, 0x40,
+ 0x1a, 0x17, 0x9f, 0x23, 0xf4, 0x7e, 0xc3, 0xbe,
+};
+static const unsigned char kat552_nonce[] = {
+ 0xf0, 0x51, 0xee, 0xba, 0xbc, 0xe3, 0x59, 0x90, 0x21, 0xc3, 0x64, 0x81,
+ 0x1b, 0x11, 0xf2, 0x8b,
+};
+static const unsigned char kat552_persstr[] = {0};
+static const unsigned char kat552_addin0[] = {0};
+static const unsigned char kat552_addin1[] = {0};
+static const unsigned char kat552_retbits[] = {
+ 0x9e, 0x18, 0x4c, 0x66, 0x83, 0x4d, 0x73, 0xb4, 0x61, 0x0e, 0x53, 0x62,
+ 0xcd, 0xf9, 0x08, 0xa5, 0xf8, 0x49, 0x39, 0xec, 0xf0, 0x1a, 0x58, 0xeb,
+ 0xe6, 0xc2, 0xdc, 0x50, 0xca, 0x0c, 0x24, 0xbe, 0xd9, 0x94, 0xa8, 0x2e,
+ 0xec, 0x99, 0x8e, 0x18, 0xaf, 0xb9, 0x57, 0x27, 0xc4, 0x27, 0x86, 0xf5,
+ 0xe9, 0x4d, 0x60, 0xc6, 0x06, 0x57, 0x6a, 0xf8, 0x3f, 0x3b, 0x33, 0x52,
+ 0x79, 0xa1, 0x01, 0x4d,
+};
+static const struct drbg_kat_no_reseed kat552_t = {
+ 11, kat552_entropyin, kat552_nonce, kat552_persstr,
+ kat552_addin0, kat552_addin1, kat552_retbits
+};
+static const struct drbg_kat kat552 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat552_t
+};
+
+static const unsigned char kat553_entropyin[] = {
+ 0x26, 0xe6, 0xf4, 0x4b, 0x11, 0x2f, 0x52, 0x40, 0xf0, 0xe2, 0x24, 0x9c,
+ 0x2a, 0xa4, 0xd5, 0xdf, 0x3d, 0xf0, 0x94, 0x31, 0x29, 0x6f, 0xee, 0xad,
+ 0x01, 0xcf, 0x65, 0x9c, 0x62, 0xde, 0x50, 0x07,
+};
+static const unsigned char kat553_nonce[] = {
+ 0x8c, 0xaa, 0x8a, 0x24, 0xc2, 0x8a, 0x17, 0xcf, 0xb6, 0x86, 0x13, 0xe2,
+ 0xfb, 0x3b, 0xf3, 0x7e,
+};
+static const unsigned char kat553_persstr[] = {0};
+static const unsigned char kat553_addin0[] = {0};
+static const unsigned char kat553_addin1[] = {0};
+static const unsigned char kat553_retbits[] = {
+ 0x91, 0xa3, 0xad, 0x60, 0xda, 0x8a, 0x72, 0xd7, 0x04, 0x05, 0xa1, 0xba,
+ 0x81, 0x9e, 0xcb, 0x14, 0x7f, 0x33, 0x88, 0x68, 0xa4, 0x16, 0x68, 0xdb,
+ 0x59, 0xff, 0xfb, 0x03, 0x11, 0xa8, 0x34, 0x4a, 0xe0, 0xea, 0x58, 0xd9,
+ 0x7b, 0x6d, 0x3c, 0x31, 0x64, 0x90, 0xb5, 0xc6, 0x23, 0x65, 0x3e, 0x81,
+ 0x6c, 0xc1, 0xb9, 0x1d, 0x5f, 0xcd, 0x9b, 0x4d, 0x70, 0xe7, 0x71, 0x7d,
+ 0x6e, 0xe2, 0xb7, 0x02,
+};
+static const struct drbg_kat_no_reseed kat553_t = {
+ 12, kat553_entropyin, kat553_nonce, kat553_persstr,
+ kat553_addin0, kat553_addin1, kat553_retbits
+};
+static const struct drbg_kat kat553 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat553_t
+};
+
+static const unsigned char kat554_entropyin[] = {
+ 0xf2, 0x91, 0xd7, 0xe5, 0xc2, 0x96, 0x13, 0x13, 0x18, 0x4f, 0x80, 0x23,
+ 0x27, 0x7b, 0x8f, 0xac, 0x09, 0xa5, 0x43, 0xa2, 0x68, 0xee, 0x50, 0x6a,
+ 0x53, 0x41, 0x70, 0x67, 0xa8, 0xcc, 0x12, 0xb6,
+};
+static const unsigned char kat554_nonce[] = {
+ 0x55, 0x24, 0x3c, 0xc5, 0x46, 0x0e, 0x24, 0xbf, 0x0c, 0x2f, 0x92, 0xc0,
+ 0xcf, 0xb2, 0x3e, 0xb6,
+};
+static const unsigned char kat554_persstr[] = {0};
+static const unsigned char kat554_addin0[] = {0};
+static const unsigned char kat554_addin1[] = {0};
+static const unsigned char kat554_retbits[] = {
+ 0x80, 0x9d, 0x31, 0xa2, 0xa2, 0x6c, 0x94, 0x0b, 0x3f, 0x04, 0x5f, 0x16,
+ 0xb8, 0x59, 0xf2, 0x70, 0x8f, 0xd9, 0x19, 0x6a, 0x39, 0x83, 0x51, 0x41,
+ 0x04, 0xd8, 0x0f, 0x1f, 0x68, 0x16, 0x6a, 0xf0, 0xe4, 0x8b, 0x98, 0x27,
+ 0x1b, 0x76, 0xa2, 0x67, 0xea, 0x1e, 0x05, 0x25, 0x0a, 0x3f, 0x7f, 0x25,
+ 0x81, 0xc1, 0xd6, 0x35, 0x67, 0x08, 0xc2, 0x93, 0xf2, 0x08, 0x94, 0x4b,
+ 0x3d, 0xa0, 0xa4, 0x25,
+};
+static const struct drbg_kat_no_reseed kat554_t = {
+ 13, kat554_entropyin, kat554_nonce, kat554_persstr,
+ kat554_addin0, kat554_addin1, kat554_retbits
+};
+static const struct drbg_kat kat554 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat554_t
+};
+
+static const unsigned char kat555_entropyin[] = {
+ 0x8b, 0x08, 0x78, 0xd7, 0x33, 0xc8, 0xa4, 0x8a, 0x79, 0xfa, 0x67, 0x4d,
+ 0xfa, 0x88, 0x9b, 0x34, 0xfd, 0x05, 0x22, 0x01, 0x6d, 0x2f, 0x68, 0xfd,
+ 0xdd, 0x3d, 0xd0, 0x5f, 0x1a, 0xf7, 0x85, 0x06,
+};
+static const unsigned char kat555_nonce[] = {
+ 0xf7, 0x72, 0x49, 0x63, 0x34, 0xfd, 0x93, 0xb4, 0x66, 0x47, 0x29, 0x7a,
+ 0xc4, 0x44, 0x62, 0x9c,
+};
+static const unsigned char kat555_persstr[] = {0};
+static const unsigned char kat555_addin0[] = {0};
+static const unsigned char kat555_addin1[] = {0};
+static const unsigned char kat555_retbits[] = {
+ 0x91, 0x91, 0xc5, 0x97, 0x0a, 0x37, 0xfd, 0xd5, 0x71, 0x5a, 0x7c, 0x6a,
+ 0x09, 0xa7, 0xdd, 0xdb, 0xfb, 0xee, 0x8d, 0x37, 0xee, 0x45, 0xa0, 0x35,
+ 0xb3, 0x38, 0x23, 0xc6, 0xe8, 0x6f, 0xe0, 0xe2, 0xe2, 0xe5, 0x7f, 0xf7,
+ 0xd0, 0x8e, 0x0a, 0x4f, 0x39, 0xd8, 0x1c, 0x18, 0xb9, 0xb5, 0xfd, 0x48,
+ 0x7e, 0x84, 0xca, 0x95, 0xdf, 0x37, 0x2d, 0x36, 0xdc, 0xbf, 0xac, 0x68,
+ 0x2e, 0x04, 0x4b, 0x34,
+};
+static const struct drbg_kat_no_reseed kat555_t = {
+ 14, kat555_entropyin, kat555_nonce, kat555_persstr,
+ kat555_addin0, kat555_addin1, kat555_retbits
+};
+static const struct drbg_kat kat555 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat555_t
+};
+
+static const unsigned char kat556_entropyin[] = {
+ 0xd6, 0x74, 0x39, 0xab, 0xf1, 0xe1, 0x62, 0xe5, 0xb2, 0x59, 0x41, 0x60,
+ 0x5a, 0x8a, 0xeb, 0xa7, 0xd6, 0x86, 0xde, 0xc1, 0x33, 0x25, 0x7f, 0x6c,
+ 0x22, 0x0e, 0x1c, 0x59, 0x5e, 0x95, 0x4a, 0x07,
+};
+static const unsigned char kat556_nonce[] = {
+ 0x69, 0xff, 0x33, 0x10, 0x14, 0x1d, 0xbf, 0x3e, 0xce, 0x40, 0x9a, 0xde,
+ 0x58, 0x74, 0x51, 0x13,
+};
+static const unsigned char kat556_persstr[] = {0};
+static const unsigned char kat556_addin0[] = {
+ 0x03, 0xe7, 0x95, 0xbe, 0x83, 0x79, 0xc4, 0x81, 0xcb, 0x32, 0x53, 0x40,
+ 0x11, 0xca, 0x6b, 0xf5, 0x24, 0xdc, 0x75, 0x49, 0x78, 0xee, 0x5e, 0xbe,
+ 0xe4, 0x75, 0x12, 0x9a, 0xd3, 0x9e, 0xca, 0x98,
+};
+static const unsigned char kat556_addin1[] = {
+ 0x56, 0x85, 0xc7, 0x33, 0x0f, 0x33, 0x00, 0x45, 0x15, 0xf8, 0xc0, 0xab,
+ 0x27, 0xf2, 0xa1, 0xcb, 0xe0, 0xc8, 0xa4, 0xa6, 0x80, 0x6d, 0x6c, 0x84,
+ 0x86, 0xe0, 0x21, 0x7b, 0x43, 0xe8, 0x59, 0xf2,
+};
+static const unsigned char kat556_retbits[] = {
+ 0xa6, 0xd2, 0x2a, 0x43, 0x70, 0x25, 0x1c, 0x51, 0x97, 0x8f, 0xed, 0xc7,
+ 0xe7, 0x75, 0x3c, 0x78, 0x17, 0x9e, 0xd1, 0x94, 0x3d, 0x2f, 0xf1, 0xb5,
+ 0xa3, 0x74, 0x86, 0x01, 0x06, 0x04, 0x1a, 0x30, 0x4b, 0x12, 0x4d, 0x47,
+ 0xcf, 0xa3, 0x04, 0xc9, 0x09, 0xf7, 0xd4, 0x17, 0x84, 0x38, 0x46, 0xd5,
+ 0x2d, 0xcc, 0x7e, 0xbc, 0xf5, 0xc9, 0x3a, 0xfe, 0xf8, 0x85, 0xc8, 0x93,
+ 0xb4, 0x0c, 0x81, 0xed,
+};
+static const struct drbg_kat_no_reseed kat556_t = {
+ 0, kat556_entropyin, kat556_nonce, kat556_persstr,
+ kat556_addin0, kat556_addin1, kat556_retbits
+};
+static const struct drbg_kat kat556 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat556_t
+};
+
+static const unsigned char kat557_entropyin[] = {
+ 0x8f, 0x7c, 0x8c, 0xd0, 0xbc, 0xdf, 0xcc, 0xe6, 0x61, 0x4c, 0xc6, 0x51,
+ 0x1d, 0x51, 0x95, 0xad, 0xe6, 0xda, 0xd5, 0xf6, 0x1f, 0xef, 0x59, 0x88,
+ 0x6f, 0x24, 0x02, 0x12, 0x2e, 0x43, 0x0a, 0x8d,
+};
+static const unsigned char kat557_nonce[] = {
+ 0x17, 0xd1, 0x41, 0x2b, 0x83, 0x44, 0x59, 0x9a, 0x39, 0xb9, 0x60, 0x76,
+ 0x1c, 0x6a, 0xc3, 0x9f,
+};
+static const unsigned char kat557_persstr[] = {0};
+static const unsigned char kat557_addin0[] = {
+ 0xe5, 0x39, 0x59, 0x3c, 0xfc, 0xc7, 0x9e, 0xbd, 0x0a, 0x5e, 0x7b, 0xe3,
+ 0x24, 0x3e, 0x51, 0xa7, 0x7b, 0xf3, 0x81, 0x76, 0x90, 0xb2, 0xff, 0xc8,
+ 0x0c, 0xe5, 0xdc, 0x35, 0xf2, 0xb2, 0xd4, 0xb8,
+};
+static const unsigned char kat557_addin1[] = {
+ 0xe6, 0xa2, 0x4e, 0x9f, 0x76, 0x24, 0xaf, 0xb3, 0xa5, 0x5d, 0x99, 0x74,
+ 0xf8, 0xcb, 0x1a, 0xdd, 0xc4, 0x43, 0x2f, 0xdf, 0xea, 0xc7, 0xc3, 0x5a,
+ 0x61, 0x61, 0x11, 0x58, 0x1c, 0xd1, 0x9b, 0x2f,
+};
+static const unsigned char kat557_retbits[] = {
+ 0x5f, 0xc2, 0x07, 0x36, 0xda, 0x9c, 0xf5, 0xa8, 0x10, 0x36, 0x4b, 0x6a,
+ 0xca, 0x24, 0xed, 0xf7, 0x58, 0xbd, 0x20, 0xeb, 0xd3, 0x31, 0x73, 0xdb,
+ 0x87, 0x4b, 0x64, 0x1b, 0x84, 0x70, 0xab, 0x9a, 0x8a, 0x63, 0x3d, 0x12,
+ 0x38, 0xba, 0x99, 0x01, 0x03, 0x95, 0x6c, 0x0f, 0x5e, 0x2b, 0x28, 0x4f,
+ 0x3b, 0x47, 0x3c, 0x28, 0xd0, 0x05, 0x5d, 0x7e, 0x9b, 0xec, 0x0b, 0x83,
+ 0x90, 0x88, 0x91, 0x7a,
+};
+static const struct drbg_kat_no_reseed kat557_t = {
+ 1, kat557_entropyin, kat557_nonce, kat557_persstr,
+ kat557_addin0, kat557_addin1, kat557_retbits
+};
+static const struct drbg_kat kat557 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat557_t
+};
+
+static const unsigned char kat558_entropyin[] = {
+ 0xd3, 0x00, 0x5b, 0x86, 0x84, 0x6d, 0x8b, 0x45, 0x9e, 0xd9, 0x10, 0x52,
+ 0x18, 0xa1, 0x78, 0x7c, 0x1d, 0x80, 0x01, 0x20, 0x53, 0xca, 0xa3, 0x8a,
+ 0xde, 0x19, 0x6b, 0xff, 0x82, 0x73, 0xc8, 0x93,
+};
+static const unsigned char kat558_nonce[] = {
+ 0x3a, 0x68, 0x9f, 0x93, 0x0c, 0xd4, 0xc5, 0x38, 0x62, 0xc6, 0x81, 0x91,
+ 0xb5, 0xad, 0xbf, 0x14,
+};
+static const unsigned char kat558_persstr[] = {0};
+static const unsigned char kat558_addin0[] = {
+ 0x70, 0xc4, 0xbb, 0xeb, 0x4f, 0x7f, 0x52, 0x7d, 0xf7, 0xe0, 0xad, 0x69,
+ 0x85, 0x1b, 0x66, 0x40, 0x8b, 0x21, 0x54, 0xe7, 0xa2, 0x6f, 0xa5, 0x42,
+ 0xd9, 0x2f, 0x0e, 0x5b, 0x1a, 0x96, 0x95, 0x75,
+};
+static const unsigned char kat558_addin1[] = {
+ 0x86, 0x05, 0x72, 0xf8, 0x81, 0xd5, 0xa9, 0x7c, 0xd7, 0xc9, 0xc8, 0xee,
+ 0x39, 0xe4, 0xfe, 0xfb, 0x67, 0xb9, 0x14, 0x7d, 0x37, 0xfe, 0xa5, 0xa6,
+ 0x4f, 0x58, 0xcd, 0x2e, 0x7a, 0xb6, 0x83, 0x84,
+};
+static const unsigned char kat558_retbits[] = {
+ 0x4d, 0x8b, 0x57, 0x8e, 0x27, 0xad, 0x27, 0xde, 0x26, 0x4c, 0x63, 0xc3,
+ 0xd2, 0xf8, 0x71, 0x3d, 0x58, 0x02, 0x2c, 0x54, 0x14, 0x99, 0x33, 0x51,
+ 0x10, 0xa2, 0x80, 0x99, 0x0b, 0xb0, 0xb3, 0xd3, 0x8a, 0x13, 0x94, 0x3c,
+ 0xfa, 0xbb, 0x7a, 0x6b, 0xfd, 0xc2, 0xdb, 0x2c, 0x05, 0x09, 0x09, 0x89,
+ 0x89, 0xe1, 0x31, 0xc8, 0x9a, 0x76, 0x22, 0x23, 0x5b, 0x76, 0x9e, 0xcc,
+ 0x2c, 0x50, 0x9d, 0xd4,
+};
+static const struct drbg_kat_no_reseed kat558_t = {
+ 2, kat558_entropyin, kat558_nonce, kat558_persstr,
+ kat558_addin0, kat558_addin1, kat558_retbits
+};
+static const struct drbg_kat kat558 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat558_t
+};
+
+static const unsigned char kat559_entropyin[] = {
+ 0x0b, 0x99, 0x25, 0xbf, 0xf6, 0x8f, 0x29, 0x84, 0x3c, 0x8a, 0x05, 0xc6,
+ 0x95, 0xde, 0x37, 0x8b, 0x37, 0x0e, 0x8d, 0xc9, 0xa6, 0xdd, 0xe3, 0x3f,
+ 0xe8, 0x61, 0x52, 0xfa, 0x58, 0x7a, 0xf1, 0xf1,
+};
+static const unsigned char kat559_nonce[] = {
+ 0xb4, 0x38, 0x5b, 0x66, 0x09, 0x6b, 0x2d, 0x2d, 0x0d, 0xac, 0x68, 0x9d,
+ 0x04, 0x3c, 0x60, 0x91,
+};
+static const unsigned char kat559_persstr[] = {0};
+static const unsigned char kat559_addin0[] = {
+ 0xb8, 0x0b, 0xd9, 0x34, 0xcc, 0x3e, 0x73, 0xea, 0x85, 0xac, 0x4a, 0x7f,
+ 0xb5, 0x19, 0x0d, 0x1f, 0xa2, 0x98, 0x8d, 0x29, 0xaf, 0xb3, 0xa3, 0x08,
+ 0xc9, 0x22, 0x05, 0xc0, 0xb7, 0x45, 0xb0, 0x70,
+};
+static const unsigned char kat559_addin1[] = {
+ 0x4d, 0xaf, 0xcb, 0x75, 0x28, 0x23, 0x20, 0x34, 0xd2, 0x61, 0x70, 0x63,
+ 0x61, 0xcc, 0x87, 0x67, 0x18, 0x75, 0xee, 0x67, 0xac, 0xe9, 0x6c, 0xad,
+ 0x09, 0x9b, 0x12, 0x66, 0xa7, 0x5c, 0xb7, 0x28,
+};
+static const unsigned char kat559_retbits[] = {
+ 0x5b, 0x56, 0x1f, 0x9f, 0xa2, 0x60, 0x2b, 0x55, 0x3b, 0xc3, 0xd4, 0xc9,
+ 0x00, 0x1f, 0x8b, 0x4d, 0x98, 0x59, 0x1c, 0x8d, 0x81, 0x33, 0x66, 0xa7,
+ 0x92, 0x06, 0xeb, 0x3d, 0x7e, 0x92, 0xb4, 0x1c, 0x34, 0xae, 0xf3, 0x23,
+ 0x80, 0xd7, 0x9d, 0x4f, 0x7d, 0xf6, 0x73, 0x56, 0x96, 0xf1, 0x47, 0xce,
+ 0x56, 0x90, 0xc3, 0xc5, 0x67, 0x6d, 0xfd, 0xd2, 0x0a, 0xee, 0x3b, 0x4f,
+ 0xc9, 0x55, 0x9e, 0x17,
+};
+static const struct drbg_kat_no_reseed kat559_t = {
+ 3, kat559_entropyin, kat559_nonce, kat559_persstr,
+ kat559_addin0, kat559_addin1, kat559_retbits
+};
+static const struct drbg_kat kat559 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat559_t
+};
+
+static const unsigned char kat560_entropyin[] = {
+ 0xb7, 0xc3, 0x22, 0xf8, 0x12, 0xcd, 0xd3, 0xc1, 0x86, 0xdc, 0x9d, 0xd5,
+ 0x89, 0xf8, 0x7d, 0x46, 0x9f, 0x64, 0xe5, 0xed, 0x80, 0xa0, 0x4e, 0x41,
+ 0x44, 0x18, 0xe2, 0x64, 0x00, 0x86, 0x48, 0xc1,
+};
+static const unsigned char kat560_nonce[] = {
+ 0x8b, 0x66, 0x9f, 0xc0, 0xe3, 0xac, 0xb7, 0x94, 0x90, 0x41, 0x00, 0x5a,
+ 0x27, 0xfc, 0x14, 0x45,
+};
+static const unsigned char kat560_persstr[] = {0};
+static const unsigned char kat560_addin0[] = {
+ 0xde, 0x10, 0x1f, 0xca, 0xf1, 0xc3, 0xbf, 0x36, 0x8e, 0x70, 0x40, 0xd3,
+ 0x9d, 0x57, 0x66, 0x5c, 0x83, 0x5c, 0x40, 0x92, 0x7c, 0xa8, 0x63, 0xd7,
+ 0x0f, 0x74, 0x34, 0x1c, 0x1a, 0x11, 0x3b, 0x68,
+};
+static const unsigned char kat560_addin1[] = {
+ 0x7f, 0xed, 0xdb, 0x0e, 0x87, 0x86, 0x4d, 0x35, 0x87, 0x94, 0x66, 0xda,
+ 0xc2, 0x32, 0xeb, 0x86, 0xfa, 0xc0, 0xc4, 0xfd, 0x74, 0x58, 0x51, 0x26,
+ 0x1a, 0x63, 0x55, 0xd3, 0x6e, 0x01, 0x80, 0x05,
+};
+static const unsigned char kat560_retbits[] = {
+ 0xf7, 0x91, 0x66, 0xbc, 0x53, 0xf7, 0x3b, 0xdf, 0x87, 0x3d, 0x76, 0xba,
+ 0x81, 0xe1, 0xeb, 0x62, 0x97, 0x03, 0x27, 0xc8, 0xe6, 0xfa, 0xc1, 0x0d,
+ 0xc2, 0x36, 0x67, 0xb9, 0xda, 0x74, 0xec, 0x58, 0x30, 0xf5, 0x50, 0x25,
+ 0xd9, 0x52, 0xea, 0xac, 0x65, 0xdd, 0x3b, 0x52, 0xc1, 0x51, 0x7c, 0x79,
+ 0xb0, 0x55, 0x9a, 0x39, 0xc5, 0x4d, 0x30, 0xc9, 0x7c, 0xce, 0x83, 0x2c,
+ 0x1b, 0xdd, 0xe4, 0xf2,
+};
+static const struct drbg_kat_no_reseed kat560_t = {
+ 4, kat560_entropyin, kat560_nonce, kat560_persstr,
+ kat560_addin0, kat560_addin1, kat560_retbits
+};
+static const struct drbg_kat kat560 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat560_t
+};
+
+static const unsigned char kat561_entropyin[] = {
+ 0xda, 0xba, 0x89, 0xb6, 0x2a, 0x44, 0x75, 0xe8, 0xc2, 0x21, 0x40, 0x52,
+ 0xd2, 0x04, 0xc1, 0xff, 0xd2, 0x48, 0xe0, 0xc3, 0x00, 0x8a, 0x0b, 0xd1,
+ 0x23, 0x83, 0x0d, 0xb5, 0x02, 0x3e, 0x53, 0xc2,
+};
+static const unsigned char kat561_nonce[] = {
+ 0x77, 0xfc, 0x74, 0x10, 0x14, 0xe5, 0x14, 0x24, 0x30, 0x58, 0xd3, 0xa2,
+ 0xcf, 0x03, 0x63, 0x74,
+};
+static const unsigned char kat561_persstr[] = {0};
+static const unsigned char kat561_addin0[] = {
+ 0xaa, 0x93, 0x2a, 0x71, 0xbb, 0xbd, 0x86, 0xb3, 0xf3, 0xa7, 0x02, 0xfa,
+ 0x38, 0x4d, 0x49, 0x06, 0x1f, 0x31, 0xc2, 0x5e, 0x80, 0x9d, 0xd9, 0xa0,
+ 0x30, 0x34, 0xac, 0x3c, 0xdf, 0x6b, 0x2e, 0xf2,
+};
+static const unsigned char kat561_addin1[] = {
+ 0x92, 0x62, 0xca, 0xaf, 0xb3, 0x38, 0x3f, 0xaf, 0x78, 0xd9, 0xb0, 0x44,
+ 0x0f, 0x0c, 0x5b, 0xe2, 0x8e, 0x26, 0x0f, 0x3d, 0xb7, 0x77, 0x28, 0xd7,
+ 0xfc, 0xa6, 0x79, 0x98, 0x4c, 0xc3, 0x8d, 0xdf,
+};
+static const unsigned char kat561_retbits[] = {
+ 0x78, 0x4c, 0x8d, 0x58, 0x81, 0x34, 0x9a, 0x13, 0xbc, 0x1a, 0x38, 0xed,
+ 0xac, 0x6e, 0x8f, 0xe7, 0xdc, 0x3a, 0x3b, 0x66, 0x2b, 0x40, 0xb7, 0x40,
+ 0xeb, 0xe8, 0xc8, 0x9d, 0x14, 0x4c, 0xca, 0xb3, 0x19, 0xb4, 0xcd, 0x90,
+ 0x82, 0x0d, 0xd3, 0xf5, 0xec, 0xc3, 0x10, 0x0c, 0x9f, 0x72, 0x87, 0x8d,
+ 0x5e, 0xeb, 0x21, 0xf4, 0x62, 0x34, 0xf4, 0x09, 0x4b, 0x71, 0xb8, 0xb3,
+ 0x42, 0x85, 0xc5, 0x50,
+};
+static const struct drbg_kat_no_reseed kat561_t = {
+ 5, kat561_entropyin, kat561_nonce, kat561_persstr,
+ kat561_addin0, kat561_addin1, kat561_retbits
+};
+static const struct drbg_kat kat561 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat561_t
+};
+
+static const unsigned char kat562_entropyin[] = {
+ 0x8f, 0x7c, 0x64, 0x0c, 0xa1, 0x5c, 0x75, 0x84, 0x04, 0x46, 0xd4, 0x42,
+ 0xf4, 0x13, 0xbb, 0xfe, 0xaf, 0xb4, 0xc2, 0xb8, 0x87, 0x5f, 0x7f, 0x1b,
+ 0xfd, 0x16, 0x12, 0x2b, 0x81, 0xe1, 0xac, 0x1f,
+};
+static const unsigned char kat562_nonce[] = {
+ 0x69, 0x60, 0x13, 0xa4, 0xc7, 0xe7, 0xc7, 0x24, 0xa4, 0x07, 0x23, 0xb5,
+ 0x55, 0x7b, 0x00, 0x56,
+};
+static const unsigned char kat562_persstr[] = {0};
+static const unsigned char kat562_addin0[] = {
+ 0xb7, 0xd2, 0x57, 0x70, 0xe0, 0xb2, 0xbd, 0x1b, 0x6a, 0x82, 0x20, 0xf8,
+ 0x6b, 0x3d, 0x75, 0x9d, 0x20, 0xd8, 0x50, 0x89, 0x80, 0xcf, 0x59, 0x1f,
+ 0x44, 0x3d, 0xde, 0x3a, 0xcd, 0x3e, 0xf6, 0x48,
+};
+static const unsigned char kat562_addin1[] = {
+ 0xbc, 0x08, 0xf8, 0x46, 0x21, 0xaf, 0xb6, 0xa7, 0xd3, 0x31, 0xa0, 0x1b,
+ 0xfc, 0x57, 0x16, 0xa3, 0x1b, 0xcc, 0xcf, 0x05, 0xa7, 0x8e, 0x69, 0x6d,
+ 0xc7, 0x68, 0x9b, 0x98, 0x53, 0x89, 0xe1, 0x2b,
+};
+static const unsigned char kat562_retbits[] = {
+ 0xd4, 0x86, 0xcb, 0xac, 0x79, 0x4e, 0xc9, 0xc6, 0xb2, 0xac, 0xc6, 0xaa,
+ 0xdb, 0x93, 0xe3, 0x2b, 0x30, 0xb2, 0x7e, 0xa3, 0x72, 0x1f, 0xb6, 0x14,
+ 0xe8, 0x23, 0x47, 0xef, 0xf4, 0x61, 0x64, 0x9c, 0xb8, 0xd0, 0xf6, 0xb4,
+ 0x3a, 0x39, 0xb2, 0xe5, 0xf6, 0xf4, 0x03, 0xff, 0x4a, 0xfe, 0xfd, 0x90,
+ 0xad, 0xba, 0x5e, 0x96, 0x16, 0x4a, 0xc7, 0x3b, 0x27, 0xd8, 0xae, 0x20,
+ 0x98, 0xe6, 0x32, 0xcb,
+};
+static const struct drbg_kat_no_reseed kat562_t = {
+ 6, kat562_entropyin, kat562_nonce, kat562_persstr,
+ kat562_addin0, kat562_addin1, kat562_retbits
+};
+static const struct drbg_kat kat562 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat562_t
+};
+
+static const unsigned char kat563_entropyin[] = {
+ 0xb8, 0xbe, 0xd1, 0x95, 0x21, 0xf6, 0xd2, 0x47, 0x1b, 0x76, 0x14, 0x37,
+ 0xf1, 0x0c, 0x9d, 0xb9, 0xaf, 0x2a, 0xc3, 0x03, 0x21, 0x27, 0xdc, 0x5e,
+ 0xb3, 0x8e, 0x15, 0x71, 0x82, 0xe2, 0xe2, 0x5e,
+};
+static const unsigned char kat563_nonce[] = {
+ 0xe0, 0x0b, 0x1b, 0x87, 0x12, 0xb2, 0x19, 0xb7, 0x84, 0x44, 0xa3, 0xfc,
+ 0xab, 0xdd, 0x0f, 0x68,
+};
+static const unsigned char kat563_persstr[] = {0};
+static const unsigned char kat563_addin0[] = {
+ 0xed, 0x74, 0x4e, 0x78, 0x61, 0x75, 0x9e, 0x33, 0x7e, 0x0d, 0x8d, 0xb5,
+ 0xed, 0xa6, 0xf6, 0x6c, 0xb1, 0x42, 0x40, 0xd1, 0xff, 0x7a, 0x86, 0xf9,
+ 0x0c, 0x96, 0xdf, 0xa2, 0xf4, 0xce, 0x85, 0xf9,
+};
+static const unsigned char kat563_addin1[] = {
+ 0x90, 0xf3, 0xb8, 0x92, 0x0d, 0xbd, 0xbd, 0x8f, 0xf6, 0xc6, 0x60, 0x1b,
+ 0x57, 0xa5, 0xfc, 0x90, 0xaa, 0x13, 0xbb, 0xa9, 0x88, 0x43, 0xdc, 0x51,
+ 0x43, 0xc0, 0x18, 0x2d, 0xdc, 0x23, 0x1d, 0xfb,
+};
+static const unsigned char kat563_retbits[] = {
+ 0x33, 0x10, 0xbe, 0x30, 0x08, 0x80, 0x29, 0xe1, 0x35, 0x24, 0xea, 0x9e,
+ 0x8d, 0x6b, 0xd9, 0xef, 0xaa, 0x72, 0xd1, 0xc5, 0x8d, 0x4f, 0x9d, 0x7e,
+ 0x98, 0x53, 0x50, 0x8b, 0xa1, 0x63, 0xb9, 0x06, 0xc4, 0x58, 0x02, 0x0b,
+ 0xe3, 0xcb, 0x7c, 0x5f, 0x3a, 0x2f, 0xa8, 0x89, 0x53, 0xf1, 0x27, 0xe7,
+ 0xe1, 0x17, 0xc1, 0xf3, 0x89, 0x47, 0xa6, 0x68, 0x0b, 0x53, 0xd2, 0x8d,
+ 0x56, 0x5a, 0x3d, 0xdf,
+};
+static const struct drbg_kat_no_reseed kat563_t = {
+ 7, kat563_entropyin, kat563_nonce, kat563_persstr,
+ kat563_addin0, kat563_addin1, kat563_retbits
+};
+static const struct drbg_kat kat563 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat563_t
+};
+
+static const unsigned char kat564_entropyin[] = {
+ 0x01, 0x42, 0x76, 0xad, 0x54, 0x57, 0x97, 0x88, 0xdf, 0xda, 0xf1, 0x2f,
+ 0x2d, 0xf1, 0x88, 0xff, 0xef, 0xab, 0xd3, 0x51, 0x64, 0xf3, 0x1c, 0xc8,
+ 0x73, 0xc6, 0xd3, 0x91, 0x49, 0x6e, 0x09, 0xee,
+};
+static const unsigned char kat564_nonce[] = {
+ 0x46, 0x62, 0xec, 0x7d, 0x07, 0xbf, 0x4f, 0xf1, 0x0b, 0xcd, 0x0c, 0x83,
+ 0x41, 0x06, 0xe1, 0x79,
+};
+static const unsigned char kat564_persstr[] = {0};
+static const unsigned char kat564_addin0[] = {
+ 0xe6, 0x6f, 0x96, 0x0f, 0x9a, 0x89, 0x3d, 0x39, 0xd1, 0x1c, 0x04, 0x26,
+ 0xbc, 0x9e, 0x7e, 0x1f, 0x6f, 0x07, 0x50, 0x55, 0x7a, 0x69, 0x69, 0xe4,
+ 0x45, 0xce, 0xbb, 0x47, 0xd2, 0xf5, 0xd4, 0x27,
+};
+static const unsigned char kat564_addin1[] = {
+ 0x6b, 0x39, 0xf4, 0x5b, 0xbb, 0x78, 0x5c, 0xa9, 0xec, 0x23, 0x30, 0x3f,
+ 0xbc, 0xe7, 0x09, 0x3a, 0x26, 0xfb, 0x87, 0x9b, 0x13, 0xfa, 0xdd, 0x92,
+ 0x7d, 0xc9, 0x50, 0x19, 0xb8, 0xa2, 0x5c, 0xb5,
+};
+static const unsigned char kat564_retbits[] = {
+ 0xdd, 0xa5, 0x11, 0x8a, 0xe2, 0x34, 0xe6, 0xae, 0xb5, 0xcf, 0x63, 0x4e,
+ 0x57, 0xa3, 0xa3, 0xce, 0x76, 0x81, 0xbd, 0x80, 0x36, 0x90, 0xf8, 0xd6,
+ 0x88, 0x86, 0xba, 0x52, 0x26, 0xfb, 0x40, 0x18, 0x26, 0x44, 0xa6, 0x43,
+ 0xa5, 0x54, 0xcc, 0x58, 0x6d, 0x9c, 0xcd, 0x14, 0x8a, 0x75, 0x24, 0x01,
+ 0x42, 0xcd, 0x8f, 0x62, 0xeb, 0xe8, 0x74, 0x7b, 0x4b, 0xe6, 0xe7, 0x53,
+ 0x23, 0x58, 0x20, 0x06,
+};
+static const struct drbg_kat_no_reseed kat564_t = {
+ 8, kat564_entropyin, kat564_nonce, kat564_persstr,
+ kat564_addin0, kat564_addin1, kat564_retbits
+};
+static const struct drbg_kat kat564 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat564_t
+};
+
+static const unsigned char kat565_entropyin[] = {
+ 0xcf, 0xfc, 0xfb, 0xed, 0xb3, 0x5f, 0xf5, 0xbf, 0x3c, 0x79, 0x6d, 0x1a,
+ 0xb9, 0x4a, 0x8a, 0xe1, 0xb9, 0x35, 0xad, 0xdf, 0x6f, 0xdd, 0x8b, 0xe0,
+ 0x00, 0xae, 0x30, 0x99, 0xda, 0xea, 0x7b, 0xd4,
+};
+static const unsigned char kat565_nonce[] = {
+ 0x1f, 0x7e, 0xc8, 0x65, 0x8f, 0x17, 0xe6, 0x4d, 0x1e, 0xd1, 0xb4, 0x98,
+ 0x15, 0xef, 0x9b, 0xef,
+};
+static const unsigned char kat565_persstr[] = {0};
+static const unsigned char kat565_addin0[] = {
+ 0x8d, 0x44, 0xea, 0xe3, 0x90, 0x8e, 0x4a, 0xd5, 0x3f, 0xc0, 0xfa, 0xb4,
+ 0x17, 0x99, 0xbb, 0x03, 0x56, 0xb3, 0xdd, 0xd4, 0x73, 0xfd, 0xe4, 0x29,
+ 0xaf, 0x21, 0xd7, 0xe0, 0x4b, 0x42, 0x6b, 0x80,
+};
+static const unsigned char kat565_addin1[] = {
+ 0x9e, 0x3f, 0x82, 0x8e, 0x8d, 0xdf, 0x07, 0xce, 0xb5, 0x8f, 0xe8, 0xf1,
+ 0x69, 0x7d, 0xae, 0xc6, 0x66, 0xb9, 0xe2, 0x50, 0xfa, 0x5a, 0x83, 0x6f,
+ 0xfd, 0x18, 0xee, 0x17, 0x36, 0x50, 0xe7, 0x2c,
+};
+static const unsigned char kat565_retbits[] = {
+ 0x10, 0x01, 0x62, 0xaa, 0x41, 0x80, 0xc5, 0xe5, 0xa1, 0x8c, 0x51, 0xbf,
+ 0x7d, 0x2b, 0x78, 0xca, 0x94, 0x4c, 0x70, 0xe6, 0x2b, 0xde, 0xa5, 0x54,
+ 0x83, 0x7a, 0x86, 0x81, 0x35, 0xcc, 0xbe, 0x1b, 0x79, 0xbe, 0xbd, 0xfa,
+ 0xe4, 0x09, 0x22, 0x1f, 0x43, 0x8d, 0xf7, 0x28, 0x33, 0xb8, 0xdd, 0x9d,
+ 0x17, 0xdc, 0xbe, 0x06, 0xef, 0x8d, 0x19, 0x01, 0x01, 0x27, 0x31, 0xc7,
+ 0xbe, 0x12, 0xfc, 0x53,
+};
+static const struct drbg_kat_no_reseed kat565_t = {
+ 9, kat565_entropyin, kat565_nonce, kat565_persstr,
+ kat565_addin0, kat565_addin1, kat565_retbits
+};
+static const struct drbg_kat kat565 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat565_t
+};
+
+static const unsigned char kat566_entropyin[] = {
+ 0xdb, 0x31, 0xef, 0x9d, 0xd1, 0x26, 0x6c, 0x60, 0xea, 0xaf, 0xbe, 0xca,
+ 0x54, 0x2f, 0x52, 0xb4, 0xfd, 0x98, 0x9b, 0x4b, 0x43, 0x69, 0x35, 0xea,
+ 0x65, 0xeb, 0xc6, 0x25, 0x54, 0xbe, 0x96, 0x2c,
+};
+static const unsigned char kat566_nonce[] = {
+ 0xd0, 0x3a, 0x8b, 0xa0, 0x34, 0x85, 0x2b, 0x4f, 0x96, 0x25, 0x0b, 0xdd,
+ 0x89, 0xf3, 0x68, 0x02,
+};
+static const unsigned char kat566_persstr[] = {0};
+static const unsigned char kat566_addin0[] = {
+ 0x62, 0xeb, 0xe7, 0x71, 0x5a, 0x7d, 0xdc, 0x82, 0x0e, 0x44, 0xab, 0x31,
+ 0x37, 0x67, 0x77, 0x6f, 0x87, 0x85, 0xb1, 0x81, 0x42, 0x6f, 0xbf, 0x49,
+ 0x3e, 0x7c, 0xbc, 0xce, 0x13, 0x60, 0xfd, 0x23,
+};
+static const unsigned char kat566_addin1[] = {
+ 0x05, 0x28, 0xb6, 0x90, 0x41, 0xc4, 0xe5, 0xea, 0xda, 0xb6, 0x18, 0xa9,
+ 0x29, 0xf1, 0x76, 0xf7, 0x7c, 0x34, 0x5b, 0x6d, 0x89, 0xae, 0xe9, 0xaa,
+ 0x95, 0x5c, 0x5a, 0x8c, 0xa8, 0xfc, 0x8b, 0x92,
+};
+static const unsigned char kat566_retbits[] = {
+ 0x01, 0x7c, 0xf4, 0xff, 0x68, 0x6d, 0xf4, 0xc0, 0x6f, 0xbb, 0xc0, 0xbe,
+ 0x97, 0x89, 0xb8, 0x28, 0xf1, 0x5b, 0xe5, 0x4a, 0xaf, 0xba, 0x72, 0x87,
+ 0xb4, 0x39, 0x1e, 0x9e, 0xc7, 0xb7, 0xd0, 0x02, 0x5d, 0xb0, 0x12, 0xdf,
+ 0x4b, 0xb3, 0x5c, 0x74, 0x06, 0x16, 0x77, 0x20, 0x7a, 0x7d, 0x7a, 0x06,
+ 0x1e, 0xf1, 0x23, 0x89, 0x3e, 0xa4, 0xd7, 0xc8, 0x22, 0x0e, 0xca, 0xca,
+ 0xd5, 0x68, 0x48, 0xb1,
+};
+static const struct drbg_kat_no_reseed kat566_t = {
+ 10, kat566_entropyin, kat566_nonce, kat566_persstr,
+ kat566_addin0, kat566_addin1, kat566_retbits
+};
+static const struct drbg_kat kat566 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat566_t
+};
+
+static const unsigned char kat567_entropyin[] = {
+ 0x06, 0xb2, 0x6d, 0x4f, 0xfa, 0xb4, 0xa8, 0x61, 0x14, 0x14, 0xc8, 0xfd,
+ 0xe8, 0x7e, 0x51, 0x69, 0x2f, 0xfe, 0x50, 0x78, 0x83, 0x4b, 0x51, 0x98,
+ 0x19, 0x3d, 0xf7, 0xf9, 0x8f, 0x1c, 0x52, 0x61,
+};
+static const unsigned char kat567_nonce[] = {
+ 0xde, 0x49, 0xf9, 0xfa, 0xba, 0xea, 0x3f, 0x8d, 0xd1, 0xec, 0x58, 0x1c,
+ 0x71, 0xd5, 0xc1, 0xda,
+};
+static const unsigned char kat567_persstr[] = {0};
+static const unsigned char kat567_addin0[] = {
+ 0x6b, 0xba, 0x85, 0xa3, 0xf3, 0x93, 0x86, 0x5a, 0x6a, 0x7b, 0x73, 0x39,
+ 0x16, 0xc2, 0x8a, 0xe3, 0x9b, 0xa4, 0x03, 0xa0, 0x34, 0x8a, 0x2d, 0x3b,
+ 0x7a, 0x33, 0xfd, 0xf8, 0x19, 0x57, 0x1b, 0xf9,
+};
+static const unsigned char kat567_addin1[] = {
+ 0xc3, 0x2f, 0xd2, 0x84, 0xc4, 0x3a, 0xa0, 0x72, 0xeb, 0x72, 0xa7, 0xe4,
+ 0x7f, 0x40, 0x8a, 0x87, 0x7a, 0xe4, 0x0e, 0x12, 0x09, 0xd1, 0x12, 0xc9,
+ 0x9d, 0x45, 0x7e, 0x7f, 0x96, 0x53, 0xcb, 0x86,
+};
+static const unsigned char kat567_retbits[] = {
+ 0x1f, 0x0f, 0x54, 0x04, 0xf5, 0x1d, 0x48, 0xc3, 0xf3, 0x62, 0x3b, 0x93,
+ 0x84, 0x32, 0xf7, 0xdd, 0x42, 0x49, 0x64, 0x9f, 0x61, 0xb6, 0xf1, 0x03,
+ 0xc2, 0xfd, 0x8b, 0x30, 0xdb, 0xf5, 0xb4, 0xea, 0x95, 0x7b, 0x5d, 0xe0,
+ 0x96, 0xac, 0x47, 0xcb, 0x10, 0x7e, 0x52, 0x2d, 0xf0, 0x13, 0x80, 0x76,
+ 0x34, 0x2d, 0x6c, 0x2e, 0xa0, 0x8e, 0xcc, 0x2b, 0x48, 0x1c, 0x3e, 0x73,
+ 0xef, 0x48, 0xa0, 0x46,
+};
+static const struct drbg_kat_no_reseed kat567_t = {
+ 11, kat567_entropyin, kat567_nonce, kat567_persstr,
+ kat567_addin0, kat567_addin1, kat567_retbits
+};
+static const struct drbg_kat kat567 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat567_t
+};
+
+static const unsigned char kat568_entropyin[] = {
+ 0x21, 0xbe, 0x14, 0x42, 0xe6, 0x89, 0x53, 0xaf, 0x26, 0x56, 0xec, 0x3a,
+ 0xdb, 0xa3, 0xa6, 0x5a, 0x7b, 0x45, 0x9b, 0x7a, 0xb4, 0xe7, 0x9c, 0x77,
+ 0x5a, 0xd2, 0x54, 0x4c, 0xe9, 0xa4, 0xf8, 0xb5,
+};
+static const unsigned char kat568_nonce[] = {
+ 0xb6, 0x22, 0x1e, 0x28, 0x2e, 0x81, 0xf3, 0x10, 0xa6, 0xa2, 0xef, 0xba,
+ 0x73, 0xb0, 0x49, 0x0b,
+};
+static const unsigned char kat568_persstr[] = {0};
+static const unsigned char kat568_addin0[] = {
+ 0xf2, 0x76, 0xb8, 0xae, 0x6e, 0xa4, 0xd9, 0x9b, 0x27, 0xee, 0x89, 0x19,
+ 0x35, 0x30, 0x0f, 0x30, 0x9a, 0x7e, 0x6f, 0x15, 0x4f, 0x5a, 0xc6, 0xee,
+ 0x27, 0x38, 0x83, 0xca, 0x53, 0x57, 0xba, 0x6f,
+};
+static const unsigned char kat568_addin1[] = {
+ 0x93, 0x26, 0x8a, 0x42, 0x42, 0x6c, 0xc3, 0x10, 0xee, 0x18, 0x76, 0x7d,
+ 0x96, 0x63, 0x26, 0x9f, 0x5e, 0x1c, 0x46, 0xb9, 0x6c, 0x6b, 0x17, 0xb2,
+ 0xf8, 0xbd, 0x6e, 0xce, 0xc3, 0x43, 0x5e, 0x42,
+};
+static const unsigned char kat568_retbits[] = {
+ 0x45, 0xe8, 0x5e, 0xe0, 0x30, 0x0a, 0x94, 0x62, 0x01, 0x6c, 0x4b, 0x7d,
+ 0x4b, 0x16, 0x19, 0xc7, 0x6d, 0x4a, 0xa9, 0x42, 0x2b, 0x5c, 0x45, 0xcf,
+ 0xac, 0xad, 0xae, 0x24, 0xb9, 0x34, 0xba, 0x19, 0x0f, 0x76, 0xa8, 0xa4,
+ 0x55, 0x1a, 0x23, 0xe8, 0xe1, 0x44, 0x73, 0xde, 0xd8, 0xf7, 0x9b, 0xdf,
+ 0x91, 0xb4, 0xfe, 0x0c, 0xe1, 0x63, 0x92, 0x8a, 0xf2, 0xc1, 0xea, 0xdf,
+ 0xc9, 0x6d, 0x30, 0x1c,
+};
+static const struct drbg_kat_no_reseed kat568_t = {
+ 12, kat568_entropyin, kat568_nonce, kat568_persstr,
+ kat568_addin0, kat568_addin1, kat568_retbits
+};
+static const struct drbg_kat kat568 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat568_t
+};
+
+static const unsigned char kat569_entropyin[] = {
+ 0xdf, 0xf8, 0xc1, 0x4a, 0x61, 0x19, 0x28, 0x12, 0x76, 0xe7, 0x1c, 0x91,
+ 0xd6, 0x6d, 0x97, 0xe2, 0x9a, 0x14, 0x1e, 0x06, 0x53, 0x7e, 0xaf, 0x6c,
+ 0x2f, 0xeb, 0xd8, 0x23, 0x49, 0x3b, 0x7e, 0x3f,
+};
+static const unsigned char kat569_nonce[] = {
+ 0x1e, 0x98, 0x17, 0x4e, 0xdb, 0x22, 0x8d, 0x55, 0xcd, 0x4f, 0x58, 0x04,
+ 0x27, 0xac, 0xb3, 0x7a,
+};
+static const unsigned char kat569_persstr[] = {0};
+static const unsigned char kat569_addin0[] = {
+ 0xf1, 0x7f, 0x9d, 0xdc, 0x60, 0xc6, 0x3f, 0xa8, 0x04, 0x36, 0x04, 0x1e,
+ 0x5a, 0x21, 0x19, 0x7e, 0x5e, 0x37, 0x8e, 0xcf, 0x70, 0xc7, 0xee, 0x39,
+ 0x2b, 0xd6, 0xf8, 0x92, 0x9d, 0xf1, 0xee, 0xef,
+};
+static const unsigned char kat569_addin1[] = {
+ 0x13, 0x90, 0xbb, 0x27, 0x69, 0x29, 0x27, 0x2a, 0x99, 0x42, 0xf2, 0x94,
+ 0xd5, 0xcb, 0x64, 0xd6, 0x32, 0x2c, 0x1c, 0xdc, 0x9a, 0x6f, 0x87, 0xf1,
+ 0xbd, 0x4e, 0x9a, 0xd7, 0xba, 0x6d, 0x82, 0x9c,
+};
+static const unsigned char kat569_retbits[] = {
+ 0xc1, 0xad, 0xc5, 0x14, 0x5d, 0xb9, 0xb5, 0xeb, 0x35, 0x92, 0x0a, 0x94,
+ 0xb7, 0x63, 0x2e, 0x50, 0x30, 0xe7, 0xfa, 0x38, 0x10, 0x30, 0x01, 0x17,
+ 0xa9, 0x36, 0xb8, 0x87, 0xb8, 0xbb, 0xfb, 0x0c, 0x51, 0x16, 0x9e, 0x70,
+ 0xf2, 0x6c, 0x0b, 0xf8, 0x79, 0x83, 0x85, 0xbc, 0xcd, 0xd7, 0xbe, 0x4f,
+ 0x7c, 0x53, 0xb3, 0xbb, 0xf9, 0x7a, 0x65, 0xb1, 0x6c, 0xcf, 0xfc, 0xb1,
+ 0xd5, 0x2e, 0xbd, 0x14,
+};
+static const struct drbg_kat_no_reseed kat569_t = {
+ 13, kat569_entropyin, kat569_nonce, kat569_persstr,
+ kat569_addin0, kat569_addin1, kat569_retbits
+};
+static const struct drbg_kat kat569 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat569_t
+};
+
+static const unsigned char kat570_entropyin[] = {
+ 0xe8, 0xd1, 0xca, 0x5d, 0xba, 0xec, 0x67, 0x47, 0x22, 0x36, 0x9d, 0x32,
+ 0x21, 0xa3, 0xdc, 0xf2, 0x68, 0x1f, 0xb3, 0x70, 0x06, 0x1e, 0x48, 0x88,
+ 0x27, 0xa0, 0x07, 0x90, 0xab, 0xbb, 0x40, 0x80,
+};
+static const unsigned char kat570_nonce[] = {
+ 0xe5, 0xe6, 0x14, 0x4b, 0xda, 0x93, 0x75, 0x29, 0x89, 0xc5, 0x4a, 0x70,
+ 0x20, 0x81, 0xaf, 0x08,
+};
+static const unsigned char kat570_persstr[] = {0};
+static const unsigned char kat570_addin0[] = {
+ 0x9e, 0xba, 0x53, 0xd0, 0xab, 0xbc, 0xdf, 0xb9, 0x84, 0x39, 0xce, 0xc3,
+ 0x2a, 0x14, 0xdc, 0x79, 0x24, 0x4a, 0xc3, 0x61, 0x6a, 0x71, 0xda, 0xfe,
+ 0xb7, 0x17, 0x5b, 0x71, 0xf9, 0x82, 0xe2, 0x14,
+};
+static const unsigned char kat570_addin1[] = {
+ 0x76, 0xe4, 0xae, 0xfb, 0xb6, 0x88, 0x96, 0x41, 0x1b, 0xd7, 0x93, 0x66,
+ 0x7e, 0x0e, 0x3b, 0xb3, 0xde, 0xd8, 0x37, 0xd3, 0xa2, 0xbb, 0x37, 0x0d,
+ 0x94, 0x4c, 0x20, 0xe5, 0xbf, 0x03, 0xe6, 0xd1,
+};
+static const unsigned char kat570_retbits[] = {
+ 0x6f, 0x6b, 0xed, 0x60, 0x5b, 0xc0, 0x41, 0x9e, 0x36, 0x7a, 0x42, 0x04,
+ 0x85, 0x85, 0xcb, 0x10, 0x54, 0x0d, 0x3a, 0x03, 0x5f, 0xc9, 0x90, 0x5f,
+ 0xa0, 0x04, 0x72, 0x9f, 0xef, 0xea, 0x46, 0x71, 0xef, 0x17, 0xaa, 0xc2,
+ 0xcc, 0x2c, 0x96, 0x4f, 0x35, 0xe7, 0x40, 0x98, 0x8e, 0x63, 0x6d, 0x8d,
+ 0x25, 0x11, 0x7c, 0x95, 0x3d, 0x0a, 0xf6, 0xa1, 0x99, 0x06, 0x7a, 0xd3,
+ 0x9a, 0xa6, 0x16, 0x63,
+};
+static const struct drbg_kat_no_reseed kat570_t = {
+ 14, kat570_entropyin, kat570_nonce, kat570_persstr,
+ kat570_addin0, kat570_addin1, kat570_retbits
+};
+static const struct drbg_kat kat570 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat570_t
+};
+
+static const unsigned char kat571_entropyin[] = {
+ 0x87, 0x82, 0xd5, 0x16, 0xab, 0x2e, 0x07, 0x20, 0x81, 0x6d, 0x31, 0xe8,
+ 0x41, 0xc4, 0x97, 0x65, 0x83, 0xf5, 0xf2, 0x35, 0x6d, 0x4a, 0x6b, 0x75,
+ 0xba, 0xa0, 0xc8, 0x54, 0xd8, 0x1e, 0x87, 0xdf,
+};
+static const unsigned char kat571_nonce[] = {
+ 0xd3, 0xa0, 0xdf, 0x6e, 0x41, 0x0c, 0xba, 0x3a, 0xf8, 0x2b, 0x2e, 0x91,
+ 0x4e, 0x52, 0xb1, 0x9a,
+};
+static const unsigned char kat571_persstr[] = {
+ 0x94, 0x60, 0xe6, 0x67, 0x3c, 0x94, 0xac, 0x44, 0xf8, 0x12, 0x67, 0x3c,
+ 0x25, 0xb8, 0x90, 0x54, 0x56, 0xc3, 0x2f, 0xa7, 0xa8, 0x8d, 0x01, 0x9c,
+ 0x9b, 0x9a, 0xf0, 0xe9, 0xe6, 0xdf, 0xde, 0x32,
+};
+static const unsigned char kat571_addin0[] = {0};
+static const unsigned char kat571_addin1[] = {0};
+static const unsigned char kat571_retbits[] = {
+ 0x73, 0xbe, 0x5a, 0xca, 0x78, 0x6c, 0x4d, 0x20, 0x01, 0xf0, 0x26, 0xa4,
+ 0x8f, 0xc3, 0x2e, 0x0d, 0x5b, 0x9c, 0x43, 0xf5, 0x58, 0x15, 0x89, 0x80,
+ 0x9f, 0x10, 0x3c, 0xf9, 0x1f, 0xdc, 0x33, 0xaa, 0x00, 0x07, 0x03, 0xc5,
+ 0xb9, 0xa7, 0x39, 0x1c, 0x4c, 0x75, 0x12, 0x6b, 0xa0, 0x0f, 0x9f, 0x9c,
+ 0xf3, 0x68, 0xb0, 0xf9, 0x2a, 0x72, 0x90, 0x5e, 0xc1, 0x1f, 0x67, 0x02,
+ 0x44, 0xd0, 0x2e, 0x33,
+};
+static const struct drbg_kat_no_reseed kat571_t = {
+ 0, kat571_entropyin, kat571_nonce, kat571_persstr,
+ kat571_addin0, kat571_addin1, kat571_retbits
+};
+static const struct drbg_kat kat571 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat571_t
+};
+
+static const unsigned char kat572_entropyin[] = {
+ 0xa3, 0xa0, 0x58, 0xec, 0x8f, 0x49, 0x63, 0xe3, 0xe4, 0xa5, 0xe7, 0xae,
+ 0xad, 0xea, 0xd4, 0x8e, 0x48, 0xa1, 0x30, 0xf0, 0x4a, 0xe6, 0x78, 0x5c,
+ 0x18, 0x4d, 0x76, 0xff, 0x8c, 0x78, 0x13, 0x4e,
+};
+static const unsigned char kat572_nonce[] = {
+ 0xca, 0x4f, 0xf0, 0xc8, 0xc0, 0x5d, 0xb6, 0xd7, 0x66, 0xf3, 0x56, 0x21,
+ 0x6c, 0x3b, 0x5f, 0xb4,
+};
+static const unsigned char kat572_persstr[] = {
+ 0xcf, 0x95, 0x33, 0x8c, 0xe6, 0x92, 0x72, 0x32, 0x4c, 0x75, 0x17, 0x59,
+ 0x56, 0x6e, 0x99, 0xeb, 0x9a, 0x2a, 0x61, 0x8c, 0xed, 0xee, 0xa9, 0x77,
+ 0xc3, 0x60, 0xa3, 0x5b, 0xe7, 0xdb, 0x80, 0x7c,
+};
+static const unsigned char kat572_addin0[] = {0};
+static const unsigned char kat572_addin1[] = {0};
+static const unsigned char kat572_retbits[] = {
+ 0xf5, 0x93, 0xfe, 0xcd, 0xec, 0xfd, 0x70, 0xd9, 0xf7, 0xcc, 0x09, 0x3b,
+ 0x4c, 0xf0, 0x50, 0x2f, 0x17, 0x8c, 0x99, 0x97, 0xce, 0x7f, 0x3b, 0x95,
+ 0xcb, 0xaf, 0xba, 0xf6, 0xe5, 0x75, 0x63, 0x7d, 0x34, 0x4e, 0x2c, 0x9b,
+ 0x7e, 0xbc, 0xb9, 0xed, 0x60, 0x48, 0x65, 0x06, 0x39, 0xea, 0x48, 0xd3,
+ 0x21, 0xc6, 0x26, 0x08, 0x6b, 0x28, 0x00, 0x2d, 0x86, 0x3c, 0xaf, 0xed,
+ 0xe0, 0x91, 0xe7, 0xe5,
+};
+static const struct drbg_kat_no_reseed kat572_t = {
+ 1, kat572_entropyin, kat572_nonce, kat572_persstr,
+ kat572_addin0, kat572_addin1, kat572_retbits
+};
+static const struct drbg_kat kat572 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat572_t
+};
+
+static const unsigned char kat573_entropyin[] = {
+ 0x91, 0xf7, 0x4d, 0x6c, 0x79, 0x8f, 0x6e, 0x18, 0x42, 0xe3, 0x6a, 0xa6,
+ 0x10, 0x19, 0x68, 0x2e, 0x24, 0x6a, 0x2e, 0xec, 0x04, 0xaa, 0xc8, 0xf7,
+ 0xc5, 0xe8, 0x49, 0xdb, 0xd6, 0xfa, 0x67, 0x7d,
+};
+static const unsigned char kat573_nonce[] = {
+ 0x80, 0x07, 0x23, 0x00, 0x8b, 0x74, 0x43, 0x51, 0x97, 0x9a, 0xe8, 0x5d,
+ 0x92, 0xfd, 0x21, 0x7f,
+};
+static const unsigned char kat573_persstr[] = {
+ 0xc9, 0xb3, 0x8f, 0x9b, 0x98, 0xb7, 0xa0, 0x04, 0x3b, 0x13, 0xd1, 0x92,
+ 0x6c, 0x27, 0x26, 0x55, 0x21, 0xf0, 0x13, 0x16, 0xe8, 0xfe, 0x79, 0xd2,
+ 0xef, 0xa8, 0xb8, 0x17, 0xb2, 0x3a, 0xaf, 0xc5,
+};
+static const unsigned char kat573_addin0[] = {0};
+static const unsigned char kat573_addin1[] = {0};
+static const unsigned char kat573_retbits[] = {
+ 0x5a, 0x63, 0x77, 0x02, 0x30, 0xa4, 0xa0, 0x48, 0x64, 0x5c, 0xe1, 0xa7,
+ 0x5e, 0x50, 0xea, 0x79, 0x2c, 0x21, 0x96, 0x34, 0x56, 0x5f, 0x24, 0xec,
+ 0x52, 0xfa, 0xe6, 0x04, 0x65, 0x06, 0xc5, 0xb0, 0x52, 0x9a, 0x79, 0x8c,
+ 0x6b, 0xb7, 0x16, 0x19, 0xa2, 0x4b, 0xbd, 0x71, 0xf9, 0x03, 0x35, 0xe9,
+ 0x3c, 0x41, 0xde, 0x3f, 0xd0, 0xfd, 0x1f, 0x3e, 0xe3, 0x20, 0x4b, 0x9c,
+ 0x60, 0x64, 0xb7, 0x35,
+};
+static const struct drbg_kat_no_reseed kat573_t = {
+ 2, kat573_entropyin, kat573_nonce, kat573_persstr,
+ kat573_addin0, kat573_addin1, kat573_retbits
+};
+static const struct drbg_kat kat573 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat573_t
+};
+
+static const unsigned char kat574_entropyin[] = {
+ 0xaa, 0x40, 0xfd, 0x98, 0xee, 0xa7, 0x52, 0xb7, 0x31, 0x54, 0x5a, 0x6b,
+ 0x93, 0x86, 0xb2, 0xff, 0x35, 0x6e, 0xf7, 0xd9, 0xce, 0x88, 0xda, 0xa2,
+ 0x21, 0x9a, 0x5c, 0x5f, 0xe5, 0x71, 0x09, 0xc8,
+};
+static const unsigned char kat574_nonce[] = {
+ 0x11, 0x0a, 0xcd, 0xc8, 0x6c, 0x06, 0xed, 0xcf, 0x8d, 0x61, 0x2a, 0x4f,
+ 0x2d, 0xf6, 0xea, 0x72,
+};
+static const unsigned char kat574_persstr[] = {
+ 0xf1, 0x7a, 0x8e, 0x0d, 0x46, 0x0e, 0x75, 0x87, 0x47, 0xc4, 0x61, 0x78,
+ 0x2a, 0xee, 0x6d, 0xad, 0x4a, 0x2e, 0xa8, 0xcc, 0x26, 0xc3, 0x3b, 0x34,
+ 0xe7, 0x97, 0xc9, 0xae, 0x8f, 0x8f, 0xc6, 0x32,
+};
+static const unsigned char kat574_addin0[] = {0};
+static const unsigned char kat574_addin1[] = {0};
+static const unsigned char kat574_retbits[] = {
+ 0x3d, 0xa6, 0x3f, 0x9f, 0xee, 0x35, 0x54, 0x41, 0xfa, 0xc4, 0x08, 0x4b,
+ 0xb9, 0x76, 0x68, 0x51, 0xcb, 0x6c, 0x60, 0xb7, 0xa9, 0x48, 0x42, 0xd2,
+ 0xc7, 0x62, 0x3b, 0x80, 0x7a, 0x46, 0x20, 0xcc, 0xae, 0x17, 0x48, 0x10,
+ 0xc2, 0x1d, 0x92, 0xd5, 0xf2, 0x67, 0x6f, 0x9e, 0x84, 0xa5, 0xc9, 0x8b,
+ 0x9a, 0x8a, 0x23, 0xad, 0xf7, 0x2d, 0xdf, 0xe3, 0x9f, 0xb7, 0x88, 0xf2,
+ 0x89, 0x21, 0x71, 0x87,
+};
+static const struct drbg_kat_no_reseed kat574_t = {
+ 3, kat574_entropyin, kat574_nonce, kat574_persstr,
+ kat574_addin0, kat574_addin1, kat574_retbits
+};
+static const struct drbg_kat kat574 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat574_t
+};
+
+static const unsigned char kat575_entropyin[] = {
+ 0xbd, 0x5d, 0xaa, 0x18, 0xdf, 0xf5, 0x7e, 0x90, 0x76, 0x2d, 0xff, 0xd3,
+ 0x5a, 0x05, 0xa4, 0xa7, 0x39, 0xce, 0x7e, 0xbf, 0x08, 0x7f, 0x42, 0x93,
+ 0xf2, 0xc7, 0xa0, 0x31, 0xd1, 0x7d, 0xf9, 0xeb,
+};
+static const unsigned char kat575_nonce[] = {
+ 0xaf, 0x62, 0x92, 0x3e, 0xf2, 0x14, 0x46, 0x24, 0x18, 0x43, 0x9e, 0xc8,
+ 0xdc, 0x55, 0x3c, 0x9b,
+};
+static const unsigned char kat575_persstr[] = {
+ 0xfc, 0x9e, 0x13, 0x8b, 0xe9, 0x17, 0x0c, 0x83, 0x12, 0x28, 0x81, 0x91,
+ 0x03, 0x9b, 0x03, 0x3b, 0xf4, 0x1e, 0xf1, 0xd4, 0x7f, 0x4e, 0x64, 0x23,
+ 0x57, 0x86, 0x6b, 0x87, 0x5c, 0x7f, 0x18, 0x3e,
+};
+static const unsigned char kat575_addin0[] = {0};
+static const unsigned char kat575_addin1[] = {0};
+static const unsigned char kat575_retbits[] = {
+ 0xd4, 0x0e, 0xcb, 0x4e, 0x47, 0xe5, 0x54, 0x60, 0xc4, 0x00, 0x47, 0xd6,
+ 0x0f, 0x85, 0x28, 0x78, 0xb9, 0x15, 0x26, 0x8a, 0x4f, 0x13, 0x79, 0x6c,
+ 0xf5, 0xd9, 0xaa, 0x0d, 0x67, 0xf6, 0xda, 0x88, 0x09, 0x84, 0x74, 0x68,
+ 0xd7, 0xe0, 0x4c, 0x03, 0x9a, 0x9f, 0x9e, 0x3d, 0x9e, 0x5b, 0x4d, 0x53,
+ 0xce, 0x8f, 0x66, 0xfe, 0x7d, 0x88, 0xa4, 0x98, 0x3c, 0x51, 0x11, 0xce,
+ 0xf6, 0x03, 0x7b, 0x33,
+};
+static const struct drbg_kat_no_reseed kat575_t = {
+ 4, kat575_entropyin, kat575_nonce, kat575_persstr,
+ kat575_addin0, kat575_addin1, kat575_retbits
+};
+static const struct drbg_kat kat575 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat575_t
+};
+
+static const unsigned char kat576_entropyin[] = {
+ 0x5a, 0x57, 0x10, 0x9b, 0xf7, 0xde, 0xe0, 0x09, 0x92, 0x26, 0x23, 0xcb,
+ 0x8d, 0xd7, 0xc6, 0x02, 0x9d, 0x14, 0xe6, 0xf3, 0x99, 0x7e, 0x9a, 0x54,
+ 0x05, 0x73, 0x9b, 0xd8, 0x50, 0x27, 0xd3, 0x1e,
+};
+static const unsigned char kat576_nonce[] = {
+ 0xa4, 0xc9, 0x51, 0x1f, 0x90, 0x66, 0x5b, 0x44, 0x21, 0x8d, 0x45, 0xc6,
+ 0x27, 0xd8, 0xbe, 0x7d,
+};
+static const unsigned char kat576_persstr[] = {
+ 0x2a, 0x6b, 0xe5, 0x24, 0xc3, 0xf7, 0xa5, 0x80, 0x15, 0x0f, 0x69, 0x9b,
+ 0xcc, 0x6b, 0xa1, 0x0b, 0x1e, 0x26, 0xcb, 0x85, 0x71, 0x26, 0x21, 0xce,
+ 0x00, 0xda, 0x3f, 0x36, 0x3c, 0x8b, 0x1c, 0x46,
+};
+static const unsigned char kat576_addin0[] = {0};
+static const unsigned char kat576_addin1[] = {0};
+static const unsigned char kat576_retbits[] = {
+ 0xaa, 0xf4, 0xc6, 0xe3, 0xad, 0xa5, 0x1a, 0x1a, 0xe6, 0x2c, 0x24, 0x38,
+ 0x1b, 0x21, 0xad, 0x4a, 0xed, 0x83, 0xd8, 0xae, 0x39, 0x45, 0xeb, 0x71,
+ 0x93, 0x8c, 0x1c, 0xe2, 0xd5, 0x86, 0x27, 0x11, 0x5e, 0x5e, 0xfc, 0x3c,
+ 0x58, 0xe8, 0x05, 0x6e, 0x7f, 0x71, 0x90, 0xae, 0x55, 0x0a, 0x8f, 0x1b,
+ 0x46, 0xd1, 0xb5, 0x8a, 0xe3, 0xea, 0x9a, 0xf0, 0xb7, 0xb1, 0x08, 0x1a,
+ 0xa7, 0xfd, 0x36, 0x30,
+};
+static const struct drbg_kat_no_reseed kat576_t = {
+ 5, kat576_entropyin, kat576_nonce, kat576_persstr,
+ kat576_addin0, kat576_addin1, kat576_retbits
+};
+static const struct drbg_kat kat576 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat576_t
+};
+
+static const unsigned char kat577_entropyin[] = {
+ 0xf4, 0x3d, 0x16, 0x31, 0x39, 0x7b, 0xcf, 0xd6, 0xc6, 0xb3, 0x85, 0x10,
+ 0x6f, 0xef, 0x8e, 0x72, 0xf9, 0x72, 0x84, 0x50, 0x28, 0x62, 0xd6, 0x46,
+ 0x4e, 0x61, 0x0c, 0xed, 0xe7, 0xb9, 0xd8, 0xae,
+};
+static const unsigned char kat577_nonce[] = {
+ 0x74, 0x1c, 0xcd, 0x9a, 0xa4, 0x87, 0xfd, 0x77, 0x53, 0x78, 0xea, 0xf3,
+ 0x1e, 0xb8, 0x77, 0xd8,
+};
+static const unsigned char kat577_persstr[] = {
+ 0x96, 0x07, 0xf8, 0x4f, 0x0b, 0x22, 0x37, 0x62, 0x6d, 0xa9, 0x25, 0x0b,
+ 0xcb, 0xa6, 0x46, 0xa0, 0x6d, 0xd8, 0x00, 0x49, 0xf9, 0xa2, 0x8c, 0x4f,
+ 0x0b, 0x2b, 0x63, 0x1f, 0xfe, 0x73, 0x0d, 0x5c,
+};
+static const unsigned char kat577_addin0[] = {0};
+static const unsigned char kat577_addin1[] = {0};
+static const unsigned char kat577_retbits[] = {
+ 0x50, 0x97, 0xa9, 0xf2, 0x7e, 0xb3, 0xae, 0x42, 0x32, 0x81, 0xb9, 0x3b,
+ 0x77, 0x20, 0x82, 0x58, 0x15, 0x03, 0x42, 0xea, 0x42, 0x45, 0xdb, 0x7f,
+ 0x1c, 0x4e, 0x73, 0x47, 0xb6, 0xa3, 0x80, 0xc8, 0x1e, 0x27, 0xb0, 0xeb,
+ 0x00, 0x61, 0x0e, 0x84, 0x2e, 0x2a, 0xb5, 0x7d, 0xdc, 0x03, 0x45, 0x67,
+ 0x67, 0x19, 0xb5, 0x2a, 0xf6, 0x63, 0x0d, 0x52, 0x90, 0x97, 0x5e, 0x65,
+ 0x75, 0xa0, 0x17, 0xb3,
+};
+static const struct drbg_kat_no_reseed kat577_t = {
+ 6, kat577_entropyin, kat577_nonce, kat577_persstr,
+ kat577_addin0, kat577_addin1, kat577_retbits
+};
+static const struct drbg_kat kat577 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat577_t
+};
+
+static const unsigned char kat578_entropyin[] = {
+ 0xb9, 0xf8, 0xf6, 0xf6, 0x73, 0x50, 0xb2, 0xb6, 0x74, 0xa9, 0x8e, 0xc3,
+ 0xcc, 0xf9, 0xf9, 0x4d, 0x5e, 0xb9, 0xed, 0x74, 0xc6, 0x74, 0xec, 0x30,
+ 0x5d, 0xd9, 0x8f, 0xc5, 0xd8, 0xc6, 0x4d, 0x93,
+};
+static const unsigned char kat578_nonce[] = {
+ 0xed, 0x55, 0xa0, 0xe6, 0x82, 0xba, 0xc6, 0xad, 0x5d, 0x6f, 0x86, 0xeb,
+ 0x31, 0xf3, 0xb1, 0x5e,
+};
+static const unsigned char kat578_persstr[] = {
+ 0x9c, 0x29, 0x9b, 0x3d, 0xc0, 0x78, 0x2f, 0x07, 0x46, 0xee, 0x9a, 0xa1,
+ 0x9c, 0x24, 0xfc, 0xee, 0xb7, 0xb3, 0x50, 0xdd, 0x3d, 0xe9, 0x72, 0x7a,
+ 0x19, 0x70, 0x8f, 0x41, 0xd9, 0x9c, 0x86, 0xaa,
+};
+static const unsigned char kat578_addin0[] = {0};
+static const unsigned char kat578_addin1[] = {0};
+static const unsigned char kat578_retbits[] = {
+ 0x2c, 0xe4, 0xaf, 0x0c, 0xe1, 0xd6, 0x5a, 0x83, 0x78, 0xd3, 0xb8, 0x96,
+ 0xad, 0x2e, 0x16, 0xb9, 0xe8, 0xbd, 0x2a, 0x92, 0xd5, 0x95, 0xc1, 0x07,
+ 0x15, 0x9c, 0x38, 0x6a, 0x59, 0x93, 0x70, 0x54, 0x63, 0x6b, 0x64, 0x25,
+ 0xec, 0x73, 0x1c, 0x1d, 0x83, 0x8c, 0x53, 0x01, 0x53, 0x08, 0x64, 0x68,
+ 0xe7, 0x52, 0xea, 0x34, 0xd2, 0xad, 0x64, 0xc0, 0x68, 0xf0, 0x01, 0x53,
+ 0x41, 0xae, 0xa6, 0xa1,
+};
+static const struct drbg_kat_no_reseed kat578_t = {
+ 7, kat578_entropyin, kat578_nonce, kat578_persstr,
+ kat578_addin0, kat578_addin1, kat578_retbits
+};
+static const struct drbg_kat kat578 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat578_t
+};
+
+static const unsigned char kat579_entropyin[] = {
+ 0xc6, 0x99, 0x20, 0x58, 0x59, 0x90, 0x4c, 0x44, 0xa7, 0x82, 0x9c, 0x81,
+ 0xa5, 0x81, 0xd6, 0x36, 0xa9, 0x7c, 0x3f, 0x57, 0x21, 0x12, 0x57, 0x69,
+ 0xd8, 0x07, 0x0b, 0x63, 0x8f, 0xab, 0x07, 0xb1,
+};
+static const unsigned char kat579_nonce[] = {
+ 0x4d, 0xdb, 0xba, 0x6a, 0x5a, 0x13, 0x7e, 0x24, 0xce, 0x4b, 0x28, 0x3a,
+ 0x8f, 0xf5, 0x27, 0xe3,
+};
+static const unsigned char kat579_persstr[] = {
+ 0x22, 0xdc, 0x48, 0x6c, 0x4f, 0xe1, 0x9a, 0xf1, 0xf8, 0x20, 0x89, 0xba,
+ 0xb3, 0xd0, 0x1e, 0xf1, 0x60, 0xb6, 0xf5, 0xe5, 0x94, 0x83, 0x69, 0xc0,
+ 0xac, 0xac, 0xd6, 0xa5, 0xf4, 0x11, 0xf7, 0x37,
+};
+static const unsigned char kat579_addin0[] = {0};
+static const unsigned char kat579_addin1[] = {0};
+static const unsigned char kat579_retbits[] = {
+ 0xed, 0x8e, 0xab, 0x6c, 0x64, 0x0e, 0x6e, 0x06, 0x17, 0x25, 0xd7, 0x18,
+ 0xf7, 0x67, 0xca, 0x51, 0x08, 0x49, 0x54, 0x21, 0x37, 0xda, 0x84, 0x70,
+ 0x0b, 0xdc, 0xac, 0xad, 0xf1, 0xca, 0xe5, 0xdd, 0x03, 0xf6, 0xed, 0xba,
+ 0xc0, 0x05, 0x3f, 0x1b, 0x7f, 0xe2, 0xcf, 0xd5, 0x36, 0x3a, 0x2f, 0xb8,
+ 0x12, 0x9e, 0x14, 0x9a, 0xc7, 0x47, 0x64, 0x47, 0x0b, 0x86, 0x23, 0x47,
+ 0x4e, 0x8b, 0x20, 0x4d,
+};
+static const struct drbg_kat_no_reseed kat579_t = {
+ 8, kat579_entropyin, kat579_nonce, kat579_persstr,
+ kat579_addin0, kat579_addin1, kat579_retbits
+};
+static const struct drbg_kat kat579 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat579_t
+};
+
+static const unsigned char kat580_entropyin[] = {
+ 0x16, 0x4a, 0xf0, 0xb9, 0x1b, 0xa3, 0x67, 0xe7, 0xd9, 0x49, 0xe0, 0x68,
+ 0x7a, 0x7c, 0xf1, 0x82, 0x59, 0x19, 0x74, 0x5a, 0x2f, 0xf4, 0x1a, 0x28,
+ 0xc0, 0x6e, 0x9d, 0x64, 0x7c, 0xea, 0x54, 0x5a,
+};
+static const unsigned char kat580_nonce[] = {
+ 0xa6, 0x10, 0xa3, 0xcf, 0xc5, 0x1c, 0xd6, 0xad, 0x86, 0x9f, 0xa8, 0x50,
+ 0x86, 0x12, 0x4a, 0xa7,
+};
+static const unsigned char kat580_persstr[] = {
+ 0x5d, 0x03, 0x58, 0x6d, 0xcd, 0xa1, 0xf0, 0x22, 0xde, 0xa6, 0x43, 0xa6,
+ 0x1f, 0xbc, 0x9e, 0x25, 0xc7, 0xf0, 0x7f, 0xc1, 0x5b, 0xa5, 0x54, 0xd5,
+ 0xad, 0xb8, 0xd4, 0x78, 0x5c, 0xa7, 0x6b, 0xc7,
+};
+static const unsigned char kat580_addin0[] = {0};
+static const unsigned char kat580_addin1[] = {0};
+static const unsigned char kat580_retbits[] = {
+ 0xa7, 0x1a, 0xa1, 0x59, 0xb4, 0x81, 0x35, 0x3e, 0x1e, 0xa8, 0xa2, 0xfb,
+ 0x9f, 0x0f, 0xa6, 0xfb, 0xca, 0xac, 0x1c, 0x24, 0x10, 0x47, 0x17, 0xf9,
+ 0x89, 0x45, 0x35, 0xf0, 0x87, 0xe2, 0x90, 0x79, 0xb1, 0xc3, 0x16, 0x8f,
+ 0xb7, 0x45, 0xe0, 0x50, 0x31, 0x01, 0xed, 0xa8, 0x48, 0x42, 0x98, 0x0f,
+ 0x91, 0x91, 0x72, 0x7e, 0xa4, 0x7f, 0xfb, 0x57, 0x0c, 0xfb, 0xaa, 0xed,
+ 0xff, 0x05, 0x5d, 0x9c,
+};
+static const struct drbg_kat_no_reseed kat580_t = {
+ 9, kat580_entropyin, kat580_nonce, kat580_persstr,
+ kat580_addin0, kat580_addin1, kat580_retbits
+};
+static const struct drbg_kat kat580 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat580_t
+};
+
+static const unsigned char kat581_entropyin[] = {
+ 0x6a, 0x59, 0x15, 0x57, 0xdf, 0x6a, 0xfe, 0x71, 0xca, 0xd5, 0xac, 0xff,
+ 0xbb, 0xf7, 0x58, 0xf6, 0x82, 0x9e, 0xa8, 0x87, 0x55, 0x9b, 0xc1, 0xc3,
+ 0xab, 0x6f, 0x1d, 0xdb, 0xef, 0x92, 0x8b, 0x0f,
+};
+static const unsigned char kat581_nonce[] = {
+ 0xc8, 0x72, 0xc4, 0xf0, 0xd9, 0xaf, 0xef, 0x9b, 0xe4, 0x08, 0xe0, 0xac,
+ 0x48, 0x87, 0x8b, 0xae,
+};
+static const unsigned char kat581_persstr[] = {
+ 0xdf, 0xa1, 0xc2, 0xdb, 0x43, 0xf6, 0x12, 0x9b, 0x31, 0xfb, 0x4b, 0x32,
+ 0x66, 0xb1, 0x7d, 0x97, 0x2b, 0xb4, 0x67, 0x95, 0x72, 0x61, 0xdf, 0x3a,
+ 0x67, 0x67, 0x87, 0x94, 0x49, 0x76, 0x01, 0xb6,
+};
+static const unsigned char kat581_addin0[] = {0};
+static const unsigned char kat581_addin1[] = {0};
+static const unsigned char kat581_retbits[] = {
+ 0x44, 0xf4, 0xad, 0x62, 0x71, 0x0d, 0x87, 0xa1, 0x09, 0x91, 0x09, 0x08,
+ 0xa4, 0xdd, 0x1a, 0x57, 0x91, 0x51, 0x65, 0x4b, 0x7c, 0x44, 0x06, 0x86,
+ 0xf9, 0x03, 0xb2, 0x13, 0x28, 0x5e, 0xa8, 0x86, 0xb7, 0x26, 0x05, 0xd8,
+ 0xe6, 0xaf, 0x0c, 0x2c, 0xb9, 0x28, 0x6f, 0x46, 0xb8, 0x7d, 0x6c, 0xdf,
+ 0xe1, 0x70, 0x24, 0x81, 0x24, 0x8a, 0x81, 0x6e, 0x88, 0x7d, 0x76, 0x68,
+ 0x58, 0xb2, 0x21, 0xf4,
+};
+static const struct drbg_kat_no_reseed kat581_t = {
+ 10, kat581_entropyin, kat581_nonce, kat581_persstr,
+ kat581_addin0, kat581_addin1, kat581_retbits
+};
+static const struct drbg_kat kat581 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat581_t
+};
+
+static const unsigned char kat582_entropyin[] = {
+ 0xe2, 0xbc, 0x6e, 0x86, 0x5a, 0xbe, 0xb1, 0xbb, 0xf1, 0x3e, 0xbe, 0xd7,
+ 0xe1, 0x23, 0xff, 0xa3, 0x26, 0x87, 0x62, 0x5c, 0x67, 0xef, 0x56, 0x1d,
+ 0xe9, 0xc2, 0xfc, 0x6f, 0x14, 0xef, 0xdd, 0x77,
+};
+static const unsigned char kat582_nonce[] = {
+ 0x8e, 0x67, 0x5b, 0xf0, 0xac, 0x4b, 0x6b, 0x1f, 0xd4, 0x3a, 0x5b, 0xa3,
+ 0xd5, 0x5e, 0xb5, 0xfe,
+};
+static const unsigned char kat582_persstr[] = {
+ 0x2a, 0xd7, 0x9b, 0x01, 0xb4, 0x77, 0xc2, 0x64, 0x6b, 0xe5, 0x76, 0x12,
+ 0x72, 0x33, 0x0d, 0x98, 0x40, 0x5e, 0xdd, 0x77, 0x58, 0x91, 0xf6, 0x19,
+ 0xc9, 0x66, 0x67, 0x91, 0xdd, 0x2a, 0x9b, 0x68,
+};
+static const unsigned char kat582_addin0[] = {0};
+static const unsigned char kat582_addin1[] = {0};
+static const unsigned char kat582_retbits[] = {
+ 0xf4, 0x81, 0xf0, 0xf8, 0x1f, 0x46, 0xfe, 0xef, 0x26, 0x34, 0x10, 0xac,
+ 0x39, 0xef, 0x51, 0xf1, 0xfa, 0xaa, 0xcf, 0x22, 0x54, 0x1d, 0xe8, 0xe4,
+ 0xf9, 0x14, 0x52, 0xb6, 0x90, 0xbb, 0x5c, 0x6a, 0x21, 0x1d, 0xc8, 0x75,
+ 0x1d, 0xcf, 0x8b, 0xdb, 0xf4, 0xdc, 0xd3, 0x55, 0x48, 0x94, 0xbb, 0x66,
+ 0x44, 0xfb, 0x79, 0x95, 0xb4, 0x0c, 0x04, 0xea, 0x4c, 0x3a, 0x97, 0x9e,
+ 0x97, 0xb5, 0xbc, 0xfb,
+};
+static const struct drbg_kat_no_reseed kat582_t = {
+ 11, kat582_entropyin, kat582_nonce, kat582_persstr,
+ kat582_addin0, kat582_addin1, kat582_retbits
+};
+static const struct drbg_kat kat582 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat582_t
+};
+
+static const unsigned char kat583_entropyin[] = {
+ 0xff, 0xed, 0x52, 0x4b, 0x1d, 0x1f, 0x1c, 0x5c, 0xee, 0x98, 0x76, 0x28,
+ 0x58, 0x38, 0x7d, 0x1a, 0x40, 0x32, 0x45, 0xeb, 0xfa, 0xfe, 0xc0, 0xc0,
+ 0xa4, 0x0a, 0xd8, 0x15, 0xdb, 0x9c, 0x83, 0xf2,
+};
+static const unsigned char kat583_nonce[] = {
+ 0x95, 0xf9, 0xd8, 0x65, 0x52, 0x11, 0xa0, 0xf8, 0x0e, 0xf8, 0xe3, 0x76,
+ 0xab, 0xd8, 0xf1, 0x71,
+};
+static const unsigned char kat583_persstr[] = {
+ 0x38, 0xb2, 0xef, 0x1f, 0xcf, 0x66, 0xab, 0x0a, 0xd6, 0xf1, 0x4e, 0xf6,
+ 0x8b, 0x7d, 0xb3, 0x6a, 0x73, 0x11, 0xff, 0x99, 0x64, 0xff, 0x4b, 0xd5,
+ 0x01, 0xc4, 0x47, 0xfd, 0x04, 0x16, 0x73, 0x40,
+};
+static const unsigned char kat583_addin0[] = {0};
+static const unsigned char kat583_addin1[] = {0};
+static const unsigned char kat583_retbits[] = {
+ 0x2e, 0xd8, 0x10, 0x83, 0x0b, 0x5c, 0x7b, 0xb2, 0x87, 0xee, 0xa8, 0x5c,
+ 0xd3, 0x2e, 0xde, 0x0f, 0xe0, 0x70, 0x04, 0x9a, 0x89, 0x8e, 0x0b, 0xbd,
+ 0x7a, 0x69, 0x49, 0xef, 0xe3, 0xbd, 0x3c, 0x19, 0x07, 0x5a, 0xcf, 0x87,
+ 0xff, 0x27, 0x71, 0x44, 0xab, 0xc2, 0xe2, 0x3c, 0xeb, 0x41, 0x6b, 0x70,
+ 0x5b, 0x7a, 0x2b, 0xe2, 0xfb, 0x0a, 0x0d, 0xc9, 0x16, 0x47, 0x86, 0xf3,
+ 0x52, 0x7c, 0xfe, 0x14,
+};
+static const struct drbg_kat_no_reseed kat583_t = {
+ 12, kat583_entropyin, kat583_nonce, kat583_persstr,
+ kat583_addin0, kat583_addin1, kat583_retbits
+};
+static const struct drbg_kat kat583 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat583_t
+};
+
+static const unsigned char kat584_entropyin[] = {
+ 0x2a, 0x92, 0x90, 0x3d, 0x4d, 0x3a, 0xba, 0x09, 0x16, 0xcb, 0xc0, 0x72,
+ 0xf9, 0x8a, 0x17, 0x05, 0x44, 0x6a, 0x12, 0x6d, 0x3e, 0x68, 0x4d, 0x0d,
+ 0x27, 0x1b, 0x78, 0xa4, 0x6a, 0xe8, 0x5c, 0x6e,
+};
+static const unsigned char kat584_nonce[] = {
+ 0x2c, 0x94, 0x36, 0x1b, 0xdb, 0x04, 0x08, 0x75, 0xa6, 0x4e, 0x1f, 0x21,
+ 0xb9, 0xca, 0x85, 0x50,
+};
+static const unsigned char kat584_persstr[] = {
+ 0x35, 0x3f, 0x18, 0xf9, 0xc3, 0x31, 0xa1, 0xf7, 0x7a, 0x1b, 0x0a, 0xa5,
+ 0xf9, 0x70, 0x76, 0x2e, 0xba, 0xcb, 0xac, 0xb4, 0x27, 0x3a, 0x94, 0x11,
+ 0x14, 0xa3, 0xc7, 0x83, 0xb6, 0xe4, 0x08, 0x8e,
+};
+static const unsigned char kat584_addin0[] = {0};
+static const unsigned char kat584_addin1[] = {0};
+static const unsigned char kat584_retbits[] = {
+ 0xf9, 0xe3, 0xf3, 0x31, 0x77, 0x25, 0xf9, 0x6b, 0x13, 0x7b, 0xaa, 0x2e,
+ 0xe2, 0x16, 0xd7, 0x0c, 0xc4, 0xb4, 0x5c, 0x38, 0x05, 0x20, 0xf8, 0x1d,
+ 0x6f, 0xde, 0x13, 0x68, 0xef, 0x70, 0x10, 0x87, 0xa2, 0x90, 0x98, 0x93,
+ 0x3a, 0x38, 0xee, 0x75, 0x7b, 0x9f, 0x70, 0xb1, 0x82, 0xe7, 0x06, 0x3e,
+ 0x36, 0x30, 0xa4, 0x3b, 0xdc, 0x1f, 0x21, 0xc3, 0x0c, 0x4a, 0x47, 0xbf,
+ 0x7f, 0xbb, 0x98, 0xe5,
+};
+static const struct drbg_kat_no_reseed kat584_t = {
+ 13, kat584_entropyin, kat584_nonce, kat584_persstr,
+ kat584_addin0, kat584_addin1, kat584_retbits
+};
+static const struct drbg_kat kat584 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat584_t
+};
+
+static const unsigned char kat585_entropyin[] = {
+ 0xc2, 0x75, 0x29, 0xd8, 0x65, 0x0a, 0x49, 0x8f, 0xe1, 0xaa, 0xcd, 0xf1,
+ 0x2d, 0x8a, 0x56, 0xc7, 0x3e, 0xd1, 0xc4, 0xb5, 0x66, 0xfc, 0xfc, 0x57,
+ 0xb4, 0x3e, 0xeb, 0x2f, 0x8c, 0x17, 0x90, 0xad,
+};
+static const unsigned char kat585_nonce[] = {
+ 0x09, 0x45, 0x15, 0x3f, 0xe4, 0x78, 0x9c, 0xd0, 0xa7, 0x45, 0x10, 0xdf,
+ 0xcd, 0xa5, 0xde, 0x71,
+};
+static const unsigned char kat585_persstr[] = {
+ 0xcd, 0x98, 0xbf, 0x62, 0x9d, 0xa5, 0xde, 0xc8, 0x6d, 0x82, 0x3b, 0xbd,
+ 0x72, 0x0e, 0x27, 0x3f, 0xa0, 0x9b, 0x75, 0xa3, 0x04, 0xa2, 0xc3, 0x13,
+ 0x9c, 0x38, 0x38, 0x6b, 0xb4, 0x46, 0x85, 0x53,
+};
+static const unsigned char kat585_addin0[] = {0};
+static const unsigned char kat585_addin1[] = {0};
+static const unsigned char kat585_retbits[] = {
+ 0xba, 0x34, 0xd4, 0x6c, 0x29, 0xaf, 0xc9, 0x1e, 0xc3, 0x4c, 0xad, 0x84,
+ 0x85, 0xb5, 0xdd, 0x6e, 0x2f, 0xb5, 0x80, 0xa2, 0x17, 0x85, 0x9f, 0x70,
+ 0x49, 0xa6, 0xb2, 0x3e, 0xb9, 0x3e, 0x66, 0xe4, 0x29, 0xdd, 0xff, 0x22,
+ 0xcc, 0x64, 0x71, 0x59, 0xef, 0x11, 0x95, 0xbb, 0x67, 0xc4, 0x0c, 0xb3,
+ 0x38, 0x83, 0xeb, 0xd8, 0xa6, 0xb9, 0xf7, 0x1a, 0xb0, 0xac, 0xb8, 0x9d,
+ 0xe7, 0x74, 0xa5, 0x93,
+};
+static const struct drbg_kat_no_reseed kat585_t = {
+ 14, kat585_entropyin, kat585_nonce, kat585_persstr,
+ kat585_addin0, kat585_addin1, kat585_retbits
+};
+static const struct drbg_kat kat585 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat585_t
+};
+
+static const unsigned char kat586_entropyin[] = {
+ 0xed, 0x12, 0xdf, 0x77, 0x81, 0x55, 0x85, 0xfc, 0x9a, 0xe7, 0x39, 0x66,
+ 0x20, 0xee, 0xe4, 0xae, 0x68, 0xcc, 0x82, 0xa8, 0x2e, 0xc3, 0x0a, 0x79,
+ 0x29, 0x01, 0xe2, 0x85, 0x8a, 0x59, 0x70, 0x5d,
+};
+static const unsigned char kat586_nonce[] = {
+ 0x23, 0x2a, 0x3d, 0xb9, 0x70, 0xb5, 0xcf, 0x1f, 0x31, 0xa5, 0xe0, 0x9f,
+ 0x02, 0xc0, 0xa9, 0x7e,
+};
+static const unsigned char kat586_persstr[] = {
+ 0x2f, 0x92, 0x94, 0xdb, 0x48, 0x53, 0x05, 0xd4, 0x88, 0x63, 0xb6, 0xf5,
+ 0x37, 0xc3, 0xfa, 0xed, 0x90, 0x3b, 0x9f, 0xeb, 0x94, 0xbb, 0x84, 0x8d,
+ 0x00, 0xdc, 0x58, 0xe7, 0x7d, 0x8f, 0x47, 0xc0,
+};
+static const unsigned char kat586_addin0[] = {
+ 0xc9, 0x96, 0x9a, 0x56, 0x33, 0x74, 0x48, 0x0b, 0xc0, 0x8f, 0x61, 0xd4,
+ 0xb4, 0x6e, 0x58, 0x7a, 0xfc, 0x55, 0x12, 0x6d, 0x38, 0x09, 0xe6, 0x03,
+ 0xe2, 0x0e, 0x44, 0xa0, 0x76, 0x36, 0xc6, 0x78,
+};
+static const unsigned char kat586_addin1[] = {
+ 0x03, 0xcf, 0xba, 0xa7, 0x39, 0xb3, 0x3c, 0x1b, 0xc6, 0x0a, 0xbb, 0x1c,
+ 0x73, 0x0e, 0x15, 0x5f, 0xae, 0x07, 0x83, 0x70, 0x54, 0xb0, 0x8e, 0xe8,
+ 0x48, 0xc4, 0x58, 0xc8, 0x85, 0x69, 0xff, 0xc1,
+};
+static const unsigned char kat586_retbits[] = {
+ 0x78, 0xbd, 0x67, 0xeb, 0x4e, 0x66, 0x0a, 0x4f, 0xe3, 0x47, 0x4e, 0xc1,
+ 0xe9, 0x5b, 0x1f, 0xbd, 0xc1, 0xe4, 0xdc, 0x68, 0x67, 0x18, 0x4e, 0xe4,
+ 0xea, 0x9e, 0x15, 0x68, 0x14, 0xc5, 0x84, 0x9c, 0x3c, 0x12, 0xd7, 0xba,
+ 0x06, 0xcc, 0xed, 0x8c, 0x87, 0x27, 0x12, 0xc2, 0xb9, 0x6e, 0x74, 0x68,
+ 0x53, 0x6e, 0x11, 0xa2, 0x0e, 0x93, 0xe5, 0x3b, 0x8c, 0x77, 0x8e, 0x9c,
+ 0x06, 0x34, 0xc6, 0xcb,
+};
+static const struct drbg_kat_no_reseed kat586_t = {
+ 0, kat586_entropyin, kat586_nonce, kat586_persstr,
+ kat586_addin0, kat586_addin1, kat586_retbits
+};
+static const struct drbg_kat kat586 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat586_t
+};
+
+static const unsigned char kat587_entropyin[] = {
+ 0x2c, 0x8c, 0x91, 0x62, 0xa1, 0xdd, 0x63, 0xc1, 0xf2, 0x89, 0x47, 0x14,
+ 0xd8, 0x91, 0x58, 0x03, 0x0a, 0x5f, 0x67, 0x7a, 0xa0, 0x14, 0xd7, 0x8b,
+ 0xcd, 0x55, 0x8d, 0x8f, 0xfb, 0xa2, 0xab, 0x25,
+};
+static const unsigned char kat587_nonce[] = {
+ 0x42, 0x06, 0xb6, 0xc3, 0xc1, 0xf5, 0x43, 0xb1, 0x60, 0x8f, 0xb9, 0xcd,
+ 0xb6, 0x2f, 0xc2, 0xc7,
+};
+static const unsigned char kat587_persstr[] = {
+ 0xaa, 0xdd, 0x7d, 0x9f, 0x9c, 0xee, 0x1f, 0x93, 0xf4, 0x3a, 0xff, 0x31,
+ 0x32, 0x83, 0x77, 0x58, 0xe8, 0x89, 0x55, 0x35, 0x0f, 0x6d, 0xee, 0xb7,
+ 0x7b, 0xb4, 0xf8, 0x5c, 0xc0, 0x41, 0x04, 0x54,
+};
+static const unsigned char kat587_addin0[] = {
+ 0xe7, 0x49, 0xfb, 0x5d, 0x67, 0xae, 0x61, 0x77, 0x04, 0xff, 0xfe, 0xbb,
+ 0xde, 0xb9, 0x98, 0xb2, 0x69, 0x2d, 0xb7, 0x2a, 0xf8, 0xac, 0x21, 0x7f,
+ 0x7b, 0xc5, 0x41, 0x6f, 0x93, 0xa7, 0x7a, 0x8f,
+};
+static const unsigned char kat587_addin1[] = {
+ 0x46, 0xa5, 0x13, 0x49, 0xdb, 0x45, 0x45, 0x6d, 0xb9, 0x4e, 0xd1, 0x25,
+ 0x46, 0xea, 0x6a, 0x62, 0x14, 0x89, 0xac, 0xfb, 0x40, 0xb0, 0xfa, 0x31,
+ 0x6a, 0x3c, 0x8f, 0x5f, 0x48, 0x0a, 0x00, 0x88,
+};
+static const unsigned char kat587_retbits[] = {
+ 0xee, 0x1f, 0x95, 0xda, 0x9b, 0x2d, 0x79, 0xf0, 0xcb, 0xf8, 0x33, 0x5e,
+ 0xfc, 0xc6, 0x91, 0x2f, 0x16, 0x39, 0x46, 0xe4, 0x45, 0x6d, 0x32, 0x84,
+ 0xb9, 0x18, 0x57, 0x9b, 0x50, 0xd6, 0x88, 0x1d, 0xb4, 0xcc, 0x08, 0x6d,
+ 0x3d, 0x21, 0x2a, 0xf2, 0xf3, 0x42, 0xb4, 0xbf, 0x46, 0x57, 0x37, 0x0b,
+ 0x02, 0x5c, 0xd4, 0xad, 0x2c, 0x1e, 0xef, 0xf3, 0xcf, 0x60, 0x70, 0xdb,
+ 0xdd, 0x50, 0x78, 0x61,
+};
+static const struct drbg_kat_no_reseed kat587_t = {
+ 1, kat587_entropyin, kat587_nonce, kat587_persstr,
+ kat587_addin0, kat587_addin1, kat587_retbits
+};
+static const struct drbg_kat kat587 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat587_t
+};
+
+static const unsigned char kat588_entropyin[] = {
+ 0x91, 0x97, 0x3e, 0xa6, 0x17, 0xf9, 0x5b, 0x5c, 0xd9, 0x4c, 0xbb, 0xc2,
+ 0xbf, 0x02, 0x03, 0x81, 0x51, 0x85, 0x73, 0x63, 0xd8, 0x50, 0x25, 0x6b,
+ 0xdf, 0x9f, 0x78, 0xbd, 0x22, 0x34, 0x0b, 0x49,
+};
+static const unsigned char kat588_nonce[] = {
+ 0x9a, 0xb4, 0x15, 0x60, 0xf8, 0x54, 0x52, 0x07, 0x00, 0x52, 0x68, 0x1a,
+ 0x25, 0xd9, 0xf0, 0xf8,
+};
+static const unsigned char kat588_persstr[] = {
+ 0x69, 0x16, 0x3f, 0xff, 0x9b, 0xab, 0x52, 0x97, 0xe0, 0x9f, 0xc9, 0x35,
+ 0x1f, 0x96, 0xa5, 0xbe, 0xe9, 0x97, 0x30, 0x86, 0x1f, 0xde, 0xf1, 0x0a,
+ 0xdf, 0xd4, 0xac, 0x38, 0xa0, 0x80, 0x0b, 0x3e,
+};
+static const unsigned char kat588_addin0[] = {
+ 0xc4, 0x2c, 0x50, 0x3d, 0x41, 0x7d, 0x87, 0x67, 0x9f, 0x53, 0x0f, 0x4b,
+ 0xa0, 0x5c, 0xbc, 0xe3, 0x40, 0x48, 0x74, 0xd4, 0x61, 0x16, 0x3f, 0x5c,
+ 0x57, 0x0a, 0x3c, 0xfa, 0xd7, 0x5a, 0xbe, 0xed,
+};
+static const unsigned char kat588_addin1[] = {
+ 0xba, 0xc9, 0xd9, 0xa1, 0x6d, 0x9f, 0x1c, 0xe7, 0xa4, 0xeb, 0xb7, 0xc3,
+ 0x78, 0x12, 0x43, 0x39, 0x4e, 0x22, 0x80, 0xa5, 0x2d, 0xe6, 0x41, 0x1d,
+ 0xb5, 0x2e, 0xd8, 0xc3, 0x09, 0x01, 0x3e, 0xcf,
+};
+static const unsigned char kat588_retbits[] = {
+ 0x23, 0x64, 0x0c, 0xf3, 0x57, 0x0c, 0x88, 0xf3, 0x5c, 0x44, 0x0f, 0x5a,
+ 0x1d, 0x61, 0x95, 0xde, 0x06, 0xd0, 0x86, 0xb9, 0x11, 0x8d, 0xd6, 0xda,
+ 0xf8, 0x97, 0x48, 0x65, 0xd5, 0x2e, 0x11, 0x76, 0x6e, 0xaa, 0x8b, 0x14,
+ 0x62, 0xc7, 0x7b, 0x54, 0x2d, 0x6a, 0x53, 0x91, 0xdf, 0x63, 0x68, 0xca,
+ 0x68, 0x2f, 0x63, 0x98, 0xaf, 0x51, 0x56, 0xee, 0x7c, 0xd8, 0xce, 0x24,
+ 0x50, 0x25, 0x8f, 0xcb,
+};
+static const struct drbg_kat_no_reseed kat588_t = {
+ 2, kat588_entropyin, kat588_nonce, kat588_persstr,
+ kat588_addin0, kat588_addin1, kat588_retbits
+};
+static const struct drbg_kat kat588 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat588_t
+};
+
+static const unsigned char kat589_entropyin[] = {
+ 0xef, 0xfa, 0xd8, 0x21, 0x04, 0x04, 0x17, 0x86, 0x15, 0x9b, 0xe5, 0xa1,
+ 0xeb, 0xc0, 0xbe, 0x77, 0x68, 0x8e, 0x6f, 0x1c, 0x07, 0x5d, 0xc2, 0x0a,
+ 0x83, 0x2e, 0x3f, 0xfa, 0xfb, 0x11, 0xc5, 0x4c,
+};
+static const unsigned char kat589_nonce[] = {
+ 0xe1, 0x3b, 0xad, 0xfd, 0xe3, 0x6a, 0x8c, 0x10, 0x7e, 0x4f, 0x3c, 0xea,
+ 0x69, 0x3d, 0xa3, 0x6d,
+};
+static const unsigned char kat589_persstr[] = {
+ 0x01, 0xea, 0x78, 0xe5, 0xbe, 0x0b, 0xf9, 0x48, 0x96, 0x2d, 0x7c, 0x33,
+ 0x4a, 0xe2, 0x37, 0xc5, 0x60, 0xbb, 0x49, 0xe6, 0x63, 0x59, 0x58, 0x03,
+ 0x59, 0x36, 0xc4, 0x8d, 0x90, 0x82, 0xde, 0x39,
+};
+static const unsigned char kat589_addin0[] = {
+ 0x72, 0x63, 0x49, 0xa1, 0xe5, 0x2b, 0xe8, 0xb8, 0x4b, 0x15, 0x75, 0x82,
+ 0x7e, 0xae, 0x96, 0xef, 0xc1, 0xc1, 0x15, 0x51, 0xb3, 0x5c, 0x68, 0xa0,
+ 0x4e, 0x89, 0xbd, 0x12, 0x55, 0x89, 0x82, 0x7a,
+};
+static const unsigned char kat589_addin1[] = {
+ 0xe9, 0x43, 0x56, 0x9b, 0xac, 0x0d, 0x0e, 0x6b, 0x41, 0x00, 0xba, 0x89,
+ 0xc6, 0xf3, 0x2d, 0xd7, 0xed, 0x64, 0x57, 0x33, 0x57, 0xc5, 0x77, 0x83,
+ 0xf3, 0xd0, 0xe0, 0xf6, 0x9e, 0xaf, 0xdd, 0x1f,
+};
+static const unsigned char kat589_retbits[] = {
+ 0xba, 0x58, 0x11, 0x9f, 0x27, 0x47, 0xdd, 0xe7, 0xfc, 0x00, 0x0e, 0x22,
+ 0x09, 0x0a, 0xe3, 0x25, 0x6a, 0xec, 0xd2, 0x64, 0xcd, 0xcf, 0x77, 0xd3,
+ 0xc5, 0x1f, 0x32, 0xfa, 0x96, 0xb2, 0x44, 0xfe, 0xed, 0x32, 0x05, 0xfa,
+ 0xd9, 0x0d, 0x98, 0xa4, 0x27, 0x27, 0xb5, 0x51, 0xcd, 0xdc, 0xb3, 0xfa,
+ 0x28, 0x87, 0x0c, 0x08, 0xf0, 0x2d, 0x86, 0x5b, 0x4c, 0x39, 0xcd, 0x1e,
+ 0x36, 0x81, 0x8a, 0x23,
+};
+static const struct drbg_kat_no_reseed kat589_t = {
+ 3, kat589_entropyin, kat589_nonce, kat589_persstr,
+ kat589_addin0, kat589_addin1, kat589_retbits
+};
+static const struct drbg_kat kat589 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat589_t
+};
+
+static const unsigned char kat590_entropyin[] = {
+ 0x85, 0x24, 0x10, 0x08, 0x36, 0x34, 0x04, 0x7a, 0x3f, 0x9a, 0xa8, 0xc7,
+ 0x72, 0x51, 0x7c, 0x6c, 0x91, 0x2f, 0xa9, 0x5b, 0xab, 0x1d, 0xa0, 0x9a,
+ 0x3a, 0x70, 0x53, 0xc4, 0xbb, 0xaf, 0x75, 0x01,
+};
+static const unsigned char kat590_nonce[] = {
+ 0x49, 0xcc, 0xe5, 0xd8, 0x7b, 0xc9, 0x05, 0xe9, 0x8b, 0xc5, 0xbd, 0x3f,
+ 0x2f, 0x6b, 0xaa, 0x0e,
+};
+static const unsigned char kat590_persstr[] = {
+ 0x79, 0xe7, 0x15, 0x35, 0xed, 0x28, 0xe0, 0x80, 0xa2, 0xa0, 0x24, 0xbe,
+ 0xf6, 0x02, 0x04, 0x37, 0x74, 0x19, 0xc1, 0x3b, 0x0f, 0x57, 0x37, 0x39,
+ 0xb2, 0xe3, 0x8a, 0xd2, 0xd9, 0x4e, 0x98, 0x01,
+};
+static const unsigned char kat590_addin0[] = {
+ 0x7c, 0x8d, 0xd0, 0xaa, 0xc5, 0x36, 0x11, 0x4f, 0x88, 0xe6, 0xdb, 0xa6,
+ 0x8c, 0x73, 0xda, 0x37, 0xb7, 0x70, 0x06, 0xc5, 0xa4, 0x4e, 0x78, 0x6e,
+ 0x5f, 0x62, 0xae, 0xa3, 0x65, 0x58, 0xf9, 0x45,
+};
+static const unsigned char kat590_addin1[] = {
+ 0x05, 0xac, 0xd9, 0x92, 0x1c, 0x8d, 0xec, 0xd6, 0x0b, 0xc9, 0xcd, 0x12,
+ 0x49, 0x25, 0xc8, 0xb5, 0x1b, 0xac, 0x8a, 0x63, 0x29, 0xe4, 0x63, 0x2d,
+ 0xbf, 0x07, 0x65, 0x32, 0xeb, 0xff, 0x92, 0x96,
+};
+static const unsigned char kat590_retbits[] = {
+ 0x90, 0xb4, 0x1b, 0x64, 0x4a, 0xd0, 0x53, 0xd3, 0x6c, 0xff, 0x4c, 0xeb,
+ 0x3d, 0x67, 0xc0, 0xf0, 0x64, 0xec, 0x43, 0x87, 0x42, 0xd7, 0x14, 0xcd,
+ 0xdd, 0x62, 0x4f, 0xed, 0x5d, 0xef, 0xce, 0x1c, 0xea, 0xca, 0xb3, 0x25,
+ 0xc1, 0x40, 0x01, 0x73, 0x16, 0xf2, 0x9a, 0xef, 0xf2, 0x32, 0x24, 0x4c,
+ 0x5d, 0x0a, 0x02, 0x04, 0xee, 0xd8, 0xcd, 0xd7, 0xda, 0x34, 0x6d, 0xb2,
+ 0x9d, 0xe7, 0xaa, 0x8e,
+};
+static const struct drbg_kat_no_reseed kat590_t = {
+ 4, kat590_entropyin, kat590_nonce, kat590_persstr,
+ kat590_addin0, kat590_addin1, kat590_retbits
+};
+static const struct drbg_kat kat590 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat590_t
+};
+
+static const unsigned char kat591_entropyin[] = {
+ 0xbb, 0x56, 0x82, 0x66, 0x31, 0x8d, 0x93, 0x65, 0x09, 0x26, 0x57, 0xec,
+ 0xfa, 0xf0, 0x5a, 0xc7, 0x0c, 0x8d, 0xfd, 0x79, 0x7a, 0x47, 0xc7, 0xe8,
+ 0x5b, 0x51, 0xcb, 0x61, 0x26, 0xa0, 0xe6, 0x93,
+};
+static const unsigned char kat591_nonce[] = {
+ 0xdc, 0xd3, 0x5d, 0x62, 0x80, 0xf4, 0x0b, 0xeb, 0xc8, 0x21, 0x25, 0xea,
+ 0x28, 0xbe, 0x7a, 0x80,
+};
+static const unsigned char kat591_persstr[] = {
+ 0x7b, 0x25, 0x4b, 0xba, 0x67, 0x74, 0xfc, 0x1f, 0x60, 0x1c, 0x0f, 0x2f,
+ 0x9f, 0x90, 0x02, 0xa2, 0x90, 0x26, 0x9c, 0xb6, 0x56, 0x2d, 0x15, 0x0d,
+ 0x4b, 0x3a, 0x32, 0x11, 0x5c, 0xe4, 0x31, 0x3d,
+};
+static const unsigned char kat591_addin0[] = {
+ 0x97, 0x14, 0xe5, 0x46, 0x0f, 0xed, 0x9b, 0x43, 0xb3, 0x03, 0x83, 0x3a,
+ 0x60, 0x01, 0xfe, 0x0b, 0x07, 0x1a, 0x43, 0x94, 0xd1, 0x03, 0x49, 0xb5,
+ 0x6a, 0xd1, 0xaa, 0x5c, 0x51, 0x14, 0xf9, 0x26,
+};
+static const unsigned char kat591_addin1[] = {
+ 0xb1, 0x3a, 0x4e, 0x44, 0x21, 0xac, 0x55, 0x3f, 0x5c, 0x16, 0x6f, 0xd9,
+ 0x48, 0xb7, 0x58, 0x79, 0x4e, 0x57, 0xcc, 0x0c, 0xc0, 0xe7, 0x3e, 0x76,
+ 0x0d, 0xff, 0x26, 0xbe, 0xc8, 0xcf, 0x81, 0xe8,
+};
+static const unsigned char kat591_retbits[] = {
+ 0x5d, 0xb4, 0x68, 0x50, 0x19, 0x62, 0x02, 0x48, 0xac, 0x08, 0xd0, 0x23,
+ 0xd2, 0xd6, 0x05, 0x06, 0xe2, 0x1d, 0x94, 0xd1, 0x56, 0xb9, 0xa1, 0xc3,
+ 0x90, 0x90, 0x3b, 0xf2, 0x51, 0xd1, 0xb1, 0xff, 0x3b, 0x46, 0xe0, 0x13,
+ 0xa2, 0xc6, 0xd9, 0x2a, 0x9f, 0x70, 0xa2, 0xb1, 0x8b, 0xbd, 0x75, 0x84,
+ 0xa2, 0xf0, 0xa1, 0x9d, 0x77, 0x0c, 0xa0, 0x16, 0xee, 0x5a, 0x5f, 0x83,
+ 0xfa, 0xf1, 0x78, 0xd7,
+};
+static const struct drbg_kat_no_reseed kat591_t = {
+ 5, kat591_entropyin, kat591_nonce, kat591_persstr,
+ kat591_addin0, kat591_addin1, kat591_retbits
+};
+static const struct drbg_kat kat591 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat591_t
+};
+
+static const unsigned char kat592_entropyin[] = {
+ 0x34, 0x00, 0x27, 0x77, 0x37, 0x42, 0xa6, 0xe9, 0x15, 0x53, 0xa7, 0xba,
+ 0x65, 0x44, 0x38, 0x8e, 0x74, 0xe3, 0xdd, 0xfc, 0x11, 0x51, 0xfd, 0xb9,
+ 0xb7, 0x63, 0xa9, 0xd1, 0x6c, 0xbe, 0x59, 0x7a,
+};
+static const unsigned char kat592_nonce[] = {
+ 0xe6, 0x04, 0x47, 0x01, 0x69, 0x51, 0x28, 0x08, 0xcd, 0x4a, 0x13, 0x1b,
+ 0xb1, 0x82, 0x78, 0x0b,
+};
+static const unsigned char kat592_persstr[] = {
+ 0x21, 0x0f, 0x36, 0xc9, 0x6b, 0x6b, 0x19, 0xf4, 0xb5, 0x59, 0x16, 0x1c,
+ 0x60, 0xc4, 0x8d, 0xf2, 0x96, 0xbf, 0xfc, 0xcc, 0xce, 0x09, 0x08, 0x59,
+ 0x9a, 0xba, 0xa4, 0x00, 0x17, 0x7a, 0x96, 0xe9,
+};
+static const unsigned char kat592_addin0[] = {
+ 0xd5, 0x5d, 0x98, 0x16, 0xd5, 0xc4, 0xe2, 0xe2, 0xe1, 0x81, 0x12, 0x6b,
+ 0xc0, 0x80, 0x40, 0xa9, 0xf6, 0x53, 0xed, 0x95, 0xea, 0x12, 0x4c, 0x64,
+ 0xe4, 0x05, 0x9e, 0x2f, 0x48, 0xff, 0xef, 0x10,
+};
+static const unsigned char kat592_addin1[] = {
+ 0x6c, 0x30, 0xa6, 0x4b, 0x1c, 0x73, 0xfb, 0xd0, 0x8d, 0xa5, 0xce, 0xbd,
+ 0xa1, 0x86, 0x42, 0xf7, 0x8a, 0x02, 0xbd, 0x32, 0x47, 0xab, 0x1d, 0x78,
+ 0xc1, 0xc0, 0x3f, 0x8a, 0x6c, 0xff, 0xdd, 0x89,
+};
+static const unsigned char kat592_retbits[] = {
+ 0x4f, 0xff, 0x81, 0xdb, 0xf1, 0xf4, 0x2e, 0xf5, 0x7b, 0xdb, 0xf6, 0xda,
+ 0x19, 0x43, 0x11, 0xdb, 0xc4, 0xb4, 0x64, 0xd3, 0xa1, 0x1a, 0x33, 0xc6,
+ 0x64, 0xc0, 0xd5, 0x98, 0x34, 0xec, 0x60, 0xa5, 0x83, 0xb3, 0x90, 0x8a,
+ 0xde, 0x9c, 0xc6, 0xfb, 0xb8, 0x9d, 0xeb, 0xb1, 0x98, 0xd1, 0x14, 0x3a,
+ 0xba, 0x2b, 0xc5, 0x75, 0x39, 0x83, 0x08, 0x6b, 0x42, 0x20, 0x98, 0xa2,
+ 0x38, 0x77, 0xcb, 0x2a,
+};
+static const struct drbg_kat_no_reseed kat592_t = {
+ 6, kat592_entropyin, kat592_nonce, kat592_persstr,
+ kat592_addin0, kat592_addin1, kat592_retbits
+};
+static const struct drbg_kat kat592 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat592_t
+};
+
+static const unsigned char kat593_entropyin[] = {
+ 0xb3, 0x6a, 0x98, 0xe6, 0xc5, 0xb2, 0x36, 0x98, 0x13, 0x5e, 0xb3, 0x5f,
+ 0x28, 0xdc, 0x83, 0x0a, 0xc6, 0xbc, 0x17, 0x17, 0xe5, 0xc3, 0xee, 0x3e,
+ 0xa1, 0x38, 0x01, 0xf8, 0xa8, 0xc9, 0x36, 0x5d,
+};
+static const unsigned char kat593_nonce[] = {
+ 0x7f, 0x13, 0x19, 0x97, 0xa9, 0x29, 0x22, 0x41, 0x3d, 0x83, 0x7c, 0xa5,
+ 0x0e, 0x17, 0xd9, 0x77,
+};
+static const unsigned char kat593_persstr[] = {
+ 0x1e, 0xd6, 0xb0, 0x7c, 0xb5, 0x25, 0x13, 0x4e, 0xce, 0xe3, 0x22, 0x00,
+ 0x71, 0x36, 0x01, 0xc1, 0x8a, 0xbd, 0x9c, 0x79, 0x20, 0xe7, 0xad, 0x1d,
+ 0xc0, 0x76, 0x4c, 0xd9, 0x2e, 0x3d, 0x56, 0xff,
+};
+static const unsigned char kat593_addin0[] = {
+ 0xa4, 0xef, 0x95, 0x75, 0xb9, 0x66, 0x82, 0xd7, 0x55, 0x2f, 0x9e, 0xb7,
+ 0xba, 0x26, 0x9c, 0x43, 0xa5, 0x08, 0x35, 0xf2, 0x3f, 0xb2, 0xcf, 0x1f,
+ 0x81, 0x83, 0x8e, 0x9c, 0x01, 0xb1, 0xea, 0x40,
+};
+static const unsigned char kat593_addin1[] = {
+ 0x18, 0x9b, 0xcd, 0x45, 0xfa, 0x13, 0x93, 0x98, 0x38, 0x66, 0x3a, 0xde,
+ 0x2e, 0xaf, 0x19, 0x79, 0xb3, 0x3c, 0x17, 0x2f, 0x5e, 0xd7, 0x41, 0x12,
+ 0x3f, 0x06, 0xa2, 0xe3, 0xca, 0x25, 0x42, 0x7f,
+};
+static const unsigned char kat593_retbits[] = {
+ 0xc8, 0xb6, 0xcc, 0x90, 0x1c, 0x42, 0x36, 0xbd, 0x39, 0x14, 0xbc, 0x77,
+ 0x98, 0x7d, 0x9d, 0x63, 0x99, 0x73, 0xd6, 0x9c, 0x96, 0xe0, 0x40, 0x19,
+ 0x77, 0x37, 0xb9, 0xa7, 0x2b, 0xbf, 0x3b, 0x5e, 0x89, 0x98, 0xc5, 0x49,
+ 0x67, 0xbd, 0xae, 0x26, 0x14, 0x67, 0x72, 0x71, 0x6e, 0xd2, 0xae, 0x0c,
+ 0x6b, 0x20, 0x84, 0x71, 0xbd, 0xf2, 0x1a, 0x85, 0xb2, 0x77, 0x4b, 0xf7,
+ 0xe5, 0x16, 0xb3, 0x4f,
+};
+static const struct drbg_kat_no_reseed kat593_t = {
+ 7, kat593_entropyin, kat593_nonce, kat593_persstr,
+ kat593_addin0, kat593_addin1, kat593_retbits
+};
+static const struct drbg_kat kat593 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat593_t
+};
+
+static const unsigned char kat594_entropyin[] = {
+ 0xc0, 0x0c, 0xdf, 0x7e, 0x0e, 0x78, 0x6a, 0x07, 0x93, 0x78, 0x3b, 0x6c,
+ 0xed, 0xc3, 0x7d, 0x6d, 0x05, 0x04, 0xd8, 0xc5, 0xeb, 0xff, 0x06, 0x30,
+ 0x14, 0xcf, 0x81, 0x09, 0x2c, 0xf6, 0x1d, 0x11,
+};
+static const unsigned char kat594_nonce[] = {
+ 0x94, 0x21, 0x43, 0x51, 0x9f, 0x87, 0xb3, 0x83, 0x5a, 0x0e, 0xdc, 0xa2,
+ 0xd4, 0xcd, 0x22, 0x85,
+};
+static const unsigned char kat594_persstr[] = {
+ 0x3a, 0x95, 0x3e, 0x04, 0x1c, 0x7e, 0x5d, 0x30, 0x63, 0x2d, 0x34, 0xa7,
+ 0xe8, 0x14, 0xf4, 0xfa, 0xcc, 0x85, 0x8d, 0xe6, 0xb8, 0xfb, 0x3c, 0x43,
+ 0x29, 0x73, 0xa4, 0xdb, 0x4a, 0x5a, 0x78, 0xc2,
+};
+static const unsigned char kat594_addin0[] = {
+ 0x1f, 0xab, 0x18, 0x06, 0x26, 0x0c, 0x24, 0x25, 0x95, 0x36, 0xe1, 0x45,
+ 0x74, 0xbb, 0xef, 0x9b, 0xe5, 0x0e, 0xda, 0x48, 0x93, 0x63, 0x32, 0xd6,
+ 0x0b, 0xc3, 0xdb, 0xcf, 0x6b, 0x10, 0xf5, 0xf7,
+};
+static const unsigned char kat594_addin1[] = {
+ 0x18, 0xcc, 0xe3, 0x08, 0x95, 0x6e, 0x63, 0x50, 0x5d, 0x43, 0xdd, 0xc2,
+ 0x87, 0x09, 0xea, 0xcc, 0x78, 0x3a, 0x14, 0x93, 0x15, 0x93, 0xd0, 0x79,
+ 0xd6, 0xbd, 0x74, 0xa6, 0x95, 0xc3, 0x07, 0x5a,
+};
+static const unsigned char kat594_retbits[] = {
+ 0x9f, 0x4d, 0x77, 0xd3, 0x94, 0x81, 0x51, 0x48, 0x16, 0x2d, 0x6c, 0xca,
+ 0xa8, 0xb7, 0x3c, 0xbd, 0x61, 0xb5, 0x4c, 0x5d, 0xb1, 0x04, 0xe7, 0xc0,
+ 0x47, 0xbf, 0x0a, 0x22, 0x5a, 0xe0, 0x55, 0x94, 0x33, 0x2b, 0xb5, 0x6c,
+ 0x60, 0xd5, 0x1d, 0x29, 0x86, 0xe5, 0x75, 0x13, 0xf4, 0xc2, 0x66, 0xdf,
+ 0x39, 0xd9, 0xbe, 0xee, 0x9b, 0x69, 0x64, 0x98, 0x91, 0xb6, 0xcc, 0xae,
+ 0xf4, 0xb9, 0x86, 0xbd,
+};
+static const struct drbg_kat_no_reseed kat594_t = {
+ 8, kat594_entropyin, kat594_nonce, kat594_persstr,
+ kat594_addin0, kat594_addin1, kat594_retbits
+};
+static const struct drbg_kat kat594 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat594_t
+};
+
+static const unsigned char kat595_entropyin[] = {
+ 0xfb, 0x5f, 0x69, 0x58, 0x20, 0x3f, 0xa7, 0xbd, 0x06, 0x66, 0x55, 0xef,
+ 0x7b, 0x5f, 0xde, 0x99, 0xa5, 0x71, 0x94, 0x7e, 0x1f, 0x74, 0xb8, 0xb8,
+ 0xf5, 0x3a, 0x85, 0x4d, 0xbb, 0xbc, 0x35, 0x2e,
+};
+static const unsigned char kat595_nonce[] = {
+ 0x02, 0x90, 0xfb, 0x96, 0xdd, 0xae, 0xd0, 0xd8, 0x17, 0x9a, 0x07, 0x95,
+ 0xee, 0x1c, 0xd5, 0x29,
+};
+static const unsigned char kat595_persstr[] = {
+ 0xc5, 0x9d, 0x3d, 0x2f, 0xe3, 0x0b, 0x85, 0xed, 0x64, 0xdb, 0x2c, 0x9a,
+ 0xe8, 0x63, 0xb9, 0xda, 0xad, 0x7b, 0xf9, 0x6c, 0x33, 0x1d, 0x66, 0xdf,
+ 0x94, 0x5f, 0x5f, 0x3a, 0x1f, 0x8d, 0x25, 0x15,
+};
+static const unsigned char kat595_addin0[] = {
+ 0xc9, 0x9d, 0x7f, 0xe2, 0xde, 0xb6, 0xaf, 0x99, 0xa1, 0x78, 0x2e, 0x8f,
+ 0xc1, 0x2a, 0x51, 0x96, 0x36, 0x47, 0x1f, 0xc3, 0xbf, 0xad, 0x0a, 0xc2,
+ 0xa7, 0x89, 0xa2, 0xf2, 0x0f, 0x4d, 0xf6, 0x3f,
+};
+static const unsigned char kat595_addin1[] = {
+ 0xe4, 0x79, 0xac, 0x18, 0xb2, 0xfe, 0xd6, 0xd9, 0xf2, 0xee, 0x44, 0x1a,
+ 0x20, 0xbd, 0x50, 0xaa, 0xdd, 0x2a, 0x90, 0xba, 0x96, 0x25, 0xac, 0xe0,
+ 0x1a, 0x44, 0x49, 0xa6, 0xce, 0x6e, 0xfa, 0x92,
+};
+static const unsigned char kat595_retbits[] = {
+ 0x0a, 0xb8, 0x70, 0xc2, 0x51, 0x6e, 0xac, 0x1e, 0xf1, 0xe6, 0xdd, 0x3f,
+ 0x2d, 0xe9, 0xdd, 0x05, 0x64, 0xa5, 0x63, 0x63, 0xf0, 0xb8, 0xc4, 0x2b,
+ 0x4b, 0xae, 0x4b, 0x22, 0xe1, 0x4c, 0x99, 0x12, 0xb4, 0xc1, 0xcb, 0xa8,
+ 0xf3, 0x15, 0x8e, 0xb5, 0x88, 0x1b, 0x86, 0x52, 0x4c, 0x94, 0xcb, 0xb2,
+ 0xc8, 0x16, 0x9f, 0xc8, 0xcc, 0x2c, 0x13, 0x10, 0x3a, 0x64, 0x78, 0x33,
+ 0x7f, 0x2b, 0xb0, 0x0a,
+};
+static const struct drbg_kat_no_reseed kat595_t = {
+ 9, kat595_entropyin, kat595_nonce, kat595_persstr,
+ kat595_addin0, kat595_addin1, kat595_retbits
+};
+static const struct drbg_kat kat595 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat595_t
+};
+
+static const unsigned char kat596_entropyin[] = {
+ 0xa4, 0xc9, 0x75, 0x00, 0x48, 0xb3, 0x35, 0x54, 0xe2, 0x47, 0x59, 0xa3,
+ 0x76, 0x27, 0xc4, 0x0f, 0xa7, 0xd2, 0xbc, 0xc0, 0x45, 0xb0, 0x6b, 0xd2,
+ 0x2a, 0x8d, 0x90, 0xae, 0x1a, 0x8c, 0xa2, 0x79,
+};
+static const unsigned char kat596_nonce[] = {
+ 0xba, 0xa1, 0x37, 0xff, 0xca, 0xd7, 0x2d, 0x25, 0x82, 0xc4, 0xc3, 0x48,
+ 0xb1, 0x2b, 0x81, 0x58,
+};
+static const unsigned char kat596_persstr[] = {
+ 0xa4, 0xf1, 0x15, 0x88, 0x5e, 0x0f, 0x45, 0xc4, 0x58, 0x0d, 0x04, 0xca,
+ 0xfc, 0xfb, 0xa8, 0xec, 0x09, 0xc5, 0xe0, 0x81, 0xb6, 0x5d, 0x64, 0x85,
+ 0x67, 0xc5, 0x5a, 0x9d, 0x65, 0x1e, 0x52, 0x1c,
+};
+static const unsigned char kat596_addin0[] = {
+ 0xeb, 0x8e, 0x2a, 0xa1, 0x82, 0xfb, 0xf7, 0x85, 0xf2, 0x5d, 0xa7, 0xf5,
+ 0x70, 0x54, 0xb7, 0x01, 0x71, 0xe5, 0xa2, 0x6a, 0xfc, 0x5a, 0x61, 0xaa,
+ 0xa1, 0xf9, 0x2f, 0xb4, 0xcb, 0x3a, 0xc5, 0x0c,
+};
+static const unsigned char kat596_addin1[] = {
+ 0xa4, 0x4a, 0xa0, 0xb5, 0x25, 0x5b, 0xa3, 0x39, 0xbc, 0x3c, 0xd1, 0x71,
+ 0x5e, 0xc6, 0xa8, 0xd5, 0x56, 0x99, 0xe1, 0xb4, 0x99, 0x6b, 0x9d, 0x73,
+ 0x7d, 0xa8, 0x3b, 0x8a, 0x35, 0x70, 0x45, 0xb2,
+};
+static const unsigned char kat596_retbits[] = {
+ 0x53, 0xf7, 0x4f, 0xe7, 0xab, 0x0a, 0xd3, 0x1d, 0x5d, 0xf0, 0x32, 0x7e,
+ 0x6d, 0xbc, 0xf5, 0xde, 0xeb, 0x3f, 0x0b, 0xd9, 0xd1, 0xff, 0x50, 0xb7,
+ 0xa9, 0xd5, 0x22, 0xfd, 0x9c, 0x9c, 0x3f, 0x63, 0x3e, 0x53, 0xce, 0x1d,
+ 0x31, 0x66, 0xaa, 0x7f, 0x2a, 0x25, 0xe3, 0x2d, 0x04, 0x88, 0xff, 0x07,
+ 0x89, 0xa1, 0xb9, 0x81, 0x88, 0x6d, 0x4a, 0xbd, 0xd2, 0x01, 0x4d, 0xe3,
+ 0x25, 0x9d, 0x40, 0x64,
+};
+static const struct drbg_kat_no_reseed kat596_t = {
+ 10, kat596_entropyin, kat596_nonce, kat596_persstr,
+ kat596_addin0, kat596_addin1, kat596_retbits
+};
+static const struct drbg_kat kat596 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat596_t
+};
+
+static const unsigned char kat597_entropyin[] = {
+ 0x30, 0xb0, 0x28, 0x27, 0xca, 0xcd, 0xcb, 0xd1, 0xd9, 0x97, 0x1a, 0xf6,
+ 0x88, 0xa4, 0x5a, 0x6b, 0x31, 0x1e, 0x49, 0x56, 0x14, 0x29, 0xfa, 0xec,
+ 0x6a, 0xef, 0x87, 0x67, 0x1b, 0xac, 0xc6, 0xf9,
+};
+static const unsigned char kat597_nonce[] = {
+ 0x1b, 0x17, 0x46, 0xf7, 0x69, 0x39, 0xeb, 0x07, 0x18, 0x32, 0x86, 0x96,
+ 0x5e, 0xe6, 0x48, 0xab,
+};
+static const unsigned char kat597_persstr[] = {
+ 0x6b, 0x4f, 0x4b, 0x56, 0x56, 0x93, 0x48, 0x26, 0x93, 0xf6, 0x96, 0x51,
+ 0x21, 0x04, 0xec, 0x1a, 0xe1, 0x2a, 0xc6, 0x5a, 0x7c, 0xe0, 0xba, 0xbb,
+ 0xf1, 0x93, 0xf1, 0xfd, 0xc4, 0xc2, 0x31, 0xed,
+};
+static const unsigned char kat597_addin0[] = {
+ 0x1e, 0x3a, 0xdf, 0x2b, 0x30, 0xf2, 0x88, 0xb2, 0xa1, 0x8d, 0x28, 0x7c,
+ 0x1b, 0x05, 0x3a, 0xfb, 0x7e, 0x51, 0x3f, 0x6d, 0xe9, 0x03, 0x86, 0xab,
+ 0xb9, 0xda, 0x60, 0x41, 0x94, 0x15, 0xcd, 0x72,
+};
+static const unsigned char kat597_addin1[] = {
+ 0xe1, 0x92, 0x54, 0xcf, 0x8b, 0xb5, 0x02, 0x3f, 0xdf, 0x51, 0x26, 0x9b,
+ 0x83, 0xa9, 0x61, 0xf5, 0xa3, 0x47, 0xf5, 0x42, 0x98, 0xa3, 0x19, 0x66,
+ 0x98, 0xd4, 0xc9, 0xfa, 0xe3, 0xca, 0x2c, 0xcb,
+};
+static const unsigned char kat597_retbits[] = {
+ 0x47, 0x3b, 0xe3, 0x98, 0xde, 0x0e, 0x2e, 0x5c, 0xdc, 0x50, 0x52, 0x9e,
+ 0x6c, 0xeb, 0x02, 0x22, 0xb4, 0x03, 0x8e, 0x8e, 0x07, 0x76, 0xe9, 0x6c,
+ 0x27, 0x74, 0x21, 0xed, 0xc1, 0x0f, 0x2a, 0x84, 0x1d, 0xec, 0x9f, 0x07,
+ 0xc8, 0x2f, 0x00, 0xe2, 0xf5, 0x30, 0x62, 0xab, 0x68, 0xe3, 0xf7, 0xd4,
+ 0xeb, 0xdc, 0x18, 0x99, 0x9e, 0x36, 0x2e, 0xe9, 0x04, 0xa0, 0xba, 0xf4,
+ 0x42, 0x29, 0xb5, 0x9c,
+};
+static const struct drbg_kat_no_reseed kat597_t = {
+ 11, kat597_entropyin, kat597_nonce, kat597_persstr,
+ kat597_addin0, kat597_addin1, kat597_retbits
+};
+static const struct drbg_kat kat597 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat597_t
+};
+
+static const unsigned char kat598_entropyin[] = {
+ 0x55, 0x4c, 0x46, 0x7d, 0xfd, 0x02, 0xc9, 0x63, 0x97, 0x25, 0x18, 0x37,
+ 0x85, 0xae, 0xcd, 0x6c, 0x0f, 0x5a, 0x32, 0x80, 0xc6, 0x1c, 0x82, 0x2b,
+ 0xab, 0x02, 0xf1, 0xd7, 0x41, 0x3f, 0x43, 0x61,
+};
+static const unsigned char kat598_nonce[] = {
+ 0x6f, 0xf6, 0xa4, 0xac, 0xc5, 0xa5, 0x8c, 0x68, 0x1d, 0xe9, 0xa5, 0x44,
+ 0x1a, 0x9f, 0x75, 0x6f,
+};
+static const unsigned char kat598_persstr[] = {
+ 0x6a, 0xce, 0xc4, 0xa4, 0xc0, 0xbe, 0x17, 0x21, 0x8e, 0x7c, 0x3f, 0x42,
+ 0x46, 0x64, 0x09, 0x20, 0xaa, 0xc4, 0x8f, 0xb3, 0x80, 0x09, 0x14, 0xdb,
+ 0x2f, 0x86, 0xdc, 0x53, 0x90, 0x3b, 0x09, 0xaf,
+};
+static const unsigned char kat598_addin0[] = {
+ 0xcd, 0x24, 0x87, 0x5c, 0xdf, 0x70, 0xeb, 0x4f, 0xb7, 0x1c, 0x01, 0x23,
+ 0xe0, 0xeb, 0x73, 0x8a, 0x71, 0xdd, 0x76, 0xf3, 0x6f, 0xf5, 0x4b, 0x9b,
+ 0x7e, 0xc7, 0x06, 0xce, 0xf0, 0xe0, 0x35, 0xf5,
+};
+static const unsigned char kat598_addin1[] = {
+ 0x99, 0xd6, 0x71, 0xe8, 0xf8, 0xe7, 0x2c, 0xf8, 0xe9, 0xa0, 0x2e, 0x76,
+ 0x30, 0x64, 0x8c, 0xed, 0x53, 0xac, 0x39, 0x3f, 0x6f, 0xc0, 0x42, 0x5e,
+ 0x5f, 0x52, 0x5e, 0xb4, 0x13, 0xd3, 0x75, 0xdd,
+};
+static const unsigned char kat598_retbits[] = {
+ 0x35, 0xbe, 0xae, 0x85, 0x58, 0xe9, 0xb5, 0xec, 0xb3, 0x0b, 0x1b, 0xf5,
+ 0xab, 0xc5, 0x23, 0x10, 0x21, 0x91, 0x96, 0xb5, 0x81, 0x23, 0x25, 0x70,
+ 0x43, 0xd2, 0x79, 0x3c, 0x05, 0xc9, 0x65, 0xe6, 0x25, 0x8a, 0xf7, 0x83,
+ 0xec, 0xee, 0x80, 0xb3, 0x39, 0x29, 0xa3, 0xfd, 0xd7, 0x7a, 0x8b, 0x1a,
+ 0xdf, 0xfb, 0x72, 0x3b, 0xcf, 0xe7, 0xe6, 0x5f, 0x7c, 0xac, 0x68, 0x28,
+ 0x62, 0x22, 0x0f, 0x4e,
+};
+static const struct drbg_kat_no_reseed kat598_t = {
+ 12, kat598_entropyin, kat598_nonce, kat598_persstr,
+ kat598_addin0, kat598_addin1, kat598_retbits
+};
+static const struct drbg_kat kat598 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat598_t
+};
+
+static const unsigned char kat599_entropyin[] = {
+ 0x93, 0xee, 0x61, 0xdd, 0x85, 0x0c, 0x0c, 0x97, 0x27, 0x36, 0xaa, 0x98,
+ 0xdc, 0x18, 0xbb, 0x3a, 0xdd, 0x52, 0x9e, 0xb9, 0x25, 0x83, 0x21, 0x1a,
+ 0x29, 0x8f, 0xb0, 0x8d, 0xf1, 0x7a, 0x7a, 0xf7,
+};
+static const unsigned char kat599_nonce[] = {
+ 0x0a, 0x4d, 0xf3, 0x17, 0x78, 0x47, 0x51, 0x08, 0x2b, 0x98, 0x2c, 0x85,
+ 0x71, 0x7c, 0xdc, 0x2c,
+};
+static const unsigned char kat599_persstr[] = {
+ 0xf4, 0xf1, 0x0e, 0x09, 0x5e, 0x9f, 0x5f, 0xaa, 0xcc, 0xa2, 0x4f, 0x53,
+ 0x95, 0xa7, 0x3c, 0xb1, 0x53, 0x85, 0x65, 0xdf, 0x67, 0x9c, 0x87, 0x54,
+ 0xb7, 0xad, 0x94, 0xe8, 0x36, 0xf6, 0x91, 0x68,
+};
+static const unsigned char kat599_addin0[] = {
+ 0x87, 0x6e, 0x00, 0x2f, 0x90, 0xf5, 0x06, 0x3d, 0xdd, 0x5c, 0x57, 0x8d,
+ 0x9d, 0x9f, 0x4a, 0x2a, 0x9b, 0xde, 0x7e, 0xf2, 0x8a, 0x41, 0xd9, 0xc2,
+ 0x77, 0xa4, 0x89, 0xe8, 0x5a, 0xfb, 0x63, 0x5b,
+};
+static const unsigned char kat599_addin1[] = {
+ 0xc2, 0x56, 0x2e, 0xc2, 0x35, 0x3e, 0x63, 0xe1, 0x3e, 0x6c, 0x6f, 0x6f,
+ 0x06, 0xe1, 0xba, 0x22, 0x0b, 0x08, 0x48, 0xbe, 0x35, 0x3e, 0x5b, 0xd4,
+ 0x46, 0x89, 0x21, 0xb9, 0xbf, 0x26, 0x49, 0xfa,
+};
+static const unsigned char kat599_retbits[] = {
+ 0xd4, 0xcf, 0x47, 0x8c, 0x91, 0xba, 0x19, 0x73, 0xa7, 0xcf, 0xae, 0x15,
+ 0x9b, 0x8e, 0x4c, 0x05, 0x25, 0xb2, 0x96, 0xb5, 0x44, 0xfd, 0x85, 0x44,
+ 0xf4, 0xff, 0x10, 0xe7, 0xa2, 0xc5, 0xae, 0xbb, 0xe8, 0xb5, 0xa1, 0x0f,
+ 0xef, 0x16, 0xf4, 0xa9, 0x1c, 0x19, 0x93, 0x09, 0x0b, 0xe7, 0x62, 0x8c,
+ 0xe2, 0x1f, 0x53, 0xe2, 0xb4, 0xe7, 0xd6, 0xc2, 0xf1, 0x4b, 0xe3, 0x44,
+ 0x18, 0x8f, 0xa4, 0xe6,
+};
+static const struct drbg_kat_no_reseed kat599_t = {
+ 13, kat599_entropyin, kat599_nonce, kat599_persstr,
+ kat599_addin0, kat599_addin1, kat599_retbits
+};
+static const struct drbg_kat kat599 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat599_t
+};
+
+static const unsigned char kat600_entropyin[] = {
+ 0xac, 0x38, 0xc3, 0x8c, 0x49, 0x8b, 0xf9, 0xb7, 0xcc, 0x72, 0x4f, 0x79,
+ 0x27, 0x06, 0xa0, 0x7b, 0x87, 0xe4, 0xbb, 0xa1, 0x92, 0x9a, 0x41, 0x8b,
+ 0x03, 0xb7, 0x42, 0xe4, 0xb0, 0xca, 0xe3, 0x9a,
+};
+static const unsigned char kat600_nonce[] = {
+ 0x80, 0x85, 0xcb, 0x0e, 0xf7, 0xd5, 0x46, 0xee, 0x8d, 0x4f, 0x9b, 0xb1,
+ 0x83, 0xde, 0x56, 0xe4,
+};
+static const unsigned char kat600_persstr[] = {
+ 0x73, 0xf2, 0xd1, 0x80, 0xa4, 0xd2, 0xc7, 0x36, 0x4a, 0x64, 0xbe, 0x7a,
+ 0xa7, 0x57, 0xbe, 0x6d, 0xf2, 0x7d, 0x93, 0x7a, 0xe8, 0xda, 0x40, 0x6c,
+ 0x61, 0xd0, 0x35, 0x3d, 0xda, 0x31, 0x9f, 0xd5,
+};
+static const unsigned char kat600_addin0[] = {
+ 0xd3, 0xef, 0x42, 0xed, 0xc3, 0x18, 0xfe, 0x36, 0x24, 0xe7, 0x2f, 0x27,
+ 0x18, 0xd2, 0x74, 0xd7, 0xdb, 0xe2, 0xd8, 0x9f, 0xd8, 0xe3, 0xc4, 0xcf,
+ 0xc8, 0xa7, 0xa7, 0xa1, 0xb5, 0x02, 0x21, 0x6f,
+};
+static const unsigned char kat600_addin1[] = {
+ 0x1f, 0xbb, 0xd7, 0x3b, 0x62, 0xd4, 0x31, 0x0a, 0x63, 0x6f, 0xd5, 0x6d,
+ 0x28, 0x37, 0x44, 0xf4, 0x85, 0x91, 0xf9, 0x6a, 0x0b, 0x65, 0xf2, 0x4d,
+ 0x87, 0x11, 0xec, 0xf9, 0x2b, 0x3c, 0xe3, 0xdc,
+};
+static const unsigned char kat600_retbits[] = {
+ 0x75, 0xb4, 0x29, 0xd2, 0x65, 0x7e, 0x16, 0xc7, 0x32, 0x5d, 0x05, 0x70,
+ 0x00, 0x5c, 0x42, 0xb2, 0x21, 0x66, 0x4e, 0x8e, 0x1b, 0x0c, 0x1e, 0x69,
+ 0x54, 0xaa, 0xc3, 0x06, 0x2b, 0xbc, 0x84, 0xfd, 0xc6, 0x9e, 0xb2, 0xa5,
+ 0x4a, 0xff, 0xcc, 0x49, 0xb4, 0x01, 0xa2, 0x22, 0x1f, 0x68, 0xa9, 0x17,
+ 0x46, 0x31, 0x24, 0x45, 0xb0, 0x3d, 0xf1, 0xb8, 0xf9, 0xe9, 0xf2, 0xe3,
+ 0x4a, 0x7a, 0x1f, 0x70,
+};
+static const struct drbg_kat_no_reseed kat600_t = {
+ 14, kat600_entropyin, kat600_nonce, kat600_persstr,
+ kat600_addin0, kat600_addin1, kat600_retbits
+};
+static const struct drbg_kat kat600 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat600_t
+};
+
+static const unsigned char kat601_entropyin[] = {
+ 0x58, 0xa5, 0xf7, 0x9d, 0xa4, 0x4b, 0x9f, 0x23, 0xa9, 0x8a, 0x39, 0x35,
+ 0x29, 0x72, 0xad, 0x16, 0x03, 0x1f, 0xe1, 0x36, 0x37, 0xbd, 0x18, 0xd6,
+ 0xcb, 0x6c, 0x9f, 0x52, 0x69, 0xd8, 0xe2, 0x40,
+};
+static const unsigned char kat601_nonce[] = {
+ 0xaa, 0xa4, 0x66, 0x10, 0x68, 0x11, 0x67, 0xff, 0x8d, 0x4d, 0x2c, 0x51,
+ 0xe7, 0x79, 0x11, 0xd4,
+};
+static const unsigned char kat601_persstr[] = {0};
+static const unsigned char kat601_addin0[] = {0};
+static const unsigned char kat601_addin1[] = {0};
+static const unsigned char kat601_retbits[] = {
+ 0xc1, 0x71, 0x4f, 0x89, 0x45, 0x9c, 0xe7, 0x46, 0xb1, 0x51, 0x50, 0x9e,
+ 0x50, 0x66, 0xd4, 0x81, 0x1a, 0x06, 0xad, 0x06, 0xc1, 0xe9, 0xb1, 0x3b,
+ 0x50, 0xc0, 0xfc, 0x7c, 0xdd, 0x77, 0xce, 0xed, 0xc2, 0x33, 0x90, 0x8e,
+ 0xbe, 0x1e, 0xa8, 0x14, 0x0e, 0xc2, 0xdc, 0x26, 0x2a, 0x43, 0x20, 0x1b,
+ 0xe6, 0x67, 0x00, 0x8e, 0x08, 0x1e, 0x54, 0x76, 0xb1, 0x9b, 0x27, 0x21,
+ 0x41, 0x11, 0xd3, 0x25,
+};
+static const struct drbg_kat_no_reseed kat601_t = {
+ 0, kat601_entropyin, kat601_nonce, kat601_persstr,
+ kat601_addin0, kat601_addin1, kat601_retbits
+};
+static const struct drbg_kat kat601 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat601_t
+};
+
+static const unsigned char kat602_entropyin[] = {
+ 0xa9, 0x43, 0xe8, 0x09, 0x63, 0x04, 0x13, 0xde, 0x62, 0x07, 0x74, 0x6d,
+ 0x0d, 0x03, 0x41, 0x91, 0x3f, 0x46, 0x6a, 0xf0, 0xae, 0x89, 0x3c, 0xfb,
+ 0x34, 0x06, 0x57, 0x0b, 0x2f, 0xb7, 0x91, 0xcf,
+};
+static const unsigned char kat602_nonce[] = {
+ 0x90, 0x7b, 0x9c, 0xf7, 0xf9, 0xed, 0xf0, 0x4f, 0xcf, 0x35, 0x10, 0x31,
+ 0x5d, 0xd0, 0xc3, 0x81,
+};
+static const unsigned char kat602_persstr[] = {0};
+static const unsigned char kat602_addin0[] = {0};
+static const unsigned char kat602_addin1[] = {0};
+static const unsigned char kat602_retbits[] = {
+ 0xc3, 0xb8, 0x48, 0x88, 0xc5, 0x24, 0x4c, 0xdc, 0xbb, 0x94, 0x62, 0x99,
+ 0xcc, 0x38, 0x48, 0xc3, 0x79, 0xa9, 0xb7, 0x80, 0xe2, 0x1f, 0x02, 0x9f,
+ 0x0b, 0xb2, 0xfe, 0x81, 0x5a, 0x2d, 0x03, 0x9d, 0xd7, 0xaa, 0x8a, 0x2e,
+ 0x80, 0x8c, 0x2a, 0xc4, 0x7b, 0x8a, 0x9c, 0xb6, 0x86, 0x0b, 0x97, 0x04,
+ 0x40, 0x04, 0x9a, 0x65, 0xd8, 0x15, 0xe3, 0x36, 0x9e, 0xd8, 0x33, 0xc7,
+ 0x61, 0x24, 0xaa, 0xc1,
+};
+static const struct drbg_kat_no_reseed kat602_t = {
+ 1, kat602_entropyin, kat602_nonce, kat602_persstr,
+ kat602_addin0, kat602_addin1, kat602_retbits
+};
+static const struct drbg_kat kat602 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat602_t
+};
+
+static const unsigned char kat603_entropyin[] = {
+ 0x4d, 0x43, 0xce, 0xb1, 0xce, 0x9c, 0xac, 0xf5, 0x64, 0x03, 0xa0, 0xc9,
+ 0x90, 0x5d, 0xaa, 0x67, 0xa2, 0xac, 0xdd, 0xd0, 0xe4, 0xbe, 0x6a, 0x33,
+ 0x4b, 0x8c, 0x44, 0x34, 0xf4, 0xc6, 0x04, 0x55,
+};
+static const unsigned char kat603_nonce[] = {
+ 0x97, 0x72, 0xaa, 0xea, 0x3c, 0xd3, 0x0c, 0xa7, 0x76, 0xd6, 0x74, 0xbc,
+ 0xfb, 0x88, 0x4e, 0x18,
+};
+static const unsigned char kat603_persstr[] = {0};
+static const unsigned char kat603_addin0[] = {0};
+static const unsigned char kat603_addin1[] = {0};
+static const unsigned char kat603_retbits[] = {
+ 0x85, 0xc8, 0x7c, 0x47, 0x15, 0xc1, 0x6c, 0x4b, 0x75, 0x28, 0xd0, 0x40,
+ 0x23, 0x05, 0x63, 0x98, 0xff, 0x28, 0x28, 0xe0, 0xb6, 0x49, 0xfb, 0xd1,
+ 0x0a, 0x29, 0x7b, 0x74, 0xfc, 0x3d, 0xc0, 0xdf, 0x49, 0x66, 0xbc, 0xfc,
+ 0xd4, 0xf8, 0x2f, 0xdb, 0x22, 0x8f, 0xaf, 0x10, 0x2d, 0x52, 0xcc, 0xa0,
+ 0xd3, 0xae, 0x8a, 0xf7, 0xf0, 0xc5, 0xb3, 0x0f, 0xff, 0x62, 0xd0, 0xc5,
+ 0x45, 0xd3, 0xde, 0x79,
+};
+static const struct drbg_kat_no_reseed kat603_t = {
+ 2, kat603_entropyin, kat603_nonce, kat603_persstr,
+ kat603_addin0, kat603_addin1, kat603_retbits
+};
+static const struct drbg_kat kat603 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat603_t
+};
+
+static const unsigned char kat604_entropyin[] = {
+ 0xd4, 0x10, 0xcf, 0x13, 0xca, 0xe3, 0x65, 0xfa, 0xf3, 0x17, 0x2f, 0xb0,
+ 0xc2, 0x36, 0x84, 0x01, 0xf4, 0x43, 0xe7, 0x89, 0xa6, 0x2b, 0x3c, 0xe6,
+ 0xbc, 0x40, 0x02, 0x32, 0x49, 0xfe, 0x7d, 0xee,
+};
+static const unsigned char kat604_nonce[] = {
+ 0x22, 0xc3, 0x12, 0xb5, 0x2a, 0x06, 0x92, 0xeb, 0x38, 0x76, 0x33, 0x32,
+ 0xb6, 0xcd, 0x4a, 0xe9,
+};
+static const unsigned char kat604_persstr[] = {0};
+static const unsigned char kat604_addin0[] = {0};
+static const unsigned char kat604_addin1[] = {0};
+static const unsigned char kat604_retbits[] = {
+ 0xa0, 0x05, 0xf4, 0x0f, 0xde, 0xfa, 0x1e, 0x1d, 0xce, 0x22, 0xf7, 0x35,
+ 0xbf, 0x3e, 0x87, 0xea, 0xfc, 0x8e, 0xc3, 0x58, 0x4a, 0x6b, 0x2b, 0x80,
+ 0x45, 0xbe, 0x53, 0xbd, 0xe0, 0xb1, 0xcd, 0xc4, 0x6b, 0xe3, 0x80, 0xbe,
+ 0x86, 0x05, 0x38, 0xca, 0x0e, 0x97, 0x6e, 0xed, 0xda, 0xe4, 0xad, 0xd2,
+ 0x20, 0x42, 0x62, 0x35, 0x0d, 0x5f, 0x6e, 0x19, 0xe3, 0x4d, 0xb0, 0xfc,
+ 0x47, 0xdc, 0xd0, 0xec,
+};
+static const struct drbg_kat_no_reseed kat604_t = {
+ 3, kat604_entropyin, kat604_nonce, kat604_persstr,
+ kat604_addin0, kat604_addin1, kat604_retbits
+};
+static const struct drbg_kat kat604 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat604_t
+};
+
+static const unsigned char kat605_entropyin[] = {
+ 0xf8, 0x09, 0x72, 0xa5, 0xcd, 0x4e, 0x2e, 0x14, 0xb1, 0xf5, 0x21, 0x4d,
+ 0xd9, 0x3c, 0x54, 0x9d, 0xc5, 0x1e, 0xdb, 0x97, 0xc1, 0x44, 0x7d, 0x52,
+ 0xf3, 0xe9, 0x1b, 0x30, 0xc1, 0x5b, 0x74, 0x8c,
+};
+static const unsigned char kat605_nonce[] = {
+ 0xe1, 0xdf, 0xe4, 0xaa, 0x77, 0x7a, 0x0b, 0xeb, 0xd1, 0xfe, 0x93, 0x66,
+ 0x35, 0xa5, 0x19, 0x3d,
+};
+static const unsigned char kat605_persstr[] = {0};
+static const unsigned char kat605_addin0[] = {0};
+static const unsigned char kat605_addin1[] = {0};
+static const unsigned char kat605_retbits[] = {
+ 0xf3, 0x89, 0xde, 0xfd, 0x88, 0xce, 0x73, 0xa6, 0xa5, 0xd8, 0x1a, 0x32,
+ 0xfe, 0xdf, 0x26, 0xe0, 0x05, 0xa5, 0xd4, 0x2f, 0x78, 0x68, 0xfb, 0xa4,
+ 0x0d, 0xdf, 0x20, 0xdf, 0x63, 0x25, 0xfe, 0x34, 0x73, 0x8d, 0xa3, 0xce,
+ 0xbb, 0x62, 0xb6, 0x02, 0x21, 0x72, 0x47, 0xfe, 0xf7, 0x78, 0x37, 0xfc,
+ 0x73, 0xdb, 0xef, 0x33, 0xb8, 0x13, 0xb2, 0x6e, 0xb0, 0x6b, 0xe2, 0xad,
+ 0x05, 0x06, 0x98, 0x82,
+};
+static const struct drbg_kat_no_reseed kat605_t = {
+ 4, kat605_entropyin, kat605_nonce, kat605_persstr,
+ kat605_addin0, kat605_addin1, kat605_retbits
+};
+static const struct drbg_kat kat605 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat605_t
+};
+
+static const unsigned char kat606_entropyin[] = {
+ 0x92, 0xae, 0x36, 0x3f, 0xcb, 0xe3, 0x5f, 0xd5, 0xf6, 0x06, 0xd2, 0x1d,
+ 0x20, 0x94, 0xf9, 0x5b, 0x90, 0xe6, 0xb1, 0x1c, 0x21, 0x49, 0x4f, 0xe0,
+ 0xea, 0x3f, 0x7e, 0x8d, 0x0c, 0xcb, 0x2b, 0xc3,
+};
+static const unsigned char kat606_nonce[] = {
+ 0x88, 0xb3, 0x1b, 0x93, 0x1f, 0x49, 0xf8, 0x6c, 0x43, 0x05, 0x71, 0xaf,
+ 0x1a, 0x35, 0x2a, 0x3c,
+};
+static const unsigned char kat606_persstr[] = {0};
+static const unsigned char kat606_addin0[] = {0};
+static const unsigned char kat606_addin1[] = {0};
+static const unsigned char kat606_retbits[] = {
+ 0x4f, 0x4a, 0x1e, 0x0e, 0xa8, 0x21, 0xbb, 0x8a, 0xdd, 0x74, 0xaf, 0xe6,
+ 0xe1, 0x26, 0x59, 0x81, 0x33, 0x38, 0xed, 0xe3, 0xd1, 0xd3, 0x53, 0x58,
+ 0x08, 0x34, 0x2a, 0x0c, 0xb3, 0xd0, 0x66, 0xec, 0x13, 0xa8, 0xd5, 0x29,
+ 0x97, 0x33, 0x66, 0x07, 0x29, 0x7e, 0x56, 0xff, 0x53, 0xca, 0x5a, 0x50,
+ 0x14, 0x75, 0x90, 0x23, 0x2d, 0x26, 0xf0, 0x41, 0xf7, 0x6f, 0xf9, 0xb5,
+ 0x82, 0x3f, 0x36, 0xf4,
+};
+static const struct drbg_kat_no_reseed kat606_t = {
+ 5, kat606_entropyin, kat606_nonce, kat606_persstr,
+ kat606_addin0, kat606_addin1, kat606_retbits
+};
+static const struct drbg_kat kat606 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat606_t
+};
+
+static const unsigned char kat607_entropyin[] = {
+ 0x01, 0xab, 0x1c, 0x40, 0x96, 0xc4, 0xed, 0x6d, 0x24, 0x10, 0x74, 0xc6,
+ 0xe8, 0xb3, 0xe4, 0xab, 0xe7, 0x93, 0x52, 0x35, 0xd6, 0xf4, 0x8e, 0x91,
+ 0x3b, 0x78, 0x0d, 0x21, 0x9a, 0x71, 0xfe, 0x2d,
+};
+static const unsigned char kat607_nonce[] = {
+ 0x47, 0x2e, 0x39, 0xd4, 0x80, 0x0e, 0xf0, 0xee, 0xce, 0x7b, 0xed, 0x95,
+ 0x44, 0xd5, 0xaf, 0x5a,
+};
+static const unsigned char kat607_persstr[] = {0};
+static const unsigned char kat607_addin0[] = {0};
+static const unsigned char kat607_addin1[] = {0};
+static const unsigned char kat607_retbits[] = {
+ 0xbf, 0x7a, 0xcb, 0x20, 0x90, 0x7e, 0x0b, 0xa1, 0x41, 0xe4, 0x65, 0x19,
+ 0xaa, 0x31, 0xd4, 0x6a, 0xd4, 0x5d, 0xa4, 0x6e, 0x01, 0x4b, 0x24, 0x20,
+ 0xd4, 0x8d, 0x30, 0x9c, 0xb0, 0xd4, 0x70, 0x3e, 0x82, 0xc6, 0xa7, 0x8e,
+ 0x83, 0x5e, 0xfa, 0xbb, 0x17, 0x23, 0xb7, 0x5b, 0x8d, 0xac, 0xe5, 0x96,
+ 0x80, 0x42, 0x41, 0x60, 0x75, 0xcb, 0x71, 0xb9, 0xc1, 0x49, 0x80, 0x6c,
+ 0xc4, 0x21, 0x47, 0x58,
+};
+static const struct drbg_kat_no_reseed kat607_t = {
+ 6, kat607_entropyin, kat607_nonce, kat607_persstr,
+ kat607_addin0, kat607_addin1, kat607_retbits
+};
+static const struct drbg_kat kat607 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat607_t
+};
+
+static const unsigned char kat608_entropyin[] = {
+ 0xf6, 0x30, 0x21, 0xbc, 0x49, 0x22, 0x30, 0x5c, 0x82, 0x67, 0xb2, 0xce,
+ 0xf7, 0x67, 0xe3, 0xbb, 0xda, 0xb7, 0x2e, 0x11, 0x9b, 0xc8, 0x31, 0x7a,
+ 0xd8, 0xfe, 0x2c, 0x27, 0x69, 0x4f, 0x9e, 0x00,
+};
+static const unsigned char kat608_nonce[] = {
+ 0xe6, 0xcc, 0xef, 0x20, 0xf8, 0x75, 0x19, 0xd5, 0xd6, 0x77, 0x16, 0xe1,
+ 0x2e, 0x1b, 0xd7, 0x60,
+};
+static const unsigned char kat608_persstr[] = {0};
+static const unsigned char kat608_addin0[] = {0};
+static const unsigned char kat608_addin1[] = {0};
+static const unsigned char kat608_retbits[] = {
+ 0xd7, 0xee, 0xc5, 0x1c, 0x18, 0x6f, 0x59, 0x90, 0xbc, 0x3f, 0x55, 0xdb,
+ 0x34, 0x2a, 0x41, 0xa2, 0xea, 0x15, 0x50, 0x34, 0xaf, 0x65, 0x1c, 0x3c,
+ 0x29, 0x13, 0x10, 0x24, 0x1d, 0x46, 0x55, 0x73, 0x3c, 0xc9, 0xd7, 0x81,
+ 0xd6, 0x88, 0x61, 0x38, 0xb3, 0xf9, 0xac, 0x59, 0x5b, 0x95, 0x6f, 0x94,
+ 0xda, 0xff, 0x64, 0xdf, 0xde, 0x94, 0xd3, 0xc8, 0xf2, 0xb8, 0x11, 0x82,
+ 0xb8, 0x7e, 0xb8, 0x32,
+};
+static const struct drbg_kat_no_reseed kat608_t = {
+ 7, kat608_entropyin, kat608_nonce, kat608_persstr,
+ kat608_addin0, kat608_addin1, kat608_retbits
+};
+static const struct drbg_kat kat608 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat608_t
+};
+
+static const unsigned char kat609_entropyin[] = {
+ 0xa8, 0xfd, 0xae, 0x7e, 0x11, 0x16, 0x12, 0x2d, 0x2b, 0x42, 0xd1, 0x54,
+ 0xa6, 0x32, 0x9a, 0xee, 0x99, 0xae, 0x6f, 0x3b, 0xd6, 0x51, 0x80, 0xa0,
+ 0x38, 0x28, 0xa3, 0x54, 0x4b, 0x80, 0xf9, 0x9b,
+};
+static const unsigned char kat609_nonce[] = {
+ 0x10, 0xb1, 0x4f, 0x56, 0x8e, 0x42, 0xff, 0x31, 0xcf, 0x73, 0xb1, 0xf3,
+ 0x94, 0x3a, 0xec, 0xb8,
+};
+static const unsigned char kat609_persstr[] = {0};
+static const unsigned char kat609_addin0[] = {0};
+static const unsigned char kat609_addin1[] = {0};
+static const unsigned char kat609_retbits[] = {
+ 0x4a, 0xbd, 0xe8, 0x19, 0x9c, 0x07, 0x76, 0xac, 0xe8, 0xaf, 0xba, 0x19,
+ 0x6d, 0x2b, 0xef, 0xc6, 0xd6, 0x88, 0x8f, 0x3e, 0x95, 0x60, 0x10, 0x88,
+ 0x95, 0x68, 0x90, 0x17, 0xac, 0x65, 0x4a, 0x55, 0x57, 0x22, 0xc0, 0xf1,
+ 0x4c, 0x53, 0xb1, 0x9f, 0x3c, 0xf6, 0x71, 0xa8, 0x8c, 0x10, 0xa9, 0x15,
+ 0xea, 0x72, 0x0e, 0x7d, 0xc9, 0xb9, 0xe5, 0xe0, 0x31, 0x91, 0x5e, 0x33,
+ 0x0e, 0xbb, 0x0e, 0x4c,
+};
+static const struct drbg_kat_no_reseed kat609_t = {
+ 8, kat609_entropyin, kat609_nonce, kat609_persstr,
+ kat609_addin0, kat609_addin1, kat609_retbits
+};
+static const struct drbg_kat kat609 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat609_t
+};
+
+static const unsigned char kat610_entropyin[] = {
+ 0x9a, 0xef, 0xe4, 0x3a, 0xc5, 0x49, 0x0d, 0xef, 0xc5, 0xba, 0xad, 0xb1,
+ 0x2e, 0x66, 0x83, 0x8d, 0xe9, 0xdd, 0xaf, 0xc9, 0x44, 0xcd, 0x68, 0x6e,
+ 0xcb, 0x05, 0x96, 0x35, 0x40, 0x34, 0x52, 0xaf,
+};
+static const unsigned char kat610_nonce[] = {
+ 0xe9, 0x25, 0x6f, 0x49, 0x02, 0xc7, 0xd7, 0xf6, 0xbb, 0xb1, 0xdc, 0xc1,
+ 0x56, 0xdd, 0xf9, 0xbd,
+};
+static const unsigned char kat610_persstr[] = {0};
+static const unsigned char kat610_addin0[] = {0};
+static const unsigned char kat610_addin1[] = {0};
+static const unsigned char kat610_retbits[] = {
+ 0xd9, 0x6d, 0x90, 0xac, 0x5a, 0xca, 0xb5, 0x4b, 0xe1, 0x8d, 0xa1, 0x9c,
+ 0x76, 0x15, 0xb4, 0xce, 0x47, 0x1a, 0x22, 0x41, 0x6f, 0xfe, 0x20, 0x43,
+ 0xe7, 0x82, 0xbe, 0xb8, 0x85, 0x26, 0x9b, 0xbb, 0xac, 0xe4, 0xc4, 0x16,
+ 0x05, 0x0c, 0xb4, 0xfb, 0x90, 0x15, 0x8f, 0xda, 0x6d, 0xa5, 0x8b, 0xf8,
+ 0x66, 0x0e, 0xf9, 0x16, 0x0d, 0x1c, 0x15, 0xfd, 0xd4, 0xc0, 0x67, 0xc5,
+ 0xc9, 0x8c, 0xcd, 0xb7,
+};
+static const struct drbg_kat_no_reseed kat610_t = {
+ 9, kat610_entropyin, kat610_nonce, kat610_persstr,
+ kat610_addin0, kat610_addin1, kat610_retbits
+};
+static const struct drbg_kat kat610 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat610_t
+};
+
+static const unsigned char kat611_entropyin[] = {
+ 0x36, 0x18, 0xb5, 0x63, 0x86, 0xb7, 0xae, 0x61, 0xdf, 0xc1, 0x84, 0x99,
+ 0x9c, 0xc4, 0x58, 0x7c, 0xf0, 0x7e, 0xda, 0x8b, 0xe8, 0x61, 0xf1, 0xc6,
+ 0x4a, 0x28, 0xec, 0xb2, 0x87, 0x58, 0x90, 0xd3,
+};
+static const unsigned char kat611_nonce[] = {
+ 0xde, 0xb0, 0x3a, 0xcd, 0x0e, 0xa6, 0xf0, 0x59, 0x15, 0x80, 0xb8, 0xaf,
+ 0xbc, 0x2f, 0xf8, 0x80,
+};
+static const unsigned char kat611_persstr[] = {0};
+static const unsigned char kat611_addin0[] = {0};
+static const unsigned char kat611_addin1[] = {0};
+static const unsigned char kat611_retbits[] = {
+ 0xf6, 0x05, 0x30, 0x5d, 0x87, 0xf2, 0x09, 0xac, 0x29, 0x3a, 0xb9, 0xc8,
+ 0xc1, 0xd3, 0x12, 0x84, 0x18, 0xfc, 0xc9, 0x17, 0x5a, 0xec, 0x25, 0x65,
+ 0x26, 0x5b, 0x1d, 0xac, 0x75, 0xe7, 0xaa, 0x80, 0x57, 0x95, 0x3e, 0x0f,
+ 0x68, 0x54, 0x80, 0x0f, 0x37, 0xce, 0x40, 0x5e, 0xeb, 0x24, 0x92, 0x7a,
+ 0xb7, 0x8e, 0x94, 0xfb, 0x69, 0x4b, 0x66, 0x8c, 0xaa, 0xeb, 0xa5, 0x27,
+ 0x1f, 0xc4, 0x86, 0xf4,
+};
+static const struct drbg_kat_no_reseed kat611_t = {
+ 10, kat611_entropyin, kat611_nonce, kat611_persstr,
+ kat611_addin0, kat611_addin1, kat611_retbits
+};
+static const struct drbg_kat kat611 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat611_t
+};
+
+static const unsigned char kat612_entropyin[] = {
+ 0xc0, 0x9c, 0xbd, 0x47, 0x8e, 0x38, 0xc7, 0x52, 0x0c, 0xd9, 0x24, 0x32,
+ 0xb5, 0xfc, 0xe8, 0xc1, 0x57, 0x58, 0xef, 0x56, 0xc4, 0xe4, 0x57, 0xfd,
+ 0x4f, 0x2c, 0x97, 0xd5, 0x2e, 0x8f, 0x45, 0x66,
+};
+static const unsigned char kat612_nonce[] = {
+ 0x05, 0x3e, 0xa2, 0x92, 0x36, 0x74, 0x76, 0x41, 0x5d, 0xf7, 0xfe, 0xdb,
+ 0xf2, 0x5d, 0x69, 0x54,
+};
+static const unsigned char kat612_persstr[] = {0};
+static const unsigned char kat612_addin0[] = {0};
+static const unsigned char kat612_addin1[] = {0};
+static const unsigned char kat612_retbits[] = {
+ 0x00, 0xa8, 0x1e, 0x0b, 0x7d, 0xb1, 0x56, 0x98, 0xb8, 0x9a, 0x75, 0xf5,
+ 0x61, 0x75, 0xf4, 0x49, 0xdb, 0xc4, 0x21, 0x1b, 0xa3, 0x54, 0xb4, 0x6f,
+ 0x24, 0x74, 0xac, 0xb5, 0x5d, 0xc1, 0x70, 0xbf, 0x6c, 0x0e, 0xe1, 0x81,
+ 0xdc, 0xea, 0xc3, 0xda, 0xf5, 0xfc, 0x81, 0xa5, 0x7c, 0x63, 0xdd, 0xc2,
+ 0x81, 0xcd, 0x24, 0xcd, 0x6e, 0x7f, 0x25, 0xa1, 0xb4, 0x0a, 0xdb, 0x4d,
+ 0x27, 0xc7, 0x13, 0x19,
+};
+static const struct drbg_kat_no_reseed kat612_t = {
+ 11, kat612_entropyin, kat612_nonce, kat612_persstr,
+ kat612_addin0, kat612_addin1, kat612_retbits
+};
+static const struct drbg_kat kat612 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat612_t
+};
+
+static const unsigned char kat613_entropyin[] = {
+ 0x59, 0xef, 0x31, 0xed, 0x68, 0x54, 0x01, 0x6a, 0xb4, 0xab, 0x7c, 0x4a,
+ 0xf7, 0x2f, 0x5b, 0x16, 0xad, 0x2d, 0x7b, 0x57, 0xa1, 0x8f, 0x79, 0xf8,
+ 0xf2, 0x9d, 0xe2, 0x6e, 0xe4, 0x20, 0x09, 0x61,
+};
+static const unsigned char kat613_nonce[] = {
+ 0x8e, 0x8d, 0x6f, 0x83, 0x78, 0x63, 0x43, 0x14, 0xf7, 0x2a, 0xe0, 0x57,
+ 0x99, 0x1a, 0x33, 0x3e,
+};
+static const unsigned char kat613_persstr[] = {0};
+static const unsigned char kat613_addin0[] = {0};
+static const unsigned char kat613_addin1[] = {0};
+static const unsigned char kat613_retbits[] = {
+ 0x1a, 0xcf, 0x34, 0x3f, 0xca, 0x1f, 0x42, 0xd4, 0x7a, 0x11, 0x31, 0xe5,
+ 0xd1, 0x89, 0x06, 0xb5, 0xb7, 0x3f, 0xff, 0x61, 0x46, 0x12, 0x37, 0x88,
+ 0x2a, 0x58, 0xbc, 0x5a, 0xdd, 0x75, 0x27, 0xa5, 0xdd, 0x03, 0xd2, 0xb1,
+ 0x96, 0x7b, 0x70, 0x22, 0x6d, 0x11, 0x19, 0xae, 0x14, 0x35, 0x91, 0x15,
+ 0x15, 0xe3, 0xea, 0xa6, 0x7a, 0xcf, 0x14, 0x42, 0x14, 0x71, 0x2f, 0xf3,
+ 0x34, 0x64, 0x90, 0xf2,
+};
+static const struct drbg_kat_no_reseed kat613_t = {
+ 12, kat613_entropyin, kat613_nonce, kat613_persstr,
+ kat613_addin0, kat613_addin1, kat613_retbits
+};
+static const struct drbg_kat kat613 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat613_t
+};
+
+static const unsigned char kat614_entropyin[] = {
+ 0x04, 0x13, 0x8e, 0x8f, 0xe8, 0xfe, 0xf7, 0xfe, 0xea, 0xb5, 0x4e, 0xe3,
+ 0xe5, 0x80, 0x2e, 0x02, 0x7b, 0x1f, 0x39, 0x44, 0x87, 0xca, 0xc3, 0x6d,
+ 0x1b, 0xb0, 0xf0, 0x52, 0xa7, 0xa1, 0x07, 0x5c,
+};
+static const unsigned char kat614_nonce[] = {
+ 0xd6, 0xb6, 0x48, 0x4d, 0xbb, 0x46, 0x38, 0x9e, 0xdf, 0xc1, 0xac, 0x96,
+ 0x9e, 0x46, 0x22, 0x14,
+};
+static const unsigned char kat614_persstr[] = {0};
+static const unsigned char kat614_addin0[] = {0};
+static const unsigned char kat614_addin1[] = {0};
+static const unsigned char kat614_retbits[] = {
+ 0x09, 0xf2, 0xc6, 0x86, 0xd9, 0xb0, 0x1d, 0x49, 0xf1, 0x23, 0x48, 0xf1,
+ 0x2f, 0xf8, 0x32, 0xdb, 0x4e, 0xa9, 0x10, 0x5e, 0xa6, 0xa1, 0x48, 0xfc,
+ 0xaa, 0xea, 0x32, 0x49, 0x0d, 0x2d, 0x84, 0x3a, 0x28, 0x2c, 0xdc, 0x30,
+ 0xc0, 0x11, 0x19, 0x1f, 0x8b, 0xa7, 0x7c, 0x22, 0x4c, 0x29, 0x70, 0x12,
+ 0xe2, 0x61, 0xc8, 0xa7, 0x39, 0xd0, 0x77, 0x72, 0x98, 0xeb, 0x59, 0x1c,
+ 0x99, 0x02, 0x8c, 0xa5,
+};
+static const struct drbg_kat_no_reseed kat614_t = {
+ 13, kat614_entropyin, kat614_nonce, kat614_persstr,
+ kat614_addin0, kat614_addin1, kat614_retbits
+};
+static const struct drbg_kat kat614 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat614_t
+};
+
+static const unsigned char kat615_entropyin[] = {
+ 0x11, 0xb1, 0xa3, 0x07, 0xc2, 0x66, 0xd4, 0x07, 0xc3, 0xab, 0x12, 0xbe,
+ 0x77, 0x4e, 0xe3, 0x1c, 0xdc, 0x91, 0x8a, 0xe1, 0x4c, 0xd9, 0x8f, 0xcf,
+ 0x02, 0xc3, 0xac, 0xc8, 0x82, 0xdd, 0xb8, 0x2c,
+};
+static const unsigned char kat615_nonce[] = {
+ 0xe4, 0xef, 0xda, 0xf6, 0xf0, 0x1e, 0xb5, 0x47, 0x5d, 0x82, 0xc9, 0x4e,
+ 0x12, 0x9a, 0x35, 0xe1,
+};
+static const unsigned char kat615_persstr[] = {0};
+static const unsigned char kat615_addin0[] = {0};
+static const unsigned char kat615_addin1[] = {0};
+static const unsigned char kat615_retbits[] = {
+ 0x6a, 0x52, 0x63, 0x64, 0x4a, 0x10, 0x1e, 0x9f, 0x03, 0xa4, 0x02, 0x60,
+ 0xa6, 0x8f, 0xa7, 0x27, 0x1a, 0x39, 0x9b, 0xa9, 0x54, 0xfe, 0xe2, 0x30,
+ 0x61, 0x3a, 0x18, 0xbc, 0x18, 0xcd, 0x5c, 0x54, 0x03, 0xd6, 0x79, 0xc7,
+ 0x73, 0x5c, 0xb1, 0x67, 0x1b, 0x17, 0x4e, 0x60, 0xed, 0x82, 0x8e, 0x70,
+ 0x73, 0x77, 0xf5, 0x51, 0x78, 0xbb, 0x53, 0x8b, 0xf4, 0x26, 0x74, 0x53,
+ 0xe5, 0xc8, 0x5b, 0x97,
+};
+static const struct drbg_kat_no_reseed kat615_t = {
+ 14, kat615_entropyin, kat615_nonce, kat615_persstr,
+ kat615_addin0, kat615_addin1, kat615_retbits
+};
+static const struct drbg_kat kat615 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat615_t
+};
+
+static const unsigned char kat616_entropyin[] = {
+ 0x00, 0x1e, 0xc3, 0xb1, 0x92, 0xdd, 0xc7, 0x65, 0x55, 0x3e, 0x15, 0x74,
+ 0x2d, 0xff, 0xeb, 0x21, 0xcc, 0x7d, 0x97, 0xa4, 0xbc, 0xf8, 0x66, 0xe3,
+ 0x66, 0x4d, 0x8a, 0x5e, 0xcb, 0x4c, 0x24, 0x63,
+};
+static const unsigned char kat616_nonce[] = {
+ 0x6c, 0xa8, 0x48, 0x65, 0x1d, 0x42, 0x0f, 0xb0, 0x2f, 0x9b, 0x66, 0xf0,
+ 0x6b, 0x37, 0x7e, 0x59,
+};
+static const unsigned char kat616_persstr[] = {0};
+static const unsigned char kat616_addin0[] = {
+ 0x99, 0xf1, 0x39, 0xab, 0x5e, 0xe4, 0xf7, 0xee, 0xd6, 0x14, 0x8e, 0x82,
+ 0xd7, 0x9a, 0xd5, 0xf2, 0xb9, 0xfa, 0x63, 0x8d, 0x57, 0x4e, 0x5d, 0xb7,
+ 0x9b, 0x65, 0x0c, 0x0e, 0x68, 0x2c, 0xa4, 0x66,
+};
+static const unsigned char kat616_addin1[] = {
+ 0x6e, 0x7b, 0xf0, 0xae, 0x28, 0xa7, 0x97, 0xcc, 0xbb, 0x47, 0x10, 0x1f,
+ 0x26, 0xbf, 0xe5, 0xa0, 0xb1, 0xe4, 0x50, 0xc5, 0x7a, 0xed, 0xf7, 0x31,
+ 0x27, 0x24, 0x11, 0xfa, 0x7b, 0x6c, 0x4e, 0xd4,
+};
+static const unsigned char kat616_retbits[] = {
+ 0x86, 0x5b, 0x6d, 0xd4, 0x36, 0x3c, 0x59, 0x40, 0xd6, 0x22, 0x8c, 0xc9,
+ 0x0b, 0xa8, 0xf1, 0xa2, 0x1e, 0xfb, 0xaa, 0x99, 0xb0, 0xc7, 0xb3, 0x73,
+ 0x61, 0xf7, 0xfe, 0xd7, 0xe9, 0x69, 0xa9, 0x7b, 0x68, 0xd5, 0x50, 0xdd,
+ 0x6a, 0xd4, 0xbb, 0xfa, 0xf6, 0x62, 0x67, 0x79, 0xbf, 0xb4, 0x3c, 0x66,
+ 0x84, 0x5c, 0x29, 0x23, 0xdf, 0x9f, 0x55, 0x30, 0x7c, 0x8b, 0xc9, 0xf0,
+ 0xa3, 0x87, 0x2f, 0xa7,
+};
+static const struct drbg_kat_no_reseed kat616_t = {
+ 0, kat616_entropyin, kat616_nonce, kat616_persstr,
+ kat616_addin0, kat616_addin1, kat616_retbits
+};
+static const struct drbg_kat kat616 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat616_t
+};
+
+static const unsigned char kat617_entropyin[] = {
+ 0x53, 0xaa, 0x66, 0x68, 0xd0, 0x6d, 0x2b, 0xdb, 0x4a, 0xca, 0x98, 0x9d,
+ 0x29, 0x4d, 0x68, 0xb0, 0x00, 0x36, 0xe1, 0xb4, 0x66, 0xd1, 0x55, 0x31,
+ 0x86, 0xb9, 0xed, 0xa9, 0xde, 0x69, 0x3a, 0x68,
+};
+static const unsigned char kat617_nonce[] = {
+ 0xb7, 0x7d, 0x9b, 0x74, 0x57, 0x47, 0x31, 0xdc, 0xd9, 0x6a, 0xed, 0x38,
+ 0x35, 0x05, 0x27, 0x6d,
+};
+static const unsigned char kat617_persstr[] = {0};
+static const unsigned char kat617_addin0[] = {
+ 0x0e, 0x00, 0x58, 0x9f, 0x59, 0x26, 0xad, 0x32, 0xa0, 0xac, 0xb3, 0x37,
+ 0xef, 0xb6, 0x1d, 0x0f, 0x8b, 0x6c, 0x4f, 0x25, 0x26, 0xea, 0x6d, 0x1a,
+ 0xaa, 0x20, 0x23, 0xd3, 0x93, 0xb0, 0xf9, 0x22,
+};
+static const unsigned char kat617_addin1[] = {
+ 0x70, 0x40, 0x4e, 0x72, 0x9a, 0x59, 0x6e, 0x11, 0xc5, 0xd1, 0x4a, 0xb9,
+ 0xe4, 0x35, 0xd5, 0x0e, 0x47, 0xaf, 0xb7, 0x35, 0xd5, 0x58, 0x29, 0x3a,
+ 0x8d, 0x11, 0x97, 0xcb, 0xf8, 0x54, 0x36, 0xfe,
+};
+static const unsigned char kat617_retbits[] = {
+ 0xb8, 0x37, 0x78, 0xfb, 0x3f, 0xe1, 0x6b, 0xfa, 0x43, 0x23, 0x0a, 0xc1,
+ 0x01, 0xc9, 0xb3, 0x81, 0x68, 0x27, 0xf5, 0x50, 0x0c, 0x65, 0x06, 0x02,
+ 0x98, 0xd5, 0x8b, 0xd4, 0xfa, 0xcb, 0x17, 0xa0, 0x62, 0xee, 0x03, 0x98,
+ 0x1e, 0x6d, 0x19, 0xeb, 0x2c, 0x98, 0x51, 0xfb, 0x00, 0xae, 0x2b, 0x4b,
+ 0xc5, 0x17, 0xee, 0x33, 0x8e, 0xf5, 0x98, 0x06, 0xe3, 0xc8, 0xb0, 0xb9,
+ 0x9f, 0xb6, 0x7a, 0x31,
+};
+static const struct drbg_kat_no_reseed kat617_t = {
+ 1, kat617_entropyin, kat617_nonce, kat617_persstr,
+ kat617_addin0, kat617_addin1, kat617_retbits
+};
+static const struct drbg_kat kat617 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat617_t
+};
+
+static const unsigned char kat618_entropyin[] = {
+ 0x3d, 0x38, 0x73, 0x6b, 0x9f, 0x03, 0xdd, 0x30, 0x6b, 0x10, 0xd5, 0xbb,
+ 0x91, 0xc1, 0x6b, 0x16, 0x1e, 0xb4, 0xb6, 0xf0, 0x54, 0xd2, 0xbc, 0x4d,
+ 0x56, 0x1a, 0x93, 0x98, 0x50, 0xc0, 0x40, 0xea,
+};
+static const unsigned char kat618_nonce[] = {
+ 0xa0, 0xd0, 0xc1, 0x88, 0xcb, 0x2f, 0x32, 0xa3, 0x12, 0x74, 0x89, 0xb7,
+ 0x4b, 0x83, 0xae, 0x78,
+};
+static const unsigned char kat618_persstr[] = {0};
+static const unsigned char kat618_addin0[] = {
+ 0x37, 0xcf, 0xe2, 0xab, 0xe1, 0x90, 0x6a, 0x58, 0x9c, 0xdc, 0x67, 0x1e,
+ 0x01, 0xb5, 0x0e, 0xca, 0x78, 0xb4, 0x27, 0x02, 0xe8, 0x4e, 0x08, 0x8d,
+ 0xbf, 0xd2, 0x1c, 0x22, 0xe0, 0x43, 0x2e, 0x46,
+};
+static const unsigned char kat618_addin1[] = {
+ 0x2f, 0x1f, 0x52, 0x3b, 0x30, 0x5b, 0xbe, 0x79, 0x9a, 0x92, 0x0a, 0x65,
+ 0x7a, 0xb3, 0x6f, 0xf4, 0x20, 0x71, 0x88, 0x99, 0x8f, 0x6c, 0x7c, 0xd3,
+ 0x9b, 0xe4, 0xfc, 0x5d, 0x06, 0x93, 0xa0, 0x70,
+};
+static const unsigned char kat618_retbits[] = {
+ 0xdc, 0x1a, 0x5b, 0x28, 0xe1, 0x9e, 0xf8, 0x9c, 0x86, 0x9e, 0xa6, 0x95,
+ 0xf7, 0xd9, 0xa5, 0x79, 0xf6, 0x17, 0xd0, 0x92, 0x3b, 0xd0, 0x64, 0x11,
+ 0x35, 0xa0, 0x6a, 0x86, 0xe0, 0x11, 0x75, 0x1c, 0xbc, 0x2d, 0x9f, 0x2f,
+ 0xa2, 0x61, 0x2c, 0x3e, 0x6a, 0x2a, 0xff, 0x53, 0x8c, 0x64, 0x53, 0x80,
+ 0xa6, 0x18, 0xf1, 0xf1, 0x8f, 0xbd, 0x98, 0x7a, 0xe9, 0xf4, 0xff, 0x1d,
+ 0x70, 0x47, 0x49, 0xf7,
+};
+static const struct drbg_kat_no_reseed kat618_t = {
+ 2, kat618_entropyin, kat618_nonce, kat618_persstr,
+ kat618_addin0, kat618_addin1, kat618_retbits
+};
+static const struct drbg_kat kat618 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat618_t
+};
+
+static const unsigned char kat619_entropyin[] = {
+ 0x89, 0xf2, 0x09, 0xa7, 0xd8, 0xce, 0x9f, 0x93, 0x68, 0xf9, 0x47, 0x1a,
+ 0x33, 0xbf, 0x7b, 0x46, 0x9e, 0xf8, 0x0f, 0x99, 0x4c, 0xa5, 0xbf, 0xfa,
+ 0xaa, 0x18, 0xf1, 0x63, 0xa4, 0x50, 0x3d, 0x97,
+};
+static const unsigned char kat619_nonce[] = {
+ 0x37, 0x65, 0x56, 0x04, 0xc0, 0x45, 0xca, 0x1f, 0x52, 0x69, 0x41, 0xa0,
+ 0x50, 0xa2, 0xa7, 0x8e,
+};
+static const unsigned char kat619_persstr[] = {0};
+static const unsigned char kat619_addin0[] = {
+ 0x1d, 0x24, 0xe7, 0xe3, 0xbc, 0xb7, 0x70, 0x9a, 0xb1, 0x80, 0x73, 0x4b,
+ 0xd1, 0x2f, 0x45, 0x54, 0xa2, 0x30, 0x3a, 0x38, 0xa8, 0x35, 0x51, 0xd9,
+ 0x45, 0x4f, 0xe0, 0x45, 0xab, 0xea, 0x54, 0x25,
+};
+static const unsigned char kat619_addin1[] = {
+ 0x15, 0x64, 0x6b, 0x33, 0x1b, 0x80, 0x8d, 0xc9, 0x71, 0xdd, 0x2b, 0xc9,
+ 0xca, 0xf8, 0x03, 0x0b, 0x57, 0x08, 0x5f, 0x8d, 0xd6, 0x2c, 0x4b, 0xfb,
+ 0x28, 0x11, 0x0c, 0x75, 0x97, 0x7d, 0xd1, 0xd0,
+};
+static const unsigned char kat619_retbits[] = {
+ 0x59, 0xac, 0x0b, 0x9b, 0xbd, 0x27, 0x99, 0xb0, 0x80, 0x85, 0x27, 0xa8,
+ 0x50, 0xb9, 0x98, 0xee, 0x3d, 0x6b, 0x7a, 0xec, 0xdb, 0xa3, 0x40, 0xf1,
+ 0x7b, 0x68, 0x22, 0x09, 0x22, 0x2b, 0x67, 0x83, 0xcf, 0x9a, 0x48, 0xec,
+ 0x45, 0xca, 0xf4, 0x04, 0x46, 0xae, 0x37, 0xe9, 0x53, 0x98, 0x99, 0x41,
+ 0x0c, 0xb6, 0x3f, 0x79, 0xb3, 0x14, 0xd3, 0xb2, 0xb8, 0x33, 0xb5, 0x4c,
+ 0x26, 0xa2, 0xca, 0xbc,
+};
+static const struct drbg_kat_no_reseed kat619_t = {
+ 3, kat619_entropyin, kat619_nonce, kat619_persstr,
+ kat619_addin0, kat619_addin1, kat619_retbits
+};
+static const struct drbg_kat kat619 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat619_t
+};
+
+static const unsigned char kat620_entropyin[] = {
+ 0x0b, 0xee, 0x49, 0x37, 0xa0, 0x71, 0xfd, 0x93, 0x9f, 0x00, 0x07, 0xc3,
+ 0xce, 0x3a, 0xbe, 0xf4, 0x3f, 0xfa, 0x3b, 0xd0, 0xe0, 0x5e, 0xfc, 0x01,
+ 0x90, 0xed, 0x5f, 0x2a, 0x2d, 0x64, 0x47, 0x78,
+};
+static const unsigned char kat620_nonce[] = {
+ 0xc5, 0x4f, 0x6c, 0xf1, 0x0f, 0x64, 0x54, 0xc6, 0x9b, 0x66, 0x7b, 0x64,
+ 0x16, 0xad, 0xcd, 0x6f,
+};
+static const unsigned char kat620_persstr[] = {0};
+static const unsigned char kat620_addin0[] = {
+ 0x4d, 0x84, 0x2e, 0x42, 0x6b, 0x64, 0xe9, 0x42, 0x2e, 0x7f, 0x77, 0xf6,
+ 0x00, 0x9c, 0x11, 0x57, 0x57, 0x08, 0x32, 0x23, 0x5b, 0xe6, 0x5d, 0x33,
+ 0x69, 0x53, 0x0f, 0x29, 0x9f, 0xbf, 0xc8, 0x2e,
+};
+static const unsigned char kat620_addin1[] = {
+ 0x72, 0x7e, 0x31, 0xe8, 0x39, 0xa7, 0x87, 0x5b, 0x65, 0x4b, 0xcf, 0x1a,
+ 0x54, 0x28, 0xd8, 0xaf, 0x90, 0x0e, 0x5a, 0xa4, 0x06, 0x36, 0xaa, 0x80,
+ 0xfd, 0x85, 0x1c, 0x33, 0x78, 0x7c, 0xab, 0xf3,
+};
+static const unsigned char kat620_retbits[] = {
+ 0x5a, 0x63, 0xf6, 0x62, 0x53, 0x0b, 0xb2, 0xec, 0x41, 0x62, 0xf7, 0x52,
+ 0x36, 0x15, 0x30, 0xcc, 0x8d, 0x5c, 0x89, 0x05, 0x87, 0xd2, 0x26, 0xb2,
+ 0x0f, 0x14, 0x2b, 0xae, 0x2a, 0x2d, 0xbd, 0x69, 0x47, 0x80, 0xd2, 0xa5,
+ 0x55, 0x53, 0xb0, 0x35, 0xcd, 0x35, 0x52, 0xba, 0xb0, 0xfa, 0xf9, 0x4e,
+ 0x63, 0x89, 0x53, 0x30, 0x0e, 0xa9, 0x50, 0x87, 0xa7, 0x32, 0xc9, 0x48,
+ 0x9e, 0xa4, 0x1e, 0xac,
+};
+static const struct drbg_kat_no_reseed kat620_t = {
+ 4, kat620_entropyin, kat620_nonce, kat620_persstr,
+ kat620_addin0, kat620_addin1, kat620_retbits
+};
+static const struct drbg_kat kat620 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat620_t
+};
+
+static const unsigned char kat621_entropyin[] = {
+ 0x26, 0x9d, 0xe0, 0xa0, 0x01, 0x9b, 0x68, 0x51, 0x02, 0x95, 0x3c, 0x21,
+ 0xd4, 0xd4, 0x82, 0x5e, 0xe0, 0x0f, 0xdb, 0x77, 0x4c, 0x7c, 0xa7, 0x21,
+ 0xf1, 0xf3, 0xcc, 0x1a, 0x22, 0x20, 0xcc, 0x98,
+};
+static const unsigned char kat621_nonce[] = {
+ 0xe1, 0x08, 0x06, 0xc0, 0xd8, 0xb9, 0x17, 0x5f, 0x22, 0xfc, 0x96, 0xc7,
+ 0xd7, 0x7d, 0xfd, 0xfc,
+};
+static const unsigned char kat621_persstr[] = {0};
+static const unsigned char kat621_addin0[] = {
+ 0x18, 0x5e, 0xa8, 0x97, 0xe2, 0x52, 0x36, 0x05, 0x86, 0xb3, 0x9b, 0x5a,
+ 0x2e, 0x3e, 0x12, 0xbb, 0x30, 0x88, 0x5b, 0x99, 0xba, 0x06, 0x8d, 0x10,
+ 0xac, 0x7d, 0xfd, 0xfc, 0x26, 0x3e, 0xbc, 0xd5,
+};
+static const unsigned char kat621_addin1[] = {
+ 0x25, 0x9b, 0xac, 0x2e, 0x62, 0xda, 0x63, 0x89, 0xbf, 0x6a, 0x5a, 0xb3,
+ 0x44, 0x17, 0x7c, 0xa1, 0x6b, 0xa5, 0xaf, 0xe7, 0x75, 0x5b, 0x5a, 0x5b,
+ 0xb4, 0xb9, 0x4b, 0x3e, 0xcc, 0x6a, 0x8f, 0x7b,
+};
+static const unsigned char kat621_retbits[] = {
+ 0x18, 0x1c, 0x99, 0x5f, 0x85, 0x92, 0x38, 0x4d, 0xfb, 0x56, 0x5a, 0xeb,
+ 0x11, 0x49, 0x44, 0x2b, 0x87, 0x1b, 0xe2, 0x9a, 0xaa, 0x32, 0x40, 0x47,
+ 0xb1, 0x25, 0x64, 0x62, 0x2b, 0xc1, 0xae, 0x7d, 0x38, 0x2c, 0x06, 0xaa,
+ 0xb3, 0xb2, 0xaa, 0x6d, 0x3c, 0xe1, 0x51, 0xaa, 0x17, 0x11, 0xf1, 0x6d,
+ 0x58, 0x7a, 0x03, 0x66, 0x23, 0x63, 0x0f, 0xef, 0xbb, 0x69, 0xcc, 0x15,
+ 0x38, 0xb4, 0x45, 0x1a,
+};
+static const struct drbg_kat_no_reseed kat621_t = {
+ 5, kat621_entropyin, kat621_nonce, kat621_persstr,
+ kat621_addin0, kat621_addin1, kat621_retbits
+};
+static const struct drbg_kat kat621 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat621_t
+};
+
+static const unsigned char kat622_entropyin[] = {
+ 0x92, 0xdf, 0x43, 0x3d, 0xef, 0x81, 0xe1, 0xd7, 0x29, 0x88, 0xd2, 0x95,
+ 0xa5, 0x6a, 0x67, 0x9d, 0x0e, 0x61, 0x5b, 0x55, 0x08, 0xc9, 0x6c, 0x75,
+ 0xad, 0x5d, 0x22, 0xd8, 0xca, 0xa5, 0x25, 0xbb,
+};
+static const unsigned char kat622_nonce[] = {
+ 0x71, 0xbd, 0xbd, 0x0b, 0x0b, 0xc5, 0xb1, 0xf0, 0x3e, 0xbe, 0xd3, 0x00,
+ 0x66, 0x76, 0x85, 0x86,
+};
+static const unsigned char kat622_persstr[] = {0};
+static const unsigned char kat622_addin0[] = {
+ 0x06, 0x08, 0x30, 0xec, 0xbb, 0x10, 0xc3, 0xfc, 0x18, 0xe7, 0x8d, 0x0e,
+ 0x8f, 0x12, 0xa6, 0x51, 0x02, 0xd1, 0xff, 0x8b, 0x37, 0xf8, 0x99, 0xe5,
+ 0x44, 0x5b, 0x5a, 0x03, 0x63, 0xa1, 0x18, 0x4f,
+};
+static const unsigned char kat622_addin1[] = {
+ 0x62, 0x8c, 0x96, 0xa7, 0xf5, 0x62, 0x03, 0x4d, 0x05, 0x6a, 0x4f, 0xec,
+ 0x0b, 0xfa, 0x2e, 0x9f, 0x0c, 0xcb, 0x6b, 0xe9, 0xcd, 0x33, 0xc6, 0x22,
+ 0x41, 0xa5, 0x07, 0xfd, 0xda, 0x00, 0x7f, 0x81,
+};
+static const unsigned char kat622_retbits[] = {
+ 0x09, 0xc4, 0x50, 0x31, 0x89, 0x57, 0xe2, 0x9f, 0x09, 0xe1, 0x5b, 0xd3,
+ 0xb0, 0x1c, 0x1d, 0x50, 0x2b, 0xbe, 0x90, 0x96, 0xf4, 0x0a, 0xa9, 0x51,
+ 0x73, 0x3a, 0xb8, 0xf7, 0xc0, 0x36, 0x30, 0x53, 0xca, 0x45, 0xbf, 0x81,
+ 0x9a, 0x02, 0xf3, 0xe1, 0x9e, 0x8f, 0xd8, 0x0c, 0xc0, 0x47, 0x09, 0xce,
+ 0x07, 0xa6, 0xb5, 0x80, 0x9b, 0xa8, 0xf7, 0x48, 0x6e, 0x14, 0xab, 0x95,
+ 0xce, 0xd2, 0xe0, 0x87,
+};
+static const struct drbg_kat_no_reseed kat622_t = {
+ 6, kat622_entropyin, kat622_nonce, kat622_persstr,
+ kat622_addin0, kat622_addin1, kat622_retbits
+};
+static const struct drbg_kat kat622 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat622_t
+};
+
+static const unsigned char kat623_entropyin[] = {
+ 0x39, 0x34, 0x15, 0xa3, 0x28, 0xe2, 0x10, 0x93, 0xbb, 0x34, 0xeb, 0xb0,
+ 0x81, 0x97, 0xd2, 0x13, 0x94, 0xe2, 0x6e, 0x43, 0xd8, 0x2c, 0x1d, 0x2a,
+ 0xbf, 0xbd, 0xd4, 0x6a, 0x16, 0x5c, 0x27, 0xa8,
+};
+static const unsigned char kat623_nonce[] = {
+ 0xae, 0xe4, 0x9e, 0x30, 0x28, 0xd4, 0x07, 0x58, 0xb3, 0xf4, 0x2f, 0xd6,
+ 0xb8, 0xe6, 0x8b, 0xef,
+};
+static const unsigned char kat623_persstr[] = {0};
+static const unsigned char kat623_addin0[] = {
+ 0xd5, 0x3d, 0xc5, 0xa6, 0x12, 0xcd, 0x15, 0x4a, 0xde, 0x83, 0xaf, 0xc0,
+ 0x00, 0x93, 0x3a, 0xd8, 0x8a, 0xed, 0xb8, 0x24, 0xa0, 0x2e, 0x2f, 0xd9,
+ 0x7a, 0x86, 0x97, 0xbe, 0x56, 0xda, 0x48, 0xb1,
+};
+static const unsigned char kat623_addin1[] = {
+ 0xbd, 0xa3, 0x92, 0xc5, 0x79, 0xac, 0x3d, 0x33, 0xd6, 0xc7, 0xb9, 0x45,
+ 0x5d, 0x6b, 0x8e, 0x71, 0x27, 0x84, 0x9b, 0x5a, 0x18, 0x6b, 0xf0, 0x06,
+ 0x0a, 0x3a, 0xf1, 0xe8, 0x30, 0x1e, 0xaf, 0x67,
+};
+static const unsigned char kat623_retbits[] = {
+ 0x5c, 0x33, 0x1c, 0xcc, 0xbc, 0x93, 0x52, 0x2f, 0xc8, 0x3f, 0x4c, 0xe8,
+ 0xc2, 0x2f, 0xff, 0x78, 0x1e, 0xe6, 0xe7, 0xd3, 0x82, 0x14, 0x1c, 0xce,
+ 0x7f, 0x0e, 0xfe, 0xe5, 0x68, 0x35, 0xf7, 0x80, 0x26, 0x5a, 0x4b, 0xe5,
+ 0x3c, 0x54, 0x12, 0xf9, 0x80, 0x83, 0x2a, 0xed, 0x12, 0xce, 0x88, 0x7c,
+ 0xf1, 0x5d, 0x28, 0x1a, 0xaa, 0x64, 0x93, 0x3c, 0x51, 0x27, 0xe1, 0x44,
+ 0x20, 0x97, 0x90, 0x36,
+};
+static const struct drbg_kat_no_reseed kat623_t = {
+ 7, kat623_entropyin, kat623_nonce, kat623_persstr,
+ kat623_addin0, kat623_addin1, kat623_retbits
+};
+static const struct drbg_kat kat623 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat623_t
+};
+
+static const unsigned char kat624_entropyin[] = {
+ 0xb7, 0xc3, 0xac, 0xfb, 0xfd, 0xff, 0x34, 0x42, 0xef, 0x1c, 0x79, 0xf4,
+ 0xac, 0x90, 0xc9, 0x92, 0x3c, 0x3f, 0x90, 0xd9, 0xbf, 0x1b, 0x02, 0xa3,
+ 0xca, 0x73, 0xb9, 0xb5, 0x60, 0xa6, 0x9e, 0x8c,
+};
+static const unsigned char kat624_nonce[] = {
+ 0x9e, 0xaf, 0xc9, 0x73, 0x76, 0x01, 0x47, 0xdb, 0x55, 0x05, 0x74, 0x5a,
+ 0x70, 0x4b, 0xa0, 0x56,
+};
+static const unsigned char kat624_persstr[] = {0};
+static const unsigned char kat624_addin0[] = {
+ 0xb3, 0xaf, 0xa7, 0x63, 0xbd, 0xb6, 0xcf, 0x2f, 0xf7, 0x90, 0xa5, 0x27,
+ 0x1e, 0xe6, 0x9d, 0xd0, 0xd7, 0xb3, 0x55, 0x4b, 0x63, 0x77, 0x52, 0x6c,
+ 0x46, 0x8c, 0x50, 0xc1, 0x55, 0x05, 0xce, 0x7c,
+};
+static const unsigned char kat624_addin1[] = {
+ 0x53, 0x81, 0x09, 0xfe, 0xb9, 0x58, 0xe5, 0x2d, 0x31, 0xe8, 0xfb, 0xb2,
+ 0xc2, 0x6a, 0x10, 0x37, 0xfb, 0x11, 0xff, 0xb9, 0xc2, 0xb2, 0x55, 0x9d,
+ 0x18, 0xf8, 0x41, 0xa8, 0x37, 0xf8, 0xa6, 0x9d,
+};
+static const unsigned char kat624_retbits[] = {
+ 0xe3, 0xd3, 0x02, 0x19, 0xe1, 0xc4, 0xc9, 0x69, 0x04, 0x97, 0xce, 0xde,
+ 0xcf, 0xf7, 0xab, 0xb4, 0x25, 0x14, 0xe9, 0xfa, 0x05, 0x91, 0xb3, 0x66,
+ 0x9c, 0xf6, 0x70, 0x04, 0xc0, 0xe2, 0x01, 0x69, 0x12, 0x9c, 0x09, 0xc7,
+ 0xe6, 0x04, 0xf9, 0xac, 0x67, 0xcc, 0x22, 0x04, 0xe3, 0x29, 0x31, 0xca,
+ 0x19, 0x14, 0xae, 0x18, 0xb6, 0x52, 0xbf, 0xde, 0x98, 0xf5, 0x3e, 0xb4,
+ 0xc1, 0xd4, 0x06, 0xa3,
+};
+static const struct drbg_kat_no_reseed kat624_t = {
+ 8, kat624_entropyin, kat624_nonce, kat624_persstr,
+ kat624_addin0, kat624_addin1, kat624_retbits
+};
+static const struct drbg_kat kat624 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat624_t
+};
+
+static const unsigned char kat625_entropyin[] = {
+ 0xd3, 0xea, 0xbe, 0x6b, 0xe4, 0xd1, 0x74, 0x69, 0xdd, 0x74, 0x87, 0x18,
+ 0x17, 0xe1, 0x74, 0x86, 0xe8, 0x98, 0xc8, 0xe6, 0x5f, 0x36, 0x9a, 0xd6,
+ 0xe3, 0x8b, 0x41, 0xaa, 0x22, 0xa5, 0xbd, 0x27,
+};
+static const unsigned char kat625_nonce[] = {
+ 0x06, 0x7d, 0x66, 0x10, 0x71, 0x7a, 0x8f, 0xfb, 0xf8, 0xdb, 0xf9, 0x40,
+ 0x5e, 0x7f, 0x15, 0xcf,
+};
+static const unsigned char kat625_persstr[] = {0};
+static const unsigned char kat625_addin0[] = {
+ 0x91, 0x1a, 0xb9, 0xc5, 0x75, 0x3c, 0x5d, 0x70, 0x93, 0xaf, 0x43, 0x16,
+ 0xd7, 0xd5, 0xc0, 0x3a, 0x2b, 0x97, 0x1d, 0xb8, 0xcf, 0x7b, 0x0c, 0x58,
+ 0xcb, 0x7f, 0xd8, 0xd5, 0xb9, 0xd8, 0xe0, 0x1b,
+};
+static const unsigned char kat625_addin1[] = {
+ 0x49, 0x53, 0x5f, 0xc0, 0xba, 0x86, 0x3d, 0xaf, 0x3b, 0x29, 0xdd, 0x8e,
+ 0x8d, 0x56, 0xf2, 0x06, 0x50, 0x8a, 0xe7, 0xb0, 0xc3, 0x43, 0x7a, 0x41,
+ 0x84, 0x7a, 0xea, 0x77, 0x18, 0x4b, 0x3e, 0x13,
+};
+static const unsigned char kat625_retbits[] = {
+ 0xec, 0x4b, 0xe9, 0xf3, 0xab, 0x19, 0x67, 0xe5, 0xbf, 0x96, 0x3f, 0xe3,
+ 0xca, 0xc8, 0x73, 0xc6, 0xcd, 0x87, 0xd9, 0x1a, 0x8a, 0x9d, 0x20, 0xe6,
+ 0xfd, 0x5f, 0x64, 0x18, 0xa3, 0x97, 0x2b, 0xfc, 0x1b, 0x9f, 0xcd, 0xa3,
+ 0xab, 0x35, 0x9e, 0xb7, 0x7b, 0x85, 0x85, 0x2d, 0x78, 0xa2, 0xa4, 0x8f,
+ 0xca, 0x43, 0x6e, 0x3a, 0xdf, 0x1b, 0x45, 0x0f, 0x27, 0x04, 0x5e, 0xba,
+ 0x6b, 0x2f, 0x1d, 0x6d,
+};
+static const struct drbg_kat_no_reseed kat625_t = {
+ 9, kat625_entropyin, kat625_nonce, kat625_persstr,
+ kat625_addin0, kat625_addin1, kat625_retbits
+};
+static const struct drbg_kat kat625 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat625_t
+};
+
+static const unsigned char kat626_entropyin[] = {
+ 0xf4, 0x6b, 0x8c, 0x14, 0x80, 0x4b, 0x70, 0x3b, 0x93, 0x87, 0x47, 0x65,
+ 0x10, 0xd8, 0xa6, 0x50, 0xc0, 0x32, 0xdf, 0xe9, 0x83, 0x7b, 0xc4, 0xac,
+ 0xc3, 0xac, 0x40, 0xfc, 0xab, 0xcd, 0x79, 0xc8,
+};
+static const unsigned char kat626_nonce[] = {
+ 0x6a, 0x06, 0x15, 0x2e, 0x43, 0x83, 0xb2, 0x12, 0x8d, 0x42, 0x92, 0xcd,
+ 0x24, 0xd6, 0xf2, 0xd6,
+};
+static const unsigned char kat626_persstr[] = {0};
+static const unsigned char kat626_addin0[] = {
+ 0x7e, 0xce, 0x8c, 0x73, 0xb7, 0x0b, 0x80, 0xcc, 0x28, 0xf4, 0xd7, 0xb5,
+ 0xc1, 0x7e, 0xdd, 0xf8, 0x15, 0x0c, 0x62, 0x33, 0xe6, 0xa3, 0x27, 0x47,
+ 0x29, 0x66, 0x57, 0x86, 0xf3, 0x5f, 0x4b, 0xab,
+};
+static const unsigned char kat626_addin1[] = {
+ 0x9e, 0xcf, 0x34, 0x1b, 0x59, 0xc1, 0xe0, 0x23, 0x95, 0xda, 0xba, 0x3f,
+ 0xaa, 0xe6, 0xf4, 0x36, 0x60, 0xb9, 0x87, 0x91, 0xd5, 0x55, 0xab, 0xa1,
+ 0xd8, 0x10, 0x96, 0x15, 0x43, 0x2a, 0x7b, 0x81,
+};
+static const unsigned char kat626_retbits[] = {
+ 0xd2, 0xf8, 0x97, 0x6d, 0xdb, 0xe8, 0xc6, 0x1f, 0xb7, 0x20, 0x59, 0xac,
+ 0x6e, 0xfa, 0x8f, 0x2b, 0xc9, 0x68, 0x8b, 0x68, 0xe4, 0xbe, 0x46, 0x40,
+ 0xa2, 0x02, 0xb5, 0xdf, 0xa1, 0x1d, 0x75, 0x52, 0xd4, 0xf8, 0x9c, 0xe7,
+ 0xbc, 0x81, 0x34, 0xc9, 0x8d, 0xf5, 0x3c, 0xd0, 0x56, 0xf6, 0x33, 0x4f,
+ 0xcb, 0xac, 0xe2, 0xdc, 0xc3, 0xd6, 0x4b, 0xf3, 0x55, 0x3e, 0xd9, 0x05,
+ 0xff, 0xc4, 0x28, 0xbc,
+};
+static const struct drbg_kat_no_reseed kat626_t = {
+ 10, kat626_entropyin, kat626_nonce, kat626_persstr,
+ kat626_addin0, kat626_addin1, kat626_retbits
+};
+static const struct drbg_kat kat626 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat626_t
+};
+
+static const unsigned char kat627_entropyin[] = {
+ 0x02, 0x7d, 0x70, 0x1b, 0x53, 0x1e, 0x61, 0x8c, 0xe1, 0xb3, 0x64, 0x91,
+ 0xb2, 0x5d, 0x96, 0x7d, 0x6d, 0x3d, 0xcd, 0xa0, 0x14, 0x5e, 0x9e, 0x56,
+ 0x49, 0xb3, 0x69, 0x8a, 0x37, 0x4a, 0x7b, 0x2e,
+};
+static const unsigned char kat627_nonce[] = {
+ 0x44, 0xa5, 0x09, 0xef, 0x42, 0x08, 0x66, 0x09, 0x8c, 0x3e, 0x0f, 0x4a,
+ 0xbf, 0xe7, 0x3f, 0x21,
+};
+static const unsigned char kat627_persstr[] = {0};
+static const unsigned char kat627_addin0[] = {
+ 0x50, 0x52, 0xae, 0xed, 0x2c, 0x37, 0xd7, 0x6a, 0xbb, 0xe9, 0x33, 0x83,
+ 0x16, 0x7d, 0x25, 0x6c, 0xd1, 0xb4, 0x93, 0xa1, 0xb6, 0xb4, 0x24, 0xda,
+ 0x50, 0x40, 0x71, 0x97, 0xe9, 0x12, 0x19, 0xf5,
+};
+static const unsigned char kat627_addin1[] = {
+ 0xa7, 0xcb, 0x70, 0xc5, 0x29, 0xfd, 0xf6, 0x1a, 0xa3, 0x04, 0xcb, 0xba,
+ 0x1f, 0x39, 0x7a, 0xf4, 0x10, 0x7a, 0x6e, 0x41, 0x39, 0xa3, 0x60, 0x14,
+ 0xe5, 0x4c, 0x7a, 0x41, 0x1d, 0x87, 0x2d, 0x8f,
+};
+static const unsigned char kat627_retbits[] = {
+ 0xbd, 0x11, 0x62, 0x0a, 0xde, 0x95, 0x56, 0x9f, 0x4e, 0x1c, 0xef, 0x6d,
+ 0xa8, 0xd8, 0x64, 0x5d, 0xd8, 0x27, 0x48, 0x1e, 0xa4, 0x2e, 0xf9, 0x82,
+ 0xe2, 0x11, 0x76, 0x1b, 0xe4, 0xfa, 0x9a, 0xae, 0xe9, 0x2f, 0x30, 0xde,
+ 0xd2, 0x68, 0xaa, 0x7a, 0xc9, 0x27, 0x07, 0xd0, 0xd6, 0x48, 0xa2, 0xe2,
+ 0xae, 0xc5, 0x30, 0xa4, 0x84, 0x94, 0xd2, 0x69, 0x9b, 0x3a, 0x3f, 0xd7,
+ 0x39, 0xda, 0x20, 0x9a,
+};
+static const struct drbg_kat_no_reseed kat627_t = {
+ 11, kat627_entropyin, kat627_nonce, kat627_persstr,
+ kat627_addin0, kat627_addin1, kat627_retbits
+};
+static const struct drbg_kat kat627 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat627_t
+};
+
+static const unsigned char kat628_entropyin[] = {
+ 0x73, 0x42, 0xd6, 0x94, 0xe0, 0x8b, 0xd0, 0xbb, 0x7b, 0xa9, 0x17, 0x11,
+ 0x87, 0x98, 0x33, 0x9e, 0x36, 0xb9, 0xb3, 0x0e, 0x1f, 0x1d, 0x03, 0x44,
+ 0xe6, 0xf8, 0x53, 0x2c, 0xd4, 0x2d, 0x58, 0xa8,
+};
+static const unsigned char kat628_nonce[] = {
+ 0xec, 0xea, 0xbd, 0x4c, 0x87, 0x43, 0x56, 0xb3, 0xb3, 0x0a, 0xfb, 0xad,
+ 0xdc, 0xe2, 0x32, 0xba,
+};
+static const unsigned char kat628_persstr[] = {0};
+static const unsigned char kat628_addin0[] = {
+ 0x15, 0x83, 0x1e, 0x1f, 0xc3, 0x0e, 0xf5, 0x2c, 0x79, 0x05, 0x02, 0x67,
+ 0x24, 0x0b, 0x74, 0x64, 0xa7, 0x7f, 0xfb, 0x90, 0xaa, 0x56, 0x81, 0x38,
+ 0x37, 0x9a, 0x4e, 0x77, 0x70, 0x81, 0xe2, 0xbb,
+};
+static const unsigned char kat628_addin1[] = {
+ 0x47, 0x7c, 0xd2, 0xcb, 0x4c, 0x80, 0xf3, 0xd1, 0x68, 0x16, 0xce, 0x2a,
+ 0xf1, 0xc3, 0x92, 0x0f, 0x20, 0x17, 0xf2, 0xd4, 0xeb, 0x48, 0x2a, 0xd2,
+ 0xa5, 0x86, 0x8a, 0xc4, 0x0a, 0x0e, 0x31, 0xc2,
+};
+static const unsigned char kat628_retbits[] = {
+ 0x56, 0x66, 0x30, 0xa2, 0x2c, 0x26, 0xf9, 0x26, 0xf1, 0x3f, 0x30, 0xba,
+ 0xc8, 0xc2, 0xf9, 0x53, 0xde, 0xeb, 0x2a, 0xd9, 0x0f, 0xac, 0xd3, 0xcd,
+ 0xc8, 0x8b, 0x3f, 0x44, 0xfc, 0xee, 0x53, 0xfb, 0x1e, 0xcf, 0x13, 0xf3,
+ 0x78, 0x04, 0xad, 0x88, 0x9a, 0x70, 0x52, 0xb5, 0xfd, 0x7e, 0xe9, 0x28,
+ 0xa2, 0x59, 0x1f, 0x6f, 0xdb, 0xb9, 0x86, 0xfa, 0x38, 0xf3, 0x7c, 0xc8,
+ 0xe0, 0x2d, 0x4e, 0x9a,
+};
+static const struct drbg_kat_no_reseed kat628_t = {
+ 12, kat628_entropyin, kat628_nonce, kat628_persstr,
+ kat628_addin0, kat628_addin1, kat628_retbits
+};
+static const struct drbg_kat kat628 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat628_t
+};
+
+static const unsigned char kat629_entropyin[] = {
+ 0xe9, 0x08, 0xe2, 0xa4, 0xa6, 0x44, 0x4b, 0x85, 0x26, 0xfc, 0x41, 0x83,
+ 0x5f, 0x52, 0xf9, 0x44, 0x6b, 0x72, 0xf5, 0x33, 0x1b, 0x32, 0x86, 0xa4,
+ 0x06, 0xc8, 0xd5, 0x40, 0x83, 0x26, 0xa8, 0x60,
+};
+static const unsigned char kat629_nonce[] = {
+ 0x71, 0xcf, 0x47, 0x0f, 0x85, 0xa8, 0x0e, 0x7b, 0x33, 0xc4, 0x13, 0x3d,
+ 0xb7, 0x7e, 0xe4, 0x8b,
+};
+static const unsigned char kat629_persstr[] = {0};
+static const unsigned char kat629_addin0[] = {
+ 0x92, 0x9a, 0x61, 0xe3, 0x54, 0x4c, 0x94, 0x21, 0x8b, 0x13, 0x98, 0xc8,
+ 0xd6, 0x90, 0x4b, 0xde, 0x66, 0x2d, 0x12, 0x4a, 0x01, 0x3a, 0x54, 0xe4,
+ 0x82, 0xc2, 0x77, 0xd8, 0x5e, 0x0d, 0xc2, 0xae,
+};
+static const unsigned char kat629_addin1[] = {
+ 0x57, 0x14, 0xc6, 0x72, 0xc3, 0x91, 0xa3, 0x6a, 0x5b, 0x2f, 0x09, 0x9a,
+ 0xae, 0x8a, 0xaa, 0x16, 0x39, 0x28, 0x1d, 0xc0, 0xf5, 0x5b, 0x04, 0xc1,
+ 0x01, 0x86, 0x28, 0x23, 0x41, 0xbb, 0x44, 0xfc,
+};
+static const unsigned char kat629_retbits[] = {
+ 0xd4, 0x6a, 0xf2, 0x2d, 0xfd, 0x1b, 0xc5, 0x55, 0xe4, 0x2a, 0xc0, 0xec,
+ 0xc7, 0xec, 0x28, 0xc8, 0x52, 0xc8, 0xe3, 0x35, 0xac, 0xc7, 0x9c, 0x65,
+ 0xe1, 0x42, 0xfa, 0xf4, 0x43, 0x41, 0x53, 0x89, 0x64, 0x83, 0xbd, 0xd1,
+ 0xc6, 0x4d, 0x5d, 0xe2, 0xc8, 0x34, 0x45, 0x79, 0x76, 0x48, 0x37, 0x1f,
+ 0x59, 0xa3, 0x16, 0xc4, 0xe0, 0xd8, 0x37, 0xd6, 0xaa, 0x17, 0x54, 0x6f,
+ 0x8c, 0xda, 0x82, 0x87,
+};
+static const struct drbg_kat_no_reseed kat629_t = {
+ 13, kat629_entropyin, kat629_nonce, kat629_persstr,
+ kat629_addin0, kat629_addin1, kat629_retbits
+};
+static const struct drbg_kat kat629 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat629_t
+};
+
+static const unsigned char kat630_entropyin[] = {
+ 0x6c, 0xf5, 0x51, 0x90, 0x3c, 0x86, 0xeb, 0x4a, 0xe6, 0xff, 0xde, 0xf3,
+ 0x5f, 0x57, 0xd6, 0xd8, 0xa7, 0x46, 0x17, 0xbd, 0x3d, 0x97, 0x90, 0xe6,
+ 0x4a, 0x2e, 0x76, 0xb9, 0xb0, 0x14, 0x05, 0x55,
+};
+static const unsigned char kat630_nonce[] = {
+ 0x34, 0x2e, 0x55, 0x01, 0x86, 0x20, 0x60, 0xe4, 0x97, 0x4b, 0xc8, 0x8e,
+ 0x7c, 0x63, 0x2c, 0x69,
+};
+static const unsigned char kat630_persstr[] = {0};
+static const unsigned char kat630_addin0[] = {
+ 0x91, 0xad, 0x32, 0x67, 0x62, 0x6a, 0xe5, 0xc3, 0x60, 0xfd, 0xd7, 0xba,
+ 0xa5, 0xff, 0x88, 0x17, 0x8a, 0xe8, 0x4f, 0xf7, 0x8b, 0x69, 0x4e, 0x2f,
+ 0xbf, 0x90, 0x77, 0x9b, 0xf4, 0xeb, 0x89, 0x8b,
+};
+static const unsigned char kat630_addin1[] = {
+ 0xcc, 0xd9, 0x7e, 0xc3, 0x1b, 0x03, 0x0e, 0x73, 0x2e, 0xdb, 0xfc, 0xdf,
+ 0xb9, 0x84, 0x8c, 0x2b, 0x36, 0x73, 0xbd, 0x3b, 0x10, 0x71, 0x50, 0x26,
+ 0x58, 0xda, 0xa4, 0x60, 0xb2, 0x62, 0xfb, 0x1c,
+};
+static const unsigned char kat630_retbits[] = {
+ 0x37, 0x31, 0xcf, 0xe5, 0xeb, 0xbc, 0x5b, 0x05, 0xc1, 0x12, 0xe8, 0x8f,
+ 0x1b, 0x4c, 0xb3, 0xde, 0xee, 0xe4, 0xbc, 0xc9, 0xec, 0xd1, 0x63, 0x5e,
+ 0x9c, 0x85, 0x46, 0x92, 0x57, 0x15, 0x06, 0x61, 0xa5, 0xdb, 0xac, 0x2e,
+ 0x63, 0x4b, 0x8f, 0xb0, 0xde, 0x08, 0xb5, 0xcd, 0x5e, 0xee, 0x12, 0x65,
+ 0xf8, 0x2e, 0x92, 0x78, 0xdc, 0xcd, 0x77, 0xb1, 0xfe, 0xd2, 0x32, 0x3c,
+ 0x55, 0x44, 0x45, 0xc3,
+};
+static const struct drbg_kat_no_reseed kat630_t = {
+ 14, kat630_entropyin, kat630_nonce, kat630_persstr,
+ kat630_addin0, kat630_addin1, kat630_retbits
+};
+static const struct drbg_kat kat630 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat630_t
+};
+
+static const unsigned char kat631_entropyin[] = {
+ 0x47, 0xd5, 0x70, 0xe3, 0xa0, 0xa2, 0x0c, 0x0a, 0x20, 0x10, 0x67, 0x3a,
+ 0x61, 0x31, 0xdc, 0xc3, 0x20, 0x26, 0x79, 0xeb, 0x06, 0xf3, 0xc1, 0xb8,
+ 0x2a, 0x71, 0x0e, 0xdf, 0x92, 0xd3, 0x77, 0x4b,
+};
+static const unsigned char kat631_nonce[] = {
+ 0x88, 0x1f, 0xa7, 0xfd, 0xfb, 0x70, 0xd1, 0x06, 0xb9, 0xb9, 0xeb, 0x02,
+ 0x54, 0xb0, 0xeb, 0x6b,
+};
+static const unsigned char kat631_persstr[] = {
+ 0x0f, 0x66, 0x78, 0x7e, 0xf9, 0xb9, 0x03, 0x64, 0x51, 0x7e, 0x31, 0x51,
+ 0xb1, 0x58, 0xbe, 0xcd, 0x9d, 0xf4, 0x06, 0x0c, 0xd9, 0x2e, 0xc8, 0x8d,
+ 0xa3, 0xa6, 0xdd, 0x7b, 0x3b, 0x18, 0xe5, 0x4f,
+};
+static const unsigned char kat631_addin0[] = {0};
+static const unsigned char kat631_addin1[] = {0};
+static const unsigned char kat631_retbits[] = {
+ 0xe6, 0x4e, 0x8d, 0xca, 0xc9, 0x5e, 0x0e, 0x46, 0xf5, 0xe6, 0xc5, 0x57,
+ 0x1d, 0x07, 0x7b, 0x57, 0x4b, 0x1e, 0xab, 0xe4, 0x88, 0x0b, 0xbc, 0x0b,
+ 0xab, 0x8e, 0x08, 0xe2, 0x14, 0x80, 0x51, 0x44, 0x11, 0x65, 0xc3, 0x05,
+ 0xfc, 0x09, 0xd6, 0x07, 0x65, 0x19, 0x03, 0x46, 0xaf, 0x27, 0xa0, 0xdf,
+ 0x81, 0x56, 0x53, 0xe8, 0x1f, 0x78, 0x2a, 0xb7, 0xfe, 0xe5, 0x5d, 0xad,
+ 0x23, 0xec, 0x51, 0xd1,
+};
+static const struct drbg_kat_no_reseed kat631_t = {
+ 0, kat631_entropyin, kat631_nonce, kat631_persstr,
+ kat631_addin0, kat631_addin1, kat631_retbits
+};
+static const struct drbg_kat kat631 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat631_t
+};
+
+static const unsigned char kat632_entropyin[] = {
+ 0x21, 0xcf, 0x7b, 0x1f, 0x01, 0x49, 0x95, 0xff, 0xe7, 0xfe, 0x84, 0x54,
+ 0x3f, 0x3e, 0x9a, 0x75, 0xcb, 0x3f, 0x99, 0x85, 0x1c, 0xf2, 0x1c, 0x4a,
+ 0xbb, 0xdc, 0x38, 0x73, 0x30, 0xd5, 0xc7, 0xe9,
+};
+static const unsigned char kat632_nonce[] = {
+ 0x49, 0xa6, 0xee, 0xa4, 0x26, 0x3e, 0xe1, 0xf5, 0xd4, 0x61, 0x90, 0x7d,
+ 0xc5, 0x8b, 0x44, 0xfb,
+};
+static const unsigned char kat632_persstr[] = {
+ 0x14, 0xd5, 0x39, 0x75, 0xf8, 0x52, 0xbc, 0xc9, 0xa1, 0xc5, 0xec, 0x9f,
+ 0x48, 0x25, 0xa0, 0x47, 0x21, 0xec, 0xfd, 0x87, 0xf2, 0xad, 0xef, 0x09,
+ 0x9a, 0x5b, 0x88, 0xe2, 0x7d, 0x77, 0x7b, 0x03,
+};
+static const unsigned char kat632_addin0[] = {0};
+static const unsigned char kat632_addin1[] = {0};
+static const unsigned char kat632_retbits[] = {
+ 0xa2, 0x6c, 0x99, 0x05, 0xc9, 0xae, 0x13, 0x8d, 0x94, 0x8b, 0xe7, 0x3c,
+ 0x42, 0x71, 0xe7, 0xe0, 0xda, 0xa2, 0x31, 0x61, 0xbc, 0x65, 0x95, 0x15,
+ 0x48, 0x81, 0xae, 0x60, 0x53, 0x59, 0x9a, 0x21, 0xaa, 0x97, 0xe5, 0x7f,
+ 0x3c, 0xe3, 0x4d, 0x30, 0xf6, 0x96, 0x47, 0xe9, 0x70, 0xe7, 0x82, 0x70,
+ 0x39, 0x93, 0x26, 0x15, 0xd9, 0x70, 0xb4, 0x75, 0x75, 0x96, 0x4c, 0xeb,
+ 0x8f, 0x7a, 0x43, 0x7d,
+};
+static const struct drbg_kat_no_reseed kat632_t = {
+ 1, kat632_entropyin, kat632_nonce, kat632_persstr,
+ kat632_addin0, kat632_addin1, kat632_retbits
+};
+static const struct drbg_kat kat632 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat632_t
+};
+
+static const unsigned char kat633_entropyin[] = {
+ 0x17, 0x9e, 0x22, 0xe2, 0xf4, 0x95, 0xba, 0x9a, 0xe3, 0x52, 0xb9, 0x3c,
+ 0x83, 0x6b, 0x69, 0x33, 0xe2, 0x8a, 0x2a, 0x18, 0x4f, 0x89, 0x82, 0xc0,
+ 0x4e, 0x25, 0xe7, 0xee, 0xe6, 0x6f, 0x9f, 0x7c,
+};
+static const unsigned char kat633_nonce[] = {
+ 0xc1, 0x84, 0xe8, 0x42, 0xd2, 0x55, 0x5e, 0x56, 0x88, 0x8b, 0x7b, 0x75,
+ 0x18, 0x9e, 0x77, 0x75,
+};
+static const unsigned char kat633_persstr[] = {
+ 0x0f, 0xc7, 0x4e, 0x50, 0xa0, 0xfd, 0xa7, 0x9b, 0xb3, 0x1d, 0x5e, 0xbb,
+ 0x30, 0x8a, 0xa9, 0x7c, 0xcd, 0x6e, 0x6f, 0x17, 0xdc, 0xec, 0x14, 0x97,
+ 0x6f, 0x4e, 0x6b, 0x15, 0xca, 0x1b, 0xe3, 0x41,
+};
+static const unsigned char kat633_addin0[] = {0};
+static const unsigned char kat633_addin1[] = {0};
+static const unsigned char kat633_retbits[] = {
+ 0x47, 0x49, 0x76, 0x47, 0x11, 0x17, 0x44, 0xc7, 0x3d, 0xd2, 0xd0, 0x5c,
+ 0xf5, 0x7d, 0x65, 0xce, 0xae, 0x22, 0xe2, 0x2c, 0xac, 0x44, 0xb0, 0x98,
+ 0x18, 0x9c, 0x5a, 0x5c, 0x2f, 0x78, 0x1b, 0x74, 0x66, 0x9e, 0x6d, 0x66,
+ 0x9e, 0x38, 0xea, 0x8e, 0x5b, 0x46, 0x60, 0xe0, 0x4c, 0x04, 0x01, 0xc4,
+ 0xa4, 0xe6, 0x4c, 0x33, 0x1d, 0x79, 0x6d, 0x19, 0xb7, 0x35, 0x0a, 0x6a,
+ 0x3e, 0x46, 0x19, 0xfc,
+};
+static const struct drbg_kat_no_reseed kat633_t = {
+ 2, kat633_entropyin, kat633_nonce, kat633_persstr,
+ kat633_addin0, kat633_addin1, kat633_retbits
+};
+static const struct drbg_kat kat633 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat633_t
+};
+
+static const unsigned char kat634_entropyin[] = {
+ 0x60, 0xbf, 0x6d, 0x95, 0x73, 0xea, 0x93, 0x98, 0x07, 0x4c, 0x3d, 0x6e,
+ 0x04, 0xe0, 0xe8, 0x22, 0xf0, 0xee, 0x95, 0xb6, 0x7d, 0xd2, 0x55, 0x59,
+ 0x88, 0x12, 0xe5, 0x33, 0x6a, 0xcc, 0x23, 0x36,
+};
+static const unsigned char kat634_nonce[] = {
+ 0xad, 0x27, 0xd7, 0xb2, 0x74, 0xf3, 0xa2, 0x18, 0x9d, 0x27, 0xbc, 0x54,
+ 0x7d, 0x6a, 0xc4, 0x10,
+};
+static const unsigned char kat634_persstr[] = {
+ 0x58, 0x03, 0x5b, 0xae, 0x9b, 0xa6, 0x7b, 0x89, 0x0b, 0x89, 0x2e, 0x3a,
+ 0x97, 0x4e, 0x33, 0x1d, 0x99, 0xd1, 0x5c, 0x60, 0x75, 0x93, 0xed, 0x21,
+ 0xa5, 0x1d, 0xec, 0x71, 0x03, 0x4d, 0x14, 0x2c,
+};
+static const unsigned char kat634_addin0[] = {0};
+static const unsigned char kat634_addin1[] = {0};
+static const unsigned char kat634_retbits[] = {
+ 0x51, 0x8d, 0xfe, 0xa2, 0x50, 0xe1, 0x79, 0xe2, 0x73, 0x82, 0x83, 0xde,
+ 0x6b, 0xc2, 0x9a, 0x06, 0x9c, 0xd9, 0xf6, 0x79, 0x3c, 0xe1, 0x1e, 0xc8,
+ 0x01, 0xab, 0x2d, 0x32, 0x39, 0x14, 0xe1, 0x34, 0x55, 0x87, 0x6c, 0x4d,
+ 0xb8, 0x32, 0x8a, 0x5b, 0x9a, 0x78, 0xfd, 0x06, 0x1c, 0xad, 0x66, 0x23,
+ 0x2d, 0x10, 0x57, 0xe5, 0xd6, 0xa3, 0x85, 0xa2, 0x97, 0xad, 0xca, 0x9c,
+ 0xdc, 0xa5, 0x7c, 0xaa,
+};
+static const struct drbg_kat_no_reseed kat634_t = {
+ 3, kat634_entropyin, kat634_nonce, kat634_persstr,
+ kat634_addin0, kat634_addin1, kat634_retbits
+};
+static const struct drbg_kat kat634 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat634_t
+};
+
+static const unsigned char kat635_entropyin[] = {
+ 0xd3, 0x9f, 0xb3, 0x56, 0xf6, 0x6c, 0xea, 0xb8, 0x1c, 0x4c, 0xda, 0xd8,
+ 0x9e, 0xe2, 0xe6, 0x65, 0x7f, 0x8b, 0x36, 0xe8, 0x45, 0xd6, 0xb8, 0xb7,
+ 0x53, 0x0a, 0x61, 0x88, 0xc4, 0xc2, 0x6a, 0x8c,
+};
+static const unsigned char kat635_nonce[] = {
+ 0xb1, 0x09, 0x22, 0xb4, 0xa3, 0x08, 0x6e, 0x4a, 0x48, 0x4b, 0x50, 0x39,
+ 0x99, 0x6a, 0x54, 0xb4,
+};
+static const unsigned char kat635_persstr[] = {
+ 0x04, 0xdf, 0x5d, 0x29, 0xdc, 0x5c, 0x07, 0x93, 0xfe, 0x5b, 0x4a, 0xb3,
+ 0xda, 0x3e, 0xf7, 0xd2, 0x64, 0xc4, 0xcd, 0x67, 0x5f, 0xb0, 0x6b, 0xd2,
+ 0x1a, 0xc2, 0x1d, 0x7c, 0x77, 0xa2, 0xce, 0x73,
+};
+static const unsigned char kat635_addin0[] = {0};
+static const unsigned char kat635_addin1[] = {0};
+static const unsigned char kat635_retbits[] = {
+ 0x0f, 0x2c, 0x2d, 0xbe, 0x5d, 0xa6, 0x67, 0x42, 0xe9, 0xaa, 0xaa, 0x48,
+ 0x61, 0x2a, 0x0e, 0x07, 0xdd, 0x69, 0x14, 0x94, 0x2c, 0x52, 0xe8, 0x7d,
+ 0x32, 0x66, 0x15, 0x00, 0x13, 0xaa, 0xc3, 0x13, 0xde, 0x17, 0x17, 0x08,
+ 0x8e, 0x01, 0xb9, 0x3d, 0xd0, 0xd8, 0xc6, 0xab, 0xd0, 0xc5, 0xd6, 0x3d,
+ 0x56, 0x49, 0x51, 0x40, 0x45, 0x8c, 0x4a, 0x98, 0x0a, 0xb4, 0xff, 0x7d,
+ 0x98, 0x9e, 0x00, 0xe4,
+};
+static const struct drbg_kat_no_reseed kat635_t = {
+ 4, kat635_entropyin, kat635_nonce, kat635_persstr,
+ kat635_addin0, kat635_addin1, kat635_retbits
+};
+static const struct drbg_kat kat635 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat635_t
+};
+
+static const unsigned char kat636_entropyin[] = {
+ 0x9a, 0x1a, 0x99, 0xf8, 0xf2, 0xbb, 0x88, 0xa7, 0x45, 0xbb, 0x24, 0xcb,
+ 0xcd, 0x4a, 0xc3, 0xaa, 0xbc, 0xf9, 0xad, 0x96, 0x37, 0x05, 0xdd, 0xee,
+ 0x88, 0x7c, 0xa1, 0x79, 0x2a, 0x1f, 0xa9, 0xf0,
+};
+static const unsigned char kat636_nonce[] = {
+ 0xa9, 0x10, 0x06, 0x54, 0xab, 0xc3, 0xac, 0xd6, 0xfb, 0x0c, 0x34, 0x44,
+ 0x04, 0xed, 0xb9, 0x74,
+};
+static const unsigned char kat636_persstr[] = {
+ 0x2f, 0xaa, 0xd0, 0xea, 0x6e, 0xb2, 0xb5, 0xbe, 0xfe, 0x02, 0x41, 0x19,
+ 0x20, 0x3b, 0xf7, 0x9c, 0x13, 0xed, 0x1f, 0xed, 0xac, 0xf5, 0x35, 0x88,
+ 0x10, 0xf4, 0xf8, 0x70, 0x17, 0x5e, 0x08, 0xc1,
+};
+static const unsigned char kat636_addin0[] = {0};
+static const unsigned char kat636_addin1[] = {0};
+static const unsigned char kat636_retbits[] = {
+ 0x27, 0x98, 0xf2, 0xe4, 0xb6, 0x6b, 0xca, 0x62, 0x12, 0xe1, 0x05, 0x5d,
+ 0x10, 0x0f, 0xfa, 0x4b, 0xac, 0x73, 0x3b, 0x05, 0xdc, 0xa1, 0x9a, 0x36,
+ 0x02, 0xfc, 0xd5, 0xe6, 0x84, 0x87, 0x5a, 0x7c, 0x58, 0xc1, 0xe7, 0xa8,
+ 0x94, 0x1a, 0x77, 0x32, 0x12, 0x4d, 0xaf, 0x13, 0xf9, 0x7c, 0x57, 0xcd,
+ 0x7d, 0x14, 0xe4, 0x03, 0x7a, 0xbf, 0x2f, 0x89, 0x10, 0x28, 0x1d, 0xbf,
+ 0xdf, 0x91, 0x13, 0xbb,
+};
+static const struct drbg_kat_no_reseed kat636_t = {
+ 5, kat636_entropyin, kat636_nonce, kat636_persstr,
+ kat636_addin0, kat636_addin1, kat636_retbits
+};
+static const struct drbg_kat kat636 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat636_t
+};
+
+static const unsigned char kat637_entropyin[] = {
+ 0x9f, 0x63, 0xa3, 0x28, 0x2c, 0xd1, 0x8a, 0x09, 0xa9, 0x1a, 0x50, 0x08,
+ 0x6c, 0xe0, 0xe8, 0xd9, 0x1b, 0xe0, 0x42, 0x61, 0xda, 0x62, 0x38, 0x75,
+ 0xb1, 0x5f, 0x9b, 0xac, 0x5a, 0xfe, 0x7c, 0x6d,
+};
+static const unsigned char kat637_nonce[] = {
+ 0xef, 0x81, 0xc6, 0xf3, 0x67, 0xff, 0xbd, 0x5d, 0x97, 0xcd, 0xdf, 0x81,
+ 0x9a, 0x99, 0xf9, 0x96,
+};
+static const unsigned char kat637_persstr[] = {
+ 0xf1, 0x8f, 0xc5, 0x00, 0xcc, 0x26, 0x0b, 0xeb, 0x53, 0xaa, 0x6a, 0x1d,
+ 0x1e, 0xbd, 0x5b, 0xaf, 0x6e, 0xc3, 0xad, 0x79, 0x57, 0x8a, 0x71, 0xcd,
+ 0xb2, 0x76, 0xc6, 0x9d, 0x67, 0x50, 0x11, 0xcc,
+};
+static const unsigned char kat637_addin0[] = {0};
+static const unsigned char kat637_addin1[] = {0};
+static const unsigned char kat637_retbits[] = {
+ 0x47, 0x8f, 0xb3, 0x11, 0x2c, 0x99, 0x36, 0x3b, 0x7c, 0x6e, 0x5d, 0x78,
+ 0x1c, 0xcf, 0xc2, 0x05, 0x66, 0x94, 0xdd, 0xdb, 0x70, 0xd5, 0xe4, 0xe4,
+ 0x57, 0xf2, 0x2c, 0xfb, 0x15, 0x4d, 0x1d, 0x01, 0x73, 0xc0, 0x9d, 0xaa,
+ 0x88, 0x06, 0xba, 0x9c, 0x7c, 0xef, 0xcd, 0xd7, 0xa7, 0x15, 0xb3, 0xb5,
+ 0x39, 0x1b, 0xe1, 0x0c, 0x37, 0x28, 0xf3, 0xaf, 0x25, 0xab, 0x2a, 0x4b,
+ 0x8a, 0x8a, 0x5c, 0xaa,
+};
+static const struct drbg_kat_no_reseed kat637_t = {
+ 6, kat637_entropyin, kat637_nonce, kat637_persstr,
+ kat637_addin0, kat637_addin1, kat637_retbits
+};
+static const struct drbg_kat kat637 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat637_t
+};
+
+static const unsigned char kat638_entropyin[] = {
+ 0x10, 0x15, 0xc9, 0xc0, 0xd0, 0x6e, 0x6a, 0xc7, 0xac, 0xbb, 0xab, 0x0d,
+ 0x2d, 0xd1, 0xad, 0xea, 0x75, 0x60, 0x57, 0xcc, 0x39, 0x38, 0xef, 0x87,
+ 0x85, 0xe3, 0xd5, 0x1e, 0x5a, 0xfc, 0x01, 0x8e,
+};
+static const unsigned char kat638_nonce[] = {
+ 0x95, 0x1d, 0x78, 0x61, 0xd8, 0x40, 0x9b, 0x0a, 0x62, 0xb1, 0x8c, 0x43,
+ 0xbb, 0xb6, 0x55, 0x23,
+};
+static const unsigned char kat638_persstr[] = {
+ 0xe7, 0x6a, 0x06, 0x02, 0x4d, 0x00, 0xbe, 0x09, 0xc6, 0xa2, 0x2b, 0x78,
+ 0xb7, 0x4c, 0xad, 0xba, 0xf3, 0x68, 0x92, 0x0b, 0x1f, 0x74, 0xa4, 0x41,
+ 0xd5, 0x10, 0xae, 0xe0, 0x2c, 0xae, 0x72, 0x1d,
+};
+static const unsigned char kat638_addin0[] = {0};
+static const unsigned char kat638_addin1[] = {0};
+static const unsigned char kat638_retbits[] = {
+ 0xe1, 0xad, 0x22, 0x2c, 0x7f, 0x45, 0xd8, 0x2d, 0x15, 0x93, 0x09, 0xfe,
+ 0xa1, 0x5e, 0x81, 0xbf, 0x9f, 0x14, 0x8c, 0xac, 0xd5, 0x7b, 0x52, 0xf5,
+ 0xe8, 0xfd, 0x3f, 0xaf, 0x73, 0xd9, 0xb8, 0x32, 0xcc, 0x80, 0x3d, 0x4f,
+ 0x36, 0xe3, 0xd9, 0xaf, 0xb0, 0x3c, 0xba, 0xcb, 0xf7, 0x2d, 0x6b, 0x29,
+ 0x7a, 0x01, 0xd0, 0xf0, 0x0b, 0x82, 0x5f, 0x64, 0xe6, 0x76, 0xa7, 0x01,
+ 0x81, 0x59, 0xda, 0x2b,
+};
+static const struct drbg_kat_no_reseed kat638_t = {
+ 7, kat638_entropyin, kat638_nonce, kat638_persstr,
+ kat638_addin0, kat638_addin1, kat638_retbits
+};
+static const struct drbg_kat kat638 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat638_t
+};
+
+static const unsigned char kat639_entropyin[] = {
+ 0xca, 0xd9, 0x36, 0xac, 0xd1, 0xef, 0x96, 0x85, 0xf6, 0x6b, 0xef, 0x62,
+ 0xa8, 0xbf, 0x4f, 0x91, 0x9e, 0x18, 0x02, 0x4f, 0xda, 0x5c, 0x63, 0xc5,
+ 0x7c, 0xed, 0xb7, 0x02, 0xdf, 0x3e, 0x94, 0xa9,
+};
+static const unsigned char kat639_nonce[] = {
+ 0x85, 0xd3, 0x23, 0x8a, 0xfa, 0x86, 0xc6, 0x54, 0x70, 0x2d, 0xfa, 0x79,
+ 0x3e, 0x11, 0xd3, 0xf6,
+};
+static const unsigned char kat639_persstr[] = {
+ 0xd6, 0x32, 0x4b, 0x2a, 0x3e, 0x38, 0x94, 0x6c, 0x7d, 0xf7, 0xc6, 0xe8,
+ 0xd3, 0x01, 0xf6, 0xb5, 0xe6, 0x3e, 0x55, 0x53, 0x5c, 0x8a, 0xe0, 0xbe,
+ 0xd6, 0x77, 0xce, 0x0e, 0xa8, 0x6e, 0xa4, 0x99,
+};
+static const unsigned char kat639_addin0[] = {0};
+static const unsigned char kat639_addin1[] = {0};
+static const unsigned char kat639_retbits[] = {
+ 0x30, 0x03, 0x46, 0x83, 0x65, 0xb5, 0xec, 0xcd, 0xd6, 0x42, 0xd3, 0xd4,
+ 0x30, 0xd4, 0xc4, 0xd4, 0xc0, 0x89, 0xc5, 0xdf, 0xb7, 0xdd, 0x4a, 0xda,
+ 0xfb, 0xdb, 0x46, 0x31, 0x61, 0x08, 0x05, 0xe1, 0x58, 0x7d, 0x35, 0x5b,
+ 0x56, 0xd6, 0x59, 0xc5, 0x9f, 0xa0, 0x12, 0xe4, 0x90, 0xbe, 0xae, 0x5f,
+ 0xc7, 0x67, 0xbd, 0xbb, 0x34, 0xb3, 0x1a, 0x5b, 0x30, 0x4c, 0x23, 0xdc,
+ 0x27, 0xb4, 0xe9, 0xe0,
+};
+static const struct drbg_kat_no_reseed kat639_t = {
+ 8, kat639_entropyin, kat639_nonce, kat639_persstr,
+ kat639_addin0, kat639_addin1, kat639_retbits
+};
+static const struct drbg_kat kat639 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat639_t
+};
+
+static const unsigned char kat640_entropyin[] = {
+ 0x64, 0x8e, 0x4e, 0x48, 0x4b, 0x26, 0xfc, 0xb3, 0x30, 0xbf, 0x46, 0xa9,
+ 0xee, 0xe4, 0x18, 0xcb, 0x46, 0xbd, 0xb5, 0x66, 0x4d, 0xc0, 0xb5, 0xa8,
+ 0x75, 0xee, 0x8e, 0x58, 0x45, 0x47, 0x6a, 0x56,
+};
+static const unsigned char kat640_nonce[] = {
+ 0xba, 0x61, 0x0a, 0x74, 0xb6, 0x64, 0x72, 0xc6, 0x9f, 0x81, 0xad, 0x0f,
+ 0xbf, 0xe8, 0xb3, 0x9d,
+};
+static const unsigned char kat640_persstr[] = {
+ 0x32, 0x2f, 0x58, 0x43, 0x29, 0xdf, 0xc1, 0xf6, 0x43, 0xf3, 0x59, 0xec,
+ 0xfb, 0x98, 0x33, 0xc4, 0xaa, 0x28, 0x66, 0x67, 0xf2, 0xff, 0xe6, 0xbe,
+ 0xd9, 0xc4, 0xc6, 0xe9, 0x12, 0x38, 0x03, 0x89,
+};
+static const unsigned char kat640_addin0[] = {0};
+static const unsigned char kat640_addin1[] = {0};
+static const unsigned char kat640_retbits[] = {
+ 0x7f, 0x84, 0x98, 0x28, 0x2c, 0x32, 0xe6, 0xb5, 0x35, 0x12, 0x15, 0xf9,
+ 0x0e, 0x58, 0xdd, 0x3d, 0x5f, 0xf5, 0xcb, 0x7b, 0x61, 0xc3, 0xfd, 0x9e,
+ 0x2b, 0x93, 0xdc, 0xbd, 0xc5, 0xef, 0x85, 0xba, 0x9e, 0xda, 0x9f, 0xc5,
+ 0x34, 0x56, 0x5f, 0x77, 0xb7, 0x8b, 0x42, 0x0e, 0x24, 0xcf, 0xc9, 0x5d,
+ 0x7d, 0x55, 0x5b, 0x74, 0x3a, 0x80, 0xb2, 0x19, 0x45, 0x08, 0xc3, 0x1e,
+ 0x4c, 0x30, 0xba, 0xe3,
+};
+static const struct drbg_kat_no_reseed kat640_t = {
+ 9, kat640_entropyin, kat640_nonce, kat640_persstr,
+ kat640_addin0, kat640_addin1, kat640_retbits
+};
+static const struct drbg_kat kat640 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat640_t
+};
+
+static const unsigned char kat641_entropyin[] = {
+ 0xc5, 0x2a, 0x30, 0x1c, 0x95, 0x25, 0x50, 0xa3, 0x1a, 0xb3, 0xf3, 0xd3,
+ 0xc7, 0x89, 0x19, 0xcc, 0x55, 0x09, 0xa5, 0xb9, 0x84, 0xc0, 0xa4, 0x7a,
+ 0x9c, 0xae, 0x9f, 0xe8, 0xdc, 0xf6, 0xce, 0x97,
+};
+static const unsigned char kat641_nonce[] = {
+ 0x87, 0xe2, 0x8a, 0xef, 0xf6, 0x6c, 0x45, 0xe4, 0x09, 0xf0, 0x2f, 0x99,
+ 0xd4, 0x59, 0xf6, 0x97,
+};
+static const unsigned char kat641_persstr[] = {
+ 0x95, 0x6e, 0x32, 0xd3, 0xbd, 0x82, 0xc6, 0x37, 0x9b, 0x2b, 0x7a, 0x7b,
+ 0x67, 0xfd, 0xe6, 0x58, 0x3f, 0x98, 0xd5, 0xbc, 0x2e, 0x22, 0x08, 0x2e,
+ 0x79, 0x3b, 0x95, 0xe0, 0xdc, 0xbb, 0x4f, 0x94,
+};
+static const unsigned char kat641_addin0[] = {0};
+static const unsigned char kat641_addin1[] = {0};
+static const unsigned char kat641_retbits[] = {
+ 0x6d, 0x0f, 0x4a, 0x8c, 0xb3, 0x06, 0x1b, 0x6a, 0xf2, 0xf1, 0x5d, 0x4b,
+ 0xf0, 0xaf, 0xba, 0xa4, 0x62, 0x4c, 0x06, 0x3f, 0xd7, 0xde, 0xd3, 0x90,
+ 0x3d, 0xc9, 0x0f, 0xb3, 0x59, 0xf3, 0x50, 0xb9, 0xec, 0x31, 0xa1, 0x91,
+ 0x40, 0xbc, 0xc4, 0xd4, 0xea, 0xb4, 0x49, 0xa6, 0xce, 0x4e, 0x0a, 0xbe,
+ 0x6b, 0x1e, 0x81, 0x91, 0x64, 0xd3, 0x98, 0x84, 0x42, 0x0a, 0xa2, 0x0c,
+ 0x85, 0x40, 0x8c, 0x9f,
+};
+static const struct drbg_kat_no_reseed kat641_t = {
+ 10, kat641_entropyin, kat641_nonce, kat641_persstr,
+ kat641_addin0, kat641_addin1, kat641_retbits
+};
+static const struct drbg_kat kat641 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat641_t
+};
+
+static const unsigned char kat642_entropyin[] = {
+ 0xb5, 0x2b, 0x8b, 0x33, 0x34, 0xbf, 0xf2, 0x30, 0xd0, 0x33, 0xc8, 0x9c,
+ 0xe5, 0xf7, 0x4d, 0x21, 0xc1, 0xab, 0x07, 0xf1, 0x7a, 0xce, 0xc3, 0x09,
+ 0x4f, 0x54, 0x37, 0xe5, 0x09, 0x13, 0x9d, 0x85,
+};
+static const unsigned char kat642_nonce[] = {
+ 0x61, 0x7f, 0x1f, 0x58, 0x40, 0xa4, 0x85, 0xd0, 0x42, 0xa5, 0xa7, 0xbc,
+ 0x55, 0xca, 0x37, 0x46,
+};
+static const unsigned char kat642_persstr[] = {
+ 0xa6, 0xf4, 0x0a, 0x52, 0xf7, 0x92, 0x30, 0x37, 0xa9, 0x39, 0x1d, 0x45,
+ 0x09, 0x52, 0xaf, 0x3b, 0x4c, 0x82, 0x23, 0xe9, 0xc1, 0x9e, 0x24, 0xd2,
+ 0xba, 0x11, 0xe2, 0x0d, 0x15, 0x96, 0x4d, 0x34,
+};
+static const unsigned char kat642_addin0[] = {0};
+static const unsigned char kat642_addin1[] = {0};
+static const unsigned char kat642_retbits[] = {
+ 0xce, 0xd9, 0xf3, 0xe3, 0xfd, 0xe7, 0x50, 0x9f, 0x5c, 0x1c, 0x46, 0xd5,
+ 0xa3, 0xbf, 0xff, 0xe6, 0x7c, 0xac, 0xff, 0xb1, 0x03, 0xfe, 0x4f, 0xac,
+ 0xfb, 0x45, 0xb6, 0x6e, 0x53, 0xd5, 0x94, 0xcf, 0x4e, 0x19, 0x28, 0x44,
+ 0xa1, 0xba, 0xc8, 0x18, 0x7c, 0x65, 0xcb, 0xc9, 0xcd, 0x84, 0x3f, 0x23,
+ 0x83, 0x51, 0x0d, 0x8f, 0x65, 0x76, 0xc3, 0x9d, 0x7f, 0x37, 0xd0, 0x00,
+ 0xb8, 0xce, 0x75, 0x21,
+};
+static const struct drbg_kat_no_reseed kat642_t = {
+ 11, kat642_entropyin, kat642_nonce, kat642_persstr,
+ kat642_addin0, kat642_addin1, kat642_retbits
+};
+static const struct drbg_kat kat642 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat642_t
+};
+
+static const unsigned char kat643_entropyin[] = {
+ 0xa5, 0x79, 0x37, 0x42, 0x88, 0xc8, 0xa2, 0xde, 0x14, 0x4f, 0x46, 0x0c,
+ 0xb0, 0xdc, 0x2f, 0xff, 0xbe, 0xc7, 0x0e, 0xb7, 0x59, 0xc5, 0xbf, 0x17,
+ 0x12, 0xa4, 0x5b, 0x5a, 0xbf, 0x63, 0x04, 0x5c,
+};
+static const unsigned char kat643_nonce[] = {
+ 0xbd, 0xb7, 0x03, 0xe6, 0x46, 0x66, 0x6d, 0x1b, 0x21, 0x63, 0xc2, 0x5f,
+ 0xd5, 0x63, 0x02, 0x9d,
+};
+static const unsigned char kat643_persstr[] = {
+ 0x51, 0x28, 0x52, 0x7d, 0x90, 0x77, 0xbd, 0x74, 0xb4, 0x4a, 0xb7, 0xde,
+ 0xad, 0xeb, 0x3f, 0x1f, 0xc2, 0x09, 0x9a, 0xb7, 0x11, 0xed, 0x44, 0xa6,
+ 0x12, 0xcb, 0xd6, 0x7c, 0x8e, 0x94, 0x62, 0x73,
+};
+static const unsigned char kat643_addin0[] = {0};
+static const unsigned char kat643_addin1[] = {0};
+static const unsigned char kat643_retbits[] = {
+ 0x8f, 0xba, 0x16, 0x08, 0x67, 0xf2, 0x57, 0xb9, 0x0d, 0x76, 0xec, 0x68,
+ 0x0f, 0x3e, 0x16, 0x90, 0x4a, 0x8d, 0x14, 0x43, 0xb0, 0x28, 0x33, 0xea,
+ 0xa7, 0x8a, 0x33, 0x00, 0x71, 0x37, 0xc4, 0x22, 0x66, 0x91, 0x33, 0xd7,
+ 0xb3, 0xde, 0x20, 0x35, 0x83, 0x0a, 0xf7, 0x94, 0x00, 0x73, 0x0d, 0xed,
+ 0x71, 0x49, 0x54, 0x6d, 0x56, 0xa9, 0x0f, 0x20, 0x4e, 0x86, 0x47, 0x7c,
+ 0x42, 0xfe, 0xc1, 0xa9,
+};
+static const struct drbg_kat_no_reseed kat643_t = {
+ 12, kat643_entropyin, kat643_nonce, kat643_persstr,
+ kat643_addin0, kat643_addin1, kat643_retbits
+};
+static const struct drbg_kat kat643 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat643_t
+};
+
+static const unsigned char kat644_entropyin[] = {
+ 0x1f, 0x44, 0x48, 0x91, 0xec, 0x1d, 0x5d, 0x06, 0x0b, 0xd1, 0xb0, 0x37,
+ 0x36, 0x3b, 0xd7, 0x50, 0xdf, 0x90, 0x17, 0xb2, 0x74, 0x79, 0xe2, 0x11,
+ 0x85, 0xb9, 0x49, 0x7f, 0x6b, 0xa0, 0x31, 0x1f,
+};
+static const unsigned char kat644_nonce[] = {
+ 0x73, 0xb5, 0x49, 0x79, 0x76, 0xd6, 0x71, 0xa2, 0x60, 0xb3, 0x4f, 0xa3,
+ 0x14, 0xcc, 0xdd, 0x74,
+};
+static const unsigned char kat644_persstr[] = {
+ 0xd7, 0x0d, 0x63, 0xe5, 0x8d, 0x23, 0x12, 0x3e, 0xba, 0x0e, 0x5a, 0x6b,
+ 0xde, 0x07, 0x79, 0xa8, 0x86, 0x66, 0x83, 0x36, 0x9e, 0xe1, 0xc1, 0xd1,
+ 0xdd, 0xe8, 0x1a, 0x14, 0x67, 0x17, 0xd8, 0xbc,
+};
+static const unsigned char kat644_addin0[] = {0};
+static const unsigned char kat644_addin1[] = {0};
+static const unsigned char kat644_retbits[] = {
+ 0x43, 0x56, 0xaf, 0xd0, 0x40, 0x81, 0xe8, 0xc0, 0xf4, 0xc4, 0x46, 0xa6,
+ 0x22, 0xcd, 0x3f, 0x04, 0x9e, 0x7e, 0x6e, 0x8f, 0x90, 0x6c, 0x07, 0x60,
+ 0x0d, 0xa0, 0x67, 0x1e, 0xea, 0xe8, 0xf0, 0xa7, 0x32, 0xf4, 0x5f, 0x7b,
+ 0x99, 0xee, 0x98, 0xc1, 0xb0, 0x61, 0x33, 0x5d, 0x0d, 0x58, 0x96, 0xda,
+ 0x1e, 0x1c, 0x08, 0x1e, 0x2a, 0x6f, 0x25, 0xc5, 0x65, 0xfc, 0x47, 0xdf,
+ 0xff, 0xeb, 0xbe, 0x98,
+};
+static const struct drbg_kat_no_reseed kat644_t = {
+ 13, kat644_entropyin, kat644_nonce, kat644_persstr,
+ kat644_addin0, kat644_addin1, kat644_retbits
+};
+static const struct drbg_kat kat644 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat644_t
+};
+
+static const unsigned char kat645_entropyin[] = {
+ 0x75, 0xd5, 0xb7, 0x82, 0xc5, 0x34, 0x5c, 0xee, 0x69, 0xe0, 0x45, 0x84,
+ 0x47, 0x83, 0xba, 0x53, 0xa3, 0x15, 0x88, 0x22, 0x82, 0x74, 0x0a, 0x45,
+ 0xb4, 0xa0, 0x4f, 0xd9, 0xe7, 0x7e, 0xc1, 0xb6,
+};
+static const unsigned char kat645_nonce[] = {
+ 0x17, 0x5c, 0x36, 0xb3, 0x96, 0x47, 0x26, 0xca, 0xab, 0x9b, 0x5a, 0x12,
+ 0x7e, 0xe9, 0xcd, 0x91,
+};
+static const unsigned char kat645_persstr[] = {
+ 0xc7, 0xb4, 0x5b, 0x62, 0xad, 0xab, 0xf3, 0x45, 0xdc, 0xc0, 0x18, 0xe2,
+ 0xea, 0xfe, 0x3e, 0xf2, 0x12, 0xa2, 0x53, 0xed, 0xc9, 0x46, 0x0f, 0x12,
+ 0xa7, 0xc0, 0x26, 0x0f, 0xe9, 0x59, 0xdf, 0x6c,
+};
+static const unsigned char kat645_addin0[] = {0};
+static const unsigned char kat645_addin1[] = {0};
+static const unsigned char kat645_retbits[] = {
+ 0x5c, 0x74, 0xc0, 0x46, 0xd2, 0x00, 0xce, 0xf4, 0x36, 0x13, 0xee, 0xb2,
+ 0xb0, 0x83, 0x58, 0x38, 0x60, 0x9c, 0x4a, 0xe2, 0x69, 0x78, 0x89, 0xd5,
+ 0x1c, 0x17, 0x9a, 0x27, 0x37, 0x1b, 0x74, 0x21, 0xd9, 0xd2, 0x8d, 0x03,
+ 0x8b, 0xd2, 0x2a, 0xaa, 0x7b, 0xe1, 0xe3, 0x1c, 0xa0, 0x9f, 0x3c, 0xf3,
+ 0xd3, 0xea, 0x1d, 0x3f, 0x18, 0x34, 0x0d, 0x9c, 0xc7, 0x3d, 0xd8, 0x41,
+ 0x51, 0x22, 0xca, 0xaa,
+};
+static const struct drbg_kat_no_reseed kat645_t = {
+ 14, kat645_entropyin, kat645_nonce, kat645_persstr,
+ kat645_addin0, kat645_addin1, kat645_retbits
+};
+static const struct drbg_kat kat645 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat645_t
+};
+
+static const unsigned char kat646_entropyin[] = {
+ 0x50, 0x6b, 0xfe, 0x78, 0x5b, 0xd1, 0x7b, 0x7a, 0x2d, 0xec, 0x8a, 0xbb,
+ 0xe2, 0x02, 0xa2, 0x41, 0x40, 0x62, 0xb4, 0xc2, 0xff, 0x22, 0xaa, 0xc3,
+ 0x89, 0x01, 0x33, 0x80, 0x1c, 0x54, 0x96, 0x1f,
+};
+static const unsigned char kat646_nonce[] = {
+ 0x64, 0x88, 0x5c, 0x54, 0xfd, 0x46, 0x16, 0xe6, 0x0d, 0xab, 0x9c, 0x4a,
+ 0x42, 0x4c, 0xb2, 0x00,
+};
+static const unsigned char kat646_persstr[] = {
+ 0xdb, 0x1a, 0xab, 0xae, 0x13, 0x8e, 0x6b, 0xb9, 0xca, 0x30, 0xe7, 0xb1,
+ 0x07, 0x11, 0x00, 0x46, 0xad, 0x18, 0x8b, 0xef, 0x4a, 0x71, 0xc9, 0x0d,
+ 0x23, 0x29, 0xee, 0x42, 0x0e, 0xfb, 0x4b, 0x9d,
+};
+static const unsigned char kat646_addin0[] = {
+ 0x0e, 0x22, 0x4a, 0x4d, 0x7b, 0x8c, 0xa1, 0xff, 0xf0, 0x46, 0x56, 0xf9,
+ 0xf4, 0xb5, 0xb9, 0x57, 0x7f, 0xce, 0xfc, 0xa0, 0xc2, 0x83, 0x28, 0x76,
+ 0x77, 0xbb, 0x84, 0xb1, 0xc3, 0x08, 0x34, 0x96,
+};
+static const unsigned char kat646_addin1[] = {
+ 0x58, 0xac, 0xad, 0xc5, 0x4f, 0x21, 0x95, 0xef, 0x4d, 0x13, 0x53, 0x75,
+ 0x99, 0x47, 0xe6, 0xe5, 0x2d, 0xba, 0x26, 0x38, 0x04, 0x07, 0x76, 0xab,
+ 0x0b, 0xe3, 0xb6, 0x3a, 0x4b, 0x2d, 0x66, 0x3b,
+};
+static const unsigned char kat646_retbits[] = {
+ 0x9f, 0x54, 0x75, 0xa3, 0x95, 0x98, 0x8b, 0x36, 0xcc, 0x3c, 0x41, 0x58,
+ 0x72, 0x31, 0xf1, 0x8f, 0x23, 0x2f, 0xb3, 0x03, 0xcf, 0x82, 0xf2, 0x4c,
+ 0xbf, 0xe7, 0x95, 0x69, 0x68, 0x1f, 0x7f, 0x8d, 0xab, 0x8c, 0x7a, 0x58,
+ 0x86, 0x10, 0x6d, 0x53, 0x0f, 0xe7, 0x88, 0x88, 0x6f, 0x8e, 0x5d, 0x13,
+ 0x15, 0x71, 0x54, 0x84, 0xd1, 0x88, 0x2b, 0x1d, 0x0c, 0x24, 0x12, 0xe8,
+ 0x79, 0x6f, 0x27, 0x0f,
+};
+static const struct drbg_kat_no_reseed kat646_t = {
+ 0, kat646_entropyin, kat646_nonce, kat646_persstr,
+ kat646_addin0, kat646_addin1, kat646_retbits
+};
+static const struct drbg_kat kat646 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat646_t
+};
+
+static const unsigned char kat647_entropyin[] = {
+ 0x52, 0xe7, 0xd8, 0xab, 0xd3, 0x0c, 0x4b, 0x14, 0x78, 0x67, 0x56, 0xe8,
+ 0x2d, 0xd7, 0xf8, 0x99, 0x07, 0x6e, 0x1c, 0xea, 0x07, 0xdc, 0x72, 0x2f,
+ 0x8e, 0x12, 0x16, 0x11, 0x41, 0xf6, 0xd9, 0xa5,
+};
+static const unsigned char kat647_nonce[] = {
+ 0xca, 0xb6, 0x8c, 0xe9, 0xde, 0xb7, 0xe5, 0x45, 0xe3, 0x3e, 0x5a, 0x27,
+ 0xc4, 0x87, 0x85, 0x97,
+};
+static const unsigned char kat647_persstr[] = {
+ 0x9a, 0xc3, 0xbf, 0x47, 0xf6, 0x30, 0x6a, 0x36, 0xee, 0x84, 0xed, 0x4e,
+ 0xe6, 0xae, 0xa8, 0xe1, 0xd7, 0xe8, 0xb1, 0x6b, 0x5c, 0x40, 0x7b, 0xd1,
+ 0x58, 0x3e, 0x7c, 0xb5, 0x2d, 0xa9, 0x12, 0x75,
+};
+static const unsigned char kat647_addin0[] = {
+ 0xd7, 0xbd, 0xd5, 0xcb, 0xbe, 0xfd, 0x1b, 0x4d, 0x0c, 0xdb, 0x32, 0x93,
+ 0x7f, 0xeb, 0x8d, 0x01, 0x9d, 0x50, 0x3c, 0xae, 0x80, 0xa5, 0x24, 0x24,
+ 0x95, 0x66, 0x55, 0x65, 0xf3, 0x2f, 0xc4, 0x87,
+};
+static const unsigned char kat647_addin1[] = {
+ 0x63, 0x61, 0xac, 0x7a, 0x3c, 0x20, 0x90, 0xbe, 0x66, 0xa4, 0x6f, 0xf8,
+ 0x29, 0xdf, 0x38, 0xff, 0x06, 0x3b, 0x2f, 0x9c, 0x53, 0x1c, 0x7e, 0x42,
+ 0x80, 0x30, 0x7e, 0xc4, 0x5c, 0x4f, 0xa0, 0xa6,
+};
+static const unsigned char kat647_retbits[] = {
+ 0x98, 0x34, 0xb9, 0xe1, 0x61, 0x8d, 0x5f, 0x01, 0xee, 0x90, 0x83, 0xee,
+ 0x89, 0xcc, 0xb3, 0x3c, 0x18, 0x59, 0x6e, 0x67, 0x5e, 0x5f, 0x37, 0xc3,
+ 0xf4, 0xf5, 0x9a, 0x94, 0x6c, 0xa0, 0x93, 0xe1, 0xd8, 0xfb, 0x06, 0x8c,
+ 0xd8, 0xd6, 0xbb, 0x0f, 0xac, 0xeb, 0xb7, 0xed, 0x8d, 0x97, 0x42, 0x9d,
+ 0x22, 0x22, 0x3d, 0x2e, 0x2d, 0xd8, 0x7d, 0x04, 0x83, 0x93, 0xd3, 0x54,
+ 0x99, 0x31, 0x33, 0x9b,
+};
+static const struct drbg_kat_no_reseed kat647_t = {
+ 1, kat647_entropyin, kat647_nonce, kat647_persstr,
+ kat647_addin0, kat647_addin1, kat647_retbits
+};
+static const struct drbg_kat kat647 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat647_t
+};
+
+static const unsigned char kat648_entropyin[] = {
+ 0xdb, 0xe7, 0xa4, 0x62, 0x2d, 0x8c, 0xbf, 0xcc, 0x19, 0x1d, 0xc7, 0x40,
+ 0x56, 0x6f, 0xa0, 0x58, 0x8d, 0x77, 0x9a, 0x0d, 0x22, 0x7b, 0x03, 0x7f,
+ 0x73, 0x18, 0xa4, 0x28, 0x2a, 0x08, 0x0b, 0x0f,
+};
+static const unsigned char kat648_nonce[] = {
+ 0xc4, 0xe3, 0x46, 0x9a, 0xc3, 0xa8, 0xd2, 0x31, 0x89, 0xc9, 0xc9, 0xe4,
+ 0x41, 0x2a, 0xbc, 0xd8,
+};
+static const unsigned char kat648_persstr[] = {
+ 0x08, 0xdb, 0x81, 0xc1, 0x29, 0x71, 0x68, 0x1e, 0x78, 0x0b, 0xd9, 0xff,
+ 0x53, 0x76, 0x84, 0xde, 0x80, 0xc4, 0xbb, 0x21, 0x4d, 0x6e, 0xb1, 0x3a,
+ 0x92, 0x09, 0x04, 0x4a, 0xe4, 0x62, 0xa7, 0x40,
+};
+static const unsigned char kat648_addin0[] = {
+ 0xf9, 0x53, 0x0b, 0x74, 0xa8, 0xcb, 0x02, 0x45, 0x56, 0xce, 0x54, 0xae,
+ 0xd8, 0x0c, 0x32, 0xef, 0x22, 0x01, 0xfb, 0x19, 0xf4, 0xaa, 0x56, 0x01,
+ 0x25, 0x85, 0x96, 0xc5, 0x97, 0x5e, 0x18, 0x4f,
+};
+static const unsigned char kat648_addin1[] = {
+ 0xd1, 0x9a, 0x2e, 0xa8, 0x53, 0xde, 0xe8, 0x3d, 0xbf, 0xad, 0x41, 0x6f,
+ 0xec, 0x5f, 0xfe, 0xbc, 0xb1, 0xc6, 0x93, 0x6b, 0x35, 0x9a, 0xce, 0x38,
+ 0xc5, 0xf0, 0x57, 0x0e, 0x3a, 0xae, 0xe7, 0xd1,
+};
+static const unsigned char kat648_retbits[] = {
+ 0xfe, 0xcf, 0xbc, 0x6e, 0xb3, 0xd0, 0x42, 0x23, 0x67, 0x58, 0x30, 0x44,
+ 0xbe, 0x8a, 0xfb, 0x65, 0x71, 0x77, 0x23, 0xf5, 0xfc, 0xc5, 0x3b, 0xde,
+ 0x92, 0x94, 0x86, 0x25, 0x56, 0x97, 0x0f, 0xe9, 0xde, 0x96, 0x4a, 0x27,
+ 0xd3, 0x1a, 0xcd, 0x1d, 0x41, 0xca, 0x77, 0xa1, 0xe3, 0xb0, 0xe7, 0x3f,
+ 0xfc, 0x0b, 0x1a, 0xa9, 0xc6, 0xd3, 0xcb, 0xe8, 0x42, 0x6c, 0xe9, 0x11,
+ 0x19, 0x3a, 0x16, 0x7b,
+};
+static const struct drbg_kat_no_reseed kat648_t = {
+ 2, kat648_entropyin, kat648_nonce, kat648_persstr,
+ kat648_addin0, kat648_addin1, kat648_retbits
+};
+static const struct drbg_kat kat648 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat648_t
+};
+
+static const unsigned char kat649_entropyin[] = {
+ 0xb1, 0x97, 0x8e, 0xa5, 0xdc, 0x18, 0xa9, 0x93, 0xab, 0x37, 0xb8, 0x81,
+ 0xe3, 0x3d, 0x85, 0xab, 0x54, 0x8e, 0x98, 0xaa, 0x2a, 0x79, 0x7e, 0xcf,
+ 0x8a, 0x19, 0x86, 0x21, 0xc0, 0xa1, 0xe1, 0x17,
+};
+static const unsigned char kat649_nonce[] = {
+ 0xdb, 0x53, 0xb0, 0xde, 0x8f, 0x51, 0x78, 0x71, 0x7e, 0x0a, 0x69, 0xd8,
+ 0xbd, 0xee, 0x9f, 0x37,
+};
+static const unsigned char kat649_persstr[] = {
+ 0x4f, 0x6d, 0xda, 0x5e, 0x9c, 0xc1, 0xd2, 0x53, 0x8e, 0xea, 0xce, 0x39,
+ 0xd2, 0x53, 0xe1, 0x62, 0x14, 0x57, 0xd6, 0x94, 0xa8, 0xe2, 0x4e, 0x5c,
+ 0x76, 0x02, 0xfc, 0xc8, 0x19, 0xfb, 0x83, 0x8b,
+};
+static const unsigned char kat649_addin0[] = {
+ 0xe2, 0xad, 0xa7, 0x1c, 0x24, 0xf2, 0xde, 0xce, 0x43, 0x15, 0xc7, 0xda,
+ 0x2a, 0x94, 0xaf, 0x4e, 0x47, 0xa7, 0xca, 0x52, 0x9d, 0x9c, 0x36, 0x8a,
+ 0x32, 0xae, 0x45, 0x0d, 0x1a, 0x64, 0x5e, 0xe0,
+};
+static const unsigned char kat649_addin1[] = {
+ 0xa9, 0x1a, 0x32, 0xbd, 0x1d, 0x9d, 0x83, 0xd1, 0x12, 0xf7, 0xac, 0xcf,
+ 0x95, 0x61, 0x15, 0xbd, 0x04, 0x8a, 0xb5, 0xf4, 0x24, 0x45, 0x31, 0xe5,
+ 0x93, 0x2e, 0x38, 0x2d, 0xd1, 0x43, 0x59, 0x73,
+};
+static const unsigned char kat649_retbits[] = {
+ 0x39, 0x7d, 0xd1, 0x76, 0x9d, 0xe4, 0xdd, 0xa7, 0xaf, 0xf6, 0x45, 0xe3,
+ 0x2c, 0xfa, 0x1e, 0xd2, 0x2f, 0x3a, 0x43, 0x97, 0xb6, 0x28, 0x57, 0x89,
+ 0x6b, 0xaa, 0x0f, 0xba, 0x92, 0x62, 0xca, 0x8e, 0x46, 0xcf, 0x46, 0xf2,
+ 0x0b, 0x12, 0x77, 0x24, 0xd4, 0xc6, 0x86, 0x3c, 0x21, 0x11, 0xf1, 0xde,
+ 0xea, 0x9e, 0xfa, 0xdd, 0xb9, 0x18, 0x55, 0xbc, 0xd0, 0x18, 0x48, 0x1a,
+ 0xcf, 0x17, 0xf2, 0x5f,
+};
+static const struct drbg_kat_no_reseed kat649_t = {
+ 3, kat649_entropyin, kat649_nonce, kat649_persstr,
+ kat649_addin0, kat649_addin1, kat649_retbits
+};
+static const struct drbg_kat kat649 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat649_t
+};
+
+static const unsigned char kat650_entropyin[] = {
+ 0x9c, 0xe4, 0x9c, 0x6e, 0x9c, 0x5f, 0x2d, 0x43, 0xa1, 0xa2, 0xa1, 0xc2,
+ 0xa9, 0x0e, 0x8d, 0x63, 0xf1, 0xf4, 0xbd, 0x83, 0xfc, 0xde, 0xb7, 0x34,
+ 0xf1, 0x89, 0x42, 0x62, 0xd9, 0x1b, 0x5e, 0x91,
+};
+static const unsigned char kat650_nonce[] = {
+ 0xf5, 0xa0, 0x88, 0x5f, 0x0c, 0x21, 0xa3, 0xf1, 0x6c, 0xfc, 0x3b, 0xb8,
+ 0x28, 0x24, 0x63, 0x33,
+};
+static const unsigned char kat650_persstr[] = {
+ 0x0f, 0xa1, 0x4c, 0x2a, 0xb3, 0xbb, 0x6f, 0xc3, 0xf2, 0x22, 0xf1, 0x85,
+ 0x38, 0xee, 0x6c, 0xb9, 0x8b, 0x2e, 0x1a, 0x4c, 0xa7, 0xb5, 0x3e, 0x4c,
+ 0x91, 0x9b, 0xef, 0x88, 0x81, 0x38, 0x02, 0x62,
+};
+static const unsigned char kat650_addin0[] = {
+ 0x90, 0x95, 0x89, 0xe0, 0x79, 0x5e, 0x57, 0x1c, 0x53, 0x08, 0x79, 0x50,
+ 0x3b, 0x56, 0x60, 0xf4, 0x20, 0x00, 0x3b, 0xcd, 0x19, 0xad, 0x05, 0x1a,
+ 0x50, 0x20, 0xa5, 0xd4, 0x46, 0x1b, 0x93, 0x27,
+};
+static const unsigned char kat650_addin1[] = {
+ 0x96, 0xd4, 0x62, 0x87, 0x64, 0xc4, 0xa2, 0xe5, 0x2c, 0xed, 0x37, 0x57,
+ 0x4e, 0xa8, 0x61, 0x8b, 0x3e, 0xbf, 0xe7, 0x03, 0x5d, 0x41, 0xed, 0xcc,
+ 0x9b, 0x82, 0x0a, 0x22, 0xaa, 0x16, 0x70, 0x8b,
+};
+static const unsigned char kat650_retbits[] = {
+ 0x1a, 0xaa, 0x09, 0xfc, 0x05, 0xa3, 0x22, 0xd3, 0x61, 0x00, 0xa6, 0x80,
+ 0x5c, 0xc7, 0x9b, 0xc3, 0xb5, 0x34, 0x38, 0x95, 0x03, 0x97, 0x69, 0x77,
+ 0x75, 0xc8, 0xf8, 0xf5, 0xb6, 0x87, 0x9d, 0x4f, 0x73, 0x86, 0xd8, 0x84,
+ 0xa0, 0x9b, 0xbd, 0x57, 0xa6, 0x8e, 0xfd, 0x79, 0xb7, 0xc0, 0xaf, 0x33,
+ 0xb3, 0xd4, 0x5d, 0x9e, 0xb5, 0xc1, 0x90, 0x9d, 0x4a, 0xb3, 0xe8, 0x31,
+ 0xe2, 0xd2, 0x6a, 0x67,
+};
+static const struct drbg_kat_no_reseed kat650_t = {
+ 4, kat650_entropyin, kat650_nonce, kat650_persstr,
+ kat650_addin0, kat650_addin1, kat650_retbits
+};
+static const struct drbg_kat kat650 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat650_t
+};
+
+static const unsigned char kat651_entropyin[] = {
+ 0x46, 0xb2, 0xd8, 0x67, 0x16, 0xa4, 0x29, 0x35, 0x8c, 0x6c, 0x39, 0x51,
+ 0x79, 0x7e, 0x64, 0x17, 0x10, 0x4a, 0x48, 0xd8, 0xf7, 0x50, 0x72, 0xa1,
+ 0x80, 0xbf, 0x7f, 0xdf, 0x6d, 0xd8, 0x88, 0xe2,
+};
+static const unsigned char kat651_nonce[] = {
+ 0x94, 0x4b, 0x76, 0x18, 0x0c, 0x1a, 0x36, 0x05, 0x55, 0x09, 0x8f, 0x3d,
+ 0xe9, 0x62, 0xdb, 0x43,
+};
+static const unsigned char kat651_persstr[] = {
+ 0x7b, 0xb9, 0xcb, 0x64, 0x23, 0xd4, 0x68, 0x5d, 0x86, 0x6e, 0x47, 0xf9,
+ 0x84, 0x73, 0xa7, 0xdc, 0x72, 0x0b, 0xe0, 0xe4, 0xa4, 0x2e, 0xb3, 0x8b,
+ 0x0e, 0x38, 0x3b, 0x3a, 0xf6, 0xa0, 0x12, 0x56,
+};
+static const unsigned char kat651_addin0[] = {
+ 0xaa, 0x56, 0xfe, 0xc9, 0x90, 0x6c, 0x89, 0xfa, 0xad, 0xb7, 0x8d, 0xf0,
+ 0xfd, 0x67, 0x07, 0xe7, 0x5e, 0xae, 0x96, 0xc7, 0x96, 0xd3, 0x01, 0x35,
+ 0x7c, 0x95, 0x54, 0xe2, 0x99, 0x76, 0x8e, 0x76,
+};
+static const unsigned char kat651_addin1[] = {
+ 0xc3, 0x70, 0x47, 0x12, 0x29, 0x73, 0xa6, 0xbe, 0xe2, 0xa3, 0xa9, 0x48,
+ 0x1a, 0x24, 0xd5, 0x48, 0x2c, 0x61, 0x13, 0xaf, 0xf3, 0x86, 0x5d, 0x6f,
+ 0xc1, 0x08, 0x98, 0x96, 0x6b, 0x7c, 0x8e, 0x6f,
+};
+static const unsigned char kat651_retbits[] = {
+ 0xaf, 0xc8, 0x13, 0xfb, 0x36, 0x47, 0x04, 0x0d, 0x07, 0x96, 0x3b, 0x87,
+ 0xbb, 0x78, 0x80, 0x4a, 0x07, 0x29, 0xa3, 0x11, 0xb6, 0xee, 0x4e, 0xd2,
+ 0x66, 0x56, 0x67, 0x9e, 0x56, 0xe3, 0x71, 0x43, 0x5f, 0x3f, 0xa4, 0x50,
+ 0x45, 0x44, 0x82, 0x70, 0x3c, 0xbf, 0x91, 0x8c, 0xfe, 0x09, 0x45, 0xc7,
+ 0x0f, 0x37, 0x57, 0xe2, 0xc6, 0xab, 0x3a, 0x67, 0x4a, 0xc7, 0x3b, 0x21,
+ 0xde, 0x42, 0xc9, 0x74,
+};
+static const struct drbg_kat_no_reseed kat651_t = {
+ 5, kat651_entropyin, kat651_nonce, kat651_persstr,
+ kat651_addin0, kat651_addin1, kat651_retbits
+};
+static const struct drbg_kat kat651 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat651_t
+};
+
+static const unsigned char kat652_entropyin[] = {
+ 0x4e, 0xcf, 0x9a, 0xa3, 0xd6, 0xe3, 0x38, 0x08, 0xc5, 0x2a, 0x5d, 0x70,
+ 0x08, 0xa7, 0x67, 0xb8, 0x32, 0xeb, 0x92, 0x5a, 0xc1, 0xd6, 0x7d, 0xdc,
+ 0x76, 0x11, 0x5e, 0x3c, 0x16, 0x38, 0xab, 0x8e,
+};
+static const unsigned char kat652_nonce[] = {
+ 0xd5, 0x82, 0xd4, 0x64, 0x65, 0xf0, 0x17, 0x9d, 0x1d, 0x3a, 0x95, 0x90,
+ 0xf8, 0x86, 0x18, 0xc0,
+};
+static const unsigned char kat652_persstr[] = {
+ 0xfb, 0x33, 0x96, 0xb7, 0xfc, 0xdf, 0xa4, 0x49, 0x21, 0x0b, 0x4c, 0xe4,
+ 0x4d, 0x39, 0x1f, 0xd8, 0x7e, 0xc5, 0x66, 0x3e, 0x97, 0xca, 0x95, 0x3d,
+ 0x2f, 0xdc, 0xed, 0x45, 0x33, 0x08, 0xf8, 0xa6,
+};
+static const unsigned char kat652_addin0[] = {
+ 0x42, 0x3b, 0x59, 0xa0, 0x38, 0x7f, 0xd1, 0xdc, 0xe9, 0x3c, 0x4b, 0xc4,
+ 0xb2, 0xc4, 0xab, 0xcb, 0xe0, 0x56, 0xe1, 0x0f, 0x98, 0xc1, 0x1c, 0xc1,
+ 0x0c, 0x3b, 0xe1, 0x39, 0x72, 0x9e, 0x04, 0xc2,
+};
+static const unsigned char kat652_addin1[] = {
+ 0x5f, 0x6f, 0xe2, 0xa4, 0xbe, 0x57, 0x01, 0xd0, 0xf8, 0x73, 0x5f, 0x1e,
+ 0x63, 0xaa, 0x1f, 0x4e, 0xb8, 0xc7, 0x21, 0x3a, 0x78, 0x7b, 0x8b, 0x14,
+ 0x4b, 0x83, 0xce, 0xca, 0x54, 0x54, 0x7a, 0x94,
+};
+static const unsigned char kat652_retbits[] = {
+ 0xeb, 0x5c, 0xbd, 0xab, 0x07, 0xb7, 0x1c, 0xd3, 0x56, 0x04, 0xe8, 0x65,
+ 0xd4, 0xf8, 0xb2, 0x6e, 0xb8, 0x40, 0xa6, 0x5f, 0x83, 0xa1, 0xdf, 0xe7,
+ 0xe3, 0xf6, 0xb2, 0xfc, 0xd2, 0x41, 0x2c, 0xbc, 0x21, 0xf9, 0xad, 0x09,
+ 0x39, 0x93, 0xcf, 0xab, 0x3b, 0x41, 0x48, 0x97, 0x28, 0x33, 0x8b, 0x58,
+ 0xbe, 0xf0, 0xb7, 0x3d, 0x08, 0x63, 0x8c, 0xc1, 0x25, 0x8c, 0x39, 0x09,
+ 0x89, 0xeb, 0x7c, 0x28,
+};
+static const struct drbg_kat_no_reseed kat652_t = {
+ 6, kat652_entropyin, kat652_nonce, kat652_persstr,
+ kat652_addin0, kat652_addin1, kat652_retbits
+};
+static const struct drbg_kat kat652 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat652_t
+};
+
+static const unsigned char kat653_entropyin[] = {
+ 0x94, 0xaa, 0x46, 0x3c, 0x75, 0x46, 0xa1, 0x59, 0xea, 0x14, 0xaf, 0x23,
+ 0x55, 0xaa, 0x78, 0x5a, 0x03, 0xc9, 0x12, 0x17, 0x97, 0x71, 0x9d, 0xc8,
+ 0xe8, 0xd5, 0xee, 0xeb, 0x2c, 0xc5, 0x1c, 0x59,
+};
+static const unsigned char kat653_nonce[] = {
+ 0x26, 0x9e, 0x5d, 0x4a, 0xd3, 0xcf, 0x2d, 0x14, 0xa1, 0x7b, 0xae, 0x19,
+ 0xc7, 0xd9, 0xc0, 0x85,
+};
+static const unsigned char kat653_persstr[] = {
+ 0x35, 0x11, 0xa4, 0x24, 0x9d, 0x85, 0x50, 0x72, 0xf6, 0x5b, 0x31, 0xb2,
+ 0x15, 0x81, 0x99, 0x2c, 0x75, 0x4c, 0xc3, 0x9d, 0xc5, 0x72, 0x59, 0x24,
+ 0xe5, 0x7e, 0x5a, 0x39, 0xe3, 0xce, 0x9e, 0x30,
+};
+static const unsigned char kat653_addin0[] = {
+ 0xad, 0x0c, 0x18, 0x97, 0x1e, 0x6c, 0xf6, 0xc7, 0x74, 0x66, 0x71, 0xac,
+ 0x37, 0x6c, 0x30, 0x86, 0x1f, 0xc7, 0xca, 0x66, 0x13, 0x46, 0x06, 0x7c,
+ 0x44, 0xf6, 0x0f, 0x48, 0x39, 0x8c, 0xc6, 0x03,
+};
+static const unsigned char kat653_addin1[] = {
+ 0x1f, 0x4a, 0x35, 0xab, 0xe8, 0x55, 0xd3, 0xfb, 0x5d, 0x69, 0x60, 0x7b,
+ 0xb8, 0xa5, 0x88, 0x8a, 0x10, 0x54, 0xd9, 0x95, 0x71, 0xf7, 0xf6, 0x02,
+ 0x0e, 0xc6, 0x52, 0x48, 0xd4, 0x72, 0x7d, 0x4f,
+};
+static const unsigned char kat653_retbits[] = {
+ 0x7d, 0xd6, 0x6c, 0xa4, 0x01, 0x70, 0x9b, 0x52, 0xc7, 0x7f, 0x67, 0xc2,
+ 0x20, 0x26, 0xfd, 0x92, 0x1c, 0xb6, 0x03, 0xfe, 0xc7, 0x28, 0x9d, 0xb4,
+ 0x44, 0x00, 0xa7, 0xcd, 0x83, 0x22, 0xf2, 0xb2, 0xf8, 0xe2, 0xda, 0x65,
+ 0x2b, 0xe5, 0x6a, 0xe3, 0x7b, 0x2a, 0x59, 0x84, 0xeb, 0xbd, 0x88, 0x9c,
+ 0x63, 0xfc, 0x39, 0x9c, 0x24, 0x29, 0x6a, 0x6c, 0xb6, 0x5f, 0xdb, 0x2c,
+ 0x2e, 0x86, 0x9d, 0x0b,
+};
+static const struct drbg_kat_no_reseed kat653_t = {
+ 7, kat653_entropyin, kat653_nonce, kat653_persstr,
+ kat653_addin0, kat653_addin1, kat653_retbits
+};
+static const struct drbg_kat kat653 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat653_t
+};
+
+static const unsigned char kat654_entropyin[] = {
+ 0x92, 0x1e, 0x44, 0xa4, 0xa0, 0xd1, 0x8d, 0xe3, 0x27, 0x16, 0xd4, 0x15,
+ 0xc0, 0xeb, 0xb7, 0x44, 0x7f, 0x88, 0xc9, 0x4f, 0xe1, 0x28, 0x01, 0x3b,
+ 0xb6, 0xcc, 0xb9, 0x1b, 0xa3, 0x70, 0xa9, 0x42,
+};
+static const unsigned char kat654_nonce[] = {
+ 0x02, 0xb1, 0xac, 0x59, 0xd8, 0x95, 0xeb, 0x97, 0x19, 0xa7, 0xff, 0x3b,
+ 0xbe, 0x26, 0xcf, 0x41,
+};
+static const unsigned char kat654_persstr[] = {
+ 0x21, 0xa1, 0xa3, 0x4a, 0xb5, 0xaa, 0xb7, 0x6d, 0xf9, 0x22, 0x80, 0x68,
+ 0x39, 0xbd, 0x4a, 0xce, 0x2f, 0x17, 0xde, 0xf5, 0x9b, 0xc7, 0x35, 0xbd,
+ 0x9f, 0x9e, 0xb0, 0x18, 0x00, 0x4b, 0x02, 0x02,
+};
+static const unsigned char kat654_addin0[] = {
+ 0x8f, 0x8d, 0x89, 0x50, 0x5d, 0xb0, 0xf5, 0x9e, 0x62, 0xea, 0xc8, 0x3a,
+ 0x07, 0x94, 0xd5, 0x7e, 0x7a, 0xa0, 0xb6, 0x89, 0x82, 0x5b, 0x1f, 0x32,
+ 0xe4, 0xbe, 0x82, 0xa2, 0x80, 0x5e, 0xf7, 0x94,
+};
+static const unsigned char kat654_addin1[] = {
+ 0x0b, 0xd6, 0xd9, 0xde, 0x89, 0x60, 0x6b, 0x1b, 0x6f, 0xb2, 0xd8, 0x55,
+ 0x60, 0x42, 0xf3, 0xbe, 0x2e, 0x18, 0xa2, 0x24, 0x65, 0xbe, 0xf4, 0x4c,
+ 0x4b, 0x32, 0x29, 0x2d, 0x91, 0x03, 0x92, 0x08,
+};
+static const unsigned char kat654_retbits[] = {
+ 0x86, 0xdf, 0xd5, 0x8f, 0xc6, 0xb9, 0x3d, 0x89, 0x57, 0x10, 0xbb, 0x6b,
+ 0x06, 0x76, 0x74, 0x97, 0xad, 0x1c, 0xa0, 0xe8, 0xc0, 0xf5, 0xca, 0xdd,
+ 0x8a, 0x01, 0x2f, 0xce, 0xd9, 0x2c, 0x4f, 0xa6, 0x42, 0x3b, 0x77, 0xb9,
+ 0x6a, 0x1d, 0xc2, 0x89, 0x71, 0xf7, 0x71, 0x5b, 0x78, 0x23, 0xdd, 0x5d,
+ 0x91, 0x0e, 0xbe, 0x2e, 0xaf, 0xee, 0x37, 0x79, 0xa6, 0x1e, 0x1f, 0x70,
+ 0x7f, 0x53, 0x25, 0xd7,
+};
+static const struct drbg_kat_no_reseed kat654_t = {
+ 8, kat654_entropyin, kat654_nonce, kat654_persstr,
+ kat654_addin0, kat654_addin1, kat654_retbits
+};
+static const struct drbg_kat kat654 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat654_t
+};
+
+static const unsigned char kat655_entropyin[] = {
+ 0x0c, 0x7c, 0x98, 0x7a, 0x32, 0xbb, 0x36, 0x9f, 0x5c, 0x13, 0x3c, 0x02,
+ 0x94, 0x36, 0x0a, 0xb3, 0xf0, 0x6f, 0xff, 0x4a, 0xf3, 0x0a, 0xcf, 0x4a,
+ 0x36, 0x55, 0x4a, 0xbc, 0x81, 0xea, 0x17, 0xd7,
+};
+static const unsigned char kat655_nonce[] = {
+ 0x49, 0x63, 0x0b, 0x51, 0x6b, 0x1e, 0x44, 0xca, 0xd4, 0x62, 0x1b, 0xb1,
+ 0xb2, 0x94, 0x34, 0xff,
+};
+static const unsigned char kat655_persstr[] = {
+ 0xfc, 0x70, 0x06, 0x12, 0xef, 0x74, 0x77, 0x9c, 0x25, 0xef, 0x84, 0x64,
+ 0x32, 0x10, 0x6e, 0xe4, 0x32, 0x1d, 0x35, 0x7c, 0x9c, 0x74, 0xed, 0x0b,
+ 0xcf, 0xe6, 0xd7, 0x31, 0x2e, 0xc0, 0xc6, 0xba,
+};
+static const unsigned char kat655_addin0[] = {
+ 0x55, 0xd3, 0xde, 0xaf, 0x9f, 0x26, 0x70, 0xe7, 0x2b, 0xdc, 0x3d, 0x13,
+ 0xd6, 0x2e, 0xaf, 0xcc, 0x8f, 0x2c, 0x2e, 0xd0, 0xcb, 0xf1, 0x79, 0x82,
+ 0xf5, 0x71, 0xd0, 0x86, 0x73, 0x8f, 0x40, 0xa2,
+};
+static const unsigned char kat655_addin1[] = {
+ 0x03, 0xe4, 0x80, 0xed, 0x33, 0xc8, 0x1f, 0x60, 0xee, 0x1d, 0x55, 0x8d,
+ 0xf4, 0x9e, 0x6e, 0x0c, 0x2e, 0x4f, 0x8c, 0xd4, 0x00, 0x7c, 0x0c, 0xa9,
+ 0xd0, 0x1a, 0x65, 0xe3, 0x2d, 0x1f, 0xd1, 0x3c,
+};
+static const unsigned char kat655_retbits[] = {
+ 0x1c, 0x02, 0xa1, 0x3d, 0xb6, 0xf4, 0xbe, 0xfd, 0x3a, 0xa7, 0x4b, 0x04,
+ 0xe9, 0xea, 0xb0, 0x10, 0x18, 0x4a, 0x32, 0x2e, 0xfa, 0xeb, 0x86, 0x0f,
+ 0x60, 0x7e, 0x98, 0xd5, 0xb1, 0x5d, 0x43, 0x37, 0x98, 0x3d, 0xee, 0xf8,
+ 0x77, 0x99, 0xc0, 0x86, 0x55, 0x17, 0xa1, 0x2c, 0x4b, 0x49, 0xbe, 0xd1,
+ 0x01, 0x6c, 0xb7, 0x3e, 0xba, 0x6e, 0xa0, 0x2f, 0xca, 0x60, 0xf7, 0xef,
+ 0xe5, 0x50, 0xdf, 0x3a,
+};
+static const struct drbg_kat_no_reseed kat655_t = {
+ 9, kat655_entropyin, kat655_nonce, kat655_persstr,
+ kat655_addin0, kat655_addin1, kat655_retbits
+};
+static const struct drbg_kat kat655 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat655_t
+};
+
+static const unsigned char kat656_entropyin[] = {
+ 0xaf, 0xdb, 0xc8, 0xac, 0xbe, 0xeb, 0xbb, 0x3a, 0x58, 0xb1, 0xbb, 0xbe,
+ 0xb1, 0x04, 0x83, 0x53, 0x47, 0x73, 0xa2, 0xe1, 0x63, 0x1f, 0x98, 0xc3,
+ 0x50, 0x3f, 0x6a, 0x4b, 0x33, 0x1b, 0x14, 0xb3,
+};
+static const unsigned char kat656_nonce[] = {
+ 0xdc, 0x8d, 0xff, 0x64, 0xe4, 0x4d, 0x50, 0xd4, 0x5d, 0xfd, 0x66, 0xfd,
+ 0x7c, 0x54, 0x7a, 0xd0,
+};
+static const unsigned char kat656_persstr[] = {
+ 0x2e, 0xc2, 0xbd, 0x1a, 0xb6, 0x14, 0x79, 0xcf, 0x78, 0x0b, 0x97, 0x7c,
+ 0xc4, 0x80, 0xa6, 0x9b, 0x53, 0x06, 0x5f, 0x38, 0x12, 0x70, 0xea, 0x95,
+ 0xa0, 0x41, 0xeb, 0x41, 0x6c, 0x81, 0x92, 0xf8,
+};
+static const unsigned char kat656_addin0[] = {
+ 0x69, 0x6f, 0xa5, 0x74, 0x8d, 0xf7, 0x5c, 0xf6, 0x46, 0xd3, 0x4f, 0xb4,
+ 0x78, 0xce, 0x2c, 0x9b, 0xfe, 0xd2, 0xe7, 0x97, 0x81, 0xf5, 0xed, 0x1e,
+ 0xdc, 0x2e, 0xe7, 0xd9, 0xb5, 0x8b, 0xee, 0xaa,
+};
+static const unsigned char kat656_addin1[] = {
+ 0xe7, 0xfe, 0xf0, 0xf7, 0x55, 0x3d, 0x29, 0x19, 0xb8, 0x03, 0xca, 0x8b,
+ 0x83, 0xa6, 0xd4, 0x63, 0xce, 0x74, 0xff, 0xa6, 0x04, 0x0b, 0x02, 0x26,
+ 0x85, 0xea, 0xee, 0x81, 0x65, 0xcb, 0x49, 0x38,
+};
+static const unsigned char kat656_retbits[] = {
+ 0xd5, 0x57, 0xec, 0x72, 0x87, 0x87, 0xd1, 0xf2, 0xc5, 0x53, 0xc2, 0xba,
+ 0x91, 0x34, 0x51, 0x31, 0x6e, 0x7c, 0x5a, 0xa4, 0x99, 0xd9, 0xe7, 0x47,
+ 0x40, 0xba, 0xb1, 0x59, 0xdc, 0x80, 0xbb, 0xc8, 0x87, 0x08, 0x41, 0xed,
+ 0x83, 0x73, 0xc1, 0x0a, 0xfc, 0xc3, 0x8f, 0x91, 0xb0, 0x66, 0x7d, 0x6a,
+ 0x44, 0x77, 0xde, 0xe8, 0x8e, 0x07, 0xd9, 0x0a, 0x10, 0x64, 0x9d, 0x57,
+ 0x21, 0x01, 0x1b, 0x97,
+};
+static const struct drbg_kat_no_reseed kat656_t = {
+ 10, kat656_entropyin, kat656_nonce, kat656_persstr,
+ kat656_addin0, kat656_addin1, kat656_retbits
+};
+static const struct drbg_kat kat656 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat656_t
+};
+
+static const unsigned char kat657_entropyin[] = {
+ 0x80, 0xca, 0xfa, 0x90, 0xe1, 0x3c, 0x24, 0xfd, 0x0d, 0x53, 0x61, 0xf5,
+ 0x0f, 0x38, 0x58, 0xcb, 0x46, 0xbe, 0x74, 0x6c, 0x0b, 0xf9, 0xf9, 0xc8,
+ 0x6b, 0xfa, 0x57, 0x4f, 0x6f, 0x63, 0xa6, 0xa3,
+};
+static const unsigned char kat657_nonce[] = {
+ 0xa9, 0xdd, 0xc1, 0x8c, 0x92, 0x9e, 0x55, 0x05, 0xda, 0x59, 0xed, 0xdc,
+ 0xf5, 0x1c, 0x6c, 0x48,
+};
+static const unsigned char kat657_persstr[] = {
+ 0x2b, 0xb7, 0x5c, 0xe2, 0x9b, 0xab, 0x75, 0xb2, 0xe9, 0x19, 0x2b, 0x13,
+ 0x72, 0x98, 0x77, 0x73, 0x10, 0x13, 0xc5, 0xde, 0x00, 0x6c, 0x3f, 0x58,
+ 0x25, 0xaf, 0x8e, 0xe8, 0xd7, 0xbe, 0x70, 0x73,
+};
+static const unsigned char kat657_addin0[] = {
+ 0x8e, 0x97, 0xf8, 0x40, 0x57, 0x4b, 0x9f, 0xe2, 0xed, 0x8a, 0x86, 0xd2,
+ 0xbd, 0xf3, 0x72, 0xb0, 0xf3, 0x1f, 0x89, 0x29, 0xa8, 0xd0, 0xd2, 0xb1,
+ 0x55, 0x5f, 0x03, 0xd6, 0xcc, 0x96, 0x03, 0x23,
+};
+static const unsigned char kat657_addin1[] = {
+ 0x65, 0xd9, 0x9e, 0x66, 0x4a, 0x5f, 0x3a, 0xc7, 0xb0, 0xd0, 0x79, 0xba,
+ 0x3c, 0xbd, 0x2d, 0x1b, 0x73, 0x3b, 0x9a, 0x46, 0xb4, 0x5b, 0xf8, 0x05,
+ 0xbb, 0xb1, 0x44, 0x26, 0x92, 0xd1, 0xa4, 0xd3,
+};
+static const unsigned char kat657_retbits[] = {
+ 0x9b, 0x9b, 0xde, 0xea, 0x2c, 0x91, 0x2f, 0xc1, 0x6d, 0x1b, 0x98, 0xcb,
+ 0x68, 0x02, 0x01, 0x34, 0x16, 0x76, 0x08, 0x09, 0x07, 0x3c, 0x53, 0x12,
+ 0x48, 0xe2, 0x6c, 0x64, 0x27, 0x2d, 0x44, 0x2c, 0x89, 0xdb, 0x23, 0x42,
+ 0xda, 0x1b, 0x44, 0xca, 0x4a, 0x1e, 0x5d, 0x98, 0x34, 0x99, 0x99, 0x9c,
+ 0xd8, 0x85, 0x1e, 0x20, 0xfc, 0x05, 0x59, 0xf8, 0x37, 0xf6, 0x67, 0x96,
+ 0xdd, 0x56, 0xb3, 0xd9,
+};
+static const struct drbg_kat_no_reseed kat657_t = {
+ 11, kat657_entropyin, kat657_nonce, kat657_persstr,
+ kat657_addin0, kat657_addin1, kat657_retbits
+};
+static const struct drbg_kat kat657 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat657_t
+};
+
+static const unsigned char kat658_entropyin[] = {
+ 0x28, 0x16, 0xc4, 0xa6, 0xe8, 0x59, 0xc7, 0xda, 0x65, 0x71, 0xf5, 0x92,
+ 0x1b, 0x8e, 0x62, 0x1e, 0x9b, 0xdb, 0x9d, 0x97, 0xeb, 0x3f, 0x9a, 0x44,
+ 0x1a, 0x3e, 0x85, 0x37, 0x53, 0x6b, 0xfe, 0x21,
+};
+static const unsigned char kat658_nonce[] = {
+ 0x9b, 0x90, 0x61, 0x36, 0xc6, 0x85, 0xd9, 0xae, 0x68, 0xf4, 0x98, 0x63,
+ 0xdc, 0xcf, 0xc3, 0x1b,
+};
+static const unsigned char kat658_persstr[] = {
+ 0x72, 0x22, 0x82, 0xe8, 0xc3, 0xd4, 0xae, 0x4c, 0xd3, 0x2c, 0xcb, 0x06,
+ 0xad, 0x25, 0x0b, 0x33, 0xcf, 0x6e, 0xb0, 0xcf, 0x96, 0x4e, 0xbd, 0x8a,
+ 0x1f, 0xb8, 0xb5, 0x8b, 0xed, 0x00, 0xea, 0xb1,
+};
+static const unsigned char kat658_addin0[] = {
+ 0x5c, 0xa9, 0xd7, 0xbd, 0x6e, 0x95, 0x34, 0xdd, 0xfa, 0x5a, 0x6c, 0x4d,
+ 0xc0, 0x0b, 0x40, 0x4f, 0x25, 0x9f, 0x04, 0x2d, 0xed, 0x1f, 0x19, 0x9c,
+ 0xe6, 0x6a, 0xa5, 0x4d, 0xaa, 0x3e, 0x50, 0x19,
+};
+static const unsigned char kat658_addin1[] = {
+ 0x1d, 0xd4, 0x1f, 0x32, 0x17, 0x02, 0x4b, 0xd5, 0xf0, 0xcb, 0xdd, 0x44,
+ 0xa5, 0x91, 0x5e, 0xda, 0x49, 0xf3, 0xc3, 0x03, 0xc9, 0xa7, 0x0f, 0xd7,
+ 0x4e, 0x67, 0x50, 0x28, 0xe5, 0x67, 0xbb, 0x37,
+};
+static const unsigned char kat658_retbits[] = {
+ 0x4e, 0x3b, 0x60, 0xae, 0xf2, 0xe3, 0xb7, 0x5e, 0xd0, 0x70, 0xd4, 0x36,
+ 0x3e, 0x68, 0x44, 0xc6, 0x00, 0xa5, 0x58, 0x7c, 0x5a, 0x8c, 0x8c, 0x4e,
+ 0x11, 0xa6, 0x25, 0x87, 0x61, 0xcc, 0x07, 0x2f, 0xa4, 0x16, 0x50, 0x7d,
+ 0x73, 0xa4, 0xbe, 0xa1, 0x9c, 0x8a, 0x31, 0x38, 0xa8, 0xdb, 0x32, 0x97,
+ 0x16, 0xd6, 0xa8, 0x30, 0xb2, 0x87, 0x0b, 0x5b, 0x69, 0x95, 0x8a, 0x4d,
+ 0xae, 0xd4, 0xb7, 0x14,
+};
+static const struct drbg_kat_no_reseed kat658_t = {
+ 12, kat658_entropyin, kat658_nonce, kat658_persstr,
+ kat658_addin0, kat658_addin1, kat658_retbits
+};
+static const struct drbg_kat kat658 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat658_t
+};
+
+static const unsigned char kat659_entropyin[] = {
+ 0x5f, 0x44, 0x0d, 0xb9, 0x7d, 0x11, 0x47, 0x58, 0x56, 0xe1, 0x20, 0x4d,
+ 0xb7, 0x00, 0xf2, 0x0e, 0xf5, 0x2c, 0xc9, 0x50, 0x5d, 0xe7, 0xfc, 0x23,
+ 0x53, 0xd6, 0x42, 0x9c, 0x8c, 0xde, 0xcc, 0xca,
+};
+static const unsigned char kat659_nonce[] = {
+ 0xb5, 0xf1, 0xe8, 0x27, 0x26, 0x3a, 0xac, 0x0d, 0xfd, 0xf6, 0x41, 0xe8,
+ 0x99, 0x25, 0x3a, 0x83,
+};
+static const unsigned char kat659_persstr[] = {
+ 0x2a, 0x5b, 0x6b, 0x82, 0x92, 0xe5, 0xe8, 0x7c, 0x53, 0xcd, 0x2b, 0x27,
+ 0x31, 0x2f, 0x77, 0x00, 0xcc, 0x40, 0xac, 0x0f, 0x4a, 0xd4, 0xbc, 0x7b,
+ 0x9f, 0xbc, 0xe4, 0xdd, 0x52, 0xa0, 0x94, 0xf9,
+};
+static const unsigned char kat659_addin0[] = {
+ 0x3a, 0xd3, 0x5c, 0x3b, 0x31, 0x85, 0x34, 0xed, 0xe1, 0xba, 0x6f, 0x10,
+ 0xfc, 0x75, 0x9f, 0x24, 0x91, 0x4a, 0x6c, 0x6e, 0x59, 0x34, 0xba, 0x83,
+ 0xa7, 0x76, 0xeb, 0xdb, 0x57, 0x71, 0x7a, 0xa2,
+};
+static const unsigned char kat659_addin1[] = {
+ 0x81, 0x20, 0x2a, 0x62, 0x8b, 0xc3, 0x1e, 0x86, 0x82, 0x1d, 0xc0, 0xd8,
+ 0xa3, 0xed, 0xb9, 0xd8, 0x64, 0xe5, 0x1b, 0x27, 0x4c, 0x23, 0x04, 0xc6,
+ 0x33, 0x44, 0xae, 0x50, 0x18, 0xcd, 0x03, 0x87,
+};
+static const unsigned char kat659_retbits[] = {
+ 0xf9, 0x1d, 0x2f, 0xd3, 0xa2, 0x0e, 0x54, 0x5e, 0xaf, 0xbe, 0x12, 0x4b,
+ 0x20, 0x33, 0x2e, 0x4a, 0xc2, 0x4a, 0xbe, 0x5f, 0x2c, 0x5b, 0xc0, 0xc4,
+ 0x5d, 0x21, 0x84, 0x88, 0xd2, 0xfc, 0x94, 0xde, 0xd5, 0x65, 0xaa, 0xf5,
+ 0x57, 0x5d, 0x8c, 0x93, 0x51, 0x98, 0x5f, 0xaf, 0xb2, 0x2e, 0x7f, 0xc5,
+ 0xa2, 0xc8, 0xe9, 0x53, 0x2e, 0x5b, 0xaf, 0x4b, 0x03, 0xb9, 0xd1, 0xac,
+ 0x8a, 0x96, 0x05, 0x05,
+};
+static const struct drbg_kat_no_reseed kat659_t = {
+ 13, kat659_entropyin, kat659_nonce, kat659_persstr,
+ kat659_addin0, kat659_addin1, kat659_retbits
+};
+static const struct drbg_kat kat659 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat659_t
+};
+
+static const unsigned char kat660_entropyin[] = {
+ 0xec, 0x7e, 0x9d, 0x66, 0x9b, 0x31, 0x77, 0x03, 0x16, 0xb4, 0x20, 0x51,
+ 0x0e, 0x41, 0x55, 0x3f, 0x68, 0x3e, 0x01, 0x24, 0x03, 0xe6, 0x57, 0xf6,
+ 0x39, 0x92, 0x0a, 0x60, 0x35, 0xee, 0xd3, 0x4b,
+};
+static const unsigned char kat660_nonce[] = {
+ 0x30, 0x79, 0xe0, 0xa6, 0x21, 0x50, 0xe6, 0x0e, 0x58, 0xad, 0xe5, 0xad,
+ 0x62, 0x22, 0x5f, 0xd9,
+};
+static const unsigned char kat660_persstr[] = {
+ 0xaf, 0x32, 0xfc, 0x72, 0xf2, 0x34, 0x31, 0x3d, 0xbb, 0x9f, 0xd6, 0x6b,
+ 0x4d, 0x91, 0xbb, 0xa7, 0x43, 0x20, 0x6d, 0x6c, 0xdf, 0x28, 0x9d, 0xcd,
+ 0x4f, 0xab, 0x1e, 0xf7, 0xab, 0x46, 0xb1, 0xfa,
+};
+static const unsigned char kat660_addin0[] = {
+ 0x03, 0x18, 0x60, 0xc8, 0xc0, 0x18, 0x32, 0xad, 0xfb, 0xfc, 0xb9, 0x32,
+ 0x2f, 0x28, 0xe8, 0xbf, 0xf4, 0x0f, 0xac, 0x8b, 0x3d, 0xc2, 0x8b, 0x36,
+ 0x60, 0x88, 0xc2, 0x5f, 0x2c, 0x4b, 0xd7, 0xdd,
+};
+static const unsigned char kat660_addin1[] = {
+ 0x31, 0xed, 0xd2, 0xa5, 0xcb, 0x0a, 0x51, 0x08, 0x89, 0x51, 0x76, 0x80,
+ 0x33, 0xc9, 0x67, 0x22, 0x40, 0x30, 0x93, 0x42, 0xdc, 0x90, 0xee, 0x00,
+ 0x93, 0x53, 0xf0, 0xc6, 0x65, 0xdd, 0xc7, 0xde,
+};
+static const unsigned char kat660_retbits[] = {
+ 0x74, 0x90, 0xd6, 0xb1, 0x08, 0xe0, 0x16, 0x83, 0x8c, 0x6c, 0xf3, 0x3d,
+ 0xba, 0x4b, 0x78, 0xee, 0x3b, 0x6b, 0x36, 0x82, 0x9d, 0xe5, 0x10, 0x93,
+ 0xc9, 0xe6, 0x29, 0x09, 0x4a, 0x2f, 0x46, 0x2f, 0xdb, 0x55, 0x52, 0xf6,
+ 0xa0, 0x59, 0x33, 0x3f, 0xcc, 0x2c, 0xc3, 0xfb, 0x7f, 0xf1, 0x37, 0xc0,
+ 0xd8, 0xec, 0x1f, 0xcd, 0xa1, 0x7b, 0x58, 0x94, 0xe1, 0xa0, 0xfe, 0x24,
+ 0xf1, 0xe6, 0x7a, 0x8e,
+};
+static const struct drbg_kat_no_reseed kat660_t = {
+ 14, kat660_entropyin, kat660_nonce, kat660_persstr,
+ kat660_addin0, kat660_addin1, kat660_retbits
+};
+static const struct drbg_kat kat660 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat660_t
+};
+
+static const unsigned char kat661_entropyin[] = {
+ 0x4e, 0xe6, 0x8b, 0x33, 0x52, 0xb8, 0x74, 0xe1, 0xcc, 0x29, 0x37, 0x50,
+ 0x28, 0x85, 0x1d, 0xee, 0x9d, 0x5d, 0xfd, 0x88, 0xa4, 0x06, 0x64, 0xc7,
+ 0x9e, 0x2b, 0x72, 0x4f, 0xb1, 0x1b, 0x28, 0x08,
+};
+static const unsigned char kat661_nonce[] = {
+ 0x1c, 0x6a, 0x80, 0xd8, 0x20, 0x12, 0xc3, 0x9c, 0x9f, 0x14, 0xa8, 0x08,
+ 0x64, 0x3f, 0x08, 0xe7,
+};
+static const unsigned char kat661_persstr[] = {0};
+static const unsigned char kat661_addin0[] = {0};
+static const unsigned char kat661_addin1[] = {0};
+static const unsigned char kat661_retbits[] = {
+ 0x7c, 0x58, 0xd2, 0xa5, 0x52, 0x2a, 0x88, 0x34, 0x1f, 0xb5, 0x5f, 0xac,
+ 0xef, 0xdb, 0x6e, 0x24, 0x84, 0x0c, 0xae, 0x28, 0x39, 0x48, 0xd5, 0x31,
+ 0x48, 0xa3, 0x84, 0xe1, 0x3b, 0x54, 0x07, 0xd7, 0x71, 0x2c, 0x33, 0x43,
+ 0x4b, 0xd3, 0xd1, 0x94, 0x48, 0xb4, 0x32, 0x70, 0xc5, 0x48, 0x60, 0xbf,
+ 0x34, 0x95, 0x57, 0x90, 0x57, 0xc7, 0x0b, 0xff, 0x30, 0x84, 0xdd, 0xdf,
+ 0xf0, 0x8a, 0x09, 0x1d,
+};
+static const struct drbg_kat_no_reseed kat661_t = {
+ 0, kat661_entropyin, kat661_nonce, kat661_persstr,
+ kat661_addin0, kat661_addin1, kat661_retbits
+};
+static const struct drbg_kat kat661 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat661_t
+};
+
+static const unsigned char kat662_entropyin[] = {
+ 0x94, 0x42, 0xe3, 0xf7, 0x67, 0x75, 0x09, 0x3a, 0xc2, 0x63, 0x5d, 0x9b,
+ 0x21, 0x79, 0x74, 0xe8, 0xc7, 0xcc, 0x9c, 0xce, 0x8b, 0xba, 0x2f, 0x04,
+ 0xde, 0x57, 0x43, 0x2f, 0xe6, 0xcf, 0x0f, 0x4a,
+};
+static const unsigned char kat662_nonce[] = {
+ 0xb9, 0x4a, 0x55, 0x8d, 0xe7, 0xf8, 0x87, 0xf7, 0xf5, 0x0d, 0x3f, 0x0c,
+ 0xd4, 0xf7, 0x6f, 0x43,
+};
+static const unsigned char kat662_persstr[] = {0};
+static const unsigned char kat662_addin0[] = {0};
+static const unsigned char kat662_addin1[] = {0};
+static const unsigned char kat662_retbits[] = {
+ 0x31, 0xca, 0xae, 0xe5, 0xd5, 0x0c, 0x63, 0x42, 0xfd, 0x6b, 0x3b, 0x18,
+ 0xd0, 0xf8, 0x8e, 0x72, 0xb8, 0x57, 0xed, 0x3f, 0xe5, 0xcb, 0xaa, 0xf7,
+ 0x6b, 0xe1, 0xa6, 0xac, 0xf0, 0x85, 0x51, 0xcf, 0x3e, 0xb1, 0x5f, 0x4b,
+ 0x57, 0x3c, 0xa9, 0x89, 0x50, 0xc7, 0x7d, 0x30, 0xea, 0x1d, 0xc3, 0xb9,
+ 0xfa, 0x73, 0x33, 0x5c, 0xba, 0xa8, 0xe3, 0xa5, 0x16, 0x21, 0x11, 0x26,
+ 0x9a, 0xf7, 0x33, 0x3a,
+};
+static const struct drbg_kat_no_reseed kat662_t = {
+ 1, kat662_entropyin, kat662_nonce, kat662_persstr,
+ kat662_addin0, kat662_addin1, kat662_retbits
+};
+static const struct drbg_kat kat662 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat662_t
+};
+
+static const unsigned char kat663_entropyin[] = {
+ 0x27, 0xf1, 0xcf, 0xb9, 0x37, 0x18, 0x5e, 0xff, 0xf2, 0x48, 0xe1, 0xb1,
+ 0x18, 0x8c, 0xf1, 0xfd, 0x9f, 0xb4, 0x89, 0xa7, 0xc8, 0x79, 0x5e, 0xf2,
+ 0xc7, 0xe0, 0xf8, 0xa7, 0xd7, 0xf7, 0x11, 0xe0,
+};
+static const unsigned char kat663_nonce[] = {
+ 0xe7, 0xac, 0x79, 0x5a, 0xdc, 0xda, 0xae, 0x1a, 0x93, 0x11, 0x68, 0x66,
+ 0xc0, 0x09, 0xc5, 0xe5,
+};
+static const unsigned char kat663_persstr[] = {0};
+static const unsigned char kat663_addin0[] = {0};
+static const unsigned char kat663_addin1[] = {0};
+static const unsigned char kat663_retbits[] = {
+ 0x14, 0xf2, 0x2a, 0xb6, 0x9b, 0x2d, 0x5a, 0xc9, 0x16, 0x91, 0x70, 0x89,
+ 0x82, 0x7b, 0xd6, 0x57, 0xf8, 0xd6, 0xd1, 0xd9, 0x80, 0xb7, 0x92, 0x11,
+ 0xbc, 0x35, 0x0b, 0x0b, 0x32, 0x27, 0x96, 0x8d, 0x87, 0x66, 0x74, 0x29,
+ 0x7a, 0x89, 0x87, 0xdd, 0xb0, 0xa9, 0x44, 0xad, 0x1e, 0x22, 0xdf, 0x4c,
+ 0xf1, 0xb6, 0x12, 0xaf, 0x3f, 0x11, 0x01, 0x3a, 0x59, 0x7e, 0x2d, 0x20,
+ 0x1d, 0xed, 0x33, 0xc9,
+};
+static const struct drbg_kat_no_reseed kat663_t = {
+ 2, kat663_entropyin, kat663_nonce, kat663_persstr,
+ kat663_addin0, kat663_addin1, kat663_retbits
+};
+static const struct drbg_kat kat663 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat663_t
+};
+
+static const unsigned char kat664_entropyin[] = {
+ 0x65, 0x89, 0xa9, 0x0d, 0xda, 0xc0, 0x83, 0x8c, 0x73, 0xb7, 0xa4, 0x52,
+ 0x9f, 0x2c, 0x64, 0x7d, 0x70, 0x7d, 0x3f, 0x5f, 0x17, 0xcb, 0x76, 0xa8,
+ 0xdf, 0x26, 0x5f, 0x26, 0x4e, 0x33, 0xc8, 0xb9,
+};
+static const unsigned char kat664_nonce[] = {
+ 0x00, 0x6a, 0x8e, 0x6c, 0x2f, 0xac, 0xb2, 0x35, 0x5f, 0xd6, 0xa4, 0x63,
+ 0x8d, 0xdb, 0x7c, 0x91,
+};
+static const unsigned char kat664_persstr[] = {0};
+static const unsigned char kat664_addin0[] = {0};
+static const unsigned char kat664_addin1[] = {0};
+static const unsigned char kat664_retbits[] = {
+ 0xfb, 0xed, 0x16, 0x31, 0x23, 0xf1, 0xd0, 0x40, 0x44, 0x6c, 0xaf, 0xe4,
+ 0x4b, 0x96, 0x60, 0xa7, 0x21, 0x1d, 0x0f, 0xf0, 0xee, 0xae, 0xba, 0x86,
+ 0xa6, 0x12, 0xd8, 0x1d, 0x88, 0xee, 0x8c, 0x6a, 0xda, 0x33, 0xd2, 0x61,
+ 0x15, 0x27, 0x24, 0x21, 0xe9, 0xb8, 0x4a, 0x34, 0xd6, 0xbd, 0x6d, 0x7b,
+ 0xbb, 0xe6, 0x04, 0x3e, 0x38, 0x2f, 0x34, 0x8f, 0x0d, 0x7d, 0xaa, 0x94,
+ 0xdc, 0x72, 0xa1, 0x52,
+};
+static const struct drbg_kat_no_reseed kat664_t = {
+ 3, kat664_entropyin, kat664_nonce, kat664_persstr,
+ kat664_addin0, kat664_addin1, kat664_retbits
+};
+static const struct drbg_kat kat664 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat664_t
+};
+
+static const unsigned char kat665_entropyin[] = {
+ 0xe8, 0x76, 0xc1, 0x0c, 0x9e, 0x42, 0xc7, 0x53, 0x46, 0xd5, 0x93, 0xd6,
+ 0xeb, 0x04, 0x7a, 0x1f, 0xb3, 0x36, 0x73, 0x98, 0xd6, 0x23, 0x16, 0xd1,
+ 0x16, 0xa9, 0x29, 0xeb, 0x9e, 0xce, 0xcb, 0x18,
+};
+static const unsigned char kat665_nonce[] = {
+ 0x81, 0x5a, 0xb7, 0x63, 0x32, 0xdb, 0x44, 0xe7, 0x13, 0xa8, 0xe9, 0x67,
+ 0xb2, 0x0b, 0x5c, 0x1f,
+};
+static const unsigned char kat665_persstr[] = {0};
+static const unsigned char kat665_addin0[] = {0};
+static const unsigned char kat665_addin1[] = {0};
+static const unsigned char kat665_retbits[] = {
+ 0x70, 0x22, 0xdb, 0x94, 0x7f, 0xd4, 0x18, 0xf6, 0xc9, 0x2b, 0xf9, 0xa1,
+ 0x2b, 0x6d, 0x1b, 0x2b, 0xd2, 0x17, 0x75, 0x8f, 0xa2, 0xe3, 0x67, 0x76,
+ 0xf3, 0x5c, 0x9d, 0x33, 0xa4, 0x89, 0xf6, 0x91, 0x3a, 0x1d, 0x07, 0xb4,
+ 0xb4, 0x61, 0xa1, 0x39, 0x11, 0x46, 0x9c, 0xcf, 0x4f, 0x3b, 0x52, 0x11,
+ 0x11, 0x7b, 0xdc, 0xac, 0x05, 0x2a, 0xa8, 0xee, 0x0b, 0xe7, 0xe2, 0x7c,
+ 0x4c, 0xa2, 0xa3, 0x45,
+};
+static const struct drbg_kat_no_reseed kat665_t = {
+ 4, kat665_entropyin, kat665_nonce, kat665_persstr,
+ kat665_addin0, kat665_addin1, kat665_retbits
+};
+static const struct drbg_kat kat665 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat665_t
+};
+
+static const unsigned char kat666_entropyin[] = {
+ 0x9b, 0x3d, 0xee, 0xc2, 0x3e, 0xde, 0x86, 0x62, 0x5c, 0x5e, 0xad, 0x5f,
+ 0x2c, 0x77, 0xe6, 0x05, 0x46, 0x6b, 0x60, 0x22, 0x40, 0xf5, 0x56, 0xa1,
+ 0x80, 0xec, 0xd2, 0xbe, 0xee, 0x20, 0x1a, 0x35,
+};
+static const unsigned char kat666_nonce[] = {
+ 0xdb, 0x3d, 0x77, 0x43, 0xde, 0xfc, 0x4d, 0xca, 0x54, 0x5f, 0xbf, 0xc1,
+ 0xd3, 0x7a, 0x09, 0xc5,
+};
+static const unsigned char kat666_persstr[] = {0};
+static const unsigned char kat666_addin0[] = {0};
+static const unsigned char kat666_addin1[] = {0};
+static const unsigned char kat666_retbits[] = {
+ 0x9d, 0xcd, 0xf1, 0x42, 0x78, 0xbc, 0xf9, 0x95, 0x9e, 0x2f, 0xc0, 0x7f,
+ 0x7b, 0x7e, 0xe4, 0x2b, 0x9d, 0x51, 0x11, 0x4e, 0x96, 0x65, 0x64, 0x34,
+ 0x06, 0x03, 0x62, 0x41, 0x22, 0x1c, 0x82, 0x6a, 0x59, 0x5a, 0xa1, 0xa3,
+ 0x39, 0x40, 0x62, 0x00, 0xe2, 0x33, 0x22, 0x20, 0x3e, 0x34, 0x67, 0xde,
+ 0x3f, 0x14, 0xd1, 0xe2, 0x62, 0xed, 0x8f, 0x44, 0x24, 0xf3, 0xe1, 0xe2,
+ 0x04, 0x3b, 0x22, 0x8b,
+};
+static const struct drbg_kat_no_reseed kat666_t = {
+ 5, kat666_entropyin, kat666_nonce, kat666_persstr,
+ kat666_addin0, kat666_addin1, kat666_retbits
+};
+static const struct drbg_kat kat666 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat666_t
+};
+
+static const unsigned char kat667_entropyin[] = {
+ 0x28, 0x9f, 0x5e, 0x0e, 0x23, 0x7e, 0x45, 0xb8, 0xf7, 0xb2, 0x26, 0x63,
+ 0xfb, 0xb5, 0x8e, 0xbb, 0x91, 0x01, 0xbf, 0xa9, 0x71, 0xce, 0xdc, 0x1f,
+ 0x69, 0x77, 0xcf, 0xef, 0x02, 0x49, 0x09, 0x53,
+};
+static const unsigned char kat667_nonce[] = {
+ 0xec, 0xef, 0xca, 0xa5, 0x9d, 0x31, 0xc9, 0x69, 0x14, 0x19, 0x60, 0xf8,
+ 0xf5, 0xca, 0xa8, 0x57,
+};
+static const unsigned char kat667_persstr[] = {0};
+static const unsigned char kat667_addin0[] = {0};
+static const unsigned char kat667_addin1[] = {0};
+static const unsigned char kat667_retbits[] = {
+ 0x68, 0x38, 0x06, 0x23, 0xab, 0xef, 0xe6, 0xff, 0x32, 0x10, 0xe6, 0x62,
+ 0xcb, 0x2c, 0xd0, 0x4e, 0xf3, 0x10, 0x92, 0xac, 0xb1, 0xde, 0xe3, 0x4f,
+ 0xac, 0x3a, 0x5f, 0x70, 0xcc, 0x9d, 0xa2, 0xc4, 0xf9, 0x3f, 0x87, 0x5c,
+ 0xbd, 0xc9, 0xef, 0x29, 0x73, 0x9c, 0x3b, 0xa6, 0xc9, 0x00, 0xc3, 0x37,
+ 0x50, 0x89, 0x5f, 0x10, 0x7e, 0x3b, 0xc7, 0xf2, 0x06, 0x11, 0xc4, 0x04,
+ 0xfb, 0x1d, 0x3d, 0x12,
+};
+static const struct drbg_kat_no_reseed kat667_t = {
+ 6, kat667_entropyin, kat667_nonce, kat667_persstr,
+ kat667_addin0, kat667_addin1, kat667_retbits
+};
+static const struct drbg_kat kat667 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat667_t
+};
+
+static const unsigned char kat668_entropyin[] = {
+ 0x00, 0x8b, 0xf6, 0x98, 0x42, 0xd1, 0x05, 0x68, 0x81, 0xff, 0x2e, 0x35,
+ 0x71, 0x82, 0x7a, 0x69, 0x90, 0x05, 0x0f, 0x56, 0x88, 0x37, 0x7b, 0x10,
+ 0xb0, 0x60, 0x44, 0x12, 0xce, 0x86, 0xf5, 0x76,
+};
+static const unsigned char kat668_nonce[] = {
+ 0x7a, 0xc5, 0x16, 0x3c, 0x1a, 0x96, 0xb5, 0xf4, 0xa5, 0xb3, 0xd2, 0xf2,
+ 0xfe, 0xa9, 0x5d, 0x21,
+};
+static const unsigned char kat668_persstr[] = {0};
+static const unsigned char kat668_addin0[] = {0};
+static const unsigned char kat668_addin1[] = {0};
+static const unsigned char kat668_retbits[] = {
+ 0x18, 0xa6, 0x26, 0x1e, 0xde, 0xfd, 0x65, 0xf6, 0x34, 0xfb, 0x8c, 0x80,
+ 0x6c, 0x61, 0x5c, 0xd2, 0xaa, 0x82, 0xca, 0x11, 0xc6, 0x08, 0xbb, 0x6e,
+ 0x9e, 0x83, 0x1e, 0x1e, 0xe3, 0x36, 0xac, 0xa2, 0xa2, 0x47, 0x43, 0x70,
+ 0xa4, 0x61, 0xf9, 0xfd, 0x1a, 0x49, 0x6a, 0xcb, 0xe9, 0x08, 0xca, 0x58,
+ 0xeb, 0x7b, 0xee, 0xfe, 0x2f, 0xd5, 0xc4, 0x80, 0x2c, 0xd5, 0x27, 0xae,
+ 0x0a, 0x1c, 0xc6, 0xa6,
+};
+static const struct drbg_kat_no_reseed kat668_t = {
+ 7, kat668_entropyin, kat668_nonce, kat668_persstr,
+ kat668_addin0, kat668_addin1, kat668_retbits
+};
+static const struct drbg_kat kat668 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat668_t
+};
+
+static const unsigned char kat669_entropyin[] = {
+ 0x41, 0x9d, 0xe0, 0x8d, 0x88, 0x2e, 0x1d, 0xea, 0x84, 0x14, 0xfd, 0x01,
+ 0xf1, 0x85, 0x05, 0x86, 0xe5, 0x35, 0x90, 0x4e, 0xf0, 0xde, 0x3b, 0xdd,
+ 0x8b, 0x66, 0x7d, 0x16, 0xfe, 0xde, 0xd6, 0x3e,
+};
+static const unsigned char kat669_nonce[] = {
+ 0x52, 0x57, 0xd3, 0xe3, 0x2c, 0xf4, 0xcf, 0x5a, 0x1f, 0x61, 0x57, 0xd6,
+ 0x03, 0x04, 0x51, 0x0b,
+};
+static const unsigned char kat669_persstr[] = {0};
+static const unsigned char kat669_addin0[] = {0};
+static const unsigned char kat669_addin1[] = {0};
+static const unsigned char kat669_retbits[] = {
+ 0x0b, 0x7d, 0x93, 0x54, 0x14, 0xd0, 0x72, 0xec, 0x7b, 0x24, 0x34, 0xa5,
+ 0x0b, 0x9b, 0xc9, 0x0a, 0x29, 0x87, 0xc0, 0x5f, 0xe5, 0x59, 0x62, 0x82,
+ 0xff, 0x17, 0x00, 0xf4, 0xcc, 0x44, 0x22, 0x47, 0x79, 0xc4, 0xef, 0x2f,
+ 0x1f, 0xe6, 0x3a, 0x4f, 0x37, 0xea, 0x88, 0x91, 0x85, 0x0b, 0xa5, 0xea,
+ 0xa1, 0xf9, 0x08, 0x2b, 0xa5, 0xb4, 0x99, 0xba, 0x31, 0x20, 0x36, 0x85,
+ 0x69, 0xd0, 0x9d, 0xb2,
+};
+static const struct drbg_kat_no_reseed kat669_t = {
+ 8, kat669_entropyin, kat669_nonce, kat669_persstr,
+ kat669_addin0, kat669_addin1, kat669_retbits
+};
+static const struct drbg_kat kat669 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat669_t
+};
+
+static const unsigned char kat670_entropyin[] = {
+ 0x80, 0x39, 0x45, 0x69, 0xdc, 0x1b, 0x8d, 0xaa, 0x7d, 0x7d, 0x42, 0xc3,
+ 0x2f, 0x26, 0x21, 0xfa, 0xc4, 0xd5, 0xb6, 0xe7, 0x93, 0xe6, 0x82, 0x45,
+ 0x63, 0x14, 0x97, 0x8a, 0x2b, 0xfb, 0x49, 0xa4,
+};
+static const unsigned char kat670_nonce[] = {
+ 0x9b, 0x85, 0x63, 0x42, 0x62, 0xbd, 0xae, 0xd1, 0xc1, 0xbb, 0xfc, 0x66,
+ 0x9d, 0x6c, 0xd3, 0xe2,
+};
+static const unsigned char kat670_persstr[] = {0};
+static const unsigned char kat670_addin0[] = {0};
+static const unsigned char kat670_addin1[] = {0};
+static const unsigned char kat670_retbits[] = {
+ 0x08, 0x21, 0xe1, 0x8a, 0x67, 0xfd, 0x7e, 0x78, 0xc3, 0x2f, 0x65, 0x4e,
+ 0x77, 0x74, 0xc1, 0xdc, 0x12, 0x44, 0x86, 0x5e, 0x9a, 0xfc, 0x12, 0xa4,
+ 0x30, 0xc9, 0x8c, 0x61, 0x13, 0x0f, 0x95, 0x33, 0xe9, 0x9f, 0x64, 0x1f,
+ 0x65, 0x45, 0x8e, 0x15, 0x5b, 0xd6, 0x7f, 0xef, 0x2f, 0x7b, 0x35, 0xeb,
+ 0x7e, 0xc7, 0xcb, 0x38, 0xb1, 0xe8, 0x7e, 0xb4, 0xdf, 0xa8, 0xa1, 0x73,
+ 0xb2, 0x34, 0x78, 0xfb,
+};
+static const struct drbg_kat_no_reseed kat670_t = {
+ 9, kat670_entropyin, kat670_nonce, kat670_persstr,
+ kat670_addin0, kat670_addin1, kat670_retbits
+};
+static const struct drbg_kat kat670 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat670_t
+};
+
+static const unsigned char kat671_entropyin[] = {
+ 0xdc, 0xc9, 0xad, 0xf0, 0x02, 0x91, 0x78, 0xd4, 0xd7, 0x1d, 0xfe, 0x39,
+ 0x79, 0x0a, 0xa8, 0x50, 0x5e, 0xa7, 0x16, 0x81, 0xf5, 0x65, 0x29, 0x47,
+ 0x84, 0xfc, 0xc3, 0x63, 0x12, 0xd4, 0xd7, 0xf4,
+};
+static const unsigned char kat671_nonce[] = {
+ 0xe4, 0xa3, 0x44, 0xda, 0xab, 0x48, 0xeb, 0x31, 0xd7, 0xe8, 0xdc, 0x38,
+ 0x93, 0x6f, 0x18, 0x84,
+};
+static const unsigned char kat671_persstr[] = {0};
+static const unsigned char kat671_addin0[] = {0};
+static const unsigned char kat671_addin1[] = {0};
+static const unsigned char kat671_retbits[] = {
+ 0x5e, 0xac, 0xae, 0xd6, 0x00, 0x52, 0xac, 0x87, 0xa1, 0x5e, 0x42, 0x99,
+ 0x7c, 0xfc, 0x77, 0xb6, 0x9e, 0x89, 0x8c, 0xbc, 0x61, 0xe3, 0x6e, 0x00,
+ 0x0a, 0xf2, 0x0d, 0xc5, 0x3d, 0xd5, 0xc8, 0xa1, 0xfc, 0xda, 0x92, 0x4e,
+ 0x10, 0x30, 0xb5, 0x35, 0xc9, 0xe4, 0xdc, 0x87, 0xc3, 0xec, 0x8d, 0x3c,
+ 0xe4, 0xc0, 0x61, 0xdd, 0x46, 0xde, 0x12, 0xf9, 0x53, 0x10, 0x67, 0xca,
+ 0x87, 0xb8, 0xbd, 0x6d,
+};
+static const struct drbg_kat_no_reseed kat671_t = {
+ 10, kat671_entropyin, kat671_nonce, kat671_persstr,
+ kat671_addin0, kat671_addin1, kat671_retbits
+};
+static const struct drbg_kat kat671 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat671_t
+};
+
+static const unsigned char kat672_entropyin[] = {
+ 0x1f, 0xee, 0x8b, 0x75, 0x7e, 0xab, 0xea, 0xb6, 0x60, 0xdd, 0x95, 0xdc,
+ 0x0d, 0x0d, 0x69, 0xd1, 0x82, 0x22, 0x8f, 0x24, 0x1d, 0x48, 0xc6, 0x40,
+ 0x67, 0xf8, 0x0d, 0xd9, 0x61, 0x58, 0xcf, 0xae,
+};
+static const unsigned char kat672_nonce[] = {
+ 0x6e, 0xb7, 0x6c, 0x5c, 0x85, 0xc3, 0xa3, 0x5d, 0x6f, 0x2a, 0xf4, 0x61,
+ 0x9c, 0x54, 0xae, 0x21,
+};
+static const unsigned char kat672_persstr[] = {0};
+static const unsigned char kat672_addin0[] = {0};
+static const unsigned char kat672_addin1[] = {0};
+static const unsigned char kat672_retbits[] = {
+ 0x8a, 0x6f, 0x21, 0x15, 0x6f, 0xd6, 0x1e, 0x1a, 0x83, 0x6f, 0x6b, 0x1f,
+ 0x54, 0x5a, 0x06, 0xc8, 0x10, 0x08, 0xe8, 0x7c, 0x85, 0xfe, 0x52, 0x6c,
+ 0x3b, 0x82, 0xdb, 0xbb, 0xc1, 0x19, 0x43, 0xdb, 0xaf, 0x25, 0xfe, 0x48,
+ 0xee, 0x31, 0xfb, 0x70, 0x18, 0x51, 0x0b, 0x2e, 0xec, 0xdd, 0x86, 0xb2,
+ 0x1d, 0x17, 0x79, 0xd5, 0xf7, 0x0e, 0xa2, 0x8b, 0x44, 0xb1, 0xb2, 0x94,
+ 0xa5, 0x66, 0x34, 0xb6,
+};
+static const struct drbg_kat_no_reseed kat672_t = {
+ 11, kat672_entropyin, kat672_nonce, kat672_persstr,
+ kat672_addin0, kat672_addin1, kat672_retbits
+};
+static const struct drbg_kat kat672 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat672_t
+};
+
+static const unsigned char kat673_entropyin[] = {
+ 0xb3, 0xed, 0x24, 0x78, 0x72, 0x21, 0x0b, 0x15, 0xc9, 0x76, 0xf4, 0x23,
+ 0x09, 0x6e, 0x3d, 0x7f, 0x6e, 0x62, 0x60, 0x45, 0xb2, 0x88, 0x38, 0x03,
+ 0x26, 0x2a, 0x96, 0xac, 0xa7, 0x15, 0xe2, 0xf7,
+};
+static const unsigned char kat673_nonce[] = {
+ 0xa1, 0xf2, 0xb4, 0x5c, 0xa6, 0x3d, 0x4c, 0x2a, 0x98, 0xa3, 0x80, 0xcb,
+ 0x24, 0xe4, 0x8b, 0xcd,
+};
+static const unsigned char kat673_persstr[] = {0};
+static const unsigned char kat673_addin0[] = {0};
+static const unsigned char kat673_addin1[] = {0};
+static const unsigned char kat673_retbits[] = {
+ 0xbe, 0x7b, 0x55, 0x72, 0x51, 0x0a, 0x1c, 0x1d, 0x24, 0x5c, 0xc2, 0x72,
+ 0x5f, 0xf9, 0x27, 0xb3, 0x71, 0xee, 0xee, 0xa6, 0xea, 0xcc, 0x62, 0xba,
+ 0x6a, 0xee, 0xb9, 0x54, 0x3a, 0xf5, 0x34, 0x9f, 0xb9, 0xda, 0x16, 0x6e,
+ 0xec, 0xa6, 0xe9, 0x51, 0x03, 0x16, 0xe8, 0xd8, 0x9d, 0x5d, 0x06, 0x02,
+ 0x34, 0x01, 0x25, 0x87, 0xab, 0x0b, 0xaf, 0x57, 0xa7, 0x08, 0xc1, 0xb6,
+ 0x70, 0x3d, 0xfc, 0x9d,
+};
+static const struct drbg_kat_no_reseed kat673_t = {
+ 12, kat673_entropyin, kat673_nonce, kat673_persstr,
+ kat673_addin0, kat673_addin1, kat673_retbits
+};
+static const struct drbg_kat kat673 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat673_t
+};
+
+static const unsigned char kat674_entropyin[] = {
+ 0x70, 0xcc, 0x7b, 0x7b, 0xc8, 0x03, 0xab, 0x30, 0x36, 0x89, 0x72, 0xcc,
+ 0x02, 0x1c, 0x1c, 0x51, 0xa3, 0xf1, 0x51, 0x33, 0x5a, 0xdd, 0x72, 0x6f,
+ 0x5b, 0xd0, 0x84, 0x13, 0x86, 0xc9, 0x66, 0x05,
+};
+static const unsigned char kat674_nonce[] = {
+ 0x26, 0x67, 0x87, 0x77, 0x91, 0x9a, 0xc8, 0xf1, 0xb3, 0x8f, 0x93, 0x6b,
+ 0xc0, 0xab, 0x9e, 0x11,
+};
+static const unsigned char kat674_persstr[] = {0};
+static const unsigned char kat674_addin0[] = {0};
+static const unsigned char kat674_addin1[] = {0};
+static const unsigned char kat674_retbits[] = {
+ 0x55, 0xa4, 0x81, 0xfe, 0x7b, 0x3c, 0x1c, 0xd2, 0x9b, 0x94, 0x2a, 0x71,
+ 0x64, 0xac, 0x7c, 0x74, 0x13, 0xdb, 0x97, 0x11, 0xfb, 0xab, 0x14, 0xcf,
+ 0x00, 0x58, 0x87, 0xcc, 0x53, 0xfc, 0x73, 0x9c, 0x68, 0xe3, 0x7c, 0x0b,
+ 0x13, 0xcb, 0x73, 0xe5, 0x3e, 0x9d, 0x27, 0x2a, 0xf8, 0x03, 0x17, 0x04,
+ 0x43, 0xee, 0x09, 0x11, 0x08, 0x63, 0xbf, 0x7c, 0x10, 0xc4, 0x10, 0x2f,
+ 0x2a, 0xce, 0xd8, 0xea,
+};
+static const struct drbg_kat_no_reseed kat674_t = {
+ 13, kat674_entropyin, kat674_nonce, kat674_persstr,
+ kat674_addin0, kat674_addin1, kat674_retbits
+};
+static const struct drbg_kat kat674 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat674_t
+};
+
+static const unsigned char kat675_entropyin[] = {
+ 0x43, 0x74, 0x96, 0xcc, 0x89, 0x6a, 0x20, 0xdd, 0x6d, 0xbf, 0x33, 0xcd,
+ 0x47, 0x53, 0x2f, 0x99, 0x24, 0xe7, 0x5f, 0x26, 0xe4, 0x3a, 0x37, 0xdb,
+ 0xe9, 0xf4, 0x40, 0xf5, 0xf6, 0x11, 0x36, 0xe2,
+};
+static const unsigned char kat675_nonce[] = {
+ 0x65, 0x40, 0xd6, 0xc5, 0x86, 0xeb, 0x24, 0xd1, 0x64, 0xe3, 0xc5, 0xdb,
+ 0x93, 0x83, 0x82, 0xa0,
+};
+static const unsigned char kat675_persstr[] = {0};
+static const unsigned char kat675_addin0[] = {0};
+static const unsigned char kat675_addin1[] = {0};
+static const unsigned char kat675_retbits[] = {
+ 0x4b, 0x64, 0x8f, 0x49, 0xa1, 0x48, 0x88, 0x05, 0x71, 0xbb, 0xf7, 0x17,
+ 0xab, 0x21, 0x3d, 0x2d, 0x92, 0xfa, 0x1f, 0x2a, 0x69, 0x83, 0x58, 0x4b,
+ 0xc5, 0xf3, 0xdb, 0x21, 0x2e, 0x67, 0x47, 0xc5, 0xee, 0x8a, 0x66, 0x05,
+ 0xe1, 0xbd, 0x14, 0xab, 0x9e, 0xcd, 0xf5, 0x2c, 0x2a, 0xc6, 0x51, 0x88,
+ 0x21, 0xe0, 0xd3, 0x72, 0xae, 0xa5, 0x7e, 0x79, 0xa2, 0x61, 0x7a, 0x5d,
+ 0x43, 0x5c, 0x20, 0xb7,
+};
+static const struct drbg_kat_no_reseed kat675_t = {
+ 14, kat675_entropyin, kat675_nonce, kat675_persstr,
+ kat675_addin0, kat675_addin1, kat675_retbits
+};
+static const struct drbg_kat kat675 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat675_t
+};
+
+static const unsigned char kat676_entropyin[] = {
+ 0x48, 0x1e, 0x50, 0x5b, 0xf7, 0xa3, 0x6f, 0x9d, 0x96, 0x69, 0x0d, 0x49,
+ 0x15, 0x4d, 0x98, 0xd6, 0xa2, 0x47, 0xc1, 0x4a, 0x70, 0x3d, 0xbf, 0xed,
+ 0x7c, 0xf1, 0xb7, 0xa7, 0x1b, 0xee, 0x73, 0x7f,
+};
+static const unsigned char kat676_nonce[] = {
+ 0x70, 0xbd, 0xed, 0xbc, 0x68, 0x25, 0xc4, 0xfe, 0x0a, 0x9f, 0x7e, 0x45,
+ 0x29, 0x0d, 0xdd, 0x51,
+};
+static const unsigned char kat676_persstr[] = {0};
+static const unsigned char kat676_addin0[] = {
+ 0x5b, 0x07, 0x61, 0x0c, 0x2c, 0x94, 0x6e, 0xda, 0x29, 0x75, 0xa2, 0x6d,
+ 0xda, 0xdf, 0x7d, 0x73, 0xe3, 0xd2, 0x87, 0xe9, 0x23, 0xd9, 0xb1, 0xa2,
+ 0xd2, 0x07, 0x07, 0x76, 0xa4, 0x46, 0xd8, 0xe6,
+};
+static const unsigned char kat676_addin1[] = {
+ 0x27, 0x92, 0xa9, 0x88, 0xeb, 0xb2, 0xe7, 0x68, 0xee, 0xe0, 0xd5, 0xc2,
+ 0x63, 0xbc, 0xd7, 0x6a, 0x67, 0x5d, 0x6f, 0x33, 0x9e, 0x5f, 0x1a, 0xb2,
+ 0xca, 0x59, 0x5e, 0x6b, 0x3b, 0x4d, 0x02, 0x4a,
+};
+static const unsigned char kat676_retbits[] = {
+ 0x30, 0x34, 0x48, 0xa3, 0x55, 0xfc, 0x0a, 0x69, 0xa1, 0x30, 0xb6, 0xab,
+ 0x19, 0x49, 0x97, 0xb2, 0x20, 0x97, 0x0b, 0xf6, 0x80, 0x91, 0x49, 0x13,
+ 0xda, 0x90, 0x4e, 0x92, 0x10, 0x9d, 0xee, 0x3d, 0x9f, 0x23, 0x87, 0x11,
+ 0x30, 0xc4, 0x07, 0x04, 0x5c, 0xf4, 0x63, 0xce, 0x78, 0x3a, 0x5d, 0xfa,
+ 0xfd, 0x60, 0x3a, 0x83, 0x84, 0x79, 0x05, 0x73, 0xaf, 0x38, 0x5d, 0x47,
+ 0x9a, 0xcd, 0x72, 0x06,
+};
+static const struct drbg_kat_no_reseed kat676_t = {
+ 0, kat676_entropyin, kat676_nonce, kat676_persstr,
+ kat676_addin0, kat676_addin1, kat676_retbits
+};
+static const struct drbg_kat kat676 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat676_t
+};
+
+static const unsigned char kat677_entropyin[] = {
+ 0xe4, 0xb6, 0x1f, 0x03, 0x62, 0xcc, 0xf3, 0xc1, 0x50, 0x1c, 0x60, 0x93,
+ 0x70, 0xfd, 0x56, 0x05, 0x88, 0xb9, 0xc1, 0xa5, 0x25, 0x95, 0xe0, 0x66,
+ 0xf7, 0x90, 0xf4, 0x35, 0x5b, 0xa1, 0x41, 0x6d,
+};
+static const unsigned char kat677_nonce[] = {
+ 0xae, 0x47, 0x32, 0x1a, 0xb5, 0xff, 0xec, 0x92, 0x7e, 0x54, 0x61, 0x69,
+ 0x61, 0x23, 0xbe, 0x8f,
+};
+static const unsigned char kat677_persstr[] = {0};
+static const unsigned char kat677_addin0[] = {
+ 0xa5, 0x9f, 0x6d, 0x3e, 0xe5, 0xc8, 0x71, 0x14, 0x7e, 0xbc, 0x2d, 0x5f,
+ 0x6e, 0x6c, 0x70, 0xfd, 0x9b, 0x98, 0x5d, 0xa7, 0xf7, 0xdd, 0x04, 0x9c,
+ 0xe1, 0x94, 0x46, 0x2d, 0x9c, 0x83, 0xdf, 0xc6,
+};
+static const unsigned char kat677_addin1[] = {
+ 0x9f, 0xe2, 0xc7, 0xdb, 0x11, 0x36, 0x79, 0x81, 0x47, 0x41, 0x86, 0xd9,
+ 0x22, 0xd9, 0x3e, 0xdf, 0x6a, 0xc7, 0xaa, 0x72, 0xa3, 0xe1, 0x59, 0xf5,
+ 0xc4, 0x0c, 0xcf, 0x90, 0x1d, 0x52, 0x3e, 0x28,
+};
+static const unsigned char kat677_retbits[] = {
+ 0x70, 0xa7, 0x8b, 0x73, 0x03, 0xf9, 0x02, 0xa7, 0x62, 0x21, 0xa4, 0x01,
+ 0xeb, 0xe1, 0x34, 0xa6, 0x31, 0x7c, 0xbe, 0x61, 0x77, 0xd0, 0xb8, 0x27,
+ 0x99, 0x36, 0x0c, 0x49, 0x13, 0xaf, 0xa2, 0xa8, 0xc2, 0xb3, 0x6c, 0x0e,
+ 0x8a, 0x13, 0x58, 0x71, 0xc3, 0xc4, 0x00, 0x09, 0x60, 0xfa, 0xed, 0x37,
+ 0x28, 0xc1, 0xfb, 0xd0, 0x1e, 0xe0, 0xef, 0xc5, 0xc6, 0x29, 0xa0, 0x96,
+ 0x77, 0xc7, 0xa8, 0x50,
+};
+static const struct drbg_kat_no_reseed kat677_t = {
+ 1, kat677_entropyin, kat677_nonce, kat677_persstr,
+ kat677_addin0, kat677_addin1, kat677_retbits
+};
+static const struct drbg_kat kat677 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat677_t
+};
+
+static const unsigned char kat678_entropyin[] = {
+ 0xd7, 0x53, 0x45, 0x7f, 0x99, 0xc1, 0xc6, 0xf1, 0xda, 0x21, 0x1a, 0xa2,
+ 0xa5, 0xef, 0xd0, 0xe8, 0x80, 0xae, 0x06, 0x89, 0xe8, 0xae, 0x29, 0x6c,
+ 0xec, 0x3b, 0x1b, 0x6c, 0x8f, 0x81, 0x61, 0x89,
+};
+static const unsigned char kat678_nonce[] = {
+ 0xf6, 0x5f, 0x7b, 0x22, 0x2b, 0x51, 0x8e, 0x00, 0x72, 0x10, 0x8f, 0xbe,
+ 0x99, 0xb6, 0x20, 0xe7,
+};
+static const unsigned char kat678_persstr[] = {0};
+static const unsigned char kat678_addin0[] = {
+ 0x6d, 0x58, 0x7c, 0xaf, 0xec, 0x41, 0x39, 0x76, 0x6e, 0xdf, 0xf5, 0xac,
+ 0xe6, 0xb6, 0x3d, 0x96, 0x92, 0x86, 0x2c, 0x99, 0xbf, 0xcd, 0xe6, 0x04,
+ 0xfe, 0xde, 0xd6, 0xd9, 0xf6, 0xb3, 0xb4, 0x70,
+};
+static const unsigned char kat678_addin1[] = {
+ 0xdb, 0x18, 0x4a, 0xe8, 0xb3, 0xf7, 0x3a, 0xa2, 0x2b, 0x63, 0xdc, 0xc2,
+ 0xd2, 0x1f, 0x14, 0xb9, 0xfd, 0x17, 0xae, 0xf3, 0xa9, 0x6b, 0xa5, 0xf9,
+ 0x82, 0xca, 0xaa, 0x0c, 0x16, 0x69, 0x03, 0x71,
+};
+static const unsigned char kat678_retbits[] = {
+ 0xeb, 0x5e, 0x5c, 0xa3, 0xc8, 0x27, 0x57, 0x6e, 0x89, 0x7e, 0x26, 0x84,
+ 0xe2, 0x03, 0x75, 0x3b, 0xb1, 0xa3, 0xba, 0xcb, 0x7a, 0x1d, 0x55, 0x17,
+ 0xc6, 0x18, 0x5a, 0xdb, 0x9d, 0xdb, 0xed, 0xa8, 0x68, 0x4f, 0x6c, 0xad,
+ 0x3d, 0xde, 0x64, 0x17, 0x10, 0x67, 0x04, 0xfa, 0x29, 0xf8, 0xa1, 0x02,
+ 0x72, 0x5b, 0x7d, 0x80, 0xee, 0x2c, 0xac, 0xa1, 0x4c, 0x0c, 0x4c, 0x87,
+ 0x3c, 0x7d, 0x64, 0x6e,
+};
+static const struct drbg_kat_no_reseed kat678_t = {
+ 2, kat678_entropyin, kat678_nonce, kat678_persstr,
+ kat678_addin0, kat678_addin1, kat678_retbits
+};
+static const struct drbg_kat kat678 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat678_t
+};
+
+static const unsigned char kat679_entropyin[] = {
+ 0x0e, 0x99, 0xc1, 0x46, 0x6a, 0xfb, 0x22, 0xf0, 0xe0, 0x1f, 0x7e, 0x69,
+ 0x19, 0xa8, 0x75, 0x95, 0x9c, 0x3d, 0x37, 0xc7, 0x1b, 0xca, 0x6d, 0x5d,
+ 0x59, 0xe0, 0xec, 0xee, 0xe4, 0x91, 0x86, 0xcd,
+};
+static const unsigned char kat679_nonce[] = {
+ 0x95, 0xa8, 0xdd, 0x75, 0xb0, 0x76, 0x45, 0x0e, 0xa6, 0xf8, 0xa7, 0x02,
+ 0x07, 0xfb, 0x15, 0x04,
+};
+static const unsigned char kat679_persstr[] = {0};
+static const unsigned char kat679_addin0[] = {
+ 0x99, 0x92, 0xb0, 0x88, 0xe9, 0xc7, 0x6f, 0x49, 0xdd, 0xc5, 0x45, 0x40,
+ 0x9d, 0x84, 0x91, 0xa9, 0x04, 0x57, 0x57, 0x0b, 0x3d, 0x29, 0xae, 0x69,
+ 0xe3, 0xcc, 0x18, 0x97, 0xe9, 0x8d, 0x66, 0xfc,
+};
+static const unsigned char kat679_addin1[] = {
+ 0xc5, 0xee, 0xfd, 0xfb, 0x46, 0x56, 0xd3, 0xf9, 0x88, 0xca, 0x19, 0xef,
+ 0xff, 0xee, 0xbe, 0xc7, 0x81, 0xa1, 0xe1, 0xb1, 0xa2, 0x99, 0x7c, 0x3f,
+ 0xb7, 0x6e, 0x1d, 0x0d, 0xac, 0xda, 0xac, 0x8e,
+};
+static const unsigned char kat679_retbits[] = {
+ 0x4b, 0x0d, 0x76, 0x47, 0xbe, 0xb9, 0x59, 0xf7, 0x12, 0xc1, 0x01, 0xc4,
+ 0x07, 0xa2, 0x5f, 0xf0, 0x45, 0x7f, 0xa8, 0x28, 0x7f, 0x25, 0xc5, 0xf2,
+ 0xdb, 0x97, 0x11, 0x5d, 0x4c, 0xb8, 0xcc, 0x35, 0x39, 0xc5, 0x0e, 0x6d,
+ 0x51, 0xc5, 0xf3, 0xa7, 0x25, 0xb4, 0x3e, 0xfb, 0x0f, 0xea, 0x33, 0x95,
+ 0x29, 0x5c, 0xbb, 0xac, 0x1e, 0x91, 0x9d, 0x41, 0xff, 0xc9, 0xf4, 0xaf,
+ 0xf8, 0x2e, 0x8f, 0x7e,
+};
+static const struct drbg_kat_no_reseed kat679_t = {
+ 3, kat679_entropyin, kat679_nonce, kat679_persstr,
+ kat679_addin0, kat679_addin1, kat679_retbits
+};
+static const struct drbg_kat kat679 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat679_t
+};
+
+static const unsigned char kat680_entropyin[] = {
+ 0x2b, 0xc4, 0x49, 0xcb, 0xc2, 0x23, 0x75, 0x6c, 0x12, 0x03, 0x54, 0x64,
+ 0x9a, 0xdc, 0x79, 0xd0, 0xb5, 0x3a, 0xef, 0x53, 0x43, 0xa6, 0x19, 0x00,
+ 0xb2, 0x54, 0x23, 0x5c, 0xb6, 0x15, 0x24, 0xba,
+};
+static const unsigned char kat680_nonce[] = {
+ 0x6a, 0xa9, 0xdd, 0x15, 0x7d, 0xbb, 0x1b, 0xbf, 0x41, 0x85, 0xe1, 0xcc,
+ 0x2c, 0xa3, 0xb5, 0x53,
+};
+static const unsigned char kat680_persstr[] = {0};
+static const unsigned char kat680_addin0[] = {
+ 0xc0, 0x7d, 0x22, 0xdb, 0x1a, 0xdb, 0x41, 0xd8, 0xae, 0xc8, 0x46, 0xff,
+ 0xaf, 0x44, 0xcc, 0x83, 0x3e, 0xa1, 0xe2, 0x6d, 0x5d, 0x07, 0x18, 0xa5,
+ 0x16, 0x9f, 0xa0, 0x69, 0xd6, 0x3e, 0xdc, 0x5c,
+};
+static const unsigned char kat680_addin1[] = {
+ 0xd4, 0x1f, 0x91, 0xb2, 0x02, 0x89, 0xdf, 0xa4, 0x9c, 0x2a, 0x33, 0x52,
+ 0x20, 0x04, 0x27, 0xd4, 0x57, 0x2e, 0x98, 0x13, 0x38, 0x11, 0x27, 0x32,
+ 0x4f, 0x49, 0x80, 0x7b, 0x47, 0x54, 0x17, 0x48,
+};
+static const unsigned char kat680_retbits[] = {
+ 0x82, 0x0d, 0xb9, 0xb7, 0xef, 0x67, 0x8c, 0xbf, 0xa8, 0x44, 0x9c, 0xe3,
+ 0xdf, 0xf4, 0xb7, 0x68, 0x36, 0x20, 0x9a, 0xb8, 0x8e, 0xd8, 0xdc, 0xa3,
+ 0x39, 0x08, 0x4e, 0x46, 0xd1, 0xbf, 0xbd, 0x0a, 0xa5, 0x53, 0xd4, 0x10,
+ 0x09, 0xd9, 0x46, 0x59, 0xe6, 0x10, 0xac, 0xa9, 0xb8, 0xe1, 0xeb, 0xe2,
+ 0x35, 0xb6, 0x43, 0x7f, 0x36, 0x02, 0x71, 0xed, 0xc5, 0xc0, 0x5b, 0xae,
+ 0x2a, 0x63, 0xfd, 0xc3,
+};
+static const struct drbg_kat_no_reseed kat680_t = {
+ 4, kat680_entropyin, kat680_nonce, kat680_persstr,
+ kat680_addin0, kat680_addin1, kat680_retbits
+};
+static const struct drbg_kat kat680 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat680_t
+};
+
+static const unsigned char kat681_entropyin[] = {
+ 0x3f, 0xbe, 0xc8, 0xe6, 0x8c, 0xaa, 0x29, 0x1d, 0x44, 0xb6, 0x5e, 0xf6,
+ 0x22, 0x81, 0x8f, 0x80, 0xad, 0x29, 0x5b, 0xeb, 0x06, 0x7d, 0x78, 0x5f,
+ 0xae, 0x69, 0x30, 0xec, 0x87, 0x17, 0x51, 0x7a,
+};
+static const unsigned char kat681_nonce[] = {
+ 0x8a, 0x3b, 0xb4, 0xd1, 0x5f, 0xf0, 0xb8, 0x43, 0x7b, 0xe6, 0xab, 0xc0,
+ 0x03, 0xaf, 0x0f, 0xa6,
+};
+static const unsigned char kat681_persstr[] = {0};
+static const unsigned char kat681_addin0[] = {
+ 0x6c, 0x8c, 0x9c, 0x35, 0x85, 0x3e, 0x23, 0x82, 0x12, 0xa8, 0x33, 0x59,
+ 0xb5, 0xe0, 0x18, 0x52, 0xb6, 0xec, 0xc3, 0x4d, 0xfe, 0x7a, 0x25, 0x8f,
+ 0x51, 0x5c, 0x5d, 0x70, 0x58, 0xbb, 0x02, 0x86,
+};
+static const unsigned char kat681_addin1[] = {
+ 0x20, 0x7e, 0xc2, 0x1f, 0x30, 0x51, 0xe0, 0x39, 0x59, 0xfd, 0x2d, 0x44,
+ 0x74, 0x76, 0xb8, 0x93, 0xdb, 0xa1, 0xfe, 0xf8, 0xfe, 0x42, 0x26, 0x32,
+ 0xfe, 0xef, 0x23, 0xe3, 0xef, 0x8a, 0x02, 0x2a,
+};
+static const unsigned char kat681_retbits[] = {
+ 0xb9, 0x43, 0x5c, 0x54, 0x9a, 0x05, 0x05, 0x15, 0xfd, 0xdc, 0xa4, 0x54,
+ 0xf6, 0x02, 0xfd, 0xcd, 0x17, 0xfc, 0xb8, 0x12, 0xbe, 0x0e, 0x1c, 0x64,
+ 0x0f, 0xf8, 0x59, 0xe1, 0x17, 0x2c, 0x2a, 0xb0, 0x44, 0x91, 0xdb, 0x15,
+ 0x28, 0x19, 0xfa, 0x9a, 0x33, 0xfc, 0xb1, 0xe6, 0x6d, 0xc8, 0x21, 0x1c,
+ 0x8f, 0x36, 0x76, 0xa2, 0x81, 0x03, 0xb2, 0x03, 0xbd, 0x2d, 0x0a, 0x62,
+ 0x98, 0xbc, 0xc1, 0x67,
+};
+static const struct drbg_kat_no_reseed kat681_t = {
+ 5, kat681_entropyin, kat681_nonce, kat681_persstr,
+ kat681_addin0, kat681_addin1, kat681_retbits
+};
+static const struct drbg_kat kat681 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat681_t
+};
+
+static const unsigned char kat682_entropyin[] = {
+ 0x55, 0xfa, 0xfc, 0x70, 0xde, 0xeb, 0xba, 0x97, 0x30, 0x6d, 0xa5, 0xb7,
+ 0x44, 0xff, 0x4e, 0x48, 0x0e, 0x3c, 0xc2, 0xbc, 0xc8, 0xfa, 0x20, 0xff,
+ 0xd1, 0x7c, 0xa8, 0x51, 0x36, 0x8b, 0xf5, 0x64,
+};
+static const unsigned char kat682_nonce[] = {
+ 0x40, 0x8f, 0x2d, 0xf2, 0x7e, 0x5b, 0xe6, 0x8d, 0x25, 0x48, 0x16, 0x68,
+ 0x7a, 0x63, 0xa4, 0x19,
+};
+static const unsigned char kat682_persstr[] = {0};
+static const unsigned char kat682_addin0[] = {
+ 0x64, 0x30, 0x4f, 0x3d, 0xf4, 0x48, 0x6c, 0xf6, 0xf0, 0x12, 0x25, 0x2f,
+ 0x9c, 0xa9, 0xc1, 0x71, 0x04, 0xab, 0xe4, 0x86, 0x3d, 0x1e, 0x3d, 0xb5,
+ 0xab, 0x81, 0x74, 0x76, 0xd4, 0x30, 0x05, 0xa6,
+};
+static const unsigned char kat682_addin1[] = {
+ 0xfd, 0xe8, 0x74, 0x9c, 0x2b, 0xef, 0xe8, 0xb0, 0x6c, 0x79, 0xcb, 0xc1,
+ 0x60, 0xcc, 0xfe, 0x95, 0x79, 0xa7, 0xe7, 0x62, 0x55, 0x0c, 0xb8, 0x22,
+ 0x17, 0x75, 0xa5, 0x4e, 0x98, 0x2f, 0xb7, 0x4c,
+};
+static const unsigned char kat682_retbits[] = {
+ 0x70, 0x9a, 0xa6, 0x47, 0xef, 0xe0, 0xe6, 0x8d, 0xfa, 0xdf, 0x24, 0x37,
+ 0xea, 0x75, 0x56, 0x38, 0x1e, 0xa4, 0x30, 0x90, 0x94, 0xc1, 0x04, 0xcd,
+ 0xb8, 0xe4, 0xbc, 0xc3, 0x1c, 0x74, 0x71, 0x6f, 0xe9, 0xee, 0xa2, 0x32,
+ 0x15, 0x81, 0x70, 0xfa, 0x97, 0x8a, 0x7c, 0x05, 0x81, 0x3f, 0x25, 0x92,
+ 0xb3, 0x52, 0x2e, 0x5c, 0x44, 0xf2, 0x52, 0x6e, 0x76, 0x4e, 0x66, 0xe3,
+ 0x12, 0xec, 0xd4, 0x9b,
+};
+static const struct drbg_kat_no_reseed kat682_t = {
+ 6, kat682_entropyin, kat682_nonce, kat682_persstr,
+ kat682_addin0, kat682_addin1, kat682_retbits
+};
+static const struct drbg_kat kat682 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat682_t
+};
+
+static const unsigned char kat683_entropyin[] = {
+ 0x57, 0x3a, 0x24, 0x3d, 0x3b, 0x38, 0xfb, 0x8d, 0x6f, 0xcc, 0xda, 0x58,
+ 0x23, 0xc1, 0x5d, 0x64, 0x17, 0x68, 0x05, 0x70, 0x36, 0x64, 0x6f, 0xa9,
+ 0xa4, 0x97, 0x5a, 0x73, 0x89, 0x08, 0xa1, 0x64,
+};
+static const unsigned char kat683_nonce[] = {
+ 0x3b, 0xfe, 0xad, 0x78, 0x35, 0x22, 0xf2, 0x56, 0xa2, 0xf7, 0xbf, 0x07,
+ 0x6b, 0x21, 0xf7, 0x41,
+};
+static const unsigned char kat683_persstr[] = {0};
+static const unsigned char kat683_addin0[] = {
+ 0x65, 0xbd, 0x02, 0x59, 0x4d, 0x57, 0xc4, 0xaa, 0xf8, 0xd1, 0x19, 0xad,
+ 0xea, 0xdb, 0x8a, 0xce, 0x86, 0x69, 0x99, 0x14, 0x6a, 0x67, 0xbb, 0x85,
+ 0x87, 0x8d, 0x57, 0x26, 0x95, 0xce, 0x35, 0x4a,
+};
+static const unsigned char kat683_addin1[] = {
+ 0x60, 0x52, 0x4f, 0xb2, 0x37, 0x31, 0xc3, 0x0c, 0x3d, 0x15, 0x96, 0xc9,
+ 0xf3, 0xa4, 0x5c, 0xfc, 0x0d, 0xa8, 0x19, 0x8a, 0xa0, 0x96, 0x76, 0x13,
+ 0xb3, 0xba, 0xc6, 0xbe, 0x7f, 0x48, 0x5d, 0x95,
+};
+static const unsigned char kat683_retbits[] = {
+ 0x7a, 0xe3, 0x8a, 0x83, 0xc1, 0x12, 0x61, 0xcb, 0x22, 0xa5, 0x21, 0xcd,
+ 0xcc, 0x31, 0x97, 0xd8, 0xd8, 0x11, 0xb8, 0xca, 0xd9, 0x07, 0x1e, 0xad,
+ 0x38, 0x2e, 0x5b, 0xc2, 0x53, 0x03, 0x0c, 0x9c, 0xd4, 0x16, 0x52, 0x15,
+ 0x71, 0x5a, 0x8a, 0xb0, 0xaf, 0x1c, 0x5f, 0x91, 0x32, 0x03, 0x99, 0xcd,
+ 0x1d, 0x9b, 0x39, 0x16, 0x22, 0x0c, 0x78, 0xc5, 0x86, 0xe9, 0x66, 0x51,
+ 0xbc, 0x1d, 0x80, 0xba,
+};
+static const struct drbg_kat_no_reseed kat683_t = {
+ 7, kat683_entropyin, kat683_nonce, kat683_persstr,
+ kat683_addin0, kat683_addin1, kat683_retbits
+};
+static const struct drbg_kat kat683 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat683_t
+};
+
+static const unsigned char kat684_entropyin[] = {
+ 0xcf, 0x81, 0xdf, 0x4e, 0xba, 0x87, 0xea, 0x2e, 0x02, 0x6e, 0xbc, 0x6c,
+ 0xb9, 0x7d, 0x3d, 0xd6, 0xd3, 0xfc, 0xab, 0x6f, 0x4d, 0x0c, 0x52, 0x0a,
+ 0x8f, 0xc5, 0x3d, 0xca, 0x99, 0xce, 0x84, 0x90,
+};
+static const unsigned char kat684_nonce[] = {
+ 0xfd, 0xef, 0x88, 0xd8, 0x7d, 0xb5, 0x8b, 0xc8, 0x39, 0x7e, 0x98, 0x8c,
+ 0x83, 0x4a, 0x89, 0x58,
+};
+static const unsigned char kat684_persstr[] = {0};
+static const unsigned char kat684_addin0[] = {
+ 0x7b, 0xf9, 0xc0, 0x7b, 0xcc, 0xd7, 0xd5, 0x07, 0x73, 0x32, 0x4d, 0xcd,
+ 0x87, 0x6b, 0x58, 0xf6, 0x56, 0xc6, 0xfd, 0xfe, 0xa5, 0xae, 0xf1, 0xa9,
+ 0xeb, 0x77, 0x02, 0xd6, 0xed, 0x17, 0x5a, 0x49,
+};
+static const unsigned char kat684_addin1[] = {
+ 0x07, 0x55, 0xe1, 0x48, 0x49, 0x35, 0x39, 0x43, 0x8c, 0x36, 0xfb, 0x2a,
+ 0xbc, 0xeb, 0xc3, 0x45, 0xda, 0x73, 0xea, 0xf0, 0x0f, 0x75, 0xda, 0x1c,
+ 0xda, 0x13, 0xca, 0x68, 0x76, 0x79, 0x4c, 0xb5,
+};
+static const unsigned char kat684_retbits[] = {
+ 0x4e, 0x83, 0x60, 0xe6, 0xfc, 0xdc, 0xcb, 0x12, 0xac, 0x6e, 0xe7, 0xf0,
+ 0x22, 0xf7, 0xe0, 0x6f, 0x11, 0x8a, 0x75, 0xf6, 0x1c, 0x8a, 0xa1, 0x97,
+ 0x65, 0x6c, 0x93, 0x46, 0x3b, 0x86, 0x66, 0x2e, 0xeb, 0x32, 0x21, 0x4f,
+ 0x37, 0x1c, 0x8d, 0xce, 0x06, 0xab, 0x12, 0x10, 0xf1, 0xf5, 0x4f, 0x9d,
+ 0xb3, 0xb6, 0x3e, 0xee, 0xd7, 0xef, 0x6b, 0xa7, 0x32, 0x01, 0x92, 0x26,
+ 0x4a, 0x79, 0x20, 0xce,
+};
+static const struct drbg_kat_no_reseed kat684_t = {
+ 8, kat684_entropyin, kat684_nonce, kat684_persstr,
+ kat684_addin0, kat684_addin1, kat684_retbits
+};
+static const struct drbg_kat kat684 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat684_t
+};
+
+static const unsigned char kat685_entropyin[] = {
+ 0x98, 0xfe, 0xab, 0x86, 0x0b, 0xfe, 0xd1, 0x93, 0x41, 0xed, 0x13, 0x64,
+ 0xd4, 0xab, 0xce, 0xac, 0x30, 0x04, 0x32, 0x62, 0x99, 0x89, 0x53, 0x30,
+ 0x40, 0x5f, 0x11, 0x5f, 0xab, 0x03, 0x18, 0x16,
+};
+static const unsigned char kat685_nonce[] = {
+ 0x1a, 0xfa, 0xfc, 0x20, 0x9a, 0x77, 0x6b, 0xd0, 0x14, 0x10, 0x84, 0x8e,
+ 0x5f, 0xd0, 0x19, 0xd1,
+};
+static const unsigned char kat685_persstr[] = {0};
+static const unsigned char kat685_addin0[] = {
+ 0x47, 0x50, 0x09, 0x94, 0x61, 0x20, 0xa2, 0xa2, 0xdf, 0xc1, 0x06, 0xcf,
+ 0x4b, 0x9f, 0x6f, 0x40, 0xa9, 0xb0, 0xc4, 0x1b, 0x61, 0x6b, 0xed, 0x3e,
+ 0x53, 0x6c, 0x9e, 0xee, 0x56, 0xe1, 0x70, 0x43,
+};
+static const unsigned char kat685_addin1[] = {
+ 0xef, 0xf6, 0xd5, 0x39, 0x2d, 0x54, 0x19, 0xf6, 0xa8, 0xb4, 0x25, 0xea,
+ 0x85, 0x17, 0x19, 0x0c, 0xad, 0x41, 0x97, 0x09, 0x3a, 0xc6, 0x35, 0x71,
+ 0xf0, 0xd3, 0xc3, 0x3f, 0x70, 0x91, 0x63, 0xc2,
+};
+static const unsigned char kat685_retbits[] = {
+ 0x06, 0x10, 0xe2, 0x8e, 0x8a, 0xf5, 0x7a, 0x29, 0x91, 0x6d, 0x8a, 0xee,
+ 0x19, 0xda, 0xda, 0xf0, 0xba, 0x6a, 0xa8, 0xf5, 0x0f, 0xbf, 0x85, 0x0f,
+ 0x70, 0x2e, 0x59, 0xb4, 0x66, 0x02, 0x5a, 0xca, 0x9b, 0x62, 0xfe, 0x18,
+ 0x6d, 0x53, 0x6e, 0x1a, 0x55, 0xc6, 0x71, 0xdf, 0xe2, 0xb1, 0x58, 0xbc,
+ 0xa6, 0x5a, 0x1c, 0xf6, 0x81, 0xa8, 0x77, 0xcd, 0x5f, 0x0a, 0x4b, 0x77,
+ 0x98, 0xed, 0x37, 0x3f,
+};
+static const struct drbg_kat_no_reseed kat685_t = {
+ 9, kat685_entropyin, kat685_nonce, kat685_persstr,
+ kat685_addin0, kat685_addin1, kat685_retbits
+};
+static const struct drbg_kat kat685 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat685_t
+};
+
+static const unsigned char kat686_entropyin[] = {
+ 0x12, 0xcc, 0xa9, 0xba, 0xd0, 0x66, 0x1f, 0x02, 0xdb, 0x43, 0x8b, 0xaa,
+ 0xbd, 0xaa, 0x29, 0x41, 0xcf, 0x3d, 0xed, 0xde, 0xdb, 0x09, 0xf5, 0x30,
+ 0xce, 0x6b, 0xff, 0xf2, 0x78, 0xb7, 0x9b, 0x23,
+};
+static const unsigned char kat686_nonce[] = {
+ 0xd7, 0x16, 0xa1, 0x90, 0xac, 0x3f, 0x0f, 0x54, 0x65, 0x44, 0x79, 0x93,
+ 0xa9, 0xe2, 0x04, 0x97,
+};
+static const unsigned char kat686_persstr[] = {0};
+static const unsigned char kat686_addin0[] = {
+ 0x88, 0x1f, 0xb6, 0x8d, 0x66, 0xb6, 0x9f, 0x4b, 0xde, 0x4a, 0x3a, 0xd1,
+ 0xf1, 0x50, 0xbb, 0xac, 0xb0, 0x87, 0xda, 0x23, 0x2e, 0x1f, 0x4d, 0x7b,
+ 0xe3, 0x96, 0xf1, 0xda, 0x74, 0x63, 0xcb, 0x16,
+};
+static const unsigned char kat686_addin1[] = {
+ 0x5b, 0x1d, 0x23, 0x0d, 0xb8, 0x7d, 0x2a, 0xa1, 0xf3, 0xe1, 0x10, 0xf9,
+ 0xc0, 0xf9, 0x13, 0xec, 0xf7, 0x8d, 0x0a, 0xac, 0xec, 0x0f, 0x47, 0xc3,
+ 0x26, 0x5f, 0xe0, 0xe6, 0x09, 0xec, 0x7a, 0x0b,
+};
+static const unsigned char kat686_retbits[] = {
+ 0xe9, 0xdd, 0x20, 0x8e, 0x8f, 0x0f, 0x6f, 0x3b, 0xa2, 0x1a, 0x9b, 0x67,
+ 0x92, 0x84, 0x8e, 0x95, 0xd7, 0xee, 0x5a, 0x73, 0xfb, 0xc7, 0x19, 0xef,
+ 0x9b, 0x5c, 0xdc, 0xff, 0x36, 0x53, 0x0d, 0x3e, 0xc6, 0xf7, 0xca, 0xdf,
+ 0xc5, 0x55, 0x21, 0xc1, 0x62, 0xcf, 0xfe, 0xeb, 0x91, 0x7c, 0x72, 0xfa,
+ 0xe3, 0x41, 0xe5, 0xa3, 0xf7, 0xc8, 0xd5, 0xcb, 0x5b, 0x45, 0x08, 0x01,
+ 0x15, 0x57, 0xe6, 0x39,
+};
+static const struct drbg_kat_no_reseed kat686_t = {
+ 10, kat686_entropyin, kat686_nonce, kat686_persstr,
+ kat686_addin0, kat686_addin1, kat686_retbits
+};
+static const struct drbg_kat kat686 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat686_t
+};
+
+static const unsigned char kat687_entropyin[] = {
+ 0x99, 0xe3, 0x96, 0xaf, 0xcf, 0x80, 0x7e, 0x6d, 0xfa, 0x0b, 0x30, 0x28,
+ 0x72, 0xeb, 0x5d, 0xe0, 0xaa, 0x74, 0xb0, 0x59, 0x00, 0xd1, 0xa0, 0x6e,
+ 0xe2, 0xc1, 0xc4, 0xd3, 0xaf, 0x53, 0x5f, 0xca,
+};
+static const unsigned char kat687_nonce[] = {
+ 0x75, 0xa2, 0xf6, 0xed, 0xf8, 0x55, 0x71, 0xd1, 0x9c, 0x03, 0x29, 0x65,
+ 0xd2, 0x60, 0x3f, 0xc9,
+};
+static const unsigned char kat687_persstr[] = {0};
+static const unsigned char kat687_addin0[] = {
+ 0x58, 0x1e, 0x78, 0xad, 0xbf, 0x5d, 0x9a, 0x66, 0x8d, 0x01, 0x3b, 0x7f,
+ 0xf9, 0x04, 0x61, 0x91, 0xe4, 0x34, 0x47, 0x7f, 0x3c, 0x3f, 0xba, 0xb4,
+ 0x47, 0x87, 0x6f, 0xe8, 0x7f, 0x2c, 0x15, 0x7e,
+};
+static const unsigned char kat687_addin1[] = {
+ 0x19, 0xf0, 0x4c, 0x1d, 0xde, 0x5c, 0x2e, 0xc3, 0xec, 0xa9, 0x06, 0xe7,
+ 0xba, 0xc8, 0xd8, 0xd3, 0x49, 0xb7, 0xca, 0x49, 0xca, 0x5d, 0x7d, 0xe1,
+ 0xf2, 0x26, 0xdd, 0xd0, 0x4c, 0x73, 0xdf, 0x1e,
+};
+static const unsigned char kat687_retbits[] = {
+ 0xb8, 0xfc, 0xf9, 0x0d, 0xd4, 0x71, 0x44, 0x01, 0x97, 0x05, 0xe6, 0x73,
+ 0xcd, 0xca, 0x26, 0x14, 0x58, 0x86, 0x6f, 0xa5, 0x15, 0x76, 0x0b, 0xc2,
+ 0x48, 0x8c, 0xa4, 0x03, 0x30, 0x9b, 0xa6, 0x3d, 0x17, 0x83, 0x69, 0x90,
+ 0xb6, 0x1a, 0x20, 0x17, 0x78, 0x61, 0x96, 0xd7, 0x0f, 0x65, 0xf3, 0xc8,
+ 0x0f, 0x5f, 0x9f, 0xbd, 0x4d, 0x6b, 0xed, 0xe8, 0x82, 0xde, 0xa5, 0x92,
+ 0xd1, 0x59, 0x86, 0x00,
+};
+static const struct drbg_kat_no_reseed kat687_t = {
+ 11, kat687_entropyin, kat687_nonce, kat687_persstr,
+ kat687_addin0, kat687_addin1, kat687_retbits
+};
+static const struct drbg_kat kat687 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat687_t
+};
+
+static const unsigned char kat688_entropyin[] = {
+ 0xe2, 0x61, 0x43, 0x5c, 0x33, 0x84, 0x29, 0x42, 0x5d, 0x54, 0x91, 0xf7,
+ 0xd8, 0xf5, 0x4c, 0xa9, 0xd5, 0x08, 0x24, 0x43, 0x85, 0x8f, 0x46, 0x37,
+ 0x5f, 0xb2, 0xce, 0x80, 0x23, 0x50, 0x96, 0xb7,
+};
+static const unsigned char kat688_nonce[] = {
+ 0x8d, 0x92, 0x02, 0x02, 0x45, 0xc4, 0x15, 0x90, 0xe3, 0x60, 0x51, 0xa5,
+ 0x7f, 0xb1, 0x2c, 0x04,
+};
+static const unsigned char kat688_persstr[] = {0};
+static const unsigned char kat688_addin0[] = {
+ 0x6c, 0xfe, 0x2d, 0xc4, 0x5a, 0x88, 0xf0, 0x9c, 0xf7, 0x6e, 0x6c, 0xea,
+ 0x11, 0xee, 0x5b, 0xc5, 0x6b, 0x21, 0x91, 0x47, 0x03, 0x9a, 0x13, 0xb1,
+ 0xa7, 0xfc, 0x99, 0xae, 0x36, 0xf5, 0x88, 0x80,
+};
+static const unsigned char kat688_addin1[] = {
+ 0xbb, 0x81, 0x12, 0xe5, 0x00, 0x47, 0x57, 0xc0, 0xab, 0x45, 0xba, 0x23,
+ 0x25, 0x73, 0x59, 0x19, 0xf2, 0x14, 0x1f, 0x9c, 0x6d, 0x60, 0xe2, 0x07,
+ 0x84, 0xa7, 0x2e, 0xf7, 0xab, 0x98, 0xd4, 0x56,
+};
+static const unsigned char kat688_retbits[] = {
+ 0x43, 0x1d, 0xf7, 0x65, 0xc4, 0x9d, 0xa3, 0xb4, 0x1e, 0x72, 0xb6, 0x4a,
+ 0xf2, 0x60, 0xe2, 0x85, 0xf1, 0x89, 0x7a, 0x59, 0x4d, 0x90, 0x7e, 0x9a,
+ 0x41, 0xb6, 0xbe, 0xe0, 0xca, 0x69, 0xc9, 0x13, 0x31, 0x47, 0x5f, 0x95,
+ 0xb2, 0x04, 0x07, 0xfe, 0x77, 0x7f, 0xcd, 0xef, 0x21, 0x74, 0xaa, 0xf4,
+ 0x7c, 0x4e, 0x7b, 0x8b, 0xfb, 0x3f, 0x3e, 0x9b, 0x5f, 0x52, 0x46, 0x84,
+ 0x66, 0xba, 0x9a, 0xab,
+};
+static const struct drbg_kat_no_reseed kat688_t = {
+ 12, kat688_entropyin, kat688_nonce, kat688_persstr,
+ kat688_addin0, kat688_addin1, kat688_retbits
+};
+static const struct drbg_kat kat688 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat688_t
+};
+
+static const unsigned char kat689_entropyin[] = {
+ 0x80, 0xe7, 0xcb, 0x47, 0x50, 0x00, 0x12, 0xde, 0x07, 0xf6, 0x55, 0x79,
+ 0x7b, 0x24, 0x83, 0x05, 0xe2, 0x17, 0x20, 0xc6, 0xdf, 0xfa, 0x44, 0xc0,
+ 0x96, 0xde, 0xe7, 0xac, 0x84, 0x06, 0x0f, 0x43,
+};
+static const unsigned char kat689_nonce[] = {
+ 0x7c, 0x21, 0xb1, 0x20, 0x32, 0xc2, 0xbb, 0x4a, 0x9c, 0x13, 0x64, 0xbe,
+ 0x63, 0x4b, 0x66, 0x5f,
+};
+static const unsigned char kat689_persstr[] = {0};
+static const unsigned char kat689_addin0[] = {
+ 0xb3, 0x03, 0xe2, 0xd5, 0x6a, 0x5d, 0xff, 0x48, 0xda, 0x4e, 0xf1, 0xc7,
+ 0xe8, 0x44, 0x2a, 0xf2, 0xa1, 0x49, 0xa3, 0x89, 0x0f, 0x35, 0x26, 0xbd,
+ 0xd6, 0x61, 0x8f, 0xce, 0xae, 0xab, 0x32, 0xbe,
+};
+static const unsigned char kat689_addin1[] = {
+ 0xe1, 0xef, 0x53, 0xff, 0x06, 0x06, 0x11, 0x4f, 0x7b, 0x88, 0x2e, 0xb7,
+ 0xf5, 0x20, 0x7a, 0xb9, 0x64, 0xc8, 0xce, 0x7a, 0xdf, 0xb9, 0xf6, 0x31,
+ 0xb7, 0xaa, 0x74, 0xa2, 0x31, 0x27, 0xf3, 0x53,
+};
+static const unsigned char kat689_retbits[] = {
+ 0x42, 0x02, 0x42, 0xb4, 0x99, 0x47, 0x75, 0xc8, 0x23, 0x93, 0x80, 0x8c,
+ 0xc1, 0x70, 0x13, 0x16, 0x25, 0xfd, 0xf8, 0xba, 0x10, 0xc9, 0xc8, 0xa8,
+ 0xbc, 0x33, 0x59, 0x16, 0x44, 0x1a, 0x80, 0x63, 0x84, 0x3a, 0x4a, 0x8e,
+ 0x53, 0xd0, 0x0f, 0x1a, 0x38, 0xbe, 0x1f, 0x7b, 0xeb, 0x94, 0x65, 0x28,
+ 0x2c, 0xcb, 0x9f, 0x47, 0xa4, 0x6d, 0x99, 0xed, 0x67, 0xa9, 0x86, 0x86,
+ 0xa1, 0xc1, 0x1c, 0x3b,
+};
+static const struct drbg_kat_no_reseed kat689_t = {
+ 13, kat689_entropyin, kat689_nonce, kat689_persstr,
+ kat689_addin0, kat689_addin1, kat689_retbits
+};
+static const struct drbg_kat kat689 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat689_t
+};
+
+static const unsigned char kat690_entropyin[] = {
+ 0x00, 0xaf, 0x19, 0x87, 0x21, 0x07, 0x56, 0x57, 0x89, 0xd4, 0x07, 0xaf,
+ 0x38, 0x1f, 0x02, 0xef, 0x00, 0x8b, 0xee, 0x1f, 0x20, 0xdd, 0x69, 0x5b,
+ 0xc0, 0x0c, 0x58, 0xaf, 0xc7, 0xbb, 0x7e, 0xdf,
+};
+static const unsigned char kat690_nonce[] = {
+ 0x13, 0x16, 0x02, 0x03, 0x23, 0x0f, 0xfd, 0xd3, 0x41, 0x71, 0x64, 0xae,
+ 0xe1, 0xcd, 0x87, 0x64,
+};
+static const unsigned char kat690_persstr[] = {0};
+static const unsigned char kat690_addin0[] = {
+ 0xfd, 0x8a, 0xa4, 0x82, 0x27, 0x23, 0x29, 0x1d, 0x4c, 0x46, 0x71, 0x6a,
+ 0xc5, 0x60, 0x68, 0x4f, 0x8f, 0xa6, 0x70, 0xa3, 0xd0, 0xec, 0xcc, 0x07,
+ 0xa5, 0xa3, 0x33, 0x5f, 0x13, 0x16, 0x83, 0x57,
+};
+static const unsigned char kat690_addin1[] = {
+ 0x12, 0xf3, 0xa8, 0x79, 0x0b, 0x35, 0x37, 0x9f, 0x34, 0x4a, 0xa0, 0x62,
+ 0x7f, 0xd4, 0xb0, 0xeb, 0xb1, 0x34, 0x19, 0xce, 0x97, 0x7f, 0x7a, 0x38,
+ 0xe1, 0xb0, 0x18, 0x7a, 0x89, 0x68, 0xd2, 0x90,
+};
+static const unsigned char kat690_retbits[] = {
+ 0xdb, 0xd9, 0xce, 0x59, 0x62, 0x73, 0x6e, 0x22, 0x4c, 0xa4, 0xb3, 0xb8,
+ 0x55, 0xe1, 0x39, 0x70, 0xea, 0xeb, 0x0a, 0x5c, 0x60, 0x7a, 0x66, 0xf1,
+ 0xd0, 0x30, 0x3d, 0xe9, 0x59, 0xd8, 0x17, 0x18, 0x5b, 0x1f, 0x75, 0x44,
+ 0x87, 0x4f, 0x51, 0xea, 0xa5, 0x3a, 0xd0, 0xc3, 0xde, 0xbe, 0x85, 0x1e,
+ 0x6b, 0x23, 0xae, 0x2e, 0xe3, 0x6d, 0x46, 0x62, 0x88, 0x02, 0x6d, 0x96,
+ 0xbd, 0x27, 0x99, 0xd9,
+};
+static const struct drbg_kat_no_reseed kat690_t = {
+ 14, kat690_entropyin, kat690_nonce, kat690_persstr,
+ kat690_addin0, kat690_addin1, kat690_retbits
+};
+static const struct drbg_kat kat690 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat690_t
+};
+
+static const unsigned char kat691_entropyin[] = {
+ 0x5b, 0xe5, 0x76, 0xef, 0x25, 0xe0, 0x4f, 0xf8, 0xd6, 0x17, 0x20, 0xfd,
+ 0xfe, 0xe9, 0x66, 0x53, 0x62, 0xda, 0x94, 0xce, 0x54, 0x86, 0xf5, 0x91,
+ 0x4f, 0x24, 0x10, 0xe0, 0x6d, 0x09, 0xc7, 0x3e,
+};
+static const unsigned char kat691_nonce[] = {
+ 0x7b, 0x9c, 0xcc, 0x3e, 0x6d, 0x5d, 0x7b, 0x5f, 0xb5, 0xd4, 0xb3, 0x21,
+ 0xe4, 0xff, 0x47, 0x6e,
+};
+static const unsigned char kat691_persstr[] = {
+ 0xec, 0x29, 0x41, 0xf8, 0x68, 0x4b, 0x25, 0xda, 0xd3, 0x9f, 0x57, 0xac,
+ 0xea, 0x40, 0xbd, 0x36, 0x46, 0xe2, 0x09, 0x91, 0x1d, 0x17, 0x77, 0x14,
+ 0xab, 0x92, 0xcc, 0xe1, 0x3a, 0xfe, 0x75, 0xe5,
+};
+static const unsigned char kat691_addin0[] = {0};
+static const unsigned char kat691_addin1[] = {0};
+static const unsigned char kat691_retbits[] = {
+ 0x1f, 0x97, 0x80, 0xec, 0x93, 0xe7, 0x5d, 0xb8, 0x64, 0xde, 0x37, 0xb3,
+ 0xf9, 0x29, 0x0c, 0x60, 0x9a, 0xe3, 0x62, 0x0f, 0xab, 0x6c, 0xbb, 0x6c,
+ 0x17, 0xf9, 0x44, 0x38, 0x3f, 0xaf, 0xe0, 0xf6, 0x4c, 0x23, 0x31, 0x10,
+ 0xea, 0xcc, 0x5b, 0x4e, 0x5c, 0x41, 0x07, 0xa4, 0x3a, 0x0f, 0xfb, 0x00,
+ 0xa9, 0x4e, 0x00, 0xfa, 0x89, 0x18, 0xf1, 0x1f, 0x4c, 0x56, 0x4f, 0x04,
+ 0xbe, 0x71, 0x26, 0xbb,
+};
+static const struct drbg_kat_no_reseed kat691_t = {
+ 0, kat691_entropyin, kat691_nonce, kat691_persstr,
+ kat691_addin0, kat691_addin1, kat691_retbits
+};
+static const struct drbg_kat kat691 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat691_t
+};
+
+static const unsigned char kat692_entropyin[] = {
+ 0x6c, 0x35, 0x43, 0x9f, 0x34, 0xa4, 0x3c, 0xf7, 0x89, 0xb4, 0x7b, 0x4d,
+ 0xf0, 0x91, 0xf0, 0xd2, 0x02, 0x8b, 0x9c, 0x8c, 0x74, 0x65, 0x84, 0xae,
+ 0x7c, 0xa7, 0x17, 0xf4, 0x55, 0x04, 0x43, 0x77,
+};
+static const unsigned char kat692_nonce[] = {
+ 0x79, 0xd3, 0x88, 0x96, 0x92, 0xcd, 0x2e, 0x3f, 0xfd, 0xa0, 0x28, 0x53,
+ 0x4a, 0x12, 0xfd, 0xf9,
+};
+static const unsigned char kat692_persstr[] = {
+ 0x2e, 0xb6, 0x82, 0x59, 0x8f, 0x5c, 0xa0, 0x61, 0xf1, 0x1e, 0x65, 0x36,
+ 0xfc, 0x94, 0xa3, 0xa3, 0x6f, 0x3d, 0xf2, 0x89, 0x6e, 0x2e, 0xc9, 0xb5,
+ 0x77, 0x40, 0xe6, 0x7c, 0x83, 0x42, 0x4b, 0x40,
+};
+static const unsigned char kat692_addin0[] = {0};
+static const unsigned char kat692_addin1[] = {0};
+static const unsigned char kat692_retbits[] = {
+ 0x34, 0x64, 0xe7, 0x5b, 0x5f, 0xca, 0xc3, 0x79, 0x96, 0x37, 0xa4, 0x0c,
+ 0xcd, 0xa0, 0x78, 0x1b, 0xda, 0x21, 0x72, 0x2d, 0x39, 0xb0, 0x69, 0x2b,
+ 0x8f, 0x56, 0x74, 0x80, 0xa9, 0x8d, 0x90, 0xa0, 0x29, 0x19, 0x55, 0x3a,
+ 0x38, 0x83, 0x0d, 0x7a, 0xe4, 0xd5, 0x8e, 0xf3, 0x61, 0x37, 0x7f, 0xb1,
+ 0xa8, 0x68, 0x41, 0x05, 0x68, 0xe7, 0xf3, 0xda, 0xe8, 0xbe, 0xc2, 0x00,
+ 0x23, 0xef, 0xf4, 0x93,
+};
+static const struct drbg_kat_no_reseed kat692_t = {
+ 1, kat692_entropyin, kat692_nonce, kat692_persstr,
+ kat692_addin0, kat692_addin1, kat692_retbits
+};
+static const struct drbg_kat kat692 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat692_t
+};
+
+static const unsigned char kat693_entropyin[] = {
+ 0x5b, 0xbe, 0x84, 0xff, 0xad, 0x62, 0xde, 0xb1, 0xed, 0xf2, 0x80, 0x1d,
+ 0xbd, 0x47, 0x2d, 0x02, 0x8f, 0x45, 0xc0, 0x6f, 0xb8, 0x33, 0x4d, 0x14,
+ 0x1f, 0x08, 0xc5, 0x35, 0x2c, 0xbb, 0xd2, 0x72,
+};
+static const unsigned char kat693_nonce[] = {
+ 0x94, 0xf6, 0xce, 0x2a, 0x28, 0x76, 0x44, 0xac, 0xc4, 0x57, 0x5a, 0x8b,
+ 0xa6, 0x78, 0x26, 0x58,
+};
+static const unsigned char kat693_persstr[] = {
+ 0x0e, 0x3b, 0x68, 0xda, 0x0e, 0x16, 0x7e, 0x01, 0x1d, 0x1e, 0xc8, 0xdd,
+ 0x7d, 0x8b, 0x9a, 0xfd, 0x4b, 0x0b, 0x6e, 0x42, 0x80, 0x6b, 0x60, 0x00,
+ 0xdd, 0x79, 0x75, 0x75, 0x09, 0xe0, 0x4f, 0x39,
+};
+static const unsigned char kat693_addin0[] = {0};
+static const unsigned char kat693_addin1[] = {0};
+static const unsigned char kat693_retbits[] = {
+ 0xd3, 0xa4, 0x70, 0xea, 0x6f, 0x5a, 0x16, 0x09, 0x63, 0xa7, 0x95, 0x31,
+ 0xce, 0xe9, 0x67, 0x9d, 0xd8, 0x9e, 0x05, 0x14, 0x12, 0x24, 0x88, 0x32,
+ 0x65, 0xf2, 0x14, 0xce, 0x17, 0xd8, 0x36, 0xa2, 0xfc, 0xc3, 0xe2, 0x87,
+ 0x0d, 0x45, 0x66, 0x2d, 0x80, 0x24, 0x0a, 0xb5, 0x7e, 0x28, 0xf8, 0x3d,
+ 0x07, 0xe1, 0x3a, 0xf5, 0x82, 0xaa, 0x70, 0x11, 0xf9, 0x69, 0xc8, 0xe0,
+ 0xe7, 0x32, 0xe7, 0x85,
+};
+static const struct drbg_kat_no_reseed kat693_t = {
+ 2, kat693_entropyin, kat693_nonce, kat693_persstr,
+ kat693_addin0, kat693_addin1, kat693_retbits
+};
+static const struct drbg_kat kat693 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat693_t
+};
+
+static const unsigned char kat694_entropyin[] = {
+ 0xdc, 0x88, 0x15, 0x21, 0xd7, 0x0f, 0x4d, 0x5b, 0x34, 0xc9, 0x56, 0x83,
+ 0x1e, 0x2c, 0x95, 0x36, 0xd6, 0xe0, 0x26, 0xd7, 0x86, 0x29, 0x57, 0x70,
+ 0x33, 0xbe, 0x80, 0x07, 0x85, 0xaa, 0xbb, 0xa6,
+};
+static const unsigned char kat694_nonce[] = {
+ 0xa8, 0x53, 0x19, 0x19, 0x4e, 0x70, 0x1c, 0x55, 0x8a, 0x15, 0xa0, 0xfc,
+ 0xf3, 0xf3, 0x5f, 0x49,
+};
+static const unsigned char kat694_persstr[] = {
+ 0x23, 0xef, 0x4c, 0xf4, 0x2f, 0xec, 0x6f, 0x4b, 0xd1, 0x5c, 0x6a, 0xfc,
+ 0x0e, 0x1c, 0xae, 0x1a, 0x47, 0x72, 0x9e, 0x2f, 0x91, 0x01, 0x90, 0x94,
+ 0x82, 0x2a, 0x9e, 0xa4, 0x02, 0x4b, 0xcc, 0x35,
+};
+static const unsigned char kat694_addin0[] = {0};
+static const unsigned char kat694_addin1[] = {0};
+static const unsigned char kat694_retbits[] = {
+ 0x74, 0xb0, 0x36, 0x16, 0xf6, 0xd3, 0x62, 0xa3, 0x9f, 0xf3, 0x3a, 0xb8,
+ 0x59, 0x3b, 0x7a, 0x87, 0xdc, 0xd8, 0x31, 0xfa, 0xa0, 0x56, 0x23, 0x8a,
+ 0x44, 0x5d, 0x0d, 0xc6, 0x23, 0xfc, 0x47, 0x72, 0x5c, 0x2d, 0xde, 0xa7,
+ 0x0a, 0x5f, 0x0b, 0x87, 0x51, 0xa1, 0x30, 0xbb, 0x27, 0x28, 0xbf, 0xc3,
+ 0xde, 0x11, 0x76, 0x77, 0xb3, 0x88, 0x6d, 0x4d, 0x67, 0x15, 0xf2, 0xd8,
+ 0x29, 0x6d, 0x71, 0xf9,
+};
+static const struct drbg_kat_no_reseed kat694_t = {
+ 3, kat694_entropyin, kat694_nonce, kat694_persstr,
+ kat694_addin0, kat694_addin1, kat694_retbits
+};
+static const struct drbg_kat kat694 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat694_t
+};
+
+static const unsigned char kat695_entropyin[] = {
+ 0x5c, 0x3c, 0xea, 0x9b, 0xb9, 0x43, 0x2f, 0x23, 0x60, 0x09, 0x79, 0xd7,
+ 0xc4, 0x51, 0x1d, 0x85, 0x61, 0xbf, 0x7d, 0x88, 0xd2, 0x29, 0xf3, 0x51,
+ 0x38, 0xac, 0x19, 0x64, 0x6c, 0x5c, 0x9e, 0xae,
+};
+static const unsigned char kat695_nonce[] = {
+ 0xc0, 0x98, 0xb0, 0xae, 0xde, 0xb0, 0xe7, 0xc3, 0xa4, 0x4d, 0xa2, 0x9c,
+ 0x67, 0x8f, 0x2b, 0x19,
+};
+static const unsigned char kat695_persstr[] = {
+ 0x50, 0x3e, 0xf4, 0x54, 0xd5, 0x9b, 0x0c, 0x68, 0xd2, 0x3a, 0x4b, 0xae,
+ 0x07, 0x15, 0xa8, 0x96, 0x3b, 0xa7, 0xbc, 0x70, 0x32, 0x5d, 0xe3, 0xfb,
+ 0x59, 0x83, 0x1c, 0x90, 0x7a, 0xbd, 0xde, 0xff,
+};
+static const unsigned char kat695_addin0[] = {0};
+static const unsigned char kat695_addin1[] = {0};
+static const unsigned char kat695_retbits[] = {
+ 0xe4, 0x40, 0x8c, 0xa3, 0xcc, 0x4a, 0xac, 0x06, 0x45, 0xdd, 0xc3, 0xa6,
+ 0x61, 0x2d, 0x50, 0x0c, 0x26, 0x86, 0x29, 0x9b, 0x4f, 0xb6, 0x28, 0x73,
+ 0x0d, 0xb5, 0x49, 0xfd, 0x49, 0xb1, 0xa8, 0xab, 0x8e, 0xe7, 0xdc, 0xa0,
+ 0xfe, 0x5e, 0x73, 0x2e, 0xdb, 0x52, 0x52, 0xe6, 0x9b, 0x0d, 0x90, 0x91,
+ 0x03, 0x42, 0x48, 0xc1, 0x65, 0x48, 0xb0, 0x31, 0x7b, 0x66, 0x0b, 0x8a,
+ 0x8b, 0x8e, 0x39, 0xba,
+};
+static const struct drbg_kat_no_reseed kat695_t = {
+ 4, kat695_entropyin, kat695_nonce, kat695_persstr,
+ kat695_addin0, kat695_addin1, kat695_retbits
+};
+static const struct drbg_kat kat695 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat695_t
+};
+
+static const unsigned char kat696_entropyin[] = {
+ 0x6e, 0xcd, 0x2e, 0xab, 0x50, 0x57, 0x0c, 0xd5, 0x32, 0x0c, 0xed, 0xc3,
+ 0x6c, 0xe4, 0xff, 0x7e, 0xe3, 0x11, 0xb9, 0xdd, 0xca, 0x8c, 0xb0, 0x71,
+ 0xeb, 0x82, 0xba, 0x04, 0xe2, 0x73, 0x7b, 0xce,
+};
+static const unsigned char kat696_nonce[] = {
+ 0x7c, 0x55, 0x63, 0x33, 0x24, 0x25, 0x06, 0x5e, 0xbd, 0xcd, 0x72, 0x1f,
+ 0xaf, 0x8c, 0x3f, 0xf5,
+};
+static const unsigned char kat696_persstr[] = {
+ 0xf5, 0x1d, 0xdf, 0x77, 0x4d, 0xb1, 0x4f, 0x40, 0x63, 0x92, 0xbb, 0x6c,
+ 0x6e, 0xc5, 0x3f, 0x23, 0x1b, 0xa4, 0xc3, 0xc4, 0x18, 0xee, 0x05, 0x4d,
+ 0x76, 0xa3, 0x2a, 0xef, 0xb7, 0x1f, 0x2b, 0x1f,
+};
+static const unsigned char kat696_addin0[] = {0};
+static const unsigned char kat696_addin1[] = {0};
+static const unsigned char kat696_retbits[] = {
+ 0xa3, 0x30, 0xbb, 0x0b, 0x8a, 0xb6, 0x05, 0x4e, 0x99, 0xa4, 0x40, 0x4d,
+ 0xdd, 0x86, 0x2b, 0x8f, 0x24, 0x03, 0x91, 0x41, 0xeb, 0x89, 0xb0, 0xf6,
+ 0x57, 0x7e, 0xec, 0x25, 0x35, 0xc1, 0xb9, 0x8b, 0x96, 0x4c, 0x5d, 0x6a,
+ 0x82, 0x7f, 0x56, 0x13, 0x60, 0x78, 0x63, 0xa5, 0x94, 0x04, 0xce, 0xa5,
+ 0x5d, 0xb7, 0x9b, 0xe1, 0xd0, 0x8c, 0x66, 0x6b, 0x02, 0xf5, 0xc2, 0xcc,
+ 0x6a, 0x0f, 0x7f, 0x84,
+};
+static const struct drbg_kat_no_reseed kat696_t = {
+ 5, kat696_entropyin, kat696_nonce, kat696_persstr,
+ kat696_addin0, kat696_addin1, kat696_retbits
+};
+static const struct drbg_kat kat696 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat696_t
+};
+
+static const unsigned char kat697_entropyin[] = {
+ 0xde, 0x5a, 0x18, 0x75, 0xc5, 0x75, 0xf7, 0xd3, 0x8e, 0xc1, 0x3f, 0xf4,
+ 0x77, 0x4c, 0x35, 0xb8, 0xc6, 0xb8, 0x91, 0xb0, 0xbd, 0xd3, 0x60, 0x42,
+ 0x91, 0x1d, 0x15, 0x7b, 0xdf, 0xe0, 0x0c, 0x53,
+};
+static const unsigned char kat697_nonce[] = {
+ 0xf8, 0xd1, 0xad, 0x3c, 0x15, 0x10, 0xf8, 0xe5, 0xd0, 0xa8, 0xf0, 0x5f,
+ 0x43, 0x99, 0x24, 0xff,
+};
+static const unsigned char kat697_persstr[] = {
+ 0x1d, 0x32, 0x05, 0x75, 0xe7, 0x9b, 0x09, 0xf5, 0x46, 0x20, 0x3b, 0xc5,
+ 0xd5, 0xb8, 0x6e, 0xc0, 0xf7, 0x62, 0x67, 0x53, 0x56, 0xd8, 0x4d, 0x6e,
+ 0x7f, 0x57, 0xe5, 0x7b, 0x77, 0xcd, 0x83, 0x2a,
+};
+static const unsigned char kat697_addin0[] = {0};
+static const unsigned char kat697_addin1[] = {0};
+static const unsigned char kat697_retbits[] = {
+ 0x1e, 0x74, 0x9f, 0x20, 0x85, 0x09, 0x7a, 0xb5, 0x46, 0x2a, 0x10, 0x0e,
+ 0x8a, 0x86, 0xbd, 0x94, 0x6d, 0x29, 0x23, 0x21, 0x62, 0x28, 0x05, 0x93,
+ 0xe9, 0x00, 0xac, 0x77, 0x84, 0x29, 0xa3, 0xb5, 0x89, 0x32, 0xa5, 0x11,
+ 0x89, 0xb1, 0x72, 0x38, 0x92, 0x7a, 0xab, 0xb6, 0x94, 0xec, 0x48, 0x1d,
+ 0xd6, 0x6c, 0x3d, 0x93, 0x7b, 0x60, 0x0f, 0xb6, 0x26, 0xe0, 0x21, 0x81,
+ 0xd0, 0x02, 0x0e, 0xb0,
+};
+static const struct drbg_kat_no_reseed kat697_t = {
+ 6, kat697_entropyin, kat697_nonce, kat697_persstr,
+ kat697_addin0, kat697_addin1, kat697_retbits
+};
+static const struct drbg_kat kat697 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat697_t
+};
+
+static const unsigned char kat698_entropyin[] = {
+ 0x60, 0x15, 0x26, 0x97, 0xea, 0xee, 0x41, 0xd5, 0xf5, 0x72, 0xed, 0xc0,
+ 0x8d, 0xea, 0x0e, 0xe3, 0x1f, 0x49, 0x43, 0x44, 0x6f, 0x55, 0x73, 0xfb,
+ 0x23, 0xf5, 0xbf, 0x4a, 0xe9, 0x88, 0x25, 0xc3,
+};
+static const unsigned char kat698_nonce[] = {
+ 0x02, 0x13, 0xd5, 0x91, 0xa2, 0x2b, 0xb0, 0xba, 0xef, 0x78, 0xfa, 0x14,
+ 0x1d, 0xde, 0x5b, 0x72,
+};
+static const unsigned char kat698_persstr[] = {
+ 0x36, 0x59, 0x6e, 0x0a, 0x55, 0x29, 0xb2, 0x2b, 0x64, 0xd0, 0x87, 0x63,
+ 0x56, 0x46, 0x76, 0xc6, 0xf4, 0x29, 0x86, 0x1e, 0x93, 0xba, 0x28, 0xa4,
+ 0x3e, 0xf7, 0xcb, 0xb0, 0x4b, 0x03, 0x49, 0xbd,
+};
+static const unsigned char kat698_addin0[] = {0};
+static const unsigned char kat698_addin1[] = {0};
+static const unsigned char kat698_retbits[] = {
+ 0xb3, 0x3f, 0x03, 0x99, 0x6a, 0xce, 0x84, 0x09, 0x7f, 0xc3, 0x05, 0x8c,
+ 0x52, 0xe4, 0x96, 0xc4, 0xb3, 0xb1, 0x33, 0x7b, 0xea, 0x78, 0xe0, 0xc7,
+ 0x74, 0xbd, 0x15, 0xb9, 0x4c, 0x27, 0x04, 0xa5, 0xd2, 0x01, 0x7b, 0xa8,
+ 0x92, 0x0a, 0x91, 0x5e, 0x21, 0x5a, 0x75, 0x7f, 0xbf, 0xab, 0x2d, 0x8f,
+ 0xad, 0x62, 0x59, 0x48, 0x1b, 0x4f, 0x11, 0x3a, 0x8a, 0x62, 0xe2, 0x74,
+ 0x2d, 0x86, 0x23, 0xeb,
+};
+static const struct drbg_kat_no_reseed kat698_t = {
+ 7, kat698_entropyin, kat698_nonce, kat698_persstr,
+ kat698_addin0, kat698_addin1, kat698_retbits
+};
+static const struct drbg_kat kat698 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat698_t
+};
+
+static const unsigned char kat699_entropyin[] = {
+ 0xe6, 0x7e, 0x0a, 0xff, 0x14, 0x53, 0xe6, 0x71, 0x44, 0x44, 0x17, 0x18,
+ 0x22, 0xe6, 0x6e, 0xf7, 0xc6, 0x2e, 0x84, 0xca, 0x66, 0x33, 0x0d, 0x48,
+ 0xd8, 0x38, 0x40, 0x3b, 0xbe, 0xb4, 0xf5, 0xed,
+};
+static const unsigned char kat699_nonce[] = {
+ 0x2b, 0xfd, 0x34, 0x4e, 0x1c, 0xfd, 0xb1, 0x2b, 0x15, 0x2b, 0x84, 0xe9,
+ 0xa8, 0x90, 0x4e, 0xfe,
+};
+static const unsigned char kat699_persstr[] = {
+ 0x9e, 0x9a, 0x6d, 0x16, 0x4b, 0xae, 0x83, 0xb0, 0x80, 0xe4, 0x6b, 0x23,
+ 0xdd, 0x1e, 0x53, 0x1f, 0xd6, 0x80, 0x39, 0x54, 0x29, 0xf2, 0xe7, 0x60,
+ 0xbd, 0x97, 0x0f, 0xf8, 0xa2, 0xf8, 0xc7, 0xae,
+};
+static const unsigned char kat699_addin0[] = {0};
+static const unsigned char kat699_addin1[] = {0};
+static const unsigned char kat699_retbits[] = {
+ 0x9e, 0x24, 0x4c, 0xdc, 0xb0, 0xdd, 0xbb, 0xbc, 0x24, 0x85, 0x8a, 0x52,
+ 0xc7, 0x8c, 0xc0, 0x69, 0xc3, 0x44, 0xe4, 0x65, 0xf5, 0x33, 0x98, 0x07,
+ 0x70, 0xfa, 0xff, 0xf8, 0x9f, 0x22, 0xaa, 0x52, 0x65, 0x6a, 0x4f, 0xf2,
+ 0x04, 0x6b, 0xfd, 0x3c, 0xc7, 0xd0, 0x94, 0x4b, 0x95, 0x43, 0xac, 0x0e,
+ 0x82, 0x0f, 0x0e, 0x19, 0x20, 0xd5, 0x4b, 0x92, 0x18, 0xf1, 0xfc, 0xcb,
+ 0xf0, 0xb2, 0x71, 0xab,
+};
+static const struct drbg_kat_no_reseed kat699_t = {
+ 8, kat699_entropyin, kat699_nonce, kat699_persstr,
+ kat699_addin0, kat699_addin1, kat699_retbits
+};
+static const struct drbg_kat kat699 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat699_t
+};
+
+static const unsigned char kat700_entropyin[] = {
+ 0x98, 0x28, 0x23, 0x8a, 0x3a, 0x1a, 0x67, 0x04, 0xbb, 0x29, 0x6d, 0x12,
+ 0x10, 0x06, 0x72, 0x4f, 0x58, 0x2e, 0x5b, 0x70, 0xef, 0x75, 0x31, 0x22,
+ 0x1d, 0x6f, 0xf6, 0x34, 0x11, 0xe6, 0x0c, 0xd9,
+};
+static const unsigned char kat700_nonce[] = {
+ 0x6b, 0x54, 0x56, 0xcc, 0x71, 0xb7, 0x9b, 0x41, 0xd3, 0xb2, 0x6d, 0xa1,
+ 0x32, 0x0c, 0x65, 0x31,
+};
+static const unsigned char kat700_persstr[] = {
+ 0xe5, 0xe6, 0x4f, 0xa5, 0x51, 0x42, 0x7d, 0xb8, 0xf8, 0x18, 0xce, 0x5b,
+ 0xdb, 0x53, 0x4e, 0xbc, 0x70, 0x55, 0xb5, 0x98, 0x1d, 0xc3, 0x6f, 0x64,
+ 0x96, 0xda, 0xc9, 0xb8, 0x9b, 0xea, 0x1e, 0x61,
+};
+static const unsigned char kat700_addin0[] = {0};
+static const unsigned char kat700_addin1[] = {0};
+static const unsigned char kat700_retbits[] = {
+ 0x5a, 0x69, 0xb4, 0xfe, 0x77, 0x15, 0x6f, 0x87, 0x82, 0x35, 0xec, 0xe1,
+ 0x27, 0xad, 0x6a, 0x85, 0xb0, 0xe1, 0x11, 0x9d, 0x17, 0xa0, 0x8b, 0x21,
+ 0x97, 0x76, 0x15, 0xd8, 0xa9, 0xbb, 0x8a, 0xd7, 0xca, 0xf3, 0x5d, 0x89,
+ 0x9d, 0xd9, 0xaa, 0x21, 0x0c, 0x57, 0xe1, 0x10, 0x4f, 0x9a, 0x9e, 0xcb,
+ 0x73, 0x10, 0xea, 0x6d, 0x54, 0xc0, 0x98, 0x84, 0xf9, 0x41, 0xc6, 0xcb,
+ 0xff, 0x3d, 0xa5, 0xa0,
+};
+static const struct drbg_kat_no_reseed kat700_t = {
+ 9, kat700_entropyin, kat700_nonce, kat700_persstr,
+ kat700_addin0, kat700_addin1, kat700_retbits
+};
+static const struct drbg_kat kat700 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat700_t
+};
+
+static const unsigned char kat701_entropyin[] = {
+ 0x0b, 0xf4, 0x0a, 0x75, 0xa2, 0xae, 0x58, 0x03, 0x5b, 0xbf, 0xf7, 0x66,
+ 0x4f, 0xe2, 0xc9, 0x58, 0xad, 0xc5, 0x79, 0x00, 0x21, 0x3a, 0xf9, 0xcf,
+ 0x4c, 0xdc, 0xb1, 0x67, 0xb5, 0x57, 0xbb, 0xaa,
+};
+static const unsigned char kat701_nonce[] = {
+ 0x38, 0x56, 0xfc, 0x02, 0xdf, 0xde, 0xfc, 0x9c, 0x6d, 0x00, 0x3b, 0x1f,
+ 0xef, 0x6b, 0x71, 0x97,
+};
+static const unsigned char kat701_persstr[] = {
+ 0xb5, 0x93, 0x6c, 0x72, 0xdb, 0x21, 0x71, 0x6c, 0xac, 0x94, 0x44, 0x4c,
+ 0xa4, 0xa6, 0xfd, 0xc9, 0xf5, 0x50, 0xd0, 0xfc, 0x71, 0x31, 0xdd, 0xf2,
+ 0x70, 0x9a, 0x7f, 0xb5, 0x44, 0xd9, 0xe2, 0xb7,
+};
+static const unsigned char kat701_addin0[] = {0};
+static const unsigned char kat701_addin1[] = {0};
+static const unsigned char kat701_retbits[] = {
+ 0xf6, 0xd9, 0xe5, 0xa5, 0xd1, 0xd8, 0x7f, 0x33, 0x65, 0x5c, 0x9c, 0xba,
+ 0x1e, 0x93, 0x63, 0x04, 0x27, 0x7d, 0x69, 0x98, 0x48, 0x8d, 0xbf, 0x22,
+ 0x42, 0x0c, 0x73, 0xc8, 0x2b, 0x07, 0x44, 0xc9, 0xcb, 0xf2, 0x1f, 0xf8,
+ 0x2e, 0x79, 0x9d, 0x29, 0xc1, 0xd6, 0xe7, 0x94, 0x45, 0x1e, 0xe7, 0xe5,
+ 0x36, 0x40, 0xf5, 0x50, 0xbe, 0xf7, 0x21, 0xf0, 0x39, 0x4d, 0x73, 0xa4,
+ 0x57, 0x15, 0xeb, 0xfa,
+};
+static const struct drbg_kat_no_reseed kat701_t = {
+ 10, kat701_entropyin, kat701_nonce, kat701_persstr,
+ kat701_addin0, kat701_addin1, kat701_retbits
+};
+static const struct drbg_kat kat701 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat701_t
+};
+
+static const unsigned char kat702_entropyin[] = {
+ 0x98, 0xc6, 0xb2, 0x9f, 0x70, 0x1f, 0xe3, 0x0c, 0x41, 0xd3, 0x4d, 0x7f,
+ 0x1d, 0xa3, 0x6f, 0xe2, 0xa7, 0x19, 0xde, 0x06, 0xe8, 0x74, 0xae, 0x80,
+ 0x68, 0x43, 0x99, 0xa6, 0x73, 0xa9, 0x7d, 0x1f,
+};
+static const unsigned char kat702_nonce[] = {
+ 0x03, 0x69, 0xf7, 0xb4, 0x9f, 0x40, 0x36, 0x71, 0x16, 0xfa, 0xaa, 0x6d,
+ 0xfe, 0x4e, 0xa3, 0xf3,
+};
+static const unsigned char kat702_persstr[] = {
+ 0x0e, 0x48, 0xab, 0x3e, 0x50, 0x7d, 0x5c, 0x74, 0xca, 0x58, 0x85, 0xa6,
+ 0x84, 0x8c, 0x05, 0xf7, 0xe0, 0x3b, 0xc2, 0xa0, 0xfc, 0x47, 0x92, 0xaa,
+ 0xea, 0xca, 0x2a, 0x16, 0x99, 0xf5, 0xd6, 0x4b,
+};
+static const unsigned char kat702_addin0[] = {0};
+static const unsigned char kat702_addin1[] = {0};
+static const unsigned char kat702_retbits[] = {
+ 0x5f, 0x93, 0xad, 0xee, 0x11, 0x05, 0xaa, 0x58, 0x9a, 0x3c, 0x54, 0xdc,
+ 0x03, 0x01, 0x25, 0x78, 0x21, 0xb0, 0x93, 0x67, 0x91, 0x87, 0x60, 0xb7,
+ 0x5b, 0x83, 0x79, 0xe3, 0xf4, 0xd3, 0x04, 0x69, 0xc4, 0x97, 0xb7, 0xde,
+ 0xad, 0x63, 0x4a, 0x6e, 0xb7, 0x5e, 0x54, 0x4d, 0x7a, 0xab, 0x18, 0xeb,
+ 0x9d, 0xd2, 0xf0, 0x27, 0xc7, 0x4d, 0xc2, 0xb4, 0x47, 0xf9, 0xdc, 0x98,
+ 0xac, 0xe5, 0xbb, 0xa2,
+};
+static const struct drbg_kat_no_reseed kat702_t = {
+ 11, kat702_entropyin, kat702_nonce, kat702_persstr,
+ kat702_addin0, kat702_addin1, kat702_retbits
+};
+static const struct drbg_kat kat702 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat702_t
+};
+
+static const unsigned char kat703_entropyin[] = {
+ 0xb8, 0x71, 0xd4, 0xb9, 0xc7, 0x85, 0xa5, 0x59, 0x0e, 0x55, 0x40, 0xd4,
+ 0x1e, 0x57, 0x44, 0x14, 0x77, 0x97, 0x60, 0xd9, 0x3f, 0xad, 0x61, 0x1c,
+ 0x8b, 0x40, 0xbe, 0xc7, 0x4a, 0x82, 0xd3, 0xe5,
+};
+static const unsigned char kat703_nonce[] = {
+ 0x8b, 0x40, 0x35, 0xfd, 0xaf, 0x56, 0x6e, 0xc2, 0xd5, 0xae, 0xb0, 0x56,
+ 0x71, 0xde, 0xe0, 0x42,
+};
+static const unsigned char kat703_persstr[] = {
+ 0x8d, 0x9a, 0xda, 0xb4, 0xc1, 0xeb, 0x18, 0x18, 0xfa, 0x7c, 0xce, 0x9e,
+ 0x17, 0xab, 0xb4, 0xa2, 0xb4, 0xb5, 0x72, 0x09, 0xdf, 0xc2, 0x51, 0x32,
+ 0x42, 0x44, 0xa3, 0xbc, 0x25, 0x83, 0xa3, 0x61,
+};
+static const unsigned char kat703_addin0[] = {0};
+static const unsigned char kat703_addin1[] = {0};
+static const unsigned char kat703_retbits[] = {
+ 0x4f, 0x46, 0xf9, 0xee, 0xa6, 0x22, 0x08, 0x08, 0x9f, 0xc8, 0x7d, 0x5c,
+ 0x7a, 0xda, 0x6a, 0xdf, 0xd1, 0x7f, 0xdb, 0x61, 0x92, 0xe0, 0x2a, 0x1b,
+ 0x90, 0x71, 0x66, 0x02, 0xc6, 0x39, 0x79, 0x68, 0x18, 0x15, 0x61, 0xc5,
+ 0x93, 0x75, 0x7b, 0x4b, 0xc5, 0x86, 0x96, 0x47, 0xed, 0x7a, 0x2d, 0xed,
+ 0x4f, 0x21, 0x74, 0x45, 0xee, 0x59, 0x98, 0xf7, 0xe9, 0xce, 0xe8, 0x92,
+ 0xff, 0xac, 0xe9, 0xe5,
+};
+static const struct drbg_kat_no_reseed kat703_t = {
+ 12, kat703_entropyin, kat703_nonce, kat703_persstr,
+ kat703_addin0, kat703_addin1, kat703_retbits
+};
+static const struct drbg_kat kat703 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat703_t
+};
+
+static const unsigned char kat704_entropyin[] = {
+ 0x59, 0x1b, 0xe0, 0xb5, 0xfd, 0xf6, 0xd1, 0xb3, 0xb7, 0xf5, 0xb1, 0x33,
+ 0xd9, 0xe0, 0x5f, 0x81, 0xed, 0x45, 0xf2, 0x52, 0xab, 0x13, 0x42, 0xa9,
+ 0xa2, 0x25, 0xb4, 0x31, 0x27, 0x06, 0xa2, 0xa7,
+};
+static const unsigned char kat704_nonce[] = {
+ 0x19, 0x98, 0xea, 0x95, 0xf0, 0x16, 0xe6, 0x8b, 0xec, 0x00, 0x9d, 0x58,
+ 0xaa, 0xa9, 0x17, 0xa9,
+};
+static const unsigned char kat704_persstr[] = {
+ 0xbb, 0x41, 0xdc, 0xbd, 0x6b, 0xa8, 0x02, 0x25, 0x5a, 0x85, 0xd4, 0xcd,
+ 0xd9, 0xb3, 0x88, 0x51, 0xd6, 0x36, 0xdd, 0xd0, 0xa8, 0x3e, 0x65, 0x26,
+ 0x2e, 0x3d, 0x2f, 0x4c, 0x7d, 0xfc, 0xa4, 0x97,
+};
+static const unsigned char kat704_addin0[] = {0};
+static const unsigned char kat704_addin1[] = {0};
+static const unsigned char kat704_retbits[] = {
+ 0x0d, 0xd6, 0xba, 0x8b, 0xa9, 0x52, 0x62, 0x22, 0xc4, 0x36, 0x74, 0x66,
+ 0x30, 0xf0, 0x79, 0x12, 0xd5, 0x4d, 0xcd, 0x9c, 0x0c, 0xd4, 0xa2, 0xe9,
+ 0x5f, 0x02, 0x76, 0xce, 0x07, 0xe0, 0x31, 0xf4, 0x61, 0xb3, 0x5a, 0xf8,
+ 0x7d, 0x0f, 0x69, 0x4d, 0xdc, 0xfa, 0xca, 0x8f, 0xb6, 0x5c, 0xdd, 0x65,
+ 0x7f, 0x52, 0x4f, 0x3c, 0xb1, 0xd9, 0x28, 0x58, 0xab, 0x58, 0x76, 0x7a,
+ 0xcf, 0xc2, 0xd2, 0x3f,
+};
+static const struct drbg_kat_no_reseed kat704_t = {
+ 13, kat704_entropyin, kat704_nonce, kat704_persstr,
+ kat704_addin0, kat704_addin1, kat704_retbits
+};
+static const struct drbg_kat kat704 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat704_t
+};
+
+static const unsigned char kat705_entropyin[] = {
+ 0x62, 0x2a, 0x61, 0x31, 0x73, 0xdf, 0x7f, 0xb9, 0x00, 0x89, 0x46, 0x09,
+ 0xe2, 0x44, 0x40, 0xc3, 0xf4, 0x56, 0xa3, 0xea, 0xf9, 0xe3, 0x8c, 0xa9,
+ 0x88, 0xcd, 0x24, 0x03, 0x5e, 0x39, 0x27, 0xee,
+};
+static const unsigned char kat705_nonce[] = {
+ 0x37, 0x7c, 0x3b, 0xde, 0xb5, 0x6a, 0x6f, 0xcf, 0x93, 0x82, 0xa2, 0x42,
+ 0xb1, 0x03, 0x6c, 0xc0,
+};
+static const unsigned char kat705_persstr[] = {
+ 0x7a, 0xea, 0x3f, 0xf4, 0x21, 0x44, 0x7e, 0x01, 0x33, 0x3c, 0x14, 0xbb,
+ 0x5f, 0xd6, 0x52, 0xb1, 0x59, 0xd1, 0xf5, 0x32, 0x4e, 0xf8, 0xd2, 0x3e,
+ 0x5e, 0x36, 0x08, 0x1d, 0x84, 0x8c, 0xaa, 0xf6,
+};
+static const unsigned char kat705_addin0[] = {0};
+static const unsigned char kat705_addin1[] = {0};
+static const unsigned char kat705_retbits[] = {
+ 0x22, 0x93, 0x26, 0x74, 0xba, 0xfd, 0xbd, 0x4f, 0x7a, 0x34, 0x3c, 0x52,
+ 0x05, 0xaa, 0xf0, 0x95, 0xed, 0xfc, 0xf7, 0x12, 0xce, 0x01, 0x0c, 0x11,
+ 0x81, 0x9c, 0xd9, 0x17, 0x1d, 0x11, 0x33, 0xc8, 0x89, 0x22, 0x0a, 0x1f,
+ 0x93, 0x9c, 0xad, 0x9f, 0x09, 0x8c, 0x50, 0x4e, 0x62, 0xf9, 0x8a, 0x63,
+ 0x88, 0x27, 0xd7, 0x36, 0xfb, 0x99, 0x60, 0x82, 0x9b, 0x38, 0x26, 0xfa,
+ 0x04, 0x6f, 0x31, 0xa3,
+};
+static const struct drbg_kat_no_reseed kat705_t = {
+ 14, kat705_entropyin, kat705_nonce, kat705_persstr,
+ kat705_addin0, kat705_addin1, kat705_retbits
+};
+static const struct drbg_kat kat705 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat705_t
+};
+
+static const unsigned char kat706_entropyin[] = {
+ 0x6b, 0x53, 0x6f, 0x8f, 0x4c, 0x56, 0x16, 0xa0, 0xc4, 0xe6, 0x81, 0x82,
+ 0x55, 0x85, 0x72, 0x4d, 0x52, 0x2d, 0x37, 0xfc, 0x02, 0xa0, 0x55, 0x64,
+ 0x03, 0x08, 0x72, 0xe0, 0xd6, 0xc3, 0x92, 0x2f,
+};
+static const unsigned char kat706_nonce[] = {
+ 0x01, 0x84, 0x41, 0x75, 0x27, 0xff, 0xdd, 0x3e, 0xdd, 0xdb, 0xb0, 0x70,
+ 0x95, 0x78, 0x26, 0xc0,
+};
+static const unsigned char kat706_persstr[] = {
+ 0x91, 0xe6, 0x2a, 0x60, 0x9b, 0x4d, 0xb5, 0x0c, 0x5e, 0x7a, 0xd7, 0xd0,
+ 0x9d, 0xc3, 0x87, 0xda, 0xe9, 0xda, 0x6d, 0x25, 0x85, 0xbd, 0x35, 0x30,
+ 0x38, 0x94, 0x11, 0xce, 0xa7, 0xd2, 0xa4, 0x0e,
+};
+static const unsigned char kat706_addin0[] = {
+ 0x42, 0xf3, 0x98, 0xbf, 0x22, 0x29, 0x97, 0x6f, 0x9d, 0x97, 0xb0, 0xa5,
+ 0xfc, 0x47, 0xd5, 0xc6, 0x4b, 0x70, 0xfa, 0x56, 0x31, 0xab, 0xf2, 0x8f,
+ 0x2c, 0x6f, 0x91, 0xf7, 0x8b, 0x72, 0x78, 0xd9,
+};
+static const unsigned char kat706_addin1[] = {
+ 0xc6, 0x24, 0x29, 0x1e, 0xb0, 0x39, 0xad, 0x17, 0x24, 0xc9, 0xb0, 0xba,
+ 0x20, 0xb9, 0x84, 0x21, 0xa7, 0xf0, 0x03, 0x2f, 0x6c, 0x8c, 0x00, 0xf6,
+ 0x47, 0x94, 0x01, 0x8c, 0xe5, 0xa5, 0xed, 0x96,
+};
+static const unsigned char kat706_retbits[] = {
+ 0x50, 0x7e, 0x0b, 0x4f, 0x12, 0xc4, 0x08, 0xd8, 0x70, 0x52, 0xb7, 0x9e,
+ 0xb4, 0x87, 0x9c, 0x92, 0x5a, 0x91, 0x8b, 0x0f, 0xcd, 0x81, 0x2b, 0xbe,
+ 0xdc, 0x72, 0x0a, 0x3d, 0x8b, 0xe6, 0x56, 0xe4, 0x0d, 0xe9, 0x00, 0x25,
+ 0x7f, 0x7a, 0x27, 0x0d, 0xd6, 0xd8, 0xe7, 0xda, 0x50, 0xcd, 0xc2, 0x0d,
+ 0x74, 0x4e, 0x94, 0x97, 0x8d, 0x70, 0x7b, 0x53, 0xf3, 0x82, 0xae, 0xb1,
+ 0x64, 0x88, 0xb1, 0x22,
+};
+static const struct drbg_kat_no_reseed kat706_t = {
+ 0, kat706_entropyin, kat706_nonce, kat706_persstr,
+ kat706_addin0, kat706_addin1, kat706_retbits
+};
+static const struct drbg_kat kat706 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat706_t
+};
+
+static const unsigned char kat707_entropyin[] = {
+ 0x46, 0xf6, 0x26, 0xc7, 0xee, 0x44, 0xda, 0xd8, 0x3c, 0xed, 0x8e, 0x6c,
+ 0xe5, 0x56, 0xd1, 0xc4, 0x40, 0xda, 0x55, 0xc7, 0xc9, 0x7b, 0x4b, 0x0e,
+ 0x51, 0xb9, 0x81, 0x7e, 0x97, 0x70, 0x01, 0xb9,
+};
+static const unsigned char kat707_nonce[] = {
+ 0xfd, 0x56, 0x3b, 0x05, 0xc0, 0xc9, 0x5f, 0x2b, 0xa9, 0x40, 0xfe, 0x9e,
+ 0x88, 0xed, 0x6f, 0xb9,
+};
+static const unsigned char kat707_persstr[] = {
+ 0xec, 0x1a, 0x72, 0x24, 0xd1, 0xc1, 0x35, 0x59, 0x7b, 0x8e, 0x41, 0x4d,
+ 0x2e, 0xab, 0x62, 0x42, 0x65, 0x1b, 0xd6, 0x62, 0x78, 0x97, 0x3f, 0x4d,
+ 0x5e, 0xa2, 0x6a, 0x06, 0xf3, 0x7c, 0x0b, 0x3b,
+};
+static const unsigned char kat707_addin0[] = {
+ 0x66, 0x84, 0x32, 0xe5, 0x18, 0x24, 0x94, 0xb2, 0x32, 0xe8, 0xa6, 0x6a,
+ 0x71, 0x35, 0xf0, 0x31, 0xe1, 0x15, 0x45, 0x28, 0xd4, 0x05, 0xda, 0x05,
+ 0x7b, 0xb4, 0xc8, 0xcf, 0xad, 0xbf, 0x25, 0xbb,
+};
+static const unsigned char kat707_addin1[] = {
+ 0x10, 0xe0, 0xd1, 0x3c, 0x77, 0xc5, 0x04, 0xbf, 0x78, 0xd2, 0x93, 0xed,
+ 0x12, 0xde, 0x19, 0x2c, 0x10, 0x8d, 0x7d, 0xbe, 0xd8, 0x1a, 0xfb, 0xfe,
+ 0xdd, 0xf7, 0x27, 0xe9, 0xf2, 0x81, 0x64, 0x15,
+};
+static const unsigned char kat707_retbits[] = {
+ 0x2b, 0xa8, 0x9e, 0x10, 0x71, 0xb0, 0x7b, 0x91, 0x47, 0x79, 0xa5, 0xfc,
+ 0xde, 0x87, 0x4a, 0x74, 0xa4, 0xe9, 0xb9, 0x08, 0x1b, 0xc0, 0xcf, 0xbd,
+ 0x8a, 0x62, 0x34, 0xd7, 0x55, 0x67, 0xab, 0x7d, 0xcf, 0x2c, 0x9b, 0xe0,
+ 0x03, 0xcd, 0xf7, 0xeb, 0xbb, 0xd1, 0x66, 0x59, 0x4f, 0x2a, 0x80, 0x89,
+ 0x9e, 0xc1, 0x3a, 0x48, 0x4d, 0x4c, 0xd2, 0x6d, 0x03, 0x38, 0xe1, 0xf9,
+ 0xfb, 0xb4, 0xd3, 0xf6,
+};
+static const struct drbg_kat_no_reseed kat707_t = {
+ 1, kat707_entropyin, kat707_nonce, kat707_persstr,
+ kat707_addin0, kat707_addin1, kat707_retbits
+};
+static const struct drbg_kat kat707 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat707_t
+};
+
+static const unsigned char kat708_entropyin[] = {
+ 0xbb, 0x55, 0x39, 0x3b, 0xe6, 0x59, 0xc4, 0x84, 0x70, 0x5d, 0x79, 0xbc,
+ 0x87, 0x87, 0xa5, 0x4c, 0xd1, 0xc1, 0x79, 0x56, 0x78, 0x7e, 0x3f, 0x32,
+ 0x53, 0x53, 0x21, 0x01, 0xe1, 0x89, 0x27, 0xb5,
+};
+static const unsigned char kat708_nonce[] = {
+ 0xeb, 0xfe, 0x17, 0x65, 0xd9, 0xd6, 0x59, 0x46, 0x73, 0x11, 0xe3, 0x44,
+ 0x79, 0x65, 0x7b, 0xc1,
+};
+static const unsigned char kat708_persstr[] = {
+ 0x73, 0x54, 0x4a, 0x81, 0x4c, 0x51, 0x23, 0x2d, 0x48, 0x04, 0xc5, 0x9d,
+ 0x17, 0x1d, 0x50, 0x0e, 0x29, 0x2f, 0xc9, 0x11, 0x0e, 0x2b, 0x26, 0x85,
+ 0x6b, 0x9d, 0xb7, 0xd7, 0x44, 0x6a, 0x7a, 0x9a,
+};
+static const unsigned char kat708_addin0[] = {
+ 0x85, 0x5f, 0xe1, 0xcb, 0x8d, 0x50, 0x72, 0xf0, 0x3d, 0xb8, 0xe9, 0xc4,
+ 0xaa, 0xc8, 0xeb, 0x82, 0x9c, 0x47, 0xbf, 0x9a, 0xcb, 0xdc, 0x88, 0x8e,
+ 0x77, 0x3e, 0x36, 0x58, 0x0f, 0xa2, 0x4f, 0x34,
+};
+static const unsigned char kat708_addin1[] = {
+ 0x64, 0x94, 0xd5, 0xec, 0x3f, 0x17, 0xd7, 0x3b, 0xb6, 0x52, 0x14, 0x27,
+ 0x64, 0x08, 0x14, 0xf7, 0xb4, 0xee, 0x40, 0x70, 0x14, 0x56, 0x61, 0x63,
+ 0x7d, 0x2f, 0x79, 0xb2, 0xef, 0x18, 0xb4, 0xf5,
+};
+static const unsigned char kat708_retbits[] = {
+ 0x25, 0xac, 0x0a, 0xec, 0x11, 0x98, 0x03, 0xfe, 0x7d, 0x26, 0xcd, 0x76,
+ 0x35, 0xf4, 0x1f, 0x82, 0xd0, 0xed, 0x63, 0x4a, 0x30, 0x35, 0x88, 0x6e,
+ 0x25, 0x4c, 0xe4, 0x0f, 0x09, 0x74, 0x75, 0x64, 0x29, 0x04, 0xea, 0xf3,
+ 0xbe, 0x5b, 0xec, 0xb7, 0x40, 0x43, 0xbe, 0x3f, 0x33, 0xdc, 0x29, 0x40,
+ 0x63, 0x2a, 0x9e, 0x6a, 0xef, 0x8c, 0x83, 0x67, 0x55, 0x75, 0xb7, 0xc8,
+ 0x30, 0x74, 0x49, 0x49,
+};
+static const struct drbg_kat_no_reseed kat708_t = {
+ 2, kat708_entropyin, kat708_nonce, kat708_persstr,
+ kat708_addin0, kat708_addin1, kat708_retbits
+};
+static const struct drbg_kat kat708 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat708_t
+};
+
+static const unsigned char kat709_entropyin[] = {
+ 0xaf, 0x29, 0x59, 0xb0, 0xb4, 0x42, 0xee, 0xa3, 0xa4, 0x70, 0xfd, 0x2e,
+ 0x65, 0x31, 0x74, 0x8d, 0xb6, 0x80, 0xf5, 0x43, 0x1f, 0x97, 0x9e, 0x40,
+ 0xef, 0x40, 0x2f, 0x7e, 0xe0, 0x6b, 0xe2, 0x75,
+};
+static const unsigned char kat709_nonce[] = {
+ 0x14, 0x7f, 0xf9, 0xec, 0xd9, 0x1a, 0x62, 0x2e, 0xb7, 0x54, 0x99, 0xd9,
+ 0x86, 0xe5, 0x07, 0xaf,
+};
+static const unsigned char kat709_persstr[] = {
+ 0x02, 0xde, 0xde, 0x56, 0x8c, 0x8e, 0xec, 0x1b, 0x34, 0xa0, 0x42, 0xae,
+ 0x65, 0x1d, 0x6e, 0x06, 0x87, 0xd1, 0x26, 0x1f, 0x54, 0xf3, 0xf3, 0x9e,
+ 0xd7, 0xe0, 0xef, 0x4d, 0x1c, 0x1c, 0xad, 0x05,
+};
+static const unsigned char kat709_addin0[] = {
+ 0x43, 0x75, 0x7f, 0x98, 0x6a, 0x40, 0x91, 0x5e, 0xa7, 0xcb, 0x7d, 0x51,
+ 0xec, 0xd4, 0xdc, 0x8e, 0x2e, 0x2f, 0x39, 0xe1, 0xad, 0x7f, 0x22, 0xd1,
+ 0x67, 0xad, 0x48, 0x6c, 0x90, 0xa7, 0x6b, 0xc1,
+};
+static const unsigned char kat709_addin1[] = {
+ 0x2b, 0x1d, 0x19, 0xf3, 0xc7, 0xff, 0xe7, 0x63, 0xf2, 0xaf, 0x14, 0xbd,
+ 0xc6, 0xc6, 0xec, 0xac, 0x15, 0x65, 0x69, 0x76, 0xa1, 0x81, 0x17, 0xe7,
+ 0x04, 0x49, 0x0b, 0xdd, 0xd1, 0x5d, 0xa3, 0x7b,
+};
+static const unsigned char kat709_retbits[] = {
+ 0x57, 0xf2, 0xc0, 0x0b, 0xe6, 0x2f, 0x8a, 0x88, 0x1a, 0xbf, 0x8f, 0x0a,
+ 0xdc, 0xcb, 0xfc, 0xf5, 0x42, 0x77, 0x51, 0x08, 0x1a, 0xbc, 0x87, 0xea,
+ 0x0a, 0x87, 0xf2, 0x60, 0xf9, 0xba, 0xe5, 0x7f, 0xe5, 0xab, 0x04, 0xbf,
+ 0xd8, 0x25, 0x64, 0x01, 0x2c, 0xd3, 0x99, 0x75, 0xb9, 0x24, 0xb4, 0x17,
+ 0xa1, 0xfb, 0x3f, 0xf8, 0x88, 0x16, 0xd2, 0x64, 0x27, 0x70, 0x21, 0x51,
+ 0x3a, 0xfa, 0x0f, 0x4c,
+};
+static const struct drbg_kat_no_reseed kat709_t = {
+ 3, kat709_entropyin, kat709_nonce, kat709_persstr,
+ kat709_addin0, kat709_addin1, kat709_retbits
+};
+static const struct drbg_kat kat709 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat709_t
+};
+
+static const unsigned char kat710_entropyin[] = {
+ 0x55, 0x64, 0x87, 0x45, 0x7a, 0x05, 0x58, 0xa1, 0x3f, 0x90, 0xa7, 0xe9,
+ 0xb0, 0x5c, 0x73, 0xc5, 0xc8, 0x54, 0xc6, 0x1c, 0xa2, 0x0f, 0x89, 0xf5,
+ 0x00, 0x57, 0x05, 0x36, 0x8a, 0xfd, 0x1a, 0xb2,
+};
+static const unsigned char kat710_nonce[] = {
+ 0x85, 0xbc, 0x55, 0x9b, 0xfc, 0xd5, 0x4d, 0xd3, 0x39, 0x5f, 0x6e, 0x65,
+ 0xb7, 0xcb, 0x3c, 0xa3,
+};
+static const unsigned char kat710_persstr[] = {
+ 0xc6, 0x0f, 0x02, 0x6d, 0xa9, 0x4e, 0xe1, 0xa8, 0x49, 0x56, 0x92, 0x47,
+ 0xc4, 0x91, 0x35, 0x55, 0x2e, 0x79, 0x77, 0xfd, 0x2a, 0xfc, 0xcb, 0xc7,
+ 0x0b, 0x2b, 0xf0, 0x65, 0xaf, 0xf4, 0x05, 0xd3,
+};
+static const unsigned char kat710_addin0[] = {
+ 0x5b, 0x09, 0x52, 0xeb, 0xdf, 0x3b, 0x34, 0x0e, 0xe0, 0x56, 0xbe, 0x2a,
+ 0xab, 0x09, 0xb4, 0xaf, 0x54, 0x18, 0x5d, 0x5d, 0x53, 0x5c, 0xb2, 0x52,
+ 0xb0, 0xf5, 0xc6, 0x65, 0x9f, 0x31, 0x15, 0x40,
+};
+static const unsigned char kat710_addin1[] = {
+ 0x16, 0x0a, 0xf1, 0xff, 0xe3, 0x7e, 0xb9, 0xcd, 0x0f, 0xe7, 0x26, 0x04,
+ 0x42, 0x0c, 0xa1, 0x99, 0x89, 0x1c, 0xcd, 0x44, 0x46, 0x6f, 0xc5, 0xa2,
+ 0x19, 0x37, 0xdd, 0xe0, 0x6a, 0x5e, 0xe8, 0xa8,
+};
+static const unsigned char kat710_retbits[] = {
+ 0x5c, 0x83, 0x2d, 0x5c, 0xb1, 0x53, 0xf2, 0x12, 0xa1, 0x5b, 0xc6, 0x91,
+ 0x09, 0xb2, 0xbd, 0x93, 0x7f, 0x16, 0xf4, 0x0d, 0x00, 0x07, 0xf9, 0x57,
+ 0x4d, 0xfb, 0x99, 0x8f, 0x34, 0x91, 0xc1, 0x40, 0x94, 0x8b, 0xd8, 0xa3,
+ 0xde, 0xe1, 0xc4, 0x41, 0x82, 0x3f, 0x4c, 0xfd, 0x84, 0x05, 0xc4, 0x29,
+ 0xa5, 0xfc, 0x47, 0x7a, 0xaf, 0xa2, 0x1c, 0x00, 0x23, 0xa9, 0xbe, 0x35,
+ 0x06, 0x46, 0xc5, 0x54,
+};
+static const struct drbg_kat_no_reseed kat710_t = {
+ 4, kat710_entropyin, kat710_nonce, kat710_persstr,
+ kat710_addin0, kat710_addin1, kat710_retbits
+};
+static const struct drbg_kat kat710 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat710_t
+};
+
+static const unsigned char kat711_entropyin[] = {
+ 0x3a, 0x82, 0x0e, 0xf6, 0x05, 0xb4, 0xba, 0xc4, 0xc2, 0x76, 0x6f, 0xc3,
+ 0x93, 0xb7, 0x65, 0x69, 0x9c, 0x15, 0x3a, 0xa3, 0x7b, 0xe5, 0x75, 0x30,
+ 0x36, 0xd4, 0xbd, 0x3b, 0x72, 0xc4, 0x15, 0x07,
+};
+static const unsigned char kat711_nonce[] = {
+ 0x01, 0x8d, 0x9f, 0xed, 0x42, 0xf2, 0xd2, 0xfa, 0xa1, 0x8f, 0x73, 0xb3,
+ 0x45, 0x18, 0xad, 0xdc,
+};
+static const unsigned char kat711_persstr[] = {
+ 0xff, 0x3d, 0xa2, 0x77, 0x3e, 0x7a, 0x6b, 0x0f, 0x09, 0xea, 0xc7, 0xa9,
+ 0x9a, 0xda, 0xf1, 0x2c, 0x0b, 0xd9, 0xba, 0x07, 0xaf, 0xd1, 0x38, 0x4b,
+ 0x00, 0x24, 0x8e, 0xde, 0x8d, 0x63, 0x3d, 0x41,
+};
+static const unsigned char kat711_addin0[] = {
+ 0xb5, 0xd4, 0x23, 0x03, 0x02, 0xcc, 0xa8, 0x87, 0x87, 0xf6, 0x57, 0xc3,
+ 0x12, 0x28, 0xec, 0xfe, 0xa6, 0x66, 0x66, 0x94, 0x67, 0xd9, 0x5e, 0xd5,
+ 0x16, 0x82, 0x8e, 0xa0, 0xc6, 0xcc, 0xb6, 0xb5,
+};
+static const unsigned char kat711_addin1[] = {
+ 0xb6, 0x25, 0x7d, 0xa8, 0x39, 0x6d, 0x91, 0x59, 0x72, 0x06, 0x2f, 0xbb,
+ 0x30, 0xb6, 0x60, 0x3a, 0x4d, 0x57, 0x1b, 0x85, 0x6b, 0x05, 0x71, 0x38,
+ 0x02, 0x1d, 0xee, 0x14, 0x2c, 0xf1, 0xf5, 0xd9,
+};
+static const unsigned char kat711_retbits[] = {
+ 0xcc, 0x8b, 0xa6, 0xd2, 0x4b, 0xfb, 0x07, 0xd8, 0x3b, 0x93, 0x76, 0xff,
+ 0x07, 0xee, 0x9e, 0x19, 0x92, 0x54, 0xa9, 0x6d, 0x4c, 0x45, 0xbe, 0x1d,
+ 0x4f, 0xe8, 0xda, 0x7f, 0xa7, 0x30, 0x20, 0x8b, 0x26, 0x1d, 0xfc, 0x8d,
+ 0xb3, 0x1f, 0x40, 0x8f, 0x27, 0xfd, 0x6f, 0xe0, 0x44, 0xf4, 0x80, 0xbf,
+ 0x43, 0xc1, 0xae, 0xdc, 0x01, 0xc1, 0xdf, 0xff, 0x03, 0x40, 0xd7, 0x4a,
+ 0x41, 0x60, 0x0d, 0x1b,
+};
+static const struct drbg_kat_no_reseed kat711_t = {
+ 5, kat711_entropyin, kat711_nonce, kat711_persstr,
+ kat711_addin0, kat711_addin1, kat711_retbits
+};
+static const struct drbg_kat kat711 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat711_t
+};
+
+static const unsigned char kat712_entropyin[] = {
+ 0x57, 0x6d, 0x5b, 0x5a, 0x86, 0xd1, 0x9f, 0x70, 0x2a, 0x07, 0x0e, 0xa2,
+ 0xc2, 0xbd, 0x26, 0xc2, 0x32, 0x20, 0xf2, 0x2a, 0x2b, 0xd2, 0x43, 0x3a,
+ 0xd9, 0xdf, 0xde, 0x96, 0x4b, 0x4c, 0x92, 0x69,
+};
+static const unsigned char kat712_nonce[] = {
+ 0xc5, 0x15, 0x04, 0x49, 0xbc, 0x5b, 0x9e, 0xa1, 0xa6, 0xd5, 0x48, 0x34,
+ 0xc6, 0xfe, 0x55, 0xe4,
+};
+static const unsigned char kat712_persstr[] = {
+ 0x32, 0x5d, 0xb7, 0x77, 0x1f, 0xf2, 0x51, 0xd5, 0xb3, 0x3a, 0x83, 0xb4,
+ 0x19, 0x71, 0x62, 0x71, 0x48, 0x70, 0xbe, 0x81, 0x09, 0x55, 0x8b, 0xe4,
+ 0x34, 0x4f, 0xbf, 0x21, 0x5a, 0x0f, 0x14, 0xb4,
+};
+static const unsigned char kat712_addin0[] = {
+ 0x03, 0x9a, 0x99, 0x0b, 0x3d, 0xef, 0x70, 0x06, 0xda, 0x9e, 0x12, 0x9e,
+ 0x86, 0x33, 0x99, 0x49, 0xb1, 0x91, 0x95, 0xe7, 0xd5, 0x20, 0xf7, 0xf7,
+ 0xe3, 0xec, 0x1d, 0x0e, 0x2f, 0x5f, 0x7c, 0xea,
+};
+static const unsigned char kat712_addin1[] = {
+ 0xd4, 0x53, 0x96, 0x04, 0x40, 0x71, 0x9a, 0x68, 0xb2, 0xe1, 0x2f, 0x95,
+ 0x7f, 0x66, 0x41, 0x4c, 0xa7, 0xb2, 0x1b, 0x7f, 0xfe, 0xaa, 0x95, 0xd5,
+ 0x82, 0x2f, 0x74, 0xd2, 0x20, 0xa7, 0x84, 0xf6,
+};
+static const unsigned char kat712_retbits[] = {
+ 0xe8, 0xdd, 0x79, 0x58, 0xd2, 0xc0, 0x63, 0x22, 0x25, 0x57, 0x78, 0xe6,
+ 0x03, 0x6f, 0x17, 0x29, 0x19, 0xe5, 0x2a, 0xb5, 0x19, 0x7d, 0x62, 0x0b,
+ 0xab, 0xc6, 0xaf, 0x85, 0xaa, 0x6a, 0xff, 0xdc, 0x75, 0x45, 0x0d, 0xa3,
+ 0x43, 0x86, 0x5d, 0xd2, 0x34, 0xd3, 0xe7, 0xbc, 0xb9, 0x04, 0xa7, 0x2b,
+ 0x4e, 0xa0, 0x64, 0x50, 0xd5, 0x74, 0xd2, 0x8b, 0x5d, 0x33, 0x74, 0xb1,
+ 0xac, 0xf1, 0xee, 0x21,
+};
+static const struct drbg_kat_no_reseed kat712_t = {
+ 6, kat712_entropyin, kat712_nonce, kat712_persstr,
+ kat712_addin0, kat712_addin1, kat712_retbits
+};
+static const struct drbg_kat kat712 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat712_t
+};
+
+static const unsigned char kat713_entropyin[] = {
+ 0x06, 0xd1, 0xae, 0x8d, 0xfa, 0x79, 0xca, 0x5b, 0xaa, 0x17, 0xc4, 0x51,
+ 0xb2, 0xf1, 0xa4, 0x5f, 0x29, 0xd6, 0x93, 0xbc, 0x56, 0x5d, 0x1a, 0xd7,
+ 0x47, 0x5f, 0x48, 0xd8, 0x55, 0x57, 0x81, 0x27,
+};
+static const unsigned char kat713_nonce[] = {
+ 0x91, 0xa2, 0xdf, 0x1c, 0x8f, 0x01, 0xba, 0x16, 0xa8, 0x3a, 0x22, 0x4e,
+ 0x39, 0xf4, 0xaa, 0x30,
+};
+static const unsigned char kat713_persstr[] = {
+ 0x94, 0x29, 0x8f, 0xd4, 0xad, 0x50, 0x96, 0x0c, 0x6b, 0xcf, 0xf3, 0xf4,
+ 0x0c, 0xd6, 0xca, 0x99, 0xa2, 0x82, 0x1c, 0x56, 0x43, 0x6f, 0x29, 0x69,
+ 0xe8, 0x47, 0xb9, 0x7c, 0x12, 0xd3, 0x76, 0x4c,
+};
+static const unsigned char kat713_addin0[] = {
+ 0x6c, 0x1d, 0x46, 0x91, 0x4e, 0x2b, 0xc5, 0xb5, 0x6b, 0x58, 0x89, 0xad,
+ 0xc0, 0xae, 0x03, 0xbc, 0x60, 0x74, 0x9a, 0x9a, 0x09, 0x2a, 0x14, 0xc5,
+ 0x1f, 0xcc, 0xf2, 0xa2, 0x7c, 0xb1, 0xe4, 0xc3,
+};
+static const unsigned char kat713_addin1[] = {
+ 0x26, 0xd2, 0xda, 0x54, 0xb6, 0xe1, 0x66, 0xda, 0x72, 0xa2, 0x3b, 0x64,
+ 0x02, 0x3c, 0x55, 0x15, 0xb0, 0x01, 0x0a, 0x83, 0x37, 0xaa, 0xe0, 0x19,
+ 0xf8, 0x9c, 0x22, 0x7b, 0xbb, 0x4b, 0x18, 0xde,
+};
+static const unsigned char kat713_retbits[] = {
+ 0x75, 0xb5, 0x46, 0xc2, 0xfe, 0x1b, 0x40, 0x13, 0xc7, 0xbc, 0x31, 0xe0,
+ 0xc8, 0x0b, 0xb1, 0x08, 0x9c, 0xd9, 0x46, 0xf1, 0xb0, 0x35, 0x61, 0x1f,
+ 0x91, 0x26, 0xa0, 0xe3, 0x30, 0xb8, 0xfd, 0xb0, 0x89, 0x52, 0x0a, 0xa7,
+ 0x36, 0x8e, 0x12, 0x43, 0x70, 0x88, 0x9b, 0x31, 0x55, 0xd3, 0x9b, 0x62,
+ 0x47, 0x2f, 0xba, 0xe7, 0x1e, 0xb2, 0x69, 0x17, 0x71, 0x04, 0xbb, 0x61,
+ 0xaf, 0x3d, 0xde, 0x39,
+};
+static const struct drbg_kat_no_reseed kat713_t = {
+ 7, kat713_entropyin, kat713_nonce, kat713_persstr,
+ kat713_addin0, kat713_addin1, kat713_retbits
+};
+static const struct drbg_kat kat713 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat713_t
+};
+
+static const unsigned char kat714_entropyin[] = {
+ 0x12, 0xbd, 0x36, 0x67, 0x67, 0xea, 0x35, 0x2d, 0x61, 0xf0, 0x59, 0xde,
+ 0xb3, 0x8c, 0x8a, 0xa4, 0x8e, 0xff, 0x1e, 0xa8, 0x2e, 0xa4, 0xd6, 0x24,
+ 0xac, 0x4d, 0x0b, 0x9a, 0x85, 0x40, 0x2b, 0xc7,
+};
+static const unsigned char kat714_nonce[] = {
+ 0x1f, 0xc6, 0x06, 0xb0, 0xcb, 0x2b, 0xcd, 0x60, 0x51, 0x90, 0x21, 0x8c,
+ 0x3a, 0xfe, 0xcf, 0x2c,
+};
+static const unsigned char kat714_persstr[] = {
+ 0x79, 0x55, 0x43, 0x81, 0x96, 0x87, 0x50, 0xff, 0x21, 0xa6, 0x24, 0x9a,
+ 0xb6, 0x56, 0x1c, 0x13, 0x2c, 0xed, 0x11, 0x17, 0xc8, 0x12, 0xfd, 0xfe,
+ 0x17, 0x9f, 0x96, 0xd0, 0x96, 0x09, 0xf2, 0x6c,
+};
+static const unsigned char kat714_addin0[] = {
+ 0x11, 0x56, 0xea, 0x54, 0xe2, 0xd4, 0x9a, 0xf0, 0xd9, 0xc3, 0x97, 0x5f,
+ 0x3e, 0xd8, 0xfe, 0x12, 0xa5, 0x7b, 0xf1, 0xd7, 0x21, 0x5d, 0x7f, 0x7e,
+ 0xa7, 0xd5, 0xb8, 0x02, 0xdf, 0x53, 0x3e, 0xcb,
+};
+static const unsigned char kat714_addin1[] = {
+ 0x9e, 0x17, 0x1c, 0x51, 0xfa, 0x0d, 0x85, 0xbf, 0x63, 0x7f, 0x44, 0xe5,
+ 0x00, 0xa2, 0x32, 0x77, 0xd7, 0x54, 0x83, 0x6e, 0xbc, 0x72, 0x76, 0xca,
+ 0x7f, 0xbe, 0x99, 0x50, 0xc8, 0xf8, 0x00, 0xa1,
+};
+static const unsigned char kat714_retbits[] = {
+ 0xb3, 0xbb, 0x70, 0x0f, 0x1e, 0x81, 0x05, 0x5b, 0x25, 0xb1, 0xb2, 0xd7,
+ 0x87, 0xdf, 0x3c, 0x5e, 0x8e, 0x68, 0x8d, 0xcb, 0xbb, 0xca, 0x7c, 0x5c,
+ 0x97, 0x5a, 0xb8, 0xa6, 0xe7, 0x82, 0xd4, 0xac, 0x19, 0x69, 0xaf, 0x4f,
+ 0x9a, 0x79, 0xf7, 0x5a, 0xd8, 0x8b, 0xcb, 0x82, 0x86, 0xf3, 0x1b, 0x1a,
+ 0x4a, 0x3a, 0xfb, 0xc3, 0xf5, 0x75, 0xac, 0x61, 0x6b, 0x59, 0xce, 0x62,
+ 0x63, 0x69, 0x08, 0x74,
+};
+static const struct drbg_kat_no_reseed kat714_t = {
+ 8, kat714_entropyin, kat714_nonce, kat714_persstr,
+ kat714_addin0, kat714_addin1, kat714_retbits
+};
+static const struct drbg_kat kat714 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat714_t
+};
+
+static const unsigned char kat715_entropyin[] = {
+ 0x9e, 0x7a, 0x21, 0x01, 0x6a, 0xce, 0xce, 0x94, 0x13, 0xf1, 0x22, 0x46,
+ 0xe9, 0x6a, 0x33, 0x2a, 0x03, 0x9e, 0x94, 0x07, 0x3f, 0x70, 0x21, 0xec,
+ 0xcf, 0xdb, 0x2b, 0xb0, 0x56, 0x61, 0x04, 0x89,
+};
+static const unsigned char kat715_nonce[] = {
+ 0x5d, 0x47, 0xa5, 0x9e, 0x42, 0x8b, 0xba, 0x41, 0x66, 0x13, 0x11, 0x0d,
+ 0xbc, 0x36, 0xf0, 0xd4,
+};
+static const unsigned char kat715_persstr[] = {
+ 0xf6, 0xfd, 0x57, 0x99, 0x46, 0xd0, 0xb6, 0xca, 0x24, 0x13, 0x13, 0x10,
+ 0x3d, 0x68, 0xcb, 0x91, 0x52, 0x87, 0xaa, 0x57, 0x11, 0x38, 0xc2, 0x70,
+ 0x2b, 0x3a, 0x17, 0xe4, 0x35, 0x20, 0x34, 0x8b,
+};
+static const unsigned char kat715_addin0[] = {
+ 0xa4, 0x5f, 0xc7, 0x3e, 0x01, 0x51, 0x0f, 0xee, 0x62, 0x40, 0x78, 0x7e,
+ 0x16, 0x6c, 0x74, 0x36, 0x35, 0xfb, 0x55, 0xd1, 0x27, 0x6c, 0x03, 0x67,
+ 0x2e, 0x3b, 0x4a, 0xa8, 0x43, 0x4d, 0x8a, 0xf0,
+};
+static const unsigned char kat715_addin1[] = {
+ 0x06, 0xa7, 0xb5, 0x7b, 0x49, 0x7e, 0xe6, 0x6f, 0xfe, 0xcc, 0xa0, 0xa6,
+ 0x2b, 0xb4, 0x7b, 0x6d, 0x56, 0x3e, 0x69, 0xd8, 0x6a, 0x39, 0xbe, 0x2c,
+ 0xee, 0x67, 0x33, 0xdb, 0xc9, 0xcf, 0xc5, 0x95,
+};
+static const unsigned char kat715_retbits[] = {
+ 0x7f, 0xae, 0xde, 0x53, 0x72, 0x62, 0xcf, 0xfd, 0xad, 0x9f, 0xce, 0x2b,
+ 0xe2, 0xb3, 0xb6, 0xee, 0x03, 0x18, 0x52, 0x56, 0x1c, 0x70, 0x88, 0x15,
+ 0x0f, 0x77, 0x65, 0x80, 0xf5, 0x6f, 0xbf, 0x0b, 0x83, 0xe1, 0x92, 0xdb,
+ 0xf5, 0x45, 0x5f, 0xfd, 0x8d, 0xf9, 0x51, 0x59, 0x9c, 0x17, 0x58, 0x68,
+ 0x7e, 0x76, 0xb1, 0xbe, 0xb7, 0x4a, 0x74, 0x7a, 0x7f, 0xb6, 0x51, 0xd0,
+ 0x52, 0xc4, 0x91, 0x69,
+};
+static const struct drbg_kat_no_reseed kat715_t = {
+ 9, kat715_entropyin, kat715_nonce, kat715_persstr,
+ kat715_addin0, kat715_addin1, kat715_retbits
+};
+static const struct drbg_kat kat715 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat715_t
+};
+
+static const unsigned char kat716_entropyin[] = {
+ 0x5f, 0x3d, 0x88, 0x84, 0x87, 0x37, 0x0e, 0x4b, 0x7c, 0xde, 0xc8, 0x83,
+ 0x37, 0x16, 0x55, 0x23, 0x89, 0x82, 0x90, 0xfa, 0xf6, 0xbf, 0x73, 0xe3,
+ 0x80, 0x12, 0xd3, 0x55, 0x62, 0x58, 0x79, 0xa5,
+};
+static const unsigned char kat716_nonce[] = {
+ 0xc8, 0xc1, 0x4e, 0x48, 0x18, 0xd8, 0x6a, 0xf2, 0xc8, 0x87, 0x47, 0x24,
+ 0x75, 0xc7, 0x5f, 0x3b,
+};
+static const unsigned char kat716_persstr[] = {
+ 0xdd, 0x92, 0x51, 0x7b, 0x87, 0x19, 0xfb, 0xe7, 0x0f, 0xea, 0xa8, 0x2e,
+ 0xb8, 0x5c, 0x7f, 0x11, 0xad, 0xd3, 0x46, 0xe3, 0x52, 0x43, 0xf0, 0x47,
+ 0xe1, 0x72, 0xfd, 0xc2, 0xc3, 0x7f, 0x25, 0xc4,
+};
+static const unsigned char kat716_addin0[] = {
+ 0x0a, 0x4b, 0xdd, 0x43, 0x1b, 0xbc, 0xb6, 0x50, 0xa5, 0xe6, 0xae, 0xca,
+ 0xb5, 0x96, 0x49, 0xe4, 0x1b, 0x8c, 0x1a, 0xc5, 0x01, 0x11, 0xd1, 0x2b,
+ 0xdd, 0x3e, 0x0b, 0x9c, 0xf6, 0x67, 0xd2, 0xff,
+};
+static const unsigned char kat716_addin1[] = {
+ 0xcf, 0xab, 0xd6, 0x2c, 0x4b, 0xd2, 0x30, 0x69, 0x57, 0x39, 0xde, 0x22,
+ 0x15, 0x17, 0xcf, 0x9e, 0xe0, 0x64, 0x98, 0x7c, 0xe6, 0x3e, 0xd1, 0xd4,
+ 0xb4, 0xa8, 0x8b, 0x3b, 0x14, 0xff, 0xae, 0xbe,
+};
+static const unsigned char kat716_retbits[] = {
+ 0x89, 0x0c, 0x6b, 0x5c, 0x1e, 0x7b, 0x47, 0x82, 0x26, 0xa2, 0x0f, 0xef,
+ 0xaa, 0x4c, 0x03, 0xe8, 0x78, 0x53, 0x4d, 0x86, 0xa6, 0x07, 0x5f, 0x99,
+ 0x11, 0xde, 0x98, 0xa4, 0xe9, 0xac, 0xd6, 0x48, 0xe7, 0x42, 0x98, 0xb3,
+ 0xe7, 0x49, 0xf6, 0xda, 0xd9, 0x92, 0x59, 0x76, 0xe7, 0xb6, 0x92, 0x06,
+ 0x12, 0x9e, 0x76, 0x63, 0xe2, 0x9c, 0xaa, 0x3e, 0x3e, 0x92, 0xf7, 0x50,
+ 0xc7, 0x46, 0x65, 0xfb,
+};
+static const struct drbg_kat_no_reseed kat716_t = {
+ 10, kat716_entropyin, kat716_nonce, kat716_persstr,
+ kat716_addin0, kat716_addin1, kat716_retbits
+};
+static const struct drbg_kat kat716 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat716_t
+};
+
+static const unsigned char kat717_entropyin[] = {
+ 0x49, 0xc7, 0xfc, 0x5f, 0xa4, 0x5f, 0x41, 0x65, 0xdc, 0xda, 0xdb, 0x6c,
+ 0x45, 0xe0, 0x9d, 0x1d, 0x96, 0x5c, 0x52, 0x93, 0x32, 0x98, 0x15, 0x04,
+ 0xa5, 0xd3, 0xda, 0x21, 0x12, 0x4b, 0x85, 0x65,
+};
+static const unsigned char kat717_nonce[] = {
+ 0x34, 0x67, 0x45, 0xf1, 0x8e, 0x41, 0x66, 0x6a, 0x2e, 0x24, 0x09, 0xac,
+ 0x7b, 0x36, 0xa2, 0x44,
+};
+static const unsigned char kat717_persstr[] = {
+ 0xd8, 0x9f, 0x11, 0x6d, 0x8c, 0x3b, 0xe3, 0x08, 0x78, 0xea, 0xfe, 0x8f,
+ 0xab, 0xa4, 0xbf, 0xf3, 0x51, 0x9b, 0x14, 0x4c, 0x08, 0xc0, 0x38, 0xc6,
+ 0xed, 0x3c, 0xcf, 0xbc, 0x89, 0x00, 0xde, 0x3c,
+};
+static const unsigned char kat717_addin0[] = {
+ 0xaa, 0x45, 0x0c, 0xa2, 0x9e, 0xa6, 0x90, 0xe4, 0x25, 0x8a, 0xf9, 0x3f,
+ 0x46, 0x2e, 0x08, 0x49, 0xa1, 0xfe, 0x52, 0x0a, 0xea, 0xd9, 0x6c, 0x54,
+ 0x88, 0xa2, 0xf6, 0x9c, 0xca, 0xd7, 0x33, 0xca,
+};
+static const unsigned char kat717_addin1[] = {
+ 0xde, 0x18, 0x86, 0x4a, 0x44, 0xc5, 0xfa, 0x8e, 0xeb, 0x11, 0x16, 0x69,
+ 0x6a, 0xa9, 0xc7, 0x5d, 0x57, 0xcc, 0x8c, 0xe0, 0x7b, 0x76, 0x93, 0xba,
+ 0xbb, 0x22, 0xf3, 0xf8, 0x83, 0x14, 0xf2, 0x2f,
+};
+static const unsigned char kat717_retbits[] = {
+ 0xcd, 0x18, 0x78, 0xca, 0x2e, 0x9b, 0x29, 0x34, 0x89, 0x94, 0x64, 0x8b,
+ 0x95, 0x78, 0x92, 0x33, 0x32, 0xa6, 0x2f, 0xdc, 0xc8, 0x0c, 0x7d, 0x8e,
+ 0x20, 0x28, 0x15, 0xf9, 0xf4, 0x8d, 0x2a, 0x75, 0xae, 0xc7, 0x8e, 0x70,
+ 0x94, 0x20, 0x17, 0xd8, 0xa0, 0xb5, 0x34, 0xde, 0x1f, 0x8f, 0xfe, 0x5d,
+ 0xb5, 0x02, 0xac, 0xb3, 0xab, 0xd4, 0x73, 0x83, 0x77, 0xd9, 0x8d, 0x26,
+ 0xb1, 0x63, 0xe6, 0x07,
+};
+static const struct drbg_kat_no_reseed kat717_t = {
+ 11, kat717_entropyin, kat717_nonce, kat717_persstr,
+ kat717_addin0, kat717_addin1, kat717_retbits
+};
+static const struct drbg_kat kat717 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat717_t
+};
+
+static const unsigned char kat718_entropyin[] = {
+ 0xc9, 0x4d, 0x90, 0x7a, 0x28, 0x64, 0x0e, 0xff, 0x37, 0x74, 0x56, 0xef,
+ 0xba, 0xee, 0x67, 0xfe, 0x52, 0x16, 0xcf, 0x97, 0xd1, 0xad, 0xf7, 0xdf,
+ 0x4d, 0xb6, 0xe1, 0x8b, 0x59, 0x6e, 0x7b, 0xe0,
+};
+static const unsigned char kat718_nonce[] = {
+ 0x57, 0x3c, 0xe3, 0xb9, 0xd4, 0xfd, 0x83, 0x0a, 0xfb, 0x99, 0xda, 0x3b,
+ 0xae, 0x14, 0xcc, 0x18,
+};
+static const unsigned char kat718_persstr[] = {
+ 0x68, 0xcb, 0x89, 0xdf, 0x07, 0x3d, 0x0e, 0x79, 0x36, 0x77, 0x43, 0xaf,
+ 0x1c, 0x14, 0x70, 0xaa, 0x65, 0x7d, 0xd6, 0x79, 0x24, 0xd9, 0x64, 0xee,
+ 0x80, 0xbe, 0x72, 0xd9, 0x91, 0x98, 0xe4, 0xd9,
+};
+static const unsigned char kat718_addin0[] = {
+ 0xe4, 0xc5, 0xa3, 0x39, 0xdb, 0xfa, 0xd8, 0x03, 0x6a, 0x3b, 0x05, 0x75,
+ 0xbd, 0xfa, 0x3c, 0x7d, 0x2f, 0x55, 0xab, 0x64, 0x2f, 0xc8, 0xce, 0xdd,
+ 0xa1, 0x2d, 0x90, 0x0d, 0x8f, 0x0f, 0x74, 0x49,
+};
+static const unsigned char kat718_addin1[] = {
+ 0x86, 0x05, 0xc7, 0x13, 0xcd, 0x3b, 0x0e, 0xb8, 0x3d, 0xcc, 0xdc, 0x42,
+ 0x27, 0x8c, 0x0e, 0x40, 0x2c, 0xfb, 0x83, 0xba, 0x5a, 0x5a, 0xd8, 0x86,
+ 0x4d, 0xa6, 0x62, 0x2b, 0x2a, 0x72, 0x58, 0x34,
+};
+static const unsigned char kat718_retbits[] = {
+ 0x14, 0x57, 0xa5, 0xd3, 0x63, 0xd5, 0x7f, 0xa3, 0x6c, 0x01, 0x00, 0x6f,
+ 0x1e, 0x95, 0x0f, 0x14, 0x40, 0x9a, 0xba, 0x72, 0xa1, 0x43, 0xb1, 0x84,
+ 0x70, 0xc4, 0x6a, 0xd1, 0xc2, 0xe3, 0x19, 0xb6, 0x4e, 0xa5, 0x88, 0xd6,
+ 0x83, 0xfc, 0x8a, 0xf7, 0x44, 0x23, 0x74, 0x22, 0x7b, 0x8f, 0x42, 0x4c,
+ 0x4f, 0x03, 0x0b, 0x56, 0x15, 0x91, 0x54, 0x65, 0xea, 0xe7, 0xfa, 0xa0,
+ 0x6a, 0xb9, 0xd2, 0x96,
+};
+static const struct drbg_kat_no_reseed kat718_t = {
+ 12, kat718_entropyin, kat718_nonce, kat718_persstr,
+ kat718_addin0, kat718_addin1, kat718_retbits
+};
+static const struct drbg_kat kat718 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat718_t
+};
+
+static const unsigned char kat719_entropyin[] = {
+ 0xd8, 0xc2, 0x8c, 0x04, 0xa7, 0x4e, 0xdd, 0xdb, 0xfe, 0xcb, 0x4b, 0x1a,
+ 0x23, 0x20, 0x79, 0x3d, 0x9e, 0x22, 0x82, 0x04, 0x68, 0x6c, 0x97, 0x3c,
+ 0xd0, 0x1c, 0x95, 0xbe, 0x37, 0x29, 0x7a, 0x57,
+};
+static const unsigned char kat719_nonce[] = {
+ 0x12, 0x1d, 0x67, 0x3e, 0xc1, 0xd9, 0x62, 0x41, 0x33, 0xe4, 0x2e, 0x2f,
+ 0xa7, 0xc7, 0xa7, 0x51,
+};
+static const unsigned char kat719_persstr[] = {
+ 0x33, 0x97, 0x80, 0xb0, 0x25, 0x37, 0x0e, 0x43, 0x9b, 0x7c, 0x92, 0x70,
+ 0x3b, 0x66, 0xeb, 0xd5, 0x90, 0x4e, 0xad, 0x35, 0xe2, 0x64, 0x0a, 0x85,
+ 0x96, 0x5a, 0xa0, 0xc4, 0x60, 0x8c, 0x5a, 0x09,
+};
+static const unsigned char kat719_addin0[] = {
+ 0x9a, 0xe1, 0x74, 0x55, 0xaf, 0x94, 0xa8, 0xd9, 0xeb, 0x2d, 0x0c, 0x52,
+ 0x6d, 0x2e, 0x70, 0xbb, 0x97, 0xde, 0xe5, 0x05, 0xed, 0x5a, 0x9a, 0xa9,
+ 0x33, 0x33, 0xc0, 0x79, 0x68, 0xdf, 0xa1, 0xac,
+};
+static const unsigned char kat719_addin1[] = {
+ 0xd5, 0xfa, 0x73, 0x55, 0xfd, 0x2f, 0x14, 0x4f, 0x3f, 0xeb, 0x64, 0x2b,
+ 0xee, 0xc1, 0xfb, 0x49, 0x40, 0xe5, 0xd2, 0xd1, 0xda, 0x0d, 0xbf, 0xa1,
+ 0xe5, 0xf5, 0x9a, 0x08, 0x60, 0xfa, 0xca, 0x6a,
+};
+static const unsigned char kat719_retbits[] = {
+ 0x96, 0xcb, 0x4a, 0xda, 0xcb, 0x8b, 0xb1, 0xca, 0xf1, 0xcb, 0x1e, 0x09,
+ 0xb4, 0x21, 0xcb, 0x52, 0xb1, 0x14, 0xcf, 0x6b, 0xc4, 0xb9, 0x4e, 0x3d,
+ 0xe2, 0x1f, 0x14, 0x0b, 0xf5, 0xda, 0xc2, 0xbf, 0x10, 0x39, 0x94, 0xb8,
+ 0x59, 0xe2, 0x0e, 0x38, 0x43, 0x1d, 0x7a, 0x91, 0x2f, 0xa9, 0x86, 0xb2,
+ 0x88, 0x98, 0x41, 0x24, 0x1c, 0x8e, 0xc9, 0x42, 0x29, 0x8a, 0x89, 0xfd,
+ 0x68, 0x30, 0x69, 0x5a,
+};
+static const struct drbg_kat_no_reseed kat719_t = {
+ 13, kat719_entropyin, kat719_nonce, kat719_persstr,
+ kat719_addin0, kat719_addin1, kat719_retbits
+};
+static const struct drbg_kat kat719 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat719_t
+};
+
+static const unsigned char kat720_entropyin[] = {
+ 0x5f, 0xc1, 0xa4, 0x6b, 0x9b, 0x53, 0xe8, 0x3a, 0xdd, 0xd6, 0x16, 0x51,
+ 0x79, 0x32, 0xad, 0x8a, 0x84, 0xe5, 0x50, 0xa5, 0x83, 0x27, 0xee, 0x24,
+ 0x5a, 0xef, 0x20, 0x82, 0x64, 0xc5, 0xb9, 0x1c,
+};
+static const unsigned char kat720_nonce[] = {
+ 0x9c, 0xe7, 0x4e, 0x2b, 0x3c, 0x43, 0xba, 0x1d, 0x98, 0xf7, 0xd4, 0xe8,
+ 0xeb, 0x5c, 0x9b, 0x3e,
+};
+static const unsigned char kat720_persstr[] = {
+ 0x5f, 0xe0, 0x1c, 0x84, 0xf8, 0x24, 0xc1, 0x7e, 0x4d, 0xfb, 0xfd, 0xb7,
+ 0x5c, 0x32, 0x12, 0xcb, 0x2b, 0xfd, 0xf2, 0xda, 0x7c, 0x49, 0x7f, 0xeb,
+ 0xc0, 0x96, 0x74, 0x75, 0xeb, 0xe2, 0x91, 0xf7,
+};
+static const unsigned char kat720_addin0[] = {
+ 0x84, 0x92, 0x2c, 0x03, 0x35, 0xa0, 0xea, 0xd6, 0x09, 0xe5, 0xa9, 0x2c,
+ 0xfc, 0x4a, 0x22, 0x5b, 0xd3, 0xc7, 0xc0, 0x1a, 0xb4, 0x58, 0x0b, 0x78,
+ 0x63, 0x38, 0xe1, 0xca, 0xa3, 0x62, 0x2f, 0x44,
+};
+static const unsigned char kat720_addin1[] = {
+ 0x34, 0xb0, 0x34, 0xca, 0x64, 0x3b, 0xbf, 0xd2, 0xfc, 0xc5, 0x7c, 0x9b,
+ 0x53, 0xe0, 0xf9, 0xb3, 0xfd, 0x6a, 0x73, 0x45, 0x4f, 0x18, 0x23, 0xdf,
+ 0xe7, 0xb7, 0x07, 0x6e, 0xc7, 0x3f, 0xd9, 0x56,
+};
+static const unsigned char kat720_retbits[] = {
+ 0x6c, 0xaa, 0x44, 0x75, 0x18, 0x9e, 0xe0, 0x0d, 0xdc, 0x54, 0x91, 0x0f,
+ 0x87, 0x23, 0xb0, 0xe5, 0xb8, 0xd3, 0xd0, 0xc3, 0x21, 0xce, 0x7f, 0x2a,
+ 0xc7, 0x19, 0x4d, 0x13, 0x4a, 0x0a, 0x31, 0xd9, 0x6b, 0x10, 0x2d, 0xd5,
+ 0x8e, 0x09, 0x2e, 0x08, 0xf8, 0xa0, 0x08, 0xf0, 0x5c, 0x4f, 0x2a, 0xfb,
+ 0x29, 0x01, 0xc6, 0xe2, 0x95, 0x49, 0xd3, 0xa7, 0x20, 0xaa, 0x2b, 0x1d,
+ 0x1f, 0x46, 0x1b, 0xb9,
+};
+static const struct drbg_kat_no_reseed kat720_t = {
+ 14, kat720_entropyin, kat720_nonce, kat720_persstr,
+ kat720_addin0, kat720_addin1, kat720_retbits
+};
+static const struct drbg_kat kat720 = {
+ NO_RESEED, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat720_t
+};
+
+static const unsigned char kat721_entropyin[] = {
+ 0xce, 0x50, 0xf3, 0x3d, 0xa5, 0xd4, 0xc1, 0xd3, 0xd4, 0x00, 0x4e, 0xb3,
+ 0x52, 0x44, 0xb7, 0xf2, 0xcd, 0x7f, 0x2e, 0x50, 0x76, 0xfb, 0xf6, 0x78,
+ 0x0a, 0x7f, 0xf6, 0x34, 0xb2, 0x49, 0xa5, 0xfc,
+};
+static const unsigned char kat721_nonce[] = {0};
+static const unsigned char kat721_persstr[] = {0};
+static const unsigned char kat721_addin0[] = {0};
+static const unsigned char kat721_addin1[] = {0};
+static const unsigned char kat721_retbits[] = {
+ 0x65, 0x45, 0xc0, 0x52, 0x9d, 0x37, 0x24, 0x43, 0xb3, 0x92, 0xce, 0xb3,
+ 0xae, 0x3a, 0x99, 0xa3, 0x0f, 0x96, 0x3e, 0xaf, 0x31, 0x32, 0x80, 0xf1,
+ 0xd1, 0xa1, 0xe8, 0x7f, 0x9d, 0xb3, 0x73, 0xd3, 0x61, 0xe7, 0x5d, 0x18,
+ 0x01, 0x82, 0x66, 0x49, 0x9c, 0xcc, 0xd6, 0x4d, 0x9b, 0xbb, 0x8d, 0xe0,
+ 0x18, 0x5f, 0x21, 0x33, 0x83, 0x08, 0x0f, 0xad, 0xde, 0xc4, 0x6b, 0xae,
+ 0x1f, 0x78, 0x4e, 0x5a,
+};
+static const struct drbg_kat_no_reseed kat721_t = {
+ 0, kat721_entropyin, kat721_nonce, kat721_persstr,
+ kat721_addin0, kat721_addin1, kat721_retbits
+};
+static const struct drbg_kat kat721 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat721_t
+};
+
+static const unsigned char kat722_entropyin[] = {
+ 0xa3, 0x85, 0xf7, 0x0a, 0x4d, 0x45, 0x03, 0x21, 0xdf, 0xd1, 0x8d, 0x83,
+ 0x79, 0xef, 0x8e, 0x77, 0x36, 0xfe, 0xe5, 0xfb, 0xf0, 0xa0, 0xae, 0xa5,
+ 0x3b, 0x76, 0x69, 0x60, 0x94, 0xe8, 0xaa, 0x93,
+};
+static const unsigned char kat722_nonce[] = {0};
+static const unsigned char kat722_persstr[] = {0};
+static const unsigned char kat722_addin0[] = {0};
+static const unsigned char kat722_addin1[] = {0};
+static const unsigned char kat722_retbits[] = {
+ 0x1a, 0x06, 0x25, 0x53, 0xab, 0x60, 0x45, 0x7e, 0xd1, 0xf1, 0xc5, 0x2f,
+ 0x5a, 0xca, 0x5a, 0x3b, 0xe5, 0x64, 0xa2, 0x75, 0x45, 0x35, 0x8c, 0x11,
+ 0x2e, 0xd9, 0x2c, 0x6e, 0xae, 0x2c, 0xb7, 0x59, 0x7c, 0xfc, 0xc2, 0xe0,
+ 0xa5, 0xdd, 0x81, 0xc5, 0xbf, 0xec, 0xc9, 0x41, 0xda, 0x5e, 0x81, 0x52,
+ 0xa9, 0x01, 0x0d, 0x48, 0x45, 0x17, 0x07, 0x34, 0x67, 0x6c, 0x8c, 0x1b,
+ 0x6b, 0x30, 0x73, 0xa5,
+};
+static const struct drbg_kat_no_reseed kat722_t = {
+ 1, kat722_entropyin, kat722_nonce, kat722_persstr,
+ kat722_addin0, kat722_addin1, kat722_retbits
+};
+static const struct drbg_kat kat722 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat722_t
+};
+
+static const unsigned char kat723_entropyin[] = {
+ 0xd4, 0xf4, 0x7c, 0x38, 0x5e, 0x5e, 0xe3, 0x69, 0x15, 0x97, 0x83, 0x86,
+ 0xa0, 0x74, 0xd4, 0x13, 0xd0, 0x4a, 0x1c, 0xe3, 0xa1, 0x3a, 0x0f, 0xe2,
+ 0xb1, 0x7f, 0x3f, 0x20, 0xf8, 0x3a, 0x93, 0xfd,
+};
+static const unsigned char kat723_nonce[] = {0};
+static const unsigned char kat723_persstr[] = {0};
+static const unsigned char kat723_addin0[] = {0};
+static const unsigned char kat723_addin1[] = {0};
+static const unsigned char kat723_retbits[] = {
+ 0x27, 0xf8, 0x80, 0xdf, 0x4c, 0x29, 0x07, 0x69, 0x7f, 0xb2, 0xf5, 0x94,
+ 0xe3, 0x11, 0x55, 0x9c, 0xea, 0x82, 0x70, 0x49, 0x32, 0x7a, 0xf3, 0x1f,
+ 0xa7, 0xf0, 0xcb, 0xf3, 0x32, 0xc4, 0x62, 0x06, 0x74, 0xf5, 0x03, 0xd7,
+ 0xdc, 0x37, 0x83, 0x20, 0xd2, 0x28, 0x90, 0x71, 0x51, 0xd3, 0x2e, 0xe5,
+ 0xe3, 0xf5, 0xc5, 0xec, 0xcb, 0x13, 0xaf, 0xe5, 0x8b, 0xf6, 0xa6, 0x01,
+ 0x92, 0xe6, 0xd7, 0x0e,
+};
+static const struct drbg_kat_no_reseed kat723_t = {
+ 2, kat723_entropyin, kat723_nonce, kat723_persstr,
+ kat723_addin0, kat723_addin1, kat723_retbits
+};
+static const struct drbg_kat kat723 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat723_t
+};
+
+static const unsigned char kat724_entropyin[] = {
+ 0x12, 0x3d, 0xd8, 0x2c, 0x6a, 0x8d, 0x6a, 0x5f, 0x23, 0x06, 0x77, 0x02,
+ 0xe8, 0x22, 0x27, 0x33, 0xa3, 0x9c, 0x48, 0x96, 0x5b, 0xac, 0xcd, 0x9b,
+ 0xff, 0xed, 0x5d, 0xc5, 0x1c, 0xb7, 0x89, 0xb6,
+};
+static const unsigned char kat724_nonce[] = {0};
+static const unsigned char kat724_persstr[] = {0};
+static const unsigned char kat724_addin0[] = {0};
+static const unsigned char kat724_addin1[] = {0};
+static const unsigned char kat724_retbits[] = {
+ 0x12, 0xdd, 0x6a, 0x87, 0x4a, 0x46, 0x56, 0xc7, 0xd5, 0xa2, 0x1c, 0xb1,
+ 0x17, 0x9b, 0x3c, 0x4a, 0x99, 0x82, 0xae, 0x00, 0xfc, 0x1b, 0xf2, 0x6c,
+ 0xb3, 0xa1, 0x39, 0xcb, 0x21, 0xc4, 0x50, 0x50, 0x45, 0xff, 0x5e, 0x22,
+ 0x3e, 0x2d, 0x08, 0x1f, 0xee, 0x52, 0xb2, 0x22, 0x46, 0xd4, 0x85, 0xb9,
+ 0xf1, 0x27, 0x4a, 0xef, 0x79, 0xa3, 0x30, 0x1d, 0x26, 0x36, 0x99, 0x97,
+ 0x99, 0xaa, 0xd3, 0x1d,
+};
+static const struct drbg_kat_no_reseed kat724_t = {
+ 3, kat724_entropyin, kat724_nonce, kat724_persstr,
+ kat724_addin0, kat724_addin1, kat724_retbits
+};
+static const struct drbg_kat kat724 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat724_t
+};
+
+static const unsigned char kat725_entropyin[] = {
+ 0xf1, 0xa6, 0x9a, 0xf8, 0x90, 0xb2, 0xc9, 0x79, 0xfa, 0xe0, 0x46, 0xa2,
+ 0xb5, 0x8d, 0x00, 0xa8, 0x33, 0x1c, 0x53, 0x22, 0x47, 0x2b, 0x0e, 0x61,
+ 0x9b, 0xb3, 0x72, 0xbf, 0xd0, 0x27, 0xf7, 0x05,
+};
+static const unsigned char kat725_nonce[] = {0};
+static const unsigned char kat725_persstr[] = {0};
+static const unsigned char kat725_addin0[] = {0};
+static const unsigned char kat725_addin1[] = {0};
+static const unsigned char kat725_retbits[] = {
+ 0x96, 0x09, 0x12, 0x58, 0xc4, 0x22, 0x4e, 0x3b, 0x03, 0xd6, 0x5c, 0x93,
+ 0x8c, 0x97, 0x83, 0x2b, 0x55, 0x14, 0x30, 0x69, 0xdb, 0x57, 0x55, 0x19,
+ 0x6d, 0x52, 0xf5, 0x25, 0xbe, 0x95, 0x9d, 0x51, 0x9b, 0x1e, 0x02, 0xe5,
+ 0xf2, 0xda, 0xbf, 0x4d, 0xd2, 0x16, 0x4f, 0x9b, 0xb0, 0x6a, 0x16, 0xa6,
+ 0x35, 0x76, 0xff, 0x6d, 0xeb, 0x04, 0x2d, 0xab, 0x74, 0x03, 0x39, 0x16,
+ 0xc9, 0x54, 0x98, 0xc1,
+};
+static const struct drbg_kat_no_reseed kat725_t = {
+ 4, kat725_entropyin, kat725_nonce, kat725_persstr,
+ kat725_addin0, kat725_addin1, kat725_retbits
+};
+static const struct drbg_kat kat725 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat725_t
+};
+
+static const unsigned char kat726_entropyin[] = {
+ 0x14, 0xa9, 0xa1, 0xe2, 0x0c, 0xa3, 0x68, 0x6f, 0x3e, 0xc0, 0x96, 0x03,
+ 0xf6, 0x73, 0x0b, 0xdd, 0x73, 0xa9, 0xcc, 0x8c, 0x32, 0x38, 0x8e, 0xc0,
+ 0x0b, 0xc2, 0x8e, 0x6c, 0x9e, 0xc6, 0x5d, 0x87,
+};
+static const unsigned char kat726_nonce[] = {0};
+static const unsigned char kat726_persstr[] = {0};
+static const unsigned char kat726_addin0[] = {0};
+static const unsigned char kat726_addin1[] = {0};
+static const unsigned char kat726_retbits[] = {
+ 0xc1, 0x29, 0x46, 0x45, 0x7a, 0xd8, 0x9d, 0xde, 0x78, 0x8e, 0x13, 0xc5,
+ 0x09, 0x2b, 0xbf, 0x3e, 0x9c, 0x7f, 0x61, 0xea, 0xc7, 0x32, 0x61, 0xd0,
+ 0x1d, 0x39, 0x6a, 0x1d, 0x9d, 0x11, 0x63, 0xee, 0xe8, 0x47, 0xa5, 0x61,
+ 0xd8, 0xe5, 0x20, 0x80, 0xcd, 0x9b, 0xdc, 0xe5, 0x70, 0x14, 0x17, 0x82,
+ 0xeb, 0xf1, 0x67, 0xc4, 0x70, 0x0a, 0x66, 0xac, 0xa6, 0xfd, 0x5c, 0x91,
+ 0x16, 0xa7, 0xbe, 0x49,
+};
+static const struct drbg_kat_no_reseed kat726_t = {
+ 5, kat726_entropyin, kat726_nonce, kat726_persstr,
+ kat726_addin0, kat726_addin1, kat726_retbits
+};
+static const struct drbg_kat kat726 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat726_t
+};
+
+static const unsigned char kat727_entropyin[] = {
+ 0x97, 0x26, 0x1a, 0x2c, 0x19, 0xc6, 0xdc, 0x36, 0xa6, 0xd0, 0x28, 0x3a,
+ 0x17, 0x7e, 0xb9, 0x66, 0x6c, 0x21, 0x81, 0x7f, 0xc0, 0xfc, 0xa4, 0x62,
+ 0xc5, 0x3d, 0x90, 0xb3, 0xd8, 0x14, 0xcd, 0x92,
+};
+static const unsigned char kat727_nonce[] = {0};
+static const unsigned char kat727_persstr[] = {0};
+static const unsigned char kat727_addin0[] = {0};
+static const unsigned char kat727_addin1[] = {0};
+static const unsigned char kat727_retbits[] = {
+ 0xb4, 0x74, 0xf2, 0x74, 0x3b, 0x61, 0x82, 0xb0, 0x51, 0xfc, 0x7c, 0x76,
+ 0xc6, 0xb4, 0x08, 0x5b, 0x2f, 0x59, 0x76, 0x39, 0xca, 0x19, 0xc1, 0xee,
+ 0xe0, 0x5c, 0x1c, 0xf4, 0x39, 0xbb, 0x8e, 0xdb, 0xe0, 0x93, 0xd0, 0xb2,
+ 0x23, 0x9d, 0xe5, 0xd0, 0xf7, 0x9b, 0xeb, 0xf0, 0xe6, 0x22, 0xfe, 0x04,
+ 0xb5, 0x13, 0x59, 0x7e, 0xd1, 0xd8, 0xa0, 0x28, 0x21, 0xa0, 0xbc, 0xa4,
+ 0x35, 0xd1, 0xfb, 0xde,
+};
+static const struct drbg_kat_no_reseed kat727_t = {
+ 6, kat727_entropyin, kat727_nonce, kat727_persstr,
+ kat727_addin0, kat727_addin1, kat727_retbits
+};
+static const struct drbg_kat kat727 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat727_t
+};
+
+static const unsigned char kat728_entropyin[] = {
+ 0x9f, 0xdd, 0xe0, 0xf7, 0xeb, 0xa6, 0x53, 0x81, 0xbf, 0x63, 0x7d, 0x7b,
+ 0x7e, 0x6f, 0xbc, 0x20, 0xde, 0xef, 0x90, 0x60, 0x13, 0x01, 0x86, 0x55,
+ 0xf8, 0xd1, 0x2d, 0x74, 0x7d, 0xb8, 0xe2, 0x25,
+};
+static const unsigned char kat728_nonce[] = {0};
+static const unsigned char kat728_persstr[] = {0};
+static const unsigned char kat728_addin0[] = {0};
+static const unsigned char kat728_addin1[] = {0};
+static const unsigned char kat728_retbits[] = {
+ 0xf4, 0xa5, 0x5a, 0xa4, 0xc2, 0x45, 0xcd, 0x42, 0xa1, 0xb6, 0x42, 0x96,
+ 0x37, 0xb0, 0x77, 0x41, 0x89, 0xef, 0x4e, 0x50, 0x53, 0xbe, 0xf0, 0x6b,
+ 0xbf, 0x42, 0x2b, 0x2f, 0x10, 0x39, 0x9e, 0x18, 0xb9, 0xf8, 0x6d, 0xcc,
+ 0x56, 0xaa, 0xa6, 0x97, 0x5e, 0xa1, 0x56, 0x22, 0xcd, 0xeb, 0xf3, 0x6a,
+ 0x3f, 0x47, 0x78, 0x44, 0x7b, 0xb2, 0x3a, 0x20, 0x44, 0xc2, 0x83, 0xa7,
+ 0x99, 0x03, 0xbe, 0xac,
+};
+static const struct drbg_kat_no_reseed kat728_t = {
+ 7, kat728_entropyin, kat728_nonce, kat728_persstr,
+ kat728_addin0, kat728_addin1, kat728_retbits
+};
+static const struct drbg_kat kat728 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat728_t
+};
+
+static const unsigned char kat729_entropyin[] = {
+ 0xaf, 0x62, 0x29, 0x9f, 0x37, 0x89, 0x53, 0x32, 0xd2, 0x83, 0xff, 0x9f,
+ 0x3b, 0x0c, 0xa2, 0x9f, 0x90, 0x03, 0x57, 0x18, 0x93, 0xdd, 0xd1, 0xbc,
+ 0x2d, 0x28, 0x63, 0x3a, 0x33, 0x99, 0x2b, 0x4a,
+};
+static const unsigned char kat729_nonce[] = {0};
+static const unsigned char kat729_persstr[] = {0};
+static const unsigned char kat729_addin0[] = {0};
+static const unsigned char kat729_addin1[] = {0};
+static const unsigned char kat729_retbits[] = {
+ 0xb9, 0x17, 0x19, 0xf2, 0xd1, 0x29, 0x7f, 0xa9, 0xc5, 0x17, 0x20, 0xab,
+ 0x94, 0x48, 0x22, 0x8e, 0x33, 0x35, 0x94, 0xa7, 0xa1, 0xc0, 0xa5, 0xd7,
+ 0xa1, 0x0a, 0xe8, 0x82, 0x49, 0xdc, 0x0c, 0xc5, 0xd0, 0x7a, 0xbe, 0x20,
+ 0xb7, 0x91, 0x5d, 0x2a, 0x87, 0xf1, 0x2e, 0xc4, 0xbc, 0xdf, 0x44, 0xef,
+ 0xa9, 0x11, 0xf2, 0x8c, 0x5e, 0x9e, 0x39, 0x09, 0x01, 0x8e, 0x4a, 0x6b,
+ 0xd1, 0xb5, 0x36, 0x3b,
+};
+static const struct drbg_kat_no_reseed kat729_t = {
+ 8, kat729_entropyin, kat729_nonce, kat729_persstr,
+ kat729_addin0, kat729_addin1, kat729_retbits
+};
+static const struct drbg_kat kat729 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat729_t
+};
+
+static const unsigned char kat730_entropyin[] = {
+ 0x42, 0xfe, 0x0a, 0xd0, 0x88, 0xd5, 0xc1, 0xd6, 0xbe, 0x9e, 0x02, 0xc1,
+ 0x47, 0xd5, 0x77, 0x0c, 0x9a, 0xa0, 0xa9, 0x77, 0xc6, 0x30, 0x0c, 0xd9,
+ 0xae, 0xc9, 0x40, 0xcd, 0x15, 0xec, 0xfb, 0x8d,
+};
+static const unsigned char kat730_nonce[] = {0};
+static const unsigned char kat730_persstr[] = {0};
+static const unsigned char kat730_addin0[] = {0};
+static const unsigned char kat730_addin1[] = {0};
+static const unsigned char kat730_retbits[] = {
+ 0xbd, 0x1a, 0x65, 0xbb, 0x65, 0xb5, 0x5e, 0xc4, 0xd6, 0x27, 0x9c, 0xb9,
+ 0x4d, 0xbf, 0x3b, 0xcd, 0x82, 0xbc, 0xe0, 0x9f, 0xa2, 0x77, 0xbf, 0xea,
+ 0x50, 0xb5, 0xda, 0xb6, 0x4b, 0x06, 0xc0, 0x18, 0x15, 0x70, 0x03, 0x2a,
+ 0x3a, 0x6f, 0x7d, 0xee, 0x5b, 0x2c, 0xce, 0xa3, 0x4b, 0xc6, 0x92, 0x8d,
+ 0xb1, 0x1d, 0xec, 0x93, 0x29, 0xed, 0x90, 0xd1, 0x09, 0xc0, 0xbc, 0xca,
+ 0x7c, 0xe7, 0xa4, 0x28,
+};
+static const struct drbg_kat_no_reseed kat730_t = {
+ 9, kat730_entropyin, kat730_nonce, kat730_persstr,
+ kat730_addin0, kat730_addin1, kat730_retbits
+};
+static const struct drbg_kat kat730 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat730_t
+};
+
+static const unsigned char kat731_entropyin[] = {
+ 0x74, 0x4e, 0xd7, 0x4d, 0x83, 0xba, 0xcf, 0x92, 0xd4, 0xbd, 0x4d, 0xd0,
+ 0x52, 0x45, 0x8b, 0xd8, 0xaf, 0x10, 0x39, 0x1c, 0x66, 0xfc, 0x89, 0xe1,
+ 0x39, 0x74, 0x42, 0x63, 0x20, 0xaa, 0x47, 0x4a,
+};
+static const unsigned char kat731_nonce[] = {0};
+static const unsigned char kat731_persstr[] = {0};
+static const unsigned char kat731_addin0[] = {0};
+static const unsigned char kat731_addin1[] = {0};
+static const unsigned char kat731_retbits[] = {
+ 0x8d, 0xdd, 0x02, 0x70, 0xb0, 0x7f, 0xbb, 0xd3, 0x39, 0xbc, 0x83, 0xea,
+ 0x7a, 0x1d, 0x98, 0x6e, 0xe8, 0xe1, 0xa0, 0x61, 0xc7, 0xe3, 0x1c, 0x5d,
+ 0xbd, 0xcc, 0xab, 0xc8, 0xf2, 0x52, 0x27, 0x83, 0x2e, 0xc4, 0x5f, 0x5e,
+ 0xf9, 0xf2, 0x8c, 0xa0, 0x44, 0x6d, 0x84, 0x4d, 0xaa, 0xdd, 0x19, 0x20,
+ 0x24, 0xc4, 0xd3, 0x68, 0x54, 0xfa, 0x23, 0xb5, 0x8a, 0x8b, 0x97, 0x94,
+ 0xdb, 0x6d, 0x3a, 0xcb,
+};
+static const struct drbg_kat_no_reseed kat731_t = {
+ 10, kat731_entropyin, kat731_nonce, kat731_persstr,
+ kat731_addin0, kat731_addin1, kat731_retbits
+};
+static const struct drbg_kat kat731 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat731_t
+};
+
+static const unsigned char kat732_entropyin[] = {
+ 0x88, 0x4e, 0x9f, 0xaa, 0x66, 0x1d, 0xce, 0xcc, 0x37, 0x65, 0xc7, 0x97,
+ 0xa2, 0xaf, 0x89, 0x06, 0xfb, 0x89, 0x38, 0x13, 0xa3, 0x96, 0xe0, 0x2b,
+ 0x94, 0x99, 0x38, 0x26, 0x28, 0x8d, 0x2a, 0x6d,
+};
+static const unsigned char kat732_nonce[] = {0};
+static const unsigned char kat732_persstr[] = {0};
+static const unsigned char kat732_addin0[] = {0};
+static const unsigned char kat732_addin1[] = {0};
+static const unsigned char kat732_retbits[] = {
+ 0x18, 0x48, 0x1d, 0xc4, 0x5c, 0xa3, 0xf1, 0x89, 0x6f, 0xe6, 0x39, 0x4a,
+ 0x23, 0x67, 0xd4, 0x4c, 0x4e, 0x45, 0x8b, 0x45, 0x5c, 0x9f, 0x36, 0xa5,
+ 0xd5, 0xac, 0x2b, 0x6a, 0x74, 0x75, 0xcf, 0x75, 0x99, 0xa9, 0x37, 0x8f,
+ 0x9c, 0xc7, 0x2f, 0xfc, 0xdb, 0xea, 0x71, 0xf0, 0x9c, 0x9a, 0x24, 0x4a,
+ 0x36, 0xcd, 0x66, 0x0b, 0x72, 0x25, 0x46, 0xea, 0x2a, 0xf4, 0xf3, 0xe7,
+ 0x75, 0x96, 0xec, 0x25,
+};
+static const struct drbg_kat_no_reseed kat732_t = {
+ 11, kat732_entropyin, kat732_nonce, kat732_persstr,
+ kat732_addin0, kat732_addin1, kat732_retbits
+};
+static const struct drbg_kat kat732 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat732_t
+};
+
+static const unsigned char kat733_entropyin[] = {
+ 0x31, 0xd1, 0x08, 0xfe, 0x0d, 0x40, 0xfe, 0x05, 0xc9, 0xed, 0x83, 0x72,
+ 0xc3, 0xbc, 0x09, 0xd1, 0x05, 0x8b, 0x39, 0x7b, 0x90, 0x06, 0xfb, 0x37,
+ 0x3c, 0xdd, 0x16, 0xa5, 0xa4, 0x0e, 0x2c, 0xc1,
+};
+static const unsigned char kat733_nonce[] = {0};
+static const unsigned char kat733_persstr[] = {0};
+static const unsigned char kat733_addin0[] = {0};
+static const unsigned char kat733_addin1[] = {0};
+static const unsigned char kat733_retbits[] = {
+ 0x80, 0x82, 0x24, 0x50, 0xb0, 0x48, 0x7e, 0x70, 0xad, 0xa9, 0x48, 0xda,
+ 0x0b, 0x25, 0xcc, 0x49, 0xa3, 0x7d, 0xc5, 0x8e, 0x0d, 0xad, 0x92, 0x33,
+ 0xba, 0xdd, 0x0e, 0x88, 0xdf, 0x52, 0x0d, 0x36, 0x54, 0x30, 0x0f, 0x08,
+ 0x1b, 0x02, 0xe8, 0x54, 0x5d, 0x6d, 0x68, 0x18, 0xb8, 0x2e, 0x45, 0x96,
+ 0x4d, 0xb8, 0x63, 0x3f, 0xc7, 0x69, 0xaf, 0x84, 0xa9, 0x79, 0x9e, 0x92,
+ 0xa1, 0xbb, 0x0d, 0x61,
+};
+static const struct drbg_kat_no_reseed kat733_t = {
+ 12, kat733_entropyin, kat733_nonce, kat733_persstr,
+ kat733_addin0, kat733_addin1, kat733_retbits
+};
+static const struct drbg_kat kat733 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat733_t
+};
+
+static const unsigned char kat734_entropyin[] = {
+ 0xd5, 0x46, 0x4a, 0x18, 0xaa, 0xb8, 0x87, 0x3d, 0x63, 0xf5, 0x72, 0xf6,
+ 0x73, 0x8e, 0xf2, 0x7a, 0x39, 0x84, 0x5a, 0x31, 0xa2, 0x11, 0x70, 0x03,
+ 0x10, 0x32, 0x1e, 0x42, 0xb6, 0x62, 0x0b, 0x4a,
+};
+static const unsigned char kat734_nonce[] = {0};
+static const unsigned char kat734_persstr[] = {0};
+static const unsigned char kat734_addin0[] = {0};
+static const unsigned char kat734_addin1[] = {0};
+static const unsigned char kat734_retbits[] = {
+ 0xe2, 0xb5, 0x31, 0xea, 0x43, 0xc5, 0x13, 0xa1, 0x56, 0x4f, 0xa6, 0x5e,
+ 0x9a, 0x68, 0xd4, 0x3c, 0x87, 0x51, 0x37, 0x77, 0x31, 0x02, 0x94, 0x1d,
+ 0x0e, 0xf5, 0x44, 0xc8, 0x4e, 0x36, 0x89, 0xb8, 0x2e, 0xac, 0x32, 0xd8,
+ 0xe2, 0x9c, 0xce, 0x42, 0xea, 0xe3, 0x93, 0xe0, 0x86, 0xab, 0x81, 0xf7,
+ 0x05, 0x20, 0x17, 0x92, 0x88, 0xc5, 0x2c, 0xbb, 0x64, 0x48, 0x69, 0x97,
+ 0x23, 0x86, 0x5b, 0x49,
+};
+static const struct drbg_kat_no_reseed kat734_t = {
+ 13, kat734_entropyin, kat734_nonce, kat734_persstr,
+ kat734_addin0, kat734_addin1, kat734_retbits
+};
+static const struct drbg_kat kat734 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat734_t
+};
+
+static const unsigned char kat735_entropyin[] = {
+ 0x72, 0x7c, 0x0a, 0xc7, 0x5a, 0x99, 0xbb, 0x1a, 0x31, 0x8e, 0x4f, 0xe2,
+ 0xfe, 0x0f, 0x2e, 0x31, 0x2b, 0x3b, 0x61, 0xd8, 0x2b, 0x2e, 0x50, 0x71,
+ 0xac, 0xfb, 0x4a, 0x36, 0xbc, 0x82, 0x58, 0xc1,
+};
+static const unsigned char kat735_nonce[] = {0};
+static const unsigned char kat735_persstr[] = {0};
+static const unsigned char kat735_addin0[] = {0};
+static const unsigned char kat735_addin1[] = {0};
+static const unsigned char kat735_retbits[] = {
+ 0xf5, 0x95, 0xee, 0x1a, 0xf4, 0x37, 0xfe, 0x1b, 0xed, 0x8d, 0x45, 0x10,
+ 0x88, 0xb7, 0x88, 0xf1, 0xcd, 0x59, 0x9f, 0x2b, 0x0c, 0x47, 0xfe, 0xac,
+ 0x1f, 0xb5, 0xc6, 0xef, 0xbf, 0x7a, 0x14, 0xa8, 0xab, 0x0e, 0xa1, 0x1a,
+ 0x35, 0x69, 0xa3, 0xc2, 0x3b, 0x2a, 0x97, 0x02, 0xb4, 0x15, 0xbd, 0xa3,
+ 0x55, 0xc1, 0x5a, 0xfd, 0x27, 0x5c, 0x0d, 0x67, 0xb3, 0x8b, 0xcf, 0xb5,
+ 0x4a, 0xb1, 0x3f, 0x70,
+};
+static const struct drbg_kat_no_reseed kat735_t = {
+ 14, kat735_entropyin, kat735_nonce, kat735_persstr,
+ kat735_addin0, kat735_addin1, kat735_retbits
+};
+static const struct drbg_kat kat735 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat735_t
+};
+
+static const unsigned char kat736_entropyin[] = {
+ 0x6b, 0xd4, 0xf2, 0xae, 0x64, 0x9f, 0xc9, 0x93, 0x50, 0x95, 0x1f, 0xf0,
+ 0xc5, 0xd4, 0x60, 0xc1, 0xa9, 0x21, 0x41, 0x54, 0xe7, 0x38, 0x49, 0x75,
+ 0xee, 0x54, 0xb3, 0x4b, 0x7c, 0xae, 0x07, 0x04,
+};
+static const unsigned char kat736_nonce[] = {0};
+static const unsigned char kat736_persstr[] = {0};
+static const unsigned char kat736_addin0[] = {
+ 0xec, 0xd4, 0x89, 0x3b, 0x97, 0x9a, 0xc9, 0x2d, 0xb1, 0x89, 0x4a, 0xe3,
+ 0x72, 0x45, 0x18, 0xa2, 0xf7, 0x8c, 0xf2, 0xdb, 0xe2, 0xf6, 0xbb, 0xc6,
+ 0xfd, 0xa5, 0x96, 0xdf, 0x87, 0xc7, 0xa4, 0xae,
+};
+static const unsigned char kat736_addin1[] = {
+ 0xb2, 0x3e, 0x91, 0x88, 0x68, 0x7c, 0x88, 0x76, 0x8b, 0x26, 0x73, 0x88,
+ 0x62, 0xc4, 0x79, 0x1f, 0xa5, 0x2f, 0x92, 0x50, 0x2e, 0x1f, 0x94, 0xbf,
+ 0x66, 0xaf, 0x01, 0x7c, 0x42, 0x28, 0xa0, 0xdc,
+};
+static const unsigned char kat736_retbits[] = {
+ 0x5b, 0x2b, 0xf7, 0xa5, 0xc6, 0x0d, 0x8a, 0xb6, 0x59, 0x11, 0x10, 0xcb,
+ 0xd6, 0x1c, 0xd3, 0x87, 0xb0, 0x2d, 0xe1, 0x97, 0x84, 0xf4, 0x96, 0xd1,
+ 0xa1, 0x09, 0x12, 0x3d, 0x8b, 0x35, 0x62, 0xa5, 0xde, 0x2d, 0xd6, 0xd5,
+ 0xd1, 0xae, 0xf9, 0x57, 0xa6, 0xc4, 0xf3, 0x71, 0xce, 0xcd, 0x93, 0xc1,
+ 0x57, 0x99, 0xd8, 0x2e, 0x34, 0xd6, 0xa0, 0xdb, 0xa7, 0xe9, 0x15, 0xa2,
+ 0x7d, 0x8e, 0x65, 0xf3,
+};
+static const struct drbg_kat_no_reseed kat736_t = {
+ 0, kat736_entropyin, kat736_nonce, kat736_persstr,
+ kat736_addin0, kat736_addin1, kat736_retbits
+};
+static const struct drbg_kat kat736 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat736_t
+};
+
+static const unsigned char kat737_entropyin[] = {
+ 0xe2, 0xad, 0xdb, 0xde, 0x2a, 0x76, 0xe7, 0x69, 0xfc, 0x7a, 0xa3, 0xf4,
+ 0x5b, 0x31, 0x40, 0x2f, 0x48, 0x2b, 0x73, 0xbb, 0xe7, 0x06, 0x7a, 0xd6,
+ 0x25, 0x46, 0x21, 0xf0, 0x6d, 0x3e, 0xf6, 0x8b,
+};
+static const unsigned char kat737_nonce[] = {0};
+static const unsigned char kat737_persstr[] = {0};
+static const unsigned char kat737_addin0[] = {
+ 0xad, 0x11, 0x64, 0x3b, 0x01, 0x9e, 0x31, 0x24, 0x5e, 0x4e, 0xa4, 0x1f,
+ 0x18, 0xf7, 0x68, 0x04, 0x58, 0x31, 0x05, 0x80, 0xfa, 0x6e, 0xfa, 0xd2,
+ 0x75, 0xc5, 0x83, 0x3e, 0x7f, 0x80, 0x0d, 0xae,
+};
+static const unsigned char kat737_addin1[] = {
+ 0xb5, 0xd8, 0x49, 0x61, 0x6b, 0x31, 0x23, 0xc9, 0x72, 0x5d, 0x18, 0x8c,
+ 0xd0, 0x00, 0x50, 0x03, 0x22, 0x07, 0x68, 0xd1, 0x20, 0x0f, 0x9e, 0x7c,
+ 0xc2, 0x9e, 0xf6, 0xd8, 0x8a, 0xfb, 0x7b, 0x9a,
+};
+static const unsigned char kat737_retbits[] = {
+ 0x13, 0x2d, 0x0d, 0x50, 0xc8, 0x47, 0x7a, 0x40, 0x0b, 0xb8, 0x93, 0x5b,
+ 0xe5, 0x92, 0x8f, 0x91, 0x6a, 0x85, 0xda, 0x9f, 0xfc, 0xf1, 0xa8, 0xf6,
+ 0xe9, 0xf9, 0xa1, 0x4c, 0xca, 0x86, 0x10, 0x36, 0xcd, 0xa1, 0x4c, 0xf6,
+ 0x6d, 0x89, 0x53, 0xda, 0xb4, 0x56, 0xb6, 0x32, 0xcf, 0x68, 0x7c, 0xd5,
+ 0x39, 0xb4, 0xb8, 0x07, 0x92, 0x65, 0x61, 0xd0, 0xb3, 0x56, 0x2b, 0x9d,
+ 0x33, 0x34, 0xfb, 0x61,
+};
+static const struct drbg_kat_no_reseed kat737_t = {
+ 1, kat737_entropyin, kat737_nonce, kat737_persstr,
+ kat737_addin0, kat737_addin1, kat737_retbits
+};
+static const struct drbg_kat kat737 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat737_t
+};
+
+static const unsigned char kat738_entropyin[] = {
+ 0x7e, 0xca, 0x92, 0xb1, 0x13, 0x13, 0xe2, 0xeb, 0x67, 0xe8, 0x08, 0xd2,
+ 0x12, 0x72, 0x94, 0x5b, 0xe4, 0x32, 0xe9, 0x89, 0x33, 0x00, 0x0f, 0xce,
+ 0x65, 0x5c, 0xce, 0x06, 0x8d, 0xba, 0x42, 0x8b,
+};
+static const unsigned char kat738_nonce[] = {0};
+static const unsigned char kat738_persstr[] = {0};
+static const unsigned char kat738_addin0[] = {
+ 0x03, 0x46, 0xce, 0x8a, 0xa1, 0xa4, 0x52, 0x02, 0x7a, 0x9b, 0x5f, 0xb0,
+ 0xac, 0xa4, 0x18, 0xf4, 0x34, 0x96, 0xfd, 0x97, 0xb3, 0xad, 0x3f, 0xcd,
+ 0xce, 0x17, 0xc4, 0xe3, 0xee, 0x27, 0xb3, 0x22,
+};
+static const unsigned char kat738_addin1[] = {
+ 0x78, 0xec, 0xfb, 0xac, 0xec, 0x06, 0xfc, 0x61, 0xda, 0x03, 0x52, 0x27,
+ 0x45, 0xac, 0x4f, 0xb1, 0xfb, 0x6d, 0xee, 0x64, 0x66, 0x72, 0x0c, 0x02,
+ 0xa8, 0x35, 0x87, 0x71, 0x8a, 0x0d, 0x76, 0x3a,
+};
+static const unsigned char kat738_retbits[] = {
+ 0x90, 0x4c, 0xd7, 0x90, 0x4d, 0x59, 0x33, 0x5b, 0xf5, 0x55, 0x20, 0x23,
+ 0xb6, 0x68, 0x9c, 0x8d, 0x61, 0xec, 0xa2, 0x48, 0x51, 0x86, 0x6a, 0x83,
+ 0x77, 0xae, 0xc9, 0x0d, 0xd8, 0x7e, 0x31, 0x1c, 0x62, 0x2d, 0x50, 0x7e,
+ 0x67, 0x85, 0x81, 0x51, 0x39, 0x35, 0xbd, 0xe1, 0x2c, 0x8b, 0x35, 0x1f,
+ 0x8d, 0x9a, 0x8e, 0xfc, 0xfc, 0xc1, 0xf1, 0xff, 0x76, 0xc0, 0x61, 0x3b,
+ 0xff, 0xe7, 0xb4, 0x55,
+};
+static const struct drbg_kat_no_reseed kat738_t = {
+ 2, kat738_entropyin, kat738_nonce, kat738_persstr,
+ kat738_addin0, kat738_addin1, kat738_retbits
+};
+static const struct drbg_kat kat738 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat738_t
+};
+
+static const unsigned char kat739_entropyin[] = {
+ 0x69, 0x0e, 0x1f, 0xfa, 0xa9, 0x69, 0xbd, 0x3a, 0xad, 0x20, 0xb2, 0xd6,
+ 0x46, 0xa6, 0xc6, 0x93, 0x75, 0x34, 0x67, 0x52, 0x8d, 0x1d, 0xc1, 0xfc,
+ 0x74, 0xe9, 0x06, 0xf4, 0x9d, 0x07, 0x5d, 0x89,
+};
+static const unsigned char kat739_nonce[] = {0};
+static const unsigned char kat739_persstr[] = {0};
+static const unsigned char kat739_addin0[] = {
+ 0x4a, 0x43, 0x45, 0xdb, 0x4f, 0xed, 0x24, 0xca, 0xc4, 0x98, 0x22, 0xca,
+ 0xc5, 0x8d, 0xc4, 0x4e, 0xdc, 0xdf, 0x9c, 0x63, 0xd1, 0xdc, 0xba, 0x9f,
+ 0x46, 0x0a, 0xf9, 0xdf, 0xa2, 0xb5, 0x55, 0xb6,
+};
+static const unsigned char kat739_addin1[] = {
+ 0xe2, 0xa5, 0x65, 0xb0, 0xf9, 0x70, 0xd2, 0xd0, 0x9d, 0x1b, 0x59, 0xa6,
+ 0x25, 0x9b, 0x86, 0x69, 0x12, 0xb2, 0x66, 0xb7, 0x6c, 0x3f, 0x09, 0xa7,
+ 0xb6, 0xf0, 0xdf, 0xae, 0xfd, 0x46, 0x07, 0x4d,
+};
+static const unsigned char kat739_retbits[] = {
+ 0x27, 0xb4, 0xcf, 0x56, 0xe9, 0xd4, 0x1f, 0xe1, 0x1d, 0xc2, 0x93, 0x31,
+ 0x10, 0xcf, 0xcf, 0xd4, 0x02, 0xce, 0x6b, 0xc8, 0x74, 0x06, 0xcd, 0xe7,
+ 0xf0, 0xaa, 0xc0, 0xb2, 0xdf, 0x41, 0x0e, 0xec, 0x96, 0x66, 0xff, 0x52,
+ 0xe1, 0xa7, 0x4f, 0x32, 0x24, 0x74, 0x2a, 0xf5, 0x8d, 0xa2, 0x3b, 0xf5,
+ 0xea, 0xbb, 0x12, 0xd2, 0x89, 0xe4, 0x13, 0x47, 0xb6, 0xd2, 0x5e, 0xe0,
+ 0xd2, 0xb3, 0x72, 0x67,
+};
+static const struct drbg_kat_no_reseed kat739_t = {
+ 3, kat739_entropyin, kat739_nonce, kat739_persstr,
+ kat739_addin0, kat739_addin1, kat739_retbits
+};
+static const struct drbg_kat kat739 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat739_t
+};
+
+static const unsigned char kat740_entropyin[] = {
+ 0xbd, 0xfa, 0x5e, 0xbb, 0x4e, 0x3c, 0x31, 0xe6, 0x3a, 0x9f, 0xf1, 0x4c,
+ 0x3e, 0x80, 0xea, 0x35, 0xf8, 0x6e, 0xff, 0x02, 0x69, 0xf3, 0x38, 0x9f,
+ 0x9f, 0x2e, 0x9a, 0x51, 0x91, 0xb6, 0x06, 0x5e,
+};
+static const unsigned char kat740_nonce[] = {0};
+static const unsigned char kat740_persstr[] = {0};
+static const unsigned char kat740_addin0[] = {
+ 0xde, 0x02, 0x56, 0x5f, 0x25, 0x64, 0xbe, 0xc8, 0x69, 0x80, 0x0a, 0x81,
+ 0x8b, 0xa7, 0x9b, 0xdd, 0x37, 0xc9, 0xb0, 0xab, 0x7f, 0xbb, 0x9c, 0xfe,
+ 0x95, 0x3e, 0xb1, 0x4f, 0x02, 0x18, 0xec, 0x21,
+};
+static const unsigned char kat740_addin1[] = {
+ 0xab, 0x7b, 0x1c, 0xc8, 0xb8, 0x9b, 0xfe, 0x19, 0x02, 0x93, 0xfb, 0x80,
+ 0x3a, 0x63, 0x76, 0x75, 0x94, 0x0c, 0xf2, 0xc3, 0x86, 0x11, 0x96, 0x8f,
+ 0x77, 0x06, 0x21, 0xdf, 0xb0, 0xae, 0x35, 0xc2,
+};
+static const unsigned char kat740_retbits[] = {
+ 0xdd, 0x63, 0x9a, 0xff, 0x72, 0x76, 0xf1, 0x9d, 0x80, 0xfc, 0xa5, 0x64,
+ 0x1f, 0xf9, 0x0a, 0x20, 0x26, 0xff, 0xce, 0x0f, 0x7e, 0x1b, 0xf4, 0xd5,
+ 0x03, 0x98, 0xb8, 0xae, 0xa0, 0x52, 0xe6, 0xb0, 0x71, 0x4f, 0x52, 0xa3,
+ 0xe7, 0x6c, 0x82, 0xa9, 0x27, 0x36, 0xd3, 0x07, 0xf1, 0xb7, 0x32, 0xd0,
+ 0x45, 0x70, 0x9d, 0x84, 0x55, 0xba, 0x89, 0xaa, 0xe1, 0x08, 0xda, 0xee,
+ 0x9f, 0x65, 0xcc, 0x4f,
+};
+static const struct drbg_kat_no_reseed kat740_t = {
+ 4, kat740_entropyin, kat740_nonce, kat740_persstr,
+ kat740_addin0, kat740_addin1, kat740_retbits
+};
+static const struct drbg_kat kat740 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat740_t
+};
+
+static const unsigned char kat741_entropyin[] = {
+ 0xc1, 0x6d, 0xc7, 0x08, 0x49, 0x11, 0x75, 0x95, 0xcf, 0xe2, 0x06, 0xc2,
+ 0x70, 0xc9, 0xa7, 0x53, 0x35, 0x5e, 0x1e, 0xf2, 0x3b, 0xeb, 0xd3, 0xc3,
+ 0x41, 0xe5, 0xb5, 0x64, 0xaa, 0xf7, 0x31, 0x56,
+};
+static const unsigned char kat741_nonce[] = {0};
+static const unsigned char kat741_persstr[] = {0};
+static const unsigned char kat741_addin0[] = {
+ 0xed, 0xe7, 0x92, 0x7d, 0xd3, 0x74, 0xcf, 0x97, 0x9d, 0x00, 0x72, 0x40,
+ 0x29, 0x16, 0x9e, 0xcd, 0x94, 0x20, 0xa0, 0xe4, 0xa4, 0xf1, 0x23, 0x3a,
+ 0x46, 0x69, 0x70, 0x89, 0xf7, 0xea, 0xb4, 0x09,
+};
+static const unsigned char kat741_addin1[] = {
+ 0x05, 0x06, 0x89, 0x41, 0x44, 0x05, 0x88, 0x25, 0x27, 0x4e, 0xc9, 0x22,
+ 0x90, 0x71, 0x4b, 0x33, 0x52, 0x82, 0x09, 0xbe, 0xea, 0x30, 0x10, 0xe2,
+ 0x2a, 0xe9, 0x11, 0x93, 0x81, 0xb8, 0xfe, 0x58,
+};
+static const unsigned char kat741_retbits[] = {
+ 0xa2, 0xcc, 0x30, 0xe9, 0xbd, 0x52, 0x0d, 0x3f, 0xfc, 0x80, 0x63, 0x98,
+ 0xf8, 0x1f, 0xff, 0x95, 0xb6, 0x53, 0x77, 0x7a, 0xb0, 0x3a, 0xff, 0xdc,
+ 0x2c, 0xeb, 0x9a, 0x30, 0x57, 0x05, 0x65, 0x99, 0x5b, 0x42, 0x1a, 0x9f,
+ 0xaa, 0xf7, 0xa5, 0xbf, 0x83, 0xbf, 0x81, 0x29, 0x13, 0xf6, 0x8b, 0x95,
+ 0xad, 0xbb, 0x4c, 0x46, 0x31, 0x8b, 0x2a, 0x9f, 0x45, 0x7c, 0xd3, 0x27,
+ 0x8d, 0x4a, 0x53, 0x2b,
+};
+static const struct drbg_kat_no_reseed kat741_t = {
+ 5, kat741_entropyin, kat741_nonce, kat741_persstr,
+ kat741_addin0, kat741_addin1, kat741_retbits
+};
+static const struct drbg_kat kat741 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat741_t
+};
+
+static const unsigned char kat742_entropyin[] = {
+ 0xb2, 0x8c, 0xb5, 0xe2, 0x0f, 0xb7, 0x70, 0xbd, 0x1c, 0xd5, 0x74, 0x33,
+ 0xbd, 0x0b, 0x19, 0xeb, 0x05, 0xe3, 0x19, 0xf7, 0x7e, 0x2b, 0x46, 0x6d,
+ 0x83, 0x5a, 0xf8, 0x95, 0x52, 0x22, 0x25, 0x6b,
+};
+static const unsigned char kat742_nonce[] = {0};
+static const unsigned char kat742_persstr[] = {0};
+static const unsigned char kat742_addin0[] = {
+ 0xff, 0xb0, 0xf8, 0x4a, 0x08, 0xa5, 0xa8, 0x44, 0x33, 0xc7, 0xac, 0x57,
+ 0x04, 0xad, 0xdb, 0xce, 0x0c, 0x29, 0x68, 0xb6, 0xf8, 0x3d, 0xf2, 0x95,
+ 0x49, 0xf4, 0x31, 0xca, 0x3d, 0xf3, 0xa3, 0x2c,
+};
+static const unsigned char kat742_addin1[] = {
+ 0x89, 0x7a, 0x57, 0x0f, 0x51, 0x4a, 0x03, 0xfb, 0x60, 0xcd, 0x8a, 0xf5,
+ 0x83, 0x06, 0x57, 0x71, 0xc2, 0xfe, 0x93, 0xa6, 0xad, 0x51, 0x53, 0xe7,
+ 0x72, 0x7c, 0x79, 0x1a, 0x95, 0x23, 0x9d, 0xc7,
+};
+static const unsigned char kat742_retbits[] = {
+ 0x9a, 0xe7, 0x0e, 0x0f, 0x02, 0xbf, 0xe7, 0x5c, 0xe8, 0x20, 0xeb, 0x8f,
+ 0xd1, 0xce, 0x18, 0xb4, 0x0e, 0x1f, 0x37, 0x19, 0x77, 0x3c, 0x97, 0x35,
+ 0xed, 0xb2, 0x93, 0x87, 0x08, 0xcf, 0xba, 0x2a, 0x80, 0x1a, 0xbc, 0x72,
+ 0xc4, 0x45, 0xab, 0x0c, 0x43, 0x6d, 0xf5, 0x31, 0x82, 0xdd, 0x90, 0xb4,
+ 0x6c, 0x1e, 0x35, 0x77, 0x87, 0xf1, 0x5c, 0xe1, 0x00, 0xe4, 0x3c, 0x3c,
+ 0xf7, 0xf9, 0xd5, 0xb5,
+};
+static const struct drbg_kat_no_reseed kat742_t = {
+ 6, kat742_entropyin, kat742_nonce, kat742_persstr,
+ kat742_addin0, kat742_addin1, kat742_retbits
+};
+static const struct drbg_kat kat742 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat742_t
+};
+
+static const unsigned char kat743_entropyin[] = {
+ 0xf9, 0x99, 0xe2, 0x25, 0xa5, 0x13, 0xb3, 0xa9, 0x7d, 0x72, 0xb8, 0x26,
+ 0x33, 0x85, 0xd5, 0xdc, 0x8b, 0xc9, 0x8f, 0x08, 0x8e, 0xce, 0x74, 0xd2,
+ 0x27, 0x4b, 0xc2, 0xf4, 0xe3, 0x43, 0xae, 0x62,
+};
+static const unsigned char kat743_nonce[] = {0};
+static const unsigned char kat743_persstr[] = {0};
+static const unsigned char kat743_addin0[] = {
+ 0xfc, 0xe8, 0x52, 0x94, 0xca, 0xaf, 0x4c, 0xcd, 0x08, 0xc2, 0x7f, 0xe0,
+ 0x53, 0x4d, 0xc8, 0x82, 0xa3, 0xcc, 0x0f, 0xaa, 0x12, 0x3e, 0x7f, 0x5e,
+ 0x92, 0x43, 0x2e, 0x0c, 0xb1, 0x2f, 0x48, 0xc6,
+};
+static const unsigned char kat743_addin1[] = {
+ 0xf7, 0xb3, 0x93, 0xd3, 0xea, 0xc0, 0xd2, 0xda, 0xa3, 0x53, 0x35, 0xa3,
+ 0xad, 0x89, 0xd6, 0x66, 0xcd, 0x94, 0xb8, 0x5c, 0x45, 0x77, 0x8f, 0xeb,
+ 0xd7, 0x5f, 0x32, 0xcb, 0xc5, 0x77, 0xde, 0x9d,
+};
+static const unsigned char kat743_retbits[] = {
+ 0xe9, 0xf7, 0xbb, 0xa7, 0x9e, 0x22, 0x35, 0x01, 0x50, 0x99, 0x12, 0x57,
+ 0x5d, 0xba, 0x64, 0xf0, 0x83, 0x0c, 0xd3, 0x21, 0xcb, 0xb6, 0xf7, 0x5e,
+ 0xd2, 0xd3, 0x19, 0x60, 0x5d, 0x74, 0x4c, 0xda, 0xad, 0x7e, 0xb7, 0x40,
+ 0x9d, 0x40, 0x00, 0xe7, 0x67, 0x97, 0x6d, 0x2f, 0x0b, 0x1e, 0x66, 0x53,
+ 0xf9, 0x4b, 0x05, 0x33, 0xe4, 0xe6, 0xe7, 0x96, 0xdc, 0x6a, 0x22, 0x58,
+ 0x67, 0x44, 0x23, 0x14,
+};
+static const struct drbg_kat_no_reseed kat743_t = {
+ 7, kat743_entropyin, kat743_nonce, kat743_persstr,
+ kat743_addin0, kat743_addin1, kat743_retbits
+};
+static const struct drbg_kat kat743 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat743_t
+};
+
+static const unsigned char kat744_entropyin[] = {
+ 0x01, 0xb0, 0x9c, 0xbb, 0x44, 0xab, 0x39, 0xf7, 0xdb, 0xfd, 0x3e, 0x8b,
+ 0x4d, 0x17, 0x3b, 0x5b, 0x54, 0x33, 0x32, 0x5a, 0x34, 0x19, 0x36, 0x4f,
+ 0x45, 0x1b, 0x7f, 0xfb, 0x6e, 0xb3, 0x51, 0xdb,
+};
+static const unsigned char kat744_nonce[] = {0};
+static const unsigned char kat744_persstr[] = {0};
+static const unsigned char kat744_addin0[] = {
+ 0xde, 0x95, 0xe4, 0x48, 0x4c, 0x98, 0x32, 0x4f, 0x3c, 0x77, 0x71, 0xf9,
+ 0x52, 0x5c, 0x11, 0xee, 0x26, 0x8e, 0x73, 0x95, 0xd4, 0xdd, 0x80, 0x46,
+ 0xac, 0x23, 0xae, 0x5d, 0xb8, 0xe3, 0x61, 0xcf,
+};
+static const unsigned char kat744_addin1[] = {
+ 0x7d, 0x37, 0x6e, 0x9d, 0x31, 0x9a, 0x27, 0x53, 0x51, 0xfb, 0x27, 0x32,
+ 0x74, 0xb6, 0xfa, 0xd9, 0xe1, 0x42, 0x0e, 0xe6, 0xb1, 0x0e, 0xe1, 0xae,
+ 0x33, 0x06, 0x98, 0xa1, 0xd1, 0x5c, 0xd7, 0xfd,
+};
+static const unsigned char kat744_retbits[] = {
+ 0x43, 0x15, 0xec, 0x46, 0xef, 0x98, 0x36, 0x76, 0xee, 0x61, 0xb6, 0x1d,
+ 0x36, 0x23, 0xc3, 0xb6, 0x73, 0x13, 0x89, 0xb1, 0x2c, 0x7d, 0x27, 0xc8,
+ 0x7d, 0x07, 0xcc, 0xa2, 0x2b, 0xd9, 0x1d, 0x53, 0xef, 0x80, 0x70, 0x5a,
+ 0xca, 0x37, 0x40, 0xaf, 0x2d, 0x5d, 0xd8, 0x45, 0x2e, 0xc0, 0xd0, 0x68,
+ 0x79, 0xf1, 0xbc, 0xef, 0x01, 0x32, 0xd7, 0x7d, 0x3c, 0x31, 0x1e, 0x1b,
+ 0x34, 0xa0, 0xdc, 0x5f,
+};
+static const struct drbg_kat_no_reseed kat744_t = {
+ 8, kat744_entropyin, kat744_nonce, kat744_persstr,
+ kat744_addin0, kat744_addin1, kat744_retbits
+};
+static const struct drbg_kat kat744 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat744_t
+};
+
+static const unsigned char kat745_entropyin[] = {
+ 0x6c, 0xfa, 0xca, 0x3c, 0x03, 0xb0, 0xd9, 0x8f, 0x69, 0xdf, 0xc9, 0xf2,
+ 0x85, 0x9f, 0x0d, 0xb1, 0x28, 0xd0, 0x55, 0x34, 0xa0, 0xe2, 0x7f, 0xe7,
+ 0x43, 0x3f, 0x6a, 0xfc, 0x2d, 0xde, 0xdb, 0x75,
+};
+static const unsigned char kat745_nonce[] = {0};
+static const unsigned char kat745_persstr[] = {0};
+static const unsigned char kat745_addin0[] = {
+ 0x20, 0x3b, 0x29, 0xaa, 0x54, 0xfe, 0xe3, 0xae, 0x86, 0x68, 0x5c, 0x5c,
+ 0xdf, 0x03, 0x47, 0x77, 0x33, 0x01, 0xdb, 0x03, 0x04, 0x3a, 0x91, 0x0e,
+ 0xd0, 0x63, 0xbb, 0xd2, 0x49, 0x27, 0x18, 0x87,
+};
+static const unsigned char kat745_addin1[] = {
+ 0x57, 0xde, 0xd4, 0xf3, 0xae, 0x76, 0x8b, 0x10, 0x0c, 0x36, 0x03, 0x5e,
+ 0xc5, 0xec, 0xbc, 0x09, 0x3e, 0x14, 0x1e, 0x5b, 0xfb, 0x87, 0x46, 0xd3,
+ 0x44, 0x55, 0x4c, 0xa6, 0x4b, 0xcc, 0xe0, 0x16,
+};
+static const unsigned char kat745_retbits[] = {
+ 0x03, 0x99, 0x0f, 0x68, 0xca, 0x84, 0xdc, 0x13, 0xb9, 0x2e, 0x76, 0x64,
+ 0x7f, 0xa2, 0x4d, 0xba, 0x47, 0xf3, 0x6d, 0xa6, 0xf1, 0xdf, 0xa9, 0xc4,
+ 0x12, 0x4d, 0xe8, 0x67, 0x62, 0x70, 0x3c, 0xb3, 0x3d, 0xf7, 0x30, 0xce,
+ 0xe6, 0x8a, 0x6a, 0xcf, 0x8a, 0x4a, 0x42, 0x53, 0xa5, 0x75, 0xd8, 0x70,
+ 0x91, 0x11, 0xca, 0x6b, 0xae, 0x80, 0x50, 0x7c, 0x24, 0x8e, 0xbe, 0x4f,
+ 0xf5, 0x2c, 0xb9, 0x59,
+};
+static const struct drbg_kat_no_reseed kat745_t = {
+ 9, kat745_entropyin, kat745_nonce, kat745_persstr,
+ kat745_addin0, kat745_addin1, kat745_retbits
+};
+static const struct drbg_kat kat745 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat745_t
+};
+
+static const unsigned char kat746_entropyin[] = {
+ 0xb0, 0x96, 0x7a, 0x4a, 0xea, 0x35, 0x0f, 0x67, 0xe7, 0x08, 0x15, 0x37,
+ 0xa2, 0x51, 0x9f, 0x4f, 0x60, 0x8f, 0x31, 0x7e, 0xdd, 0x14, 0xa2, 0x4a,
+ 0x75, 0xba, 0x43, 0x69, 0xd2, 0x24, 0x78, 0x6d,
+};
+static const unsigned char kat746_nonce[] = {0};
+static const unsigned char kat746_persstr[] = {0};
+static const unsigned char kat746_addin0[] = {
+ 0x8b, 0x48, 0xef, 0xfd, 0x79, 0x12, 0x38, 0xb8, 0x32, 0x9b, 0x9d, 0xb8,
+ 0x51, 0x76, 0x74, 0xf5, 0x9c, 0x60, 0xb2, 0xbb, 0x9a, 0xb0, 0x6e, 0xa1,
+ 0xc5, 0xd5, 0x4e, 0xe4, 0x71, 0xca, 0xaf, 0x89,
+};
+static const unsigned char kat746_addin1[] = {
+ 0xc5, 0x5b, 0xbd, 0xc2, 0xaa, 0xea, 0x7d, 0xbd, 0x84, 0x0a, 0x72, 0x96,
+ 0xe2, 0x22, 0x95, 0xae, 0x2b, 0x95, 0xb0, 0xca, 0x61, 0x92, 0x23, 0x7c,
+ 0x12, 0x5d, 0xa1, 0x70, 0x7f, 0xe8, 0xcd, 0x0f,
+};
+static const unsigned char kat746_retbits[] = {
+ 0x28, 0xf4, 0xfb, 0x5d, 0x85, 0xe5, 0xb8, 0xb1, 0x51, 0xce, 0xaa, 0xf3,
+ 0x3b, 0x2a, 0xcb, 0x02, 0xb0, 0xb2, 0x5d, 0x9c, 0xf2, 0x76, 0x05, 0x67,
+ 0xfb, 0x54, 0xb0, 0xb0, 0xf5, 0x60, 0xbc, 0x89, 0x26, 0x66, 0x3c, 0xec,
+ 0x6c, 0x84, 0xe3, 0x56, 0x0c, 0x46, 0x2e, 0x80, 0x25, 0x84, 0xba, 0x3a,
+ 0xd5, 0x8c, 0xac, 0xe1, 0xda, 0x96, 0x48, 0x99, 0xc5, 0x25, 0x92, 0xa9,
+ 0xac, 0x61, 0x97, 0x9c,
+};
+static const struct drbg_kat_no_reseed kat746_t = {
+ 10, kat746_entropyin, kat746_nonce, kat746_persstr,
+ kat746_addin0, kat746_addin1, kat746_retbits
+};
+static const struct drbg_kat kat746 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat746_t
+};
+
+static const unsigned char kat747_entropyin[] = {
+ 0xb3, 0x7c, 0xd1, 0xd2, 0x27, 0xf3, 0xc8, 0x17, 0xd2, 0x39, 0x82, 0x63,
+ 0x0b, 0x19, 0xaa, 0x8a, 0x81, 0xc0, 0x41, 0x5f, 0x60, 0x2d, 0x27, 0x11,
+ 0x12, 0xd4, 0xe3, 0x16, 0x89, 0xc8, 0xe9, 0x79,
+};
+static const unsigned char kat747_nonce[] = {0};
+static const unsigned char kat747_persstr[] = {0};
+static const unsigned char kat747_addin0[] = {
+ 0x1f, 0x25, 0x51, 0x7a, 0xb6, 0x77, 0xbd, 0x8c, 0x4b, 0xf2, 0x04, 0xc4,
+ 0xf3, 0xfd, 0xe5, 0x9b, 0x6f, 0x33, 0x73, 0x88, 0x38, 0x5f, 0x28, 0xca,
+ 0x8d, 0xac, 0x2b, 0xce, 0x27, 0xe1, 0xdf, 0x67,
+};
+static const unsigned char kat747_addin1[] = {
+ 0x0a, 0xca, 0xcc, 0x50, 0x53, 0x3c, 0x77, 0xbf, 0xe0, 0x9d, 0xe6, 0x85,
+ 0xb5, 0x16, 0xd1, 0xd9, 0xf2, 0xb0, 0x38, 0x74, 0x97, 0x51, 0x31, 0xac,
+ 0x85, 0x91, 0x8b, 0xce, 0xbe, 0xbb, 0xd5, 0x43,
+};
+static const unsigned char kat747_retbits[] = {
+ 0x90, 0x31, 0xb7, 0x7d, 0xb5, 0xbe, 0x9b, 0x79, 0x15, 0x0d, 0x62, 0x34,
+ 0x74, 0xc2, 0x1b, 0xf5, 0x19, 0x7b, 0xa4, 0x14, 0x4d, 0x73, 0x7d, 0x26,
+ 0x1f, 0x77, 0xeb, 0x6e, 0xf0, 0x7b, 0x74, 0xc2, 0xd4, 0xb4, 0xed, 0x61,
+ 0x77, 0x48, 0x04, 0x23, 0x42, 0x1f, 0x19, 0x25, 0xd6, 0x1e, 0x97, 0x74,
+ 0x11, 0x55, 0xcb, 0xd5, 0xd3, 0xbf, 0xcf, 0x5e, 0x1f, 0x1d, 0x30, 0xf3,
+ 0xfc, 0xfd, 0x7b, 0xe9,
+};
+static const struct drbg_kat_no_reseed kat747_t = {
+ 11, kat747_entropyin, kat747_nonce, kat747_persstr,
+ kat747_addin0, kat747_addin1, kat747_retbits
+};
+static const struct drbg_kat kat747 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat747_t
+};
+
+static const unsigned char kat748_entropyin[] = {
+ 0xf3, 0x34, 0xc9, 0x70, 0xa2, 0x13, 0x75, 0x9a, 0x03, 0xce, 0xf1, 0x6d,
+ 0x3b, 0x3a, 0x44, 0x01, 0x43, 0x24, 0x2a, 0xf5, 0x7d, 0xad, 0xe4, 0x33,
+ 0x25, 0x88, 0x35, 0x1e, 0x24, 0x15, 0x2e, 0x60,
+};
+static const unsigned char kat748_nonce[] = {0};
+static const unsigned char kat748_persstr[] = {0};
+static const unsigned char kat748_addin0[] = {
+ 0xff, 0x35, 0x67, 0x67, 0x4f, 0xe5, 0xc8, 0xdc, 0x44, 0xd4, 0xf9, 0x19,
+ 0x62, 0x46, 0x40, 0x2b, 0x9b, 0xf3, 0xe7, 0x1c, 0xd0, 0x0b, 0xdd, 0x1f,
+ 0x0d, 0xb0, 0x24, 0x23, 0x47, 0xea, 0x2a, 0x1c,
+};
+static const unsigned char kat748_addin1[] = {
+ 0x7d, 0x4c, 0x24, 0x24, 0x38, 0x61, 0x7e, 0x5d, 0x26, 0x90, 0xa8, 0x77,
+ 0x6f, 0x3f, 0xd9, 0xcf, 0x27, 0xd3, 0x2a, 0x9c, 0x57, 0x44, 0xa9, 0xf2,
+ 0xbd, 0x5c, 0xf1, 0x16, 0xf6, 0x66, 0x64, 0xa0,
+};
+static const unsigned char kat748_retbits[] = {
+ 0xd1, 0xb6, 0x31, 0xf7, 0xff, 0x94, 0x5c, 0xc7, 0xe2, 0x95, 0x4f, 0x68,
+ 0x95, 0xb4, 0x39, 0xe9, 0x9c, 0xa1, 0xff, 0xf7, 0x5e, 0xe1, 0x9c, 0x14,
+ 0xf2, 0x7f, 0x44, 0x46, 0xf6, 0x27, 0xc1, 0xe4, 0x5b, 0xc5, 0x63, 0x50,
+ 0xb4, 0x32, 0xf7, 0x18, 0xce, 0x83, 0xf0, 0x9c, 0xa4, 0x93, 0x95, 0x9e,
+ 0xcd, 0xbc, 0xa3, 0xdc, 0x24, 0xb3, 0xef, 0x96, 0xe0, 0x1f, 0xc4, 0xda,
+ 0x22, 0x9d, 0x22, 0xdf,
+};
+static const struct drbg_kat_no_reseed kat748_t = {
+ 12, kat748_entropyin, kat748_nonce, kat748_persstr,
+ kat748_addin0, kat748_addin1, kat748_retbits
+};
+static const struct drbg_kat kat748 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat748_t
+};
+
+static const unsigned char kat749_entropyin[] = {
+ 0x72, 0x7c, 0xfb, 0x51, 0x10, 0x0a, 0x98, 0xcc, 0x70, 0x82, 0xb1, 0x81,
+ 0xdb, 0xa3, 0xfd, 0xad, 0x2d, 0xd1, 0x97, 0xbc, 0x00, 0x65, 0xd9, 0x70,
+ 0x47, 0x66, 0x79, 0xa4, 0x0a, 0xc1, 0x97, 0x66,
+};
+static const unsigned char kat749_nonce[] = {0};
+static const unsigned char kat749_persstr[] = {0};
+static const unsigned char kat749_addin0[] = {
+ 0x03, 0x92, 0x02, 0x23, 0x90, 0x0c, 0xb0, 0xab, 0xaa, 0x95, 0xfd, 0xb8,
+ 0xeb, 0x36, 0x9f, 0xf6, 0x63, 0x99, 0xcf, 0x65, 0x7e, 0x71, 0xf2, 0xfc,
+ 0x9e, 0x4b, 0x8d, 0x46, 0x82, 0x78, 0x1a, 0xf5,
+};
+static const unsigned char kat749_addin1[] = {
+ 0x19, 0x82, 0x46, 0xd1, 0xfa, 0x95, 0xff, 0x48, 0x0b, 0xe0, 0xb8, 0x4f,
+ 0x2a, 0x10, 0x7b, 0xaa, 0xdf, 0xaf, 0x73, 0x33, 0x98, 0x0a, 0xb6, 0x28,
+ 0xc7, 0x82, 0x32, 0xcc, 0xd8, 0x99, 0xdc, 0x4b,
+};
+static const unsigned char kat749_retbits[] = {
+ 0x86, 0x25, 0xa8, 0x0c, 0xbe, 0xfd, 0xf7, 0xb8, 0x22, 0xe8, 0x2a, 0x1e,
+ 0x71, 0x10, 0x4d, 0x44, 0x9d, 0x8c, 0xef, 0x6a, 0x40, 0x0f, 0xa7, 0x69,
+ 0x70, 0x1d, 0x1c, 0xf6, 0x0f, 0x5f, 0x1a, 0x14, 0x7d, 0x94, 0x65, 0xf7,
+ 0xf3, 0xcd, 0xc7, 0xd2, 0xf0, 0x60, 0x6f, 0xe4, 0x59, 0xe4, 0x31, 0xfc,
+ 0xc3, 0x6d, 0xf4, 0x1a, 0x51, 0xe8, 0x76, 0x50, 0xf5, 0x85, 0xcb, 0x62,
+ 0x6a, 0xc3, 0xe2, 0x20,
+};
+static const struct drbg_kat_no_reseed kat749_t = {
+ 13, kat749_entropyin, kat749_nonce, kat749_persstr,
+ kat749_addin0, kat749_addin1, kat749_retbits
+};
+static const struct drbg_kat kat749 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat749_t
+};
+
+static const unsigned char kat750_entropyin[] = {
+ 0x02, 0xfb, 0xc1, 0x08, 0x1c, 0x13, 0x13, 0x4d, 0x2d, 0x68, 0xea, 0x58,
+ 0x6e, 0xcf, 0x4a, 0x59, 0x8c, 0xaf, 0x7b, 0xf4, 0x2e, 0xc0, 0xa3, 0xcd,
+ 0x30, 0x01, 0x8e, 0x01, 0xc2, 0x64, 0xc8, 0x4b,
+};
+static const unsigned char kat750_nonce[] = {0};
+static const unsigned char kat750_persstr[] = {0};
+static const unsigned char kat750_addin0[] = {
+ 0x17, 0x0a, 0x92, 0xd0, 0x93, 0xd3, 0x0f, 0x93, 0x9b, 0x3e, 0xac, 0x62,
+ 0x8a, 0x18, 0xba, 0xb5, 0xfa, 0xf8, 0x6b, 0x3a, 0x5d, 0x91, 0xf3, 0x0c,
+ 0xfd, 0x0b, 0xea, 0xfd, 0xec, 0x41, 0x19, 0x1c,
+};
+static const unsigned char kat750_addin1[] = {
+ 0xfd, 0x03, 0x49, 0xaf, 0x01, 0x50, 0x37, 0xcd, 0xbb, 0x52, 0x98, 0x31,
+ 0x55, 0xc8, 0x9f, 0xc5, 0x9f, 0x37, 0xd5, 0x12, 0x54, 0x35, 0x59, 0xc3,
+ 0xee, 0x65, 0x89, 0xf7, 0xb9, 0x38, 0x61, 0xf6,
+};
+static const unsigned char kat750_retbits[] = {
+ 0x02, 0x73, 0xa1, 0x31, 0x7f, 0x3d, 0xd3, 0x68, 0x77, 0xa5, 0x05, 0xca,
+ 0x2e, 0x44, 0x04, 0x45, 0x09, 0x4d, 0x3c, 0x70, 0x2c, 0x4f, 0xf5, 0xf4,
+ 0xa0, 0x7d, 0xaa, 0x3f, 0x81, 0x0d, 0x8d, 0x7a, 0x4f, 0x4b, 0x9c, 0x54,
+ 0xdc, 0xe1, 0x69, 0xa1, 0x30, 0x7f, 0xbd, 0xc5, 0xd1, 0x97, 0xe6, 0xa3,
+ 0xed, 0xc3, 0xea, 0x73, 0x7b, 0xed, 0xc1, 0xc9, 0x85, 0x7a, 0xa0, 0xe9,
+ 0xf8, 0x79, 0x43, 0xe2,
+};
+static const struct drbg_kat_no_reseed kat750_t = {
+ 14, kat750_entropyin, kat750_nonce, kat750_persstr,
+ kat750_addin0, kat750_addin1, kat750_retbits
+};
+static const struct drbg_kat kat750 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat750_t
+};
+
+static const unsigned char kat751_entropyin[] = {
+ 0xce, 0xe2, 0x3d, 0xe8, 0x6a, 0x69, 0xc7, 0xef, 0x57, 0xf6, 0xe1, 0xe1,
+ 0x2b, 0xd1, 0x6e, 0x35, 0xe5, 0x16, 0x24, 0x22, 0x6f, 0xa1, 0x95, 0x97,
+ 0xbf, 0x93, 0xec, 0x47, 0x6a, 0x44, 0xb0, 0xf2,
+};
+static const unsigned char kat751_nonce[] = {0};
+static const unsigned char kat751_persstr[] = {
+ 0xa2, 0xef, 0x16, 0xf2, 0x26, 0xea, 0x32, 0x4f, 0x23, 0xab, 0xd5, 0x9d,
+ 0x5e, 0x3c, 0x66, 0x05, 0x61, 0xc2, 0x5e, 0x73, 0x63, 0x8f, 0xe2, 0x1c,
+ 0x87, 0x56, 0x6e, 0x86, 0xa9, 0xe0, 0x4c, 0x3e,
+};
+static const unsigned char kat751_addin0[] = {0};
+static const unsigned char kat751_addin1[] = {0};
+static const unsigned char kat751_retbits[] = {
+ 0x2a, 0x76, 0xd7, 0x1b, 0x32, 0x9f, 0x44, 0x9c, 0x98, 0xdc, 0x08, 0xff,
+ 0xf1, 0xd2, 0x05, 0xa2, 0xfb, 0xd9, 0xe4, 0xad, 0xe1, 0x20, 0xc7, 0x61,
+ 0x1c, 0x22, 0x5c, 0x98, 0x4e, 0xac, 0x85, 0x31, 0x28, 0x8d, 0xd3, 0x04,
+ 0x9f, 0x3d, 0xc3, 0xbb, 0x36, 0x71, 0x50, 0x1a, 0xb8, 0xfb, 0xf9, 0xad,
+ 0x49, 0xc8, 0x6c, 0xce, 0x30, 0x76, 0x53, 0xbd, 0x8c, 0xaf, 0x29, 0xcb,
+ 0x0c, 0xf0, 0x77, 0x64,
+};
+static const struct drbg_kat_no_reseed kat751_t = {
+ 0, kat751_entropyin, kat751_nonce, kat751_persstr,
+ kat751_addin0, kat751_addin1, kat751_retbits
+};
+static const struct drbg_kat kat751 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat751_t
+};
+
+static const unsigned char kat752_entropyin[] = {
+ 0xb0, 0x9e, 0xb4, 0xa8, 0x2a, 0x39, 0x06, 0x6e, 0xc9, 0x45, 0xbb, 0x7c,
+ 0x6a, 0xef, 0x6a, 0x06, 0x82, 0xa6, 0x2c, 0x3e, 0x67, 0x4b, 0xd9, 0x00,
+ 0x29, 0x7d, 0x42, 0x71, 0xa5, 0xf2, 0x5b, 0x49,
+};
+static const unsigned char kat752_nonce[] = {0};
+static const unsigned char kat752_persstr[] = {
+ 0xa3, 0xb7, 0x68, 0xad, 0xcf, 0xe7, 0x6d, 0x61, 0xc9, 0x72, 0xd9, 0x00,
+ 0xda, 0x8d, 0xff, 0xee, 0xb2, 0xa4, 0x2e, 0x74, 0x02, 0x47, 0xaa, 0x71,
+ 0x9e, 0xd1, 0xc9, 0x24, 0xd2, 0xd1, 0x0b, 0xd4,
+};
+static const unsigned char kat752_addin0[] = {0};
+static const unsigned char kat752_addin1[] = {0};
+static const unsigned char kat752_retbits[] = {
+ 0x5a, 0x1c, 0x26, 0x80, 0x3f, 0x3f, 0xfd, 0x4d, 0xaf, 0x32, 0x04, 0x2f,
+ 0xdc, 0xc3, 0x2c, 0x38, 0x12, 0xbb, 0x5e, 0xf1, 0x3b, 0xc2, 0x08, 0xce,
+ 0xf8, 0x2e, 0xa0, 0x47, 0xd2, 0x89, 0x0a, 0x6f, 0x5d, 0xce, 0xcf, 0x32,
+ 0xbc, 0xc3, 0x2a, 0x25, 0x85, 0x77, 0x5a, 0xc5, 0xe1, 0xff, 0xaa, 0x8d,
+ 0xe0, 0x06, 0x64, 0xc5, 0x4f, 0xe0, 0x0a, 0x76, 0x74, 0xb9, 0x85, 0x61,
+ 0x9e, 0x95, 0x3c, 0x3a,
+};
+static const struct drbg_kat_no_reseed kat752_t = {
+ 1, kat752_entropyin, kat752_nonce, kat752_persstr,
+ kat752_addin0, kat752_addin1, kat752_retbits
+};
+static const struct drbg_kat kat752 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat752_t
+};
+
+static const unsigned char kat753_entropyin[] = {
+ 0x0b, 0xbc, 0x89, 0x8f, 0x8d, 0xaf, 0x3f, 0x12, 0xfc, 0x00, 0x9c, 0x84,
+ 0x6f, 0xe2, 0xce, 0xa2, 0x2f, 0x68, 0x3a, 0x43, 0x2e, 0xea, 0x29, 0x72,
+ 0x57, 0x31, 0x2d, 0x5a, 0x44, 0xba, 0xc1, 0x31,
+};
+static const unsigned char kat753_nonce[] = {0};
+static const unsigned char kat753_persstr[] = {
+ 0x8d, 0x34, 0xbe, 0x9d, 0x81, 0x10, 0xb8, 0x4b, 0x02, 0xa6, 0x05, 0x08,
+ 0xde, 0xae, 0x77, 0x3c, 0x1a, 0x80, 0x8f, 0x4e, 0x2a, 0x0e, 0xc8, 0x17,
+ 0x47, 0xae, 0x2e, 0xc9, 0x23, 0xfe, 0x99, 0xa9,
+};
+static const unsigned char kat753_addin0[] = {0};
+static const unsigned char kat753_addin1[] = {0};
+static const unsigned char kat753_retbits[] = {
+ 0xda, 0x49, 0xe2, 0x4a, 0x6c, 0xb1, 0xd9, 0xe5, 0x1b, 0x98, 0xea, 0x61,
+ 0x03, 0x62, 0x7d, 0x9a, 0xd0, 0x35, 0x77, 0x0b, 0x7b, 0xdc, 0x76, 0x06,
+ 0x06, 0xe2, 0xb5, 0xf3, 0x5a, 0xfd, 0x13, 0xb7, 0xa6, 0x1a, 0x4a, 0x18,
+ 0xfa, 0xc2, 0x52, 0x58, 0x98, 0x5f, 0xa1, 0xfb, 0x2b, 0x88, 0xa7, 0xcc,
+ 0x17, 0x27, 0x8b, 0x05, 0x39, 0xd7, 0xcf, 0x74, 0xf9, 0x40, 0xf0, 0x08,
+ 0xee, 0x2c, 0xf4, 0xcd,
+};
+static const struct drbg_kat_no_reseed kat753_t = {
+ 2, kat753_entropyin, kat753_nonce, kat753_persstr,
+ kat753_addin0, kat753_addin1, kat753_retbits
+};
+static const struct drbg_kat kat753 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat753_t
+};
+
+static const unsigned char kat754_entropyin[] = {
+ 0x3e, 0xa1, 0xf3, 0xfb, 0x15, 0x36, 0x36, 0xc3, 0x39, 0x82, 0x46, 0x4f,
+ 0x0e, 0x5b, 0x0d, 0xae, 0xba, 0x59, 0xc3, 0xf1, 0xee, 0x91, 0xa6, 0x12,
+ 0xc4, 0xf6, 0xa9, 0xdc, 0xfc, 0xd0, 0xa9, 0x78,
+};
+static const unsigned char kat754_nonce[] = {0};
+static const unsigned char kat754_persstr[] = {
+ 0xea, 0x86, 0x71, 0xfc, 0x9c, 0x02, 0x58, 0x4d, 0x69, 0xaf, 0x91, 0xde,
+ 0x2a, 0xda, 0xce, 0xc1, 0x40, 0x8d, 0x91, 0xd5, 0x12, 0x71, 0x89, 0x45,
+ 0xed, 0x1e, 0x7d, 0xc0, 0xb6, 0x20, 0xb3, 0x23,
+};
+static const unsigned char kat754_addin0[] = {0};
+static const unsigned char kat754_addin1[] = {0};
+static const unsigned char kat754_retbits[] = {
+ 0x24, 0x29, 0xe7, 0xd8, 0x17, 0xcf, 0xd4, 0xf8, 0x50, 0x09, 0x48, 0xd2,
+ 0xec, 0x2d, 0xec, 0x02, 0xb7, 0xd0, 0x35, 0xb4, 0xbb, 0x98, 0x61, 0x44,
+ 0xbb, 0x91, 0x8a, 0x31, 0xbf, 0xd2, 0x26, 0x9e, 0x69, 0x07, 0xc3, 0x4a,
+ 0xc8, 0xbe, 0xab, 0x69, 0x50, 0x88, 0x69, 0xa4, 0xf0, 0x4b, 0xc3, 0xc2,
+ 0x3c, 0xcf, 0xba, 0xe5, 0xd5, 0x9e, 0xab, 0x85, 0x7e, 0xce, 0x00, 0x0d,
+ 0x55, 0x4b, 0x27, 0x3a,
+};
+static const struct drbg_kat_no_reseed kat754_t = {
+ 3, kat754_entropyin, kat754_nonce, kat754_persstr,
+ kat754_addin0, kat754_addin1, kat754_retbits
+};
+static const struct drbg_kat kat754 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat754_t
+};
+
+static const unsigned char kat755_entropyin[] = {
+ 0xb6, 0xb2, 0x03, 0x3e, 0x38, 0x2d, 0xec, 0xd2, 0x1e, 0x4e, 0xab, 0xd8,
+ 0xf1, 0x17, 0x77, 0x61, 0xd0, 0x6a, 0x12, 0xba, 0xe1, 0xcf, 0xed, 0x00,
+ 0x59, 0xb7, 0xe1, 0x6b, 0xd9, 0xba, 0xb8, 0xd7,
+};
+static const unsigned char kat755_nonce[] = {0};
+static const unsigned char kat755_persstr[] = {
+ 0xc9, 0x9a, 0x49, 0x13, 0x25, 0x43, 0xfc, 0xe4, 0x9b, 0x80, 0x4e, 0x9f,
+ 0x41, 0x7d, 0x22, 0xe4, 0x9c, 0x46, 0x0b, 0xc4, 0xe6, 0x0a, 0x6d, 0x36,
+ 0x70, 0x1f, 0xea, 0x56, 0x1b, 0x93, 0x20, 0x3d,
+};
+static const unsigned char kat755_addin0[] = {0};
+static const unsigned char kat755_addin1[] = {0};
+static const unsigned char kat755_retbits[] = {
+ 0x63, 0x62, 0x66, 0x08, 0xb4, 0x46, 0xc7, 0xd0, 0x22, 0x12, 0x20, 0x9d,
+ 0x0a, 0x38, 0x88, 0xe4, 0x05, 0x34, 0x86, 0x4d, 0x8f, 0x5c, 0xd2, 0x8a,
+ 0xaf, 0xf0, 0x95, 0x05, 0xee, 0x5e, 0x89, 0x47, 0x51, 0xe5, 0xcb, 0x84,
+ 0x67, 0xa5, 0xd8, 0x5d, 0x87, 0xa6, 0x75, 0xb7, 0x85, 0x27, 0x24, 0xde,
+ 0xb0, 0xd1, 0x20, 0x38, 0x03, 0x54, 0x00, 0xc3, 0x40, 0x5f, 0xaf, 0xb1,
+ 0xa4, 0x7f, 0x88, 0xc8,
+};
+static const struct drbg_kat_no_reseed kat755_t = {
+ 4, kat755_entropyin, kat755_nonce, kat755_persstr,
+ kat755_addin0, kat755_addin1, kat755_retbits
+};
+static const struct drbg_kat kat755 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat755_t
+};
+
+static const unsigned char kat756_entropyin[] = {
+ 0xac, 0xc4, 0x65, 0xd1, 0xbf, 0x94, 0xcc, 0xde, 0xec, 0x06, 0xc7, 0x4c,
+ 0x81, 0x2d, 0xb3, 0xa9, 0x93, 0xc4, 0x08, 0xb5, 0xc2, 0xef, 0x7e, 0xbe,
+ 0x9b, 0xde, 0xb6, 0xa1, 0xa5, 0x19, 0x76, 0xa7,
+};
+static const unsigned char kat756_nonce[] = {0};
+static const unsigned char kat756_persstr[] = {
+ 0x77, 0x27, 0x8d, 0x47, 0xa1, 0x69, 0xc5, 0x59, 0x51, 0x8d, 0x46, 0xff,
+ 0xb2, 0x3a, 0xa5, 0x94, 0xef, 0xda, 0xeb, 0xb0, 0x67, 0xc4, 0x8d, 0x4a,
+ 0x39, 0x2f, 0x60, 0xb9, 0x4c, 0xc1, 0x5b, 0x36,
+};
+static const unsigned char kat756_addin0[] = {0};
+static const unsigned char kat756_addin1[] = {0};
+static const unsigned char kat756_retbits[] = {
+ 0xe0, 0xe6, 0xe4, 0x17, 0xde, 0x8f, 0xc5, 0xd2, 0x12, 0xbd, 0xda, 0x4c,
+ 0x02, 0x6a, 0x13, 0xd6, 0xea, 0xe4, 0x02, 0x87, 0x4d, 0x62, 0xc3, 0x05,
+ 0x77, 0xee, 0x4c, 0x34, 0x45, 0xac, 0xe8, 0x54, 0x79, 0xcb, 0xc3, 0xb5,
+ 0x5b, 0xbb, 0xe1, 0x57, 0x3c, 0x13, 0xf9, 0xb0, 0x24, 0x2d, 0x7e, 0x3f,
+ 0x6e, 0x7e, 0x91, 0xd9, 0x32, 0xb3, 0xd5, 0xa6, 0xdc, 0xa8, 0xdf, 0x43,
+ 0xc1, 0x88, 0xae, 0x5e,
+};
+static const struct drbg_kat_no_reseed kat756_t = {
+ 5, kat756_entropyin, kat756_nonce, kat756_persstr,
+ kat756_addin0, kat756_addin1, kat756_retbits
+};
+static const struct drbg_kat kat756 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat756_t
+};
+
+static const unsigned char kat757_entropyin[] = {
+ 0x14, 0xb3, 0x34, 0x15, 0xd2, 0x32, 0x1f, 0xbb, 0x10, 0xa7, 0x68, 0xce,
+ 0xd7, 0x12, 0xc8, 0x99, 0x9f, 0xf2, 0xf1, 0x9b, 0x63, 0x26, 0x4a, 0x81,
+ 0xad, 0xc2, 0xfd, 0xc1, 0x63, 0x70, 0xb1, 0x85,
+};
+static const unsigned char kat757_nonce[] = {0};
+static const unsigned char kat757_persstr[] = {
+ 0x02, 0x9b, 0x48, 0x80, 0x52, 0x85, 0x34, 0x9c, 0x29, 0x2a, 0x99, 0xee,
+ 0x68, 0xfc, 0xef, 0xda, 0x1f, 0x61, 0xdd, 0x60, 0xa0, 0x9f, 0x46, 0x16,
+ 0xcb, 0x2e, 0xfe, 0x4f, 0x8b, 0x14, 0x00, 0x56,
+};
+static const unsigned char kat757_addin0[] = {0};
+static const unsigned char kat757_addin1[] = {0};
+static const unsigned char kat757_retbits[] = {
+ 0x8a, 0x69, 0xfe, 0xb2, 0x6b, 0xe0, 0x25, 0xa3, 0x84, 0x9b, 0xb0, 0xb6,
+ 0x09, 0x59, 0x71, 0x7d, 0xaa, 0x59, 0xc8, 0x89, 0xc3, 0x83, 0x59, 0x3d,
+ 0x1f, 0x8d, 0xeb, 0xf5, 0x80, 0x51, 0xeb, 0x46, 0x3d, 0x07, 0xc6, 0x59,
+ 0xcf, 0xbe, 0x47, 0xe9, 0x42, 0x24, 0xba, 0x18, 0x83, 0x3b, 0x71, 0xd9,
+ 0x59, 0x05, 0xe0, 0xcd, 0xe7, 0x85, 0x36, 0x4a, 0x87, 0x70, 0x6e, 0x31,
+ 0x29, 0x7f, 0xb3, 0x23,
+};
+static const struct drbg_kat_no_reseed kat757_t = {
+ 6, kat757_entropyin, kat757_nonce, kat757_persstr,
+ kat757_addin0, kat757_addin1, kat757_retbits
+};
+static const struct drbg_kat kat757 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat757_t
+};
+
+static const unsigned char kat758_entropyin[] = {
+ 0x5a, 0x83, 0xaf, 0x23, 0xca, 0xfb, 0x30, 0xe3, 0xa1, 0x8e, 0x28, 0x65,
+ 0x1b, 0x3c, 0x1b, 0xd0, 0x18, 0x13, 0xc4, 0x42, 0x16, 0xe7, 0xe4, 0x4b,
+ 0x79, 0x0d, 0x66, 0x64, 0xe2, 0xc3, 0x83, 0x9a,
+};
+static const unsigned char kat758_nonce[] = {0};
+static const unsigned char kat758_persstr[] = {
+ 0xd0, 0xf1, 0x08, 0xae, 0x7c, 0x65, 0xe1, 0x6c, 0xfa, 0x13, 0xe5, 0x58,
+ 0x22, 0x04, 0xeb, 0x8c, 0xd6, 0xeb, 0xb0, 0x8f, 0x1f, 0x6a, 0x5d, 0x47,
+ 0x6c, 0x27, 0x52, 0x47, 0xc1, 0xa8, 0x3e, 0xb5,
+};
+static const unsigned char kat758_addin0[] = {0};
+static const unsigned char kat758_addin1[] = {0};
+static const unsigned char kat758_retbits[] = {
+ 0xe6, 0x43, 0x97, 0xf0, 0xee, 0xa0, 0xd3, 0x3d, 0x97, 0x15, 0xbc, 0xef,
+ 0x2e, 0xe7, 0xee, 0xc2, 0x2a, 0x86, 0xe8, 0xd0, 0x66, 0xa2, 0x5e, 0x44,
+ 0x70, 0x6d, 0xc6, 0x88, 0xc4, 0x99, 0xbd, 0x7e, 0xf0, 0x81, 0x72, 0xc8,
+ 0xcf, 0x36, 0xe3, 0xbd, 0xdf, 0x79, 0xf2, 0xbe, 0xc1, 0x36, 0xa0, 0x1a,
+ 0xad, 0x84, 0x49, 0x30, 0xe4, 0x8a, 0x16, 0xfe, 0x18, 0x00, 0xd6, 0x9f,
+ 0xb0, 0xf4, 0xe1, 0x63,
+};
+static const struct drbg_kat_no_reseed kat758_t = {
+ 7, kat758_entropyin, kat758_nonce, kat758_persstr,
+ kat758_addin0, kat758_addin1, kat758_retbits
+};
+static const struct drbg_kat kat758 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat758_t
+};
+
+static const unsigned char kat759_entropyin[] = {
+ 0x1d, 0xc2, 0x4d, 0xd9, 0xd6, 0xa4, 0x05, 0xa0, 0x07, 0xbd, 0x08, 0x2c,
+ 0xfb, 0xdb, 0xd8, 0x63, 0x18, 0x5e, 0x07, 0x2b, 0x67, 0xd6, 0x63, 0xb1,
+ 0x4d, 0x7e, 0x8f, 0x16, 0x90, 0x0c, 0xfc, 0xe6,
+};
+static const unsigned char kat759_nonce[] = {0};
+static const unsigned char kat759_persstr[] = {
+ 0x0e, 0xca, 0x85, 0xdd, 0xcb, 0x6f, 0x38, 0xff, 0x36, 0x83, 0x96, 0x8e,
+ 0xf9, 0x8b, 0x52, 0x40, 0x84, 0x28, 0xdc, 0xae, 0x2e, 0xc3, 0xb0, 0xfa,
+ 0x4c, 0x68, 0x90, 0x6c, 0x1b, 0x64, 0x81, 0xcd,
+};
+static const unsigned char kat759_addin0[] = {0};
+static const unsigned char kat759_addin1[] = {0};
+static const unsigned char kat759_retbits[] = {
+ 0x15, 0x69, 0x38, 0x56, 0x6f, 0xc2, 0x5d, 0x49, 0x3c, 0x1c, 0x60, 0xd8,
+ 0x92, 0x58, 0x19, 0xa6, 0xe5, 0x9a, 0x24, 0x79, 0xd7, 0x5f, 0x3e, 0xff,
+ 0xf1, 0x6d, 0x46, 0xaa, 0xda, 0x68, 0x40, 0x31, 0x40, 0x40, 0x79, 0x55,
+ 0xc1, 0xfd, 0x9d, 0x2a, 0x89, 0x0b, 0xcf, 0x67, 0xac, 0x9b, 0x3b, 0x82,
+ 0xd1, 0xd6, 0xcf, 0x78, 0x8f, 0xd8, 0x63, 0xda, 0x3d, 0x41, 0xac, 0x6e,
+ 0x34, 0xf2, 0x17, 0xa0,
+};
+static const struct drbg_kat_no_reseed kat759_t = {
+ 8, kat759_entropyin, kat759_nonce, kat759_persstr,
+ kat759_addin0, kat759_addin1, kat759_retbits
+};
+static const struct drbg_kat kat759 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat759_t
+};
+
+static const unsigned char kat760_entropyin[] = {
+ 0xec, 0xb7, 0xe6, 0x1a, 0x47, 0x92, 0xa2, 0x11, 0x52, 0x13, 0xd1, 0x41,
+ 0xd2, 0x07, 0x10, 0xe8, 0xa3, 0x21, 0x2d, 0x78, 0x47, 0xdd, 0x53, 0xdf,
+ 0xa5, 0xd4, 0xd7, 0x77, 0x7d, 0x10, 0xd9, 0x7e,
+};
+static const unsigned char kat760_nonce[] = {0};
+static const unsigned char kat760_persstr[] = {
+ 0xbf, 0x09, 0x23, 0x5d, 0x30, 0xcd, 0x69, 0xad, 0xa2, 0x85, 0x94, 0x8f,
+ 0xe1, 0xbe, 0x2e, 0x0c, 0x4e, 0x14, 0x5a, 0xc8, 0x48, 0x5d, 0x12, 0xca,
+ 0x7b, 0x82, 0x39, 0x13, 0x6d, 0xa1, 0xc6, 0x38,
+};
+static const unsigned char kat760_addin0[] = {0};
+static const unsigned char kat760_addin1[] = {0};
+static const unsigned char kat760_retbits[] = {
+ 0x86, 0x8d, 0xb5, 0x83, 0x2b, 0x2e, 0x9c, 0x3d, 0x2c, 0x97, 0x94, 0xb1,
+ 0x74, 0xb3, 0x28, 0xed, 0x2c, 0xc8, 0x6e, 0x41, 0x01, 0x78, 0x63, 0xea,
+ 0xbc, 0x4a, 0x7c, 0x09, 0x6a, 0x48, 0x7b, 0xfe, 0x4d, 0x67, 0xcc, 0xf9,
+ 0x3a, 0x5e, 0x2c, 0x67, 0xd8, 0x8d, 0xbd, 0x8f, 0x14, 0x19, 0xb2, 0xa9,
+ 0xf1, 0x29, 0x3e, 0x7a, 0x70, 0xe8, 0xe8, 0xfe, 0x93, 0xe2, 0x15, 0x64,
+ 0x96, 0xb0, 0xfa, 0x54,
+};
+static const struct drbg_kat_no_reseed kat760_t = {
+ 9, kat760_entropyin, kat760_nonce, kat760_persstr,
+ kat760_addin0, kat760_addin1, kat760_retbits
+};
+static const struct drbg_kat kat760 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat760_t
+};
+
+static const unsigned char kat761_entropyin[] = {
+ 0xe5, 0x57, 0x27, 0xc5, 0x90, 0xec, 0x3a, 0xc1, 0x08, 0xf4, 0xe5, 0xfe,
+ 0xc3, 0x9a, 0x2d, 0x34, 0xbf, 0x89, 0xae, 0xe4, 0xe2, 0x15, 0xdc, 0xc9,
+ 0x70, 0xdb, 0x8a, 0xe8, 0xf6, 0xa0, 0xe4, 0xa8,
+};
+static const unsigned char kat761_nonce[] = {0};
+static const unsigned char kat761_persstr[] = {
+ 0xad, 0xe3, 0xd2, 0x8a, 0x8e, 0x43, 0xaa, 0xb8, 0xfd, 0x31, 0xde, 0xc8,
+ 0xbd, 0xbe, 0x5c, 0x41, 0xc0, 0xb3, 0xf7, 0xf6, 0x9a, 0x2d, 0x0a, 0xad,
+ 0xa5, 0x60, 0x8a, 0xb0, 0xe5, 0x7c, 0x8b, 0xb0,
+};
+static const unsigned char kat761_addin0[] = {0};
+static const unsigned char kat761_addin1[] = {0};
+static const unsigned char kat761_retbits[] = {
+ 0x19, 0x87, 0x42, 0x29, 0x9f, 0xee, 0xcf, 0x60, 0x83, 0xe3, 0xa0, 0xbe,
+ 0xf7, 0x5a, 0xc2, 0xb9, 0x3d, 0xe2, 0xde, 0xfa, 0x65, 0x25, 0x88, 0x3a,
+ 0x55, 0xf8, 0x82, 0x47, 0xdc, 0x69, 0x02, 0x27, 0x9f, 0x79, 0x24, 0x02,
+ 0xfa, 0xff, 0xe4, 0xa8, 0x12, 0x13, 0xe4, 0x0f, 0xac, 0xb8, 0x73, 0xcd,
+ 0x49, 0x9e, 0x4b, 0x0f, 0x7f, 0x0f, 0xf5, 0x92, 0xbc, 0x06, 0x69, 0x9d,
+ 0xb7, 0x73, 0xb8, 0x99,
+};
+static const struct drbg_kat_no_reseed kat761_t = {
+ 10, kat761_entropyin, kat761_nonce, kat761_persstr,
+ kat761_addin0, kat761_addin1, kat761_retbits
+};
+static const struct drbg_kat kat761 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat761_t
+};
+
+static const unsigned char kat762_entropyin[] = {
+ 0xc3, 0x80, 0xda, 0xfd, 0x84, 0xf2, 0x78, 0x2b, 0x75, 0x39, 0xca, 0x1c,
+ 0x3a, 0xd9, 0x71, 0x5f, 0xe6, 0xb1, 0x80, 0x53, 0x10, 0xa5, 0x78, 0xaf,
+ 0xcf, 0xfc, 0x92, 0x10, 0xac, 0x12, 0x7d, 0xed,
+};
+static const unsigned char kat762_nonce[] = {0};
+static const unsigned char kat762_persstr[] = {
+ 0xb2, 0x98, 0x53, 0x3d, 0x9c, 0x74, 0xa0, 0xd9, 0xb9, 0xaa, 0x0d, 0x82,
+ 0xed, 0xc4, 0x34, 0x00, 0x2b, 0x4d, 0x13, 0x72, 0x31, 0x8c, 0x28, 0x65,
+ 0xb7, 0x70, 0x0a, 0x5b, 0x7e, 0xbe, 0xab, 0xf0,
+};
+static const unsigned char kat762_addin0[] = {0};
+static const unsigned char kat762_addin1[] = {0};
+static const unsigned char kat762_retbits[] = {
+ 0x9a, 0xec, 0x7a, 0x5b, 0xa3, 0xe0, 0x91, 0xe6, 0xa6, 0xc9, 0x9e, 0x04,
+ 0x39, 0x5a, 0xf2, 0xab, 0x2e, 0xea, 0xa1, 0xef, 0x08, 0x9b, 0xaa, 0x51,
+ 0xdc, 0x23, 0xea, 0x31, 0x60, 0x3b, 0x89, 0x9e, 0xa2, 0x98, 0x31, 0x76,
+ 0x03, 0x35, 0x4f, 0x38, 0xfd, 0x9c, 0x36, 0xc2, 0xa5, 0x3a, 0x05, 0xc1,
+ 0xe4, 0x68, 0xc6, 0xae, 0x32, 0xfe, 0x4c, 0x3b, 0x00, 0x56, 0xec, 0x0d,
+ 0x5e, 0xff, 0x22, 0xb6,
+};
+static const struct drbg_kat_no_reseed kat762_t = {
+ 11, kat762_entropyin, kat762_nonce, kat762_persstr,
+ kat762_addin0, kat762_addin1, kat762_retbits
+};
+static const struct drbg_kat kat762 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat762_t
+};
+
+static const unsigned char kat763_entropyin[] = {
+ 0xf1, 0x58, 0x21, 0x05, 0x35, 0xa4, 0x04, 0xf6, 0xcb, 0x4f, 0x95, 0x50,
+ 0xb3, 0xf2, 0x6e, 0x3f, 0x77, 0x7a, 0x9f, 0xaa, 0x16, 0x47, 0x74, 0x74,
+ 0x9f, 0x48, 0xef, 0x4a, 0x8c, 0xe0, 0x94, 0x49,
+};
+static const unsigned char kat763_nonce[] = {0};
+static const unsigned char kat763_persstr[] = {
+ 0xd5, 0x6f, 0xa8, 0x73, 0xcc, 0x76, 0x2f, 0x64, 0xb3, 0xab, 0x31, 0xb6,
+ 0x29, 0x1e, 0x24, 0x7e, 0xfc, 0xa7, 0x1f, 0xca, 0x90, 0x45, 0x3c, 0xff,
+ 0xf1, 0xf2, 0xb0, 0xb3, 0xe2, 0x65, 0xc4, 0x75,
+};
+static const unsigned char kat763_addin0[] = {0};
+static const unsigned char kat763_addin1[] = {0};
+static const unsigned char kat763_retbits[] = {
+ 0x03, 0x4b, 0x41, 0xb2, 0xa9, 0xa6, 0x76, 0x4e, 0x5e, 0xd1, 0xed, 0xb0,
+ 0x0a, 0xea, 0x31, 0x85, 0xfe, 0x43, 0xeb, 0x81, 0xb4, 0x25, 0x3e, 0x7c,
+ 0xad, 0xe9, 0x79, 0x56, 0xfc, 0xcd, 0x9f, 0xc5, 0x78, 0x23, 0x28, 0xfa,
+ 0xda, 0x8e, 0xd5, 0x20, 0x8f, 0x1d, 0x46, 0xb1, 0xf8, 0x72, 0xe3, 0x33,
+ 0xb9, 0xe2, 0xf0, 0x36, 0xa5, 0x17, 0x46, 0xcc, 0xaf, 0x39, 0xe1, 0xa8,
+ 0x5a, 0xf8, 0xeb, 0x23,
+};
+static const struct drbg_kat_no_reseed kat763_t = {
+ 12, kat763_entropyin, kat763_nonce, kat763_persstr,
+ kat763_addin0, kat763_addin1, kat763_retbits
+};
+static const struct drbg_kat kat763 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat763_t
+};
+
+static const unsigned char kat764_entropyin[] = {
+ 0x97, 0x3a, 0x99, 0xb7, 0xe0, 0x3b, 0x39, 0x3e, 0xf6, 0x89, 0xaf, 0x8c,
+ 0xb9, 0x0d, 0x74, 0x36, 0xca, 0xe1, 0x0e, 0x48, 0x14, 0x81, 0x4a, 0xed,
+ 0x34, 0x2d, 0xd3, 0x8e, 0x2a, 0x73, 0x46, 0xe3,
+};
+static const unsigned char kat764_nonce[] = {0};
+static const unsigned char kat764_persstr[] = {
+ 0x30, 0x0d, 0x3d, 0x2a, 0xdb, 0xac, 0x6d, 0x7d, 0xda, 0xdd, 0xe0, 0x7e,
+ 0x08, 0xb0, 0xd7, 0x2b, 0x5b, 0x39, 0xff, 0x36, 0x03, 0x1e, 0x81, 0xd8,
+ 0x30, 0x39, 0x58, 0x24, 0x2e, 0x3c, 0xf0, 0x3f,
+};
+static const unsigned char kat764_addin0[] = {0};
+static const unsigned char kat764_addin1[] = {0};
+static const unsigned char kat764_retbits[] = {
+ 0x62, 0x01, 0x28, 0x42, 0x99, 0x1f, 0xe3, 0x22, 0x0f, 0x1d, 0x96, 0x10,
+ 0x45, 0xf0, 0x28, 0xa3, 0xb6, 0xa7, 0x29, 0xf5, 0xa4, 0x51, 0xb8, 0xc2,
+ 0xec, 0x90, 0xe1, 0xc1, 0xe2, 0xb1, 0xe4, 0x04, 0x2e, 0x97, 0x26, 0x7e,
+ 0x1b, 0xfa, 0x17, 0x82, 0xa1, 0x0c, 0x3c, 0x29, 0x50, 0x9b, 0xc8, 0xf2,
+ 0xad, 0xff, 0xd3, 0xd6, 0x95, 0x86, 0x1e, 0x15, 0x94, 0xda, 0x91, 0x70,
+ 0x28, 0x30, 0xfa, 0xf7,
+};
+static const struct drbg_kat_no_reseed kat764_t = {
+ 13, kat764_entropyin, kat764_nonce, kat764_persstr,
+ kat764_addin0, kat764_addin1, kat764_retbits
+};
+static const struct drbg_kat kat764 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat764_t
+};
+
+static const unsigned char kat765_entropyin[] = {
+ 0x22, 0xd1, 0xd8, 0xc8, 0xbd, 0xe7, 0x6a, 0x23, 0x9d, 0x03, 0x28, 0x04,
+ 0x71, 0x7f, 0xac, 0xe1, 0x6d, 0x77, 0xb5, 0x11, 0x70, 0xd0, 0xf5, 0x3c,
+ 0xcb, 0xcc, 0xa4, 0xea, 0xff, 0x4f, 0xb3, 0x15,
+};
+static const unsigned char kat765_nonce[] = {0};
+static const unsigned char kat765_persstr[] = {
+ 0x5d, 0x3a, 0x7d, 0x40, 0xfd, 0xf9, 0x5b, 0x98, 0x45, 0x4b, 0xca, 0x03,
+ 0xc6, 0xfc, 0xbf, 0x6a, 0xbf, 0x38, 0x07, 0xde, 0x75, 0x17, 0x1b, 0x55,
+ 0xba, 0xb2, 0xdb, 0x5a, 0x3f, 0x5f, 0x12, 0xf2,
+};
+static const unsigned char kat765_addin0[] = {0};
+static const unsigned char kat765_addin1[] = {0};
+static const unsigned char kat765_retbits[] = {
+ 0x10, 0x07, 0xe1, 0x1f, 0x48, 0xe3, 0xc4, 0x81, 0x3f, 0xdd, 0xd6, 0x73,
+ 0x10, 0xdb, 0x56, 0xd6, 0x7a, 0x49, 0xfe, 0x93, 0xe4, 0x5e, 0x61, 0xb3,
+ 0x7b, 0xa8, 0x14, 0x85, 0xdf, 0x6a, 0x62, 0xee, 0x57, 0xca, 0x41, 0xfa,
+ 0x1d, 0x98, 0x7f, 0x46, 0x7c, 0x29, 0x39, 0x79, 0x0a, 0x20, 0x42, 0x1c,
+ 0x2b, 0x4f, 0x70, 0xb2, 0x8f, 0xb0, 0xb9, 0x0b, 0xbe, 0xab, 0x1a, 0xc0,
+ 0xae, 0x88, 0x4f, 0x1a,
+};
+static const struct drbg_kat_no_reseed kat765_t = {
+ 14, kat765_entropyin, kat765_nonce, kat765_persstr,
+ kat765_addin0, kat765_addin1, kat765_retbits
+};
+static const struct drbg_kat kat765 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat765_t
+};
+
+static const unsigned char kat766_entropyin[] = {
+ 0x50, 0xb9, 0x65, 0x42, 0xa1, 0xf2, 0xb8, 0xb0, 0x50, 0x74, 0x05, 0x1f,
+ 0xe8, 0xfb, 0x0e, 0x45, 0xad, 0xbb, 0xd5, 0x56, 0x0e, 0x35, 0x94, 0xe1,
+ 0x2d, 0x48, 0x5f, 0xe1, 0xbf, 0xcb, 0x74, 0x1f,
+};
+static const unsigned char kat766_nonce[] = {0};
+static const unsigned char kat766_persstr[] = {
+ 0x82, 0x0c, 0x30, 0x30, 0xf9, 0x7b, 0x3e, 0xad, 0x81, 0xa9, 0x3b, 0x88,
+ 0xb8, 0x71, 0x93, 0x72, 0x78, 0xfd, 0x3d, 0x71, 0x1d, 0x20, 0x85, 0xd9,
+ 0x28, 0x0c, 0xba, 0x39, 0x46, 0x73, 0xb1, 0x7e,
+};
+static const unsigned char kat766_addin0[] = {
+ 0x1f, 0x16, 0x32, 0x05, 0x88, 0x06, 0xd6, 0xd8, 0xe2, 0x31, 0x28, 0x8f,
+ 0x3b, 0x15, 0xa3, 0xc3, 0x24, 0xe9, 0x0c, 0xce, 0xf4, 0x89, 0x1b, 0xd5,
+ 0x95, 0xf0, 0x9c, 0x3e, 0x80, 0xe2, 0x74, 0x69,
+};
+static const unsigned char kat766_addin1[] = {
+ 0x5c, 0xad, 0xc8, 0xbf, 0xd8, 0x6d, 0x2a, 0x5d, 0x44, 0xf9, 0x21, 0xf6,
+ 0x4c, 0x7d, 0x15, 0x30, 0x01, 0xb9, 0xbd, 0xd7, 0xca, 0xa6, 0x61, 0x86,
+ 0x39, 0xb9, 0x48, 0xeb, 0xfa, 0xd5, 0xcb, 0x8a,
+};
+static const unsigned char kat766_retbits[] = {
+ 0x02, 0xb7, 0x6a, 0x66, 0xf1, 0x03, 0xe9, 0x8d, 0x45, 0x0e, 0x25, 0xe0,
+ 0x9c, 0x35, 0x33, 0x77, 0x47, 0xd9, 0x87, 0x47, 0x1d, 0x2b, 0x3d, 0x81,
+ 0xe0, 0x3b, 0xe2, 0x4c, 0x7e, 0x98, 0x54, 0x17, 0xa3, 0x2a, 0xcd, 0x72,
+ 0xbc, 0x0a, 0x6e, 0xdd, 0xd9, 0x87, 0x14, 0x10, 0xda, 0xcb, 0x92, 0x1c,
+ 0x65, 0x92, 0x49, 0xb4, 0xe2, 0xb3, 0x68, 0xc4, 0xac, 0x85, 0x80, 0xfb,
+ 0x5d, 0xb5, 0x59, 0xbc,
+};
+static const struct drbg_kat_no_reseed kat766_t = {
+ 0, kat766_entropyin, kat766_nonce, kat766_persstr,
+ kat766_addin0, kat766_addin1, kat766_retbits
+};
+static const struct drbg_kat kat766 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat766_t
+};
+
+static const unsigned char kat767_entropyin[] = {
+ 0xff, 0x5f, 0x4b, 0x75, 0x4e, 0x8b, 0x36, 0x4f, 0x6d, 0xf0, 0xc5, 0xef,
+ 0xfb, 0xa5, 0xf1, 0xc0, 0x36, 0xde, 0x49, 0xc4, 0xb3, 0x8c, 0xd8, 0xd2,
+ 0x30, 0xee, 0x1f, 0x14, 0xd7, 0x23, 0x4e, 0xf5,
+};
+static const unsigned char kat767_nonce[] = {0};
+static const unsigned char kat767_persstr[] = {
+ 0x99, 0x4e, 0xb3, 0x39, 0xf6, 0x40, 0x34, 0x00, 0x5d, 0x2e, 0x18, 0x35,
+ 0x28, 0x99, 0xe7, 0x7d, 0xf4, 0x46, 0xe2, 0x85, 0xc3, 0x43, 0x06, 0x31,
+ 0xd5, 0x57, 0x49, 0x8a, 0xac, 0x4f, 0x42, 0x80,
+};
+static const unsigned char kat767_addin0[] = {
+ 0xe1, 0x82, 0x48, 0x32, 0xd5, 0xfc, 0x2a, 0x6d, 0xea, 0x54, 0x4c, 0xac,
+ 0x2a, 0xb7, 0x33, 0x06, 0xd6, 0x56, 0x6b, 0xde, 0x98, 0xcc, 0x8f, 0x94,
+ 0x25, 0xd0, 0x64, 0xb8, 0x60, 0xa9, 0xb2, 0x18,
+};
+static const unsigned char kat767_addin1[] = {
+ 0xc0, 0x8b, 0x42, 0x43, 0x3a, 0x78, 0xfd, 0x39, 0x3a, 0x34, 0xff, 0xc2,
+ 0x47, 0x24, 0xd4, 0x79, 0xaf, 0x08, 0xc3, 0x68, 0x82, 0x79, 0x9c, 0x13,
+ 0x41, 0x65, 0xd9, 0x8b, 0x28, 0x66, 0xdc, 0x0a,
+};
+static const unsigned char kat767_retbits[] = {
+ 0x1e, 0xfa, 0x34, 0xae, 0xd0, 0x7d, 0xd5, 0x7b, 0xde, 0x97, 0x41, 0xb8,
+ 0xd1, 0x90, 0x7d, 0x28, 0xe8, 0xc1, 0xac, 0x71, 0x60, 0x1d, 0xf3, 0x7e,
+ 0xf4, 0x29, 0x5e, 0x6f, 0xfb, 0x67, 0xf6, 0xa1, 0xc4, 0xc1, 0x3e, 0x5d,
+ 0xef, 0x65, 0xd5, 0x05, 0xe2, 0x40, 0x8a, 0xeb, 0x82, 0x94, 0x89, 0x99,
+ 0xca, 0x1f, 0x9c, 0x91, 0x13, 0xb9, 0x9a, 0x6b, 0x59, 0xff, 0x7f, 0x0c,
+ 0xc3, 0xdc, 0x6e, 0x92,
+};
+static const struct drbg_kat_no_reseed kat767_t = {
+ 1, kat767_entropyin, kat767_nonce, kat767_persstr,
+ kat767_addin0, kat767_addin1, kat767_retbits
+};
+static const struct drbg_kat kat767 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat767_t
+};
+
+static const unsigned char kat768_entropyin[] = {
+ 0x82, 0x85, 0x98, 0x8e, 0x78, 0x65, 0xd0, 0xa0, 0xfe, 0x1e, 0xeb, 0xf7,
+ 0xec, 0x00, 0x2b, 0x0b, 0x49, 0xd0, 0x1b, 0x8f, 0x88, 0x05, 0x86, 0x6b,
+ 0x27, 0xc7, 0xf2, 0x7f, 0xc2, 0xb1, 0x46, 0x29,
+};
+static const unsigned char kat768_nonce[] = {0};
+static const unsigned char kat768_persstr[] = {
+ 0x11, 0x61, 0x77, 0xa6, 0x4b, 0xa2, 0x70, 0x97, 0xcc, 0xa8, 0xe4, 0x42,
+ 0x07, 0x7b, 0x11, 0x96, 0x10, 0x39, 0xef, 0x37, 0xaa, 0xc9, 0x59, 0x3b,
+ 0x43, 0x0b, 0x9a, 0xa2, 0xc7, 0x3f, 0xfb, 0x27,
+};
+static const unsigned char kat768_addin0[] = {
+ 0x3c, 0xf5, 0x97, 0x52, 0x47, 0xcc, 0x5c, 0x28, 0xf2, 0x10, 0xa1, 0x48,
+ 0x9a, 0xa4, 0x92, 0x76, 0x8e, 0x57, 0xac, 0x2a, 0x97, 0xf3, 0x99, 0xbe,
+ 0xed, 0x36, 0x81, 0x73, 0xea, 0x35, 0x6c, 0x13,
+};
+static const unsigned char kat768_addin1[] = {
+ 0x1a, 0x78, 0x05, 0x5c, 0xd3, 0xf2, 0x90, 0x74, 0x50, 0x7a, 0x23, 0x2f,
+ 0x0d, 0x03, 0xe0, 0x9c, 0x0b, 0x56, 0x9d, 0xba, 0x24, 0xda, 0x1b, 0x96,
+ 0x71, 0x24, 0x2d, 0x94, 0x0d, 0x8f, 0x46, 0x43,
+};
+static const unsigned char kat768_retbits[] = {
+ 0x90, 0x3d, 0x49, 0x8f, 0x58, 0x85, 0x65, 0xb2, 0x5b, 0xa9, 0x77, 0x40,
+ 0xc3, 0x4a, 0x3c, 0x57, 0x3e, 0x64, 0x34, 0x65, 0xc7, 0xd1, 0x28, 0xd9,
+ 0xc1, 0xf8, 0x76, 0x3c, 0x77, 0x96, 0x05, 0x64, 0x85, 0xc6, 0x57, 0xe7,
+ 0x32, 0xb1, 0xa0, 0x60, 0x32, 0x59, 0x93, 0x11, 0x6c, 0xde, 0xdd, 0xe7,
+ 0x1b, 0x1a, 0x84, 0x68, 0xce, 0x56, 0x54, 0x0f, 0xbe, 0xd0, 0xe7, 0x18,
+ 0x67, 0x20, 0xcf, 0x76,
+};
+static const struct drbg_kat_no_reseed kat768_t = {
+ 2, kat768_entropyin, kat768_nonce, kat768_persstr,
+ kat768_addin0, kat768_addin1, kat768_retbits
+};
+static const struct drbg_kat kat768 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat768_t
+};
+
+static const unsigned char kat769_entropyin[] = {
+ 0xc4, 0xd1, 0xd1, 0xfd, 0x1e, 0x19, 0x8f, 0xcb, 0x07, 0xb9, 0x1d, 0x50,
+ 0x9e, 0x2d, 0x16, 0xf7, 0xbb, 0x65, 0x28, 0xbc, 0xa5, 0x75, 0xf4, 0x64,
+ 0x32, 0x15, 0x8e, 0x32, 0x17, 0xaf, 0x75, 0x92,
+};
+static const unsigned char kat769_nonce[] = {0};
+static const unsigned char kat769_persstr[] = {
+ 0xf6, 0x85, 0x11, 0xdd, 0xea, 0x28, 0x88, 0x21, 0x6d, 0x45, 0x51, 0x99,
+ 0x0c, 0xae, 0xaf, 0x02, 0x0a, 0xe8, 0x37, 0x1b, 0x73, 0x48, 0x20, 0x5b,
+ 0xf6, 0x28, 0x66, 0xae, 0x38, 0x99, 0xca, 0xb5,
+};
+static const unsigned char kat769_addin0[] = {
+ 0x4a, 0x3e, 0xdd, 0xf9, 0xa9, 0x35, 0xa1, 0xac, 0x41, 0x7e, 0xdf, 0xd7,
+ 0x53, 0x8d, 0xcc, 0xbd, 0xe1, 0xc1, 0x99, 0x9d, 0x8a, 0x8e, 0x4e, 0x1f,
+ 0x26, 0x7d, 0xb7, 0x16, 0x5a, 0x98, 0x19, 0x0b,
+};
+static const unsigned char kat769_addin1[] = {
+ 0x55, 0xde, 0x69, 0x00, 0xc6, 0x5d, 0x57, 0xb3, 0x5b, 0xa1, 0x99, 0x45,
+ 0xbe, 0x54, 0x53, 0xe7, 0x37, 0x4f, 0x94, 0x68, 0x06, 0x61, 0x85, 0x07,
+ 0x29, 0x02, 0xc3, 0xd0, 0x85, 0x66, 0x3e, 0xd5,
+};
+static const unsigned char kat769_retbits[] = {
+ 0xdf, 0x69, 0xb3, 0xdd, 0xd2, 0x42, 0xda, 0x1c, 0x06, 0x2f, 0x13, 0x10,
+ 0x96, 0xeb, 0xa5, 0xaf, 0x63, 0x3e, 0x4a, 0xe9, 0xff, 0x2e, 0xab, 0x57,
+ 0xc7, 0x0b, 0x96, 0x10, 0x18, 0x49, 0x62, 0x80, 0x0b, 0xad, 0x8c, 0x4b,
+ 0x90, 0x83, 0x14, 0x53, 0x9a, 0x30, 0x50, 0x43, 0xa4, 0x1d, 0x6e, 0x9e,
+ 0x4f, 0x11, 0x9c, 0x48, 0x02, 0x0c, 0xf7, 0x27, 0xc9, 0x09, 0x90, 0x14,
+ 0x36, 0x27, 0xb0, 0x9d,
+};
+static const struct drbg_kat_no_reseed kat769_t = {
+ 3, kat769_entropyin, kat769_nonce, kat769_persstr,
+ kat769_addin0, kat769_addin1, kat769_retbits
+};
+static const struct drbg_kat kat769 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat769_t
+};
+
+static const unsigned char kat770_entropyin[] = {
+ 0xc6, 0xc6, 0xcb, 0xe9, 0x64, 0xc9, 0xce, 0xb9, 0x45, 0x72, 0x62, 0x3b,
+ 0x12, 0xcc, 0x9a, 0xdd, 0x6c, 0x7c, 0xef, 0x72, 0x92, 0x49, 0x8a, 0x22,
+ 0x18, 0x47, 0x75, 0x4c, 0x3d, 0xef, 0x00, 0xc1,
+};
+static const unsigned char kat770_nonce[] = {0};
+static const unsigned char kat770_persstr[] = {
+ 0x99, 0xd3, 0xb0, 0xfd, 0x7b, 0xe5, 0x4d, 0xb4, 0xba, 0x45, 0x72, 0xf9,
+ 0x63, 0x62, 0x1a, 0x88, 0xf2, 0x9e, 0x97, 0xe8, 0x94, 0xa2, 0x4c, 0xd5,
+ 0xa1, 0x3f, 0xe7, 0xb3, 0x51, 0x32, 0xaa, 0xf5,
+};
+static const unsigned char kat770_addin0[] = {
+ 0x31, 0x71, 0xa5, 0x92, 0x55, 0x07, 0xac, 0xf8, 0x26, 0x4b, 0x1f, 0x37,
+ 0x3f, 0xf2, 0xdf, 0x36, 0xa1, 0x8f, 0xb0, 0x96, 0xb8, 0x3e, 0xc7, 0x9e,
+ 0xd4, 0x8e, 0x03, 0x51, 0xa2, 0xd7, 0xc7, 0x48,
+};
+static const unsigned char kat770_addin1[] = {
+ 0xcb, 0xb6, 0x29, 0xb1, 0xb0, 0xa0, 0x4c, 0x71, 0xd2, 0x17, 0x3b, 0x24,
+ 0x5c, 0x23, 0xb9, 0x76, 0x79, 0xd7, 0x75, 0xce, 0x05, 0x15, 0x07, 0xe3,
+ 0x61, 0xf8, 0x52, 0x7f, 0xc6, 0x20, 0xd7, 0x8b,
+};
+static const unsigned char kat770_retbits[] = {
+ 0x28, 0xb9, 0x83, 0xf6, 0x3d, 0xc5, 0x63, 0x14, 0xe5, 0x39, 0xcd, 0xfd,
+ 0xb6, 0x6d, 0xa6, 0xb0, 0x6d, 0xb6, 0x34, 0x8f, 0x0d, 0x28, 0x47, 0x5d,
+ 0x12, 0x42, 0x1d, 0x91, 0x04, 0xba, 0x74, 0xec, 0x0f, 0xcb, 0x85, 0x1c,
+ 0xca, 0xdd, 0x82, 0xc4, 0xaf, 0x57, 0x78, 0xef, 0xbc, 0x82, 0xe1, 0x86,
+ 0x3a, 0x0c, 0xb5, 0xba, 0x4b, 0x9a, 0x94, 0x27, 0x37, 0x9c, 0x06, 0xe9,
+ 0x73, 0x27, 0x87, 0xe6,
+};
+static const struct drbg_kat_no_reseed kat770_t = {
+ 4, kat770_entropyin, kat770_nonce, kat770_persstr,
+ kat770_addin0, kat770_addin1, kat770_retbits
+};
+static const struct drbg_kat kat770 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat770_t
+};
+
+static const unsigned char kat771_entropyin[] = {
+ 0x67, 0x64, 0x26, 0xa8, 0x2f, 0x58, 0x28, 0x9e, 0xcd, 0xf7, 0x68, 0x03,
+ 0xab, 0x0b, 0xd7, 0x5f, 0x18, 0xe4, 0x4c, 0x4d, 0x0e, 0x26, 0x4e, 0x4a,
+ 0x59, 0x29, 0x2a, 0x9b, 0x6d, 0xd4, 0x5e, 0x6e,
+};
+static const unsigned char kat771_nonce[] = {0};
+static const unsigned char kat771_persstr[] = {
+ 0xc6, 0xdf, 0xcc, 0xc3, 0xd2, 0x3c, 0x5c, 0x4c, 0xfd, 0x1f, 0xb9, 0x98,
+ 0xf4, 0xa3, 0xcf, 0xb1, 0x6c, 0xfc, 0xb0, 0x5a, 0xb3, 0x0e, 0xee, 0x37,
+ 0xc1, 0xd3, 0xef, 0x62, 0xdc, 0x66, 0xbc, 0xee,
+};
+static const unsigned char kat771_addin0[] = {
+ 0xc5, 0x49, 0xac, 0x10, 0x4d, 0x3d, 0xdf, 0xb3, 0x6e, 0xd9, 0xda, 0x29,
+ 0x29, 0x7f, 0x30, 0x23, 0x5f, 0x9a, 0x14, 0xc5, 0x1f, 0x24, 0x12, 0xb7,
+ 0x3a, 0x16, 0x4d, 0x2b, 0x3d, 0x37, 0xb0, 0x2b,
+};
+static const unsigned char kat771_addin1[] = {
+ 0x6d, 0x54, 0xf9, 0x4e, 0x3a, 0x2f, 0x26, 0x3a, 0x05, 0x17, 0x20, 0x66,
+ 0x8c, 0x9c, 0xeb, 0x2e, 0xe9, 0xb4, 0x63, 0x6f, 0xe5, 0x4c, 0x10, 0x51,
+ 0x23, 0xf1, 0x5b, 0xad, 0xfc, 0x8e, 0xde, 0x33,
+};
+static const unsigned char kat771_retbits[] = {
+ 0xd4, 0x93, 0xc5, 0xda, 0xa9, 0x36, 0x18, 0xb4, 0x45, 0x26, 0xb6, 0xa0,
+ 0x91, 0xb3, 0x7a, 0x4c, 0x62, 0xc4, 0x22, 0xcc, 0x05, 0x69, 0xb8, 0x8a,
+ 0xfb, 0xf5, 0x96, 0xd5, 0x68, 0xf3, 0xbf, 0xc5, 0x13, 0x62, 0xab, 0xf1,
+ 0x2e, 0xb9, 0xb6, 0x23, 0xe7, 0x06, 0x59, 0x06, 0xe8, 0x8e, 0x52, 0xff,
+ 0x67, 0x1d, 0xbe, 0xb3, 0x74, 0x26, 0xbf, 0x0c, 0x2d, 0x75, 0x8e, 0xfe,
+ 0xab, 0x5c, 0x66, 0x3f,
+};
+static const struct drbg_kat_no_reseed kat771_t = {
+ 5, kat771_entropyin, kat771_nonce, kat771_persstr,
+ kat771_addin0, kat771_addin1, kat771_retbits
+};
+static const struct drbg_kat kat771 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat771_t
+};
+
+static const unsigned char kat772_entropyin[] = {
+ 0x17, 0x9c, 0x71, 0x22, 0x1d, 0xe3, 0xeb, 0x24, 0x45, 0x01, 0xe0, 0x74,
+ 0xe0, 0x04, 0xd6, 0x1f, 0x46, 0x6f, 0xab, 0xfc, 0x8e, 0x7c, 0x7b, 0xd5,
+ 0x75, 0xfa, 0x25, 0x61, 0x7d, 0x32, 0xd3, 0xe3,
+};
+static const unsigned char kat772_nonce[] = {0};
+static const unsigned char kat772_persstr[] = {
+ 0xbb, 0x4c, 0x9f, 0x74, 0xc3, 0xe8, 0x18, 0xff, 0xfe, 0xfd, 0x55, 0x26,
+ 0x46, 0xf5, 0xe6, 0x59, 0xe4, 0xee, 0x4a, 0x8b, 0xe7, 0x88, 0xf1, 0x3d,
+ 0x3e, 0xdd, 0xd3, 0x61, 0x92, 0x79, 0x06, 0x50,
+};
+static const unsigned char kat772_addin0[] = {
+ 0x4f, 0x60, 0x29, 0xce, 0xdf, 0x4e, 0x2a, 0xe0, 0x7d, 0xd9, 0x9e, 0x7a,
+ 0xdb, 0x75, 0x69, 0x60, 0xb0, 0x67, 0xba, 0x96, 0xc4, 0x4f, 0x72, 0x37,
+ 0x1a, 0x1c, 0x5f, 0xb3, 0x1e, 0xab, 0x80, 0x8a,
+};
+static const unsigned char kat772_addin1[] = {
+ 0xe1, 0x7b, 0x61, 0x06, 0x0b, 0xd3, 0xba, 0x35, 0x51, 0xf6, 0x29, 0xde,
+ 0x6b, 0xf3, 0x71, 0x0c, 0xc6, 0xaa, 0xe8, 0x71, 0xed, 0xe7, 0x0d, 0xe5,
+ 0x09, 0x92, 0x2a, 0xcf, 0xa6, 0x58, 0x31, 0x8c,
+};
+static const unsigned char kat772_retbits[] = {
+ 0x55, 0x2f, 0x7f, 0x55, 0xe5, 0xe5, 0x8b, 0xf6, 0xff, 0x72, 0x69, 0x27,
+ 0xa1, 0xd9, 0x3d, 0xa5, 0x5e, 0xc3, 0x86, 0xcc, 0x38, 0xca, 0x65, 0xb1,
+ 0x51, 0x39, 0xad, 0x22, 0x59, 0xc0, 0x22, 0x16, 0xea, 0xcd, 0x48, 0x77,
+ 0x82, 0xc3, 0x77, 0x85, 0x26, 0x43, 0x85, 0xe0, 0x33, 0x1c, 0x7f, 0x88,
+ 0x2a, 0x18, 0x84, 0xf4, 0x40, 0xa6, 0x7f, 0xac, 0xcc, 0x37, 0x01, 0x8b,
+ 0x62, 0x00, 0xab, 0x08,
+};
+static const struct drbg_kat_no_reseed kat772_t = {
+ 6, kat772_entropyin, kat772_nonce, kat772_persstr,
+ kat772_addin0, kat772_addin1, kat772_retbits
+};
+static const struct drbg_kat kat772 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat772_t
+};
+
+static const unsigned char kat773_entropyin[] = {
+ 0x31, 0x9c, 0x01, 0xd6, 0xf0, 0x8f, 0x08, 0x09, 0xc1, 0x79, 0x58, 0xfa,
+ 0x41, 0x69, 0xa7, 0x6e, 0xa1, 0xd0, 0x5c, 0x83, 0x68, 0x16, 0x88, 0x24,
+ 0xfc, 0xff, 0xcc, 0x0c, 0x4c, 0xa6, 0xdb, 0xeb,
+};
+static const unsigned char kat773_nonce[] = {0};
+static const unsigned char kat773_persstr[] = {
+ 0xdb, 0xd6, 0x71, 0xde, 0x6a, 0x7c, 0x61, 0xeb, 0xf5, 0x8b, 0xfd, 0x32,
+ 0x3b, 0x1c, 0x73, 0x8c, 0xdb, 0x18, 0x35, 0xb8, 0xbc, 0xeb, 0x37, 0x37,
+ 0x8f, 0x62, 0x33, 0x3c, 0xb8, 0xe1, 0x60, 0x9d,
+};
+static const unsigned char kat773_addin0[] = {
+ 0x97, 0x39, 0xdf, 0x64, 0xb9, 0xca, 0x61, 0xbe, 0x36, 0x40, 0xdd, 0xc8,
+ 0x8b, 0x2b, 0xb1, 0x95, 0xe3, 0x22, 0xab, 0x6d, 0x43, 0x5e, 0xc3, 0x97,
+ 0x35, 0xec, 0x88, 0x34, 0x38, 0x2f, 0x43, 0x7b,
+};
+static const unsigned char kat773_addin1[] = {
+ 0x5d, 0x4a, 0xc8, 0xdd, 0xbf, 0x73, 0x15, 0x4f, 0xea, 0x78, 0x8d, 0xa9,
+ 0x4f, 0x9f, 0x91, 0x7f, 0xa4, 0x21, 0x67, 0xeb, 0x0e, 0x97, 0xd6, 0x29,
+ 0x76, 0x87, 0xf0, 0x8a, 0xad, 0xf1, 0x7c, 0x4d,
+};
+static const unsigned char kat773_retbits[] = {
+ 0xb7, 0xd5, 0x2b, 0x16, 0xf4, 0xbd, 0xf8, 0xcb, 0x76, 0x5c, 0x58, 0x09,
+ 0x1b, 0x99, 0xb0, 0xef, 0x65, 0xd1, 0x37, 0xd6, 0xc1, 0x0c, 0xe8, 0x01,
+ 0xe7, 0x35, 0xeb, 0x2b, 0x43, 0xad, 0xf6, 0xcc, 0x01, 0x4b, 0x1a, 0x42,
+ 0x36, 0x39, 0x0b, 0xe2, 0x64, 0xf7, 0xc8, 0xb9, 0x99, 0xf8, 0x21, 0xbd,
+ 0x66, 0x0b, 0x0a, 0x62, 0x62, 0xb1, 0x1c, 0x7f, 0xb5, 0x8c, 0x0a, 0xb6,
+ 0xf1, 0x20, 0x53, 0xff,
+};
+static const struct drbg_kat_no_reseed kat773_t = {
+ 7, kat773_entropyin, kat773_nonce, kat773_persstr,
+ kat773_addin0, kat773_addin1, kat773_retbits
+};
+static const struct drbg_kat kat773 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat773_t
+};
+
+static const unsigned char kat774_entropyin[] = {
+ 0x77, 0xc5, 0x16, 0x9b, 0xcd, 0xcb, 0x99, 0x6a, 0x63, 0x00, 0xfa, 0x36,
+ 0xa3, 0x0a, 0x02, 0x83, 0x8f, 0xe0, 0x3b, 0x99, 0x0c, 0x74, 0xcb, 0xff,
+ 0x6f, 0x05, 0x17, 0xf3, 0x31, 0x93, 0xba, 0x54,
+};
+static const unsigned char kat774_nonce[] = {0};
+static const unsigned char kat774_persstr[] = {
+ 0x6b, 0x1c, 0x51, 0xa3, 0x49, 0xae, 0xc6, 0xe5, 0x3a, 0xb5, 0x8f, 0x0a,
+ 0x7d, 0x93, 0x02, 0xfd, 0xde, 0xd3, 0xe6, 0x50, 0x9c, 0xee, 0x36, 0x20,
+ 0x14, 0xd9, 0x77, 0x7e, 0x4c, 0x57, 0x99, 0xde,
+};
+static const unsigned char kat774_addin0[] = {
+ 0x27, 0x00, 0xc0, 0x46, 0x35, 0x31, 0x16, 0x63, 0x3e, 0xf1, 0x14, 0x66,
+ 0x8e, 0x7d, 0x3b, 0xf1, 0x22, 0x32, 0xd8, 0x83, 0x78, 0x45, 0xf1, 0x5f,
+ 0xac, 0x02, 0x2a, 0x32, 0x39, 0x26, 0xfc, 0x18,
+};
+static const unsigned char kat774_addin1[] = {
+ 0x54, 0x48, 0x47, 0x4d, 0x53, 0x01, 0x6b, 0x27, 0xab, 0x76, 0xc3, 0xae,
+ 0x0a, 0x71, 0x2f, 0xaa, 0x07, 0x2a, 0x3c, 0x68, 0xde, 0x51, 0xb4, 0xdd,
+ 0x21, 0xf9, 0xb1, 0x42, 0x4f, 0x51, 0x80, 0x0f,
+};
+static const unsigned char kat774_retbits[] = {
+ 0x98, 0x5f, 0x77, 0x30, 0x48, 0x78, 0x27, 0x4f, 0xa5, 0x02, 0x34, 0x53,
+ 0x65, 0x91, 0x3b, 0x23, 0x64, 0x2c, 0x7b, 0x00, 0x36, 0xc4, 0xe8, 0x25,
+ 0x96, 0x9c, 0x3c, 0xa2, 0x32, 0x40, 0x67, 0xae, 0x40, 0x35, 0x08, 0x44,
+ 0x15, 0x8a, 0xbb, 0xab, 0x11, 0x11, 0x61, 0xa7, 0xa3, 0x61, 0x68, 0xb9,
+ 0x97, 0xc1, 0x97, 0x26, 0x1a, 0x60, 0xef, 0x5b, 0x64, 0x49, 0x9e, 0xdd,
+ 0xd6, 0x4a, 0x50, 0x96,
+};
+static const struct drbg_kat_no_reseed kat774_t = {
+ 8, kat774_entropyin, kat774_nonce, kat774_persstr,
+ kat774_addin0, kat774_addin1, kat774_retbits
+};
+static const struct drbg_kat kat774 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat774_t
+};
+
+static const unsigned char kat775_entropyin[] = {
+ 0xee, 0xa7, 0x97, 0x2a, 0x92, 0x52, 0xe0, 0x9e, 0xea, 0xca, 0x82, 0xcf,
+ 0x28, 0xed, 0xc6, 0xf6, 0xb0, 0x20, 0x3f, 0xbc, 0x47, 0xa7, 0xd1, 0x3a,
+ 0x03, 0xda, 0x7f, 0x8c, 0xa2, 0x1e, 0xc6, 0x13,
+};
+static const unsigned char kat775_nonce[] = {0};
+static const unsigned char kat775_persstr[] = {
+ 0xd6, 0x62, 0x89, 0x0e, 0x01, 0xa7, 0x30, 0x27, 0xfd, 0x80, 0xfd, 0x54,
+ 0xd4, 0xe4, 0xdc, 0x2f, 0x03, 0xc3, 0x50, 0xb7, 0x7f, 0x13, 0x25, 0x0d,
+ 0xa3, 0x5a, 0x4e, 0xcc, 0x2f, 0x77, 0x79, 0xf4,
+};
+static const unsigned char kat775_addin0[] = {
+ 0x6e, 0xc7, 0x42, 0xb2, 0x6f, 0x58, 0x8b, 0x4f, 0x72, 0x96, 0x7c, 0xda,
+ 0x67, 0xaa, 0x1d, 0x09, 0x73, 0xa7, 0x42, 0x88, 0x0d, 0xa8, 0xb1, 0xe1,
+ 0x4e, 0x9a, 0xa5, 0xf2, 0x4a, 0x41, 0xc3, 0x66,
+};
+static const unsigned char kat775_addin1[] = {
+ 0x06, 0xd5, 0x93, 0xdb, 0xe8, 0x78, 0xed, 0x6c, 0x3b, 0xed, 0x8d, 0xcb,
+ 0xef, 0xa4, 0x03, 0x6f, 0xcf, 0xd0, 0x6f, 0x48, 0x4c, 0x00, 0x6c, 0x03,
+ 0xef, 0x6d, 0xcb, 0x15, 0xb6, 0x84, 0x17, 0xf5,
+};
+static const unsigned char kat775_retbits[] = {
+ 0x27, 0xed, 0x08, 0xe7, 0x8b, 0x6e, 0xc1, 0xa7, 0xff, 0xa2, 0x40, 0x65,
+ 0x09, 0x0f, 0x56, 0x99, 0xcd, 0x83, 0xb5, 0x64, 0x69, 0x66, 0x19, 0x58,
+ 0x00, 0xee, 0x47, 0xcd, 0xa4, 0x82, 0x7e, 0xd0, 0xe2, 0x1f, 0x1b, 0xd8,
+ 0x2a, 0x41, 0xcb, 0x06, 0x49, 0x8b, 0x49, 0x08, 0xc5, 0x38, 0x82, 0xb0,
+ 0xf9, 0x3c, 0xf9, 0x18, 0x04, 0xba, 0x2a, 0xdb, 0x01, 0x84, 0x86, 0x11,
+ 0xc7, 0xa8, 0x87, 0x0b,
+};
+static const struct drbg_kat_no_reseed kat775_t = {
+ 9, kat775_entropyin, kat775_nonce, kat775_persstr,
+ kat775_addin0, kat775_addin1, kat775_retbits
+};
+static const struct drbg_kat kat775 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat775_t
+};
+
+static const unsigned char kat776_entropyin[] = {
+ 0xda, 0x52, 0x0c, 0x33, 0xe8, 0xa0, 0x26, 0xd6, 0x44, 0x84, 0xbb, 0x6f,
+ 0x78, 0x61, 0x3a, 0x7e, 0xec, 0xa0, 0x13, 0xa9, 0xb6, 0xa2, 0x4c, 0x2f,
+ 0x5e, 0xa9, 0x99, 0x3d, 0x9f, 0x26, 0x6e, 0x3e,
+};
+static const unsigned char kat776_nonce[] = {0};
+static const unsigned char kat776_persstr[] = {
+ 0xf4, 0x12, 0xdc, 0x9f, 0x3d, 0xbd, 0x1f, 0x9c, 0x24, 0xe4, 0x0b, 0xcd,
+ 0x09, 0x51, 0x4e, 0x02, 0xd6, 0x6b, 0x33, 0x88, 0xc1, 0xec, 0x3c, 0x80,
+ 0xf6, 0x09, 0x21, 0xfb, 0x57, 0x68, 0x73, 0xc6,
+};
+static const unsigned char kat776_addin0[] = {
+ 0xa1, 0x7d, 0x88, 0xa8, 0x4f, 0x13, 0xd1, 0xe9, 0x0a, 0x6e, 0x34, 0x1d,
+ 0x7f, 0x3d, 0x7f, 0xbc, 0x3f, 0x27, 0x3c, 0x41, 0x80, 0xff, 0xb5, 0x2c,
+ 0x7b, 0x63, 0x7c, 0x30, 0x85, 0x5d, 0x19, 0xe3,
+};
+static const unsigned char kat776_addin1[] = {
+ 0x11, 0x50, 0x76, 0x30, 0x6e, 0x8f, 0xce, 0x2c, 0x18, 0x90, 0xc8, 0x07,
+ 0x4d, 0x1f, 0xa6, 0x01, 0xa0, 0x57, 0xcb, 0xcc, 0xd6, 0x3c, 0x62, 0xa9,
+ 0xc1, 0x18, 0x87, 0x8f, 0x1f, 0xbc, 0xf5, 0xcd,
+};
+static const unsigned char kat776_retbits[] = {
+ 0xbb, 0xff, 0x4d, 0x39, 0xba, 0x04, 0x06, 0x1a, 0x1b, 0x6e, 0x2f, 0x26,
+ 0xdd, 0x0c, 0x13, 0x2e, 0xa4, 0x38, 0x1a, 0xfa, 0xf8, 0x4d, 0xc2, 0x4e,
+ 0x52, 0xe1, 0x96, 0xc4, 0xd7, 0xda, 0x51, 0xc5, 0x8b, 0xe5, 0xf7, 0xdd,
+ 0xd9, 0x89, 0x34, 0x0f, 0x1e, 0x0d, 0x8c, 0xf6, 0x2c, 0x63, 0x02, 0xe0,
+ 0xec, 0xdd, 0xba, 0xde, 0x87, 0xef, 0x50, 0x04, 0x6d, 0x3a, 0x0d, 0xd8,
+ 0x93, 0x68, 0x1c, 0x8c,
+};
+static const struct drbg_kat_no_reseed kat776_t = {
+ 10, kat776_entropyin, kat776_nonce, kat776_persstr,
+ kat776_addin0, kat776_addin1, kat776_retbits
+};
+static const struct drbg_kat kat776 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat776_t
+};
+
+static const unsigned char kat777_entropyin[] = {
+ 0xe4, 0x95, 0x09, 0xa9, 0x07, 0x83, 0x99, 0x2f, 0x48, 0x12, 0x1d, 0x5d,
+ 0x7d, 0x6c, 0xbf, 0xc2, 0x8d, 0x77, 0xbc, 0xd1, 0xe6, 0xd6, 0xe6, 0xeb,
+ 0x0a, 0xec, 0xa2, 0x55, 0x5d, 0x9e, 0x4b, 0x89,
+};
+static const unsigned char kat777_nonce[] = {0};
+static const unsigned char kat777_persstr[] = {
+ 0x13, 0xe9, 0xa3, 0xf9, 0xbf, 0xcb, 0x09, 0xc3, 0x32, 0xb6, 0xd3, 0xa1,
+ 0x61, 0x5c, 0xd9, 0xce, 0xa5, 0x7b, 0x61, 0x54, 0x5a, 0x93, 0x51, 0x22,
+ 0x79, 0x95, 0xae, 0x64, 0xc2, 0x33, 0x32, 0x50,
+};
+static const unsigned char kat777_addin0[] = {
+ 0xe6, 0x9b, 0xac, 0x85, 0x22, 0x8a, 0xfc, 0x41, 0xd8, 0x6d, 0x58, 0x46,
+ 0x41, 0xcb, 0xaf, 0x86, 0x28, 0x18, 0x6b, 0x20, 0x5b, 0x21, 0x1f, 0xd4,
+ 0x28, 0xe3, 0x98, 0x49, 0x23, 0x7a, 0x39, 0x39,
+};
+static const unsigned char kat777_addin1[] = {
+ 0x51, 0xee, 0x8d, 0x0c, 0x02, 0x42, 0xf1, 0x38, 0x2f, 0x1e, 0x2d, 0x38,
+ 0xcc, 0x9d, 0xbb, 0xd5, 0x06, 0xa8, 0x01, 0x05, 0xb4, 0xb7, 0x48, 0xf5,
+ 0x63, 0xac, 0x94, 0x1c, 0x41, 0x4e, 0x9c, 0x44,
+};
+static const unsigned char kat777_retbits[] = {
+ 0x89, 0x53, 0xbc, 0xae, 0x34, 0x3b, 0x43, 0x0d, 0x8d, 0x49, 0x18, 0x40,
+ 0xa4, 0x40, 0xad, 0xc6, 0xea, 0xaa, 0x20, 0xd4, 0xb9, 0x77, 0x3b, 0xca,
+ 0xbc, 0xf1, 0xc8, 0xa9, 0xca, 0x3a, 0xf3, 0x9d, 0xe4, 0x58, 0x62, 0xc6,
+ 0x96, 0x3f, 0x48, 0xff, 0xa0, 0x51, 0xa1, 0x41, 0xde, 0x70, 0xc3, 0x3f,
+ 0xed, 0x42, 0x07, 0x11, 0x26, 0x86, 0x07, 0xc9, 0xd2, 0x05, 0x73, 0xc9,
+ 0xb5, 0x28, 0xdb, 0x20,
+};
+static const struct drbg_kat_no_reseed kat777_t = {
+ 11, kat777_entropyin, kat777_nonce, kat777_persstr,
+ kat777_addin0, kat777_addin1, kat777_retbits
+};
+static const struct drbg_kat kat777 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat777_t
+};
+
+static const unsigned char kat778_entropyin[] = {
+ 0xe9, 0xe1, 0x20, 0xc9, 0x56, 0x92, 0x4a, 0xbc, 0xb6, 0x55, 0x4e, 0x4f,
+ 0xb4, 0x40, 0x4a, 0xdf, 0x2b, 0xf4, 0xba, 0x06, 0x9b, 0x92, 0xcc, 0xb7,
+ 0x8b, 0x92, 0xfe, 0xf8, 0xf7, 0x8e, 0x05, 0x6a,
+};
+static const unsigned char kat778_nonce[] = {0};
+static const unsigned char kat778_persstr[] = {
+ 0x20, 0xf0, 0x13, 0x26, 0xb8, 0x7f, 0xf6, 0xa1, 0x4b, 0x91, 0xc5, 0x92,
+ 0x7b, 0xed, 0x1d, 0x9a, 0xea, 0x85, 0x81, 0xb9, 0xa5, 0x39, 0xa8, 0x4f,
+ 0xb7, 0xf2, 0xe5, 0x4b, 0xa7, 0x85, 0xd8, 0xbc,
+};
+static const unsigned char kat778_addin0[] = {
+ 0x26, 0x04, 0x95, 0xcc, 0xd9, 0xea, 0xff, 0x4c, 0x2d, 0x87, 0xd5, 0x42,
+ 0xd4, 0x9d, 0x48, 0xfe, 0x75, 0x3c, 0xba, 0x70, 0x10, 0x8d, 0x93, 0x87,
+ 0x65, 0xf7, 0x7d, 0xad, 0xb5, 0x76, 0xb7, 0x11,
+};
+static const unsigned char kat778_addin1[] = {
+ 0x47, 0xf0, 0xa2, 0x1f, 0x12, 0xac, 0x66, 0xdd, 0x13, 0x8a, 0x00, 0x3f,
+ 0xa0, 0xf7, 0x62, 0xda, 0x06, 0xe8, 0x1d, 0xac, 0xee, 0x14, 0xa9, 0x9c,
+ 0xf5, 0x2b, 0xb5, 0xb9, 0xab, 0x35, 0x30, 0x4a,
+};
+static const unsigned char kat778_retbits[] = {
+ 0xea, 0x64, 0x74, 0xcb, 0x86, 0xde, 0x13, 0x31, 0x82, 0xd8, 0x46, 0xb0,
+ 0x93, 0x77, 0x51, 0x2a, 0x58, 0x8c, 0xb2, 0x40, 0x1c, 0x1d, 0x20, 0xa5,
+ 0x42, 0xe9, 0x00, 0x4a, 0xc4, 0xc2, 0xd5, 0xe6, 0x2f, 0xcd, 0xf3, 0x57,
+ 0xe7, 0x4f, 0x12, 0x74, 0x47, 0x60, 0x8e, 0xc6, 0xb4, 0xba, 0x2f, 0x5b,
+ 0x7e, 0xf4, 0xd2, 0x50, 0x9d, 0xc5, 0x17, 0x48, 0x5c, 0x16, 0x2a, 0xb7,
+ 0xf9, 0xc9, 0x67, 0x13,
+};
+static const struct drbg_kat_no_reseed kat778_t = {
+ 12, kat778_entropyin, kat778_nonce, kat778_persstr,
+ kat778_addin0, kat778_addin1, kat778_retbits
+};
+static const struct drbg_kat kat778 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat778_t
+};
+
+static const unsigned char kat779_entropyin[] = {
+ 0xee, 0x99, 0xd4, 0xf7, 0x05, 0xbe, 0xbb, 0xc8, 0xff, 0xad, 0x98, 0x2b,
+ 0x0a, 0xd4, 0xd7, 0x42, 0x0e, 0x8f, 0xd1, 0x27, 0x6b, 0x9c, 0xe3, 0x62,
+ 0x99, 0x15, 0xf2, 0x92, 0x52, 0x45, 0x9d, 0x31,
+};
+static const unsigned char kat779_nonce[] = {0};
+static const unsigned char kat779_persstr[] = {
+ 0x91, 0xe7, 0x39, 0x30, 0xdf, 0xe4, 0x47, 0x4f, 0x9c, 0x03, 0x84, 0xdd,
+ 0xb3, 0xe9, 0xae, 0x45, 0x7c, 0x15, 0x99, 0x79, 0xd2, 0x53, 0x0d, 0xa5,
+ 0x02, 0x55, 0x0b, 0x4c, 0x56, 0xb7, 0xb9, 0x19,
+};
+static const unsigned char kat779_addin0[] = {
+ 0x95, 0x7b, 0x9d, 0x93, 0x8d, 0x90, 0x67, 0x62, 0x65, 0xc9, 0x0e, 0x93,
+ 0x9f, 0x8b, 0xfa, 0xee, 0x7e, 0xb8, 0x04, 0xf3, 0x9c, 0x81, 0x9b, 0x9c,
+ 0x52, 0xbc, 0xc2, 0x05, 0x26, 0xca, 0xdc, 0x8c,
+};
+static const unsigned char kat779_addin1[] = {
+ 0x51, 0x14, 0xa0, 0xde, 0xa8, 0x22, 0xe4, 0x4d, 0xc8, 0x70, 0xee, 0x63,
+ 0xa5, 0xe6, 0xbb, 0x16, 0xa1, 0x6c, 0x9d, 0x2c, 0x51, 0x71, 0x86, 0x14,
+ 0xdf, 0xe5, 0x88, 0x21, 0x71, 0xa1, 0xec, 0x54,
+};
+static const unsigned char kat779_retbits[] = {
+ 0x73, 0x34, 0x66, 0x52, 0x0b, 0xb8, 0x90, 0x8e, 0x3e, 0x21, 0x89, 0x9e,
+ 0x20, 0xf7, 0x92, 0x76, 0x48, 0xde, 0x00, 0x6e, 0xa9, 0x39, 0x8f, 0x33,
+ 0xbc, 0x50, 0x15, 0x68, 0x8b, 0x43, 0xd5, 0x86, 0xe2, 0xd9, 0xf8, 0x29,
+ 0x4c, 0xa7, 0x81, 0x1f, 0xd4, 0x91, 0x56, 0xd0, 0xdb, 0xee, 0x67, 0x65,
+ 0xbb, 0xf4, 0xa1, 0xb5, 0x97, 0x77, 0x41, 0x01, 0x2d, 0x73, 0xe1, 0xe0,
+ 0xf4, 0x68, 0x20, 0x6f,
+};
+static const struct drbg_kat_no_reseed kat779_t = {
+ 13, kat779_entropyin, kat779_nonce, kat779_persstr,
+ kat779_addin0, kat779_addin1, kat779_retbits
+};
+static const struct drbg_kat kat779 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat779_t
+};
+
+static const unsigned char kat780_entropyin[] = {
+ 0xf4, 0xcb, 0xf9, 0x2e, 0x63, 0x48, 0x54, 0x2b, 0xc1, 0x08, 0xe7, 0xa6,
+ 0x64, 0x16, 0x18, 0x31, 0xf9, 0x92, 0x6d, 0xed, 0xfa, 0x8d, 0x4f, 0xa7,
+ 0xde, 0x94, 0x8c, 0x3a, 0x5d, 0xe0, 0x45, 0x74,
+};
+static const unsigned char kat780_nonce[] = {0};
+static const unsigned char kat780_persstr[] = {
+ 0x24, 0x70, 0x9b, 0xd4, 0x70, 0x13, 0xc1, 0xd5, 0xf3, 0xe3, 0x2c, 0x60,
+ 0xe7, 0x89, 0xdd, 0x07, 0x3c, 0x70, 0x44, 0x1e, 0x43, 0x49, 0x9b, 0xae,
+ 0x31, 0x8b, 0xbb, 0x41, 0x71, 0x87, 0xa5, 0xbd,
+};
+static const unsigned char kat780_addin0[] = {
+ 0x1e, 0xed, 0x74, 0x63, 0xc0, 0x04, 0xc9, 0x4b, 0x60, 0x02, 0x45, 0xf4,
+ 0x96, 0x7a, 0xf9, 0x55, 0x91, 0x9d, 0x0f, 0x32, 0x5a, 0x2b, 0xaf, 0x2e,
+ 0x9c, 0x5f, 0x6e, 0x15, 0x04, 0xbb, 0x6a, 0xf1,
+};
+static const unsigned char kat780_addin1[] = {
+ 0x6e, 0xac, 0xe0, 0xfd, 0xab, 0xf1, 0xbc, 0x84, 0xd0, 0x8e, 0xaa, 0x4a,
+ 0xfc, 0xbe, 0xbd, 0x50, 0x2f, 0x1d, 0x83, 0x84, 0x7d, 0x2e, 0x86, 0xa1,
+ 0xe6, 0x81, 0x47, 0xb3, 0xb1, 0x5a, 0x76, 0xcf,
+};
+static const unsigned char kat780_retbits[] = {
+ 0xda, 0x59, 0xc0, 0x92, 0x59, 0xec, 0xc1, 0xd6, 0x1e, 0x05, 0xd3, 0x19,
+ 0x8f, 0x34, 0x99, 0x04, 0xdf, 0x14, 0x68, 0xff, 0xaf, 0x85, 0xf5, 0xd6,
+ 0xcc, 0x57, 0x48, 0x9e, 0x27, 0x85, 0xe5, 0x4e, 0x71, 0x04, 0x13, 0x67,
+ 0x4b, 0xd2, 0xac, 0x41, 0x89, 0x6c, 0xe9, 0x01, 0x0d, 0x95, 0x88, 0x44,
+ 0x6e, 0x75, 0x40, 0xb3, 0x55, 0x19, 0xc4, 0x68, 0x9a, 0x58, 0x18, 0xac,
+ 0xe7, 0xdb, 0xe0, 0xa8,
+};
+static const struct drbg_kat_no_reseed kat780_t = {
+ 14, kat780_entropyin, kat780_nonce, kat780_persstr,
+ kat780_addin0, kat780_addin1, kat780_retbits
+};
+static const struct drbg_kat kat780 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat780_t
+};
+
+static const unsigned char kat781_entropyin[] = {
+ 0x69, 0xa0, 0x9f, 0x6b, 0xf5, 0xdd, 0xa1, 0x5c, 0xd4, 0xaf, 0x29, 0xe1,
+ 0x4c, 0xf5, 0xe0, 0xcd, 0xdd, 0x7d, 0x07, 0xac, 0x39, 0xbb, 0xa5, 0x87,
+ 0xf8, 0xbc, 0x33, 0x11, 0x04, 0xf9, 0xc4, 0x48,
+};
+static const unsigned char kat781_nonce[] = {0};
+static const unsigned char kat781_persstr[] = {0};
+static const unsigned char kat781_addin0[] = {0};
+static const unsigned char kat781_addin1[] = {0};
+static const unsigned char kat781_retbits[] = {
+ 0xf7, 0x8a, 0x49, 0x19, 0xa6, 0xec, 0x89, 0x9f, 0x7b, 0x6c, 0x69, 0x38,
+ 0x1f, 0xeb, 0xbb, 0xe0, 0x83, 0x31, 0x5f, 0x3d, 0x28, 0x9e, 0x70, 0x34,
+ 0x6d, 0xb0, 0xe4, 0xec, 0x43, 0x60, 0x47, 0x3a, 0xe0, 0xb3, 0xd9, 0x16,
+ 0xe9, 0xb6, 0xb9, 0x64, 0x30, 0x9f, 0x75, 0x3e, 0xd6, 0x6a, 0xe5, 0x9d,
+ 0xe4, 0x8d, 0xa3, 0x16, 0xcc, 0x19, 0x44, 0xbc, 0x8d, 0xfd, 0x0e, 0x25,
+ 0x75, 0xd0, 0xff, 0x6d,
+};
+static const struct drbg_kat_no_reseed kat781_t = {
+ 0, kat781_entropyin, kat781_nonce, kat781_persstr,
+ kat781_addin0, kat781_addin1, kat781_retbits
+};
+static const struct drbg_kat kat781 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat781_t
+};
+
+static const unsigned char kat782_entropyin[] = {
+ 0x80, 0xbf, 0xbd, 0x34, 0x0d, 0x79, 0x88, 0x8f, 0x34, 0xf0, 0x43, 0xed,
+ 0x68, 0x07, 0xa9, 0xf2, 0x8b, 0x72, 0xb6, 0x64, 0x4d, 0x9d, 0x9e, 0x9d,
+ 0x77, 0x71, 0x09, 0x48, 0x2b, 0x80, 0x78, 0x8a,
+};
+static const unsigned char kat782_nonce[] = {0};
+static const unsigned char kat782_persstr[] = {0};
+static const unsigned char kat782_addin0[] = {0};
+static const unsigned char kat782_addin1[] = {0};
+static const unsigned char kat782_retbits[] = {
+ 0x80, 0xdb, 0x04, 0x8d, 0x2f, 0x13, 0x0d, 0x86, 0x4b, 0x19, 0xbf, 0xc5,
+ 0x47, 0xc9, 0x25, 0x03, 0xe5, 0x80, 0xcb, 0x1a, 0x8e, 0x1f, 0x74, 0xf3,
+ 0xd9, 0x7f, 0xdd, 0xa6, 0x50, 0x1f, 0xb1, 0xaa, 0x81, 0xfc, 0xed, 0xac,
+ 0x0d, 0xd1, 0x8b, 0x6c, 0xcf, 0xdc, 0x18, 0x3c, 0xa2, 0x8a, 0x44, 0xfc,
+ 0x9f, 0x3a, 0x08, 0x83, 0x4b, 0xa8, 0x75, 0x1a, 0x2f, 0x44, 0x95, 0x36,
+ 0x7c, 0x54, 0xa1, 0x85,
+};
+static const struct drbg_kat_no_reseed kat782_t = {
+ 1, kat782_entropyin, kat782_nonce, kat782_persstr,
+ kat782_addin0, kat782_addin1, kat782_retbits
+};
+static const struct drbg_kat kat782 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat782_t
+};
+
+static const unsigned char kat783_entropyin[] = {
+ 0xa5, 0x59, 0xac, 0x98, 0x72, 0x79, 0x1d, 0x79, 0x19, 0x7e, 0x54, 0xda,
+ 0x70, 0xa8, 0xd8, 0x58, 0xfb, 0xe3, 0x9e, 0x85, 0x14, 0xd2, 0xc8, 0x6a,
+ 0x7b, 0xcf, 0xfa, 0xdc, 0x68, 0x78, 0x2e, 0xdf,
+};
+static const unsigned char kat783_nonce[] = {0};
+static const unsigned char kat783_persstr[] = {0};
+static const unsigned char kat783_addin0[] = {0};
+static const unsigned char kat783_addin1[] = {0};
+static const unsigned char kat783_retbits[] = {
+ 0xd1, 0x4b, 0x72, 0xe1, 0x7c, 0x2f, 0x6f, 0x77, 0xb4, 0x6d, 0x07, 0x17,
+ 0xb7, 0x88, 0x42, 0x0e, 0x50, 0x3b, 0xb1, 0x8d, 0xe5, 0x42, 0x13, 0x5f,
+ 0x58, 0x6a, 0x90, 0xc5, 0xc7, 0x3f, 0xce, 0xee, 0xe5, 0x0f, 0xd1, 0x63,
+ 0x3b, 0x5b, 0x09, 0xab, 0x06, 0x1b, 0x93, 0x67, 0xca, 0x78, 0x5e, 0xcb,
+ 0x40, 0x0e, 0x1f, 0x36, 0x81, 0x58, 0x36, 0x61, 0xaa, 0xf8, 0x35, 0x21,
+ 0x84, 0x45, 0x4a, 0xe6,
+};
+static const struct drbg_kat_no_reseed kat783_t = {
+ 2, kat783_entropyin, kat783_nonce, kat783_persstr,
+ kat783_addin0, kat783_addin1, kat783_retbits
+};
+static const struct drbg_kat kat783 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat783_t
+};
+
+static const unsigned char kat784_entropyin[] = {
+ 0x30, 0x0f, 0xe1, 0x48, 0xdd, 0x39, 0xde, 0x1e, 0xdb, 0x99, 0x3c, 0xa5,
+ 0x26, 0x03, 0x73, 0xb3, 0xf5, 0xf0, 0x9a, 0x5c, 0xf7, 0xa3, 0x2b, 0x0c,
+ 0x41, 0xfe, 0x62, 0x24, 0xf9, 0x81, 0xd3, 0xb1,
+};
+static const unsigned char kat784_nonce[] = {0};
+static const unsigned char kat784_persstr[] = {0};
+static const unsigned char kat784_addin0[] = {0};
+static const unsigned char kat784_addin1[] = {0};
+static const unsigned char kat784_retbits[] = {
+ 0xde, 0xea, 0x89, 0xb5, 0x12, 0x8f, 0xb9, 0x92, 0x69, 0x6d, 0x7b, 0x97,
+ 0xeb, 0xc2, 0xc0, 0x79, 0x36, 0x14, 0xb1, 0x72, 0xf4, 0xc7, 0x5b, 0xb8,
+ 0x3c, 0x12, 0xa1, 0xb3, 0x89, 0xba, 0xc3, 0xbf, 0xec, 0xb7, 0x73, 0xcd,
+ 0x77, 0x17, 0x58, 0x3c, 0x2b, 0x61, 0xb3, 0xb2, 0x43, 0xac, 0x96, 0x83,
+ 0xdb, 0xa4, 0xfb, 0xc0, 0x71, 0x82, 0xba, 0xd8, 0x27, 0x1a, 0x7f, 0x16,
+ 0xd8, 0x33, 0xe4, 0xd9,
+};
+static const struct drbg_kat_no_reseed kat784_t = {
+ 3, kat784_entropyin, kat784_nonce, kat784_persstr,
+ kat784_addin0, kat784_addin1, kat784_retbits
+};
+static const struct drbg_kat kat784 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat784_t
+};
+
+static const unsigned char kat785_entropyin[] = {
+ 0x0c, 0x6e, 0xe2, 0xa5, 0xd4, 0x63, 0x25, 0xba, 0xa8, 0xe9, 0xa3, 0xf6,
+ 0xb5, 0x98, 0xfc, 0x79, 0x0c, 0x51, 0x3d, 0x38, 0x7d, 0x47, 0x00, 0x11,
+ 0x16, 0xd1, 0x9a, 0x61, 0x4d, 0x20, 0x38, 0xc4,
+};
+static const unsigned char kat785_nonce[] = {0};
+static const unsigned char kat785_persstr[] = {0};
+static const unsigned char kat785_addin0[] = {0};
+static const unsigned char kat785_addin1[] = {0};
+static const unsigned char kat785_retbits[] = {
+ 0xf1, 0xee, 0x11, 0xbe, 0x18, 0x92, 0x63, 0xfe, 0xd9, 0x93, 0x2c, 0x11,
+ 0x92, 0x21, 0x9d, 0x00, 0x37, 0x8e, 0x36, 0xce, 0x81, 0xa4, 0x31, 0x31,
+ 0x85, 0x45, 0xda, 0x9f, 0x81, 0xf5, 0x0c, 0x29, 0x13, 0xd1, 0xf7, 0xbe,
+ 0x49, 0x9c, 0xe9, 0xe1, 0xe3, 0x9f, 0x93, 0xee, 0x23, 0x60, 0x66, 0x8f,
+ 0x12, 0x73, 0x40, 0x69, 0x1c, 0x17, 0x71, 0x17, 0x07, 0xcf, 0x5f, 0x1f,
+ 0x8a, 0x4d, 0x93, 0xee,
+};
+static const struct drbg_kat_no_reseed kat785_t = {
+ 4, kat785_entropyin, kat785_nonce, kat785_persstr,
+ kat785_addin0, kat785_addin1, kat785_retbits
+};
+static const struct drbg_kat kat785 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat785_t
+};
+
+static const unsigned char kat786_entropyin[] = {
+ 0xbd, 0xbb, 0xa1, 0xad, 0x48, 0x03, 0xfd, 0xc7, 0x83, 0xef, 0x5d, 0x6e,
+ 0x2a, 0xa6, 0x6d, 0xc9, 0x48, 0xe9, 0x60, 0xbc, 0x11, 0xcc, 0xa8, 0x9a,
+ 0x60, 0xcf, 0xf5, 0xc6, 0x0e, 0x98, 0x43, 0x02,
+};
+static const unsigned char kat786_nonce[] = {0};
+static const unsigned char kat786_persstr[] = {0};
+static const unsigned char kat786_addin0[] = {0};
+static const unsigned char kat786_addin1[] = {0};
+static const unsigned char kat786_retbits[] = {
+ 0x26, 0x0a, 0x32, 0xc3, 0x97, 0x37, 0x50, 0xe0, 0xc1, 0x0f, 0x7f, 0x74,
+ 0x95, 0xd4, 0x6e, 0x7c, 0x36, 0x91, 0xc2, 0x7a, 0x58, 0xe8, 0x28, 0xcd,
+ 0xef, 0x48, 0xef, 0x66, 0x07, 0x16, 0xf7, 0x71, 0xd6, 0x1c, 0x3c, 0x76,
+ 0xdb, 0x40, 0x7d, 0x81, 0x60, 0x66, 0xf5, 0xaf, 0xbf, 0x16, 0x99, 0x34,
+ 0x85, 0xcd, 0xb6, 0x53, 0xd4, 0x18, 0xdd, 0x65, 0xff, 0xa5, 0xd3, 0x82,
+ 0x57, 0x32, 0xb8, 0xcb,
+};
+static const struct drbg_kat_no_reseed kat786_t = {
+ 5, kat786_entropyin, kat786_nonce, kat786_persstr,
+ kat786_addin0, kat786_addin1, kat786_retbits
+};
+static const struct drbg_kat kat786 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat786_t
+};
+
+static const unsigned char kat787_entropyin[] = {
+ 0x22, 0x58, 0x7b, 0xfd, 0xce, 0x62, 0xf4, 0xaf, 0xc1, 0xdd, 0x26, 0x73,
+ 0xf5, 0x30, 0x83, 0x64, 0xf2, 0x7d, 0xb9, 0x91, 0x2a, 0xd0, 0x1b, 0x04,
+ 0x5e, 0x74, 0xdb, 0x45, 0x18, 0x43, 0x59, 0x59,
+};
+static const unsigned char kat787_nonce[] = {0};
+static const unsigned char kat787_persstr[] = {0};
+static const unsigned char kat787_addin0[] = {0};
+static const unsigned char kat787_addin1[] = {0};
+static const unsigned char kat787_retbits[] = {
+ 0xc9, 0x04, 0xd0, 0x30, 0x89, 0xb7, 0xdd, 0x1f, 0x17, 0x56, 0x4a, 0x7e,
+ 0xf7, 0x0b, 0x17, 0xbb, 0x1b, 0x29, 0xc0, 0xc1, 0x79, 0x3c, 0xc8, 0xd9,
+ 0x2b, 0x8c, 0x15, 0x8c, 0x04, 0xca, 0x53, 0x66, 0x91, 0x9f, 0x8c, 0xaf,
+ 0x54, 0x4d, 0x5d, 0x07, 0xc2, 0x8a, 0xbe, 0x6d, 0x14, 0xba, 0xaa, 0x0c,
+ 0x56, 0x60, 0x2d, 0xf1, 0xc3, 0x73, 0xe9, 0xac, 0xc4, 0x19, 0xe3, 0xc9,
+ 0x32, 0xe5, 0x77, 0xe6,
+};
+static const struct drbg_kat_no_reseed kat787_t = {
+ 6, kat787_entropyin, kat787_nonce, kat787_persstr,
+ kat787_addin0, kat787_addin1, kat787_retbits
+};
+static const struct drbg_kat kat787 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat787_t
+};
+
+static const unsigned char kat788_entropyin[] = {
+ 0x8a, 0xbe, 0xfb, 0xb2, 0x3d, 0xfd, 0x58, 0xd8, 0x2b, 0x88, 0xa4, 0xc4,
+ 0xfc, 0xfc, 0xee, 0x18, 0x3c, 0xe0, 0x1d, 0xb9, 0x75, 0xed, 0xee, 0xb4,
+ 0x04, 0xbd, 0x21, 0x6e, 0x61, 0x77, 0xea, 0x0d,
+};
+static const unsigned char kat788_nonce[] = {0};
+static const unsigned char kat788_persstr[] = {0};
+static const unsigned char kat788_addin0[] = {0};
+static const unsigned char kat788_addin1[] = {0};
+static const unsigned char kat788_retbits[] = {
+ 0x8a, 0x70, 0x8e, 0x8a, 0x99, 0x03, 0x53, 0x89, 0xa4, 0xd6, 0x6d, 0x57,
+ 0xd1, 0x2f, 0x48, 0x8e, 0xcb, 0xa5, 0x7a, 0x3b, 0x2c, 0xa7, 0x80, 0x15,
+ 0xbe, 0xda, 0xe0, 0x6a, 0xaa, 0x41, 0x4d, 0x79, 0x11, 0x96, 0xe2, 0x62,
+ 0xb2, 0x8f, 0xbd, 0x74, 0x5d, 0xff, 0x94, 0xf8, 0xfe, 0x60, 0x06, 0x87,
+ 0xc9, 0xce, 0x2f, 0x50, 0xcf, 0x6d, 0x79, 0xd3, 0x9b, 0x8c, 0x5e, 0xa3,
+ 0x65, 0x33, 0x75, 0x5d,
+};
+static const struct drbg_kat_no_reseed kat788_t = {
+ 7, kat788_entropyin, kat788_nonce, kat788_persstr,
+ kat788_addin0, kat788_addin1, kat788_retbits
+};
+static const struct drbg_kat kat788 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat788_t
+};
+
+static const unsigned char kat789_entropyin[] = {
+ 0xc4, 0x5c, 0x9f, 0xec, 0x6b, 0xb8, 0x3f, 0xb0, 0x80, 0x08, 0x87, 0x7c,
+ 0x70, 0xb6, 0x32, 0xd7, 0x92, 0x11, 0x9a, 0x35, 0xc4, 0xc5, 0x98, 0x8c,
+ 0x40, 0x26, 0xcf, 0x3f, 0x86, 0x12, 0xb8, 0x00,
+};
+static const unsigned char kat789_nonce[] = {0};
+static const unsigned char kat789_persstr[] = {0};
+static const unsigned char kat789_addin0[] = {0};
+static const unsigned char kat789_addin1[] = {0};
+static const unsigned char kat789_retbits[] = {
+ 0x84, 0x43, 0x0e, 0x49, 0xa9, 0xb4, 0xd3, 0x95, 0xd0, 0x55, 0xca, 0x0e,
+ 0xfd, 0xf2, 0x85, 0xa7, 0x55, 0x1c, 0x5f, 0x71, 0x19, 0xdb, 0xea, 0x5c,
+ 0x10, 0xda, 0xaa, 0x9e, 0x8b, 0xe0, 0x41, 0xe2, 0x3e, 0x9b, 0xc8, 0x93,
+ 0xc9, 0x0a, 0x35, 0xb7, 0x7b, 0x19, 0xdc, 0x20, 0x2e, 0xc8, 0x34, 0x17,
+ 0x2e, 0x6c, 0x8c, 0xea, 0x97, 0xc9, 0xd7, 0xc6, 0x8d, 0xf1, 0x37, 0x4a,
+ 0xee, 0xa9, 0x45, 0x37,
+};
+static const struct drbg_kat_no_reseed kat789_t = {
+ 8, kat789_entropyin, kat789_nonce, kat789_persstr,
+ kat789_addin0, kat789_addin1, kat789_retbits
+};
+static const struct drbg_kat kat789 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat789_t
+};
+
+static const unsigned char kat790_entropyin[] = {
+ 0x58, 0xcb, 0xcc, 0xd7, 0xf8, 0x6e, 0x5f, 0x04, 0x72, 0xdc, 0xb3, 0x77,
+ 0xf5, 0x98, 0xf2, 0xd4, 0x2e, 0xd9, 0x6a, 0xfd, 0xf0, 0xc8, 0xe4, 0x5f,
+ 0x12, 0xc4, 0xff, 0x4a, 0x96, 0x9c, 0x5b, 0x6b,
+};
+static const unsigned char kat790_nonce[] = {0};
+static const unsigned char kat790_persstr[] = {0};
+static const unsigned char kat790_addin0[] = {0};
+static const unsigned char kat790_addin1[] = {0};
+static const unsigned char kat790_retbits[] = {
+ 0x41, 0xff, 0x55, 0xd0, 0x58, 0xbe, 0xaa, 0x04, 0x30, 0x8b, 0xd0, 0xb3,
+ 0x9d, 0x48, 0x01, 0xf7, 0x0f, 0x23, 0xd8, 0x29, 0x03, 0x7e, 0x4c, 0xc9,
+ 0xb2, 0xea, 0x0e, 0xac, 0xf5, 0xae, 0xf9, 0xb8, 0xe3, 0x3f, 0xc5, 0x9c,
+ 0x52, 0x8b, 0x53, 0xbc, 0xe0, 0x8d, 0x2b, 0x53, 0x6d, 0x37, 0xbf, 0x19,
+ 0x4c, 0x79, 0x7f, 0x03, 0x29, 0x04, 0x94, 0xdd, 0x00, 0xef, 0x24, 0x4a,
+ 0xc2, 0x23, 0xe3, 0x50,
+};
+static const struct drbg_kat_no_reseed kat790_t = {
+ 9, kat790_entropyin, kat790_nonce, kat790_persstr,
+ kat790_addin0, kat790_addin1, kat790_retbits
+};
+static const struct drbg_kat kat790 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat790_t
+};
+
+static const unsigned char kat791_entropyin[] = {
+ 0xd5, 0x05, 0x58, 0xdf, 0xb7, 0xa8, 0x96, 0x6c, 0x63, 0xb3, 0xa1, 0xd0,
+ 0xa8, 0x37, 0x97, 0x0a, 0xd0, 0xbf, 0xf5, 0xad, 0xbd, 0x8a, 0xda, 0xca,
+ 0xe5, 0xd3, 0xac, 0xcf, 0xde, 0x64, 0xcd, 0x4d,
+};
+static const unsigned char kat791_nonce[] = {0};
+static const unsigned char kat791_persstr[] = {0};
+static const unsigned char kat791_addin0[] = {0};
+static const unsigned char kat791_addin1[] = {0};
+static const unsigned char kat791_retbits[] = {
+ 0xe9, 0x13, 0x61, 0x51, 0x1d, 0x92, 0x6b, 0xe4, 0xd9, 0x97, 0xfc, 0x97,
+ 0x0b, 0x1a, 0x5d, 0xcd, 0xb3, 0x3a, 0x71, 0x1f, 0x21, 0x5c, 0xbd, 0xbf,
+ 0xfa, 0xbf, 0xcd, 0xaa, 0x62, 0x48, 0x59, 0x68, 0x91, 0xd5, 0x5a, 0x9e,
+ 0x64, 0xf4, 0xe9, 0xf5, 0x18, 0x5e, 0xd7, 0x05, 0x6f, 0x7c, 0xbb, 0x42,
+ 0xf4, 0x74, 0xa2, 0x35, 0x42, 0xfe, 0x9e, 0x9c, 0x24, 0x95, 0x18, 0x2c,
+ 0xef, 0xb3, 0x8a, 0x6a,
+};
+static const struct drbg_kat_no_reseed kat791_t = {
+ 10, kat791_entropyin, kat791_nonce, kat791_persstr,
+ kat791_addin0, kat791_addin1, kat791_retbits
+};
+static const struct drbg_kat kat791 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat791_t
+};
+
+static const unsigned char kat792_entropyin[] = {
+ 0xf7, 0x0c, 0xe2, 0x83, 0xef, 0xd5, 0xba, 0x36, 0xc2, 0x84, 0xcb, 0x26,
+ 0x7d, 0x22, 0xe2, 0x3d, 0xc4, 0x16, 0x71, 0xb2, 0xaa, 0xae, 0x98, 0xe6,
+ 0x38, 0xc6, 0xe4, 0x51, 0xbc, 0x9c, 0x3c, 0xbb,
+};
+static const unsigned char kat792_nonce[] = {0};
+static const unsigned char kat792_persstr[] = {0};
+static const unsigned char kat792_addin0[] = {0};
+static const unsigned char kat792_addin1[] = {0};
+static const unsigned char kat792_retbits[] = {
+ 0xfd, 0x9b, 0x3b, 0x53, 0xe1, 0x2b, 0x67, 0x02, 0xe4, 0xc6, 0xe4, 0xac,
+ 0xac, 0x33, 0xae, 0xae, 0x5c, 0xeb, 0x34, 0xce, 0xbf, 0xff, 0xa7, 0x00,
+ 0x7c, 0xb1, 0xab, 0x1c, 0x3b, 0x4b, 0xe1, 0xa3, 0x8e, 0x5c, 0x86, 0xde,
+ 0xa0, 0x77, 0x5a, 0xb0, 0xc8, 0x9a, 0xe1, 0x35, 0xe0, 0xb3, 0x6d, 0xa0,
+ 0x87, 0x92, 0x1d, 0x3f, 0xf2, 0x75, 0xff, 0xc8, 0xe5, 0xdc, 0xee, 0x6e,
+ 0x3d, 0x66, 0xee, 0x43,
+};
+static const struct drbg_kat_no_reseed kat792_t = {
+ 11, kat792_entropyin, kat792_nonce, kat792_persstr,
+ kat792_addin0, kat792_addin1, kat792_retbits
+};
+static const struct drbg_kat kat792 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat792_t
+};
+
+static const unsigned char kat793_entropyin[] = {
+ 0x58, 0xeb, 0x54, 0x4f, 0x44, 0xdf, 0xe1, 0x04, 0x8a, 0x81, 0x13, 0xd4,
+ 0xb6, 0x90, 0x90, 0x50, 0xab, 0xf9, 0x01, 0x00, 0x36, 0x23, 0x3b, 0xe7,
+ 0xf8, 0xfc, 0xc4, 0x1f, 0x39, 0xba, 0xff, 0x9c,
+};
+static const unsigned char kat793_nonce[] = {0};
+static const unsigned char kat793_persstr[] = {0};
+static const unsigned char kat793_addin0[] = {0};
+static const unsigned char kat793_addin1[] = {0};
+static const unsigned char kat793_retbits[] = {
+ 0x5c, 0x6a, 0xed, 0xc0, 0x20, 0xe7, 0x64, 0xf4, 0xd3, 0xbb, 0x8a, 0xbc,
+ 0x29, 0x07, 0xc9, 0xc6, 0x04, 0xdd, 0x98, 0xe1, 0xcf, 0xc2, 0x88, 0x2e,
+ 0xa7, 0x2d, 0x55, 0x4e, 0x39, 0xfe, 0x86, 0x46, 0x3a, 0x51, 0x88, 0x6d,
+ 0x98, 0x0a, 0xc8, 0xcd, 0xda, 0x0f, 0x4e, 0x58, 0x42, 0x26, 0xd4, 0x53,
+ 0x44, 0xe4, 0x3d, 0xd8, 0x4e, 0x84, 0x30, 0xf5, 0x8c, 0x38, 0x80, 0xa0,
+ 0xce, 0x93, 0x08, 0x63,
+};
+static const struct drbg_kat_no_reseed kat793_t = {
+ 12, kat793_entropyin, kat793_nonce, kat793_persstr,
+ kat793_addin0, kat793_addin1, kat793_retbits
+};
+static const struct drbg_kat kat793 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat793_t
+};
+
+static const unsigned char kat794_entropyin[] = {
+ 0xb6, 0x94, 0xce, 0x5f, 0x4d, 0x9a, 0xf4, 0xce, 0x93, 0x62, 0x66, 0x36,
+ 0xc9, 0xec, 0xb3, 0x41, 0xf3, 0xf5, 0x15, 0x2f, 0xd5, 0x80, 0x74, 0x52,
+ 0x02, 0xcd, 0x0c, 0x83, 0xf4, 0xd5, 0xb4, 0xc5,
+};
+static const unsigned char kat794_nonce[] = {0};
+static const unsigned char kat794_persstr[] = {0};
+static const unsigned char kat794_addin0[] = {0};
+static const unsigned char kat794_addin1[] = {0};
+static const unsigned char kat794_retbits[] = {
+ 0x78, 0xb3, 0x2d, 0x39, 0x6f, 0x5a, 0x91, 0x9f, 0x5c, 0xcb, 0x9b, 0xe2,
+ 0xaf, 0xaf, 0x5f, 0x62, 0x12, 0xd7, 0x5b, 0xf0, 0x84, 0xe9, 0x93, 0x57,
+ 0xe2, 0x8c, 0xcc, 0x98, 0xd4, 0x33, 0x69, 0x64, 0x55, 0xb1, 0x0a, 0x85,
+ 0xec, 0xaf, 0x61, 0x68, 0x6a, 0x96, 0x60, 0x6f, 0xf3, 0xe8, 0x96, 0x23,
+ 0x21, 0x35, 0x8a, 0x56, 0xfa, 0x53, 0xca, 0xbb, 0xf1, 0x6c, 0x65, 0xc1,
+ 0xc3, 0x2d, 0xeb, 0xcd,
+};
+static const struct drbg_kat_no_reseed kat794_t = {
+ 13, kat794_entropyin, kat794_nonce, kat794_persstr,
+ kat794_addin0, kat794_addin1, kat794_retbits
+};
+static const struct drbg_kat kat794 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat794_t
+};
+
+static const unsigned char kat795_entropyin[] = {
+ 0x42, 0xcb, 0x18, 0x3d, 0x2a, 0x04, 0xc8, 0x9c, 0x69, 0xef, 0xbc, 0xec,
+ 0x08, 0xbe, 0xe2, 0x00, 0x3b, 0x9a, 0x1c, 0xd5, 0x68, 0x78, 0xa7, 0x74,
+ 0xf0, 0x16, 0x2b, 0xf7, 0x0f, 0x2c, 0x70, 0x8f,
+};
+static const unsigned char kat795_nonce[] = {0};
+static const unsigned char kat795_persstr[] = {0};
+static const unsigned char kat795_addin0[] = {0};
+static const unsigned char kat795_addin1[] = {0};
+static const unsigned char kat795_retbits[] = {
+ 0xcb, 0x4a, 0xfd, 0xec, 0x03, 0x3b, 0x42, 0x94, 0x9e, 0xbb, 0xb2, 0x72,
+ 0x45, 0xfd, 0x33, 0xc1, 0x50, 0x3c, 0x12, 0x78, 0x02, 0x7e, 0x11, 0xa1,
+ 0xf0, 0x50, 0xe0, 0x40, 0x80, 0xab, 0xe4, 0x85, 0x08, 0x21, 0xb7, 0x1e,
+ 0xd5, 0xa6, 0xbd, 0x83, 0xda, 0x6b, 0xde, 0x8e, 0x56, 0xc5, 0xfa, 0xed,
+ 0x49, 0xda, 0x26, 0x88, 0x70, 0x28, 0xba, 0xb8, 0x07, 0xd1, 0xad, 0x05,
+ 0x5e, 0x2a, 0x8a, 0x27,
+};
+static const struct drbg_kat_no_reseed kat795_t = {
+ 14, kat795_entropyin, kat795_nonce, kat795_persstr,
+ kat795_addin0, kat795_addin1, kat795_retbits
+};
+static const struct drbg_kat kat795 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat795_t
+};
+
+static const unsigned char kat796_entropyin[] = {
+ 0x7f, 0x40, 0x80, 0x46, 0x93, 0x55, 0x2e, 0x31, 0x75, 0x23, 0xfd, 0xa6,
+ 0x93, 0x5a, 0x5b, 0xc8, 0x14, 0x35, 0x3b, 0x1f, 0xbb, 0x7d, 0x33, 0x49,
+ 0x64, 0xac, 0x4d, 0x1d, 0x12, 0xdd, 0xcc, 0xce,
+};
+static const unsigned char kat796_nonce[] = {0};
+static const unsigned char kat796_persstr[] = {0};
+static const unsigned char kat796_addin0[] = {
+ 0x95, 0xc0, 0x42, 0x59, 0xf6, 0x4f, 0xcd, 0x1f, 0xe0, 0x0c, 0x18, 0x3a,
+ 0xa3, 0xfb, 0x76, 0xb8, 0xa7, 0x3b, 0x4d, 0x12, 0x43, 0xb8, 0x00, 0xd7,
+ 0x70, 0xe3, 0x85, 0x15, 0xbc, 0x41, 0x14, 0x3c,
+};
+static const unsigned char kat796_addin1[] = {
+ 0x55, 0x23, 0x10, 0x2d, 0xbd, 0x7f, 0xe1, 0x22, 0x84, 0x36, 0xb9, 0x1a,
+ 0x76, 0x5b, 0x16, 0x5a, 0xe6, 0x40, 0x5e, 0xb0, 0x23, 0x6e, 0x23, 0x7a,
+ 0xfa, 0xd4, 0x75, 0x9c, 0xf0, 0x88, 0x89, 0x41,
+};
+static const unsigned char kat796_retbits[] = {
+ 0x1a, 0xbf, 0x6b, 0xcc, 0xb4, 0xc2, 0xd6, 0x4e, 0x51, 0x87, 0xb1, 0xe2,
+ 0xe3, 0x4e, 0x49, 0x3e, 0xca, 0x20, 0x4e, 0xe4, 0xee, 0xf0, 0xd9, 0x64,
+ 0x26, 0x7e, 0x38, 0x22, 0x8f, 0x5f, 0x20, 0xef, 0xba, 0x37, 0x64, 0x30,
+ 0xa2, 0x66, 0xf3, 0x83, 0x29, 0x16, 0xd0, 0xa4, 0x5b, 0x27, 0x03, 0xf4,
+ 0x64, 0x01, 0xdf, 0xd1, 0x45, 0xe4, 0x47, 0xa0, 0xa1, 0x66, 0x7e, 0xbd,
+ 0x8b, 0x6e, 0xe7, 0x48,
+};
+static const struct drbg_kat_no_reseed kat796_t = {
+ 0, kat796_entropyin, kat796_nonce, kat796_persstr,
+ kat796_addin0, kat796_addin1, kat796_retbits
+};
+static const struct drbg_kat kat796 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat796_t
+};
+
+static const unsigned char kat797_entropyin[] = {
+ 0x35, 0x0d, 0xf6, 0x77, 0x40, 0x9a, 0x1d, 0xc2, 0x97, 0xd0, 0x1d, 0x37,
+ 0x16, 0xa2, 0xab, 0xdf, 0xa6, 0x27, 0x2c, 0xd0, 0x30, 0xab, 0x75, 0xf7,
+ 0x68, 0x39, 0x64, 0x85, 0x82, 0xb4, 0x71, 0x13,
+};
+static const unsigned char kat797_nonce[] = {0};
+static const unsigned char kat797_persstr[] = {0};
+static const unsigned char kat797_addin0[] = {
+ 0xba, 0x57, 0x09, 0xa1, 0x2a, 0xe6, 0x63, 0x4a, 0x54, 0x36, 0xb7, 0xea,
+ 0x06, 0x83, 0x8b, 0x48, 0xf7, 0xb8, 0x47, 0xa2, 0x37, 0xf6, 0x65, 0x4a,
+ 0x0e, 0x27, 0xc7, 0x76, 0xeb, 0xee, 0x95, 0x11,
+};
+static const unsigned char kat797_addin1[] = {
+ 0xf1, 0xb2, 0xc7, 0x17, 0xc5, 0xe3, 0xa9, 0x34, 0x12, 0x7e, 0x10, 0x47,
+ 0x1d, 0x67, 0xac, 0xcc, 0x65, 0xf4, 0xa4, 0x50, 0x10, 0xca, 0x53, 0xb3,
+ 0x5f, 0x54, 0xc8, 0x88, 0x33, 0xdb, 0xd8, 0xe7,
+};
+static const unsigned char kat797_retbits[] = {
+ 0x1e, 0xf1, 0xea, 0x27, 0x98, 0x12, 0xe8, 0xab, 0xe5, 0x4f, 0x7f, 0xfd,
+ 0x12, 0xd0, 0x4c, 0x80, 0xae, 0x40, 0x74, 0x1f, 0x4c, 0xcf, 0xe2, 0x32,
+ 0xa5, 0xfb, 0xa3, 0xa7, 0x8d, 0xfd, 0x3e, 0x2e, 0xd4, 0x19, 0xb8, 0x8e,
+ 0xe9, 0x18, 0x8d, 0xf7, 0x24, 0x16, 0x0c, 0xbb, 0x3a, 0xea, 0x0f, 0x27,
+ 0x6e, 0x84, 0xa3, 0xc0, 0xff, 0x01, 0xe3, 0xb8, 0x9f, 0xe3, 0x0e, 0xbc,
+ 0xfa, 0x64, 0xcb, 0x86,
+};
+static const struct drbg_kat_no_reseed kat797_t = {
+ 1, kat797_entropyin, kat797_nonce, kat797_persstr,
+ kat797_addin0, kat797_addin1, kat797_retbits
+};
+static const struct drbg_kat kat797 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat797_t
+};
+
+static const unsigned char kat798_entropyin[] = {
+ 0xd6, 0x2a, 0xa5, 0x85, 0xb3, 0x44, 0xad, 0xaf, 0xfb, 0x31, 0x01, 0x0b,
+ 0xce, 0xf4, 0x0a, 0x1d, 0x6e, 0xc6, 0x29, 0xc4, 0xf4, 0xc5, 0xa2, 0x4c,
+ 0x37, 0x87, 0x7f, 0x19, 0xcc, 0x05, 0xb3, 0xb4,
+};
+static const unsigned char kat798_nonce[] = {0};
+static const unsigned char kat798_persstr[] = {0};
+static const unsigned char kat798_addin0[] = {
+ 0x7f, 0x98, 0x0b, 0x7b, 0x8c, 0x72, 0x5c, 0x92, 0xc2, 0xc3, 0xdc, 0x73,
+ 0x5b, 0xc2, 0x16, 0xcb, 0x46, 0x62, 0xb0, 0xb8, 0x90, 0x52, 0x89, 0xa8,
+ 0xf3, 0xf2, 0xe3, 0x99, 0x96, 0xa1, 0x03, 0xdb,
+};
+static const unsigned char kat798_addin1[] = {
+ 0xe1, 0xd3, 0xa1, 0x41, 0xbc, 0xda, 0xec, 0x1b, 0x11, 0x5c, 0x9a, 0x7b,
+ 0xf7, 0x6d, 0xed, 0xc7, 0x8d, 0xf6, 0x83, 0xe7, 0x42, 0x7f, 0x04, 0xd1,
+ 0x0e, 0xdd, 0xa1, 0x8f, 0xd9, 0x3d, 0x68, 0xe3,
+};
+static const unsigned char kat798_retbits[] = {
+ 0x60, 0xca, 0xfc, 0xd5, 0x28, 0x63, 0xc6, 0xeb, 0x2d, 0xee, 0x96, 0x48,
+ 0x13, 0x3a, 0x42, 0x06, 0x46, 0xae, 0xda, 0xc5, 0xe2, 0x69, 0x7e, 0x50,
+ 0x31, 0x80, 0xdf, 0xde, 0x1c, 0xa2, 0xd1, 0xa2, 0xfc, 0xb1, 0x9b, 0x05,
+ 0x9c, 0x3b, 0x6b, 0xf8, 0xe4, 0xb2, 0x76, 0x77, 0x78, 0x28, 0xb1, 0x38,
+ 0x4d, 0x86, 0xe8, 0x7d, 0xfc, 0x9d, 0x69, 0xed, 0x3e, 0x27, 0x61, 0x0c,
+ 0x2b, 0x5e, 0xc8, 0x42,
+};
+static const struct drbg_kat_no_reseed kat798_t = {
+ 2, kat798_entropyin, kat798_nonce, kat798_persstr,
+ kat798_addin0, kat798_addin1, kat798_retbits
+};
+static const struct drbg_kat kat798 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat798_t
+};
+
+static const unsigned char kat799_entropyin[] = {
+ 0x9c, 0x65, 0x30, 0x5b, 0x5b, 0xf8, 0x23, 0x44, 0x05, 0x68, 0x22, 0x7e,
+ 0x45, 0x8d, 0x7f, 0xc1, 0x07, 0xef, 0xd6, 0x6f, 0xc6, 0x3e, 0x27, 0xac,
+ 0xce, 0x90, 0x02, 0x0b, 0x6c, 0x0b, 0xe2, 0x56,
+};
+static const unsigned char kat799_nonce[] = {0};
+static const unsigned char kat799_persstr[] = {0};
+static const unsigned char kat799_addin0[] = {
+ 0x64, 0xff, 0xc1, 0x7e, 0x8c, 0x9d, 0xd2, 0x44, 0xe8, 0x63, 0x40, 0x52,
+ 0x65, 0xf4, 0x8e, 0x0b, 0xb2, 0x51, 0x8f, 0x7e, 0x5d, 0xc0, 0x1a, 0x99,
+ 0xec, 0x83, 0x81, 0x99, 0x8f, 0x78, 0x19, 0x0f,
+};
+static const unsigned char kat799_addin1[] = {
+ 0xcd, 0x62, 0xc9, 0xf0, 0xe4, 0xdb, 0x01, 0x1f, 0x60, 0x68, 0x75, 0x79,
+ 0x9e, 0x3f, 0xfe, 0x12, 0x9b, 0xeb, 0x1f, 0xd6, 0x80, 0x15, 0xf5, 0x97,
+ 0x2f, 0x1b, 0x98, 0x46, 0x96, 0x84, 0xef, 0xec,
+};
+static const unsigned char kat799_retbits[] = {
+ 0xc4, 0xe9, 0xac, 0xc0, 0xb6, 0x58, 0xa0, 0x4f, 0xb3, 0xea, 0xdb, 0xf9,
+ 0x84, 0x40, 0x47, 0x3a, 0x3a, 0xaf, 0x4b, 0x05, 0xf7, 0xcd, 0x39, 0xe4,
+ 0x60, 0xb7, 0xf4, 0x64, 0x8c, 0xbd, 0x45, 0x2a, 0x9f, 0x21, 0x91, 0x32,
+ 0x0c, 0x69, 0x32, 0x89, 0x2a, 0x08, 0xf5, 0x8a, 0x68, 0x5b, 0x7d, 0x52,
+ 0x5b, 0x08, 0x75, 0x66, 0xad, 0xd4, 0x53, 0x4e, 0x0c, 0x13, 0x07, 0x94,
+ 0x22, 0x55, 0x22, 0x04,
+};
+static const struct drbg_kat_no_reseed kat799_t = {
+ 3, kat799_entropyin, kat799_nonce, kat799_persstr,
+ kat799_addin0, kat799_addin1, kat799_retbits
+};
+static const struct drbg_kat kat799 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat799_t
+};
+
+static const unsigned char kat800_entropyin[] = {
+ 0xa5, 0xc7, 0x81, 0x32, 0xf4, 0x31, 0xc1, 0x6e, 0xed, 0x01, 0xf5, 0x6b,
+ 0x60, 0x0d, 0x62, 0x8e, 0xeb, 0xbd, 0xd9, 0xf1, 0xe2, 0x73, 0xc7, 0x3d,
+ 0x8d, 0x9c, 0x8e, 0x51, 0x72, 0x38, 0x79, 0x1a,
+};
+static const unsigned char kat800_nonce[] = {0};
+static const unsigned char kat800_persstr[] = {0};
+static const unsigned char kat800_addin0[] = {
+ 0x47, 0xc2, 0xe6, 0xa9, 0x1a, 0x44, 0xc6, 0x3e, 0x86, 0x81, 0x7c, 0xcb,
+ 0xc8, 0x3e, 0xb2, 0x20, 0x53, 0x45, 0xcc, 0x47, 0x1a, 0xac, 0x3e, 0xb8,
+ 0x04, 0xb3, 0xc1, 0x29, 0x75, 0x74, 0xd8, 0x18,
+};
+static const unsigned char kat800_addin1[] = {
+ 0x33, 0xb2, 0x8b, 0x7a, 0xfa, 0x3d, 0xb3, 0xc9, 0x65, 0x47, 0x1e, 0xe9,
+ 0x9b, 0xe5, 0x95, 0xa5, 0x6b, 0x85, 0x5b, 0x4a, 0x43, 0x13, 0x6f, 0x4d,
+ 0xdd, 0x6d, 0x17, 0x57, 0x6d, 0x7a, 0x5f, 0x29,
+};
+static const unsigned char kat800_retbits[] = {
+ 0xa1, 0x9e, 0xa9, 0x9b, 0x55, 0x08, 0x5f, 0x38, 0x3d, 0x7d, 0x35, 0xaf,
+ 0x58, 0x54, 0xbe, 0x11, 0x5e, 0xf5, 0x06, 0xe0, 0x7a, 0xf4, 0x98, 0x82,
+ 0x05, 0xbf, 0x9d, 0xe8, 0x78, 0xa4, 0x52, 0x83, 0x1a, 0x3d, 0xb3, 0x3b,
+ 0x9b, 0x5c, 0x96, 0x59, 0x39, 0xa7, 0x22, 0x59, 0x9d, 0x97, 0x6a, 0xed,
+ 0x32, 0x6b, 0x2b, 0xe6, 0xd2, 0x14, 0xdf, 0x49, 0x11, 0xd3, 0x8e, 0xaa,
+ 0xb8, 0xb0, 0x6c, 0x0d,
+};
+static const struct drbg_kat_no_reseed kat800_t = {
+ 4, kat800_entropyin, kat800_nonce, kat800_persstr,
+ kat800_addin0, kat800_addin1, kat800_retbits
+};
+static const struct drbg_kat kat800 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat800_t
+};
+
+static const unsigned char kat801_entropyin[] = {
+ 0x7b, 0x2f, 0xbc, 0x29, 0xb3, 0x1c, 0x2a, 0xe4, 0xb0, 0x4e, 0x3a, 0xfa,
+ 0x80, 0x16, 0xd3, 0x9a, 0x36, 0x4c, 0x51, 0x55, 0x55, 0xc7, 0x49, 0xbe,
+ 0xe4, 0xd9, 0xcf, 0xba, 0x78, 0x62, 0x53, 0x29,
+};
+static const unsigned char kat801_nonce[] = {0};
+static const unsigned char kat801_persstr[] = {0};
+static const unsigned char kat801_addin0[] = {
+ 0x50, 0x0c, 0x5a, 0x69, 0xbd, 0xac, 0x31, 0x9f, 0xa7, 0xbf, 0x3d, 0x14,
+ 0xc0, 0x2a, 0xef, 0xfd, 0x7e, 0xad, 0x71, 0x89, 0x5e, 0x08, 0xd6, 0x08,
+ 0xba, 0xf0, 0x39, 0x77, 0xe5, 0x96, 0xc1, 0xeb,
+};
+static const unsigned char kat801_addin1[] = {
+ 0xf0, 0xbe, 0x7f, 0x9d, 0x86, 0xbc, 0x91, 0x6a, 0xa4, 0x95, 0x00, 0x41,
+ 0xb0, 0x0a, 0x2d, 0x22, 0x85, 0x68, 0xf5, 0x08, 0x0d, 0xf8, 0x1a, 0x8a,
+ 0xd8, 0x89, 0x3a, 0xfc, 0x76, 0xa1, 0xfd, 0x7a,
+};
+static const unsigned char kat801_retbits[] = {
+ 0x92, 0x59, 0x11, 0xee, 0x20, 0x8d, 0x75, 0xb3, 0x68, 0xc1, 0x9b, 0x84,
+ 0x3d, 0x17, 0x6b, 0x24, 0xf2, 0xa0, 0xea, 0x8b, 0x07, 0x0b, 0xed, 0xeb,
+ 0x70, 0x75, 0x3c, 0xf6, 0x2a, 0xaf, 0x70, 0x48, 0x0d, 0x65, 0x2c, 0x16,
+ 0x95, 0x5e, 0x96, 0x1a, 0xc8, 0x40, 0x64, 0x8e, 0xa6, 0xcb, 0xa2, 0x1c,
+ 0x4d, 0xe0, 0xb3, 0x01, 0x65, 0xf2, 0xd0, 0x3c, 0x85, 0xbb, 0x9e, 0x31,
+ 0xa9, 0xea, 0x03, 0x6f,
+};
+static const struct drbg_kat_no_reseed kat801_t = {
+ 5, kat801_entropyin, kat801_nonce, kat801_persstr,
+ kat801_addin0, kat801_addin1, kat801_retbits
+};
+static const struct drbg_kat kat801 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat801_t
+};
+
+static const unsigned char kat802_entropyin[] = {
+ 0x32, 0xa8, 0x12, 0xab, 0xbf, 0xdd, 0xd3, 0x55, 0xe2, 0xf7, 0x43, 0x95,
+ 0x4f, 0x28, 0xf4, 0x14, 0x25, 0xf1, 0x76, 0xc3, 0xc6, 0x38, 0x7f, 0x0c,
+ 0xcd, 0x9b, 0x99, 0x25, 0x03, 0x97, 0xcf, 0x3e,
+};
+static const unsigned char kat802_nonce[] = {0};
+static const unsigned char kat802_persstr[] = {0};
+static const unsigned char kat802_addin0[] = {
+ 0x60, 0xcd, 0x7a, 0xf1, 0xe2, 0xae, 0xdd, 0x65, 0xbd, 0x1f, 0x1d, 0xf0,
+ 0x8f, 0x76, 0xab, 0xaf, 0x7c, 0x09, 0xe5, 0x8e, 0x32, 0x17, 0x28, 0x12,
+ 0x6a, 0xc6, 0x5b, 0xb1, 0x14, 0x3e, 0xd1, 0x9e,
+};
+static const unsigned char kat802_addin1[] = {
+ 0x6c, 0x4b, 0xb5, 0x48, 0x32, 0x70, 0x65, 0x5c, 0x50, 0xe0, 0xe0, 0x58,
+ 0x4c, 0xb9, 0xb1, 0xd4, 0xfa, 0x85, 0x4f, 0xd2, 0x2a, 0x8d, 0x72, 0x13,
+ 0x05, 0x05, 0xdf, 0x37, 0x38, 0x08, 0x3e, 0x35,
+};
+static const unsigned char kat802_retbits[] = {
+ 0x39, 0x05, 0x6f, 0x33, 0xda, 0x2f, 0x31, 0xa9, 0x63, 0xd9, 0x7f, 0xb8,
+ 0xd8, 0xc7, 0x4f, 0x89, 0xc4, 0x05, 0x57, 0x4b, 0x4d, 0xc4, 0x19, 0x6c,
+ 0xfc, 0x22, 0xba, 0x6f, 0xa9, 0x62, 0xe6, 0xc7, 0xcc, 0xbb, 0x96, 0x75,
+ 0x5e, 0x15, 0x82, 0xd4, 0x1e, 0xe9, 0x10, 0x45, 0x1d, 0xaa, 0x5b, 0x3a,
+ 0x33, 0x57, 0x9e, 0x42, 0x8e, 0x3c, 0x45, 0x7c, 0x9a, 0x8b, 0xe6, 0x09,
+ 0xc3, 0xfb, 0x71, 0x0e,
+};
+static const struct drbg_kat_no_reseed kat802_t = {
+ 6, kat802_entropyin, kat802_nonce, kat802_persstr,
+ kat802_addin0, kat802_addin1, kat802_retbits
+};
+static const struct drbg_kat kat802 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat802_t
+};
+
+static const unsigned char kat803_entropyin[] = {
+ 0xb6, 0xd8, 0x01, 0xb3, 0xfe, 0xa2, 0x8a, 0xfa, 0x07, 0xd0, 0x90, 0x73,
+ 0x10, 0x87, 0xa5, 0xe5, 0x3f, 0x83, 0xcf, 0x9d, 0x98, 0x0d, 0x99, 0xb8,
+ 0xec, 0x5f, 0x05, 0x23, 0x1c, 0x7a, 0x7f, 0xdd,
+};
+static const unsigned char kat803_nonce[] = {0};
+static const unsigned char kat803_persstr[] = {0};
+static const unsigned char kat803_addin0[] = {
+ 0x2e, 0xd2, 0xa9, 0xdb, 0x70, 0xa8, 0xe0, 0xe1, 0x44, 0x29, 0xdf, 0x36,
+ 0x31, 0x42, 0x95, 0x11, 0xc3, 0xc0, 0xb9, 0x10, 0xad, 0xb0, 0x81, 0x36,
+ 0xba, 0x39, 0xc6, 0xbd, 0xd0, 0xaa, 0x5c, 0x99,
+};
+static const unsigned char kat803_addin1[] = {
+ 0xd4, 0x75, 0x2a, 0x12, 0x07, 0x92, 0xd4, 0x04, 0x70, 0x3c, 0x33, 0xa4,
+ 0xd0, 0x3c, 0x74, 0x58, 0x71, 0xc0, 0xf1, 0x20, 0xe2, 0x9b, 0xf6, 0x16,
+ 0xe1, 0x56, 0x05, 0xa4, 0x93, 0x2a, 0xad, 0x2e,
+};
+static const unsigned char kat803_retbits[] = {
+ 0x83, 0x65, 0x75, 0x89, 0x8c, 0xce, 0x37, 0x93, 0x41, 0xb6, 0x89, 0xd5,
+ 0x1c, 0x59, 0x7d, 0xc7, 0xc2, 0xd9, 0x3e, 0x2b, 0x73, 0xb6, 0xff, 0xfb,
+ 0xe0, 0xd8, 0x5e, 0x0c, 0x91, 0x78, 0xa2, 0x9b, 0xe4, 0xb5, 0xc9, 0x5d,
+ 0xf1, 0xc1, 0x23, 0x88, 0xdd, 0x9a, 0xa9, 0x71, 0x4a, 0x73, 0x31, 0xef,
+ 0x0d, 0x70, 0xd2, 0x04, 0xe9, 0xca, 0x73, 0x67, 0x9a, 0x80, 0x59, 0x95,
+ 0x9c, 0xe0, 0x98, 0x28,
+};
+static const struct drbg_kat_no_reseed kat803_t = {
+ 7, kat803_entropyin, kat803_nonce, kat803_persstr,
+ kat803_addin0, kat803_addin1, kat803_retbits
+};
+static const struct drbg_kat kat803 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat803_t
+};
+
+static const unsigned char kat804_entropyin[] = {
+ 0x02, 0x73, 0x74, 0x94, 0xaf, 0xfe, 0xb7, 0xdc, 0x7f, 0xc2, 0x41, 0x70,
+ 0x3b, 0x7c, 0x62, 0xe8, 0x2f, 0x74, 0x8e, 0x3f, 0xe9, 0xad, 0x5a, 0xbe,
+ 0x44, 0x6d, 0x01, 0x4e, 0xf3, 0x5d, 0xb3, 0x4b,
+};
+static const unsigned char kat804_nonce[] = {0};
+static const unsigned char kat804_persstr[] = {0};
+static const unsigned char kat804_addin0[] = {
+ 0xe6, 0x6b, 0x9a, 0xec, 0x28, 0xb2, 0x07, 0x81, 0xd6, 0x73, 0xe7, 0x2c,
+ 0x47, 0x6a, 0xad, 0x99, 0xe8, 0xa6, 0xe3, 0x46, 0x24, 0xbe, 0x7d, 0x1d,
+ 0x5a, 0xab, 0x7d, 0xd3, 0xe4, 0x3b, 0x90, 0x16,
+};
+static const unsigned char kat804_addin1[] = {
+ 0x9a, 0x91, 0x02, 0x95, 0xc1, 0x50, 0x1b, 0xfd, 0xd0, 0x75, 0xe8, 0xe6,
+ 0x62, 0xb9, 0x13, 0xbc, 0x22, 0x9e, 0x87, 0xd6, 0xf3, 0xfd, 0xf6, 0xd2,
+ 0x4f, 0x1b, 0xfb, 0x6c, 0x55, 0x98, 0x7c, 0x0f,
+};
+static const unsigned char kat804_retbits[] = {
+ 0x52, 0x7b, 0x31, 0xc1, 0x59, 0x55, 0x75, 0xaa, 0x9a, 0x01, 0x77, 0x5b,
+ 0x48, 0x4d, 0xb0, 0xa5, 0xb4, 0x5d, 0x7c, 0x2e, 0x25, 0xc6, 0xf4, 0xf0,
+ 0xf3, 0x1e, 0x12, 0xa3, 0x71, 0xf8, 0x85, 0x0b, 0x7e, 0x1b, 0xdd, 0xc7,
+ 0xd9, 0x70, 0xe3, 0x5d, 0x85, 0x73, 0xaa, 0xd4, 0xd2, 0x68, 0xd8, 0x5c,
+ 0x05, 0xac, 0xd3, 0x26, 0xcc, 0x53, 0xbe, 0x46, 0x5b, 0xec, 0x8d, 0xdd,
+ 0x94, 0xe6, 0x58, 0xaa,
+};
+static const struct drbg_kat_no_reseed kat804_t = {
+ 8, kat804_entropyin, kat804_nonce, kat804_persstr,
+ kat804_addin0, kat804_addin1, kat804_retbits
+};
+static const struct drbg_kat kat804 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat804_t
+};
+
+static const unsigned char kat805_entropyin[] = {
+ 0x8c, 0x53, 0x18, 0xcb, 0x8e, 0x6e, 0x50, 0xb7, 0x7e, 0xf0, 0x89, 0x12,
+ 0x85, 0x50, 0x6f, 0xff, 0x94, 0xd7, 0x86, 0xa7, 0x11, 0x19, 0x5d, 0xc0,
+ 0x95, 0x24, 0x57, 0x84, 0xad, 0x1a, 0x4d, 0x09,
+};
+static const unsigned char kat805_nonce[] = {0};
+static const unsigned char kat805_persstr[] = {0};
+static const unsigned char kat805_addin0[] = {
+ 0x07, 0xb7, 0xaa, 0x1e, 0xbc, 0x3c, 0xe5, 0x3e, 0x93, 0xf4, 0xce, 0x07,
+ 0x63, 0x43, 0x8e, 0xe6, 0x90, 0x53, 0xe3, 0x2b, 0x5e, 0x9b, 0xa3, 0x7b,
+ 0xfb, 0xbc, 0x34, 0x41, 0x05, 0x49, 0xc8, 0xe6,
+};
+static const unsigned char kat805_addin1[] = {
+ 0x5a, 0x6b, 0x6d, 0xe7, 0x8e, 0xfa, 0x9c, 0x73, 0xac, 0xcd, 0x4f, 0x96,
+ 0xf9, 0xe1, 0xa2, 0xff, 0x9a, 0x1b, 0xba, 0x02, 0xf1, 0x27, 0xe5, 0xe5,
+ 0xbc, 0x25, 0x72, 0xf8, 0x46, 0xce, 0xb2, 0x2f,
+};
+static const unsigned char kat805_retbits[] = {
+ 0xaf, 0x02, 0x59, 0x4e, 0x48, 0x23, 0x85, 0x93, 0x59, 0x4e, 0x60, 0x07,
+ 0xf7, 0x49, 0x4e, 0x64, 0xec, 0xe2, 0x2b, 0x5b, 0x66, 0x2b, 0xe4, 0x4d,
+ 0x91, 0x23, 0xed, 0x42, 0x58, 0x9f, 0xdd, 0xea, 0xce, 0x37, 0x73, 0xd9,
+ 0x27, 0x9c, 0x0e, 0x1c, 0xc8, 0xec, 0x41, 0x95, 0x85, 0x89, 0x58, 0x69,
+ 0x99, 0xa7, 0x4d, 0xe2, 0x36, 0x4e, 0x47, 0x8a, 0x91, 0x93, 0x38, 0x00,
+ 0x1b, 0x37, 0xc8, 0xdf,
+};
+static const struct drbg_kat_no_reseed kat805_t = {
+ 9, kat805_entropyin, kat805_nonce, kat805_persstr,
+ kat805_addin0, kat805_addin1, kat805_retbits
+};
+static const struct drbg_kat kat805 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat805_t
+};
+
+static const unsigned char kat806_entropyin[] = {
+ 0xf6, 0x01, 0x4c, 0x31, 0xae, 0x35, 0x81, 0xee, 0xad, 0x6f, 0x83, 0x36,
+ 0x8e, 0x33, 0xb3, 0xf3, 0x3d, 0x01, 0xe2, 0xf0, 0x2e, 0xb7, 0xfc, 0xc2,
+ 0x8d, 0x44, 0x77, 0xfc, 0x60, 0xfa, 0x96, 0x93,
+};
+static const unsigned char kat806_nonce[] = {0};
+static const unsigned char kat806_persstr[] = {0};
+static const unsigned char kat806_addin0[] = {
+ 0x6b, 0xfa, 0xcf, 0xe8, 0xea, 0x4c, 0xd9, 0xe0, 0x6b, 0x4a, 0xff, 0xa4,
+ 0x18, 0xf6, 0x7d, 0x5d, 0xd9, 0xde, 0x84, 0x3f, 0x4d, 0x64, 0xae, 0x89,
+ 0x50, 0x57, 0x62, 0xf4, 0x24, 0x54, 0x54, 0x73,
+};
+static const unsigned char kat806_addin1[] = {
+ 0xb6, 0xbc, 0xa6, 0x89, 0xa1, 0x2e, 0x05, 0x24, 0xc7, 0x56, 0x5b, 0xe1,
+ 0xff, 0xd8, 0x15, 0x2e, 0xaa, 0x8d, 0x08, 0x5b, 0x59, 0xc9, 0xe0, 0x4a,
+ 0xbc, 0xf3, 0xd9, 0x87, 0xba, 0xbe, 0x7b, 0x52,
+};
+static const unsigned char kat806_retbits[] = {
+ 0x8e, 0x87, 0x22, 0x80, 0x0e, 0x6d, 0x83, 0xff, 0xad, 0x46, 0xd8, 0xe7,
+ 0x21, 0x0f, 0x9a, 0x49, 0x00, 0xa4, 0x18, 0xb9, 0x68, 0x13, 0x8f, 0xab,
+ 0x14, 0x9e, 0x17, 0x2d, 0xbf, 0xce, 0xc9, 0x51, 0xa2, 0xf0, 0x42, 0x8a,
+ 0xa8, 0xa2, 0x21, 0xeb, 0xb3, 0xcc, 0x49, 0x51, 0x82, 0x0d, 0x15, 0xe2,
+ 0x69, 0x91, 0x8b, 0xe9, 0x30, 0x67, 0xba, 0xf1, 0xce, 0x51, 0x97, 0x16,
+ 0x18, 0x99, 0x89, 0x42,
+};
+static const struct drbg_kat_no_reseed kat806_t = {
+ 10, kat806_entropyin, kat806_nonce, kat806_persstr,
+ kat806_addin0, kat806_addin1, kat806_retbits
+};
+static const struct drbg_kat kat806 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat806_t
+};
+
+static const unsigned char kat807_entropyin[] = {
+ 0x54, 0x44, 0x73, 0x37, 0x51, 0xa8, 0x10, 0x16, 0x10, 0xd7, 0xed, 0x86,
+ 0x2b, 0xcc, 0x4e, 0x64, 0xc4, 0xf8, 0xdd, 0xd2, 0x60, 0x8d, 0x9b, 0x4b,
+ 0xd6, 0xc5, 0x7c, 0x60, 0xf8, 0x8e, 0xde, 0xea,
+};
+static const unsigned char kat807_nonce[] = {0};
+static const unsigned char kat807_persstr[] = {0};
+static const unsigned char kat807_addin0[] = {
+ 0x66, 0x26, 0x1a, 0x57, 0x65, 0x35, 0x11, 0x8d, 0x1a, 0x8f, 0x79, 0xd8,
+ 0x8b, 0x43, 0x38, 0x58, 0x88, 0xb2, 0x4a, 0x47, 0x24, 0xcd, 0x30, 0x9d,
+ 0xec, 0xe6, 0x66, 0xfb, 0xe2, 0x28, 0x27, 0x61,
+};
+static const unsigned char kat807_addin1[] = {
+ 0x69, 0xff, 0xeb, 0x48, 0x17, 0xff, 0x31, 0x92, 0xf8, 0x02, 0x85, 0x83,
+ 0x73, 0xde, 0x1b, 0xaa, 0x45, 0x39, 0xb0, 0xe0, 0x66, 0x0b, 0x41, 0x24,
+ 0x3d, 0x77, 0xc5, 0xa2, 0x50, 0xbe, 0x34, 0xff,
+};
+static const unsigned char kat807_retbits[] = {
+ 0xf0, 0xfc, 0x3d, 0x67, 0x89, 0x76, 0xe9, 0x29, 0x00, 0x1f, 0x87, 0x04,
+ 0x75, 0x94, 0xff, 0x5e, 0xcf, 0xb7, 0x9f, 0xf0, 0xcb, 0x1d, 0xbe, 0xad,
+ 0x84, 0x95, 0x0c, 0x4e, 0x7d, 0xcf, 0x3d, 0xd6, 0xd7, 0xfa, 0xe0, 0x22,
+ 0x64, 0x11, 0xc9, 0xf6, 0xc0, 0xff, 0x8f, 0xf8, 0xa9, 0xcb, 0xa6, 0xe3,
+ 0x78, 0x7b, 0x67, 0x96, 0xde, 0xa5, 0xd8, 0x3c, 0xb5, 0x4a, 0x08, 0xb3,
+ 0x2e, 0x15, 0xb7, 0x72,
+};
+static const struct drbg_kat_no_reseed kat807_t = {
+ 11, kat807_entropyin, kat807_nonce, kat807_persstr,
+ kat807_addin0, kat807_addin1, kat807_retbits
+};
+static const struct drbg_kat kat807 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat807_t
+};
+
+static const unsigned char kat808_entropyin[] = {
+ 0x1d, 0x4e, 0xf9, 0xf3, 0xc1, 0x95, 0x25, 0x97, 0xd3, 0xd6, 0x9a, 0x4c,
+ 0x2d, 0x1a, 0x05, 0xc8, 0xbf, 0xb1, 0x44, 0x54, 0x90, 0x0d, 0x95, 0x18,
+ 0xcc, 0x7f, 0xdf, 0x7c, 0x14, 0xbf, 0x6f, 0x68,
+};
+static const unsigned char kat808_nonce[] = {0};
+static const unsigned char kat808_persstr[] = {0};
+static const unsigned char kat808_addin0[] = {
+ 0x6e, 0x24, 0x2a, 0xa9, 0xd9, 0xf5, 0x4f, 0xfa, 0xda, 0x21, 0xf4, 0xc9,
+ 0xf5, 0x9e, 0x48, 0xc4, 0xdb, 0x5b, 0x46, 0x4f, 0x0b, 0xeb, 0x88, 0x81,
+ 0x81, 0x5e, 0xa2, 0x0a, 0xaa, 0xb0, 0xf3, 0x25,
+};
+static const unsigned char kat808_addin1[] = {
+ 0xc7, 0xe4, 0x01, 0x0f, 0x08, 0xc7, 0x8a, 0x61, 0x99, 0x51, 0x73, 0xc6,
+ 0x4c, 0xf2, 0x10, 0x4b, 0xe0, 0x39, 0x5f, 0x56, 0x60, 0x86, 0x98, 0xbf,
+ 0x8b, 0x0d, 0xd1, 0xb4, 0x89, 0x52, 0xff, 0x10,
+};
+static const unsigned char kat808_retbits[] = {
+ 0xbb, 0x9d, 0x11, 0x9e, 0x29, 0xdd, 0x8b, 0xff, 0x19, 0x04, 0x21, 0xcf,
+ 0x33, 0xc6, 0xbd, 0x92, 0xc8, 0x81, 0x4f, 0xfe, 0x18, 0xad, 0xf4, 0x31,
+ 0x8a, 0xe8, 0xed, 0x48, 0xe5, 0xf0, 0xfe, 0x12, 0x53, 0xab, 0x79, 0xe9,
+ 0x12, 0xc3, 0xbf, 0x72, 0xa3, 0x73, 0x52, 0xfc, 0xc0, 0xac, 0x2c, 0x4c,
+ 0xee, 0xa1, 0xf9, 0x2b, 0xb5, 0xd1, 0x5c, 0x29, 0x66, 0xb9, 0x54, 0x2f,
+ 0x4e, 0xd3, 0xcc, 0x42,
+};
+static const struct drbg_kat_no_reseed kat808_t = {
+ 12, kat808_entropyin, kat808_nonce, kat808_persstr,
+ kat808_addin0, kat808_addin1, kat808_retbits
+};
+static const struct drbg_kat kat808 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat808_t
+};
+
+static const unsigned char kat809_entropyin[] = {
+ 0x2e, 0xbe, 0x17, 0x39, 0x77, 0xff, 0x27, 0xc8, 0xcf, 0xba, 0x5f, 0xd6,
+ 0x40, 0x65, 0x96, 0xbd, 0x6f, 0xfd, 0x39, 0x0c, 0xe3, 0xc5, 0x8a, 0x51,
+ 0xdd, 0xc8, 0xf4, 0x0d, 0x66, 0xf7, 0x4d, 0xed,
+};
+static const unsigned char kat809_nonce[] = {0};
+static const unsigned char kat809_persstr[] = {0};
+static const unsigned char kat809_addin0[] = {
+ 0xdb, 0x2b, 0x2c, 0x32, 0x21, 0x28, 0xd4, 0x7f, 0x9d, 0x4e, 0x5e, 0x9c,
+ 0x2f, 0x00, 0x87, 0x15, 0x44, 0x0f, 0x91, 0x76, 0x65, 0xba, 0x8b, 0x0b,
+ 0x5d, 0x0f, 0x16, 0x9b, 0xf5, 0xd7, 0xe1, 0x83,
+};
+static const unsigned char kat809_addin1[] = {
+ 0x13, 0xde, 0xb1, 0x8c, 0x70, 0x25, 0x09, 0x55, 0x9f, 0x3b, 0xde, 0x24,
+ 0xcb, 0xff, 0xf1, 0xe7, 0xec, 0x16, 0xb5, 0x00, 0x93, 0x45, 0xa9, 0x9f,
+ 0xd8, 0x6e, 0x0e, 0xe4, 0x1c, 0x27, 0x2c, 0xd6,
+};
+static const unsigned char kat809_retbits[] = {
+ 0x42, 0xf0, 0x28, 0x74, 0xcf, 0xd5, 0xeb, 0x59, 0x87, 0xd6, 0x46, 0x93,
+ 0x72, 0xbc, 0xdc, 0x17, 0xfc, 0x00, 0x62, 0x52, 0x2a, 0x9f, 0x3b, 0x87,
+ 0x13, 0x71, 0x5b, 0x8e, 0xa2, 0xe6, 0x3a, 0x3a, 0x6f, 0x73, 0x6d, 0x95,
+ 0x7b, 0x1e, 0x7a, 0xec, 0xc7, 0x7f, 0x39, 0x04, 0x4e, 0x81, 0xe4, 0x61,
+ 0x12, 0x61, 0xa1, 0xeb, 0xb4, 0x6e, 0xbf, 0xee, 0xb5, 0x2c, 0x40, 0x58,
+ 0x73, 0xfb, 0x0d, 0xd6,
+};
+static const struct drbg_kat_no_reseed kat809_t = {
+ 13, kat809_entropyin, kat809_nonce, kat809_persstr,
+ kat809_addin0, kat809_addin1, kat809_retbits
+};
+static const struct drbg_kat kat809 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat809_t
+};
+
+static const unsigned char kat810_entropyin[] = {
+ 0xb1, 0xa2, 0xfd, 0x70, 0x84, 0xb0, 0x15, 0x0f, 0xe0, 0xa9, 0x15, 0x5c,
+ 0xa8, 0xe4, 0x62, 0x24, 0x56, 0x51, 0x18, 0xe7, 0x02, 0xec, 0x64, 0x21,
+ 0x53, 0x04, 0x91, 0x93, 0x97, 0x3e, 0x3a, 0x98,
+};
+static const unsigned char kat810_nonce[] = {0};
+static const unsigned char kat810_persstr[] = {0};
+static const unsigned char kat810_addin0[] = {
+ 0xeb, 0x28, 0x88, 0x11, 0x9b, 0x00, 0x20, 0xcf, 0xf3, 0xac, 0x53, 0xcb,
+ 0xb8, 0x1d, 0x85, 0x76, 0x45, 0x7a, 0x86, 0x3f, 0xb0, 0x87, 0xf9, 0x1c,
+ 0x79, 0x5c, 0x29, 0x7f, 0x68, 0xd3, 0x26, 0x04,
+};
+static const unsigned char kat810_addin1[] = {
+ 0xad, 0x80, 0xf4, 0xec, 0xff, 0x75, 0x8d, 0xa0, 0xa5, 0xbe, 0xed, 0x20,
+ 0xa9, 0xd8, 0x51, 0xfc, 0xca, 0x2a, 0xd4, 0xea, 0x0d, 0x54, 0xaf, 0x61,
+ 0x94, 0x70, 0xe3, 0xcf, 0x30, 0x33, 0xa0, 0x4a,
+};
+static const unsigned char kat810_retbits[] = {
+ 0xe2, 0x10, 0x5e, 0x60, 0xf2, 0xf2, 0xfc, 0xeb, 0x27, 0xc8, 0x82, 0xca,
+ 0xeb, 0xb0, 0xc1, 0xec, 0xa5, 0x43, 0xc3, 0x59, 0x94, 0x7c, 0x43, 0x19,
+ 0xc5, 0x03, 0xef, 0xa8, 0x2e, 0xd5, 0xcb, 0x63, 0x64, 0x0f, 0x62, 0x7c,
+ 0x82, 0x21, 0x72, 0x60, 0xf0, 0x20, 0x32, 0x20, 0x43, 0x5c, 0x84, 0x2d,
+ 0x79, 0x93, 0x62, 0x3a, 0x2b, 0x05, 0xe2, 0x6e, 0x1e, 0xd1, 0xd0, 0x3f,
+ 0x68, 0xab, 0x3c, 0xb1,
+};
+static const struct drbg_kat_no_reseed kat810_t = {
+ 14, kat810_entropyin, kat810_nonce, kat810_persstr,
+ kat810_addin0, kat810_addin1, kat810_retbits
+};
+static const struct drbg_kat kat810 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat810_t
+};
+
+static const unsigned char kat811_entropyin[] = {
+ 0x3f, 0xef, 0x76, 0x2f, 0x0a, 0xa0, 0x67, 0x7f, 0x61, 0xc6, 0x5d, 0x74,
+ 0x9e, 0xeb, 0x10, 0xb0, 0x13, 0xff, 0x68, 0xcc, 0xc6, 0x31, 0x4f, 0x15,
+ 0x0c, 0xfe, 0xe7, 0x52, 0xdc, 0xd8, 0xf9, 0x87,
+};
+static const unsigned char kat811_nonce[] = {0};
+static const unsigned char kat811_persstr[] = {
+ 0xf5, 0x6d, 0xb0, 0x99, 0x24, 0x0c, 0x75, 0x90, 0xda, 0xc3, 0x96, 0x37,
+ 0x2b, 0x87, 0x37, 0x40, 0x4d, 0x41, 0x8b, 0x28, 0x64, 0xa3, 0xdf, 0x96,
+ 0xa8, 0xa3, 0x97, 0x96, 0x72, 0x45, 0x73, 0x5f,
+};
+static const unsigned char kat811_addin0[] = {0};
+static const unsigned char kat811_addin1[] = {0};
+static const unsigned char kat811_retbits[] = {
+ 0xaf, 0x0a, 0xfe, 0x08, 0x37, 0x44, 0x21, 0x36, 0xfb, 0xb1, 0x95, 0x9a,
+ 0x1c, 0x91, 0xa9, 0x29, 0x1c, 0x1d, 0x81, 0x88, 0xed, 0xe0, 0x7c, 0x67,
+ 0xd0, 0xe4, 0xdd, 0x65, 0x41, 0x30, 0x34, 0x15, 0xe7, 0xa6, 0x79, 0x99,
+ 0xc3, 0x02, 0xba, 0x0d, 0xf5, 0x55, 0x32, 0x4c, 0x26, 0x07, 0x75, 0x14,
+ 0x59, 0x2a, 0x9b, 0x6d, 0xb6, 0xbe, 0x2f, 0x15, 0x3f, 0xad, 0x22, 0x50,
+ 0x16, 0x11, 0x64, 0xe4,
+};
+static const struct drbg_kat_no_reseed kat811_t = {
+ 0, kat811_entropyin, kat811_nonce, kat811_persstr,
+ kat811_addin0, kat811_addin1, kat811_retbits
+};
+static const struct drbg_kat kat811 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat811_t
+};
+
+static const unsigned char kat812_entropyin[] = {
+ 0x3e, 0xeb, 0xe7, 0x7d, 0xb4, 0x63, 0x18, 0x62, 0xe3, 0xeb, 0x7e, 0x39,
+ 0x37, 0x05, 0x15, 0xb8, 0xba, 0xa1, 0xcd, 0xd7, 0x1a, 0x5b, 0x1b, 0x0c,
+ 0xda, 0x79, 0xc1, 0x4d, 0x0b, 0x5f, 0x48, 0xea,
+};
+static const unsigned char kat812_nonce[] = {0};
+static const unsigned char kat812_persstr[] = {
+ 0x4b, 0xe5, 0x6a, 0x9b, 0x9c, 0x21, 0x24, 0x27, 0x39, 0xc9, 0x85, 0xef,
+ 0x12, 0xaa, 0x4d, 0x98, 0xe8, 0xc7, 0xda, 0x07, 0xc4, 0xc1, 0xdc, 0x68,
+ 0x29, 0xf2, 0xe0, 0x68, 0x33, 0xcf, 0xa1, 0x48,
+};
+static const unsigned char kat812_addin0[] = {0};
+static const unsigned char kat812_addin1[] = {0};
+static const unsigned char kat812_retbits[] = {
+ 0xbe, 0x9e, 0x18, 0xa7, 0x53, 0xdf, 0x26, 0x19, 0x27, 0x47, 0x3c, 0x8b,
+ 0xb5, 0xfb, 0x7c, 0x3e, 0xa6, 0xe8, 0x21, 0xdf, 0x5a, 0xb4, 0x9a, 0xdc,
+ 0x56, 0x6a, 0x4e, 0xbf, 0x44, 0xf7, 0x5f, 0xa8, 0x25, 0xb1, 0xf9, 0xd8,
+ 0xc1, 0x54, 0xbc, 0xd4, 0x69, 0x13, 0x4c, 0x0b, 0xb6, 0x88, 0xe0, 0x7e,
+ 0x3c, 0x3e, 0x45, 0x40, 0x7c, 0xa3, 0x50, 0xd5, 0x40, 0xe1, 0x52, 0x8c,
+ 0xc2, 0xe6, 0x40, 0x68,
+};
+static const struct drbg_kat_no_reseed kat812_t = {
+ 1, kat812_entropyin, kat812_nonce, kat812_persstr,
+ kat812_addin0, kat812_addin1, kat812_retbits
+};
+static const struct drbg_kat kat812 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat812_t
+};
+
+static const unsigned char kat813_entropyin[] = {
+ 0x3a, 0x2a, 0x99, 0xb6, 0xcb, 0x3d, 0xdb, 0xe4, 0x11, 0xd6, 0xd5, 0xa2,
+ 0x68, 0xc5, 0x6f, 0xb3, 0x14, 0x41, 0xec, 0xd8, 0xba, 0x47, 0x85, 0x31,
+ 0x95, 0x86, 0x9e, 0x91, 0x2d, 0x3c, 0xbf, 0xff,
+};
+static const unsigned char kat813_nonce[] = {0};
+static const unsigned char kat813_persstr[] = {
+ 0xbd, 0x1e, 0x82, 0x2b, 0x66, 0x18, 0x0e, 0xa2, 0x9a, 0x0d, 0x9e, 0x60,
+ 0x1e, 0x98, 0x3c, 0x1f, 0x7f, 0x54, 0x87, 0x5e, 0x8c, 0x9c, 0xd8, 0x34,
+ 0x63, 0x30, 0x9d, 0x14, 0xdb, 0xef, 0x0b, 0x82,
+};
+static const unsigned char kat813_addin0[] = {0};
+static const unsigned char kat813_addin1[] = {0};
+static const unsigned char kat813_retbits[] = {
+ 0x04, 0xd1, 0xaa, 0xa8, 0x1c, 0xe4, 0xd2, 0xf5, 0xcc, 0xa3, 0x58, 0x1c,
+ 0x3a, 0xf5, 0xac, 0x81, 0xcd, 0xf0, 0x79, 0x70, 0xab, 0xe9, 0x80, 0x86,
+ 0x05, 0xb1, 0x74, 0x23, 0xb3, 0x55, 0xe1, 0xe2, 0x3a, 0x19, 0x34, 0x95,
+ 0xa9, 0x25, 0xe7, 0x62, 0x9a, 0xfe, 0x76, 0xf9, 0xb7, 0x3b, 0xcd, 0xd9,
+ 0x92, 0xc9, 0x63, 0x0c, 0x2e, 0xc6, 0x49, 0x1b, 0xd4, 0x82, 0xec, 0xe5,
+ 0xa4, 0x43, 0x84, 0xd0,
+};
+static const struct drbg_kat_no_reseed kat813_t = {
+ 2, kat813_entropyin, kat813_nonce, kat813_persstr,
+ kat813_addin0, kat813_addin1, kat813_retbits
+};
+static const struct drbg_kat kat813 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat813_t
+};
+
+static const unsigned char kat814_entropyin[] = {
+ 0xf9, 0xd7, 0xe6, 0x02, 0x60, 0x49, 0xbe, 0x4a, 0xd5, 0x1a, 0xe3, 0xea,
+ 0x23, 0xdf, 0x50, 0x43, 0x5b, 0x9e, 0x28, 0x41, 0x13, 0xaf, 0x4d, 0xe6,
+ 0x8a, 0x69, 0xc1, 0xd8, 0x68, 0xaa, 0x57, 0x2d,
+};
+static const unsigned char kat814_nonce[] = {0};
+static const unsigned char kat814_persstr[] = {
+ 0x2b, 0x33, 0x7d, 0x90, 0xfe, 0x80, 0xe8, 0xe2, 0x06, 0x5e, 0xc3, 0x11,
+ 0x5f, 0x40, 0x4d, 0x44, 0x62, 0x2c, 0xcb, 0xad, 0x48, 0x6c, 0xf6, 0x37,
+ 0x98, 0xa2, 0x26, 0x83, 0xcc, 0xd4, 0x80, 0x87,
+};
+static const unsigned char kat814_addin0[] = {0};
+static const unsigned char kat814_addin1[] = {0};
+static const unsigned char kat814_retbits[] = {
+ 0x21, 0x67, 0x49, 0xdb, 0xa2, 0xb9, 0xa5, 0x54, 0x71, 0xb1, 0xeb, 0x7f,
+ 0x39, 0x5c, 0x9a, 0x1d, 0x10, 0x5d, 0xb1, 0x54, 0x74, 0x9e, 0xf5, 0x1f,
+ 0xef, 0x1e, 0x67, 0x82, 0x66, 0xa5, 0xe4, 0x80, 0xc7, 0x5d, 0xc5, 0xac,
+ 0x4c, 0xc9, 0xde, 0xd2, 0x02, 0x21, 0x67, 0x08, 0x86, 0x0f, 0x41, 0x27,
+ 0x0a, 0xba, 0xdb, 0xc0, 0x94, 0xcd, 0x6c, 0x2c, 0xa3, 0xa0, 0xa3, 0xd9,
+ 0xa7, 0x0a, 0x1d, 0x70,
+};
+static const struct drbg_kat_no_reseed kat814_t = {
+ 3, kat814_entropyin, kat814_nonce, kat814_persstr,
+ kat814_addin0, kat814_addin1, kat814_retbits
+};
+static const struct drbg_kat kat814 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat814_t
+};
+
+static const unsigned char kat815_entropyin[] = {
+ 0x12, 0xcf, 0xd7, 0xda, 0xf1, 0x68, 0xd0, 0x90, 0x6d, 0xf0, 0xbc, 0x01,
+ 0xed, 0x5e, 0xd9, 0x39, 0x92, 0xbc, 0xb6, 0xc8, 0x5b, 0xef, 0xf2, 0xcd,
+ 0x3d, 0x2d, 0xff, 0x21, 0xff, 0x34, 0x80, 0xd5,
+};
+static const unsigned char kat815_nonce[] = {0};
+static const unsigned char kat815_persstr[] = {
+ 0xdd, 0x85, 0x5c, 0xee, 0x76, 0x09, 0xaa, 0x1b, 0x76, 0xba, 0x7a, 0xa9,
+ 0xf3, 0x12, 0x5a, 0x1b, 0x68, 0x30, 0x79, 0x8c, 0x1a, 0x23, 0x97, 0xe5,
+ 0x02, 0xf5, 0x57, 0x47, 0xff, 0x35, 0x61, 0xca,
+};
+static const unsigned char kat815_addin0[] = {0};
+static const unsigned char kat815_addin1[] = {0};
+static const unsigned char kat815_retbits[] = {
+ 0x25, 0xe0, 0x22, 0x50, 0x85, 0x0d, 0x1a, 0xc8, 0x2f, 0xdf, 0xc1, 0xb1,
+ 0x0b, 0xc0, 0xc5, 0x68, 0xa3, 0xbc, 0xfe, 0xe6, 0x91, 0x63, 0xe3, 0x02,
+ 0x1d, 0x5c, 0x5c, 0xe7, 0x6d, 0xdd, 0xe1, 0x06, 0xe6, 0x95, 0x6d, 0xf4,
+ 0x00, 0xcd, 0xf6, 0xf3, 0x68, 0x68, 0xff, 0xa4, 0x11, 0x1e, 0x76, 0x76,
+ 0x14, 0x1b, 0xea, 0x28, 0x79, 0x10, 0x81, 0x38, 0x7b, 0x3e, 0x5d, 0xce,
+ 0x69, 0x27, 0x2a, 0xae,
+};
+static const struct drbg_kat_no_reseed kat815_t = {
+ 4, kat815_entropyin, kat815_nonce, kat815_persstr,
+ kat815_addin0, kat815_addin1, kat815_retbits
+};
+static const struct drbg_kat kat815 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat815_t
+};
+
+static const unsigned char kat816_entropyin[] = {
+ 0x04, 0x9b, 0x16, 0x03, 0xf3, 0x86, 0x18, 0xac, 0x46, 0x31, 0x98, 0xe2,
+ 0x45, 0x16, 0x32, 0x7a, 0x59, 0x3a, 0x22, 0x10, 0xf9, 0xb8, 0xf1, 0x6a,
+ 0x91, 0xf5, 0x4c, 0x81, 0xc1, 0xd3, 0xba, 0xe2,
+};
+static const unsigned char kat816_nonce[] = {0};
+static const unsigned char kat816_persstr[] = {
+ 0x04, 0x05, 0x65, 0xcd, 0xdb, 0x45, 0x31, 0x2e, 0x43, 0x37, 0xc9, 0x09,
+ 0xae, 0x83, 0xdd, 0xe2, 0xc5, 0x51, 0x18, 0xae, 0x94, 0xbf, 0x54, 0x94,
+ 0x38, 0x1c, 0x15, 0x7d, 0x66, 0xe4, 0x75, 0x53,
+};
+static const unsigned char kat816_addin0[] = {0};
+static const unsigned char kat816_addin1[] = {0};
+static const unsigned char kat816_retbits[] = {
+ 0x65, 0x0d, 0x95, 0xd6, 0x08, 0x5b, 0x87, 0x56, 0xb4, 0xc8, 0xfe, 0x2b,
+ 0x16, 0x11, 0x90, 0xdf, 0x1d, 0xd6, 0xc3, 0x49, 0xbd, 0xee, 0x3e, 0x5d,
+ 0x6c, 0x1d, 0xda, 0x80, 0xc9, 0x0d, 0xb5, 0xf4, 0xe8, 0x55, 0xd6, 0x13,
+ 0x34, 0x7c, 0xb9, 0xbd, 0xb8, 0xcc, 0x7b, 0xe1, 0x50, 0x6d, 0x88, 0xaf,
+ 0x68, 0x63, 0xa4, 0xbb, 0xa5, 0x97, 0xb7, 0x57, 0x7f, 0x3b, 0x41, 0x84,
+ 0x02, 0xc8, 0x47, 0x24,
+};
+static const struct drbg_kat_no_reseed kat816_t = {
+ 5, kat816_entropyin, kat816_nonce, kat816_persstr,
+ kat816_addin0, kat816_addin1, kat816_retbits
+};
+static const struct drbg_kat kat816 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat816_t
+};
+
+static const unsigned char kat817_entropyin[] = {
+ 0x9e, 0x61, 0x99, 0xad, 0x25, 0xa5, 0x89, 0x71, 0xe7, 0x6e, 0x48, 0xdb,
+ 0x30, 0xab, 0x0b, 0xcf, 0xed, 0xb5, 0x7a, 0x97, 0x4d, 0x33, 0x34, 0x51,
+ 0x4a, 0x4e, 0x03, 0x4a, 0x59, 0x1c, 0xc3, 0xdc,
+};
+static const unsigned char kat817_nonce[] = {0};
+static const unsigned char kat817_persstr[] = {
+ 0x40, 0x84, 0x1d, 0x2a, 0xcf, 0xe9, 0x51, 0x61, 0x71, 0x27, 0xfc, 0x08,
+ 0x55, 0x73, 0xf6, 0x26, 0x60, 0x5c, 0xbd, 0xb2, 0xab, 0x08, 0x5a, 0x77,
+ 0xcb, 0x08, 0x0a, 0x99, 0xa9, 0x2e, 0x22, 0xf5,
+};
+static const unsigned char kat817_addin0[] = {0};
+static const unsigned char kat817_addin1[] = {0};
+static const unsigned char kat817_retbits[] = {
+ 0x60, 0x3a, 0x3b, 0xd8, 0x5b, 0xce, 0xa4, 0xb8, 0x7c, 0xdf, 0xf4, 0xeb,
+ 0xc6, 0xba, 0xa9, 0x81, 0x31, 0x80, 0xc2, 0x2b, 0x1c, 0x48, 0x27, 0x0a,
+ 0xad, 0x93, 0x88, 0x2b, 0x63, 0x76, 0xa6, 0x60, 0x89, 0x8a, 0x11, 0x9c,
+ 0xc9, 0x96, 0x41, 0xfd, 0x5f, 0x75, 0xe0, 0xd1, 0x8f, 0xac, 0xe1, 0x32,
+ 0x41, 0xc5, 0x42, 0x66, 0x8e, 0x46, 0xc9, 0xe0, 0x43, 0xbf, 0x8a, 0x2f,
+ 0xfe, 0x98, 0x76, 0x5f,
+};
+static const struct drbg_kat_no_reseed kat817_t = {
+ 6, kat817_entropyin, kat817_nonce, kat817_persstr,
+ kat817_addin0, kat817_addin1, kat817_retbits
+};
+static const struct drbg_kat kat817 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat817_t
+};
+
+static const unsigned char kat818_entropyin[] = {
+ 0x4a, 0x01, 0xfb, 0x95, 0xff, 0xfe, 0x41, 0x17, 0xa7, 0x1a, 0x52, 0x0a,
+ 0x0b, 0x7d, 0x23, 0xa3, 0xc3, 0x12, 0x0d, 0x4b, 0x20, 0xa8, 0x49, 0x6d,
+ 0x65, 0x01, 0xbf, 0x36, 0xd6, 0x94, 0xba, 0xbb,
+};
+static const unsigned char kat818_nonce[] = {0};
+static const unsigned char kat818_persstr[] = {
+ 0x59, 0xb8, 0x7f, 0x1c, 0x1b, 0xd9, 0xaf, 0x79, 0xba, 0xd4, 0x11, 0xec,
+ 0x61, 0xcb, 0xd5, 0x91, 0xf2, 0xcf, 0x35, 0xf6, 0x60, 0x66, 0xe1, 0x8e,
+ 0x17, 0xb4, 0xf5, 0xd4, 0x19, 0xd1, 0x32, 0x7b,
+};
+static const unsigned char kat818_addin0[] = {0};
+static const unsigned char kat818_addin1[] = {0};
+static const unsigned char kat818_retbits[] = {
+ 0x7b, 0xfa, 0x6a, 0xfb, 0xfc, 0x32, 0x29, 0xc2, 0x77, 0xb4, 0x13, 0x96,
+ 0x47, 0x7a, 0xc4, 0x1b, 0x84, 0x7a, 0x2e, 0x58, 0x15, 0x9b, 0xc3, 0x33,
+ 0x7b, 0xdc, 0x98, 0x7b, 0x4a, 0x68, 0x47, 0x91, 0x67, 0x1a, 0x5d, 0xcb,
+ 0x12, 0x49, 0xbd, 0x39, 0x07, 0xe6, 0x8a, 0x5a, 0x87, 0xd4, 0x53, 0x57,
+ 0xe7, 0xc5, 0x4c, 0x53, 0xda, 0x78, 0x21, 0xb5, 0x5d, 0xaa, 0xb7, 0x63,
+ 0xe9, 0xaa, 0xf3, 0xbb,
+};
+static const struct drbg_kat_no_reseed kat818_t = {
+ 7, kat818_entropyin, kat818_nonce, kat818_persstr,
+ kat818_addin0, kat818_addin1, kat818_retbits
+};
+static const struct drbg_kat kat818 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat818_t
+};
+
+static const unsigned char kat819_entropyin[] = {
+ 0xe7, 0x22, 0x1b, 0x71, 0x0d, 0x0e, 0x91, 0xd3, 0x94, 0x3d, 0x42, 0x94,
+ 0x30, 0x29, 0xf0, 0xc9, 0x5f, 0xbd, 0xfd, 0xd9, 0x76, 0xb5, 0xc0, 0x76,
+ 0x71, 0x56, 0xba, 0x45, 0x03, 0xfd, 0x26, 0xa0,
+};
+static const unsigned char kat819_nonce[] = {0};
+static const unsigned char kat819_persstr[] = {
+ 0x62, 0x55, 0x9c, 0x1e, 0x44, 0x2d, 0x84, 0x6d, 0x16, 0xdd, 0xcd, 0x60,
+ 0x1c, 0x17, 0xff, 0x37, 0x0c, 0xff, 0x58, 0x28, 0x74, 0xa6, 0x19, 0xda,
+ 0xc6, 0x20, 0x67, 0x48, 0x07, 0x6d, 0x8d, 0x32,
+};
+static const unsigned char kat819_addin0[] = {0};
+static const unsigned char kat819_addin1[] = {0};
+static const unsigned char kat819_retbits[] = {
+ 0x89, 0x66, 0x41, 0x5c, 0x21, 0x6d, 0xe8, 0x3d, 0x75, 0xf7, 0x36, 0x26,
+ 0x30, 0x3f, 0x91, 0x4f, 0x8d, 0x75, 0xe9, 0xbf, 0xc2, 0x9d, 0x68, 0xf8,
+ 0x9c, 0x54, 0x92, 0x89, 0x80, 0x59, 0xa1, 0xf6, 0x4e, 0xcd, 0xbe, 0x23,
+ 0x42, 0xa4, 0xfb, 0xfe, 0x63, 0x17, 0xd5, 0xbe, 0x13, 0x25, 0xa7, 0x04,
+ 0xb9, 0xe3, 0xd2, 0xe8, 0x6c, 0x54, 0x6a, 0x81, 0x90, 0x60, 0x42, 0xb6,
+ 0x0d, 0x02, 0xcc, 0x0c,
+};
+static const struct drbg_kat_no_reseed kat819_t = {
+ 8, kat819_entropyin, kat819_nonce, kat819_persstr,
+ kat819_addin0, kat819_addin1, kat819_retbits
+};
+static const struct drbg_kat kat819 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat819_t
+};
+
+static const unsigned char kat820_entropyin[] = {
+ 0x57, 0x15, 0x80, 0xa5, 0x72, 0x4b, 0x11, 0xe4, 0xb3, 0x12, 0xdf, 0x42,
+ 0x0f, 0xa2, 0x60, 0xcd, 0xdf, 0x8c, 0xcd, 0xc4, 0xcc, 0x81, 0xca, 0xc7,
+ 0x5a, 0x2a, 0xdf, 0xb7, 0x36, 0x57, 0xba, 0xdc,
+};
+static const unsigned char kat820_nonce[] = {0};
+static const unsigned char kat820_persstr[] = {
+ 0x17, 0x0d, 0x0d, 0x64, 0x02, 0xaa, 0x7c, 0xd2, 0x6a, 0xfd, 0x26, 0xe4,
+ 0xcb, 0x11, 0xd4, 0x6f, 0xe4, 0xaa, 0xc4, 0x8d, 0xf2, 0x3c, 0x69, 0xb0,
+ 0x6d, 0xe7, 0xc0, 0xcd, 0x70, 0x2c, 0x78, 0xb4,
+};
+static const unsigned char kat820_addin0[] = {0};
+static const unsigned char kat820_addin1[] = {0};
+static const unsigned char kat820_retbits[] = {
+ 0x93, 0x29, 0xe9, 0x15, 0xd3, 0xd8, 0x91, 0xc9, 0x1c, 0x16, 0x1c, 0xc3,
+ 0x91, 0x48, 0xd8, 0xba, 0x37, 0x19, 0x3d, 0x78, 0x40, 0x18, 0x3a, 0x96,
+ 0x72, 0xc7, 0x9f, 0x29, 0xf8, 0xca, 0x56, 0xa2, 0x7f, 0x2c, 0x86, 0x92,
+ 0x05, 0xd3, 0xef, 0xbe, 0xa7, 0x0e, 0x4b, 0x8b, 0x24, 0x5f, 0x49, 0x0c,
+ 0x81, 0x01, 0x73, 0x70, 0xd6, 0xa1, 0x73, 0xb3, 0xf6, 0xef, 0x99, 0x24,
+ 0x23, 0x0f, 0x2d, 0x69,
+};
+static const struct drbg_kat_no_reseed kat820_t = {
+ 9, kat820_entropyin, kat820_nonce, kat820_persstr,
+ kat820_addin0, kat820_addin1, kat820_retbits
+};
+static const struct drbg_kat kat820 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat820_t
+};
+
+static const unsigned char kat821_entropyin[] = {
+ 0x26, 0xfd, 0xa9, 0x30, 0xbc, 0x9c, 0x08, 0xa1, 0x69, 0x1f, 0x02, 0x3f,
+ 0x34, 0x8e, 0x96, 0x56, 0x34, 0x6c, 0xe5, 0x7d, 0x74, 0xd4, 0x6e, 0x81,
+ 0x50, 0xd3, 0x43, 0xb5, 0x2d, 0xf5, 0xfe, 0x89,
+};
+static const unsigned char kat821_nonce[] = {0};
+static const unsigned char kat821_persstr[] = {
+ 0xc6, 0xb0, 0x8d, 0x04, 0xf3, 0xd3, 0x5b, 0x07, 0xca, 0x64, 0x51, 0xd2,
+ 0xef, 0xe5, 0xff, 0x8c, 0x54, 0x5a, 0x73, 0x42, 0x28, 0xfc, 0xa3, 0x38,
+ 0x80, 0x6f, 0x1d, 0xae, 0x93, 0x38, 0x1f, 0x22,
+};
+static const unsigned char kat821_addin0[] = {0};
+static const unsigned char kat821_addin1[] = {0};
+static const unsigned char kat821_retbits[] = {
+ 0x18, 0xbc, 0x44, 0x8e, 0x8c, 0xd5, 0xa2, 0x57, 0x2d, 0x6f, 0xaa, 0x70,
+ 0x9f, 0x1f, 0x75, 0x74, 0x33, 0xff, 0xf9, 0x3e, 0x1a, 0x63, 0x3a, 0x8b,
+ 0x67, 0x1e, 0x97, 0x5a, 0x43, 0xf3, 0xa3, 0xa3, 0x50, 0x6c, 0x4c, 0xe9,
+ 0x76, 0xa9, 0x25, 0xf0, 0x6d, 0x7a, 0x26, 0xcb, 0x20, 0x83, 0xa8, 0x0f,
+ 0x56, 0x5f, 0xea, 0x05, 0x24, 0xc4, 0x5d, 0x36, 0x72, 0xf3, 0xc0, 0x9d,
+ 0x6a, 0x7f, 0x30, 0x8a,
+};
+static const struct drbg_kat_no_reseed kat821_t = {
+ 10, kat821_entropyin, kat821_nonce, kat821_persstr,
+ kat821_addin0, kat821_addin1, kat821_retbits
+};
+static const struct drbg_kat kat821 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat821_t
+};
+
+static const unsigned char kat822_entropyin[] = {
+ 0xba, 0x59, 0x5a, 0x79, 0x16, 0x33, 0xaa, 0xda, 0x59, 0xda, 0xa3, 0x53,
+ 0x53, 0x3b, 0x0a, 0x92, 0x48, 0x73, 0x14, 0x0a, 0xf8, 0x26, 0xf4, 0x74,
+ 0x33, 0xe8, 0x1a, 0xed, 0x88, 0xeb, 0x87, 0xc0,
+};
+static const unsigned char kat822_nonce[] = {0};
+static const unsigned char kat822_persstr[] = {
+ 0x5a, 0x3f, 0x43, 0x1c, 0x98, 0x40, 0xe0, 0x56, 0x5e, 0x49, 0xa1, 0x2d,
+ 0xd7, 0xcd, 0x65, 0x04, 0x91, 0x2c, 0x43, 0x59, 0xb1, 0x50, 0x8f, 0x6c,
+ 0x84, 0xb2, 0xc7, 0x18, 0xa3, 0x7f, 0xe3, 0xa3,
+};
+static const unsigned char kat822_addin0[] = {0};
+static const unsigned char kat822_addin1[] = {0};
+static const unsigned char kat822_retbits[] = {
+ 0x22, 0x84, 0x93, 0x92, 0x01, 0xb1, 0xae, 0xa4, 0x76, 0x06, 0xcf, 0xd6,
+ 0x23, 0xc6, 0xe0, 0x45, 0x4b, 0x4e, 0x7d, 0x2c, 0x9f, 0xd5, 0x0d, 0x15,
+ 0x87, 0x36, 0x0e, 0x83, 0x8a, 0x19, 0x0d, 0x97, 0xc8, 0x48, 0x28, 0x65,
+ 0xb9, 0x9d, 0x59, 0xa8, 0x19, 0xdd, 0xc8, 0x9c, 0xae, 0x0b, 0x00, 0x52,
+ 0x41, 0xe7, 0x69, 0x9f, 0xbc, 0x66, 0x24, 0x42, 0xcb, 0xef, 0x84, 0x72,
+ 0x97, 0xdb, 0x15, 0xcf,
+};
+static const struct drbg_kat_no_reseed kat822_t = {
+ 11, kat822_entropyin, kat822_nonce, kat822_persstr,
+ kat822_addin0, kat822_addin1, kat822_retbits
+};
+static const struct drbg_kat kat822 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat822_t
+};
+
+static const unsigned char kat823_entropyin[] = {
+ 0x94, 0x04, 0x3d, 0x90, 0x09, 0x52, 0xe2, 0x5c, 0x04, 0x25, 0x2f, 0xff,
+ 0xfd, 0x1f, 0xe4, 0xe8, 0xa5, 0x4a, 0x3c, 0x04, 0x7e, 0x3c, 0x27, 0x68,
+ 0xc0, 0x32, 0x4d, 0x1f, 0xe3, 0x24, 0x07, 0xdf,
+};
+static const unsigned char kat823_nonce[] = {0};
+static const unsigned char kat823_persstr[] = {
+ 0xfb, 0x51, 0xb2, 0x6a, 0x7e, 0x7f, 0x87, 0xd8, 0xda, 0x7c, 0x54, 0xab,
+ 0x1f, 0xad, 0x3d, 0x08, 0xc2, 0xc1, 0x31, 0x12, 0xfc, 0x17, 0xb3, 0xf3,
+ 0x1d, 0xda, 0x72, 0xfd, 0x5b, 0x61, 0xeb, 0x01,
+};
+static const unsigned char kat823_addin0[] = {0};
+static const unsigned char kat823_addin1[] = {0};
+static const unsigned char kat823_retbits[] = {
+ 0x7a, 0x27, 0x66, 0x6f, 0x38, 0x46, 0xbb, 0x36, 0xf8, 0x33, 0xea, 0x63,
+ 0x87, 0x23, 0xe4, 0xcf, 0x95, 0xd6, 0x92, 0xe0, 0xa6, 0xa3, 0x7f, 0xac,
+ 0x88, 0xa7, 0xcd, 0x5e, 0x4b, 0xcc, 0x3c, 0xcb, 0x73, 0x5c, 0x0c, 0xfe,
+ 0x40, 0x27, 0x59, 0x72, 0xb2, 0xfd, 0xf5, 0x30, 0x45, 0x9a, 0x2a, 0x63,
+ 0xee, 0x13, 0x84, 0x74, 0x60, 0xee, 0x09, 0xea, 0x63, 0xa8, 0x49, 0x01,
+ 0xbc, 0xa8, 0x74, 0xbe,
+};
+static const struct drbg_kat_no_reseed kat823_t = {
+ 12, kat823_entropyin, kat823_nonce, kat823_persstr,
+ kat823_addin0, kat823_addin1, kat823_retbits
+};
+static const struct drbg_kat kat823 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat823_t
+};
+
+static const unsigned char kat824_entropyin[] = {
+ 0x57, 0x22, 0x04, 0x6e, 0xdf, 0x9b, 0x2b, 0x84, 0xf2, 0x88, 0x6e, 0xa9,
+ 0x30, 0x2a, 0xc3, 0x8a, 0x1f, 0xea, 0xd8, 0xed, 0xf6, 0xb3, 0xfa, 0xae,
+ 0xca, 0x23, 0xff, 0xdd, 0x95, 0x99, 0x74, 0x31,
+};
+static const unsigned char kat824_nonce[] = {0};
+static const unsigned char kat824_persstr[] = {
+ 0x37, 0xda, 0x9a, 0x6f, 0xb1, 0xee, 0xc7, 0x23, 0x41, 0x56, 0xb0, 0xf5,
+ 0x21, 0x0b, 0xa4, 0x7c, 0x3c, 0xa6, 0xc0, 0x3a, 0x34, 0xb6, 0x9d, 0xe3,
+ 0xfe, 0xe1, 0xf5, 0x26, 0x9a, 0x92, 0x9e, 0x1e,
+};
+static const unsigned char kat824_addin0[] = {0};
+static const unsigned char kat824_addin1[] = {0};
+static const unsigned char kat824_retbits[] = {
+ 0x0b, 0x03, 0xd2, 0x15, 0xfc, 0x30, 0xbb, 0xce, 0x8d, 0xc2, 0xaa, 0x3d,
+ 0x49, 0x68, 0x68, 0x2d, 0x58, 0x6f, 0x10, 0x60, 0x07, 0x57, 0xb0, 0x52,
+ 0x93, 0xc2, 0x63, 0xfc, 0xf1, 0x5e, 0xbc, 0x09, 0xbd, 0xec, 0xd2, 0x81,
+ 0x8d, 0x62, 0x6a, 0x43, 0x98, 0x2f, 0x90, 0x09, 0xf2, 0x97, 0x4f, 0xcd,
+ 0x01, 0x21, 0x4f, 0x6b, 0xe6, 0xec, 0xb2, 0xaa, 0x7d, 0x9d, 0x10, 0x16,
+ 0x98, 0xec, 0x08, 0xe9,
+};
+static const struct drbg_kat_no_reseed kat824_t = {
+ 13, kat824_entropyin, kat824_nonce, kat824_persstr,
+ kat824_addin0, kat824_addin1, kat824_retbits
+};
+static const struct drbg_kat kat824 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat824_t
+};
+
+static const unsigned char kat825_entropyin[] = {
+ 0x3a, 0xcd, 0x2c, 0x23, 0xbb, 0xae, 0x4d, 0x02, 0xcc, 0x9e, 0x4b, 0xb5,
+ 0x48, 0xe2, 0x64, 0xf4, 0x3e, 0x35, 0x76, 0x4b, 0x44, 0x65, 0x95, 0xbf,
+ 0xe1, 0xe4, 0x51, 0x65, 0xd4, 0x2c, 0x77, 0x0a,
+};
+static const unsigned char kat825_nonce[] = {0};
+static const unsigned char kat825_persstr[] = {
+ 0xaf, 0xb8, 0x20, 0x3d, 0x4f, 0x79, 0x00, 0xc3, 0x5d, 0x7b, 0xb4, 0x54,
+ 0xa8, 0x3c, 0x5f, 0x26, 0x67, 0xab, 0x50, 0x6a, 0x68, 0xb7, 0x10, 0x01,
+ 0x1c, 0x0b, 0xe6, 0x70, 0x55, 0xdf, 0xc3, 0xeb,
+};
+static const unsigned char kat825_addin0[] = {0};
+static const unsigned char kat825_addin1[] = {0};
+static const unsigned char kat825_retbits[] = {
+ 0x02, 0x66, 0x4c, 0x05, 0x70, 0xc4, 0xd3, 0xc4, 0x68, 0xd1, 0x6c, 0xc7,
+ 0xc8, 0xb9, 0x9d, 0xa7, 0xa7, 0xf1, 0x75, 0x22, 0x49, 0xe3, 0x0f, 0x28,
+ 0x33, 0xb1, 0xb7, 0xcd, 0x32, 0xa4, 0xdf, 0x3c, 0x23, 0x45, 0x46, 0x21,
+ 0xd7, 0x91, 0x19, 0xa9, 0xaa, 0xcc, 0xc5, 0x2d, 0x3f, 0x90, 0x55, 0xdb,
+ 0xde, 0x98, 0xe7, 0x73, 0xc2, 0x6d, 0x4d, 0xac, 0xe0, 0x9c, 0xe9, 0xbe,
+ 0x1f, 0x1f, 0x61, 0xb2,
+};
+static const struct drbg_kat_no_reseed kat825_t = {
+ 14, kat825_entropyin, kat825_nonce, kat825_persstr,
+ kat825_addin0, kat825_addin1, kat825_retbits
+};
+static const struct drbg_kat kat825 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat825_t
+};
+
+static const unsigned char kat826_entropyin[] = {
+ 0xc1, 0x29, 0xc2, 0x73, 0x20, 0x03, 0xbb, 0xf1, 0xd1, 0xde, 0xc2, 0x44,
+ 0xa9, 0x33, 0xcd, 0x04, 0xcb, 0x47, 0x19, 0x9b, 0xbc, 0xe9, 0x8f, 0xe0,
+ 0x80, 0xa1, 0xbe, 0x88, 0x0a, 0xfb, 0x21, 0x55,
+};
+static const unsigned char kat826_nonce[] = {0};
+static const unsigned char kat826_persstr[] = {
+ 0x64, 0xe2, 0xb9, 0xac, 0x5c, 0x20, 0x64, 0x2e, 0x3e, 0x3e, 0xe4, 0x54,
+ 0xb7, 0x46, 0x38, 0x61, 0xa7, 0xe9, 0x3e, 0x0d, 0xd1, 0xbb, 0xf8, 0xc4,
+ 0xa0, 0xc2, 0x8a, 0x6c, 0xb3, 0xd8, 0x11, 0xba,
+};
+static const unsigned char kat826_addin0[] = {
+ 0xf9, 0x4f, 0x09, 0x75, 0x76, 0x0d, 0x52, 0xf4, 0x7b, 0xd4, 0x90, 0xd1,
+ 0x62, 0x3a, 0x99, 0x07, 0xe4, 0xdf, 0x70, 0x1f, 0x60, 0x1c, 0xf2, 0xd5,
+ 0x73, 0xab, 0xa8, 0x03, 0xa2, 0x9d, 0x2b, 0x51,
+};
+static const unsigned char kat826_addin1[] = {
+ 0x6f, 0x99, 0x72, 0x0b, 0x18, 0x6e, 0x20, 0x28, 0xa5, 0xfc, 0xc5, 0x86,
+ 0xb3, 0xea, 0x51, 0x84, 0x58, 0xe4, 0x37, 0xff, 0x44, 0x9c, 0x7c, 0x5a,
+ 0x31, 0x8e, 0x6d, 0x13, 0xf7, 0x5b, 0x5d, 0xb7,
+};
+static const unsigned char kat826_retbits[] = {
+ 0x7b, 0x8b, 0x33, 0x78, 0xb9, 0x03, 0x1a, 0xb3, 0x10, 0x1c, 0xec, 0x8a,
+ 0xf5, 0xb8, 0xba, 0x5a, 0x9c, 0xa2, 0xa9, 0xaf, 0x41, 0x43, 0x2c, 0xd5,
+ 0xf2, 0xe5, 0xe1, 0x97, 0x16, 0x14, 0x0b, 0xb2, 0x19, 0xed, 0x7f, 0x4b,
+ 0xa8, 0x8f, 0xc3, 0x7b, 0x2d, 0x7e, 0x14, 0x60, 0x37, 0xd2, 0xca, 0xc1,
+ 0x12, 0x8f, 0xfe, 0x14, 0x13, 0x1c, 0x86, 0x91, 0xe5, 0x81, 0x06, 0x7a,
+ 0x29, 0xca, 0xcf, 0x80,
+};
+static const struct drbg_kat_no_reseed kat826_t = {
+ 0, kat826_entropyin, kat826_nonce, kat826_persstr,
+ kat826_addin0, kat826_addin1, kat826_retbits
+};
+static const struct drbg_kat kat826 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat826_t
+};
+
+static const unsigned char kat827_entropyin[] = {
+ 0x76, 0x67, 0x64, 0x36, 0x70, 0x25, 0x4b, 0x35, 0x30, 0xe8, 0x0a, 0x17,
+ 0xb1, 0x6b, 0x22, 0x40, 0x6e, 0x84, 0xef, 0xa6, 0xa4, 0xb5, 0xce, 0xef,
+ 0x3e, 0xbc, 0x87, 0x74, 0x95, 0xfc, 0x60, 0x48,
+};
+static const unsigned char kat827_nonce[] = {0};
+static const unsigned char kat827_persstr[] = {
+ 0x40, 0xb9, 0x29, 0x69, 0x95, 0x3a, 0xcd, 0xe7, 0x56, 0x74, 0x70, 0x05,
+ 0x11, 0x7e, 0x46, 0xef, 0xf6, 0x89, 0x3d, 0x71, 0x32, 0xa8, 0x31, 0x1f,
+ 0xfb, 0x10, 0x62, 0x28, 0x03, 0x67, 0x32, 0x6b,
+};
+static const unsigned char kat827_addin0[] = {
+ 0x79, 0x7a, 0x02, 0xff, 0xbe, 0x8f, 0xf2, 0xc9, 0x4e, 0xd0, 0xe5, 0xd3,
+ 0x9e, 0xbd, 0xc7, 0x84, 0x7a, 0xda, 0xa7, 0x62, 0xa8, 0x82, 0x38, 0x24,
+ 0x2e, 0xd8, 0xf7, 0x1f, 0x56, 0x35, 0xb1, 0x94,
+};
+static const unsigned char kat827_addin1[] = {
+ 0xd6, 0x17, 0xf0, 0xf0, 0xe6, 0x09, 0xe9, 0x0d, 0x81, 0x41, 0x92, 0xba,
+ 0x2e, 0x52, 0x14, 0x29, 0x3d, 0x48, 0x54, 0x02, 0xcd, 0xf9, 0xf7, 0x89,
+ 0xcc, 0x78, 0xb0, 0x5e, 0x8c, 0x37, 0x4f, 0x18,
+};
+static const unsigned char kat827_retbits[] = {
+ 0xe8, 0xd6, 0xf8, 0x9d, 0xca, 0x98, 0x25, 0xae, 0xd8, 0x92, 0x7b, 0x43,
+ 0x18, 0x74, 0x92, 0xa9, 0x8c, 0xa8, 0x64, 0x8d, 0xb3, 0x0f, 0x0a, 0xc7,
+ 0x09, 0x55, 0x6d, 0x40, 0x1a, 0x8a, 0xc2, 0xb9, 0x59, 0xc8, 0x13, 0x50,
+ 0xfc, 0x64, 0x33, 0x2c, 0x4c, 0x0d, 0xeb, 0x55, 0x9a, 0x28, 0x6a, 0x72,
+ 0xe6, 0x5d, 0xbb, 0x46, 0x2b, 0xd8, 0x72, 0xf9, 0xb2, 0x8c, 0x07, 0x28,
+ 0xf3, 0x53, 0xdc, 0x10,
+};
+static const struct drbg_kat_no_reseed kat827_t = {
+ 1, kat827_entropyin, kat827_nonce, kat827_persstr,
+ kat827_addin0, kat827_addin1, kat827_retbits
+};
+static const struct drbg_kat kat827 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat827_t
+};
+
+static const unsigned char kat828_entropyin[] = {
+ 0x74, 0x98, 0x68, 0xea, 0xec, 0xe2, 0x94, 0xa1, 0xec, 0x7e, 0xc9, 0xe3,
+ 0xf3, 0x93, 0xdf, 0xed, 0xaa, 0xab, 0x2f, 0xf0, 0x4e, 0xce, 0x79, 0xe5,
+ 0x04, 0xf2, 0x7e, 0x2e, 0x58, 0x67, 0x9a, 0xfa,
+};
+static const unsigned char kat828_nonce[] = {0};
+static const unsigned char kat828_persstr[] = {
+ 0x9c, 0x9b, 0x45, 0xe3, 0x91, 0x93, 0x74, 0x7c, 0xba, 0x32, 0xfe, 0x67,
+ 0x69, 0x2c, 0x0a, 0xd8, 0xdf, 0xcf, 0x75, 0xf6, 0xd8, 0x8a, 0xa7, 0x9a,
+ 0x2d, 0xcb, 0xa0, 0x2c, 0xf1, 0xbc, 0x0f, 0xc8,
+};
+static const unsigned char kat828_addin0[] = {
+ 0x27, 0x73, 0x16, 0xb3, 0x95, 0x92, 0x03, 0x47, 0xc6, 0xcc, 0xc4, 0x1e,
+ 0x60, 0xba, 0x38, 0x0f, 0x36, 0x72, 0xac, 0x4c, 0xca, 0x3c, 0x25, 0x1b,
+ 0xc0, 0x6a, 0x39, 0x36, 0xc3, 0x62, 0x01, 0xa6,
+};
+static const unsigned char kat828_addin1[] = {
+ 0xe5, 0xd3, 0xc8, 0x15, 0x58, 0x52, 0x79, 0x91, 0x33, 0xe4, 0xc0, 0xf8,
+ 0xfe, 0xef, 0x81, 0x86, 0x17, 0xd5, 0xe6, 0x14, 0xfe, 0x5b, 0x24, 0xeb,
+ 0x68, 0x02, 0x3c, 0x92, 0x97, 0xe8, 0xb5, 0x2c,
+};
+static const unsigned char kat828_retbits[] = {
+ 0x27, 0xb9, 0x25, 0xbf, 0xa5, 0x56, 0xf7, 0x89, 0xe9, 0xa3, 0x10, 0x32,
+ 0x8d, 0x28, 0x52, 0x60, 0x38, 0x8f, 0x4c, 0x3a, 0x33, 0x89, 0x88, 0xe9,
+ 0x60, 0x44, 0x6e, 0x5c, 0xd7, 0xfd, 0x19, 0xe8, 0x83, 0x1b, 0x80, 0xa8,
+ 0x29, 0x73, 0x14, 0x97, 0xcc, 0xdd, 0x1a, 0x74, 0xf9, 0x36, 0xef, 0xbf,
+ 0x4c, 0x80, 0x03, 0x49, 0xb4, 0xfb, 0x9a, 0x0e, 0xf2, 0x91, 0xe1, 0x40,
+ 0x02, 0x82, 0x5c, 0x65,
+};
+static const struct drbg_kat_no_reseed kat828_t = {
+ 2, kat828_entropyin, kat828_nonce, kat828_persstr,
+ kat828_addin0, kat828_addin1, kat828_retbits
+};
+static const struct drbg_kat kat828 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat828_t
+};
+
+static const unsigned char kat829_entropyin[] = {
+ 0x94, 0xab, 0xdc, 0x4c, 0x57, 0x82, 0x1e, 0x4c, 0x1c, 0x9a, 0x17, 0x75,
+ 0xc1, 0xe3, 0xd9, 0xdc, 0xf8, 0xea, 0x9b, 0x9b, 0x2f, 0x60, 0xd6, 0x81,
+ 0x87, 0xfd, 0x7e, 0xc6, 0xdf, 0x8d, 0x48, 0x8e,
+};
+static const unsigned char kat829_nonce[] = {0};
+static const unsigned char kat829_persstr[] = {
+ 0x88, 0xe1, 0x19, 0x6a, 0xf3, 0x00, 0xad, 0xf9, 0x53, 0x20, 0x3e, 0x5a,
+ 0x69, 0x9d, 0x0d, 0x38, 0xb3, 0xd4, 0x13, 0x54, 0x2f, 0x41, 0x4e, 0x6e,
+ 0xfb, 0x31, 0x8d, 0x5a, 0x50, 0x74, 0xc8, 0xbe,
+};
+static const unsigned char kat829_addin0[] = {
+ 0x74, 0xdc, 0x1a, 0xa3, 0xb2, 0x17, 0x11, 0x33, 0xff, 0x3e, 0xca, 0x69,
+ 0x10, 0x69, 0xb0, 0x61, 0x68, 0x06, 0x61, 0xbd, 0x5e, 0x50, 0x33, 0x92,
+ 0x07, 0xe5, 0xab, 0x3d, 0x85, 0xed, 0x35, 0xdb,
+};
+static const unsigned char kat829_addin1[] = {
+ 0x7a, 0xe3, 0x37, 0x79, 0xef, 0xdb, 0xf5, 0x30, 0xdf, 0xf9, 0x75, 0x82,
+ 0x96, 0x2d, 0xe9, 0x37, 0xac, 0xc7, 0x41, 0x45, 0x7a, 0xc6, 0x8f, 0x0e,
+ 0xac, 0xbb, 0x31, 0xa9, 0xd2, 0x25, 0xb4, 0x7f,
+};
+static const unsigned char kat829_retbits[] = {
+ 0xa6, 0x13, 0x82, 0x3c, 0x56, 0x05, 0x7c, 0xd0, 0x01, 0xda, 0x13, 0x06,
+ 0x4e, 0xe1, 0x9f, 0xc1, 0xeb, 0x3a, 0x1e, 0x39, 0x68, 0x0e, 0x5c, 0x95,
+ 0x7a, 0x6a, 0xe4, 0x4d, 0x73, 0xba, 0xd9, 0xc0, 0xf0, 0xb9, 0xc0, 0x49,
+ 0xe8, 0xf1, 0xd3, 0xde, 0x5f, 0x5b, 0x9a, 0xf9, 0x8e, 0x3c, 0x0e, 0x11,
+ 0xae, 0x27, 0xec, 0x09, 0xc1, 0xc6, 0x20, 0x33, 0x13, 0x99, 0xd3, 0x08,
+ 0xdf, 0x89, 0x85, 0x62,
+};
+static const struct drbg_kat_no_reseed kat829_t = {
+ 3, kat829_entropyin, kat829_nonce, kat829_persstr,
+ kat829_addin0, kat829_addin1, kat829_retbits
+};
+static const struct drbg_kat kat829 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat829_t
+};
+
+static const unsigned char kat830_entropyin[] = {
+ 0x4b, 0x5f, 0xea, 0xc2, 0x4a, 0xc3, 0x5f, 0x40, 0x03, 0xf7, 0xfe, 0x15,
+ 0x9f, 0xe6, 0x28, 0x1e, 0x8f, 0x65, 0x52, 0xbf, 0xfc, 0xbe, 0xdb, 0x5f,
+ 0xf0, 0xf6, 0x1d, 0x82, 0x2b, 0x5f, 0x06, 0x0a,
+};
+static const unsigned char kat830_nonce[] = {0};
+static const unsigned char kat830_persstr[] = {
+ 0x67, 0x64, 0x58, 0xba, 0x8e, 0x2a, 0xb7, 0x1a, 0x3d, 0x7a, 0x14, 0x28,
+ 0xfe, 0x50, 0xe3, 0x08, 0x1e, 0x01, 0x8e, 0x4c, 0x2c, 0x73, 0xe1, 0xd7,
+ 0xc0, 0x36, 0xa8, 0x23, 0x48, 0x6a, 0x58, 0x10,
+};
+static const unsigned char kat830_addin0[] = {
+ 0x95, 0xba, 0x78, 0x62, 0x3e, 0x5d, 0x36, 0xfd, 0x64, 0xdd, 0xad, 0xe6,
+ 0x6a, 0x65, 0x10, 0x08, 0xe9, 0xb5, 0x7c, 0x84, 0x76, 0x02, 0xaf, 0x7f,
+ 0x71, 0xbc, 0x4d, 0x87, 0x7b, 0xab, 0x62, 0x0b,
+};
+static const unsigned char kat830_addin1[] = {
+ 0xf5, 0xf9, 0xdc, 0x93, 0x2d, 0x69, 0xce, 0x35, 0x1c, 0x90, 0x83, 0x68,
+ 0xd9, 0xc3, 0xce, 0xf5, 0x23, 0x1d, 0xc2, 0x41, 0x7b, 0x53, 0x14, 0xe4,
+ 0xeb, 0x80, 0xc4, 0xaf, 0x60, 0xbe, 0x05, 0x0f,
+};
+static const unsigned char kat830_retbits[] = {
+ 0xd8, 0xd7, 0x95, 0x0a, 0xd8, 0xb8, 0xf3, 0x2a, 0x0c, 0x20, 0x9c, 0x8e,
+ 0x8e, 0xd5, 0xa1, 0x67, 0x24, 0xe2, 0x68, 0xdb, 0xd5, 0xbf, 0x8d, 0xf8,
+ 0xbc, 0xc1, 0x39, 0x6a, 0xfa, 0x11, 0xe2, 0x79, 0xb0, 0xc2, 0xe0, 0x1e,
+ 0x12, 0x28, 0xd4, 0x7c, 0xa0, 0x42, 0x03, 0x8b, 0xd5, 0xf5, 0xc1, 0x59,
+ 0xd1, 0x44, 0x19, 0x84, 0x62, 0xf7, 0x52, 0x72, 0x86, 0xba, 0xbe, 0x72,
+ 0xcf, 0xfb, 0xa9, 0x9a,
+};
+static const struct drbg_kat_no_reseed kat830_t = {
+ 4, kat830_entropyin, kat830_nonce, kat830_persstr,
+ kat830_addin0, kat830_addin1, kat830_retbits
+};
+static const struct drbg_kat kat830 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat830_t
+};
+
+static const unsigned char kat831_entropyin[] = {
+ 0x66, 0x89, 0xdc, 0xfc, 0xd6, 0xff, 0xcc, 0xa2, 0x74, 0x44, 0xce, 0x9f,
+ 0xef, 0x0e, 0x0a, 0x11, 0x90, 0x25, 0xba, 0x99, 0xbf, 0x52, 0x9a, 0xcd,
+ 0xf2, 0x16, 0xf4, 0x69, 0x35, 0x53, 0x0e, 0xee,
+};
+static const unsigned char kat831_nonce[] = {0};
+static const unsigned char kat831_persstr[] = {
+ 0x7e, 0xc6, 0xa1, 0x95, 0xc2, 0xb1, 0x44, 0x92, 0x42, 0xbc, 0xc9, 0x18,
+ 0xf5, 0xdb, 0x25, 0x62, 0x5e, 0x59, 0xe6, 0xae, 0x06, 0x37, 0x23, 0x92,
+ 0xe5, 0x38, 0xf7, 0xfd, 0xd2, 0x10, 0xe2, 0xaf,
+};
+static const unsigned char kat831_addin0[] = {
+ 0xb2, 0x60, 0x33, 0x74, 0x62, 0x20, 0x97, 0x3d, 0x84, 0x21, 0x93, 0x34,
+ 0x0d, 0xb0, 0xe3, 0x00, 0xce, 0x0e, 0xbf, 0xf3, 0x6a, 0x66, 0x09, 0x9d,
+ 0x68, 0x28, 0xbf, 0x91, 0xba, 0x5d, 0x2d, 0x4e,
+};
+static const unsigned char kat831_addin1[] = {
+ 0x9a, 0x54, 0xf8, 0xf8, 0xaf, 0x43, 0x02, 0x06, 0x10, 0x4b, 0xfc, 0xf2,
+ 0xc0, 0x3a, 0x3c, 0xf6, 0xda, 0x74, 0xca, 0x57, 0x1f, 0xf4, 0xf9, 0xaf,
+ 0xac, 0x41, 0x5e, 0x86, 0xe9, 0x5e, 0xf5, 0xa9,
+};
+static const unsigned char kat831_retbits[] = {
+ 0xca, 0xaa, 0x27, 0x0c, 0x0d, 0xd4, 0x22, 0xaf, 0x2f, 0x7d, 0x7d, 0xbe,
+ 0x06, 0x9a, 0xb4, 0x58, 0x99, 0x5d, 0x00, 0xf0, 0xa9, 0x9f, 0x43, 0xe2,
+ 0xb1, 0x09, 0xd4, 0xd9, 0xa6, 0x8f, 0x39, 0x78, 0x2a, 0x2b, 0x6c, 0xbb,
+ 0x3f, 0xe8, 0xcb, 0x9b, 0x38, 0xde, 0xdc, 0xb5, 0x6c, 0x0a, 0x9a, 0x4f,
+ 0x71, 0x52, 0xf5, 0xa0, 0x59, 0xee, 0x40, 0x5d, 0x25, 0x48, 0xea, 0x3b,
+ 0xe4, 0x42, 0xce, 0x56,
+};
+static const struct drbg_kat_no_reseed kat831_t = {
+ 5, kat831_entropyin, kat831_nonce, kat831_persstr,
+ kat831_addin0, kat831_addin1, kat831_retbits
+};
+static const struct drbg_kat kat831 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat831_t
+};
+
+static const unsigned char kat832_entropyin[] = {
+ 0xa5, 0xad, 0xfa, 0x74, 0xd1, 0x7a, 0x39, 0xc6, 0xab, 0x28, 0xa6, 0xd8,
+ 0xef, 0x36, 0x4d, 0x5e, 0x2f, 0x95, 0x81, 0xbc, 0xbe, 0xa7, 0x1b, 0x0b,
+ 0x04, 0x8f, 0x1f, 0x1c, 0x7f, 0xea, 0x3c, 0x24,
+};
+static const unsigned char kat832_nonce[] = {0};
+static const unsigned char kat832_persstr[] = {
+ 0x90, 0xa9, 0x2c, 0x76, 0xdf, 0xd9, 0x52, 0xaf, 0x62, 0x96, 0xe0, 0x15,
+ 0xb6, 0x59, 0x2c, 0xc0, 0x56, 0x33, 0xb6, 0xe2, 0x8f, 0x3f, 0x5e, 0xe6,
+ 0x0f, 0xad, 0x92, 0x7d, 0x67, 0xaf, 0x81, 0xf8,
+};
+static const unsigned char kat832_addin0[] = {
+ 0x8f, 0x76, 0xad, 0x33, 0x0e, 0x11, 0x8c, 0xb3, 0x87, 0xb5, 0x46, 0x78,
+ 0x49, 0x9a, 0x37, 0xf6, 0x03, 0x21, 0x2b, 0xae, 0xac, 0x25, 0x57, 0xd2,
+ 0x2d, 0x5a, 0x4e, 0xbf, 0xcd, 0x31, 0xcd, 0x2b,
+};
+static const unsigned char kat832_addin1[] = {
+ 0xc3, 0x7f, 0x90, 0x3c, 0x99, 0x16, 0x6d, 0xf3, 0x0c, 0x5a, 0x02, 0xf2,
+ 0x62, 0x10, 0x8e, 0x6f, 0xd6, 0xec, 0x3d, 0x2a, 0xf7, 0xa9, 0xdc, 0x66,
+ 0x22, 0xc0, 0xe9, 0x3c, 0x97, 0x24, 0xd3, 0xff,
+};
+static const unsigned char kat832_retbits[] = {
+ 0x1a, 0xce, 0xc7, 0x4b, 0x9b, 0x96, 0x10, 0x87, 0xcd, 0x8d, 0xe8, 0x5c,
+ 0x96, 0xeb, 0x74, 0x34, 0x6d, 0xab, 0x26, 0x09, 0x93, 0x89, 0xc9, 0xdf,
+ 0x24, 0x25, 0x0c, 0x32, 0x1f, 0x0d, 0x87, 0xf5, 0x2c, 0x55, 0x78, 0x67,
+ 0xa6, 0x00, 0xd9, 0x31, 0x20, 0x89, 0xe7, 0x8d, 0x96, 0x53, 0xd4, 0xd0,
+ 0x77, 0xf3, 0xad, 0x59, 0xca, 0x0e, 0x3f, 0xaa, 0xc6, 0x17, 0x27, 0x76,
+ 0x77, 0xcf, 0x9a, 0xe5,
+};
+static const struct drbg_kat_no_reseed kat832_t = {
+ 6, kat832_entropyin, kat832_nonce, kat832_persstr,
+ kat832_addin0, kat832_addin1, kat832_retbits
+};
+static const struct drbg_kat kat832 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat832_t
+};
+
+static const unsigned char kat833_entropyin[] = {
+ 0x94, 0x37, 0x40, 0x42, 0x39, 0x16, 0x40, 0x16, 0x45, 0x79, 0x90, 0x08,
+ 0x55, 0x62, 0xca, 0x14, 0x86, 0x5c, 0x7e, 0x8b, 0x9f, 0xda, 0xb3, 0x8b,
+ 0xe9, 0x31, 0x01, 0xfd, 0x57, 0x86, 0x68, 0xd4,
+};
+static const unsigned char kat833_nonce[] = {0};
+static const unsigned char kat833_persstr[] = {
+ 0xa3, 0x8b, 0xe2, 0xf1, 0x73, 0x8b, 0x5f, 0x08, 0xe7, 0x94, 0x69, 0x80,
+ 0xb2, 0x08, 0xf4, 0xe3, 0xc0, 0xcb, 0xcc, 0xef, 0x60, 0x89, 0x8f, 0x57,
+ 0xab, 0x5b, 0xa8, 0xb5, 0x4c, 0xf3, 0xc1, 0x1c,
+};
+static const unsigned char kat833_addin0[] = {
+ 0x56, 0xb3, 0xb5, 0xf0, 0x53, 0xb8, 0xb2, 0xbc, 0x58, 0x26, 0x78, 0x0d,
+ 0x73, 0x01, 0xe2, 0xc0, 0x46, 0x21, 0x83, 0x92, 0xcd, 0x82, 0xb6, 0x2e,
+ 0xc1, 0x6f, 0x37, 0xbc, 0x87, 0xb6, 0x51, 0xea,
+};
+static const unsigned char kat833_addin1[] = {
+ 0xf2, 0x2c, 0xfd, 0x51, 0x88, 0x64, 0x66, 0x0a, 0x99, 0xdc, 0xb0, 0x6e,
+ 0xdd, 0x4a, 0x15, 0xea, 0xe3, 0x07, 0x4e, 0x7b, 0xb1, 0x87, 0xaa, 0xd5,
+ 0x87, 0xfc, 0x57, 0x0f, 0x54, 0xed, 0xa5, 0x1e,
+};
+static const unsigned char kat833_retbits[] = {
+ 0xc8, 0x61, 0x2d, 0x5f, 0xcb, 0x05, 0x3a, 0xe3, 0x1a, 0x68, 0x84, 0x24,
+ 0x87, 0x09, 0xe2, 0xfb, 0x2e, 0x9b, 0x2d, 0x9f, 0xc1, 0x8c, 0xce, 0x82,
+ 0xcd, 0xe9, 0xf9, 0x41, 0xa0, 0x64, 0xba, 0xab, 0xa2, 0x19, 0x70, 0x01,
+ 0x91, 0x78, 0xa6, 0x2d, 0x17, 0xa4, 0x19, 0x8d, 0x26, 0xc3, 0x92, 0xc0,
+ 0x22, 0xc3, 0x2c, 0xe4, 0x7d, 0x74, 0x8c, 0x5b, 0x29, 0xb6, 0xf0, 0x32,
+ 0x80, 0x34, 0x18, 0xaa,
+};
+static const struct drbg_kat_no_reseed kat833_t = {
+ 7, kat833_entropyin, kat833_nonce, kat833_persstr,
+ kat833_addin0, kat833_addin1, kat833_retbits
+};
+static const struct drbg_kat kat833 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat833_t
+};
+
+static const unsigned char kat834_entropyin[] = {
+ 0x37, 0x22, 0x24, 0xba, 0x26, 0x89, 0x40, 0x2f, 0x22, 0x2f, 0x67, 0xda,
+ 0x94, 0xb4, 0xc2, 0x96, 0x70, 0x86, 0x7c, 0x5c, 0xb2, 0x16, 0xb5, 0x1e,
+ 0xbf, 0xdc, 0xa4, 0xcf, 0x55, 0x4b, 0x0f, 0x8a,
+};
+static const unsigned char kat834_nonce[] = {0};
+static const unsigned char kat834_persstr[] = {
+ 0x57, 0x94, 0x48, 0x44, 0xde, 0xe0, 0x20, 0x16, 0x85, 0x4c, 0xf8, 0x44,
+ 0x86, 0x35, 0x7e, 0x34, 0x70, 0x06, 0x91, 0x96, 0xe4, 0x28, 0xd8, 0x17,
+ 0x8c, 0xa2, 0x22, 0x5a, 0xb7, 0xdb, 0xcb, 0x95,
+};
+static const unsigned char kat834_addin0[] = {
+ 0x1e, 0x6f, 0x7f, 0xdf, 0x0b, 0x6c, 0xa8, 0x78, 0x12, 0xe3, 0x56, 0x6a,
+ 0xd3, 0x38, 0x72, 0x28, 0xe4, 0xb2, 0xc4, 0x02, 0xa6, 0x18, 0xf0, 0x26,
+ 0xcd, 0x84, 0xa1, 0x40, 0x34, 0xad, 0xa0, 0xab,
+};
+static const unsigned char kat834_addin1[] = {
+ 0x38, 0x66, 0xb9, 0x14, 0xe9, 0x75, 0xb2, 0x5c, 0xe9, 0xfd, 0xb0, 0xb5,
+ 0xd3, 0xcf, 0x74, 0xcb, 0xa1, 0x96, 0xe2, 0x6e, 0x67, 0xdf, 0x11, 0x02,
+ 0x7b, 0xc1, 0xb4, 0x48, 0x90, 0xdb, 0xc7, 0x6e,
+};
+static const unsigned char kat834_retbits[] = {
+ 0xa2, 0xa1, 0x82, 0x94, 0x4d, 0x52, 0x18, 0xb1, 0x98, 0x25, 0x9b, 0xa9,
+ 0x14, 0xbf, 0x16, 0x15, 0x14, 0x4f, 0x7e, 0x64, 0x76, 0xf2, 0x36, 0x29,
+ 0x08, 0x15, 0x00, 0x6c, 0xd2, 0x7d, 0xf3, 0x11, 0x47, 0xe1, 0xd0, 0xa9,
+ 0xc3, 0xf8, 0xa2, 0x53, 0x8f, 0xc1, 0xfe, 0xf5, 0xcf, 0xa6, 0x7a, 0x3c,
+ 0xd6, 0x89, 0xd5, 0x66, 0xb7, 0xdd, 0xd0, 0x6b, 0x3b, 0x20, 0x55, 0xb4,
+ 0x0d, 0xca, 0xb6, 0x80,
+};
+static const struct drbg_kat_no_reseed kat834_t = {
+ 8, kat834_entropyin, kat834_nonce, kat834_persstr,
+ kat834_addin0, kat834_addin1, kat834_retbits
+};
+static const struct drbg_kat kat834 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat834_t
+};
+
+static const unsigned char kat835_entropyin[] = {
+ 0xef, 0x5f, 0xd7, 0x74, 0x09, 0xee, 0x7c, 0x11, 0x34, 0xe7, 0xbf, 0x8c,
+ 0x43, 0x2b, 0x72, 0x65, 0x96, 0x57, 0xc2, 0xff, 0x1c, 0x0e, 0x4d, 0xaa,
+ 0xc9, 0x69, 0xac, 0xcf, 0x93, 0xec, 0x06, 0x87,
+};
+static const unsigned char kat835_nonce[] = {0};
+static const unsigned char kat835_persstr[] = {
+ 0x14, 0x6d, 0x6e, 0x37, 0x11, 0x86, 0x14, 0xd7, 0x31, 0x02, 0xfe, 0xb2,
+ 0xd6, 0x60, 0x14, 0x50, 0x4f, 0xfe, 0xcc, 0x0f, 0x02, 0x7b, 0x5b, 0xe6,
+ 0x9e, 0x89, 0x45, 0xe6, 0xf3, 0x09, 0xec, 0x5b,
+};
+static const unsigned char kat835_addin0[] = {
+ 0xf2, 0xea, 0xe6, 0x6e, 0x9c, 0x69, 0xcc, 0xa6, 0xad, 0x87, 0xb4, 0xfb,
+ 0x20, 0xd1, 0x80, 0x2b, 0xfd, 0x9b, 0x8f, 0xd8, 0xe9, 0xe6, 0x9a, 0xba,
+ 0x30, 0x2c, 0x2c, 0x3e, 0x80, 0x5b, 0x91, 0x17,
+};
+static const unsigned char kat835_addin1[] = {
+ 0x93, 0x81, 0xfc, 0xc0, 0x6d, 0xf1, 0x80, 0x81, 0x75, 0x67, 0x26, 0x56,
+ 0x04, 0xd1, 0x30, 0x9c, 0xa7, 0xa5, 0xce, 0x51, 0x14, 0x04, 0xc1, 0x5c,
+ 0xfd, 0xb2, 0xc5, 0x92, 0x0b, 0xfc, 0x44, 0x40,
+};
+static const unsigned char kat835_retbits[] = {
+ 0x74, 0x0f, 0x8e, 0x34, 0x65, 0x57, 0xf3, 0xed, 0x8f, 0x99, 0xe3, 0x3e,
+ 0xe1, 0x42, 0x6e, 0x80, 0x95, 0xb4, 0x3b, 0x88, 0x5d, 0x3c, 0xf8, 0x63,
+ 0x7d, 0x0d, 0x41, 0x94, 0xab, 0x2c, 0x8d, 0x37, 0x4d, 0xa6, 0xd0, 0x01,
+ 0x41, 0xa3, 0x99, 0x57, 0xec, 0x6c, 0x9f, 0xbe, 0xa1, 0x3c, 0xf5, 0xc1,
+ 0xe6, 0x29, 0x66, 0x44, 0xc6, 0xc3, 0x64, 0x9e, 0xd8, 0x5a, 0xed, 0x5d,
+ 0xf8, 0x4e, 0x98, 0x62,
+};
+static const struct drbg_kat_no_reseed kat835_t = {
+ 9, kat835_entropyin, kat835_nonce, kat835_persstr,
+ kat835_addin0, kat835_addin1, kat835_retbits
+};
+static const struct drbg_kat kat835 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat835_t
+};
+
+static const unsigned char kat836_entropyin[] = {
+ 0x11, 0x3b, 0xaf, 0xed, 0xbd, 0x62, 0xa9, 0x65, 0x47, 0xdf, 0xed, 0xc5,
+ 0x08, 0xa9, 0xc8, 0x5f, 0x58, 0x43, 0xf2, 0xa8, 0x13, 0xc3, 0x3b, 0xc8,
+ 0x03, 0xd5, 0xcf, 0xb6, 0x2c, 0x97, 0x19, 0x66,
+};
+static const unsigned char kat836_nonce[] = {0};
+static const unsigned char kat836_persstr[] = {
+ 0xb1, 0x70, 0x84, 0xec, 0xfd, 0x6e, 0x3f, 0x41, 0x1b, 0x82, 0x37, 0x9d,
+ 0x30, 0x01, 0xaf, 0x3a, 0x17, 0xde, 0xbd, 0xea, 0xb5, 0xfe, 0x2d, 0x01,
+ 0x07, 0x90, 0x28, 0x60, 0x8e, 0xbf, 0x60, 0x25,
+};
+static const unsigned char kat836_addin0[] = {
+ 0x65, 0xd4, 0x03, 0x75, 0x48, 0x1c, 0x48, 0xb9, 0x90, 0x9c, 0x84, 0x1e,
+ 0x55, 0x0e, 0x82, 0xf4, 0x8d, 0x5d, 0x46, 0x68, 0xd6, 0xf6, 0x6f, 0x8b,
+ 0x59, 0x80, 0xa8, 0xed, 0x23, 0x33, 0x00, 0x8d,
+};
+static const unsigned char kat836_addin1[] = {
+ 0x69, 0x1f, 0xc8, 0x26, 0x05, 0x64, 0x99, 0xd3, 0x77, 0x1e, 0x89, 0x9b,
+ 0x24, 0xcd, 0x2e, 0xc8, 0x6f, 0xd7, 0x6f, 0x46, 0xc9, 0xd2, 0xe7, 0x3c,
+ 0xa1, 0xb5, 0x49, 0xf2, 0x89, 0xb7, 0xf7, 0x25,
+};
+static const unsigned char kat836_retbits[] = {
+ 0x87, 0x8b, 0x16, 0x0b, 0x83, 0x20, 0x0f, 0xdd, 0x35, 0x78, 0x34, 0xa4,
+ 0xef, 0xa7, 0xeb, 0x2d, 0xae, 0x7f, 0xc8, 0x6a, 0x48, 0x72, 0xe6, 0x0f,
+ 0x68, 0x2c, 0xf5, 0xf7, 0x32, 0xfb, 0xf4, 0xb5, 0xeb, 0xa7, 0xf5, 0x5c,
+ 0xc9, 0x66, 0xe0, 0x19, 0x96, 0x6f, 0x5d, 0x64, 0xf9, 0xfc, 0x34, 0x47,
+ 0xb9, 0xd8, 0xd2, 0xc2, 0xea, 0x6c, 0xa2, 0x1f, 0xd4, 0x4b, 0x19, 0x03,
+ 0xb4, 0x57, 0xea, 0xba,
+};
+static const struct drbg_kat_no_reseed kat836_t = {
+ 10, kat836_entropyin, kat836_nonce, kat836_persstr,
+ kat836_addin0, kat836_addin1, kat836_retbits
+};
+static const struct drbg_kat kat836 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat836_t
+};
+
+static const unsigned char kat837_entropyin[] = {
+ 0xa0, 0xd2, 0xb9, 0xb4, 0x76, 0x07, 0xd4, 0x56, 0x4a, 0xf2, 0xa4, 0x43,
+ 0x06, 0x7d, 0x6f, 0x18, 0xc6, 0x00, 0x15, 0x54, 0x85, 0x02, 0x31, 0x21,
+ 0x02, 0x89, 0x21, 0x39, 0x6b, 0xb1, 0x01, 0x28,
+};
+static const unsigned char kat837_nonce[] = {0};
+static const unsigned char kat837_persstr[] = {
+ 0xf6, 0x63, 0x79, 0x9e, 0x37, 0x99, 0x5a, 0xb3, 0x22, 0x0e, 0xfd, 0xe0,
+ 0x2d, 0xe4, 0x33, 0xed, 0x4c, 0xcc, 0x56, 0xc5, 0x07, 0x5c, 0x9a, 0x5e,
+ 0xe6, 0xc4, 0xe9, 0xc5, 0x5f, 0xe9, 0xd3, 0xbc,
+};
+static const unsigned char kat837_addin0[] = {
+ 0x86, 0x90, 0x12, 0x49, 0x7a, 0x06, 0x07, 0xf9, 0x20, 0x56, 0x92, 0x07,
+ 0x63, 0xee, 0x4f, 0x40, 0x46, 0x1f, 0x30, 0x03, 0xa2, 0xea, 0x67, 0xec,
+ 0x0c, 0x26, 0xbb, 0xd9, 0x55, 0xb4, 0x01, 0xde,
+};
+static const unsigned char kat837_addin1[] = {
+ 0x1b, 0x23, 0x17, 0x0f, 0x86, 0xa0, 0xdb, 0xb7, 0x85, 0xa3, 0xc3, 0x61,
+ 0x94, 0x37, 0xa1, 0x1f, 0xb6, 0xb6, 0xe2, 0x96, 0x1c, 0x54, 0x89, 0x87,
+ 0x01, 0x95, 0x31, 0xf5, 0x4e, 0xe3, 0x22, 0xc8,
+};
+static const unsigned char kat837_retbits[] = {
+ 0x4a, 0x8c, 0xca, 0x2b, 0x46, 0xdb, 0x41, 0x25, 0xe6, 0x80, 0x9c, 0xdc,
+ 0xf1, 0x21, 0xdc, 0x54, 0x9f, 0x59, 0x14, 0x94, 0xd4, 0x68, 0x3a, 0xb2,
+ 0xcb, 0xbe, 0x7d, 0x14, 0xcc, 0x82, 0x3c, 0xde, 0x91, 0x6b, 0x5c, 0xb0,
+ 0xa1, 0x10, 0x83, 0xee, 0xa8, 0xfc, 0x30, 0x1b, 0x93, 0xfb, 0x0b, 0xca,
+ 0xa6, 0xc8, 0xea, 0xcc, 0xf2, 0x10, 0xa7, 0xbf, 0xd8, 0x0d, 0x02, 0x4f,
+ 0x7a, 0xec, 0xe1, 0x80,
+};
+static const struct drbg_kat_no_reseed kat837_t = {
+ 11, kat837_entropyin, kat837_nonce, kat837_persstr,
+ kat837_addin0, kat837_addin1, kat837_retbits
+};
+static const struct drbg_kat kat837 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat837_t
+};
+
+static const unsigned char kat838_entropyin[] = {
+ 0xb5, 0x91, 0x70, 0xdd, 0xb5, 0x8c, 0xca, 0x49, 0xa0, 0x9e, 0xf1, 0x0c,
+ 0x35, 0xe0, 0xcb, 0x0f, 0xc3, 0x06, 0x73, 0xbb, 0x89, 0xcd, 0x0a, 0xbd,
+ 0x4b, 0x40, 0xdc, 0xc8, 0xfd, 0x8d, 0x0f, 0x26,
+};
+static const unsigned char kat838_nonce[] = {0};
+static const unsigned char kat838_persstr[] = {
+ 0xc3, 0xe4, 0x1a, 0xd9, 0xdd, 0x38, 0x94, 0x43, 0x2f, 0xa5, 0xb0, 0xc0,
+ 0xd0, 0xd9, 0xa5, 0xab, 0x8e, 0x44, 0x7e, 0xf5, 0x22, 0x4a, 0x8b, 0xc6,
+ 0xb1, 0x31, 0x82, 0xea, 0xdd, 0x7b, 0x08, 0x6a,
+};
+static const unsigned char kat838_addin0[] = {
+ 0xfe, 0x6d, 0xa3, 0xc0, 0x23, 0x11, 0x8d, 0xd6, 0x91, 0x98, 0x8d, 0xb2,
+ 0xd7, 0x67, 0x00, 0xb3, 0x84, 0x35, 0x73, 0xce, 0xf4, 0x05, 0xf5, 0xaf,
+ 0x17, 0x30, 0xe6, 0x14, 0xa8, 0xee, 0xfd, 0x29,
+};
+static const unsigned char kat838_addin1[] = {
+ 0x90, 0xc7, 0x99, 0xce, 0x14, 0x93, 0xf9, 0x08, 0xae, 0x6d, 0x16, 0x73,
+ 0xab, 0x44, 0xa2, 0xf1, 0x47, 0xf4, 0xb8, 0xf1, 0xab, 0xbe, 0x41, 0x57,
+ 0xc4, 0xb4, 0x90, 0xbb, 0x75, 0xf2, 0x93, 0xbd,
+};
+static const unsigned char kat838_retbits[] = {
+ 0x56, 0xc3, 0x40, 0x70, 0xc2, 0x51, 0x5c, 0x74, 0x29, 0xcc, 0x64, 0xbf,
+ 0xfa, 0xc6, 0xea, 0x11, 0x04, 0xdb, 0x76, 0xe4, 0x14, 0x6f, 0x58, 0x62,
+ 0x4d, 0x8d, 0xda, 0x3d, 0xbd, 0x1b, 0xf6, 0xf6, 0x2b, 0xb7, 0x44, 0xd4,
+ 0x1f, 0x6c, 0x26, 0x48, 0x9e, 0x24, 0x8b, 0x81, 0xcf, 0x64, 0x1a, 0x7b,
+ 0xfa, 0xbb, 0x36, 0x10, 0x9c, 0x2b, 0xb0, 0x8e, 0xda, 0x66, 0xeb, 0x2d,
+ 0x44, 0x37, 0xa8, 0xcd,
+};
+static const struct drbg_kat_no_reseed kat838_t = {
+ 12, kat838_entropyin, kat838_nonce, kat838_persstr,
+ kat838_addin0, kat838_addin1, kat838_retbits
+};
+static const struct drbg_kat kat838 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat838_t
+};
+
+static const unsigned char kat839_entropyin[] = {
+ 0x9b, 0xd5, 0x7e, 0x72, 0xca, 0x9c, 0xb4, 0x92, 0xa8, 0x8c, 0x3d, 0xbe,
+ 0x49, 0xc8, 0x51, 0xef, 0x04, 0xe1, 0xda, 0x87, 0x45, 0x78, 0x91, 0xad,
+ 0xdb, 0x06, 0xc2, 0x7a, 0xb9, 0x7f, 0xd9, 0x68,
+};
+static const unsigned char kat839_nonce[] = {0};
+static const unsigned char kat839_persstr[] = {
+ 0xac, 0x1f, 0xfe, 0x64, 0xec, 0xff, 0x56, 0x76, 0xfe, 0x8e, 0x31, 0x07,
+ 0xfe, 0xe9, 0xc9, 0x19, 0x8b, 0x63, 0x18, 0x8a, 0x89, 0x9a, 0x76, 0x6a,
+ 0x1e, 0xd2, 0x8c, 0x84, 0xa9, 0x89, 0x8e, 0xc6,
+};
+static const unsigned char kat839_addin0[] = {
+ 0xa9, 0xb6, 0xa2, 0x9c, 0x4a, 0xf4, 0x12, 0xc1, 0x07, 0xba, 0xad, 0xc5,
+ 0xbe, 0x0a, 0xc0, 0xa4, 0x57, 0x28, 0xb8, 0x61, 0xfc, 0xc2, 0xb1, 0x00,
+ 0xb0, 0x07, 0xc1, 0xcd, 0xa9, 0x90, 0x8a, 0x75,
+};
+static const unsigned char kat839_addin1[] = {
+ 0xf3, 0xf7, 0xcc, 0xc0, 0xd9, 0x69, 0x18, 0x28, 0x9d, 0x2c, 0xe9, 0x90,
+ 0xb8, 0xf7, 0xb9, 0xcc, 0xb2, 0x17, 0xc9, 0xcd, 0x6e, 0x59, 0x72, 0x93,
+ 0x6b, 0xbb, 0x1c, 0x99, 0x07, 0x3c, 0x60, 0xb5,
+};
+static const unsigned char kat839_retbits[] = {
+ 0xf1, 0x34, 0xa4, 0x5c, 0x20, 0xef, 0x4a, 0x61, 0xf4, 0x33, 0xd4, 0xfb,
+ 0x26, 0x73, 0x40, 0x75, 0xc6, 0xad, 0x66, 0x6a, 0x0d, 0x4f, 0x9c, 0xcb,
+ 0x06, 0x4b, 0x83, 0xde, 0x4e, 0x98, 0xff, 0x96, 0xbd, 0x20, 0x1e, 0xc5,
+ 0x2e, 0xbf, 0x00, 0xdc, 0x6a, 0xd6, 0xcb, 0x7d, 0x50, 0xd7, 0xc3, 0xe8,
+ 0xb1, 0x82, 0xb5, 0xf5, 0xb7, 0x00, 0xdc, 0x5b, 0x3b, 0xd1, 0x57, 0xa4,
+ 0xe8, 0x66, 0xbc, 0x6d,
+};
+static const struct drbg_kat_no_reseed kat839_t = {
+ 13, kat839_entropyin, kat839_nonce, kat839_persstr,
+ kat839_addin0, kat839_addin1, kat839_retbits
+};
+static const struct drbg_kat kat839 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat839_t
+};
+
+static const unsigned char kat840_entropyin[] = {
+ 0xdd, 0xb6, 0xe1, 0x09, 0x06, 0x65, 0x0b, 0xbf, 0x1c, 0xf7, 0x8d, 0x9e,
+ 0x80, 0x40, 0xb3, 0xb0, 0x2a, 0x60, 0x88, 0xe9, 0x4f, 0x84, 0xae, 0xfe,
+ 0xd1, 0x00, 0xa5, 0xe8, 0x0c, 0x16, 0xa4, 0xc8,
+};
+static const unsigned char kat840_nonce[] = {0};
+static const unsigned char kat840_persstr[] = {
+ 0x05, 0xb6, 0xda, 0x01, 0x04, 0x47, 0xe7, 0x0c, 0x56, 0x66, 0x95, 0xa3,
+ 0xb2, 0x06, 0x64, 0xd6, 0xe7, 0x62, 0xd1, 0x22, 0x3c, 0xe4, 0x31, 0x5e,
+ 0xde, 0x31, 0x15, 0x18, 0x88, 0x3e, 0x2b, 0x5c,
+};
+static const unsigned char kat840_addin0[] = {
+ 0xf5, 0x7c, 0xf3, 0x14, 0x18, 0x8b, 0x39, 0x77, 0x97, 0xca, 0xa3, 0x07,
+ 0x33, 0xcd, 0xab, 0xd5, 0xab, 0x2a, 0x90, 0x56, 0x2c, 0xab, 0x9b, 0xe5,
+ 0xf8, 0x12, 0xbb, 0xd4, 0x82, 0x52, 0x37, 0x1b,
+};
+static const unsigned char kat840_addin1[] = {
+ 0x93, 0x83, 0x9a, 0xca, 0xa2, 0x71, 0xaf, 0x55, 0xec, 0x6c, 0x84, 0x64,
+ 0xac, 0x2b, 0xa8, 0xbc, 0x1c, 0x61, 0x58, 0x40, 0x08, 0xb5, 0xd9, 0x08,
+ 0xb2, 0x00, 0xd8, 0x04, 0x8e, 0xdc, 0x05, 0x62,
+};
+static const unsigned char kat840_retbits[] = {
+ 0x38, 0xa3, 0xdd, 0x58, 0x4a, 0x68, 0xbd, 0x03, 0x7c, 0x5d, 0x5b, 0xe4,
+ 0xa1, 0x03, 0x08, 0x3e, 0x1d, 0x4b, 0xbd, 0x8a, 0x84, 0x5a, 0xc1, 0x83,
+ 0x2e, 0x4c, 0x54, 0x5e, 0x94, 0x2b, 0xb5, 0x23, 0x2c, 0xce, 0xc9, 0xdf,
+ 0x2a, 0xba, 0xaf, 0x08, 0x70, 0xd1, 0xf7, 0x5d, 0x3b, 0xf8, 0x5a, 0xa9,
+ 0x32, 0x3b, 0x5e, 0xed, 0xc2, 0x6a, 0x73, 0xad, 0xe2, 0xdd, 0xad, 0xe6,
+ 0x9f, 0xca, 0xf6, 0xd4,
+};
+static const struct drbg_kat_no_reseed kat840_t = {
+ 14, kat840_entropyin, kat840_nonce, kat840_persstr,
+ kat840_addin0, kat840_addin1, kat840_retbits
+};
+static const struct drbg_kat kat840 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat840_t
+};
+
+static const unsigned char kat841_entropyin[] = {
+ 0x48, 0xe8, 0x27, 0x1c, 0x4b, 0x55, 0x4d, 0x9d, 0xa3, 0xf8, 0x8c, 0x82,
+ 0x0d, 0x07, 0x8f, 0x6a, 0x3f, 0x66, 0xac, 0xf0, 0x07, 0xcc, 0x98, 0x84,
+ 0x0e, 0x03, 0xe2, 0x6c, 0x62, 0x52, 0x7f, 0x91,
+};
+static const unsigned char kat841_nonce[] = {0};
+static const unsigned char kat841_persstr[] = {0};
+static const unsigned char kat841_addin0[] = {0};
+static const unsigned char kat841_addin1[] = {0};
+static const unsigned char kat841_retbits[] = {
+ 0xb9, 0xa9, 0x56, 0xa6, 0xe3, 0xd1, 0x03, 0x10, 0xe5, 0x7e, 0x28, 0x7c,
+ 0x28, 0x4c, 0x68, 0x67, 0xed, 0x9e, 0x80, 0x84, 0xa6, 0x2b, 0x25, 0xc4,
+ 0x92, 0x18, 0xfa, 0x3a, 0xed, 0xe7, 0xc6, 0xea, 0xec, 0x16, 0x22, 0x69,
+ 0x66, 0x40, 0xf6, 0xb4, 0xad, 0x53, 0x79, 0xc6, 0xfb, 0x8f, 0x9b, 0x5d,
+ 0x72, 0x02, 0xad, 0x89, 0x10, 0x5d, 0x03, 0x17, 0x34, 0x87, 0xe2, 0x9d,
+ 0xa9, 0x73, 0x93, 0x90,
+};
+static const struct drbg_kat_no_reseed kat841_t = {
+ 0, kat841_entropyin, kat841_nonce, kat841_persstr,
+ kat841_addin0, kat841_addin1, kat841_retbits
+};
+static const struct drbg_kat kat841 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat841_t
+};
+
+static const unsigned char kat842_entropyin[] = {
+ 0xb1, 0xc3, 0x47, 0xb0, 0x96, 0x65, 0x31, 0x0d, 0x0d, 0x04, 0x87, 0x93,
+ 0x5e, 0xa8, 0x1b, 0x4f, 0x73, 0x44, 0x83, 0x86, 0xcf, 0x08, 0x01, 0xcc,
+ 0x9d, 0x6a, 0x0b, 0xb6, 0x55, 0x60, 0x2c, 0x29,
+};
+static const unsigned char kat842_nonce[] = {0};
+static const unsigned char kat842_persstr[] = {0};
+static const unsigned char kat842_addin0[] = {0};
+static const unsigned char kat842_addin1[] = {0};
+static const unsigned char kat842_retbits[] = {
+ 0xa6, 0x19, 0xe2, 0x6d, 0x7a, 0xcf, 0x6b, 0x82, 0x84, 0x51, 0x56, 0x2f,
+ 0x51, 0x75, 0xc2, 0xa9, 0xaf, 0xb7, 0x3c, 0xe3, 0xa7, 0x26, 0x5b, 0xea,
+ 0x38, 0xb8, 0xf3, 0xbd, 0xe9, 0xf4, 0x26, 0xcf, 0x55, 0x2f, 0xff, 0x34,
+ 0x35, 0xea, 0xbb, 0xfb, 0x72, 0x44, 0x6d, 0x90, 0x76, 0xee, 0x00, 0x45,
+ 0xbf, 0x82, 0xca, 0xff, 0x76, 0xd9, 0x01, 0x23, 0x7f, 0x7b, 0x6e, 0x33,
+ 0xe6, 0xac, 0xdf, 0x9a,
+};
+static const struct drbg_kat_no_reseed kat842_t = {
+ 1, kat842_entropyin, kat842_nonce, kat842_persstr,
+ kat842_addin0, kat842_addin1, kat842_retbits
+};
+static const struct drbg_kat kat842 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat842_t
+};
+
+static const unsigned char kat843_entropyin[] = {
+ 0x4a, 0xdf, 0x8e, 0xbf, 0xf3, 0x58, 0x8c, 0x1d, 0x86, 0xf8, 0xb0, 0xa7,
+ 0x0f, 0x55, 0x85, 0xcd, 0x7f, 0xa6, 0xe1, 0xa1, 0x17, 0x6e, 0x79, 0x1b,
+ 0xeb, 0x37, 0xb5, 0xa2, 0x51, 0x25, 0xd2, 0xab,
+};
+static const unsigned char kat843_nonce[] = {0};
+static const unsigned char kat843_persstr[] = {0};
+static const unsigned char kat843_addin0[] = {0};
+static const unsigned char kat843_addin1[] = {0};
+static const unsigned char kat843_retbits[] = {
+ 0x8b, 0xfd, 0x73, 0xea, 0x99, 0x09, 0xcb, 0x62, 0x24, 0x8f, 0x97, 0x2c,
+ 0xa7, 0x7f, 0xd6, 0x53, 0x79, 0x24, 0xfb, 0xf5, 0x84, 0x7b, 0xd6, 0xb2,
+ 0x9b, 0x2f, 0xe3, 0x67, 0xf8, 0xdd, 0x2f, 0xe2, 0x2c, 0xad, 0xeb, 0x8b,
+ 0x6e, 0x32, 0x85, 0x6d, 0xcf, 0xf8, 0x11, 0xda, 0x72, 0x48, 0x3e, 0xf1,
+ 0x64, 0xcf, 0xa6, 0x78, 0xde, 0xb4, 0xf9, 0xaf, 0x38, 0x1e, 0xfe, 0x2d,
+ 0x70, 0x28, 0x82, 0x92,
+};
+static const struct drbg_kat_no_reseed kat843_t = {
+ 2, kat843_entropyin, kat843_nonce, kat843_persstr,
+ kat843_addin0, kat843_addin1, kat843_retbits
+};
+static const struct drbg_kat kat843 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat843_t
+};
+
+static const unsigned char kat844_entropyin[] = {
+ 0x28, 0x5d, 0xe6, 0x16, 0xb8, 0xba, 0x8b, 0xb5, 0xf6, 0x46, 0xfe, 0x43,
+ 0x60, 0x16, 0x45, 0x45, 0x4e, 0xc7, 0xd7, 0x08, 0xf4, 0x42, 0xfb, 0x1f,
+ 0xfd, 0xea, 0x09, 0xae, 0x10, 0xac, 0xc0, 0x64,
+};
+static const unsigned char kat844_nonce[] = {0};
+static const unsigned char kat844_persstr[] = {0};
+static const unsigned char kat844_addin0[] = {0};
+static const unsigned char kat844_addin1[] = {0};
+static const unsigned char kat844_retbits[] = {
+ 0x31, 0xbe, 0x55, 0x8c, 0xa1, 0x3f, 0x23, 0x8d, 0x59, 0x6e, 0xc5, 0xdb,
+ 0x02, 0xd4, 0xf0, 0xb9, 0x23, 0xbf, 0x01, 0x64, 0x9d, 0x1a, 0x51, 0xf4,
+ 0xcd, 0x27, 0xfc, 0xd7, 0x7b, 0xa2, 0x9e, 0x46, 0x30, 0xef, 0xc9, 0x13,
+ 0xbd, 0xa1, 0xdb, 0xed, 0x32, 0x0c, 0x7f, 0x4c, 0x8d, 0x69, 0xac, 0x7f,
+ 0xb3, 0xec, 0xcc, 0x25, 0x9b, 0xca, 0x82, 0xe4, 0x79, 0x59, 0x9f, 0x3a,
+ 0x67, 0xb1, 0x79, 0x22,
+};
+static const struct drbg_kat_no_reseed kat844_t = {
+ 3, kat844_entropyin, kat844_nonce, kat844_persstr,
+ kat844_addin0, kat844_addin1, kat844_retbits
+};
+static const struct drbg_kat kat844 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat844_t
+};
+
+static const unsigned char kat845_entropyin[] = {
+ 0x14, 0x5b, 0x3c, 0x65, 0xaf, 0xb2, 0xfb, 0xae, 0x1c, 0xd7, 0x65, 0x25,
+ 0xb2, 0xd5, 0x32, 0x5c, 0xc4, 0x30, 0xcd, 0x4e, 0x1c, 0x8a, 0x63, 0x76,
+ 0xbf, 0xc7, 0xa3, 0x02, 0x3b, 0xb8, 0xf5, 0x9d,
+};
+static const unsigned char kat845_nonce[] = {0};
+static const unsigned char kat845_persstr[] = {0};
+static const unsigned char kat845_addin0[] = {0};
+static const unsigned char kat845_addin1[] = {0};
+static const unsigned char kat845_retbits[] = {
+ 0x56, 0x60, 0x03, 0x5f, 0x34, 0xbc, 0xc6, 0xcc, 0xab, 0xae, 0xcb, 0x15,
+ 0x83, 0x82, 0x7c, 0x9f, 0x0f, 0xf4, 0x3e, 0x0e, 0xcb, 0x22, 0x26, 0x9c,
+ 0x06, 0x93, 0x63, 0xc0, 0x5e, 0xc2, 0x82, 0xbc, 0x5f, 0x4d, 0x4a, 0x42,
+ 0x62, 0xe1, 0xe0, 0xa0, 0xfb, 0x66, 0x7a, 0x28, 0x5a, 0x3f, 0xde, 0x69,
+ 0x05, 0x2c, 0x91, 0xc7, 0x3d, 0x04, 0x32, 0xd9, 0x12, 0x35, 0xbf, 0x4f,
+ 0x90, 0x37, 0x3a, 0x22,
+};
+static const struct drbg_kat_no_reseed kat845_t = {
+ 4, kat845_entropyin, kat845_nonce, kat845_persstr,
+ kat845_addin0, kat845_addin1, kat845_retbits
+};
+static const struct drbg_kat kat845 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat845_t
+};
+
+static const unsigned char kat846_entropyin[] = {
+ 0xb8, 0x0c, 0x0a, 0x02, 0xb6, 0xfc, 0x7b, 0xfc, 0x05, 0x15, 0x88, 0x00,
+ 0x05, 0xc0, 0xa2, 0xc1, 0x8e, 0xf5, 0xb8, 0x12, 0x99, 0x15, 0xfd, 0xac,
+ 0x34, 0xbc, 0x94, 0x6c, 0xb4, 0x80, 0xc0, 0xfd,
+};
+static const unsigned char kat846_nonce[] = {0};
+static const unsigned char kat846_persstr[] = {0};
+static const unsigned char kat846_addin0[] = {0};
+static const unsigned char kat846_addin1[] = {0};
+static const unsigned char kat846_retbits[] = {
+ 0x82, 0xef, 0x2a, 0xf1, 0x4b, 0x58, 0xfc, 0xe2, 0x9d, 0x33, 0xf9, 0xf1,
+ 0xb5, 0x26, 0x18, 0xf2, 0x30, 0x24, 0xdd, 0x17, 0xdc, 0x81, 0x33, 0x74,
+ 0x9b, 0x59, 0x98, 0x15, 0x0f, 0x44, 0xf4, 0xde, 0x8f, 0xa2, 0x8f, 0x62,
+ 0xc4, 0xdf, 0xeb, 0x2b, 0xb7, 0xbc, 0xc4, 0xf5, 0x14, 0xaf, 0x9a, 0xd2,
+ 0xc7, 0x64, 0x20, 0xd3, 0xe4, 0xcf, 0x7c, 0xc5, 0x35, 0xc5, 0x56, 0xe1,
+ 0xe7, 0x3a, 0xcc, 0x54,
+};
+static const struct drbg_kat_no_reseed kat846_t = {
+ 5, kat846_entropyin, kat846_nonce, kat846_persstr,
+ kat846_addin0, kat846_addin1, kat846_retbits
+};
+static const struct drbg_kat kat846 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat846_t
+};
+
+static const unsigned char kat847_entropyin[] = {
+ 0x1a, 0xea, 0x93, 0x80, 0xee, 0x1c, 0x38, 0x37, 0xfd, 0x57, 0xb6, 0xae,
+ 0x69, 0xca, 0xe7, 0xd1, 0xa8, 0x16, 0x63, 0xc2, 0xc3, 0x69, 0x19, 0xa8,
+ 0xfb, 0x46, 0x39, 0x8a, 0x77, 0x57, 0xd7, 0xbf,
+};
+static const unsigned char kat847_nonce[] = {0};
+static const unsigned char kat847_persstr[] = {0};
+static const unsigned char kat847_addin0[] = {0};
+static const unsigned char kat847_addin1[] = {0};
+static const unsigned char kat847_retbits[] = {
+ 0x9b, 0xf9, 0xe4, 0xee, 0xee, 0xf1, 0x18, 0xd6, 0x75, 0x49, 0x44, 0xb8,
+ 0xed, 0xd4, 0x6d, 0xea, 0x37, 0x97, 0xd8, 0x21, 0x9d, 0xfb, 0x9d, 0xec,
+ 0x11, 0x86, 0xbb, 0xe2, 0xa9, 0x87, 0x6e, 0x60, 0x4a, 0xd5, 0x2c, 0x02,
+ 0xd0, 0x2e, 0xa0, 0xa9, 0x80, 0x29, 0xe8, 0x83, 0xff, 0xf8, 0xb6, 0x04,
+ 0x39, 0xe6, 0xc3, 0x58, 0xb2, 0x6c, 0xb0, 0xea, 0x40, 0xf0, 0x31, 0x9a,
+ 0x37, 0xf3, 0xea, 0x87,
+};
+static const struct drbg_kat_no_reseed kat847_t = {
+ 6, kat847_entropyin, kat847_nonce, kat847_persstr,
+ kat847_addin0, kat847_addin1, kat847_retbits
+};
+static const struct drbg_kat kat847 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat847_t
+};
+
+static const unsigned char kat848_entropyin[] = {
+ 0xf2, 0xa7, 0x11, 0xe4, 0xe5, 0xf0, 0x55, 0x1a, 0xe7, 0xc7, 0x91, 0x6a,
+ 0x95, 0xe7, 0x65, 0x42, 0xa4, 0x4c, 0x9a, 0x02, 0xc7, 0x15, 0x35, 0xfd,
+ 0x02, 0x0b, 0x2d, 0xb1, 0x68, 0xf4, 0x3d, 0x31,
+};
+static const unsigned char kat848_nonce[] = {0};
+static const unsigned char kat848_persstr[] = {0};
+static const unsigned char kat848_addin0[] = {0};
+static const unsigned char kat848_addin1[] = {0};
+static const unsigned char kat848_retbits[] = {
+ 0xcb, 0x8a, 0xc7, 0x86, 0x03, 0xa6, 0xb4, 0x4f, 0x05, 0x7f, 0x8f, 0xa3,
+ 0x48, 0xe1, 0x98, 0x71, 0x06, 0xd5, 0xaf, 0x6b, 0x92, 0x93, 0xff, 0xe3,
+ 0x72, 0x6b, 0x46, 0x24, 0xba, 0x04, 0xc6, 0x0a, 0x27, 0xb2, 0x1a, 0x62,
+ 0x62, 0x24, 0x74, 0x8e, 0xcc, 0x11, 0x1c, 0xd1, 0xef, 0x10, 0x2d, 0x62,
+ 0xd8, 0xe9, 0x0c, 0xd5, 0x14, 0xef, 0x04, 0x51, 0x67, 0x18, 0x53, 0x05,
+ 0x00, 0x67, 0x8f, 0x20,
+};
+static const struct drbg_kat_no_reseed kat848_t = {
+ 7, kat848_entropyin, kat848_nonce, kat848_persstr,
+ kat848_addin0, kat848_addin1, kat848_retbits
+};
+static const struct drbg_kat kat848 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat848_t
+};
+
+static const unsigned char kat849_entropyin[] = {
+ 0x15, 0x9c, 0xc9, 0xeb, 0x22, 0xaa, 0xfb, 0x9c, 0xe3, 0x1a, 0x7e, 0xe2,
+ 0xf8, 0xe6, 0x17, 0x15, 0x24, 0xc7, 0xd7, 0xbc, 0x04, 0x56, 0x32, 0xad,
+ 0x04, 0x3d, 0x73, 0x1d, 0x00, 0xfb, 0x2a, 0x67,
+};
+static const unsigned char kat849_nonce[] = {0};
+static const unsigned char kat849_persstr[] = {0};
+static const unsigned char kat849_addin0[] = {0};
+static const unsigned char kat849_addin1[] = {0};
+static const unsigned char kat849_retbits[] = {
+ 0xa2, 0x31, 0xa1, 0xab, 0x27, 0x3a, 0x29, 0x7b, 0xd4, 0x43, 0xf1, 0x43,
+ 0x59, 0x92, 0x35, 0xcf, 0xdf, 0xc7, 0x23, 0x59, 0xbb, 0x69, 0x39, 0x4a,
+ 0xf0, 0x91, 0x79, 0x60, 0xec, 0x43, 0xae, 0x17, 0xaa, 0xe4, 0x62, 0x32,
+ 0xf8, 0x27, 0x3e, 0xdd, 0x86, 0x4b, 0x8b, 0x07, 0xa6, 0x13, 0xe9, 0xfc,
+ 0x26, 0x56, 0xe8, 0x95, 0x30, 0x0f, 0xd1, 0x7a, 0x9e, 0x28, 0x60, 0xd4,
+ 0x5d, 0xb6, 0x1e, 0x8c,
+};
+static const struct drbg_kat_no_reseed kat849_t = {
+ 8, kat849_entropyin, kat849_nonce, kat849_persstr,
+ kat849_addin0, kat849_addin1, kat849_retbits
+};
+static const struct drbg_kat kat849 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat849_t
+};
+
+static const unsigned char kat850_entropyin[] = {
+ 0x1e, 0xbc, 0xcb, 0x0d, 0xd5, 0x03, 0xec, 0x20, 0xe5, 0x8b, 0xb4, 0xd8,
+ 0xc2, 0xec, 0x67, 0xf2, 0xe8, 0xdc, 0x3a, 0x04, 0x36, 0x1d, 0xaf, 0xc8,
+ 0x1c, 0x0c, 0x0b, 0x61, 0x1a, 0xf2, 0x76, 0xa2,
+};
+static const unsigned char kat850_nonce[] = {0};
+static const unsigned char kat850_persstr[] = {0};
+static const unsigned char kat850_addin0[] = {0};
+static const unsigned char kat850_addin1[] = {0};
+static const unsigned char kat850_retbits[] = {
+ 0xc6, 0x4d, 0xb3, 0x84, 0xb4, 0xb7, 0xb0, 0x54, 0xb0, 0x0d, 0x31, 0xbb,
+ 0x94, 0xc0, 0x27, 0x35, 0x0e, 0x7a, 0x5c, 0x2f, 0xe0, 0x0e, 0xef, 0x37,
+ 0x15, 0x6c, 0x94, 0x63, 0x9c, 0xdb, 0x04, 0x33, 0xfb, 0x31, 0xbe, 0x02,
+ 0x37, 0x01, 0x9b, 0xfa, 0xf6, 0xf9, 0xc5, 0x49, 0xff, 0x77, 0xd5, 0x23,
+ 0xb5, 0xb5, 0x3c, 0x07, 0xd1, 0xe0, 0x0f, 0x79, 0xb0, 0x74, 0xb7, 0xfb,
+ 0x5c, 0x78, 0x14, 0xe4,
+};
+static const struct drbg_kat_no_reseed kat850_t = {
+ 9, kat850_entropyin, kat850_nonce, kat850_persstr,
+ kat850_addin0, kat850_addin1, kat850_retbits
+};
+static const struct drbg_kat kat850 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat850_t
+};
+
+static const unsigned char kat851_entropyin[] = {
+ 0x6d, 0xbf, 0x76, 0xe7, 0x8b, 0x9a, 0xf7, 0x74, 0x4c, 0x84, 0xa2, 0x4e,
+ 0x5d, 0x9a, 0x4b, 0x42, 0x49, 0x32, 0xb1, 0x9e, 0x6a, 0x62, 0xa9, 0xab,
+ 0x3a, 0x04, 0xb3, 0x2c, 0x76, 0xee, 0xf7, 0xde,
+};
+static const unsigned char kat851_nonce[] = {0};
+static const unsigned char kat851_persstr[] = {0};
+static const unsigned char kat851_addin0[] = {0};
+static const unsigned char kat851_addin1[] = {0};
+static const unsigned char kat851_retbits[] = {
+ 0xea, 0x09, 0xfc, 0x60, 0x69, 0xb9, 0x9c, 0x9e, 0xd1, 0x16, 0xdf, 0x49,
+ 0x47, 0x1b, 0xe2, 0xd7, 0x26, 0x17, 0x10, 0xa8, 0xaf, 0xba, 0x1c, 0xf3,
+ 0xa0, 0xd3, 0xf3, 0xd2, 0x2d, 0x80, 0x72, 0xb0, 0xb5, 0x0e, 0x00, 0x3d,
+ 0x7f, 0xab, 0x02, 0x11, 0xd5, 0xa4, 0x4d, 0x6f, 0x75, 0xf4, 0x54, 0x1f,
+ 0x5b, 0x97, 0x3e, 0x72, 0x71, 0x05, 0xe0, 0x29, 0x7c, 0x3b, 0x9f, 0x0c,
+ 0xa9, 0x4e, 0x00, 0x43,
+};
+static const struct drbg_kat_no_reseed kat851_t = {
+ 10, kat851_entropyin, kat851_nonce, kat851_persstr,
+ kat851_addin0, kat851_addin1, kat851_retbits
+};
+static const struct drbg_kat kat851 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat851_t
+};
+
+static const unsigned char kat852_entropyin[] = {
+ 0xb0, 0xa4, 0xfa, 0x9c, 0xc2, 0xa5, 0xb4, 0x28, 0xdd, 0x92, 0x4c, 0x31,
+ 0x2d, 0xcc, 0x05, 0x4b, 0xfb, 0xf7, 0x4c, 0x0f, 0x9c, 0x38, 0xed, 0x02,
+ 0x40, 0x04, 0x6f, 0x35, 0x4d, 0x2f, 0xc6, 0xb2,
+};
+static const unsigned char kat852_nonce[] = {0};
+static const unsigned char kat852_persstr[] = {0};
+static const unsigned char kat852_addin0[] = {0};
+static const unsigned char kat852_addin1[] = {0};
+static const unsigned char kat852_retbits[] = {
+ 0x6f, 0x51, 0x33, 0x61, 0xb3, 0x07, 0x6f, 0x5e, 0xac, 0x6c, 0xa5, 0x40,
+ 0x86, 0x9b, 0xdc, 0x40, 0x11, 0x88, 0xf9, 0xe4, 0xbe, 0x25, 0x34, 0x8e,
+ 0x22, 0xa6, 0xb8, 0xda, 0xa0, 0x43, 0x11, 0xb5, 0x27, 0x84, 0xba, 0xff,
+ 0x3c, 0x2a, 0x11, 0xca, 0xf0, 0x3d, 0xea, 0xc3, 0x64, 0x31, 0x74, 0xb0,
+ 0xc8, 0xe4, 0x4b, 0x54, 0x4c, 0x0b, 0xbb, 0x4d, 0xa7, 0x24, 0x1b, 0xbf,
+ 0x65, 0x7e, 0xc1, 0x76,
+};
+static const struct drbg_kat_no_reseed kat852_t = {
+ 11, kat852_entropyin, kat852_nonce, kat852_persstr,
+ kat852_addin0, kat852_addin1, kat852_retbits
+};
+static const struct drbg_kat kat852 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat852_t
+};
+
+static const unsigned char kat853_entropyin[] = {
+ 0x85, 0x7a, 0x11, 0x86, 0xa0, 0x82, 0xd7, 0x7e, 0xd7, 0x89, 0x3b, 0xb4,
+ 0x67, 0xda, 0xa7, 0x95, 0x76, 0xd1, 0xfc, 0x66, 0x7e, 0x07, 0x11, 0x74,
+ 0x90, 0x52, 0x2f, 0x87, 0xee, 0x19, 0xbb, 0x9f,
+};
+static const unsigned char kat853_nonce[] = {0};
+static const unsigned char kat853_persstr[] = {0};
+static const unsigned char kat853_addin0[] = {0};
+static const unsigned char kat853_addin1[] = {0};
+static const unsigned char kat853_retbits[] = {
+ 0xfb, 0x88, 0x89, 0xbf, 0xe0, 0x08, 0xf0, 0xd4, 0x50, 0x34, 0xc2, 0x6b,
+ 0xb0, 0x41, 0x4f, 0xf1, 0x95, 0x13, 0xb6, 0xc4, 0x44, 0x5a, 0xcc, 0x4a,
+ 0x56, 0x3f, 0x6d, 0xf9, 0x55, 0x2e, 0xc5, 0xdf, 0x95, 0xf8, 0xcc, 0x71,
+ 0x43, 0x75, 0x7e, 0x74, 0x06, 0xfe, 0xb4, 0xf5, 0xbe, 0x7f, 0x1b, 0x65,
+ 0x76, 0x04, 0x90, 0xdf, 0x90, 0x29, 0x8e, 0x73, 0x05, 0x58, 0x30, 0x94,
+ 0x3d, 0xbd, 0x7c, 0x38,
+};
+static const struct drbg_kat_no_reseed kat853_t = {
+ 12, kat853_entropyin, kat853_nonce, kat853_persstr,
+ kat853_addin0, kat853_addin1, kat853_retbits
+};
+static const struct drbg_kat kat853 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat853_t
+};
+
+static const unsigned char kat854_entropyin[] = {
+ 0xb2, 0x78, 0xae, 0xf0, 0x58, 0x9b, 0xa4, 0x9f, 0x91, 0xd3, 0xce, 0x6e,
+ 0xf0, 0xaf, 0x69, 0x8b, 0xbf, 0x28, 0x2e, 0xd6, 0xc1, 0x12, 0xca, 0xd9,
+ 0xe8, 0x66, 0x46, 0xd0, 0x10, 0x76, 0x31, 0xdd,
+};
+static const unsigned char kat854_nonce[] = {0};
+static const unsigned char kat854_persstr[] = {0};
+static const unsigned char kat854_addin0[] = {0};
+static const unsigned char kat854_addin1[] = {0};
+static const unsigned char kat854_retbits[] = {
+ 0xe6, 0xe3, 0x45, 0xa5, 0x0c, 0xed, 0x3c, 0xc6, 0x8a, 0xe2, 0x4e, 0xd9,
+ 0xad, 0x8c, 0xdb, 0x48, 0x28, 0x15, 0x28, 0x4e, 0x66, 0xf9, 0xb0, 0x15,
+ 0x1f, 0xdd, 0x75, 0xd1, 0x3c, 0x97, 0x58, 0x66, 0x3c, 0x4d, 0xf9, 0xab,
+ 0x99, 0xce, 0xf4, 0xfe, 0xd8, 0xae, 0x86, 0xfd, 0x18, 0x68, 0xbe, 0x6c,
+ 0x5e, 0xae, 0xad, 0x7a, 0x6a, 0x9d, 0xe7, 0x22, 0xf1, 0x2d, 0xa1, 0xe9,
+ 0x55, 0xdb, 0xc6, 0x41,
+};
+static const struct drbg_kat_no_reseed kat854_t = {
+ 13, kat854_entropyin, kat854_nonce, kat854_persstr,
+ kat854_addin0, kat854_addin1, kat854_retbits
+};
+static const struct drbg_kat kat854 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat854_t
+};
+
+static const unsigned char kat855_entropyin[] = {
+ 0xab, 0x87, 0x58, 0x86, 0x82, 0x71, 0x97, 0xb7, 0x84, 0xb1, 0x37, 0x72,
+ 0x6f, 0x1f, 0x58, 0x62, 0xc0, 0x16, 0xe2, 0xc8, 0x78, 0x04, 0x52, 0xfe,
+ 0x98, 0xf4, 0xee, 0xb6, 0x8f, 0x71, 0xac, 0xa5,
+};
+static const unsigned char kat855_nonce[] = {0};
+static const unsigned char kat855_persstr[] = {0};
+static const unsigned char kat855_addin0[] = {0};
+static const unsigned char kat855_addin1[] = {0};
+static const unsigned char kat855_retbits[] = {
+ 0xb6, 0x63, 0x44, 0x52, 0x66, 0x1b, 0x01, 0x9a, 0xfb, 0xf2, 0xe9, 0xb6,
+ 0xe2, 0x0b, 0x8b, 0xe7, 0xd9, 0xca, 0xb7, 0x39, 0x38, 0x3d, 0xe8, 0x63,
+ 0x64, 0x04, 0xc2, 0x75, 0xdc, 0x49, 0x5f, 0x54, 0xfb, 0xf2, 0x32, 0x05,
+ 0xdb, 0xf8, 0x43, 0xaf, 0xeb, 0xbc, 0x4e, 0x88, 0xc6, 0xee, 0x12, 0x6f,
+ 0x72, 0x9c, 0xc4, 0x07, 0xcc, 0xbb, 0xe7, 0x92, 0xe3, 0x31, 0x92, 0x30,
+ 0xf2, 0x30, 0x23, 0xd1,
+};
+static const struct drbg_kat_no_reseed kat855_t = {
+ 14, kat855_entropyin, kat855_nonce, kat855_persstr,
+ kat855_addin0, kat855_addin1, kat855_retbits
+};
+static const struct drbg_kat kat855 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat855_t
+};
+
+static const unsigned char kat856_entropyin[] = {
+ 0xca, 0xa9, 0x43, 0x6e, 0xe5, 0xf8, 0x8b, 0xf3, 0x20, 0xe8, 0xed, 0x3a,
+ 0x77, 0x89, 0xc8, 0x23, 0x63, 0xd0, 0xbf, 0xd4, 0xdd, 0x5d, 0x3e, 0x10,
+ 0xea, 0x14, 0xba, 0x0f, 0x05, 0x6f, 0x21, 0x22,
+};
+static const unsigned char kat856_nonce[] = {0};
+static const unsigned char kat856_persstr[] = {0};
+static const unsigned char kat856_addin0[] = {
+ 0x20, 0xcc, 0x01, 0x75, 0xa5, 0x46, 0x21, 0x12, 0x2a, 0xac, 0xa0, 0xf0,
+ 0x65, 0x30, 0x34, 0xa3, 0x6d, 0x40, 0x37, 0xe9, 0x3d, 0x43, 0x99, 0x3c,
+ 0x97, 0x83, 0x6a, 0xe9, 0x15, 0xcc, 0x74, 0x77,
+};
+static const unsigned char kat856_addin1[] = {
+ 0x60, 0x44, 0x64, 0xac, 0x87, 0x08, 0x1e, 0x0e, 0x8d, 0x46, 0x52, 0x11,
+ 0xf9, 0xa9, 0xc9, 0x9d, 0x07, 0x10, 0x45, 0xc1, 0x43, 0x0a, 0x31, 0x74,
+ 0x14, 0x6a, 0x09, 0x40, 0x84, 0x06, 0xa2, 0x96,
+};
+static const unsigned char kat856_retbits[] = {
+ 0x1d, 0x1c, 0xac, 0x3f, 0x1f, 0x7d, 0x3f, 0xc6, 0xed, 0xd2, 0x01, 0x93,
+ 0x8f, 0x63, 0x38, 0xbc, 0x2c, 0x97, 0x6a, 0x43, 0x05, 0xbb, 0xe7, 0xbc,
+ 0x37, 0xb1, 0x28, 0xc5, 0x6e, 0xda, 0x97, 0x47, 0x8d, 0xaa, 0x7d, 0x81,
+ 0x2d, 0xb1, 0x88, 0xbd, 0xcc, 0x86, 0xfc, 0x44, 0xc7, 0x05, 0x44, 0x1f,
+ 0x95, 0x2f, 0x3c, 0x54, 0x86, 0x0a, 0x0f, 0xc2, 0x01, 0xdd, 0xff, 0x26,
+ 0x98, 0x48, 0xea, 0x44,
+};
+static const struct drbg_kat_no_reseed kat856_t = {
+ 0, kat856_entropyin, kat856_nonce, kat856_persstr,
+ kat856_addin0, kat856_addin1, kat856_retbits
+};
+static const struct drbg_kat kat856 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat856_t
+};
+
+static const unsigned char kat857_entropyin[] = {
+ 0xd7, 0x8f, 0x64, 0x0c, 0x60, 0xa2, 0x8a, 0xea, 0x35, 0xe6, 0xbc, 0xf2,
+ 0x88, 0xf2, 0xc8, 0xbd, 0x0e, 0x71, 0xf7, 0x74, 0x23, 0x0b, 0xc8, 0xfb,
+ 0x06, 0xc6, 0x41, 0xb4, 0xe9, 0x7e, 0x24, 0x8d,
+};
+static const unsigned char kat857_nonce[] = {0};
+static const unsigned char kat857_persstr[] = {0};
+static const unsigned char kat857_addin0[] = {
+ 0x88, 0x4e, 0xc6, 0xcd, 0x46, 0x25, 0xf4, 0xb6, 0x9a, 0x3f, 0xde, 0xc9,
+ 0x8f, 0x38, 0x41, 0xaf, 0x85, 0x47, 0x02, 0x91, 0x06, 0xd6, 0xdd, 0xde,
+ 0x5e, 0xc4, 0x81, 0xfb, 0x12, 0xb7, 0x8a, 0x3d,
+};
+static const unsigned char kat857_addin1[] = {
+ 0x9b, 0xb6, 0xa9, 0x5d, 0xe1, 0xb4, 0xbe, 0x88, 0x41, 0xb7, 0x2e, 0xa4,
+ 0x1e, 0xb4, 0x46, 0xb4, 0x3b, 0x26, 0x9d, 0x0b, 0x9e, 0x39, 0x4b, 0x35,
+ 0x6e, 0x68, 0x83, 0xc3, 0x1d, 0x8d, 0x66, 0xcf,
+};
+static const unsigned char kat857_retbits[] = {
+ 0x82, 0x69, 0x5f, 0xe6, 0x01, 0x42, 0xc6, 0x6f, 0xb6, 0x66, 0x5b, 0xf9,
+ 0x0e, 0x6f, 0x52, 0x83, 0x9b, 0x95, 0x6f, 0xe2, 0x6e, 0xcf, 0xb7, 0xfb,
+ 0x02, 0xd1, 0xff, 0x59, 0xf8, 0x23, 0x1d, 0x30, 0x7e, 0x1a, 0xe3, 0x8a,
+ 0x52, 0x86, 0x39, 0x45, 0xda, 0xda, 0x62, 0x6d, 0x6e, 0x32, 0xa0, 0xc2,
+ 0x16, 0xdf, 0x0a, 0x72, 0x24, 0x0a, 0xf2, 0x87, 0x14, 0x48, 0x3f, 0x0e,
+ 0xc8, 0x63, 0xee, 0x7c,
+};
+static const struct drbg_kat_no_reseed kat857_t = {
+ 1, kat857_entropyin, kat857_nonce, kat857_persstr,
+ kat857_addin0, kat857_addin1, kat857_retbits
+};
+static const struct drbg_kat kat857 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat857_t
+};
+
+static const unsigned char kat858_entropyin[] = {
+ 0x79, 0x4a, 0xbe, 0x2c, 0x9f, 0x06, 0x5b, 0xfc, 0xae, 0x64, 0x7a, 0xa6,
+ 0x2c, 0xf6, 0x88, 0xfd, 0x69, 0x41, 0x60, 0x56, 0x5d, 0x87, 0xf2, 0xfb,
+ 0xd5, 0x9f, 0xa1, 0xe4, 0x26, 0x20, 0x60, 0x33,
+};
+static const unsigned char kat858_nonce[] = {0};
+static const unsigned char kat858_persstr[] = {0};
+static const unsigned char kat858_addin0[] = {
+ 0xff, 0x50, 0x9f, 0xa4, 0x60, 0x00, 0x0b, 0x3c, 0xa3, 0xe2, 0x93, 0x0d,
+ 0x1a, 0x3d, 0xd1, 0x70, 0xc1, 0xb8, 0xca, 0x18, 0x25, 0x03, 0xec, 0x12,
+ 0xd4, 0x9d, 0x70, 0x83, 0xf6, 0xa9, 0xda, 0xed,
+};
+static const unsigned char kat858_addin1[] = {
+ 0x6a, 0xcc, 0xd0, 0x03, 0x1e, 0x49, 0xe4, 0xeb, 0x08, 0x5d, 0x0e, 0x18,
+ 0xa0, 0x7d, 0x89, 0xa0, 0x5d, 0x6a, 0x1b, 0x15, 0x24, 0x68, 0x25, 0xd8,
+ 0x65, 0xc0, 0x0a, 0xb0, 0x42, 0x9b, 0xb3, 0x3b,
+};
+static const unsigned char kat858_retbits[] = {
+ 0x5b, 0x5c, 0xa6, 0x75, 0xf5, 0xe2, 0x46, 0xb8, 0x5a, 0xd3, 0x1a, 0xba,
+ 0xf2, 0x66, 0x04, 0x51, 0x50, 0x30, 0x9d, 0x39, 0xb1, 0x8d, 0x30, 0x19,
+ 0x0c, 0x18, 0x60, 0xde, 0xf3, 0xe0, 0x75, 0x01, 0xcb, 0x0b, 0xed, 0x8c,
+ 0x57, 0xf5, 0x36, 0x69, 0xc0, 0xb4, 0xf5, 0x9b, 0xf1, 0xe3, 0x0e, 0x24,
+ 0x1b, 0x59, 0x37, 0xd6, 0xf8, 0x85, 0x2c, 0xcb, 0x0b, 0x62, 0x35, 0x70,
+ 0x20, 0x52, 0xd9, 0x5a,
+};
+static const struct drbg_kat_no_reseed kat858_t = {
+ 2, kat858_entropyin, kat858_nonce, kat858_persstr,
+ kat858_addin0, kat858_addin1, kat858_retbits
+};
+static const struct drbg_kat kat858 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat858_t
+};
+
+static const unsigned char kat859_entropyin[] = {
+ 0xa0, 0xcd, 0x3d, 0x5f, 0x72, 0x6a, 0x1a, 0x84, 0x7e, 0x3d, 0x8f, 0xa0,
+ 0x29, 0x31, 0x98, 0xfe, 0xe6, 0x7c, 0xee, 0x2f, 0xe6, 0xfa, 0x6b, 0xd2,
+ 0xc9, 0x0b, 0x17, 0x22, 0x88, 0xe0, 0xfb, 0x0d,
+};
+static const unsigned char kat859_nonce[] = {0};
+static const unsigned char kat859_persstr[] = {0};
+static const unsigned char kat859_addin0[] = {
+ 0xb7, 0x68, 0x33, 0x1b, 0x82, 0xe4, 0x52, 0x72, 0xca, 0x84, 0x1d, 0x38,
+ 0x67, 0x45, 0x77, 0x88, 0xd1, 0x94, 0x9a, 0xf1, 0xfe, 0x1c, 0x2e, 0x01,
+ 0x84, 0xa8, 0xcf, 0x91, 0xdb, 0xda, 0x63, 0xfb,
+};
+static const unsigned char kat859_addin1[] = {
+ 0x83, 0x25, 0x75, 0x4c, 0x9a, 0xee, 0x9b, 0xd5, 0x86, 0x2e, 0x42, 0x92,
+ 0xe2, 0x95, 0x69, 0xaa, 0x37, 0xd3, 0x59, 0x8e, 0x38, 0xe1, 0x20, 0x3c,
+ 0x61, 0x7f, 0x04, 0x30, 0xf8, 0x6c, 0x02, 0x51,
+};
+static const unsigned char kat859_retbits[] = {
+ 0x74, 0x1a, 0x10, 0x3e, 0x00, 0xaa, 0x20, 0x21, 0x0b, 0xbb, 0x0a, 0x90,
+ 0x1f, 0x77, 0xfa, 0x35, 0x44, 0x2f, 0xfa, 0x90, 0xf4, 0xc1, 0x71, 0x19,
+ 0x4e, 0xc9, 0xa5, 0x44, 0x64, 0x4f, 0x8c, 0x40, 0xd1, 0x22, 0xb8, 0x36,
+ 0x43, 0x00, 0x2e, 0xa5, 0x0d, 0xce, 0x14, 0xfa, 0xf7, 0x64, 0xa7, 0x93,
+ 0x72, 0x54, 0x43, 0x2c, 0x7d, 0xa7, 0xe5, 0xc3, 0xf8, 0x93, 0x6f, 0x32,
+ 0xb5, 0xc2, 0x1c, 0x9e,
+};
+static const struct drbg_kat_no_reseed kat859_t = {
+ 3, kat859_entropyin, kat859_nonce, kat859_persstr,
+ kat859_addin0, kat859_addin1, kat859_retbits
+};
+static const struct drbg_kat kat859 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat859_t
+};
+
+static const unsigned char kat860_entropyin[] = {
+ 0x45, 0xf8, 0xca, 0xde, 0xc2, 0xfa, 0x44, 0x72, 0x34, 0x7f, 0x6a, 0xce,
+ 0x4a, 0xb0, 0x4c, 0x04, 0xa9, 0x19, 0x1f, 0x79, 0x4b, 0x03, 0x1e, 0x61,
+ 0x5b, 0xbc, 0xf9, 0xe7, 0x16, 0xc9, 0x41, 0xdd,
+};
+static const unsigned char kat860_nonce[] = {0};
+static const unsigned char kat860_persstr[] = {0};
+static const unsigned char kat860_addin0[] = {
+ 0xd8, 0x84, 0xd5, 0x90, 0x1e, 0xd1, 0xc6, 0xdc, 0x3f, 0xcd, 0x54, 0xac,
+ 0xe3, 0xe3, 0x58, 0x57, 0x32, 0x60, 0xd7, 0x33, 0xa6, 0x93, 0x05, 0x66,
+ 0x39, 0x40, 0x32, 0x8c, 0x45, 0xd3, 0x11, 0xe0,
+};
+static const unsigned char kat860_addin1[] = {
+ 0x11, 0xf0, 0xd7, 0xa4, 0x0b, 0x12, 0x44, 0x18, 0xa5, 0x0e, 0xb5, 0x02,
+ 0x41, 0x09, 0x5f, 0x0c, 0x6a, 0x89, 0xac, 0xb4, 0xc1, 0x6a, 0x20, 0x57,
+ 0x19, 0xc5, 0x15, 0x58, 0xde, 0x07, 0x7e, 0x6c,
+};
+static const unsigned char kat860_retbits[] = {
+ 0x35, 0x59, 0xd5, 0xff, 0x99, 0x95, 0xe5, 0x5d, 0x04, 0x7f, 0x43, 0xa6,
+ 0xb3, 0xa2, 0x97, 0x2b, 0x76, 0x6f, 0xdf, 0xec, 0xbb, 0xa5, 0x7f, 0xc9,
+ 0x2a, 0xc0, 0x6f, 0xcd, 0x66, 0x72, 0xb9, 0x86, 0x03, 0x19, 0x91, 0x60,
+ 0x69, 0x8c, 0x04, 0x52, 0x60, 0x85, 0xc0, 0x30, 0x5d, 0xb2, 0x04, 0x11,
+ 0xac, 0x56, 0x14, 0xa5, 0xeb, 0xc2, 0x74, 0x4c, 0x11, 0xb9, 0x12, 0x1c,
+ 0xd5, 0x68, 0x45, 0x27,
+};
+static const struct drbg_kat_no_reseed kat860_t = {
+ 4, kat860_entropyin, kat860_nonce, kat860_persstr,
+ kat860_addin0, kat860_addin1, kat860_retbits
+};
+static const struct drbg_kat kat860 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat860_t
+};
+
+static const unsigned char kat861_entropyin[] = {
+ 0xe9, 0xe8, 0xdf, 0x90, 0xbf, 0xf8, 0x56, 0xeb, 0x0b, 0x2c, 0xbf, 0x46,
+ 0x53, 0x91, 0xec, 0x55, 0x4e, 0xf3, 0xef, 0x4e, 0x16, 0xfb, 0xcd, 0xe0,
+ 0x67, 0xae, 0xf8, 0x38, 0x6e, 0xe7, 0x34, 0x28,
+};
+static const unsigned char kat861_nonce[] = {0};
+static const unsigned char kat861_persstr[] = {0};
+static const unsigned char kat861_addin0[] = {
+ 0x0c, 0x1d, 0xcd, 0x0a, 0x54, 0x71, 0x47, 0x65, 0xab, 0xf5, 0x01, 0x7c,
+ 0xac, 0xd1, 0xb1, 0x5b, 0x20, 0x9f, 0x2d, 0x6c, 0x19, 0xc7, 0xfc, 0xbf,
+ 0xf7, 0x22, 0xb7, 0xa5, 0x7f, 0xab, 0x4e, 0x94,
+};
+static const unsigned char kat861_addin1[] = {
+ 0x5b, 0xa7, 0xcf, 0xa9, 0xc3, 0x61, 0x95, 0x65, 0xe7, 0x70, 0xb9, 0x0c,
+ 0x17, 0xae, 0x60, 0xfe, 0x73, 0x6d, 0xd8, 0x79, 0x22, 0xc2, 0xc6, 0xca,
+ 0x0d, 0x4c, 0xac, 0x99, 0xc0, 0x82, 0x21, 0x8e,
+};
+static const unsigned char kat861_retbits[] = {
+ 0x80, 0x15, 0x9b, 0xd9, 0xbd, 0x26, 0x97, 0x05, 0xcf, 0xcd, 0xc2, 0x80,
+ 0xe7, 0x20, 0x02, 0x4f, 0x8a, 0x29, 0x99, 0x83, 0x32, 0x22, 0xac, 0x61,
+ 0xf8, 0x0f, 0x6c, 0xaf, 0xcd, 0x7f, 0x92, 0x0d, 0xe1, 0x68, 0xfb, 0x95,
+ 0xcb, 0x89, 0xd0, 0xa8, 0x0a, 0x84, 0x1d, 0xff, 0x92, 0xda, 0x31, 0x66,
+ 0xcc, 0xb0, 0xf8, 0x6d, 0x7a, 0x67, 0x80, 0x21, 0xd1, 0x1c, 0x0e, 0x99,
+ 0x91, 0x39, 0x01, 0x7a,
+};
+static const struct drbg_kat_no_reseed kat861_t = {
+ 5, kat861_entropyin, kat861_nonce, kat861_persstr,
+ kat861_addin0, kat861_addin1, kat861_retbits
+};
+static const struct drbg_kat kat861 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat861_t
+};
+
+static const unsigned char kat862_entropyin[] = {
+ 0x99, 0xb7, 0x33, 0x81, 0xc4, 0xe5, 0x30, 0xed, 0xcd, 0x22, 0xc7, 0x8d,
+ 0x69, 0x5e, 0x3d, 0x49, 0xa8, 0x08, 0xb3, 0x12, 0xb7, 0x20, 0x7e, 0xa0,
+ 0xc5, 0x81, 0x77, 0x1e, 0x14, 0xf1, 0xf0, 0x4f,
+};
+static const unsigned char kat862_nonce[] = {0};
+static const unsigned char kat862_persstr[] = {0};
+static const unsigned char kat862_addin0[] = {
+ 0xd8, 0x65, 0x17, 0x81, 0xef, 0x93, 0x53, 0x37, 0x65, 0x33, 0x15, 0x2c,
+ 0xdf, 0x05, 0xc6, 0x88, 0x6b, 0x9d, 0xd7, 0xd8, 0x8a, 0xab, 0xa6, 0x69,
+ 0x71, 0x52, 0x07, 0xe4, 0x8c, 0x12, 0x26, 0x36,
+};
+static const unsigned char kat862_addin1[] = {
+ 0x63, 0xd4, 0x5c, 0x3d, 0xcd, 0xac, 0xc4, 0x7d, 0x7f, 0x54, 0x99, 0x92,
+ 0xd0, 0xe3, 0x58, 0xaa, 0x96, 0xc5, 0xb7, 0xf2, 0x93, 0xa7, 0x7e, 0x82,
+ 0xcc, 0xc3, 0xd2, 0xbb, 0xfc, 0x9f, 0x61, 0xda,
+};
+static const unsigned char kat862_retbits[] = {
+ 0xa4, 0xb1, 0xa4, 0xf3, 0x24, 0xe9, 0x1a, 0x41, 0x0a, 0xdd, 0x56, 0xf0,
+ 0x4d, 0xb8, 0xac, 0xbc, 0xfc, 0xe7, 0xa4, 0x34, 0xb9, 0x50, 0x98, 0xc0,
+ 0x99, 0x4d, 0x9c, 0xa7, 0xf0, 0x44, 0x09, 0x5c, 0x82, 0xc9, 0x7d, 0xac,
+ 0xd1, 0x0a, 0xc7, 0xdf, 0x03, 0x2b, 0x6c, 0x46, 0xcd, 0x48, 0xc1, 0x93,
+ 0x3c, 0xbd, 0x4e, 0x64, 0x5d, 0x6f, 0x0b, 0x2c, 0x54, 0x9d, 0x8f, 0x67,
+ 0xe7, 0xf8, 0xb6, 0x2c,
+};
+static const struct drbg_kat_no_reseed kat862_t = {
+ 6, kat862_entropyin, kat862_nonce, kat862_persstr,
+ kat862_addin0, kat862_addin1, kat862_retbits
+};
+static const struct drbg_kat kat862 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat862_t
+};
+
+static const unsigned char kat863_entropyin[] = {
+ 0x73, 0xed, 0x99, 0x42, 0xec, 0xab, 0xfa, 0x13, 0x2b, 0x22, 0x5d, 0x37,
+ 0xe9, 0x3c, 0x49, 0xec, 0x74, 0x4d, 0xc1, 0x24, 0x3d, 0x60, 0x68, 0xf4,
+ 0xbc, 0x53, 0x8d, 0xcc, 0x7e, 0x97, 0x2c, 0x36,
+};
+static const unsigned char kat863_nonce[] = {0};
+static const unsigned char kat863_persstr[] = {0};
+static const unsigned char kat863_addin0[] = {
+ 0x63, 0x45, 0xf9, 0x47, 0x92, 0xf9, 0x0a, 0x0d, 0x78, 0x34, 0x27, 0x9c,
+ 0xa9, 0xce, 0xc7, 0x5f, 0xc7, 0x82, 0x49, 0xbf, 0xf3, 0xfc, 0xbb, 0xe9,
+ 0x4e, 0xbb, 0xa8, 0x6a, 0xd7, 0x9b, 0xe0, 0x54,
+};
+static const unsigned char kat863_addin1[] = {
+ 0x6a, 0x81, 0x7e, 0xfb, 0x5c, 0x93, 0x0c, 0x14, 0xed, 0xd9, 0x6d, 0x4c,
+ 0xe8, 0x8e, 0x86, 0x36, 0xd3, 0x99, 0xc1, 0xd2, 0x97, 0xf3, 0xde, 0x59,
+ 0x30, 0x25, 0x29, 0x23, 0x02, 0x1e, 0x69, 0x37,
+};
+static const unsigned char kat863_retbits[] = {
+ 0x35, 0x38, 0x21, 0xf8, 0xc8, 0xd4, 0xb6, 0x83, 0xc0, 0x82, 0xcf, 0xf6,
+ 0x89, 0xc3, 0xa8, 0xf9, 0xc8, 0x1e, 0xb8, 0x9f, 0xa7, 0x01, 0x1b, 0xcb,
+ 0x81, 0xc1, 0x62, 0x17, 0x26, 0x20, 0x30, 0xe9, 0x34, 0x1e, 0x98, 0x5c,
+ 0xa1, 0xd4, 0xf6, 0x01, 0x97, 0xe8, 0x66, 0x02, 0x26, 0xa4, 0x75, 0x6f,
+ 0xd0, 0x62, 0x10, 0x65, 0x5f, 0xf4, 0xe9, 0x8d, 0x7d, 0x0e, 0x70, 0x29,
+ 0x7b, 0x84, 0x91, 0xe8,
+};
+static const struct drbg_kat_no_reseed kat863_t = {
+ 7, kat863_entropyin, kat863_nonce, kat863_persstr,
+ kat863_addin0, kat863_addin1, kat863_retbits
+};
+static const struct drbg_kat kat863 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat863_t
+};
+
+static const unsigned char kat864_entropyin[] = {
+ 0x9b, 0x52, 0xae, 0x68, 0x2c, 0x64, 0x19, 0x1d, 0x58, 0x88, 0x79, 0xee,
+ 0x9c, 0x73, 0x6a, 0xb2, 0xc2, 0xbc, 0x51, 0x5c, 0xb0, 0x3c, 0xb6, 0xdf,
+ 0x7b, 0x62, 0x81, 0xa1, 0x25, 0x34, 0xb7, 0xb7,
+};
+static const unsigned char kat864_nonce[] = {0};
+static const unsigned char kat864_persstr[] = {0};
+static const unsigned char kat864_addin0[] = {
+ 0x30, 0xeb, 0xa1, 0x91, 0xb8, 0x53, 0xfb, 0xe8, 0x38, 0xd0, 0x7e, 0x07,
+ 0x80, 0x5c, 0x0a, 0x17, 0x18, 0xd9, 0xd1, 0x40, 0x98, 0x26, 0x91, 0xd1,
+ 0xf0, 0x3f, 0x17, 0x9d, 0x59, 0x4c, 0xaa, 0xa7,
+};
+static const unsigned char kat864_addin1[] = {
+ 0xd7, 0x2d, 0x15, 0x68, 0xbf, 0x4f, 0x91, 0x94, 0x63, 0x44, 0x0b, 0xb6,
+ 0x8e, 0x96, 0x6a, 0x0a, 0x23, 0xbc, 0x44, 0xe9, 0x9d, 0xa9, 0x0f, 0x0e,
+ 0xb7, 0x5c, 0xec, 0xc2, 0xdf, 0x47, 0x15, 0x31,
+};
+static const unsigned char kat864_retbits[] = {
+ 0xd4, 0x18, 0xa9, 0xed, 0xb9, 0xe6, 0xd1, 0xa1, 0x85, 0xf9, 0xb4, 0x19,
+ 0xe8, 0x54, 0x8f, 0xa8, 0x49, 0x5e, 0x55, 0x9a, 0xb7, 0x51, 0xc4, 0xb2,
+ 0x86, 0xfd, 0x8b, 0x2e, 0x7d, 0xb9, 0x39, 0x2d, 0xd1, 0x93, 0x6f, 0x8c,
+ 0xc1, 0xe7, 0x11, 0xaa, 0x86, 0xdc, 0x83, 0x54, 0xbb, 0x97, 0xcc, 0xfe,
+ 0x2b, 0xcd, 0x9e, 0xdb, 0xbb, 0x38, 0x3f, 0x1c, 0xab, 0xe5, 0xb4, 0x4a,
+ 0xa1, 0x4e, 0x2a, 0x7d,
+};
+static const struct drbg_kat_no_reseed kat864_t = {
+ 8, kat864_entropyin, kat864_nonce, kat864_persstr,
+ kat864_addin0, kat864_addin1, kat864_retbits
+};
+static const struct drbg_kat kat864 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat864_t
+};
+
+static const unsigned char kat865_entropyin[] = {
+ 0xcd, 0x70, 0x34, 0x83, 0x9b, 0x3e, 0x9f, 0xb2, 0x8b, 0xdb, 0x0c, 0xeb,
+ 0x99, 0x64, 0xe8, 0x68, 0x54, 0xe4, 0x7c, 0x8c, 0x00, 0xd2, 0x4e, 0x82,
+ 0x91, 0x5f, 0x80, 0x4d, 0xbb, 0x93, 0x2c, 0xfc,
+};
+static const unsigned char kat865_nonce[] = {0};
+static const unsigned char kat865_persstr[] = {0};
+static const unsigned char kat865_addin0[] = {
+ 0x49, 0xb9, 0x95, 0xf3, 0x95, 0x18, 0x54, 0x72, 0xef, 0x60, 0xde, 0xe3,
+ 0x27, 0xa6, 0xe7, 0xc6, 0xaf, 0x92, 0xa3, 0x5a, 0x61, 0x14, 0xaa, 0x52,
+ 0xe3, 0xf7, 0xb2, 0x35, 0xd5, 0x0d, 0x35, 0x4d,
+};
+static const unsigned char kat865_addin1[] = {
+ 0x03, 0xfc, 0x0e, 0x03, 0xae, 0xbd, 0xf5, 0x94, 0x12, 0x8f, 0x35, 0x8d,
+ 0xbb, 0xd8, 0x46, 0xae, 0x02, 0x38, 0xc4, 0x23, 0x54, 0xf8, 0xd2, 0x60,
+ 0x1d, 0x52, 0x23, 0x78, 0x06, 0xab, 0x87, 0x2e,
+};
+static const unsigned char kat865_retbits[] = {
+ 0xc4, 0xf3, 0x55, 0x0b, 0x9f, 0xc5, 0x9c, 0x01, 0xc6, 0x51, 0x9b, 0xbc,
+ 0x8f, 0xb5, 0xef, 0xda, 0x4d, 0xfc, 0x69, 0x89, 0x00, 0xa7, 0x74, 0xb0,
+ 0x58, 0xdd, 0xa7, 0xd5, 0xe1, 0x30, 0x99, 0xd7, 0x34, 0x8f, 0xa0, 0x78,
+ 0x37, 0x2a, 0x3b, 0x8c, 0xca, 0xa7, 0x5c, 0xee, 0xfc, 0x4f, 0x46, 0xa2,
+ 0x63, 0x78, 0xcf, 0x7e, 0x8a, 0x64, 0xef, 0x7f, 0x98, 0xbe, 0x70, 0xdc,
+ 0x05, 0x40, 0xe5, 0xb7,
+};
+static const struct drbg_kat_no_reseed kat865_t = {
+ 9, kat865_entropyin, kat865_nonce, kat865_persstr,
+ kat865_addin0, kat865_addin1, kat865_retbits
+};
+static const struct drbg_kat kat865 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat865_t
+};
+
+static const unsigned char kat866_entropyin[] = {
+ 0x54, 0x62, 0x78, 0xab, 0x02, 0xcb, 0x86, 0x87, 0x01, 0xe0, 0xfd, 0x1f,
+ 0xf0, 0xcd, 0x90, 0x18, 0x25, 0x96, 0xda, 0x85, 0xe8, 0xd1, 0x47, 0xda,
+ 0xd0, 0xe7, 0x83, 0x74, 0x65, 0x6c, 0x17, 0x2a,
+};
+static const unsigned char kat866_nonce[] = {0};
+static const unsigned char kat866_persstr[] = {0};
+static const unsigned char kat866_addin0[] = {
+ 0x4c, 0xb5, 0x45, 0x97, 0xdb, 0x1c, 0x8c, 0xd5, 0x24, 0x1a, 0x57, 0x2d,
+ 0x5d, 0x4a, 0x29, 0xb6, 0x0e, 0x70, 0x0e, 0xce, 0x3a, 0xcf, 0x32, 0x44,
+ 0x74, 0x87, 0xbe, 0xe5, 0x1d, 0x6c, 0x0f, 0xff,
+};
+static const unsigned char kat866_addin1[] = {
+ 0x28, 0xaa, 0x5b, 0x18, 0x43, 0x63, 0x44, 0x57, 0xb3, 0x87, 0x33, 0xa3,
+ 0x97, 0x79, 0x78, 0x7d, 0x81, 0x48, 0xe7, 0x59, 0x7d, 0xe0, 0x83, 0x1a,
+ 0x0c, 0x78, 0x19, 0xfb, 0x23, 0xc2, 0x47, 0xbb,
+};
+static const unsigned char kat866_retbits[] = {
+ 0x12, 0x1b, 0xf6, 0x34, 0x3b, 0x38, 0x7e, 0x49, 0x22, 0xa8, 0x55, 0xd2,
+ 0x9c, 0x42, 0xb1, 0xf3, 0xb6, 0x5d, 0xef, 0xe5, 0x9e, 0xe9, 0xb7, 0xd9,
+ 0x3a, 0x60, 0x12, 0xec, 0x8a, 0x97, 0x6f, 0xd7, 0x2f, 0x98, 0x44, 0xfa,
+ 0xce, 0x7f, 0xdd, 0x25, 0xdb, 0xaa, 0x3e, 0xf6, 0x17, 0x46, 0xc9, 0x4a,
+ 0x0f, 0x0e, 0xf0, 0x19, 0x5d, 0x5c, 0x20, 0x95, 0x05, 0xee, 0xc7, 0x16,
+ 0xbe, 0x33, 0x67, 0x1c,
+};
+static const struct drbg_kat_no_reseed kat866_t = {
+ 10, kat866_entropyin, kat866_nonce, kat866_persstr,
+ kat866_addin0, kat866_addin1, kat866_retbits
+};
+static const struct drbg_kat kat866 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat866_t
+};
+
+static const unsigned char kat867_entropyin[] = {
+ 0x12, 0xbe, 0x28, 0x86, 0x30, 0x27, 0x64, 0x84, 0x5e, 0x40, 0x1a, 0x63,
+ 0x8a, 0x73, 0x6d, 0xb7, 0xd8, 0xbc, 0xc3, 0xe4, 0x57, 0xfd, 0x71, 0xe5,
+ 0xa4, 0x73, 0xc9, 0xa2, 0x4d, 0xf9, 0x04, 0x2c,
+};
+static const unsigned char kat867_nonce[] = {0};
+static const unsigned char kat867_persstr[] = {0};
+static const unsigned char kat867_addin0[] = {
+ 0x15, 0xee, 0x34, 0x16, 0x68, 0x13, 0x92, 0xe7, 0xc5, 0xc9, 0x8e, 0xcf,
+ 0xc6, 0xef, 0x5b, 0x98, 0x65, 0x8f, 0x8b, 0x0d, 0x98, 0x74, 0x3d, 0x9c,
+ 0x72, 0xe8, 0x2a, 0x4f, 0x61, 0x14, 0xc8, 0x3a,
+};
+static const unsigned char kat867_addin1[] = {
+ 0x72, 0x64, 0x34, 0xbe, 0x41, 0xc4, 0x09, 0xd1, 0xa2, 0xac, 0x05, 0x3d,
+ 0x8b, 0x8d, 0x00, 0x9d, 0x0b, 0x97, 0x85, 0xb0, 0xc7, 0xff, 0x15, 0x22,
+ 0x0e, 0x48, 0x43, 0x6f, 0xf0, 0xa3, 0x9e, 0xe6,
+};
+static const unsigned char kat867_retbits[] = {
+ 0x34, 0xa2, 0x92, 0xfe, 0xe0, 0x5c, 0xac, 0xd7, 0x89, 0x74, 0xb5, 0x73,
+ 0x62, 0xf5, 0x93, 0x7b, 0x1c, 0xaf, 0x5d, 0x0c, 0xc4, 0xe5, 0x2b, 0xc3,
+ 0xed, 0x9c, 0x20, 0xa8, 0x13, 0xf6, 0x86, 0xab, 0x74, 0x64, 0x39, 0x2c,
+ 0x8e, 0xb4, 0x60, 0x76, 0x72, 0xc9, 0x7c, 0x2f, 0x40, 0xfd, 0xf9, 0x19,
+ 0x39, 0x0b, 0xac, 0xa1, 0xd3, 0x95, 0x67, 0x64, 0x66, 0x81, 0x3c, 0x82,
+ 0x2c, 0xcd, 0x3f, 0xa1,
+};
+static const struct drbg_kat_no_reseed kat867_t = {
+ 11, kat867_entropyin, kat867_nonce, kat867_persstr,
+ kat867_addin0, kat867_addin1, kat867_retbits
+};
+static const struct drbg_kat kat867 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat867_t
+};
+
+static const unsigned char kat868_entropyin[] = {
+ 0x6f, 0x02, 0x1d, 0xc9, 0x32, 0x49, 0xca, 0xb7, 0xdb, 0x93, 0xd5, 0xdd,
+ 0x24, 0x5a, 0xe9, 0x01, 0xd2, 0xa9, 0x49, 0x7f, 0xc9, 0xc1, 0x52, 0x81,
+ 0x1a, 0x4a, 0x1a, 0x9e, 0xeb, 0xcc, 0x28, 0xc9,
+};
+static const unsigned char kat868_nonce[] = {0};
+static const unsigned char kat868_persstr[] = {0};
+static const unsigned char kat868_addin0[] = {
+ 0xfa, 0xca, 0xce, 0x92, 0x63, 0xb0, 0xee, 0x3b, 0x22, 0x90, 0x80, 0xf0,
+ 0x2f, 0xc9, 0x08, 0x3c, 0x2c, 0xfe, 0xf7, 0xb6, 0xe1, 0xe6, 0xd7, 0x64,
+ 0x82, 0x50, 0x71, 0x50, 0x17, 0x20, 0xdb, 0xe8,
+};
+static const unsigned char kat868_addin1[] = {
+ 0xd2, 0xeb, 0xd0, 0xd8, 0x53, 0x7a, 0xc9, 0xc3, 0x7f, 0x62, 0x08, 0xcb,
+ 0x20, 0x74, 0xd7, 0xe7, 0x25, 0xa2, 0x12, 0x7d, 0xae, 0x15, 0x04, 0x25,
+ 0xe7, 0xaa, 0x29, 0xd8, 0xef, 0xb3, 0xcd, 0x05,
+};
+static const unsigned char kat868_retbits[] = {
+ 0xf7, 0x6b, 0xf3, 0xb1, 0x91, 0x42, 0xd8, 0x29, 0x4f, 0xc4, 0x47, 0x64,
+ 0xb1, 0x8c, 0xe6, 0x92, 0x30, 0xac, 0xa3, 0xa9, 0x6d, 0xee, 0xf4, 0xfc,
+ 0x20, 0x8e, 0x61, 0x20, 0x5c, 0x5a, 0x67, 0xa4, 0xfc, 0x85, 0x1a, 0x4d,
+ 0x47, 0x06, 0xc0, 0xf4, 0x02, 0xff, 0xb0, 0xf7, 0xad, 0xbd, 0xe4, 0xd4,
+ 0x58, 0x48, 0x40, 0x5b, 0x66, 0x2f, 0x45, 0x4e, 0x5f, 0xbc, 0x11, 0xe4,
+ 0xa3, 0x33, 0x37, 0x35,
+};
+static const struct drbg_kat_no_reseed kat868_t = {
+ 12, kat868_entropyin, kat868_nonce, kat868_persstr,
+ kat868_addin0, kat868_addin1, kat868_retbits
+};
+static const struct drbg_kat kat868 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat868_t
+};
+
+static const unsigned char kat869_entropyin[] = {
+ 0xfb, 0x91, 0x31, 0x08, 0x67, 0x43, 0xa2, 0x0e, 0x48, 0x0a, 0x42, 0x60,
+ 0xe2, 0x2d, 0xdf, 0xb0, 0xed, 0xae, 0xd1, 0x47, 0xab, 0x70, 0x8c, 0x25,
+ 0x36, 0xc1, 0x7a, 0xcf, 0x1b, 0xd6, 0xeb, 0x1d,
+};
+static const unsigned char kat869_nonce[] = {0};
+static const unsigned char kat869_persstr[] = {0};
+static const unsigned char kat869_addin0[] = {
+ 0x04, 0x11, 0x7f, 0x27, 0xfe, 0xc1, 0xf4, 0x4d, 0x44, 0xd0, 0xb8, 0x6a,
+ 0x23, 0x18, 0x20, 0xc0, 0x9a, 0x6d, 0xc7, 0xb6, 0x41, 0x81, 0x75, 0x55,
+ 0x8f, 0xb6, 0xa0, 0x28, 0xf8, 0x35, 0xcb, 0xbb,
+};
+static const unsigned char kat869_addin1[] = {
+ 0x81, 0x31, 0x89, 0x58, 0xf1, 0xd8, 0x05, 0x9f, 0xf7, 0xd3, 0xc5, 0x92,
+ 0xee, 0x24, 0x90, 0x1c, 0x61, 0x9d, 0x3b, 0x74, 0xd9, 0x6b, 0xaf, 0xc5,
+ 0x11, 0x75, 0x7a, 0x7b, 0x1b, 0xde, 0x40, 0x5e,
+};
+static const unsigned char kat869_retbits[] = {
+ 0x4b, 0x16, 0x09, 0x41, 0x29, 0xe4, 0x1c, 0xf3, 0x06, 0x1c, 0xcc, 0x8e,
+ 0x25, 0x7a, 0x83, 0x6c, 0x3c, 0x3d, 0x09, 0x97, 0x21, 0x3c, 0xda, 0xb3,
+ 0x2a, 0x18, 0x8c, 0x7c, 0x8c, 0x37, 0x58, 0xb4, 0xb9, 0x22, 0x4e, 0x38,
+ 0x44, 0xa3, 0xa8, 0x85, 0x56, 0xc9, 0xcf, 0xa6, 0x29, 0xe3, 0xce, 0x0b,
+ 0x0b, 0x43, 0x65, 0x28, 0xb2, 0x6a, 0x1d, 0xd5, 0x81, 0x1f, 0xe1, 0xca,
+ 0xf8, 0x8b, 0xa0, 0x33,
+};
+static const struct drbg_kat_no_reseed kat869_t = {
+ 13, kat869_entropyin, kat869_nonce, kat869_persstr,
+ kat869_addin0, kat869_addin1, kat869_retbits
+};
+static const struct drbg_kat kat869 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat869_t
+};
+
+static const unsigned char kat870_entropyin[] = {
+ 0x73, 0xd9, 0x63, 0x4c, 0xef, 0x19, 0x14, 0x44, 0xbf, 0x3e, 0xd4, 0x98,
+ 0xc3, 0x34, 0x3e, 0x6a, 0xef, 0x97, 0x88, 0x54, 0x93, 0xe0, 0x80, 0x5e,
+ 0xd0, 0x11, 0x07, 0xdd, 0xd3, 0xd1, 0x94, 0xb7,
+};
+static const unsigned char kat870_nonce[] = {0};
+static const unsigned char kat870_persstr[] = {0};
+static const unsigned char kat870_addin0[] = {
+ 0xda, 0xcd, 0xc1, 0xa5, 0xc9, 0xb4, 0x21, 0x5d, 0xa6, 0xb1, 0x52, 0x0c,
+ 0x22, 0x77, 0x24, 0xff, 0xc8, 0x88, 0x94, 0x5a, 0x3c, 0xf1, 0xdb, 0x2d,
+ 0x2f, 0xf5, 0xc4, 0x82, 0x66, 0x95, 0xaf, 0xd3,
+};
+static const unsigned char kat870_addin1[] = {
+ 0xf2, 0x91, 0xea, 0xc0, 0x29, 0x5f, 0x5e, 0x09, 0x36, 0x54, 0x20, 0x10,
+ 0xdf, 0x7c, 0xa9, 0xc4, 0x17, 0xcd, 0x78, 0xf7, 0xa1, 0x09, 0x65, 0x5e,
+ 0x90, 0x50, 0xfd, 0x50, 0x2a, 0xd9, 0x1d, 0x4c,
+};
+static const unsigned char kat870_retbits[] = {
+ 0x70, 0xb8, 0x81, 0xac, 0xd4, 0x34, 0xf9, 0x0d, 0xa8, 0x78, 0x8b, 0xfe,
+ 0x77, 0x22, 0x61, 0x32, 0xc8, 0xa3, 0xf2, 0x54, 0x42, 0x93, 0xb0, 0xef,
+ 0x74, 0x08, 0x55, 0x95, 0x75, 0xff, 0x0e, 0x52, 0xa1, 0x7a, 0xff, 0x11,
+ 0xb9, 0x60, 0x1a, 0x47, 0x65, 0xe2, 0xab, 0x0c, 0xc9, 0x0f, 0x19, 0xf6,
+ 0x9f, 0xb4, 0x48, 0x55, 0x54, 0xec, 0x0b, 0x17, 0xce, 0xab, 0xde, 0x96,
+ 0x0a, 0x56, 0x65, 0x5d,
+};
+static const struct drbg_kat_no_reseed kat870_t = {
+ 14, kat870_entropyin, kat870_nonce, kat870_persstr,
+ kat870_addin0, kat870_addin1, kat870_retbits
+};
+static const struct drbg_kat kat870 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat870_t
+};
+
+static const unsigned char kat871_entropyin[] = {
+ 0x52, 0x54, 0x4b, 0xe6, 0xee, 0xbf, 0xd2, 0x27, 0x80, 0x9c, 0xde, 0x95,
+ 0xf1, 0x9a, 0x06, 0x2b, 0xdf, 0xf8, 0xad, 0xf9, 0x4a, 0xfa, 0xdf, 0xb6,
+ 0x01, 0x2c, 0x8c, 0x3d, 0x99, 0xd1, 0x7b, 0x8b,
+};
+static const unsigned char kat871_nonce[] = {0};
+static const unsigned char kat871_persstr[] = {
+ 0xb4, 0xad, 0x54, 0x42, 0xe7, 0xbb, 0xba, 0x49, 0x9c, 0x36, 0xfa, 0x52,
+ 0x05, 0x03, 0x79, 0x5e, 0x7f, 0x2a, 0x31, 0xbe, 0x8d, 0x95, 0x94, 0x3e,
+ 0xb3, 0x4d, 0xb5, 0x38, 0xd6, 0x67, 0x23, 0xee,
+};
+static const unsigned char kat871_addin0[] = {0};
+static const unsigned char kat871_addin1[] = {0};
+static const unsigned char kat871_retbits[] = {
+ 0x91, 0xcf, 0x40, 0x38, 0x78, 0xec, 0xca, 0x1f, 0xd4, 0x5d, 0x31, 0xdc,
+ 0x67, 0x63, 0x02, 0xe0, 0x2e, 0x92, 0xd4, 0x47, 0x10, 0xbf, 0x92, 0x00,
+ 0x49, 0x2a, 0xee, 0x1d, 0xe6, 0xd1, 0xb6, 0x4f, 0x34, 0x2c, 0x1a, 0xd8,
+ 0x07, 0xc8, 0x45, 0xb5, 0x39, 0x65, 0x2c, 0xab, 0xe0, 0x34, 0xb6, 0x9f,
+ 0x2e, 0x84, 0xb4, 0x22, 0x0c, 0xf7, 0xcc, 0x1b, 0xa6, 0xee, 0xdd, 0xf8,
+ 0x6d, 0x8f, 0x3d, 0x99,
+};
+static const struct drbg_kat_no_reseed kat871_t = {
+ 0, kat871_entropyin, kat871_nonce, kat871_persstr,
+ kat871_addin0, kat871_addin1, kat871_retbits
+};
+static const struct drbg_kat kat871 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat871_t
+};
+
+static const unsigned char kat872_entropyin[] = {
+ 0x25, 0xf5, 0xec, 0x23, 0x69, 0x5d, 0xb8, 0x15, 0x13, 0x14, 0xd7, 0x9d,
+ 0x5f, 0x8d, 0x3a, 0x6d, 0x2f, 0x1c, 0xf7, 0x44, 0xa0, 0x2c, 0xff, 0x05,
+ 0x8a, 0x31, 0x09, 0x3a, 0xa2, 0x95, 0x0d, 0x5e,
+};
+static const unsigned char kat872_nonce[] = {0};
+static const unsigned char kat872_persstr[] = {
+ 0x6b, 0xc7, 0x75, 0x68, 0x17, 0x6a, 0xd5, 0x9c, 0x72, 0xcb, 0x06, 0x4e,
+ 0x81, 0xc8, 0x0f, 0x8f, 0xf3, 0xbe, 0x2d, 0x4e, 0x2e, 0x1a, 0x46, 0x7d,
+ 0x60, 0x03, 0x1c, 0x6c, 0x19, 0x05, 0xcd, 0xc4,
+};
+static const unsigned char kat872_addin0[] = {0};
+static const unsigned char kat872_addin1[] = {0};
+static const unsigned char kat872_retbits[] = {
+ 0x8a, 0xd6, 0x7e, 0x6d, 0xee, 0x16, 0x8d, 0xa8, 0x30, 0x27, 0x0c, 0x84,
+ 0xfe, 0x6f, 0x54, 0xf2, 0x85, 0x27, 0x06, 0x91, 0xa9, 0x82, 0xaa, 0x32,
+ 0xf0, 0x40, 0xba, 0xf4, 0x3d, 0xea, 0x48, 0x23, 0x87, 0x3a, 0x08, 0xa0,
+ 0xb3, 0xbe, 0xe2, 0x78, 0x4d, 0xb0, 0xf9, 0x38, 0x5c, 0xd8, 0x46, 0xde,
+ 0x32, 0xb4, 0xf4, 0x17, 0xae, 0xb2, 0x3e, 0xfb, 0x85, 0x51, 0xdd, 0xf4,
+ 0xac, 0x1c, 0xff, 0x6a,
+};
+static const struct drbg_kat_no_reseed kat872_t = {
+ 1, kat872_entropyin, kat872_nonce, kat872_persstr,
+ kat872_addin0, kat872_addin1, kat872_retbits
+};
+static const struct drbg_kat kat872 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat872_t
+};
+
+static const unsigned char kat873_entropyin[] = {
+ 0xae, 0xc2, 0xcd, 0x6f, 0x65, 0x78, 0x1d, 0x4e, 0x11, 0x68, 0xba, 0x57,
+ 0x19, 0x12, 0x80, 0x09, 0x8c, 0x39, 0xe3, 0x48, 0xaf, 0x42, 0xb3, 0xf4,
+ 0x5a, 0x79, 0x90, 0x3c, 0x29, 0xde, 0x70, 0xb3,
+};
+static const unsigned char kat873_nonce[] = {0};
+static const unsigned char kat873_persstr[] = {
+ 0xc7, 0x22, 0xc7, 0xd8, 0xc1, 0xfa, 0xd0, 0xd4, 0xff, 0xeb, 0x4f, 0xfc,
+ 0x0c, 0x0f, 0xf0, 0xfb, 0x5a, 0x98, 0xdf, 0x29, 0x5e, 0x32, 0x43, 0x70,
+ 0x7a, 0xce, 0x3c, 0x97, 0x48, 0x3c, 0x4c, 0x17,
+};
+static const unsigned char kat873_addin0[] = {0};
+static const unsigned char kat873_addin1[] = {0};
+static const unsigned char kat873_retbits[] = {
+ 0xa8, 0xe1, 0xfd, 0x99, 0xf1, 0x8a, 0x3b, 0x31, 0x32, 0x25, 0xc9, 0xf6,
+ 0xaf, 0x0c, 0xe0, 0x32, 0x6a, 0x90, 0x71, 0x44, 0xd0, 0x91, 0xb4, 0xdf,
+ 0x1b, 0xf8, 0x44, 0x25, 0x66, 0x58, 0x70, 0xa8, 0x08, 0x01, 0xb0, 0x7f,
+ 0xf7, 0x4c, 0x0f, 0x74, 0x98, 0xf3, 0x7d, 0xcd, 0x34, 0x23, 0x20, 0x70,
+ 0x73, 0x4f, 0x76, 0x0e, 0xb1, 0x9c, 0x96, 0x61, 0x40, 0xe3, 0x56, 0x5a,
+ 0xcc, 0x7c, 0x9c, 0x32,
+};
+static const struct drbg_kat_no_reseed kat873_t = {
+ 2, kat873_entropyin, kat873_nonce, kat873_persstr,
+ kat873_addin0, kat873_addin1, kat873_retbits
+};
+static const struct drbg_kat kat873 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat873_t
+};
+
+static const unsigned char kat874_entropyin[] = {
+ 0x30, 0xe4, 0xa1, 0x76, 0x5b, 0xe1, 0x24, 0x9e, 0xea, 0x46, 0xf2, 0x98,
+ 0xa6, 0x7c, 0x27, 0x1c, 0x2b, 0x34, 0xc6, 0xb5, 0xb7, 0xa5, 0xfb, 0xe9,
+ 0x74, 0x0f, 0xc3, 0x72, 0x9a, 0x80, 0x75, 0x8a,
+};
+static const unsigned char kat874_nonce[] = {0};
+static const unsigned char kat874_persstr[] = {
+ 0x18, 0x35, 0xea, 0xd1, 0xd8, 0x6c, 0x79, 0xc3, 0x36, 0x24, 0xfc, 0xae,
+ 0x73, 0xdb, 0x91, 0xe8, 0x58, 0x31, 0xc1, 0x88, 0x2d, 0x72, 0x8a, 0x3c,
+ 0x19, 0xa0, 0x5f, 0x90, 0x53, 0x3e, 0xbe, 0x8b,
+};
+static const unsigned char kat874_addin0[] = {0};
+static const unsigned char kat874_addin1[] = {0};
+static const unsigned char kat874_retbits[] = {
+ 0x86, 0x69, 0xf2, 0xc2, 0x59, 0x65, 0x94, 0x8b, 0x61, 0xf6, 0x38, 0x8a,
+ 0x0f, 0x0e, 0x0c, 0xb8, 0xb2, 0x86, 0xef, 0x44, 0x42, 0x01, 0xd3, 0xb9,
+ 0x8d, 0x68, 0x45, 0xa7, 0xe1, 0x4d, 0x14, 0x5b, 0xde, 0x1d, 0x01, 0x42,
+ 0x0e, 0x59, 0x0d, 0xff, 0xb6, 0x45, 0xe6, 0xc9, 0x0e, 0x30, 0x56, 0x86,
+ 0xcf, 0x9b, 0x68, 0x5c, 0xa9, 0x5c, 0x97, 0xeb, 0xff, 0x38, 0x64, 0xc6,
+ 0x2a, 0x00, 0x4b, 0xd6,
+};
+static const struct drbg_kat_no_reseed kat874_t = {
+ 3, kat874_entropyin, kat874_nonce, kat874_persstr,
+ kat874_addin0, kat874_addin1, kat874_retbits
+};
+static const struct drbg_kat kat874 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat874_t
+};
+
+static const unsigned char kat875_entropyin[] = {
+ 0xce, 0x80, 0xf4, 0x9a, 0x95, 0x12, 0xb7, 0x64, 0x77, 0xbd, 0x40, 0xac,
+ 0xf3, 0x20, 0xd1, 0xcc, 0xe7, 0x42, 0x56, 0x59, 0x04, 0xef, 0x45, 0xc8,
+ 0x01, 0xd5, 0xbb, 0xd6, 0x20, 0x6d, 0xd2, 0x0f,
+};
+static const unsigned char kat875_nonce[] = {0};
+static const unsigned char kat875_persstr[] = {
+ 0xd2, 0x12, 0x10, 0x1d, 0x3f, 0x55, 0x8c, 0x33, 0x91, 0x5a, 0xca, 0x3f,
+ 0x7c, 0xa3, 0x2b, 0x65, 0xd8, 0xe6, 0x74, 0xc1, 0xa8, 0xc8, 0x80, 0x45,
+ 0x7b, 0xfb, 0xea, 0xe5, 0x9b, 0x87, 0x67, 0x78,
+};
+static const unsigned char kat875_addin0[] = {0};
+static const unsigned char kat875_addin1[] = {0};
+static const unsigned char kat875_retbits[] = {
+ 0x5f, 0xed, 0x82, 0xf1, 0xd1, 0x0b, 0x8c, 0xe1, 0xdf, 0xb5, 0x97, 0xc9,
+ 0x05, 0xe4, 0x11, 0xe8, 0x1f, 0xb9, 0x62, 0x63, 0x84, 0x22, 0x99, 0xa1,
+ 0x9a, 0x0a, 0xfc, 0xaa, 0xaf, 0x6f, 0x40, 0xc1, 0x18, 0xad, 0x0a, 0x3f,
+ 0x2b, 0x5f, 0xdc, 0xa0, 0x79, 0x53, 0x8c, 0x35, 0x41, 0x62, 0xae, 0xde,
+ 0x2a, 0x49, 0xd5, 0x29, 0xd3, 0x70, 0xb6, 0xad, 0x1c, 0x56, 0x18, 0xd3,
+ 0xf8, 0x07, 0xb3, 0x2c,
+};
+static const struct drbg_kat_no_reseed kat875_t = {
+ 4, kat875_entropyin, kat875_nonce, kat875_persstr,
+ kat875_addin0, kat875_addin1, kat875_retbits
+};
+static const struct drbg_kat kat875 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat875_t
+};
+
+static const unsigned char kat876_entropyin[] = {
+ 0xcf, 0x9d, 0x04, 0x88, 0x7a, 0x64, 0xdf, 0x7e, 0x2a, 0x4d, 0x10, 0x7d,
+ 0x48, 0x7d, 0x3b, 0x14, 0x6e, 0xe8, 0x49, 0x38, 0x8f, 0x96, 0x0d, 0x0a,
+ 0x14, 0xef, 0x2a, 0x5e, 0x26, 0xa3, 0x2b, 0x92,
+};
+static const unsigned char kat876_nonce[] = {0};
+static const unsigned char kat876_persstr[] = {
+ 0x39, 0x50, 0xf0, 0x9d, 0x6b, 0x56, 0x4c, 0xa2, 0x49, 0x6d, 0x74, 0x0a,
+ 0x92, 0xc2, 0x3f, 0xe0, 0x9f, 0xf8, 0x75, 0xce, 0xae, 0xa5, 0x8a, 0x3e,
+ 0xc6, 0x8d, 0x12, 0xbc, 0x84, 0x94, 0x7d, 0x74,
+};
+static const unsigned char kat876_addin0[] = {0};
+static const unsigned char kat876_addin1[] = {0};
+static const unsigned char kat876_retbits[] = {
+ 0x8c, 0xaf, 0x1a, 0x41, 0xdf, 0x0e, 0xd4, 0x8e, 0x05, 0xbd, 0x57, 0xd7,
+ 0xe8, 0xb1, 0xd7, 0x84, 0xfe, 0x4c, 0x55, 0xc7, 0xc0, 0x8e, 0x0c, 0x2f,
+ 0xeb, 0x56, 0xda, 0x99, 0xcb, 0xb6, 0x0b, 0x82, 0x42, 0xdc, 0xbb, 0x2e,
+ 0x23, 0x6d, 0x48, 0x13, 0x28, 0xc0, 0x35, 0x2e, 0x3c, 0x20, 0x60, 0x68,
+ 0x80, 0xe1, 0xf0, 0x9b, 0x68, 0x47, 0x03, 0x98, 0x4b, 0x33, 0x2b, 0x7c,
+ 0x59, 0xbd, 0x86, 0x67,
+};
+static const struct drbg_kat_no_reseed kat876_t = {
+ 5, kat876_entropyin, kat876_nonce, kat876_persstr,
+ kat876_addin0, kat876_addin1, kat876_retbits
+};
+static const struct drbg_kat kat876 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat876_t
+};
+
+static const unsigned char kat877_entropyin[] = {
+ 0xc6, 0x1f, 0x9c, 0xfd, 0xc7, 0xea, 0x70, 0xe4, 0x03, 0xd4, 0x97, 0x2a,
+ 0x23, 0x43, 0x78, 0xbb, 0x6a, 0xc9, 0x9c, 0x13, 0xfe, 0xe4, 0x35, 0x9b,
+ 0xa8, 0x70, 0xfa, 0xe2, 0x9d, 0x22, 0xa8, 0xb8,
+};
+static const unsigned char kat877_nonce[] = {0};
+static const unsigned char kat877_persstr[] = {
+ 0x86, 0xee, 0xb3, 0x3b, 0x00, 0x86, 0x77, 0x0f, 0x72, 0xee, 0x97, 0x1b,
+ 0x8e, 0x84, 0xda, 0x92, 0xce, 0x90, 0x97, 0x4e, 0x37, 0x42, 0x63, 0x1a,
+ 0x0a, 0x21, 0x95, 0xb8, 0x87, 0x66, 0xa5, 0x33,
+};
+static const unsigned char kat877_addin0[] = {0};
+static const unsigned char kat877_addin1[] = {0};
+static const unsigned char kat877_retbits[] = {
+ 0x76, 0x00, 0x7d, 0x13, 0x43, 0x06, 0x42, 0x5f, 0x4d, 0x1b, 0x1f, 0xc8,
+ 0x1c, 0x01, 0x4b, 0x6f, 0x69, 0x71, 0x89, 0x18, 0x57, 0x69, 0x6e, 0x7c,
+ 0x7e, 0xa1, 0xf8, 0x73, 0x14, 0x07, 0x55, 0x0a, 0x2d, 0x88, 0x64, 0x46,
+ 0x36, 0x9f, 0x70, 0x3f, 0x97, 0xba, 0x3d, 0x1a, 0x3a, 0x86, 0x51, 0x3e,
+ 0x6e, 0x2a, 0xf4, 0x06, 0x86, 0x9c, 0xe7, 0x7c, 0x16, 0x96, 0x85, 0x55,
+ 0x06, 0x40, 0xe4, 0x4d,
+};
+static const struct drbg_kat_no_reseed kat877_t = {
+ 6, kat877_entropyin, kat877_nonce, kat877_persstr,
+ kat877_addin0, kat877_addin1, kat877_retbits
+};
+static const struct drbg_kat kat877 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat877_t
+};
+
+static const unsigned char kat878_entropyin[] = {
+ 0x05, 0x41, 0xd6, 0xf9, 0x91, 0x66, 0x87, 0x7f, 0x14, 0xe2, 0xec, 0x40,
+ 0xd3, 0x7d, 0xcd, 0x69, 0x3a, 0x53, 0x9f, 0xee, 0x18, 0x75, 0x2d, 0xcc,
+ 0x16, 0x68, 0x56, 0x94, 0xef, 0x86, 0x53, 0xa7,
+};
+static const unsigned char kat878_nonce[] = {0};
+static const unsigned char kat878_persstr[] = {
+ 0xc2, 0xb8, 0x91, 0xc8, 0xe8, 0xf8, 0x5f, 0x13, 0xb0, 0xf8, 0x20, 0x68,
+ 0x20, 0x19, 0x45, 0xbd, 0x6f, 0xec, 0x9d, 0x10, 0x2b, 0x8e, 0x20, 0xa5,
+ 0xbc, 0xa1, 0x00, 0xdd, 0x9b, 0x1c, 0x25, 0x7d,
+};
+static const unsigned char kat878_addin0[] = {0};
+static const unsigned char kat878_addin1[] = {0};
+static const unsigned char kat878_retbits[] = {
+ 0x47, 0xeb, 0x4f, 0x0f, 0x7d, 0x57, 0xe0, 0xd3, 0x60, 0xfe, 0x51, 0xd6,
+ 0xb2, 0xaa, 0x54, 0xb6, 0x2f, 0x05, 0xcd, 0xd6, 0x2a, 0x78, 0x9c, 0xd6,
+ 0x39, 0xf6, 0x3d, 0x90, 0xb5, 0xb5, 0xc5, 0xcc, 0x1b, 0xaf, 0xbe, 0x06,
+ 0x16, 0x3b, 0x84, 0x42, 0x30, 0xa9, 0xf5, 0x28, 0x75, 0xeb, 0xdc, 0x34,
+ 0x2f, 0x84, 0x14, 0x9d, 0x80, 0xd4, 0x81, 0x89, 0x2f, 0x6e, 0x31, 0x62,
+ 0x21, 0x04, 0x4d, 0x9b,
+};
+static const struct drbg_kat_no_reseed kat878_t = {
+ 7, kat878_entropyin, kat878_nonce, kat878_persstr,
+ kat878_addin0, kat878_addin1, kat878_retbits
+};
+static const struct drbg_kat kat878 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat878_t
+};
+
+static const unsigned char kat879_entropyin[] = {
+ 0x07, 0x43, 0x67, 0xca, 0x90, 0xc0, 0x4e, 0xe7, 0x88, 0x06, 0x18, 0x68,
+ 0x3d, 0x02, 0x01, 0x7f, 0xe5, 0x82, 0x90, 0x34, 0xed, 0xf5, 0xef, 0xb8,
+ 0x0d, 0x85, 0xd2, 0x37, 0x31, 0xec, 0x16, 0x7a,
+};
+static const unsigned char kat879_nonce[] = {0};
+static const unsigned char kat879_persstr[] = {
+ 0x21, 0x67, 0xff, 0xee, 0x68, 0x63, 0xe6, 0xe9, 0xa8, 0xd7, 0x70, 0x3b,
+ 0x4e, 0x92, 0xee, 0xe3, 0x1a, 0x73, 0x66, 0x09, 0xd9, 0x2f, 0x90, 0xb9,
+ 0xe3, 0xdf, 0xf4, 0x55, 0x6e, 0x12, 0xb7, 0x7b,
+};
+static const unsigned char kat879_addin0[] = {0};
+static const unsigned char kat879_addin1[] = {0};
+static const unsigned char kat879_retbits[] = {
+ 0x8e, 0xb4, 0xe9, 0x30, 0x79, 0x96, 0xa6, 0xd1, 0x7e, 0x91, 0x37, 0xa1,
+ 0xab, 0xa5, 0x2c, 0x51, 0x8a, 0xa5, 0x60, 0xd5, 0x93, 0x8d, 0x9c, 0xf5,
+ 0x7f, 0x2f, 0x20, 0x09, 0xa0, 0x7c, 0x82, 0xed, 0x54, 0x0d, 0x1c, 0xb4,
+ 0x0b, 0x70, 0x97, 0xf7, 0x7d, 0x6d, 0xd2, 0xe4, 0x90, 0x08, 0xdf, 0x8c,
+ 0x98, 0x97, 0x9c, 0xe3, 0x7e, 0xd3, 0xf7, 0x63, 0xc3, 0x07, 0xe2, 0xd7,
+ 0x9c, 0x7a, 0xe6, 0x16,
+};
+static const struct drbg_kat_no_reseed kat879_t = {
+ 8, kat879_entropyin, kat879_nonce, kat879_persstr,
+ kat879_addin0, kat879_addin1, kat879_retbits
+};
+static const struct drbg_kat kat879 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat879_t
+};
+
+static const unsigned char kat880_entropyin[] = {
+ 0x4f, 0x68, 0xa0, 0xa4, 0xac, 0xa7, 0x11, 0x55, 0x0d, 0x02, 0xcf, 0xef,
+ 0x7b, 0xaf, 0x55, 0x5e, 0x45, 0x2a, 0x10, 0xcc, 0xb7, 0xe6, 0x32, 0x9c,
+ 0xed, 0x3a, 0xff, 0x01, 0x96, 0x34, 0xe4, 0x15,
+};
+static const unsigned char kat880_nonce[] = {0};
+static const unsigned char kat880_persstr[] = {
+ 0x77, 0xe2, 0xd6, 0x22, 0x99, 0x68, 0xc8, 0xa1, 0x6a, 0xc9, 0xbb, 0x1e,
+ 0xf0, 0x42, 0x0e, 0xb0, 0x84, 0xd9, 0xfc, 0xd0, 0x10, 0x89, 0x2a, 0xcc,
+ 0x79, 0xba, 0xab, 0x89, 0x9d, 0x19, 0xce, 0x2b,
+};
+static const unsigned char kat880_addin0[] = {0};
+static const unsigned char kat880_addin1[] = {0};
+static const unsigned char kat880_retbits[] = {
+ 0x4d, 0xce, 0x9d, 0xc3, 0xb2, 0x02, 0x05, 0x95, 0xad, 0x97, 0x23, 0x14,
+ 0xa1, 0x19, 0x46, 0x75, 0xca, 0xa7, 0x0c, 0xcb, 0xee, 0xb0, 0x23, 0xaa,
+ 0xda, 0x1b, 0xd9, 0x91, 0xaa, 0xa9, 0x66, 0xb4, 0xef, 0x5e, 0x0d, 0xaf,
+ 0x46, 0xca, 0xe5, 0x16, 0x53, 0x7b, 0x35, 0x18, 0x1e, 0x66, 0x84, 0xeb,
+ 0x0d, 0x73, 0x1b, 0x91, 0x9e, 0x14, 0x70, 0x3f, 0x12, 0x19, 0x60, 0x35,
+ 0x2d, 0xbd, 0xfe, 0x78,
+};
+static const struct drbg_kat_no_reseed kat880_t = {
+ 9, kat880_entropyin, kat880_nonce, kat880_persstr,
+ kat880_addin0, kat880_addin1, kat880_retbits
+};
+static const struct drbg_kat kat880 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat880_t
+};
+
+static const unsigned char kat881_entropyin[] = {
+ 0xc2, 0xd0, 0x01, 0x2e, 0xdd, 0xe1, 0x41, 0xae, 0xa2, 0xe9, 0x45, 0x4c,
+ 0xa0, 0x4d, 0x5c, 0xdb, 0xd8, 0xa2, 0x93, 0xaf, 0xf9, 0x6c, 0xde, 0x59,
+ 0xe4, 0x0d, 0xe0, 0x68, 0xf9, 0xda, 0xb8, 0xf9,
+};
+static const unsigned char kat881_nonce[] = {0};
+static const unsigned char kat881_persstr[] = {
+ 0xd8, 0x0e, 0x1d, 0xdb, 0x2e, 0x39, 0x0b, 0xac, 0x90, 0x08, 0xf1, 0xf4,
+ 0xcf, 0xa1, 0xd5, 0xcf, 0x13, 0xa9, 0x41, 0xcb, 0x46, 0x69, 0xeb, 0x6a,
+ 0x9b, 0x1d, 0xd2, 0x33, 0x58, 0x39, 0x02, 0x86,
+};
+static const unsigned char kat881_addin0[] = {0};
+static const unsigned char kat881_addin1[] = {0};
+static const unsigned char kat881_retbits[] = {
+ 0x5d, 0x40, 0x3a, 0x36, 0xe5, 0xee, 0xa6, 0x06, 0x7c, 0x6b, 0x28, 0xb1,
+ 0xcb, 0xc4, 0x8e, 0x9d, 0xad, 0x76, 0xc6, 0x6f, 0x6d, 0x14, 0xba, 0xd9,
+ 0xc6, 0x86, 0x11, 0xfe, 0xf9, 0x77, 0x58, 0xec, 0x6f, 0x5c, 0x79, 0x87,
+ 0x60, 0xe6, 0x71, 0x0d, 0x8b, 0xea, 0x3c, 0x8d, 0xd2, 0x04, 0x5c, 0xa8,
+ 0x92, 0xfa, 0x01, 0x5e, 0x39, 0xe9, 0x38, 0x5d, 0x29, 0xbb, 0xa9, 0x08,
+ 0xd7, 0x00, 0x5a, 0x6c,
+};
+static const struct drbg_kat_no_reseed kat881_t = {
+ 10, kat881_entropyin, kat881_nonce, kat881_persstr,
+ kat881_addin0, kat881_addin1, kat881_retbits
+};
+static const struct drbg_kat kat881 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat881_t
+};
+
+static const unsigned char kat882_entropyin[] = {
+ 0x10, 0x33, 0x3b, 0xc1, 0x06, 0xe9, 0xee, 0xa9, 0x36, 0xab, 0x55, 0xe3,
+ 0x4c, 0x5f, 0x28, 0x33, 0xad, 0x23, 0x95, 0xc4, 0x66, 0x12, 0x5b, 0xeb,
+ 0x40, 0x00, 0xd4, 0x2b, 0x1c, 0x0a, 0x80, 0xd3,
+};
+static const unsigned char kat882_nonce[] = {0};
+static const unsigned char kat882_persstr[] = {
+ 0xa1, 0xa7, 0x77, 0x5e, 0xf0, 0xff, 0x03, 0xd7, 0xad, 0xab, 0x74, 0xb1,
+ 0xb8, 0xf0, 0x5b, 0xf3, 0xd7, 0xb6, 0x2e, 0xda, 0x1d, 0x29, 0x68, 0x5e,
+ 0x86, 0x1c, 0x5e, 0x28, 0xf1, 0x6d, 0x91, 0x48,
+};
+static const unsigned char kat882_addin0[] = {0};
+static const unsigned char kat882_addin1[] = {0};
+static const unsigned char kat882_retbits[] = {
+ 0xd1, 0x22, 0x39, 0xdf, 0x3f, 0x0a, 0x25, 0xe3, 0x84, 0xba, 0x01, 0xe9,
+ 0x2e, 0xf4, 0x84, 0x02, 0x72, 0xcb, 0x82, 0x57, 0x9c, 0xe6, 0xe5, 0xc1,
+ 0x12, 0x5b, 0xa1, 0x91, 0xf2, 0xba, 0xe8, 0xea, 0x86, 0x38, 0xd4, 0xfe,
+ 0x02, 0x0c, 0x20, 0xe2, 0x36, 0xda, 0x8d, 0x6a, 0x83, 0x0c, 0xcd, 0xb8,
+ 0x4e, 0x53, 0x1a, 0x27, 0xf8, 0xcf, 0x9f, 0x16, 0x75, 0xa6, 0x0e, 0x95,
+ 0x7a, 0x15, 0xf7, 0xa4,
+};
+static const struct drbg_kat_no_reseed kat882_t = {
+ 11, kat882_entropyin, kat882_nonce, kat882_persstr,
+ kat882_addin0, kat882_addin1, kat882_retbits
+};
+static const struct drbg_kat kat882 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat882_t
+};
+
+static const unsigned char kat883_entropyin[] = {
+ 0x3d, 0x4e, 0x96, 0x66, 0x72, 0x3c, 0x05, 0xdd, 0xd2, 0xc1, 0x3a, 0xaa,
+ 0x26, 0xda, 0xdb, 0x43, 0xcb, 0xc1, 0x88, 0xb0, 0xc2, 0x05, 0x7c, 0xeb,
+ 0x1f, 0x0a, 0xc7, 0x8b, 0xc8, 0x57, 0x5c, 0x9e,
+};
+static const unsigned char kat883_nonce[] = {0};
+static const unsigned char kat883_persstr[] = {
+ 0xdb, 0x9e, 0x87, 0x0d, 0x9c, 0xe2, 0xba, 0x3c, 0x7b, 0x26, 0x1f, 0x7e,
+ 0xbe, 0x29, 0x48, 0x2b, 0x0f, 0x12, 0xeb, 0xee, 0xea, 0xe3, 0xf6, 0xfe,
+ 0xce, 0xe4, 0xc0, 0x49, 0x0c, 0x05, 0xe3, 0xeb,
+};
+static const unsigned char kat883_addin0[] = {0};
+static const unsigned char kat883_addin1[] = {0};
+static const unsigned char kat883_retbits[] = {
+ 0xf8, 0x66, 0x42, 0xda, 0xde, 0x14, 0x93, 0xc2, 0x89, 0xc1, 0x6a, 0x21,
+ 0x0c, 0xdf, 0xa7, 0x23, 0x98, 0x8c, 0x72, 0x00, 0xce, 0xbb, 0x36, 0x11,
+ 0x61, 0x6e, 0xa8, 0xa6, 0x36, 0x75, 0x57, 0x6c, 0x64, 0xf6, 0xf4, 0xa9,
+ 0x95, 0xca, 0x22, 0x0f, 0x85, 0x6e, 0x72, 0x5f, 0x30, 0x23, 0xd3, 0xae,
+ 0xce, 0x61, 0xf2, 0x37, 0x54, 0xf0, 0x58, 0x5d, 0xdd, 0x1e, 0x03, 0x31,
+ 0x1c, 0xf5, 0xcb, 0x16,
+};
+static const struct drbg_kat_no_reseed kat883_t = {
+ 12, kat883_entropyin, kat883_nonce, kat883_persstr,
+ kat883_addin0, kat883_addin1, kat883_retbits
+};
+static const struct drbg_kat kat883 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat883_t
+};
+
+static const unsigned char kat884_entropyin[] = {
+ 0xd9, 0x5f, 0x81, 0xf1, 0x98, 0xd9, 0x73, 0x57, 0x7f, 0x90, 0x2d, 0xca,
+ 0xf7, 0x07, 0xd9, 0x3f, 0x5e, 0x9e, 0x0f, 0x4d, 0xa5, 0x0f, 0x48, 0xd3,
+ 0xa1, 0xa2, 0xb6, 0xa0, 0x16, 0x66, 0x41, 0x60,
+};
+static const unsigned char kat884_nonce[] = {0};
+static const unsigned char kat884_persstr[] = {
+ 0xc5, 0xe4, 0x22, 0x56, 0xb2, 0xd0, 0x23, 0x9d, 0x20, 0x40, 0x93, 0xca,
+ 0x5f, 0x99, 0xd1, 0x88, 0x0c, 0xeb, 0xc9, 0x6b, 0x67, 0x07, 0xb6, 0xc2,
+ 0x09, 0xea, 0x2d, 0xa0, 0xd2, 0x6a, 0x41, 0x1e,
+};
+static const unsigned char kat884_addin0[] = {0};
+static const unsigned char kat884_addin1[] = {0};
+static const unsigned char kat884_retbits[] = {
+ 0xc4, 0x35, 0x44, 0xc9, 0x52, 0x28, 0xcb, 0x76, 0xd7, 0xc5, 0xa4, 0x99,
+ 0x37, 0xfe, 0x69, 0x38, 0xd2, 0x20, 0x45, 0x80, 0x04, 0x77, 0x9b, 0x02,
+ 0xcb, 0x7a, 0xa2, 0x8f, 0x8f, 0xb0, 0xc7, 0x95, 0x11, 0x5e, 0x94, 0x2a,
+ 0x65, 0x78, 0xdd, 0xc0, 0xb5, 0x67, 0x9c, 0x0c, 0x9f, 0x54, 0x47, 0x8b,
+ 0x8a, 0x33, 0x53, 0xeb, 0x39, 0x0e, 0x31, 0x77, 0x4e, 0xab, 0xb9, 0xcc,
+ 0x6b, 0x80, 0x33, 0x4d,
+};
+static const struct drbg_kat_no_reseed kat884_t = {
+ 13, kat884_entropyin, kat884_nonce, kat884_persstr,
+ kat884_addin0, kat884_addin1, kat884_retbits
+};
+static const struct drbg_kat kat884 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat884_t
+};
+
+static const unsigned char kat885_entropyin[] = {
+ 0x0c, 0x45, 0x64, 0xba, 0x25, 0x44, 0x55, 0xb6, 0x55, 0x7a, 0xec, 0x1c,
+ 0xfe, 0xe2, 0xb2, 0xb7, 0x26, 0xd2, 0xc4, 0xf4, 0x53, 0x79, 0x26, 0x7f,
+ 0x0e, 0x27, 0xd1, 0x1c, 0x6f, 0x1e, 0xdc, 0x7f,
+};
+static const unsigned char kat885_nonce[] = {0};
+static const unsigned char kat885_persstr[] = {
+ 0x46, 0xae, 0xfb, 0x02, 0x4c, 0x6a, 0xcd, 0xc9, 0x29, 0x7d, 0x50, 0x19,
+ 0x10, 0x93, 0x10, 0xde, 0x55, 0x8f, 0x6a, 0xfc, 0xca, 0x73, 0x0c, 0x84,
+ 0x14, 0xc5, 0x4f, 0x4e, 0x57, 0x4f, 0xab, 0x1e,
+};
+static const unsigned char kat885_addin0[] = {0};
+static const unsigned char kat885_addin1[] = {0};
+static const unsigned char kat885_retbits[] = {
+ 0xc9, 0x48, 0x94, 0xd5, 0x69, 0x85, 0xd7, 0x3a, 0xc5, 0x16, 0xc1, 0x24,
+ 0x9c, 0xea, 0x3d, 0x8e, 0x79, 0xb6, 0x7d, 0xcd, 0xb2, 0xbf, 0x24, 0xb8,
+ 0x30, 0xd5, 0x2f, 0x9e, 0x1f, 0xbd, 0xd8, 0xbd, 0xb3, 0x7a, 0x54, 0x6c,
+ 0x4f, 0xfe, 0x13, 0x18, 0x6c, 0xeb, 0x0a, 0x23, 0x0a, 0x14, 0xee, 0x1b,
+ 0xe0, 0xe4, 0x09, 0xeb, 0x19, 0xee, 0xf0, 0x18, 0xe5, 0x4f, 0x79, 0xc3,
+ 0xdd, 0xd4, 0xfb, 0xd4,
+};
+static const struct drbg_kat_no_reseed kat885_t = {
+ 14, kat885_entropyin, kat885_nonce, kat885_persstr,
+ kat885_addin0, kat885_addin1, kat885_retbits
+};
+static const struct drbg_kat kat885 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat885_t
+};
+
+static const unsigned char kat886_entropyin[] = {
+ 0x51, 0x48, 0x67, 0x4d, 0xa1, 0x23, 0xe8, 0x09, 0x43, 0x1d, 0x84, 0x87,
+ 0x2c, 0x8b, 0x78, 0x35, 0x66, 0xce, 0xae, 0xff, 0xb2, 0xa2, 0xed, 0x1f,
+ 0x85, 0xe4, 0x74, 0x52, 0x75, 0x17, 0x3c, 0x01,
+};
+static const unsigned char kat886_nonce[] = {0};
+static const unsigned char kat886_persstr[] = {
+ 0xe4, 0xbb, 0xc1, 0x86, 0xbb, 0xd3, 0x4a, 0x9e, 0x3d, 0xdb, 0x56, 0x2a,
+ 0xec, 0xd3, 0x90, 0xbe, 0xdb, 0x77, 0xe3, 0x79, 0xe7, 0x1e, 0x1d, 0xcb,
+ 0x4f, 0xb6, 0xdc, 0xfe, 0x58, 0x1d, 0x09, 0xcc,
+};
+static const unsigned char kat886_addin0[] = {
+ 0x4c, 0xf3, 0x16, 0x55, 0xc6, 0xfa, 0xcd, 0x20, 0x9e, 0xf9, 0x9d, 0x1b,
+ 0xa9, 0xf5, 0xe2, 0x9c, 0x1e, 0xe9, 0xa7, 0xa1, 0x01, 0xf3, 0xdd, 0xdc,
+ 0xbe, 0x38, 0x41, 0x07, 0xda, 0x52, 0xaa, 0xf0,
+};
+static const unsigned char kat886_addin1[] = {
+ 0xc7, 0x7b, 0xc7, 0x95, 0x24, 0x23, 0xa2, 0xec, 0x3b, 0x1f, 0x7f, 0x68,
+ 0x67, 0x5f, 0x9a, 0xda, 0x5a, 0x32, 0xd1, 0xb4, 0x94, 0x14, 0x30, 0x78,
+ 0x80, 0xd6, 0x35, 0xda, 0x80, 0xc5, 0x9c, 0x83,
+};
+static const unsigned char kat886_retbits[] = {
+ 0x98, 0xa6, 0xa6, 0x64, 0x51, 0xce, 0x9b, 0xd3, 0x48, 0x25, 0x69, 0x2f,
+ 0xdd, 0x65, 0x24, 0xee, 0xe8, 0x2e, 0xa1, 0xf5, 0x50, 0xf5, 0xc3, 0x2a,
+ 0xa9, 0x73, 0x5e, 0xd5, 0x21, 0x19, 0xb2, 0x2d, 0xbb, 0xad, 0x9d, 0x42,
+ 0x82, 0x57, 0x7c, 0xb8, 0x00, 0x31, 0x5b, 0xa7, 0xc9, 0x07, 0x25, 0x50,
+ 0x84, 0x7e, 0xdc, 0x23, 0xb5, 0x0a, 0x19, 0x79, 0xed, 0x34, 0x1c, 0x37,
+ 0x75, 0x92, 0x22, 0xdc,
+};
+static const struct drbg_kat_no_reseed kat886_t = {
+ 0, kat886_entropyin, kat886_nonce, kat886_persstr,
+ kat886_addin0, kat886_addin1, kat886_retbits
+};
+static const struct drbg_kat kat886 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat886_t
+};
+
+static const unsigned char kat887_entropyin[] = {
+ 0xae, 0xd2, 0xfe, 0x2c, 0x23, 0xf5, 0x81, 0x2e, 0x6b, 0xdb, 0xa3, 0xb4,
+ 0xec, 0x78, 0x2f, 0x33, 0x17, 0xbc, 0x25, 0xaf, 0x7c, 0xad, 0x0e, 0xff,
+ 0xa8, 0xdd, 0xd7, 0xea, 0xa8, 0xbe, 0xa0, 0xf2,
+};
+static const unsigned char kat887_nonce[] = {0};
+static const unsigned char kat887_persstr[] = {
+ 0x29, 0x2c, 0xd5, 0x28, 0xfa, 0x53, 0xda, 0x05, 0x03, 0x2c, 0x1c, 0x0c,
+ 0xbd, 0xeb, 0x52, 0xec, 0xac, 0xb8, 0x19, 0xb6, 0x51, 0xc2, 0x8c, 0x4d,
+ 0x0a, 0x1d, 0x75, 0x24, 0x8d, 0x46, 0x8c, 0xd5,
+};
+static const unsigned char kat887_addin0[] = {
+ 0x36, 0x3c, 0xc4, 0x7e, 0x33, 0x92, 0xec, 0x7c, 0x28, 0xa9, 0xae, 0x72,
+ 0x39, 0x16, 0x7b, 0xed, 0xd6, 0x2d, 0xd1, 0xf0, 0x2c, 0x38, 0xaf, 0x47,
+ 0xb3, 0xb0, 0x80, 0x38, 0x52, 0x80, 0xc3, 0x68,
+};
+static const unsigned char kat887_addin1[] = {
+ 0x63, 0x37, 0x14, 0x53, 0xc3, 0x2e, 0x2e, 0xb3, 0xe7, 0xbc, 0x1e, 0x96,
+ 0x1e, 0x5f, 0x33, 0x32, 0x24, 0xdc, 0x96, 0x3f, 0xdd, 0x6a, 0xbf, 0x71,
+ 0xfb, 0xf8, 0x15, 0x9b, 0xe4, 0x0a, 0xad, 0xc2,
+};
+static const unsigned char kat887_retbits[] = {
+ 0x9d, 0x52, 0xd1, 0x1f, 0xdf, 0x3f, 0x9b, 0x3c, 0x4c, 0xa9, 0xa4, 0x18,
+ 0x4b, 0x4d, 0x4a, 0x58, 0x16, 0xce, 0xdc, 0x75, 0x5e, 0x03, 0x3e, 0x40,
+ 0x6e, 0xd3, 0x57, 0x87, 0xb7, 0x92, 0xa7, 0x7f, 0x73, 0x22, 0xd4, 0x39,
+ 0x24, 0x8c, 0x91, 0xaf, 0xbf, 0x67, 0xde, 0x47, 0x33, 0x31, 0xaa, 0x0e,
+ 0x0f, 0xa0, 0x00, 0xbf, 0xfe, 0xc1, 0x0d, 0x16, 0xaf, 0xca, 0xf4, 0xc0,
+ 0xfe, 0x73, 0xa3, 0x9d,
+};
+static const struct drbg_kat_no_reseed kat887_t = {
+ 1, kat887_entropyin, kat887_nonce, kat887_persstr,
+ kat887_addin0, kat887_addin1, kat887_retbits
+};
+static const struct drbg_kat kat887 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat887_t
+};
+
+static const unsigned char kat888_entropyin[] = {
+ 0xf3, 0x56, 0xf1, 0xc6, 0x3c, 0x5c, 0x00, 0xbe, 0x96, 0x60, 0xc6, 0x8d,
+ 0xbf, 0x00, 0xeb, 0x5a, 0x4c, 0x02, 0x08, 0x59, 0x98, 0xd5, 0x08, 0x4d,
+ 0x75, 0xf5, 0x4a, 0x86, 0xe2, 0xbb, 0x07, 0xd6,
+};
+static const unsigned char kat888_nonce[] = {0};
+static const unsigned char kat888_persstr[] = {
+ 0xa4, 0x43, 0xd0, 0x52, 0x6d, 0x57, 0x98, 0x2a, 0x66, 0x1d, 0x1a, 0xe3,
+ 0xc6, 0xfb, 0x09, 0x51, 0xf4, 0xe7, 0x24, 0xe8, 0xfb, 0xe3, 0xa5, 0xef,
+ 0xfe, 0x9f, 0x71, 0x8b, 0xe9, 0x88, 0xfd, 0x9d,
+};
+static const unsigned char kat888_addin0[] = {
+ 0x15, 0xf2, 0x27, 0x57, 0x1e, 0x83, 0x69, 0x3a, 0xa9, 0x34, 0x65, 0x8a,
+ 0x13, 0xc6, 0x50, 0xc1, 0xe6, 0x63, 0xc0, 0xc7, 0x4e, 0x52, 0x9c, 0xd4,
+ 0x86, 0x65, 0x00, 0x44, 0xef, 0xe2, 0x52, 0x3d,
+};
+static const unsigned char kat888_addin1[] = {
+ 0x3e, 0xd2, 0x05, 0x08, 0xcb, 0xc9, 0x10, 0x45, 0xb5, 0x55, 0x35, 0x8e,
+ 0x3f, 0x71, 0x89, 0xa0, 0x52, 0x2a, 0xd4, 0x3d, 0x5d, 0x7f, 0xd0, 0xd6,
+ 0xd8, 0x8f, 0x47, 0x5c, 0xda, 0xe1, 0x77, 0xcf,
+};
+static const unsigned char kat888_retbits[] = {
+ 0x86, 0x8b, 0xf4, 0xfe, 0x9d, 0x7a, 0x7c, 0x65, 0x6a, 0x1e, 0xa0, 0x2d,
+ 0xd3, 0x53, 0xa7, 0xdd, 0xea, 0x6a, 0x9e, 0xd1, 0xeb, 0x4c, 0x0d, 0xe9,
+ 0x28, 0xeb, 0x03, 0xf3, 0xe7, 0x8f, 0x06, 0x9d, 0x5b, 0x22, 0xd8, 0x24,
+ 0x75, 0xa9, 0xc5, 0x2e, 0xfe, 0x52, 0x4e, 0x4c, 0xd4, 0xbf, 0x10, 0x32,
+ 0x6c, 0x6f, 0xe2, 0xfd, 0x60, 0x40, 0xd6, 0x1a, 0xee, 0x34, 0xb7, 0x4f,
+ 0xb7, 0xcb, 0xbb, 0xd7,
+};
+static const struct drbg_kat_no_reseed kat888_t = {
+ 2, kat888_entropyin, kat888_nonce, kat888_persstr,
+ kat888_addin0, kat888_addin1, kat888_retbits
+};
+static const struct drbg_kat kat888 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat888_t
+};
+
+static const unsigned char kat889_entropyin[] = {
+ 0xb1, 0x94, 0xf4, 0x92, 0xba, 0x4b, 0x20, 0xfa, 0x65, 0xbe, 0x37, 0x32,
+ 0x41, 0x24, 0x25, 0x19, 0x8e, 0x78, 0x2d, 0x04, 0x24, 0xc2, 0x63, 0xc5,
+ 0xd3, 0xef, 0x3e, 0x1a, 0x99, 0x08, 0xfa, 0x8d,
+};
+static const unsigned char kat889_nonce[] = {0};
+static const unsigned char kat889_persstr[] = {
+ 0x91, 0x2c, 0x64, 0x8e, 0x82, 0xd7, 0xf4, 0x07, 0x7f, 0xbd, 0xd4, 0x55,
+ 0xf4, 0xb1, 0x2c, 0xe9, 0xde, 0x47, 0x44, 0x60, 0x4d, 0x24, 0xf9, 0x44,
+ 0x07, 0x02, 0x0e, 0x56, 0xe8, 0x55, 0x28, 0x6d,
+};
+static const unsigned char kat889_addin0[] = {
+ 0x25, 0xbe, 0x6e, 0x16, 0xcf, 0x62, 0x56, 0x2b, 0x19, 0xe6, 0xe6, 0x73,
+ 0x75, 0x43, 0x72, 0x4d, 0xc9, 0xe0, 0x3d, 0x86, 0xe9, 0x7e, 0x89, 0x6a,
+ 0xb2, 0xea, 0xe1, 0xfb, 0x3f, 0x1e, 0x20, 0x7e,
+};
+static const unsigned char kat889_addin1[] = {
+ 0x2c, 0xe5, 0x41, 0xfc, 0x48, 0x69, 0x44, 0x9c, 0x11, 0x97, 0x4f, 0x1b,
+ 0x88, 0xb1, 0x7f, 0x8f, 0xfe, 0x7a, 0x7d, 0x3d, 0x43, 0xe8, 0xd6, 0xcf,
+ 0x0e, 0xec, 0xbe, 0xa2, 0x54, 0x7f, 0xd7, 0xd4,
+};
+static const unsigned char kat889_retbits[] = {
+ 0x55, 0x0e, 0x76, 0xc2, 0xde, 0x2c, 0x79, 0x96, 0x12, 0xec, 0x81, 0x61,
+ 0x41, 0x28, 0x97, 0x76, 0xa7, 0x30, 0xea, 0xa9, 0x78, 0x26, 0x10, 0xbe,
+ 0x58, 0xee, 0x4f, 0xe9, 0x48, 0x47, 0xbc, 0xa5, 0x6e, 0xe8, 0xa3, 0x3c,
+ 0x3a, 0xea, 0xa4, 0x0f, 0x5f, 0x71, 0xfe, 0xb4, 0xa9, 0xdf, 0x8d, 0x01,
+ 0xa2, 0x8a, 0x8f, 0x80, 0xa6, 0x66, 0xef, 0x77, 0x73, 0xf3, 0x02, 0xe9,
+ 0xa8, 0xcb, 0x54, 0xdb,
+};
+static const struct drbg_kat_no_reseed kat889_t = {
+ 3, kat889_entropyin, kat889_nonce, kat889_persstr,
+ kat889_addin0, kat889_addin1, kat889_retbits
+};
+static const struct drbg_kat kat889 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat889_t
+};
+
+static const unsigned char kat890_entropyin[] = {
+ 0x1a, 0xd7, 0x35, 0x9e, 0x36, 0x2d, 0xfa, 0x16, 0x9d, 0x5f, 0x39, 0x1b,
+ 0x57, 0x0c, 0x26, 0x57, 0xf1, 0x2f, 0x80, 0xcd, 0x2c, 0xf2, 0x2e, 0x6c,
+ 0x34, 0x0c, 0x9f, 0xfd, 0x1a, 0xe9, 0x5c, 0xda,
+};
+static const unsigned char kat890_nonce[] = {0};
+static const unsigned char kat890_persstr[] = {
+ 0x0b, 0x60, 0xa5, 0x87, 0x44, 0xf7, 0x75, 0x3b, 0xaa, 0x2b, 0x2a, 0x81,
+ 0x7d, 0x73, 0x8e, 0x08, 0x78, 0x24, 0x46, 0xf1, 0xc8, 0xea, 0xc8, 0x48,
+ 0xac, 0xd3, 0xba, 0xa6, 0x83, 0xb0, 0x45, 0xa7,
+};
+static const unsigned char kat890_addin0[] = {
+ 0xef, 0xf6, 0x58, 0x2f, 0x25, 0x45, 0xb6, 0x7f, 0x5e, 0x18, 0x09, 0xb8,
+ 0x7f, 0x7b, 0x7e, 0x27, 0x53, 0x62, 0xf3, 0x52, 0x15, 0x79, 0x3a, 0xcc,
+ 0x1e, 0x3b, 0xec, 0x93, 0xa7, 0xda, 0x31, 0xd3,
+};
+static const unsigned char kat890_addin1[] = {
+ 0x33, 0x57, 0xe1, 0x26, 0x2f, 0x9d, 0x44, 0x76, 0x6e, 0x48, 0x5c, 0x3e,
+ 0xd9, 0x67, 0x9d, 0x7c, 0x54, 0x4d, 0xed, 0xa0, 0x1c, 0xab, 0xe1, 0xc5,
+ 0x5a, 0x4d, 0xf6, 0x96, 0x1c, 0x0b, 0x96, 0xee,
+};
+static const unsigned char kat890_retbits[] = {
+ 0xc1, 0x16, 0x8b, 0x39, 0xc0, 0xf9, 0xa6, 0xc5, 0x84, 0xa4, 0x4d, 0xf7,
+ 0xa7, 0x04, 0xdf, 0x41, 0x41, 0xbc, 0x55, 0x3e, 0x7a, 0xbc, 0xbe, 0xd2,
+ 0x9a, 0xda, 0x29, 0xb5, 0xd9, 0xd3, 0x33, 0x10, 0x4e, 0xd5, 0xf9, 0x68,
+ 0x86, 0x23, 0xac, 0x77, 0x1b, 0xd7, 0x12, 0x58, 0xec, 0x09, 0x0c, 0xfb,
+ 0x31, 0xab, 0x96, 0x85, 0x81, 0x25, 0x53, 0xd6, 0x87, 0xa7, 0x12, 0x26,
+ 0x5e, 0x5a, 0x2e, 0x0e,
+};
+static const struct drbg_kat_no_reseed kat890_t = {
+ 4, kat890_entropyin, kat890_nonce, kat890_persstr,
+ kat890_addin0, kat890_addin1, kat890_retbits
+};
+static const struct drbg_kat kat890 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat890_t
+};
+
+static const unsigned char kat891_entropyin[] = {
+ 0x91, 0xaf, 0xeb, 0x9f, 0xba, 0x80, 0xf7, 0xf0, 0x5e, 0x2e, 0xd4, 0x0f,
+ 0x54, 0x8a, 0xf6, 0xf7, 0x36, 0x95, 0xb8, 0xa3, 0xdf, 0x98, 0x09, 0x5c,
+ 0xc3, 0x29, 0x48, 0xda, 0xc0, 0xab, 0x91, 0xec,
+};
+static const unsigned char kat891_nonce[] = {0};
+static const unsigned char kat891_persstr[] = {
+ 0xbf, 0x08, 0x33, 0x42, 0xd0, 0xae, 0x63, 0xd3, 0x50, 0x9d, 0xe2, 0x24,
+ 0x25, 0xed, 0xd3, 0x25, 0xc7, 0xe2, 0x66, 0x02, 0x98, 0x89, 0x4f, 0x67,
+ 0x7f, 0x7a, 0xe5, 0xb3, 0x0c, 0x5a, 0x37, 0x59,
+};
+static const unsigned char kat891_addin0[] = {
+ 0x08, 0x5b, 0xdc, 0xf8, 0x6f, 0x2d, 0x89, 0xed, 0xcc, 0x72, 0x7f, 0x5b,
+ 0xe5, 0xba, 0x12, 0x55, 0x67, 0x5e, 0x6f, 0xe6, 0x11, 0x74, 0x6f, 0xcc,
+ 0xa4, 0xcb, 0x37, 0x2c, 0xeb, 0x7c, 0x9f, 0xba,
+};
+static const unsigned char kat891_addin1[] = {
+ 0xd3, 0x8d, 0xd8, 0xae, 0xf2, 0x35, 0xc7, 0xba, 0xbc, 0x68, 0x2e, 0xa4,
+ 0x6d, 0x83, 0xfd, 0xbb, 0xd2, 0xb1, 0xc5, 0x3a, 0xdf, 0x18, 0xec, 0x26,
+ 0x6c, 0xc5, 0x3f, 0x01, 0xc9, 0x09, 0x12, 0x49,
+};
+static const unsigned char kat891_retbits[] = {
+ 0xf4, 0xe3, 0x7f, 0xb2, 0x2b, 0xc0, 0xc6, 0xb9, 0xa9, 0x72, 0xfa, 0xdc,
+ 0x91, 0x4d, 0x7e, 0xbf, 0x16, 0x42, 0x80, 0x68, 0xee, 0x20, 0xa5, 0x05,
+ 0x5e, 0x7b, 0x5c, 0x54, 0xfe, 0x36, 0xcb, 0x11, 0x51, 0x88, 0x90, 0xe4,
+ 0x36, 0xad, 0x1e, 0x2e, 0x2f, 0x8c, 0x64, 0x8e, 0xb9, 0x50, 0x7a, 0x49,
+ 0xe5, 0x22, 0x02, 0xdf, 0x44, 0x6a, 0xa5, 0xc6, 0x34, 0x2a, 0xda, 0x65,
+ 0xf0, 0xa2, 0x26, 0x47,
+};
+static const struct drbg_kat_no_reseed kat891_t = {
+ 5, kat891_entropyin, kat891_nonce, kat891_persstr,
+ kat891_addin0, kat891_addin1, kat891_retbits
+};
+static const struct drbg_kat kat891 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat891_t
+};
+
+static const unsigned char kat892_entropyin[] = {
+ 0x79, 0xe2, 0x01, 0x1d, 0x49, 0xc3, 0x34, 0xd9, 0x77, 0xbd, 0xac, 0x54,
+ 0xe3, 0xf4, 0xd8, 0x72, 0x19, 0xc6, 0xeb, 0x38, 0xb0, 0xd2, 0x31, 0x83,
+ 0x77, 0x16, 0xf3, 0xd6, 0xf4, 0xd7, 0x36, 0xb6,
+};
+static const unsigned char kat892_nonce[] = {0};
+static const unsigned char kat892_persstr[] = {
+ 0xdb, 0xb3, 0xaf, 0xec, 0xd8, 0x1f, 0xb9, 0x4b, 0x6f, 0xde, 0x7b, 0x9e,
+ 0x5d, 0x12, 0x9d, 0x80, 0x57, 0x73, 0x7f, 0xab, 0x78, 0x28, 0x12, 0x7c,
+ 0xce, 0x2e, 0xaf, 0x82, 0xa5, 0xa0, 0xa5, 0x05,
+};
+static const unsigned char kat892_addin0[] = {
+ 0xb5, 0x6c, 0xe9, 0xf1, 0xaf, 0xb8, 0xe5, 0x87, 0x09, 0xc1, 0xb2, 0xf8,
+ 0xe5, 0x0e, 0x58, 0x52, 0x60, 0x4d, 0x1b, 0x34, 0x1d, 0x04, 0x65, 0x84,
+ 0xd0, 0x88, 0xfb, 0xfc, 0xad, 0x74, 0x6a, 0x09,
+};
+static const unsigned char kat892_addin1[] = {
+ 0xff, 0x45, 0xe7, 0x93, 0x4f, 0x8b, 0x17, 0x91, 0xfd, 0x3d, 0x3d, 0x03,
+ 0x92, 0x40, 0x77, 0xa9, 0xf0, 0xc4, 0x3e, 0xa5, 0x65, 0x71, 0xb9, 0xdb,
+ 0x8f, 0x74, 0x8f, 0x4d, 0xd2, 0x55, 0xe7, 0x32,
+};
+static const unsigned char kat892_retbits[] = {
+ 0xbc, 0x8d, 0xe3, 0x40, 0xb7, 0x03, 0xc7, 0x5d, 0x8e, 0x95, 0xc6, 0x61,
+ 0x05, 0x59, 0xc9, 0xe7, 0x09, 0xec, 0x0e, 0xc6, 0x2c, 0x32, 0x2f, 0x7c,
+ 0xd5, 0xef, 0x46, 0x7f, 0x99, 0x9f, 0xcd, 0x45, 0x7a, 0x4d, 0x0e, 0xa4,
+ 0xb3, 0xa6, 0x3f, 0x93, 0x41, 0xa4, 0xdf, 0x5b, 0x51, 0xce, 0x72, 0xc7,
+ 0x97, 0x70, 0xa7, 0x3b, 0x3d, 0x8d, 0xc4, 0x21, 0x16, 0xf9, 0xbe, 0x19,
+ 0x4a, 0x22, 0x2c, 0x4d,
+};
+static const struct drbg_kat_no_reseed kat892_t = {
+ 6, kat892_entropyin, kat892_nonce, kat892_persstr,
+ kat892_addin0, kat892_addin1, kat892_retbits
+};
+static const struct drbg_kat kat892 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat892_t
+};
+
+static const unsigned char kat893_entropyin[] = {
+ 0x8e, 0xe9, 0x91, 0x00, 0xc8, 0xe3, 0xb4, 0x4c, 0x8e, 0x07, 0xbf, 0x87,
+ 0xc2, 0x4f, 0x76, 0x13, 0x46, 0xf8, 0xf4, 0x88, 0xef, 0xd8, 0x6b, 0x33,
+ 0x52, 0x8a, 0x17, 0xbc, 0x9a, 0xb9, 0x5c, 0xc4,
+};
+static const unsigned char kat893_nonce[] = {0};
+static const unsigned char kat893_persstr[] = {
+ 0x01, 0xb9, 0x5a, 0x46, 0xce, 0xbc, 0x95, 0xe0, 0xec, 0x82, 0x1c, 0x92,
+ 0x15, 0x69, 0xd8, 0x07, 0x99, 0xed, 0x2a, 0x13, 0x32, 0xb7, 0xfd, 0x08,
+ 0x07, 0x07, 0x59, 0x0a, 0x51, 0x1a, 0x55, 0x83,
+};
+static const unsigned char kat893_addin0[] = {
+ 0x02, 0xf5, 0x20, 0xd9, 0x9b, 0x93, 0xa6, 0x22, 0xe8, 0xef, 0xcb, 0xb0,
+ 0x73, 0xf8, 0xb6, 0x4a, 0x89, 0xec, 0x07, 0x5d, 0x70, 0x13, 0x1a, 0x63,
+ 0x50, 0x9b, 0x04, 0xfe, 0x50, 0x69, 0xf4, 0x7a,
+};
+static const unsigned char kat893_addin1[] = {
+ 0xba, 0x6b, 0x22, 0x67, 0x2a, 0x1f, 0xdc, 0x95, 0x92, 0x03, 0x3a, 0xe8,
+ 0x96, 0x64, 0x21, 0xf9, 0xe8, 0x4d, 0x98, 0xd6, 0x0a, 0x1c, 0xad, 0x8b,
+ 0x0d, 0x04, 0x2d, 0xc6, 0xc3, 0x44, 0x8a, 0x28,
+};
+static const unsigned char kat893_retbits[] = {
+ 0x88, 0x20, 0x42, 0xc9, 0x30, 0x2b, 0x67, 0x14, 0xad, 0x5b, 0xe7, 0xe4,
+ 0xfb, 0xbe, 0xec, 0x06, 0xf7, 0xc3, 0x8f, 0x84, 0x62, 0x0c, 0xdb, 0x9b,
+ 0x30, 0x0e, 0x02, 0xb5, 0xca, 0x58, 0xda, 0x80, 0x80, 0xf8, 0x29, 0x0c,
+ 0xab, 0xd9, 0xed, 0x8e, 0x62, 0xce, 0x81, 0x02, 0x69, 0xbd, 0x2f, 0xae,
+ 0x3a, 0x64, 0x27, 0xd3, 0x11, 0x7e, 0x45, 0xf0, 0xa8, 0x3c, 0x53, 0x58,
+ 0xbf, 0x9c, 0x49, 0xf2,
+};
+static const struct drbg_kat_no_reseed kat893_t = {
+ 7, kat893_entropyin, kat893_nonce, kat893_persstr,
+ kat893_addin0, kat893_addin1, kat893_retbits
+};
+static const struct drbg_kat kat893 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat893_t
+};
+
+static const unsigned char kat894_entropyin[] = {
+ 0xfa, 0xe4, 0x6d, 0x54, 0x6b, 0x12, 0x53, 0x23, 0xb2, 0x81, 0x56, 0x92,
+ 0xf5, 0xb6, 0xc7, 0x30, 0x57, 0xb7, 0x26, 0xb2, 0x0f, 0x39, 0x27, 0x33,
+ 0x9e, 0xe6, 0x35, 0x97, 0x51, 0x0f, 0x6c, 0x64,
+};
+static const unsigned char kat894_nonce[] = {0};
+static const unsigned char kat894_persstr[] = {
+ 0xe7, 0x61, 0x2f, 0xaa, 0x26, 0x2a, 0xe7, 0xfb, 0x8b, 0x81, 0xd3, 0xe8,
+ 0xfe, 0x01, 0xd5, 0x00, 0x12, 0x35, 0x4c, 0xf9, 0xe1, 0x8d, 0x10, 0x8a,
+ 0xe0, 0x78, 0x0c, 0x33, 0x4f, 0x8b, 0xc6, 0xb3,
+};
+static const unsigned char kat894_addin0[] = {
+ 0x9f, 0xa5, 0xfc, 0x12, 0x7d, 0x26, 0x6b, 0xfd, 0x68, 0x52, 0xa5, 0x32,
+ 0xe4, 0xd5, 0x18, 0xd0, 0xac, 0x36, 0x14, 0xc6, 0x77, 0xb6, 0x61, 0xd5,
+ 0xdb, 0x62, 0x00, 0xcc, 0x2d, 0xeb, 0x5f, 0x4b,
+};
+static const unsigned char kat894_addin1[] = {
+ 0x8e, 0x1c, 0x0b, 0x5d, 0x0a, 0x2a, 0xfe, 0x84, 0xf4, 0xe2, 0x32, 0x6b,
+ 0x87, 0x14, 0xc1, 0x5b, 0x21, 0xae, 0x55, 0x7f, 0x93, 0x1d, 0xbb, 0x14,
+ 0xec, 0xb6, 0xef, 0x67, 0xc5, 0xb7, 0xde, 0x8d,
+};
+static const unsigned char kat894_retbits[] = {
+ 0x25, 0xbf, 0x43, 0xc9, 0x55, 0x55, 0x97, 0xe2, 0xb1, 0xb2, 0x7d, 0x4b,
+ 0xfd, 0xd8, 0x27, 0x78, 0x5d, 0x80, 0xbe, 0x5e, 0x09, 0xfd, 0x6b, 0x6d,
+ 0xca, 0x62, 0x9d, 0xf7, 0x3f, 0xaa, 0xe1, 0xc1, 0xf0, 0xab, 0x22, 0x8b,
+ 0x05, 0x8a, 0x7a, 0x3a, 0x8a, 0xdf, 0xa4, 0x5f, 0x4b, 0x8f, 0x67, 0x9e,
+ 0x17, 0x26, 0x0d, 0x25, 0xd8, 0x7d, 0x9c, 0x01, 0xbe, 0x4d, 0xc2, 0x42,
+ 0x58, 0x1d, 0x97, 0x7f,
+};
+static const struct drbg_kat_no_reseed kat894_t = {
+ 8, kat894_entropyin, kat894_nonce, kat894_persstr,
+ kat894_addin0, kat894_addin1, kat894_retbits
+};
+static const struct drbg_kat kat894 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat894_t
+};
+
+static const unsigned char kat895_entropyin[] = {
+ 0x00, 0x17, 0x01, 0xb4, 0x4d, 0x0d, 0x95, 0xf1, 0x87, 0x8b, 0x3e, 0xee,
+ 0xfb, 0xcc, 0xd7, 0x47, 0x7d, 0x7d, 0x71, 0x9e, 0x1a, 0xe8, 0x69, 0xc8,
+ 0x04, 0x92, 0xbf, 0x64, 0x6d, 0x1b, 0x05, 0x56,
+};
+static const unsigned char kat895_nonce[] = {0};
+static const unsigned char kat895_persstr[] = {
+ 0x4a, 0x8d, 0xae, 0xf8, 0x09, 0xda, 0xa4, 0x6d, 0x8f, 0x95, 0x07, 0x02,
+ 0x01, 0xaf, 0x13, 0xf2, 0xc9, 0x2e, 0x61, 0xda, 0x77, 0xa6, 0x2e, 0x8e,
+ 0x1c, 0x83, 0x67, 0x10, 0x7d, 0xfd, 0x18, 0xb8,
+};
+static const unsigned char kat895_addin0[] = {
+ 0x2b, 0x24, 0x18, 0x37, 0xdc, 0xcb, 0x29, 0x2b, 0x5f, 0x1f, 0x55, 0xd8,
+ 0x14, 0xd6, 0x19, 0x75, 0x15, 0x15, 0x3a, 0x27, 0x6f, 0x36, 0x6b, 0x40,
+ 0x6f, 0x92, 0xea, 0xa8, 0xa5, 0x82, 0x29, 0xfa,
+};
+static const unsigned char kat895_addin1[] = {
+ 0x04, 0x12, 0x6b, 0x3f, 0xef, 0xe0, 0x44, 0x86, 0x25, 0x4a, 0x4a, 0x0b,
+ 0xa5, 0xc4, 0xa3, 0xd5, 0x0b, 0x20, 0x8d, 0x45, 0xda, 0xc5, 0xce, 0xd1,
+ 0x73, 0x93, 0x7f, 0xf4, 0xa3, 0x15, 0x22, 0x16,
+};
+static const unsigned char kat895_retbits[] = {
+ 0xd8, 0xaa, 0x27, 0x19, 0x09, 0x45, 0x9f, 0xf4, 0x0c, 0xeb, 0xef, 0x22,
+ 0x3f, 0x2c, 0x8b, 0xbf, 0x32, 0x72, 0x48, 0xc9, 0x88, 0xdc, 0xe9, 0xe5,
+ 0x0a, 0x57, 0xc2, 0x11, 0x94, 0xca, 0x45, 0xf9, 0xc7, 0x58, 0x17, 0x8e,
+ 0xb3, 0x72, 0xd2, 0xc1, 0x5b, 0x8a, 0xcb, 0x45, 0x93, 0x73, 0x47, 0x46,
+ 0x95, 0x0c, 0xb9, 0x12, 0x3a, 0x67, 0x98, 0x7f, 0xed, 0x82, 0xd5, 0xfa,
+ 0x8a, 0x51, 0x67, 0x49,
+};
+static const struct drbg_kat_no_reseed kat895_t = {
+ 9, kat895_entropyin, kat895_nonce, kat895_persstr,
+ kat895_addin0, kat895_addin1, kat895_retbits
+};
+static const struct drbg_kat kat895 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat895_t
+};
+
+static const unsigned char kat896_entropyin[] = {
+ 0x85, 0x42, 0x5a, 0x96, 0xdc, 0x61, 0x09, 0xaa, 0xb7, 0xf9, 0x6c, 0xa7,
+ 0x38, 0x56, 0xcb, 0x51, 0xe5, 0xa0, 0x6d, 0x0f, 0xdf, 0xcb, 0xa4, 0x68,
+ 0x76, 0xff, 0x75, 0x54, 0x2b, 0xc1, 0x56, 0x59,
+};
+static const unsigned char kat896_nonce[] = {0};
+static const unsigned char kat896_persstr[] = {
+ 0x7d, 0x34, 0xea, 0xb3, 0xa4, 0x9a, 0x00, 0x54, 0xa0, 0x53, 0x3c, 0x36,
+ 0xe4, 0xbe, 0xfc, 0x81, 0xe8, 0x57, 0x6d, 0xba, 0x7b, 0xf2, 0xcf, 0xf8,
+ 0xc8, 0xf3, 0x9d, 0xd1, 0x91, 0x08, 0x9c, 0x8d,
+};
+static const unsigned char kat896_addin0[] = {
+ 0xa2, 0xb1, 0x2d, 0x04, 0x61, 0xe2, 0x85, 0x59, 0x68, 0xb2, 0xe9, 0x39,
+ 0x4b, 0xb5, 0x81, 0xd3, 0xad, 0x63, 0x18, 0x30, 0xd7, 0x41, 0x6f, 0x6e,
+ 0xfe, 0x69, 0x68, 0xba, 0x1b, 0xf4, 0x4f, 0xf6,
+};
+static const unsigned char kat896_addin1[] = {
+ 0x14, 0xd2, 0x50, 0x1c, 0x43, 0x41, 0x16, 0x49, 0xad, 0xf5, 0x57, 0x70,
+ 0x73, 0x90, 0xe3, 0x73, 0xac, 0x06, 0x9a, 0xf6, 0x52, 0x00, 0x20, 0xcf,
+ 0x02, 0x21, 0x2e, 0xec, 0x64, 0x77, 0xc2, 0x88,
+};
+static const unsigned char kat896_retbits[] = {
+ 0x71, 0x13, 0x06, 0x92, 0xbb, 0xa5, 0xd1, 0xa3, 0x68, 0x4b, 0xcd, 0x6c,
+ 0x03, 0x28, 0x1f, 0xf9, 0x72, 0x0a, 0x9f, 0x4f, 0xd6, 0x28, 0x60, 0xeb,
+ 0x74, 0xfd, 0xe2, 0x98, 0x98, 0x7f, 0x61, 0x2c, 0xae, 0xe2, 0x51, 0xc1,
+ 0x37, 0x61, 0x92, 0xa6, 0x8a, 0xa2, 0x9b, 0x93, 0x8b, 0x10, 0x3a, 0x16,
+ 0xa8, 0xfb, 0x0f, 0xb5, 0x59, 0x4b, 0x72, 0x8a, 0x54, 0x59, 0x60, 0x1e,
+ 0xb1, 0x4c, 0xaf, 0x10,
+};
+static const struct drbg_kat_no_reseed kat896_t = {
+ 10, kat896_entropyin, kat896_nonce, kat896_persstr,
+ kat896_addin0, kat896_addin1, kat896_retbits
+};
+static const struct drbg_kat kat896 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat896_t
+};
+
+static const unsigned char kat897_entropyin[] = {
+ 0x16, 0x7b, 0x70, 0x2d, 0x7a, 0x96, 0xea, 0xa8, 0x81, 0x4d, 0x98, 0xb7,
+ 0xb8, 0xec, 0x59, 0x6c, 0x6c, 0x75, 0x97, 0xb1, 0x9f, 0xae, 0xad, 0x69,
+ 0xc6, 0x3b, 0xc2, 0x98, 0x8a, 0x8d, 0x39, 0xa1,
+};
+static const unsigned char kat897_nonce[] = {0};
+static const unsigned char kat897_persstr[] = {
+ 0x20, 0xe7, 0xd6, 0xd1, 0x90, 0x87, 0xa8, 0x7e, 0xa1, 0x75, 0xba, 0xad,
+ 0x5b, 0x2b, 0x3a, 0x4c, 0x01, 0x73, 0x85, 0xef, 0x0f, 0x7d, 0x1d, 0x32,
+ 0x20, 0x9a, 0x8b, 0xe6, 0xe0, 0x7e, 0x8d, 0x88,
+};
+static const unsigned char kat897_addin0[] = {
+ 0xf6, 0x3f, 0x9a, 0xb7, 0xf2, 0x67, 0x9b, 0xd2, 0x4e, 0x78, 0x51, 0xd3,
+ 0xbb, 0x5d, 0x82, 0x6b, 0xd2, 0x3d, 0x41, 0xac, 0xf3, 0x87, 0xf9, 0x0c,
+ 0x8c, 0x9d, 0xbb, 0x7e, 0x18, 0xdf, 0xbe, 0x96,
+};
+static const unsigned char kat897_addin1[] = {
+ 0x23, 0x5e, 0xcf, 0xca, 0x1e, 0x66, 0x36, 0x0c, 0xdc, 0xe6, 0x0b, 0x4b,
+ 0xeb, 0x13, 0x9d, 0x08, 0xc2, 0xdf, 0x8b, 0x60, 0xc3, 0x04, 0x3b, 0xc8,
+ 0xbe, 0x7b, 0x2a, 0x88, 0x3d, 0xe1, 0x78, 0x0b,
+};
+static const unsigned char kat897_retbits[] = {
+ 0x41, 0xbf, 0x3e, 0x50, 0x88, 0x35, 0x3b, 0xf9, 0x26, 0xca, 0x40, 0xa9,
+ 0x50, 0x78, 0xbe, 0x13, 0xaa, 0x2c, 0x70, 0x32, 0xa0, 0x5c, 0x55, 0xf6,
+ 0x9c, 0x6d, 0x45, 0x68, 0x97, 0x30, 0x79, 0xda, 0x0d, 0x45, 0x96, 0x0d,
+ 0x8c, 0x4e, 0x37, 0xca, 0x6a, 0xe6, 0x46, 0x27, 0xcd, 0x94, 0xab, 0xeb,
+ 0x09, 0xc5, 0x6a, 0xb8, 0xd5, 0x7f, 0xdc, 0xae, 0x92, 0x3a, 0x9e, 0x99,
+ 0x11, 0xe5, 0x69, 0xad,
+};
+static const struct drbg_kat_no_reseed kat897_t = {
+ 11, kat897_entropyin, kat897_nonce, kat897_persstr,
+ kat897_addin0, kat897_addin1, kat897_retbits
+};
+static const struct drbg_kat kat897 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat897_t
+};
+
+static const unsigned char kat898_entropyin[] = {
+ 0xa1, 0xef, 0x83, 0x7d, 0x29, 0xee, 0xcb, 0x1f, 0x85, 0x71, 0x87, 0x0e,
+ 0xb0, 0x6f, 0x64, 0x23, 0xae, 0x72, 0xcc, 0xec, 0x87, 0x38, 0x5e, 0xd6,
+ 0xcb, 0xc6, 0x00, 0xcf, 0x62, 0x91, 0x16, 0x6c,
+};
+static const unsigned char kat898_nonce[] = {0};
+static const unsigned char kat898_persstr[] = {
+ 0xa9, 0x4c, 0x80, 0xc1, 0xb7, 0xc0, 0x7d, 0x58, 0xb1, 0x55, 0x6f, 0x3c,
+ 0x50, 0x16, 0x67, 0x80, 0xfd, 0x26, 0x51, 0xe1, 0xe7, 0x3b, 0x97, 0xac,
+ 0xec, 0x4f, 0x92, 0xd1, 0xca, 0x9e, 0xab, 0xc3,
+};
+static const unsigned char kat898_addin0[] = {
+ 0x8e, 0xc6, 0x01, 0xce, 0xcd, 0x34, 0x09, 0xec, 0xfe, 0x91, 0x5c, 0x3a,
+ 0xd4, 0x0c, 0x86, 0x14, 0x65, 0x50, 0x6e, 0x46, 0x31, 0xdc, 0xe4, 0x01,
+ 0x0f, 0x8b, 0xff, 0xd0, 0x78, 0x7b, 0x33, 0xa6,
+};
+static const unsigned char kat898_addin1[] = {
+ 0xf1, 0x7d, 0x26, 0x44, 0xfa, 0xf4, 0x34, 0x03, 0xb1, 0x87, 0xc7, 0x95,
+ 0x77, 0xe5, 0xa6, 0xcc, 0x66, 0xe4, 0x73, 0x78, 0x16, 0x40, 0x97, 0x87,
+ 0xf4, 0x6b, 0x48, 0xb1, 0xd4, 0xa0, 0xad, 0x1f,
+};
+static const unsigned char kat898_retbits[] = {
+ 0x7f, 0x52, 0xcb, 0xd4, 0xae, 0xa2, 0x83, 0x23, 0xaf, 0xf2, 0xf6, 0x33,
+ 0xb4, 0x2a, 0xdb, 0x0a, 0x90, 0x3e, 0xbe, 0xd0, 0x89, 0xc8, 0x50, 0xcd,
+ 0x53, 0x1e, 0xb2, 0xaa, 0x11, 0x7a, 0xb8, 0xa9, 0xc2, 0x43, 0x17, 0xf8,
+ 0x52, 0xf5, 0xf9, 0x99, 0xa3, 0x44, 0x38, 0x94, 0x88, 0x98, 0xb8, 0x97,
+ 0x69, 0xb5, 0x10, 0x09, 0xad, 0x42, 0x98, 0xb7, 0xe5, 0xb4, 0x8c, 0xaa,
+ 0x64, 0x13, 0x1d, 0xe5,
+};
+static const struct drbg_kat_no_reseed kat898_t = {
+ 12, kat898_entropyin, kat898_nonce, kat898_persstr,
+ kat898_addin0, kat898_addin1, kat898_retbits
+};
+static const struct drbg_kat kat898 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat898_t
+};
+
+static const unsigned char kat899_entropyin[] = {
+ 0x65, 0xfa, 0x09, 0x83, 0xad, 0x3a, 0x6f, 0x34, 0xb6, 0x0c, 0x2c, 0x5f,
+ 0x42, 0x3e, 0x96, 0xfb, 0x62, 0x06, 0x68, 0xee, 0x6c, 0x61, 0x7c, 0xb3,
+ 0x97, 0x98, 0x9e, 0x7c, 0x8d, 0x22, 0xfd, 0x6e,
+};
+static const unsigned char kat899_nonce[] = {0};
+static const unsigned char kat899_persstr[] = {
+ 0x40, 0xa9, 0x5f, 0x2e, 0x17, 0x00, 0x3c, 0x0f, 0x0d, 0x42, 0x06, 0x94,
+ 0x72, 0x7d, 0x44, 0x60, 0xdb, 0xe2, 0xfd, 0x12, 0xa7, 0x65, 0x59, 0x4c,
+ 0x9b, 0x3f, 0x08, 0x51, 0x44, 0x3e, 0x6c, 0xb0,
+};
+static const unsigned char kat899_addin0[] = {
+ 0x0c, 0x38, 0x03, 0x83, 0x00, 0x9c, 0x16, 0x18, 0xd1, 0x6f, 0x3b, 0x8b,
+ 0x4f, 0x7c, 0xfe, 0x3c, 0x77, 0x6a, 0xf7, 0xc4, 0xa5, 0xff, 0xc5, 0x36,
+ 0x58, 0xe0, 0x51, 0x92, 0x90, 0x02, 0x2f, 0xdd,
+};
+static const unsigned char kat899_addin1[] = {
+ 0xd9, 0xc3, 0x20, 0x88, 0x20, 0xbc, 0x29, 0xe0, 0xfd, 0x8b, 0xea, 0x1f,
+ 0x31, 0xbf, 0x16, 0x8f, 0xcb, 0x23, 0xaa, 0x4b, 0x7b, 0x58, 0x37, 0x82,
+ 0xb8, 0x8a, 0x93, 0x63, 0x88, 0xbf, 0x94, 0x67,
+};
+static const unsigned char kat899_retbits[] = {
+ 0x61, 0xa0, 0x02, 0x5c, 0x46, 0x03, 0xd6, 0xd4, 0x4a, 0xe1, 0x5a, 0x93,
+ 0x9c, 0x9d, 0x96, 0x54, 0xe9, 0x85, 0xe7, 0xd5, 0x95, 0x31, 0x9f, 0xb2,
+ 0x00, 0x74, 0xfb, 0x32, 0xf2, 0xb7, 0xd7, 0xa7, 0x81, 0xa4, 0x52, 0x3a,
+ 0xb5, 0x62, 0xb0, 0x43, 0x74, 0xc1, 0x08, 0x3b, 0x52, 0x0f, 0x33, 0x57,
+ 0x56, 0xaf, 0xa6, 0xea, 0x4b, 0x05, 0xac, 0x3e, 0xa5, 0x97, 0xe9, 0x04,
+ 0xf3, 0x42, 0x49, 0x19,
+};
+static const struct drbg_kat_no_reseed kat899_t = {
+ 13, kat899_entropyin, kat899_nonce, kat899_persstr,
+ kat899_addin0, kat899_addin1, kat899_retbits
+};
+static const struct drbg_kat kat899 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat899_t
+};
+
+static const unsigned char kat900_entropyin[] = {
+ 0x57, 0x38, 0x21, 0xa1, 0x92, 0xae, 0x7c, 0x82, 0x27, 0x9f, 0x4c, 0x51,
+ 0x9d, 0x92, 0x69, 0x55, 0x0f, 0x68, 0xaf, 0x4a, 0x67, 0x79, 0xb7, 0x0a,
+ 0x1e, 0xa5, 0x3e, 0x6a, 0x31, 0x85, 0xfd, 0x0c,
+};
+static const unsigned char kat900_nonce[] = {0};
+static const unsigned char kat900_persstr[] = {
+ 0x9f, 0x38, 0x0e, 0x16, 0xbc, 0xc7, 0x74, 0xcc, 0x3d, 0x22, 0x4b, 0x58,
+ 0x27, 0x7d, 0x44, 0x01, 0x22, 0x5b, 0x94, 0x36, 0xff, 0x9e, 0x40, 0x02,
+ 0x1b, 0x79, 0x07, 0x6e, 0x22, 0x89, 0x14, 0xb9,
+};
+static const unsigned char kat900_addin0[] = {
+ 0x95, 0x9a, 0x1a, 0xed, 0x8c, 0x1b, 0x0a, 0xf6, 0x37, 0xb8, 0xc0, 0xd0,
+ 0xdf, 0xd6, 0x00, 0xb0, 0xd5, 0xdc, 0xbc, 0xac, 0x12, 0xbc, 0x8c, 0xb1,
+ 0x60, 0xa2, 0xa0, 0xee, 0x7f, 0x2f, 0xdf, 0x9f,
+};
+static const unsigned char kat900_addin1[] = {
+ 0xfd, 0xbb, 0x47, 0x2c, 0x9f, 0x36, 0x8a, 0x44, 0xf9, 0x2b, 0xab, 0x4b,
+ 0xd9, 0x93, 0xc7, 0xf3, 0x9d, 0x4e, 0x61, 0xc6, 0x50, 0x3f, 0x69, 0xc2,
+ 0x05, 0x19, 0x1d, 0x86, 0xbc, 0x1b, 0x29, 0x44,
+};
+static const unsigned char kat900_retbits[] = {
+ 0xfa, 0x2f, 0x2a, 0x56, 0x6b, 0x99, 0xae, 0x81, 0x0b, 0x2b, 0x95, 0x09,
+ 0x2d, 0xa6, 0x7b, 0xb1, 0x6f, 0xa1, 0x85, 0x01, 0x3a, 0xd0, 0xc8, 0x3a,
+ 0x84, 0x5b, 0x48, 0xcf, 0x4f, 0xa5, 0x5f, 0x70, 0x17, 0xed, 0x94, 0x4d,
+ 0x08, 0xb5, 0x7d, 0x68, 0x13, 0x70, 0x0f, 0xb6, 0x0a, 0x30, 0xa2, 0xa2,
+ 0xf9, 0x76, 0xf8, 0xb9, 0x76, 0x15, 0x16, 0xef, 0x13, 0x7e, 0x3e, 0x3a,
+ 0x07, 0x83, 0x12, 0xf9,
+};
+static const struct drbg_kat_no_reseed kat900_t = {
+ 14, kat900_entropyin, kat900_nonce, kat900_persstr,
+ kat900_addin0, kat900_addin1, kat900_retbits
+};
+static const struct drbg_kat kat900 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat900_t
+};
+
+static const unsigned char kat901_entropyin[] = {
+ 0x08, 0x4b, 0x35, 0x2f, 0x38, 0xab, 0x28, 0xd9, 0xc1, 0xc7, 0xff, 0x16,
+ 0x55, 0x8e, 0x0a, 0x12, 0x37, 0x7d, 0x82, 0x0c, 0xd6, 0xec, 0xa3, 0xa3,
+ 0x52, 0xa6, 0xfe, 0xc3, 0x81, 0xf3, 0x58, 0x44,
+};
+static const unsigned char kat901_nonce[] = {0};
+static const unsigned char kat901_persstr[] = {0};
+static const unsigned char kat901_addin0[] = {0};
+static const unsigned char kat901_addin1[] = {0};
+static const unsigned char kat901_retbits[] = {
+ 0xcb, 0xdf, 0xff, 0x95, 0xde, 0x29, 0x06, 0xf3, 0x42, 0x3e, 0xb4, 0x42,
+ 0x2b, 0xd3, 0xb0, 0xe6, 0xed, 0x55, 0xa7, 0x84, 0x3a, 0xb6, 0xeb, 0xed,
+ 0xf5, 0x2a, 0xca, 0xf2, 0x8e, 0x7a, 0x5a, 0xe0, 0x61, 0xae, 0xdb, 0x49,
+ 0xe7, 0x47, 0x67, 0x83, 0xf5, 0xcf, 0x29, 0x54, 0x16, 0x8c, 0x8e, 0xbc,
+ 0x3c, 0x9a, 0xb0, 0xb1, 0xa1, 0xcb, 0x87, 0x90, 0x76, 0xb4, 0x76, 0x97,
+ 0xb3, 0x6f, 0x95, 0x40,
+};
+static const struct drbg_kat_no_reseed kat901_t = {
+ 0, kat901_entropyin, kat901_nonce, kat901_persstr,
+ kat901_addin0, kat901_addin1, kat901_retbits
+};
+static const struct drbg_kat kat901 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat901_t
+};
+
+static const unsigned char kat902_entropyin[] = {
+ 0x8c, 0x25, 0x66, 0xac, 0x86, 0x0f, 0x23, 0x2f, 0xa3, 0x17, 0x08, 0x7f,
+ 0x84, 0xf0, 0x17, 0x6f, 0x98, 0xf5, 0x7e, 0xc0, 0x87, 0xae, 0x8c, 0xae,
+ 0x97, 0x52, 0x7b, 0xea, 0x92, 0x24, 0xab, 0xf1,
+};
+static const unsigned char kat902_nonce[] = {0};
+static const unsigned char kat902_persstr[] = {0};
+static const unsigned char kat902_addin0[] = {0};
+static const unsigned char kat902_addin1[] = {0};
+static const unsigned char kat902_retbits[] = {
+ 0xa6, 0x64, 0xd3, 0x1a, 0x2f, 0xa0, 0x8d, 0xd1, 0x6a, 0x2b, 0x89, 0xf6,
+ 0xbc, 0x60, 0xeb, 0x52, 0xe4, 0x7d, 0x99, 0x78, 0x23, 0x94, 0x04, 0x1e,
+ 0x39, 0x1d, 0x9f, 0x56, 0x86, 0x24, 0x7a, 0xa2, 0x43, 0x00, 0xe4, 0x87,
+ 0xa7, 0x30, 0xd5, 0x20, 0x0d, 0xfd, 0xec, 0xcc, 0x47, 0x4d, 0x22, 0xf5,
+ 0xaa, 0x8e, 0xd5, 0x23, 0xc3, 0xa0, 0xf6, 0x29, 0x7d, 0xc5, 0x33, 0x93,
+ 0x65, 0x92, 0xac, 0x3f,
+};
+static const struct drbg_kat_no_reseed kat902_t = {
+ 1, kat902_entropyin, kat902_nonce, kat902_persstr,
+ kat902_addin0, kat902_addin1, kat902_retbits
+};
+static const struct drbg_kat kat902 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat902_t
+};
+
+static const unsigned char kat903_entropyin[] = {
+ 0x09, 0xc8, 0xe3, 0x92, 0x2a, 0x75, 0x6b, 0xfa, 0x74, 0x0d, 0x09, 0x23,
+ 0x42, 0x55, 0xe0, 0xfc, 0x4b, 0x1b, 0x46, 0xe3, 0x51, 0x39, 0x69, 0xd2,
+ 0x42, 0x44, 0xb0, 0xd9, 0xb4, 0x92, 0xfb, 0x26,
+};
+static const unsigned char kat903_nonce[] = {0};
+static const unsigned char kat903_persstr[] = {0};
+static const unsigned char kat903_addin0[] = {0};
+static const unsigned char kat903_addin1[] = {0};
+static const unsigned char kat903_retbits[] = {
+ 0x31, 0xc5, 0x02, 0xfe, 0x08, 0x77, 0x5f, 0x53, 0xfb, 0xaa, 0x52, 0xde,
+ 0x6e, 0xc5, 0x3e, 0xd9, 0x68, 0x87, 0xee, 0x6c, 0x49, 0x74, 0x3b, 0xc5,
+ 0xa8, 0x8b, 0x01, 0x6f, 0x46, 0x95, 0xa6, 0xf5, 0x35, 0x2c, 0xd6, 0xf1,
+ 0x82, 0xb2, 0x7a, 0x50, 0xb3, 0x75, 0x50, 0x64, 0x4a, 0x51, 0x8e, 0xfc,
+ 0xcc, 0xc8, 0x47, 0xae, 0x08, 0x78, 0x07, 0x66, 0xaa, 0xb2, 0xd0, 0x98,
+ 0x4d, 0xc1, 0x37, 0xe6,
+};
+static const struct drbg_kat_no_reseed kat903_t = {
+ 2, kat903_entropyin, kat903_nonce, kat903_persstr,
+ kat903_addin0, kat903_addin1, kat903_retbits
+};
+static const struct drbg_kat kat903 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat903_t
+};
+
+static const unsigned char kat904_entropyin[] = {
+ 0x6e, 0xb0, 0x55, 0xa3, 0x30, 0xf2, 0xc1, 0x81, 0x77, 0x48, 0x18, 0x5d,
+ 0x5c, 0xf1, 0x18, 0x62, 0xe2, 0x7a, 0x17, 0x3c, 0x7c, 0xaa, 0x98, 0x31,
+ 0x28, 0xac, 0x7d, 0x35, 0x6d, 0x39, 0xf4, 0x40,
+};
+static const unsigned char kat904_nonce[] = {0};
+static const unsigned char kat904_persstr[] = {0};
+static const unsigned char kat904_addin0[] = {0};
+static const unsigned char kat904_addin1[] = {0};
+static const unsigned char kat904_retbits[] = {
+ 0x3a, 0x34, 0xb6, 0x91, 0x1f, 0xe2, 0x7f, 0x5d, 0x5b, 0x4d, 0xa7, 0x56,
+ 0x1f, 0xb5, 0x7d, 0xb8, 0xfc, 0xee, 0x03, 0x93, 0x88, 0xca, 0x9b, 0xba,
+ 0x1f, 0xf1, 0xdb, 0x8f, 0xf5, 0x80, 0x96, 0x26, 0x3e, 0x96, 0xb0, 0xb0,
+ 0x67, 0xe2, 0xc6, 0xea, 0xf4, 0x88, 0xf2, 0x99, 0xd3, 0x70, 0x51, 0xc5,
+ 0x95, 0x05, 0x87, 0x26, 0x01, 0xe2, 0x8b, 0x9d, 0x2a, 0xf7, 0xdb, 0xd8,
+ 0x9f, 0x23, 0x54, 0x07,
+};
+static const struct drbg_kat_no_reseed kat904_t = {
+ 3, kat904_entropyin, kat904_nonce, kat904_persstr,
+ kat904_addin0, kat904_addin1, kat904_retbits
+};
+static const struct drbg_kat kat904 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat904_t
+};
+
+static const unsigned char kat905_entropyin[] = {
+ 0x70, 0xb3, 0x40, 0x65, 0x29, 0x9c, 0xab, 0xb6, 0x72, 0x89, 0x09, 0xfa,
+ 0xfe, 0x37, 0xd6, 0xb2, 0x68, 0xfe, 0x9f, 0xdc, 0xff, 0x83, 0x3e, 0x63,
+ 0x8f, 0x13, 0x4c, 0x02, 0xd2, 0x32, 0xb4, 0xee,
+};
+static const unsigned char kat905_nonce[] = {0};
+static const unsigned char kat905_persstr[] = {0};
+static const unsigned char kat905_addin0[] = {0};
+static const unsigned char kat905_addin1[] = {0};
+static const unsigned char kat905_retbits[] = {
+ 0xcb, 0x78, 0xab, 0x06, 0x75, 0x91, 0x15, 0x5f, 0xcd, 0x3a, 0x89, 0x20,
+ 0x53, 0xd9, 0xb2, 0x71, 0xac, 0x05, 0xa8, 0xc7, 0xc3, 0x23, 0x38, 0xbf,
+ 0x63, 0x90, 0x18, 0x4a, 0x46, 0xf0, 0x7f, 0x8a, 0x47, 0x57, 0xb0, 0xe0,
+ 0x3e, 0x94, 0x75, 0x8b, 0x14, 0x3d, 0x5a, 0x23, 0x30, 0xc6, 0xb8, 0xf8,
+ 0x8a, 0xa6, 0x21, 0xeb, 0x10, 0x20, 0x50, 0x96, 0x29, 0x40, 0x78, 0x8a,
+ 0xec, 0x9b, 0xe6, 0x54,
+};
+static const struct drbg_kat_no_reseed kat905_t = {
+ 4, kat905_entropyin, kat905_nonce, kat905_persstr,
+ kat905_addin0, kat905_addin1, kat905_retbits
+};
+static const struct drbg_kat kat905 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat905_t
+};
+
+static const unsigned char kat906_entropyin[] = {
+ 0x61, 0xba, 0x1e, 0xd5, 0x28, 0xe5, 0xa6, 0x07, 0x09, 0x81, 0xcd, 0x5c,
+ 0x11, 0xb4, 0xbe, 0x2c, 0x2c, 0x57, 0x35, 0x9d, 0xf0, 0x61, 0xc3, 0x05,
+ 0x3c, 0x5a, 0x1c, 0x6a, 0x20, 0x06, 0xee, 0x26,
+};
+static const unsigned char kat906_nonce[] = {0};
+static const unsigned char kat906_persstr[] = {0};
+static const unsigned char kat906_addin0[] = {0};
+static const unsigned char kat906_addin1[] = {0};
+static const unsigned char kat906_retbits[] = {
+ 0x86, 0xad, 0xa4, 0xfa, 0xb2, 0xbc, 0xf5, 0xd0, 0x64, 0x18, 0x97, 0xe6,
+ 0xb7, 0x28, 0xb1, 0x3c, 0xe6, 0x85, 0xde, 0x59, 0xf8, 0x59, 0xae, 0xe2,
+ 0xbc, 0x15, 0xca, 0x0b, 0xab, 0x67, 0x03, 0xf8, 0xd1, 0x99, 0x1a, 0x4a,
+ 0x60, 0x33, 0xe4, 0x0c, 0x58, 0xfb, 0xc1, 0x9b, 0xe5, 0x3a, 0x13, 0x39,
+ 0x8e, 0x53, 0x7b, 0xf9, 0x03, 0xfe, 0x19, 0xea, 0x0a, 0xac, 0x55, 0xb2,
+ 0x72, 0xa8, 0xa3, 0x46,
+};
+static const struct drbg_kat_no_reseed kat906_t = {
+ 5, kat906_entropyin, kat906_nonce, kat906_persstr,
+ kat906_addin0, kat906_addin1, kat906_retbits
+};
+static const struct drbg_kat kat906 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat906_t
+};
+
+static const unsigned char kat907_entropyin[] = {
+ 0x5b, 0xe7, 0x68, 0x7f, 0xb7, 0xd0, 0xee, 0x62, 0xbf, 0x62, 0xf0, 0x6f,
+ 0xac, 0x2e, 0xee, 0x25, 0x21, 0xbe, 0x7e, 0x73, 0x0c, 0x1e, 0xcc, 0x63,
+ 0x37, 0x1f, 0x5d, 0x87, 0x87, 0xbb, 0xce, 0x75,
+};
+static const unsigned char kat907_nonce[] = {0};
+static const unsigned char kat907_persstr[] = {0};
+static const unsigned char kat907_addin0[] = {0};
+static const unsigned char kat907_addin1[] = {0};
+static const unsigned char kat907_retbits[] = {
+ 0x28, 0x5c, 0xa1, 0xfe, 0x69, 0xb8, 0xbb, 0x0a, 0x7b, 0x78, 0x78, 0x23,
+ 0xf4, 0x6c, 0xcc, 0x9f, 0x8e, 0xc6, 0xac, 0xcf, 0x8b, 0xe1, 0x7e, 0xaf,
+ 0x95, 0xe6, 0x3c, 0x4a, 0x1d, 0x27, 0xd4, 0x69, 0x9f, 0x9a, 0xe9, 0xb5,
+ 0x94, 0x33, 0x87, 0xb5, 0x76, 0x27, 0x6e, 0x45, 0x9f, 0x2d, 0x57, 0x92,
+ 0xcc, 0x51, 0xa1, 0xba, 0xe1, 0x32, 0x48, 0xc3, 0x55, 0x60, 0xbf, 0x21,
+ 0x1c, 0xc1, 0xd7, 0x81,
+};
+static const struct drbg_kat_no_reseed kat907_t = {
+ 6, kat907_entropyin, kat907_nonce, kat907_persstr,
+ kat907_addin0, kat907_addin1, kat907_retbits
+};
+static const struct drbg_kat kat907 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat907_t
+};
+
+static const unsigned char kat908_entropyin[] = {
+ 0x07, 0x9a, 0x18, 0x3f, 0x31, 0x2e, 0x9b, 0xd4, 0xd2, 0x3c, 0xb9, 0x97,
+ 0x54, 0x80, 0x28, 0xb0, 0x31, 0x01, 0x0e, 0x80, 0xbd, 0x59, 0xd5, 0x67,
+ 0x34, 0x14, 0xe4, 0xeb, 0xc1, 0x0d, 0xd9, 0x9d,
+};
+static const unsigned char kat908_nonce[] = {0};
+static const unsigned char kat908_persstr[] = {0};
+static const unsigned char kat908_addin0[] = {0};
+static const unsigned char kat908_addin1[] = {0};
+static const unsigned char kat908_retbits[] = {
+ 0xe8, 0x29, 0x02, 0xb5, 0x88, 0x1d, 0x6a, 0x8d, 0x4d, 0x42, 0xc1, 0x52,
+ 0xae, 0x60, 0xea, 0x1c, 0x81, 0xa6, 0xfd, 0x17, 0x16, 0x76, 0xd1, 0x6b,
+ 0x7e, 0x94, 0xe4, 0xa8, 0x5f, 0xaf, 0x46, 0x28, 0x79, 0xc6, 0x67, 0x25,
+ 0x40, 0x42, 0x59, 0xaf, 0x44, 0x13, 0xc4, 0x28, 0xb8, 0x58, 0x51, 0x8e,
+ 0x46, 0x74, 0x78, 0x8f, 0xc5, 0x35, 0x6b, 0xb9, 0xb6, 0x00, 0xf9, 0x6b,
+ 0x88, 0xed, 0x47, 0x06,
+};
+static const struct drbg_kat_no_reseed kat908_t = {
+ 7, kat908_entropyin, kat908_nonce, kat908_persstr,
+ kat908_addin0, kat908_addin1, kat908_retbits
+};
+static const struct drbg_kat kat908 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat908_t
+};
+
+static const unsigned char kat909_entropyin[] = {
+ 0x0a, 0x55, 0xa5, 0x79, 0xdc, 0xcc, 0x4b, 0xf1, 0x1b, 0x59, 0xfa, 0x85,
+ 0xdb, 0x6e, 0x33, 0xed, 0xa0, 0x69, 0x25, 0x72, 0x06, 0xfd, 0x62, 0x34,
+ 0x54, 0x45, 0xcc, 0xba, 0x20, 0x32, 0x70, 0x43,
+};
+static const unsigned char kat909_nonce[] = {0};
+static const unsigned char kat909_persstr[] = {0};
+static const unsigned char kat909_addin0[] = {0};
+static const unsigned char kat909_addin1[] = {0};
+static const unsigned char kat909_retbits[] = {
+ 0xf9, 0x62, 0x01, 0xa7, 0xe0, 0xdd, 0x00, 0xd5, 0x9b, 0x9b, 0x64, 0xeb,
+ 0xed, 0x6a, 0xc9, 0xa7, 0xd5, 0x10, 0x8d, 0xa0, 0xaf, 0xef, 0xb6, 0xfa,
+ 0x86, 0x90, 0x59, 0x14, 0xa3, 0x37, 0x87, 0x85, 0x24, 0x07, 0x08, 0xfc,
+ 0xf6, 0x7d, 0xe0, 0x48, 0x1b, 0x35, 0x18, 0xcc, 0x4a, 0x8b, 0xf0, 0x5f,
+ 0xfa, 0x4f, 0x82, 0xea, 0x87, 0x43, 0xdb, 0x32, 0x1f, 0x7d, 0xaf, 0x86,
+ 0x67, 0x94, 0xcf, 0x93,
+};
+static const struct drbg_kat_no_reseed kat909_t = {
+ 8, kat909_entropyin, kat909_nonce, kat909_persstr,
+ kat909_addin0, kat909_addin1, kat909_retbits
+};
+static const struct drbg_kat kat909 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat909_t
+};
+
+static const unsigned char kat910_entropyin[] = {
+ 0xc7, 0x9f, 0xdb, 0xd9, 0xdb, 0xe4, 0x94, 0xbe, 0x55, 0x97, 0xac, 0xf6,
+ 0x6c, 0xc5, 0x8d, 0x54, 0x87, 0xf0, 0x32, 0xfb, 0xda, 0x9a, 0x73, 0x70,
+ 0x28, 0x3c, 0x41, 0x50, 0x28, 0xb3, 0x35, 0x41,
+};
+static const unsigned char kat910_nonce[] = {0};
+static const unsigned char kat910_persstr[] = {0};
+static const unsigned char kat910_addin0[] = {0};
+static const unsigned char kat910_addin1[] = {0};
+static const unsigned char kat910_retbits[] = {
+ 0x76, 0x68, 0xfb, 0x8d, 0x9b, 0xc2, 0x79, 0xae, 0xfa, 0xfc, 0x0c, 0x39,
+ 0xc0, 0xad, 0x66, 0x53, 0xb9, 0xbc, 0x3d, 0xd1, 0x73, 0x7c, 0xe1, 0x9b,
+ 0x18, 0x07, 0x44, 0x54, 0x46, 0x05, 0xab, 0x8c, 0x70, 0xf4, 0x61, 0xac,
+ 0xbb, 0x33, 0x7d, 0x68, 0x6a, 0xeb, 0x27, 0x83, 0xb5, 0x03, 0x63, 0xff,
+ 0xfe, 0xa0, 0x76, 0x4d, 0xe4, 0x6d, 0x1a, 0x6d, 0x51, 0x1c, 0x5e, 0xc0,
+ 0x24, 0xe5, 0xa7, 0x3b,
+};
+static const struct drbg_kat_no_reseed kat910_t = {
+ 9, kat910_entropyin, kat910_nonce, kat910_persstr,
+ kat910_addin0, kat910_addin1, kat910_retbits
+};
+static const struct drbg_kat kat910 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat910_t
+};
+
+static const unsigned char kat911_entropyin[] = {
+ 0xad, 0xad, 0x3e, 0x00, 0x63, 0xdf, 0x27, 0x1a, 0xbb, 0x77, 0xb2, 0xa0,
+ 0xd5, 0x28, 0x63, 0x8d, 0xeb, 0x4d, 0xeb, 0x5e, 0xe1, 0x4d, 0x00, 0x25,
+ 0x3c, 0x1b, 0xbe, 0x7e, 0x3f, 0xf9, 0xb6, 0xd4,
+};
+static const unsigned char kat911_nonce[] = {0};
+static const unsigned char kat911_persstr[] = {0};
+static const unsigned char kat911_addin0[] = {0};
+static const unsigned char kat911_addin1[] = {0};
+static const unsigned char kat911_retbits[] = {
+ 0x4a, 0x19, 0xa0, 0xb8, 0x97, 0x52, 0x43, 0xa3, 0xad, 0x46, 0xf2, 0x9a,
+ 0x2a, 0x02, 0x4d, 0x47, 0x7b, 0xca, 0xfd, 0xfb, 0x50, 0xf1, 0x7a, 0xac,
+ 0xa5, 0x66, 0x00, 0x39, 0xfc, 0xed, 0x2f, 0x07, 0x64, 0x72, 0x06, 0x20,
+ 0xdc, 0xfb, 0x7c, 0xcd, 0x25, 0x01, 0xfa, 0x13, 0x83, 0x9f, 0x79, 0x87,
+ 0xbd, 0x33, 0x9d, 0xba, 0xa2, 0xeb, 0xe5, 0x1e, 0x90, 0x57, 0x83, 0x7f,
+ 0xf5, 0x10, 0x38, 0x0f,
+};
+static const struct drbg_kat_no_reseed kat911_t = {
+ 10, kat911_entropyin, kat911_nonce, kat911_persstr,
+ kat911_addin0, kat911_addin1, kat911_retbits
+};
+static const struct drbg_kat kat911 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat911_t
+};
+
+static const unsigned char kat912_entropyin[] = {
+ 0xf8, 0xf6, 0x2d, 0x35, 0xef, 0xab, 0x49, 0x93, 0xf8, 0x99, 0xeb, 0xa7,
+ 0x5e, 0x02, 0x19, 0xc8, 0x65, 0x13, 0x49, 0xc9, 0xe8, 0xf8, 0xe7, 0x46,
+ 0x77, 0x9c, 0xb5, 0xb1, 0x20, 0x3a, 0x3b, 0x0d,
+};
+static const unsigned char kat912_nonce[] = {0};
+static const unsigned char kat912_persstr[] = {0};
+static const unsigned char kat912_addin0[] = {0};
+static const unsigned char kat912_addin1[] = {0};
+static const unsigned char kat912_retbits[] = {
+ 0x59, 0x40, 0x00, 0x43, 0x44, 0xe5, 0x7a, 0x3a, 0x9f, 0xcc, 0x53, 0x31,
+ 0x34, 0x38, 0x07, 0xdf, 0xea, 0x44, 0x26, 0xa8, 0x61, 0xe9, 0xbf, 0x0e,
+ 0xcb, 0x07, 0xf4, 0xb4, 0x75, 0x72, 0x58, 0xff, 0xee, 0xf5, 0x03, 0x37,
+ 0x9d, 0xe2, 0x78, 0xb2, 0x73, 0x6e, 0xf0, 0x6a, 0xf1, 0xf7, 0x82, 0x66,
+ 0xbf, 0xec, 0xf1, 0x14, 0xd4, 0x52, 0xde, 0x8a, 0xfe, 0x1a, 0x31, 0xd3,
+ 0x5d, 0x96, 0x1f, 0x4a,
+};
+static const struct drbg_kat_no_reseed kat912_t = {
+ 11, kat912_entropyin, kat912_nonce, kat912_persstr,
+ kat912_addin0, kat912_addin1, kat912_retbits
+};
+static const struct drbg_kat kat912 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat912_t
+};
+
+static const unsigned char kat913_entropyin[] = {
+ 0x7c, 0x32, 0x1c, 0xc7, 0xa0, 0x27, 0x10, 0xf4, 0x2f, 0x5c, 0x64, 0xf7,
+ 0xd5, 0x0e, 0x1c, 0xca, 0x13, 0x9f, 0x91, 0x81, 0x50, 0x21, 0x47, 0x6c,
+ 0xb3, 0xb6, 0x53, 0x36, 0xec, 0x0a, 0x8c, 0x64,
+};
+static const unsigned char kat913_nonce[] = {0};
+static const unsigned char kat913_persstr[] = {0};
+static const unsigned char kat913_addin0[] = {0};
+static const unsigned char kat913_addin1[] = {0};
+static const unsigned char kat913_retbits[] = {
+ 0xc8, 0x60, 0xe9, 0xe0, 0x9b, 0x4e, 0x36, 0x38, 0x1a, 0x4d, 0x8b, 0x0b,
+ 0x24, 0x73, 0x38, 0x92, 0x4a, 0xa7, 0x82, 0xeb, 0x79, 0x60, 0x3a, 0x26,
+ 0x89, 0x02, 0x50, 0xf5, 0x66, 0xab, 0x11, 0xde, 0x34, 0xda, 0xca, 0x00,
+ 0x56, 0x40, 0x3c, 0x49, 0xc0, 0x74, 0x72, 0x14, 0x81, 0xc2, 0xc0, 0xb0,
+ 0x6c, 0xb4, 0x66, 0x9f, 0xf9, 0xa3, 0xdf, 0xbf, 0xcb, 0x73, 0xc6, 0x22,
+ 0x80, 0xe5, 0x32, 0xbe,
+};
+static const struct drbg_kat_no_reseed kat913_t = {
+ 12, kat913_entropyin, kat913_nonce, kat913_persstr,
+ kat913_addin0, kat913_addin1, kat913_retbits
+};
+static const struct drbg_kat kat913 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat913_t
+};
+
+static const unsigned char kat914_entropyin[] = {
+ 0xff, 0xfc, 0xe2, 0x29, 0xdc, 0xc8, 0xf7, 0x7e, 0x3b, 0x71, 0x49, 0x80,
+ 0x4e, 0x94, 0xb2, 0x9c, 0x8c, 0x3d, 0x85, 0x1c, 0x12, 0x9d, 0x1a, 0x41,
+ 0x7e, 0x18, 0x1a, 0xde, 0xdf, 0x8d, 0xd1, 0x2b,
+};
+static const unsigned char kat914_nonce[] = {0};
+static const unsigned char kat914_persstr[] = {0};
+static const unsigned char kat914_addin0[] = {0};
+static const unsigned char kat914_addin1[] = {0};
+static const unsigned char kat914_retbits[] = {
+ 0x9a, 0xb8, 0xf2, 0x73, 0x0c, 0xd5, 0x03, 0x9a, 0x1c, 0x78, 0xf8, 0x37,
+ 0xcc, 0xaf, 0x77, 0x47, 0xb2, 0x7c, 0xa4, 0x25, 0xb0, 0x77, 0x28, 0x93,
+ 0x3e, 0x61, 0xbc, 0x39, 0xb5, 0xc0, 0x9f, 0xd6, 0x3a, 0x0f, 0x5e, 0x75,
+ 0x86, 0xfb, 0xb0, 0x0f, 0xe4, 0xfb, 0xea, 0x80, 0x93, 0x92, 0xa7, 0xf9,
+ 0x52, 0x06, 0x34, 0x5c, 0x64, 0x0c, 0xeb, 0xb9, 0x89, 0x97, 0xd5, 0x3c,
+ 0xd1, 0xbe, 0xa4, 0xbc,
+};
+static const struct drbg_kat_no_reseed kat914_t = {
+ 13, kat914_entropyin, kat914_nonce, kat914_persstr,
+ kat914_addin0, kat914_addin1, kat914_retbits
+};
+static const struct drbg_kat kat914 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat914_t
+};
+
+static const unsigned char kat915_entropyin[] = {
+ 0x39, 0x74, 0x27, 0xac, 0xb3, 0x68, 0x3a, 0xf1, 0x36, 0x36, 0xa7, 0x0f,
+ 0xa2, 0xd9, 0xff, 0x5b, 0x6d, 0x03, 0x2f, 0x9f, 0xc6, 0x19, 0x7d, 0x62,
+ 0xce, 0x10, 0x27, 0x51, 0x7c, 0xb6, 0x62, 0x68,
+};
+static const unsigned char kat915_nonce[] = {0};
+static const unsigned char kat915_persstr[] = {0};
+static const unsigned char kat915_addin0[] = {0};
+static const unsigned char kat915_addin1[] = {0};
+static const unsigned char kat915_retbits[] = {
+ 0x2c, 0x6b, 0x5c, 0x56, 0x82, 0x18, 0x77, 0x40, 0xfb, 0x56, 0x6c, 0xa6,
+ 0x06, 0x44, 0x05, 0x2b, 0x2e, 0x0b, 0xc3, 0x28, 0x5a, 0x39, 0x9e, 0x81,
+ 0x27, 0xae, 0x53, 0xfa, 0xfa, 0x3d, 0x52, 0x86, 0x68, 0x04, 0x16, 0x77,
+ 0x2e, 0x55, 0x2a, 0x2c, 0xbc, 0xe4, 0xa5, 0x23, 0xf2, 0x6e, 0x7e, 0x7e,
+ 0x45, 0x82, 0x7a, 0x29, 0x1b, 0x61, 0xa8, 0xb6, 0xfc, 0x78, 0x36, 0xe3,
+ 0xa1, 0x4e, 0x69, 0x4a,
+};
+static const struct drbg_kat_no_reseed kat915_t = {
+ 14, kat915_entropyin, kat915_nonce, kat915_persstr,
+ kat915_addin0, kat915_addin1, kat915_retbits
+};
+static const struct drbg_kat kat915 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat915_t
+};
+
+static const unsigned char kat916_entropyin[] = {
+ 0x15, 0x08, 0x7d, 0x76, 0xde, 0xba, 0x6d, 0x1b, 0xb1, 0x89, 0x01, 0xe8,
+ 0x16, 0x88, 0x71, 0x78, 0xdb, 0x28, 0x11, 0xbe, 0x02, 0xf0, 0x47, 0xfc,
+ 0xdc, 0xd9, 0x3f, 0xd0, 0x64, 0x81, 0x7b, 0x0c,
+};
+static const unsigned char kat916_nonce[] = {0};
+static const unsigned char kat916_persstr[] = {0};
+static const unsigned char kat916_addin0[] = {
+ 0xe4, 0xf2, 0xd4, 0x34, 0x2d, 0xdc, 0x85, 0xc2, 0x57, 0xcb, 0x6c, 0x17,
+ 0x67, 0xcb, 0x69, 0x65, 0x2f, 0x1c, 0x30, 0xa8, 0x2f, 0xe8, 0xc0, 0x55,
+ 0x0e, 0xca, 0x19, 0x37, 0x42, 0x8e, 0x1d, 0x90,
+};
+static const unsigned char kat916_addin1[] = {
+ 0xeb, 0x5f, 0x7d, 0x3e, 0xfc, 0x4b, 0xee, 0x04, 0x95, 0x12, 0xb2, 0x46,
+ 0x25, 0x14, 0x6a, 0x3f, 0xc5, 0x76, 0xfb, 0xbf, 0x0f, 0x0e, 0x7b, 0xe4,
+ 0xf8, 0x07, 0x8b, 0x51, 0xd4, 0x89, 0xf9, 0x53,
+};
+static const unsigned char kat916_retbits[] = {
+ 0x08, 0x30, 0x84, 0x7c, 0x46, 0x97, 0xb6, 0x78, 0xf3, 0x5e, 0x1c, 0x65,
+ 0x7a, 0x23, 0x74, 0xeb, 0x75, 0x56, 0xeb, 0xda, 0xf8, 0xf9, 0x86, 0x81,
+ 0xa3, 0xe7, 0xae, 0x87, 0x26, 0xc2, 0xf6, 0x70, 0xd0, 0x57, 0xc3, 0x8f,
+ 0x5f, 0x2a, 0x0c, 0x23, 0xf6, 0xd5, 0x36, 0x68, 0xc6, 0xd1, 0x0a, 0x97,
+ 0x55, 0xb4, 0xc3, 0x89, 0x5d, 0x96, 0x51, 0xe7, 0xc9, 0xd6, 0x88, 0x80,
+ 0x9c, 0xef, 0x94, 0x22,
+};
+static const struct drbg_kat_no_reseed kat916_t = {
+ 0, kat916_entropyin, kat916_nonce, kat916_persstr,
+ kat916_addin0, kat916_addin1, kat916_retbits
+};
+static const struct drbg_kat kat916 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat916_t
+};
+
+static const unsigned char kat917_entropyin[] = {
+ 0x6e, 0x53, 0x15, 0xd8, 0x72, 0x42, 0x8c, 0x26, 0xdd, 0x63, 0xf3, 0x7c,
+ 0x2a, 0xde, 0xe9, 0xa8, 0x8a, 0xc7, 0x1b, 0xc5, 0x2d, 0xbf, 0xe2, 0x9f,
+ 0x55, 0xba, 0x0c, 0x91, 0x03, 0x81, 0x73, 0x1a,
+};
+static const unsigned char kat917_nonce[] = {0};
+static const unsigned char kat917_persstr[] = {0};
+static const unsigned char kat917_addin0[] = {
+ 0x27, 0x39, 0x75, 0x28, 0xf4, 0x76, 0x1c, 0xfa, 0x2e, 0x2a, 0x58, 0x58,
+ 0x27, 0x90, 0x9f, 0x15, 0xe1, 0xf6, 0xb0, 0x7b, 0x10, 0x55, 0x6c, 0xaa,
+ 0xc6, 0x2f, 0x91, 0x89, 0xaa, 0x52, 0xde, 0xd7,
+};
+static const unsigned char kat917_addin1[] = {
+ 0x7f, 0xc7, 0x93, 0x2c, 0x7a, 0xa0, 0xee, 0xbe, 0xed, 0xe7, 0x14, 0xdb,
+ 0xa7, 0x47, 0xef, 0x4f, 0x61, 0x51, 0xab, 0x2f, 0xa5, 0x71, 0xdf, 0xb7,
+ 0x32, 0xba, 0x02, 0x05, 0xd1, 0xad, 0x66, 0xb2,
+};
+static const unsigned char kat917_retbits[] = {
+ 0x8f, 0xc9, 0xb0, 0xb2, 0x74, 0x47, 0xd5, 0x5c, 0x29, 0xa9, 0xe8, 0x87,
+ 0xa2, 0x4f, 0xdd, 0xfa, 0x89, 0xa9, 0xa3, 0x59, 0x46, 0x70, 0x63, 0x59,
+ 0xb8, 0xff, 0xd8, 0x3a, 0x04, 0x50, 0xf7, 0x07, 0xd4, 0xf5, 0x0c, 0xa2,
+ 0x60, 0xca, 0x7f, 0x1f, 0x41, 0xec, 0x69, 0x3f, 0x7f, 0x48, 0x9c, 0xdb,
+ 0xfc, 0x10, 0xf8, 0x2e, 0x20, 0x34, 0xf3, 0x23, 0x32, 0x50, 0x61, 0xf0,
+ 0x69, 0xb6, 0x77, 0x6e,
+};
+static const struct drbg_kat_no_reseed kat917_t = {
+ 1, kat917_entropyin, kat917_nonce, kat917_persstr,
+ kat917_addin0, kat917_addin1, kat917_retbits
+};
+static const struct drbg_kat kat917 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat917_t
+};
+
+static const unsigned char kat918_entropyin[] = {
+ 0x5d, 0x3f, 0x0c, 0xcd, 0xb0, 0x88, 0x22, 0xb3, 0x47, 0x01, 0xe1, 0x4e,
+ 0xb5, 0x70, 0xa3, 0xfa, 0x63, 0xa9, 0xeb, 0x31, 0xf9, 0x22, 0x24, 0x4e,
+ 0xb9, 0x51, 0xab, 0x31, 0xe5, 0x50, 0x80, 0xe7,
+};
+static const unsigned char kat918_nonce[] = {0};
+static const unsigned char kat918_persstr[] = {0};
+static const unsigned char kat918_addin0[] = {
+ 0xfa, 0x6f, 0x24, 0x78, 0xfd, 0xa9, 0xad, 0xa8, 0x27, 0xb9, 0xb2, 0x0c,
+ 0x99, 0x07, 0x33, 0x26, 0x66, 0x97, 0xbc, 0x57, 0x1c, 0x83, 0x4d, 0xde,
+ 0x59, 0x93, 0xf3, 0x9a, 0x31, 0x80, 0xc3, 0x66,
+};
+static const unsigned char kat918_addin1[] = {
+ 0x07, 0x97, 0x13, 0xb0, 0x43, 0xab, 0x9f, 0xf2, 0xf3, 0x0f, 0xfa, 0x7c,
+ 0x22, 0x10, 0x44, 0xf0, 0xfe, 0x59, 0x04, 0x2c, 0xc5, 0xf1, 0x46, 0x6c,
+ 0xcb, 0x07, 0x62, 0xc1, 0xfe, 0x7c, 0x77, 0xa8,
+};
+static const unsigned char kat918_retbits[] = {
+ 0x11, 0x93, 0xa4, 0x6b, 0x18, 0x2e, 0x39, 0x66, 0xda, 0xdd, 0x2a, 0xa7,
+ 0xe9, 0x19, 0x8b, 0xa6, 0x51, 0xd6, 0x14, 0x46, 0x13, 0xae, 0x51, 0x6a,
+ 0x7f, 0xfb, 0xe3, 0xc6, 0x10, 0xd0, 0x4c, 0x08, 0x23, 0x7b, 0x08, 0xc2,
+ 0xc4, 0x9b, 0x2e, 0x3f, 0x39, 0x80, 0x15, 0x69, 0x3a, 0xb5, 0xfc, 0xc8,
+ 0xcb, 0x00, 0x0a, 0xb7, 0x12, 0x2d, 0x7f, 0xe2, 0xa0, 0x72, 0xf6, 0x0a,
+ 0x07, 0x7b, 0xec, 0xed,
+};
+static const struct drbg_kat_no_reseed kat918_t = {
+ 2, kat918_entropyin, kat918_nonce, kat918_persstr,
+ kat918_addin0, kat918_addin1, kat918_retbits
+};
+static const struct drbg_kat kat918 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat918_t
+};
+
+static const unsigned char kat919_entropyin[] = {
+ 0x67, 0x7c, 0x91, 0x1b, 0x85, 0x8d, 0x63, 0x80, 0xd7, 0x28, 0xf9, 0x37,
+ 0x54, 0x07, 0xd6, 0x67, 0xc6, 0xea, 0x78, 0x54, 0xc9, 0x2d, 0x7d, 0x7d,
+ 0xb7, 0xfe, 0xe7, 0xa3, 0x9c, 0xc3, 0x88, 0x64,
+};
+static const unsigned char kat919_nonce[] = {0};
+static const unsigned char kat919_persstr[] = {0};
+static const unsigned char kat919_addin0[] = {
+ 0xbf, 0x93, 0xc0, 0xb7, 0xe5, 0x96, 0xc7, 0xe6, 0xec, 0xd2, 0xa1, 0x6e,
+ 0xf4, 0x2a, 0xbd, 0xc6, 0x93, 0xb5, 0x11, 0x80, 0x4e, 0x54, 0x7a, 0x44,
+ 0xff, 0xb8, 0x4c, 0xfb, 0x53, 0xcc, 0x5b, 0xe1,
+};
+static const unsigned char kat919_addin1[] = {
+ 0x1c, 0xc2, 0x9a, 0x2e, 0x81, 0xae, 0xd2, 0x08, 0x13, 0xa6, 0xb9, 0xe9,
+ 0xf6, 0xb6, 0x2d, 0x62, 0x29, 0xf7, 0xb0, 0xf6, 0xa2, 0x4b, 0x85, 0x47,
+ 0x16, 0xff, 0x01, 0x0c, 0xd4, 0x00, 0x0d, 0x72,
+};
+static const unsigned char kat919_retbits[] = {
+ 0x8c, 0x15, 0x63, 0xeb, 0x92, 0x51, 0xf9, 0x88, 0x46, 0x6e, 0xa6, 0x75,
+ 0x22, 0x71, 0x15, 0x19, 0x27, 0xf3, 0x27, 0x33, 0x95, 0x13, 0x89, 0xae,
+ 0x0e, 0x89, 0xc8, 0xfd, 0x4d, 0x63, 0x90, 0x5b, 0x91, 0x4e, 0xb5, 0x49,
+ 0x8f, 0xb8, 0x71, 0x91, 0xd4, 0xda, 0xd7, 0x37, 0x3c, 0x8f, 0xb4, 0xd5,
+ 0x96, 0xd8, 0x74, 0x3a, 0xed, 0x3e, 0xec, 0x9d, 0x2f, 0x1f, 0xc4, 0x3c,
+ 0xeb, 0x2e, 0x63, 0x56,
+};
+static const struct drbg_kat_no_reseed kat919_t = {
+ 3, kat919_entropyin, kat919_nonce, kat919_persstr,
+ kat919_addin0, kat919_addin1, kat919_retbits
+};
+static const struct drbg_kat kat919 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat919_t
+};
+
+static const unsigned char kat920_entropyin[] = {
+ 0xd0, 0x15, 0x04, 0xc5, 0xc5, 0xd0, 0xb5, 0x89, 0x3e, 0x75, 0x9b, 0x5b,
+ 0xac, 0x17, 0x3f, 0x65, 0x45, 0xa1, 0x3a, 0xcb, 0xff, 0xd5, 0xf9, 0xa4,
+ 0x9a, 0x0c, 0x02, 0x00, 0xdc, 0x19, 0xe6, 0x34,
+};
+static const unsigned char kat920_nonce[] = {0};
+static const unsigned char kat920_persstr[] = {0};
+static const unsigned char kat920_addin0[] = {
+ 0x52, 0xc6, 0xd2, 0xe8, 0xec, 0xd1, 0xb0, 0xd8, 0x3a, 0xd2, 0x5e, 0xee,
+ 0xb7, 0x2f, 0xce, 0xae, 0x95, 0x8a, 0x17, 0x7e, 0x8c, 0xc0, 0x51, 0x1c,
+ 0xcc, 0x40, 0x49, 0xde, 0xf8, 0x7a, 0x47, 0xe1,
+};
+static const unsigned char kat920_addin1[] = {
+ 0x64, 0x5d, 0x9e, 0xe2, 0xaf, 0x91, 0x40, 0xfd, 0x10, 0x19, 0xf2, 0x08,
+ 0xad, 0xad, 0x12, 0x21, 0xaa, 0x88, 0xcb, 0x8b, 0x58, 0x1e, 0xe9, 0xf3,
+ 0x96, 0x57, 0x3f, 0x7a, 0x9c, 0xf6, 0xba, 0x9e,
+};
+static const unsigned char kat920_retbits[] = {
+ 0x36, 0x5b, 0x0b, 0x4c, 0x25, 0xcf, 0xb9, 0x2b, 0x87, 0xc3, 0x3f, 0x5c,
+ 0xbd, 0x36, 0x85, 0xda, 0x3e, 0x4a, 0xf8, 0xa1, 0x76, 0xf2, 0x6d, 0xb1,
+ 0xf1, 0x27, 0x60, 0x4a, 0x0c, 0xe8, 0xa5, 0x91, 0x84, 0x1c, 0x93, 0xa7,
+ 0xc3, 0x63, 0x57, 0xe7, 0xc6, 0x5f, 0xdc, 0x3c, 0x2d, 0x1e, 0x14, 0xad,
+ 0x73, 0xa2, 0xc1, 0x38, 0x39, 0x87, 0x42, 0xcb, 0xd4, 0xfa, 0x91, 0x84,
+ 0x87, 0x8c, 0xa9, 0xaf,
+};
+static const struct drbg_kat_no_reseed kat920_t = {
+ 4, kat920_entropyin, kat920_nonce, kat920_persstr,
+ kat920_addin0, kat920_addin1, kat920_retbits
+};
+static const struct drbg_kat kat920 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat920_t
+};
+
+static const unsigned char kat921_entropyin[] = {
+ 0x72, 0x8d, 0x5e, 0x16, 0x38, 0x3b, 0x89, 0xb3, 0x06, 0x89, 0xd9, 0x6a,
+ 0xe0, 0xff, 0xa2, 0x5d, 0x08, 0x70, 0x18, 0x0b, 0xbf, 0x9a, 0xa7, 0x84,
+ 0xc0, 0xbe, 0xcb, 0x83, 0x0d, 0x1a, 0x33, 0xe3,
+};
+static const unsigned char kat921_nonce[] = {0};
+static const unsigned char kat921_persstr[] = {0};
+static const unsigned char kat921_addin0[] = {
+ 0x7e, 0xe4, 0x93, 0xd5, 0xa2, 0x0a, 0x1a, 0xff, 0xd0, 0xa1, 0xec, 0xc7,
+ 0xf9, 0x48, 0xcd, 0x32, 0x85, 0x10, 0xc6, 0x78, 0x0f, 0xba, 0xb6, 0xdf,
+ 0xbb, 0x89, 0x67, 0xd5, 0x47, 0x12, 0x06, 0x85,
+};
+static const unsigned char kat921_addin1[] = {
+ 0x8b, 0xc7, 0x21, 0xb2, 0x66, 0x00, 0x19, 0x74, 0x54, 0x19, 0xee, 0x62,
+ 0x79, 0x48, 0x08, 0x10, 0x11, 0x42, 0x34, 0x07, 0xf7, 0xee, 0x88, 0xd0,
+ 0x8d, 0xe3, 0xc8, 0xd2, 0xc7, 0x41, 0x58, 0x56,
+};
+static const unsigned char kat921_retbits[] = {
+ 0xeb, 0x6f, 0xeb, 0xae, 0x38, 0x9d, 0x39, 0x6a, 0xc3, 0xe2, 0x27, 0x11,
+ 0x11, 0xf6, 0x63, 0xcc, 0x2d, 0x5c, 0x35, 0x5f, 0x9b, 0x2f, 0x98, 0x3e,
+ 0x0a, 0xd9, 0x70, 0x42, 0x88, 0x2e, 0x52, 0xbf, 0x5e, 0x3b, 0x72, 0xfa,
+ 0x02, 0x4d, 0xec, 0x84, 0xdc, 0xb8, 0xd6, 0x60, 0x2f, 0x7a, 0xb3, 0x4d,
+ 0xe5, 0xaa, 0x02, 0xa2, 0xbe, 0xf9, 0x85, 0xb4, 0x1b, 0x6a, 0xe3, 0xbd,
+ 0x36, 0xb4, 0xeb, 0x43,
+};
+static const struct drbg_kat_no_reseed kat921_t = {
+ 5, kat921_entropyin, kat921_nonce, kat921_persstr,
+ kat921_addin0, kat921_addin1, kat921_retbits
+};
+static const struct drbg_kat kat921 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat921_t
+};
+
+static const unsigned char kat922_entropyin[] = {
+ 0xdb, 0x1b, 0xc1, 0x89, 0xf4, 0xae, 0x4c, 0xc9, 0x0b, 0x36, 0xa1, 0x5a,
+ 0xc6, 0x86, 0xad, 0x05, 0xdc, 0xf9, 0xfc, 0xcf, 0xca, 0xa8, 0x5a, 0xc0,
+ 0xe1, 0xf7, 0xf3, 0xba, 0x0b, 0xc9, 0xdf, 0xde,
+};
+static const unsigned char kat922_nonce[] = {0};
+static const unsigned char kat922_persstr[] = {0};
+static const unsigned char kat922_addin0[] = {
+ 0x4d, 0xcb, 0x24, 0x17, 0x23, 0x4c, 0xae, 0xb0, 0xe5, 0x8c, 0x5b, 0x37,
+ 0xc3, 0x97, 0x31, 0xe6, 0x79, 0x1e, 0x62, 0x18, 0x3b, 0x8f, 0x4f, 0x05,
+ 0x98, 0xb3, 0x14, 0x96, 0x43, 0xa4, 0xfb, 0x1b,
+};
+static const unsigned char kat922_addin1[] = {
+ 0x24, 0xd4, 0x24, 0x92, 0x3e, 0x78, 0xf5, 0xc5, 0xa2, 0x29, 0x57, 0x8b,
+ 0x88, 0x29, 0x33, 0xeb, 0x4f, 0xb2, 0x90, 0x55, 0xf5, 0x5b, 0x82, 0x5b,
+ 0x40, 0xc9, 0x05, 0xbf, 0xbe, 0x2b, 0x43, 0x6e,
+};
+static const unsigned char kat922_retbits[] = {
+ 0x13, 0x9d, 0x71, 0x52, 0xf8, 0x05, 0xc4, 0x53, 0x81, 0xcf, 0x4f, 0xa9,
+ 0xda, 0x6f, 0x5c, 0x7b, 0x99, 0x85, 0xfe, 0x50, 0x39, 0x91, 0x14, 0x8c,
+ 0xc4, 0x35, 0x7c, 0x85, 0x69, 0x98, 0x62, 0x32, 0x5e, 0x41, 0xf4, 0x67,
+ 0xba, 0xa0, 0x84, 0x05, 0x7c, 0x43, 0x45, 0x74, 0xa9, 0xee, 0x49, 0xe0,
+ 0x3c, 0xcd, 0x6c, 0x93, 0xb7, 0xec, 0x6e, 0x75, 0xb4, 0xaa, 0xeb, 0x88,
+ 0x58, 0x23, 0xa1, 0xb1,
+};
+static const struct drbg_kat_no_reseed kat922_t = {
+ 6, kat922_entropyin, kat922_nonce, kat922_persstr,
+ kat922_addin0, kat922_addin1, kat922_retbits
+};
+static const struct drbg_kat kat922 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat922_t
+};
+
+static const unsigned char kat923_entropyin[] = {
+ 0x01, 0x0e, 0x72, 0x11, 0xff, 0xcd, 0x4a, 0x6c, 0x36, 0x8b, 0xe3, 0x98,
+ 0xd9, 0xff, 0xb4, 0x0d, 0xa8, 0xa3, 0xbc, 0xdf, 0xe5, 0x09, 0x8f, 0xb8,
+ 0x5a, 0xfa, 0xec, 0x13, 0x74, 0x9b, 0xa7, 0xc7,
+};
+static const unsigned char kat923_nonce[] = {0};
+static const unsigned char kat923_persstr[] = {0};
+static const unsigned char kat923_addin0[] = {
+ 0x3d, 0xcd, 0x8f, 0x39, 0x80, 0xb3, 0x15, 0xb5, 0x69, 0xc1, 0x9c, 0x0d,
+ 0xf8, 0xb8, 0x0d, 0x48, 0xd7, 0x51, 0xc7, 0x04, 0x42, 0x38, 0x15, 0xda,
+ 0xbe, 0x9d, 0xfb, 0x6a, 0x0e, 0xca, 0x14, 0xbd,
+};
+static const unsigned char kat923_addin1[] = {
+ 0xae, 0x8b, 0x70, 0x7d, 0xe9, 0x92, 0xca, 0xb2, 0xd7, 0x53, 0xab, 0x42,
+ 0x36, 0x81, 0x12, 0x7d, 0x76, 0xd4, 0x3b, 0xef, 0xf6, 0xeb, 0x59, 0x62,
+ 0xa7, 0x7b, 0x86, 0x42, 0x63, 0x99, 0x23, 0xb3,
+};
+static const unsigned char kat923_retbits[] = {
+ 0x6b, 0x92, 0xe9, 0xfd, 0xa9, 0xaf, 0x63, 0xf1, 0x45, 0x56, 0x47, 0x66,
+ 0x97, 0x59, 0x12, 0x54, 0xa9, 0x93, 0xa1, 0xe3, 0x6b, 0x3b, 0xed, 0xcb,
+ 0xeb, 0xfc, 0x28, 0xdb, 0xf8, 0x5c, 0xf5, 0x95, 0x99, 0x01, 0xb4, 0x42,
+ 0x93, 0xd8, 0x66, 0x5c, 0xf9, 0x59, 0x22, 0xff, 0x17, 0x2d, 0x9c, 0x70,
+ 0x39, 0xb7, 0xc2, 0x1a, 0xbb, 0x96, 0x45, 0x87, 0xd4, 0x81, 0x17, 0xf3,
+ 0x85, 0xc7, 0xe0, 0x7d,
+};
+static const struct drbg_kat_no_reseed kat923_t = {
+ 7, kat923_entropyin, kat923_nonce, kat923_persstr,
+ kat923_addin0, kat923_addin1, kat923_retbits
+};
+static const struct drbg_kat kat923 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat923_t
+};
+
+static const unsigned char kat924_entropyin[] = {
+ 0x06, 0x65, 0x6e, 0xf7, 0x27, 0xd1, 0x3e, 0x9b, 0x2a, 0x49, 0xb3, 0x0e,
+ 0xa9, 0xcd, 0x4d, 0x9b, 0x57, 0x4d, 0xcb, 0xf4, 0xc1, 0xda, 0xf5, 0xd5,
+ 0x00, 0x16, 0x7f, 0x3f, 0x4b, 0xf2, 0x3e, 0x57,
+};
+static const unsigned char kat924_nonce[] = {0};
+static const unsigned char kat924_persstr[] = {0};
+static const unsigned char kat924_addin0[] = {
+ 0xfc, 0xce, 0x04, 0x65, 0xf3, 0xc7, 0x6b, 0x16, 0x3f, 0x64, 0xd4, 0xc3,
+ 0x4b, 0xea, 0x91, 0xe7, 0xae, 0x91, 0xc6, 0xd7, 0x9e, 0x01, 0x94, 0x2f,
+ 0x4b, 0x5e, 0x6b, 0xcc, 0x67, 0x22, 0x99, 0xe5,
+};
+static const unsigned char kat924_addin1[] = {
+ 0xdd, 0x4f, 0x6b, 0x33, 0xd8, 0x94, 0x47, 0x65, 0x62, 0x89, 0x0d, 0xb4,
+ 0xb8, 0xee, 0x7d, 0x49, 0x0b, 0xe9, 0x92, 0x33, 0xaa, 0x81, 0xd0, 0x72,
+ 0xdd, 0xa3, 0x2e, 0x29, 0x57, 0xa3, 0x94, 0x4b,
+};
+static const unsigned char kat924_retbits[] = {
+ 0x1a, 0x6e, 0x60, 0x06, 0x19, 0xb6, 0xde, 0x94, 0x3b, 0xb1, 0x4f, 0xbe,
+ 0x87, 0x90, 0xb5, 0xf3, 0x8e, 0xb7, 0xf2, 0xdf, 0x6e, 0x8d, 0xfa, 0x0d,
+ 0x1e, 0x54, 0xa6, 0xab, 0xa1, 0xe3, 0x49, 0x42, 0x96, 0x78, 0x42, 0x08,
+ 0xd0, 0x4f, 0xab, 0x7f, 0x64, 0x02, 0x98, 0x6f, 0x5f, 0x25, 0xe3, 0x5a,
+ 0x20, 0x2a, 0x3f, 0x98, 0x37, 0x6e, 0xd4, 0x48, 0xc3, 0xa1, 0xc2, 0x4e,
+ 0x79, 0x57, 0xe0, 0x95,
+};
+static const struct drbg_kat_no_reseed kat924_t = {
+ 8, kat924_entropyin, kat924_nonce, kat924_persstr,
+ kat924_addin0, kat924_addin1, kat924_retbits
+};
+static const struct drbg_kat kat924 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat924_t
+};
+
+static const unsigned char kat925_entropyin[] = {
+ 0x5a, 0x00, 0x24, 0x20, 0x3d, 0x45, 0xeb, 0xba, 0x4e, 0x21, 0x7f, 0xc6,
+ 0x18, 0x24, 0x68, 0x57, 0x19, 0x7a, 0x9a, 0x12, 0xb2, 0x04, 0xad, 0xdf,
+ 0xf9, 0xc6, 0x5e, 0x4c, 0x8e, 0xf6, 0xcf, 0xad,
+};
+static const unsigned char kat925_nonce[] = {0};
+static const unsigned char kat925_persstr[] = {0};
+static const unsigned char kat925_addin0[] = {
+ 0x46, 0xa9, 0x1c, 0x23, 0x56, 0x36, 0xd0, 0xaa, 0x0d, 0x8d, 0x86, 0x7f,
+ 0x80, 0xd3, 0x51, 0xf6, 0xb9, 0xc2, 0x0e, 0x9d, 0xeb, 0xe3, 0xf5, 0xe5,
+ 0xa3, 0x08, 0x61, 0xf9, 0x2d, 0x74, 0x1e, 0x75,
+};
+static const unsigned char kat925_addin1[] = {
+ 0xaf, 0x79, 0x31, 0xc4, 0x4b, 0x7a, 0x1c, 0x32, 0xce, 0xca, 0x3c, 0x54,
+ 0x9c, 0x4c, 0x6e, 0x5d, 0xbd, 0x91, 0x48, 0x4e, 0x68, 0x1e, 0x19, 0x9e,
+ 0x2a, 0x7a, 0x08, 0xe2, 0x6c, 0xa3, 0x60, 0x15,
+};
+static const unsigned char kat925_retbits[] = {
+ 0x4d, 0xcc, 0x58, 0x78, 0xea, 0xb9, 0x32, 0xe2, 0xcf, 0x2c, 0x51, 0xaf,
+ 0xd4, 0x3f, 0x10, 0x1f, 0xf7, 0x51, 0x53, 0xae, 0xb9, 0x96, 0x4a, 0x65,
+ 0x3e, 0xb9, 0xbc, 0x01, 0x71, 0x5e, 0x13, 0x26, 0xee, 0x3c, 0xd4, 0xdc,
+ 0x59, 0x0a, 0xe7, 0xfd, 0xc6, 0x39, 0xed, 0x9e, 0x01, 0xdf, 0xfc, 0x3b,
+ 0x11, 0x11, 0x25, 0x8c, 0xd5, 0x34, 0x2a, 0xd5, 0xac, 0xf4, 0x34, 0x18,
+ 0x91, 0x0a, 0x3c, 0x4e,
+};
+static const struct drbg_kat_no_reseed kat925_t = {
+ 9, kat925_entropyin, kat925_nonce, kat925_persstr,
+ kat925_addin0, kat925_addin1, kat925_retbits
+};
+static const struct drbg_kat kat925 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat925_t
+};
+
+static const unsigned char kat926_entropyin[] = {
+ 0xbf, 0x24, 0x1a, 0xd7, 0x92, 0x51, 0xed, 0x64, 0xc9, 0xc6, 0x92, 0xe0,
+ 0x9d, 0xb7, 0xec, 0x33, 0x84, 0x6c, 0xae, 0x82, 0xb0, 0xca, 0xfe, 0xdd,
+ 0xcd, 0xc9, 0xea, 0x3c, 0x21, 0x8a, 0x91, 0xba,
+};
+static const unsigned char kat926_nonce[] = {0};
+static const unsigned char kat926_persstr[] = {0};
+static const unsigned char kat926_addin0[] = {
+ 0x47, 0x10, 0x19, 0xcd, 0xb4, 0x99, 0x66, 0xcb, 0x96, 0xcf, 0x05, 0x09,
+ 0x85, 0xbe, 0x39, 0xeb, 0xcb, 0x98, 0x18, 0xf7, 0xf8, 0x7d, 0x88, 0x1d,
+ 0xcf, 0x4e, 0x72, 0x45, 0xfd, 0xd3, 0x45, 0xe1,
+};
+static const unsigned char kat926_addin1[] = {
+ 0x48, 0x31, 0x48, 0x18, 0x64, 0x04, 0x5b, 0xe2, 0x76, 0x50, 0x82, 0x19,
+ 0xa6, 0x19, 0xa0, 0x39, 0xe2, 0x2f, 0xf2, 0x6a, 0xea, 0x3f, 0x3e, 0x5a,
+ 0xc4, 0xf7, 0x66, 0xf2, 0xdc, 0x3a, 0x14, 0x70,
+};
+static const unsigned char kat926_retbits[] = {
+ 0xb8, 0xde, 0x52, 0xf6, 0x65, 0x1e, 0xc1, 0x68, 0xb4, 0xd0, 0xb5, 0xff,
+ 0xe0, 0xa4, 0x6e, 0xc4, 0x36, 0x65, 0x31, 0xb2, 0xcc, 0x97, 0x01, 0x73,
+ 0x98, 0xc5, 0x68, 0x8c, 0x27, 0x7d, 0xbe, 0xa7, 0xdb, 0xcd, 0xff, 0x62,
+ 0x2f, 0x79, 0xf9, 0x01, 0x4e, 0x3f, 0x64, 0xa1, 0x3d, 0x3d, 0xc8, 0x53,
+ 0x72, 0x47, 0x7f, 0xc3, 0x23, 0x54, 0x36, 0x2f, 0x18, 0xf8, 0xf9, 0x0a,
+ 0x35, 0x1b, 0x48, 0x5b,
+};
+static const struct drbg_kat_no_reseed kat926_t = {
+ 10, kat926_entropyin, kat926_nonce, kat926_persstr,
+ kat926_addin0, kat926_addin1, kat926_retbits
+};
+static const struct drbg_kat kat926 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat926_t
+};
+
+static const unsigned char kat927_entropyin[] = {
+ 0x6c, 0xaa, 0x44, 0xf9, 0x44, 0xc8, 0x88, 0xaa, 0xd0, 0xa3, 0x6f, 0x82,
+ 0x80, 0x00, 0x86, 0xef, 0x8c, 0xb7, 0x3a, 0xd7, 0xca, 0x63, 0x1e, 0x24,
+ 0x23, 0xa7, 0x0a, 0x8f, 0x83, 0xe0, 0x40, 0xed,
+};
+static const unsigned char kat927_nonce[] = {0};
+static const unsigned char kat927_persstr[] = {0};
+static const unsigned char kat927_addin0[] = {
+ 0xaa, 0xd9, 0x38, 0x08, 0xcc, 0x90, 0x48, 0xae, 0xd8, 0xb0, 0xe9, 0xbb,
+ 0x62, 0x42, 0xf4, 0x28, 0x86, 0xb7, 0xfb, 0xac, 0x2c, 0x4a, 0xc1, 0x1d,
+ 0xbc, 0x83, 0x4a, 0xd1, 0xf8, 0x76, 0x8d, 0xd3,
+};
+static const unsigned char kat927_addin1[] = {
+ 0x59, 0xea, 0xf7, 0x23, 0x5f, 0xd5, 0x4e, 0x51, 0x6d, 0x18, 0xc3, 0x4e,
+ 0xe9, 0x74, 0x46, 0x4c, 0x0c, 0x93, 0xc9, 0xe9, 0x44, 0x62, 0xb0, 0xd3,
+ 0x78, 0x6e, 0xac, 0x46, 0x50, 0xdf, 0x2e, 0xf0,
+};
+static const unsigned char kat927_retbits[] = {
+ 0xc0, 0xa2, 0x7e, 0x1b, 0xc2, 0x7f, 0xab, 0xbb, 0x1c, 0x1a, 0xe2, 0xa5,
+ 0xea, 0xac, 0x92, 0x5e, 0xa9, 0x8b, 0x77, 0xa8, 0x49, 0xb9, 0x4b, 0xc1,
+ 0x18, 0x44, 0xcd, 0x8e, 0xac, 0x81, 0x5d, 0xd2, 0x53, 0xa0, 0x81, 0x02,
+ 0x33, 0x56, 0xc5, 0x53, 0x9c, 0x7e, 0x45, 0x32, 0x2a, 0x12, 0x51, 0x70,
+ 0x61, 0xdd, 0x86, 0xad, 0xcf, 0xc3, 0x3f, 0xe3, 0xc3, 0x93, 0x86, 0x4b,
+ 0x2b, 0xfc, 0x84, 0xd2,
+};
+static const struct drbg_kat_no_reseed kat927_t = {
+ 11, kat927_entropyin, kat927_nonce, kat927_persstr,
+ kat927_addin0, kat927_addin1, kat927_retbits
+};
+static const struct drbg_kat kat927 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat927_t
+};
+
+static const unsigned char kat928_entropyin[] = {
+ 0x5f, 0xc8, 0x90, 0x6e, 0x14, 0xb1, 0x6c, 0x9e, 0x2e, 0xf1, 0xe7, 0xf8,
+ 0x1c, 0x47, 0xb3, 0x68, 0x3a, 0xec, 0x26, 0x54, 0x81, 0x55, 0x44, 0x5f,
+ 0x0d, 0xda, 0x33, 0x3b, 0x45, 0xb3, 0x4c, 0x77,
+};
+static const unsigned char kat928_nonce[] = {0};
+static const unsigned char kat928_persstr[] = {0};
+static const unsigned char kat928_addin0[] = {
+ 0xc9, 0x7d, 0xbf, 0x3a, 0x29, 0xb2, 0x09, 0xcd, 0xc4, 0xd3, 0x1d, 0xd9,
+ 0xec, 0x7d, 0xd1, 0xf4, 0x27, 0xce, 0x4b, 0xe0, 0x14, 0xa5, 0x60, 0x65,
+ 0x4d, 0xde, 0xa5, 0x1e, 0xa9, 0x65, 0x59, 0x57,
+};
+static const unsigned char kat928_addin1[] = {
+ 0x4a, 0x0d, 0x74, 0x64, 0xff, 0x87, 0x42, 0xb3, 0xeb, 0xd6, 0x48, 0x74,
+ 0xd1, 0x36, 0x2d, 0x44, 0xe0, 0xdd, 0xce, 0x28, 0x63, 0x0d, 0x56, 0xf0,
+ 0x61, 0xe5, 0x44, 0xf4, 0x96, 0x4b, 0x03, 0xe2,
+};
+static const unsigned char kat928_retbits[] = {
+ 0xe9, 0x17, 0xb8, 0x43, 0xe5, 0x35, 0x6a, 0x03, 0xf4, 0xcf, 0x27, 0xcb,
+ 0xa4, 0x77, 0xd0, 0xb3, 0xd9, 0x29, 0x3a, 0x2e, 0x63, 0x39, 0xf3, 0xe2,
+ 0x77, 0xb1, 0x3e, 0x0c, 0xa9, 0xb3, 0xa9, 0xd1, 0x6d, 0xe3, 0x81, 0xa9,
+ 0x07, 0x41, 0x8d, 0x33, 0x72, 0x6f, 0xaf, 0x07, 0x8b, 0x6c, 0x94, 0x3f,
+ 0x2c, 0x0c, 0xc0, 0xb7, 0x30, 0xf5, 0x6e, 0x54, 0xde, 0x4c, 0x74, 0xbd,
+ 0xd0, 0x51, 0xd7, 0xac,
+};
+static const struct drbg_kat_no_reseed kat928_t = {
+ 12, kat928_entropyin, kat928_nonce, kat928_persstr,
+ kat928_addin0, kat928_addin1, kat928_retbits
+};
+static const struct drbg_kat kat928 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat928_t
+};
+
+static const unsigned char kat929_entropyin[] = {
+ 0x75, 0xbc, 0xab, 0x2c, 0xca, 0xa2, 0x90, 0x70, 0xd4, 0x1e, 0xa9, 0x89,
+ 0xdc, 0x1b, 0xa2, 0x25, 0x95, 0x11, 0x66, 0x5e, 0xbe, 0x81, 0x02, 0x7f,
+ 0xa2, 0x09, 0x7d, 0x69, 0xfe, 0x2a, 0xde, 0xec,
+};
+static const unsigned char kat929_nonce[] = {0};
+static const unsigned char kat929_persstr[] = {0};
+static const unsigned char kat929_addin0[] = {
+ 0x78, 0x29, 0xdc, 0xe7, 0x6e, 0x1d, 0x87, 0x00, 0xfa, 0x46, 0xec, 0x3e,
+ 0x80, 0x46, 0x03, 0x6f, 0xdf, 0xaf, 0x6d, 0x36, 0xc2, 0xde, 0xe5, 0x9f,
+ 0x6c, 0xd9, 0x74, 0x0a, 0xdf, 0x94, 0xa3, 0xc3,
+};
+static const unsigned char kat929_addin1[] = {
+ 0x03, 0x7a, 0x8f, 0xf9, 0x05, 0xd3, 0x4e, 0xe2, 0xc6, 0x91, 0x02, 0xa3,
+ 0xe9, 0x90, 0xb1, 0x78, 0x0d, 0x49, 0xe7, 0x9a, 0xcd, 0x1f, 0x2a, 0x60,
+ 0x10, 0x42, 0x32, 0xcc, 0x02, 0x0f, 0x38, 0x55,
+};
+static const unsigned char kat929_retbits[] = {
+ 0xa6, 0x27, 0x8f, 0xb0, 0x1d, 0x3f, 0x1d, 0x5c, 0x25, 0x99, 0x22, 0xc9,
+ 0xf3, 0xaf, 0x41, 0x07, 0x5c, 0x77, 0x28, 0xf3, 0x4a, 0xeb, 0x41, 0xb7,
+ 0xa6, 0x35, 0x16, 0xdb, 0x50, 0xd3, 0xf4, 0xad, 0x23, 0x38, 0xfb, 0xe4,
+ 0x5c, 0xe8, 0x10, 0xfb, 0x37, 0x21, 0xa4, 0xf4, 0x55, 0xf4, 0x2e, 0x01,
+ 0x13, 0xc5, 0x6f, 0x0f, 0xf9, 0x70, 0x9d, 0xf7, 0x14, 0xeb, 0xb8, 0xa4,
+ 0xa2, 0x98, 0xe7, 0x25,
+};
+static const struct drbg_kat_no_reseed kat929_t = {
+ 13, kat929_entropyin, kat929_nonce, kat929_persstr,
+ kat929_addin0, kat929_addin1, kat929_retbits
+};
+static const struct drbg_kat kat929 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat929_t
+};
+
+static const unsigned char kat930_entropyin[] = {
+ 0x05, 0x87, 0x30, 0xb7, 0x25, 0x64, 0x96, 0x5e, 0x80, 0x2a, 0xa3, 0x79,
+ 0x2a, 0x7d, 0xb2, 0x62, 0xd9, 0x4d, 0x4f, 0x10, 0xf9, 0x09, 0x8a, 0x86,
+ 0x30, 0x0e, 0xdf, 0x8b, 0xce, 0x91, 0xc2, 0xab,
+};
+static const unsigned char kat930_nonce[] = {0};
+static const unsigned char kat930_persstr[] = {0};
+static const unsigned char kat930_addin0[] = {
+ 0x53, 0x45, 0x89, 0x89, 0x57, 0x77, 0xf5, 0x02, 0xaa, 0x37, 0x12, 0xae,
+ 0xed, 0x80, 0x13, 0xd3, 0x43, 0xa8, 0x24, 0x58, 0x47, 0x74, 0xd9, 0x2f,
+ 0x9b, 0x06, 0x68, 0x20, 0x1d, 0x56, 0x24, 0x89,
+};
+static const unsigned char kat930_addin1[] = {
+ 0xa9, 0x77, 0x42, 0xc1, 0xe0, 0xc8, 0x16, 0x62, 0x6e, 0x67, 0xeb, 0xc8,
+ 0x1b, 0xa3, 0x98, 0x73, 0x78, 0x49, 0x9b, 0x75, 0x21, 0x2b, 0x19, 0x4b,
+ 0xb5, 0x6a, 0x67, 0x46, 0x02, 0x98, 0x66, 0xb0,
+};
+static const unsigned char kat930_retbits[] = {
+ 0x80, 0x57, 0xf9, 0x7b, 0x49, 0x70, 0x0e, 0xdc, 0x8e, 0xbf, 0x7b, 0xbc,
+ 0x79, 0x8e, 0x6e, 0xae, 0x63, 0x9a, 0x44, 0x3e, 0x4c, 0x8e, 0x93, 0x5c,
+ 0xd0, 0x6e, 0xbf, 0x9e, 0x9b, 0xdb, 0x80, 0x3c, 0xd3, 0x12, 0x1a, 0x06,
+ 0x02, 0xb3, 0x2f, 0x08, 0x8e, 0x79, 0x06, 0xab, 0xaa, 0x68, 0xb2, 0x8b,
+ 0x94, 0x2e, 0x84, 0xbb, 0x09, 0xd1, 0x3d, 0x56, 0x54, 0x90, 0xd2, 0x02,
+ 0x95, 0xc5, 0x20, 0xa6,
+};
+static const struct drbg_kat_no_reseed kat930_t = {
+ 14, kat930_entropyin, kat930_nonce, kat930_persstr,
+ kat930_addin0, kat930_addin1, kat930_retbits
+};
+static const struct drbg_kat kat930 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat930_t
+};
+
+static const unsigned char kat931_entropyin[] = {
+ 0xc4, 0x55, 0xc4, 0x67, 0x01, 0x37, 0xc6, 0x5c, 0x0c, 0x58, 0x21, 0x01,
+ 0x5e, 0x78, 0x5f, 0x84, 0x88, 0x71, 0xf9, 0x8f, 0x57, 0xe5, 0x56, 0x31,
+ 0x42, 0xf0, 0x15, 0x22, 0x3c, 0xd3, 0x95, 0x23,
+};
+static const unsigned char kat931_nonce[] = {0};
+static const unsigned char kat931_persstr[] = {
+ 0x3e, 0xd6, 0x37, 0x5b, 0x5b, 0x58, 0x23, 0x81, 0xc0, 0x5e, 0xb9, 0xa9,
+ 0xf4, 0x0f, 0xef, 0x0d, 0x9d, 0xc5, 0xdb, 0xe3, 0xb4, 0xaf, 0x3c, 0x9d,
+ 0x15, 0x49, 0xe6, 0x2e, 0x75, 0x61, 0x7e, 0xdc,
+};
+static const unsigned char kat931_addin0[] = {0};
+static const unsigned char kat931_addin1[] = {0};
+static const unsigned char kat931_retbits[] = {
+ 0x18, 0x21, 0x7c, 0x3a, 0xff, 0x49, 0x74, 0x0e, 0x09, 0x30, 0xbf, 0x33,
+ 0xb4, 0xae, 0xfd, 0x42, 0x20, 0xc5, 0xb7, 0x7c, 0xf3, 0xb2, 0x45, 0xfd,
+ 0xff, 0x3f, 0x57, 0x0a, 0x46, 0x0a, 0x59, 0xb9, 0x9f, 0x52, 0xe9, 0x65,
+ 0x66, 0xc0, 0xd6, 0xfd, 0xdd, 0x37, 0xe4, 0xce, 0xe0, 0x60, 0x31, 0x9a,
+ 0x14, 0xc2, 0xf3, 0x39, 0x4e, 0xf0, 0xd4, 0x29, 0xbe, 0x54, 0x15, 0x92,
+ 0x5f, 0x18, 0x85, 0x1c,
+};
+static const struct drbg_kat_no_reseed kat931_t = {
+ 0, kat931_entropyin, kat931_nonce, kat931_persstr,
+ kat931_addin0, kat931_addin1, kat931_retbits
+};
+static const struct drbg_kat kat931 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat931_t
+};
+
+static const unsigned char kat932_entropyin[] = {
+ 0x38, 0xe0, 0xe5, 0xf8, 0x82, 0xb5, 0x4e, 0xb0, 0xf8, 0x20, 0x85, 0xed,
+ 0x01, 0x77, 0xde, 0x9f, 0xac, 0x81, 0x50, 0x1f, 0x95, 0xbb, 0x9b, 0x59,
+ 0x56, 0x38, 0x20, 0xdb, 0xa6, 0x5d, 0xb3, 0x20,
+};
+static const unsigned char kat932_nonce[] = {0};
+static const unsigned char kat932_persstr[] = {
+ 0x1b, 0xce, 0x11, 0x40, 0xba, 0xd4, 0x5a, 0x5e, 0xdd, 0x24, 0xf0, 0x1a,
+ 0x5d, 0xe1, 0xe2, 0xf8, 0x58, 0x08, 0xe1, 0x61, 0x8a, 0x34, 0x78, 0xc1,
+ 0x3c, 0x79, 0xe6, 0x85, 0xeb, 0x7b, 0x89, 0x94,
+};
+static const unsigned char kat932_addin0[] = {0};
+static const unsigned char kat932_addin1[] = {0};
+static const unsigned char kat932_retbits[] = {
+ 0xaa, 0x88, 0xe2, 0xdb, 0x42, 0x5f, 0x79, 0x9a, 0xf1, 0x5d, 0xb9, 0xef,
+ 0x26, 0x16, 0x4f, 0x62, 0xe9, 0x06, 0xe9, 0x42, 0xe5, 0xed, 0x52, 0x10,
+ 0xc7, 0xd2, 0x25, 0x45, 0x32, 0x6c, 0x29, 0x7b, 0xea, 0x0e, 0x6a, 0x09,
+ 0x72, 0x03, 0x8e, 0x4c, 0x33, 0xfb, 0x15, 0x47, 0x9f, 0x68, 0xb0, 0x1e,
+ 0xfb, 0x0b, 0xae, 0x77, 0x82, 0x9c, 0xd1, 0xb2, 0x9f, 0xe9, 0xc8, 0x6a,
+ 0x64, 0xe3, 0x3f, 0x67,
+};
+static const struct drbg_kat_no_reseed kat932_t = {
+ 1, kat932_entropyin, kat932_nonce, kat932_persstr,
+ kat932_addin0, kat932_addin1, kat932_retbits
+};
+static const struct drbg_kat kat932 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat932_t
+};
+
+static const unsigned char kat933_entropyin[] = {
+ 0x9b, 0x5e, 0x7e, 0x5f, 0x42, 0x4b, 0xdd, 0x71, 0x98, 0x79, 0xf8, 0x28,
+ 0x57, 0x78, 0x97, 0xda, 0x33, 0x0d, 0x5a, 0xcf, 0xb0, 0xe0, 0x00, 0xe7,
+ 0xc5, 0xa4, 0xc5, 0x7d, 0xd6, 0x39, 0xea, 0x8c,
+};
+static const unsigned char kat933_nonce[] = {0};
+static const unsigned char kat933_persstr[] = {
+ 0xec, 0xe4, 0xf7, 0x1c, 0x95, 0x87, 0x6c, 0xa7, 0xef, 0x40, 0x5a, 0xf4,
+ 0x2a, 0x3a, 0x56, 0xe3, 0x3d, 0x58, 0x5f, 0x8a, 0x73, 0x21, 0x57, 0xae,
+ 0x50, 0xc5, 0xf4, 0x6a, 0x30, 0xee, 0x89, 0xb3,
+};
+static const unsigned char kat933_addin0[] = {0};
+static const unsigned char kat933_addin1[] = {0};
+static const unsigned char kat933_retbits[] = {
+ 0x1e, 0xf7, 0x94, 0xcb, 0xe0, 0x45, 0x5c, 0xf7, 0x67, 0xb5, 0xa8, 0x93,
+ 0x60, 0xe8, 0xce, 0xed, 0x86, 0x1d, 0x43, 0x7c, 0x64, 0xaa, 0xde, 0x0f,
+ 0xf4, 0xbb, 0x51, 0xc2, 0x28, 0xa3, 0x66, 0xfe, 0xaa, 0x29, 0x19, 0x95,
+ 0x8a, 0x72, 0xbf, 0x2c, 0xf2, 0xbb, 0x0a, 0x3a, 0x72, 0xb3, 0x23, 0x90,
+ 0x61, 0x3e, 0xeb, 0xb3, 0x0f, 0x54, 0x4e, 0xf1, 0x2a, 0xba, 0xde, 0x70,
+ 0xa2, 0x90, 0xe9, 0x84,
+};
+static const struct drbg_kat_no_reseed kat933_t = {
+ 2, kat933_entropyin, kat933_nonce, kat933_persstr,
+ kat933_addin0, kat933_addin1, kat933_retbits
+};
+static const struct drbg_kat kat933 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat933_t
+};
+
+static const unsigned char kat934_entropyin[] = {
+ 0xa1, 0xea, 0xe6, 0x72, 0x63, 0xa8, 0xed, 0x5e, 0x5b, 0x44, 0x6e, 0xbb,
+ 0x46, 0x3d, 0xf9, 0xc9, 0x72, 0x32, 0x29, 0x7d, 0x41, 0xdf, 0x8a, 0xae,
+ 0x4b, 0x2b, 0x26, 0x95, 0xaa, 0x5d, 0x75, 0xe0,
+};
+static const unsigned char kat934_nonce[] = {0};
+static const unsigned char kat934_persstr[] = {
+ 0x56, 0x95, 0xc8, 0x98, 0x8e, 0xce, 0x97, 0x4e, 0xc4, 0x1c, 0x57, 0xea,
+ 0x45, 0x59, 0xa1, 0x0b, 0x4e, 0x81, 0x42, 0x9d, 0x59, 0xf5, 0x0a, 0xa1,
+ 0x72, 0xcc, 0x5e, 0x42, 0x8b, 0x5a, 0x7d, 0x3b,
+};
+static const unsigned char kat934_addin0[] = {0};
+static const unsigned char kat934_addin1[] = {0};
+static const unsigned char kat934_retbits[] = {
+ 0xa4, 0xe4, 0x8a, 0x82, 0x29, 0xe9, 0x3d, 0x4c, 0xea, 0x55, 0x83, 0x53,
+ 0xe1, 0x28, 0x7a, 0x05, 0xcb, 0x4b, 0xe8, 0xe3, 0x45, 0xf6, 0x42, 0x49,
+ 0x69, 0x4d, 0x85, 0xcc, 0xeb, 0x06, 0x0f, 0x4f, 0x60, 0xe3, 0x5c, 0x72,
+ 0x13, 0xc8, 0xbd, 0x6e, 0x54, 0x0a, 0xf1, 0xef, 0x48, 0xe0, 0x6f, 0x78,
+ 0x35, 0xce, 0x82, 0x92, 0x35, 0x9f, 0x24, 0xea, 0xcd, 0xa1, 0xf8, 0x25,
+ 0xbc, 0x5b, 0xc9, 0x86,
+};
+static const struct drbg_kat_no_reseed kat934_t = {
+ 3, kat934_entropyin, kat934_nonce, kat934_persstr,
+ kat934_addin0, kat934_addin1, kat934_retbits
+};
+static const struct drbg_kat kat934 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat934_t
+};
+
+static const unsigned char kat935_entropyin[] = {
+ 0x42, 0x2d, 0xb7, 0xfa, 0x67, 0x03, 0x4d, 0x9b, 0x77, 0xa6, 0x64, 0x31,
+ 0x9f, 0x3a, 0x9d, 0xbe, 0x1e, 0x9c, 0x96, 0x64, 0xca, 0x7c, 0x9b, 0x3a,
+ 0xcd, 0x8d, 0x47, 0xa8, 0x34, 0xfc, 0xcc, 0x2f,
+};
+static const unsigned char kat935_nonce[] = {0};
+static const unsigned char kat935_persstr[] = {
+ 0x95, 0xce, 0x4f, 0x75, 0x4e, 0xa4, 0x40, 0x59, 0x54, 0xfc, 0x05, 0x5f,
+ 0xbb, 0x8b, 0x7e, 0x9a, 0x6b, 0x25, 0x17, 0xef, 0x97, 0xbc, 0xcc, 0xfc,
+ 0xb3, 0x9a, 0xee, 0x8e, 0x9f, 0x7a, 0x34, 0x2f,
+};
+static const unsigned char kat935_addin0[] = {0};
+static const unsigned char kat935_addin1[] = {0};
+static const unsigned char kat935_retbits[] = {
+ 0x99, 0x8f, 0x5b, 0x9e, 0x2d, 0xac, 0xe2, 0x4a, 0x46, 0x5f, 0xdf, 0xd0,
+ 0x26, 0x28, 0xfa, 0xda, 0xdd, 0xfb, 0x42, 0x8d, 0x7a, 0xc5, 0x0c, 0xd0,
+ 0x35, 0x03, 0xaa, 0xe7, 0x77, 0x9f, 0xca, 0x70, 0x18, 0x23, 0xf2, 0xe0,
+ 0x5d, 0x1b, 0xe3, 0xe6, 0xe0, 0xd6, 0x61, 0xcd, 0x57, 0xcb, 0xf5, 0xda,
+ 0x8e, 0x08, 0xa6, 0x41, 0xb0, 0x01, 0x8e, 0x56, 0xd7, 0x57, 0x97, 0x4d,
+ 0x40, 0xfe, 0x25, 0xe4,
+};
+static const struct drbg_kat_no_reseed kat935_t = {
+ 4, kat935_entropyin, kat935_nonce, kat935_persstr,
+ kat935_addin0, kat935_addin1, kat935_retbits
+};
+static const struct drbg_kat kat935 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat935_t
+};
+
+static const unsigned char kat936_entropyin[] = {
+ 0xe5, 0xb2, 0xf8, 0x2d, 0xaf, 0x26, 0x3b, 0x34, 0xb8, 0xc2, 0x1b, 0xdf,
+ 0xf1, 0x10, 0x37, 0x2a, 0xdd, 0x43, 0xc7, 0xd8, 0xd0, 0xe8, 0x2c, 0x22,
+ 0xc8, 0xfb, 0xb4, 0x44, 0xda, 0x61, 0xd9, 0xc4,
+};
+static const unsigned char kat936_nonce[] = {0};
+static const unsigned char kat936_persstr[] = {
+ 0x19, 0x11, 0x35, 0x23, 0x55, 0x6c, 0x74, 0xa7, 0xbb, 0x31, 0x32, 0x80,
+ 0x98, 0xea, 0xa2, 0x5a, 0xc8, 0xb4, 0x2c, 0x47, 0x80, 0x52, 0x47, 0xa0,
+ 0x16, 0xae, 0x2c, 0xdd, 0x91, 0x39, 0xf5, 0xbf,
+};
+static const unsigned char kat936_addin0[] = {0};
+static const unsigned char kat936_addin1[] = {0};
+static const unsigned char kat936_retbits[] = {
+ 0xb3, 0xb8, 0xab, 0x1d, 0x48, 0x0e, 0x61, 0x23, 0xbf, 0xaa, 0x85, 0xf5,
+ 0x26, 0xdd, 0x8a, 0x8d, 0xb1, 0x0b, 0xf0, 0xc4, 0xa8, 0x2e, 0x3b, 0x09,
+ 0xed, 0x73, 0x30, 0x25, 0xb1, 0x9c, 0x08, 0xe4, 0x9f, 0xa3, 0x2a, 0x9a,
+ 0x6e, 0x8d, 0x52, 0x07, 0xc5, 0xab, 0xcc, 0x9d, 0xcf, 0x5e, 0x36, 0x66,
+ 0x28, 0x19, 0xdd, 0x6a, 0x50, 0x30, 0x88, 0xf0, 0xd1, 0x8e, 0x48, 0xba,
+ 0x8d, 0x71, 0xf5, 0x3f,
+};
+static const struct drbg_kat_no_reseed kat936_t = {
+ 5, kat936_entropyin, kat936_nonce, kat936_persstr,
+ kat936_addin0, kat936_addin1, kat936_retbits
+};
+static const struct drbg_kat kat936 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat936_t
+};
+
+static const unsigned char kat937_entropyin[] = {
+ 0xc0, 0x82, 0x65, 0x7d, 0xa3, 0xa6, 0x6b, 0x0a, 0xb1, 0x7c, 0x64, 0x79,
+ 0x27, 0x6a, 0xec, 0xbb, 0x67, 0x98, 0xf0, 0xcc, 0x79, 0x1a, 0xf2, 0xe9,
+ 0x71, 0x3d, 0x2b, 0x7a, 0x90, 0x45, 0x4f, 0xa6,
+};
+static const unsigned char kat937_nonce[] = {0};
+static const unsigned char kat937_persstr[] = {
+ 0x33, 0x6b, 0xcb, 0x3a, 0x62, 0x37, 0x33, 0xf6, 0x2e, 0xae, 0xa9, 0x70,
+ 0x22, 0x9c, 0xb4, 0x26, 0xf6, 0x17, 0xa2, 0xca, 0x77, 0xa6, 0x85, 0x86,
+ 0x58, 0x91, 0x18, 0x84, 0x2c, 0x9f, 0x31, 0x5f,
+};
+static const unsigned char kat937_addin0[] = {0};
+static const unsigned char kat937_addin1[] = {0};
+static const unsigned char kat937_retbits[] = {
+ 0xbb, 0xa3, 0x37, 0xdc, 0xc4, 0xef, 0xa6, 0xc1, 0xe0, 0xb2, 0x4b, 0xad,
+ 0x11, 0xf9, 0x23, 0x08, 0x05, 0x44, 0xbd, 0x6d, 0x58, 0xf7, 0x9e, 0xa0,
+ 0x59, 0x23, 0x27, 0xbe, 0x33, 0xb0, 0x53, 0x04, 0xb1, 0x97, 0xa6, 0x77,
+ 0x0f, 0x9d, 0x2c, 0x17, 0x47, 0xc3, 0x2c, 0x79, 0x2f, 0x80, 0xd7, 0xb0,
+ 0x48, 0x8b, 0x6c, 0xf8, 0x49, 0x60, 0x48, 0xd4, 0xe4, 0xd5, 0xc6, 0x05,
+ 0x1b, 0xbd, 0x06, 0xf9,
+};
+static const struct drbg_kat_no_reseed kat937_t = {
+ 6, kat937_entropyin, kat937_nonce, kat937_persstr,
+ kat937_addin0, kat937_addin1, kat937_retbits
+};
+static const struct drbg_kat kat937 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat937_t
+};
+
+static const unsigned char kat938_entropyin[] = {
+ 0x20, 0x7c, 0x2e, 0x64, 0xe9, 0x08, 0xf3, 0x0f, 0x83, 0xd3, 0x5d, 0x2a,
+ 0x1e, 0x78, 0x30, 0x41, 0xfb, 0xab, 0x4a, 0x8e, 0x1a, 0x19, 0xda, 0xb7,
+ 0x00, 0xf3, 0x02, 0x03, 0x11, 0x58, 0xa2, 0x6b,
+};
+static const unsigned char kat938_nonce[] = {0};
+static const unsigned char kat938_persstr[] = {
+ 0x7b, 0xc5, 0xcf, 0x5c, 0x52, 0x5a, 0x3d, 0x06, 0x19, 0x15, 0x13, 0x53,
+ 0x41, 0x95, 0xb9, 0x7c, 0x89, 0x68, 0x64, 0x84, 0xbf, 0x04, 0x92, 0xe0,
+ 0x8a, 0x18, 0xe4, 0xe1, 0xb9, 0x99, 0x15, 0x56,
+};
+static const unsigned char kat938_addin0[] = {0};
+static const unsigned char kat938_addin1[] = {0};
+static const unsigned char kat938_retbits[] = {
+ 0xb0, 0x76, 0x1b, 0x36, 0xa7, 0xd5, 0xd5, 0xb4, 0x7a, 0x72, 0xe5, 0xda,
+ 0xff, 0xf3, 0x1d, 0xa8, 0xac, 0x15, 0xee, 0xd0, 0x77, 0x99, 0x57, 0x43,
+ 0x92, 0x2d, 0xf4, 0xdc, 0x11, 0x02, 0xc7, 0xe9, 0xb6, 0x4d, 0xb6, 0x58,
+ 0x57, 0x35, 0xf0, 0x11, 0xa7, 0x6a, 0x37, 0x8d, 0x8a, 0x7f, 0xff, 0x8e,
+ 0xda, 0x0f, 0x0a, 0x13, 0x60, 0x54, 0x25, 0xe3, 0x44, 0xbb, 0x50, 0x27,
+ 0xa2, 0x3c, 0x23, 0x84,
+};
+static const struct drbg_kat_no_reseed kat938_t = {
+ 7, kat938_entropyin, kat938_nonce, kat938_persstr,
+ kat938_addin0, kat938_addin1, kat938_retbits
+};
+static const struct drbg_kat kat938 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat938_t
+};
+
+static const unsigned char kat939_entropyin[] = {
+ 0xf2, 0xd9, 0x17, 0x76, 0x69, 0x5a, 0x50, 0x02, 0xaa, 0x86, 0x63, 0x54,
+ 0x0f, 0x32, 0x9a, 0xd7, 0x24, 0x0a, 0x4a, 0x1b, 0x1e, 0x7d, 0xfc, 0x89,
+ 0x19, 0xca, 0x0e, 0x83, 0x14, 0x5d, 0xa0, 0x9b,
+};
+static const unsigned char kat939_nonce[] = {0};
+static const unsigned char kat939_persstr[] = {
+ 0x80, 0xc0, 0x30, 0x6c, 0x1f, 0xc4, 0xa5, 0x6b, 0x7c, 0xf8, 0x5c, 0x06,
+ 0x65, 0xd0, 0x7d, 0xcf, 0x77, 0x61, 0x05, 0x53, 0xd3, 0xbe, 0xb4, 0xcf,
+ 0xf4, 0x55, 0x93, 0x24, 0x0a, 0x98, 0x63, 0x16,
+};
+static const unsigned char kat939_addin0[] = {0};
+static const unsigned char kat939_addin1[] = {0};
+static const unsigned char kat939_retbits[] = {
+ 0x10, 0x26, 0x23, 0xf2, 0x58, 0xd2, 0x7f, 0xe2, 0x74, 0xd0, 0xbe, 0xe7,
+ 0x6f, 0x6c, 0xc2, 0x0a, 0x79, 0x04, 0xf7, 0xc8, 0xa1, 0x99, 0x1d, 0xff,
+ 0x15, 0xb5, 0x5b, 0xaa, 0x92, 0xf1, 0x89, 0x47, 0xbc, 0xd4, 0x00, 0x41,
+ 0x4b, 0x28, 0x03, 0x77, 0xb3, 0x7a, 0x1d, 0x13, 0x14, 0x07, 0x34, 0x3a,
+ 0x87, 0xf1, 0x0a, 0x42, 0xbd, 0x60, 0x01, 0x0a, 0xd7, 0xb8, 0x58, 0x0a,
+ 0x49, 0x80, 0xdf, 0x14,
+};
+static const struct drbg_kat_no_reseed kat939_t = {
+ 8, kat939_entropyin, kat939_nonce, kat939_persstr,
+ kat939_addin0, kat939_addin1, kat939_retbits
+};
+static const struct drbg_kat kat939 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat939_t
+};
+
+static const unsigned char kat940_entropyin[] = {
+ 0x73, 0x45, 0x6d, 0xf4, 0xea, 0x33, 0xf0, 0x93, 0x15, 0xf5, 0x52, 0x7f,
+ 0xdd, 0xb2, 0x7f, 0x19, 0x5f, 0xa6, 0x22, 0x98, 0xd2, 0x98, 0xf6, 0xca,
+ 0x5f, 0x40, 0x23, 0x75, 0x8f, 0x35, 0xeb, 0xbf,
+};
+static const unsigned char kat940_nonce[] = {0};
+static const unsigned char kat940_persstr[] = {
+ 0x5b, 0xdc, 0x81, 0x79, 0x75, 0xa6, 0x24, 0x15, 0xad, 0x32, 0x27, 0xc3,
+ 0xef, 0x89, 0x06, 0x09, 0x98, 0xfc, 0x91, 0x30, 0xb3, 0x00, 0x8c, 0x7b,
+ 0xb9, 0x83, 0x07, 0xc9, 0x64, 0xc5, 0x63, 0x19,
+};
+static const unsigned char kat940_addin0[] = {0};
+static const unsigned char kat940_addin1[] = {0};
+static const unsigned char kat940_retbits[] = {
+ 0xfc, 0x88, 0x67, 0x1d, 0x75, 0x83, 0x34, 0xf2, 0x8d, 0x97, 0xc4, 0x34,
+ 0x60, 0x79, 0xba, 0xf8, 0x0a, 0x3a, 0xc5, 0x19, 0x19, 0xd5, 0xb2, 0x47,
+ 0x67, 0x00, 0x73, 0x19, 0x9c, 0x89, 0xaf, 0xc8, 0xfb, 0xda, 0x22, 0x19,
+ 0x37, 0xc0, 0x6a, 0x78, 0xd3, 0x66, 0x3e, 0x67, 0x94, 0xe6, 0x64, 0x3c,
+ 0x4f, 0x4a, 0x78, 0x28, 0x79, 0xca, 0xda, 0x5c, 0x76, 0x5b, 0xf6, 0xb7,
+ 0xbd, 0xf0, 0x0a, 0x8b,
+};
+static const struct drbg_kat_no_reseed kat940_t = {
+ 9, kat940_entropyin, kat940_nonce, kat940_persstr,
+ kat940_addin0, kat940_addin1, kat940_retbits
+};
+static const struct drbg_kat kat940 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat940_t
+};
+
+static const unsigned char kat941_entropyin[] = {
+ 0xfe, 0x48, 0x32, 0xc4, 0x93, 0xc5, 0x36, 0x55, 0x85, 0x9c, 0x05, 0xd0,
+ 0x50, 0x1e, 0xb0, 0x01, 0x56, 0x10, 0xc4, 0x25, 0x76, 0x9c, 0x9b, 0x66,
+ 0xff, 0xfb, 0x13, 0x63, 0xab, 0x8c, 0xf8, 0x59,
+};
+static const unsigned char kat941_nonce[] = {0};
+static const unsigned char kat941_persstr[] = {
+ 0x65, 0x40, 0xeb, 0xcc, 0xad, 0xf8, 0x32, 0x8b, 0x7b, 0x4a, 0x34, 0xc3,
+ 0x2b, 0x7f, 0x01, 0xf9, 0x81, 0x88, 0x90, 0x37, 0xd0, 0x45, 0x15, 0x9a,
+ 0x37, 0x9b, 0xe9, 0xcc, 0xd6, 0x80, 0x0e, 0x33,
+};
+static const unsigned char kat941_addin0[] = {0};
+static const unsigned char kat941_addin1[] = {0};
+static const unsigned char kat941_retbits[] = {
+ 0xa8, 0x5b, 0x86, 0x8b, 0x92, 0x0b, 0x7a, 0x24, 0xcd, 0xe0, 0xb8, 0xc8,
+ 0xbd, 0x65, 0x64, 0x38, 0xe6, 0x11, 0x3e, 0x7e, 0xb3, 0x1a, 0xf1, 0x6f,
+ 0x63, 0x61, 0x35, 0xf9, 0x1b, 0x52, 0x87, 0xd4, 0xbe, 0x39, 0xe4, 0xac,
+ 0xca, 0x8c, 0xac, 0xf2, 0x1b, 0x3d, 0x7f, 0xf5, 0x17, 0xeb, 0xf6, 0xf9,
+ 0xff, 0xd3, 0x97, 0x99, 0xff, 0x48, 0x9b, 0x5d, 0xac, 0x62, 0x8e, 0x24,
+ 0xc2, 0x23, 0x63, 0x5a,
+};
+static const struct drbg_kat_no_reseed kat941_t = {
+ 10, kat941_entropyin, kat941_nonce, kat941_persstr,
+ kat941_addin0, kat941_addin1, kat941_retbits
+};
+static const struct drbg_kat kat941 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat941_t
+};
+
+static const unsigned char kat942_entropyin[] = {
+ 0x47, 0x2f, 0x8a, 0xd0, 0x42, 0x8a, 0xa5, 0xa5, 0xb6, 0x33, 0x62, 0x28,
+ 0xf8, 0x83, 0x9b, 0xe6, 0x61, 0x92, 0x1e, 0xb7, 0xf5, 0xc7, 0xec, 0x24,
+ 0x06, 0xec, 0x4f, 0x74, 0x7b, 0xa4, 0x8e, 0x68,
+};
+static const unsigned char kat942_nonce[] = {0};
+static const unsigned char kat942_persstr[] = {
+ 0x46, 0xb3, 0xb7, 0xb9, 0xcf, 0xed, 0xd0, 0x9f, 0x4a, 0x51, 0xea, 0xbd,
+ 0x0b, 0x54, 0x00, 0xcf, 0xe5, 0xeb, 0xf1, 0x5a, 0x5f, 0xf3, 0x86, 0x50,
+ 0x6c, 0x13, 0xd6, 0x55, 0xf5, 0x91, 0x0e, 0x91,
+};
+static const unsigned char kat942_addin0[] = {0};
+static const unsigned char kat942_addin1[] = {0};
+static const unsigned char kat942_retbits[] = {
+ 0xd9, 0xaf, 0x4c, 0x41, 0x24, 0xb8, 0x8c, 0x0e, 0x76, 0x92, 0x1f, 0x79,
+ 0x7e, 0x0c, 0xd3, 0x12, 0xf2, 0x38, 0xde, 0x7c, 0xaa, 0xf8, 0x09, 0xa1,
+ 0x0b, 0xc0, 0xdf, 0x90, 0x90, 0xb2, 0x13, 0x25, 0xf7, 0x52, 0x30, 0x9d,
+ 0x9a, 0xa6, 0xbb, 0x2c, 0x6f, 0xc5, 0x0d, 0x40, 0xf4, 0x9c, 0xe0, 0xa1,
+ 0x59, 0x5c, 0x0d, 0xea, 0x0f, 0xd2, 0xca, 0x9c, 0x1f, 0x3f, 0x91, 0x0e,
+ 0x03, 0x8a, 0x55, 0x82,
+};
+static const struct drbg_kat_no_reseed kat942_t = {
+ 11, kat942_entropyin, kat942_nonce, kat942_persstr,
+ kat942_addin0, kat942_addin1, kat942_retbits
+};
+static const struct drbg_kat kat942 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat942_t
+};
+
+static const unsigned char kat943_entropyin[] = {
+ 0xe2, 0x2c, 0x61, 0xbe, 0xe8, 0x33, 0x39, 0xfa, 0x8f, 0x72, 0xb0, 0x19,
+ 0x1c, 0xa5, 0xcd, 0x13, 0x56, 0xd9, 0x12, 0x75, 0xd3, 0x74, 0xf0, 0x40,
+ 0x14, 0x5e, 0x96, 0xae, 0x45, 0x0e, 0x6a, 0x9b,
+};
+static const unsigned char kat943_nonce[] = {0};
+static const unsigned char kat943_persstr[] = {
+ 0xe5, 0x4a, 0xe2, 0xd8, 0xa4, 0xcd, 0x7e, 0x61, 0x4f, 0xe7, 0x78, 0x2c,
+ 0xf9, 0x6f, 0xce, 0x02, 0x33, 0x11, 0x1e, 0x2d, 0xa3, 0x48, 0x29, 0x82,
+ 0x6f, 0x7b, 0xe8, 0x4c, 0x17, 0x74, 0x4a, 0xba,
+};
+static const unsigned char kat943_addin0[] = {0};
+static const unsigned char kat943_addin1[] = {0};
+static const unsigned char kat943_retbits[] = {
+ 0x37, 0x10, 0x39, 0x09, 0x40, 0xf6, 0x41, 0xc9, 0x9f, 0x03, 0x2c, 0x1a,
+ 0x1b, 0x9a, 0xdd, 0xf6, 0xbb, 0x91, 0xeb, 0xc4, 0xab, 0x27, 0x8f, 0x7a,
+ 0x1e, 0xaf, 0xa8, 0x60, 0x92, 0xb5, 0x5b, 0x52, 0xb9, 0x72, 0x1f, 0x4b,
+ 0x5e, 0xa3, 0x79, 0x3b, 0x4c, 0xfb, 0x4b, 0xa8, 0xbd, 0xb4, 0x94, 0x29,
+ 0x33, 0x1a, 0xc7, 0xf1, 0x7c, 0x66, 0xa4, 0x77, 0x1b, 0x29, 0xfa, 0x2f,
+ 0xf0, 0xe1, 0x39, 0x09,
+};
+static const struct drbg_kat_no_reseed kat943_t = {
+ 12, kat943_entropyin, kat943_nonce, kat943_persstr,
+ kat943_addin0, kat943_addin1, kat943_retbits
+};
+static const struct drbg_kat kat943 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat943_t
+};
+
+static const unsigned char kat944_entropyin[] = {
+ 0xf8, 0x51, 0xb7, 0xec, 0xef, 0x38, 0x42, 0x2b, 0x43, 0x7d, 0x4d, 0xbd,
+ 0xd6, 0x3a, 0x11, 0x86, 0xa1, 0x5b, 0x3b, 0xac, 0xe8, 0x50, 0x8a, 0x2a,
+ 0x81, 0xd5, 0xca, 0xcc, 0x5a, 0xc5, 0xa9, 0x68,
+};
+static const unsigned char kat944_nonce[] = {0};
+static const unsigned char kat944_persstr[] = {
+ 0x83, 0xe4, 0x31, 0x5a, 0x6c, 0x4c, 0xfa, 0x98, 0x52, 0xc9, 0x10, 0x69,
+ 0xa9, 0xa1, 0xc9, 0x14, 0x0a, 0xd6, 0x7f, 0xe9, 0x3e, 0xe3, 0x63, 0x3e,
+ 0x27, 0x93, 0x7f, 0x78, 0xfc, 0x8a, 0x11, 0xa1,
+};
+static const unsigned char kat944_addin0[] = {0};
+static const unsigned char kat944_addin1[] = {0};
+static const unsigned char kat944_retbits[] = {
+ 0xd1, 0xa4, 0x12, 0xcc, 0x86, 0xf7, 0x9a, 0xe7, 0xc4, 0x79, 0xcf, 0xed,
+ 0x85, 0x90, 0xf3, 0x10, 0xe2, 0x2a, 0x68, 0x84, 0x51, 0xb6, 0x0a, 0xa8,
+ 0x63, 0x0f, 0xc8, 0xc2, 0xb1, 0xee, 0x0f, 0x94, 0x80, 0x6f, 0x75, 0x97,
+ 0x5c, 0x29, 0xdc, 0xe0, 0xe3, 0x68, 0x54, 0xfa, 0x7b, 0x86, 0x04, 0xc5,
+ 0xf5, 0x4d, 0xb9, 0xf6, 0x9c, 0x8e, 0x19, 0x78, 0x47, 0x2d, 0x50, 0x81,
+ 0xec, 0x7e, 0x15, 0x53,
+};
+static const struct drbg_kat_no_reseed kat944_t = {
+ 13, kat944_entropyin, kat944_nonce, kat944_persstr,
+ kat944_addin0, kat944_addin1, kat944_retbits
+};
+static const struct drbg_kat kat944 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat944_t
+};
+
+static const unsigned char kat945_entropyin[] = {
+ 0x31, 0x5b, 0xbe, 0x53, 0x0e, 0xcf, 0xa4, 0x4e, 0xb2, 0x72, 0x50, 0xf6,
+ 0xd2, 0x0f, 0x4b, 0x6c, 0x64, 0x8e, 0x42, 0xc6, 0x1f, 0x6f, 0xae, 0xd6,
+ 0xfe, 0x48, 0x3f, 0x26, 0xf6, 0xf8, 0x42, 0x7f,
+};
+static const unsigned char kat945_nonce[] = {0};
+static const unsigned char kat945_persstr[] = {
+ 0xef, 0xa1, 0x0f, 0xa5, 0xbc, 0x1e, 0x44, 0x5c, 0x03, 0x16, 0x20, 0xeb,
+ 0xb3, 0x7e, 0x75, 0x52, 0xc2, 0xdf, 0xa0, 0x83, 0x07, 0xdf, 0xe5, 0x3c,
+ 0x1b, 0x8e, 0x74, 0xec, 0x55, 0x05, 0x03, 0x56,
+};
+static const unsigned char kat945_addin0[] = {0};
+static const unsigned char kat945_addin1[] = {0};
+static const unsigned char kat945_retbits[] = {
+ 0xc5, 0x92, 0xd9, 0xe7, 0xb6, 0x74, 0x15, 0xd0, 0x9d, 0xfc, 0x46, 0xd3,
+ 0x03, 0x9b, 0x3a, 0xfc, 0x1c, 0xe6, 0x6a, 0xfa, 0x98, 0xe8, 0x79, 0x34,
+ 0x37, 0xcf, 0xcb, 0x5a, 0xb3, 0xa1, 0x22, 0xc6, 0x36, 0xf0, 0xa8, 0x4e,
+ 0xdc, 0x04, 0x09, 0x9d, 0x38, 0x19, 0xd7, 0xfa, 0x30, 0xd1, 0x96, 0x88,
+ 0x0d, 0x91, 0x99, 0xde, 0x17, 0xf7, 0x17, 0x0d, 0xe7, 0x25, 0xf3, 0x65,
+ 0x0e, 0xf3, 0x4b, 0x19,
+};
+static const struct drbg_kat_no_reseed kat945_t = {
+ 14, kat945_entropyin, kat945_nonce, kat945_persstr,
+ kat945_addin0, kat945_addin1, kat945_retbits
+};
+static const struct drbg_kat kat945 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat945_t
+};
+
+static const unsigned char kat946_entropyin[] = {
+ 0xb4, 0xc7, 0x40, 0xb2, 0xf8, 0xf2, 0xb7, 0x14, 0xcc, 0xdb, 0x8c, 0x58,
+ 0xb9, 0x76, 0x0d, 0xc6, 0xc7, 0x5d, 0xc4, 0x64, 0x54, 0x27, 0xf3, 0xd4,
+ 0x24, 0x13, 0x13, 0xda, 0x26, 0x43, 0x06, 0x4b,
+};
+static const unsigned char kat946_nonce[] = {0};
+static const unsigned char kat946_persstr[] = {
+ 0xd1, 0xb2, 0x1b, 0x78, 0xca, 0x31, 0x2c, 0x96, 0xcf, 0xf6, 0x73, 0xf0,
+ 0x8c, 0x4b, 0xc7, 0x8b, 0x06, 0x85, 0x22, 0xc6, 0x01, 0xf5, 0x39, 0x41,
+ 0x04, 0x6d, 0x9a, 0xae, 0xe0, 0xf4, 0x28, 0x98,
+};
+static const unsigned char kat946_addin0[] = {
+ 0x8c, 0x16, 0xff, 0x82, 0xbd, 0x60, 0xf9, 0x2c, 0x73, 0x7c, 0x77, 0x83,
+ 0x6f, 0x7c, 0x66, 0x3a, 0xc9, 0x73, 0x9d, 0x3e, 0x74, 0xd1, 0xcf, 0x5f,
+ 0x17, 0x35, 0x22, 0x7d, 0x83, 0x2b, 0xc0, 0xe8,
+};
+static const unsigned char kat946_addin1[] = {
+ 0x13, 0xfa, 0x8e, 0x83, 0xc9, 0xe9, 0xa5, 0x58, 0x22, 0xd9, 0xfe, 0xf7,
+ 0xe6, 0x9f, 0x7c, 0xd0, 0x48, 0x03, 0x6b, 0x75, 0xdf, 0x0c, 0xac, 0x04,
+ 0xa2, 0x81, 0x56, 0xd2, 0x98, 0x6a, 0x19, 0xa1,
+};
+static const unsigned char kat946_retbits[] = {
+ 0x4d, 0x73, 0xd7, 0xb7, 0x51, 0xd9, 0x09, 0x59, 0xcf, 0x09, 0x63, 0x60,
+ 0x52, 0x59, 0x47, 0xc2, 0xcb, 0x54, 0x56, 0x5f, 0x24, 0x1a, 0xca, 0xbd,
+ 0x77, 0xbc, 0x16, 0xd9, 0x18, 0x9f, 0x70, 0xb7, 0x6b, 0x58, 0xfd, 0xa7,
+ 0x12, 0x00, 0xb0, 0xb4, 0x90, 0x2d, 0x10, 0x06, 0x77, 0x8d, 0xd1, 0xba,
+ 0x76, 0x3b, 0x03, 0xfb, 0xca, 0xd6, 0xe6, 0x05, 0x16, 0x22, 0x1f, 0xd8,
+ 0x4a, 0xd2, 0x34, 0xfc,
+};
+static const struct drbg_kat_no_reseed kat946_t = {
+ 0, kat946_entropyin, kat946_nonce, kat946_persstr,
+ kat946_addin0, kat946_addin1, kat946_retbits
+};
+static const struct drbg_kat kat946 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat946_t
+};
+
+static const unsigned char kat947_entropyin[] = {
+ 0x63, 0x21, 0x08, 0x97, 0x6c, 0x11, 0xa9, 0x0e, 0x03, 0x0e, 0x4c, 0x6c,
+ 0xb1, 0x5d, 0x56, 0xbd, 0x79, 0xed, 0x3a, 0x94, 0x42, 0x41, 0x61, 0x09,
+ 0x3d, 0xca, 0xca, 0x09, 0x3b, 0x05, 0x13, 0xa3,
+};
+static const unsigned char kat947_nonce[] = {0};
+static const unsigned char kat947_persstr[] = {
+ 0x96, 0xf9, 0xc2, 0x50, 0x76, 0x37, 0x9a, 0x4d, 0x52, 0xab, 0x9e, 0x6c,
+ 0xc6, 0x2c, 0x7a, 0xcd, 0x32, 0x91, 0xe3, 0x88, 0x58, 0xaf, 0xf9, 0x8f,
+ 0x8c, 0x52, 0xfb, 0xdb, 0xcc, 0x4c, 0x5f, 0xef,
+};
+static const unsigned char kat947_addin0[] = {
+ 0x4e, 0x8d, 0x8f, 0xef, 0x9e, 0x5c, 0xae, 0x9f, 0x8e, 0xa2, 0x32, 0xf8,
+ 0x01, 0x21, 0x08, 0x71, 0xa2, 0xb4, 0xcb, 0xf1, 0x1b, 0x75, 0xea, 0x11,
+ 0xac, 0xd7, 0xa1, 0x01, 0xfa, 0xee, 0x75, 0x6f,
+};
+static const unsigned char kat947_addin1[] = {
+ 0x41, 0x9f, 0x71, 0x7f, 0x34, 0x24, 0x9a, 0x0b, 0xb9, 0xa8, 0x1b, 0x27,
+ 0x3f, 0x52, 0x8c, 0x2a, 0x46, 0x00, 0x7f, 0x3d, 0xef, 0x9f, 0xbc, 0xd2,
+ 0x96, 0x89, 0xcf, 0x25, 0x10, 0x52, 0x63, 0x47,
+};
+static const unsigned char kat947_retbits[] = {
+ 0xfe, 0x0f, 0xbb, 0x55, 0x04, 0xc5, 0xbb, 0xe4, 0xe4, 0xbe, 0xa2, 0xc5,
+ 0x91, 0x3b, 0x90, 0x55, 0x19, 0x78, 0x77, 0x1c, 0xf3, 0x19, 0x98, 0x2d,
+ 0x7e, 0xb7, 0xb7, 0x6a, 0x64, 0x49, 0x02, 0xef, 0x91, 0x12, 0xd9, 0x39,
+ 0x7c, 0x9c, 0x78, 0x4e, 0x33, 0xa1, 0x7c, 0xd5, 0x92, 0xe9, 0x24, 0xa8,
+ 0x7d, 0xde, 0xb5, 0x17, 0xff, 0x75, 0x28, 0x3d, 0xdd, 0x9b, 0x25, 0xb3,
+ 0x16, 0xd7, 0x5f, 0x8b,
+};
+static const struct drbg_kat_no_reseed kat947_t = {
+ 1, kat947_entropyin, kat947_nonce, kat947_persstr,
+ kat947_addin0, kat947_addin1, kat947_retbits
+};
+static const struct drbg_kat kat947 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat947_t
+};
+
+static const unsigned char kat948_entropyin[] = {
+ 0xca, 0xd4, 0x37, 0x3e, 0xb1, 0x8b, 0xf4, 0x91, 0x4f, 0x09, 0x73, 0x74,
+ 0xff, 0x20, 0x98, 0x78, 0x9b, 0x05, 0xa0, 0x4a, 0x9d, 0x1b, 0xf6, 0xf5,
+ 0xdb, 0x95, 0x71, 0x08, 0x08, 0xde, 0x96, 0xc0,
+};
+static const unsigned char kat948_nonce[] = {0};
+static const unsigned char kat948_persstr[] = {
+ 0xca, 0x24, 0x00, 0xae, 0xe4, 0x98, 0xa7, 0x1f, 0xac, 0xe7, 0x34, 0x51,
+ 0x2a, 0x43, 0xff, 0xfb, 0x89, 0xe7, 0x4c, 0xf8, 0x18, 0xee, 0x5b, 0x2b,
+ 0x01, 0x7c, 0xf8, 0xb7, 0x4a, 0xa7, 0x16, 0x96,
+};
+static const unsigned char kat948_addin0[] = {
+ 0x43, 0x0b, 0x47, 0x54, 0x0c, 0x77, 0x1f, 0x70, 0x86, 0x15, 0xd2, 0xa5,
+ 0x2e, 0x9f, 0x2a, 0x16, 0x7e, 0x5b, 0x08, 0x14, 0x21, 0x17, 0x83, 0x32,
+ 0x87, 0xd5, 0xff, 0x0e, 0x39, 0xfb, 0x44, 0x98,
+};
+static const unsigned char kat948_addin1[] = {
+ 0x47, 0x4a, 0x3d, 0xfe, 0x1c, 0x10, 0x49, 0x38, 0x55, 0x67, 0xb9, 0x6e,
+ 0xb9, 0x92, 0x70, 0x93, 0x0f, 0x11, 0x81, 0xe3, 0x7d, 0x5e, 0x37, 0xd1,
+ 0xd0, 0x49, 0x5b, 0x98, 0x5b, 0xf1, 0x5d, 0xb7,
+};
+static const unsigned char kat948_retbits[] = {
+ 0x17, 0x62, 0x79, 0x95, 0x9f, 0xee, 0xb2, 0x6e, 0xce, 0x7e, 0x3b, 0x83,
+ 0x0a, 0x2b, 0xb1, 0x4f, 0xee, 0xbb, 0x0b, 0xcc, 0xfd, 0x2f, 0x4c, 0x75,
+ 0xd1, 0xe1, 0xe8, 0x30, 0xb3, 0xd7, 0x82, 0xdd, 0xca, 0xf9, 0x5d, 0xfe,
+ 0x3d, 0x5c, 0x4d, 0x3c, 0xd2, 0xb1, 0xe6, 0x71, 0x50, 0x5d, 0xa3, 0xf6,
+ 0x17, 0xc5, 0xe0, 0x2a, 0x80, 0x4d, 0xa2, 0xac, 0x48, 0x42, 0xe8, 0x6a,
+ 0x37, 0x90, 0x1b, 0xc9,
+};
+static const struct drbg_kat_no_reseed kat948_t = {
+ 2, kat948_entropyin, kat948_nonce, kat948_persstr,
+ kat948_addin0, kat948_addin1, kat948_retbits
+};
+static const struct drbg_kat kat948 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat948_t
+};
+
+static const unsigned char kat949_entropyin[] = {
+ 0xa8, 0x0c, 0x79, 0xd3, 0x10, 0xab, 0xec, 0x8a, 0xe3, 0x3b, 0x0d, 0x37,
+ 0x09, 0x22, 0xea, 0x2f, 0xed, 0x11, 0x0a, 0x40, 0xe1, 0xb7, 0x4b, 0xcc,
+ 0x17, 0xf7, 0xcc, 0xa3, 0xfc, 0x26, 0x11, 0x37,
+};
+static const unsigned char kat949_nonce[] = {0};
+static const unsigned char kat949_persstr[] = {
+ 0xbb, 0x89, 0x1b, 0x0c, 0xb5, 0xd0, 0x02, 0xaf, 0xa5, 0x09, 0xab, 0xff,
+ 0xca, 0xeb, 0x7b, 0x18, 0xb5, 0x96, 0x6e, 0xfb, 0x43, 0x5d, 0x13, 0x9e,
+ 0x79, 0x2e, 0xb3, 0x02, 0xb1, 0x08, 0x9a, 0x67,
+};
+static const unsigned char kat949_addin0[] = {
+ 0xa9, 0xc9, 0x16, 0xc2, 0xd6, 0x68, 0xfa, 0x11, 0x2f, 0x2a, 0x43, 0xb2,
+ 0x2d, 0x14, 0x31, 0xca, 0xde, 0x79, 0x5e, 0xcc, 0x34, 0x00, 0x21, 0xd2,
+ 0x9f, 0x4a, 0x4a, 0xa9, 0x72, 0x04, 0x69, 0x61,
+};
+static const unsigned char kat949_addin1[] = {
+ 0xb2, 0xdb, 0x3f, 0x33, 0xb6, 0xb5, 0xe4, 0x8b, 0x30, 0x59, 0x69, 0x61,
+ 0x79, 0xf4, 0x78, 0xcf, 0x53, 0x9a, 0x60, 0x03, 0x8d, 0xef, 0x7f, 0xc7,
+ 0xd9, 0x9b, 0xaa, 0x4f, 0x86, 0x7f, 0x8d, 0xea,
+};
+static const unsigned char kat949_retbits[] = {
+ 0x6b, 0xe8, 0x7a, 0xf7, 0x44, 0xde, 0xbf, 0x0b, 0xda, 0x8a, 0xea, 0x3d,
+ 0x9a, 0x76, 0x14, 0x31, 0xeb, 0x25, 0xb7, 0xf4, 0xfd, 0xa2, 0xbf, 0xe0,
+ 0xb6, 0xd3, 0x54, 0x2c, 0x5c, 0x66, 0x4c, 0x80, 0x29, 0x9c, 0x5c, 0x53,
+ 0xf3, 0x2c, 0x01, 0x8b, 0x3e, 0xac, 0x9a, 0xa7, 0xfb, 0xba, 0xd4, 0xb0,
+ 0x1c, 0x1f, 0x3b, 0xad, 0x0b, 0x8c, 0x71, 0xb0, 0x71, 0x85, 0xc8, 0x0d,
+ 0xa8, 0xf1, 0x9a, 0xda,
+};
+static const struct drbg_kat_no_reseed kat949_t = {
+ 3, kat949_entropyin, kat949_nonce, kat949_persstr,
+ kat949_addin0, kat949_addin1, kat949_retbits
+};
+static const struct drbg_kat kat949 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat949_t
+};
+
+static const unsigned char kat950_entropyin[] = {
+ 0x5d, 0xbb, 0xa4, 0xe2, 0xfd, 0xff, 0xc9, 0x55, 0x18, 0xdc, 0xcb, 0xa9,
+ 0xfb, 0x68, 0x5d, 0x40, 0xd6, 0xf9, 0x54, 0xf9, 0x30, 0x41, 0x15, 0x9c,
+ 0xb0, 0x1b, 0xe8, 0x2a, 0xf5, 0xa7, 0x0e, 0xe0,
+};
+static const unsigned char kat950_nonce[] = {0};
+static const unsigned char kat950_persstr[] = {
+ 0x2a, 0x4c, 0x18, 0x58, 0xd9, 0x8f, 0x46, 0x6b, 0x7e, 0x51, 0xf9, 0xe2,
+ 0xd0, 0xfe, 0x34, 0x79, 0xa9, 0x40, 0xe6, 0x15, 0x5d, 0x33, 0xf4, 0x0f,
+ 0x4c, 0x00, 0x90, 0xb8, 0x71, 0xd4, 0xc8, 0xfd,
+};
+static const unsigned char kat950_addin0[] = {
+ 0x2a, 0x54, 0xc5, 0x2f, 0x84, 0x57, 0xc3, 0x71, 0x9d, 0xdb, 0xb9, 0x0f,
+ 0x31, 0xdf, 0x49, 0x23, 0x87, 0x33, 0x5a, 0x24, 0xe1, 0x75, 0x6b, 0xdd,
+ 0x18, 0x77, 0x37, 0xf9, 0xf4, 0x33, 0x09, 0xd2,
+};
+static const unsigned char kat950_addin1[] = {
+ 0xfc, 0xd0, 0x84, 0xe2, 0xf3, 0x77, 0x79, 0xab, 0x82, 0x8d, 0xb9, 0x2e,
+ 0xf6, 0x4d, 0xb4, 0x08, 0x8b, 0xfa, 0x66, 0xda, 0xf1, 0x62, 0xc9, 0x62,
+ 0xfa, 0x9d, 0xdd, 0x12, 0x43, 0xc1, 0x27, 0x4e,
+};
+static const unsigned char kat950_retbits[] = {
+ 0xad, 0x0a, 0x66, 0x1c, 0x1e, 0x5c, 0x3f, 0x44, 0x64, 0x20, 0xc0, 0x76,
+ 0x1f, 0x34, 0xfe, 0xb4, 0x12, 0xac, 0xe4, 0xa3, 0x7c, 0x2c, 0xdb, 0xe3,
+ 0x64, 0x79, 0x27, 0xb1, 0x0c, 0xa5, 0xe7, 0x68, 0x90, 0xc8, 0xba, 0xc1,
+ 0x0a, 0x98, 0xbe, 0xfb, 0x1b, 0xc0, 0xd0, 0xab, 0x78, 0xab, 0xd6, 0xbe,
+ 0xf5, 0x88, 0xe6, 0x3c, 0x91, 0x0d, 0x76, 0xc9, 0xf1, 0xbd, 0x40, 0xb8,
+ 0xbe, 0x35, 0x3f, 0x3d,
+};
+static const struct drbg_kat_no_reseed kat950_t = {
+ 4, kat950_entropyin, kat950_nonce, kat950_persstr,
+ kat950_addin0, kat950_addin1, kat950_retbits
+};
+static const struct drbg_kat kat950 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat950_t
+};
+
+static const unsigned char kat951_entropyin[] = {
+ 0xb0, 0x67, 0x3a, 0xca, 0xef, 0x01, 0x00, 0x18, 0x10, 0x45, 0x8e, 0x7e,
+ 0x3b, 0xf7, 0x38, 0x6f, 0xfa, 0xb4, 0x94, 0x8a, 0x68, 0x1a, 0x0a, 0x34,
+ 0xca, 0xe5, 0x8e, 0x9e, 0xc3, 0xed, 0xf6, 0xca,
+};
+static const unsigned char kat951_nonce[] = {0};
+static const unsigned char kat951_persstr[] = {
+ 0xeb, 0x85, 0xb2, 0x1d, 0x4c, 0xf1, 0x17, 0x1c, 0x22, 0xf2, 0xe5, 0xb4,
+ 0x57, 0x3b, 0x03, 0x6f, 0x6b, 0x63, 0x76, 0x3e, 0x9f, 0xb1, 0x86, 0x7c,
+ 0x7e, 0xac, 0x3c, 0x4d, 0x01, 0x99, 0xb1, 0x09,
+};
+static const unsigned char kat951_addin0[] = {
+ 0xab, 0xda, 0x36, 0x99, 0x13, 0x39, 0x04, 0x00, 0x23, 0x22, 0x2e, 0x2f,
+ 0x38, 0xf9, 0xe5, 0x1d, 0xe3, 0x3d, 0x8e, 0x61, 0x3e, 0xe5, 0xdc, 0x2a,
+ 0xdc, 0x2d, 0x9c, 0xd2, 0x87, 0x12, 0x2f, 0xc2,
+};
+static const unsigned char kat951_addin1[] = {
+ 0xc2, 0x7e, 0x58, 0x99, 0xbd, 0x61, 0xfa, 0x08, 0x5b, 0x1f, 0x02, 0xf7,
+ 0x41, 0x12, 0x54, 0x3f, 0xfe, 0xb3, 0x54, 0xb6, 0x6c, 0x00, 0x5b, 0x37,
+ 0xf4, 0x65, 0x83, 0x67, 0x9b, 0xdd, 0x5f, 0x07,
+};
+static const unsigned char kat951_retbits[] = {
+ 0x3f, 0x41, 0x2c, 0xba, 0x59, 0x8f, 0xac, 0x33, 0xbf, 0x9e, 0x00, 0x17,
+ 0x69, 0x1f, 0xf4, 0xb7, 0x19, 0x00, 0x47, 0x5b, 0x31, 0x15, 0x59, 0x84,
+ 0xbb, 0x6c, 0xee, 0x49, 0x1d, 0x3b, 0x65, 0xf7, 0xc1, 0x71, 0x22, 0xdf,
+ 0xe2, 0x3a, 0x26, 0xe1, 0x69, 0xa1, 0x6f, 0xe9, 0x91, 0xba, 0x12, 0x88,
+ 0x47, 0xdd, 0x2d, 0xb9, 0xe6, 0x44, 0xe9, 0xc6, 0x0b, 0xb5, 0x52, 0x46,
+ 0x13, 0xf3, 0x77, 0x6c,
+};
+static const struct drbg_kat_no_reseed kat951_t = {
+ 5, kat951_entropyin, kat951_nonce, kat951_persstr,
+ kat951_addin0, kat951_addin1, kat951_retbits
+};
+static const struct drbg_kat kat951 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat951_t
+};
+
+static const unsigned char kat952_entropyin[] = {
+ 0xd8, 0xad, 0x4c, 0x58, 0x08, 0xcf, 0xe0, 0xd9, 0x56, 0x29, 0xaf, 0x69,
+ 0xa9, 0x98, 0xdb, 0x8d, 0xf8, 0x7c, 0x17, 0x6b, 0x81, 0x28, 0xcb, 0x1c,
+ 0xf8, 0x22, 0xcd, 0x7a, 0x35, 0xf5, 0x36, 0xe4,
+};
+static const unsigned char kat952_nonce[] = {0};
+static const unsigned char kat952_persstr[] = {
+ 0x6d, 0xff, 0x97, 0x10, 0x0c, 0xa5, 0x3e, 0x51, 0xe9, 0x81, 0x35, 0x13,
+ 0x88, 0xba, 0x48, 0xf2, 0xb8, 0x58, 0xd2, 0xf2, 0x0c, 0x2d, 0x60, 0xf8,
+ 0x60, 0xdb, 0x42, 0x01, 0xa9, 0x90, 0x2c, 0x11,
+};
+static const unsigned char kat952_addin0[] = {
+ 0x43, 0x9e, 0xb8, 0xeb, 0x10, 0x01, 0xe1, 0xc9, 0x8d, 0x55, 0xfc, 0x69,
+ 0x99, 0x6e, 0x17, 0x6d, 0x30, 0xc2, 0xb5, 0x5d, 0x40, 0xe0, 0xce, 0x3a,
+ 0x4e, 0x40, 0xff, 0xed, 0x6f, 0xb9, 0xf5, 0x48,
+};
+static const unsigned char kat952_addin1[] = {
+ 0xae, 0xf5, 0x77, 0xdc, 0xd6, 0x98, 0xba, 0x8e, 0xed, 0x6f, 0x7a, 0x8f,
+ 0x75, 0x63, 0xa7, 0xc1, 0xc0, 0xa1, 0x53, 0xce, 0x83, 0x6b, 0x2f, 0x6b,
+ 0xb2, 0x4b, 0x3c, 0xef, 0x81, 0xc2, 0x03, 0x43,
+};
+static const unsigned char kat952_retbits[] = {
+ 0x04, 0x9c, 0x36, 0xad, 0x78, 0x4d, 0x2c, 0x3f, 0xe0, 0x09, 0x35, 0x13,
+ 0xb2, 0x96, 0x48, 0xeb, 0x8f, 0x43, 0xbe, 0xa9, 0x19, 0xf2, 0xf5, 0x26,
+ 0x19, 0x7f, 0x99, 0x14, 0xbe, 0x45, 0xe1, 0x63, 0xe8, 0x7e, 0xd1, 0xcf,
+ 0xcf, 0x88, 0xef, 0x16, 0x2c, 0xdf, 0x58, 0x7a, 0xe2, 0x2f, 0xbe, 0x08,
+ 0x74, 0x42, 0x25, 0x8b, 0x9c, 0x4e, 0x07, 0x68, 0x3e, 0x00, 0x5d, 0x96,
+ 0x34, 0x73, 0x61, 0x03,
+};
+static const struct drbg_kat_no_reseed kat952_t = {
+ 6, kat952_entropyin, kat952_nonce, kat952_persstr,
+ kat952_addin0, kat952_addin1, kat952_retbits
+};
+static const struct drbg_kat kat952 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat952_t
+};
+
+static const unsigned char kat953_entropyin[] = {
+ 0xff, 0x0a, 0xb6, 0x9d, 0xb9, 0xfc, 0x39, 0x48, 0x35, 0x3a, 0xcf, 0x8b,
+ 0xde, 0x34, 0xb8, 0x84, 0x2b, 0x57, 0x16, 0x94, 0xed, 0x10, 0xe2, 0xad,
+ 0xfe, 0x61, 0x6b, 0xa1, 0x62, 0x73, 0xce, 0x88,
+};
+static const unsigned char kat953_nonce[] = {0};
+static const unsigned char kat953_persstr[] = {
+ 0x3d, 0x6a, 0x74, 0xd6, 0x92, 0xc9, 0x0c, 0xc7, 0x71, 0xd3, 0xec, 0x37,
+ 0x4a, 0xca, 0x83, 0xbb, 0xa7, 0xe3, 0x15, 0x33, 0x1f, 0xde, 0x42, 0xdd,
+ 0x73, 0x56, 0xd1, 0x61, 0x66, 0x51, 0x47, 0x36,
+};
+static const unsigned char kat953_addin0[] = {
+ 0x7b, 0xf5, 0x23, 0x30, 0xec, 0x81, 0x79, 0xae, 0xa2, 0xc2, 0x7f, 0x1c,
+ 0x5f, 0x67, 0x50, 0x66, 0xd1, 0x34, 0x07, 0x73, 0xfb, 0x4d, 0x5b, 0xb3,
+ 0x17, 0x9a, 0x38, 0x2b, 0x6c, 0x7b, 0xa0, 0x39,
+};
+static const unsigned char kat953_addin1[] = {
+ 0xee, 0x1c, 0xae, 0x7f, 0x1c, 0x94, 0x04, 0x8b, 0x75, 0xbf, 0x78, 0xce,
+ 0xaf, 0xf6, 0x32, 0xd2, 0x18, 0x4d, 0x72, 0x40, 0x91, 0xb4, 0x57, 0x2a,
+ 0xba, 0x23, 0xe8, 0xaf, 0x32, 0x56, 0x8a, 0x5a,
+};
+static const unsigned char kat953_retbits[] = {
+ 0x73, 0x7c, 0xb9, 0x85, 0xf8, 0x2f, 0x30, 0x3a, 0x76, 0x32, 0x5b, 0xda,
+ 0x0d, 0x80, 0xa5, 0xab, 0xc5, 0x45, 0xd2, 0x54, 0x66, 0x82, 0x2f, 0x19,
+ 0x5c, 0xdf, 0x58, 0xae, 0x8c, 0x98, 0x8d, 0x34, 0x4f, 0x35, 0x64, 0xef,
+ 0x75, 0xe4, 0xde, 0x37, 0xea, 0xb3, 0x12, 0x39, 0xb7, 0x2f, 0x66, 0xe3,
+ 0x17, 0x45, 0x2b, 0xcd, 0xfa, 0x42, 0xfc, 0xab, 0x3b, 0x1e, 0x20, 0x79,
+ 0x4a, 0x12, 0xc0, 0xad,
+};
+static const struct drbg_kat_no_reseed kat953_t = {
+ 7, kat953_entropyin, kat953_nonce, kat953_persstr,
+ kat953_addin0, kat953_addin1, kat953_retbits
+};
+static const struct drbg_kat kat953 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat953_t
+};
+
+static const unsigned char kat954_entropyin[] = {
+ 0x43, 0x64, 0x16, 0xca, 0xa8, 0xa5, 0x46, 0xfa, 0x5c, 0xa8, 0xe0, 0x37,
+ 0xa8, 0x5c, 0x7c, 0x6e, 0x2f, 0xf7, 0x5e, 0xed, 0x0f, 0x83, 0x98, 0x22,
+ 0x1e, 0xfb, 0xc0, 0x26, 0xa9, 0xb5, 0xc3, 0xd1,
+};
+static const unsigned char kat954_nonce[] = {0};
+static const unsigned char kat954_persstr[] = {
+ 0xaf, 0x10, 0x5d, 0xab, 0x25, 0x16, 0xaa, 0xc2, 0x90, 0x05, 0xe2, 0x1f,
+ 0xcf, 0xd8, 0x1c, 0xde, 0x71, 0x37, 0x80, 0xda, 0xdb, 0x36, 0x8b, 0xbf,
+ 0x70, 0xea, 0xa0, 0x01, 0xc5, 0x24, 0xa8, 0x41,
+};
+static const unsigned char kat954_addin0[] = {
+ 0x4c, 0xba, 0x4a, 0x6f, 0xd0, 0x53, 0x8f, 0x15, 0x0d, 0x77, 0x02, 0xb4,
+ 0x21, 0x07, 0xf0, 0xc3, 0xac, 0x39, 0x63, 0x00, 0xf2, 0x1b, 0x65, 0x1c,
+ 0x2d, 0x3b, 0x3c, 0x40, 0x94, 0x6b, 0xd3, 0x10,
+};
+static const unsigned char kat954_addin1[] = {
+ 0x72, 0x3c, 0x7d, 0x85, 0xcb, 0x1f, 0xd5, 0xa1, 0xcd, 0x18, 0x4d, 0x0c,
+ 0x85, 0x39, 0xc1, 0xe5, 0x74, 0x15, 0xc8, 0xf3, 0x7e, 0xab, 0x76, 0x41,
+ 0x4d, 0x58, 0x49, 0xfc, 0x00, 0xa4, 0x5c, 0x21,
+};
+static const unsigned char kat954_retbits[] = {
+ 0x40, 0x88, 0x8d, 0x83, 0x95, 0x85, 0xcc, 0xe4, 0x66, 0x42, 0xcf, 0xc4,
+ 0x64, 0x2c, 0x17, 0x07, 0xda, 0x64, 0xba, 0xa6, 0x7d, 0x67, 0x25, 0x0c,
+ 0x55, 0x38, 0xe9, 0x89, 0x6c, 0x98, 0xed, 0x0f, 0x35, 0xdc, 0x9b, 0xc0,
+ 0x4c, 0xdb, 0x34, 0x95, 0x10, 0x8b, 0xbe, 0xb4, 0xde, 0x81, 0x4a, 0x11,
+ 0x5b, 0x37, 0x4e, 0xa4, 0x69, 0xf0, 0x19, 0x84, 0x8a, 0xa1, 0xc2, 0x36,
+ 0xa8, 0xc3, 0x64, 0xdb,
+};
+static const struct drbg_kat_no_reseed kat954_t = {
+ 8, kat954_entropyin, kat954_nonce, kat954_persstr,
+ kat954_addin0, kat954_addin1, kat954_retbits
+};
+static const struct drbg_kat kat954 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat954_t
+};
+
+static const unsigned char kat955_entropyin[] = {
+ 0xb3, 0x37, 0x58, 0xe3, 0x05, 0x47, 0x1b, 0x87, 0x46, 0x4e, 0xfd, 0x41,
+ 0x2a, 0x46, 0xd7, 0x25, 0xae, 0x5b, 0x12, 0x2a, 0xcb, 0xff, 0x2e, 0xec,
+ 0x04, 0x27, 0x4c, 0x60, 0xb4, 0xdb, 0x7f, 0xe9,
+};
+static const unsigned char kat955_nonce[] = {0};
+static const unsigned char kat955_persstr[] = {
+ 0x07, 0x42, 0xec, 0x33, 0xd5, 0x70, 0x9b, 0x95, 0xba, 0x5f, 0xfa, 0x4d,
+ 0x75, 0xcc, 0x81, 0xa8, 0xd5, 0xc7, 0x9d, 0x70, 0x41, 0xff, 0x81, 0xc9,
+ 0xaf, 0x85, 0xf7, 0x28, 0x04, 0x74, 0x54, 0xa5,
+};
+static const unsigned char kat955_addin0[] = {
+ 0xbc, 0x73, 0x1f, 0xda, 0xb1, 0xfe, 0x45, 0x84, 0xcf, 0xc4, 0xd2, 0x61,
+ 0xfc, 0xee, 0x0b, 0x02, 0x29, 0xec, 0x96, 0x1a, 0xf2, 0x0c, 0xfd, 0x14,
+ 0x06, 0x9a, 0x1f, 0xff, 0x48, 0x73, 0x6c, 0x28,
+};
+static const unsigned char kat955_addin1[] = {
+ 0x2c, 0xe2, 0xff, 0x0b, 0xc7, 0xc3, 0x79, 0x66, 0x60, 0x80, 0x6a, 0xdc,
+ 0xfb, 0x3e, 0x49, 0x5f, 0x9b, 0x1f, 0xb9, 0x4d, 0x64, 0x52, 0xb8, 0x44,
+ 0x37, 0xcb, 0x97, 0x2c, 0xdd, 0x48, 0xc9, 0xdb,
+};
+static const unsigned char kat955_retbits[] = {
+ 0x9c, 0x6f, 0xdd, 0xf4, 0xd8, 0xfd, 0xa2, 0x64, 0x11, 0x53, 0x46, 0x49,
+ 0x94, 0x89, 0x23, 0x16, 0xd4, 0xc5, 0x74, 0xba, 0xdd, 0xed, 0x64, 0x66,
+ 0xa5, 0x53, 0x5e, 0x36, 0x29, 0xe0, 0x42, 0xbe, 0x35, 0xc6, 0xf0, 0x1b,
+ 0xb2, 0x30, 0x70, 0x8f, 0x93, 0x4b, 0x52, 0x60, 0xd0, 0xe3, 0x1d, 0x33,
+ 0xa7, 0x11, 0x70, 0x28, 0x7f, 0x14, 0x8b, 0xed, 0x2b, 0xeb, 0x6a, 0xbd,
+ 0x57, 0xe1, 0xe2, 0xa2,
+};
+static const struct drbg_kat_no_reseed kat955_t = {
+ 9, kat955_entropyin, kat955_nonce, kat955_persstr,
+ kat955_addin0, kat955_addin1, kat955_retbits
+};
+static const struct drbg_kat kat955 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat955_t
+};
+
+static const unsigned char kat956_entropyin[] = {
+ 0x28, 0x56, 0xac, 0x3c, 0xff, 0xae, 0x8f, 0x23, 0x57, 0x5a, 0x10, 0x21,
+ 0xf1, 0xb3, 0x93, 0x65, 0xb6, 0x71, 0xab, 0x4c, 0xcf, 0xbf, 0xb9, 0x39,
+ 0x6e, 0xc0, 0xf1, 0xad, 0xe2, 0x61, 0xe1, 0xfb,
+};
+static const unsigned char kat956_nonce[] = {0};
+static const unsigned char kat956_persstr[] = {
+ 0xa8, 0x10, 0x44, 0x56, 0x97, 0xe5, 0x05, 0xac, 0x0a, 0x9e, 0xdf, 0x58,
+ 0xce, 0xb3, 0xa0, 0x88, 0x95, 0x30, 0xe9, 0xc7, 0x75, 0x7a, 0x2b, 0x8b,
+ 0xe8, 0x8c, 0x52, 0xc8, 0x1d, 0xfb, 0x0d, 0x32,
+};
+static const unsigned char kat956_addin0[] = {
+ 0xe1, 0xf3, 0x95, 0x83, 0x54, 0xc6, 0x6a, 0x0c, 0xd1, 0xc0, 0xac, 0x4c,
+ 0xa8, 0x64, 0x85, 0x24, 0xb7, 0x5b, 0xbb, 0x67, 0x73, 0xc9, 0xa7, 0x51,
+ 0xec, 0x9d, 0xc9, 0x29, 0x57, 0x42, 0x00, 0x84,
+};
+static const unsigned char kat956_addin1[] = {
+ 0x8f, 0x3b, 0xb3, 0x13, 0xc3, 0x56, 0x66, 0xab, 0xbe, 0x27, 0x9b, 0x2e,
+ 0xc4, 0x5d, 0xa5, 0xcd, 0x41, 0xc4, 0x0f, 0x3d, 0x93, 0x89, 0xf4, 0x78,
+ 0xd7, 0xa2, 0x23, 0xcf, 0x73, 0x83, 0x9b, 0x71,
+};
+static const unsigned char kat956_retbits[] = {
+ 0x04, 0x8e, 0x37, 0xf4, 0x3f, 0x1f, 0xe8, 0x78, 0xa9, 0xad, 0xd9, 0xaa,
+ 0xee, 0x37, 0x71, 0x22, 0x97, 0xd9, 0xd3, 0xc4, 0x62, 0x65, 0xb2, 0x27,
+ 0x21, 0xeb, 0x50, 0x7c, 0x60, 0x1a, 0x52, 0xae, 0x54, 0x95, 0x2f, 0x88,
+ 0x0c, 0xae, 0xf6, 0xea, 0x5c, 0x5d, 0xde, 0xd8, 0xc8, 0xd7, 0xf0, 0x94,
+ 0x18, 0xca, 0xf3, 0x24, 0xff, 0xa4, 0xfd, 0x99, 0xcb, 0xec, 0x48, 0x4a,
+ 0x79, 0x89, 0x6c, 0x7e,
+};
+static const struct drbg_kat_no_reseed kat956_t = {
+ 10, kat956_entropyin, kat956_nonce, kat956_persstr,
+ kat956_addin0, kat956_addin1, kat956_retbits
+};
+static const struct drbg_kat kat956 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat956_t
+};
+
+static const unsigned char kat957_entropyin[] = {
+ 0x80, 0x85, 0xbc, 0x19, 0xcc, 0x02, 0x55, 0x8e, 0x7e, 0x70, 0x4b, 0xca,
+ 0x1a, 0x79, 0xde, 0x7d, 0x53, 0x2a, 0x9f, 0x85, 0xfd, 0x65, 0x0b, 0x86,
+ 0x14, 0xb4, 0xd0, 0xbf, 0x03, 0x17, 0x27, 0xd1,
+};
+static const unsigned char kat957_nonce[] = {0};
+static const unsigned char kat957_persstr[] = {
+ 0x66, 0xec, 0x26, 0xed, 0x7c, 0x8a, 0x16, 0x89, 0xd1, 0x46, 0x0d, 0x06,
+ 0x87, 0x5d, 0x7d, 0xdb, 0xa2, 0xde, 0xe5, 0xd8, 0xed, 0xc5, 0x09, 0xb9,
+ 0x8c, 0x97, 0x2a, 0x65, 0xab, 0x90, 0xb7, 0x2c,
+};
+static const unsigned char kat957_addin0[] = {
+ 0xdb, 0x50, 0x6e, 0x35, 0x73, 0x0e, 0x4f, 0x5f, 0xaa, 0x68, 0x9f, 0xd1,
+ 0x5b, 0x88, 0x51, 0xdc, 0x4d, 0xbf, 0xcf, 0x64, 0xb8, 0x4f, 0xc0, 0xfb,
+ 0x3d, 0xc1, 0x39, 0x0b, 0x3a, 0x86, 0x76, 0x55,
+};
+static const unsigned char kat957_addin1[] = {
+ 0xe1, 0x99, 0x06, 0xf2, 0x0b, 0x43, 0x22, 0xfd, 0xb4, 0xcb, 0xf1, 0xa5,
+ 0x1c, 0xa8, 0x26, 0x93, 0x35, 0xed, 0xd7, 0x20, 0xe1, 0x3d, 0x79, 0xe9,
+ 0x17, 0xb3, 0xdb, 0x0e, 0x04, 0xde, 0x7b, 0x7a,
+};
+static const unsigned char kat957_retbits[] = {
+ 0x4a, 0x01, 0xe8, 0x6a, 0x5f, 0x05, 0x52, 0xd4, 0xf2, 0x0c, 0x27, 0x33,
+ 0x91, 0x53, 0x3f, 0xfb, 0x23, 0x83, 0x81, 0x24, 0x30, 0x01, 0xcd, 0x34,
+ 0xdc, 0x01, 0x1b, 0x2f, 0x83, 0xcc, 0x79, 0xa6, 0xeb, 0x85, 0x07, 0x24,
+ 0x10, 0xe8, 0x37, 0x46, 0xe8, 0x31, 0x8c, 0xce, 0xb2, 0x92, 0xb6, 0x10,
+ 0x3d, 0x83, 0x00, 0x85, 0x4a, 0x73, 0xb3, 0x4b, 0x97, 0x01, 0xa5, 0x26,
+ 0xb1, 0xe1, 0x4c, 0xc9,
+};
+static const struct drbg_kat_no_reseed kat957_t = {
+ 11, kat957_entropyin, kat957_nonce, kat957_persstr,
+ kat957_addin0, kat957_addin1, kat957_retbits
+};
+static const struct drbg_kat kat957 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat957_t
+};
+
+static const unsigned char kat958_entropyin[] = {
+ 0x47, 0x54, 0x58, 0x92, 0x8a, 0x2c, 0xf4, 0xde, 0x75, 0x29, 0x68, 0xa7,
+ 0x6b, 0xb7, 0x0a, 0x00, 0xeb, 0x4f, 0xc1, 0x05, 0xae, 0xca, 0xa2, 0x9c,
+ 0x68, 0x59, 0xbd, 0x6a, 0x50, 0x16, 0x8a, 0x52,
+};
+static const unsigned char kat958_nonce[] = {0};
+static const unsigned char kat958_persstr[] = {
+ 0x71, 0x2e, 0x52, 0x94, 0xb5, 0x4b, 0xbd, 0xf8, 0x92, 0x36, 0x54, 0x66,
+ 0x0b, 0x1b, 0x6e, 0x0e, 0x66, 0x40, 0xf3, 0x98, 0x81, 0x2e, 0xeb, 0x00,
+ 0x16, 0xda, 0x4f, 0x26, 0x59, 0x8a, 0xaa, 0xdd,
+};
+static const unsigned char kat958_addin0[] = {
+ 0xe4, 0xce, 0x3c, 0x57, 0x92, 0xfc, 0x12, 0xe9, 0x67, 0x32, 0xb4, 0xfa,
+ 0xe9, 0x91, 0x8c, 0x13, 0x2e, 0xb3, 0xaf, 0x41, 0x42, 0xcd, 0xdb, 0x96,
+ 0xc8, 0xa2, 0x44, 0x84, 0x58, 0xba, 0x7c, 0xa5,
+};
+static const unsigned char kat958_addin1[] = {
+ 0x0a, 0x84, 0x95, 0xe9, 0x75, 0xbf, 0xfc, 0x3e, 0xec, 0x8e, 0x71, 0xdd,
+ 0xc9, 0x34, 0xdb, 0x19, 0xf2, 0xd1, 0x57, 0x50, 0xcb, 0x4a, 0x0b, 0xb2,
+ 0xab, 0x12, 0x9f, 0xcb, 0x7d, 0xa2, 0xb3, 0x7b,
+};
+static const unsigned char kat958_retbits[] = {
+ 0x10, 0x16, 0xba, 0x86, 0x0d, 0xc6, 0x0b, 0x59, 0xe1, 0x2b, 0x64, 0xef,
+ 0xd7, 0x8a, 0x30, 0xe4, 0xd3, 0xf0, 0xaf, 0x5f, 0xaa, 0xe6, 0xe4, 0x58,
+ 0x84, 0xc1, 0x85, 0xfe, 0xe0, 0x31, 0x5d, 0xaf, 0xdb, 0x98, 0xd2, 0x44,
+ 0xcf, 0x6c, 0x3a, 0xb8, 0xd6, 0x2d, 0x8d, 0x3d, 0x01, 0x5a, 0xf5, 0x3d,
+ 0xc6, 0xf0, 0xc2, 0x5d, 0x0c, 0x25, 0x48, 0x01, 0xff, 0x60, 0x0f, 0xa4,
+ 0xe8, 0xcd, 0x08, 0xd3,
+};
+static const struct drbg_kat_no_reseed kat958_t = {
+ 12, kat958_entropyin, kat958_nonce, kat958_persstr,
+ kat958_addin0, kat958_addin1, kat958_retbits
+};
+static const struct drbg_kat kat958 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat958_t
+};
+
+static const unsigned char kat959_entropyin[] = {
+ 0x9d, 0x6b, 0x6f, 0xad, 0x86, 0xa5, 0xa5, 0x28, 0xcb, 0xd3, 0x46, 0x94,
+ 0x9e, 0x85, 0x41, 0xe3, 0x9c, 0x62, 0xa2, 0x34, 0x41, 0x3b, 0x15, 0x0c,
+ 0x3b, 0x6e, 0x3c, 0xf5, 0x25, 0x18, 0x57, 0xf5,
+};
+static const unsigned char kat959_nonce[] = {0};
+static const unsigned char kat959_persstr[] = {
+ 0xce, 0x19, 0x85, 0x1b, 0xb5, 0xc7, 0x2a, 0xcd, 0xf8, 0x60, 0x95, 0x2d,
+ 0xe6, 0x05, 0x22, 0x7e, 0x81, 0x80, 0x3d, 0x44, 0x48, 0x5f, 0xbd, 0x00,
+ 0xff, 0x87, 0xcc, 0x80, 0xeb, 0x17, 0x58, 0xb9,
+};
+static const unsigned char kat959_addin0[] = {
+ 0x39, 0x50, 0xa8, 0x9a, 0xc6, 0xcf, 0x27, 0xd8, 0x26, 0x42, 0xef, 0x05,
+ 0x4a, 0x5a, 0xeb, 0x9f, 0x93, 0x10, 0x56, 0x84, 0xcd, 0xe4, 0xac, 0xd2,
+ 0x89, 0x94, 0x63, 0x60, 0xde, 0x78, 0x7a, 0x4f,
+};
+static const unsigned char kat959_addin1[] = {
+ 0x67, 0xc8, 0x3a, 0x5c, 0xac, 0x25, 0xd2, 0x8b, 0x8b, 0x16, 0xe8, 0xb9,
+ 0xb4, 0xfa, 0x7d, 0x09, 0xd9, 0x76, 0x57, 0x34, 0x20, 0xbf, 0xb0, 0x92,
+ 0xfe, 0xf7, 0x9f, 0xc4, 0xb6, 0xe8, 0x31, 0x10,
+};
+static const unsigned char kat959_retbits[] = {
+ 0x19, 0x98, 0xdd, 0x01, 0x33, 0x70, 0x17, 0x43, 0xff, 0x6c, 0xba, 0xfd,
+ 0x05, 0x19, 0x01, 0x93, 0xef, 0x65, 0x04, 0xdf, 0xc5, 0xee, 0x8f, 0x8f,
+ 0xb3, 0x14, 0x77, 0x6b, 0x65, 0x67, 0xca, 0x84, 0x83, 0x0d, 0x2e, 0xd3,
+ 0x15, 0xd6, 0xb5, 0x04, 0xb8, 0xab, 0x80, 0xe7, 0x2c, 0xd7, 0x3b, 0x09,
+ 0x18, 0x0e, 0x0b, 0x6f, 0x9f, 0x19, 0x49, 0x7b, 0x72, 0xe9, 0xcd, 0x6b,
+ 0x6a, 0xbd, 0x06, 0x77,
+};
+static const struct drbg_kat_no_reseed kat959_t = {
+ 13, kat959_entropyin, kat959_nonce, kat959_persstr,
+ kat959_addin0, kat959_addin1, kat959_retbits
+};
+static const struct drbg_kat kat959 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat959_t
+};
+
+static const unsigned char kat960_entropyin[] = {
+ 0x22, 0x54, 0x60, 0x44, 0xdf, 0x54, 0xe2, 0xbf, 0xe7, 0x46, 0x93, 0x18,
+ 0xc5, 0x7c, 0x15, 0x9d, 0x0f, 0x25, 0xa5, 0x8b, 0xcf, 0x4f, 0xbe, 0x70,
+ 0xae, 0x21, 0x4b, 0x66, 0x9b, 0x2e, 0x63, 0x14,
+};
+static const unsigned char kat960_nonce[] = {0};
+static const unsigned char kat960_persstr[] = {
+ 0x28, 0xcf, 0x3c, 0xa7, 0xdf, 0x24, 0xcd, 0x72, 0x70, 0x4c, 0xc7, 0x3b,
+ 0x4a, 0x61, 0x8c, 0xad, 0xb6, 0xac, 0x93, 0xf2, 0x16, 0x8c, 0x47, 0x9c,
+ 0x35, 0x8d, 0xe1, 0x90, 0x7c, 0x0a, 0x0c, 0x82,
+};
+static const unsigned char kat960_addin0[] = {
+ 0x36, 0x55, 0x1e, 0xf0, 0x92, 0x32, 0xd2, 0x19, 0x95, 0x47, 0xaa, 0xef,
+ 0xec, 0xaa, 0xad, 0x21, 0x74, 0x43, 0xd6, 0x16, 0x43, 0x3d, 0x9d, 0x16,
+ 0x9b, 0xd8, 0xcd, 0x3e, 0xae, 0x7f, 0x91, 0xe2,
+};
+static const unsigned char kat960_addin1[] = {
+ 0x9e, 0x57, 0xa4, 0xe9, 0x6a, 0xce, 0x48, 0x3d, 0xbc, 0x3c, 0x22, 0x6d,
+ 0x27, 0x23, 0xc9, 0x25, 0x80, 0x63, 0x27, 0x81, 0x40, 0xd2, 0x20, 0xc4,
+ 0xfd, 0x02, 0x3c, 0x77, 0xfb, 0x20, 0xb8, 0x4c,
+};
+static const unsigned char kat960_retbits[] = {
+ 0xca, 0x43, 0xdc, 0xec, 0xda, 0xb6, 0x89, 0x54, 0x9b, 0xc4, 0x49, 0x3a,
+ 0x38, 0xa6, 0xa0, 0x17, 0xf6, 0x04, 0x82, 0x70, 0xe5, 0xd7, 0x0d, 0x0d,
+ 0x75, 0x76, 0xa2, 0xab, 0x76, 0x4d, 0x92, 0x2b, 0xc3, 0x46, 0xe3, 0x0f,
+ 0x42, 0xdc, 0x5a, 0x73, 0xea, 0x6a, 0x21, 0x0d, 0x2e, 0xba, 0x9b, 0xee,
+ 0x5b, 0x5a, 0xfe, 0x3c, 0x66, 0x86, 0x7a, 0x68, 0xab, 0x3f, 0xe0, 0xd0,
+ 0x8f, 0x51, 0x11, 0x01,
+};
+static const struct drbg_kat_no_reseed kat960_t = {
+ 14, kat960_entropyin, kat960_nonce, kat960_persstr,
+ kat960_addin0, kat960_addin1, kat960_retbits
+};
+static const struct drbg_kat kat960 = {
+ NO_RESEED, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat960_t
+};
+
+static const unsigned char kat961_entropyin[] = {
+ 0xf1, 0xef, 0x7e, 0xb3, 0x11, 0xc8, 0x50, 0xe1, 0x89, 0xbe, 0x22, 0x9d,
+ 0xf7, 0xe6, 0xd6, 0x8f, 0x17, 0x95, 0xaa, 0x8e, 0x21, 0xd9, 0x35, 0x04,
+ 0xe7, 0x5a, 0xbe, 0x78, 0xf0, 0x41, 0x39, 0x58, 0x73, 0x54, 0x03, 0x86,
+ 0x81, 0x2a, 0x9a, 0x2a,
+};
+static const unsigned char kat961_nonce[] = {0};
+static const unsigned char kat961_persstr[] = {0};
+static const unsigned char kat961_addin0[] = {0};
+static const unsigned char kat961_addin1[] = {0};
+static const unsigned char kat961_retbits[] = {
+ 0x6b, 0xb0, 0xaa, 0x5b, 0x4b, 0x97, 0xee, 0x83, 0x76, 0x57, 0x36, 0xad,
+ 0x0e, 0x90, 0x68, 0xdf, 0xef, 0x0c, 0xcf, 0xc9, 0x3b, 0x71, 0xc1, 0xd3,
+ 0x42, 0x53, 0x02, 0xef, 0x7b, 0xa4, 0x63, 0x5f, 0xfc, 0x09, 0x98, 0x1d,
+ 0x26, 0x21, 0x77, 0xe2, 0x08, 0xa7, 0xec, 0x90, 0xa5, 0x57, 0xb6, 0xd7,
+ 0x61, 0x12, 0xd5, 0x6c, 0x40, 0x89, 0x38, 0x92, 0xc3, 0x03, 0x48, 0x35,
+ 0x03, 0x6d, 0x7a, 0x69,
+};
+static const struct drbg_kat_no_reseed kat961_t = {
+ 0, kat961_entropyin, kat961_nonce, kat961_persstr,
+ kat961_addin0, kat961_addin1, kat961_retbits
+};
+static const struct drbg_kat kat961 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat961_t
+};
+
+static const unsigned char kat962_entropyin[] = {
+ 0x81, 0x8d, 0x5b, 0x46, 0x0c, 0xf0, 0xe1, 0x8f, 0xaf, 0x24, 0x41, 0xc9,
+ 0x7e, 0xef, 0x12, 0xeb, 0xa4, 0xec, 0xa4, 0xbe, 0x95, 0xa2, 0x77, 0xc4,
+ 0xf7, 0xca, 0x90, 0x4d, 0xa1, 0x98, 0x1c, 0xb9, 0x05, 0xa2, 0x90, 0x60,
+ 0x1d, 0xb8, 0xb6, 0x77,
+};
+static const unsigned char kat962_nonce[] = {0};
+static const unsigned char kat962_persstr[] = {0};
+static const unsigned char kat962_addin0[] = {0};
+static const unsigned char kat962_addin1[] = {0};
+static const unsigned char kat962_retbits[] = {
+ 0x6f, 0xd7, 0x54, 0x98, 0xe5, 0xf3, 0x8c, 0x40, 0xe7, 0x2a, 0x0a, 0x3c,
+ 0x2e, 0x22, 0x47, 0xca, 0x13, 0x39, 0x31, 0xbf, 0xed, 0x42, 0x37, 0xf0,
+ 0xc9, 0xa1, 0x9f, 0x6b, 0xbf, 0x6a, 0xb8, 0x38, 0x1f, 0x92, 0x71, 0x33,
+ 0x7f, 0x6d, 0xe6, 0xaf, 0x53, 0xd7, 0xd5, 0xf6, 0x72, 0x57, 0xfc, 0xe6,
+ 0xbc, 0x8e, 0x60, 0x2a, 0xf8, 0xb9, 0x84, 0x4f, 0x04, 0x3c, 0x78, 0xf2,
+ 0xd2, 0x4e, 0x4f, 0xfb,
+};
+static const struct drbg_kat_no_reseed kat962_t = {
+ 1, kat962_entropyin, kat962_nonce, kat962_persstr,
+ kat962_addin0, kat962_addin1, kat962_retbits
+};
+static const struct drbg_kat kat962 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat962_t
+};
+
+static const unsigned char kat963_entropyin[] = {
+ 0xe4, 0x5d, 0xc4, 0x11, 0x3f, 0x01, 0xb5, 0x89, 0xe5, 0x03, 0xe7, 0xc5,
+ 0x8f, 0x6a, 0x7c, 0x91, 0x0d, 0x8a, 0x34, 0x58, 0xb7, 0x1f, 0xb3, 0x22,
+ 0xbb, 0xbf, 0xee, 0x17, 0x5e, 0x15, 0x06, 0x0b, 0x27, 0x8a, 0xe6, 0x92,
+ 0xfb, 0x39, 0xd4, 0x6e,
+};
+static const unsigned char kat963_nonce[] = {0};
+static const unsigned char kat963_persstr[] = {0};
+static const unsigned char kat963_addin0[] = {0};
+static const unsigned char kat963_addin1[] = {0};
+static const unsigned char kat963_retbits[] = {
+ 0x65, 0xc6, 0x96, 0xc8, 0xcd, 0x52, 0x49, 0x77, 0xea, 0xef, 0x54, 0xb5,
+ 0xf7, 0x59, 0x6f, 0x84, 0xd9, 0x68, 0x1e, 0xfc, 0x7f, 0xee, 0x5a, 0x41,
+ 0xc1, 0x47, 0x9c, 0x04, 0xb1, 0x81, 0x75, 0xe2, 0xec, 0x02, 0x96, 0xc9,
+ 0x77, 0x7c, 0xe4, 0x60, 0xeb, 0xb6, 0xe2, 0xc5, 0x06, 0x30, 0x31, 0x42,
+ 0x02, 0x58, 0x39, 0x1c, 0x70, 0xf5, 0x92, 0x6b, 0xe1, 0x15, 0x03, 0x5d,
+ 0xd9, 0x51, 0x55, 0xbb,
+};
+static const struct drbg_kat_no_reseed kat963_t = {
+ 2, kat963_entropyin, kat963_nonce, kat963_persstr,
+ kat963_addin0, kat963_addin1, kat963_retbits
+};
+static const struct drbg_kat kat963 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat963_t
+};
+
+static const unsigned char kat964_entropyin[] = {
+ 0x6f, 0x1c, 0xce, 0x67, 0xd7, 0xb6, 0x37, 0x4d, 0x3c, 0x0f, 0x08, 0x4b,
+ 0xca, 0xd9, 0xdb, 0xd4, 0x5d, 0x6e, 0x50, 0xb9, 0x89, 0x89, 0x1a, 0x57,
+ 0x82, 0x71, 0x9a, 0x7b, 0xa0, 0xa9, 0xc3, 0xc2, 0x1f, 0x06, 0x77, 0x3e,
+ 0x76, 0x7a, 0x97, 0x31,
+};
+static const unsigned char kat964_nonce[] = {0};
+static const unsigned char kat964_persstr[] = {0};
+static const unsigned char kat964_addin0[] = {0};
+static const unsigned char kat964_addin1[] = {0};
+static const unsigned char kat964_retbits[] = {
+ 0x61, 0x9d, 0x8d, 0x8a, 0x12, 0x13, 0xf3, 0x56, 0x60, 0x88, 0x5d, 0xe1,
+ 0xee, 0xf5, 0x92, 0x86, 0x9a, 0xea, 0x27, 0xa6, 0x1e, 0x79, 0x1a, 0x0c,
+ 0xb4, 0xfa, 0x5a, 0x68, 0x39, 0xf4, 0xf2, 0xa7, 0xfe, 0x4d, 0xe5, 0x24,
+ 0xc9, 0x8f, 0x12, 0x1b, 0x06, 0x52, 0x48, 0xf2, 0xc3, 0xbd, 0xe6, 0x50,
+ 0x93, 0x34, 0xea, 0xfe, 0xbc, 0xd5, 0x0e, 0x77, 0x21, 0xfd, 0x80, 0x80,
+ 0xf5, 0x0d, 0x00, 0xf7,
+};
+static const struct drbg_kat_no_reseed kat964_t = {
+ 3, kat964_entropyin, kat964_nonce, kat964_persstr,
+ kat964_addin0, kat964_addin1, kat964_retbits
+};
+static const struct drbg_kat kat964 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat964_t
+};
+
+static const unsigned char kat965_entropyin[] = {
+ 0x40, 0xef, 0xaa, 0x49, 0x98, 0x6a, 0xa9, 0x0e, 0x98, 0xf3, 0xb8, 0x4a,
+ 0x7d, 0x21, 0x28, 0x27, 0xd2, 0x15, 0xaf, 0x86, 0x15, 0x63, 0xe4, 0xe2,
+ 0xb7, 0xae, 0xfb, 0x8b, 0xb4, 0xf2, 0x74, 0x84, 0x8b, 0xd0, 0x7a, 0xf0,
+ 0x4d, 0xfb, 0xb9, 0x98,
+};
+static const unsigned char kat965_nonce[] = {0};
+static const unsigned char kat965_persstr[] = {0};
+static const unsigned char kat965_addin0[] = {0};
+static const unsigned char kat965_addin1[] = {0};
+static const unsigned char kat965_retbits[] = {
+ 0x44, 0xba, 0xb6, 0x94, 0x29, 0xd1, 0x96, 0x00, 0xa3, 0x10, 0x30, 0x21,
+ 0x66, 0x78, 0x84, 0x91, 0x8a, 0x45, 0x55, 0x07, 0xda, 0x16, 0x6e, 0xbe,
+ 0x7c, 0xbe, 0x03, 0xbb, 0xad, 0x90, 0x49, 0x38, 0x65, 0x9a, 0x9a, 0x27,
+ 0xdf, 0x6c, 0xa4, 0xa1, 0x67, 0x59, 0x7e, 0x74, 0xb0, 0x5a, 0x2e, 0xd3,
+ 0x0b, 0x92, 0x65, 0x36, 0xb4, 0x1d, 0x03, 0xaa, 0x68, 0xb3, 0xea, 0xb1,
+ 0xf2, 0x33, 0x15, 0xa7,
+};
+static const struct drbg_kat_no_reseed kat965_t = {
+ 4, kat965_entropyin, kat965_nonce, kat965_persstr,
+ kat965_addin0, kat965_addin1, kat965_retbits
+};
+static const struct drbg_kat kat965 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat965_t
+};
+
+static const unsigned char kat966_entropyin[] = {
+ 0xf2, 0xb9, 0xf3, 0x7f, 0x53, 0xdd, 0xe8, 0x7a, 0x03, 0xf4, 0x18, 0x4e,
+ 0x9f, 0x25, 0x0e, 0xe6, 0x02, 0xb6, 0x1c, 0x29, 0x4e, 0xa3, 0x21, 0x4d,
+ 0x94, 0x9f, 0x7b, 0x55, 0x64, 0xc9, 0x62, 0xcb, 0xdc, 0x70, 0xa6, 0xf8,
+ 0x1e, 0xf6, 0x6a, 0x5d,
+};
+static const unsigned char kat966_nonce[] = {0};
+static const unsigned char kat966_persstr[] = {0};
+static const unsigned char kat966_addin0[] = {0};
+static const unsigned char kat966_addin1[] = {0};
+static const unsigned char kat966_retbits[] = {
+ 0xb0, 0x40, 0x9f, 0xc5, 0x1b, 0x5d, 0x25, 0x5d, 0x0b, 0x7a, 0x1f, 0xed,
+ 0x2a, 0x60, 0x67, 0x8b, 0x35, 0xc6, 0x4d, 0xf7, 0x79, 0xd0, 0xcf, 0xba,
+ 0x95, 0x43, 0x92, 0x4e, 0x75, 0x52, 0xbc, 0x6d, 0x9b, 0xf4, 0x6e, 0xce,
+ 0xdc, 0xef, 0xe9, 0x16, 0x01, 0x6f, 0xb5, 0xdb, 0xd2, 0x37, 0xa4, 0x50,
+ 0xf5, 0x40, 0x68, 0xb1, 0x4c, 0x67, 0xf4, 0x73, 0xd8, 0xf6, 0xdf, 0x08,
+ 0x28, 0x52, 0xb1, 0x5b,
+};
+static const struct drbg_kat_no_reseed kat966_t = {
+ 5, kat966_entropyin, kat966_nonce, kat966_persstr,
+ kat966_addin0, kat966_addin1, kat966_retbits
+};
+static const struct drbg_kat kat966 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat966_t
+};
+
+static const unsigned char kat967_entropyin[] = {
+ 0x7f, 0xbb, 0xba, 0x28, 0x45, 0xdd, 0xe1, 0x8c, 0x0b, 0xfa, 0x21, 0x5f,
+ 0x83, 0x70, 0x59, 0xcc, 0xf4, 0x77, 0xce, 0xca, 0xcb, 0x88, 0x45, 0x2d,
+ 0x61, 0xca, 0x3b, 0xe2, 0x7b, 0x7d, 0xde, 0x56, 0x37, 0xc4, 0x85, 0x3e,
+ 0xd1, 0xc7, 0x29, 0xdf,
+};
+static const unsigned char kat967_nonce[] = {0};
+static const unsigned char kat967_persstr[] = {0};
+static const unsigned char kat967_addin0[] = {0};
+static const unsigned char kat967_addin1[] = {0};
+static const unsigned char kat967_retbits[] = {
+ 0x05, 0xb6, 0xa3, 0x6d, 0xb2, 0x4c, 0x06, 0x9e, 0xf5, 0x83, 0x51, 0x48,
+ 0x82, 0x45, 0x1f, 0xcf, 0x30, 0x42, 0xf8, 0x30, 0x63, 0xec, 0x03, 0xb0,
+ 0xdc, 0x83, 0x22, 0x1c, 0x8f, 0x0d, 0xce, 0xa9, 0x0f, 0x76, 0x92, 0xa8,
+ 0x89, 0x45, 0xc1, 0xd2, 0x8f, 0xd6, 0x21, 0x8a, 0x67, 0x57, 0xae, 0x66,
+ 0x5a, 0x21, 0xd1, 0x49, 0xb7, 0xba, 0xb4, 0x96, 0xf6, 0xe1, 0x06, 0x6c,
+ 0xcf, 0x1f, 0xbd, 0xb7,
+};
+static const struct drbg_kat_no_reseed kat967_t = {
+ 6, kat967_entropyin, kat967_nonce, kat967_persstr,
+ kat967_addin0, kat967_addin1, kat967_retbits
+};
+static const struct drbg_kat kat967 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat967_t
+};
+
+static const unsigned char kat968_entropyin[] = {
+ 0x2f, 0x85, 0xae, 0x86, 0xc3, 0x8a, 0x54, 0x68, 0x97, 0xa8, 0x2f, 0xd2,
+ 0x20, 0x49, 0x60, 0x99, 0xc9, 0x4b, 0x81, 0xa6, 0x5a, 0x2b, 0xd5, 0xa2,
+ 0xd6, 0xe6, 0x6b, 0x17, 0x28, 0xef, 0xd5, 0xe2, 0xa9, 0x9a, 0xf8, 0x50,
+ 0xa1, 0x7c, 0x08, 0x9b,
+};
+static const unsigned char kat968_nonce[] = {0};
+static const unsigned char kat968_persstr[] = {0};
+static const unsigned char kat968_addin0[] = {0};
+static const unsigned char kat968_addin1[] = {0};
+static const unsigned char kat968_retbits[] = {
+ 0x30, 0xb5, 0x5d, 0x02, 0xb0, 0xfd, 0xcc, 0x1f, 0x37, 0x5c, 0xe1, 0xf2,
+ 0x29, 0xf5, 0x4e, 0x7c, 0xb8, 0x91, 0xf3, 0x55, 0x1e, 0xbd, 0x3c, 0x74,
+ 0x73, 0xe6, 0x10, 0x8f, 0x87, 0x65, 0x5b, 0x8c, 0x10, 0x13, 0x7e, 0x77,
+ 0x0a, 0xd5, 0x46, 0x6c, 0x61, 0xc1, 0x21, 0xdd, 0x48, 0x9c, 0x2b, 0x8f,
+ 0xe4, 0x50, 0x6b, 0x0c, 0x90, 0xdd, 0x49, 0x7e, 0x00, 0x52, 0x88, 0xff,
+ 0x1a, 0x03, 0x00, 0x52,
+};
+static const struct drbg_kat_no_reseed kat968_t = {
+ 7, kat968_entropyin, kat968_nonce, kat968_persstr,
+ kat968_addin0, kat968_addin1, kat968_retbits
+};
+static const struct drbg_kat kat968 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat968_t
+};
+
+static const unsigned char kat969_entropyin[] = {
+ 0x15, 0xbd, 0x0f, 0x42, 0xca, 0x57, 0xba, 0xeb, 0xa4, 0x4c, 0x71, 0xc6,
+ 0x9b, 0xbf, 0x29, 0x9c, 0x5d, 0x8b, 0xc0, 0x52, 0xc0, 0xd9, 0x84, 0x29,
+ 0xa0, 0x79, 0x4f, 0x15, 0xd2, 0xc1, 0xc6, 0x73, 0x01, 0x8b, 0xf9, 0xe4,
+ 0xe6, 0xb3, 0x8a, 0x53,
+};
+static const unsigned char kat969_nonce[] = {0};
+static const unsigned char kat969_persstr[] = {0};
+static const unsigned char kat969_addin0[] = {0};
+static const unsigned char kat969_addin1[] = {0};
+static const unsigned char kat969_retbits[] = {
+ 0x5e, 0x57, 0x71, 0x80, 0xd6, 0x45, 0x4e, 0x58, 0x5c, 0x72, 0x57, 0x2e,
+ 0xa1, 0x45, 0x1c, 0x28, 0xd0, 0x50, 0x6e, 0xcd, 0xec, 0xc6, 0x6f, 0x20,
+ 0xf5, 0x7b, 0x57, 0xd7, 0x39, 0xd8, 0x93, 0x84, 0x19, 0x0f, 0x9e, 0x97,
+ 0xae, 0x02, 0x56, 0xcb, 0x62, 0x56, 0xd7, 0x70, 0x3d, 0x3d, 0xa0, 0xb1,
+ 0x1a, 0x0a, 0xc9, 0x57, 0x58, 0x0a, 0xe9, 0xa3, 0xcb, 0xb4, 0xfd, 0xb7,
+ 0x30, 0xac, 0xe6, 0x3f,
+};
+static const struct drbg_kat_no_reseed kat969_t = {
+ 8, kat969_entropyin, kat969_nonce, kat969_persstr,
+ kat969_addin0, kat969_addin1, kat969_retbits
+};
+static const struct drbg_kat kat969 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat969_t
+};
+
+static const unsigned char kat970_entropyin[] = {
+ 0xa9, 0x88, 0x28, 0x5b, 0x9e, 0xa1, 0x1c, 0xcc, 0x14, 0x37, 0xc5, 0x19,
+ 0x60, 0x70, 0x93, 0xbc, 0x6a, 0xed, 0x41, 0xb5, 0x09, 0xbb, 0xe0, 0x0b,
+ 0x70, 0x00, 0x58, 0x43, 0x7e, 0x8a, 0x52, 0xe9, 0x0b, 0xb0, 0x43, 0xcc,
+ 0x67, 0x13, 0x3a, 0x0d,
+};
+static const unsigned char kat970_nonce[] = {0};
+static const unsigned char kat970_persstr[] = {0};
+static const unsigned char kat970_addin0[] = {0};
+static const unsigned char kat970_addin1[] = {0};
+static const unsigned char kat970_retbits[] = {
+ 0x94, 0x9a, 0x6e, 0xed, 0xb8, 0x42, 0xd9, 0xb6, 0x5a, 0x49, 0x6a, 0xa4,
+ 0xb8, 0x02, 0xf8, 0x20, 0x23, 0x42, 0x17, 0xc4, 0x83, 0x42, 0x24, 0xfc,
+ 0xe9, 0xfb, 0xaa, 0x72, 0x11, 0xd0, 0x74, 0x75, 0xf4, 0xc1, 0x2e, 0x1d,
+ 0xb7, 0x28, 0x92, 0x50, 0x94, 0xde, 0x32, 0xb1, 0x9b, 0x3e, 0xe0, 0xfb,
+ 0x36, 0xcf, 0x00, 0xd5, 0x66, 0x13, 0x79, 0xca, 0x76, 0xf1, 0x98, 0xfa,
+ 0xad, 0x76, 0x16, 0xec,
+};
+static const struct drbg_kat_no_reseed kat970_t = {
+ 9, kat970_entropyin, kat970_nonce, kat970_persstr,
+ kat970_addin0, kat970_addin1, kat970_retbits
+};
+static const struct drbg_kat kat970 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat970_t
+};
+
+static const unsigned char kat971_entropyin[] = {
+ 0xd7, 0xd5, 0x62, 0xd6, 0xc9, 0xcc, 0x96, 0x0a, 0x49, 0xc0, 0xb7, 0xc8,
+ 0x51, 0xcd, 0xfd, 0x6f, 0x53, 0x95, 0x61, 0xdc, 0xf1, 0x84, 0xef, 0x4c,
+ 0x96, 0x8e, 0x57, 0xf2, 0xac, 0xd7, 0x2b, 0x43, 0x2e, 0xf1, 0x1d, 0xf3,
+ 0xe0, 0xa0, 0xbb, 0x19,
+};
+static const unsigned char kat971_nonce[] = {0};
+static const unsigned char kat971_persstr[] = {0};
+static const unsigned char kat971_addin0[] = {0};
+static const unsigned char kat971_addin1[] = {0};
+static const unsigned char kat971_retbits[] = {
+ 0xd8, 0xa6, 0xe5, 0x7f, 0x2a, 0xcb, 0x7b, 0x5a, 0xe9, 0x90, 0x36, 0x38,
+ 0x2c, 0x83, 0x18, 0x22, 0x62, 0xc1, 0x55, 0xdb, 0xed, 0x02, 0x0b, 0x5e,
+ 0x8f, 0x3d, 0xd4, 0x96, 0x66, 0xfe, 0xc4, 0x6a, 0x20, 0x22, 0xb1, 0x82,
+ 0x46, 0xae, 0x99, 0x2c, 0xbd, 0xe9, 0x78, 0xf4, 0x44, 0x1d, 0x64, 0x39,
+ 0x60, 0x67, 0xed, 0x03, 0x17, 0x39, 0xa3, 0x30, 0x2f, 0x15, 0x6e, 0xb8,
+ 0x93, 0x92, 0xc7, 0x67,
+};
+static const struct drbg_kat_no_reseed kat971_t = {
+ 10, kat971_entropyin, kat971_nonce, kat971_persstr,
+ kat971_addin0, kat971_addin1, kat971_retbits
+};
+static const struct drbg_kat kat971 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat971_t
+};
+
+static const unsigned char kat972_entropyin[] = {
+ 0x07, 0xd9, 0x96, 0x26, 0x93, 0x8c, 0x9f, 0x30, 0xa9, 0x96, 0x68, 0xd9,
+ 0x68, 0x81, 0x62, 0xba, 0xf3, 0x09, 0x3c, 0x6f, 0xbf, 0xa7, 0x83, 0xc9,
+ 0x9b, 0x9d, 0x92, 0x9e, 0x4b, 0x3b, 0xd4, 0x8e, 0xee, 0x1a, 0xb4, 0x94,
+ 0xa7, 0xd8, 0x51, 0xaa,
+};
+static const unsigned char kat972_nonce[] = {0};
+static const unsigned char kat972_persstr[] = {0};
+static const unsigned char kat972_addin0[] = {0};
+static const unsigned char kat972_addin1[] = {0};
+static const unsigned char kat972_retbits[] = {
+ 0x50, 0x2e, 0x41, 0x25, 0x96, 0xd1, 0x88, 0x63, 0xff, 0xd5, 0x38, 0xbd,
+ 0x30, 0x47, 0xa1, 0xd2, 0x73, 0xe0, 0x52, 0x69, 0x94, 0xf4, 0xec, 0xa5,
+ 0x33, 0x8b, 0xc3, 0x1e, 0x41, 0xc5, 0xd6, 0xaf, 0x27, 0x3a, 0xe3, 0x09,
+ 0x28, 0x24, 0xa1, 0x4c, 0x10, 0x71, 0x66, 0x63, 0x1b, 0x5a, 0x8a, 0x94,
+ 0xcb, 0xf4, 0x9a, 0x7f, 0xdf, 0x9c, 0xad, 0xc1, 0x2c, 0xd1, 0x4b, 0x31,
+ 0x64, 0x2e, 0x70, 0x1f,
+};
+static const struct drbg_kat_no_reseed kat972_t = {
+ 11, kat972_entropyin, kat972_nonce, kat972_persstr,
+ kat972_addin0, kat972_addin1, kat972_retbits
+};
+static const struct drbg_kat kat972 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat972_t
+};
+
+static const unsigned char kat973_entropyin[] = {
+ 0xc5, 0x49, 0x35, 0x74, 0x29, 0xb4, 0x2c, 0xb2, 0x9b, 0x49, 0xf5, 0x7c,
+ 0x8e, 0xf8, 0x77, 0xca, 0x1c, 0xf1, 0xa4, 0x3c, 0x0b, 0xa7, 0xe0, 0xc6,
+ 0x0e, 0x54, 0x93, 0x52, 0xae, 0x84, 0x30, 0x84, 0x44, 0xe9, 0xe7, 0x03,
+ 0x5b, 0x49, 0x4f, 0xce,
+};
+static const unsigned char kat973_nonce[] = {0};
+static const unsigned char kat973_persstr[] = {0};
+static const unsigned char kat973_addin0[] = {0};
+static const unsigned char kat973_addin1[] = {0};
+static const unsigned char kat973_retbits[] = {
+ 0x5d, 0x34, 0x19, 0x06, 0xe6, 0x87, 0x66, 0x36, 0xd7, 0x2c, 0x0e, 0x9c,
+ 0x78, 0x9d, 0x52, 0xea, 0x6e, 0x82, 0x7d, 0x10, 0xe4, 0xae, 0x2c, 0x8e,
+ 0xaf, 0x6b, 0x20, 0x3c, 0x3a, 0x26, 0xc7, 0x18, 0xc7, 0x64, 0x60, 0x85,
+ 0x39, 0xc5, 0x7f, 0x8c, 0x15, 0x81, 0x9a, 0xda, 0xb1, 0xb0, 0xbc, 0x3d,
+ 0x9a, 0x13, 0x2f, 0xf0, 0x13, 0x78, 0x1f, 0x22, 0xce, 0xe4, 0xb7, 0x3a,
+ 0xdd, 0xb5, 0x0b, 0x96,
+};
+static const struct drbg_kat_no_reseed kat973_t = {
+ 12, kat973_entropyin, kat973_nonce, kat973_persstr,
+ kat973_addin0, kat973_addin1, kat973_retbits
+};
+static const struct drbg_kat kat973 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat973_t
+};
+
+static const unsigned char kat974_entropyin[] = {
+ 0x2c, 0x7d, 0x6a, 0x54, 0x49, 0x3e, 0xc7, 0x62, 0x38, 0x86, 0x45, 0x62,
+ 0x31, 0x26, 0x4d, 0x25, 0x80, 0xfc, 0x08, 0x1e, 0xd0, 0xb9, 0x7f, 0xa5,
+ 0x73, 0x20, 0xef, 0x34, 0x03, 0x40, 0xba, 0xd5, 0x60, 0x16, 0x4e, 0xf2,
+ 0x65, 0x62, 0x9b, 0xec,
+};
+static const unsigned char kat974_nonce[] = {0};
+static const unsigned char kat974_persstr[] = {0};
+static const unsigned char kat974_addin0[] = {0};
+static const unsigned char kat974_addin1[] = {0};
+static const unsigned char kat974_retbits[] = {
+ 0x20, 0xd7, 0x34, 0xab, 0x56, 0x11, 0xa3, 0x9d, 0x6c, 0xca, 0xf8, 0x94,
+ 0x1d, 0x25, 0x48, 0x04, 0xc3, 0x6b, 0xa8, 0xbf, 0x20, 0x6b, 0xf1, 0x0d,
+ 0x82, 0xf7, 0x21, 0xba, 0x95, 0x48, 0xb9, 0xf7, 0xcc, 0x10, 0x0f, 0x94,
+ 0x8a, 0xaf, 0xe3, 0xf3, 0x24, 0xca, 0x49, 0x43, 0x78, 0x32, 0x56, 0x64,
+ 0x1d, 0x5a, 0x1f, 0xb2, 0x3f, 0xd6, 0x06, 0x13, 0xfc, 0x0f, 0xbe, 0x30,
+ 0xc9, 0xca, 0xa8, 0xfa,
+};
+static const struct drbg_kat_no_reseed kat974_t = {
+ 13, kat974_entropyin, kat974_nonce, kat974_persstr,
+ kat974_addin0, kat974_addin1, kat974_retbits
+};
+static const struct drbg_kat kat974 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat974_t
+};
+
+static const unsigned char kat975_entropyin[] = {
+ 0x8d, 0xc5, 0xa9, 0xe8, 0xe9, 0x45, 0x8f, 0x84, 0x1d, 0xae, 0x78, 0x8d,
+ 0x24, 0xbb, 0x5f, 0xb1, 0x92, 0xef, 0x1f, 0xfa, 0xcc, 0xd9, 0x91, 0xf8,
+ 0x9f, 0x2b, 0x5d, 0x3b, 0xa5, 0x7c, 0x14, 0x71, 0x61, 0x24, 0x96, 0xc7,
+ 0xd9, 0xcd, 0xd1, 0x74,
+};
+static const unsigned char kat975_nonce[] = {0};
+static const unsigned char kat975_persstr[] = {0};
+static const unsigned char kat975_addin0[] = {0};
+static const unsigned char kat975_addin1[] = {0};
+static const unsigned char kat975_retbits[] = {
+ 0xfd, 0x74, 0xa7, 0xb1, 0x5c, 0x9a, 0xf2, 0xea, 0x14, 0x0a, 0x2d, 0x0e,
+ 0x35, 0x3c, 0x33, 0x87, 0xb3, 0x89, 0x14, 0x4d, 0xda, 0x57, 0x79, 0xc6,
+ 0x9f, 0x29, 0x99, 0x17, 0xdf, 0xb1, 0x9d, 0xe6, 0xad, 0x60, 0xdd, 0x44,
+ 0x0c, 0x14, 0xc0, 0x10, 0xca, 0x16, 0x14, 0x36, 0x24, 0x3b, 0xf9, 0xd3,
+ 0x3a, 0x66, 0x49, 0x33, 0x9a, 0x35, 0x43, 0xb8, 0xe7, 0x17, 0x89, 0x62,
+ 0x1d, 0xa7, 0xab, 0x7b,
+};
+static const struct drbg_kat_no_reseed kat975_t = {
+ 14, kat975_entropyin, kat975_nonce, kat975_persstr,
+ kat975_addin0, kat975_addin1, kat975_retbits
+};
+static const struct drbg_kat kat975 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat975_t
+};
+
+static const unsigned char kat976_entropyin[] = {
+ 0xb8, 0x95, 0xb8, 0x91, 0xf0, 0x39, 0x05, 0x28, 0x21, 0xfb, 0xb4, 0xa8,
+ 0x89, 0xfc, 0xed, 0x86, 0x1b, 0x96, 0xc3, 0x7e, 0x36, 0xa5, 0xf4, 0xf7,
+ 0xaa, 0x20, 0x8a, 0x2b, 0xf3, 0x3a, 0x89, 0x6f, 0xe7, 0xe2, 0x9f, 0x3f,
+ 0x6c, 0xf0, 0x04, 0x1f,
+};
+static const unsigned char kat976_nonce[] = {0};
+static const unsigned char kat976_persstr[] = {0};
+static const unsigned char kat976_addin0[] = {
+ 0x87, 0x11, 0xdf, 0x39, 0x31, 0xa9, 0x03, 0x59, 0x05, 0xeb, 0xdf, 0x51,
+ 0x0b, 0x3e, 0xa3, 0xf3, 0x44, 0x92, 0x3b, 0x2f, 0x20, 0xa5, 0x61, 0x70,
+ 0x9c, 0x0d, 0xef, 0x03, 0xb9, 0x57, 0x0b, 0xe2, 0x67, 0xe9, 0x76, 0x57,
+ 0x19, 0xa2, 0x5d, 0x8a,
+};
+static const unsigned char kat976_addin1[] = {
+ 0x03, 0x90, 0x8b, 0x9f, 0xd5, 0x6b, 0xad, 0x5a, 0x16, 0x45, 0xb6, 0x88,
+ 0xa4, 0xf9, 0xc2, 0x34, 0x2b, 0xc0, 0xf8, 0x1f, 0xed, 0x6f, 0x74, 0x49,
+ 0xaf, 0x14, 0xe9, 0x29, 0x60, 0xd6, 0x01, 0x27, 0xdd, 0xa4, 0xe2, 0x74,
+ 0x87, 0xe7, 0x74, 0x91,
+};
+static const unsigned char kat976_retbits[] = {
+ 0x13, 0x85, 0x39, 0x7b, 0x1a, 0x24, 0x5b, 0xd0, 0x6b, 0xbb, 0x4b, 0xcf,
+ 0x65, 0x1a, 0x52, 0xb2, 0xd3, 0x08, 0x67, 0xd3, 0xe2, 0xf9, 0x8e, 0x9c,
+ 0x7a, 0x9e, 0xe9, 0x59, 0xd2, 0xe1, 0xbb, 0xd6, 0x3a, 0x10, 0x05, 0x4f,
+ 0xc0, 0x81, 0xcd, 0x22, 0xa7, 0xf3, 0xb6, 0x5e, 0xd2, 0xf0, 0xb3, 0xa3,
+ 0xde, 0xb3, 0x89, 0xd2, 0xf3, 0x36, 0xe5, 0x0b, 0x35, 0x9a, 0x6c, 0x3e,
+ 0x83, 0x66, 0x7f, 0xb1,
+};
+static const struct drbg_kat_no_reseed kat976_t = {
+ 0, kat976_entropyin, kat976_nonce, kat976_persstr,
+ kat976_addin0, kat976_addin1, kat976_retbits
+};
+static const struct drbg_kat kat976 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat976_t
+};
+
+static const unsigned char kat977_entropyin[] = {
+ 0x3d, 0x64, 0x3a, 0xc8, 0xb8, 0xf2, 0x73, 0x2b, 0x29, 0x28, 0x61, 0xd0,
+ 0x82, 0xb2, 0x31, 0x41, 0x5f, 0xd6, 0x7e, 0xe5, 0x4f, 0x1e, 0xf5, 0xfd,
+ 0xcd, 0x9d, 0xbf, 0xe7, 0x07, 0x92, 0xd7, 0xd8, 0x77, 0x81, 0x54, 0x6d,
+ 0x97, 0xe9, 0x62, 0xf5,
+};
+static const unsigned char kat977_nonce[] = {0};
+static const unsigned char kat977_persstr[] = {0};
+static const unsigned char kat977_addin0[] = {
+ 0x5a, 0xd6, 0xb5, 0xcd, 0x05, 0x3b, 0x08, 0x17, 0x50, 0xfd, 0x1a, 0x8e,
+ 0x9b, 0x70, 0x59, 0xac, 0x15, 0x0a, 0xe4, 0x80, 0x50, 0x33, 0xd0, 0x01,
+ 0x98, 0x8b, 0x18, 0xcb, 0xbc, 0xab, 0x76, 0xd9, 0xa0, 0xd3, 0x2b, 0x33,
+ 0xa1, 0xcc, 0xd6, 0x5f,
+};
+static const unsigned char kat977_addin1[] = {
+ 0x7e, 0xdd, 0x5d, 0x19, 0x26, 0x98, 0xaa, 0x5b, 0xf4, 0xee, 0x25, 0xda,
+ 0xf8, 0x6d, 0x8e, 0x50, 0xaa, 0x4b, 0xdb, 0x03, 0xbf, 0x04, 0x3e, 0xe9,
+ 0x9e, 0x09, 0x56, 0xf1, 0x5e, 0xbc, 0x82, 0x76, 0xf0, 0x1d, 0x04, 0xce,
+ 0x14, 0x4e, 0x97, 0xf3,
+};
+static const unsigned char kat977_retbits[] = {
+ 0x66, 0x42, 0x70, 0x4d, 0x9c, 0xf7, 0x2c, 0xf6, 0x08, 0xe8, 0x2d, 0x32,
+ 0xae, 0xc4, 0x53, 0x66, 0xbd, 0x09, 0xb5, 0xbb, 0x1d, 0x71, 0xd9, 0x9d,
+ 0x43, 0xae, 0x7b, 0x10, 0x9c, 0x82, 0x18, 0x6b, 0xca, 0x37, 0x1c, 0x96,
+ 0xa0, 0xd0, 0xd2, 0x93, 0xd1, 0xe7, 0xae, 0x45, 0xf3, 0xc7, 0x50, 0xa5,
+ 0x48, 0x6a, 0xcf, 0x30, 0xb8, 0x2a, 0xcd, 0x49, 0x22, 0xb1, 0xd5, 0xcc,
+ 0x7e, 0x07, 0xf4, 0x09,
+};
+static const struct drbg_kat_no_reseed kat977_t = {
+ 1, kat977_entropyin, kat977_nonce, kat977_persstr,
+ kat977_addin0, kat977_addin1, kat977_retbits
+};
+static const struct drbg_kat kat977 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat977_t
+};
+
+static const unsigned char kat978_entropyin[] = {
+ 0xb8, 0x2a, 0xbe, 0x82, 0xcd, 0x65, 0xe2, 0x94, 0x03, 0xe8, 0x3a, 0x05,
+ 0x1d, 0xf4, 0x60, 0x54, 0x52, 0x7b, 0x85, 0xfa, 0xe6, 0x53, 0xdc, 0xdd,
+ 0x5e, 0x1c, 0xda, 0x27, 0x59, 0x46, 0xff, 0x25, 0x53, 0x07, 0xb0, 0xe4,
+ 0xac, 0xd4, 0xf4, 0x9e,
+};
+static const unsigned char kat978_nonce[] = {0};
+static const unsigned char kat978_persstr[] = {0};
+static const unsigned char kat978_addin0[] = {
+ 0x22, 0xa3, 0x9c, 0x8f, 0x9b, 0xab, 0x96, 0x67, 0x97, 0x8f, 0xbb, 0x68,
+ 0xf8, 0xf7, 0x1d, 0x95, 0x64, 0x85, 0xd7, 0x67, 0xd9, 0xd5, 0x2c, 0xfd,
+ 0xdc, 0x0c, 0xe1, 0x86, 0xc2, 0x35, 0x33, 0x51, 0xe8, 0xff, 0x1f, 0x41,
+ 0xe6, 0x4f, 0xff, 0xb0,
+};
+static const unsigned char kat978_addin1[] = {
+ 0x99, 0x75, 0xe9, 0x92, 0xd7, 0x80, 0x18, 0xa4, 0x15, 0xb3, 0x16, 0xfc,
+ 0x54, 0xf0, 0x25, 0x82, 0x72, 0x70, 0xbc, 0x8f, 0xaf, 0xad, 0x2d, 0x59,
+ 0x2c, 0xb6, 0x72, 0xad, 0x49, 0x9e, 0x94, 0x46, 0x30, 0x7b, 0xce, 0xe4,
+ 0xd5, 0x8d, 0xeb, 0xd1,
+};
+static const unsigned char kat978_retbits[] = {
+ 0xe3, 0x74, 0x24, 0x85, 0x87, 0xe5, 0x3a, 0xaa, 0x59, 0x7c, 0xef, 0x1f,
+ 0xeb, 0xdb, 0x61, 0x1b, 0xef, 0xe7, 0x18, 0x8a, 0xa6, 0xd6, 0xe4, 0x58,
+ 0x4e, 0x1e, 0x3e, 0x72, 0x02, 0x9b, 0xd8, 0x48, 0xae, 0x56, 0xd4, 0x1e,
+ 0x8f, 0x6e, 0x73, 0xd8, 0x98, 0x8d, 0x94, 0x27, 0xaa, 0xeb, 0x08, 0xe2,
+ 0x4e, 0x45, 0xe0, 0x42, 0xcd, 0x1e, 0x41, 0xef, 0x8d, 0x71, 0x2a, 0x66,
+ 0x19, 0x70, 0x88, 0x76,
+};
+static const struct drbg_kat_no_reseed kat978_t = {
+ 2, kat978_entropyin, kat978_nonce, kat978_persstr,
+ kat978_addin0, kat978_addin1, kat978_retbits
+};
+static const struct drbg_kat kat978 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat978_t
+};
+
+static const unsigned char kat979_entropyin[] = {
+ 0xf9, 0x07, 0x5a, 0x56, 0x01, 0x89, 0xae, 0xdb, 0x89, 0xbd, 0xb8, 0x5a,
+ 0x9c, 0xb9, 0xff, 0x3b, 0xcc, 0x61, 0x5e, 0x9f, 0x7d, 0x35, 0x59, 0xa6,
+ 0xb6, 0xcb, 0x14, 0x32, 0x16, 0xd3, 0x48, 0x09, 0x65, 0xc5, 0x66, 0x52,
+ 0x42, 0x77, 0x0f, 0x82,
+};
+static const unsigned char kat979_nonce[] = {0};
+static const unsigned char kat979_persstr[] = {0};
+static const unsigned char kat979_addin0[] = {
+ 0x9b, 0x90, 0x3d, 0xed, 0xb0, 0x49, 0x2c, 0x36, 0x63, 0x22, 0xa5, 0x3b,
+ 0x74, 0xff, 0xb2, 0x9d, 0x2f, 0x46, 0xfd, 0x81, 0x3e, 0x3c, 0x93, 0xda,
+ 0x6d, 0x9e, 0xca, 0xe8, 0xa5, 0x79, 0x89, 0x14, 0xb0, 0x97, 0xf6, 0xf0,
+ 0xbc, 0xf7, 0x81, 0x25,
+};
+static const unsigned char kat979_addin1[] = {
+ 0x2e, 0x45, 0xbd, 0x77, 0x1a, 0x77, 0x65, 0xef, 0x10, 0x6d, 0xc3, 0x2e,
+ 0x74, 0xab, 0x44, 0xf3, 0x53, 0x48, 0x7b, 0xa3, 0xc6, 0x48, 0xa2, 0x78,
+ 0xaf, 0xe7, 0x3f, 0x5a, 0xe0, 0xe0, 0x1b, 0xa5, 0x10, 0x36, 0x0a, 0x3c,
+ 0x8a, 0x1e, 0x0a, 0x36,
+};
+static const unsigned char kat979_retbits[] = {
+ 0xb8, 0xc8, 0x86, 0x6f, 0x5a, 0x16, 0x51, 0x64, 0xfc, 0x66, 0xfb, 0x9a,
+ 0xb9, 0xeb, 0x96, 0xb4, 0x4f, 0x0d, 0xc3, 0x69, 0xa6, 0xb5, 0x6e, 0xbc,
+ 0x6f, 0xa1, 0x86, 0x96, 0xe0, 0xdd, 0x63, 0x76, 0x2c, 0x52, 0x98, 0xb8,
+ 0x03, 0xde, 0x06, 0x5c, 0x05, 0xdd, 0xdb, 0x1f, 0xb7, 0xd8, 0xfd, 0x95,
+ 0x20, 0x20, 0x11, 0x50, 0x30, 0xd9, 0x1d, 0x14, 0xa1, 0xc0, 0xcd, 0xc2,
+ 0x43, 0xf8, 0x99, 0xee,
+};
+static const struct drbg_kat_no_reseed kat979_t = {
+ 3, kat979_entropyin, kat979_nonce, kat979_persstr,
+ kat979_addin0, kat979_addin1, kat979_retbits
+};
+static const struct drbg_kat kat979 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat979_t
+};
+
+static const unsigned char kat980_entropyin[] = {
+ 0x11, 0x53, 0x2e, 0xcd, 0x67, 0xc8, 0x96, 0xe1, 0x84, 0x3c, 0x3f, 0x9e,
+ 0x41, 0x4e, 0x99, 0xd8, 0x65, 0xe3, 0x32, 0x08, 0x80, 0xb8, 0x20, 0x6d,
+ 0xfb, 0xe9, 0xe2, 0xd2, 0x3b, 0x1d, 0x02, 0xa0, 0x39, 0xd6, 0x93, 0x6d,
+ 0xc4, 0x7d, 0xcf, 0xf7,
+};
+static const unsigned char kat980_nonce[] = {0};
+static const unsigned char kat980_persstr[] = {0};
+static const unsigned char kat980_addin0[] = {
+ 0x88, 0xe2, 0x2d, 0x83, 0x18, 0xf8, 0x51, 0xbd, 0xe6, 0xa5, 0x9d, 0x8b,
+ 0x24, 0x43, 0x1c, 0xfa, 0xfa, 0x45, 0xd7, 0xb0, 0x3a, 0xf1, 0x37, 0xc5,
+ 0x25, 0x73, 0x11, 0xee, 0x74, 0xaa, 0x16, 0x13, 0xed, 0xf7, 0xb3, 0xbb,
+ 0x02, 0x4d, 0x03, 0x52,
+};
+static const unsigned char kat980_addin1[] = {
+ 0x8d, 0xeb, 0x0d, 0x99, 0xa4, 0x68, 0x72, 0xcb, 0x82, 0x54, 0x4f, 0xe0,
+ 0x93, 0xe5, 0xe3, 0xe8, 0xe8, 0x23, 0xea, 0x20, 0x19, 0xae, 0x40, 0x0b,
+ 0x32, 0x88, 0xb6, 0xd3, 0xb9, 0x51, 0x1d, 0x37, 0xce, 0x6e, 0xec, 0x97,
+ 0x9d, 0xe4, 0x3f, 0xe7,
+};
+static const unsigned char kat980_retbits[] = {
+ 0xa7, 0x7a, 0xc4, 0xfa, 0x8e, 0x11, 0x70, 0x43, 0xc2, 0x84, 0xe6, 0x7e,
+ 0x85, 0xd5, 0xab, 0x87, 0xc6, 0xfe, 0x5a, 0x09, 0xd6, 0xfb, 0x83, 0xd9,
+ 0x2b, 0x17, 0x9b, 0xb4, 0xb0, 0xa2, 0xcc, 0x24, 0xab, 0xdd, 0xef, 0x2d,
+ 0xa4, 0xc8, 0x0e, 0x86, 0x7e, 0xa2, 0xff, 0x07, 0x12, 0x90, 0x20, 0x92,
+ 0x13, 0x92, 0x86, 0x38, 0x26, 0x9c, 0xe4, 0xc8, 0x5e, 0x41, 0x57, 0xff,
+ 0xcd, 0xff, 0x01, 0x4c,
+};
+static const struct drbg_kat_no_reseed kat980_t = {
+ 4, kat980_entropyin, kat980_nonce, kat980_persstr,
+ kat980_addin0, kat980_addin1, kat980_retbits
+};
+static const struct drbg_kat kat980 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat980_t
+};
+
+static const unsigned char kat981_entropyin[] = {
+ 0xc2, 0x11, 0x94, 0x53, 0xce, 0x99, 0xf3, 0x9d, 0x06, 0x5d, 0x81, 0xc4,
+ 0x6a, 0x41, 0xe0, 0xeb, 0xbc, 0x2b, 0x97, 0xe4, 0xe6, 0xc4, 0xfe, 0xd4,
+ 0x95, 0x83, 0x6b, 0xec, 0xbf, 0x74, 0x04, 0x31, 0x06, 0x67, 0xf0, 0x04,
+ 0xb4, 0xf6, 0x24, 0x33,
+};
+static const unsigned char kat981_nonce[] = {0};
+static const unsigned char kat981_persstr[] = {0};
+static const unsigned char kat981_addin0[] = {
+ 0xe8, 0x58, 0xd3, 0xa3, 0xc2, 0x73, 0xc1, 0xb2, 0xd5, 0xc6, 0x15, 0xb1,
+ 0x75, 0x7a, 0xaf, 0x8e, 0x01, 0xaa, 0x38, 0xc0, 0x13, 0x18, 0xb3, 0x02,
+ 0x70, 0x0f, 0x50, 0x99, 0xe1, 0xe4, 0xcd, 0x13, 0x67, 0xae, 0x74, 0x6b,
+ 0xaa, 0xcc, 0x33, 0xde,
+};
+static const unsigned char kat981_addin1[] = {
+ 0xf3, 0x12, 0xcb, 0xf2, 0x12, 0x57, 0x61, 0x53, 0x39, 0xb3, 0x96, 0xdc,
+ 0x07, 0xae, 0x88, 0x95, 0x9e, 0x5b, 0x7e, 0x9a, 0x97, 0x37, 0x47, 0x76,
+ 0x83, 0xd8, 0x00, 0xe3, 0xa6, 0x03, 0x38, 0x44, 0xcc, 0x67, 0xf0, 0xc9,
+ 0xa6, 0x9e, 0x2f, 0xce,
+};
+static const unsigned char kat981_retbits[] = {
+ 0xee, 0x06, 0xe9, 0xa2, 0x24, 0x10, 0x6e, 0x1d, 0x41, 0xdd, 0x12, 0x08,
+ 0x4d, 0xed, 0x2a, 0x9e, 0xe0, 0x76, 0xc1, 0xe2, 0xb8, 0x29, 0xf1, 0x79,
+ 0x73, 0x2a, 0x72, 0x29, 0xaa, 0xd5, 0xeb, 0xe3, 0xfc, 0xef, 0x34, 0x33,
+ 0x2e, 0xd9, 0x35, 0x55, 0xd6, 0x75, 0xc3, 0x6c, 0x7d, 0xb3, 0x37, 0xfe,
+ 0x6a, 0xd8, 0xca, 0x3a, 0xcf, 0x97, 0xaa, 0xf3, 0x36, 0x31, 0xb7, 0x2a,
+ 0xd7, 0x6a, 0x30, 0x0a,
+};
+static const struct drbg_kat_no_reseed kat981_t = {
+ 5, kat981_entropyin, kat981_nonce, kat981_persstr,
+ kat981_addin0, kat981_addin1, kat981_retbits
+};
+static const struct drbg_kat kat981 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat981_t
+};
+
+static const unsigned char kat982_entropyin[] = {
+ 0x78, 0x89, 0x0b, 0xa4, 0xb4, 0x8d, 0x48, 0xc1, 0xe0, 0x70, 0xd9, 0x6d,
+ 0x95, 0x80, 0xc9, 0xb5, 0x14, 0xbb, 0x74, 0x20, 0xa3, 0x02, 0x57, 0xcf,
+ 0xcf, 0x2d, 0x28, 0x95, 0x84, 0x6e, 0x9e, 0x82, 0x1b, 0xcb, 0xc6, 0x3d,
+ 0xac, 0xea, 0xd9, 0x0c,
+};
+static const unsigned char kat982_nonce[] = {0};
+static const unsigned char kat982_persstr[] = {0};
+static const unsigned char kat982_addin0[] = {
+ 0x5a, 0x1a, 0x0b, 0x67, 0xbf, 0x74, 0xfe, 0xb1, 0x58, 0xe2, 0x66, 0xd3,
+ 0xf5, 0x73, 0xf6, 0x94, 0xac, 0x20, 0xc8, 0x98, 0x93, 0x22, 0x9a, 0xc5,
+ 0x29, 0x7d, 0x5b, 0x0f, 0xc3, 0x12, 0x2c, 0x9c, 0xc9, 0x85, 0x14, 0x98,
+ 0xd4, 0xdb, 0x25, 0x16,
+};
+static const unsigned char kat982_addin1[] = {
+ 0xb9, 0xd7, 0x83, 0x7a, 0xed, 0x40, 0x14, 0xc8, 0x62, 0xc1, 0x8f, 0x26,
+ 0x85, 0x96, 0xa0, 0x22, 0x04, 0xe1, 0xae, 0xe4, 0x9f, 0x1a, 0x29, 0xd5,
+ 0xe8, 0x7f, 0x05, 0xe8, 0xac, 0xa5, 0xbe, 0x80, 0x51, 0x00, 0xc3, 0x0c,
+ 0x16, 0xbd, 0x1a, 0x71,
+};
+static const unsigned char kat982_retbits[] = {
+ 0x96, 0x6a, 0xdb, 0xe2, 0xd8, 0x9e, 0x66, 0x35, 0x75, 0x8e, 0x08, 0x02,
+ 0x69, 0x86, 0xc3, 0x03, 0xe2, 0x11, 0x49, 0xf6, 0xe1, 0xd9, 0x62, 0xd1,
+ 0x76, 0x49, 0xee, 0x43, 0xcb, 0x20, 0x81, 0x9a, 0x13, 0x6b, 0x42, 0xcd,
+ 0x86, 0x2c, 0x24, 0x5d, 0x6a, 0x35, 0x73, 0xb1, 0x91, 0x21, 0x20, 0x92,
+ 0xd0, 0x59, 0x5c, 0x9b, 0xda, 0x6b, 0xcf, 0xcc, 0xa7, 0x94, 0xce, 0x6b,
+ 0xf8, 0xc9, 0x26, 0xd8,
+};
+static const struct drbg_kat_no_reseed kat982_t = {
+ 6, kat982_entropyin, kat982_nonce, kat982_persstr,
+ kat982_addin0, kat982_addin1, kat982_retbits
+};
+static const struct drbg_kat kat982 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat982_t
+};
+
+static const unsigned char kat983_entropyin[] = {
+ 0xfc, 0x0f, 0x59, 0xee, 0x83, 0x3c, 0xf9, 0xfd, 0x13, 0x00, 0xbf, 0x1f,
+ 0x77, 0xcd, 0xe4, 0x7b, 0x94, 0x32, 0xe9, 0x12, 0x86, 0x6c, 0xe8, 0xb3,
+ 0xec, 0xcb, 0x3d, 0xf9, 0x1c, 0xf5, 0x39, 0x66, 0x80, 0x27, 0xfa, 0xc3,
+ 0x8e, 0x0b, 0x80, 0x5e,
+};
+static const unsigned char kat983_nonce[] = {0};
+static const unsigned char kat983_persstr[] = {0};
+static const unsigned char kat983_addin0[] = {
+ 0x49, 0x26, 0x7f, 0x05, 0x83, 0xff, 0x8d, 0xb1, 0xf9, 0x7b, 0x97, 0xc1,
+ 0xaf, 0x0e, 0x64, 0x57, 0x9f, 0x22, 0x72, 0x2e, 0xd3, 0x15, 0x3b, 0xa5,
+ 0x05, 0x7f, 0x0e, 0x15, 0x5d, 0xaf, 0xb7, 0xd7, 0xcc, 0x55, 0xa1, 0x7d,
+ 0x76, 0xe9, 0x89, 0x73,
+};
+static const unsigned char kat983_addin1[] = {
+ 0xb4, 0x59, 0xbb, 0xc3, 0x53, 0xc4, 0x79, 0xd5, 0x2c, 0x1d, 0xf5, 0xfb,
+ 0xed, 0x65, 0x3a, 0x14, 0xda, 0x09, 0x2c, 0x4b, 0x9c, 0x33, 0x98, 0x1d,
+ 0x96, 0x17, 0x81, 0x72, 0xe2, 0x82, 0xf5, 0x70, 0xab, 0x59, 0x94, 0x2e,
+ 0x33, 0x47, 0x2e, 0x23,
+};
+static const unsigned char kat983_retbits[] = {
+ 0x2a, 0x47, 0xd5, 0x77, 0x22, 0xc7, 0x9b, 0xda, 0x6d, 0x54, 0xe2, 0x88,
+ 0xdb, 0x36, 0xb2, 0xad, 0xe9, 0xb6, 0x44, 0x98, 0x99, 0x5e, 0x49, 0xee,
+ 0xbc, 0x06, 0xf0, 0xf8, 0xf3, 0x0a, 0x5f, 0xc6, 0x2b, 0x35, 0x40, 0x34,
+ 0xf7, 0xe6, 0x98, 0x7c, 0x93, 0x0d, 0x2c, 0x4d, 0x1a, 0xf3, 0xc6, 0x66,
+ 0x2f, 0x4f, 0xc1, 0x09, 0x29, 0x8d, 0xa2, 0x36, 0x87, 0x40, 0x0f, 0x6b,
+ 0xd9, 0xcb, 0x30, 0x2a,
+};
+static const struct drbg_kat_no_reseed kat983_t = {
+ 7, kat983_entropyin, kat983_nonce, kat983_persstr,
+ kat983_addin0, kat983_addin1, kat983_retbits
+};
+static const struct drbg_kat kat983 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat983_t
+};
+
+static const unsigned char kat984_entropyin[] = {
+ 0xd8, 0x40, 0x7e, 0x1d, 0x31, 0x74, 0xe0, 0x60, 0x5d, 0x89, 0x08, 0x13,
+ 0xfe, 0x50, 0xc0, 0x38, 0x3e, 0xd3, 0xd9, 0xd4, 0xbd, 0x05, 0xa3, 0x73,
+ 0xf8, 0x97, 0x15, 0x88, 0x12, 0x70, 0xbc, 0xac, 0xd6, 0x14, 0x56, 0x94,
+ 0xf7, 0xed, 0x80, 0xf4,
+};
+static const unsigned char kat984_nonce[] = {0};
+static const unsigned char kat984_persstr[] = {0};
+static const unsigned char kat984_addin0[] = {
+ 0xea, 0x1d, 0x2e, 0x12, 0x82, 0x24, 0x4e, 0xe3, 0x18, 0xf5, 0x27, 0x89,
+ 0xe3, 0xbb, 0xba, 0x48, 0x4c, 0x33, 0xa2, 0xd8, 0x5a, 0xff, 0x68, 0xdc,
+ 0x60, 0x26, 0x24, 0xe5, 0xae, 0xff, 0x7d, 0x77, 0x07, 0xbe, 0x6e, 0xf8,
+ 0x0a, 0xc6, 0x74, 0xef,
+};
+static const unsigned char kat984_addin1[] = {
+ 0x32, 0x8e, 0xf9, 0xe1, 0xb6, 0xea, 0xab, 0x46, 0x74, 0x6a, 0x46, 0xe6,
+ 0xf5, 0x76, 0x0e, 0xf2, 0x3a, 0x6f, 0xb7, 0x8e, 0x6c, 0x5b, 0x66, 0x32,
+ 0xdc, 0x25, 0xfa, 0xeb, 0xc3, 0x97, 0x81, 0x3c, 0xa4, 0x25, 0xda, 0x4e,
+ 0x71, 0xa8, 0x75, 0x35,
+};
+static const unsigned char kat984_retbits[] = {
+ 0x3f, 0x66, 0x61, 0xa2, 0xfd, 0xa1, 0x7a, 0x48, 0x63, 0x58, 0x7f, 0x59,
+ 0xc0, 0x04, 0x58, 0x80, 0xf4, 0x02, 0x18, 0x18, 0x47, 0x7b, 0x1c, 0x83,
+ 0x65, 0xec, 0x58, 0xe5, 0xb2, 0x05, 0x89, 0xef, 0xae, 0xf8, 0x02, 0x6f,
+ 0x34, 0xee, 0xe0, 0x87, 0x01, 0xfd, 0x51, 0x2a, 0x79, 0x9c, 0x3e, 0xd5,
+ 0x0a, 0xe7, 0x21, 0x22, 0xc2, 0xcc, 0x3d, 0x3d, 0x27, 0x4c, 0x5c, 0x3d,
+ 0xa3, 0x08, 0xbf, 0xce,
+};
+static const struct drbg_kat_no_reseed kat984_t = {
+ 8, kat984_entropyin, kat984_nonce, kat984_persstr,
+ kat984_addin0, kat984_addin1, kat984_retbits
+};
+static const struct drbg_kat kat984 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat984_t
+};
+
+static const unsigned char kat985_entropyin[] = {
+ 0xd2, 0x3b, 0x7b, 0xae, 0x79, 0x8f, 0xcb, 0x9a, 0x68, 0x9c, 0x36, 0x88,
+ 0xec, 0x69, 0xa5, 0x1b, 0x27, 0xd4, 0x68, 0x40, 0x3d, 0xe1, 0x95, 0xa9,
+ 0x25, 0xeb, 0x5a, 0xe8, 0xec, 0xf6, 0xef, 0x1c, 0x69, 0xee, 0xcc, 0xe1,
+ 0x82, 0x4f, 0x9c, 0x7f,
+};
+static const unsigned char kat985_nonce[] = {0};
+static const unsigned char kat985_persstr[] = {0};
+static const unsigned char kat985_addin0[] = {
+ 0x41, 0x82, 0x06, 0xc8, 0xd6, 0xcf, 0xde, 0x44, 0xfd, 0xa2, 0xff, 0x2b,
+ 0x60, 0xba, 0x44, 0xa4, 0x2e, 0x11, 0x6c, 0xbf, 0x34, 0x3b, 0x39, 0x63,
+ 0xd9, 0x84, 0x95, 0x04, 0xa4, 0xb5, 0xb8, 0x70, 0xad, 0x71, 0xf4, 0xbe,
+ 0x3c, 0x04, 0x46, 0xe9,
+};
+static const unsigned char kat985_addin1[] = {
+ 0xe2, 0xb1, 0x37, 0x86, 0xd5, 0xc4, 0x08, 0x69, 0xb4, 0xd5, 0xaf, 0xb9,
+ 0xfa, 0x1a, 0x09, 0xc2, 0x04, 0xa3, 0xa1, 0x13, 0xdb, 0x3f, 0x3c, 0xef,
+ 0x9c, 0xec, 0xab, 0xeb, 0x96, 0xb9, 0x5e, 0xed, 0x2d, 0x8c, 0xff, 0x11,
+ 0x71, 0x7a, 0x77, 0x67,
+};
+static const unsigned char kat985_retbits[] = {
+ 0xd4, 0xcf, 0x8c, 0x4c, 0x4d, 0x5d, 0x67, 0x2b, 0xfd, 0x21, 0xfa, 0xf1,
+ 0x94, 0x40, 0x43, 0xf2, 0x95, 0x55, 0x8a, 0xef, 0x43, 0x00, 0x8e, 0xd7,
+ 0x00, 0x3e, 0xa0, 0xba, 0x0f, 0xa7, 0xc5, 0xbb, 0x98, 0x1e, 0x90, 0x8d,
+ 0x6c, 0x17, 0xb6, 0xd0, 0xa9, 0xd5, 0xa4, 0x1d, 0x0d, 0x2b, 0x39, 0x0b,
+ 0x81, 0xcb, 0xd8, 0xe2, 0x37, 0xec, 0xe7, 0xb8, 0xeb, 0x40, 0xff, 0xa0,
+ 0x80, 0xfe, 0xdd, 0x06,
+};
+static const struct drbg_kat_no_reseed kat985_t = {
+ 9, kat985_entropyin, kat985_nonce, kat985_persstr,
+ kat985_addin0, kat985_addin1, kat985_retbits
+};
+static const struct drbg_kat kat985 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat985_t
+};
+
+static const unsigned char kat986_entropyin[] = {
+ 0x8d, 0x4e, 0x1c, 0x0f, 0x18, 0x49, 0xe5, 0xa6, 0xf0, 0x03, 0xa2, 0xab,
+ 0x24, 0x5e, 0xd5, 0xc0, 0xe6, 0x8f, 0x2a, 0x5b, 0x64, 0x3c, 0x28, 0x8e,
+ 0x6e, 0x3d, 0x84, 0x17, 0xd2, 0x46, 0xb9, 0x13, 0x26, 0xd9, 0xfe, 0xcb,
+ 0x56, 0xec, 0x34, 0x08,
+};
+static const unsigned char kat986_nonce[] = {0};
+static const unsigned char kat986_persstr[] = {0};
+static const unsigned char kat986_addin0[] = {
+ 0x6e, 0x0c, 0xb3, 0xfe, 0xc6, 0x3e, 0xfe, 0x94, 0xe4, 0x05, 0x00, 0xeb,
+ 0x58, 0x03, 0xc0, 0x14, 0xec, 0x16, 0x11, 0x98, 0xc5, 0x5b, 0xd0, 0x61,
+ 0xab, 0xf7, 0x23, 0xa3, 0x8d, 0xe6, 0x43, 0xcc, 0x3b, 0xae, 0xa3, 0x0e,
+ 0x31, 0x22, 0x65, 0x58,
+};
+static const unsigned char kat986_addin1[] = {
+ 0x39, 0x1b, 0x8d, 0x09, 0xb6, 0x00, 0x35, 0xed, 0xc7, 0xc6, 0x32, 0xca,
+ 0xda, 0x8b, 0x0d, 0xe5, 0x3f, 0xd1, 0x41, 0x0e, 0x7b, 0x45, 0xa3, 0x5a,
+ 0x89, 0xd3, 0x97, 0xd6, 0x80, 0x90, 0x96, 0x0b, 0xa7, 0xc5, 0x2f, 0x56,
+ 0x5e, 0x85, 0x8c, 0xc4,
+};
+static const unsigned char kat986_retbits[] = {
+ 0x72, 0x7d, 0x6d, 0x67, 0x31, 0xf7, 0x3d, 0x80, 0xe5, 0x58, 0x12, 0x99,
+ 0xac, 0x91, 0x1d, 0x21, 0x2d, 0x11, 0x34, 0x1e, 0xad, 0xb7, 0x72, 0x4a,
+ 0x35, 0x1a, 0x04, 0x63, 0x5c, 0xca, 0x4e, 0xab, 0x5b, 0x02, 0x3b, 0x35,
+ 0x40, 0x41, 0x7c, 0xf8, 0x97, 0xe3, 0xf0, 0xa3, 0xfb, 0x91, 0x31, 0x1e,
+ 0x8f, 0x4b, 0x5a, 0x83, 0xc9, 0xb9, 0x85, 0x4b, 0xb1, 0xb0, 0xcb, 0x0e,
+ 0x38, 0x13, 0x98, 0x99,
+};
+static const struct drbg_kat_no_reseed kat986_t = {
+ 10, kat986_entropyin, kat986_nonce, kat986_persstr,
+ kat986_addin0, kat986_addin1, kat986_retbits
+};
+static const struct drbg_kat kat986 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat986_t
+};
+
+static const unsigned char kat987_entropyin[] = {
+ 0xb6, 0x41, 0xb1, 0x0e, 0x3f, 0xb8, 0x77, 0x69, 0x8d, 0x6c, 0x85, 0xab,
+ 0xd1, 0xf3, 0x05, 0xa4, 0x85, 0x8b, 0x9e, 0x5f, 0x8b, 0x78, 0xbe, 0x71,
+ 0x4f, 0xf1, 0x8b, 0x6c, 0x55, 0x61, 0x37, 0xce, 0xbd, 0x94, 0xef, 0x35,
+ 0x7d, 0x06, 0xd3, 0x9e,
+};
+static const unsigned char kat987_nonce[] = {0};
+static const unsigned char kat987_persstr[] = {0};
+static const unsigned char kat987_addin0[] = {
+ 0x09, 0x1e, 0x03, 0x9b, 0xfa, 0x7c, 0x41, 0xb8, 0x76, 0x57, 0xc4, 0x24,
+ 0xf0, 0xd9, 0xbc, 0x57, 0x59, 0xe0, 0x7e, 0xe5, 0x13, 0x86, 0xcd, 0x20,
+ 0xc8, 0x17, 0x61, 0x1c, 0x4f, 0x71, 0xc3, 0x1e, 0x7d, 0xba, 0x1d, 0x06,
+ 0xc2, 0xfd, 0x3c, 0x53,
+};
+static const unsigned char kat987_addin1[] = {
+ 0x73, 0x4a, 0xa5, 0x10, 0x94, 0xd2, 0x97, 0xe4, 0xcb, 0x8f, 0xcc, 0xd5,
+ 0x15, 0x2c, 0x05, 0xd2, 0xfe, 0x25, 0x27, 0x21, 0x49, 0x9f, 0x0a, 0x51,
+ 0x9e, 0xff, 0x69, 0x9a, 0x52, 0x88, 0x87, 0x4d, 0x8d, 0xc8, 0x6d, 0xbc,
+ 0xf8, 0x41, 0xe5, 0x98,
+};
+static const unsigned char kat987_retbits[] = {
+ 0xd0, 0xc8, 0xe1, 0xc5, 0xd9, 0x5e, 0x9e, 0x79, 0x96, 0xe4, 0xf0, 0x18,
+ 0x66, 0x1f, 0x9b, 0x08, 0xa5, 0xd4, 0xbe, 0xdf, 0x3a, 0x69, 0xc0, 0xc5,
+ 0xdf, 0x18, 0x24, 0xd4, 0xba, 0xa0, 0xa1, 0xfb, 0x14, 0xa1, 0x24, 0x89,
+ 0x34, 0x0c, 0xf3, 0x9a, 0x4c, 0x50, 0x80, 0x07, 0x6e, 0x8a, 0xb9, 0x40,
+ 0xf7, 0xa5, 0x28, 0xa5, 0x64, 0x41, 0x4d, 0x0b, 0x0e, 0x15, 0xfd, 0x61,
+ 0x06, 0xa5, 0xc3, 0x1f,
+};
+static const struct drbg_kat_no_reseed kat987_t = {
+ 11, kat987_entropyin, kat987_nonce, kat987_persstr,
+ kat987_addin0, kat987_addin1, kat987_retbits
+};
+static const struct drbg_kat kat987 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat987_t
+};
+
+static const unsigned char kat988_entropyin[] = {
+ 0xdd, 0x72, 0xbd, 0xa9, 0xee, 0x04, 0xf6, 0xdd, 0x9a, 0x56, 0x7d, 0x65,
+ 0x1c, 0x6d, 0xdb, 0xf1, 0x82, 0xf4, 0xd7, 0xb9, 0x7f, 0xae, 0xbf, 0x97,
+ 0x25, 0xc2, 0x51, 0xe6, 0x49, 0xfb, 0xfc, 0xc2, 0x65, 0x0d, 0x64, 0x19,
+ 0xd5, 0x72, 0xa4, 0x42,
+};
+static const unsigned char kat988_nonce[] = {0};
+static const unsigned char kat988_persstr[] = {0};
+static const unsigned char kat988_addin0[] = {
+ 0xf1, 0x08, 0xe9, 0xd7, 0x79, 0x6d, 0xb7, 0x40, 0xc1, 0x72, 0x9b, 0x16,
+ 0xc0, 0x58, 0x6c, 0x94, 0x59, 0xfe, 0xab, 0x01, 0x39, 0x08, 0x23, 0xa1,
+ 0x96, 0xf4, 0x06, 0x80, 0x46, 0x1d, 0x41, 0x4f, 0xce, 0x09, 0x92, 0x15,
+ 0x5b, 0x2b, 0x3b, 0xd1,
+};
+static const unsigned char kat988_addin1[] = {
+ 0xf7, 0x23, 0x8f, 0x4f, 0x4f, 0xd6, 0x32, 0x8b, 0x6c, 0xd0, 0xaa, 0x35,
+ 0xbb, 0xbc, 0x0c, 0x35, 0x5d, 0x41, 0xe0, 0x2a, 0xa6, 0x29, 0xfb, 0x54,
+ 0xeb, 0x22, 0xa6, 0xb4, 0x5b, 0x39, 0xb3, 0x72, 0xe5, 0x7c, 0xa0, 0x95,
+ 0x80, 0x40, 0x99, 0x6a,
+};
+static const unsigned char kat988_retbits[] = {
+ 0x27, 0x1e, 0xfc, 0x67, 0xc3, 0xcc, 0x27, 0xb5, 0xee, 0xbf, 0x75, 0xcc,
+ 0xe6, 0x5b, 0xf4, 0x79, 0x1e, 0xb9, 0x92, 0xec, 0x24, 0xe5, 0x35, 0x74,
+ 0x3b, 0xcf, 0x00, 0x5e, 0xe0, 0x13, 0x7a, 0xe6, 0x56, 0x4a, 0xf6, 0x18,
+ 0x11, 0x67, 0xae, 0x7f, 0xff, 0x2c, 0xbd, 0x08, 0x0e, 0x92, 0x65, 0xdf,
+ 0xcc, 0x01, 0xe2, 0x14, 0xc4, 0x7d, 0x40, 0x2b, 0x74, 0xb5, 0xe2, 0x03,
+ 0x82, 0xd2, 0x1d, 0xfd,
+};
+static const struct drbg_kat_no_reseed kat988_t = {
+ 12, kat988_entropyin, kat988_nonce, kat988_persstr,
+ kat988_addin0, kat988_addin1, kat988_retbits
+};
+static const struct drbg_kat kat988 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat988_t
+};
+
+static const unsigned char kat989_entropyin[] = {
+ 0xa4, 0x88, 0x9e, 0xc0, 0xca, 0x94, 0x2c, 0x85, 0x14, 0xc6, 0x51, 0x25,
+ 0xf3, 0xc3, 0xc6, 0x88, 0xb0, 0xbb, 0xdf, 0xe8, 0x7a, 0xb6, 0xa9, 0x1f,
+ 0xf7, 0x5d, 0x4f, 0x07, 0x39, 0x3e, 0x6b, 0x38, 0xe6, 0x42, 0x3c, 0xc8,
+ 0xf9, 0xe1, 0x4e, 0x94,
+};
+static const unsigned char kat989_nonce[] = {0};
+static const unsigned char kat989_persstr[] = {0};
+static const unsigned char kat989_addin0[] = {
+ 0xd2, 0x4e, 0x58, 0xd8, 0x78, 0x24, 0x0b, 0xb7, 0xc7, 0x70, 0xd8, 0xb1,
+ 0xb6, 0xe2, 0x5f, 0x2b, 0x1c, 0xe1, 0x19, 0x1e, 0x1f, 0xee, 0x7e, 0x44,
+ 0xa2, 0x66, 0x49, 0xef, 0x58, 0xe5, 0xa2, 0x12, 0x1d, 0x04, 0x83, 0x7b,
+ 0x9d, 0xb4, 0x2a, 0xe8,
+};
+static const unsigned char kat989_addin1[] = {
+ 0x9f, 0x3c, 0xad, 0xb2, 0x0c, 0x77, 0xe6, 0x57, 0x24, 0xd8, 0x5a, 0x37,
+ 0xb0, 0xb9, 0x76, 0x63, 0x35, 0x81, 0xa1, 0xb8, 0xeb, 0x52, 0x6e, 0x7a,
+ 0xb7, 0x95, 0xe8, 0xcf, 0xfd, 0x1d, 0xbb, 0x83, 0xa0, 0x56, 0x73, 0x32,
+ 0x06, 0xfe, 0x73, 0x2a,
+};
+static const unsigned char kat989_retbits[] = {
+ 0x5a, 0xf3, 0x6e, 0x40, 0x19, 0xd8, 0xfe, 0xf1, 0x11, 0x25, 0x62, 0x32,
+ 0x2a, 0x32, 0xd0, 0x3d, 0x49, 0x92, 0xc5, 0x07, 0x01, 0x77, 0xf7, 0xbd,
+ 0x31, 0x7b, 0x4a, 0xad, 0x03, 0x47, 0x59, 0x34, 0x15, 0x25, 0xe7, 0x97,
+ 0xb1, 0x7f, 0x08, 0xfe, 0xee, 0x8d, 0x16, 0x6e, 0x46, 0x1e, 0x9e, 0x77,
+ 0xac, 0x40, 0xc4, 0x64, 0x2b, 0xfe, 0x7a, 0x53, 0xb9, 0x1b, 0x1d, 0xba,
+ 0xca, 0x11, 0xeb, 0x83,
+};
+static const struct drbg_kat_no_reseed kat989_t = {
+ 13, kat989_entropyin, kat989_nonce, kat989_persstr,
+ kat989_addin0, kat989_addin1, kat989_retbits
+};
+static const struct drbg_kat kat989 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat989_t
+};
+
+static const unsigned char kat990_entropyin[] = {
+ 0x09, 0x19, 0x66, 0xc3, 0x42, 0x66, 0x7e, 0xaf, 0xb6, 0xd3, 0xd2, 0xd0,
+ 0x7c, 0x23, 0xfa, 0xb0, 0xa3, 0xf4, 0x35, 0xd7, 0x02, 0x29, 0x3f, 0xcc,
+ 0x2c, 0xcf, 0x8d, 0x22, 0x18, 0xf7, 0x11, 0x32, 0xc2, 0xb9, 0x70, 0xfd,
+ 0x5c, 0x50, 0x6f, 0xdf,
+};
+static const unsigned char kat990_nonce[] = {0};
+static const unsigned char kat990_persstr[] = {0};
+static const unsigned char kat990_addin0[] = {
+ 0x79, 0xb7, 0x5f, 0xe1, 0x04, 0xf0, 0xd7, 0xc8, 0x6b, 0xbe, 0x31, 0x15,
+ 0x85, 0x19, 0x8f, 0x82, 0x35, 0x0a, 0x13, 0xc4, 0xa7, 0xe4, 0x50, 0xcf,
+ 0xb8, 0x6e, 0x44, 0x0c, 0x00, 0xfc, 0x6f, 0x26, 0xa5, 0x08, 0xe4, 0xbc,
+ 0x73, 0x10, 0x7e, 0x2c,
+};
+static const unsigned char kat990_addin1[] = {
+ 0x6f, 0x20, 0x13, 0x45, 0x64, 0xe7, 0x9c, 0x7e, 0xb5, 0x30, 0x72, 0x7f,
+ 0x5b, 0x64, 0x99, 0x96, 0xc8, 0x9d, 0x7b, 0xd5, 0x4e, 0xba, 0xc0, 0x95,
+ 0xc1, 0x9a, 0x16, 0x23, 0x48, 0xfc, 0xe4, 0x68, 0x78, 0x2f, 0x03, 0x24,
+ 0xf2, 0x13, 0x8c, 0x84,
+};
+static const unsigned char kat990_retbits[] = {
+ 0xd0, 0x0f, 0x78, 0x4a, 0x96, 0x13, 0x67, 0x70, 0x23, 0xd2, 0x7a, 0x43,
+ 0x50, 0xef, 0xc4, 0xcc, 0x28, 0xf9, 0x5a, 0x39, 0x28, 0xc4, 0xc8, 0xda,
+ 0x67, 0x06, 0x3e, 0xe5, 0x9d, 0xe5, 0xd2, 0xda, 0x13, 0xa3, 0x09, 0x0f,
+ 0x58, 0x0e, 0x61, 0xff, 0xf1, 0xaf, 0x27, 0xa8, 0xf4, 0xba, 0x94, 0x18,
+ 0xe0, 0x7d, 0x85, 0x6a, 0x99, 0x6e, 0x83, 0x6a, 0x89, 0x06, 0x20, 0x64,
+ 0xba, 0xc7, 0xa9, 0xcc,
+};
+static const struct drbg_kat_no_reseed kat990_t = {
+ 14, kat990_entropyin, kat990_nonce, kat990_persstr,
+ kat990_addin0, kat990_addin1, kat990_retbits
+};
+static const struct drbg_kat kat990 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat990_t
+};
+
+static const unsigned char kat991_entropyin[] = {
+ 0xd7, 0x66, 0x97, 0x49, 0x5a, 0xdd, 0x9b, 0xaa, 0xc8, 0xcf, 0xdf, 0x90,
+ 0xe0, 0xa6, 0xf3, 0x38, 0x1a, 0x52, 0xb2, 0x88, 0x9f, 0x84, 0x0a, 0x24,
+ 0xcf, 0xc9, 0x60, 0x6f, 0x97, 0xc4, 0x94, 0x46, 0x20, 0x2e, 0x70, 0x58,
+ 0x3f, 0xde, 0x09, 0xdc,
+};
+static const unsigned char kat991_nonce[] = {0};
+static const unsigned char kat991_persstr[] = {
+ 0xd6, 0x4e, 0x54, 0x65, 0x23, 0xfb, 0x08, 0x2b, 0x5e, 0x87, 0xbb, 0xe6,
+ 0xb6, 0x6a, 0x8e, 0x6a, 0x79, 0x40, 0xbb, 0x06, 0xed, 0x17, 0xfe, 0x83,
+ 0x3c, 0x4e, 0x9b, 0xbb, 0x21, 0x13, 0x96, 0xc2, 0x27, 0xf8, 0x36, 0x71,
+ 0xc9, 0x24, 0x24, 0x0e,
+};
+static const unsigned char kat991_addin0[] = {0};
+static const unsigned char kat991_addin1[] = {0};
+static const unsigned char kat991_retbits[] = {
+ 0x56, 0x93, 0xf6, 0x8e, 0xc7, 0xa8, 0xd2, 0x63, 0x1d, 0xee, 0x9d, 0x37,
+ 0x15, 0x03, 0xe0, 0x5c, 0xbd, 0x5f, 0xb8, 0x72, 0x50, 0x6f, 0x04, 0x00,
+ 0x50, 0xb1, 0xd4, 0x41, 0xa9, 0x4b, 0xd7, 0x4e, 0xc0, 0x6f, 0x24, 0xc1,
+ 0xcc, 0x43, 0x63, 0xec, 0xe1, 0xd8, 0xb2, 0x29, 0x5e, 0x74, 0x38, 0x9b,
+ 0x6d, 0xd8, 0xb1, 0xe5, 0x43, 0x8b, 0xce, 0xab, 0x2f, 0x2b, 0xc2, 0xaf,
+ 0x5a, 0x9d, 0x8d, 0xa8,
+};
+static const struct drbg_kat_no_reseed kat991_t = {
+ 0, kat991_entropyin, kat991_nonce, kat991_persstr,
+ kat991_addin0, kat991_addin1, kat991_retbits
+};
+static const struct drbg_kat kat991 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat991_t
+};
+
+static const unsigned char kat992_entropyin[] = {
+ 0xc2, 0x97, 0xf7, 0x68, 0xf7, 0xff, 0x47, 0x41, 0x87, 0x6c, 0x90, 0xd3,
+ 0xeb, 0x15, 0x60, 0x0f, 0x11, 0x68, 0x5f, 0x9b, 0x93, 0x1e, 0x62, 0xec,
+ 0x58, 0x0a, 0xc0, 0x5d, 0xc8, 0xf1, 0x22, 0xf6, 0xa7, 0xa0, 0x5e, 0x09,
+ 0xc9, 0x43, 0x23, 0xae,
+};
+static const unsigned char kat992_nonce[] = {0};
+static const unsigned char kat992_persstr[] = {
+ 0x0d, 0x47, 0xaa, 0x43, 0xac, 0x1c, 0xc6, 0x7a, 0x75, 0x4b, 0x0a, 0x5a,
+ 0xfa, 0xcd, 0xff, 0x9e, 0x78, 0x4c, 0x9e, 0xcd, 0x18, 0x4a, 0xd3, 0x1b,
+ 0x07, 0x65, 0x74, 0xc5, 0x6a, 0x48, 0x55, 0x0b, 0xcd, 0x7d, 0x32, 0xb3,
+ 0xe9, 0xb3, 0xa1, 0x14,
+};
+static const unsigned char kat992_addin0[] = {0};
+static const unsigned char kat992_addin1[] = {0};
+static const unsigned char kat992_retbits[] = {
+ 0x85, 0x8c, 0x54, 0x20, 0x88, 0x0d, 0x2d, 0x22, 0xc9, 0xa3, 0xd2, 0x27,
+ 0x0c, 0xc8, 0xfb, 0xfe, 0x2c, 0x7b, 0x53, 0xb2, 0x11, 0x07, 0xb9, 0xe4,
+ 0x56, 0xe6, 0x46, 0x15, 0x7e, 0xe7, 0x48, 0xfd, 0xaf, 0xcc, 0xd8, 0x28,
+ 0x15, 0x42, 0x3f, 0xe6, 0x18, 0xc4, 0x45, 0xc8, 0x10, 0xda, 0x9a, 0x32,
+ 0x3c, 0xdb, 0x95, 0xde, 0xf4, 0x8e, 0x8b, 0xca, 0xf3, 0xb7, 0x28, 0x1a,
+ 0xcd, 0x49, 0x42, 0x2a,
+};
+static const struct drbg_kat_no_reseed kat992_t = {
+ 1, kat992_entropyin, kat992_nonce, kat992_persstr,
+ kat992_addin0, kat992_addin1, kat992_retbits
+};
+static const struct drbg_kat kat992 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat992_t
+};
+
+static const unsigned char kat993_entropyin[] = {
+ 0xbd, 0x71, 0x61, 0xdb, 0x32, 0x82, 0xde, 0x22, 0x58, 0xea, 0xc2, 0xbb,
+ 0x30, 0x40, 0x02, 0xfc, 0xc9, 0x6f, 0x87, 0xf9, 0x96, 0xae, 0x00, 0xe3,
+ 0x5b, 0xe3, 0xd8, 0x4f, 0xcb, 0x04, 0x83, 0x5e, 0xb7, 0x5f, 0x84, 0x3e,
+ 0x67, 0x99, 0xf7, 0xfd,
+};
+static const unsigned char kat993_nonce[] = {0};
+static const unsigned char kat993_persstr[] = {
+ 0x28, 0xb6, 0xdb, 0x39, 0x36, 0x0d, 0xd5, 0xb1, 0x9d, 0x9f, 0x4b, 0x86,
+ 0x2a, 0x8b, 0xc5, 0xc0, 0x61, 0x7c, 0xcf, 0x3c, 0x80, 0xd0, 0x2c, 0xbc,
+ 0xe1, 0xbd, 0xf9, 0xb3, 0x0e, 0x46, 0x64, 0x7e, 0xf5, 0x4f, 0x6b, 0x5c,
+ 0xe3, 0x47, 0x3e, 0x91,
+};
+static const unsigned char kat993_addin0[] = {0};
+static const unsigned char kat993_addin1[] = {0};
+static const unsigned char kat993_retbits[] = {
+ 0xca, 0xb8, 0x9f, 0x54, 0x88, 0x71, 0x69, 0x75, 0x8c, 0x26, 0xfa, 0xb0,
+ 0xf8, 0x33, 0x97, 0x2d, 0x0c, 0x07, 0x81, 0x01, 0x5b, 0x71, 0xef, 0xf1,
+ 0xa2, 0x28, 0x46, 0x05, 0xc7, 0xed, 0x98, 0x75, 0x52, 0xf0, 0xbc, 0xf1,
+ 0x7a, 0x59, 0x56, 0xcb, 0xbf, 0xf1, 0x80, 0x52, 0x84, 0x28, 0x5d, 0x53,
+ 0x8b, 0xec, 0x14, 0xf4, 0x14, 0xf3, 0xb2, 0xbc, 0x01, 0x6b, 0xfa, 0xc8,
+ 0x05, 0xdb, 0x96, 0xf8,
+};
+static const struct drbg_kat_no_reseed kat993_t = {
+ 2, kat993_entropyin, kat993_nonce, kat993_persstr,
+ kat993_addin0, kat993_addin1, kat993_retbits
+};
+static const struct drbg_kat kat993 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat993_t
+};
+
+static const unsigned char kat994_entropyin[] = {
+ 0x82, 0xf1, 0xc5, 0xee, 0xc1, 0x63, 0x7e, 0xc6, 0x63, 0x2b, 0xc9, 0x6c,
+ 0x8f, 0x70, 0x96, 0x27, 0x56, 0x1d, 0xe6, 0xb5, 0x6b, 0x88, 0x5c, 0x12,
+ 0x1d, 0x4f, 0x82, 0x0e, 0xd2, 0x2c, 0x21, 0x14, 0xde, 0x94, 0x67, 0x15,
+ 0x0f, 0x0e, 0x98, 0x19,
+};
+static const unsigned char kat994_nonce[] = {0};
+static const unsigned char kat994_persstr[] = {
+ 0x0a, 0x6d, 0x16, 0x49, 0xba, 0x34, 0x0d, 0xa7, 0xd7, 0x9f, 0x6f, 0x09,
+ 0x8b, 0xa2, 0x28, 0x4c, 0xf7, 0xf5, 0x7b, 0x28, 0x72, 0x5b, 0x21, 0x11,
+ 0x75, 0x5e, 0x36, 0xe7, 0x79, 0x8c, 0x5b, 0x66, 0x79, 0x4c, 0x8b, 0x10,
+ 0x9c, 0xd2, 0x99, 0x71,
+};
+static const unsigned char kat994_addin0[] = {0};
+static const unsigned char kat994_addin1[] = {0};
+static const unsigned char kat994_retbits[] = {
+ 0x2e, 0x33, 0x81, 0x68, 0xab, 0xba, 0xba, 0x95, 0xa5, 0x87, 0xcd, 0xc6,
+ 0xd9, 0xb1, 0x1e, 0x8b, 0x55, 0x5d, 0x89, 0x52, 0x65, 0x5d, 0x6d, 0xe4,
+ 0xed, 0x02, 0x6b, 0x05, 0x82, 0x37, 0xf5, 0xd7, 0xd0, 0x22, 0x14, 0xba,
+ 0x08, 0x48, 0xe5, 0x01, 0xc0, 0xa0, 0xb7, 0xe3, 0x8f, 0x98, 0xff, 0x32,
+ 0x78, 0x5c, 0xc5, 0x29, 0xb0, 0xa2, 0x67, 0x91, 0x83, 0x14, 0x73, 0xd1,
+ 0x88, 0xb0, 0x24, 0x87,
+};
+static const struct drbg_kat_no_reseed kat994_t = {
+ 3, kat994_entropyin, kat994_nonce, kat994_persstr,
+ kat994_addin0, kat994_addin1, kat994_retbits
+};
+static const struct drbg_kat kat994 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat994_t
+};
+
+static const unsigned char kat995_entropyin[] = {
+ 0x96, 0x43, 0xdf, 0x0b, 0x92, 0xd8, 0xcf, 0x95, 0x7b, 0xb6, 0x7e, 0xd8,
+ 0x6b, 0xdc, 0x02, 0x0b, 0xbf, 0xae, 0xbf, 0x53, 0x40, 0xac, 0xd2, 0xf3,
+ 0x44, 0x91, 0x9f, 0xd6, 0x3a, 0xf0, 0x75, 0x75, 0xa0, 0xe0, 0x1a, 0x8b,
+ 0x50, 0x07, 0x49, 0x4c,
+};
+static const unsigned char kat995_nonce[] = {0};
+static const unsigned char kat995_persstr[] = {
+ 0x8a, 0xa8, 0x4e, 0x2a, 0x29, 0xed, 0x39, 0x36, 0x3a, 0x80, 0x10, 0xf7,
+ 0x32, 0xcd, 0xe9, 0xc4, 0x6e, 0x86, 0x31, 0x4b, 0x69, 0x04, 0xd6, 0x90,
+ 0xa4, 0x0e, 0x65, 0xc6, 0x13, 0x86, 0xa2, 0x6d, 0x9e, 0x9c, 0x88, 0x21,
+ 0xee, 0x68, 0xaf, 0xa8,
+};
+static const unsigned char kat995_addin0[] = {0};
+static const unsigned char kat995_addin1[] = {0};
+static const unsigned char kat995_retbits[] = {
+ 0x89, 0x5c, 0x49, 0x95, 0x17, 0x7a, 0xfa, 0x56, 0xfc, 0x49, 0x00, 0x37,
+ 0xc2, 0x3e, 0xf8, 0x30, 0x7b, 0xe1, 0x04, 0x9d, 0xa8, 0xa0, 0xba, 0x32,
+ 0x9a, 0x25, 0xb4, 0x89, 0xe5, 0xbd, 0x26, 0xb7, 0xd5, 0x0c, 0x29, 0xdd,
+ 0xe0, 0xe7, 0x98, 0x02, 0xa1, 0x3c, 0x70, 0x26, 0x40, 0x32, 0xff, 0xad,
+ 0x06, 0xbb, 0x91, 0xcb, 0xa9, 0xcb, 0xd7, 0xdf, 0x36, 0x1f, 0x74, 0xbd,
+ 0x83, 0x09, 0xaa, 0x8a,
+};
+static const struct drbg_kat_no_reseed kat995_t = {
+ 4, kat995_entropyin, kat995_nonce, kat995_persstr,
+ kat995_addin0, kat995_addin1, kat995_retbits
+};
+static const struct drbg_kat kat995 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat995_t
+};
+
+static const unsigned char kat996_entropyin[] = {
+ 0x98, 0xb1, 0x95, 0x35, 0xdc, 0xce, 0xb0, 0xa0, 0x07, 0xdd, 0x62, 0xfe,
+ 0x75, 0x0b, 0xe5, 0x4d, 0x1e, 0x58, 0xf7, 0xae, 0x75, 0xac, 0x42, 0x91,
+ 0x9d, 0x6b, 0xd7, 0x69, 0xda, 0x73, 0xf8, 0xe4, 0x60, 0xb9, 0xd0, 0x38,
+ 0x95, 0x3c, 0xc0, 0xdd,
+};
+static const unsigned char kat996_nonce[] = {0};
+static const unsigned char kat996_persstr[] = {
+ 0x8c, 0x43, 0x81, 0xf6, 0x1b, 0x04, 0x8c, 0x25, 0x8c, 0x4b, 0x30, 0x9e,
+ 0x13, 0x2e, 0x21, 0x7b, 0xe9, 0x2e, 0x58, 0xf8, 0xc5, 0xa5, 0xdd, 0x15,
+ 0x38, 0x7a, 0xfc, 0xfb, 0x10, 0xab, 0x9f, 0xaf, 0xde, 0xd9, 0xc2, 0xd1,
+ 0xce, 0x48, 0x32, 0xc0,
+};
+static const unsigned char kat996_addin0[] = {0};
+static const unsigned char kat996_addin1[] = {0};
+static const unsigned char kat996_retbits[] = {
+ 0x14, 0x56, 0xfd, 0xdb, 0x09, 0xdb, 0x4d, 0xd4, 0x43, 0xf1, 0xbe, 0x27,
+ 0x0c, 0xbe, 0x1f, 0xeb, 0x7e, 0xa8, 0xeb, 0xdd, 0xc8, 0x79, 0x68, 0xb1,
+ 0x3c, 0x5d, 0x37, 0xe8, 0xeb, 0x51, 0x5f, 0xd5, 0x15, 0xca, 0x5a, 0xd8,
+ 0x37, 0xc4, 0x24, 0x38, 0x9d, 0x0b, 0x60, 0xfb, 0x06, 0x70, 0x20, 0xa4,
+ 0x94, 0x2d, 0x3d, 0x4b, 0x6f, 0x3c, 0xe1, 0x77, 0x8b, 0x35, 0x42, 0x0b,
+ 0x9d, 0xb1, 0xf8, 0xf3,
+};
+static const struct drbg_kat_no_reseed kat996_t = {
+ 5, kat996_entropyin, kat996_nonce, kat996_persstr,
+ kat996_addin0, kat996_addin1, kat996_retbits
+};
+static const struct drbg_kat kat996 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat996_t
+};
+
+static const unsigned char kat997_entropyin[] = {
+ 0xa6, 0x74, 0x41, 0x7c, 0x5b, 0x05, 0x6b, 0x1a, 0x04, 0x71, 0x9f, 0xac,
+ 0x10, 0x12, 0xfc, 0x42, 0x64, 0xb8, 0xc4, 0x43, 0x47, 0x86, 0xfb, 0xb3,
+ 0xf3, 0x29, 0x0d, 0xd3, 0xb2, 0xc6, 0x2b, 0xba, 0x1d, 0x21, 0x88, 0x29,
+ 0x2a, 0x8a, 0x82, 0x30,
+};
+static const unsigned char kat997_nonce[] = {0};
+static const unsigned char kat997_persstr[] = {
+ 0x19, 0xaa, 0x3b, 0xbf, 0x14, 0x8b, 0x88, 0x07, 0xa7, 0xb3, 0x1e, 0xa8,
+ 0xf0, 0xfa, 0x67, 0x0c, 0x68, 0x51, 0x7b, 0xb7, 0x81, 0xd9, 0xbe, 0xa5,
+ 0x46, 0xce, 0x43, 0xa7, 0x07, 0x74, 0xb9, 0xa8, 0x15, 0xc3, 0xd6, 0xd5,
+ 0xb6, 0x4c, 0x1e, 0x27,
+};
+static const unsigned char kat997_addin0[] = {0};
+static const unsigned char kat997_addin1[] = {0};
+static const unsigned char kat997_retbits[] = {
+ 0xfe, 0xf3, 0xf3, 0x83, 0x72, 0x8a, 0x86, 0x8c, 0x90, 0x08, 0x3a, 0xce,
+ 0x7b, 0x41, 0xe9, 0xd0, 0x55, 0xd2, 0x87, 0xe1, 0x0f, 0xad, 0x82, 0xc4,
+ 0xae, 0x3f, 0xec, 0xe1, 0x8b, 0x5c, 0xa6, 0x7f, 0x29, 0x63, 0x88, 0x39,
+ 0xe2, 0x41, 0xae, 0xc6, 0xda, 0xaa, 0x8c, 0xbf, 0x26, 0x30, 0xbe, 0x42,
+ 0xe7, 0x3b, 0x24, 0x3a, 0x5e, 0x69, 0x7d, 0xd9, 0x03, 0x6f, 0xa9, 0x9d,
+ 0x0e, 0xf3, 0x30, 0xdb,
+};
+static const struct drbg_kat_no_reseed kat997_t = {
+ 6, kat997_entropyin, kat997_nonce, kat997_persstr,
+ kat997_addin0, kat997_addin1, kat997_retbits
+};
+static const struct drbg_kat kat997 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat997_t
+};
+
+static const unsigned char kat998_entropyin[] = {
+ 0xde, 0x22, 0x98, 0x37, 0x31, 0x40, 0xa3, 0xe3, 0x76, 0x30, 0x22, 0xb6,
+ 0xaa, 0x22, 0x50, 0x0e, 0x74, 0xb0, 0xd8, 0xc1, 0x63, 0x7f, 0x77, 0x8e,
+ 0x14, 0x24, 0x0b, 0x2b, 0x23, 0xff, 0x65, 0xd5, 0x8e, 0xb3, 0xef, 0x42,
+ 0x43, 0xbc, 0x40, 0x7b,
+};
+static const unsigned char kat998_nonce[] = {0};
+static const unsigned char kat998_persstr[] = {
+ 0x96, 0xfb, 0xc0, 0xe7, 0x51, 0x9f, 0xf5, 0xe3, 0x36, 0xad, 0x3b, 0x52,
+ 0xf9, 0xd0, 0x29, 0x25, 0xee, 0xd5, 0xa5, 0xa2, 0xe0, 0x5f, 0xa5, 0x43,
+ 0xd9, 0xaa, 0x3a, 0x10, 0x3a, 0x48, 0xf0, 0x55, 0x82, 0x02, 0x3a, 0xa1,
+ 0xc3, 0x91, 0xc1, 0xc7,
+};
+static const unsigned char kat998_addin0[] = {0};
+static const unsigned char kat998_addin1[] = {0};
+static const unsigned char kat998_retbits[] = {
+ 0x28, 0x3a, 0x1b, 0x1f, 0x36, 0xcf, 0x5d, 0x65, 0x4a, 0x92, 0x66, 0xa8,
+ 0x47, 0xf2, 0x45, 0x98, 0x5e, 0x8d, 0x40, 0x47, 0x3e, 0x6c, 0x9e, 0xfd,
+ 0xcc, 0xe1, 0xba, 0xe3, 0x20, 0x18, 0x4e, 0x1b, 0x81, 0x70, 0x2e, 0xf0,
+ 0x41, 0x28, 0x88, 0x8a, 0xdf, 0xc5, 0xb1, 0x42, 0xb8, 0xd0, 0xb1, 0xf2,
+ 0xe6, 0xa1, 0x71, 0xb8, 0xd1, 0xa0, 0x79, 0x56, 0x19, 0x2d, 0x67, 0x1a,
+ 0x9f, 0x55, 0x77, 0xe6,
+};
+static const struct drbg_kat_no_reseed kat998_t = {
+ 7, kat998_entropyin, kat998_nonce, kat998_persstr,
+ kat998_addin0, kat998_addin1, kat998_retbits
+};
+static const struct drbg_kat kat998 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat998_t
+};
+
+static const unsigned char kat999_entropyin[] = {
+ 0x7b, 0xc9, 0x2d, 0x09, 0x2d, 0x7c, 0x03, 0x08, 0x33, 0x1c, 0xa5, 0x7a,
+ 0x1e, 0x8e, 0xf1, 0x3e, 0x92, 0x86, 0x7e, 0x74, 0x9d, 0xbe, 0x1b, 0xd7,
+ 0x0e, 0x82, 0x2e, 0x39, 0x10, 0xd8, 0x97, 0x70, 0xfd, 0x72, 0x32, 0x25,
+ 0x95, 0x40, 0x2f, 0x6f,
+};
+static const unsigned char kat999_nonce[] = {0};
+static const unsigned char kat999_persstr[] = {
+ 0x74, 0x5f, 0x63, 0x68, 0xad, 0x6a, 0xf8, 0x15, 0x5a, 0x2d, 0x03, 0x26,
+ 0xfc, 0x26, 0x08, 0x03, 0xbd, 0x43, 0xd4, 0x7e, 0x0d, 0x71, 0xed, 0x66,
+ 0x18, 0xf5, 0xfe, 0x85, 0x21, 0x79, 0x88, 0x96, 0xe8, 0x3e, 0xd1, 0xac,
+ 0xe8, 0xc8, 0x98, 0xf8,
+};
+static const unsigned char kat999_addin0[] = {0};
+static const unsigned char kat999_addin1[] = {0};
+static const unsigned char kat999_retbits[] = {
+ 0xe6, 0x07, 0xd5, 0x97, 0x77, 0x34, 0x49, 0x8f, 0xb3, 0x2d, 0x27, 0x42,
+ 0x04, 0xe3, 0xc7, 0x88, 0xb1, 0x99, 0xf3, 0xec, 0xc6, 0x44, 0x5a, 0xfc,
+ 0xea, 0x5a, 0x56, 0x4d, 0x86, 0xaf, 0xa5, 0x89, 0x14, 0xf6, 0xad, 0x36,
+ 0xc4, 0x5f, 0xca, 0xec, 0x2f, 0xcb, 0x8b, 0x82, 0x56, 0x0d, 0x81, 0x47,
+ 0x4b, 0xa3, 0x33, 0x8b, 0xa4, 0x7c, 0x1b, 0x7d, 0x94, 0xbf, 0x69, 0xb5,
+ 0xcc, 0x55, 0x31, 0x80,
+};
+static const struct drbg_kat_no_reseed kat999_t = {
+ 8, kat999_entropyin, kat999_nonce, kat999_persstr,
+ kat999_addin0, kat999_addin1, kat999_retbits
+};
+static const struct drbg_kat kat999 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat999_t
+};
+
+static const unsigned char kat1000_entropyin[] = {
+ 0xaf, 0x9e, 0x55, 0x67, 0x75, 0x9f, 0x9f, 0x57, 0x0a, 0x5e, 0xcf, 0xc1,
+ 0xb2, 0x12, 0x53, 0x03, 0x4f, 0xec, 0x65, 0x4e, 0x91, 0x36, 0x5d, 0x99,
+ 0x02, 0x58, 0x5a, 0x18, 0x94, 0xd6, 0xb6, 0x33, 0x44, 0xd9, 0x5b, 0x6e,
+ 0x88, 0xfd, 0x75, 0xb6,
+};
+static const unsigned char kat1000_nonce[] = {0};
+static const unsigned char kat1000_persstr[] = {
+ 0xe6, 0x47, 0x86, 0x31, 0xbd, 0xcd, 0x52, 0x19, 0xa5, 0x16, 0x83, 0x91,
+ 0x95, 0x24, 0x9c, 0xda, 0x75, 0x72, 0x4f, 0xd6, 0x31, 0x5c, 0xe3, 0x95,
+ 0xd2, 0x10, 0xf4, 0x35, 0x01, 0x00, 0x94, 0xfa, 0x28, 0xd5, 0x08, 0xca,
+ 0xfe, 0xfe, 0xcb, 0xab,
+};
+static const unsigned char kat1000_addin0[] = {0};
+static const unsigned char kat1000_addin1[] = {0};
+static const unsigned char kat1000_retbits[] = {
+ 0x58, 0xa9, 0xeb, 0x36, 0x3c, 0xde, 0x49, 0xd7, 0x6c, 0x9e, 0xfa, 0x45,
+ 0xfc, 0xdc, 0x4d, 0x01, 0x02, 0x92, 0xaa, 0x1f, 0x41, 0x30, 0x9e, 0xbc,
+ 0xd7, 0xbc, 0xb7, 0x76, 0x47, 0x64, 0xcf, 0x1e, 0x39, 0xc3, 0xf2, 0x5d,
+ 0x64, 0x0b, 0xdd, 0xae, 0x78, 0x57, 0x0f, 0xc6, 0x96, 0xf0, 0x41, 0x9c,
+ 0x07, 0xa1, 0x97, 0x9b, 0xc3, 0xcb, 0xff, 0xc4, 0x58, 0x9f, 0x23, 0xbd,
+ 0xa8, 0x96, 0xf6, 0x17,
+};
+static const struct drbg_kat_no_reseed kat1000_t = {
+ 9, kat1000_entropyin, kat1000_nonce, kat1000_persstr,
+ kat1000_addin0, kat1000_addin1, kat1000_retbits
+};
+static const struct drbg_kat kat1000 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1000_t
+};
+
+static const unsigned char kat1001_entropyin[] = {
+ 0xb1, 0xf6, 0x92, 0xd2, 0x4d, 0xa2, 0xf9, 0xed, 0x26, 0x4f, 0x3f, 0xc1,
+ 0xb2, 0x39, 0x37, 0x19, 0x8d, 0xf7, 0x14, 0x05, 0xbf, 0xc9, 0xa6, 0xcc,
+ 0xf2, 0x5c, 0xe3, 0x70, 0x9d, 0xe3, 0xb5, 0x33, 0x4a, 0x0f, 0x88, 0x5e,
+ 0x2b, 0xae, 0xa4, 0xd7,
+};
+static const unsigned char kat1001_nonce[] = {0};
+static const unsigned char kat1001_persstr[] = {
+ 0x2b, 0x75, 0x08, 0xf8, 0x3b, 0xea, 0xd9, 0x00, 0xb0, 0x40, 0x24, 0xdb,
+ 0xf8, 0x1a, 0xeb, 0xc0, 0x0e, 0x6a, 0x03, 0xc9, 0xb7, 0xd6, 0x0d, 0x83,
+ 0xb0, 0x76, 0x6d, 0x31, 0x09, 0x63, 0x0d, 0xff, 0x15, 0x1d, 0xf1, 0x79,
+ 0x75, 0x16, 0x49, 0x12,
+};
+static const unsigned char kat1001_addin0[] = {0};
+static const unsigned char kat1001_addin1[] = {0};
+static const unsigned char kat1001_retbits[] = {
+ 0xcc, 0x5b, 0x65, 0xb7, 0x12, 0xd9, 0x6e, 0x83, 0x17, 0x2e, 0xb7, 0xe3,
+ 0x0a, 0x22, 0xac, 0xfc, 0xc9, 0x96, 0x0a, 0x75, 0xa5, 0xf5, 0x04, 0x08,
+ 0x26, 0x5b, 0x8b, 0xd8, 0x57, 0x11, 0xf9, 0xb6, 0xc2, 0xae, 0x08, 0xab,
+ 0x1f, 0x33, 0x12, 0xcc, 0x58, 0xac, 0xff, 0xf5, 0xf4, 0x90, 0x1b, 0xcb,
+ 0xba, 0xf4, 0xbe, 0xe0, 0x8f, 0x29, 0x89, 0xf1, 0x32, 0x4d, 0x91, 0xfc,
+ 0x71, 0xdf, 0xb0, 0xf0,
+};
+static const struct drbg_kat_no_reseed kat1001_t = {
+ 10, kat1001_entropyin, kat1001_nonce, kat1001_persstr,
+ kat1001_addin0, kat1001_addin1, kat1001_retbits
+};
+static const struct drbg_kat kat1001 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1001_t
+};
+
+static const unsigned char kat1002_entropyin[] = {
+ 0x14, 0xfe, 0x15, 0xd3, 0x5f, 0x4c, 0x97, 0xb6, 0xdd, 0xe6, 0xf0, 0xc1,
+ 0x5e, 0x77, 0x48, 0x6c, 0xf8, 0xd6, 0xd2, 0x16, 0x4f, 0xd0, 0x93, 0x49,
+ 0xd8, 0x3c, 0xb9, 0x6b, 0x6b, 0x2b, 0x9a, 0x9c, 0x4e, 0xb7, 0x46, 0x11,
+ 0x72, 0xa9, 0x29, 0x09,
+};
+static const unsigned char kat1002_nonce[] = {0};
+static const unsigned char kat1002_persstr[] = {
+ 0x5b, 0xa3, 0x98, 0x63, 0x58, 0xb7, 0x30, 0x8d, 0x24, 0xac, 0x9f, 0x50,
+ 0x2e, 0xe1, 0x00, 0x5b, 0x6a, 0x2a, 0x02, 0xca, 0xfc, 0x30, 0x2b, 0x1a,
+ 0xf6, 0x96, 0x1d, 0x10, 0xb7, 0xd3, 0xf5, 0x2b, 0xa5, 0x03, 0x37, 0x9c,
+ 0xe0, 0xb6, 0x72, 0xc1,
+};
+static const unsigned char kat1002_addin0[] = {0};
+static const unsigned char kat1002_addin1[] = {0};
+static const unsigned char kat1002_retbits[] = {
+ 0xff, 0xf1, 0x48, 0xe0, 0xf5, 0x77, 0xf9, 0x73, 0xe8, 0xed, 0x6e, 0x77,
+ 0xbe, 0xd7, 0xa9, 0xa5, 0xbc, 0x6a, 0xd2, 0xda, 0x48, 0x91, 0x45, 0x13,
+ 0xa2, 0xb4, 0xfc, 0x57, 0x3b, 0x99, 0x09, 0xf4, 0x58, 0x08, 0x68, 0x32,
+ 0x87, 0x71, 0x75, 0x18, 0x15, 0xce, 0x7d, 0x5a, 0x20, 0x72, 0x60, 0x49,
+ 0x9c, 0x76, 0x90, 0xbf, 0x44, 0x97, 0x96, 0xb1, 0x67, 0xc9, 0xdf, 0xae,
+ 0x4d, 0xf2, 0x4f, 0x86,
+};
+static const struct drbg_kat_no_reseed kat1002_t = {
+ 11, kat1002_entropyin, kat1002_nonce, kat1002_persstr,
+ kat1002_addin0, kat1002_addin1, kat1002_retbits
+};
+static const struct drbg_kat kat1002 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1002_t
+};
+
+static const unsigned char kat1003_entropyin[] = {
+ 0xd6, 0xf4, 0x9e, 0x52, 0x6e, 0x35, 0xff, 0x25, 0x61, 0x62, 0xf1, 0x7c,
+ 0xc9, 0xfa, 0xa9, 0x12, 0x63, 0x4f, 0x5e, 0xd9, 0x23, 0x1a, 0x7a, 0x0a,
+ 0xf4, 0x7d, 0x59, 0x76, 0x6c, 0xd2, 0xbc, 0x83, 0xe8, 0xd4, 0x38, 0xe7,
+ 0x02, 0x91, 0xb6, 0xb8,
+};
+static const unsigned char kat1003_nonce[] = {0};
+static const unsigned char kat1003_persstr[] = {
+ 0x02, 0xd1, 0xf3, 0xa6, 0xc2, 0x0f, 0xb7, 0xc9, 0x07, 0xce, 0x6d, 0x82,
+ 0x2d, 0xc3, 0x6b, 0x7c, 0xe1, 0x7e, 0x1c, 0x71, 0xa3, 0x07, 0xd1, 0xec,
+ 0x24, 0x06, 0xdf, 0xeb, 0x45, 0x8f, 0xa0, 0xe8, 0xf2, 0x7c, 0x1c, 0x39,
+ 0xae, 0x6d, 0xbc, 0x65,
+};
+static const unsigned char kat1003_addin0[] = {0};
+static const unsigned char kat1003_addin1[] = {0};
+static const unsigned char kat1003_retbits[] = {
+ 0x1f, 0x34, 0xb7, 0x1b, 0x51, 0x5b, 0x3e, 0x6a, 0xa6, 0x7e, 0x45, 0xca,
+ 0xc0, 0x0d, 0x1d, 0x70, 0xe1, 0x9c, 0x03, 0xb7, 0x28, 0xd0, 0x00, 0x13,
+ 0x10, 0x9b, 0x5d, 0x98, 0x11, 0xee, 0x90, 0xeb, 0x7c, 0xf5, 0x01, 0xc9,
+ 0x32, 0x65, 0xce, 0x7f, 0x80, 0xa8, 0x16, 0xc4, 0xd1, 0x0a, 0x57, 0x25,
+ 0x0c, 0x08, 0x2f, 0xc4, 0x98, 0x50, 0xa2, 0x69, 0x15, 0x20, 0x59, 0x80,
+ 0x84, 0xe3, 0x4f, 0x07,
+};
+static const struct drbg_kat_no_reseed kat1003_t = {
+ 12, kat1003_entropyin, kat1003_nonce, kat1003_persstr,
+ kat1003_addin0, kat1003_addin1, kat1003_retbits
+};
+static const struct drbg_kat kat1003 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1003_t
+};
+
+static const unsigned char kat1004_entropyin[] = {
+ 0x53, 0x94, 0x5c, 0x28, 0x4c, 0x47, 0x14, 0x0b, 0xc5, 0x3f, 0x90, 0x88,
+ 0xa5, 0xf0, 0xfd, 0x25, 0x2e, 0x83, 0xca, 0x50, 0xb7, 0x8f, 0xd7, 0x39,
+ 0xe0, 0x54, 0x52, 0xc5, 0x0d, 0xcc, 0x39, 0xf2, 0x15, 0x25, 0x6d, 0x2d,
+ 0xe0, 0xda, 0xd0, 0xd9,
+};
+static const unsigned char kat1004_nonce[] = {0};
+static const unsigned char kat1004_persstr[] = {
+ 0x37, 0x61, 0x40, 0x61, 0x05, 0xbf, 0x94, 0x1f, 0xe1, 0xd9, 0x80, 0x03,
+ 0xdb, 0x68, 0xd4, 0x13, 0x26, 0x04, 0xab, 0x59, 0x83, 0x6b, 0x81, 0xae,
+ 0x15, 0x60, 0xab, 0xe0, 0xbf, 0x8f, 0x4d, 0xde, 0x22, 0xb6, 0xf4, 0xe9,
+ 0x8e, 0x52, 0x31, 0xf2,
+};
+static const unsigned char kat1004_addin0[] = {0};
+static const unsigned char kat1004_addin1[] = {0};
+static const unsigned char kat1004_retbits[] = {
+ 0x42, 0xb0, 0x0b, 0x0b, 0xb3, 0xee, 0x68, 0x44, 0x6b, 0x10, 0x28, 0xc5,
+ 0x9a, 0x00, 0x90, 0x9b, 0xd1, 0xdc, 0xf3, 0xed, 0x67, 0x54, 0x56, 0x52,
+ 0xe4, 0x26, 0x6e, 0x8e, 0xbb, 0x06, 0x40, 0x8e, 0x40, 0xd2, 0x0e, 0x2d,
+ 0xa9, 0x4c, 0x34, 0x92, 0xd6, 0x3e, 0x33, 0x27, 0x19, 0x3d, 0x54, 0x81,
+ 0x33, 0xad, 0xe2, 0xb5, 0x22, 0xde, 0x9f, 0xb0, 0xe2, 0x3f, 0x41, 0xd5,
+ 0xee, 0x74, 0x91, 0x24,
+};
+static const struct drbg_kat_no_reseed kat1004_t = {
+ 13, kat1004_entropyin, kat1004_nonce, kat1004_persstr,
+ kat1004_addin0, kat1004_addin1, kat1004_retbits
+};
+static const struct drbg_kat kat1004 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1004_t
+};
+
+static const unsigned char kat1005_entropyin[] = {
+ 0x0a, 0xc6, 0x27, 0x69, 0x2b, 0x28, 0xd3, 0x1e, 0x34, 0x71, 0x79, 0xc8,
+ 0xee, 0x9e, 0x50, 0x8e, 0x2b, 0x3f, 0xfb, 0xed, 0xae, 0x40, 0x09, 0x41,
+ 0x4b, 0x3b, 0x72, 0xe7, 0x6a, 0x37, 0x39, 0xf0, 0x29, 0x27, 0x8a, 0xd1,
+ 0x5d, 0xc1, 0xc9, 0x45,
+};
+static const unsigned char kat1005_nonce[] = {0};
+static const unsigned char kat1005_persstr[] = {
+ 0x94, 0x6f, 0xb7, 0xe5, 0xc3, 0xcb, 0xf3, 0xd1, 0x98, 0xf1, 0x91, 0x35,
+ 0xb1, 0xa7, 0x1a, 0x24, 0x1e, 0xe8, 0x92, 0xac, 0x5a, 0x03, 0x16, 0xf5,
+ 0x7e, 0xae, 0x70, 0x76, 0xa4, 0xd9, 0x9b, 0xf0, 0xe7, 0x7f, 0xe2, 0x3e,
+ 0x81, 0x25, 0x8c, 0xca,
+};
+static const unsigned char kat1005_addin0[] = {0};
+static const unsigned char kat1005_addin1[] = {0};
+static const unsigned char kat1005_retbits[] = {
+ 0x00, 0x00, 0x7f, 0x40, 0x7f, 0x75, 0x33, 0x5a, 0x35, 0x1d, 0x31, 0xd2,
+ 0x75, 0x43, 0x66, 0xf8, 0xf2, 0x20, 0xef, 0x2f, 0x96, 0x88, 0xa8, 0x7e,
+ 0x9d, 0x6a, 0xac, 0x59, 0xfa, 0x9f, 0x36, 0xbe, 0x82, 0x4b, 0x9b, 0xc7,
+ 0x40, 0x9e, 0xa9, 0x91, 0xd3, 0xe0, 0xa7, 0xc4, 0x11, 0x85, 0x4b, 0x37,
+ 0x01, 0xc8, 0x4a, 0xbd, 0xd7, 0xa6, 0x96, 0x40, 0x6d, 0xd1, 0x33, 0x31,
+ 0xe2, 0x78, 0x54, 0x55,
+};
+static const struct drbg_kat_no_reseed kat1005_t = {
+ 14, kat1005_entropyin, kat1005_nonce, kat1005_persstr,
+ kat1005_addin0, kat1005_addin1, kat1005_retbits
+};
+static const struct drbg_kat kat1005 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1005_t
+};
+
+static const unsigned char kat1006_entropyin[] = {
+ 0x8d, 0xb4, 0x7c, 0xa2, 0x84, 0x29, 0x4d, 0xae, 0xb3, 0x03, 0xe6, 0x45,
+ 0x94, 0x22, 0xe3, 0x25, 0x77, 0xca, 0x53, 0x9c, 0x00, 0xfe, 0xad, 0x88,
+ 0x39, 0xd4, 0x29, 0x46, 0xba, 0xd8, 0xeb, 0x30, 0xe4, 0x89, 0xc6, 0xd8,
+ 0x58, 0x76, 0x3a, 0x28,
+};
+static const unsigned char kat1006_nonce[] = {0};
+static const unsigned char kat1006_persstr[] = {
+ 0xc2, 0x49, 0x1a, 0x6c, 0xe1, 0xef, 0x9b, 0xd1, 0x3e, 0xb6, 0x6a, 0x86,
+ 0xc0, 0xf5, 0xbe, 0x3d, 0x2f, 0x32, 0x39, 0xbf, 0x7f, 0x71, 0x3e, 0x83,
+ 0x0e, 0x8a, 0xe8, 0x90, 0x7a, 0x20, 0x84, 0xf8, 0x73, 0xed, 0x3f, 0x5e,
+ 0xdd, 0xf5, 0xb5, 0x69,
+};
+static const unsigned char kat1006_addin0[] = {
+ 0xe9, 0xa3, 0xf2, 0x41, 0x80, 0x34, 0x5a, 0x0c, 0x06, 0x80, 0xaa, 0xcd,
+ 0xb8, 0x9c, 0xe7, 0xcf, 0x84, 0x1c, 0x7a, 0xd5, 0x47, 0xef, 0x92, 0xda,
+ 0xd5, 0x4f, 0x82, 0x62, 0x44, 0x5e, 0x2f, 0x0c, 0x54, 0xc8, 0xf8, 0xe4,
+ 0x23, 0x50, 0xf7, 0x9c,
+};
+static const unsigned char kat1006_addin1[] = {
+ 0xe2, 0x42, 0x7b, 0x93, 0x73, 0x84, 0x24, 0xc0, 0xfc, 0xe1, 0x4c, 0xb6,
+ 0xc5, 0xf1, 0xd6, 0xb6, 0xa0, 0x53, 0x27, 0x87, 0x15, 0x7b, 0x6d, 0x90,
+ 0x7b, 0xc5, 0x5d, 0x1c, 0x9a, 0x67, 0x04, 0x94, 0x77, 0x62, 0x12, 0xa6,
+ 0x43, 0xa9, 0xfb, 0x2c,
+};
+static const unsigned char kat1006_retbits[] = {
+ 0x49, 0x4b, 0x19, 0x57, 0xab, 0x38, 0x2b, 0x38, 0x20, 0x54, 0xf5, 0x4b,
+ 0xb6, 0x2f, 0x0b, 0x5b, 0x46, 0x4a, 0xfb, 0x3b, 0x18, 0x49, 0x2c, 0x60,
+ 0x80, 0x9c, 0x26, 0xe8, 0x6e, 0x45, 0xb6, 0xb9, 0xfa, 0x44, 0x52, 0x4d,
+ 0xd8, 0x9e, 0xcd, 0xca, 0x99, 0xc6, 0x0e, 0x68, 0xed, 0x10, 0x7f, 0xf3,
+ 0x36, 0xbe, 0x15, 0x91, 0xca, 0xdd, 0x6f, 0xd7, 0xe3, 0x5f, 0x74, 0x26,
+ 0x11, 0x80, 0x9f, 0x2e,
+};
+static const struct drbg_kat_no_reseed kat1006_t = {
+ 0, kat1006_entropyin, kat1006_nonce, kat1006_persstr,
+ kat1006_addin0, kat1006_addin1, kat1006_retbits
+};
+static const struct drbg_kat kat1006 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1006_t
+};
+
+static const unsigned char kat1007_entropyin[] = {
+ 0x09, 0xe7, 0xeb, 0x92, 0xda, 0x93, 0x12, 0x19, 0xc1, 0x08, 0x73, 0x36,
+ 0xb7, 0xd8, 0x15, 0x7c, 0x13, 0xfc, 0x4d, 0x9d, 0x64, 0x9b, 0x56, 0xa4,
+ 0x9b, 0x30, 0xb0, 0x38, 0xa1, 0xc8, 0xd0, 0xa4, 0x2e, 0xb4, 0x95, 0xf8,
+ 0x2c, 0x00, 0x14, 0x4c,
+};
+static const unsigned char kat1007_nonce[] = {0};
+static const unsigned char kat1007_persstr[] = {
+ 0x20, 0xec, 0x1e, 0x92, 0x71, 0x33, 0xa2, 0xf3, 0x9e, 0xf9, 0x94, 0xe4,
+ 0xf7, 0x75, 0x37, 0x54, 0x8f, 0xc6, 0x83, 0x55, 0xd5, 0x54, 0x91, 0x94,
+ 0x2c, 0xea, 0x33, 0xce, 0xbc, 0xa7, 0x59, 0xde, 0x51, 0x61, 0x18, 0x71,
+ 0x64, 0x15, 0xb4, 0x67,
+};
+static const unsigned char kat1007_addin0[] = {
+ 0x47, 0x5b, 0x2b, 0xf5, 0xec, 0xd1, 0xfe, 0x76, 0xd0, 0xda, 0x19, 0x81,
+ 0xb0, 0x75, 0xc4, 0x90, 0x71, 0x3f, 0xfb, 0x7b, 0x95, 0x73, 0x3b, 0xb9,
+ 0xda, 0x6b, 0x5e, 0xf5, 0x15, 0xd5, 0x38, 0x66, 0xe6, 0xdf, 0xd8, 0xab,
+ 0xb0, 0xaa, 0x84, 0x62,
+};
+static const unsigned char kat1007_addin1[] = {
+ 0x93, 0xa3, 0xbf, 0xc0, 0xa8, 0x0d, 0xc0, 0x4e, 0xd1, 0xae, 0x93, 0x7c,
+ 0xf0, 0x76, 0x21, 0xc0, 0x4e, 0x21, 0xb5, 0x5a, 0xdd, 0x83, 0x6a, 0xfe,
+ 0xec, 0x03, 0xb7, 0x12, 0x5e, 0xa2, 0xe7, 0xef, 0x3e, 0x06, 0xf4, 0x21,
+ 0xb8, 0xd7, 0x99, 0x8c,
+};
+static const unsigned char kat1007_retbits[] = {
+ 0xac, 0x68, 0x06, 0xb5, 0x32, 0x1f, 0x10, 0xb8, 0xa5, 0x6b, 0xf3, 0xa8,
+ 0xd3, 0x48, 0xdd, 0xc7, 0x3a, 0x3b, 0xc9, 0x98, 0x5d, 0xa7, 0x16, 0x00,
+ 0x57, 0x77, 0xf6, 0xc1, 0xf8, 0x1f, 0x94, 0x65, 0x97, 0xaf, 0x27, 0xba,
+ 0xc0, 0x16, 0xb6, 0x30, 0xcf, 0xd9, 0xdc, 0x3e, 0xde, 0x7f, 0xf2, 0xa2,
+ 0x16, 0xc8, 0xfe, 0x14, 0x69, 0xe7, 0xd7, 0x24, 0x2d, 0x16, 0x1a, 0x4a,
+ 0x23, 0x58, 0x23, 0x5b,
+};
+static const struct drbg_kat_no_reseed kat1007_t = {
+ 1, kat1007_entropyin, kat1007_nonce, kat1007_persstr,
+ kat1007_addin0, kat1007_addin1, kat1007_retbits
+};
+static const struct drbg_kat kat1007 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1007_t
+};
+
+static const unsigned char kat1008_entropyin[] = {
+ 0x0e, 0x0a, 0xe6, 0xcc, 0x9e, 0xdc, 0xe4, 0x68, 0xd9, 0x00, 0x91, 0xa4,
+ 0xd9, 0x6d, 0xc3, 0xee, 0xa7, 0x23, 0xdf, 0x98, 0xb8, 0x16, 0x14, 0xcb,
+ 0xf2, 0x9e, 0x1a, 0xbd, 0x47, 0x57, 0xeb, 0x55, 0x08, 0x55, 0xee, 0x95,
+ 0x5b, 0x45, 0x4f, 0xbe,
+};
+static const unsigned char kat1008_nonce[] = {0};
+static const unsigned char kat1008_persstr[] = {
+ 0xc7, 0x97, 0x58, 0x4d, 0xdd, 0x4e, 0x66, 0x79, 0x4e, 0x22, 0x88, 0xe1,
+ 0x6d, 0xb0, 0x53, 0x30, 0xc7, 0x5c, 0xee, 0x8e, 0x4a, 0x6d, 0x87, 0x47,
+ 0x27, 0x4c, 0xbc, 0x76, 0x32, 0x5d, 0xf4, 0xf9, 0xdf, 0x30, 0xf5, 0x42,
+ 0x39, 0x1b, 0x9c, 0xbb,
+};
+static const unsigned char kat1008_addin0[] = {
+ 0x98, 0x6a, 0x74, 0xe7, 0x19, 0xd3, 0x04, 0x77, 0x68, 0x06, 0x60, 0xb6,
+ 0x5a, 0xc2, 0x33, 0x00, 0x28, 0x24, 0xf0, 0x66, 0xef, 0x83, 0x60, 0x1c,
+ 0x09, 0xe8, 0x99, 0xa2, 0x99, 0xcb, 0x3c, 0x53, 0x86, 0xb6, 0xf1, 0xe8,
+ 0xc1, 0x8b, 0x08, 0x77,
+};
+static const unsigned char kat1008_addin1[] = {
+ 0xc3, 0x39, 0x33, 0x21, 0xaa, 0xcf, 0x82, 0x37, 0x57, 0xde, 0xa3, 0x97,
+ 0x79, 0xca, 0x9b, 0xab, 0xbc, 0x73, 0x3a, 0x55, 0xc5, 0x9c, 0xcf, 0x13,
+ 0x0c, 0xbc, 0xf9, 0x92, 0x2c, 0xa3, 0x5d, 0xd2, 0x8b, 0x0e, 0xc2, 0xef,
+ 0x11, 0xf1, 0xb4, 0x74,
+};
+static const unsigned char kat1008_retbits[] = {
+ 0xe9, 0x53, 0x81, 0xd1, 0x00, 0x2c, 0x7b, 0x5e, 0x94, 0x88, 0x4f, 0x09,
+ 0xcd, 0xea, 0x1f, 0x50, 0x60, 0x6e, 0x2c, 0xa4, 0xb7, 0x4c, 0x85, 0xbf,
+ 0x79, 0xd6, 0x86, 0x4f, 0xb4, 0x6e, 0x4c, 0x08, 0xab, 0x8a, 0xc3, 0xe5,
+ 0x84, 0x86, 0x8a, 0x50, 0x98, 0x59, 0x18, 0x5b, 0x31, 0xec, 0xf3, 0x31,
+ 0x4a, 0xaf, 0x47, 0x06, 0x08, 0x22, 0xe4, 0x91, 0xa6, 0xe8, 0x7f, 0x9b,
+ 0x16, 0x07, 0x6b, 0x88,
+};
+static const struct drbg_kat_no_reseed kat1008_t = {
+ 2, kat1008_entropyin, kat1008_nonce, kat1008_persstr,
+ kat1008_addin0, kat1008_addin1, kat1008_retbits
+};
+static const struct drbg_kat kat1008 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1008_t
+};
+
+static const unsigned char kat1009_entropyin[] = {
+ 0xe6, 0x57, 0x7b, 0x32, 0x6e, 0x60, 0x01, 0x64, 0x0c, 0xc7, 0x1e, 0x49,
+ 0x97, 0x2a, 0x8b, 0xfe, 0x78, 0x64, 0x5e, 0x6d, 0xba, 0x9d, 0x29, 0xf8,
+ 0x45, 0xd7, 0x9f, 0x35, 0x0c, 0x7e, 0xcd, 0x90, 0xf3, 0x4d, 0xf8, 0xa7,
+ 0x4b, 0x70, 0xfe, 0xab,
+};
+static const unsigned char kat1009_nonce[] = {0};
+static const unsigned char kat1009_persstr[] = {
+ 0xaf, 0xa8, 0x0b, 0xa7, 0xe1, 0x80, 0xec, 0xad, 0x94, 0xde, 0x06, 0x94,
+ 0x84, 0xe7, 0xb8, 0x40, 0x1b, 0x97, 0xb2, 0xbe, 0xd9, 0xe8, 0xd9, 0xf3,
+ 0x00, 0xab, 0x9b, 0x21, 0x09, 0x66, 0x0d, 0x1f, 0x07, 0x0e, 0xea, 0xdb,
+ 0x5e, 0xa0, 0xc6, 0xf0,
+};
+static const unsigned char kat1009_addin0[] = {
+ 0x88, 0xec, 0x9e, 0x47, 0x6e, 0x65, 0xa6, 0xc4, 0x24, 0xd0, 0xf2, 0x50,
+ 0xac, 0xcb, 0x17, 0x85, 0x83, 0x6b, 0x7c, 0x7b, 0x02, 0x86, 0x7d, 0xbd,
+ 0xd3, 0xcf, 0x9c, 0x09, 0x13, 0xcb, 0x11, 0xbf, 0x19, 0xe6, 0xa6, 0x0a,
+ 0x85, 0xd7, 0xe7, 0x3a,
+};
+static const unsigned char kat1009_addin1[] = {
+ 0x61, 0xcc, 0x72, 0xc1, 0x41, 0xa4, 0x2f, 0x38, 0x9c, 0xcf, 0x9c, 0x15,
+ 0xea, 0x31, 0xbe, 0x87, 0x13, 0x64, 0x44, 0xeb, 0x7d, 0xcf, 0x93, 0x87,
+ 0x1d, 0xac, 0xa3, 0xc2, 0xae, 0xc3, 0x53, 0x03, 0xca, 0xce, 0x86, 0xff,
+ 0x0c, 0x3c, 0x96, 0xb0,
+};
+static const unsigned char kat1009_retbits[] = {
+ 0x68, 0xcc, 0x04, 0x7e, 0x83, 0xea, 0x08, 0xbc, 0xbf, 0xb2, 0x0f, 0x2c,
+ 0x9f, 0x24, 0x05, 0x07, 0xe4, 0xea, 0xf2, 0x32, 0x4d, 0x11, 0x6c, 0x53,
+ 0xc8, 0x76, 0x11, 0x95, 0xba, 0x25, 0x5a, 0x51, 0x08, 0x98, 0x51, 0xc4,
+ 0xa5, 0x31, 0xb4, 0x02, 0x69, 0x1e, 0xbf, 0xa4, 0x23, 0x5a, 0x78, 0x86,
+ 0x3f, 0xa9, 0xd6, 0x26, 0x95, 0x6b, 0xaa, 0x18, 0x57, 0x05, 0x75, 0xa4,
+ 0xd5, 0x03, 0x1b, 0x85,
+};
+static const struct drbg_kat_no_reseed kat1009_t = {
+ 3, kat1009_entropyin, kat1009_nonce, kat1009_persstr,
+ kat1009_addin0, kat1009_addin1, kat1009_retbits
+};
+static const struct drbg_kat kat1009 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1009_t
+};
+
+static const unsigned char kat1010_entropyin[] = {
+ 0xed, 0x76, 0x8d, 0x7e, 0xe7, 0xee, 0x98, 0x8b, 0xe1, 0x2a, 0x46, 0x3e,
+ 0x50, 0x06, 0x40, 0x47, 0x1b, 0x0f, 0x21, 0x41, 0xd5, 0x4e, 0x38, 0xc9,
+ 0x46, 0x1c, 0x79, 0xa3, 0x0b, 0x57, 0xc6, 0x98, 0x3a, 0x39, 0x8f, 0xd5,
+ 0x2c, 0xe0, 0x39, 0xd0,
+};
+static const unsigned char kat1010_nonce[] = {0};
+static const unsigned char kat1010_persstr[] = {
+ 0xaa, 0xc5, 0x6f, 0xf0, 0xa4, 0x36, 0xb6, 0x3a, 0x54, 0x8e, 0x9a, 0x24,
+ 0x41, 0x0d, 0x61, 0xfc, 0x7c, 0x8e, 0xa0, 0xa6, 0x07, 0xc9, 0x01, 0x29,
+ 0x85, 0x18, 0x47, 0x62, 0x35, 0x69, 0xb8, 0x63, 0xb1, 0x26, 0x7c, 0xc8,
+ 0xfc, 0x3e, 0xf8, 0x97,
+};
+static const unsigned char kat1010_addin0[] = {
+ 0x1f, 0xd6, 0x14, 0xa7, 0x77, 0x62, 0x6f, 0xb4, 0x3b, 0x23, 0x28, 0xeb,
+ 0x67, 0xa6, 0x32, 0xfa, 0x77, 0x5f, 0xb8, 0xbf, 0x39, 0xac, 0x61, 0x09,
+ 0x71, 0xb3, 0x6b, 0x42, 0xd7, 0xbe, 0xe6, 0x16, 0x81, 0x19, 0xa3, 0xdd,
+ 0xc7, 0xa9, 0x68, 0x7a,
+};
+static const unsigned char kat1010_addin1[] = {
+ 0x49, 0x61, 0x1c, 0x47, 0xda, 0x3d, 0xd5, 0x7f, 0xa4, 0xad, 0x96, 0x66,
+ 0x37, 0xe9, 0x4d, 0xa5, 0x19, 0x5e, 0x9e, 0xe8, 0xab, 0x71, 0x03, 0xe5,
+ 0xfe, 0xbf, 0xa5, 0x9b, 0x23, 0xfa, 0x07, 0x15, 0x78, 0x58, 0x42, 0xf6,
+ 0x57, 0xe2, 0x10, 0x2f,
+};
+static const unsigned char kat1010_retbits[] = {
+ 0x36, 0x83, 0xa7, 0xe4, 0x36, 0x64, 0x29, 0x34, 0x45, 0x50, 0xba, 0xa4,
+ 0xe5, 0x27, 0x8f, 0x0d, 0x99, 0x32, 0xc1, 0x65, 0x8d, 0xd8, 0xb2, 0xd8,
+ 0x1f, 0x82, 0x8c, 0x19, 0x4c, 0x33, 0x10, 0xc3, 0xcb, 0xd7, 0xa2, 0x1c,
+ 0x91, 0x19, 0xaf, 0x9b, 0x60, 0x88, 0xa4, 0x1e, 0x1a, 0xc5, 0x92, 0x85,
+ 0x45, 0xce, 0x5f, 0xe2, 0xeb, 0xda, 0xce, 0x32, 0xaa, 0x4f, 0xbb, 0x20,
+ 0x70, 0x48, 0x9a, 0x34,
+};
+static const struct drbg_kat_no_reseed kat1010_t = {
+ 4, kat1010_entropyin, kat1010_nonce, kat1010_persstr,
+ kat1010_addin0, kat1010_addin1, kat1010_retbits
+};
+static const struct drbg_kat kat1010 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1010_t
+};
+
+static const unsigned char kat1011_entropyin[] = {
+ 0x2c, 0x9a, 0xd8, 0xd0, 0xc4, 0xd2, 0x8f, 0xc4, 0xbe, 0x9b, 0x27, 0x49,
+ 0xd2, 0x84, 0xc4, 0x8d, 0xdb, 0xd8, 0x6a, 0x2a, 0xb4, 0x71, 0xee, 0xd2,
+ 0x67, 0xad, 0x80, 0xd0, 0xa6, 0xd3, 0x58, 0x27, 0xbd, 0x90, 0xe8, 0xe9,
+ 0x9a, 0xe0, 0x8a, 0xf1,
+};
+static const unsigned char kat1011_nonce[] = {0};
+static const unsigned char kat1011_persstr[] = {
+ 0x0b, 0xf3, 0x0f, 0xf8, 0x11, 0xa1, 0xe1, 0x5a, 0x66, 0x11, 0xa3, 0x55,
+ 0x97, 0xc3, 0xf3, 0x48, 0x16, 0x4a, 0xda, 0xd4, 0x69, 0x12, 0x73, 0x40,
+ 0x5f, 0x1f, 0x79, 0xe2, 0x9c, 0xae, 0x87, 0x57, 0xb8, 0xa3, 0x76, 0xf2,
+ 0xda, 0xf6, 0x65, 0xa4,
+};
+static const unsigned char kat1011_addin0[] = {
+ 0x11, 0x28, 0x59, 0x91, 0x34, 0x84, 0x7e, 0xb7, 0xe2, 0xd9, 0x54, 0x12,
+ 0x46, 0x76, 0x8b, 0xbc, 0xc9, 0x11, 0x82, 0xc8, 0x57, 0x54, 0x4a, 0x03,
+ 0x2b, 0x5b, 0xee, 0x56, 0xb0, 0x62, 0x23, 0x1f, 0xb6, 0xa0, 0x0f, 0xf1,
+ 0x53, 0x0e, 0x4c, 0x5b,
+};
+static const unsigned char kat1011_addin1[] = {
+ 0x62, 0x22, 0xc6, 0x4f, 0x81, 0xa9, 0x00, 0xf1, 0x97, 0xd7, 0x11, 0x02,
+ 0x23, 0x66, 0x2e, 0xfa, 0x50, 0xc0, 0xe1, 0xb5, 0xfe, 0xbf, 0x65, 0x4f,
+ 0xfd, 0xfb, 0xa8, 0x07, 0xc5, 0x73, 0x76, 0x32, 0x5e, 0x2c, 0x38, 0xb8,
+ 0xfc, 0x32, 0xfd, 0x1b,
+};
+static const unsigned char kat1011_retbits[] = {
+ 0xe0, 0x64, 0x7d, 0xd7, 0x76, 0x1f, 0x40, 0xec, 0xd2, 0xd1, 0x31, 0x95,
+ 0x23, 0x70, 0x41, 0xc0, 0x6b, 0x1e, 0x92, 0x1a, 0x7d, 0x07, 0xf1, 0xb0,
+ 0x41, 0x80, 0xac, 0x47, 0xa9, 0x9f, 0x27, 0xd1, 0x7f, 0xbc, 0x4a, 0x3a,
+ 0x50, 0xa1, 0xd1, 0xfd, 0x82, 0x6a, 0x0e, 0x84, 0x89, 0xac, 0x38, 0x67,
+ 0x03, 0x2a, 0x40, 0x51, 0x7e, 0x1b, 0x5f, 0xd1, 0xe2, 0x6a, 0xc8, 0x1b,
+ 0xdc, 0x8b, 0xf5, 0xc8,
+};
+static const struct drbg_kat_no_reseed kat1011_t = {
+ 5, kat1011_entropyin, kat1011_nonce, kat1011_persstr,
+ kat1011_addin0, kat1011_addin1, kat1011_retbits
+};
+static const struct drbg_kat kat1011 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1011_t
+};
+
+static const unsigned char kat1012_entropyin[] = {
+ 0x23, 0x77, 0x45, 0x5b, 0xd3, 0x4a, 0xc4, 0xcb, 0xf9, 0xc1, 0xf5, 0xa2,
+ 0x5a, 0xed, 0xb7, 0x2b, 0xf3, 0xde, 0x72, 0x51, 0x63, 0x73, 0x5b, 0x06,
+ 0xd9, 0x38, 0x46, 0x2c, 0x90, 0x15, 0x6b, 0x9d, 0x5d, 0x00, 0x3c, 0xd4,
+ 0x7d, 0x2e, 0x91, 0x89,
+};
+static const unsigned char kat1012_nonce[] = {0};
+static const unsigned char kat1012_persstr[] = {
+ 0x84, 0xe3, 0x20, 0x5b, 0xcd, 0xb9, 0x3c, 0x0a, 0x01, 0xac, 0xa3, 0x86,
+ 0xb0, 0xb4, 0x8a, 0xb6, 0x04, 0x6d, 0x91, 0x3d, 0x33, 0x25, 0xc8, 0xc6,
+ 0x35, 0xce, 0x02, 0x75, 0x05, 0x37, 0x23, 0x65, 0x79, 0xbf, 0xc7, 0x5f,
+ 0xaa, 0x26, 0xbd, 0x34,
+};
+static const unsigned char kat1012_addin0[] = {
+ 0xd3, 0x50, 0xcb, 0xf5, 0x26, 0x39, 0x4a, 0x9b, 0x59, 0x25, 0xbb, 0x7e,
+ 0xc8, 0xaf, 0x62, 0xe3, 0xc2, 0xfc, 0x44, 0x33, 0xf6, 0x71, 0xd1, 0xd7,
+ 0x97, 0x8e, 0x8b, 0x5a, 0xb4, 0xfc, 0xdd, 0x18, 0xce, 0x97, 0x2e, 0xb7,
+ 0xd6, 0x05, 0x8e, 0x2a,
+};
+static const unsigned char kat1012_addin1[] = {
+ 0x87, 0xf8, 0x8d, 0x41, 0x09, 0x5d, 0xb3, 0xf4, 0x68, 0xb3, 0x32, 0xbd,
+ 0x7f, 0x24, 0xe8, 0x48, 0x29, 0x9e, 0xae, 0x94, 0x6d, 0x43, 0x8d, 0x22,
+ 0x9e, 0xdb, 0xea, 0x03, 0x55, 0xc8, 0x06, 0x3d, 0x67, 0x81, 0x31, 0xc9,
+ 0x45, 0xee, 0x6f, 0x1b,
+};
+static const unsigned char kat1012_retbits[] = {
+ 0xdc, 0xcb, 0x3d, 0x65, 0x2b, 0xd3, 0x58, 0x35, 0x39, 0x09, 0x1c, 0x61,
+ 0x15, 0x99, 0x6f, 0xb7, 0x56, 0x3b, 0xae, 0x73, 0x7f, 0x3f, 0x7e, 0xdc,
+ 0x0d, 0xbf, 0x72, 0x98, 0x48, 0xef, 0x60, 0x6d, 0xf0, 0x9d, 0xc5, 0xe3,
+ 0xc2, 0xb2, 0xa4, 0x23, 0x66, 0x8f, 0xc8, 0x1e, 0xf0, 0xfe, 0xa8, 0x12,
+ 0x07, 0x43, 0x0a, 0xb3, 0x67, 0x4d, 0x11, 0x7a, 0x69, 0x81, 0x0b, 0x2b,
+ 0x0a, 0x92, 0xe7, 0xee,
+};
+static const struct drbg_kat_no_reseed kat1012_t = {
+ 6, kat1012_entropyin, kat1012_nonce, kat1012_persstr,
+ kat1012_addin0, kat1012_addin1, kat1012_retbits
+};
+static const struct drbg_kat kat1012 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1012_t
+};
+
+static const unsigned char kat1013_entropyin[] = {
+ 0x80, 0xa1, 0xd1, 0x8c, 0x87, 0xbb, 0x35, 0xed, 0xb9, 0x37, 0x16, 0xc9,
+ 0x6c, 0x95, 0x77, 0x9c, 0xbb, 0x24, 0xbd, 0x4f, 0x1b, 0x49, 0x4c, 0xee,
+ 0x3b, 0x4d, 0x3d, 0x31, 0x99, 0xf1, 0x0b, 0x08, 0xf6, 0x58, 0xcb, 0x2a,
+ 0x08, 0x95, 0x6b, 0x83,
+};
+static const unsigned char kat1013_nonce[] = {0};
+static const unsigned char kat1013_persstr[] = {
+ 0xee, 0x0a, 0xfb, 0x96, 0x60, 0x08, 0x8e, 0x66, 0xc5, 0x88, 0x81, 0x3a,
+ 0x01, 0xa9, 0xda, 0x00, 0x1b, 0x78, 0xbe, 0x45, 0x5c, 0x62, 0x7a, 0x37,
+ 0x20, 0x90, 0x3d, 0xed, 0x5a, 0xe8, 0x51, 0xd6, 0x64, 0xe4, 0xbc, 0x3c,
+ 0xf6, 0xb9, 0x1b, 0x59,
+};
+static const unsigned char kat1013_addin0[] = {
+ 0xa8, 0x48, 0x72, 0x6a, 0xbb, 0xc0, 0xaf, 0x04, 0x20, 0x9f, 0xc5, 0x24,
+ 0x08, 0x8f, 0x5b, 0xc5, 0x3f, 0x16, 0x50, 0xd9, 0xea, 0x14, 0x0a, 0x72,
+ 0xe0, 0x43, 0xc3, 0xc7, 0xe1, 0x07, 0xca, 0xe0, 0x5f, 0xa2, 0xe0, 0xed,
+ 0xeb, 0x8e, 0xad, 0x0d,
+};
+static const unsigned char kat1013_addin1[] = {
+ 0xad, 0x33, 0x68, 0x69, 0xb2, 0xe2, 0x21, 0x07, 0x06, 0x0a, 0xbe, 0x50,
+ 0xf5, 0x44, 0xb9, 0x6c, 0x43, 0x43, 0x07, 0xa6, 0x45, 0xc0, 0x3f, 0xd5,
+ 0x72, 0x2f, 0xf1, 0x16, 0x8d, 0x51, 0x8f, 0xf5, 0x28, 0xd2, 0xf5, 0x3c,
+ 0x7c, 0x88, 0xb0, 0x8f,
+};
+static const unsigned char kat1013_retbits[] = {
+ 0xf2, 0x5d, 0xd7, 0xeb, 0x2c, 0x7a, 0xb6, 0x05, 0xc7, 0x1b, 0xff, 0x4e,
+ 0xb4, 0x92, 0x4b, 0x05, 0x95, 0x05, 0x70, 0xf5, 0x4b, 0xd6, 0xea, 0x6f,
+ 0x85, 0x07, 0x33, 0x93, 0x08, 0x3e, 0x4f, 0xc4, 0x04, 0x31, 0x4a, 0x19,
+ 0xa7, 0x2f, 0x9e, 0xf5, 0x14, 0x77, 0xd3, 0x6b, 0x66, 0x13, 0x98, 0x5a,
+ 0xb0, 0x2b, 0x68, 0xac, 0x1d, 0x90, 0xce, 0xf8, 0x0a, 0x9a, 0xcd, 0x77,
+ 0x65, 0x53, 0x7a, 0x17,
+};
+static const struct drbg_kat_no_reseed kat1013_t = {
+ 7, kat1013_entropyin, kat1013_nonce, kat1013_persstr,
+ kat1013_addin0, kat1013_addin1, kat1013_retbits
+};
+static const struct drbg_kat kat1013 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1013_t
+};
+
+static const unsigned char kat1014_entropyin[] = {
+ 0x98, 0xda, 0xbf, 0xe2, 0x63, 0x5c, 0x6f, 0x88, 0xf1, 0x56, 0xa1, 0xb5,
+ 0x7d, 0x92, 0x49, 0x39, 0xa8, 0xb5, 0x8b, 0x5a, 0x9a, 0xb5, 0x5d, 0x2a,
+ 0x85, 0x5b, 0xde, 0x86, 0x9a, 0x95, 0x03, 0x89, 0x17, 0x99, 0xc7, 0xa7,
+ 0x37, 0xd2, 0xc4, 0xca,
+};
+static const unsigned char kat1014_nonce[] = {0};
+static const unsigned char kat1014_persstr[] = {
+ 0x91, 0x20, 0x7a, 0x04, 0x2e, 0x31, 0x0d, 0x2d, 0x64, 0xe4, 0x3d, 0xbd,
+ 0xba, 0xee, 0x9d, 0x04, 0xfe, 0x49, 0x27, 0xf3, 0xae, 0x72, 0x16, 0xd3,
+ 0x1a, 0x09, 0xcd, 0x18, 0x7b, 0x0e, 0x1b, 0xc9, 0xef, 0xbf, 0x60, 0x00,
+ 0xff, 0xbe, 0x88, 0x24,
+};
+static const unsigned char kat1014_addin0[] = {
+ 0x48, 0xde, 0x31, 0xd7, 0xd9, 0x77, 0xe9, 0xc9, 0x98, 0x4f, 0x3e, 0x03,
+ 0xc4, 0x71, 0xbf, 0x0a, 0x37, 0xbe, 0xf7, 0xcd, 0x2e, 0xbe, 0xb8, 0x48,
+ 0x08, 0x47, 0xd0, 0xa4, 0x20, 0x3d, 0x9d, 0x79, 0x33, 0x0d, 0xef, 0x0b,
+ 0x25, 0x7d, 0x41, 0xdb,
+};
+static const unsigned char kat1014_addin1[] = {
+ 0x96, 0x4c, 0x5b, 0x9e, 0x0e, 0x20, 0x88, 0x4f, 0x5d, 0x56, 0xd5, 0xd2,
+ 0x6d, 0x0d, 0x4b, 0xca, 0xb0, 0x01, 0x4c, 0x0f, 0x47, 0x52, 0xe5, 0xc8,
+ 0x08, 0x7b, 0xe7, 0x4b, 0x0d, 0x90, 0xfc, 0xf5, 0x6e, 0x74, 0xd6, 0xae,
+ 0x0e, 0xbd, 0xb4, 0xbb,
+};
+static const unsigned char kat1014_retbits[] = {
+ 0xb7, 0xb6, 0x2a, 0xb2, 0x85, 0xb5, 0x0f, 0xaa, 0x98, 0x86, 0x95, 0xbb,
+ 0xf0, 0x6e, 0x19, 0xcf, 0xdb, 0x0e, 0xbb, 0xcc, 0x4b, 0x53, 0x03, 0x17,
+ 0x6b, 0x79, 0x55, 0x26, 0x32, 0x2f, 0x10, 0x0e, 0x90, 0x87, 0x66, 0x4d,
+ 0xf3, 0xe4, 0x6e, 0x24, 0x7e, 0x08, 0xb0, 0xd5, 0x1f, 0xcf, 0x28, 0x0b,
+ 0xff, 0x78, 0x29, 0xcc, 0x2e, 0x46, 0xe3, 0x6e, 0x10, 0xb8, 0x86, 0x43,
+ 0x37, 0xda, 0x8f, 0x5c,
+};
+static const struct drbg_kat_no_reseed kat1014_t = {
+ 8, kat1014_entropyin, kat1014_nonce, kat1014_persstr,
+ kat1014_addin0, kat1014_addin1, kat1014_retbits
+};
+static const struct drbg_kat kat1014 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1014_t
+};
+
+static const unsigned char kat1015_entropyin[] = {
+ 0x85, 0xf5, 0x09, 0xf2, 0xee, 0x6e, 0x8f, 0x96, 0x4d, 0x92, 0x33, 0xdb,
+ 0xf5, 0x98, 0x75, 0x6e, 0xc4, 0x14, 0x72, 0x73, 0xfc, 0xa0, 0x82, 0x82,
+ 0x3b, 0x75, 0xe1, 0xac, 0xf7, 0x74, 0xe2, 0x94, 0x4e, 0x6f, 0xec, 0xd8,
+ 0xda, 0x9f, 0xd7, 0x82,
+};
+static const unsigned char kat1015_nonce[] = {0};
+static const unsigned char kat1015_persstr[] = {
+ 0x3e, 0x28, 0x4f, 0xc7, 0x94, 0x87, 0x42, 0xf9, 0x8c, 0x61, 0x22, 0x20,
+ 0xfb, 0x47, 0xae, 0xb2, 0x4f, 0x38, 0x7a, 0x46, 0x76, 0x6f, 0x05, 0x24,
+ 0x75, 0xb3, 0x28, 0x62, 0x9c, 0xce, 0x30, 0x73, 0xf5, 0x3e, 0xdf, 0xd9,
+ 0x0a, 0x38, 0x4e, 0x84,
+};
+static const unsigned char kat1015_addin0[] = {
+ 0xa2, 0xe6, 0xc7, 0xd8, 0xdd, 0x2e, 0xdb, 0xc5, 0xcd, 0x1f, 0x5a, 0x0d,
+ 0xb8, 0x66, 0x14, 0x98, 0x98, 0x69, 0x50, 0x49, 0xa3, 0x4f, 0x0a, 0x18,
+ 0x86, 0x8f, 0x2e, 0xcc, 0xe8, 0xb2, 0x70, 0xef, 0x05, 0xdd, 0x4e, 0x40,
+ 0xad, 0x06, 0x81, 0x38,
+};
+static const unsigned char kat1015_addin1[] = {
+ 0x12, 0xcc, 0x0a, 0x88, 0xf2, 0xe8, 0x65, 0xd5, 0xbe, 0xb5, 0x63, 0x74,
+ 0x01, 0x62, 0xfc, 0x80, 0xdb, 0xb1, 0x6a, 0x81, 0x62, 0x7c, 0x17, 0x81,
+ 0x6a, 0xe6, 0x81, 0xb1, 0xbb, 0xb7, 0xbc, 0xdd, 0xb9, 0xb6, 0xc4, 0xe0,
+ 0xde, 0x70, 0x5f, 0x24,
+};
+static const unsigned char kat1015_retbits[] = {
+ 0xb6, 0x42, 0x3c, 0x53, 0xca, 0xe7, 0xa2, 0x65, 0xb2, 0xd4, 0x28, 0x24,
+ 0x7c, 0xe8, 0xfc, 0x0a, 0x60, 0x91, 0x13, 0x8d, 0xc1, 0x7e, 0x2f, 0x36,
+ 0x42, 0x3c, 0x59, 0x0b, 0xb8, 0xb8, 0xe2, 0xea, 0x2f, 0x3d, 0xf4, 0x17,
+ 0xcf, 0x2d, 0x82, 0x0d, 0x61, 0x35, 0x5b, 0xf4, 0x31, 0x6f, 0xe0, 0x8f,
+ 0x77, 0x83, 0x00, 0x67, 0xc3, 0x74, 0xed, 0xa5, 0x0a, 0x92, 0x46, 0x3b,
+ 0xac, 0xd0, 0xae, 0x7d,
+};
+static const struct drbg_kat_no_reseed kat1015_t = {
+ 9, kat1015_entropyin, kat1015_nonce, kat1015_persstr,
+ kat1015_addin0, kat1015_addin1, kat1015_retbits
+};
+static const struct drbg_kat kat1015 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1015_t
+};
+
+static const unsigned char kat1016_entropyin[] = {
+ 0xf1, 0xde, 0x48, 0xab, 0x29, 0x59, 0x9b, 0x83, 0xba, 0xe0, 0xe2, 0x77,
+ 0x85, 0xf2, 0x08, 0xfc, 0x31, 0x76, 0x1d, 0x08, 0xc6, 0x9f, 0x7e, 0x05,
+ 0x6c, 0x52, 0xd6, 0x59, 0x5c, 0xfd, 0xa8, 0xfb, 0xfc, 0x0e, 0x90, 0x96,
+ 0x6b, 0xf3, 0x5d, 0xd5,
+};
+static const unsigned char kat1016_nonce[] = {0};
+static const unsigned char kat1016_persstr[] = {
+ 0x9a, 0xda, 0xad, 0x41, 0x9c, 0x82, 0xab, 0x72, 0x89, 0xac, 0x28, 0xfa,
+ 0x0e, 0x5a, 0x07, 0x84, 0x5c, 0x28, 0x24, 0x8c, 0xc8, 0x26, 0x8f, 0xbe,
+ 0x20, 0x18, 0x47, 0xbe, 0xe4, 0x19, 0x1a, 0x43, 0x87, 0x8d, 0x9d, 0xf2,
+ 0x78, 0x16, 0x89, 0xf9,
+};
+static const unsigned char kat1016_addin0[] = {
+ 0xc1, 0xc3, 0xbd, 0xd0, 0x81, 0xed, 0x99, 0x58, 0xb1, 0xe7, 0xed, 0xa7,
+ 0x52, 0xe1, 0x46, 0x78, 0xf8, 0x19, 0x00, 0x79, 0xdd, 0xa0, 0x4f, 0x04,
+ 0x2b, 0xdd, 0xb2, 0x0f, 0x79, 0x82, 0x2d, 0x2e, 0x0c, 0x29, 0xc4, 0x69,
+ 0xcc, 0x08, 0x83, 0xef,
+};
+static const unsigned char kat1016_addin1[] = {
+ 0x30, 0xce, 0xf7, 0x32, 0xc1, 0x27, 0x9f, 0xeb, 0xd8, 0x57, 0x33, 0x7e,
+ 0x0f, 0x6c, 0x3b, 0xef, 0x92, 0xb2, 0x48, 0x39, 0x3e, 0x9c, 0x10, 0x79,
+ 0x58, 0x19, 0xa0, 0x33, 0xe3, 0x21, 0x8e, 0xec, 0x47, 0x75, 0x8c, 0xfa,
+ 0x88, 0x93, 0x53, 0xec,
+};
+static const unsigned char kat1016_retbits[] = {
+ 0x04, 0x37, 0x71, 0xa5, 0xac, 0x38, 0x33, 0xea, 0xca, 0xa0, 0x5b, 0xd6,
+ 0xff, 0x0d, 0xbc, 0xd4, 0x84, 0x77, 0x07, 0x0a, 0xec, 0x69, 0xd5, 0xc0,
+ 0x3f, 0x40, 0x9d, 0xb1, 0x12, 0xf9, 0xf1, 0xc8, 0x0e, 0x8c, 0x23, 0x8d,
+ 0x57, 0xbe, 0xcf, 0x7a, 0xdb, 0x90, 0x02, 0x43, 0x95, 0x31, 0x31, 0x09,
+ 0xdb, 0x08, 0x29, 0x68, 0x1d, 0x3a, 0x42, 0x07, 0xa2, 0x52, 0x30, 0xa6,
+ 0x29, 0x10, 0x62, 0xf0,
+};
+static const struct drbg_kat_no_reseed kat1016_t = {
+ 10, kat1016_entropyin, kat1016_nonce, kat1016_persstr,
+ kat1016_addin0, kat1016_addin1, kat1016_retbits
+};
+static const struct drbg_kat kat1016 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1016_t
+};
+
+static const unsigned char kat1017_entropyin[] = {
+ 0x08, 0x76, 0x69, 0xed, 0x86, 0xc1, 0xb2, 0x77, 0x66, 0x72, 0x78, 0x6e,
+ 0x61, 0x75, 0xab, 0xfa, 0xb4, 0x22, 0xad, 0xc4, 0x73, 0x7c, 0xc8, 0xfb,
+ 0x39, 0x76, 0x39, 0x5d, 0x85, 0x9a, 0xc7, 0xd3, 0x7e, 0xc7, 0x6e, 0x00,
+ 0xa8, 0x11, 0x28, 0x25,
+};
+static const unsigned char kat1017_nonce[] = {0};
+static const unsigned char kat1017_persstr[] = {
+ 0xba, 0x9a, 0xbf, 0x3c, 0x49, 0x9a, 0xda, 0x3b, 0x36, 0x56, 0x97, 0x85,
+ 0xdb, 0xe7, 0xdb, 0x41, 0x83, 0x22, 0xde, 0x1a, 0x32, 0xbc, 0xc4, 0x03,
+ 0xdf, 0xdc, 0x31, 0xc3, 0xb5, 0x2f, 0x2c, 0xb5, 0x7f, 0x90, 0x0b, 0xdf,
+ 0x15, 0xf3, 0x80, 0x56,
+};
+static const unsigned char kat1017_addin0[] = {
+ 0x73, 0x9e, 0x72, 0x8d, 0x8e, 0x34, 0x9b, 0xc7, 0x4f, 0x2c, 0x82, 0xec,
+ 0x91, 0x13, 0x1f, 0xa7, 0xce, 0xeb, 0x5f, 0x99, 0x46, 0x81, 0x4d, 0x67,
+ 0x6e, 0x82, 0x68, 0x7b, 0xaf, 0xca, 0x08, 0xe9, 0x7d, 0xa1, 0x3f, 0x72,
+ 0x47, 0xc6, 0x8b, 0x4f,
+};
+static const unsigned char kat1017_addin1[] = {
+ 0x9f, 0x7e, 0x45, 0xf9, 0x01, 0x9d, 0x46, 0x9c, 0x96, 0x49, 0xea, 0x3b,
+ 0x88, 0xbb, 0x65, 0x50, 0xa0, 0x4e, 0xab, 0xdf, 0xbc, 0x8c, 0x52, 0xee,
+ 0xcc, 0xc1, 0xd9, 0x2a, 0x80, 0x10, 0xb2, 0xb5, 0xf3, 0x64, 0x60, 0x30,
+ 0x60, 0x4c, 0x91, 0x86,
+};
+static const unsigned char kat1017_retbits[] = {
+ 0x23, 0x1c, 0xff, 0x0d, 0x4b, 0x97, 0x7f, 0x7b, 0x1b, 0x6a, 0xa8, 0xc1,
+ 0x27, 0xa7, 0xc4, 0xc1, 0x5c, 0x20, 0x05, 0x05, 0xed, 0xf6, 0x85, 0x65,
+ 0x10, 0x9f, 0x8e, 0xad, 0xc6, 0x1e, 0x83, 0xef, 0xf8, 0x44, 0x7c, 0x5c,
+ 0xf6, 0x34, 0xd7, 0x90, 0x7a, 0x9e, 0xde, 0xe5, 0x7d, 0xcb, 0xbd, 0x38,
+ 0xfa, 0xd7, 0xb7, 0xc0, 0x3d, 0x63, 0x07, 0x35, 0xbf, 0xa5, 0x27, 0x1f,
+ 0x75, 0x5c, 0x40, 0x11,
+};
+static const struct drbg_kat_no_reseed kat1017_t = {
+ 11, kat1017_entropyin, kat1017_nonce, kat1017_persstr,
+ kat1017_addin0, kat1017_addin1, kat1017_retbits
+};
+static const struct drbg_kat kat1017 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1017_t
+};
+
+static const unsigned char kat1018_entropyin[] = {
+ 0xa6, 0x7b, 0x15, 0x97, 0xdb, 0x8e, 0x04, 0xc4, 0x7c, 0x78, 0x4c, 0x55,
+ 0xd2, 0xd8, 0x55, 0xc5, 0xf1, 0xda, 0x48, 0x1b, 0xb9, 0x3a, 0x60, 0x42,
+ 0x42, 0xc7, 0xf8, 0xcd, 0xb2, 0xd0, 0xfe, 0xba, 0xed, 0xd9, 0xa7, 0xa1,
+ 0x62, 0x7a, 0x52, 0x86,
+};
+static const unsigned char kat1018_nonce[] = {0};
+static const unsigned char kat1018_persstr[] = {
+ 0xfb, 0xaa, 0xc1, 0x70, 0xa1, 0x1b, 0x0f, 0xac, 0x54, 0xed, 0x43, 0x29,
+ 0xf8, 0x98, 0x2b, 0x2c, 0xa8, 0x7f, 0x6e, 0x2f, 0x01, 0xe0, 0x74, 0x34,
+ 0x95, 0x20, 0x39, 0xf1, 0x64, 0x77, 0xe7, 0x8c, 0xb4, 0x62, 0x78, 0x46,
+ 0x13, 0xa6, 0xff, 0x7c,
+};
+static const unsigned char kat1018_addin0[] = {
+ 0xb1, 0x65, 0x10, 0xcf, 0x03, 0xb1, 0x41, 0xec, 0x60, 0x89, 0x82, 0x43,
+ 0x2a, 0x59, 0xb0, 0xc2, 0xa9, 0x71, 0x68, 0x2f, 0xe8, 0x8f, 0xc2, 0x88,
+ 0xd5, 0xa0, 0x9b, 0x64, 0xb0, 0xf8, 0xf3, 0x38, 0x42, 0x7e, 0x0f, 0x5f,
+ 0x96, 0x3e, 0x64, 0x92,
+};
+static const unsigned char kat1018_addin1[] = {
+ 0x6d, 0xe9, 0x41, 0xdc, 0x9a, 0xd6, 0x32, 0xaf, 0xe7, 0xae, 0xc7, 0x5e,
+ 0x90, 0x66, 0x48, 0xaa, 0xf6, 0x37, 0x94, 0xfa, 0x97, 0xbd, 0x83, 0x50,
+ 0xe7, 0x56, 0x42, 0x04, 0xcd, 0x6e, 0x0f, 0xe1, 0xea, 0x5f, 0xa7, 0x56,
+ 0xd9, 0xae, 0xe3, 0x7d,
+};
+static const unsigned char kat1018_retbits[] = {
+ 0xc2, 0xa4, 0x22, 0x49, 0x81, 0x12, 0xe8, 0xe8, 0x50, 0xce, 0x43, 0xce,
+ 0x6d, 0xdb, 0xc3, 0xd1, 0x5c, 0x68, 0x15, 0xb1, 0xf4, 0xa2, 0x33, 0x0c,
+ 0x84, 0xbc, 0xbf, 0xc3, 0x41, 0x5e, 0x7f, 0xe0, 0x20, 0x74, 0x44, 0x61,
+ 0x76, 0xc0, 0x88, 0xa4, 0xb9, 0xa4, 0xc3, 0xe4, 0xee, 0x55, 0xec, 0xaa,
+ 0x2d, 0xb3, 0x98, 0x0d, 0x90, 0x28, 0xd6, 0x4f, 0xa8, 0xa6, 0xbb, 0xb5,
+ 0x1b, 0x8d, 0x20, 0x51,
+};
+static const struct drbg_kat_no_reseed kat1018_t = {
+ 12, kat1018_entropyin, kat1018_nonce, kat1018_persstr,
+ kat1018_addin0, kat1018_addin1, kat1018_retbits
+};
+static const struct drbg_kat kat1018 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1018_t
+};
+
+static const unsigned char kat1019_entropyin[] = {
+ 0x30, 0x36, 0x37, 0xc0, 0x37, 0xf7, 0x12, 0xaa, 0x82, 0x8a, 0x0d, 0x6f,
+ 0xfb, 0x37, 0x65, 0x13, 0x21, 0x5d, 0xb7, 0x3d, 0x4b, 0xc4, 0x56, 0x82,
+ 0xa4, 0xc0, 0x06, 0x16, 0x8b, 0x70, 0xcd, 0x2e, 0xb3, 0x21, 0x59, 0x43,
+ 0x17, 0x27, 0x77, 0xb5,
+};
+static const unsigned char kat1019_nonce[] = {0};
+static const unsigned char kat1019_persstr[] = {
+ 0x9c, 0xf5, 0xa1, 0x8f, 0x1b, 0x2c, 0x2a, 0xf9, 0x6c, 0x63, 0xfd, 0xf2,
+ 0xd6, 0x58, 0x22, 0x53, 0x7e, 0x90, 0x7a, 0xa5, 0xe1, 0x79, 0xe1, 0x88,
+ 0x97, 0x63, 0x7b, 0x84, 0xbd, 0x9c, 0xb2, 0x4f, 0x41, 0xfe, 0x01, 0xcd,
+ 0xd3, 0x1c, 0xec, 0x07,
+};
+static const unsigned char kat1019_addin0[] = {
+ 0x3c, 0x45, 0x46, 0x28, 0xff, 0x13, 0xa6, 0x05, 0x03, 0x79, 0xb4, 0xd3,
+ 0xa7, 0x83, 0xbe, 0xbd, 0x1a, 0x30, 0x01, 0xf7, 0x0e, 0x0f, 0x20, 0x61,
+ 0x9f, 0x1d, 0x90, 0x0e, 0x9e, 0xb1, 0x52, 0xea, 0xc7, 0x15, 0xd2, 0x77,
+ 0x9f, 0x16, 0x51, 0x67,
+};
+static const unsigned char kat1019_addin1[] = {
+ 0x16, 0x93, 0xe9, 0x3b, 0x42, 0xad, 0x41, 0x08, 0xef, 0x3c, 0xaa, 0xb6,
+ 0xbd, 0x69, 0x87, 0xb1, 0xa7, 0xdc, 0x5f, 0x05, 0x96, 0x8d, 0xd8, 0xee,
+ 0x6f, 0xfb, 0x2f, 0xc6, 0x5c, 0x25, 0x16, 0x27, 0x7a, 0xb4, 0x2f, 0x7e,
+ 0xf7, 0x06, 0x69, 0xe3,
+};
+static const unsigned char kat1019_retbits[] = {
+ 0x39, 0xf0, 0xf2, 0x21, 0xdf, 0x9c, 0xf7, 0x3c, 0xb4, 0x8e, 0x32, 0x76,
+ 0xf0, 0x16, 0x50, 0x73, 0x19, 0xf4, 0x53, 0x75, 0x88, 0xf2, 0xc7, 0x1f,
+ 0xcb, 0x20, 0xe0, 0x9d, 0xdf, 0xb1, 0x9a, 0x91, 0x70, 0xcc, 0x3c, 0x8f,
+ 0x76, 0xf3, 0x49, 0xe1, 0xa9, 0xa0, 0x53, 0x30, 0x3d, 0x4c, 0x91, 0x19,
+ 0x5d, 0xed, 0x47, 0x9e, 0x8b, 0xec, 0x7e, 0x4b, 0x95, 0x25, 0x41, 0x4b,
+ 0x38, 0xf9, 0x01, 0x21,
+};
+static const struct drbg_kat_no_reseed kat1019_t = {
+ 13, kat1019_entropyin, kat1019_nonce, kat1019_persstr,
+ kat1019_addin0, kat1019_addin1, kat1019_retbits
+};
+static const struct drbg_kat kat1019 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1019_t
+};
+
+static const unsigned char kat1020_entropyin[] = {
+ 0x14, 0xb9, 0xc7, 0x96, 0x22, 0xaf, 0x2c, 0xb6, 0xbb, 0x65, 0xa8, 0xf0,
+ 0xf6, 0x1a, 0x8f, 0xc0, 0xe5, 0x9f, 0x26, 0xdc, 0x69, 0x78, 0x9e, 0x6e,
+ 0xae, 0xe1, 0x3f, 0x03, 0xad, 0x30, 0x6d, 0x93, 0xc7, 0xa3, 0x5b, 0x9e,
+ 0x69, 0xa2, 0x42, 0x1c,
+};
+static const unsigned char kat1020_nonce[] = {0};
+static const unsigned char kat1020_persstr[] = {
+ 0xb2, 0xe2, 0x51, 0x7a, 0x5c, 0x15, 0x73, 0x80, 0x0e, 0x3f, 0x5f, 0x31,
+ 0x44, 0xa2, 0xc7, 0x6f, 0x70, 0xbf, 0x4d, 0x36, 0xef, 0xd9, 0xe8, 0x62,
+ 0x6a, 0xd4, 0x5e, 0x5c, 0xda, 0x7f, 0x00, 0x9b, 0xfb, 0x6b, 0xde, 0x96,
+ 0x2a, 0x62, 0x61, 0x0c,
+};
+static const unsigned char kat1020_addin0[] = {
+ 0x15, 0x64, 0xd7, 0x0c, 0x91, 0xa7, 0xf7, 0x21, 0x51, 0xa4, 0x48, 0x3b,
+ 0x9e, 0xba, 0x35, 0xb5, 0x2c, 0x19, 0x66, 0x56, 0xff, 0x96, 0x87, 0x5d,
+ 0x7c, 0x59, 0xc6, 0xd1, 0x16, 0xff, 0xfa, 0x3f, 0xeb, 0xf1, 0x86, 0x0a,
+ 0x39, 0x81, 0xd6, 0x4b,
+};
+static const unsigned char kat1020_addin1[] = {
+ 0xc2, 0x73, 0x1f, 0xd3, 0x8e, 0x65, 0xf8, 0xe7, 0x24, 0x37, 0x8a, 0xd4,
+ 0xe0, 0x13, 0x59, 0x51, 0x2c, 0xb4, 0x73, 0xdd, 0x98, 0x54, 0xfc, 0x23,
+ 0x03, 0xe6, 0x1c, 0x2d, 0x19, 0x7c, 0xaa, 0xd6, 0x9b, 0x12, 0xfd, 0xe1,
+ 0x4a, 0xed, 0x66, 0xb6,
+};
+static const unsigned char kat1020_retbits[] = {
+ 0xc6, 0x8d, 0x3e, 0x56, 0x97, 0xf3, 0x6c, 0x9d, 0xb2, 0x53, 0x5b, 0x05,
+ 0x22, 0x6a, 0xa1, 0x18, 0xe0, 0x0f, 0xda, 0xb9, 0x5c, 0xa2, 0xcd, 0xbd,
+ 0x37, 0x42, 0x12, 0x98, 0xd4, 0x6d, 0x20, 0x54, 0xe9, 0x00, 0xb8, 0x2c,
+ 0xcb, 0x63, 0x22, 0x7a, 0x23, 0x38, 0x0e, 0x4a, 0x2e, 0x93, 0x32, 0x77,
+ 0x18, 0xcc, 0xa3, 0xb9, 0xf5, 0xfc, 0x9c, 0x39, 0x49, 0xad, 0xab, 0xd7,
+ 0x23, 0xbd, 0x43, 0x13,
+};
+static const struct drbg_kat_no_reseed kat1020_t = {
+ 14, kat1020_entropyin, kat1020_nonce, kat1020_persstr,
+ kat1020_addin0, kat1020_addin1, kat1020_retbits
+};
+static const struct drbg_kat kat1020 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1020_t
+};
+
+static const unsigned char kat1021_entropyin[] = {
+ 0x0a, 0x3e, 0x45, 0xd9, 0x2c, 0xa0, 0x0e, 0x1f, 0x65, 0x3e, 0x0f, 0x6b,
+ 0x24, 0x6c, 0xa6, 0xfc, 0xda, 0x82, 0x6f, 0x3d, 0x7a, 0x8b, 0xc6, 0x93,
+ 0x73, 0xd1, 0xf4, 0x58, 0x40, 0x8b, 0xf2, 0x98, 0x99, 0x85, 0xc8, 0x9c,
+ 0x2d, 0x03, 0x9b, 0x4d,
+};
+static const unsigned char kat1021_nonce[] = {0};
+static const unsigned char kat1021_persstr[] = {0};
+static const unsigned char kat1021_addin0[] = {0};
+static const unsigned char kat1021_addin1[] = {0};
+static const unsigned char kat1021_retbits[] = {
+ 0x00, 0xee, 0xd8, 0x60, 0x01, 0x9b, 0x5a, 0x23, 0xb5, 0xd2, 0xf5, 0xa1,
+ 0xe1, 0x9c, 0xcc, 0xf4, 0x71, 0xf1, 0xee, 0x35, 0x84, 0x45, 0x01, 0xca,
+ 0xf0, 0xb2, 0xef, 0xdd, 0xdd, 0x69, 0xee, 0xd7, 0x14, 0x7a, 0x03, 0x48,
+ 0xb2, 0x22, 0xb3, 0x6e, 0x0e, 0xe3, 0x87, 0x90, 0xaf, 0xe3, 0xb9, 0x25,
+ 0x4b, 0x65, 0xfe, 0x9c, 0x09, 0xb9, 0x0e, 0xec, 0x33, 0x69, 0xff, 0x5c,
+ 0x66, 0x63, 0x4e, 0x0c,
+};
+static const struct drbg_kat_no_reseed kat1021_t = {
+ 0, kat1021_entropyin, kat1021_nonce, kat1021_persstr,
+ kat1021_addin0, kat1021_addin1, kat1021_retbits
+};
+static const struct drbg_kat kat1021 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1021_t
+};
+
+static const unsigned char kat1022_entropyin[] = {
+ 0x2c, 0x75, 0xf9, 0x24, 0x3a, 0x85, 0x92, 0x1c, 0x5d, 0xb7, 0xff, 0xdb,
+ 0x7a, 0x27, 0xe5, 0xf6, 0x8b, 0x71, 0xc1, 0x76, 0x97, 0x3b, 0x78, 0x1b,
+ 0xa1, 0x6d, 0xa1, 0x46, 0x95, 0xbc, 0x4e, 0x81, 0x4e, 0xa0, 0x7b, 0xd2,
+ 0xc7, 0xf4, 0x24, 0x31,
+};
+static const unsigned char kat1022_nonce[] = {0};
+static const unsigned char kat1022_persstr[] = {0};
+static const unsigned char kat1022_addin0[] = {0};
+static const unsigned char kat1022_addin1[] = {0};
+static const unsigned char kat1022_retbits[] = {
+ 0x9d, 0xdf, 0x7e, 0x53, 0x2f, 0x2e, 0x9f, 0x4b, 0xce, 0xb9, 0x81, 0x73,
+ 0x93, 0x1d, 0xef, 0x69, 0xa3, 0x5f, 0x44, 0x6e, 0xad, 0x44, 0xbd, 0xe3,
+ 0x17, 0x6d, 0x8f, 0xb8, 0x17, 0x0d, 0xf6, 0xfe, 0x49, 0x6b, 0x12, 0xe6,
+ 0x40, 0xb6, 0x41, 0x81, 0x0d, 0xcb, 0xea, 0x1a, 0x84, 0x42, 0xc5, 0x03,
+ 0xce, 0x23, 0x89, 0x39, 0xa0, 0xd1, 0x99, 0x69, 0x1d, 0xc9, 0xba, 0xaf,
+ 0xca, 0x4c, 0xd4, 0x46,
+};
+static const struct drbg_kat_no_reseed kat1022_t = {
+ 1, kat1022_entropyin, kat1022_nonce, kat1022_persstr,
+ kat1022_addin0, kat1022_addin1, kat1022_retbits
+};
+static const struct drbg_kat kat1022 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1022_t
+};
+
+static const unsigned char kat1023_entropyin[] = {
+ 0xe3, 0x28, 0xe0, 0x30, 0xbb, 0xb4, 0xb9, 0xef, 0x5a, 0x7e, 0x91, 0xec,
+ 0x66, 0x3e, 0x61, 0xa8, 0x8f, 0xef, 0x4d, 0xf9, 0x37, 0x5a, 0x07, 0x78,
+ 0x89, 0xda, 0xfa, 0x7f, 0x19, 0xc8, 0x78, 0x02, 0x8e, 0x9d, 0xc4, 0x29,
+ 0x02, 0x0c, 0x9a, 0xd9,
+};
+static const unsigned char kat1023_nonce[] = {0};
+static const unsigned char kat1023_persstr[] = {0};
+static const unsigned char kat1023_addin0[] = {0};
+static const unsigned char kat1023_addin1[] = {0};
+static const unsigned char kat1023_retbits[] = {
+ 0x1e, 0x5d, 0x47, 0x99, 0x14, 0xf9, 0x4b, 0xdf, 0x19, 0x94, 0x78, 0x6b,
+ 0x55, 0xad, 0x05, 0x58, 0x31, 0x8f, 0xeb, 0xd0, 0xca, 0xf2, 0x54, 0xdc,
+ 0x3b, 0x44, 0x70, 0xf2, 0xaf, 0x01, 0xa6, 0xb1, 0x8d, 0x01, 0xe0, 0x93,
+ 0xbf, 0xbe, 0x84, 0x80, 0x7b, 0x7f, 0x28, 0x91, 0x8a, 0xec, 0xdb, 0x8f,
+ 0x0f, 0x58, 0x24, 0xdd, 0x98, 0x27, 0xbb, 0x76, 0x05, 0xbd, 0xbd, 0x81,
+ 0xee, 0x47, 0xe4, 0x8f,
+};
+static const struct drbg_kat_no_reseed kat1023_t = {
+ 2, kat1023_entropyin, kat1023_nonce, kat1023_persstr,
+ kat1023_addin0, kat1023_addin1, kat1023_retbits
+};
+static const struct drbg_kat kat1023 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1023_t
+};
+
+static const unsigned char kat1024_entropyin[] = {
+ 0xf6, 0x0d, 0x85, 0xc8, 0x8e, 0x8d, 0x61, 0xd6, 0x7f, 0x8a, 0xb1, 0x4d,
+ 0xfd, 0x10, 0xe1, 0xda, 0x11, 0xf5, 0x9c, 0x90, 0xfd, 0x87, 0x68, 0xad,
+ 0xeb, 0xb9, 0xa3, 0x5b, 0xbe, 0x6e, 0xbe, 0xa1, 0x44, 0xb7, 0x1f, 0x99,
+ 0x0a, 0x7f, 0x01, 0x1f,
+};
+static const unsigned char kat1024_nonce[] = {0};
+static const unsigned char kat1024_persstr[] = {0};
+static const unsigned char kat1024_addin0[] = {0};
+static const unsigned char kat1024_addin1[] = {0};
+static const unsigned char kat1024_retbits[] = {
+ 0x4b, 0x66, 0x69, 0x12, 0x88, 0x35, 0x06, 0x33, 0x12, 0x85, 0x97, 0xb2,
+ 0x45, 0xb2, 0xe9, 0xcc, 0x7e, 0xfc, 0xcd, 0x84, 0x72, 0xfd, 0xd0, 0xaa,
+ 0xb0, 0x8e, 0xdb, 0x01, 0x25, 0xb2, 0x2b, 0x4e, 0xd8, 0xb3, 0x3a, 0x50,
+ 0x2a, 0xca, 0x88, 0xc3, 0x53, 0xb9, 0x00, 0xe1, 0xc4, 0x30, 0x87, 0x59,
+ 0x93, 0xae, 0xc1, 0x49, 0x98, 0xa7, 0x88, 0x47, 0xaa, 0x27, 0x7d, 0xbb,
+ 0x51, 0x5e, 0xd6, 0x0b,
+};
+static const struct drbg_kat_no_reseed kat1024_t = {
+ 3, kat1024_entropyin, kat1024_nonce, kat1024_persstr,
+ kat1024_addin0, kat1024_addin1, kat1024_retbits
+};
+static const struct drbg_kat kat1024 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1024_t
+};
+
+static const unsigned char kat1025_entropyin[] = {
+ 0x34, 0xdd, 0xfd, 0x1a, 0xcb, 0xf3, 0x48, 0xe1, 0x7e, 0x7b, 0x5e, 0x13,
+ 0x39, 0x13, 0xa6, 0x89, 0xcd, 0xc2, 0x4e, 0x6d, 0x46, 0x80, 0x1d, 0x70,
+ 0xcc, 0xac, 0x49, 0xec, 0x30, 0xd8, 0xc5, 0x8f, 0xcc, 0x3a, 0xeb, 0x9f,
+ 0x45, 0x70, 0x0e, 0x05,
+};
+static const unsigned char kat1025_nonce[] = {0};
+static const unsigned char kat1025_persstr[] = {0};
+static const unsigned char kat1025_addin0[] = {0};
+static const unsigned char kat1025_addin1[] = {0};
+static const unsigned char kat1025_retbits[] = {
+ 0xcb, 0x4e, 0x1f, 0x9c, 0x60, 0x13, 0x70, 0xa2, 0x3c, 0x78, 0xe7, 0xfc,
+ 0x33, 0xdd, 0x61, 0x9c, 0xb6, 0x17, 0x42, 0x78, 0x2b, 0x75, 0x6c, 0x8c,
+ 0xf9, 0x79, 0xae, 0x46, 0xa7, 0xd7, 0x51, 0x58, 0xaf, 0x70, 0x6a, 0x03,
+ 0x63, 0x1d, 0xbf, 0x7b, 0x17, 0x11, 0xcc, 0xd6, 0xaa, 0xe6, 0x0e, 0x78,
+ 0x5f, 0xff, 0x42, 0x12, 0x1c, 0xa7, 0x56, 0xe8, 0x26, 0x00, 0x75, 0xfc,
+ 0x27, 0xc3, 0x90, 0x43,
+};
+static const struct drbg_kat_no_reseed kat1025_t = {
+ 4, kat1025_entropyin, kat1025_nonce, kat1025_persstr,
+ kat1025_addin0, kat1025_addin1, kat1025_retbits
+};
+static const struct drbg_kat kat1025 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1025_t
+};
+
+static const unsigned char kat1026_entropyin[] = {
+ 0x00, 0xd9, 0x70, 0xb9, 0x3b, 0xee, 0xcf, 0x7f, 0x9c, 0x64, 0xda, 0xcd,
+ 0x11, 0xd4, 0xce, 0xba, 0xde, 0x39, 0x56, 0x24, 0x22, 0xf0, 0x47, 0x14,
+ 0x67, 0xfc, 0x22, 0x4c, 0xa3, 0x70, 0xf4, 0x65, 0xb7, 0x69, 0xbb, 0x25,
+ 0x02, 0x49, 0xf2, 0x1e,
+};
+static const unsigned char kat1026_nonce[] = {0};
+static const unsigned char kat1026_persstr[] = {0};
+static const unsigned char kat1026_addin0[] = {0};
+static const unsigned char kat1026_addin1[] = {0};
+static const unsigned char kat1026_retbits[] = {
+ 0xc4, 0xd3, 0xb5, 0xd4, 0x5a, 0x9b, 0x65, 0xe8, 0x52, 0x88, 0xb7, 0x7b,
+ 0x78, 0x0a, 0x66, 0x58, 0xdf, 0x86, 0x22, 0x7b, 0x8d, 0x38, 0x11, 0xbf,
+ 0x71, 0x02, 0x18, 0xb6, 0x7a, 0x58, 0x8b, 0x2b, 0x72, 0xe9, 0x54, 0x5f,
+ 0xc7, 0x0a, 0xcd, 0x76, 0x25, 0xd2, 0xc4, 0xb3, 0x62, 0x72, 0x5d, 0xe4,
+ 0x5e, 0x83, 0x3e, 0xf4, 0xb1, 0xe1, 0x13, 0xf5, 0xee, 0x59, 0x75, 0x3d,
+ 0xb5, 0xad, 0x74, 0xa0,
+};
+static const struct drbg_kat_no_reseed kat1026_t = {
+ 5, kat1026_entropyin, kat1026_nonce, kat1026_persstr,
+ kat1026_addin0, kat1026_addin1, kat1026_retbits
+};
+static const struct drbg_kat kat1026 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1026_t
+};
+
+static const unsigned char kat1027_entropyin[] = {
+ 0x24, 0x11, 0x49, 0x53, 0x02, 0xfb, 0x00, 0xcb, 0xab, 0x99, 0xd1, 0xfb,
+ 0x14, 0xdf, 0x40, 0x2c, 0x8e, 0x66, 0xd7, 0x87, 0xdd, 0x52, 0x7c, 0x46,
+ 0x40, 0xa6, 0x74, 0xcb, 0xf7, 0xff, 0xd1, 0x96, 0x7d, 0x7f, 0x69, 0xd2,
+ 0x78, 0x5d, 0xda, 0x01,
+};
+static const unsigned char kat1027_nonce[] = {0};
+static const unsigned char kat1027_persstr[] = {0};
+static const unsigned char kat1027_addin0[] = {0};
+static const unsigned char kat1027_addin1[] = {0};
+static const unsigned char kat1027_retbits[] = {
+ 0x67, 0x9c, 0x87, 0x96, 0x91, 0x9e, 0x10, 0xce, 0x44, 0x66, 0xe7, 0xe4,
+ 0x49, 0xf7, 0x65, 0xdf, 0x82, 0x1b, 0x06, 0xa9, 0x7a, 0xc5, 0xb3, 0xc8,
+ 0xf5, 0xa1, 0x6f, 0xdc, 0x66, 0x6f, 0x4b, 0x19, 0xdd, 0xda, 0x66, 0x0b,
+ 0xfc, 0xf7, 0x8f, 0x5f, 0x5e, 0x39, 0xa6, 0xb6, 0xf2, 0x6a, 0x22, 0x38,
+ 0xc9, 0xaf, 0xf6, 0x98, 0x50, 0xcf, 0xaf, 0x6d, 0x87, 0x82, 0x85, 0x1f,
+ 0x62, 0xf1, 0x86, 0x84,
+};
+static const struct drbg_kat_no_reseed kat1027_t = {
+ 6, kat1027_entropyin, kat1027_nonce, kat1027_persstr,
+ kat1027_addin0, kat1027_addin1, kat1027_retbits
+};
+static const struct drbg_kat kat1027 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1027_t
+};
+
+static const unsigned char kat1028_entropyin[] = {
+ 0xf4, 0xe8, 0x5a, 0xc5, 0x45, 0x3f, 0x16, 0xee, 0x6e, 0x26, 0x87, 0x89,
+ 0xe6, 0xf8, 0x1e, 0xe6, 0x71, 0x91, 0xf1, 0xfc, 0xc9, 0xc7, 0x6e, 0xc3,
+ 0x54, 0x36, 0x30, 0xac, 0x17, 0x71, 0x3f, 0x70, 0xe0, 0x0b, 0x6c, 0x54,
+ 0xf6, 0x3f, 0x9f, 0xe5,
+};
+static const unsigned char kat1028_nonce[] = {0};
+static const unsigned char kat1028_persstr[] = {0};
+static const unsigned char kat1028_addin0[] = {0};
+static const unsigned char kat1028_addin1[] = {0};
+static const unsigned char kat1028_retbits[] = {
+ 0xc3, 0x59, 0xfc, 0x26, 0xe8, 0x8d, 0xc6, 0x34, 0x11, 0xab, 0xa0, 0x0a,
+ 0xed, 0xcf, 0xbc, 0x92, 0x8f, 0x70, 0x2a, 0xb2, 0x38, 0xa9, 0x9b, 0xaf,
+ 0xe8, 0xdd, 0x30, 0xf3, 0x80, 0x30, 0xe6, 0xd9, 0xa3, 0x61, 0xb5, 0x6c,
+ 0xe3, 0x4c, 0xe4, 0x23, 0x0e, 0xa5, 0x75, 0x17, 0x82, 0xf2, 0x93, 0x82,
+ 0xcc, 0x67, 0x3b, 0xad, 0xb1, 0xf6, 0xe7, 0x18, 0x3b, 0x08, 0x18, 0x04,
+ 0x32, 0x45, 0x40, 0xc0,
+};
+static const struct drbg_kat_no_reseed kat1028_t = {
+ 7, kat1028_entropyin, kat1028_nonce, kat1028_persstr,
+ kat1028_addin0, kat1028_addin1, kat1028_retbits
+};
+static const struct drbg_kat kat1028 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1028_t
+};
+
+static const unsigned char kat1029_entropyin[] = {
+ 0x97, 0xf8, 0x6f, 0x72, 0x79, 0xa4, 0x17, 0xba, 0x7e, 0x65, 0x5b, 0x8c,
+ 0x89, 0x57, 0x62, 0x6f, 0x25, 0x5c, 0x88, 0x40, 0xed, 0x0e, 0x7e, 0xac,
+ 0xbf, 0xef, 0xcb, 0x3a, 0x6e, 0xe2, 0x41, 0xe4, 0x42, 0x46, 0x15, 0x42,
+ 0x07, 0x5b, 0xe9, 0x72,
+};
+static const unsigned char kat1029_nonce[] = {0};
+static const unsigned char kat1029_persstr[] = {0};
+static const unsigned char kat1029_addin0[] = {0};
+static const unsigned char kat1029_addin1[] = {0};
+static const unsigned char kat1029_retbits[] = {
+ 0xa5, 0x8a, 0xb9, 0xad, 0xf4, 0x3a, 0x2e, 0xfa, 0x9b, 0xa0, 0x92, 0x54,
+ 0x23, 0x60, 0xb5, 0x47, 0xfd, 0x77, 0x55, 0xa9, 0xf5, 0x8c, 0xcf, 0x95,
+ 0x3a, 0x5e, 0x92, 0xc8, 0xd1, 0x4a, 0x81, 0x64, 0x2e, 0x3d, 0x9f, 0x61,
+ 0xa2, 0x14, 0x3f, 0x3c, 0x95, 0x0a, 0x89, 0x45, 0x3b, 0xa5, 0x8c, 0x39,
+ 0x96, 0x07, 0xcc, 0x3a, 0x45, 0x2b, 0xaa, 0x4d, 0x9a, 0x5f, 0x56, 0x01,
+ 0x39, 0x90, 0x1c, 0xca,
+};
+static const struct drbg_kat_no_reseed kat1029_t = {
+ 8, kat1029_entropyin, kat1029_nonce, kat1029_persstr,
+ kat1029_addin0, kat1029_addin1, kat1029_retbits
+};
+static const struct drbg_kat kat1029 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1029_t
+};
+
+static const unsigned char kat1030_entropyin[] = {
+ 0x4a, 0x7e, 0x87, 0x52, 0xf8, 0x66, 0xf6, 0x12, 0x15, 0x38, 0xe4, 0x8f,
+ 0x84, 0x5d, 0xe5, 0xd4, 0xd9, 0x88, 0x6b, 0xe3, 0x7c, 0x05, 0x83, 0xfc,
+ 0xfc, 0x20, 0x0a, 0xde, 0xe0, 0x67, 0x91, 0xa4, 0x93, 0xc0, 0x57, 0x1f,
+ 0xb6, 0x18, 0x46, 0xf6,
+};
+static const unsigned char kat1030_nonce[] = {0};
+static const unsigned char kat1030_persstr[] = {0};
+static const unsigned char kat1030_addin0[] = {0};
+static const unsigned char kat1030_addin1[] = {0};
+static const unsigned char kat1030_retbits[] = {
+ 0xe7, 0x06, 0xe2, 0xf5, 0x9c, 0xcb, 0xb6, 0x8a, 0xbe, 0xd1, 0x62, 0x90,
+ 0x33, 0x33, 0xc7, 0xab, 0xc4, 0x14, 0x4b, 0xc3, 0xf6, 0x5a, 0x3c, 0x75,
+ 0x6a, 0xd6, 0xd0, 0xe4, 0x07, 0x8d, 0x95, 0x9d, 0x80, 0x84, 0x0e, 0x12,
+ 0x50, 0xfc, 0x69, 0x10, 0x74, 0xad, 0xcb, 0x52, 0x03, 0x75, 0x75, 0x5c,
+ 0x26, 0xd5, 0x44, 0xa4, 0xaf, 0xae, 0x3a, 0xed, 0x35, 0x7b, 0xe9, 0xeb,
+ 0x24, 0x4f, 0xae, 0xb1,
+};
+static const struct drbg_kat_no_reseed kat1030_t = {
+ 9, kat1030_entropyin, kat1030_nonce, kat1030_persstr,
+ kat1030_addin0, kat1030_addin1, kat1030_retbits
+};
+static const struct drbg_kat kat1030 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1030_t
+};
+
+static const unsigned char kat1031_entropyin[] = {
+ 0xb2, 0xa0, 0x2a, 0x26, 0xde, 0xc8, 0x81, 0x67, 0x28, 0x53, 0xec, 0xa2,
+ 0x67, 0x1c, 0xfb, 0xa6, 0x11, 0x5c, 0x4d, 0x5a, 0x6d, 0x39, 0xad, 0x55,
+ 0x73, 0xa2, 0x90, 0x53, 0xe8, 0x7f, 0xb5, 0x72, 0x15, 0xe8, 0x19, 0x57,
+ 0xd9, 0xe5, 0xe3, 0x0f,
+};
+static const unsigned char kat1031_nonce[] = {0};
+static const unsigned char kat1031_persstr[] = {0};
+static const unsigned char kat1031_addin0[] = {0};
+static const unsigned char kat1031_addin1[] = {0};
+static const unsigned char kat1031_retbits[] = {
+ 0x87, 0x20, 0xf7, 0x34, 0x92, 0xc6, 0xd6, 0x3f, 0x8e, 0x94, 0xa2, 0x4c,
+ 0x81, 0x75, 0x74, 0x58, 0x3d, 0x3b, 0xfe, 0x78, 0x3b, 0x27, 0xdf, 0x8e,
+ 0xb6, 0xd7, 0xd3, 0x0f, 0x2c, 0x65, 0xd6, 0xa0, 0xfb, 0x53, 0x17, 0x3a,
+ 0x47, 0x37, 0xf2, 0xce, 0x30, 0x55, 0x02, 0x85, 0x0d, 0xa8, 0xc3, 0x01,
+ 0x78, 0x50, 0xf7, 0x04, 0x58, 0x5d, 0x87, 0x86, 0x0d, 0xa1, 0xcf, 0xd5,
+ 0x0a, 0xf2, 0x72, 0x5d,
+};
+static const struct drbg_kat_no_reseed kat1031_t = {
+ 10, kat1031_entropyin, kat1031_nonce, kat1031_persstr,
+ kat1031_addin0, kat1031_addin1, kat1031_retbits
+};
+static const struct drbg_kat kat1031 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1031_t
+};
+
+static const unsigned char kat1032_entropyin[] = {
+ 0x97, 0x25, 0x59, 0x9c, 0x6b, 0x24, 0x6e, 0x22, 0xfb, 0x81, 0xcf, 0x9e,
+ 0x46, 0x80, 0xe1, 0x0f, 0x0b, 0x5f, 0x08, 0x40, 0xd8, 0x41, 0xf9, 0x9a,
+ 0x6f, 0xae, 0xfe, 0xd9, 0x87, 0x06, 0x3b, 0x24, 0x9d, 0xab, 0x1c, 0xda,
+ 0x59, 0x64, 0x2a, 0xeb,
+};
+static const unsigned char kat1032_nonce[] = {0};
+static const unsigned char kat1032_persstr[] = {0};
+static const unsigned char kat1032_addin0[] = {0};
+static const unsigned char kat1032_addin1[] = {0};
+static const unsigned char kat1032_retbits[] = {
+ 0x19, 0x51, 0x5e, 0xac, 0x64, 0x4a, 0x70, 0x61, 0x9a, 0x17, 0x24, 0x9d,
+ 0x61, 0x8d, 0xad, 0x87, 0x5a, 0x29, 0x4c, 0xb3, 0xe5, 0x9a, 0xc8, 0xdc,
+ 0x73, 0x6a, 0xa7, 0x22, 0xbd, 0xf7, 0x1c, 0x6e, 0x6a, 0xad, 0x53, 0x8e,
+ 0x85, 0xcd, 0xb0, 0x77, 0x18, 0x5f, 0x40, 0x32, 0xe1, 0x8d, 0xbf, 0xf4,
+ 0x3b, 0x91, 0x49, 0x93, 0x5b, 0x08, 0x38, 0xbf, 0x9e, 0x2c, 0x08, 0x42,
+ 0x73, 0x03, 0x87, 0xaa,
+};
+static const struct drbg_kat_no_reseed kat1032_t = {
+ 11, kat1032_entropyin, kat1032_nonce, kat1032_persstr,
+ kat1032_addin0, kat1032_addin1, kat1032_retbits
+};
+static const struct drbg_kat kat1032 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1032_t
+};
+
+static const unsigned char kat1033_entropyin[] = {
+ 0xd5, 0x35, 0x67, 0xfd, 0x91, 0xff, 0x24, 0xe8, 0x56, 0x5a, 0x79, 0xfd,
+ 0xf7, 0xf8, 0x15, 0x16, 0x26, 0x1f, 0x03, 0xbd, 0x7e, 0x5a, 0x45, 0xaf,
+ 0xd5, 0x0c, 0x7a, 0xbd, 0xc8, 0x63, 0x0b, 0x45, 0x2e, 0xac, 0xe6, 0x49,
+ 0xe4, 0x18, 0xa6, 0x87,
+};
+static const unsigned char kat1033_nonce[] = {0};
+static const unsigned char kat1033_persstr[] = {0};
+static const unsigned char kat1033_addin0[] = {0};
+static const unsigned char kat1033_addin1[] = {0};
+static const unsigned char kat1033_retbits[] = {
+ 0x06, 0x4f, 0xa6, 0xa5, 0x2c, 0x4a, 0x5e, 0x89, 0xf4, 0xb4, 0xd0, 0x43,
+ 0x66, 0x24, 0xfd, 0x40, 0x3e, 0x84, 0x9c, 0x10, 0xf2, 0xc0, 0x77, 0x8f,
+ 0x5d, 0x81, 0xc7, 0x9a, 0x71, 0x9d, 0x1b, 0x4b, 0x68, 0x00, 0xd9, 0xcf,
+ 0x1d, 0x60, 0x19, 0xb5, 0x7e, 0xf2, 0xa9, 0xe3, 0x60, 0x47, 0xef, 0x47,
+ 0x37, 0x95, 0x53, 0xff, 0xf5, 0x4d, 0xb4, 0xfb, 0xa0, 0x46, 0xb1, 0x9d,
+ 0xf7, 0x89, 0x0c, 0x26,
+};
+static const struct drbg_kat_no_reseed kat1033_t = {
+ 12, kat1033_entropyin, kat1033_nonce, kat1033_persstr,
+ kat1033_addin0, kat1033_addin1, kat1033_retbits
+};
+static const struct drbg_kat kat1033 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1033_t
+};
+
+static const unsigned char kat1034_entropyin[] = {
+ 0x3f, 0x88, 0x05, 0xf4, 0x5c, 0x57, 0x45, 0x5f, 0xcd, 0xda, 0xad, 0x83,
+ 0x88, 0x54, 0x3c, 0xe3, 0x69, 0xf0, 0xe3, 0x57, 0xa6, 0x2b, 0xbe, 0x40,
+ 0xb0, 0x4a, 0x19, 0x90, 0x61, 0x51, 0x46, 0x38, 0xdc, 0x51, 0x40, 0x9b,
+ 0x9e, 0x4a, 0xca, 0x6d,
+};
+static const unsigned char kat1034_nonce[] = {0};
+static const unsigned char kat1034_persstr[] = {0};
+static const unsigned char kat1034_addin0[] = {0};
+static const unsigned char kat1034_addin1[] = {0};
+static const unsigned char kat1034_retbits[] = {
+ 0xba, 0x66, 0x49, 0xf5, 0x27, 0xef, 0x2d, 0x09, 0xca, 0xcf, 0x92, 0x6d,
+ 0x81, 0xab, 0xd4, 0x56, 0xd4, 0xb4, 0x38, 0x00, 0xdb, 0xf7, 0x7d, 0xe6,
+ 0x9b, 0xb9, 0xe2, 0x22, 0x9c, 0xb6, 0xe3, 0xac, 0x29, 0xc7, 0xc3, 0xd6,
+ 0xb5, 0xf7, 0x22, 0xd6, 0xd6, 0x69, 0x3b, 0xdc, 0x99, 0xd0, 0xf9, 0xaf,
+ 0xfa, 0x78, 0x85, 0x04, 0x18, 0x19, 0xcd, 0x43, 0xe3, 0x07, 0xf8, 0xaa,
+ 0x41, 0x8f, 0xc3, 0x1c,
+};
+static const struct drbg_kat_no_reseed kat1034_t = {
+ 13, kat1034_entropyin, kat1034_nonce, kat1034_persstr,
+ kat1034_addin0, kat1034_addin1, kat1034_retbits
+};
+static const struct drbg_kat kat1034 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1034_t
+};
+
+static const unsigned char kat1035_entropyin[] = {
+ 0x62, 0xef, 0xa3, 0x59, 0xeb, 0xd3, 0x1d, 0x3c, 0x49, 0x93, 0x53, 0xa5,
+ 0xab, 0x5f, 0x3b, 0x70, 0xa3, 0x4c, 0x5f, 0x39, 0xc5, 0x08, 0x23, 0x1e,
+ 0xae, 0x5f, 0x3e, 0xe2, 0x0e, 0x17, 0x83, 0x4b, 0x88, 0xfb, 0x80, 0x4a,
+ 0x32, 0xa2, 0x68, 0xa1,
+};
+static const unsigned char kat1035_nonce[] = {0};
+static const unsigned char kat1035_persstr[] = {0};
+static const unsigned char kat1035_addin0[] = {0};
+static const unsigned char kat1035_addin1[] = {0};
+static const unsigned char kat1035_retbits[] = {
+ 0x20, 0xdb, 0xd7, 0x57, 0x31, 0x72, 0x20, 0xa9, 0xa5, 0xb2, 0x39, 0x4b,
+ 0x49, 0x5e, 0xfe, 0x5e, 0x12, 0xcc, 0x7b, 0x75, 0x9c, 0x87, 0x7b, 0xfe,
+ 0xed, 0x64, 0x25, 0xcd, 0x64, 0x14, 0x6e, 0xe9, 0x0c, 0x45, 0x5c, 0x50,
+ 0xb2, 0x24, 0x39, 0x72, 0xb4, 0x30, 0x15, 0xf6, 0x9a, 0x01, 0x5f, 0x1a,
+ 0x49, 0x53, 0xe8, 0x4a, 0x08, 0x9d, 0x38, 0x17, 0x1f, 0x9a, 0x6f, 0xd4,
+ 0x7b, 0x8d, 0x48, 0x70,
+};
+static const struct drbg_kat_no_reseed kat1035_t = {
+ 14, kat1035_entropyin, kat1035_nonce, kat1035_persstr,
+ kat1035_addin0, kat1035_addin1, kat1035_retbits
+};
+static const struct drbg_kat kat1035 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1035_t
+};
+
+static const unsigned char kat1036_entropyin[] = {
+ 0x5c, 0xd0, 0x9f, 0x68, 0x4e, 0x1f, 0xff, 0xa8, 0x9f, 0x00, 0x3a, 0x00,
+ 0x95, 0x54, 0x01, 0xf0, 0xc1, 0xc6, 0x15, 0xda, 0x99, 0xc1, 0x91, 0x23,
+ 0xd9, 0xf2, 0x36, 0x65, 0xc3, 0xf1, 0x14, 0xf9, 0xc3, 0x9d, 0x95, 0x8c,
+ 0xf7, 0x62, 0x09, 0x8b,
+};
+static const unsigned char kat1036_nonce[] = {0};
+static const unsigned char kat1036_persstr[] = {0};
+static const unsigned char kat1036_addin0[] = {
+ 0xc7, 0xcc, 0x6f, 0x2e, 0x9f, 0x88, 0x5a, 0xb5, 0xad, 0x8c, 0xe9, 0x24,
+ 0xc9, 0x50, 0x9e, 0xab, 0x89, 0x75, 0x03, 0x21, 0xcb, 0xb5, 0x72, 0xb2,
+ 0x80, 0xdf, 0x8e, 0xc6, 0xf5, 0x09, 0x5f, 0x2b, 0x42, 0xa5, 0x58, 0x5f,
+ 0x75, 0xce, 0xac, 0xc2,
+};
+static const unsigned char kat1036_addin1[] = {
+ 0xce, 0x46, 0xb5, 0x3d, 0x21, 0xb8, 0x8e, 0x4e, 0xc9, 0x0f, 0xe5, 0x81,
+ 0x60, 0x81, 0xea, 0xc5, 0x50, 0x4d, 0xdb, 0x8a, 0xd3, 0x34, 0x15, 0xfd,
+ 0xf8, 0x2a, 0xc6, 0xb9, 0x7b, 0xa0, 0x4a, 0xf5, 0x21, 0x3f, 0x3e, 0x15,
+ 0x30, 0xb3, 0x4c, 0xac,
+};
+static const unsigned char kat1036_retbits[] = {
+ 0xe0, 0xab, 0x1d, 0x4e, 0x22, 0x21, 0x02, 0x7f, 0x91, 0x74, 0x84, 0x36,
+ 0xdf, 0x0e, 0x29, 0x0e, 0x6d, 0x2a, 0xb8, 0xc0, 0xdb, 0xfa, 0xf6, 0x38,
+ 0xf9, 0x75, 0x5f, 0x2a, 0x2c, 0xf8, 0x91, 0x58, 0xd4, 0x65, 0xfa, 0xcd,
+ 0xff, 0x74, 0x30, 0x3f, 0x0b, 0x64, 0x85, 0xb2, 0xe6, 0x09, 0xc3, 0x09,
+ 0xd7, 0x65, 0xbb, 0xed, 0x7e, 0xcf, 0xb3, 0xc5, 0x34, 0x10, 0xc6, 0x22,
+ 0x73, 0x36, 0xc6, 0x98,
+};
+static const struct drbg_kat_no_reseed kat1036_t = {
+ 0, kat1036_entropyin, kat1036_nonce, kat1036_persstr,
+ kat1036_addin0, kat1036_addin1, kat1036_retbits
+};
+static const struct drbg_kat kat1036 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1036_t
+};
+
+static const unsigned char kat1037_entropyin[] = {
+ 0x96, 0x7d, 0x1c, 0x60, 0x2e, 0xa0, 0xac, 0xed, 0x53, 0x71, 0x4a, 0x31,
+ 0x4d, 0x87, 0x7c, 0xfe, 0xa4, 0xb5, 0x52, 0xea, 0x2a, 0xac, 0xde, 0xf9,
+ 0xfa, 0xff, 0xa1, 0xf5, 0x43, 0xc7, 0x9f, 0x2f, 0xf6, 0xc0, 0x60, 0xe8,
+ 0x61, 0x14, 0x6e, 0xfd,
+};
+static const unsigned char kat1037_nonce[] = {0};
+static const unsigned char kat1037_persstr[] = {0};
+static const unsigned char kat1037_addin0[] = {
+ 0x9f, 0xcd, 0x6e, 0x0d, 0xbf, 0xef, 0xd8, 0x57, 0x81, 0x77, 0x1f, 0x58,
+ 0x67, 0x77, 0x26, 0xa5, 0xbe, 0x9a, 0x14, 0x60, 0xbd, 0x7c, 0x15, 0x7f,
+ 0xf4, 0xd6, 0x02, 0x87, 0xbf, 0xd2, 0x50, 0xf5, 0x0d, 0x3c, 0x7a, 0x25,
+ 0x74, 0xd4, 0xb8, 0x59,
+};
+static const unsigned char kat1037_addin1[] = {
+ 0x8f, 0x73, 0x4f, 0x57, 0xd4, 0x93, 0x84, 0xb4, 0x77, 0xa5, 0xd1, 0x8d,
+ 0xc2, 0xe2, 0x96, 0x1f, 0xa5, 0xe5, 0x55, 0x33, 0x4f, 0xe9, 0x30, 0x97,
+ 0x5c, 0xee, 0x93, 0xb6, 0xb3, 0x8e, 0xbc, 0x7e, 0xaf, 0xfa, 0x43, 0x80,
+ 0xdb, 0x65, 0xdd, 0x2b,
+};
+static const unsigned char kat1037_retbits[] = {
+ 0x1d, 0x80, 0x1c, 0x5e, 0x3c, 0xdc, 0x15, 0xa5, 0xb6, 0xf6, 0xfc, 0x69,
+ 0x89, 0xcd, 0xc6, 0x70, 0x0f, 0xf0, 0x03, 0xf7, 0xc7, 0xe3, 0x01, 0xc5,
+ 0x7c, 0xe9, 0xe0, 0xd2, 0x1d, 0xbb, 0xe5, 0x8c, 0xe3, 0xdf, 0xd4, 0xbf,
+ 0x46, 0x1f, 0x5c, 0xbb, 0xe6, 0x62, 0xfb, 0x8b, 0xd8, 0x69, 0xa6, 0x9b,
+ 0xa0, 0xfa, 0x1c, 0xd3, 0x95, 0x6d, 0x8e, 0xf6, 0xf1, 0x9c, 0x05, 0x8f,
+ 0x0f, 0x97, 0x8c, 0x85,
+};
+static const struct drbg_kat_no_reseed kat1037_t = {
+ 1, kat1037_entropyin, kat1037_nonce, kat1037_persstr,
+ kat1037_addin0, kat1037_addin1, kat1037_retbits
+};
+static const struct drbg_kat kat1037 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1037_t
+};
+
+static const unsigned char kat1038_entropyin[] = {
+ 0x4b, 0xa5, 0x74, 0xb5, 0x24, 0x63, 0xfb, 0xb3, 0xfe, 0x7e, 0x52, 0xa6,
+ 0xb3, 0xcb, 0x80, 0xa5, 0x52, 0xd2, 0xc0, 0xd6, 0xbe, 0x81, 0xde, 0xc6,
+ 0xfb, 0xa1, 0x20, 0x50, 0xca, 0x6f, 0xca, 0x25, 0x8a, 0x9a, 0xd5, 0x4e,
+ 0x88, 0xc4, 0x9d, 0x92,
+};
+static const unsigned char kat1038_nonce[] = {0};
+static const unsigned char kat1038_persstr[] = {0};
+static const unsigned char kat1038_addin0[] = {
+ 0xcb, 0xa4, 0x03, 0x4b, 0x3c, 0xf9, 0x8f, 0xa6, 0x6e, 0x5b, 0x00, 0xad,
+ 0xda, 0x6f, 0xca, 0x44, 0xb0, 0x5a, 0x79, 0x25, 0xe8, 0xae, 0x1a, 0x21,
+ 0xfa, 0x51, 0xbb, 0x11, 0x0f, 0x1c, 0x9e, 0xc4, 0x9a, 0x15, 0xc6, 0x55,
+ 0x0b, 0xbf, 0x96, 0x0c,
+};
+static const unsigned char kat1038_addin1[] = {
+ 0xe7, 0xe8, 0x1a, 0x90, 0xee, 0x93, 0x10, 0x63, 0x86, 0x03, 0x49, 0xb8,
+ 0x79, 0x7e, 0x29, 0x86, 0x1e, 0xfd, 0x69, 0x38, 0xc1, 0x3e, 0x04, 0x00,
+ 0x28, 0x03, 0xf8, 0xfb, 0xea, 0x2f, 0x71, 0x53, 0x3e, 0xbc, 0x24, 0xba,
+ 0xaa, 0x8a, 0x98, 0x74,
+};
+static const unsigned char kat1038_retbits[] = {
+ 0xa4, 0x12, 0x20, 0x7d, 0xa8, 0xb8, 0x56, 0xd6, 0x62, 0x94, 0xd5, 0x50,
+ 0xdf, 0xea, 0xda, 0x32, 0x8b, 0xdd, 0xd1, 0xed, 0xa4, 0x51, 0xeb, 0x03,
+ 0x93, 0xb9, 0x8e, 0x09, 0x69, 0x99, 0x62, 0x93, 0x88, 0x1b, 0xb7, 0x67,
+ 0xd0, 0x11, 0x14, 0x3c, 0x0a, 0x6d, 0x30, 0x48, 0xa8, 0x35, 0x34, 0x5b,
+ 0xe3, 0x1e, 0xaf, 0x3d, 0xa3, 0xe2, 0x66, 0x5a, 0xa6, 0xe4, 0xbb, 0x2d,
+ 0xfd, 0x35, 0xd6, 0x6b,
+};
+static const struct drbg_kat_no_reseed kat1038_t = {
+ 2, kat1038_entropyin, kat1038_nonce, kat1038_persstr,
+ kat1038_addin0, kat1038_addin1, kat1038_retbits
+};
+static const struct drbg_kat kat1038 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1038_t
+};
+
+static const unsigned char kat1039_entropyin[] = {
+ 0x6a, 0xda, 0x67, 0x0a, 0xe2, 0x4b, 0xc5, 0x3a, 0x23, 0x8d, 0xa5, 0x81,
+ 0x67, 0x92, 0x22, 0x30, 0x72, 0x15, 0x13, 0xb3, 0x35, 0xf6, 0xb1, 0x96,
+ 0x09, 0x8d, 0x36, 0xf6, 0x57, 0x4f, 0x96, 0x9c, 0x8d, 0x57, 0xc2, 0x28,
+ 0x12, 0x92, 0xb8, 0xb2,
+};
+static const unsigned char kat1039_nonce[] = {0};
+static const unsigned char kat1039_persstr[] = {0};
+static const unsigned char kat1039_addin0[] = {
+ 0x5e, 0x24, 0x3e, 0x2f, 0x7f, 0xea, 0x65, 0x9b, 0xd0, 0x51, 0xdc, 0xd5,
+ 0x09, 0x5f, 0x7d, 0x12, 0x63, 0xed, 0x80, 0xe9, 0xf3, 0x2b, 0xc7, 0x68,
+ 0x26, 0x6d, 0xbb, 0xd4, 0x36, 0xbc, 0x81, 0x65, 0xcb, 0xc0, 0x41, 0x69,
+ 0x76, 0x69, 0xde, 0xfc,
+};
+static const unsigned char kat1039_addin1[] = {
+ 0x5a, 0x35, 0xf0, 0xae, 0xaf, 0xc5, 0xbf, 0x88, 0xf0, 0x19, 0x79, 0xc6,
+ 0xaa, 0x54, 0xeb, 0xa1, 0x0f, 0xcd, 0x17, 0xc3, 0xbf, 0x04, 0x0d, 0xfe,
+ 0xd5, 0x4a, 0x0c, 0xdf, 0x49, 0xcc, 0x1e, 0x88, 0x53, 0x00, 0x94, 0x87,
+ 0x3c, 0x43, 0x66, 0xd6,
+};
+static const unsigned char kat1039_retbits[] = {
+ 0x92, 0x2f, 0x07, 0xf5, 0x9e, 0xdf, 0xd5, 0xb6, 0xa3, 0x6d, 0x44, 0x37,
+ 0x75, 0x3a, 0xa1, 0xb4, 0x30, 0x90, 0xf0, 0x64, 0x9c, 0x63, 0x96, 0x73,
+ 0xe0, 0x28, 0x9b, 0xaa, 0xf1, 0xaa, 0xec, 0x57, 0x30, 0x6f, 0xc4, 0xf4,
+ 0x19, 0x69, 0x7f, 0x21, 0x56, 0x18, 0x73, 0xd1, 0xe4, 0x28, 0xe4, 0x88,
+ 0x37, 0x43, 0xca, 0xd5, 0x35, 0xe3, 0xf5, 0x63, 0xbf, 0x12, 0x95, 0xe1,
+ 0x38, 0xc7, 0xd0, 0xa5,
+};
+static const struct drbg_kat_no_reseed kat1039_t = {
+ 3, kat1039_entropyin, kat1039_nonce, kat1039_persstr,
+ kat1039_addin0, kat1039_addin1, kat1039_retbits
+};
+static const struct drbg_kat kat1039 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1039_t
+};
+
+static const unsigned char kat1040_entropyin[] = {
+ 0x8b, 0x06, 0x63, 0xd7, 0x16, 0x30, 0xab, 0x64, 0x96, 0x6b, 0x92, 0xa6,
+ 0xee, 0x7b, 0xf9, 0x4b, 0x07, 0x7f, 0xbe, 0x55, 0x89, 0x88, 0xa5, 0x0e,
+ 0xe8, 0x03, 0x27, 0x6d, 0x83, 0x8b, 0xaf, 0x9a, 0xec, 0x73, 0x41, 0x92,
+ 0x69, 0xda, 0xa0, 0x64,
+};
+static const unsigned char kat1040_nonce[] = {0};
+static const unsigned char kat1040_persstr[] = {0};
+static const unsigned char kat1040_addin0[] = {
+ 0x47, 0x82, 0xc2, 0xd4, 0xef, 0x37, 0x7d, 0x36, 0x98, 0xda, 0x71, 0x0d,
+ 0x75, 0xfc, 0x83, 0xf4, 0xb2, 0x44, 0x8a, 0x79, 0x53, 0x9f, 0x5d, 0x65,
+ 0x52, 0xf7, 0x30, 0xd2, 0x3e, 0x47, 0xf4, 0x98, 0x90, 0xd9, 0x7b, 0xbb,
+ 0x4c, 0xaf, 0x30, 0x3d,
+};
+static const unsigned char kat1040_addin1[] = {
+ 0x08, 0xcd, 0xa2, 0xb6, 0x39, 0xdb, 0x41, 0x90, 0x83, 0xac, 0x9c, 0xd2,
+ 0x51, 0xad, 0xf4, 0x1e, 0x75, 0x4f, 0x1f, 0xc7, 0xad, 0x0d, 0x73, 0xbf,
+ 0x4a, 0x54, 0x4c, 0xff, 0x1b, 0x8e, 0x5b, 0x41, 0x62, 0xd8, 0x2d, 0x95,
+ 0x3d, 0xf3, 0x49, 0xa7,
+};
+static const unsigned char kat1040_retbits[] = {
+ 0x26, 0xe9, 0xdd, 0xa5, 0x85, 0x00, 0x6c, 0x71, 0xcf, 0x90, 0x40, 0xad,
+ 0x2b, 0x1e, 0x54, 0xc9, 0xa8, 0xd0, 0xbc, 0x94, 0xea, 0x84, 0x71, 0x6b,
+ 0xb4, 0x9d, 0xa1, 0xe4, 0x7a, 0x91, 0x0a, 0x6b, 0x56, 0x08, 0xa7, 0x82,
+ 0x65, 0x1e, 0x3f, 0x38, 0x8e, 0x7a, 0x25, 0x39, 0xa8, 0x4d, 0x27, 0x6c,
+ 0xda, 0x5f, 0xd9, 0xc4, 0x5c, 0xab, 0xbd, 0x02, 0x6d, 0xf5, 0xe1, 0x29,
+ 0x5d, 0x03, 0xfd, 0x5e,
+};
+static const struct drbg_kat_no_reseed kat1040_t = {
+ 4, kat1040_entropyin, kat1040_nonce, kat1040_persstr,
+ kat1040_addin0, kat1040_addin1, kat1040_retbits
+};
+static const struct drbg_kat kat1040 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1040_t
+};
+
+static const unsigned char kat1041_entropyin[] = {
+ 0x48, 0x93, 0x64, 0xb0, 0x57, 0xd9, 0xdf, 0xfc, 0xe0, 0xde, 0x0e, 0x92,
+ 0xbe, 0xc4, 0x86, 0x43, 0xa4, 0x12, 0xb0, 0x95, 0xb7, 0x9b, 0x61, 0x1e,
+ 0x79, 0x9f, 0x57, 0x88, 0x9a, 0x4b, 0x00, 0x81, 0xd6, 0x98, 0x4b, 0x83,
+ 0x60, 0xb6, 0xca, 0x02,
+};
+static const unsigned char kat1041_nonce[] = {0};
+static const unsigned char kat1041_persstr[] = {0};
+static const unsigned char kat1041_addin0[] = {
+ 0xde, 0xad, 0x84, 0x8d, 0x39, 0xa2, 0xc0, 0x95, 0x73, 0x35, 0xd5, 0x35,
+ 0x7e, 0xd5, 0xf9, 0xaa, 0xa4, 0x3e, 0xec, 0xf0, 0x36, 0xed, 0x9a, 0x07,
+ 0x8a, 0xd7, 0xa9, 0x46, 0xba, 0x86, 0xc8, 0x5a, 0x5f, 0x19, 0x2f, 0x32,
+ 0x4f, 0x71, 0xc3, 0x0d,
+};
+static const unsigned char kat1041_addin1[] = {
+ 0x84, 0xc6, 0xa7, 0x05, 0x7a, 0xe6, 0x79, 0x2a, 0xe9, 0xdb, 0x18, 0xb4,
+ 0x29, 0xbf, 0xb6, 0x5b, 0xff, 0x19, 0xc0, 0x3b, 0x03, 0x84, 0xa6, 0x42,
+ 0x37, 0x43, 0xa6, 0xa2, 0xd5, 0x26, 0x3e, 0x45, 0xaa, 0xce, 0x0e, 0x5e,
+ 0x6d, 0x53, 0xd8, 0x8c,
+};
+static const unsigned char kat1041_retbits[] = {
+ 0x92, 0x74, 0x2a, 0xa7, 0xdc, 0x8d, 0x76, 0xa8, 0xfc, 0x4a, 0x28, 0xd0,
+ 0x3f, 0xd1, 0x13, 0x12, 0xd2, 0x07, 0xe6, 0xb6, 0xb1, 0xdf, 0xeb, 0x16,
+ 0x66, 0x53, 0x11, 0x2f, 0x58, 0xc3, 0xe3, 0x9e, 0x0b, 0xeb, 0x07, 0x0b,
+ 0x40, 0x13, 0x97, 0xab, 0x7d, 0x52, 0xe4, 0xb2, 0x4d, 0xd5, 0xc3, 0x90,
+ 0xaf, 0x5f, 0x36, 0xd4, 0x4b, 0x7c, 0xaa, 0x1a, 0x4e, 0x1b, 0x0d, 0xc1,
+ 0xa8, 0xc9, 0x74, 0xfd,
+};
+static const struct drbg_kat_no_reseed kat1041_t = {
+ 5, kat1041_entropyin, kat1041_nonce, kat1041_persstr,
+ kat1041_addin0, kat1041_addin1, kat1041_retbits
+};
+static const struct drbg_kat kat1041 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1041_t
+};
+
+static const unsigned char kat1042_entropyin[] = {
+ 0x1e, 0x64, 0xe3, 0xb4, 0xa3, 0xdd, 0xee, 0x08, 0x93, 0x68, 0x7b, 0xe2,
+ 0x40, 0x1b, 0xac, 0xb1, 0xb3, 0xdc, 0x1e, 0x14, 0x05, 0x00, 0xf9, 0xaa,
+ 0x70, 0x90, 0x8c, 0x52, 0xc9, 0x1b, 0x2c, 0x49, 0xf8, 0xd0, 0xd9, 0xc1,
+ 0x2c, 0xb8, 0x47, 0x73,
+};
+static const unsigned char kat1042_nonce[] = {0};
+static const unsigned char kat1042_persstr[] = {0};
+static const unsigned char kat1042_addin0[] = {
+ 0x53, 0x58, 0x90, 0x29, 0x05, 0xdc, 0xb0, 0xbc, 0x36, 0x99, 0x9b, 0x65,
+ 0x73, 0x8b, 0x70, 0x7f, 0x91, 0x22, 0x6d, 0x14, 0x25, 0x82, 0xd2, 0xb9,
+ 0xd8, 0x23, 0x79, 0xc0, 0x76, 0x82, 0xb3, 0xa1, 0xe5, 0x41, 0x9e, 0x32,
+ 0xa8, 0x86, 0x9d, 0x6f,
+};
+static const unsigned char kat1042_addin1[] = {
+ 0x0c, 0x32, 0xa5, 0x72, 0x6d, 0xab, 0xab, 0x03, 0x30, 0x7b, 0xff, 0x1b,
+ 0xe5, 0x24, 0xc0, 0x86, 0x20, 0x0e, 0x85, 0x5c, 0xf3, 0xca, 0x7a, 0x78,
+ 0xa5, 0xd6, 0x1f, 0xdd, 0x62, 0x88, 0x6a, 0xbc, 0xa7, 0xf8, 0x69, 0x38,
+ 0x16, 0xd2, 0x26, 0xc0,
+};
+static const unsigned char kat1042_retbits[] = {
+ 0x2a, 0x3f, 0x0a, 0x6c, 0x58, 0x14, 0x24, 0xd5, 0x76, 0x1a, 0x32, 0x17,
+ 0x8f, 0x0e, 0x76, 0x62, 0xaa, 0xcd, 0xba, 0xd7, 0x39, 0xce, 0x3f, 0x18,
+ 0xcb, 0x5d, 0x04, 0xba, 0x69, 0xdc, 0x75, 0xc5, 0x45, 0xab, 0x80, 0x73,
+ 0x5a, 0xe2, 0xd4, 0x4a, 0x8e, 0x52, 0xff, 0x37, 0x43, 0xdb, 0x2d, 0xe1,
+ 0x53, 0x4e, 0x55, 0x35, 0x92, 0x02, 0xec, 0x11, 0xde, 0xb0, 0x67, 0xd9,
+ 0x1e, 0x7f, 0x0a, 0xe6,
+};
+static const struct drbg_kat_no_reseed kat1042_t = {
+ 6, kat1042_entropyin, kat1042_nonce, kat1042_persstr,
+ kat1042_addin0, kat1042_addin1, kat1042_retbits
+};
+static const struct drbg_kat kat1042 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1042_t
+};
+
+static const unsigned char kat1043_entropyin[] = {
+ 0xe8, 0xdc, 0xf5, 0x1a, 0xdb, 0x2e, 0xff, 0x85, 0xa3, 0xbe, 0x9c, 0xdd,
+ 0x83, 0xc4, 0xcb, 0x3e, 0x4a, 0x45, 0x0d, 0x2e, 0x36, 0x37, 0x74, 0x24,
+ 0x0b, 0xef, 0xa1, 0x56, 0x80, 0x3f, 0xa4, 0xe4, 0x89, 0xb3, 0x24, 0x9f,
+ 0xdf, 0x94, 0xc7, 0x06,
+};
+static const unsigned char kat1043_nonce[] = {0};
+static const unsigned char kat1043_persstr[] = {0};
+static const unsigned char kat1043_addin0[] = {
+ 0xd8, 0x51, 0x49, 0x08, 0x01, 0x6a, 0x20, 0xac, 0xc5, 0x4a, 0x98, 0xe8,
+ 0xee, 0x09, 0x03, 0xf6, 0x2b, 0xd8, 0xdf, 0x4d, 0x62, 0x3c, 0x76, 0x8f,
+ 0xd6, 0xee, 0x43, 0x84, 0xff, 0x84, 0x19, 0xe8, 0x2d, 0xb7, 0xaf, 0x12,
+ 0x4b, 0x49, 0x63, 0x11,
+};
+static const unsigned char kat1043_addin1[] = {
+ 0x76, 0x34, 0x23, 0x4f, 0x2e, 0x36, 0x5e, 0x6b, 0x59, 0x8d, 0xab, 0xbe,
+ 0xf4, 0x24, 0x7f, 0xa2, 0x63, 0x6f, 0x14, 0x95, 0x25, 0x29, 0xc1, 0x5d,
+ 0x0a, 0x9a, 0x47, 0x5a, 0x77, 0x53, 0x0d, 0xde, 0x63, 0x94, 0x03, 0x7f,
+ 0x2b, 0x86, 0x4b, 0xcc,
+};
+static const unsigned char kat1043_retbits[] = {
+ 0xb8, 0xb5, 0x1f, 0x71, 0x7e, 0x97, 0x3c, 0xc6, 0xf7, 0x36, 0x15, 0x18,
+ 0xa7, 0xdf, 0xb8, 0xf9, 0x79, 0xe6, 0xaa, 0x76, 0x13, 0x21, 0x5d, 0x3a,
+ 0x72, 0xff, 0xfc, 0x0b, 0x80, 0x5d, 0x65, 0x4e, 0x1e, 0x81, 0xf4, 0x36,
+ 0x32, 0xac, 0xb7, 0xb1, 0xca, 0xcb, 0x9f, 0xe8, 0xed, 0x5c, 0x29, 0x02,
+ 0x9e, 0x9a, 0xcd, 0x7a, 0x39, 0x7d, 0xe8, 0x3c, 0x90, 0xfb, 0x55, 0x75,
+ 0x31, 0xd9, 0xdf, 0x37,
+};
+static const struct drbg_kat_no_reseed kat1043_t = {
+ 7, kat1043_entropyin, kat1043_nonce, kat1043_persstr,
+ kat1043_addin0, kat1043_addin1, kat1043_retbits
+};
+static const struct drbg_kat kat1043 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1043_t
+};
+
+static const unsigned char kat1044_entropyin[] = {
+ 0xe7, 0x18, 0xb5, 0xd8, 0xfb, 0x73, 0x26, 0x0b, 0xf4, 0x6f, 0x1d, 0x4b,
+ 0x50, 0x44, 0xeb, 0x44, 0x69, 0x30, 0x25, 0x3f, 0xe6, 0x9b, 0xc1, 0x6e,
+ 0x1c, 0x73, 0x87, 0xb3, 0x26, 0xc2, 0x4f, 0xd1, 0x4e, 0xb5, 0x75, 0x15,
+ 0xe5, 0x39, 0x4e, 0x88,
+};
+static const unsigned char kat1044_nonce[] = {0};
+static const unsigned char kat1044_persstr[] = {0};
+static const unsigned char kat1044_addin0[] = {
+ 0x97, 0x8c, 0xa8, 0x24, 0xc6, 0x52, 0xdc, 0xd5, 0x41, 0xaa, 0x5d, 0xba,
+ 0xf5, 0xf1, 0xc3, 0x16, 0x7c, 0x1d, 0x02, 0x09, 0x15, 0xe8, 0x5a, 0x6c,
+ 0x28, 0x7a, 0xff, 0x4b, 0x17, 0x65, 0x80, 0x4a, 0xb3, 0x49, 0x25, 0xeb,
+ 0xef, 0x77, 0x47, 0x2d,
+};
+static const unsigned char kat1044_addin1[] = {
+ 0x3d, 0x59, 0x40, 0x97, 0xd7, 0x88, 0x69, 0x9f, 0xb1, 0x4b, 0x69, 0x26,
+ 0x88, 0x2f, 0x77, 0xb8, 0x38, 0x7d, 0xb9, 0xc4, 0xd9, 0x43, 0xb7, 0x0e,
+ 0x34, 0x1d, 0x73, 0x85, 0x37, 0xc8, 0x2f, 0x10, 0x6e, 0xb4, 0x5c, 0x25,
+ 0xcd, 0x9b, 0x88, 0x31,
+};
+static const unsigned char kat1044_retbits[] = {
+ 0xfc, 0xaf, 0xc3, 0xd5, 0x96, 0x75, 0x37, 0xb8, 0xea, 0x3a, 0xce, 0x6d,
+ 0xa0, 0x21, 0xd5, 0xcf, 0xba, 0xfe, 0x35, 0x56, 0x59, 0xb9, 0xb5, 0xd1,
+ 0x4c, 0xed, 0x17, 0xe0, 0x8f, 0x1f, 0x9c, 0x17, 0x0c, 0x2c, 0xd9, 0x45,
+ 0xd6, 0x05, 0x4d, 0xa5, 0x40, 0xef, 0xcb, 0x1c, 0x20, 0xe2, 0x80, 0xff,
+ 0x60, 0x2e, 0x43, 0x60, 0x71, 0xcc, 0xce, 0x38, 0x47, 0x49, 0x66, 0xd9,
+ 0x6f, 0x94, 0x9f, 0x9b,
+};
+static const struct drbg_kat_no_reseed kat1044_t = {
+ 8, kat1044_entropyin, kat1044_nonce, kat1044_persstr,
+ kat1044_addin0, kat1044_addin1, kat1044_retbits
+};
+static const struct drbg_kat kat1044 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1044_t
+};
+
+static const unsigned char kat1045_entropyin[] = {
+ 0xc8, 0x5a, 0xa4, 0x5a, 0xcb, 0xc7, 0xcf, 0xd4, 0x09, 0x9e, 0x3a, 0x79,
+ 0xfb, 0x8c, 0x10, 0x7c, 0xac, 0x25, 0x3f, 0xbb, 0x17, 0x10, 0x13, 0x91,
+ 0x2e, 0x36, 0xae, 0x73, 0x18, 0xc3, 0x0d, 0x42, 0x53, 0x09, 0x99, 0x84,
+ 0x16, 0x7b, 0x83, 0xb8,
+};
+static const unsigned char kat1045_nonce[] = {0};
+static const unsigned char kat1045_persstr[] = {0};
+static const unsigned char kat1045_addin0[] = {
+ 0xe3, 0x43, 0xf3, 0x3d, 0x7d, 0x30, 0x5d, 0x36, 0xc9, 0x74, 0xb5, 0xf1,
+ 0x3f, 0xbb, 0xb6, 0xa0, 0x38, 0xa5, 0x4b, 0x3d, 0xfc, 0x4c, 0x63, 0xd4,
+ 0xbb, 0x35, 0xb9, 0xa1, 0x02, 0x53, 0x63, 0x61, 0x3a, 0xfc, 0xb1, 0xe9,
+ 0x3f, 0x76, 0xeb, 0x25,
+};
+static const unsigned char kat1045_addin1[] = {
+ 0xd3, 0xd9, 0xe1, 0x98, 0xd9, 0xa1, 0xc7, 0x1e, 0x12, 0x4e, 0x47, 0x06,
+ 0x54, 0xae, 0x8f, 0x8a, 0x4b, 0x0d, 0xff, 0xc5, 0xdc, 0x04, 0x81, 0x51,
+ 0x84, 0xc9, 0x16, 0xb4, 0x76, 0xcb, 0xb5, 0x8e, 0x86, 0xce, 0x40, 0xf3,
+ 0x1a, 0x09, 0x04, 0x47,
+};
+static const unsigned char kat1045_retbits[] = {
+ 0xe0, 0x54, 0x73, 0x47, 0x02, 0x4b, 0x75, 0x93, 0x84, 0x86, 0xe4, 0x6c,
+ 0xef, 0x39, 0x2d, 0x51, 0x93, 0x6d, 0xc8, 0xe8, 0x35, 0x08, 0x34, 0xab,
+ 0x97, 0x60, 0xd2, 0xd5, 0xfc, 0x44, 0xa6, 0x7e, 0xec, 0xa4, 0xcc, 0xc6,
+ 0x6c, 0x88, 0xac, 0x4a, 0x92, 0xed, 0x74, 0x8b, 0x77, 0x8e, 0x55, 0xd8,
+ 0x61, 0x64, 0x51, 0x26, 0xae, 0x76, 0x4f, 0x37, 0x1a, 0x78, 0x6b, 0x0a,
+ 0x6b, 0x30, 0x58, 0x00,
+};
+static const struct drbg_kat_no_reseed kat1045_t = {
+ 9, kat1045_entropyin, kat1045_nonce, kat1045_persstr,
+ kat1045_addin0, kat1045_addin1, kat1045_retbits
+};
+static const struct drbg_kat kat1045 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1045_t
+};
+
+static const unsigned char kat1046_entropyin[] = {
+ 0x9b, 0xa9, 0xf7, 0x51, 0x1c, 0x1c, 0x6f, 0x06, 0xac, 0xd4, 0xa6, 0x47,
+ 0xea, 0xb8, 0x22, 0x72, 0x43, 0x39, 0x23, 0x6a, 0x6e, 0x3f, 0x0f, 0xd2,
+ 0x61, 0x50, 0xc3, 0xa2, 0x12, 0x7b, 0x49, 0xc6, 0xbe, 0xe3, 0xb9, 0xc5,
+ 0xb7, 0x01, 0xd4, 0xb6,
+};
+static const unsigned char kat1046_nonce[] = {0};
+static const unsigned char kat1046_persstr[] = {0};
+static const unsigned char kat1046_addin0[] = {
+ 0xc7, 0xd3, 0x1b, 0xb6, 0x1a, 0x45, 0x48, 0x42, 0xa6, 0xb6, 0x63, 0x6a,
+ 0x38, 0x7d, 0xf9, 0x6d, 0x16, 0x39, 0x05, 0xa9, 0xbd, 0x24, 0x50, 0x25,
+ 0x1d, 0xba, 0xc9, 0xd9, 0x9d, 0x85, 0x8f, 0x22, 0x23, 0x69, 0xde, 0xd3,
+ 0x9c, 0xba, 0x5f, 0xc6,
+};
+static const unsigned char kat1046_addin1[] = {
+ 0x83, 0x2a, 0x61, 0x5d, 0xf5, 0x75, 0x7a, 0x5a, 0x6a, 0x78, 0x47, 0xcf,
+ 0xb6, 0x74, 0x31, 0xf0, 0x77, 0xf9, 0xcf, 0x28, 0xc5, 0x97, 0xf1, 0xfc,
+ 0x6d, 0x1f, 0xe9, 0x0a, 0xca, 0x9b, 0xba, 0x61, 0x60, 0x65, 0xd5, 0xcd,
+ 0x01, 0x37, 0x46, 0xc9,
+};
+static const unsigned char kat1046_retbits[] = {
+ 0x26, 0x30, 0x41, 0x54, 0xa2, 0x19, 0x8e, 0xeb, 0xb7, 0x9f, 0xac, 0xab,
+ 0x9a, 0x96, 0x72, 0xdb, 0x80, 0x9f, 0x2e, 0xa0, 0xae, 0x3d, 0xac, 0x36,
+ 0x92, 0x85, 0x72, 0xa5, 0x5c, 0xae, 0xe0, 0xd6, 0xb6, 0xf3, 0x2f, 0x17,
+ 0xa9, 0x31, 0xa6, 0xe7, 0xf0, 0x96, 0x11, 0x9e, 0xf3, 0x17, 0xd1, 0x38,
+ 0x4d, 0x47, 0xff, 0x8a, 0xfa, 0x5c, 0x6e, 0xea, 0x31, 0xc6, 0xf0, 0x28,
+ 0xc7, 0x0b, 0xc6, 0x46,
+};
+static const struct drbg_kat_no_reseed kat1046_t = {
+ 10, kat1046_entropyin, kat1046_nonce, kat1046_persstr,
+ kat1046_addin0, kat1046_addin1, kat1046_retbits
+};
+static const struct drbg_kat kat1046 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1046_t
+};
+
+static const unsigned char kat1047_entropyin[] = {
+ 0x8b, 0xea, 0xbd, 0xfb, 0xd4, 0xf5, 0xb1, 0x6b, 0xdc, 0x4b, 0x94, 0x17,
+ 0x80, 0x26, 0xed, 0x50, 0xcb, 0x1f, 0xc6, 0x5d, 0xde, 0xd2, 0x18, 0xae,
+ 0xea, 0xf5, 0x58, 0x60, 0x1b, 0xd7, 0xf5, 0x58, 0x5f, 0x48, 0x58, 0xde,
+ 0x7a, 0x98, 0xd4, 0xdd,
+};
+static const unsigned char kat1047_nonce[] = {0};
+static const unsigned char kat1047_persstr[] = {0};
+static const unsigned char kat1047_addin0[] = {
+ 0x1d, 0x95, 0xe1, 0xb5, 0xd0, 0x77, 0xfc, 0x7d, 0x5d, 0x14, 0x97, 0x55,
+ 0xe2, 0x98, 0x7a, 0xbc, 0x28, 0x55, 0xda, 0xba, 0x34, 0xec, 0xae, 0x5e,
+ 0x83, 0x58, 0x12, 0x44, 0x80, 0x46, 0x0a, 0x25, 0x53, 0x80, 0x32, 0x08,
+ 0xd0, 0x15, 0x1a, 0x53,
+};
+static const unsigned char kat1047_addin1[] = {
+ 0x73, 0xe6, 0x53, 0x5b, 0xda, 0xf0, 0x79, 0xe4, 0xf1, 0xda, 0x57, 0x69,
+ 0x6c, 0x0a, 0x95, 0xc6, 0x53, 0xea, 0x7d, 0x73, 0x8d, 0x4b, 0x52, 0xf0,
+ 0x1e, 0xe6, 0x83, 0x18, 0x9a, 0x6a, 0x3c, 0xf1, 0xcb, 0x22, 0xa3, 0x28,
+ 0xb9, 0xbc, 0x36, 0xed,
+};
+static const unsigned char kat1047_retbits[] = {
+ 0x45, 0x2a, 0x3a, 0x8f, 0xbb, 0x39, 0x12, 0x1a, 0x54, 0x54, 0x76, 0x9f,
+ 0xa7, 0x5b, 0x10, 0xde, 0x00, 0x7a, 0x9e, 0xcc, 0x85, 0x0b, 0x6a, 0xea,
+ 0xe2, 0x31, 0x82, 0x74, 0xea, 0x3d, 0x1f, 0x91, 0xde, 0xf5, 0x9d, 0x58,
+ 0x91, 0x5e, 0x43, 0x39, 0xf8, 0x88, 0x0d, 0xa3, 0x49, 0xab, 0x96, 0x2a,
+ 0xa8, 0x77, 0xef, 0x00, 0xb8, 0x26, 0xfe, 0xe4, 0x98, 0xb0, 0x62, 0x9f,
+ 0x32, 0x55, 0xa2, 0xa8,
+};
+static const struct drbg_kat_no_reseed kat1047_t = {
+ 11, kat1047_entropyin, kat1047_nonce, kat1047_persstr,
+ kat1047_addin0, kat1047_addin1, kat1047_retbits
+};
+static const struct drbg_kat kat1047 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1047_t
+};
+
+static const unsigned char kat1048_entropyin[] = {
+ 0xad, 0x73, 0x04, 0x05, 0xc8, 0xa9, 0x66, 0xf4, 0xd3, 0x37, 0xfe, 0x0a,
+ 0x2d, 0x3e, 0x27, 0xbb, 0x89, 0x33, 0xa7, 0x9b, 0x20, 0x1f, 0x0c, 0xb2,
+ 0xc9, 0x43, 0x21, 0x59, 0xd2, 0xcf, 0xd9, 0x92, 0xd2, 0x26, 0xeb, 0x1e,
+ 0xad, 0x4e, 0x99, 0x73,
+};
+static const unsigned char kat1048_nonce[] = {0};
+static const unsigned char kat1048_persstr[] = {0};
+static const unsigned char kat1048_addin0[] = {
+ 0xef, 0x60, 0x7d, 0x3c, 0x90, 0x9c, 0x55, 0xbe, 0x2f, 0xe8, 0x7b, 0x1b,
+ 0x72, 0xee, 0x66, 0x33, 0x24, 0x97, 0xaf, 0xa3, 0x94, 0xe3, 0x02, 0x90,
+ 0x22, 0xab, 0xbc, 0x0c, 0x2a, 0x9f, 0x75, 0x2b, 0x8a, 0x9d, 0x5d, 0xb8,
+ 0xa3, 0x86, 0xcd, 0x58,
+};
+static const unsigned char kat1048_addin1[] = {
+ 0x97, 0x55, 0x25, 0xaa, 0x37, 0xa3, 0xcc, 0x6a, 0xe7, 0xcc, 0xad, 0x13,
+ 0xf2, 0x40, 0xbf, 0x4f, 0x65, 0xc1, 0x0e, 0x2e, 0x8a, 0xda, 0x05, 0x9a,
+ 0xf9, 0xb9, 0x16, 0x7e, 0x08, 0x94, 0xca, 0xbb, 0x62, 0xe3, 0xa6, 0xb5,
+ 0x60, 0xf4, 0xc7, 0x95,
+};
+static const unsigned char kat1048_retbits[] = {
+ 0xf9, 0x31, 0x82, 0x44, 0x79, 0xce, 0x47, 0xd2, 0x1f, 0x07, 0x36, 0x72,
+ 0xfe, 0x81, 0xa3, 0x7a, 0x17, 0xef, 0xed, 0xae, 0x5e, 0x87, 0x25, 0x5c,
+ 0x17, 0xd9, 0x79, 0x6f, 0xc7, 0xcc, 0x78, 0x92, 0x34, 0xf5, 0x2b, 0x3a,
+ 0x91, 0x64, 0x3a, 0xc7, 0xf3, 0x37, 0x82, 0x8a, 0x77, 0x6a, 0x24, 0x2e,
+ 0x1d, 0xed, 0xf0, 0x1d, 0x99, 0xda, 0x9c, 0x6f, 0xa6, 0x00, 0x93, 0xcb,
+ 0xed, 0x5f, 0x7c, 0x61,
+};
+static const struct drbg_kat_no_reseed kat1048_t = {
+ 12, kat1048_entropyin, kat1048_nonce, kat1048_persstr,
+ kat1048_addin0, kat1048_addin1, kat1048_retbits
+};
+static const struct drbg_kat kat1048 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1048_t
+};
+
+static const unsigned char kat1049_entropyin[] = {
+ 0x7a, 0xb3, 0x9c, 0xaf, 0x3a, 0x92, 0x73, 0xf4, 0x29, 0x7d, 0x93, 0xae,
+ 0xbd, 0x0a, 0xe6, 0x84, 0x00, 0x4e, 0x66, 0x7d, 0x21, 0xce, 0x9f, 0x63,
+ 0xf1, 0x49, 0x0b, 0x49, 0x1f, 0x60, 0xbb, 0x47, 0x8d, 0x71, 0x73, 0x22,
+ 0x1d, 0xf5, 0x5b, 0x13,
+};
+static const unsigned char kat1049_nonce[] = {0};
+static const unsigned char kat1049_persstr[] = {0};
+static const unsigned char kat1049_addin0[] = {
+ 0x5a, 0xd5, 0x4c, 0x7c, 0xae, 0x0c, 0x80, 0x55, 0xed, 0x85, 0x0c, 0x5b,
+ 0x0d, 0xa2, 0xd5, 0xd6, 0xdc, 0x89, 0x9f, 0x10, 0xe9, 0xa7, 0xa3, 0x00,
+ 0x88, 0xe1, 0x2a, 0x55, 0x38, 0x6e, 0x96, 0x45, 0x4a, 0xa2, 0x72, 0xc1,
+ 0x27, 0x71, 0x9f, 0xf5,
+};
+static const unsigned char kat1049_addin1[] = {
+ 0x9e, 0x79, 0xe2, 0x90, 0x7c, 0x52, 0x40, 0xba, 0xb4, 0x97, 0x00, 0xdc,
+ 0xe8, 0x21, 0xc4, 0x2d, 0x01, 0x89, 0xe0, 0xc6, 0xaa, 0xa2, 0x0c, 0x65,
+ 0x6e, 0x83, 0x72, 0x96, 0x51, 0xcc, 0xb4, 0x99, 0x19, 0xa1, 0xcb, 0x0d,
+ 0x4d, 0x9b, 0xbb, 0xbb,
+};
+static const unsigned char kat1049_retbits[] = {
+ 0xab, 0x40, 0x74, 0x01, 0x50, 0xb0, 0xf8, 0xd3, 0xe3, 0xfb, 0xf3, 0xb5,
+ 0x58, 0x45, 0xa7, 0x7e, 0x8f, 0x79, 0x6b, 0xff, 0xf1, 0x88, 0x42, 0xdc,
+ 0x7c, 0x71, 0x9d, 0x45, 0xaf, 0x3c, 0x55, 0xc2, 0xa4, 0xfd, 0x2a, 0xfc,
+ 0x92, 0x3d, 0xc7, 0x9e, 0x99, 0x89, 0x9c, 0x34, 0xb6, 0xb1, 0x25, 0xd3,
+ 0xff, 0x7e, 0x5e, 0x78, 0x9f, 0xda, 0xb7, 0x57, 0x74, 0x40, 0xeb, 0x2c,
+ 0x49, 0xe7, 0x55, 0x5f,
+};
+static const struct drbg_kat_no_reseed kat1049_t = {
+ 13, kat1049_entropyin, kat1049_nonce, kat1049_persstr,
+ kat1049_addin0, kat1049_addin1, kat1049_retbits
+};
+static const struct drbg_kat kat1049 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1049_t
+};
+
+static const unsigned char kat1050_entropyin[] = {
+ 0x77, 0x34, 0x44, 0xf5, 0x4d, 0xc1, 0x7a, 0x15, 0x4b, 0xd3, 0x1b, 0x69,
+ 0x45, 0x0a, 0x13, 0x97, 0xfe, 0x16, 0x8f, 0x62, 0x8c, 0x80, 0x13, 0xce,
+ 0x3a, 0x97, 0xa8, 0x77, 0xd4, 0x83, 0xc8, 0xc9, 0x79, 0x73, 0x62, 0x11,
+ 0x49, 0x89, 0x13, 0x1b,
+};
+static const unsigned char kat1050_nonce[] = {0};
+static const unsigned char kat1050_persstr[] = {0};
+static const unsigned char kat1050_addin0[] = {
+ 0x61, 0x2b, 0x0f, 0xa8, 0x6e, 0x20, 0xfc, 0xfa, 0xaf, 0xb1, 0x44, 0x24,
+ 0xd1, 0xea, 0x30, 0x92, 0xc9, 0xbe, 0x13, 0x1e, 0xfa, 0xdd, 0xff, 0x1b,
+ 0xd9, 0xbf, 0x0c, 0x9f, 0x53, 0xcf, 0x03, 0x8b, 0xf4, 0x74, 0x4b, 0x98,
+ 0x0a, 0x73, 0xc9, 0x82,
+};
+static const unsigned char kat1050_addin1[] = {
+ 0xaf, 0xc2, 0x44, 0xf8, 0xc9, 0x3d, 0xd4, 0x57, 0x8b, 0xd1, 0x93, 0x22,
+ 0x6d, 0x7e, 0xd3, 0x21, 0xf9, 0x6d, 0xfe, 0xaf, 0xe8, 0xb4, 0x91, 0x68,
+ 0x4e, 0x53, 0xa0, 0xfa, 0x7d, 0x5c, 0xfb, 0x95, 0xdc, 0x3c, 0xb7, 0x73,
+ 0x9d, 0xf8, 0x02, 0x79,
+};
+static const unsigned char kat1050_retbits[] = {
+ 0x64, 0x80, 0x6f, 0xeb, 0x8e, 0x21, 0x2b, 0x2b, 0x5d, 0xef, 0x33, 0x75,
+ 0xd8, 0x30, 0x75, 0xa0, 0xcc, 0xce, 0xcf, 0x2a, 0x8f, 0x0f, 0xd3, 0x8a,
+ 0x8f, 0xf4, 0x70, 0x0a, 0x31, 0x52, 0xd2, 0x04, 0x4b, 0x65, 0xe5, 0x55,
+ 0xf5, 0xa6, 0x17, 0x1b, 0x10, 0xd7, 0x2b, 0x6b, 0x61, 0x39, 0xec, 0xd2,
+ 0x93, 0x09, 0xdd, 0x09, 0xe1, 0x32, 0xae, 0x88, 0xfa, 0x9a, 0x6a, 0xdb,
+ 0x50, 0x0a, 0x03, 0xdb,
+};
+static const struct drbg_kat_no_reseed kat1050_t = {
+ 14, kat1050_entropyin, kat1050_nonce, kat1050_persstr,
+ kat1050_addin0, kat1050_addin1, kat1050_retbits
+};
+static const struct drbg_kat kat1050 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1050_t
+};
+
+static const unsigned char kat1051_entropyin[] = {
+ 0xbe, 0x69, 0x0e, 0x78, 0x91, 0xa5, 0x04, 0xbc, 0xe0, 0x31, 0x6d, 0x6f,
+ 0x82, 0x12, 0x5f, 0xc9, 0x24, 0x2e, 0x71, 0xf7, 0xdb, 0xb7, 0x77, 0x4f,
+ 0x46, 0x5b, 0x03, 0x81, 0xa3, 0x19, 0xb6, 0xdc, 0x96, 0x5c, 0xdd, 0xb8,
+ 0xb9, 0x29, 0xf7, 0x3e,
+};
+static const unsigned char kat1051_nonce[] = {0};
+static const unsigned char kat1051_persstr[] = {
+ 0x3d, 0xd8, 0x50, 0xef, 0xe8, 0x90, 0xdf, 0x5a, 0x26, 0xec, 0x51, 0x05,
+ 0x38, 0xf6, 0x37, 0x65, 0x21, 0x27, 0x4b, 0x05, 0xe7, 0xbc, 0x31, 0xa3,
+ 0xad, 0x23, 0xcd, 0x00, 0x0d, 0x3f, 0x76, 0x0b, 0x16, 0x42, 0x4c, 0xd2,
+ 0x57, 0xb9, 0x6a, 0x91,
+};
+static const unsigned char kat1051_addin0[] = {0};
+static const unsigned char kat1051_addin1[] = {0};
+static const unsigned char kat1051_retbits[] = {
+ 0x4c, 0xce, 0x78, 0xb1, 0x37, 0xeb, 0xad, 0xde, 0x86, 0x42, 0xed, 0x27,
+ 0x12, 0xfb, 0x6a, 0x80, 0xb6, 0x34, 0x48, 0x5a, 0x6c, 0x1d, 0xc4, 0xc9,
+ 0x3e, 0xf3, 0x0d, 0x1a, 0x06, 0xf4, 0x01, 0xa0, 0xf8, 0x39, 0x61, 0x5d,
+ 0xd7, 0x55, 0xef, 0xce, 0x00, 0xba, 0x33, 0x3b, 0xe0, 0xf8, 0x02, 0xe6,
+ 0x26, 0xbc, 0x8f, 0x1f, 0xc9, 0x64, 0x9c, 0xbc, 0x16, 0x8f, 0xe8, 0x66,
+ 0xd4, 0xd1, 0x42, 0x29,
+};
+static const struct drbg_kat_no_reseed kat1051_t = {
+ 0, kat1051_entropyin, kat1051_nonce, kat1051_persstr,
+ kat1051_addin0, kat1051_addin1, kat1051_retbits
+};
+static const struct drbg_kat kat1051 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1051_t
+};
+
+static const unsigned char kat1052_entropyin[] = {
+ 0x3b, 0x95, 0x9b, 0xaa, 0xc2, 0x0b, 0x21, 0x73, 0x92, 0xbc, 0xcc, 0xb2,
+ 0x7d, 0xc5, 0xcd, 0xa5, 0xc7, 0x59, 0x26, 0xb5, 0x7d, 0xd0, 0xda, 0x25,
+ 0xc2, 0x07, 0xa0, 0xcf, 0x30, 0x8c, 0x38, 0x51, 0x62, 0xba, 0x7b, 0x5e,
+ 0x87, 0xbd, 0xba, 0xf2,
+};
+static const unsigned char kat1052_nonce[] = {0};
+static const unsigned char kat1052_persstr[] = {
+ 0x8a, 0x9a, 0x56, 0x49, 0xf9, 0x2c, 0x0f, 0xe1, 0x92, 0xd4, 0xb6, 0x44,
+ 0x8d, 0x06, 0x6a, 0x00, 0x63, 0x72, 0xe2, 0x4c, 0xdf, 0x1d, 0xe8, 0x42,
+ 0x77, 0xd7, 0xb3, 0xf1, 0x69, 0x3c, 0x3f, 0x8f, 0x70, 0xd1, 0x08, 0x8d,
+ 0x17, 0x22, 0x6f, 0x44,
+};
+static const unsigned char kat1052_addin0[] = {0};
+static const unsigned char kat1052_addin1[] = {0};
+static const unsigned char kat1052_retbits[] = {
+ 0x86, 0xc5, 0x17, 0xd9, 0xe9, 0x2e, 0x64, 0x5a, 0xa2, 0x18, 0x7f, 0xbb,
+ 0x34, 0xc6, 0x74, 0xdc, 0xb7, 0x9a, 0x43, 0xad, 0x25, 0x70, 0xf9, 0xe9,
+ 0x45, 0xd9, 0x6e, 0xe7, 0x6d, 0x83, 0xfd, 0x36, 0xb3, 0x5c, 0x46, 0x0f,
+ 0x54, 0x4a, 0x8e, 0x3f, 0x00, 0x15, 0x0d, 0x12, 0x9c, 0xd5, 0x02, 0xe4,
+ 0xd3, 0xee, 0x3a, 0x77, 0x2a, 0x1a, 0x3a, 0x7b, 0xc5, 0x9d, 0x0a, 0x52,
+ 0x1b, 0xf8, 0xa0, 0xb7,
+};
+static const struct drbg_kat_no_reseed kat1052_t = {
+ 1, kat1052_entropyin, kat1052_nonce, kat1052_persstr,
+ kat1052_addin0, kat1052_addin1, kat1052_retbits
+};
+static const struct drbg_kat kat1052 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1052_t
+};
+
+static const unsigned char kat1053_entropyin[] = {
+ 0xa0, 0xca, 0xa2, 0xfe, 0xf5, 0x56, 0x79, 0x91, 0x7e, 0x5a, 0x27, 0x24,
+ 0x5e, 0xeb, 0x54, 0x5a, 0x7a, 0xe9, 0x8f, 0x3d, 0x2b, 0x45, 0x4d, 0xae,
+ 0xb7, 0x00, 0xf9, 0xf3, 0x05, 0x6c, 0x8b, 0x2f, 0x4a, 0x5b, 0xce, 0x17,
+ 0x4e, 0x60, 0xe4, 0x1e,
+};
+static const unsigned char kat1053_nonce[] = {0};
+static const unsigned char kat1053_persstr[] = {
+ 0x26, 0x03, 0x31, 0x3a, 0xce, 0x04, 0xdc, 0x1c, 0x8e, 0x7d, 0x90, 0xe9,
+ 0x91, 0x1d, 0xb1, 0x32, 0x65, 0x60, 0xb3, 0x55, 0x6a, 0xe8, 0x1f, 0x6b,
+ 0xf7, 0x9a, 0x5a, 0x76, 0x1b, 0x2a, 0xf2, 0x70, 0x35, 0x87, 0x5f, 0xbc,
+ 0x9a, 0xe6, 0x02, 0xb4,
+};
+static const unsigned char kat1053_addin0[] = {0};
+static const unsigned char kat1053_addin1[] = {0};
+static const unsigned char kat1053_retbits[] = {
+ 0x34, 0x6e, 0xe8, 0x6c, 0xc8, 0xea, 0x99, 0x04, 0xca, 0x2c, 0x1c, 0x2c,
+ 0x61, 0xf1, 0xcd, 0xf7, 0x34, 0xd6, 0x9c, 0xff, 0xb1, 0x46, 0x07, 0x3a,
+ 0xb8, 0xb5, 0xe6, 0x68, 0xad, 0x58, 0x9d, 0x63, 0xb3, 0x22, 0xb8, 0x10,
+ 0xad, 0x4c, 0x87, 0xef, 0x66, 0xb9, 0x17, 0x75, 0x33, 0xd8, 0x14, 0xa9,
+ 0xd4, 0xf6, 0x5e, 0x1f, 0x1d, 0x5b, 0x14, 0x30, 0x77, 0x31, 0xcd, 0xa2,
+ 0xc5, 0x1d, 0x90, 0x14,
+};
+static const struct drbg_kat_no_reseed kat1053_t = {
+ 2, kat1053_entropyin, kat1053_nonce, kat1053_persstr,
+ kat1053_addin0, kat1053_addin1, kat1053_retbits
+};
+static const struct drbg_kat kat1053 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1053_t
+};
+
+static const unsigned char kat1054_entropyin[] = {
+ 0xeb, 0xd5, 0x35, 0x90, 0x4c, 0x3d, 0xc5, 0x0d, 0x29, 0x4a, 0x7d, 0x46,
+ 0x22, 0xd5, 0xfc, 0x8d, 0x11, 0x45, 0x3e, 0xaa, 0x47, 0x64, 0x09, 0x0f,
+ 0xc5, 0xb5, 0x32, 0xe7, 0x65, 0xdf, 0x70, 0x2f, 0xe9, 0x40, 0xc7, 0xaf,
+ 0xc6, 0x11, 0x11, 0x59,
+};
+static const unsigned char kat1054_nonce[] = {0};
+static const unsigned char kat1054_persstr[] = {
+ 0x19, 0x8b, 0x39, 0x55, 0x63, 0x31, 0x38, 0x76, 0x65, 0x9e, 0xe6, 0xf2,
+ 0x84, 0x3f, 0x75, 0x0c, 0x4a, 0x46, 0x25, 0xe7, 0x70, 0x48, 0x14, 0x78,
+ 0xa3, 0x00, 0xb7, 0x0c, 0xe7, 0x72, 0x48, 0x7a, 0x4f, 0xd3, 0xf1, 0x71,
+ 0xd0, 0xc6, 0xc5, 0x3e,
+};
+static const unsigned char kat1054_addin0[] = {0};
+static const unsigned char kat1054_addin1[] = {0};
+static const unsigned char kat1054_retbits[] = {
+ 0x2e, 0x52, 0xdf, 0xdf, 0x1e, 0xd5, 0x53, 0x2a, 0x69, 0x8a, 0xc1, 0x0a,
+ 0x73, 0x4a, 0x65, 0x2c, 0x8c, 0x73, 0x5c, 0x70, 0x00, 0x27, 0x63, 0x90,
+ 0x70, 0xb0, 0x0a, 0xfd, 0x0b, 0x1c, 0x1c, 0xa6, 0x59, 0x50, 0x57, 0x39,
+ 0x97, 0x38, 0x72, 0x2f, 0x15, 0xf4, 0x23, 0x4a, 0x79, 0x42, 0xb8, 0x57,
+ 0x11, 0x88, 0x91, 0xe9, 0xc5, 0x00, 0x0e, 0xcc, 0xda, 0xed, 0x68, 0x98,
+ 0x5e, 0x5a, 0x6b, 0x5a,
+};
+static const struct drbg_kat_no_reseed kat1054_t = {
+ 3, kat1054_entropyin, kat1054_nonce, kat1054_persstr,
+ kat1054_addin0, kat1054_addin1, kat1054_retbits
+};
+static const struct drbg_kat kat1054 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1054_t
+};
+
+static const unsigned char kat1055_entropyin[] = {
+ 0x6a, 0xc0, 0xc9, 0x94, 0xb6, 0x3c, 0x26, 0xec, 0xc2, 0x03, 0x5a, 0xb5,
+ 0xdc, 0x6a, 0xb5, 0x6b, 0xc3, 0xbb, 0xd8, 0x11, 0xb2, 0xb9, 0x5c, 0x49,
+ 0x44, 0x8f, 0x11, 0xfe, 0x5b, 0xb4, 0x57, 0x88, 0x28, 0x40, 0x16, 0x46,
+ 0x01, 0xe0, 0x89, 0xc6,
+};
+static const unsigned char kat1055_nonce[] = {0};
+static const unsigned char kat1055_persstr[] = {
+ 0xe9, 0xaa, 0x6c, 0x05, 0x64, 0xf4, 0xf8, 0x70, 0x42, 0x16, 0xd9, 0x4e,
+ 0x34, 0x2c, 0xb7, 0xe1, 0xf7, 0xbd, 0xd2, 0x2f, 0x5d, 0xa3, 0x80, 0x54,
+ 0x4b, 0xee, 0xe7, 0x79, 0x24, 0xc7, 0xef, 0xc1, 0xea, 0xbf, 0x62, 0x89,
+ 0xc4, 0x05, 0xba, 0x42,
+};
+static const unsigned char kat1055_addin0[] = {0};
+static const unsigned char kat1055_addin1[] = {0};
+static const unsigned char kat1055_retbits[] = {
+ 0x42, 0xa9, 0x79, 0x19, 0x50, 0xf9, 0xce, 0xb7, 0xa5, 0x51, 0xed, 0xf3,
+ 0x23, 0x36, 0x46, 0x7f, 0x12, 0x2b, 0x09, 0xab, 0x53, 0xaf, 0xfb, 0x1f,
+ 0xc2, 0x4c, 0xc1, 0x4c, 0x8c, 0x22, 0xf4, 0x75, 0xab, 0xbd, 0xf2, 0xab,
+ 0x68, 0xcf, 0x06, 0xa4, 0xed, 0xd2, 0xb8, 0xd9, 0xac, 0x7c, 0x74, 0x44,
+ 0x60, 0xeb, 0x54, 0x80, 0xc1, 0x1f, 0x22, 0x01, 0x9c, 0x3f, 0xaf, 0x36,
+ 0x8a, 0xba, 0x20, 0xe9,
+};
+static const struct drbg_kat_no_reseed kat1055_t = {
+ 4, kat1055_entropyin, kat1055_nonce, kat1055_persstr,
+ kat1055_addin0, kat1055_addin1, kat1055_retbits
+};
+static const struct drbg_kat kat1055 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1055_t
+};
+
+static const unsigned char kat1056_entropyin[] = {
+ 0xf0, 0x2e, 0xe9, 0x85, 0xb4, 0x33, 0x09, 0x86, 0x62, 0xf2, 0x52, 0xb7,
+ 0x99, 0x2d, 0x6f, 0xc9, 0x80, 0xdb, 0x58, 0x4d, 0xad, 0xc3, 0x85, 0xeb,
+ 0x05, 0xe7, 0x59, 0x42, 0xa4, 0xce, 0x2e, 0x2a, 0x28, 0x33, 0xb9, 0xe7,
+ 0xa3, 0xa4, 0x46, 0x76,
+};
+static const unsigned char kat1056_nonce[] = {0};
+static const unsigned char kat1056_persstr[] = {
+ 0x36, 0x73, 0x69, 0x02, 0xb0, 0x7a, 0xb9, 0x3f, 0xbf, 0x5d, 0x66, 0x3b,
+ 0xa2, 0xdc, 0x86, 0xa9, 0x22, 0x9e, 0xc8, 0x85, 0x08, 0x61, 0x69, 0x7c,
+ 0xdf, 0x6e, 0xa9, 0xbf, 0xd8, 0x1c, 0x4d, 0x00, 0x87, 0x94, 0xd3, 0xf2,
+ 0x15, 0x7f, 0xc1, 0x9d,
+};
+static const unsigned char kat1056_addin0[] = {0};
+static const unsigned char kat1056_addin1[] = {0};
+static const unsigned char kat1056_retbits[] = {
+ 0x0c, 0xe7, 0x63, 0x98, 0xb3, 0x72, 0x37, 0x18, 0x84, 0x54, 0x10, 0x9a,
+ 0x2f, 0xad, 0xe5, 0xd4, 0x72, 0x8b, 0x19, 0x35, 0x72, 0x0e, 0xf3, 0x4f,
+ 0x92, 0xbd, 0xab, 0x4a, 0x7d, 0xc7, 0x69, 0xca, 0xd7, 0x49, 0x34, 0x47,
+ 0xc7, 0x0c, 0x9b, 0x17, 0xac, 0x68, 0x18, 0x84, 0x38, 0x09, 0x3a, 0x8a,
+ 0x61, 0x76, 0xfc, 0x4a, 0x49, 0xe7, 0x3d, 0x6d, 0x13, 0x17, 0x15, 0x7f,
+ 0x14, 0x8d, 0x5b, 0xd5,
+};
+static const struct drbg_kat_no_reseed kat1056_t = {
+ 5, kat1056_entropyin, kat1056_nonce, kat1056_persstr,
+ kat1056_addin0, kat1056_addin1, kat1056_retbits
+};
+static const struct drbg_kat kat1056 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1056_t
+};
+
+static const unsigned char kat1057_entropyin[] = {
+ 0xe6, 0x8a, 0x85, 0xbf, 0xbd, 0x44, 0x3b, 0x0f, 0x89, 0x51, 0x38, 0x59,
+ 0xe4, 0x4e, 0xc8, 0xd6, 0x15, 0x0e, 0xc7, 0x60, 0xa7, 0x78, 0xf3, 0x2b,
+ 0xd6, 0x0f, 0xeb, 0xa2, 0xa1, 0xd2, 0x5c, 0x8e, 0x62, 0x01, 0xcf, 0x62,
+ 0xdb, 0xf4, 0xfa, 0xe8,
+};
+static const unsigned char kat1057_nonce[] = {0};
+static const unsigned char kat1057_persstr[] = {
+ 0x9f, 0xa1, 0xb2, 0xf6, 0xbc, 0x59, 0xf8, 0x07, 0x63, 0xa3, 0x2d, 0x69,
+ 0x92, 0xa1, 0xb4, 0xf6, 0xa2, 0x38, 0xb3, 0x91, 0xdb, 0x93, 0x45, 0x02,
+ 0xac, 0x83, 0x77, 0x69, 0x59, 0xac, 0x95, 0x2c, 0x51, 0xd1, 0xb3, 0x86,
+ 0x90, 0x28, 0x30, 0x54,
+};
+static const unsigned char kat1057_addin0[] = {0};
+static const unsigned char kat1057_addin1[] = {0};
+static const unsigned char kat1057_retbits[] = {
+ 0xbc, 0x4d, 0xe4, 0xe5, 0x44, 0x2a, 0xc6, 0xa3, 0x9b, 0x5a, 0x4f, 0x14,
+ 0x1c, 0x5c, 0xb2, 0xe5, 0xa6, 0xe5, 0xd8, 0x6c, 0xa6, 0x64, 0x00, 0xcb,
+ 0x81, 0x44, 0x2c, 0xc1, 0x2b, 0xcc, 0x58, 0x60, 0x18, 0xde, 0x89, 0xd9,
+ 0x5b, 0x40, 0x4d, 0xba, 0xea, 0x1d, 0x82, 0x8c, 0xf9, 0xa1, 0xa2, 0x8e,
+ 0xb4, 0xf4, 0x3e, 0xfc, 0x8e, 0x93, 0x80, 0x33, 0xac, 0xa4, 0x46, 0x78,
+ 0xff, 0x17, 0xdc, 0xe6,
+};
+static const struct drbg_kat_no_reseed kat1057_t = {
+ 6, kat1057_entropyin, kat1057_nonce, kat1057_persstr,
+ kat1057_addin0, kat1057_addin1, kat1057_retbits
+};
+static const struct drbg_kat kat1057 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1057_t
+};
+
+static const unsigned char kat1058_entropyin[] = {
+ 0x69, 0xf9, 0x80, 0x36, 0x76, 0xd4, 0x47, 0xeb, 0xc6, 0xcb, 0xaa, 0x52,
+ 0x4f, 0x1a, 0xc1, 0x37, 0x55, 0x38, 0xa1, 0xe7, 0x7b, 0x4c, 0xc2, 0x4f,
+ 0xae, 0x2e, 0x51, 0x5f, 0x73, 0xc2, 0xde, 0x76, 0x70, 0x28, 0x86, 0xea,
+ 0xcd, 0xba, 0xde, 0xce,
+};
+static const unsigned char kat1058_nonce[] = {0};
+static const unsigned char kat1058_persstr[] = {
+ 0x64, 0xa9, 0xfb, 0x09, 0x22, 0xef, 0x02, 0xd4, 0xa1, 0x1e, 0xb3, 0x23,
+ 0x8a, 0xbd, 0x58, 0x5d, 0x88, 0xcf, 0xe4, 0xdd, 0xc5, 0x10, 0xc4, 0x0f,
+ 0xd3, 0x1b, 0xe4, 0xe7, 0xd4, 0xa2, 0x82, 0x4c, 0x79, 0x5b, 0x91, 0x8d,
+ 0x9a, 0x3e, 0xb6, 0x62,
+};
+static const unsigned char kat1058_addin0[] = {0};
+static const unsigned char kat1058_addin1[] = {0};
+static const unsigned char kat1058_retbits[] = {
+ 0xc6, 0x41, 0x6b, 0x85, 0xaa, 0xd6, 0xa1, 0x12, 0x7c, 0x94, 0xce, 0x45,
+ 0x8f, 0x35, 0x00, 0xa4, 0x6f, 0x3b, 0x8f, 0xd1, 0xe6, 0x07, 0xc7, 0xf4,
+ 0xdc, 0xc9, 0x66, 0x29, 0xb6, 0x58, 0x2f, 0x2d, 0x78, 0xa1, 0xd1, 0x0e,
+ 0xc7, 0x3f, 0xbe, 0x23, 0xb8, 0x0b, 0x3f, 0xd8, 0x2f, 0x60, 0x4c, 0xf6,
+ 0x92, 0xff, 0x42, 0x30, 0xbf, 0x43, 0xcd, 0x7c, 0x22, 0x14, 0xfb, 0x56,
+ 0x21, 0x4a, 0x63, 0xdd,
+};
+static const struct drbg_kat_no_reseed kat1058_t = {
+ 7, kat1058_entropyin, kat1058_nonce, kat1058_persstr,
+ kat1058_addin0, kat1058_addin1, kat1058_retbits
+};
+static const struct drbg_kat kat1058 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1058_t
+};
+
+static const unsigned char kat1059_entropyin[] = {
+ 0xa8, 0x06, 0x6e, 0xc1, 0xa8, 0x96, 0xd3, 0xc2, 0x60, 0x7e, 0x93, 0x6a,
+ 0x3a, 0x0d, 0x0f, 0x8a, 0x56, 0xc5, 0x26, 0xaf, 0x33, 0x29, 0x0f, 0x52,
+ 0xf8, 0x07, 0x9a, 0x7e, 0xa2, 0x40, 0x8e, 0x89, 0xaf, 0x6d, 0xdc, 0x7d,
+ 0x34, 0xc0, 0x27, 0x54,
+};
+static const unsigned char kat1059_nonce[] = {0};
+static const unsigned char kat1059_persstr[] = {
+ 0x31, 0x51, 0x74, 0xa8, 0x6b, 0xb5, 0x03, 0x86, 0x80, 0xaf, 0xa6, 0xa1,
+ 0x20, 0x2b, 0xa3, 0x74, 0x7d, 0x33, 0x63, 0xf7, 0xd0, 0x0d, 0xfb, 0xc6,
+ 0xd1, 0xe8, 0x6b, 0x6d, 0xfc, 0xd4, 0xd5, 0xc3, 0xa6, 0x7e, 0xbd, 0xeb,
+ 0x52, 0x66, 0xa2, 0x33,
+};
+static const unsigned char kat1059_addin0[] = {0};
+static const unsigned char kat1059_addin1[] = {0};
+static const unsigned char kat1059_retbits[] = {
+ 0x56, 0x23, 0xec, 0x4e, 0xfd, 0x2a, 0xe7, 0x65, 0xf5, 0x4c, 0x80, 0x0c,
+ 0x1e, 0xfb, 0xe0, 0xc8, 0x66, 0xe2, 0x04, 0x78, 0xec, 0x37, 0x8e, 0x5f,
+ 0xe9, 0x61, 0xaf, 0x6b, 0x1b, 0x6f, 0x91, 0xdd, 0x15, 0xd2, 0xf9, 0x4d,
+ 0xb8, 0x7e, 0x92, 0xbd, 0xb5, 0x78, 0x18, 0x8e, 0x0f, 0x77, 0x1d, 0xad,
+ 0x9e, 0xae, 0x47, 0xa2, 0xa1, 0xe7, 0xeb, 0xe1, 0xf4, 0xb8, 0xa5, 0x15,
+ 0x3d, 0x0d, 0x83, 0x52,
+};
+static const struct drbg_kat_no_reseed kat1059_t = {
+ 8, kat1059_entropyin, kat1059_nonce, kat1059_persstr,
+ kat1059_addin0, kat1059_addin1, kat1059_retbits
+};
+static const struct drbg_kat kat1059 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1059_t
+};
+
+static const unsigned char kat1060_entropyin[] = {
+ 0x26, 0x69, 0x61, 0xe3, 0x4f, 0x05, 0x5a, 0xff, 0x69, 0xfe, 0xfb, 0x99,
+ 0x35, 0x67, 0x35, 0x73, 0x8f, 0x8d, 0xd9, 0xd0, 0x92, 0xba, 0x55, 0x89,
+ 0x13, 0xa6, 0x4a, 0xea, 0x72, 0x57, 0xa5, 0x0a, 0xa1, 0x51, 0x8c, 0xa5,
+ 0x07, 0xe6, 0xdc, 0xf0,
+};
+static const unsigned char kat1060_nonce[] = {0};
+static const unsigned char kat1060_persstr[] = {
+ 0x55, 0x1b, 0x32, 0x9c, 0xc5, 0x72, 0xec, 0x75, 0x6e, 0x0c, 0xb4, 0xa7,
+ 0x44, 0x48, 0x8c, 0x3d, 0xcb, 0x81, 0x33, 0x84, 0x7c, 0x6a, 0xa5, 0x74,
+ 0xd2, 0x38, 0xf2, 0x5f, 0xf9, 0x5d, 0xe8, 0x37, 0x96, 0xa8, 0x00, 0x5c,
+ 0xb7, 0x8e, 0xe2, 0xc2,
+};
+static const unsigned char kat1060_addin0[] = {0};
+static const unsigned char kat1060_addin1[] = {0};
+static const unsigned char kat1060_retbits[] = {
+ 0xf8, 0x04, 0xf0, 0xc1, 0xaa, 0x78, 0x69, 0xc6, 0x1f, 0x69, 0x20, 0x8b,
+ 0xfc, 0x04, 0x9c, 0x03, 0xbc, 0xe7, 0xc1, 0x49, 0xc2, 0x86, 0x7f, 0xb9,
+ 0x66, 0x27, 0x86, 0x0b, 0x70, 0x1c, 0xf1, 0x13, 0xf3, 0xcb, 0x80, 0x19,
+ 0xf3, 0x63, 0x6e, 0x78, 0xf6, 0x04, 0x56, 0x82, 0x7b, 0xab, 0x49, 0x33,
+ 0x2b, 0x89, 0x4d, 0xd1, 0x2b, 0x62, 0x53, 0xed, 0x74, 0x16, 0x3d, 0xb5,
+ 0xb2, 0xbd, 0x55, 0x20,
+};
+static const struct drbg_kat_no_reseed kat1060_t = {
+ 9, kat1060_entropyin, kat1060_nonce, kat1060_persstr,
+ kat1060_addin0, kat1060_addin1, kat1060_retbits
+};
+static const struct drbg_kat kat1060 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1060_t
+};
+
+static const unsigned char kat1061_entropyin[] = {
+ 0xdb, 0xbd, 0x85, 0x58, 0x5b, 0x2a, 0x39, 0xe9, 0xc9, 0xe9, 0xaf, 0x9c,
+ 0x5f, 0xeb, 0x6c, 0x96, 0x48, 0x33, 0xed, 0x2b, 0x93, 0x97, 0x30, 0xa9,
+ 0xcd, 0x5b, 0x04, 0x35, 0xe5, 0xb2, 0x28, 0xfc, 0x65, 0x50, 0xef, 0x4c,
+ 0x6e, 0xf1, 0x29, 0x50,
+};
+static const unsigned char kat1061_nonce[] = {0};
+static const unsigned char kat1061_persstr[] = {
+ 0x0a, 0x5e, 0x98, 0x76, 0x46, 0xac, 0x86, 0x7a, 0xa1, 0x20, 0x0d, 0x49,
+ 0x2c, 0x32, 0x5c, 0x1d, 0xdd, 0x53, 0xb2, 0x0c, 0x4d, 0x05, 0x94, 0x49,
+ 0x39, 0x79, 0xf8, 0xd4, 0x87, 0xac, 0x2d, 0x7a, 0x1a, 0x8a, 0x1d, 0x7a,
+ 0x90, 0xc2, 0x95, 0xcc,
+};
+static const unsigned char kat1061_addin0[] = {0};
+static const unsigned char kat1061_addin1[] = {0};
+static const unsigned char kat1061_retbits[] = {
+ 0x9d, 0x38, 0x1a, 0x77, 0xc7, 0x69, 0x1b, 0xad, 0x70, 0xf2, 0x36, 0x93,
+ 0xc7, 0x1e, 0x68, 0xf7, 0x55, 0x89, 0x02, 0x96, 0xf6, 0xca, 0x78, 0x5b,
+ 0x0a, 0xd4, 0xdb, 0x3f, 0x14, 0x86, 0x30, 0x9a, 0xe2, 0x1d, 0xb8, 0xfc,
+ 0x19, 0xab, 0x95, 0x03, 0x66, 0x7d, 0x95, 0x88, 0x86, 0x26, 0x2f, 0x0b,
+ 0xf2, 0xb2, 0xfe, 0xb7, 0x62, 0x7e, 0xde, 0xf0, 0x3a, 0x6c, 0x20, 0xdc,
+ 0x83, 0x70, 0x5e, 0x62,
+};
+static const struct drbg_kat_no_reseed kat1061_t = {
+ 10, kat1061_entropyin, kat1061_nonce, kat1061_persstr,
+ kat1061_addin0, kat1061_addin1, kat1061_retbits
+};
+static const struct drbg_kat kat1061 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1061_t
+};
+
+static const unsigned char kat1062_entropyin[] = {
+ 0x0d, 0x0d, 0x4a, 0xd1, 0xe1, 0xf7, 0xab, 0x02, 0x7a, 0x81, 0x06, 0xeb,
+ 0xa4, 0xde, 0x0e, 0x77, 0xa5, 0xbc, 0xe1, 0xb4, 0x3e, 0xe8, 0x65, 0x66,
+ 0x3e, 0xc2, 0x4a, 0x5b, 0x94, 0xae, 0xf5, 0x8e, 0x85, 0x56, 0xe1, 0x84,
+ 0x11, 0x0a, 0x76, 0xdd,
+};
+static const unsigned char kat1062_nonce[] = {0};
+static const unsigned char kat1062_persstr[] = {
+ 0x67, 0xda, 0x8f, 0xca, 0x5f, 0x5d, 0x29, 0x08, 0xe8, 0xee, 0x15, 0x64,
+ 0x7a, 0x86, 0x10, 0x20, 0xdf, 0xfa, 0xd6, 0xfe, 0xe2, 0x15, 0xd3, 0xd5,
+ 0x28, 0x22, 0xa3, 0xd0, 0xac, 0x3c, 0x59, 0x25, 0x96, 0xa2, 0xad, 0x5d,
+ 0x7a, 0xf7, 0xd7, 0x58,
+};
+static const unsigned char kat1062_addin0[] = {0};
+static const unsigned char kat1062_addin1[] = {0};
+static const unsigned char kat1062_retbits[] = {
+ 0xa1, 0xd5, 0x17, 0x3b, 0x76, 0x81, 0xb1, 0x01, 0x05, 0x85, 0x3f, 0xc5,
+ 0xc9, 0xab, 0x0b, 0x8e, 0x44, 0x8e, 0x9c, 0x1c, 0xd8, 0xed, 0x0d, 0x4b,
+ 0xfb, 0x13, 0x05, 0x73, 0x14, 0x96, 0xde, 0x3c, 0x86, 0x6e, 0x94, 0x69,
+ 0x25, 0xef, 0x6b, 0x75, 0xaf, 0x12, 0xa0, 0xda, 0xb9, 0xd0, 0x1a, 0x38,
+ 0x20, 0xe1, 0x40, 0x46, 0xe4, 0x94, 0xbf, 0x07, 0x59, 0x95, 0xd7, 0x49,
+ 0x02, 0xe2, 0x7b, 0x0d,
+};
+static const struct drbg_kat_no_reseed kat1062_t = {
+ 11, kat1062_entropyin, kat1062_nonce, kat1062_persstr,
+ kat1062_addin0, kat1062_addin1, kat1062_retbits
+};
+static const struct drbg_kat kat1062 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1062_t
+};
+
+static const unsigned char kat1063_entropyin[] = {
+ 0xf7, 0x60, 0xc2, 0xe6, 0xa6, 0x23, 0xe1, 0xaa, 0x65, 0xb2, 0xcb, 0xe0,
+ 0x0c, 0x94, 0xee, 0xd6, 0x13, 0xa9, 0xa4, 0x00, 0x68, 0x40, 0x16, 0x6e,
+ 0xcb, 0x62, 0xce, 0x75, 0xa0, 0x25, 0x1f, 0x1f, 0x08, 0x78, 0x3c, 0xcf,
+ 0x63, 0x36, 0x3c, 0xc4,
+};
+static const unsigned char kat1063_nonce[] = {0};
+static const unsigned char kat1063_persstr[] = {
+ 0xb8, 0xe2, 0xf7, 0x17, 0x95, 0x93, 0xe1, 0xf8, 0x3c, 0x43, 0xac, 0x3d,
+ 0x13, 0x25, 0x21, 0x5a, 0x2c, 0x89, 0x8e, 0x11, 0x93, 0xd9, 0x73, 0x2b,
+ 0xf4, 0x43, 0xae, 0x4f, 0x10, 0x54, 0x0d, 0x67, 0x60, 0xdf, 0x97, 0x2f,
+ 0x0d, 0x27, 0x76, 0xde,
+};
+static const unsigned char kat1063_addin0[] = {0};
+static const unsigned char kat1063_addin1[] = {0};
+static const unsigned char kat1063_retbits[] = {
+ 0xf1, 0x8d, 0x00, 0x2b, 0x00, 0xf8, 0x0a, 0xe1, 0x9c, 0xb9, 0x51, 0xab,
+ 0x42, 0x79, 0xf4, 0x4c, 0x3e, 0xdb, 0xdc, 0xbb, 0xfb, 0xc6, 0x80, 0xa2,
+ 0x2f, 0x44, 0x19, 0xa8, 0x3c, 0x9c, 0x79, 0xa8, 0x99, 0x7b, 0x6d, 0xe6,
+ 0x24, 0x62, 0x3e, 0xd6, 0xc8, 0xae, 0x69, 0x24, 0xae, 0x6b, 0xb0, 0xc5,
+ 0xcd, 0x6e, 0xc5, 0x58, 0xfc, 0xf6, 0x2f, 0x86, 0x99, 0x78, 0x37, 0xde,
+ 0x52, 0x87, 0x90, 0x0e,
+};
+static const struct drbg_kat_no_reseed kat1063_t = {
+ 12, kat1063_entropyin, kat1063_nonce, kat1063_persstr,
+ kat1063_addin0, kat1063_addin1, kat1063_retbits
+};
+static const struct drbg_kat kat1063 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1063_t
+};
+
+static const unsigned char kat1064_entropyin[] = {
+ 0x2c, 0xcd, 0x0d, 0xb7, 0x7c, 0xae, 0xd9, 0x60, 0x7b, 0xab, 0x8d, 0xe9,
+ 0x01, 0xa1, 0xe8, 0x16, 0x83, 0xd3, 0x6d, 0x00, 0xe1, 0xf8, 0x7d, 0x62,
+ 0x74, 0xd2, 0x0d, 0x5c, 0x54, 0xde, 0x3f, 0x84, 0x14, 0xa9, 0x96, 0x5c,
+ 0xde, 0xe9, 0x58, 0x4d,
+};
+static const unsigned char kat1064_nonce[] = {0};
+static const unsigned char kat1064_persstr[] = {
+ 0x6b, 0x5e, 0x48, 0x0c, 0x5b, 0xf7, 0x82, 0xe1, 0x6b, 0x64, 0xbb, 0xa7,
+ 0x63, 0x83, 0xa2, 0xde, 0x7a, 0xb5, 0x16, 0xba, 0x43, 0xe2, 0x23, 0x58,
+ 0xa2, 0xeb, 0xba, 0x96, 0x09, 0x72, 0xbb, 0x74, 0xf0, 0x9c, 0x94, 0xc7,
+ 0xfc, 0x89, 0x3a, 0xa5,
+};
+static const unsigned char kat1064_addin0[] = {0};
+static const unsigned char kat1064_addin1[] = {0};
+static const unsigned char kat1064_retbits[] = {
+ 0x02, 0x75, 0x4b, 0x47, 0x0a, 0x5a, 0xfd, 0x2a, 0x86, 0x00, 0xf8, 0x3c,
+ 0xd7, 0x1f, 0xd0, 0x88, 0x7b, 0xee, 0xe4, 0x99, 0x67, 0xe5, 0x26, 0x8a,
+ 0x73, 0xb6, 0x01, 0xb8, 0x89, 0x7f, 0x8e, 0x4f, 0xd8, 0xa6, 0xa0, 0xdb,
+ 0x3d, 0x5d, 0xdb, 0x62, 0x04, 0xfd, 0xeb, 0x96, 0xcd, 0x18, 0x38, 0x50,
+ 0x13, 0xc6, 0xe5, 0x0c, 0xd8, 0xbe, 0x40, 0x09, 0xb0, 0x06, 0x29, 0xe2,
+ 0x08, 0x69, 0xcb, 0xcc,
+};
+static const struct drbg_kat_no_reseed kat1064_t = {
+ 13, kat1064_entropyin, kat1064_nonce, kat1064_persstr,
+ kat1064_addin0, kat1064_addin1, kat1064_retbits
+};
+static const struct drbg_kat kat1064 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1064_t
+};
+
+static const unsigned char kat1065_entropyin[] = {
+ 0xa5, 0x9c, 0x31, 0xd7, 0x35, 0x4e, 0xec, 0x79, 0x9e, 0xca, 0xba, 0x81,
+ 0x93, 0x46, 0x6a, 0xaa, 0x92, 0x80, 0x25, 0xb1, 0x62, 0xff, 0x44, 0x2a,
+ 0xd2, 0xa4, 0xe0, 0xf9, 0xb6, 0x54, 0x09, 0xf1, 0x05, 0xd7, 0x28, 0xaf,
+ 0x3a, 0xb4, 0xd5, 0xd2,
+};
+static const unsigned char kat1065_nonce[] = {0};
+static const unsigned char kat1065_persstr[] = {
+ 0x7b, 0x56, 0xfc, 0x01, 0x6f, 0x55, 0xfe, 0x0b, 0xa2, 0x1f, 0x9c, 0xc5,
+ 0x3b, 0x96, 0x2e, 0x21, 0x5e, 0x4e, 0xcd, 0x3d, 0xff, 0x48, 0x7a, 0xf6,
+ 0x7b, 0x27, 0x5a, 0x19, 0xcd, 0xe4, 0xaf, 0xa7, 0x47, 0x24, 0xa7, 0x47,
+ 0x35, 0x8f, 0xd1, 0xfb,
+};
+static const unsigned char kat1065_addin0[] = {0};
+static const unsigned char kat1065_addin1[] = {0};
+static const unsigned char kat1065_retbits[] = {
+ 0xaa, 0xcf, 0xaf, 0x03, 0x60, 0xc4, 0x15, 0xde, 0x87, 0xb9, 0x2d, 0x74,
+ 0x38, 0x1b, 0xe9, 0x91, 0xf4, 0xa4, 0x1b, 0xdd, 0x61, 0x17, 0x5b, 0xcc,
+ 0xdd, 0x7c, 0x8d, 0xd1, 0x9c, 0xd3, 0xf7, 0x07, 0x6b, 0x48, 0x5e, 0x95,
+ 0xb1, 0xe9, 0xae, 0x60, 0xff, 0xb9, 0xb7, 0x78, 0xf6, 0x47, 0x0e, 0x5f,
+ 0xe3, 0xa5, 0x40, 0x92, 0xc6, 0xdb, 0x3b, 0x90, 0x9a, 0x4d, 0x9e, 0x5a,
+ 0x8c, 0xb9, 0x6e, 0xf5,
+};
+static const struct drbg_kat_no_reseed kat1065_t = {
+ 14, kat1065_entropyin, kat1065_nonce, kat1065_persstr,
+ kat1065_addin0, kat1065_addin1, kat1065_retbits
+};
+static const struct drbg_kat kat1065 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1065_t
+};
+
+static const unsigned char kat1066_entropyin[] = {
+ 0x00, 0xeb, 0x69, 0x04, 0x4b, 0x11, 0x7a, 0xf9, 0x66, 0xbf, 0x5e, 0x17,
+ 0xdd, 0xaa, 0x19, 0x99, 0x12, 0x07, 0xeb, 0x44, 0xc0, 0xdd, 0xab, 0x7c,
+ 0x2f, 0x9e, 0x2b, 0x7b, 0x99, 0x32, 0x85, 0x13, 0x0f, 0x43, 0x07, 0x31,
+ 0xb9, 0xb6, 0x3c, 0x5d,
+};
+static const unsigned char kat1066_nonce[] = {0};
+static const unsigned char kat1066_persstr[] = {
+ 0x9a, 0x98, 0xfa, 0xfa, 0x90, 0xfd, 0xa5, 0x9e, 0xd1, 0xb5, 0x31, 0x27,
+ 0x30, 0x4b, 0xd1, 0x7b, 0xac, 0x75, 0x44, 0xe0, 0xde, 0x4a, 0x94, 0x75,
+ 0x3c, 0xcf, 0xda, 0x9c, 0x39, 0xbe, 0x98, 0xbc, 0x62, 0x53, 0x41, 0xdb,
+ 0x13, 0xe8, 0x6c, 0xd4,
+};
+static const unsigned char kat1066_addin0[] = {
+ 0x8c, 0x2b, 0xa4, 0x0d, 0x88, 0xe9, 0xe3, 0xb5, 0x0b, 0x0d, 0x32, 0x43,
+ 0xfa, 0x38, 0xc2, 0xc5, 0x64, 0x18, 0x63, 0xaf, 0x44, 0x6f, 0x0a, 0x3b,
+ 0x94, 0x37, 0x31, 0x9c, 0xdc, 0xcf, 0x16, 0x5c, 0x36, 0x3c, 0x04, 0xcc,
+ 0x27, 0xbe, 0x27, 0x6e,
+};
+static const unsigned char kat1066_addin1[] = {
+ 0xac, 0x73, 0x35, 0xb5, 0x94, 0x20, 0x85, 0xf0, 0x51, 0x95, 0xd0, 0x16,
+ 0xff, 0x5c, 0xd5, 0x45, 0xe8, 0x08, 0xb7, 0xe6, 0xf9, 0xfa, 0xed, 0xbe,
+ 0x8f, 0x64, 0xfa, 0xa1, 0x32, 0xd4, 0xb6, 0x1b, 0xd4, 0xa8, 0xe8, 0xda,
+ 0xc9, 0x67, 0x01, 0xcc,
+};
+static const unsigned char kat1066_retbits[] = {
+ 0x89, 0x92, 0x83, 0x4d, 0xef, 0xf2, 0xd9, 0xe5, 0x53, 0xc1, 0x02, 0x15,
+ 0xd3, 0x09, 0x33, 0x24, 0x52, 0x42, 0xa4, 0xb7, 0x06, 0xdf, 0x1a, 0x31,
+ 0x24, 0xc3, 0x26, 0xce, 0x4a, 0x6b, 0x67, 0xfc, 0x7f, 0xe0, 0xf1, 0xfa,
+ 0x60, 0xd0, 0x6b, 0x7e, 0xd1, 0xf6, 0x06, 0xd3, 0xb7, 0x93, 0x96, 0xaf,
+ 0x7d, 0xba, 0xce, 0xef, 0xed, 0x44, 0x06, 0xd7, 0xa8, 0xc3, 0x9a, 0x0b,
+ 0xbe, 0xc3, 0x9b, 0x2e,
+};
+static const struct drbg_kat_no_reseed kat1066_t = {
+ 0, kat1066_entropyin, kat1066_nonce, kat1066_persstr,
+ kat1066_addin0, kat1066_addin1, kat1066_retbits
+};
+static const struct drbg_kat kat1066 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1066_t
+};
+
+static const unsigned char kat1067_entropyin[] = {
+ 0xb2, 0xdd, 0x9f, 0x3e, 0xd9, 0xb8, 0x41, 0xc8, 0xc6, 0x4c, 0x5c, 0x87,
+ 0x4b, 0x32, 0x61, 0xbe, 0x37, 0x15, 0x74, 0x10, 0xe4, 0xdd, 0x0d, 0x6c,
+ 0x35, 0xa6, 0x14, 0x20, 0xff, 0x0c, 0x9d, 0x10, 0x1e, 0xf6, 0x31, 0xc6,
+ 0xf0, 0x01, 0x19, 0x2a,
+};
+static const unsigned char kat1067_nonce[] = {0};
+static const unsigned char kat1067_persstr[] = {
+ 0x58, 0x51, 0x3b, 0x0c, 0xee, 0xe0, 0xb0, 0x46, 0xf1, 0x33, 0x8d, 0x1d,
+ 0x0c, 0xe4, 0xdb, 0x50, 0x50, 0xb8, 0x8f, 0xca, 0x61, 0xc1, 0xba, 0xe8,
+ 0xad, 0x8c, 0x4f, 0x4c, 0x5b, 0x2e, 0x1a, 0x17, 0x1a, 0xfd, 0x01, 0x51,
+ 0x31, 0x78, 0x92, 0xaa,
+};
+static const unsigned char kat1067_addin0[] = {
+ 0x7a, 0x20, 0x63, 0x2a, 0x05, 0x15, 0x53, 0x2c, 0xff, 0xe1, 0x9d, 0x24,
+ 0xc5, 0x5d, 0xc1, 0x97, 0x4a, 0x33, 0x81, 0x20, 0xf6, 0xd8, 0xef, 0x6a,
+ 0xd0, 0x3a, 0x1e, 0x11, 0x01, 0x0b, 0x6d, 0x62, 0x34, 0x84, 0x86, 0x79,
+ 0x39, 0x3c, 0x48, 0x93,
+};
+static const unsigned char kat1067_addin1[] = {
+ 0x1b, 0x6c, 0x55, 0x89, 0xaf, 0xf5, 0x10, 0x2a, 0x14, 0x95, 0xaa, 0x99,
+ 0x61, 0x10, 0x2b, 0x8d, 0x92, 0x23, 0xa1, 0xa7, 0x96, 0x7d, 0xc0, 0x3b,
+ 0x53, 0xa4, 0x72, 0x6d, 0x4e, 0x80, 0xe0, 0xdd, 0x91, 0x6a, 0xf9, 0xe8,
+ 0x5c, 0x3c, 0x27, 0x38,
+};
+static const unsigned char kat1067_retbits[] = {
+ 0x15, 0x15, 0xb9, 0x42, 0xe9, 0x94, 0x03, 0x93, 0xde, 0xd2, 0xa6, 0x4c,
+ 0x62, 0xec, 0xd8, 0x54, 0x40, 0x78, 0x5a, 0x33, 0xc8, 0x6d, 0x41, 0xfb,
+ 0xf1, 0xf5, 0x62, 0xcf, 0x51, 0xe0, 0x29, 0xaf, 0x90, 0x7a, 0xd4, 0xd8,
+ 0xa7, 0x51, 0x4a, 0x2b, 0x7e, 0x2e, 0x9a, 0x39, 0xaa, 0xdc, 0xda, 0x05,
+ 0xd2, 0x1f, 0x05, 0x6f, 0xef, 0xed, 0xaa, 0x4a, 0x3a, 0xa2, 0xd4, 0x50,
+ 0x39, 0xe9, 0xdd, 0xc7,
+};
+static const struct drbg_kat_no_reseed kat1067_t = {
+ 1, kat1067_entropyin, kat1067_nonce, kat1067_persstr,
+ kat1067_addin0, kat1067_addin1, kat1067_retbits
+};
+static const struct drbg_kat kat1067 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1067_t
+};
+
+static const unsigned char kat1068_entropyin[] = {
+ 0xb2, 0x59, 0xae, 0x09, 0xd2, 0x56, 0xb2, 0x80, 0xdb, 0x49, 0x59, 0xf9,
+ 0x04, 0x18, 0x68, 0x36, 0x1b, 0x1e, 0x1c, 0xa6, 0xed, 0xf0, 0xa6, 0x7d,
+ 0xb0, 0x55, 0x12, 0x13, 0xa3, 0x5c, 0xb0, 0x33, 0x30, 0x4d, 0xe1, 0x93,
+ 0x4e, 0xb4, 0xcf, 0x96,
+};
+static const unsigned char kat1068_nonce[] = {0};
+static const unsigned char kat1068_persstr[] = {
+ 0xa7, 0x78, 0x5c, 0xba, 0xbc, 0x0d, 0x43, 0x20, 0x78, 0x98, 0x66, 0xaa,
+ 0xc2, 0x9c, 0x2b, 0xfa, 0x36, 0xa0, 0x09, 0x5d, 0x07, 0x2c, 0xc5, 0xba,
+ 0xdd, 0x01, 0x9e, 0xe3, 0x43, 0x3c, 0x42, 0x6d, 0x4d, 0x25, 0x08, 0x96,
+ 0x0a, 0x08, 0x91, 0xd1,
+};
+static const unsigned char kat1068_addin0[] = {
+ 0x95, 0xce, 0xa7, 0x1d, 0x06, 0xaa, 0x28, 0x9f, 0x77, 0x5f, 0xe3, 0x8d,
+ 0xd4, 0x36, 0xd3, 0x25, 0x12, 0x0d, 0x7d, 0x0f, 0x5f, 0xa3, 0x68, 0x38,
+ 0x0f, 0x75, 0xec, 0xfa, 0x5d, 0x53, 0xda, 0x0f, 0x8f, 0x12, 0x4d, 0x91,
+ 0x2f, 0x0f, 0x2f, 0x11,
+};
+static const unsigned char kat1068_addin1[] = {
+ 0xa3, 0xee, 0xde, 0x21, 0xcc, 0x35, 0xde, 0xaa, 0xbb, 0x90, 0x18, 0xb4,
+ 0x62, 0x2d, 0xe9, 0x25, 0xb6, 0xdd, 0xc6, 0x83, 0x00, 0xd6, 0x0c, 0x6c,
+ 0x8a, 0x63, 0x0a, 0x77, 0x99, 0x3a, 0x2d, 0x03, 0xa6, 0x39, 0x18, 0x24,
+ 0x99, 0x25, 0x6d, 0x3e,
+};
+static const unsigned char kat1068_retbits[] = {
+ 0xf9, 0x9d, 0xc7, 0xfe, 0xfe, 0x1d, 0xe4, 0xa5, 0xa2, 0x2a, 0x59, 0x28,
+ 0x5e, 0x93, 0x98, 0x74, 0xd6, 0x60, 0xe3, 0x5a, 0x16, 0x81, 0x90, 0xe2,
+ 0x7b, 0x51, 0xb2, 0x1e, 0x32, 0xb7, 0x13, 0xad, 0x3c, 0xbc, 0x07, 0x56,
+ 0x2c, 0x91, 0xb3, 0x88, 0xae, 0x2f, 0xa5, 0x37, 0x3b, 0xde, 0x74, 0xad,
+ 0x30, 0x3b, 0xf6, 0x16, 0xb0, 0xfc, 0x80, 0x07, 0x0a, 0x71, 0xc7, 0xf0,
+ 0xc4, 0xdb, 0x2e, 0xf1,
+};
+static const struct drbg_kat_no_reseed kat1068_t = {
+ 2, kat1068_entropyin, kat1068_nonce, kat1068_persstr,
+ kat1068_addin0, kat1068_addin1, kat1068_retbits
+};
+static const struct drbg_kat kat1068 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1068_t
+};
+
+static const unsigned char kat1069_entropyin[] = {
+ 0x95, 0xa9, 0xa0, 0x00, 0x6f, 0x67, 0x5c, 0x6b, 0xd8, 0x34, 0x7b, 0x37,
+ 0x18, 0x96, 0x7a, 0xee, 0xa9, 0x14, 0x3c, 0x0f, 0xd5, 0xa5, 0x6d, 0x1d,
+ 0x02, 0xc3, 0x6b, 0x28, 0x03, 0x3e, 0x12, 0x29, 0x40, 0xc6, 0x16, 0xa4,
+ 0x2d, 0xa0, 0x30, 0xf0,
+};
+static const unsigned char kat1069_nonce[] = {0};
+static const unsigned char kat1069_persstr[] = {
+ 0xc3, 0x2d, 0x10, 0x8e, 0x80, 0xcc, 0x7c, 0xd1, 0x5e, 0x28, 0xf6, 0xae,
+ 0xd9, 0x62, 0x97, 0x2d, 0x50, 0x70, 0xbb, 0xe3, 0x3a, 0x04, 0xdb, 0xe8,
+ 0x2b, 0xdd, 0xb3, 0xc0, 0x34, 0xf3, 0xe3, 0x39, 0x6b, 0x49, 0xea, 0x69,
+ 0xdb, 0x6c, 0x26, 0xe7,
+};
+static const unsigned char kat1069_addin0[] = {
+ 0xed, 0x32, 0x9f, 0x12, 0xd6, 0xef, 0xb8, 0x0f, 0xc5, 0xc9, 0x2e, 0x86,
+ 0x67, 0x4a, 0x7c, 0x75, 0x7b, 0x6f, 0xad, 0x21, 0x76, 0x03, 0x2e, 0x88,
+ 0xe6, 0x42, 0xd8, 0x4b, 0x60, 0x6a, 0x29, 0x66, 0xa5, 0x35, 0x1e, 0x3d,
+ 0x54, 0x02, 0x01, 0x2b,
+};
+static const unsigned char kat1069_addin1[] = {
+ 0x6d, 0x7d, 0x5f, 0x88, 0x5d, 0x89, 0x52, 0xe7, 0x7b, 0x67, 0xe5, 0x31,
+ 0x05, 0xa7, 0x4c, 0x2f, 0xc3, 0xd9, 0xa3, 0x8d, 0x64, 0x15, 0x36, 0xb1,
+ 0xc2, 0x45, 0x09, 0x4b, 0x5b, 0x5f, 0xc3, 0x7c, 0xe5, 0xe1, 0xb9, 0x23,
+ 0xd4, 0x80, 0x31, 0xb0,
+};
+static const unsigned char kat1069_retbits[] = {
+ 0xb4, 0x8a, 0x8c, 0xf1, 0x7a, 0x69, 0x26, 0xdd, 0x20, 0xf7, 0xb0, 0xbe,
+ 0xa0, 0x6e, 0xaf, 0xcd, 0x5d, 0x3c, 0x4d, 0x96, 0x1b, 0x6c, 0xdc, 0xe9,
+ 0xb4, 0x93, 0xd6, 0x6b, 0xfd, 0x33, 0x1d, 0x95, 0x2f, 0x23, 0xbc, 0xc4,
+ 0x84, 0x6e, 0x63, 0x94, 0xae, 0x1b, 0xc0, 0xbc, 0x18, 0x3b, 0xcc, 0x2d,
+ 0xce, 0xf2, 0x5d, 0x93, 0x61, 0x0b, 0x33, 0xa1, 0x92, 0xff, 0x0e, 0xeb,
+ 0x88, 0x5a, 0x5a, 0x64,
+};
+static const struct drbg_kat_no_reseed kat1069_t = {
+ 3, kat1069_entropyin, kat1069_nonce, kat1069_persstr,
+ kat1069_addin0, kat1069_addin1, kat1069_retbits
+};
+static const struct drbg_kat kat1069 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1069_t
+};
+
+static const unsigned char kat1070_entropyin[] = {
+ 0x3f, 0x90, 0xce, 0x94, 0xad, 0xa9, 0x34, 0xc8, 0x3f, 0x6c, 0x6e, 0xab,
+ 0x8c, 0x0e, 0xef, 0x4b, 0xe3, 0x45, 0x6b, 0xb6, 0x75, 0xf1, 0xc8, 0x35,
+ 0x96, 0x4e, 0x2b, 0x80, 0x8f, 0x54, 0x17, 0x80, 0x66, 0xf7, 0xf3, 0xaa,
+ 0x0f, 0x79, 0x9b, 0x0d,
+};
+static const unsigned char kat1070_nonce[] = {0};
+static const unsigned char kat1070_persstr[] = {
+ 0xeb, 0x0f, 0x54, 0xf5, 0xfb, 0x20, 0x6f, 0xa2, 0x0d, 0xd0, 0x1c, 0xf2,
+ 0x14, 0x0a, 0x93, 0x14, 0xff, 0x91, 0xec, 0x1c, 0x1b, 0xc0, 0x31, 0xe3,
+ 0x9c, 0xbd, 0xbf, 0x8d, 0x15, 0xef, 0x3d, 0x3d, 0x9c, 0x7f, 0xd7, 0xe2,
+ 0x5c, 0x35, 0x5c, 0x91,
+};
+static const unsigned char kat1070_addin0[] = {
+ 0xda, 0x10, 0x32, 0x97, 0x8b, 0xd1, 0x82, 0x39, 0x2d, 0x75, 0xef, 0x8e,
+ 0x30, 0x1b, 0x37, 0xd3, 0x72, 0xd9, 0xf9, 0x63, 0xaa, 0x5a, 0xa2, 0x91,
+ 0xda, 0xc9, 0x41, 0xb3, 0x78, 0x53, 0xe8, 0xd4, 0x26, 0xe7, 0x40, 0x16,
+ 0xb5, 0x79, 0x5a, 0x1e,
+};
+static const unsigned char kat1070_addin1[] = {
+ 0xd9, 0x75, 0xef, 0x40, 0x49, 0x1f, 0x48, 0x47, 0x04, 0x18, 0x74, 0xb0,
+ 0x24, 0x82, 0x74, 0x55, 0x61, 0x82, 0x57, 0xb9, 0x70, 0x48, 0x9f, 0x97,
+ 0x2b, 0x24, 0x31, 0x44, 0x50, 0xf7, 0x3a, 0xc4, 0x69, 0x97, 0xa4, 0x46,
+ 0x71, 0x33, 0xaa, 0x53,
+};
+static const unsigned char kat1070_retbits[] = {
+ 0x93, 0x23, 0x0b, 0xd7, 0xf0, 0x45, 0x38, 0x45, 0x62, 0x27, 0x8f, 0x63,
+ 0xfd, 0xde, 0x51, 0xaa, 0xcc, 0xa0, 0x71, 0x3a, 0x84, 0x45, 0xcf, 0xb6,
+ 0x41, 0x75, 0x1f, 0x1e, 0x68, 0x9d, 0x4e, 0x35, 0x3d, 0xa2, 0xaf, 0x1a,
+ 0xad, 0xc4, 0x7a, 0x1a, 0x83, 0x3f, 0x0b, 0x44, 0xc8, 0x00, 0xc6, 0x55,
+ 0x2d, 0xe1, 0x8a, 0xfe, 0xb1, 0xbf, 0xd4, 0x84, 0xbb, 0x80, 0xd3, 0xc2,
+ 0x5e, 0x4b, 0x5c, 0x38,
+};
+static const struct drbg_kat_no_reseed kat1070_t = {
+ 4, kat1070_entropyin, kat1070_nonce, kat1070_persstr,
+ kat1070_addin0, kat1070_addin1, kat1070_retbits
+};
+static const struct drbg_kat kat1070 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1070_t
+};
+
+static const unsigned char kat1071_entropyin[] = {
+ 0x36, 0x59, 0x47, 0xb9, 0x4c, 0xe4, 0xf5, 0x6c, 0x58, 0x42, 0x2b, 0xb3,
+ 0x13, 0x50, 0x11, 0x1b, 0x4c, 0xaa, 0xf7, 0x87, 0xf7, 0x7c, 0x6e, 0xbe,
+ 0x46, 0xd3, 0x97, 0x87, 0x23, 0x13, 0x3c, 0xdc, 0x36, 0x34, 0xe5, 0xa8,
+ 0xcd, 0xfc, 0x21, 0x1f,
+};
+static const unsigned char kat1071_nonce[] = {0};
+static const unsigned char kat1071_persstr[] = {
+ 0xc2, 0xaa, 0x05, 0x24, 0xbe, 0xca, 0x81, 0x71, 0xa1, 0xd0, 0x80, 0xfa,
+ 0xc6, 0xb8, 0xbe, 0x00, 0xc9, 0x2e, 0x38, 0xce, 0x7c, 0xc7, 0x5d, 0x66,
+ 0x21, 0x7c, 0x13, 0x8e, 0xdd, 0x7f, 0xca, 0xe6, 0x6d, 0x93, 0x50, 0x29,
+ 0xf2, 0x07, 0x21, 0xa3,
+};
+static const unsigned char kat1071_addin0[] = {
+ 0xb1, 0x05, 0xfe, 0x49, 0xec, 0x71, 0xef, 0x6f, 0x80, 0x86, 0xff, 0xef,
+ 0xb1, 0xed, 0x37, 0x0c, 0xa1, 0x7f, 0xdc, 0x2a, 0xaf, 0xc7, 0xd2, 0xf1,
+ 0xdd, 0xb1, 0x05, 0x84, 0x68, 0xb7, 0x51, 0x05, 0x27, 0xa9, 0xc1, 0x89,
+ 0x69, 0x5d, 0xce, 0x82,
+};
+static const unsigned char kat1071_addin1[] = {
+ 0x5b, 0x62, 0xb2, 0xb7, 0xf9, 0x88, 0x70, 0xa6, 0xf0, 0xfc, 0x56, 0x73,
+ 0x2f, 0xcf, 0x45, 0xb2, 0xb3, 0x4d, 0xa2, 0x08, 0x3b, 0x03, 0x7c, 0x87,
+ 0xed, 0xce, 0xd1, 0xa0, 0xbc, 0x57, 0xef, 0xfb, 0x5c, 0xa6, 0x06, 0x2b,
+ 0x0a, 0x84, 0xfb, 0xf5,
+};
+static const unsigned char kat1071_retbits[] = {
+ 0xc3, 0x32, 0xf5, 0x7c, 0x3b, 0x0b, 0x83, 0x24, 0xf8, 0x0f, 0xe9, 0xd1,
+ 0x73, 0xb2, 0x6f, 0x96, 0x9b, 0xd4, 0xdd, 0xde, 0x8e, 0x15, 0xfd, 0xca,
+ 0xbc, 0x7d, 0x2c, 0xf3, 0x6f, 0xac, 0x23, 0x9b, 0x42, 0xd8, 0x95, 0xe8,
+ 0xb5, 0xa9, 0xad, 0x46, 0x24, 0xec, 0x62, 0xd1, 0x4c, 0xdd, 0x08, 0xf4,
+ 0x73, 0x8a, 0xe1, 0x86, 0x36, 0x1d, 0x2e, 0xad, 0x37, 0x6e, 0xe1, 0xb0,
+ 0x64, 0xba, 0xdb, 0x87,
+};
+static const struct drbg_kat_no_reseed kat1071_t = {
+ 5, kat1071_entropyin, kat1071_nonce, kat1071_persstr,
+ kat1071_addin0, kat1071_addin1, kat1071_retbits
+};
+static const struct drbg_kat kat1071 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1071_t
+};
+
+static const unsigned char kat1072_entropyin[] = {
+ 0x36, 0x12, 0x18, 0x2e, 0x7d, 0x2e, 0xf2, 0x9e, 0xc8, 0x28, 0x38, 0x95,
+ 0x72, 0xc3, 0x00, 0xb9, 0xee, 0x2c, 0xed, 0x58, 0x84, 0xba, 0x8f, 0x8b,
+ 0x41, 0xaf, 0x05, 0x1e, 0x9e, 0xec, 0x40, 0xbe, 0xf8, 0xe3, 0xbf, 0x07,
+ 0x93, 0xa5, 0x3b, 0xc9,
+};
+static const unsigned char kat1072_nonce[] = {0};
+static const unsigned char kat1072_persstr[] = {
+ 0x5c, 0xeb, 0xa7, 0x00, 0xfe, 0x74, 0xbc, 0xbf, 0x68, 0xf3, 0xdb, 0xe7,
+ 0xd6, 0xc4, 0x2c, 0xa1, 0x77, 0x8e, 0x17, 0x45, 0xf3, 0xa6, 0x8d, 0x4c,
+ 0x0f, 0x52, 0xf9, 0x49, 0x86, 0x81, 0xe9, 0x32, 0x8b, 0xc5, 0x7f, 0x76,
+ 0xf3, 0xbe, 0xce, 0xb0,
+};
+static const unsigned char kat1072_addin0[] = {
+ 0xc2, 0xf4, 0x7a, 0x66, 0x09, 0x0b, 0x08, 0x77, 0xee, 0xb4, 0x7d, 0x45,
+ 0xe0, 0x6b, 0x13, 0x99, 0xd2, 0xbd, 0xa0, 0x1f, 0xc2, 0xbe, 0x9d, 0xdc,
+ 0x25, 0x08, 0x27, 0x1d, 0x73, 0x9b, 0x9e, 0x29, 0xbc, 0xb5, 0xa8, 0xaf,
+ 0xff, 0x16, 0xaf, 0x19,
+};
+static const unsigned char kat1072_addin1[] = {
+ 0x8d, 0x5b, 0x75, 0x47, 0x90, 0xb3, 0x97, 0x94, 0x23, 0x07, 0x5e, 0xd7,
+ 0x10, 0x43, 0x37, 0x07, 0xaa, 0x88, 0x76, 0x4b, 0x60, 0xd1, 0x06, 0x24,
+ 0x3a, 0x40, 0x73, 0x95, 0xa6, 0xc5, 0x9a, 0xd9, 0xd0, 0x01, 0x6b, 0x94,
+ 0xd3, 0xc2, 0x3b, 0xfe,
+};
+static const unsigned char kat1072_retbits[] = {
+ 0x6b, 0x1c, 0x41, 0x1a, 0x29, 0x39, 0x33, 0x01, 0xd7, 0x30, 0x53, 0x3f,
+ 0xf5, 0x35, 0x90, 0xdc, 0x68, 0x4f, 0x81, 0xbd, 0x04, 0x42, 0x8f, 0x3d,
+ 0x26, 0x5e, 0xab, 0xc2, 0x39, 0x41, 0x25, 0x4a, 0x7d, 0x6a, 0xae, 0x85,
+ 0x85, 0x82, 0x2e, 0x5a, 0xd1, 0xa4, 0xa8, 0xac, 0x97, 0xe7, 0x90, 0xb7,
+ 0x15, 0x2c, 0x66, 0xd2, 0xd0, 0x3d, 0xb6, 0xef, 0xc9, 0x91, 0x16, 0xca,
+ 0x46, 0x72, 0xac, 0x8b,
+};
+static const struct drbg_kat_no_reseed kat1072_t = {
+ 6, kat1072_entropyin, kat1072_nonce, kat1072_persstr,
+ kat1072_addin0, kat1072_addin1, kat1072_retbits
+};
+static const struct drbg_kat kat1072 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1072_t
+};
+
+static const unsigned char kat1073_entropyin[] = {
+ 0x1d, 0x5f, 0x82, 0x35, 0x53, 0xf1, 0x0d, 0xdf, 0x2b, 0x62, 0x5e, 0xed,
+ 0x6d, 0xea, 0x76, 0xd0, 0x6b, 0xa8, 0xc9, 0x19, 0xe1, 0x8d, 0x25, 0x0f,
+ 0xe4, 0xf1, 0xe2, 0xd6, 0x24, 0xc3, 0xd9, 0xaf, 0x8a, 0x3e, 0xfb, 0xce,
+ 0x08, 0xa1, 0x1f, 0xde,
+};
+static const unsigned char kat1073_nonce[] = {0};
+static const unsigned char kat1073_persstr[] = {
+ 0xba, 0xe1, 0x50, 0xd1, 0xc0, 0x59, 0xef, 0x31, 0x4f, 0x47, 0x81, 0x90,
+ 0xfd, 0x84, 0x78, 0xa7, 0xd2, 0xb8, 0xec, 0xbd, 0x74, 0xfd, 0x48, 0x0a,
+ 0x50, 0xe3, 0x51, 0x12, 0x97, 0x57, 0x86, 0x4a, 0xf8, 0x27, 0x31, 0x8a,
+ 0xf8, 0x92, 0xe6, 0xc2,
+};
+static const unsigned char kat1073_addin0[] = {
+ 0x46, 0xc4, 0x28, 0xb8, 0xf3, 0xd6, 0x62, 0xbd, 0x73, 0xe8, 0x08, 0x9a,
+ 0xcc, 0x48, 0x09, 0x7d, 0x0d, 0xe2, 0xe2, 0x07, 0x02, 0x6c, 0x44, 0xc4,
+ 0x21, 0x7c, 0x3b, 0x46, 0xc5, 0x4e, 0x83, 0xa8, 0xd2, 0xd3, 0x57, 0x64,
+ 0x21, 0xc3, 0x13, 0x2a,
+};
+static const unsigned char kat1073_addin1[] = {
+ 0xd0, 0xad, 0x82, 0x21, 0xe9, 0xc3, 0x8d, 0xb6, 0x0b, 0x06, 0x35, 0x2b,
+ 0x77, 0xee, 0xe4, 0xd4, 0x94, 0x72, 0xe6, 0x75, 0x3c, 0xfb, 0x35, 0x87,
+ 0x42, 0xbf, 0xb0, 0xb9, 0xd1, 0x3e, 0xba, 0xb4, 0x63, 0x7d, 0xc3, 0x55,
+ 0xdb, 0x8c, 0x14, 0x7e,
+};
+static const unsigned char kat1073_retbits[] = {
+ 0x6b, 0x91, 0x92, 0x3f, 0x9c, 0xa4, 0x95, 0xef, 0xec, 0x6d, 0xc8, 0xdd,
+ 0xe0, 0x16, 0x3f, 0x05, 0x11, 0xb0, 0x74, 0xde, 0x76, 0x6c, 0x44, 0xf3,
+ 0x88, 0xa8, 0x29, 0xd5, 0x06, 0xc0, 0xb3, 0x1b, 0x4e, 0x09, 0x70, 0x40,
+ 0x86, 0xc3, 0x13, 0x82, 0xe7, 0xb7, 0x0c, 0xff, 0xd9, 0x42, 0xe5, 0x6a,
+ 0x82, 0xb6, 0xaa, 0x34, 0x3b, 0x44, 0x09, 0x49, 0x8b, 0xae, 0xde, 0x18,
+ 0x6a, 0x76, 0x65, 0xe1,
+};
+static const struct drbg_kat_no_reseed kat1073_t = {
+ 7, kat1073_entropyin, kat1073_nonce, kat1073_persstr,
+ kat1073_addin0, kat1073_addin1, kat1073_retbits
+};
+static const struct drbg_kat kat1073 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1073_t
+};
+
+static const unsigned char kat1074_entropyin[] = {
+ 0xed, 0x61, 0x66, 0x1a, 0xb1, 0x3f, 0xec, 0x20, 0x02, 0x15, 0x6f, 0x23,
+ 0x9c, 0x96, 0x2c, 0x03, 0x84, 0x4e, 0xc2, 0x1c, 0x25, 0x2a, 0x13, 0xf7,
+ 0x88, 0xd4, 0xc8, 0x5e, 0xa7, 0xea, 0x5f, 0x2c, 0x87, 0xc7, 0x6a, 0x72,
+ 0x7f, 0x77, 0x63, 0x0e,
+};
+static const unsigned char kat1074_nonce[] = {0};
+static const unsigned char kat1074_persstr[] = {
+ 0x06, 0x45, 0x43, 0x54, 0x5e, 0x7f, 0x8f, 0x15, 0x3c, 0xbc, 0xd0, 0x86,
+ 0x3e, 0xde, 0x5c, 0x9c, 0xe7, 0x90, 0x87, 0xd6, 0xcc, 0x0e, 0x4c, 0x20,
+ 0xd5, 0xea, 0x42, 0x74, 0x9f, 0x75, 0x64, 0x44, 0x9a, 0xfc, 0x33, 0xd8,
+ 0xca, 0xa1, 0xc4, 0x64,
+};
+static const unsigned char kat1074_addin0[] = {
+ 0x87, 0x8a, 0xae, 0xc1, 0x6a, 0xb0, 0x97, 0x45, 0x47, 0xaa, 0xa0, 0x9a,
+ 0xde, 0xb3, 0xac, 0x16, 0xea, 0x5e, 0x92, 0x43, 0x08, 0xf8, 0x29, 0x9c,
+ 0x4f, 0x14, 0xcb, 0x47, 0xf3, 0x5f, 0x1d, 0x1a, 0x24, 0xd9, 0xe2, 0x54,
+ 0x6c, 0x52, 0x64, 0xe1,
+};
+static const unsigned char kat1074_addin1[] = {
+ 0xa7, 0xa2, 0x08, 0x62, 0x4c, 0x9a, 0x69, 0xd5, 0x16, 0xd2, 0x71, 0xa9,
+ 0xd1, 0x18, 0x91, 0xc6, 0xc3, 0x5e, 0x89, 0x2a, 0x7b, 0xdf, 0x7b, 0xe3,
+ 0xce, 0xbc, 0x18, 0x01, 0x24, 0x19, 0x0b, 0x4a, 0xe7, 0xb2, 0xfc, 0x89,
+ 0xca, 0x86, 0xc7, 0x56,
+};
+static const unsigned char kat1074_retbits[] = {
+ 0x22, 0x01, 0x98, 0x87, 0x5b, 0x6d, 0x81, 0x22, 0xc2, 0xaa, 0xbd, 0xc7,
+ 0x5f, 0x02, 0x9f, 0x12, 0xb8, 0xa6, 0x77, 0x0f, 0xf0, 0x34, 0x5d, 0xc7,
+ 0x44, 0x92, 0xb5, 0x1b, 0xd2, 0x42, 0xf9, 0x88, 0xd9, 0x65, 0xc7, 0x87,
+ 0xc2, 0x40, 0xbb, 0x1e, 0x59, 0x63, 0x25, 0x2c, 0xaf, 0xcc, 0xc8, 0x6f,
+ 0x93, 0x20, 0x8b, 0x50, 0x99, 0x87, 0x9d, 0x1a, 0x56, 0x52, 0xc2, 0x1f,
+ 0xf9, 0xfe, 0x2f, 0x7c,
+};
+static const struct drbg_kat_no_reseed kat1074_t = {
+ 8, kat1074_entropyin, kat1074_nonce, kat1074_persstr,
+ kat1074_addin0, kat1074_addin1, kat1074_retbits
+};
+static const struct drbg_kat kat1074 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1074_t
+};
+
+static const unsigned char kat1075_entropyin[] = {
+ 0x47, 0xa3, 0xcd, 0xd7, 0x35, 0x77, 0xb4, 0xe7, 0xa7, 0x27, 0x46, 0x27,
+ 0x7e, 0x4e, 0x64, 0xab, 0xea, 0x20, 0xde, 0x39, 0x62, 0x25, 0xa0, 0x6b,
+ 0x0a, 0xa3, 0x9f, 0xaa, 0x66, 0x35, 0x6d, 0x34, 0xa9, 0xa6, 0x16, 0x25,
+ 0x15, 0x9d, 0x4f, 0x5f,
+};
+static const unsigned char kat1075_nonce[] = {0};
+static const unsigned char kat1075_persstr[] = {
+ 0x2a, 0xba, 0x79, 0x72, 0x88, 0x06, 0xa9, 0xc2, 0x2b, 0x56, 0xa2, 0x58,
+ 0x9a, 0x2f, 0xfb, 0x6f, 0x9c, 0xeb, 0x0f, 0xa0, 0x3c, 0x5c, 0xf5, 0x2b,
+ 0x42, 0x8f, 0xe9, 0x71, 0x42, 0x38, 0x83, 0xdc, 0x29, 0x65, 0xe9, 0xfc,
+ 0x78, 0xb6, 0x42, 0xe2,
+};
+static const unsigned char kat1075_addin0[] = {
+ 0x50, 0x0f, 0x92, 0xf4, 0xcb, 0x0d, 0x38, 0xb9, 0xc9, 0x52, 0x8c, 0xad,
+ 0x5f, 0xa2, 0x28, 0x03, 0x73, 0x0e, 0x9f, 0xc6, 0xfe, 0xa9, 0xf2, 0xa6,
+ 0xa7, 0xd1, 0xfd, 0x42, 0x51, 0xe9, 0x97, 0x47, 0x6e, 0xbd, 0x4a, 0xe4,
+ 0x52, 0xd8, 0x35, 0x16,
+};
+static const unsigned char kat1075_addin1[] = {
+ 0xb9, 0xfe, 0x2c, 0x2a, 0xce, 0x55, 0x71, 0x42, 0x6b, 0xe7, 0x96, 0x2a,
+ 0x81, 0x90, 0x74, 0xbb, 0xbf, 0x91, 0xfd, 0xe2, 0xcc, 0x12, 0x16, 0xec,
+ 0xbc, 0x08, 0xe1, 0x64, 0xd9, 0x86, 0x62, 0x4d, 0x3d, 0x53, 0xdd, 0x50,
+ 0x95, 0x31, 0x98, 0x52,
+};
+static const unsigned char kat1075_retbits[] = {
+ 0x2e, 0x42, 0x79, 0x19, 0xb4, 0xc0, 0x40, 0x32, 0x77, 0xc2, 0xc0, 0xe5,
+ 0x32, 0x37, 0x5b, 0x82, 0x6c, 0xe3, 0x64, 0xbe, 0x00, 0xca, 0xd2, 0x39,
+ 0x1e, 0xab, 0xdf, 0x8e, 0xac, 0xb5, 0x98, 0x2c, 0x49, 0xa3, 0x3e, 0x69,
+ 0xda, 0x49, 0x85, 0xaa, 0x80, 0xf6, 0xf2, 0xe4, 0xf3, 0x7d, 0xca, 0x3f,
+ 0x3d, 0xe1, 0xb4, 0x3b, 0x0f, 0x73, 0xea, 0xe7, 0xee, 0x65, 0xa1, 0x06,
+ 0x53, 0xaf, 0x33, 0xac,
+};
+static const struct drbg_kat_no_reseed kat1075_t = {
+ 9, kat1075_entropyin, kat1075_nonce, kat1075_persstr,
+ kat1075_addin0, kat1075_addin1, kat1075_retbits
+};
+static const struct drbg_kat kat1075 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1075_t
+};
+
+static const unsigned char kat1076_entropyin[] = {
+ 0x45, 0x5a, 0xa0, 0x04, 0xe9, 0x22, 0x4e, 0xaa, 0x70, 0x0b, 0xef, 0xee,
+ 0xe5, 0x2f, 0x6a, 0x7b, 0x1a, 0x1d, 0xf7, 0x9b, 0x0b, 0xb2, 0x1b, 0x7a,
+ 0x71, 0xd3, 0xc5, 0x32, 0xc3, 0x7d, 0xd7, 0x1b, 0x14, 0x35, 0xd9, 0x07,
+ 0x6a, 0x49, 0x17, 0x95,
+};
+static const unsigned char kat1076_nonce[] = {0};
+static const unsigned char kat1076_persstr[] = {
+ 0x78, 0x06, 0xdc, 0x9b, 0x9c, 0xec, 0xbc, 0xa2, 0xeb, 0x7a, 0x8f, 0xc1,
+ 0x9a, 0xb5, 0x39, 0x63, 0x58, 0x6e, 0x70, 0xaf, 0x48, 0x72, 0xee, 0x5c,
+ 0x39, 0x24, 0x98, 0xba, 0x86, 0x9a, 0xdd, 0xdf, 0xec, 0x44, 0xc0, 0xe4,
+ 0x2b, 0xc4, 0xe6, 0x0a,
+};
+static const unsigned char kat1076_addin0[] = {
+ 0x28, 0xac, 0x9b, 0x8e, 0x22, 0x73, 0x55, 0x6c, 0xab, 0x94, 0xff, 0x66,
+ 0x5a, 0x3c, 0xf0, 0x60, 0xd4, 0x7f, 0xe9, 0x40, 0x63, 0xb7, 0x6b, 0xaf,
+ 0xde, 0xfa, 0x44, 0x8c, 0x71, 0xba, 0x18, 0x0f, 0xb7, 0x37, 0xb3, 0x05,
+ 0x9e, 0xad, 0x3f, 0xca,
+};
+static const unsigned char kat1076_addin1[] = {
+ 0x61, 0xf8, 0x1f, 0x1f, 0x2a, 0xb6, 0xdb, 0x27, 0xf2, 0xe7, 0x9f, 0xfb,
+ 0xc2, 0x47, 0xe3, 0xfb, 0x39, 0x4a, 0x54, 0xff, 0x2e, 0x44, 0x86, 0xe1,
+ 0x6b, 0x03, 0xd5, 0x78, 0xbb, 0xf9, 0xc5, 0xc9, 0x74, 0x00, 0x21, 0x52,
+ 0x1b, 0x59, 0xdd, 0x0d,
+};
+static const unsigned char kat1076_retbits[] = {
+ 0xab, 0xf4, 0xd8, 0x28, 0x71, 0xe2, 0xa9, 0xd5, 0xd2, 0xf7, 0xdb, 0x1b,
+ 0xe6, 0xb2, 0xa1, 0xf2, 0x3c, 0x65, 0x17, 0x91, 0xd8, 0x73, 0x1c, 0xef,
+ 0x4d, 0x10, 0x5c, 0x29, 0x33, 0x86, 0x2f, 0x16, 0x16, 0xe1, 0x95, 0x16,
+ 0x61, 0x37, 0xb1, 0x4b, 0x0b, 0xde, 0xc9, 0x3e, 0xe2, 0x98, 0x8d, 0xac,
+ 0x89, 0xe0, 0xcd, 0x5a, 0x79, 0xea, 0x7e, 0x0e, 0xa3, 0xbe, 0xe7, 0x0a,
+ 0xa0, 0xc0, 0xc1, 0xf7,
+};
+static const struct drbg_kat_no_reseed kat1076_t = {
+ 10, kat1076_entropyin, kat1076_nonce, kat1076_persstr,
+ kat1076_addin0, kat1076_addin1, kat1076_retbits
+};
+static const struct drbg_kat kat1076 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1076_t
+};
+
+static const unsigned char kat1077_entropyin[] = {
+ 0xaa, 0x12, 0x44, 0x80, 0x5e, 0x22, 0x6d, 0x9b, 0xb4, 0xf0, 0x8c, 0xc6,
+ 0x8d, 0x5a, 0x82, 0x07, 0x48, 0x08, 0xee, 0x5b, 0x71, 0x8e, 0xdc, 0x65,
+ 0x64, 0x37, 0x65, 0x48, 0x81, 0x7a, 0x12, 0x80, 0x13, 0x24, 0xfb, 0x9d,
+ 0x48, 0xf9, 0x50, 0xb3,
+};
+static const unsigned char kat1077_nonce[] = {0};
+static const unsigned char kat1077_persstr[] = {
+ 0xd0, 0x82, 0xe8, 0xd5, 0x76, 0x6d, 0x36, 0x95, 0x7a, 0x3f, 0x2f, 0x7e,
+ 0xbe, 0x16, 0x6c, 0x12, 0x31, 0x5a, 0x28, 0xe5, 0x6d, 0xff, 0xb8, 0xd2,
+ 0xb4, 0xc8, 0x6a, 0xb2, 0x43, 0x9c, 0x23, 0xf4, 0xb7, 0xb0, 0x99, 0x12,
+ 0x48, 0xcc, 0xaf, 0xdf,
+};
+static const unsigned char kat1077_addin0[] = {
+ 0x63, 0xfc, 0xfe, 0x9a, 0x28, 0x6c, 0x7e, 0xfa, 0xd0, 0x8e, 0x02, 0x1c,
+ 0x03, 0x3a, 0x67, 0x84, 0xa8, 0x92, 0x55, 0xf7, 0x6f, 0x3e, 0x41, 0xd2,
+ 0x3c, 0xb0, 0xcf, 0x15, 0xb4, 0x33, 0x47, 0xa8, 0xa1, 0xae, 0x95, 0x3c,
+ 0x07, 0xbb, 0x68, 0x30,
+};
+static const unsigned char kat1077_addin1[] = {
+ 0xf6, 0xa8, 0xa7, 0xc5, 0x70, 0x73, 0xd2, 0x89, 0x95, 0xc3, 0x41, 0x2f,
+ 0xce, 0x59, 0x7c, 0x67, 0xca, 0xa8, 0xc8, 0xc0, 0x73, 0x45, 0xbd, 0x5e,
+ 0x42, 0xb9, 0x91, 0x62, 0x4f, 0xc2, 0x68, 0x88, 0xf8, 0xed, 0xbe, 0xab,
+ 0xaa, 0x71, 0xf6, 0x3e,
+};
+static const unsigned char kat1077_retbits[] = {
+ 0x19, 0x5b, 0x9b, 0x0a, 0x08, 0xab, 0x0e, 0xe5, 0x82, 0x4e, 0x39, 0xf9,
+ 0x22, 0x78, 0xef, 0x06, 0xe4, 0x62, 0x9d, 0x50, 0x45, 0x15, 0xb5, 0xb8,
+ 0x89, 0x6b, 0xe8, 0x7c, 0xaf, 0xd4, 0xe7, 0xcc, 0xf9, 0xa5, 0xb1, 0x84,
+ 0x4d, 0xb2, 0x78, 0xe1, 0x09, 0x09, 0x6d, 0x84, 0x8d, 0xa5, 0xa9, 0xf0,
+ 0x74, 0xd5, 0x93, 0x55, 0xbe, 0xa5, 0x02, 0x57, 0x08, 0xe0, 0x3f, 0xe6,
+ 0x95, 0x1c, 0xf7, 0xbf,
+};
+static const struct drbg_kat_no_reseed kat1077_t = {
+ 11, kat1077_entropyin, kat1077_nonce, kat1077_persstr,
+ kat1077_addin0, kat1077_addin1, kat1077_retbits
+};
+static const struct drbg_kat kat1077 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1077_t
+};
+
+static const unsigned char kat1078_entropyin[] = {
+ 0x0f, 0xa2, 0xcf, 0x0e, 0xe2, 0xa8, 0xf5, 0x85, 0xfd, 0x8e, 0xd9, 0xdf,
+ 0xfc, 0x39, 0x75, 0xe7, 0x1c, 0x2e, 0x35, 0x47, 0xb1, 0xe7, 0xa0, 0xbe,
+ 0x40, 0xff, 0xfc, 0x25, 0xe2, 0x72, 0x23, 0x4a, 0x61, 0x55, 0x6d, 0x2b,
+ 0x8d, 0xe4, 0x4f, 0x45,
+};
+static const unsigned char kat1078_nonce[] = {0};
+static const unsigned char kat1078_persstr[] = {
+ 0xef, 0x3c, 0x20, 0xa9, 0x0c, 0xfe, 0x29, 0xfc, 0xb7, 0x8c, 0xd7, 0x02,
+ 0x3b, 0xad, 0xee, 0xdd, 0xa4, 0xcd, 0xbe, 0xd5, 0x6e, 0x86, 0x77, 0x73,
+ 0x76, 0xcf, 0x26, 0x72, 0x4c, 0xa1, 0x7f, 0x8b, 0x1a, 0x3f, 0x4b, 0x7f,
+ 0xce, 0xab, 0x46, 0x5b,
+};
+static const unsigned char kat1078_addin0[] = {
+ 0x07, 0x70, 0x1f, 0x10, 0xbd, 0xd4, 0x44, 0x01, 0x51, 0x09, 0x9a, 0x38,
+ 0xdc, 0x34, 0xeb, 0x09, 0x32, 0x29, 0xfc, 0x40, 0x8c, 0x34, 0xd9, 0xb7,
+ 0xa2, 0x65, 0x48, 0xdd, 0x6d, 0x71, 0x4f, 0xa5, 0xbe, 0xac, 0x1d, 0xfb,
+ 0x6e, 0x6d, 0xcb, 0x84,
+};
+static const unsigned char kat1078_addin1[] = {
+ 0x3d, 0x41, 0xf6, 0x28, 0x52, 0x08, 0x2c, 0xf1, 0x75, 0x35, 0xb6, 0xe8,
+ 0x52, 0x98, 0x3b, 0x3e, 0x64, 0xcc, 0x95, 0xfa, 0x51, 0xf8, 0x64, 0x68,
+ 0x19, 0x69, 0x69, 0x01, 0x88, 0xd0, 0xfd, 0x24, 0x60, 0x10, 0x29, 0x03,
+ 0x99, 0xa6, 0x87, 0x1a,
+};
+static const unsigned char kat1078_retbits[] = {
+ 0x61, 0x1e, 0x25, 0x3b, 0x08, 0x5e, 0x5b, 0x30, 0x0f, 0xdd, 0x37, 0x30,
+ 0x24, 0xa1, 0xa4, 0x40, 0xce, 0x7c, 0x74, 0x49, 0xd3, 0xdb, 0xfe, 0x8f,
+ 0xa8, 0x9d, 0x81, 0x8c, 0xd0, 0x4e, 0x7a, 0x06, 0x46, 0xcb, 0xa5, 0xe1,
+ 0xe4, 0xab, 0x97, 0xc3, 0x9a, 0x5b, 0x12, 0x99, 0x81, 0xc2, 0xb1, 0xb3,
+ 0x00, 0x2a, 0xe3, 0x2f, 0x0f, 0xf8, 0x49, 0x99, 0xc1, 0xf7, 0xb5, 0xac,
+ 0xfb, 0xaf, 0x8e, 0x57,
+};
+static const struct drbg_kat_no_reseed kat1078_t = {
+ 12, kat1078_entropyin, kat1078_nonce, kat1078_persstr,
+ kat1078_addin0, kat1078_addin1, kat1078_retbits
+};
+static const struct drbg_kat kat1078 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1078_t
+};
+
+static const unsigned char kat1079_entropyin[] = {
+ 0x08, 0x13, 0x48, 0x20, 0xc6, 0xdb, 0x2b, 0x51, 0x11, 0xff, 0x6b, 0xcc,
+ 0xcc, 0x69, 0x75, 0x8a, 0x5d, 0x75, 0x0a, 0xf0, 0xd1, 0x14, 0x4e, 0xd5,
+ 0xab, 0x80, 0x05, 0x55, 0xb6, 0x31, 0xd0, 0xc1, 0xb3, 0xd8, 0x19, 0x2e,
+ 0x07, 0x5a, 0xa3, 0x80,
+};
+static const unsigned char kat1079_nonce[] = {0};
+static const unsigned char kat1079_persstr[] = {
+ 0xb4, 0xda, 0x34, 0x29, 0x61, 0xaa, 0x4b, 0x9b, 0x5f, 0xdd, 0xd9, 0x49,
+ 0x05, 0xc3, 0x1c, 0xf6, 0xf3, 0x2c, 0x14, 0x2c, 0x92, 0xb6, 0xde, 0x6e,
+ 0xb8, 0x2b, 0xd5, 0x8c, 0xfe, 0x3f, 0x7d, 0x66, 0x6a, 0x3f, 0x6f, 0xd7,
+ 0x4c, 0x2c, 0x80, 0x82,
+};
+static const unsigned char kat1079_addin0[] = {
+ 0x0e, 0x2a, 0xb9, 0x61, 0x5b, 0x07, 0xd3, 0xee, 0xb9, 0x93, 0xa4, 0xea,
+ 0x1d, 0x34, 0xe5, 0xc1, 0x6b, 0xf5, 0xc2, 0x87, 0x77, 0x30, 0xfa, 0x32,
+ 0x94, 0x3c, 0xf3, 0x78, 0x37, 0xa9, 0x29, 0xd2, 0x25, 0x47, 0x9d, 0x0e,
+ 0x47, 0xbd, 0x8b, 0xd8,
+};
+static const unsigned char kat1079_addin1[] = {
+ 0xa5, 0x0e, 0xb3, 0x73, 0x39, 0x14, 0x55, 0xe2, 0x33, 0x82, 0xa8, 0xff,
+ 0xab, 0xcf, 0xf1, 0x1d, 0xd4, 0x1b, 0x36, 0xe1, 0x1a, 0x6a, 0x36, 0x45,
+ 0xf4, 0xbf, 0xef, 0xd2, 0x67, 0xa7, 0xcd, 0x80, 0xd3, 0x78, 0x39, 0xc8,
+ 0xf7, 0x04, 0xb8, 0xc5,
+};
+static const unsigned char kat1079_retbits[] = {
+ 0x6a, 0xba, 0x01, 0x66, 0x0a, 0xac, 0xcb, 0x5f, 0x5f, 0xd3, 0x2f, 0xb6,
+ 0xa5, 0x41, 0xcb, 0x3b, 0x85, 0xd0, 0xaa, 0xba, 0x47, 0x6c, 0x63, 0x96,
+ 0x2d, 0xa4, 0x89, 0xee, 0xa9, 0x44, 0x7d, 0x7c, 0x3c, 0x11, 0x59, 0x60,
+ 0x8c, 0x0a, 0x64, 0x7d, 0x64, 0x16, 0x48, 0x56, 0x68, 0xec, 0x3a, 0xbc,
+ 0x4b, 0x22, 0xa9, 0x19, 0xca, 0xdf, 0x5e, 0x8c, 0x87, 0xe9, 0xf3, 0x59,
+ 0x0a, 0xc5, 0x8a, 0xa8,
+};
+static const struct drbg_kat_no_reseed kat1079_t = {
+ 13, kat1079_entropyin, kat1079_nonce, kat1079_persstr,
+ kat1079_addin0, kat1079_addin1, kat1079_retbits
+};
+static const struct drbg_kat kat1079 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1079_t
+};
+
+static const unsigned char kat1080_entropyin[] = {
+ 0x41, 0xff, 0x15, 0x6a, 0xc9, 0x1b, 0xb7, 0xed, 0x33, 0xa4, 0x46, 0x5d,
+ 0x08, 0xa1, 0x5f, 0x10, 0x46, 0xea, 0x01, 0x42, 0x62, 0xcc, 0xc0, 0xe2,
+ 0xdd, 0x7a, 0x99, 0x9e, 0x27, 0x63, 0x2e, 0xad, 0x96, 0x77, 0x51, 0x1d,
+ 0x93, 0x63, 0x29, 0xc5,
+};
+static const unsigned char kat1080_nonce[] = {0};
+static const unsigned char kat1080_persstr[] = {
+ 0x39, 0xb8, 0xee, 0x59, 0x82, 0x18, 0x58, 0xdc, 0xb8, 0x9c, 0x0f, 0x9d,
+ 0xa6, 0xd7, 0x98, 0xf9, 0x25, 0xac, 0xba, 0xad, 0x0d, 0xd2, 0xa9, 0x0b,
+ 0x1a, 0xe6, 0x33, 0x4c, 0x4e, 0x4b, 0xad, 0xd3, 0x80, 0x43, 0xe7, 0x0d,
+ 0xe7, 0x46, 0xdb, 0xdc,
+};
+static const unsigned char kat1080_addin0[] = {
+ 0x6c, 0xff, 0x75, 0x28, 0xb8, 0x43, 0xb2, 0xef, 0xb4, 0x03, 0x36, 0xbd,
+ 0xca, 0xa9, 0x62, 0x9b, 0xe2, 0x72, 0x0b, 0xfa, 0x50, 0x9a, 0x33, 0x04,
+ 0x30, 0xc3, 0x6d, 0x59, 0x35, 0xe6, 0xec, 0x68, 0x56, 0x9c, 0xb6, 0x45,
+ 0x96, 0x71, 0xfc, 0x97,
+};
+static const unsigned char kat1080_addin1[] = {
+ 0xe0, 0x84, 0x3c, 0xa3, 0x38, 0x5e, 0xd5, 0x5f, 0x56, 0xd5, 0x13, 0x43,
+ 0xdd, 0x71, 0x8d, 0xbd, 0x1a, 0x37, 0x05, 0xd7, 0xb8, 0xa3, 0xa5, 0xcb,
+ 0x7b, 0x95, 0x5c, 0x90, 0x70, 0xef, 0x1f, 0xaf, 0x74, 0x38, 0x2a, 0x91,
+ 0x30, 0xa6, 0x80, 0x3c,
+};
+static const unsigned char kat1080_retbits[] = {
+ 0x90, 0x52, 0xa7, 0x5e, 0xb2, 0x25, 0xac, 0x75, 0x22, 0xcb, 0x14, 0x12,
+ 0x45, 0xe0, 0x59, 0x2a, 0x33, 0x4c, 0xdc, 0x8e, 0x19, 0x4f, 0x52, 0x49,
+ 0xa5, 0x84, 0x3e, 0x6e, 0xfb, 0x63, 0x98, 0xdb, 0x1b, 0x8a, 0xe9, 0x7a,
+ 0x15, 0x82, 0x9e, 0xfa, 0x46, 0x85, 0xcb, 0x4f, 0x14, 0x35, 0xd0, 0x22,
+ 0x42, 0x4c, 0xc7, 0x85, 0x4d, 0x34, 0x74, 0x3b, 0xb2, 0xd8, 0x61, 0x86,
+ 0x6f, 0xff, 0x51, 0xc1,
+};
+static const struct drbg_kat_no_reseed kat1080_t = {
+ 14, kat1080_entropyin, kat1080_nonce, kat1080_persstr,
+ kat1080_addin0, kat1080_addin1, kat1080_retbits
+};
+static const struct drbg_kat kat1080 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1080_t
+};
+
+static const unsigned char kat1081_entropyin[] = {
+ 0x40, 0x97, 0x88, 0x36, 0xf2, 0x3c, 0xdb, 0x54, 0x5a, 0x48, 0x89, 0x39,
+ 0x26, 0xa0, 0xdd, 0x81, 0x0f, 0x79, 0x19, 0xf1, 0x22, 0x14, 0x56, 0x7b,
+ 0xd8, 0x9f, 0x21, 0x87, 0x61, 0x9b, 0xae, 0x46, 0x98, 0xb4, 0x07, 0x00,
+ 0x27, 0xa3, 0xfd, 0xa7,
+};
+static const unsigned char kat1081_nonce[] = {0};
+static const unsigned char kat1081_persstr[] = {0};
+static const unsigned char kat1081_addin0[] = {0};
+static const unsigned char kat1081_addin1[] = {0};
+static const unsigned char kat1081_retbits[] = {
+ 0xe5, 0x8a, 0xa7, 0xfa, 0x7f, 0x63, 0x9a, 0x9d, 0x14, 0xc6, 0x7a, 0xbe,
+ 0xb2, 0xca, 0x52, 0xdc, 0x04, 0xa0, 0x6e, 0x4c, 0xe8, 0xce, 0x18, 0xfc,
+ 0x71, 0x37, 0x5a, 0x1a, 0xa2, 0x17, 0xdb, 0x17, 0x26, 0x6f, 0xe0, 0xeb,
+ 0xe1, 0x5d, 0xc1, 0x3d, 0x35, 0x2a, 0xf0, 0x4d, 0x56, 0x8e, 0x80, 0xf3,
+ 0xba, 0x76, 0xde, 0x25, 0x7e, 0xc7, 0xba, 0xd0, 0xb1, 0x25, 0xa9, 0x1f,
+ 0xe1, 0x7e, 0x87, 0xd0,
+};
+static const struct drbg_kat_no_reseed kat1081_t = {
+ 0, kat1081_entropyin, kat1081_nonce, kat1081_persstr,
+ kat1081_addin0, kat1081_addin1, kat1081_retbits
+};
+static const struct drbg_kat kat1081 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1081_t
+};
+
+static const unsigned char kat1082_entropyin[] = {
+ 0x85, 0x2e, 0x1a, 0xd0, 0x7a, 0xa5, 0xd9, 0x77, 0xd7, 0x1e, 0xf3, 0x7a,
+ 0xc9, 0x35, 0x0e, 0xd7, 0x43, 0x53, 0x2a, 0x2d, 0xfe, 0xf5, 0xc4, 0xc6,
+ 0x96, 0xe6, 0x36, 0x31, 0x22, 0xf8, 0x4e, 0x13, 0xed, 0x1d, 0x7e, 0xa1,
+ 0xa1, 0xa0, 0x4c, 0xea,
+};
+static const unsigned char kat1082_nonce[] = {0};
+static const unsigned char kat1082_persstr[] = {0};
+static const unsigned char kat1082_addin0[] = {0};
+static const unsigned char kat1082_addin1[] = {0};
+static const unsigned char kat1082_retbits[] = {
+ 0x7e, 0x9a, 0x5c, 0xf9, 0x9a, 0xb4, 0xd4, 0x36, 0x04, 0x86, 0x39, 0xf5,
+ 0x4d, 0xb7, 0xde, 0x46, 0x7f, 0x04, 0x10, 0x7a, 0xaf, 0x2f, 0xd5, 0x82,
+ 0x43, 0xac, 0x57, 0x38, 0x21, 0x23, 0x6a, 0x81, 0xa0, 0x6e, 0x03, 0x07,
+ 0xd3, 0x45, 0x5e, 0xac, 0x6e, 0x69, 0x1b, 0xe8, 0x24, 0x3d, 0xbc, 0x83,
+ 0xbb, 0xf5, 0xd5, 0xbb, 0x13, 0x1e, 0x4c, 0x67, 0x31, 0x93, 0xba, 0xf0,
+ 0x93, 0x81, 0xf6, 0x3b,
+};
+static const struct drbg_kat_no_reseed kat1082_t = {
+ 1, kat1082_entropyin, kat1082_nonce, kat1082_persstr,
+ kat1082_addin0, kat1082_addin1, kat1082_retbits
+};
+static const struct drbg_kat kat1082 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1082_t
+};
+
+static const unsigned char kat1083_entropyin[] = {
+ 0x53, 0x13, 0x9b, 0x71, 0x1c, 0xd6, 0x29, 0x70, 0xb6, 0x12, 0x3d, 0xc4,
+ 0x09, 0x70, 0xf3, 0x0c, 0xd0, 0x3d, 0x98, 0x63, 0xe7, 0x8a, 0x3d, 0x05,
+ 0xeb, 0xc4, 0xd9, 0x3a, 0xfc, 0x92, 0xd6, 0x6c, 0x4e, 0x67, 0xb6, 0x15,
+ 0x12, 0x64, 0xf2, 0x2e,
+};
+static const unsigned char kat1083_nonce[] = {0};
+static const unsigned char kat1083_persstr[] = {0};
+static const unsigned char kat1083_addin0[] = {0};
+static const unsigned char kat1083_addin1[] = {0};
+static const unsigned char kat1083_retbits[] = {
+ 0xc1, 0x6d, 0x33, 0x7f, 0x97, 0xed, 0x4c, 0x44, 0x58, 0x68, 0xea, 0x0d,
+ 0x63, 0xae, 0xe5, 0xa7, 0xec, 0x74, 0x8a, 0x22, 0xf1, 0x6b, 0xa6, 0x11,
+ 0xe2, 0x2b, 0x9c, 0x03, 0x50, 0x67, 0x17, 0xa2, 0x9e, 0x00, 0xbb, 0x56,
+ 0xac, 0x86, 0x5e, 0xb1, 0x96, 0xe2, 0x87, 0x4b, 0xbc, 0xe6, 0x8e, 0x88,
+ 0x4e, 0xd9, 0x70, 0x23, 0xa0, 0xbd, 0x97, 0xcc, 0x3f, 0xb1, 0x17, 0xc9,
+ 0x1b, 0x55, 0xaa, 0xd6,
+};
+static const struct drbg_kat_no_reseed kat1083_t = {
+ 2, kat1083_entropyin, kat1083_nonce, kat1083_persstr,
+ kat1083_addin0, kat1083_addin1, kat1083_retbits
+};
+static const struct drbg_kat kat1083 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1083_t
+};
+
+static const unsigned char kat1084_entropyin[] = {
+ 0xc4, 0x27, 0xba, 0x92, 0xc6, 0xec, 0xbf, 0x09, 0xea, 0x50, 0x2b, 0x8b,
+ 0xdf, 0x5f, 0xcd, 0xe3, 0xdf, 0x79, 0xef, 0xcf, 0x80, 0xd0, 0x0d, 0x31,
+ 0x19, 0x7a, 0x48, 0xe3, 0x8d, 0xd1, 0xdb, 0x04, 0x3d, 0x44, 0xfe, 0x5b,
+ 0x1b, 0x53, 0x5e, 0x82,
+};
+static const unsigned char kat1084_nonce[] = {0};
+static const unsigned char kat1084_persstr[] = {0};
+static const unsigned char kat1084_addin0[] = {0};
+static const unsigned char kat1084_addin1[] = {0};
+static const unsigned char kat1084_retbits[] = {
+ 0xce, 0xca, 0x2b, 0x90, 0xc9, 0x42, 0x1b, 0x71, 0x6f, 0xe6, 0xab, 0xfd,
+ 0x08, 0x65, 0x79, 0x5c, 0xec, 0xc2, 0x07, 0xb7, 0xe4, 0x2e, 0xae, 0xf2,
+ 0xd9, 0xcd, 0x61, 0xec, 0x83, 0x3b, 0x94, 0x61, 0x51, 0x3a, 0x62, 0x0b,
+ 0x58, 0x08, 0x21, 0x6f, 0x78, 0x3b, 0x56, 0x45, 0x03, 0x2c, 0x00, 0xac,
+ 0x62, 0x75, 0xbc, 0xbe, 0x60, 0x9c, 0xaa, 0x31, 0x86, 0xb1, 0xd4, 0xa3,
+ 0x9d, 0x5a, 0x99, 0x02,
+};
+static const struct drbg_kat_no_reseed kat1084_t = {
+ 3, kat1084_entropyin, kat1084_nonce, kat1084_persstr,
+ kat1084_addin0, kat1084_addin1, kat1084_retbits
+};
+static const struct drbg_kat kat1084 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1084_t
+};
+
+static const unsigned char kat1085_entropyin[] = {
+ 0x08, 0x38, 0xfa, 0x42, 0x28, 0xcb, 0x87, 0xa5, 0xd2, 0x55, 0x6b, 0xe9,
+ 0x4c, 0x25, 0x7f, 0xfd, 0xb9, 0xbf, 0xa6, 0x52, 0x90, 0xdf, 0xf3, 0x3d,
+ 0x3b, 0x7f, 0xab, 0x98, 0x21, 0x68, 0x4a, 0xf1, 0x5a, 0x06, 0xc2, 0x83,
+ 0xf0, 0xdc, 0x3e, 0xc9,
+};
+static const unsigned char kat1085_nonce[] = {0};
+static const unsigned char kat1085_persstr[] = {0};
+static const unsigned char kat1085_addin0[] = {0};
+static const unsigned char kat1085_addin1[] = {0};
+static const unsigned char kat1085_retbits[] = {
+ 0xa1, 0x70, 0x04, 0xa3, 0xe6, 0x09, 0x21, 0x90, 0x72, 0x9d, 0x86, 0xd8,
+ 0xcd, 0xcb, 0xb9, 0xa9, 0xe8, 0xd5, 0x24, 0x5f, 0x23, 0x8f, 0xf6, 0x93,
+ 0xf6, 0x63, 0x37, 0xe4, 0xa7, 0xb1, 0x7a, 0xb8, 0xb1, 0x3c, 0xa1, 0x3c,
+ 0x69, 0x6f, 0xe4, 0x64, 0x55, 0x73, 0x81, 0x7e, 0x05, 0x40, 0xc5, 0xf4,
+ 0xe7, 0x4a, 0x4a, 0xde, 0x17, 0xe8, 0x1e, 0xd8, 0x12, 0xa5, 0x88, 0x21,
+ 0xcf, 0xdf, 0xb9, 0x00,
+};
+static const struct drbg_kat_no_reseed kat1085_t = {
+ 4, kat1085_entropyin, kat1085_nonce, kat1085_persstr,
+ kat1085_addin0, kat1085_addin1, kat1085_retbits
+};
+static const struct drbg_kat kat1085 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1085_t
+};
+
+static const unsigned char kat1086_entropyin[] = {
+ 0xd5, 0xf5, 0x0d, 0xc6, 0x70, 0x8b, 0xd3, 0x89, 0x97, 0x39, 0xcf, 0xdd,
+ 0xe9, 0x5d, 0x9f, 0x41, 0x44, 0xf9, 0x18, 0xe4, 0x93, 0x9a, 0x5d, 0x7a,
+ 0x28, 0x8f, 0x1b, 0x35, 0x73, 0x3d, 0x5a, 0x96, 0x88, 0x23, 0x96, 0x9f,
+ 0x3f, 0x42, 0x0f, 0xf0,
+};
+static const unsigned char kat1086_nonce[] = {0};
+static const unsigned char kat1086_persstr[] = {0};
+static const unsigned char kat1086_addin0[] = {0};
+static const unsigned char kat1086_addin1[] = {0};
+static const unsigned char kat1086_retbits[] = {
+ 0x6c, 0xea, 0x50, 0x6c, 0x3a, 0xe4, 0xf8, 0xfa, 0xd3, 0x6e, 0xdb, 0x01,
+ 0x8c, 0x26, 0x8e, 0x2d, 0x25, 0x4d, 0xe7, 0xfb, 0xbe, 0x32, 0xa5, 0x00,
+ 0xd4, 0x31, 0x35, 0x29, 0xdf, 0x16, 0x8f, 0x3d, 0x15, 0xc7, 0xcb, 0xd2,
+ 0xd9, 0x80, 0xee, 0x04, 0xd2, 0x95, 0x24, 0x22, 0x49, 0xc7, 0x19, 0xe8,
+ 0x0d, 0x4e, 0x55, 0xb4, 0x7f, 0x54, 0xe3, 0x14, 0x0b, 0x23, 0xe6, 0x1e,
+ 0xaa, 0xcc, 0x67, 0xb0,
+};
+static const struct drbg_kat_no_reseed kat1086_t = {
+ 5, kat1086_entropyin, kat1086_nonce, kat1086_persstr,
+ kat1086_addin0, kat1086_addin1, kat1086_retbits
+};
+static const struct drbg_kat kat1086 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1086_t
+};
+
+static const unsigned char kat1087_entropyin[] = {
+ 0x37, 0x18, 0x1f, 0xd5, 0x41, 0xda, 0x6c, 0x06, 0x78, 0xd0, 0x58, 0xf4,
+ 0x86, 0xdf, 0x84, 0x2b, 0x36, 0xb5, 0x68, 0x73, 0xa7, 0x08, 0x80, 0xae,
+ 0x4a, 0xf1, 0xcb, 0x58, 0x60, 0x23, 0xe2, 0x31, 0x04, 0x1d, 0xe0, 0x2e,
+ 0xf2, 0xa2, 0x92, 0x4b,
+};
+static const unsigned char kat1087_nonce[] = {0};
+static const unsigned char kat1087_persstr[] = {0};
+static const unsigned char kat1087_addin0[] = {0};
+static const unsigned char kat1087_addin1[] = {0};
+static const unsigned char kat1087_retbits[] = {
+ 0x72, 0x3b, 0x05, 0x21, 0xbb, 0x53, 0x48, 0xbf, 0x6e, 0xcc, 0xbd, 0xf0,
+ 0xa4, 0xd1, 0x6d, 0xec, 0xe4, 0x72, 0xa2, 0xbf, 0xfb, 0xf9, 0x05, 0x03,
+ 0x5e, 0x0e, 0x62, 0xad, 0x30, 0x4b, 0xbb, 0x07, 0xc5, 0x3a, 0xd4, 0x49,
+ 0x88, 0xc5, 0xc6, 0x53, 0x60, 0x30, 0x52, 0xf4, 0xd8, 0xd4, 0x41, 0xfa,
+ 0x88, 0x1d, 0x2d, 0xbf, 0xa6, 0x7b, 0x96, 0x8e, 0x77, 0xa4, 0x68, 0xf9,
+ 0xfb, 0x66, 0xf7, 0x8d,
+};
+static const struct drbg_kat_no_reseed kat1087_t = {
+ 6, kat1087_entropyin, kat1087_nonce, kat1087_persstr,
+ kat1087_addin0, kat1087_addin1, kat1087_retbits
+};
+static const struct drbg_kat kat1087 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1087_t
+};
+
+static const unsigned char kat1088_entropyin[] = {
+ 0x11, 0x8f, 0x6e, 0xa3, 0x24, 0x83, 0x13, 0x2a, 0x52, 0x59, 0xb8, 0x28,
+ 0xc0, 0xf2, 0x99, 0x9d, 0xcf, 0x3c, 0x24, 0xe5, 0x00, 0x12, 0xe9, 0xd6,
+ 0xa5, 0xca, 0x86, 0x6d, 0x15, 0x43, 0x1e, 0xc7, 0xd0, 0x9c, 0x35, 0xe2,
+ 0xcf, 0xe2, 0xbb, 0xd6,
+};
+static const unsigned char kat1088_nonce[] = {0};
+static const unsigned char kat1088_persstr[] = {0};
+static const unsigned char kat1088_addin0[] = {0};
+static const unsigned char kat1088_addin1[] = {0};
+static const unsigned char kat1088_retbits[] = {
+ 0xe9, 0x94, 0x06, 0x3d, 0x1a, 0x66, 0x83, 0xa2, 0x6e, 0x21, 0x3c, 0x6c,
+ 0x29, 0x08, 0xae, 0x89, 0x64, 0xa1, 0xe4, 0x94, 0x77, 0x9e, 0x30, 0xc9,
+ 0x77, 0xc9, 0xee, 0x7b, 0xed, 0x60, 0x44, 0x9f, 0xa3, 0xc2, 0x8c, 0xb3,
+ 0x0a, 0x92, 0xe7, 0xf2, 0x87, 0x71, 0xc6, 0xa6, 0x72, 0x78, 0x9c, 0xaa,
+ 0x73, 0x9f, 0x05, 0xb5, 0x81, 0xd7, 0x18, 0xd8, 0x64, 0xbd, 0x22, 0x02,
+ 0x8e, 0x41, 0x9e, 0xef,
+};
+static const struct drbg_kat_no_reseed kat1088_t = {
+ 7, kat1088_entropyin, kat1088_nonce, kat1088_persstr,
+ kat1088_addin0, kat1088_addin1, kat1088_retbits
+};
+static const struct drbg_kat kat1088 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1088_t
+};
+
+static const unsigned char kat1089_entropyin[] = {
+ 0xf1, 0x87, 0x49, 0x0e, 0xba, 0xec, 0x72, 0xe6, 0x85, 0x0a, 0xe2, 0xe8,
+ 0xe9, 0x40, 0xc0, 0x69, 0x04, 0x0f, 0x89, 0xe1, 0x9b, 0x4d, 0x91, 0x93,
+ 0xc2, 0x27, 0xa8, 0x1b, 0x98, 0xa4, 0xce, 0x4e, 0xd0, 0x0b, 0x2a, 0x3a,
+ 0x9e, 0xfd, 0x00, 0xb7,
+};
+static const unsigned char kat1089_nonce[] = {0};
+static const unsigned char kat1089_persstr[] = {0};
+static const unsigned char kat1089_addin0[] = {0};
+static const unsigned char kat1089_addin1[] = {0};
+static const unsigned char kat1089_retbits[] = {
+ 0xd6, 0x4c, 0x92, 0xc8, 0x64, 0xdc, 0x6f, 0x7c, 0xfe, 0xab, 0x50, 0x9b,
+ 0xd5, 0x1c, 0x73, 0x66, 0xab, 0x54, 0x68, 0x26, 0xa5, 0x31, 0xba, 0x31,
+ 0x51, 0x43, 0x91, 0xf1, 0x1d, 0x97, 0x60, 0xd4, 0x77, 0xc7, 0xec, 0x39,
+ 0x01, 0xc4, 0xd1, 0x54, 0x1a, 0x70, 0x3a, 0xdc, 0xc2, 0x52, 0x63, 0x25,
+ 0x7f, 0x3e, 0x5b, 0xbe, 0xca, 0xa5, 0x9b, 0x61, 0x8c, 0x1b, 0x4a, 0x1d,
+ 0xf8, 0x82, 0x06, 0x6b,
+};
+static const struct drbg_kat_no_reseed kat1089_t = {
+ 8, kat1089_entropyin, kat1089_nonce, kat1089_persstr,
+ kat1089_addin0, kat1089_addin1, kat1089_retbits
+};
+static const struct drbg_kat kat1089 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1089_t
+};
+
+static const unsigned char kat1090_entropyin[] = {
+ 0x9e, 0x26, 0x4d, 0x7e, 0xe3, 0x5b, 0x20, 0xfe, 0x27, 0x41, 0x16, 0x92,
+ 0x01, 0x32, 0x16, 0x7f, 0xd3, 0xb9, 0x5d, 0xdf, 0x6a, 0x2b, 0xf8, 0x36,
+ 0x89, 0x79, 0x99, 0xe8, 0x75, 0xa7, 0xdb, 0xb0, 0xac, 0x52, 0x02, 0xbf,
+ 0x45, 0x30, 0xc9, 0x2e,
+};
+static const unsigned char kat1090_nonce[] = {0};
+static const unsigned char kat1090_persstr[] = {0};
+static const unsigned char kat1090_addin0[] = {0};
+static const unsigned char kat1090_addin1[] = {0};
+static const unsigned char kat1090_retbits[] = {
+ 0x0f, 0x79, 0x82, 0xf5, 0x4e, 0x43, 0xab, 0xc5, 0x75, 0x11, 0x11, 0x4f,
+ 0x95, 0xd1, 0x03, 0xb7, 0xbd, 0xed, 0xf4, 0x11, 0x53, 0x64, 0x36, 0x0d,
+ 0x1c, 0x95, 0xdf, 0x04, 0xc4, 0xb4, 0x00, 0x83, 0x76, 0x74, 0xca, 0xe0,
+ 0x21, 0x2b, 0x77, 0x6c, 0x0b, 0xaa, 0x05, 0xd3, 0x42, 0x8d, 0x4f, 0xe3,
+ 0xfb, 0xa2, 0x8a, 0xab, 0x4f, 0xd3, 0x5a, 0x1e, 0x32, 0xfc, 0xc2, 0xb9,
+ 0x27, 0x8c, 0x11, 0xb0,
+};
+static const struct drbg_kat_no_reseed kat1090_t = {
+ 9, kat1090_entropyin, kat1090_nonce, kat1090_persstr,
+ kat1090_addin0, kat1090_addin1, kat1090_retbits
+};
+static const struct drbg_kat kat1090 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1090_t
+};
+
+static const unsigned char kat1091_entropyin[] = {
+ 0x21, 0x37, 0xf2, 0x91, 0xe5, 0x0f, 0xb5, 0xaa, 0x45, 0x9a, 0x2f, 0x00,
+ 0x17, 0xe1, 0x2f, 0x4d, 0x10, 0x7a, 0x03, 0x0a, 0x1f, 0x14, 0xff, 0x9a,
+ 0xc3, 0x30, 0x35, 0xd0, 0xcb, 0xba, 0xe0, 0xce, 0x79, 0x10, 0xfa, 0x7e,
+ 0x86, 0xd7, 0x0c, 0xff,
+};
+static const unsigned char kat1091_nonce[] = {0};
+static const unsigned char kat1091_persstr[] = {0};
+static const unsigned char kat1091_addin0[] = {0};
+static const unsigned char kat1091_addin1[] = {0};
+static const unsigned char kat1091_retbits[] = {
+ 0x6f, 0x78, 0x50, 0xa6, 0x76, 0x2e, 0xaf, 0x49, 0xbb, 0x93, 0xc1, 0x2f,
+ 0xd1, 0xf2, 0xb6, 0x2f, 0x24, 0xfd, 0x21, 0x7e, 0x0c, 0xb2, 0x9e, 0x73,
+ 0xac, 0x6e, 0x93, 0x20, 0xb5, 0x9c, 0x2c, 0xb5, 0xcd, 0x4b, 0x02, 0xa4,
+ 0xac, 0x99, 0xcb, 0xe6, 0x5e, 0x3a, 0x12, 0x2d, 0x69, 0xef, 0xd5, 0xa8,
+ 0x6f, 0x4d, 0xf4, 0x66, 0x68, 0xdb, 0xb8, 0x4b, 0x14, 0x50, 0x88, 0xec,
+ 0x72, 0x67, 0x1f, 0x32,
+};
+static const struct drbg_kat_no_reseed kat1091_t = {
+ 10, kat1091_entropyin, kat1091_nonce, kat1091_persstr,
+ kat1091_addin0, kat1091_addin1, kat1091_retbits
+};
+static const struct drbg_kat kat1091 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1091_t
+};
+
+static const unsigned char kat1092_entropyin[] = {
+ 0xc4, 0xe3, 0x4b, 0xeb, 0x50, 0x14, 0x3a, 0x19, 0x1d, 0x07, 0x5d, 0x2b,
+ 0x51, 0x0d, 0xdf, 0xd9, 0xf8, 0x07, 0xf4, 0x98, 0xf1, 0x86, 0x3c, 0x96,
+ 0xff, 0x08, 0xb4, 0x1b, 0x0c, 0xe2, 0x86, 0xc8, 0xf2, 0x18, 0x0a, 0xfe,
+ 0x8b, 0xbf, 0x97, 0x3e,
+};
+static const unsigned char kat1092_nonce[] = {0};
+static const unsigned char kat1092_persstr[] = {0};
+static const unsigned char kat1092_addin0[] = {0};
+static const unsigned char kat1092_addin1[] = {0};
+static const unsigned char kat1092_retbits[] = {
+ 0xe1, 0x9f, 0xbe, 0xe2, 0xe7, 0xe5, 0xed, 0x55, 0x3c, 0x40, 0x9e, 0x60,
+ 0x99, 0x8a, 0xa4, 0xcf, 0x6d, 0xe6, 0x55, 0x71, 0xa8, 0x78, 0x4c, 0x0c,
+ 0xda, 0xdc, 0x80, 0xde, 0x2f, 0x8b, 0x90, 0xa3, 0xa0, 0xb5, 0x21, 0x2c,
+ 0x8b, 0xaa, 0xaa, 0xb4, 0x1c, 0x95, 0x55, 0x4c, 0x4a, 0x61, 0x68, 0x85,
+ 0x19, 0xd7, 0x59, 0x76, 0x9c, 0xbd, 0x64, 0xf6, 0x41, 0x17, 0x3f, 0x51,
+ 0x34, 0x27, 0x15, 0xdf,
+};
+static const struct drbg_kat_no_reseed kat1092_t = {
+ 11, kat1092_entropyin, kat1092_nonce, kat1092_persstr,
+ kat1092_addin0, kat1092_addin1, kat1092_retbits
+};
+static const struct drbg_kat kat1092 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1092_t
+};
+
+static const unsigned char kat1093_entropyin[] = {
+ 0x5c, 0x3b, 0xa5, 0x23, 0x0b, 0xc7, 0x13, 0xc4, 0x91, 0xb7, 0xe1, 0x84,
+ 0x95, 0x50, 0xc3, 0x5c, 0x5e, 0x89, 0x25, 0xdd, 0xc0, 0x36, 0x40, 0x73,
+ 0x59, 0x66, 0xb1, 0x95, 0x42, 0x3d, 0x17, 0xbc, 0x73, 0xf7, 0x55, 0xde,
+ 0x48, 0x3e, 0xbf, 0x1f,
+};
+static const unsigned char kat1093_nonce[] = {0};
+static const unsigned char kat1093_persstr[] = {0};
+static const unsigned char kat1093_addin0[] = {0};
+static const unsigned char kat1093_addin1[] = {0};
+static const unsigned char kat1093_retbits[] = {
+ 0x15, 0x7d, 0xce, 0x31, 0x8c, 0x3e, 0x92, 0x81, 0x0d, 0x64, 0x34, 0xd0,
+ 0x2c, 0x43, 0xad, 0xc9, 0x27, 0xea, 0xc5, 0xc0, 0x58, 0x0d, 0x74, 0x44,
+ 0x36, 0x6a, 0x1a, 0x44, 0xdb, 0xe8, 0x65, 0xfb, 0x0a, 0xd0, 0x52, 0xfa,
+ 0xcd, 0x0c, 0x6c, 0x6d, 0x47, 0x51, 0x53, 0x47, 0x16, 0x30, 0xb3, 0x49,
+ 0x1b, 0x81, 0x8c, 0x34, 0x61, 0xde, 0x33, 0x62, 0x9a, 0x49, 0x15, 0xe6,
+ 0x0f, 0xe7, 0xc5, 0x59,
+};
+static const struct drbg_kat_no_reseed kat1093_t = {
+ 12, kat1093_entropyin, kat1093_nonce, kat1093_persstr,
+ kat1093_addin0, kat1093_addin1, kat1093_retbits
+};
+static const struct drbg_kat kat1093 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1093_t
+};
+
+static const unsigned char kat1094_entropyin[] = {
+ 0xe8, 0xc2, 0x4b, 0xa9, 0x2a, 0xb5, 0xd7, 0x39, 0xb9, 0xec, 0xad, 0xb9,
+ 0x50, 0x5a, 0xc5, 0x6c, 0xf5, 0x99, 0x0f, 0x14, 0x50, 0xe5, 0x6f, 0x4f,
+ 0xb3, 0x34, 0xf1, 0x15, 0xc1, 0x49, 0x48, 0xcb, 0x40, 0x4e, 0x54, 0x1a,
+ 0x37, 0xbf, 0xa6, 0xdc,
+};
+static const unsigned char kat1094_nonce[] = {0};
+static const unsigned char kat1094_persstr[] = {0};
+static const unsigned char kat1094_addin0[] = {0};
+static const unsigned char kat1094_addin1[] = {0};
+static const unsigned char kat1094_retbits[] = {
+ 0x2c, 0xb6, 0x51, 0x52, 0x4a, 0x6b, 0x09, 0x4c, 0x93, 0xe8, 0xd1, 0xca,
+ 0xf3, 0x3b, 0xef, 0x26, 0x9d, 0x26, 0x7e, 0xaa, 0xe0, 0x84, 0x9c, 0x35,
+ 0x9b, 0x52, 0xd3, 0x46, 0x40, 0xf1, 0x4a, 0xd4, 0xa7, 0xfe, 0x1c, 0x02,
+ 0x1f, 0xbc, 0xdc, 0xe6, 0x65, 0x0e, 0xb6, 0x16, 0xae, 0xc4, 0xa0, 0x57,
+ 0x39, 0xce, 0x3d, 0xd1, 0xd6, 0x5e, 0x9f, 0x46, 0x66, 0x57, 0x5e, 0x01,
+ 0x2c, 0x50, 0xf0, 0x85,
+};
+static const struct drbg_kat_no_reseed kat1094_t = {
+ 13, kat1094_entropyin, kat1094_nonce, kat1094_persstr,
+ kat1094_addin0, kat1094_addin1, kat1094_retbits
+};
+static const struct drbg_kat kat1094 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1094_t
+};
+
+static const unsigned char kat1095_entropyin[] = {
+ 0x68, 0x9f, 0x2f, 0x61, 0x67, 0x03, 0x60, 0x47, 0x2b, 0x24, 0xf8, 0xad,
+ 0x36, 0x0f, 0xe0, 0x8e, 0x24, 0x9b, 0x59, 0xec, 0x0c, 0xc4, 0x67, 0x5b,
+ 0x08, 0xac, 0x07, 0x93, 0xda, 0xe6, 0x95, 0x6d, 0xb8, 0xf6, 0x31, 0x08,
+ 0x57, 0x4e, 0xf0, 0xc2,
+};
+static const unsigned char kat1095_nonce[] = {0};
+static const unsigned char kat1095_persstr[] = {0};
+static const unsigned char kat1095_addin0[] = {0};
+static const unsigned char kat1095_addin1[] = {0};
+static const unsigned char kat1095_retbits[] = {
+ 0x08, 0x97, 0x85, 0x61, 0x29, 0xa4, 0x2d, 0x78, 0x5b, 0x60, 0xd7, 0x70,
+ 0x83, 0x6a, 0x68, 0x19, 0x8b, 0xc7, 0x6e, 0x29, 0x84, 0x0a, 0xbb, 0x08,
+ 0x02, 0xba, 0x9d, 0x47, 0x1a, 0xcf, 0x8b, 0x8b, 0xff, 0x3f, 0x02, 0xe1,
+ 0xa1, 0xc3, 0x40, 0x15, 0xad, 0x51, 0xce, 0x85, 0x96, 0x9b, 0x12, 0xea,
+ 0x65, 0x23, 0x6b, 0xc1, 0x2d, 0x34, 0x9c, 0x03, 0xf2, 0x03, 0x1f, 0xde,
+ 0x19, 0xcb, 0x22, 0xc2,
+};
+static const struct drbg_kat_no_reseed kat1095_t = {
+ 14, kat1095_entropyin, kat1095_nonce, kat1095_persstr,
+ kat1095_addin0, kat1095_addin1, kat1095_retbits
+};
+static const struct drbg_kat kat1095 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1095_t
+};
+
+static const unsigned char kat1096_entropyin[] = {
+ 0xbb, 0x15, 0x47, 0xeb, 0x67, 0x4b, 0x42, 0xdf, 0xd1, 0xa5, 0x62, 0x38,
+ 0xe8, 0x5f, 0x48, 0x30, 0x56, 0x8b, 0xcf, 0x63, 0x43, 0x80, 0xdf, 0xd0,
+ 0x46, 0xd9, 0xeb, 0x02, 0x9c, 0xaf, 0xe8, 0xe8, 0xb4, 0x5d, 0x9d, 0x7d,
+ 0xbe, 0x80, 0x2a, 0x5a,
+};
+static const unsigned char kat1096_nonce[] = {0};
+static const unsigned char kat1096_persstr[] = {0};
+static const unsigned char kat1096_addin0[] = {
+ 0x45, 0x2c, 0x84, 0x64, 0x47, 0x6e, 0x0f, 0x34, 0xf6, 0x7d, 0xd0, 0x10,
+ 0x8b, 0xa2, 0x02, 0x45, 0xd7, 0xb5, 0xe3, 0xd8, 0x2f, 0xdf, 0x95, 0x46,
+ 0x19, 0x02, 0x62, 0x29, 0x62, 0x43, 0x24, 0xf3, 0x19, 0xb1, 0x68, 0xf2,
+ 0xf4, 0x46, 0x31, 0x59,
+};
+static const unsigned char kat1096_addin1[] = {
+ 0xe5, 0x9a, 0x88, 0xdb, 0x5a, 0xc9, 0x14, 0x9b, 0xe7, 0x2f, 0xe0, 0xda,
+ 0x55, 0x03, 0x9c, 0xe2, 0xd0, 0x85, 0x97, 0x91, 0x6d, 0xa2, 0xc3, 0x5d,
+ 0x90, 0x0d, 0x9a, 0x6a, 0xde, 0x37, 0x23, 0xca, 0x2e, 0x43, 0x51, 0x07,
+ 0x99, 0xc1, 0x1f, 0xdc,
+};
+static const unsigned char kat1096_retbits[] = {
+ 0x42, 0x6f, 0x28, 0x62, 0x26, 0x06, 0x7a, 0x1d, 0xd0, 0xd2, 0x0e, 0x2a,
+ 0x04, 0x80, 0x20, 0xfc, 0x87, 0xb3, 0xbf, 0xd5, 0x50, 0x09, 0x3c, 0x90,
+ 0xf4, 0x9b, 0xd5, 0x23, 0x01, 0xe2, 0x3e, 0xc5, 0x29, 0xff, 0xe7, 0x34,
+ 0x9f, 0x7a, 0xb5, 0x13, 0x6b, 0xff, 0xbc, 0xfc, 0x29, 0x4a, 0x2a, 0x6d,
+ 0x5d, 0x45, 0x9d, 0x91, 0xaf, 0x89, 0x36, 0x7c, 0xd7, 0xf7, 0x0a, 0x6b,
+ 0xbc, 0x76, 0xb4, 0x00,
+};
+static const struct drbg_kat_no_reseed kat1096_t = {
+ 0, kat1096_entropyin, kat1096_nonce, kat1096_persstr,
+ kat1096_addin0, kat1096_addin1, kat1096_retbits
+};
+static const struct drbg_kat kat1096 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1096_t
+};
+
+static const unsigned char kat1097_entropyin[] = {
+ 0x54, 0x77, 0x42, 0xbf, 0x41, 0x98, 0x50, 0x5e, 0x52, 0x2a, 0x5e, 0x92,
+ 0xf4, 0x32, 0x87, 0x1c, 0x20, 0xa1, 0x69, 0xd0, 0xfb, 0x80, 0x9b, 0xbf,
+ 0x7c, 0xa3, 0x55, 0x3d, 0x31, 0x54, 0x6f, 0xaf, 0xbe, 0xc4, 0xc4, 0xdc,
+ 0x43, 0x46, 0x1e, 0x28,
+};
+static const unsigned char kat1097_nonce[] = {0};
+static const unsigned char kat1097_persstr[] = {0};
+static const unsigned char kat1097_addin0[] = {
+ 0x14, 0x16, 0xb9, 0xc0, 0xe4, 0x45, 0x98, 0x01, 0xb3, 0x9a, 0x8e, 0xbb,
+ 0xd1, 0x1b, 0x1c, 0xf7, 0xda, 0xe4, 0x24, 0x56, 0xcf, 0xca, 0x76, 0x88,
+ 0x59, 0x53, 0x0e, 0x35, 0xba, 0x9a, 0x95, 0xcc, 0xde, 0xa5, 0x64, 0x80,
+ 0x44, 0x6f, 0xac, 0x7d,
+};
+static const unsigned char kat1097_addin1[] = {
+ 0xab, 0x40, 0x90, 0x1b, 0x3a, 0xa3, 0xa3, 0xeb, 0xcc, 0xb0, 0x1e, 0xc6,
+ 0x0f, 0xd2, 0x34, 0x96, 0x22, 0x5e, 0xa5, 0xcd, 0x6d, 0x6c, 0x0a, 0x83,
+ 0x4b, 0xb8, 0x0d, 0x5e, 0x82, 0x2d, 0xec, 0xa0, 0x13, 0xca, 0x52, 0xaf,
+ 0x44, 0x86, 0x6f, 0x40,
+};
+static const unsigned char kat1097_retbits[] = {
+ 0x23, 0x26, 0x32, 0x42, 0x8a, 0x8b, 0xba, 0xbd, 0x61, 0x48, 0xea, 0x48,
+ 0xf1, 0xfe, 0x7e, 0xf9, 0xa3, 0x01, 0xcf, 0x39, 0xf5, 0xf4, 0x06, 0x80,
+ 0xbf, 0x84, 0x6e, 0x31, 0x92, 0xb2, 0xeb, 0x92, 0x24, 0x26, 0x2a, 0x01,
+ 0xdb, 0xbb, 0xc6, 0x63, 0x62, 0xce, 0x7c, 0x11, 0x69, 0x9e, 0x0f, 0xdd,
+ 0xca, 0xd5, 0x78, 0xf0, 0x61, 0x22, 0xa6, 0xd1, 0x93, 0x51, 0x6f, 0x6a,
+ 0x40, 0x30, 0xf2, 0xb5,
+};
+static const struct drbg_kat_no_reseed kat1097_t = {
+ 1, kat1097_entropyin, kat1097_nonce, kat1097_persstr,
+ kat1097_addin0, kat1097_addin1, kat1097_retbits
+};
+static const struct drbg_kat kat1097 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1097_t
+};
+
+static const unsigned char kat1098_entropyin[] = {
+ 0xe9, 0x9e, 0x0b, 0x8c, 0x29, 0xc3, 0x92, 0xd5, 0x96, 0x08, 0xb1, 0x7d,
+ 0xcb, 0x51, 0x68, 0xea, 0xe5, 0xc4, 0xe8, 0x2e, 0x0d, 0x13, 0xa1, 0x6e,
+ 0x68, 0xa5, 0x48, 0xdf, 0x41, 0xc5, 0x9e, 0xc0, 0x9b, 0xb2, 0xaf, 0x61,
+ 0x95, 0x73, 0xbf, 0x12,
+};
+static const unsigned char kat1098_nonce[] = {0};
+static const unsigned char kat1098_persstr[] = {0};
+static const unsigned char kat1098_addin0[] = {
+ 0xf5, 0x19, 0x91, 0xa5, 0x60, 0xbf, 0x08, 0x48, 0x95, 0x9d, 0xe7, 0x02,
+ 0x9a, 0x35, 0x7c, 0xc1, 0xcc, 0x88, 0xd5, 0x9c, 0x5e, 0x5b, 0x8d, 0xa8,
+ 0x24, 0x95, 0x43, 0xb8, 0xdf, 0xc0, 0xec, 0xa6, 0x8a, 0x39, 0x2f, 0x10,
+ 0xde, 0x8a, 0xea, 0x45,
+};
+static const unsigned char kat1098_addin1[] = {
+ 0xc2, 0xed, 0x95, 0x3d, 0xc9, 0x50, 0xfb, 0x8d, 0x66, 0x9f, 0x3a, 0x0d,
+ 0xea, 0xbc, 0x9f, 0x03, 0x62, 0x05, 0xce, 0x67, 0xbc, 0x43, 0xd9, 0x8a,
+ 0x35, 0xaf, 0x87, 0x51, 0x96, 0xa0, 0x40, 0xd8, 0xf2, 0x78, 0xb9, 0x79,
+ 0xf9, 0x06, 0x70, 0x71,
+};
+static const unsigned char kat1098_retbits[] = {
+ 0xad, 0x5e, 0xd9, 0x4b, 0x0d, 0xc5, 0x25, 0xf4, 0x0a, 0xaf, 0xa5, 0xf5,
+ 0xe9, 0x58, 0xfd, 0x78, 0x51, 0x0d, 0x8f, 0x50, 0x3e, 0x45, 0x16, 0xbc,
+ 0x96, 0x79, 0x06, 0xad, 0x3b, 0x32, 0x06, 0x6e, 0x02, 0x26, 0x2e, 0x49,
+ 0x90, 0xe6, 0xe1, 0x41, 0x7e, 0xd0, 0x21, 0xe4, 0x25, 0xc3, 0xc7, 0xda,
+ 0xa2, 0x60, 0x49, 0xce, 0x23, 0xcf, 0x28, 0xbb, 0xd3, 0x33, 0x4c, 0x6c,
+ 0x95, 0x24, 0xf0, 0x75,
+};
+static const struct drbg_kat_no_reseed kat1098_t = {
+ 2, kat1098_entropyin, kat1098_nonce, kat1098_persstr,
+ kat1098_addin0, kat1098_addin1, kat1098_retbits
+};
+static const struct drbg_kat kat1098 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1098_t
+};
+
+static const unsigned char kat1099_entropyin[] = {
+ 0x74, 0x27, 0x26, 0xfa, 0x37, 0xe1, 0x61, 0x6f, 0x66, 0x1f, 0x71, 0xca,
+ 0xe2, 0x59, 0xb6, 0xe5, 0x02, 0x5d, 0x7d, 0x9d, 0xfa, 0xf2, 0x39, 0x88,
+ 0x95, 0xec, 0x4b, 0xe2, 0x00, 0x40, 0xae, 0xad, 0x9a, 0x9a, 0x14, 0x2e,
+ 0x70, 0x2e, 0x9f, 0xfd,
+};
+static const unsigned char kat1099_nonce[] = {0};
+static const unsigned char kat1099_persstr[] = {0};
+static const unsigned char kat1099_addin0[] = {
+ 0x13, 0x43, 0x7a, 0xa4, 0x8e, 0x4a, 0xa3, 0x2d, 0x87, 0x5b, 0x7d, 0x5d,
+ 0xd0, 0xc9, 0x0e, 0x52, 0xcc, 0x39, 0x72, 0xc0, 0x66, 0x90, 0x59, 0xb6,
+ 0xa2, 0x3d, 0xd0, 0x47, 0x9d, 0x14, 0xb7, 0x77, 0x60, 0xb1, 0x49, 0xf4,
+ 0xff, 0xdc, 0xf3, 0xa8,
+};
+static const unsigned char kat1099_addin1[] = {
+ 0x94, 0x23, 0xca, 0xd2, 0x8e, 0x9a, 0x54, 0x8d, 0xed, 0x0b, 0x0b, 0xcd,
+ 0x04, 0xa6, 0xfc, 0x35, 0xbc, 0x4e, 0x6b, 0x03, 0x24, 0x0e, 0x2c, 0xc3,
+ 0x37, 0x54, 0x70, 0x2e, 0xce, 0x84, 0xca, 0xb9, 0xdf, 0xdd, 0xaa, 0xbd,
+ 0xf8, 0x83, 0x7a, 0x44,
+};
+static const unsigned char kat1099_retbits[] = {
+ 0x49, 0x6a, 0x31, 0x68, 0x8b, 0xea, 0xe1, 0x47, 0xd3, 0x20, 0xb7, 0xcf,
+ 0x5f, 0x70, 0x22, 0x6a, 0x76, 0x5c, 0x53, 0xe0, 0xc2, 0xe6, 0x0c, 0xb0,
+ 0x2b, 0xd0, 0xaa, 0xdf, 0xd3, 0x6b, 0x75, 0xdd, 0x8d, 0xe2, 0x18, 0x10,
+ 0xea, 0xa8, 0x6b, 0x7a, 0xdd, 0xfd, 0x86, 0x26, 0xa0, 0xb4, 0xa5, 0x47,
+ 0xe2, 0x1b, 0xef, 0xd2, 0x0e, 0x30, 0x1f, 0xf5, 0x99, 0x01, 0x3a, 0x95,
+ 0xf8, 0x26, 0xe7, 0x7b,
+};
+static const struct drbg_kat_no_reseed kat1099_t = {
+ 3, kat1099_entropyin, kat1099_nonce, kat1099_persstr,
+ kat1099_addin0, kat1099_addin1, kat1099_retbits
+};
+static const struct drbg_kat kat1099 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1099_t
+};
+
+static const unsigned char kat1100_entropyin[] = {
+ 0x34, 0xcb, 0xbb, 0xc0, 0xb0, 0xd1, 0x7d, 0xfa, 0x5b, 0xfa, 0x5c, 0x24,
+ 0xf4, 0xb5, 0x94, 0x65, 0x99, 0xd8, 0xad, 0x1c, 0x2a, 0x97, 0xcd, 0x55,
+ 0xd4, 0x67, 0x9e, 0xf0, 0xf2, 0x91, 0xbb, 0x12, 0xcb, 0x52, 0x8b, 0x54,
+ 0x13, 0x98, 0x34, 0xab,
+};
+static const unsigned char kat1100_nonce[] = {0};
+static const unsigned char kat1100_persstr[] = {0};
+static const unsigned char kat1100_addin0[] = {
+ 0x48, 0x20, 0x4f, 0xed, 0x9e, 0x52, 0xe2, 0x5c, 0x9d, 0x44, 0x23, 0x64,
+ 0x00, 0x71, 0x0a, 0x1b, 0xc4, 0x6c, 0x40, 0x2b, 0x68, 0x5f, 0x62, 0xbc,
+ 0x9f, 0x74, 0xc8, 0x14, 0x68, 0xbe, 0x4f, 0x16, 0xb7, 0x76, 0x09, 0xfa,
+ 0x2b, 0x26, 0x73, 0x81,
+};
+static const unsigned char kat1100_addin1[] = {
+ 0x40, 0xca, 0x82, 0x16, 0xb9, 0x9c, 0x04, 0x42, 0x82, 0xd7, 0xc4, 0x05,
+ 0x5f, 0x23, 0x90, 0x39, 0x43, 0xb4, 0xfc, 0xce, 0x60, 0xa5, 0x9c, 0x77,
+ 0xeb, 0xf6, 0x52, 0x6a, 0x50, 0x6d, 0x69, 0xe7, 0xaa, 0xe6, 0x67, 0x75,
+ 0x9f, 0x2c, 0xc4, 0xb3,
+};
+static const unsigned char kat1100_retbits[] = {
+ 0x05, 0xd0, 0x4f, 0x03, 0x97, 0x12, 0x32, 0x9e, 0xbc, 0x09, 0x56, 0x48,
+ 0x35, 0xc9, 0x58, 0x5b, 0x51, 0x04, 0x32, 0xa3, 0x13, 0x63, 0x41, 0xd0,
+ 0x4f, 0x9b, 0x8a, 0x46, 0xf1, 0xa4, 0xfe, 0x4b, 0xb0, 0x91, 0x54, 0x13,
+ 0x18, 0x36, 0x72, 0x81, 0x66, 0x5f, 0x63, 0xc1, 0x20, 0x63, 0xa3, 0xa9,
+ 0x1c, 0xa5, 0x31, 0x38, 0xb9, 0x75, 0x6b, 0x8d, 0x67, 0xa7, 0x7a, 0x35,
+ 0x82, 0x4e, 0x2b, 0xa7,
+};
+static const struct drbg_kat_no_reseed kat1100_t = {
+ 4, kat1100_entropyin, kat1100_nonce, kat1100_persstr,
+ kat1100_addin0, kat1100_addin1, kat1100_retbits
+};
+static const struct drbg_kat kat1100 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1100_t
+};
+
+static const unsigned char kat1101_entropyin[] = {
+ 0xc0, 0x56, 0x4c, 0xf0, 0xe8, 0x76, 0x34, 0xee, 0x0b, 0x78, 0x47, 0xf0,
+ 0x23, 0xaf, 0x21, 0xb3, 0xd3, 0xd4, 0x96, 0xea, 0x2e, 0x19, 0x38, 0x92,
+ 0x4f, 0xe7, 0xec, 0x42, 0x1f, 0x3a, 0xa1, 0x3a, 0xae, 0x27, 0x72, 0x08,
+ 0xdc, 0xa1, 0x40, 0x35,
+};
+static const unsigned char kat1101_nonce[] = {0};
+static const unsigned char kat1101_persstr[] = {0};
+static const unsigned char kat1101_addin0[] = {
+ 0xa0, 0xf9, 0x93, 0x6e, 0xe1, 0xe9, 0x26, 0x82, 0xfc, 0x43, 0x42, 0xae,
+ 0x23, 0x74, 0xaa, 0x25, 0x90, 0xcb, 0xe3, 0xc6, 0x24, 0x34, 0x2c, 0xac,
+ 0x01, 0xdd, 0x19, 0x6b, 0x48, 0x11, 0xb4, 0x47, 0xff, 0xb6, 0x94, 0xb3,
+ 0x07, 0x89, 0xf8, 0x23,
+};
+static const unsigned char kat1101_addin1[] = {
+ 0x6f, 0x94, 0xee, 0xec, 0x17, 0x61, 0xb8, 0x47, 0x80, 0x86, 0x6b, 0x40,
+ 0x32, 0x13, 0x94, 0x8c, 0xcd, 0x10, 0x65, 0x12, 0xb0, 0xbd, 0x09, 0xd2,
+ 0x10, 0xcc, 0x9c, 0x2d, 0x62, 0x20, 0x07, 0x2c, 0x32, 0xb0, 0x60, 0xf5,
+ 0x13, 0x64, 0x85, 0xb6,
+};
+static const unsigned char kat1101_retbits[] = {
+ 0xa0, 0xa8, 0x96, 0x18, 0x28, 0xde, 0xc5, 0x9b, 0x3b, 0x0f, 0x8b, 0x63,
+ 0x17, 0xd3, 0xd1, 0x72, 0x2e, 0xf7, 0x05, 0xaa, 0x32, 0x7f, 0x52, 0x49,
+ 0xeb, 0x69, 0x87, 0xe5, 0xdf, 0x07, 0xf1, 0xdf, 0x2d, 0x90, 0x51, 0xb3,
+ 0xe7, 0x23, 0x93, 0x52, 0x49, 0x0e, 0x01, 0xdd, 0x77, 0x8d, 0x01, 0x22,
+ 0xe1, 0x2e, 0x6e, 0x51, 0xab, 0x8c, 0xd0, 0xd9, 0x4c, 0x65, 0x24, 0xa2,
+ 0x58, 0x41, 0xad, 0x96,
+};
+static const struct drbg_kat_no_reseed kat1101_t = {
+ 5, kat1101_entropyin, kat1101_nonce, kat1101_persstr,
+ kat1101_addin0, kat1101_addin1, kat1101_retbits
+};
+static const struct drbg_kat kat1101 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1101_t
+};
+
+static const unsigned char kat1102_entropyin[] = {
+ 0xd0, 0xa3, 0x2b, 0x50, 0xab, 0x62, 0x7f, 0xbe, 0xe1, 0x61, 0xa5, 0x79,
+ 0xce, 0x3a, 0xbe, 0xbb, 0x2b, 0xb8, 0x80, 0xba, 0xf2, 0xd9, 0x58, 0xdf,
+ 0xe5, 0x2e, 0x3f, 0x3c, 0x15, 0xe2, 0x98, 0x43, 0x39, 0xf2, 0x8a, 0x53,
+ 0x83, 0x34, 0x75, 0x84,
+};
+static const unsigned char kat1102_nonce[] = {0};
+static const unsigned char kat1102_persstr[] = {0};
+static const unsigned char kat1102_addin0[] = {
+ 0x92, 0x0a, 0x6a, 0x0e, 0x74, 0xc9, 0xbc, 0x27, 0x5d, 0xee, 0x10, 0x18,
+ 0x98, 0x9e, 0x87, 0xcf, 0xd7, 0x03, 0xc3, 0x0f, 0x1b, 0x4b, 0x88, 0x92,
+ 0x33, 0x3e, 0x08, 0xf9, 0xfc, 0x50, 0xbe, 0x87, 0x4b, 0xca, 0x0a, 0x40,
+ 0xac, 0x2e, 0x3b, 0xe3,
+};
+static const unsigned char kat1102_addin1[] = {
+ 0x53, 0xd7, 0xb7, 0x17, 0x9f, 0x3a, 0x50, 0xf6, 0x27, 0xc5, 0xcc, 0x18,
+ 0x13, 0xd0, 0x4c, 0x81, 0x32, 0xcc, 0x92, 0xd9, 0x22, 0xd2, 0x1f, 0x60,
+ 0x7e, 0x41, 0xb6, 0x82, 0xd0, 0x10, 0x70, 0x26, 0x3d, 0xdb, 0x34, 0x72,
+ 0x1f, 0x87, 0x89, 0x46,
+};
+static const unsigned char kat1102_retbits[] = {
+ 0x3b, 0x74, 0x76, 0x6a, 0x5c, 0x88, 0x27, 0x76, 0xe7, 0xea, 0x62, 0x2b,
+ 0x06, 0x09, 0x6b, 0x81, 0x43, 0x97, 0x80, 0x02, 0x88, 0x3a, 0xaa, 0x64,
+ 0xa1, 0x8d, 0xe1, 0x59, 0x7e, 0x83, 0xa4, 0x40, 0x27, 0x16, 0x55, 0xc7,
+ 0x71, 0xcb, 0x71, 0x7e, 0x0f, 0x80, 0x4d, 0x7f, 0x6d, 0xfd, 0x88, 0x71,
+ 0x53, 0x07, 0x33, 0xcc, 0x55, 0xc8, 0xe2, 0x09, 0x47, 0xd7, 0x2a, 0xb3,
+ 0xa1, 0x5d, 0xa7, 0x89,
+};
+static const struct drbg_kat_no_reseed kat1102_t = {
+ 6, kat1102_entropyin, kat1102_nonce, kat1102_persstr,
+ kat1102_addin0, kat1102_addin1, kat1102_retbits
+};
+static const struct drbg_kat kat1102 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1102_t
+};
+
+static const unsigned char kat1103_entropyin[] = {
+ 0xb1, 0xd5, 0x93, 0xc0, 0xb0, 0x7d, 0x76, 0xc3, 0x34, 0x5e, 0x87, 0x84,
+ 0x29, 0xae, 0xaa, 0x60, 0x0e, 0x5c, 0x5a, 0x1e, 0xdd, 0xb3, 0x23, 0xd1,
+ 0x41, 0xb7, 0xa7, 0xa0, 0xfa, 0xa6, 0xd6, 0x93, 0x8b, 0x96, 0x63, 0x42,
+ 0x50, 0xd6, 0x27, 0x79,
+};
+static const unsigned char kat1103_nonce[] = {0};
+static const unsigned char kat1103_persstr[] = {0};
+static const unsigned char kat1103_addin0[] = {
+ 0xdc, 0x64, 0x1f, 0x51, 0xfc, 0x6c, 0x76, 0x2a, 0xa8, 0x91, 0xf1, 0xf6,
+ 0xd5, 0x60, 0x5c, 0xfe, 0x5a, 0xd0, 0x8c, 0x0c, 0xc8, 0xe7, 0x71, 0xda,
+ 0x25, 0x4f, 0x69, 0x12, 0x15, 0x98, 0xa3, 0x5d, 0xe6, 0x19, 0xf5, 0x27,
+ 0x03, 0xf1, 0x16, 0x72,
+};
+static const unsigned char kat1103_addin1[] = {
+ 0x48, 0xf2, 0x28, 0x6a, 0x84, 0xca, 0x06, 0x21, 0xb4, 0x58, 0x02, 0xe6,
+ 0x7b, 0x54, 0xa3, 0xa8, 0xe1, 0x8a, 0x64, 0x73, 0x13, 0xcd, 0x45, 0xe3,
+ 0xf0, 0x0c, 0xc9, 0x92, 0x41, 0x3b, 0xb0, 0x6c, 0xbb, 0x3d, 0x59, 0x8f,
+ 0x7e, 0xa3, 0xb9, 0x78,
+};
+static const unsigned char kat1103_retbits[] = {
+ 0xb2, 0x4f, 0xdf, 0x5b, 0x20, 0x4b, 0x8a, 0xe7, 0xc5, 0x9d, 0xae, 0x3e,
+ 0x9e, 0x77, 0x3b, 0xbc, 0x29, 0x27, 0x28, 0x98, 0x38, 0x05, 0xc8, 0x05,
+ 0x68, 0xe2, 0xbd, 0x85, 0xfe, 0x0e, 0x3d, 0x0a, 0x52, 0xef, 0xd9, 0xc4,
+ 0x31, 0x23, 0x6e, 0x32, 0xd2, 0x8b, 0x7c, 0x0d, 0x2f, 0x7e, 0x8b, 0x0b,
+ 0x92, 0xed, 0x51, 0x8f, 0x3a, 0x93, 0x30, 0x16, 0x2e, 0xa3, 0xac, 0xf9,
+ 0x73, 0xf7, 0xec, 0x6d,
+};
+static const struct drbg_kat_no_reseed kat1103_t = {
+ 7, kat1103_entropyin, kat1103_nonce, kat1103_persstr,
+ kat1103_addin0, kat1103_addin1, kat1103_retbits
+};
+static const struct drbg_kat kat1103 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1103_t
+};
+
+static const unsigned char kat1104_entropyin[] = {
+ 0x65, 0xbb, 0xe4, 0x0f, 0x73, 0x83, 0xcc, 0x24, 0x65, 0x9c, 0x02, 0xd2,
+ 0x2f, 0x8c, 0xb6, 0x29, 0x7d, 0x85, 0x93, 0xd5, 0x16, 0x88, 0xea, 0xed,
+ 0xcd, 0x85, 0xbc, 0x59, 0xd9, 0x55, 0x2d, 0x7e, 0x7a, 0x00, 0xdb, 0x3b,
+ 0xb7, 0xff, 0x09, 0x1b,
+};
+static const unsigned char kat1104_nonce[] = {0};
+static const unsigned char kat1104_persstr[] = {0};
+static const unsigned char kat1104_addin0[] = {
+ 0x7a, 0x51, 0xee, 0x23, 0x2f, 0xa7, 0x78, 0x20, 0x41, 0xc0, 0xb5, 0xc5,
+ 0x8e, 0x43, 0xd7, 0x75, 0x4d, 0xe3, 0x5d, 0x51, 0xec, 0xa8, 0x77, 0x9b,
+ 0x88, 0x9d, 0x97, 0x04, 0xca, 0x7a, 0xd8, 0x8f, 0x08, 0x5e, 0x2b, 0xe4,
+ 0x91, 0xf7, 0xc3, 0x31,
+};
+static const unsigned char kat1104_addin1[] = {
+ 0xa2, 0x2d, 0x84, 0xc0, 0x28, 0x37, 0x43, 0x4f, 0xef, 0x33, 0xe6, 0x08,
+ 0x45, 0x57, 0x8e, 0x88, 0x14, 0xa9, 0x79, 0xee, 0x49, 0x3d, 0xaa, 0xba,
+ 0xca, 0xd8, 0x82, 0x03, 0xdf, 0xa0, 0x5b, 0x8e, 0x03, 0xb6, 0xa3, 0xff,
+ 0x51, 0x18, 0x09, 0x83,
+};
+static const unsigned char kat1104_retbits[] = {
+ 0x0b, 0x12, 0x9a, 0x15, 0x02, 0x17, 0xca, 0xcc, 0x25, 0x15, 0xde, 0x01,
+ 0xa7, 0xd5, 0xf7, 0xa9, 0xdc, 0xb7, 0x64, 0xbd, 0x2f, 0x57, 0x95, 0x83,
+ 0x37, 0x2d, 0x37, 0x3e, 0x7f, 0xe9, 0x1e, 0xc5, 0xc8, 0xcb, 0xb2, 0xf0,
+ 0x1c, 0xcd, 0x07, 0xf3, 0x27, 0x76, 0x83, 0x00, 0xb8, 0xb7, 0x53, 0x92,
+ 0xd0, 0x5b, 0xd8, 0xa4, 0x11, 0x27, 0xbe, 0xe1, 0x93, 0xbe, 0x2e, 0xba,
+ 0xbb, 0xe2, 0xf6, 0x92,
+};
+static const struct drbg_kat_no_reseed kat1104_t = {
+ 8, kat1104_entropyin, kat1104_nonce, kat1104_persstr,
+ kat1104_addin0, kat1104_addin1, kat1104_retbits
+};
+static const struct drbg_kat kat1104 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1104_t
+};
+
+static const unsigned char kat1105_entropyin[] = {
+ 0x47, 0xf2, 0x94, 0x17, 0xb0, 0x7b, 0x4a, 0x21, 0xf8, 0xa9, 0x0c, 0x4d,
+ 0x32, 0x40, 0x81, 0x00, 0xbd, 0xac, 0x0d, 0x21, 0xc9, 0x38, 0xc4, 0x4f,
+ 0x4f, 0x2d, 0x03, 0x65, 0x06, 0x47, 0xef, 0x6d, 0xea, 0x50, 0x11, 0xa1,
+ 0x99, 0xba, 0x12, 0x79,
+};
+static const unsigned char kat1105_nonce[] = {0};
+static const unsigned char kat1105_persstr[] = {0};
+static const unsigned char kat1105_addin0[] = {
+ 0x9f, 0x67, 0x2d, 0xdf, 0x59, 0xd1, 0xf1, 0x1f, 0x95, 0x50, 0xc3, 0x9d,
+ 0xa5, 0xcc, 0x6c, 0x3d, 0x78, 0x79, 0xd5, 0xa6, 0x1d, 0x90, 0x16, 0x3b,
+ 0x6d, 0xa9, 0xf8, 0x17, 0x09, 0xe1, 0xde, 0x6d, 0xf5, 0x0d, 0x46, 0x05,
+ 0x7c, 0x27, 0xf8, 0xd0,
+};
+static const unsigned char kat1105_addin1[] = {
+ 0xa0, 0x08, 0x31, 0x14, 0x50, 0x49, 0x55, 0xae, 0x43, 0xe7, 0x9a, 0x31,
+ 0xf1, 0x9c, 0x6b, 0xce, 0xe6, 0x1c, 0x66, 0x14, 0xf9, 0x90, 0xbc, 0xab,
+ 0xba, 0xc2, 0x05, 0x9f, 0x21, 0x40, 0xf7, 0x02, 0xc5, 0x6c, 0x23, 0xe9,
+ 0x04, 0x79, 0x8a, 0xca,
+};
+static const unsigned char kat1105_retbits[] = {
+ 0x5e, 0xda, 0xfa, 0xb7, 0x17, 0xdf, 0xee, 0x41, 0xbf, 0xde, 0xf1, 0x24,
+ 0x60, 0x7f, 0x4c, 0x9e, 0xe4, 0x50, 0xe0, 0xeb, 0xd4, 0x77, 0xb0, 0xb3,
+ 0x6f, 0xdf, 0xb1, 0x7a, 0xaf, 0x8d, 0x18, 0x94, 0x8f, 0x37, 0x7a, 0x94,
+ 0xf5, 0xc8, 0x78, 0xa6, 0x04, 0x6d, 0x4d, 0xcf, 0xbc, 0x78, 0xe7, 0x88,
+ 0xdc, 0x25, 0xff, 0xd1, 0x62, 0x3e, 0xdf, 0xcb, 0x03, 0x8f, 0xbe, 0x35,
+ 0xd8, 0xe1, 0x63, 0xa3,
+};
+static const struct drbg_kat_no_reseed kat1105_t = {
+ 9, kat1105_entropyin, kat1105_nonce, kat1105_persstr,
+ kat1105_addin0, kat1105_addin1, kat1105_retbits
+};
+static const struct drbg_kat kat1105 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1105_t
+};
+
+static const unsigned char kat1106_entropyin[] = {
+ 0xe3, 0x15, 0xb3, 0xb2, 0x7d, 0xec, 0x3b, 0x59, 0xc2, 0x6d, 0x9c, 0x1c,
+ 0xe4, 0x22, 0x14, 0x6b, 0x20, 0x62, 0x1e, 0x5d, 0x67, 0x74, 0x9a, 0x7f,
+ 0xa0, 0x86, 0x19, 0x79, 0x7f, 0xd4, 0xde, 0x0e, 0xe5, 0x32, 0x83, 0xa7,
+ 0x2a, 0x9c, 0x65, 0x5f,
+};
+static const unsigned char kat1106_nonce[] = {0};
+static const unsigned char kat1106_persstr[] = {0};
+static const unsigned char kat1106_addin0[] = {
+ 0x5d, 0x3c, 0x0e, 0xc0, 0xa2, 0x34, 0x4f, 0x72, 0x57, 0x4e, 0x62, 0x07,
+ 0x9d, 0x60, 0x51, 0x68, 0x73, 0x9d, 0x37, 0xe9, 0xa2, 0xeb, 0x9e, 0x44,
+ 0xd3, 0xd7, 0xe4, 0x66, 0x90, 0x39, 0x21, 0x9a, 0x25, 0xce, 0x58, 0x96,
+ 0x5d, 0xdb, 0x1a, 0xc3,
+};
+static const unsigned char kat1106_addin1[] = {
+ 0xe2, 0x2f, 0x87, 0xe9, 0x99, 0x77, 0x46, 0x8e, 0x23, 0x12, 0x6e, 0x52,
+ 0x80, 0xa7, 0x75, 0x06, 0xa9, 0x90, 0x3c, 0xc4, 0x2f, 0xb3, 0x6c, 0x00,
+ 0x4e, 0x67, 0xd1, 0xa7, 0x23, 0xc8, 0xfb, 0xc8, 0x9c, 0x30, 0xbb, 0xc7,
+ 0x4f, 0x2b, 0x59, 0xa4,
+};
+static const unsigned char kat1106_retbits[] = {
+ 0xd0, 0xf8, 0xfa, 0xa5, 0x52, 0x99, 0x68, 0x52, 0x74, 0xba, 0x49, 0x9d,
+ 0xe5, 0xbc, 0xaf, 0x58, 0x19, 0xdc, 0x9a, 0x5e, 0xe4, 0x0e, 0x89, 0xe9,
+ 0x41, 0x08, 0x2e, 0xd1, 0x02, 0xc6, 0x34, 0x30, 0x27, 0x4d, 0xfc, 0x60,
+ 0xf2, 0xdc, 0x25, 0xf8, 0x04, 0x95, 0x8a, 0xf5, 0xa3, 0xdc, 0x95, 0x57,
+ 0x6e, 0x11, 0x9c, 0x6d, 0xc3, 0x59, 0xba, 0xe7, 0x3b, 0xde, 0x1d, 0x2e,
+ 0x2b, 0xf4, 0x4f, 0xce,
+};
+static const struct drbg_kat_no_reseed kat1106_t = {
+ 10, kat1106_entropyin, kat1106_nonce, kat1106_persstr,
+ kat1106_addin0, kat1106_addin1, kat1106_retbits
+};
+static const struct drbg_kat kat1106 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1106_t
+};
+
+static const unsigned char kat1107_entropyin[] = {
+ 0x9b, 0x6f, 0xd5, 0x98, 0x50, 0x63, 0x60, 0x11, 0x9d, 0xd1, 0xcc, 0x9d,
+ 0xd9, 0xe0, 0x66, 0x3d, 0xa1, 0x5c, 0xa6, 0x01, 0x5b, 0x17, 0x26, 0x9c,
+ 0x6a, 0x38, 0x5c, 0xa1, 0x22, 0xa9, 0x85, 0x46, 0x00, 0xb8, 0x1d, 0x59,
+ 0x8a, 0xe2, 0xec, 0x9c,
+};
+static const unsigned char kat1107_nonce[] = {0};
+static const unsigned char kat1107_persstr[] = {0};
+static const unsigned char kat1107_addin0[] = {
+ 0x4a, 0xd6, 0x87, 0xbf, 0x39, 0x63, 0x54, 0x5b, 0xd5, 0x77, 0x80, 0x0d,
+ 0x11, 0xc0, 0x8a, 0x3e, 0xb0, 0x68, 0x64, 0x30, 0x6a, 0x07, 0xc3, 0xe1,
+ 0x60, 0x5d, 0x3b, 0xf0, 0x9e, 0x61, 0xf1, 0xcb, 0xdb, 0x66, 0x88, 0x56,
+ 0xdd, 0x56, 0xcd, 0xc3,
+};
+static const unsigned char kat1107_addin1[] = {
+ 0x9c, 0x6e, 0x72, 0xd6, 0xfb, 0x4d, 0x33, 0x9a, 0xbd, 0xfa, 0x0f, 0x78,
+ 0xdf, 0xf2, 0x59, 0xc2, 0x5f, 0x79, 0x71, 0x2c, 0x86, 0x43, 0xaf, 0xe3,
+ 0x74, 0x60, 0xa3, 0x5d, 0xc8, 0x40, 0x1d, 0x11, 0x27, 0x3c, 0x64, 0xb9,
+ 0x13, 0x0e, 0xbe, 0x85,
+};
+static const unsigned char kat1107_retbits[] = {
+ 0x51, 0x64, 0xf5, 0xf3, 0xc4, 0xab, 0x12, 0x2d, 0xd2, 0xd8, 0xb6, 0xfa,
+ 0x24, 0x6d, 0xbf, 0x1e, 0xb2, 0x5b, 0x12, 0x04, 0x3a, 0x0f, 0x7a, 0x66,
+ 0xe8, 0x11, 0xf4, 0xbc, 0x55, 0x58, 0x2a, 0x31, 0x37, 0xa8, 0x39, 0x4b,
+ 0xfa, 0x05, 0xe8, 0xa5, 0x3d, 0x3c, 0x89, 0xe5, 0x6f, 0x77, 0xf7, 0x32,
+ 0x1d, 0x4a, 0x75, 0x72, 0xbd, 0x2e, 0xbf, 0x08, 0x86, 0xbe, 0xbc, 0xd0,
+ 0x1b, 0xce, 0x30, 0x31,
+};
+static const struct drbg_kat_no_reseed kat1107_t = {
+ 11, kat1107_entropyin, kat1107_nonce, kat1107_persstr,
+ kat1107_addin0, kat1107_addin1, kat1107_retbits
+};
+static const struct drbg_kat kat1107 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1107_t
+};
+
+static const unsigned char kat1108_entropyin[] = {
+ 0xd8, 0x76, 0x88, 0x96, 0x24, 0xfa, 0x9e, 0x06, 0x52, 0x16, 0x1d, 0x37,
+ 0xa7, 0x5f, 0xd9, 0x33, 0xfa, 0x98, 0x19, 0x23, 0xd1, 0x6b, 0xbf, 0x3f,
+ 0x2a, 0x54, 0xea, 0x0f, 0x60, 0x05, 0x21, 0x0e, 0xf4, 0x38, 0xd3, 0x6f,
+ 0xea, 0xc1, 0x0d, 0x99,
+};
+static const unsigned char kat1108_nonce[] = {0};
+static const unsigned char kat1108_persstr[] = {0};
+static const unsigned char kat1108_addin0[] = {
+ 0xe7, 0x26, 0x58, 0x27, 0x62, 0x05, 0x33, 0x15, 0xae, 0x88, 0x65, 0x02,
+ 0x12, 0xb3, 0xdc, 0x83, 0x25, 0x02, 0x05, 0x94, 0xeb, 0xa0, 0xc5, 0x62,
+ 0xf3, 0x4a, 0xbb, 0x81, 0x1c, 0x8c, 0x27, 0x2f, 0xd1, 0x0f, 0x25, 0x47,
+ 0x39, 0xff, 0x2f, 0x33,
+};
+static const unsigned char kat1108_addin1[] = {
+ 0x6d, 0xb3, 0x00, 0xb3, 0x6d, 0x44, 0xcc, 0x2d, 0x5d, 0x7e, 0x9f, 0xfc,
+ 0x1c, 0x8f, 0xb8, 0xda, 0x01, 0x7f, 0x66, 0xf7, 0xd5, 0xf4, 0x15, 0xa6,
+ 0xbf, 0x66, 0xfb, 0x1d, 0x37, 0x72, 0xb5, 0xad, 0xbd, 0x4b, 0xcc, 0x7b,
+ 0xe7, 0x7b, 0x6a, 0x4c,
+};
+static const unsigned char kat1108_retbits[] = {
+ 0x37, 0xdc, 0xd8, 0x3c, 0xa5, 0xd4, 0x95, 0xe6, 0x32, 0xe7, 0xb0, 0x11,
+ 0xba, 0x80, 0xbb, 0xf3, 0x53, 0xff, 0x55, 0x22, 0x63, 0x2f, 0x73, 0x33,
+ 0xe8, 0x02, 0xd4, 0xce, 0x27, 0xc9, 0x17, 0x0f, 0x82, 0x39, 0xc9, 0x48,
+ 0x60, 0xf8, 0x11, 0xea, 0xfd, 0x0e, 0xe4, 0x4d, 0x50, 0x43, 0x72, 0x3a,
+ 0x15, 0xee, 0xd2, 0xb6, 0x24, 0x26, 0xaf, 0xb8, 0x93, 0xca, 0xaa, 0xde,
+ 0x08, 0x76, 0x2f, 0xb5,
+};
+static const struct drbg_kat_no_reseed kat1108_t = {
+ 12, kat1108_entropyin, kat1108_nonce, kat1108_persstr,
+ kat1108_addin0, kat1108_addin1, kat1108_retbits
+};
+static const struct drbg_kat kat1108 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1108_t
+};
+
+static const unsigned char kat1109_entropyin[] = {
+ 0x29, 0xcc, 0xe7, 0x0c, 0x6c, 0x9e, 0xc1, 0x9b, 0xe2, 0xad, 0x29, 0x55,
+ 0xc0, 0xd8, 0xf0, 0x27, 0xdc, 0x4d, 0x25, 0xd5, 0xfe, 0x4f, 0x66, 0xc4,
+ 0x64, 0x27, 0x23, 0x47, 0xf7, 0xb2, 0x2b, 0x83, 0x25, 0x2a, 0x91, 0xf0,
+ 0x37, 0xb6, 0x6a, 0x6b,
+};
+static const unsigned char kat1109_nonce[] = {0};
+static const unsigned char kat1109_persstr[] = {0};
+static const unsigned char kat1109_addin0[] = {
+ 0xb6, 0x1a, 0xad, 0x7e, 0x7c, 0x4d, 0x3d, 0x83, 0xdf, 0x69, 0x20, 0x7e,
+ 0x5b, 0xa7, 0x5b, 0x5c, 0xd2, 0x68, 0xcb, 0x4b, 0x7b, 0xe5, 0x2b, 0x76,
+ 0x00, 0x8f, 0xc8, 0x89, 0x4e, 0xb0, 0x79, 0xdb, 0x4b, 0x4c, 0x0b, 0x3a,
+ 0x5a, 0x07, 0xf4, 0x09,
+};
+static const unsigned char kat1109_addin1[] = {
+ 0x8a, 0xe0, 0xb1, 0x7a, 0x28, 0x70, 0x11, 0x92, 0xef, 0xbc, 0x60, 0xb3,
+ 0x75, 0x5f, 0x34, 0xdc, 0xc8, 0xca, 0x8d, 0x47, 0xd3, 0x5e, 0x71, 0x48,
+ 0xe2, 0xe9, 0x2a, 0x64, 0x94, 0x4e, 0xd2, 0xfa, 0xe6, 0x70, 0xe5, 0x7d,
+ 0x90, 0xaa, 0x2e, 0x81,
+};
+static const unsigned char kat1109_retbits[] = {
+ 0x37, 0x31, 0x04, 0x1d, 0x50, 0x1f, 0x71, 0xb9, 0x83, 0x10, 0x5e, 0x48,
+ 0xa0, 0xfc, 0x60, 0x40, 0x41, 0xb5, 0x7f, 0xc4, 0x1f, 0x07, 0xff, 0xa6,
+ 0xa6, 0xc8, 0x88, 0x10, 0x38, 0x82, 0x9c, 0xb3, 0x2a, 0x96, 0x2f, 0x96,
+ 0x11, 0x0d, 0xbf, 0x5e, 0x18, 0x0a, 0x28, 0x4e, 0xf6, 0xa5, 0xfe, 0x7a,
+ 0x12, 0xa5, 0x38, 0x1c, 0x6e, 0xdb, 0x57, 0xb0, 0xd9, 0xb6, 0xf6, 0xef,
+ 0xe8, 0x0a, 0x51, 0xa4,
+};
+static const struct drbg_kat_no_reseed kat1109_t = {
+ 13, kat1109_entropyin, kat1109_nonce, kat1109_persstr,
+ kat1109_addin0, kat1109_addin1, kat1109_retbits
+};
+static const struct drbg_kat kat1109 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1109_t
+};
+
+static const unsigned char kat1110_entropyin[] = {
+ 0xd5, 0x5f, 0x35, 0xb4, 0xd2, 0xa0, 0xb5, 0x25, 0xfe, 0xe7, 0x4a, 0xef,
+ 0xbc, 0x3c, 0x00, 0x1c, 0xba, 0x7e, 0x4c, 0x3e, 0xe4, 0x7c, 0x5a, 0x0f,
+ 0x03, 0xa1, 0x55, 0xa0, 0x04, 0x79, 0xc0, 0x81, 0x56, 0x19, 0x0a, 0x00,
+ 0x1f, 0xe6, 0x92, 0x8d,
+};
+static const unsigned char kat1110_nonce[] = {0};
+static const unsigned char kat1110_persstr[] = {0};
+static const unsigned char kat1110_addin0[] = {
+ 0xa0, 0xc8, 0xfb, 0x5b, 0xc6, 0x32, 0xce, 0xc6, 0xf7, 0xf7, 0xa3, 0x85,
+ 0x58, 0x7f, 0x27, 0xee, 0x3e, 0xf3, 0xdf, 0xeb, 0x5a, 0xa1, 0x3d, 0x97,
+ 0x80, 0x49, 0xc3, 0xd4, 0xa8, 0xe2, 0xff, 0x9b, 0xd3, 0x6d, 0x0e, 0xac,
+ 0xdf, 0x50, 0x29, 0xb8,
+};
+static const unsigned char kat1110_addin1[] = {
+ 0xd2, 0xc1, 0xec, 0x49, 0xb1, 0xb0, 0xf8, 0x10, 0xae, 0x9a, 0x71, 0xfe,
+ 0x5d, 0x93, 0xff, 0xa4, 0x00, 0x4e, 0x05, 0xcf, 0x8f, 0xfb, 0x1e, 0x1e,
+ 0xac, 0xc1, 0x46, 0xc3, 0x7b, 0x3a, 0xf5, 0x25, 0x8b, 0x4e, 0x46, 0x22,
+ 0x2c, 0xf3, 0x39, 0x14,
+};
+static const unsigned char kat1110_retbits[] = {
+ 0xf3, 0xef, 0x4c, 0x19, 0x2e, 0x85, 0xdc, 0xcd, 0x2d, 0xf5, 0xb1, 0xc5,
+ 0xf7, 0x91, 0xda, 0xca, 0x65, 0x36, 0x3d, 0x5f, 0x79, 0xbd, 0x49, 0x0b,
+ 0x7d, 0x92, 0x32, 0xb1, 0x9c, 0x60, 0x59, 0xaa, 0xeb, 0xc4, 0x94, 0xde,
+ 0xa3, 0x61, 0x52, 0x95, 0xf4, 0x07, 0xae, 0xc1, 0xaf, 0x3b, 0x86, 0x7a,
+ 0x6d, 0x94, 0xab, 0xdc, 0xc4, 0x1f, 0x68, 0xd2, 0xd9, 0xaf, 0xbe, 0xe1,
+ 0x96, 0x47, 0xf7, 0x48,
+};
+static const struct drbg_kat_no_reseed kat1110_t = {
+ 14, kat1110_entropyin, kat1110_nonce, kat1110_persstr,
+ kat1110_addin0, kat1110_addin1, kat1110_retbits
+};
+static const struct drbg_kat kat1110 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1110_t
+};
+
+static const unsigned char kat1111_entropyin[] = {
+ 0x73, 0xbc, 0x77, 0xfa, 0xae, 0x57, 0x5f, 0x53, 0x00, 0x91, 0x72, 0x66,
+ 0x95, 0xa1, 0x0f, 0xa8, 0xf3, 0x76, 0xdf, 0x07, 0x22, 0xd5, 0x6a, 0xe5,
+ 0xa2, 0xe9, 0xd7, 0xaf, 0x20, 0xbf, 0x52, 0xe8, 0x64, 0x97, 0x76, 0x1a,
+ 0xa9, 0x47, 0xcc, 0x04,
+};
+static const unsigned char kat1111_nonce[] = {0};
+static const unsigned char kat1111_persstr[] = {
+ 0xc2, 0xd2, 0x78, 0xf6, 0xbb, 0x39, 0xd3, 0x44, 0x52, 0xaf, 0xe6, 0xa7,
+ 0xbb, 0xf5, 0x9c, 0x8e, 0xff, 0xc7, 0xeb, 0xbb, 0x9b, 0x45, 0xc1, 0x29,
+ 0x59, 0x0a, 0x23, 0x7a, 0x74, 0x37, 0x54, 0x2a, 0x4c, 0x72, 0xd6, 0xcf,
+ 0xfb, 0x3f, 0x80, 0x40,
+};
+static const unsigned char kat1111_addin0[] = {0};
+static const unsigned char kat1111_addin1[] = {0};
+static const unsigned char kat1111_retbits[] = {
+ 0x41, 0x2d, 0x61, 0x65, 0xd5, 0x34, 0x6b, 0xd5, 0xbf, 0xa0, 0x19, 0xcf,
+ 0x25, 0x77, 0x39, 0x87, 0xd2, 0x7c, 0x9a, 0x6e, 0x6a, 0xd2, 0x67, 0x47,
+ 0xaa, 0x73, 0x6c, 0xc0, 0xdb, 0xcb, 0xeb, 0xff, 0x6a, 0x16, 0xde, 0x02,
+ 0x6b, 0xd4, 0x24, 0x9e, 0x69, 0xf0, 0x02, 0x8e, 0x2b, 0x7e, 0x0a, 0x7d,
+ 0x0d, 0x0e, 0x43, 0x8b, 0x3d, 0x6d, 0xe2, 0x7f, 0xf6, 0x67, 0x53, 0x99,
+ 0x8b, 0x5c, 0x33, 0x4b,
+};
+static const struct drbg_kat_no_reseed kat1111_t = {
+ 0, kat1111_entropyin, kat1111_nonce, kat1111_persstr,
+ kat1111_addin0, kat1111_addin1, kat1111_retbits
+};
+static const struct drbg_kat kat1111 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1111_t
+};
+
+static const unsigned char kat1112_entropyin[] = {
+ 0x73, 0x06, 0x0e, 0x14, 0x4b, 0xa6, 0x64, 0xad, 0x49, 0xfd, 0xe5, 0xc2,
+ 0xa5, 0xb6, 0x7c, 0x4a, 0x4a, 0x39, 0x49, 0x55, 0xc8, 0x4f, 0xbb, 0xbe,
+ 0x96, 0xe1, 0xf4, 0x5f, 0x0e, 0xe5, 0x45, 0x99, 0x79, 0x5f, 0x9b, 0x98,
+ 0xdd, 0x54, 0x8b, 0xb8,
+};
+static const unsigned char kat1112_nonce[] = {0};
+static const unsigned char kat1112_persstr[] = {
+ 0x06, 0x87, 0x8e, 0x81, 0x90, 0x54, 0xf8, 0x22, 0x8d, 0x66, 0xca, 0x5b,
+ 0x50, 0x28, 0x89, 0x97, 0x2c, 0x6c, 0x5e, 0x5e, 0xdb, 0x9a, 0xc9, 0x16,
+ 0x11, 0x87, 0xf9, 0x91, 0x22, 0x91, 0xf7, 0x04, 0x65, 0x69, 0xe7, 0xd9,
+ 0x0c, 0xcd, 0x0b, 0xee,
+};
+static const unsigned char kat1112_addin0[] = {0};
+static const unsigned char kat1112_addin1[] = {0};
+static const unsigned char kat1112_retbits[] = {
+ 0x17, 0x0b, 0x91, 0xb9, 0x99, 0x08, 0xfc, 0x54, 0xf3, 0x49, 0xd0, 0x8c,
+ 0x25, 0xc1, 0x0e, 0xa3, 0x2b, 0xc5, 0x3e, 0x85, 0x7e, 0x66, 0x0a, 0x29,
+ 0x1c, 0xc7, 0x2c, 0x47, 0x85, 0xcc, 0x30, 0xb4, 0x57, 0x4c, 0x48, 0x88,
+ 0xea, 0xd8, 0xbb, 0xbb, 0x88, 0x25, 0x49, 0x48, 0x70, 0xc7, 0xe8, 0x56,
+ 0xda, 0x12, 0xdf, 0xe4, 0x2e, 0xe9, 0x9a, 0x6b, 0x55, 0x90, 0x19, 0x68,
+ 0x57, 0x13, 0x9f, 0xa8,
+};
+static const struct drbg_kat_no_reseed kat1112_t = {
+ 1, kat1112_entropyin, kat1112_nonce, kat1112_persstr,
+ kat1112_addin0, kat1112_addin1, kat1112_retbits
+};
+static const struct drbg_kat kat1112 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1112_t
+};
+
+static const unsigned char kat1113_entropyin[] = {
+ 0x0c, 0x81, 0xbc, 0xec, 0x33, 0x66, 0xc0, 0x22, 0x9f, 0x43, 0xdb, 0xcd,
+ 0x23, 0x26, 0x99, 0xcd, 0x38, 0x84, 0xbf, 0xe5, 0xdc, 0x93, 0x98, 0x85,
+ 0xf9, 0x37, 0xa4, 0x63, 0x71, 0xd1, 0xf8, 0x21, 0x98, 0xc0, 0x0e, 0x34,
+ 0x71, 0xe5, 0x98, 0x6d,
+};
+static const unsigned char kat1113_nonce[] = {0};
+static const unsigned char kat1113_persstr[] = {
+ 0x8b, 0x4e, 0x90, 0x22, 0x06, 0x74, 0x7c, 0xf3, 0x5a, 0x7a, 0xd6, 0x4b,
+ 0x77, 0xe8, 0x56, 0xcc, 0xf1, 0x2d, 0x18, 0x70, 0xff, 0x82, 0x43, 0xb6,
+ 0x78, 0x3c, 0x70, 0x8e, 0xcd, 0x93, 0x62, 0x77, 0x5a, 0x26, 0xf4, 0x07,
+ 0x0e, 0x8b, 0x71, 0x64,
+};
+static const unsigned char kat1113_addin0[] = {0};
+static const unsigned char kat1113_addin1[] = {0};
+static const unsigned char kat1113_retbits[] = {
+ 0xa4, 0x2c, 0x8c, 0xc3, 0x3d, 0x7b, 0x86, 0x6b, 0xe1, 0xd8, 0x30, 0xaa,
+ 0x97, 0xcb, 0xbf, 0x05, 0xf2, 0x88, 0x7e, 0x9e, 0x5b, 0xda, 0x4f, 0x4f,
+ 0x9f, 0x08, 0xd1, 0x75, 0xfe, 0xee, 0x72, 0xd5, 0xe2, 0x66, 0xc0, 0x6b,
+ 0x23, 0xe3, 0xb2, 0x9e, 0xbe, 0xb1, 0x4e, 0x25, 0xa8, 0x1b, 0x85, 0x36,
+ 0x64, 0x57, 0x26, 0xfb, 0xa9, 0x1f, 0x68, 0xf8, 0x34, 0x79, 0x62, 0x23,
+ 0xd8, 0xdb, 0x94, 0xec,
+};
+static const struct drbg_kat_no_reseed kat1113_t = {
+ 2, kat1113_entropyin, kat1113_nonce, kat1113_persstr,
+ kat1113_addin0, kat1113_addin1, kat1113_retbits
+};
+static const struct drbg_kat kat1113 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1113_t
+};
+
+static const unsigned char kat1114_entropyin[] = {
+ 0xc9, 0xd6, 0x91, 0xfc, 0x04, 0x44, 0x80, 0x43, 0xae, 0x13, 0x75, 0x35,
+ 0x63, 0x95, 0x11, 0x9d, 0xe1, 0xc6, 0xb8, 0xc0, 0x95, 0x75, 0xad, 0x1c,
+ 0x69, 0x5f, 0x23, 0x1b, 0xb4, 0x2f, 0x4e, 0x17, 0xf2, 0x63, 0x36, 0xc3,
+ 0x2c, 0xfd, 0x22, 0x5a,
+};
+static const unsigned char kat1114_nonce[] = {0};
+static const unsigned char kat1114_persstr[] = {
+ 0xef, 0xc8, 0x6a, 0x95, 0x0e, 0xb4, 0xf7, 0x5f, 0x3d, 0xf0, 0x36, 0x10,
+ 0x99, 0xef, 0x05, 0xac, 0xec, 0x57, 0xd7, 0xff, 0x36, 0x56, 0x16, 0x13,
+ 0x39, 0x78, 0x52, 0x5d, 0x11, 0x4c, 0xdf, 0x7f, 0x91, 0x79, 0x00, 0x72,
+ 0x52, 0xb1, 0x32, 0x01,
+};
+static const unsigned char kat1114_addin0[] = {0};
+static const unsigned char kat1114_addin1[] = {0};
+static const unsigned char kat1114_retbits[] = {
+ 0xa7, 0x6f, 0x38, 0x1b, 0x9f, 0x37, 0x9d, 0x9e, 0xc1, 0x7a, 0x88, 0xd4,
+ 0xbc, 0x42, 0xa7, 0xf4, 0x4e, 0x94, 0xc8, 0xf0, 0xc4, 0xd6, 0xf1, 0xac,
+ 0x9d, 0x23, 0x0e, 0x17, 0x4b, 0x01, 0x56, 0xcc, 0x56, 0xa1, 0xc2, 0x38,
+ 0x55, 0x05, 0x97, 0x94, 0x26, 0x95, 0x47, 0x6b, 0x26, 0xaf, 0x27, 0x02,
+ 0xb5, 0x9c, 0x24, 0x20, 0x59, 0x52, 0x15, 0x5a, 0x2f, 0xa0, 0x00, 0xf4,
+ 0x80, 0x98, 0x65, 0xa2,
+};
+static const struct drbg_kat_no_reseed kat1114_t = {
+ 3, kat1114_entropyin, kat1114_nonce, kat1114_persstr,
+ kat1114_addin0, kat1114_addin1, kat1114_retbits
+};
+static const struct drbg_kat kat1114 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1114_t
+};
+
+static const unsigned char kat1115_entropyin[] = {
+ 0x83, 0x86, 0xad, 0x92, 0x45, 0x79, 0xed, 0xd8, 0x0c, 0x5d, 0x7a, 0x6f,
+ 0x40, 0xad, 0x2e, 0x6a, 0x42, 0x96, 0x7a, 0x02, 0x70, 0xe6, 0x7d, 0x80,
+ 0xd4, 0x31, 0xfa, 0x15, 0xb3, 0x7d, 0xcd, 0x03, 0x02, 0x04, 0x4c, 0x4b,
+ 0xe2, 0xa6, 0x1d, 0x25,
+};
+static const unsigned char kat1115_nonce[] = {0};
+static const unsigned char kat1115_persstr[] = {
+ 0x2e, 0xdb, 0x37, 0xbf, 0xf0, 0xfa, 0xec, 0x67, 0xdc, 0x14, 0x9d, 0x34,
+ 0x5f, 0x64, 0xa9, 0xc0, 0xa1, 0xdb, 0x6e, 0x6d, 0x52, 0x48, 0xfe, 0xa5,
+ 0x50, 0x10, 0x91, 0xc5, 0xca, 0x64, 0xde, 0x96, 0x43, 0x27, 0x78, 0x34,
+ 0xd7, 0x38, 0x29, 0x5c,
+};
+static const unsigned char kat1115_addin0[] = {0};
+static const unsigned char kat1115_addin1[] = {0};
+static const unsigned char kat1115_retbits[] = {
+ 0xa4, 0x2d, 0x0b, 0xc8, 0x9f, 0x10, 0x6f, 0x61, 0xbb, 0x3d, 0xd0, 0xa2,
+ 0x7e, 0x30, 0x5c, 0xf4, 0xdd, 0x2a, 0x84, 0xb4, 0x5d, 0x50, 0x6d, 0x55,
+ 0x2f, 0xd5, 0x70, 0x26, 0xbd, 0xd7, 0x35, 0xb9, 0x30, 0xc0, 0x13, 0x3c,
+ 0xa1, 0xd2, 0xee, 0x7c, 0x7f, 0x9e, 0x3a, 0x81, 0xae, 0x7d, 0xf5, 0xb3,
+ 0xc1, 0x0b, 0x34, 0xec, 0xaf, 0xab, 0xfa, 0xcd, 0x55, 0x53, 0xbd, 0x8b,
+ 0x75, 0x20, 0x9e, 0x63,
+};
+static const struct drbg_kat_no_reseed kat1115_t = {
+ 4, kat1115_entropyin, kat1115_nonce, kat1115_persstr,
+ kat1115_addin0, kat1115_addin1, kat1115_retbits
+};
+static const struct drbg_kat kat1115 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1115_t
+};
+
+static const unsigned char kat1116_entropyin[] = {
+ 0xc1, 0xf8, 0xa8, 0x00, 0x7d, 0x63, 0x2f, 0xa0, 0xcd, 0x3e, 0xda, 0xf1,
+ 0x8d, 0xce, 0x55, 0xe8, 0x70, 0xfc, 0x1f, 0xd2, 0xfe, 0x1e, 0xa3, 0x32,
+ 0x10, 0x3b, 0x4b, 0x0c, 0xd8, 0xbf, 0x55, 0x91, 0xc2, 0x58, 0xab, 0x8b,
+ 0x46, 0xc6, 0xa8, 0x8e,
+};
+static const unsigned char kat1116_nonce[] = {0};
+static const unsigned char kat1116_persstr[] = {
+ 0x1c, 0x25, 0x1c, 0x41, 0x9e, 0x7c, 0x0b, 0x99, 0x97, 0xd8, 0xe7, 0xc8,
+ 0x66, 0x13, 0x03, 0x3a, 0x8f, 0x01, 0x2b, 0xdd, 0xd4, 0xbd, 0x25, 0x49,
+ 0x68, 0x31, 0x98, 0x8f, 0xe9, 0x9d, 0x87, 0x32, 0x51, 0x0d, 0x42, 0x60,
+ 0x76, 0x3c, 0x0e, 0x52,
+};
+static const unsigned char kat1116_addin0[] = {0};
+static const unsigned char kat1116_addin1[] = {0};
+static const unsigned char kat1116_retbits[] = {
+ 0xc7, 0x0a, 0x9f, 0x55, 0x75, 0xfc, 0xba, 0xe8, 0xf7, 0x88, 0x97, 0x6b,
+ 0x5e, 0xc6, 0x0f, 0x2a, 0xb3, 0x5e, 0x5b, 0x0d, 0x2e, 0x30, 0xaf, 0xfd,
+ 0xcb, 0xae, 0xb4, 0xc2, 0x4f, 0xc2, 0xbd, 0x26, 0x1b, 0x44, 0x20, 0x22,
+ 0x57, 0x04, 0x4e, 0x50, 0xf3, 0xc5, 0xc5, 0xe4, 0x11, 0xeb, 0xb2, 0xf0,
+ 0x79, 0x00, 0xd9, 0x78, 0xf4, 0xfe, 0x66, 0x88, 0x5d, 0x36, 0xb0, 0x1e,
+ 0xd9, 0x27, 0xda, 0xbf,
+};
+static const struct drbg_kat_no_reseed kat1116_t = {
+ 5, kat1116_entropyin, kat1116_nonce, kat1116_persstr,
+ kat1116_addin0, kat1116_addin1, kat1116_retbits
+};
+static const struct drbg_kat kat1116 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1116_t
+};
+
+static const unsigned char kat1117_entropyin[] = {
+ 0x92, 0x68, 0x0c, 0xdb, 0x8e, 0x3b, 0xac, 0x00, 0xca, 0x0c, 0xa2, 0x5e,
+ 0x98, 0x8f, 0x6f, 0xbc, 0x3c, 0xe2, 0xa6, 0xec, 0x27, 0x6d, 0x8b, 0x30,
+ 0xb9, 0xee, 0x5d, 0x79, 0x33, 0xde, 0xcd, 0x3f, 0x90, 0xb3, 0x39, 0xf0,
+ 0x86, 0x1b, 0x49, 0x3c,
+};
+static const unsigned char kat1117_nonce[] = {0};
+static const unsigned char kat1117_persstr[] = {
+ 0xd7, 0x07, 0xff, 0x05, 0x26, 0xdf, 0xc0, 0xc7, 0xea, 0xfa, 0x3d, 0x76,
+ 0xf5, 0xad, 0x0e, 0x9d, 0x98, 0x19, 0x2e, 0xce, 0x08, 0x55, 0xce, 0x09,
+ 0xed, 0xba, 0x0a, 0xef, 0xe8, 0x19, 0xb9, 0x40, 0x58, 0x5b, 0x5d, 0xf8,
+ 0xca, 0x43, 0x7e, 0xad,
+};
+static const unsigned char kat1117_addin0[] = {0};
+static const unsigned char kat1117_addin1[] = {0};
+static const unsigned char kat1117_retbits[] = {
+ 0xfe, 0xab, 0x4a, 0x78, 0x23, 0x96, 0x63, 0x89, 0x7e, 0x66, 0x15, 0x71,
+ 0x84, 0xbf, 0xe8, 0x56, 0x8e, 0x3c, 0xc4, 0x60, 0x12, 0x90, 0x8e, 0x8d,
+ 0x96, 0xf2, 0x1c, 0xdb, 0xeb, 0x79, 0x41, 0xe4, 0x30, 0x58, 0x17, 0x87,
+ 0xe0, 0x8d, 0xd9, 0x19, 0x8b, 0xda, 0xf5, 0x8f, 0xf8, 0x84, 0xd8, 0x34,
+ 0xc0, 0x82, 0x7b, 0xf9, 0x31, 0x11, 0x3c, 0x00, 0xc3, 0x4f, 0x98, 0x8f,
+ 0x1d, 0x7b, 0x05, 0xed,
+};
+static const struct drbg_kat_no_reseed kat1117_t = {
+ 6, kat1117_entropyin, kat1117_nonce, kat1117_persstr,
+ kat1117_addin0, kat1117_addin1, kat1117_retbits
+};
+static const struct drbg_kat kat1117 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1117_t
+};
+
+static const unsigned char kat1118_entropyin[] = {
+ 0x7b, 0x53, 0xfe, 0x45, 0xe5, 0xb6, 0x1c, 0x13, 0x0a, 0x42, 0xfc, 0xe9,
+ 0x2a, 0x66, 0xa9, 0x5d, 0xca, 0x41, 0x7c, 0x17, 0x23, 0x3b, 0x68, 0xe2,
+ 0xd8, 0xba, 0x7d, 0x18, 0xa0, 0x2a, 0xcb, 0x57, 0x4d, 0xa2, 0xc0, 0x48,
+ 0xbc, 0x29, 0xdb, 0x9a,
+};
+static const unsigned char kat1118_nonce[] = {0};
+static const unsigned char kat1118_persstr[] = {
+ 0x14, 0x63, 0xa8, 0xe6, 0x30, 0x64, 0xf6, 0xbd, 0xf4, 0xf4, 0x2b, 0xfa,
+ 0x7c, 0x74, 0x85, 0xab, 0x7b, 0xa6, 0xad, 0xa5, 0xb0, 0xe5, 0xe8, 0x7d,
+ 0xc8, 0x8a, 0x36, 0xe9, 0xbd, 0xf3, 0x9f, 0x70, 0xa7, 0xe9, 0x95, 0xd2,
+ 0xde, 0xd3, 0xc2, 0xb5,
+};
+static const unsigned char kat1118_addin0[] = {0};
+static const unsigned char kat1118_addin1[] = {0};
+static const unsigned char kat1118_retbits[] = {
+ 0x09, 0xc8, 0x69, 0xac, 0x97, 0xef, 0xce, 0x03, 0x78, 0xa8, 0x78, 0xf7,
+ 0x76, 0x42, 0xd5, 0x02, 0x72, 0x50, 0x48, 0xc9, 0x50, 0x52, 0xc8, 0x22,
+ 0x0f, 0x25, 0xf0, 0x3b, 0xd9, 0xbd, 0x60, 0xa1, 0x19, 0x8e, 0x45, 0xd4,
+ 0x99, 0x40, 0xae, 0x35, 0xc2, 0x57, 0x1a, 0x72, 0xcd, 0xea, 0xe2, 0x97,
+ 0xd0, 0x23, 0xec, 0x4c, 0xdc, 0x10, 0x47, 0x2f, 0x11, 0x12, 0xa8, 0x79,
+ 0x6f, 0xa2, 0x53, 0x26,
+};
+static const struct drbg_kat_no_reseed kat1118_t = {
+ 7, kat1118_entropyin, kat1118_nonce, kat1118_persstr,
+ kat1118_addin0, kat1118_addin1, kat1118_retbits
+};
+static const struct drbg_kat kat1118 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1118_t
+};
+
+static const unsigned char kat1119_entropyin[] = {
+ 0x8a, 0xdf, 0xc0, 0x4d, 0xdb, 0x2f, 0x8a, 0x3b, 0x13, 0xde, 0xf4, 0x12,
+ 0x8d, 0x10, 0x29, 0xa7, 0x02, 0x76, 0xc5, 0x3e, 0x69, 0x0a, 0xe2, 0x1a,
+ 0x1e, 0xe9, 0xc3, 0x6e, 0x4a, 0x26, 0xf8, 0x92, 0x82, 0x68, 0xa4, 0xc5,
+ 0xa8, 0xbb, 0xc9, 0xea,
+};
+static const unsigned char kat1119_nonce[] = {0};
+static const unsigned char kat1119_persstr[] = {
+ 0xab, 0x5c, 0x19, 0x85, 0x7a, 0xd9, 0x10, 0x4f, 0xbe, 0x12, 0x6b, 0xd5,
+ 0x94, 0x1d, 0xb3, 0x1a, 0x61, 0x1d, 0xfc, 0x5a, 0xdb, 0xda, 0x9b, 0x1b,
+ 0x77, 0x2e, 0xd2, 0xb0, 0x8c, 0x01, 0x53, 0x61, 0x38, 0xf0, 0x83, 0x78,
+ 0x2d, 0xf6, 0xe2, 0x22,
+};
+static const unsigned char kat1119_addin0[] = {0};
+static const unsigned char kat1119_addin1[] = {0};
+static const unsigned char kat1119_retbits[] = {
+ 0xb5, 0x62, 0x69, 0x5d, 0xc1, 0xa0, 0x88, 0xb1, 0xb7, 0xf5, 0xe3, 0xee,
+ 0x69, 0xd6, 0xc9, 0xe7, 0x67, 0xa6, 0xc7, 0x6f, 0x8c, 0x48, 0x3c, 0x8c,
+ 0xce, 0x4a, 0x8e, 0xf8, 0xe5, 0x88, 0xe5, 0x3a, 0xab, 0x1d, 0x2a, 0xc4,
+ 0xdb, 0xab, 0x12, 0x4f, 0x30, 0x7d, 0xef, 0x49, 0x1b, 0xf8, 0x43, 0xd6,
+ 0x16, 0x8c, 0x88, 0xb5, 0x28, 0xad, 0x4c, 0x41, 0x7d, 0xbf, 0xb6, 0x16,
+ 0xcc, 0x0a, 0x7c, 0xcb,
+};
+static const struct drbg_kat_no_reseed kat1119_t = {
+ 8, kat1119_entropyin, kat1119_nonce, kat1119_persstr,
+ kat1119_addin0, kat1119_addin1, kat1119_retbits
+};
+static const struct drbg_kat kat1119 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1119_t
+};
+
+static const unsigned char kat1120_entropyin[] = {
+ 0x39, 0x94, 0xd9, 0x21, 0xe9, 0xb2, 0x4e, 0xbe, 0xea, 0xa2, 0xb3, 0xf1,
+ 0x5e, 0x74, 0x9b, 0x00, 0x35, 0x3a, 0xbb, 0xb4, 0xf0, 0x58, 0x38, 0xe6,
+ 0x55, 0x95, 0x66, 0x53, 0xad, 0xbc, 0x27, 0xc5, 0x80, 0xc0, 0x9c, 0xd6,
+ 0xeb, 0x8c, 0xde, 0x30,
+};
+static const unsigned char kat1120_nonce[] = {0};
+static const unsigned char kat1120_persstr[] = {
+ 0x71, 0xeb, 0x26, 0xe6, 0x11, 0x12, 0xb1, 0x1f, 0x21, 0x8d, 0x01, 0x6a,
+ 0x67, 0x86, 0x84, 0xb8, 0xaa, 0xab, 0x65, 0x19, 0xea, 0x41, 0xaf, 0x21,
+ 0xfc, 0x71, 0x3c, 0x4a, 0xfa, 0x14, 0xf3, 0x9d, 0x49, 0xa5, 0xa7, 0x47,
+ 0x23, 0x44, 0xde, 0xf1,
+};
+static const unsigned char kat1120_addin0[] = {0};
+static const unsigned char kat1120_addin1[] = {0};
+static const unsigned char kat1120_retbits[] = {
+ 0x59, 0xde, 0x04, 0xbc, 0x36, 0x02, 0x49, 0x61, 0x7d, 0x96, 0x9c, 0xe7,
+ 0xdd, 0xe7, 0xb6, 0x38, 0xdb, 0xf0, 0xd1, 0x04, 0xe0, 0xd3, 0xc9, 0xce,
+ 0x0a, 0x63, 0xa4, 0xa7, 0x37, 0x69, 0x76, 0xa3, 0x38, 0xf9, 0xe5, 0xb3,
+ 0x06, 0x08, 0xc2, 0xe1, 0xb8, 0x81, 0xd8, 0x2f, 0xc6, 0xdd, 0x5a, 0xe2,
+ 0x51, 0x84, 0xd6, 0xf0, 0x7c, 0xb0, 0xdc, 0x2f, 0x5d, 0x99, 0x89, 0xea,
+ 0x49, 0x10, 0x0c, 0x01,
+};
+static const struct drbg_kat_no_reseed kat1120_t = {
+ 9, kat1120_entropyin, kat1120_nonce, kat1120_persstr,
+ kat1120_addin0, kat1120_addin1, kat1120_retbits
+};
+static const struct drbg_kat kat1120 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1120_t
+};
+
+static const unsigned char kat1121_entropyin[] = {
+ 0x2a, 0x3d, 0x16, 0xa9, 0x6d, 0xaa, 0xc4, 0xb6, 0xc9, 0xa6, 0x47, 0x47,
+ 0x29, 0x75, 0x22, 0x04, 0xb3, 0xf1, 0x97, 0xe9, 0x39, 0x61, 0x80, 0xc9,
+ 0x85, 0x51, 0xcd, 0x36, 0xf0, 0xfc, 0x68, 0xb7, 0xfd, 0xf5, 0x33, 0x11,
+ 0x5d, 0xa6, 0xb2, 0xc6,
+};
+static const unsigned char kat1121_nonce[] = {0};
+static const unsigned char kat1121_persstr[] = {
+ 0x54, 0x7e, 0x34, 0x34, 0x00, 0x65, 0xfd, 0xbe, 0xb4, 0x09, 0xff, 0xf4,
+ 0x9f, 0x2d, 0x9a, 0x97, 0xc5, 0x20, 0x2a, 0xa1, 0x48, 0xaa, 0x7e, 0x85,
+ 0x19, 0x61, 0x07, 0x99, 0xa6, 0x82, 0xde, 0x81, 0xc5, 0x03, 0xbb, 0x52,
+ 0xad, 0xdd, 0x50, 0xac,
+};
+static const unsigned char kat1121_addin0[] = {0};
+static const unsigned char kat1121_addin1[] = {0};
+static const unsigned char kat1121_retbits[] = {
+ 0x21, 0x56, 0x1c, 0x15, 0xd0, 0x24, 0x05, 0x0a, 0x5c, 0xbf, 0x8d, 0x31,
+ 0x47, 0x2c, 0xd5, 0x20, 0x10, 0xba, 0x0a, 0x73, 0x85, 0xb5, 0xf6, 0xf0,
+ 0xea, 0x03, 0xbd, 0xbf, 0x52, 0x3a, 0x82, 0x8f, 0x7a, 0x75, 0xde, 0x85,
+ 0x86, 0xfe, 0xee, 0xa9, 0x8a, 0xdc, 0x56, 0xc9, 0x15, 0xb5, 0xcf, 0xba,
+ 0x41, 0x6d, 0xd3, 0x66, 0x1c, 0x2c, 0xee, 0x54, 0x14, 0x3f, 0xee, 0x22,
+ 0x87, 0xbb, 0x3f, 0x90,
+};
+static const struct drbg_kat_no_reseed kat1121_t = {
+ 10, kat1121_entropyin, kat1121_nonce, kat1121_persstr,
+ kat1121_addin0, kat1121_addin1, kat1121_retbits
+};
+static const struct drbg_kat kat1121 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1121_t
+};
+
+static const unsigned char kat1122_entropyin[] = {
+ 0xc9, 0xdb, 0x6c, 0x55, 0x9b, 0xe9, 0xae, 0xc8, 0xe2, 0xc4, 0x6c, 0x57,
+ 0x5e, 0xff, 0x25, 0x75, 0x3b, 0xfa, 0x9d, 0x88, 0x6e, 0x93, 0x4b, 0x8c,
+ 0x2d, 0x22, 0x6d, 0xed, 0xa6, 0xe8, 0xc8, 0xbe, 0x8b, 0xea, 0x68, 0xae,
+ 0xc4, 0x01, 0x53, 0x74,
+};
+static const unsigned char kat1122_nonce[] = {0};
+static const unsigned char kat1122_persstr[] = {
+ 0xf5, 0x63, 0xde, 0xb7, 0x0b, 0xd6, 0x58, 0x73, 0xb8, 0x33, 0xb2, 0xca,
+ 0xba, 0x74, 0x6f, 0x78, 0x97, 0x39, 0x4f, 0xab, 0x8b, 0x13, 0xc3, 0xf9,
+ 0x84, 0xc0, 0x9b, 0x33, 0xbd, 0xbe, 0x8e, 0x95, 0x49, 0xd9, 0x40, 0x70,
+ 0xdd, 0xbb, 0x95, 0x34,
+};
+static const unsigned char kat1122_addin0[] = {0};
+static const unsigned char kat1122_addin1[] = {0};
+static const unsigned char kat1122_retbits[] = {
+ 0xd0, 0x85, 0xdd, 0xff, 0x1a, 0x1f, 0x8b, 0x9d, 0x38, 0xd4, 0x13, 0xa6,
+ 0x6c, 0x92, 0x44, 0x4d, 0xe1, 0x4f, 0x5e, 0x76, 0x2d, 0x77, 0x12, 0x7c,
+ 0x83, 0x03, 0x8a, 0x77, 0x53, 0xf0, 0x21, 0x00, 0x20, 0xec, 0xd6, 0x48,
+ 0x13, 0xf0, 0xf8, 0x8d, 0xc6, 0xa7, 0x14, 0x42, 0x8e, 0xa6, 0xbe, 0xbe,
+ 0x9a, 0x9e, 0x73, 0x8e, 0x7a, 0xfb, 0xea, 0x47, 0x4c, 0x1f, 0xf7, 0x55,
+ 0x3a, 0x31, 0xbf, 0x8c,
+};
+static const struct drbg_kat_no_reseed kat1122_t = {
+ 11, kat1122_entropyin, kat1122_nonce, kat1122_persstr,
+ kat1122_addin0, kat1122_addin1, kat1122_retbits
+};
+static const struct drbg_kat kat1122 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1122_t
+};
+
+static const unsigned char kat1123_entropyin[] = {
+ 0xbd, 0x59, 0x8f, 0xec, 0x98, 0xb3, 0x55, 0xc4, 0xca, 0x8b, 0x8f, 0x12,
+ 0x9e, 0x71, 0x17, 0x9b, 0x57, 0x5c, 0x64, 0x93, 0x3d, 0x04, 0xb1, 0xd7,
+ 0x2a, 0x3e, 0x57, 0xd0, 0x4f, 0x50, 0x7c, 0x33, 0x7c, 0x64, 0xf7, 0x28,
+ 0xe7, 0x6c, 0xbd, 0xda,
+};
+static const unsigned char kat1123_nonce[] = {0};
+static const unsigned char kat1123_persstr[] = {
+ 0x7d, 0xe3, 0xa8, 0x49, 0x20, 0xd4, 0xbe, 0xe4, 0xf3, 0x3e, 0x18, 0xf0,
+ 0x60, 0xad, 0x9a, 0x00, 0xd6, 0x8d, 0xec, 0xd0, 0x02, 0xa3, 0x6c, 0xb8,
+ 0x5d, 0x9b, 0x9d, 0xaf, 0x46, 0x27, 0x12, 0x75, 0x31, 0xea, 0xef, 0xb2,
+ 0xd4, 0xdd, 0x40, 0x6d,
+};
+static const unsigned char kat1123_addin0[] = {0};
+static const unsigned char kat1123_addin1[] = {0};
+static const unsigned char kat1123_retbits[] = {
+ 0xd1, 0x98, 0xdc, 0xac, 0xfa, 0xc4, 0x72, 0x19, 0x9d, 0xe0, 0x2a, 0x74,
+ 0xfd, 0x1a, 0x09, 0xee, 0x94, 0x12, 0xeb, 0x31, 0xf0, 0x06, 0xbf, 0x9d,
+ 0xc7, 0x76, 0x7f, 0xca, 0x43, 0xd8, 0xdf, 0xc8, 0x3c, 0x9e, 0xac, 0xc3,
+ 0xbd, 0xc8, 0x2f, 0x2a, 0x08, 0x3a, 0x7a, 0xad, 0xd8, 0xa5, 0xc7, 0x1a,
+ 0xac, 0xd4, 0xaa, 0xb6, 0x9e, 0x11, 0x60, 0xcb, 0xb7, 0x55, 0x8f, 0xd1,
+ 0xb3, 0x7f, 0xb1, 0xdd,
+};
+static const struct drbg_kat_no_reseed kat1123_t = {
+ 12, kat1123_entropyin, kat1123_nonce, kat1123_persstr,
+ kat1123_addin0, kat1123_addin1, kat1123_retbits
+};
+static const struct drbg_kat kat1123 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1123_t
+};
+
+static const unsigned char kat1124_entropyin[] = {
+ 0x75, 0x55, 0xaa, 0x70, 0x03, 0x9f, 0x91, 0x21, 0x42, 0xcb, 0xb9, 0x9f,
+ 0xcd, 0x54, 0xb6, 0x06, 0x7a, 0x55, 0x1a, 0xfe, 0xfc, 0x82, 0x70, 0x66,
+ 0xe2, 0xba, 0x03, 0x81, 0x6f, 0x76, 0xb0, 0xfd, 0xbc, 0xa8, 0x60, 0x91,
+ 0x19, 0xc2, 0x1d, 0x33,
+};
+static const unsigned char kat1124_nonce[] = {0};
+static const unsigned char kat1124_persstr[] = {
+ 0x8c, 0x3d, 0x8c, 0x10, 0x18, 0x4d, 0x41, 0x7e, 0xcc, 0x7b, 0xed, 0x28,
+ 0x32, 0x94, 0x6d, 0xe1, 0x30, 0x1f, 0x3a, 0x28, 0x1a, 0x73, 0xfd, 0x60,
+ 0x03, 0x0c, 0x74, 0x8a, 0xf7, 0xf2, 0x79, 0x95, 0xa3, 0xbe, 0x31, 0xb7,
+ 0x9e, 0x7f, 0x0c, 0xb5,
+};
+static const unsigned char kat1124_addin0[] = {0};
+static const unsigned char kat1124_addin1[] = {0};
+static const unsigned char kat1124_retbits[] = {
+ 0x27, 0xd7, 0x29, 0xeb, 0x9a, 0x22, 0xd6, 0x7b, 0xf8, 0x30, 0x8b, 0x2e,
+ 0xdd, 0xdb, 0x4d, 0xfb, 0x2c, 0x22, 0xff, 0xcd, 0x17, 0xef, 0x40, 0x45,
+ 0xbc, 0x63, 0xdd, 0x6f, 0xd9, 0xf6, 0x68, 0xa7, 0x4c, 0x23, 0x0b, 0x44,
+ 0x27, 0x7d, 0x9e, 0xe5, 0x04, 0x55, 0x6b, 0x6f, 0xa9, 0xda, 0x96, 0xa8,
+ 0x1b, 0x20, 0x4b, 0x74, 0x09, 0x78, 0x66, 0xb5, 0xfa, 0x62, 0xef, 0x8e,
+ 0x87, 0x3c, 0x55, 0x47,
+};
+static const struct drbg_kat_no_reseed kat1124_t = {
+ 13, kat1124_entropyin, kat1124_nonce, kat1124_persstr,
+ kat1124_addin0, kat1124_addin1, kat1124_retbits
+};
+static const struct drbg_kat kat1124 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1124_t
+};
+
+static const unsigned char kat1125_entropyin[] = {
+ 0x2d, 0x0c, 0x45, 0xbd, 0xcc, 0xac, 0x3a, 0x97, 0x2f, 0xe4, 0x01, 0x60,
+ 0x13, 0x79, 0xd5, 0xe5, 0xf6, 0x17, 0x3e, 0xde, 0xa8, 0x23, 0xd5, 0x31,
+ 0x86, 0x82, 0x9f, 0x34, 0x3c, 0x0d, 0x1c, 0x84, 0x3a, 0x6d, 0x7a, 0x82,
+ 0x55, 0xc1, 0x5c, 0x9e,
+};
+static const unsigned char kat1125_nonce[] = {0};
+static const unsigned char kat1125_persstr[] = {
+ 0x93, 0x45, 0xdc, 0x1e, 0xe7, 0xc4, 0x28, 0xa9, 0x61, 0xf2, 0xb7, 0x87,
+ 0xe6, 0xf9, 0x48, 0x7f, 0x93, 0x80, 0x62, 0xaf, 0xd5, 0xfe, 0x3b, 0x3c,
+ 0xeb, 0x04, 0xba, 0x84, 0x45, 0xb1, 0x11, 0x8a, 0x8e, 0x2e, 0x30, 0xb3,
+ 0xf0, 0xbc, 0xc2, 0x99,
+};
+static const unsigned char kat1125_addin0[] = {0};
+static const unsigned char kat1125_addin1[] = {0};
+static const unsigned char kat1125_retbits[] = {
+ 0x3d, 0x6f, 0x91, 0x40, 0xfd, 0xb4, 0x6c, 0xc1, 0xa0, 0x4a, 0xe9, 0x87,
+ 0xdd, 0xa9, 0x1a, 0x18, 0xa7, 0xeb, 0x59, 0x24, 0x0c, 0x6b, 0x42, 0x92,
+ 0xf6, 0x4c, 0x84, 0x45, 0xf2, 0x7f, 0x1f, 0x72, 0xa2, 0xd8, 0x0e, 0x84,
+ 0x63, 0xda, 0x01, 0x40, 0x9c, 0xbf, 0x28, 0x41, 0x69, 0x86, 0xed, 0x8a,
+ 0x85, 0xe8, 0xb9, 0xc4, 0xca, 0xa4, 0x54, 0x16, 0x88, 0xae, 0xde, 0x1b,
+ 0x69, 0x05, 0xb3, 0x84,
+};
+static const struct drbg_kat_no_reseed kat1125_t = {
+ 14, kat1125_entropyin, kat1125_nonce, kat1125_persstr,
+ kat1125_addin0, kat1125_addin1, kat1125_retbits
+};
+static const struct drbg_kat kat1125 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1125_t
+};
+
+static const unsigned char kat1126_entropyin[] = {
+ 0x86, 0xa6, 0x37, 0xcf, 0xa2, 0x62, 0x7d, 0x56, 0x76, 0xb6, 0x92, 0x1b,
+ 0x86, 0xa9, 0x66, 0x1f, 0x82, 0x03, 0xc4, 0xd9, 0x60, 0x60, 0x24, 0x80,
+ 0x3f, 0x36, 0x88, 0xc8, 0x87, 0xe0, 0x91, 0xf8, 0xe1, 0x64, 0x40, 0xe6,
+ 0xfe, 0x92, 0xac, 0x6e,
+};
+static const unsigned char kat1126_nonce[] = {0};
+static const unsigned char kat1126_persstr[] = {
+ 0xb3, 0x5b, 0xbc, 0x23, 0x8f, 0x15, 0x8b, 0x9e, 0xd4, 0x5d, 0xcd, 0x7c,
+ 0xc3, 0x08, 0x8e, 0xa4, 0xef, 0xfa, 0x04, 0x49, 0x29, 0x62, 0x98, 0x85,
+ 0x45, 0x98, 0xb6, 0xe3, 0x12, 0xe5, 0x9a, 0x83, 0x08, 0xac, 0x80, 0x19,
+ 0x74, 0xe3, 0x80, 0x6c,
+};
+static const unsigned char kat1126_addin0[] = {
+ 0x47, 0x8b, 0xb6, 0x9c, 0x78, 0xea, 0xc1, 0x63, 0x49, 0x68, 0x83, 0xc5,
+ 0xb2, 0xd5, 0x98, 0x75, 0xcd, 0x8a, 0x63, 0x19, 0x03, 0xe4, 0x47, 0xde,
+ 0x54, 0x34, 0xc7, 0x74, 0xd7, 0x21, 0xe9, 0x1a, 0x82, 0x8e, 0xcd, 0xa6,
+ 0x0f, 0xb4, 0x4b, 0x7b,
+};
+static const unsigned char kat1126_addin1[] = {
+ 0x75, 0xa8, 0x47, 0x9f, 0xee, 0xa4, 0x02, 0x6e, 0x4c, 0xd1, 0x0c, 0xf5,
+ 0x82, 0x74, 0xf7, 0x5d, 0xc8, 0x38, 0x89, 0x4c, 0x44, 0xcb, 0x22, 0xc2,
+ 0xef, 0xbc, 0xe5, 0x27, 0x4e, 0xcc, 0x08, 0x1e, 0x6a, 0x68, 0x76, 0xb6,
+ 0xba, 0x3d, 0xf8, 0x6f,
+};
+static const unsigned char kat1126_retbits[] = {
+ 0xee, 0x9d, 0x75, 0xd1, 0x23, 0x57, 0x8a, 0x17, 0xa5, 0x7d, 0xee, 0xed,
+ 0xff, 0x09, 0x3e, 0x6d, 0x69, 0xf5, 0x41, 0x8b, 0x7b, 0xa3, 0x58, 0x1f,
+ 0xf3, 0x06, 0xee, 0xbf, 0x29, 0x92, 0x71, 0x16, 0x8a, 0xd0, 0x49, 0x4d,
+ 0x6f, 0x7e, 0x45, 0x6e, 0x71, 0x8b, 0xfe, 0x5a, 0xc7, 0x93, 0x29, 0xd3,
+ 0x20, 0x4d, 0x56, 0xe8, 0xd2, 0x9b, 0x6d, 0xd8, 0x89, 0x8f, 0xb3, 0x10,
+ 0x3e, 0xaa, 0x4b, 0x08,
+};
+static const struct drbg_kat_no_reseed kat1126_t = {
+ 0, kat1126_entropyin, kat1126_nonce, kat1126_persstr,
+ kat1126_addin0, kat1126_addin1, kat1126_retbits
+};
+static const struct drbg_kat kat1126 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1126_t
+};
+
+static const unsigned char kat1127_entropyin[] = {
+ 0xd7, 0x0c, 0x9e, 0x27, 0x28, 0x20, 0x11, 0x81, 0x15, 0x02, 0x77, 0x23,
+ 0x63, 0xef, 0xab, 0x57, 0x14, 0xad, 0x29, 0xd6, 0x3a, 0xfe, 0x46, 0x70,
+ 0x9b, 0xe5, 0x4b, 0xb7, 0x5e, 0x66, 0x9b, 0x7c, 0xb2, 0x9f, 0x05, 0x9a,
+ 0x14, 0x77, 0xbd, 0xf9,
+};
+static const unsigned char kat1127_nonce[] = {0};
+static const unsigned char kat1127_persstr[] = {
+ 0x68, 0x42, 0x31, 0xb3, 0x1f, 0xaf, 0xf4, 0x40, 0x6c, 0x5c, 0xee, 0x7e,
+ 0xfd, 0x76, 0x27, 0xa0, 0x61, 0x00, 0x5e, 0x94, 0xf2, 0x8e, 0x7b, 0x33,
+ 0xaf, 0xdb, 0x65, 0x64, 0x51, 0x37, 0xd4, 0x8e, 0x98, 0x27, 0xe4, 0x3e,
+ 0x80, 0x36, 0x1d, 0x44,
+};
+static const unsigned char kat1127_addin0[] = {
+ 0x73, 0x0c, 0xca, 0xd6, 0x11, 0x9f, 0x8a, 0xed, 0xa4, 0xc3, 0x6a, 0x11,
+ 0x01, 0xaa, 0xd4, 0xf1, 0x5f, 0xe2, 0x11, 0x42, 0x0c, 0xa3, 0x53, 0x87,
+ 0xbe, 0x0e, 0xb3, 0x6f, 0xa8, 0x5e, 0x55, 0x5d, 0xf2, 0x5b, 0x3b, 0xf0,
+ 0x11, 0x01, 0x29, 0xc9,
+};
+static const unsigned char kat1127_addin1[] = {
+ 0xe3, 0x8a, 0x65, 0x71, 0x1b, 0x71, 0xd4, 0x40, 0x0d, 0xc3, 0xb9, 0x0d,
+ 0x74, 0x2f, 0x30, 0x1e, 0xc1, 0x46, 0x9f, 0xb9, 0xbb, 0x0e, 0x9f, 0xc5,
+ 0x7e, 0xc2, 0x3f, 0xf1, 0x25, 0xb8, 0xa7, 0xe5, 0x26, 0xee, 0x09, 0x32,
+ 0x60, 0x87, 0x5e, 0xe7,
+};
+static const unsigned char kat1127_retbits[] = {
+ 0x76, 0x43, 0x84, 0x03, 0xd0, 0xe5, 0xb9, 0xcf, 0x0a, 0x6f, 0x3f, 0xf3,
+ 0xdb, 0xad, 0xac, 0x9a, 0x57, 0x76, 0xb5, 0xbe, 0x63, 0x5f, 0xac, 0x09,
+ 0x1e, 0xcb, 0xe6, 0xd5, 0xc3, 0x00, 0x5b, 0x54, 0xdc, 0x9a, 0x34, 0xe3,
+ 0xbb, 0x1b, 0xf3, 0xc2, 0x46, 0x48, 0x4a, 0x91, 0x34, 0xc4, 0x30, 0x60,
+ 0x4e, 0x30, 0x80, 0xa0, 0x57, 0x01, 0x24, 0xfc, 0x9e, 0x5e, 0x6f, 0x4d,
+ 0x97, 0x7f, 0x59, 0xd2,
+};
+static const struct drbg_kat_no_reseed kat1127_t = {
+ 1, kat1127_entropyin, kat1127_nonce, kat1127_persstr,
+ kat1127_addin0, kat1127_addin1, kat1127_retbits
+};
+static const struct drbg_kat kat1127 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1127_t
+};
+
+static const unsigned char kat1128_entropyin[] = {
+ 0x71, 0xb1, 0x9f, 0x72, 0xaf, 0x5d, 0x76, 0x77, 0x6e, 0x37, 0x36, 0x91,
+ 0xe1, 0x9a, 0xa2, 0xe3, 0xc9, 0xe8, 0x4e, 0xaa, 0x2d, 0x7d, 0x33, 0x50,
+ 0xb7, 0x7e, 0x22, 0x91, 0xc0, 0x00, 0xfa, 0x4c, 0x50, 0xe1, 0x17, 0x6b,
+ 0x01, 0xc0, 0x18, 0x39,
+};
+static const unsigned char kat1128_nonce[] = {0};
+static const unsigned char kat1128_persstr[] = {
+ 0x2a, 0x6f, 0x83, 0x41, 0x22, 0xbf, 0x08, 0xfb, 0xfd, 0x1c, 0x7c, 0xa3,
+ 0x1c, 0x6a, 0xea, 0x08, 0xda, 0x21, 0x94, 0x2d, 0x88, 0xc4, 0x1d, 0x44,
+ 0x52, 0x80, 0xc1, 0xad, 0xbf, 0x84, 0x1e, 0xde, 0x1c, 0x94, 0x2b, 0xb0,
+ 0xa1, 0x65, 0xe6, 0xfd,
+};
+static const unsigned char kat1128_addin0[] = {
+ 0x5a, 0x80, 0x30, 0xfa, 0xe3, 0x21, 0x16, 0x2e, 0x2c, 0x42, 0xb1, 0x37,
+ 0x8a, 0x7b, 0xfd, 0x79, 0xcc, 0x7a, 0xb6, 0x0a, 0xfc, 0x49, 0x8f, 0xe8,
+ 0x5c, 0x39, 0xef, 0x3c, 0x57, 0x75, 0xc1, 0x2b, 0x75, 0x55, 0x97, 0xa1,
+ 0x72, 0xbb, 0xfd, 0xd9,
+};
+static const unsigned char kat1128_addin1[] = {
+ 0x5c, 0x23, 0xfd, 0xa8, 0xf8, 0xad, 0x32, 0xbd, 0x6b, 0xbd, 0x6e, 0x49,
+ 0x87, 0xa4, 0xde, 0x87, 0x77, 0x54, 0xc3, 0x97, 0xd9, 0x25, 0xf3, 0xd6,
+ 0x99, 0x33, 0x8a, 0x96, 0x83, 0xdb, 0x27, 0x50, 0x2d, 0xe5, 0xd5, 0xdd,
+ 0xaa, 0xf9, 0xf8, 0xfd,
+};
+static const unsigned char kat1128_retbits[] = {
+ 0x44, 0x5d, 0x75, 0x54, 0xae, 0x0f, 0xc0, 0x81, 0x17, 0xb1, 0x3e, 0x46,
+ 0x58, 0x5d, 0xf3, 0x42, 0xa0, 0x34, 0xcb, 0x7c, 0xff, 0x51, 0x90, 0xee,
+ 0xfc, 0x18, 0x07, 0xc0, 0xae, 0xc3, 0xd4, 0x79, 0x32, 0x5a, 0x05, 0xb1,
+ 0x8e, 0x0c, 0x65, 0xc0, 0x72, 0x91, 0x78, 0xc1, 0x3f, 0xbc, 0xf4, 0x85,
+ 0x5c, 0x24, 0x8e, 0xc9, 0xdc, 0x7f, 0xef, 0x3c, 0xc3, 0xa8, 0x8e, 0xdf,
+ 0xe8, 0x2a, 0xb9, 0x99,
+};
+static const struct drbg_kat_no_reseed kat1128_t = {
+ 2, kat1128_entropyin, kat1128_nonce, kat1128_persstr,
+ kat1128_addin0, kat1128_addin1, kat1128_retbits
+};
+static const struct drbg_kat kat1128 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1128_t
+};
+
+static const unsigned char kat1129_entropyin[] = {
+ 0xc0, 0xfc, 0x3d, 0x62, 0x7b, 0x4a, 0xe0, 0xdf, 0x05, 0x12, 0x46, 0x97,
+ 0x24, 0x90, 0x76, 0x65, 0x7a, 0x4c, 0x62, 0xaf, 0x16, 0x2c, 0xcb, 0x9f,
+ 0xdb, 0xa6, 0x5e, 0x61, 0xe6, 0xba, 0x31, 0x16, 0x5a, 0xfd, 0xc1, 0xd1,
+ 0x7e, 0xfd, 0x0c, 0xcb,
+};
+static const unsigned char kat1129_nonce[] = {0};
+static const unsigned char kat1129_persstr[] = {
+ 0x59, 0x1a, 0x31, 0x94, 0xf3, 0xa3, 0x47, 0x18, 0x87, 0x24, 0x5d, 0x33,
+ 0x01, 0x9d, 0xde, 0xef, 0x09, 0x3f, 0x37, 0xb2, 0x82, 0x7a, 0xe1, 0x7a,
+ 0x56, 0x6e, 0xef, 0xe6, 0x24, 0x81, 0x1c, 0x9c, 0xc6, 0x79, 0x4a, 0x6a,
+ 0xe7, 0x84, 0x12, 0xc1,
+};
+static const unsigned char kat1129_addin0[] = {
+ 0xd5, 0x39, 0xde, 0x74, 0x65, 0x2c, 0xe1, 0xeb, 0xfa, 0xb5, 0xb4, 0x0c,
+ 0x1a, 0xac, 0x71, 0x55, 0xf6, 0x96, 0x74, 0xea, 0x89, 0xcb, 0xf2, 0xb3,
+ 0xb8, 0x3a, 0x97, 0x6c, 0x44, 0x8a, 0x61, 0x43, 0x0c, 0xc8, 0x50, 0xff,
+ 0x75, 0x32, 0xa5, 0x55,
+};
+static const unsigned char kat1129_addin1[] = {
+ 0xfd, 0x3d, 0x71, 0xc3, 0x41, 0x13, 0x03, 0xad, 0x37, 0xed, 0xcb, 0x96,
+ 0x35, 0x0c, 0x36, 0xa7, 0x22, 0x53, 0x32, 0x6f, 0xfb, 0x1e, 0xb9, 0xb0,
+ 0x6e, 0xb4, 0x41, 0x90, 0xf5, 0xc6, 0x25, 0x0a, 0xf5, 0x03, 0x2a, 0xb8,
+ 0xba, 0xe7, 0x1a, 0xc4,
+};
+static const unsigned char kat1129_retbits[] = {
+ 0x84, 0x78, 0x40, 0xed, 0xda, 0x6e, 0xcb, 0x54, 0x3e, 0x6c, 0x25, 0x81,
+ 0xd1, 0xa3, 0x26, 0x27, 0x98, 0x73, 0x82, 0x29, 0x78, 0x78, 0x8a, 0xe0,
+ 0x86, 0x31, 0x71, 0x25, 0x9c, 0xb2, 0x9b, 0xb0, 0xf7, 0x68, 0x74, 0x5d,
+ 0xfe, 0x41, 0xb9, 0xb6, 0xae, 0x8c, 0x37, 0x76, 0x9d, 0x95, 0x0c, 0x61,
+ 0x4c, 0x64, 0x4b, 0xd0, 0x43, 0x65, 0x54, 0x00, 0xce, 0x53, 0x41, 0x75,
+ 0x52, 0x72, 0x4d, 0x78,
+};
+static const struct drbg_kat_no_reseed kat1129_t = {
+ 3, kat1129_entropyin, kat1129_nonce, kat1129_persstr,
+ kat1129_addin0, kat1129_addin1, kat1129_retbits
+};
+static const struct drbg_kat kat1129 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1129_t
+};
+
+static const unsigned char kat1130_entropyin[] = {
+ 0x9e, 0xee, 0x03, 0xbb, 0x24, 0x30, 0xde, 0x56, 0xec, 0x78, 0xd4, 0x12,
+ 0xfd, 0x91, 0x7d, 0x1b, 0xf3, 0xd1, 0x08, 0xa7, 0xb0, 0x72, 0x68, 0xf3,
+ 0xf5, 0xdd, 0x6b, 0x3b, 0xfa, 0x18, 0x8d, 0x40, 0x06, 0x15, 0x0e, 0x69,
+ 0x19, 0x4a, 0x01, 0x68,
+};
+static const unsigned char kat1130_nonce[] = {0};
+static const unsigned char kat1130_persstr[] = {
+ 0x23, 0x2d, 0x59, 0xd3, 0xf2, 0x2b, 0x4e, 0xa5, 0x30, 0x52, 0x7a, 0x54,
+ 0xbc, 0xe5, 0xc0, 0x4f, 0x44, 0xdc, 0x25, 0xe1, 0xc6, 0x8a, 0x14, 0x59,
+ 0xe2, 0xeb, 0x14, 0xe8, 0x7f, 0x49, 0x69, 0x4f, 0xef, 0x87, 0x90, 0xe0,
+ 0xed, 0x25, 0x73, 0xa2,
+};
+static const unsigned char kat1130_addin0[] = {
+ 0x84, 0x0a, 0x90, 0xb0, 0x5b, 0x85, 0x2f, 0x8d, 0x8e, 0x33, 0x0c, 0xef,
+ 0x55, 0xbe, 0xd5, 0xa4, 0x0e, 0x5b, 0x4d, 0x45, 0x2d, 0x77, 0xee, 0x4d,
+ 0x5f, 0x89, 0x25, 0xe5, 0x4c, 0x3b, 0x0d, 0xd8, 0xf1, 0x0b, 0xc8, 0x5d,
+ 0xe9, 0x89, 0x09, 0x36,
+};
+static const unsigned char kat1130_addin1[] = {
+ 0xb7, 0x89, 0xc5, 0x03, 0xf6, 0x3c, 0x4b, 0x48, 0x75, 0xc9, 0xfc, 0x29,
+ 0x16, 0x94, 0x88, 0x5a, 0x5c, 0x2e, 0x16, 0x97, 0x62, 0x01, 0xd1, 0x81,
+ 0xff, 0xf3, 0x94, 0xa4, 0x69, 0x5e, 0xbf, 0x8d, 0xfc, 0x44, 0x19, 0x18,
+ 0x07, 0x58, 0x3d, 0x3d,
+};
+static const unsigned char kat1130_retbits[] = {
+ 0x5a, 0x69, 0x12, 0xeb, 0x82, 0xed, 0x76, 0xaf, 0xbe, 0x45, 0x5b, 0x93,
+ 0xbd, 0xd8, 0x1d, 0x75, 0x49, 0xea, 0xee, 0x7b, 0x99, 0x2c, 0x92, 0x2a,
+ 0x63, 0x35, 0x6e, 0xb3, 0x24, 0x26, 0x24, 0xec, 0x01, 0xd1, 0x4e, 0x64,
+ 0x23, 0x85, 0xec, 0xae, 0xd5, 0x0a, 0x89, 0x02, 0xa9, 0x6c, 0x9f, 0x5d,
+ 0xbb, 0x92, 0xe2, 0x68, 0x91, 0xa9, 0x7a, 0x00, 0xf8, 0x19, 0x1b, 0xa6,
+ 0x18, 0x81, 0xaa, 0x20,
+};
+static const struct drbg_kat_no_reseed kat1130_t = {
+ 4, kat1130_entropyin, kat1130_nonce, kat1130_persstr,
+ kat1130_addin0, kat1130_addin1, kat1130_retbits
+};
+static const struct drbg_kat kat1130 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1130_t
+};
+
+static const unsigned char kat1131_entropyin[] = {
+ 0x50, 0x3e, 0x6f, 0xe0, 0xac, 0xdd, 0x4e, 0x64, 0xed, 0xdc, 0xf5, 0x9c,
+ 0x88, 0x6c, 0x7a, 0x85, 0x15, 0x91, 0x59, 0x0e, 0x48, 0x23, 0x46, 0xf3,
+ 0x8c, 0x46, 0x1c, 0xe5, 0xbf, 0xa3, 0xeb, 0x1b, 0x78, 0x43, 0xdc, 0x9b,
+ 0x3d, 0x19, 0x7d, 0x06,
+};
+static const unsigned char kat1131_nonce[] = {0};
+static const unsigned char kat1131_persstr[] = {
+ 0xc3, 0xc0, 0x7b, 0x2c, 0xd5, 0xb3, 0x12, 0x07, 0xdc, 0x17, 0x11, 0x2b,
+ 0x27, 0xf7, 0xb7, 0xbe, 0xd1, 0x88, 0xc5, 0x2c, 0x0b, 0x8c, 0xcb, 0x55,
+ 0xe9, 0x62, 0xb7, 0x51, 0x26, 0x04, 0x30, 0xa5, 0x5f, 0x63, 0xd9, 0x2d,
+ 0xcf, 0x18, 0x75, 0xb7,
+};
+static const unsigned char kat1131_addin0[] = {
+ 0xd8, 0xcb, 0x98, 0xd2, 0x11, 0x77, 0x96, 0x28, 0x8c, 0x61, 0x6b, 0x27,
+ 0xe0, 0xa3, 0x66, 0xb9, 0x39, 0xea, 0xcf, 0xcf, 0x0c, 0x9a, 0x0e, 0xf8,
+ 0x14, 0x6d, 0xed, 0x82, 0x98, 0x13, 0xcf, 0xa3, 0x77, 0xc1, 0x44, 0x67,
+ 0x79, 0xee, 0xed, 0xf5,
+};
+static const unsigned char kat1131_addin1[] = {
+ 0xbc, 0x36, 0x78, 0x2d, 0x3a, 0x74, 0x36, 0x78, 0x3f, 0x07, 0x1e, 0xd8,
+ 0x19, 0x27, 0x64, 0x6a, 0xa7, 0xdf, 0xda, 0x1c, 0x87, 0xcd, 0x1f, 0xdd,
+ 0xf6, 0x7b, 0x59, 0xd3, 0xc0, 0x25, 0xb5, 0x8c, 0xbe, 0x18, 0x52, 0x63,
+ 0x54, 0x7d, 0x35, 0x37,
+};
+static const unsigned char kat1131_retbits[] = {
+ 0x1a, 0xf7, 0xf9, 0xc7, 0x69, 0xc2, 0xc6, 0xa9, 0x6f, 0x80, 0x87, 0x20,
+ 0x25, 0x22, 0x0b, 0x6c, 0xc5, 0xca, 0x2b, 0xee, 0x66, 0x64, 0xa0, 0x1f,
+ 0xff, 0x47, 0x62, 0xb0, 0x72, 0x0e, 0xe2, 0xa9, 0x84, 0x32, 0xcb, 0xc4,
+ 0x84, 0x59, 0x09, 0xf7, 0x01, 0xd8, 0x10, 0x93, 0x45, 0x90, 0x1d, 0xf5,
+ 0x37, 0xfb, 0xab, 0xcf, 0x75, 0xf4, 0x6c, 0xc3, 0xa1, 0x8a, 0x7c, 0x07,
+ 0x60, 0x94, 0x11, 0x05,
+};
+static const struct drbg_kat_no_reseed kat1131_t = {
+ 5, kat1131_entropyin, kat1131_nonce, kat1131_persstr,
+ kat1131_addin0, kat1131_addin1, kat1131_retbits
+};
+static const struct drbg_kat kat1131 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1131_t
+};
+
+static const unsigned char kat1132_entropyin[] = {
+ 0x99, 0xfc, 0xa5, 0x5c, 0x7e, 0x8d, 0x75, 0xa5, 0x4c, 0x2c, 0xbf, 0xb8,
+ 0x3a, 0xc5, 0x7e, 0xf2, 0x66, 0x4c, 0x49, 0x82, 0x70, 0xd3, 0x7b, 0xb5,
+ 0x37, 0x7f, 0x1e, 0x8f, 0x07, 0x5b, 0x9b, 0xba, 0x8e, 0xa0, 0xcc, 0x3f,
+ 0x92, 0x21, 0xcc, 0x76,
+};
+static const unsigned char kat1132_nonce[] = {0};
+static const unsigned char kat1132_persstr[] = {
+ 0xa0, 0xd7, 0x59, 0x87, 0xba, 0xcf, 0x99, 0xf2, 0xbc, 0x06, 0x1b, 0x8b,
+ 0x7d, 0x7e, 0x31, 0x9d, 0x68, 0x49, 0xbd, 0x01, 0x01, 0x2a, 0x05, 0xf0,
+ 0xc2, 0x63, 0xd5, 0x6f, 0xf5, 0x1d, 0x1a, 0x5e, 0x62, 0xe0, 0x88, 0x16,
+ 0xb5, 0x03, 0x3d, 0x62,
+};
+static const unsigned char kat1132_addin0[] = {
+ 0xa2, 0x9c, 0x00, 0x6a, 0x4e, 0x8c, 0xb8, 0x9c, 0xf1, 0x0e, 0x2a, 0x13,
+ 0xe7, 0xa7, 0x94, 0xfa, 0x8d, 0x9a, 0xd6, 0x3b, 0x18, 0x4b, 0xdd, 0x59,
+ 0xb2, 0xf4, 0xed, 0x81, 0x58, 0x2a, 0x6a, 0xbd, 0xef, 0x11, 0x95, 0xb5,
+ 0x3f, 0xc4, 0xa2, 0x66,
+};
+static const unsigned char kat1132_addin1[] = {
+ 0x82, 0x7e, 0x3d, 0x24, 0xb0, 0x2f, 0x0d, 0xe9, 0xad, 0xca, 0xca, 0x7d,
+ 0x22, 0x4b, 0xbd, 0x8d, 0x6d, 0xf5, 0x0d, 0x18, 0xcf, 0x41, 0x42, 0x57,
+ 0xb6, 0xd5, 0x53, 0xa4, 0x2b, 0x14, 0xe8, 0x3f, 0x2f, 0x54, 0xe2, 0x55,
+ 0x5e, 0x3f, 0xe1, 0x06,
+};
+static const unsigned char kat1132_retbits[] = {
+ 0x67, 0xa2, 0xc4, 0x48, 0x48, 0x8a, 0x1f, 0xc1, 0xe6, 0xbc, 0x64, 0xa3,
+ 0x38, 0x71, 0xc1, 0x5d, 0x89, 0x81, 0x91, 0x4f, 0x4b, 0x06, 0x3f, 0x78,
+ 0x1c, 0x9d, 0xd1, 0x03, 0xd6, 0xf9, 0x28, 0x2e, 0xdb, 0xcc, 0x14, 0x97,
+ 0xe4, 0xbd, 0x1a, 0xb3, 0x70, 0xad, 0xfa, 0x17, 0x0e, 0x25, 0xa7, 0x07,
+ 0xe1, 0xe4, 0x3e, 0x0c, 0xbd, 0x95, 0x02, 0xda, 0x6e, 0x6b, 0xb8, 0xe4,
+ 0xe4, 0x55, 0xd1, 0xc1,
+};
+static const struct drbg_kat_no_reseed kat1132_t = {
+ 6, kat1132_entropyin, kat1132_nonce, kat1132_persstr,
+ kat1132_addin0, kat1132_addin1, kat1132_retbits
+};
+static const struct drbg_kat kat1132 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1132_t
+};
+
+static const unsigned char kat1133_entropyin[] = {
+ 0xc5, 0x34, 0x42, 0xf6, 0x79, 0xca, 0xaa, 0xbb, 0x9c, 0x99, 0xaa, 0x01,
+ 0x9e, 0x6c, 0x63, 0xba, 0xde, 0xb8, 0xbf, 0x2d, 0xaf, 0x98, 0x4b, 0x9e,
+ 0x9c, 0xb7, 0x9c, 0x2b, 0x02, 0x5a, 0x40, 0xd2, 0x08, 0x70, 0x4d, 0x73,
+ 0x86, 0xb0, 0x7a, 0x8c,
+};
+static const unsigned char kat1133_nonce[] = {0};
+static const unsigned char kat1133_persstr[] = {
+ 0xbb, 0x12, 0x18, 0xbe, 0xb2, 0x9c, 0xdc, 0xb6, 0x8e, 0x38, 0x72, 0xdb,
+ 0x28, 0x68, 0x2d, 0x45, 0x91, 0x3a, 0xfb, 0x76, 0xb6, 0xd3, 0x5d, 0x8b,
+ 0x2b, 0x95, 0x07, 0xba, 0xe9, 0x12, 0x4f, 0x81, 0x93, 0x4d, 0x96, 0xaa,
+ 0x68, 0xf1, 0x90, 0xdb,
+};
+static const unsigned char kat1133_addin0[] = {
+ 0xce, 0x35, 0x39, 0x9e, 0x1f, 0x43, 0xb2, 0x61, 0x1d, 0x41, 0xe2, 0x4f,
+ 0x41, 0x7d, 0x42, 0xec, 0x86, 0xfa, 0xbe, 0x8f, 0x25, 0x3b, 0x87, 0xba,
+ 0xc6, 0x3d, 0xe8, 0x17, 0xab, 0x22, 0x81, 0xf6, 0x7a, 0xe6, 0x88, 0x8d,
+ 0x7a, 0x9d, 0xfe, 0xde,
+};
+static const unsigned char kat1133_addin1[] = {
+ 0x0a, 0x27, 0x8a, 0x9a, 0x22, 0x5c, 0xd0, 0xff, 0x6f, 0x2e, 0x97, 0x15,
+ 0x78, 0x96, 0x20, 0x36, 0xf5, 0xef, 0xc7, 0xeb, 0xfa, 0x24, 0xc2, 0xd0,
+ 0x35, 0xb5, 0xdd, 0x28, 0x75, 0xab, 0x81, 0x44, 0x08, 0xda, 0x49, 0x9b,
+ 0x98, 0xfe, 0x31, 0x6f,
+};
+static const unsigned char kat1133_retbits[] = {
+ 0x1e, 0xc0, 0x0d, 0x83, 0xfa, 0x60, 0xf4, 0x87, 0x43, 0x89, 0xac, 0xa5,
+ 0x4e, 0xae, 0x3d, 0xcb, 0x00, 0x56, 0x27, 0x62, 0x58, 0xdc, 0x08, 0x52,
+ 0xde, 0x98, 0x25, 0xdb, 0xa1, 0x04, 0x97, 0xdf, 0xb7, 0xfe, 0xb3, 0x19,
+ 0xb2, 0x8b, 0xa1, 0xdc, 0x5a, 0xa4, 0x0a, 0x5f, 0x12, 0x2e, 0xcc, 0xc6,
+ 0x74, 0x3b, 0xf2, 0xf1, 0x24, 0xcb, 0xf2, 0x82, 0xac, 0x8a, 0x89, 0x9f,
+ 0x85, 0xf1, 0xa7, 0xa6,
+};
+static const struct drbg_kat_no_reseed kat1133_t = {
+ 7, kat1133_entropyin, kat1133_nonce, kat1133_persstr,
+ kat1133_addin0, kat1133_addin1, kat1133_retbits
+};
+static const struct drbg_kat kat1133 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1133_t
+};
+
+static const unsigned char kat1134_entropyin[] = {
+ 0x1b, 0xd8, 0x0f, 0x2e, 0x67, 0x5d, 0x87, 0x59, 0x1c, 0x60, 0x89, 0xf4,
+ 0x78, 0x89, 0xd0, 0x72, 0x0f, 0xa7, 0xa8, 0x46, 0x7c, 0x9d, 0xc2, 0x98,
+ 0x00, 0x65, 0x06, 0x57, 0x9e, 0x9d, 0xe7, 0x25, 0xbe, 0x11, 0x3b, 0x0e,
+ 0x21, 0x9a, 0x9f, 0x67,
+};
+static const unsigned char kat1134_nonce[] = {0};
+static const unsigned char kat1134_persstr[] = {
+ 0x90, 0x1b, 0x44, 0x91, 0xda, 0x7f, 0x84, 0x92, 0xb6, 0xea, 0x91, 0x46,
+ 0x30, 0xaf, 0x93, 0xe7, 0xa1, 0xc1, 0xb2, 0x99, 0x05, 0xe1, 0x48, 0x4d,
+ 0x6a, 0x1b, 0x9a, 0x04, 0x3c, 0x22, 0xbd, 0xba, 0x3a, 0x02, 0xbf, 0x6a,
+ 0xb1, 0x62, 0x7c, 0xb5,
+};
+static const unsigned char kat1134_addin0[] = {
+ 0xcf, 0x2c, 0x31, 0x01, 0xdd, 0x6a, 0xaf, 0x06, 0x84, 0xd1, 0xe4, 0x98,
+ 0xfc, 0xce, 0x47, 0xa8, 0x35, 0xd6, 0x4b, 0x9b, 0xd1, 0x5c, 0xe6, 0x06,
+ 0x9c, 0x8a, 0xce, 0x6f, 0xb1, 0x7b, 0x36, 0x92, 0xc4, 0x76, 0xdd, 0xde,
+ 0xb5, 0x65, 0xec, 0x0d,
+};
+static const unsigned char kat1134_addin1[] = {
+ 0xe5, 0x82, 0x34, 0xd0, 0xd8, 0x82, 0x67, 0x05, 0xf4, 0x00, 0xfe, 0xff,
+ 0x72, 0x64, 0x1c, 0xb4, 0x2c, 0x02, 0x07, 0x9c, 0xc4, 0xd9, 0x75, 0x1c,
+ 0x00, 0x37, 0x78, 0xbe, 0xd4, 0x5f, 0x2d, 0x50, 0xc3, 0x97, 0xd6, 0x99,
+ 0xc6, 0x53, 0x00, 0x3d,
+};
+static const unsigned char kat1134_retbits[] = {
+ 0x74, 0x4d, 0x1f, 0xca, 0x65, 0xaf, 0x43, 0x6a, 0x0c, 0x55, 0x5a, 0xf1,
+ 0x97, 0x00, 0x17, 0xe1, 0xba, 0x4c, 0x37, 0xf0, 0x85, 0xf7, 0x3b, 0xf4,
+ 0xe6, 0x69, 0x96, 0x36, 0x9f, 0x5a, 0x6b, 0x52, 0xbd, 0x93, 0xa5, 0xe0,
+ 0x68, 0x4a, 0xd1, 0x1c, 0xae, 0x56, 0x91, 0xe7, 0x65, 0x49, 0x6c, 0x35,
+ 0x08, 0xbc, 0x1e, 0x50, 0x90, 0x37, 0xc2, 0xbe, 0x83, 0x55, 0xa2, 0x9c,
+ 0x6b, 0x32, 0x61, 0x12,
+};
+static const struct drbg_kat_no_reseed kat1134_t = {
+ 8, kat1134_entropyin, kat1134_nonce, kat1134_persstr,
+ kat1134_addin0, kat1134_addin1, kat1134_retbits
+};
+static const struct drbg_kat kat1134 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1134_t
+};
+
+static const unsigned char kat1135_entropyin[] = {
+ 0xb5, 0x59, 0x81, 0xbe, 0x58, 0xa1, 0xdf, 0x6c, 0x69, 0xfc, 0x91, 0x05,
+ 0xa5, 0x47, 0x57, 0x40, 0xef, 0xe9, 0xcf, 0x09, 0xe1, 0xb3, 0xfc, 0xe2,
+ 0x49, 0xaa, 0xdb, 0x46, 0x1f, 0x1f, 0xfc, 0xac, 0xc1, 0xac, 0xd8, 0x29,
+ 0x0b, 0xff, 0x03, 0xd3,
+};
+static const unsigned char kat1135_nonce[] = {0};
+static const unsigned char kat1135_persstr[] = {
+ 0xae, 0x53, 0x33, 0xfa, 0x93, 0xc5, 0x32, 0xda, 0x50, 0x3e, 0x58, 0x00,
+ 0xaf, 0x99, 0x4e, 0x0d, 0xc2, 0x57, 0x0e, 0x5a, 0x32, 0xa8, 0x02, 0xc2,
+ 0x12, 0x06, 0x18, 0x5a, 0x79, 0x56, 0x44, 0x33, 0xb5, 0x81, 0x1c, 0x42,
+ 0x71, 0x55, 0x55, 0x94,
+};
+static const unsigned char kat1135_addin0[] = {
+ 0x98, 0xcb, 0x86, 0x0a, 0x53, 0xe7, 0xb6, 0xe6, 0x4e, 0x87, 0x4b, 0x07,
+ 0xf3, 0x1b, 0x36, 0x44, 0xff, 0x37, 0x99, 0x4a, 0x67, 0x6e, 0x31, 0xe6,
+ 0x24, 0x52, 0x15, 0xe3, 0xff, 0x0d, 0x5f, 0x34, 0xdd, 0x98, 0xda, 0xe1,
+ 0x53, 0x5c, 0x96, 0x5a,
+};
+static const unsigned char kat1135_addin1[] = {
+ 0x37, 0x67, 0x95, 0x31, 0xc9, 0xfd, 0xd3, 0x65, 0x51, 0x4f, 0x57, 0x8d,
+ 0x0e, 0xdb, 0x19, 0xc2, 0x5e, 0xc6, 0x13, 0x24, 0x23, 0x4b, 0x96, 0x3f,
+ 0x9b, 0x0f, 0xac, 0xba, 0xc3, 0xcb, 0xe3, 0x83, 0xed, 0xaa, 0xb2, 0xfd,
+ 0x8d, 0x0a, 0xfb, 0x0c,
+};
+static const unsigned char kat1135_retbits[] = {
+ 0xec, 0x49, 0x1d, 0xe0, 0x75, 0x88, 0xf7, 0x5b, 0x9a, 0x88, 0xdb, 0x02,
+ 0xb4, 0x11, 0x5f, 0xbb, 0xe3, 0xda, 0x26, 0xe8, 0xb7, 0x53, 0xb8, 0x65,
+ 0x47, 0xc2, 0x3f, 0xe7, 0x08, 0x85, 0xf2, 0x2a, 0x0c, 0xe0, 0x7a, 0x54,
+ 0xa3, 0xca, 0xc1, 0xa2, 0x6f, 0x82, 0xff, 0x84, 0x58, 0xb8, 0x20, 0xb6,
+ 0xd6, 0x0b, 0xc3, 0xb3, 0xe3, 0xba, 0x82, 0xf2, 0x10, 0xdd, 0xd0, 0x4d,
+ 0x95, 0x17, 0xe9, 0x7f,
+};
+static const struct drbg_kat_no_reseed kat1135_t = {
+ 9, kat1135_entropyin, kat1135_nonce, kat1135_persstr,
+ kat1135_addin0, kat1135_addin1, kat1135_retbits
+};
+static const struct drbg_kat kat1135 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1135_t
+};
+
+static const unsigned char kat1136_entropyin[] = {
+ 0x92, 0xa2, 0x9d, 0x6e, 0x9d, 0xd7, 0x82, 0x56, 0xa6, 0xf8, 0xe5, 0x3c,
+ 0x80, 0x5d, 0x2c, 0xd6, 0x0e, 0x56, 0xab, 0x68, 0x8b, 0xe2, 0xae, 0x3c,
+ 0x86, 0xc8, 0x40, 0x7b, 0x57, 0x1a, 0x22, 0xa6, 0xdc, 0xd9, 0x82, 0xd4,
+ 0xd2, 0x6d, 0xd9, 0xdf,
+};
+static const unsigned char kat1136_nonce[] = {0};
+static const unsigned char kat1136_persstr[] = {
+ 0x5c, 0x0d, 0x2c, 0xfd, 0x68, 0xcf, 0x33, 0xf2, 0x3b, 0x53, 0x92, 0x77,
+ 0x8d, 0x4f, 0x55, 0x62, 0x22, 0xbf, 0xd8, 0x28, 0x9a, 0xcb, 0x45, 0x8d,
+ 0x7c, 0xdb, 0xbe, 0x9e, 0xde, 0x29, 0x44, 0xee, 0x80, 0xdb, 0x79, 0x6c,
+ 0x0d, 0x24, 0xb6, 0xe9,
+};
+static const unsigned char kat1136_addin0[] = {
+ 0xd8, 0xed, 0xe8, 0x2f, 0x04, 0x22, 0x99, 0xfe, 0xb1, 0xe7, 0xf5, 0xfe,
+ 0xbd, 0x1e, 0x16, 0x22, 0xd4, 0x61, 0x13, 0xcf, 0x3f, 0xc1, 0xac, 0xfb,
+ 0xb8, 0xcd, 0xdc, 0x4b, 0x49, 0x9a, 0x35, 0x9e, 0x14, 0xcc, 0xc9, 0x4f,
+ 0xda, 0x1d, 0xa8, 0x3b,
+};
+static const unsigned char kat1136_addin1[] = {
+ 0xc5, 0x93, 0x79, 0x9d, 0x69, 0xdd, 0x85, 0x11, 0x91, 0xd9, 0xc9, 0xb3,
+ 0xba, 0x00, 0xbd, 0xdb, 0x50, 0x83, 0x16, 0x0b, 0x5d, 0x32, 0xcb, 0xbb,
+ 0x6d, 0xdc, 0xe7, 0x68, 0x20, 0x65, 0x2b, 0x04, 0x70, 0x2a, 0x80, 0xfb,
+ 0x8e, 0x11, 0xd3, 0x84,
+};
+static const unsigned char kat1136_retbits[] = {
+ 0x70, 0x20, 0x86, 0x99, 0x10, 0x2b, 0x6b, 0x7f, 0xe9, 0x55, 0x7c, 0x31,
+ 0xf8, 0x02, 0xc1, 0xf5, 0xa9, 0xb9, 0x4e, 0x4c, 0xe4, 0x03, 0xb9, 0x1e,
+ 0xd8, 0xb1, 0x09, 0xa8, 0x4c, 0x88, 0x60, 0x61, 0x30, 0xff, 0x5d, 0x29,
+ 0xa6, 0xd3, 0xc9, 0x87, 0xaf, 0xba, 0xa4, 0xd7, 0x73, 0x03, 0x0b, 0x29,
+ 0xc6, 0xc6, 0x20, 0x47, 0x31, 0x14, 0xa2, 0xff, 0x9c, 0x2e, 0xc3, 0xf2,
+ 0x8b, 0x21, 0x1f, 0xd7,
+};
+static const struct drbg_kat_no_reseed kat1136_t = {
+ 10, kat1136_entropyin, kat1136_nonce, kat1136_persstr,
+ kat1136_addin0, kat1136_addin1, kat1136_retbits
+};
+static const struct drbg_kat kat1136 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1136_t
+};
+
+static const unsigned char kat1137_entropyin[] = {
+ 0x5b, 0x02, 0x9c, 0x45, 0x71, 0xfd, 0x64, 0x3b, 0x7e, 0x90, 0x46, 0xbf,
+ 0xa0, 0xb7, 0x74, 0x1c, 0x49, 0x48, 0x12, 0x5e, 0x1a, 0xfc, 0x3a, 0xdc,
+ 0xa4, 0x43, 0xa5, 0x10, 0xa2, 0x80, 0x0d, 0x4c, 0xc2, 0xed, 0x4e, 0x7d,
+ 0x97, 0xa7, 0x1f, 0x27,
+};
+static const unsigned char kat1137_nonce[] = {0};
+static const unsigned char kat1137_persstr[] = {
+ 0xcf, 0x92, 0xf9, 0xc2, 0x01, 0x0a, 0xcf, 0xc6, 0xd2, 0xd8, 0xf1, 0x51,
+ 0xc8, 0x35, 0xf0, 0x96, 0xd5, 0xc8, 0xaa, 0x20, 0xcf, 0x9f, 0x84, 0xe1,
+ 0x59, 0x10, 0xf7, 0xc9, 0x1d, 0xba, 0xf1, 0xd2, 0x57, 0x1d, 0xc2, 0x1a,
+ 0x57, 0x8d, 0x02, 0x0c,
+};
+static const unsigned char kat1137_addin0[] = {
+ 0x31, 0x0e, 0x3f, 0xcf, 0x56, 0x03, 0xa5, 0x1e, 0x8a, 0x75, 0x30, 0xed,
+ 0x5c, 0x1d, 0x9b, 0x4f, 0x66, 0x8d, 0xc2, 0x0f, 0x8d, 0x2f, 0xae, 0x75,
+ 0x22, 0x14, 0x39, 0x1f, 0x42, 0xba, 0x7c, 0xc5, 0x33, 0xd9, 0x4a, 0x20,
+ 0xc8, 0x17, 0x25, 0x6d,
+};
+static const unsigned char kat1137_addin1[] = {
+ 0xcc, 0x00, 0xf2, 0xb0, 0x76, 0x22, 0xad, 0x7b, 0x40, 0xae, 0xf5, 0x64,
+ 0x42, 0xee, 0xfc, 0x10, 0x0c, 0x68, 0xd1, 0xdd, 0xc4, 0xc4, 0x7d, 0xfa,
+ 0xf7, 0x80, 0x46, 0xcd, 0x6f, 0x5e, 0x2e, 0x09, 0x19, 0xe1, 0xff, 0xd4,
+ 0x04, 0x06, 0xd9, 0x0e,
+};
+static const unsigned char kat1137_retbits[] = {
+ 0xc7, 0xa0, 0xf3, 0x02, 0xc7, 0x00, 0x5c, 0x10, 0x10, 0xf3, 0x79, 0x78,
+ 0x75, 0xfb, 0x4d, 0xaa, 0x0f, 0x44, 0x1d, 0x84, 0x28, 0x86, 0xec, 0x14,
+ 0xe8, 0x38, 0xfc, 0x90, 0x41, 0x36, 0x4e, 0x4e, 0x8a, 0x31, 0x55, 0x64,
+ 0xdf, 0x67, 0x1b, 0xad, 0xef, 0x5f, 0xc6, 0x5e, 0x13, 0xa3, 0xb8, 0xed,
+ 0xce, 0x4c, 0x89, 0x21, 0xeb, 0xa4, 0x48, 0x24, 0x7b, 0xe6, 0xae, 0x02,
+ 0xac, 0xfc, 0x95, 0xc9,
+};
+static const struct drbg_kat_no_reseed kat1137_t = {
+ 11, kat1137_entropyin, kat1137_nonce, kat1137_persstr,
+ kat1137_addin0, kat1137_addin1, kat1137_retbits
+};
+static const struct drbg_kat kat1137 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1137_t
+};
+
+static const unsigned char kat1138_entropyin[] = {
+ 0xc6, 0x41, 0xe9, 0xda, 0xc4, 0x08, 0xe8, 0xd6, 0x99, 0xe8, 0x95, 0x50,
+ 0x01, 0x94, 0xe0, 0xd6, 0xe2, 0xf6, 0xd5, 0x20, 0xae, 0x00, 0x67, 0x66,
+ 0x2c, 0xc4, 0x95, 0x13, 0x76, 0xe5, 0x49, 0xa2, 0xc5, 0x58, 0x5e, 0xa1,
+ 0x3d, 0x00, 0x71, 0x5c,
+};
+static const unsigned char kat1138_nonce[] = {0};
+static const unsigned char kat1138_persstr[] = {
+ 0x84, 0xa5, 0x85, 0xa8, 0xef, 0x75, 0x85, 0xc5, 0x85, 0x8d, 0x41, 0x54,
+ 0xb5, 0xa6, 0x4b, 0xd1, 0x2c, 0xe2, 0x28, 0x6f, 0xb9, 0x53, 0x58, 0x6d,
+ 0x17, 0x50, 0xcf, 0xc1, 0xab, 0xbc, 0x32, 0xac, 0x7c, 0xec, 0x77, 0x01,
+ 0x46, 0x4f, 0x2f, 0x69,
+};
+static const unsigned char kat1138_addin0[] = {
+ 0x3d, 0x20, 0x44, 0x7e, 0x1a, 0x80, 0xa8, 0x24, 0x0c, 0x91, 0xf3, 0xb7,
+ 0x38, 0x2f, 0x61, 0x49, 0x8c, 0xd8, 0xe0, 0x84, 0xc7, 0x4b, 0x18, 0x88,
+ 0xeb, 0xc9, 0x8d, 0xfd, 0xff, 0x3e, 0xe7, 0xcf, 0xe1, 0x12, 0xe7, 0x20,
+ 0x48, 0x8d, 0xf2, 0x4e,
+};
+static const unsigned char kat1138_addin1[] = {
+ 0xdf, 0xb0, 0x06, 0x04, 0x9a, 0xe7, 0x72, 0x7d, 0x44, 0xba, 0xae, 0xa5,
+ 0x3d, 0x6f, 0x87, 0xe7, 0x35, 0x80, 0x6b, 0x77, 0x43, 0x2f, 0x0b, 0x47,
+ 0x43, 0xda, 0xaa, 0xd7, 0x49, 0xca, 0x73, 0x7e, 0xc4, 0x6e, 0x92, 0xcd,
+ 0x15, 0x93, 0xe5, 0x82,
+};
+static const unsigned char kat1138_retbits[] = {
+ 0x9a, 0xbe, 0x0d, 0x01, 0x19, 0xb7, 0xf3, 0xef, 0x7d, 0xc1, 0x7b, 0x18,
+ 0xa4, 0x1a, 0xd9, 0x33, 0x4c, 0x91, 0x89, 0xbd, 0x1d, 0x51, 0x2f, 0x75,
+ 0x64, 0xef, 0x67, 0xb8, 0x68, 0xd5, 0xf8, 0x88, 0x16, 0x81, 0x2d, 0x8f,
+ 0x58, 0x54, 0x45, 0x59, 0xfd, 0x0f, 0x4b, 0x4b, 0xc6, 0x7a, 0x60, 0x51,
+ 0xf3, 0x25, 0x05, 0xde, 0x38, 0x24, 0xcb, 0x57, 0x7d, 0x21, 0x5e, 0x51,
+ 0x6b, 0xf9, 0x1d, 0x6e,
+};
+static const struct drbg_kat_no_reseed kat1138_t = {
+ 12, kat1138_entropyin, kat1138_nonce, kat1138_persstr,
+ kat1138_addin0, kat1138_addin1, kat1138_retbits
+};
+static const struct drbg_kat kat1138 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1138_t
+};
+
+static const unsigned char kat1139_entropyin[] = {
+ 0x36, 0xf4, 0xa1, 0xb0, 0x30, 0x04, 0xf7, 0x07, 0x06, 0xeb, 0x81, 0xf3,
+ 0x87, 0xa2, 0x30, 0x68, 0xb8, 0xdf, 0xde, 0x8d, 0xfe, 0xc8, 0x7d, 0xed,
+ 0xc9, 0xa5, 0xc7, 0xc9, 0x96, 0x49, 0x69, 0x62, 0x76, 0x4d, 0x7c, 0x8f,
+ 0xa7, 0x1e, 0x64, 0xef,
+};
+static const unsigned char kat1139_nonce[] = {0};
+static const unsigned char kat1139_persstr[] = {
+ 0xb3, 0x49, 0x17, 0x1a, 0xb7, 0xbd, 0x18, 0xe2, 0x8f, 0x61, 0x2b, 0xe9,
+ 0x95, 0x5c, 0x05, 0x8e, 0x6a, 0x92, 0xd3, 0x89, 0x28, 0x62, 0x0b, 0x09,
+ 0x33, 0x0d, 0x2a, 0x7b, 0xcf, 0xea, 0x43, 0x5f, 0xea, 0x11, 0x54, 0x94,
+ 0x3f, 0xd0, 0xa8, 0x89,
+};
+static const unsigned char kat1139_addin0[] = {
+ 0x3d, 0x84, 0x17, 0x4d, 0x19, 0x2e, 0xf0, 0x2c, 0xbc, 0xf0, 0x57, 0x65,
+ 0x22, 0x8f, 0x21, 0xc7, 0x96, 0xcd, 0x09, 0xf9, 0x68, 0x90, 0xea, 0x6d,
+ 0x45, 0x87, 0x9a, 0x11, 0x99, 0x1e, 0xe1, 0x6a, 0xa6, 0x19, 0xc8, 0x55,
+ 0xbd, 0x53, 0x07, 0x87,
+};
+static const unsigned char kat1139_addin1[] = {
+ 0x68, 0xac, 0x7f, 0x7b, 0x56, 0x89, 0x68, 0x3a, 0xb3, 0x47, 0x39, 0x80,
+ 0x82, 0x19, 0x5f, 0xc4, 0x18, 0x1b, 0x7f, 0x3a, 0x51, 0xa9, 0x80, 0xbf,
+ 0x7e, 0x21, 0xde, 0xa7, 0x56, 0xad, 0xa3, 0xc9, 0x02, 0x04, 0x48, 0x94,
+ 0x95, 0x1b, 0x96, 0x4b,
+};
+static const unsigned char kat1139_retbits[] = {
+ 0xf4, 0x30, 0xda, 0x38, 0xec, 0xa9, 0x52, 0x74, 0x48, 0x3b, 0xea, 0xc0,
+ 0x3d, 0x6a, 0xb7, 0xc9, 0x78, 0x21, 0x98, 0x2f, 0x9e, 0xe5, 0xd5, 0x6c,
+ 0x9c, 0xfe, 0x34, 0x5a, 0x38, 0xcf, 0xe5, 0x84, 0xc4, 0xa2, 0x89, 0x98,
+ 0x8a, 0x19, 0x6e, 0x80, 0x27, 0x2c, 0x7c, 0xfe, 0x8d, 0xae, 0x88, 0xda,
+ 0x76, 0x53, 0x46, 0x51, 0x78, 0x09, 0x47, 0xd6, 0xff, 0xfb, 0xc3, 0x1e,
+ 0x1b, 0x00, 0xd5, 0x1a,
+};
+static const struct drbg_kat_no_reseed kat1139_t = {
+ 13, kat1139_entropyin, kat1139_nonce, kat1139_persstr,
+ kat1139_addin0, kat1139_addin1, kat1139_retbits
+};
+static const struct drbg_kat kat1139 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1139_t
+};
+
+static const unsigned char kat1140_entropyin[] = {
+ 0x0f, 0x1a, 0xfc, 0x90, 0xbb, 0x04, 0xe2, 0x7d, 0xf4, 0x8e, 0x0a, 0xf7,
+ 0xdb, 0xdb, 0x65, 0xee, 0x68, 0x83, 0x72, 0xbe, 0x1b, 0x7e, 0x9d, 0xab,
+ 0xe2, 0x6f, 0x03, 0x4d, 0xb1, 0xbf, 0xeb, 0x1b, 0x14, 0xda, 0x62, 0x80,
+ 0xb2, 0x88, 0xf5, 0x95,
+};
+static const unsigned char kat1140_nonce[] = {0};
+static const unsigned char kat1140_persstr[] = {
+ 0x4c, 0xf6, 0x9b, 0xaf, 0x93, 0x94, 0x8a, 0xba, 0x55, 0xfb, 0x49, 0x47,
+ 0x1c, 0x79, 0xc7, 0xc4, 0xb2, 0x30, 0xdc, 0x06, 0x1c, 0x28, 0xd4, 0xb5,
+ 0x11, 0x34, 0xe1, 0xef, 0xba, 0x84, 0xc1, 0x24, 0x02, 0xc2, 0xd2, 0x4a,
+ 0x12, 0x39, 0xf0, 0x3e,
+};
+static const unsigned char kat1140_addin0[] = {
+ 0x28, 0xcb, 0x3c, 0xec, 0xec, 0x57, 0x05, 0xc0, 0x20, 0xd8, 0xa3, 0xed,
+ 0xb8, 0x07, 0x9e, 0x00, 0x40, 0x50, 0xd4, 0x80, 0xef, 0xee, 0x70, 0xfa,
+ 0xec, 0x7e, 0x1b, 0x00, 0xe2, 0x56, 0xd0, 0x00, 0x20, 0x7e, 0x51, 0x19,
+ 0x23, 0xce, 0xdb, 0x93,
+};
+static const unsigned char kat1140_addin1[] = {
+ 0xbf, 0x2d, 0x13, 0x8b, 0x18, 0xcd, 0x6f, 0x6c, 0x69, 0x89, 0x01, 0xdb,
+ 0x8b, 0x60, 0x5b, 0x59, 0x8b, 0x0c, 0x3e, 0xc9, 0xfb, 0x0b, 0x14, 0xf9,
+ 0xb5, 0x86, 0xb7, 0x91, 0xab, 0x69, 0x76, 0x71, 0x7f, 0xcd, 0xda, 0x68,
+ 0xe4, 0x2e, 0x08, 0x3c,
+};
+static const unsigned char kat1140_retbits[] = {
+ 0xfe, 0xbe, 0x35, 0x8e, 0x4d, 0xaf, 0x7e, 0x19, 0x38, 0xd8, 0xc0, 0x75,
+ 0x6a, 0xe3, 0x95, 0x31, 0xb1, 0xbc, 0x49, 0x7e, 0x60, 0x3f, 0x91, 0xc7,
+ 0xaa, 0x22, 0x03, 0x32, 0x76, 0x04, 0x14, 0x4e, 0xb4, 0x42, 0xad, 0x2e,
+ 0xfe, 0xe1, 0xfe, 0x9b, 0x1b, 0xbc, 0xf3, 0x3a, 0x5e, 0xaf, 0xa9, 0x4c,
+ 0x3c, 0x04, 0xd5, 0x83, 0x63, 0x1b, 0x91, 0xfe, 0x55, 0x0d, 0xaf, 0x22,
+ 0x7d, 0x5c, 0xc0, 0x5d,
+};
+static const struct drbg_kat_no_reseed kat1140_t = {
+ 14, kat1140_entropyin, kat1140_nonce, kat1140_persstr,
+ kat1140_addin0, kat1140_addin1, kat1140_retbits
+};
+static const struct drbg_kat kat1140 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1140_t
+};
+
+static const unsigned char kat1141_entropyin[] = {
+ 0x57, 0xba, 0xaf, 0xe6, 0x34, 0x5d, 0xb0, 0x9f, 0x64, 0xa6, 0xdc, 0xfc,
+ 0xd0, 0x15, 0x02, 0x67, 0x27, 0xde, 0x8d, 0x67, 0xbd, 0x6e, 0x90, 0x8a,
+ 0xbd, 0xde, 0x11, 0xe9, 0xea, 0x07, 0xbf, 0x03, 0x7c, 0x92, 0x61, 0xfd,
+ 0x0f, 0xa9, 0x1f, 0xf9,
+};
+static const unsigned char kat1141_nonce[] = {0};
+static const unsigned char kat1141_persstr[] = {0};
+static const unsigned char kat1141_addin0[] = {0};
+static const unsigned char kat1141_addin1[] = {0};
+static const unsigned char kat1141_retbits[] = {
+ 0xe3, 0x79, 0xa1, 0x00, 0x8a, 0x57, 0x1c, 0xc7, 0xfb, 0x1f, 0x71, 0x76,
+ 0x4c, 0x1c, 0x1a, 0x7e, 0xe8, 0xe0, 0x75, 0x2d, 0xf4, 0xc0, 0x38, 0xb2,
+ 0xb1, 0x62, 0xe0, 0x21, 0x7c, 0x56, 0xde, 0x4e, 0x5d, 0x2a, 0x52, 0xb8,
+ 0x5b, 0x98, 0x8e, 0xce, 0x21, 0xb2, 0x11, 0x01, 0xbb, 0x13, 0xf2, 0x3c,
+ 0x38, 0x2f, 0x81, 0x2c, 0xe3, 0x11, 0x0d, 0x94, 0x4a, 0x59, 0x4b, 0xf6,
+ 0x83, 0x12, 0x73, 0xdc,
+};
+static const struct drbg_kat_no_reseed kat1141_t = {
+ 0, kat1141_entropyin, kat1141_nonce, kat1141_persstr,
+ kat1141_addin0, kat1141_addin1, kat1141_retbits
+};
+static const struct drbg_kat kat1141 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1141_t
+};
+
+static const unsigned char kat1142_entropyin[] = {
+ 0x1a, 0x58, 0x63, 0x78, 0xc3, 0x66, 0xaf, 0x5c, 0xe0, 0x03, 0xae, 0x0c,
+ 0x0b, 0x97, 0x0b, 0xa8, 0xb4, 0xcf, 0x98, 0x18, 0x17, 0xd5, 0x01, 0x24,
+ 0xcb, 0x47, 0xb8, 0x39, 0xda, 0x20, 0x8e, 0x92, 0x9f, 0x59, 0x27, 0x23,
+ 0x21, 0x98, 0x0a, 0xb4,
+};
+static const unsigned char kat1142_nonce[] = {0};
+static const unsigned char kat1142_persstr[] = {0};
+static const unsigned char kat1142_addin0[] = {0};
+static const unsigned char kat1142_addin1[] = {0};
+static const unsigned char kat1142_retbits[] = {
+ 0xdd, 0x4f, 0x02, 0xfe, 0x69, 0xef, 0xb5, 0xcc, 0x00, 0x76, 0xda, 0x25,
+ 0x13, 0x6f, 0x73, 0x67, 0x3c, 0xf2, 0xba, 0x38, 0x63, 0x5b, 0x5b, 0x1d,
+ 0xd7, 0x9b, 0xab, 0xd6, 0x21, 0xeb, 0x4c, 0x2b, 0x6b, 0xe3, 0xe9, 0xde,
+ 0xbf, 0x43, 0xa7, 0xa2, 0xa7, 0x47, 0xf4, 0xd6, 0xd6, 0x86, 0x1e, 0xa1,
+ 0xad, 0x32, 0xef, 0x70, 0x8f, 0xc9, 0x8d, 0x7b, 0xcf, 0xe1, 0xdc, 0xd3,
+ 0xc7, 0x15, 0x17, 0x5f,
+};
+static const struct drbg_kat_no_reseed kat1142_t = {
+ 1, kat1142_entropyin, kat1142_nonce, kat1142_persstr,
+ kat1142_addin0, kat1142_addin1, kat1142_retbits
+};
+static const struct drbg_kat kat1142 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1142_t
+};
+
+static const unsigned char kat1143_entropyin[] = {
+ 0x7f, 0xfe, 0x0a, 0x1a, 0x9d, 0x05, 0xe3, 0xac, 0xc9, 0x69, 0x80, 0x88,
+ 0xbb, 0x03, 0x4d, 0x6f, 0xf7, 0x9a, 0x4c, 0x45, 0xd2, 0x3a, 0x15, 0x44,
+ 0xcc, 0xbf, 0x94, 0xe4, 0xd4, 0xe5, 0xbe, 0x2b, 0x8c, 0x90, 0x2d, 0x63,
+ 0xb7, 0x5e, 0xc9, 0x76,
+};
+static const unsigned char kat1143_nonce[] = {0};
+static const unsigned char kat1143_persstr[] = {0};
+static const unsigned char kat1143_addin0[] = {0};
+static const unsigned char kat1143_addin1[] = {0};
+static const unsigned char kat1143_retbits[] = {
+ 0x09, 0x78, 0x45, 0xf0, 0x9c, 0x3e, 0x70, 0xd9, 0x57, 0xaa, 0x6b, 0x21,
+ 0x1f, 0xdf, 0xbc, 0x83, 0xab, 0xc4, 0xe5, 0x22, 0x4d, 0x0d, 0x40, 0x12,
+ 0x3e, 0xf8, 0xc9, 0x44, 0x3a, 0xf4, 0x6a, 0x27, 0x3b, 0x6f, 0x99, 0x85,
+ 0xb9, 0x02, 0x53, 0x74, 0x4f, 0x37, 0x60, 0x2c, 0x9b, 0x71, 0x66, 0x45,
+ 0x8c, 0x37, 0x0a, 0xbb, 0xa3, 0xc9, 0x70, 0x1f, 0xec, 0x7c, 0xe3, 0xe7,
+ 0x8f, 0x34, 0x0e, 0x44,
+};
+static const struct drbg_kat_no_reseed kat1143_t = {
+ 2, kat1143_entropyin, kat1143_nonce, kat1143_persstr,
+ kat1143_addin0, kat1143_addin1, kat1143_retbits
+};
+static const struct drbg_kat kat1143 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1143_t
+};
+
+static const unsigned char kat1144_entropyin[] = {
+ 0xe9, 0x34, 0x75, 0x96, 0xbb, 0xae, 0x3b, 0x2b, 0x2f, 0x8f, 0xd1, 0xd9,
+ 0xef, 0xe8, 0xa1, 0x66, 0xe2, 0x99, 0xf3, 0x7a, 0xdb, 0xc2, 0xcc, 0x0b,
+ 0x3c, 0xd6, 0x32, 0xda, 0x86, 0x0e, 0xf7, 0xbe, 0x44, 0xae, 0xc3, 0xf2,
+ 0x5a, 0x74, 0xea, 0xa8,
+};
+static const unsigned char kat1144_nonce[] = {0};
+static const unsigned char kat1144_persstr[] = {0};
+static const unsigned char kat1144_addin0[] = {0};
+static const unsigned char kat1144_addin1[] = {0};
+static const unsigned char kat1144_retbits[] = {
+ 0xab, 0x53, 0xf7, 0xee, 0x10, 0xf3, 0xd8, 0xcd, 0x4d, 0x47, 0x50, 0x35,
+ 0x61, 0x1b, 0xa5, 0x18, 0x2f, 0x08, 0x56, 0x71, 0x49, 0x4c, 0x71, 0x50,
+ 0xbb, 0x02, 0xb1, 0xe5, 0x9e, 0xf4, 0xfb, 0x2a, 0x86, 0x0f, 0x72, 0xc4,
+ 0xde, 0x85, 0xbc, 0x68, 0xbe, 0x37, 0x2d, 0x72, 0x74, 0x33, 0xa3, 0xe2,
+ 0x41, 0x6c, 0x43, 0x1f, 0x6f, 0xc5, 0x3b, 0xd5, 0xcb, 0xe3, 0xd2, 0x67,
+ 0x9d, 0x00, 0xe1, 0xd3,
+};
+static const struct drbg_kat_no_reseed kat1144_t = {
+ 3, kat1144_entropyin, kat1144_nonce, kat1144_persstr,
+ kat1144_addin0, kat1144_addin1, kat1144_retbits
+};
+static const struct drbg_kat kat1144 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1144_t
+};
+
+static const unsigned char kat1145_entropyin[] = {
+ 0x34, 0xa6, 0xed, 0xe9, 0xf5, 0xbb, 0x07, 0x11, 0x52, 0xe9, 0x4b, 0x84,
+ 0xb3, 0x68, 0xb4, 0xd0, 0xd6, 0x2a, 0x63, 0xac, 0xd7, 0x2a, 0xe5, 0x6a,
+ 0x42, 0x40, 0x21, 0x77, 0x69, 0x03, 0x87, 0xa4, 0xbd, 0xb8, 0xfd, 0x82,
+ 0xbe, 0xa0, 0xd1, 0x71,
+};
+static const unsigned char kat1145_nonce[] = {0};
+static const unsigned char kat1145_persstr[] = {0};
+static const unsigned char kat1145_addin0[] = {0};
+static const unsigned char kat1145_addin1[] = {0};
+static const unsigned char kat1145_retbits[] = {
+ 0xee, 0x87, 0x63, 0x99, 0xe8, 0xc2, 0x41, 0x50, 0x8a, 0x8f, 0xfb, 0xbe,
+ 0x51, 0x53, 0x82, 0x17, 0x07, 0xcd, 0x06, 0x48, 0x94, 0x34, 0x6e, 0xe7,
+ 0xfb, 0x88, 0xac, 0x30, 0xfa, 0x62, 0xd4, 0x94, 0xcd, 0xd4, 0xf8, 0x97,
+ 0x64, 0x80, 0xe5, 0x07, 0xc6, 0xa6, 0xc9, 0x48, 0x40, 0x57, 0x46, 0xc9,
+ 0x6c, 0xc4, 0xf0, 0x0d, 0x04, 0x1b, 0xe9, 0x18, 0x21, 0x54, 0xe8, 0x68,
+ 0x2d, 0xe2, 0x83, 0xe4,
+};
+static const struct drbg_kat_no_reseed kat1145_t = {
+ 4, kat1145_entropyin, kat1145_nonce, kat1145_persstr,
+ kat1145_addin0, kat1145_addin1, kat1145_retbits
+};
+static const struct drbg_kat kat1145 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1145_t
+};
+
+static const unsigned char kat1146_entropyin[] = {
+ 0xfa, 0x58, 0xbf, 0xb2, 0xce, 0x5f, 0x12, 0x1c, 0x5f, 0x13, 0xf2, 0x99,
+ 0x1d, 0x3f, 0xb0, 0x73, 0x6a, 0x3a, 0xb6, 0xec, 0x1c, 0xd7, 0xec, 0xd0,
+ 0x42, 0x66, 0x72, 0x72, 0x0c, 0xb0, 0xb0, 0x7d, 0x1f, 0xbb, 0xd7, 0x6e,
+ 0x5a, 0xc9, 0x31, 0xc9,
+};
+static const unsigned char kat1146_nonce[] = {0};
+static const unsigned char kat1146_persstr[] = {0};
+static const unsigned char kat1146_addin0[] = {0};
+static const unsigned char kat1146_addin1[] = {0};
+static const unsigned char kat1146_retbits[] = {
+ 0x47, 0xa8, 0x6c, 0xa5, 0x30, 0xd6, 0xcc, 0xae, 0xfe, 0xad, 0x5a, 0x7e,
+ 0xc0, 0xd0, 0x19, 0x83, 0x2c, 0x99, 0xe3, 0xb5, 0x7a, 0xed, 0x50, 0xaf,
+ 0x0c, 0xac, 0x75, 0x19, 0x5f, 0x77, 0x2c, 0xde, 0x34, 0x35, 0x3e, 0x96,
+ 0x53, 0x38, 0xf1, 0xd6, 0x0f, 0xbf, 0xa0, 0xa7, 0xe0, 0xb3, 0x81, 0x6f,
+ 0x84, 0xc9, 0x05, 0xf7, 0xbd, 0xc1, 0xfc, 0x07, 0xb7, 0xb0, 0xc4, 0x28,
+ 0x35, 0x0d, 0x4d, 0xa0,
+};
+static const struct drbg_kat_no_reseed kat1146_t = {
+ 5, kat1146_entropyin, kat1146_nonce, kat1146_persstr,
+ kat1146_addin0, kat1146_addin1, kat1146_retbits
+};
+static const struct drbg_kat kat1146 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1146_t
+};
+
+static const unsigned char kat1147_entropyin[] = {
+ 0x4e, 0xb1, 0xee, 0x44, 0x7c, 0x05, 0x84, 0x4a, 0x85, 0xe7, 0x70, 0xad,
+ 0x94, 0x78, 0xfb, 0xd7, 0x12, 0x5e, 0xa6, 0x37, 0x75, 0x61, 0xf5, 0xe8,
+ 0x82, 0x47, 0x0c, 0x2e, 0xab, 0x03, 0x07, 0xec, 0xc0, 0xf0, 0x89, 0xd9,
+ 0xa5, 0x9a, 0x2f, 0x6e,
+};
+static const unsigned char kat1147_nonce[] = {0};
+static const unsigned char kat1147_persstr[] = {0};
+static const unsigned char kat1147_addin0[] = {0};
+static const unsigned char kat1147_addin1[] = {0};
+static const unsigned char kat1147_retbits[] = {
+ 0x2f, 0xbe, 0xcb, 0x74, 0x9c, 0x54, 0xaa, 0x7e, 0xbd, 0xda, 0x64, 0xff,
+ 0x25, 0x33, 0x48, 0xb9, 0x81, 0x80, 0xb7, 0x89, 0x3d, 0xeb, 0x49, 0xd1,
+ 0x8a, 0x0f, 0x9a, 0x16, 0x2b, 0xcb, 0x0e, 0x3f, 0xd1, 0xea, 0xc4, 0xbb,
+ 0x8a, 0x6b, 0xb5, 0xff, 0xef, 0x8d, 0x42, 0x45, 0xb1, 0x29, 0x1f, 0xd4,
+ 0x0d, 0x4e, 0xce, 0x23, 0xe0, 0x2e, 0x78, 0x78, 0x56, 0x90, 0xd6, 0x39,
+ 0x87, 0x87, 0x9f, 0x39,
+};
+static const struct drbg_kat_no_reseed kat1147_t = {
+ 6, kat1147_entropyin, kat1147_nonce, kat1147_persstr,
+ kat1147_addin0, kat1147_addin1, kat1147_retbits
+};
+static const struct drbg_kat kat1147 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1147_t
+};
+
+static const unsigned char kat1148_entropyin[] = {
+ 0x77, 0x61, 0x65, 0xc8, 0x7c, 0xc4, 0x17, 0x1f, 0xdf, 0x11, 0x01, 0x6f,
+ 0x3b, 0x5b, 0x7f, 0x0a, 0xca, 0xff, 0xb6, 0x78, 0x92, 0xcb, 0x48, 0x15,
+ 0x67, 0x1f, 0xe6, 0xa7, 0x76, 0x6e, 0xfe, 0x4e, 0x1c, 0x9f, 0x2e, 0x4e,
+ 0x09, 0x01, 0x7e, 0xf1,
+};
+static const unsigned char kat1148_nonce[] = {0};
+static const unsigned char kat1148_persstr[] = {0};
+static const unsigned char kat1148_addin0[] = {0};
+static const unsigned char kat1148_addin1[] = {0};
+static const unsigned char kat1148_retbits[] = {
+ 0x97, 0x28, 0x97, 0x3e, 0xc6, 0x2f, 0x1b, 0x4b, 0x3b, 0x2d, 0xb9, 0x05,
+ 0xf0, 0xc1, 0x99, 0x15, 0x79, 0x5f, 0x9b, 0xae, 0xe4, 0x7a, 0x36, 0xcd,
+ 0x0a, 0xa0, 0x2f, 0x02, 0xdd, 0x9b, 0x4d, 0xd9, 0x10, 0xb2, 0xc0, 0xa9,
+ 0xaf, 0xef, 0x7b, 0x29, 0x0d, 0x1f, 0x7b, 0xee, 0xa3, 0xc6, 0xf2, 0x8b,
+ 0x5b, 0x27, 0x6e, 0x2f, 0x45, 0xc0, 0x3a, 0xb6, 0x05, 0xa3, 0x43, 0x7f,
+ 0x6e, 0x39, 0x89, 0x81,
+};
+static const struct drbg_kat_no_reseed kat1148_t = {
+ 7, kat1148_entropyin, kat1148_nonce, kat1148_persstr,
+ kat1148_addin0, kat1148_addin1, kat1148_retbits
+};
+static const struct drbg_kat kat1148 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1148_t
+};
+
+static const unsigned char kat1149_entropyin[] = {
+ 0x13, 0xd4, 0x85, 0xf3, 0x61, 0xe6, 0x8c, 0xaa, 0x91, 0xa9, 0xc2, 0x7f,
+ 0xa4, 0xc8, 0x37, 0x2d, 0xb3, 0xb5, 0xb8, 0xb9, 0x5c, 0x44, 0xc4, 0x0c,
+ 0x8d, 0x61, 0x07, 0x1a, 0x6d, 0x9e, 0xb0, 0xf8, 0x2a, 0x7a, 0xae, 0xb1,
+ 0x1d, 0x76, 0xd9, 0x40,
+};
+static const unsigned char kat1149_nonce[] = {0};
+static const unsigned char kat1149_persstr[] = {0};
+static const unsigned char kat1149_addin0[] = {0};
+static const unsigned char kat1149_addin1[] = {0};
+static const unsigned char kat1149_retbits[] = {
+ 0xa0, 0x97, 0x95, 0xc7, 0x46, 0x50, 0xdc, 0xbc, 0x1a, 0x75, 0x07, 0x2b,
+ 0x87, 0x87, 0xd7, 0x85, 0x89, 0x46, 0x66, 0xdd, 0x24, 0xd8, 0xf6, 0x21,
+ 0x91, 0x2d, 0xaa, 0xfe, 0x7d, 0x34, 0x16, 0xb9, 0xd7, 0x6d, 0x7b, 0xd5,
+ 0xf9, 0xac, 0xac, 0x96, 0x0c, 0x03, 0x7d, 0x00, 0xd0, 0xd9, 0x70, 0x3e,
+ 0x4f, 0x8a, 0x2b, 0x19, 0x1a, 0x7e, 0x28, 0x3c, 0x0d, 0xb9, 0xea, 0x57,
+ 0xba, 0x8f, 0x6a, 0x6d,
+};
+static const struct drbg_kat_no_reseed kat1149_t = {
+ 8, kat1149_entropyin, kat1149_nonce, kat1149_persstr,
+ kat1149_addin0, kat1149_addin1, kat1149_retbits
+};
+static const struct drbg_kat kat1149 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1149_t
+};
+
+static const unsigned char kat1150_entropyin[] = {
+ 0xc0, 0xeb, 0xc2, 0x57, 0xf6, 0xd3, 0xf5, 0x6f, 0x86, 0x08, 0x7b, 0xf1,
+ 0xea, 0xcf, 0xec, 0x3f, 0x46, 0x48, 0x1a, 0xfc, 0xe7, 0x92, 0xb0, 0x7b,
+ 0x7f, 0xda, 0x4d, 0x19, 0xcf, 0x0e, 0x3d, 0xa7, 0x1d, 0x52, 0x31, 0x8a,
+ 0x50, 0x77, 0x5e, 0x9b,
+};
+static const unsigned char kat1150_nonce[] = {0};
+static const unsigned char kat1150_persstr[] = {0};
+static const unsigned char kat1150_addin0[] = {0};
+static const unsigned char kat1150_addin1[] = {0};
+static const unsigned char kat1150_retbits[] = {
+ 0x10, 0x2d, 0xb8, 0xa2, 0x33, 0x8c, 0x29, 0xd0, 0x17, 0xbe, 0xec, 0x79,
+ 0x3b, 0xad, 0x93, 0x73, 0x8e, 0x25, 0x0a, 0x43, 0x94, 0x0d, 0xdb, 0xbc,
+ 0x30, 0xc9, 0xf0, 0xcb, 0xd0, 0x53, 0x42, 0xb4, 0x7c, 0xff, 0xe0, 0x3f,
+ 0xba, 0x8e, 0xad, 0x13, 0x81, 0xea, 0x36, 0x5f, 0x4e, 0xb6, 0x14, 0xeb,
+ 0x00, 0xaf, 0x42, 0x70, 0xf8, 0xf7, 0x41, 0xdb, 0xd8, 0xb0, 0x4f, 0x9e,
+ 0x67, 0x26, 0xf7, 0xa7,
+};
+static const struct drbg_kat_no_reseed kat1150_t = {
+ 9, kat1150_entropyin, kat1150_nonce, kat1150_persstr,
+ kat1150_addin0, kat1150_addin1, kat1150_retbits
+};
+static const struct drbg_kat kat1150 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1150_t
+};
+
+static const unsigned char kat1151_entropyin[] = {
+ 0x40, 0x34, 0x7a, 0x0b, 0x9b, 0x62, 0x6f, 0x0d, 0x37, 0x53, 0xae, 0x00,
+ 0x14, 0xa0, 0xde, 0xc0, 0x1c, 0x51, 0xe2, 0x30, 0xe4, 0x09, 0xba, 0x6b,
+ 0xc3, 0xaa, 0x01, 0x68, 0x72, 0xe7, 0x51, 0xb7, 0xaa, 0x7b, 0xc8, 0xa2,
+ 0xac, 0xf6, 0xe5, 0x51,
+};
+static const unsigned char kat1151_nonce[] = {0};
+static const unsigned char kat1151_persstr[] = {0};
+static const unsigned char kat1151_addin0[] = {0};
+static const unsigned char kat1151_addin1[] = {0};
+static const unsigned char kat1151_retbits[] = {
+ 0xda, 0x36, 0xb3, 0x6e, 0x21, 0xef, 0x4c, 0x31, 0xb1, 0x63, 0x42, 0x99,
+ 0x1b, 0x80, 0x7c, 0xd6, 0x1b, 0x73, 0x94, 0x27, 0xa5, 0x0d, 0xef, 0x5b,
+ 0x0b, 0x77, 0x35, 0xa5, 0xf1, 0xae, 0xa3, 0xe8, 0x22, 0x91, 0x24, 0xb6,
+ 0x7d, 0x31, 0xce, 0x62, 0xd7, 0x86, 0xc9, 0x13, 0xc2, 0x85, 0xbb, 0x3e,
+ 0x1b, 0xaa, 0x39, 0x37, 0x16, 0xed, 0x1c, 0xbf, 0x0c, 0xa1, 0x92, 0x93,
+ 0xc1, 0x05, 0x56, 0x53,
+};
+static const struct drbg_kat_no_reseed kat1151_t = {
+ 10, kat1151_entropyin, kat1151_nonce, kat1151_persstr,
+ kat1151_addin0, kat1151_addin1, kat1151_retbits
+};
+static const struct drbg_kat kat1151 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1151_t
+};
+
+static const unsigned char kat1152_entropyin[] = {
+ 0x6f, 0xb7, 0x90, 0xf1, 0x5d, 0x63, 0xd4, 0xfe, 0x49, 0x2d, 0xbe, 0x2f,
+ 0xe1, 0x7d, 0xa1, 0xb7, 0x09, 0xe6, 0x26, 0x3c, 0xbb, 0xb9, 0x43, 0xaa,
+ 0xab, 0xe1, 0x37, 0x2d, 0x1b, 0xe2, 0x34, 0x5c, 0x4e, 0x56, 0x67, 0x13,
+ 0xf5, 0xd8, 0xdb, 0xaa,
+};
+static const unsigned char kat1152_nonce[] = {0};
+static const unsigned char kat1152_persstr[] = {0};
+static const unsigned char kat1152_addin0[] = {0};
+static const unsigned char kat1152_addin1[] = {0};
+static const unsigned char kat1152_retbits[] = {
+ 0x8b, 0x34, 0x5a, 0xf7, 0xa0, 0x88, 0xb4, 0xe2, 0x45, 0x53, 0xc7, 0xc3,
+ 0x4c, 0xad, 0xc8, 0xb0, 0x8d, 0x15, 0xd6, 0xb1, 0x45, 0x42, 0x00, 0x29,
+ 0x18, 0xa1, 0x3c, 0x4d, 0x63, 0x99, 0x8f, 0xca, 0xda, 0xe1, 0x68, 0xf2,
+ 0x58, 0x2d, 0x48, 0x11, 0x12, 0xb0, 0xbb, 0x0c, 0x89, 0xc0, 0x0d, 0xc6,
+ 0x0e, 0x6c, 0xc3, 0xe8, 0x01, 0x89, 0xe5, 0x7c, 0xb4, 0xcd, 0x82, 0xed,
+ 0x00, 0x48, 0x74, 0x38,
+};
+static const struct drbg_kat_no_reseed kat1152_t = {
+ 11, kat1152_entropyin, kat1152_nonce, kat1152_persstr,
+ kat1152_addin0, kat1152_addin1, kat1152_retbits
+};
+static const struct drbg_kat kat1152 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1152_t
+};
+
+static const unsigned char kat1153_entropyin[] = {
+ 0x97, 0x7c, 0x1f, 0x93, 0x1f, 0x8e, 0xcc, 0xa7, 0xd0, 0x0f, 0x61, 0xa1,
+ 0x4f, 0x50, 0xa3, 0x8a, 0xb9, 0x18, 0xf5, 0x66, 0xce, 0x4a, 0x06, 0xa7,
+ 0x0a, 0x58, 0x4a, 0x42, 0x3f, 0x70, 0xe7, 0xde, 0x75, 0x33, 0xd8, 0x64,
+ 0x28, 0xa7, 0x01, 0x70,
+};
+static const unsigned char kat1153_nonce[] = {0};
+static const unsigned char kat1153_persstr[] = {0};
+static const unsigned char kat1153_addin0[] = {0};
+static const unsigned char kat1153_addin1[] = {0};
+static const unsigned char kat1153_retbits[] = {
+ 0xf1, 0xe6, 0xec, 0x7f, 0x2b, 0x20, 0xf3, 0xd2, 0x77, 0xc4, 0x90, 0x48,
+ 0xc9, 0xef, 0x51, 0xce, 0xb9, 0x3e, 0xce, 0x91, 0x30, 0x88, 0x6c, 0x9e,
+ 0xe9, 0x34, 0x30, 0x20, 0xa3, 0xdc, 0xd1, 0x9f, 0xdf, 0x62, 0xde, 0x24,
+ 0x35, 0xdd, 0x0e, 0xd9, 0xb4, 0xa4, 0x72, 0x8a, 0x1d, 0xc5, 0x6b, 0x72,
+ 0x5b, 0xf2, 0x7e, 0x33, 0xbd, 0x90, 0x13, 0xfe, 0xbc, 0xa4, 0x45, 0xc4,
+ 0x07, 0xdf, 0xed, 0xe2,
+};
+static const struct drbg_kat_no_reseed kat1153_t = {
+ 12, kat1153_entropyin, kat1153_nonce, kat1153_persstr,
+ kat1153_addin0, kat1153_addin1, kat1153_retbits
+};
+static const struct drbg_kat kat1153 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1153_t
+};
+
+static const unsigned char kat1154_entropyin[] = {
+ 0x58, 0x94, 0xf4, 0xef, 0x7e, 0xa2, 0x39, 0x29, 0x27, 0xcf, 0xa2, 0x1f,
+ 0x61, 0xfa, 0xa0, 0xe1, 0xb1, 0x2e, 0xe4, 0x45, 0x8c, 0x76, 0xc3, 0x80,
+ 0x28, 0x0e, 0x0d, 0xaf, 0x3d, 0xe2, 0x21, 0x51, 0x2c, 0x87, 0xda, 0x31,
+ 0xdf, 0x07, 0x3b, 0xfb,
+};
+static const unsigned char kat1154_nonce[] = {0};
+static const unsigned char kat1154_persstr[] = {0};
+static const unsigned char kat1154_addin0[] = {0};
+static const unsigned char kat1154_addin1[] = {0};
+static const unsigned char kat1154_retbits[] = {
+ 0x0a, 0xd3, 0xc8, 0xe5, 0xad, 0x0c, 0xd1, 0xf3, 0x30, 0x8f, 0x88, 0x2f,
+ 0x9a, 0xa0, 0xaa, 0x5f, 0x29, 0x0d, 0x93, 0xb4, 0xa2, 0x04, 0x5c, 0xeb,
+ 0x86, 0x79, 0x91, 0xf2, 0x64, 0x0c, 0x52, 0x76, 0x15, 0x6b, 0xfb, 0xcc,
+ 0xad, 0xa5, 0x70, 0x31, 0xaa, 0x8e, 0x27, 0x13, 0x21, 0xa6, 0xff, 0x1e,
+ 0xb2, 0x5f, 0xdd, 0xde, 0x4f, 0x40, 0xa1, 0x06, 0xc6, 0x87, 0x5a, 0x99,
+ 0x81, 0x6c, 0x4a, 0x0d,
+};
+static const struct drbg_kat_no_reseed kat1154_t = {
+ 13, kat1154_entropyin, kat1154_nonce, kat1154_persstr,
+ kat1154_addin0, kat1154_addin1, kat1154_retbits
+};
+static const struct drbg_kat kat1154 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1154_t
+};
+
+static const unsigned char kat1155_entropyin[] = {
+ 0x1f, 0x5f, 0x78, 0x45, 0x89, 0x59, 0xb3, 0xca, 0xbd, 0x57, 0xa5, 0x56,
+ 0xa8, 0xe7, 0x0c, 0x36, 0x4b, 0xab, 0x26, 0x0a, 0xd5, 0x57, 0x2f, 0xca,
+ 0x41, 0xfc, 0x2b, 0xb6, 0x43, 0x35, 0xfb, 0x88, 0x8a, 0x31, 0xcd, 0xb3,
+ 0x7d, 0xee, 0xf5, 0xd1,
+};
+static const unsigned char kat1155_nonce[] = {0};
+static const unsigned char kat1155_persstr[] = {0};
+static const unsigned char kat1155_addin0[] = {0};
+static const unsigned char kat1155_addin1[] = {0};
+static const unsigned char kat1155_retbits[] = {
+ 0x0c, 0x44, 0x36, 0xf7, 0x54, 0x15, 0xd0, 0xee, 0xc4, 0x11, 0xf5, 0xba,
+ 0x0d, 0x96, 0xfe, 0x33, 0x31, 0x61, 0xc2, 0xd6, 0xfa, 0xa3, 0x0f, 0x6d,
+ 0x80, 0x6d, 0xc4, 0x57, 0xb4, 0x12, 0x3b, 0x7b, 0x2b, 0x65, 0xcf, 0x7b,
+ 0xd8, 0xf4, 0xe6, 0x99, 0xc5, 0x63, 0xec, 0x0c, 0x6f, 0x45, 0xee, 0x37,
+ 0xc3, 0x1b, 0x3c, 0x6c, 0x11, 0xc2, 0x89, 0x27, 0xb7, 0x7d, 0x53, 0x05,
+ 0x3b, 0x00, 0x57, 0xa7,
+};
+static const struct drbg_kat_no_reseed kat1155_t = {
+ 14, kat1155_entropyin, kat1155_nonce, kat1155_persstr,
+ kat1155_addin0, kat1155_addin1, kat1155_retbits
+};
+static const struct drbg_kat kat1155 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat1155_t
+};
+
+static const unsigned char kat1156_entropyin[] = {
+ 0xcc, 0x74, 0xff, 0xbe, 0x7e, 0x6f, 0x6f, 0xe7, 0xd1, 0xb6, 0x2b, 0x79,
+ 0x4d, 0x68, 0x08, 0xba, 0x25, 0x48, 0xb5, 0x08, 0x71, 0x9d, 0x09, 0x6b,
+ 0xc1, 0xf9, 0x50, 0x36, 0x04, 0x41, 0x00, 0xdd, 0x1f, 0x21, 0x21, 0x57,
+ 0xf2, 0xc9, 0x06, 0x04,
+};
+static const unsigned char kat1156_nonce[] = {0};
+static const unsigned char kat1156_persstr[] = {0};
+static const unsigned char kat1156_addin0[] = {
+ 0x27, 0xa7, 0x46, 0x78, 0x60, 0x72, 0x66, 0xb1, 0x2b, 0x58, 0x11, 0x9b,
+ 0xee, 0x78, 0xd2, 0x9a, 0x75, 0xe7, 0x8a, 0xda, 0xf0, 0x10, 0x44, 0x37,
+ 0x5e, 0xc0, 0xb2, 0x8b, 0x16, 0x7f, 0x0d, 0x6b, 0x0a, 0xb5, 0x8b, 0x29,
+ 0xd9, 0x8d, 0x4c, 0x4e,
+};
+static const unsigned char kat1156_addin1[] = {
+ 0xdb, 0x32, 0x0c, 0x06, 0xee, 0x06, 0xcb, 0xf3, 0x3a, 0x2a, 0x6a, 0x1f,
+ 0x9d, 0x07, 0x6a, 0x87, 0x4e, 0x9c, 0xcc, 0xd8, 0xd5, 0x27, 0x12, 0xb0,
+ 0x96, 0x58, 0xa9, 0x0e, 0xa3, 0xca, 0x47, 0x3a, 0x01, 0xe3, 0xa6, 0x47,
+ 0xdc, 0xd5, 0xdc, 0xa0,
+};
+static const unsigned char kat1156_retbits[] = {
+ 0xdd, 0xdc, 0x9d, 0xce, 0xc1, 0xf2, 0xd3, 0x11, 0xef, 0x2b, 0xf4, 0x8a,
+ 0x7c, 0xe0, 0x7b, 0x91, 0xf8, 0x6e, 0x5c, 0x6e, 0x10, 0x53, 0xbb, 0xd5,
+ 0x26, 0x13, 0xf0, 0x55, 0x91, 0x98, 0x5c, 0xa8, 0x64, 0x45, 0xb5, 0x7d,
+ 0x68, 0xb0, 0xb3, 0x8c, 0x23, 0x48, 0x04, 0xb8, 0x0a, 0x0b, 0x83, 0x77,
+ 0x45, 0x25, 0x4d, 0x7b, 0x09, 0xe0, 0x0d, 0x45, 0x52, 0xd0, 0xfd, 0x82,
+ 0x56, 0xfb, 0x40, 0xb4,
+};
+static const struct drbg_kat_no_reseed kat1156_t = {
+ 0, kat1156_entropyin, kat1156_nonce, kat1156_persstr,
+ kat1156_addin0, kat1156_addin1, kat1156_retbits
+};
+static const struct drbg_kat kat1156 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1156_t
+};
+
+static const unsigned char kat1157_entropyin[] = {
+ 0x54, 0x57, 0x20, 0xe8, 0xca, 0xee, 0xce, 0x16, 0x66, 0xe3, 0x12, 0xf0,
+ 0x3d, 0x1d, 0x2d, 0x47, 0x35, 0xef, 0x88, 0x99, 0x01, 0x34, 0x30, 0x40,
+ 0x54, 0xf2, 0xa8, 0x37, 0xae, 0x12, 0xfd, 0x00, 0x54, 0x3e, 0x74, 0x0c,
+ 0x18, 0x4b, 0xb6, 0x00,
+};
+static const unsigned char kat1157_nonce[] = {0};
+static const unsigned char kat1157_persstr[] = {0};
+static const unsigned char kat1157_addin0[] = {
+ 0x80, 0xc3, 0x87, 0x38, 0x8c, 0xac, 0x8b, 0xb6, 0x90, 0xa0, 0x3f, 0x4f,
+ 0xb9, 0x5f, 0x5a, 0xdf, 0x07, 0x90, 0x5d, 0xf8, 0x85, 0xdc, 0x10, 0x0d,
+ 0x83, 0x9b, 0x22, 0x14, 0x33, 0xdb, 0x3a, 0x06, 0xde, 0xa5, 0xbd, 0xf8,
+ 0xfd, 0xf4, 0x68, 0xda,
+};
+static const unsigned char kat1157_addin1[] = {
+ 0xb0, 0x78, 0xfa, 0xfc, 0xb5, 0xb1, 0x31, 0x35, 0xc8, 0x28, 0x1f, 0xc9,
+ 0xa3, 0xc6, 0x76, 0x44, 0x54, 0x87, 0xf2, 0xe8, 0xf2, 0x35, 0x9b, 0xd9,
+ 0xb0, 0x52, 0xb2, 0x17, 0xb4, 0xbc, 0x9b, 0xca, 0xe8, 0xd8, 0xab, 0x49,
+ 0x9c, 0x7e, 0xb5, 0x64,
+};
+static const unsigned char kat1157_retbits[] = {
+ 0xa5, 0x1d, 0xd0, 0x6c, 0x6c, 0xc5, 0xdf, 0xa8, 0xb6, 0x5b, 0x52, 0x8c,
+ 0x45, 0x81, 0x74, 0xa4, 0x5d, 0xf0, 0x73, 0xe2, 0x37, 0x0a, 0xef, 0x58,
+ 0x0b, 0xda, 0xf3, 0x0e, 0xd5, 0x9c, 0xff, 0x7e, 0x67, 0x78, 0xcf, 0x55,
+ 0x76, 0x69, 0xeb, 0x89, 0x55, 0x38, 0x1b, 0x02, 0x27, 0xfd, 0xb3, 0x1d,
+ 0xac, 0x2b, 0x8c, 0x9e, 0x5c, 0x9b, 0x73, 0x4d, 0x36, 0x15, 0x32, 0x63,
+ 0xde, 0xcb, 0x8e, 0xab,
+};
+static const struct drbg_kat_no_reseed kat1157_t = {
+ 1, kat1157_entropyin, kat1157_nonce, kat1157_persstr,
+ kat1157_addin0, kat1157_addin1, kat1157_retbits
+};
+static const struct drbg_kat kat1157 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1157_t
+};
+
+static const unsigned char kat1158_entropyin[] = {
+ 0x85, 0x2e, 0x30, 0x56, 0x59, 0x12, 0x54, 0xab, 0x4e, 0xf3, 0x4b, 0x76,
+ 0xd6, 0x9d, 0x64, 0xf2, 0x5a, 0x0c, 0x93, 0xf0, 0xe6, 0x51, 0x5b, 0x8e,
+ 0x08, 0x6c, 0xd4, 0xde, 0x08, 0xa9, 0x8d, 0x6e, 0xd8, 0xc3, 0x07, 0x04,
+ 0x33, 0xc9, 0xb9, 0x03,
+};
+static const unsigned char kat1158_nonce[] = {0};
+static const unsigned char kat1158_persstr[] = {0};
+static const unsigned char kat1158_addin0[] = {
+ 0x43, 0xfe, 0xe0, 0x83, 0xc3, 0xc4, 0x36, 0xd5, 0x29, 0x3d, 0xb7, 0xfb,
+ 0xd8, 0x10, 0x56, 0x78, 0x7f, 0x9c, 0x08, 0x74, 0xd9, 0x59, 0xc2, 0xed,
+ 0x70, 0x31, 0x0d, 0xbd, 0xe6, 0x28, 0xcf, 0x34, 0x75, 0x95, 0xa4, 0x8d,
+ 0xb8, 0xc4, 0x68, 0xe6,
+};
+static const unsigned char kat1158_addin1[] = {
+ 0x68, 0x13, 0x75, 0x98, 0x12, 0xb8, 0x68, 0x94, 0x1e, 0xf9, 0x44, 0xef,
+ 0x6c, 0x26, 0xd5, 0xf7, 0xdf, 0xc8, 0x08, 0x8e, 0x96, 0x44, 0x25, 0x96,
+ 0x58, 0xee, 0x14, 0x2a, 0x21, 0x6b, 0x39, 0x56, 0x79, 0x58, 0xbd, 0x75,
+ 0x50, 0x9a, 0xd3, 0xe4,
+};
+static const unsigned char kat1158_retbits[] = {
+ 0x4c, 0x1c, 0xca, 0x36, 0x73, 0xa0, 0x90, 0x32, 0xc8, 0x25, 0x29, 0xed,
+ 0x1a, 0x03, 0xe4, 0x44, 0xa5, 0xe1, 0x8f, 0x39, 0x19, 0x07, 0x45, 0x83,
+ 0x9d, 0xfe, 0x0e, 0xbd, 0x0a, 0x58, 0x53, 0x87, 0x96, 0x28, 0x85, 0x3b,
+ 0x18, 0x11, 0x76, 0xc4, 0xce, 0x25, 0xc2, 0xac, 0x6c, 0xa4, 0x3a, 0xf5,
+ 0x0c, 0xf3, 0x1e, 0x5f, 0xa8, 0x6d, 0xa3, 0xa2, 0x6c, 0x97, 0x74, 0xf7,
+ 0x6d, 0xd3, 0x86, 0x34,
+};
+static const struct drbg_kat_no_reseed kat1158_t = {
+ 2, kat1158_entropyin, kat1158_nonce, kat1158_persstr,
+ kat1158_addin0, kat1158_addin1, kat1158_retbits
+};
+static const struct drbg_kat kat1158 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1158_t
+};
+
+static const unsigned char kat1159_entropyin[] = {
+ 0xfd, 0x42, 0xb0, 0xdd, 0x9c, 0xfd, 0xbf, 0xd4, 0x65, 0x7c, 0x0c, 0xd3,
+ 0xe0, 0x7b, 0xb9, 0xd2, 0x72, 0x07, 0xe1, 0x55, 0x85, 0x21, 0x3c, 0x28,
+ 0x70, 0x04, 0x7d, 0xb0, 0xcf, 0xbf, 0x95, 0x1d, 0x07, 0x4e, 0x06, 0x1d,
+ 0xcc, 0x9b, 0x74, 0xd3,
+};
+static const unsigned char kat1159_nonce[] = {0};
+static const unsigned char kat1159_persstr[] = {0};
+static const unsigned char kat1159_addin0[] = {
+ 0x5b, 0x57, 0x9a, 0xf6, 0x43, 0xe8, 0x0e, 0x6f, 0xcd, 0xc4, 0xd0, 0xa2,
+ 0x6b, 0x25, 0x48, 0x9c, 0x53, 0x36, 0xc6, 0x92, 0xf2, 0xf8, 0x1d, 0x8f,
+ 0xa7, 0x9f, 0x1e, 0x05, 0xf2, 0x5d, 0x50, 0x90, 0xe1, 0x1c, 0xa3, 0x9c,
+ 0x39, 0x49, 0xd1, 0x03,
+};
+static const unsigned char kat1159_addin1[] = {
+ 0x6a, 0x1d, 0x8a, 0x4a, 0xc6, 0x35, 0x28, 0xc9, 0xde, 0x6f, 0x94, 0xb2,
+ 0xf2, 0x80, 0x5a, 0xa0, 0x3d, 0x75, 0xee, 0x57, 0x19, 0x8e, 0xff, 0x33,
+ 0x59, 0x7b, 0x44, 0xed, 0xa7, 0xb8, 0x46, 0xad, 0x6f, 0x80, 0xf9, 0xb6,
+ 0x9b, 0xac, 0xf5, 0x18,
+};
+static const unsigned char kat1159_retbits[] = {
+ 0x9c, 0x0f, 0x52, 0xc5, 0xec, 0xe0, 0xea, 0x75, 0x33, 0x73, 0xff, 0x21,
+ 0xde, 0x63, 0x1c, 0xae, 0xe3, 0xf1, 0x23, 0x8e, 0x29, 0x4d, 0x2c, 0x23,
+ 0x78, 0x65, 0x5c, 0xcb, 0xe7, 0xb7, 0x37, 0xf7, 0x60, 0xde, 0xa0, 0xfd,
+ 0x5a, 0xb7, 0xe8, 0x76, 0x16, 0xba, 0x4f, 0xe4, 0x7f, 0xdc, 0xf4, 0x39,
+ 0x11, 0xff, 0xd2, 0x66, 0x2b, 0x81, 0x1c, 0xd9, 0x0a, 0x03, 0x4d, 0x65,
+ 0xb0, 0x70, 0xc8, 0xda,
+};
+static const struct drbg_kat_no_reseed kat1159_t = {
+ 3, kat1159_entropyin, kat1159_nonce, kat1159_persstr,
+ kat1159_addin0, kat1159_addin1, kat1159_retbits
+};
+static const struct drbg_kat kat1159 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1159_t
+};
+
+static const unsigned char kat1160_entropyin[] = {
+ 0xee, 0xce, 0x18, 0xcb, 0x9a, 0x75, 0x08, 0x08, 0x4d, 0x22, 0xd7, 0xf2,
+ 0x1d, 0xd5, 0xc6, 0xb6, 0x02, 0x79, 0xaa, 0x45, 0x20, 0x34, 0x3e, 0x2f,
+ 0x73, 0xcd, 0x33, 0x49, 0xfc, 0xe5, 0xd3, 0x9e, 0xe0, 0x54, 0xbc, 0x9f,
+ 0x22, 0x40, 0xa0, 0x97,
+};
+static const unsigned char kat1160_nonce[] = {0};
+static const unsigned char kat1160_persstr[] = {0};
+static const unsigned char kat1160_addin0[] = {
+ 0x06, 0x7a, 0x5f, 0x0d, 0x24, 0xb9, 0x3c, 0x08, 0x02, 0x3d, 0x05, 0xdf,
+ 0x31, 0x86, 0x77, 0xbc, 0x9e, 0x5a, 0x5d, 0xe7, 0x7a, 0x23, 0x47, 0x14,
+ 0xfb, 0x90, 0x34, 0x7e, 0x05, 0x7d, 0xd2, 0x3d, 0x4e, 0x06, 0x90, 0x2a,
+ 0x9b, 0x74, 0x2e, 0xc1,
+};
+static const unsigned char kat1160_addin1[] = {
+ 0x1a, 0x65, 0x3e, 0x47, 0x2b, 0xb3, 0xc6, 0x21, 0x09, 0xa6, 0xca, 0xbb,
+ 0x84, 0xda, 0x8e, 0x2f, 0xfd, 0x14, 0x66, 0xb3, 0xc5, 0x6b, 0x60, 0x07,
+ 0x17, 0xd7, 0x64, 0xc2, 0xa3, 0x6d, 0x45, 0xd8, 0xa3, 0xee, 0xfe, 0xfc,
+ 0x81, 0xb0, 0x4f, 0xc2,
+};
+static const unsigned char kat1160_retbits[] = {
+ 0x3b, 0xd4, 0xb4, 0xb9, 0xa6, 0x18, 0x69, 0xe2, 0xa6, 0x21, 0x5e, 0x62,
+ 0xbe, 0xbc, 0x15, 0x1a, 0xca, 0x27, 0x89, 0x49, 0x1d, 0x4f, 0x46, 0xd1,
+ 0x96, 0xdd, 0xc4, 0x84, 0x29, 0x33, 0x5e, 0x60, 0x2b, 0xca, 0xe2, 0x97,
+ 0x97, 0x2c, 0x7a, 0x27, 0x5e, 0x24, 0xf0, 0xd3, 0x28, 0x2a, 0xeb, 0x1d,
+ 0xca, 0xc0, 0x19, 0x0c, 0x1c, 0xfa, 0x2a, 0x39, 0xab, 0xb7, 0x89, 0x84,
+ 0xc3, 0x26, 0x89, 0x81,
+};
+static const struct drbg_kat_no_reseed kat1160_t = {
+ 4, kat1160_entropyin, kat1160_nonce, kat1160_persstr,
+ kat1160_addin0, kat1160_addin1, kat1160_retbits
+};
+static const struct drbg_kat kat1160 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1160_t
+};
+
+static const unsigned char kat1161_entropyin[] = {
+ 0x78, 0x69, 0xc8, 0x38, 0x1d, 0x5b, 0x5a, 0xcf, 0xdd, 0x65, 0x0d, 0x24,
+ 0x7f, 0xdd, 0x92, 0xad, 0x45, 0xeb, 0x9e, 0x73, 0x42, 0x5d, 0x6c, 0x07,
+ 0x85, 0xa3, 0x82, 0x79, 0x7c, 0xa0, 0x6f, 0x03, 0x85, 0xa7, 0x5f, 0x61,
+ 0xb7, 0x57, 0x77, 0x15,
+};
+static const unsigned char kat1161_nonce[] = {0};
+static const unsigned char kat1161_persstr[] = {0};
+static const unsigned char kat1161_addin0[] = {
+ 0x1b, 0xb9, 0xb7, 0x7b, 0x0f, 0x81, 0x99, 0x9e, 0x23, 0x4b, 0x83, 0x41,
+ 0x7a, 0xde, 0xbf, 0x5c, 0x88, 0x1c, 0x09, 0x4e, 0xe0, 0x0c, 0x61, 0x30,
+ 0xb1, 0x8e, 0x89, 0x1a, 0x3b, 0x2a, 0xe7, 0x3a, 0x72, 0x7e, 0xec, 0x0a,
+ 0x60, 0x99, 0x39, 0xa6,
+};
+static const unsigned char kat1161_addin1[] = {
+ 0x69, 0x43, 0x3a, 0xcb, 0xcf, 0x7a, 0x4e, 0x4e, 0x81, 0xf6, 0x28, 0x74,
+ 0xc4, 0x67, 0xa4, 0x33, 0xe3, 0xe7, 0x0c, 0x0e, 0xb3, 0x88, 0x91, 0x0f,
+ 0x69, 0x0b, 0xbc, 0x0f, 0xf2, 0xd0, 0xe0, 0x31, 0xf2, 0x4c, 0xf9, 0x5c,
+ 0xda, 0x40, 0x19, 0xae,
+};
+static const unsigned char kat1161_retbits[] = {
+ 0x79, 0xa0, 0x32, 0x40, 0x8c, 0xac, 0x31, 0xa8, 0xae, 0x17, 0x2f, 0x3e,
+ 0x50, 0x53, 0x06, 0x72, 0x70, 0x35, 0x3a, 0xdb, 0xb8, 0x6a, 0xb0, 0x9f,
+ 0xca, 0x3e, 0xa2, 0x8b, 0x00, 0x01, 0x88, 0xe3, 0x04, 0x50, 0x88, 0xd9,
+ 0x93, 0x55, 0x14, 0xc2, 0x0e, 0x45, 0xb0, 0x62, 0xa9, 0x31, 0xc3, 0xef,
+ 0xb2, 0x6b, 0xc6, 0x75, 0x27, 0xce, 0x45, 0x10, 0x22, 0x97, 0x64, 0x3a,
+ 0x61, 0x32, 0xdb, 0xc5,
+};
+static const struct drbg_kat_no_reseed kat1161_t = {
+ 5, kat1161_entropyin, kat1161_nonce, kat1161_persstr,
+ kat1161_addin0, kat1161_addin1, kat1161_retbits
+};
+static const struct drbg_kat kat1161 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1161_t
+};
+
+static const unsigned char kat1162_entropyin[] = {
+ 0x6e, 0xd5, 0x45, 0x82, 0xe1, 0x84, 0x3b, 0xf7, 0x3c, 0x64, 0x0a, 0x8c,
+ 0x2c, 0x21, 0x55, 0x5e, 0x53, 0xd3, 0x33, 0x6b, 0x90, 0x72, 0x61, 0xcd,
+ 0xdc, 0xe6, 0x41, 0x6d, 0x7c, 0x0f, 0x30, 0xc0, 0x17, 0x2d, 0x73, 0xb3,
+ 0xca, 0x07, 0x58, 0x88,
+};
+static const unsigned char kat1162_nonce[] = {0};
+static const unsigned char kat1162_persstr[] = {0};
+static const unsigned char kat1162_addin0[] = {
+ 0x62, 0x1d, 0x44, 0xc3, 0x64, 0x78, 0x64, 0xfd, 0xf2, 0x65, 0x37, 0xc9,
+ 0xc3, 0xcc, 0xfa, 0x67, 0x3d, 0xff, 0x50, 0xdc, 0x12, 0xdf, 0xc0, 0xfc,
+ 0xaf, 0x25, 0x95, 0x36, 0x8b, 0x9e, 0x98, 0x1a, 0x8b, 0xff, 0x77, 0x0b,
+ 0x13, 0xe0, 0x51, 0xb7,
+};
+static const unsigned char kat1162_addin1[] = {
+ 0xdc, 0x20, 0xfa, 0xd6, 0x15, 0x51, 0x0c, 0x67, 0x0f, 0x05, 0x0f, 0xcd,
+ 0x2e, 0x8d, 0xbb, 0x21, 0xb7, 0x9b, 0x5c, 0x8b, 0x23, 0x21, 0x1b, 0x38,
+ 0xb5, 0x14, 0x08, 0xde, 0x1d, 0x3e, 0xfd, 0x6c, 0x02, 0xcd, 0xdc, 0x37,
+ 0x6f, 0x2a, 0x64, 0x66,
+};
+static const unsigned char kat1162_retbits[] = {
+ 0x20, 0x62, 0xe1, 0x60, 0xa8, 0x05, 0x8f, 0xb2, 0x5b, 0xc3, 0xa7, 0xbd,
+ 0xd3, 0xe7, 0x79, 0xb3, 0xcc, 0xe1, 0x02, 0x31, 0x82, 0xce, 0xd4, 0x92,
+ 0xc2, 0xfa, 0x72, 0x3c, 0xba, 0xbd, 0x18, 0x7e, 0x1d, 0xd0, 0xa1, 0x6f,
+ 0x90, 0x90, 0x61, 0xaf, 0x6c, 0xb2, 0x70, 0x48, 0xab, 0x04, 0xe7, 0x42,
+ 0xb0, 0x1b, 0x8d, 0x73, 0xfd, 0xa2, 0xb5, 0xe7, 0x62, 0xe0, 0xe8, 0xde,
+ 0xae, 0xe4, 0x79, 0x9d,
+};
+static const struct drbg_kat_no_reseed kat1162_t = {
+ 6, kat1162_entropyin, kat1162_nonce, kat1162_persstr,
+ kat1162_addin0, kat1162_addin1, kat1162_retbits
+};
+static const struct drbg_kat kat1162 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1162_t
+};
+
+static const unsigned char kat1163_entropyin[] = {
+ 0x20, 0x1f, 0xc4, 0x0b, 0xed, 0x94, 0x04, 0x1b, 0x70, 0x9e, 0x15, 0x69,
+ 0xd9, 0xe5, 0x6b, 0x7e, 0x09, 0x93, 0x7e, 0x90, 0x2a, 0x98, 0x14, 0x1e,
+ 0x4b, 0x39, 0x23, 0x1a, 0xe6, 0x29, 0x21, 0xe3, 0xaf, 0xa5, 0x98, 0x06,
+ 0x4f, 0x1c, 0x21, 0x1a,
+};
+static const unsigned char kat1163_nonce[] = {0};
+static const unsigned char kat1163_persstr[] = {0};
+static const unsigned char kat1163_addin0[] = {
+ 0xf1, 0xe7, 0x8c, 0x5c, 0x60, 0x1a, 0x0a, 0xff, 0xda, 0x21, 0x35, 0x7c,
+ 0xb7, 0xa5, 0xf8, 0x8f, 0x43, 0x3c, 0x39, 0xc7, 0x33, 0x1f, 0x29, 0xa9,
+ 0x5d, 0x83, 0x8d, 0x34, 0xe2, 0x0e, 0x1b, 0xc8, 0x94, 0x28, 0x30, 0xef,
+ 0x49, 0x73, 0x8e, 0xb3,
+};
+static const unsigned char kat1163_addin1[] = {
+ 0xd5, 0x7b, 0x5d, 0xb4, 0xcb, 0x0e, 0xa1, 0xe6, 0x9a, 0xff, 0x38, 0xe3,
+ 0x00, 0xef, 0xc9, 0xa0, 0xef, 0x0e, 0xd9, 0x71, 0xa3, 0xfd, 0x1d, 0xfa,
+ 0x52, 0x12, 0xa3, 0x11, 0x16, 0x78, 0xd9, 0xdf, 0xbe, 0x3e, 0x2f, 0xe6,
+ 0xb1, 0x88, 0x91, 0x63,
+};
+static const unsigned char kat1163_retbits[] = {
+ 0xb7, 0xe4, 0xff, 0x93, 0xe5, 0x4a, 0x4b, 0x66, 0xa3, 0xff, 0xab, 0x37,
+ 0x8a, 0xb2, 0x9b, 0xb0, 0xc8, 0xda, 0xfb, 0xbb, 0x92, 0xbd, 0x22, 0x8f,
+ 0x50, 0x35, 0x79, 0xfb, 0xb7, 0x5c, 0x0a, 0xd6, 0xd3, 0xb5, 0x62, 0x86,
+ 0xc6, 0xd0, 0x7f, 0x19, 0x4d, 0x53, 0xb1, 0xab, 0x89, 0xf3, 0x02, 0x1b,
+ 0xea, 0xd4, 0x80, 0x66, 0x50, 0x06, 0xbc, 0x48, 0x9a, 0xa9, 0x46, 0x54,
+ 0x8d, 0x8b, 0xc8, 0xeb,
+};
+static const struct drbg_kat_no_reseed kat1163_t = {
+ 7, kat1163_entropyin, kat1163_nonce, kat1163_persstr,
+ kat1163_addin0, kat1163_addin1, kat1163_retbits
+};
+static const struct drbg_kat kat1163 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1163_t
+};
+
+static const unsigned char kat1164_entropyin[] = {
+ 0x5f, 0x09, 0x2c, 0x7a, 0x9e, 0xd3, 0x52, 0x4d, 0xd4, 0x19, 0x34, 0x79,
+ 0x8c, 0x77, 0x3d, 0xfb, 0x45, 0x3e, 0x3b, 0x85, 0xb9, 0xa9, 0x97, 0x77,
+ 0xdc, 0xd5, 0x01, 0xed, 0x86, 0x62, 0x8a, 0x67, 0x9c, 0x19, 0x07, 0x1c,
+ 0x2f, 0xb4, 0xaf, 0x61,
+};
+static const unsigned char kat1164_nonce[] = {0};
+static const unsigned char kat1164_persstr[] = {0};
+static const unsigned char kat1164_addin0[] = {
+ 0xb9, 0x51, 0xd1, 0xac, 0xbb, 0xf1, 0x5b, 0x51, 0x89, 0x38, 0x31, 0x07,
+ 0x26, 0x18, 0x86, 0xe1, 0x1f, 0x29, 0x39, 0x42, 0x04, 0xa7, 0xb4, 0x5f,
+ 0xed, 0xc9, 0x86, 0x8f, 0x52, 0x92, 0x21, 0xf0, 0x60, 0xe8, 0xc0, 0x8b,
+ 0x10, 0x95, 0x2c, 0x3c,
+};
+static const unsigned char kat1164_addin1[] = {
+ 0xed, 0xc5, 0x75, 0x38, 0x0c, 0x88, 0xc1, 0xed, 0x0f, 0x73, 0xe8, 0x9c,
+ 0x99, 0xf5, 0x31, 0xa9, 0xff, 0xc9, 0x99, 0xd3, 0x02, 0x9a, 0xa5, 0x80,
+ 0x4c, 0xea, 0xd2, 0xbc, 0xcd, 0x21, 0x17, 0x7f, 0xe4, 0x0c, 0xcf, 0xa2,
+ 0xbe, 0x7e, 0x9d, 0xb0,
+};
+static const unsigned char kat1164_retbits[] = {
+ 0xa4, 0xfd, 0xf4, 0xa0, 0xad, 0x50, 0xe6, 0x29, 0x09, 0x2c, 0x75, 0xc7,
+ 0x0d, 0x5b, 0x54, 0x04, 0xdd, 0xbd, 0xe6, 0x87, 0x72, 0xd1, 0xb8, 0xbf,
+ 0xa4, 0xe0, 0x7d, 0x27, 0x1a, 0xa0, 0xf6, 0x40, 0xcb, 0xd6, 0x29, 0xba,
+ 0xf0, 0x70, 0x8a, 0x0c, 0x43, 0x54, 0x3f, 0x48, 0xca, 0x98, 0xe3, 0x9c,
+ 0xfa, 0x0c, 0xf3, 0xf5, 0xf7, 0xf2, 0xeb, 0xfb, 0x34, 0xaf, 0x46, 0x47,
+ 0x5d, 0xf5, 0x2c, 0x36,
+};
+static const struct drbg_kat_no_reseed kat1164_t = {
+ 8, kat1164_entropyin, kat1164_nonce, kat1164_persstr,
+ kat1164_addin0, kat1164_addin1, kat1164_retbits
+};
+static const struct drbg_kat kat1164 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1164_t
+};
+
+static const unsigned char kat1165_entropyin[] = {
+ 0xe7, 0xe4, 0xf7, 0x69, 0x95, 0xb0, 0x62, 0x98, 0x82, 0x84, 0xa5, 0x53,
+ 0x4d, 0x43, 0x88, 0x02, 0x2f, 0xe7, 0x55, 0xc1, 0x1f, 0x4b, 0xaf, 0xcc,
+ 0x16, 0x73, 0x51, 0x41, 0x02, 0xc1, 0x26, 0xf8, 0x08, 0xa0, 0x92, 0x62,
+ 0xea, 0x16, 0x0c, 0xab,
+};
+static const unsigned char kat1165_nonce[] = {0};
+static const unsigned char kat1165_persstr[] = {0};
+static const unsigned char kat1165_addin0[] = {
+ 0x6a, 0xa4, 0x3b, 0x7f, 0xeb, 0xd3, 0xdf, 0xc9, 0x99, 0x42, 0xe2, 0xc9,
+ 0x4e, 0x54, 0xdd, 0x77, 0x62, 0x9b, 0x92, 0x18, 0x12, 0x28, 0x17, 0x9d,
+ 0x6d, 0x93, 0x3b, 0xd0, 0x58, 0x41, 0xfd, 0x77, 0x09, 0x79, 0xe8, 0x0a,
+ 0x92, 0x9b, 0x69, 0x32,
+};
+static const unsigned char kat1165_addin1[] = {
+ 0x41, 0x26, 0x2a, 0xbb, 0xb4, 0x2a, 0x1d, 0xb3, 0x20, 0x59, 0x20, 0x94,
+ 0x55, 0xfe, 0xa4, 0x41, 0x60, 0x3b, 0x5a, 0x1a, 0xbe, 0x50, 0xb0, 0x3d,
+ 0xa6, 0x77, 0x7f, 0xd3, 0x94, 0x7e, 0x09, 0x6c, 0xd2, 0x1f, 0x92, 0x0e,
+ 0xda, 0x49, 0x32, 0xf9,
+};
+static const unsigned char kat1165_retbits[] = {
+ 0xe4, 0xec, 0x77, 0xed, 0x64, 0x9c, 0x10, 0x93, 0xb8, 0x41, 0x6a, 0x67,
+ 0xb6, 0x3b, 0xd2, 0x2c, 0xa8, 0x83, 0x00, 0x01, 0x6d, 0xa5, 0xf1, 0x8d,
+ 0x76, 0x19, 0x7e, 0x06, 0xcb, 0xfb, 0x84, 0xc0, 0x54, 0x25, 0x90, 0x5c,
+ 0x96, 0x0d, 0x6b, 0xbc, 0x1f, 0x12, 0x7c, 0x18, 0x3d, 0x41, 0x23, 0x6f,
+ 0x2a, 0x68, 0xb3, 0x3b, 0x72, 0x2f, 0xa0, 0x62, 0x77, 0x75, 0xce, 0xad,
+ 0xe2, 0x58, 0x70, 0xfd,
+};
+static const struct drbg_kat_no_reseed kat1165_t = {
+ 9, kat1165_entropyin, kat1165_nonce, kat1165_persstr,
+ kat1165_addin0, kat1165_addin1, kat1165_retbits
+};
+static const struct drbg_kat kat1165 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1165_t
+};
+
+static const unsigned char kat1166_entropyin[] = {
+ 0x64, 0x80, 0xa0, 0xe5, 0x84, 0x51, 0x50, 0x33, 0x71, 0x2b, 0xed, 0x8b,
+ 0xe6, 0x42, 0x97, 0x05, 0xb5, 0xc8, 0xef, 0x0f, 0x7d, 0x3b, 0x15, 0xc2,
+ 0xc5, 0x19, 0x50, 0xd6, 0xd7, 0xcc, 0x0a, 0x79, 0xcb, 0xcd, 0xd7, 0x10,
+ 0x4c, 0x19, 0x17, 0x1d,
+};
+static const unsigned char kat1166_nonce[] = {0};
+static const unsigned char kat1166_persstr[] = {0};
+static const unsigned char kat1166_addin0[] = {
+ 0x4a, 0x52, 0x82, 0xfc, 0xd8, 0x02, 0x00, 0xc9, 0x49, 0xc1, 0xdc, 0x89,
+ 0xa5, 0x82, 0x7e, 0x06, 0xcc, 0x17, 0x60, 0xdb, 0x53, 0x91, 0x55, 0x2c,
+ 0x41, 0x12, 0xeb, 0x4f, 0x92, 0xf3, 0x44, 0x97, 0xed, 0x04, 0x4d, 0x21,
+ 0x3e, 0xb7, 0x90, 0x21,
+};
+static const unsigned char kat1166_addin1[] = {
+ 0xeb, 0x4c, 0x2d, 0x77, 0xf5, 0x8b, 0xf8, 0x26, 0x7c, 0x78, 0xea, 0x8f,
+ 0x85, 0x6a, 0xff, 0x89, 0x57, 0xb4, 0x6f, 0x30, 0xc7, 0xa0, 0xfc, 0x8b,
+ 0x8c, 0xcb, 0x60, 0x50, 0xe5, 0x15, 0xc3, 0xe6, 0xb0, 0x2b, 0x05, 0xf3,
+ 0x36, 0x34, 0xae, 0xeb,
+};
+static const unsigned char kat1166_retbits[] = {
+ 0xee, 0x37, 0x11, 0x7c, 0xa5, 0xe1, 0x4c, 0x4e, 0xa5, 0xa8, 0x19, 0xb1,
+ 0x73, 0x75, 0x7a, 0x53, 0xf8, 0xaf, 0x9c, 0x4a, 0xfd, 0x8e, 0x8b, 0xee,
+ 0xb1, 0x10, 0x46, 0xd9, 0x88, 0xf3, 0x4f, 0xa0, 0x7b, 0xb0, 0xef, 0x4a,
+ 0x4c, 0xe4, 0xd2, 0x08, 0x87, 0xd1, 0x83, 0x54, 0x7c, 0x59, 0x7a, 0xd2,
+ 0xa6, 0x21, 0x37, 0x75, 0x0c, 0x07, 0xe5, 0xc7, 0x8f, 0xaa, 0xfa, 0xb1,
+ 0x02, 0x46, 0x17, 0x86,
+};
+static const struct drbg_kat_no_reseed kat1166_t = {
+ 10, kat1166_entropyin, kat1166_nonce, kat1166_persstr,
+ kat1166_addin0, kat1166_addin1, kat1166_retbits
+};
+static const struct drbg_kat kat1166 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1166_t
+};
+
+static const unsigned char kat1167_entropyin[] = {
+ 0xa2, 0x8b, 0x27, 0x22, 0xc0, 0x92, 0xe5, 0xc0, 0x45, 0xc6, 0x4b, 0x39,
+ 0xd9, 0xb9, 0x67, 0xcc, 0x78, 0xff, 0xed, 0xf3, 0x4d, 0xf7, 0x4b, 0x46,
+ 0x46, 0x57, 0x67, 0xb3, 0x7f, 0x26, 0x3f, 0xec, 0x5b, 0x31, 0xa0, 0xef,
+ 0x98, 0x67, 0x71, 0x51,
+};
+static const unsigned char kat1167_nonce[] = {0};
+static const unsigned char kat1167_persstr[] = {0};
+static const unsigned char kat1167_addin0[] = {
+ 0x97, 0x94, 0x6f, 0x86, 0xe4, 0xfc, 0xa6, 0x4f, 0x74, 0xaa, 0x0e, 0x72,
+ 0xb4, 0x5e, 0xb3, 0xc1, 0x67, 0x55, 0x99, 0xe7, 0x3e, 0xb6, 0xbb, 0x0d,
+ 0xde, 0x32, 0x6a, 0x3a, 0x22, 0x32, 0xbe, 0xaa, 0xa9, 0xc7, 0x38, 0x63,
+ 0x9e, 0x98, 0x14, 0xf6,
+};
+static const unsigned char kat1167_addin1[] = {
+ 0x38, 0xbf, 0x98, 0xb3, 0xa8, 0xdb, 0x1a, 0x6d, 0xce, 0xd8, 0x08, 0xc1,
+ 0x7e, 0x80, 0xd6, 0xdf, 0x5f, 0x06, 0x3e, 0xf9, 0x0c, 0xc6, 0x6c, 0xcc,
+ 0x12, 0x32, 0x17, 0x77, 0xc4, 0xee, 0xf9, 0x25, 0x75, 0x8d, 0x26, 0x6f,
+ 0x8d, 0x68, 0x23, 0xd4,
+};
+static const unsigned char kat1167_retbits[] = {
+ 0x13, 0x71, 0xf0, 0x4c, 0x59, 0x41, 0xf9, 0xa1, 0x43, 0xd3, 0x29, 0x4b,
+ 0x03, 0x2d, 0xaa, 0x20, 0xf1, 0x47, 0x5d, 0x26, 0xd1, 0x7a, 0xe5, 0x13,
+ 0xdb, 0x95, 0xa6, 0xb5, 0x1e, 0xa8, 0xc2, 0x72, 0x0b, 0x5c, 0xf6, 0xb9,
+ 0x47, 0xb9, 0x3d, 0x4e, 0x47, 0x52, 0x77, 0x77, 0x3b, 0xb1, 0x43, 0x65,
+ 0x57, 0x26, 0xc2, 0x20, 0x25, 0xe6, 0xe8, 0x8e, 0x1d, 0xb2, 0xbf, 0x28,
+ 0x63, 0xdd, 0x8d, 0xc5,
+};
+static const struct drbg_kat_no_reseed kat1167_t = {
+ 11, kat1167_entropyin, kat1167_nonce, kat1167_persstr,
+ kat1167_addin0, kat1167_addin1, kat1167_retbits
+};
+static const struct drbg_kat kat1167 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1167_t
+};
+
+static const unsigned char kat1168_entropyin[] = {
+ 0x00, 0xc2, 0xfe, 0x57, 0xd0, 0xfd, 0x5e, 0x19, 0x41, 0x60, 0x38, 0x29,
+ 0x4a, 0x85, 0x06, 0x53, 0xe4, 0xb0, 0x6b, 0x09, 0x9f, 0xbf, 0xa7, 0x38,
+ 0x2f, 0x17, 0xae, 0xd4, 0x36, 0x9a, 0x2f, 0x66, 0x91, 0xe6, 0xdb, 0xc9,
+ 0x6e, 0xc4, 0x74, 0x2c,
+};
+static const unsigned char kat1168_nonce[] = {0};
+static const unsigned char kat1168_persstr[] = {0};
+static const unsigned char kat1168_addin0[] = {
+ 0x23, 0xf4, 0xd4, 0x8e, 0x72, 0x74, 0xe8, 0x78, 0xed, 0xea, 0xa6, 0xc0,
+ 0xce, 0x19, 0x45, 0xa5, 0x53, 0xb1, 0x8f, 0xd9, 0x5f, 0xa0, 0xbb, 0x69,
+ 0x79, 0x04, 0xb1, 0x34, 0x93, 0xa0, 0x87, 0x24, 0x64, 0xc2, 0x6f, 0x7e,
+ 0x73, 0x1b, 0xc5, 0x76,
+};
+static const unsigned char kat1168_addin1[] = {
+ 0x93, 0x10, 0xa5, 0xfa, 0x97, 0x08, 0x60, 0xfd, 0xac, 0x7e, 0xac, 0x59,
+ 0x56, 0xbf, 0xdf, 0xe5, 0x52, 0x74, 0x76, 0x2f, 0x86, 0x32, 0xdf, 0x4e,
+ 0xd0, 0xeb, 0x26, 0x99, 0xcc, 0xbc, 0xc4, 0x01, 0x98, 0xcb, 0x9a, 0xe5,
+ 0x4d, 0x3d, 0xb2, 0x9a,
+};
+static const unsigned char kat1168_retbits[] = {
+ 0x15, 0x8a, 0x65, 0xe3, 0x86, 0xfa, 0xe7, 0xfc, 0x7b, 0x7e, 0x02, 0x19,
+ 0xee, 0x4b, 0x64, 0x9c, 0x19, 0xd7, 0x91, 0xc0, 0x87, 0xc5, 0xa4, 0xef,
+ 0x7c, 0xca, 0x64, 0x3e, 0xcc, 0xb7, 0x92, 0xcd, 0xa9, 0x70, 0x69, 0x3e,
+ 0xde, 0x58, 0x8b, 0x38, 0x52, 0x72, 0x57, 0xea, 0xb8, 0xd5, 0xc0, 0x6b,
+ 0x17, 0x7f, 0xf5, 0xc2, 0x5d, 0x6b, 0x01, 0x44, 0xd3, 0xb7, 0x42, 0x11,
+ 0x56, 0x9d, 0x64, 0x01,
+};
+static const struct drbg_kat_no_reseed kat1168_t = {
+ 12, kat1168_entropyin, kat1168_nonce, kat1168_persstr,
+ kat1168_addin0, kat1168_addin1, kat1168_retbits
+};
+static const struct drbg_kat kat1168 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1168_t
+};
+
+static const unsigned char kat1169_entropyin[] = {
+ 0xa5, 0x8f, 0x5e, 0xc7, 0x2b, 0x92, 0x79, 0x2d, 0x74, 0x02, 0xa6, 0x8f,
+ 0x56, 0xe1, 0x9a, 0xf2, 0x8a, 0xb9, 0x10, 0x35, 0xde, 0x48, 0x8c, 0xaa,
+ 0x6b, 0x60, 0x4c, 0x21, 0xbf, 0xb1, 0xa2, 0x8d, 0xf5, 0xeb, 0x40, 0xfa,
+ 0x92, 0x0f, 0xad, 0x89,
+};
+static const unsigned char kat1169_nonce[] = {0};
+static const unsigned char kat1169_persstr[] = {0};
+static const unsigned char kat1169_addin0[] = {
+ 0xf8, 0x10, 0x86, 0x53, 0x97, 0xd9, 0x01, 0x43, 0xab, 0xc8, 0xba, 0x97,
+ 0x67, 0x2d, 0x3c, 0x56, 0x3b, 0xe3, 0xab, 0x43, 0xc6, 0xdd, 0x20, 0x44,
+ 0x52, 0x2b, 0x48, 0x2c, 0x92, 0xd7, 0xa4, 0xc3, 0xf8, 0x5e, 0x8d, 0x5f,
+ 0x08, 0x9d, 0xfd, 0x2b,
+};
+static const unsigned char kat1169_addin1[] = {
+ 0x4c, 0x4d, 0x43, 0x15, 0x39, 0x2e, 0x71, 0x1f, 0xbc, 0x97, 0xdd, 0xb0,
+ 0xb1, 0x89, 0xcc, 0xbb, 0xeb, 0x0e, 0xe7, 0x1f, 0x65, 0x77, 0xb4, 0x10,
+ 0x9a, 0x62, 0x4e, 0x5a, 0xae, 0xaf, 0x90, 0xf9, 0xd8, 0x61, 0x9e, 0x89,
+ 0x7f, 0xbd, 0xa4, 0x6d,
+};
+static const unsigned char kat1169_retbits[] = {
+ 0xef, 0x3c, 0x1b, 0x44, 0x5d, 0x23, 0x7b, 0xe9, 0x58, 0x85, 0x36, 0x2d,
+ 0x70, 0xec, 0x03, 0xa0, 0x57, 0x6b, 0x4b, 0xfe, 0xb6, 0x33, 0x6f, 0x20,
+ 0x3b, 0x0f, 0x02, 0xb6, 0x8e, 0xb7, 0x41, 0x01, 0xd3, 0x58, 0x42, 0x5a,
+ 0xf5, 0x0b, 0x2e, 0xb0, 0xd7, 0xd3, 0xde, 0xfe, 0xf2, 0x13, 0x4b, 0xcc,
+ 0x46, 0x51, 0xfa, 0xee, 0x75, 0x1b, 0xca, 0xc8, 0x60, 0x97, 0x58, 0x68,
+ 0xaf, 0x9b, 0xf5, 0x33,
+};
+static const struct drbg_kat_no_reseed kat1169_t = {
+ 13, kat1169_entropyin, kat1169_nonce, kat1169_persstr,
+ kat1169_addin0, kat1169_addin1, kat1169_retbits
+};
+static const struct drbg_kat kat1169 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1169_t
+};
+
+static const unsigned char kat1170_entropyin[] = {
+ 0x78, 0xd1, 0x23, 0xf6, 0x52, 0x4e, 0x52, 0x8d, 0xe8, 0xce, 0x80, 0x11,
+ 0x88, 0xc0, 0x8d, 0x85, 0xf6, 0xf1, 0x94, 0xc9, 0xfe, 0x54, 0x6f, 0xb4,
+ 0x40, 0x71, 0x46, 0x86, 0x96, 0x5d, 0x3c, 0xa8, 0x14, 0x80, 0xb5, 0x21,
+ 0xb4, 0x8d, 0x0c, 0x90,
+};
+static const unsigned char kat1170_nonce[] = {0};
+static const unsigned char kat1170_persstr[] = {0};
+static const unsigned char kat1170_addin0[] = {
+ 0x32, 0x0c, 0x32, 0x02, 0xd7, 0x10, 0xd6, 0x2b, 0x04, 0xbe, 0xd6, 0xcc,
+ 0x1d, 0x45, 0xb6, 0xa3, 0xfa, 0x30, 0x65, 0x22, 0xb9, 0x4c, 0xb7, 0x03,
+ 0x7a, 0xe7, 0xed, 0x66, 0x09, 0x78, 0xfc, 0x3c, 0x05, 0xf6, 0xc2, 0x69,
+ 0xc8, 0x06, 0xad, 0xac,
+};
+static const unsigned char kat1170_addin1[] = {
+ 0xbf, 0x6b, 0x78, 0xf3, 0x55, 0x2f, 0xab, 0x90, 0x33, 0x31, 0x17, 0xfd,
+ 0x2f, 0xcf, 0xac, 0x3a, 0xf1, 0x0c, 0x5e, 0x4d, 0xc0, 0xde, 0xdc, 0x58,
+ 0x1b, 0x0b, 0x15, 0xb6, 0xaa, 0x57, 0x9e, 0x57, 0x6f, 0xd8, 0xb1, 0x0a,
+ 0x09, 0x9d, 0x05, 0xe1,
+};
+static const unsigned char kat1170_retbits[] = {
+ 0xe9, 0x69, 0x0c, 0xf3, 0xa6, 0xa6, 0x9e, 0x92, 0xe5, 0x6b, 0x8f, 0x79,
+ 0x3c, 0x2a, 0x27, 0xd2, 0xed, 0x3c, 0x32, 0x1e, 0x61, 0xc2, 0xe5, 0x9b,
+ 0x99, 0xb8, 0xae, 0xba, 0xe7, 0x4a, 0xeb, 0x9f, 0x81, 0x03, 0x48, 0x52,
+ 0x93, 0x86, 0x03, 0x7f, 0xf4, 0xf1, 0xa9, 0xf5, 0x25, 0xaf, 0xf4, 0x94,
+ 0xf8, 0x81, 0x7b, 0x08, 0x7d, 0x67, 0x81, 0x7c, 0x9a, 0x75, 0x47, 0xe5,
+ 0x61, 0x09, 0x22, 0x4a,
+};
+static const struct drbg_kat_no_reseed kat1170_t = {
+ 14, kat1170_entropyin, kat1170_nonce, kat1170_persstr,
+ kat1170_addin0, kat1170_addin1, kat1170_retbits
+};
+static const struct drbg_kat kat1170 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat1170_t
+};
+
+static const unsigned char kat1171_entropyin[] = {
+ 0x56, 0xe7, 0x81, 0x09, 0x09, 0x43, 0x68, 0x56, 0xc9, 0x2d, 0xbf, 0x07,
+ 0xd1, 0x26, 0x9c, 0xa5, 0x87, 0x83, 0x84, 0x3d, 0x26, 0x4e, 0xf6, 0x84,
+ 0x2f, 0xab, 0xfd, 0x3d, 0xb2, 0xf6, 0x6f, 0x37, 0x45, 0x15, 0x86, 0xe0,
+ 0x94, 0x1e, 0xf2, 0x98,
+};
+static const unsigned char kat1171_nonce[] = {0};
+static const unsigned char kat1171_persstr[] = {
+ 0x51, 0xb6, 0xf2, 0xe1, 0x65, 0x3e, 0xca, 0x3b, 0x36, 0xd7, 0x6f, 0xd8,
+ 0x89, 0xf7, 0xd0, 0x2f, 0xbf, 0xd6, 0x4c, 0xdd, 0xd4, 0x04, 0x47, 0xf8,
+ 0x4a, 0xb2, 0x04, 0x4f, 0x49, 0xb0, 0xfa, 0x5c, 0x1e, 0xce, 0x0c, 0xfc,
+ 0xa4, 0x66, 0xae, 0x49,
+};
+static const unsigned char kat1171_addin0[] = {0};
+static const unsigned char kat1171_addin1[] = {0};
+static const unsigned char kat1171_retbits[] = {
+ 0x4f, 0x61, 0x10, 0x1e, 0xb1, 0x41, 0xf4, 0x84, 0xc6, 0x99, 0x77, 0x9a,
+ 0x92, 0x95, 0x3a, 0x36, 0x29, 0x03, 0x5e, 0xc2, 0xbd, 0xf1, 0x04, 0x53,
+ 0x29, 0x55, 0xaa, 0xfc, 0x14, 0x0b, 0xb1, 0xf3, 0x77, 0x07, 0x80, 0x62,
+ 0x08, 0x4d, 0x91, 0xe8, 0x0b, 0x7f, 0xa9, 0xc0, 0xf1, 0x71, 0xe5, 0xfb,
+ 0x09, 0x70, 0xd1, 0xa8, 0x48, 0x70, 0x4f, 0xf9, 0xa0, 0xed, 0xb8, 0xef,
+ 0x84, 0xa7, 0xa1, 0x04,
+};
+static const struct drbg_kat_no_reseed kat1171_t = {
+ 0, kat1171_entropyin, kat1171_nonce, kat1171_persstr,
+ kat1171_addin0, kat1171_addin1, kat1171_retbits
+};
+static const struct drbg_kat kat1171 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1171_t
+};
+
+static const unsigned char kat1172_entropyin[] = {
+ 0x78, 0x19, 0xfa, 0x7e, 0xec, 0x40, 0xed, 0x26, 0xd4, 0xa1, 0xe8, 0xfc,
+ 0xec, 0x1c, 0x0c, 0x57, 0x90, 0x82, 0x82, 0xef, 0xf6, 0x66, 0x67, 0x0a,
+ 0xf8, 0xaa, 0x30, 0x85, 0x51, 0x1d, 0xa8, 0x31, 0xf1, 0x2b, 0x24, 0xaf,
+ 0xc7, 0x72, 0x8c, 0x1d,
+};
+static const unsigned char kat1172_nonce[] = {0};
+static const unsigned char kat1172_persstr[] = {
+ 0x95, 0x56, 0x2e, 0x4c, 0x1a, 0x1b, 0x8e, 0x1d, 0x02, 0x26, 0x06, 0x35,
+ 0x7c, 0xf1, 0x3d, 0x6c, 0xe2, 0x80, 0xa5, 0x25, 0x31, 0x5e, 0x89, 0x9b,
+ 0x33, 0xef, 0xb5, 0xd6, 0x76, 0x5c, 0xb1, 0xeb, 0x3d, 0xa2, 0xd7, 0xab,
+ 0xdc, 0xb0, 0x16, 0x58,
+};
+static const unsigned char kat1172_addin0[] = {0};
+static const unsigned char kat1172_addin1[] = {0};
+static const unsigned char kat1172_retbits[] = {
+ 0x81, 0xf9, 0x87, 0x7a, 0x41, 0x37, 0x1b, 0xaf, 0x63, 0xf7, 0xe4, 0xde,
+ 0xeb, 0x2d, 0xa1, 0x09, 0x85, 0xfd, 0xa9, 0xf5, 0x01, 0x6f, 0x9f, 0x4d,
+ 0xb0, 0x8e, 0xc6, 0xde, 0xf8, 0x10, 0x84, 0x63, 0x81, 0x18, 0x3f, 0xde,
+ 0xd8, 0x77, 0xcf, 0xe4, 0x11, 0x12, 0x77, 0x45, 0x12, 0xc2, 0xb0, 0x35,
+ 0x01, 0xe7, 0xf3, 0xda, 0xf6, 0xd3, 0xa5, 0x8a, 0x0c, 0xbf, 0xd7, 0x40,
+ 0xfe, 0x02, 0x43, 0x2a,
+};
+static const struct drbg_kat_no_reseed kat1172_t = {
+ 1, kat1172_entropyin, kat1172_nonce, kat1172_persstr,
+ kat1172_addin0, kat1172_addin1, kat1172_retbits
+};
+static const struct drbg_kat kat1172 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1172_t
+};
+
+static const unsigned char kat1173_entropyin[] = {
+ 0x89, 0x12, 0x1d, 0x4c, 0x10, 0xa8, 0x9d, 0x43, 0x92, 0xdc, 0x9b, 0x0a,
+ 0xe5, 0x70, 0x55, 0xa5, 0xdf, 0x5b, 0x9b, 0xde, 0xdc, 0xaf, 0xe1, 0xc7,
+ 0x37, 0x4f, 0xc4, 0xbb, 0x17, 0xb5, 0xf0, 0x68, 0xab, 0xd2, 0x2d, 0x57,
+ 0x68, 0x82, 0xeb, 0x66,
+};
+static const unsigned char kat1173_nonce[] = {0};
+static const unsigned char kat1173_persstr[] = {
+ 0x3c, 0x2f, 0x07, 0x98, 0xee, 0x67, 0x61, 0x39, 0x11, 0x29, 0xee, 0xdf,
+ 0xaa, 0x48, 0x3d, 0xb1, 0xcd, 0x3c, 0x18, 0xc2, 0x7f, 0x38, 0x06, 0x33,
+ 0x4f, 0x7d, 0xb3, 0xc1, 0x02, 0x22, 0xbb, 0x8b, 0xc5, 0xfc, 0xaa, 0xc2,
+ 0x38, 0x79, 0x19, 0x41,
+};
+static const unsigned char kat1173_addin0[] = {0};
+static const unsigned char kat1173_addin1[] = {0};
+static const unsigned char kat1173_retbits[] = {
+ 0x7e, 0xe7, 0x4c, 0x8b, 0x6d, 0xa5, 0x46, 0x47, 0x48, 0x80, 0x1c, 0xb5,
+ 0xdc, 0x16, 0x2c, 0x40, 0x71, 0x3d, 0xe8, 0x0b, 0x81, 0x0f, 0x5b, 0x01,
+ 0xfd, 0x63, 0xb0, 0xa5, 0xdc, 0x27, 0x10, 0xf4, 0x90, 0xf2, 0x41, 0xf9,
+ 0xfb, 0x47, 0x9c, 0x70, 0x51, 0x2c, 0xf7, 0x79, 0xbc, 0x57, 0xca, 0x02,
+ 0xaf, 0x85, 0xd9, 0x56, 0x03, 0x92, 0x2e, 0xe5, 0x79, 0xb9, 0x01, 0x6a,
+ 0x54, 0x34, 0xfe, 0x71,
+};
+static const struct drbg_kat_no_reseed kat1173_t = {
+ 2, kat1173_entropyin, kat1173_nonce, kat1173_persstr,
+ kat1173_addin0, kat1173_addin1, kat1173_retbits
+};
+static const struct drbg_kat kat1173 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1173_t
+};
+
+static const unsigned char kat1174_entropyin[] = {
+ 0x72, 0xe2, 0xd6, 0x3d, 0x87, 0x99, 0x4b, 0x5d, 0x55, 0xfb, 0x25, 0x77,
+ 0xd1, 0x01, 0xad, 0x23, 0xb6, 0x44, 0x7c, 0xfc, 0xe6, 0xb2, 0x70, 0x0c,
+ 0x03, 0x70, 0xf7, 0x7d, 0xed, 0x60, 0x80, 0x92, 0xc8, 0x74, 0x60, 0x12,
+ 0x47, 0x2f, 0xab, 0x02,
+};
+static const unsigned char kat1174_nonce[] = {0};
+static const unsigned char kat1174_persstr[] = {
+ 0x0e, 0x5f, 0x57, 0x9a, 0x1a, 0xa4, 0xfe, 0xf3, 0x5a, 0x70, 0x1a, 0x7a,
+ 0xb3, 0x66, 0x4a, 0x4f, 0xd0, 0x83, 0xe1, 0x37, 0xd9, 0xcc, 0x13, 0xbd,
+ 0xf0, 0xbf, 0xb0, 0xed, 0xdf, 0x0b, 0x09, 0x52, 0x5a, 0xa1, 0x5d, 0x14,
+ 0x7f, 0x0e, 0xee, 0xd8,
+};
+static const unsigned char kat1174_addin0[] = {0};
+static const unsigned char kat1174_addin1[] = {0};
+static const unsigned char kat1174_retbits[] = {
+ 0x63, 0xf2, 0xf8, 0x59, 0x1d, 0x71, 0x0d, 0xb0, 0xda, 0x15, 0x3f, 0xda,
+ 0x01, 0xdf, 0x95, 0xf5, 0x0e, 0x7d, 0xe3, 0x2e, 0xc2, 0xea, 0x06, 0xf8,
+ 0x9b, 0x11, 0x9a, 0xce, 0x8f, 0x28, 0x24, 0xa5, 0x60, 0x2c, 0x65, 0xf8,
+ 0x22, 0x5a, 0x64, 0x36, 0xef, 0xa3, 0x10, 0xa6, 0x06, 0x60, 0xaf, 0xee,
+ 0x3e, 0x60, 0x2b, 0x6c, 0xb7, 0x87, 0x24, 0x9b, 0x35, 0x88, 0xf6, 0x38,
+ 0x13, 0xb5, 0xed, 0x1b,
+};
+static const struct drbg_kat_no_reseed kat1174_t = {
+ 3, kat1174_entropyin, kat1174_nonce, kat1174_persstr,
+ kat1174_addin0, kat1174_addin1, kat1174_retbits
+};
+static const struct drbg_kat kat1174 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1174_t
+};
+
+static const unsigned char kat1175_entropyin[] = {
+ 0x07, 0x97, 0x2b, 0x0b, 0x37, 0x64, 0x6c, 0x12, 0x22, 0xdf, 0x2b, 0xa0,
+ 0xd8, 0x51, 0x81, 0xf6, 0x52, 0xd4, 0x01, 0x13, 0xa6, 0xbd, 0x5a, 0x28,
+ 0x3b, 0x7b, 0x97, 0x08, 0x7a, 0xa3, 0x91, 0xad, 0x3e, 0x9a, 0x2c, 0x29,
+ 0x47, 0xd2, 0x61, 0xc1,
+};
+static const unsigned char kat1175_nonce[] = {0};
+static const unsigned char kat1175_persstr[] = {
+ 0xa9, 0x4c, 0xcb, 0x58, 0xb7, 0xdd, 0x4e, 0xa1, 0x9d, 0x32, 0x71, 0x99,
+ 0xba, 0x1a, 0x68, 0x59, 0x77, 0x57, 0xc5, 0x18, 0xff, 0x96, 0x8e, 0x18,
+ 0x21, 0xa7, 0x41, 0xf3, 0x0c, 0xea, 0xa4, 0xe0, 0x66, 0x4d, 0x04, 0x29,
+ 0xb6, 0x09, 0xba, 0x68,
+};
+static const unsigned char kat1175_addin0[] = {0};
+static const unsigned char kat1175_addin1[] = {0};
+static const unsigned char kat1175_retbits[] = {
+ 0x46, 0x94, 0x46, 0x5c, 0xdc, 0xf2, 0xf6, 0xbc, 0xe8, 0x7f, 0x38, 0x91,
+ 0x30, 0x9d, 0x20, 0x3f, 0x2c, 0xa7, 0x34, 0xc2, 0x8a, 0x25, 0xef, 0xc0,
+ 0x9b, 0x73, 0x3b, 0xd5, 0xd7, 0x77, 0xfe, 0xe9, 0xc0, 0xbf, 0x64, 0x36,
+ 0x27, 0x1e, 0xa2, 0x0e, 0x61, 0xc8, 0x59, 0x35, 0x9c, 0x05, 0xf0, 0x32,
+ 0x0f, 0xe9, 0xb2, 0xcc, 0xe5, 0x44, 0x78, 0x88, 0x3d, 0xde, 0xf7, 0x01,
+ 0xa4, 0xb7, 0x55, 0x64,
+};
+static const struct drbg_kat_no_reseed kat1175_t = {
+ 4, kat1175_entropyin, kat1175_nonce, kat1175_persstr,
+ kat1175_addin0, kat1175_addin1, kat1175_retbits
+};
+static const struct drbg_kat kat1175 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1175_t
+};
+
+static const unsigned char kat1176_entropyin[] = {
+ 0x76, 0x09, 0xaf, 0x59, 0xf9, 0x7a, 0x0c, 0xf9, 0xc0, 0x11, 0x9c, 0xf6,
+ 0x10, 0x4f, 0x73, 0xfd, 0x69, 0x7d, 0x50, 0xca, 0x3d, 0xb1, 0x24, 0xf2,
+ 0xc5, 0x81, 0x31, 0xb9, 0xfd, 0xb9, 0x41, 0x69, 0x78, 0xd1, 0xc8, 0xe8,
+ 0xad, 0xa4, 0xea, 0x2f,
+};
+static const unsigned char kat1176_nonce[] = {0};
+static const unsigned char kat1176_persstr[] = {
+ 0x6f, 0xf5, 0x64, 0x30, 0x9e, 0xcb, 0x6d, 0x90, 0x23, 0x3f, 0x8a, 0x3b,
+ 0xc5, 0x2b, 0xdd, 0xa6, 0x89, 0xe5, 0x0c, 0xd4, 0xef, 0x42, 0xd4, 0x8d,
+ 0xd9, 0x3a, 0x81, 0xc5, 0x5b, 0xce, 0xa4, 0x2c, 0xb8, 0xfb, 0x73, 0x02,
+ 0x4a, 0x20, 0xde, 0x2b,
+};
+static const unsigned char kat1176_addin0[] = {0};
+static const unsigned char kat1176_addin1[] = {0};
+static const unsigned char kat1176_retbits[] = {
+ 0x17, 0x5c, 0xa6, 0xd0, 0xea, 0x7c, 0x12, 0x3e, 0x7f, 0x0e, 0x1e, 0x2f,
+ 0xed, 0xd5, 0x6a, 0x5a, 0xfa, 0x3a, 0x25, 0x2b, 0x9e, 0x2d, 0x8f, 0xc4,
+ 0x5b, 0xc3, 0x27, 0xe2, 0x4e, 0x60, 0x1e, 0x7d, 0x4c, 0x00, 0xfd, 0xe7,
+ 0xc9, 0x5f, 0x75, 0x13, 0xb9, 0xd6, 0x41, 0xc1, 0x38, 0x26, 0x87, 0xf9,
+ 0x07, 0x94, 0x0f, 0xcf, 0xd2, 0x61, 0x29, 0xc6, 0x62, 0x0d, 0xf4, 0xf5,
+ 0x9c, 0x55, 0x2b, 0x35,
+};
+static const struct drbg_kat_no_reseed kat1176_t = {
+ 5, kat1176_entropyin, kat1176_nonce, kat1176_persstr,
+ kat1176_addin0, kat1176_addin1, kat1176_retbits
+};
+static const struct drbg_kat kat1176 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1176_t
+};
+
+static const unsigned char kat1177_entropyin[] = {
+ 0x7d, 0x4a, 0x89, 0xb5, 0x32, 0x99, 0x64, 0xf3, 0xa4, 0xe5, 0x22, 0x3e,
+ 0xd6, 0x01, 0x7e, 0xd5, 0x3e, 0x5d, 0x76, 0x57, 0xde, 0x24, 0xad, 0x8b,
+ 0xa5, 0x04, 0x9c, 0x3f, 0x57, 0x92, 0xe0, 0x16, 0x23, 0xa6, 0x52, 0x6e,
+ 0x61, 0xe9, 0x46, 0x8d,
+};
+static const unsigned char kat1177_nonce[] = {0};
+static const unsigned char kat1177_persstr[] = {
+ 0xed, 0xd4, 0xcf, 0x25, 0x4a, 0xd4, 0xae, 0xc6, 0xae, 0x61, 0xb5, 0xb9,
+ 0xe0, 0xcc, 0x32, 0x2a, 0x58, 0x24, 0xa0, 0xec, 0x0f, 0xb5, 0x73, 0xf7,
+ 0x60, 0x10, 0x47, 0x6d, 0x11, 0x26, 0x22, 0x1f, 0xe0, 0xb8, 0xf2, 0xb9,
+ 0x40, 0x6b, 0x91, 0xcd,
+};
+static const unsigned char kat1177_addin0[] = {0};
+static const unsigned char kat1177_addin1[] = {0};
+static const unsigned char kat1177_retbits[] = {
+ 0x8b, 0x92, 0x3d, 0x80, 0x12, 0xf3, 0x4e, 0xda, 0xc5, 0xe4, 0x6a, 0x98,
+ 0x1b, 0x0b, 0xd2, 0x21, 0xbf, 0x04, 0x0d, 0x04, 0xc1, 0x7d, 0x01, 0xb4,
+ 0xfa, 0x5b, 0xc2, 0xfc, 0xcd, 0x12, 0x38, 0x25, 0xa5, 0xe1, 0x70, 0x08,
+ 0xcc, 0xff, 0x41, 0x5a, 0x1e, 0x4f, 0x2c, 0x8c, 0x52, 0x1c, 0x8f, 0xfd,
+ 0x8d, 0x36, 0x48, 0x05, 0x0c, 0x9c, 0x89, 0x67, 0x1f, 0xfe, 0xeb, 0xa5,
+ 0x18, 0xa2, 0xc1, 0xd9,
+};
+static const struct drbg_kat_no_reseed kat1177_t = {
+ 6, kat1177_entropyin, kat1177_nonce, kat1177_persstr,
+ kat1177_addin0, kat1177_addin1, kat1177_retbits
+};
+static const struct drbg_kat kat1177 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1177_t
+};
+
+static const unsigned char kat1178_entropyin[] = {
+ 0x78, 0x7e, 0xdd, 0x7a, 0xac, 0xe3, 0x06, 0xad, 0x6d, 0x0c, 0x6d, 0xf8,
+ 0x08, 0x8f, 0x32, 0x74, 0x2b, 0xcf, 0x5f, 0x32, 0x1f, 0xd5, 0xf7, 0xfe,
+ 0xd9, 0x57, 0x28, 0x28, 0x25, 0x9f, 0xd0, 0x6c, 0x91, 0x21, 0xc7, 0x8d,
+ 0xd1, 0xc0, 0x5b, 0x52,
+};
+static const unsigned char kat1178_nonce[] = {0};
+static const unsigned char kat1178_persstr[] = {
+ 0x85, 0xef, 0x86, 0xd2, 0x98, 0xfe, 0xb9, 0x5f, 0x72, 0x35, 0x77, 0xd5,
+ 0xd2, 0x6f, 0xa2, 0x2b, 0xcf, 0xa6, 0x16, 0x98, 0x1e, 0x0e, 0x9e, 0x1a,
+ 0xc1, 0xd5, 0x44, 0xec, 0x3d, 0xf7, 0x65, 0x70, 0xce, 0x7d, 0xa8, 0xc4,
+ 0xe4, 0xa9, 0x58, 0xdb,
+};
+static const unsigned char kat1178_addin0[] = {0};
+static const unsigned char kat1178_addin1[] = {0};
+static const unsigned char kat1178_retbits[] = {
+ 0x1e, 0x8a, 0xf0, 0xd2, 0x12, 0xda, 0x56, 0x6f, 0x13, 0x3a, 0x88, 0x37,
+ 0x22, 0xd8, 0xe1, 0x72, 0xd6, 0xad, 0xb1, 0xf8, 0x8e, 0x29, 0xd6, 0xef,
+ 0xee, 0x44, 0x7c, 0x30, 0xfe, 0x60, 0x3a, 0x63, 0x01, 0x7e, 0x62, 0x27,
+ 0xea, 0x9d, 0xfa, 0xa8, 0xde, 0x09, 0x3d, 0xc1, 0x7c, 0x81, 0xa3, 0x31,
+ 0x0d, 0xfc, 0x86, 0xb3, 0x21, 0x1d, 0x9e, 0x19, 0x81, 0xe8, 0x53, 0xb0,
+ 0xd3, 0x47, 0xcd, 0xa7,
+};
+static const struct drbg_kat_no_reseed kat1178_t = {
+ 7, kat1178_entropyin, kat1178_nonce, kat1178_persstr,
+ kat1178_addin0, kat1178_addin1, kat1178_retbits
+};
+static const struct drbg_kat kat1178 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1178_t
+};
+
+static const unsigned char kat1179_entropyin[] = {
+ 0x01, 0x14, 0x6f, 0x8c, 0x69, 0x7d, 0xdc, 0xd7, 0xf8, 0x5a, 0x59, 0xad,
+ 0xbd, 0xfd, 0x19, 0x23, 0xf0, 0xec, 0xfa, 0xae, 0x88, 0x9c, 0x48, 0x8d,
+ 0xb4, 0x3f, 0x9d, 0x4c, 0x36, 0x7b, 0x62, 0x6b, 0x33, 0x7e, 0xed, 0xf9,
+ 0x17, 0xc3, 0x19, 0x77,
+};
+static const unsigned char kat1179_nonce[] = {0};
+static const unsigned char kat1179_persstr[] = {
+ 0xf6, 0x78, 0xa4, 0x3a, 0xc0, 0x53, 0x83, 0xdb, 0xca, 0x92, 0x67, 0xff,
+ 0x23, 0x05, 0x05, 0x2e, 0x57, 0x06, 0x4b, 0x69, 0x51, 0xc9, 0xe7, 0xe9,
+ 0xc8, 0x26, 0xed, 0x86, 0x8a, 0x34, 0xfb, 0x0d, 0x0b, 0x26, 0x16, 0x0f,
+ 0x06, 0x3c, 0x58, 0x04,
+};
+static const unsigned char kat1179_addin0[] = {0};
+static const unsigned char kat1179_addin1[] = {0};
+static const unsigned char kat1179_retbits[] = {
+ 0x40, 0x20, 0x40, 0x34, 0x83, 0x72, 0xf9, 0xde, 0x0e, 0xa4, 0x47, 0x8a,
+ 0x52, 0xde, 0xba, 0x7c, 0xc5, 0x5c, 0xae, 0xf5, 0x7b, 0x7f, 0x19, 0x3b,
+ 0xa8, 0x2a, 0xf5, 0x29, 0xe0, 0xbf, 0x75, 0x2f, 0xbb, 0x28, 0x3d, 0xec,
+ 0xe6, 0x87, 0x66, 0xc8, 0x48, 0xdb, 0x0d, 0xd5, 0xc4, 0x9a, 0x2a, 0xb1,
+ 0xdd, 0xf6, 0x25, 0x55, 0x5a, 0x4f, 0xd1, 0xc3, 0x19, 0x9a, 0xa1, 0xf4,
+ 0x02, 0xcb, 0xc2, 0xbb,
+};
+static const struct drbg_kat_no_reseed kat1179_t = {
+ 8, kat1179_entropyin, kat1179_nonce, kat1179_persstr,
+ kat1179_addin0, kat1179_addin1, kat1179_retbits
+};
+static const struct drbg_kat kat1179 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1179_t
+};
+
+static const unsigned char kat1180_entropyin[] = {
+ 0xb0, 0x0a, 0x90, 0x60, 0x86, 0x1e, 0x78, 0xf8, 0x23, 0xd0, 0x3f, 0x31,
+ 0x92, 0x92, 0xb6, 0x12, 0xb5, 0x5a, 0x4c, 0x90, 0xa1, 0xdc, 0xf3, 0xc4,
+ 0x5d, 0xeb, 0x94, 0x55, 0xcf, 0x8d, 0x2a, 0x42, 0x3c, 0xfb, 0xe7, 0xbb,
+ 0x24, 0xa5, 0xdf, 0x04,
+};
+static const unsigned char kat1180_nonce[] = {0};
+static const unsigned char kat1180_persstr[] = {
+ 0x61, 0x1f, 0x2d, 0x5b, 0x2d, 0x00, 0x04, 0x61, 0x7a, 0x8b, 0xb0, 0x2c,
+ 0x8e, 0x4b, 0x08, 0x3a, 0xbf, 0xfa, 0xd6, 0xb6, 0xbd, 0x75, 0x56, 0xa7,
+ 0xc2, 0x7d, 0xcf, 0x5c, 0x7c, 0x6c, 0x83, 0x30, 0xec, 0xf7, 0xa9, 0xe8,
+ 0x83, 0xcf, 0x49, 0xe1,
+};
+static const unsigned char kat1180_addin0[] = {0};
+static const unsigned char kat1180_addin1[] = {0};
+static const unsigned char kat1180_retbits[] = {
+ 0xe0, 0x51, 0x87, 0x2f, 0x5e, 0xa1, 0x3c, 0xde, 0xb7, 0xe6, 0x1c, 0xe0,
+ 0x45, 0x09, 0xce, 0x3d, 0x45, 0x39, 0xb2, 0x8c, 0x05, 0x29, 0xcf, 0xef,
+ 0xbf, 0xae, 0x12, 0xa7, 0x50, 0x87, 0x0b, 0x68, 0xfe, 0xd8, 0x9b, 0x31,
+ 0xe8, 0x7f, 0x0d, 0xc3, 0xd5, 0x89, 0xf9, 0xd1, 0xa8, 0x1a, 0xc4, 0xa9,
+ 0xd4, 0xb3, 0x56, 0xc1, 0xcb, 0x1f, 0xdc, 0x14, 0xf0, 0x3a, 0x2b, 0x67,
+ 0x58, 0xcd, 0x9d, 0xb3,
+};
+static const struct drbg_kat_no_reseed kat1180_t = {
+ 9, kat1180_entropyin, kat1180_nonce, kat1180_persstr,
+ kat1180_addin0, kat1180_addin1, kat1180_retbits
+};
+static const struct drbg_kat kat1180 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1180_t
+};
+
+static const unsigned char kat1181_entropyin[] = {
+ 0x34, 0x62, 0xa9, 0x2c, 0xd9, 0xff, 0x51, 0x67, 0x97, 0xb6, 0x47, 0x0d,
+ 0xa1, 0xed, 0xdb, 0x45, 0xad, 0xb8, 0x6b, 0x54, 0x49, 0x16, 0x21, 0x11,
+ 0x29, 0xb8, 0xeb, 0xc7, 0xf4, 0x40, 0x6d, 0x02, 0x21, 0x46, 0x75, 0xd4,
+ 0xf9, 0xb1, 0xb1, 0xee,
+};
+static const unsigned char kat1181_nonce[] = {0};
+static const unsigned char kat1181_persstr[] = {
+ 0xa3, 0x92, 0x36, 0x1e, 0x61, 0x15, 0xba, 0xa4, 0xa5, 0x81, 0x06, 0x8a,
+ 0x6e, 0x37, 0x66, 0x5b, 0xdc, 0x12, 0xd4, 0x5b, 0x8e, 0xe6, 0x56, 0xfc,
+ 0x3b, 0x90, 0xb1, 0xed, 0x01, 0x35, 0xb7, 0xd2, 0xf5, 0x07, 0x6b, 0x68,
+ 0x0d, 0xde, 0x61, 0xb4,
+};
+static const unsigned char kat1181_addin0[] = {0};
+static const unsigned char kat1181_addin1[] = {0};
+static const unsigned char kat1181_retbits[] = {
+ 0xde, 0x08, 0xa5, 0xac, 0xb6, 0x75, 0xa7, 0x9a, 0xbd, 0xc3, 0x06, 0xda,
+ 0x7c, 0xc6, 0xb7, 0xd4, 0x8d, 0x88, 0x93, 0x0d, 0x77, 0x92, 0xc2, 0xed,
+ 0x35, 0xb0, 0x7c, 0x4f, 0x9a, 0x4d, 0x3a, 0x6d, 0xbe, 0x77, 0x0d, 0x47,
+ 0x45, 0x69, 0x1c, 0x76, 0x00, 0x80, 0x7c, 0x78, 0xb0, 0x6c, 0x1c, 0xf4,
+ 0xf4, 0xe0, 0xde, 0x88, 0x55, 0x2b, 0x74, 0xc8, 0x7c, 0x37, 0x57, 0x2d,
+ 0x3f, 0x0f, 0x9f, 0xe9,
+};
+static const struct drbg_kat_no_reseed kat1181_t = {
+ 10, kat1181_entropyin, kat1181_nonce, kat1181_persstr,
+ kat1181_addin0, kat1181_addin1, kat1181_retbits
+};
+static const struct drbg_kat kat1181 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1181_t
+};
+
+static const unsigned char kat1182_entropyin[] = {
+ 0xe8, 0x67, 0x36, 0x0a, 0x53, 0xe8, 0x1b, 0xe2, 0xae, 0x58, 0xc4, 0x6d,
+ 0x96, 0xa3, 0xee, 0x7c, 0xf7, 0xbe, 0xf4, 0xb1, 0xfa, 0xd3, 0x5f, 0xa7,
+ 0x17, 0x06, 0x35, 0x37, 0xb4, 0x00, 0xd4, 0x69, 0x18, 0x69, 0x5f, 0xd3,
+ 0x3c, 0xc4, 0xd3, 0x4a,
+};
+static const unsigned char kat1182_nonce[] = {0};
+static const unsigned char kat1182_persstr[] = {
+ 0xdd, 0x54, 0xd9, 0x82, 0xb7, 0x63, 0xd9, 0x82, 0x16, 0x11, 0x63, 0x0f,
+ 0x50, 0x6a, 0x20, 0x21, 0x6b, 0x29, 0x54, 0xa2, 0x03, 0x2e, 0x31, 0xff,
+ 0xc6, 0x39, 0x56, 0x79, 0x83, 0x2e, 0x9b, 0x3f, 0x56, 0x8a, 0x82, 0x29,
+ 0xd3, 0x0a, 0x1c, 0xb3,
+};
+static const unsigned char kat1182_addin0[] = {0};
+static const unsigned char kat1182_addin1[] = {0};
+static const unsigned char kat1182_retbits[] = {
+ 0xb5, 0xc9, 0x04, 0xec, 0x3a, 0x17, 0xad, 0x53, 0xa7, 0x5c, 0x50, 0xea,
+ 0xfc, 0xbe, 0x6b, 0x5f, 0x6e, 0xa0, 0xaa, 0x87, 0xc1, 0x2e, 0x2d, 0x2f,
+ 0x8f, 0x00, 0x3f, 0x53, 0x6e, 0x63, 0xc1, 0xb0, 0x43, 0xe0, 0xb5, 0x5a,
+ 0x7a, 0x5c, 0x15, 0x9f, 0xa3, 0x9c, 0xc5, 0xe4, 0x60, 0xde, 0xf5, 0x04,
+ 0x05, 0x74, 0xa4, 0x68, 0xc5, 0xe4, 0x20, 0x36, 0xb5, 0xa0, 0xb5, 0x76,
+ 0xfe, 0xa6, 0xdf, 0xf3,
+};
+static const struct drbg_kat_no_reseed kat1182_t = {
+ 11, kat1182_entropyin, kat1182_nonce, kat1182_persstr,
+ kat1182_addin0, kat1182_addin1, kat1182_retbits
+};
+static const struct drbg_kat kat1182 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1182_t
+};
+
+static const unsigned char kat1183_entropyin[] = {
+ 0x8f, 0xd9, 0x4c, 0x6a, 0x49, 0x8e, 0x59, 0xe0, 0xe0, 0xcb, 0x2f, 0x3c,
+ 0x18, 0x9c, 0xf6, 0xa0, 0x5a, 0xaa, 0x38, 0x34, 0xeb, 0xb1, 0x9f, 0xde,
+ 0xaf, 0x1c, 0x90, 0x25, 0x39, 0x94, 0x5c, 0xc6, 0xec, 0x6b, 0x2d, 0x94,
+ 0x14, 0x79, 0x96, 0x2e,
+};
+static const unsigned char kat1183_nonce[] = {0};
+static const unsigned char kat1183_persstr[] = {
+ 0xba, 0x96, 0xa9, 0x07, 0x1c, 0x21, 0x52, 0x72, 0x9f, 0x78, 0x84, 0xe9,
+ 0xfe, 0xfb, 0x1f, 0x95, 0x8f, 0xbf, 0x32, 0x83, 0x77, 0xe2, 0x51, 0x18,
+ 0xd6, 0xf9, 0xcd, 0xd9, 0x01, 0x30, 0xd4, 0x1b, 0x59, 0x38, 0xed, 0x5d,
+ 0x5e, 0x82, 0x6f, 0xb4,
+};
+static const unsigned char kat1183_addin0[] = {0};
+static const unsigned char kat1183_addin1[] = {0};
+static const unsigned char kat1183_retbits[] = {
+ 0x58, 0xe1, 0x82, 0x9d, 0xc5, 0x31, 0xaf, 0x06, 0xc3, 0x26, 0x65, 0xbf,
+ 0xfa, 0x77, 0xff, 0x9a, 0x71, 0x09, 0x3c, 0x17, 0x68, 0x12, 0x79, 0xa7,
+ 0x14, 0x5e, 0xed, 0x54, 0x90, 0xbc, 0xc3, 0x45, 0xb3, 0x30, 0xca, 0x5d,
+ 0xc3, 0x44, 0x82, 0x49, 0xfb, 0xa1, 0x9f, 0xa4, 0xa9, 0x28, 0x17, 0x5f,
+ 0x2b, 0xce, 0x81, 0x5b, 0x56, 0xc9, 0x1a, 0xe9, 0x65, 0x85, 0x2b, 0x09,
+ 0xa9, 0x9b, 0x01, 0x5e,
+};
+static const struct drbg_kat_no_reseed kat1183_t = {
+ 12, kat1183_entropyin, kat1183_nonce, kat1183_persstr,
+ kat1183_addin0, kat1183_addin1, kat1183_retbits
+};
+static const struct drbg_kat kat1183 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1183_t
+};
+
+static const unsigned char kat1184_entropyin[] = {
+ 0x27, 0xd6, 0xff, 0x3a, 0x4f, 0xc4, 0x69, 0x8a, 0x9a, 0xc2, 0x40, 0xf0,
+ 0x98, 0x9b, 0x3d, 0x59, 0x0b, 0x75, 0x2d, 0x2f, 0xfb, 0xc5, 0xf3, 0x3e,
+ 0x2f, 0x49, 0x5a, 0xce, 0xde, 0x1c, 0xb9, 0xf1, 0x73, 0x2f, 0x53, 0x8b,
+ 0x51, 0x59, 0x1c, 0x3e,
+};
+static const unsigned char kat1184_nonce[] = {0};
+static const unsigned char kat1184_persstr[] = {
+ 0xcb, 0xd7, 0x76, 0xe0, 0x7d, 0xbf, 0x3f, 0x91, 0x8f, 0x38, 0x05, 0xf3,
+ 0x9c, 0x8c, 0xea, 0x89, 0xcb, 0x7a, 0xd6, 0xd2, 0x0f, 0x51, 0x1b, 0x8b,
+ 0x2a, 0xd5, 0x84, 0x84, 0x74, 0x12, 0x88, 0xc4, 0xd2, 0xbe, 0x96, 0x54,
+ 0xf5, 0xb6, 0x79, 0x12,
+};
+static const unsigned char kat1184_addin0[] = {0};
+static const unsigned char kat1184_addin1[] = {0};
+static const unsigned char kat1184_retbits[] = {
+ 0x95, 0x8f, 0x9f, 0x61, 0xad, 0xd6, 0xbf, 0xc9, 0x85, 0x09, 0x35, 0x0b,
+ 0x60, 0x52, 0x01, 0x42, 0x6f, 0xc8, 0x3f, 0xc4, 0x5b, 0x53, 0x83, 0xa5,
+ 0x8d, 0xc8, 0x4e, 0x3e, 0xf8, 0xcb, 0x91, 0x1c, 0xae, 0x5a, 0x3b, 0xc6,
+ 0xf8, 0x55, 0x63, 0xdf, 0x0c, 0x21, 0x6f, 0xe8, 0xcb, 0xc8, 0xea, 0x07,
+ 0x53, 0x79, 0x42, 0x18, 0x60, 0x91, 0x3c, 0xc6, 0xcc, 0x5c, 0xf8, 0x1a,
+ 0xc5, 0x70, 0x67, 0x10,
+};
+static const struct drbg_kat_no_reseed kat1184_t = {
+ 13, kat1184_entropyin, kat1184_nonce, kat1184_persstr,
+ kat1184_addin0, kat1184_addin1, kat1184_retbits
+};
+static const struct drbg_kat kat1184 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1184_t
+};
+
+static const unsigned char kat1185_entropyin[] = {
+ 0xcf, 0x94, 0x77, 0xba, 0x03, 0x3c, 0x5d, 0x23, 0x24, 0xdd, 0x97, 0xb6,
+ 0x9c, 0xfe, 0x59, 0xd6, 0x6a, 0xe7, 0xf7, 0x32, 0x7a, 0xa9, 0x28, 0xed,
+ 0x1a, 0xd3, 0x6c, 0x2d, 0x9d, 0x63, 0xbe, 0x73, 0x1f, 0xf2, 0xde, 0x9b,
+ 0x29, 0xaa, 0x87, 0xb9,
+};
+static const unsigned char kat1185_nonce[] = {0};
+static const unsigned char kat1185_persstr[] = {
+ 0x21, 0x5a, 0x3e, 0x63, 0x8f, 0xa6, 0xa7, 0x4d, 0x91, 0x59, 0x2b, 0x07,
+ 0xfa, 0x08, 0xf8, 0xd4, 0x98, 0x3c, 0x6a, 0xd0, 0x82, 0x0a, 0x90, 0x8b,
+ 0xa7, 0x35, 0xac, 0x5b, 0xce, 0xe6, 0x8c, 0x3f, 0x67, 0x0f, 0x6f, 0xcf,
+ 0x4d, 0x05, 0xb2, 0x5c,
+};
+static const unsigned char kat1185_addin0[] = {0};
+static const unsigned char kat1185_addin1[] = {0};
+static const unsigned char kat1185_retbits[] = {
+ 0xac, 0xad, 0xe1, 0x90, 0x50, 0x8f, 0x25, 0x72, 0x4a, 0x3c, 0x7d, 0xd4,
+ 0xd9, 0x60, 0xbe, 0xe0, 0x88, 0xcb, 0x61, 0x52, 0xf3, 0x1a, 0x53, 0x72,
+ 0x95, 0xa8, 0xff, 0x4b, 0x85, 0xaf, 0x94, 0xa0, 0xff, 0x00, 0x6b, 0xe9,
+ 0xce, 0x2f, 0x54, 0x1b, 0x82, 0x37, 0xf6, 0xa7, 0xfc, 0x62, 0xa4, 0xbb,
+ 0x8e, 0x41, 0xac, 0x69, 0x79, 0xa6, 0xf1, 0x12, 0xb5, 0x71, 0x58, 0xaa,
+ 0x6e, 0xca, 0x34, 0x7f,
+};
+static const struct drbg_kat_no_reseed kat1185_t = {
+ 14, kat1185_entropyin, kat1185_nonce, kat1185_persstr,
+ kat1185_addin0, kat1185_addin1, kat1185_retbits
+};
+static const struct drbg_kat kat1185 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat1185_t
+};
+
+static const unsigned char kat1186_entropyin[] = {
+ 0x65, 0x75, 0x07, 0xb8, 0xad, 0x59, 0x39, 0xed, 0x5e, 0xac, 0x21, 0x41,
+ 0x51, 0xfa, 0x9c, 0x0d, 0x64, 0x4f, 0x2c, 0x6f, 0xf7, 0xcd, 0xd9, 0x33,
+ 0xe3, 0xee, 0x0d, 0xc5, 0xae, 0xb9, 0xa3, 0x64, 0xaa, 0xa0, 0x9a, 0x35,
+ 0x26, 0xcc, 0x7d, 0xb0,
+};
+static const unsigned char kat1186_nonce[] = {0};
+static const unsigned char kat1186_persstr[] = {
+ 0xf2, 0xf9, 0x5e, 0xbd, 0xbd, 0x47, 0xd0, 0x62, 0x12, 0x63, 0xb1, 0x21,
+ 0x5c, 0xd1, 0x07, 0xe3, 0x7a, 0x77, 0x2d, 0xd9, 0x91, 0x16, 0x0d, 0x40,
+ 0xb8, 0x28, 0x8d, 0x47, 0xa1, 0xa9, 0x90, 0x35, 0x14, 0x49, 0x9d, 0x05,
+ 0x5b, 0x68, 0xaa, 0x6a,
+};
+static const unsigned char kat1186_addin0[] = {
+ 0xe8, 0xe9, 0x68, 0xd2, 0x49, 0xe1, 0x65, 0xf4, 0x10, 0xc7, 0x57, 0x84,
+ 0x2e, 0xc1, 0xa6, 0xbb, 0xcd, 0x40, 0x56, 0x6d, 0xb5, 0x86, 0x53, 0xb2,
+ 0xeb, 0x45, 0x02, 0xe7, 0x51, 0x13, 0xd8, 0x1d, 0x9a, 0x20, 0xdc, 0x09,
+ 0x9a, 0x20, 0x24, 0xee,
+};
+static const unsigned char kat1186_addin1[] = {
+ 0x46, 0x45, 0xd7, 0x32, 0x6d, 0x1f, 0x39, 0xd0, 0x4a, 0x14, 0xfc, 0x39,
+ 0x5a, 0xcd, 0x19, 0xfd, 0xa6, 0xd1, 0xaa, 0x75, 0x59, 0x95, 0x47, 0x6e,
+ 0xb9, 0x6a, 0x19, 0x2b, 0x89, 0x63, 0xc5, 0x89, 0x07, 0x98, 0xbd, 0xff,
+ 0xa1, 0x85, 0x59, 0x8e,
+};
+static const unsigned char kat1186_retbits[] = {
+ 0x28, 0x24, 0x05, 0x9c, 0x8c, 0x55, 0xc6, 0x48, 0x41, 0x44, 0x14, 0x2c,
+ 0xdf, 0x7f, 0x5f, 0xe1, 0x0c, 0xa7, 0xba, 0x04, 0x73, 0x0e, 0xd3, 0x24,
+ 0x16, 0x6a, 0xac, 0xad, 0x30, 0x40, 0x97, 0x18, 0x41, 0x83, 0x55, 0x32,
+ 0x8e, 0xd6, 0xf2, 0x99, 0xd1, 0xfb, 0x25, 0x11, 0xbc, 0x06, 0x96, 0xba,
+ 0x99, 0xd1, 0x30, 0x5e, 0x94, 0x41, 0x1d, 0x8f, 0x5b, 0xc7, 0x63, 0xb5,
+ 0x7f, 0x0c, 0xcc, 0x8d,
+};
+static const struct drbg_kat_no_reseed kat1186_t = {
+ 0, kat1186_entropyin, kat1186_nonce, kat1186_persstr,
+ kat1186_addin0, kat1186_addin1, kat1186_retbits
+};
+static const struct drbg_kat kat1186 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1186_t
+};
+
+static const unsigned char kat1187_entropyin[] = {
+ 0x3b, 0x99, 0xff, 0x3c, 0xd7, 0x2e, 0xb3, 0xc7, 0x34, 0x37, 0x62, 0xa4,
+ 0x49, 0x75, 0x58, 0xdb, 0x4b, 0x61, 0x62, 0x4d, 0xcd, 0x7e, 0x08, 0xb4,
+ 0x46, 0xb1, 0xa6, 0x7e, 0xbf, 0x60, 0x22, 0x46, 0x01, 0x8d, 0x88, 0xcb,
+ 0x30, 0xb9, 0x04, 0x8d,
+};
+static const unsigned char kat1187_nonce[] = {0};
+static const unsigned char kat1187_persstr[] = {
+ 0xee, 0x5a, 0xc1, 0x65, 0xd9, 0xcf, 0x67, 0x98, 0x16, 0x62, 0x8b, 0xd9,
+ 0xb1, 0xd8, 0x44, 0xb6, 0xf7, 0xe8, 0x13, 0x5f, 0x7d, 0xfb, 0x50, 0x52,
+ 0x73, 0x75, 0x02, 0x64, 0x4f, 0xd7, 0x70, 0xa9, 0xe6, 0x13, 0x75, 0xe6,
+ 0xc3, 0x52, 0xef, 0xb2,
+};
+static const unsigned char kat1187_addin0[] = {
+ 0xbf, 0x59, 0x3e, 0x6d, 0xbe, 0x9d, 0x7d, 0x6d, 0xb2, 0x9d, 0x0e, 0xf3,
+ 0x54, 0xfa, 0x6f, 0x80, 0xb8, 0x76, 0x44, 0x0b, 0x28, 0x0d, 0x78, 0xd7,
+ 0x42, 0x55, 0x6d, 0x64, 0x7e, 0x6b, 0xa8, 0x92, 0x0b, 0xa2, 0xa8, 0xa3,
+ 0x4e, 0x93, 0x51, 0x1c,
+};
+static const unsigned char kat1187_addin1[] = {
+ 0xaf, 0xd1, 0x31, 0x1c, 0x6c, 0x6e, 0x9b, 0xa3, 0xdb, 0x07, 0x0d, 0xae,
+ 0x8c, 0x67, 0x21, 0x59, 0x80, 0x6d, 0xae, 0x15, 0x4e, 0xfc, 0xc7, 0x09,
+ 0x6c, 0x57, 0xf7, 0x75, 0x31, 0x19, 0x16, 0xab, 0x5b, 0x86, 0xde, 0x16,
+ 0x96, 0x47, 0x6e, 0x64,
+};
+static const unsigned char kat1187_retbits[] = {
+ 0x4b, 0x06, 0x96, 0x25, 0xac, 0x3d, 0x76, 0x5e, 0xb5, 0x8e, 0xb2, 0xa3,
+ 0xa5, 0x06, 0x8d, 0xc1, 0xa1, 0xaa, 0x7b, 0xcb, 0x12, 0x36, 0xd1, 0xca,
+ 0xf9, 0x9d, 0x1b, 0x8d, 0xf9, 0x27, 0xd4, 0x11, 0xa3, 0x7c, 0xfa, 0x28,
+ 0x02, 0x19, 0xde, 0xdc, 0x82, 0xe8, 0x4d, 0x73, 0xca, 0xeb, 0x5a, 0x40,
+ 0xe9, 0x38, 0x33, 0x33, 0x1f, 0x1f, 0x7d, 0x9d, 0xe6, 0x9b, 0x5c, 0x15,
+ 0xf9, 0x15, 0xcb, 0xb6,
+};
+static const struct drbg_kat_no_reseed kat1187_t = {
+ 1, kat1187_entropyin, kat1187_nonce, kat1187_persstr,
+ kat1187_addin0, kat1187_addin1, kat1187_retbits
+};
+static const struct drbg_kat kat1187 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1187_t
+};
+
+static const unsigned char kat1188_entropyin[] = {
+ 0x64, 0x4e, 0x16, 0x37, 0xb6, 0x7c, 0x74, 0x5b, 0x01, 0x37, 0x98, 0xc1,
+ 0x43, 0x65, 0xdf, 0x4a, 0xaa, 0x55, 0xa1, 0x96, 0x40, 0x16, 0x3c, 0x40,
+ 0x1c, 0x0e, 0x1e, 0xd5, 0xea, 0x37, 0xe4, 0x5e, 0xbb, 0xd7, 0x43, 0x0d,
+ 0x5d, 0xd2, 0x9c, 0x54,
+};
+static const unsigned char kat1188_nonce[] = {0};
+static const unsigned char kat1188_persstr[] = {
+ 0x72, 0x60, 0xea, 0xd1, 0xea, 0x11, 0xbd, 0xec, 0x9c, 0x34, 0xb2, 0x59,
+ 0x4b, 0x61, 0x4f, 0x91, 0x6c, 0x1e, 0xb2, 0x07, 0xa4, 0x59, 0x80, 0x8e,
+ 0xaa, 0xdd, 0x20, 0x03, 0x8c, 0xd8, 0xd6, 0x6a, 0x97, 0x4e, 0x15, 0x10,
+ 0x30, 0xe7, 0xee, 0xd6,
+};
+static const unsigned char kat1188_addin0[] = {
+ 0xd1, 0xd6, 0x52, 0x42, 0xfe, 0x65, 0xa0, 0x34, 0x92, 0x42, 0x21, 0xca,
+ 0x0c, 0xfd, 0xc9, 0x41, 0x2e, 0xce, 0x33, 0x72, 0x6b, 0x20, 0xf5, 0x75,
+ 0x88, 0xe6, 0xf4, 0xeb, 0xa1, 0x62, 0x46, 0x1e, 0xd2, 0x9e, 0xf3, 0x29,
+ 0x5e, 0x2e, 0x45, 0x8f,
+};
+static const unsigned char kat1188_addin1[] = {
+ 0x1d, 0x3a, 0xf3, 0x6b, 0x4a, 0x38, 0x6f, 0xdc, 0x63, 0x18, 0xd1, 0x60,
+ 0x57, 0xed, 0x5a, 0x16, 0x73, 0xd5, 0x4b, 0x96, 0xbe, 0xf3, 0xde, 0x9b,
+ 0x62, 0xb9, 0x43, 0x07, 0x22, 0x08, 0x48, 0xb5, 0x41, 0x15, 0x5d, 0x7c,
+ 0x3e, 0x73, 0x9b, 0xbf,
+};
+static const unsigned char kat1188_retbits[] = {
+ 0xe0, 0xaf, 0xa3, 0xa2, 0x07, 0x37, 0xe4, 0x0a, 0xd7, 0xc7, 0x6b, 0xa1,
+ 0x8a, 0xff, 0xc2, 0xe7, 0x37, 0xa6, 0x62, 0x46, 0xf6, 0x16, 0x68, 0xb7,
+ 0x05, 0xda, 0x53, 0xf6, 0xd3, 0xee, 0x50, 0x41, 0x41, 0x40, 0xa4, 0x23,
+ 0x14, 0x5d, 0x64, 0x6b, 0xd1, 0xb8, 0x49, 0x67, 0x86, 0x79, 0x23, 0xe6,
+ 0xc2, 0x1d, 0x57, 0x50, 0xa9, 0x79, 0x62, 0x60, 0xb9, 0xbc, 0xc2, 0x0d,
+ 0xc5, 0xc8, 0xa0, 0x4f,
+};
+static const struct drbg_kat_no_reseed kat1188_t = {
+ 2, kat1188_entropyin, kat1188_nonce, kat1188_persstr,
+ kat1188_addin0, kat1188_addin1, kat1188_retbits
+};
+static const struct drbg_kat kat1188 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1188_t
+};
+
+static const unsigned char kat1189_entropyin[] = {
+ 0x43, 0x3c, 0x28, 0xd6, 0x82, 0xef, 0x86, 0x11, 0xf2, 0x22, 0x7e, 0xbb,
+ 0x95, 0xff, 0x18, 0x61, 0x04, 0xa6, 0xd6, 0xfa, 0x72, 0x5b, 0x9a, 0x44,
+ 0xab, 0x19, 0x25, 0xce, 0x60, 0x50, 0xef, 0xa2, 0x6c, 0x94, 0x19, 0x6b,
+ 0xaa, 0x71, 0xc3, 0x1c,
+};
+static const unsigned char kat1189_nonce[] = {0};
+static const unsigned char kat1189_persstr[] = {
+ 0x9c, 0xca, 0xfe, 0x81, 0x55, 0xa2, 0xf7, 0x93, 0x6e, 0xab, 0x14, 0x59,
+ 0x37, 0xd8, 0x4e, 0x26, 0x8e, 0xce, 0xeb, 0x1a, 0xcb, 0xe5, 0x6b, 0xc0,
+ 0x50, 0x07, 0x9c, 0x00, 0x0e, 0xc0, 0xa3, 0x23, 0x74, 0x9f, 0xb0, 0x46,
+ 0xb3, 0xb7, 0xe6, 0xa0,
+};
+static const unsigned char kat1189_addin0[] = {
+ 0x3f, 0x42, 0xe8, 0x4a, 0x41, 0x91, 0x7c, 0xb6, 0xfa, 0xe0, 0x4b, 0xb7,
+ 0xd0, 0xf7, 0xf1, 0x5b, 0xe7, 0x8b, 0xca, 0x18, 0x7b, 0x96, 0x22, 0xd7,
+ 0xbd, 0x57, 0x8e, 0xa2, 0xb4, 0x5a, 0x01, 0x95, 0xea, 0xef, 0x5a, 0x4e,
+ 0xaa, 0x34, 0xe6, 0x41,
+};
+static const unsigned char kat1189_addin1[] = {
+ 0xc3, 0x38, 0x7a, 0x63, 0xb7, 0xc7, 0xde, 0xf0, 0xb6, 0x3a, 0x3c, 0x49,
+ 0x28, 0xa6, 0x93, 0x94, 0x3b, 0x18, 0x4c, 0x71, 0x96, 0x05, 0xf6, 0x1d,
+ 0xa5, 0x27, 0x5a, 0x49, 0x13, 0xf9, 0x7c, 0x39, 0xd1, 0x9a, 0xd1, 0x4a,
+ 0x87, 0x27, 0x1e, 0x97,
+};
+static const unsigned char kat1189_retbits[] = {
+ 0x9b, 0x81, 0x84, 0x5c, 0xac, 0x19, 0x15, 0x50, 0xcb, 0xf4, 0x25, 0xb9,
+ 0x90, 0x98, 0x86, 0x27, 0xe4, 0xf7, 0xd4, 0x21, 0x43, 0x72, 0x78, 0x0f,
+ 0xfd, 0x4f, 0xc9, 0x0c, 0x4c, 0xb2, 0x11, 0xf1, 0x45, 0xe3, 0x8a, 0x68,
+ 0x79, 0x43, 0x06, 0x5e, 0x59, 0xe2, 0x71, 0x5a, 0x1d, 0x70, 0x73, 0x0a,
+ 0x80, 0x4e, 0xaa, 0x17, 0xc3, 0x74, 0xa6, 0x56, 0x97, 0x19, 0x32, 0x12,
+ 0x36, 0xfa, 0x5a, 0x67,
+};
+static const struct drbg_kat_no_reseed kat1189_t = {
+ 3, kat1189_entropyin, kat1189_nonce, kat1189_persstr,
+ kat1189_addin0, kat1189_addin1, kat1189_retbits
+};
+static const struct drbg_kat kat1189 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1189_t
+};
+
+static const unsigned char kat1190_entropyin[] = {
+ 0x5d, 0x13, 0x36, 0x72, 0xc8, 0x96, 0xc7, 0x05, 0x4d, 0xdc, 0x1b, 0x1e,
+ 0x46, 0x0e, 0x32, 0x5e, 0x4f, 0x40, 0x5e, 0xdc, 0x2b, 0x18, 0x8a, 0x48,
+ 0x3b, 0xa9, 0x45, 0x5f, 0x0c, 0x55, 0x6e, 0x95, 0x38, 0xef, 0xc7, 0xb7,
+ 0x5b, 0x87, 0x1f, 0x10,
+};
+static const unsigned char kat1190_nonce[] = {0};
+static const unsigned char kat1190_persstr[] = {
+ 0x4d, 0x07, 0x83, 0x3b, 0xf8, 0xa6, 0x3e, 0xfd, 0x78, 0x21, 0x71, 0x10,
+ 0xcd, 0x60, 0x8d, 0x41, 0x6b, 0x12, 0x80, 0x7b, 0xcb, 0x37, 0x9e, 0xed,
+ 0x98, 0x5a, 0x9d, 0xb4, 0xcd, 0xe8, 0x57, 0x45, 0x39, 0x1d, 0x5e, 0x29,
+ 0x79, 0x9a, 0x8c, 0xe7,
+};
+static const unsigned char kat1190_addin0[] = {
+ 0xcc, 0x43, 0xf8, 0x20, 0xe2, 0x53, 0x8b, 0xd7, 0xd0, 0x4e, 0x8c, 0xb6,
+ 0x46, 0x63, 0x27, 0x74, 0xaf, 0x1e, 0x33, 0x39, 0x6d, 0xc8, 0x16, 0x11,
+ 0x8b, 0x7d, 0x06, 0xec, 0x5c, 0x56, 0x4d, 0x79, 0x25, 0xe1, 0x8a, 0xd0,
+ 0x02, 0x0e, 0x97, 0x05,
+};
+static const unsigned char kat1190_addin1[] = {
+ 0xb5, 0xd3, 0x25, 0x8d, 0xdb, 0x84, 0xb3, 0x0e, 0xf6, 0xfa, 0x82, 0xd9,
+ 0x86, 0xc7, 0x29, 0x54, 0x0a, 0x84, 0x43, 0x78, 0xc5, 0x32, 0xbd, 0x1e,
+ 0x2e, 0x6e, 0xc2, 0x97, 0x0d, 0x0e, 0x61, 0x10, 0x3c, 0x63, 0x57, 0x43,
+ 0xed, 0x01, 0x67, 0x19,
+};
+static const unsigned char kat1190_retbits[] = {
+ 0x99, 0xe3, 0x64, 0xb9, 0xdc, 0x10, 0x41, 0x28, 0x2c, 0x85, 0x35, 0x8a,
+ 0xeb, 0x6a, 0xfb, 0x95, 0xee, 0x62, 0x2d, 0x6d, 0xb4, 0x71, 0xb9, 0xe3,
+ 0xa9, 0x22, 0xfb, 0xde, 0x4b, 0xa2, 0x89, 0xbd, 0xc7, 0x9b, 0xc7, 0x1f,
+ 0x77, 0x30, 0xb9, 0xdf, 0x0d, 0x92, 0x5f, 0xd9, 0xb8, 0x8f, 0x4b, 0xe8,
+ 0x34, 0x7b, 0x72, 0xfb, 0x5e, 0x67, 0x83, 0x04, 0x1a, 0x8a, 0xba, 0x5d,
+ 0xa5, 0x65, 0xea, 0x58,
+};
+static const struct drbg_kat_no_reseed kat1190_t = {
+ 4, kat1190_entropyin, kat1190_nonce, kat1190_persstr,
+ kat1190_addin0, kat1190_addin1, kat1190_retbits
+};
+static const struct drbg_kat kat1190 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1190_t
+};
+
+static const unsigned char kat1191_entropyin[] = {
+ 0x8b, 0x51, 0xe4, 0x7e, 0x97, 0xfe, 0x04, 0xec, 0x18, 0x54, 0xd0, 0x98,
+ 0xd8, 0x53, 0x53, 0x20, 0x2e, 0xa8, 0xd5, 0x63, 0x35, 0x16, 0x56, 0x59,
+ 0x46, 0xd5, 0x97, 0x7b, 0x62, 0x87, 0xef, 0xf5, 0x23, 0x3f, 0x60, 0xa5,
+ 0xf1, 0xed, 0xe3, 0x25,
+};
+static const unsigned char kat1191_nonce[] = {0};
+static const unsigned char kat1191_persstr[] = {
+ 0xdb, 0xb3, 0x5b, 0x39, 0x52, 0xab, 0x97, 0x1e, 0xc0, 0xdc, 0x57, 0x3a,
+ 0xe0, 0xda, 0x64, 0x4b, 0x26, 0x68, 0x46, 0x9e, 0x8e, 0x6b, 0x62, 0x21,
+ 0x61, 0xd6, 0xe1, 0x98, 0x3f, 0x95, 0x6e, 0x81, 0x17, 0xa9, 0x72, 0x4e,
+ 0xc3, 0x18, 0xf2, 0x57,
+};
+static const unsigned char kat1191_addin0[] = {
+ 0x75, 0x92, 0x2b, 0x8c, 0xdf, 0x29, 0x35, 0x2c, 0x08, 0x4b, 0xa0, 0x76,
+ 0x4e, 0x0a, 0xfb, 0xfb, 0x51, 0x37, 0x6b, 0x6a, 0x9b, 0x62, 0xfd, 0xb7,
+ 0x1d, 0x85, 0x0e, 0x72, 0xfd, 0x00, 0xd2, 0x5c, 0x2f, 0x08, 0xc9, 0x46,
+ 0xb5, 0xf2, 0x88, 0x74,
+};
+static const unsigned char kat1191_addin1[] = {
+ 0x9e, 0x64, 0x1b, 0x0d, 0x60, 0x11, 0xbf, 0x4e, 0xed, 0xa6, 0xc9, 0x38,
+ 0xc2, 0xe3, 0xb2, 0xda, 0x24, 0x28, 0x46, 0xed, 0x7e, 0xc4, 0x7c, 0x54,
+ 0xa1, 0x61, 0x85, 0xec, 0xd4, 0x81, 0x06, 0xfd, 0xf4, 0xc7, 0xb9, 0xf1,
+ 0x42, 0x92, 0xcf, 0xb8,
+};
+static const unsigned char kat1191_retbits[] = {
+ 0x99, 0x13, 0x86, 0x55, 0xec, 0x9b, 0x57, 0x67, 0xad, 0x48, 0xac, 0xf3,
+ 0xab, 0x18, 0x0d, 0x1a, 0xf1, 0xdc, 0x1f, 0xb1, 0x91, 0x19, 0xeb, 0x30,
+ 0xde, 0xe3, 0x1e, 0x31, 0xf8, 0xb5, 0xf5, 0xe0, 0x32, 0x77, 0x70, 0xa1,
+ 0xb0, 0x40, 0xca, 0x54, 0x75, 0x84, 0xec, 0xd5, 0x7e, 0xe2, 0xa4, 0x59,
+ 0xe2, 0x66, 0x1d, 0x23, 0xd9, 0x0b, 0xb9, 0x9f, 0x20, 0x73, 0x1c, 0xa6,
+ 0x42, 0xa8, 0xc7, 0x82,
+};
+static const struct drbg_kat_no_reseed kat1191_t = {
+ 5, kat1191_entropyin, kat1191_nonce, kat1191_persstr,
+ kat1191_addin0, kat1191_addin1, kat1191_retbits
+};
+static const struct drbg_kat kat1191 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1191_t
+};
+
+static const unsigned char kat1192_entropyin[] = {
+ 0x80, 0x1d, 0x68, 0x4b, 0x98, 0x1c, 0x8c, 0x77, 0x35, 0x1b, 0x88, 0x5f,
+ 0x52, 0xe6, 0x8e, 0x02, 0x6f, 0x7b, 0xf1, 0xce, 0x1f, 0x41, 0x83, 0xfe,
+ 0x78, 0x7e, 0x85, 0x24, 0x31, 0xa7, 0x64, 0x47, 0x90, 0x76, 0x72, 0x9c,
+ 0xe5, 0x81, 0x81, 0x3b,
+};
+static const unsigned char kat1192_nonce[] = {0};
+static const unsigned char kat1192_persstr[] = {
+ 0x1b, 0xa2, 0x22, 0x32, 0x58, 0xa2, 0x9f, 0xa5, 0xd7, 0xf1, 0x93, 0x92,
+ 0x5d, 0xd2, 0x69, 0x03, 0x81, 0x63, 0x06, 0xf3, 0x30, 0x07, 0xb6, 0xd6,
+ 0xb9, 0xe0, 0x66, 0xbc, 0x96, 0xc8, 0xc0, 0xb0, 0x22, 0xf9, 0xcd, 0x9f,
+ 0x88, 0x12, 0x10, 0xd3,
+};
+static const unsigned char kat1192_addin0[] = {
+ 0x52, 0x5d, 0xec, 0x25, 0xa2, 0x93, 0xe5, 0x90, 0xfd, 0x8f, 0x77, 0x6a,
+ 0xf2, 0x2b, 0x54, 0x02, 0x7a, 0x8d, 0x80, 0x9a, 0x35, 0xac, 0x3a, 0x5e,
+ 0x46, 0x99, 0xdb, 0x1d, 0x75, 0x59, 0x8c, 0x1f, 0xc0, 0xc1, 0x1f, 0x9a,
+ 0x20, 0x1f, 0xa1, 0x73,
+};
+static const unsigned char kat1192_addin1[] = {
+ 0xe0, 0x08, 0xda, 0xb1, 0x84, 0xd7, 0xeb, 0x4b, 0x39, 0xed, 0xa3, 0x84,
+ 0x5f, 0x2c, 0xf6, 0xf2, 0x39, 0x69, 0xea, 0xe1, 0xfd, 0xef, 0x34, 0x33,
+ 0x33, 0x2c, 0x9d, 0x6f, 0x37, 0x96, 0xe7, 0x80, 0xa0, 0x5c, 0x39, 0x27,
+ 0x57, 0x1a, 0x41, 0x24,
+};
+static const unsigned char kat1192_retbits[] = {
+ 0x89, 0x5c, 0xef, 0xdc, 0x9f, 0xd1, 0x9c, 0x50, 0xb2, 0x05, 0xff, 0x5b,
+ 0x68, 0x81, 0xfa, 0xfc, 0xc0, 0x89, 0x2a, 0x96, 0xb6, 0xf7, 0x3e, 0x1a,
+ 0x4b, 0x74, 0xc7, 0x06, 0x15, 0x3b, 0x8f, 0x5d, 0xf5, 0x18, 0xcc, 0xda,
+ 0xc2, 0x8d, 0x38, 0xb8, 0x2f, 0xca, 0xaa, 0xd7, 0xbe, 0x82, 0x8c, 0xcf,
+ 0x9a, 0xbb, 0xd5, 0xb5, 0xb1, 0x1c, 0x84, 0x92, 0x12, 0x1e, 0x8b, 0x63,
+ 0x94, 0x17, 0x37, 0xed,
+};
+static const struct drbg_kat_no_reseed kat1192_t = {
+ 6, kat1192_entropyin, kat1192_nonce, kat1192_persstr,
+ kat1192_addin0, kat1192_addin1, kat1192_retbits
+};
+static const struct drbg_kat kat1192 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1192_t
+};
+
+static const unsigned char kat1193_entropyin[] = {
+ 0xd1, 0x57, 0x14, 0xd5, 0xd3, 0xf8, 0x0e, 0x19, 0xe0, 0x04, 0x83, 0xb2,
+ 0x9a, 0xd6, 0x55, 0xa3, 0x68, 0xa1, 0xd0, 0xe5, 0x57, 0x64, 0x2f, 0x81,
+ 0xf8, 0x4a, 0xe0, 0xc3, 0x67, 0x3b, 0x74, 0x1c, 0x0b, 0x31, 0x3e, 0xd3,
+ 0xdc, 0xd4, 0x75, 0xf9,
+};
+static const unsigned char kat1193_nonce[] = {0};
+static const unsigned char kat1193_persstr[] = {
+ 0xf2, 0x82, 0xb3, 0x2b, 0xe8, 0x07, 0xb5, 0x78, 0x7d, 0x89, 0x1e, 0x58,
+ 0xfd, 0x60, 0xf4, 0xc2, 0x9d, 0x26, 0x37, 0x32, 0x87, 0x4e, 0x38, 0xbc,
+ 0x34, 0xee, 0x28, 0x46, 0x73, 0x03, 0x85, 0xdb, 0x06, 0xa1, 0xa4, 0xac,
+ 0x64, 0x87, 0x8e, 0x26,
+};
+static const unsigned char kat1193_addin0[] = {
+ 0x8a, 0xdc, 0xe4, 0x45, 0xcb, 0x08, 0xc3, 0x45, 0xf9, 0x9c, 0x11, 0x96,
+ 0x43, 0x74, 0x34, 0xdd, 0x75, 0xc2, 0x19, 0x79, 0xfb, 0x44, 0x84, 0x59,
+ 0xf7, 0xd8, 0x1b, 0x0f, 0x2e, 0x21, 0xbe, 0x1f, 0x48, 0xce, 0x46, 0x24,
+ 0x1b, 0xea, 0x4a, 0x37,
+};
+static const unsigned char kat1193_addin1[] = {
+ 0xd9, 0x3f, 0x0c, 0x51, 0x79, 0xb4, 0x48, 0x1b, 0xa3, 0x48, 0xf3, 0x7d,
+ 0x7c, 0x32, 0x0b, 0xef, 0xd2, 0x09, 0xb7, 0x4b, 0xee, 0x45, 0x1d, 0x88,
+ 0x21, 0x1c, 0x99, 0x76, 0x02, 0xc9, 0xfb, 0x6c, 0x3b, 0x2f, 0x77, 0xa2,
+ 0x50, 0x6f, 0x5f, 0xed,
+};
+static const unsigned char kat1193_retbits[] = {
+ 0x34, 0x70, 0x7a, 0xd1, 0xe4, 0x93, 0xe4, 0xa8, 0x13, 0x2e, 0x1c, 0x0e,
+ 0x4d, 0x36, 0xd6, 0x90, 0x16, 0x8a, 0x91, 0xca, 0x79, 0x7f, 0x24, 0x96,
+ 0x04, 0xc2, 0xd1, 0xb3, 0x20, 0x4c, 0x17, 0x71, 0x52, 0x93, 0xc3, 0x67,
+ 0xbc, 0xb8, 0xee, 0x00, 0x9b, 0x3f, 0x1a, 0x65, 0xef, 0x83, 0x29, 0xfa,
+ 0x13, 0x7a, 0x12, 0x9b, 0x8f, 0x7e, 0xd6, 0xb3, 0x6d, 0xee, 0x08, 0xad,
+ 0x8d, 0x7d, 0x39, 0xac,
+};
+static const struct drbg_kat_no_reseed kat1193_t = {
+ 7, kat1193_entropyin, kat1193_nonce, kat1193_persstr,
+ kat1193_addin0, kat1193_addin1, kat1193_retbits
+};
+static const struct drbg_kat kat1193 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1193_t
+};
+
+static const unsigned char kat1194_entropyin[] = {
+ 0x08, 0x33, 0x1c, 0x1c, 0x32, 0xf0, 0xb3, 0xe8, 0x7a, 0x9a, 0x0e, 0x09,
+ 0x2e, 0x92, 0x3a, 0x8a, 0x50, 0x77, 0xa7, 0xf0, 0xa9, 0x7a, 0x87, 0x99,
+ 0xb8, 0x64, 0x58, 0x7e, 0x67, 0x4b, 0x1c, 0xf6, 0x5b, 0xc5, 0xc9, 0x28,
+ 0xdc, 0x9e, 0x55, 0x57,
+};
+static const unsigned char kat1194_nonce[] = {0};
+static const unsigned char kat1194_persstr[] = {
+ 0x87, 0xca, 0xc9, 0x11, 0x7f, 0x06, 0x77, 0xeb, 0x95, 0x87, 0x70, 0x89,
+ 0x3c, 0xe2, 0x94, 0x26, 0x21, 0x18, 0x8a, 0xa9, 0x5a, 0x10, 0x96, 0xf6,
+ 0xf3, 0x7d, 0x1b, 0xee, 0xe1, 0xc7, 0x6c, 0xa4, 0x0c, 0xe9, 0x53, 0xeb,
+ 0x73, 0x3f, 0x81, 0x9c,
+};
+static const unsigned char kat1194_addin0[] = {
+ 0x2b, 0x28, 0x71, 0x5e, 0xfd, 0x8d, 0xf9, 0x36, 0xb3, 0x96, 0xbf, 0x9e,
+ 0x4a, 0xe6, 0x43, 0x97, 0x75, 0x34, 0xdc, 0xe1, 0xa4, 0x9b, 0xea, 0x8f,
+ 0x1c, 0xfd, 0x50, 0x17, 0xc2, 0x82, 0x5a, 0xe2, 0x1f, 0xa5, 0x2f, 0xc8,
+ 0x52, 0x55, 0xf4, 0xbe,
+};
+static const unsigned char kat1194_addin1[] = {
+ 0x9c, 0xc6, 0x33, 0x5e, 0xde, 0xbc, 0x66, 0x41, 0x31, 0xf7, 0xf4, 0x42,
+ 0xcf, 0xb5, 0x15, 0x51, 0xe3, 0xcc, 0x7f, 0x65, 0x43, 0xd2, 0xac, 0x15,
+ 0x73, 0xcd, 0x77, 0xf4, 0xfd, 0x7a, 0x5c, 0xa6, 0x4f, 0x94, 0x5d, 0xeb,
+ 0xb4, 0x60, 0xbe, 0x1b,
+};
+static const unsigned char kat1194_retbits[] = {
+ 0x26, 0xce, 0xb5, 0xa4, 0x86, 0xa3, 0x2f, 0xb5, 0xbc, 0xfb, 0xfb, 0x6f,
+ 0x49, 0x48, 0x35, 0x7d, 0x9c, 0xe7, 0xb7, 0x63, 0xb7, 0x36, 0x9a, 0x67,
+ 0x6a, 0x0e, 0x82, 0xdc, 0x08, 0xd3, 0x8c, 0xfa, 0x55, 0x01, 0x30, 0x00,
+ 0x48, 0xcb, 0xf3, 0xaf, 0x88, 0x0b, 0x98, 0x71, 0xf7, 0x9d, 0xdd, 0x42,
+ 0x65, 0x28, 0x60, 0x68, 0xea, 0x26, 0x17, 0xe9, 0xff, 0xc6, 0xc2, 0xdd,
+ 0xf0, 0xd8, 0xc2, 0x1b,
+};
+static const struct drbg_kat_no_reseed kat1194_t = {
+ 8, kat1194_entropyin, kat1194_nonce, kat1194_persstr,
+ kat1194_addin0, kat1194_addin1, kat1194_retbits
+};
+static const struct drbg_kat kat1194 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1194_t
+};
+
+static const unsigned char kat1195_entropyin[] = {
+ 0x9b, 0x4b, 0x55, 0x87, 0xac, 0x11, 0x9f, 0xc8, 0x5f, 0x33, 0x2e, 0xe3,
+ 0xb9, 0x32, 0x79, 0xda, 0x42, 0xdd, 0xc5, 0x6e, 0x45, 0xdb, 0xea, 0x0c,
+ 0x37, 0xb7, 0xe8, 0x82, 0x3f, 0x1a, 0xd6, 0x40, 0xaa, 0xd4, 0x98, 0xac,
+ 0x8c, 0x82, 0x9c, 0xa2,
+};
+static const unsigned char kat1195_nonce[] = {0};
+static const unsigned char kat1195_persstr[] = {
+ 0x30, 0x92, 0xce, 0xba, 0x2c, 0xff, 0x80, 0xae, 0x30, 0x03, 0x81, 0xc2,
+ 0x73, 0x37, 0x8e, 0x82, 0xf4, 0xc0, 0x94, 0xc8, 0x5a, 0x3a, 0xc4, 0x82,
+ 0xeb, 0x71, 0x93, 0x3a, 0x6d, 0xd7, 0xef, 0x48, 0x92, 0xe7, 0xb0, 0x52,
+ 0x7d, 0x92, 0x1b, 0xcd,
+};
+static const unsigned char kat1195_addin0[] = {
+ 0x99, 0xa3, 0xa0, 0x35, 0x6a, 0xd4, 0x62, 0x97, 0x31, 0x55, 0x15, 0x0c,
+ 0xd9, 0xad, 0x83, 0x32, 0xad, 0x30, 0xa6, 0x01, 0x50, 0x4b, 0x28, 0x95,
+ 0x47, 0x20, 0x2f, 0x9c, 0x3d, 0xd3, 0xc5, 0x48, 0x4b, 0x9e, 0x39, 0x5d,
+ 0x50, 0x52, 0x8b, 0x8c,
+};
+static const unsigned char kat1195_addin1[] = {
+ 0x02, 0xe8, 0x7c, 0x36, 0x3e, 0xde, 0x7d, 0xc9, 0xbc, 0xac, 0x1e, 0xd6,
+ 0xc5, 0x8d, 0x26, 0xb1, 0xe8, 0x85, 0xbd, 0x2e, 0x98, 0x16, 0x20, 0xb5,
+ 0x72, 0x51, 0x20, 0x5f, 0xc7, 0x96, 0xe8, 0xed, 0x85, 0xa8, 0xec, 0x62,
+ 0x53, 0xf5, 0xdb, 0xbf,
+};
+static const unsigned char kat1195_retbits[] = {
+ 0xab, 0x07, 0x2e, 0xdf, 0xc8, 0x38, 0x28, 0xf1, 0x71, 0x6e, 0x82, 0x20,
+ 0xbd, 0x5b, 0x17, 0xac, 0x68, 0x4e, 0x93, 0xe4, 0xaa, 0x22, 0x57, 0xe8,
+ 0x99, 0x21, 0x05, 0xf9, 0x94, 0x85, 0x1e, 0x11, 0x42, 0xa0, 0xbc, 0x08,
+ 0xc0, 0x76, 0xf0, 0xcd, 0x16, 0x49, 0xad, 0x44, 0x74, 0x68, 0x64, 0x74,
+ 0x63, 0x8d, 0x8f, 0xf5, 0x08, 0x2b, 0x9a, 0x49, 0x40, 0x1d, 0x47, 0x9a,
+ 0x0c, 0x41, 0xaf, 0x9d,
+};
+static const struct drbg_kat_no_reseed kat1195_t = {
+ 9, kat1195_entropyin, kat1195_nonce, kat1195_persstr,
+ kat1195_addin0, kat1195_addin1, kat1195_retbits
+};
+static const struct drbg_kat kat1195 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1195_t
+};
+
+static const unsigned char kat1196_entropyin[] = {
+ 0xcd, 0xaf, 0xec, 0x56, 0x39, 0x07, 0x3a, 0xe7, 0x33, 0x40, 0xe0, 0x8a,
+ 0xd9, 0xb1, 0x48, 0xdd, 0xb3, 0x96, 0xa9, 0xcd, 0xc5, 0xaa, 0x36, 0x98,
+ 0x71, 0x04, 0x6c, 0x1d, 0x9f, 0x2f, 0x39, 0x21, 0x34, 0x3c, 0xff, 0xe8,
+ 0x6e, 0x94, 0xed, 0x64,
+};
+static const unsigned char kat1196_nonce[] = {0};
+static const unsigned char kat1196_persstr[] = {
+ 0x36, 0xb4, 0x61, 0xe5, 0xef, 0xe0, 0x53, 0xb2, 0x44, 0x8b, 0x5b, 0x5a,
+ 0x35, 0xc0, 0xe9, 0xef, 0x53, 0x77, 0x13, 0x15, 0x6c, 0x4c, 0x2f, 0x3e,
+ 0x6d, 0xbc, 0x53, 0x32, 0x02, 0xd5, 0x84, 0x62, 0x58, 0x14, 0x4f, 0xb2,
+ 0xe2, 0xda, 0x59, 0x21,
+};
+static const unsigned char kat1196_addin0[] = {
+ 0x6f, 0x16, 0xf4, 0xfe, 0xc2, 0x08, 0xbb, 0x8f, 0x38, 0x21, 0x08, 0xf0,
+ 0xa1, 0x37, 0x30, 0xab, 0xcd, 0x61, 0xd7, 0xfd, 0xee, 0xd5, 0x3b, 0x50,
+ 0xd6, 0x62, 0xbf, 0x9a, 0x97, 0x23, 0xf3, 0x8c, 0x62, 0xbc, 0x3a, 0x23,
+ 0xe7, 0x6f, 0x8f, 0x4c,
+};
+static const unsigned char kat1196_addin1[] = {
+ 0x39, 0x3a, 0x1d, 0x49, 0x23, 0x3e, 0xda, 0xfb, 0xfe, 0xfd, 0x3c, 0x51,
+ 0x97, 0x1e, 0x0e, 0xee, 0x1c, 0x09, 0xca, 0xa2, 0x2d, 0x90, 0x36, 0x06,
+ 0x0c, 0x70, 0xcd, 0x8e, 0x9f, 0xe0, 0xc3, 0x04, 0x22, 0x3e, 0xbf, 0x88,
+ 0x14, 0x4f, 0x92, 0x8e,
+};
+static const unsigned char kat1196_retbits[] = {
+ 0x49, 0xa5, 0xe9, 0x5a, 0xb4, 0xad, 0x79, 0x25, 0x1a, 0x7c, 0x39, 0x3b,
+ 0x50, 0x44, 0x3b, 0xca, 0xe1, 0x33, 0xfd, 0x30, 0xcc, 0x06, 0xe6, 0xae,
+ 0x14, 0x69, 0xd2, 0xba, 0x83, 0xb5, 0xa2, 0x0c, 0xa3, 0x5d, 0x91, 0x22,
+ 0x4c, 0x01, 0x85, 0xe4, 0xaa, 0x6e, 0x52, 0x4a, 0xb7, 0xec, 0x91, 0x64,
+ 0xe3, 0xb7, 0x3d, 0xd0, 0x6a, 0xa6, 0x5c, 0x99, 0xf9, 0x57, 0xad, 0x56,
+ 0xd6, 0x1c, 0x62, 0xe2,
+};
+static const struct drbg_kat_no_reseed kat1196_t = {
+ 10, kat1196_entropyin, kat1196_nonce, kat1196_persstr,
+ kat1196_addin0, kat1196_addin1, kat1196_retbits
+};
+static const struct drbg_kat kat1196 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1196_t
+};
+
+static const unsigned char kat1197_entropyin[] = {
+ 0xe4, 0xd0, 0xc3, 0x05, 0x8c, 0xea, 0x48, 0x14, 0x2d, 0x47, 0xfe, 0xa3,
+ 0xf6, 0xf0, 0x26, 0x1f, 0x3f, 0x57, 0x2a, 0xca, 0x43, 0x9a, 0x0c, 0x74,
+ 0x05, 0xb7, 0xd2, 0x3e, 0xaf, 0x07, 0x53, 0xd9, 0x3f, 0x6f, 0x98, 0x53,
+ 0x5d, 0x81, 0x8d, 0x3d,
+};
+static const unsigned char kat1197_nonce[] = {0};
+static const unsigned char kat1197_persstr[] = {
+ 0xe7, 0x97, 0x91, 0x0f, 0xf6, 0xfc, 0x40, 0x2a, 0xdf, 0xbe, 0x0c, 0x0c,
+ 0x44, 0x22, 0x0d, 0x77, 0xfa, 0x75, 0x2a, 0x8b, 0xdd, 0x3b, 0xec, 0x9a,
+ 0xd3, 0x08, 0x8f, 0x4e, 0x97, 0x18, 0x61, 0xe9, 0x53, 0x51, 0x26, 0x8e,
+ 0xd6, 0x68, 0x45, 0xd2,
+};
+static const unsigned char kat1197_addin0[] = {
+ 0x68, 0xe9, 0xc9, 0x9b, 0x09, 0x7a, 0x9e, 0x1c, 0x12, 0xa9, 0x8f, 0x6e,
+ 0xcb, 0x6b, 0xf0, 0xc4, 0xfc, 0xdd, 0xbe, 0x77, 0x40, 0x29, 0xe5, 0x5f,
+ 0x95, 0xd1, 0x41, 0x99, 0xf9, 0xd7, 0xb4, 0xd2, 0xc1, 0x2d, 0xcf, 0x3b,
+ 0x94, 0xeb, 0x88, 0x60,
+};
+static const unsigned char kat1197_addin1[] = {
+ 0xb1, 0x2f, 0x83, 0x1f, 0xed, 0x05, 0x56, 0x7c, 0x7c, 0xa3, 0x08, 0xa9,
+ 0x6b, 0x0b, 0xe3, 0x54, 0xd8, 0xb3, 0x0f, 0x08, 0xa5, 0x08, 0xb1, 0xff,
+ 0x10, 0xce, 0xff, 0xd3, 0x25, 0x28, 0x4b, 0x8c, 0x69, 0x09, 0xdc, 0xfe,
+ 0x16, 0x83, 0xd0, 0x6b,
+};
+static const unsigned char kat1197_retbits[] = {
+ 0x05, 0x6e, 0xf8, 0xbb, 0x57, 0x41, 0x19, 0x83, 0x20, 0x40, 0xbf, 0xfa,
+ 0x19, 0x47, 0xca, 0xec, 0xc5, 0x6c, 0x4b, 0x57, 0xdb, 0x9d, 0x30, 0x56,
+ 0x7b, 0x19, 0x55, 0x93, 0xd7, 0x7f, 0xa8, 0xb5, 0x07, 0x40, 0x8b, 0x36,
+ 0x5a, 0x1a, 0x0a, 0x77, 0xc4, 0xeb, 0xc1, 0x4d, 0x55, 0xe0, 0x95, 0x87,
+ 0x49, 0x41, 0x83, 0xe0, 0xbf, 0xca, 0xf6, 0x58, 0x3a, 0xc8, 0x81, 0x00,
+ 0x5b, 0x86, 0xaa, 0xf9,
+};
+static const struct drbg_kat_no_reseed kat1197_t = {
+ 11, kat1197_entropyin, kat1197_nonce, kat1197_persstr,
+ kat1197_addin0, kat1197_addin1, kat1197_retbits
+};
+static const struct drbg_kat kat1197 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1197_t
+};
+
+static const unsigned char kat1198_entropyin[] = {
+ 0x9a, 0xeb, 0xa4, 0x1a, 0x33, 0xed, 0x68, 0x3c, 0xb8, 0xe6, 0x9d, 0xd3,
+ 0xc6, 0x6b, 0x61, 0x86, 0x69, 0xff, 0x64, 0x65, 0x40, 0x51, 0xb0, 0xb7,
+ 0xad, 0x3d, 0x80, 0x99, 0xc0, 0x69, 0x8b, 0x47, 0xbe, 0x31, 0x21, 0xd0,
+ 0xa1, 0x6a, 0xf8, 0xf2,
+};
+static const unsigned char kat1198_nonce[] = {0};
+static const unsigned char kat1198_persstr[] = {
+ 0xdb, 0x20, 0xdb, 0x8d, 0x22, 0xbc, 0x90, 0x40, 0x02, 0x3d, 0xb3, 0x76,
+ 0xe0, 0x05, 0x0a, 0x4c, 0x08, 0x26, 0x8e, 0xbd, 0x22, 0xa9, 0x02, 0x51,
+ 0x1e, 0x5e, 0x7b, 0xa4, 0xd0, 0x0e, 0xbb, 0xfe, 0x20, 0xc4, 0x1c, 0xfd,
+ 0x6c, 0x5f, 0x4f, 0x22,
+};
+static const unsigned char kat1198_addin0[] = {
+ 0xc5, 0xb6, 0xd7, 0xc5, 0xa1, 0x5d, 0x12, 0x07, 0x37, 0xef, 0x09, 0x1e,
+ 0xd7, 0x9e, 0x11, 0xcd, 0xef, 0x50, 0x1e, 0xd4, 0x44, 0x38, 0x61, 0x92,
+ 0x16, 0xca, 0xf9, 0x08, 0x21, 0xfa, 0x98, 0x78, 0xf5, 0xe7, 0x61, 0x2b,
+ 0x89, 0x2f, 0xbd, 0x14,
+};
+static const unsigned char kat1198_addin1[] = {
+ 0x9c, 0x9a, 0xff, 0x5f, 0x6a, 0x5d, 0xa0, 0xc0, 0x67, 0x21, 0x86, 0x2b,
+ 0x9e, 0x04, 0x12, 0x1e, 0xd2, 0x2f, 0x39, 0x02, 0x84, 0xf1, 0xfb, 0x69,
+ 0x85, 0xa4, 0x95, 0x09, 0x2f, 0xbf, 0xff, 0xf2, 0x00, 0x01, 0x18, 0x71,
+ 0xae, 0xcc, 0x3b, 0x38,
+};
+static const unsigned char kat1198_retbits[] = {
+ 0x30, 0x1b, 0x7f, 0x2f, 0x5e, 0xa8, 0xc1, 0x5f, 0x7f, 0x64, 0x8a, 0x97,
+ 0x9d, 0xa2, 0xa8, 0x1d, 0xef, 0x9e, 0xd4, 0x8b, 0xcd, 0xc6, 0x8c, 0x73,
+ 0x97, 0xd6, 0x9b, 0x24, 0x74, 0x4a, 0x3d, 0xe5, 0x32, 0x85, 0xf4, 0xd1,
+ 0x3e, 0x41, 0xa5, 0x67, 0x99, 0x01, 0x88, 0x76, 0x50, 0x0b, 0xda, 0x8c,
+ 0x44, 0x4d, 0xf1, 0x03, 0x84, 0x13, 0x3c, 0xd4, 0xcf, 0x6a, 0x8e, 0x86,
+ 0xe6, 0xbf, 0x5c, 0x2d,
+};
+static const struct drbg_kat_no_reseed kat1198_t = {
+ 12, kat1198_entropyin, kat1198_nonce, kat1198_persstr,
+ kat1198_addin0, kat1198_addin1, kat1198_retbits
+};
+static const struct drbg_kat kat1198 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1198_t
+};
+
+static const unsigned char kat1199_entropyin[] = {
+ 0x74, 0x97, 0x3e, 0x54, 0x20, 0x38, 0x1d, 0xa3, 0x16, 0xdd, 0x04, 0x93,
+ 0x97, 0x48, 0x23, 0x2b, 0x61, 0x73, 0x14, 0x95, 0xf2, 0x6f, 0x92, 0xba,
+ 0xfc, 0x84, 0xe2, 0x73, 0xf7, 0x26, 0x6e, 0xc3, 0xe3, 0x28, 0x2e, 0xb2,
+ 0xf6, 0x9e, 0x1d, 0xc9,
+};
+static const unsigned char kat1199_nonce[] = {0};
+static const unsigned char kat1199_persstr[] = {
+ 0x83, 0x0f, 0x27, 0xcc, 0x55, 0x57, 0x93, 0x77, 0xff, 0xe6, 0x0a, 0x73,
+ 0x19, 0x84, 0x08, 0xeb, 0x69, 0x65, 0x9e, 0x9f, 0xae, 0x44, 0x4f, 0xd5,
+ 0x9a, 0xc2, 0x6d, 0xd4, 0x04, 0x9d, 0x65, 0x7c, 0x01, 0xc9, 0x93, 0x94,
+ 0x57, 0xff, 0xc7, 0x72,
+};
+static const unsigned char kat1199_addin0[] = {
+ 0xec, 0x46, 0x60, 0xa8, 0xe4, 0xf2, 0x7f, 0xd9, 0xe7, 0x04, 0xcd, 0xa7,
+ 0x88, 0xbd, 0xb5, 0x99, 0x56, 0x4b, 0xab, 0xc4, 0x47, 0x4e, 0x5f, 0xe6,
+ 0xae, 0xe7, 0xb4, 0x93, 0x70, 0x59, 0x09, 0x18, 0x32, 0xb4, 0x07, 0x19,
+ 0x55, 0xa3, 0x13, 0x41,
+};
+static const unsigned char kat1199_addin1[] = {
+ 0x47, 0xcd, 0x23, 0x81, 0x0f, 0x80, 0xeb, 0x3b, 0xcf, 0xd0, 0x7a, 0x4b,
+ 0x22, 0x4c, 0xe4, 0x81, 0xf4, 0xec, 0x2a, 0x24, 0x91, 0x73, 0xd3, 0x98,
+ 0x26, 0x5e, 0x29, 0x0e, 0x37, 0x66, 0xee, 0xe0, 0xa5, 0x84, 0x7d, 0x91,
+ 0x9a, 0xd9, 0x9c, 0x48,
+};
+static const unsigned char kat1199_retbits[] = {
+ 0x09, 0x95, 0xbc, 0x60, 0x18, 0xab, 0x49, 0x55, 0xd4, 0xe6, 0x62, 0xe7,
+ 0x33, 0x5b, 0x9e, 0x1c, 0x81, 0x46, 0xf3, 0x90, 0x60, 0x65, 0xb3, 0xf7,
+ 0x21, 0x4e, 0xff, 0xe1, 0x23, 0xcb, 0x0f, 0xcb, 0x3c, 0x92, 0x54, 0x67,
+ 0xda, 0xec, 0x15, 0x64, 0x35, 0xbf, 0x7e, 0xc8, 0xb2, 0xac, 0x3d, 0x98,
+ 0x8b, 0x57, 0x90, 0xdb, 0x3c, 0x96, 0x0c, 0xea, 0xf7, 0x00, 0xd7, 0x4a,
+ 0x0b, 0x8b, 0x38, 0xf0,
+};
+static const struct drbg_kat_no_reseed kat1199_t = {
+ 13, kat1199_entropyin, kat1199_nonce, kat1199_persstr,
+ kat1199_addin0, kat1199_addin1, kat1199_retbits
+};
+static const struct drbg_kat kat1199 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1199_t
+};
+
+static const unsigned char kat1200_entropyin[] = {
+ 0x52, 0x40, 0x12, 0xbf, 0xc4, 0x7b, 0xed, 0x3d, 0xa7, 0xa3, 0x54, 0x88,
+ 0xe8, 0x26, 0xc4, 0x2a, 0x76, 0x60, 0x7c, 0x0d, 0x98, 0x0c, 0xa0, 0x21,
+ 0xc9, 0xea, 0x9c, 0xe0, 0xcf, 0x6d, 0xce, 0xd5, 0xc8, 0xea, 0x0c, 0x61,
+ 0x77, 0x2e, 0x4d, 0x64,
+};
+static const unsigned char kat1200_nonce[] = {0};
+static const unsigned char kat1200_persstr[] = {
+ 0x3a, 0x27, 0xc2, 0x5e, 0xb5, 0x94, 0x30, 0x28, 0xc0, 0x19, 0x96, 0xb5,
+ 0x76, 0x6a, 0xf3, 0x39, 0x06, 0x1b, 0xee, 0xd2, 0xc8, 0xd8, 0xe7, 0x73,
+ 0xfe, 0x08, 0xba, 0xde, 0x72, 0x80, 0x25, 0xd4, 0x73, 0xe2, 0x73, 0x39,
+ 0xb6, 0x8d, 0xe5, 0xe6,
+};
+static const unsigned char kat1200_addin0[] = {
+ 0x8b, 0x98, 0x1e, 0xc9, 0xca, 0x88, 0xb1, 0x49, 0x3e, 0x7f, 0xf3, 0xb9,
+ 0x0c, 0x02, 0xda, 0x6f, 0x47, 0x8b, 0xfa, 0x57, 0x3f, 0x5a, 0x03, 0x54,
+ 0x94, 0x1d, 0xfe, 0xdb, 0x86, 0x3c, 0xa9, 0xd0, 0x5e, 0xfe, 0xa9, 0xd8,
+ 0x83, 0x54, 0x59, 0xad,
+};
+static const unsigned char kat1200_addin1[] = {
+ 0x82, 0x9e, 0x75, 0xa5, 0x8e, 0xdd, 0x00, 0xd8, 0x62, 0x69, 0xef, 0x33,
+ 0x2e, 0x67, 0x44, 0x72, 0x3b, 0x28, 0x9f, 0x7d, 0xf8, 0xf1, 0xc0, 0xbb,
+ 0xf7, 0x02, 0x22, 0xb5, 0x42, 0xb9, 0x01, 0x4e, 0x2d, 0x0c, 0xdd, 0x6a,
+ 0xae, 0xc8, 0xc1, 0x94,
+};
+static const unsigned char kat1200_retbits[] = {
+ 0x8c, 0x4a, 0xa7, 0x94, 0xaf, 0x3d, 0x7d, 0x4d, 0x68, 0x40, 0x06, 0x80,
+ 0x8c, 0x98, 0xc1, 0x1d, 0x81, 0x46, 0xb1, 0x1f, 0xd0, 0x62, 0xc6, 0x9c,
+ 0xac, 0x01, 0x9f, 0x19, 0x13, 0xc4, 0x57, 0xb4, 0x9d, 0x42, 0x3b, 0x5e,
+ 0xc6, 0x83, 0xf1, 0x91, 0x43, 0xea, 0xb3, 0x72, 0x07, 0x9a, 0x6d, 0xf5,
+ 0x51, 0xfc, 0x68, 0x6d, 0x9d, 0x6f, 0x9c, 0xe5, 0xf6, 0x4e, 0xf6, 0x19,
+ 0x18, 0x6f, 0x81, 0x6b,
+};
+static const struct drbg_kat_no_reseed kat1200_t = {
+ 14, kat1200_entropyin, kat1200_nonce, kat1200_persstr,
+ kat1200_addin0, kat1200_addin1, kat1200_retbits
+};
+static const struct drbg_kat kat1200 = {
+ NO_RESEED, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat1200_t
+};
+
+static const unsigned char kat1201_entropyin[] = {
+ 0xdf, 0x5d, 0x73, 0xfa, 0xa4, 0x68, 0x64, 0x9e, 0xdd, 0xa3, 0x3b, 0x5c,
+ 0xca, 0x79, 0xb0, 0xb0, 0x56, 0x00, 0x41, 0x9c, 0xcb, 0x7a, 0x87, 0x9d,
+ 0xdf, 0xec, 0x9d, 0xb3, 0x2e, 0xe4, 0x94, 0xe5, 0x53, 0x1b, 0x51, 0xde,
+ 0x16, 0xa3, 0x0f, 0x76, 0x92, 0x62, 0x47, 0x4c, 0x73, 0xbe, 0xc0, 0x10,
+};
+static const unsigned char kat1201_nonce[] = {0};
+static const unsigned char kat1201_persstr[] = {0};
+static const unsigned char kat1201_addin0[] = {0};
+static const unsigned char kat1201_addin1[] = {0};
+static const unsigned char kat1201_retbits[] = {
+ 0xd1, 0xc0, 0x7c, 0xd9, 0x5a, 0xf8, 0xa7, 0xf1, 0x10, 0x12, 0xc8, 0x4c,
+ 0xe4, 0x8b, 0xb8, 0xcb, 0x87, 0x18, 0x9e, 0x99, 0xd4, 0x0f, 0xcc, 0xb1,
+ 0x77, 0x1c, 0x61, 0x9b, 0xdf, 0x82, 0xab, 0x22, 0x80, 0xb1, 0xdc, 0x2f,
+ 0x25, 0x81, 0xf3, 0x91, 0x64, 0xf7, 0xac, 0x0c, 0x51, 0x04, 0x94, 0xb3,
+ 0xa4, 0x3c, 0x41, 0xb7, 0xdb, 0x17, 0x51, 0x4c, 0x87, 0xb1, 0x07, 0xae,
+ 0x79, 0x3e, 0x01, 0xc5,
+};
+static const struct drbg_kat_no_reseed kat1201_t = {
+ 0, kat1201_entropyin, kat1201_nonce, kat1201_persstr,
+ kat1201_addin0, kat1201_addin1, kat1201_retbits
+};
+static const struct drbg_kat kat1201 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1201_t
+};
+
+static const unsigned char kat1202_entropyin[] = {
+ 0x3b, 0x6f, 0xb6, 0x34, 0xd3, 0x5b, 0xb3, 0x86, 0x92, 0x73, 0x74, 0xf9,
+ 0x91, 0xc1, 0xcb, 0xc9, 0xfa, 0xfb, 0xa3, 0xa4, 0x3c, 0x43, 0x2d, 0xc4,
+ 0x11, 0xb7, 0xb2, 0xfa, 0x96, 0xcf, 0xcc, 0xe8, 0xd3, 0x05, 0xe1, 0x35,
+ 0xff, 0x9b, 0xc4, 0x60, 0xdb, 0xc7, 0xba, 0x39, 0x90, 0xbf, 0x80, 0x60,
+};
+static const unsigned char kat1202_nonce[] = {0};
+static const unsigned char kat1202_persstr[] = {0};
+static const unsigned char kat1202_addin0[] = {0};
+static const unsigned char kat1202_addin1[] = {0};
+static const unsigned char kat1202_retbits[] = {
+ 0x08, 0x3a, 0x83, 0x6f, 0xe1, 0xcd, 0xe0, 0x53, 0x16, 0x45, 0x55, 0x52,
+ 0x94, 0x09, 0x33, 0x7d, 0xc4, 0xfe, 0xc6, 0x84, 0x45, 0x94, 0xfd, 0xf1,
+ 0x50, 0x83, 0xba, 0x9d, 0x10, 0x01, 0xeb, 0x94, 0x5c, 0x3b, 0x96, 0xa1,
+ 0xbc, 0xee, 0x39, 0x90, 0xe1, 0xe5, 0x1f, 0x85, 0xc8, 0x0e, 0x9f, 0x4e,
+ 0x04, 0xde, 0x34, 0xe5, 0x7b, 0x64, 0x0f, 0x6c, 0xae, 0x8e, 0xd6, 0x8e,
+ 0x99, 0x62, 0x47, 0x12,
+};
+static const struct drbg_kat_no_reseed kat1202_t = {
+ 1, kat1202_entropyin, kat1202_nonce, kat1202_persstr,
+ kat1202_addin0, kat1202_addin1, kat1202_retbits
+};
+static const struct drbg_kat kat1202 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1202_t
+};
+
+static const unsigned char kat1203_entropyin[] = {
+ 0x02, 0x17, 0xa8, 0xac, 0xf2, 0xf8, 0xe2, 0xc4, 0xab, 0x7b, 0xdc, 0xd5,
+ 0xa6, 0x94, 0xbc, 0xa2, 0x8d, 0x03, 0x80, 0x18, 0x86, 0x9d, 0xcb, 0xe2,
+ 0x16, 0x0d, 0x1c, 0xe0, 0xb4, 0xc7, 0x8e, 0xad, 0x55, 0x92, 0xef, 0xed,
+ 0x98, 0x66, 0x2f, 0x2d, 0xff, 0x87, 0xf3, 0x2f, 0x48, 0x35, 0xc6, 0x77,
+};
+static const unsigned char kat1203_nonce[] = {0};
+static const unsigned char kat1203_persstr[] = {0};
+static const unsigned char kat1203_addin0[] = {0};
+static const unsigned char kat1203_addin1[] = {0};
+static const unsigned char kat1203_retbits[] = {
+ 0xaa, 0x36, 0x77, 0x97, 0x26, 0xf5, 0x28, 0x75, 0x31, 0x25, 0x07, 0xfb,
+ 0x08, 0x47, 0x44, 0xd4, 0xd7, 0xf3, 0xf9, 0x46, 0x8a, 0x5b, 0x24, 0x6c,
+ 0xcd, 0xe3, 0x16, 0xd2, 0xab, 0x91, 0x87, 0x9c, 0x2e, 0x29, 0xf5, 0xa0,
+ 0x93, 0x8a, 0x3b, 0xcd, 0x72, 0x2b, 0xb7, 0x18, 0xd0, 0x1b, 0xbf, 0xc3,
+ 0x58, 0x31, 0xc9, 0xe6, 0x4f, 0x5b, 0x64, 0x10, 0xae, 0x90, 0x8d, 0x30,
+ 0x61, 0xf7, 0x6c, 0x84,
+};
+static const struct drbg_kat_no_reseed kat1203_t = {
+ 2, kat1203_entropyin, kat1203_nonce, kat1203_persstr,
+ kat1203_addin0, kat1203_addin1, kat1203_retbits
+};
+static const struct drbg_kat kat1203 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1203_t
+};
+
+static const unsigned char kat1204_entropyin[] = {
+ 0x37, 0xd8, 0x51, 0xfb, 0x20, 0xab, 0x3b, 0xa7, 0x3b, 0x1d, 0x8d, 0x81,
+ 0xf3, 0x23, 0x90, 0x1a, 0x55, 0x52, 0x9c, 0x26, 0xa8, 0xf7, 0x53, 0xd3,
+ 0x29, 0x80, 0xd6, 0xd2, 0xab, 0xa3, 0xda, 0x27, 0x8b, 0x90, 0x74, 0x00,
+ 0xa1, 0x94, 0x06, 0xe2, 0x55, 0x20, 0x6e, 0x1d, 0x08, 0x58, 0xf3, 0x84,
+};
+static const unsigned char kat1204_nonce[] = {0};
+static const unsigned char kat1204_persstr[] = {0};
+static const unsigned char kat1204_addin0[] = {0};
+static const unsigned char kat1204_addin1[] = {0};
+static const unsigned char kat1204_retbits[] = {
+ 0x96, 0xea, 0xba, 0xfb, 0x45, 0xc7, 0x79, 0x67, 0xb1, 0x4a, 0x66, 0x63,
+ 0xa3, 0x92, 0x38, 0x30, 0x6c, 0xe5, 0x80, 0x38, 0xa3, 0xdc, 0x0b, 0x8a,
+ 0xec, 0xaf, 0x02, 0x31, 0xc4, 0x04, 0xec, 0xba, 0x50, 0xf1, 0xab, 0x0a,
+ 0x17, 0xb1, 0x89, 0x4c, 0xf6, 0xac, 0xb6, 0x30, 0xfe, 0x16, 0x5f, 0x8a,
+ 0x9d, 0x7c, 0x54, 0x12, 0xe1, 0xba, 0xb4, 0xeb, 0x4e, 0xfe, 0x9a, 0xe8,
+ 0x4f, 0x5b, 0x4a, 0x03,
+};
+static const struct drbg_kat_no_reseed kat1204_t = {
+ 3, kat1204_entropyin, kat1204_nonce, kat1204_persstr,
+ kat1204_addin0, kat1204_addin1, kat1204_retbits
+};
+static const struct drbg_kat kat1204 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1204_t
+};
+
+static const unsigned char kat1205_entropyin[] = {
+ 0xe6, 0x2e, 0xab, 0x30, 0xb9, 0x33, 0x85, 0x93, 0x07, 0x61, 0x04, 0xee,
+ 0x9c, 0x14, 0x8a, 0x6c, 0x22, 0xf7, 0x96, 0xda, 0xed, 0xb7, 0x1b, 0xac,
+ 0xdd, 0xa2, 0x07, 0xb1, 0x97, 0x68, 0xb5, 0xfe, 0xd5, 0xd2, 0x0c, 0x9e,
+ 0xea, 0x12, 0xed, 0x5a, 0xb9, 0x59, 0xc1, 0x43, 0xf7, 0x73, 0xcd, 0xa6,
+};
+static const unsigned char kat1205_nonce[] = {0};
+static const unsigned char kat1205_persstr[] = {0};
+static const unsigned char kat1205_addin0[] = {0};
+static const unsigned char kat1205_addin1[] = {0};
+static const unsigned char kat1205_retbits[] = {
+ 0xf5, 0xea, 0x04, 0x0c, 0x67, 0x0f, 0x83, 0xc2, 0x6f, 0xf2, 0xc3, 0x8f,
+ 0x66, 0x16, 0x9b, 0x57, 0x2f, 0xec, 0xc7, 0x28, 0x3e, 0x90, 0x2f, 0x0f,
+ 0x4b, 0x2f, 0x6a, 0x44, 0x40, 0xf5, 0xb8, 0x97, 0x08, 0x07, 0xd5, 0x8c,
+ 0xa0, 0x14, 0x66, 0xce, 0xc7, 0xfb, 0x68, 0xb4, 0xcf, 0x95, 0x23, 0x55,
+ 0xe7, 0x80, 0x05, 0x0b, 0xf4, 0x8a, 0xd5, 0xb2, 0x0c, 0x17, 0xc7, 0x8a,
+ 0xa0, 0xfc, 0x03, 0x52,
+};
+static const struct drbg_kat_no_reseed kat1205_t = {
+ 4, kat1205_entropyin, kat1205_nonce, kat1205_persstr,
+ kat1205_addin0, kat1205_addin1, kat1205_retbits
+};
+static const struct drbg_kat kat1205 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1205_t
+};
+
+static const unsigned char kat1206_entropyin[] = {
+ 0x62, 0x45, 0x75, 0x5c, 0xb0, 0x2a, 0xe8, 0x83, 0x91, 0x1c, 0x0d, 0x82,
+ 0x00, 0x90, 0x35, 0x71, 0x5b, 0x23, 0x04, 0xf7, 0x8c, 0xe2, 0xa0, 0xd8,
+ 0xfa, 0x22, 0xd4, 0x7e, 0x7e, 0x1e, 0x39, 0x4f, 0xd9, 0xa7, 0xa1, 0x38,
+ 0x62, 0xef, 0x23, 0x93, 0xbb, 0x38, 0x18, 0xec, 0x49, 0xcb, 0x70, 0xf2,
+};
+static const unsigned char kat1206_nonce[] = {0};
+static const unsigned char kat1206_persstr[] = {0};
+static const unsigned char kat1206_addin0[] = {0};
+static const unsigned char kat1206_addin1[] = {0};
+static const unsigned char kat1206_retbits[] = {
+ 0x3c, 0xd5, 0x90, 0xa0, 0xdf, 0xec, 0xe3, 0x09, 0x40, 0xc1, 0x1f, 0xf2,
+ 0x43, 0xd9, 0x9e, 0x55, 0x2b, 0x53, 0x1a, 0xe1, 0x1b, 0x31, 0xa4, 0x54,
+ 0xb4, 0x2e, 0xd0, 0x4f, 0x2c, 0x77, 0xf2, 0xe2, 0xf5, 0x8f, 0x9b, 0xd1,
+ 0xcd, 0x0a, 0x36, 0x48, 0x0f, 0x84, 0x52, 0x56, 0xbc, 0x82, 0x72, 0x3c,
+ 0x2d, 0xe5, 0xc6, 0xd1, 0x5b, 0xc8, 0xbe, 0x20, 0x40, 0xe5, 0xae, 0x8b,
+ 0x53, 0x31, 0x51, 0x6e,
+};
+static const struct drbg_kat_no_reseed kat1206_t = {
+ 5, kat1206_entropyin, kat1206_nonce, kat1206_persstr,
+ kat1206_addin0, kat1206_addin1, kat1206_retbits
+};
+static const struct drbg_kat kat1206 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1206_t
+};
+
+static const unsigned char kat1207_entropyin[] = {
+ 0xbc, 0x10, 0xb0, 0x98, 0x5a, 0x1d, 0xa8, 0xd0, 0xbc, 0xbc, 0xed, 0x02,
+ 0x9c, 0xf5, 0x2f, 0x0f, 0xe1, 0x2b, 0x6d, 0x6b, 0xc5, 0x00, 0xdd, 0xff,
+ 0xba, 0xf3, 0x7a, 0x20, 0x90, 0x35, 0x6c, 0xf1, 0xaa, 0xcb, 0x1b, 0xf3,
+ 0x0a, 0xd9, 0x48, 0xf8, 0x7f, 0x89, 0x9c, 0x54, 0x4d, 0x11, 0x57, 0x16,
+};
+static const unsigned char kat1207_nonce[] = {0};
+static const unsigned char kat1207_persstr[] = {0};
+static const unsigned char kat1207_addin0[] = {0};
+static const unsigned char kat1207_addin1[] = {0};
+static const unsigned char kat1207_retbits[] = {
+ 0x85, 0x75, 0xf0, 0xf1, 0xf9, 0x59, 0x58, 0x9e, 0x26, 0x95, 0x89, 0x1d,
+ 0xfa, 0xc5, 0x6d, 0xb7, 0x2b, 0x79, 0x98, 0x1c, 0x60, 0x77, 0xde, 0x92,
+ 0x15, 0x4c, 0x55, 0x57, 0xc3, 0xe8, 0x9a, 0xb7, 0x73, 0x78, 0x27, 0x06,
+ 0x9e, 0xcc, 0x70, 0x0d, 0xe1, 0x83, 0x17, 0xb5, 0xa1, 0xfa, 0x38, 0xc1,
+ 0x1d, 0x67, 0x5b, 0xbb, 0x9b, 0xa2, 0x35, 0xf1, 0x53, 0xc4, 0xf9, 0x89,
+ 0x9b, 0xc4, 0xbb, 0x8f,
+};
+static const struct drbg_kat_no_reseed kat1207_t = {
+ 6, kat1207_entropyin, kat1207_nonce, kat1207_persstr,
+ kat1207_addin0, kat1207_addin1, kat1207_retbits
+};
+static const struct drbg_kat kat1207 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1207_t
+};
+
+static const unsigned char kat1208_entropyin[] = {
+ 0x03, 0x98, 0xb1, 0xbb, 0x37, 0xf9, 0x67, 0x3a, 0x2d, 0x88, 0xef, 0x41,
+ 0x8b, 0x4c, 0xca, 0x3d, 0x60, 0x09, 0x95, 0x0f, 0xae, 0x93, 0xf0, 0x80,
+ 0x95, 0xa4, 0x96, 0x02, 0x83, 0x32, 0x9c, 0xe7, 0x53, 0x12, 0xbb, 0x21,
+ 0xc3, 0x0d, 0x26, 0xb0, 0xdd, 0xfa, 0xbf, 0x29, 0x60, 0x06, 0x06, 0x5c,
+};
+static const unsigned char kat1208_nonce[] = {0};
+static const unsigned char kat1208_persstr[] = {0};
+static const unsigned char kat1208_addin0[] = {0};
+static const unsigned char kat1208_addin1[] = {0};
+static const unsigned char kat1208_retbits[] = {
+ 0x22, 0x81, 0x6b, 0x8c, 0x4b, 0xcf, 0x34, 0xf8, 0xd5, 0x42, 0x57, 0xc2,
+ 0x17, 0xb5, 0x29, 0xcf, 0x03, 0x8b, 0x6f, 0x6f, 0xb1, 0x86, 0x30, 0x17,
+ 0xa3, 0x43, 0xd5, 0x0c, 0x88, 0x36, 0x96, 0xd4, 0x43, 0xfa, 0x76, 0xc2,
+ 0x59, 0xda, 0xae, 0x46, 0xa7, 0x63, 0x38, 0x2b, 0xcc, 0x28, 0x9d, 0xe5,
+ 0x5b, 0x22, 0x4f, 0x8d, 0xb9, 0x9d, 0x46, 0x83, 0x8c, 0x95, 0x1b, 0x3e,
+ 0x18, 0xa9, 0xfc, 0x26,
+};
+static const struct drbg_kat_no_reseed kat1208_t = {
+ 7, kat1208_entropyin, kat1208_nonce, kat1208_persstr,
+ kat1208_addin0, kat1208_addin1, kat1208_retbits
+};
+static const struct drbg_kat kat1208 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1208_t
+};
+
+static const unsigned char kat1209_entropyin[] = {
+ 0x4b, 0xfa, 0x09, 0x83, 0x9d, 0xa4, 0x60, 0xe5, 0xb0, 0x88, 0x41, 0x1e,
+ 0xb3, 0x12, 0xa3, 0xc8, 0x9a, 0x85, 0x8e, 0xe8, 0x8c, 0xf3, 0xcb, 0x2a,
+ 0xd4, 0xf8, 0xf9, 0x89, 0x6b, 0xcf, 0xca, 0xe7, 0x2f, 0xbd, 0x28, 0xf6,
+ 0xbb, 0x42, 0x88, 0x11, 0xba, 0x34, 0xfb, 0xe4, 0xf8, 0xc8, 0xf5, 0x18,
+};
+static const unsigned char kat1209_nonce[] = {0};
+static const unsigned char kat1209_persstr[] = {0};
+static const unsigned char kat1209_addin0[] = {0};
+static const unsigned char kat1209_addin1[] = {0};
+static const unsigned char kat1209_retbits[] = {
+ 0x46, 0xa5, 0x74, 0xeb, 0xbd, 0x56, 0x68, 0x61, 0x75, 0x76, 0x80, 0xa5,
+ 0xa3, 0xa0, 0x50, 0xbe, 0xca, 0x92, 0xfa, 0x69, 0x93, 0xba, 0x72, 0xbc,
+ 0xed, 0x22, 0xbc, 0x0a, 0x46, 0xed, 0x00, 0x58, 0x4e, 0x61, 0xdb, 0x69,
+ 0x8e, 0x35, 0x2e, 0x31, 0xc7, 0x4a, 0xf4, 0xf5, 0x71, 0x1b, 0x0a, 0xa1,
+ 0xd9, 0xd4, 0x18, 0x94, 0xff, 0xdb, 0x9c, 0x88, 0x37, 0xc3, 0x8b, 0x1b,
+ 0x37, 0x82, 0xe3, 0x81,
+};
+static const struct drbg_kat_no_reseed kat1209_t = {
+ 8, kat1209_entropyin, kat1209_nonce, kat1209_persstr,
+ kat1209_addin0, kat1209_addin1, kat1209_retbits
+};
+static const struct drbg_kat kat1209 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1209_t
+};
+
+static const unsigned char kat1210_entropyin[] = {
+ 0x86, 0xd1, 0x15, 0xf1, 0xd3, 0xa1, 0x54, 0xc5, 0x0b, 0x45, 0x56, 0x2a,
+ 0x02, 0xc9, 0x55, 0xe3, 0x07, 0xc1, 0x7f, 0xeb, 0xec, 0xab, 0x4d, 0x13,
+ 0xe0, 0xd5, 0xb6, 0xc7, 0x25, 0x8b, 0x4b, 0xfe, 0xb9, 0x1e, 0x31, 0x6a,
+ 0xd0, 0xf8, 0x7b, 0xbc, 0x0a, 0xe1, 0xd0, 0x9d, 0x4d, 0x60, 0xd3, 0x1a,
+};
+static const unsigned char kat1210_nonce[] = {0};
+static const unsigned char kat1210_persstr[] = {0};
+static const unsigned char kat1210_addin0[] = {0};
+static const unsigned char kat1210_addin1[] = {0};
+static const unsigned char kat1210_retbits[] = {
+ 0xff, 0x02, 0x50, 0xe0, 0x26, 0xef, 0x96, 0x64, 0x34, 0x06, 0x2c, 0x87,
+ 0x55, 0x45, 0xbc, 0x43, 0x66, 0x05, 0xbb, 0x5d, 0x02, 0x87, 0x7a, 0x1b,
+ 0xd3, 0xfd, 0x03, 0xab, 0x87, 0x52, 0xb1, 0x96, 0x37, 0x49, 0xea, 0x20,
+ 0x8d, 0xf5, 0x3f, 0x6c, 0x51, 0x82, 0x64, 0x34, 0xf5, 0xc6, 0xe6, 0xd9,
+ 0x91, 0x84, 0x5c, 0x61, 0x54, 0xf6, 0xb2, 0x00, 0x0d, 0xe6, 0x40, 0xd0,
+ 0x30, 0x28, 0x89, 0x65,
+};
+static const struct drbg_kat_no_reseed kat1210_t = {
+ 9, kat1210_entropyin, kat1210_nonce, kat1210_persstr,
+ kat1210_addin0, kat1210_addin1, kat1210_retbits
+};
+static const struct drbg_kat kat1210 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1210_t
+};
+
+static const unsigned char kat1211_entropyin[] = {
+ 0xce, 0x4c, 0x6c, 0x49, 0x8e, 0x5d, 0xf8, 0xb6, 0x1d, 0xeb, 0xfa, 0xf1,
+ 0xc2, 0x4c, 0x47, 0x91, 0x09, 0xc8, 0x7c, 0x7d, 0x38, 0x78, 0x2f, 0x50,
+ 0xbb, 0x60, 0x87, 0x71, 0x27, 0xa5, 0x48, 0x05, 0x94, 0x42, 0x8b, 0xd7,
+ 0xa9, 0xfd, 0x71, 0xff, 0xf2, 0xfe, 0x0d, 0x1d, 0xb3, 0xce, 0x6e, 0x2f,
+};
+static const unsigned char kat1211_nonce[] = {0};
+static const unsigned char kat1211_persstr[] = {0};
+static const unsigned char kat1211_addin0[] = {0};
+static const unsigned char kat1211_addin1[] = {0};
+static const unsigned char kat1211_retbits[] = {
+ 0x13, 0x89, 0xf2, 0xa6, 0x13, 0x42, 0x35, 0xe0, 0x8e, 0x7a, 0x0b, 0x41,
+ 0xc4, 0xa1, 0xb5, 0xfd, 0x77, 0xbc, 0xe4, 0x69, 0xfb, 0x68, 0x45, 0xe5,
+ 0x19, 0xcc, 0xad, 0x38, 0x5d, 0x74, 0x64, 0x9f, 0x22, 0x07, 0xc8, 0x44,
+ 0x88, 0x55, 0x67, 0x41, 0xd2, 0x7d, 0x64, 0x35, 0x43, 0x7a, 0xd0, 0x88,
+ 0xd1, 0x1f, 0x52, 0x26, 0x5b, 0x88, 0x2e, 0x47, 0x64, 0x24, 0x02, 0xd1,
+ 0xc0, 0x88, 0x25, 0x62,
+};
+static const struct drbg_kat_no_reseed kat1211_t = {
+ 10, kat1211_entropyin, kat1211_nonce, kat1211_persstr,
+ kat1211_addin0, kat1211_addin1, kat1211_retbits
+};
+static const struct drbg_kat kat1211 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1211_t
+};
+
+static const unsigned char kat1212_entropyin[] = {
+ 0xc1, 0xda, 0xd0, 0xe3, 0x76, 0xaa, 0x2c, 0x35, 0x0e, 0x0d, 0x89, 0xfc,
+ 0xd2, 0x40, 0x40, 0x99, 0x2c, 0x08, 0xc1, 0x41, 0xad, 0xc3, 0x73, 0xd4,
+ 0x36, 0x07, 0x86, 0xa0, 0x88, 0x12, 0xd2, 0x91, 0x93, 0x29, 0xb4, 0xf5,
+ 0xa5, 0xfa, 0xe4, 0x01, 0x6c, 0xb7, 0x69, 0x9b, 0x06, 0x47, 0xed, 0xfa,
+};
+static const unsigned char kat1212_nonce[] = {0};
+static const unsigned char kat1212_persstr[] = {0};
+static const unsigned char kat1212_addin0[] = {0};
+static const unsigned char kat1212_addin1[] = {0};
+static const unsigned char kat1212_retbits[] = {
+ 0xd3, 0x89, 0x91, 0x53, 0x6f, 0xb0, 0x35, 0x09, 0x53, 0x1f, 0xfa, 0xe4,
+ 0x4c, 0x74, 0x94, 0xf0, 0x5a, 0x73, 0x03, 0x09, 0x20, 0xc2, 0xba, 0xfd,
+ 0x83, 0x3b, 0xe1, 0xa8, 0xc7, 0xf6, 0xd7, 0x41, 0x60, 0x77, 0xd0, 0x08,
+ 0x9b, 0xb6, 0x51, 0xb9, 0x6a, 0xd9, 0x64, 0xc2, 0x6f, 0x11, 0xb3, 0x1b,
+ 0xb0, 0x36, 0x4b, 0x4f, 0x5e, 0x0d, 0xc7, 0xe1, 0x15, 0x04, 0x05, 0x4b,
+ 0x51, 0x10, 0x21, 0x1a,
+};
+static const struct drbg_kat_no_reseed kat1212_t = {
+ 11, kat1212_entropyin, kat1212_nonce, kat1212_persstr,
+ kat1212_addin0, kat1212_addin1, kat1212_retbits
+};
+static const struct drbg_kat kat1212 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1212_t
+};
+
+static const unsigned char kat1213_entropyin[] = {
+ 0x75, 0x17, 0x3e, 0x81, 0xce, 0x87, 0xe7, 0xc8, 0xd0, 0x34, 0x57, 0x61,
+ 0xee, 0x59, 0xa3, 0xfd, 0x1c, 0x55, 0x5f, 0x37, 0xf7, 0xc2, 0x36, 0xf7,
+ 0xe3, 0xaa, 0xa5, 0xf5, 0xdd, 0xcb, 0x80, 0x89, 0x46, 0x2e, 0x8e, 0xdb,
+ 0xe4, 0xe1, 0x9a, 0xec, 0x24, 0x67, 0x68, 0x4a, 0x57, 0x71, 0x67, 0x88,
+};
+static const unsigned char kat1213_nonce[] = {0};
+static const unsigned char kat1213_persstr[] = {0};
+static const unsigned char kat1213_addin0[] = {0};
+static const unsigned char kat1213_addin1[] = {0};
+static const unsigned char kat1213_retbits[] = {
+ 0x58, 0xbb, 0xc5, 0xce, 0x5c, 0x2d, 0x8b, 0x63, 0x30, 0xc5, 0x85, 0x7a,
+ 0x88, 0x8e, 0xe6, 0xb3, 0xd7, 0x4b, 0x2b, 0xa0, 0x09, 0xc8, 0x55, 0x3c,
+ 0xc7, 0xb8, 0xad, 0xb5, 0x17, 0x93, 0x86, 0x2e, 0x9c, 0x9c, 0x93, 0x39,
+ 0x59, 0xea, 0x73, 0xd7, 0x20, 0x78, 0x6e, 0x47, 0x1d, 0xfd, 0xd2, 0xbe,
+ 0xd5, 0x72, 0xe2, 0x5f, 0x68, 0x3d, 0xcd, 0x6f, 0x7e, 0x72, 0x9d, 0xb0,
+ 0x25, 0x4f, 0x74, 0xad,
+};
+static const struct drbg_kat_no_reseed kat1213_t = {
+ 12, kat1213_entropyin, kat1213_nonce, kat1213_persstr,
+ kat1213_addin0, kat1213_addin1, kat1213_retbits
+};
+static const struct drbg_kat kat1213 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1213_t
+};
+
+static const unsigned char kat1214_entropyin[] = {
+ 0xa7, 0xc5, 0x7c, 0x5a, 0xf2, 0x8a, 0x25, 0x89, 0x26, 0x83, 0x8c, 0x39,
+ 0xae, 0x62, 0x19, 0x40, 0x05, 0xc9, 0x3a, 0xff, 0xfe, 0x55, 0x92, 0xa6,
+ 0x85, 0xb1, 0x50, 0xc9, 0xde, 0x3c, 0xcf, 0x79, 0xc2, 0x23, 0x61, 0x66,
+ 0x74, 0xd6, 0x76, 0x51, 0x7f, 0x4b, 0xd1, 0xa2, 0xfc, 0x3b, 0xd6, 0xec,
+};
+static const unsigned char kat1214_nonce[] = {0};
+static const unsigned char kat1214_persstr[] = {0};
+static const unsigned char kat1214_addin0[] = {0};
+static const unsigned char kat1214_addin1[] = {0};
+static const unsigned char kat1214_retbits[] = {
+ 0xa0, 0xea, 0x3a, 0xf0, 0xcc, 0x95, 0x10, 0x3b, 0xa3, 0xe8, 0x9e, 0x5e,
+ 0x4a, 0x6b, 0x79, 0x2b, 0xfb, 0x19, 0xee, 0xf9, 0x58, 0x02, 0x55, 0xed,
+ 0x76, 0xe7, 0x1e, 0xd0, 0xe5, 0x32, 0x58, 0x48, 0x49, 0x7d, 0x77, 0x57,
+ 0xeb, 0x5c, 0xb3, 0x19, 0x47, 0x5b, 0x77, 0x92, 0x6a, 0xbb, 0x6a, 0x2b,
+ 0xfb, 0x44, 0x37, 0xcc, 0xff, 0x0c, 0x83, 0x56, 0xc1, 0xb5, 0x70, 0x5d,
+ 0x85, 0x84, 0x2d, 0x93,
+};
+static const struct drbg_kat_no_reseed kat1214_t = {
+ 13, kat1214_entropyin, kat1214_nonce, kat1214_persstr,
+ kat1214_addin0, kat1214_addin1, kat1214_retbits
+};
+static const struct drbg_kat kat1214 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1214_t
+};
+
+static const unsigned char kat1215_entropyin[] = {
+ 0xb7, 0xf7, 0xe4, 0xe6, 0x83, 0x56, 0xb2, 0xac, 0x2c, 0x2c, 0x00, 0x75,
+ 0xc0, 0xef, 0x5e, 0xc6, 0xf5, 0xa6, 0xf2, 0x25, 0xa1, 0x8d, 0xb0, 0x08,
+ 0x30, 0x26, 0x1a, 0x95, 0x76, 0x57, 0x71, 0xeb, 0xa7, 0x39, 0xa7, 0xcf,
+ 0x8a, 0x11, 0x26, 0xc5, 0x89, 0x94, 0xc4, 0x3b, 0x2d, 0x28, 0x02, 0x4a,
+};
+static const unsigned char kat1215_nonce[] = {0};
+static const unsigned char kat1215_persstr[] = {0};
+static const unsigned char kat1215_addin0[] = {0};
+static const unsigned char kat1215_addin1[] = {0};
+static const unsigned char kat1215_retbits[] = {
+ 0xa1, 0x5e, 0x8c, 0xc4, 0x37, 0xa6, 0x00, 0xa5, 0x1d, 0xcf, 0xb7, 0x78,
+ 0xaf, 0xa2, 0x3d, 0x57, 0x7d, 0x0e, 0x56, 0xb0, 0x04, 0xf5, 0x6e, 0xeb,
+ 0x28, 0x6e, 0x6c, 0x94, 0x9d, 0x98, 0x2b, 0xdb, 0x93, 0x53, 0xcb, 0xc6,
+ 0x3d, 0x33, 0xd7, 0xd3, 0x97, 0xce, 0xb4, 0xfe, 0xa5, 0x1a, 0x6d, 0xf0,
+ 0xb4, 0xd6, 0xd4, 0xcd, 0x32, 0xb9, 0x06, 0x5b, 0xc4, 0x11, 0x0d, 0x79,
+ 0x0c, 0x61, 0x0e, 0x44,
+};
+static const struct drbg_kat_no_reseed kat1215_t = {
+ 14, kat1215_entropyin, kat1215_nonce, kat1215_persstr,
+ kat1215_addin0, kat1215_addin1, kat1215_retbits
+};
+static const struct drbg_kat kat1215 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1215_t
+};
+
+static const unsigned char kat1216_entropyin[] = {
+ 0xf4, 0x5e, 0x9d, 0x04, 0x0c, 0x14, 0x56, 0xf1, 0xc7, 0xf2, 0x6e, 0x7f,
+ 0x14, 0x64, 0x69, 0xfb, 0xe3, 0x97, 0x30, 0x07, 0xfe, 0x03, 0x72, 0x39,
+ 0xad, 0x57, 0x62, 0x30, 0x46, 0xe7, 0xec, 0x52, 0x22, 0x1b, 0x22, 0xee,
+ 0xc2, 0x08, 0xb2, 0x2a, 0xc4, 0xcf, 0x4c, 0xa8, 0xd6, 0x25, 0x38, 0x74,
+};
+static const unsigned char kat1216_nonce[] = {0};
+static const unsigned char kat1216_persstr[] = {0};
+static const unsigned char kat1216_addin0[] = {
+ 0x28, 0x81, 0x9b, 0xc7, 0x9b, 0x92, 0xfc, 0x87, 0x90, 0xeb, 0xdc, 0x99,
+ 0x81, 0x2c, 0xdc, 0xea, 0x5c, 0x96, 0xe6, 0xfe, 0xab, 0x32, 0x80, 0x1e,
+ 0xc1, 0x85, 0x1b, 0x9f, 0x46, 0xe8, 0x0e, 0xb6, 0x80, 0x00, 0x28, 0xe6,
+ 0x1f, 0xbc, 0xcb, 0x6c, 0xcb, 0xe4, 0x2b, 0x06, 0xbf, 0x5a, 0x08, 0x64,
+};
+static const unsigned char kat1216_addin1[] = {
+ 0x41, 0x8c, 0xa8, 0x48, 0x02, 0x7e, 0x1b, 0x3c, 0x84, 0xd6, 0x67, 0x17,
+ 0xe6, 0xf3, 0x1b, 0xf8, 0x96, 0x84, 0xd5, 0xdb, 0x94, 0xcd, 0x2d, 0x57,
+ 0x92, 0x33, 0xf7, 0x16, 0xac, 0x70, 0xab, 0x66, 0xcc, 0x7b, 0x01, 0xa6,
+ 0xf9, 0xab, 0x8c, 0x76, 0x65, 0xfc, 0xc3, 0x7d, 0xba, 0x4a, 0xf1, 0xad,
+};
+static const unsigned char kat1216_retbits[] = {
+ 0x4f, 0x11, 0x40, 0x6b, 0xd3, 0x03, 0xc1, 0x04, 0x24, 0x34, 0x41, 0xa8,
+ 0xf8, 0x28, 0xbf, 0x02, 0x93, 0xcb, 0x20, 0xac, 0x39, 0x39, 0x20, 0x61,
+ 0x42, 0x9c, 0x3f, 0x56, 0xc1, 0xf4, 0x26, 0x23, 0x9f, 0x8f, 0x0c, 0x68,
+ 0x7b, 0x69, 0x89, 0x7a, 0x2c, 0x7c, 0x8c, 0x2b, 0x4f, 0xb5, 0x20, 0xb6,
+ 0x27, 0x41, 0xff, 0xdd, 0x29, 0xf0, 0x38, 0xb7, 0xc8, 0x2a, 0x9d, 0x00,
+ 0xa8, 0x90, 0xa3, 0xed,
+};
+static const struct drbg_kat_no_reseed kat1216_t = {
+ 0, kat1216_entropyin, kat1216_nonce, kat1216_persstr,
+ kat1216_addin0, kat1216_addin1, kat1216_retbits
+};
+static const struct drbg_kat kat1216 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1216_t
+};
+
+static const unsigned char kat1217_entropyin[] = {
+ 0x93, 0x30, 0x15, 0xbe, 0x05, 0x2c, 0x11, 0x7a, 0xd3, 0xd3, 0x8d, 0xd2,
+ 0xd1, 0xd5, 0x2b, 0xda, 0x42, 0xd7, 0xf3, 0x69, 0x46, 0x41, 0x8b, 0x00,
+ 0x6c, 0x67, 0xaa, 0xd4, 0x9d, 0x81, 0x30, 0xe5, 0xec, 0x3f, 0x0c, 0x1d,
+ 0x6f, 0xfb, 0x0b, 0x6d, 0xa0, 0x02, 0x70, 0xf7, 0x7a, 0xe1, 0x83, 0x62,
+};
+static const unsigned char kat1217_nonce[] = {0};
+static const unsigned char kat1217_persstr[] = {0};
+static const unsigned char kat1217_addin0[] = {
+ 0x0e, 0x5e, 0xcc, 0xdf, 0x74, 0x85, 0x49, 0xf9, 0x4c, 0xab, 0x63, 0xd6,
+ 0x49, 0x14, 0x5d, 0x4c, 0x3b, 0x84, 0xc7, 0x4a, 0x22, 0x76, 0xd5, 0xc1,
+ 0x88, 0xcd, 0xeb, 0xf4, 0x17, 0xbc, 0xc9, 0xf5, 0xf1, 0x9d, 0x48, 0x57,
+ 0xe7, 0x68, 0x23, 0xe0, 0x0b, 0x8f, 0x08, 0xf8, 0xd5, 0x83, 0xa6, 0x5d,
+};
+static const unsigned char kat1217_addin1[] = {
+ 0x12, 0xa0, 0xed, 0x9a, 0xfc, 0x1a, 0x74, 0x56, 0xf8, 0x43, 0x0d, 0x5a,
+ 0xca, 0x4c, 0xab, 0x30, 0xf7, 0x5e, 0x39, 0xad, 0x70, 0x12, 0x56, 0x6c,
+ 0x32, 0xd8, 0xc7, 0x53, 0xae, 0x6a, 0x9c, 0x59, 0xe8, 0xee, 0x87, 0x83,
+ 0x2f, 0xaa, 0xc3, 0xd1, 0x26, 0x05, 0x6b, 0xc9, 0x55, 0x47, 0x93, 0xdb,
+};
+static const unsigned char kat1217_retbits[] = {
+ 0x06, 0x15, 0x80, 0x3d, 0x2a, 0xa2, 0x88, 0x23, 0x44, 0x57, 0x86, 0xa7,
+ 0xac, 0x99, 0x51, 0xb1, 0x46, 0x19, 0xf2, 0x07, 0x2e, 0x8d, 0xe4, 0x4a,
+ 0xcf, 0xe0, 0x06, 0x74, 0xa3, 0xd4, 0x0f, 0xea, 0xec, 0x07, 0xaa, 0xee,
+ 0xee, 0x94, 0x7b, 0x71, 0xc7, 0x53, 0x1c, 0x3a, 0x93, 0x73, 0x7f, 0x34,
+ 0x15, 0xfc, 0xce, 0x87, 0x35, 0x3c, 0x85, 0x25, 0x8e, 0x23, 0x01, 0xd2,
+ 0x84, 0x2b, 0x40, 0x8e,
+};
+static const struct drbg_kat_no_reseed kat1217_t = {
+ 1, kat1217_entropyin, kat1217_nonce, kat1217_persstr,
+ kat1217_addin0, kat1217_addin1, kat1217_retbits
+};
+static const struct drbg_kat kat1217 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1217_t
+};
+
+static const unsigned char kat1218_entropyin[] = {
+ 0xbd, 0xdc, 0xa8, 0xa3, 0x12, 0x7e, 0xd5, 0x1e, 0xdc, 0x00, 0x8a, 0xcf,
+ 0x98, 0x9f, 0x5d, 0xa8, 0x2e, 0xa0, 0xa8, 0x5b, 0x7b, 0xb6, 0x8f, 0x66,
+ 0x55, 0x7e, 0xae, 0xe7, 0x08, 0xfc, 0x37, 0x29, 0xa5, 0x6e, 0xb8, 0xf4,
+ 0x51, 0x76, 0xb3, 0x9a, 0xec, 0xfc, 0xca, 0xfa, 0xcf, 0x2a, 0xbc, 0x47,
+};
+static const unsigned char kat1218_nonce[] = {0};
+static const unsigned char kat1218_persstr[] = {0};
+static const unsigned char kat1218_addin0[] = {
+ 0xab, 0x75, 0xd2, 0xba, 0xcd, 0xf1, 0x32, 0x35, 0x90, 0x12, 0xaf, 0xf3,
+ 0x6e, 0xc8, 0x67, 0x95, 0xde, 0xf2, 0x62, 0xc8, 0xf4, 0xb2, 0x3c, 0x23,
+ 0x1b, 0x26, 0x77, 0x07, 0xd9, 0x4a, 0x7a, 0x50, 0x13, 0x2f, 0xea, 0x85,
+ 0x70, 0x2e, 0x7a, 0x64, 0xf9, 0x05, 0x17, 0xb4, 0x04, 0x14, 0xda, 0x24,
+};
+static const unsigned char kat1218_addin1[] = {
+ 0x72, 0x17, 0xec, 0x49, 0x7a, 0x68, 0x70, 0x05, 0x00, 0xbb, 0x44, 0x91,
+ 0x20, 0x66, 0xc2, 0xb2, 0xc8, 0x88, 0xfe, 0xf1, 0x01, 0xe0, 0x0c, 0x32,
+ 0x0e, 0x3c, 0x28, 0x4e, 0xb1, 0xd4, 0x91, 0x47, 0xc8, 0x64, 0x4a, 0x85,
+ 0xfb, 0xb5, 0xc1, 0xcf, 0xe1, 0x18, 0xea, 0x43, 0xe5, 0xd5, 0x85, 0xb6,
+};
+static const unsigned char kat1218_retbits[] = {
+ 0x61, 0xfc, 0x09, 0x56, 0x7d, 0x29, 0x77, 0xe5, 0x18, 0xf2, 0x5e, 0x68,
+ 0xe3, 0x98, 0xb7, 0xbd, 0x2f, 0x73, 0x4b, 0xd5, 0xe1, 0x4e, 0x75, 0xd1,
+ 0xe9, 0x0b, 0xa1, 0x86, 0xc9, 0xe4, 0x78, 0xe9, 0x80, 0xc9, 0x35, 0x3e,
+ 0xbf, 0x2b, 0xa6, 0x50, 0x6a, 0x98, 0xe2, 0xb7, 0x28, 0xa2, 0x05, 0xe4,
+ 0x07, 0x0b, 0xe2, 0xa2, 0x37, 0x2d, 0x68, 0x88, 0x4c, 0xb9, 0x00, 0x08,
+ 0xcb, 0x60, 0x02, 0xb4,
+};
+static const struct drbg_kat_no_reseed kat1218_t = {
+ 2, kat1218_entropyin, kat1218_nonce, kat1218_persstr,
+ kat1218_addin0, kat1218_addin1, kat1218_retbits
+};
+static const struct drbg_kat kat1218 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1218_t
+};
+
+static const unsigned char kat1219_entropyin[] = {
+ 0xb2, 0x14, 0xce, 0x72, 0xad, 0xc2, 0xdc, 0x03, 0x08, 0x52, 0xe8, 0xca,
+ 0x0d, 0xf4, 0x20, 0x9d, 0x26, 0x92, 0x1c, 0xad, 0x57, 0xa6, 0x7c, 0xa3,
+ 0x7a, 0xd5, 0xd7, 0x9d, 0xac, 0x3a, 0xd5, 0xca, 0x3b, 0x64, 0x96, 0x84,
+ 0xbd, 0xfc, 0xf1, 0xc3, 0xd3, 0x94, 0x5a, 0x47, 0x08, 0x18, 0x28, 0x8c,
+};
+static const unsigned char kat1219_nonce[] = {0};
+static const unsigned char kat1219_persstr[] = {0};
+static const unsigned char kat1219_addin0[] = {
+ 0x2f, 0xc2, 0x07, 0xab, 0x0f, 0xc3, 0x09, 0xbb, 0xcf, 0xf4, 0x31, 0x4c,
+ 0xf4, 0x1e, 0xa1, 0x7f, 0xa1, 0x04, 0xc8, 0x84, 0x9d, 0xdd, 0xba, 0x8a,
+ 0xd7, 0x0f, 0x3b, 0x01, 0x93, 0xb3, 0x26, 0xd4, 0x0d, 0xb3, 0x3a, 0xfe,
+ 0xa7, 0x7b, 0x01, 0x0b, 0x7d, 0x31, 0x41, 0xb5, 0x8b, 0xf9, 0x36, 0x8f,
+};
+static const unsigned char kat1219_addin1[] = {
+ 0x8d, 0xfc, 0x72, 0x35, 0x3e, 0x97, 0x10, 0xb3, 0xc5, 0x5c, 0x83, 0x85,
+ 0xe0, 0x5f, 0xdf, 0x99, 0x2f, 0x47, 0x99, 0xf8, 0x07, 0x62, 0xcc, 0x8e,
+ 0x70, 0x57, 0x13, 0xd5, 0x28, 0xdf, 0x27, 0xb2, 0xf5, 0x18, 0x8d, 0x79,
+ 0x39, 0x4c, 0x7d, 0x65, 0x9e, 0x27, 0xc8, 0x11, 0xda, 0xf7, 0xc3, 0xd2,
+};
+static const unsigned char kat1219_retbits[] = {
+ 0x42, 0x83, 0xe9, 0xde, 0x3c, 0xfd, 0x1b, 0x99, 0x54, 0x13, 0xae, 0xa2,
+ 0x74, 0x78, 0xa3, 0x30, 0x5e, 0xbb, 0x86, 0xc2, 0x5b, 0x91, 0xd0, 0x20,
+ 0x74, 0x5a, 0x76, 0x38, 0xf4, 0x04, 0x48, 0x4b, 0x87, 0x39, 0x45, 0x0f,
+ 0x00, 0x65, 0x5b, 0xa8, 0x35, 0x07, 0xf8, 0xa5, 0xbd, 0xff, 0x72, 0x91,
+ 0x34, 0xf1, 0x5d, 0x40, 0x60, 0x34, 0xa4, 0x58, 0x4b, 0x12, 0x65, 0x5a,
+ 0x6e, 0xa4, 0xd6, 0x9f,
+};
+static const struct drbg_kat_no_reseed kat1219_t = {
+ 3, kat1219_entropyin, kat1219_nonce, kat1219_persstr,
+ kat1219_addin0, kat1219_addin1, kat1219_retbits
+};
+static const struct drbg_kat kat1219 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1219_t
+};
+
+static const unsigned char kat1220_entropyin[] = {
+ 0x65, 0xc2, 0x08, 0xb7, 0x3d, 0xdb, 0x55, 0x50, 0x9a, 0x4c, 0x50, 0x01,
+ 0x92, 0x02, 0x56, 0xfa, 0xa4, 0x2c, 0xae, 0xa9, 0xd7, 0x87, 0xcb, 0x18,
+ 0x9e, 0xcb, 0x39, 0x35, 0x7f, 0xe8, 0x90, 0xd6, 0xbe, 0x98, 0x2b, 0xb9,
+ 0x5d, 0xa4, 0xa6, 0xbd, 0x6b, 0x3f, 0x92, 0xc9, 0xba, 0xab, 0x35, 0x37,
+};
+static const unsigned char kat1220_nonce[] = {0};
+static const unsigned char kat1220_persstr[] = {0};
+static const unsigned char kat1220_addin0[] = {
+ 0x89, 0x9a, 0x22, 0xa7, 0x68, 0xfb, 0xe6, 0x47, 0x3e, 0x4b, 0xc7, 0x04,
+ 0x8a, 0x1c, 0x3e, 0x73, 0x3f, 0xc4, 0x61, 0xad, 0xe4, 0x71, 0x69, 0x37,
+ 0x24, 0x06, 0x0b, 0x77, 0x45, 0x82, 0xfa, 0xf2, 0x50, 0x1b, 0x00, 0x6e,
+ 0xcd, 0x9b, 0x33, 0xee, 0x46, 0x49, 0x75, 0xda, 0x57, 0xe8, 0xe3, 0x49,
+};
+static const unsigned char kat1220_addin1[] = {
+ 0x51, 0xbe, 0x21, 0x81, 0xd7, 0x90, 0xcf, 0x22, 0x9f, 0x24, 0x68, 0xb8,
+ 0x3d, 0xaa, 0x0f, 0x0b, 0xc7, 0x2c, 0x33, 0x6f, 0xf6, 0x8b, 0x45, 0xc2,
+ 0xb2, 0x22, 0x89, 0x8e, 0x43, 0xdb, 0xf8, 0x6a, 0xac, 0x37, 0x9f, 0x75,
+ 0x09, 0x25, 0x2f, 0x73, 0x57, 0x38, 0x31, 0x4b, 0x6e, 0x85, 0xdc, 0x50,
+};
+static const unsigned char kat1220_retbits[] = {
+ 0x24, 0xca, 0xef, 0x40, 0x25, 0xcc, 0xab, 0xc2, 0xb6, 0x38, 0x5b, 0xef,
+ 0xb5, 0xef, 0x17, 0xd5, 0x4a, 0x59, 0x0c, 0x6f, 0x08, 0x14, 0xdd, 0x59,
+ 0x13, 0x1d, 0xa6, 0xd5, 0xb8, 0x3d, 0x08, 0xcf, 0x8e, 0xaa, 0xb0, 0xb3,
+ 0xd5, 0x10, 0xa4, 0x26, 0x58, 0xd1, 0xe8, 0x9e, 0x08, 0x48, 0xef, 0x84,
+ 0x46, 0x29, 0xc7, 0x9e, 0x62, 0xf6, 0x8c, 0xce, 0x76, 0x5b, 0x7e, 0x9a,
+ 0x4d, 0x63, 0x60, 0x79,
+};
+static const struct drbg_kat_no_reseed kat1220_t = {
+ 4, kat1220_entropyin, kat1220_nonce, kat1220_persstr,
+ kat1220_addin0, kat1220_addin1, kat1220_retbits
+};
+static const struct drbg_kat kat1220 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1220_t
+};
+
+static const unsigned char kat1221_entropyin[] = {
+ 0xdf, 0x9d, 0xcc, 0x7a, 0x7c, 0x42, 0x78, 0x42, 0x31, 0x13, 0x19, 0x6d,
+ 0x35, 0x94, 0x40, 0x60, 0x55, 0xca, 0xaa, 0xa8, 0x8b, 0xd1, 0xe4, 0x88,
+ 0xf0, 0x30, 0xd1, 0xf9, 0x42, 0xed, 0x1f, 0x4e, 0xa4, 0x0e, 0x40, 0xde,
+ 0x2c, 0x90, 0xc6, 0xda, 0x2a, 0xe3, 0xd5, 0xc5, 0x40, 0xc8, 0x0c, 0xb3,
+};
+static const unsigned char kat1221_nonce[] = {0};
+static const unsigned char kat1221_persstr[] = {0};
+static const unsigned char kat1221_addin0[] = {
+ 0xce, 0x1c, 0x87, 0xf0, 0xfa, 0x74, 0xd2, 0x60, 0x2c, 0xdc, 0x75, 0x0f,
+ 0xbd, 0xaf, 0xcd, 0x13, 0x62, 0x0e, 0x4c, 0x70, 0xf6, 0xe8, 0x1f, 0x09,
+ 0x5d, 0xb0, 0x16, 0x2e, 0x95, 0x59, 0xd2, 0x00, 0x46, 0xd5, 0xf3, 0x10,
+ 0xe0, 0x94, 0xc6, 0x79, 0x37, 0x14, 0x03, 0xd2, 0x94, 0x62, 0x11, 0x1c,
+};
+static const unsigned char kat1221_addin1[] = {
+ 0x03, 0xbe, 0x90, 0xc8, 0xde, 0xe4, 0xb3, 0x52, 0x3c, 0x46, 0xcd, 0x70,
+ 0xdb, 0x02, 0x73, 0xa5, 0x08, 0x45, 0x79, 0x54, 0xe7, 0x58, 0x30, 0x11,
+ 0xe5, 0xfa, 0x3e, 0xf1, 0x2c, 0xd1, 0xc0, 0xb3, 0x79, 0xaa, 0xba, 0x71,
+ 0x36, 0xb2, 0x75, 0x5f, 0xf6, 0x33, 0x82, 0x99, 0x3f, 0x4f, 0x91, 0xc1,
+};
+static const unsigned char kat1221_retbits[] = {
+ 0xc3, 0x86, 0x03, 0x41, 0x92, 0xfc, 0x36, 0x92, 0xa3, 0x44, 0xef, 0x39,
+ 0xe6, 0x82, 0xe0, 0x5d, 0xa1, 0xf5, 0x83, 0x59, 0x12, 0x50, 0x41, 0x6f,
+ 0x74, 0x06, 0x0f, 0x26, 0x92, 0x00, 0x5e, 0xb9, 0xb6, 0x9a, 0xa6, 0xa8,
+ 0x2d, 0xc2, 0x14, 0x8d, 0x9c, 0x74, 0xb8, 0x89, 0xeb, 0xfc, 0x2a, 0xc0,
+ 0x11, 0x13, 0x79, 0x72, 0x0a, 0x3d, 0xd8, 0x87, 0x09, 0xf5, 0x6e, 0xc6,
+ 0xde, 0xb9, 0x77, 0x8f,
+};
+static const struct drbg_kat_no_reseed kat1221_t = {
+ 5, kat1221_entropyin, kat1221_nonce, kat1221_persstr,
+ kat1221_addin0, kat1221_addin1, kat1221_retbits
+};
+static const struct drbg_kat kat1221 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1221_t
+};
+
+static const unsigned char kat1222_entropyin[] = {
+ 0xaa, 0x70, 0x8c, 0x17, 0x13, 0x9d, 0xe7, 0x47, 0x8c, 0xc3, 0x16, 0xf3,
+ 0x7e, 0x25, 0xd7, 0x5b, 0xea, 0x23, 0xaf, 0x27, 0x94, 0x0c, 0x0d, 0x60,
+ 0xca, 0xab, 0x4c, 0xcb, 0xa6, 0xd2, 0xf9, 0x0e, 0xab, 0xa8, 0x15, 0x7b,
+ 0x09, 0xc1, 0x05, 0x71, 0x9f, 0x0d, 0xb5, 0x50, 0xd1, 0x78, 0x48, 0xe8,
+};
+static const unsigned char kat1222_nonce[] = {0};
+static const unsigned char kat1222_persstr[] = {0};
+static const unsigned char kat1222_addin0[] = {
+ 0x07, 0xe3, 0x64, 0x96, 0x49, 0x64, 0x1f, 0x56, 0x0f, 0x32, 0x56, 0xfd,
+ 0x0e, 0xca, 0xa1, 0x9e, 0xed, 0xa4, 0xc0, 0x51, 0xf9, 0xdc, 0xd9, 0x8c,
+ 0xe0, 0xb1, 0x4d, 0x0d, 0xec, 0x81, 0x30, 0x42, 0xd9, 0x7c, 0x0f, 0x8f,
+ 0xd3, 0x9b, 0x2c, 0x8a, 0xf2, 0x5c, 0xe9, 0x4c, 0xaa, 0xa1, 0x23, 0x9c,
+};
+static const unsigned char kat1222_addin1[] = {
+ 0xc2, 0x1d, 0x7a, 0xf7, 0x97, 0x78, 0xb3, 0x3d, 0xb5, 0x12, 0x71, 0x9c,
+ 0x54, 0xc1, 0xfc, 0x3f, 0xd5, 0x16, 0xf0, 0x17, 0x3f, 0xb8, 0x71, 0x6c,
+ 0x2b, 0xd9, 0xed, 0xef, 0x3c, 0x41, 0x3c, 0x34, 0x46, 0xf5, 0x93, 0xc5,
+ 0x78, 0xb4, 0x2c, 0x84, 0x9c, 0x9f, 0xcd, 0x4b, 0x47, 0x0e, 0x9c, 0xa6,
+};
+static const unsigned char kat1222_retbits[] = {
+ 0xf8, 0xbd, 0x6c, 0x9e, 0x55, 0xc6, 0x95, 0x1a, 0x19, 0x3a, 0x1a, 0x69,
+ 0x4c, 0x6e, 0x15, 0x11, 0x79, 0xce, 0x06, 0xa7, 0xac, 0x9c, 0x50, 0xc2,
+ 0xaa, 0x33, 0xa5, 0x73, 0x0e, 0x47, 0x2b, 0xd6, 0x2c, 0xa4, 0x8f, 0x52,
+ 0x3e, 0x96, 0x55, 0x4d, 0x4e, 0xb7, 0x96, 0x97, 0x52, 0x5c, 0x40, 0x95,
+ 0x61, 0xa5, 0x16, 0xd3, 0xb1, 0x6f, 0xb5, 0x16, 0x65, 0x8d, 0x51, 0x57,
+ 0x48, 0x3b, 0x54, 0x92,
+};
+static const struct drbg_kat_no_reseed kat1222_t = {
+ 6, kat1222_entropyin, kat1222_nonce, kat1222_persstr,
+ kat1222_addin0, kat1222_addin1, kat1222_retbits
+};
+static const struct drbg_kat kat1222 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1222_t
+};
+
+static const unsigned char kat1223_entropyin[] = {
+ 0x4d, 0xda, 0x7c, 0x88, 0x8b, 0x97, 0x8b, 0xaa, 0x0d, 0xa8, 0x16, 0x34,
+ 0xd3, 0x54, 0xca, 0x96, 0x34, 0x55, 0xff, 0x7a, 0x7a, 0x04, 0xba, 0xf5,
+ 0xe6, 0x66, 0xd6, 0x18, 0xb3, 0xb9, 0x39, 0x74, 0x8c, 0x55, 0x44, 0xb2,
+ 0x33, 0xa7, 0x3a, 0x2a, 0x36, 0x06, 0xa9, 0xf4, 0x3a, 0x79, 0x95, 0xf9,
+};
+static const unsigned char kat1223_nonce[] = {0};
+static const unsigned char kat1223_persstr[] = {0};
+static const unsigned char kat1223_addin0[] = {
+ 0x35, 0x10, 0xd9, 0x64, 0xec, 0x19, 0xc0, 0x95, 0x99, 0x49, 0xcd, 0x4c,
+ 0xa8, 0x92, 0x75, 0x89, 0xf9, 0xda, 0x23, 0x27, 0xea, 0x48, 0xac, 0xaa,
+ 0x88, 0x0e, 0xa1, 0xe7, 0x06, 0xcb, 0x61, 0xa6, 0xd0, 0x0a, 0xc5, 0x97,
+ 0xf1, 0x81, 0x23, 0xc8, 0xd2, 0x3f, 0xe4, 0x90, 0xc2, 0x22, 0x94, 0x7d,
+};
+static const unsigned char kat1223_addin1[] = {
+ 0xfd, 0xf3, 0xd5, 0x07, 0x8f, 0xd4, 0x6c, 0x8f, 0xb6, 0x58, 0xe7, 0xed,
+ 0xd6, 0x6d, 0xf6, 0x5d, 0xa2, 0xfd, 0xca, 0x4a, 0xe3, 0x8a, 0xac, 0x93,
+ 0x18, 0xd9, 0x4f, 0xc6, 0x31, 0x22, 0x19, 0x86, 0x15, 0x19, 0x69, 0xca,
+ 0xe0, 0x02, 0x97, 0x2e, 0x6e, 0x61, 0x15, 0x74, 0xdd, 0x33, 0xdd, 0x2d,
+};
+static const unsigned char kat1223_retbits[] = {
+ 0x9c, 0x83, 0xba, 0x18, 0x80, 0xa7, 0x57, 0x87, 0x01, 0x98, 0xcd, 0xe8,
+ 0x6e, 0x02, 0x52, 0xaa, 0x93, 0x89, 0xff, 0xd9, 0x7d, 0xbb, 0x3c, 0x3f,
+ 0xdb, 0x29, 0x02, 0xba, 0x90, 0x28, 0xbd, 0xbf, 0x75, 0xcf, 0xdf, 0x34,
+ 0x8b, 0xdc, 0x80, 0x71, 0xef, 0x33, 0xb2, 0x64, 0xe2, 0xbb, 0x74, 0xc1,
+ 0x61, 0x3b, 0x78, 0xb7, 0x6e, 0x56, 0x33, 0x12, 0x6e, 0xdc, 0xec, 0x29,
+ 0x61, 0x94, 0x02, 0x8a,
+};
+static const struct drbg_kat_no_reseed kat1223_t = {
+ 7, kat1223_entropyin, kat1223_nonce, kat1223_persstr,
+ kat1223_addin0, kat1223_addin1, kat1223_retbits
+};
+static const struct drbg_kat kat1223 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1223_t
+};
+
+static const unsigned char kat1224_entropyin[] = {
+ 0x38, 0x31, 0xae, 0x24, 0x36, 0x8f, 0xb0, 0xda, 0x37, 0xa0, 0xc7, 0xe9,
+ 0x6d, 0x4b, 0x93, 0x1d, 0xda, 0xcb, 0x4b, 0x46, 0xb4, 0x89, 0xbe, 0x10,
+ 0xff, 0x71, 0xf6, 0x1f, 0xfd, 0xe5, 0xf4, 0xd7, 0x6c, 0x9f, 0x17, 0xa3,
+ 0x42, 0x36, 0xe7, 0x4c, 0xfa, 0x49, 0x4e, 0x1f, 0xd6, 0x1f, 0xfa, 0xbc,
+};
+static const unsigned char kat1224_nonce[] = {0};
+static const unsigned char kat1224_persstr[] = {0};
+static const unsigned char kat1224_addin0[] = {
+ 0xef, 0x0e, 0xbb, 0x9f, 0x24, 0x70, 0x39, 0xf3, 0x09, 0xf7, 0x54, 0x66,
+ 0xb4, 0x98, 0xed, 0x67, 0xa4, 0x03, 0x40, 0x24, 0xbe, 0x38, 0x2e, 0x0a,
+ 0x42, 0x0f, 0xc3, 0x46, 0xd6, 0xf4, 0x22, 0x2e, 0x87, 0xcb, 0xe0, 0x80,
+ 0xf7, 0x5f, 0x23, 0x82, 0xd7, 0x6f, 0xb7, 0x9b, 0x8f, 0xb6, 0x86, 0x41,
+};
+static const unsigned char kat1224_addin1[] = {
+ 0x5a, 0xb7, 0x86, 0xc4, 0x63, 0x19, 0xd8, 0xd9, 0xd6, 0xb7, 0x4e, 0xc6,
+ 0xf4, 0x13, 0x1d, 0x48, 0x37, 0xb7, 0xec, 0xaa, 0xd3, 0xce, 0xe7, 0x14,
+ 0x07, 0xf1, 0xb8, 0x69, 0x71, 0x16, 0xa1, 0x73, 0xab, 0x17, 0x64, 0x09,
+ 0x8b, 0xe9, 0xaa, 0x53, 0xca, 0x9e, 0xf2, 0xee, 0x1c, 0x6d, 0x55, 0x63,
+};
+static const unsigned char kat1224_retbits[] = {
+ 0x1d, 0x60, 0x74, 0xd6, 0x34, 0xec, 0x13, 0xd5, 0xf8, 0xa0, 0x84, 0x20,
+ 0x5a, 0x04, 0x8b, 0x42, 0x00, 0xf1, 0xed, 0xb2, 0xa1, 0x54, 0x21, 0x97,
+ 0x07, 0xc2, 0xcb, 0xdf, 0x64, 0xab, 0x77, 0xff, 0x9d, 0xfa, 0xb0, 0xba,
+ 0xb1, 0xd2, 0xae, 0x14, 0x14, 0x93, 0x11, 0x50, 0x53, 0x03, 0x1f, 0xcf,
+ 0xb4, 0x2a, 0xd0, 0x15, 0x84, 0x42, 0xa4, 0x63, 0x2d, 0x76, 0xf6, 0x96,
+ 0x14, 0x2c, 0x98, 0xce,
+};
+static const struct drbg_kat_no_reseed kat1224_t = {
+ 8, kat1224_entropyin, kat1224_nonce, kat1224_persstr,
+ kat1224_addin0, kat1224_addin1, kat1224_retbits
+};
+static const struct drbg_kat kat1224 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1224_t
+};
+
+static const unsigned char kat1225_entropyin[] = {
+ 0x13, 0x87, 0xff, 0x2f, 0x0c, 0x25, 0x0f, 0x60, 0x1b, 0xab, 0xa3, 0xb6,
+ 0x04, 0xca, 0x92, 0xc6, 0x08, 0xbd, 0xd8, 0xed, 0xb6, 0x2a, 0xe7, 0xfd,
+ 0x57, 0xb1, 0xfa, 0xd7, 0x46, 0x34, 0x3a, 0xe7, 0x23, 0x73, 0x5d, 0xc5,
+ 0x6c, 0xa1, 0x54, 0x2c, 0x9a, 0x94, 0x3b, 0xef, 0x58, 0xaa, 0x6f, 0xa6,
+};
+static const unsigned char kat1225_nonce[] = {0};
+static const unsigned char kat1225_persstr[] = {0};
+static const unsigned char kat1225_addin0[] = {
+ 0xc8, 0xc2, 0x54, 0x9f, 0xe7, 0x74, 0xea, 0x88, 0x38, 0x35, 0xb9, 0xfb,
+ 0xf8, 0x40, 0xd3, 0x87, 0x34, 0x4d, 0xe9, 0x1d, 0xee, 0xe6, 0xb5, 0x60,
+ 0x7a, 0xf7, 0x2c, 0xed, 0x77, 0x1e, 0x76, 0x60, 0x9c, 0x46, 0x20, 0xd3,
+ 0xfd, 0x78, 0x87, 0x75, 0xd1, 0xd2, 0xe1, 0x6e, 0xde, 0x8e, 0x49, 0xa2,
+};
+static const unsigned char kat1225_addin1[] = {
+ 0x57, 0xe3, 0x30, 0xfd, 0xca, 0xcc, 0x74, 0x89, 0xe5, 0xda, 0x1e, 0x73,
+ 0x16, 0xc0, 0x46, 0xc5, 0xc3, 0xe7, 0x51, 0xa3, 0x12, 0x07, 0x7c, 0x0e,
+ 0xa1, 0x7c, 0x2a, 0xf9, 0x27, 0xe0, 0xdc, 0x87, 0x4b, 0x45, 0x6b, 0x5d,
+ 0x18, 0x3f, 0x04, 0x32, 0xb8, 0x5f, 0xad, 0xd6, 0xba, 0x5a, 0xbc, 0x8f,
+};
+static const unsigned char kat1225_retbits[] = {
+ 0xc4, 0xe9, 0xac, 0xd5, 0xea, 0x34, 0xe4, 0x56, 0xea, 0xbc, 0x8e, 0xaf,
+ 0x7d, 0xc3, 0xb7, 0x9f, 0x57, 0x60, 0x20, 0x92, 0x59, 0xd0, 0xea, 0x69,
+ 0xb2, 0xba, 0x91, 0x47, 0xe8, 0xc1, 0x72, 0xa4, 0xde, 0xc8, 0xd2, 0xc2,
+ 0x15, 0xe4, 0x09, 0x3c, 0xb7, 0x69, 0x9b, 0x68, 0xc7, 0xf8, 0xb7, 0xa5,
+ 0xfe, 0x54, 0x71, 0xd6, 0xc5, 0x17, 0xf1, 0x52, 0x3b, 0x10, 0xca, 0xbc,
+ 0x19, 0xd2, 0x81, 0xb3,
+};
+static const struct drbg_kat_no_reseed kat1225_t = {
+ 9, kat1225_entropyin, kat1225_nonce, kat1225_persstr,
+ kat1225_addin0, kat1225_addin1, kat1225_retbits
+};
+static const struct drbg_kat kat1225 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1225_t
+};
+
+static const unsigned char kat1226_entropyin[] = {
+ 0xc4, 0x0f, 0x66, 0x94, 0x7a, 0x04, 0x12, 0x8a, 0xbf, 0x91, 0x42, 0x71,
+ 0x66, 0x28, 0xbb, 0x43, 0x84, 0xb1, 0x5c, 0x71, 0x40, 0xa4, 0x10, 0xf2,
+ 0xee, 0x30, 0xe2, 0xd8, 0x55, 0xe1, 0x15, 0x3d, 0x8e, 0xaf, 0x6f, 0xd4,
+ 0xef, 0x24, 0xaa, 0xd9, 0x3f, 0x0f, 0x85, 0xe1, 0x7b, 0xbe, 0xa5, 0x30,
+};
+static const unsigned char kat1226_nonce[] = {0};
+static const unsigned char kat1226_persstr[] = {0};
+static const unsigned char kat1226_addin0[] = {
+ 0xb6, 0x57, 0xd5, 0xf9, 0x61, 0x7b, 0xdb, 0xd2, 0x6b, 0xfa, 0x68, 0x30,
+ 0xa8, 0xc1, 0x81, 0x9c, 0xba, 0xaa, 0x4a, 0x95, 0x53, 0x2c, 0xb7, 0xbe,
+ 0x6b, 0xf2, 0xc3, 0x24, 0x2e, 0x3f, 0xb0, 0x12, 0x4c, 0xec, 0x3f, 0xb2,
+ 0xa9, 0x8d, 0x0d, 0x4d, 0xee, 0x0d, 0x52, 0x1f, 0xae, 0xef, 0xb0, 0xf3,
+};
+static const unsigned char kat1226_addin1[] = {
+ 0xaf, 0x43, 0x7f, 0xa2, 0x36, 0x25, 0x6f, 0x5d, 0xfe, 0x2f, 0x00, 0x58,
+ 0x77, 0x24, 0xd6, 0xed, 0x2a, 0xb7, 0x0b, 0x63, 0x0e, 0x7f, 0x89, 0x8e,
+ 0xa1, 0x5f, 0x7d, 0x40, 0xb2, 0xc7, 0x19, 0x75, 0x41, 0x73, 0x48, 0x89,
+ 0x3a, 0x5d, 0xc6, 0x2f, 0x8a, 0x43, 0xa1, 0x7a, 0x16, 0xcd, 0xb1, 0x98,
+};
+static const unsigned char kat1226_retbits[] = {
+ 0xf5, 0x91, 0x69, 0x30, 0xe9, 0x9f, 0x8a, 0x26, 0x07, 0xb1, 0x03, 0xe4,
+ 0x72, 0x18, 0x15, 0xf5, 0x64, 0xc7, 0x94, 0xb7, 0x99, 0x2d, 0x17, 0x8a,
+ 0xf9, 0x92, 0x44, 0xdc, 0x6d, 0x42, 0x1d, 0x09, 0x5d, 0xe1, 0xac, 0x72,
+ 0x14, 0x6b, 0xf3, 0x74, 0xd9, 0x6f, 0x92, 0x1d, 0xb5, 0x6d, 0xff, 0x7f,
+ 0xcd, 0xca, 0xd9, 0xf5, 0x9e, 0x4e, 0x8b, 0x1f, 0xc5, 0xb1, 0x36, 0x46,
+ 0x45, 0xe6, 0x5c, 0x4f,
+};
+static const struct drbg_kat_no_reseed kat1226_t = {
+ 10, kat1226_entropyin, kat1226_nonce, kat1226_persstr,
+ kat1226_addin0, kat1226_addin1, kat1226_retbits
+};
+static const struct drbg_kat kat1226 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1226_t
+};
+
+static const unsigned char kat1227_entropyin[] = {
+ 0x9c, 0x21, 0x8d, 0x82, 0x6c, 0xaa, 0x82, 0x7a, 0xd2, 0xe4, 0x80, 0x24,
+ 0x38, 0x0b, 0xd6, 0x90, 0x2d, 0xfb, 0x09, 0x74, 0x6f, 0x3a, 0xdb, 0x8e,
+ 0x12, 0x61, 0xa5, 0x43, 0xf9, 0x6e, 0xa3, 0xca, 0x9c, 0x76, 0xad, 0x1b,
+ 0x5e, 0xff, 0xd0, 0x58, 0x08, 0xbd, 0x75, 0xdb, 0xa0, 0xf3, 0x98, 0xd2,
+};
+static const unsigned char kat1227_nonce[] = {0};
+static const unsigned char kat1227_persstr[] = {0};
+static const unsigned char kat1227_addin0[] = {
+ 0x1b, 0x8b, 0x55, 0x2e, 0x26, 0x25, 0x6b, 0x8f, 0x6b, 0xc6, 0x7d, 0x71,
+ 0xa2, 0x56, 0x0c, 0x4e, 0x40, 0x74, 0xff, 0x8b, 0x56, 0x9e, 0x5f, 0x35,
+ 0x4e, 0x0e, 0xf5, 0x22, 0xbc, 0x2d, 0x63, 0x20, 0x3c, 0x8b, 0x2e, 0x52,
+ 0xe1, 0x14, 0x9c, 0x68, 0xd2, 0x36, 0xa2, 0x6a, 0xf0, 0xfe, 0x7c, 0xb1,
+};
+static const unsigned char kat1227_addin1[] = {
+ 0xeb, 0x8e, 0x4d, 0xf9, 0xeb, 0x7a, 0x70, 0xbd, 0x99, 0x96, 0xfb, 0x92,
+ 0xdc, 0x51, 0x5e, 0x2f, 0xb1, 0x05, 0x93, 0x81, 0x37, 0x03, 0x9a, 0x70,
+ 0xed, 0xa8, 0x4b, 0xed, 0xb6, 0x57, 0x37, 0xc9, 0xf2, 0x17, 0x5e, 0xe6,
+ 0xa5, 0x0e, 0x6a, 0x8b, 0xda, 0x9d, 0xe1, 0xf0, 0x42, 0xe2, 0x8f, 0xa5,
+};
+static const unsigned char kat1227_retbits[] = {
+ 0xfa, 0xa7, 0x49, 0xb8, 0x44, 0xe5, 0x94, 0x24, 0x96, 0xb8, 0x73, 0x6e,
+ 0xa7, 0x73, 0x92, 0x28, 0xbf, 0xa8, 0xf2, 0x4a, 0x91, 0xf4, 0xc4, 0x05,
+ 0x5c, 0x0b, 0x55, 0x01, 0x93, 0xa6, 0xd6, 0x5e, 0xa9, 0x81, 0x80, 0x93,
+ 0x2f, 0x59, 0x3e, 0x95, 0xef, 0xf3, 0x55, 0xbb, 0xab, 0x37, 0x7e, 0x30,
+ 0xca, 0xc1, 0x51, 0x0a, 0x38, 0xa8, 0x7f, 0x0d, 0x0a, 0x78, 0xd4, 0x90,
+ 0x95, 0xc7, 0x30, 0x51,
+};
+static const struct drbg_kat_no_reseed kat1227_t = {
+ 11, kat1227_entropyin, kat1227_nonce, kat1227_persstr,
+ kat1227_addin0, kat1227_addin1, kat1227_retbits
+};
+static const struct drbg_kat kat1227 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1227_t
+};
+
+static const unsigned char kat1228_entropyin[] = {
+ 0x4f, 0x51, 0x8c, 0x59, 0x42, 0x83, 0xe1, 0xf0, 0x3f, 0x22, 0xab, 0x88,
+ 0xc3, 0x52, 0x5b, 0x1e, 0xb9, 0x3b, 0x7c, 0x00, 0x22, 0x8b, 0xb5, 0xc1,
+ 0x5b, 0x90, 0x0f, 0x35, 0x8c, 0x34, 0x70, 0x98, 0x13, 0x5d, 0x84, 0x6a,
+ 0xed, 0xc3, 0xc4, 0x39, 0x0d, 0x9b, 0x09, 0xa0, 0xfc, 0x2e, 0x3e, 0x7f,
+};
+static const unsigned char kat1228_nonce[] = {0};
+static const unsigned char kat1228_persstr[] = {0};
+static const unsigned char kat1228_addin0[] = {
+ 0x8f, 0xe6, 0x64, 0xe9, 0x01, 0xbb, 0x97, 0x87, 0x97, 0x80, 0x01, 0xc3,
+ 0xa8, 0xf1, 0x71, 0x5f, 0xf9, 0xe3, 0xff, 0x6b, 0x52, 0xfa, 0x9d, 0xd4,
+ 0x68, 0x03, 0xfd, 0xc1, 0x16, 0x3f, 0x61, 0x23, 0x15, 0x8e, 0x6e, 0x31,
+ 0xe9, 0xdb, 0x4f, 0x6f, 0x9e, 0xba, 0x42, 0xcb, 0xf8, 0x82, 0xec, 0xe1,
+};
+static const unsigned char kat1228_addin1[] = {
+ 0xac, 0xac, 0xde, 0xbe, 0x5e, 0xeb, 0xb9, 0x15, 0x60, 0x72, 0xde, 0x7e,
+ 0x08, 0xe1, 0x2c, 0x80, 0x2f, 0xd0, 0x1b, 0xd2, 0xac, 0x14, 0x64, 0x2c,
+ 0xe9, 0x09, 0x6b, 0x7c, 0x6c, 0x11, 0xdd, 0x5a, 0x5e, 0xfb, 0x59, 0xd9,
+ 0x08, 0xfe, 0xa7, 0x51, 0xeb, 0x11, 0x1a, 0x27, 0x94, 0x4a, 0x01, 0x99,
+};
+static const unsigned char kat1228_retbits[] = {
+ 0x0e, 0x8c, 0x6d, 0x1e, 0xa3, 0x28, 0xd1, 0x4e, 0x8f, 0x0d, 0x66, 0x32,
+ 0xd4, 0xb4, 0xea, 0x71, 0x9f, 0xa5, 0x08, 0xcb, 0x3d, 0x34, 0x0b, 0x18,
+ 0x4f, 0xdf, 0xf2, 0x3f, 0xa2, 0xf2, 0x4f, 0x71, 0xa6, 0x95, 0x47, 0x5e,
+ 0xc9, 0x21, 0x9a, 0x76, 0x3b, 0x1f, 0x3e, 0x4f, 0x59, 0xfe, 0x10, 0x95,
+ 0xa2, 0x04, 0xcb, 0xe5, 0x0d, 0xb8, 0xb2, 0x7d, 0x29, 0xad, 0xb7, 0xcd,
+ 0x2d, 0xb4, 0x5e, 0xce,
+};
+static const struct drbg_kat_no_reseed kat1228_t = {
+ 12, kat1228_entropyin, kat1228_nonce, kat1228_persstr,
+ kat1228_addin0, kat1228_addin1, kat1228_retbits
+};
+static const struct drbg_kat kat1228 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1228_t
+};
+
+static const unsigned char kat1229_entropyin[] = {
+ 0x65, 0xa0, 0x36, 0x17, 0xcb, 0x07, 0x51, 0xa2, 0x6a, 0x23, 0x65, 0x6e,
+ 0xd9, 0xc4, 0xec, 0x35, 0xfb, 0x29, 0xf1, 0x70, 0xbe, 0x8d, 0x12, 0x53,
+ 0xb2, 0x0b, 0x2a, 0xa5, 0x00, 0xdc, 0xb6, 0x00, 0x6e, 0xa6, 0x77, 0x89,
+ 0xf2, 0xc9, 0xa6, 0x97, 0x52, 0x52, 0xe4, 0x91, 0xcd, 0xfd, 0xa1, 0xe6,
+};
+static const unsigned char kat1229_nonce[] = {0};
+static const unsigned char kat1229_persstr[] = {0};
+static const unsigned char kat1229_addin0[] = {
+ 0x5d, 0x1e, 0x05, 0x26, 0x5d, 0x4f, 0xf7, 0x43, 0xfa, 0x62, 0xa8, 0xc1,
+ 0x90, 0x66, 0x4b, 0xe5, 0x83, 0xde, 0xb7, 0x3e, 0x18, 0x0b, 0xba, 0x99,
+ 0x74, 0x77, 0xd4, 0xec, 0x6c, 0xa7, 0x4d, 0x23, 0x46, 0x93, 0xc3, 0x77,
+ 0x67, 0x7e, 0xdb, 0xff, 0xf4, 0x49, 0x6c, 0x7d, 0x79, 0x87, 0xd1, 0xb4,
+};
+static const unsigned char kat1229_addin1[] = {
+ 0xbb, 0x6e, 0x80, 0x53, 0x97, 0xcc, 0xe7, 0x0a, 0x17, 0x1f, 0x4e, 0xfc,
+ 0xa4, 0x27, 0x2c, 0x80, 0xfa, 0x94, 0x67, 0xdb, 0xe8, 0xb8, 0x5d, 0xc7,
+ 0xd1, 0xa5, 0x43, 0x76, 0xab, 0xe5, 0x3b, 0x34, 0x52, 0x20, 0xbe, 0x90,
+ 0xf2, 0xe5, 0x28, 0xea, 0xf9, 0xee, 0x8d, 0x54, 0x71, 0x7d, 0x79, 0x4a,
+};
+static const unsigned char kat1229_retbits[] = {
+ 0xe3, 0x9c, 0xb1, 0xa9, 0x43, 0x00, 0x36, 0xbb, 0xfa, 0xf6, 0x0c, 0x20,
+ 0x7e, 0xb5, 0x35, 0x6e, 0xa4, 0x02, 0x81, 0xec, 0x30, 0x54, 0x67, 0x8a,
+ 0x0a, 0xa8, 0x11, 0xb7, 0xc1, 0x90, 0x64, 0xef, 0x98, 0xda, 0x77, 0x66,
+ 0x9b, 0x6f, 0x64, 0x92, 0x91, 0x33, 0x12, 0x65, 0x14, 0xf0, 0xcb, 0xe1,
+ 0x5e, 0xfe, 0x44, 0xd0, 0xb2, 0x33, 0x09, 0xe2, 0x45, 0x9e, 0x40, 0xb4,
+ 0x67, 0x4d, 0x7e, 0x78,
+};
+static const struct drbg_kat_no_reseed kat1229_t = {
+ 13, kat1229_entropyin, kat1229_nonce, kat1229_persstr,
+ kat1229_addin0, kat1229_addin1, kat1229_retbits
+};
+static const struct drbg_kat kat1229 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1229_t
+};
+
+static const unsigned char kat1230_entropyin[] = {
+ 0x2d, 0xc3, 0x5e, 0x79, 0x8e, 0x7c, 0xbb, 0x05, 0xd1, 0x44, 0x37, 0xa4,
+ 0xd8, 0x5f, 0x52, 0x9f, 0x81, 0x3e, 0x88, 0x46, 0xe4, 0x0e, 0xee, 0xe2,
+ 0x07, 0x9c, 0x02, 0x3a, 0xd2, 0x28, 0xb8, 0x4a, 0x7e, 0xc9, 0x11, 0xa4,
+ 0x77, 0x71, 0x0f, 0xd1, 0x82, 0x88, 0x37, 0x2b, 0x3b, 0x4e, 0x4d, 0x71,
+};
+static const unsigned char kat1230_nonce[] = {0};
+static const unsigned char kat1230_persstr[] = {0};
+static const unsigned char kat1230_addin0[] = {
+ 0x67, 0xcd, 0x37, 0xe1, 0x42, 0x22, 0xe5, 0x96, 0x6d, 0x24, 0x3b, 0xb4,
+ 0x4a, 0xab, 0xb3, 0x2b, 0x07, 0x50, 0x22, 0x0f, 0x75, 0x54, 0x69, 0x53,
+ 0x98, 0x16, 0x31, 0xb9, 0x48, 0x6a, 0x37, 0x3b, 0xd6, 0x92, 0x14, 0xbf,
+ 0xa1, 0xda, 0x28, 0x3c, 0xc7, 0x30, 0xec, 0x66, 0xaf, 0x1b, 0xe6, 0xc0,
+};
+static const unsigned char kat1230_addin1[] = {
+ 0x1c, 0x0f, 0x67, 0xce, 0x45, 0x90, 0x99, 0xf3, 0x99, 0x3b, 0xc8, 0xee,
+ 0x4a, 0x45, 0x50, 0xd3, 0xe7, 0xde, 0xc1, 0xa5, 0x22, 0x52, 0x80, 0xec,
+ 0xdb, 0x00, 0xac, 0x68, 0xe1, 0x7c, 0x7c, 0xf4, 0x0a, 0xfc, 0x5e, 0x67,
+ 0x94, 0x20, 0x8e, 0x57, 0x42, 0xc0, 0x01, 0x2e, 0x87, 0xd5, 0x71, 0x1c,
+};
+static const unsigned char kat1230_retbits[] = {
+ 0x26, 0x16, 0x7f, 0xf9, 0x82, 0x0a, 0xa2, 0x3a, 0xb6, 0x1f, 0x78, 0x72,
+ 0xe0, 0x07, 0xdd, 0x25, 0xd5, 0x8c, 0x7f, 0x82, 0xea, 0xcb, 0x94, 0x74,
+ 0x28, 0x07, 0x31, 0xa5, 0x50, 0xc8, 0xb8, 0x99, 0xe0, 0x80, 0x74, 0xd9,
+ 0x10, 0xd5, 0x76, 0x93, 0x9f, 0x87, 0xe9, 0x00, 0x18, 0x98, 0x7e, 0x0b,
+ 0xff, 0x48, 0xda, 0x03, 0xaa, 0xab, 0xaa, 0x9b, 0x7f, 0xae, 0xad, 0xdd,
+ 0x65, 0xfd, 0xf5, 0xe2,
+};
+static const struct drbg_kat_no_reseed kat1230_t = {
+ 14, kat1230_entropyin, kat1230_nonce, kat1230_persstr,
+ kat1230_addin0, kat1230_addin1, kat1230_retbits
+};
+static const struct drbg_kat kat1230 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1230_t
+};
+
+static const unsigned char kat1231_entropyin[] = {
+ 0x22, 0xa8, 0x9e, 0xe0, 0xe3, 0x7b, 0x54, 0xea, 0x63, 0x68, 0x63, 0xd9,
+ 0xfe, 0xd1, 0x08, 0x21, 0xf1, 0x95, 0x2a, 0x42, 0x84, 0x88, 0xd5, 0x28,
+ 0xec, 0xeb, 0x9d, 0x2e, 0xc6, 0x9d, 0x57, 0x3e, 0xc6, 0x21, 0x62, 0x16,
+ 0xfb, 0x3e, 0x8f, 0x72, 0xa1, 0x48, 0xa5, 0xad, 0xa9, 0xd6, 0x20, 0xb1,
+};
+static const unsigned char kat1231_nonce[] = {0};
+static const unsigned char kat1231_persstr[] = {
+ 0x95, 0x3c, 0x10, 0xba, 0xdc, 0xbc, 0xd4, 0x5f, 0xb4, 0xe5, 0x47, 0x58,
+ 0x26, 0x47, 0x7f, 0xc1, 0x37, 0xac, 0x96, 0xa4, 0x9a, 0xd5, 0x00, 0x5f,
+ 0xb1, 0x4b, 0xda, 0xf6, 0x46, 0x8a, 0xe7, 0xf4, 0x6c, 0x5d, 0x0d, 0xe2,
+ 0x2d, 0x30, 0x4a, 0xfc, 0x67, 0x98, 0x96, 0x15, 0xad, 0xc2, 0xe9, 0x83,
+};
+static const unsigned char kat1231_addin0[] = {0};
+static const unsigned char kat1231_addin1[] = {0};
+static const unsigned char kat1231_retbits[] = {
+ 0xf7, 0xfa, 0xb6, 0xa6, 0xfc, 0xf4, 0x45, 0xf0, 0xa0, 0x43, 0x4b, 0x2a,
+ 0xa0, 0xc6, 0x10, 0xbd, 0xef, 0x54, 0x89, 0xec, 0xd9, 0x54, 0x14, 0x63,
+ 0x46, 0x23, 0xad, 0xd1, 0x8a, 0x9f, 0x88, 0x8b, 0xca, 0x6b, 0xe1, 0x51,
+ 0x31, 0x2d, 0x1b, 0x9e, 0x8f, 0x83, 0xbd, 0x0a, 0xca, 0xd6, 0x23, 0x4d,
+ 0x3b, 0xcc, 0xc1, 0x1b, 0x63, 0xa4, 0x0d, 0x6f, 0xbf, 0xf4, 0x48, 0xf6,
+ 0x7d, 0xb0, 0xb9, 0x1f,
+};
+static const struct drbg_kat_no_reseed kat1231_t = {
+ 0, kat1231_entropyin, kat1231_nonce, kat1231_persstr,
+ kat1231_addin0, kat1231_addin1, kat1231_retbits
+};
+static const struct drbg_kat kat1231 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1231_t
+};
+
+static const unsigned char kat1232_entropyin[] = {
+ 0xa5, 0xca, 0x32, 0xff, 0x18, 0x30, 0x55, 0x55, 0xd3, 0x2e, 0x27, 0x0f,
+ 0x17, 0x05, 0x29, 0x23, 0x2c, 0x45, 0x87, 0x79, 0xea, 0xac, 0xe2, 0x21,
+ 0xac, 0x49, 0x58, 0xb4, 0x22, 0x6d, 0xf8, 0x18, 0x9e, 0x42, 0xb0, 0x84,
+ 0x4f, 0xc7, 0x65, 0x75, 0x1a, 0x62, 0x91, 0xa6, 0x0a, 0x35, 0xd8, 0xb4,
+};
+static const unsigned char kat1232_nonce[] = {0};
+static const unsigned char kat1232_persstr[] = {
+ 0xf4, 0x2a, 0x3a, 0x32, 0xdc, 0x92, 0xa3, 0xee, 0xff, 0x65, 0x8c, 0x34,
+ 0x9e, 0xb2, 0xe1, 0x81, 0x56, 0x44, 0x58, 0xc2, 0x02, 0xaa, 0x92, 0x2e,
+ 0xc4, 0x36, 0x4e, 0x3a, 0x93, 0xb2, 0xeb, 0xdf, 0xb5, 0x8e, 0xf7, 0x8f,
+ 0xc7, 0x23, 0x7b, 0x70, 0xd8, 0xa2, 0x61, 0xbc, 0xf3, 0x0b, 0xd1, 0xb6,
+};
+static const unsigned char kat1232_addin0[] = {0};
+static const unsigned char kat1232_addin1[] = {0};
+static const unsigned char kat1232_retbits[] = {
+ 0x00, 0x85, 0x1c, 0xac, 0x32, 0x04, 0x32, 0x6d, 0x97, 0xb5, 0xf2, 0x6c,
+ 0xd0, 0xbc, 0x05, 0xfe, 0xaf, 0xc3, 0x4f, 0x56, 0xb5, 0xb7, 0xde, 0xf2,
+ 0x64, 0x0b, 0xf5, 0xa1, 0x2d, 0xa0, 0x09, 0x0d, 0x85, 0x32, 0x0f, 0x31,
+ 0x32, 0xfe, 0x72, 0x12, 0xc8, 0x6d, 0x65, 0xf3, 0xb9, 0x38, 0x36, 0x6e,
+ 0xae, 0x25, 0xcd, 0x92, 0x33, 0xc0, 0xf9, 0x94, 0x1a, 0x70, 0xf9, 0x9e,
+ 0x79, 0x5c, 0xde, 0x4c,
+};
+static const struct drbg_kat_no_reseed kat1232_t = {
+ 1, kat1232_entropyin, kat1232_nonce, kat1232_persstr,
+ kat1232_addin0, kat1232_addin1, kat1232_retbits
+};
+static const struct drbg_kat kat1232 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1232_t
+};
+
+static const unsigned char kat1233_entropyin[] = {
+ 0x2e, 0x90, 0xb2, 0xda, 0xff, 0xc3, 0xdd, 0xda, 0x43, 0x8c, 0x38, 0xc1,
+ 0xbd, 0xd6, 0xe0, 0x7d, 0x78, 0xc8, 0x62, 0x22, 0x5d, 0x9d, 0x10, 0xb5,
+ 0x0a, 0x4d, 0x8e, 0x3e, 0x32, 0xcb, 0x63, 0xe2, 0x81, 0x01, 0xc0, 0x6d,
+ 0xd2, 0x0e, 0x2d, 0x17, 0x4d, 0x0f, 0x4e, 0xa1, 0xbd, 0xde, 0xe4, 0x0a,
+};
+static const unsigned char kat1233_nonce[] = {0};
+static const unsigned char kat1233_persstr[] = {
+ 0xf3, 0x49, 0xed, 0x3b, 0x77, 0x91, 0x84, 0xb8, 0x04, 0x8f, 0x83, 0x3e,
+ 0x79, 0x75, 0x15, 0x74, 0xc4, 0x85, 0xde, 0x0b, 0x8f, 0x6e, 0xc7, 0x3b,
+ 0xf0, 0x8b, 0x3e, 0xa4, 0xb8, 0x2e, 0xee, 0xc4, 0xe7, 0x36, 0xce, 0x5a,
+ 0x80, 0x93, 0xf9, 0x6b, 0x4d, 0x7c, 0x7c, 0xe8, 0x0f, 0x5c, 0xf6, 0x06,
+};
+static const unsigned char kat1233_addin0[] = {0};
+static const unsigned char kat1233_addin1[] = {0};
+static const unsigned char kat1233_retbits[] = {
+ 0x84, 0x7f, 0x61, 0x14, 0x8d, 0xaa, 0x5d, 0x82, 0x90, 0xda, 0xe7, 0xf7,
+ 0x29, 0x1b, 0xed, 0x58, 0xa1, 0xa4, 0xa7, 0x62, 0xc8, 0x1d, 0x73, 0xea,
+ 0xbc, 0xa9, 0x15, 0x42, 0xa5, 0xae, 0x22, 0x00, 0xe1, 0x8a, 0xfc, 0x93,
+ 0x97, 0xa1, 0x40, 0x19, 0x56, 0x92, 0x68, 0x26, 0xf6, 0x5d, 0xa3, 0x47,
+ 0x0b, 0x40, 0xfa, 0x91, 0x47, 0x84, 0x2b, 0xb4, 0x9d, 0x4e, 0x0d, 0x83,
+ 0xbf, 0x77, 0xcd, 0x31,
+};
+static const struct drbg_kat_no_reseed kat1233_t = {
+ 2, kat1233_entropyin, kat1233_nonce, kat1233_persstr,
+ kat1233_addin0, kat1233_addin1, kat1233_retbits
+};
+static const struct drbg_kat kat1233 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1233_t
+};
+
+static const unsigned char kat1234_entropyin[] = {
+ 0x8a, 0xb4, 0xfb, 0x1b, 0xa8, 0x3e, 0x1e, 0x4e, 0x7f, 0x8a, 0xda, 0x84,
+ 0x75, 0xbf, 0xa3, 0x26, 0x31, 0x5d, 0xed, 0x59, 0x6e, 0x21, 0xab, 0x80,
+ 0x4a, 0x90, 0xd5, 0x0b, 0x23, 0x55, 0xd4, 0xb9, 0x6c, 0x8d, 0x37, 0xee,
+ 0x06, 0x28, 0xf8, 0xf2, 0xc2, 0xa0, 0x24, 0x52, 0x55, 0xa0, 0x4b, 0xc5,
+};
+static const unsigned char kat1234_nonce[] = {0};
+static const unsigned char kat1234_persstr[] = {
+ 0xb8, 0x38, 0xdd, 0xdb, 0xbd, 0x18, 0xf3, 0x7c, 0x35, 0x2d, 0xf3, 0x01,
+ 0xa0, 0x79, 0x86, 0xfb, 0x4c, 0xce, 0x42, 0xd8, 0xf9, 0x14, 0x54, 0x7f,
+ 0x49, 0xdb, 0x31, 0x72, 0x1a, 0x8b, 0xf4, 0xa4, 0xd4, 0x52, 0x56, 0xf1,
+ 0xa4, 0x04, 0x99, 0x4d, 0x30, 0x88, 0xba, 0x09, 0x5a, 0xd8, 0x8c, 0x92,
+};
+static const unsigned char kat1234_addin0[] = {0};
+static const unsigned char kat1234_addin1[] = {0};
+static const unsigned char kat1234_retbits[] = {
+ 0x0d, 0x55, 0xde, 0xfb, 0xb1, 0x13, 0x8e, 0xe3, 0x35, 0x57, 0xc7, 0xf9,
+ 0x25, 0x04, 0xd0, 0xcd, 0x32, 0x51, 0x40, 0xc0, 0x88, 0x03, 0x50, 0x44,
+ 0xb3, 0xfb, 0x1c, 0x2f, 0x64, 0x69, 0xd8, 0x50, 0x5e, 0x97, 0xe5, 0x1d,
+ 0x0d, 0xc9, 0x77, 0x98, 0xd5, 0x5b, 0x35, 0xf5, 0xb7, 0x7e, 0x8a, 0xd2,
+ 0x4d, 0xd4, 0x2b, 0xb9, 0xd7, 0x6f, 0x9d, 0x10, 0x22, 0x7a, 0xe4, 0xf0,
+ 0x5d, 0x09, 0xa0, 0x10,
+};
+static const struct drbg_kat_no_reseed kat1234_t = {
+ 3, kat1234_entropyin, kat1234_nonce, kat1234_persstr,
+ kat1234_addin0, kat1234_addin1, kat1234_retbits
+};
+static const struct drbg_kat kat1234 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1234_t
+};
+
+static const unsigned char kat1235_entropyin[] = {
+ 0x29, 0x71, 0x37, 0xef, 0x2d, 0x57, 0x04, 0xec, 0x08, 0xc8, 0xf6, 0x45,
+ 0x02, 0xaa, 0xdb, 0x69, 0x20, 0x02, 0x70, 0x89, 0xe7, 0x10, 0xb3, 0xde,
+ 0x31, 0x74, 0xb4, 0xaa, 0xf7, 0x56, 0xb7, 0xa0, 0xb1, 0x08, 0x71, 0x95,
+ 0xc7, 0x14, 0x28, 0xf3, 0x41, 0x12, 0x73, 0x0d, 0x10, 0xd3, 0x15, 0x6a,
+};
+static const unsigned char kat1235_nonce[] = {0};
+static const unsigned char kat1235_persstr[] = {
+ 0xe4, 0x70, 0x98, 0x7f, 0x17, 0x99, 0xcc, 0xae, 0xc5, 0xd2, 0xe7, 0x3b,
+ 0x0c, 0x2d, 0xf2, 0x60, 0xd1, 0xc1, 0x9f, 0xf0, 0x75, 0xbb, 0x97, 0xa6,
+ 0x5c, 0xcb, 0x8c, 0xd7, 0xdc, 0x94, 0x63, 0x7c, 0xa7, 0xa9, 0xf4, 0x69,
+ 0x48, 0xaf, 0xc6, 0xcb, 0xb5, 0xe4, 0x50, 0x94, 0x64, 0x68, 0xd7, 0x9d,
+};
+static const unsigned char kat1235_addin0[] = {0};
+static const unsigned char kat1235_addin1[] = {0};
+static const unsigned char kat1235_retbits[] = {
+ 0x55, 0x74, 0x16, 0x00, 0x3e, 0x92, 0x6f, 0xb5, 0xfb, 0xae, 0xf5, 0x0b,
+ 0xd4, 0x8c, 0x26, 0x5f, 0x74, 0xbb, 0x85, 0xa2, 0x95, 0x02, 0xfd, 0x01,
+ 0x53, 0x24, 0x0b, 0x88, 0xee, 0x5b, 0x95, 0xba, 0xdc, 0xe5, 0x81, 0x3c,
+ 0x2a, 0xb2, 0x6d, 0xee, 0xb3, 0xa5, 0xbb, 0x9d, 0x9f, 0x01, 0x85, 0x22,
+ 0x23, 0x86, 0x4b, 0x55, 0x26, 0x62, 0x10, 0xa4, 0xbe, 0x24, 0xe4, 0xe9,
+ 0xc0, 0x2e, 0xf3, 0x2b,
+};
+static const struct drbg_kat_no_reseed kat1235_t = {
+ 4, kat1235_entropyin, kat1235_nonce, kat1235_persstr,
+ kat1235_addin0, kat1235_addin1, kat1235_retbits
+};
+static const struct drbg_kat kat1235 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1235_t
+};
+
+static const unsigned char kat1236_entropyin[] = {
+ 0x2c, 0x3a, 0x24, 0x01, 0x3a, 0x7c, 0x8b, 0x64, 0x23, 0x85, 0x07, 0xf4,
+ 0x51, 0x27, 0xdd, 0xab, 0xf6, 0x38, 0xdd, 0x69, 0xc8, 0x9f, 0x26, 0x8b,
+ 0xb4, 0x1f, 0x20, 0xf6, 0xed, 0xbf, 0x14, 0x15, 0x74, 0x88, 0x07, 0x2c,
+ 0x17, 0x1a, 0x1c, 0x99, 0xe7, 0xe0, 0x5f, 0xd5, 0x15, 0x41, 0xdf, 0x31,
+};
+static const unsigned char kat1236_nonce[] = {0};
+static const unsigned char kat1236_persstr[] = {
+ 0x88, 0x69, 0x2b, 0xbe, 0xde, 0xc9, 0xfb, 0x0f, 0xa2, 0xbd, 0x85, 0x73,
+ 0x41, 0x32, 0x8a, 0x0e, 0xea, 0x7a, 0xf1, 0x84, 0xc7, 0x99, 0x90, 0xe0,
+ 0x71, 0x4d, 0x41, 0xd8, 0x4a, 0x11, 0x97, 0x15, 0x53, 0x36, 0xf8, 0x92,
+ 0x43, 0xfa, 0xb6, 0xa3, 0x0b, 0xc9, 0xe3, 0x4a, 0xca, 0x44, 0x6a, 0x6a,
+};
+static const unsigned char kat1236_addin0[] = {0};
+static const unsigned char kat1236_addin1[] = {0};
+static const unsigned char kat1236_retbits[] = {
+ 0xe9, 0x57, 0xb7, 0x17, 0x17, 0x79, 0xc4, 0x69, 0x9f, 0xf4, 0xc3, 0xb7,
+ 0x42, 0x74, 0xc2, 0x85, 0x26, 0x10, 0x69, 0x46, 0xbe, 0x77, 0xa3, 0x2f,
+ 0xe6, 0x96, 0xef, 0x41, 0xaa, 0x89, 0x73, 0x50, 0x78, 0x21, 0x5a, 0xab,
+ 0x20, 0x18, 0x19, 0x09, 0x9d, 0x61, 0x0f, 0xd5, 0x68, 0x0b, 0x51, 0x98,
+ 0x2e, 0xe8, 0x32, 0xdf, 0x56, 0x1a, 0xe9, 0x7c, 0xca, 0x25, 0x64, 0xf9,
+ 0x59, 0x5b, 0x4c, 0x4b,
+};
+static const struct drbg_kat_no_reseed kat1236_t = {
+ 5, kat1236_entropyin, kat1236_nonce, kat1236_persstr,
+ kat1236_addin0, kat1236_addin1, kat1236_retbits
+};
+static const struct drbg_kat kat1236 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1236_t
+};
+
+static const unsigned char kat1237_entropyin[] = {
+ 0x25, 0x58, 0x70, 0x4b, 0xe3, 0x2a, 0x8d, 0xf4, 0x33, 0xd8, 0x76, 0x8c,
+ 0xbd, 0x55, 0x74, 0xc2, 0x4d, 0xd0, 0x9d, 0xe3, 0x15, 0x64, 0xb9, 0xa0,
+ 0xf4, 0x49, 0x5f, 0xc1, 0xee, 0x55, 0x1e, 0x44, 0x8d, 0xf4, 0xfe, 0x8b,
+ 0x14, 0x59, 0xd6, 0xb2, 0xb6, 0x14, 0x4e, 0x1f, 0x4a, 0x10, 0x90, 0xcf,
+};
+static const unsigned char kat1237_nonce[] = {0};
+static const unsigned char kat1237_persstr[] = {
+ 0x44, 0x2c, 0x2e, 0x1d, 0x96, 0xfe, 0x08, 0xd8, 0x90, 0x54, 0xb6, 0x3a,
+ 0x05, 0xb7, 0x12, 0x2f, 0xf7, 0x93, 0x6f, 0x83, 0x7f, 0x4a, 0xc9, 0x5d,
+ 0x8d, 0xc3, 0xa1, 0xac, 0xa3, 0xe3, 0x68, 0x0b, 0x56, 0xab, 0xb0, 0xe0,
+ 0x22, 0xfd, 0x0b, 0xe9, 0xd0, 0xc1, 0x1f, 0x5a, 0xcd, 0xfa, 0xa8, 0xb7,
+};
+static const unsigned char kat1237_addin0[] = {0};
+static const unsigned char kat1237_addin1[] = {0};
+static const unsigned char kat1237_retbits[] = {
+ 0xb7, 0xf5, 0xd4, 0x86, 0x2b, 0x47, 0x41, 0x99, 0x74, 0xee, 0x09, 0xa2,
+ 0x2c, 0x1c, 0x5e, 0x0e, 0xa5, 0xb0, 0xbf, 0x1f, 0x2e, 0x12, 0x92, 0x32,
+ 0x1e, 0x86, 0x4d, 0x9d, 0x2e, 0xdf, 0x3e, 0x36, 0x71, 0x2d, 0xa8, 0x9b,
+ 0xa4, 0x55, 0x7c, 0xde, 0xdf, 0x03, 0xc6, 0xa3, 0x96, 0xbc, 0x3b, 0x84,
+ 0xc4, 0xa6, 0xe6, 0x64, 0xd6, 0xcb, 0x8d, 0x94, 0xd8, 0x61, 0xfb, 0xe4,
+ 0x72, 0xf2, 0xee, 0x08,
+};
+static const struct drbg_kat_no_reseed kat1237_t = {
+ 6, kat1237_entropyin, kat1237_nonce, kat1237_persstr,
+ kat1237_addin0, kat1237_addin1, kat1237_retbits
+};
+static const struct drbg_kat kat1237 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1237_t
+};
+
+static const unsigned char kat1238_entropyin[] = {
+ 0x04, 0xd8, 0xac, 0xa2, 0x54, 0x24, 0xaf, 0x21, 0xb3, 0xe4, 0x44, 0x96,
+ 0x38, 0xd3, 0x1e, 0x0d, 0x80, 0xa3, 0xee, 0x45, 0x72, 0x78, 0x8c, 0xa8,
+ 0x66, 0x40, 0xf9, 0xb8, 0x7e, 0x4e, 0x07, 0xd9, 0xf7, 0x55, 0xfc, 0x2e,
+ 0x66, 0x6c, 0x59, 0xb0, 0xa9, 0x5f, 0xa1, 0xee, 0x7d, 0xc4, 0x7e, 0xde,
+};
+static const unsigned char kat1238_nonce[] = {0};
+static const unsigned char kat1238_persstr[] = {
+ 0x0e, 0xa4, 0x21, 0x03, 0x96, 0xf9, 0x86, 0x12, 0x26, 0x1f, 0x80, 0x77,
+ 0x7d, 0x3a, 0xd5, 0x16, 0x6f, 0x7b, 0x60, 0xc0, 0xbf, 0x82, 0x1f, 0xd1,
+ 0x05, 0xeb, 0xd1, 0x61, 0xef, 0x1c, 0x1c, 0x5d, 0xb9, 0x11, 0xbc, 0x59,
+ 0xbf, 0x29, 0x44, 0x1f, 0x13, 0x22, 0x8e, 0x80, 0x0a, 0xd1, 0x09, 0x9d,
+};
+static const unsigned char kat1238_addin0[] = {0};
+static const unsigned char kat1238_addin1[] = {0};
+static const unsigned char kat1238_retbits[] = {
+ 0xc9, 0x65, 0xc6, 0x21, 0xa3, 0xab, 0x4b, 0x37, 0x58, 0x54, 0xd4, 0xc2,
+ 0xd5, 0x2f, 0x28, 0xde, 0xbc, 0x07, 0xf7, 0xcf, 0xb7, 0x60, 0x04, 0x89,
+ 0xeb, 0xd9, 0xc7, 0xb6, 0x4b, 0x42, 0x75, 0x57, 0x74, 0x74, 0xbe, 0x07,
+ 0x09, 0x50, 0xfc, 0xa5, 0x62, 0x8f, 0x12, 0x8a, 0x8d, 0xdd, 0xd9, 0x24,
+ 0x0a, 0x43, 0x53, 0x73, 0x95, 0x1d, 0x9a, 0x62, 0x52, 0xb5, 0x20, 0x23,
+ 0x01, 0x0f, 0x6b, 0xdb,
+};
+static const struct drbg_kat_no_reseed kat1238_t = {
+ 7, kat1238_entropyin, kat1238_nonce, kat1238_persstr,
+ kat1238_addin0, kat1238_addin1, kat1238_retbits
+};
+static const struct drbg_kat kat1238 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1238_t
+};
+
+static const unsigned char kat1239_entropyin[] = {
+ 0xa0, 0xa5, 0x1c, 0x6e, 0x80, 0x11, 0xf2, 0x6d, 0xb5, 0x35, 0x33, 0xe6,
+ 0xbe, 0x87, 0x58, 0xdd, 0x7c, 0xd3, 0xc6, 0xcd, 0x00, 0xce, 0xb4, 0xf4,
+ 0x29, 0xac, 0xd4, 0x0b, 0x19, 0x3b, 0xeb, 0x18, 0x89, 0x13, 0x66, 0x18,
+ 0xc7, 0x82, 0x6a, 0xcd, 0x0b, 0x7e, 0xd1, 0x0e, 0xef, 0x05, 0x51, 0xe5,
+};
+static const unsigned char kat1239_nonce[] = {0};
+static const unsigned char kat1239_persstr[] = {
+ 0x10, 0x2c, 0xd6, 0xed, 0x39, 0xce, 0x04, 0x8b, 0x3c, 0xac, 0x4d, 0x53,
+ 0x59, 0x89, 0xbe, 0xf8, 0xd4, 0xb5, 0x13, 0x11, 0x94, 0x8c, 0x86, 0xce,
+ 0xa4, 0x21, 0xe2, 0x68, 0xd3, 0x6b, 0xdb, 0x03, 0xba, 0x12, 0x29, 0x02,
+ 0x60, 0x81, 0x78, 0x3f, 0x8c, 0x05, 0xe2, 0xe7, 0x3c, 0xdd, 0x3e, 0x72,
+};
+static const unsigned char kat1239_addin0[] = {0};
+static const unsigned char kat1239_addin1[] = {0};
+static const unsigned char kat1239_retbits[] = {
+ 0xb5, 0xd4, 0x4c, 0xf2, 0x19, 0xe2, 0x6f, 0xc3, 0x14, 0x72, 0x86, 0x95,
+ 0xcf, 0x08, 0x31, 0x3c, 0x2c, 0xe4, 0xd0, 0x5c, 0x9c, 0xf7, 0xd4, 0x46,
+ 0xc5, 0x07, 0x55, 0x0b, 0x46, 0x2c, 0x5d, 0x31, 0x3b, 0x6c, 0xeb, 0x27,
+ 0x54, 0xe2, 0x57, 0x0d, 0x37, 0x53, 0x8d, 0xf9, 0xbe, 0x45, 0xd7, 0x1f,
+ 0x2c, 0xa9, 0xc8, 0xe2, 0x4b, 0x80, 0x75, 0xfe, 0x6c, 0x1a, 0x44, 0xce,
+ 0xed, 0xe8, 0x4a, 0x5f,
+};
+static const struct drbg_kat_no_reseed kat1239_t = {
+ 8, kat1239_entropyin, kat1239_nonce, kat1239_persstr,
+ kat1239_addin0, kat1239_addin1, kat1239_retbits
+};
+static const struct drbg_kat kat1239 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1239_t
+};
+
+static const unsigned char kat1240_entropyin[] = {
+ 0x13, 0xe7, 0xf8, 0x0b, 0xb8, 0x3f, 0x94, 0x45, 0x3b, 0xb5, 0x85, 0x90,
+ 0x79, 0x20, 0x6d, 0x7c, 0x76, 0x44, 0x14, 0x88, 0xa3, 0x04, 0x4f, 0x20,
+ 0xb0, 0xee, 0xdc, 0x5d, 0x06, 0xd3, 0xd8, 0xf8, 0xa6, 0x33, 0xe8, 0x0c,
+ 0xdd, 0x61, 0x04, 0xd8, 0xae, 0x51, 0x54, 0xce, 0xce, 0x90, 0x84, 0x75,
+};
+static const unsigned char kat1240_nonce[] = {0};
+static const unsigned char kat1240_persstr[] = {
+ 0x0a, 0xbf, 0x50, 0x1a, 0x53, 0x71, 0x11, 0xf9, 0x92, 0xaf, 0x58, 0xa1,
+ 0x10, 0x74, 0x90, 0x67, 0xb2, 0xb4, 0x76, 0x5d, 0x37, 0xf0, 0xfe, 0x95,
+ 0x1c, 0xfa, 0x6e, 0xda, 0x03, 0xd4, 0x10, 0x02, 0x7d, 0xf0, 0x34, 0xe3,
+ 0x73, 0x98, 0xdf, 0xb6, 0x4d, 0x50, 0xda, 0x51, 0x5d, 0x38, 0x68, 0xa7,
+};
+static const unsigned char kat1240_addin0[] = {0};
+static const unsigned char kat1240_addin1[] = {0};
+static const unsigned char kat1240_retbits[] = {
+ 0xb4, 0xb4, 0x1a, 0xfe, 0x5a, 0xcd, 0x66, 0x6b, 0xe6, 0x7f, 0x9d, 0xc4,
+ 0x52, 0x09, 0xf6, 0x2b, 0x0a, 0x45, 0x0a, 0x16, 0xf3, 0x9e, 0xe2, 0xfb,
+ 0x28, 0xec, 0x36, 0x28, 0xb8, 0x09, 0xf7, 0x07, 0xf0, 0x9e, 0x5e, 0x6d,
+ 0x7b, 0xad, 0xc1, 0xa5, 0xe7, 0xa2, 0xc5, 0xae, 0x8b, 0x8f, 0xc5, 0x75,
+ 0x88, 0xef, 0x11, 0x0a, 0xed, 0x15, 0x7c, 0x8d, 0x84, 0xc8, 0xb4, 0xbe,
+ 0xdb, 0x43, 0x54, 0x51,
+};
+static const struct drbg_kat_no_reseed kat1240_t = {
+ 9, kat1240_entropyin, kat1240_nonce, kat1240_persstr,
+ kat1240_addin0, kat1240_addin1, kat1240_retbits
+};
+static const struct drbg_kat kat1240 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1240_t
+};
+
+static const unsigned char kat1241_entropyin[] = {
+ 0x59, 0x7a, 0x5c, 0xa7, 0xe1, 0xde, 0xb5, 0x43, 0x3e, 0x0a, 0x7c, 0x6b,
+ 0x18, 0x85, 0x30, 0xe2, 0x16, 0x6f, 0x3c, 0x8c, 0x16, 0xcc, 0xfc, 0x75,
+ 0x78, 0xc8, 0xd9, 0x93, 0x1d, 0x70, 0xb4, 0xa3, 0x33, 0xa5, 0x36, 0xab,
+ 0xdb, 0x07, 0x25, 0xb6, 0xc8, 0x6f, 0xe3, 0xd2, 0xb2, 0x97, 0x4e, 0x17,
+};
+static const unsigned char kat1241_nonce[] = {0};
+static const unsigned char kat1241_persstr[] = {
+ 0x80, 0xc2, 0x28, 0x3d, 0xf1, 0x56, 0x19, 0x74, 0x50, 0x68, 0x72, 0xff,
+ 0xc3, 0x3b, 0xc7, 0x32, 0x0a, 0xe2, 0xac, 0x2d, 0x31, 0xe3, 0x2d, 0x9c,
+ 0x04, 0xbb, 0x75, 0xdd, 0x8a, 0x8c, 0xfa, 0x4c, 0x89, 0x59, 0x7c, 0x90,
+ 0x78, 0x62, 0x2e, 0xb4, 0xd2, 0x90, 0x04, 0x66, 0x62, 0x5c, 0x0c, 0x9e,
+};
+static const unsigned char kat1241_addin0[] = {0};
+static const unsigned char kat1241_addin1[] = {0};
+static const unsigned char kat1241_retbits[] = {
+ 0xc1, 0xb9, 0x22, 0x6e, 0x77, 0x18, 0xad, 0xdc, 0xdd, 0xdb, 0xa2, 0x1d,
+ 0x7b, 0x55, 0x39, 0xb4, 0x46, 0x47, 0x75, 0x38, 0x80, 0x34, 0xb5, 0xff,
+ 0x17, 0xf8, 0xb5, 0x12, 0xc6, 0x57, 0x25, 0xce, 0xda, 0x4a, 0x20, 0xff,
+ 0x94, 0x35, 0xa3, 0xaf, 0x06, 0x20, 0x82, 0xbc, 0xfa, 0xf2, 0x9e, 0xc1,
+ 0xab, 0x8f, 0x42, 0xc7, 0x28, 0x56, 0xef, 0x59, 0xd8, 0x81, 0xdf, 0x85,
+ 0xd4, 0x65, 0xc1, 0x4a,
+};
+static const struct drbg_kat_no_reseed kat1241_t = {
+ 10, kat1241_entropyin, kat1241_nonce, kat1241_persstr,
+ kat1241_addin0, kat1241_addin1, kat1241_retbits
+};
+static const struct drbg_kat kat1241 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1241_t
+};
+
+static const unsigned char kat1242_entropyin[] = {
+ 0x32, 0x75, 0x82, 0x41, 0xcc, 0x57, 0x2b, 0xb8, 0x82, 0x19, 0xe9, 0xc8,
+ 0x28, 0x0c, 0x3d, 0x99, 0xfd, 0xae, 0x0c, 0xd8, 0xe8, 0x78, 0xf8, 0xc0,
+ 0xcd, 0xf1, 0x12, 0xf1, 0x7c, 0xcc, 0xb0, 0x12, 0x1f, 0xbf, 0xb0, 0x85,
+ 0x9d, 0x27, 0xa0, 0x73, 0x4d, 0xa2, 0xe8, 0xc6, 0xde, 0x4c, 0xd8, 0x0a,
+};
+static const unsigned char kat1242_nonce[] = {0};
+static const unsigned char kat1242_persstr[] = {
+ 0x62, 0x8c, 0xb6, 0x71, 0x76, 0xe1, 0x87, 0xed, 0x10, 0x1f, 0x9f, 0x72,
+ 0xa5, 0x23, 0x68, 0xc2, 0x47, 0x5b, 0x38, 0xe6, 0x92, 0x29, 0x72, 0x21,
+ 0xc2, 0x4c, 0xe9, 0x5f, 0x28, 0x01, 0xfa, 0xb1, 0xc2, 0x9a, 0x40, 0x85,
+ 0x66, 0x4b, 0xe4, 0xf7, 0x51, 0xb5, 0xa6, 0x4d, 0x78, 0x7f, 0xce, 0x29,
+};
+static const unsigned char kat1242_addin0[] = {0};
+static const unsigned char kat1242_addin1[] = {0};
+static const unsigned char kat1242_retbits[] = {
+ 0xf6, 0xff, 0x29, 0x50, 0x4d, 0xd7, 0xae, 0x63, 0xd6, 0x01, 0x6a, 0x62,
+ 0xd7, 0x7e, 0xd0, 0x14, 0x86, 0xd0, 0x22, 0xe1, 0x4e, 0x2b, 0x72, 0x81,
+ 0x95, 0x6a, 0xa2, 0xf9, 0xd5, 0x70, 0xda, 0x3a, 0x3e, 0xec, 0x8a, 0x74,
+ 0x45, 0x29, 0x56, 0x4f, 0x55, 0x60, 0x89, 0x05, 0xb0, 0x9a, 0x08, 0xfa,
+ 0x78, 0x1c, 0xda, 0x39, 0x83, 0x62, 0x07, 0xf6, 0xf5, 0xc1, 0x65, 0xd2,
+ 0x71, 0x53, 0xfc, 0xdd,
+};
+static const struct drbg_kat_no_reseed kat1242_t = {
+ 11, kat1242_entropyin, kat1242_nonce, kat1242_persstr,
+ kat1242_addin0, kat1242_addin1, kat1242_retbits
+};
+static const struct drbg_kat kat1242 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1242_t
+};
+
+static const unsigned char kat1243_entropyin[] = {
+ 0x10, 0x1f, 0x19, 0xed, 0x66, 0x58, 0x74, 0x16, 0x17, 0x9b, 0xaa, 0x90,
+ 0x1d, 0x8b, 0x88, 0x8b, 0x75, 0x77, 0x0f, 0xfe, 0x67, 0x91, 0x17, 0xf1,
+ 0x0f, 0x25, 0xb4, 0x6f, 0x65, 0x9a, 0x57, 0x0d, 0xdb, 0xde, 0xf0, 0x85,
+ 0x57, 0x8d, 0xed, 0x5e, 0x0d, 0x74, 0xfa, 0xda, 0x68, 0x37, 0xfb, 0x5f,
+};
+static const unsigned char kat1243_nonce[] = {0};
+static const unsigned char kat1243_persstr[] = {
+ 0xff, 0xeb, 0xb3, 0xda, 0x75, 0x65, 0x94, 0x6e, 0xd3, 0x8a, 0x4d, 0x5c,
+ 0x85, 0x0c, 0x06, 0x8f, 0x0c, 0xb1, 0x0f, 0x6c, 0xe5, 0x03, 0x44, 0x00,
+ 0x06, 0xf9, 0x72, 0xa3, 0x66, 0xdd, 0x61, 0xc3, 0xe9, 0xe1, 0xb0, 0x0c,
+ 0x65, 0x66, 0xba, 0xf8, 0xee, 0xbe, 0x0f, 0xc8, 0x68, 0xce, 0x36, 0x3d,
+};
+static const unsigned char kat1243_addin0[] = {0};
+static const unsigned char kat1243_addin1[] = {0};
+static const unsigned char kat1243_retbits[] = {
+ 0x7f, 0x61, 0x38, 0x44, 0xa6, 0xe1, 0x06, 0x36, 0xfb, 0x27, 0xd8, 0xb1,
+ 0x46, 0x25, 0x7d, 0x10, 0x93, 0x2c, 0x37, 0xc7, 0x61, 0x60, 0x99, 0x89,
+ 0x39, 0x28, 0xd2, 0xd4, 0x58, 0xf2, 0x94, 0xae, 0x16, 0x5d, 0xef, 0x19,
+ 0xf7, 0x17, 0x5e, 0x79, 0x8c, 0x0d, 0xce, 0xd4, 0xab, 0x7d, 0x96, 0xde,
+ 0xf8, 0x8c, 0xd6, 0x53, 0xb3, 0x26, 0x4f, 0x41, 0xe7, 0x56, 0xa0, 0x43,
+ 0xaf, 0x6f, 0x39, 0xc2,
+};
+static const struct drbg_kat_no_reseed kat1243_t = {
+ 12, kat1243_entropyin, kat1243_nonce, kat1243_persstr,
+ kat1243_addin0, kat1243_addin1, kat1243_retbits
+};
+static const struct drbg_kat kat1243 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1243_t
+};
+
+static const unsigned char kat1244_entropyin[] = {
+ 0x22, 0x48, 0x09, 0xc4, 0x3b, 0xcd, 0xb4, 0x6c, 0x52, 0xfe, 0x30, 0x98,
+ 0xcc, 0x2d, 0x88, 0xd0, 0xd2, 0x6c, 0x34, 0xe7, 0x6e, 0x58, 0xf9, 0x70,
+ 0x47, 0x02, 0x7a, 0xdf, 0xe9, 0x3f, 0x8b, 0xfa, 0x01, 0xc5, 0x5d, 0x5b,
+ 0x3c, 0x26, 0x7b, 0xc6, 0x02, 0x89, 0xec, 0x82, 0xd2, 0xfa, 0x21, 0xbc,
+};
+static const unsigned char kat1244_nonce[] = {0};
+static const unsigned char kat1244_persstr[] = {
+ 0x1b, 0xde, 0x6b, 0xbd, 0xcc, 0xe0, 0x20, 0xec, 0xe3, 0x7f, 0xe2, 0x93,
+ 0x1a, 0x70, 0xa8, 0x8c, 0x5c, 0x36, 0xb8, 0xd2, 0x9c, 0xb0, 0x75, 0x90,
+ 0xc9, 0xdf, 0xd2, 0x3f, 0x8d, 0xa8, 0x67, 0x76, 0x46, 0x04, 0x6d, 0xfe,
+ 0xef, 0xeb, 0x17, 0xb4, 0x5a, 0x09, 0xe6, 0x21, 0xe2, 0x63, 0xd4, 0x06,
+};
+static const unsigned char kat1244_addin0[] = {0};
+static const unsigned char kat1244_addin1[] = {0};
+static const unsigned char kat1244_retbits[] = {
+ 0x48, 0xa5, 0x1f, 0xb3, 0xc3, 0x5b, 0x31, 0x30, 0x58, 0x98, 0x7b, 0xc1,
+ 0x0f, 0x67, 0x23, 0xae, 0x5d, 0xf0, 0x51, 0xe1, 0x80, 0xbf, 0x9b, 0x5b,
+ 0x0f, 0xd8, 0xb4, 0xc4, 0xf1, 0x2e, 0xe4, 0x57, 0xf4, 0xd1, 0x76, 0x81,
+ 0x38, 0x18, 0x65, 0x79, 0x7b, 0x2f, 0x76, 0x1f, 0xb0, 0x5f, 0x12, 0xe6,
+ 0xa9, 0xeb, 0x18, 0xb1, 0xf9, 0x5d, 0x63, 0x9a, 0x4a, 0xf5, 0xb1, 0x61,
+ 0x31, 0x68, 0xc1, 0xfe,
+};
+static const struct drbg_kat_no_reseed kat1244_t = {
+ 13, kat1244_entropyin, kat1244_nonce, kat1244_persstr,
+ kat1244_addin0, kat1244_addin1, kat1244_retbits
+};
+static const struct drbg_kat kat1244 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1244_t
+};
+
+static const unsigned char kat1245_entropyin[] = {
+ 0x4e, 0x37, 0xee, 0x86, 0x49, 0xa8, 0x6d, 0xd0, 0xba, 0xb8, 0x78, 0x5a,
+ 0x1e, 0x3a, 0xcb, 0xd2, 0xc3, 0xa5, 0x7c, 0xa3, 0x46, 0xd0, 0xe3, 0x14,
+ 0x76, 0x49, 0x0e, 0x49, 0xb5, 0x88, 0xb9, 0x28, 0x23, 0x2d, 0xfa, 0x50,
+ 0xcb, 0x1d, 0x96, 0x07, 0x8f, 0x70, 0x68, 0x56, 0x1b, 0x97, 0xe2, 0xf1,
+};
+static const unsigned char kat1245_nonce[] = {0};
+static const unsigned char kat1245_persstr[] = {
+ 0x61, 0x33, 0x4c, 0xdc, 0x87, 0x35, 0x33, 0x29, 0x25, 0x22, 0x1a, 0x63,
+ 0x18, 0x98, 0x74, 0x03, 0xa4, 0xc1, 0xc9, 0x36, 0xc0, 0xa8, 0x06, 0x6c,
+ 0xbf, 0xbb, 0x1a, 0x84, 0x51, 0x0b, 0xac, 0x2b, 0xb3, 0x7e, 0xa5, 0x2d,
+ 0x6b, 0xa9, 0xf4, 0xe1, 0xa9, 0x32, 0x69, 0x47, 0x3f, 0x45, 0x66, 0xcb,
+};
+static const unsigned char kat1245_addin0[] = {0};
+static const unsigned char kat1245_addin1[] = {0};
+static const unsigned char kat1245_retbits[] = {
+ 0x8b, 0xf9, 0xc2, 0x63, 0xc1, 0x2a, 0x19, 0xc5, 0x05, 0x25, 0xfb, 0x70,
+ 0xcf, 0xe5, 0x69, 0x80, 0xb2, 0x69, 0x57, 0xe5, 0xc2, 0x95, 0xf7, 0x54,
+ 0x62, 0x44, 0xce, 0x6b, 0x7b, 0x1b, 0x90, 0xb2, 0x4c, 0xe3, 0xcf, 0xfc,
+ 0x55, 0x36, 0xe9, 0x6d, 0x97, 0x3b, 0x19, 0x2a, 0x77, 0xf8, 0x78, 0xeb,
+ 0x5e, 0x69, 0x87, 0xe1, 0x05, 0x54, 0x75, 0xa0, 0xab, 0xd0, 0x03, 0x12,
+ 0xd7, 0xa6, 0x5d, 0xd3,
+};
+static const struct drbg_kat_no_reseed kat1245_t = {
+ 14, kat1245_entropyin, kat1245_nonce, kat1245_persstr,
+ kat1245_addin0, kat1245_addin1, kat1245_retbits
+};
+static const struct drbg_kat kat1245 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1245_t
+};
+
+static const unsigned char kat1246_entropyin[] = {
+ 0x0d, 0xd4, 0xd8, 0x00, 0x62, 0xec, 0xc0, 0xf3, 0x59, 0xef, 0xbe, 0x77,
+ 0x23, 0x02, 0x0b, 0xe9, 0xb8, 0x8b, 0x55, 0x0f, 0xe7, 0x40, 0x88, 0x09,
+ 0x40, 0x69, 0xe7, 0x44, 0x28, 0x39, 0x58, 0x56, 0xf6, 0x3e, 0xed, 0x4f,
+ 0x5b, 0x0e, 0x7d, 0x1e, 0x00, 0x6f, 0x0e, 0xaf, 0xf7, 0x4f, 0x63, 0x8c,
+};
+static const unsigned char kat1246_nonce[] = {0};
+static const unsigned char kat1246_persstr[] = {
+ 0xd2, 0xaa, 0x2c, 0xcd, 0x4b, 0xc6, 0x53, 0x7e, 0x51, 0xf6, 0x55, 0x0a,
+ 0xb6, 0xd6, 0x29, 0x45, 0x47, 0xbe, 0xf3, 0xe9, 0x71, 0xa7, 0xf1, 0x28,
+ 0xe4, 0x43, 0x6f, 0x95, 0x7d, 0xe9, 0x98, 0x2c, 0x93, 0xee, 0x22, 0x11,
+ 0x0b, 0x0e, 0x40, 0xab, 0x33, 0xa7, 0xd3, 0xdf, 0xa2, 0x2f, 0x59, 0x9d,
+};
+static const unsigned char kat1246_addin0[] = {
+ 0x0b, 0x08, 0x1b, 0xab, 0x6c, 0x74, 0xd8, 0x6b, 0x4a, 0x01, 0x0e, 0x2d,
+ 0xed, 0x99, 0xd1, 0x4e, 0x0c, 0x98, 0x38, 0xf7, 0xc3, 0xd6, 0x9a, 0xfd,
+ 0x64, 0xf1, 0xb6, 0x63, 0x77, 0xd9, 0x5c, 0xdc, 0xb7, 0xf6, 0xec, 0x53,
+ 0x58, 0xe3, 0x51, 0x60, 0x34, 0xc3, 0x33, 0x9c, 0xed, 0x7e, 0x16, 0x38,
+};
+static const unsigned char kat1246_addin1[] = {
+ 0xca, 0x81, 0x8f, 0x93, 0x8a, 0xe0, 0xc7, 0xf4, 0xf5, 0x07, 0xe4, 0xcf,
+ 0xec, 0x10, 0xe7, 0xba, 0xf5, 0x1f, 0xe3, 0x4b, 0x89, 0xa5, 0x02, 0xf7,
+ 0x54, 0xd2, 0xd2, 0xbe, 0x73, 0x95, 0x12, 0x0f, 0xe1, 0xfb, 0x01, 0x3c,
+ 0x67, 0xac, 0x25, 0x00, 0xb3, 0xd1, 0x7b, 0x73, 0x5d, 0xa0, 0x9a, 0x6e,
+};
+static const unsigned char kat1246_retbits[] = {
+ 0x68, 0x08, 0x26, 0x8b, 0x13, 0xe2, 0x36, 0xf6, 0x42, 0xc0, 0x6d, 0xeb,
+ 0xa2, 0x49, 0x44, 0x96, 0xe7, 0x00, 0x3c, 0x93, 0x7e, 0xbf, 0x6f, 0x7c,
+ 0xb7, 0xc9, 0x21, 0x04, 0xea, 0x09, 0x0f, 0x18, 0x48, 0x4a, 0xa0, 0x75,
+ 0x56, 0x0d, 0x78, 0x44, 0xa0, 0x6e, 0xb5, 0x59, 0x94, 0x8c, 0x93, 0xb2,
+ 0x6a, 0xe4, 0x0f, 0x2d, 0xb9, 0x8e, 0xcb, 0x53, 0xad, 0x59, 0x3e, 0xb4,
+ 0xc7, 0x8f, 0x82, 0xb1,
+};
+static const struct drbg_kat_no_reseed kat1246_t = {
+ 0, kat1246_entropyin, kat1246_nonce, kat1246_persstr,
+ kat1246_addin0, kat1246_addin1, kat1246_retbits
+};
+static const struct drbg_kat kat1246 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1246_t
+};
+
+static const unsigned char kat1247_entropyin[] = {
+ 0xca, 0x0a, 0xb9, 0xb2, 0x2d, 0x0d, 0xf4, 0xe6, 0x80, 0xda, 0xa8, 0xdb,
+ 0xab, 0x56, 0x2c, 0x59, 0x4b, 0xd0, 0x79, 0xc3, 0x94, 0x64, 0x7a, 0xf3,
+ 0x9d, 0xc1, 0xc6, 0x16, 0xa6, 0xbd, 0x85, 0xc5, 0x8f, 0x2d, 0x52, 0xa0,
+ 0x2f, 0x4b, 0x02, 0x43, 0x5b, 0xbd, 0xe8, 0x0b, 0x33, 0xd4, 0x05, 0xed,
+};
+static const unsigned char kat1247_nonce[] = {0};
+static const unsigned char kat1247_persstr[] = {
+ 0x16, 0x95, 0xf8, 0x3e, 0xc7, 0xf4, 0xf1, 0x74, 0x2b, 0x7f, 0x13, 0xeb,
+ 0x62, 0xcb, 0xbf, 0x17, 0x80, 0x49, 0x65, 0xed, 0x0a, 0xcd, 0x3f, 0x0f,
+ 0xba, 0x0c, 0xaf, 0xc3, 0xcd, 0x55, 0xf3, 0x06, 0x80, 0x03, 0x39, 0xba,
+ 0xf2, 0x56, 0x7b, 0xb8, 0x4f, 0xc3, 0x7c, 0xa3, 0x0a, 0xe2, 0x20, 0x5d,
+};
+static const unsigned char kat1247_addin0[] = {
+ 0x6f, 0x88, 0xfa, 0xa9, 0x30, 0x4a, 0x91, 0x5b, 0x2b, 0x19, 0x88, 0xd4,
+ 0x08, 0x9b, 0xf0, 0xda, 0x10, 0xbf, 0x9f, 0x4d, 0xfa, 0x2f, 0xe3, 0xcc,
+ 0xb1, 0xcd, 0x21, 0x20, 0x2c, 0x06, 0x91, 0x9c, 0x14, 0x2d, 0x41, 0x32,
+ 0x4e, 0x51, 0xa5, 0xae, 0xfe, 0xef, 0xd0, 0x5a, 0x66, 0x4f, 0x70, 0x1b,
+};
+static const unsigned char kat1247_addin1[] = {
+ 0x13, 0x5e, 0xad, 0x8f, 0x09, 0x03, 0x44, 0xd1, 0xe9, 0x67, 0xe7, 0x20,
+ 0xcb, 0xd6, 0x75, 0x6d, 0x3b, 0x11, 0xe3, 0x90, 0xcf, 0x20, 0x78, 0xbc,
+ 0xfa, 0x53, 0x44, 0x94, 0x46, 0x85, 0xa7, 0x59, 0x0f, 0xaa, 0x52, 0x24,
+ 0x2a, 0x20, 0x7d, 0x0b, 0x9f, 0x33, 0xe2, 0xfc, 0x14, 0xc5, 0xa6, 0x1e,
+};
+static const unsigned char kat1247_retbits[] = {
+ 0x7f, 0x7e, 0x6f, 0x08, 0x97, 0x22, 0xa0, 0x6b, 0x74, 0x1b, 0x38, 0x5c,
+ 0xdf, 0xf7, 0x90, 0x2f, 0x04, 0xf2, 0xe7, 0x2d, 0xca, 0x7c, 0xbb, 0x64,
+ 0xd6, 0xa4, 0xf3, 0x73, 0xa9, 0xf6, 0x93, 0xec, 0x42, 0xff, 0xf7, 0x6d,
+ 0x11, 0x48, 0x8b, 0xa8, 0x6a, 0x3a, 0xcc, 0x03, 0x95, 0xc0, 0x2b, 0x73,
+ 0x01, 0x24, 0x9d, 0x02, 0x25, 0x7d, 0xa9, 0x4e, 0x60, 0xf8, 0xef, 0x9a,
+ 0x3d, 0x84, 0x43, 0x07,
+};
+static const struct drbg_kat_no_reseed kat1247_t = {
+ 1, kat1247_entropyin, kat1247_nonce, kat1247_persstr,
+ kat1247_addin0, kat1247_addin1, kat1247_retbits
+};
+static const struct drbg_kat kat1247 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1247_t
+};
+
+static const unsigned char kat1248_entropyin[] = {
+ 0x74, 0x57, 0x17, 0x89, 0xed, 0xf9, 0x21, 0x7a, 0x13, 0x5f, 0x61, 0x74,
+ 0x7b, 0x2a, 0x75, 0x6d, 0xc8, 0x31, 0x0e, 0xc0, 0xf4, 0x44, 0x35, 0xfa,
+ 0xda, 0xd5, 0x27, 0xb3, 0xd4, 0x3c, 0xe0, 0xa4, 0xf0, 0x36, 0x1b, 0xb7,
+ 0x5a, 0x90, 0x77, 0x44, 0xd3, 0xd9, 0x5f, 0x65, 0xb0, 0x42, 0x8b, 0xde,
+};
+static const unsigned char kat1248_nonce[] = {0};
+static const unsigned char kat1248_persstr[] = {
+ 0x4d, 0x12, 0x7c, 0x55, 0x96, 0xeb, 0x67, 0x23, 0x34, 0x32, 0x5d, 0xd5,
+ 0xbf, 0x2c, 0x6c, 0x25, 0x56, 0xd4, 0xea, 0x13, 0xb2, 0xcd, 0x26, 0x3e,
+ 0xa6, 0x0d, 0x74, 0xe8, 0xdc, 0xaf, 0xa6, 0xb1, 0x17, 0x00, 0xf9, 0xf4,
+ 0x78, 0x42, 0x89, 0x99, 0xf5, 0x76, 0x2e, 0x36, 0x5b, 0x19, 0x3c, 0x05,
+};
+static const unsigned char kat1248_addin0[] = {
+ 0xc5, 0x76, 0x7c, 0x7a, 0x29, 0xd0, 0xf4, 0x34, 0xca, 0x1a, 0x17, 0x30,
+ 0x84, 0xa0, 0x90, 0x86, 0x7b, 0xee, 0x9d, 0x18, 0x21, 0x5a, 0x79, 0xd3,
+ 0x37, 0x83, 0x5f, 0xaf, 0xd3, 0x08, 0xd1, 0x11, 0x6f, 0x1d, 0xcd, 0xd1,
+ 0xad, 0x5d, 0x80, 0xac, 0x18, 0xef, 0x15, 0xd6, 0x1b, 0x80, 0x0c, 0x35,
+};
+static const unsigned char kat1248_addin1[] = {
+ 0x5a, 0xd8, 0xa5, 0xbd, 0x2e, 0xe4, 0x60, 0x42, 0xba, 0x91, 0xd9, 0xac,
+ 0x9b, 0x91, 0x1e, 0x7a, 0x0a, 0x68, 0xeb, 0x25, 0x70, 0x46, 0x41, 0x5b,
+ 0x47, 0x1e, 0xcb, 0xeb, 0x05, 0xed, 0xd1, 0x6c, 0xc4, 0x5b, 0x03, 0x59,
+ 0x3d, 0xe9, 0x10, 0xb0, 0xa0, 0x46, 0xdc, 0x5c, 0x21, 0x3e, 0x62, 0x88,
+};
+static const unsigned char kat1248_retbits[] = {
+ 0xa0, 0xdf, 0x87, 0x1e, 0xfb, 0x02, 0xeb, 0xe3, 0xdb, 0x39, 0x2f, 0xca,
+ 0x41, 0x06, 0x05, 0x0a, 0x61, 0xa9, 0x3e, 0x3b, 0xce, 0xb4, 0x40, 0x5f,
+ 0xfa, 0x3b, 0x0e, 0x71, 0xd1, 0x4d, 0x5e, 0x33, 0x73, 0xc8, 0xf4, 0x9c,
+ 0x21, 0xf4, 0xc9, 0xb6, 0x6a, 0xb4, 0xdf, 0xb1, 0xa5, 0xc6, 0x6a, 0x58,
+ 0xf8, 0xc5, 0xbe, 0x9a, 0xc1, 0x78, 0x86, 0x02, 0x16, 0x9c, 0xbe, 0xad,
+ 0x2d, 0xbb, 0x18, 0xd8,
+};
+static const struct drbg_kat_no_reseed kat1248_t = {
+ 2, kat1248_entropyin, kat1248_nonce, kat1248_persstr,
+ kat1248_addin0, kat1248_addin1, kat1248_retbits
+};
+static const struct drbg_kat kat1248 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1248_t
+};
+
+static const unsigned char kat1249_entropyin[] = {
+ 0x55, 0x9f, 0xca, 0x54, 0xa1, 0xee, 0xdb, 0x1f, 0x5d, 0x36, 0x4a, 0x10,
+ 0x36, 0x40, 0x62, 0x04, 0x49, 0x04, 0xb3, 0x31, 0xa2, 0x09, 0xf0, 0xd4,
+ 0x17, 0x2d, 0xf8, 0x4b, 0x33, 0xab, 0xf7, 0x78, 0x94, 0xf4, 0xb9, 0x03,
+ 0xd9, 0xe2, 0xc1, 0xa4, 0x61, 0xad, 0xe1, 0x1a, 0xa6, 0x3d, 0xf9, 0xd7,
+};
+static const unsigned char kat1249_nonce[] = {0};
+static const unsigned char kat1249_persstr[] = {
+ 0xf5, 0x39, 0xda, 0x5e, 0x3c, 0x53, 0x5d, 0xb1, 0xe7, 0x88, 0xf2, 0x18,
+ 0x8e, 0x23, 0x8f, 0x2f, 0x1c, 0x76, 0xad, 0xda, 0x24, 0x36, 0x08, 0xf8,
+ 0xbc, 0x58, 0xd9, 0x90, 0x6f, 0xa9, 0xc6, 0x22, 0x18, 0xd0, 0x49, 0xae,
+ 0xfa, 0x1d, 0xdd, 0x0b, 0xd6, 0x93, 0x4d, 0x3f, 0x97, 0x72, 0xdd, 0x02,
+};
+static const unsigned char kat1249_addin0[] = {
+ 0xb1, 0x78, 0x31, 0x7d, 0xd4, 0x8f, 0x36, 0xfc, 0xa0, 0xe8, 0x05, 0x64,
+ 0x2f, 0x97, 0x87, 0xe7, 0xce, 0xb6, 0x4a, 0x92, 0xa0, 0x98, 0xf9, 0x2e,
+ 0x02, 0xab, 0x25, 0x47, 0x60, 0x59, 0xf6, 0x64, 0xa0, 0x32, 0x9c, 0x50,
+ 0x76, 0xa7, 0x43, 0x1e, 0x46, 0x0d, 0x3c, 0x7e, 0xb2, 0xdc, 0xc9, 0xc3,
+};
+static const unsigned char kat1249_addin1[] = {
+ 0xb6, 0x45, 0xf0, 0xdc, 0xe8, 0xeb, 0xe3, 0x1b, 0x7c, 0x05, 0x06, 0x1b,
+ 0xd5, 0x67, 0x41, 0x00, 0xe4, 0xff, 0xe6, 0x7c, 0xfa, 0x86, 0x43, 0x0a,
+ 0xa8, 0x00, 0x19, 0xdf, 0x00, 0x25, 0xda, 0xfd, 0x55, 0x87, 0x77, 0xb5,
+ 0xa1, 0xf7, 0x32, 0xaf, 0x6a, 0x27, 0xc2, 0x6c, 0xa6, 0x8b, 0xfc, 0x7c,
+};
+static const unsigned char kat1249_retbits[] = {
+ 0x7b, 0x9c, 0xb5, 0xc3, 0x8b, 0x07, 0x1e, 0x5c, 0x2c, 0x18, 0x95, 0x2d,
+ 0x80, 0x73, 0x19, 0x25, 0xc3, 0x26, 0x17, 0xc8, 0x0e, 0xb1, 0x37, 0x4e,
+ 0x42, 0xf9, 0xbd, 0xd7, 0x0b, 0xb6, 0x0c, 0x1d, 0x37, 0x81, 0xd0, 0xa3,
+ 0x58, 0x90, 0x09, 0x52, 0x8c, 0xaa, 0x11, 0x18, 0x8a, 0x50, 0x92, 0x46,
+ 0x23, 0xbc, 0xe3, 0xd1, 0x45, 0xb0, 0x14, 0xac, 0x64, 0xfd, 0x1d, 0x27,
+ 0xc9, 0x61, 0x1d, 0x33,
+};
+static const struct drbg_kat_no_reseed kat1249_t = {
+ 3, kat1249_entropyin, kat1249_nonce, kat1249_persstr,
+ kat1249_addin0, kat1249_addin1, kat1249_retbits
+};
+static const struct drbg_kat kat1249 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1249_t
+};
+
+static const unsigned char kat1250_entropyin[] = {
+ 0xe5, 0x84, 0x93, 0x2d, 0x66, 0x12, 0x68, 0x62, 0x5b, 0x51, 0xd1, 0x1c,
+ 0xf8, 0x59, 0xe8, 0x81, 0x53, 0x41, 0x8d, 0x15, 0x41, 0xfd, 0x72, 0x66,
+ 0xf2, 0x7e, 0xe1, 0x8e, 0x4c, 0x3c, 0xe3, 0xcc, 0xd6, 0x15, 0xf3, 0x21,
+ 0xaf, 0x1b, 0x23, 0xef, 0xc6, 0xf3, 0x6d, 0x03, 0x91, 0x51, 0x14, 0x92,
+};
+static const unsigned char kat1250_nonce[] = {0};
+static const unsigned char kat1250_persstr[] = {
+ 0x00, 0xaa, 0x2d, 0x44, 0xb1, 0xf5, 0xf8, 0x17, 0x29, 0xe4, 0x0c, 0x34,
+ 0x11, 0xe4, 0x75, 0xcd, 0x2f, 0x87, 0x0d, 0x14, 0x93, 0xda, 0xc9, 0x51,
+ 0xf3, 0x67, 0xbc, 0x9b, 0x8b, 0xa2, 0x8d, 0xed, 0x34, 0xe1, 0xfc, 0xc1,
+ 0x6c, 0x29, 0xbc, 0x63, 0x13, 0xae, 0xaf, 0xf1, 0xe1, 0xde, 0xb4, 0x3a,
+};
+static const unsigned char kat1250_addin0[] = {
+ 0xa3, 0x83, 0xa6, 0x5c, 0x12, 0x1c, 0xa5, 0x9b, 0x9c, 0x03, 0x14, 0xdc,
+ 0x9f, 0xbe, 0x46, 0xb5, 0x70, 0x8c, 0xb7, 0x8f, 0x0f, 0x8a, 0x1a, 0xcb,
+ 0x77, 0x83, 0x3f, 0x19, 0x28, 0xf3, 0x5d, 0x70, 0xd3, 0x77, 0x97, 0x23,
+ 0x40, 0x35, 0xc9, 0x62, 0xb9, 0x38, 0x74, 0xdd, 0x81, 0xf7, 0x05, 0x3f,
+};
+static const unsigned char kat1250_addin1[] = {
+ 0x28, 0xb7, 0x1e, 0x47, 0xa7, 0x81, 0xcc, 0x86, 0xaf, 0xc5, 0x66, 0x1c,
+ 0x53, 0x36, 0x6c, 0xc5, 0xb1, 0xe7, 0x77, 0xd7, 0x9d, 0x46, 0xa9, 0x7a,
+ 0x4c, 0x16, 0x07, 0x7e, 0xf3, 0x00, 0x4e, 0xbd, 0x81, 0x31, 0x14, 0xd7,
+ 0x1f, 0x76, 0xa4, 0x48, 0xe3, 0x19, 0x6d, 0x98, 0x75, 0x4e, 0x16, 0x58,
+};
+static const unsigned char kat1250_retbits[] = {
+ 0x90, 0xfd, 0xb7, 0x19, 0xa0, 0xd6, 0x23, 0x66, 0x99, 0xeb, 0xe7, 0xe5,
+ 0x37, 0xbe, 0x11, 0x40, 0x03, 0xa9, 0x30, 0x2a, 0xca, 0x98, 0x27, 0xbc,
+ 0x7e, 0xed, 0x73, 0xf9, 0x0a, 0x3c, 0xeb, 0xd5, 0x19, 0x96, 0x15, 0x50,
+ 0x61, 0x63, 0xe0, 0x8a, 0x8d, 0x2e, 0x29, 0x6f, 0x17, 0xde, 0x92, 0x21,
+ 0x45, 0x02, 0x50, 0x5c, 0x8d, 0x29, 0x18, 0xb1, 0x3c, 0x21, 0x77, 0x03,
+ 0xf5, 0x68, 0x43, 0xdd,
+};
+static const struct drbg_kat_no_reseed kat1250_t = {
+ 4, kat1250_entropyin, kat1250_nonce, kat1250_persstr,
+ kat1250_addin0, kat1250_addin1, kat1250_retbits
+};
+static const struct drbg_kat kat1250 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1250_t
+};
+
+static const unsigned char kat1251_entropyin[] = {
+ 0x87, 0x25, 0xbc, 0xbe, 0x38, 0x68, 0xdc, 0x96, 0xf6, 0xf4, 0xf7, 0xa8,
+ 0xc5, 0xee, 0x2f, 0x88, 0x1b, 0x7a, 0x4d, 0x41, 0xb9, 0xba, 0xd3, 0x32,
+ 0xfe, 0xfb, 0xd6, 0x79, 0x75, 0x88, 0x70, 0x5e, 0xd0, 0x3d, 0xef, 0x3b,
+ 0x32, 0x40, 0x67, 0x82, 0x4a, 0x63, 0x09, 0xf4, 0x2c, 0xf9, 0x8b, 0xda,
+};
+static const unsigned char kat1251_nonce[] = {0};
+static const unsigned char kat1251_persstr[] = {
+ 0xd0, 0xb3, 0x01, 0x2f, 0xed, 0x05, 0x40, 0xf0, 0x24, 0x6d, 0x6f, 0xd6,
+ 0x24, 0xda, 0x58, 0x41, 0x92, 0x4b, 0xae, 0x4a, 0x76, 0xea, 0x59, 0x46,
+ 0x3d, 0x57, 0x77, 0xca, 0x8d, 0x12, 0x1f, 0x7c, 0xed, 0x98, 0x91, 0xca,
+ 0xa9, 0x21, 0x19, 0xec, 0x02, 0xc0, 0xee, 0x8d, 0xed, 0x2b, 0x26, 0x5f,
+};
+static const unsigned char kat1251_addin0[] = {
+ 0x9f, 0x36, 0x01, 0xe0, 0xdf, 0x19, 0x53, 0xd8, 0xba, 0xe7, 0x00, 0xf3,
+ 0x98, 0x3e, 0x47, 0x9e, 0x1f, 0xec, 0x44, 0x3d, 0x6f, 0xfa, 0x12, 0xd6,
+ 0x87, 0x52, 0xcc, 0x68, 0xa6, 0x6a, 0x27, 0x48, 0xf7, 0xc6, 0xee, 0x0c,
+ 0x32, 0xa6, 0xda, 0xe3, 0xa4, 0x86, 0x15, 0x3c, 0x0c, 0xc4, 0x5b, 0x33,
+};
+static const unsigned char kat1251_addin1[] = {
+ 0x3b, 0x32, 0xd8, 0x6f, 0xc3, 0xcd, 0x88, 0xdd, 0x6e, 0x3d, 0x7f, 0xb9,
+ 0x8a, 0x0c, 0x77, 0x3a, 0xee, 0x1a, 0xe4, 0x81, 0xb5, 0xdf, 0x91, 0x54,
+ 0x71, 0x7b, 0x22, 0x31, 0x61, 0x96, 0x08, 0x69, 0x53, 0x3c, 0x0d, 0x16,
+ 0x00, 0xbc, 0xea, 0xb0, 0xf6, 0x64, 0x15, 0x84, 0xae, 0xd6, 0xd4, 0xb0,
+};
+static const unsigned char kat1251_retbits[] = {
+ 0x9c, 0x5f, 0x4d, 0xbc, 0xcd, 0x21, 0xef, 0xf9, 0x27, 0x60, 0x0f, 0x3f,
+ 0xa8, 0x37, 0x18, 0x9a, 0x81, 0x06, 0x34, 0x25, 0xd3, 0x16, 0x2a, 0x40,
+ 0x60, 0x4d, 0x3f, 0xbd, 0xb0, 0x76, 0x00, 0xc5, 0xff, 0xc1, 0xdb, 0x5f,
+ 0xd7, 0xe6, 0x3c, 0x20, 0x46, 0x64, 0x0c, 0x5b, 0x42, 0xdb, 0xfb, 0x85,
+ 0xfb, 0xf8, 0x24, 0x50, 0xae, 0x48, 0xf2, 0x95, 0x67, 0x95, 0x7f, 0xaa,
+ 0x74, 0x20, 0xf9, 0x69,
+};
+static const struct drbg_kat_no_reseed kat1251_t = {
+ 5, kat1251_entropyin, kat1251_nonce, kat1251_persstr,
+ kat1251_addin0, kat1251_addin1, kat1251_retbits
+};
+static const struct drbg_kat kat1251 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1251_t
+};
+
+static const unsigned char kat1252_entropyin[] = {
+ 0xcc, 0x7f, 0xf3, 0x44, 0x24, 0x97, 0x33, 0x10, 0x5d, 0x31, 0x6a, 0xdb,
+ 0x11, 0x54, 0xf5, 0xd8, 0xc7, 0x31, 0xc9, 0x3f, 0x84, 0xb7, 0x8e, 0xb2,
+ 0x33, 0xe6, 0xe8, 0xc7, 0xa1, 0x2f, 0x6c, 0xf7, 0xf5, 0x0e, 0x19, 0x20,
+ 0x9d, 0x6d, 0x06, 0xf7, 0x38, 0x48, 0xdb, 0xa0, 0xcb, 0x77, 0x0a, 0xd5,
+};
+static const unsigned char kat1252_nonce[] = {0};
+static const unsigned char kat1252_persstr[] = {
+ 0x30, 0xcc, 0xac, 0x1e, 0x61, 0x58, 0xbc, 0xdc, 0xe5, 0xd1, 0xd4, 0xbb,
+ 0xdb, 0xf0, 0x4f, 0xe2, 0x6b, 0x3e, 0x92, 0x88, 0xd0, 0x06, 0xa1, 0x94,
+ 0x50, 0x35, 0x93, 0xfb, 0xd2, 0x43, 0x8e, 0x4f, 0x9b, 0x12, 0xbb, 0x39,
+ 0xcf, 0xa1, 0x8f, 0xcf, 0x20, 0x95, 0x55, 0x80, 0xc4, 0xaf, 0xcd, 0xd0,
+};
+static const unsigned char kat1252_addin0[] = {
+ 0xd6, 0x88, 0x47, 0xe5, 0xfd, 0x92, 0xdc, 0x2c, 0x2b, 0x7d, 0x2a, 0xfe,
+ 0xc1, 0x3d, 0x25, 0x1a, 0x26, 0x8f, 0x3b, 0xe6, 0xde, 0x60, 0x64, 0xb4,
+ 0xd7, 0x6b, 0xb9, 0x49, 0x38, 0x69, 0xa0, 0xe9, 0xa0, 0x40, 0xb3, 0xd1,
+ 0xc0, 0xdf, 0x43, 0x7e, 0xba, 0xd7, 0x86, 0x13, 0x96, 0x3c, 0x0c, 0xbe,
+};
+static const unsigned char kat1252_addin1[] = {
+ 0x3a, 0x4c, 0x85, 0x2a, 0x7f, 0x9e, 0x0e, 0x9e, 0xd6, 0x81, 0xa6, 0x3c,
+ 0xab, 0x1d, 0x94, 0xaa, 0x1c, 0x60, 0xdd, 0x4e, 0x72, 0x6b, 0x39, 0x01,
+ 0x2e, 0x38, 0xbc, 0xc3, 0x28, 0x9c, 0x1f, 0x92, 0x29, 0xbf, 0xdb, 0xaa,
+ 0xd0, 0x8d, 0x39, 0xc7, 0x38, 0x3b, 0xd0, 0x04, 0xff, 0xa9, 0x5b, 0x1d,
+};
+static const unsigned char kat1252_retbits[] = {
+ 0x01, 0x97, 0x19, 0x1d, 0x1c, 0xd9, 0x66, 0x6b, 0xe7, 0x00, 0x3b, 0xf7,
+ 0xac, 0x77, 0xb9, 0xf6, 0x9a, 0x91, 0x88, 0x9e, 0xb0, 0xf7, 0x72, 0x0f,
+ 0x8b, 0xa4, 0x7e, 0xb5, 0xa9, 0xc1, 0x76, 0x1a, 0xe6, 0xfc, 0x6c, 0x7c,
+ 0xef, 0x13, 0x81, 0x9a, 0xe0, 0x87, 0x18, 0xa9, 0xa0, 0x88, 0xe9, 0xe9,
+ 0x95, 0x12, 0xb9, 0xc1, 0x66, 0x47, 0xa8, 0xb7, 0xdf, 0x47, 0xd4, 0xbe,
+ 0xae, 0xfa, 0x4f, 0xf7,
+};
+static const struct drbg_kat_no_reseed kat1252_t = {
+ 6, kat1252_entropyin, kat1252_nonce, kat1252_persstr,
+ kat1252_addin0, kat1252_addin1, kat1252_retbits
+};
+static const struct drbg_kat kat1252 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1252_t
+};
+
+static const unsigned char kat1253_entropyin[] = {
+ 0xe3, 0x37, 0x1d, 0x3b, 0x3c, 0x26, 0x4e, 0x10, 0xd2, 0x70, 0xf4, 0xce,
+ 0xca, 0xa0, 0x9a, 0xd2, 0x02, 0xee, 0x91, 0xee, 0x2d, 0xdd, 0x14, 0xf8,
+ 0x0e, 0xa8, 0x5d, 0x32, 0x33, 0x88, 0x71, 0x29, 0xa4, 0x15, 0x80, 0x9d,
+ 0x42, 0xd3, 0x68, 0xee, 0xe4, 0xc9, 0x41, 0xe4, 0xe9, 0x35, 0x45, 0x82,
+};
+static const unsigned char kat1253_nonce[] = {0};
+static const unsigned char kat1253_persstr[] = {
+ 0x68, 0x95, 0x79, 0x2f, 0xdb, 0xe0, 0xf0, 0x2a, 0xde, 0x39, 0x6a, 0x50,
+ 0xd2, 0xb9, 0xa7, 0xc3, 0xd6, 0x03, 0x09, 0x2f, 0x35, 0x4e, 0x46, 0x67,
+ 0x4a, 0x7d, 0x41, 0x20, 0x50, 0xdc, 0xaa, 0x39, 0xde, 0xaf, 0xf4, 0xe0,
+ 0x5d, 0xa8, 0x4a, 0xed, 0xdf, 0x37, 0xd2, 0x58, 0x3b, 0xcf, 0x1a, 0x35,
+};
+static const unsigned char kat1253_addin0[] = {
+ 0xc2, 0x18, 0xa0, 0x40, 0x4d, 0x23, 0x4c, 0xb1, 0xca, 0x5e, 0xa2, 0xeb,
+ 0xf7, 0x1d, 0x82, 0x9c, 0xab, 0x7a, 0xd0, 0x71, 0x50, 0x13, 0xac, 0x13,
+ 0x33, 0x08, 0x17, 0x2b, 0xd4, 0xa7, 0xcd, 0x79, 0xa7, 0x0c, 0xe0, 0xec,
+ 0x21, 0x3a, 0xd8, 0x98, 0xe5, 0x0b, 0x0a, 0xdb, 0xfa, 0x39, 0x39, 0x4f,
+};
+static const unsigned char kat1253_addin1[] = {
+ 0xc4, 0x38, 0x73, 0x1a, 0xed, 0x46, 0xd4, 0x9a, 0x54, 0x2d, 0x2f, 0x7c,
+ 0x4f, 0x09, 0x04, 0xaf, 0x49, 0x14, 0x5d, 0x21, 0xf0, 0x53, 0xd7, 0x4d,
+ 0x0f, 0xd5, 0x99, 0x1d, 0x3c, 0x09, 0xcc, 0x93, 0xf2, 0xb4, 0x17, 0x2f,
+ 0x34, 0xeb, 0xaa, 0xd8, 0x73, 0xce, 0xb6, 0x76, 0x55, 0x1b, 0x90, 0xea,
+};
+static const unsigned char kat1253_retbits[] = {
+ 0x8e, 0xf2, 0x93, 0xae, 0x0c, 0xd3, 0xec, 0x81, 0xce, 0x8d, 0x7f, 0xf7,
+ 0xc8, 0x9b, 0x3d, 0x22, 0x11, 0x23, 0x69, 0x9d, 0xc7, 0xf4, 0x68, 0x64,
+ 0x92, 0x27, 0xeb, 0x2a, 0xc2, 0x39, 0x5a, 0x24, 0x05, 0x62, 0xa1, 0x25,
+ 0xc7, 0x36, 0x10, 0xc6, 0x6b, 0x73, 0x9e, 0x22, 0x49, 0x8b, 0x42, 0xce,
+ 0x35, 0xff, 0xd0, 0x18, 0xa9, 0x93, 0x68, 0xdd, 0x4d, 0xd6, 0x91, 0xf8,
+ 0x73, 0xfd, 0xaf, 0x16,
+};
+static const struct drbg_kat_no_reseed kat1253_t = {
+ 7, kat1253_entropyin, kat1253_nonce, kat1253_persstr,
+ kat1253_addin0, kat1253_addin1, kat1253_retbits
+};
+static const struct drbg_kat kat1253 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1253_t
+};
+
+static const unsigned char kat1254_entropyin[] = {
+ 0x6e, 0xf9, 0xe7, 0x38, 0xc7, 0xad, 0x40, 0x54, 0x02, 0x31, 0x00, 0xe6,
+ 0x98, 0x4c, 0xc0, 0x63, 0x9c, 0xe0, 0x79, 0xae, 0xbd, 0xef, 0xe7, 0xc2,
+ 0x26, 0xef, 0x2e, 0x5e, 0xf2, 0x18, 0x7c, 0x92, 0x13, 0x61, 0xea, 0xf4,
+ 0x54, 0x8f, 0x69, 0xd4, 0x87, 0x3e, 0x62, 0xe5, 0x57, 0x09, 0x6c, 0xa3,
+};
+static const unsigned char kat1254_nonce[] = {0};
+static const unsigned char kat1254_persstr[] = {
+ 0xc7, 0xfb, 0x77, 0x43, 0xf2, 0xea, 0x10, 0xee, 0x3b, 0xc9, 0x58, 0x20,
+ 0x27, 0x19, 0x6c, 0x58, 0xf9, 0x4b, 0xde, 0x40, 0x07, 0x4d, 0xed, 0x73,
+ 0xd8, 0x45, 0x6b, 0xac, 0xfd, 0x75, 0x40, 0xf0, 0x52, 0xa2, 0x65, 0x91,
+ 0x1e, 0x67, 0x6e, 0x7a, 0xa8, 0xde, 0x1e, 0x7e, 0xe9, 0x74, 0xb2, 0xf6,
+};
+static const unsigned char kat1254_addin0[] = {
+ 0x2e, 0xf8, 0xf4, 0x53, 0x59, 0x61, 0x5e, 0x61, 0x36, 0xad, 0xf2, 0x72,
+ 0xad, 0x68, 0x5d, 0x90, 0xc8, 0xa6, 0x5f, 0x17, 0x64, 0x88, 0x9a, 0x11,
+ 0x02, 0xe2, 0x18, 0xf5, 0x9d, 0xf6, 0xe9, 0x8f, 0xad, 0x7d, 0x8f, 0xe3,
+ 0xf0, 0x84, 0x51, 0x7c, 0xfd, 0x8a, 0x7a, 0x70, 0x88, 0x49, 0x05, 0x38,
+};
+static const unsigned char kat1254_addin1[] = {
+ 0x02, 0xf2, 0x55, 0xfc, 0xa2, 0x2b, 0x75, 0x0e, 0x71, 0x96, 0xc8, 0x4a,
+ 0x48, 0x21, 0xe7, 0x60, 0x7b, 0x9d, 0x09, 0x57, 0xd6, 0x2a, 0xb9, 0x1d,
+ 0x82, 0xa8, 0x4f, 0x2f, 0xd3, 0x63, 0x03, 0xb7, 0x90, 0x06, 0xf7, 0xc3,
+ 0xeb, 0xd7, 0x9e, 0x36, 0x71, 0xba, 0x33, 0xa2, 0x7f, 0xfc, 0x72, 0x59,
+};
+static const unsigned char kat1254_retbits[] = {
+ 0x12, 0xbe, 0x8e, 0x5e, 0xb5, 0x42, 0x2a, 0x3b, 0x2c, 0xbb, 0x95, 0x1e,
+ 0x04, 0x3c, 0x2b, 0xb4, 0xe2, 0xc8, 0xf3, 0x62, 0xa1, 0xd7, 0xb6, 0x2d,
+ 0x45, 0x9c, 0xae, 0xd4, 0x74, 0x5c, 0x1d, 0xf9, 0x26, 0xf6, 0xd5, 0xac,
+ 0xce, 0x2d, 0x74, 0x80, 0xe0, 0x4c, 0x83, 0xc5, 0xb1, 0x5f, 0x6f, 0x9e,
+ 0x5d, 0xca, 0xd6, 0x76, 0x99, 0x75, 0xa9, 0xaf, 0x0d, 0xbf, 0xf4, 0xbb,
+ 0x34, 0xb0, 0xee, 0xd9,
+};
+static const struct drbg_kat_no_reseed kat1254_t = {
+ 8, kat1254_entropyin, kat1254_nonce, kat1254_persstr,
+ kat1254_addin0, kat1254_addin1, kat1254_retbits
+};
+static const struct drbg_kat kat1254 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1254_t
+};
+
+static const unsigned char kat1255_entropyin[] = {
+ 0x00, 0x80, 0x0c, 0xc4, 0x76, 0x1f, 0xc1, 0xca, 0x30, 0x98, 0x2f, 0x4d,
+ 0xc2, 0xf7, 0x03, 0xca, 0x44, 0x97, 0xb8, 0x25, 0x1f, 0xbe, 0x72, 0x71,
+ 0x04, 0xfd, 0x0c, 0x0f, 0x5f, 0x9c, 0x7d, 0xce, 0xa7, 0x0b, 0x1a, 0x39,
+ 0x16, 0xeb, 0xc1, 0x9d, 0x1b, 0x68, 0xa4, 0xd2, 0xda, 0x4f, 0x10, 0x31,
+};
+static const unsigned char kat1255_nonce[] = {0};
+static const unsigned char kat1255_persstr[] = {
+ 0x37, 0x3c, 0x0d, 0xfe, 0x24, 0x9c, 0xf4, 0xc9, 0xcc, 0x73, 0xc2, 0x4c,
+ 0x17, 0x0f, 0x70, 0x78, 0x65, 0xe3, 0xec, 0x1d, 0x91, 0x97, 0x2f, 0xf3,
+ 0xfd, 0x77, 0xfe, 0xbe, 0xa8, 0xb6, 0xc1, 0x2d, 0x2d, 0xcd, 0x9d, 0x4d,
+ 0xa7, 0xcb, 0x65, 0x3d, 0xda, 0x2f, 0xd1, 0xff, 0x58, 0xdf, 0x2b, 0x8e,
+};
+static const unsigned char kat1255_addin0[] = {
+ 0xdd, 0xd0, 0x45, 0x8d, 0x64, 0x90, 0xb0, 0x79, 0x35, 0x1e, 0xee, 0x99,
+ 0x8b, 0x88, 0xd1, 0xd0, 0x1a, 0x17, 0x19, 0xdf, 0xa6, 0x9c, 0x9b, 0x72,
+ 0xa3, 0x60, 0x5d, 0xe5, 0x71, 0xe5, 0x9f, 0xdd, 0x34, 0x2e, 0x85, 0x6a,
+ 0x09, 0x0a, 0x13, 0x23, 0x93, 0xe7, 0xe5, 0x61, 0x6e, 0x95, 0x90, 0xe0,
+};
+static const unsigned char kat1255_addin1[] = {
+ 0xaf, 0x7a, 0xdb, 0xbc, 0xbd, 0x4a, 0x1d, 0xc1, 0xb9, 0x6b, 0x88, 0x83,
+ 0xa3, 0x71, 0xc4, 0x31, 0x40, 0x42, 0xa2, 0x86, 0xd4, 0x02, 0x32, 0xef,
+ 0x2c, 0x98, 0xac, 0xe4, 0x62, 0xc7, 0xce, 0xa2, 0x9c, 0x20, 0xc6, 0xd7,
+ 0xb6, 0x42, 0x4c, 0x0c, 0x45, 0x36, 0xdd, 0x2f, 0x89, 0x90, 0xf6, 0x32,
+};
+static const unsigned char kat1255_retbits[] = {
+ 0x3e, 0xc1, 0x8d, 0xd0, 0x38, 0xd1, 0xfd, 0x71, 0x47, 0x23, 0xf9, 0x06,
+ 0xb2, 0x51, 0xa1, 0x72, 0xa3, 0xd3, 0xee, 0x30, 0x8f, 0xbf, 0x51, 0xb9,
+ 0x2f, 0x8f, 0x0c, 0x16, 0x74, 0x38, 0x3e, 0x8c, 0xe8, 0x51, 0x07, 0x95,
+ 0x96, 0xdd, 0x6e, 0xcc, 0xfb, 0x4f, 0xac, 0xde, 0x7a, 0x23, 0x59, 0x57,
+ 0x51, 0x37, 0x07, 0x9a, 0x9f, 0xf5, 0x7d, 0x6e, 0xe7, 0xf8, 0x56, 0x74,
+ 0x93, 0xe8, 0xfa, 0x02,
+};
+static const struct drbg_kat_no_reseed kat1255_t = {
+ 9, kat1255_entropyin, kat1255_nonce, kat1255_persstr,
+ kat1255_addin0, kat1255_addin1, kat1255_retbits
+};
+static const struct drbg_kat kat1255 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1255_t
+};
+
+static const unsigned char kat1256_entropyin[] = {
+ 0x2f, 0x94, 0xc1, 0x29, 0xbc, 0x75, 0xe9, 0x83, 0x5a, 0xda, 0xcf, 0x73,
+ 0xb7, 0x31, 0xb6, 0x62, 0x48, 0xf9, 0x69, 0x63, 0x6f, 0xa0, 0x61, 0x8b,
+ 0x98, 0x6d, 0x0e, 0x9e, 0xb6, 0x22, 0xb6, 0xc0, 0x59, 0x66, 0xfd, 0x11,
+ 0x58, 0xdc, 0x1b, 0xc5, 0xc1, 0x39, 0x8c, 0xd8, 0x03, 0x1e, 0x99, 0x60,
+};
+static const unsigned char kat1256_nonce[] = {0};
+static const unsigned char kat1256_persstr[] = {
+ 0xc3, 0x20, 0x43, 0x5c, 0xad, 0x09, 0x9d, 0xcb, 0xa1, 0xaa, 0xed, 0x51,
+ 0x62, 0x39, 0x77, 0xba, 0xb7, 0x06, 0x71, 0xd9, 0x34, 0xf6, 0xa0, 0x2c,
+ 0x7e, 0x96, 0x44, 0x84, 0xda, 0xee, 0xee, 0xc2, 0xd1, 0xfa, 0xfa, 0x3c,
+ 0xa7, 0xa3, 0xc8, 0x63, 0x37, 0x15, 0xef, 0x7e, 0x9b, 0xd8, 0x76, 0x91,
+};
+static const unsigned char kat1256_addin0[] = {
+ 0xfa, 0x41, 0x5e, 0xf8, 0x27, 0x07, 0x58, 0xc8, 0xda, 0x17, 0x24, 0x8b,
+ 0xd3, 0xa6, 0xb1, 0x19, 0xbe, 0x74, 0xf6, 0xa4, 0x2f, 0x28, 0x48, 0x41,
+ 0x06, 0x57, 0x83, 0xfd, 0xfb, 0xaa, 0x53, 0xe3, 0xfa, 0xcc, 0xe0, 0x12,
+ 0x85, 0xc1, 0x0e, 0xe1, 0xc5, 0xc9, 0xfd, 0xb8, 0x99, 0x40, 0xbb, 0x47,
+};
+static const unsigned char kat1256_addin1[] = {
+ 0xfa, 0x58, 0x11, 0x1b, 0x4c, 0x6d, 0x5f, 0x7f, 0x2b, 0x00, 0x42, 0x2e,
+ 0xfb, 0x5e, 0xd9, 0x83, 0x2c, 0xf4, 0x2f, 0x3c, 0xdc, 0x83, 0x13, 0x0a,
+ 0xa3, 0x35, 0x5c, 0x26, 0x75, 0x31, 0x99, 0x88, 0x61, 0xe4, 0x06, 0x7b,
+ 0xf3, 0xfb, 0x9f, 0x28, 0xbe, 0x36, 0x40, 0x8c, 0x2c, 0x51, 0x56, 0x01,
+};
+static const unsigned char kat1256_retbits[] = {
+ 0x89, 0x70, 0xa2, 0x0b, 0x8b, 0xfc, 0xbf, 0x45, 0xf6, 0x41, 0xe3, 0xba,
+ 0x8f, 0x28, 0xa0, 0x8b, 0xd1, 0xc1, 0x51, 0xea, 0x8f, 0x5f, 0x09, 0xea,
+ 0xc0, 0xab, 0x71, 0x5d, 0x2a, 0x52, 0xe0, 0x60, 0x9b, 0xe1, 0xfd, 0xa1,
+ 0x3b, 0xe3, 0x18, 0x16, 0x67, 0x0e, 0x43, 0x3f, 0xbc, 0x38, 0xa8, 0x43,
+ 0x70, 0x1f, 0xd9, 0x35, 0xe2, 0xcd, 0xcd, 0xbb, 0x2c, 0xc5, 0xe2, 0x04,
+ 0x54, 0xe5, 0x63, 0x81,
+};
+static const struct drbg_kat_no_reseed kat1256_t = {
+ 10, kat1256_entropyin, kat1256_nonce, kat1256_persstr,
+ kat1256_addin0, kat1256_addin1, kat1256_retbits
+};
+static const struct drbg_kat kat1256 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1256_t
+};
+
+static const unsigned char kat1257_entropyin[] = {
+ 0xde, 0x2c, 0x94, 0x55, 0x8a, 0xda, 0xbf, 0xb2, 0x86, 0xc9, 0x51, 0x38,
+ 0xab, 0x25, 0x30, 0x4b, 0x8e, 0x3d, 0x15, 0xc8, 0x96, 0x13, 0x52, 0x88,
+ 0x02, 0xb4, 0x30, 0xcd, 0x14, 0xd1, 0x68, 0x5d, 0x09, 0x8a, 0x92, 0x82,
+ 0xea, 0xfe, 0x09, 0x68, 0x27, 0xef, 0x4f, 0x8b, 0xb7, 0x02, 0xe2, 0x91,
+};
+static const unsigned char kat1257_nonce[] = {0};
+static const unsigned char kat1257_persstr[] = {
+ 0xa4, 0x66, 0x94, 0x20, 0xac, 0xda, 0x7a, 0x25, 0x2e, 0x8a, 0x46, 0xd3,
+ 0xcf, 0xc9, 0x76, 0xe7, 0xd3, 0xba, 0xa6, 0xf6, 0x83, 0x27, 0x27, 0xe4,
+ 0x28, 0x0e, 0x57, 0xe6, 0x97, 0x05, 0x13, 0x25, 0x83, 0x31, 0x35, 0x74,
+ 0xbd, 0x97, 0x5d, 0xab, 0x44, 0xf2, 0x2c, 0x10, 0xa6, 0x92, 0xab, 0x03,
+};
+static const unsigned char kat1257_addin0[] = {
+ 0x7b, 0xe3, 0xd0, 0x34, 0x00, 0xea, 0x13, 0x8a, 0x6f, 0x39, 0x8b, 0xfa,
+ 0xd6, 0xd0, 0xb7, 0x11, 0x16, 0xca, 0xd9, 0xa0, 0xc5, 0x93, 0x27, 0xc7,
+ 0x62, 0x2d, 0xe0, 0x04, 0x5b, 0x0a, 0x1e, 0x20, 0x6c, 0xf1, 0x7c, 0x91,
+ 0xf3, 0x36, 0xa5, 0x3e, 0x11, 0x42, 0x5a, 0x24, 0xa4, 0xa3, 0xac, 0x92,
+};
+static const unsigned char kat1257_addin1[] = {
+ 0x1b, 0x17, 0x94, 0x3c, 0x88, 0x3a, 0x5f, 0x3f, 0x2a, 0x76, 0xbe, 0x46,
+ 0xb6, 0xcf, 0xe1, 0xe1, 0x67, 0x4e, 0x06, 0xbb, 0x08, 0x7d, 0x8d, 0x60,
+ 0xca, 0x28, 0x13, 0x21, 0x43, 0x65, 0x8c, 0x76, 0xd9, 0x59, 0xb8, 0x55,
+ 0x30, 0xa8, 0x8f, 0xe0, 0x05, 0x6c, 0xcd, 0x16, 0xc5, 0xf9, 0x84, 0x7f,
+};
+static const unsigned char kat1257_retbits[] = {
+ 0x5e, 0x44, 0x89, 0x67, 0x1c, 0x6d, 0x92, 0xb1, 0x9e, 0x93, 0x9d, 0xe8,
+ 0x7e, 0xbe, 0x03, 0x36, 0x7c, 0xd0, 0xa9, 0x48, 0x6e, 0xef, 0x0a, 0x46,
+ 0xa7, 0x2d, 0x5f, 0x71, 0xd2, 0x0c, 0x38, 0x73, 0x55, 0xc2, 0x28, 0x58,
+ 0xac, 0x4e, 0x87, 0x95, 0x80, 0xb4, 0xbf, 0x0e, 0x14, 0x9d, 0x4c, 0x5b,
+ 0x6b, 0xe0, 0x91, 0xbb, 0x3a, 0x5d, 0x64, 0x95, 0xba, 0x83, 0xf4, 0x7c,
+ 0x1b, 0xcb, 0x4d, 0x45,
+};
+static const struct drbg_kat_no_reseed kat1257_t = {
+ 11, kat1257_entropyin, kat1257_nonce, kat1257_persstr,
+ kat1257_addin0, kat1257_addin1, kat1257_retbits
+};
+static const struct drbg_kat kat1257 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1257_t
+};
+
+static const unsigned char kat1258_entropyin[] = {
+ 0x77, 0x6f, 0x8e, 0x34, 0xca, 0xc2, 0x75, 0x7e, 0x83, 0xe9, 0x5e, 0xf1,
+ 0x07, 0x54, 0x10, 0x36, 0x0d, 0x8b, 0x85, 0x20, 0xb8, 0x77, 0x56, 0x65,
+ 0x0c, 0x4e, 0x4e, 0x26, 0x16, 0x84, 0xfc, 0x40, 0x13, 0xcf, 0x6c, 0x93,
+ 0x04, 0xd9, 0xe8, 0x10, 0x0c, 0xa9, 0xe2, 0x6c, 0x97, 0x54, 0xb3, 0xfd,
+};
+static const unsigned char kat1258_nonce[] = {0};
+static const unsigned char kat1258_persstr[] = {
+ 0x14, 0xb4, 0x34, 0xb1, 0x24, 0x52, 0x30, 0x90, 0x75, 0x69, 0x3e, 0x6e,
+ 0x5d, 0x56, 0x3e, 0x5c, 0x93, 0xea, 0xda, 0x6b, 0xec, 0xb2, 0xba, 0x91,
+ 0x19, 0xe7, 0x45, 0x3b, 0xa0, 0xc7, 0x67, 0x3f, 0xbe, 0x82, 0xc6, 0x19,
+ 0xa3, 0x17, 0x2d, 0x29, 0x78, 0xef, 0x5c, 0x5b, 0x93, 0x82, 0x87, 0xf9,
+};
+static const unsigned char kat1258_addin0[] = {
+ 0x51, 0xda, 0x28, 0x22, 0x9d, 0xfa, 0xd4, 0x66, 0x56, 0xb2, 0x89, 0x20,
+ 0xe5, 0x90, 0xf8, 0x49, 0xcb, 0x6f, 0x74, 0xd4, 0x76, 0x39, 0x94, 0x06,
+ 0x10, 0xe4, 0x70, 0xc5, 0xd5, 0x20, 0x90, 0xe1, 0xab, 0x77, 0x44, 0x0a,
+ 0x4e, 0x49, 0x5d, 0x10, 0xf0, 0xee, 0x9f, 0xee, 0x8e, 0x65, 0xd9, 0xd4,
+};
+static const unsigned char kat1258_addin1[] = {
+ 0x44, 0x60, 0xcb, 0x1e, 0x89, 0x0b, 0xf3, 0x4e, 0x94, 0xf2, 0x5c, 0xe6,
+ 0x51, 0x71, 0x0e, 0xba, 0x56, 0xea, 0xe5, 0x85, 0xfa, 0xe2, 0x85, 0x34,
+ 0xa9, 0xd0, 0x4b, 0x9d, 0x2b, 0xca, 0xde, 0x08, 0xfd, 0xbd, 0x04, 0xc2,
+ 0xb3, 0x63, 0x58, 0x3f, 0x94, 0xb2, 0x43, 0x7a, 0x8c, 0x7e, 0x65, 0xd2,
+};
+static const unsigned char kat1258_retbits[] = {
+ 0xff, 0xef, 0xb1, 0xdc, 0x31, 0x6c, 0x12, 0x65, 0x9d, 0x33, 0xc3, 0xce,
+ 0x2d, 0x90, 0xf9, 0x63, 0x03, 0xc4, 0x7f, 0xae, 0x68, 0x84, 0x31, 0xc1,
+ 0x4b, 0x39, 0x2b, 0x18, 0x96, 0x09, 0x6a, 0x5f, 0x29, 0x99, 0xbc, 0x31,
+ 0x06, 0xb9, 0x63, 0xdd, 0x7a, 0x7f, 0x7c, 0x55, 0x54, 0x4f, 0x72, 0xd3,
+ 0x7c, 0xc9, 0xa3, 0xd2, 0x76, 0x7a, 0xf5, 0xa8, 0xeb, 0x81, 0xe3, 0x22,
+ 0xff, 0x5f, 0xd6, 0x05,
+};
+static const struct drbg_kat_no_reseed kat1258_t = {
+ 12, kat1258_entropyin, kat1258_nonce, kat1258_persstr,
+ kat1258_addin0, kat1258_addin1, kat1258_retbits
+};
+static const struct drbg_kat kat1258 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1258_t
+};
+
+static const unsigned char kat1259_entropyin[] = {
+ 0x7f, 0x4f, 0xa1, 0xbf, 0xa3, 0xa0, 0x30, 0x1d, 0xab, 0x9c, 0x0d, 0x9d,
+ 0x93, 0xfa, 0x67, 0xe9, 0x6b, 0x76, 0x16, 0xf2, 0x83, 0x21, 0xb6, 0x81,
+ 0xeb, 0xe4, 0xea, 0x00, 0x2e, 0x88, 0xee, 0x58, 0xdc, 0xa7, 0x6d, 0xc5,
+ 0x5b, 0x23, 0x24, 0xed, 0x5b, 0xe7, 0x8c, 0xd3, 0x36, 0x3f, 0xe4, 0x47,
+};
+static const unsigned char kat1259_nonce[] = {0};
+static const unsigned char kat1259_persstr[] = {
+ 0x8f, 0x68, 0x95, 0xf8, 0x1f, 0x28, 0x95, 0x4e, 0x4f, 0x40, 0x03, 0xb3,
+ 0x61, 0x88, 0x74, 0xfe, 0x7d, 0x49, 0x70, 0x9c, 0x43, 0x02, 0xa8, 0x67,
+ 0x8d, 0x29, 0xa6, 0x7e, 0xe5, 0xbe, 0xa6, 0xdf, 0x2c, 0x70, 0xbd, 0x93,
+ 0x84, 0x71, 0xbe, 0x77, 0x0c, 0x90, 0x1a, 0xdf, 0xc9, 0xf6, 0x90, 0x51,
+};
+static const unsigned char kat1259_addin0[] = {
+ 0xcd, 0x7d, 0x83, 0xad, 0x85, 0xf2, 0x37, 0x94, 0x10, 0x82, 0x11, 0xb9,
+ 0xb0, 0xe6, 0x02, 0x98, 0xb8, 0x6b, 0x9a, 0x84, 0xa1, 0x11, 0x07, 0x73,
+ 0x71, 0xf0, 0x45, 0xf6, 0x69, 0x2f, 0xd0, 0xb7, 0xb9, 0x07, 0x21, 0x67,
+ 0xb4, 0x68, 0x62, 0xa8, 0x3f, 0x67, 0xad, 0x5d, 0x02, 0xfa, 0x39, 0x34,
+};
+static const unsigned char kat1259_addin1[] = {
+ 0x7c, 0x64, 0x0a, 0xd1, 0xab, 0x50, 0x56, 0x0a, 0x33, 0xa8, 0x0f, 0xe6,
+ 0x12, 0xf3, 0xdc, 0x8b, 0xe1, 0x57, 0x0e, 0x5b, 0xe2, 0x69, 0x21, 0xd9,
+ 0x2e, 0xbf, 0xc7, 0x2c, 0x33, 0xed, 0x3e, 0x93, 0x9f, 0x12, 0x23, 0xc4,
+ 0x95, 0xeb, 0xe2, 0x78, 0xc0, 0x43, 0x63, 0xb7, 0x4f, 0xa7, 0x8d, 0xc8,
+};
+static const unsigned char kat1259_retbits[] = {
+ 0x18, 0x1e, 0x2d, 0x61, 0xf8, 0xa6, 0x2d, 0xe8, 0x53, 0xc9, 0xd4, 0x05,
+ 0xfa, 0x79, 0x12, 0x3f, 0x26, 0xdb, 0xac, 0x74, 0xe5, 0x8a, 0x71, 0xd5,
+ 0x46, 0x48, 0x7e, 0x55, 0xee, 0x76, 0xe9, 0xe2, 0x6c, 0xd1, 0x82, 0xa7,
+ 0xac, 0x4f, 0x29, 0xdc, 0xe7, 0xaf, 0x7c, 0x39, 0x9a, 0x85, 0x5f, 0x37,
+ 0x5b, 0x6f, 0x61, 0x51, 0xc4, 0xc6, 0x8d, 0xf9, 0x2b, 0x7f, 0xc7, 0x3f,
+ 0x4f, 0x7c, 0x13, 0x4e,
+};
+static const struct drbg_kat_no_reseed kat1259_t = {
+ 13, kat1259_entropyin, kat1259_nonce, kat1259_persstr,
+ kat1259_addin0, kat1259_addin1, kat1259_retbits
+};
+static const struct drbg_kat kat1259 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1259_t
+};
+
+static const unsigned char kat1260_entropyin[] = {
+ 0x5c, 0x3f, 0x7f, 0x41, 0xe6, 0x87, 0x56, 0x83, 0xfb, 0x25, 0x51, 0x5a,
+ 0x08, 0x77, 0xf1, 0xc3, 0x85, 0xaf, 0xc1, 0x86, 0xd1, 0xc7, 0xe8, 0xdd,
+ 0x83, 0x80, 0x24, 0xf9, 0xb4, 0x7f, 0x8b, 0xcd, 0xda, 0x99, 0x44, 0x13,
+ 0x54, 0x99, 0x90, 0x7c, 0xed, 0x45, 0x83, 0x39, 0x76, 0x76, 0x78, 0x07,
+};
+static const unsigned char kat1260_nonce[] = {0};
+static const unsigned char kat1260_persstr[] = {
+ 0x05, 0x5b, 0xa2, 0x9f, 0x50, 0xe5, 0x01, 0x35, 0xef, 0x62, 0x9d, 0x2a,
+ 0x9d, 0x35, 0x57, 0x29, 0x6a, 0x29, 0xa0, 0x7f, 0x8c, 0xe9, 0xc4, 0x91,
+ 0x3c, 0x2e, 0x55, 0x25, 0x18, 0x45, 0x9f, 0x9e, 0x46, 0x26, 0x01, 0xb4,
+ 0xfb, 0x90, 0x96, 0x40, 0xde, 0x1d, 0xd5, 0xcb, 0x22, 0x90, 0xf3, 0xe2,
+};
+static const unsigned char kat1260_addin0[] = {
+ 0x78, 0x1c, 0x24, 0x41, 0x57, 0x7a, 0xc0, 0x5f, 0xc0, 0x69, 0xf0, 0xf9,
+ 0x88, 0xe1, 0x50, 0xd7, 0xe9, 0x83, 0xbb, 0xb4, 0x98, 0x10, 0xee, 0xac,
+ 0x8b, 0x5d, 0x98, 0xfc, 0x5d, 0xac, 0x18, 0x34, 0x46, 0x63, 0xe4, 0x6f,
+ 0xde, 0x48, 0xf7, 0xf2, 0xcc, 0xa0, 0x96, 0xfb, 0x2c, 0x9d, 0xb5, 0x7a,
+};
+static const unsigned char kat1260_addin1[] = {
+ 0x75, 0x98, 0xea, 0xbe, 0xa8, 0xe5, 0x16, 0xeb, 0x2d, 0x11, 0x14, 0x41,
+ 0xe9, 0x4a, 0x98, 0xbb, 0x37, 0x91, 0x6f, 0x29, 0x1e, 0x31, 0x07, 0xdd,
+ 0x99, 0x1e, 0x77, 0x98, 0xed, 0x89, 0x6d, 0xc9, 0x9b, 0x1a, 0x40, 0x54,
+ 0x43, 0xf7, 0xc7, 0x81, 0xb9, 0x8a, 0xdc, 0x8b, 0xa9, 0x75, 0x06, 0x96,
+};
+static const unsigned char kat1260_retbits[] = {
+ 0xea, 0xe9, 0x35, 0xbf, 0x9e, 0xa3, 0x17, 0x4c, 0x0d, 0x7d, 0xa0, 0x35,
+ 0x9c, 0x17, 0x5c, 0xc6, 0xbb, 0xb9, 0x1e, 0xcf, 0x93, 0x57, 0xe7, 0x74,
+ 0x80, 0x11, 0xfb, 0xa0, 0x2f, 0xd5, 0x22, 0x05, 0xdf, 0x0a, 0x87, 0xa4,
+ 0x4e, 0xb4, 0xcc, 0xb6, 0x01, 0x5b, 0x26, 0x6e, 0xd3, 0xbb, 0x9b, 0xe4,
+ 0xd0, 0xd4, 0x03, 0x83, 0x8b, 0xac, 0xd4, 0x27, 0x57, 0xcd, 0x34, 0x21,
+ 0x6d, 0x71, 0x98, 0x9f,
+};
+static const struct drbg_kat_no_reseed kat1260_t = {
+ 14, kat1260_entropyin, kat1260_nonce, kat1260_persstr,
+ kat1260_addin0, kat1260_addin1, kat1260_retbits
+};
+static const struct drbg_kat kat1260 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1260_t
+};
+
+static const unsigned char kat1261_entropyin[] = {
+ 0xfc, 0x7f, 0x26, 0x29, 0xc9, 0xd8, 0x86, 0x72, 0xf8, 0x12, 0x29, 0xbb,
+ 0xcc, 0x0c, 0x7e, 0x75, 0xc4, 0xb7, 0xd8, 0xe5, 0xd9, 0x38, 0x07, 0x02,
+ 0xea, 0x52, 0xdc, 0x49, 0x56, 0x00, 0xa5, 0x6e, 0x4a, 0xe5, 0xf0, 0xa5,
+ 0xc2, 0x5f, 0xb5, 0xd7, 0xe3, 0x1f, 0x5a, 0xef, 0x47, 0x12, 0xbc, 0x19,
+};
+static const unsigned char kat1261_nonce[] = {0};
+static const unsigned char kat1261_persstr[] = {0};
+static const unsigned char kat1261_addin0[] = {0};
+static const unsigned char kat1261_addin1[] = {0};
+static const unsigned char kat1261_retbits[] = {
+ 0xc6, 0x77, 0x5c, 0x9c, 0x64, 0x13, 0x7c, 0x01, 0x84, 0x18, 0xc4, 0xf0,
+ 0x01, 0xd0, 0xe4, 0xd1, 0xf2, 0xdc, 0x44, 0x11, 0xd3, 0x79, 0xa6, 0x78,
+ 0xf1, 0xd7, 0x1e, 0xee, 0x0b, 0xdc, 0x28, 0xc6, 0x6e, 0xac, 0xbd, 0x38,
+ 0xf7, 0x6b, 0xe4, 0x5b, 0xf9, 0x92, 0xa7, 0x09, 0xaf, 0x14, 0xd1, 0x46,
+ 0xc3, 0x5f, 0x91, 0x70, 0x2d, 0x27, 0xa1, 0xf4, 0x17, 0x63, 0x32, 0xeb,
+ 0xd9, 0x03, 0xff, 0xf9,
+};
+static const struct drbg_kat_no_reseed kat1261_t = {
+ 0, kat1261_entropyin, kat1261_nonce, kat1261_persstr,
+ kat1261_addin0, kat1261_addin1, kat1261_retbits
+};
+static const struct drbg_kat kat1261 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1261_t
+};
+
+static const unsigned char kat1262_entropyin[] = {
+ 0xc3, 0x2c, 0xba, 0x5e, 0xe6, 0x42, 0x91, 0xed, 0x1d, 0x7d, 0xc5, 0x1f,
+ 0x8a, 0xd3, 0xad, 0x40, 0xae, 0x24, 0xc8, 0xfd, 0x2f, 0x78, 0x94, 0x35,
+ 0x93, 0xc8, 0xf0, 0xa0, 0xb5, 0xa5, 0x38, 0x07, 0x98, 0x24, 0x2e, 0xe8,
+ 0x8c, 0xee, 0xba, 0x0d, 0x87, 0x5b, 0x35, 0xa2, 0xd4, 0xfd, 0x8d, 0x19,
+};
+static const unsigned char kat1262_nonce[] = {0};
+static const unsigned char kat1262_persstr[] = {0};
+static const unsigned char kat1262_addin0[] = {0};
+static const unsigned char kat1262_addin1[] = {0};
+static const unsigned char kat1262_retbits[] = {
+ 0x15, 0x73, 0x66, 0xfc, 0x87, 0x77, 0xf6, 0xf0, 0xb7, 0x6a, 0x12, 0xf7,
+ 0xbe, 0x0c, 0xf0, 0x59, 0x9c, 0x7a, 0x2a, 0x39, 0x9d, 0x54, 0xac, 0xba,
+ 0x60, 0x64, 0x26, 0x02, 0x6e, 0x1c, 0x0a, 0x11, 0xb4, 0x38, 0x01, 0xfa,
+ 0x9f, 0x0f, 0x47, 0x06, 0x48, 0xf7, 0xcd, 0x2f, 0x83, 0xd2, 0x58, 0xc7,
+ 0xed, 0x72, 0x34, 0xed, 0x3e, 0xe9, 0xc9, 0xf6, 0x1d, 0x93, 0xda, 0x57,
+ 0x8a, 0x07, 0x0a, 0x4b,
+};
+static const struct drbg_kat_no_reseed kat1262_t = {
+ 1, kat1262_entropyin, kat1262_nonce, kat1262_persstr,
+ kat1262_addin0, kat1262_addin1, kat1262_retbits
+};
+static const struct drbg_kat kat1262 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1262_t
+};
+
+static const unsigned char kat1263_entropyin[] = {
+ 0x87, 0x9e, 0x28, 0x6b, 0x7d, 0xe4, 0xf4, 0x89, 0x8a, 0x96, 0xd9, 0x99,
+ 0xd1, 0x8d, 0xba, 0x01, 0x55, 0x73, 0x8b, 0xa0, 0x6b, 0xa9, 0xd4, 0x4f,
+ 0x07, 0x55, 0x9a, 0x14, 0xcc, 0x4f, 0x98, 0x4b, 0x7d, 0x1e, 0x3e, 0x93,
+ 0xd6, 0x71, 0x54, 0xa4, 0x6b, 0xcf, 0x90, 0x8d, 0x7f, 0x79, 0xe3, 0xa9,
+};
+static const unsigned char kat1263_nonce[] = {0};
+static const unsigned char kat1263_persstr[] = {0};
+static const unsigned char kat1263_addin0[] = {0};
+static const unsigned char kat1263_addin1[] = {0};
+static const unsigned char kat1263_retbits[] = {
+ 0xa0, 0x77, 0x46, 0x5e, 0x8c, 0x7c, 0x66, 0x52, 0x66, 0xfe, 0x64, 0x31,
+ 0x9c, 0x01, 0xdb, 0x66, 0x34, 0x74, 0xcb, 0x16, 0xb1, 0x61, 0xab, 0xcb,
+ 0x3d, 0xa6, 0x45, 0xf6, 0x2b, 0x46, 0x8f, 0x5e, 0x3b, 0xde, 0x2e, 0x35,
+ 0xd1, 0xca, 0xbc, 0xea, 0xdb, 0x80, 0x1a, 0x15, 0x1b, 0x91, 0xf5, 0xfb,
+ 0xc8, 0x4b, 0x10, 0x91, 0x73, 0x76, 0x5b, 0x17, 0x78, 0xfb, 0xe4, 0xbc,
+ 0x18, 0x79, 0x24, 0x2c,
+};
+static const struct drbg_kat_no_reseed kat1263_t = {
+ 2, kat1263_entropyin, kat1263_nonce, kat1263_persstr,
+ kat1263_addin0, kat1263_addin1, kat1263_retbits
+};
+static const struct drbg_kat kat1263 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1263_t
+};
+
+static const unsigned char kat1264_entropyin[] = {
+ 0xd2, 0xf9, 0x5e, 0x3a, 0x82, 0x41, 0xd5, 0x01, 0xf0, 0xfa, 0x38, 0xe8,
+ 0xdc, 0x32, 0xf1, 0x5c, 0x71, 0xf7, 0x75, 0x24, 0x6b, 0x05, 0x20, 0x97,
+ 0xfd, 0x02, 0xbe, 0xaf, 0xc8, 0x78, 0xce, 0x8b, 0x47, 0x87, 0xd7, 0x43,
+ 0x2c, 0x65, 0x4a, 0xdc, 0x97, 0x70, 0xa0, 0x3c, 0x6f, 0x6f, 0x1c, 0x3b,
+};
+static const unsigned char kat1264_nonce[] = {0};
+static const unsigned char kat1264_persstr[] = {0};
+static const unsigned char kat1264_addin0[] = {0};
+static const unsigned char kat1264_addin1[] = {0};
+static const unsigned char kat1264_retbits[] = {
+ 0x73, 0x3d, 0x5b, 0xbc, 0x54, 0xfa, 0xd3, 0x27, 0x11, 0x0a, 0xea, 0x87,
+ 0xb9, 0x23, 0xdb, 0x0e, 0x36, 0x59, 0xc0, 0x76, 0xdf, 0x36, 0xa6, 0x63,
+ 0x73, 0xd6, 0xe4, 0xe7, 0x1b, 0xa0, 0x1e, 0xe6, 0x82, 0xab, 0x4a, 0x87,
+ 0xe9, 0x10, 0x3c, 0x78, 0xe4, 0xba, 0x76, 0x89, 0xd3, 0x53, 0xc7, 0x72,
+ 0x54, 0x82, 0xf2, 0x9e, 0xd2, 0x11, 0xf1, 0x05, 0xbd, 0xa9, 0xcd, 0xc3,
+ 0xd1, 0x9d, 0xbc, 0x7b,
+};
+static const struct drbg_kat_no_reseed kat1264_t = {
+ 3, kat1264_entropyin, kat1264_nonce, kat1264_persstr,
+ kat1264_addin0, kat1264_addin1, kat1264_retbits
+};
+static const struct drbg_kat kat1264 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1264_t
+};
+
+static const unsigned char kat1265_entropyin[] = {
+ 0x08, 0xc6, 0xfb, 0x63, 0x3a, 0x9c, 0x44, 0xf5, 0xb3, 0xb8, 0x78, 0x33,
+ 0x94, 0x0a, 0xc0, 0xeb, 0xc3, 0x4c, 0x63, 0xc3, 0xbc, 0xef, 0x7e, 0x60,
+ 0x0a, 0x09, 0xb5, 0x3b, 0x47, 0x9c, 0x1c, 0xa9, 0xff, 0xd1, 0x4c, 0xda,
+ 0x6b, 0x62, 0x53, 0xfe, 0x97, 0x43, 0x07, 0x81, 0xd3, 0x0f, 0x6d, 0xb0,
+};
+static const unsigned char kat1265_nonce[] = {0};
+static const unsigned char kat1265_persstr[] = {0};
+static const unsigned char kat1265_addin0[] = {0};
+static const unsigned char kat1265_addin1[] = {0};
+static const unsigned char kat1265_retbits[] = {
+ 0xbf, 0xb9, 0x60, 0xbe, 0x98, 0xac, 0x12, 0xdf, 0xcc, 0x9f, 0xe4, 0x54,
+ 0xe4, 0x6b, 0x8c, 0x02, 0x31, 0x17, 0x1b, 0xcd, 0x20, 0xeb, 0x52, 0xfe,
+ 0x86, 0xe4, 0x50, 0x64, 0x92, 0x46, 0xd2, 0xb4, 0x2c, 0x8f, 0x90, 0x18,
+ 0x40, 0x7a, 0x23, 0x24, 0x88, 0xd1, 0x64, 0x47, 0x3c, 0x20, 0x2f, 0xcb,
+ 0x2d, 0xa6, 0xfd, 0x20, 0x7f, 0xdc, 0x7a, 0xf9, 0x27, 0xcb, 0x03, 0x72,
+ 0x24, 0x2b, 0x03, 0xcb,
+};
+static const struct drbg_kat_no_reseed kat1265_t = {
+ 4, kat1265_entropyin, kat1265_nonce, kat1265_persstr,
+ kat1265_addin0, kat1265_addin1, kat1265_retbits
+};
+static const struct drbg_kat kat1265 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1265_t
+};
+
+static const unsigned char kat1266_entropyin[] = {
+ 0x88, 0xee, 0xe4, 0x06, 0x79, 0xe4, 0x65, 0xdf, 0xf3, 0x84, 0x1a, 0x2f,
+ 0x0d, 0x22, 0x49, 0xd7, 0x50, 0x8b, 0x1e, 0xb2, 0xe3, 0x00, 0x9f, 0x93,
+ 0xb9, 0x2b, 0x62, 0x8b, 0xec, 0x52, 0xe9, 0xba, 0xa9, 0x22, 0xb6, 0x0e,
+ 0xef, 0x9d, 0x26, 0xa4, 0x8b, 0x33, 0x63, 0x70, 0x10, 0xf5, 0xa7, 0x62,
+};
+static const unsigned char kat1266_nonce[] = {0};
+static const unsigned char kat1266_persstr[] = {0};
+static const unsigned char kat1266_addin0[] = {0};
+static const unsigned char kat1266_addin1[] = {0};
+static const unsigned char kat1266_retbits[] = {
+ 0x0d, 0xad, 0x2a, 0x6b, 0x43, 0x80, 0x75, 0xc4, 0xb2, 0xdc, 0x6a, 0x2b,
+ 0xa7, 0xbc, 0x31, 0xfd, 0x54, 0x33, 0x72, 0xd9, 0x7b, 0xd4, 0x09, 0xba,
+ 0x38, 0x1d, 0x48, 0x1c, 0xce, 0xee, 0x4e, 0x81, 0xf6, 0x98, 0xbb, 0x87,
+ 0x30, 0x12, 0x3b, 0x54, 0xca, 0x5c, 0xea, 0xd0, 0x22, 0x68, 0x83, 0x7b,
+ 0xb3, 0xb3, 0x98, 0x79, 0xd9, 0xce, 0x14, 0x71, 0xac, 0x0f, 0xfc, 0x33,
+ 0xc4, 0xd4, 0xf8, 0xf5,
+};
+static const struct drbg_kat_no_reseed kat1266_t = {
+ 5, kat1266_entropyin, kat1266_nonce, kat1266_persstr,
+ kat1266_addin0, kat1266_addin1, kat1266_retbits
+};
+static const struct drbg_kat kat1266 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1266_t
+};
+
+static const unsigned char kat1267_entropyin[] = {
+ 0x6a, 0xf8, 0xa2, 0xd4, 0x82, 0x13, 0x94, 0x98, 0xf9, 0x53, 0x5d, 0xd3,
+ 0x28, 0x75, 0xac, 0x4a, 0x11, 0x11, 0xf2, 0x4c, 0x99, 0x23, 0x3b, 0x0e,
+ 0x0a, 0xa0, 0xd6, 0xc2, 0x80, 0x32, 0x9b, 0x5d, 0xa4, 0x2d, 0x81, 0xee,
+ 0xf5, 0x4d, 0x71, 0x6e, 0xb2, 0x95, 0xf9, 0x71, 0x89, 0x30, 0x4e, 0x9e,
+};
+static const unsigned char kat1267_nonce[] = {0};
+static const unsigned char kat1267_persstr[] = {0};
+static const unsigned char kat1267_addin0[] = {0};
+static const unsigned char kat1267_addin1[] = {0};
+static const unsigned char kat1267_retbits[] = {
+ 0x5a, 0x41, 0xdd, 0x0e, 0xba, 0x5e, 0x6c, 0x37, 0xb4, 0x05, 0x0c, 0x3f,
+ 0x8f, 0x93, 0x6a, 0x32, 0x02, 0xe3, 0x3c, 0x3e, 0x4e, 0xf9, 0xdf, 0x75,
+ 0x49, 0xbc, 0xf4, 0x11, 0x20, 0x4b, 0x4a, 0x81, 0x43, 0x97, 0x9b, 0xc9,
+ 0xf9, 0xca, 0x7e, 0xfe, 0xaf, 0xa4, 0xfe, 0xb2, 0x1f, 0xec, 0xaa, 0xe0,
+ 0x4c, 0x85, 0xc0, 0xc7, 0x75, 0x7c, 0xc6, 0x67, 0x6f, 0x78, 0xff, 0xf1,
+ 0x42, 0x67, 0xe7, 0x26,
+};
+static const struct drbg_kat_no_reseed kat1267_t = {
+ 6, kat1267_entropyin, kat1267_nonce, kat1267_persstr,
+ kat1267_addin0, kat1267_addin1, kat1267_retbits
+};
+static const struct drbg_kat kat1267 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1267_t
+};
+
+static const unsigned char kat1268_entropyin[] = {
+ 0xcb, 0xbf, 0xf5, 0x7b, 0xf9, 0x8a, 0x6c, 0xd4, 0x28, 0xcb, 0xd6, 0x61,
+ 0x0d, 0x54, 0x3b, 0xe6, 0x78, 0x16, 0x80, 0xea, 0x29, 0x19, 0xca, 0x90,
+ 0xfc, 0x78, 0xe7, 0x4d, 0x29, 0x93, 0x99, 0x31, 0x9d, 0xff, 0x36, 0x64,
+ 0x7b, 0x4a, 0x6a, 0x4a, 0x82, 0x09, 0xbe, 0x1f, 0x78, 0x3f, 0xc1, 0x9d,
+};
+static const unsigned char kat1268_nonce[] = {0};
+static const unsigned char kat1268_persstr[] = {0};
+static const unsigned char kat1268_addin0[] = {0};
+static const unsigned char kat1268_addin1[] = {0};
+static const unsigned char kat1268_retbits[] = {
+ 0x5e, 0x2e, 0x2f, 0xd2, 0xe6, 0xfa, 0x9a, 0x72, 0x73, 0xa6, 0xc3, 0x5e,
+ 0x12, 0x02, 0x7a, 0x8c, 0xa6, 0x7f, 0xd9, 0x1f, 0xd4, 0xa0, 0x35, 0x2a,
+ 0x05, 0xbc, 0xfe, 0x70, 0x8f, 0x56, 0xd6, 0x0f, 0x2c, 0x94, 0x4b, 0x69,
+ 0xa1, 0x08, 0xeb, 0x21, 0x98, 0xd3, 0x6f, 0xd6, 0xfd, 0x05, 0xec, 0x13,
+ 0x14, 0xb4, 0x06, 0x0e, 0x1a, 0x5b, 0x52, 0x96, 0x12, 0x87, 0xa5, 0xaf,
+ 0x0a, 0x08, 0x10, 0xec,
+};
+static const struct drbg_kat_no_reseed kat1268_t = {
+ 7, kat1268_entropyin, kat1268_nonce, kat1268_persstr,
+ kat1268_addin0, kat1268_addin1, kat1268_retbits
+};
+static const struct drbg_kat kat1268 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1268_t
+};
+
+static const unsigned char kat1269_entropyin[] = {
+ 0x06, 0xb4, 0xc6, 0x06, 0x00, 0x9b, 0xf1, 0x1d, 0xd4, 0xb8, 0x6f, 0xed,
+ 0x54, 0x4f, 0x67, 0x2c, 0x12, 0xee, 0x0d, 0x1a, 0xb7, 0xd9, 0x99, 0xf4,
+ 0x92, 0xa7, 0xc1, 0x37, 0x86, 0x0f, 0x28, 0x02, 0x6a, 0xb9, 0x9e, 0x1f,
+ 0x19, 0xc8, 0xaa, 0x4f, 0xaa, 0xed, 0x86, 0x10, 0xa2, 0xd8, 0x9b, 0xf5,
+};
+static const unsigned char kat1269_nonce[] = {0};
+static const unsigned char kat1269_persstr[] = {0};
+static const unsigned char kat1269_addin0[] = {0};
+static const unsigned char kat1269_addin1[] = {0};
+static const unsigned char kat1269_retbits[] = {
+ 0x11, 0x8f, 0xc4, 0xbb, 0xeb, 0x0e, 0x58, 0x92, 0x03, 0xc5, 0x68, 0xca,
+ 0x65, 0xf5, 0x36, 0xa8, 0x98, 0x88, 0xb2, 0xfa, 0x6a, 0x9a, 0x2d, 0xe6,
+ 0x12, 0x12, 0xb0, 0xa1, 0x1d, 0x06, 0x55, 0xea, 0xd9, 0x4c, 0xfc, 0x30,
+ 0x93, 0x66, 0x56, 0x11, 0x7a, 0xf2, 0xfe, 0xeb, 0xe5, 0xdd, 0x07, 0xf1,
+ 0x9e, 0xe1, 0x6a, 0xd0, 0x5a, 0x7b, 0x4c, 0xae, 0x06, 0xb4, 0x4e, 0x5e,
+ 0xc2, 0x2d, 0x63, 0x97,
+};
+static const struct drbg_kat_no_reseed kat1269_t = {
+ 8, kat1269_entropyin, kat1269_nonce, kat1269_persstr,
+ kat1269_addin0, kat1269_addin1, kat1269_retbits
+};
+static const struct drbg_kat kat1269 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1269_t
+};
+
+static const unsigned char kat1270_entropyin[] = {
+ 0x30, 0xdc, 0xe1, 0x11, 0x2c, 0x85, 0x90, 0xe2, 0x25, 0x14, 0xe6, 0xcf,
+ 0x57, 0x03, 0x04, 0xbd, 0x40, 0xc9, 0x62, 0xf3, 0x68, 0x40, 0xb5, 0x29,
+ 0x13, 0x45, 0x47, 0x66, 0xdf, 0x4d, 0x0d, 0x74, 0x56, 0x00, 0xd6, 0x52,
+ 0x00, 0x5f, 0xfb, 0x25, 0x76, 0x05, 0x69, 0x97, 0x3f, 0x2f, 0xce, 0x28,
+};
+static const unsigned char kat1270_nonce[] = {0};
+static const unsigned char kat1270_persstr[] = {0};
+static const unsigned char kat1270_addin0[] = {0};
+static const unsigned char kat1270_addin1[] = {0};
+static const unsigned char kat1270_retbits[] = {
+ 0x75, 0x79, 0x4c, 0x59, 0xa4, 0x79, 0x01, 0x9c, 0x0c, 0x66, 0xa4, 0x26,
+ 0xb5, 0x5a, 0x73, 0x50, 0x17, 0x32, 0xd5, 0x3a, 0x1f, 0x58, 0xc9, 0x06,
+ 0xc8, 0x77, 0xa7, 0x33, 0x49, 0xbe, 0x25, 0x2b, 0xb9, 0x91, 0xc4, 0xd1,
+ 0x13, 0xf2, 0xf4, 0x4f, 0x41, 0x21, 0xde, 0xe9, 0x0d, 0x72, 0xc2, 0x88,
+ 0x7e, 0x49, 0x19, 0x6a, 0x06, 0x10, 0x10, 0x88, 0x18, 0x55, 0xb6, 0xcc,
+ 0x09, 0x2d, 0xe8, 0x97,
+};
+static const struct drbg_kat_no_reseed kat1270_t = {
+ 9, kat1270_entropyin, kat1270_nonce, kat1270_persstr,
+ kat1270_addin0, kat1270_addin1, kat1270_retbits
+};
+static const struct drbg_kat kat1270 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1270_t
+};
+
+static const unsigned char kat1271_entropyin[] = {
+ 0x80, 0xcf, 0x2e, 0xcf, 0x96, 0xd1, 0x80, 0xd6, 0xa5, 0x5c, 0xff, 0x12,
+ 0xd3, 0x35, 0xb5, 0x52, 0x4f, 0x08, 0xe0, 0x64, 0x85, 0x49, 0x5a, 0x21,
+ 0xee, 0xcd, 0x74, 0xb6, 0xc2, 0x07, 0xb0, 0x86, 0xc7, 0xce, 0xda, 0x69,
+ 0x3e, 0x28, 0xfe, 0x40, 0xd1, 0xc7, 0xc0, 0xb7, 0xed, 0x5e, 0xc2, 0x1c,
+};
+static const unsigned char kat1271_nonce[] = {0};
+static const unsigned char kat1271_persstr[] = {0};
+static const unsigned char kat1271_addin0[] = {0};
+static const unsigned char kat1271_addin1[] = {0};
+static const unsigned char kat1271_retbits[] = {
+ 0x3b, 0xa3, 0x73, 0xb5, 0xd7, 0x27, 0xce, 0xb0, 0x89, 0x0a, 0xbd, 0x97,
+ 0x07, 0x3a, 0x4f, 0x5b, 0x49, 0xef, 0xe1, 0x42, 0x64, 0x83, 0x6c, 0xef,
+ 0x68, 0xe2, 0x98, 0x4e, 0x23, 0x9d, 0x3d, 0x29, 0x2a, 0xaf, 0x4b, 0x1a,
+ 0x28, 0xc9, 0x09, 0x22, 0x55, 0x4e, 0xc1, 0x7b, 0x6f, 0xb3, 0x2f, 0x92,
+ 0xf8, 0xc5, 0x2c, 0x15, 0x2f, 0x98, 0x04, 0x9a, 0x7e, 0x80, 0x4d, 0x44,
+ 0x51, 0xa6, 0x84, 0x1d,
+};
+static const struct drbg_kat_no_reseed kat1271_t = {
+ 10, kat1271_entropyin, kat1271_nonce, kat1271_persstr,
+ kat1271_addin0, kat1271_addin1, kat1271_retbits
+};
+static const struct drbg_kat kat1271 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1271_t
+};
+
+static const unsigned char kat1272_entropyin[] = {
+ 0x1c, 0x77, 0xe9, 0xb3, 0x97, 0x29, 0x09, 0xa4, 0x0e, 0x22, 0x25, 0x3a,
+ 0x4a, 0x8b, 0xcc, 0x25, 0xf0, 0xb5, 0xf1, 0x4b, 0x45, 0xef, 0xc1, 0x0c,
+ 0x7c, 0x0e, 0xf7, 0xd9, 0x74, 0x94, 0xf0, 0xc2, 0x5e, 0x0b, 0xa9, 0x6e,
+ 0x0a, 0x65, 0xdf, 0x07, 0x22, 0x9c, 0xf2, 0xfb, 0x41, 0xa9, 0xab, 0x72,
+};
+static const unsigned char kat1272_nonce[] = {0};
+static const unsigned char kat1272_persstr[] = {0};
+static const unsigned char kat1272_addin0[] = {0};
+static const unsigned char kat1272_addin1[] = {0};
+static const unsigned char kat1272_retbits[] = {
+ 0x09, 0xe7, 0x4c, 0x99, 0x83, 0x95, 0x54, 0xbe, 0x80, 0x0a, 0x3e, 0xbb,
+ 0xff, 0x12, 0xdc, 0x6b, 0xe1, 0x5c, 0xce, 0x42, 0x5d, 0x72, 0x05, 0x52,
+ 0x38, 0xed, 0x94, 0xc3, 0xac, 0xc0, 0xaf, 0xc1, 0x67, 0x4a, 0x3b, 0x29,
+ 0x50, 0x65, 0xd2, 0x9c, 0xff, 0x73, 0xc8, 0xd1, 0x8c, 0x9d, 0x9e, 0x7c,
+ 0x2f, 0xfe, 0x36, 0xcd, 0xed, 0xe7, 0x18, 0x42, 0x6d, 0x4c, 0xad, 0xe0,
+ 0x01, 0x58, 0x40, 0xff,
+};
+static const struct drbg_kat_no_reseed kat1272_t = {
+ 11, kat1272_entropyin, kat1272_nonce, kat1272_persstr,
+ kat1272_addin0, kat1272_addin1, kat1272_retbits
+};
+static const struct drbg_kat kat1272 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1272_t
+};
+
+static const unsigned char kat1273_entropyin[] = {
+ 0x1d, 0x43, 0xb8, 0x2a, 0x55, 0x45, 0xf9, 0xa2, 0x37, 0x8f, 0xed, 0xb8,
+ 0x6b, 0x53, 0x0f, 0xd2, 0xfa, 0xdb, 0xf9, 0x7f, 0x2b, 0xc0, 0x2f, 0x87,
+ 0x7d, 0x1a, 0xfb, 0xa7, 0xe4, 0xbb, 0x8c, 0x0c, 0x29, 0xd4, 0x34, 0xfd,
+ 0x56, 0x5c, 0x8d, 0x1a, 0x26, 0x2b, 0xb8, 0x69, 0x4d, 0xa1, 0x9a, 0x64,
+};
+static const unsigned char kat1273_nonce[] = {0};
+static const unsigned char kat1273_persstr[] = {0};
+static const unsigned char kat1273_addin0[] = {0};
+static const unsigned char kat1273_addin1[] = {0};
+static const unsigned char kat1273_retbits[] = {
+ 0x29, 0x53, 0x1c, 0xe7, 0x7a, 0x4f, 0x47, 0xb7, 0xda, 0x26, 0xad, 0x6f,
+ 0xbc, 0xb0, 0x99, 0x5b, 0xb3, 0x3a, 0x0f, 0x70, 0x2c, 0xcb, 0x7c, 0x5b,
+ 0x09, 0x1b, 0x1e, 0xb6, 0x56, 0x2a, 0x7f, 0xf3, 0xc8, 0xa4, 0xaa, 0xe7,
+ 0x3b, 0xdb, 0x24, 0x7b, 0xf3, 0x27, 0xc7, 0x1f, 0x16, 0xe5, 0xbf, 0xff,
+ 0xd8, 0x27, 0x58, 0xcf, 0x0b, 0x82, 0xcc, 0x58, 0x96, 0x01, 0x7a, 0xb8,
+ 0x51, 0xab, 0x52, 0xb0,
+};
+static const struct drbg_kat_no_reseed kat1273_t = {
+ 12, kat1273_entropyin, kat1273_nonce, kat1273_persstr,
+ kat1273_addin0, kat1273_addin1, kat1273_retbits
+};
+static const struct drbg_kat kat1273 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1273_t
+};
+
+static const unsigned char kat1274_entropyin[] = {
+ 0x37, 0x5d, 0xec, 0x29, 0xf8, 0xa6, 0xff, 0xbe, 0xb7, 0x1c, 0xbe, 0x3a,
+ 0x2a, 0x37, 0x79, 0xa3, 0x71, 0x49, 0x63, 0x90, 0xd4, 0xcd, 0x5d, 0xf1,
+ 0xdf, 0x87, 0x2b, 0x63, 0x2f, 0x14, 0xa9, 0x1e, 0xac, 0xf8, 0xda, 0x77,
+ 0xf6, 0x24, 0xed, 0x03, 0x23, 0xc8, 0x03, 0x88, 0x6c, 0xa8, 0xda, 0x09,
+};
+static const unsigned char kat1274_nonce[] = {0};
+static const unsigned char kat1274_persstr[] = {0};
+static const unsigned char kat1274_addin0[] = {0};
+static const unsigned char kat1274_addin1[] = {0};
+static const unsigned char kat1274_retbits[] = {
+ 0xd3, 0x9c, 0xb6, 0x6a, 0xe6, 0x42, 0x19, 0xa8, 0xde, 0x99, 0xb4, 0xf6,
+ 0x3d, 0xaa, 0x85, 0x36, 0xde, 0xfe, 0xaa, 0x53, 0xa0, 0x55, 0xa6, 0x6e,
+ 0xc3, 0xde, 0x18, 0xc4, 0x16, 0x73, 0xfc, 0x92, 0x6b, 0x1a, 0x24, 0x6c,
+ 0x78, 0x42, 0x61, 0xf0, 0x2b, 0x22, 0x48, 0x68, 0x87, 0x85, 0x8c, 0xa1,
+ 0xdf, 0x59, 0x3b, 0x4e, 0xa4, 0x33, 0xf6, 0x5d, 0x0b, 0x5b, 0xb8, 0x52,
+ 0x87, 0xde, 0xe8, 0xb5,
+};
+static const struct drbg_kat_no_reseed kat1274_t = {
+ 13, kat1274_entropyin, kat1274_nonce, kat1274_persstr,
+ kat1274_addin0, kat1274_addin1, kat1274_retbits
+};
+static const struct drbg_kat kat1274 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1274_t
+};
+
+static const unsigned char kat1275_entropyin[] = {
+ 0x10, 0x0e, 0x17, 0x65, 0x74, 0xbd, 0x55, 0x43, 0x84, 0x77, 0xf0, 0x15,
+ 0x3e, 0xd0, 0x4b, 0x6c, 0xf2, 0x21, 0xbf, 0x6c, 0x1f, 0xcd, 0x71, 0x41,
+ 0xab, 0xa1, 0x0c, 0x80, 0xd7, 0x1e, 0xb2, 0xe1, 0x6b, 0xc8, 0x21, 0x3a,
+ 0xed, 0x68, 0x9f, 0x44, 0xef, 0x57, 0x80, 0x73, 0x34, 0xdc, 0x3d, 0x12,
+};
+static const unsigned char kat1275_nonce[] = {0};
+static const unsigned char kat1275_persstr[] = {0};
+static const unsigned char kat1275_addin0[] = {0};
+static const unsigned char kat1275_addin1[] = {0};
+static const unsigned char kat1275_retbits[] = {
+ 0xb4, 0x31, 0x5c, 0xc4, 0x47, 0x0d, 0x4c, 0x50, 0xa1, 0x58, 0x36, 0xf2,
+ 0x18, 0xb2, 0x1c, 0x96, 0x66, 0x8d, 0x32, 0xea, 0xfc, 0x16, 0x49, 0xcf,
+ 0x6c, 0x92, 0xb9, 0x6f, 0x07, 0x16, 0xaa, 0x54, 0x58, 0x2a, 0x31, 0xa1,
+ 0xc5, 0xf5, 0x97, 0xb8, 0x0f, 0x62, 0x10, 0x26, 0x22, 0x36, 0x9e, 0x42,
+ 0x2d, 0x98, 0xc3, 0x4d, 0x14, 0x98, 0xcb, 0x9b, 0xc0, 0x1d, 0x41, 0x8a,
+ 0x4d, 0x23, 0x20, 0x74,
+};
+static const struct drbg_kat_no_reseed kat1275_t = {
+ 14, kat1275_entropyin, kat1275_nonce, kat1275_persstr,
+ kat1275_addin0, kat1275_addin1, kat1275_retbits
+};
+static const struct drbg_kat kat1275 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1275_t
+};
+
+static const unsigned char kat1276_entropyin[] = {
+ 0xe9, 0xcd, 0xe3, 0xf9, 0xce, 0x03, 0x66, 0xde, 0xb1, 0x61, 0xc4, 0x0b,
+ 0x16, 0x21, 0x64, 0x1e, 0x58, 0x3b, 0xb5, 0x51, 0x14, 0xd9, 0x12, 0xc4,
+ 0x0b, 0x7a, 0x7e, 0x7e, 0x2e, 0xa5, 0x3e, 0x50, 0x66, 0x5c, 0xa1, 0x33,
+ 0xa5, 0x0e, 0x93, 0x4c, 0xc1, 0xb4, 0xdb, 0xbf, 0x89, 0xc0, 0x72, 0xe0,
+};
+static const unsigned char kat1276_nonce[] = {0};
+static const unsigned char kat1276_persstr[] = {0};
+static const unsigned char kat1276_addin0[] = {
+ 0xbe, 0x3d, 0xfb, 0xe5, 0xc9, 0x07, 0x9f, 0x16, 0x1b, 0x21, 0xb7, 0xa0,
+ 0x78, 0x1b, 0x60, 0x73, 0x63, 0xa6, 0x53, 0x35, 0x0a, 0xf6, 0x8d, 0x82,
+ 0xe2, 0x1c, 0xe1, 0x49, 0xc2, 0xfc, 0x3b, 0x98, 0xca, 0xc3, 0x9e, 0x72,
+ 0x75, 0x1a, 0x61, 0xda, 0x13, 0xa0, 0x61, 0x6e, 0x31, 0x11, 0x8e, 0x96,
+};
+static const unsigned char kat1276_addin1[] = {
+ 0x7e, 0x16, 0x27, 0xe9, 0x8f, 0xaa, 0x46, 0x2e, 0xf6, 0x31, 0x4d, 0x45,
+ 0xa2, 0x31, 0xb7, 0xf1, 0xa1, 0x4a, 0x54, 0xce, 0x86, 0x15, 0x50, 0x0d,
+ 0x14, 0x44, 0x74, 0xa9, 0x2d, 0x25, 0x9f, 0xcc, 0x23, 0x0f, 0xfb, 0x90,
+ 0x98, 0x53, 0xc1, 0x68, 0xbd, 0x93, 0x53, 0x16, 0x31, 0xde, 0x25, 0xd1,
+};
+static const unsigned char kat1276_retbits[] = {
+ 0x2f, 0x26, 0x5f, 0xbe, 0x14, 0x62, 0x01, 0x48, 0x43, 0xa1, 0x65, 0x48,
+ 0xe1, 0x72, 0x46, 0x40, 0x60, 0xc4, 0x15, 0x91, 0xb9, 0xad, 0xf1, 0xb7,
+ 0x6a, 0x79, 0xae, 0x51, 0xc9, 0xa4, 0x52, 0x23, 0xe6, 0xef, 0x39, 0xa1,
+ 0xec, 0xa2, 0x61, 0x3c, 0xe9, 0xd6, 0x82, 0x54, 0x5d, 0x96, 0x7d, 0x88,
+ 0xb3, 0x48, 0x08, 0xeb, 0x4d, 0x9a, 0x8e, 0x42, 0xcf, 0xed, 0x82, 0xea,
+ 0xfc, 0x33, 0x4d, 0x62,
+};
+static const struct drbg_kat_no_reseed kat1276_t = {
+ 0, kat1276_entropyin, kat1276_nonce, kat1276_persstr,
+ kat1276_addin0, kat1276_addin1, kat1276_retbits
+};
+static const struct drbg_kat kat1276 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1276_t
+};
+
+static const unsigned char kat1277_entropyin[] = {
+ 0x06, 0xce, 0x94, 0x61, 0xe3, 0xce, 0xfc, 0xda, 0x7a, 0x9d, 0xa3, 0xc0,
+ 0xf0, 0x40, 0xba, 0xc0, 0x82, 0x57, 0xdd, 0x41, 0x35, 0x84, 0x8a, 0x0a,
+ 0xa0, 0x52, 0xf6, 0x27, 0x6a, 0x3e, 0x18, 0xf0, 0xca, 0x88, 0x17, 0x07,
+ 0x0a, 0x63, 0xcc, 0xf2, 0xd9, 0xbf, 0xc1, 0x56, 0x5c, 0x99, 0xfb, 0x10,
+};
+static const unsigned char kat1277_nonce[] = {0};
+static const unsigned char kat1277_persstr[] = {0};
+static const unsigned char kat1277_addin0[] = {
+ 0xfd, 0xf8, 0x95, 0xd5, 0x06, 0x96, 0x66, 0x21, 0xa0, 0x1e, 0x96, 0x72,
+ 0x0f, 0x9e, 0x21, 0xb7, 0xea, 0xc2, 0x75, 0x8f, 0x06, 0x87, 0x28, 0x39,
+ 0x36, 0x6d, 0x97, 0xfa, 0xe1, 0xcd, 0xfb, 0x4d, 0x01, 0x90, 0x21, 0x28,
+ 0xfe, 0x8c, 0x61, 0x8e, 0x9c, 0x72, 0x74, 0xcb, 0x5c, 0x47, 0xed, 0x54,
+};
+static const unsigned char kat1277_addin1[] = {
+ 0x79, 0x7d, 0x1d, 0x08, 0xca, 0xc4, 0xb4, 0xd1, 0x0a, 0x99, 0x90, 0x16,
+ 0xc8, 0xb1, 0x48, 0xc5, 0x8b, 0x1d, 0xac, 0xca, 0x0a, 0x8e, 0x21, 0x11,
+ 0xa7, 0xee, 0x5a, 0xc2, 0xd1, 0x12, 0x56, 0x20, 0xf6, 0x0e, 0xe5, 0x5a,
+ 0xf0, 0x9b, 0x92, 0x0e, 0x87, 0x16, 0xfe, 0xef, 0x7c, 0x05, 0x72, 0x85,
+};
+static const unsigned char kat1277_retbits[] = {
+ 0xfd, 0x10, 0xda, 0x70, 0x96, 0xbb, 0x83, 0x1e, 0x96, 0x8a, 0x5d, 0xd4,
+ 0xb5, 0x51, 0xda, 0x38, 0x74, 0x05, 0xc3, 0xfc, 0xb9, 0xa3, 0x29, 0x8c,
+ 0x62, 0x66, 0x44, 0xb6, 0x6c, 0x19, 0xfc, 0x6d, 0xe8, 0x60, 0x8c, 0x81,
+ 0xa7, 0xf7, 0x99, 0x71, 0xda, 0x39, 0x03, 0x02, 0xb2, 0x1f, 0x34, 0xc9,
+ 0xcd, 0x3a, 0xde, 0xed, 0xe8, 0x71, 0x46, 0x9a, 0x4a, 0xa5, 0x57, 0xa4,
+ 0xed, 0xa5, 0x4e, 0x74,
+};
+static const struct drbg_kat_no_reseed kat1277_t = {
+ 1, kat1277_entropyin, kat1277_nonce, kat1277_persstr,
+ kat1277_addin0, kat1277_addin1, kat1277_retbits
+};
+static const struct drbg_kat kat1277 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1277_t
+};
+
+static const unsigned char kat1278_entropyin[] = {
+ 0x96, 0x19, 0xf3, 0xe7, 0x03, 0x8d, 0xec, 0x4e, 0xd5, 0x62, 0x27, 0xa1,
+ 0x79, 0xd9, 0xb2, 0x40, 0x02, 0x67, 0x8c, 0x16, 0x7e, 0x81, 0x55, 0x37,
+ 0xc4, 0xef, 0xd5, 0x01, 0xea, 0xf6, 0xda, 0x93, 0x2d, 0x77, 0x20, 0x66,
+ 0xe2, 0xc1, 0xea, 0x7b, 0xd0, 0x66, 0x16, 0x9b, 0x40, 0xb7, 0x37, 0x87,
+};
+static const unsigned char kat1278_nonce[] = {0};
+static const unsigned char kat1278_persstr[] = {0};
+static const unsigned char kat1278_addin0[] = {
+ 0x93, 0xeb, 0x47, 0x15, 0xf8, 0x74, 0xc3, 0xf4, 0x48, 0x32, 0x36, 0xb1,
+ 0x78, 0x5d, 0x6b, 0xa9, 0x0a, 0xdb, 0x25, 0xde, 0xd4, 0xfa, 0xcd, 0xa2,
+ 0x42, 0x56, 0xd7, 0xdb, 0x45, 0x02, 0x12, 0x6e, 0x00, 0xbf, 0xd0, 0x11,
+ 0x9d, 0xde, 0x79, 0x7f, 0x1d, 0xb8, 0x75, 0x50, 0xd0, 0xe5, 0x8e, 0xf2,
+};
+static const unsigned char kat1278_addin1[] = {
+ 0x39, 0xd0, 0x52, 0x3e, 0x8a, 0xea, 0x73, 0xcb, 0x05, 0x84, 0xd9, 0xc3,
+ 0xab, 0x11, 0xf7, 0x95, 0x3f, 0xd1, 0x5d, 0x4e, 0xa9, 0x53, 0xc6, 0xf7,
+ 0x92, 0x4a, 0x8f, 0x98, 0x9f, 0x28, 0x5c, 0x51, 0x62, 0xbc, 0x50, 0xab,
+ 0xc0, 0xfa, 0x29, 0xd2, 0xce, 0x70, 0x02, 0xee, 0x4f, 0x6a, 0x3b, 0x16,
+};
+static const unsigned char kat1278_retbits[] = {
+ 0xb3, 0xff, 0xe4, 0xf6, 0x0a, 0xcd, 0x48, 0x4e, 0xf3, 0x31, 0x90, 0x1d,
+ 0x93, 0x20, 0xe4, 0x97, 0x48, 0x63, 0x22, 0x55, 0x7c, 0x0d, 0x2f, 0x05,
+ 0x88, 0xb9, 0xbe, 0xcf, 0xa9, 0x7d, 0x4e, 0x36, 0xae, 0xd9, 0x1b, 0xe3,
+ 0xa4, 0xba, 0x90, 0x0f, 0xfb, 0x12, 0x6f, 0x52, 0xb5, 0x12, 0xca, 0x3b,
+ 0x3b, 0x15, 0xd6, 0x0c, 0x1d, 0xb4, 0x43, 0xc8, 0x4b, 0xf1, 0x3a, 0x9c,
+ 0x9e, 0x9c, 0x3d, 0xd3,
+};
+static const struct drbg_kat_no_reseed kat1278_t = {
+ 2, kat1278_entropyin, kat1278_nonce, kat1278_persstr,
+ kat1278_addin0, kat1278_addin1, kat1278_retbits
+};
+static const struct drbg_kat kat1278 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1278_t
+};
+
+static const unsigned char kat1279_entropyin[] = {
+ 0xf9, 0xf4, 0x15, 0x1b, 0xc7, 0xc9, 0x01, 0x72, 0x6b, 0x44, 0x04, 0x40,
+ 0x72, 0xb0, 0x1d, 0x79, 0x18, 0x2d, 0xc5, 0xa1, 0x90, 0xe9, 0x74, 0x4b,
+ 0x2e, 0xf8, 0x22, 0xe8, 0x0b, 0x8c, 0xbb, 0xd1, 0xeb, 0x18, 0x14, 0xbb,
+ 0x94, 0x8d, 0xa6, 0x6e, 0xb1, 0xc1, 0xd3, 0xa9, 0x65, 0x42, 0x73, 0x79,
+};
+static const unsigned char kat1279_nonce[] = {0};
+static const unsigned char kat1279_persstr[] = {0};
+static const unsigned char kat1279_addin0[] = {
+ 0xd5, 0x7d, 0xa7, 0xb6, 0x02, 0x33, 0xe3, 0x5b, 0xe5, 0x0c, 0xb7, 0x93,
+ 0x88, 0x94, 0x66, 0x83, 0x08, 0x25, 0x0a, 0x46, 0xd0, 0x32, 0xde, 0xb6,
+ 0x67, 0xf6, 0xbc, 0x01, 0x41, 0x89, 0xb9, 0x53, 0x92, 0xf6, 0x1c, 0x73,
+ 0xe6, 0xfd, 0x19, 0x1d, 0x7a, 0xeb, 0xf1, 0x2a, 0x99, 0x10, 0xbc, 0xf6,
+};
+static const unsigned char kat1279_addin1[] = {
+ 0x23, 0x5f, 0xf3, 0xd2, 0xcf, 0x24, 0x27, 0x6e, 0xad, 0x6c, 0xe9, 0x6e,
+ 0x7d, 0x36, 0x44, 0xab, 0x93, 0xfe, 0xd7, 0xfb, 0x5a, 0xb4, 0x5a, 0x01,
+ 0x16, 0x8e, 0xc9, 0x17, 0x50, 0xeb, 0x15, 0x59, 0xfc, 0xb2, 0x21, 0x9c,
+ 0x5c, 0xed, 0x59, 0xe5, 0xd7, 0x2e, 0x7b, 0xa4, 0xa6, 0x90, 0x49, 0xba,
+};
+static const unsigned char kat1279_retbits[] = {
+ 0xfc, 0x44, 0x4c, 0x8f, 0x78, 0x78, 0xee, 0xb5, 0xc7, 0xcf, 0xcc, 0x48,
+ 0xdc, 0x0b, 0x9a, 0xaa, 0x45, 0xc8, 0x9f, 0x99, 0xa8, 0xa6, 0x2e, 0xb1,
+ 0xb2, 0xd0, 0x0d, 0xc6, 0xda, 0x06, 0xdc, 0x8b, 0x1f, 0x18, 0xfa, 0x1c,
+ 0xc9, 0x21, 0x85, 0x99, 0x66, 0xb3, 0x6b, 0x6c, 0x64, 0x54, 0x87, 0x6c,
+ 0x49, 0xb0, 0x06, 0xe1, 0x65, 0x83, 0x8c, 0x98, 0x28, 0x83, 0x47, 0x15,
+ 0x9a, 0x9a, 0xa2, 0xc1,
+};
+static const struct drbg_kat_no_reseed kat1279_t = {
+ 3, kat1279_entropyin, kat1279_nonce, kat1279_persstr,
+ kat1279_addin0, kat1279_addin1, kat1279_retbits
+};
+static const struct drbg_kat kat1279 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1279_t
+};
+
+static const unsigned char kat1280_entropyin[] = {
+ 0xec, 0xf1, 0x4d, 0x2e, 0xbb, 0x58, 0xf9, 0x1f, 0x45, 0xad, 0xc3, 0xba,
+ 0xbc, 0xe2, 0xe6, 0x0e, 0xe4, 0xac, 0x24, 0xbd, 0x79, 0x90, 0x72, 0x78,
+ 0x1b, 0x7f, 0x44, 0x25, 0x09, 0xfe, 0x40, 0xe0, 0x55, 0x33, 0x74, 0xa0,
+ 0x6a, 0x08, 0xfe, 0x65, 0x2d, 0x75, 0xa0, 0xd5, 0x25, 0x4b, 0xb6, 0x56,
+};
+static const unsigned char kat1280_nonce[] = {0};
+static const unsigned char kat1280_persstr[] = {0};
+static const unsigned char kat1280_addin0[] = {
+ 0xcf, 0x26, 0x9f, 0x6b, 0xd6, 0xd2, 0x88, 0x0e, 0x62, 0x2d, 0x1d, 0xdd,
+ 0x3e, 0xbb, 0xa2, 0x1a, 0x98, 0x84, 0x62, 0x28, 0xd4, 0x0a, 0x7f, 0x13,
+ 0x66, 0x9b, 0x96, 0x4e, 0xe9, 0x56, 0xd9, 0x5e, 0xd9, 0xce, 0x41, 0x29,
+ 0x6a, 0xfb, 0xa0, 0x5d, 0x0c, 0xd1, 0x96, 0x49, 0x94, 0xd1, 0xb5, 0xa5,
+};
+static const unsigned char kat1280_addin1[] = {
+ 0x55, 0x97, 0x76, 0x73, 0x8f, 0x7b, 0x50, 0x7a, 0xfb, 0x03, 0x0b, 0x15,
+ 0x27, 0x04, 0x9d, 0xdc, 0x72, 0x13, 0xd5, 0xd1, 0x6b, 0xb9, 0xe8, 0xe1,
+ 0x58, 0x09, 0xe6, 0x7e, 0xa5, 0xd8, 0x9f, 0x5d, 0xf4, 0xf4, 0xdb, 0x50,
+ 0x11, 0xac, 0x4c, 0x5f, 0x2d, 0x19, 0x61, 0x96, 0xdb, 0x6f, 0xb6, 0x01,
+};
+static const unsigned char kat1280_retbits[] = {
+ 0xb0, 0xc0, 0x56, 0x61, 0x09, 0x22, 0x60, 0xeb, 0xb3, 0x48, 0x96, 0x99,
+ 0xd6, 0x1d, 0x59, 0xc9, 0x75, 0x51, 0x82, 0xde, 0x1c, 0x56, 0x45, 0xb7,
+ 0x57, 0x5e, 0x0b, 0x62, 0x39, 0x55, 0xbd, 0x04, 0x59, 0x3d, 0x04, 0xa2,
+ 0x29, 0x34, 0x9c, 0x6d, 0xa9, 0x15, 0xb4, 0x52, 0x4b, 0x51, 0xa5, 0x5e,
+ 0x8e, 0xc3, 0x5f, 0x30, 0x3b, 0xcc, 0x42, 0x6a, 0x62, 0xbc, 0xc6, 0xf0,
+ 0xda, 0x68, 0x01, 0x25,
+};
+static const struct drbg_kat_no_reseed kat1280_t = {
+ 4, kat1280_entropyin, kat1280_nonce, kat1280_persstr,
+ kat1280_addin0, kat1280_addin1, kat1280_retbits
+};
+static const struct drbg_kat kat1280 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1280_t
+};
+
+static const unsigned char kat1281_entropyin[] = {
+ 0x1c, 0xc9, 0x91, 0xbe, 0x74, 0x33, 0xc1, 0x2b, 0x89, 0x9f, 0x7a, 0x07,
+ 0x57, 0x71, 0x1e, 0x27, 0xb6, 0x59, 0x59, 0x8d, 0x58, 0x6f, 0xb2, 0x35,
+ 0x5e, 0xbb, 0xe6, 0xe7, 0xe9, 0x0f, 0x63, 0x46, 0x54, 0xee, 0xc4, 0xeb,
+ 0x34, 0xe6, 0x48, 0xc2, 0xf3, 0xe6, 0x86, 0x60, 0xd5, 0x8c, 0xb3, 0xa8,
+};
+static const unsigned char kat1281_nonce[] = {0};
+static const unsigned char kat1281_persstr[] = {0};
+static const unsigned char kat1281_addin0[] = {
+ 0xbd, 0xde, 0x52, 0x7b, 0xdc, 0xbc, 0xb2, 0x3e, 0x55, 0xc4, 0x1a, 0x94,
+ 0x86, 0xa4, 0xc5, 0x3f, 0x8c, 0x64, 0x68, 0x76, 0xd0, 0x67, 0xf8, 0x32,
+ 0x31, 0xa7, 0xdf, 0xc6, 0x74, 0x4f, 0x5a, 0xce, 0x3e, 0x69, 0x1e, 0x93,
+ 0x30, 0xee, 0x6f, 0x85, 0x17, 0x9e, 0xc7, 0x53, 0xd7, 0x0c, 0xe6, 0xaa,
+};
+static const unsigned char kat1281_addin1[] = {
+ 0x4a, 0xf6, 0x44, 0x42, 0xff, 0xa4, 0xe4, 0xbd, 0x61, 0xb4, 0xf4, 0x52,
+ 0x7f, 0x60, 0xd7, 0x2f, 0x33, 0x63, 0x3c, 0xac, 0xa4, 0x86, 0x14, 0xf2,
+ 0xeb, 0x26, 0x28, 0x1b, 0x2d, 0x54, 0x5e, 0x1f, 0xea, 0x3e, 0x46, 0x04,
+ 0x8e, 0x6c, 0xca, 0x0a, 0x83, 0x4e, 0xef, 0x19, 0x24, 0x0e, 0x4b, 0xf3,
+};
+static const unsigned char kat1281_retbits[] = {
+ 0xfa, 0x4e, 0x89, 0x14, 0x1d, 0x4a, 0xc2, 0x8a, 0xb5, 0x7a, 0xab, 0xb1,
+ 0x87, 0x65, 0x77, 0x43, 0x98, 0x5c, 0xf4, 0x31, 0xe7, 0x3f, 0x58, 0xd7,
+ 0x09, 0x51, 0x8d, 0x66, 0xcf, 0xa9, 0x81, 0xa7, 0x15, 0x8f, 0xcc, 0xca,
+ 0x26, 0x92, 0xcf, 0x04, 0xaa, 0xb7, 0x23, 0x0e, 0x77, 0x0e, 0x7f, 0xc2,
+ 0xad, 0xe2, 0x40, 0x79, 0xa9, 0x4f, 0x75, 0x0b, 0x08, 0xd7, 0xf6, 0x25,
+ 0xfb, 0xcc, 0x17, 0x3d,
+};
+static const struct drbg_kat_no_reseed kat1281_t = {
+ 5, kat1281_entropyin, kat1281_nonce, kat1281_persstr,
+ kat1281_addin0, kat1281_addin1, kat1281_retbits
+};
+static const struct drbg_kat kat1281 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1281_t
+};
+
+static const unsigned char kat1282_entropyin[] = {
+ 0x17, 0x59, 0x32, 0xfb, 0x8d, 0x93, 0x6b, 0xa3, 0xae, 0x66, 0xf9, 0xb9,
+ 0xb3, 0x3c, 0x23, 0xac, 0x92, 0x9d, 0xbe, 0x6e, 0x7f, 0x42, 0x67, 0x4c,
+ 0xc8, 0x96, 0x9b, 0xc9, 0x3a, 0xc4, 0x8f, 0x61, 0x3e, 0x50, 0xcb, 0xec,
+ 0x79, 0x3d, 0xd8, 0x97, 0x0f, 0xa4, 0xa9, 0x91, 0xaa, 0x91, 0x71, 0x33,
+};
+static const unsigned char kat1282_nonce[] = {0};
+static const unsigned char kat1282_persstr[] = {0};
+static const unsigned char kat1282_addin0[] = {
+ 0x17, 0xe2, 0x59, 0x1b, 0xb9, 0x5b, 0xc5, 0x14, 0xcb, 0xe4, 0xd1, 0x1a,
+ 0x65, 0x06, 0x80, 0x04, 0xa9, 0x25, 0xc7, 0x48, 0x5d, 0xfb, 0x0f, 0x6c,
+ 0xb4, 0x0e, 0x25, 0xf2, 0xd2, 0x11, 0x12, 0x20, 0xe5, 0x34, 0x1d, 0x5a,
+ 0x16, 0x90, 0x45, 0xf9, 0xc8, 0x75, 0x43, 0x07, 0xdf, 0xd4, 0xa4, 0x8c,
+};
+static const unsigned char kat1282_addin1[] = {
+ 0x8b, 0xf4, 0xef, 0xee, 0xfe, 0xaa, 0x24, 0x00, 0x95, 0x77, 0xa4, 0x17,
+ 0x3a, 0x79, 0x7c, 0x5b, 0x1e, 0x66, 0xa8, 0xa6, 0x68, 0xbd, 0x2e, 0x7c,
+ 0xfa, 0x94, 0xf8, 0x12, 0x0e, 0x1c, 0x00, 0x20, 0xa9, 0x74, 0xc9, 0x6e,
+ 0x6b, 0x2c, 0xa1, 0x2b, 0x21, 0x80, 0x1a, 0xac, 0x14, 0x10, 0x5e, 0x23,
+};
+static const unsigned char kat1282_retbits[] = {
+ 0xb2, 0x1a, 0xbf, 0xac, 0xe1, 0x5f, 0x06, 0x6b, 0xcb, 0x7e, 0xfe, 0xc2,
+ 0x02, 0xcf, 0x83, 0xcb, 0x14, 0x37, 0xb6, 0x4e, 0x8b, 0xc7, 0x35, 0x37,
+ 0xdf, 0xd8, 0xe0, 0xd8, 0x90, 0xcf, 0xf3, 0x85, 0x04, 0x7b, 0xfe, 0x8c,
+ 0xa6, 0x6d, 0x7f, 0xb3, 0xa8, 0x0f, 0x4a, 0xf1, 0x0e, 0xd4, 0xeb, 0xd3,
+ 0xfa, 0xd5, 0x05, 0x48, 0xd9, 0xa3, 0x89, 0x72, 0x79, 0x26, 0x57, 0x4f,
+ 0x8d, 0x2c, 0x0e, 0x38,
+};
+static const struct drbg_kat_no_reseed kat1282_t = {
+ 6, kat1282_entropyin, kat1282_nonce, kat1282_persstr,
+ kat1282_addin0, kat1282_addin1, kat1282_retbits
+};
+static const struct drbg_kat kat1282 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1282_t
+};
+
+static const unsigned char kat1283_entropyin[] = {
+ 0x0c, 0x17, 0xd2, 0x1f, 0x3a, 0x7d, 0xfe, 0x38, 0x65, 0x6c, 0x4b, 0x2b,
+ 0x49, 0x0e, 0x50, 0xae, 0x8a, 0x77, 0x43, 0x08, 0x9a, 0xdc, 0x74, 0x0b,
+ 0x0c, 0xc3, 0x75, 0x10, 0x44, 0x9d, 0x3b, 0x02, 0xaf, 0x17, 0xb2, 0x28,
+ 0xf3, 0x1b, 0x3b, 0xe7, 0xd7, 0xe7, 0x3f, 0x06, 0xe3, 0xb4, 0xed, 0xe3,
+};
+static const unsigned char kat1283_nonce[] = {0};
+static const unsigned char kat1283_persstr[] = {0};
+static const unsigned char kat1283_addin0[] = {
+ 0x8e, 0xda, 0x53, 0x6c, 0x00, 0xe1, 0x2b, 0x25, 0xea, 0x64, 0x64, 0xdf,
+ 0xae, 0x57, 0x51, 0x48, 0x7c, 0x55, 0x1d, 0x8b, 0xbd, 0x1d, 0x3e, 0x3f,
+ 0xfc, 0x73, 0x0c, 0x40, 0x45, 0xd4, 0x12, 0x7d, 0xac, 0x04, 0x75, 0x9d,
+ 0x8a, 0x2e, 0xf4, 0x88, 0x60, 0x34, 0x56, 0x20, 0xc8, 0xb5, 0xeb, 0xf3,
+};
+static const unsigned char kat1283_addin1[] = {
+ 0xbc, 0x96, 0x41, 0xa1, 0x43, 0x11, 0x00, 0x8a, 0x09, 0x69, 0xcf, 0xfa,
+ 0xdc, 0x22, 0xe1, 0xe7, 0x46, 0x61, 0xf9, 0x70, 0x48, 0x1d, 0x5c, 0x12,
+ 0xcf, 0xf6, 0x37, 0x27, 0x8d, 0xfa, 0x95, 0xb8, 0x2b, 0xab, 0xa4, 0x31,
+ 0xbb, 0xe2, 0x55, 0x8b, 0xab, 0xee, 0xdf, 0xcc, 0xd7, 0x1d, 0x96, 0xc7,
+};
+static const unsigned char kat1283_retbits[] = {
+ 0x46, 0xcf, 0x33, 0x45, 0x03, 0x11, 0xd9, 0x70, 0x1b, 0xc2, 0x5f, 0x51,
+ 0x2c, 0xa5, 0xbe, 0x2d, 0xc6, 0x06, 0x8f, 0x99, 0xa8, 0xb5, 0xe7, 0x07,
+ 0x6c, 0x49, 0x69, 0x22, 0x7b, 0x7e, 0x73, 0xf8, 0x69, 0xc2, 0xeb, 0x01,
+ 0x5a, 0x09, 0xd3, 0xf6, 0xed, 0xb1, 0xd5, 0xd9, 0x2d, 0xd3, 0xb6, 0xd4,
+ 0x61, 0x78, 0xbe, 0xa2, 0xc5, 0xba, 0x7d, 0x38, 0x14, 0x24, 0xd0, 0xe8,
+ 0x09, 0xf2, 0x20, 0xce,
+};
+static const struct drbg_kat_no_reseed kat1283_t = {
+ 7, kat1283_entropyin, kat1283_nonce, kat1283_persstr,
+ kat1283_addin0, kat1283_addin1, kat1283_retbits
+};
+static const struct drbg_kat kat1283 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1283_t
+};
+
+static const unsigned char kat1284_entropyin[] = {
+ 0x7d, 0x45, 0x11, 0x4f, 0x41, 0x7b, 0x3d, 0xc1, 0xee, 0xcb, 0x00, 0x80,
+ 0xf4, 0xd8, 0x83, 0xa4, 0x1c, 0x2f, 0x9b, 0x8d, 0x48, 0x6e, 0x95, 0x1e,
+ 0x61, 0x3a, 0x9d, 0x0f, 0x25, 0x15, 0xd1, 0x48, 0x15, 0x5f, 0xa4, 0xe3,
+ 0xae, 0x1f, 0x15, 0x9e, 0xdf, 0xba, 0xe5, 0x81, 0x1f, 0xc4, 0x2b, 0x22,
+};
+static const unsigned char kat1284_nonce[] = {0};
+static const unsigned char kat1284_persstr[] = {0};
+static const unsigned char kat1284_addin0[] = {
+ 0x33, 0x74, 0xce, 0xdc, 0x43, 0x20, 0x6c, 0x36, 0xd8, 0x67, 0x27, 0x35,
+ 0xd4, 0xee, 0x0e, 0xca, 0x7d, 0xfe, 0x53, 0x98, 0xb0, 0xc1, 0x1e, 0x6c,
+ 0x1e, 0x13, 0xb3, 0xe7, 0x95, 0x76, 0x6f, 0x0c, 0xa1, 0xc1, 0xc6, 0x3f,
+ 0x0f, 0xa6, 0x8c, 0x8f, 0x2b, 0x25, 0xcf, 0x98, 0x34, 0x0f, 0xc4, 0xc6,
+};
+static const unsigned char kat1284_addin1[] = {
+ 0x9e, 0x63, 0xc2, 0x9f, 0xb3, 0x5b, 0xd2, 0x7f, 0x39, 0xf4, 0x20, 0xbe,
+ 0x15, 0x05, 0xb1, 0xee, 0x6d, 0xe9, 0xf6, 0x91, 0x9c, 0x0e, 0xba, 0x3d,
+ 0xf1, 0xe8, 0x35, 0x7a, 0x97, 0x08, 0x94, 0x3f, 0x7f, 0x43, 0x65, 0xe2,
+ 0x85, 0xae, 0x12, 0x54, 0xf3, 0xa6, 0x3c, 0xe2, 0x26, 0xc6, 0x4a, 0x8a,
+};
+static const unsigned char kat1284_retbits[] = {
+ 0x94, 0x6a, 0x8c, 0x99, 0xee, 0x1e, 0xdc, 0x87, 0x77, 0x0c, 0x8e, 0xf1,
+ 0x07, 0x96, 0xbf, 0x14, 0x20, 0x1f, 0x58, 0xeb, 0xde, 0x3f, 0xac, 0x71,
+ 0xae, 0x00, 0x0f, 0xcb, 0x55, 0x3f, 0x99, 0xc8, 0x90, 0xc2, 0x28, 0xe7,
+ 0xa1, 0x80, 0x27, 0xf2, 0x25, 0xa5, 0x26, 0x95, 0x56, 0xe5, 0xd4, 0x0f,
+ 0x34, 0x85, 0xe6, 0xdc, 0x32, 0xa6, 0x97, 0xf1, 0xc6, 0xb7, 0x86, 0x35,
+ 0xd7, 0xf0, 0xa5, 0x72,
+};
+static const struct drbg_kat_no_reseed kat1284_t = {
+ 8, kat1284_entropyin, kat1284_nonce, kat1284_persstr,
+ kat1284_addin0, kat1284_addin1, kat1284_retbits
+};
+static const struct drbg_kat kat1284 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1284_t
+};
+
+static const unsigned char kat1285_entropyin[] = {
+ 0x82, 0x17, 0x16, 0xf8, 0x9f, 0xc9, 0xf3, 0x18, 0x87, 0x34, 0xfb, 0x4b,
+ 0x93, 0x38, 0x82, 0xed, 0xdd, 0x36, 0xa3, 0xb4, 0xfa, 0x92, 0x0d, 0xde,
+ 0xfc, 0xba, 0x2f, 0xa6, 0x52, 0x7a, 0xbb, 0xd8, 0xac, 0x8f, 0xee, 0xc7,
+ 0x3f, 0x71, 0xd0, 0x3f, 0xcf, 0x2e, 0x07, 0xf5, 0xc7, 0x90, 0x0d, 0x3f,
+};
+static const unsigned char kat1285_nonce[] = {0};
+static const unsigned char kat1285_persstr[] = {0};
+static const unsigned char kat1285_addin0[] = {
+ 0x9f, 0xd4, 0xf9, 0x83, 0xc4, 0xa0, 0x56, 0x12, 0x26, 0x8d, 0x76, 0x41,
+ 0x70, 0x45, 0xb6, 0xcd, 0xfb, 0xcb, 0x4e, 0x0f, 0x25, 0x53, 0x99, 0xed,
+ 0x51, 0xb1, 0xaf, 0xcf, 0x9e, 0x8a, 0x0f, 0xd2, 0xe9, 0x56, 0xb3, 0xd7,
+ 0x34, 0x25, 0x0e, 0xe3, 0x32, 0x4f, 0x67, 0xb6, 0xcc, 0xd6, 0xad, 0x9d,
+};
+static const unsigned char kat1285_addin1[] = {
+ 0xdf, 0x89, 0x35, 0x8c, 0xf9, 0xd7, 0x92, 0x7a, 0xab, 0x11, 0xe7, 0x22,
+ 0x6c, 0xa6, 0x55, 0xa8, 0x3e, 0x3f, 0x05, 0x89, 0x7c, 0xf7, 0x26, 0x91,
+ 0xaa, 0x5f, 0xa6, 0xc2, 0x7f, 0x84, 0x6e, 0xd5, 0x12, 0x3f, 0x47, 0xe1,
+ 0x4b, 0x9c, 0x2a, 0xea, 0x5e, 0x52, 0xa2, 0xd0, 0x96, 0x72, 0x79, 0xee,
+};
+static const unsigned char kat1285_retbits[] = {
+ 0xa9, 0x9a, 0x41, 0x63, 0x3a, 0xe7, 0x3b, 0xbf, 0xd6, 0x8b, 0x54, 0x93,
+ 0x70, 0xdf, 0x8b, 0xd0, 0x10, 0xe1, 0xc0, 0xa7, 0xc7, 0x92, 0xb8, 0x32,
+ 0x9b, 0xbb, 0x1c, 0x66, 0x91, 0x65, 0x91, 0xcc, 0x40, 0x6f, 0xbd, 0x7a,
+ 0x54, 0x9a, 0x04, 0x30, 0xdc, 0x06, 0x03, 0x78, 0xe9, 0x8b, 0xd3, 0xeb,
+ 0x76, 0x36, 0xf6, 0x35, 0xbb, 0x9e, 0x97, 0x23, 0xcc, 0x39, 0x4a, 0x76,
+ 0x20, 0x5b, 0x62, 0x8a,
+};
+static const struct drbg_kat_no_reseed kat1285_t = {
+ 9, kat1285_entropyin, kat1285_nonce, kat1285_persstr,
+ kat1285_addin0, kat1285_addin1, kat1285_retbits
+};
+static const struct drbg_kat kat1285 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1285_t
+};
+
+static const unsigned char kat1286_entropyin[] = {
+ 0x0b, 0xcc, 0xc9, 0xc0, 0xd2, 0x6c, 0x49, 0x71, 0x6d, 0x22, 0xbd, 0xd8,
+ 0x32, 0xd8, 0x21, 0x50, 0xf2, 0x0c, 0xd0, 0xcc, 0x44, 0xa3, 0xfa, 0x0a,
+ 0x43, 0xdc, 0xe8, 0x70, 0x3b, 0x87, 0xe5, 0x72, 0x52, 0x66, 0x2c, 0xdd,
+ 0x1f, 0x8f, 0xee, 0x29, 0x62, 0xc3, 0x0e, 0x5f, 0xc5, 0xc8, 0x66, 0xc1,
+};
+static const unsigned char kat1286_nonce[] = {0};
+static const unsigned char kat1286_persstr[] = {0};
+static const unsigned char kat1286_addin0[] = {
+ 0x1e, 0x4e, 0xd5, 0x91, 0xc1, 0xc7, 0x33, 0x7f, 0x57, 0x01, 0x29, 0x90,
+ 0x75, 0xf6, 0xd6, 0x15, 0x3a, 0x55, 0xd1, 0x3d, 0x7d, 0x34, 0xcc, 0x18,
+ 0x17, 0x00, 0x4d, 0x9e, 0x0c, 0x16, 0x51, 0x7f, 0x78, 0x87, 0x17, 0xdd,
+ 0xb1, 0x37, 0xe1, 0xc7, 0xf1, 0xac, 0x7a, 0x24, 0x24, 0xb0, 0x95, 0x3d,
+};
+static const unsigned char kat1286_addin1[] = {
+ 0xfc, 0x36, 0x74, 0x79, 0x41, 0xd6, 0x28, 0x85, 0x79, 0xf2, 0xb6, 0xa4,
+ 0x15, 0xc8, 0x97, 0x18, 0x90, 0xb6, 0x6a, 0xc5, 0x14, 0xb1, 0xe4, 0x94,
+ 0x46, 0xdd, 0x94, 0xfd, 0x00, 0xa2, 0xa2, 0x22, 0x2e, 0xec, 0xe0, 0x93,
+ 0x46, 0x78, 0x8b, 0x39, 0x2a, 0x8e, 0xa8, 0x26, 0xe5, 0xe1, 0x94, 0xb3,
+};
+static const unsigned char kat1286_retbits[] = {
+ 0xcf, 0x51, 0xbe, 0x2e, 0x26, 0x62, 0x05, 0x67, 0xcb, 0x35, 0x8d, 0x63,
+ 0x80, 0x8f, 0x9c, 0xfc, 0x18, 0xa0, 0xd7, 0xe5, 0x49, 0x5d, 0x8e, 0xc4,
+ 0xdc, 0x0c, 0x3a, 0xa9, 0xbf, 0x7b, 0xda, 0xb0, 0xae, 0x09, 0xb8, 0x44,
+ 0x4c, 0xba, 0x57, 0x7f, 0x19, 0xee, 0xc9, 0xfb, 0xa5, 0xd2, 0xd0, 0x28,
+ 0x5e, 0x92, 0x3e, 0xb2, 0x49, 0x2a, 0xb8, 0x08, 0xa4, 0xbc, 0x73, 0xda,
+ 0x25, 0xd8, 0x19, 0x5e,
+};
+static const struct drbg_kat_no_reseed kat1286_t = {
+ 10, kat1286_entropyin, kat1286_nonce, kat1286_persstr,
+ kat1286_addin0, kat1286_addin1, kat1286_retbits
+};
+static const struct drbg_kat kat1286 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1286_t
+};
+
+static const unsigned char kat1287_entropyin[] = {
+ 0x04, 0x40, 0x24, 0xfd, 0x37, 0x9b, 0x7f, 0x05, 0x57, 0x63, 0x2f, 0x4c,
+ 0x8e, 0x57, 0xf8, 0x0d, 0xc9, 0x43, 0x73, 0x5d, 0xef, 0x34, 0xd0, 0x5b,
+ 0xa5, 0xff, 0x35, 0x23, 0x78, 0x73, 0x87, 0x77, 0x73, 0xec, 0xdd, 0x2d,
+ 0x07, 0xc4, 0x98, 0x66, 0xa7, 0xc6, 0x41, 0x92, 0xb9, 0x8e, 0x57, 0xa0,
+};
+static const unsigned char kat1287_nonce[] = {0};
+static const unsigned char kat1287_persstr[] = {0};
+static const unsigned char kat1287_addin0[] = {
+ 0x6e, 0x91, 0x35, 0x1d, 0xd5, 0xb5, 0x8b, 0xb1, 0x9f, 0x21, 0x0d, 0x51,
+ 0x25, 0xb3, 0xae, 0xc7, 0xf3, 0x11, 0xf1, 0xe2, 0xff, 0xb8, 0x58, 0x9d,
+ 0x49, 0xe0, 0xa0, 0x4b, 0xd9, 0xba, 0x6c, 0x53, 0x0a, 0xec, 0xb9, 0x4b,
+ 0x38, 0x94, 0x6a, 0x16, 0x2b, 0xf1, 0x46, 0xd7, 0xa9, 0xf7, 0xb1, 0xab,
+};
+static const unsigned char kat1287_addin1[] = {
+ 0xab, 0x39, 0xa2, 0x78, 0x45, 0xab, 0x09, 0xe5, 0x77, 0xb6, 0xdc, 0xf9,
+ 0xed, 0x4e, 0xd7, 0x76, 0x99, 0x59, 0x5d, 0x35, 0x9a, 0x78, 0x94, 0x8f,
+ 0xa5, 0xa8, 0xcc, 0x63, 0x58, 0xe3, 0xea, 0x8e, 0x9a, 0x88, 0x77, 0xb6,
+ 0x0b, 0x6a, 0xe0, 0xfd, 0x7d, 0xbf, 0x37, 0xc9, 0x3d, 0xbd, 0xa8, 0x8c,
+};
+static const unsigned char kat1287_retbits[] = {
+ 0x7f, 0x64, 0x91, 0x17, 0x76, 0xe2, 0xc0, 0x4e, 0x4a, 0x08, 0xad, 0x90,
+ 0xc8, 0xdb, 0xbf, 0x51, 0xee, 0x34, 0xbd, 0xe4, 0xba, 0x6a, 0x3b, 0x7b,
+ 0x29, 0x83, 0x52, 0x0b, 0xf4, 0x69, 0x24, 0xa9, 0xbd, 0x76, 0xe7, 0xa3,
+ 0x14, 0x1d, 0x8b, 0x44, 0x74, 0xb5, 0xd2, 0xe5, 0x73, 0x17, 0x3f, 0xdd,
+ 0x90, 0xc2, 0x37, 0x43, 0xa9, 0x0a, 0x1a, 0xef, 0x81, 0xb3, 0x49, 0x4f,
+ 0xef, 0xef, 0x98, 0x34,
+};
+static const struct drbg_kat_no_reseed kat1287_t = {
+ 11, kat1287_entropyin, kat1287_nonce, kat1287_persstr,
+ kat1287_addin0, kat1287_addin1, kat1287_retbits
+};
+static const struct drbg_kat kat1287 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1287_t
+};
+
+static const unsigned char kat1288_entropyin[] = {
+ 0xa0, 0x53, 0x9e, 0x0a, 0x45, 0x44, 0x64, 0x25, 0x1d, 0x9e, 0xcc, 0x45,
+ 0x09, 0xbd, 0x7f, 0x54, 0xa9, 0x0a, 0x26, 0x1d, 0x2e, 0x62, 0x5b, 0x38,
+ 0xbf, 0x76, 0xec, 0x90, 0x1c, 0x14, 0x2f, 0x7c, 0x28, 0x51, 0xef, 0x00,
+ 0x3a, 0xa1, 0xa7, 0xbe, 0x60, 0xb6, 0x0a, 0xbe, 0xf0, 0x2d, 0xe3, 0x84,
+};
+static const unsigned char kat1288_nonce[] = {0};
+static const unsigned char kat1288_persstr[] = {0};
+static const unsigned char kat1288_addin0[] = {
+ 0x1e, 0x79, 0x4d, 0x68, 0x96, 0xf4, 0xcc, 0x9c, 0x2a, 0x45, 0x9e, 0x98,
+ 0xc2, 0xe0, 0xd4, 0x52, 0x78, 0x2b, 0x07, 0x2b, 0x42, 0x42, 0xe6, 0xee,
+ 0xe1, 0xec, 0x3b, 0x86, 0xb6, 0x40, 0x4f, 0xbf, 0x30, 0x15, 0x95, 0x9d,
+ 0x80, 0x06, 0xf2, 0x63, 0xf6, 0x82, 0xd0, 0x28, 0x11, 0x90, 0xb7, 0xbb,
+};
+static const unsigned char kat1288_addin1[] = {
+ 0xca, 0x57, 0x3e, 0x98, 0xcc, 0x43, 0xed, 0x3e, 0x4e, 0x59, 0x61, 0x2b,
+ 0xa5, 0x0a, 0x6d, 0xfe, 0x62, 0xc3, 0xca, 0xeb, 0x95, 0x5a, 0xc5, 0xdb,
+ 0x60, 0xee, 0xf2, 0xce, 0xd5, 0xb6, 0x3f, 0x39, 0xdb, 0x91, 0x89, 0xef,
+ 0xed, 0x83, 0x06, 0xb6, 0x4b, 0xc7, 0xe0, 0x11, 0x04, 0xc7, 0xe8, 0x47,
+};
+static const unsigned char kat1288_retbits[] = {
+ 0x71, 0x26, 0x0c, 0xdb, 0x48, 0x60, 0x94, 0xa1, 0x41, 0x6f, 0xb0, 0x6c,
+ 0x4d, 0xe7, 0xb5, 0xfe, 0xdf, 0x07, 0x37, 0xac, 0xdf, 0x35, 0x85, 0x12,
+ 0x97, 0xd1, 0xf1, 0x0d, 0xf1, 0x50, 0x14, 0xb1, 0x03, 0x04, 0xde, 0x05,
+ 0xb7, 0xcd, 0xb8, 0x4e, 0x59, 0xe9, 0x0a, 0xe8, 0x53, 0x65, 0xd6, 0xfd,
+ 0x1b, 0x2f, 0x6c, 0xae, 0x10, 0x26, 0x50, 0xb6, 0x89, 0x0e, 0xf5, 0x48,
+ 0x33, 0x46, 0x8f, 0x06,
+};
+static const struct drbg_kat_no_reseed kat1288_t = {
+ 12, kat1288_entropyin, kat1288_nonce, kat1288_persstr,
+ kat1288_addin0, kat1288_addin1, kat1288_retbits
+};
+static const struct drbg_kat kat1288 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1288_t
+};
+
+static const unsigned char kat1289_entropyin[] = {
+ 0xbb, 0x40, 0x53, 0x76, 0x98, 0x7e, 0x5a, 0x73, 0xb9, 0x36, 0x6b, 0x26,
+ 0x5f, 0xe6, 0x4c, 0x38, 0x32, 0x2c, 0xec, 0x5c, 0xdf, 0x59, 0xef, 0x04,
+ 0x56, 0x10, 0x77, 0xf5, 0x6a, 0x3b, 0xe5, 0x73, 0xe8, 0x94, 0x39, 0xda,
+ 0x5a, 0xc8, 0x52, 0x35, 0x05, 0x20, 0xce, 0x2b, 0x88, 0x87, 0x6e, 0xcb,
+};
+static const unsigned char kat1289_nonce[] = {0};
+static const unsigned char kat1289_persstr[] = {0};
+static const unsigned char kat1289_addin0[] = {
+ 0x75, 0x09, 0x01, 0x5c, 0x0d, 0x48, 0x00, 0x39, 0x4a, 0x47, 0xc6, 0xe0,
+ 0x40, 0x9f, 0x47, 0x86, 0xf1, 0x76, 0xa4, 0x95, 0xd0, 0xc7, 0xfb, 0xa1,
+ 0x4b, 0x24, 0x07, 0xe2, 0x92, 0xb8, 0x45, 0x94, 0xb6, 0x02, 0xa4, 0x8a,
+ 0x4e, 0x01, 0x7f, 0x96, 0xdf, 0xf9, 0x3e, 0x82, 0x48, 0x4e, 0x40, 0x37,
+};
+static const unsigned char kat1289_addin1[] = {
+ 0x86, 0x44, 0x54, 0x6a, 0xae, 0x7b, 0xdd, 0xda, 0x28, 0x10, 0xba, 0x9d,
+ 0xee, 0x8e, 0xaf, 0x8a, 0xe5, 0x0f, 0xa4, 0xa2, 0x52, 0xde, 0x5d, 0xf1,
+ 0x7f, 0x6a, 0x55, 0x54, 0x08, 0x75, 0xab, 0x73, 0xce, 0xd9, 0xf9, 0x20,
+ 0x48, 0x3f, 0x5c, 0xc5, 0xf9, 0xf7, 0x6a, 0x94, 0xb2, 0x53, 0xb4, 0xc1,
+};
+static const unsigned char kat1289_retbits[] = {
+ 0x71, 0x13, 0xa5, 0x71, 0x07, 0x52, 0xf3, 0xb2, 0x62, 0x77, 0x1f, 0x65,
+ 0x23, 0x74, 0x77, 0x11, 0xf8, 0x40, 0x2c, 0x36, 0xcc, 0xd3, 0x7d, 0xda,
+ 0x36, 0x6b, 0x46, 0xd9, 0xe7, 0xd7, 0x83, 0x08, 0x12, 0xe0, 0xf9, 0x35,
+ 0xb3, 0x6a, 0x15, 0x16, 0x4f, 0xdb, 0xd4, 0xc3, 0xb4, 0xe4, 0x6f, 0xd1,
+ 0xfe, 0x43, 0xee, 0x25, 0xe8, 0x3c, 0x4d, 0x94, 0x09, 0xf7, 0x0d, 0xfd,
+ 0x4b, 0x85, 0x1e, 0x06,
+};
+static const struct drbg_kat_no_reseed kat1289_t = {
+ 13, kat1289_entropyin, kat1289_nonce, kat1289_persstr,
+ kat1289_addin0, kat1289_addin1, kat1289_retbits
+};
+static const struct drbg_kat kat1289 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1289_t
+};
+
+static const unsigned char kat1290_entropyin[] = {
+ 0xf6, 0x1b, 0x23, 0xf1, 0x49, 0xd5, 0x46, 0xdb, 0x95, 0xf2, 0xee, 0x33,
+ 0x34, 0x68, 0xde, 0xbc, 0xf2, 0xe4, 0x44, 0xf7, 0x11, 0x95, 0x77, 0xb4,
+ 0x23, 0x2c, 0x03, 0x17, 0x31, 0x33, 0x56, 0x97, 0xe0, 0x76, 0x85, 0x61,
+ 0x0c, 0xd6, 0x2b, 0xc8, 0x38, 0x33, 0x80, 0x76, 0x53, 0x6e, 0xc3, 0x55,
+};
+static const unsigned char kat1290_nonce[] = {0};
+static const unsigned char kat1290_persstr[] = {0};
+static const unsigned char kat1290_addin0[] = {
+ 0xcd, 0x4c, 0xb3, 0xa8, 0xe0, 0xf1, 0xf8, 0xa6, 0x75, 0x77, 0xd7, 0x13,
+ 0x39, 0xe6, 0xc4, 0xf4, 0x0a, 0x29, 0x1c, 0xdd, 0x22, 0xd5, 0xa1, 0x9a,
+ 0xaf, 0xe0, 0xf7, 0xc9, 0x9e, 0x2b, 0x85, 0x78, 0x9d, 0x16, 0xb6, 0x3f,
+ 0xda, 0xb2, 0xff, 0x56, 0x27, 0x35, 0x3a, 0x73, 0x51, 0xb6, 0x53, 0xe8,
+};
+static const unsigned char kat1290_addin1[] = {
+ 0x02, 0x03, 0xe7, 0x5c, 0xce, 0x2d, 0x2e, 0x81, 0xec, 0x44, 0x1b, 0xa7,
+ 0x3b, 0x31, 0x29, 0xc6, 0xae, 0x50, 0x67, 0x73, 0x3b, 0xc0, 0x03, 0x16,
+ 0x14, 0xcb, 0xc8, 0xfc, 0x92, 0xd5, 0x99, 0x52, 0x3a, 0xd3, 0x0d, 0xa2,
+ 0xea, 0x25, 0x3c, 0x06, 0xc4, 0x82, 0x93, 0xbe, 0xfb, 0x14, 0xab, 0x71,
+};
+static const unsigned char kat1290_retbits[] = {
+ 0x92, 0x7c, 0x1e, 0x64, 0xd9, 0xf3, 0xac, 0xfd, 0xd7, 0x4e, 0x7a, 0xfe,
+ 0xb9, 0xab, 0x22, 0x80, 0xf3, 0x7c, 0xe9, 0xc1, 0x83, 0x9f, 0x8c, 0xec,
+ 0x8c, 0x32, 0xdb, 0x76, 0x76, 0xfa, 0xb0, 0x57, 0x62, 0x01, 0x44, 0xd3,
+ 0x4c, 0x83, 0x82, 0xbc, 0xb9, 0x04, 0xe8, 0x5a, 0xf4, 0x5d, 0x34, 0x8e,
+ 0x10, 0xbb, 0x2e, 0x57, 0x08, 0x26, 0x83, 0x43, 0x59, 0x5f, 0xfc, 0x08,
+ 0xdd, 0x25, 0x8c, 0x00,
+};
+static const struct drbg_kat_no_reseed kat1290_t = {
+ 14, kat1290_entropyin, kat1290_nonce, kat1290_persstr,
+ kat1290_addin0, kat1290_addin1, kat1290_retbits
+};
+static const struct drbg_kat kat1290 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1290_t
+};
+
+static const unsigned char kat1291_entropyin[] = {
+ 0xd8, 0x07, 0x8f, 0x99, 0xd5, 0xda, 0x1b, 0x31, 0x2e, 0x45, 0x12, 0xac,
+ 0xbc, 0xcc, 0x19, 0x89, 0x30, 0x45, 0x39, 0x75, 0xd3, 0xd5, 0x0f, 0xb5,
+ 0xa1, 0x3f, 0x25, 0xfd, 0xb1, 0x1a, 0x5f, 0xed, 0x1a, 0x24, 0x6e, 0x6b,
+ 0xc1, 0x53, 0x95, 0x2a, 0x16, 0x62, 0x3c, 0x23, 0x3e, 0x13, 0xe2, 0x41,
+};
+static const unsigned char kat1291_nonce[] = {0};
+static const unsigned char kat1291_persstr[] = {
+ 0xdf, 0x1b, 0x8b, 0x21, 0x72, 0x5f, 0xf8, 0x86, 0xaf, 0x4c, 0x64, 0x7a,
+ 0xf1, 0xa5, 0x87, 0xb1, 0x33, 0x9e, 0x09, 0x73, 0x78, 0x2e, 0x95, 0xc9,
+ 0x3f, 0x3b, 0x40, 0xbf, 0x42, 0x1d, 0x5d, 0x03, 0xce, 0xc2, 0xb0, 0xb4,
+ 0x1f, 0x90, 0x58, 0xd7, 0x30, 0xeb, 0x0f, 0xb5, 0x35, 0x68, 0xd0, 0x0a,
+};
+static const unsigned char kat1291_addin0[] = {0};
+static const unsigned char kat1291_addin1[] = {0};
+static const unsigned char kat1291_retbits[] = {
+ 0x5e, 0xdb, 0x9b, 0x25, 0x28, 0x7f, 0x2b, 0x5b, 0x1e, 0x5f, 0xd8, 0x1f,
+ 0x69, 0x77, 0x1c, 0xca, 0xb3, 0xb9, 0x87, 0x6b, 0xf2, 0xec, 0xdd, 0x64,
+ 0x4c, 0x9c, 0x6c, 0x5f, 0xe8, 0xdd, 0x98, 0x8e, 0x0d, 0x76, 0x22, 0xde,
+ 0xe9, 0x02, 0x36, 0x64, 0x49, 0xf2, 0x06, 0x3e, 0x3f, 0x82, 0x6d, 0xf9,
+ 0x97, 0x43, 0x80, 0x6b, 0x82, 0x5f, 0xe8, 0xc8, 0x59, 0x46, 0xaf, 0x3b,
+ 0x47, 0x81, 0xd6, 0xaa,
+};
+static const struct drbg_kat_no_reseed kat1291_t = {
+ 0, kat1291_entropyin, kat1291_nonce, kat1291_persstr,
+ kat1291_addin0, kat1291_addin1, kat1291_retbits
+};
+static const struct drbg_kat kat1291 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1291_t
+};
+
+static const unsigned char kat1292_entropyin[] = {
+ 0xe5, 0xb0, 0x0f, 0x72, 0x1b, 0xbb, 0xf0, 0x81, 0xd3, 0x50, 0x43, 0x35,
+ 0x92, 0xf6, 0xd2, 0xda, 0xb3, 0x62, 0x21, 0x7f, 0x0c, 0x0c, 0x49, 0x51,
+ 0x5d, 0x1f, 0x7f, 0x45, 0x99, 0x9c, 0xf5, 0xac, 0xd5, 0x2b, 0x0e, 0x81,
+ 0x6d, 0x10, 0x2d, 0x60, 0x63, 0x4a, 0x24, 0x61, 0xf4, 0x30, 0x01, 0x03,
+};
+static const unsigned char kat1292_nonce[] = {0};
+static const unsigned char kat1292_persstr[] = {
+ 0x65, 0x4a, 0x93, 0x5d, 0x0c, 0x43, 0xaf, 0xfc, 0xa9, 0x28, 0x0a, 0xc1,
+ 0x52, 0xa3, 0x42, 0x42, 0xfb, 0x64, 0x00, 0xd2, 0x08, 0x36, 0xaa, 0xbd,
+ 0x13, 0x91, 0x77, 0x19, 0x02, 0x5c, 0x1e, 0x0d, 0x65, 0xa9, 0x6a, 0xf7,
+ 0x56, 0x14, 0xe0, 0x58, 0x67, 0xd5, 0x19, 0x4a, 0xa8, 0xe7, 0x1c, 0x72,
+};
+static const unsigned char kat1292_addin0[] = {0};
+static const unsigned char kat1292_addin1[] = {0};
+static const unsigned char kat1292_retbits[] = {
+ 0x46, 0x47, 0x96, 0xa7, 0x72, 0x8e, 0xbc, 0x3b, 0x14, 0xda, 0x92, 0x5a,
+ 0xc9, 0x07, 0x3e, 0x28, 0x19, 0xb6, 0x49, 0x30, 0xb9, 0xce, 0x62, 0x95,
+ 0x4c, 0xf9, 0xa0, 0x4c, 0x3b, 0x7d, 0xd2, 0xa3, 0xc3, 0x57, 0x80, 0xa5,
+ 0x75, 0xd7, 0xb9, 0x2e, 0x40, 0x23, 0x08, 0x6a, 0xba, 0x0b, 0x4d, 0xcc,
+ 0x26, 0x71, 0x97, 0xdc, 0xeb, 0x14, 0x81, 0xe4, 0x3e, 0xdf, 0x4c, 0xc0,
+ 0x30, 0xd5, 0x45, 0xe5,
+};
+static const struct drbg_kat_no_reseed kat1292_t = {
+ 1, kat1292_entropyin, kat1292_nonce, kat1292_persstr,
+ kat1292_addin0, kat1292_addin1, kat1292_retbits
+};
+static const struct drbg_kat kat1292 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1292_t
+};
+
+static const unsigned char kat1293_entropyin[] = {
+ 0x0e, 0xe0, 0xf3, 0xef, 0xf0, 0x1d, 0x6b, 0xf3, 0xcc, 0x5a, 0x81, 0x40,
+ 0xfd, 0xa7, 0xab, 0x26, 0x21, 0xe5, 0xcc, 0x7f, 0x12, 0x35, 0xfb, 0x43,
+ 0x11, 0x0e, 0x46, 0x51, 0x7f, 0xde, 0xb0, 0xa2, 0x9a, 0xa1, 0x79, 0xc5,
+ 0x5b, 0x8f, 0xe5, 0x60, 0x76, 0x41, 0xe7, 0xdf, 0xc3, 0xcd, 0x24, 0xa0,
+};
+static const unsigned char kat1293_nonce[] = {0};
+static const unsigned char kat1293_persstr[] = {
+ 0xd1, 0xf7, 0x49, 0x3b, 0xa4, 0xed, 0x0d, 0xb1, 0x23, 0x5a, 0x5e, 0xfe,
+ 0x38, 0xb8, 0xe6, 0x8f, 0xf0, 0x3f, 0x71, 0x8d, 0x84, 0x07, 0x1e, 0xad,
+ 0x8f, 0xf4, 0xeb, 0x8c, 0x2e, 0x06, 0x36, 0x5c, 0x4c, 0x11, 0xe7, 0x86,
+ 0x91, 0xce, 0x17, 0x6c, 0x2b, 0x2d, 0xbd, 0xe0, 0x3f, 0xc7, 0x3f, 0x3d,
+};
+static const unsigned char kat1293_addin0[] = {0};
+static const unsigned char kat1293_addin1[] = {0};
+static const unsigned char kat1293_retbits[] = {
+ 0xa1, 0xfd, 0xd8, 0xa3, 0x59, 0xf5, 0xe9, 0xde, 0xa8, 0x1f, 0xdf, 0x83,
+ 0xc7, 0x00, 0xca, 0xcf, 0x04, 0xb4, 0xf8, 0x3c, 0x73, 0x27, 0x58, 0xe2,
+ 0x65, 0x54, 0x8a, 0xaf, 0x1d, 0x79, 0x60, 0x84, 0x25, 0xc6, 0x37, 0x20,
+ 0x89, 0x68, 0x96, 0x8b, 0x3b, 0x56, 0xbb, 0xb6, 0x12, 0x2f, 0x12, 0x71,
+ 0xe4, 0x02, 0x31, 0x4e, 0xd9, 0xcb, 0xa2, 0x4a, 0xcf, 0x71, 0x45, 0x7f,
+ 0xf7, 0x54, 0xe8, 0x5a,
+};
+static const struct drbg_kat_no_reseed kat1293_t = {
+ 2, kat1293_entropyin, kat1293_nonce, kat1293_persstr,
+ kat1293_addin0, kat1293_addin1, kat1293_retbits
+};
+static const struct drbg_kat kat1293 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1293_t
+};
+
+static const unsigned char kat1294_entropyin[] = {
+ 0xf4, 0x3e, 0x4b, 0x7d, 0x33, 0x17, 0xce, 0x49, 0x4b, 0x0a, 0x68, 0xcb,
+ 0x6e, 0x11, 0xe6, 0x11, 0xbb, 0xfe, 0x7b, 0x61, 0xbc, 0x37, 0xf6, 0xef,
+ 0x1e, 0x6b, 0x45, 0xb3, 0xbd, 0x6d, 0x67, 0x97, 0xd3, 0x95, 0x52, 0xab,
+ 0xb4, 0x90, 0x92, 0x9d, 0x0d, 0xc9, 0x67, 0xea, 0x04, 0x70, 0xd3, 0xae,
+};
+static const unsigned char kat1294_nonce[] = {0};
+static const unsigned char kat1294_persstr[] = {
+ 0xda, 0xa5, 0xb6, 0x16, 0x66, 0x3c, 0x91, 0x05, 0x4d, 0x58, 0x38, 0x88,
+ 0xe6, 0x83, 0xc6, 0xfc, 0x93, 0x55, 0xd5, 0xc3, 0x2e, 0xc2, 0xb8, 0x63,
+ 0x2a, 0x63, 0xdd, 0xc4, 0xfb, 0x46, 0xdd, 0x93, 0x6d, 0xaa, 0xcd, 0x86,
+ 0x00, 0x6f, 0x1e, 0x63, 0x92, 0x28, 0xb0, 0xe3, 0x0a, 0x6c, 0x2c, 0x08,
+};
+static const unsigned char kat1294_addin0[] = {0};
+static const unsigned char kat1294_addin1[] = {0};
+static const unsigned char kat1294_retbits[] = {
+ 0x99, 0x57, 0x3c, 0xd5, 0xe7, 0xce, 0x4a, 0x0d, 0xa1, 0xd5, 0x60, 0xfb,
+ 0x5e, 0x99, 0x2f, 0x0b, 0xe2, 0x87, 0x36, 0xad, 0x9c, 0x2f, 0x14, 0x49,
+ 0xf7, 0x21, 0x26, 0x1d, 0xcf, 0x3d, 0xf6, 0x7b, 0xec, 0x1c, 0x3d, 0x49,
+ 0xa6, 0xe4, 0xf9, 0x9f, 0xf4, 0xbc, 0x9a, 0xee, 0x0e, 0xcf, 0x4d, 0x5f,
+ 0x97, 0xed, 0x0d, 0x37, 0xd9, 0x77, 0x6e, 0x7f, 0x63, 0xed, 0xb8, 0xce,
+ 0xce, 0xf7, 0x2c, 0x4b,
+};
+static const struct drbg_kat_no_reseed kat1294_t = {
+ 3, kat1294_entropyin, kat1294_nonce, kat1294_persstr,
+ kat1294_addin0, kat1294_addin1, kat1294_retbits
+};
+static const struct drbg_kat kat1294 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1294_t
+};
+
+static const unsigned char kat1295_entropyin[] = {
+ 0x11, 0xec, 0xf1, 0x0f, 0x25, 0x9b, 0xbd, 0x81, 0x7b, 0x23, 0x67, 0xea,
+ 0x80, 0x36, 0xec, 0x29, 0xe0, 0x32, 0xe4, 0x86, 0x9c, 0xd9, 0xd9, 0xe4,
+ 0xc5, 0x30, 0x55, 0xb1, 0x34, 0x43, 0x4b, 0xbd, 0xad, 0xdc, 0x32, 0x7b,
+ 0x13, 0x7a, 0x61, 0xe8, 0xab, 0x60, 0xf0, 0xcf, 0x29, 0x6f, 0x2c, 0x35,
+};
+static const unsigned char kat1295_nonce[] = {0};
+static const unsigned char kat1295_persstr[] = {
+ 0xeb, 0x07, 0x19, 0xf1, 0x3b, 0x2d, 0xd9, 0xf0, 0x8d, 0xd0, 0xd0, 0x6c,
+ 0xad, 0xc4, 0x59, 0xc3, 0x1b, 0x4a, 0x15, 0x36, 0xc7, 0x9d, 0xa5, 0xd2,
+ 0x5e, 0xed, 0x53, 0x73, 0xd9, 0xa4, 0x6c, 0xb0, 0xb5, 0xce, 0x11, 0x60,
+ 0x72, 0x95, 0x4b, 0x77, 0xeb, 0x6f, 0x84, 0xbf, 0x94, 0x14, 0x43, 0x22,
+};
+static const unsigned char kat1295_addin0[] = {0};
+static const unsigned char kat1295_addin1[] = {0};
+static const unsigned char kat1295_retbits[] = {
+ 0x5c, 0x4a, 0x42, 0x6e, 0xce, 0x1b, 0x6e, 0xd0, 0xb5, 0xba, 0xc7, 0x59,
+ 0xa4, 0xab, 0xde, 0xf1, 0xb6, 0x2b, 0x83, 0x9e, 0xc4, 0x74, 0xf4, 0x26,
+ 0xf6, 0xa5, 0x38, 0x6b, 0x04, 0xd1, 0x10, 0xe1, 0x35, 0x95, 0x08, 0x1e,
+ 0x7d, 0xb1, 0x01, 0x64, 0x89, 0xda, 0x2d, 0x2e, 0x3f, 0xea, 0x04, 0xbd,
+ 0x7f, 0xc3, 0x7d, 0xaf, 0x87, 0xca, 0x98, 0x64, 0xf3, 0x43, 0x0c, 0x00,
+ 0x5f, 0xcc, 0xad, 0x26,
+};
+static const struct drbg_kat_no_reseed kat1295_t = {
+ 4, kat1295_entropyin, kat1295_nonce, kat1295_persstr,
+ kat1295_addin0, kat1295_addin1, kat1295_retbits
+};
+static const struct drbg_kat kat1295 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1295_t
+};
+
+static const unsigned char kat1296_entropyin[] = {
+ 0x42, 0x17, 0xfe, 0xba, 0xcb, 0xbc, 0x1c, 0x25, 0x04, 0xc8, 0x2e, 0xf6,
+ 0x0f, 0x20, 0xc7, 0x4a, 0x61, 0xa0, 0x08, 0x0a, 0x12, 0x44, 0x49, 0x70,
+ 0xf9, 0xe6, 0xc1, 0x7c, 0xab, 0x0b, 0x56, 0x04, 0xd0, 0x8f, 0xe8, 0xda,
+ 0xaa, 0x66, 0x21, 0x38, 0x04, 0xab, 0x08, 0x56, 0x2e, 0x13, 0x64, 0x6a,
+};
+static const unsigned char kat1296_nonce[] = {0};
+static const unsigned char kat1296_persstr[] = {
+ 0x08, 0xc6, 0x07, 0x59, 0x89, 0xdd, 0x93, 0x2c, 0x51, 0x61, 0x60, 0x74,
+ 0x07, 0x10, 0xf5, 0xd1, 0x6c, 0x38, 0xd2, 0x05, 0xfb, 0xdf, 0xaf, 0xf7,
+ 0x44, 0x49, 0x68, 0x79, 0x1b, 0x6e, 0x9a, 0x43, 0xee, 0x9a, 0x79, 0xcc,
+ 0x5e, 0xb3, 0xe5, 0x8e, 0xa2, 0x92, 0x1f, 0x9c, 0x1f, 0x13, 0xdd, 0x25,
+};
+static const unsigned char kat1296_addin0[] = {0};
+static const unsigned char kat1296_addin1[] = {0};
+static const unsigned char kat1296_retbits[] = {
+ 0xe4, 0xf5, 0x46, 0x3c, 0xd4, 0xd7, 0x7d, 0xa2, 0x3b, 0xfe, 0xd0, 0xf6,
+ 0x2f, 0x29, 0x23, 0xbe, 0xad, 0x6a, 0x46, 0x4d, 0x16, 0x6d, 0xda, 0x84,
+ 0xcc, 0xfd, 0xdb, 0x0f, 0xd3, 0x6a, 0x32, 0xa0, 0xe8, 0xc0, 0xdc, 0xcf,
+ 0xa1, 0x54, 0x8a, 0xfa, 0xf2, 0x9a, 0xbb, 0xd8, 0x53, 0xad, 0x8d, 0x37,
+ 0xa8, 0x2f, 0x3c, 0x16, 0xb2, 0x9f, 0x5b, 0x67, 0x93, 0xeb, 0x35, 0x96,
+ 0xe1, 0xb3, 0x5c, 0x0a,
+};
+static const struct drbg_kat_no_reseed kat1296_t = {
+ 5, kat1296_entropyin, kat1296_nonce, kat1296_persstr,
+ kat1296_addin0, kat1296_addin1, kat1296_retbits
+};
+static const struct drbg_kat kat1296 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1296_t
+};
+
+static const unsigned char kat1297_entropyin[] = {
+ 0x80, 0xf7, 0x10, 0xdd, 0xab, 0x86, 0xa0, 0xd0, 0x9b, 0xa9, 0xff, 0x80,
+ 0x98, 0x51, 0x2c, 0x41, 0xe2, 0x0c, 0x54, 0x87, 0x84, 0x18, 0xae, 0x7a,
+ 0x67, 0x00, 0xb7, 0x78, 0x0c, 0xf6, 0x7a, 0x4e, 0x30, 0x56, 0x5e, 0xfc,
+ 0xd6, 0xbd, 0x50, 0xe0, 0xae, 0x1a, 0x77, 0x8d, 0x5a, 0x18, 0xfd, 0x2d,
+};
+static const unsigned char kat1297_nonce[] = {0};
+static const unsigned char kat1297_persstr[] = {
+ 0xa0, 0x30, 0xe8, 0x34, 0x5f, 0xdf, 0xa9, 0x67, 0xa1, 0x84, 0x41, 0x3a,
+ 0x4d, 0x48, 0x1d, 0x88, 0x7f, 0xa6, 0x47, 0xbc, 0x46, 0x04, 0x3c, 0x6f,
+ 0x40, 0x57, 0xe7, 0x01, 0x1b, 0xaa, 0x9e, 0xd1, 0x15, 0xf3, 0x96, 0x88,
+ 0xa4, 0xfe, 0x5c, 0xda, 0xef, 0x98, 0xec, 0x51, 0x8d, 0xdb, 0x04, 0x0c,
+};
+static const unsigned char kat1297_addin0[] = {0};
+static const unsigned char kat1297_addin1[] = {0};
+static const unsigned char kat1297_retbits[] = {
+ 0x3b, 0xbc, 0xe7, 0x04, 0x1f, 0xad, 0x98, 0x8f, 0x05, 0x59, 0x69, 0xf4,
+ 0xb5, 0x3a, 0x2f, 0xdd, 0xb6, 0xe4, 0xd0, 0x41, 0x0c, 0x08, 0x0d, 0xa3,
+ 0xda, 0xd0, 0x5b, 0xce, 0x8e, 0xca, 0x10, 0xb7, 0xed, 0x4e, 0x36, 0x7e,
+ 0x86, 0x11, 0xb8, 0xde, 0x28, 0x48, 0x4f, 0xe6, 0x42, 0xd5, 0x75, 0xda,
+ 0xf2, 0x54, 0x25, 0x98, 0x58, 0xaa, 0x22, 0xb8, 0xcb, 0xfc, 0x96, 0x29,
+ 0x96, 0x05, 0x82, 0x0d,
+};
+static const struct drbg_kat_no_reseed kat1297_t = {
+ 6, kat1297_entropyin, kat1297_nonce, kat1297_persstr,
+ kat1297_addin0, kat1297_addin1, kat1297_retbits
+};
+static const struct drbg_kat kat1297 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1297_t
+};
+
+static const unsigned char kat1298_entropyin[] = {
+ 0xbb, 0xc1, 0x91, 0x5e, 0x62, 0x3f, 0x50, 0xff, 0x17, 0x68, 0x56, 0x41,
+ 0xeb, 0xe7, 0xb1, 0xd5, 0x5b, 0xb8, 0xb6, 0xf2, 0xd9, 0x6e, 0x56, 0xe8,
+ 0x2a, 0x01, 0x3a, 0xe4, 0x22, 0x63, 0xe7, 0x07, 0xec, 0x8f, 0xc7, 0x3d,
+ 0xb4, 0x58, 0x86, 0x0b, 0xa4, 0x76, 0x49, 0x33, 0x2b, 0xc4, 0xbc, 0x26,
+};
+static const unsigned char kat1298_nonce[] = {0};
+static const unsigned char kat1298_persstr[] = {
+ 0x3f, 0xa6, 0x42, 0xef, 0x2b, 0x0e, 0xa9, 0x38, 0xad, 0x67, 0xc4, 0xf7,
+ 0xa1, 0x98, 0xd1, 0xbe, 0xbb, 0x06, 0x89, 0xec, 0x5d, 0x90, 0x65, 0xec,
+ 0xea, 0x59, 0x06, 0xa4, 0xcb, 0xc6, 0xd2, 0x8e, 0x63, 0x78, 0xac, 0xcc,
+ 0x67, 0xf5, 0xb0, 0x81, 0x10, 0xb4, 0x53, 0x22, 0x9c, 0xe6, 0x94, 0x9f,
+};
+static const unsigned char kat1298_addin0[] = {0};
+static const unsigned char kat1298_addin1[] = {0};
+static const unsigned char kat1298_retbits[] = {
+ 0xa4, 0x50, 0x7a, 0x66, 0x72, 0x59, 0x7e, 0x41, 0xc6, 0xc9, 0x25, 0xc6,
+ 0x10, 0x44, 0x6f, 0x8e, 0xd1, 0x16, 0x0f, 0x44, 0x79, 0x7f, 0xfa, 0x6b,
+ 0x35, 0x6e, 0x2a, 0x02, 0x66, 0x0d, 0xe3, 0xe6, 0x3a, 0x87, 0xa1, 0x82,
+ 0x11, 0x58, 0x79, 0xef, 0xe8, 0x98, 0x10, 0x8b, 0xc6, 0x51, 0xd9, 0xa5,
+ 0xe3, 0x5d, 0xe2, 0x63, 0x19, 0x0d, 0x89, 0x11, 0x3d, 0x7e, 0xab, 0x4c,
+ 0x03, 0x57, 0xc7, 0x8d,
+};
+static const struct drbg_kat_no_reseed kat1298_t = {
+ 7, kat1298_entropyin, kat1298_nonce, kat1298_persstr,
+ kat1298_addin0, kat1298_addin1, kat1298_retbits
+};
+static const struct drbg_kat kat1298 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1298_t
+};
+
+static const unsigned char kat1299_entropyin[] = {
+ 0xd2, 0x6f, 0xde, 0xf7, 0x05, 0xb3, 0xf0, 0x0a, 0x0f, 0x99, 0xc5, 0xa2,
+ 0x09, 0xa7, 0x3e, 0x12, 0xaa, 0x0b, 0xb6, 0xb3, 0x61, 0x2b, 0x63, 0xd6,
+ 0xa4, 0x9f, 0x2b, 0x55, 0x1b, 0x02, 0x08, 0x30, 0x85, 0xd7, 0xd4, 0x9b,
+ 0xf8, 0x1d, 0x2c, 0x37, 0x35, 0x90, 0xcd, 0xb5, 0xdb, 0x60, 0x06, 0xeb,
+};
+static const unsigned char kat1299_nonce[] = {0};
+static const unsigned char kat1299_persstr[] = {
+ 0x1c, 0x62, 0xb5, 0xd0, 0x7f, 0x7c, 0xa8, 0xc6, 0x0b, 0x69, 0x12, 0x61,
+ 0x18, 0x34, 0x1d, 0xb5, 0x5e, 0x5a, 0x2c, 0xb2, 0xba, 0xf3, 0x59, 0xd2,
+ 0x97, 0x19, 0x67, 0x57, 0x06, 0xb8, 0x93, 0x8b, 0xb6, 0x39, 0x8d, 0xd0,
+ 0x91, 0xc3, 0xf9, 0x11, 0x81, 0x33, 0xa6, 0x39, 0x69, 0x78, 0xbd, 0xf6,
+};
+static const unsigned char kat1299_addin0[] = {0};
+static const unsigned char kat1299_addin1[] = {0};
+static const unsigned char kat1299_retbits[] = {
+ 0x10, 0xf3, 0x33, 0xdd, 0xcd, 0xfa, 0xd0, 0xf8, 0x20, 0x5a, 0x0c, 0x53,
+ 0xa7, 0x89, 0x52, 0xd1, 0x0d, 0xba, 0x34, 0x15, 0x33, 0xe9, 0xd4, 0xb0,
+ 0xc3, 0x64, 0x0e, 0xcb, 0x2f, 0x59, 0xc0, 0x1a, 0x94, 0xc1, 0xed, 0xf0,
+ 0x5e, 0xb5, 0xb2, 0x98, 0x2c, 0x0d, 0x76, 0x02, 0xd6, 0xaa, 0x9c, 0xbc,
+ 0x16, 0x6b, 0x0f, 0x42, 0x90, 0x10, 0xd6, 0x92, 0xdf, 0xc2, 0x15, 0x83,
+ 0x96, 0x8b, 0x84, 0x1f,
+};
+static const struct drbg_kat_no_reseed kat1299_t = {
+ 8, kat1299_entropyin, kat1299_nonce, kat1299_persstr,
+ kat1299_addin0, kat1299_addin1, kat1299_retbits
+};
+static const struct drbg_kat kat1299 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1299_t
+};
+
+static const unsigned char kat1300_entropyin[] = {
+ 0x8d, 0xa9, 0x23, 0x05, 0x68, 0xf5, 0x62, 0xa4, 0x4c, 0xe6, 0x52, 0x63,
+ 0x63, 0x48, 0xcc, 0x9f, 0xee, 0xea, 0x46, 0x72, 0x63, 0x81, 0xed, 0x95,
+ 0x55, 0x72, 0x14, 0xad, 0xf5, 0xad, 0xac, 0x0d, 0x94, 0xe2, 0x00, 0x83,
+ 0xd8, 0xd3, 0x27, 0xee, 0xfe, 0xe3, 0x83, 0xa2, 0x18, 0x91, 0xb4, 0x2a,
+};
+static const unsigned char kat1300_nonce[] = {0};
+static const unsigned char kat1300_persstr[] = {
+ 0x74, 0x36, 0x3f, 0xd1, 0x9c, 0xaa, 0x5c, 0x2e, 0x13, 0x0e, 0x5c, 0xba,
+ 0xea, 0x8f, 0xc1, 0x8a, 0x04, 0xde, 0x26, 0x15, 0xd9, 0xbf, 0xca, 0x07,
+ 0x1e, 0xaa, 0xe9, 0xc1, 0x6f, 0x26, 0xfb, 0x9e, 0xe8, 0xbe, 0xd9, 0x8c,
+ 0x61, 0x5d, 0xc4, 0xfd, 0xcc, 0x68, 0x23, 0x3b, 0x16, 0x6e, 0x8f, 0x89,
+};
+static const unsigned char kat1300_addin0[] = {0};
+static const unsigned char kat1300_addin1[] = {0};
+static const unsigned char kat1300_retbits[] = {
+ 0x3f, 0xc8, 0x59, 0x13, 0x0c, 0xa0, 0xd9, 0x50, 0x0e, 0x79, 0x77, 0xd1,
+ 0x29, 0x50, 0x64, 0x06, 0xa2, 0xe1, 0x4a, 0x77, 0x33, 0xc1, 0x49, 0x0f,
+ 0x7e, 0x4d, 0x93, 0x69, 0x0d, 0x4f, 0xab, 0x90, 0x4c, 0xdb, 0x3a, 0x84,
+ 0x7e, 0x4d, 0x40, 0xa2, 0x58, 0x18, 0xa8, 0x08, 0xde, 0x7f, 0x14, 0x62,
+ 0x12, 0x1b, 0x13, 0x6c, 0x84, 0x6e, 0x57, 0x80, 0x9f, 0x42, 0x07, 0x26,
+ 0x5a, 0x13, 0xe2, 0x37,
+};
+static const struct drbg_kat_no_reseed kat1300_t = {
+ 9, kat1300_entropyin, kat1300_nonce, kat1300_persstr,
+ kat1300_addin0, kat1300_addin1, kat1300_retbits
+};
+static const struct drbg_kat kat1300 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1300_t
+};
+
+static const unsigned char kat1301_entropyin[] = {
+ 0x85, 0x94, 0x86, 0x20, 0xa7, 0x8d, 0xeb, 0x45, 0x44, 0x9c, 0x84, 0x82,
+ 0x78, 0x67, 0x70, 0x25, 0xb5, 0x96, 0xb6, 0x27, 0xd1, 0xf0, 0x61, 0xbf,
+ 0x44, 0x9b, 0x14, 0x2b, 0x5f, 0x8b, 0x84, 0x3c, 0x3c, 0x04, 0x9d, 0xe2,
+ 0x53, 0xb8, 0x46, 0xd3, 0x3b, 0xd0, 0x73, 0x3f, 0xc9, 0x2f, 0x34, 0x54,
+};
+static const unsigned char kat1301_nonce[] = {0};
+static const unsigned char kat1301_persstr[] = {
+ 0xa5, 0x47, 0x71, 0xc0, 0xd1, 0xa5, 0xc6, 0xdf, 0x3e, 0x7f, 0x30, 0xa6,
+ 0x20, 0x8e, 0x35, 0xaa, 0x4d, 0x65, 0xc5, 0xb6, 0x54, 0x80, 0x23, 0x60,
+ 0xce, 0xbe, 0xb8, 0x0d, 0x2c, 0xd0, 0x50, 0x9c, 0xa3, 0x7b, 0x7e, 0xa8,
+ 0x49, 0xf9, 0x43, 0x9f, 0x3e, 0xc5, 0x07, 0x15, 0x40, 0x82, 0xc4, 0x28,
+};
+static const unsigned char kat1301_addin0[] = {0};
+static const unsigned char kat1301_addin1[] = {0};
+static const unsigned char kat1301_retbits[] = {
+ 0x02, 0x8e, 0x0e, 0x6a, 0x5a, 0xb8, 0x7d, 0x46, 0x99, 0xbe, 0x8b, 0x29,
+ 0x0b, 0x9e, 0x45, 0x84, 0x73, 0x42, 0x00, 0x69, 0xee, 0x61, 0x8e, 0x04,
+ 0xc3, 0x46, 0xe0, 0xa6, 0x23, 0x15, 0x8f, 0xbc, 0x91, 0x5d, 0x36, 0x36,
+ 0x8f, 0xea, 0x88, 0x7e, 0x2c, 0x48, 0x20, 0x2c, 0x1b, 0xea, 0xfe, 0x8c,
+ 0xee, 0x27, 0x07, 0x4c, 0x73, 0x2f, 0x12, 0x34, 0x4e, 0x90, 0x4f, 0x55,
+ 0xf5, 0x81, 0xca, 0xbc,
+};
+static const struct drbg_kat_no_reseed kat1301_t = {
+ 10, kat1301_entropyin, kat1301_nonce, kat1301_persstr,
+ kat1301_addin0, kat1301_addin1, kat1301_retbits
+};
+static const struct drbg_kat kat1301 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1301_t
+};
+
+static const unsigned char kat1302_entropyin[] = {
+ 0xea, 0xa3, 0xaa, 0x6a, 0x7e, 0x87, 0x2c, 0x85, 0xcf, 0x48, 0xf2, 0x90,
+ 0x94, 0x4c, 0x3e, 0x2c, 0x17, 0xf6, 0x76, 0xe6, 0xbf, 0x5c, 0x93, 0x5c,
+ 0xb9, 0x31, 0x7c, 0x97, 0xac, 0x29, 0x4e, 0x31, 0xad, 0xfb, 0x10, 0xbb,
+ 0xd2, 0x44, 0x36, 0x1e, 0xdc, 0xe9, 0x3c, 0x17, 0x31, 0x53, 0xcc, 0xf6,
+};
+static const unsigned char kat1302_nonce[] = {0};
+static const unsigned char kat1302_persstr[] = {
+ 0x66, 0xed, 0x47, 0x05, 0x72, 0xd9, 0x15, 0xd8, 0x12, 0x01, 0xc3, 0xdf,
+ 0xec, 0x4d, 0x0b, 0x7d, 0xfe, 0xab, 0x8f, 0x8b, 0x7d, 0x63, 0x58, 0x43,
+ 0x02, 0x06, 0xbb, 0x03, 0xcb, 0x94, 0xd8, 0x5f, 0x27, 0xb0, 0x3e, 0xb5,
+ 0x7d, 0xe4, 0x6e, 0x75, 0x95, 0x23, 0xc4, 0x46, 0x96, 0x57, 0x20, 0x76,
+};
+static const unsigned char kat1302_addin0[] = {0};
+static const unsigned char kat1302_addin1[] = {0};
+static const unsigned char kat1302_retbits[] = {
+ 0x12, 0xe8, 0xf9, 0xa3, 0x29, 0xb0, 0xaf, 0x70, 0x5c, 0x6c, 0x43, 0xf5,
+ 0xc4, 0x0a, 0x82, 0x33, 0x05, 0xed, 0x82, 0x77, 0x9d, 0x40, 0x76, 0x59,
+ 0x78, 0x2b, 0x47, 0x41, 0x62, 0x46, 0xd9, 0x62, 0x4c, 0xfd, 0xee, 0x72,
+ 0x03, 0x90, 0x33, 0xc0, 0xad, 0x56, 0x7a, 0xd0, 0xa8, 0x2c, 0xd1, 0x87,
+ 0x2c, 0xd4, 0x60, 0xc6, 0x8b, 0x5c, 0xdb, 0xaa, 0x43, 0x86, 0x15, 0xbf,
+ 0xd1, 0x3c, 0x97, 0x69,
+};
+static const struct drbg_kat_no_reseed kat1302_t = {
+ 11, kat1302_entropyin, kat1302_nonce, kat1302_persstr,
+ kat1302_addin0, kat1302_addin1, kat1302_retbits
+};
+static const struct drbg_kat kat1302 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1302_t
+};
+
+static const unsigned char kat1303_entropyin[] = {
+ 0xa2, 0x3e, 0xa0, 0xbf, 0x45, 0xc9, 0xad, 0x04, 0xbc, 0x95, 0x6d, 0xc6,
+ 0xb9, 0x9c, 0xae, 0x49, 0x43, 0xf2, 0x87, 0xe2, 0xc0, 0xff, 0x9f, 0xcc,
+ 0xb6, 0xf8, 0xbc, 0xf0, 0x95, 0x84, 0xe0, 0x68, 0x69, 0x74, 0x6b, 0x8b,
+ 0x02, 0x7a, 0x02, 0x7a, 0x2b, 0xfe, 0xf9, 0x75, 0x52, 0x2b, 0xc3, 0x7a,
+};
+static const unsigned char kat1303_nonce[] = {0};
+static const unsigned char kat1303_persstr[] = {
+ 0xaf, 0x35, 0x59, 0x4b, 0xd4, 0x92, 0x60, 0xa3, 0xd3, 0xee, 0xcd, 0xef,
+ 0x26, 0x0d, 0x1f, 0x73, 0x26, 0x6c, 0xdf, 0x25, 0x6f, 0x11, 0x65, 0x9e,
+ 0x76, 0x49, 0xc3, 0x7d, 0x7f, 0xb2, 0xd7, 0xc6, 0xe5, 0x4c, 0xd4, 0xb5,
+ 0x21, 0x8f, 0x05, 0x4b, 0x63, 0xed, 0x28, 0x23, 0xab, 0x67, 0xa1, 0x80,
+};
+static const unsigned char kat1303_addin0[] = {0};
+static const unsigned char kat1303_addin1[] = {0};
+static const unsigned char kat1303_retbits[] = {
+ 0xaa, 0x7f, 0x07, 0x0d, 0x79, 0x72, 0xcd, 0x15, 0x6e, 0xc9, 0xb3, 0xd1,
+ 0xdc, 0x37, 0xe1, 0xbd, 0x9c, 0x2b, 0x6d, 0x51, 0x2f, 0xa3, 0x18, 0xf2,
+ 0x2c, 0x42, 0xd5, 0x30, 0x92, 0xfd, 0x05, 0x36, 0x5b, 0x35, 0xe0, 0xd0,
+ 0x35, 0x41, 0xf9, 0x48, 0xc3, 0x2f, 0xc3, 0x10, 0x7e, 0x4f, 0x9e, 0xae,
+ 0xc3, 0x4f, 0xc2, 0xf4, 0xf9, 0xd7, 0x8a, 0x26, 0x37, 0xb2, 0xec, 0xf7,
+ 0xe2, 0xec, 0x10, 0xf2,
+};
+static const struct drbg_kat_no_reseed kat1303_t = {
+ 12, kat1303_entropyin, kat1303_nonce, kat1303_persstr,
+ kat1303_addin0, kat1303_addin1, kat1303_retbits
+};
+static const struct drbg_kat kat1303 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1303_t
+};
+
+static const unsigned char kat1304_entropyin[] = {
+ 0x39, 0x6d, 0x78, 0x8f, 0xbb, 0x82, 0x8c, 0x29, 0x64, 0x3b, 0xbf, 0x7e,
+ 0x42, 0x34, 0xd4, 0xb3, 0x43, 0xbc, 0x99, 0x77, 0xeb, 0xd0, 0xc0, 0x8d,
+ 0x17, 0x29, 0x6c, 0xad, 0x99, 0x58, 0x7a, 0x8d, 0x29, 0x90, 0x39, 0xb0,
+ 0x37, 0xbc, 0xc5, 0x1d, 0xcf, 0xaa, 0x14, 0x5d, 0x03, 0x4c, 0x6b, 0x51,
+};
+static const unsigned char kat1304_nonce[] = {0};
+static const unsigned char kat1304_persstr[] = {
+ 0x90, 0x88, 0x2c, 0x27, 0x59, 0xf6, 0x10, 0xac, 0xaf, 0xc6, 0xbc, 0xe6,
+ 0xf9, 0x08, 0xcf, 0x31, 0x11, 0x73, 0x23, 0xc4, 0x38, 0x77, 0xa9, 0x31,
+ 0xfd, 0xe2, 0x7a, 0x25, 0xc1, 0xa9, 0x75, 0xff, 0xc4, 0x83, 0xc2, 0x4e,
+ 0x00, 0xe3, 0x8e, 0x7a, 0x20, 0xd1, 0xda, 0x24, 0xb9, 0x40, 0xc3, 0xb3,
+};
+static const unsigned char kat1304_addin0[] = {0};
+static const unsigned char kat1304_addin1[] = {0};
+static const unsigned char kat1304_retbits[] = {
+ 0x67, 0x9d, 0x9a, 0xe0, 0xeb, 0x82, 0xa4, 0x0d, 0x29, 0x4b, 0x65, 0x80,
+ 0x6f, 0x1e, 0x2f, 0xdf, 0x2c, 0x5d, 0xf5, 0xc3, 0xe2, 0x0f, 0xbc, 0x06,
+ 0xcd, 0x16, 0xbb, 0xfb, 0x64, 0x77, 0xd1, 0x49, 0xf1, 0xe5, 0x91, 0xf8,
+ 0x92, 0x31, 0x81, 0x18, 0xdb, 0xac, 0x4f, 0x2d, 0x7e, 0x5d, 0x63, 0x54,
+ 0x97, 0x41, 0x13, 0xb2, 0xc2, 0x5f, 0x52, 0x80, 0xa0, 0x86, 0x28, 0x98,
+ 0xe2, 0xcd, 0x02, 0xe8,
+};
+static const struct drbg_kat_no_reseed kat1304_t = {
+ 13, kat1304_entropyin, kat1304_nonce, kat1304_persstr,
+ kat1304_addin0, kat1304_addin1, kat1304_retbits
+};
+static const struct drbg_kat kat1304 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1304_t
+};
+
+static const unsigned char kat1305_entropyin[] = {
+ 0x4e, 0x67, 0x68, 0xb6, 0x63, 0xb1, 0x83, 0x8f, 0xbd, 0x56, 0xc7, 0x8b,
+ 0x00, 0x2c, 0x08, 0xc2, 0x81, 0x21, 0x66, 0x22, 0x38, 0x45, 0x6e, 0xa9,
+ 0x3c, 0x4b, 0x28, 0x6f, 0x4a, 0x1d, 0x6a, 0xa2, 0xa1, 0xf5, 0xd2, 0xcf,
+ 0x8e, 0x59, 0xd4, 0x64, 0xed, 0x37, 0xa6, 0x22, 0x80, 0x01, 0xf7, 0xf8,
+};
+static const unsigned char kat1305_nonce[] = {0};
+static const unsigned char kat1305_persstr[] = {
+ 0x47, 0xc2, 0x40, 0x38, 0x73, 0x2c, 0x32, 0xba, 0xf7, 0xe1, 0xe7, 0x1f,
+ 0xb0, 0xb7, 0x4b, 0x74, 0xec, 0x05, 0x5a, 0xdb, 0x88, 0xf8, 0xcf, 0x11,
+ 0x1f, 0xc2, 0x75, 0x98, 0xea, 0x74, 0x87, 0x2f, 0xde, 0x60, 0x82, 0x66,
+ 0xa8, 0xf4, 0x91, 0x05, 0x28, 0x2c, 0x2c, 0xa7, 0x09, 0x3a, 0xce, 0xa2,
+};
+static const unsigned char kat1305_addin0[] = {0};
+static const unsigned char kat1305_addin1[] = {0};
+static const unsigned char kat1305_retbits[] = {
+ 0xb1, 0xce, 0x96, 0xd8, 0x6e, 0x77, 0xa2, 0x51, 0xc4, 0xff, 0xfe, 0x5d,
+ 0xe3, 0x1e, 0x91, 0x99, 0xa1, 0x9f, 0xa2, 0x42, 0xb0, 0x3b, 0x00, 0x5c,
+ 0xf0, 0xb6, 0xa2, 0x3e, 0xa3, 0xa0, 0xc5, 0xb8, 0x7e, 0xdc, 0xbc, 0x77,
+ 0xd0, 0x01, 0x9f, 0x24, 0xd8, 0xc0, 0x59, 0x4a, 0x4e, 0xdb, 0xa0, 0x54,
+ 0xb3, 0x2d, 0x2c, 0x9e, 0x5e, 0x2f, 0x08, 0x93, 0xc4, 0x24, 0xb1, 0x18,
+ 0x87, 0xb0, 0xbe, 0x48,
+};
+static const struct drbg_kat_no_reseed kat1305_t = {
+ 14, kat1305_entropyin, kat1305_nonce, kat1305_persstr,
+ kat1305_addin0, kat1305_addin1, kat1305_retbits
+};
+static const struct drbg_kat kat1305 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1305_t
+};
+
+static const unsigned char kat1306_entropyin[] = {
+ 0xb9, 0x12, 0x80, 0xba, 0xb6, 0x8e, 0x28, 0x27, 0xd9, 0xe1, 0x51, 0xa4,
+ 0x8e, 0x4b, 0x6a, 0x08, 0x12, 0xfe, 0x29, 0x7d, 0xcb, 0x40, 0xc5, 0xfb,
+ 0x91, 0x95, 0x6f, 0x32, 0x6c, 0xf9, 0x98, 0xf5, 0xe6, 0x14, 0x48, 0x86,
+ 0x70, 0x05, 0x41, 0xb0, 0xb6, 0xc2, 0x6a, 0xd7, 0xa7, 0xaa, 0xac, 0xae,
+};
+static const unsigned char kat1306_nonce[] = {0};
+static const unsigned char kat1306_persstr[] = {
+ 0x24, 0x40, 0x41, 0xd6, 0x2b, 0x3a, 0xe7, 0x09, 0x71, 0x90, 0xe1, 0xe4,
+ 0x3a, 0x40, 0xcb, 0xbb, 0x2d, 0x10, 0x2b, 0xa2, 0x04, 0xbe, 0x6b, 0xa3,
+ 0x52, 0xe7, 0x87, 0xb1, 0xef, 0x50, 0x8c, 0xd1, 0x97, 0x48, 0x6b, 0x5e,
+ 0xa7, 0xcb, 0x17, 0xec, 0xb0, 0x00, 0xbd, 0xc9, 0x76, 0xb3, 0xe2, 0x0a,
+};
+static const unsigned char kat1306_addin0[] = {
+ 0x01, 0x5f, 0x53, 0xd7, 0xb4, 0xe6, 0x41, 0x56, 0x46, 0x99, 0x44, 0x56,
+ 0x6a, 0x21, 0x95, 0x79, 0xd5, 0x4b, 0x49, 0x8d, 0x5e, 0x3f, 0xbe, 0x42,
+ 0x00, 0x1d, 0xdb, 0x13, 0x3e, 0x1a, 0x91, 0x37, 0xb8, 0x4f, 0x57, 0xde,
+ 0xa8, 0xb9, 0x15, 0xbc, 0x5f, 0xe4, 0xf6, 0x6e, 0x8e, 0x71, 0xb1, 0x3f,
+};
+static const unsigned char kat1306_addin1[] = {
+ 0xed, 0x1f, 0x74, 0xc1, 0xdb, 0xbb, 0x5b, 0x30, 0x94, 0xfe, 0x5d, 0x01,
+ 0xf1, 0x05, 0xd4, 0x12, 0xd5, 0x7e, 0x5c, 0xd1, 0x7e, 0xeb, 0xcf, 0x5c,
+ 0xfc, 0x43, 0x79, 0x72, 0x0f, 0xdd, 0x26, 0x9c, 0xd9, 0x39, 0x47, 0xad,
+ 0x1e, 0xcd, 0xc8, 0xd8, 0x8a, 0x8d, 0x4d, 0x3e, 0xd3, 0x87, 0x13, 0x8e,
+};
+static const unsigned char kat1306_retbits[] = {
+ 0x54, 0xbb, 0x9c, 0x7d, 0xf6, 0x5e, 0xd9, 0x5d, 0xff, 0xf1, 0x17, 0x8b,
+ 0xdf, 0x09, 0x8f, 0xca, 0x7b, 0x55, 0x59, 0xbf, 0xe8, 0xfe, 0x97, 0x6c,
+ 0x1c, 0x83, 0x86, 0x40, 0x93, 0x58, 0x3a, 0x1a, 0x18, 0x1e, 0xf5, 0x5a,
+ 0x0d, 0x31, 0x71, 0x11, 0x97, 0xb8, 0x23, 0x5f, 0x8f, 0x79, 0x9c, 0x3c,
+ 0x1e, 0xc4, 0xa0, 0x19, 0x4c, 0x72, 0x59, 0xf8, 0x0c, 0xa1, 0x50, 0x08,
+ 0x21, 0xd2, 0x95, 0x3f,
+};
+static const struct drbg_kat_no_reseed kat1306_t = {
+ 0, kat1306_entropyin, kat1306_nonce, kat1306_persstr,
+ kat1306_addin0, kat1306_addin1, kat1306_retbits
+};
+static const struct drbg_kat kat1306 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1306_t
+};
+
+static const unsigned char kat1307_entropyin[] = {
+ 0x5a, 0x04, 0x78, 0xe7, 0x86, 0xd9, 0x47, 0x25, 0x05, 0x19, 0x6a, 0x46,
+ 0xd2, 0xd8, 0xb9, 0x14, 0x4b, 0x71, 0xca, 0x6c, 0x4b, 0x9f, 0xff, 0xe1,
+ 0xc1, 0xea, 0x5f, 0xb7, 0x53, 0x3f, 0x72, 0x0d, 0x84, 0xc6, 0x72, 0xe6,
+ 0x51, 0x1d, 0x53, 0xdf, 0xd3, 0x7e, 0xee, 0x61, 0x14, 0xca, 0x41, 0x72,
+};
+static const unsigned char kat1307_nonce[] = {0};
+static const unsigned char kat1307_persstr[] = {
+ 0xc3, 0x7d, 0x59, 0x5b, 0x7c, 0x28, 0x6a, 0xe5, 0x0e, 0xa5, 0x38, 0xb8,
+ 0xab, 0x5f, 0x6d, 0xe9, 0x14, 0x79, 0x88, 0x10, 0x3b, 0x24, 0xce, 0x94,
+ 0x61, 0x5e, 0x15, 0x30, 0x14, 0xaf, 0xbf, 0x9b, 0x5e, 0x02, 0x5c, 0xf8,
+ 0xec, 0x00, 0xf1, 0x30, 0x7d, 0xcc, 0xe0, 0x0c, 0x6e, 0xd9, 0x7d, 0x39,
+};
+static const unsigned char kat1307_addin0[] = {
+ 0xbf, 0x19, 0xc0, 0xee, 0x9a, 0x8b, 0xe1, 0xa5, 0x0f, 0x71, 0xdc, 0x20,
+ 0x9e, 0x32, 0x7b, 0xb8, 0x82, 0xf2, 0xc4, 0x5e, 0xf1, 0xb7, 0xf9, 0xaf,
+ 0xde, 0xa9, 0x50, 0x27, 0x2d, 0x11, 0x22, 0x3f, 0x3e, 0xbf, 0xc7, 0x71,
+ 0x6d, 0xcf, 0x4c, 0xa2, 0x6d, 0x9a, 0xf8, 0x33, 0x38, 0xbb, 0x9f, 0x4e,
+};
+static const unsigned char kat1307_addin1[] = {
+ 0x66, 0xf6, 0x68, 0xa0, 0xec, 0x07, 0x88, 0xe7, 0x72, 0x77, 0x93, 0x88,
+ 0x83, 0xd9, 0x46, 0xf8, 0x71, 0xc8, 0xfb, 0xfd, 0xc8, 0x25, 0x57, 0x99,
+ 0xb7, 0x34, 0x62, 0x1e, 0x92, 0xcd, 0xac, 0x2a, 0x20, 0x5b, 0xdc, 0x7d,
+ 0x9e, 0x18, 0x00, 0xe5, 0xda, 0x48, 0x31, 0xe1, 0xd9, 0x2d, 0x66, 0x7e,
+};
+static const unsigned char kat1307_retbits[] = {
+ 0x63, 0xc9, 0x14, 0xb7, 0x31, 0x70, 0x6e, 0x6c, 0x61, 0xf8, 0x6d, 0x0b,
+ 0x69, 0x70, 0x3f, 0x48, 0x21, 0xe1, 0xe4, 0xe9, 0xf9, 0xa9, 0x78, 0x95,
+ 0x68, 0x18, 0xfe, 0x5f, 0x3b, 0x49, 0xa2, 0xa4, 0xe8, 0x17, 0x0a, 0xf0,
+ 0x83, 0x1d, 0x68, 0x67, 0x97, 0x6c, 0x03, 0xa7, 0xd9, 0xa8, 0xd8, 0xd0,
+ 0x5f, 0x12, 0x0e, 0x0c, 0x95, 0xa5, 0xbd, 0xa7, 0xd5, 0x05, 0xd8, 0x39,
+ 0x49, 0xdd, 0x1f, 0xa1,
+};
+static const struct drbg_kat_no_reseed kat1307_t = {
+ 1, kat1307_entropyin, kat1307_nonce, kat1307_persstr,
+ kat1307_addin0, kat1307_addin1, kat1307_retbits
+};
+static const struct drbg_kat kat1307 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1307_t
+};
+
+static const unsigned char kat1308_entropyin[] = {
+ 0x7c, 0x5d, 0x90, 0x70, 0x3b, 0x8a, 0xc7, 0x0f, 0x23, 0x73, 0x24, 0x9c,
+ 0xa7, 0x15, 0x41, 0x71, 0x7a, 0x31, 0xea, 0x32, 0xfc, 0x28, 0x0d, 0xd7,
+ 0x5b, 0x09, 0x01, 0x98, 0x1b, 0xe2, 0xa5, 0x53, 0xd9, 0x05, 0x32, 0x97,
+ 0xec, 0xbe, 0x86, 0xfd, 0x1c, 0x1c, 0x71, 0x4c, 0x52, 0x29, 0x9e, 0x52,
+};
+static const unsigned char kat1308_nonce[] = {0};
+static const unsigned char kat1308_persstr[] = {
+ 0xdc, 0x07, 0x2f, 0x68, 0xfa, 0x77, 0x03, 0x23, 0x42, 0xb0, 0xf5, 0xa2,
+ 0xd9, 0xad, 0xa1, 0xd0, 0xad, 0xa2, 0x14, 0xb4, 0xd0, 0x8e, 0xfb, 0x39,
+ 0xdd, 0xc2, 0xac, 0xfb, 0x98, 0xdf, 0x7f, 0xce, 0x4c, 0x75, 0x56, 0x45,
+ 0xcd, 0x86, 0x93, 0x74, 0x90, 0x6e, 0xf6, 0x9e, 0x85, 0x7e, 0xfb, 0xc3,
+};
+static const unsigned char kat1308_addin0[] = {
+ 0x52, 0x25, 0xc4, 0x2f, 0x03, 0xce, 0x29, 0x71, 0xc5, 0x0b, 0xc3, 0x4e,
+ 0xad, 0x8d, 0x6f, 0x17, 0x82, 0xe1, 0xf3, 0xfd, 0xfd, 0x9b, 0x94, 0x9a,
+ 0x1d, 0xac, 0xd0, 0xd4, 0x3f, 0x2b, 0xe3, 0xab, 0x7c, 0x3d, 0x3e, 0x5a,
+ 0x68, 0xbb, 0xa4, 0x74, 0x68, 0x1a, 0xc6, 0x27, 0xff, 0xe0, 0xc0, 0x6c,
+};
+static const unsigned char kat1308_addin1[] = {
+ 0xdc, 0x91, 0xd7, 0xb7, 0xb9, 0x94, 0x79, 0x0f, 0x06, 0xc4, 0x70, 0x19,
+ 0x33, 0x25, 0x7c, 0x96, 0x01, 0xa0, 0x62, 0xb0, 0x50, 0xe6, 0xc0, 0x3a,
+ 0x56, 0x8f, 0xc5, 0x50, 0x48, 0xc6, 0xf4, 0x49, 0xe5, 0x70, 0x16, 0x2e,
+ 0xae, 0xf2, 0x99, 0xb4, 0x2d, 0x70, 0x18, 0x16, 0xcd, 0xe0, 0x24, 0xe4,
+};
+static const unsigned char kat1308_retbits[] = {
+ 0xde, 0xf8, 0x91, 0x1b, 0xf1, 0xe1, 0xa9, 0x97, 0xd8, 0x61, 0x84, 0xe2,
+ 0xdb, 0x83, 0x3e, 0x60, 0x45, 0xcd, 0xc8, 0x66, 0x93, 0x28, 0xc8, 0x92,
+ 0xbc, 0x25, 0xae, 0xe8, 0xb0, 0xed, 0xed, 0x16, 0x3d, 0xa5, 0xf9, 0x0f,
+ 0xb3, 0x72, 0x08, 0x84, 0xac, 0x3c, 0x3b, 0xaa, 0x5f, 0xf9, 0x7d, 0x63,
+ 0x3e, 0xde, 0x59, 0x37, 0x0e, 0x40, 0x12, 0x2b, 0xbc, 0x6c, 0x96, 0x53,
+ 0x26, 0x32, 0xd0, 0xb8,
+};
+static const struct drbg_kat_no_reseed kat1308_t = {
+ 2, kat1308_entropyin, kat1308_nonce, kat1308_persstr,
+ kat1308_addin0, kat1308_addin1, kat1308_retbits
+};
+static const struct drbg_kat kat1308 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1308_t
+};
+
+static const unsigned char kat1309_entropyin[] = {
+ 0x44, 0x25, 0x96, 0xe3, 0x8d, 0x93, 0x07, 0x80, 0x70, 0x6a, 0x05, 0xf3,
+ 0x2c, 0x88, 0xde, 0x80, 0xa4, 0x74, 0x10, 0xfd, 0x36, 0x0f, 0x4d, 0x66,
+ 0x43, 0xde, 0x98, 0xcc, 0xf4, 0x58, 0x72, 0x4a, 0xe7, 0x72, 0xf8, 0x12,
+ 0x91, 0x2f, 0x51, 0xbd, 0xb4, 0xc2, 0x67, 0xc9, 0x44, 0x47, 0x1a, 0x4b,
+};
+static const unsigned char kat1309_nonce[] = {0};
+static const unsigned char kat1309_persstr[] = {
+ 0x97, 0x4c, 0x8b, 0x9c, 0x77, 0x5c, 0x67, 0x3a, 0x21, 0x27, 0x26, 0x54,
+ 0xa6, 0x60, 0x48, 0x55, 0xe7, 0x77, 0x5a, 0x2a, 0x63, 0x25, 0x0e, 0x2b,
+ 0xbe, 0x12, 0xc3, 0x90, 0xa9, 0x9d, 0x3c, 0x51, 0xb2, 0x5a, 0xb5, 0x22,
+ 0xcb, 0x3f, 0x69, 0xa3, 0x63, 0x24, 0x6e, 0x12, 0x5d, 0x8c, 0xbf, 0xea,
+};
+static const unsigned char kat1309_addin0[] = {
+ 0x48, 0xe7, 0xe4, 0x7b, 0x56, 0x92, 0x69, 0xef, 0x82, 0xcb, 0xa9, 0xa8,
+ 0x2c, 0x67, 0x3f, 0x0a, 0x36, 0x0d, 0xb8, 0x8b, 0x09, 0x47, 0x51, 0x66,
+ 0x95, 0x2e, 0xbd, 0x6f, 0xe6, 0x56, 0x2b, 0x2e, 0xf1, 0x0e, 0xc4, 0x66,
+ 0x4d, 0x74, 0xa9, 0xdf, 0xf4, 0x07, 0x16, 0x29, 0xc0, 0x77, 0xd2, 0xab,
+};
+static const unsigned char kat1309_addin1[] = {
+ 0x09, 0x49, 0xbc, 0x89, 0x2c, 0x06, 0xcc, 0xe1, 0x13, 0x60, 0x94, 0xfb,
+ 0xbc, 0x3c, 0x55, 0x46, 0x24, 0x56, 0x67, 0xf0, 0xdc, 0x5b, 0xf6, 0x06,
+ 0xcb, 0x6c, 0x20, 0xdb, 0x6c, 0xa3, 0xd3, 0xd6, 0xfb, 0xa8, 0xe0, 0xd0,
+ 0x99, 0x62, 0x68, 0x06, 0x6a, 0xcb, 0xd9, 0x09, 0x6c, 0xc9, 0xbe, 0x49,
+};
+static const unsigned char kat1309_retbits[] = {
+ 0x8e, 0x0e, 0x4d, 0xf0, 0xa1, 0x9e, 0x60, 0xe8, 0xfa, 0xcb, 0xaa, 0x8f,
+ 0x95, 0xbf, 0x03, 0xc0, 0x89, 0x0b, 0xf8, 0xf4, 0x21, 0xdc, 0x6f, 0x0a,
+ 0xe8, 0x7b, 0x2e, 0x08, 0xd4, 0x51, 0x61, 0x43, 0xe2, 0xa6, 0xa0, 0xa5,
+ 0xa6, 0x80, 0x0d, 0xe7, 0x89, 0x04, 0xe9, 0x57, 0xe7, 0xc2, 0xe9, 0xe0,
+ 0x7d, 0x57, 0xf0, 0xbb, 0x1b, 0x0c, 0x68, 0x54, 0x0e, 0xd7, 0xd6, 0x64,
+ 0xa7, 0x1e, 0x8b, 0x94,
+};
+static const struct drbg_kat_no_reseed kat1309_t = {
+ 3, kat1309_entropyin, kat1309_nonce, kat1309_persstr,
+ kat1309_addin0, kat1309_addin1, kat1309_retbits
+};
+static const struct drbg_kat kat1309 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1309_t
+};
+
+static const unsigned char kat1310_entropyin[] = {
+ 0x7f, 0x85, 0x1c, 0x0c, 0x00, 0xe7, 0x66, 0x13, 0xc6, 0x7f, 0xa4, 0x67,
+ 0x18, 0x37, 0x7e, 0xc6, 0x52, 0xf5, 0x60, 0xd3, 0x8a, 0xb5, 0xa7, 0x62,
+ 0x93, 0xa4, 0x17, 0x8e, 0x24, 0x45, 0x28, 0x93, 0x62, 0x3c, 0xe4, 0xc4,
+ 0x23, 0xef, 0x44, 0x3c, 0xe9, 0xf8, 0xee, 0xa9, 0x37, 0x9e, 0xe1, 0x07,
+};
+static const unsigned char kat1310_nonce[] = {0};
+static const unsigned char kat1310_persstr[] = {
+ 0xf3, 0x7c, 0xd0, 0x91, 0x36, 0xc1, 0xcf, 0x3d, 0x21, 0x62, 0xe3, 0x84,
+ 0x67, 0x3e, 0x54, 0x66, 0x34, 0xa9, 0xb8, 0xdc, 0x93, 0x28, 0x8f, 0xea,
+ 0xb9, 0x7b, 0x3a, 0x63, 0x34, 0xc9, 0xd3, 0xba, 0x25, 0x6c, 0x9f, 0xcc,
+ 0xd9, 0x10, 0xbb, 0x4c, 0x71, 0x28, 0x64, 0x51, 0x97, 0x7b, 0x5d, 0x0f,
+};
+static const unsigned char kat1310_addin0[] = {
+ 0x45, 0x7a, 0x05, 0x94, 0xc3, 0x08, 0xc4, 0x3c, 0x24, 0x96, 0x3e, 0x02,
+ 0x96, 0xac, 0x71, 0x82, 0x8b, 0x37, 0x32, 0x2c, 0x1e, 0x5e, 0xa1, 0x7b,
+ 0xa8, 0xc4, 0xa3, 0x9c, 0xdb, 0xf4, 0x92, 0x1e, 0xfb, 0x12, 0x40, 0x7c,
+ 0x90, 0x7a, 0xca, 0x9d, 0x2b, 0xbb, 0xb2, 0x96, 0x09, 0xc3, 0xbe, 0x6a,
+};
+static const unsigned char kat1310_addin1[] = {
+ 0xa5, 0x3c, 0x52, 0x22, 0x19, 0x20, 0x19, 0x52, 0x48, 0x65, 0xd6, 0x52,
+ 0x2b, 0xef, 0xb0, 0x4d, 0x68, 0xaf, 0xe9, 0xf9, 0x50, 0xfd, 0xa1, 0xdf,
+ 0x9a, 0xee, 0xe5, 0x59, 0xd7, 0x29, 0x36, 0x65, 0x8b, 0xc6, 0x6e, 0x2f,
+ 0x61, 0xee, 0x30, 0x93, 0xea, 0x4b, 0xb1, 0x47, 0xa0, 0x7a, 0xcf, 0x39,
+};
+static const unsigned char kat1310_retbits[] = {
+ 0x3b, 0x1b, 0x02, 0x8c, 0x2d, 0x85, 0x4f, 0x28, 0xd3, 0x50, 0xdc, 0xea,
+ 0xbc, 0x3b, 0x7d, 0xbe, 0xc4, 0xfb, 0x52, 0xbe, 0xd9, 0x42, 0x12, 0xb9,
+ 0x79, 0x6c, 0x4a, 0x30, 0x85, 0x7c, 0xf7, 0x65, 0xfa, 0x46, 0x95, 0x41,
+ 0xa9, 0xbc, 0x22, 0x33, 0xb3, 0xc6, 0xfd, 0x14, 0x32, 0xcd, 0xe6, 0x5c,
+ 0xb5, 0x78, 0x51, 0x49, 0x4d, 0xc4, 0xf5, 0x30, 0xa6, 0x85, 0xc6, 0x86,
+ 0x04, 0x79, 0xf7, 0xc4,
+};
+static const struct drbg_kat_no_reseed kat1310_t = {
+ 4, kat1310_entropyin, kat1310_nonce, kat1310_persstr,
+ kat1310_addin0, kat1310_addin1, kat1310_retbits
+};
+static const struct drbg_kat kat1310 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1310_t
+};
+
+static const unsigned char kat1311_entropyin[] = {
+ 0x94, 0xbe, 0xe5, 0x99, 0x32, 0x9c, 0x14, 0x16, 0xfd, 0x2b, 0x50, 0xc0,
+ 0xfe, 0x40, 0x3f, 0x0e, 0x55, 0xdd, 0xd7, 0x44, 0xe4, 0xe8, 0xf5, 0xee,
+ 0x5f, 0x3e, 0xba, 0x8e, 0x8b, 0xcf, 0xec, 0x31, 0xe6, 0xf3, 0xa2, 0x54,
+ 0xaa, 0x67, 0x3b, 0xd6, 0xf4, 0x6b, 0xc2, 0x41, 0x85, 0x04, 0x33, 0xcc,
+};
+static const unsigned char kat1311_nonce[] = {0};
+static const unsigned char kat1311_persstr[] = {
+ 0x3e, 0xb2, 0x03, 0x41, 0x58, 0x1c, 0xf8, 0x8a, 0x3d, 0x77, 0xea, 0x84,
+ 0x7d, 0xfa, 0x0f, 0x04, 0xc0, 0x7b, 0xf2, 0xbc, 0x09, 0x75, 0x50, 0x40,
+ 0x92, 0x3e, 0xf2, 0x38, 0xe8, 0x3c, 0x6f, 0x7f, 0x28, 0xa7, 0x5b, 0xbd,
+ 0x87, 0x5e, 0xc4, 0x59, 0x8d, 0x9b, 0x2d, 0x17, 0x8b, 0x7d, 0xfd, 0x90,
+};
+static const unsigned char kat1311_addin0[] = {
+ 0xd6, 0x6e, 0xe5, 0x77, 0xd5, 0x0d, 0x6f, 0x46, 0xe7, 0x7c, 0x2c, 0x5d,
+ 0xf2, 0x86, 0x41, 0x28, 0xe5, 0x1e, 0xa4, 0xc4, 0x6a, 0xcc, 0xb7, 0xa4,
+ 0x71, 0xce, 0xf7, 0x5e, 0x88, 0xff, 0xb9, 0x60, 0x8d, 0x8c, 0xe1, 0x49,
+ 0x6a, 0xb8, 0xf1, 0x82, 0x09, 0x79, 0x1d, 0x70, 0xeb, 0x6c, 0x39, 0xac,
+};
+static const unsigned char kat1311_addin1[] = {
+ 0xd2, 0x3e, 0x7b, 0x37, 0x40, 0x1d, 0xd3, 0x21, 0x43, 0xf1, 0xe5, 0x5b,
+ 0x41, 0x92, 0xef, 0x24, 0xdf, 0x81, 0x16, 0x83, 0xa3, 0x04, 0x38, 0xe7,
+ 0xa3, 0x42, 0xbe, 0x7b, 0x0e, 0x01, 0x4c, 0x6b, 0xd9, 0x98, 0xbd, 0x19,
+ 0xfa, 0xb2, 0xbf, 0x23, 0x1f, 0x60, 0x33, 0x1c, 0x3f, 0xe3, 0xbe, 0x09,
+};
+static const unsigned char kat1311_retbits[] = {
+ 0x62, 0x2f, 0x4f, 0x90, 0x77, 0x00, 0x71, 0xb0, 0x84, 0x4d, 0xf8, 0x9b,
+ 0x53, 0xcf, 0xc7, 0x4c, 0xec, 0xb8, 0xe8, 0x95, 0x55, 0x7d, 0xbd, 0x7f,
+ 0x57, 0x7a, 0x9a, 0xef, 0x51, 0xdd, 0xba, 0x11, 0x5f, 0x7d, 0x11, 0x6a,
+ 0xec, 0x0e, 0x2e, 0xa1, 0xc9, 0x75, 0xea, 0x87, 0x10, 0xb5, 0xd2, 0x68,
+ 0x8f, 0xd7, 0x59, 0x00, 0x31, 0xa0, 0xfe, 0x82, 0xab, 0x37, 0xf8, 0x31,
+ 0x4c, 0x0a, 0xfb, 0x12,
+};
+static const struct drbg_kat_no_reseed kat1311_t = {
+ 5, kat1311_entropyin, kat1311_nonce, kat1311_persstr,
+ kat1311_addin0, kat1311_addin1, kat1311_retbits
+};
+static const struct drbg_kat kat1311 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1311_t
+};
+
+static const unsigned char kat1312_entropyin[] = {
+ 0xb7, 0xaa, 0x7a, 0x99, 0xab, 0x1d, 0x6b, 0x2d, 0x95, 0xd2, 0xe3, 0xc3,
+ 0xe8, 0x09, 0xaf, 0x25, 0xad, 0xd1, 0x10, 0x27, 0x0d, 0xd3, 0x28, 0x71,
+ 0x31, 0x73, 0xae, 0xd7, 0x09, 0xad, 0x23, 0x6c, 0x8e, 0x5e, 0xca, 0x47,
+ 0x7f, 0xe5, 0x38, 0x0a, 0x1d, 0xee, 0x60, 0x93, 0x71, 0x4d, 0xf5, 0x6d,
+};
+static const unsigned char kat1312_nonce[] = {0};
+static const unsigned char kat1312_persstr[] = {
+ 0x0a, 0xc4, 0xda, 0xbf, 0xeb, 0xa7, 0xd6, 0xd7, 0x86, 0x86, 0xe0, 0x85,
+ 0x06, 0x7e, 0x35, 0x49, 0x5f, 0x83, 0x60, 0x0a, 0x9c, 0xe3, 0x13, 0x9b,
+ 0xac, 0x52, 0x19, 0x75, 0xe6, 0x1b, 0x04, 0x2e, 0xa4, 0x72, 0x28, 0x60,
+ 0x22, 0x8d, 0x14, 0xb5, 0x7e, 0xca, 0xf2, 0x31, 0x8e, 0xa9, 0x5c, 0xc8,
+};
+static const unsigned char kat1312_addin0[] = {
+ 0x84, 0xad, 0x42, 0x6f, 0xe4, 0x27, 0x33, 0x5f, 0xd6, 0x9f, 0x39, 0x7b,
+ 0xb9, 0xb6, 0xb0, 0x57, 0xda, 0x85, 0x73, 0x19, 0xc4, 0xfb, 0xa9, 0x40,
+ 0x38, 0x80, 0x9f, 0x95, 0xcf, 0x1c, 0x72, 0x09, 0x5e, 0xbf, 0x85, 0x34,
+ 0x68, 0xdc, 0xc2, 0x4d, 0xa4, 0xad, 0xa9, 0xa7, 0x37, 0x60, 0xa6, 0x6c,
+};
+static const unsigned char kat1312_addin1[] = {
+ 0x4b, 0x2e, 0x5a, 0xd8, 0x71, 0x14, 0x37, 0xd2, 0x24, 0x13, 0xce, 0xa1,
+ 0x66, 0x5c, 0x66, 0xb8, 0x27, 0xbb, 0x7b, 0xe5, 0xcc, 0x4d, 0x3a, 0x92,
+ 0xc7, 0x6a, 0x29, 0xb6, 0xd1, 0x11, 0xc3, 0xed, 0x7d, 0x22, 0x07, 0x39,
+ 0x9e, 0x51, 0x48, 0x92, 0x5f, 0x49, 0x3d, 0xfb, 0x39, 0x8f, 0x63, 0xb0,
+};
+static const unsigned char kat1312_retbits[] = {
+ 0x3c, 0x5e, 0x1a, 0x29, 0x93, 0x13, 0xc7, 0xfa, 0x5c, 0xe4, 0x1f, 0xd7,
+ 0x76, 0x21, 0xe8, 0xd4, 0x97, 0x8b, 0x08, 0x54, 0x4b, 0x0d, 0x45, 0xbb,
+ 0xd5, 0x9b, 0x5c, 0xd9, 0xc2, 0x60, 0xcf, 0x55, 0xe0, 0x8c, 0x1c, 0x8a,
+ 0x96, 0xc6, 0xa8, 0xb3, 0x03, 0xf7, 0xf1, 0x74, 0x1d, 0x06, 0x28, 0x05,
+ 0x84, 0xd6, 0x67, 0x17, 0x97, 0x17, 0x9e, 0x32, 0xbd, 0xb4, 0x5d, 0x28,
+ 0xa6, 0x56, 0x1e, 0xdf,
+};
+static const struct drbg_kat_no_reseed kat1312_t = {
+ 6, kat1312_entropyin, kat1312_nonce, kat1312_persstr,
+ kat1312_addin0, kat1312_addin1, kat1312_retbits
+};
+static const struct drbg_kat kat1312 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1312_t
+};
+
+static const unsigned char kat1313_entropyin[] = {
+ 0x3b, 0x03, 0xba, 0x5b, 0x25, 0xa6, 0x8f, 0x5b, 0x29, 0x84, 0xdd, 0x93,
+ 0xd0, 0xba, 0x69, 0xa9, 0x0c, 0xac, 0x54, 0x1c, 0x54, 0xe1, 0x7c, 0x5b,
+ 0x6d, 0x45, 0xeb, 0x7f, 0x19, 0x43, 0x95, 0x21, 0xe1, 0x72, 0x43, 0xbb,
+ 0x81, 0xb2, 0x68, 0xf9, 0x4f, 0x8c, 0x2e, 0xd8, 0x6b, 0x02, 0x3e, 0x5c,
+};
+static const unsigned char kat1313_nonce[] = {0};
+static const unsigned char kat1313_persstr[] = {
+ 0x0b, 0x92, 0x99, 0x39, 0x9d, 0xb9, 0xc1, 0xbb, 0x05, 0x05, 0x11, 0x25,
+ 0xee, 0x2d, 0x1c, 0xbb, 0xaa, 0x44, 0x7b, 0xce, 0x70, 0x5a, 0xc1, 0x40,
+ 0x11, 0xb7, 0x55, 0xd5, 0x5b, 0xb2, 0xa5, 0x21, 0x35, 0xc1, 0xd6, 0x3c,
+ 0x49, 0x7f, 0x80, 0x77, 0x74, 0xbc, 0xc1, 0x98, 0x33, 0x54, 0xbd, 0x75,
+};
+static const unsigned char kat1313_addin0[] = {
+ 0x4e, 0x41, 0x8c, 0x85, 0xda, 0x70, 0xd1, 0xb7, 0x23, 0x1b, 0xfb, 0x52,
+ 0x7d, 0xf0, 0x1e, 0xae, 0x33, 0xbd, 0xce, 0xa3, 0x9a, 0x28, 0x0b, 0x72,
+ 0x93, 0xdc, 0x89, 0x94, 0x22, 0xa5, 0x49, 0x7a, 0xc0, 0x76, 0x5b, 0xf4,
+ 0x32, 0x34, 0xac, 0xf5, 0xc7, 0x74, 0xec, 0x36, 0x64, 0xc5, 0x6c, 0x9d,
+};
+static const unsigned char kat1313_addin1[] = {
+ 0xa4, 0x18, 0xa9, 0x0d, 0xd6, 0x98, 0x5c, 0x6e, 0x64, 0x48, 0x95, 0x89,
+ 0x9d, 0x44, 0x34, 0x45, 0xec, 0xa3, 0x5a, 0x7e, 0x26, 0xc7, 0x91, 0x9f,
+ 0x36, 0x12, 0x93, 0x85, 0xa3, 0xf1, 0x5a, 0xe2, 0x1e, 0x4d, 0xa6, 0x0b,
+ 0x2d, 0xdb, 0xb7, 0xe1, 0x10, 0x6f, 0x81, 0x0c, 0xf8, 0x54, 0x3c, 0xdd,
+};
+static const unsigned char kat1313_retbits[] = {
+ 0x3c, 0xe6, 0xe5, 0x2a, 0x12, 0xda, 0x13, 0x8a, 0x09, 0x64, 0xa5, 0xff,
+ 0xa3, 0xf7, 0x43, 0x46, 0x35, 0xea, 0x12, 0x48, 0xfc, 0x68, 0x23, 0xc6,
+ 0xe8, 0xec, 0x73, 0x84, 0x74, 0xbd, 0x32, 0x02, 0xf0, 0x9f, 0xee, 0x91,
+ 0x7d, 0xfd, 0xcc, 0x90, 0xc1, 0x28, 0x23, 0x38, 0x8d, 0x17, 0x3b, 0xcf,
+ 0x04, 0xfb, 0x5a, 0xf3, 0x33, 0xed, 0x2c, 0x88, 0xc7, 0x4a, 0x54, 0x09,
+ 0xa1, 0x60, 0x91, 0x0b,
+};
+static const struct drbg_kat_no_reseed kat1313_t = {
+ 7, kat1313_entropyin, kat1313_nonce, kat1313_persstr,
+ kat1313_addin0, kat1313_addin1, kat1313_retbits
+};
+static const struct drbg_kat kat1313 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1313_t
+};
+
+static const unsigned char kat1314_entropyin[] = {
+ 0xf2, 0x45, 0x79, 0xcb, 0x1b, 0xcc, 0xf3, 0xc1, 0x1c, 0x02, 0x9d, 0xb2,
+ 0x81, 0xa5, 0x53, 0x37, 0xaf, 0x7c, 0xea, 0x6e, 0xbd, 0x60, 0x6a, 0x74,
+ 0x57, 0x37, 0x40, 0x51, 0x9f, 0x44, 0x5d, 0xaf, 0x8c, 0x6c, 0x9f, 0x2a,
+ 0xce, 0xba, 0x6f, 0xbb, 0xe8, 0xbb, 0xd7, 0x20, 0x73, 0x69, 0x3a, 0x87,
+};
+static const unsigned char kat1314_nonce[] = {0};
+static const unsigned char kat1314_persstr[] = {
+ 0xf3, 0x80, 0x1e, 0x0e, 0xc8, 0x44, 0xca, 0xb0, 0xaa, 0x38, 0xb5, 0x7c,
+ 0xac, 0x9f, 0x64, 0xad, 0x86, 0xc1, 0x48, 0x5e, 0x24, 0x92, 0xb8, 0xd9,
+ 0x96, 0x36, 0x18, 0x6b, 0x26, 0x1e, 0xf4, 0x7f, 0x5e, 0xd6, 0x7a, 0x0c,
+ 0xff, 0xb2, 0xe3, 0x9b, 0x2e, 0x93, 0x4f, 0x77, 0x42, 0x42, 0xab, 0x48,
+};
+static const unsigned char kat1314_addin0[] = {
+ 0xec, 0xd8, 0xf1, 0xf9, 0x7e, 0xf7, 0x42, 0xdd, 0xca, 0x7d, 0x35, 0xb0,
+ 0x7f, 0xc0, 0xb4, 0x2e, 0xc4, 0x55, 0x08, 0x79, 0x98, 0x7b, 0xdf, 0xb3,
+ 0x00, 0x36, 0x60, 0x93, 0xcb, 0x25, 0x8d, 0x6e, 0xde, 0x44, 0x31, 0x66,
+ 0x95, 0xd7, 0xc3, 0x5b, 0x71, 0x08, 0x00, 0x36, 0xcc, 0x3a, 0x54, 0x96,
+};
+static const unsigned char kat1314_addin1[] = {
+ 0x9f, 0x97, 0xe2, 0xe5, 0xd7, 0x3c, 0x71, 0x42, 0xbb, 0x85, 0x28, 0xd3,
+ 0x64, 0xd0, 0x55, 0x6b, 0x0b, 0x9c, 0x19, 0xbc, 0xaa, 0x92, 0x78, 0x40,
+ 0x3c, 0x22, 0xf1, 0xda, 0x5f, 0x31, 0xfe, 0x02, 0xfb, 0x53, 0xbf, 0xb6,
+ 0xe4, 0xf2, 0xe9, 0x25, 0x72, 0x9a, 0xef, 0xcd, 0x1a, 0x66, 0x7c, 0x42,
+};
+static const unsigned char kat1314_retbits[] = {
+ 0x18, 0x19, 0xec, 0x28, 0x98, 0xf4, 0x2f, 0x08, 0xe3, 0x78, 0x0a, 0xfe,
+ 0x3a, 0xa4, 0x2e, 0xc4, 0x03, 0xf5, 0x02, 0x72, 0x98, 0x89, 0x98, 0x46,
+ 0x55, 0x8e, 0xda, 0xd2, 0xde, 0x69, 0x00, 0x6f, 0xe8, 0xf8, 0xc1, 0x22,
+ 0x29, 0xc4, 0xaf, 0xf8, 0xb0, 0x6a, 0x0f, 0xbe, 0xbc, 0xfd, 0x2c, 0x4b,
+ 0x17, 0x48, 0x35, 0xc0, 0xc3, 0xdf, 0x1c, 0x69, 0x82, 0xdb, 0x20, 0x3a,
+ 0xe4, 0x6c, 0x5c, 0x06,
+};
+static const struct drbg_kat_no_reseed kat1314_t = {
+ 8, kat1314_entropyin, kat1314_nonce, kat1314_persstr,
+ kat1314_addin0, kat1314_addin1, kat1314_retbits
+};
+static const struct drbg_kat kat1314 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1314_t
+};
+
+static const unsigned char kat1315_entropyin[] = {
+ 0x3c, 0x45, 0xf9, 0x35, 0x19, 0x80, 0xda, 0xf3, 0x81, 0xe2, 0x5e, 0x59,
+ 0xff, 0x23, 0xda, 0xf5, 0x4d, 0x69, 0xa0, 0x65, 0x05, 0xbb, 0x1e, 0xca,
+ 0x6c, 0x98, 0xa7, 0x42, 0xdb, 0x28, 0xfd, 0xf4, 0x62, 0x22, 0x2d, 0x22,
+ 0xf3, 0xc9, 0x1a, 0x59, 0xb5, 0x31, 0x16, 0xc7, 0xd1, 0x73, 0x62, 0xdb,
+};
+static const unsigned char kat1315_nonce[] = {0};
+static const unsigned char kat1315_persstr[] = {
+ 0x83, 0x16, 0xc2, 0x44, 0xc5, 0x07, 0x4d, 0x09, 0x50, 0xd0, 0x33, 0x20,
+ 0x42, 0x78, 0x58, 0xaa, 0xe9, 0xe8, 0xd9, 0xe8, 0xff, 0x56, 0x46, 0x9e,
+ 0x1b, 0xee, 0xf1, 0x4a, 0x99, 0xab, 0xad, 0x23, 0xd8, 0xfa, 0xb5, 0x50,
+ 0xcd, 0xee, 0x28, 0x76, 0x8f, 0x02, 0x33, 0x31, 0xd5, 0x7e, 0x77, 0xc6,
+};
+static const unsigned char kat1315_addin0[] = {
+ 0x19, 0xc3, 0xdd, 0x60, 0x33, 0xf1, 0x09, 0x57, 0xf8, 0x25, 0x72, 0x31,
+ 0x06, 0xf2, 0xa8, 0x94, 0x7a, 0xed, 0x22, 0xd9, 0x6b, 0xa4, 0xc1, 0xda,
+ 0x2e, 0x0a, 0x86, 0x2e, 0xab, 0x5f, 0x6e, 0x2f, 0x33, 0x76, 0xbb, 0xe2,
+ 0x52, 0x00, 0xcc, 0x17, 0x09, 0x5f, 0x61, 0x4b, 0x26, 0x4c, 0xc8, 0x7f,
+};
+static const unsigned char kat1315_addin1[] = {
+ 0x5a, 0xba, 0x98, 0x9d, 0x2e, 0x8c, 0xb2, 0x8d, 0x96, 0x34, 0x87, 0x16,
+ 0x8f, 0x31, 0x91, 0x64, 0x73, 0x31, 0x5f, 0x28, 0x1b, 0x40, 0x14, 0x0f,
+ 0x73, 0x8a, 0x55, 0xed, 0x4d, 0x49, 0x9d, 0x2e, 0x3d, 0xf2, 0x61, 0x95,
+ 0xa6, 0x13, 0x9d, 0x70, 0xf8, 0xdf, 0x91, 0x8a, 0x1e, 0xc3, 0x37, 0xc6,
+};
+static const unsigned char kat1315_retbits[] = {
+ 0xe9, 0x62, 0x06, 0x70, 0xe9, 0x71, 0xf5, 0xc9, 0xec, 0x68, 0x3c, 0x2c,
+ 0xaf, 0xc9, 0xa5, 0x51, 0xe5, 0xe9, 0x80, 0x6e, 0x5b, 0xd3, 0x20, 0x1f,
+ 0x3a, 0x1d, 0x62, 0xc7, 0xf2, 0xfa, 0x95, 0x33, 0x3b, 0x02, 0x6f, 0x01,
+ 0x5b, 0xc9, 0x75, 0x59, 0x45, 0x04, 0x86, 0xae, 0x2c, 0x61, 0x67, 0x7f,
+ 0xd3, 0x10, 0xd2, 0x42, 0xfd, 0x04, 0xdb, 0x51, 0xda, 0x14, 0x2f, 0xd9,
+ 0x0f, 0xba, 0x8f, 0x27,
+};
+static const struct drbg_kat_no_reseed kat1315_t = {
+ 9, kat1315_entropyin, kat1315_nonce, kat1315_persstr,
+ kat1315_addin0, kat1315_addin1, kat1315_retbits
+};
+static const struct drbg_kat kat1315 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1315_t
+};
+
+static const unsigned char kat1316_entropyin[] = {
+ 0x0e, 0x31, 0x4c, 0xa8, 0x55, 0x5e, 0xc7, 0xcb, 0x98, 0x14, 0xa4, 0x51,
+ 0x9b, 0xbb, 0xa9, 0x58, 0xe4, 0xd1, 0xa7, 0xe0, 0xe8, 0xee, 0x60, 0xe6,
+ 0x97, 0x74, 0x16, 0xf0, 0x8e, 0x98, 0xdc, 0x05, 0xcc, 0x96, 0xde, 0xda,
+ 0x28, 0x3d, 0xd6, 0x89, 0x1c, 0x9a, 0x91, 0x0f, 0x15, 0x15, 0x53, 0x2d,
+};
+static const unsigned char kat1316_nonce[] = {0};
+static const unsigned char kat1316_persstr[] = {
+ 0x35, 0xee, 0xf7, 0x00, 0xcd, 0xc6, 0x46, 0x83, 0x49, 0xbb, 0x0e, 0xdd,
+ 0x62, 0xa3, 0xeb, 0x82, 0x49, 0xcc, 0x06, 0x72, 0x60, 0x26, 0x1c, 0x4d,
+ 0x06, 0x3a, 0xff, 0xeb, 0xe6, 0x39, 0x45, 0xb4, 0xa0, 0xf1, 0xc1, 0x0e,
+ 0x0f, 0x17, 0x8d, 0x6c, 0xea, 0xbb, 0xe7, 0xf1, 0x5c, 0x5d, 0xa4, 0x60,
+};
+static const unsigned char kat1316_addin0[] = {
+ 0xcd, 0x68, 0xd3, 0x1a, 0x3d, 0xae, 0x76, 0xbf, 0xbc, 0xa8, 0x1d, 0xc2,
+ 0xed, 0xd5, 0xab, 0xbd, 0x99, 0x76, 0xd5, 0x51, 0x61, 0xe6, 0x0a, 0xd4,
+ 0x8f, 0xf0, 0x69, 0x37, 0x9f, 0x60, 0x0c, 0x17, 0x18, 0xec, 0xeb, 0xf8,
+ 0x4c, 0x16, 0x92, 0x34, 0x11, 0x3d, 0x38, 0x3c, 0x7c, 0x43, 0xe5, 0xbb,
+};
+static const unsigned char kat1316_addin1[] = {
+ 0xab, 0x3c, 0x67, 0x6e, 0xd3, 0x4c, 0x83, 0x64, 0xfa, 0xc5, 0xe4, 0xf7,
+ 0x3c, 0x64, 0xb7, 0x8d, 0xc8, 0x70, 0x06, 0xca, 0x0a, 0x15, 0x99, 0x3d,
+ 0x9b, 0xce, 0xf2, 0x3c, 0x76, 0x71, 0xd7, 0x39, 0x6b, 0x04, 0xa5, 0xb6,
+ 0xb6, 0x65, 0x99, 0x95, 0xf8, 0x9e, 0xaa, 0x02, 0xb9, 0x64, 0xb9, 0x80,
+};
+static const unsigned char kat1316_retbits[] = {
+ 0x5c, 0xf6, 0x98, 0x63, 0x83, 0xdc, 0xd9, 0x7d, 0xbf, 0xbb, 0x2d, 0x06,
+ 0x66, 0xb4, 0xe5, 0x7b, 0x51, 0x6e, 0x77, 0x37, 0x77, 0xa7, 0x3b, 0x0f,
+ 0xc6, 0xaa, 0x4f, 0x75, 0x0d, 0x8e, 0x62, 0x21, 0x77, 0x26, 0x68, 0xd9,
+ 0xe5, 0x8c, 0x4d, 0x4b, 0x63, 0x35, 0xc0, 0xab, 0xca, 0xb0, 0xe6, 0xa5,
+ 0x02, 0x91, 0xf0, 0x60, 0x10, 0x89, 0x33, 0xc3, 0x38, 0x0c, 0xa2, 0x79,
+ 0x07, 0xfc, 0xb2, 0x32,
+};
+static const struct drbg_kat_no_reseed kat1316_t = {
+ 10, kat1316_entropyin, kat1316_nonce, kat1316_persstr,
+ kat1316_addin0, kat1316_addin1, kat1316_retbits
+};
+static const struct drbg_kat kat1316 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1316_t
+};
+
+static const unsigned char kat1317_entropyin[] = {
+ 0x7d, 0xd7, 0xd6, 0x93, 0xa2, 0xb6, 0x6c, 0xe2, 0x52, 0x89, 0xa7, 0xb4,
+ 0xce, 0x5f, 0x89, 0x70, 0xc4, 0x62, 0x79, 0xfb, 0x97, 0x3c, 0x48, 0xd0,
+ 0x11, 0x98, 0x89, 0x57, 0x90, 0x15, 0x08, 0xd7, 0x23, 0x5e, 0xca, 0x41,
+ 0xc5, 0x80, 0xf9, 0xac, 0xa0, 0x0e, 0xa1, 0x7e, 0xae, 0x48, 0x0c, 0x4e,
+};
+static const unsigned char kat1317_nonce[] = {0};
+static const unsigned char kat1317_persstr[] = {
+ 0xc0, 0x0a, 0xf4, 0xb3, 0x71, 0xb7, 0xee, 0xb3, 0x96, 0xa3, 0x75, 0xb6,
+ 0x2d, 0x52, 0x49, 0xf6, 0xd0, 0x14, 0xfe, 0x2b, 0x6b, 0xdd, 0xcb, 0x6d,
+ 0x10, 0x06, 0xee, 0xa1, 0xc9, 0x50, 0xa0, 0x2e, 0x72, 0x63, 0xe3, 0xfc,
+ 0x5c, 0x1f, 0x92, 0x97, 0x02, 0x04, 0xfd, 0x15, 0x24, 0x82, 0xb0, 0x64,
+};
+static const unsigned char kat1317_addin0[] = {
+ 0xf0, 0x78, 0x6d, 0x58, 0xce, 0x09, 0xc3, 0x35, 0xfe, 0xb0, 0xd1, 0xf5,
+ 0x20, 0x15, 0xc3, 0x51, 0x94, 0x3d, 0x64, 0xad, 0x20, 0xf3, 0xb9, 0xe2,
+ 0xb5, 0x0b, 0xfc, 0x82, 0xc3, 0x92, 0x0a, 0x9c, 0x7e, 0x04, 0xcd, 0x50,
+ 0xb3, 0xf3, 0xb3, 0xcf, 0x18, 0xea, 0x9d, 0x9e, 0xf5, 0x56, 0x81, 0xdf,
+};
+static const unsigned char kat1317_addin1[] = {
+ 0xea, 0x80, 0x97, 0x89, 0xbd, 0x9e, 0x88, 0x5a, 0x2e, 0x8a, 0xe7, 0x8f,
+ 0xd3, 0x05, 0xb1, 0x22, 0xaa, 0x05, 0x0a, 0x1a, 0x83, 0xed, 0x7c, 0x3d,
+ 0x82, 0xe8, 0x2f, 0x0c, 0xd3, 0xc7, 0xa4, 0x8c, 0x53, 0xeb, 0x18, 0x9a,
+ 0xab, 0xef, 0x35, 0xde, 0x05, 0xaa, 0x26, 0x2b, 0xcb, 0xf8, 0x57, 0x00,
+};
+static const unsigned char kat1317_retbits[] = {
+ 0x72, 0xb5, 0x5c, 0x04, 0x15, 0x6b, 0x45, 0x9d, 0xa2, 0x11, 0xe5, 0x4b,
+ 0x1f, 0xeb, 0xc7, 0xf6, 0xdd, 0x41, 0x39, 0xaf, 0xea, 0x35, 0x20, 0xaa,
+ 0x8c, 0xac, 0x3b, 0x27, 0x90, 0x06, 0xd0, 0x90, 0xa5, 0x77, 0x21, 0xa6,
+ 0xa1, 0x51, 0x57, 0x07, 0x0e, 0xf3, 0xe2, 0x8c, 0xdd, 0xb6, 0xda, 0xe9,
+ 0x47, 0x8d, 0xec, 0xab, 0xd7, 0x8a, 0x39, 0xd9, 0xf2, 0x17, 0xd1, 0x53,
+ 0x27, 0x6b, 0x83, 0x36,
+};
+static const struct drbg_kat_no_reseed kat1317_t = {
+ 11, kat1317_entropyin, kat1317_nonce, kat1317_persstr,
+ kat1317_addin0, kat1317_addin1, kat1317_retbits
+};
+static const struct drbg_kat kat1317 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1317_t
+};
+
+static const unsigned char kat1318_entropyin[] = {
+ 0x82, 0x36, 0xb6, 0xfb, 0x88, 0x17, 0xc2, 0x7f, 0x4f, 0x18, 0x16, 0x0a,
+ 0x2f, 0xcb, 0xb5, 0x13, 0x6e, 0x93, 0xd2, 0x17, 0xb0, 0xfd, 0xe5, 0x24,
+ 0x5c, 0xc2, 0x96, 0x4d, 0x2e, 0xf9, 0xaa, 0x69, 0x0b, 0x70, 0x6c, 0xab,
+ 0xaf, 0x42, 0x17, 0xb5, 0x40, 0xfa, 0x26, 0x7f, 0xac, 0x6b, 0x49, 0xe7,
+};
+static const unsigned char kat1318_nonce[] = {0};
+static const unsigned char kat1318_persstr[] = {
+ 0x92, 0x26, 0x02, 0x19, 0x57, 0xf9, 0x54, 0xfb, 0xc8, 0x39, 0xef, 0xfd,
+ 0x03, 0x10, 0xab, 0xa0, 0x29, 0xb0, 0xc7, 0x13, 0x98, 0x8b, 0xcb, 0x03,
+ 0x11, 0x0f, 0x90, 0x84, 0x20, 0x7a, 0x8a, 0x30, 0xb2, 0x5e, 0xe0, 0x93,
+ 0x0e, 0x38, 0x1b, 0xc2, 0xf6, 0x81, 0x15, 0x75, 0x16, 0xe7, 0x97, 0x00,
+};
+static const unsigned char kat1318_addin0[] = {
+ 0x34, 0x30, 0xbd, 0x3d, 0xb1, 0x69, 0xcf, 0x3b, 0x56, 0xbc, 0x64, 0x8f,
+ 0xe7, 0x97, 0xb1, 0x34, 0x22, 0x8f, 0xa5, 0x5c, 0x55, 0x46, 0x34, 0xe1,
+ 0x52, 0x32, 0xe3, 0x2d, 0x64, 0xf4, 0x24, 0xef, 0x19, 0x5e, 0xcf, 0x8c,
+ 0x73, 0x66, 0x95, 0xc6, 0x20, 0xce, 0x1f, 0x97, 0x8e, 0x49, 0x08, 0x3c,
+};
+static const unsigned char kat1318_addin1[] = {
+ 0xa6, 0x20, 0xc5, 0x2d, 0xed, 0x0a, 0x3d, 0xa5, 0xc9, 0xe7, 0x17, 0x29,
+ 0x1a, 0x39, 0xd1, 0x26, 0x1e, 0xf3, 0x8e, 0x87, 0xc3, 0x43, 0x72, 0x8c,
+ 0x05, 0x44, 0x31, 0xa6, 0x93, 0x30, 0x92, 0x77, 0x97, 0xd3, 0x50, 0x82,
+ 0x6e, 0x93, 0xaa, 0xba, 0xe1, 0xf3, 0xcf, 0x2a, 0x61, 0x14, 0x67, 0x4c,
+};
+static const unsigned char kat1318_retbits[] = {
+ 0x4b, 0xfb, 0xbc, 0xf8, 0xce, 0x6b, 0x0c, 0x74, 0x3d, 0x62, 0xa0, 0x80,
+ 0x66, 0xb3, 0x25, 0xbc, 0xe9, 0x36, 0x3c, 0xf4, 0x07, 0xb2, 0xf0, 0x44,
+ 0x22, 0xe3, 0xee, 0x8f, 0x19, 0xd5, 0x53, 0x21, 0x36, 0x53, 0x2d, 0xd5,
+ 0x96, 0xe5, 0x21, 0x25, 0x9e, 0xb0, 0x9c, 0xff, 0xad, 0xbb, 0xdb, 0x2c,
+ 0xc8, 0x92, 0x7d, 0x79, 0xb8, 0xb5, 0xb8, 0x03, 0x03, 0xc8, 0xf9, 0x6f,
+ 0xb6, 0x25, 0x4b, 0x1d,
+};
+static const struct drbg_kat_no_reseed kat1318_t = {
+ 12, kat1318_entropyin, kat1318_nonce, kat1318_persstr,
+ kat1318_addin0, kat1318_addin1, kat1318_retbits
+};
+static const struct drbg_kat kat1318 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1318_t
+};
+
+static const unsigned char kat1319_entropyin[] = {
+ 0x4d, 0xa4, 0xe4, 0x6d, 0xdb, 0x2e, 0xbb, 0xdf, 0xbd, 0x19, 0xd3, 0x32,
+ 0x3e, 0x75, 0xd4, 0x2e, 0xb9, 0x67, 0xcb, 0xe3, 0x79, 0xf6, 0xb0, 0x0f,
+ 0x86, 0x93, 0xe9, 0xce, 0xc9, 0xb8, 0x59, 0x83, 0x3c, 0x6d, 0x1f, 0x49,
+ 0xd4, 0x79, 0x21, 0xad, 0xcf, 0x1f, 0x1b, 0x8f, 0xf0, 0x29, 0x0c, 0x4a,
+};
+static const unsigned char kat1319_nonce[] = {0};
+static const unsigned char kat1319_persstr[] = {
+ 0x6f, 0xa6, 0xf5, 0xe1, 0xa8, 0xaf, 0xa8, 0x15, 0x58, 0xb5, 0x09, 0x20,
+ 0x91, 0x88, 0x6a, 0xed, 0xc2, 0x7a, 0xc8, 0x4d, 0x24, 0xd4, 0x10, 0x3f,
+ 0x9c, 0x08, 0x69, 0x17, 0xdc, 0x4a, 0x73, 0xca, 0x4e, 0x56, 0xa5, 0xa7,
+ 0xd3, 0x9a, 0xeb, 0x2b, 0xb4, 0x5c, 0x0b, 0x30, 0x74, 0x54, 0x42, 0x26,
+};
+static const unsigned char kat1319_addin0[] = {
+ 0x9d, 0xe8, 0x7f, 0xf8, 0x61, 0x58, 0xf8, 0x70, 0x24, 0xd5, 0x29, 0xea,
+ 0xfb, 0x86, 0x06, 0xa8, 0x29, 0xee, 0x2d, 0xcb, 0x48, 0x68, 0xe4, 0xf4,
+ 0x7e, 0x4b, 0x6d, 0x12, 0x29, 0x44, 0x00, 0x97, 0x50, 0x49, 0xf8, 0x30,
+ 0xef, 0x61, 0x26, 0xf6, 0xf9, 0x5e, 0xea, 0xce, 0xde, 0x03, 0x1a, 0xb2,
+};
+static const unsigned char kat1319_addin1[] = {
+ 0x5d, 0x15, 0x26, 0xdf, 0x0b, 0xdd, 0x64, 0x3e, 0xe7, 0x23, 0x29, 0x63,
+ 0xad, 0xb3, 0x4a, 0xd4, 0x81, 0x8b, 0x1f, 0x81, 0xb5, 0x01, 0x01, 0x29,
+ 0xe1, 0x59, 0x7a, 0xa9, 0x0a, 0x8e, 0x5f, 0xc9, 0xe2, 0xd7, 0x2a, 0x04,
+ 0xe7, 0x67, 0x07, 0x4f, 0x6d, 0xde, 0xb2, 0x3f, 0xa7, 0xf9, 0x21, 0xe3,
+};
+static const unsigned char kat1319_retbits[] = {
+ 0x3a, 0x73, 0x37, 0x4f, 0xc5, 0x19, 0x61, 0xb0, 0x17, 0xd5, 0x11, 0xfd,
+ 0x0f, 0x72, 0x9c, 0xb2, 0x1d, 0x44, 0xd4, 0xa6, 0x80, 0xff, 0x05, 0xc7,
+ 0x48, 0xe3, 0x88, 0xcc, 0xef, 0x8a, 0x47, 0x06, 0xeb, 0x91, 0x48, 0x37,
+ 0xd9, 0x1f, 0x23, 0xdb, 0x1c, 0xc6, 0xc9, 0xe8, 0x50, 0xb0, 0xc6, 0xe6,
+ 0x04, 0x1c, 0x81, 0x97, 0xe0, 0x57, 0x1a, 0xce, 0xd3, 0x0a, 0x88, 0xb8,
+ 0x18, 0xc6, 0x78, 0xf0,
+};
+static const struct drbg_kat_no_reseed kat1319_t = {
+ 13, kat1319_entropyin, kat1319_nonce, kat1319_persstr,
+ kat1319_addin0, kat1319_addin1, kat1319_retbits
+};
+static const struct drbg_kat kat1319 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1319_t
+};
+
+static const unsigned char kat1320_entropyin[] = {
+ 0x22, 0x0d, 0x0d, 0x2c, 0xd6, 0xe4, 0x24, 0xb9, 0x7a, 0x37, 0xdf, 0x3b,
+ 0x32, 0x2d, 0x55, 0x93, 0x10, 0x0e, 0xd9, 0x4e, 0x0a, 0x3a, 0xbb, 0x7a,
+ 0x3b, 0x84, 0x36, 0x21, 0xdc, 0x2b, 0x76, 0x45, 0x2f, 0xec, 0x13, 0x1a,
+ 0x2d, 0x6b, 0x4e, 0xe5, 0x1f, 0x26, 0xd1, 0x61, 0x1c, 0x3c, 0xb1, 0xe5,
+};
+static const unsigned char kat1320_nonce[] = {0};
+static const unsigned char kat1320_persstr[] = {
+ 0x43, 0x89, 0x2d, 0xd3, 0xd8, 0xf3, 0x17, 0x20, 0x82, 0x07, 0x98, 0x30,
+ 0x39, 0x15, 0x8f, 0x98, 0x33, 0xf1, 0xc0, 0x97, 0x05, 0xd2, 0x96, 0xfe,
+ 0x45, 0xe7, 0x2a, 0x9d, 0x6a, 0xfc, 0x08, 0xb9, 0x9a, 0x86, 0x6b, 0x95,
+ 0x42, 0xfa, 0x3d, 0xb4, 0xd3, 0x3a, 0x9c, 0x1e, 0x7c, 0x3e, 0x88, 0xac,
+};
+static const unsigned char kat1320_addin0[] = {
+ 0x0e, 0x2e, 0xc4, 0x84, 0xd8, 0x86, 0x6a, 0xdc, 0x06, 0x5b, 0x4f, 0x11,
+ 0xd3, 0x76, 0x0b, 0x4d, 0x27, 0x6e, 0x2c, 0xf9, 0xc0, 0x66, 0xb2, 0x26,
+ 0x31, 0x1e, 0x7c, 0x78, 0x06, 0x89, 0xe8, 0x40, 0xfb, 0xaf, 0x4f, 0x67,
+ 0xf3, 0xda, 0x0e, 0xfb, 0xb0, 0x34, 0xd5, 0x60, 0xbb, 0x73, 0xa1, 0xf4,
+};
+static const unsigned char kat1320_addin1[] = {
+ 0x9f, 0xdf, 0xcb, 0x74, 0x60, 0xce, 0x5b, 0x99, 0x13, 0xff, 0xb9, 0x88,
+ 0x96, 0x96, 0xdf, 0x7a, 0xbe, 0x28, 0xaa, 0xd4, 0x0e, 0xba, 0x3b, 0x67,
+ 0x5d, 0x75, 0x08, 0xcc, 0xa1, 0xc9, 0x8f, 0xaa, 0xa2, 0x7d, 0xd5, 0xf5,
+ 0x29, 0x97, 0xdd, 0x6f, 0x25, 0x1a, 0x68, 0xe8, 0x6f, 0x96, 0x6f, 0xb1,
+};
+static const unsigned char kat1320_retbits[] = {
+ 0x66, 0xd6, 0xb1, 0x69, 0x3a, 0x3c, 0xa1, 0xcb, 0x61, 0x69, 0x85, 0x83,
+ 0x90, 0x74, 0x1b, 0xae, 0x32, 0x85, 0xe0, 0xc2, 0x86, 0x04, 0xd0, 0x64,
+ 0xb5, 0x7f, 0x3a, 0xa2, 0xef, 0x9a, 0x56, 0x9b, 0xec, 0x22, 0x88, 0x4c,
+ 0xcc, 0x5c, 0xd3, 0x15, 0xd3, 0xf3, 0x84, 0x7c, 0x68, 0x0c, 0x34, 0x81,
+ 0xbc, 0xae, 0x42, 0x3c, 0xb1, 0x05, 0xea, 0x47, 0x95, 0x6f, 0x62, 0xcf,
+ 0x8c, 0x2c, 0x5d, 0x29,
+};
+static const struct drbg_kat_no_reseed kat1320_t = {
+ 14, kat1320_entropyin, kat1320_nonce, kat1320_persstr,
+ kat1320_addin0, kat1320_addin1, kat1320_retbits
+};
+static const struct drbg_kat kat1320 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1320_t
+};
+
+static const unsigned char kat1321_entropyin[] = {
+ 0xd2, 0xbe, 0x2d, 0xc7, 0x52, 0x0e, 0x5a, 0xb1, 0x09, 0x75, 0xe2, 0xed,
+ 0xdd, 0x0a, 0x8d, 0xd6, 0xdc, 0xed, 0x9e, 0x36, 0x4d, 0xfb, 0x47, 0xbf,
+ 0x26, 0x3d, 0x25, 0xe7, 0x5c, 0x6f, 0x8c, 0x9e, 0xbf, 0x38, 0x6f, 0x02,
+ 0xff, 0x0a, 0x72, 0x26, 0x76, 0xb1, 0xcd, 0xa1, 0x8a, 0xba, 0x0c, 0xc4,
+};
+static const unsigned char kat1321_nonce[] = {0};
+static const unsigned char kat1321_persstr[] = {0};
+static const unsigned char kat1321_addin0[] = {0};
+static const unsigned char kat1321_addin1[] = {0};
+static const unsigned char kat1321_retbits[] = {
+ 0x2c, 0x1d, 0xb4, 0x2f, 0x45, 0xfd, 0x2f, 0xd6, 0xcc, 0xaf, 0x48, 0xd4,
+ 0x5f, 0x54, 0x4b, 0x14, 0x9b, 0x44, 0x6c, 0xdc, 0xd0, 0xe8, 0x8f, 0xd5,
+ 0x11, 0xf3, 0x88, 0x7a, 0x2d, 0x19, 0x69, 0x06, 0x0b, 0x26, 0xcc, 0x00,
+ 0x45, 0x59, 0xbf, 0x17, 0xe8, 0xbe, 0x81, 0xb8, 0xd4, 0x80, 0xfd, 0x72,
+ 0x8b, 0x32, 0x17, 0xce, 0x10, 0xdd, 0x8b, 0xf8, 0x0e, 0x62, 0x27, 0x78,
+ 0xdb, 0x76, 0xde, 0x77,
+};
+static const struct drbg_kat_no_reseed kat1321_t = {
+ 0, kat1321_entropyin, kat1321_nonce, kat1321_persstr,
+ kat1321_addin0, kat1321_addin1, kat1321_retbits
+};
+static const struct drbg_kat kat1321 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1321_t
+};
+
+static const unsigned char kat1322_entropyin[] = {
+ 0xf7, 0x8f, 0x74, 0x97, 0x95, 0x41, 0x97, 0x62, 0x88, 0x03, 0x2f, 0x13,
+ 0x07, 0x46, 0x74, 0x4c, 0x3f, 0xff, 0xe9, 0x06, 0x8c, 0xa1, 0x59, 0x2d,
+ 0x0f, 0xe6, 0x1e, 0x4c, 0x94, 0x6e, 0x41, 0xbc, 0x3f, 0xfd, 0xa0, 0x03,
+ 0x3d, 0x01, 0xad, 0xb5, 0xf5, 0x2c, 0xe0, 0x27, 0xa7, 0x9e, 0xed, 0xa3,
+};
+static const unsigned char kat1322_nonce[] = {0};
+static const unsigned char kat1322_persstr[] = {0};
+static const unsigned char kat1322_addin0[] = {0};
+static const unsigned char kat1322_addin1[] = {0};
+static const unsigned char kat1322_retbits[] = {
+ 0x13, 0x7b, 0xc8, 0x75, 0xed, 0xe8, 0x00, 0x9a, 0x77, 0x83, 0xe9, 0x7d,
+ 0x11, 0xd4, 0x94, 0x66, 0x01, 0x01, 0x75, 0xc1, 0x38, 0xb8, 0x94, 0x57,
+ 0xa9, 0xa0, 0x71, 0x11, 0x41, 0x7c, 0xa3, 0xf8, 0x49, 0x10, 0x21, 0x82,
+ 0x93, 0xef, 0xac, 0xd6, 0x92, 0x6a, 0xdf, 0xf9, 0x16, 0x78, 0xe8, 0x7e,
+ 0x6c, 0xe1, 0x29, 0x96, 0x13, 0x5e, 0xef, 0xa5, 0x8d, 0x4f, 0xa3, 0x31,
+ 0xe9, 0x1a, 0xfa, 0x8d,
+};
+static const struct drbg_kat_no_reseed kat1322_t = {
+ 1, kat1322_entropyin, kat1322_nonce, kat1322_persstr,
+ kat1322_addin0, kat1322_addin1, kat1322_retbits
+};
+static const struct drbg_kat kat1322 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1322_t
+};
+
+static const unsigned char kat1323_entropyin[] = {
+ 0xc6, 0xbe, 0x83, 0x86, 0xac, 0xe7, 0x40, 0x5a, 0xc5, 0x13, 0xf0, 0xaa,
+ 0x2b, 0xf3, 0xa9, 0xcc, 0x81, 0xa1, 0x73, 0x2a, 0xf4, 0xf0, 0x77, 0x69,
+ 0x2e, 0xeb, 0x34, 0x82, 0x3e, 0x75, 0x5c, 0x66, 0x98, 0x48, 0x32, 0x9f,
+ 0x9d, 0x98, 0x3f, 0x53, 0x6b, 0x36, 0x6b, 0xf8, 0x9f, 0x6a, 0x57, 0x91,
+};
+static const unsigned char kat1323_nonce[] = {0};
+static const unsigned char kat1323_persstr[] = {0};
+static const unsigned char kat1323_addin0[] = {0};
+static const unsigned char kat1323_addin1[] = {0};
+static const unsigned char kat1323_retbits[] = {
+ 0x46, 0xb2, 0x30, 0x78, 0x44, 0x6a, 0x7e, 0x7c, 0xc5, 0x42, 0xfb, 0x8e,
+ 0x4d, 0x04, 0x10, 0x27, 0x0f, 0xe8, 0xa1, 0xe1, 0x7b, 0x82, 0x5d, 0x86,
+ 0xe0, 0xe6, 0x09, 0x54, 0xbc, 0xe0, 0xc2, 0x4b, 0x66, 0x84, 0x51, 0x00,
+ 0x25, 0x89, 0xc3, 0x04, 0xe1, 0x52, 0xf5, 0x33, 0x50, 0xee, 0x19, 0x78,
+ 0x2d, 0x97, 0x69, 0x82, 0x03, 0xda, 0xde, 0xde, 0x78, 0xb1, 0x77, 0x95,
+ 0x87, 0x3b, 0x0e, 0xd5,
+};
+static const struct drbg_kat_no_reseed kat1323_t = {
+ 2, kat1323_entropyin, kat1323_nonce, kat1323_persstr,
+ kat1323_addin0, kat1323_addin1, kat1323_retbits
+};
+static const struct drbg_kat kat1323 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1323_t
+};
+
+static const unsigned char kat1324_entropyin[] = {
+ 0xee, 0x1f, 0x42, 0x91, 0x8d, 0x6c, 0x76, 0x9c, 0xa9, 0x3d, 0x02, 0x4d,
+ 0x36, 0x0c, 0x0f, 0x5e, 0x64, 0x87, 0x24, 0x23, 0x7b, 0xd9, 0x0d, 0xe8,
+ 0xcb, 0x5a, 0x35, 0x89, 0xc2, 0x4e, 0x31, 0x07, 0x3b, 0x39, 0xc6, 0xff,
+ 0x11, 0x69, 0x41, 0x70, 0xea, 0x7b, 0x3d, 0x68, 0x41, 0x66, 0x60, 0x28,
+};
+static const unsigned char kat1324_nonce[] = {0};
+static const unsigned char kat1324_persstr[] = {0};
+static const unsigned char kat1324_addin0[] = {0};
+static const unsigned char kat1324_addin1[] = {0};
+static const unsigned char kat1324_retbits[] = {
+ 0xc5, 0xc5, 0x64, 0x13, 0xc3, 0x5f, 0x5a, 0xe0, 0x10, 0xa6, 0x56, 0x46,
+ 0x9a, 0x9f, 0x18, 0x8d, 0xec, 0x9f, 0x1f, 0x0b, 0x25, 0xaa, 0xfe, 0x8b,
+ 0x0a, 0x77, 0xca, 0xc9, 0xf9, 0x11, 0xc4, 0x57, 0xbf, 0x7b, 0x9a, 0x75,
+ 0x17, 0x8c, 0x2d, 0x42, 0x75, 0xac, 0x8f, 0xd7, 0x40, 0xb0, 0xf8, 0x96,
+ 0x7a, 0x72, 0x16, 0x1d, 0xf7, 0x87, 0xd5, 0x33, 0x30, 0x92, 0xd7, 0x10,
+ 0x52, 0x5e, 0xc8, 0x47,
+};
+static const struct drbg_kat_no_reseed kat1324_t = {
+ 3, kat1324_entropyin, kat1324_nonce, kat1324_persstr,
+ kat1324_addin0, kat1324_addin1, kat1324_retbits
+};
+static const struct drbg_kat kat1324 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1324_t
+};
+
+static const unsigned char kat1325_entropyin[] = {
+ 0xd3, 0x33, 0x8a, 0x25, 0x25, 0x27, 0x16, 0xa9, 0x18, 0x9f, 0x17, 0x99,
+ 0x55, 0x1e, 0x6b, 0x8e, 0xfe, 0x37, 0x72, 0x0a, 0x03, 0x73, 0x49, 0x6d,
+ 0x3c, 0x9d, 0x9f, 0x57, 0xf4, 0x68, 0x56, 0x7d, 0xdf, 0x04, 0xfc, 0xe3,
+ 0xe6, 0x72, 0x50, 0x40, 0x3f, 0x9c, 0xd8, 0xea, 0xe4, 0x74, 0xf2, 0x39,
+};
+static const unsigned char kat1325_nonce[] = {0};
+static const unsigned char kat1325_persstr[] = {0};
+static const unsigned char kat1325_addin0[] = {0};
+static const unsigned char kat1325_addin1[] = {0};
+static const unsigned char kat1325_retbits[] = {
+ 0xbb, 0x24, 0x5a, 0xc6, 0x50, 0x40, 0xbe, 0x1a, 0x71, 0x46, 0xfc, 0x22,
+ 0x9a, 0x3b, 0x08, 0xab, 0xfa, 0xbc, 0x69, 0x1b, 0xf2, 0xdf, 0x37, 0x3c,
+ 0x49, 0x2a, 0x4a, 0xda, 0x1d, 0x33, 0x9e, 0x5d, 0xf8, 0x49, 0xa5, 0x21,
+ 0x04, 0x2d, 0x65, 0x75, 0x24, 0x40, 0x3f, 0x9a, 0x48, 0xf5, 0xf7, 0x53,
+ 0xc6, 0x7e, 0xe0, 0x81, 0x02, 0xb5, 0xa1, 0xb9, 0x04, 0x83, 0x7b, 0x41,
+ 0xe4, 0xdb, 0xe9, 0xb7,
+};
+static const struct drbg_kat_no_reseed kat1325_t = {
+ 4, kat1325_entropyin, kat1325_nonce, kat1325_persstr,
+ kat1325_addin0, kat1325_addin1, kat1325_retbits
+};
+static const struct drbg_kat kat1325 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1325_t
+};
+
+static const unsigned char kat1326_entropyin[] = {
+ 0x8d, 0xf9, 0xbf, 0xb8, 0x4e, 0xb8, 0x70, 0xfc, 0x33, 0x59, 0xe2, 0x8e,
+ 0xee, 0xea, 0xe7, 0xac, 0x73, 0xb0, 0x55, 0x14, 0x68, 0x82, 0xab, 0x11,
+ 0x9b, 0xae, 0x7e, 0x2b, 0x90, 0x11, 0x54, 0x16, 0x9a, 0xb0, 0x3c, 0x8f,
+ 0xa7, 0x56, 0x68, 0x9c, 0x02, 0xfb, 0xde, 0xea, 0x16, 0x55, 0xd9, 0x74,
+};
+static const unsigned char kat1326_nonce[] = {0};
+static const unsigned char kat1326_persstr[] = {0};
+static const unsigned char kat1326_addin0[] = {0};
+static const unsigned char kat1326_addin1[] = {0};
+static const unsigned char kat1326_retbits[] = {
+ 0x14, 0x26, 0xc1, 0x3d, 0xc2, 0x9a, 0xfc, 0x3c, 0xb7, 0x29, 0x9c, 0x81,
+ 0x92, 0xc6, 0x6e, 0x26, 0x3e, 0x6f, 0x36, 0x68, 0xd8, 0xdb, 0x49, 0x5d,
+ 0x4e, 0x29, 0x4a, 0xba, 0xf0, 0x49, 0x63, 0x9c, 0xbb, 0x47, 0x34, 0xaa,
+ 0xe0, 0x79, 0xa8, 0xa2, 0xf3, 0x81, 0x26, 0x3a, 0x37, 0xc9, 0xa2, 0x40,
+ 0x63, 0x62, 0xd3, 0x10, 0xf5, 0x8c, 0xca, 0x08, 0x82, 0x9a, 0x7a, 0x4b,
+ 0x07, 0xbd, 0x62, 0x1f,
+};
+static const struct drbg_kat_no_reseed kat1326_t = {
+ 5, kat1326_entropyin, kat1326_nonce, kat1326_persstr,
+ kat1326_addin0, kat1326_addin1, kat1326_retbits
+};
+static const struct drbg_kat kat1326 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1326_t
+};
+
+static const unsigned char kat1327_entropyin[] = {
+ 0xc9, 0xe9, 0x0d, 0x1f, 0x40, 0xfd, 0x6e, 0xee, 0xaa, 0xab, 0x16, 0x09,
+ 0x16, 0xee, 0xf3, 0x3e, 0xff, 0x12, 0x88, 0x12, 0x0d, 0x16, 0x5d, 0x9c,
+ 0xe8, 0x98, 0x4f, 0x68, 0x42, 0x1c, 0x98, 0x94, 0x74, 0x57, 0x2a, 0x61,
+ 0xa0, 0xa0, 0x37, 0x3d, 0x65, 0xb0, 0x06, 0xf8, 0x37, 0x0d, 0xd9, 0x26,
+};
+static const unsigned char kat1327_nonce[] = {0};
+static const unsigned char kat1327_persstr[] = {0};
+static const unsigned char kat1327_addin0[] = {0};
+static const unsigned char kat1327_addin1[] = {0};
+static const unsigned char kat1327_retbits[] = {
+ 0xb6, 0x15, 0x7b, 0xb5, 0x7c, 0x19, 0x69, 0xe2, 0x24, 0x83, 0xdf, 0x3e,
+ 0x8c, 0x2c, 0x38, 0xda, 0xad, 0xc2, 0x94, 0xe6, 0xac, 0xd2, 0xb5, 0x1a,
+ 0xe6, 0x3d, 0x6d, 0xdd, 0x58, 0x9a, 0x63, 0x17, 0x42, 0xcb, 0x39, 0x12,
+ 0xbe, 0x32, 0x20, 0x19, 0x51, 0xe1, 0xe3, 0x72, 0x3d, 0x3c, 0x5a, 0x59,
+ 0x1e, 0x79, 0x6b, 0x3a, 0xb7, 0xd4, 0xec, 0x8e, 0x37, 0x60, 0x5b, 0x04,
+ 0x38, 0xe1, 0x5a, 0x45,
+};
+static const struct drbg_kat_no_reseed kat1327_t = {
+ 6, kat1327_entropyin, kat1327_nonce, kat1327_persstr,
+ kat1327_addin0, kat1327_addin1, kat1327_retbits
+};
+static const struct drbg_kat kat1327 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1327_t
+};
+
+static const unsigned char kat1328_entropyin[] = {
+ 0x25, 0x14, 0x49, 0x8a, 0xbf, 0xac, 0xda, 0x89, 0x42, 0x5e, 0xbf, 0xb4,
+ 0x34, 0x3c, 0x5c, 0xa8, 0xc3, 0x4c, 0x18, 0x43, 0x30, 0x05, 0xb6, 0xed,
+ 0x60, 0x38, 0xa3, 0x14, 0x66, 0x52, 0x51, 0x13, 0xfd, 0x97, 0x75, 0x0f,
+ 0x7e, 0xb8, 0xc8, 0xba, 0x22, 0x4d, 0x77, 0xf8, 0xb2, 0x0c, 0xf2, 0xd9,
+};
+static const unsigned char kat1328_nonce[] = {0};
+static const unsigned char kat1328_persstr[] = {0};
+static const unsigned char kat1328_addin0[] = {0};
+static const unsigned char kat1328_addin1[] = {0};
+static const unsigned char kat1328_retbits[] = {
+ 0xf0, 0x36, 0x25, 0x0e, 0x0a, 0x60, 0x1d, 0x91, 0xc5, 0xb8, 0x02, 0x9f,
+ 0xc6, 0x98, 0x29, 0x47, 0x9b, 0x08, 0x6d, 0x61, 0x6e, 0x8d, 0xde, 0x2b,
+ 0x62, 0xcb, 0x98, 0xf7, 0x07, 0x85, 0x10, 0x1b, 0x00, 0x1a, 0xb9, 0xe5,
+ 0x83, 0x25, 0x08, 0xf6, 0x57, 0xd9, 0xf5, 0x2e, 0x9f, 0x9b, 0x3f, 0xa5,
+ 0xfb, 0x3c, 0x02, 0xcc, 0x09, 0xf9, 0x7a, 0x1c, 0xd4, 0x69, 0x84, 0x04,
+ 0xa7, 0xfd, 0x96, 0x7d,
+};
+static const struct drbg_kat_no_reseed kat1328_t = {
+ 7, kat1328_entropyin, kat1328_nonce, kat1328_persstr,
+ kat1328_addin0, kat1328_addin1, kat1328_retbits
+};
+static const struct drbg_kat kat1328 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1328_t
+};
+
+static const unsigned char kat1329_entropyin[] = {
+ 0x8b, 0xd4, 0x2f, 0x21, 0xb2, 0xb8, 0x1f, 0x42, 0x81, 0x3d, 0xd2, 0x91,
+ 0xe2, 0xaa, 0xbb, 0x37, 0x2d, 0x25, 0x68, 0x7d, 0x2f, 0xa0, 0xf3, 0x0b,
+ 0xdf, 0xa9, 0x63, 0x2d, 0xb9, 0x0c, 0x81, 0x2a, 0xe5, 0xa2, 0x5d, 0x8f,
+ 0x8a, 0xd3, 0xe0, 0x33, 0xfa, 0x5a, 0x0c, 0x98, 0x1d, 0xf2, 0xc5, 0x86,
+};
+static const unsigned char kat1329_nonce[] = {0};
+static const unsigned char kat1329_persstr[] = {0};
+static const unsigned char kat1329_addin0[] = {0};
+static const unsigned char kat1329_addin1[] = {0};
+static const unsigned char kat1329_retbits[] = {
+ 0x9a, 0x58, 0x9e, 0x69, 0x62, 0x2c, 0x1d, 0x66, 0x80, 0xe3, 0xcf, 0x38,
+ 0xe8, 0x64, 0x00, 0x97, 0x9c, 0xd8, 0xf6, 0x83, 0x47, 0xc6, 0xc4, 0xb6,
+ 0xb9, 0xd0, 0x4d, 0x45, 0x48, 0xda, 0x23, 0xab, 0xec, 0x08, 0xb6, 0xfe,
+ 0xaa, 0x6a, 0x7e, 0x53, 0x6b, 0x2c, 0x8b, 0xed, 0x28, 0xc6, 0x13, 0x6f,
+ 0xc5, 0xb3, 0x10, 0x01, 0x7d, 0x81, 0x8a, 0xff, 0xc4, 0x07, 0x71, 0xd4,
+ 0xb1, 0x5e, 0x27, 0x89,
+};
+static const struct drbg_kat_no_reseed kat1329_t = {
+ 8, kat1329_entropyin, kat1329_nonce, kat1329_persstr,
+ kat1329_addin0, kat1329_addin1, kat1329_retbits
+};
+static const struct drbg_kat kat1329 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1329_t
+};
+
+static const unsigned char kat1330_entropyin[] = {
+ 0x4d, 0x31, 0x97, 0xc9, 0x96, 0x12, 0xc5, 0xcb, 0x62, 0x16, 0x01, 0x68,
+ 0x86, 0x92, 0x16, 0x4c, 0x23, 0x95, 0x69, 0xbd, 0xf3, 0x9e, 0xe5, 0xe7,
+ 0x7e, 0x08, 0xa0, 0x59, 0xe8, 0x71, 0xd9, 0x71, 0x0b, 0x72, 0x59, 0x27,
+ 0xa3, 0xa2, 0xc9, 0xa2, 0xa0, 0x5b, 0xc8, 0x4d, 0xf3, 0x81, 0x85, 0xda,
+};
+static const unsigned char kat1330_nonce[] = {0};
+static const unsigned char kat1330_persstr[] = {0};
+static const unsigned char kat1330_addin0[] = {0};
+static const unsigned char kat1330_addin1[] = {0};
+static const unsigned char kat1330_retbits[] = {
+ 0xe3, 0x90, 0x5d, 0x94, 0x3e, 0x16, 0x0a, 0x76, 0xab, 0xaa, 0xef, 0x2d,
+ 0x23, 0x49, 0x15, 0xc0, 0xc7, 0xad, 0x78, 0xf8, 0x75, 0x9f, 0x4c, 0x92,
+ 0x05, 0xa8, 0xb1, 0x23, 0x0a, 0x0c, 0xc5, 0xf9, 0x72, 0x45, 0x6c, 0xa0,
+ 0xd8, 0xf4, 0x7e, 0x06, 0x63, 0xa6, 0xc3, 0x18, 0xb2, 0x2c, 0xac, 0xe2,
+ 0x53, 0xce, 0xbb, 0x5f, 0x0f, 0x2a, 0x58, 0xed, 0x6a, 0xb4, 0xed, 0x6d,
+ 0x9c, 0xac, 0x25, 0xa6,
+};
+static const struct drbg_kat_no_reseed kat1330_t = {
+ 9, kat1330_entropyin, kat1330_nonce, kat1330_persstr,
+ kat1330_addin0, kat1330_addin1, kat1330_retbits
+};
+static const struct drbg_kat kat1330 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1330_t
+};
+
+static const unsigned char kat1331_entropyin[] = {
+ 0xd3, 0x46, 0x08, 0x24, 0x7d, 0x7d, 0x03, 0x61, 0xe6, 0xba, 0x5f, 0x68,
+ 0xbe, 0x39, 0xca, 0x77, 0xda, 0x43, 0xd5, 0x5e, 0x35, 0xad, 0x5a, 0x34,
+ 0x88, 0xfa, 0xca, 0x63, 0x45, 0xa0, 0xbe, 0x8b, 0x0c, 0x19, 0xe9, 0x07,
+ 0xa4, 0x28, 0xb3, 0x16, 0x4f, 0x45, 0xc8, 0xdd, 0xf9, 0x97, 0x70, 0x21,
+};
+static const unsigned char kat1331_nonce[] = {0};
+static const unsigned char kat1331_persstr[] = {0};
+static const unsigned char kat1331_addin0[] = {0};
+static const unsigned char kat1331_addin1[] = {0};
+static const unsigned char kat1331_retbits[] = {
+ 0x44, 0xdc, 0x77, 0x05, 0x4f, 0xbe, 0x30, 0xe8, 0x89, 0x63, 0x0f, 0x48,
+ 0xd7, 0xb1, 0x0e, 0x71, 0x15, 0x57, 0xc7, 0x95, 0x15, 0x71, 0xcf, 0x1f,
+ 0xeb, 0x7e, 0x20, 0x23, 0x8a, 0xca, 0xd4, 0x59, 0x3d, 0xca, 0x7f, 0x7e,
+ 0xe7, 0x1a, 0x2b, 0xc1, 0xe0, 0x36, 0x2b, 0x96, 0x17, 0x54, 0xba, 0x68,
+ 0xa7, 0xca, 0x3b, 0x83, 0xad, 0x36, 0xdc, 0xe2, 0x0b, 0x76, 0x3e, 0x70,
+ 0x92, 0x8a, 0x38, 0xd8,
+};
+static const struct drbg_kat_no_reseed kat1331_t = {
+ 10, kat1331_entropyin, kat1331_nonce, kat1331_persstr,
+ kat1331_addin0, kat1331_addin1, kat1331_retbits
+};
+static const struct drbg_kat kat1331 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1331_t
+};
+
+static const unsigned char kat1332_entropyin[] = {
+ 0xb5, 0x98, 0xf2, 0x82, 0xad, 0xec, 0xf9, 0xd0, 0x60, 0xae, 0xd6, 0xcc,
+ 0x69, 0x7a, 0xb8, 0xd5, 0xee, 0xdf, 0x40, 0x04, 0xa7, 0x74, 0xd4, 0xb6,
+ 0xd4, 0x36, 0x5c, 0x44, 0x2e, 0x63, 0xff, 0x1c, 0x4a, 0xc7, 0xee, 0x99,
+ 0xf4, 0xb0, 0x5f, 0x34, 0x9b, 0x77, 0x0b, 0x77, 0xa2, 0x1a, 0xf1, 0xb3,
+};
+static const unsigned char kat1332_nonce[] = {0};
+static const unsigned char kat1332_persstr[] = {0};
+static const unsigned char kat1332_addin0[] = {0};
+static const unsigned char kat1332_addin1[] = {0};
+static const unsigned char kat1332_retbits[] = {
+ 0x28, 0x3c, 0x19, 0x05, 0xa7, 0x6a, 0x7f, 0x3c, 0x66, 0x6e, 0x68, 0x03,
+ 0x95, 0x0c, 0xad, 0xaf, 0x18, 0xd5, 0xfb, 0x58, 0x90, 0xe7, 0x7c, 0x48,
+ 0xcb, 0xc6, 0xea, 0x13, 0x5f, 0xe7, 0xc5, 0x63, 0xfe, 0x26, 0x84, 0x74,
+ 0x7b, 0x55, 0x04, 0x99, 0x21, 0xa8, 0x9d, 0x34, 0xbb, 0x84, 0x57, 0xa4,
+ 0x6b, 0x78, 0xf0, 0xe8, 0xe1, 0x02, 0x21, 0x1f, 0x4c, 0x64, 0xf4, 0xc4,
+ 0x50, 0x07, 0xe0, 0x6b,
+};
+static const struct drbg_kat_no_reseed kat1332_t = {
+ 11, kat1332_entropyin, kat1332_nonce, kat1332_persstr,
+ kat1332_addin0, kat1332_addin1, kat1332_retbits
+};
+static const struct drbg_kat kat1332 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1332_t
+};
+
+static const unsigned char kat1333_entropyin[] = {
+ 0xe2, 0xb9, 0xff, 0xc6, 0xb1, 0x3c, 0x61, 0x35, 0xd7, 0x60, 0x87, 0xbf,
+ 0x6e, 0xa2, 0x84, 0x60, 0xfb, 0x9f, 0x18, 0xc4, 0xe7, 0x12, 0x78, 0x50,
+ 0x39, 0x44, 0x39, 0x70, 0x92, 0x4a, 0xe9, 0x23, 0xf1, 0x8e, 0xe4, 0x5b,
+ 0x87, 0x90, 0x9d, 0xca, 0xc7, 0x03, 0xc6, 0x2d, 0x58, 0x75, 0xba, 0xbb,
+};
+static const unsigned char kat1333_nonce[] = {0};
+static const unsigned char kat1333_persstr[] = {0};
+static const unsigned char kat1333_addin0[] = {0};
+static const unsigned char kat1333_addin1[] = {0};
+static const unsigned char kat1333_retbits[] = {
+ 0x61, 0x91, 0x66, 0xb4, 0x07, 0x11, 0x98, 0xc4, 0x78, 0x42, 0x7a, 0x1a,
+ 0xc0, 0xc2, 0x1a, 0x09, 0x93, 0xed, 0x36, 0x5b, 0x78, 0x01, 0xc0, 0x2a,
+ 0x06, 0xb8, 0x04, 0xf4, 0xb0, 0xbe, 0x55, 0x3c, 0x0d, 0x04, 0x87, 0x21,
+ 0x8e, 0x5e, 0x20, 0x61, 0x2b, 0xb4, 0x45, 0x3a, 0xb5, 0x9c, 0x8e, 0x4b,
+ 0x8d, 0xbf, 0xc3, 0x28, 0x2e, 0xfb, 0x34, 0xaa, 0x94, 0x3b, 0xa1, 0x7b,
+ 0xa6, 0x5d, 0xfa, 0x28,
+};
+static const struct drbg_kat_no_reseed kat1333_t = {
+ 12, kat1333_entropyin, kat1333_nonce, kat1333_persstr,
+ kat1333_addin0, kat1333_addin1, kat1333_retbits
+};
+static const struct drbg_kat kat1333 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1333_t
+};
+
+static const unsigned char kat1334_entropyin[] = {
+ 0x38, 0xb4, 0x9f, 0xe3, 0x9f, 0x04, 0xbd, 0x4e, 0xc3, 0x12, 0x08, 0xe9,
+ 0x51, 0x08, 0x16, 0x63, 0xc0, 0x6a, 0x93, 0xf0, 0x26, 0xe2, 0xf0, 0x91,
+ 0x5b, 0x36, 0xe4, 0x4c, 0x15, 0x96, 0x9f, 0x6a, 0x9c, 0xab, 0xca, 0x17,
+ 0x74, 0xa5, 0x86, 0xaa, 0x00, 0x64, 0xa1, 0x61, 0xfa, 0xcf, 0x72, 0x3f,
+};
+static const unsigned char kat1334_nonce[] = {0};
+static const unsigned char kat1334_persstr[] = {0};
+static const unsigned char kat1334_addin0[] = {0};
+static const unsigned char kat1334_addin1[] = {0};
+static const unsigned char kat1334_retbits[] = {
+ 0x47, 0xb6, 0xdc, 0x1f, 0x9f, 0xc7, 0xba, 0x68, 0x97, 0x3e, 0x15, 0xb4,
+ 0x89, 0xe4, 0x6b, 0x94, 0xb4, 0xba, 0x58, 0xe2, 0x3d, 0x66, 0x91, 0xa6,
+ 0xe8, 0x31, 0x1d, 0xd8, 0x2a, 0x61, 0x87, 0x25, 0x2e, 0x10, 0x10, 0x28,
+ 0x65, 0x95, 0x5e, 0xa7, 0x8c, 0x6b, 0x79, 0x53, 0xc5, 0xd0, 0xa7, 0x91,
+ 0x9c, 0xed, 0xd2, 0x01, 0x1f, 0x85, 0xea, 0xcd, 0x29, 0x89, 0x34, 0x28,
+ 0x90, 0x83, 0xdd, 0x58,
+};
+static const struct drbg_kat_no_reseed kat1334_t = {
+ 13, kat1334_entropyin, kat1334_nonce, kat1334_persstr,
+ kat1334_addin0, kat1334_addin1, kat1334_retbits
+};
+static const struct drbg_kat kat1334 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1334_t
+};
+
+static const unsigned char kat1335_entropyin[] = {
+ 0x80, 0xff, 0xec, 0xca, 0xdd, 0xab, 0x35, 0x22, 0x1c, 0xba, 0x00, 0xff,
+ 0x37, 0x47, 0x28, 0xda, 0xb8, 0xf9, 0x1f, 0x3e, 0x54, 0x98, 0x62, 0x27,
+ 0x04, 0xc0, 0x50, 0xe3, 0xe1, 0x3a, 0x2b, 0x0b, 0xdd, 0x2f, 0x91, 0x36,
+ 0x72, 0xe8, 0x96, 0xa9, 0x79, 0x97, 0x4c, 0x52, 0x06, 0x7e, 0x2a, 0x05,
+};
+static const unsigned char kat1335_nonce[] = {0};
+static const unsigned char kat1335_persstr[] = {0};
+static const unsigned char kat1335_addin0[] = {0};
+static const unsigned char kat1335_addin1[] = {0};
+static const unsigned char kat1335_retbits[] = {
+ 0x02, 0x92, 0xbd, 0xaf, 0x72, 0x5f, 0x46, 0x93, 0x07, 0xe7, 0x6e, 0x3e,
+ 0xf5, 0xbe, 0xd0, 0x34, 0x70, 0xf6, 0xbd, 0xfc, 0x22, 0xe4, 0xd7, 0xf0,
+ 0x66, 0x1b, 0xd1, 0xb8, 0x76, 0x96, 0xc9, 0xda, 0x20, 0x1b, 0xbb, 0xdc,
+ 0xa6, 0xa2, 0x23, 0x44, 0xea, 0x88, 0xff, 0xc7, 0x32, 0x53, 0x70, 0x86,
+ 0x3b, 0x4c, 0xfb, 0x10, 0x57, 0x40, 0x16, 0x5e, 0xae, 0xd9, 0xc6, 0xe7,
+ 0x3b, 0x06, 0xa4, 0xe8,
+};
+static const struct drbg_kat_no_reseed kat1335_t = {
+ 14, kat1335_entropyin, kat1335_nonce, kat1335_persstr,
+ kat1335_addin0, kat1335_addin1, kat1335_retbits
+};
+static const struct drbg_kat kat1335 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1335_t
+};
+
+static const unsigned char kat1336_entropyin[] = {
+ 0x5e, 0xaf, 0x1f, 0xd9, 0xf7, 0xd7, 0x3f, 0x8c, 0xa3, 0xa3, 0x74, 0x49,
+ 0xab, 0x60, 0x5d, 0x88, 0x76, 0x3f, 0x9d, 0x8f, 0xce, 0x14, 0x25, 0xce,
+ 0xc8, 0xe7, 0x26, 0x7b, 0x89, 0x05, 0x1f, 0xf9, 0xeb, 0xdd, 0xed, 0x7c,
+ 0x24, 0x41, 0xfa, 0x64, 0x86, 0x5a, 0xd9, 0x8e, 0x57, 0xd6, 0xdd, 0x8a,
+};
+static const unsigned char kat1336_nonce[] = {0};
+static const unsigned char kat1336_persstr[] = {0};
+static const unsigned char kat1336_addin0[] = {
+ 0x1b, 0x4b, 0x26, 0x2e, 0x31, 0x64, 0x46, 0xc8, 0x40, 0x21, 0x1d, 0xc3,
+ 0xf7, 0xfd, 0x10, 0x71, 0xcd, 0xe1, 0x79, 0xee, 0x9d, 0x27, 0x83, 0x70,
+ 0x6c, 0x07, 0x91, 0x35, 0x9c, 0x7b, 0xf6, 0x8b, 0x07, 0xba, 0x88, 0x0e,
+ 0xdc, 0xf4, 0xb7, 0x61, 0x23, 0x9e, 0x6b, 0xcf, 0x69, 0xbf, 0x8c, 0xfc,
+};
+static const unsigned char kat1336_addin1[] = {
+ 0x73, 0x9f, 0xd8, 0x58, 0x04, 0xe5, 0xb8, 0x48, 0x26, 0x7d, 0xa4, 0xdb,
+ 0xc8, 0xf0, 0x26, 0x6d, 0xe1, 0x19, 0x56, 0x3e, 0xd6, 0x8c, 0xad, 0x57,
+ 0x77, 0xb4, 0xf8, 0xd0, 0x7e, 0x58, 0xbe, 0xdb, 0xcc, 0xa5, 0xf2, 0xc9,
+ 0xaf, 0x33, 0x93, 0x28, 0xe5, 0xcb, 0x23, 0x8a, 0x21, 0xb1, 0x63, 0x60,
+};
+static const unsigned char kat1336_retbits[] = {
+ 0x8e, 0x13, 0x36, 0xb3, 0x02, 0xf1, 0x2b, 0x21, 0x01, 0xd1, 0x81, 0x59,
+ 0x07, 0x2d, 0xd1, 0x50, 0xfb, 0xfc, 0x8d, 0x79, 0x4f, 0xfe, 0x5d, 0x7e,
+ 0x54, 0xdd, 0x9f, 0xb8, 0x0c, 0x09, 0xf5, 0x05, 0x01, 0xc6, 0xd1, 0x79,
+ 0xad, 0xff, 0x45, 0x6c, 0x15, 0x15, 0x6d, 0x16, 0xdc, 0x38, 0x61, 0x07,
+ 0xf2, 0x46, 0xd1, 0x5b, 0xfa, 0x2a, 0x99, 0xc8, 0x72, 0xf9, 0x84, 0x47,
+ 0x50, 0x55, 0xa6, 0x31,
+};
+static const struct drbg_kat_no_reseed kat1336_t = {
+ 0, kat1336_entropyin, kat1336_nonce, kat1336_persstr,
+ kat1336_addin0, kat1336_addin1, kat1336_retbits
+};
+static const struct drbg_kat kat1336 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1336_t
+};
+
+static const unsigned char kat1337_entropyin[] = {
+ 0x55, 0x62, 0x60, 0xf4, 0xb1, 0xb7, 0xea, 0x2a, 0x63, 0x7a, 0x3c, 0x3d,
+ 0xd5, 0xf3, 0x84, 0xde, 0xb0, 0xe8, 0x3d, 0xd2, 0xaf, 0x5c, 0x6b, 0xc6,
+ 0x0f, 0xfa, 0xc9, 0xdc, 0x4b, 0x43, 0xb5, 0x9c, 0xac, 0xfe, 0x17, 0x3d,
+ 0x2b, 0x04, 0x1c, 0x8f, 0x31, 0x5c, 0x07, 0x5e, 0x0e, 0x8f, 0xdd, 0xb8,
+};
+static const unsigned char kat1337_nonce[] = {0};
+static const unsigned char kat1337_persstr[] = {0};
+static const unsigned char kat1337_addin0[] = {
+ 0x32, 0xd2, 0xc4, 0xca, 0xfd, 0x82, 0x71, 0xaa, 0x93, 0x8e, 0x9b, 0x64,
+ 0x7e, 0x5d, 0x9b, 0x91, 0x6d, 0x9b, 0x3e, 0xf7, 0x89, 0xe2, 0x43, 0xfa,
+ 0x8b, 0x8c, 0x62, 0x3c, 0xa8, 0xd6, 0x4b, 0xcd, 0x7c, 0x7b, 0xc4, 0x2a,
+ 0xa8, 0x16, 0x9a, 0x2e, 0x6d, 0x53, 0xfb, 0x39, 0x76, 0x3f, 0x59, 0x69,
+};
+static const unsigned char kat1337_addin1[] = {
+ 0x54, 0x7a, 0x3a, 0x11, 0x41, 0x38, 0x0f, 0xe4, 0x41, 0xfe, 0x01, 0xec,
+ 0xeb, 0xa9, 0x71, 0x93, 0xab, 0x56, 0x6b, 0x0c, 0x86, 0x27, 0xbe, 0xa2,
+ 0x6c, 0xf9, 0x56, 0xac, 0x8c, 0xbd, 0x78, 0x9a, 0x72, 0xd1, 0x5b, 0xb5,
+ 0x26, 0xce, 0xec, 0x83, 0x53, 0x2d, 0xf7, 0xa2, 0x76, 0xfb, 0x57, 0xc0,
+};
+static const unsigned char kat1337_retbits[] = {
+ 0x1b, 0xe1, 0xa0, 0x0c, 0x36, 0xdf, 0xc2, 0x3c, 0xd8, 0xfa, 0x4b, 0xd0,
+ 0x60, 0xba, 0xfa, 0x30, 0x6a, 0x03, 0x32, 0xa3, 0xbe, 0xb0, 0x33, 0x1a,
+ 0xf0, 0x81, 0x9d, 0x8f, 0x70, 0xd7, 0x71, 0xcc, 0xe6, 0x86, 0x7f, 0xf6,
+ 0xd2, 0xfb, 0x45, 0xfd, 0x99, 0xd9, 0xe7, 0x52, 0x98, 0xba, 0x04, 0x37,
+ 0xd6, 0xe9, 0x58, 0x43, 0x68, 0x64, 0xc1, 0x8e, 0xb6, 0x88, 0x21, 0xac,
+ 0xfe, 0x07, 0xb2, 0x08,
+};
+static const struct drbg_kat_no_reseed kat1337_t = {
+ 1, kat1337_entropyin, kat1337_nonce, kat1337_persstr,
+ kat1337_addin0, kat1337_addin1, kat1337_retbits
+};
+static const struct drbg_kat kat1337 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1337_t
+};
+
+static const unsigned char kat1338_entropyin[] = {
+ 0x14, 0x7a, 0x27, 0x01, 0x96, 0x1b, 0xac, 0x03, 0x73, 0x04, 0xea, 0xc1,
+ 0xdf, 0x10, 0xb1, 0x57, 0x1a, 0x60, 0x0d, 0xc9, 0xa2, 0x26, 0x6a, 0x7c,
+ 0xaf, 0xc1, 0x80, 0x30, 0xfc, 0xb8, 0x3a, 0xd5, 0x60, 0x32, 0x5e, 0x0a,
+ 0x6f, 0x4b, 0x76, 0x72, 0xb4, 0x39, 0xd6, 0xca, 0x02, 0x84, 0x85, 0x1a,
+};
+static const unsigned char kat1338_nonce[] = {0};
+static const unsigned char kat1338_persstr[] = {0};
+static const unsigned char kat1338_addin0[] = {
+ 0x2a, 0xe8, 0x22, 0x0a, 0xe2, 0x30, 0xfe, 0x6b, 0x00, 0xc5, 0x1d, 0xda,
+ 0xcd, 0x3e, 0x1f, 0x08, 0xdd, 0x1f, 0xac, 0xab, 0x94, 0x85, 0x25, 0x82,
+ 0x5f, 0xda, 0x86, 0xd8, 0xbb, 0x79, 0x3a, 0x5c, 0x85, 0x73, 0x26, 0x97,
+ 0xd8, 0x32, 0xc0, 0x81, 0x34, 0xc2, 0x0c, 0x12, 0x61, 0xda, 0x6d, 0x86,
+};
+static const unsigned char kat1338_addin1[] = {
+ 0x10, 0x9f, 0xbe, 0x0c, 0xda, 0x90, 0xbf, 0x61, 0x09, 0x40, 0x1d, 0xaf,
+ 0x3e, 0x3d, 0xb8, 0xdf, 0xbb, 0xfe, 0x48, 0x89, 0xe6, 0x6c, 0x7f, 0x4a,
+ 0x44, 0x7c, 0xfe, 0xa5, 0x9a, 0x21, 0x68, 0x6e, 0xae, 0x41, 0x8b, 0x75,
+ 0x0e, 0xad, 0x8b, 0xbe, 0x67, 0x29, 0xdd, 0xf5, 0xff, 0xf6, 0xb0, 0x76,
+};
+static const unsigned char kat1338_retbits[] = {
+ 0x44, 0x8e, 0x0c, 0xa2, 0x89, 0x76, 0xd2, 0x12, 0x1f, 0xc7, 0x0d, 0x76,
+ 0x54, 0xfe, 0x57, 0x41, 0xe5, 0x78, 0x1d, 0xb4, 0x15, 0x17, 0x17, 0x62,
+ 0x4f, 0xbc, 0xe5, 0xff, 0x29, 0x77, 0xd9, 0x44, 0x04, 0x41, 0xf4, 0x8f,
+ 0x07, 0xf3, 0x19, 0x8f, 0x67, 0x50, 0x85, 0x69, 0xf7, 0x1c, 0x90, 0xd5,
+ 0x6d, 0x8e, 0x73, 0xe6, 0x1b, 0x81, 0x80, 0xe6, 0x06, 0x16, 0x4e, 0xe8,
+ 0x8b, 0x40, 0x20, 0xbf,
+};
+static const struct drbg_kat_no_reseed kat1338_t = {
+ 2, kat1338_entropyin, kat1338_nonce, kat1338_persstr,
+ kat1338_addin0, kat1338_addin1, kat1338_retbits
+};
+static const struct drbg_kat kat1338 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1338_t
+};
+
+static const unsigned char kat1339_entropyin[] = {
+ 0xec, 0x41, 0x5f, 0xf0, 0x4d, 0x0d, 0x5f, 0x11, 0x0b, 0xd1, 0x94, 0x79,
+ 0x45, 0x33, 0x4e, 0x37, 0xb3, 0x3f, 0xdd, 0x7e, 0x01, 0xb8, 0xa4, 0x0a,
+ 0xe4, 0xfc, 0x57, 0x3a, 0xc2, 0xa4, 0xc9, 0xae, 0x98, 0x31, 0x20, 0x4b,
+ 0x6e, 0x97, 0xd6, 0x06, 0x65, 0x42, 0xc3, 0x9c, 0x92, 0x26, 0x55, 0x67,
+};
+static const unsigned char kat1339_nonce[] = {0};
+static const unsigned char kat1339_persstr[] = {0};
+static const unsigned char kat1339_addin0[] = {
+ 0x4b, 0x45, 0x48, 0x17, 0xe5, 0xfb, 0x50, 0xd0, 0x57, 0xd8, 0xd8, 0x18,
+ 0x84, 0x61, 0x68, 0xe3, 0xaf, 0x52, 0x8d, 0x5c, 0x21, 0x30, 0xed, 0x65,
+ 0xcb, 0x5d, 0x18, 0x77, 0x3f, 0x69, 0xed, 0xc9, 0x64, 0x9f, 0xe1, 0x6b,
+ 0x1c, 0x47, 0x0d, 0x5b, 0xc8, 0x56, 0x47, 0xb2, 0xb9, 0x2d, 0xfc, 0x03,
+};
+static const unsigned char kat1339_addin1[] = {
+ 0x61, 0xd9, 0x13, 0x23, 0x28, 0x5a, 0x6a, 0x7e, 0x91, 0x42, 0xb1, 0xde,
+ 0x1c, 0xec, 0x0a, 0x5d, 0x4f, 0x6a, 0x01, 0x5f, 0x2c, 0xe2, 0x8c, 0x60,
+ 0x5c, 0x5d, 0x07, 0x8c, 0x80, 0xfe, 0x38, 0x58, 0x43, 0xe0, 0x49, 0x98,
+ 0x46, 0x40, 0x42, 0xda, 0xbb, 0x52, 0x68, 0x64, 0xa7, 0xb6, 0xaf, 0x24,
+};
+static const unsigned char kat1339_retbits[] = {
+ 0x4e, 0xc6, 0xae, 0xcb, 0x7c, 0x52, 0x07, 0xe6, 0xb6, 0x82, 0xa2, 0xd6,
+ 0x32, 0xcb, 0x1e, 0x95, 0x39, 0x60, 0x21, 0xe4, 0xb5, 0x94, 0x71, 0x1c,
+ 0xed, 0x37, 0xe8, 0x45, 0x67, 0xc1, 0x10, 0x00, 0x6d, 0x51, 0x51, 0x59,
+ 0x17, 0xb6, 0x95, 0x4c, 0x54, 0x25, 0xba, 0x70, 0xe3, 0x4a, 0x27, 0x57,
+ 0xf3, 0x5f, 0x58, 0xee, 0x44, 0xfa, 0xe2, 0x16, 0x4b, 0x6b, 0x18, 0x53,
+ 0x35, 0x30, 0x0d, 0x7c,
+};
+static const struct drbg_kat_no_reseed kat1339_t = {
+ 3, kat1339_entropyin, kat1339_nonce, kat1339_persstr,
+ kat1339_addin0, kat1339_addin1, kat1339_retbits
+};
+static const struct drbg_kat kat1339 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1339_t
+};
+
+static const unsigned char kat1340_entropyin[] = {
+ 0xb4, 0x8c, 0x76, 0xbe, 0x8a, 0x6d, 0xc1, 0x4d, 0x69, 0x9f, 0x5d, 0x6b,
+ 0x3b, 0xf8, 0x33, 0x0b, 0x87, 0x82, 0x7d, 0x82, 0x83, 0x67, 0xa1, 0x2c,
+ 0x82, 0xc8, 0x73, 0xc3, 0x0e, 0x3a, 0x0f, 0x94, 0x1d, 0xd6, 0xf0, 0xac,
+ 0x1a, 0x69, 0x6b, 0x74, 0x25, 0x6d, 0x0b, 0x5f, 0x28, 0x54, 0x4b, 0xa0,
+};
+static const unsigned char kat1340_nonce[] = {0};
+static const unsigned char kat1340_persstr[] = {0};
+static const unsigned char kat1340_addin0[] = {
+ 0x98, 0x53, 0x43, 0x38, 0x2e, 0x88, 0x44, 0xb1, 0xeb, 0xac, 0xd5, 0x72,
+ 0x41, 0x37, 0xa4, 0x14, 0xf2, 0xf8, 0x55, 0xd0, 0x8e, 0x6a, 0x92, 0xa6,
+ 0xb7, 0xb3, 0xa8, 0xf1, 0x1a, 0xe5, 0xc3, 0x0a, 0x62, 0x70, 0x06, 0x44,
+ 0x19, 0xa7, 0xf4, 0x41, 0xff, 0xfe, 0x83, 0x1e, 0x51, 0x41, 0xa0, 0xf4,
+};
+static const unsigned char kat1340_addin1[] = {
+ 0x0c, 0x50, 0x83, 0xeb, 0x44, 0xd4, 0xb6, 0x67, 0xe6, 0xe0, 0xdb, 0x37,
+ 0xaf, 0x5e, 0xb5, 0xf9, 0x36, 0x44, 0xe1, 0xab, 0x26, 0x97, 0x80, 0xf1,
+ 0xfb, 0x53, 0x5f, 0xee, 0xeb, 0x0e, 0x19, 0xf1, 0xb5, 0x0f, 0x4c, 0x76,
+ 0x3c, 0x1e, 0x9d, 0x16, 0xd8, 0xa8, 0xda, 0x08, 0xc9, 0x29, 0x45, 0x6d,
+};
+static const unsigned char kat1340_retbits[] = {
+ 0x3e, 0xfd, 0x43, 0x75, 0xb2, 0x29, 0x4c, 0x35, 0x6d, 0x5b, 0xc3, 0x68,
+ 0x46, 0xc4, 0xc4, 0x4d, 0xd2, 0x1c, 0x01, 0x2b, 0x50, 0xd8, 0xf3, 0x34,
+ 0x66, 0x4d, 0x1c, 0x4c, 0x3f, 0x44, 0x22, 0x09, 0x74, 0x1d, 0xba, 0x07,
+ 0x90, 0xb4, 0x90, 0x40, 0xb3, 0x56, 0x03, 0xd6, 0x1e, 0x29, 0xca, 0xe4,
+ 0xd3, 0xe4, 0x7a, 0xe0, 0x7f, 0x72, 0x63, 0x83, 0xac, 0xcd, 0xcb, 0xd3,
+ 0x5f, 0xce, 0xe8, 0xf5,
+};
+static const struct drbg_kat_no_reseed kat1340_t = {
+ 4, kat1340_entropyin, kat1340_nonce, kat1340_persstr,
+ kat1340_addin0, kat1340_addin1, kat1340_retbits
+};
+static const struct drbg_kat kat1340 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1340_t
+};
+
+static const unsigned char kat1341_entropyin[] = {
+ 0xa1, 0x20, 0xc2, 0xbb, 0x5c, 0x4e, 0xd3, 0x3a, 0x5e, 0xaf, 0x42, 0x84,
+ 0x79, 0xf5, 0x58, 0x6f, 0xc7, 0x4e, 0xd4, 0x7d, 0x7d, 0xb6, 0xae, 0x29,
+ 0x82, 0xb8, 0xa3, 0x71, 0x08, 0x99, 0xb4, 0xac, 0x23, 0x22, 0x4f, 0xaa,
+ 0x5b, 0x21, 0x5d, 0x9a, 0xd5, 0x8a, 0x85, 0x84, 0x75, 0xe8, 0xf7, 0xd8,
+};
+static const unsigned char kat1341_nonce[] = {0};
+static const unsigned char kat1341_persstr[] = {0};
+static const unsigned char kat1341_addin0[] = {
+ 0xa3, 0x4e, 0x7d, 0x52, 0x34, 0xad, 0x35, 0x33, 0xf1, 0xd4, 0x26, 0x93,
+ 0x35, 0xa4, 0xde, 0x5d, 0x0c, 0x17, 0x23, 0x2e, 0xcb, 0xf5, 0x54, 0x6f,
+ 0xab, 0x23, 0xb2, 0x8c, 0xa2, 0x18, 0x9b, 0x4d, 0x06, 0xf6, 0x98, 0x0c,
+ 0xcb, 0xbc, 0x2c, 0xb5, 0x90, 0x66, 0x29, 0xd8, 0xb1, 0xb0, 0x80, 0x35,
+};
+static const unsigned char kat1341_addin1[] = {
+ 0x25, 0xbd, 0x3b, 0xea, 0x3e, 0x5a, 0x01, 0x19, 0xe3, 0xeb, 0x60, 0xd5,
+ 0xa6, 0x20, 0x19, 0x5e, 0xf8, 0x29, 0x4b, 0x83, 0xe3, 0x1f, 0x03, 0xce,
+ 0xa2, 0xda, 0x93, 0xf2, 0x33, 0xcd, 0x25, 0x29, 0xde, 0xcc, 0x86, 0x42,
+ 0x6e, 0xe2, 0x20, 0x99, 0x7a, 0x53, 0xcc, 0xb9, 0xb3, 0x64, 0x0b, 0xa9,
+};
+static const unsigned char kat1341_retbits[] = {
+ 0xb4, 0xd0, 0x19, 0xa1, 0x35, 0x7c, 0xb2, 0x51, 0x79, 0x3c, 0xe7, 0x20,
+ 0x05, 0x95, 0x75, 0x76, 0xd4, 0x8c, 0x5b, 0x7d, 0x20, 0x1e, 0xa2, 0x58,
+ 0x1a, 0x57, 0xdc, 0x65, 0xc9, 0x75, 0xb0, 0x8d, 0x4f, 0x17, 0x58, 0xbf,
+ 0xcf, 0xba, 0xea, 0x85, 0x57, 0x08, 0xc6, 0x52, 0xba, 0x9e, 0x9c, 0xe2,
+ 0x8b, 0xc4, 0x2d, 0xff, 0xdf, 0xa9, 0x46, 0xbd, 0x67, 0xc7, 0xe7, 0x65,
+ 0x30, 0xed, 0x57, 0x58,
+};
+static const struct drbg_kat_no_reseed kat1341_t = {
+ 5, kat1341_entropyin, kat1341_nonce, kat1341_persstr,
+ kat1341_addin0, kat1341_addin1, kat1341_retbits
+};
+static const struct drbg_kat kat1341 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1341_t
+};
+
+static const unsigned char kat1342_entropyin[] = {
+ 0x88, 0x58, 0x61, 0xe6, 0x19, 0xe7, 0x1a, 0x1c, 0xcf, 0xac, 0xa3, 0xb5,
+ 0xa9, 0x20, 0x2b, 0x63, 0x17, 0x06, 0x0b, 0x60, 0xe2, 0x7c, 0xed, 0xd5,
+ 0xc1, 0xc9, 0xda, 0xba, 0xea, 0x7e, 0x22, 0x57, 0x79, 0xa6, 0xda, 0xef,
+ 0x56, 0xbb, 0x9c, 0xf9, 0x0e, 0x77, 0x93, 0xbd, 0xc5, 0x3f, 0x2d, 0xed,
+};
+static const unsigned char kat1342_nonce[] = {0};
+static const unsigned char kat1342_persstr[] = {0};
+static const unsigned char kat1342_addin0[] = {
+ 0xdd, 0x89, 0x1a, 0x6a, 0x79, 0xfd, 0xa1, 0x70, 0x80, 0x91, 0x01, 0x9e,
+ 0x1c, 0x89, 0x87, 0x79, 0x8a, 0x0b, 0x43, 0x0b, 0x3b, 0x8b, 0x29, 0x11,
+ 0x45, 0x74, 0xa6, 0xaf, 0xc8, 0x7b, 0x15, 0x82, 0x04, 0x85, 0x09, 0x59,
+ 0x26, 0xf4, 0x11, 0x4b, 0xda, 0x7a, 0x27, 0xb5, 0x56, 0x36, 0x09, 0x49,
+};
+static const unsigned char kat1342_addin1[] = {
+ 0x34, 0x25, 0xec, 0xa9, 0xca, 0xaa, 0x52, 0xf4, 0x05, 0xd2, 0xd5, 0x78,
+ 0xa3, 0xbe, 0xe3, 0x97, 0x05, 0xef, 0xd1, 0x3e, 0xfc, 0x10, 0x68, 0x0c,
+ 0x42, 0x3d, 0x7e, 0xdf, 0x14, 0x31, 0x65, 0xb4, 0x7b, 0xe8, 0x80, 0x95,
+ 0xc1, 0x52, 0x9f, 0x01, 0x19, 0xb5, 0x05, 0x81, 0x36, 0x38, 0x94, 0x38,
+};
+static const unsigned char kat1342_retbits[] = {
+ 0x49, 0xe8, 0x1f, 0x87, 0xbe, 0x29, 0x76, 0xcb, 0xbe, 0x62, 0xe4, 0x9b,
+ 0xc6, 0xc6, 0xc0, 0x42, 0x44, 0x65, 0x45, 0xb7, 0x9b, 0x19, 0x12, 0x3c,
+ 0x3b, 0x0d, 0x85, 0x5f, 0x0e, 0x9c, 0xed, 0xd7, 0xc0, 0x05, 0xfb, 0xb1,
+ 0x3f, 0x83, 0x12, 0x52, 0xd7, 0x4d, 0x97, 0xa2, 0x9e, 0xbc, 0xca, 0x96,
+ 0xd3, 0xa4, 0xc6, 0x53, 0xcc, 0x3d, 0x55, 0x63, 0x19, 0xbd, 0xad, 0xc1,
+ 0x1b, 0x48, 0xcd, 0x1d,
+};
+static const struct drbg_kat_no_reseed kat1342_t = {
+ 6, kat1342_entropyin, kat1342_nonce, kat1342_persstr,
+ kat1342_addin0, kat1342_addin1, kat1342_retbits
+};
+static const struct drbg_kat kat1342 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1342_t
+};
+
+static const unsigned char kat1343_entropyin[] = {
+ 0xff, 0x65, 0x6c, 0x9b, 0x04, 0x42, 0x70, 0x28, 0x9e, 0xb8, 0xbb, 0x0c,
+ 0xf7, 0x92, 0x36, 0x0a, 0xfb, 0x51, 0xa2, 0xc1, 0x2f, 0xa9, 0x43, 0xb6,
+ 0xde, 0x1f, 0x66, 0xf9, 0x70, 0x8e, 0xf3, 0xa2, 0x69, 0xf4, 0xb4, 0x0c,
+ 0xa7, 0x7f, 0xce, 0x41, 0xe5, 0x51, 0xa3, 0x4e, 0x0f, 0xa7, 0x47, 0x7f,
+};
+static const unsigned char kat1343_nonce[] = {0};
+static const unsigned char kat1343_persstr[] = {0};
+static const unsigned char kat1343_addin0[] = {
+ 0xda, 0xd3, 0x51, 0x0e, 0x96, 0x43, 0x9f, 0x02, 0x39, 0xec, 0x53, 0x05,
+ 0x6e, 0xe9, 0x02, 0x7f, 0x53, 0x70, 0xcc, 0xcf, 0xc2, 0x15, 0x8e, 0xd9,
+ 0x2b, 0x0b, 0xa0, 0xc2, 0x6b, 0x77, 0x69, 0x05, 0xc8, 0xae, 0x43, 0xeb,
+ 0xfb, 0x3a, 0x82, 0x8d, 0x44, 0x4d, 0xfe, 0x6d, 0x51, 0x07, 0xf5, 0xf0,
+};
+static const unsigned char kat1343_addin1[] = {
+ 0x51, 0xc0, 0x55, 0x18, 0x61, 0xdf, 0x38, 0xaf, 0xb8, 0x67, 0xf2, 0xf4,
+ 0x4c, 0x4f, 0xc7, 0x6f, 0x7b, 0xd1, 0xd7, 0x75, 0x50, 0x0a, 0x0d, 0x55,
+ 0x93, 0x1a, 0xe0, 0xcc, 0x00, 0xf3, 0x3c, 0x76, 0xae, 0x8b, 0xfa, 0x90,
+ 0x22, 0x19, 0xb7, 0x01, 0xd3, 0x1c, 0x5d, 0x31, 0x0a, 0x8a, 0x5b, 0x78,
+};
+static const unsigned char kat1343_retbits[] = {
+ 0x92, 0xc3, 0x86, 0x3d, 0x9f, 0xca, 0xa9, 0x00, 0x3d, 0x2f, 0x8c, 0x36,
+ 0xff, 0xa1, 0x43, 0x50, 0x64, 0xc6, 0xc7, 0xf1, 0x6e, 0x57, 0x2b, 0x1e,
+ 0x49, 0xba, 0x72, 0x35, 0xef, 0x87, 0x85, 0x4f, 0x7e, 0x0e, 0xe5, 0xda,
+ 0xb4, 0x1b, 0xee, 0x0e, 0x87, 0x14, 0xe7, 0x2f, 0xfa, 0x7f, 0x64, 0x64,
+ 0x0b, 0xfb, 0xb8, 0x25, 0x15, 0x8f, 0xb7, 0x00, 0x0b, 0x28, 0xb8, 0xd3,
+ 0x85, 0xe6, 0x5a, 0x44,
+};
+static const struct drbg_kat_no_reseed kat1343_t = {
+ 7, kat1343_entropyin, kat1343_nonce, kat1343_persstr,
+ kat1343_addin0, kat1343_addin1, kat1343_retbits
+};
+static const struct drbg_kat kat1343 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1343_t
+};
+
+static const unsigned char kat1344_entropyin[] = {
+ 0xf6, 0x2d, 0xca, 0xf8, 0x2e, 0xfa, 0xe3, 0xeb, 0x03, 0x7f, 0x46, 0xed,
+ 0x2d, 0x12, 0xe2, 0xfe, 0x92, 0x5d, 0x04, 0x40, 0x76, 0x9b, 0xad, 0x68,
+ 0xb8, 0x57, 0xa2, 0x4b, 0xe0, 0xfe, 0x95, 0x68, 0x1e, 0x19, 0x34, 0x05,
+ 0xfe, 0x61, 0xd5, 0xd8, 0xf7, 0xe8, 0x0b, 0xfd, 0x59, 0xfa, 0xac, 0xf4,
+};
+static const unsigned char kat1344_nonce[] = {0};
+static const unsigned char kat1344_persstr[] = {0};
+static const unsigned char kat1344_addin0[] = {
+ 0x27, 0x4a, 0x3d, 0xc4, 0xe4, 0xe8, 0x6d, 0x8e, 0x06, 0x52, 0x50, 0x2d,
+ 0xb2, 0xfc, 0xca, 0xbf, 0xaa, 0x54, 0x2b, 0xfb, 0xb7, 0xd6, 0x10, 0x19,
+ 0x36, 0xb7, 0x69, 0xa7, 0xe4, 0x60, 0xf5, 0x4b, 0x9a, 0x93, 0xeb, 0xa1,
+ 0x47, 0xb4, 0x11, 0x51, 0x0f, 0x4c, 0x77, 0x92, 0x62, 0x39, 0xd7, 0x1d,
+};
+static const unsigned char kat1344_addin1[] = {
+ 0x30, 0xf7, 0x40, 0xe9, 0x02, 0xc5, 0xd3, 0x0c, 0x92, 0x76, 0x13, 0x26,
+ 0x72, 0xcc, 0x19, 0x4f, 0x2b, 0xd8, 0x38, 0xff, 0xb1, 0x64, 0x5b, 0xc9,
+ 0x45, 0x2e, 0xe0, 0xe9, 0xfa, 0x98, 0x20, 0x24, 0xbf, 0x7b, 0xcb, 0x82,
+ 0xca, 0xa1, 0xce, 0x83, 0xbf, 0x6d, 0xb6, 0xa4, 0x12, 0x81, 0xbe, 0xa3,
+};
+static const unsigned char kat1344_retbits[] = {
+ 0xdf, 0xd9, 0x39, 0xd5, 0xd5, 0x53, 0xb1, 0xf9, 0xfa, 0x99, 0x5a, 0x70,
+ 0xa7, 0xb7, 0x82, 0x0b, 0x48, 0x9e, 0x30, 0xf4, 0x59, 0x44, 0xf2, 0x13,
+ 0x6d, 0x2d, 0x2e, 0x2a, 0x76, 0xf2, 0x9f, 0xe9, 0x7f, 0x92, 0x44, 0x08,
+ 0x8e, 0xd1, 0x3a, 0x2a, 0xcf, 0x0d, 0x5f, 0xd2, 0xca, 0x51, 0x61, 0xd2,
+ 0x15, 0xf5, 0x94, 0xb7, 0xfa, 0xbe, 0xa1, 0x71, 0xb1, 0x17, 0xf5, 0x91,
+ 0x26, 0xbb, 0xca, 0xab,
+};
+static const struct drbg_kat_no_reseed kat1344_t = {
+ 8, kat1344_entropyin, kat1344_nonce, kat1344_persstr,
+ kat1344_addin0, kat1344_addin1, kat1344_retbits
+};
+static const struct drbg_kat kat1344 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1344_t
+};
+
+static const unsigned char kat1345_entropyin[] = {
+ 0x51, 0x7a, 0xa7, 0x7a, 0x77, 0xe5, 0x53, 0x8f, 0xd7, 0xa1, 0x3a, 0x4f,
+ 0x5c, 0x0c, 0x9e, 0x7e, 0xe8, 0x02, 0xea, 0xbb, 0x65, 0x63, 0x6d, 0x2c,
+ 0x01, 0x40, 0xe8, 0xa6, 0x28, 0x74, 0x4e, 0x1f, 0x71, 0xce, 0x4c, 0x27,
+ 0x9c, 0x77, 0x1b, 0xd8, 0x4f, 0x35, 0x2d, 0x89, 0xff, 0x52, 0xd2, 0x54,
+};
+static const unsigned char kat1345_nonce[] = {0};
+static const unsigned char kat1345_persstr[] = {0};
+static const unsigned char kat1345_addin0[] = {
+ 0x86, 0xd6, 0x4d, 0x0a, 0xef, 0x2f, 0x0b, 0xd3, 0xe2, 0x7e, 0x18, 0x40,
+ 0x4d, 0x3d, 0xdd, 0x83, 0xa6, 0x1b, 0x0e, 0x7d, 0x4b, 0x03, 0xb7, 0xb4,
+ 0xfd, 0xda, 0x43, 0xb0, 0xf1, 0x04, 0x7a, 0x62, 0xe4, 0x2a, 0x71, 0xe1,
+ 0x70, 0x51, 0xd5, 0x02, 0xac, 0x1d, 0x2b, 0x66, 0x4f, 0x24, 0x62, 0x41,
+};
+static const unsigned char kat1345_addin1[] = {
+ 0x4e, 0x98, 0xe3, 0x8d, 0xc2, 0xb3, 0xd8, 0xbf, 0x03, 0x5b, 0xd3, 0x6a,
+ 0xd4, 0x55, 0xee, 0x61, 0x50, 0xc9, 0x8d, 0x99, 0xf9, 0xaf, 0x5a, 0x42,
+ 0xcf, 0xcb, 0x93, 0x31, 0x46, 0xd2, 0xee, 0xc8, 0x98, 0x22, 0x1e, 0x22,
+ 0x8c, 0x97, 0x61, 0x7d, 0x6e, 0xc4, 0x8f, 0x22, 0x3b, 0x52, 0xe9, 0x49,
+};
+static const unsigned char kat1345_retbits[] = {
+ 0xcc, 0xa2, 0xd8, 0x65, 0x31, 0x2c, 0x0e, 0x5e, 0xfb, 0x86, 0x99, 0x84,
+ 0x86, 0x5b, 0x95, 0xb7, 0xe3, 0x40, 0xe7, 0x4f, 0x90, 0x51, 0x61, 0xea,
+ 0x6a, 0xa3, 0x14, 0x11, 0x6a, 0xa4, 0x94, 0x47, 0x48, 0x1c, 0xe9, 0xdd,
+ 0xef, 0xff, 0x1d, 0x2c, 0x33, 0xd9, 0x1c, 0x7f, 0xb4, 0x9f, 0x7d, 0xad,
+ 0x56, 0xef, 0xcb, 0xf2, 0x41, 0x44, 0x45, 0x6b, 0xe2, 0x28, 0x10, 0x7a,
+ 0xad, 0xae, 0x80, 0x1c,
+};
+static const struct drbg_kat_no_reseed kat1345_t = {
+ 9, kat1345_entropyin, kat1345_nonce, kat1345_persstr,
+ kat1345_addin0, kat1345_addin1, kat1345_retbits
+};
+static const struct drbg_kat kat1345 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1345_t
+};
+
+static const unsigned char kat1346_entropyin[] = {
+ 0xfe, 0xf1, 0xe5, 0x7a, 0x77, 0x0a, 0x7f, 0xee, 0xf1, 0x9f, 0xab, 0x12,
+ 0xc0, 0xff, 0x7b, 0xd7, 0x89, 0x24, 0xce, 0xa8, 0x3e, 0x5a, 0x5e, 0x0d,
+ 0x6d, 0x0a, 0x73, 0x0c, 0x17, 0xc3, 0x92, 0x06, 0x32, 0x71, 0xf4, 0xa8,
+ 0x63, 0x76, 0xb8, 0x12, 0xfd, 0x31, 0xea, 0x9f, 0xf4, 0x3d, 0xb4, 0x0b,
+};
+static const unsigned char kat1346_nonce[] = {0};
+static const unsigned char kat1346_persstr[] = {0};
+static const unsigned char kat1346_addin0[] = {
+ 0xd6, 0xbf, 0xd7, 0xab, 0x6e, 0xdc, 0x1f, 0x8d, 0xd4, 0x12, 0xa7, 0x47,
+ 0x4d, 0xef, 0x9c, 0xe5, 0x34, 0xe7, 0xc3, 0x5e, 0xcd, 0xa3, 0xbf, 0xea,
+ 0x57, 0xa9, 0x8a, 0xaa, 0xc7, 0xbc, 0x25, 0x1b, 0x9d, 0x1a, 0xe4, 0xc1,
+ 0xd6, 0xfd, 0x91, 0x1e, 0xfa, 0x61, 0x13, 0x0f, 0xb8, 0x4e, 0x4c, 0x74,
+};
+static const unsigned char kat1346_addin1[] = {
+ 0x72, 0xed, 0x24, 0xf1, 0x04, 0xf5, 0x51, 0x3d, 0x27, 0x77, 0xc7, 0xf1,
+ 0xb6, 0x23, 0x73, 0x63, 0x08, 0x12, 0x60, 0xa2, 0xb2, 0x3d, 0xa3, 0xdb,
+ 0x0e, 0x01, 0xb1, 0x4e, 0x8a, 0xc7, 0x23, 0x66, 0xf6, 0x61, 0x6b, 0x4d,
+ 0x92, 0xaf, 0x99, 0xb4, 0x9b, 0x5c, 0x84, 0xc9, 0x59, 0xb9, 0x82, 0xc3,
+};
+static const unsigned char kat1346_retbits[] = {
+ 0x87, 0x95, 0x13, 0xa1, 0xea, 0x37, 0x89, 0xed, 0x39, 0x15, 0xdc, 0xe9,
+ 0x69, 0x7b, 0x9e, 0x76, 0xc6, 0x75, 0xb9, 0x39, 0xeb, 0x80, 0x93, 0xd4,
+ 0x1d, 0x0a, 0xdc, 0x3e, 0xd3, 0xae, 0xb9, 0x8b, 0x67, 0xe2, 0x4c, 0x0c,
+ 0x3f, 0x6a, 0xe8, 0xa6, 0x1f, 0x0b, 0x77, 0x2b, 0xd4, 0x0a, 0xcb, 0x6c,
+ 0x85, 0x63, 0x32, 0x33, 0x35, 0x7a, 0xf5, 0x32, 0x9f, 0xc7, 0xa0, 0x32,
+ 0x98, 0x87, 0x58, 0xa3,
+};
+static const struct drbg_kat_no_reseed kat1346_t = {
+ 10, kat1346_entropyin, kat1346_nonce, kat1346_persstr,
+ kat1346_addin0, kat1346_addin1, kat1346_retbits
+};
+static const struct drbg_kat kat1346 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1346_t
+};
+
+static const unsigned char kat1347_entropyin[] = {
+ 0x22, 0x0f, 0xe6, 0x9b, 0x9a, 0x50, 0x52, 0xa5, 0x2e, 0x58, 0xa2, 0x6a,
+ 0x79, 0xe3, 0x9e, 0x0b, 0x48, 0x6c, 0xfc, 0xa7, 0x13, 0x95, 0xa5, 0x89,
+ 0xcd, 0x4a, 0xd3, 0x96, 0x2c, 0x03, 0xd2, 0x78, 0x99, 0x7f, 0x35, 0x94,
+ 0x7a, 0xd6, 0x9e, 0x37, 0xb3, 0x0a, 0x7e, 0xf8, 0xeb, 0x12, 0x67, 0x97,
+};
+static const unsigned char kat1347_nonce[] = {0};
+static const unsigned char kat1347_persstr[] = {0};
+static const unsigned char kat1347_addin0[] = {
+ 0xa5, 0x2b, 0xc9, 0x27, 0x9f, 0x5e, 0x0a, 0x70, 0xe4, 0x73, 0xaf, 0x3f,
+ 0x76, 0x89, 0x9b, 0xb9, 0xe5, 0xee, 0xe8, 0x46, 0x84, 0x8f, 0xd1, 0x81,
+ 0x2b, 0x76, 0xa5, 0xfc, 0xa6, 0x18, 0xcb, 0x43, 0x30, 0x3b, 0xfc, 0x93,
+ 0x75, 0x38, 0x99, 0xae, 0x92, 0x58, 0x5d, 0x90, 0xd6, 0x48, 0x50, 0x1f,
+};
+static const unsigned char kat1347_addin1[] = {
+ 0x9c, 0x37, 0x5f, 0xa7, 0x53, 0x41, 0xaa, 0xb2, 0xda, 0x8b, 0x02, 0x40,
+ 0x75, 0x23, 0x8f, 0x17, 0x88, 0xef, 0x1d, 0x2e, 0x64, 0x67, 0x8a, 0x64,
+ 0x74, 0x36, 0x6a, 0x29, 0x80, 0x12, 0xae, 0x75, 0x72, 0xe3, 0x09, 0xf3,
+ 0x82, 0x08, 0x94, 0x1d, 0x5d, 0xac, 0x4c, 0x61, 0xd8, 0xf2, 0x72, 0xfd,
+};
+static const unsigned char kat1347_retbits[] = {
+ 0x7d, 0x06, 0x7c, 0x72, 0x0b, 0xfe, 0x15, 0x80, 0x5f, 0x3d, 0xfd, 0xe2,
+ 0x39, 0x64, 0xe8, 0xce, 0xf1, 0x18, 0x83, 0x42, 0x84, 0x00, 0x86, 0x56,
+ 0xf3, 0x2a, 0xcb, 0xfc, 0x20, 0xba, 0x52, 0xb7, 0x81, 0x88, 0xd8, 0x77,
+ 0x48, 0x67, 0x20, 0x34, 0x1d, 0xc9, 0x71, 0xfe, 0x78, 0x61, 0x9d, 0xb5,
+ 0xf1, 0x77, 0xba, 0x61, 0x55, 0x3d, 0x41, 0xda, 0x2f, 0x4e, 0xc6, 0xdf,
+ 0x82, 0x67, 0xaf, 0xd7,
+};
+static const struct drbg_kat_no_reseed kat1347_t = {
+ 11, kat1347_entropyin, kat1347_nonce, kat1347_persstr,
+ kat1347_addin0, kat1347_addin1, kat1347_retbits
+};
+static const struct drbg_kat kat1347 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1347_t
+};
+
+static const unsigned char kat1348_entropyin[] = {
+ 0x7c, 0x75, 0xed, 0xd1, 0x67, 0x5f, 0x4a, 0xc8, 0x44, 0xb9, 0xde, 0xad,
+ 0x1f, 0x8f, 0x74, 0x3e, 0x8f, 0xa6, 0x37, 0x2b, 0xe5, 0x7e, 0xc6, 0xb7,
+ 0x2e, 0x7a, 0x01, 0xec, 0x6b, 0x93, 0x71, 0xde, 0xd2, 0xe6, 0x4d, 0x8f,
+ 0x4b, 0x11, 0xd4, 0x08, 0x9a, 0xcc, 0x47, 0x3b, 0x59, 0x50, 0x76, 0x02,
+};
+static const unsigned char kat1348_nonce[] = {0};
+static const unsigned char kat1348_persstr[] = {0};
+static const unsigned char kat1348_addin0[] = {
+ 0xc6, 0x56, 0x4c, 0x3c, 0x43, 0xfd, 0x2c, 0x74, 0xb9, 0xd4, 0x8c, 0x4f,
+ 0x8e, 0xde, 0xcc, 0x8f, 0xc0, 0x0a, 0xf0, 0x6b, 0x34, 0x36, 0x33, 0x02,
+ 0xf8, 0x17, 0x1e, 0xe4, 0x93, 0xcd, 0xf1, 0x43, 0xd0, 0xdb, 0x6d, 0x61,
+ 0xd8, 0xaa, 0xe4, 0xf0, 0xc6, 0x58, 0x53, 0xde, 0xea, 0x50, 0xee, 0x90,
+};
+static const unsigned char kat1348_addin1[] = {
+ 0xe8, 0x62, 0x66, 0xb8, 0x3f, 0x16, 0x8f, 0xe6, 0x16, 0xdb, 0x77, 0x03,
+ 0x6b, 0xc1, 0xd0, 0x1d, 0xda, 0xb1, 0x4f, 0x13, 0x25, 0x35, 0xe9, 0x98,
+ 0x1b, 0x77, 0xa6, 0x87, 0xd7, 0x58, 0xe8, 0x45, 0x44, 0x0b, 0xaa, 0x8b,
+ 0xf0, 0x8b, 0x91, 0xa2, 0xd8, 0x40, 0x8b, 0x89, 0xf6, 0xbc, 0x5a, 0x60,
+};
+static const unsigned char kat1348_retbits[] = {
+ 0xd4, 0xcd, 0x79, 0x0f, 0x30, 0x64, 0xe4, 0xb6, 0x9c, 0x59, 0xdb, 0x69,
+ 0xfc, 0xb7, 0x16, 0x8f, 0x13, 0x52, 0xc2, 0xff, 0xc7, 0x03, 0xec, 0xc2,
+ 0x23, 0x31, 0x07, 0x91, 0x1f, 0x22, 0x4d, 0x79, 0x29, 0x4c, 0xe6, 0x35,
+ 0x47, 0xa8, 0xd9, 0x69, 0x14, 0x17, 0xac, 0x3a, 0x98, 0x96, 0x0e, 0xeb,
+ 0x6a, 0x1d, 0xf2, 0xd9, 0xbe, 0xa6, 0x62, 0x06, 0xf5, 0x43, 0x43, 0x35,
+ 0xe2, 0x53, 0x3e, 0xc3,
+};
+static const struct drbg_kat_no_reseed kat1348_t = {
+ 12, kat1348_entropyin, kat1348_nonce, kat1348_persstr,
+ kat1348_addin0, kat1348_addin1, kat1348_retbits
+};
+static const struct drbg_kat kat1348 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1348_t
+};
+
+static const unsigned char kat1349_entropyin[] = {
+ 0xfb, 0x16, 0x6b, 0xe7, 0x29, 0xfd, 0x92, 0x5d, 0x5a, 0xa8, 0xa0, 0x3f,
+ 0x63, 0x56, 0xd2, 0xb2, 0x24, 0x24, 0xf0, 0x12, 0xc5, 0x99, 0xbe, 0x84,
+ 0xc2, 0xd6, 0xcf, 0x9c, 0x82, 0xd9, 0xbc, 0xc3, 0x83, 0xda, 0xe4, 0x90,
+ 0x48, 0x48, 0x56, 0xe0, 0xab, 0x53, 0x78, 0x9e, 0x15, 0x67, 0x84, 0x26,
+};
+static const unsigned char kat1349_nonce[] = {0};
+static const unsigned char kat1349_persstr[] = {0};
+static const unsigned char kat1349_addin0[] = {
+ 0x57, 0x16, 0xe5, 0x59, 0xc6, 0xac, 0xaf, 0x47, 0x4f, 0xec, 0x9c, 0x6e,
+ 0xe9, 0x15, 0x24, 0xa7, 0x49, 0x66, 0x8a, 0x6f, 0xcc, 0xd2, 0x98, 0x1d,
+ 0xe4, 0x4b, 0x05, 0x40, 0x2a, 0x23, 0x21, 0x7b, 0x8d, 0x03, 0x08, 0xbf,
+ 0x73, 0x85, 0xfa, 0xb4, 0xa8, 0x33, 0xfb, 0x68, 0x45, 0x19, 0xce, 0x75,
+};
+static const unsigned char kat1349_addin1[] = {
+ 0x0b, 0xd4, 0x80, 0x09, 0x5b, 0xf6, 0x4d, 0x19, 0x36, 0x6d, 0xa2, 0x8d,
+ 0x9a, 0x04, 0xfb, 0xc6, 0x03, 0x4c, 0xba, 0x8c, 0x9d, 0x6e, 0xd1, 0xbb,
+ 0x38, 0x6b, 0x54, 0xdf, 0x5f, 0x83, 0x68, 0xc0, 0x75, 0x9c, 0x64, 0x46,
+ 0xc7, 0x32, 0x53, 0x0c, 0x8d, 0xc8, 0xca, 0x37, 0xab, 0x06, 0x25, 0x0a,
+};
+static const unsigned char kat1349_retbits[] = {
+ 0xd7, 0x89, 0x6e, 0x5a, 0x85, 0x1c, 0xff, 0x76, 0x32, 0x8a, 0xd4, 0x99,
+ 0xfa, 0x3e, 0xe2, 0x8c, 0x74, 0xce, 0xdf, 0x99, 0x84, 0x0c, 0xc9, 0x21,
+ 0x6a, 0xe8, 0x6a, 0x0e, 0xc3, 0xdf, 0x2f, 0x0d, 0x9e, 0x7c, 0xa1, 0x4c,
+ 0x40, 0xf9, 0x4e, 0x17, 0xae, 0xd5, 0xa9, 0xea, 0x2b, 0xa1, 0xd1, 0x7b,
+ 0x06, 0xcf, 0x17, 0x24, 0x01, 0xd9, 0xe3, 0x46, 0x73, 0xb8, 0xcb, 0x98,
+ 0x9c, 0xd8, 0xd8, 0x55,
+};
+static const struct drbg_kat_no_reseed kat1349_t = {
+ 13, kat1349_entropyin, kat1349_nonce, kat1349_persstr,
+ kat1349_addin0, kat1349_addin1, kat1349_retbits
+};
+static const struct drbg_kat kat1349 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1349_t
+};
+
+static const unsigned char kat1350_entropyin[] = {
+ 0x93, 0x7b, 0xc5, 0x2b, 0x85, 0x33, 0x1a, 0xac, 0x7c, 0x3e, 0x19, 0x8b,
+ 0x6e, 0x8f, 0x4a, 0x53, 0x62, 0xb2, 0xe3, 0x89, 0x66, 0x2b, 0x5a, 0xd7,
+ 0xd7, 0xce, 0x7e, 0x6f, 0x27, 0x4d, 0x3f, 0xbd, 0x5d, 0x1a, 0x3a, 0x83,
+ 0x47, 0x45, 0x5b, 0x01, 0x9d, 0xdb, 0xb5, 0x75, 0x3d, 0x3f, 0x0f, 0x29,
+};
+static const unsigned char kat1350_nonce[] = {0};
+static const unsigned char kat1350_persstr[] = {0};
+static const unsigned char kat1350_addin0[] = {
+ 0x8c, 0xa6, 0x25, 0xe0, 0xda, 0xf6, 0x5e, 0xcb, 0x70, 0xcc, 0xc6, 0x3b,
+ 0xbe, 0x88, 0x72, 0x0e, 0xce, 0x7a, 0x41, 0x5b, 0x12, 0x54, 0x2c, 0x59,
+ 0xdb, 0x48, 0x8b, 0xd0, 0x56, 0x23, 0x74, 0x12, 0x1f, 0x25, 0x6c, 0x0d,
+ 0x2e, 0x55, 0xb3, 0x5f, 0xf7, 0xef, 0x9e, 0x57, 0x00, 0x68, 0xf4, 0xa3,
+};
+static const unsigned char kat1350_addin1[] = {
+ 0xe5, 0x11, 0xe7, 0x7b, 0x98, 0xdf, 0x72, 0xd3, 0xe4, 0xc1, 0x75, 0xb5,
+ 0x8b, 0x71, 0x82, 0xfa, 0x72, 0x9a, 0x61, 0x64, 0x96, 0x59, 0xff, 0x11,
+ 0x7d, 0x9b, 0x4c, 0x51, 0x4c, 0xf6, 0x94, 0xfe, 0xa2, 0x73, 0x1b, 0x17,
+ 0x0d, 0x0b, 0xab, 0xbf, 0x6b, 0x6b, 0xf8, 0x19, 0x8b, 0xe6, 0xd9, 0x32,
+};
+static const unsigned char kat1350_retbits[] = {
+ 0xd9, 0xd3, 0xac, 0x14, 0x80, 0x32, 0x34, 0x39, 0xe9, 0xf8, 0xf0, 0x9a,
+ 0x54, 0xb3, 0x66, 0x86, 0x84, 0x89, 0x0f, 0xad, 0x51, 0xad, 0x31, 0x4c,
+ 0x8e, 0x14, 0xbf, 0x0f, 0xdb, 0x42, 0x97, 0x38, 0xb8, 0x95, 0x5e, 0x3d,
+ 0x2d, 0x92, 0x8f, 0x24, 0x03, 0xf2, 0x0c, 0xac, 0xa2, 0x06, 0x57, 0x95,
+ 0xc0, 0xad, 0xaa, 0x30, 0xa5, 0xc4, 0x68, 0x3a, 0x08, 0xd8, 0x30, 0x74,
+ 0x63, 0x3b, 0xe8, 0xf2,
+};
+static const struct drbg_kat_no_reseed kat1350_t = {
+ 14, kat1350_entropyin, kat1350_nonce, kat1350_persstr,
+ kat1350_addin0, kat1350_addin1, kat1350_retbits
+};
+static const struct drbg_kat kat1350 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1350_t
+};
+
+static const unsigned char kat1351_entropyin[] = {
+ 0x31, 0xd9, 0xb2, 0x6b, 0x6e, 0xb7, 0xfb, 0x56, 0x9c, 0x1d, 0x32, 0x42,
+ 0xb5, 0x0a, 0x19, 0xe1, 0x3f, 0x7b, 0xfc, 0xf0, 0xb1, 0x5e, 0xa7, 0x39,
+ 0x97, 0xac, 0xac, 0x84, 0x7b, 0x3a, 0xb8, 0x40, 0xa7, 0x2d, 0x03, 0xff,
+ 0x21, 0xf6, 0xb5, 0x2e, 0x4f, 0x65, 0x55, 0xfb, 0x8a, 0x4c, 0xa9, 0x7d,
+};
+static const unsigned char kat1351_nonce[] = {0};
+static const unsigned char kat1351_persstr[] = {
+ 0xdf, 0x36, 0x22, 0x28, 0x2c, 0x7d, 0x1c, 0xcd, 0xd1, 0x78, 0x4e, 0x50,
+ 0x81, 0x37, 0xc2, 0xd0, 0xc9, 0x12, 0xb7, 0x90, 0x8c, 0xa7, 0x5e, 0x28,
+ 0x32, 0x94, 0x55, 0xe3, 0x6d, 0x91, 0x74, 0x53, 0x05, 0x18, 0xd2, 0x83,
+ 0x95, 0x11, 0x4d, 0x1c, 0xc8, 0xaf, 0x71, 0xac, 0xe5, 0x25, 0x3e, 0x03,
+};
+static const unsigned char kat1351_addin0[] = {0};
+static const unsigned char kat1351_addin1[] = {0};
+static const unsigned char kat1351_retbits[] = {
+ 0xbc, 0xcd, 0x3f, 0xea, 0x43, 0xdf, 0x70, 0xaf, 0xe2, 0xd9, 0x57, 0x8f,
+ 0x4a, 0xc4, 0xb4, 0x08, 0x7a, 0x0e, 0xd3, 0x72, 0xa6, 0x74, 0x87, 0x08,
+ 0x9d, 0x9d, 0xe9, 0x38, 0x69, 0x93, 0x65, 0xae, 0xfc, 0x92, 0x4b, 0x7d,
+ 0xc9, 0xd8, 0x38, 0x84, 0xbe, 0x27, 0x46, 0xe1, 0x96, 0xce, 0x89, 0xe0,
+ 0x7e, 0xde, 0x23, 0x3d, 0x16, 0x34, 0x2d, 0x22, 0x75, 0x71, 0xf0, 0x89,
+ 0x71, 0x60, 0x95, 0x22,
+};
+static const struct drbg_kat_no_reseed kat1351_t = {
+ 0, kat1351_entropyin, kat1351_nonce, kat1351_persstr,
+ kat1351_addin0, kat1351_addin1, kat1351_retbits
+};
+static const struct drbg_kat kat1351 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1351_t
+};
+
+static const unsigned char kat1352_entropyin[] = {
+ 0xd2, 0x35, 0x6c, 0x94, 0xec, 0x89, 0x86, 0x9e, 0x29, 0x40, 0x07, 0x26,
+ 0x00, 0x2d, 0xa7, 0x2c, 0xa8, 0x25, 0xa5, 0xf1, 0x12, 0xf0, 0xc5, 0xff,
+ 0xf6, 0xbb, 0x08, 0xa8, 0x97, 0x58, 0xdd, 0x51, 0xd0, 0xfc, 0x84, 0xb8,
+ 0x10, 0xeb, 0xed, 0xe6, 0xb6, 0x2f, 0x1b, 0x40, 0x3e, 0xd7, 0x82, 0xe0,
+};
+static const unsigned char kat1352_nonce[] = {0};
+static const unsigned char kat1352_persstr[] = {
+ 0x12, 0xa8, 0x85, 0xaf, 0x97, 0x5d, 0xac, 0xff, 0x4c, 0x4c, 0x7d, 0x55,
+ 0x56, 0x1f, 0xf5, 0x49, 0xa5, 0x65, 0xf1, 0xd7, 0xf6, 0x06, 0x07, 0xd8,
+ 0xfb, 0x9d, 0xde, 0x53, 0xe1, 0x08, 0xe9, 0x2c, 0x8b, 0x99, 0xf5, 0x88,
+ 0x19, 0x23, 0x68, 0xca, 0xfa, 0x62, 0x9e, 0x52, 0xb2, 0xd4, 0x2b, 0xc0,
+};
+static const unsigned char kat1352_addin0[] = {0};
+static const unsigned char kat1352_addin1[] = {0};
+static const unsigned char kat1352_retbits[] = {
+ 0x2f, 0x8b, 0x37, 0xe4, 0x31, 0x9e, 0x72, 0x82, 0x6b, 0xdb, 0x3a, 0x40,
+ 0xe5, 0x32, 0x90, 0x74, 0xa9, 0x01, 0x56, 0x56, 0xfc, 0xae, 0xe5, 0x93,
+ 0x3d, 0x01, 0x7e, 0x2f, 0x3f, 0x3b, 0xf5, 0x67, 0x13, 0x75, 0xbe, 0x0c,
+ 0x89, 0xbc, 0xab, 0xc2, 0x03, 0x7e, 0x58, 0x77, 0x2b, 0xf5, 0x87, 0x7c,
+ 0x41, 0x42, 0xc0, 0xb8, 0xd9, 0xf0, 0x28, 0x6e, 0x12, 0xe5, 0x6a, 0x38,
+ 0xb7, 0xa4, 0xf0, 0xff,
+};
+static const struct drbg_kat_no_reseed kat1352_t = {
+ 1, kat1352_entropyin, kat1352_nonce, kat1352_persstr,
+ kat1352_addin0, kat1352_addin1, kat1352_retbits
+};
+static const struct drbg_kat kat1352 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1352_t
+};
+
+static const unsigned char kat1353_entropyin[] = {
+ 0x48, 0x41, 0x6d, 0xf6, 0xc4, 0x9b, 0x85, 0xfc, 0x18, 0xcd, 0xe3, 0x1c,
+ 0xab, 0x33, 0x7a, 0xc4, 0xe6, 0x14, 0xcd, 0xed, 0xb6, 0xb5, 0xf7, 0x08,
+ 0x0a, 0xd8, 0x15, 0xad, 0xe9, 0x58, 0xdd, 0x3a, 0x12, 0x11, 0x16, 0x51,
+ 0x1e, 0xd3, 0x36, 0x2c, 0xe3, 0x56, 0xe2, 0x86, 0x1c, 0x79, 0x7f, 0x3b,
+};
+static const unsigned char kat1353_nonce[] = {0};
+static const unsigned char kat1353_persstr[] = {
+ 0xd7, 0x28, 0x50, 0x32, 0x3c, 0xc6, 0x3c, 0xba, 0x56, 0x6d, 0xcb, 0xdd,
+ 0xde, 0x35, 0xa7, 0x0c, 0x69, 0x09, 0x78, 0x92, 0xe6, 0x1e, 0x04, 0x1a,
+ 0xc6, 0x47, 0x39, 0x68, 0x9a, 0x22, 0x5a, 0xf0, 0x8a, 0x4e, 0x46, 0x6a,
+ 0xf7, 0x89, 0xb0, 0x40, 0xa0, 0x97, 0x54, 0x54, 0x5c, 0x24, 0xc7, 0x09,
+};
+static const unsigned char kat1353_addin0[] = {0};
+static const unsigned char kat1353_addin1[] = {0};
+static const unsigned char kat1353_retbits[] = {
+ 0x0c, 0x44, 0x98, 0x85, 0x2f, 0x8b, 0x8a, 0x75, 0x46, 0xe0, 0xa2, 0x4c,
+ 0x18, 0xd6, 0xa3, 0x27, 0x21, 0x4f, 0x00, 0x79, 0x94, 0xfd, 0xbf, 0xad,
+ 0x72, 0xbf, 0x91, 0xf6, 0x7c, 0x2e, 0x2e, 0xc4, 0x1c, 0x83, 0x5b, 0x47,
+ 0xe1, 0x1a, 0xa7, 0x66, 0x3e, 0xb2, 0xaa, 0xb4, 0x23, 0xe8, 0xfb, 0xa7,
+ 0x3b, 0xf7, 0xb0, 0x01, 0x15, 0x56, 0x16, 0xe5, 0x80, 0x0c, 0x79, 0xdd,
+ 0x27, 0x79, 0xbe, 0x47,
+};
+static const struct drbg_kat_no_reseed kat1353_t = {
+ 2, kat1353_entropyin, kat1353_nonce, kat1353_persstr,
+ kat1353_addin0, kat1353_addin1, kat1353_retbits
+};
+static const struct drbg_kat kat1353 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1353_t
+};
+
+static const unsigned char kat1354_entropyin[] = {
+ 0xbc, 0x26, 0x44, 0xdf, 0xa4, 0xeb, 0x26, 0xab, 0xea, 0x11, 0xb5, 0xc8,
+ 0xc2, 0xb7, 0x53, 0x74, 0xc0, 0x56, 0x92, 0x78, 0x09, 0xfa, 0x35, 0x7b,
+ 0xfe, 0xd4, 0xa1, 0x4f, 0xbe, 0x17, 0xe8, 0x28, 0x6c, 0x6b, 0x34, 0x5e,
+ 0xac, 0x5b, 0x5b, 0x6c, 0x80, 0xc0, 0x74, 0x4f, 0x4c, 0x48, 0xc4, 0x00,
+};
+static const unsigned char kat1354_nonce[] = {0};
+static const unsigned char kat1354_persstr[] = {
+ 0xe8, 0xf9, 0x35, 0x4d, 0x45, 0xe3, 0x6c, 0x31, 0x7d, 0xbf, 0xaf, 0x60,
+ 0xfa, 0xc9, 0x03, 0x53, 0xa2, 0x0b, 0x96, 0x36, 0xae, 0xc3, 0xae, 0x3d,
+ 0xc4, 0x4a, 0x28, 0x7b, 0x3c, 0x9e, 0x52, 0xbf, 0x0a, 0x1e, 0x99, 0x9f,
+ 0xcb, 0x2a, 0x92, 0xab, 0x35, 0x20, 0x06, 0xc8, 0xab, 0x36, 0xbc, 0x1e,
+};
+static const unsigned char kat1354_addin0[] = {0};
+static const unsigned char kat1354_addin1[] = {0};
+static const unsigned char kat1354_retbits[] = {
+ 0xfc, 0xb1, 0x6f, 0x5c, 0x46, 0x57, 0xcd, 0x83, 0x55, 0xdb, 0x7a, 0x35,
+ 0x93, 0xd3, 0x45, 0xd0, 0x36, 0xe0, 0xea, 0x4e, 0xdb, 0x37, 0x78, 0x1e,
+ 0x2b, 0xb6, 0xe5, 0x0d, 0x04, 0x80, 0xfb, 0x82, 0x0f, 0xcb, 0x94, 0x44,
+ 0x9c, 0x69, 0x5d, 0x2c, 0xf4, 0xc9, 0xc3, 0x11, 0x2d, 0x41, 0xbe, 0xb5,
+ 0xcc, 0x05, 0x80, 0x8f, 0x1c, 0x93, 0x5d, 0xa6, 0xda, 0x03, 0x57, 0x36,
+ 0xba, 0xc8, 0x83, 0xaa,
+};
+static const struct drbg_kat_no_reseed kat1354_t = {
+ 3, kat1354_entropyin, kat1354_nonce, kat1354_persstr,
+ kat1354_addin0, kat1354_addin1, kat1354_retbits
+};
+static const struct drbg_kat kat1354 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1354_t
+};
+
+static const unsigned char kat1355_entropyin[] = {
+ 0x28, 0xaf, 0x8c, 0x2a, 0x47, 0xa3, 0x7d, 0x7e, 0xcd, 0x46, 0x7e, 0x4c,
+ 0xc2, 0x3e, 0xc0, 0xa9, 0x25, 0xb3, 0x25, 0x28, 0x7f, 0xeb, 0xb1, 0x03,
+ 0x60, 0x60, 0xd3, 0x72, 0x98, 0x55, 0xc2, 0x76, 0x0d, 0x2c, 0xfa, 0xfd,
+ 0x42, 0x3b, 0xac, 0x1b, 0xa1, 0x68, 0x40, 0x6b, 0x0b, 0x0e, 0xc7, 0x94,
+};
+static const unsigned char kat1355_nonce[] = {0};
+static const unsigned char kat1355_persstr[] = {
+ 0xc8, 0xc0, 0x74, 0xae, 0x56, 0x06, 0xab, 0xdf, 0x47, 0x17, 0xfa, 0x73,
+ 0x08, 0xc6, 0x0f, 0xa9, 0x72, 0x7d, 0x81, 0x73, 0xb5, 0xf2, 0x2e, 0x50,
+ 0xc9, 0x58, 0x5a, 0x10, 0x12, 0x22, 0x5e, 0xe0, 0x42, 0x1d, 0x47, 0x86,
+ 0x33, 0x64, 0x8d, 0x0e, 0xc9, 0xf6, 0x1d, 0x94, 0x5b, 0xfa, 0x42, 0xcc,
+};
+static const unsigned char kat1355_addin0[] = {0};
+static const unsigned char kat1355_addin1[] = {0};
+static const unsigned char kat1355_retbits[] = {
+ 0x0f, 0x28, 0x75, 0x67, 0x5e, 0x05, 0x4b, 0xd6, 0xfd, 0xe2, 0x94, 0x8b,
+ 0x72, 0xf3, 0xa2, 0x60, 0x38, 0x5f, 0xd4, 0x6b, 0x90, 0xe3, 0x0f, 0xd5,
+ 0x64, 0xa0, 0xbd, 0x14, 0xe5, 0x15, 0x61, 0xb4, 0x0f, 0x1f, 0xe1, 0xe3,
+ 0x1c, 0x7a, 0xe7, 0xcc, 0xe8, 0x51, 0xa6, 0x1a, 0x85, 0xf0, 0x6a, 0xb0,
+ 0xd9, 0xa4, 0x94, 0xda, 0x82, 0xc0, 0xbf, 0x68, 0x08, 0x11, 0x39, 0x40,
+ 0x2b, 0x2b, 0xe6, 0x4f,
+};
+static const struct drbg_kat_no_reseed kat1355_t = {
+ 4, kat1355_entropyin, kat1355_nonce, kat1355_persstr,
+ kat1355_addin0, kat1355_addin1, kat1355_retbits
+};
+static const struct drbg_kat kat1355 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1355_t
+};
+
+static const unsigned char kat1356_entropyin[] = {
+ 0xe6, 0x1c, 0xb2, 0xc1, 0x7c, 0x1e, 0xeb, 0x30, 0xff, 0x49, 0xd1, 0x49,
+ 0x54, 0x17, 0x1f, 0xad, 0xae, 0x3a, 0xec, 0xf9, 0xa2, 0xa3, 0x9b, 0x7e,
+ 0xce, 0x60, 0x66, 0xcd, 0x85, 0xe3, 0xa0, 0x8e, 0x2a, 0xec, 0xe5, 0x6b,
+ 0x2b, 0x82, 0x1a, 0x35, 0x7e, 0xa2, 0x0c, 0x28, 0x60, 0xdf, 0xf7, 0x94,
+};
+static const unsigned char kat1356_nonce[] = {0};
+static const unsigned char kat1356_persstr[] = {
+ 0xa1, 0x0b, 0x0a, 0xce, 0x38, 0x52, 0x24, 0x34, 0x6e, 0x8d, 0x61, 0xf4,
+ 0xcf, 0x2b, 0xd5, 0x8c, 0xba, 0x38, 0xfb, 0xf9, 0x69, 0xcc, 0x5d, 0xe3,
+ 0x40, 0x2f, 0x6f, 0x85, 0xa5, 0x55, 0x70, 0x4c, 0x01, 0x6b, 0x5c, 0x3d,
+ 0x21, 0x95, 0x50, 0xc5, 0x1d, 0x96, 0x71, 0x3d, 0x5f, 0x06, 0x7f, 0x37,
+};
+static const unsigned char kat1356_addin0[] = {0};
+static const unsigned char kat1356_addin1[] = {0};
+static const unsigned char kat1356_retbits[] = {
+ 0x0c, 0x01, 0xe9, 0x21, 0x7f, 0x5a, 0xde, 0x5e, 0xd2, 0x16, 0x0b, 0x7d,
+ 0xa9, 0xdb, 0xf7, 0xb4, 0x86, 0x08, 0x12, 0x05, 0x83, 0xfb, 0xda, 0x0d,
+ 0x97, 0xc6, 0x4e, 0xad, 0xf8, 0x14, 0xd3, 0x08, 0x9a, 0x5c, 0x83, 0xef,
+ 0x6f, 0x38, 0xfa, 0xd7, 0xae, 0x3c, 0x6a, 0x12, 0x0a, 0x9d, 0x4a, 0x6b,
+ 0xee, 0xff, 0x52, 0x35, 0xae, 0xcf, 0x61, 0x0d, 0x43, 0xe4, 0x2f, 0x33,
+ 0x2d, 0x4a, 0x0d, 0x77,
+};
+static const struct drbg_kat_no_reseed kat1356_t = {
+ 5, kat1356_entropyin, kat1356_nonce, kat1356_persstr,
+ kat1356_addin0, kat1356_addin1, kat1356_retbits
+};
+static const struct drbg_kat kat1356 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1356_t
+};
+
+static const unsigned char kat1357_entropyin[] = {
+ 0x17, 0xc1, 0x89, 0x10, 0xa6, 0x7e, 0x7c, 0x61, 0x08, 0x0c, 0xe2, 0x4c,
+ 0xee, 0x2c, 0xf2, 0xda, 0x92, 0xef, 0xa7, 0x03, 0xbc, 0x13, 0x60, 0x69,
+ 0xe0, 0x21, 0x54, 0x90, 0x73, 0x1f, 0x05, 0xd5, 0x66, 0xac, 0x86, 0x42,
+ 0x58, 0xcb, 0x02, 0x8d, 0x32, 0x80, 0x8a, 0xbc, 0x7f, 0x18, 0xe0, 0xef,
+};
+static const unsigned char kat1357_nonce[] = {0};
+static const unsigned char kat1357_persstr[] = {
+ 0x4e, 0x0a, 0xcc, 0x75, 0x03, 0x13, 0xc2, 0x06, 0x13, 0x52, 0x5b, 0x8c,
+ 0x22, 0xd0, 0x75, 0x95, 0x82, 0xbd, 0x65, 0x64, 0x84, 0x05, 0x1d, 0xa4,
+ 0x61, 0xa3, 0x36, 0xcb, 0xd8, 0x5c, 0x74, 0x05, 0x6d, 0xb8, 0x62, 0xb5,
+ 0x96, 0x75, 0xb8, 0x11, 0x7a, 0x2a, 0x17, 0x8a, 0xec, 0x41, 0x5d, 0xe9,
+};
+static const unsigned char kat1357_addin0[] = {0};
+static const unsigned char kat1357_addin1[] = {0};
+static const unsigned char kat1357_retbits[] = {
+ 0xfd, 0x46, 0x7f, 0x8a, 0xc5, 0xc3, 0x7a, 0x92, 0xbd, 0x62, 0xc0, 0xa9,
+ 0x98, 0xce, 0x8b, 0x22, 0x52, 0x9a, 0x2d, 0xce, 0xd2, 0x01, 0x50, 0xac,
+ 0xb9, 0xfc, 0xaa, 0xb1, 0xd4, 0x92, 0x76, 0x8e, 0xf1, 0x4e, 0x9d, 0x17,
+ 0x10, 0xf4, 0xc4, 0x6d, 0x45, 0x66, 0x2a, 0x43, 0x97, 0x26, 0xbd, 0x4e,
+ 0xc1, 0x57, 0xe3, 0x36, 0x40, 0x0f, 0x82, 0x1d, 0xf2, 0x7c, 0x28, 0xbd,
+ 0xa1, 0xf2, 0x56, 0x91,
+};
+static const struct drbg_kat_no_reseed kat1357_t = {
+ 6, kat1357_entropyin, kat1357_nonce, kat1357_persstr,
+ kat1357_addin0, kat1357_addin1, kat1357_retbits
+};
+static const struct drbg_kat kat1357 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1357_t
+};
+
+static const unsigned char kat1358_entropyin[] = {
+ 0xe7, 0xf7, 0x05, 0xa3, 0x87, 0x5c, 0xd6, 0x00, 0x7f, 0x28, 0xd5, 0x26,
+ 0xf2, 0xd9, 0xdb, 0xfb, 0x36, 0xfd, 0xea, 0x2e, 0xa6, 0x18, 0x1e, 0xa5,
+ 0xb7, 0x37, 0xcd, 0x77, 0x8b, 0x53, 0xff, 0xe1, 0x5a, 0x43, 0xd7, 0xfa,
+ 0x95, 0x8d, 0xd0, 0x70, 0x45, 0xef, 0x53, 0xbe, 0x08, 0x09, 0xac, 0x00,
+};
+static const unsigned char kat1358_nonce[] = {0};
+static const unsigned char kat1358_persstr[] = {
+ 0x6a, 0x74, 0x3b, 0xea, 0xc5, 0x19, 0xf6, 0xfd, 0x67, 0xc9, 0xb5, 0xe5,
+ 0x78, 0xa0, 0x66, 0x22, 0x1c, 0x20, 0x46, 0xb8, 0x31, 0x4f, 0x98, 0x77,
+ 0xa9, 0x6e, 0x66, 0x7c, 0x35, 0x4b, 0xca, 0xb0, 0x1e, 0xd5, 0xe6, 0xda,
+ 0xb1, 0xaf, 0xb1, 0x1f, 0x2c, 0xe0, 0x35, 0x87, 0x8e, 0x14, 0x58, 0x67,
+};
+static const unsigned char kat1358_addin0[] = {0};
+static const unsigned char kat1358_addin1[] = {0};
+static const unsigned char kat1358_retbits[] = {
+ 0x7e, 0x3d, 0x3c, 0x54, 0x8c, 0xad, 0x22, 0xeb, 0x9a, 0xfe, 0x4f, 0x79,
+ 0x8a, 0x85, 0x34, 0x6a, 0x61, 0x1b, 0x08, 0xe9, 0x30, 0xfc, 0xb3, 0x3b,
+ 0x46, 0xe7, 0x67, 0x02, 0x0e, 0xb8, 0x96, 0xb2, 0xc9, 0x14, 0xc0, 0x44,
+ 0x8e, 0x17, 0x55, 0x61, 0x5e, 0xa2, 0xfe, 0xce, 0x6c, 0x98, 0xca, 0x8e,
+ 0xd1, 0x75, 0x17, 0x77, 0xc0, 0x56, 0xf3, 0x2c, 0xb6, 0xc1, 0x1a, 0x72,
+ 0xb3, 0xff, 0x50, 0xf3,
+};
+static const struct drbg_kat_no_reseed kat1358_t = {
+ 7, kat1358_entropyin, kat1358_nonce, kat1358_persstr,
+ kat1358_addin0, kat1358_addin1, kat1358_retbits
+};
+static const struct drbg_kat kat1358 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1358_t
+};
+
+static const unsigned char kat1359_entropyin[] = {
+ 0x8f, 0xa5, 0x0b, 0x4f, 0x91, 0x94, 0x30, 0x6e, 0xe6, 0xe4, 0xd7, 0xde,
+ 0x35, 0x61, 0x55, 0x3d, 0x4a, 0x98, 0xbd, 0xce, 0x2c, 0x17, 0xfe, 0xe3,
+ 0x46, 0xd6, 0xc1, 0x77, 0x98, 0x3e, 0xb3, 0x90, 0xa9, 0x03, 0x1b, 0xb8,
+ 0x8d, 0x82, 0xe1, 0x05, 0xc7, 0x3f, 0xa7, 0x16, 0xec, 0x40, 0xfa, 0x3a,
+};
+static const unsigned char kat1359_nonce[] = {0};
+static const unsigned char kat1359_persstr[] = {
+ 0x1e, 0xfe, 0xe8, 0xb7, 0x66, 0x43, 0xd4, 0xfa, 0x2d, 0x34, 0xd0, 0x76,
+ 0x1d, 0x29, 0x24, 0x4b, 0x42, 0x68, 0x91, 0x7b, 0x57, 0x0e, 0xef, 0x2a,
+ 0x95, 0x8e, 0xc6, 0x8d, 0x9e, 0xfa, 0x07, 0x1e, 0xc7, 0x96, 0xb6, 0x29,
+ 0x91, 0x34, 0x3a, 0x43, 0x03, 0xa0, 0xb9, 0xe8, 0x30, 0xc3, 0x48, 0x39,
+};
+static const unsigned char kat1359_addin0[] = {0};
+static const unsigned char kat1359_addin1[] = {0};
+static const unsigned char kat1359_retbits[] = {
+ 0x2c, 0x8e, 0x0d, 0xc8, 0x9b, 0x8f, 0xa1, 0xa0, 0x4e, 0x85, 0x31, 0x0e,
+ 0xd0, 0xb9, 0x5d, 0xf6, 0x7e, 0x65, 0xee, 0x03, 0x7b, 0x3a, 0x8a, 0xfc,
+ 0x55, 0xde, 0x18, 0x0c, 0x20, 0x7f, 0x19, 0xb7, 0x56, 0x9f, 0x2c, 0x95,
+ 0x2d, 0x0b, 0xfa, 0xdb, 0x78, 0x07, 0x22, 0x50, 0x38, 0xd7, 0x59, 0xff,
+ 0xd9, 0x99, 0x1a, 0xed, 0x1e, 0xef, 0x56, 0xdb, 0x14, 0xed, 0xb8, 0x81,
+ 0xbb, 0xb7, 0xc0, 0x33,
+};
+static const struct drbg_kat_no_reseed kat1359_t = {
+ 8, kat1359_entropyin, kat1359_nonce, kat1359_persstr,
+ kat1359_addin0, kat1359_addin1, kat1359_retbits
+};
+static const struct drbg_kat kat1359 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1359_t
+};
+
+static const unsigned char kat1360_entropyin[] = {
+ 0x3b, 0x22, 0x1d, 0x43, 0x7c, 0xa1, 0xd9, 0xbd, 0x91, 0x5e, 0xa8, 0x69,
+ 0xa9, 0x7c, 0xad, 0x87, 0x54, 0x1f, 0x80, 0x21, 0xf2, 0xd1, 0xd0, 0x33,
+ 0x18, 0xa1, 0x1e, 0x08, 0xc5, 0x67, 0xa9, 0xbb, 0x9c, 0x9d, 0xd0, 0x74,
+ 0xca, 0x08, 0x73, 0xe8, 0x9c, 0x1d, 0x6b, 0x7d, 0x88, 0x16, 0x57, 0xf7,
+};
+static const unsigned char kat1360_nonce[] = {0};
+static const unsigned char kat1360_persstr[] = {
+ 0x64, 0x29, 0xf3, 0x84, 0xa7, 0x53, 0x54, 0x9d, 0x2a, 0x22, 0xb1, 0xb0,
+ 0x30, 0xdc, 0x82, 0x08, 0xb0, 0x39, 0x1d, 0x62, 0x90, 0x70, 0xa8, 0x56,
+ 0x40, 0xfd, 0x1d, 0xc0, 0x92, 0xba, 0x87, 0xfd, 0xe2, 0xcb, 0x46, 0xc6,
+ 0x9f, 0xf2, 0xc6, 0x4d, 0xbb, 0xb3, 0x2f, 0xea, 0x11, 0x36, 0x33, 0x6d,
+};
+static const unsigned char kat1360_addin0[] = {0};
+static const unsigned char kat1360_addin1[] = {0};
+static const unsigned char kat1360_retbits[] = {
+ 0xe6, 0x54, 0xd0, 0x4b, 0x43, 0xd7, 0xbd, 0xcc, 0x64, 0x36, 0x34, 0x7d,
+ 0xe9, 0x1a, 0x72, 0x6c, 0xd6, 0x26, 0x8b, 0x28, 0xcc, 0xdc, 0xb9, 0x30,
+ 0xb6, 0x65, 0xfe, 0x9e, 0xf1, 0x65, 0x4e, 0xe3, 0x1b, 0x83, 0xbd, 0x3d,
+ 0x92, 0x30, 0x00, 0xc7, 0x3e, 0xc7, 0xc7, 0x1f, 0x81, 0x18, 0xd2, 0x03,
+ 0xcf, 0x13, 0x1b, 0x8b, 0x16, 0xd2, 0x05, 0xe9, 0x51, 0x80, 0x72, 0x30,
+ 0xab, 0x44, 0x88, 0xe1,
+};
+static const struct drbg_kat_no_reseed kat1360_t = {
+ 9, kat1360_entropyin, kat1360_nonce, kat1360_persstr,
+ kat1360_addin0, kat1360_addin1, kat1360_retbits
+};
+static const struct drbg_kat kat1360 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1360_t
+};
+
+static const unsigned char kat1361_entropyin[] = {
+ 0xaa, 0x35, 0x05, 0xf5, 0x6a, 0x23, 0x53, 0xc9, 0x77, 0x97, 0xf0, 0x04,
+ 0xfb, 0xab, 0x55, 0x60, 0xf9, 0x50, 0x33, 0xa7, 0x4c, 0xcb, 0x58, 0x41,
+ 0x08, 0x7d, 0x8c, 0x23, 0x35, 0xde, 0xed, 0x81, 0x99, 0x45, 0xf6, 0xe2,
+ 0x6e, 0xb2, 0xae, 0x1f, 0x86, 0x0d, 0x5e, 0xa2, 0x55, 0x74, 0xb9, 0xe0,
+};
+static const unsigned char kat1361_nonce[] = {0};
+static const unsigned char kat1361_persstr[] = {
+ 0x95, 0x2f, 0xda, 0x2a, 0xfa, 0x92, 0x57, 0xb6, 0xbc, 0x0c, 0xe0, 0x8d,
+ 0xd1, 0x71, 0x27, 0xe8, 0x5b, 0xcf, 0xbb, 0xf5, 0x15, 0x95, 0x8e, 0x2e,
+ 0x1e, 0x09, 0xa5, 0x33, 0x0e, 0xf8, 0xdc, 0x78, 0xfe, 0x7c, 0x9a, 0xad,
+ 0x42, 0xd5, 0x47, 0x1e, 0x84, 0xc6, 0xcc, 0x74, 0x8b, 0x1b, 0x37, 0xbe,
+};
+static const unsigned char kat1361_addin0[] = {0};
+static const unsigned char kat1361_addin1[] = {0};
+static const unsigned char kat1361_retbits[] = {
+ 0x96, 0x65, 0x03, 0xf5, 0xf8, 0x5f, 0x50, 0xf9, 0x4e, 0x18, 0x85, 0xca,
+ 0x2a, 0x32, 0x03, 0x4a, 0xc1, 0x95, 0xa8, 0x19, 0x9c, 0x12, 0x2b, 0x71,
+ 0xe2, 0x68, 0xb2, 0xd3, 0x04, 0xc8, 0xcf, 0x7a, 0xf8, 0xd1, 0xd2, 0x7c,
+ 0xeb, 0x2a, 0x46, 0xbd, 0xa7, 0x0a, 0x1e, 0x5f, 0xfa, 0xc0, 0xa6, 0x52,
+ 0x10, 0x89, 0x8b, 0x27, 0x4a, 0x5b, 0xa5, 0x36, 0xee, 0x07, 0xa2, 0x08,
+ 0x63, 0xa0, 0x11, 0x52,
+};
+static const struct drbg_kat_no_reseed kat1361_t = {
+ 10, kat1361_entropyin, kat1361_nonce, kat1361_persstr,
+ kat1361_addin0, kat1361_addin1, kat1361_retbits
+};
+static const struct drbg_kat kat1361 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1361_t
+};
+
+static const unsigned char kat1362_entropyin[] = {
+ 0x15, 0x27, 0x5e, 0x31, 0xbe, 0x7f, 0x9e, 0x27, 0x0c, 0x4e, 0x4b, 0x26,
+ 0xe8, 0xea, 0x85, 0x0f, 0x31, 0xfd, 0xf9, 0x40, 0x35, 0x9e, 0x47, 0xe6,
+ 0x39, 0xd9, 0x8e, 0x86, 0x86, 0x0a, 0x6a, 0x95, 0x39, 0x01, 0x69, 0x11,
+ 0xf1, 0x9d, 0x39, 0x20, 0x8e, 0xdc, 0xb8, 0x99, 0xf4, 0x55, 0x67, 0x7b,
+};
+static const unsigned char kat1362_nonce[] = {0};
+static const unsigned char kat1362_persstr[] = {
+ 0x2c, 0x1f, 0x62, 0x03, 0x4b, 0x31, 0x46, 0x00, 0xef, 0x44, 0xe0, 0x40,
+ 0x22, 0x07, 0xaa, 0xbf, 0xd6, 0x17, 0xbc, 0x3d, 0x08, 0xc3, 0xb3, 0x9a,
+ 0x90, 0xb3, 0x84, 0x77, 0x5f, 0x02, 0x18, 0x1b, 0x9b, 0x41, 0x03, 0x2e,
+ 0x4a, 0xb5, 0xd3, 0x2d, 0xd2, 0xab, 0x28, 0xcd, 0x14, 0xa1, 0x73, 0x68,
+};
+static const unsigned char kat1362_addin0[] = {0};
+static const unsigned char kat1362_addin1[] = {0};
+static const unsigned char kat1362_retbits[] = {
+ 0x60, 0x6b, 0xe9, 0xe1, 0x42, 0x64, 0xc0, 0x1a, 0xfd, 0xa7, 0xaa, 0x71,
+ 0xe3, 0xc2, 0x34, 0xcc, 0x06, 0x8e, 0xe6, 0x9e, 0x98, 0x7a, 0x83, 0x8a,
+ 0x21, 0x40, 0xdf, 0x02, 0x8b, 0xfe, 0x74, 0xf8, 0x18, 0x8a, 0xe4, 0x41,
+ 0x8f, 0x10, 0xfd, 0x09, 0x9b, 0x8b, 0x99, 0x4a, 0x27, 0x0e, 0x23, 0x9a,
+ 0x52, 0x6f, 0x2d, 0x03, 0xb3, 0x05, 0x99, 0x65, 0x08, 0x46, 0x8c, 0x07,
+ 0xd4, 0x4b, 0xf5, 0x4c,
+};
+static const struct drbg_kat_no_reseed kat1362_t = {
+ 11, kat1362_entropyin, kat1362_nonce, kat1362_persstr,
+ kat1362_addin0, kat1362_addin1, kat1362_retbits
+};
+static const struct drbg_kat kat1362 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1362_t
+};
+
+static const unsigned char kat1363_entropyin[] = {
+ 0x31, 0x25, 0xc3, 0xea, 0xce, 0x58, 0xb3, 0x49, 0x18, 0x6e, 0x70, 0xed,
+ 0xf8, 0x25, 0xc5, 0x15, 0x8f, 0x19, 0xd5, 0x3d, 0x55, 0x6a, 0x57, 0x37,
+ 0x08, 0x8c, 0x72, 0x3d, 0x84, 0xed, 0xfc, 0x62, 0x7e, 0xdf, 0x2e, 0xae,
+ 0x60, 0x2d, 0xfc, 0xe5, 0xa9, 0xad, 0x35, 0xe0, 0xb9, 0x5f, 0x40, 0x96,
+};
+static const unsigned char kat1363_nonce[] = {0};
+static const unsigned char kat1363_persstr[] = {
+ 0xbe, 0x9f, 0xe1, 0xde, 0x0b, 0x44, 0x81, 0x47, 0xc4, 0x9b, 0x41, 0x2d,
+ 0x8d, 0x72, 0x2f, 0xa0, 0xd6, 0xb6, 0xcb, 0x99, 0x8f, 0xf7, 0x7e, 0xbb,
+ 0xe2, 0x39, 0x84, 0x82, 0xb0, 0xf9, 0xe8, 0x9b, 0x10, 0xe8, 0xe5, 0x02,
+ 0x6f, 0xcc, 0x8a, 0x2f, 0x4b, 0x9f, 0xaa, 0x33, 0x8c, 0x45, 0xf8, 0xcd,
+};
+static const unsigned char kat1363_addin0[] = {0};
+static const unsigned char kat1363_addin1[] = {0};
+static const unsigned char kat1363_retbits[] = {
+ 0x5b, 0x6a, 0x62, 0xc7, 0x0e, 0x98, 0x51, 0x70, 0x28, 0xb1, 0x78, 0x49,
+ 0x78, 0xbf, 0x1f, 0x76, 0x42, 0xa0, 0x5f, 0xd5, 0x86, 0x68, 0x4a, 0x4f,
+ 0xda, 0x2c, 0x98, 0xc0, 0xb8, 0xb6, 0x98, 0x61, 0xb0, 0xd6, 0x5a, 0x4f,
+ 0x96, 0x06, 0x10, 0x61, 0x87, 0x4c, 0xdc, 0xd5, 0xd9, 0x0d, 0xc0, 0xe9,
+ 0xc7, 0x4b, 0x04, 0x86, 0x41, 0x28, 0x0f, 0xd7, 0xf6, 0x89, 0x24, 0x43,
+ 0x92, 0xf2, 0x0d, 0x0a,
+};
+static const struct drbg_kat_no_reseed kat1363_t = {
+ 12, kat1363_entropyin, kat1363_nonce, kat1363_persstr,
+ kat1363_addin0, kat1363_addin1, kat1363_retbits
+};
+static const struct drbg_kat kat1363 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1363_t
+};
+
+static const unsigned char kat1364_entropyin[] = {
+ 0x12, 0x13, 0xf4, 0x66, 0x1f, 0x4c, 0xd3, 0x63, 0xbb, 0xf1, 0x6f, 0x5b,
+ 0xa4, 0xce, 0x4f, 0x33, 0x02, 0x96, 0x17, 0x97, 0x77, 0x2f, 0xc8, 0xe4,
+ 0x12, 0xc2, 0x61, 0x0b, 0x4b, 0x42, 0xd4, 0xcd, 0xeb, 0x14, 0xed, 0x19,
+ 0xb5, 0x0b, 0x6a, 0xd9, 0x68, 0x62, 0x51, 0x69, 0xb4, 0xeb, 0x5d, 0xec,
+};
+static const unsigned char kat1364_nonce[] = {0};
+static const unsigned char kat1364_persstr[] = {
+ 0x98, 0xa1, 0xc8, 0x14, 0xae, 0xc3, 0xdf, 0x5b, 0xb4, 0xfb, 0x17, 0x77,
+ 0x8d, 0x58, 0xe7, 0x88, 0x4a, 0x69, 0xde, 0xa0, 0x9a, 0x83, 0xbe, 0x26,
+ 0x43, 0xd1, 0x69, 0xc1, 0x50, 0xd0, 0x6a, 0x9c, 0xdd, 0x47, 0x7e, 0x20,
+ 0x62, 0x39, 0x93, 0xc7, 0x50, 0x5e, 0xa1, 0x04, 0xb6, 0x2c, 0x87, 0x53,
+};
+static const unsigned char kat1364_addin0[] = {0};
+static const unsigned char kat1364_addin1[] = {0};
+static const unsigned char kat1364_retbits[] = {
+ 0x3c, 0x0f, 0xf2, 0xad, 0x45, 0x58, 0x58, 0x5e, 0xce, 0x97, 0x43, 0x44,
+ 0xb5, 0xad, 0x70, 0x45, 0xa0, 0xfc, 0xa9, 0xef, 0x1f, 0x25, 0xe4, 0x25,
+ 0x1d, 0xc8, 0x00, 0xd4, 0x1a, 0xbc, 0x3e, 0xd0, 0x0c, 0x3a, 0xda, 0xb5,
+ 0xdb, 0xa1, 0x41, 0xfb, 0x1f, 0x95, 0xc3, 0xc2, 0x17, 0x32, 0xd4, 0xb6,
+ 0x3c, 0x19, 0x2f, 0xb4, 0x92, 0x4c, 0x6f, 0x7f, 0x98, 0x4b, 0xaa, 0x88,
+ 0xe4, 0xdc, 0x90, 0x91,
+};
+static const struct drbg_kat_no_reseed kat1364_t = {
+ 13, kat1364_entropyin, kat1364_nonce, kat1364_persstr,
+ kat1364_addin0, kat1364_addin1, kat1364_retbits
+};
+static const struct drbg_kat kat1364 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1364_t
+};
+
+static const unsigned char kat1365_entropyin[] = {
+ 0x40, 0x9b, 0xc3, 0x72, 0xb8, 0x73, 0x8c, 0x80, 0xac, 0x35, 0x72, 0x1b,
+ 0xbb, 0x8e, 0x80, 0x6d, 0xdc, 0x93, 0xe8, 0x16, 0xc8, 0xfa, 0xb9, 0x8d,
+ 0x1d, 0x0f, 0x2a, 0x05, 0x3f, 0x95, 0x96, 0x01, 0x66, 0x70, 0x93, 0x80,
+ 0x69, 0x5b, 0x0e, 0x8a, 0x54, 0x8f, 0xe4, 0x8e, 0x4c, 0x12, 0xdc, 0x01,
+};
+static const unsigned char kat1365_nonce[] = {0};
+static const unsigned char kat1365_persstr[] = {
+ 0x97, 0x5d, 0xa7, 0x43, 0x9d, 0xf9, 0xa5, 0xb7, 0x6f, 0x8a, 0xe5, 0x20,
+ 0x1d, 0xa3, 0x56, 0x92, 0xfd, 0x46, 0xd2, 0x77, 0x78, 0x7f, 0x8a, 0x73,
+ 0xb0, 0x82, 0x01, 0xe6, 0x54, 0x7b, 0xa7, 0x2d, 0xe2, 0x6b, 0xa7, 0x72,
+ 0x5a, 0xd4, 0x4a, 0x11, 0xf7, 0x42, 0xe6, 0xc2, 0xb5, 0x7c, 0x0e, 0x9f,
+};
+static const unsigned char kat1365_addin0[] = {0};
+static const unsigned char kat1365_addin1[] = {0};
+static const unsigned char kat1365_retbits[] = {
+ 0x01, 0xfe, 0x7c, 0x18, 0xb8, 0x5e, 0xde, 0x51, 0x97, 0x40, 0xed, 0x40,
+ 0x68, 0xaf, 0x24, 0xb4, 0xba, 0xaa, 0xa7, 0xd7, 0x27, 0xb0, 0x52, 0x41,
+ 0xaf, 0x48, 0x1e, 0xc8, 0x43, 0xc2, 0x0b, 0xfc, 0xe4, 0x1e, 0x4b, 0xb1,
+ 0x31, 0xcf, 0x03, 0xa5, 0x04, 0xae, 0xcd, 0x54, 0x09, 0xd0, 0x3f, 0x6b,
+ 0x5b, 0x84, 0xd2, 0x2f, 0x0e, 0x10, 0x42, 0xb6, 0x6e, 0x5d, 0x99, 0xd4,
+ 0x33, 0x97, 0x42, 0xfd,
+};
+static const struct drbg_kat_no_reseed kat1365_t = {
+ 14, kat1365_entropyin, kat1365_nonce, kat1365_persstr,
+ kat1365_addin0, kat1365_addin1, kat1365_retbits
+};
+static const struct drbg_kat kat1365 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1365_t
+};
+
+static const unsigned char kat1366_entropyin[] = {
+ 0xce, 0x8a, 0xa7, 0x44, 0x79, 0x68, 0x98, 0x91, 0x1e, 0xd6, 0x77, 0x4d,
+ 0x06, 0xdd, 0x45, 0x29, 0x8e, 0xe7, 0x40, 0x3f, 0x08, 0x40, 0x78, 0xbe,
+ 0x9b, 0x50, 0x2f, 0x4d, 0xf8, 0x12, 0x8c, 0x71, 0xcf, 0xb6, 0xde, 0x3d,
+ 0xde, 0x92, 0xf5, 0x41, 0x9a, 0x44, 0x5f, 0x55, 0x25, 0x9d, 0x23, 0x02,
+};
+static const unsigned char kat1366_nonce[] = {0};
+static const unsigned char kat1366_persstr[] = {
+ 0xf2, 0x75, 0xe2, 0xc6, 0xc2, 0xa5, 0xb9, 0x0c, 0xd5, 0xb8, 0xec, 0xf0,
+ 0x26, 0x94, 0xf8, 0xca, 0x77, 0xd3, 0xbf, 0xd6, 0x2b, 0xca, 0x6b, 0xae,
+ 0x33, 0xe3, 0xb7, 0xa0, 0x35, 0xc2, 0x1e, 0xf2, 0x09, 0x47, 0x10, 0x0f,
+ 0xa9, 0x36, 0xde, 0xf4, 0xa8, 0x60, 0x87, 0x88, 0xab, 0xf3, 0x4e, 0xcf,
+};
+static const unsigned char kat1366_addin0[] = {
+ 0x07, 0xa3, 0xa7, 0x81, 0xee, 0x4a, 0x17, 0xd1, 0x10, 0xba, 0x89, 0x64,
+ 0x38, 0xd3, 0x65, 0xda, 0x36, 0x4b, 0xbb, 0xeb, 0xee, 0x04, 0xc1, 0x89,
+ 0x2c, 0xc9, 0x3b, 0x59, 0xfc, 0xf3, 0x1a, 0xaa, 0x78, 0x0c, 0xb6, 0x64,
+ 0xb9, 0xb0, 0x54, 0xe4, 0x0a, 0x20, 0xb0, 0xdd, 0x43, 0x5a, 0x4e, 0x3a,
+};
+static const unsigned char kat1366_addin1[] = {
+ 0x4e, 0x17, 0xf0, 0x13, 0x80, 0x89, 0xdc, 0x31, 0xe1, 0xcd, 0xd3, 0x77,
+ 0xf1, 0xeb, 0x4c, 0xb4, 0xda, 0x47, 0x45, 0xe7, 0x98, 0x43, 0xf3, 0x60,
+ 0x82, 0xdb, 0xae, 0xd6, 0x92, 0x72, 0x34, 0xc6, 0x75, 0xa0, 0x61, 0x11,
+ 0x1d, 0x5f, 0xe9, 0x1b, 0x38, 0x3a, 0x8b, 0x4e, 0x3e, 0xcd, 0xb5, 0x9d,
+};
+static const unsigned char kat1366_retbits[] = {
+ 0xa0, 0xbd, 0x4e, 0xbc, 0x1f, 0x2e, 0x28, 0xe9, 0x59, 0x39, 0x82, 0xaf,
+ 0x69, 0x4a, 0xeb, 0x45, 0x43, 0x7c, 0x20, 0xf7, 0x88, 0x70, 0x90, 0xb9,
+ 0x47, 0xbe, 0x33, 0xfb, 0x8d, 0x62, 0x25, 0x5b, 0x2f, 0x3b, 0xe7, 0xd5,
+ 0xd6, 0x7e, 0x52, 0xf5, 0xe8, 0x26, 0x20, 0xeb, 0x40, 0xa3, 0xe1, 0x12,
+ 0xaf, 0x15, 0x93, 0xaa, 0xe5, 0xfa, 0x59, 0x2a, 0x16, 0x30, 0x96, 0x6f,
+ 0x8c, 0xa4, 0x55, 0xa7,
+};
+static const struct drbg_kat_no_reseed kat1366_t = {
+ 0, kat1366_entropyin, kat1366_nonce, kat1366_persstr,
+ kat1366_addin0, kat1366_addin1, kat1366_retbits
+};
+static const struct drbg_kat kat1366 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1366_t
+};
+
+static const unsigned char kat1367_entropyin[] = {
+ 0xc9, 0x32, 0x5a, 0x14, 0xbb, 0x47, 0x0f, 0xff, 0x0d, 0x68, 0x30, 0xa7,
+ 0x05, 0x8d, 0xb8, 0xb8, 0xad, 0x4b, 0xe7, 0x24, 0x81, 0x8d, 0xbb, 0x25,
+ 0xad, 0xf6, 0x6b, 0x00, 0x27, 0xa0, 0x2c, 0xa9, 0xeb, 0x4c, 0xe8, 0x5c,
+ 0x63, 0x4c, 0x5a, 0x48, 0x69, 0x49, 0xb1, 0xef, 0x9c, 0x02, 0xa5, 0xc2,
+};
+static const unsigned char kat1367_nonce[] = {0};
+static const unsigned char kat1367_persstr[] = {
+ 0x45, 0xce, 0xeb, 0x6b, 0x0f, 0xc3, 0xc1, 0xe4, 0xa9, 0x77, 0x80, 0xd4,
+ 0xf8, 0x6d, 0xac, 0x9a, 0x42, 0xde, 0x89, 0x9c, 0xdc, 0x52, 0xbf, 0x26,
+ 0x85, 0xbb, 0xcc, 0x8d, 0xe9, 0x52, 0x6f, 0xbb, 0x4b, 0xb5, 0x83, 0x9e,
+ 0x00, 0xb3, 0x8d, 0xe8, 0x64, 0x15, 0x2c, 0x32, 0x99, 0x0a, 0xff, 0x7e,
+};
+static const unsigned char kat1367_addin0[] = {
+ 0x2f, 0xa1, 0x01, 0x8c, 0xcc, 0x64, 0x2b, 0x03, 0x46, 0xb2, 0x58, 0x7a,
+ 0x43, 0x7d, 0xf1, 0xe8, 0xb0, 0xb2, 0x87, 0x1a, 0x46, 0x93, 0x10, 0xbe,
+ 0x29, 0xbd, 0x1f, 0xea, 0x86, 0x77, 0xb3, 0x33, 0x01, 0x88, 0x53, 0x8b,
+ 0x5a, 0xb7, 0xb8, 0x0d, 0x22, 0x82, 0x0c, 0xe2, 0xb1, 0xe8, 0xa6, 0x25,
+};
+static const unsigned char kat1367_addin1[] = {
+ 0x13, 0xff, 0x66, 0xa6, 0xcd, 0xba, 0x89, 0xdc, 0x7f, 0xab, 0x39, 0x06,
+ 0x3b, 0x6e, 0x02, 0x67, 0x1f, 0x6f, 0x3c, 0x35, 0x57, 0x15, 0xfa, 0x63,
+ 0x20, 0x59, 0x9f, 0x2e, 0x6a, 0x00, 0x13, 0x2e, 0x43, 0x30, 0xf1, 0x22,
+ 0x9c, 0xe2, 0x42, 0xc0, 0xfd, 0xb9, 0x0c, 0xa2, 0xa9, 0x1c, 0xee, 0x13,
+};
+static const unsigned char kat1367_retbits[] = {
+ 0x7d, 0x5a, 0x9a, 0x20, 0x4f, 0x28, 0x8e, 0xb8, 0xc0, 0x26, 0x04, 0x66,
+ 0x8c, 0x1e, 0x61, 0xe2, 0xa6, 0x51, 0x91, 0xed, 0x98, 0xb5, 0x97, 0x07,
+ 0xa5, 0x76, 0xd2, 0x73, 0xde, 0x11, 0xba, 0x46, 0x35, 0xd6, 0xe2, 0xb7,
+ 0x21, 0x24, 0x36, 0xf4, 0x6b, 0x19, 0xea, 0xa0, 0x2b, 0xb9, 0x73, 0x84,
+ 0x15, 0x8f, 0x7e, 0x80, 0x07, 0x42, 0xc1, 0x9a, 0xdc, 0x86, 0x1b, 0x10,
+ 0x15, 0x5b, 0x88, 0x35,
+};
+static const struct drbg_kat_no_reseed kat1367_t = {
+ 1, kat1367_entropyin, kat1367_nonce, kat1367_persstr,
+ kat1367_addin0, kat1367_addin1, kat1367_retbits
+};
+static const struct drbg_kat kat1367 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1367_t
+};
+
+static const unsigned char kat1368_entropyin[] = {
+ 0x8f, 0xae, 0xe8, 0x60, 0x70, 0x86, 0x43, 0x2d, 0xf0, 0x86, 0x81, 0x34,
+ 0x27, 0x69, 0x7f, 0xd2, 0x27, 0x74, 0xdc, 0xac, 0x0a, 0xed, 0xb9, 0x1c,
+ 0x7a, 0x5a, 0x75, 0xe3, 0xd8, 0x9d, 0x94, 0x18, 0x9d, 0x80, 0x9f, 0xf7,
+ 0x11, 0x11, 0x73, 0x5e, 0x25, 0xbc, 0xe8, 0xc1, 0x24, 0x63, 0x9c, 0x4d,
+};
+static const unsigned char kat1368_nonce[] = {0};
+static const unsigned char kat1368_persstr[] = {
+ 0x2b, 0x06, 0x97, 0xb8, 0x1e, 0x98, 0xa3, 0x5a, 0x51, 0xb3, 0x4b, 0xb4,
+ 0xdb, 0xca, 0xee, 0xaa, 0xed, 0x08, 0x17, 0xbd, 0x3d, 0x01, 0x54, 0x31,
+ 0x2d, 0xde, 0x12, 0x58, 0x0b, 0xa8, 0x40, 0x12, 0x8b, 0x8a, 0xbf, 0xff,
+ 0x3b, 0x92, 0xde, 0x96, 0xa2, 0x9b, 0xe4, 0x0b, 0x08, 0xca, 0xd4, 0x81,
+};
+static const unsigned char kat1368_addin0[] = {
+ 0x63, 0xd8, 0x41, 0xc3, 0xc7, 0x5e, 0x76, 0x98, 0x60, 0x9b, 0x8a, 0x06,
+ 0x12, 0x40, 0x4f, 0xa0, 0xf6, 0xdc, 0xdd, 0xd3, 0x93, 0xb4, 0x60, 0xe9,
+ 0x74, 0xf4, 0x0e, 0x3b, 0x7f, 0x03, 0x3f, 0x4e, 0xae, 0xbc, 0x3e, 0x90,
+ 0xaf, 0x90, 0x5f, 0x70, 0x4a, 0x81, 0x0f, 0x2d, 0xcb, 0xa3, 0x2d, 0x7a,
+};
+static const unsigned char kat1368_addin1[] = {
+ 0xfd, 0xcb, 0x88, 0x7b, 0xed, 0x67, 0x36, 0xab, 0xa7, 0xbc, 0xc3, 0xd1,
+ 0x6d, 0x7f, 0x89, 0x4b, 0x3e, 0x85, 0x6d, 0x96, 0xd7, 0xb1, 0xf5, 0x83,
+ 0x39, 0xc1, 0xfe, 0xd9, 0xbf, 0x3d, 0x4f, 0xc4, 0x53, 0xfe, 0xb7, 0x3d,
+ 0x49, 0x14, 0xa2, 0xd9, 0x0b, 0x2a, 0x62, 0xe0, 0xc3, 0xb1, 0x33, 0xfb,
+};
+static const unsigned char kat1368_retbits[] = {
+ 0x50, 0xf4, 0x4f, 0xbb, 0xea, 0xa7, 0xbf, 0x65, 0xff, 0xa6, 0x0f, 0x5d,
+ 0xbd, 0x44, 0x25, 0x67, 0xe0, 0x5b, 0xd8, 0x76, 0x3b, 0xe6, 0xf4, 0x83,
+ 0x4b, 0xf0, 0xe0, 0xe6, 0x1f, 0x7f, 0x79, 0x15, 0xb4, 0x77, 0x60, 0x93,
+ 0x16, 0x01, 0xdd, 0xcb, 0xe5, 0x50, 0x96, 0x2c, 0x5d, 0x5a, 0xc2, 0x43,
+ 0xbd, 0xe5, 0x9a, 0xb1, 0xb0, 0xca, 0x7f, 0x19, 0x66, 0xb4, 0xbd, 0x2e,
+ 0x83, 0x75, 0xad, 0x0f,
+};
+static const struct drbg_kat_no_reseed kat1368_t = {
+ 2, kat1368_entropyin, kat1368_nonce, kat1368_persstr,
+ kat1368_addin0, kat1368_addin1, kat1368_retbits
+};
+static const struct drbg_kat kat1368 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1368_t
+};
+
+static const unsigned char kat1369_entropyin[] = {
+ 0x6b, 0xed, 0x86, 0x1a, 0x20, 0x1e, 0x45, 0x9b, 0x08, 0x6f, 0xe0, 0xfc,
+ 0x40, 0x84, 0xda, 0xf6, 0x2b, 0xbe, 0xcc, 0x73, 0x7d, 0xce, 0x72, 0x1d,
+ 0xc4, 0x71, 0xed, 0x2a, 0xfd, 0x87, 0x37, 0x8e, 0x7a, 0x59, 0xde, 0x2e,
+ 0xcd, 0xef, 0x21, 0x54, 0xa3, 0x0d, 0xf2, 0xfa, 0xbd, 0x51, 0xd5, 0x60,
+};
+static const unsigned char kat1369_nonce[] = {0};
+static const unsigned char kat1369_persstr[] = {
+ 0x26, 0x7b, 0x4e, 0xd1, 0xef, 0xab, 0x86, 0xab, 0x54, 0x59, 0xad, 0xed,
+ 0x62, 0x81, 0x10, 0x71, 0xdf, 0x41, 0x3c, 0x1c, 0xbf, 0x2b, 0xb2, 0xa1,
+ 0x04, 0x95, 0x38, 0x39, 0x9e, 0x13, 0xcb, 0xfd, 0xf8, 0xfb, 0x87, 0x0f,
+ 0x3b, 0x17, 0x84, 0xcf, 0xaf, 0x91, 0x6e, 0xb3, 0x2b, 0x46, 0xfd, 0xc5,
+};
+static const unsigned char kat1369_addin0[] = {
+ 0x10, 0x2d, 0x2b, 0x70, 0x59, 0x7d, 0x63, 0xa4, 0x42, 0x56, 0x23, 0xdb,
+ 0xb3, 0x0c, 0xe5, 0xf7, 0xc7, 0xe1, 0x14, 0x06, 0x47, 0x98, 0x2a, 0x4a,
+ 0x17, 0x8d, 0xc7, 0x1e, 0x7f, 0xa1, 0xfb, 0x33, 0xe2, 0xd6, 0x1e, 0xae,
+ 0x0f, 0x0e, 0x0a, 0xa1, 0x01, 0x3b, 0x20, 0xbd, 0x59, 0x33, 0x47, 0x59,
+};
+static const unsigned char kat1369_addin1[] = {
+ 0x3c, 0x8b, 0x81, 0xbf, 0xac, 0x10, 0x99, 0xc5, 0x79, 0xf3, 0x06, 0x7d,
+ 0x01, 0x8b, 0xf2, 0xdd, 0x34, 0xe2, 0x68, 0xe2, 0xce, 0x57, 0x89, 0x63,
+ 0xc0, 0x1d, 0x38, 0xb5, 0x45, 0x69, 0xe4, 0xe7, 0xff, 0xd2, 0x12, 0xcf,
+ 0x0d, 0x7f, 0x43, 0x60, 0x12, 0x45, 0xe6, 0x51, 0x3c, 0x03, 0x4a, 0x9a,
+};
+static const unsigned char kat1369_retbits[] = {
+ 0x3a, 0xfb, 0xfe, 0x4f, 0xcd, 0xc8, 0xf5, 0xdb, 0xf9, 0xbe, 0x2f, 0x23,
+ 0xf5, 0x7f, 0x25, 0xc6, 0xcd, 0x06, 0x1a, 0xe5, 0x92, 0xbf, 0xde, 0xa8,
+ 0xa7, 0xea, 0xb9, 0x42, 0xa4, 0x0f, 0xea, 0x75, 0xd2, 0xa9, 0x38, 0x86,
+ 0x06, 0xd6, 0x06, 0x2c, 0x41, 0x44, 0xed, 0x8e, 0x19, 0x7e, 0x15, 0x7e,
+ 0xd7, 0xfa, 0x76, 0xd3, 0xe8, 0x24, 0x53, 0x21, 0x2d, 0x1d, 0x16, 0x2f,
+ 0x55, 0x41, 0xe5, 0xaf,
+};
+static const struct drbg_kat_no_reseed kat1369_t = {
+ 3, kat1369_entropyin, kat1369_nonce, kat1369_persstr,
+ kat1369_addin0, kat1369_addin1, kat1369_retbits
+};
+static const struct drbg_kat kat1369 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1369_t
+};
+
+static const unsigned char kat1370_entropyin[] = {
+ 0xda, 0xe4, 0x10, 0x51, 0x05, 0x32, 0x6a, 0x25, 0xbf, 0xa8, 0xa1, 0x99,
+ 0x50, 0x2c, 0xc8, 0x79, 0xf6, 0x68, 0x92, 0x26, 0xf2, 0x69, 0x64, 0x9f,
+ 0xc4, 0x6c, 0x36, 0xa0, 0x25, 0xb4, 0x0c, 0xfe, 0x0f, 0x9a, 0x0e, 0x9c,
+ 0xb1, 0xcc, 0x18, 0x48, 0x03, 0x0e, 0x9b, 0x8b, 0xf2, 0x07, 0x18, 0xd3,
+};
+static const unsigned char kat1370_nonce[] = {0};
+static const unsigned char kat1370_persstr[] = {
+ 0x76, 0xe6, 0xb9, 0xe8, 0x48, 0xb0, 0x7d, 0xb7, 0xdc, 0x39, 0x78, 0xf4,
+ 0x56, 0x42, 0x4c, 0x21, 0xdc, 0xe6, 0xc0, 0x43, 0xfe, 0x9e, 0xc8, 0xdd,
+ 0x55, 0xe3, 0x4c, 0x17, 0x8b, 0x29, 0xdd, 0x97, 0x39, 0x65, 0x9b, 0x37,
+ 0xc1, 0xe0, 0xf4, 0x42, 0x00, 0xce, 0xed, 0x7f, 0xfe, 0x73, 0x1f, 0xf9,
+};
+static const unsigned char kat1370_addin0[] = {
+ 0xea, 0x26, 0xcd, 0x19, 0x5c, 0x9d, 0xb0, 0xcf, 0x8d, 0x95, 0xc6, 0x5a,
+ 0xea, 0x07, 0x81, 0x31, 0xbb, 0xbb, 0x9a, 0x83, 0xb3, 0xb7, 0x51, 0x1e,
+ 0x85, 0x22, 0xc3, 0x15, 0xa8, 0x77, 0x43, 0x8d, 0x0b, 0x85, 0xe1, 0x49,
+ 0x07, 0xaf, 0xb7, 0x1b, 0x3d, 0xd4, 0xa9, 0x32, 0x5d, 0x28, 0xfa, 0x78,
+};
+static const unsigned char kat1370_addin1[] = {
+ 0xca, 0x29, 0x88, 0x56, 0x63, 0x1a, 0xa2, 0x5a, 0xfd, 0x19, 0x22, 0xcd,
+ 0x57, 0xaa, 0x73, 0xf0, 0x3c, 0x6f, 0x0a, 0x3a, 0x07, 0xce, 0xe6, 0xab,
+ 0x06, 0x76, 0x92, 0x61, 0x05, 0xa0, 0x68, 0x16, 0x87, 0xda, 0xa2, 0x87,
+ 0x77, 0x14, 0x2c, 0x38, 0x06, 0x84, 0x96, 0x98, 0x86, 0x3e, 0xea, 0xf1,
+};
+static const unsigned char kat1370_retbits[] = {
+ 0x67, 0x8b, 0xc8, 0x6e, 0xe8, 0xc2, 0xc9, 0xb5, 0x7d, 0x3a, 0x4e, 0x27,
+ 0x41, 0x2a, 0x0e, 0xa8, 0xaa, 0xde, 0x79, 0x93, 0xd7, 0x87, 0x45, 0x2d,
+ 0x6e, 0xe7, 0x9f, 0x51, 0x96, 0x78, 0x81, 0x40, 0xf6, 0x83, 0x2e, 0x82,
+ 0x5d, 0x8a, 0xa3, 0x94, 0x34, 0x99, 0x47, 0x0f, 0xf1, 0x44, 0x94, 0xf5,
+ 0x02, 0x41, 0x39, 0x75, 0xc5, 0x4f, 0xfc, 0xf6, 0x50, 0xda, 0xa3, 0x32,
+ 0x50, 0x46, 0x88, 0x3f,
+};
+static const struct drbg_kat_no_reseed kat1370_t = {
+ 4, kat1370_entropyin, kat1370_nonce, kat1370_persstr,
+ kat1370_addin0, kat1370_addin1, kat1370_retbits
+};
+static const struct drbg_kat kat1370 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1370_t
+};
+
+static const unsigned char kat1371_entropyin[] = {
+ 0xbd, 0x9a, 0xa1, 0xfb, 0x14, 0xf2, 0x37, 0xae, 0xc0, 0x46, 0xdf, 0x3d,
+ 0x63, 0x20, 0xd4, 0x19, 0x22, 0x76, 0x79, 0x51, 0x6d, 0xeb, 0xd7, 0xcb,
+ 0x6a, 0x1e, 0x2a, 0xb8, 0xbe, 0x25, 0xb2, 0xda, 0x03, 0xdf, 0xd2, 0x18,
+ 0x5b, 0x9b, 0x4b, 0x6f, 0xa9, 0xae, 0x0b, 0xc7, 0xef, 0xff, 0x12, 0xd4,
+};
+static const unsigned char kat1371_nonce[] = {0};
+static const unsigned char kat1371_persstr[] = {
+ 0x76, 0xf9, 0xe1, 0x91, 0x1b, 0xdf, 0xfe, 0xe4, 0x9a, 0xf8, 0x02, 0x81,
+ 0xce, 0x3c, 0xbc, 0x40, 0xce, 0xe7, 0x6b, 0xf5, 0xef, 0xeb, 0xd9, 0xf0,
+ 0xc7, 0x1f, 0xc5, 0x15, 0xd1, 0x8d, 0xbf, 0x82, 0x04, 0x30, 0xd1, 0x18,
+ 0x36, 0xa0, 0x1b, 0x88, 0x70, 0x5d, 0xd9, 0x1a, 0x82, 0x78, 0xc2, 0xd3,
+};
+static const unsigned char kat1371_addin0[] = {
+ 0x38, 0x79, 0xcc, 0xe7, 0xb8, 0x94, 0xd8, 0x05, 0x2a, 0x8e, 0x69, 0xfa,
+ 0xdb, 0xc1, 0x54, 0xd0, 0xf1, 0xc5, 0x25, 0x39, 0xe1, 0xe0, 0x74, 0xdb,
+ 0x55, 0x75, 0xc5, 0xb0, 0x96, 0x70, 0xc5, 0x74, 0x8e, 0xd8, 0x0e, 0x7c,
+ 0x76, 0x55, 0x00, 0x5d, 0x77, 0xec, 0xb7, 0xc3, 0x20, 0xf6, 0x77, 0xb2,
+};
+static const unsigned char kat1371_addin1[] = {
+ 0xe9, 0x99, 0xc8, 0x1a, 0x8c, 0x14, 0x03, 0x92, 0x0e, 0xa3, 0x42, 0xf8,
+ 0xe0, 0xf8, 0xa8, 0xb6, 0xd7, 0xc1, 0x43, 0xd7, 0x45, 0x27, 0x0b, 0xa5,
+ 0x75, 0xef, 0x35, 0x7e, 0x26, 0x88, 0x4a, 0x67, 0x60, 0xd1, 0xc7, 0xd1,
+ 0x65, 0x15, 0x23, 0x81, 0x06, 0x42, 0x53, 0x1d, 0x2d, 0x3b, 0x88, 0x32,
+};
+static const unsigned char kat1371_retbits[] = {
+ 0x27, 0xcb, 0x56, 0x28, 0x56, 0x08, 0xa8, 0xb3, 0xd0, 0xe2, 0x3e, 0xad,
+ 0x3c, 0x2e, 0x16, 0x95, 0xbb, 0x51, 0x0e, 0x7e, 0x53, 0xb0, 0xf2, 0x77,
+ 0x3d, 0xcd, 0xbf, 0x1c, 0xb0, 0x61, 0xdb, 0xe2, 0x09, 0x9b, 0x37, 0x47,
+ 0x4b, 0xb2, 0x7f, 0x01, 0xd4, 0x8c, 0x8c, 0x1d, 0xa8, 0x57, 0xe1, 0x5b,
+ 0xb4, 0xef, 0xcd, 0x8c, 0xe4, 0x90, 0xb4, 0xf3, 0x38, 0x54, 0x02, 0x7d,
+ 0x8d, 0x76, 0xeb, 0xf9,
+};
+static const struct drbg_kat_no_reseed kat1371_t = {
+ 5, kat1371_entropyin, kat1371_nonce, kat1371_persstr,
+ kat1371_addin0, kat1371_addin1, kat1371_retbits
+};
+static const struct drbg_kat kat1371 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1371_t
+};
+
+static const unsigned char kat1372_entropyin[] = {
+ 0xe1, 0x45, 0xa1, 0x08, 0x20, 0x37, 0x13, 0x4e, 0xa2, 0x44, 0x3e, 0x00,
+ 0xe6, 0xe1, 0x76, 0x70, 0x4e, 0xd8, 0xb8, 0x87, 0x73, 0xd1, 0x15, 0xe0,
+ 0x4d, 0xc4, 0xc8, 0x46, 0x1e, 0x4d, 0x67, 0x3a, 0xe8, 0x27, 0x72, 0xed,
+ 0xe2, 0xa7, 0x78, 0x95, 0xc5, 0xd5, 0xaa, 0x94, 0x9a, 0x1f, 0x52, 0xea,
+};
+static const unsigned char kat1372_nonce[] = {0};
+static const unsigned char kat1372_persstr[] = {
+ 0x06, 0xba, 0x16, 0xb3, 0x60, 0xbe, 0xc8, 0xa8, 0xba, 0x7d, 0x48, 0xab,
+ 0xc3, 0x07, 0xf4, 0x09, 0xbe, 0xde, 0x71, 0x71, 0x3c, 0x38, 0x39, 0x74,
+ 0x2c, 0x51, 0x8a, 0x5f, 0x0f, 0xd8, 0x25, 0x38, 0x3e, 0x40, 0x90, 0x96,
+ 0xa9, 0xa7, 0x1d, 0x5e, 0x2a, 0xe7, 0x00, 0x2c, 0xc6, 0x2f, 0x4f, 0xa7,
+};
+static const unsigned char kat1372_addin0[] = {
+ 0x23, 0x0c, 0xe9, 0x51, 0x39, 0xb4, 0xbb, 0xcd, 0xf2, 0x0a, 0x02, 0x14,
+ 0xac, 0x95, 0x69, 0xaa, 0xbd, 0xe7, 0x18, 0x21, 0x3a, 0x73, 0x17, 0xa9,
+ 0x7b, 0xc9, 0x0e, 0x96, 0x74, 0xc1, 0xf1, 0x4e, 0x71, 0xfb, 0x0a, 0xd9,
+ 0x1b, 0x13, 0x70, 0x06, 0x81, 0xe6, 0x1c, 0x5b, 0x52, 0xa8, 0xce, 0x31,
+};
+static const unsigned char kat1372_addin1[] = {
+ 0x5a, 0xbf, 0x26, 0x54, 0xf4, 0xeb, 0x3e, 0x85, 0x87, 0x81, 0x9f, 0x48,
+ 0x51, 0xa2, 0x41, 0x12, 0xbc, 0x71, 0x1a, 0x93, 0xd1, 0xf3, 0x6f, 0x1a,
+ 0x96, 0xe0, 0xdf, 0xd6, 0x09, 0xec, 0x1b, 0xfe, 0x00, 0xd6, 0x98, 0x44,
+ 0xd8, 0x05, 0x79, 0xdc, 0x55, 0x17, 0x50, 0x3c, 0xfd, 0x53, 0xea, 0x6a,
+};
+static const unsigned char kat1372_retbits[] = {
+ 0xc5, 0x24, 0xdd, 0x2b, 0xcf, 0x49, 0x2f, 0x00, 0x87, 0x92, 0x80, 0x7b,
+ 0xbb, 0x96, 0x8f, 0x2d, 0xa7, 0xe2, 0xd7, 0x94, 0x87, 0x02, 0x96, 0x19,
+ 0xcd, 0x47, 0x52, 0xb0, 0x3c, 0x6c, 0xfc, 0x68, 0xfa, 0x90, 0xc6, 0x51,
+ 0xb4, 0x48, 0x0b, 0x65, 0x6f, 0xbb, 0xa3, 0x2a, 0x1a, 0xa0, 0xf2, 0x10,
+ 0xf5, 0xd8, 0x30, 0x4b, 0x5b, 0xc5, 0x7a, 0x27, 0x2f, 0x69, 0x78, 0x1a,
+ 0xa6, 0xac, 0xf3, 0x92,
+};
+static const struct drbg_kat_no_reseed kat1372_t = {
+ 6, kat1372_entropyin, kat1372_nonce, kat1372_persstr,
+ kat1372_addin0, kat1372_addin1, kat1372_retbits
+};
+static const struct drbg_kat kat1372 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1372_t
+};
+
+static const unsigned char kat1373_entropyin[] = {
+ 0x19, 0x23, 0xcd, 0x77, 0x47, 0x22, 0xc2, 0x35, 0xb8, 0x5f, 0x68, 0xc2,
+ 0x20, 0xa0, 0xf6, 0x75, 0xac, 0xb8, 0xfe, 0x4a, 0x2f, 0x3c, 0xdf, 0x56,
+ 0xb7, 0x29, 0x58, 0x63, 0x22, 0x78, 0x45, 0x33, 0x87, 0x2b, 0x8b, 0xc1,
+ 0xa6, 0x57, 0x09, 0x60, 0x47, 0xf6, 0x8f, 0x52, 0x48, 0x5a, 0x92, 0xee,
+};
+static const unsigned char kat1373_nonce[] = {0};
+static const unsigned char kat1373_persstr[] = {
+ 0x98, 0x06, 0xa8, 0x7d, 0x7d, 0xc0, 0x47, 0xf0, 0x2c, 0xd8, 0x8d, 0xb5,
+ 0x6d, 0xdf, 0xc4, 0xe6, 0x8c, 0x42, 0xb4, 0xa9, 0x15, 0xfe, 0xe1, 0xc0,
+ 0x63, 0xaf, 0xf6, 0xa6, 0x2d, 0xef, 0x1a, 0xd7, 0x0c, 0xe2, 0xf1, 0xbb,
+ 0xd0, 0x68, 0xeb, 0xe1, 0xba, 0x01, 0xec, 0xf9, 0xcc, 0xd2, 0xdb, 0x17,
+};
+static const unsigned char kat1373_addin0[] = {
+ 0x48, 0x3e, 0x45, 0xd4, 0xf3, 0xfc, 0x93, 0x07, 0xbb, 0xa3, 0x73, 0xb7,
+ 0x0e, 0x80, 0xb9, 0x85, 0xed, 0x1a, 0x93, 0x25, 0x7b, 0x0f, 0x62, 0x16,
+ 0x4e, 0xa4, 0x06, 0x5c, 0xb3, 0xb2, 0xac, 0x62, 0x7c, 0x7a, 0x02, 0x71,
+ 0xd0, 0x2c, 0x37, 0x09, 0x54, 0xc1, 0xd7, 0x95, 0x6b, 0x9f, 0x5d, 0x40,
+};
+static const unsigned char kat1373_addin1[] = {
+ 0xc4, 0x6b, 0x57, 0x61, 0x64, 0x21, 0xa3, 0x72, 0x78, 0xc1, 0x1c, 0x3a,
+ 0xbf, 0xa1, 0x41, 0xf1, 0x7b, 0xdc, 0xf5, 0xe6, 0xbb, 0x9c, 0x66, 0x83,
+ 0xcc, 0x11, 0x60, 0xd2, 0x64, 0x68, 0x4a, 0x28, 0xab, 0x42, 0xd9, 0x39,
+ 0x07, 0x5e, 0xd5, 0xed, 0xd9, 0x46, 0xdd, 0x67, 0x42, 0x46, 0xd2, 0xc1,
+};
+static const unsigned char kat1373_retbits[] = {
+ 0x8d, 0x87, 0x60, 0x73, 0xb9, 0x38, 0x46, 0xca, 0xb1, 0x38, 0xbd, 0xa1,
+ 0xa6, 0x77, 0xc0, 0xed, 0x06, 0xb2, 0xff, 0x77, 0x17, 0x1a, 0x5b, 0x71,
+ 0x33, 0x97, 0x04, 0xa6, 0x13, 0x9c, 0x2d, 0xf4, 0x70, 0xe1, 0x86, 0x93,
+ 0xf9, 0xaa, 0xf1, 0xc8, 0x83, 0x31, 0xd1, 0x9a, 0xc3, 0x9f, 0xd5, 0x2c,
+ 0x22, 0x63, 0x36, 0x4c, 0x99, 0xa3, 0xfc, 0x9a, 0x41, 0xbc, 0x93, 0x6a,
+ 0x35, 0xb7, 0x3f, 0x1f,
+};
+static const struct drbg_kat_no_reseed kat1373_t = {
+ 7, kat1373_entropyin, kat1373_nonce, kat1373_persstr,
+ kat1373_addin0, kat1373_addin1, kat1373_retbits
+};
+static const struct drbg_kat kat1373 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1373_t
+};
+
+static const unsigned char kat1374_entropyin[] = {
+ 0xf1, 0x49, 0xeb, 0x1c, 0x85, 0xa2, 0x04, 0xff, 0xab, 0x73, 0xe7, 0x72,
+ 0x8e, 0x46, 0x4c, 0x11, 0x59, 0x6e, 0xa6, 0xe8, 0x91, 0xb1, 0x43, 0xc1,
+ 0xa5, 0xfb, 0x4a, 0xf5, 0x69, 0x7b, 0x8f, 0xa3, 0xfc, 0x85, 0xaf, 0x22,
+ 0xb5, 0xd8, 0xe1, 0xbf, 0xc3, 0x79, 0xb5, 0x17, 0xf4, 0x01, 0x47, 0x0e,
+};
+static const unsigned char kat1374_nonce[] = {0};
+static const unsigned char kat1374_persstr[] = {
+ 0x6d, 0x77, 0xa5, 0x5a, 0x69, 0x13, 0x85, 0xe5, 0x56, 0x73, 0x48, 0x0e,
+ 0x2f, 0x30, 0x2b, 0x57, 0x74, 0x95, 0xa3, 0x78, 0x15, 0x88, 0x94, 0xca,
+ 0xaa, 0xda, 0x3d, 0x08, 0xb7, 0x24, 0xf5, 0x66, 0x7c, 0x12, 0x18, 0x4e,
+ 0x5b, 0xe5, 0x4d, 0x1b, 0x36, 0xca, 0x2b, 0x33, 0xf8, 0xe6, 0xca, 0xfa,
+};
+static const unsigned char kat1374_addin0[] = {
+ 0x13, 0xdf, 0x4c, 0xfc, 0xb7, 0x12, 0x3a, 0xeb, 0xfd, 0xa0, 0x2d, 0x39,
+ 0xee, 0x95, 0xba, 0x5c, 0xbc, 0x32, 0xb1, 0x89, 0x24, 0xe8, 0x7f, 0x34,
+ 0x57, 0x5f, 0xb1, 0xa3, 0x2c, 0xdd, 0x33, 0xd0, 0x49, 0x2c, 0x34, 0x14,
+ 0x68, 0x97, 0xcd, 0xa8, 0x65, 0xae, 0xd5, 0xb1, 0xce, 0xba, 0x8a, 0xc0,
+};
+static const unsigned char kat1374_addin1[] = {
+ 0x14, 0xcc, 0x99, 0x01, 0xbd, 0xd0, 0xd1, 0x25, 0x2b, 0x19, 0xc0, 0x88,
+ 0x94, 0x77, 0x79, 0x27, 0xd3, 0x87, 0x41, 0xd0, 0xeb, 0xd4, 0x51, 0xca,
+ 0x59, 0x2c, 0x0c, 0x75, 0xe8, 0xfc, 0x12, 0x06, 0x25, 0xc5, 0x7d, 0x9e,
+ 0xfe, 0xfd, 0x19, 0x03, 0xd5, 0xca, 0x90, 0x2c, 0x73, 0x10, 0xfe, 0x51,
+};
+static const unsigned char kat1374_retbits[] = {
+ 0xcf, 0x76, 0x4a, 0x67, 0xa7, 0x4c, 0xc0, 0x66, 0xfe, 0x70, 0x49, 0xa3,
+ 0x05, 0x59, 0x40, 0xf1, 0x10, 0x7b, 0x91, 0x8f, 0x82, 0xc7, 0x00, 0x55,
+ 0x84, 0xa3, 0x5d, 0x3e, 0x3b, 0xd6, 0x93, 0x3e, 0x3e, 0x92, 0x8d, 0xdc,
+ 0x8c, 0x93, 0xf5, 0xac, 0x54, 0xd0, 0x0e, 0x7e, 0xe4, 0x2e, 0xdd, 0x03,
+ 0x0c, 0x0e, 0xa6, 0x37, 0x25, 0x38, 0x8e, 0x1c, 0xcb, 0x99, 0xa5, 0x78,
+ 0x05, 0x85, 0x87, 0xe6,
+};
+static const struct drbg_kat_no_reseed kat1374_t = {
+ 8, kat1374_entropyin, kat1374_nonce, kat1374_persstr,
+ kat1374_addin0, kat1374_addin1, kat1374_retbits
+};
+static const struct drbg_kat kat1374 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1374_t
+};
+
+static const unsigned char kat1375_entropyin[] = {
+ 0x4f, 0x91, 0x6b, 0x44, 0xea, 0x32, 0xb5, 0x0c, 0x9e, 0xfd, 0xd1, 0x6d,
+ 0x9e, 0x5f, 0x28, 0xd8, 0x0f, 0x17, 0xee, 0xd3, 0x05, 0xda, 0x49, 0x8f,
+ 0x4e, 0xa9, 0xaf, 0xf0, 0xea, 0x2e, 0xc7, 0xc1, 0x5b, 0x59, 0x4a, 0x6f,
+ 0x8d, 0x80, 0xfa, 0xc7, 0xef, 0xab, 0x98, 0x86, 0xd6, 0xd5, 0xbf, 0xf7,
+};
+static const unsigned char kat1375_nonce[] = {0};
+static const unsigned char kat1375_persstr[] = {
+ 0x07, 0x59, 0x3a, 0x0f, 0x2e, 0xc2, 0x94, 0xcb, 0x10, 0x3d, 0xcf, 0xde,
+ 0x66, 0x0b, 0x5b, 0x4a, 0x50, 0x1c, 0x7b, 0x50, 0x94, 0x24, 0x0a, 0x4d,
+ 0xd0, 0x4f, 0x7b, 0x89, 0x02, 0xc0, 0x1b, 0xac, 0x75, 0x4a, 0xf8, 0x50,
+ 0x34, 0xcc, 0x1c, 0x0e, 0x34, 0x13, 0x51, 0x1d, 0x14, 0xb3, 0xb7, 0xab,
+};
+static const unsigned char kat1375_addin0[] = {
+ 0x51, 0x09, 0x28, 0x10, 0xd2, 0xc7, 0x64, 0x9f, 0xb2, 0xf1, 0xd7, 0x8e,
+ 0x0e, 0x06, 0xd8, 0x79, 0xc3, 0x86, 0x14, 0x1f, 0x8b, 0xf6, 0xee, 0x8c,
+ 0xe4, 0x45, 0xfc, 0xfc, 0x46, 0x9a, 0xf6, 0xb0, 0xce, 0x8c, 0xf5, 0x6d,
+ 0xa0, 0x37, 0xa3, 0xf1, 0xf5, 0x1b, 0xbd, 0x2f, 0x88, 0xb5, 0xe8, 0x09,
+};
+static const unsigned char kat1375_addin1[] = {
+ 0x6a, 0x21, 0x41, 0xd8, 0x33, 0x31, 0xe5, 0x79, 0xb1, 0x6e, 0x37, 0xd3,
+ 0xc1, 0xc5, 0x51, 0xe4, 0xa6, 0x80, 0x55, 0xde, 0xab, 0xea, 0x83, 0xfd,
+ 0x23, 0x82, 0xc4, 0x18, 0xd4, 0x85, 0xb6, 0xa7, 0x3e, 0xfa, 0x85, 0x0c,
+ 0x0a, 0xa5, 0x64, 0x0c, 0x3b, 0x3b, 0x72, 0x64, 0x79, 0xff, 0xfe, 0x70,
+};
+static const unsigned char kat1375_retbits[] = {
+ 0x64, 0x04, 0xe0, 0x65, 0x55, 0x8c, 0x18, 0xdc, 0xc3, 0x9b, 0x78, 0xac,
+ 0x60, 0xd7, 0x07, 0xab, 0xb1, 0xf6, 0x4a, 0xb6, 0x07, 0x0d, 0x3b, 0xc3,
+ 0xa5, 0xda, 0x00, 0x0f, 0xdf, 0x02, 0x49, 0x15, 0x40, 0xf7, 0x34, 0x8b,
+ 0x98, 0xa1, 0x59, 0x57, 0x1b, 0xc1, 0x36, 0x19, 0x6e, 0x17, 0xd8, 0x3d,
+ 0xa7, 0x3c, 0x39, 0x71, 0x8a, 0xff, 0x15, 0xda, 0x24, 0x69, 0xee, 0x57,
+ 0x26, 0x3f, 0x5d, 0x69,
+};
+static const struct drbg_kat_no_reseed kat1375_t = {
+ 9, kat1375_entropyin, kat1375_nonce, kat1375_persstr,
+ kat1375_addin0, kat1375_addin1, kat1375_retbits
+};
+static const struct drbg_kat kat1375 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1375_t
+};
+
+static const unsigned char kat1376_entropyin[] = {
+ 0x05, 0x27, 0x0c, 0x75, 0x41, 0xf5, 0x60, 0xeb, 0x0c, 0x8f, 0xd7, 0x08,
+ 0x8d, 0x60, 0x85, 0x60, 0x04, 0xf3, 0xf5, 0x60, 0x3d, 0xe9, 0x6d, 0x25,
+ 0xab, 0x49, 0x80, 0x5e, 0x23, 0xe2, 0x38, 0xb1, 0xcd, 0xc6, 0xa6, 0xaa,
+ 0xc5, 0xf9, 0x05, 0x32, 0x5b, 0x92, 0xc1, 0xe5, 0x93, 0xd6, 0xd2, 0x7d,
+};
+static const unsigned char kat1376_nonce[] = {0};
+static const unsigned char kat1376_persstr[] = {
+ 0x7b, 0x34, 0xf3, 0xe2, 0xeb, 0xb0, 0x77, 0x9d, 0xbf, 0x26, 0xb6, 0x28,
+ 0x77, 0xcb, 0x67, 0x99, 0xf0, 0xbd, 0xff, 0x1b, 0xe8, 0xcd, 0x8f, 0x98,
+ 0x81, 0x2a, 0xe4, 0x1b, 0x06, 0xa8, 0xa7, 0x3d, 0x20, 0x2e, 0x93, 0xd8,
+ 0xc7, 0x63, 0x8b, 0x02, 0x8d, 0xa1, 0x92, 0x88, 0x2d, 0x97, 0x71, 0x58,
+};
+static const unsigned char kat1376_addin0[] = {
+ 0xc2, 0x6a, 0xbc, 0x11, 0x09, 0x65, 0xae, 0x83, 0xd0, 0x27, 0x29, 0x66,
+ 0x00, 0x4a, 0x93, 0x8d, 0x0c, 0x05, 0x83, 0xf5, 0x06, 0x52, 0x2a, 0x3c,
+ 0x32, 0xdd, 0xc6, 0xdb, 0xcd, 0x8d, 0x64, 0x58, 0xdb, 0x70, 0x3d, 0x3e,
+ 0x2b, 0x30, 0xcc, 0x02, 0x3e, 0xc7, 0x65, 0x2e, 0xdd, 0x74, 0x7f, 0xdd,
+};
+static const unsigned char kat1376_addin1[] = {
+ 0xf5, 0xc3, 0x8a, 0x59, 0xcc, 0xe7, 0xe8, 0xe2, 0x9d, 0x87, 0x67, 0xa0,
+ 0x9c, 0xc6, 0x56, 0xd3, 0x3e, 0xdf, 0xf4, 0x70, 0x3f, 0x7c, 0x98, 0x49,
+ 0x45, 0xf6, 0x64, 0x10, 0xfb, 0x19, 0x0b, 0xbe, 0x43, 0x82, 0xa4, 0x73,
+ 0xf4, 0xb3, 0x6f, 0xd1, 0x0d, 0x61, 0xd1, 0x6d, 0x30, 0x44, 0x66, 0xe6,
+};
+static const unsigned char kat1376_retbits[] = {
+ 0x8d, 0x0e, 0x2e, 0x33, 0x7f, 0xbc, 0x86, 0x32, 0x58, 0x74, 0x22, 0x7e,
+ 0x48, 0xe9, 0xe3, 0xd8, 0xe7, 0x82, 0xb6, 0x95, 0x47, 0xac, 0x44, 0x45,
+ 0xce, 0x7c, 0x19, 0xa5, 0x8a, 0x63, 0xb5, 0xec, 0xb0, 0xf3, 0x67, 0x9f,
+ 0x0c, 0x43, 0x9e, 0xf0, 0x47, 0x9a, 0xc9, 0xaf, 0x22, 0xd0, 0x4f, 0x4f,
+ 0x57, 0x77, 0xcd, 0xa1, 0x31, 0x1c, 0x6c, 0x46, 0x37, 0xf3, 0x1d, 0xf8,
+ 0x60, 0xa6, 0x32, 0xac,
+};
+static const struct drbg_kat_no_reseed kat1376_t = {
+ 10, kat1376_entropyin, kat1376_nonce, kat1376_persstr,
+ kat1376_addin0, kat1376_addin1, kat1376_retbits
+};
+static const struct drbg_kat kat1376 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1376_t
+};
+
+static const unsigned char kat1377_entropyin[] = {
+ 0x0b, 0xe9, 0x52, 0x80, 0x22, 0x67, 0x17, 0xae, 0xe6, 0x50, 0xd2, 0xb8,
+ 0x49, 0x8a, 0x10, 0x74, 0xcf, 0xb5, 0x1e, 0xbc, 0x5c, 0x6f, 0x8b, 0x50,
+ 0xd7, 0x1c, 0x35, 0x6c, 0xe3, 0x7d, 0x67, 0x16, 0x70, 0x39, 0x12, 0x75,
+ 0x83, 0x81, 0xaf, 0x21, 0x0a, 0x70, 0x67, 0x0c, 0x70, 0x88, 0xa9, 0xc6,
+};
+static const unsigned char kat1377_nonce[] = {0};
+static const unsigned char kat1377_persstr[] = {
+ 0x32, 0xe6, 0x8d, 0x6f, 0x66, 0x46, 0x22, 0x9b, 0x75, 0x1f, 0xf7, 0xa7,
+ 0x78, 0xba, 0xdc, 0xb7, 0xe7, 0x86, 0xfc, 0x35, 0x4a, 0xc1, 0x81, 0x46,
+ 0x02, 0x5b, 0xda, 0x69, 0x65, 0x16, 0x18, 0x48, 0x78, 0xa7, 0x11, 0x43,
+ 0x83, 0x4f, 0x0d, 0xe8, 0xef, 0x99, 0xa7, 0x3a, 0xe1, 0xb5, 0x12, 0xba,
+};
+static const unsigned char kat1377_addin0[] = {
+ 0x72, 0x18, 0x96, 0xc4, 0x4c, 0xfb, 0x83, 0x21, 0x26, 0xa9, 0xf4, 0xcd,
+ 0x76, 0xab, 0x3a, 0x04, 0x1e, 0xeb, 0x14, 0x0e, 0xe1, 0x70, 0xed, 0xb8,
+ 0xb1, 0x0d, 0xe8, 0xe2, 0xe4, 0x39, 0xea, 0x66, 0x12, 0xaf, 0xb0, 0x6d,
+ 0x51, 0x83, 0xe7, 0x9e, 0x9f, 0x3b, 0x16, 0x4f, 0x27, 0xd3, 0x6c, 0x8f,
+};
+static const unsigned char kat1377_addin1[] = {
+ 0xdc, 0x61, 0xfb, 0x8c, 0x38, 0x33, 0x01, 0x4f, 0xa8, 0x2b, 0x64, 0x0e,
+ 0x3b, 0xa8, 0xe8, 0x6f, 0x32, 0xc1, 0xfe, 0x90, 0xa5, 0x99, 0x68, 0x9d,
+ 0xab, 0xa0, 0xb9, 0x37, 0x8e, 0x75, 0x7f, 0x3d, 0x1e, 0x03, 0x9d, 0x53,
+ 0xf6, 0x25, 0xc9, 0x5c, 0x63, 0x96, 0x03, 0x40, 0xad, 0x6d, 0x4c, 0x57,
+};
+static const unsigned char kat1377_retbits[] = {
+ 0xeb, 0xad, 0x75, 0x4d, 0xca, 0x66, 0xfc, 0x09, 0xc2, 0xe7, 0x73, 0x8c,
+ 0x14, 0x4b, 0x24, 0x57, 0x5e, 0x71, 0x85, 0xa4, 0x29, 0x50, 0xf9, 0xa1,
+ 0x9f, 0x73, 0x59, 0xc3, 0x39, 0xd9, 0xe6, 0xd0, 0x83, 0x71, 0x6e, 0x0a,
+ 0x9b, 0x5f, 0x3e, 0x2e, 0xea, 0x19, 0x2a, 0xdd, 0x56, 0xcc, 0x0c, 0xe9,
+ 0x1d, 0x5b, 0x30, 0x60, 0x85, 0xc1, 0x93, 0xc1, 0xd4, 0xaf, 0xa7, 0xa4,
+ 0x14, 0x80, 0xaa, 0x0c,
+};
+static const struct drbg_kat_no_reseed kat1377_t = {
+ 11, kat1377_entropyin, kat1377_nonce, kat1377_persstr,
+ kat1377_addin0, kat1377_addin1, kat1377_retbits
+};
+static const struct drbg_kat kat1377 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1377_t
+};
+
+static const unsigned char kat1378_entropyin[] = {
+ 0x0e, 0xb5, 0x9f, 0x84, 0x39, 0x58, 0x3e, 0xe5, 0xa8, 0xe7, 0xd3, 0x2d,
+ 0x40, 0xfb, 0x0a, 0xce, 0xef, 0x2f, 0xae, 0xc6, 0x76, 0xee, 0x46, 0x3e,
+ 0x7e, 0x7f, 0xba, 0xb1, 0xd5, 0xec, 0x8f, 0x25, 0xcf, 0x42, 0xfc, 0xc2,
+ 0xd0, 0xf3, 0xbb, 0xac, 0xc6, 0xa9, 0xbf, 0x75, 0xd9, 0x6c, 0x7d, 0x63,
+};
+static const unsigned char kat1378_nonce[] = {0};
+static const unsigned char kat1378_persstr[] = {
+ 0x2f, 0xa9, 0x98, 0x94, 0x69, 0x03, 0xfc, 0xac, 0x98, 0xcb, 0x16, 0xdb,
+ 0xf3, 0xdb, 0xa9, 0x0a, 0x2d, 0xe7, 0xf8, 0xdd, 0x95, 0x34, 0x71, 0x88,
+ 0x19, 0xfa, 0x1a, 0xca, 0x97, 0x27, 0xb3, 0xfb, 0xd3, 0x91, 0x0e, 0x77,
+ 0x19, 0x29, 0x53, 0x1d, 0x12, 0x3c, 0x98, 0xd2, 0x13, 0x00, 0x97, 0x8b,
+};
+static const unsigned char kat1378_addin0[] = {
+ 0xba, 0xa5, 0x9e, 0x86, 0x6e, 0x03, 0xf2, 0xa1, 0x2c, 0x36, 0x38, 0x7d,
+ 0xae, 0xa0, 0x69, 0xcc, 0x21, 0x6c, 0x7e, 0x94, 0x71, 0x4c, 0x49, 0xa7,
+ 0xd5, 0x0b, 0x60, 0x0d, 0xed, 0x65, 0xa7, 0x98, 0x65, 0xdc, 0xd2, 0x9c,
+ 0x46, 0xb6, 0xb6, 0x20, 0xe8, 0x7c, 0xd0, 0xa1, 0xe7, 0x08, 0x8e, 0x7c,
+};
+static const unsigned char kat1378_addin1[] = {
+ 0x20, 0x35, 0xd7, 0x30, 0xdc, 0x18, 0x20, 0xac, 0x4d, 0xb5, 0x61, 0xdd,
+ 0xeb, 0xe8, 0xde, 0x44, 0x86, 0xad, 0x19, 0x48, 0xba, 0x4c, 0x34, 0xd9,
+ 0x0b, 0xcf, 0x3a, 0xd6, 0x4c, 0x60, 0x33, 0x78, 0xb5, 0x94, 0xb6, 0x39,
+ 0x9f, 0x34, 0x90, 0x98, 0xe6, 0x3b, 0x07, 0xe9, 0x38, 0x62, 0x16, 0x16,
+};
+static const unsigned char kat1378_retbits[] = {
+ 0x56, 0x96, 0x97, 0x46, 0xdc, 0xee, 0xc4, 0x1f, 0xcc, 0x59, 0x5a, 0xbe,
+ 0x22, 0xdc, 0x43, 0x8e, 0x73, 0x9c, 0x50, 0x4f, 0x65, 0x18, 0x58, 0x0e,
+ 0x68, 0x2c, 0x52, 0xbd, 0x86, 0xcd, 0xa6, 0xf6, 0xe1, 0xfd, 0x46, 0x62,
+ 0xe8, 0x59, 0xf6, 0xa9, 0xc6, 0x80, 0x9a, 0xf4, 0xfd, 0x52, 0x4d, 0xe4,
+ 0x5a, 0xf6, 0x40, 0x27, 0x35, 0xf4, 0xc4, 0x3c, 0xdc, 0x4c, 0x4f, 0x4a,
+ 0x94, 0x62, 0x4e, 0xbf,
+};
+static const struct drbg_kat_no_reseed kat1378_t = {
+ 12, kat1378_entropyin, kat1378_nonce, kat1378_persstr,
+ kat1378_addin0, kat1378_addin1, kat1378_retbits
+};
+static const struct drbg_kat kat1378 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1378_t
+};
+
+static const unsigned char kat1379_entropyin[] = {
+ 0x2d, 0x09, 0x82, 0x62, 0xdc, 0x82, 0x8b, 0x18, 0x26, 0x0f, 0xf7, 0x0f,
+ 0x28, 0xe5, 0xcd, 0x0e, 0x00, 0x81, 0x75, 0x58, 0x36, 0xd1, 0x0f, 0xfd,
+ 0xe9, 0x08, 0xa1, 0xed, 0xf3, 0x12, 0x8b, 0x28, 0xe2, 0x74, 0x29, 0xa6,
+ 0x49, 0x34, 0x1e, 0xf0, 0x8e, 0xb7, 0x42, 0x73, 0xc8, 0x91, 0xc0, 0x40,
+};
+static const unsigned char kat1379_nonce[] = {0};
+static const unsigned char kat1379_persstr[] = {
+ 0xf8, 0xa0, 0x3c, 0xb1, 0xae, 0x84, 0xb4, 0x96, 0xa8, 0x2a, 0x40, 0x6d,
+ 0x34, 0x05, 0x64, 0x40, 0x0f, 0x26, 0x11, 0x80, 0x83, 0x66, 0x48, 0x02,
+ 0x64, 0x15, 0x45, 0xb5, 0x7c, 0xf7, 0x55, 0x07, 0x09, 0xb6, 0x92, 0xe3,
+ 0xbc, 0xa2, 0xfc, 0xd8, 0xac, 0x72, 0x33, 0xf0, 0xf5, 0x4b, 0xe8, 0xb1,
+};
+static const unsigned char kat1379_addin0[] = {
+ 0xd3, 0xdd, 0x72, 0x4c, 0x73, 0x5e, 0x63, 0xf5, 0xa4, 0x9a, 0x03, 0xba,
+ 0x5c, 0x31, 0x67, 0xb0, 0xc2, 0x1d, 0x95, 0x97, 0x6a, 0x4a, 0x91, 0xc2,
+ 0xc6, 0x64, 0x8c, 0xf2, 0xee, 0x01, 0x9d, 0x9d, 0x08, 0xc0, 0x33, 0xb2,
+ 0xed, 0x02, 0x3d, 0xe5, 0x46, 0x20, 0xb2, 0x37, 0x2e, 0x3f, 0x3b, 0x5d,
+};
+static const unsigned char kat1379_addin1[] = {
+ 0xcf, 0xee, 0x61, 0xaa, 0x41, 0xdc, 0x59, 0xe7, 0x5c, 0xe9, 0x3e, 0xd3,
+ 0xa9, 0x2e, 0xc5, 0x06, 0xdc, 0x6d, 0x14, 0xc8, 0x0c, 0x56, 0x79, 0x13,
+ 0x15, 0x3a, 0xec, 0xbe, 0x5b, 0x9d, 0x8f, 0xfc, 0xe8, 0x9a, 0x8d, 0x73,
+ 0x44, 0x21, 0xda, 0xd0, 0xd4, 0x8a, 0xff, 0xab, 0x3e, 0xac, 0x0a, 0x2b,
+};
+static const unsigned char kat1379_retbits[] = {
+ 0xee, 0xba, 0x82, 0x49, 0x46, 0x88, 0x83, 0x0e, 0x5f, 0x24, 0x41, 0x8e,
+ 0x38, 0xdc, 0xf5, 0x5e, 0x32, 0xa1, 0xd4, 0xb0, 0x43, 0x06, 0x6a, 0x99,
+ 0x6a, 0x7e, 0x8f, 0x11, 0xb7, 0x2a, 0x38, 0xd7, 0xfe, 0x27, 0xc7, 0xe5,
+ 0xbd, 0xdf, 0xa7, 0xc5, 0x6d, 0xf1, 0x18, 0x6f, 0x1c, 0xa5, 0x7d, 0xcb,
+ 0x33, 0x15, 0x96, 0x08, 0x00, 0x3a, 0xe1, 0xf2, 0xa4, 0x8d, 0x7a, 0x84,
+ 0x24, 0x9c, 0xa4, 0x65,
+};
+static const struct drbg_kat_no_reseed kat1379_t = {
+ 13, kat1379_entropyin, kat1379_nonce, kat1379_persstr,
+ kat1379_addin0, kat1379_addin1, kat1379_retbits
+};
+static const struct drbg_kat kat1379 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1379_t
+};
+
+static const unsigned char kat1380_entropyin[] = {
+ 0x93, 0x36, 0x3e, 0x22, 0xb3, 0x8f, 0x87, 0x89, 0x50, 0x71, 0x8c, 0x72,
+ 0x9c, 0xb3, 0xff, 0xb0, 0xfd, 0xf2, 0x15, 0x36, 0xe7, 0x19, 0x33, 0x35,
+ 0x83, 0x98, 0xaa, 0x41, 0x99, 0x81, 0x05, 0x24, 0xa7, 0x46, 0x3f, 0x2a,
+ 0x41, 0x4b, 0x5a, 0xbd, 0xe7, 0xc1, 0xa6, 0xd2, 0x2b, 0x1d, 0xf2, 0x5d,
+};
+static const unsigned char kat1380_nonce[] = {0};
+static const unsigned char kat1380_persstr[] = {
+ 0x7a, 0x03, 0x29, 0xa3, 0xfe, 0xee, 0x3b, 0x0a, 0x55, 0x84, 0xeb, 0xf9,
+ 0x2e, 0x33, 0x67, 0x5e, 0x11, 0xea, 0x98, 0x47, 0xce, 0x52, 0xcc, 0x0d,
+ 0xf4, 0xea, 0x5c, 0x4f, 0x2b, 0x36, 0x62, 0x12, 0x19, 0x10, 0x86, 0x47,
+ 0x17, 0xbe, 0xe9, 0xf0, 0xbb, 0x6d, 0x02, 0x4e, 0xb2, 0xab, 0xed, 0x4e,
+};
+static const unsigned char kat1380_addin0[] = {
+ 0xb0, 0xbf, 0x3a, 0xe2, 0xcf, 0xe4, 0xd3, 0xfa, 0xe5, 0x57, 0x37, 0x81,
+ 0x45, 0x6b, 0x37, 0x25, 0xa5, 0x95, 0x98, 0xd5, 0x2f, 0xfd, 0xd0, 0x81,
+ 0xb4, 0x12, 0x10, 0x64, 0x81, 0xeb, 0x04, 0x49, 0xc6, 0xf6, 0x80, 0x71,
+ 0x7a, 0x72, 0x55, 0x4f, 0x3a, 0xbd, 0x7e, 0xcb, 0x00, 0xa5, 0xb9, 0x76,
+};
+static const unsigned char kat1380_addin1[] = {
+ 0xb9, 0x4a, 0x91, 0x34, 0x25, 0x70, 0x79, 0xc1, 0x61, 0x92, 0x06, 0x6b,
+ 0x6e, 0x3e, 0x50, 0xd6, 0x3d, 0x58, 0xde, 0xc6, 0x63, 0x25, 0x24, 0x11,
+ 0x4e, 0x6b, 0xce, 0x34, 0x15, 0xdb, 0x5a, 0xbf, 0xe0, 0xc8, 0x91, 0x08,
+ 0xcf, 0x2f, 0xd6, 0x47, 0x8a, 0x97, 0x07, 0x9f, 0x51, 0x90, 0xf1, 0xc5,
+};
+static const unsigned char kat1380_retbits[] = {
+ 0xac, 0x7c, 0x1a, 0x00, 0x22, 0x8f, 0x6a, 0x7a, 0x06, 0x20, 0xd0, 0x0d,
+ 0xca, 0x7d, 0xd3, 0x8e, 0x53, 0xc7, 0x1d, 0x31, 0xaa, 0xce, 0x47, 0x07,
+ 0x03, 0xe4, 0xd8, 0x91, 0x1b, 0x07, 0x1b, 0x5a, 0xe5, 0x17, 0xaf, 0x60,
+ 0xff, 0x9f, 0x2a, 0xa5, 0x70, 0xb1, 0x8d, 0x35, 0xb2, 0xdc, 0xf8, 0xaf,
+ 0x0e, 0xe1, 0x4b, 0xa6, 0x46, 0xf2, 0xbe, 0x35, 0x57, 0x1c, 0x7c, 0xec,
+ 0x44, 0xec, 0x88, 0xd4,
+};
+static const struct drbg_kat_no_reseed kat1380_t = {
+ 14, kat1380_entropyin, kat1380_nonce, kat1380_persstr,
+ kat1380_addin0, kat1380_addin1, kat1380_retbits
+};
+static const struct drbg_kat kat1380 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1380_t
+};
+
+static const unsigned char kat1381_entropyin[] = {
+ 0x56, 0x67, 0xdf, 0x8e, 0x81, 0x47, 0xf0, 0xd5, 0x93, 0x98, 0x9c, 0x0b,
+ 0x28, 0xbe, 0x74, 0x97, 0xfa, 0x9e, 0x28, 0xf4, 0x6c, 0x00, 0xbd, 0xe1,
+ 0x2e, 0x53, 0xaa, 0x26, 0xdc, 0x3d, 0x07, 0xdc, 0x8d, 0x76, 0x08, 0xb5,
+ 0x5a, 0x16, 0xe9, 0x27, 0x09, 0x76, 0x2c, 0x2c, 0x1d, 0xee, 0x64, 0xb3,
+};
+static const unsigned char kat1381_nonce[] = {0};
+static const unsigned char kat1381_persstr[] = {0};
+static const unsigned char kat1381_addin0[] = {0};
+static const unsigned char kat1381_addin1[] = {0};
+static const unsigned char kat1381_retbits[] = {
+ 0x63, 0x9e, 0x53, 0x94, 0xb5, 0x39, 0xda, 0x7b, 0xe7, 0xe3, 0x65, 0x84,
+ 0x9c, 0x69, 0x53, 0x38, 0xc2, 0x96, 0x95, 0x49, 0x39, 0xe4, 0xd6, 0x05,
+ 0xc8, 0x8f, 0x60, 0x56, 0xca, 0xb6, 0x36, 0x83, 0x8e, 0x2a, 0x51, 0xfb,
+ 0xd0, 0x99, 0x63, 0x84, 0x4b, 0x04, 0x4e, 0x83, 0xb4, 0x54, 0xc8, 0x7a,
+ 0x52, 0xd2, 0x5d, 0xad, 0x86, 0xcd, 0x52, 0xb9, 0xfe, 0x8a, 0x66, 0xe1,
+ 0xb0, 0x1f, 0xd4, 0xe3,
+};
+static const struct drbg_kat_no_reseed kat1381_t = {
+ 0, kat1381_entropyin, kat1381_nonce, kat1381_persstr,
+ kat1381_addin0, kat1381_addin1, kat1381_retbits
+};
+static const struct drbg_kat kat1381 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1381_t
+};
+
+static const unsigned char kat1382_entropyin[] = {
+ 0x81, 0x2b, 0x0a, 0xd3, 0x10, 0x61, 0xe2, 0xee, 0x11, 0xf6, 0x8f, 0xba,
+ 0x7c, 0x6e, 0xa4, 0xce, 0xe8, 0xce, 0xb4, 0xea, 0xe5, 0x0f, 0x11, 0xed,
+ 0xa7, 0xb1, 0xf3, 0x8b, 0x52, 0xd2, 0xf4, 0x9e, 0x06, 0x1a, 0xcd, 0x25,
+ 0xcc, 0x55, 0x81, 0x9e, 0x72, 0x16, 0x0b, 0x31, 0x09, 0x45, 0xfc, 0x8e,
+};
+static const unsigned char kat1382_nonce[] = {0};
+static const unsigned char kat1382_persstr[] = {0};
+static const unsigned char kat1382_addin0[] = {0};
+static const unsigned char kat1382_addin1[] = {0};
+static const unsigned char kat1382_retbits[] = {
+ 0x61, 0x48, 0x21, 0xe0, 0x84, 0x1d, 0xcf, 0x02, 0xb4, 0x97, 0x9d, 0xf0,
+ 0xd9, 0x07, 0x9b, 0xd6, 0x33, 0x4a, 0xcb, 0xef, 0xd0, 0x91, 0x21, 0xe5,
+ 0x12, 0x39, 0x8f, 0x6b, 0x21, 0x17, 0x8c, 0x1e, 0x99, 0x8d, 0x19, 0x9d,
+ 0x33, 0x0a, 0xf4, 0xdd, 0x16, 0x2e, 0xe1, 0xad, 0xb6, 0x1e, 0xcf, 0x28,
+ 0xee, 0xec, 0xde, 0x8a, 0x89, 0x59, 0x93, 0xc2, 0x71, 0x14, 0x27, 0xa3,
+ 0xbb, 0xe9, 0x09, 0x32,
+};
+static const struct drbg_kat_no_reseed kat1382_t = {
+ 1, kat1382_entropyin, kat1382_nonce, kat1382_persstr,
+ kat1382_addin0, kat1382_addin1, kat1382_retbits
+};
+static const struct drbg_kat kat1382 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1382_t
+};
+
+static const unsigned char kat1383_entropyin[] = {
+ 0x87, 0xb8, 0x33, 0xc1, 0xdf, 0x6c, 0x73, 0xd7, 0x78, 0x0b, 0x29, 0x7d,
+ 0xcd, 0x08, 0xbd, 0x12, 0x2f, 0x3e, 0x4a, 0xbd, 0x4d, 0xca, 0x67, 0x38,
+ 0xc5, 0x5e, 0x51, 0xd6, 0x70, 0x9e, 0x92, 0x65, 0x6a, 0x17, 0x9d, 0x16,
+ 0x35, 0x2a, 0xf0, 0xbf, 0x13, 0xf0, 0xeb, 0xd2, 0x83, 0x33, 0x34, 0x95,
+};
+static const unsigned char kat1383_nonce[] = {0};
+static const unsigned char kat1383_persstr[] = {0};
+static const unsigned char kat1383_addin0[] = {0};
+static const unsigned char kat1383_addin1[] = {0};
+static const unsigned char kat1383_retbits[] = {
+ 0xa3, 0xd0, 0xe6, 0xfd, 0x6d, 0xc3, 0xec, 0x6c, 0x7e, 0x18, 0xeb, 0xfc,
+ 0x4b, 0x4b, 0xb3, 0x8a, 0x83, 0x5b, 0x95, 0xe0, 0x1a, 0x68, 0xda, 0x4d,
+ 0x4c, 0x72, 0xd3, 0x86, 0x3c, 0x0e, 0x39, 0x36, 0x5d, 0x4c, 0xa4, 0x60,
+ 0xac, 0x0b, 0xdb, 0xb0, 0xbc, 0xfa, 0xdb, 0x0c, 0x07, 0xd1, 0xf8, 0xd5,
+ 0xf1, 0x7e, 0xdb, 0x04, 0x3d, 0x0e, 0xc5, 0xa9, 0xfe, 0xa4, 0x9f, 0xf3,
+ 0x9d, 0x4f, 0xe1, 0xb7,
+};
+static const struct drbg_kat_no_reseed kat1383_t = {
+ 2, kat1383_entropyin, kat1383_nonce, kat1383_persstr,
+ kat1383_addin0, kat1383_addin1, kat1383_retbits
+};
+static const struct drbg_kat kat1383 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1383_t
+};
+
+static const unsigned char kat1384_entropyin[] = {
+ 0x97, 0x4a, 0x99, 0x93, 0xcb, 0xef, 0xeb, 0x61, 0x45, 0xaf, 0x84, 0x22,
+ 0x7a, 0x7f, 0x41, 0xe0, 0x12, 0x7d, 0x2a, 0xf7, 0xf0, 0x3c, 0x8d, 0x30,
+ 0xd8, 0xfc, 0x5e, 0x2b, 0x53, 0x32, 0x27, 0x85, 0xb5, 0x5b, 0xfc, 0x48,
+ 0x48, 0x9b, 0xce, 0x8c, 0xbc, 0xd6, 0x2b, 0x0f, 0x63, 0x0a, 0x0d, 0x26,
+};
+static const unsigned char kat1384_nonce[] = {0};
+static const unsigned char kat1384_persstr[] = {0};
+static const unsigned char kat1384_addin0[] = {0};
+static const unsigned char kat1384_addin1[] = {0};
+static const unsigned char kat1384_retbits[] = {
+ 0xb8, 0xd3, 0xa4, 0x16, 0x6d, 0xc1, 0x30, 0x3b, 0x12, 0x02, 0x24, 0x77,
+ 0xbb, 0x95, 0x4c, 0xb1, 0x8f, 0x26, 0xc1, 0x5e, 0xe3, 0x21, 0x26, 0x4e,
+ 0x26, 0x96, 0xe1, 0x9a, 0x05, 0xdd, 0x77, 0xc7, 0xf6, 0x6d, 0x15, 0xfc,
+ 0xa1, 0xa9, 0xa3, 0x9e, 0xc6, 0x80, 0x64, 0x96, 0x0b, 0x2a, 0x81, 0xa9,
+ 0x67, 0x29, 0xf9, 0xfd, 0x30, 0xdc, 0x3c, 0x17, 0xa4, 0x88, 0x5f, 0xa8,
+ 0x57, 0x84, 0xfe, 0x88,
+};
+static const struct drbg_kat_no_reseed kat1384_t = {
+ 3, kat1384_entropyin, kat1384_nonce, kat1384_persstr,
+ kat1384_addin0, kat1384_addin1, kat1384_retbits
+};
+static const struct drbg_kat kat1384 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1384_t
+};
+
+static const unsigned char kat1385_entropyin[] = {
+ 0xe4, 0xbf, 0x9e, 0xdc, 0x2a, 0x80, 0xb8, 0x2b, 0x9c, 0xed, 0xcf, 0xc2,
+ 0x4a, 0xad, 0xcc, 0x1c, 0x86, 0x87, 0xb2, 0x83, 0xd2, 0xc8, 0xd7, 0xa2,
+ 0xe8, 0xe6, 0xe3, 0x21, 0xd8, 0x2b, 0xca, 0x7f, 0x39, 0x52, 0x2f, 0x16,
+ 0xf0, 0xeb, 0xe0, 0x5d, 0x9f, 0x34, 0xa6, 0x79, 0xba, 0xab, 0xda, 0xbf,
+};
+static const unsigned char kat1385_nonce[] = {0};
+static const unsigned char kat1385_persstr[] = {0};
+static const unsigned char kat1385_addin0[] = {0};
+static const unsigned char kat1385_addin1[] = {0};
+static const unsigned char kat1385_retbits[] = {
+ 0x03, 0x4e, 0x73, 0xc2, 0xd0, 0x87, 0xc0, 0xc8, 0x56, 0x0b, 0xe9, 0x1b,
+ 0xce, 0x03, 0x5f, 0x21, 0x01, 0x05, 0xc3, 0xa0, 0x55, 0x57, 0x32, 0x38,
+ 0xe5, 0xf7, 0xd3, 0xff, 0x81, 0xc4, 0x34, 0x69, 0x2e, 0x73, 0x1f, 0xf9,
+ 0x24, 0x60, 0x9a, 0xb3, 0x65, 0x5b, 0x82, 0xab, 0xc0, 0x11, 0xce, 0xba,
+ 0x4f, 0xad, 0x2d, 0x66, 0xa1, 0x52, 0x23, 0x96, 0x11, 0xcf, 0xc5, 0x80,
+ 0xe0, 0x5f, 0xa5, 0x4c,
+};
+static const struct drbg_kat_no_reseed kat1385_t = {
+ 4, kat1385_entropyin, kat1385_nonce, kat1385_persstr,
+ kat1385_addin0, kat1385_addin1, kat1385_retbits
+};
+static const struct drbg_kat kat1385 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1385_t
+};
+
+static const unsigned char kat1386_entropyin[] = {
+ 0x5c, 0xe9, 0xed, 0xc1, 0x2b, 0xe6, 0xc7, 0x8d, 0xb3, 0xf1, 0xb9, 0x8a,
+ 0xe5, 0x35, 0xa3, 0xc8, 0x95, 0x8b, 0xee, 0xbd, 0xa0, 0x59, 0x4f, 0x23,
+ 0x9b, 0x62, 0x65, 0xff, 0x81, 0x21, 0x6c, 0x59, 0x8b, 0xbb, 0x67, 0x38,
+ 0x2e, 0xfc, 0x01, 0x91, 0xe8, 0x62, 0x66, 0xd7, 0xe6, 0x2a, 0xad, 0xf1,
+};
+static const unsigned char kat1386_nonce[] = {0};
+static const unsigned char kat1386_persstr[] = {0};
+static const unsigned char kat1386_addin0[] = {0};
+static const unsigned char kat1386_addin1[] = {0};
+static const unsigned char kat1386_retbits[] = {
+ 0x2e, 0xbc, 0xbb, 0x47, 0x08, 0xf6, 0x32, 0x5f, 0xd3, 0x8d, 0x46, 0x3f,
+ 0x45, 0x1a, 0xcb, 0x2b, 0x2d, 0x58, 0xd7, 0xa8, 0x56, 0x65, 0x26, 0x25,
+ 0x4b, 0x47, 0x2e, 0x33, 0x90, 0xd5, 0x90, 0xa0, 0x11, 0xc6, 0x7f, 0xac,
+ 0x45, 0x14, 0x12, 0x6f, 0xce, 0x0c, 0xf9, 0xd7, 0x50, 0x60, 0xa2, 0xfb,
+ 0xa8, 0xc3, 0x8e, 0x0f, 0xfa, 0x69, 0x0f, 0x8d, 0xc7, 0x43, 0x2b, 0x94,
+ 0x28, 0x57, 0x87, 0xd3,
+};
+static const struct drbg_kat_no_reseed kat1386_t = {
+ 5, kat1386_entropyin, kat1386_nonce, kat1386_persstr,
+ kat1386_addin0, kat1386_addin1, kat1386_retbits
+};
+static const struct drbg_kat kat1386 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1386_t
+};
+
+static const unsigned char kat1387_entropyin[] = {
+ 0xa7, 0xd0, 0xdb, 0x93, 0xe7, 0x7f, 0xf1, 0xd1, 0xae, 0x04, 0xa8, 0x2b,
+ 0x7f, 0xb1, 0xc1, 0xdc, 0xf3, 0x3a, 0x1a, 0x63, 0x5b, 0xf5, 0x76, 0xbd,
+ 0x4a, 0xca, 0x14, 0x8e, 0xfb, 0xf9, 0x9c, 0x20, 0x00, 0x0e, 0xc4, 0x93,
+ 0x1b, 0x4c, 0xc3, 0xcd, 0x33, 0xe9, 0x0f, 0xac, 0x35, 0x1e, 0xed, 0xae,
+};
+static const unsigned char kat1387_nonce[] = {0};
+static const unsigned char kat1387_persstr[] = {0};
+static const unsigned char kat1387_addin0[] = {0};
+static const unsigned char kat1387_addin1[] = {0};
+static const unsigned char kat1387_retbits[] = {
+ 0x06, 0x10, 0xcf, 0x7d, 0xb6, 0x03, 0x86, 0xba, 0x11, 0xb4, 0xee, 0x09,
+ 0x14, 0xf4, 0xda, 0x29, 0x04, 0x13, 0xa4, 0x5a, 0x2e, 0xc5, 0x52, 0x96,
+ 0x32, 0x8c, 0xf4, 0xe9, 0xcc, 0xe0, 0x13, 0x5e, 0xcc, 0x8f, 0x4d, 0x79,
+ 0x15, 0xf1, 0x3f, 0xd5, 0xb1, 0xcf, 0x7c, 0x93, 0x3e, 0xf4, 0xa1, 0x6e,
+ 0xa6, 0x72, 0x7e, 0xc7, 0x8e, 0xa4, 0x2a, 0x1e, 0x5b, 0xb0, 0x0b, 0x49,
+ 0x30, 0x10, 0xac, 0xfe,
+};
+static const struct drbg_kat_no_reseed kat1387_t = {
+ 6, kat1387_entropyin, kat1387_nonce, kat1387_persstr,
+ kat1387_addin0, kat1387_addin1, kat1387_retbits
+};
+static const struct drbg_kat kat1387 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1387_t
+};
+
+static const unsigned char kat1388_entropyin[] = {
+ 0xb3, 0xbb, 0xa7, 0x1d, 0x87, 0xb1, 0x11, 0x15, 0xa8, 0x37, 0x3c, 0x1c,
+ 0x82, 0xef, 0x2d, 0x03, 0x5c, 0x47, 0xd1, 0x85, 0x8f, 0x6f, 0xea, 0x1c,
+ 0xae, 0xe3, 0x4a, 0x9e, 0xde, 0x78, 0x21, 0x5f, 0x27, 0xa5, 0xd5, 0x1f,
+ 0xbe, 0x6a, 0x54, 0x21, 0xbe, 0x5b, 0xa7, 0xa3, 0x48, 0xf4, 0x11, 0x5b,
+};
+static const unsigned char kat1388_nonce[] = {0};
+static const unsigned char kat1388_persstr[] = {0};
+static const unsigned char kat1388_addin0[] = {0};
+static const unsigned char kat1388_addin1[] = {0};
+static const unsigned char kat1388_retbits[] = {
+ 0x0e, 0x56, 0x84, 0xcf, 0x87, 0x4f, 0x96, 0xb2, 0x62, 0xd7, 0x98, 0x84,
+ 0xde, 0x6e, 0xa2, 0x18, 0x62, 0xb0, 0x1d, 0x07, 0x6e, 0x47, 0xbe, 0x99,
+ 0x69, 0xd5, 0x54, 0x79, 0x1e, 0xb8, 0x10, 0x59, 0x83, 0xb0, 0x36, 0x49,
+ 0x76, 0xee, 0xe0, 0x3a, 0x7a, 0xf1, 0xc3, 0x7f, 0x8d, 0xc7, 0x31, 0xe7,
+ 0xd3, 0x76, 0x19, 0xfe, 0x98, 0x97, 0x7f, 0x60, 0x7e, 0xdb, 0x1a, 0x18,
+ 0xa0, 0xc9, 0x6d, 0xdb,
+};
+static const struct drbg_kat_no_reseed kat1388_t = {
+ 7, kat1388_entropyin, kat1388_nonce, kat1388_persstr,
+ kat1388_addin0, kat1388_addin1, kat1388_retbits
+};
+static const struct drbg_kat kat1388 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1388_t
+};
+
+static const unsigned char kat1389_entropyin[] = {
+ 0x65, 0xf0, 0x4b, 0x9f, 0x59, 0xc0, 0x1d, 0x80, 0xb5, 0xba, 0x9b, 0x17,
+ 0x12, 0x2e, 0x9c, 0xfe, 0x9b, 0xa5, 0x4f, 0x70, 0x8b, 0xc7, 0x60, 0x8a,
+ 0x0b, 0xcb, 0x96, 0x0c, 0xd4, 0x12, 0x41, 0x65, 0xac, 0x88, 0x6f, 0xf0,
+ 0xde, 0x77, 0x06, 0x4b, 0x01, 0xee, 0x4d, 0x18, 0x3c, 0xdd, 0xd3, 0x52,
+};
+static const unsigned char kat1389_nonce[] = {0};
+static const unsigned char kat1389_persstr[] = {0};
+static const unsigned char kat1389_addin0[] = {0};
+static const unsigned char kat1389_addin1[] = {0};
+static const unsigned char kat1389_retbits[] = {
+ 0x23, 0x7a, 0x26, 0x29, 0x58, 0xa1, 0x6c, 0x52, 0x21, 0x0b, 0xc6, 0xfb,
+ 0xa0, 0xa0, 0x5b, 0x79, 0x5b, 0x6f, 0x86, 0x6f, 0x97, 0x69, 0xaa, 0xfa,
+ 0x0c, 0xc2, 0x6d, 0x15, 0x7f, 0x28, 0xee, 0x0b, 0xdb, 0x10, 0xc2, 0x64,
+ 0x2b, 0xdc, 0x15, 0xdf, 0xb2, 0x51, 0xa1, 0xf0, 0x09, 0x48, 0xec, 0x97,
+ 0x42, 0x05, 0xdb, 0x45, 0xc0, 0xe5, 0x51, 0xd6, 0x6e, 0xf5, 0xa2, 0x9e,
+ 0x06, 0xe8, 0x72, 0x01,
+};
+static const struct drbg_kat_no_reseed kat1389_t = {
+ 8, kat1389_entropyin, kat1389_nonce, kat1389_persstr,
+ kat1389_addin0, kat1389_addin1, kat1389_retbits
+};
+static const struct drbg_kat kat1389 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1389_t
+};
+
+static const unsigned char kat1390_entropyin[] = {
+ 0xea, 0x43, 0xc2, 0x91, 0xee, 0xb5, 0xdc, 0xe5, 0x5c, 0x76, 0x33, 0x92,
+ 0x86, 0x26, 0x0a, 0x7c, 0xe4, 0x1c, 0x24, 0x6b, 0x7f, 0x84, 0xff, 0x5c,
+ 0x83, 0x41, 0x8f, 0x01, 0x39, 0x7e, 0x46, 0xad, 0xe4, 0xfc, 0x95, 0x10,
+ 0xc2, 0xb8, 0xc7, 0xd6, 0x8d, 0xcf, 0xa1, 0x35, 0x8c, 0x3f, 0xa1, 0x29,
+};
+static const unsigned char kat1390_nonce[] = {0};
+static const unsigned char kat1390_persstr[] = {0};
+static const unsigned char kat1390_addin0[] = {0};
+static const unsigned char kat1390_addin1[] = {0};
+static const unsigned char kat1390_retbits[] = {
+ 0x7e, 0xdd, 0x8b, 0xdc, 0x5e, 0x83, 0x69, 0xe5, 0x1d, 0x9d, 0x55, 0x11,
+ 0x03, 0xab, 0xeb, 0x91, 0x0c, 0x73, 0xed, 0x10, 0xfe, 0xd4, 0x12, 0x22,
+ 0x40, 0x03, 0x96, 0xab, 0xea, 0x1c, 0x18, 0x03, 0x44, 0x09, 0x6e, 0xb4,
+ 0x1b, 0xd4, 0x4a, 0x59, 0xda, 0xab, 0x19, 0xfc, 0xb9, 0xff, 0x40, 0x62,
+ 0x96, 0x9e, 0x11, 0xf3, 0xcf, 0xa7, 0x96, 0x09, 0x1b, 0x60, 0x88, 0x14,
+ 0xcc, 0xc2, 0xe7, 0x13,
+};
+static const struct drbg_kat_no_reseed kat1390_t = {
+ 9, kat1390_entropyin, kat1390_nonce, kat1390_persstr,
+ kat1390_addin0, kat1390_addin1, kat1390_retbits
+};
+static const struct drbg_kat kat1390 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1390_t
+};
+
+static const unsigned char kat1391_entropyin[] = {
+ 0x57, 0xd2, 0xb1, 0xcb, 0x0e, 0x13, 0x7e, 0x3b, 0xe1, 0x50, 0xa9, 0xf4,
+ 0x0c, 0x89, 0x6c, 0xba, 0x0a, 0x58, 0x33, 0x5c, 0x0d, 0x92, 0x70, 0x59,
+ 0xd3, 0xc9, 0xb6, 0x3a, 0xb9, 0x80, 0x0e, 0x81, 0xcd, 0x98, 0x03, 0xd1,
+ 0x62, 0x5f, 0x3f, 0xe5, 0x53, 0xa6, 0x90, 0xc2, 0x87, 0x87, 0xc4, 0x5f,
+};
+static const unsigned char kat1391_nonce[] = {0};
+static const unsigned char kat1391_persstr[] = {0};
+static const unsigned char kat1391_addin0[] = {0};
+static const unsigned char kat1391_addin1[] = {0};
+static const unsigned char kat1391_retbits[] = {
+ 0xef, 0x27, 0x8d, 0x11, 0xa6, 0xd6, 0x94, 0xb3, 0x0e, 0xd5, 0xa1, 0x08,
+ 0x1e, 0xb2, 0xbf, 0x3d, 0x2e, 0xd7, 0x87, 0x25, 0xa6, 0x7e, 0xd7, 0xe0,
+ 0x14, 0xf7, 0x9e, 0x5b, 0xe2, 0xef, 0xfe, 0x68, 0x71, 0xaf, 0x2b, 0xdf,
+ 0xef, 0xfc, 0xc6, 0xca, 0x99, 0x9c, 0x09, 0x7c, 0x62, 0x01, 0x84, 0xfc,
+ 0x60, 0x71, 0x3a, 0xa3, 0x99, 0x07, 0x90, 0x9d, 0x6e, 0xb1, 0x53, 0xd2,
+ 0xb6, 0x11, 0x67, 0x3c,
+};
+static const struct drbg_kat_no_reseed kat1391_t = {
+ 10, kat1391_entropyin, kat1391_nonce, kat1391_persstr,
+ kat1391_addin0, kat1391_addin1, kat1391_retbits
+};
+static const struct drbg_kat kat1391 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1391_t
+};
+
+static const unsigned char kat1392_entropyin[] = {
+ 0xf5, 0x4d, 0x75, 0xfe, 0x5e, 0x7f, 0xe6, 0xd8, 0x5a, 0x6b, 0x47, 0x22,
+ 0x88, 0xb4, 0x63, 0x3b, 0xd5, 0x43, 0x77, 0xb8, 0xb4, 0xe5, 0x6a, 0x4a,
+ 0xc0, 0x47, 0xba, 0x7c, 0xa2, 0x04, 0x01, 0x37, 0x2a, 0xe2, 0x4c, 0x4b,
+ 0xd1, 0x29, 0x5a, 0xf9, 0xb9, 0x9c, 0xdc, 0xc8, 0xd0, 0xd8, 0x37, 0xb1,
+};
+static const unsigned char kat1392_nonce[] = {0};
+static const unsigned char kat1392_persstr[] = {0};
+static const unsigned char kat1392_addin0[] = {0};
+static const unsigned char kat1392_addin1[] = {0};
+static const unsigned char kat1392_retbits[] = {
+ 0xc8, 0xb5, 0xcb, 0x19, 0xfd, 0x44, 0x34, 0x22, 0x53, 0x3d, 0xa7, 0x4d,
+ 0xaf, 0xb2, 0xe3, 0xa7, 0x3b, 0xef, 0x13, 0xb9, 0xcf, 0x1c, 0x1c, 0xe6,
+ 0x10, 0x40, 0x78, 0x55, 0x71, 0x35, 0x32, 0x20, 0xca, 0xab, 0x0b, 0x4e,
+ 0xd1, 0xfa, 0x37, 0x30, 0x2a, 0x30, 0x8a, 0x31, 0xe1, 0xc7, 0xe4, 0x4d,
+ 0xb4, 0x66, 0x9a, 0x86, 0x8d, 0xa8, 0x53, 0x6e, 0x68, 0x89, 0xbe, 0x3e,
+ 0xc6, 0x15, 0x45, 0xfe,
+};
+static const struct drbg_kat_no_reseed kat1392_t = {
+ 11, kat1392_entropyin, kat1392_nonce, kat1392_persstr,
+ kat1392_addin0, kat1392_addin1, kat1392_retbits
+};
+static const struct drbg_kat kat1392 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1392_t
+};
+
+static const unsigned char kat1393_entropyin[] = {
+ 0x1f, 0x2f, 0xd9, 0x79, 0x65, 0x6d, 0x5a, 0xf3, 0xcb, 0x2b, 0xf9, 0xa4,
+ 0x49, 0xb2, 0xe0, 0x78, 0x35, 0xb9, 0x59, 0xe2, 0x18, 0x31, 0x74, 0x18,
+ 0xdb, 0xd1, 0x0a, 0x01, 0x67, 0x96, 0xe2, 0x1a, 0x64, 0x45, 0x3c, 0x76,
+ 0x51, 0x30, 0xb7, 0xd8, 0x26, 0x81, 0xa7, 0x0c, 0xfa, 0x43, 0x89, 0x75,
+};
+static const unsigned char kat1393_nonce[] = {0};
+static const unsigned char kat1393_persstr[] = {0};
+static const unsigned char kat1393_addin0[] = {0};
+static const unsigned char kat1393_addin1[] = {0};
+static const unsigned char kat1393_retbits[] = {
+ 0x40, 0x88, 0x42, 0xf1, 0x5a, 0x33, 0x51, 0x92, 0x89, 0x64, 0xe7, 0x79,
+ 0x28, 0xbf, 0xec, 0xb8, 0xdc, 0x0c, 0x27, 0x25, 0xa0, 0xb4, 0x70, 0xed,
+ 0xb7, 0x4a, 0x13, 0x91, 0xfe, 0xd9, 0x1b, 0x40, 0x01, 0x04, 0x31, 0xe4,
+ 0x76, 0x7c, 0xf8, 0xe8, 0x6b, 0x3f, 0x64, 0x0f, 0x4e, 0x98, 0xa1, 0xef,
+ 0x4e, 0x54, 0xf5, 0xa5, 0xd3, 0xbb, 0xf6, 0x9c, 0x4c, 0x7a, 0x46, 0x2a,
+ 0xd6, 0x7a, 0x6a, 0xe5,
+};
+static const struct drbg_kat_no_reseed kat1393_t = {
+ 12, kat1393_entropyin, kat1393_nonce, kat1393_persstr,
+ kat1393_addin0, kat1393_addin1, kat1393_retbits
+};
+static const struct drbg_kat kat1393 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1393_t
+};
+
+static const unsigned char kat1394_entropyin[] = {
+ 0x72, 0x79, 0x67, 0x6c, 0xff, 0x67, 0x61, 0xdd, 0x73, 0x8a, 0x34, 0x7b,
+ 0x64, 0x4e, 0x69, 0x1e, 0x0f, 0xec, 0xbc, 0xd8, 0x2c, 0x2f, 0x07, 0x36,
+ 0xa2, 0x61, 0xda, 0x3a, 0x66, 0x33, 0x25, 0x9f, 0x56, 0xbd, 0xc4, 0x4d,
+ 0xcf, 0x0d, 0x0b, 0xda, 0x35, 0xbf, 0xe7, 0x74, 0x63, 0x26, 0x5c, 0x0a,
+};
+static const unsigned char kat1394_nonce[] = {0};
+static const unsigned char kat1394_persstr[] = {0};
+static const unsigned char kat1394_addin0[] = {0};
+static const unsigned char kat1394_addin1[] = {0};
+static const unsigned char kat1394_retbits[] = {
+ 0xdb, 0xeb, 0x1d, 0xe3, 0x4b, 0x0e, 0x6f, 0x1c, 0x96, 0xcf, 0x4a, 0xfd,
+ 0x1e, 0x12, 0x30, 0xe4, 0x34, 0xbc, 0xb1, 0xa5, 0x49, 0x7f, 0x79, 0x78,
+ 0x71, 0xe1, 0x6a, 0xa3, 0xf6, 0x0f, 0x8d, 0xbc, 0xb4, 0xb3, 0xf0, 0x20,
+ 0xbc, 0xa9, 0x4f, 0x23, 0xe3, 0x5d, 0x49, 0x40, 0x62, 0x23, 0x8b, 0x45,
+ 0x8e, 0xf3, 0xd3, 0xd9, 0xfc, 0xb2, 0xb5, 0x1a, 0xa1, 0x1c, 0xa6, 0xb8,
+ 0x3a, 0x20, 0x6c, 0x1e,
+};
+static const struct drbg_kat_no_reseed kat1394_t = {
+ 13, kat1394_entropyin, kat1394_nonce, kat1394_persstr,
+ kat1394_addin0, kat1394_addin1, kat1394_retbits
+};
+static const struct drbg_kat kat1394 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1394_t
+};
+
+static const unsigned char kat1395_entropyin[] = {
+ 0xc1, 0xfd, 0xb2, 0x16, 0x7e, 0x6d, 0xb3, 0x31, 0xa3, 0xe7, 0x96, 0xc8,
+ 0x3c, 0x8b, 0x10, 0x35, 0x26, 0x50, 0xc2, 0x0c, 0xdc, 0xc4, 0x1b, 0x85,
+ 0x9f, 0x8b, 0x00, 0x59, 0xf2, 0x63, 0x8b, 0xdc, 0xec, 0xa6, 0x12, 0x09,
+ 0x28, 0xc3, 0x31, 0x1b, 0x6b, 0x8d, 0x76, 0x4a, 0x67, 0xb4, 0x71, 0x92,
+};
+static const unsigned char kat1395_nonce[] = {0};
+static const unsigned char kat1395_persstr[] = {0};
+static const unsigned char kat1395_addin0[] = {0};
+static const unsigned char kat1395_addin1[] = {0};
+static const unsigned char kat1395_retbits[] = {
+ 0xb9, 0xec, 0x75, 0x3c, 0xa4, 0x6b, 0xdc, 0x10, 0x58, 0xf5, 0xb7, 0x7a,
+ 0x9d, 0x1d, 0x9d, 0x70, 0x90, 0xd0, 0xb7, 0x0f, 0x8b, 0x99, 0x95, 0x65,
+ 0x8b, 0x8d, 0x5a, 0xbc, 0xb6, 0x84, 0x62, 0xa0, 0x9c, 0x59, 0xcf, 0x40,
+ 0x4b, 0xc4, 0xa6, 0x25, 0x03, 0x7b, 0x52, 0xba, 0x10, 0xe3, 0x36, 0xc2,
+ 0xbb, 0xd0, 0x49, 0xa5, 0x07, 0xfd, 0xb9, 0x5e, 0x32, 0xd0, 0x99, 0x04,
+ 0xa2, 0x48, 0x2f, 0x97,
+};
+static const struct drbg_kat_no_reseed kat1395_t = {
+ 14, kat1395_entropyin, kat1395_nonce, kat1395_persstr,
+ kat1395_addin0, kat1395_addin1, kat1395_retbits
+};
+static const struct drbg_kat kat1395 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat1395_t
+};
+
+static const unsigned char kat1396_entropyin[] = {
+ 0x17, 0xf5, 0x9a, 0x45, 0x48, 0x0d, 0xc7, 0x4b, 0xc3, 0x5c, 0x52, 0xc5,
+ 0xba, 0xcc, 0x06, 0xde, 0xa9, 0xce, 0x7e, 0x4a, 0x6e, 0x1f, 0x3a, 0xd9,
+ 0x2f, 0x92, 0xcc, 0x12, 0xc7, 0x01, 0x85, 0xee, 0xa5, 0xec, 0xb2, 0x92,
+ 0x43, 0x42, 0x70, 0x0c, 0xe0, 0xff, 0x74, 0x81, 0xab, 0x1a, 0x01, 0xa2,
+};
+static const unsigned char kat1396_nonce[] = {0};
+static const unsigned char kat1396_persstr[] = {0};
+static const unsigned char kat1396_addin0[] = {
+ 0x03, 0x47, 0xd6, 0x94, 0x41, 0xec, 0x40, 0x54, 0x30, 0x06, 0xc0, 0x41,
+ 0x33, 0x75, 0xfc, 0xb1, 0x0b, 0x81, 0x23, 0xc0, 0x86, 0x43, 0x87, 0x87,
+ 0x69, 0x21, 0x91, 0x6c, 0x7b, 0x08, 0xaa, 0x8f, 0x04, 0x73, 0xa2, 0x1f,
+ 0x91, 0xcc, 0x5e, 0x7c, 0x94, 0x34, 0x53, 0x03, 0x09, 0x82, 0xd1, 0x04,
+};
+static const unsigned char kat1396_addin1[] = {
+ 0x03, 0xf6, 0x2d, 0x5f, 0xb8, 0x8b, 0xd8, 0x12, 0xd3, 0xee, 0x02, 0x72,
+ 0xad, 0xb5, 0x39, 0x36, 0x17, 0xce, 0x5e, 0x70, 0x51, 0xda, 0x23, 0x54,
+ 0xd3, 0xfd, 0x79, 0x81, 0x86, 0x3b, 0x18, 0x4e, 0x8f, 0x4a, 0x56, 0x7b,
+ 0x2a, 0xaa, 0x48, 0xd2, 0xb3, 0x7a, 0x80, 0xbf, 0x9c, 0x09, 0x04, 0x36,
+};
+static const unsigned char kat1396_retbits[] = {
+ 0x32, 0xbb, 0x42, 0x43, 0x25, 0x5b, 0x23, 0xe9, 0x6e, 0x02, 0x14, 0x2a,
+ 0x4f, 0xa8, 0x9b, 0x2b, 0xd8, 0x53, 0xf2, 0x6a, 0x3e, 0x6d, 0x4c, 0xc6,
+ 0xab, 0x9b, 0x2c, 0x1f, 0xe9, 0xd4, 0x4b, 0xea, 0xb8, 0xb6, 0x18, 0xee,
+ 0x8d, 0xb1, 0x7f, 0x02, 0x66, 0x8d, 0xca, 0xf9, 0xf7, 0xf2, 0x08, 0x00,
+ 0x9a, 0x92, 0x47, 0xeb, 0x65, 0xf7, 0x8f, 0xf7, 0xd0, 0xb6, 0xbe, 0x1f,
+ 0x7a, 0xa0, 0x2f, 0x83,
+};
+static const struct drbg_kat_no_reseed kat1396_t = {
+ 0, kat1396_entropyin, kat1396_nonce, kat1396_persstr,
+ kat1396_addin0, kat1396_addin1, kat1396_retbits
+};
+static const struct drbg_kat kat1396 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1396_t
+};
+
+static const unsigned char kat1397_entropyin[] = {
+ 0x97, 0x75, 0x4e, 0x2d, 0x56, 0x40, 0x01, 0xe3, 0x53, 0x27, 0x08, 0x87,
+ 0xbb, 0xc2, 0x47, 0x8c, 0x92, 0xbb, 0xd9, 0x12, 0x17, 0x3a, 0x68, 0x76,
+ 0x55, 0xad, 0x17, 0x88, 0x83, 0xc6, 0xc3, 0x64, 0xbb, 0x5c, 0x96, 0xc8,
+ 0x40, 0x90, 0x07, 0x94, 0x34, 0xb1, 0x2d, 0x65, 0xb2, 0xcd, 0xd7, 0xd3,
+};
+static const unsigned char kat1397_nonce[] = {0};
+static const unsigned char kat1397_persstr[] = {0};
+static const unsigned char kat1397_addin0[] = {
+ 0xbf, 0x3e, 0x3c, 0xce, 0xf1, 0xa7, 0x94, 0x81, 0x8d, 0x7f, 0x10, 0x01,
+ 0xe0, 0xe5, 0xe6, 0x03, 0x62, 0x00, 0x0a, 0xa2, 0x19, 0x3b, 0x4f, 0x48,
+ 0x7c, 0xc4, 0x61, 0xb8, 0xbd, 0x0e, 0x07, 0xab, 0x33, 0x99, 0x36, 0x25,
+ 0x80, 0x8f, 0x3f, 0x70, 0x5c, 0x37, 0xbe, 0xd8, 0x56, 0x3b, 0x4a, 0x3d,
+};
+static const unsigned char kat1397_addin1[] = {
+ 0x2f, 0xe2, 0x78, 0x8a, 0x5c, 0x9c, 0xd1, 0x52, 0x73, 0x2c, 0x14, 0x6c,
+ 0xc8, 0x0a, 0x67, 0xf1, 0x0e, 0xee, 0xc3, 0xfd, 0x1d, 0x45, 0xe0, 0x42,
+ 0xd5, 0xea, 0x1b, 0x08, 0x83, 0xee, 0x32, 0x48, 0x7a, 0x01, 0x98, 0x9f,
+ 0xf2, 0x96, 0x69, 0x89, 0x3f, 0x0c, 0x1f, 0x96, 0xb0, 0x31, 0xd2, 0x68,
+};
+static const unsigned char kat1397_retbits[] = {
+ 0x3f, 0x98, 0xbf, 0xa8, 0xde, 0x8c, 0x71, 0x30, 0xbc, 0x6c, 0xdf, 0x5c,
+ 0x01, 0xe6, 0x06, 0xb9, 0x5b, 0x3d, 0xaa, 0x38, 0xeb, 0x6d, 0x6f, 0xf7,
+ 0x3a, 0xd2, 0x2f, 0xa7, 0x0f, 0x5a, 0xf3, 0x0d, 0x98, 0x70, 0x27, 0xae,
+ 0xea, 0xa5, 0x95, 0x8b, 0x8e, 0x12, 0x0e, 0xc0, 0x45, 0xa8, 0x90, 0x7b,
+ 0x3a, 0xf3, 0x1c, 0x3d, 0x38, 0x33, 0x1b, 0x5d, 0xa3, 0x42, 0xc5, 0xee,
+ 0x61, 0x4b, 0xb2, 0x05,
+};
+static const struct drbg_kat_no_reseed kat1397_t = {
+ 1, kat1397_entropyin, kat1397_nonce, kat1397_persstr,
+ kat1397_addin0, kat1397_addin1, kat1397_retbits
+};
+static const struct drbg_kat kat1397 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1397_t
+};
+
+static const unsigned char kat1398_entropyin[] = {
+ 0x56, 0x33, 0x05, 0x51, 0x6e, 0xc2, 0x02, 0xd9, 0x4e, 0x04, 0x73, 0x25,
+ 0x2f, 0x02, 0x2f, 0xa6, 0x6a, 0x91, 0x99, 0xd0, 0x91, 0xae, 0xf9, 0x4e,
+ 0xce, 0xa7, 0xc6, 0xe5, 0xec, 0x23, 0x57, 0x14, 0xc5, 0xee, 0xfb, 0x0d,
+ 0x15, 0x96, 0xb5, 0xf8, 0x53, 0x52, 0x32, 0x2c, 0xab, 0xe1, 0x18, 0xe1,
+};
+static const unsigned char kat1398_nonce[] = {0};
+static const unsigned char kat1398_persstr[] = {0};
+static const unsigned char kat1398_addin0[] = {
+ 0xe0, 0xa1, 0x55, 0x73, 0x9a, 0xe9, 0x9b, 0xd9, 0x15, 0x8d, 0x4a, 0x68,
+ 0x6f, 0x6f, 0x0c, 0x1d, 0x58, 0xd0, 0x07, 0xf8, 0xfd, 0xfb, 0x4a, 0x20,
+ 0x8d, 0x55, 0x2f, 0x7e, 0x2d, 0x45, 0x0c, 0xc5, 0x5a, 0xdf, 0x3c, 0x1e,
+ 0x65, 0x13, 0xac, 0x2b, 0x84, 0x92, 0x27, 0xef, 0xa0, 0x82, 0xfb, 0x66,
+};
+static const unsigned char kat1398_addin1[] = {
+ 0x88, 0x54, 0xfe, 0x62, 0xdb, 0xd2, 0x36, 0xaa, 0x13, 0xc9, 0x4f, 0x29,
+ 0xfe, 0xd7, 0x92, 0xd6, 0x0b, 0x90, 0x24, 0x0d, 0x20, 0xf8, 0x87, 0x86,
+ 0x4e, 0xe9, 0x1b, 0x06, 0x21, 0xf1, 0xa1, 0x5f, 0x1b, 0x16, 0x94, 0x60,
+ 0x87, 0xfc, 0xe5, 0x19, 0x6a, 0x03, 0x77, 0x45, 0x02, 0x59, 0x6d, 0x36,
+};
+static const unsigned char kat1398_retbits[] = {
+ 0xce, 0x71, 0x4f, 0xa9, 0x12, 0x7a, 0x97, 0x99, 0x0c, 0xff, 0xa4, 0x15,
+ 0x04, 0x38, 0x51, 0x37, 0xd7, 0x7c, 0xde, 0x49, 0x08, 0x6b, 0x85, 0xd0,
+ 0xe3, 0x0c, 0xc2, 0xe9, 0xb6, 0xff, 0x38, 0x16, 0xc6, 0x24, 0x38, 0x76,
+ 0x4f, 0x4c, 0xfb, 0x3c, 0xa4, 0x1b, 0x5e, 0xf5, 0xcd, 0x76, 0x57, 0x2a,
+ 0x5b, 0x1a, 0x4b, 0xf4, 0x13, 0x42, 0x50, 0x00, 0x08, 0x42, 0x55, 0xde,
+ 0x7f, 0x52, 0x93, 0x5c,
+};
+static const struct drbg_kat_no_reseed kat1398_t = {
+ 2, kat1398_entropyin, kat1398_nonce, kat1398_persstr,
+ kat1398_addin0, kat1398_addin1, kat1398_retbits
+};
+static const struct drbg_kat kat1398 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1398_t
+};
+
+static const unsigned char kat1399_entropyin[] = {
+ 0x0f, 0xf0, 0xbe, 0x15, 0xbd, 0x51, 0x71, 0x89, 0x50, 0x53, 0xc0, 0xb4,
+ 0x41, 0x31, 0x4a, 0x9b, 0x50, 0x47, 0xc9, 0xbc, 0x3f, 0x3f, 0x2c, 0xda,
+ 0xa2, 0x47, 0x20, 0xbf, 0x1f, 0xaf, 0x9a, 0x00, 0xeb, 0x4b, 0x4e, 0x08,
+ 0x67, 0x3a, 0xee, 0x5b, 0xd7, 0xb8, 0x85, 0x79, 0xc0, 0xcc, 0xc9, 0x52,
+};
+static const unsigned char kat1399_nonce[] = {0};
+static const unsigned char kat1399_persstr[] = {0};
+static const unsigned char kat1399_addin0[] = {
+ 0xcb, 0x56, 0x73, 0xb8, 0x9d, 0xd9, 0xc5, 0x7c, 0xd9, 0x7d, 0x59, 0xc4,
+ 0x0f, 0xdd, 0xb5, 0xbc, 0xf5, 0x31, 0xbd, 0xfa, 0x97, 0xe9, 0x82, 0x0e,
+ 0x21, 0xe2, 0x1e, 0xc4, 0xa7, 0xf6, 0x08, 0xf4, 0x8f, 0x5f, 0xcf, 0x66,
+ 0x33, 0x7d, 0xc4, 0x8c, 0xa6, 0xa8, 0xb3, 0x47, 0x19, 0x0c, 0x8f, 0x85,
+};
+static const unsigned char kat1399_addin1[] = {
+ 0x23, 0xff, 0xda, 0xa3, 0x6a, 0xcd, 0x09, 0x1f, 0x5a, 0x7b, 0x79, 0x23,
+ 0xa1, 0x99, 0x09, 0xc5, 0x28, 0x32, 0x87, 0xcc, 0x47, 0x05, 0x74, 0xac,
+ 0x00, 0x34, 0x4c, 0x4b, 0xff, 0x3c, 0x6a, 0xe7, 0xb7, 0xb0, 0x4d, 0xad,
+ 0x9e, 0x20, 0xe9, 0x14, 0x71, 0xb4, 0x29, 0x01, 0x13, 0xd6, 0xa0, 0x56,
+};
+static const unsigned char kat1399_retbits[] = {
+ 0x96, 0xa0, 0xa2, 0xf4, 0x5b, 0x05, 0x49, 0xcb, 0xf0, 0x29, 0x36, 0x31,
+ 0x07, 0x49, 0xb1, 0x7b, 0x39, 0x30, 0xe4, 0xe4, 0xab, 0x49, 0xa0, 0xcb,
+ 0x44, 0x95, 0x34, 0x4f, 0xf8, 0x48, 0x98, 0xf4, 0xae, 0x30, 0x0f, 0x13,
+ 0x1a, 0xfc, 0xeb, 0x1f, 0x52, 0x66, 0x44, 0x97, 0xf9, 0x31, 0xd8, 0xae,
+ 0xa4, 0x8c, 0x3d, 0xec, 0x0f, 0x48, 0xb0, 0x6e, 0xa4, 0xb5, 0x8c, 0x3a,
+ 0x40, 0x12, 0xac, 0xd1,
+};
+static const struct drbg_kat_no_reseed kat1399_t = {
+ 3, kat1399_entropyin, kat1399_nonce, kat1399_persstr,
+ kat1399_addin0, kat1399_addin1, kat1399_retbits
+};
+static const struct drbg_kat kat1399 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1399_t
+};
+
+static const unsigned char kat1400_entropyin[] = {
+ 0x94, 0xcb, 0x0b, 0x45, 0x4e, 0x26, 0x98, 0x6f, 0xb3, 0x7a, 0xb7, 0x8e,
+ 0xa3, 0x52, 0x14, 0x75, 0x6c, 0x1f, 0x40, 0x16, 0xae, 0x3b, 0xd6, 0x90,
+ 0x5d, 0xbd, 0x2a, 0x58, 0x34, 0xc4, 0x7b, 0x72, 0x32, 0xf8, 0x0d, 0x30,
+ 0x43, 0x57, 0xca, 0x0b, 0xf3, 0xf4, 0xaa, 0x5d, 0xac, 0x19, 0x4f, 0x33,
+};
+static const unsigned char kat1400_nonce[] = {0};
+static const unsigned char kat1400_persstr[] = {0};
+static const unsigned char kat1400_addin0[] = {
+ 0xd3, 0x66, 0xde, 0xad, 0x7d, 0x7b, 0xf9, 0x82, 0x5a, 0x38, 0xf4, 0x52,
+ 0xa0, 0x9f, 0xe2, 0x82, 0x82, 0x49, 0xd4, 0x42, 0xe2, 0x23, 0xe0, 0x45,
+ 0xd2, 0x00, 0x6a, 0x2d, 0xc6, 0xd2, 0xb7, 0x80, 0xd2, 0x53, 0x3e, 0x01,
+ 0x23, 0xb1, 0xe0, 0xb1, 0xc4, 0x53, 0x10, 0xb6, 0x03, 0x00, 0xc6, 0xa7,
+};
+static const unsigned char kat1400_addin1[] = {
+ 0x1f, 0x8f, 0xcc, 0x4f, 0x5f, 0x35, 0xbc, 0xf2, 0x0b, 0xe3, 0x1e, 0xfa,
+ 0x7f, 0xf6, 0x2e, 0x72, 0x8c, 0x94, 0x9a, 0x73, 0x7a, 0x72, 0x8f, 0xf8,
+ 0xda, 0x40, 0x9f, 0x4e, 0xf6, 0xd3, 0x16, 0xd8, 0x3f, 0x34, 0x0c, 0x10,
+ 0x8b, 0xc9, 0xe1, 0x65, 0xb9, 0x04, 0x54, 0x87, 0xa9, 0xf5, 0x57, 0xfd,
+};
+static const unsigned char kat1400_retbits[] = {
+ 0xfd, 0x24, 0x5b, 0xa6, 0xfd, 0x85, 0x75, 0xa0, 0xa3, 0xa9, 0xae, 0xf7,
+ 0xf7, 0xe3, 0x4e, 0x0e, 0x33, 0xad, 0xd8, 0x74, 0xbe, 0xe4, 0x30, 0x2f,
+ 0xce, 0x98, 0x69, 0x83, 0x39, 0xf6, 0xe1, 0x58, 0xfa, 0x48, 0x2a, 0x4b,
+ 0xd2, 0x05, 0x62, 0x78, 0xa1, 0x57, 0xb2, 0x86, 0xf8, 0xf0, 0xc4, 0xbb,
+ 0x45, 0x60, 0x21, 0xc8, 0xa3, 0xcb, 0x4c, 0xcf, 0x19, 0x10, 0xd9, 0x54,
+ 0xaf, 0xa8, 0xf3, 0x57,
+};
+static const struct drbg_kat_no_reseed kat1400_t = {
+ 4, kat1400_entropyin, kat1400_nonce, kat1400_persstr,
+ kat1400_addin0, kat1400_addin1, kat1400_retbits
+};
+static const struct drbg_kat kat1400 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1400_t
+};
+
+static const unsigned char kat1401_entropyin[] = {
+ 0x35, 0x11, 0x28, 0x18, 0x09, 0x39, 0x44, 0x9e, 0x8a, 0x30, 0xca, 0xe8,
+ 0x8f, 0x56, 0xef, 0x82, 0xd3, 0xa7, 0x12, 0x61, 0x4a, 0x84, 0x3a, 0x91,
+ 0x19, 0xa5, 0x17, 0x7c, 0x66, 0xc9, 0x87, 0xbf, 0x65, 0xe5, 0x78, 0x79,
+ 0x19, 0x59, 0xec, 0x94, 0x65, 0xa4, 0xa3, 0x00, 0xe5, 0x2c, 0xdf, 0x39,
+};
+static const unsigned char kat1401_nonce[] = {0};
+static const unsigned char kat1401_persstr[] = {0};
+static const unsigned char kat1401_addin0[] = {
+ 0x90, 0x29, 0x7a, 0x2b, 0x82, 0x79, 0x80, 0x3f, 0xc8, 0xbc, 0xfc, 0xc3,
+ 0xe8, 0xb6, 0xe6, 0x6d, 0x0e, 0x4d, 0xb3, 0x6b, 0x77, 0xfa, 0x2d, 0xb7,
+ 0xb6, 0x35, 0x59, 0x79, 0x0d, 0xfd, 0x0a, 0x6a, 0x78, 0x3a, 0xdf, 0xbe,
+ 0xfe, 0xf6, 0xfe, 0xcf, 0x98, 0x43, 0x8a, 0x71, 0x3d, 0x77, 0xa2, 0x03,
+};
+static const unsigned char kat1401_addin1[] = {
+ 0x35, 0xd4, 0x31, 0x71, 0xf2, 0x14, 0x33, 0x46, 0xa4, 0xc5, 0x4b, 0x27,
+ 0x29, 0x16, 0xcd, 0xcc, 0x48, 0x48, 0xa9, 0x58, 0x37, 0xe6, 0xea, 0x0d,
+ 0x04, 0x8a, 0xc2, 0xfa, 0xc3, 0xae, 0xa5, 0xf9, 0x0c, 0xbf, 0x03, 0x34,
+ 0x87, 0xc8, 0x64, 0xc3, 0x32, 0xbe, 0x79, 0xca, 0x51, 0x96, 0xec, 0x2b,
+};
+static const unsigned char kat1401_retbits[] = {
+ 0x8a, 0x86, 0x74, 0x80, 0x10, 0xfb, 0x25, 0x5d, 0x01, 0x24, 0xdb, 0xdf,
+ 0xc3, 0x03, 0x23, 0x21, 0x94, 0xc7, 0xc0, 0x66, 0xe1, 0xbd, 0x26, 0xc8,
+ 0x65, 0xf0, 0x7f, 0x19, 0xae, 0x09, 0xfd, 0xdf, 0xa5, 0x3e, 0x9c, 0x96,
+ 0x4d, 0xcc, 0x55, 0x27, 0x01, 0x63, 0x95, 0xa8, 0x16, 0x4c, 0x5a, 0x5f,
+ 0x24, 0x8d, 0xf6, 0x0f, 0x41, 0xdb, 0x6d, 0xcb, 0x50, 0xd6, 0x85, 0x02,
+ 0xb9, 0x00, 0x17, 0xfc,
+};
+static const struct drbg_kat_no_reseed kat1401_t = {
+ 5, kat1401_entropyin, kat1401_nonce, kat1401_persstr,
+ kat1401_addin0, kat1401_addin1, kat1401_retbits
+};
+static const struct drbg_kat kat1401 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1401_t
+};
+
+static const unsigned char kat1402_entropyin[] = {
+ 0xa6, 0x56, 0x74, 0x26, 0x8f, 0x03, 0xab, 0x24, 0x8c, 0x3a, 0x29, 0xf8,
+ 0x89, 0xfd, 0x62, 0x5b, 0x2b, 0x13, 0xd1, 0xd1, 0xcf, 0xe9, 0xde, 0x10,
+ 0xc9, 0x9f, 0x3a, 0x43, 0x2a, 0xdc, 0x0d, 0xd0, 0x95, 0x5b, 0x7c, 0x98,
+ 0x7b, 0x70, 0x0b, 0x83, 0x65, 0x23, 0x54, 0x8c, 0x42, 0xa1, 0x37, 0xc7,
+};
+static const unsigned char kat1402_nonce[] = {0};
+static const unsigned char kat1402_persstr[] = {0};
+static const unsigned char kat1402_addin0[] = {
+ 0xb5, 0x45, 0xb1, 0x4c, 0xd7, 0x62, 0x55, 0x3d, 0xe0, 0x89, 0x42, 0x95,
+ 0xdf, 0x7c, 0xf3, 0xa5, 0x25, 0x77, 0x08, 0x2c, 0x24, 0x59, 0xba, 0xef,
+ 0xa3, 0xf6, 0x1d, 0x05, 0x80, 0xe2, 0xbf, 0x6c, 0x09, 0xef, 0x25, 0x24,
+ 0x59, 0x6a, 0xeb, 0x83, 0xa2, 0xb6, 0xf8, 0xc5, 0xd4, 0x63, 0x42, 0xea,
+};
+static const unsigned char kat1402_addin1[] = {
+ 0x98, 0x02, 0x25, 0xf5, 0xa6, 0x43, 0xb9, 0xa0, 0xf2, 0xaa, 0x5f, 0x2c,
+ 0x1c, 0x2a, 0xa6, 0x08, 0x9d, 0x07, 0x06, 0xd1, 0x76, 0xcd, 0xb3, 0x18,
+ 0xb5, 0xbe, 0x7c, 0x42, 0x51, 0xb3, 0xb0, 0x22, 0x5d, 0x83, 0x15, 0x94,
+ 0x74, 0x37, 0xef, 0x7f, 0x4f, 0x55, 0x1b, 0xb6, 0x6a, 0xd5, 0x9b, 0x73,
+};
+static const unsigned char kat1402_retbits[] = {
+ 0x28, 0x0a, 0xf4, 0xb1, 0xe2, 0xaf, 0x04, 0xca, 0x4c, 0xef, 0x06, 0x32,
+ 0x53, 0x99, 0x57, 0xec, 0x4f, 0xd5, 0xfa, 0x4d, 0x14, 0xfd, 0x6d, 0xd4,
+ 0xe3, 0xbb, 0x6d, 0x5d, 0x5c, 0xf4, 0x10, 0xec, 0x0e, 0x97, 0x8d, 0xed,
+ 0x48, 0x77, 0x04, 0xdb, 0xac, 0x16, 0x3f, 0xc3, 0xf2, 0xb7, 0x78, 0xce,
+ 0x67, 0xa5, 0x6f, 0x49, 0x7f, 0x72, 0xfa, 0x69, 0xf8, 0x12, 0x2b, 0x8e,
+ 0xb2, 0x3d, 0xb3, 0xdd,
+};
+static const struct drbg_kat_no_reseed kat1402_t = {
+ 6, kat1402_entropyin, kat1402_nonce, kat1402_persstr,
+ kat1402_addin0, kat1402_addin1, kat1402_retbits
+};
+static const struct drbg_kat kat1402 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1402_t
+};
+
+static const unsigned char kat1403_entropyin[] = {
+ 0x36, 0xb8, 0x10, 0x02, 0xe0, 0xff, 0x7e, 0xf2, 0x77, 0x17, 0x8d, 0x04,
+ 0x20, 0x17, 0x42, 0xe8, 0x44, 0xf5, 0xba, 0x93, 0xce, 0x4b, 0xb0, 0xe7,
+ 0x7c, 0x00, 0xee, 0xff, 0x8d, 0xbe, 0x9d, 0x97, 0x4a, 0x56, 0x15, 0x31,
+ 0x6b, 0x24, 0x2b, 0xb2, 0x44, 0xb1, 0x24, 0x9b, 0xbf, 0x14, 0x35, 0x6f,
+};
+static const unsigned char kat1403_nonce[] = {0};
+static const unsigned char kat1403_persstr[] = {0};
+static const unsigned char kat1403_addin0[] = {
+ 0x9b, 0xb3, 0xd9, 0xd6, 0x0d, 0x98, 0x5c, 0x71, 0xac, 0xd2, 0xf0, 0x4e,
+ 0x8c, 0x92, 0xae, 0x7b, 0x7f, 0x89, 0x80, 0x59, 0x81, 0x34, 0x14, 0x0d,
+ 0x2a, 0x12, 0xea, 0x46, 0xcc, 0x47, 0xba, 0x30, 0xbb, 0x11, 0xc8, 0xee,
+ 0x55, 0x4e, 0x17, 0x0b, 0x61, 0x29, 0x54, 0x63, 0xcf, 0x0c, 0x50, 0x7f,
+};
+static const unsigned char kat1403_addin1[] = {
+ 0x30, 0xbb, 0x3d, 0xdc, 0xfa, 0x03, 0x5b, 0x76, 0x08, 0x94, 0x58, 0x98,
+ 0xfe, 0x05, 0x31, 0x1a, 0x57, 0xa4, 0xfa, 0xd4, 0x81, 0x18, 0x4d, 0xa1,
+ 0x88, 0xe2, 0xdd, 0x11, 0x40, 0x3c, 0x51, 0x0b, 0x6f, 0xe8, 0xe1, 0xe4,
+ 0x4f, 0x6e, 0x07, 0x39, 0x73, 0x8e, 0xf8, 0x9c, 0x7c, 0xf8, 0x58, 0x7e,
+};
+static const unsigned char kat1403_retbits[] = {
+ 0x6c, 0x6f, 0xfa, 0x11, 0x40, 0xcd, 0x3e, 0x5f, 0x44, 0x95, 0xcd, 0x5f,
+ 0xa2, 0x3b, 0xcf, 0xbe, 0x06, 0xe6, 0x94, 0x36, 0x4a, 0x3a, 0x61, 0x54,
+ 0xb2, 0x1c, 0xea, 0x21, 0xb8, 0xf2, 0xe1, 0x06, 0x28, 0xef, 0x35, 0x96,
+ 0x9c, 0x31, 0xb8, 0x06, 0x7a, 0xb7, 0x7f, 0xe2, 0x63, 0x1b, 0x53, 0xd3,
+ 0xa4, 0x4e, 0xfc, 0x94, 0x38, 0x3b, 0xee, 0xdd, 0x85, 0x56, 0x7d, 0x96,
+ 0x9c, 0xb4, 0x30, 0x11,
+};
+static const struct drbg_kat_no_reseed kat1403_t = {
+ 7, kat1403_entropyin, kat1403_nonce, kat1403_persstr,
+ kat1403_addin0, kat1403_addin1, kat1403_retbits
+};
+static const struct drbg_kat kat1403 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1403_t
+};
+
+static const unsigned char kat1404_entropyin[] = {
+ 0x03, 0x91, 0x41, 0x20, 0x48, 0x53, 0x75, 0xee, 0x8c, 0x46, 0x95, 0x63,
+ 0xad, 0xfe, 0xdd, 0x27, 0x48, 0x73, 0xb1, 0x1a, 0x83, 0x4d, 0xfd, 0x41,
+ 0x6a, 0xc7, 0x62, 0xc1, 0xec, 0xa7, 0x22, 0x29, 0x68, 0x37, 0x4e, 0x24,
+ 0xe4, 0x44, 0x66, 0x60, 0xd3, 0x49, 0xb0, 0xd7, 0x7f, 0xbc, 0xa9, 0x26,
+};
+static const unsigned char kat1404_nonce[] = {0};
+static const unsigned char kat1404_persstr[] = {0};
+static const unsigned char kat1404_addin0[] = {
+ 0x48, 0x5e, 0x2e, 0x1f, 0x60, 0x3c, 0x5c, 0x58, 0x90, 0xfb, 0xbe, 0x44,
+ 0xfa, 0x6f, 0x17, 0x22, 0x8e, 0x93, 0x40, 0xc2, 0x05, 0x07, 0xb1, 0xe2,
+ 0xc9, 0x3d, 0x31, 0xd8, 0x66, 0x72, 0xc0, 0x51, 0x1d, 0xf5, 0xdb, 0x29,
+ 0xec, 0x00, 0x60, 0x63, 0xeb, 0xfa, 0xe1, 0xa3, 0x9e, 0x95, 0xcc, 0x95,
+};
+static const unsigned char kat1404_addin1[] = {
+ 0xff, 0xe6, 0x9d, 0x1a, 0xce, 0x62, 0xde, 0x2f, 0x9f, 0x74, 0x68, 0xfc,
+ 0x7d, 0x4b, 0xe7, 0xc0, 0x9a, 0x71, 0x92, 0x5c, 0x8c, 0x4b, 0x75, 0x74,
+ 0x61, 0xac, 0x96, 0x33, 0x78, 0x4a, 0x27, 0x58, 0x8a, 0x81, 0xf5, 0xd6,
+ 0xc3, 0x9a, 0x0c, 0x78, 0xa3, 0x0f, 0x6a, 0xf9, 0xa8, 0xa7, 0x5b, 0x6f,
+};
+static const unsigned char kat1404_retbits[] = {
+ 0x64, 0xd6, 0x4e, 0x78, 0x88, 0xa6, 0x7e, 0x3a, 0xae, 0xea, 0xe3, 0xcb,
+ 0xf1, 0x3d, 0x3d, 0x23, 0xc7, 0x0b, 0x39, 0xf0, 0x3b, 0x88, 0x5d, 0x32,
+ 0x95, 0x98, 0x6a, 0xb4, 0xa2, 0x20, 0x8f, 0x86, 0xb5, 0x56, 0xc8, 0x6c,
+ 0x66, 0x92, 0x5d, 0x88, 0x0d, 0x66, 0x6c, 0xc0, 0xdd, 0x32, 0x73, 0x08,
+ 0x8c, 0x28, 0x31, 0xc9, 0x6f, 0x3a, 0x39, 0xce, 0xe7, 0x53, 0x0b, 0xfc,
+ 0xdc, 0x56, 0x5b, 0x48,
+};
+static const struct drbg_kat_no_reseed kat1404_t = {
+ 8, kat1404_entropyin, kat1404_nonce, kat1404_persstr,
+ kat1404_addin0, kat1404_addin1, kat1404_retbits
+};
+static const struct drbg_kat kat1404 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1404_t
+};
+
+static const unsigned char kat1405_entropyin[] = {
+ 0xfa, 0x84, 0x7e, 0xa8, 0x04, 0x47, 0x32, 0xf6, 0x54, 0x05, 0x6c, 0x36,
+ 0xce, 0xdf, 0x98, 0x17, 0x1b, 0xed, 0xf9, 0xb4, 0x3d, 0xb5, 0x1b, 0x91,
+ 0x26, 0xde, 0xd2, 0x0c, 0x3d, 0xc1, 0xd9, 0x24, 0x00, 0x97, 0x8e, 0x6e,
+ 0x2c, 0x5f, 0xf9, 0x96, 0x93, 0x2d, 0x35, 0x1a, 0x3d, 0x67, 0x33, 0x1b,
+};
+static const unsigned char kat1405_nonce[] = {0};
+static const unsigned char kat1405_persstr[] = {0};
+static const unsigned char kat1405_addin0[] = {
+ 0xfe, 0x92, 0x72, 0x44, 0xa9, 0xc1, 0xdd, 0x81, 0x44, 0x56, 0x25, 0x93,
+ 0xa3, 0x88, 0x99, 0x14, 0x1c, 0x2d, 0xc0, 0x27, 0xd9, 0x40, 0x22, 0x6a,
+ 0x28, 0xfa, 0xba, 0xfe, 0xd6, 0xc0, 0x19, 0xb4, 0xc9, 0x4f, 0xe7, 0x98,
+ 0x7c, 0x41, 0x8c, 0x4d, 0xc1, 0x48, 0x4c, 0x7c, 0x87, 0x72, 0x19, 0x52,
+};
+static const unsigned char kat1405_addin1[] = {
+ 0x04, 0xe1, 0x62, 0x19, 0xb5, 0x72, 0x83, 0x12, 0xf0, 0x59, 0x56, 0xfd,
+ 0x6a, 0x09, 0x3e, 0x74, 0xa3, 0x62, 0xbb, 0xed, 0xc3, 0xc9, 0x44, 0x36,
+ 0x68, 0xcc, 0xcd, 0xff, 0x29, 0x50, 0x14, 0x55, 0x61, 0x44, 0x2f, 0x17,
+ 0xda, 0x93, 0x00, 0x30, 0x83, 0xc5, 0x82, 0x4f, 0x3d, 0xc6, 0x8e, 0xc1,
+};
+static const unsigned char kat1405_retbits[] = {
+ 0xbb, 0x24, 0xb4, 0x6a, 0x12, 0xb4, 0x82, 0xf0, 0xcb, 0xce, 0x27, 0x8a,
+ 0x2b, 0x6c, 0x01, 0x2d, 0x7c, 0xfa, 0xc2, 0xc4, 0x15, 0x90, 0x80, 0x3c,
+ 0x56, 0x5f, 0xca, 0xdd, 0xfc, 0xa8, 0x52, 0xa5, 0x69, 0x91, 0x12, 0xb1,
+ 0x0c, 0xe2, 0xc0, 0xa8, 0x4d, 0x45, 0x54, 0x3a, 0x89, 0x3f, 0xbf, 0x2c,
+ 0x9f, 0xbf, 0x94, 0x50, 0x20, 0x10, 0xd7, 0x21, 0x32, 0x18, 0xa8, 0x28,
+ 0x33, 0x04, 0xf6, 0x59,
+};
+static const struct drbg_kat_no_reseed kat1405_t = {
+ 9, kat1405_entropyin, kat1405_nonce, kat1405_persstr,
+ kat1405_addin0, kat1405_addin1, kat1405_retbits
+};
+static const struct drbg_kat kat1405 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1405_t
+};
+
+static const unsigned char kat1406_entropyin[] = {
+ 0x85, 0xe4, 0xeb, 0x58, 0xa3, 0x4e, 0xed, 0xec, 0xdf, 0x53, 0x46, 0x48,
+ 0x3c, 0x1a, 0x79, 0x37, 0x31, 0x55, 0x11, 0x46, 0x14, 0x4d, 0xec, 0x78,
+ 0x2d, 0xea, 0xec, 0x62, 0xea, 0xd1, 0xf1, 0x68, 0xb2, 0xfb, 0x4c, 0x1c,
+ 0xce, 0x5a, 0xc8, 0xae, 0xc8, 0x95, 0xd7, 0x1a, 0x30, 0xd9, 0x1f, 0xbf,
+};
+static const unsigned char kat1406_nonce[] = {0};
+static const unsigned char kat1406_persstr[] = {0};
+static const unsigned char kat1406_addin0[] = {
+ 0x81, 0xe2, 0x9a, 0x57, 0x6b, 0x77, 0x0a, 0x58, 0xfa, 0x55, 0x95, 0x0c,
+ 0xb2, 0x6c, 0x4b, 0xe8, 0xa0, 0x29, 0x65, 0x74, 0x53, 0x8e, 0xb9, 0xaf,
+ 0x80, 0x68, 0xcd, 0x15, 0xb3, 0xad, 0xc8, 0x7e, 0x23, 0xc1, 0x04, 0xfc,
+ 0x60, 0x7a, 0xb5, 0x7e, 0x09, 0xaa, 0xea, 0xf6, 0x53, 0xf6, 0x9e, 0x03,
+};
+static const unsigned char kat1406_addin1[] = {
+ 0x99, 0x4c, 0x97, 0x6e, 0x25, 0x94, 0x8d, 0x7c, 0x11, 0xad, 0x89, 0x51,
+ 0x0e, 0xbc, 0x80, 0xcd, 0xe4, 0x41, 0xdd, 0xac, 0xa0, 0x0a, 0xc7, 0xfd,
+ 0x8a, 0xdf, 0x96, 0x5b, 0x0a, 0xed, 0x4f, 0x57, 0xa1, 0x50, 0xc2, 0x8a,
+ 0xd0, 0x6d, 0xc0, 0x3d, 0xfd, 0x75, 0x44, 0x3f, 0xde, 0xa5, 0x10, 0x9d,
+};
+static const unsigned char kat1406_retbits[] = {
+ 0x45, 0xd8, 0xc6, 0x9c, 0x96, 0xee, 0x1d, 0x3c, 0xa7, 0x3f, 0xf8, 0x9d,
+ 0x79, 0x52, 0x4b, 0xc1, 0x18, 0xbf, 0x49, 0xe2, 0xae, 0x10, 0x73, 0x56,
+ 0xa2, 0x44, 0xcb, 0xde, 0xf9, 0x2c, 0xb7, 0x38, 0xec, 0xed, 0x64, 0xb9,
+ 0x95, 0x60, 0xb0, 0x3e, 0x8e, 0x6c, 0x60, 0x82, 0xe5, 0x4f, 0xa3, 0x79,
+ 0xa6, 0xac, 0xe7, 0xba, 0x05, 0xda, 0x18, 0x09, 0x4d, 0x6e, 0x46, 0x41,
+ 0x5e, 0x46, 0xc4, 0xd0,
+};
+static const struct drbg_kat_no_reseed kat1406_t = {
+ 10, kat1406_entropyin, kat1406_nonce, kat1406_persstr,
+ kat1406_addin0, kat1406_addin1, kat1406_retbits
+};
+static const struct drbg_kat kat1406 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1406_t
+};
+
+static const unsigned char kat1407_entropyin[] = {
+ 0x6f, 0xf2, 0xb3, 0x54, 0x7c, 0x02, 0x85, 0x8f, 0x94, 0xda, 0x9a, 0x07,
+ 0x57, 0x87, 0x76, 0x71, 0xd6, 0x8a, 0x9d, 0x91, 0x8a, 0x58, 0x0c, 0x9e,
+ 0xd4, 0x25, 0x99, 0xa7, 0xb5, 0xe9, 0x7e, 0x44, 0xe2, 0xca, 0x79, 0x5e,
+ 0x94, 0x4e, 0x51, 0xe0, 0x56, 0x5c, 0x77, 0xb9, 0x57, 0x84, 0x9f, 0x7d,
+};
+static const unsigned char kat1407_nonce[] = {0};
+static const unsigned char kat1407_persstr[] = {0};
+static const unsigned char kat1407_addin0[] = {
+ 0x52, 0x7e, 0x2f, 0x26, 0x8a, 0xd3, 0xff, 0x9a, 0x68, 0x2e, 0xd6, 0x1e,
+ 0x6b, 0x24, 0x06, 0x01, 0x89, 0x70, 0x72, 0x3f, 0x2b, 0x9f, 0x01, 0x68,
+ 0x4b, 0xb0, 0x18, 0x12, 0x7e, 0xdd, 0x53, 0x96, 0xef, 0x2e, 0x0c, 0xea,
+ 0x5c, 0xbd, 0x04, 0x32, 0x2c, 0xdc, 0xb9, 0xa1, 0x99, 0xa1, 0xa9, 0x8a,
+};
+static const unsigned char kat1407_addin1[] = {
+ 0xa8, 0x43, 0xcb, 0xd6, 0x8f, 0x92, 0x92, 0x5d, 0x31, 0x4c, 0x70, 0xcb,
+ 0x86, 0x05, 0xab, 0xb3, 0x4d, 0xc8, 0xa6, 0xe4, 0xae, 0xa1, 0x46, 0xdd,
+ 0x02, 0x94, 0xdd, 0x4d, 0xe7, 0x9b, 0x46, 0x76, 0x81, 0xe5, 0x21, 0x41,
+ 0x13, 0x79, 0xec, 0x9d, 0x1a, 0xc1, 0xc6, 0x68, 0xec, 0x06, 0x5e, 0xf6,
+};
+static const unsigned char kat1407_retbits[] = {
+ 0xa8, 0xab, 0x4d, 0xb7, 0x57, 0xb2, 0x81, 0x43, 0xf7, 0x35, 0x8c, 0xd3,
+ 0x7c, 0x78, 0x9f, 0xca, 0x8d, 0xa5, 0x64, 0xfd, 0xd9, 0x32, 0x67, 0xad,
+ 0x55, 0x7e, 0xad, 0x34, 0xad, 0x71, 0xb2, 0xc7, 0x6c, 0xad, 0x69, 0x11,
+ 0x8b, 0x3f, 0x5b, 0x40, 0x3d, 0xf1, 0x92, 0x4e, 0x5c, 0x46, 0xd3, 0xb2,
+ 0x9f, 0x9c, 0xc8, 0x54, 0xab, 0x91, 0xdf, 0x0f, 0x68, 0xbc, 0xc1, 0xc4,
+ 0x42, 0xc9, 0x01, 0x02,
+};
+static const struct drbg_kat_no_reseed kat1407_t = {
+ 11, kat1407_entropyin, kat1407_nonce, kat1407_persstr,
+ kat1407_addin0, kat1407_addin1, kat1407_retbits
+};
+static const struct drbg_kat kat1407 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1407_t
+};
+
+static const unsigned char kat1408_entropyin[] = {
+ 0xde, 0x36, 0x68, 0x05, 0x14, 0x6d, 0x94, 0x30, 0x2a, 0xb6, 0x14, 0x60,
+ 0x28, 0xd6, 0x97, 0xb2, 0x92, 0x62, 0x3b, 0x15, 0x98, 0xb3, 0xc2, 0xd4,
+ 0x9e, 0xd6, 0xcb, 0xdf, 0x78, 0x8e, 0xb8, 0xc6, 0xcd, 0x98, 0x4f, 0x2b,
+ 0xb4, 0xfc, 0xb5, 0xd5, 0x0e, 0xf0, 0x23, 0x55, 0x05, 0x83, 0x0b, 0x85,
+};
+static const unsigned char kat1408_nonce[] = {0};
+static const unsigned char kat1408_persstr[] = {0};
+static const unsigned char kat1408_addin0[] = {
+ 0xf6, 0xf9, 0x62, 0x5e, 0x71, 0x6c, 0xa2, 0x17, 0xcf, 0x9c, 0xaf, 0x8d,
+ 0x48, 0x55, 0xba, 0x49, 0x12, 0xcf, 0xf4, 0x9e, 0x17, 0xec, 0xe9, 0x9a,
+ 0xfe, 0xdc, 0x7d, 0xcb, 0xeb, 0x2a, 0x6e, 0x38, 0x6a, 0x80, 0x14, 0xb4,
+ 0x5a, 0xe0, 0xe3, 0xab, 0x26, 0x64, 0x77, 0x11, 0x46, 0x1e, 0xc8, 0x06,
+};
+static const unsigned char kat1408_addin1[] = {
+ 0xdf, 0xd6, 0x65, 0x3f, 0xd0, 0x10, 0x8c, 0x4e, 0x46, 0xc4, 0xdc, 0x46,
+ 0x2f, 0xe9, 0x59, 0xb9, 0xa4, 0x21, 0x61, 0x75, 0x09, 0x10, 0x10, 0xce,
+ 0x46, 0x43, 0xa1, 0xed, 0x9d, 0x23, 0x22, 0x30, 0x54, 0x7d, 0xe9, 0x0f,
+ 0x73, 0xe2, 0x42, 0x73, 0x40, 0xe1, 0x26, 0x66, 0xfe, 0x38, 0x9e, 0xd4,
+};
+static const unsigned char kat1408_retbits[] = {
+ 0x4a, 0x3e, 0xb3, 0xde, 0x53, 0x68, 0xc1, 0x8b, 0xa3, 0xe9, 0x58, 0x51,
+ 0x12, 0xd7, 0x73, 0x5c, 0xf2, 0x04, 0xe8, 0x1d, 0xa6, 0x28, 0x77, 0x75,
+ 0xdc, 0x7e, 0x56, 0xfd, 0x81, 0x4d, 0x85, 0xd8, 0xf4, 0xff, 0xe6, 0x51,
+ 0x4f, 0xcb, 0x47, 0x22, 0x0c, 0x95, 0x8f, 0x8f, 0x41, 0x5c, 0x77, 0x8e,
+ 0x2e, 0x44, 0xfe, 0xa9, 0x68, 0xec, 0xb0, 0x2a, 0xae, 0x47, 0xf0, 0x14,
+ 0x7b, 0x91, 0x40, 0xac,
+};
+static const struct drbg_kat_no_reseed kat1408_t = {
+ 12, kat1408_entropyin, kat1408_nonce, kat1408_persstr,
+ kat1408_addin0, kat1408_addin1, kat1408_retbits
+};
+static const struct drbg_kat kat1408 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1408_t
+};
+
+static const unsigned char kat1409_entropyin[] = {
+ 0xe5, 0xf6, 0x17, 0xe8, 0x77, 0x8f, 0x00, 0x76, 0x59, 0x8d, 0x52, 0x64,
+ 0x22, 0xb0, 0x95, 0xc3, 0xdf, 0x14, 0x08, 0x55, 0xf0, 0x87, 0xe3, 0x6d,
+ 0xdd, 0x5b, 0x76, 0x23, 0xed, 0x4a, 0x63, 0x5a, 0x7e, 0x19, 0xaf, 0xda,
+ 0xa2, 0xe7, 0xe5, 0x03, 0xc3, 0x0f, 0x71, 0x79, 0xc2, 0x79, 0xf0, 0x73,
+};
+static const unsigned char kat1409_nonce[] = {0};
+static const unsigned char kat1409_persstr[] = {0};
+static const unsigned char kat1409_addin0[] = {
+ 0x65, 0x9b, 0xf1, 0xfe, 0x2f, 0xca, 0x26, 0x00, 0x5d, 0xcd, 0xcb, 0x25,
+ 0x33, 0xca, 0x9e, 0x10, 0x1f, 0x14, 0x0e, 0x2c, 0x08, 0x04, 0x22, 0xf9,
+ 0x44, 0x8a, 0xdc, 0x9e, 0x7a, 0x7a, 0x9a, 0xa0, 0x6b, 0xdb, 0xb0, 0x34,
+ 0xee, 0x66, 0xe9, 0xc2, 0x6e, 0xfb, 0x02, 0x09, 0x24, 0x31, 0xcf, 0x5e,
+};
+static const unsigned char kat1409_addin1[] = {
+ 0xcd, 0xa0, 0xe4, 0xff, 0x69, 0xb9, 0xa2, 0xa8, 0xd5, 0x05, 0x64, 0x8a,
+ 0x60, 0x26, 0xda, 0x9c, 0xb1, 0xcb, 0xe9, 0xd0, 0xaf, 0x9b, 0xd4, 0x22,
+ 0xf2, 0xe5, 0xef, 0x8f, 0xe2, 0x85, 0x2d, 0xbf, 0x0a, 0xbf, 0x75, 0x74,
+ 0x95, 0x8d, 0x96, 0x74, 0x49, 0x47, 0xdd, 0xd5, 0xbd, 0x24, 0xaa, 0x95,
+};
+static const unsigned char kat1409_retbits[] = {
+ 0x19, 0x89, 0xf0, 0x0f, 0x2a, 0xfb, 0xf4, 0x9b, 0xdd, 0xa1, 0x97, 0x33,
+ 0xc2, 0x94, 0x19, 0x6a, 0x41, 0x58, 0x74, 0xca, 0x12, 0xcb, 0x89, 0xd7,
+ 0xf5, 0xaa, 0xae, 0x66, 0xba, 0x6e, 0x9d, 0x5a, 0x8d, 0xf0, 0xea, 0x17,
+ 0xff, 0x8c, 0x30, 0x7f, 0xb6, 0xd1, 0x3d, 0x9e, 0x91, 0x30, 0x4a, 0x3d,
+ 0x89, 0xe9, 0x9b, 0xad, 0xeb, 0xb4, 0x43, 0x52, 0xa6, 0x17, 0x90, 0x39,
+ 0x82, 0x19, 0x78, 0x50,
+};
+static const struct drbg_kat_no_reseed kat1409_t = {
+ 13, kat1409_entropyin, kat1409_nonce, kat1409_persstr,
+ kat1409_addin0, kat1409_addin1, kat1409_retbits
+};
+static const struct drbg_kat kat1409 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1409_t
+};
+
+static const unsigned char kat1410_entropyin[] = {
+ 0x60, 0xc2, 0x47, 0xdd, 0x6d, 0x8a, 0x4c, 0xab, 0x04, 0xd6, 0x04, 0x5d,
+ 0x26, 0x55, 0x15, 0x3e, 0x82, 0x56, 0xa6, 0xfb, 0xb5, 0x2f, 0xaf, 0x60,
+ 0x51, 0x7b, 0xc9, 0xcd, 0x86, 0xaf, 0x8f, 0x6d, 0xd5, 0x53, 0x18, 0x14,
+ 0x22, 0xd2, 0x94, 0xbf, 0x4d, 0x70, 0x84, 0x11, 0x19, 0xa1, 0xc4, 0x58,
+};
+static const unsigned char kat1410_nonce[] = {0};
+static const unsigned char kat1410_persstr[] = {0};
+static const unsigned char kat1410_addin0[] = {
+ 0xc8, 0x39, 0x97, 0x3b, 0x79, 0xc3, 0xee, 0xa5, 0xdb, 0x71, 0x07, 0xca,
+ 0x7c, 0xae, 0x1c, 0x01, 0x2c, 0xdd, 0x59, 0xa5, 0x0e, 0x58, 0xb7, 0x46,
+ 0x1e, 0xd7, 0x92, 0x11, 0x78, 0x37, 0x25, 0xe9, 0x55, 0x10, 0x4e, 0x30,
+ 0xa0, 0x04, 0x0d, 0xcc, 0x73, 0xd5, 0xe2, 0xb9, 0x7b, 0x4b, 0x8f, 0x84,
+};
+static const unsigned char kat1410_addin1[] = {
+ 0x3c, 0xde, 0x5a, 0x2f, 0x6e, 0x19, 0xfb, 0x4a, 0x44, 0x93, 0x83, 0x00,
+ 0x16, 0xcd, 0x86, 0xaf, 0xcb, 0x7a, 0x8d, 0xb4, 0x9a, 0x2a, 0xbf, 0x60,
+ 0x77, 0xeb, 0xb5, 0x31, 0x4d, 0xd1, 0x2a, 0x2d, 0x1f, 0xe9, 0xd3, 0x60,
+ 0x1c, 0x12, 0x5c, 0x41, 0xc3, 0xe9, 0xaf, 0x46, 0x03, 0xee, 0x8f, 0x8b,
+};
+static const unsigned char kat1410_retbits[] = {
+ 0xe6, 0x1a, 0x4d, 0x43, 0x9b, 0x4b, 0xb1, 0xcc, 0xdc, 0x81, 0x0e, 0xf7,
+ 0xa0, 0x01, 0x9e, 0x5e, 0x88, 0x32, 0x1a, 0xb6, 0x68, 0x7f, 0x65, 0x64,
+ 0xd5, 0xf7, 0x0c, 0x0a, 0xfb, 0x16, 0x33, 0xd5, 0x0d, 0xa6, 0x3d, 0x6d,
+ 0x1b, 0x19, 0x19, 0xb7, 0x24, 0xb5, 0x7e, 0xe9, 0x26, 0xd6, 0x3a, 0x80,
+ 0xac, 0x20, 0xf1, 0xff, 0x06, 0xc4, 0x93, 0x24, 0x56, 0xc7, 0x0e, 0x8b,
+ 0x64, 0xdb, 0x43, 0xf8,
+};
+static const struct drbg_kat_no_reseed kat1410_t = {
+ 14, kat1410_entropyin, kat1410_nonce, kat1410_persstr,
+ kat1410_addin0, kat1410_addin1, kat1410_retbits
+};
+static const struct drbg_kat kat1410 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat1410_t
+};
+
+static const unsigned char kat1411_entropyin[] = {
+ 0xbc, 0x87, 0x8e, 0x4f, 0xb5, 0x9b, 0xf4, 0x3c, 0xc7, 0xf8, 0x65, 0x25,
+ 0xa0, 0xdb, 0x68, 0x84, 0x5b, 0x88, 0xee, 0x48, 0x4b, 0x4b, 0x6e, 0x59,
+ 0xa4, 0xe0, 0x16, 0xac, 0x61, 0xcb, 0xf1, 0x54, 0x29, 0xdc, 0x50, 0x91,
+ 0x6e, 0x5b, 0xdb, 0x38, 0x4c, 0xc1, 0x7d, 0x19, 0xb7, 0xb6, 0xdf, 0xcb,
+};
+static const unsigned char kat1411_nonce[] = {0};
+static const unsigned char kat1411_persstr[] = {
+ 0x92, 0xc5, 0x22, 0x1d, 0x5c, 0xcb, 0xc3, 0x9e, 0x4a, 0xd3, 0xa7, 0x9c,
+ 0x93, 0x62, 0x09, 0x18, 0x57, 0xa7, 0xad, 0x45, 0x69, 0x66, 0x0a, 0x78,
+ 0x6b, 0xda, 0xce, 0x18, 0xd5, 0x74, 0xd1, 0x8d, 0xfb, 0xa4, 0xcc, 0x10,
+ 0xf7, 0xa4, 0xc8, 0x22, 0x30, 0x08, 0x9b, 0xe7, 0xc0, 0xd8, 0x65, 0x7f,
+};
+static const unsigned char kat1411_addin0[] = {0};
+static const unsigned char kat1411_addin1[] = {0};
+static const unsigned char kat1411_retbits[] = {
+ 0xd9, 0x46, 0x15, 0xf9, 0xb2, 0x3b, 0x17, 0x29, 0x3b, 0x9a, 0xe8, 0xe1,
+ 0x5f, 0x36, 0x3e, 0xc0, 0x7b, 0xfc, 0xce, 0x20, 0xd9, 0x18, 0x3c, 0x0c,
+ 0xa9, 0xbf, 0xd2, 0x5d, 0x67, 0xa8, 0x52, 0x03, 0x64, 0x51, 0x62, 0xad,
+ 0x91, 0x04, 0x55, 0x2e, 0x7c, 0xd1, 0xfb, 0x87, 0x13, 0xbd, 0xdd, 0x57,
+ 0x9b, 0x70, 0x5a, 0x80, 0x74, 0xa9, 0xaf, 0x93, 0x17, 0x19, 0x72, 0xc8,
+ 0x51, 0x22, 0x1f, 0x4d,
+};
+static const struct drbg_kat_no_reseed kat1411_t = {
+ 0, kat1411_entropyin, kat1411_nonce, kat1411_persstr,
+ kat1411_addin0, kat1411_addin1, kat1411_retbits
+};
+static const struct drbg_kat kat1411 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1411_t
+};
+
+static const unsigned char kat1412_entropyin[] = {
+ 0x30, 0x3d, 0x58, 0x96, 0xd6, 0x05, 0x26, 0xf7, 0xde, 0xcb, 0x2b, 0x77,
+ 0x6b, 0xd5, 0x8e, 0x5c, 0x2c, 0x5b, 0x89, 0x56, 0xfc, 0x29, 0xf6, 0x8a,
+ 0xec, 0xba, 0xf8, 0x48, 0xc9, 0x3a, 0xbb, 0x54, 0x31, 0x59, 0xa8, 0x7d,
+ 0x5f, 0x73, 0x30, 0x3a, 0x82, 0xd3, 0xa7, 0x34, 0xe3, 0x1d, 0x7c, 0x2b,
+};
+static const unsigned char kat1412_nonce[] = {0};
+static const unsigned char kat1412_persstr[] = {
+ 0x0a, 0x66, 0xbb, 0xef, 0x02, 0x25, 0xa5, 0x5a, 0x61, 0x52, 0xd3, 0x6f,
+ 0x3a, 0x54, 0xe3, 0x42, 0x36, 0x79, 0x94, 0x20, 0xbc, 0x1c, 0xe1, 0xb6,
+ 0xf7, 0x32, 0x28, 0xa5, 0x7c, 0x9b, 0xca, 0x79, 0x2b, 0xb0, 0xd3, 0x0f,
+ 0x58, 0xb6, 0x04, 0x6b, 0xac, 0x73, 0xeb, 0xb5, 0xbe, 0x92, 0xd6, 0x09,
+};
+static const unsigned char kat1412_addin0[] = {0};
+static const unsigned char kat1412_addin1[] = {0};
+static const unsigned char kat1412_retbits[] = {
+ 0x72, 0xcf, 0x7c, 0x85, 0xb9, 0x53, 0x1d, 0x6c, 0xa5, 0x03, 0x62, 0xbb,
+ 0x9b, 0xa6, 0xd6, 0xbe, 0x72, 0x3a, 0x68, 0x8d, 0x8a, 0xbc, 0x87, 0x17,
+ 0xab, 0x5c, 0xf9, 0x4b, 0x1d, 0xbe, 0xf0, 0x8f, 0x4b, 0x50, 0xee, 0x11,
+ 0xaf, 0x4b, 0x80, 0x3a, 0xac, 0xc3, 0x9e, 0x44, 0x23, 0x89, 0x92, 0x92,
+ 0xa3, 0x99, 0x38, 0x4d, 0x11, 0x8f, 0xe0, 0xc4, 0xe9, 0x54, 0x98, 0x1c,
+ 0xff, 0xd4, 0xac, 0x44,
+};
+static const struct drbg_kat_no_reseed kat1412_t = {
+ 1, kat1412_entropyin, kat1412_nonce, kat1412_persstr,
+ kat1412_addin0, kat1412_addin1, kat1412_retbits
+};
+static const struct drbg_kat kat1412 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1412_t
+};
+
+static const unsigned char kat1413_entropyin[] = {
+ 0x39, 0xbc, 0xf4, 0xd3, 0x13, 0x5e, 0x1d, 0x80, 0xd0, 0x87, 0xa1, 0x1d,
+ 0x7b, 0x9b, 0xbe, 0x02, 0xab, 0xf2, 0x53, 0x10, 0x12, 0xe5, 0x5f, 0xd1,
+ 0x71, 0x01, 0xdc, 0x2f, 0x58, 0x61, 0x34, 0xf5, 0x53, 0x98, 0xba, 0xe3,
+ 0x9b, 0x1b, 0xdf, 0x87, 0x3d, 0x2c, 0x42, 0xe3, 0x4b, 0x59, 0xd7, 0x31,
+};
+static const unsigned char kat1413_nonce[] = {0};
+static const unsigned char kat1413_persstr[] = {
+ 0x1c, 0xc5, 0x46, 0xdb, 0x68, 0x3b, 0xc3, 0xd9, 0xa4, 0xcf, 0x21, 0x4e,
+ 0x90, 0x14, 0x3b, 0x74, 0x95, 0xda, 0x36, 0x11, 0x4e, 0x22, 0x3f, 0x13,
+ 0x14, 0x90, 0x09, 0x58, 0x4a, 0x07, 0x0b, 0x24, 0x71, 0xae, 0x7a, 0x7c,
+ 0x16, 0xf4, 0x97, 0xa0, 0x4b, 0x06, 0xfa, 0xbf, 0x69, 0xf4, 0x87, 0x8c,
+};
+static const unsigned char kat1413_addin0[] = {0};
+static const unsigned char kat1413_addin1[] = {0};
+static const unsigned char kat1413_retbits[] = {
+ 0xaa, 0x7e, 0x7c, 0x9d, 0x69, 0x1e, 0xc5, 0x2a, 0xb0, 0x3b, 0x60, 0x24,
+ 0xa3, 0xbc, 0xd7, 0x4f, 0xe8, 0x28, 0x98, 0x72, 0x89, 0xbe, 0xa1, 0x33,
+ 0x09, 0xb3, 0x7b, 0xd6, 0x4a, 0x48, 0x16, 0xcf, 0x18, 0x39, 0x2c, 0xe4,
+ 0x93, 0x83, 0x02, 0x9a, 0x46, 0x40, 0xd8, 0xed, 0xd4, 0x79, 0xd0, 0x4e,
+ 0x32, 0x8f, 0xfe, 0x33, 0xf6, 0x3d, 0xaa, 0x40, 0x7b, 0x15, 0x34, 0xa6,
+ 0x7a, 0xb3, 0x9b, 0x15,
+};
+static const struct drbg_kat_no_reseed kat1413_t = {
+ 2, kat1413_entropyin, kat1413_nonce, kat1413_persstr,
+ kat1413_addin0, kat1413_addin1, kat1413_retbits
+};
+static const struct drbg_kat kat1413 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1413_t
+};
+
+static const unsigned char kat1414_entropyin[] = {
+ 0xa9, 0x4e, 0x58, 0x43, 0x4c, 0x8a, 0xe4, 0xa0, 0xdb, 0x42, 0xf4, 0xc4,
+ 0xe8, 0x27, 0xd3, 0xad, 0x4d, 0xfd, 0xc6, 0xaf, 0xa9, 0x43, 0x39, 0xa4,
+ 0xc8, 0x1a, 0x55, 0xef, 0x38, 0xaf, 0x7b, 0x20, 0xc2, 0x34, 0x3f, 0xee,
+ 0xc4, 0xf9, 0xed, 0xd9, 0xfd, 0x5b, 0x3f, 0x9b, 0x3d, 0xc4, 0x98, 0xd7,
+};
+static const unsigned char kat1414_nonce[] = {0};
+static const unsigned char kat1414_persstr[] = {
+ 0x80, 0xfe, 0x06, 0x54, 0x18, 0x94, 0x20, 0x96, 0xeb, 0x9b, 0xa9, 0x43,
+ 0x48, 0xfc, 0x64, 0xfb, 0x03, 0x40, 0xae, 0x8a, 0x21, 0x50, 0x4f, 0xb5,
+ 0x05, 0x2d, 0x1a, 0xbb, 0xff, 0x35, 0x17, 0x2b, 0xdc, 0x95, 0x94, 0x7d,
+ 0xc6, 0x5b, 0xaa, 0x79, 0x2f, 0x58, 0xad, 0x88, 0x13, 0xe5, 0xbe, 0x1a,
+};
+static const unsigned char kat1414_addin0[] = {0};
+static const unsigned char kat1414_addin1[] = {0};
+static const unsigned char kat1414_retbits[] = {
+ 0x95, 0x37, 0x68, 0x99, 0xe2, 0x57, 0xd3, 0xf8, 0x1a, 0x03, 0x4f, 0x1a,
+ 0x2d, 0x9b, 0xc7, 0x73, 0x55, 0xdd, 0xbb, 0x8e, 0x62, 0xdf, 0xe2, 0x74,
+ 0x50, 0x1e, 0x4d, 0xa7, 0x1f, 0x55, 0x93, 0xad, 0x59, 0x63, 0xb4, 0x30,
+ 0x3f, 0x29, 0x00, 0xd3, 0xc8, 0x60, 0x8e, 0x9c, 0x49, 0xe7, 0xcb, 0x61,
+ 0x8c, 0xa6, 0x80, 0xc6, 0xfb, 0xe9, 0x1e, 0xf0, 0x01, 0x46, 0xc2, 0x60,
+ 0x35, 0xd8, 0x87, 0x5c,
+};
+static const struct drbg_kat_no_reseed kat1414_t = {
+ 3, kat1414_entropyin, kat1414_nonce, kat1414_persstr,
+ kat1414_addin0, kat1414_addin1, kat1414_retbits
+};
+static const struct drbg_kat kat1414 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1414_t
+};
+
+static const unsigned char kat1415_entropyin[] = {
+ 0x37, 0xda, 0xc4, 0xa5, 0x1c, 0x64, 0x2f, 0x08, 0x39, 0x20, 0xfd, 0x50,
+ 0x42, 0xf8, 0x3b, 0x4c, 0xf3, 0xdc, 0xdf, 0xa9, 0xe2, 0xcb, 0x92, 0x54,
+ 0x4d, 0x88, 0xa8, 0x7b, 0x4f, 0x8e, 0xb6, 0x91, 0xd8, 0xe5, 0x3a, 0xc0,
+ 0xc0, 0x7a, 0x67, 0x91, 0xa9, 0x44, 0xb0, 0x2e, 0x43, 0x3a, 0xf9, 0xdf,
+};
+static const unsigned char kat1415_nonce[] = {0};
+static const unsigned char kat1415_persstr[] = {
+ 0x9e, 0x30, 0xeb, 0x98, 0x70, 0xfa, 0xe6, 0x70, 0x9a, 0xa4, 0xdd, 0xe6,
+ 0x3c, 0x2b, 0xdf, 0x57, 0x8c, 0xa0, 0xc3, 0x4c, 0xae, 0x99, 0x43, 0x6f,
+ 0x80, 0xf2, 0x6c, 0x31, 0xb4, 0x72, 0xeb, 0x54, 0x01, 0xb2, 0xeb, 0x9f,
+ 0xfb, 0x01, 0x3d, 0x65, 0x59, 0xc9, 0x81, 0x9e, 0x96, 0xde, 0x47, 0xa3,
+};
+static const unsigned char kat1415_addin0[] = {0};
+static const unsigned char kat1415_addin1[] = {0};
+static const unsigned char kat1415_retbits[] = {
+ 0xb6, 0xb3, 0x2d, 0xe5, 0x24, 0xce, 0x8a, 0x90, 0xe9, 0xeb, 0xe9, 0x21,
+ 0xfa, 0x88, 0x34, 0x50, 0x1d, 0x51, 0xed, 0x40, 0xd8, 0x1c, 0x28, 0x82,
+ 0x44, 0x94, 0x8b, 0xc1, 0xbd, 0x6e, 0x76, 0x1b, 0xb3, 0x9c, 0xc6, 0xd0,
+ 0x71, 0x15, 0x79, 0xc1, 0x44, 0xca, 0x3d, 0x5e, 0x1d, 0x2d, 0x23, 0x67,
+ 0xc5, 0xb8, 0x42, 0x04, 0x81, 0x0f, 0xb4, 0x85, 0x59, 0x07, 0x7f, 0xbb,
+ 0x99, 0x61, 0x2d, 0x67,
+};
+static const struct drbg_kat_no_reseed kat1415_t = {
+ 4, kat1415_entropyin, kat1415_nonce, kat1415_persstr,
+ kat1415_addin0, kat1415_addin1, kat1415_retbits
+};
+static const struct drbg_kat kat1415 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1415_t
+};
+
+static const unsigned char kat1416_entropyin[] = {
+ 0x59, 0xf2, 0x5f, 0xc1, 0xf5, 0x44, 0x95, 0x22, 0x59, 0x48, 0xa1, 0xee,
+ 0x19, 0x2f, 0xb0, 0x71, 0x49, 0xef, 0x61, 0xfd, 0x36, 0x88, 0x6b, 0x8d,
+ 0x59, 0x04, 0xf2, 0x40, 0xeb, 0x15, 0x7e, 0xbc, 0x44, 0xf0, 0xc7, 0x1f,
+ 0xcf, 0xb0, 0xd5, 0xc6, 0x35, 0x38, 0xd0, 0x57, 0xf2, 0x93, 0x69, 0x70,
+};
+static const unsigned char kat1416_nonce[] = {0};
+static const unsigned char kat1416_persstr[] = {
+ 0xe4, 0xd9, 0x7c, 0x71, 0x30, 0xdb, 0x6c, 0xfc, 0xea, 0xdb, 0x31, 0x34,
+ 0x74, 0x8c, 0x92, 0x1d, 0x4b, 0x44, 0x43, 0xcb, 0x97, 0x69, 0xab, 0x9e,
+ 0x8c, 0x30, 0x1f, 0x6a, 0xa0, 0xa1, 0x49, 0xd4, 0x43, 0xd7, 0x55, 0x6c,
+ 0xf7, 0xf3, 0xb5, 0x7a, 0x29, 0x80, 0x60, 0xa8, 0x88, 0x7b, 0xef, 0xe7,
+};
+static const unsigned char kat1416_addin0[] = {0};
+static const unsigned char kat1416_addin1[] = {0};
+static const unsigned char kat1416_retbits[] = {
+ 0x44, 0x67, 0x3a, 0x86, 0xb1, 0x43, 0x22, 0xcc, 0x02, 0x88, 0x4b, 0x0a,
+ 0x7c, 0xee, 0xb7, 0x40, 0x03, 0x25, 0xe0, 0x05, 0xbc, 0xb1, 0xa8, 0x84,
+ 0xc4, 0x6f, 0x44, 0x73, 0x30, 0x1e, 0xf5, 0xec, 0xce, 0x27, 0x55, 0xe5,
+ 0x0b, 0x00, 0x57, 0x88, 0x3f, 0x74, 0x89, 0xd7, 0xfe, 0x3a, 0x21, 0x59,
+ 0x86, 0xfd, 0x8d, 0x09, 0x62, 0xae, 0xeb, 0xf0, 0xcc, 0xac, 0xc3, 0x0c,
+ 0x46, 0xbc, 0x29, 0x1c,
+};
+static const struct drbg_kat_no_reseed kat1416_t = {
+ 5, kat1416_entropyin, kat1416_nonce, kat1416_persstr,
+ kat1416_addin0, kat1416_addin1, kat1416_retbits
+};
+static const struct drbg_kat kat1416 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1416_t
+};
+
+static const unsigned char kat1417_entropyin[] = {
+ 0x8d, 0x0e, 0xc8, 0x74, 0xea, 0xe0, 0x08, 0xc7, 0xeb, 0x97, 0x89, 0x3a,
+ 0xcd, 0x39, 0x64, 0xf9, 0xcd, 0xaa, 0x11, 0x2f, 0x12, 0xf7, 0x57, 0x8a,
+ 0xe7, 0x73, 0xfd, 0x5e, 0x82, 0x2e, 0xd5, 0x18, 0xdf, 0x68, 0xcc, 0x65,
+ 0x91, 0xd3, 0xee, 0x60, 0xa3, 0xd7, 0x40, 0x88, 0x8e, 0x83, 0xf5, 0x66,
+};
+static const unsigned char kat1417_nonce[] = {0};
+static const unsigned char kat1417_persstr[] = {
+ 0xa0, 0x95, 0xe5, 0x2c, 0x8b, 0x40, 0xe7, 0x59, 0x58, 0x79, 0x23, 0x1e,
+ 0x1b, 0x31, 0x97, 0x5a, 0xf4, 0x98, 0x7d, 0x29, 0xc0, 0x72, 0xe4, 0x98,
+ 0x98, 0xcd, 0x01, 0x9e, 0x6f, 0x69, 0xee, 0xba, 0x10, 0x0a, 0x61, 0x9f,
+ 0xd9, 0x56, 0xc6, 0x76, 0xdf, 0xee, 0x8e, 0x30, 0xec, 0x85, 0xff, 0x21,
+};
+static const unsigned char kat1417_addin0[] = {0};
+static const unsigned char kat1417_addin1[] = {0};
+static const unsigned char kat1417_retbits[] = {
+ 0x92, 0xe1, 0xc3, 0xa8, 0x01, 0xef, 0xd1, 0x3b, 0xcd, 0xbd, 0x60, 0xd4,
+ 0xc4, 0xc9, 0xf9, 0xd6, 0xc2, 0x31, 0x99, 0x9a, 0xe0, 0xc2, 0x73, 0x7a,
+ 0x97, 0x1d, 0x6b, 0x2d, 0x2b, 0xce, 0x9a, 0xfd, 0x82, 0xa7, 0x4a, 0xb0,
+ 0x14, 0x11, 0xd9, 0x7f, 0x2b, 0xb5, 0x9a, 0xd6, 0x6f, 0x14, 0xde, 0x25,
+ 0x6b, 0xdc, 0x12, 0x46, 0x5b, 0x95, 0x30, 0x6a, 0x83, 0xce, 0xfe, 0x95,
+ 0xa0, 0xeb, 0xe1, 0xd9,
+};
+static const struct drbg_kat_no_reseed kat1417_t = {
+ 6, kat1417_entropyin, kat1417_nonce, kat1417_persstr,
+ kat1417_addin0, kat1417_addin1, kat1417_retbits
+};
+static const struct drbg_kat kat1417 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1417_t
+};
+
+static const unsigned char kat1418_entropyin[] = {
+ 0xf0, 0x3a, 0xa7, 0x12, 0xde, 0xd0, 0x60, 0xc9, 0x18, 0xae, 0xc2, 0x58,
+ 0xcd, 0x32, 0x9d, 0xd6, 0x51, 0x1b, 0x25, 0x15, 0x90, 0x2a, 0xd4, 0xb9,
+ 0x80, 0xf0, 0xc3, 0xde, 0x5c, 0x45, 0x3c, 0x19, 0x6d, 0x55, 0xde, 0x00,
+ 0xe5, 0xa9, 0x02, 0x83, 0x06, 0x4b, 0x02, 0xc5, 0xa9, 0xda, 0xc5, 0xcc,
+};
+static const unsigned char kat1418_nonce[] = {0};
+static const unsigned char kat1418_persstr[] = {
+ 0xad, 0x6a, 0x88, 0xc5, 0x8a, 0xf7, 0x80, 0x3e, 0x1b, 0x3f, 0x41, 0x56,
+ 0x8b, 0xd0, 0x0f, 0x69, 0x99, 0xc5, 0x2d, 0x70, 0x6a, 0x45, 0xf0, 0x34,
+ 0x50, 0xd9, 0xfa, 0xd8, 0xc6, 0xd5, 0x41, 0x12, 0xb7, 0x2d, 0xbd, 0xc9,
+ 0x92, 0x46, 0x98, 0x7e, 0x82, 0x3c, 0x19, 0x92, 0x63, 0x77, 0x87, 0x9d,
+};
+static const unsigned char kat1418_addin0[] = {0};
+static const unsigned char kat1418_addin1[] = {0};
+static const unsigned char kat1418_retbits[] = {
+ 0x9a, 0x62, 0x4c, 0x85, 0x9e, 0x78, 0xa5, 0x4f, 0x82, 0xf0, 0x37, 0x1c,
+ 0xbc, 0x09, 0x5d, 0x7f, 0x1b, 0x9f, 0xbb, 0x9f, 0xf8, 0x7d, 0xf9, 0xff,
+ 0x7b, 0x94, 0x99, 0xbc, 0xf8, 0x9b, 0x6e, 0x37, 0x6b, 0xa1, 0xee, 0x77,
+ 0x69, 0xd3, 0x3c, 0x6c, 0x59, 0x88, 0x57, 0x52, 0xea, 0x46, 0xa9, 0xd0,
+ 0x2e, 0xda, 0xf2, 0x2e, 0x30, 0x06, 0xd5, 0xc7, 0x82, 0x24, 0x43, 0x07,
+ 0x8e, 0xbd, 0xb7, 0x93,
+};
+static const struct drbg_kat_no_reseed kat1418_t = {
+ 7, kat1418_entropyin, kat1418_nonce, kat1418_persstr,
+ kat1418_addin0, kat1418_addin1, kat1418_retbits
+};
+static const struct drbg_kat kat1418 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1418_t
+};
+
+static const unsigned char kat1419_entropyin[] = {
+ 0xb6, 0xf3, 0x71, 0xbb, 0x2b, 0x8b, 0x13, 0xb8, 0x5a, 0xdf, 0x5f, 0xeb,
+ 0x05, 0x19, 0xf4, 0x01, 0x39, 0xfd, 0x22, 0x94, 0x86, 0xfb, 0xe5, 0x79,
+ 0x53, 0xe3, 0xac, 0x54, 0x1c, 0xb1, 0xbc, 0x85, 0x3a, 0x51, 0xad, 0x15,
+ 0x7a, 0xbd, 0x27, 0xaf, 0x38, 0xf6, 0x2e, 0x1c, 0xcb, 0x27, 0x12, 0x58,
+};
+static const unsigned char kat1419_nonce[] = {0};
+static const unsigned char kat1419_persstr[] = {
+ 0x7e, 0x56, 0x47, 0x3a, 0xac, 0xd1, 0x3c, 0xc7, 0x30, 0xce, 0xb5, 0x98,
+ 0xa0, 0xe4, 0xae, 0x73, 0x1f, 0xc4, 0xbb, 0xa5, 0x8e, 0x1e, 0x2b, 0xa2,
+ 0x16, 0xaa, 0x84, 0x6c, 0x83, 0xeb, 0x90, 0xc2, 0x14, 0xb0, 0x2a, 0x1a,
+ 0x08, 0xc2, 0x68, 0xb5, 0xea, 0xe8, 0xa4, 0x7d, 0x28, 0x78, 0x83, 0x3f,
+};
+static const unsigned char kat1419_addin0[] = {0};
+static const unsigned char kat1419_addin1[] = {0};
+static const unsigned char kat1419_retbits[] = {
+ 0x6c, 0xae, 0xd1, 0x6e, 0x8a, 0x03, 0x4b, 0x14, 0x78, 0x5d, 0xf2, 0xa1,
+ 0xab, 0x95, 0xcc, 0x48, 0xfc, 0x61, 0xf5, 0x47, 0x9d, 0x73, 0xac, 0x0c,
+ 0x92, 0x38, 0xc9, 0xab, 0xcc, 0x26, 0x70, 0x5e, 0xb6, 0x00, 0x16, 0x4d,
+ 0xac, 0x29, 0xe9, 0xc6, 0xba, 0x2c, 0xb3, 0xc4, 0x90, 0x6e, 0x76, 0xe5,
+ 0x28, 0xf9, 0x5a, 0x51, 0x2c, 0x8f, 0xda, 0x76, 0xfe, 0x2d, 0x77, 0xc5,
+ 0x5f, 0x02, 0x59, 0xb2,
+};
+static const struct drbg_kat_no_reseed kat1419_t = {
+ 8, kat1419_entropyin, kat1419_nonce, kat1419_persstr,
+ kat1419_addin0, kat1419_addin1, kat1419_retbits
+};
+static const struct drbg_kat kat1419 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1419_t
+};
+
+static const unsigned char kat1420_entropyin[] = {
+ 0xf7, 0x50, 0x15, 0xae, 0x8c, 0x9e, 0xf8, 0xca, 0x5f, 0x82, 0xd9, 0xf3,
+ 0x14, 0x77, 0xa9, 0x3b, 0x0c, 0x25, 0x93, 0x00, 0xe4, 0x78, 0x9b, 0x12,
+ 0x16, 0xb7, 0x9d, 0x33, 0xe3, 0x01, 0xfa, 0xdc, 0x10, 0x20, 0x12, 0xdf,
+ 0x02, 0xf7, 0xa7, 0xad, 0xf5, 0x1c, 0x20, 0xf9, 0x92, 0x11, 0x94, 0x59,
+};
+static const unsigned char kat1420_nonce[] = {0};
+static const unsigned char kat1420_persstr[] = {
+ 0x2e, 0x6a, 0x2b, 0x62, 0x7d, 0xc6, 0xda, 0x85, 0x21, 0x46, 0x97, 0xb8,
+ 0x41, 0x3d, 0x01, 0xde, 0xe9, 0x1d, 0x32, 0x5f, 0x59, 0x18, 0x1f, 0xd0,
+ 0x2b, 0xdf, 0x1a, 0xc2, 0xd9, 0x6e, 0x83, 0xb3, 0x53, 0x32, 0x82, 0x1e,
+ 0x9f, 0x4f, 0x7c, 0x9b, 0x63, 0x99, 0xf2, 0x02, 0x60, 0xa5, 0xd0, 0xa9,
+};
+static const unsigned char kat1420_addin0[] = {0};
+static const unsigned char kat1420_addin1[] = {0};
+static const unsigned char kat1420_retbits[] = {
+ 0x7e, 0x4b, 0x05, 0x96, 0x87, 0xbc, 0x22, 0x00, 0x3c, 0xd0, 0xaa, 0x93,
+ 0x6d, 0x30, 0x5c, 0xe0, 0x9e, 0xad, 0xe4, 0xf3, 0xa5, 0x4e, 0xc9, 0x52,
+ 0x3b, 0x8b, 0xfc, 0x68, 0x32, 0xd2, 0xc0, 0x10, 0x5c, 0xa2, 0x65, 0x2c,
+ 0x74, 0x98, 0x08, 0x06, 0x9c, 0x11, 0xab, 0xa3, 0xbf, 0x39, 0x20, 0x57,
+ 0x61, 0x6d, 0x48, 0x36, 0x5d, 0x15, 0xb7, 0xcc, 0x42, 0x89, 0xfa, 0xb9,
+ 0xf9, 0x36, 0x1e, 0xd2,
+};
+static const struct drbg_kat_no_reseed kat1420_t = {
+ 9, kat1420_entropyin, kat1420_nonce, kat1420_persstr,
+ kat1420_addin0, kat1420_addin1, kat1420_retbits
+};
+static const struct drbg_kat kat1420 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1420_t
+};
+
+static const unsigned char kat1421_entropyin[] = {
+ 0x78, 0x14, 0x71, 0xb8, 0xd6, 0xd6, 0x6e, 0xdb, 0x77, 0x8b, 0x54, 0x74,
+ 0x2c, 0xc9, 0x04, 0x07, 0xa9, 0xa3, 0x25, 0xd9, 0x02, 0xa5, 0x96, 0xc3,
+ 0x70, 0x80, 0xcf, 0xbe, 0xc6, 0x57, 0x52, 0x59, 0x87, 0x04, 0xc4, 0x5d,
+ 0x9e, 0x75, 0x7e, 0xda, 0x57, 0xe8, 0x81, 0x9c, 0x04, 0x7b, 0x36, 0xc7,
+};
+static const unsigned char kat1421_nonce[] = {0};
+static const unsigned char kat1421_persstr[] = {
+ 0xc3, 0x58, 0xa3, 0xc4, 0xaa, 0x33, 0x84, 0xe0, 0x53, 0xbf, 0xa4, 0xa3,
+ 0xb3, 0x32, 0xdf, 0xd1, 0xdf, 0x79, 0xf3, 0x41, 0xa3, 0xe5, 0x9f, 0x0e,
+ 0x50, 0x15, 0xe8, 0x87, 0x1f, 0xe7, 0x4f, 0xcf, 0x9b, 0x4a, 0xc9, 0xfd,
+ 0x54, 0x56, 0xf9, 0x72, 0xea, 0x24, 0xaa, 0x19, 0xcf, 0x59, 0xce, 0xde,
+};
+static const unsigned char kat1421_addin0[] = {0};
+static const unsigned char kat1421_addin1[] = {0};
+static const unsigned char kat1421_retbits[] = {
+ 0xbf, 0x12, 0xdf, 0xf4, 0xe3, 0xab, 0x3b, 0x09, 0x41, 0x65, 0x80, 0x3d,
+ 0xa0, 0xc1, 0xa8, 0xde, 0x2a, 0xce, 0x25, 0x4a, 0x1d, 0x65, 0xe4, 0xbb,
+ 0x8f, 0xf3, 0x9d, 0xb9, 0x32, 0x7b, 0xf1, 0xeb, 0xcd, 0xe3, 0x24, 0xd9,
+ 0x51, 0x27, 0x26, 0xd5, 0x19, 0x63, 0x4f, 0x8d, 0x72, 0x4e, 0xd5, 0xa7,
+ 0x93, 0x5d, 0xb5, 0x09, 0xba, 0x03, 0x72, 0x00, 0x34, 0x7c, 0xfb, 0x7c,
+ 0x00, 0xb0, 0x46, 0xd7,
+};
+static const struct drbg_kat_no_reseed kat1421_t = {
+ 10, kat1421_entropyin, kat1421_nonce, kat1421_persstr,
+ kat1421_addin0, kat1421_addin1, kat1421_retbits
+};
+static const struct drbg_kat kat1421 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1421_t
+};
+
+static const unsigned char kat1422_entropyin[] = {
+ 0xe0, 0x6d, 0xd4, 0x40, 0xdb, 0x6e, 0x8c, 0x16, 0x01, 0x49, 0xc9, 0xe3,
+ 0x00, 0x29, 0x89, 0x5f, 0x91, 0x27, 0x20, 0x1b, 0xe7, 0xdc, 0xbe, 0x33,
+ 0xa8, 0x45, 0xfe, 0x1e, 0x4c, 0x3d, 0x84, 0xab, 0x26, 0xb1, 0x9c, 0xb6,
+ 0x46, 0x6b, 0x89, 0x45, 0xca, 0xce, 0xa0, 0x9c, 0xd6, 0xd6, 0x99, 0xd9,
+};
+static const unsigned char kat1422_nonce[] = {0};
+static const unsigned char kat1422_persstr[] = {
+ 0x5b, 0x49, 0x42, 0xfe, 0x42, 0x63, 0xbf, 0x21, 0x65, 0x9e, 0x85, 0xbd,
+ 0x1a, 0xc4, 0xbb, 0xb5, 0x0b, 0x94, 0x1d, 0xfc, 0xed, 0x77, 0xf4, 0x15,
+ 0x1b, 0x8e, 0x7b, 0x52, 0x16, 0xe8, 0x21, 0xb5, 0x4c, 0x91, 0xa8, 0xe8,
+ 0x3d, 0x9f, 0xc4, 0x75, 0x80, 0x99, 0xc8, 0xdb, 0x34, 0xd6, 0xc0, 0xfe,
+};
+static const unsigned char kat1422_addin0[] = {0};
+static const unsigned char kat1422_addin1[] = {0};
+static const unsigned char kat1422_retbits[] = {
+ 0xe6, 0xc6, 0xac, 0x76, 0xf5, 0x02, 0xf0, 0x25, 0xdd, 0x26, 0x16, 0x83,
+ 0x69, 0xf0, 0xf7, 0xe6, 0xf4, 0x05, 0x21, 0x3a, 0xa0, 0x2f, 0x6d, 0xb3,
+ 0xb3, 0x82, 0x3c, 0x18, 0x13, 0xc8, 0xb6, 0xee, 0xd9, 0x5f, 0x71, 0xf4,
+ 0xa7, 0x1c, 0xb8, 0x27, 0x0f, 0xfa, 0x8a, 0xc3, 0xce, 0x53, 0x66, 0xd7,
+ 0x15, 0x67, 0x86, 0x45, 0x65, 0xee, 0xfb, 0xa7, 0x12, 0x0e, 0x2e, 0xdc,
+ 0xc3, 0xb6, 0xec, 0x80,
+};
+static const struct drbg_kat_no_reseed kat1422_t = {
+ 11, kat1422_entropyin, kat1422_nonce, kat1422_persstr,
+ kat1422_addin0, kat1422_addin1, kat1422_retbits
+};
+static const struct drbg_kat kat1422 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1422_t
+};
+
+static const unsigned char kat1423_entropyin[] = {
+ 0x69, 0xe7, 0xd2, 0xb5, 0xc0, 0x32, 0x43, 0xc7, 0x52, 0xed, 0x07, 0xae,
+ 0xb0, 0x6f, 0xdd, 0x3c, 0x8c, 0xbe, 0x05, 0xb0, 0xb4, 0x2c, 0x20, 0x59,
+ 0xe4, 0xae, 0x01, 0x24, 0x1d, 0xa7, 0x7d, 0x17, 0x89, 0x0f, 0x0f, 0xa5,
+ 0x6c, 0x79, 0x40, 0xf6, 0x79, 0x94, 0x17, 0x38, 0x0a, 0x22, 0x88, 0xf0,
+};
+static const unsigned char kat1423_nonce[] = {0};
+static const unsigned char kat1423_persstr[] = {
+ 0xfd, 0x7a, 0x2d, 0x8b, 0xae, 0x61, 0x0a, 0x2b, 0xfb, 0xf2, 0x06, 0xc9,
+ 0x01, 0x96, 0x01, 0xbc, 0x02, 0x75, 0x80, 0xde, 0x8f, 0x85, 0xf6, 0x02,
+ 0x46, 0xb5, 0x12, 0x6b, 0xd5, 0xe3, 0x6f, 0x30, 0xd7, 0xf4, 0xe9, 0x0d,
+ 0x0c, 0x46, 0xcd, 0x3a, 0x63, 0xf9, 0xd2, 0xed, 0xcf, 0x67, 0x19, 0x32,
+};
+static const unsigned char kat1423_addin0[] = {0};
+static const unsigned char kat1423_addin1[] = {0};
+static const unsigned char kat1423_retbits[] = {
+ 0x75, 0xfc, 0x75, 0x72, 0x93, 0x35, 0x1c, 0x54, 0x5b, 0x1f, 0x73, 0x0f,
+ 0xd4, 0xec, 0x82, 0x06, 0x1d, 0x85, 0xe8, 0x0f, 0x8b, 0x77, 0x12, 0x2a,
+ 0xdb, 0x53, 0x72, 0x2b, 0x50, 0x9d, 0x7f, 0x27, 0xae, 0xbc, 0x8a, 0x5b,
+ 0x15, 0x45, 0xb6, 0xe6, 0xbc, 0xef, 0x2c, 0x9c, 0x28, 0x0f, 0xb3, 0x07,
+ 0xdc, 0x5a, 0xf0, 0x9b, 0x63, 0xbc, 0x86, 0x59, 0xeb, 0x6c, 0x90, 0x55,
+ 0x07, 0xa2, 0x0e, 0x57,
+};
+static const struct drbg_kat_no_reseed kat1423_t = {
+ 12, kat1423_entropyin, kat1423_nonce, kat1423_persstr,
+ kat1423_addin0, kat1423_addin1, kat1423_retbits
+};
+static const struct drbg_kat kat1423 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1423_t
+};
+
+static const unsigned char kat1424_entropyin[] = {
+ 0x32, 0x2a, 0x46, 0xb1, 0x03, 0xd6, 0xd1, 0x76, 0x5c, 0x90, 0x82, 0x9a,
+ 0xd0, 0x6c, 0x8b, 0x80, 0xe3, 0x66, 0xb4, 0x34, 0xc2, 0x92, 0x76, 0xde,
+ 0x3c, 0x60, 0x8d, 0xab, 0x02, 0xed, 0x03, 0x0c, 0x95, 0xa6, 0xf5, 0x79,
+ 0xca, 0x98, 0xc0, 0xf3, 0xf9, 0x77, 0x1c, 0xba, 0x09, 0x9b, 0xfe, 0x29,
+};
+static const unsigned char kat1424_nonce[] = {0};
+static const unsigned char kat1424_persstr[] = {
+ 0x3c, 0x86, 0xe0, 0xab, 0x0c, 0x20, 0xc6, 0x76, 0x55, 0x95, 0xce, 0x82,
+ 0xcc, 0x54, 0xf3, 0x69, 0x25, 0x80, 0x74, 0xab, 0x2d, 0x4b, 0x8b, 0x5d,
+ 0x9f, 0xca, 0xb7, 0xdc, 0x38, 0xfa, 0x88, 0x66, 0x07, 0x3a, 0xf3, 0xa7,
+ 0x33, 0x54, 0x6f, 0x68, 0x5c, 0x68, 0xee, 0x68, 0x15, 0x49, 0x26, 0x91,
+};
+static const unsigned char kat1424_addin0[] = {0};
+static const unsigned char kat1424_addin1[] = {0};
+static const unsigned char kat1424_retbits[] = {
+ 0x6c, 0x99, 0x54, 0x63, 0xad, 0xdd, 0xec, 0x73, 0xb6, 0xc0, 0x3e, 0xec,
+ 0xac, 0x07, 0xdb, 0x82, 0x42, 0x56, 0xa7, 0x91, 0xa1, 0xd0, 0xf4, 0xd7,
+ 0x86, 0xe9, 0x49, 0xf0, 0xd1, 0x98, 0x7e, 0xa4, 0xae, 0xdf, 0xd3, 0xbd,
+ 0x06, 0xb1, 0x62, 0x2c, 0xc8, 0x5a, 0x23, 0x70, 0xcd, 0x30, 0x55, 0x3e,
+ 0xe3, 0x54, 0x3d, 0x38, 0xd1, 0xc8, 0x7c, 0xea, 0x73, 0x1e, 0x68, 0x72,
+ 0xe7, 0x1f, 0x9d, 0xdb,
+};
+static const struct drbg_kat_no_reseed kat1424_t = {
+ 13, kat1424_entropyin, kat1424_nonce, kat1424_persstr,
+ kat1424_addin0, kat1424_addin1, kat1424_retbits
+};
+static const struct drbg_kat kat1424 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1424_t
+};
+
+static const unsigned char kat1425_entropyin[] = {
+ 0x7c, 0xe9, 0x97, 0x7c, 0xb8, 0x06, 0x34, 0xf0, 0x50, 0x3d, 0xee, 0xe2,
+ 0xaf, 0xb8, 0x23, 0x0c, 0x57, 0x40, 0x8c, 0x83, 0xbf, 0x5b, 0xf4, 0x1d,
+ 0x2d, 0x62, 0xd4, 0xda, 0xa4, 0xc4, 0x92, 0xfa, 0x60, 0xbe, 0x92, 0x74,
+ 0xf5, 0x39, 0xef, 0x37, 0xad, 0x3b, 0x83, 0xbd, 0xac, 0xdf, 0x70, 0x2c,
+};
+static const unsigned char kat1425_nonce[] = {0};
+static const unsigned char kat1425_persstr[] = {
+ 0xd8, 0x62, 0x03, 0x9c, 0xc2, 0xc2, 0x97, 0xd6, 0x35, 0x29, 0xa3, 0x3f,
+ 0x38, 0xa6, 0xe5, 0x66, 0x0a, 0x06, 0x91, 0x9a, 0x04, 0x4c, 0x7e, 0x74,
+ 0x6f, 0xf2, 0x38, 0xb6, 0x53, 0x21, 0xd2, 0xa2, 0x33, 0xa9, 0xa9, 0xc7,
+ 0xb3, 0x53, 0x4c, 0x93, 0x2a, 0x88, 0x81, 0xad, 0x38, 0xd3, 0x1f, 0x65,
+};
+static const unsigned char kat1425_addin0[] = {0};
+static const unsigned char kat1425_addin1[] = {0};
+static const unsigned char kat1425_retbits[] = {
+ 0xf1, 0x7b, 0x61, 0xf1, 0xc3, 0xca, 0xae, 0x33, 0x11, 0x60, 0xb7, 0x14,
+ 0x50, 0x4b, 0x9c, 0x05, 0x8a, 0xc3, 0x45, 0xf0, 0x7a, 0x5a, 0x26, 0x03,
+ 0x4d, 0xbf, 0xd7, 0xfe, 0xf5, 0x01, 0x3b, 0x52, 0xca, 0xe3, 0xe2, 0xcd,
+ 0x35, 0x70, 0x95, 0xb6, 0x23, 0x06, 0x5e, 0xc5, 0xcb, 0x55, 0x70, 0x01,
+ 0x88, 0x7b, 0x17, 0xf9, 0xb6, 0xf9, 0x47, 0x6d, 0x54, 0x49, 0xac, 0x7d,
+ 0x81, 0xd5, 0xab, 0xd3,
+};
+static const struct drbg_kat_no_reseed kat1425_t = {
+ 14, kat1425_entropyin, kat1425_nonce, kat1425_persstr,
+ kat1425_addin0, kat1425_addin1, kat1425_retbits
+};
+static const struct drbg_kat kat1425 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat1425_t
+};
+
+static const unsigned char kat1426_entropyin[] = {
+ 0x9c, 0x2a, 0xa3, 0x03, 0x49, 0xa0, 0x25, 0x3b, 0x3a, 0x97, 0xcc, 0xf9,
+ 0x24, 0xf8, 0xbc, 0xaf, 0xe1, 0xe1, 0x36, 0x46, 0x00, 0xb4, 0x90, 0x5a,
+ 0x4d, 0x9a, 0x0d, 0x54, 0xf7, 0xf5, 0x6e, 0xbd, 0x00, 0x07, 0x9f, 0xcc,
+ 0x12, 0xf8, 0x3d, 0xfa, 0xc7, 0x1a, 0xa1, 0xf2, 0xc8, 0x47, 0x12, 0x7e,
+};
+static const unsigned char kat1426_nonce[] = {0};
+static const unsigned char kat1426_persstr[] = {
+ 0x57, 0x16, 0x4c, 0xea, 0x95, 0x82, 0x23, 0x96, 0x4e, 0x94, 0xb3, 0x59,
+ 0x6c, 0x1a, 0xfc, 0x06, 0x81, 0x8d, 0xfe, 0x90, 0x84, 0x11, 0x32, 0xc3,
+ 0x27, 0x34, 0x2b, 0xbb, 0x65, 0x4b, 0x74, 0xf2, 0x0e, 0x5f, 0x50, 0x65,
+ 0x83, 0x24, 0x06, 0x12, 0x05, 0xa8, 0xee, 0xa2, 0x1d, 0xdd, 0xcf, 0x48,
+};
+static const unsigned char kat1426_addin0[] = {
+ 0x41, 0x25, 0xbe, 0xc3, 0x17, 0x43, 0x14, 0xc6, 0x03, 0xcf, 0x05, 0x2a,
+ 0xf4, 0x7b, 0xeb, 0xf6, 0x43, 0x3a, 0x17, 0xcd, 0x8a, 0x8f, 0xcb, 0x18,
+ 0x6f, 0x14, 0xcb, 0xd5, 0x76, 0x1c, 0x09, 0x21, 0x6d, 0x48, 0xb4, 0x1d,
+ 0x4f, 0xb1, 0x74, 0x81, 0xaf, 0xaf, 0x4d, 0xbc, 0x08, 0x68, 0x1a, 0xe9,
+};
+static const unsigned char kat1426_addin1[] = {
+ 0xda, 0xbf, 0x91, 0x35, 0xae, 0x5d, 0x14, 0x28, 0x0f, 0x2e, 0x26, 0x9e,
+ 0xa8, 0x3f, 0x44, 0xdc, 0x2e, 0xb4, 0xd7, 0x61, 0x3e, 0x59, 0x64, 0xcb,
+ 0x1d, 0x49, 0x9f, 0x7b, 0x5b, 0xdc, 0xe4, 0x54, 0x02, 0x54, 0x6e, 0x86,
+ 0xa7, 0x86, 0x80, 0xbc, 0xd8, 0xce, 0x1f, 0xe9, 0xd7, 0x1e, 0xe7, 0x58,
+};
+static const unsigned char kat1426_retbits[] = {
+ 0xec, 0x2e, 0x92, 0x97, 0x6c, 0x00, 0xb2, 0x36, 0x48, 0x38, 0xbd, 0x6c,
+ 0xae, 0x8f, 0x4c, 0xc6, 0x19, 0x4f, 0x39, 0xd7, 0x22, 0xd8, 0x8d, 0x99,
+ 0x0b, 0x32, 0xe5, 0x95, 0xaa, 0x82, 0xde, 0x66, 0x15, 0x34, 0xa0, 0x24,
+ 0x8d, 0xe6, 0xda, 0xf4, 0xdc, 0x36, 0x98, 0xb7, 0xa0, 0xee, 0xf0, 0x2d,
+ 0xbc, 0x9e, 0x33, 0x1c, 0x7c, 0xf4, 0xc0, 0x29, 0xf5, 0x5c, 0xa7, 0xab,
+ 0xeb, 0xd0, 0x62, 0xdb,
+};
+static const struct drbg_kat_no_reseed kat1426_t = {
+ 0, kat1426_entropyin, kat1426_nonce, kat1426_persstr,
+ kat1426_addin0, kat1426_addin1, kat1426_retbits
+};
+static const struct drbg_kat kat1426 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1426_t
+};
+
+static const unsigned char kat1427_entropyin[] = {
+ 0xa2, 0x86, 0x7d, 0xd3, 0xbc, 0xcf, 0x77, 0x59, 0x3d, 0x05, 0xcd, 0x04,
+ 0xd7, 0x87, 0x70, 0x03, 0xf6, 0x57, 0x1c, 0x6c, 0x93, 0x6e, 0x89, 0x48,
+ 0x6d, 0xb0, 0x8e, 0x81, 0xa4, 0x05, 0x99, 0x8c, 0x16, 0xae, 0xb4, 0x3c,
+ 0xd2, 0x28, 0x5c, 0x76, 0xf5, 0xd0, 0x5c, 0x6c, 0x00, 0xd8, 0x92, 0xda,
+};
+static const unsigned char kat1427_nonce[] = {0};
+static const unsigned char kat1427_persstr[] = {
+ 0xce, 0xdb, 0x0c, 0x88, 0xce, 0x2d, 0xe1, 0x7c, 0x5a, 0xde, 0x8c, 0x4b,
+ 0x05, 0x22, 0x20, 0x0b, 0x24, 0x8e, 0x47, 0xde, 0xb2, 0x19, 0x0e, 0xda,
+ 0xe3, 0xff, 0xe1, 0xbf, 0xee, 0xb3, 0xd5, 0x68, 0x46, 0x68, 0xbb, 0xa1,
+ 0x6a, 0x32, 0xa1, 0xaa, 0xb9, 0xdc, 0x46, 0xa9, 0x88, 0xb5, 0x31, 0x68,
+};
+static const unsigned char kat1427_addin0[] = {
+ 0x17, 0x5f, 0x33, 0x73, 0xee, 0xf6, 0xc4, 0xe6, 0xa3, 0xa0, 0xfe, 0xd7,
+ 0x2b, 0x67, 0xcd, 0xc5, 0x64, 0xc3, 0xda, 0x9c, 0xe5, 0x42, 0xcb, 0xff,
+ 0x68, 0x7a, 0xa8, 0x2a, 0xeb, 0x98, 0xd7, 0xd1, 0x17, 0x9d, 0xde, 0xd2,
+ 0xeb, 0x8e, 0x33, 0x93, 0x89, 0xa6, 0xc2, 0x4c, 0x15, 0xc7, 0x26, 0xeb,
+};
+static const unsigned char kat1427_addin1[] = {
+ 0xfd, 0xdd, 0xca, 0x75, 0x5a, 0x66, 0xc7, 0xb6, 0x40, 0x5b, 0xf8, 0x8d,
+ 0xbf, 0xcc, 0x19, 0x9e, 0x98, 0xd1, 0xfe, 0xe9, 0x04, 0xb8, 0xb3, 0xad,
+ 0xb1, 0xf7, 0x52, 0xa2, 0x06, 0xaf, 0x3d, 0x82, 0xd1, 0xe2, 0x7d, 0x99,
+ 0xb6, 0xdf, 0x80, 0xce, 0x24, 0x32, 0x8d, 0x02, 0xa5, 0x75, 0x93, 0x2f,
+};
+static const unsigned char kat1427_retbits[] = {
+ 0x75, 0x57, 0xd1, 0x03, 0x3e, 0x82, 0x69, 0xa4, 0x64, 0x86, 0xf9, 0x1e,
+ 0xd0, 0x62, 0x2d, 0x2f, 0xde, 0xf5, 0xba, 0xc0, 0x8b, 0x66, 0x3d, 0x13,
+ 0x67, 0x39, 0x26, 0x2a, 0xb1, 0x4b, 0x25, 0x4a, 0x86, 0x00, 0xfb, 0xfe,
+ 0xa2, 0x82, 0x9e, 0x86, 0x67, 0xaf, 0x3c, 0x79, 0x0a, 0x61, 0xb8, 0xae,
+ 0x26, 0x3d, 0x6e, 0xd0, 0x24, 0x8c, 0xe1, 0xdd, 0x1b, 0x33, 0x76, 0x2d,
+ 0xde, 0x51, 0x9d, 0xc8,
+};
+static const struct drbg_kat_no_reseed kat1427_t = {
+ 1, kat1427_entropyin, kat1427_nonce, kat1427_persstr,
+ kat1427_addin0, kat1427_addin1, kat1427_retbits
+};
+static const struct drbg_kat kat1427 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1427_t
+};
+
+static const unsigned char kat1428_entropyin[] = {
+ 0xe6, 0xa0, 0xc6, 0xb9, 0xc5, 0x46, 0xf7, 0xf7, 0xbd, 0x5c, 0x7e, 0x5d,
+ 0xeb, 0x3e, 0x86, 0xf6, 0xd7, 0x27, 0x8b, 0x79, 0x99, 0x93, 0x0d, 0x58,
+ 0x54, 0xf9, 0xab, 0xa5, 0x56, 0xad, 0xd7, 0x5d, 0xc2, 0xa0, 0xc8, 0x01,
+ 0xe1, 0x4f, 0xf2, 0xbc, 0xe5, 0xc4, 0x26, 0x35, 0x43, 0xb6, 0x42, 0x0d,
+};
+static const unsigned char kat1428_nonce[] = {0};
+static const unsigned char kat1428_persstr[] = {
+ 0x33, 0xb7, 0xe9, 0x00, 0x5d, 0x32, 0x83, 0x5d, 0x73, 0x3d, 0xc7, 0x66,
+ 0x68, 0x31, 0xc3, 0x72, 0x12, 0x74, 0x48, 0x2b, 0x4d, 0x3a, 0xc4, 0x38,
+ 0xd0, 0xd7, 0xca, 0x8e, 0x87, 0x46, 0x19, 0x9e, 0x11, 0x2f, 0xd9, 0xd2,
+ 0x3e, 0xa1, 0xa7, 0x4a, 0x20, 0x1e, 0x8b, 0x0d, 0xe1, 0xc3, 0x82, 0xd4,
+};
+static const unsigned char kat1428_addin0[] = {
+ 0x4d, 0xe2, 0x9f, 0xc6, 0x08, 0x3b, 0xa3, 0x00, 0xd7, 0xd5, 0x3e, 0x32,
+ 0xfa, 0xae, 0xd8, 0xae, 0x82, 0xea, 0x42, 0x1f, 0x88, 0x6f, 0x3d, 0xaf,
+ 0x54, 0xa3, 0x32, 0xdf, 0x5e, 0x51, 0xf9, 0x65, 0x87, 0xe1, 0x4b, 0xff,
+ 0x81, 0x93, 0x0f, 0x20, 0xd9, 0x5d, 0xde, 0x89, 0x94, 0xe2, 0x22, 0x39,
+};
+static const unsigned char kat1428_addin1[] = {
+ 0xa2, 0x53, 0x9b, 0x0f, 0x07, 0x50, 0xa5, 0x0e, 0xf4, 0x36, 0x07, 0x84,
+ 0x6f, 0x1a, 0x2c, 0x1f, 0x88, 0x8b, 0x87, 0xdc, 0xec, 0x07, 0x22, 0x43,
+ 0xce, 0x3d, 0x74, 0xe1, 0xac, 0x95, 0x4c, 0x6a, 0x12, 0xcf, 0xe7, 0x43,
+ 0x8e, 0x4f, 0x39, 0x28, 0x84, 0xb6, 0x86, 0x3d, 0x68, 0xc5, 0x91, 0x76,
+};
+static const unsigned char kat1428_retbits[] = {
+ 0x6f, 0xde, 0x60, 0x4d, 0x9e, 0x8b, 0x86, 0x6c, 0x76, 0x36, 0xb4, 0xdc,
+ 0x40, 0x1f, 0x99, 0xf5, 0xf7, 0x42, 0x97, 0x64, 0x5d, 0xf0, 0xe6, 0x1d,
+ 0xf7, 0x31, 0x1b, 0xcf, 0xd7, 0x40, 0xe0, 0xfb, 0xec, 0xe8, 0xc6, 0x82,
+ 0x96, 0xaa, 0x26, 0xec, 0x53, 0x7c, 0x82, 0x85, 0x82, 0x23, 0x02, 0xfc,
+ 0xcb, 0xce, 0x05, 0xfc, 0x80, 0x81, 0x78, 0xa3, 0x9b, 0x2f, 0xf4, 0x8b,
+ 0xd6, 0xb0, 0x36, 0x41,
+};
+static const struct drbg_kat_no_reseed kat1428_t = {
+ 2, kat1428_entropyin, kat1428_nonce, kat1428_persstr,
+ kat1428_addin0, kat1428_addin1, kat1428_retbits
+};
+static const struct drbg_kat kat1428 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1428_t
+};
+
+static const unsigned char kat1429_entropyin[] = {
+ 0xb4, 0x16, 0xd3, 0x75, 0xcc, 0xb7, 0x91, 0xc1, 0x67, 0xd8, 0xd7, 0xf9,
+ 0xbb, 0x8f, 0xdb, 0xdc, 0xed, 0xc0, 0x01, 0xa1, 0x75, 0x51, 0xa3, 0x9f,
+ 0x2a, 0x4d, 0x0a, 0xad, 0xd1, 0x3b, 0x3d, 0xc8, 0xcb, 0x93, 0x77, 0x00,
+ 0x60, 0xd6, 0xcb, 0x3b, 0xf2, 0x34, 0x21, 0xff, 0x0e, 0x34, 0x5a, 0xf4,
+};
+static const unsigned char kat1429_nonce[] = {0};
+static const unsigned char kat1429_persstr[] = {
+ 0x35, 0xb7, 0x7c, 0x86, 0x3c, 0xb8, 0x78, 0x58, 0xa8, 0xd1, 0x2a, 0x81,
+ 0xd6, 0x9e, 0x03, 0xbc, 0x20, 0x5b, 0xcd, 0x9f, 0x32, 0xdb, 0x58, 0xfb,
+ 0x7b, 0xa6, 0x53, 0xca, 0xfa, 0x12, 0x20, 0x68, 0x22, 0x5a, 0xed, 0xc0,
+ 0xba, 0x12, 0x51, 0x25, 0xaf, 0x81, 0xf0, 0x08, 0x46, 0x8a, 0x05, 0x22,
+};
+static const unsigned char kat1429_addin0[] = {
+ 0x52, 0x0c, 0x5f, 0x1b, 0x3c, 0x73, 0x6b, 0x83, 0xe9, 0xd5, 0xfd, 0x78,
+ 0xce, 0xb4, 0xe4, 0x4b, 0xa1, 0xd0, 0x7a, 0xea, 0x39, 0x58, 0x63, 0x14,
+ 0xc3, 0xac, 0x7d, 0xd1, 0x18, 0x13, 0xc5, 0x79, 0x8e, 0x2c, 0xce, 0xa8,
+ 0xd3, 0xb4, 0xcf, 0x40, 0xea, 0xa2, 0x54, 0x66, 0x04, 0x4a, 0xb9, 0x04,
+};
+static const unsigned char kat1429_addin1[] = {
+ 0x28, 0xe7, 0x31, 0x3d, 0x63, 0xb9, 0xd4, 0x66, 0x69, 0x75, 0xd5, 0xd3,
+ 0xc0, 0xe7, 0x10, 0xd2, 0x47, 0xe4, 0x30, 0x2d, 0x7d, 0x01, 0x76, 0x29,
+ 0x37, 0xa0, 0x10, 0x98, 0x9a, 0xd3, 0xe4, 0x39, 0x44, 0x21, 0xa4, 0xa3,
+ 0x0c, 0xa3, 0x42, 0x31, 0xaf, 0x95, 0x65, 0x38, 0xd3, 0x02, 0x57, 0x2b,
+};
+static const unsigned char kat1429_retbits[] = {
+ 0x6d, 0x8d, 0xae, 0x54, 0x89, 0x03, 0xcf, 0x1f, 0x8d, 0xc2, 0x05, 0x57,
+ 0x25, 0xc9, 0x61, 0x51, 0x61, 0xef, 0x7e, 0x84, 0x6f, 0xd8, 0x78, 0x24,
+ 0xf7, 0xff, 0xc1, 0x72, 0xc2, 0xaa, 0x20, 0xba, 0x8c, 0xfe, 0x40, 0x86,
+ 0xd4, 0xd7, 0x7d, 0x4c, 0x6b, 0x92, 0x51, 0x6b, 0x59, 0x76, 0x91, 0x62,
+ 0x72, 0x17, 0x62, 0x65, 0xc7, 0x75, 0xce, 0xb0, 0xfc, 0x14, 0x2e, 0x6e,
+ 0x84, 0xdb, 0xe7, 0x60,
+};
+static const struct drbg_kat_no_reseed kat1429_t = {
+ 3, kat1429_entropyin, kat1429_nonce, kat1429_persstr,
+ kat1429_addin0, kat1429_addin1, kat1429_retbits
+};
+static const struct drbg_kat kat1429 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1429_t
+};
+
+static const unsigned char kat1430_entropyin[] = {
+ 0x1e, 0xb8, 0x9e, 0x39, 0x3b, 0x55, 0x75, 0xe9, 0x6e, 0x14, 0xb9, 0x0c,
+ 0x77, 0x34, 0x97, 0xbd, 0x57, 0x61, 0xb4, 0x89, 0x83, 0xb9, 0xf2, 0x5e,
+ 0x77, 0x87, 0x0c, 0x04, 0xf8, 0xe5, 0xaf, 0x2e, 0x3b, 0x3d, 0xc3, 0x06,
+ 0x06, 0x73, 0x44, 0xb9, 0x8e, 0xee, 0x51, 0x0b, 0xa4, 0x25, 0x16, 0x41,
+};
+static const unsigned char kat1430_nonce[] = {0};
+static const unsigned char kat1430_persstr[] = {
+ 0x3e, 0x54, 0x1e, 0xcc, 0x77, 0x50, 0xd0, 0x22, 0xe5, 0x47, 0xa3, 0x8b,
+ 0x22, 0xbd, 0x35, 0xd3, 0xd0, 0x08, 0x82, 0xd9, 0x7c, 0xc2, 0x88, 0x6f,
+ 0x51, 0x62, 0xc5, 0xee, 0x49, 0xa9, 0x5f, 0x93, 0x47, 0xf8, 0x05, 0xc6,
+ 0xb5, 0xb8, 0x1d, 0xb4, 0xc0, 0xaf, 0x0b, 0x19, 0xf0, 0x33, 0xfd, 0x5e,
+};
+static const unsigned char kat1430_addin0[] = {
+ 0xd6, 0xf9, 0xda, 0x8e, 0x38, 0xe9, 0x62, 0x2f, 0x3e, 0x4d, 0x9c, 0x73,
+ 0xe5, 0x06, 0x85, 0x81, 0x1c, 0xb7, 0xe8, 0x7f, 0x9d, 0x71, 0xe7, 0xb9,
+ 0x59, 0xe3, 0x98, 0x6c, 0xa0, 0x2c, 0x74, 0x88, 0x7f, 0xf0, 0xdc, 0xfd,
+ 0x49, 0x6d, 0xfe, 0x3a, 0xab, 0x63, 0x63, 0x77, 0xe3, 0x39, 0x09, 0x10,
+};
+static const unsigned char kat1430_addin1[] = {
+ 0xb1, 0x93, 0x2a, 0xc6, 0xc0, 0xbb, 0x26, 0xe3, 0x6e, 0x2a, 0xef, 0x89,
+ 0x8d, 0xb3, 0xf6, 0x3a, 0xd7, 0x2a, 0x4a, 0xb8, 0x2f, 0x43, 0x3b, 0x69,
+ 0x21, 0xf6, 0xec, 0x0c, 0xbb, 0x1b, 0x20, 0xba, 0xeb, 0xd6, 0xeb, 0x24,
+ 0x69, 0xba, 0x48, 0x7d, 0xea, 0xec, 0x51, 0x08, 0x2d, 0x06, 0xb1, 0x69,
+};
+static const unsigned char kat1430_retbits[] = {
+ 0x47, 0x0e, 0x8f, 0x1f, 0x67, 0xc3, 0x12, 0xdd, 0x8e, 0x62, 0xf1, 0x86,
+ 0x51, 0x1f, 0x9d, 0x78, 0xf3, 0x8c, 0x6f, 0xa6, 0x2a, 0xae, 0x07, 0x4b,
+ 0x1e, 0xe1, 0x8b, 0x43, 0x84, 0x30, 0xf0, 0x1c, 0xab, 0x31, 0x38, 0x34,
+ 0xe4, 0xe4, 0xc1, 0xc8, 0xd5, 0xf5, 0xd0, 0x45, 0x03, 0xa2, 0x7c, 0xbe,
+ 0x1b, 0x86, 0x20, 0xd6, 0x00, 0x42, 0x49, 0x2f, 0x90, 0xd5, 0x98, 0xb1,
+ 0x22, 0x70, 0xef, 0x0f,
+};
+static const struct drbg_kat_no_reseed kat1430_t = {
+ 4, kat1430_entropyin, kat1430_nonce, kat1430_persstr,
+ kat1430_addin0, kat1430_addin1, kat1430_retbits
+};
+static const struct drbg_kat kat1430 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1430_t
+};
+
+static const unsigned char kat1431_entropyin[] = {
+ 0xd8, 0x3a, 0x62, 0x4c, 0x5d, 0x62, 0x8d, 0xe8, 0x3e, 0x80, 0xe6, 0x63,
+ 0x10, 0x0e, 0x2c, 0x9e, 0x46, 0x2a, 0x87, 0x5c, 0xa3, 0x40, 0xa3, 0xcc,
+ 0x5f, 0x5f, 0x9c, 0xa4, 0x01, 0x78, 0x07, 0x78, 0x28, 0x8f, 0x67, 0x48,
+ 0x82, 0xa6, 0x8e, 0xbf, 0x40, 0xa2, 0x93, 0x08, 0x6f, 0xc6, 0xa4, 0x3d,
+};
+static const unsigned char kat1431_nonce[] = {0};
+static const unsigned char kat1431_persstr[] = {
+ 0xba, 0x87, 0x04, 0xa5, 0x4e, 0x24, 0x76, 0x79, 0xa5, 0xbd, 0xb7, 0x0d,
+ 0x3b, 0x29, 0xe5, 0x8f, 0x44, 0x20, 0x77, 0x35, 0x52, 0xcf, 0xc9, 0x9e,
+ 0x04, 0x1a, 0x86, 0x2d, 0x12, 0xea, 0x92, 0x9a, 0xd4, 0x4c, 0x16, 0x09,
+ 0xcf, 0xa2, 0x48, 0x74, 0x94, 0xd5, 0x5a, 0xf2, 0x20, 0xe9, 0x5a, 0x9a,
+};
+static const unsigned char kat1431_addin0[] = {
+ 0xfe, 0x69, 0x35, 0x5e, 0x0e, 0x4d, 0x9b, 0xd8, 0x5a, 0x93, 0xfb, 0xfc,
+ 0x6f, 0xce, 0x30, 0x55, 0x1e, 0x31, 0xff, 0xa8, 0xd4, 0x66, 0x81, 0x26,
+ 0xf3, 0x75, 0x47, 0xec, 0xca, 0xb4, 0x06, 0x4a, 0x02, 0xa5, 0xdc, 0xc8,
+ 0xf5, 0xbb, 0x07, 0xcd, 0x4d, 0x64, 0x6c, 0xcc, 0xd8, 0x34, 0x23, 0x5e,
+};
+static const unsigned char kat1431_addin1[] = {
+ 0xa6, 0xde, 0xd7, 0x59, 0x23, 0x89, 0x68, 0x48, 0x43, 0xd5, 0xcf, 0xff,
+ 0x28, 0xd2, 0xbd, 0xe9, 0x13, 0xef, 0x68, 0x62, 0x12, 0xe0, 0xf5, 0x4d,
+ 0x7b, 0x7d, 0x90, 0x73, 0x63, 0x96, 0x7a, 0x55, 0x52, 0x3c, 0x3b, 0x15,
+ 0x27, 0xb1, 0x15, 0x7c, 0xe9, 0x12, 0xb6, 0x63, 0x12, 0xeb, 0x46, 0x97,
+};
+static const unsigned char kat1431_retbits[] = {
+ 0x0b, 0xca, 0x25, 0x98, 0xd8, 0xb0, 0xce, 0x06, 0xc3, 0x6f, 0xee, 0xf8,
+ 0xf9, 0xa5, 0x68, 0xbe, 0x89, 0xeb, 0xad, 0x5e, 0x1d, 0xf2, 0x0e, 0x7a,
+ 0x02, 0x34, 0x09, 0xc8, 0xa0, 0x29, 0xc4, 0x2b, 0x6e, 0x15, 0xb0, 0x24,
+ 0x47, 0x24, 0x45, 0xc3, 0xeb, 0x7a, 0x0c, 0x8c, 0x50, 0xf7, 0x22, 0x9b,
+ 0x9d, 0x76, 0xb8, 0x60, 0x9b, 0xf4, 0xa3, 0x56, 0x59, 0x47, 0x5c, 0xb3,
+ 0x00, 0x80, 0xb4, 0x59,
+};
+static const struct drbg_kat_no_reseed kat1431_t = {
+ 5, kat1431_entropyin, kat1431_nonce, kat1431_persstr,
+ kat1431_addin0, kat1431_addin1, kat1431_retbits
+};
+static const struct drbg_kat kat1431 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1431_t
+};
+
+static const unsigned char kat1432_entropyin[] = {
+ 0x94, 0x57, 0xd6, 0x03, 0x0d, 0xe6, 0xae, 0x6d, 0x3a, 0xc1, 0xf6, 0x3b,
+ 0xb7, 0x09, 0x4c, 0x4f, 0xfc, 0xb3, 0x3d, 0x71, 0x78, 0xa4, 0xba, 0xbf,
+ 0xf5, 0x7d, 0x54, 0x9a, 0x58, 0xb6, 0xfd, 0x4f, 0x8b, 0x6b, 0x1c, 0xac,
+ 0x51, 0x85, 0x9f, 0x17, 0x1f, 0xd6, 0x2b, 0x76, 0xe6, 0x3e, 0xbc, 0xf4,
+};
+static const unsigned char kat1432_nonce[] = {0};
+static const unsigned char kat1432_persstr[] = {
+ 0x62, 0x44, 0xe0, 0x33, 0xb0, 0x3f, 0x7b, 0xfa, 0xdc, 0x50, 0xf2, 0x93,
+ 0x73, 0x03, 0x3d, 0x87, 0x3e, 0x55, 0xf2, 0xbb, 0x06, 0x92, 0x17, 0xde,
+ 0x4d, 0x51, 0xf5, 0x08, 0x98, 0x15, 0xf1, 0x4f, 0x1e, 0x00, 0x9f, 0xec,
+ 0x55, 0xb7, 0x2e, 0x06, 0xf2, 0xb2, 0xff, 0xa8, 0x7e, 0x10, 0x17, 0x4f,
+};
+static const unsigned char kat1432_addin0[] = {
+ 0x92, 0xf7, 0xbd, 0x2b, 0xe6, 0x76, 0xcf, 0x3e, 0x3e, 0x3a, 0x7f, 0x9f,
+ 0xe2, 0x07, 0xa3, 0x1b, 0xa6, 0xad, 0x98, 0x3d, 0x06, 0x5d, 0x68, 0xa8,
+ 0xef, 0x5e, 0x79, 0x98, 0x17, 0x64, 0x9d, 0x8d, 0x47, 0x5a, 0x2f, 0xad,
+ 0x2b, 0xf9, 0x0d, 0xc2, 0x54, 0x21, 0x61, 0xa8, 0x67, 0xa7, 0x1a, 0xe0,
+};
+static const unsigned char kat1432_addin1[] = {
+ 0x0a, 0x6e, 0x31, 0x6a, 0x18, 0xc5, 0x6d, 0x0f, 0xca, 0x17, 0x29, 0x8b,
+ 0xc5, 0xcd, 0xc7, 0xba, 0xb3, 0x46, 0x4a, 0x08, 0x50, 0xb1, 0x41, 0x98,
+ 0xa7, 0x1c, 0x44, 0x91, 0xab, 0x36, 0xf5, 0x07, 0xf9, 0x4c, 0xda, 0x0f,
+ 0x07, 0x78, 0xf8, 0x6a, 0x87, 0xb7, 0x19, 0xc9, 0x60, 0xf9, 0xb1, 0x0a,
+};
+static const unsigned char kat1432_retbits[] = {
+ 0x49, 0x1f, 0x2f, 0x91, 0x81, 0x50, 0x51, 0xc7, 0xdf, 0xc6, 0xf8, 0xc3,
+ 0x6d, 0x3c, 0x9a, 0x44, 0x3d, 0x9e, 0x54, 0x89, 0x79, 0x88, 0x79, 0xb0,
+ 0x65, 0x85, 0x93, 0x90, 0x11, 0x0e, 0x65, 0xc0, 0x5b, 0xe1, 0x2b, 0xd9,
+ 0x5e, 0x45, 0xb2, 0x10, 0x30, 0x7d, 0x51, 0x4d, 0xa2, 0x1d, 0x66, 0x68,
+ 0xac, 0x82, 0x96, 0x80, 0x88, 0x8c, 0x2f, 0xac, 0x12, 0x77, 0x61, 0xb7,
+ 0xfb, 0x57, 0x96, 0xad,
+};
+static const struct drbg_kat_no_reseed kat1432_t = {
+ 6, kat1432_entropyin, kat1432_nonce, kat1432_persstr,
+ kat1432_addin0, kat1432_addin1, kat1432_retbits
+};
+static const struct drbg_kat kat1432 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1432_t
+};
+
+static const unsigned char kat1433_entropyin[] = {
+ 0x6b, 0x8a, 0x85, 0xd0, 0xa9, 0xe6, 0xd9, 0x0c, 0x61, 0xfb, 0x20, 0xbf,
+ 0xd0, 0xb2, 0x8a, 0xbc, 0xa2, 0xe5, 0x2d, 0x34, 0x96, 0x67, 0x57, 0xeb,
+ 0xbc, 0xb8, 0x39, 0xee, 0x27, 0x0d, 0xc2, 0xb0, 0x99, 0x94, 0x16, 0x6b,
+ 0x59, 0x9a, 0xa4, 0x2b, 0x09, 0xa1, 0x9b, 0x71, 0x72, 0x14, 0x62, 0xa0,
+};
+static const unsigned char kat1433_nonce[] = {0};
+static const unsigned char kat1433_persstr[] = {
+ 0x40, 0x7c, 0xd2, 0x57, 0xf6, 0x68, 0x4a, 0x87, 0x57, 0x1a, 0x31, 0xb9,
+ 0x89, 0x4c, 0x7c, 0xe5, 0x4f, 0xe0, 0x10, 0x51, 0x61, 0xe5, 0x2b, 0x02,
+ 0x32, 0xd8, 0xb2, 0x3a, 0x4b, 0xeb, 0x74, 0xa8, 0x1d, 0xac, 0xe4, 0xbe,
+ 0xb4, 0x36, 0x2b, 0xf4, 0x96, 0xe7, 0xa6, 0xe6, 0x77, 0x6b, 0x0f, 0x8e,
+};
+static const unsigned char kat1433_addin0[] = {
+ 0x83, 0x52, 0xbc, 0xda, 0x2c, 0xea, 0xb1, 0xdc, 0x83, 0x6e, 0xb4, 0x51,
+ 0x87, 0x1f, 0xcd, 0xb1, 0x4c, 0x82, 0xe3, 0x25, 0xa7, 0x34, 0xac, 0x54,
+ 0xc9, 0x74, 0x1a, 0xa7, 0x89, 0x48, 0xf6, 0x31, 0xff, 0xe7, 0x58, 0x05,
+ 0xb8, 0xa4, 0xda, 0x6c, 0xc9, 0xae, 0xca, 0x8d, 0x27, 0xd1, 0x36, 0x07,
+};
+static const unsigned char kat1433_addin1[] = {
+ 0xa9, 0xdc, 0x73, 0xf7, 0x29, 0x91, 0x81, 0x10, 0x45, 0xaf, 0x83, 0x47,
+ 0x07, 0x8f, 0x27, 0xcc, 0xe0, 0x29, 0x7a, 0x93, 0x43, 0x23, 0xde, 0xe6,
+ 0xcd, 0x9d, 0x06, 0xb0, 0x02, 0x51, 0x2a, 0xef, 0x9a, 0xc0, 0x62, 0xe8,
+ 0x77, 0x0e, 0x7a, 0xa7, 0x43, 0x6a, 0x55, 0xfc, 0xee, 0x00, 0xb9, 0x77,
+};
+static const unsigned char kat1433_retbits[] = {
+ 0x15, 0x10, 0xe2, 0x4c, 0xd1, 0x69, 0x48, 0x70, 0x4e, 0x3e, 0x32, 0x50,
+ 0x0f, 0x3e, 0x0b, 0x70, 0x6d, 0x16, 0xa6, 0x8f, 0xb5, 0x2f, 0x33, 0x29,
+ 0x94, 0x28, 0x06, 0x88, 0x63, 0x60, 0xa0, 0xb3, 0x7f, 0x7a, 0x20, 0xea,
+ 0x46, 0x71, 0xcd, 0xe1, 0x3f, 0x6f, 0xc3, 0xb7, 0x53, 0x0d, 0x2e, 0x6f,
+ 0x8d, 0x06, 0x52, 0xc5, 0xed, 0x8e, 0x5a, 0x4d, 0xd5, 0x24, 0x49, 0x4a,
+ 0x64, 0x97, 0x1a, 0x73,
+};
+static const struct drbg_kat_no_reseed kat1433_t = {
+ 7, kat1433_entropyin, kat1433_nonce, kat1433_persstr,
+ kat1433_addin0, kat1433_addin1, kat1433_retbits
+};
+static const struct drbg_kat kat1433 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1433_t
+};
+
+static const unsigned char kat1434_entropyin[] = {
+ 0x69, 0xf5, 0xdb, 0xe0, 0x59, 0x71, 0xdd, 0xa9, 0x23, 0x67, 0x92, 0x54,
+ 0x9c, 0x24, 0x8d, 0x6b, 0xf6, 0xe3, 0x15, 0xd4, 0x04, 0x65, 0xae, 0xe2,
+ 0x64, 0xba, 0x8e, 0xdb, 0x79, 0x88, 0x75, 0x10, 0x1f, 0xf3, 0x2c, 0xe7,
+ 0x3d, 0xae, 0x0e, 0x47, 0xcd, 0x50, 0x6e, 0x07, 0x8b, 0x8e, 0x99, 0xa0,
+};
+static const unsigned char kat1434_nonce[] = {0};
+static const unsigned char kat1434_persstr[] = {
+ 0xf3, 0x42, 0x74, 0x75, 0x83, 0x2b, 0xa4, 0x71, 0xe2, 0x60, 0xe2, 0xff,
+ 0xc9, 0x67, 0xcb, 0xee, 0x71, 0x4a, 0x54, 0xfc, 0x20, 0x84, 0x12, 0x47,
+ 0x4f, 0xf2, 0x03, 0xeb, 0x92, 0xed, 0xad, 0x9a, 0x5e, 0x61, 0x1a, 0x99,
+ 0xe7, 0x15, 0x3b, 0xba, 0x52, 0x5f, 0x8a, 0x17, 0x33, 0x29, 0xaa, 0xde,
+};
+static const unsigned char kat1434_addin0[] = {
+ 0x9d, 0x96, 0x01, 0xc9, 0x92, 0x75, 0xcc, 0x69, 0x80, 0x84, 0x3e, 0x20,
+ 0xbd, 0x42, 0x04, 0xb2, 0x3e, 0xb5, 0xca, 0x73, 0x24, 0xf4, 0xbf, 0x90,
+ 0x8f, 0x5b, 0xd0, 0xeb, 0x4a, 0x37, 0xc2, 0x98, 0x2f, 0x7f, 0xbd, 0xbb,
+ 0x7c, 0x85, 0x91, 0xd5, 0x41, 0x47, 0x07, 0x89, 0x5e, 0xf8, 0x65, 0x2b,
+};
+static const unsigned char kat1434_addin1[] = {
+ 0x55, 0x3e, 0x5d, 0x18, 0x8e, 0xc4, 0x14, 0x36, 0xd0, 0xb3, 0x84, 0xcd,
+ 0x77, 0x73, 0xc9, 0x04, 0x52, 0xa1, 0x86, 0x55, 0x80, 0xa5, 0x2d, 0xf9,
+ 0x0f, 0x6a, 0xe1, 0x1b, 0x1a, 0xa1, 0x3a, 0xd5, 0x85, 0x1c, 0x6b, 0xc6,
+ 0x86, 0x7d, 0xf5, 0xa8, 0xd0, 0x32, 0x13, 0xe3, 0xfd, 0x56, 0xad, 0xe9,
+};
+static const unsigned char kat1434_retbits[] = {
+ 0xc6, 0x77, 0x78, 0x0e, 0x0c, 0xc5, 0xea, 0xe9, 0xc8, 0x12, 0xc1, 0x92,
+ 0xb2, 0x71, 0x63, 0x5f, 0x74, 0xbf, 0xd2, 0x52, 0xe7, 0x82, 0xe8, 0xba,
+ 0x38, 0x72, 0x7c, 0x4a, 0xfc, 0x7b, 0x47, 0xa6, 0xd9, 0xd5, 0x52, 0x04,
+ 0x59, 0xe1, 0x34, 0x01, 0x3e, 0xc3, 0x14, 0x40, 0x10, 0xb5, 0xd3, 0xd4,
+ 0xe4, 0x74, 0x75, 0x26, 0xf0, 0x3c, 0x61, 0x4f, 0x18, 0x63, 0xf2, 0x98,
+ 0x3e, 0x18, 0x68, 0x5b,
+};
+static const struct drbg_kat_no_reseed kat1434_t = {
+ 8, kat1434_entropyin, kat1434_nonce, kat1434_persstr,
+ kat1434_addin0, kat1434_addin1, kat1434_retbits
+};
+static const struct drbg_kat kat1434 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1434_t
+};
+
+static const unsigned char kat1435_entropyin[] = {
+ 0x2d, 0x52, 0xbd, 0xe0, 0xd6, 0x97, 0x26, 0x20, 0xc4, 0x21, 0x9f, 0x05,
+ 0xfc, 0x95, 0xd0, 0xbc, 0x25, 0x30, 0x02, 0x44, 0x45, 0xd5, 0xc9, 0x10,
+ 0x7a, 0x06, 0x84, 0xdb, 0x39, 0x04, 0xc5, 0x97, 0xe0, 0xd3, 0x14, 0x12,
+ 0xd9, 0xb8, 0x85, 0x14, 0xc9, 0xac, 0xa7, 0x45, 0xa3, 0x2b, 0x5f, 0x65,
+};
+static const unsigned char kat1435_nonce[] = {0};
+static const unsigned char kat1435_persstr[] = {
+ 0x45, 0x36, 0x0c, 0x8e, 0xc1, 0xd2, 0x27, 0xf3, 0xb2, 0x75, 0x1f, 0x16,
+ 0x10, 0xd1, 0x97, 0x7c, 0x14, 0x6f, 0x54, 0xc7, 0x42, 0x2c, 0xa7, 0xa6,
+ 0x74, 0x1a, 0x06, 0x4a, 0x5d, 0x12, 0xd7, 0xe1, 0x7e, 0x85, 0x03, 0x3a,
+ 0xba, 0x20, 0x19, 0xd9, 0xee, 0x7a, 0x5d, 0xae, 0x5d, 0x11, 0x75, 0x37,
+};
+static const unsigned char kat1435_addin0[] = {
+ 0xa7, 0xd5, 0xa7, 0xe8, 0xb1, 0xc5, 0x6a, 0x91, 0x69, 0x22, 0x69, 0xf9,
+ 0xe9, 0x57, 0xdd, 0xfd, 0x2e, 0x8a, 0xfa, 0xe9, 0xfb, 0x88, 0x4f, 0x2f,
+ 0x2b, 0xba, 0x61, 0x6c, 0x43, 0xb0, 0xe8, 0x01, 0x28, 0xaf, 0x25, 0xe7,
+ 0xcc, 0x46, 0x1a, 0x94, 0x11, 0x68, 0xe5, 0x06, 0xcf, 0xb2, 0xcd, 0x80,
+};
+static const unsigned char kat1435_addin1[] = {
+ 0x1f, 0xf6, 0x12, 0x6a, 0x73, 0x8e, 0x7b, 0xc1, 0x00, 0x04, 0x2c, 0x65,
+ 0xb1, 0xaa, 0x0f, 0xa5, 0xf4, 0xd7, 0x9b, 0x58, 0x79, 0x4c, 0x3a, 0x08,
+ 0x70, 0xd7, 0xdf, 0x1e, 0x15, 0x32, 0x9a, 0x35, 0xd5, 0x6a, 0x17, 0xff,
+ 0xf6, 0x42, 0x99, 0x21, 0xd0, 0xfd, 0x9d, 0xa9, 0x49, 0xae, 0x52, 0xb8,
+};
+static const unsigned char kat1435_retbits[] = {
+ 0xe9, 0x9c, 0xcd, 0x90, 0xcc, 0x3c, 0x61, 0xa9, 0xbf, 0x92, 0x50, 0x97,
+ 0x68, 0x23, 0x6f, 0x2a, 0xe1, 0xba, 0x5c, 0x6b, 0xd7, 0x9e, 0xd6, 0xde,
+ 0x13, 0xb5, 0x80, 0x5b, 0x04, 0x85, 0x79, 0xf8, 0x6f, 0xed, 0x1b, 0x38,
+ 0x32, 0x27, 0xef, 0x27, 0xe2, 0x74, 0x54, 0xae, 0x1c, 0x63, 0x42, 0x11,
+ 0x44, 0x71, 0x1c, 0x3c, 0x30, 0x5d, 0x61, 0xd0, 0x78, 0xa4, 0x72, 0x49,
+ 0xd6, 0x8a, 0x45, 0x87,
+};
+static const struct drbg_kat_no_reseed kat1435_t = {
+ 9, kat1435_entropyin, kat1435_nonce, kat1435_persstr,
+ kat1435_addin0, kat1435_addin1, kat1435_retbits
+};
+static const struct drbg_kat kat1435 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1435_t
+};
+
+static const unsigned char kat1436_entropyin[] = {
+ 0xdd, 0x3c, 0xdd, 0x9b, 0x28, 0xf7, 0x5c, 0xcb, 0x5b, 0x77, 0xe1, 0x9a,
+ 0xa8, 0x08, 0xc8, 0xf3, 0x17, 0x05, 0x8f, 0x26, 0xce, 0x26, 0x2f, 0xfe,
+ 0xf9, 0x9a, 0xd0, 0x99, 0x3f, 0x7d, 0x9e, 0x3b, 0x71, 0x0f, 0x02, 0x3e,
+ 0x64, 0x24, 0xa3, 0x93, 0xc7, 0xf1, 0x78, 0x75, 0x15, 0x1a, 0x8c, 0xe2,
+};
+static const unsigned char kat1436_nonce[] = {0};
+static const unsigned char kat1436_persstr[] = {
+ 0xe9, 0x52, 0xf4, 0xed, 0x56, 0x1d, 0xbe, 0x37, 0xba, 0x3c, 0xf5, 0x29,
+ 0x18, 0xa7, 0xa4, 0x62, 0x05, 0xbb, 0x22, 0xc5, 0xd7, 0x54, 0xa4, 0xd6,
+ 0x05, 0x9c, 0xee, 0x71, 0xbf, 0x5b, 0x1c, 0x55, 0xa0, 0x41, 0x71, 0x5f,
+ 0x99, 0x32, 0xca, 0x06, 0x89, 0xe8, 0x4f, 0x43, 0x32, 0x25, 0xb2, 0xb6,
+};
+static const unsigned char kat1436_addin0[] = {
+ 0xad, 0x07, 0x82, 0xde, 0x0d, 0xda, 0xd9, 0x98, 0xc5, 0x35, 0x96, 0x27,
+ 0xc9, 0xfd, 0x4e, 0x8b, 0x41, 0xb9, 0xae, 0xbf, 0x01, 0xb7, 0x5e, 0x36,
+ 0x00, 0x03, 0xe3, 0x8f, 0x23, 0x9b, 0x43, 0x14, 0x12, 0x67, 0x22, 0x69,
+ 0xd9, 0x1e, 0x51, 0x62, 0x39, 0xfc, 0x5b, 0xb9, 0x1f, 0xbc, 0x01, 0x36,
+};
+static const unsigned char kat1436_addin1[] = {
+ 0xe0, 0xb0, 0x04, 0x84, 0x9d, 0x31, 0xe6, 0x9b, 0xe8, 0x8f, 0xc4, 0x8a,
+ 0xb8, 0x81, 0x4b, 0x43, 0x8b, 0x69, 0x5b, 0x10, 0xad, 0x20, 0xf5, 0x0f,
+ 0x8c, 0xbb, 0xce, 0x03, 0x4f, 0x29, 0xbb, 0x74, 0x49, 0x94, 0x8b, 0xb2,
+ 0xd9, 0x9f, 0x5c, 0x86, 0xbb, 0xbf, 0x0b, 0x17, 0x37, 0x6d, 0xc1, 0x89,
+};
+static const unsigned char kat1436_retbits[] = {
+ 0xbf, 0x7d, 0xa7, 0xd1, 0x07, 0xc1, 0x29, 0xbf, 0x20, 0x7f, 0xf1, 0xa1,
+ 0x13, 0x67, 0xb3, 0xc1, 0x66, 0x1f, 0x26, 0x04, 0x44, 0x0e, 0xde, 0x09,
+ 0xd3, 0xa9, 0x20, 0x85, 0x4a, 0xd2, 0x7b, 0x79, 0x05, 0x01, 0xc9, 0x06,
+ 0x60, 0x67, 0x92, 0xc5, 0x96, 0x86, 0x6f, 0xd8, 0x7e, 0x68, 0x8c, 0xc6,
+ 0xb9, 0xee, 0xea, 0x45, 0x5d, 0x9e, 0xdc, 0x13, 0x9f, 0xdb, 0x3f, 0x76,
+ 0xb7, 0x6e, 0xfe, 0x57,
+};
+static const struct drbg_kat_no_reseed kat1436_t = {
+ 10, kat1436_entropyin, kat1436_nonce, kat1436_persstr,
+ kat1436_addin0, kat1436_addin1, kat1436_retbits
+};
+static const struct drbg_kat kat1436 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1436_t
+};
+
+static const unsigned char kat1437_entropyin[] = {
+ 0xd7, 0x0c, 0xc8, 0x7c, 0xcf, 0x0e, 0x3e, 0x51, 0x1a, 0x6c, 0x07, 0xbb,
+ 0x42, 0x47, 0xac, 0x22, 0x3b, 0xd8, 0xe6, 0x9a, 0x83, 0xa3, 0x7a, 0xce,
+ 0xa1, 0x7b, 0xbc, 0x05, 0x72, 0x1d, 0xcf, 0x77, 0xbc, 0xbf, 0xe3, 0x9f,
+ 0x93, 0x72, 0x02, 0x1f, 0x99, 0xe1, 0xc7, 0x60, 0x15, 0xd1, 0x30, 0xd0,
+};
+static const unsigned char kat1437_nonce[] = {0};
+static const unsigned char kat1437_persstr[] = {
+ 0xe1, 0x8c, 0x99, 0x6f, 0xad, 0xf1, 0x39, 0x5d, 0xd0, 0x66, 0x3b, 0x1b,
+ 0xbf, 0x52, 0x59, 0xf6, 0xd5, 0x61, 0x10, 0x11, 0x5f, 0x8e, 0x06, 0x52,
+ 0x05, 0xed, 0xe5, 0xd4, 0x1d, 0x76, 0x87, 0x5f, 0xa1, 0x78, 0x2d, 0xbe,
+ 0xdc, 0xa7, 0x05, 0x45, 0x0c, 0xb9, 0xc2, 0x1d, 0xba, 0x9e, 0xf9, 0x83,
+};
+static const unsigned char kat1437_addin0[] = {
+ 0x4f, 0xe4, 0x66, 0x8d, 0xfa, 0xd3, 0xdf, 0x81, 0x75, 0xc8, 0xc3, 0x9f,
+ 0xed, 0xe0, 0xbe, 0x23, 0xcf, 0x0b, 0xda, 0xff, 0xc8, 0xf7, 0xf1, 0x58,
+ 0xfe, 0xb9, 0x73, 0x66, 0xe5, 0x9e, 0x84, 0xff, 0x25, 0x14, 0x4c, 0x6f,
+ 0xf9, 0x91, 0x11, 0xa2, 0x35, 0x5c, 0xfb, 0xc1, 0xf5, 0xc1, 0x67, 0xd6,
+};
+static const unsigned char kat1437_addin1[] = {
+ 0x7a, 0x56, 0xc2, 0x62, 0x06, 0xf5, 0xeb, 0xc3, 0xb7, 0x0c, 0x49, 0x57,
+ 0x4a, 0xc8, 0x9b, 0x07, 0x10, 0x46, 0x74, 0x09, 0x7a, 0x6a, 0x11, 0x94,
+ 0x6f, 0x1b, 0x92, 0x36, 0x76, 0xc5, 0x96, 0xeb, 0x09, 0xfd, 0x5f, 0x98,
+ 0x24, 0xef, 0xba, 0x19, 0x48, 0x35, 0x9c, 0xdf, 0x24, 0x28, 0xcd, 0x9f,
+};
+static const unsigned char kat1437_retbits[] = {
+ 0x84, 0x72, 0xe6, 0x71, 0xdb, 0xcc, 0x41, 0xa4, 0xef, 0x46, 0xe1, 0x9d,
+ 0x46, 0x42, 0x86, 0x46, 0xe5, 0xf5, 0x40, 0x2d, 0x46, 0x02, 0x0d, 0xbd,
+ 0xd0, 0xd0, 0x78, 0x3a, 0x70, 0xda, 0x54, 0xb3, 0xa5, 0xa8, 0xfa, 0x8a,
+ 0xb5, 0xc1, 0xc9, 0x0f, 0xea, 0x5e, 0x2c, 0x6d, 0xb6, 0x89, 0x67, 0x90,
+ 0x1c, 0xf6, 0xcf, 0x5f, 0xc6, 0xf5, 0x4b, 0xb6, 0x71, 0x7c, 0xb7, 0xb3,
+ 0xc7, 0x76, 0x40, 0xb3,
+};
+static const struct drbg_kat_no_reseed kat1437_t = {
+ 11, kat1437_entropyin, kat1437_nonce, kat1437_persstr,
+ kat1437_addin0, kat1437_addin1, kat1437_retbits
+};
+static const struct drbg_kat kat1437 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1437_t
+};
+
+static const unsigned char kat1438_entropyin[] = {
+ 0x1e, 0x17, 0xd4, 0x33, 0x0e, 0xbb, 0x4d, 0x06, 0xab, 0x2c, 0xa5, 0xee,
+ 0xea, 0x4c, 0xd5, 0x97, 0x81, 0x38, 0x6f, 0x07, 0x39, 0x47, 0xbf, 0x8e,
+ 0x04, 0xd8, 0x6c, 0x8c, 0x10, 0xdf, 0xca, 0x02, 0x99, 0xf6, 0x9c, 0x00,
+ 0x59, 0xd4, 0xa0, 0x0e, 0x53, 0x6e, 0xe0, 0xec, 0x52, 0x6b, 0xfa, 0xbf,
+};
+static const unsigned char kat1438_nonce[] = {0};
+static const unsigned char kat1438_persstr[] = {
+ 0xa6, 0x1f, 0x6a, 0x69, 0x9d, 0x16, 0x3d, 0x15, 0x9c, 0x1d, 0x87, 0x41,
+ 0x44, 0x4f, 0xf4, 0xd6, 0x17, 0x2b, 0xf8, 0x17, 0xfa, 0xcb, 0x07, 0x4c,
+ 0x15, 0x50, 0xc3, 0x5a, 0x7d, 0x47, 0x57, 0xee, 0xfc, 0x3e, 0x24, 0xba,
+ 0xd5, 0x64, 0xb8, 0x6a, 0x49, 0xd5, 0x57, 0x39, 0x77, 0x42, 0xae, 0xdf,
+};
+static const unsigned char kat1438_addin0[] = {
+ 0x46, 0x82, 0xfa, 0xca, 0x35, 0x08, 0x3a, 0xa6, 0x72, 0xb8, 0xdd, 0x1d,
+ 0x3c, 0xcc, 0xe9, 0xf5, 0x52, 0xfb, 0x06, 0xe2, 0xa8, 0x52, 0x8d, 0x79,
+ 0x6c, 0xdc, 0x05, 0xfd, 0x1b, 0x56, 0x95, 0x3d, 0xab, 0x67, 0xa5, 0x1f,
+ 0x8b, 0x9e, 0xfa, 0x8f, 0x1a, 0x4f, 0x6d, 0x76, 0x7f, 0xec, 0xe8, 0x4d,
+};
+static const unsigned char kat1438_addin1[] = {
+ 0x44, 0x7e, 0x0e, 0x0e, 0x87, 0xcb, 0x82, 0x58, 0x63, 0x60, 0x0d, 0x25,
+ 0xb3, 0x52, 0xed, 0x4e, 0xfe, 0x5a, 0x75, 0xa2, 0xbd, 0x39, 0x13, 0x7c,
+ 0x19, 0x0d, 0x42, 0x32, 0x18, 0x9f, 0xe9, 0x24, 0x90, 0x04, 0xd1, 0x16,
+ 0xf1, 0x43, 0x56, 0x13, 0xfd, 0xaa, 0xee, 0x22, 0x1e, 0xd4, 0x48, 0xdf,
+};
+static const unsigned char kat1438_retbits[] = {
+ 0x54, 0xd0, 0x98, 0x12, 0x4d, 0xc7, 0xdf, 0x57, 0xa6, 0xa4, 0xc0, 0x67,
+ 0x9f, 0x76, 0xc0, 0x1d, 0x67, 0x4c, 0x7e, 0x5e, 0x27, 0x0a, 0xf8, 0xae,
+ 0x61, 0xdc, 0xb7, 0xd8, 0xcb, 0xed, 0xbd, 0xde, 0x1b, 0x92, 0x89, 0x87,
+ 0xb2, 0xb8, 0xd2, 0x41, 0x0a, 0x04, 0x70, 0x5d, 0x8d, 0xd2, 0x12, 0x8f,
+ 0xc6, 0x15, 0x9d, 0xfa, 0x30, 0xea, 0x0f, 0x75, 0x92, 0x40, 0x61, 0x0c,
+ 0x86, 0xd8, 0x8a, 0x5f,
+};
+static const struct drbg_kat_no_reseed kat1438_t = {
+ 12, kat1438_entropyin, kat1438_nonce, kat1438_persstr,
+ kat1438_addin0, kat1438_addin1, kat1438_retbits
+};
+static const struct drbg_kat kat1438 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1438_t
+};
+
+static const unsigned char kat1439_entropyin[] = {
+ 0xfd, 0xfe, 0x01, 0xe5, 0x15, 0xd1, 0x93, 0xdc, 0x04, 0x69, 0x81, 0xb3,
+ 0xff, 0xe3, 0x4d, 0xde, 0x3b, 0x48, 0xf7, 0xd9, 0xd4, 0x27, 0x43, 0x1d,
+ 0x1b, 0x11, 0xe1, 0x96, 0x9f, 0x6c, 0x9b, 0x52, 0x62, 0x34, 0xd9, 0xc9,
+ 0x5d, 0x3a, 0x19, 0xfc, 0xb6, 0xa6, 0x3a, 0xef, 0xd3, 0x7e, 0xae, 0x89,
+};
+static const unsigned char kat1439_nonce[] = {0};
+static const unsigned char kat1439_persstr[] = {
+ 0x3c, 0xa6, 0xad, 0x90, 0x59, 0x3f, 0xca, 0xa9, 0x2b, 0x99, 0x89, 0x4a,
+ 0x5e, 0x7f, 0x55, 0xb1, 0xc2, 0x3f, 0xc4, 0x7a, 0x58, 0xc7, 0x15, 0x7f,
+ 0xf3, 0x34, 0xce, 0x2a, 0x75, 0x8a, 0x57, 0x1e, 0xcb, 0xb9, 0xf4, 0x7c,
+ 0x3f, 0x9f, 0x8b, 0xf3, 0xc4, 0xf5, 0xf6, 0xf4, 0x5b, 0x2e, 0xf1, 0xbe,
+};
+static const unsigned char kat1439_addin0[] = {
+ 0xe9, 0xbb, 0x42, 0x66, 0x5b, 0xba, 0x29, 0x96, 0x1c, 0x6f, 0xb2, 0x73,
+ 0xfc, 0x59, 0x65, 0xcd, 0x94, 0x59, 0x4b, 0xc5, 0x3d, 0xc9, 0x19, 0x3b,
+ 0xa0, 0x4d, 0x7b, 0x18, 0x06, 0x95, 0x04, 0x21, 0xc5, 0xa8, 0x28, 0x57,
+ 0x63, 0x45, 0xb0, 0xd0, 0x98, 0x52, 0xf1, 0x6e, 0x70, 0x5f, 0x1a, 0xb6,
+};
+static const unsigned char kat1439_addin1[] = {
+ 0x94, 0x4d, 0xe5, 0x8b, 0xf8, 0x2b, 0xc8, 0x01, 0xf0, 0x13, 0xe5, 0xac,
+ 0x2f, 0xed, 0x93, 0xa4, 0xdb, 0xdc, 0xb5, 0x8b, 0x88, 0x83, 0x76, 0x9e,
+ 0x88, 0x29, 0x48, 0xcc, 0x5c, 0xdd, 0x0e, 0x4d, 0x8f, 0x5c, 0xc7, 0xe8,
+ 0x0b, 0x3a, 0x4c, 0x26, 0x0b, 0xbc, 0x10, 0xb5, 0xc0, 0x09, 0x4c, 0x51,
+};
+static const unsigned char kat1439_retbits[] = {
+ 0xd7, 0x45, 0xbd, 0xa3, 0x2d, 0x47, 0xbc, 0x9f, 0xc8, 0xd0, 0x0d, 0x69,
+ 0xb4, 0x6e, 0x54, 0xac, 0xdf, 0x79, 0xb7, 0xf9, 0x28, 0x16, 0x0d, 0x0d,
+ 0xfe, 0xe5, 0xd3, 0x3e, 0x40, 0x38, 0x7f, 0x68, 0x10, 0x37, 0x14, 0xd3,
+ 0x7a, 0xda, 0x08, 0xb8, 0xd4, 0xaa, 0x0f, 0x5e, 0x62, 0xbe, 0xfa, 0xde,
+ 0x2c, 0x11, 0x21, 0xda, 0xa8, 0xd5, 0x65, 0x9d, 0xb7, 0xdb, 0xe6, 0xe1,
+ 0x7c, 0x16, 0xb9, 0xe0,
+};
+static const struct drbg_kat_no_reseed kat1439_t = {
+ 13, kat1439_entropyin, kat1439_nonce, kat1439_persstr,
+ kat1439_addin0, kat1439_addin1, kat1439_retbits
+};
+static const struct drbg_kat kat1439 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1439_t
+};
+
+static const unsigned char kat1440_entropyin[] = {
+ 0x65, 0x62, 0xbb, 0xb3, 0x98, 0xc0, 0x2c, 0x7d, 0xdf, 0x0b, 0xdc, 0xbf,
+ 0xea, 0xcd, 0x5a, 0xfe, 0x31, 0xc7, 0x75, 0xbd, 0xa5, 0x3b, 0x4c, 0xb2,
+ 0xa3, 0x89, 0x6a, 0x89, 0x81, 0x49, 0xbb, 0x19, 0x5f, 0xa3, 0xdd, 0x69,
+ 0x23, 0x7b, 0xfa, 0xbe, 0x3a, 0x4c, 0x2d, 0xae, 0xbf, 0x30, 0xdc, 0x17,
+};
+static const unsigned char kat1440_nonce[] = {0};
+static const unsigned char kat1440_persstr[] = {
+ 0x96, 0x3e, 0x80, 0xb8, 0x4c, 0xeb, 0x20, 0x45, 0xf9, 0xb5, 0x21, 0x92,
+ 0x39, 0xb4, 0x21, 0x39, 0xaa, 0xc6, 0x75, 0xca, 0x0b, 0x59, 0x1b, 0x25,
+ 0x53, 0xe8, 0x39, 0x64, 0x7a, 0xba, 0x20, 0x84, 0x99, 0x3b, 0x07, 0x65,
+ 0x45, 0x6a, 0xe9, 0x07, 0xaa, 0x5d, 0x6d, 0xa3, 0x44, 0x87, 0x43, 0x2a,
+};
+static const unsigned char kat1440_addin0[] = {
+ 0x59, 0xcc, 0xb9, 0x0f, 0xb7, 0xe9, 0xae, 0x3a, 0x53, 0x2f, 0x95, 0x6b,
+ 0xc0, 0x03, 0x8c, 0xe0, 0xae, 0x32, 0xfa, 0x71, 0x4d, 0x88, 0x36, 0xc4,
+ 0x78, 0x91, 0x98, 0x3a, 0xfb, 0x68, 0x2e, 0xd2, 0x33, 0x56, 0x00, 0x63,
+ 0x9d, 0xa1, 0xd2, 0xa9, 0xe8, 0x9a, 0x95, 0x7a, 0xbc, 0x5b, 0x3d, 0x50,
+};
+static const unsigned char kat1440_addin1[] = {
+ 0x91, 0x16, 0x5e, 0x46, 0x01, 0x6f, 0x2d, 0x56, 0x19, 0xcd, 0x45, 0x49,
+ 0xf5, 0xac, 0x20, 0x56, 0x39, 0x6b, 0xee, 0x73, 0x16, 0xa3, 0x66, 0xec,
+ 0x60, 0x51, 0xf3, 0xbd, 0x26, 0x77, 0x0b, 0x3f, 0xd6, 0x3c, 0x16, 0x34,
+ 0x94, 0xfb, 0x7e, 0x9d, 0x32, 0x6e, 0xca, 0xd9, 0xbf, 0xc1, 0x71, 0xa8,
+};
+static const unsigned char kat1440_retbits[] = {
+ 0x87, 0xed, 0x4a, 0xef, 0x26, 0x4f, 0x2a, 0xc5, 0x45, 0x10, 0xb8, 0x3b,
+ 0x98, 0xf7, 0x58, 0x5a, 0xef, 0x7f, 0x38, 0x29, 0x47, 0xcb, 0x49, 0x80,
+ 0x37, 0x84, 0xa2, 0x7c, 0xfb, 0xbc, 0x58, 0x74, 0x56, 0x2b, 0x6d, 0x6c,
+ 0xb5, 0x7b, 0x75, 0x48, 0xa1, 0xbe, 0x46, 0x4a, 0xbb, 0x20, 0x28, 0xc3,
+ 0x44, 0x07, 0x45, 0x27, 0xe8, 0xec, 0x56, 0xad, 0x6e, 0x2b, 0x3b, 0x8f,
+ 0xc5, 0x6f, 0x17, 0x7c,
+};
+static const struct drbg_kat_no_reseed kat1440_t = {
+ 14, kat1440_entropyin, kat1440_nonce, kat1440_persstr,
+ kat1440_addin0, kat1440_addin1, kat1440_retbits
+};
+static const struct drbg_kat kat1440 = {
+ NO_RESEED, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat1440_t
+};
+
+static const unsigned char kat1441_entropyin[] = {
+ 0x0f, 0x65, 0xda, 0x13, 0xdc, 0xa4, 0x07, 0x99, 0x9d, 0x47, 0x73, 0xc2,
+ 0xb4, 0xa1, 0x1d, 0x85,
+};
+static const unsigned char kat1441_nonce[] = {
+ 0x52, 0x09, 0xe5, 0xb4, 0xed, 0x82, 0xa2, 0x34,
+};
+static const unsigned char kat1441_persstr[] = {0};
+static const unsigned char kat1441_entropyinreseed[] = {
+ 0x1d, 0xea, 0x0a, 0x12, 0xc5, 0x2b, 0xf6, 0x43, 0x39, 0xdd, 0x29, 0x1c,
+ 0x80, 0xd8, 0xca, 0x89,
+};
+static const unsigned char kat1441_addinreseed[] = {0};
+static const unsigned char kat1441_addin0[] = {0};
+static const unsigned char kat1441_addin1[] = {0};
+static const unsigned char kat1441_retbits[] = {
+ 0x28, 0x59, 0xcc, 0x46, 0x8a, 0x76, 0xb0, 0x86, 0x61, 0xff, 0xd2, 0x3b,
+ 0x28, 0x54, 0x7f, 0xfd, 0x09, 0x97, 0xad, 0x52, 0x6a, 0x0f, 0x51, 0x26,
+ 0x1b, 0x99, 0xed, 0x3a, 0x37, 0xbd, 0x40, 0x7b, 0xf4, 0x18, 0xdb, 0xe6,
+ 0xc6, 0xc3, 0xe2, 0x6e, 0xd0, 0xdd, 0xef, 0xcb, 0x74, 0x74, 0xd8, 0x99,
+ 0xbd, 0x99, 0xf3, 0x65, 0x54, 0x27, 0x51, 0x9f, 0xc5, 0xb4, 0x05, 0x7b,
+ 0xca, 0xf3, 0x06, 0xd4,
+};
+static const struct drbg_kat_pr_false kat1441_t = {
+ 0, kat1441_entropyin, kat1441_nonce, kat1441_persstr,
+ kat1441_entropyinreseed, kat1441_addinreseed, kat1441_addin0,
+ kat1441_addin1, kat1441_retbits
+};
+static const struct drbg_kat kat1441 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1441_t
+};
+
+static const unsigned char kat1442_entropyin[] = {
+ 0x1f, 0xf8, 0xf4, 0xa8, 0x5d, 0xbf, 0x2f, 0x6b, 0xb2, 0x64, 0x89, 0x67,
+ 0x41, 0x9b, 0xb2, 0x70,
+};
+static const unsigned char kat1442_nonce[] = {
+ 0xb0, 0xcd, 0xf7, 0xbc, 0x47, 0xca, 0x5f, 0x8b,
+};
+static const unsigned char kat1442_persstr[] = {0};
+static const unsigned char kat1442_entropyinreseed[] = {
+ 0xf9, 0x06, 0x99, 0x44, 0x1c, 0x1e, 0xce, 0x41, 0xcf, 0x1f, 0x6a, 0x32,
+ 0xe4, 0x94, 0x86, 0x56,
+};
+static const unsigned char kat1442_addinreseed[] = {0};
+static const unsigned char kat1442_addin0[] = {0};
+static const unsigned char kat1442_addin1[] = {0};
+static const unsigned char kat1442_retbits[] = {
+ 0xd9, 0xae, 0x8b, 0x33, 0xf1, 0xa1, 0x0c, 0xbf, 0x51, 0x6d, 0x97, 0xb9,
+ 0xad, 0x7b, 0xaf, 0x0d, 0x59, 0x6a, 0x08, 0x1a, 0x0f, 0xf0, 0xf4, 0x71,
+ 0x76, 0x74, 0x23, 0x9b, 0x9e, 0x33, 0x93, 0x54, 0xd8, 0x13, 0xb2, 0xbb,
+ 0x71, 0xc1, 0x0f, 0x7d, 0x2e, 0x34, 0x99, 0x4e, 0x00, 0x30, 0xe4, 0xfb,
+ 0xfb, 0xa6, 0x43, 0x8d, 0x07, 0x7c, 0x36, 0x17, 0x45, 0x99, 0x3b, 0x9d,
+ 0x6f, 0x66, 0x9b, 0x24,
+};
+static const struct drbg_kat_pr_false kat1442_t = {
+ 1, kat1442_entropyin, kat1442_nonce, kat1442_persstr,
+ kat1442_entropyinreseed, kat1442_addinreseed, kat1442_addin0,
+ kat1442_addin1, kat1442_retbits
+};
+static const struct drbg_kat kat1442 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1442_t
+};
+
+static const unsigned char kat1443_entropyin[] = {
+ 0x7a, 0x3b, 0x24, 0xc1, 0x7b, 0x87, 0x51, 0x36, 0x75, 0xc4, 0x31, 0x51,
+ 0x9e, 0x77, 0x1c, 0xe6,
+};
+static const unsigned char kat1443_nonce[] = {
+ 0xab, 0xe4, 0x78, 0x00, 0x41, 0x4d, 0x25, 0xdd,
+};
+static const unsigned char kat1443_persstr[] = {0};
+static const unsigned char kat1443_entropyinreseed[] = {
+ 0xb6, 0xff, 0xef, 0xc4, 0x08, 0xe4, 0x1f, 0x77, 0xe2, 0xca, 0xd4, 0x79,
+ 0xa6, 0x69, 0x27, 0x4d,
+};
+static const unsigned char kat1443_addinreseed[] = {0};
+static const unsigned char kat1443_addin0[] = {0};
+static const unsigned char kat1443_addin1[] = {0};
+static const unsigned char kat1443_retbits[] = {
+ 0xcd, 0xc4, 0x69, 0xc1, 0x54, 0x79, 0x03, 0xb9, 0xfe, 0xe5, 0x83, 0x40,
+ 0x9d, 0x41, 0x1e, 0x0a, 0xc7, 0x63, 0xa0, 0x0c, 0xd6, 0x87, 0xd4, 0xf8,
+ 0xc8, 0x11, 0xe9, 0xc7, 0x4d, 0xc3, 0xb7, 0x8b, 0x27, 0xb6, 0x6f, 0xe6,
+ 0x6a, 0x24, 0x9b, 0x41, 0x78, 0xbd, 0x3b, 0xd0, 0x80, 0x08, 0xea, 0x25,
+ 0x8c, 0x5a, 0x90, 0x8d, 0x2e, 0xa7, 0x37, 0x15, 0x8d, 0x16, 0x3d, 0x1f,
+ 0x34, 0xf9, 0x3e, 0xa3,
+};
+static const struct drbg_kat_pr_false kat1443_t = {
+ 2, kat1443_entropyin, kat1443_nonce, kat1443_persstr,
+ kat1443_entropyinreseed, kat1443_addinreseed, kat1443_addin0,
+ kat1443_addin1, kat1443_retbits
+};
+static const struct drbg_kat kat1443 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1443_t
+};
+
+static const unsigned char kat1444_entropyin[] = {
+ 0x10, 0x2e, 0x34, 0x28, 0xb2, 0x5f, 0xda, 0x75, 0x29, 0x24, 0x8b, 0x67,
+ 0xbd, 0x1b, 0xdc, 0x93,
+};
+static const unsigned char kat1444_nonce[] = {
+ 0x62, 0xd6, 0xaa, 0x84, 0xcf, 0x51, 0xad, 0x73,
+};
+static const unsigned char kat1444_persstr[] = {0};
+static const unsigned char kat1444_entropyinreseed[] = {
+ 0x00, 0xd7, 0xaf, 0x7d, 0x1f, 0x9e, 0x36, 0x27, 0x9d, 0x07, 0x03, 0x44,
+ 0x27, 0xa9, 0xb5, 0xd0,
+};
+static const unsigned char kat1444_addinreseed[] = {0};
+static const unsigned char kat1444_addin0[] = {0};
+static const unsigned char kat1444_addin1[] = {0};
+static const unsigned char kat1444_retbits[] = {
+ 0x6d, 0x7b, 0xa7, 0x25, 0xc8, 0x1f, 0xb0, 0xc8, 0xde, 0x32, 0xf8, 0x28,
+ 0x84, 0x18, 0x5b, 0x9e, 0xb2, 0x73, 0xbc, 0x1e, 0xc1, 0x3e, 0x4c, 0xa1,
+ 0xa0, 0x37, 0x05, 0x94, 0xcf, 0x9c, 0x5b, 0xd6, 0xc2, 0x7c, 0x37, 0x18,
+ 0x26, 0xad, 0x86, 0xbb, 0x8f, 0x5d, 0x78, 0xc6, 0x97, 0xaa, 0x9e, 0x29,
+ 0x27, 0xe1, 0xc9, 0xb2, 0x30, 0x4a, 0xf0, 0x28, 0x8e, 0xfe, 0x62, 0x9e,
+ 0xff, 0x13, 0x7c, 0x43,
+};
+static const struct drbg_kat_pr_false kat1444_t = {
+ 3, kat1444_entropyin, kat1444_nonce, kat1444_persstr,
+ kat1444_entropyinreseed, kat1444_addinreseed, kat1444_addin0,
+ kat1444_addin1, kat1444_retbits
+};
+static const struct drbg_kat kat1444 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1444_t
+};
+
+static const unsigned char kat1445_entropyin[] = {
+ 0x08, 0x87, 0xab, 0x2c, 0x94, 0xdc, 0x3b, 0xf4, 0x3f, 0xfe, 0x8a, 0x1b,
+ 0xad, 0xbd, 0x5b, 0xf2,
+};
+static const unsigned char kat1445_nonce[] = {
+ 0x51, 0x18, 0x53, 0xd9, 0x74, 0x31, 0x05, 0x7d,
+};
+static const unsigned char kat1445_persstr[] = {0};
+static const unsigned char kat1445_entropyinreseed[] = {
+ 0x17, 0x33, 0xe3, 0x82, 0x8a, 0x48, 0xfd, 0x80, 0xad, 0xec, 0xaa, 0x90,
+ 0x38, 0x23, 0xac, 0x5b,
+};
+static const unsigned char kat1445_addinreseed[] = {0};
+static const unsigned char kat1445_addin0[] = {0};
+static const unsigned char kat1445_addin1[] = {0};
+static const unsigned char kat1445_retbits[] = {
+ 0x79, 0xdf, 0x1b, 0x08, 0x32, 0xde, 0xdd, 0xe9, 0x45, 0xed, 0x59, 0x3c,
+ 0xe7, 0xeb, 0xe2, 0x79, 0xca, 0x28, 0xa3, 0x73, 0x86, 0xd4, 0xc2, 0x08,
+ 0x10, 0xed, 0xed, 0x12, 0x37, 0xca, 0xb0, 0xb4, 0x6f, 0x1b, 0x6b, 0x2a,
+ 0x21, 0x2e, 0x91, 0xab, 0x21, 0x50, 0xae, 0x77, 0xcb, 0xc0, 0xaa, 0xf7,
+ 0xbb, 0xbc, 0x3e, 0x6a, 0x77, 0x6a, 0x44, 0xea, 0xe1, 0xef, 0x30, 0x16,
+ 0x5a, 0x3b, 0x6c, 0x41,
+};
+static const struct drbg_kat_pr_false kat1445_t = {
+ 4, kat1445_entropyin, kat1445_nonce, kat1445_persstr,
+ kat1445_entropyinreseed, kat1445_addinreseed, kat1445_addin0,
+ kat1445_addin1, kat1445_retbits
+};
+static const struct drbg_kat kat1445 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1445_t
+};
+
+static const unsigned char kat1446_entropyin[] = {
+ 0xa2, 0x8a, 0x05, 0xfd, 0xc6, 0x4d, 0xa8, 0x3e, 0xcf, 0x4d, 0x11, 0xff,
+ 0xb6, 0x17, 0x36, 0x45,
+};
+static const unsigned char kat1446_nonce[] = {
+ 0x2a, 0x89, 0xe8, 0xa1, 0xcb, 0x26, 0x91, 0xeb,
+};
+static const unsigned char kat1446_persstr[] = {0};
+static const unsigned char kat1446_entropyinreseed[] = {
+ 0x9b, 0x82, 0xf2, 0x96, 0xbf, 0x1d, 0xef, 0xa8, 0x64, 0x2c, 0xbe, 0x5f,
+ 0xc4, 0xc7, 0xc8, 0x68,
+};
+static const unsigned char kat1446_addinreseed[] = {0};
+static const unsigned char kat1446_addin0[] = {0};
+static const unsigned char kat1446_addin1[] = {0};
+static const unsigned char kat1446_retbits[] = {
+ 0x60, 0x6e, 0xea, 0xcb, 0x0e, 0x6d, 0x8f, 0x8e, 0x0f, 0x67, 0x41, 0xcf,
+ 0x42, 0x7a, 0x93, 0x5a, 0xa6, 0xc7, 0x89, 0xe8, 0xde, 0xeb, 0x84, 0x50,
+ 0xca, 0x8f, 0x66, 0xbc, 0xa8, 0x6e, 0x92, 0x4f, 0x42, 0xfc, 0x3c, 0x61,
+ 0xc7, 0xf6, 0x90, 0x04, 0xe2, 0x47, 0xb6, 0x76, 0xf5, 0x5f, 0x49, 0x06,
+ 0xd2, 0x15, 0x8c, 0xea, 0x35, 0x2c, 0x60, 0x7f, 0x7f, 0xa0, 0x29, 0x9e,
+ 0xd0, 0x9e, 0x6f, 0x05,
+};
+static const struct drbg_kat_pr_false kat1446_t = {
+ 5, kat1446_entropyin, kat1446_nonce, kat1446_persstr,
+ kat1446_entropyinreseed, kat1446_addinreseed, kat1446_addin0,
+ kat1446_addin1, kat1446_retbits
+};
+static const struct drbg_kat kat1446 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1446_t
+};
+
+static const unsigned char kat1447_entropyin[] = {
+ 0x71, 0xf0, 0x05, 0xdf, 0x03, 0x3a, 0xdf, 0x9e, 0x11, 0x95, 0x91, 0x16,
+ 0x11, 0xca, 0x51, 0xc9,
+};
+static const unsigned char kat1447_nonce[] = {
+ 0x9a, 0x33, 0x20, 0x9f, 0xdf, 0xc4, 0x1a, 0x3c,
+};
+static const unsigned char kat1447_persstr[] = {0};
+static const unsigned char kat1447_entropyinreseed[] = {
+ 0x88, 0xd1, 0xad, 0xa2, 0x99, 0x0d, 0xbf, 0xb6, 0x91, 0x6a, 0x9e, 0xce,
+ 0x78, 0x78, 0x56, 0x89,
+};
+static const unsigned char kat1447_addinreseed[] = {0};
+static const unsigned char kat1447_addin0[] = {0};
+static const unsigned char kat1447_addin1[] = {0};
+static const unsigned char kat1447_retbits[] = {
+ 0xa2, 0x49, 0x82, 0x36, 0x9e, 0xe6, 0x58, 0x68, 0x64, 0x6c, 0x8e, 0x0c,
+ 0x27, 0x9d, 0xff, 0x30, 0x11, 0x60, 0x5d, 0x33, 0x99, 0x59, 0x5c, 0x45,
+ 0x5f, 0xe2, 0x0e, 0xd3, 0x38, 0xf8, 0xc2, 0xa5, 0x10, 0x61, 0xaa, 0x7b,
+ 0x40, 0xf4, 0xe0, 0x7e, 0x86, 0x37, 0x8e, 0x89, 0x66, 0x23, 0xd4, 0x6f,
+ 0x85, 0xaa, 0xcf, 0xa6, 0xaf, 0x3a, 0x1d, 0x66, 0xe2, 0x2e, 0x7c, 0xb5,
+ 0x61, 0xe1, 0x35, 0xd4,
+};
+static const struct drbg_kat_pr_false kat1447_t = {
+ 6, kat1447_entropyin, kat1447_nonce, kat1447_persstr,
+ kat1447_entropyinreseed, kat1447_addinreseed, kat1447_addin0,
+ kat1447_addin1, kat1447_retbits
+};
+static const struct drbg_kat kat1447 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1447_t
+};
+
+static const unsigned char kat1448_entropyin[] = {
+ 0xd5, 0xef, 0xee, 0x24, 0xd6, 0xb8, 0x1f, 0x49, 0x75, 0x39, 0x3f, 0x7b,
+ 0x82, 0x60, 0x32, 0x47,
+};
+static const unsigned char kat1448_nonce[] = {
+ 0xb3, 0xab, 0x7c, 0x0e, 0x7c, 0x28, 0x09, 0x09,
+};
+static const unsigned char kat1448_persstr[] = {0};
+static const unsigned char kat1448_entropyinreseed[] = {
+ 0x7d, 0x8c, 0xdc, 0x5f, 0x4f, 0xe6, 0x07, 0xef, 0x6b, 0xc1, 0xe2, 0x93,
+ 0x8c, 0x27, 0xf0, 0xf8,
+};
+static const unsigned char kat1448_addinreseed[] = {0};
+static const unsigned char kat1448_addin0[] = {0};
+static const unsigned char kat1448_addin1[] = {0};
+static const unsigned char kat1448_retbits[] = {
+ 0x33, 0x5e, 0x13, 0x85, 0x20, 0x19, 0x62, 0xe6, 0x36, 0x11, 0x6d, 0x6d,
+ 0x5f, 0xf5, 0xfb, 0x91, 0xed, 0x26, 0x83, 0x88, 0xa2, 0x6a, 0xea, 0x34,
+ 0xcf, 0xd3, 0x54, 0x89, 0x5d, 0x9b, 0x76, 0xa5, 0x14, 0xf3, 0x4c, 0xbe,
+ 0x9d, 0x3c, 0x86, 0x31, 0x78, 0x15, 0x6b, 0xb6, 0xfe, 0xd7, 0x36, 0x8a,
+ 0x94, 0xb0, 0x37, 0x10, 0x1b, 0x26, 0xdb, 0x0d, 0x7e, 0x6a, 0x8a, 0x00,
+ 0x92, 0x56, 0xdb, 0x35,
+};
+static const struct drbg_kat_pr_false kat1448_t = {
+ 7, kat1448_entropyin, kat1448_nonce, kat1448_persstr,
+ kat1448_entropyinreseed, kat1448_addinreseed, kat1448_addin0,
+ kat1448_addin1, kat1448_retbits
+};
+static const struct drbg_kat kat1448 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1448_t
+};
+
+static const unsigned char kat1449_entropyin[] = {
+ 0x00, 0x6f, 0xe4, 0xc4, 0xc4, 0xc0, 0x16, 0xa5, 0x1a, 0x0e, 0xb0, 0xf3,
+ 0x54, 0x95, 0x23, 0x9f,
+};
+static const unsigned char kat1449_nonce[] = {
+ 0x99, 0x0d, 0x27, 0x5f, 0x3c, 0x27, 0xc6, 0x91,
+};
+static const unsigned char kat1449_persstr[] = {0};
+static const unsigned char kat1449_entropyinreseed[] = {
+ 0xdd, 0x4b, 0x17, 0xe7, 0xd3, 0x00, 0x4c, 0x53, 0x24, 0xab, 0x0b, 0x98,
+ 0xb7, 0x5b, 0x04, 0xfb,
+};
+static const unsigned char kat1449_addinreseed[] = {0};
+static const unsigned char kat1449_addin0[] = {0};
+static const unsigned char kat1449_addin1[] = {0};
+static const unsigned char kat1449_retbits[] = {
+ 0x51, 0x3f, 0x69, 0x96, 0xd9, 0x56, 0xee, 0xad, 0xb5, 0xc3, 0x30, 0xc3,
+ 0x42, 0x05, 0x8f, 0xcc, 0x46, 0x57, 0x93, 0xb6, 0x36, 0xfa, 0xb7, 0x4b,
+ 0x1b, 0xb5, 0x6e, 0x49, 0x6c, 0xd2, 0x5e, 0x5a, 0xfc, 0x7b, 0xfb, 0x3c,
+ 0xd3, 0x04, 0xbb, 0x81, 0x7b, 0xda, 0xfe, 0x7e, 0x8d, 0x66, 0x62, 0x60,
+ 0xf8, 0x13, 0xec, 0x57, 0x01, 0xb6, 0xb4, 0xe1, 0xb7, 0xf8, 0x72, 0xae,
+ 0xee, 0x09, 0xf3, 0x63,
+};
+static const struct drbg_kat_pr_false kat1449_t = {
+ 8, kat1449_entropyin, kat1449_nonce, kat1449_persstr,
+ kat1449_entropyinreseed, kat1449_addinreseed, kat1449_addin0,
+ kat1449_addin1, kat1449_retbits
+};
+static const struct drbg_kat kat1449 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1449_t
+};
+
+static const unsigned char kat1450_entropyin[] = {
+ 0x3b, 0x0e, 0x73, 0x80, 0x24, 0x00, 0x61, 0xe3, 0x8f, 0x6c, 0xb8, 0x1c,
+ 0xbe, 0xe4, 0xbc, 0xb4,
+};
+static const unsigned char kat1450_nonce[] = {
+ 0xe8, 0x82, 0xe8, 0x0e, 0x0a, 0x2f, 0xb7, 0xcf,
+};
+static const unsigned char kat1450_persstr[] = {0};
+static const unsigned char kat1450_entropyinreseed[] = {
+ 0xb1, 0x85, 0x97, 0x90, 0x4c, 0x54, 0xa8, 0x82, 0x67, 0xcb, 0x26, 0x51,
+ 0xbd, 0x5a, 0x92, 0x03,
+};
+static const unsigned char kat1450_addinreseed[] = {0};
+static const unsigned char kat1450_addin0[] = {0};
+static const unsigned char kat1450_addin1[] = {0};
+static const unsigned char kat1450_retbits[] = {
+ 0x56, 0x3b, 0x0b, 0x8d, 0xcc, 0x82, 0x8e, 0x42, 0x93, 0x56, 0x3f, 0xf6,
+ 0xbe, 0x31, 0x4d, 0x0c, 0xa8, 0xff, 0xfd, 0x17, 0x6b, 0x4a, 0xda, 0x8d,
+ 0x27, 0x00, 0x40, 0x86, 0x3b, 0xe6, 0x32, 0x54, 0x05, 0x67, 0x55, 0x67,
+ 0x02, 0x81, 0x5a, 0x0a, 0xab, 0x40, 0xcd, 0xc9, 0x23, 0xeb, 0xa1, 0xf5,
+ 0xa1, 0xc9, 0x92, 0x84, 0x94, 0xd4, 0x01, 0x1b, 0x63, 0xf1, 0x73, 0x72,
+ 0xc5, 0xbd, 0x48, 0xe7,
+};
+static const struct drbg_kat_pr_false kat1450_t = {
+ 9, kat1450_entropyin, kat1450_nonce, kat1450_persstr,
+ kat1450_entropyinreseed, kat1450_addinreseed, kat1450_addin0,
+ kat1450_addin1, kat1450_retbits
+};
+static const struct drbg_kat kat1450 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1450_t
+};
+
+static const unsigned char kat1451_entropyin[] = {
+ 0x60, 0xf5, 0xfe, 0x65, 0xd5, 0xce, 0xfb, 0x73, 0x1b, 0x28, 0x17, 0x9c,
+ 0x35, 0xb2, 0xaa, 0x3d,
+};
+static const unsigned char kat1451_nonce[] = {
+ 0x72, 0x91, 0x9f, 0x9e, 0x09, 0x7e, 0x73, 0x85,
+};
+static const unsigned char kat1451_persstr[] = {0};
+static const unsigned char kat1451_entropyinreseed[] = {
+ 0xf3, 0x54, 0x12, 0xd4, 0xdd, 0xfd, 0xe3, 0x8d, 0xfa, 0x3f, 0x61, 0xaa,
+ 0x8f, 0x6e, 0xb8, 0x05,
+};
+static const unsigned char kat1451_addinreseed[] = {0};
+static const unsigned char kat1451_addin0[] = {0};
+static const unsigned char kat1451_addin1[] = {0};
+static const unsigned char kat1451_retbits[] = {
+ 0xeb, 0x7a, 0xec, 0xb6, 0xbc, 0xd3, 0x6d, 0xd2, 0xfd, 0xd3, 0x24, 0x72,
+ 0xa6, 0x9c, 0x02, 0xf9, 0xe7, 0x1a, 0xff, 0x13, 0xa3, 0xe0, 0x47, 0xb5,
+ 0x87, 0x69, 0x52, 0x2d, 0x98, 0x4b, 0x60, 0x8d, 0x33, 0x4e, 0x51, 0x39,
+ 0x20, 0xf8, 0x71, 0x3d, 0x63, 0x14, 0x3c, 0x97, 0x18, 0x75, 0xb7, 0x81,
+ 0xf3, 0x58, 0x4b, 0xc7, 0xde, 0x35, 0x2a, 0xdd, 0x78, 0x78, 0x20, 0xc5,
+ 0xf8, 0xaa, 0xc0, 0x29,
+};
+static const struct drbg_kat_pr_false kat1451_t = {
+ 10, kat1451_entropyin, kat1451_nonce, kat1451_persstr,
+ kat1451_entropyinreseed, kat1451_addinreseed, kat1451_addin0,
+ kat1451_addin1, kat1451_retbits
+};
+static const struct drbg_kat kat1451 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1451_t
+};
+
+static const unsigned char kat1452_entropyin[] = {
+ 0x52, 0x92, 0x6e, 0x41, 0x4f, 0x4c, 0x17, 0x2b, 0x8c, 0x49, 0x0e, 0xf1,
+ 0x3f, 0x34, 0x5f, 0x08,
+};
+static const unsigned char kat1452_nonce[] = {
+ 0x41, 0xd1, 0xfa, 0x4b, 0x9b, 0x06, 0x0f, 0x3e,
+};
+static const unsigned char kat1452_persstr[] = {0};
+static const unsigned char kat1452_entropyinreseed[] = {
+ 0xfa, 0x91, 0x52, 0x73, 0x1e, 0x26, 0xd3, 0x74, 0xc5, 0x20, 0x41, 0xab,
+ 0xe1, 0x78, 0xcb, 0x26,
+};
+static const unsigned char kat1452_addinreseed[] = {0};
+static const unsigned char kat1452_addin0[] = {0};
+static const unsigned char kat1452_addin1[] = {0};
+static const unsigned char kat1452_retbits[] = {
+ 0x38, 0xb9, 0x4e, 0x8c, 0xb5, 0xcd, 0x2e, 0x49, 0x07, 0x0a, 0xf8, 0x9c,
+ 0xf2, 0x08, 0xb9, 0x9f, 0x40, 0xb0, 0xa7, 0x80, 0x57, 0x8f, 0x11, 0x46,
+ 0x52, 0x19, 0xc7, 0xc9, 0xb2, 0x93, 0x60, 0x92, 0x70, 0x79, 0x2e, 0x6d,
+ 0x9f, 0x45, 0x7e, 0x62, 0x9d, 0xb3, 0x72, 0xdd, 0x0f, 0x7c, 0xee, 0x23,
+ 0x00, 0xe7, 0xb9, 0x7a, 0x35, 0xae, 0x47, 0xa2, 0xf7, 0x5c, 0xf9, 0x22,
+ 0xee, 0x5e, 0x29, 0x06,
+};
+static const struct drbg_kat_pr_false kat1452_t = {
+ 11, kat1452_entropyin, kat1452_nonce, kat1452_persstr,
+ kat1452_entropyinreseed, kat1452_addinreseed, kat1452_addin0,
+ kat1452_addin1, kat1452_retbits
+};
+static const struct drbg_kat kat1452 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1452_t
+};
+
+static const unsigned char kat1453_entropyin[] = {
+ 0xa7, 0x6d, 0x0c, 0x66, 0xbe, 0x9a, 0xbb, 0x60, 0x81, 0xb5, 0x2f, 0xa5,
+ 0xbb, 0xba, 0x76, 0x00,
+};
+static const unsigned char kat1453_nonce[] = {
+ 0x34, 0x0f, 0x89, 0xb7, 0x6e, 0x46, 0x7b, 0xb1,
+};
+static const unsigned char kat1453_persstr[] = {0};
+static const unsigned char kat1453_entropyinreseed[] = {
+ 0xbe, 0xaa, 0xfe, 0x74, 0xdd, 0xa0, 0xb4, 0xe7, 0xcd, 0x9a, 0x24, 0xae,
+ 0xb8, 0x2a, 0x15, 0xea,
+};
+static const unsigned char kat1453_addinreseed[] = {0};
+static const unsigned char kat1453_addin0[] = {0};
+static const unsigned char kat1453_addin1[] = {0};
+static const unsigned char kat1453_retbits[] = {
+ 0x0f, 0x06, 0xf4, 0x35, 0x6e, 0xc3, 0x0e, 0x46, 0x2b, 0x1d, 0xad, 0x33,
+ 0x47, 0xa9, 0x29, 0xa7, 0xd7, 0xfe, 0x93, 0x1a, 0x37, 0x7f, 0x09, 0xe3,
+ 0xc3, 0xf6, 0xd2, 0x81, 0x18, 0x1c, 0x07, 0x9d, 0x25, 0x20, 0xf7, 0x8d,
+ 0xf1, 0xd5, 0x0c, 0x6b, 0xb7, 0x3a, 0x29, 0xdb, 0xba, 0x58, 0xe1, 0x6a,
+ 0x39, 0x4f, 0x8b, 0xc7, 0xf1, 0xdc, 0xad, 0x3b, 0xa8, 0xc4, 0x60, 0xf1,
+ 0x44, 0x3f, 0x07, 0xab,
+};
+static const struct drbg_kat_pr_false kat1453_t = {
+ 12, kat1453_entropyin, kat1453_nonce, kat1453_persstr,
+ kat1453_entropyinreseed, kat1453_addinreseed, kat1453_addin0,
+ kat1453_addin1, kat1453_retbits
+};
+static const struct drbg_kat kat1453 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1453_t
+};
+
+static const unsigned char kat1454_entropyin[] = {
+ 0x08, 0x41, 0x8b, 0xb6, 0x47, 0x64, 0x55, 0x94, 0x8c, 0xb8, 0x85, 0x21,
+ 0xd1, 0x51, 0x5d, 0xc0,
+};
+static const unsigned char kat1454_nonce[] = {
+ 0x84, 0x84, 0x16, 0x4b, 0x1a, 0xfc, 0x42, 0xf1,
+};
+static const unsigned char kat1454_persstr[] = {0};
+static const unsigned char kat1454_entropyinreseed[] = {
+ 0xae, 0x4a, 0x02, 0xa4, 0x06, 0x36, 0x02, 0x4f, 0xce, 0x89, 0x33, 0x5f,
+ 0x6e, 0xe1, 0x1d, 0xf2,
+};
+static const unsigned char kat1454_addinreseed[] = {0};
+static const unsigned char kat1454_addin0[] = {0};
+static const unsigned char kat1454_addin1[] = {0};
+static const unsigned char kat1454_retbits[] = {
+ 0x59, 0xb3, 0x45, 0xad, 0x05, 0xa9, 0xd2, 0xf5, 0xc4, 0x2a, 0xda, 0xb3,
+ 0xe7, 0x90, 0xe1, 0xe7, 0x2d, 0x00, 0x22, 0xa2, 0xcf, 0x83, 0x40, 0xcb,
+ 0x5c, 0xea, 0x93, 0x82, 0xad, 0x97, 0xe1, 0xac, 0x63, 0x17, 0xfc, 0x02,
+ 0x85, 0x09, 0x51, 0xfa, 0x05, 0xb9, 0x11, 0x9d, 0x82, 0xaf, 0x59, 0xdc,
+ 0x24, 0x1d, 0xfb, 0x62, 0x4d, 0x8c, 0xc4, 0x37, 0xf9, 0xa8, 0xae, 0xe3,
+ 0xe1, 0xc6, 0x4e, 0x9c,
+};
+static const struct drbg_kat_pr_false kat1454_t = {
+ 13, kat1454_entropyin, kat1454_nonce, kat1454_persstr,
+ kat1454_entropyinreseed, kat1454_addinreseed, kat1454_addin0,
+ kat1454_addin1, kat1454_retbits
+};
+static const struct drbg_kat kat1454 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1454_t
+};
+
+static const unsigned char kat1455_entropyin[] = {
+ 0xc9, 0xb8, 0xd7, 0xeb, 0x0a, 0xfa, 0x58, 0x89, 0xe7, 0xf9, 0xb7, 0x8a,
+ 0x50, 0xed, 0x45, 0x3c,
+};
+static const unsigned char kat1455_nonce[] = {
+ 0x30, 0x58, 0xba, 0x34, 0x7e, 0xcd, 0x11, 0xb1,
+};
+static const unsigned char kat1455_persstr[] = {0};
+static const unsigned char kat1455_entropyinreseed[] = {
+ 0x64, 0x36, 0x86, 0xb8, 0x62, 0x66, 0xd9, 0x11, 0x1f, 0x29, 0xeb, 0x38,
+ 0x9e, 0x11, 0x84, 0xb4,
+};
+static const unsigned char kat1455_addinreseed[] = {0};
+static const unsigned char kat1455_addin0[] = {0};
+static const unsigned char kat1455_addin1[] = {0};
+static const unsigned char kat1455_retbits[] = {
+ 0x0a, 0x8c, 0xca, 0xdc, 0x1c, 0x5c, 0xbd, 0x20, 0xb8, 0xce, 0x32, 0xf9,
+ 0x42, 0x50, 0x5e, 0x65, 0x4b, 0x91, 0xa4, 0xe9, 0x41, 0x0e, 0x0e, 0xa6,
+ 0x27, 0xc9, 0x61, 0xd6, 0x32, 0xd3, 0xbe, 0x71, 0xd6, 0xa7, 0xdf, 0xd6,
+ 0x4b, 0x8f, 0x70, 0xd2, 0x8f, 0xf9, 0x18, 0x69, 0xb9, 0x2c, 0xed, 0x90,
+ 0x8b, 0x45, 0x49, 0x36, 0xb6, 0xd1, 0x8f, 0xcd, 0xdd, 0x7f, 0xb7, 0x72,
+ 0x16, 0xcc, 0xc4, 0x04,
+};
+static const struct drbg_kat_pr_false kat1455_t = {
+ 14, kat1455_entropyin, kat1455_nonce, kat1455_persstr,
+ kat1455_entropyinreseed, kat1455_addinreseed, kat1455_addin0,
+ kat1455_addin1, kat1455_retbits
+};
+static const struct drbg_kat kat1455 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1455_t
+};
+
+static const unsigned char kat1456_entropyin[] = {
+ 0x28, 0x5d, 0xa6, 0xcf, 0x76, 0x25, 0x52, 0x63, 0x46, 0x36, 0xbf, 0xee,
+ 0x34, 0x00, 0xb1, 0x56,
+};
+static const unsigned char kat1456_nonce[] = {
+ 0x8f, 0x8b, 0xad, 0xa7, 0x48, 0x20, 0xcb, 0x43,
+};
+static const unsigned char kat1456_persstr[] = {0};
+static const unsigned char kat1456_entropyinreseed[] = {
+ 0xb4, 0x69, 0x9b, 0x33, 0x35, 0x4a, 0x83, 0xbf, 0xed, 0x11, 0x5f, 0x77,
+ 0x0f, 0x32, 0xdb, 0x0b,
+};
+static const unsigned char kat1456_addinreseed[] = {
+ 0x38, 0xbf, 0xec, 0x9a, 0x10, 0xe6, 0xe4, 0x0c, 0x10, 0x68, 0x41, 0xda,
+ 0xe4, 0x8d, 0xc3, 0xb8,
+};
+static const unsigned char kat1456_addin0[] = {
+ 0x62, 0x9e, 0xad, 0x5b, 0xac, 0xfa, 0xc8, 0x23, 0x57, 0x11, 0xff, 0xeb,
+ 0x22, 0xf5, 0x75, 0x58,
+};
+static const unsigned char kat1456_addin1[] = {
+ 0xdd, 0x8a, 0x02, 0xee, 0x66, 0x8c, 0xa3, 0xe0, 0x39, 0x49, 0xb3, 0x8c,
+ 0xb6, 0xe6, 0xb4, 0xdf,
+};
+static const unsigned char kat1456_retbits[] = {
+ 0xe5, 0x55, 0xaa, 0x44, 0x32, 0xbd, 0xe0, 0x4d, 0xcf, 0x0f, 0x0b, 0x03,
+ 0xea, 0xd1, 0x87, 0xb3, 0x1d, 0xf0, 0x66, 0x53, 0xd4, 0x44, 0x23, 0x4b,
+ 0x5c, 0x1b, 0xfc, 0x11, 0xb2, 0x24, 0x28, 0x5f, 0x2f, 0xb2, 0xb6, 0xcd,
+ 0xd5, 0xa9, 0xae, 0x6f, 0x13, 0xd9, 0x9b, 0xd0, 0x2c, 0x3c, 0x9f, 0xe9,
+ 0xc3, 0xc1, 0xbe, 0x46, 0xa6, 0x00, 0xf5, 0xf7, 0x57, 0xab, 0x45, 0x74,
+ 0xaf, 0x89, 0x35, 0x01,
+};
+static const struct drbg_kat_pr_false kat1456_t = {
+ 0, kat1456_entropyin, kat1456_nonce, kat1456_persstr,
+ kat1456_entropyinreseed, kat1456_addinreseed, kat1456_addin0,
+ kat1456_addin1, kat1456_retbits
+};
+static const struct drbg_kat kat1456 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1456_t
+};
+
+static const unsigned char kat1457_entropyin[] = {
+ 0x80, 0x09, 0x4b, 0x91, 0xc3, 0x45, 0x07, 0xfc, 0x55, 0xfd, 0xd0, 0x9a,
+ 0xde, 0x25, 0xf2, 0x75,
+};
+static const unsigned char kat1457_nonce[] = {
+ 0x72, 0x59, 0x34, 0x93, 0xd4, 0x47, 0xee, 0x20,
+};
+static const unsigned char kat1457_persstr[] = {0};
+static const unsigned char kat1457_entropyinreseed[] = {
+ 0x7a, 0xb8, 0x6c, 0x3a, 0xd6, 0x71, 0x0f, 0xd4, 0x9e, 0x92, 0x3d, 0xae,
+ 0xfd, 0x4a, 0x8e, 0xf7,
+};
+static const unsigned char kat1457_addinreseed[] = {
+ 0xdf, 0x5b, 0x78, 0x93, 0x06, 0xbc, 0xf3, 0x20, 0xb7, 0x6f, 0xa3, 0x74,
+ 0xe5, 0x71, 0x08, 0x29,
+};
+static const unsigned char kat1457_addin0[] = {
+ 0x36, 0x2a, 0x4c, 0x6e, 0x92, 0x88, 0x5f, 0x44, 0x4a, 0x49, 0x53, 0x3f,
+ 0xc5, 0x1d, 0x17, 0x11,
+};
+static const unsigned char kat1457_addin1[] = {
+ 0x42, 0x14, 0x53, 0x27, 0x18, 0x7e, 0x1b, 0x57, 0x08, 0x69, 0xba, 0x8f,
+ 0xa4, 0xfa, 0x94, 0x2e,
+};
+static const unsigned char kat1457_retbits[] = {
+ 0x98, 0x49, 0x57, 0x3c, 0xd8, 0xbc, 0x10, 0x3e, 0x7d, 0x62, 0x24, 0xe7,
+ 0x99, 0x73, 0xdb, 0x79, 0xc2, 0x0b, 0x0a, 0x31, 0xf7, 0x3d, 0x8a, 0xf3,
+ 0x57, 0xcb, 0x1c, 0x79, 0x7a, 0x84, 0x35, 0x09, 0x66, 0x7a, 0x53, 0xa6,
+ 0xe2, 0x21, 0xc3, 0x36, 0x97, 0x9f, 0x52, 0x55, 0x19, 0x27, 0x74, 0xc6,
+ 0x5f, 0x3e, 0xba, 0x7a, 0x30, 0x16, 0x39, 0xc0, 0x2b, 0x8a, 0x52, 0x36,
+ 0x25, 0x19, 0x5d, 0xf4,
+};
+static const struct drbg_kat_pr_false kat1457_t = {
+ 1, kat1457_entropyin, kat1457_nonce, kat1457_persstr,
+ kat1457_entropyinreseed, kat1457_addinreseed, kat1457_addin0,
+ kat1457_addin1, kat1457_retbits
+};
+static const struct drbg_kat kat1457 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1457_t
+};
+
+static const unsigned char kat1458_entropyin[] = {
+ 0x25, 0xc9, 0x0d, 0x87, 0xe7, 0x7d, 0x6c, 0x27, 0x97, 0xe5, 0xdc, 0x27,
+ 0xd0, 0x4c, 0xf7, 0x32,
+};
+static const unsigned char kat1458_nonce[] = {
+ 0x64, 0xe9, 0xf6, 0x73, 0x3d, 0x25, 0x1c, 0x65,
+};
+static const unsigned char kat1458_persstr[] = {0};
+static const unsigned char kat1458_entropyinreseed[] = {
+ 0x13, 0xcb, 0x8b, 0xa8, 0xb3, 0x46, 0xc4, 0xef, 0xaf, 0xaa, 0xf8, 0x4e,
+ 0x6a, 0xbf, 0xaa, 0x4a,
+};
+static const unsigned char kat1458_addinreseed[] = {
+ 0x30, 0x62, 0x7e, 0x21, 0xe4, 0x58, 0x90, 0xb7, 0xa9, 0xb3, 0xf3, 0x19,
+ 0x21, 0x0c, 0x28, 0xb4,
+};
+static const unsigned char kat1458_addin0[] = {
+ 0xd6, 0x09, 0x04, 0x86, 0xba, 0xa3, 0xb3, 0x6f, 0x41, 0x90, 0x30, 0xd5,
+ 0x49, 0x4f, 0xe2, 0x4f,
+};
+static const unsigned char kat1458_addin1[] = {
+ 0x23, 0x1f, 0x2a, 0xa8, 0xf0, 0xe2, 0x54, 0xf9, 0x2d, 0xaa, 0x38, 0xc0,
+ 0x4e, 0x8d, 0xc9, 0xaa,
+};
+static const unsigned char kat1458_retbits[] = {
+ 0xda, 0x1f, 0x07, 0xfb, 0x23, 0x29, 0x5e, 0xc1, 0x7e, 0x31, 0x43, 0xfd,
+ 0xc0, 0x3a, 0xa3, 0x99, 0x4c, 0xd5, 0xa8, 0x8d, 0xcd, 0xa3, 0xb5, 0x0e,
+ 0x17, 0xa9, 0xc1, 0x3d, 0x85, 0x9c, 0xf2, 0xd7, 0xc9, 0x0d, 0x0d, 0x39,
+ 0xe0, 0x4e, 0x13, 0xd3, 0x18, 0x03, 0xd7, 0xf1, 0xc9, 0xec, 0x47, 0xbe,
+ 0x15, 0xa5, 0x56, 0x02, 0x1e, 0x83, 0xde, 0x46, 0x4b, 0x18, 0x3d, 0x43,
+ 0x61, 0x71, 0xff, 0x72,
+};
+static const struct drbg_kat_pr_false kat1458_t = {
+ 2, kat1458_entropyin, kat1458_nonce, kat1458_persstr,
+ kat1458_entropyinreseed, kat1458_addinreseed, kat1458_addin0,
+ kat1458_addin1, kat1458_retbits
+};
+static const struct drbg_kat kat1458 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1458_t
+};
+
+static const unsigned char kat1459_entropyin[] = {
+ 0x68, 0x5d, 0x89, 0xe5, 0x47, 0xbd, 0x79, 0x7f, 0xc0, 0xb7, 0x86, 0x62,
+ 0x82, 0x5e, 0xc5, 0x30,
+};
+static const unsigned char kat1459_nonce[] = {
+ 0x29, 0x47, 0x67, 0x58, 0xb4, 0xcd, 0x07, 0x27,
+};
+static const unsigned char kat1459_persstr[] = {0};
+static const unsigned char kat1459_entropyinreseed[] = {
+ 0x82, 0xd8, 0xf6, 0x2b, 0x1d, 0x15, 0x93, 0x22, 0x4c, 0x26, 0x9f, 0x49,
+ 0xf3, 0xf2, 0xed, 0x95,
+};
+static const unsigned char kat1459_addinreseed[] = {
+ 0x1a, 0xbc, 0xa0, 0xdf, 0xea, 0x4b, 0x28, 0x65, 0x97, 0x64, 0xa8, 0x5a,
+ 0x30, 0xb5, 0x90, 0xc1,
+};
+static const unsigned char kat1459_addin0[] = {
+ 0xb8, 0x47, 0x89, 0x14, 0xd9, 0x19, 0xec, 0x5c, 0xc4, 0xd3, 0xb4, 0xf8,
+ 0x3b, 0xf2, 0x4e, 0xe1,
+};
+static const unsigned char kat1459_addin1[] = {
+ 0xac, 0x57, 0xc3, 0x88, 0xd1, 0xa9, 0x59, 0x90, 0x24, 0xc3, 0x01, 0xf7,
+ 0xe1, 0x6d, 0xd7, 0x6c,
+};
+static const unsigned char kat1459_retbits[] = {
+ 0x0d, 0xb2, 0x21, 0x81, 0x9e, 0xcc, 0xb0, 0x9c, 0xc0, 0x79, 0xb8, 0x87,
+ 0xf5, 0xb7, 0x73, 0x81, 0xd4, 0x89, 0xf9, 0xfe, 0x9e, 0x25, 0xe5, 0x7f,
+ 0xb1, 0xc8, 0x82, 0x3f, 0xc8, 0xeb, 0x12, 0xea, 0xef, 0x5d, 0xce, 0x0e,
+ 0x1a, 0x91, 0xc2, 0xa6, 0x98, 0x3c, 0x8b, 0x20, 0x11, 0x5e, 0x54, 0x47,
+ 0xd9, 0xfc, 0x67, 0x19, 0xea, 0x22, 0x9d, 0x98, 0xa6, 0x8c, 0x79, 0xc5,
+ 0xca, 0x26, 0x94, 0x0e,
+};
+static const struct drbg_kat_pr_false kat1459_t = {
+ 3, kat1459_entropyin, kat1459_nonce, kat1459_persstr,
+ kat1459_entropyinreseed, kat1459_addinreseed, kat1459_addin0,
+ kat1459_addin1, kat1459_retbits
+};
+static const struct drbg_kat kat1459 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1459_t
+};
+
+static const unsigned char kat1460_entropyin[] = {
+ 0x5a, 0x37, 0x06, 0x86, 0x0a, 0x27, 0x7e, 0x90, 0x90, 0x06, 0x79, 0x2b,
+ 0xe9, 0x89, 0xd6, 0xae,
+};
+static const unsigned char kat1460_nonce[] = {
+ 0x73, 0x9c, 0x68, 0x13, 0xda, 0xbf, 0x35, 0x0c,
+};
+static const unsigned char kat1460_persstr[] = {0};
+static const unsigned char kat1460_entropyinreseed[] = {
+ 0x5e, 0xa8, 0x03, 0x01, 0x1a, 0x5e, 0xe4, 0xd4, 0x26, 0xc1, 0x28, 0x58,
+ 0x89, 0xa1, 0xad, 0xc6,
+};
+static const unsigned char kat1460_addinreseed[] = {
+ 0xd3, 0x73, 0x8e, 0xa4, 0x96, 0x66, 0x79, 0xa2, 0xb4, 0xfd, 0x28, 0x59,
+ 0x4c, 0x0b, 0xfe, 0x31,
+};
+static const unsigned char kat1460_addin0[] = {
+ 0x9f, 0xf2, 0x4c, 0xd5, 0xb8, 0xe9, 0x71, 0x6f, 0xfc, 0x96, 0x51, 0x2d,
+ 0x84, 0xe1, 0x9e, 0xca,
+};
+static const unsigned char kat1460_addin1[] = {
+ 0x4e, 0xe9, 0xd4, 0x68, 0xca, 0x01, 0x6d, 0x92, 0xef, 0x40, 0xa8, 0x8b,
+ 0xb4, 0x16, 0x87, 0xb7,
+};
+static const unsigned char kat1460_retbits[] = {
+ 0x28, 0x95, 0xa3, 0x3b, 0x3a, 0x46, 0xd7, 0x30, 0xd3, 0x3c, 0x0d, 0xc7,
+ 0x09, 0xda, 0x66, 0x68, 0x23, 0x6c, 0xf7, 0x02, 0xa4, 0xc8, 0xbb, 0xb7,
+ 0x0c, 0x7d, 0xfe, 0x18, 0x2a, 0xb9, 0xf5, 0x16, 0x30, 0xb6, 0x19, 0x3f,
+ 0x3a, 0x05, 0x86, 0xd5, 0x56, 0x97, 0x59, 0xff, 0xb0, 0x7c, 0xf3, 0xfa,
+ 0x57, 0x23, 0x5e, 0x84, 0x18, 0x8b, 0xc1, 0x7f, 0xf3, 0xb1, 0x40, 0x2a,
+ 0x26, 0x2e, 0x5f, 0x5d,
+};
+static const struct drbg_kat_pr_false kat1460_t = {
+ 4, kat1460_entropyin, kat1460_nonce, kat1460_persstr,
+ kat1460_entropyinreseed, kat1460_addinreseed, kat1460_addin0,
+ kat1460_addin1, kat1460_retbits
+};
+static const struct drbg_kat kat1460 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1460_t
+};
+
+static const unsigned char kat1461_entropyin[] = {
+ 0xfa, 0x23, 0x2a, 0x56, 0xf2, 0x40, 0x71, 0xf5, 0xbb, 0x27, 0x4d, 0x08,
+ 0xf3, 0x0d, 0xbb, 0xcd,
+};
+static const unsigned char kat1461_nonce[] = {
+ 0x39, 0x49, 0x71, 0x4e, 0x12, 0x0b, 0xc1, 0xa2,
+};
+static const unsigned char kat1461_persstr[] = {0};
+static const unsigned char kat1461_entropyinreseed[] = {
+ 0x7a, 0xee, 0xd4, 0xb2, 0x0a, 0x2f, 0xf2, 0x1b, 0x04, 0x06, 0x4b, 0xd4,
+ 0xf7, 0xc6, 0xc7, 0xbf,
+};
+static const unsigned char kat1461_addinreseed[] = {
+ 0x0d, 0x51, 0x2a, 0x99, 0x8c, 0x51, 0x73, 0xc7, 0x1a, 0xae, 0x64, 0xf9,
+ 0xcd, 0x37, 0xad, 0xa8,
+};
+static const unsigned char kat1461_addin0[] = {
+ 0x78, 0x4c, 0x95, 0x23, 0xfc, 0xc8, 0xec, 0x23, 0x8a, 0x40, 0xe7, 0xf2,
+ 0xf1, 0x64, 0xde, 0x49,
+};
+static const unsigned char kat1461_addin1[] = {
+ 0x97, 0xfc, 0xea, 0x81, 0x96, 0xb1, 0xe4, 0x2c, 0x6b, 0xc9, 0x14, 0x5e,
+ 0xf9, 0xf8, 0x4e, 0x63,
+};
+static const unsigned char kat1461_retbits[] = {
+ 0x7c, 0x21, 0xd0, 0x6a, 0xf2, 0xe5, 0xde, 0x04, 0xc5, 0x84, 0x5a, 0x63,
+ 0xe1, 0x8a, 0xc7, 0xc2, 0x6c, 0xbe, 0x8a, 0xa4, 0x83, 0x91, 0x83, 0xf5,
+ 0x2c, 0x0a, 0x65, 0xc2, 0x96, 0x58, 0x4d, 0x22, 0x3d, 0xad, 0x6f, 0x46,
+ 0xb5, 0xeb, 0xaa, 0x24, 0xcc, 0xb3, 0xef, 0x9e, 0xf5, 0x52, 0xa6, 0x86,
+ 0xeb, 0xba, 0xcd, 0x49, 0x00, 0x7e, 0x50, 0x18, 0x51, 0x6d, 0x47, 0x78,
+ 0xac, 0x56, 0x59, 0xc4,
+};
+static const struct drbg_kat_pr_false kat1461_t = {
+ 5, kat1461_entropyin, kat1461_nonce, kat1461_persstr,
+ kat1461_entropyinreseed, kat1461_addinreseed, kat1461_addin0,
+ kat1461_addin1, kat1461_retbits
+};
+static const struct drbg_kat kat1461 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1461_t
+};
+
+static const unsigned char kat1462_entropyin[] = {
+ 0x85, 0xf2, 0xfa, 0x44, 0xbb, 0xb7, 0xdc, 0xa1, 0xbb, 0x39, 0x07, 0x58,
+ 0x57, 0x7d, 0xb4, 0x23,
+};
+static const unsigned char kat1462_nonce[] = {
+ 0x94, 0x10, 0xd4, 0x60, 0xfe, 0xe6, 0x94, 0x33,
+};
+static const unsigned char kat1462_persstr[] = {0};
+static const unsigned char kat1462_entropyinreseed[] = {
+ 0x22, 0xbb, 0x05, 0x70, 0xe4, 0x62, 0xa6, 0x35, 0x64, 0x35, 0x9c, 0xbc,
+ 0x80, 0x5f, 0x21, 0x87,
+};
+static const unsigned char kat1462_addinreseed[] = {
+ 0x9a, 0x49, 0xe3, 0xcd, 0x41, 0x33, 0x84, 0x3c, 0x38, 0x7b, 0x4d, 0xa9,
+ 0xc6, 0xb0, 0x48, 0xe1,
+};
+static const unsigned char kat1462_addin0[] = {
+ 0xf5, 0x5b, 0xfa, 0xc5, 0xb9, 0x3b, 0x60, 0xcb, 0xe6, 0x5e, 0x81, 0x8e,
+ 0xcd, 0xd5, 0xb8, 0x85,
+};
+static const unsigned char kat1462_addin1[] = {
+ 0x4a, 0x25, 0xf1, 0xfd, 0xba, 0x66, 0xa5, 0x2e, 0xa2, 0x26, 0xa9, 0x84,
+ 0x10, 0x13, 0x99, 0x66,
+};
+static const unsigned char kat1462_retbits[] = {
+ 0x90, 0xb2, 0x0a, 0xcd, 0x62, 0x03, 0xf7, 0xe9, 0x45, 0x99, 0x35, 0x92,
+ 0xbc, 0x16, 0x85, 0x09, 0x98, 0x76, 0xc6, 0xe3, 0xb7, 0x01, 0x6b, 0xdd,
+ 0x35, 0xff, 0x40, 0xd0, 0x93, 0x62, 0x76, 0x50, 0x13, 0x8c, 0xb5, 0x5d,
+ 0x0d, 0x9d, 0x90, 0x73, 0x39, 0xb1, 0xca, 0x28, 0x0c, 0x38, 0x37, 0x4f,
+ 0x85, 0xde, 0x1d, 0x59, 0x05, 0x65, 0xf9, 0x57, 0x15, 0x82, 0xa9, 0xb9,
+ 0x2c, 0x66, 0x39, 0x04,
+};
+static const struct drbg_kat_pr_false kat1462_t = {
+ 6, kat1462_entropyin, kat1462_nonce, kat1462_persstr,
+ kat1462_entropyinreseed, kat1462_addinreseed, kat1462_addin0,
+ kat1462_addin1, kat1462_retbits
+};
+static const struct drbg_kat kat1462 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1462_t
+};
+
+static const unsigned char kat1463_entropyin[] = {
+ 0xd3, 0x79, 0x39, 0x53, 0x75, 0xd6, 0x1d, 0xdb, 0x6e, 0xc6, 0xa1, 0x56,
+ 0xdb, 0xed, 0x82, 0xf4,
+};
+static const unsigned char kat1463_nonce[] = {
+ 0x02, 0x3d, 0x15, 0xf0, 0xc2, 0xe6, 0x52, 0x0f,
+};
+static const unsigned char kat1463_persstr[] = {0};
+static const unsigned char kat1463_entropyinreseed[] = {
+ 0xbd, 0x64, 0x6f, 0x98, 0xfd, 0x89, 0xf2, 0xda, 0xf0, 0xbc, 0x2d, 0xbf,
+ 0x98, 0xc1, 0x63, 0xb8,
+};
+static const unsigned char kat1463_addinreseed[] = {
+ 0xb3, 0xcb, 0x86, 0x2d, 0x24, 0x1a, 0x39, 0x0a, 0xcc, 0xcf, 0x1e, 0x52,
+ 0x15, 0xb6, 0x85, 0x68,
+};
+static const unsigned char kat1463_addin0[] = {
+ 0xac, 0x3f, 0x73, 0x9d, 0x30, 0x52, 0x6a, 0x58, 0xb2, 0x3a, 0x7c, 0xb7,
+ 0xde, 0x91, 0x5c, 0x55,
+};
+static const unsigned char kat1463_addin1[] = {
+ 0x35, 0x93, 0xa0, 0x16, 0x4a, 0x6b, 0xcb, 0x02, 0xfa, 0x32, 0xa4, 0x52,
+ 0xd2, 0x68, 0xd1, 0x99,
+};
+static const unsigned char kat1463_retbits[] = {
+ 0x12, 0x24, 0xce, 0x5b, 0x56, 0x85, 0x30, 0x64, 0xb7, 0x62, 0x62, 0x41,
+ 0x7c, 0xcf, 0xd5, 0x2d, 0x18, 0xc2, 0x55, 0x1c, 0x2c, 0x1f, 0x1d, 0xd5,
+ 0x9d, 0x6d, 0x70, 0x74, 0x29, 0x3a, 0xfe, 0x35, 0x12, 0x90, 0xcc, 0xa1,
+ 0x8e, 0x14, 0x8e, 0x12, 0xfd, 0x2d, 0x0c, 0x03, 0x50, 0x6f, 0x69, 0x3a,
+ 0xbf, 0xcc, 0x28, 0xd0, 0xf2, 0x15, 0x67, 0x63, 0x4f, 0xe2, 0x16, 0x6d,
+ 0xd3, 0x10, 0xb6, 0x0e,
+};
+static const struct drbg_kat_pr_false kat1463_t = {
+ 7, kat1463_entropyin, kat1463_nonce, kat1463_persstr,
+ kat1463_entropyinreseed, kat1463_addinreseed, kat1463_addin0,
+ kat1463_addin1, kat1463_retbits
+};
+static const struct drbg_kat kat1463 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1463_t
+};
+
+static const unsigned char kat1464_entropyin[] = {
+ 0x19, 0x17, 0xad, 0xc4, 0x0a, 0x5e, 0x12, 0x44, 0xba, 0x80, 0xb1, 0x41,
+ 0x32, 0x2e, 0x5c, 0xc0,
+};
+static const unsigned char kat1464_nonce[] = {
+ 0x0e, 0x6b, 0xf2, 0xe2, 0x97, 0xd6, 0x54, 0xb2,
+};
+static const unsigned char kat1464_persstr[] = {0};
+static const unsigned char kat1464_entropyinreseed[] = {
+ 0xbe, 0x43, 0xba, 0xc3, 0x69, 0xfa, 0x80, 0xde, 0x6a, 0x20, 0xb7, 0x84,
+ 0xca, 0x1e, 0x46, 0xa1,
+};
+static const unsigned char kat1464_addinreseed[] = {
+ 0xc9, 0x0e, 0x30, 0x31, 0x0f, 0x33, 0xee, 0x1a, 0x92, 0xc6, 0x2a, 0x4c,
+ 0x34, 0x5e, 0x0d, 0x97,
+};
+static const unsigned char kat1464_addin0[] = {
+ 0xcb, 0x46, 0xd6, 0xd4, 0x01, 0x3d, 0xbe, 0x30, 0x46, 0xa6, 0xc8, 0x1f,
+ 0x4f, 0xb1, 0x40, 0x5f,
+};
+static const unsigned char kat1464_addin1[] = {
+ 0x2a, 0xea, 0x60, 0x3c, 0xfb, 0xb4, 0x2c, 0x55, 0xf6, 0x41, 0x90, 0x33,
+ 0x44, 0xe2, 0x8a, 0x78,
+};
+static const unsigned char kat1464_retbits[] = {
+ 0xe0, 0x8a, 0xaa, 0x8a, 0x1b, 0xdd, 0x54, 0x1b, 0xb3, 0xa1, 0x21, 0x6b,
+ 0xb9, 0x9b, 0xfb, 0xa3, 0x8c, 0x9a, 0x91, 0x71, 0x83, 0xc7, 0x3f, 0x62,
+ 0x37, 0x35, 0xe5, 0xd9, 0xf5, 0xcd, 0xd3, 0x05, 0xc3, 0x39, 0x75, 0xcc,
+ 0xc6, 0x99, 0xe1, 0x8a, 0x69, 0x9d, 0x55, 0xdf, 0xc8, 0xa7, 0x2c, 0x2d,
+ 0xf0, 0xd6, 0x66, 0x03, 0x22, 0x15, 0xcf, 0x79, 0xd2, 0xe8, 0x79, 0x30,
+ 0xef, 0x86, 0x50, 0xa0,
+};
+static const struct drbg_kat_pr_false kat1464_t = {
+ 8, kat1464_entropyin, kat1464_nonce, kat1464_persstr,
+ kat1464_entropyinreseed, kat1464_addinreseed, kat1464_addin0,
+ kat1464_addin1, kat1464_retbits
+};
+static const struct drbg_kat kat1464 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1464_t
+};
+
+static const unsigned char kat1465_entropyin[] = {
+ 0xc9, 0x96, 0x3a, 0x15, 0x51, 0x76, 0x4f, 0xe0, 0x45, 0x82, 0x8a, 0x64,
+ 0x87, 0xbe, 0xaa, 0xc0,
+};
+static const unsigned char kat1465_nonce[] = {
+ 0x08, 0xcd, 0x69, 0x39, 0xf8, 0x58, 0x9a, 0x85,
+};
+static const unsigned char kat1465_persstr[] = {0};
+static const unsigned char kat1465_entropyinreseed[] = {
+ 0x16, 0xcc, 0x35, 0x15, 0xb1, 0x17, 0xf5, 0x33, 0x80, 0x9a, 0x80, 0xc5,
+ 0x1f, 0x4b, 0x7b, 0x51,
+};
+static const unsigned char kat1465_addinreseed[] = {
+ 0xf5, 0x3d, 0xf1, 0x2e, 0xdb, 0x28, 0x1c, 0x00, 0x7b, 0xcb, 0xb6, 0x12,
+ 0x61, 0x9f, 0x26, 0x5f,
+};
+static const unsigned char kat1465_addin0[] = {
+ 0xe2, 0x67, 0x06, 0x62, 0x09, 0xa7, 0xcf, 0xd6, 0x84, 0x8c, 0x20, 0xf6,
+ 0x10, 0x5a, 0x73, 0x9c,
+};
+static const unsigned char kat1465_addin1[] = {
+ 0x26, 0xfa, 0x50, 0xe1, 0xb3, 0xcb, 0x65, 0xed, 0xbc, 0x6d, 0xda, 0x18,
+ 0x47, 0x99, 0x1f, 0xeb,
+};
+static const unsigned char kat1465_retbits[] = {
+ 0xf9, 0x47, 0xc6, 0xb0, 0x58, 0xa8, 0x66, 0x8a, 0xf5, 0x2b, 0x2a, 0x6d,
+ 0x4e, 0x24, 0x6f, 0x65, 0xbf, 0x51, 0x22, 0xbf, 0xe8, 0x8d, 0x6c, 0xeb,
+ 0xf9, 0x68, 0x7f, 0xed, 0x3b, 0xdd, 0x6b, 0xd5, 0x28, 0x47, 0x56, 0x52,
+ 0xda, 0x50, 0xf0, 0x90, 0x73, 0x95, 0x06, 0x58, 0xaf, 0x08, 0x98, 0x6e,
+ 0x24, 0x18, 0xfd, 0x2f, 0x48, 0x72, 0x57, 0xd6, 0x59, 0xab, 0xe9, 0x41,
+ 0x58, 0xdb, 0x27, 0xba,
+};
+static const struct drbg_kat_pr_false kat1465_t = {
+ 9, kat1465_entropyin, kat1465_nonce, kat1465_persstr,
+ kat1465_entropyinreseed, kat1465_addinreseed, kat1465_addin0,
+ kat1465_addin1, kat1465_retbits
+};
+static const struct drbg_kat kat1465 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1465_t
+};
+
+static const unsigned char kat1466_entropyin[] = {
+ 0x39, 0xec, 0xf1, 0xb6, 0xa0, 0xb4, 0xcc, 0x2f, 0xf0, 0x9f, 0x57, 0x00,
+ 0x56, 0xd1, 0xa8, 0xcf,
+};
+static const unsigned char kat1466_nonce[] = {
+ 0xb3, 0x15, 0xf7, 0x64, 0x0b, 0xcc, 0xc2, 0xa0,
+};
+static const unsigned char kat1466_persstr[] = {0};
+static const unsigned char kat1466_entropyinreseed[] = {
+ 0xd7, 0x45, 0xe6, 0x14, 0xcc, 0x56, 0x31, 0x5a, 0xc7, 0x5c, 0x7a, 0xae,
+ 0x55, 0x30, 0x26, 0xb9,
+};
+static const unsigned char kat1466_addinreseed[] = {
+ 0xc3, 0xc6, 0x61, 0x9e, 0x82, 0x9b, 0x70, 0x2c, 0x84, 0x5b, 0x89, 0x14,
+ 0xb1, 0x57, 0xae, 0x7d,
+};
+static const unsigned char kat1466_addin0[] = {
+ 0xac, 0x85, 0x82, 0x3f, 0xc3, 0x64, 0x59, 0x17, 0x05, 0x83, 0xfc, 0x37,
+ 0x13, 0xcf, 0x90, 0xb7,
+};
+static const unsigned char kat1466_addin1[] = {
+ 0x5e, 0x0f, 0x42, 0x29, 0xcf, 0xd0, 0x12, 0x41, 0x68, 0x5a, 0xe1, 0x8b,
+ 0x93, 0xd7, 0x0b, 0xed,
+};
+static const unsigned char kat1466_retbits[] = {
+ 0x46, 0x0c, 0xfe, 0xbc, 0x9d, 0x30, 0x1c, 0x5e, 0x5a, 0xa6, 0x83, 0x28,
+ 0xb3, 0xb5, 0x11, 0x43, 0xde, 0x26, 0xeb, 0xb4, 0x79, 0xff, 0x92, 0xdb,
+ 0x1d, 0x6b, 0x49, 0x7e, 0x68, 0x50, 0x90, 0x08, 0xab, 0xc4, 0xfd, 0x69,
+ 0x0e, 0x61, 0x10, 0x7e, 0x2a, 0xfa, 0x15, 0x36, 0x7f, 0x5d, 0x74, 0x1b,
+ 0x3a, 0x0f, 0xb0, 0x04, 0x51, 0x31, 0xc0, 0x50, 0x41, 0xb2, 0xd8, 0x05,
+ 0xca, 0xf7, 0xef, 0xcb,
+};
+static const struct drbg_kat_pr_false kat1466_t = {
+ 10, kat1466_entropyin, kat1466_nonce, kat1466_persstr,
+ kat1466_entropyinreseed, kat1466_addinreseed, kat1466_addin0,
+ kat1466_addin1, kat1466_retbits
+};
+static const struct drbg_kat kat1466 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1466_t
+};
+
+static const unsigned char kat1467_entropyin[] = {
+ 0x88, 0xfe, 0x06, 0x58, 0x04, 0x7c, 0xfb, 0x81, 0xa7, 0xae, 0x0d, 0x84,
+ 0xcd, 0xba, 0x01, 0x41,
+};
+static const unsigned char kat1467_nonce[] = {
+ 0xf8, 0x87, 0x91, 0xd3, 0x2b, 0x88, 0xd3, 0xaf,
+};
+static const unsigned char kat1467_persstr[] = {0};
+static const unsigned char kat1467_entropyinreseed[] = {
+ 0xad, 0x77, 0x4c, 0xf5, 0xa5, 0x17, 0x28, 0x4a, 0xd9, 0x8b, 0xd9, 0xc4,
+ 0xe6, 0xbc, 0xac, 0x4b,
+};
+static const unsigned char kat1467_addinreseed[] = {
+ 0xe6, 0x3c, 0x91, 0x63, 0x3b, 0xfa, 0x70, 0xce, 0x95, 0xae, 0x76, 0x74,
+ 0x18, 0x3e, 0x13, 0x7a,
+};
+static const unsigned char kat1467_addin0[] = {
+ 0xe0, 0x3e, 0x1f, 0xa7, 0xb6, 0x4e, 0x47, 0x5f, 0x12, 0x6b, 0xec, 0x1d,
+ 0xb0, 0x2c, 0xa9, 0x9d,
+};
+static const unsigned char kat1467_addin1[] = {
+ 0xc2, 0xe7, 0x52, 0xef, 0x80, 0xdb, 0x56, 0xc5, 0x7f, 0x60, 0xc2, 0x96,
+ 0x12, 0xb8, 0xf9, 0xff,
+};
+static const unsigned char kat1467_retbits[] = {
+ 0x8f, 0xbe, 0x91, 0x06, 0x0a, 0x48, 0x0f, 0xea, 0xcd, 0x4c, 0x63, 0xf9,
+ 0x2b, 0x31, 0x8f, 0x97, 0x03, 0xf8, 0x88, 0x9a, 0xe9, 0xf4, 0xd5, 0xa1,
+ 0xd0, 0x25, 0x3f, 0x90, 0xf5, 0xa3, 0xe7, 0x8a, 0xa6, 0x0b, 0xbf, 0xac,
+ 0x0e, 0xc1, 0x5e, 0x97, 0x24, 0x4e, 0xff, 0x29, 0x46, 0xec, 0x14, 0xe6,
+ 0x99, 0xd0, 0x6f, 0xf9, 0xcc, 0x87, 0x06, 0xc0, 0x58, 0x2d, 0xfd, 0x08,
+ 0xb5, 0x13, 0x84, 0x85,
+};
+static const struct drbg_kat_pr_false kat1467_t = {
+ 11, kat1467_entropyin, kat1467_nonce, kat1467_persstr,
+ kat1467_entropyinreseed, kat1467_addinreseed, kat1467_addin0,
+ kat1467_addin1, kat1467_retbits
+};
+static const struct drbg_kat kat1467 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1467_t
+};
+
+static const unsigned char kat1468_entropyin[] = {
+ 0xa3, 0x26, 0xb3, 0x55, 0x7e, 0xc1, 0xc1, 0xf9, 0xe8, 0x72, 0x21, 0x1d,
+ 0x0e, 0xe4, 0x8e, 0x81,
+};
+static const unsigned char kat1468_nonce[] = {
+ 0xfc, 0xc9, 0x33, 0x6b, 0x24, 0x6f, 0x54, 0x8c,
+};
+static const unsigned char kat1468_persstr[] = {0};
+static const unsigned char kat1468_entropyinreseed[] = {
+ 0x00, 0x06, 0x2d, 0xac, 0xc2, 0x7f, 0x5f, 0x67, 0x23, 0x45, 0x88, 0xd6,
+ 0x8b, 0x85, 0x47, 0xe6,
+};
+static const unsigned char kat1468_addinreseed[] = {
+ 0xc5, 0xe4, 0xb9, 0x29, 0x06, 0x93, 0xf3, 0x56, 0xea, 0xb6, 0x55, 0xda,
+ 0x19, 0xd5, 0xa6, 0xf9,
+};
+static const unsigned char kat1468_addin0[] = {
+ 0xf9, 0xc7, 0x91, 0xd8, 0x74, 0x11, 0xa7, 0xe7, 0xc6, 0x7d, 0x9a, 0xb8,
+ 0x98, 0x7e, 0x05, 0x5d,
+};
+static const unsigned char kat1468_addin1[] = {
+ 0x94, 0xf8, 0xba, 0xb2, 0xda, 0xa9, 0xe0, 0xbd, 0x50, 0x78, 0xcd, 0xed,
+ 0x05, 0xdf, 0x26, 0x94,
+};
+static const unsigned char kat1468_retbits[] = {
+ 0x3d, 0x0a, 0xea, 0x7e, 0x34, 0x7d, 0x33, 0x15, 0xc5, 0x56, 0x1c, 0x4a,
+ 0x7d, 0xbd, 0xfe, 0x1b, 0x13, 0x52, 0xc1, 0xa4, 0x76, 0xea, 0x58, 0xcb,
+ 0x35, 0xa4, 0x95, 0x3d, 0x53, 0xda, 0x74, 0x85, 0x3a, 0xdd, 0xf4, 0xd2,
+ 0x3c, 0xfc, 0xa3, 0xb2, 0x6e, 0x76, 0xc0, 0xef, 0xaa, 0x83, 0x0d, 0x1c,
+ 0x8d, 0xc2, 0x32, 0xd4, 0x2e, 0xe8, 0xb9, 0x61, 0x42, 0x8a, 0x8a, 0x52,
+ 0xb7, 0xde, 0xa8, 0x89,
+};
+static const struct drbg_kat_pr_false kat1468_t = {
+ 12, kat1468_entropyin, kat1468_nonce, kat1468_persstr,
+ kat1468_entropyinreseed, kat1468_addinreseed, kat1468_addin0,
+ kat1468_addin1, kat1468_retbits
+};
+static const struct drbg_kat kat1468 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1468_t
+};
+
+static const unsigned char kat1469_entropyin[] = {
+ 0x69, 0xbc, 0x64, 0x17, 0x57, 0x03, 0xd4, 0x09, 0x62, 0x78, 0xd7, 0x16,
+ 0x00, 0x2a, 0x4c, 0x6d,
+};
+static const unsigned char kat1469_nonce[] = {
+ 0x06, 0x30, 0xcb, 0xea, 0x0b, 0xf1, 0x23, 0x71,
+};
+static const unsigned char kat1469_persstr[] = {0};
+static const unsigned char kat1469_entropyinreseed[] = {
+ 0xe0, 0x97, 0xef, 0x5e, 0xb7, 0x39, 0x99, 0x83, 0xd3, 0xea, 0x0a, 0x13,
+ 0x08, 0x79, 0xee, 0x0b,
+};
+static const unsigned char kat1469_addinreseed[] = {
+ 0xa2, 0x39, 0x61, 0xca, 0x15, 0x17, 0xb2, 0xe7, 0x68, 0x1c, 0xd5, 0x03,
+ 0xde, 0x2a, 0x94, 0x75,
+};
+static const unsigned char kat1469_addin0[] = {
+ 0x7c, 0x34, 0xeb, 0xe6, 0x7e, 0xc4, 0x79, 0xff, 0x68, 0xba, 0x2f, 0x1c,
+ 0x9f, 0x30, 0x1a, 0xac,
+};
+static const unsigned char kat1469_addin1[] = {
+ 0xe3, 0x89, 0x6b, 0x79, 0xa8, 0xbf, 0x25, 0x33, 0x25, 0xbb, 0xa6, 0x32,
+ 0xe2, 0x1b, 0x90, 0x20,
+};
+static const unsigned char kat1469_retbits[] = {
+ 0xbc, 0x9a, 0x7c, 0x15, 0x7b, 0x4d, 0xcc, 0xe9, 0xdf, 0x14, 0x1f, 0x49,
+ 0xdb, 0x83, 0x9e, 0x4b, 0x40, 0xcc, 0x72, 0x5b, 0xb2, 0xf4, 0x18, 0x7b,
+ 0xfe, 0x07, 0xb6, 0xc3, 0xbe, 0xc4, 0x6e, 0xa6, 0x34, 0x3f, 0x4a, 0x73,
+ 0xf4, 0xc1, 0x9f, 0x17, 0xf6, 0x7b, 0xb0, 0x40, 0x96, 0xe0, 0xae, 0xba,
+ 0x64, 0x57, 0xcb, 0x51, 0x75, 0xfe, 0x66, 0x87, 0xd8, 0xe5, 0x66, 0xee,
+ 0x1d, 0x91, 0xca, 0x16,
+};
+static const struct drbg_kat_pr_false kat1469_t = {
+ 13, kat1469_entropyin, kat1469_nonce, kat1469_persstr,
+ kat1469_entropyinreseed, kat1469_addinreseed, kat1469_addin0,
+ kat1469_addin1, kat1469_retbits
+};
+static const struct drbg_kat kat1469 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1469_t
+};
+
+static const unsigned char kat1470_entropyin[] = {
+ 0x7d, 0x65, 0x9c, 0xf5, 0xe1, 0x83, 0x75, 0xf8, 0x0b, 0xb2, 0x9e, 0x58,
+ 0xd8, 0xeb, 0xe5, 0x08,
+};
+static const unsigned char kat1470_nonce[] = {
+ 0xf7, 0x11, 0x42, 0x3c, 0x8a, 0x3b, 0x0d, 0x2d,
+};
+static const unsigned char kat1470_persstr[] = {0};
+static const unsigned char kat1470_entropyinreseed[] = {
+ 0x61, 0x57, 0x04, 0x70, 0xa9, 0xfb, 0x75, 0x61, 0x13, 0xd3, 0x23, 0x77,
+ 0xd4, 0x99, 0x65, 0xf8,
+};
+static const unsigned char kat1470_addinreseed[] = {
+ 0x0d, 0x3d, 0x3c, 0xb2, 0xd4, 0xd3, 0xc4, 0x30, 0x0c, 0x58, 0x08, 0x1e,
+ 0xbd, 0x37, 0x85, 0xeb,
+};
+static const unsigned char kat1470_addin0[] = {
+ 0x73, 0x58, 0xcc, 0xaf, 0xf3, 0x70, 0x94, 0xc3, 0xc1, 0xa6, 0x88, 0x00,
+ 0x11, 0xa7, 0x20, 0x69,
+};
+static const unsigned char kat1470_addin1[] = {
+ 0x48, 0xca, 0x1a, 0x7f, 0x96, 0xdc, 0x59, 0x18, 0xf9, 0xd9, 0xab, 0xd6,
+ 0x42, 0x3f, 0xdb, 0x8d,
+};
+static const unsigned char kat1470_retbits[] = {
+ 0x69, 0x37, 0x79, 0x68, 0x13, 0x8d, 0x3d, 0x4e, 0xa4, 0x34, 0x26, 0xa0,
+ 0x25, 0x34, 0x2a, 0x58, 0x58, 0x6b, 0xef, 0x7a, 0xb2, 0x60, 0x2f, 0xe0,
+ 0x7d, 0x70, 0x50, 0x9e, 0x43, 0xd4, 0xc2, 0xf4, 0x96, 0x0c, 0x8e, 0xab,
+ 0x40, 0xb0, 0x0b, 0xbf, 0x0e, 0xb1, 0x20, 0x22, 0x34, 0x73, 0x76, 0x5f,
+ 0x48, 0x33, 0xbf, 0x22, 0x8b, 0x90, 0x7b, 0x79, 0x27, 0xb0, 0xf5, 0x36,
+ 0x42, 0x45, 0x2a, 0x81,
+};
+static const struct drbg_kat_pr_false kat1470_t = {
+ 14, kat1470_entropyin, kat1470_nonce, kat1470_persstr,
+ kat1470_entropyinreseed, kat1470_addinreseed, kat1470_addin0,
+ kat1470_addin1, kat1470_retbits
+};
+static const struct drbg_kat kat1470 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1470_t
+};
+
+static const unsigned char kat1471_entropyin[] = {
+ 0x07, 0x0d, 0x59, 0x63, 0x98, 0x73, 0xa5, 0x45, 0x27, 0x38, 0x22, 0x7b,
+ 0x76, 0x85, 0xd1, 0xa9,
+};
+static const unsigned char kat1471_nonce[] = {
+ 0x74, 0x18, 0x1f, 0x3c, 0x22, 0xf6, 0x49, 0x20,
+};
+static const unsigned char kat1471_persstr[] = {
+ 0x4e, 0x61, 0x79, 0xd4, 0xc2, 0x72, 0xa1, 0x4c, 0xf1, 0x3d, 0xf6, 0x5e,
+ 0xa3, 0xa6, 0xe5, 0x0f,
+};
+static const unsigned char kat1471_entropyinreseed[] = {
+ 0x4a, 0x47, 0xc2, 0xf3, 0x85, 0x16, 0xb4, 0x6f, 0x00, 0x2e, 0x71, 0xda,
+ 0xed, 0x16, 0x9b, 0x5c,
+};
+static const unsigned char kat1471_addinreseed[] = {0};
+static const unsigned char kat1471_addin0[] = {0};
+static const unsigned char kat1471_addin1[] = {0};
+static const unsigned char kat1471_retbits[] = {
+ 0x31, 0xc9, 0x91, 0x09, 0xf8, 0xc5, 0x10, 0x13, 0x3c, 0xd3, 0x96, 0xf9,
+ 0xbc, 0x2c, 0x12, 0xc0, 0x7c, 0xc1, 0x61, 0x5f, 0xa3, 0x09, 0x99, 0xaf,
+ 0xd7, 0xf2, 0x36, 0xfd, 0x40, 0x1a, 0x8b, 0xf2, 0x33, 0x38, 0xee, 0x1d,
+ 0x03, 0x5f, 0x83, 0xb7, 0xa2, 0x53, 0xdc, 0xee, 0x18, 0xfc, 0xa7, 0xf2,
+ 0xee, 0x96, 0xc6, 0xc2, 0xcd, 0x0c, 0xff, 0x02, 0x76, 0x70, 0x69, 0xaa,
+ 0x69, 0xd1, 0x3b, 0xe8,
+};
+static const struct drbg_kat_pr_false kat1471_t = {
+ 0, kat1471_entropyin, kat1471_nonce, kat1471_persstr,
+ kat1471_entropyinreseed, kat1471_addinreseed, kat1471_addin0,
+ kat1471_addin1, kat1471_retbits
+};
+static const struct drbg_kat kat1471 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1471_t
+};
+
+static const unsigned char kat1472_entropyin[] = {
+ 0xc6, 0xc0, 0x85, 0x3c, 0x72, 0x5e, 0x9d, 0xee, 0x29, 0xe9, 0x43, 0x1e,
+ 0x8d, 0xeb, 0x2c, 0x99,
+};
+static const unsigned char kat1472_nonce[] = {
+ 0xe2, 0xbe, 0x4b, 0x86, 0xf6, 0x2a, 0x85, 0x6b,
+};
+static const unsigned char kat1472_persstr[] = {
+ 0x5f, 0xb7, 0x25, 0x46, 0x2a, 0x22, 0x8c, 0x20, 0x26, 0xc1, 0xb8, 0x89,
+ 0x4d, 0xd3, 0x40, 0x6d,
+};
+static const unsigned char kat1472_entropyinreseed[] = {
+ 0xb8, 0xb4, 0xb4, 0x43, 0x24, 0xa8, 0x12, 0x0c, 0x04, 0xd6, 0xea, 0xff,
+ 0xd0, 0x17, 0xfd, 0xa9,
+};
+static const unsigned char kat1472_addinreseed[] = {0};
+static const unsigned char kat1472_addin0[] = {0};
+static const unsigned char kat1472_addin1[] = {0};
+static const unsigned char kat1472_retbits[] = {
+ 0xe3, 0xe7, 0x1a, 0x8d, 0xfe, 0x79, 0x99, 0x57, 0x0c, 0x94, 0xf7, 0x84,
+ 0x2a, 0x0f, 0xf9, 0x75, 0xf0, 0xe0, 0x3c, 0x32, 0x52, 0x9d, 0x69, 0x44,
+ 0x4c, 0x24, 0x6e, 0x82, 0x45, 0x8c, 0x87, 0x4a, 0x95, 0x1f, 0x2f, 0xe6,
+ 0xeb, 0xa3, 0x66, 0x71, 0x46, 0x09, 0x47, 0x3d, 0x59, 0x9e, 0x75, 0xb5,
+ 0xcd, 0x96, 0x93, 0xf7, 0x69, 0x69, 0x21, 0x44, 0x65, 0x2c, 0xc8, 0xfa,
+ 0x39, 0x36, 0x83, 0x00,
+};
+static const struct drbg_kat_pr_false kat1472_t = {
+ 1, kat1472_entropyin, kat1472_nonce, kat1472_persstr,
+ kat1472_entropyinreseed, kat1472_addinreseed, kat1472_addin0,
+ kat1472_addin1, kat1472_retbits
+};
+static const struct drbg_kat kat1472 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1472_t
+};
+
+static const unsigned char kat1473_entropyin[] = {
+ 0xb5, 0x18, 0x6d, 0xbe, 0x9a, 0x09, 0x9a, 0x85, 0xf5, 0xa3, 0x53, 0x43,
+ 0x71, 0x69, 0x38, 0x9b,
+};
+static const unsigned char kat1473_nonce[] = {
+ 0xc6, 0x58, 0x10, 0xe4, 0xbe, 0xad, 0x9f, 0x2a,
+};
+static const unsigned char kat1473_persstr[] = {
+ 0x4b, 0x0c, 0xc2, 0xed, 0x08, 0x99, 0xfa, 0xc0, 0x25, 0x37, 0x0a, 0x79,
+ 0x6f, 0xe8, 0x24, 0xe2,
+};
+static const unsigned char kat1473_entropyinreseed[] = {
+ 0xb9, 0xe7, 0x03, 0xda, 0xa6, 0xba, 0x64, 0xe3, 0x3c, 0x68, 0x68, 0x00,
+ 0x9e, 0x65, 0xd3, 0x92,
+};
+static const unsigned char kat1473_addinreseed[] = {0};
+static const unsigned char kat1473_addin0[] = {0};
+static const unsigned char kat1473_addin1[] = {0};
+static const unsigned char kat1473_retbits[] = {
+ 0x05, 0xe4, 0x52, 0xe3, 0xb8, 0xbc, 0x0b, 0x60, 0x01, 0x4f, 0x38, 0xc3,
+ 0x24, 0xcc, 0x02, 0xc5, 0x43, 0xa0, 0x0c, 0xaf, 0x49, 0x44, 0xb8, 0xa3,
+ 0x81, 0x55, 0x9c, 0x9d, 0x50, 0xd9, 0xc2, 0xf3, 0x42, 0xf5, 0x45, 0xad,
+ 0xf8, 0x7d, 0x86, 0x22, 0xed, 0x18, 0xf7, 0x06, 0x42, 0xa6, 0xdb, 0xe3,
+ 0xb5, 0xc7, 0xa0, 0x7a, 0xa0, 0x70, 0xec, 0xf4, 0x6a, 0xce, 0xa8, 0x13,
+ 0x53, 0xf7, 0x4d, 0xe9,
+};
+static const struct drbg_kat_pr_false kat1473_t = {
+ 2, kat1473_entropyin, kat1473_nonce, kat1473_persstr,
+ kat1473_entropyinreseed, kat1473_addinreseed, kat1473_addin0,
+ kat1473_addin1, kat1473_retbits
+};
+static const struct drbg_kat kat1473 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1473_t
+};
+
+static const unsigned char kat1474_entropyin[] = {
+ 0xc2, 0xf0, 0xcf, 0x9a, 0x5e, 0xae, 0x59, 0xb0, 0xcf, 0x9a, 0x2e, 0x72,
+ 0xb3, 0x65, 0x9f, 0x20,
+};
+static const unsigned char kat1474_nonce[] = {
+ 0x85, 0x76, 0xf1, 0xf1, 0x74, 0x4e, 0x3a, 0x02,
+};
+static const unsigned char kat1474_persstr[] = {
+ 0x7a, 0xb4, 0x46, 0x9c, 0x27, 0x13, 0x33, 0x62, 0x9c, 0x51, 0xa7, 0xc2,
+ 0xad, 0xce, 0x91, 0x32,
+};
+static const unsigned char kat1474_entropyinreseed[] = {
+ 0x1c, 0xbb, 0xe2, 0xe1, 0x5d, 0x42, 0xb4, 0xea, 0x08, 0x6e, 0x70, 0x1e,
+ 0x25, 0xb5, 0x41, 0x52,
+};
+static const unsigned char kat1474_addinreseed[] = {0};
+static const unsigned char kat1474_addin0[] = {0};
+static const unsigned char kat1474_addin1[] = {0};
+static const unsigned char kat1474_retbits[] = {
+ 0xba, 0x01, 0x0d, 0xe5, 0xf9, 0x0c, 0xfe, 0xee, 0x93, 0xd5, 0x87, 0x77,
+ 0x73, 0xca, 0x60, 0xcb, 0x3b, 0xed, 0x7c, 0xdc, 0x86, 0xa6, 0xb1, 0xed,
+ 0x67, 0xbf, 0xe2, 0xa0, 0x9c, 0x92, 0x80, 0xa9, 0xb1, 0x63, 0x5d, 0x6f,
+ 0x60, 0x05, 0xd0, 0x2b, 0x22, 0xb2, 0x20, 0x26, 0x18, 0x2d, 0x4c, 0xdb,
+ 0x86, 0x07, 0xd1, 0xe8, 0x5b, 0x92, 0xc5, 0xf3, 0xc5, 0x63, 0x85, 0xf9,
+ 0xce, 0x71, 0xe6, 0x49,
+};
+static const struct drbg_kat_pr_false kat1474_t = {
+ 3, kat1474_entropyin, kat1474_nonce, kat1474_persstr,
+ kat1474_entropyinreseed, kat1474_addinreseed, kat1474_addin0,
+ kat1474_addin1, kat1474_retbits
+};
+static const struct drbg_kat kat1474 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1474_t
+};
+
+static const unsigned char kat1475_entropyin[] = {
+ 0xf2, 0x9f, 0x11, 0x3e, 0x28, 0x1c, 0x1f, 0x9d, 0xd4, 0xa9, 0x07, 0xa5,
+ 0x8c, 0x32, 0xf2, 0x38,
+};
+static const unsigned char kat1475_nonce[] = {
+ 0xce, 0xe1, 0x2a, 0xfb, 0xd1, 0x6b, 0xfb, 0xbf,
+};
+static const unsigned char kat1475_persstr[] = {
+ 0x10, 0x37, 0x67, 0x76, 0x99, 0x2d, 0x0a, 0xef, 0x05, 0x87, 0xb3, 0x68,
+ 0x4a, 0x9a, 0x8a, 0x0d,
+};
+static const unsigned char kat1475_entropyinreseed[] = {
+ 0xcd, 0xc7, 0xbe, 0xc4, 0x32, 0x90, 0x99, 0xf7, 0x8b, 0xb1, 0xc3, 0xf4,
+ 0xde, 0x17, 0x8c, 0x33,
+};
+static const unsigned char kat1475_addinreseed[] = {0};
+static const unsigned char kat1475_addin0[] = {0};
+static const unsigned char kat1475_addin1[] = {0};
+static const unsigned char kat1475_retbits[] = {
+ 0xf9, 0xee, 0x43, 0x43, 0x0d, 0x02, 0x8d, 0xe1, 0xd4, 0x95, 0xd6, 0x1f,
+ 0x28, 0x26, 0x0a, 0x49, 0xd5, 0x2c, 0x64, 0xa1, 0x2f, 0x52, 0xdd, 0x38,
+ 0x46, 0x87, 0xef, 0x57, 0xf8, 0xb9, 0x8d, 0xbf, 0x95, 0x76, 0x71, 0x0e,
+ 0xe6, 0x03, 0x3f, 0xa5, 0x25, 0x5b, 0x0d, 0x03, 0x8b, 0x22, 0x6a, 0x36,
+ 0x16, 0x6a, 0x0c, 0x27, 0x8a, 0xa3, 0xa4, 0x32, 0xaa, 0x28, 0x11, 0xd3,
+ 0xe1, 0x18, 0xbe, 0xa6,
+};
+static const struct drbg_kat_pr_false kat1475_t = {
+ 4, kat1475_entropyin, kat1475_nonce, kat1475_persstr,
+ kat1475_entropyinreseed, kat1475_addinreseed, kat1475_addin0,
+ kat1475_addin1, kat1475_retbits
+};
+static const struct drbg_kat kat1475 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1475_t
+};
+
+static const unsigned char kat1476_entropyin[] = {
+ 0x59, 0xe8, 0xc9, 0xa8, 0xca, 0x4e, 0x44, 0xf3, 0x0d, 0xb4, 0x7b, 0xd0,
+ 0x93, 0x27, 0x41, 0x09,
+};
+static const unsigned char kat1476_nonce[] = {
+ 0xc3, 0x6a, 0xdd, 0x93, 0xb4, 0x96, 0xf6, 0x5e,
+};
+static const unsigned char kat1476_persstr[] = {
+ 0x15, 0xa1, 0x9b, 0xd5, 0x96, 0xcd, 0x9c, 0x13, 0x40, 0xb6, 0x69, 0x19,
+ 0xa1, 0x4a, 0xd9, 0xa0,
+};
+static const unsigned char kat1476_entropyinreseed[] = {
+ 0x9a, 0x46, 0x06, 0xbb, 0xf7, 0x6f, 0x92, 0xc4, 0xdd, 0xc7, 0x20, 0xee,
+ 0x6e, 0x4a, 0xc1, 0x00,
+};
+static const unsigned char kat1476_addinreseed[] = {0};
+static const unsigned char kat1476_addin0[] = {0};
+static const unsigned char kat1476_addin1[] = {0};
+static const unsigned char kat1476_retbits[] = {
+ 0x05, 0x12, 0x43, 0x20, 0xc6, 0xdf, 0xdb, 0x80, 0x34, 0x41, 0xe7, 0x9c,
+ 0xc9, 0x7e, 0x85, 0xf3, 0x06, 0x6b, 0x49, 0xc0, 0x45, 0x42, 0xeb, 0xd3,
+ 0xfd, 0x7b, 0xb1, 0x05, 0x31, 0x9b, 0x24, 0x4c, 0xed, 0x54, 0x9f, 0x0d,
+ 0x69, 0xca, 0x46, 0xbb, 0x3a, 0x7b, 0xef, 0x33, 0x85, 0x45, 0x21, 0xdd,
+ 0x8e, 0x82, 0x9c, 0xcb, 0x63, 0x20, 0xbf, 0xb1, 0x0d, 0x0b, 0x3e, 0xc2,
+ 0xa1, 0x88, 0x15, 0xb3,
+};
+static const struct drbg_kat_pr_false kat1476_t = {
+ 5, kat1476_entropyin, kat1476_nonce, kat1476_persstr,
+ kat1476_entropyinreseed, kat1476_addinreseed, kat1476_addin0,
+ kat1476_addin1, kat1476_retbits
+};
+static const struct drbg_kat kat1476 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1476_t
+};
+
+static const unsigned char kat1477_entropyin[] = {
+ 0x60, 0xfd, 0xf3, 0x42, 0x4d, 0x6c, 0xe2, 0x29, 0xc8, 0x77, 0x3e, 0xbe,
+ 0xa2, 0xa7, 0x2f, 0xb0,
+};
+static const unsigned char kat1477_nonce[] = {
+ 0x0b, 0x62, 0x80, 0xf6, 0x78, 0xbb, 0xfe, 0xaa,
+};
+static const unsigned char kat1477_persstr[] = {
+ 0xf3, 0x9e, 0x34, 0x76, 0x35, 0x5c, 0xae, 0x16, 0x0a, 0xaf, 0x29, 0x68,
+ 0x28, 0x7e, 0xb9, 0x38,
+};
+static const unsigned char kat1477_entropyinreseed[] = {
+ 0x41, 0x51, 0x27, 0xca, 0x26, 0xbd, 0xa6, 0xe2, 0xc2, 0x88, 0xa4, 0xc0,
+ 0xf5, 0x15, 0xfb, 0x16,
+};
+static const unsigned char kat1477_addinreseed[] = {0};
+static const unsigned char kat1477_addin0[] = {0};
+static const unsigned char kat1477_addin1[] = {0};
+static const unsigned char kat1477_retbits[] = {
+ 0x9c, 0x07, 0xcc, 0xd7, 0xd3, 0x9f, 0xe9, 0xe5, 0xf2, 0x19, 0x87, 0xba,
+ 0x48, 0x2c, 0x2d, 0x97, 0xd7, 0x79, 0x81, 0x18, 0xf5, 0xb5, 0x93, 0x6a,
+ 0xd1, 0xd9, 0x87, 0x04, 0x4a, 0xa7, 0x9e, 0xd4, 0xf3, 0x68, 0x34, 0x29,
+ 0xd6, 0x2a, 0x2c, 0xff, 0xb8, 0x0c, 0xdb, 0xa7, 0xe0, 0xad, 0xb8, 0x00,
+ 0xed, 0x6f, 0x8e, 0x99, 0x23, 0xbb, 0x4b, 0x91, 0x8a, 0x1e, 0xb5, 0xc9,
+ 0x23, 0x68, 0xc1, 0x51,
+};
+static const struct drbg_kat_pr_false kat1477_t = {
+ 6, kat1477_entropyin, kat1477_nonce, kat1477_persstr,
+ kat1477_entropyinreseed, kat1477_addinreseed, kat1477_addin0,
+ kat1477_addin1, kat1477_retbits
+};
+static const struct drbg_kat kat1477 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1477_t
+};
+
+static const unsigned char kat1478_entropyin[] = {
+ 0xa4, 0x9b, 0xeb, 0x27, 0xf8, 0xe2, 0x33, 0x33, 0x21, 0x86, 0x92, 0x2f,
+ 0x3b, 0x20, 0xea, 0xac,
+};
+static const unsigned char kat1478_nonce[] = {
+ 0xbe, 0xa2, 0x4f, 0x9a, 0x50, 0x12, 0x69, 0x2a,
+};
+static const unsigned char kat1478_persstr[] = {
+ 0x11, 0x50, 0x45, 0xea, 0x5b, 0x7a, 0x6f, 0x7f, 0xf6, 0x89, 0x41, 0x88,
+ 0x29, 0x8e, 0xd2, 0x79,
+};
+static const unsigned char kat1478_entropyinreseed[] = {
+ 0xd2, 0x73, 0xac, 0xa1, 0xb2, 0x1e, 0x79, 0x27, 0xee, 0xcd, 0xc0, 0x23,
+ 0xf0, 0x40, 0x2a, 0x3e,
+};
+static const unsigned char kat1478_addinreseed[] = {0};
+static const unsigned char kat1478_addin0[] = {0};
+static const unsigned char kat1478_addin1[] = {0};
+static const unsigned char kat1478_retbits[] = {
+ 0x39, 0xb2, 0x34, 0x85, 0xd8, 0x26, 0xc7, 0xf5, 0xce, 0xd4, 0x23, 0x1e,
+ 0xf9, 0xb1, 0xa1, 0xe8, 0x6c, 0x3d, 0xe1, 0x91, 0xc4, 0xc2, 0x49, 0x28,
+ 0x3e, 0x61, 0x20, 0xbf, 0x55, 0x24, 0xa4, 0xe4, 0x26, 0x15, 0x3d, 0xa7,
+ 0x6e, 0x09, 0x88, 0x07, 0xda, 0x0d, 0x75, 0x33, 0x9d, 0x3c, 0x02, 0x0c,
+ 0x4f, 0x14, 0x84, 0x2e, 0x60, 0x49, 0x0c, 0x6f, 0x44, 0xe9, 0x28, 0x3d,
+ 0xf6, 0xbf, 0x28, 0xb8,
+};
+static const struct drbg_kat_pr_false kat1478_t = {
+ 7, kat1478_entropyin, kat1478_nonce, kat1478_persstr,
+ kat1478_entropyinreseed, kat1478_addinreseed, kat1478_addin0,
+ kat1478_addin1, kat1478_retbits
+};
+static const struct drbg_kat kat1478 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1478_t
+};
+
+static const unsigned char kat1479_entropyin[] = {
+ 0x1b, 0x2f, 0xc3, 0xee, 0xc1, 0x16, 0xb5, 0x55, 0x99, 0x64, 0xd6, 0xd2,
+ 0x65, 0x3d, 0x66, 0xc6,
+};
+static const unsigned char kat1479_nonce[] = {
+ 0x6e, 0x04, 0x94, 0x1d, 0xde, 0xf5, 0x6e, 0x69,
+};
+static const unsigned char kat1479_persstr[] = {
+ 0x68, 0xbe, 0x57, 0x97, 0x4c, 0x6c, 0x74, 0xc1, 0xc5, 0xbe, 0x0d, 0xa1,
+ 0xc6, 0x36, 0x0e, 0x30,
+};
+static const unsigned char kat1479_entropyinreseed[] = {
+ 0xe4, 0x93, 0xc7, 0xd9, 0x91, 0xd0, 0x43, 0x0f, 0x93, 0xc2, 0x0a, 0xe0,
+ 0xfb, 0x15, 0xa1, 0x66,
+};
+static const unsigned char kat1479_addinreseed[] = {0};
+static const unsigned char kat1479_addin0[] = {0};
+static const unsigned char kat1479_addin1[] = {0};
+static const unsigned char kat1479_retbits[] = {
+ 0x27, 0x94, 0x9a, 0x3d, 0xc0, 0x5a, 0xba, 0x02, 0xa6, 0x24, 0xae, 0x00,
+ 0x2c, 0x45, 0xa7, 0x9a, 0x65, 0xcf, 0x60, 0x40, 0xac, 0xca, 0x61, 0xa0,
+ 0xbd, 0x5f, 0x2e, 0xf0, 0x6a, 0x9c, 0xf6, 0xf8, 0x24, 0xa0, 0x66, 0x65,
+ 0x6c, 0x1b, 0x6a, 0xac, 0x65, 0x9e, 0xe7, 0xa9, 0xd3, 0x30, 0x80, 0x50,
+ 0xcc, 0x87, 0x63, 0xd9, 0x1e, 0x48, 0xd1, 0x9d, 0xc1, 0xdf, 0x20, 0xaf,
+ 0x14, 0x92, 0x65, 0x23,
+};
+static const struct drbg_kat_pr_false kat1479_t = {
+ 8, kat1479_entropyin, kat1479_nonce, kat1479_persstr,
+ kat1479_entropyinreseed, kat1479_addinreseed, kat1479_addin0,
+ kat1479_addin1, kat1479_retbits
+};
+static const struct drbg_kat kat1479 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1479_t
+};
+
+static const unsigned char kat1480_entropyin[] = {
+ 0xaf, 0x51, 0xc4, 0xb1, 0xb4, 0xbd, 0x21, 0x19, 0xe0, 0xb4, 0x93, 0x11,
+ 0x27, 0x9b, 0xbe, 0xc0,
+};
+static const unsigned char kat1480_nonce[] = {
+ 0x41, 0x94, 0xf0, 0x0b, 0xb0, 0xcd, 0x83, 0xc7,
+};
+static const unsigned char kat1480_persstr[] = {
+ 0xfd, 0x05, 0x2b, 0xfd, 0x73, 0xfe, 0x71, 0x2f, 0x4a, 0x06, 0x9d, 0x2b,
+ 0xc1, 0xdc, 0x4b, 0xc7,
+};
+static const unsigned char kat1480_entropyinreseed[] = {
+ 0xc1, 0x40, 0xc4, 0xce, 0x45, 0xbf, 0x3b, 0xfd, 0x0a, 0x47, 0x3e, 0x57,
+ 0x54, 0x35, 0x5b, 0x0a,
+};
+static const unsigned char kat1480_addinreseed[] = {0};
+static const unsigned char kat1480_addin0[] = {0};
+static const unsigned char kat1480_addin1[] = {0};
+static const unsigned char kat1480_retbits[] = {
+ 0x68, 0x58, 0xd2, 0x63, 0x42, 0x14, 0xa4, 0x6e, 0xc0, 0x77, 0xf8, 0x6e,
+ 0x66, 0x7b, 0x6f, 0x3c, 0x48, 0x2c, 0x79, 0x73, 0x67, 0xae, 0x01, 0xd5,
+ 0x0f, 0xc0, 0x18, 0x38, 0x87, 0xff, 0x9b, 0xac, 0x32, 0x93, 0xce, 0x67,
+ 0x64, 0x3b, 0xe1, 0x46, 0xb8, 0x6d, 0xfb, 0x09, 0x3a, 0x57, 0x18, 0xab,
+ 0x8c, 0x12, 0xf7, 0x13, 0xef, 0x0c, 0xea, 0x0d, 0x04, 0x95, 0x8c, 0xe7,
+ 0xa8, 0xd8, 0x77, 0x7b,
+};
+static const struct drbg_kat_pr_false kat1480_t = {
+ 9, kat1480_entropyin, kat1480_nonce, kat1480_persstr,
+ kat1480_entropyinreseed, kat1480_addinreseed, kat1480_addin0,
+ kat1480_addin1, kat1480_retbits
+};
+static const struct drbg_kat kat1480 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1480_t
+};
+
+static const unsigned char kat1481_entropyin[] = {
+ 0xfb, 0x70, 0xa8, 0x06, 0x5e, 0xae, 0x00, 0x62, 0x70, 0x17, 0x90, 0x98,
+ 0xa6, 0xb6, 0x7e, 0xea,
+};
+static const unsigned char kat1481_nonce[] = {
+ 0xbc, 0x00, 0x01, 0xc0, 0xde, 0x38, 0x7f, 0x1d,
+};
+static const unsigned char kat1481_persstr[] = {
+ 0x80, 0x4f, 0x5f, 0x90, 0xbf, 0x5a, 0x4d, 0x7a, 0x99, 0xf8, 0x50, 0xb8,
+ 0x82, 0xbc, 0x70, 0x01,
+};
+static const unsigned char kat1481_entropyinreseed[] = {
+ 0xab, 0xc7, 0x7b, 0x6f, 0x10, 0xd0, 0xa8, 0x94, 0x52, 0xe0, 0x63, 0xfe,
+ 0x97, 0xf4, 0x00, 0x0a,
+};
+static const unsigned char kat1481_addinreseed[] = {0};
+static const unsigned char kat1481_addin0[] = {0};
+static const unsigned char kat1481_addin1[] = {0};
+static const unsigned char kat1481_retbits[] = {
+ 0xb9, 0xf6, 0xf5, 0x1d, 0x0d, 0xe5, 0xff, 0xa1, 0xfd, 0x42, 0xef, 0x9a,
+ 0x7a, 0xd2, 0xe6, 0x02, 0x01, 0xdc, 0x3e, 0x4b, 0x15, 0x53, 0x63, 0x64,
+ 0xc1, 0xbb, 0xea, 0x2f, 0xcd, 0x7c, 0x35, 0xa7, 0x7f, 0xb8, 0x24, 0xbd,
+ 0xdc, 0x67, 0xa6, 0x90, 0xac, 0x51, 0xdc, 0x2e, 0x34, 0xcb, 0x7e, 0xfe,
+ 0x9f, 0x61, 0xd5, 0xd6, 0xd0, 0x09, 0xd9, 0x61, 0xc6, 0x61, 0xde, 0x44,
+ 0xb9, 0x8a, 0x5e, 0x98,
+};
+static const struct drbg_kat_pr_false kat1481_t = {
+ 10, kat1481_entropyin, kat1481_nonce, kat1481_persstr,
+ kat1481_entropyinreseed, kat1481_addinreseed, kat1481_addin0,
+ kat1481_addin1, kat1481_retbits
+};
+static const struct drbg_kat kat1481 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1481_t
+};
+
+static const unsigned char kat1482_entropyin[] = {
+ 0x92, 0x84, 0x7e, 0x86, 0xe6, 0x56, 0xeb, 0x7f, 0x90, 0xde, 0x26, 0x66,
+ 0xba, 0x07, 0xd9, 0xfd,
+};
+static const unsigned char kat1482_nonce[] = {
+ 0xb7, 0x1f, 0x25, 0x1d, 0x20, 0x6c, 0xcf, 0x6c,
+};
+static const unsigned char kat1482_persstr[] = {
+ 0x74, 0xba, 0x97, 0x24, 0xa8, 0xe8, 0xc9, 0xe9, 0x98, 0xca, 0x49, 0x6d,
+ 0x35, 0x92, 0xbd, 0x99,
+};
+static const unsigned char kat1482_entropyinreseed[] = {
+ 0xae, 0xed, 0x26, 0x0b, 0x73, 0x0d, 0x8f, 0x32, 0xaa, 0xeb, 0x0d, 0x9b,
+ 0xe7, 0x97, 0x83, 0x5a,
+};
+static const unsigned char kat1482_addinreseed[] = {0};
+static const unsigned char kat1482_addin0[] = {0};
+static const unsigned char kat1482_addin1[] = {0};
+static const unsigned char kat1482_retbits[] = {
+ 0xf6, 0xa2, 0x5d, 0x68, 0xea, 0xee, 0xbf, 0x57, 0xd2, 0xd8, 0x70, 0xc8,
+ 0x17, 0x81, 0x90, 0x5c, 0xcc, 0x69, 0xef, 0x7f, 0x84, 0xf0, 0x2c, 0x7f,
+ 0xfa, 0xf9, 0x86, 0x8c, 0x08, 0xa0, 0xe4, 0x43, 0xff, 0xf0, 0x19, 0xc7,
+ 0xb7, 0xb6, 0x49, 0xfc, 0x50, 0xf0, 0xe4, 0xa9, 0x5c, 0x25, 0xeb, 0xcd,
+ 0x86, 0xf9, 0x4c, 0x84, 0x03, 0xc8, 0xa7, 0x86, 0x19, 0x70, 0x94, 0x62,
+ 0x6a, 0x98, 0xa8, 0xa3,
+};
+static const struct drbg_kat_pr_false kat1482_t = {
+ 11, kat1482_entropyin, kat1482_nonce, kat1482_persstr,
+ kat1482_entropyinreseed, kat1482_addinreseed, kat1482_addin0,
+ kat1482_addin1, kat1482_retbits
+};
+static const struct drbg_kat kat1482 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1482_t
+};
+
+static const unsigned char kat1483_entropyin[] = {
+ 0x29, 0x7e, 0xfb, 0x11, 0x18, 0x09, 0x93, 0x9e, 0xde, 0xbc, 0xdf, 0x93,
+ 0x71, 0xcf, 0x32, 0xd2,
+};
+static const unsigned char kat1483_nonce[] = {
+ 0xb3, 0x3f, 0x34, 0x05, 0x3d, 0xb7, 0xc9, 0xf0,
+};
+static const unsigned char kat1483_persstr[] = {
+ 0xd3, 0x79, 0x9c, 0x84, 0xd3, 0x15, 0x90, 0xfb, 0xd0, 0xd3, 0xc4, 0xec,
+ 0xe3, 0x68, 0x0e, 0x33,
+};
+static const unsigned char kat1483_entropyinreseed[] = {
+ 0xc5, 0xfe, 0x86, 0xee, 0x68, 0xe4, 0x59, 0xca, 0x3b, 0x06, 0xe4, 0x45,
+ 0xea, 0x5e, 0x0b, 0x2f,
+};
+static const unsigned char kat1483_addinreseed[] = {0};
+static const unsigned char kat1483_addin0[] = {0};
+static const unsigned char kat1483_addin1[] = {0};
+static const unsigned char kat1483_retbits[] = {
+ 0xb1, 0x83, 0x5e, 0xef, 0x69, 0xd5, 0x40, 0x6c, 0x36, 0x48, 0x45, 0x03,
+ 0x07, 0xae, 0x27, 0xd3, 0x92, 0xbd, 0xd4, 0x4a, 0x0f, 0xa7, 0xa7, 0x0a,
+ 0xf6, 0xc3, 0x02, 0xab, 0x1c, 0x3c, 0x3c, 0xc7, 0xc6, 0x81, 0xe1, 0x90,
+ 0x76, 0x7a, 0x38, 0xc3, 0xff, 0x6b, 0x68, 0x7f, 0x3e, 0xe1, 0x2f, 0x85,
+ 0x55, 0xa9, 0xd2, 0xb4, 0x69, 0x65, 0x85, 0xf1, 0xc8, 0x11, 0xd1, 0x32,
+ 0x94, 0x30, 0xa5, 0x1b,
+};
+static const struct drbg_kat_pr_false kat1483_t = {
+ 12, kat1483_entropyin, kat1483_nonce, kat1483_persstr,
+ kat1483_entropyinreseed, kat1483_addinreseed, kat1483_addin0,
+ kat1483_addin1, kat1483_retbits
+};
+static const struct drbg_kat kat1483 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1483_t
+};
+
+static const unsigned char kat1484_entropyin[] = {
+ 0xed, 0x8b, 0x28, 0xfc, 0x95, 0x03, 0x6e, 0x5e, 0x61, 0x86, 0x95, 0xe4,
+ 0x90, 0xb7, 0x25, 0x6c,
+};
+static const unsigned char kat1484_nonce[] = {
+ 0xb9, 0x95, 0xe7, 0xc1, 0xa8, 0x8d, 0x09, 0xce,
+};
+static const unsigned char kat1484_persstr[] = {
+ 0xa4, 0x3e, 0x37, 0x08, 0x74, 0x4c, 0x8a, 0x7c, 0x5f, 0xea, 0xbe, 0x66,
+ 0xc2, 0x5c, 0x81, 0xf1,
+};
+static const unsigned char kat1484_entropyinreseed[] = {
+ 0xa2, 0xa5, 0x98, 0x98, 0xf4, 0x53, 0xe6, 0x3f, 0xc6, 0x46, 0xaf, 0x13,
+ 0x48, 0x53, 0xe9, 0xac,
+};
+static const unsigned char kat1484_addinreseed[] = {0};
+static const unsigned char kat1484_addin0[] = {0};
+static const unsigned char kat1484_addin1[] = {0};
+static const unsigned char kat1484_retbits[] = {
+ 0xff, 0xff, 0x0f, 0x15, 0x91, 0xaa, 0x10, 0x4b, 0xa8, 0xc5, 0x52, 0xda,
+ 0x01, 0xc8, 0x70, 0xc5, 0x1f, 0x7d, 0xc2, 0xa1, 0xcc, 0x22, 0x30, 0x05,
+ 0x08, 0xcb, 0x4f, 0x63, 0x10, 0x19, 0x45, 0x75, 0x09, 0x9a, 0xa4, 0xab,
+ 0xe7, 0xf2, 0x91, 0x87, 0x31, 0x66, 0x73, 0x94, 0xda, 0x8b, 0x79, 0xae,
+ 0x14, 0x7c, 0xaf, 0x38, 0x9f, 0x43, 0x96, 0xb5, 0xba, 0xa8, 0x8f, 0x19,
+ 0x17, 0xb6, 0x16, 0xf6,
+};
+static const struct drbg_kat_pr_false kat1484_t = {
+ 13, kat1484_entropyin, kat1484_nonce, kat1484_persstr,
+ kat1484_entropyinreseed, kat1484_addinreseed, kat1484_addin0,
+ kat1484_addin1, kat1484_retbits
+};
+static const struct drbg_kat kat1484 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1484_t
+};
+
+static const unsigned char kat1485_entropyin[] = {
+ 0x74, 0x30, 0xa6, 0x58, 0x60, 0x82, 0x13, 0x04, 0x5e, 0x4c, 0xcc, 0x24,
+ 0xa0, 0x56, 0x8e, 0xf3,
+};
+static const unsigned char kat1485_nonce[] = {
+ 0x3f, 0xd7, 0x7a, 0xd5, 0xb3, 0x6f, 0x25, 0x54,
+};
+static const unsigned char kat1485_persstr[] = {
+ 0xc1, 0xad, 0x90, 0x31, 0xef, 0xb0, 0xfc, 0x15, 0x36, 0x15, 0x43, 0x3f,
+ 0xbb, 0xa1, 0x08, 0x7f,
+};
+static const unsigned char kat1485_entropyinreseed[] = {
+ 0xae, 0xca, 0x96, 0x70, 0x0a, 0x3d, 0x66, 0x46, 0x7b, 0x25, 0x61, 0xa3,
+ 0x07, 0x7e, 0x6f, 0x72,
+};
+static const unsigned char kat1485_addinreseed[] = {0};
+static const unsigned char kat1485_addin0[] = {0};
+static const unsigned char kat1485_addin1[] = {0};
+static const unsigned char kat1485_retbits[] = {
+ 0xc4, 0xb2, 0x48, 0xc1, 0x8f, 0xa8, 0x38, 0xac, 0xec, 0xdf, 0x9c, 0xc3,
+ 0x36, 0x35, 0x00, 0x9c, 0x19, 0x88, 0x5b, 0x86, 0xb7, 0xd1, 0xf6, 0x5c,
+ 0x06, 0xda, 0xb9, 0x06, 0x30, 0x4d, 0xa6, 0x9f, 0x43, 0x70, 0xac, 0x8f,
+ 0xc8, 0x3e, 0x4b, 0x47, 0x21, 0xc0, 0x73, 0x51, 0xa2, 0x18, 0xaf, 0xcd,
+ 0xaf, 0x30, 0xd4, 0x70, 0x63, 0x24, 0x58, 0x9b, 0xf9, 0x18, 0xbe, 0x20,
+ 0xb4, 0xdb, 0xbe, 0x3a,
+};
+static const struct drbg_kat_pr_false kat1485_t = {
+ 14, kat1485_entropyin, kat1485_nonce, kat1485_persstr,
+ kat1485_entropyinreseed, kat1485_addinreseed, kat1485_addin0,
+ kat1485_addin1, kat1485_retbits
+};
+static const struct drbg_kat kat1485 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1485_t
+};
+
+static const unsigned char kat1486_entropyin[] = {
+ 0xe1, 0x4e, 0xd7, 0x06, 0x4a, 0x97, 0x81, 0x4d, 0xd3, 0x26, 0xb9, 0xa0,
+ 0x5b, 0xc4, 0x45, 0x43,
+};
+static const unsigned char kat1486_nonce[] = {
+ 0x87, 0x62, 0x40, 0xc1, 0xf7, 0xde, 0x3d, 0xba,
+};
+static const unsigned char kat1486_persstr[] = {
+ 0x26, 0xcc, 0xf5, 0x68, 0x48, 0xa0, 0x48, 0x72, 0x1d, 0x0a, 0xad, 0x87,
+ 0xd6, 0xfc, 0x65, 0xf0,
+};
+static const unsigned char kat1486_entropyinreseed[] = {
+ 0x7e, 0xc4, 0xac, 0x66, 0x0f, 0xa0, 0xbb, 0xfa, 0x66, 0xac, 0x38, 0x02,
+ 0xe5, 0x11, 0x90, 0x1f,
+};
+static const unsigned char kat1486_addinreseed[] = {
+ 0x88, 0x35, 0xd2, 0x8e, 0x7f, 0x85, 0xa4, 0xe9, 0x50, 0x87, 0xbd, 0xd1,
+ 0xbb, 0x7a, 0xd5, 0x7e,
+};
+static const unsigned char kat1486_addin0[] = {
+ 0x2a, 0x9b, 0xd5, 0x0b, 0xbb, 0x20, 0xfe, 0xfe, 0x24, 0x64, 0x9f, 0x5f,
+ 0x80, 0xee, 0xde, 0x66,
+};
+static const unsigned char kat1486_addin1[] = {
+ 0xf7, 0xce, 0x3d, 0x5c, 0x6c, 0x38, 0x1e, 0x56, 0xb2, 0x54, 0x10, 0xc6,
+ 0x90, 0x9c, 0x10, 0x74,
+};
+static const unsigned char kat1486_retbits[] = {
+ 0xd2, 0xf3, 0x13, 0x0d, 0x30, 0x9b, 0xed, 0x1d, 0xa6, 0x55, 0x45, 0xb9,
+ 0xd7, 0x93, 0xe0, 0x35, 0xfd, 0x25, 0x64, 0x30, 0x3d, 0x1f, 0xdc, 0xfb,
+ 0x6c, 0x7f, 0xee, 0x01, 0x95, 0x00, 0xd9, 0xf5, 0xd4, 0x34, 0xfa, 0xb2,
+ 0xd3, 0xc8, 0xd1, 0x5e, 0x39, 0xa2, 0x5f, 0x96, 0x5a, 0xaa, 0x80, 0x4c,
+ 0x71, 0x41, 0x40, 0x7e, 0x90, 0xc4, 0xa8, 0x6a, 0x6c, 0x8d, 0x30, 0x3c,
+ 0xe8, 0x3b, 0xfb, 0x34,
+};
+static const struct drbg_kat_pr_false kat1486_t = {
+ 0, kat1486_entropyin, kat1486_nonce, kat1486_persstr,
+ kat1486_entropyinreseed, kat1486_addinreseed, kat1486_addin0,
+ kat1486_addin1, kat1486_retbits
+};
+static const struct drbg_kat kat1486 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1486_t
+};
+
+static const unsigned char kat1487_entropyin[] = {
+ 0x4d, 0x61, 0xd9, 0x17, 0xe5, 0xb7, 0x15, 0x65, 0xd2, 0x7c, 0xb8, 0xbc,
+ 0xe5, 0x26, 0x6e, 0x84,
+};
+static const unsigned char kat1487_nonce[] = {
+ 0xf1, 0x01, 0x50, 0xae, 0x95, 0xcc, 0x14, 0xdd,
+};
+static const unsigned char kat1487_persstr[] = {
+ 0x85, 0x5b, 0x14, 0x54, 0x5d, 0xab, 0x54, 0xe7, 0x35, 0x93, 0x92, 0xd2,
+ 0xbd, 0x05, 0x08, 0xfc,
+};
+static const unsigned char kat1487_entropyinreseed[] = {
+ 0xdf, 0xe0, 0x1d, 0xe7, 0x86, 0xb4, 0xbd, 0xff, 0xcb, 0xfa, 0x47, 0xf1,
+ 0x3a, 0xb7, 0x5b, 0xd9,
+};
+static const unsigned char kat1487_addinreseed[] = {
+ 0x8b, 0x0f, 0x5f, 0x42, 0xaa, 0x8a, 0x84, 0xc2, 0x4d, 0x11, 0xa0, 0x23,
+ 0xaa, 0x28, 0x8a, 0x89,
+};
+static const unsigned char kat1487_addin0[] = {
+ 0xbf, 0x32, 0xbd, 0xe3, 0xc5, 0xbb, 0xe4, 0xed, 0xdd, 0x4e, 0x5c, 0x33,
+ 0x09, 0xb8, 0x7e, 0x7d,
+};
+static const unsigned char kat1487_addin1[] = {
+ 0x7e, 0xe1, 0xee, 0xbb, 0x46, 0x0f, 0xa1, 0x82, 0x1a, 0xb5, 0x94, 0x07,
+ 0xf0, 0xb7, 0x29, 0x1c,
+};
+static const unsigned char kat1487_retbits[] = {
+ 0xfb, 0x92, 0xc1, 0xe9, 0x10, 0x58, 0x9a, 0xcf, 0xda, 0x9a, 0xda, 0xbe,
+ 0x59, 0x21, 0x4e, 0x02, 0x7b, 0xc4, 0x4f, 0xcb, 0xc0, 0xfe, 0xa5, 0xf2,
+ 0x31, 0xf2, 0xe9, 0xb9, 0x23, 0x6d, 0x3b, 0x87, 0x2e, 0x4b, 0x9d, 0x87,
+ 0x90, 0x7c, 0x41, 0xef, 0x71, 0xf0, 0x41, 0xa5, 0x2e, 0xb8, 0x26, 0xa3,
+ 0x8b, 0xd4, 0x4f, 0xa1, 0x5f, 0x60, 0x95, 0xe4, 0x1b, 0x3f, 0xf3, 0x02,
+ 0x61, 0xa6, 0xe7, 0xc6,
+};
+static const struct drbg_kat_pr_false kat1487_t = {
+ 1, kat1487_entropyin, kat1487_nonce, kat1487_persstr,
+ kat1487_entropyinreseed, kat1487_addinreseed, kat1487_addin0,
+ kat1487_addin1, kat1487_retbits
+};
+static const struct drbg_kat kat1487 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1487_t
+};
+
+static const unsigned char kat1488_entropyin[] = {
+ 0x89, 0xfa, 0x82, 0xad, 0xdf, 0xc9, 0x39, 0x96, 0x5a, 0xba, 0x18, 0x49,
+ 0x4c, 0xd5, 0x29, 0x9a,
+};
+static const unsigned char kat1488_nonce[] = {
+ 0x30, 0x5c, 0x4c, 0x0a, 0xd7, 0x86, 0x58, 0x6c,
+};
+static const unsigned char kat1488_persstr[] = {
+ 0x62, 0x5c, 0xf5, 0xf4, 0x4f, 0x83, 0x2b, 0x3b, 0xdb, 0xb6, 0x9a, 0x4e,
+ 0x9a, 0xf2, 0xb1, 0x77,
+};
+static const unsigned char kat1488_entropyinreseed[] = {
+ 0x27, 0x38, 0xf5, 0xda, 0x3c, 0x5a, 0xc9, 0x9d, 0x91, 0x83, 0x3a, 0x02,
+ 0xa9, 0xdd, 0x9d, 0x4c,
+};
+static const unsigned char kat1488_addinreseed[] = {
+ 0x49, 0xeb, 0xb2, 0xfb, 0xa3, 0xfe, 0x7c, 0x3e, 0x1e, 0x7b, 0xff, 0x95,
+ 0x74, 0x03, 0x75, 0x62,
+};
+static const unsigned char kat1488_addin0[] = {
+ 0xc5, 0xff, 0x2c, 0xc8, 0xb8, 0xaf, 0x7b, 0xbc, 0x9a, 0xda, 0x35, 0xa3,
+ 0x98, 0x03, 0xd4, 0xd2,
+};
+static const unsigned char kat1488_addin1[] = {
+ 0xfe, 0x0d, 0x79, 0x86, 0x01, 0xca, 0x1f, 0x49, 0xec, 0xc5, 0xd2, 0x1f,
+ 0xb3, 0x89, 0x32, 0xfd,
+};
+static const unsigned char kat1488_retbits[] = {
+ 0x3a, 0x95, 0x58, 0xf2, 0xf4, 0xc5, 0x48, 0x13, 0xc4, 0xe4, 0x62, 0x25,
+ 0x0b, 0xab, 0xcc, 0x80, 0xf7, 0x5a, 0x4c, 0x54, 0x86, 0xa8, 0x1c, 0x76,
+ 0xbf, 0x18, 0x7d, 0x92, 0x40, 0xa6, 0xe4, 0x36, 0x4e, 0xe5, 0xae, 0x0b,
+ 0x9d, 0xe5, 0x3a, 0xcf, 0xb1, 0x45, 0x28, 0xa0, 0x53, 0x9f, 0x50, 0x0c,
+ 0x67, 0xf0, 0x37, 0x2d, 0xa8, 0xd6, 0x1e, 0x70, 0xb7, 0x7a, 0x4a, 0xd4,
+ 0x47, 0x8b, 0x3f, 0xda,
+};
+static const struct drbg_kat_pr_false kat1488_t = {
+ 2, kat1488_entropyin, kat1488_nonce, kat1488_persstr,
+ kat1488_entropyinreseed, kat1488_addinreseed, kat1488_addin0,
+ kat1488_addin1, kat1488_retbits
+};
+static const struct drbg_kat kat1488 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1488_t
+};
+
+static const unsigned char kat1489_entropyin[] = {
+ 0x01, 0xd4, 0x95, 0x86, 0x0e, 0x54, 0x6e, 0x69, 0x66, 0x84, 0xf2, 0x79,
+ 0x5c, 0x18, 0x27, 0x77,
+};
+static const unsigned char kat1489_nonce[] = {
+ 0x20, 0x3f, 0x78, 0x98, 0x74, 0x6c, 0xeb, 0x65,
+};
+static const unsigned char kat1489_persstr[] = {
+ 0x1d, 0xd5, 0xa0, 0xd8, 0x86, 0x91, 0x64, 0x32, 0x3d, 0xd7, 0x8b, 0x46,
+ 0x86, 0xd5, 0x01, 0x25,
+};
+static const unsigned char kat1489_entropyinreseed[] = {
+ 0x52, 0xf8, 0x05, 0x7f, 0x5d, 0x91, 0x3b, 0xcc, 0xff, 0xba, 0xc8, 0x1b,
+ 0xa8, 0xd8, 0x4c, 0xb2,
+};
+static const unsigned char kat1489_addinreseed[] = {
+ 0xb2, 0x00, 0xd3, 0xe4, 0xd9, 0x30, 0xe9, 0x51, 0xe0, 0xc4, 0x79, 0x44,
+ 0x65, 0x54, 0x04, 0x34,
+};
+static const unsigned char kat1489_addin0[] = {
+ 0xe8, 0x1c, 0xc7, 0xec, 0x3a, 0xf3, 0xea, 0x3a, 0x32, 0x16, 0x45, 0x16,
+ 0x05, 0xd9, 0xa8, 0x21,
+};
+static const unsigned char kat1489_addin1[] = {
+ 0x04, 0xaa, 0x31, 0x1f, 0x7c, 0x20, 0x9c, 0xb1, 0x9c, 0x29, 0x84, 0xbf,
+ 0xe2, 0xfa, 0x48, 0xbb,
+};
+static const unsigned char kat1489_retbits[] = {
+ 0xdf, 0x2e, 0x12, 0x58, 0xc4, 0xe1, 0x9d, 0xbf, 0x1a, 0x01, 0xa0, 0x2a,
+ 0x45, 0x24, 0xa6, 0x23, 0xf6, 0x94, 0x33, 0x34, 0x5b, 0x34, 0xcf, 0xa7,
+ 0xdc, 0x9f, 0x82, 0x80, 0xaa, 0x8d, 0x88, 0x8e, 0x0d, 0x7c, 0x47, 0x7e,
+ 0x4e, 0xf9, 0xd2, 0x66, 0x26, 0xbf, 0x6b, 0xb9, 0x21, 0xf0, 0x4b, 0x42,
+ 0xe3, 0xf1, 0xfd, 0xfd, 0x07, 0xa9, 0x33, 0x92, 0x2e, 0x5e, 0x40, 0x1d,
+ 0x46, 0xe6, 0xbc, 0xf1,
+};
+static const struct drbg_kat_pr_false kat1489_t = {
+ 3, kat1489_entropyin, kat1489_nonce, kat1489_persstr,
+ kat1489_entropyinreseed, kat1489_addinreseed, kat1489_addin0,
+ kat1489_addin1, kat1489_retbits
+};
+static const struct drbg_kat kat1489 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1489_t
+};
+
+static const unsigned char kat1490_entropyin[] = {
+ 0xd9, 0x6b, 0xf7, 0x4b, 0x08, 0x5d, 0x53, 0x25, 0x1e, 0x2b, 0xab, 0x12,
+ 0x5e, 0x46, 0x60, 0xb1,
+};
+static const unsigned char kat1490_nonce[] = {
+ 0x9a, 0x24, 0x0c, 0xaa, 0x05, 0x5e, 0x8c, 0xff,
+};
+static const unsigned char kat1490_persstr[] = {
+ 0x16, 0x4b, 0x91, 0x37, 0x2e, 0x9d, 0xd0, 0xd4, 0xc6, 0xa0, 0xb8, 0x40,
+ 0xb5, 0xb9, 0x87, 0x45,
+};
+static const unsigned char kat1490_entropyinreseed[] = {
+ 0xa0, 0x76, 0x45, 0x09, 0x3e, 0xc9, 0x58, 0x3b, 0x3b, 0xc7, 0xb4, 0x5d,
+ 0x56, 0xda, 0xee, 0x6f,
+};
+static const unsigned char kat1490_addinreseed[] = {
+ 0xde, 0xd2, 0x61, 0xa7, 0xc1, 0x09, 0xe1, 0xfe, 0x0d, 0xb0, 0x91, 0x81,
+ 0x96, 0x2a, 0x9b, 0x6f,
+};
+static const unsigned char kat1490_addin0[] = {
+ 0xe1, 0xe6, 0x73, 0xd0, 0xf5, 0x52, 0xf0, 0x15, 0xa9, 0x00, 0x67, 0xd1,
+ 0x23, 0x16, 0x21, 0x4a,
+};
+static const unsigned char kat1490_addin1[] = {
+ 0x59, 0xb6, 0xd6, 0x68, 0x1b, 0x9a, 0xf4, 0x3c, 0xa6, 0x4e, 0x71, 0x0c,
+ 0xd8, 0x1b, 0x5d, 0x36,
+};
+static const unsigned char kat1490_retbits[] = {
+ 0xb2, 0x7f, 0x08, 0xc1, 0x2b, 0xb8, 0xbe, 0xe5, 0x0b, 0xf4, 0xda, 0x1b,
+ 0xbb, 0x87, 0x04, 0xec, 0x9b, 0x38, 0x3d, 0xf8, 0x45, 0x16, 0x76, 0x4d,
+ 0xff, 0x13, 0xbe, 0xd0, 0xf2, 0xe7, 0xba, 0x21, 0x6b, 0xcb, 0x57, 0xec,
+ 0x31, 0x55, 0x1c, 0x46, 0x91, 0x46, 0x57, 0x2e, 0x4c, 0x43, 0x04, 0x79,
+ 0x16, 0xeb, 0x7f, 0xaf, 0x0c, 0x76, 0xe0, 0x17, 0x03, 0x31, 0x0d, 0xa6,
+ 0x61, 0x81, 0xf7, 0x54,
+};
+static const struct drbg_kat_pr_false kat1490_t = {
+ 4, kat1490_entropyin, kat1490_nonce, kat1490_persstr,
+ kat1490_entropyinreseed, kat1490_addinreseed, kat1490_addin0,
+ kat1490_addin1, kat1490_retbits
+};
+static const struct drbg_kat kat1490 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1490_t
+};
+
+static const unsigned char kat1491_entropyin[] = {
+ 0x41, 0x1c, 0x63, 0xbf, 0x97, 0x55, 0xd9, 0x6d, 0xf4, 0x14, 0xda, 0x1e,
+ 0xde, 0x04, 0xf2, 0x5d,
+};
+static const unsigned char kat1491_nonce[] = {
+ 0x75, 0x62, 0x63, 0x08, 0x91, 0xcb, 0x0c, 0xa7,
+};
+static const unsigned char kat1491_persstr[] = {
+ 0xf6, 0x9b, 0x3c, 0x68, 0x88, 0xd2, 0x87, 0xb7, 0xd5, 0xbe, 0xea, 0x03,
+ 0xab, 0x7d, 0x01, 0xe5,
+};
+static const unsigned char kat1491_entropyinreseed[] = {
+ 0x78, 0xac, 0xe2, 0x3b, 0xdb, 0x31, 0xe4, 0x3d, 0xee, 0xed, 0xf8, 0xa5,
+ 0x07, 0xc1, 0x21, 0xa3,
+};
+static const unsigned char kat1491_addinreseed[] = {
+ 0xf7, 0xdc, 0xad, 0x9d, 0x6d, 0x31, 0xf2, 0x12, 0xfc, 0x3b, 0xee, 0xef,
+ 0x0d, 0xf9, 0x43, 0x85,
+};
+static const unsigned char kat1491_addin0[] = {
+ 0x02, 0xad, 0x67, 0xc8, 0x86, 0x55, 0xfb, 0x1e, 0x6e, 0x8a, 0xad, 0x0d,
+ 0xb6, 0xf9, 0x7e, 0xd5,
+};
+static const unsigned char kat1491_addin1[] = {
+ 0x17, 0x2e, 0xc6, 0xd5, 0xb4, 0xc0, 0x1d, 0x1e, 0x40, 0x15, 0xf6, 0x67,
+ 0x7f, 0xde, 0x0f, 0xfd,
+};
+static const unsigned char kat1491_retbits[] = {
+ 0xde, 0x06, 0x5f, 0x8f, 0xed, 0x81, 0xaf, 0x94, 0x8b, 0x34, 0x0a, 0xcc,
+ 0xb2, 0x97, 0x10, 0x89, 0xa9, 0xe2, 0x3d, 0x62, 0x1b, 0xa2, 0xb6, 0xd5,
+ 0x84, 0xcd, 0x9d, 0xa4, 0x25, 0xc5, 0xc9, 0xa4, 0xba, 0x80, 0x2b, 0x7b,
+ 0x36, 0x15, 0x88, 0x4f, 0xa9, 0x67, 0xc1, 0x18, 0xec, 0x2e, 0xd1, 0x42,
+ 0x56, 0xa0, 0x47, 0x9c, 0x24, 0xcc, 0xc5, 0x91, 0x7e, 0xcd, 0x63, 0xcc,
+ 0x4d, 0xde, 0x74, 0x0c,
+};
+static const struct drbg_kat_pr_false kat1491_t = {
+ 5, kat1491_entropyin, kat1491_nonce, kat1491_persstr,
+ kat1491_entropyinreseed, kat1491_addinreseed, kat1491_addin0,
+ kat1491_addin1, kat1491_retbits
+};
+static const struct drbg_kat kat1491 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1491_t
+};
+
+static const unsigned char kat1492_entropyin[] = {
+ 0xa1, 0x7c, 0x96, 0x64, 0xbd, 0x0e, 0xc6, 0xa6, 0x89, 0x53, 0xf5, 0xd8,
+ 0x16, 0xa4, 0xae, 0x00,
+};
+static const unsigned char kat1492_nonce[] = {
+ 0xef, 0x8d, 0x4b, 0xa4, 0x15, 0x2d, 0x0d, 0x61,
+};
+static const unsigned char kat1492_persstr[] = {
+ 0x01, 0xac, 0x06, 0x5c, 0x62, 0x18, 0x2f, 0x51, 0xcc, 0x86, 0x27, 0xdd,
+ 0x1c, 0x15, 0x38, 0xe0,
+};
+static const unsigned char kat1492_entropyinreseed[] = {
+ 0x34, 0x5f, 0xb9, 0x87, 0x29, 0x17, 0x72, 0x80, 0xa7, 0x00, 0x18, 0xd6,
+ 0x7f, 0x49, 0x74, 0xe3,
+};
+static const unsigned char kat1492_addinreseed[] = {
+ 0x58, 0x73, 0xbc, 0x53, 0x07, 0x5d, 0x4b, 0x8a, 0x11, 0xbf, 0xac, 0x36,
+ 0x8b, 0x91, 0x36, 0xed,
+};
+static const unsigned char kat1492_addin0[] = {
+ 0x49, 0x7b, 0x88, 0x70, 0x51, 0x76, 0x13, 0xe9, 0x4b, 0x8c, 0x4b, 0x5d,
+ 0xdb, 0xd7, 0x46, 0x62,
+};
+static const unsigned char kat1492_addin1[] = {
+ 0x5e, 0x8b, 0x41, 0xfb, 0x2e, 0x07, 0x80, 0x32, 0xfd, 0xef, 0xc3, 0x77,
+ 0xe5, 0x04, 0x4b, 0x68,
+};
+static const unsigned char kat1492_retbits[] = {
+ 0xc6, 0x8c, 0x92, 0x6c, 0x32, 0xb6, 0x94, 0xd4, 0xab, 0xa7, 0xb7, 0xd5,
+ 0x8b, 0x2a, 0x8f, 0x0f, 0x1d, 0x20, 0x97, 0xfe, 0xb7, 0xb9, 0x25, 0x69,
+ 0xb3, 0x38, 0xc1, 0xae, 0x76, 0x43, 0x00, 0x48, 0x67, 0x1c, 0xd4, 0x5b,
+ 0x23, 0xcc, 0x6e, 0xc8, 0x22, 0xc8, 0xf4, 0x07, 0xa8, 0x4a, 0x55, 0x61,
+ 0x1f, 0xeb, 0x4f, 0x9b, 0xb0, 0x80, 0xa0, 0xe9, 0xa4, 0x35, 0x59, 0x9a,
+ 0xf8, 0xb7, 0x92, 0xca,
+};
+static const struct drbg_kat_pr_false kat1492_t = {
+ 6, kat1492_entropyin, kat1492_nonce, kat1492_persstr,
+ kat1492_entropyinreseed, kat1492_addinreseed, kat1492_addin0,
+ kat1492_addin1, kat1492_retbits
+};
+static const struct drbg_kat kat1492 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1492_t
+};
+
+static const unsigned char kat1493_entropyin[] = {
+ 0xa3, 0x30, 0x11, 0x7c, 0x45, 0xe0, 0x66, 0x24, 0x49, 0x4e, 0x7c, 0xf3,
+ 0x18, 0x1a, 0x5b, 0x1b,
+};
+static const unsigned char kat1493_nonce[] = {
+ 0xdb, 0x39, 0x34, 0x44, 0xf6, 0x27, 0xa2, 0x17,
+};
+static const unsigned char kat1493_persstr[] = {
+ 0x56, 0xc3, 0x7d, 0x50, 0xac, 0xca, 0xef, 0xf9, 0x94, 0xba, 0x28, 0x7e,
+ 0xe7, 0x6a, 0xc5, 0x38,
+};
+static const unsigned char kat1493_entropyinreseed[] = {
+ 0x77, 0x06, 0xae, 0xdb, 0xcf, 0x72, 0xb4, 0xa8, 0x03, 0x5f, 0xc9, 0xa1,
+ 0x34, 0xad, 0x27, 0xd3,
+};
+static const unsigned char kat1493_addinreseed[] = {
+ 0xec, 0xf8, 0x4c, 0xb0, 0xb4, 0x6b, 0xa4, 0xbf, 0xd5, 0x2b, 0x36, 0xd4,
+ 0xb8, 0x96, 0x43, 0x13,
+};
+static const unsigned char kat1493_addin0[] = {
+ 0xbf, 0x9b, 0xb5, 0x15, 0xd6, 0x15, 0xa2, 0xb3, 0xb6, 0x72, 0x67, 0xc6,
+ 0x9e, 0x71, 0xf0, 0x18,
+};
+static const unsigned char kat1493_addin1[] = {
+ 0x3e, 0x69, 0xa8, 0x94, 0x69, 0x45, 0x70, 0x26, 0x95, 0xa5, 0xa3, 0x75,
+ 0x1b, 0xba, 0xe8, 0x55,
+};
+static const unsigned char kat1493_retbits[] = {
+ 0x60, 0xec, 0x02, 0xf1, 0x15, 0x20, 0x57, 0x9e, 0x42, 0xa2, 0x6c, 0x1f,
+ 0x25, 0x95, 0x2e, 0xb2, 0xa3, 0x68, 0xb8, 0x05, 0xcd, 0x74, 0xb6, 0xed,
+ 0x6b, 0x28, 0x02, 0x9d, 0x76, 0x0d, 0x29, 0x7c, 0xb2, 0xe3, 0xdc, 0x8b,
+ 0x91, 0x56, 0x27, 0xd2, 0x5a, 0xcb, 0x94, 0xdc, 0x0c, 0x9d, 0xc1, 0xb2,
+ 0x73, 0x2c, 0xdb, 0xb0, 0x10, 0x15, 0x55, 0xf7, 0xfb, 0x41, 0x6e, 0xd4,
+ 0xf2, 0xea, 0x07, 0xe1,
+};
+static const struct drbg_kat_pr_false kat1493_t = {
+ 7, kat1493_entropyin, kat1493_nonce, kat1493_persstr,
+ kat1493_entropyinreseed, kat1493_addinreseed, kat1493_addin0,
+ kat1493_addin1, kat1493_retbits
+};
+static const struct drbg_kat kat1493 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1493_t
+};
+
+static const unsigned char kat1494_entropyin[] = {
+ 0x35, 0x56, 0xfb, 0x87, 0x29, 0xbf, 0x4c, 0xc9, 0x82, 0x14, 0x13, 0x42,
+ 0x71, 0x45, 0x2e, 0x56,
+};
+static const unsigned char kat1494_nonce[] = {
+ 0x67, 0x1c, 0x10, 0xfe, 0xd8, 0xb4, 0xcf, 0x40,
+};
+static const unsigned char kat1494_persstr[] = {
+ 0x9e, 0x85, 0x59, 0x99, 0xaa, 0xcb, 0xa3, 0x2f, 0x91, 0x65, 0xd9, 0x65,
+ 0x23, 0xa2, 0x3a, 0xec,
+};
+static const unsigned char kat1494_entropyinreseed[] = {
+ 0x6d, 0x85, 0x7a, 0x10, 0x61, 0x1f, 0x53, 0xb3, 0xa9, 0x77, 0x15, 0x1c,
+ 0x8f, 0xa2, 0x86, 0x07,
+};
+static const unsigned char kat1494_addinreseed[] = {
+ 0xda, 0xbd, 0x11, 0x41, 0xbe, 0x9d, 0xea, 0xb1, 0x63, 0x6b, 0x32, 0xbc,
+ 0x3a, 0xbc, 0xfd, 0xbd,
+};
+static const unsigned char kat1494_addin0[] = {
+ 0xe6, 0x5c, 0xc2, 0xe5, 0xdb, 0x61, 0x6f, 0x72, 0x88, 0xe9, 0x60, 0xfb,
+ 0xcf, 0x66, 0xf3, 0xc6,
+};
+static const unsigned char kat1494_addin1[] = {
+ 0x4e, 0x6b, 0xa4, 0x15, 0x74, 0xca, 0xd7, 0x6b, 0x3c, 0x30, 0x5b, 0x4f,
+ 0x26, 0x21, 0xbd, 0xa5,
+};
+static const unsigned char kat1494_retbits[] = {
+ 0x55, 0x17, 0xc5, 0x33, 0xa0, 0x61, 0x28, 0x3b, 0x9b, 0x6d, 0x73, 0xd3,
+ 0x3c, 0xd8, 0x54, 0x05, 0x85, 0x6d, 0x8a, 0x4e, 0xb2, 0x0e, 0x84, 0xbf,
+ 0xf2, 0x35, 0xb4, 0x1f, 0xcc, 0xee, 0xdd, 0xb0, 0xb4, 0x4b, 0xbb, 0x7e,
+ 0x69, 0x36, 0xc3, 0xe3, 0xc0, 0x2c, 0xd0, 0x0b, 0x19, 0xa2, 0xaf, 0x6f,
+ 0x34, 0xdc, 0xb2, 0x13, 0x41, 0xfa, 0xf7, 0x66, 0x19, 0xd6, 0x22, 0x6f,
+ 0xb6, 0x05, 0x74, 0x62,
+};
+static const struct drbg_kat_pr_false kat1494_t = {
+ 8, kat1494_entropyin, kat1494_nonce, kat1494_persstr,
+ kat1494_entropyinreseed, kat1494_addinreseed, kat1494_addin0,
+ kat1494_addin1, kat1494_retbits
+};
+static const struct drbg_kat kat1494 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1494_t
+};
+
+static const unsigned char kat1495_entropyin[] = {
+ 0xab, 0xe8, 0xb1, 0xce, 0xae, 0x3d, 0x3d, 0xb5, 0x29, 0xf9, 0x5d, 0x64,
+ 0x4e, 0x9f, 0x55, 0xcc,
+};
+static const unsigned char kat1495_nonce[] = {
+ 0x5b, 0xe2, 0x69, 0x1f, 0xad, 0x7f, 0x23, 0x0f,
+};
+static const unsigned char kat1495_persstr[] = {
+ 0x29, 0xe0, 0x71, 0x71, 0xa1, 0x7e, 0x7d, 0xc2, 0xe9, 0xad, 0x9e, 0xf7,
+ 0xcc, 0x23, 0xd9, 0xcb,
+};
+static const unsigned char kat1495_entropyinreseed[] = {
+ 0xd3, 0x8f, 0xcb, 0x2f, 0x07, 0xb2, 0x66, 0x88, 0x8f, 0xfe, 0x56, 0xfc,
+ 0xc9, 0xaa, 0x5a, 0x1f,
+};
+static const unsigned char kat1495_addinreseed[] = {
+ 0x6b, 0x87, 0x85, 0x79, 0x90, 0x8e, 0x78, 0xe8, 0x31, 0x02, 0x35, 0x75,
+ 0x6a, 0x77, 0xf9, 0x93,
+};
+static const unsigned char kat1495_addin0[] = {
+ 0x1d, 0x3f, 0xf6, 0xcd, 0x95, 0x7b, 0x54, 0x21, 0x0b, 0xe6, 0x44, 0xe6,
+ 0xd0, 0x30, 0xa6, 0xa1,
+};
+static const unsigned char kat1495_addin1[] = {
+ 0x77, 0x3d, 0xc5, 0xb3, 0x96, 0x70, 0x42, 0x23, 0xe7, 0xcc, 0xa2, 0xcd,
+ 0x60, 0x8b, 0xce, 0xb8,
+};
+static const unsigned char kat1495_retbits[] = {
+ 0x53, 0x74, 0xa2, 0xbc, 0x46, 0xb5, 0x2d, 0x3e, 0xdc, 0x6e, 0xd1, 0xa1,
+ 0x75, 0x65, 0xe7, 0x48, 0xc5, 0xe8, 0x98, 0x8d, 0x5f, 0xab, 0x84, 0x60,
+ 0xa8, 0x8c, 0x2d, 0x8d, 0xb6, 0xe8, 0x50, 0xb3, 0x3c, 0x0c, 0x87, 0x46,
+ 0xb3, 0x22, 0x27, 0x87, 0x32, 0xf9, 0xcf, 0x0b, 0x73, 0x60, 0x5b, 0xb3,
+ 0x73, 0xc2, 0x5c, 0x68, 0xbe, 0x04, 0x58, 0x91, 0x02, 0xe5, 0x84, 0xe6,
+ 0xac, 0x1b, 0x19, 0x6e,
+};
+static const struct drbg_kat_pr_false kat1495_t = {
+ 9, kat1495_entropyin, kat1495_nonce, kat1495_persstr,
+ kat1495_entropyinreseed, kat1495_addinreseed, kat1495_addin0,
+ kat1495_addin1, kat1495_retbits
+};
+static const struct drbg_kat kat1495 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1495_t
+};
+
+static const unsigned char kat1496_entropyin[] = {
+ 0x79, 0xff, 0xe8, 0xb7, 0xd3, 0xd4, 0x9d, 0xb9, 0x11, 0xfd, 0x30, 0xef,
+ 0x93, 0x46, 0xd5, 0x7d,
+};
+static const unsigned char kat1496_nonce[] = {
+ 0x1b, 0x78, 0x80, 0x42, 0xcd, 0x20, 0x43, 0xdc,
+};
+static const unsigned char kat1496_persstr[] = {
+ 0xd0, 0xec, 0x0d, 0x2f, 0x76, 0x6a, 0x14, 0x14, 0x34, 0x77, 0x17, 0xc3,
+ 0x4c, 0xaf, 0x05, 0xe7,
+};
+static const unsigned char kat1496_entropyinreseed[] = {
+ 0x56, 0x37, 0xac, 0x60, 0x4b, 0x75, 0xc1, 0xb8, 0x73, 0x16, 0x3b, 0xca,
+ 0x73, 0xde, 0xed, 0x55,
+};
+static const unsigned char kat1496_addinreseed[] = {
+ 0x46, 0x9e, 0x7c, 0xae, 0xb9, 0x62, 0x54, 0x1f, 0x1a, 0x91, 0xed, 0xae,
+ 0x0c, 0x23, 0x17, 0xd9,
+};
+static const unsigned char kat1496_addin0[] = {
+ 0x61, 0xc4, 0xaf, 0x6e, 0x27, 0x4d, 0xb9, 0xaf, 0xd8, 0x68, 0x04, 0x12,
+ 0x7c, 0x61, 0xfa, 0xd1,
+};
+static const unsigned char kat1496_addin1[] = {
+ 0xbc, 0x2b, 0x9c, 0xba, 0xf0, 0xc3, 0xf0, 0xd5, 0x70, 0x3f, 0x1f, 0x77,
+ 0x3a, 0xa2, 0xc9, 0x97,
+};
+static const unsigned char kat1496_retbits[] = {
+ 0x7a, 0xa0, 0x68, 0x59, 0xe4, 0x29, 0xae, 0x4c, 0xa7, 0xe9, 0x1f, 0x0e,
+ 0xf8, 0x53, 0x82, 0x33, 0x48, 0xce, 0x39, 0x64, 0x01, 0xcd, 0x54, 0x33,
+ 0x51, 0xfd, 0x01, 0xd9, 0xe2, 0xd7, 0x1d, 0x60, 0xe8, 0x33, 0x5f, 0x1c,
+ 0x1e, 0x5e, 0xb1, 0x4c, 0xca, 0x17, 0xfd, 0xb8, 0x8a, 0x7c, 0xf9, 0x8b,
+ 0x76, 0xc6, 0x6d, 0x0e, 0x9e, 0xe1, 0x9b, 0xd3, 0xc8, 0xd9, 0x49, 0x7c,
+ 0x76, 0xe4, 0x91, 0x73,
+};
+static const struct drbg_kat_pr_false kat1496_t = {
+ 10, kat1496_entropyin, kat1496_nonce, kat1496_persstr,
+ kat1496_entropyinreseed, kat1496_addinreseed, kat1496_addin0,
+ kat1496_addin1, kat1496_retbits
+};
+static const struct drbg_kat kat1496 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1496_t
+};
+
+static const unsigned char kat1497_entropyin[] = {
+ 0xcc, 0xb9, 0xd8, 0xb8, 0x68, 0x15, 0xe2, 0x10, 0xff, 0x4a, 0xb2, 0xcc,
+ 0x2e, 0x67, 0x31, 0xa4,
+};
+static const unsigned char kat1497_nonce[] = {
+ 0xdb, 0x60, 0x11, 0xe5, 0xf0, 0x97, 0xa6, 0x12,
+};
+static const unsigned char kat1497_persstr[] = {
+ 0x49, 0xac, 0x61, 0x3a, 0x4f, 0x2c, 0x9e, 0x98, 0x64, 0x9d, 0x30, 0x42,
+ 0x3f, 0x49, 0x5d, 0xd0,
+};
+static const unsigned char kat1497_entropyinreseed[] = {
+ 0x26, 0x82, 0xd8, 0xad, 0xaa, 0xfa, 0x99, 0x5b, 0xba, 0xc4, 0x3d, 0xc1,
+ 0xcb, 0xc0, 0x45, 0x18,
+};
+static const unsigned char kat1497_addinreseed[] = {
+ 0xed, 0x13, 0x7c, 0x1b, 0x55, 0x02, 0xc4, 0xf1, 0xe2, 0x01, 0xed, 0xb0,
+ 0x5e, 0xa7, 0x7a, 0x17,
+};
+static const unsigned char kat1497_addin0[] = {
+ 0x3c, 0x00, 0x07, 0xa5, 0xe2, 0x30, 0xf7, 0x71, 0xd7, 0xf7, 0x48, 0x64,
+ 0x2c, 0x5f, 0x5a, 0x99,
+};
+static const unsigned char kat1497_addin1[] = {
+ 0xfa, 0x22, 0xdd, 0x67, 0xea, 0xbf, 0x64, 0xcf, 0x83, 0xa3, 0x7b, 0xc4,
+ 0x5e, 0xcc, 0x2c, 0x88,
+};
+static const unsigned char kat1497_retbits[] = {
+ 0x13, 0x58, 0xde, 0xc3, 0xa9, 0xf4, 0x57, 0x5e, 0x6e, 0xcf, 0x0d, 0x7d,
+ 0x59, 0x78, 0x20, 0x00, 0x4a, 0x18, 0xcf, 0x9c, 0x7e, 0x3d, 0xc9, 0xf7,
+ 0x14, 0x0e, 0x55, 0x4a, 0x7f, 0x82, 0xf7, 0xf9, 0xb6, 0x60, 0x56, 0x07,
+ 0x8a, 0xcb, 0xbc, 0x01, 0x84, 0x1f, 0x15, 0x54, 0x4a, 0xc5, 0x82, 0x2f,
+ 0x2f, 0xf0, 0xa8, 0x49, 0xca, 0xf6, 0xea, 0x89, 0x87, 0x17, 0x5b, 0x10,
+ 0x23, 0x1d, 0x23, 0xd1,
+};
+static const struct drbg_kat_pr_false kat1497_t = {
+ 11, kat1497_entropyin, kat1497_nonce, kat1497_persstr,
+ kat1497_entropyinreseed, kat1497_addinreseed, kat1497_addin0,
+ kat1497_addin1, kat1497_retbits
+};
+static const struct drbg_kat kat1497 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1497_t
+};
+
+static const unsigned char kat1498_entropyin[] = {
+ 0xf9, 0x4f, 0xfc, 0xa8, 0x16, 0x78, 0x20, 0x85, 0xe9, 0xd0, 0x16, 0xa4,
+ 0x2f, 0x84, 0xde, 0x8d,
+};
+static const unsigned char kat1498_nonce[] = {
+ 0x32, 0x58, 0x62, 0x4b, 0xe8, 0xb3, 0x2e, 0x05,
+};
+static const unsigned char kat1498_persstr[] = {
+ 0x94, 0x10, 0x1d, 0x2a, 0x9c, 0x6e, 0xf3, 0xa6, 0xf0, 0xc6, 0x49, 0x56,
+ 0x3a, 0x02, 0x97, 0xa4,
+};
+static const unsigned char kat1498_entropyinreseed[] = {
+ 0x36, 0x32, 0xf0, 0xcb, 0x9f, 0xd4, 0x6d, 0x92, 0xb6, 0xf9, 0x29, 0x0a,
+ 0x49, 0xe1, 0xde, 0x52,
+};
+static const unsigned char kat1498_addinreseed[] = {
+ 0xdb, 0xd2, 0x22, 0x23, 0x36, 0xea, 0x62, 0x5f, 0xfb, 0x44, 0xd6, 0x12,
+ 0xe2, 0xd1, 0xeb, 0x6d,
+};
+static const unsigned char kat1498_addin0[] = {
+ 0x47, 0x8a, 0xfb, 0x77, 0x6c, 0x66, 0x81, 0x35, 0xa2, 0xbc, 0x52, 0x46,
+ 0x84, 0x3b, 0x68, 0xea,
+};
+static const unsigned char kat1498_addin1[] = {
+ 0x16, 0xa4, 0x77, 0x8d, 0xb1, 0x68, 0x16, 0x89, 0x8f, 0x96, 0x07, 0x82,
+ 0x16, 0xd8, 0x31, 0x99,
+};
+static const unsigned char kat1498_retbits[] = {
+ 0xa8, 0x9a, 0x30, 0xc5, 0xbb, 0x0f, 0x1e, 0x90, 0x7e, 0x99, 0xf3, 0x60,
+ 0x01, 0xf5, 0x08, 0x70, 0x91, 0xb2, 0xd4, 0xaf, 0x6e, 0x60, 0xa7, 0xf8,
+ 0x7b, 0x56, 0xf6, 0x94, 0xdc, 0x19, 0x45, 0x53, 0x1c, 0xd1, 0x34, 0x77,
+ 0x6b, 0xb3, 0x53, 0x69, 0xb4, 0x19, 0xed, 0xde, 0x4f, 0x75, 0xb6, 0x62,
+ 0x64, 0x02, 0x5b, 0xad, 0x47, 0x74, 0xe8, 0x67, 0x7d, 0x64, 0x57, 0x91,
+ 0x8e, 0x57, 0x5c, 0xe4,
+};
+static const struct drbg_kat_pr_false kat1498_t = {
+ 12, kat1498_entropyin, kat1498_nonce, kat1498_persstr,
+ kat1498_entropyinreseed, kat1498_addinreseed, kat1498_addin0,
+ kat1498_addin1, kat1498_retbits
+};
+static const struct drbg_kat kat1498 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1498_t
+};
+
+static const unsigned char kat1499_entropyin[] = {
+ 0x7f, 0xa4, 0xed, 0x36, 0x28, 0x6d, 0xed, 0x64, 0xbf, 0x49, 0x79, 0xa7,
+ 0x1f, 0x91, 0xbc, 0xed,
+};
+static const unsigned char kat1499_nonce[] = {
+ 0x58, 0x6d, 0x02, 0xa8, 0x69, 0x2f, 0xd6, 0x0a,
+};
+static const unsigned char kat1499_persstr[] = {
+ 0xdd, 0x1e, 0xf2, 0xe4, 0xdf, 0xcc, 0x03, 0x70, 0x33, 0x90, 0x13, 0x6d,
+ 0xd7, 0x40, 0xcd, 0xe7,
+};
+static const unsigned char kat1499_entropyinreseed[] = {
+ 0x1a, 0xaf, 0xe1, 0x45, 0x12, 0x8f, 0xd1, 0xee, 0x74, 0x39, 0x3a, 0x6f,
+ 0x82, 0xcb, 0x65, 0x03,
+};
+static const unsigned char kat1499_addinreseed[] = {
+ 0xcf, 0xbe, 0x4f, 0x09, 0xb2, 0xcb, 0x97, 0x41, 0x7e, 0xc7, 0xce, 0x81,
+ 0x8b, 0x15, 0x0f, 0x0b,
+};
+static const unsigned char kat1499_addin0[] = {
+ 0x91, 0x69, 0xf9, 0xd1, 0x58, 0x00, 0xe7, 0x4b, 0x53, 0xdc, 0x41, 0x5a,
+ 0xfa, 0x49, 0x88, 0x39,
+};
+static const unsigned char kat1499_addin1[] = {
+ 0x8d, 0xbe, 0xa4, 0xf4, 0x65, 0x25, 0xef, 0x21, 0xbf, 0xce, 0x86, 0xaa,
+ 0x52, 0x2f, 0xfb, 0x4a,
+};
+static const unsigned char kat1499_retbits[] = {
+ 0x3e, 0xc9, 0xa5, 0x02, 0xb0, 0x21, 0xfa, 0xf3, 0x6c, 0x23, 0x31, 0xcb,
+ 0xf0, 0x31, 0x60, 0x50, 0x39, 0xab, 0x24, 0x8b, 0x3e, 0xbd, 0xf7, 0xc1,
+ 0x55, 0x37, 0x07, 0xc7, 0xc2, 0xfa, 0x63, 0x2a, 0xc6, 0x60, 0x2f, 0x3d,
+ 0x61, 0xcc, 0xe2, 0x5d, 0xc2, 0x1a, 0x3b, 0x48, 0xf3, 0x86, 0x5e, 0xb8,
+ 0x9c, 0xf2, 0x4e, 0xb3, 0x27, 0x40, 0x71, 0x8a, 0x2d, 0x50, 0xff, 0x22,
+ 0x49, 0x41, 0x4f, 0x3d,
+};
+static const struct drbg_kat_pr_false kat1499_t = {
+ 13, kat1499_entropyin, kat1499_nonce, kat1499_persstr,
+ kat1499_entropyinreseed, kat1499_addinreseed, kat1499_addin0,
+ kat1499_addin1, kat1499_retbits
+};
+static const struct drbg_kat kat1499 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1499_t
+};
+
+static const unsigned char kat1500_entropyin[] = {
+ 0x02, 0xf5, 0x6e, 0xa0, 0x27, 0x87, 0x5a, 0xda, 0xf7, 0x2f, 0xac, 0x22,
+ 0xd6, 0x1c, 0xd1, 0x7d,
+};
+static const unsigned char kat1500_nonce[] = {
+ 0x50, 0xdd, 0x72, 0x48, 0xa6, 0x55, 0x9a, 0xf6,
+};
+static const unsigned char kat1500_persstr[] = {
+ 0x1e, 0x2f, 0x36, 0x4b, 0x23, 0xba, 0x3c, 0xc5, 0x81, 0x5c, 0x13, 0x84,
+ 0xae, 0x22, 0xda, 0xc7,
+};
+static const unsigned char kat1500_entropyinreseed[] = {
+ 0xc2, 0x08, 0x26, 0x28, 0x4e, 0x8f, 0xc9, 0x28, 0x54, 0x8f, 0x60, 0xc6,
+ 0x3b, 0x38, 0x6d, 0xda,
+};
+static const unsigned char kat1500_addinreseed[] = {
+ 0x98, 0x66, 0x92, 0x20, 0xd5, 0x65, 0x71, 0xf2, 0xf2, 0xeb, 0x17, 0xaf,
+ 0x75, 0xb6, 0xac, 0x1a,
+};
+static const unsigned char kat1500_addin0[] = {
+ 0x0d, 0x85, 0x9d, 0x1d, 0x9c, 0x91, 0x1f, 0x7e, 0x6d, 0x4e, 0xa8, 0x4a,
+ 0x9f, 0x77, 0x68, 0x7e,
+};
+static const unsigned char kat1500_addin1[] = {
+ 0xe1, 0xcd, 0x4d, 0x47, 0x4c, 0x98, 0x5b, 0xa5, 0x62, 0xdc, 0x41, 0x00,
+ 0xec, 0x01, 0x15, 0x5a,
+};
+static const unsigned char kat1500_retbits[] = {
+ 0xe8, 0x3f, 0x1f, 0x0f, 0xe0, 0xad, 0x9a, 0x8b, 0x6c, 0x0b, 0xee, 0x71,
+ 0x48, 0x4f, 0x03, 0xb2, 0x2c, 0xde, 0x5e, 0xf9, 0x90, 0xaf, 0x0f, 0xa4,
+ 0x9e, 0x45, 0xf9, 0xe8, 0xd0, 0xb1, 0xcd, 0x9c, 0x05, 0x8f, 0xf5, 0xc6,
+ 0x2f, 0x40, 0x9b, 0xad, 0x00, 0x5e, 0xa4, 0xf0, 0x0c, 0xae, 0xca, 0xc1,
+ 0xde, 0x6f, 0x6f, 0x89, 0x6f, 0x0d, 0xab, 0xe0, 0x20, 0xfd, 0xa5, 0x83,
+ 0x75, 0xe6, 0xca, 0x19,
+};
+static const struct drbg_kat_pr_false kat1500_t = {
+ 14, kat1500_entropyin, kat1500_nonce, kat1500_persstr,
+ kat1500_entropyinreseed, kat1500_addinreseed, kat1500_addin0,
+ kat1500_addin1, kat1500_retbits
+};
+static const struct drbg_kat kat1500 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1500_t
+};
+
+static const unsigned char kat1501_entropyin[] = {
+ 0x8f, 0xb9, 0x57, 0x3a, 0x54, 0x62, 0x53, 0xcd, 0xbf, 0x62, 0x15, 0xa1,
+ 0x80, 0x5a, 0x41, 0x38,
+};
+static const unsigned char kat1501_nonce[] = {
+ 0x7c, 0x2c, 0xe6, 0x54, 0x02, 0xbc, 0xa6, 0x83,
+};
+static const unsigned char kat1501_persstr[] = {0};
+static const unsigned char kat1501_entropyinreseed[] = {
+ 0xbc, 0x5a, 0xd8, 0x9a, 0xe1, 0x8c, 0x49, 0x1f, 0x90, 0xa2, 0xae, 0x9e,
+ 0x7e, 0x2c, 0xf9, 0x9d,
+};
+static const unsigned char kat1501_addinreseed[] = {0};
+static const unsigned char kat1501_addin0[] = {0};
+static const unsigned char kat1501_addin1[] = {0};
+static const unsigned char kat1501_retbits[] = {
+ 0x07, 0x62, 0x82, 0xe8, 0x0e, 0x65, 0xd7, 0x70, 0x1a, 0x35, 0xb3, 0x44,
+ 0x63, 0x68, 0xb6, 0x16, 0xf8, 0xd9, 0x62, 0x23, 0xb9, 0xb5, 0x11, 0x64,
+ 0x23, 0xa3, 0xa2, 0x32, 0xc7, 0x2c, 0xea, 0xbf, 0x4a, 0xcc, 0xc4, 0x0a,
+ 0xc6, 0x19, 0xd6, 0xaa, 0x68, 0xae, 0xdb, 0x8b, 0x26, 0x70, 0xb8, 0x07,
+ 0xcc, 0xe9, 0x9f, 0xc2, 0x1b, 0x8f, 0xa5, 0x16, 0xef, 0x75, 0xb6, 0x8f,
+ 0xc0, 0x6c, 0x87, 0xc7,
+};
+static const struct drbg_kat_pr_false kat1501_t = {
+ 0, kat1501_entropyin, kat1501_nonce, kat1501_persstr,
+ kat1501_entropyinreseed, kat1501_addinreseed, kat1501_addin0,
+ kat1501_addin1, kat1501_retbits
+};
+static const struct drbg_kat kat1501 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1501_t
+};
+
+static const unsigned char kat1502_entropyin[] = {
+ 0xa3, 0x56, 0xf3, 0x9a, 0xce, 0x48, 0x59, 0xb1, 0xe1, 0x99, 0x49, 0x40,
+ 0x22, 0x8e, 0xa4, 0xeb,
+};
+static const unsigned char kat1502_nonce[] = {
+ 0xff, 0x33, 0xe9, 0x51, 0x39, 0xf7, 0x67, 0xf1,
+};
+static const unsigned char kat1502_persstr[] = {0};
+static const unsigned char kat1502_entropyinreseed[] = {
+ 0x66, 0x8f, 0x0f, 0xe2, 0xd8, 0xa9, 0xa9, 0x29, 0x20, 0xfc, 0xb9, 0xf3,
+ 0x55, 0xd6, 0xc3, 0x4c,
+};
+static const unsigned char kat1502_addinreseed[] = {0};
+static const unsigned char kat1502_addin0[] = {0};
+static const unsigned char kat1502_addin1[] = {0};
+static const unsigned char kat1502_retbits[] = {
+ 0xa1, 0x06, 0x61, 0x65, 0x7b, 0x98, 0x0f, 0xac, 0xce, 0x77, 0x91, 0xde,
+ 0x7f, 0x6f, 0xe6, 0x1e, 0x88, 0x15, 0xe5, 0xe2, 0x4c, 0xce, 0xb8, 0xa6,
+ 0x63, 0xf2, 0xe8, 0x2f, 0x5b, 0xfb, 0x16, 0x92, 0x06, 0x2a, 0xf3, 0xa8,
+ 0x59, 0x05, 0xe0, 0x5a, 0x92, 0x9a, 0x07, 0x65, 0xc7, 0x41, 0x29, 0x3a,
+ 0x4b, 0x1d, 0x15, 0x3e, 0x02, 0x14, 0x7b, 0xdd, 0x74, 0x5e, 0xbd, 0x70,
+ 0x07, 0x4d, 0x6c, 0x08,
+};
+static const struct drbg_kat_pr_false kat1502_t = {
+ 1, kat1502_entropyin, kat1502_nonce, kat1502_persstr,
+ kat1502_entropyinreseed, kat1502_addinreseed, kat1502_addin0,
+ kat1502_addin1, kat1502_retbits
+};
+static const struct drbg_kat kat1502 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1502_t
+};
+
+static const unsigned char kat1503_entropyin[] = {
+ 0x9d, 0x44, 0xa6, 0x10, 0xec, 0x17, 0x51, 0xcb, 0x16, 0x9a, 0x5d, 0x83,
+ 0x20, 0x8c, 0xce, 0xe6,
+};
+static const unsigned char kat1503_nonce[] = {
+ 0x7a, 0x50, 0x71, 0x58, 0xc9, 0x89, 0xc3, 0x23,
+};
+static const unsigned char kat1503_persstr[] = {0};
+static const unsigned char kat1503_entropyinreseed[] = {
+ 0xd8, 0x0a, 0x20, 0x89, 0x7c, 0x16, 0x78, 0x06, 0xf2, 0xe2, 0x91, 0x99,
+ 0xa2, 0x7c, 0xe7, 0xc5,
+};
+static const unsigned char kat1503_addinreseed[] = {0};
+static const unsigned char kat1503_addin0[] = {0};
+static const unsigned char kat1503_addin1[] = {0};
+static const unsigned char kat1503_retbits[] = {
+ 0x08, 0xe6, 0x18, 0xad, 0xca, 0x11, 0x34, 0xcb, 0x45, 0xa7, 0x38, 0x99,
+ 0x86, 0x5d, 0xf3, 0xab, 0x33, 0xeb, 0x31, 0xa7, 0x51, 0xb4, 0x29, 0x8f,
+ 0x98, 0xcd, 0x1f, 0xc8, 0xd2, 0xcb, 0x7c, 0x3c, 0xa1, 0x9a, 0xac, 0xd6,
+ 0x2b, 0x37, 0x55, 0x67, 0xd6, 0xba, 0x0c, 0xe1, 0xc0, 0x8f, 0x5f, 0xa6,
+ 0xe6, 0x8f, 0xfb, 0xe7, 0x6b, 0x8e, 0xae, 0xcd, 0xf6, 0x83, 0xdc, 0x34,
+ 0xe7, 0xf8, 0xd6, 0xd5,
+};
+static const struct drbg_kat_pr_false kat1503_t = {
+ 2, kat1503_entropyin, kat1503_nonce, kat1503_persstr,
+ kat1503_entropyinreseed, kat1503_addinreseed, kat1503_addin0,
+ kat1503_addin1, kat1503_retbits
+};
+static const struct drbg_kat kat1503 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1503_t
+};
+
+static const unsigned char kat1504_entropyin[] = {
+ 0xd0, 0x73, 0x0d, 0x39, 0xd5, 0xb5, 0xa5, 0x45, 0xd8, 0x15, 0x62, 0xfa,
+ 0xfa, 0xa1, 0x2b, 0xa0,
+};
+static const unsigned char kat1504_nonce[] = {
+ 0x68, 0x37, 0xef, 0x68, 0x00, 0xd0, 0xe7, 0x4e,
+};
+static const unsigned char kat1504_persstr[] = {0};
+static const unsigned char kat1504_entropyinreseed[] = {
+ 0x9b, 0xbe, 0x65, 0x33, 0x97, 0x4a, 0x7b, 0x1a, 0x6f, 0xab, 0x4e, 0xad,
+ 0x39, 0x35, 0x8a, 0xbe,
+};
+static const unsigned char kat1504_addinreseed[] = {0};
+static const unsigned char kat1504_addin0[] = {0};
+static const unsigned char kat1504_addin1[] = {0};
+static const unsigned char kat1504_retbits[] = {
+ 0xf4, 0x42, 0xe8, 0xc6, 0xfa, 0x95, 0x34, 0x3c, 0x33, 0xf7, 0x9e, 0x32,
+ 0xb9, 0x72, 0xe4, 0x06, 0x91, 0xe2, 0x37, 0xa2, 0x5d, 0x55, 0x26, 0xf5,
+ 0x77, 0x24, 0xe7, 0x18, 0x41, 0x72, 0x5c, 0xba, 0x94, 0xa5, 0xd4, 0x5b,
+ 0x43, 0x3e, 0x80, 0xd2, 0xf2, 0x81, 0xae, 0x5a, 0xb2, 0x45, 0x5b, 0xa7,
+ 0x77, 0x9c, 0xf6, 0xf3, 0x37, 0x00, 0xf4, 0xa1, 0x3e, 0x4d, 0xdf, 0x77,
+ 0x43, 0xd9, 0xfe, 0x7b,
+};
+static const struct drbg_kat_pr_false kat1504_t = {
+ 3, kat1504_entropyin, kat1504_nonce, kat1504_persstr,
+ kat1504_entropyinreseed, kat1504_addinreseed, kat1504_addin0,
+ kat1504_addin1, kat1504_retbits
+};
+static const struct drbg_kat kat1504 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1504_t
+};
+
+static const unsigned char kat1505_entropyin[] = {
+ 0xbf, 0xa9, 0x11, 0xf9, 0x19, 0x52, 0xb0, 0x25, 0xae, 0xc0, 0xd1, 0xa5,
+ 0x6a, 0xb1, 0xd0, 0x7c,
+};
+static const unsigned char kat1505_nonce[] = {
+ 0xa5, 0x04, 0x39, 0xc8, 0x03, 0xdd, 0xf0, 0x40,
+};
+static const unsigned char kat1505_persstr[] = {0};
+static const unsigned char kat1505_entropyinreseed[] = {
+ 0x42, 0x92, 0x0c, 0x5e, 0x7c, 0x08, 0x15, 0x4f, 0xdd, 0x80, 0xc5, 0x26,
+ 0x31, 0x04, 0x38, 0x85,
+};
+static const unsigned char kat1505_addinreseed[] = {0};
+static const unsigned char kat1505_addin0[] = {0};
+static const unsigned char kat1505_addin1[] = {0};
+static const unsigned char kat1505_retbits[] = {
+ 0x8c, 0x1d, 0x40, 0x8d, 0x7a, 0x3d, 0x0d, 0x30, 0x5c, 0x13, 0x4f, 0xda,
+ 0x0b, 0xf8, 0x3c, 0xb8, 0x2f, 0x00, 0xcd, 0x7c, 0x36, 0xa0, 0xc9, 0xb6,
+ 0x16, 0xeb, 0xb2, 0x3b, 0xaa, 0x62, 0x54, 0x46, 0x7f, 0x95, 0xc8, 0x4c,
+ 0xdb, 0x77, 0xc5, 0x96, 0xa7, 0x54, 0xcc, 0x3b, 0xd1, 0x04, 0x7a, 0xf7,
+ 0x8f, 0x0e, 0xe0, 0x64, 0xfb, 0x04, 0xb5, 0xe0, 0xf3, 0x0b, 0x4a, 0x5e,
+ 0x45, 0x69, 0x01, 0xbd,
+};
+static const struct drbg_kat_pr_false kat1505_t = {
+ 4, kat1505_entropyin, kat1505_nonce, kat1505_persstr,
+ kat1505_entropyinreseed, kat1505_addinreseed, kat1505_addin0,
+ kat1505_addin1, kat1505_retbits
+};
+static const struct drbg_kat kat1505 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1505_t
+};
+
+static const unsigned char kat1506_entropyin[] = {
+ 0xd0, 0xf7, 0x9a, 0x4a, 0xcb, 0x76, 0x76, 0x07, 0x1e, 0xf7, 0x71, 0xb5,
+ 0x95, 0x01, 0x63, 0x04,
+};
+static const unsigned char kat1506_nonce[] = {
+ 0x5b, 0xc0, 0xfd, 0xdf, 0x69, 0xa1, 0x03, 0x90,
+};
+static const unsigned char kat1506_persstr[] = {0};
+static const unsigned char kat1506_entropyinreseed[] = {
+ 0x27, 0x9e, 0xac, 0xfc, 0xff, 0xbb, 0x3f, 0xdb, 0xaf, 0x4b, 0x9e, 0xb5,
+ 0xa6, 0x6f, 0x5c, 0xb2,
+};
+static const unsigned char kat1506_addinreseed[] = {0};
+static const unsigned char kat1506_addin0[] = {0};
+static const unsigned char kat1506_addin1[] = {0};
+static const unsigned char kat1506_retbits[] = {
+ 0xfe, 0x5d, 0x3a, 0x28, 0xe5, 0x1f, 0xb8, 0xa8, 0xab, 0xd0, 0xd9, 0xc9,
+ 0x58, 0xf1, 0x8c, 0xdb, 0x49, 0x89, 0xe4, 0xd5, 0xae, 0xab, 0x6c, 0x79,
+ 0xed, 0xb5, 0xa4, 0x3e, 0x7d, 0xe9, 0x09, 0xaa, 0xc1, 0x57, 0xd9, 0x09,
+ 0x4c, 0x18, 0xc5, 0xe5, 0xdd, 0x04, 0x3b, 0xaf, 0x06, 0x5e, 0xa2, 0x00,
+ 0x73, 0x32, 0xec, 0x2e, 0x62, 0x08, 0x6b, 0x0a, 0x61, 0xee, 0x49, 0xa2,
+ 0x5f, 0x01, 0xa2, 0x38,
+};
+static const struct drbg_kat_pr_false kat1506_t = {
+ 5, kat1506_entropyin, kat1506_nonce, kat1506_persstr,
+ kat1506_entropyinreseed, kat1506_addinreseed, kat1506_addin0,
+ kat1506_addin1, kat1506_retbits
+};
+static const struct drbg_kat kat1506 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1506_t
+};
+
+static const unsigned char kat1507_entropyin[] = {
+ 0xb5, 0xa2, 0x2a, 0x22, 0x03, 0x64, 0x4b, 0xfb, 0x3f, 0x2d, 0x70, 0x05,
+ 0x30, 0xe3, 0xf6, 0x54,
+};
+static const unsigned char kat1507_nonce[] = {
+ 0x06, 0x74, 0x7e, 0x42, 0x67, 0xca, 0xbc, 0xb3,
+};
+static const unsigned char kat1507_persstr[] = {0};
+static const unsigned char kat1507_entropyinreseed[] = {
+ 0xe8, 0xa0, 0xf9, 0x95, 0x24, 0x13, 0x72, 0xd7, 0xa3, 0x06, 0xd6, 0x8c,
+ 0xa1, 0x54, 0xde, 0x3f,
+};
+static const unsigned char kat1507_addinreseed[] = {0};
+static const unsigned char kat1507_addin0[] = {0};
+static const unsigned char kat1507_addin1[] = {0};
+static const unsigned char kat1507_retbits[] = {
+ 0xc4, 0x56, 0xb4, 0x04, 0x91, 0x5e, 0x2d, 0x9c, 0xf9, 0x07, 0xc3, 0xcc,
+ 0x15, 0xd5, 0x47, 0x2d, 0xd3, 0xf5, 0x59, 0x2e, 0x8b, 0x15, 0x55, 0x70,
+ 0x30, 0x09, 0xe2, 0xc9, 0xc3, 0x11, 0x83, 0x9e, 0xcd, 0xc5, 0x7f, 0xcf,
+ 0xc7, 0x25, 0x56, 0x1c, 0x87, 0xf6, 0x74, 0x8f, 0xf4, 0x1c, 0xd7, 0xcd,
+ 0x40, 0x58, 0xc7, 0x91, 0xb7, 0xb3, 0xcc, 0x5d, 0x7b, 0xde, 0xf9, 0xb5,
+ 0x25, 0x81, 0x62, 0x63,
+};
+static const struct drbg_kat_pr_false kat1507_t = {
+ 6, kat1507_entropyin, kat1507_nonce, kat1507_persstr,
+ kat1507_entropyinreseed, kat1507_addinreseed, kat1507_addin0,
+ kat1507_addin1, kat1507_retbits
+};
+static const struct drbg_kat kat1507 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1507_t
+};
+
+static const unsigned char kat1508_entropyin[] = {
+ 0x50, 0x46, 0x48, 0x44, 0x48, 0xd2, 0x00, 0x97, 0xde, 0x1a, 0x5b, 0xc3,
+ 0x12, 0x8a, 0x92, 0xae,
+};
+static const unsigned char kat1508_nonce[] = {
+ 0x3a, 0xbc, 0x3d, 0xdb, 0xe2, 0x0e, 0xce, 0xea,
+};
+static const unsigned char kat1508_persstr[] = {0};
+static const unsigned char kat1508_entropyinreseed[] = {
+ 0x1a, 0xfb, 0xbf, 0x98, 0x99, 0x27, 0x1c, 0xfc, 0x4d, 0x0d, 0x5e, 0x1a,
+ 0x59, 0x26, 0xdd, 0x6e,
+};
+static const unsigned char kat1508_addinreseed[] = {0};
+static const unsigned char kat1508_addin0[] = {0};
+static const unsigned char kat1508_addin1[] = {0};
+static const unsigned char kat1508_retbits[] = {
+ 0x8c, 0x4a, 0xfb, 0x37, 0x64, 0x12, 0x5f, 0x68, 0x62, 0xb1, 0x62, 0x19,
+ 0xab, 0x4d, 0x97, 0x1c, 0x8d, 0x11, 0x47, 0x0b, 0x45, 0xab, 0x31, 0x6a,
+ 0x0c, 0x02, 0xa1, 0x77, 0x00, 0x78, 0x16, 0xa4, 0x44, 0xec, 0x25, 0x85,
+ 0xe9, 0x46, 0x6b, 0xed, 0xc2, 0x7b, 0x69, 0x64, 0x7a, 0x4c, 0x9d, 0xdc,
+ 0x00, 0xd7, 0x14, 0x2e, 0x53, 0x82, 0x4f, 0x94, 0xc8, 0x59, 0x9a, 0x8f,
+ 0xe0, 0x49, 0x3f, 0xd8,
+};
+static const struct drbg_kat_pr_false kat1508_t = {
+ 7, kat1508_entropyin, kat1508_nonce, kat1508_persstr,
+ kat1508_entropyinreseed, kat1508_addinreseed, kat1508_addin0,
+ kat1508_addin1, kat1508_retbits
+};
+static const struct drbg_kat kat1508 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1508_t
+};
+
+static const unsigned char kat1509_entropyin[] = {
+ 0xca, 0x13, 0x7d, 0xcc, 0x62, 0x95, 0x61, 0x8b, 0x1f, 0xd0, 0x02, 0x96,
+ 0xb9, 0xf5, 0x12, 0x80,
+};
+static const unsigned char kat1509_nonce[] = {
+ 0xe4, 0x22, 0x0e, 0xf8, 0x72, 0xa2, 0x08, 0x00,
+};
+static const unsigned char kat1509_persstr[] = {0};
+static const unsigned char kat1509_entropyinreseed[] = {
+ 0x50, 0x9d, 0x1a, 0x2b, 0xbb, 0x90, 0x6a, 0x9c, 0xc3, 0x6b, 0xd8, 0x12,
+ 0x07, 0x83, 0xf2, 0x9b,
+};
+static const unsigned char kat1509_addinreseed[] = {0};
+static const unsigned char kat1509_addin0[] = {0};
+static const unsigned char kat1509_addin1[] = {0};
+static const unsigned char kat1509_retbits[] = {
+ 0xf7, 0x07, 0xb1, 0xc7, 0x09, 0x8b, 0x23, 0x79, 0xe7, 0x54, 0xa0, 0x68,
+ 0x49, 0xf7, 0xe4, 0x55, 0x45, 0x31, 0x99, 0x2e, 0x97, 0x6f, 0xf1, 0xf9,
+ 0xd1, 0x86, 0x34, 0x9f, 0x56, 0xac, 0x34, 0x5f, 0x3a, 0x9b, 0x18, 0x0b,
+ 0x4d, 0x30, 0x52, 0x13, 0x12, 0x17, 0x18, 0x36, 0x98, 0x97, 0x63, 0x9b,
+ 0x6e, 0x96, 0x53, 0x7b, 0x55, 0x75, 0x44, 0x84, 0x0a, 0x70, 0x05, 0x31,
+ 0x02, 0xad, 0x8a, 0xf9,
+};
+static const struct drbg_kat_pr_false kat1509_t = {
+ 8, kat1509_entropyin, kat1509_nonce, kat1509_persstr,
+ kat1509_entropyinreseed, kat1509_addinreseed, kat1509_addin0,
+ kat1509_addin1, kat1509_retbits
+};
+static const struct drbg_kat kat1509 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1509_t
+};
+
+static const unsigned char kat1510_entropyin[] = {
+ 0x08, 0x5e, 0x0e, 0x3d, 0xee, 0xa0, 0x7d, 0xd7, 0x3f, 0x59, 0xf1, 0x4e,
+ 0x5b, 0x7f, 0x2f, 0xf0,
+};
+static const unsigned char kat1510_nonce[] = {
+ 0x0c, 0xd8, 0x41, 0x7b, 0xe4, 0xb4, 0xc4, 0xdd,
+};
+static const unsigned char kat1510_persstr[] = {0};
+static const unsigned char kat1510_entropyinreseed[] = {
+ 0x1c, 0xfd, 0xfb, 0xe2, 0x7d, 0x16, 0xe5, 0xcf, 0x1f, 0x40, 0xb1, 0x33,
+ 0x8c, 0xa8, 0x8b, 0x68,
+};
+static const unsigned char kat1510_addinreseed[] = {0};
+static const unsigned char kat1510_addin0[] = {0};
+static const unsigned char kat1510_addin1[] = {0};
+static const unsigned char kat1510_retbits[] = {
+ 0x41, 0xae, 0x72, 0xd7, 0xcc, 0xcb, 0xc3, 0xc5, 0x49, 0x8d, 0xfe, 0xa8,
+ 0x95, 0x39, 0xfa, 0xb8, 0xbc, 0x41, 0x32, 0xfe, 0x97, 0xa4, 0x07, 0x81,
+ 0x55, 0xa6, 0x02, 0xc4, 0x8a, 0x59, 0xaf, 0xcf, 0xf8, 0x52, 0x1c, 0x9f,
+ 0x8b, 0x98, 0xcc, 0xe8, 0x04, 0x83, 0x3d, 0xf1, 0x0e, 0xd7, 0x24, 0x32,
+ 0xad, 0x55, 0x53, 0x32, 0xb4, 0x45, 0x15, 0x97, 0x05, 0xca, 0x4f, 0x08,
+ 0x3b, 0x8c, 0x47, 0x50,
+};
+static const struct drbg_kat_pr_false kat1510_t = {
+ 9, kat1510_entropyin, kat1510_nonce, kat1510_persstr,
+ kat1510_entropyinreseed, kat1510_addinreseed, kat1510_addin0,
+ kat1510_addin1, kat1510_retbits
+};
+static const struct drbg_kat kat1510 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1510_t
+};
+
+static const unsigned char kat1511_entropyin[] = {
+ 0x34, 0x1e, 0x1c, 0x73, 0xa6, 0xea, 0x1f, 0x26, 0x56, 0xf5, 0xa1, 0xfb,
+ 0x1d, 0x37, 0x47, 0x68,
+};
+static const unsigned char kat1511_nonce[] = {
+ 0x9d, 0xa8, 0xa5, 0x0c, 0xd2, 0xed, 0x65, 0x6d,
+};
+static const unsigned char kat1511_persstr[] = {0};
+static const unsigned char kat1511_entropyinreseed[] = {
+ 0x06, 0x0c, 0x46, 0x77, 0x0b, 0x91, 0x7e, 0x1e, 0x52, 0xae, 0xf5, 0x79,
+ 0x59, 0xdd, 0x21, 0x5c,
+};
+static const unsigned char kat1511_addinreseed[] = {0};
+static const unsigned char kat1511_addin0[] = {0};
+static const unsigned char kat1511_addin1[] = {0};
+static const unsigned char kat1511_retbits[] = {
+ 0xce, 0xe3, 0x33, 0x6f, 0xc4, 0xe3, 0xd7, 0x1c, 0x6b, 0xc3, 0x8a, 0x64,
+ 0xdd, 0x1c, 0x63, 0xb7, 0xce, 0xf0, 0x2d, 0x1f, 0x7c, 0x74, 0x47, 0xe6,
+ 0x25, 0x87, 0xe5, 0x5b, 0xe3, 0x4b, 0x3a, 0xf1, 0x13, 0x86, 0xf5, 0xee,
+ 0x74, 0x97, 0x8b, 0xaf, 0xd9, 0x77, 0x1a, 0x2c, 0xc3, 0xec, 0x5c, 0xea,
+ 0x1e, 0xa1, 0x2a, 0xd9, 0x72, 0xb4, 0xf4, 0xc3, 0x21, 0x9c, 0xa0, 0x6c,
+ 0xfd, 0xa3, 0x4e, 0x71,
+};
+static const struct drbg_kat_pr_false kat1511_t = {
+ 10, kat1511_entropyin, kat1511_nonce, kat1511_persstr,
+ kat1511_entropyinreseed, kat1511_addinreseed, kat1511_addin0,
+ kat1511_addin1, kat1511_retbits
+};
+static const struct drbg_kat kat1511 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1511_t
+};
+
+static const unsigned char kat1512_entropyin[] = {
+ 0x97, 0x03, 0x15, 0x4e, 0x41, 0x37, 0x83, 0x70, 0x0f, 0x00, 0x8d, 0xd7,
+ 0x63, 0x8b, 0x67, 0xbb,
+};
+static const unsigned char kat1512_nonce[] = {
+ 0x12, 0x1e, 0x51, 0x2a, 0x31, 0x8f, 0xd5, 0x7e,
+};
+static const unsigned char kat1512_persstr[] = {0};
+static const unsigned char kat1512_entropyinreseed[] = {
+ 0x7c, 0xcf, 0x5c, 0xe2, 0x43, 0xa0, 0x6f, 0x5d, 0x81, 0x43, 0xa7, 0x71,
+ 0x25, 0x89, 0x01, 0xdc,
+};
+static const unsigned char kat1512_addinreseed[] = {0};
+static const unsigned char kat1512_addin0[] = {0};
+static const unsigned char kat1512_addin1[] = {0};
+static const unsigned char kat1512_retbits[] = {
+ 0xb2, 0xf5, 0xeb, 0xe6, 0xd2, 0xa3, 0xdf, 0x80, 0xa6, 0x50, 0x81, 0x3c,
+ 0xef, 0xd8, 0x5e, 0x13, 0x9d, 0x32, 0x68, 0x13, 0xdf, 0x86, 0xb5, 0xd2,
+ 0x44, 0x12, 0x16, 0x0c, 0x42, 0x7e, 0xad, 0x56, 0xd7, 0x54, 0xa4, 0xcc,
+ 0x9c, 0x47, 0xa2, 0x38, 0xf1, 0xbd, 0xdf, 0x23, 0x4f, 0xaf, 0x22, 0xcf,
+ 0x04, 0x48, 0x41, 0x3c, 0x1b, 0x0f, 0x6e, 0xbe, 0x76, 0x81, 0x56, 0x07,
+ 0xea, 0xf5, 0x0c, 0xde,
+};
+static const struct drbg_kat_pr_false kat1512_t = {
+ 11, kat1512_entropyin, kat1512_nonce, kat1512_persstr,
+ kat1512_entropyinreseed, kat1512_addinreseed, kat1512_addin0,
+ kat1512_addin1, kat1512_retbits
+};
+static const struct drbg_kat kat1512 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1512_t
+};
+
+static const unsigned char kat1513_entropyin[] = {
+ 0xc2, 0x1f, 0x5b, 0xa9, 0x60, 0x56, 0x05, 0x48, 0xe0, 0xe2, 0x1c, 0x5f,
+ 0x7e, 0xc6, 0x73, 0xd9,
+};
+static const unsigned char kat1513_nonce[] = {
+ 0xf8, 0x4e, 0x7b, 0xd5, 0xbd, 0x4b, 0xfb, 0xf1,
+};
+static const unsigned char kat1513_persstr[] = {0};
+static const unsigned char kat1513_entropyinreseed[] = {
+ 0x26, 0x7c, 0xc9, 0x91, 0x06, 0xd5, 0x78, 0x5c, 0xdf, 0x30, 0x71, 0xc3,
+ 0xdc, 0xec, 0xf4, 0x91,
+};
+static const unsigned char kat1513_addinreseed[] = {0};
+static const unsigned char kat1513_addin0[] = {0};
+static const unsigned char kat1513_addin1[] = {0};
+static const unsigned char kat1513_retbits[] = {
+ 0x0a, 0x65, 0x00, 0xca, 0xfa, 0x9b, 0x84, 0x70, 0x17, 0x42, 0xc0, 0xfb,
+ 0x62, 0x7e, 0x74, 0x4a, 0x6d, 0x4a, 0x5c, 0x56, 0x0e, 0x69, 0x49, 0xaa,
+ 0x18, 0x21, 0x32, 0x1f, 0x66, 0x1e, 0x5e, 0x1c, 0x52, 0xa3, 0x83, 0x94,
+ 0xab, 0xa1, 0x3b, 0x35, 0xdc, 0xb5, 0x14, 0x28, 0x9f, 0xc8, 0xc2, 0x84,
+ 0xb2, 0x03, 0x6d, 0xcd, 0x81, 0x91, 0x93, 0x7c, 0x84, 0x05, 0x57, 0x23,
+ 0xf1, 0x6a, 0x90, 0x8b,
+};
+static const struct drbg_kat_pr_false kat1513_t = {
+ 12, kat1513_entropyin, kat1513_nonce, kat1513_persstr,
+ kat1513_entropyinreseed, kat1513_addinreseed, kat1513_addin0,
+ kat1513_addin1, kat1513_retbits
+};
+static const struct drbg_kat kat1513 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1513_t
+};
+
+static const unsigned char kat1514_entropyin[] = {
+ 0x28, 0x4a, 0x67, 0xba, 0xe2, 0x7a, 0xb3, 0x2b, 0xc5, 0x01, 0x62, 0xc0,
+ 0x04, 0xcb, 0x92, 0xae,
+};
+static const unsigned char kat1514_nonce[] = {
+ 0x04, 0xbb, 0x32, 0x64, 0x59, 0xa8, 0x87, 0xd1,
+};
+static const unsigned char kat1514_persstr[] = {0};
+static const unsigned char kat1514_entropyinreseed[] = {
+ 0x79, 0x70, 0x2b, 0x24, 0xdf, 0x8d, 0xf1, 0xbd, 0x7a, 0xba, 0x9c, 0x32,
+ 0xae, 0x59, 0x6e, 0x6e,
+};
+static const unsigned char kat1514_addinreseed[] = {0};
+static const unsigned char kat1514_addin0[] = {0};
+static const unsigned char kat1514_addin1[] = {0};
+static const unsigned char kat1514_retbits[] = {
+ 0x18, 0x99, 0xd5, 0xee, 0xd8, 0xc2, 0xf5, 0x7e, 0x3e, 0xd1, 0x0e, 0x78,
+ 0x00, 0x43, 0xa8, 0x53, 0x66, 0xf1, 0xf7, 0xc2, 0xab, 0xc5, 0x15, 0xbc,
+ 0xed, 0xf6, 0x6d, 0x0b, 0x16, 0xd6, 0x98, 0x69, 0x48, 0x62, 0xad, 0xf1,
+ 0xa3, 0x38, 0xfb, 0x72, 0xda, 0xfa, 0xd4, 0x5e, 0x8b, 0xc9, 0x62, 0x40,
+ 0xd6, 0xac, 0x2f, 0x3d, 0x8b, 0xc1, 0x53, 0x74, 0xf5, 0xa8, 0xb4, 0x8b,
+ 0xf6, 0xbc, 0xfa, 0xe9,
+};
+static const struct drbg_kat_pr_false kat1514_t = {
+ 13, kat1514_entropyin, kat1514_nonce, kat1514_persstr,
+ kat1514_entropyinreseed, kat1514_addinreseed, kat1514_addin0,
+ kat1514_addin1, kat1514_retbits
+};
+static const struct drbg_kat kat1514 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1514_t
+};
+
+static const unsigned char kat1515_entropyin[] = {
+ 0xdd, 0x2c, 0x72, 0xa4, 0x39, 0x7b, 0x13, 0xbe, 0x45, 0x53, 0xb5, 0xc4,
+ 0x9a, 0x2f, 0x3b, 0xeb,
+};
+static const unsigned char kat1515_nonce[] = {
+ 0xbc, 0xff, 0xaa, 0x34, 0xaa, 0xac, 0x32, 0x54,
+};
+static const unsigned char kat1515_persstr[] = {0};
+static const unsigned char kat1515_entropyinreseed[] = {
+ 0x90, 0x87, 0x42, 0x87, 0xa6, 0x89, 0xbb, 0x9d, 0x68, 0x53, 0x33, 0x0e,
+ 0xf7, 0x74, 0xba, 0x2f,
+};
+static const unsigned char kat1515_addinreseed[] = {0};
+static const unsigned char kat1515_addin0[] = {0};
+static const unsigned char kat1515_addin1[] = {0};
+static const unsigned char kat1515_retbits[] = {
+ 0xa1, 0x53, 0x34, 0x21, 0x97, 0x1e, 0x2c, 0xa2, 0x16, 0x0f, 0x2c, 0x50,
+ 0xc7, 0xd6, 0x09, 0xb1, 0xb6, 0xf5, 0x6b, 0xb7, 0xdd, 0x7f, 0xeb, 0x01,
+ 0x02, 0xd9, 0xa4, 0x99, 0x52, 0xf7, 0xaa, 0xb4, 0xa9, 0xaf, 0x4a, 0xb5,
+ 0x52, 0x04, 0x55, 0xad, 0x4b, 0xdb, 0x24, 0x2d, 0x68, 0x88, 0xda, 0xdd,
+ 0xb9, 0x23, 0xcf, 0x08, 0xff, 0x12, 0x1d, 0xf1, 0x14, 0xd8, 0xda, 0x43,
+ 0x75, 0xf3, 0xef, 0x00,
+};
+static const struct drbg_kat_pr_false kat1515_t = {
+ 14, kat1515_entropyin, kat1515_nonce, kat1515_persstr,
+ kat1515_entropyinreseed, kat1515_addinreseed, kat1515_addin0,
+ kat1515_addin1, kat1515_retbits
+};
+static const struct drbg_kat kat1515 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1515_t
+};
+
+static const unsigned char kat1516_entropyin[] = {
+ 0x0e, 0xbf, 0x2b, 0x35, 0xe3, 0xbb, 0x32, 0x47, 0x59, 0x43, 0x9b, 0x95,
+ 0xa2, 0x88, 0x06, 0x1f,
+};
+static const unsigned char kat1516_nonce[] = {
+ 0x85, 0xa8, 0x2c, 0x13, 0xcc, 0x42, 0xd7, 0x12,
+};
+static const unsigned char kat1516_persstr[] = {0};
+static const unsigned char kat1516_entropyinreseed[] = {
+ 0xdf, 0xfb, 0x5d, 0x11, 0x8b, 0xea, 0x70, 0x1d, 0x88, 0x51, 0xb3, 0x2c,
+ 0x87, 0xef, 0xf0, 0x1c,
+};
+static const unsigned char kat1516_addinreseed[] = {
+ 0xa5, 0x38, 0x19, 0x20, 0x80, 0x57, 0x18, 0xf3, 0xf6, 0xb3, 0x06, 0x61,
+ 0x01, 0x1a, 0x57, 0x5d,
+};
+static const unsigned char kat1516_addin0[] = {
+ 0x62, 0x90, 0x1f, 0xf5, 0xdb, 0xa5, 0x74, 0xf5, 0x3e, 0x13, 0xc6, 0xa6,
+ 0x2f, 0x89, 0xa2, 0x92,
+};
+static const unsigned char kat1516_addin1[] = {
+ 0xf1, 0xd5, 0x09, 0x2b, 0xbb, 0x3f, 0xdf, 0x50, 0xca, 0x79, 0xf3, 0xd8,
+ 0xb7, 0x6c, 0xa7, 0x93,
+};
+static const unsigned char kat1516_retbits[] = {
+ 0x0f, 0x24, 0x8a, 0xa8, 0x75, 0xfa, 0x2c, 0x12, 0xd5, 0x41, 0x1d, 0xdc,
+ 0xd3, 0xfb, 0x5b, 0x46, 0x6e, 0x14, 0xd9, 0x2b, 0xab, 0x2e, 0x02, 0x4e,
+ 0xed, 0x61, 0x2e, 0x98, 0x8c, 0xf5, 0x0d, 0xb1, 0xa7, 0x54, 0x5d, 0xf0,
+ 0x9f, 0x88, 0x6d, 0x51, 0x6d, 0xa5, 0xe0, 0x21, 0x12, 0x4d, 0xfc, 0x80,
+ 0xf6, 0x06, 0xfe, 0x08, 0xa6, 0x65, 0x37, 0x64, 0xab, 0xbc, 0xfa, 0x04,
+ 0x57, 0x5f, 0xb0, 0xc0,
+};
+static const struct drbg_kat_pr_false kat1516_t = {
+ 0, kat1516_entropyin, kat1516_nonce, kat1516_persstr,
+ kat1516_entropyinreseed, kat1516_addinreseed, kat1516_addin0,
+ kat1516_addin1, kat1516_retbits
+};
+static const struct drbg_kat kat1516 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1516_t
+};
+
+static const unsigned char kat1517_entropyin[] = {
+ 0x10, 0xee, 0x75, 0x33, 0x84, 0x5d, 0xc0, 0xf0, 0x23, 0x06, 0x1b, 0x20,
+ 0xaa, 0x73, 0x5e, 0xb7,
+};
+static const unsigned char kat1517_nonce[] = {
+ 0x35, 0xfd, 0xf5, 0x31, 0xf1, 0x88, 0xa7, 0x92,
+};
+static const unsigned char kat1517_persstr[] = {0};
+static const unsigned char kat1517_entropyinreseed[] = {
+ 0x31, 0xa2, 0x26, 0xc2, 0xbc, 0x57, 0x74, 0xfd, 0xb5, 0xe6, 0x8b, 0xf3,
+ 0xb0, 0xdc, 0x95, 0x14,
+};
+static const unsigned char kat1517_addinreseed[] = {
+ 0xae, 0x85, 0x20, 0x20, 0x16, 0xbf, 0xfa, 0x9a, 0x3f, 0x7f, 0x5a, 0x9a,
+ 0xd4, 0x03, 0xc8, 0x80,
+};
+static const unsigned char kat1517_addin0[] = {
+ 0xec, 0xda, 0x1e, 0xe2, 0xf9, 0xdf, 0xa3, 0x0a, 0x43, 0x6d, 0x7d, 0x14,
+ 0xe3, 0xe0, 0xa5, 0xaa,
+};
+static const unsigned char kat1517_addin1[] = {
+ 0x95, 0xa6, 0x32, 0xef, 0x2f, 0x1f, 0xb0, 0x35, 0x67, 0x43, 0xda, 0xb7,
+ 0xd6, 0x8b, 0x84, 0x10,
+};
+static const unsigned char kat1517_retbits[] = {
+ 0x47, 0x5f, 0x26, 0x22, 0x12, 0xa8, 0xfa, 0x70, 0x7d, 0x98, 0x3e, 0xbc,
+ 0x32, 0x21, 0xd4, 0x0f, 0xe5, 0xaf, 0xd0, 0xd5, 0x7f, 0x3f, 0x6c, 0xca,
+ 0x17, 0x32, 0x98, 0xa0, 0x12, 0x95, 0xd3, 0xd4, 0xd8, 0xfe, 0x9c, 0x08,
+ 0x77, 0x48, 0x49, 0x98, 0x7c, 0xa7, 0x6b, 0x02, 0x68, 0xdc, 0x38, 0x1c,
+ 0x66, 0xb2, 0xdf, 0xf1, 0x4d, 0x6c, 0xdf, 0x47, 0x28, 0x3c, 0x4b, 0x0b,
+ 0x27, 0xbd, 0xad, 0x7d,
+};
+static const struct drbg_kat_pr_false kat1517_t = {
+ 1, kat1517_entropyin, kat1517_nonce, kat1517_persstr,
+ kat1517_entropyinreseed, kat1517_addinreseed, kat1517_addin0,
+ kat1517_addin1, kat1517_retbits
+};
+static const struct drbg_kat kat1517 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1517_t
+};
+
+static const unsigned char kat1518_entropyin[] = {
+ 0xfa, 0xfc, 0xae, 0xf2, 0xed, 0xba, 0x52, 0xd4, 0x3f, 0x54, 0x5c, 0xe1,
+ 0x14, 0x53, 0x31, 0xc0,
+};
+static const unsigned char kat1518_nonce[] = {
+ 0xed, 0x9e, 0x93, 0x13, 0xc5, 0xa7, 0xe0, 0x22,
+};
+static const unsigned char kat1518_persstr[] = {0};
+static const unsigned char kat1518_entropyinreseed[] = {
+ 0xf6, 0xe6, 0x97, 0xd6, 0x32, 0x58, 0x88, 0xe6, 0xdf, 0x3e, 0x4e, 0x47,
+ 0x2f, 0xee, 0x64, 0x0f,
+};
+static const unsigned char kat1518_addinreseed[] = {
+ 0x04, 0xa7, 0x08, 0x33, 0xc5, 0xe9, 0x16, 0xa7, 0xfb, 0xd4, 0xa7, 0x95,
+ 0x67, 0x13, 0xa3, 0x05,
+};
+static const unsigned char kat1518_addin0[] = {
+ 0x7a, 0xb9, 0xb4, 0x53, 0x6f, 0xc0, 0xdf, 0x7b, 0xa3, 0xc3, 0x0b, 0x5c,
+ 0x2c, 0x87, 0xcd, 0x77,
+};
+static const unsigned char kat1518_addin1[] = {
+ 0xb7, 0x1b, 0x91, 0xc5, 0xa5, 0x5e, 0xa8, 0x36, 0x8e, 0x43, 0x8c, 0x94,
+ 0x3f, 0xf3, 0x9c, 0x3f,
+};
+static const unsigned char kat1518_retbits[] = {
+ 0x6a, 0x11, 0x3a, 0x62, 0xa6, 0x70, 0x0f, 0xb9, 0x8c, 0x2c, 0xbb, 0xc9,
+ 0x73, 0x37, 0x85, 0x03, 0xd9, 0x10, 0xad, 0xa0, 0x5a, 0xa8, 0xa3, 0x8e,
+ 0x18, 0x04, 0xf0, 0xd1, 0xcb, 0xbf, 0xfa, 0xe1, 0x3b, 0xa2, 0xf3, 0xab,
+ 0xc3, 0x6d, 0xeb, 0x2b, 0x39, 0x78, 0x4c, 0x31, 0xc8, 0xc1, 0x31, 0x8c,
+ 0x4a, 0x4b, 0x19, 0x4d, 0x55, 0x18, 0xc3, 0x9b, 0x06, 0xd7, 0x05, 0x57,
+ 0x4c, 0xe7, 0x02, 0x80,
+};
+static const struct drbg_kat_pr_false kat1518_t = {
+ 2, kat1518_entropyin, kat1518_nonce, kat1518_persstr,
+ kat1518_entropyinreseed, kat1518_addinreseed, kat1518_addin0,
+ kat1518_addin1, kat1518_retbits
+};
+static const struct drbg_kat kat1518 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1518_t
+};
+
+static const unsigned char kat1519_entropyin[] = {
+ 0xda, 0x1e, 0x20, 0x47, 0xbc, 0x9a, 0xf0, 0x2b, 0x91, 0x47, 0x56, 0xe9,
+ 0x6f, 0xdc, 0x2f, 0x25,
+};
+static const unsigned char kat1519_nonce[] = {
+ 0xb1, 0x67, 0xd6, 0x00, 0x1e, 0x06, 0x54, 0x0d,
+};
+static const unsigned char kat1519_persstr[] = {0};
+static const unsigned char kat1519_entropyinreseed[] = {
+ 0x85, 0x18, 0x7c, 0x63, 0x83, 0x49, 0x3b, 0xd8, 0x90, 0x5a, 0x92, 0x23,
+ 0xa3, 0x09, 0x0e, 0x22,
+};
+static const unsigned char kat1519_addinreseed[] = {
+ 0x36, 0xbe, 0xd8, 0x9a, 0x0e, 0xbe, 0x1c, 0x9d, 0x79, 0x79, 0x24, 0xf9,
+ 0xff, 0x44, 0x2d, 0x23,
+};
+static const unsigned char kat1519_addin0[] = {
+ 0xf9, 0xbe, 0xa5, 0x6f, 0x2f, 0x3f, 0x48, 0xb3, 0x80, 0xc0, 0x4a, 0x39,
+ 0x30, 0xac, 0x7a, 0x8e,
+};
+static const unsigned char kat1519_addin1[] = {
+ 0x5c, 0x29, 0xb5, 0xb5, 0x5a, 0x55, 0xa9, 0xb6, 0x84, 0x5a, 0xf9, 0xa1,
+ 0x7c, 0x67, 0xee, 0x45,
+};
+static const unsigned char kat1519_retbits[] = {
+ 0xcd, 0x69, 0x84, 0x4e, 0xeb, 0x18, 0x4a, 0x70, 0xd0, 0x53, 0x4b, 0x51,
+ 0x4c, 0x5a, 0xf3, 0xd2, 0x2e, 0x3e, 0xb6, 0x79, 0x4d, 0x13, 0x3e, 0x89,
+ 0x84, 0xb9, 0xa9, 0xb5, 0xea, 0x35, 0xf5, 0x89, 0xc0, 0x67, 0x70, 0x83,
+ 0xc3, 0x9f, 0x3c, 0x60, 0xdb, 0x7c, 0xbe, 0x58, 0xcb, 0xf7, 0xdf, 0x6f,
+ 0xcb, 0x15, 0xb6, 0xd7, 0x21, 0xa7, 0xb6, 0xa9, 0x4e, 0x1d, 0xc4, 0x08,
+ 0x6b, 0xb1, 0x3e, 0x05,
+};
+static const struct drbg_kat_pr_false kat1519_t = {
+ 3, kat1519_entropyin, kat1519_nonce, kat1519_persstr,
+ kat1519_entropyinreseed, kat1519_addinreseed, kat1519_addin0,
+ kat1519_addin1, kat1519_retbits
+};
+static const struct drbg_kat kat1519 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1519_t
+};
+
+static const unsigned char kat1520_entropyin[] = {
+ 0x75, 0xfa, 0x45, 0xe3, 0x12, 0xfe, 0x40, 0x4b, 0x2c, 0x2d, 0x04, 0x6c,
+ 0x95, 0x7b, 0xe4, 0x75,
+};
+static const unsigned char kat1520_nonce[] = {
+ 0x43, 0xf4, 0xab, 0xde, 0xc9, 0x95, 0x8a, 0x7b,
+};
+static const unsigned char kat1520_persstr[] = {0};
+static const unsigned char kat1520_entropyinreseed[] = {
+ 0x37, 0xf9, 0xaf, 0x34, 0x4a, 0x6d, 0x05, 0x07, 0xb5, 0x2a, 0x9b, 0xa7,
+ 0xc5, 0x59, 0x1a, 0x8f,
+};
+static const unsigned char kat1520_addinreseed[] = {
+ 0x60, 0xfe, 0x6b, 0xc8, 0xfe, 0x44, 0x0c, 0x77, 0xb8, 0x60, 0xe8, 0x0c,
+ 0xff, 0xff, 0xd0, 0xf9,
+};
+static const unsigned char kat1520_addin0[] = {
+ 0xf4, 0x9a, 0x52, 0x42, 0x28, 0xc4, 0x29, 0x6f, 0xcf, 0x84, 0xdc, 0x89,
+ 0x35, 0xc8, 0x21, 0x32,
+};
+static const unsigned char kat1520_addin1[] = {
+ 0x27, 0x2a, 0x13, 0xa8, 0xce, 0xfd, 0x6d, 0x53, 0x9c, 0x0b, 0xf7, 0x6b,
+ 0x22, 0xf7, 0xdc, 0x74,
+};
+static const unsigned char kat1520_retbits[] = {
+ 0x79, 0x9e, 0xe6, 0x4e, 0x0b, 0x59, 0x2c, 0xf2, 0x94, 0x63, 0x66, 0x07,
+ 0x1f, 0x8a, 0xbe, 0xce, 0x86, 0xac, 0x22, 0x10, 0xb6, 0x8f, 0x03, 0x86,
+ 0xfb, 0xa3, 0x5f, 0x95, 0x56, 0xa9, 0xa3, 0xb6, 0x1e, 0xe6, 0x2f, 0x73,
+ 0x64, 0xf0, 0x87, 0x5e, 0x68, 0x06, 0xd4, 0x0e, 0x6a, 0x65, 0x35, 0x41,
+ 0xb3, 0x1c, 0xa3, 0x3f, 0xe7, 0x07, 0xb6, 0x6c, 0x74, 0xb2, 0xe1, 0x57,
+ 0x35, 0xa1, 0x0c, 0x53,
+};
+static const struct drbg_kat_pr_false kat1520_t = {
+ 4, kat1520_entropyin, kat1520_nonce, kat1520_persstr,
+ kat1520_entropyinreseed, kat1520_addinreseed, kat1520_addin0,
+ kat1520_addin1, kat1520_retbits
+};
+static const struct drbg_kat kat1520 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1520_t
+};
+
+static const unsigned char kat1521_entropyin[] = {
+ 0x28, 0xf3, 0xba, 0xc6, 0x9b, 0xac, 0xa7, 0x30, 0x95, 0x14, 0x78, 0x34,
+ 0x66, 0x30, 0x5a, 0x86,
+};
+static const unsigned char kat1521_nonce[] = {
+ 0x37, 0x05, 0xb2, 0x1e, 0x2c, 0x31, 0xde, 0xe6,
+};
+static const unsigned char kat1521_persstr[] = {0};
+static const unsigned char kat1521_entropyinreseed[] = {
+ 0x00, 0x13, 0x5b, 0x11, 0x10, 0x85, 0x41, 0xc6, 0x8c, 0x86, 0x81, 0x53,
+ 0x70, 0x2f, 0x9e, 0xa1,
+};
+static const unsigned char kat1521_addinreseed[] = {
+ 0x98, 0x8b, 0x4e, 0x97, 0x77, 0x22, 0x6d, 0xb3, 0xad, 0x2f, 0xff, 0xb5,
+ 0x68, 0x64, 0xc1, 0x20,
+};
+static const unsigned char kat1521_addin0[] = {
+ 0x0e, 0xe8, 0xa9, 0x98, 0xfc, 0xd4, 0x86, 0xa3, 0x0a, 0x35, 0xe7, 0xfe,
+ 0xcc, 0x7f, 0xff, 0xa6,
+};
+static const unsigned char kat1521_addin1[] = {
+ 0x9e, 0x45, 0xcf, 0x0d, 0x81, 0x63, 0x75, 0x9e, 0x79, 0x12, 0x3b, 0xdd,
+ 0xea, 0x72, 0x05, 0xd9,
+};
+static const unsigned char kat1521_retbits[] = {
+ 0x4f, 0x4e, 0x76, 0x2f, 0x1b, 0x6d, 0x4b, 0x8e, 0xaa, 0x15, 0x53, 0x29,
+ 0xab, 0x29, 0x9f, 0x52, 0x0e, 0x5e, 0xe1, 0x9e, 0x7a, 0x65, 0x75, 0xc0,
+ 0x46, 0x52, 0xda, 0x31, 0x94, 0x32, 0x66, 0x22, 0x5a, 0xa6, 0xeb, 0x36,
+ 0x38, 0x8a, 0x03, 0xf1, 0x7a, 0xeb, 0xd6, 0xc7, 0x45, 0xfc, 0x63, 0x7a,
+ 0xac, 0xdf, 0xc5, 0x09, 0x6e, 0x31, 0x03, 0x19, 0x6d, 0x3f, 0x03, 0x86,
+ 0xd4, 0x2c, 0x50, 0xb4,
+};
+static const struct drbg_kat_pr_false kat1521_t = {
+ 5, kat1521_entropyin, kat1521_nonce, kat1521_persstr,
+ kat1521_entropyinreseed, kat1521_addinreseed, kat1521_addin0,
+ kat1521_addin1, kat1521_retbits
+};
+static const struct drbg_kat kat1521 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1521_t
+};
+
+static const unsigned char kat1522_entropyin[] = {
+ 0x90, 0x02, 0xab, 0xe2, 0x29, 0x7b, 0x61, 0xab, 0xb3, 0xe4, 0xde, 0x54,
+ 0xed, 0xbd, 0x18, 0xcf,
+};
+static const unsigned char kat1522_nonce[] = {
+ 0x46, 0xb1, 0x06, 0x13, 0x2b, 0x92, 0xb9, 0xd3,
+};
+static const unsigned char kat1522_persstr[] = {0};
+static const unsigned char kat1522_entropyinreseed[] = {
+ 0x78, 0xd7, 0x0d, 0xd7, 0xd7, 0x21, 0x3e, 0x59, 0x9e, 0x4e, 0x7b, 0xbd,
+ 0x52, 0xa0, 0xf9, 0x52,
+};
+static const unsigned char kat1522_addinreseed[] = {
+ 0x93, 0x19, 0x58, 0x6b, 0x5f, 0x89, 0x7a, 0x4a, 0x04, 0x0e, 0x3f, 0xa0,
+ 0x31, 0xdb, 0xb8, 0x91,
+};
+static const unsigned char kat1522_addin0[] = {
+ 0x44, 0x73, 0xcc, 0xa8, 0x48, 0x1d, 0xdd, 0x85, 0x23, 0x5f, 0xba, 0x35,
+ 0xbe, 0xe5, 0x39, 0x59,
+};
+static const unsigned char kat1522_addin1[] = {
+ 0x05, 0xc2, 0xa1, 0xc7, 0x1f, 0x0f, 0x42, 0x48, 0x1a, 0xfe, 0xc1, 0xbf,
+ 0xea, 0xca, 0x99, 0x0b,
+};
+static const unsigned char kat1522_retbits[] = {
+ 0x9b, 0xc1, 0x2b, 0x39, 0x48, 0xf9, 0x83, 0x64, 0x9d, 0x87, 0x3d, 0xf9,
+ 0xe6, 0xfe, 0x87, 0x1a, 0xa1, 0x4c, 0x46, 0x80, 0xb7, 0x60, 0x85, 0xc4,
+ 0x25, 0x4e, 0xc5, 0x68, 0xc3, 0x32, 0x4f, 0xf7, 0x6a, 0xd0, 0x1d, 0xcb,
+ 0x29, 0x13, 0x5e, 0xa5, 0x45, 0x48, 0x88, 0x44, 0x25, 0x71, 0x0f, 0xcc,
+ 0xc2, 0x80, 0x02, 0xf2, 0xf5, 0x50, 0x83, 0x18, 0xab, 0xce, 0x77, 0x9e,
+ 0x5b, 0xaa, 0x19, 0x35,
+};
+static const struct drbg_kat_pr_false kat1522_t = {
+ 6, kat1522_entropyin, kat1522_nonce, kat1522_persstr,
+ kat1522_entropyinreseed, kat1522_addinreseed, kat1522_addin0,
+ kat1522_addin1, kat1522_retbits
+};
+static const struct drbg_kat kat1522 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1522_t
+};
+
+static const unsigned char kat1523_entropyin[] = {
+ 0x12, 0xe7, 0xfc, 0xb4, 0x32, 0xd1, 0xfe, 0x19, 0x04, 0x7d, 0x5e, 0xb9,
+ 0x8e, 0x45, 0xe0, 0x9e,
+};
+static const unsigned char kat1523_nonce[] = {
+ 0xc6, 0x04, 0x1c, 0xda, 0xba, 0xa6, 0xa3, 0x94,
+};
+static const unsigned char kat1523_persstr[] = {0};
+static const unsigned char kat1523_entropyinreseed[] = {
+ 0xea, 0xbd, 0xb2, 0x74, 0x49, 0x8d, 0x51, 0xf3, 0x3f, 0xcd, 0xb0, 0x1b,
+ 0xe8, 0x08, 0xbd, 0x7a,
+};
+static const unsigned char kat1523_addinreseed[] = {
+ 0x6f, 0xd0, 0xa7, 0xbf, 0x2a, 0x25, 0xcc, 0xe7, 0xe5, 0xae, 0x19, 0x29,
+ 0x8b, 0x9d, 0x12, 0xa9,
+};
+static const unsigned char kat1523_addin0[] = {
+ 0xd8, 0x21, 0x53, 0x33, 0x42, 0xb3, 0x72, 0xf2, 0x38, 0x55, 0x0a, 0xa4,
+ 0xb6, 0x1f, 0x7a, 0x4f,
+};
+static const unsigned char kat1523_addin1[] = {
+ 0x80, 0x4c, 0x7f, 0xda, 0xae, 0x84, 0x30, 0xf3, 0xfb, 0xd8, 0xa2, 0xac,
+ 0x56, 0x15, 0x80, 0x25,
+};
+static const unsigned char kat1523_retbits[] = {
+ 0xc5, 0x59, 0x14, 0x73, 0x0d, 0x08, 0x76, 0x25, 0x53, 0x13, 0x97, 0xe7,
+ 0x54, 0x3f, 0x07, 0x35, 0x20, 0xed, 0x06, 0x3c, 0x7b, 0x9a, 0x66, 0xa7,
+ 0xca, 0x65, 0x52, 0xbc, 0xf3, 0x2d, 0x37, 0xad, 0x96, 0x39, 0xf9, 0xc3,
+ 0xde, 0x76, 0x0c, 0x87, 0xab, 0x77, 0xf2, 0x4d, 0xf6, 0x41, 0x69, 0x66,
+ 0xc9, 0x77, 0x43, 0x99, 0x3c, 0x27, 0xce, 0xbc, 0x18, 0x88, 0xa4, 0xc6,
+ 0xb0, 0x7b, 0xb1, 0x98,
+};
+static const struct drbg_kat_pr_false kat1523_t = {
+ 7, kat1523_entropyin, kat1523_nonce, kat1523_persstr,
+ kat1523_entropyinreseed, kat1523_addinreseed, kat1523_addin0,
+ kat1523_addin1, kat1523_retbits
+};
+static const struct drbg_kat kat1523 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1523_t
+};
+
+static const unsigned char kat1524_entropyin[] = {
+ 0xbf, 0x10, 0x19, 0x43, 0x66, 0x5c, 0x5b, 0x27, 0x5a, 0xb6, 0xe0, 0xdd,
+ 0x1d, 0x56, 0x03, 0x04,
+};
+static const unsigned char kat1524_nonce[] = {
+ 0xc5, 0x79, 0xf7, 0xdc, 0xc6, 0x41, 0x4c, 0xa5,
+};
+static const unsigned char kat1524_persstr[] = {0};
+static const unsigned char kat1524_entropyinreseed[] = {
+ 0x26, 0x0d, 0x29, 0x3f, 0xf7, 0x9a, 0xda, 0x3d, 0xbf, 0x7d, 0x41, 0x8f,
+ 0x7e, 0x85, 0x10, 0x63,
+};
+static const unsigned char kat1524_addinreseed[] = {
+ 0x8b, 0xde, 0x82, 0x7a, 0xaf, 0x12, 0x9c, 0x6a, 0xb5, 0xf6, 0x03, 0x9d,
+ 0x72, 0xb4, 0x94, 0x85,
+};
+static const unsigned char kat1524_addin0[] = {
+ 0xe5, 0xb5, 0x93, 0xcb, 0xc8, 0x07, 0xf6, 0x29, 0x73, 0xbb, 0x1c, 0xee,
+ 0x06, 0x8c, 0xeb, 0xa6,
+};
+static const unsigned char kat1524_addin1[] = {
+ 0x31, 0x66, 0xb0, 0x01, 0xf9, 0x24, 0x6c, 0xd3, 0x07, 0xa3, 0xe8, 0x08,
+ 0x22, 0xf7, 0x98, 0xa1,
+};
+static const unsigned char kat1524_retbits[] = {
+ 0x1e, 0x8d, 0xc8, 0x7a, 0xed, 0xaf, 0xef, 0xf8, 0x79, 0x5a, 0xa2, 0x92,
+ 0x1a, 0xd9, 0x06, 0xa5, 0xb8, 0x33, 0x35, 0xe8, 0x07, 0x3d, 0x3d, 0x88,
+ 0x29, 0x6f, 0x31, 0x71, 0x62, 0x7e, 0x2f, 0x50, 0xe4, 0x4c, 0xa4, 0xba,
+ 0xce, 0x9d, 0x0c, 0xc9, 0xb0, 0xf5, 0x10, 0x5a, 0x70, 0xfb, 0xa9, 0x48,
+ 0xf1, 0x2b, 0x20, 0x57, 0x30, 0x32, 0x96, 0xf9, 0x56, 0xf6, 0x7d, 0x57,
+ 0x3c, 0xb4, 0x23, 0x61,
+};
+static const struct drbg_kat_pr_false kat1524_t = {
+ 8, kat1524_entropyin, kat1524_nonce, kat1524_persstr,
+ kat1524_entropyinreseed, kat1524_addinreseed, kat1524_addin0,
+ kat1524_addin1, kat1524_retbits
+};
+static const struct drbg_kat kat1524 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1524_t
+};
+
+static const unsigned char kat1525_entropyin[] = {
+ 0x6b, 0x18, 0xda, 0x3c, 0x0a, 0x96, 0x69, 0x70, 0x5f, 0xb2, 0x01, 0xdf,
+ 0x9a, 0x51, 0x73, 0xdb,
+};
+static const unsigned char kat1525_nonce[] = {
+ 0x97, 0xcd, 0x95, 0x52, 0x25, 0xe9, 0xbc, 0x43,
+};
+static const unsigned char kat1525_persstr[] = {0};
+static const unsigned char kat1525_entropyinreseed[] = {
+ 0x74, 0x96, 0xcd, 0x7c, 0x68, 0x9e, 0x6d, 0x15, 0xdc, 0xd0, 0xba, 0xf0,
+ 0x07, 0x9c, 0x3c, 0xc5,
+};
+static const unsigned char kat1525_addinreseed[] = {
+ 0x0f, 0x22, 0x84, 0x24, 0xb9, 0xd2, 0x7a, 0x9f, 0x0c, 0x5c, 0x8b, 0x07,
+ 0x25, 0x87, 0x4f, 0x8d,
+};
+static const unsigned char kat1525_addin0[] = {
+ 0x62, 0xde, 0x38, 0x01, 0x71, 0x2c, 0x16, 0x6f, 0xda, 0x68, 0x3f, 0xaf,
+ 0x15, 0x9e, 0x55, 0xa7,
+};
+static const unsigned char kat1525_addin1[] = {
+ 0x9b, 0xc9, 0xaf, 0xdf, 0x65, 0xfe, 0x03, 0xf0, 0x86, 0x8c, 0xf5, 0xb1,
+ 0x13, 0x6d, 0xed, 0xf3,
+};
+static const unsigned char kat1525_retbits[] = {
+ 0x31, 0x7c, 0x2a, 0xa9, 0x6f, 0x4d, 0x3c, 0xf7, 0x9b, 0xa8, 0x73, 0x6e,
+ 0x7a, 0xbc, 0xd9, 0x34, 0xa8, 0x74, 0x91, 0x92, 0xe4, 0xb2, 0x1e, 0xe0,
+ 0xd1, 0xfe, 0xb9, 0x30, 0x09, 0x3f, 0x98, 0x12, 0xab, 0x7c, 0xc6, 0xca,
+ 0x75, 0x50, 0xa0, 0x2d, 0xbe, 0xca, 0x65, 0x28, 0xa9, 0x1b, 0x88, 0xdf,
+ 0xdf, 0x04, 0xaf, 0x38, 0x31, 0xf7, 0xe5, 0x5c, 0xcd, 0x92, 0x71, 0x72,
+ 0xe4, 0x34, 0x01, 0xe8,
+};
+static const struct drbg_kat_pr_false kat1525_t = {
+ 9, kat1525_entropyin, kat1525_nonce, kat1525_persstr,
+ kat1525_entropyinreseed, kat1525_addinreseed, kat1525_addin0,
+ kat1525_addin1, kat1525_retbits
+};
+static const struct drbg_kat kat1525 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1525_t
+};
+
+static const unsigned char kat1526_entropyin[] = {
+ 0xf8, 0x1d, 0x07, 0x59, 0x38, 0xbc, 0x82, 0x68, 0x93, 0xc5, 0x75, 0x15,
+ 0x84, 0x06, 0x67, 0x07,
+};
+static const unsigned char kat1526_nonce[] = {
+ 0x78, 0xae, 0x60, 0x37, 0xc7, 0x7f, 0x6c, 0xaf,
+};
+static const unsigned char kat1526_persstr[] = {0};
+static const unsigned char kat1526_entropyinreseed[] = {
+ 0x61, 0xc2, 0xb1, 0x94, 0x9b, 0x10, 0x02, 0xb0, 0xcc, 0x08, 0xb3, 0x83,
+ 0xc4, 0x5e, 0x0c, 0xde,
+};
+static const unsigned char kat1526_addinreseed[] = {
+ 0xf5, 0xc0, 0x00, 0x0c, 0xfe, 0xf6, 0xf9, 0x78, 0x8e, 0x89, 0xd6, 0x8a,
+ 0xdd, 0xc0, 0x98, 0x9a,
+};
+static const unsigned char kat1526_addin0[] = {
+ 0xba, 0xd0, 0xe2, 0x8f, 0xeb, 0x48, 0xa9, 0x52, 0x34, 0x08, 0xd6, 0xb8,
+ 0xbd, 0x6a, 0xec, 0xbc,
+};
+static const unsigned char kat1526_addin1[] = {
+ 0x9b, 0x8b, 0x1b, 0x6b, 0x21, 0x46, 0x43, 0x2f, 0xaa, 0xf3, 0xa4, 0xff,
+ 0x09, 0x85, 0xa1, 0x5a,
+};
+static const unsigned char kat1526_retbits[] = {
+ 0xbd, 0xf6, 0x88, 0xb9, 0x71, 0x5c, 0xc4, 0xcb, 0xe7, 0x2e, 0x15, 0xdc,
+ 0xd8, 0xa6, 0x59, 0x6b, 0xa2, 0xbd, 0x00, 0x39, 0x53, 0xeb, 0xd2, 0xbf,
+ 0xe6, 0x92, 0x12, 0x90, 0x9a, 0xde, 0xf0, 0xc3, 0x67, 0xb4, 0x73, 0xed,
+ 0xb4, 0x5c, 0x41, 0xac, 0xdd, 0x22, 0x83, 0x6f, 0x5f, 0xc9, 0xfd, 0x47,
+ 0xcb, 0x35, 0x4b, 0x45, 0x7f, 0x25, 0xcc, 0x81, 0x27, 0xed, 0x16, 0x25,
+ 0xb8, 0xfa, 0x4a, 0xaf,
+};
+static const struct drbg_kat_pr_false kat1526_t = {
+ 10, kat1526_entropyin, kat1526_nonce, kat1526_persstr,
+ kat1526_entropyinreseed, kat1526_addinreseed, kat1526_addin0,
+ kat1526_addin1, kat1526_retbits
+};
+static const struct drbg_kat kat1526 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1526_t
+};
+
+static const unsigned char kat1527_entropyin[] = {
+ 0x57, 0xce, 0xb9, 0xee, 0x59, 0x5c, 0x6e, 0x37, 0x15, 0xd9, 0x01, 0x94,
+ 0x02, 0x1a, 0xea, 0x79,
+};
+static const unsigned char kat1527_nonce[] = {
+ 0xfb, 0x51, 0x85, 0x69, 0x26, 0xf1, 0xb0, 0x68,
+};
+static const unsigned char kat1527_persstr[] = {0};
+static const unsigned char kat1527_entropyinreseed[] = {
+ 0x04, 0x5b, 0x01, 0xa3, 0x47, 0xc6, 0x73, 0x0f, 0xce, 0xb1, 0xf2, 0xf5,
+ 0xba, 0x76, 0x03, 0x37,
+};
+static const unsigned char kat1527_addinreseed[] = {
+ 0x63, 0xec, 0xa0, 0x7e, 0xb8, 0xf4, 0x9b, 0x54, 0xa5, 0x34, 0xe0, 0xb4,
+ 0x09, 0x25, 0x86, 0x17,
+};
+static const unsigned char kat1527_addin0[] = {
+ 0x34, 0xee, 0x56, 0xa0, 0x83, 0xc0, 0xb5, 0xf7, 0xd0, 0xeb, 0x65, 0xbd,
+ 0x42, 0xda, 0x72, 0x7e,
+};
+static const unsigned char kat1527_addin1[] = {
+ 0xa4, 0x87, 0x3d, 0x13, 0x09, 0x3c, 0x72, 0x54, 0x19, 0xca, 0xa4, 0x12,
+ 0x4d, 0xbf, 0xad, 0x6b,
+};
+static const unsigned char kat1527_retbits[] = {
+ 0xf1, 0x55, 0x78, 0x39, 0x68, 0x90, 0xd4, 0xa0, 0xc0, 0xac, 0x22, 0xe5,
+ 0x56, 0x69, 0xa1, 0x84, 0xfd, 0xb5, 0x5c, 0xab, 0x33, 0x2a, 0xf7, 0xa6,
+ 0x21, 0x02, 0xc2, 0xd1, 0x81, 0xf1, 0x14, 0xfc, 0x34, 0xb3, 0xe5, 0x89,
+ 0xb8, 0xa8, 0xc0, 0x2e, 0xe3, 0x5e, 0x9e, 0x1a, 0xa8, 0xaf, 0x28, 0x6d,
+ 0xd1, 0xad, 0xdc, 0xc2, 0x4b, 0xad, 0x82, 0x11, 0xdc, 0x90, 0xd7, 0x38,
+ 0x09, 0xa4, 0x26, 0x70,
+};
+static const struct drbg_kat_pr_false kat1527_t = {
+ 11, kat1527_entropyin, kat1527_nonce, kat1527_persstr,
+ kat1527_entropyinreseed, kat1527_addinreseed, kat1527_addin0,
+ kat1527_addin1, kat1527_retbits
+};
+static const struct drbg_kat kat1527 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1527_t
+};
+
+static const unsigned char kat1528_entropyin[] = {
+ 0x2c, 0x43, 0xf1, 0x4c, 0xd4, 0xa2, 0x62, 0xdf, 0xa1, 0xf3, 0xa7, 0x3d,
+ 0x48, 0xf6, 0x78, 0xae,
+};
+static const unsigned char kat1528_nonce[] = {
+ 0xe1, 0xdd, 0x9b, 0x8d, 0x98, 0x55, 0xd6, 0x47,
+};
+static const unsigned char kat1528_persstr[] = {0};
+static const unsigned char kat1528_entropyinreseed[] = {
+ 0x67, 0xce, 0xbc, 0x59, 0xc1, 0x87, 0xaf, 0x25, 0x98, 0xea, 0x15, 0x8f,
+ 0x0d, 0x0c, 0xdc, 0xeb,
+};
+static const unsigned char kat1528_addinreseed[] = {
+ 0xb0, 0x9c, 0xe2, 0xcf, 0xf6, 0xd8, 0xb3, 0x52, 0x22, 0x8c, 0x00, 0x8b,
+ 0x6a, 0xfb, 0x68, 0x20,
+};
+static const unsigned char kat1528_addin0[] = {
+ 0xb6, 0xed, 0xfe, 0x4c, 0xbd, 0xab, 0x74, 0xe5, 0xf1, 0xea, 0x1f, 0x44,
+ 0x08, 0x4e, 0xf2, 0xaf,
+};
+static const unsigned char kat1528_addin1[] = {
+ 0x27, 0x44, 0xba, 0x1a, 0x4d, 0x41, 0xcb, 0x78, 0xb1, 0xa0, 0x23, 0x02,
+ 0xbd, 0x72, 0x4e, 0x1e,
+};
+static const unsigned char kat1528_retbits[] = {
+ 0x0c, 0xea, 0x1f, 0x4b, 0xbb, 0x78, 0x06, 0x01, 0x44, 0xb2, 0x21, 0x01,
+ 0x89, 0x83, 0x64, 0xa0, 0x9c, 0x86, 0x74, 0x1b, 0x2a, 0xa2, 0x51, 0x25,
+ 0xdd, 0x82, 0x5c, 0xd2, 0x8c, 0x74, 0x47, 0xbe, 0x68, 0x80, 0x1d, 0xe5,
+ 0xe8, 0xe2, 0x0a, 0x2b, 0xc8, 0xaa, 0xf3, 0x45, 0x9b, 0x8c, 0xc7, 0xc5,
+ 0xa0, 0x49, 0x30, 0x27, 0xb2, 0xae, 0x78, 0x88, 0xb3, 0x36, 0x8f, 0x19,
+ 0x00, 0x83, 0x1d, 0x9a,
+};
+static const struct drbg_kat_pr_false kat1528_t = {
+ 12, kat1528_entropyin, kat1528_nonce, kat1528_persstr,
+ kat1528_entropyinreseed, kat1528_addinreseed, kat1528_addin0,
+ kat1528_addin1, kat1528_retbits
+};
+static const struct drbg_kat kat1528 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1528_t
+};
+
+static const unsigned char kat1529_entropyin[] = {
+ 0x5b, 0xe3, 0xbb, 0x2a, 0x3f, 0xaa, 0x2e, 0x10, 0x7b, 0xe5, 0x50, 0x12,
+ 0xe9, 0x2d, 0xc6, 0x2f,
+};
+static const unsigned char kat1529_nonce[] = {
+ 0x04, 0x5e, 0x50, 0x90, 0x15, 0x8d, 0x31, 0xcf,
+};
+static const unsigned char kat1529_persstr[] = {0};
+static const unsigned char kat1529_entropyinreseed[] = {
+ 0x2b, 0x46, 0x2f, 0xf9, 0x72, 0x9c, 0x1b, 0x92, 0x90, 0xa8, 0x17, 0xb2,
+ 0xa1, 0xae, 0x3f, 0x94,
+};
+static const unsigned char kat1529_addinreseed[] = {
+ 0xd9, 0x84, 0xae, 0xe6, 0xb0, 0xee, 0x03, 0x25, 0xba, 0x17, 0xb3, 0xc1,
+ 0x0a, 0x25, 0xf1, 0x8d,
+};
+static const unsigned char kat1529_addin0[] = {
+ 0x86, 0x83, 0x20, 0xb8, 0x3f, 0x1b, 0x39, 0xe3, 0x94, 0x37, 0x7b, 0x5f,
+ 0xb5, 0x28, 0xdb, 0xbb,
+};
+static const unsigned char kat1529_addin1[] = {
+ 0xd6, 0x90, 0xea, 0xa8, 0x0d, 0x28, 0xa5, 0x34, 0x1d, 0x75, 0x08, 0x94,
+ 0x01, 0x4d, 0xdd, 0x8d,
+};
+static const unsigned char kat1529_retbits[] = {
+ 0xf9, 0xeb, 0x2a, 0x7a, 0x58, 0xc2, 0x46, 0x77, 0x39, 0x97, 0x2e, 0x1e,
+ 0x24, 0x56, 0x9c, 0x97, 0x62, 0x4e, 0xe0, 0xad, 0x5f, 0x79, 0xf1, 0x26,
+ 0x65, 0xce, 0x0c, 0x5a, 0x65, 0x01, 0x80, 0x46, 0x3d, 0xef, 0x3d, 0xc3,
+ 0x35, 0x15, 0x03, 0x04, 0x49, 0x70, 0x6a, 0x3d, 0x4e, 0xdc, 0x4c, 0x49,
+ 0x28, 0xf8, 0x55, 0x81, 0x49, 0xfe, 0xde, 0x30, 0xc5, 0xf3, 0x12, 0x23,
+ 0xd8, 0x65, 0x35, 0x4a,
+};
+static const struct drbg_kat_pr_false kat1529_t = {
+ 13, kat1529_entropyin, kat1529_nonce, kat1529_persstr,
+ kat1529_entropyinreseed, kat1529_addinreseed, kat1529_addin0,
+ kat1529_addin1, kat1529_retbits
+};
+static const struct drbg_kat kat1529 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1529_t
+};
+
+static const unsigned char kat1530_entropyin[] = {
+ 0x1d, 0x04, 0x36, 0xa5, 0xda, 0xd6, 0x6a, 0x81, 0x2e, 0x03, 0x52, 0xed,
+ 0x0c, 0x02, 0x91, 0xf6,
+};
+static const unsigned char kat1530_nonce[] = {
+ 0xd1, 0xf2, 0xe9, 0x37, 0x24, 0x3d, 0xff, 0x92,
+};
+static const unsigned char kat1530_persstr[] = {0};
+static const unsigned char kat1530_entropyinreseed[] = {
+ 0xa9, 0x1d, 0xc1, 0x81, 0xe9, 0x8d, 0x78, 0xe1, 0xc2, 0xc6, 0x39, 0xf9,
+ 0x65, 0x3c, 0x4c, 0x3b,
+};
+static const unsigned char kat1530_addinreseed[] = {
+ 0x4b, 0xf6, 0xfc, 0xe2, 0x8e, 0x2a, 0xdf, 0x33, 0xa0, 0x86, 0x3d, 0xd3,
+ 0xdb, 0xda, 0x71, 0x72,
+};
+static const unsigned char kat1530_addin0[] = {
+ 0x79, 0x74, 0xe5, 0xac, 0xed, 0x47, 0xec, 0x8b, 0x66, 0x99, 0x72, 0xd7,
+ 0xc5, 0xbd, 0xe5, 0xba,
+};
+static const unsigned char kat1530_addin1[] = {
+ 0x89, 0x03, 0x3e, 0xfa, 0x2c, 0xc7, 0x09, 0x0e, 0x7a, 0x0d, 0x1f, 0x78,
+ 0xde, 0x1d, 0x87, 0x94,
+};
+static const unsigned char kat1530_retbits[] = {
+ 0xf8, 0x57, 0x39, 0x76, 0xe2, 0xd1, 0x13, 0xcb, 0x16, 0x4f, 0x05, 0x00,
+ 0x3c, 0x11, 0x6f, 0x07, 0x88, 0x34, 0x6c, 0x85, 0x40, 0xd7, 0x66, 0x15,
+ 0xf6, 0x67, 0xed, 0x96, 0x8f, 0xde, 0x0f, 0x7d, 0x3f, 0xc0, 0x10, 0xfc,
+ 0xbe, 0x0d, 0xff, 0x8c, 0xb2, 0xb0, 0xcc, 0x33, 0xfa, 0xae, 0x9e, 0xb2,
+ 0x51, 0xf3, 0x84, 0x5a, 0xf1, 0xdf, 0x65, 0x45, 0x0c, 0xf5, 0x8c, 0x6e,
+ 0xe6, 0xe1, 0xb3, 0x82,
+};
+static const struct drbg_kat_pr_false kat1530_t = {
+ 14, kat1530_entropyin, kat1530_nonce, kat1530_persstr,
+ kat1530_entropyinreseed, kat1530_addinreseed, kat1530_addin0,
+ kat1530_addin1, kat1530_retbits
+};
+static const struct drbg_kat kat1530 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1530_t
+};
+
+static const unsigned char kat1531_entropyin[] = {
+ 0x13, 0xfa, 0x3e, 0x44, 0x5a, 0xa9, 0x61, 0xee, 0xfc, 0xf6, 0x01, 0x6e,
+ 0x49, 0x9f, 0x55, 0x9f,
+};
+static const unsigned char kat1531_nonce[] = {
+ 0x30, 0xdc, 0x8d, 0x26, 0x04, 0xa5, 0x60, 0x05,
+};
+static const unsigned char kat1531_persstr[] = {
+ 0xda, 0x20, 0x64, 0xc6, 0x59, 0xde, 0x89, 0xb4, 0xf0, 0xcf, 0x65, 0x8d,
+ 0x43, 0x54, 0xc2, 0x80,
+};
+static const unsigned char kat1531_entropyinreseed[] = {
+ 0x0d, 0xd9, 0xfb, 0x5e, 0x7a, 0x47, 0xe2, 0x8c, 0xd4, 0x92, 0x97, 0xa6,
+ 0xc1, 0x3d, 0x9f, 0xa5,
+};
+static const unsigned char kat1531_addinreseed[] = {0};
+static const unsigned char kat1531_addin0[] = {0};
+static const unsigned char kat1531_addin1[] = {0};
+static const unsigned char kat1531_retbits[] = {
+ 0x65, 0x9e, 0x92, 0x10, 0x05, 0x2d, 0x6c, 0x5b, 0x5f, 0xd5, 0xe4, 0x9c,
+ 0x7f, 0x6b, 0xb5, 0x34, 0xa5, 0x3e, 0x95, 0xf3, 0x1d, 0xf0, 0xec, 0xa7,
+ 0xb9, 0x96, 0x8e, 0x2c, 0xf3, 0xd5, 0xfe, 0x7b, 0x4d, 0x20, 0xb6, 0x97,
+ 0x26, 0xdb, 0x5e, 0x2c, 0x8a, 0x80, 0xe8, 0xb6, 0xf6, 0x0e, 0xee, 0x71,
+ 0x07, 0x4a, 0x9f, 0xcd, 0x26, 0x43, 0x20, 0xb1, 0xc5, 0x33, 0xaf, 0x92,
+ 0xc8, 0x23, 0xac, 0x7a,
+};
+static const struct drbg_kat_pr_false kat1531_t = {
+ 0, kat1531_entropyin, kat1531_nonce, kat1531_persstr,
+ kat1531_entropyinreseed, kat1531_addinreseed, kat1531_addin0,
+ kat1531_addin1, kat1531_retbits
+};
+static const struct drbg_kat kat1531 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1531_t
+};
+
+static const unsigned char kat1532_entropyin[] = {
+ 0x99, 0xac, 0xd5, 0x1a, 0xc4, 0xa7, 0x8e, 0xda, 0xe4, 0x41, 0xb4, 0xd1,
+ 0x18, 0x2c, 0xd9, 0x76,
+};
+static const unsigned char kat1532_nonce[] = {
+ 0xfb, 0xaf, 0xfd, 0x77, 0x49, 0x57, 0x3b, 0xd0,
+};
+static const unsigned char kat1532_persstr[] = {
+ 0x0a, 0x7f, 0x73, 0x96, 0x6d, 0xc7, 0xf9, 0xf4, 0x14, 0x82, 0xa8, 0x70,
+ 0xc3, 0xa8, 0xea, 0xce,
+};
+static const unsigned char kat1532_entropyinreseed[] = {
+ 0x72, 0x5c, 0xf1, 0x81, 0x22, 0x9d, 0x41, 0x74, 0x1f, 0x02, 0xd1, 0x47,
+ 0xd7, 0xf0, 0xbc, 0x1c,
+};
+static const unsigned char kat1532_addinreseed[] = {0};
+static const unsigned char kat1532_addin0[] = {0};
+static const unsigned char kat1532_addin1[] = {0};
+static const unsigned char kat1532_retbits[] = {
+ 0x7f, 0xd5, 0x50, 0x14, 0x7e, 0xc8, 0x24, 0x11, 0x8b, 0x64, 0x4f, 0x83,
+ 0xe6, 0xa0, 0x85, 0x5e, 0x41, 0x67, 0xa1, 0xf6, 0x49, 0x6f, 0xd6, 0xc0,
+ 0xd3, 0x42, 0xdb, 0x4a, 0xb1, 0x36, 0xcd, 0xe9, 0x6e, 0x9a, 0xbc, 0x5e,
+ 0x75, 0x9c, 0x7d, 0x28, 0xb7, 0x8a, 0xfd, 0x69, 0x71, 0x27, 0x94, 0x62,
+ 0x82, 0xa3, 0x20, 0x24, 0xe3, 0x85, 0x5f, 0xc0, 0xb5, 0x7b, 0x36, 0xaa,
+ 0x9d, 0x0e, 0xd3, 0xa1,
+};
+static const struct drbg_kat_pr_false kat1532_t = {
+ 1, kat1532_entropyin, kat1532_nonce, kat1532_persstr,
+ kat1532_entropyinreseed, kat1532_addinreseed, kat1532_addin0,
+ kat1532_addin1, kat1532_retbits
+};
+static const struct drbg_kat kat1532 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1532_t
+};
+
+static const unsigned char kat1533_entropyin[] = {
+ 0x3a, 0xf6, 0x7d, 0x00, 0xfd, 0xf0, 0xe7, 0x3f, 0x59, 0x59, 0x1d, 0x57,
+ 0xb8, 0xf6, 0x15, 0x3b,
+};
+static const unsigned char kat1533_nonce[] = {
+ 0x69, 0x81, 0xc8, 0x84, 0x47, 0x61, 0x20, 0xc4,
+};
+static const unsigned char kat1533_persstr[] = {
+ 0xf9, 0x52, 0x76, 0x30, 0x5a, 0x1c, 0x0e, 0x3d, 0xa2, 0xde, 0x5c, 0x70,
+ 0xa7, 0xba, 0x97, 0x0f,
+};
+static const unsigned char kat1533_entropyinreseed[] = {
+ 0x8f, 0xe4, 0xa3, 0xd6, 0xa0, 0x19, 0x9b, 0x23, 0x54, 0x5d, 0xf9, 0x9c,
+ 0xa6, 0xef, 0x90, 0x0e,
+};
+static const unsigned char kat1533_addinreseed[] = {0};
+static const unsigned char kat1533_addin0[] = {0};
+static const unsigned char kat1533_addin1[] = {0};
+static const unsigned char kat1533_retbits[] = {
+ 0x69, 0xaf, 0x02, 0xa4, 0x06, 0xf2, 0x63, 0xee, 0xea, 0xf7, 0xa4, 0xc4,
+ 0x80, 0x1b, 0xf3, 0x9c, 0x3f, 0x44, 0x0d, 0xb9, 0xbc, 0x31, 0xb5, 0x23,
+ 0x83, 0x17, 0x17, 0xf6, 0x94, 0x89, 0x87, 0x79, 0x7b, 0x34, 0x7f, 0x12,
+ 0xaf, 0x9b, 0x4b, 0x4f, 0xbe, 0xad, 0xa3, 0xa4, 0xd4, 0x16, 0xbf, 0x98,
+ 0x6a, 0xa9, 0x24, 0x89, 0x37, 0xc3, 0x18, 0xe9, 0x3e, 0x55, 0x03, 0x9b,
+ 0x64, 0x90, 0x24, 0xa2,
+};
+static const struct drbg_kat_pr_false kat1533_t = {
+ 2, kat1533_entropyin, kat1533_nonce, kat1533_persstr,
+ kat1533_entropyinreseed, kat1533_addinreseed, kat1533_addin0,
+ kat1533_addin1, kat1533_retbits
+};
+static const struct drbg_kat kat1533 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1533_t
+};
+
+static const unsigned char kat1534_entropyin[] = {
+ 0xa2, 0x13, 0x6b, 0x0d, 0x5c, 0xa7, 0x83, 0x49, 0x40, 0xd9, 0x06, 0x95,
+ 0x48, 0xf5, 0xdb, 0xa5,
+};
+static const unsigned char kat1534_nonce[] = {
+ 0x90, 0xb0, 0x65, 0x92, 0xe2, 0x31, 0x54, 0x7a,
+};
+static const unsigned char kat1534_persstr[] = {
+ 0xf9, 0xc2, 0xdf, 0xf3, 0x99, 0x2c, 0xa9, 0xae, 0xd0, 0x07, 0x85, 0xc2,
+ 0x16, 0xd2, 0xae, 0x18,
+};
+static const unsigned char kat1534_entropyinreseed[] = {
+ 0xdd, 0xd3, 0x75, 0x74, 0x77, 0xd8, 0xe3, 0x25, 0x61, 0x84, 0x57, 0x0d,
+ 0xf1, 0xa6, 0xa4, 0x4b,
+};
+static const unsigned char kat1534_addinreseed[] = {0};
+static const unsigned char kat1534_addin0[] = {0};
+static const unsigned char kat1534_addin1[] = {0};
+static const unsigned char kat1534_retbits[] = {
+ 0x0a, 0x72, 0x7d, 0x30, 0x17, 0xa4, 0x47, 0x71, 0xf9, 0x84, 0x42, 0xfd,
+ 0xf5, 0xf1, 0xba, 0xb0, 0x66, 0x65, 0xf9, 0x3f, 0x19, 0xd2, 0xe1, 0xe6,
+ 0xef, 0x91, 0x73, 0x8a, 0x03, 0x7b, 0x98, 0xb8, 0x3a, 0xac, 0x19, 0xe4,
+ 0x5b, 0xde, 0x47, 0x91, 0xcf, 0x74, 0x16, 0x8a, 0x26, 0x0e, 0xbb, 0x1e,
+ 0x05, 0x85, 0x56, 0xd3, 0x1e, 0x02, 0x7d, 0xb4, 0x37, 0xb8, 0x28, 0x22,
+ 0x2e, 0x51, 0x5b, 0x69,
+};
+static const struct drbg_kat_pr_false kat1534_t = {
+ 3, kat1534_entropyin, kat1534_nonce, kat1534_persstr,
+ kat1534_entropyinreseed, kat1534_addinreseed, kat1534_addin0,
+ kat1534_addin1, kat1534_retbits
+};
+static const struct drbg_kat kat1534 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1534_t
+};
+
+static const unsigned char kat1535_entropyin[] = {
+ 0x97, 0x16, 0x3a, 0xf4, 0x5a, 0xd8, 0x33, 0x60, 0x2f, 0x32, 0xf9, 0x38,
+ 0x85, 0x55, 0x46, 0xa9,
+};
+static const unsigned char kat1535_nonce[] = {
+ 0x37, 0x93, 0x10, 0x74, 0xde, 0xd1, 0xf7, 0x78,
+};
+static const unsigned char kat1535_persstr[] = {
+ 0x38, 0x6a, 0x07, 0xfe, 0x49, 0x3f, 0x90, 0xee, 0x72, 0xeb, 0x3a, 0x65,
+ 0x2c, 0x95, 0x58, 0xcb,
+};
+static const unsigned char kat1535_entropyinreseed[] = {
+ 0x62, 0x51, 0x6c, 0x22, 0xa7, 0x36, 0xd6, 0x98, 0x4b, 0xd8, 0xd3, 0xf8,
+ 0xd9, 0xfa, 0xc1, 0xe7,
+};
+static const unsigned char kat1535_addinreseed[] = {0};
+static const unsigned char kat1535_addin0[] = {0};
+static const unsigned char kat1535_addin1[] = {0};
+static const unsigned char kat1535_retbits[] = {
+ 0xb9, 0x05, 0x3e, 0x87, 0xe8, 0x28, 0x74, 0x15, 0x5e, 0x5d, 0xeb, 0x8f,
+ 0xc4, 0x49, 0x9a, 0xa8, 0x1b, 0xdf, 0x24, 0xba, 0xc3, 0xef, 0x39, 0x9a,
+ 0x29, 0x2b, 0x05, 0xd0, 0xb8, 0x79, 0xfb, 0x75, 0xa5, 0x3f, 0x71, 0xbb,
+ 0x48, 0xca, 0x5a, 0xbc, 0x55, 0x83, 0x47, 0xd6, 0xdb, 0x37, 0xb5, 0x53,
+ 0x4c, 0xcd, 0x7e, 0xf0, 0x8f, 0xeb, 0x3a, 0x0e, 0x8a, 0x74, 0x01, 0xa4,
+ 0xda, 0x3c, 0x9c, 0x59,
+};
+static const struct drbg_kat_pr_false kat1535_t = {
+ 4, kat1535_entropyin, kat1535_nonce, kat1535_persstr,
+ kat1535_entropyinreseed, kat1535_addinreseed, kat1535_addin0,
+ kat1535_addin1, kat1535_retbits
+};
+static const struct drbg_kat kat1535 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1535_t
+};
+
+static const unsigned char kat1536_entropyin[] = {
+ 0xe5, 0x41, 0x27, 0x5a, 0x47, 0x75, 0x5d, 0x4e, 0xf6, 0xab, 0x52, 0xb8,
+ 0x1b, 0x98, 0x4c, 0x99,
+};
+static const unsigned char kat1536_nonce[] = {
+ 0x5d, 0x33, 0x83, 0x76, 0x79, 0xcd, 0x5d, 0xbb,
+};
+static const unsigned char kat1536_persstr[] = {
+ 0x13, 0x5c, 0x22, 0xe4, 0xcb, 0xf8, 0x13, 0x7d, 0xab, 0xbf, 0x2c, 0xef,
+ 0xee, 0xb7, 0x6d, 0xb6,
+};
+static const unsigned char kat1536_entropyinreseed[] = {
+ 0x0e, 0xc9, 0x42, 0x0c, 0x02, 0x81, 0x73, 0xb9, 0x7d, 0x1e, 0x96, 0x15,
+ 0x93, 0x8a, 0x61, 0x29,
+};
+static const unsigned char kat1536_addinreseed[] = {0};
+static const unsigned char kat1536_addin0[] = {0};
+static const unsigned char kat1536_addin1[] = {0};
+static const unsigned char kat1536_retbits[] = {
+ 0xed, 0x76, 0x58, 0x14, 0xcd, 0xde, 0x16, 0x7b, 0x62, 0xe4, 0xb0, 0xfe,
+ 0x6e, 0xd8, 0x45, 0x0f, 0x14, 0xe6, 0xf1, 0x16, 0x45, 0x45, 0x70, 0xad,
+ 0xa2, 0xaf, 0x13, 0x94, 0xaa, 0xa5, 0xaf, 0x68, 0xbe, 0xec, 0x0e, 0x2f,
+ 0x70, 0x93, 0x3c, 0x5b, 0x97, 0x3b, 0x5e, 0x1a, 0x75, 0x59, 0x63, 0x43,
+ 0x18, 0xf4, 0xe6, 0x04, 0x28, 0xf9, 0x30, 0xac, 0xda, 0x51, 0x3c, 0x20,
+ 0x79, 0x5b, 0xf0, 0x59,
+};
+static const struct drbg_kat_pr_false kat1536_t = {
+ 5, kat1536_entropyin, kat1536_nonce, kat1536_persstr,
+ kat1536_entropyinreseed, kat1536_addinreseed, kat1536_addin0,
+ kat1536_addin1, kat1536_retbits
+};
+static const struct drbg_kat kat1536 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1536_t
+};
+
+static const unsigned char kat1537_entropyin[] = {
+ 0xd3, 0x5a, 0x70, 0xca, 0x82, 0x21, 0xc1, 0x86, 0x8f, 0x8d, 0x31, 0x8e,
+ 0x52, 0x17, 0x5b, 0xaa,
+};
+static const unsigned char kat1537_nonce[] = {
+ 0xd7, 0x20, 0x9b, 0x94, 0x4b, 0xc4, 0xaa, 0x3a,
+};
+static const unsigned char kat1537_persstr[] = {
+ 0x6f, 0x4e, 0x19, 0x87, 0x52, 0xd3, 0x42, 0x7a, 0x36, 0x2a, 0x1b, 0x01,
+ 0xfa, 0x41, 0x95, 0x0d,
+};
+static const unsigned char kat1537_entropyinreseed[] = {
+ 0xa6, 0x84, 0x9c, 0x1c, 0xab, 0xa2, 0xf2, 0x62, 0x98, 0x58, 0x82, 0x7f,
+ 0x92, 0xda, 0x04, 0x9c,
+};
+static const unsigned char kat1537_addinreseed[] = {0};
+static const unsigned char kat1537_addin0[] = {0};
+static const unsigned char kat1537_addin1[] = {0};
+static const unsigned char kat1537_retbits[] = {
+ 0x49, 0xdc, 0x87, 0x51, 0xe8, 0xfe, 0xa3, 0xf3, 0xf1, 0x5c, 0xfb, 0xf2,
+ 0x07, 0xc3, 0x77, 0xb4, 0x9a, 0x5a, 0x9a, 0xfd, 0x45, 0x3d, 0xee, 0x37,
+ 0x51, 0x89, 0x26, 0x0a, 0x62, 0x57, 0x8d, 0x18, 0xc4, 0xdb, 0x51, 0x57,
+ 0x91, 0x31, 0x9c, 0x45, 0x3e, 0x5b, 0x41, 0x2e, 0xb4, 0xe3, 0x69, 0x13,
+ 0x49, 0x40, 0xfe, 0x76, 0x2a, 0xaa, 0xc8, 0xf1, 0x31, 0x6e, 0xab, 0x8d,
+ 0x11, 0x30, 0x9a, 0x63,
+};
+static const struct drbg_kat_pr_false kat1537_t = {
+ 6, kat1537_entropyin, kat1537_nonce, kat1537_persstr,
+ kat1537_entropyinreseed, kat1537_addinreseed, kat1537_addin0,
+ kat1537_addin1, kat1537_retbits
+};
+static const struct drbg_kat kat1537 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1537_t
+};
+
+static const unsigned char kat1538_entropyin[] = {
+ 0x2e, 0x0e, 0xdf, 0x2c, 0x26, 0xba, 0x18, 0x7d, 0x9d, 0x40, 0x9d, 0x20,
+ 0x3b, 0x07, 0x86, 0xac,
+};
+static const unsigned char kat1538_nonce[] = {
+ 0xdb, 0xb2, 0xe1, 0x42, 0xa8, 0x91, 0x6d, 0xb4,
+};
+static const unsigned char kat1538_persstr[] = {
+ 0x32, 0x55, 0x96, 0xe2, 0xe1, 0x04, 0xf8, 0xf6, 0xc1, 0x05, 0x42, 0x36,
+ 0xeb, 0xb2, 0x0a, 0xd2,
+};
+static const unsigned char kat1538_entropyinreseed[] = {
+ 0xf6, 0x1f, 0x1f, 0x5d, 0x07, 0xce, 0x98, 0xc6, 0xe8, 0xb0, 0x55, 0x0e,
+ 0x07, 0xf2, 0x2d, 0xfc,
+};
+static const unsigned char kat1538_addinreseed[] = {0};
+static const unsigned char kat1538_addin0[] = {0};
+static const unsigned char kat1538_addin1[] = {0};
+static const unsigned char kat1538_retbits[] = {
+ 0xba, 0xbf, 0x1b, 0x48, 0x9b, 0x3d, 0x54, 0x09, 0x95, 0x90, 0x4a, 0xc0,
+ 0xc9, 0x3a, 0xab, 0x22, 0x82, 0x53, 0x82, 0x5f, 0x86, 0xf7, 0x9e, 0x0f,
+ 0xcf, 0x53, 0x0e, 0x32, 0xb2, 0xfe, 0x68, 0xeb, 0xf8, 0xcf, 0x3a, 0x8d,
+ 0xa3, 0x0a, 0x49, 0xaf, 0xa7, 0x2b, 0xae, 0x8b, 0x36, 0xe3, 0x5e, 0xcf,
+ 0x46, 0x6c, 0x67, 0x7e, 0x0e, 0x32, 0x8f, 0x57, 0x4b, 0xe9, 0x14, 0x07,
+ 0x26, 0xef, 0x21, 0x59,
+};
+static const struct drbg_kat_pr_false kat1538_t = {
+ 7, kat1538_entropyin, kat1538_nonce, kat1538_persstr,
+ kat1538_entropyinreseed, kat1538_addinreseed, kat1538_addin0,
+ kat1538_addin1, kat1538_retbits
+};
+static const struct drbg_kat kat1538 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1538_t
+};
+
+static const unsigned char kat1539_entropyin[] = {
+ 0x1d, 0x4e, 0x20, 0x1e, 0xa2, 0xa2, 0x75, 0xb4, 0xbc, 0x62, 0x01, 0x6f,
+ 0x90, 0x2c, 0x14, 0x6d,
+};
+static const unsigned char kat1539_nonce[] = {
+ 0x13, 0x47, 0xf0, 0x44, 0xda, 0x76, 0xa4, 0x95,
+};
+static const unsigned char kat1539_persstr[] = {
+ 0x8c, 0x93, 0x07, 0x8f, 0x9e, 0xdb, 0x99, 0x74, 0x54, 0x42, 0x89, 0x7e,
+ 0x7f, 0x40, 0x4c, 0x95,
+};
+static const unsigned char kat1539_entropyinreseed[] = {
+ 0xf6, 0x6c, 0xb6, 0x78, 0xe4, 0xe3, 0x33, 0xf4, 0x58, 0xf3, 0x8c, 0x84,
+ 0xdc, 0x8c, 0x8b, 0xef,
+};
+static const unsigned char kat1539_addinreseed[] = {0};
+static const unsigned char kat1539_addin0[] = {0};
+static const unsigned char kat1539_addin1[] = {0};
+static const unsigned char kat1539_retbits[] = {
+ 0xdd, 0xf7, 0x70, 0xd0, 0xb2, 0xeb, 0xb0, 0x19, 0x0d, 0x32, 0xda, 0xae,
+ 0x7e, 0x1e, 0x16, 0x77, 0x79, 0x74, 0x08, 0xd7, 0xc8, 0x26, 0xcf, 0xeb,
+ 0x45, 0xbd, 0xe2, 0xf7, 0xdb, 0xf2, 0x44, 0x73, 0xf1, 0xc6, 0xf3, 0x52,
+ 0x97, 0xf4, 0x98, 0xc3, 0xe7, 0x07, 0x8d, 0x78, 0x04, 0x8d, 0x6c, 0xda,
+ 0x7a, 0xfe, 0x9b, 0x6c, 0xe6, 0xff, 0x8d, 0x3f, 0x97, 0x2e, 0x8d, 0xce,
+ 0x76, 0x75, 0xa7, 0x8c,
+};
+static const struct drbg_kat_pr_false kat1539_t = {
+ 8, kat1539_entropyin, kat1539_nonce, kat1539_persstr,
+ kat1539_entropyinreseed, kat1539_addinreseed, kat1539_addin0,
+ kat1539_addin1, kat1539_retbits
+};
+static const struct drbg_kat kat1539 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1539_t
+};
+
+static const unsigned char kat1540_entropyin[] = {
+ 0xb0, 0x5f, 0x65, 0x56, 0x07, 0x06, 0xae, 0xc6, 0xaa, 0x69, 0xa5, 0x30,
+ 0x34, 0x98, 0x1a, 0x75,
+};
+static const unsigned char kat1540_nonce[] = {
+ 0x97, 0x8d, 0x13, 0x96, 0x08, 0x7c, 0x79, 0x95,
+};
+static const unsigned char kat1540_persstr[] = {
+ 0x75, 0x05, 0xc5, 0xae, 0xf5, 0x0b, 0x65, 0x56, 0x53, 0x5f, 0xf1, 0xe7,
+ 0x9a, 0x92, 0x85, 0xfa,
+};
+static const unsigned char kat1540_entropyinreseed[] = {
+ 0xb2, 0x40, 0x16, 0xcc, 0xb9, 0xb5, 0x32, 0x17, 0x49, 0xd3, 0x82, 0xf7,
+ 0x88, 0x35, 0xad, 0xcf,
+};
+static const unsigned char kat1540_addinreseed[] = {0};
+static const unsigned char kat1540_addin0[] = {0};
+static const unsigned char kat1540_addin1[] = {0};
+static const unsigned char kat1540_retbits[] = {
+ 0xea, 0xe3, 0x63, 0x2d, 0x8b, 0x22, 0x4c, 0xa6, 0x90, 0x3f, 0x64, 0xba,
+ 0xf5, 0xf7, 0x5d, 0x89, 0x16, 0x40, 0xbd, 0x38, 0xe5, 0x71, 0x4e, 0x5c,
+ 0xae, 0x75, 0xf7, 0x7f, 0x0c, 0xfc, 0x38, 0xf0, 0x6e, 0x5e, 0xb9, 0xc2,
+ 0x67, 0xdf, 0x6b, 0x22, 0x39, 0x33, 0xee, 0xa5, 0xb9, 0x73, 0x77, 0xf0,
+ 0x7a, 0x93, 0x63, 0xbd, 0x10, 0x68, 0x72, 0xdd, 0x86, 0xb1, 0x5e, 0xc3,
+ 0x32, 0xc8, 0xe9, 0x20,
+};
+static const struct drbg_kat_pr_false kat1540_t = {
+ 9, kat1540_entropyin, kat1540_nonce, kat1540_persstr,
+ kat1540_entropyinreseed, kat1540_addinreseed, kat1540_addin0,
+ kat1540_addin1, kat1540_retbits
+};
+static const struct drbg_kat kat1540 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1540_t
+};
+
+static const unsigned char kat1541_entropyin[] = {
+ 0x22, 0xa7, 0x86, 0xb9, 0x9e, 0xe8, 0xf8, 0x74, 0x31, 0x19, 0x21, 0xce,
+ 0xb0, 0x9b, 0x0b, 0x62,
+};
+static const unsigned char kat1541_nonce[] = {
+ 0x02, 0x12, 0xc9, 0xfa, 0x22, 0x9e, 0x40, 0xc7,
+};
+static const unsigned char kat1541_persstr[] = {
+ 0x4f, 0x02, 0x44, 0xe2, 0x7b, 0x08, 0x04, 0x30, 0x6c, 0x60, 0x1e, 0x84,
+ 0xcb, 0x91, 0x95, 0x66,
+};
+static const unsigned char kat1541_entropyinreseed[] = {
+ 0xe7, 0x9e, 0x8e, 0x72, 0xb2, 0xcf, 0xf5, 0x00, 0x23, 0xf6, 0x43, 0xde,
+ 0xaf, 0x2f, 0xa3, 0x25,
+};
+static const unsigned char kat1541_addinreseed[] = {0};
+static const unsigned char kat1541_addin0[] = {0};
+static const unsigned char kat1541_addin1[] = {0};
+static const unsigned char kat1541_retbits[] = {
+ 0xc2, 0x04, 0x95, 0x44, 0xb5, 0xc6, 0x39, 0x5d, 0x5f, 0xf8, 0xe3, 0xe4,
+ 0x1b, 0x05, 0xab, 0x6c, 0xc2, 0x72, 0x7d, 0x0d, 0x08, 0x28, 0xfb, 0x7f,
+ 0x9c, 0x46, 0xd9, 0xf9, 0x98, 0x97, 0x1f, 0x77, 0xf4, 0x88, 0x53, 0xe3,
+ 0x07, 0x39, 0x4b, 0x2f, 0xda, 0x28, 0x2f, 0xaa, 0xb5, 0x0c, 0xdc, 0x73,
+ 0x29, 0xa5, 0x27, 0x55, 0x20, 0x3d, 0x0b, 0x52, 0xb7, 0xf2, 0xa6, 0x35,
+ 0xcf, 0x42, 0xca, 0x04,
+};
+static const struct drbg_kat_pr_false kat1541_t = {
+ 10, kat1541_entropyin, kat1541_nonce, kat1541_persstr,
+ kat1541_entropyinreseed, kat1541_addinreseed, kat1541_addin0,
+ kat1541_addin1, kat1541_retbits
+};
+static const struct drbg_kat kat1541 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1541_t
+};
+
+static const unsigned char kat1542_entropyin[] = {
+ 0xef, 0x17, 0x9f, 0xed, 0x1a, 0x28, 0xc9, 0x1e, 0x89, 0x76, 0xa5, 0xfb,
+ 0x93, 0xd8, 0xa0, 0xdd,
+};
+static const unsigned char kat1542_nonce[] = {
+ 0x1a, 0xed, 0x84, 0xce, 0xc7, 0xe6, 0xd7, 0x91,
+};
+static const unsigned char kat1542_persstr[] = {
+ 0x7d, 0x9e, 0x67, 0xa8, 0xf0, 0x4a, 0x22, 0x03, 0x73, 0x2b, 0x4d, 0x3f,
+ 0x39, 0x9d, 0x22, 0x91,
+};
+static const unsigned char kat1542_entropyinreseed[] = {
+ 0xdd, 0x3a, 0x49, 0x47, 0x89, 0x40, 0x05, 0xea, 0x82, 0xfd, 0xc3, 0xfa,
+ 0x14, 0x54, 0x93, 0x3b,
+};
+static const unsigned char kat1542_addinreseed[] = {0};
+static const unsigned char kat1542_addin0[] = {0};
+static const unsigned char kat1542_addin1[] = {0};
+static const unsigned char kat1542_retbits[] = {
+ 0x09, 0x06, 0xcb, 0x88, 0x44, 0x14, 0x9e, 0xbb, 0x32, 0x6e, 0xc2, 0x99,
+ 0x8c, 0xe2, 0xbf, 0x1c, 0x69, 0x47, 0x4d, 0xb7, 0xda, 0x02, 0xbc, 0x86,
+ 0x62, 0x9e, 0x49, 0x70, 0xea, 0xfc, 0xfa, 0x02, 0x30, 0x19, 0xb6, 0x0a,
+ 0xfa, 0xca, 0xea, 0x1a, 0x2e, 0x10, 0xbd, 0x3f, 0xa1, 0x10, 0x7e, 0xe0,
+ 0x2c, 0xdf, 0x05, 0xf1, 0xd9, 0x30, 0xa3, 0xa8, 0xc6, 0x1a, 0x2c, 0xc7,
+ 0xc6, 0x3e, 0xa5, 0xf1,
+};
+static const struct drbg_kat_pr_false kat1542_t = {
+ 11, kat1542_entropyin, kat1542_nonce, kat1542_persstr,
+ kat1542_entropyinreseed, kat1542_addinreseed, kat1542_addin0,
+ kat1542_addin1, kat1542_retbits
+};
+static const struct drbg_kat kat1542 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1542_t
+};
+
+static const unsigned char kat1543_entropyin[] = {
+ 0xf1, 0x86, 0xbd, 0xff, 0x36, 0xbe, 0xab, 0x82, 0xea, 0x45, 0x18, 0x95,
+ 0x86, 0x4b, 0x3b, 0x35,
+};
+static const unsigned char kat1543_nonce[] = {
+ 0x44, 0x49, 0xd1, 0x39, 0xce, 0xa2, 0x45, 0x8a,
+};
+static const unsigned char kat1543_persstr[] = {
+ 0x4a, 0xed, 0x4e, 0x99, 0x55, 0x54, 0x09, 0x31, 0x9e, 0x9c, 0x52, 0x57,
+ 0x77, 0xab, 0xbd, 0x2a,
+};
+static const unsigned char kat1543_entropyinreseed[] = {
+ 0x67, 0x48, 0x56, 0x99, 0xe3, 0x0b, 0xf2, 0x7e, 0xb6, 0x84, 0xd6, 0x66,
+ 0x3d, 0x05, 0x07, 0xcc,
+};
+static const unsigned char kat1543_addinreseed[] = {0};
+static const unsigned char kat1543_addin0[] = {0};
+static const unsigned char kat1543_addin1[] = {0};
+static const unsigned char kat1543_retbits[] = {
+ 0xba, 0xa1, 0x41, 0x66, 0x0e, 0xad, 0x5a, 0x6e, 0xf4, 0x1d, 0x0a, 0xcc,
+ 0x13, 0xe5, 0x26, 0x19, 0xa5, 0x0e, 0x26, 0x2f, 0xa7, 0x1f, 0x92, 0x9b,
+ 0xb8, 0xe4, 0xd9, 0xf1, 0xce, 0x34, 0xe1, 0xca, 0xbc, 0xcf, 0xed, 0x60,
+ 0x53, 0xc2, 0x8c, 0xbf, 0x75, 0x89, 0xa6, 0x76, 0x96, 0x96, 0x5d, 0x01,
+ 0x31, 0xb2, 0x23, 0xee, 0x83, 0xc2, 0x70, 0x80, 0x04, 0x39, 0xc6, 0xc2,
+ 0x52, 0xfa, 0x5d, 0x82,
+};
+static const struct drbg_kat_pr_false kat1543_t = {
+ 12, kat1543_entropyin, kat1543_nonce, kat1543_persstr,
+ kat1543_entropyinreseed, kat1543_addinreseed, kat1543_addin0,
+ kat1543_addin1, kat1543_retbits
+};
+static const struct drbg_kat kat1543 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1543_t
+};
+
+static const unsigned char kat1544_entropyin[] = {
+ 0x0b, 0xa7, 0xd6, 0x25, 0xa1, 0xcf, 0xb9, 0x00, 0xe1, 0xcb, 0xc7, 0x80,
+ 0x96, 0x8a, 0x90, 0xf2,
+};
+static const unsigned char kat1544_nonce[] = {
+ 0xf4, 0x15, 0x5d, 0xf4, 0x6d, 0xae, 0xe1, 0xa8,
+};
+static const unsigned char kat1544_persstr[] = {
+ 0x2d, 0xd3, 0xb5, 0xdf, 0xe0, 0xce, 0xae, 0x7f, 0x38, 0x21, 0xd8, 0x7b,
+ 0xa0, 0x30, 0x8b, 0x92,
+};
+static const unsigned char kat1544_entropyinreseed[] = {
+ 0x94, 0xa5, 0x62, 0x2b, 0xbf, 0xda, 0x81, 0x49, 0x39, 0x38, 0x52, 0xda,
+ 0xce, 0xee, 0x85, 0x5b,
+};
+static const unsigned char kat1544_addinreseed[] = {0};
+static const unsigned char kat1544_addin0[] = {0};
+static const unsigned char kat1544_addin1[] = {0};
+static const unsigned char kat1544_retbits[] = {
+ 0x07, 0x89, 0x35, 0x71, 0x48, 0xb9, 0x64, 0x4c, 0xa0, 0xa5, 0x30, 0x8d,
+ 0xa2, 0xf0, 0xc5, 0x1f, 0xcb, 0x6a, 0x99, 0x1d, 0x09, 0xf9, 0x10, 0xb4,
+ 0x02, 0x15, 0x80, 0x59, 0xb7, 0x41, 0x25, 0xf7, 0x52, 0x89, 0x5d, 0xe0,
+ 0xb1, 0xc7, 0x07, 0x94, 0x34, 0x9b, 0x02, 0xd7, 0x21, 0x38, 0xad, 0x68,
+ 0x24, 0x1c, 0xf4, 0xc2, 0x8f, 0x83, 0x28, 0x31, 0x3c, 0x1f, 0xd2, 0x11,
+ 0xb1, 0xc7, 0xc2, 0x57,
+};
+static const struct drbg_kat_pr_false kat1544_t = {
+ 13, kat1544_entropyin, kat1544_nonce, kat1544_persstr,
+ kat1544_entropyinreseed, kat1544_addinreseed, kat1544_addin0,
+ kat1544_addin1, kat1544_retbits
+};
+static const struct drbg_kat kat1544 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1544_t
+};
+
+static const unsigned char kat1545_entropyin[] = {
+ 0xe2, 0x86, 0x6d, 0x63, 0xf6, 0xe4, 0x9e, 0x3b, 0xd4, 0xd9, 0x4f, 0x28,
+ 0xe7, 0x77, 0x55, 0xf0,
+};
+static const unsigned char kat1545_nonce[] = {
+ 0xf3, 0x1f, 0x80, 0x9e, 0x82, 0x17, 0x74, 0x34,
+};
+static const unsigned char kat1545_persstr[] = {
+ 0x05, 0xa4, 0xee, 0x9d, 0x4e, 0x41, 0xb1, 0xd9, 0x68, 0x5e, 0xc3, 0xa8,
+ 0xcd, 0xfa, 0x54, 0x2d,
+};
+static const unsigned char kat1545_entropyinreseed[] = {
+ 0x01, 0xa4, 0xf6, 0xe4, 0x38, 0xbd, 0x52, 0x75, 0x1f, 0xb6, 0xdb, 0xa2,
+ 0x5e, 0x30, 0x1a, 0xe3,
+};
+static const unsigned char kat1545_addinreseed[] = {0};
+static const unsigned char kat1545_addin0[] = {0};
+static const unsigned char kat1545_addin1[] = {0};
+static const unsigned char kat1545_retbits[] = {
+ 0x50, 0x9f, 0xd9, 0x08, 0x68, 0x02, 0xdf, 0xa8, 0xa6, 0x04, 0x2e, 0x21,
+ 0xc5, 0x88, 0xf7, 0x96, 0x06, 0xb2, 0x1e, 0x7e, 0x2e, 0x39, 0x85, 0x49,
+ 0x8b, 0xd2, 0xc2, 0x30, 0x98, 0xbe, 0x88, 0xfc, 0x8a, 0xfa, 0x2c, 0xaa,
+ 0xc0, 0xf4, 0x00, 0x4b, 0xe3, 0xd0, 0x3a, 0x2a, 0x6a, 0xbd, 0x5e, 0x90,
+ 0xe3, 0xaa, 0xb7, 0xe5, 0x79, 0x7e, 0xce, 0xaa, 0xf0, 0xe3, 0x83, 0x54,
+ 0x08, 0x17, 0x1d, 0x81,
+};
+static const struct drbg_kat_pr_false kat1545_t = {
+ 14, kat1545_entropyin, kat1545_nonce, kat1545_persstr,
+ kat1545_entropyinreseed, kat1545_addinreseed, kat1545_addin0,
+ kat1545_addin1, kat1545_retbits
+};
+static const struct drbg_kat kat1545 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1545_t
+};
+
+static const unsigned char kat1546_entropyin[] = {
+ 0xe9, 0x09, 0x5c, 0x18, 0x99, 0xe1, 0xea, 0x7d, 0xbd, 0x86, 0x7d, 0x91,
+ 0x5d, 0x8e, 0x3d, 0xef,
+};
+static const unsigned char kat1546_nonce[] = {
+ 0xce, 0xa1, 0x57, 0x88, 0x9d, 0xaa, 0x5c, 0x09,
+};
+static const unsigned char kat1546_persstr[] = {
+ 0xb9, 0xae, 0x88, 0x1d, 0x60, 0xb2, 0x44, 0x53, 0x30, 0xd1, 0xaa, 0x2d,
+ 0x49, 0xed, 0xb1, 0x68,
+};
+static const unsigned char kat1546_entropyinreseed[] = {
+ 0x3c, 0x66, 0x90, 0x64, 0x19, 0x04, 0x7d, 0x58, 0xf4, 0x7a, 0xe7, 0x88,
+ 0xc4, 0x9c, 0x7a, 0x69,
+};
+static const unsigned char kat1546_addinreseed[] = {
+ 0xb0, 0x19, 0x05, 0x79, 0xcc, 0x71, 0xc2, 0x14, 0x2e, 0x2b, 0x4b, 0x14,
+ 0x7b, 0x4f, 0x01, 0x49,
+};
+static const unsigned char kat1546_addin0[] = {
+ 0xb2, 0xb4, 0x78, 0x91, 0x52, 0x53, 0xc7, 0x84, 0xe3, 0xae, 0xd9, 0x7b,
+ 0x26, 0xcb, 0xc9, 0xe5,
+};
+static const unsigned char kat1546_addin1[] = {
+ 0xd2, 0x41, 0x9f, 0xcc, 0xe3, 0x64, 0x3b, 0xb4, 0x9c, 0xb7, 0xad, 0x93,
+ 0xec, 0x09, 0xc7, 0x69,
+};
+static const unsigned char kat1546_retbits[] = {
+ 0x06, 0x41, 0x06, 0x39, 0x61, 0x35, 0x84, 0xb3, 0xb1, 0x45, 0x59, 0x19,
+ 0xb2, 0xe9, 0xdf, 0x5c, 0xb3, 0xc1, 0x90, 0xc6, 0x68, 0xa0, 0xab, 0x47,
+ 0x3d, 0xa4, 0xe7, 0x15, 0xf8, 0x1e, 0x44, 0x72, 0xb5, 0x7a, 0xfd, 0xe0,
+ 0x82, 0x72, 0x70, 0x90, 0xe3, 0xa0, 0xd0, 0x78, 0x29, 0xac, 0x71, 0x85,
+ 0x0d, 0xeb, 0xea, 0x34, 0xcf, 0x0f, 0x28, 0x99, 0xfc, 0x3b, 0x15, 0xda,
+ 0xb8, 0x41, 0x80, 0xe4,
+};
+static const struct drbg_kat_pr_false kat1546_t = {
+ 0, kat1546_entropyin, kat1546_nonce, kat1546_persstr,
+ kat1546_entropyinreseed, kat1546_addinreseed, kat1546_addin0,
+ kat1546_addin1, kat1546_retbits
+};
+static const struct drbg_kat kat1546 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1546_t
+};
+
+static const unsigned char kat1547_entropyin[] = {
+ 0xfc, 0x17, 0xa0, 0xda, 0x69, 0xce, 0x9e, 0x7a, 0x5b, 0x1f, 0x57, 0x53,
+ 0x49, 0xca, 0x48, 0xb2,
+};
+static const unsigned char kat1547_nonce[] = {
+ 0x61, 0x68, 0xca, 0xf0, 0x73, 0x7a, 0x14, 0xf2,
+};
+static const unsigned char kat1547_persstr[] = {
+ 0x0f, 0x04, 0x68, 0x14, 0x43, 0xad, 0xbe, 0xbc, 0x5c, 0x62, 0xfc, 0x83,
+ 0x30, 0x75, 0x59, 0xb8,
+};
+static const unsigned char kat1547_entropyinreseed[] = {
+ 0x5e, 0x86, 0x35, 0xae, 0x3b, 0x30, 0x32, 0x36, 0x8e, 0xa8, 0xdd, 0x87,
+ 0x5a, 0x65, 0x6c, 0x58,
+};
+static const unsigned char kat1547_addinreseed[] = {
+ 0x16, 0x14, 0x3e, 0x76, 0x2e, 0xd7, 0xc9, 0x2b, 0x07, 0x4b, 0xba, 0xb4,
+ 0xd1, 0xf7, 0xea, 0xcf,
+};
+static const unsigned char kat1547_addin0[] = {
+ 0x34, 0x65, 0xc0, 0xeb, 0x01, 0x07, 0xe3, 0x91, 0xdd, 0xec, 0x0d, 0xbf,
+ 0xe9, 0xaa, 0x9e, 0xd1,
+};
+static const unsigned char kat1547_addin1[] = {
+ 0xda, 0x94, 0x05, 0xea, 0x75, 0x62, 0xe0, 0xae, 0xb4, 0xfa, 0xd0, 0x5d,
+ 0xdb, 0xc2, 0x67, 0x3f,
+};
+static const unsigned char kat1547_retbits[] = {
+ 0x93, 0x36, 0x9b, 0xe6, 0x68, 0xd3, 0x7e, 0x36, 0x13, 0x20, 0x84, 0xda,
+ 0xed, 0x4c, 0x63, 0x7d, 0xff, 0xd8, 0x4c, 0x0b, 0xa4, 0x72, 0x3c, 0x7a,
+ 0xfb, 0x1c, 0x7b, 0x03, 0x9e, 0x56, 0xd3, 0x02, 0x29, 0x4d, 0x6b, 0xc9,
+ 0xd2, 0x2c, 0xb2, 0xef, 0x05, 0x87, 0x9a, 0x0e, 0xd9, 0x84, 0x14, 0x09,
+ 0xbf, 0xdf, 0xfc, 0xb2, 0xec, 0x81, 0x7d, 0xfc, 0xad, 0x47, 0x72, 0x82,
+ 0x97, 0x87, 0x1f, 0xaf,
+};
+static const struct drbg_kat_pr_false kat1547_t = {
+ 1, kat1547_entropyin, kat1547_nonce, kat1547_persstr,
+ kat1547_entropyinreseed, kat1547_addinreseed, kat1547_addin0,
+ kat1547_addin1, kat1547_retbits
+};
+static const struct drbg_kat kat1547 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1547_t
+};
+
+static const unsigned char kat1548_entropyin[] = {
+ 0x79, 0x6e, 0x5c, 0x41, 0xa5, 0xf5, 0x2c, 0xe0, 0x46, 0x3f, 0xb3, 0xee,
+ 0xf0, 0x7a, 0x3e, 0x58,
+};
+static const unsigned char kat1548_nonce[] = {
+ 0xdd, 0xdc, 0x93, 0x80, 0x14, 0xb9, 0x09, 0x16,
+};
+static const unsigned char kat1548_persstr[] = {
+ 0x12, 0x6e, 0xd4, 0x4b, 0x14, 0xeb, 0x63, 0x10, 0xd6, 0xa4, 0xae, 0x6b,
+ 0x29, 0x8a, 0x47, 0x57,
+};
+static const unsigned char kat1548_entropyinreseed[] = {
+ 0xcc, 0x8a, 0x0e, 0x9b, 0xc7, 0x9c, 0xa4, 0xa5, 0x80, 0x7c, 0xdc, 0xcd,
+ 0x8b, 0xce, 0x3e, 0x5c,
+};
+static const unsigned char kat1548_addinreseed[] = {
+ 0xae, 0x43, 0x6f, 0x84, 0x0b, 0xfa, 0x4b, 0x37, 0x6e, 0x18, 0xc8, 0x56,
+ 0x56, 0x47, 0x04, 0x0a,
+};
+static const unsigned char kat1548_addin0[] = {
+ 0x92, 0x5d, 0x97, 0xc3, 0x45, 0xee, 0xbe, 0xe3, 0xb9, 0x84, 0x02, 0xe4,
+ 0x62, 0xdb, 0x0e, 0x05,
+};
+static const unsigned char kat1548_addin1[] = {
+ 0xd7, 0xfe, 0xa1, 0xee, 0x0f, 0xba, 0x88, 0x31, 0xd3, 0xab, 0xb0, 0x3c,
+ 0x0f, 0xd7, 0xa0, 0x02,
+};
+static const unsigned char kat1548_retbits[] = {
+ 0x50, 0x07, 0xb3, 0x18, 0x52, 0x10, 0xdf, 0xe1, 0xc7, 0xf5, 0x57, 0x7d,
+ 0x38, 0x59, 0x3f, 0x6b, 0x8a, 0x2e, 0x8a, 0x61, 0x90, 0xb7, 0xe1, 0x4b,
+ 0x47, 0xd8, 0x6b, 0x0d, 0x90, 0x6f, 0x59, 0xed, 0xdd, 0x38, 0x35, 0xa7,
+ 0xb1, 0x67, 0xa3, 0x37, 0x44, 0x28, 0xad, 0x95, 0x76, 0x58, 0x8c, 0xd9,
+ 0xa7, 0x71, 0x2a, 0xd0, 0xbf, 0x71, 0x65, 0xde, 0xc4, 0x3d, 0xc3, 0xda,
+ 0x5f, 0x11, 0xd0, 0xb9,
+};
+static const struct drbg_kat_pr_false kat1548_t = {
+ 2, kat1548_entropyin, kat1548_nonce, kat1548_persstr,
+ kat1548_entropyinreseed, kat1548_addinreseed, kat1548_addin0,
+ kat1548_addin1, kat1548_retbits
+};
+static const struct drbg_kat kat1548 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1548_t
+};
+
+static const unsigned char kat1549_entropyin[] = {
+ 0x10, 0x25, 0xac, 0x69, 0xe9, 0x78, 0xe4, 0x13, 0x93, 0x9a, 0xcf, 0xd5,
+ 0x85, 0x9e, 0x95, 0xed,
+};
+static const unsigned char kat1549_nonce[] = {
+ 0x63, 0x8b, 0x9c, 0x36, 0xe2, 0xc7, 0x4d, 0x96,
+};
+static const unsigned char kat1549_persstr[] = {
+ 0x9e, 0xb4, 0x66, 0x76, 0x27, 0x4b, 0x96, 0x5e, 0x9b, 0xdb, 0x06, 0xa6,
+ 0xe8, 0x84, 0x74, 0xaa,
+};
+static const unsigned char kat1549_entropyinreseed[] = {
+ 0x0b, 0x1f, 0xfa, 0x14, 0x20, 0x98, 0x08, 0x0a, 0xa6, 0xf7, 0xf3, 0x95,
+ 0x91, 0xcd, 0x29, 0x8b,
+};
+static const unsigned char kat1549_addinreseed[] = {
+ 0xe0, 0x90, 0x18, 0xfa, 0x1e, 0xcc, 0x76, 0x99, 0xd2, 0x3a, 0x95, 0xd2,
+ 0xea, 0xa2, 0xb7, 0x63,
+};
+static const unsigned char kat1549_addin0[] = {
+ 0x78, 0x89, 0x50, 0x23, 0x52, 0x3f, 0x16, 0xaf, 0x9b, 0x08, 0x53, 0xe8,
+ 0xe6, 0x88, 0xde, 0xca,
+};
+static const unsigned char kat1549_addin1[] = {
+ 0x7a, 0x3d, 0x33, 0xd8, 0xc4, 0xa6, 0xdb, 0xf6, 0x26, 0x44, 0x07, 0xa5,
+ 0x43, 0x51, 0x0a, 0x95,
+};
+static const unsigned char kat1549_retbits[] = {
+ 0x4e, 0xdd, 0x23, 0xf4, 0x37, 0x66, 0x46, 0x93, 0x68, 0x94, 0x51, 0xc7,
+ 0xfd, 0xd5, 0xb5, 0xe9, 0x46, 0x9a, 0x4a, 0xb0, 0xa7, 0x91, 0xdd, 0x69,
+ 0xa9, 0xc5, 0x5e, 0x6b, 0xc5, 0x18, 0xac, 0x72, 0x7f, 0x84, 0x42, 0x91,
+ 0xe4, 0x5e, 0xe4, 0x16, 0x13, 0x19, 0x69, 0x07, 0x05, 0x55, 0x3f, 0x1a,
+ 0x32, 0x0f, 0x78, 0x47, 0xc4, 0x18, 0x11, 0x6e, 0xe0, 0xe1, 0x1c, 0xa6,
+ 0x52, 0x77, 0xe5, 0xa3,
+};
+static const struct drbg_kat_pr_false kat1549_t = {
+ 3, kat1549_entropyin, kat1549_nonce, kat1549_persstr,
+ kat1549_entropyinreseed, kat1549_addinreseed, kat1549_addin0,
+ kat1549_addin1, kat1549_retbits
+};
+static const struct drbg_kat kat1549 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1549_t
+};
+
+static const unsigned char kat1550_entropyin[] = {
+ 0x31, 0xc2, 0xd2, 0xba, 0xa0, 0x8a, 0x1e, 0x84, 0x0f, 0xbd, 0x39, 0x45,
+ 0xb1, 0x79, 0x72, 0xfc,
+};
+static const unsigned char kat1550_nonce[] = {
+ 0xa6, 0x2b, 0xb4, 0x53, 0x1b, 0x51, 0x20, 0x8b,
+};
+static const unsigned char kat1550_persstr[] = {
+ 0x17, 0x83, 0x97, 0xb1, 0xee, 0x1e, 0x7c, 0x12, 0xc4, 0xc1, 0x6a, 0x53,
+ 0x89, 0x32, 0x98, 0x38,
+};
+static const unsigned char kat1550_entropyinreseed[] = {
+ 0x45, 0x56, 0xec, 0x8a, 0xe5, 0xc6, 0x9c, 0x19, 0xa3, 0x97, 0x11, 0xd1,
+ 0x61, 0x93, 0x2c, 0x38,
+};
+static const unsigned char kat1550_addinreseed[] = {
+ 0x58, 0x9a, 0xd7, 0x84, 0xd2, 0x34, 0x3d, 0x58, 0x89, 0x0e, 0xe6, 0x77,
+ 0x77, 0x2e, 0x42, 0x4a,
+};
+static const unsigned char kat1550_addin0[] = {
+ 0xd5, 0x92, 0x68, 0x5e, 0x98, 0x55, 0x47, 0x38, 0xa3, 0xaf, 0xdb, 0x2a,
+ 0x90, 0xa4, 0xda, 0x5e,
+};
+static const unsigned char kat1550_addin1[] = {
+ 0xba, 0x25, 0xfe, 0x15, 0xd5, 0x28, 0x9e, 0x3a, 0x44, 0xbe, 0x7c, 0x51,
+ 0xcc, 0x49, 0x58, 0xcb,
+};
+static const unsigned char kat1550_retbits[] = {
+ 0xe2, 0x12, 0x01, 0x4a, 0x69, 0xb2, 0xfe, 0xdc, 0xf8, 0xa6, 0x43, 0x2a,
+ 0xe8, 0xfb, 0xd6, 0x87, 0x6d, 0x57, 0x3d, 0xe2, 0xcf, 0xa3, 0x50, 0x96,
+ 0x7e, 0x38, 0xee, 0xf5, 0x90, 0xdd, 0x09, 0x75, 0xbb, 0xd7, 0x80, 0xd0,
+ 0x9f, 0x4b, 0x86, 0x48, 0xd1, 0xbc, 0xe9, 0x61, 0xe7, 0xdb, 0x6f, 0x7a,
+ 0x91, 0x1b, 0x6b, 0x8d, 0xe2, 0x3f, 0x79, 0x0f, 0x8b, 0x5d, 0x5f, 0xf6,
+ 0xcb, 0x23, 0xae, 0x66,
+};
+static const struct drbg_kat_pr_false kat1550_t = {
+ 4, kat1550_entropyin, kat1550_nonce, kat1550_persstr,
+ kat1550_entropyinreseed, kat1550_addinreseed, kat1550_addin0,
+ kat1550_addin1, kat1550_retbits
+};
+static const struct drbg_kat kat1550 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1550_t
+};
+
+static const unsigned char kat1551_entropyin[] = {
+ 0xff, 0x59, 0x31, 0xdc, 0x8f, 0x62, 0xd0, 0xbd, 0x4a, 0x5f, 0xbf, 0x31,
+ 0x1a, 0xf9, 0x3d, 0xdb,
+};
+static const unsigned char kat1551_nonce[] = {
+ 0x69, 0x2f, 0xfe, 0xf2, 0x6e, 0x04, 0xfa, 0x27,
+};
+static const unsigned char kat1551_persstr[] = {
+ 0x57, 0xf9, 0x9c, 0x26, 0x23, 0x45, 0x12, 0xdf, 0x83, 0x5f, 0x3e, 0x39,
+ 0x1a, 0xca, 0xba, 0xb2,
+};
+static const unsigned char kat1551_entropyinreseed[] = {
+ 0x5f, 0x42, 0x44, 0x76, 0x28, 0x65, 0xf5, 0x49, 0x3b, 0xe9, 0x1d, 0x56,
+ 0x90, 0xa3, 0x13, 0x91,
+};
+static const unsigned char kat1551_addinreseed[] = {
+ 0x0f, 0x39, 0x87, 0x6d, 0x90, 0x67, 0x78, 0xcc, 0xc8, 0xa2, 0xb1, 0x1d,
+ 0x71, 0x43, 0x44, 0x2f,
+};
+static const unsigned char kat1551_addin0[] = {
+ 0xd6, 0x1b, 0x39, 0x93, 0x13, 0xb4, 0xd1, 0x3d, 0x50, 0xf8, 0xb2, 0x07,
+ 0x62, 0xdf, 0x5f, 0x83,
+};
+static const unsigned char kat1551_addin1[] = {
+ 0xe3, 0xca, 0xd6, 0x24, 0x0a, 0xce, 0x0f, 0xeb, 0x62, 0x61, 0xa4, 0x5b,
+ 0x4a, 0x96, 0x0e, 0x8e,
+};
+static const unsigned char kat1551_retbits[] = {
+ 0xe3, 0x2f, 0xd4, 0x8a, 0x05, 0x02, 0x35, 0xa2, 0x60, 0x4b, 0x4f, 0x2e,
+ 0xe8, 0xda, 0xfa, 0x36, 0x13, 0x9b, 0x0a, 0xfa, 0x59, 0xcc, 0x64, 0x47,
+ 0x4c, 0x5c, 0x2c, 0x98, 0x86, 0x39, 0xfb, 0xda, 0x5b, 0xa2, 0x50, 0x7a,
+ 0x4b, 0x70, 0x56, 0x86, 0x5a, 0xd3, 0xd9, 0x7d, 0x52, 0x96, 0x5e, 0x57,
+ 0xeb, 0x5b, 0xac, 0x8f, 0xee, 0x26, 0xf1, 0x2d, 0x79, 0xd7, 0xa0, 0x62,
+ 0xae, 0x6b, 0x5f, 0x67,
+};
+static const struct drbg_kat_pr_false kat1551_t = {
+ 5, kat1551_entropyin, kat1551_nonce, kat1551_persstr,
+ kat1551_entropyinreseed, kat1551_addinreseed, kat1551_addin0,
+ kat1551_addin1, kat1551_retbits
+};
+static const struct drbg_kat kat1551 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1551_t
+};
+
+static const unsigned char kat1552_entropyin[] = {
+ 0x03, 0x22, 0x0b, 0x31, 0xbf, 0xa4, 0xae, 0xa7, 0xe0, 0x17, 0x26, 0x4f,
+ 0xf7, 0x0f, 0xcb, 0x21,
+};
+static const unsigned char kat1552_nonce[] = {
+ 0xd1, 0x87, 0x3d, 0x93, 0x5f, 0xe6, 0x0d, 0xf4,
+};
+static const unsigned char kat1552_persstr[] = {
+ 0x07, 0x69, 0xe8, 0x60, 0xef, 0x2c, 0x56, 0xff, 0xca, 0x9d, 0x59, 0x1b,
+ 0x62, 0x89, 0x3f, 0xd0,
+};
+static const unsigned char kat1552_entropyinreseed[] = {
+ 0x81, 0x54, 0x6c, 0xbb, 0x72, 0x1c, 0xe8, 0x82, 0x4c, 0xda, 0x3a, 0x56,
+ 0xd0, 0x61, 0xac, 0xca,
+};
+static const unsigned char kat1552_addinreseed[] = {
+ 0xf8, 0xf3, 0xed, 0x27, 0x70, 0x9e, 0xfa, 0xa5, 0x6e, 0x35, 0x4a, 0x83,
+ 0xfc, 0xfe, 0x31, 0x9c,
+};
+static const unsigned char kat1552_addin0[] = {
+ 0xc8, 0xe3, 0x25, 0xcd, 0x78, 0x12, 0x0b, 0x51, 0xb3, 0x3a, 0xd7, 0xa6,
+ 0xbf, 0x9a, 0x59, 0x2c,
+};
+static const unsigned char kat1552_addin1[] = {
+ 0xf7, 0xd4, 0x32, 0x06, 0xa8, 0x31, 0x3f, 0x7e, 0x12, 0x92, 0x50, 0x21,
+ 0x5c, 0xb4, 0x91, 0x1b,
+};
+static const unsigned char kat1552_retbits[] = {
+ 0x48, 0xf8, 0x30, 0x2b, 0x5e, 0xaf, 0xc4, 0x51, 0x42, 0x4a, 0x49, 0xd9,
+ 0x17, 0xdd, 0x48, 0x92, 0x3c, 0x5c, 0xb8, 0x35, 0xff, 0xb1, 0x53, 0x3d,
+ 0x0f, 0xd0, 0xb2, 0x48, 0xab, 0x07, 0x22, 0xdb, 0xf0, 0xc9, 0xd5, 0x36,
+ 0x10, 0x77, 0x1a, 0xaa, 0xc9, 0xc0, 0x39, 0x93, 0xfa, 0x43, 0x29, 0x3c,
+ 0xc7, 0x08, 0x3f, 0xf1, 0x16, 0x8c, 0x23, 0xb2, 0xe6, 0x18, 0x76, 0x10,
+ 0x58, 0xaf, 0x79, 0x7b,
+};
+static const struct drbg_kat_pr_false kat1552_t = {
+ 6, kat1552_entropyin, kat1552_nonce, kat1552_persstr,
+ kat1552_entropyinreseed, kat1552_addinreseed, kat1552_addin0,
+ kat1552_addin1, kat1552_retbits
+};
+static const struct drbg_kat kat1552 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1552_t
+};
+
+static const unsigned char kat1553_entropyin[] = {
+ 0xc5, 0xdf, 0x14, 0x5c, 0xbc, 0x99, 0xc3, 0xfe, 0x24, 0x3e, 0x46, 0xa8,
+ 0xad, 0x5b, 0xe5, 0xd8,
+};
+static const unsigned char kat1553_nonce[] = {
+ 0x81, 0xe5, 0x45, 0x62, 0x57, 0x9d, 0x40, 0x32,
+};
+static const unsigned char kat1553_persstr[] = {
+ 0xb2, 0x8e, 0x1d, 0xa0, 0xaf, 0x72, 0x17, 0x6e, 0xc1, 0xf7, 0x67, 0xc9,
+ 0x72, 0xfd, 0x95, 0x58,
+};
+static const unsigned char kat1553_entropyinreseed[] = {
+ 0x54, 0x6e, 0x46, 0x94, 0xc6, 0x13, 0x0c, 0x48, 0x3c, 0x36, 0xd6, 0x97,
+ 0x18, 0xac, 0x2b, 0x73,
+};
+static const unsigned char kat1553_addinreseed[] = {
+ 0x78, 0xe0, 0x52, 0x40, 0xcf, 0xf4, 0x3b, 0x62, 0x86, 0x25, 0x85, 0x00,
+ 0x59, 0x68, 0xad, 0xf3,
+};
+static const unsigned char kat1553_addin0[] = {
+ 0x56, 0x4c, 0x3f, 0xb6, 0x2e, 0x54, 0x22, 0x91, 0xfc, 0x3c, 0x6e, 0xdf,
+ 0xaa, 0x4d, 0x4d, 0xfb,
+};
+static const unsigned char kat1553_addin1[] = {
+ 0x86, 0x96, 0x55, 0x63, 0x37, 0x3f, 0x3a, 0x49, 0x9c, 0x78, 0x39, 0x64,
+ 0x23, 0xe8, 0xd5, 0xdc,
+};
+static const unsigned char kat1553_retbits[] = {
+ 0x3f, 0xf8, 0x22, 0x6d, 0x9a, 0x38, 0xaf, 0xaa, 0x89, 0x09, 0xbf, 0xbd,
+ 0xb3, 0xd8, 0x49, 0xab, 0xb3, 0x68, 0x96, 0xe3, 0x24, 0x1c, 0x96, 0x51,
+ 0x0d, 0x32, 0xea, 0x82, 0xcc, 0xd9, 0xa7, 0x7c, 0xf2, 0x6f, 0x30, 0xa0,
+ 0x49, 0x20, 0xfb, 0x2e, 0xdd, 0xb8, 0xe0, 0x6a, 0x32, 0xa6, 0xb1, 0x07,
+ 0xa2, 0xd2, 0x83, 0x53, 0x30, 0xb8, 0xf0, 0x3b, 0xf4, 0x03, 0x0d, 0xc2,
+ 0xc4, 0x45, 0xe0, 0xb7,
+};
+static const struct drbg_kat_pr_false kat1553_t = {
+ 7, kat1553_entropyin, kat1553_nonce, kat1553_persstr,
+ kat1553_entropyinreseed, kat1553_addinreseed, kat1553_addin0,
+ kat1553_addin1, kat1553_retbits
+};
+static const struct drbg_kat kat1553 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1553_t
+};
+
+static const unsigned char kat1554_entropyin[] = {
+ 0xdd, 0xb0, 0x6d, 0x7b, 0x03, 0x3f, 0xcf, 0x77, 0x0b, 0x11, 0x83, 0xc2,
+ 0xf1, 0x0d, 0x96, 0x86,
+};
+static const unsigned char kat1554_nonce[] = {
+ 0xda, 0x0f, 0xc8, 0xb8, 0x90, 0x8c, 0xa9, 0x51,
+};
+static const unsigned char kat1554_persstr[] = {
+ 0x7b, 0x6c, 0x6c, 0x25, 0x82, 0x96, 0x94, 0xd5, 0x01, 0x93, 0xc6, 0x9e,
+ 0xdc, 0xfc, 0x8b, 0xc8,
+};
+static const unsigned char kat1554_entropyinreseed[] = {
+ 0xf1, 0x93, 0xe2, 0x16, 0x60, 0x1e, 0xce, 0x77, 0x0c, 0x56, 0xe8, 0x3f,
+ 0xb5, 0x9b, 0x80, 0xe1,
+};
+static const unsigned char kat1554_addinreseed[] = {
+ 0xad, 0xbf, 0x18, 0xcd, 0xae, 0x2f, 0x01, 0x7b, 0x47, 0x41, 0xe6, 0x5b,
+ 0xa1, 0xc4, 0xd0, 0x67,
+};
+static const unsigned char kat1554_addin0[] = {
+ 0x3d, 0x10, 0x96, 0x98, 0x43, 0x2a, 0xbb, 0x85, 0x6e, 0xab, 0xc1, 0x94,
+ 0x55, 0x91, 0xa4, 0x85,
+};
+static const unsigned char kat1554_addin1[] = {
+ 0x98, 0xda, 0x85, 0x12, 0x63, 0xc0, 0x2a, 0xdd, 0x5c, 0xce, 0x6d, 0x0a,
+ 0x07, 0x6a, 0xb6, 0x58,
+};
+static const unsigned char kat1554_retbits[] = {
+ 0x44, 0xff, 0xaa, 0x62, 0x77, 0xf2, 0x9d, 0xd7, 0x71, 0x02, 0x42, 0x80,
+ 0xdb, 0xed, 0x72, 0x8a, 0x29, 0x8c, 0x2b, 0x02, 0x54, 0xff, 0xa8, 0x77,
+ 0x40, 0x20, 0xf8, 0x49, 0xaf, 0x3d, 0x97, 0x9c, 0xbf, 0xa2, 0x6a, 0xbe,
+ 0x7f, 0x4a, 0x08, 0x02, 0x70, 0x38, 0x91, 0xd9, 0xf7, 0x91, 0xab, 0x5a,
+ 0x61, 0x80, 0x88, 0xbe, 0xfa, 0x3c, 0xc4, 0x30, 0x7b, 0x2f, 0x6a, 0xd4,
+ 0xa4, 0x39, 0x1b, 0xb4,
+};
+static const struct drbg_kat_pr_false kat1554_t = {
+ 8, kat1554_entropyin, kat1554_nonce, kat1554_persstr,
+ kat1554_entropyinreseed, kat1554_addinreseed, kat1554_addin0,
+ kat1554_addin1, kat1554_retbits
+};
+static const struct drbg_kat kat1554 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1554_t
+};
+
+static const unsigned char kat1555_entropyin[] = {
+ 0x55, 0x8e, 0x28, 0x13, 0x7d, 0xb0, 0xf6, 0x51, 0xdc, 0x66, 0x8e, 0x0f,
+ 0x7e, 0xa5, 0x90, 0x26,
+};
+static const unsigned char kat1555_nonce[] = {
+ 0x82, 0xd6, 0x4d, 0xae, 0xd7, 0x73, 0x09, 0x63,
+};
+static const unsigned char kat1555_persstr[] = {
+ 0x94, 0xaf, 0x43, 0x25, 0xec, 0x75, 0x22, 0x73, 0x9e, 0xb7, 0xb1, 0x44,
+ 0x59, 0x36, 0xd6, 0xea,
+};
+static const unsigned char kat1555_entropyinreseed[] = {
+ 0x16, 0xea, 0xf7, 0xd9, 0x2a, 0xb4, 0xdc, 0x77, 0x63, 0x8c, 0xd7, 0x55,
+ 0xf3, 0x83, 0xef, 0x22,
+};
+static const unsigned char kat1555_addinreseed[] = {
+ 0xa2, 0x96, 0x2f, 0xef, 0xf8, 0x92, 0x8b, 0x31, 0xfb, 0x53, 0xa0, 0x7f,
+ 0xd1, 0xce, 0xec, 0xcd,
+};
+static const unsigned char kat1555_addin0[] = {
+ 0x0a, 0xd8, 0x33, 0x31, 0x71, 0xb7, 0xd8, 0xed, 0xe9, 0x00, 0xf7, 0xfc,
+ 0xa0, 0x3f, 0xd4, 0x49,
+};
+static const unsigned char kat1555_addin1[] = {
+ 0x31, 0xad, 0xc1, 0x4d, 0xca, 0xe1, 0x50, 0x33, 0x1e, 0x7e, 0x02, 0xee,
+ 0x4c, 0x17, 0x70, 0x6b,
+};
+static const unsigned char kat1555_retbits[] = {
+ 0x78, 0xb0, 0xff, 0x4c, 0xe1, 0x59, 0xdd, 0xd5, 0x03, 0x06, 0x2f, 0x55,
+ 0x3c, 0x68, 0x59, 0x4f, 0xec, 0x39, 0x4b, 0xf4, 0xb2, 0x5e, 0x64, 0xba,
+ 0x8a, 0xf4, 0xbb, 0x2b, 0x7c, 0xa5, 0xee, 0x87, 0x67, 0x63, 0x4c, 0xba,
+ 0x2f, 0xef, 0x9b, 0x32, 0xae, 0x28, 0x3d, 0x19, 0x51, 0xf4, 0xb9, 0x8d,
+ 0x46, 0xa9, 0x98, 0xe7, 0xf3, 0x58, 0xc7, 0x14, 0xa9, 0x5a, 0xff, 0xaf,
+ 0x41, 0xdf, 0xeb, 0x17,
+};
+static const struct drbg_kat_pr_false kat1555_t = {
+ 9, kat1555_entropyin, kat1555_nonce, kat1555_persstr,
+ kat1555_entropyinreseed, kat1555_addinreseed, kat1555_addin0,
+ kat1555_addin1, kat1555_retbits
+};
+static const struct drbg_kat kat1555 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1555_t
+};
+
+static const unsigned char kat1556_entropyin[] = {
+ 0xb7, 0xad, 0x56, 0x79, 0xf6, 0x81, 0x42, 0xa8, 0x47, 0x6c, 0x98, 0xab,
+ 0xc2, 0xbb, 0x1d, 0x83,
+};
+static const unsigned char kat1556_nonce[] = {
+ 0x75, 0x79, 0xdc, 0x55, 0xc5, 0x05, 0xd7, 0x95,
+};
+static const unsigned char kat1556_persstr[] = {
+ 0xa5, 0xa7, 0x3e, 0x8c, 0x50, 0x1b, 0x5f, 0xe5, 0x46, 0xc3, 0xc1, 0x9b,
+ 0x9d, 0x3c, 0xd0, 0x93,
+};
+static const unsigned char kat1556_entropyinreseed[] = {
+ 0xe2, 0x66, 0xaf, 0x41, 0x00, 0x60, 0x10, 0xd3, 0xdd, 0x51, 0x64, 0x23,
+ 0xba, 0x80, 0x0d, 0x92,
+};
+static const unsigned char kat1556_addinreseed[] = {
+ 0x15, 0x7a, 0x5e, 0x19, 0xf7, 0xe5, 0x58, 0xa4, 0x9f, 0x1f, 0x71, 0xb6,
+ 0xaa, 0xee, 0x14, 0xa3,
+};
+static const unsigned char kat1556_addin0[] = {
+ 0x37, 0xd3, 0x49, 0x2c, 0xbe, 0xfc, 0xb8, 0x9b, 0x05, 0x6f, 0xe1, 0x29,
+ 0x0a, 0x09, 0x5f, 0x4a,
+};
+static const unsigned char kat1556_addin1[] = {
+ 0xd2, 0x1d, 0x69, 0x26, 0x33, 0x48, 0x3a, 0x67, 0x6b, 0x0b, 0x30, 0xb3,
+ 0x56, 0x51, 0xdf, 0x96,
+};
+static const unsigned char kat1556_retbits[] = {
+ 0xbc, 0x7e, 0x1f, 0x78, 0x74, 0xd0, 0x4f, 0xb0, 0x00, 0x59, 0x86, 0x9e,
+ 0x11, 0xd7, 0xf4, 0x7e, 0xb3, 0xc1, 0x75, 0x16, 0xa0, 0x58, 0xc1, 0x95,
+ 0x15, 0x1b, 0x33, 0x10, 0x92, 0x3e, 0x63, 0x15, 0x53, 0xca, 0x6b, 0x8f,
+ 0xe0, 0x70, 0x74, 0x2a, 0x07, 0xc2, 0xa2, 0x3c, 0x3c, 0x3a, 0xba, 0xc0,
+ 0x47, 0x34, 0x78, 0xc0, 0x4a, 0x06, 0x6e, 0x5e, 0x13, 0x77, 0x1f, 0xf7,
+ 0xd5, 0x17, 0x68, 0x6b,
+};
+static const struct drbg_kat_pr_false kat1556_t = {
+ 10, kat1556_entropyin, kat1556_nonce, kat1556_persstr,
+ kat1556_entropyinreseed, kat1556_addinreseed, kat1556_addin0,
+ kat1556_addin1, kat1556_retbits
+};
+static const struct drbg_kat kat1556 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1556_t
+};
+
+static const unsigned char kat1557_entropyin[] = {
+ 0x70, 0x10, 0xa5, 0x5c, 0x31, 0xbb, 0x9a, 0x36, 0x57, 0x8d, 0xcc, 0x9c,
+ 0xe3, 0xff, 0xe5, 0xd9,
+};
+static const unsigned char kat1557_nonce[] = {
+ 0xce, 0x8b, 0x37, 0xc1, 0xf7, 0xb0, 0xd9, 0x79,
+};
+static const unsigned char kat1557_persstr[] = {
+ 0x9a, 0xd0, 0xde, 0x6c, 0x71, 0x01, 0x73, 0x2f, 0xdc, 0x60, 0x0e, 0x51,
+ 0xfa, 0xd1, 0x39, 0x0c,
+};
+static const unsigned char kat1557_entropyinreseed[] = {
+ 0xdc, 0x15, 0x7b, 0xf6, 0x8f, 0x16, 0x0b, 0x84, 0x82, 0x13, 0x19, 0xe6,
+ 0x9a, 0xee, 0xc3, 0x3b,
+};
+static const unsigned char kat1557_addinreseed[] = {
+ 0x6e, 0x7a, 0x5c, 0x5f, 0x08, 0x29, 0x9f, 0xa4, 0xd4, 0x55, 0x6c, 0xea,
+ 0xa2, 0x52, 0x7b, 0x3f,
+};
+static const unsigned char kat1557_addin0[] = {
+ 0x6e, 0x1f, 0x9c, 0xa8, 0xdc, 0x3d, 0x22, 0xa2, 0x6e, 0xca, 0x83, 0x59,
+ 0x53, 0xb5, 0xa8, 0xda,
+};
+static const unsigned char kat1557_addin1[] = {
+ 0xb8, 0xb3, 0x8c, 0x7a, 0x3c, 0x5c, 0xd5, 0x87, 0xe9, 0xf1, 0xf9, 0x4e,
+ 0xb1, 0xf2, 0xdf, 0x41,
+};
+static const unsigned char kat1557_retbits[] = {
+ 0xc8, 0x4e, 0x93, 0xd1, 0x68, 0xf8, 0x79, 0x55, 0xf1, 0x75, 0x13, 0x11,
+ 0x2f, 0xd1, 0xf4, 0xf2, 0xaf, 0x7f, 0xe6, 0x91, 0x53, 0xda, 0x7e, 0x50,
+ 0x5e, 0x83, 0x74, 0x0b, 0x29, 0x29, 0x85, 0x33, 0x67, 0x24, 0xdd, 0xf4,
+ 0x6c, 0x26, 0xec, 0x4d, 0x2c, 0x45, 0xfd, 0x88, 0x36, 0x9b, 0x5f, 0x65,
+ 0xdb, 0x8a, 0x87, 0x58, 0x93, 0x4c, 0x8a, 0x82, 0x9c, 0xc7, 0x86, 0x21,
+ 0x8d, 0x26, 0xe9, 0x71,
+};
+static const struct drbg_kat_pr_false kat1557_t = {
+ 11, kat1557_entropyin, kat1557_nonce, kat1557_persstr,
+ kat1557_entropyinreseed, kat1557_addinreseed, kat1557_addin0,
+ kat1557_addin1, kat1557_retbits
+};
+static const struct drbg_kat kat1557 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1557_t
+};
+
+static const unsigned char kat1558_entropyin[] = {
+ 0x72, 0xf6, 0x75, 0x87, 0xaa, 0x67, 0xc3, 0x48, 0xee, 0x5c, 0x01, 0xc9,
+ 0x88, 0xa0, 0x76, 0xfa,
+};
+static const unsigned char kat1558_nonce[] = {
+ 0xab, 0x35, 0x82, 0x53, 0x87, 0x29, 0x5d, 0x4d,
+};
+static const unsigned char kat1558_persstr[] = {
+ 0xa9, 0x1d, 0xb3, 0x2b, 0x93, 0xdd, 0x5c, 0xc3, 0xac, 0x4a, 0x61, 0x61,
+ 0xb2, 0x5b, 0xee, 0x77,
+};
+static const unsigned char kat1558_entropyinreseed[] = {
+ 0x8f, 0xb8, 0x0d, 0x67, 0x70, 0x48, 0xd2, 0x56, 0x4d, 0x39, 0x49, 0xb9,
+ 0xb9, 0x57, 0x9c, 0xc4,
+};
+static const unsigned char kat1558_addinreseed[] = {
+ 0x43, 0x06, 0xa4, 0xad, 0xbc, 0xd0, 0xdc, 0x8c, 0xc2, 0xf8, 0x19, 0x91,
+ 0xe1, 0x29, 0x11, 0xdc,
+};
+static const unsigned char kat1558_addin0[] = {
+ 0x62, 0x0f, 0xdf, 0x28, 0x7f, 0x77, 0x7c, 0x67, 0xb6, 0x2d, 0xd0, 0x41,
+ 0x84, 0xc4, 0x88, 0xa8,
+};
+static const unsigned char kat1558_addin1[] = {
+ 0x84, 0x28, 0xf2, 0x06, 0x7d, 0xfc, 0xda, 0xcc, 0xf5, 0x43, 0x99, 0xd0,
+ 0xb7, 0x93, 0x4a, 0xab,
+};
+static const unsigned char kat1558_retbits[] = {
+ 0x5b, 0xfe, 0xf8, 0x58, 0x39, 0x87, 0x9d, 0x9e, 0x95, 0x53, 0xa2, 0xfd,
+ 0x24, 0xf3, 0x5a, 0xa8, 0x19, 0x9a, 0x09, 0x17, 0x75, 0xd2, 0xcd, 0x91,
+ 0x17, 0x32, 0x70, 0xe1, 0x41, 0xa5, 0x86, 0x69, 0xb1, 0x92, 0xe8, 0xe5,
+ 0xb3, 0x57, 0xc5, 0x7c, 0x02, 0xbd, 0x22, 0x80, 0xe2, 0x29, 0x82, 0x97,
+ 0x25, 0x59, 0x6c, 0xb9, 0x60, 0x86, 0xbb, 0x08, 0x38, 0x22, 0x7b, 0x00,
+ 0x20, 0x9c, 0x9a, 0x72,
+};
+static const struct drbg_kat_pr_false kat1558_t = {
+ 12, kat1558_entropyin, kat1558_nonce, kat1558_persstr,
+ kat1558_entropyinreseed, kat1558_addinreseed, kat1558_addin0,
+ kat1558_addin1, kat1558_retbits
+};
+static const struct drbg_kat kat1558 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1558_t
+};
+
+static const unsigned char kat1559_entropyin[] = {
+ 0x1d, 0x29, 0x22, 0xab, 0x37, 0x4b, 0xe1, 0xe7, 0x43, 0x69, 0x5d, 0xc9,
+ 0x99, 0x9d, 0xbf, 0x59,
+};
+static const unsigned char kat1559_nonce[] = {
+ 0x30, 0x94, 0x60, 0xd3, 0xe0, 0xae, 0xe3, 0x22,
+};
+static const unsigned char kat1559_persstr[] = {
+ 0x72, 0xbe, 0x1c, 0x15, 0xd3, 0xeb, 0x98, 0x56, 0x6b, 0x36, 0x7e, 0x72,
+ 0x70, 0xc4, 0xf9, 0xc8,
+};
+static const unsigned char kat1559_entropyinreseed[] = {
+ 0x0d, 0x57, 0x20, 0x1d, 0x23, 0x0c, 0x4c, 0x88, 0xc7, 0x7f, 0x54, 0xe3,
+ 0xdb, 0x0d, 0xa7, 0xe7,
+};
+static const unsigned char kat1559_addinreseed[] = {
+ 0x4f, 0x01, 0x9e, 0xaf, 0x1a, 0x93, 0xa2, 0xd5, 0xac, 0x3b, 0x68, 0xac,
+ 0xbf, 0x7f, 0xa5, 0x7a,
+};
+static const unsigned char kat1559_addin0[] = {
+ 0x0c, 0xf8, 0x2b, 0x0c, 0x4d, 0xc6, 0xf6, 0x07, 0x0c, 0x89, 0x72, 0x7c,
+ 0x71, 0xa8, 0x70, 0xfa,
+};
+static const unsigned char kat1559_addin1[] = {
+ 0x36, 0x7d, 0x49, 0x81, 0x61, 0x45, 0xff, 0x60, 0x79, 0x52, 0x81, 0x42,
+ 0xec, 0x98, 0x76, 0xc6,
+};
+static const unsigned char kat1559_retbits[] = {
+ 0xf0, 0x38, 0xa7, 0x9f, 0x9f, 0x82, 0xe2, 0x61, 0x35, 0xf2, 0xe7, 0xaa,
+ 0x67, 0x8b, 0xe9, 0x26, 0x2a, 0x7b, 0xe0, 0xe3, 0xab, 0x1c, 0x2e, 0x6a,
+ 0x9c, 0x37, 0xfd, 0x6f, 0xc8, 0xf5, 0x8c, 0xb4, 0x90, 0xb5, 0x55, 0xa6,
+ 0xac, 0xb2, 0x4b, 0x35, 0x58, 0xca, 0x94, 0x11, 0x87, 0x35, 0x6f, 0x92,
+ 0xd0, 0xe7, 0xa5, 0xba, 0xd3, 0x01, 0xa9, 0x62, 0xf0, 0x61, 0x81, 0xbd,
+ 0x70, 0x07, 0x85, 0x65,
+};
+static const struct drbg_kat_pr_false kat1559_t = {
+ 13, kat1559_entropyin, kat1559_nonce, kat1559_persstr,
+ kat1559_entropyinreseed, kat1559_addinreseed, kat1559_addin0,
+ kat1559_addin1, kat1559_retbits
+};
+static const struct drbg_kat kat1559 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1559_t
+};
+
+static const unsigned char kat1560_entropyin[] = {
+ 0x10, 0xcb, 0xf4, 0x46, 0x08, 0xfd, 0xa4, 0x8f, 0xd6, 0xed, 0x57, 0x2f,
+ 0xa4, 0xff, 0xe7, 0xeb,
+};
+static const unsigned char kat1560_nonce[] = {
+ 0x6a, 0xa3, 0x47, 0xc4, 0x8d, 0xc8, 0x09, 0xc3,
+};
+static const unsigned char kat1560_persstr[] = {
+ 0x1b, 0x58, 0x98, 0xe0, 0xd1, 0x49, 0xe5, 0x03, 0x6a, 0x63, 0x96, 0xb8,
+ 0x54, 0xd2, 0xc4, 0xa6,
+};
+static const unsigned char kat1560_entropyinreseed[] = {
+ 0x80, 0x2f, 0x1b, 0x3b, 0xea, 0x91, 0x62, 0xb6, 0x9b, 0x3b, 0x60, 0xfa,
+ 0xca, 0x95, 0xba, 0xcf,
+};
+static const unsigned char kat1560_addinreseed[] = {
+ 0x72, 0x27, 0x29, 0x66, 0x4b, 0xe0, 0xae, 0x80, 0x77, 0x43, 0x7f, 0x59,
+ 0x22, 0x9e, 0xb5, 0x1d,
+};
+static const unsigned char kat1560_addin0[] = {
+ 0x38, 0xc3, 0x91, 0x83, 0xea, 0xd3, 0x58, 0x59, 0xc7, 0xc7, 0x5e, 0xd1,
+ 0x04, 0x2b, 0x9c, 0xba,
+};
+static const unsigned char kat1560_addin1[] = {
+ 0x0c, 0x75, 0xef, 0x35, 0x7c, 0x72, 0x16, 0x04, 0xef, 0x2e, 0x11, 0x86,
+ 0xf6, 0x56, 0xf5, 0x6a,
+};
+static const unsigned char kat1560_retbits[] = {
+ 0xa7, 0x0e, 0xfa, 0x58, 0x9e, 0x73, 0xb5, 0xb5, 0x2d, 0xfa, 0x07, 0x7d,
+ 0xd0, 0x2b, 0x25, 0x6b, 0xc8, 0xb9, 0x71, 0x8f, 0x08, 0xd3, 0x54, 0x45,
+ 0x44, 0x56, 0xe1, 0xf1, 0xa5, 0x6c, 0x00, 0x52, 0x1c, 0x0d, 0x63, 0xfe,
+ 0xd3, 0x02, 0xcc, 0x67, 0x0f, 0xd5, 0x64, 0x6c, 0xec, 0x56, 0x91, 0xf8,
+ 0xb6, 0xae, 0x2e, 0xa8, 0x89, 0x27, 0xce, 0xcb, 0xd3, 0x48, 0xe2, 0xe7,
+ 0x74, 0x83, 0x01, 0x31,
+};
+static const struct drbg_kat_pr_false kat1560_t = {
+ 14, kat1560_entropyin, kat1560_nonce, kat1560_persstr,
+ kat1560_entropyinreseed, kat1560_addinreseed, kat1560_addin0,
+ kat1560_addin1, kat1560_retbits
+};
+static const struct drbg_kat kat1560 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1560_t
+};
+
+static const unsigned char kat1561_entropyin[] = {
+ 0x84, 0x52, 0x29, 0xe4, 0x2c, 0x4b, 0x39, 0xc4, 0x15, 0x73, 0x54, 0x4f,
+ 0xca, 0x83, 0x8c, 0x2f,
+};
+static const unsigned char kat1561_nonce[] = {
+ 0xbc, 0xb2, 0x3a, 0x5b, 0x7b, 0x28, 0x0c, 0x41,
+};
+static const unsigned char kat1561_persstr[] = {0};
+static const unsigned char kat1561_entropyinreseed[] = {
+ 0xe5, 0x49, 0xf5, 0x81, 0x5a, 0xd3, 0x29, 0x53, 0xb1, 0x15, 0xb8, 0xda,
+ 0x6d, 0x2c, 0x3d, 0xc9,
+};
+static const unsigned char kat1561_addinreseed[] = {0};
+static const unsigned char kat1561_addin0[] = {0};
+static const unsigned char kat1561_addin1[] = {0};
+static const unsigned char kat1561_retbits[] = {
+ 0x45, 0x33, 0x8b, 0xb6, 0x7d, 0x27, 0x31, 0xc9, 0xf6, 0x2e, 0xad, 0x90,
+ 0x4a, 0x61, 0xeb, 0x81, 0x6f, 0x93, 0xef, 0xe0, 0x60, 0x5f, 0xb4, 0x49,
+ 0x5f, 0x92, 0x52, 0x1d, 0x95, 0x53, 0xad, 0xfc, 0x5c, 0x1b, 0x02, 0x30,
+ 0x21, 0x6d, 0x4c, 0x2a, 0x38, 0x4f, 0x7a, 0xe1, 0x62, 0xff, 0x63, 0x19,
+ 0xfb, 0xdc, 0x4e, 0x11, 0x08, 0x44, 0x6f, 0x33, 0x72, 0xfb, 0x6b, 0xa5,
+ 0xcd, 0x6d, 0xe2, 0x1e,
+};
+static const struct drbg_kat_pr_false kat1561_t = {
+ 0, kat1561_entropyin, kat1561_nonce, kat1561_persstr,
+ kat1561_entropyinreseed, kat1561_addinreseed, kat1561_addin0,
+ kat1561_addin1, kat1561_retbits
+};
+static const struct drbg_kat kat1561 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1561_t
+};
+
+static const unsigned char kat1562_entropyin[] = {
+ 0x61, 0x70, 0x1c, 0x00, 0xf4, 0x7f, 0x25, 0x49, 0x3a, 0xff, 0x86, 0x62,
+ 0x7e, 0x13, 0x40, 0x3a,
+};
+static const unsigned char kat1562_nonce[] = {
+ 0x80, 0xae, 0x97, 0xde, 0x15, 0x47, 0x3f, 0x70,
+};
+static const unsigned char kat1562_persstr[] = {0};
+static const unsigned char kat1562_entropyinreseed[] = {
+ 0x82, 0xb5, 0x77, 0x72, 0x75, 0x3d, 0xf2, 0xe7, 0x77, 0x6d, 0x63, 0xee,
+ 0x97, 0x51, 0x16, 0xb4,
+};
+static const unsigned char kat1562_addinreseed[] = {0};
+static const unsigned char kat1562_addin0[] = {0};
+static const unsigned char kat1562_addin1[] = {0};
+static const unsigned char kat1562_retbits[] = {
+ 0x8a, 0x5b, 0x20, 0x99, 0xd2, 0x91, 0xbb, 0xd2, 0x1b, 0xcb, 0x47, 0x9d,
+ 0x37, 0xa4, 0x08, 0x2f, 0x02, 0x8d, 0xcd, 0xf1, 0xc0, 0x42, 0xce, 0xbd,
+ 0x5e, 0xc2, 0xdd, 0xbf, 0x58, 0x67, 0xb5, 0xee, 0x60, 0xef, 0xf1, 0xb1,
+ 0xdc, 0xdd, 0xd7, 0x6f, 0xe4, 0x41, 0x6f, 0x22, 0x9c, 0xab, 0x3a, 0xd6,
+ 0x5a, 0xbc, 0x9b, 0x57, 0xce, 0xbb, 0x31, 0x89, 0x09, 0xfe, 0xae, 0x4c,
+ 0x1a, 0x2d, 0xb1, 0xc6,
+};
+static const struct drbg_kat_pr_false kat1562_t = {
+ 1, kat1562_entropyin, kat1562_nonce, kat1562_persstr,
+ kat1562_entropyinreseed, kat1562_addinreseed, kat1562_addin0,
+ kat1562_addin1, kat1562_retbits
+};
+static const struct drbg_kat kat1562 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1562_t
+};
+
+static const unsigned char kat1563_entropyin[] = {
+ 0xb5, 0x79, 0xa2, 0x5f, 0x3d, 0x28, 0x5b, 0xf8, 0xe5, 0xc6, 0x52, 0xc2,
+ 0x43, 0x2f, 0x33, 0xae,
+};
+static const unsigned char kat1563_nonce[] = {
+ 0x26, 0x12, 0x91, 0x69, 0x9d, 0x89, 0x18, 0x89,
+};
+static const unsigned char kat1563_persstr[] = {0};
+static const unsigned char kat1563_entropyinreseed[] = {
+ 0x8a, 0x7d, 0xa7, 0xae, 0x82, 0x37, 0x2e, 0x50, 0xdc, 0xa2, 0xdd, 0x7c,
+ 0xbf, 0x4a, 0x97, 0xe8,
+};
+static const unsigned char kat1563_addinreseed[] = {0};
+static const unsigned char kat1563_addin0[] = {0};
+static const unsigned char kat1563_addin1[] = {0};
+static const unsigned char kat1563_retbits[] = {
+ 0x8a, 0xb1, 0xe7, 0x5d, 0x31, 0x2a, 0xa8, 0xa1, 0xfd, 0x7d, 0x29, 0xf1,
+ 0x52, 0x70, 0xaf, 0xad, 0x72, 0xa4, 0x29, 0xa7, 0xd0, 0x9c, 0xc0, 0xf0,
+ 0xc3, 0x33, 0x16, 0xa7, 0x3e, 0x33, 0xb3, 0xa6, 0x15, 0x53, 0x2f, 0xf6,
+ 0x0c, 0xec, 0x57, 0x4b, 0x4c, 0x2f, 0x4e, 0xc3, 0xee, 0x8b, 0xda, 0xf9,
+ 0x18, 0x2b, 0x22, 0x50, 0xb7, 0x0e, 0xaa, 0x66, 0x51, 0x49, 0x52, 0xce,
+ 0xca, 0x9d, 0xfd, 0x87,
+};
+static const struct drbg_kat_pr_false kat1563_t = {
+ 2, kat1563_entropyin, kat1563_nonce, kat1563_persstr,
+ kat1563_entropyinreseed, kat1563_addinreseed, kat1563_addin0,
+ kat1563_addin1, kat1563_retbits
+};
+static const struct drbg_kat kat1563 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1563_t
+};
+
+static const unsigned char kat1564_entropyin[] = {
+ 0x76, 0x53, 0xfd, 0x17, 0xaa, 0xd2, 0x24, 0x50, 0x6e, 0x9d, 0x76, 0x70,
+ 0xf6, 0x50, 0x9d, 0x77,
+};
+static const unsigned char kat1564_nonce[] = {
+ 0xb6, 0x20, 0x54, 0x11, 0xba, 0x31, 0x3c, 0xbb,
+};
+static const unsigned char kat1564_persstr[] = {0};
+static const unsigned char kat1564_entropyinreseed[] = {
+ 0x40, 0x45, 0x5e, 0x2f, 0x14, 0x84, 0xc8, 0x9a, 0x0f, 0x54, 0x51, 0xab,
+ 0x09, 0xa9, 0x00, 0x08,
+};
+static const unsigned char kat1564_addinreseed[] = {0};
+static const unsigned char kat1564_addin0[] = {0};
+static const unsigned char kat1564_addin1[] = {0};
+static const unsigned char kat1564_retbits[] = {
+ 0x39, 0xa4, 0x68, 0x70, 0xb1, 0x6f, 0xb1, 0x34, 0xa4, 0x4e, 0xe6, 0x23,
+ 0x9b, 0x0a, 0x16, 0x89, 0x91, 0x5b, 0x17, 0x5d, 0xe5, 0x1c, 0x8a, 0xcf,
+ 0x12, 0xac, 0x54, 0xd4, 0x2a, 0x90, 0x37, 0x65, 0x30, 0xd8, 0xd9, 0x9b,
+ 0x27, 0x74, 0xf2, 0xda, 0x48, 0xc6, 0xd0, 0xf0, 0x0d, 0x63, 0xec, 0x72,
+ 0x1b, 0x29, 0x2e, 0xd3, 0xf0, 0x60, 0xea, 0xb8, 0x49, 0x0d, 0x0e, 0xf3,
+ 0x84, 0x35, 0x72, 0xff,
+};
+static const struct drbg_kat_pr_false kat1564_t = {
+ 3, kat1564_entropyin, kat1564_nonce, kat1564_persstr,
+ kat1564_entropyinreseed, kat1564_addinreseed, kat1564_addin0,
+ kat1564_addin1, kat1564_retbits
+};
+static const struct drbg_kat kat1564 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1564_t
+};
+
+static const unsigned char kat1565_entropyin[] = {
+ 0xd3, 0x0a, 0xa7, 0x41, 0x44, 0xd9, 0xe9, 0x3d, 0x9d, 0x89, 0xfa, 0x4f,
+ 0x02, 0x96, 0x6c, 0x98,
+};
+static const unsigned char kat1565_nonce[] = {
+ 0xfd, 0x1a, 0x5f, 0x8b, 0x22, 0xc1, 0xe3, 0x82,
+};
+static const unsigned char kat1565_persstr[] = {0};
+static const unsigned char kat1565_entropyinreseed[] = {
+ 0x58, 0x28, 0xa6, 0x4e, 0xf3, 0x09, 0xec, 0x94, 0x45, 0xff, 0xeb, 0x42,
+ 0x84, 0xf2, 0x49, 0xed,
+};
+static const unsigned char kat1565_addinreseed[] = {0};
+static const unsigned char kat1565_addin0[] = {0};
+static const unsigned char kat1565_addin1[] = {0};
+static const unsigned char kat1565_retbits[] = {
+ 0xa0, 0xae, 0xb5, 0x94, 0xe5, 0xff, 0xec, 0x52, 0x61, 0x07, 0x61, 0x20,
+ 0xa7, 0x95, 0x15, 0x0d, 0x41, 0x90, 0x23, 0x63, 0x31, 0xbf, 0x13, 0xcd,
+ 0x6b, 0x99, 0x4c, 0xbc, 0x61, 0xc3, 0xa7, 0x00, 0x62, 0x28, 0xc8, 0xa6,
+ 0x09, 0x0c, 0xcc, 0x63, 0x38, 0x77, 0xe3, 0x72, 0xe1, 0xfa, 0x46, 0x9a,
+ 0x75, 0x35, 0x04, 0xf0, 0xee, 0x9d, 0x79, 0x46, 0x73, 0x59, 0xf7, 0x1c,
+ 0x1d, 0xff, 0xd8, 0x1e,
+};
+static const struct drbg_kat_pr_false kat1565_t = {
+ 4, kat1565_entropyin, kat1565_nonce, kat1565_persstr,
+ kat1565_entropyinreseed, kat1565_addinreseed, kat1565_addin0,
+ kat1565_addin1, kat1565_retbits
+};
+static const struct drbg_kat kat1565 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1565_t
+};
+
+static const unsigned char kat1566_entropyin[] = {
+ 0x9c, 0x9b, 0xf9, 0xef, 0xf8, 0xfb, 0x95, 0xea, 0x6a, 0x44, 0x54, 0x06,
+ 0xdb, 0xf2, 0x58, 0xc6,
+};
+static const unsigned char kat1566_nonce[] = {
+ 0xef, 0xa8, 0x3a, 0x3b, 0xab, 0x1f, 0x4c, 0x1b,
+};
+static const unsigned char kat1566_persstr[] = {0};
+static const unsigned char kat1566_entropyinreseed[] = {
+ 0xc4, 0x09, 0x19, 0x3b, 0x18, 0x70, 0x75, 0xc5, 0x24, 0x03, 0xe6, 0x85,
+ 0x3f, 0x7b, 0x86, 0x6c,
+};
+static const unsigned char kat1566_addinreseed[] = {0};
+static const unsigned char kat1566_addin0[] = {0};
+static const unsigned char kat1566_addin1[] = {0};
+static const unsigned char kat1566_retbits[] = {
+ 0x9c, 0xaf, 0xf0, 0x6f, 0x9b, 0x61, 0xb6, 0x00, 0xe2, 0x10, 0x8b, 0x0b,
+ 0x94, 0xfb, 0x82, 0x56, 0xc1, 0x36, 0xe5, 0xd7, 0x9a, 0x17, 0xec, 0x3a,
+ 0x50, 0x91, 0x17, 0x1a, 0xcc, 0xeb, 0xf1, 0x21, 0x6b, 0xb5, 0x29, 0xdd,
+ 0x4e, 0x9f, 0x9d, 0xeb, 0xce, 0xa9, 0xed, 0x32, 0x22, 0x3a, 0xcc, 0x55,
+ 0xd8, 0xdb, 0x1a, 0x55, 0x04, 0x1a, 0xee, 0x39, 0x22, 0x82, 0x51, 0xa5,
+ 0x49, 0x6e, 0xa4, 0x82,
+};
+static const struct drbg_kat_pr_false kat1566_t = {
+ 5, kat1566_entropyin, kat1566_nonce, kat1566_persstr,
+ kat1566_entropyinreseed, kat1566_addinreseed, kat1566_addin0,
+ kat1566_addin1, kat1566_retbits
+};
+static const struct drbg_kat kat1566 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1566_t
+};
+
+static const unsigned char kat1567_entropyin[] = {
+ 0xd3, 0x6d, 0x63, 0xbf, 0x82, 0x14, 0xc3, 0x60, 0xd9, 0xc8, 0x28, 0x77,
+ 0xb0, 0x71, 0x60, 0xbf,
+};
+static const unsigned char kat1567_nonce[] = {
+ 0x3c, 0xc2, 0x10, 0x48, 0xa8, 0x1a, 0xba, 0x3c,
+};
+static const unsigned char kat1567_persstr[] = {0};
+static const unsigned char kat1567_entropyinreseed[] = {
+ 0x2e, 0xa0, 0x84, 0x31, 0xc8, 0x4a, 0xd1, 0x35, 0x27, 0x27, 0x7a, 0x31,
+ 0x73, 0x09, 0xe5, 0xf4,
+};
+static const unsigned char kat1567_addinreseed[] = {0};
+static const unsigned char kat1567_addin0[] = {0};
+static const unsigned char kat1567_addin1[] = {0};
+static const unsigned char kat1567_retbits[] = {
+ 0x9f, 0xec, 0x4b, 0x24, 0xa2, 0x1a, 0xaa, 0x36, 0x56, 0x19, 0x20, 0x2b,
+ 0x15, 0x8c, 0x85, 0x79, 0x7e, 0x64, 0x12, 0x9b, 0xb5, 0xa0, 0x95, 0xc7,
+ 0xa3, 0x5a, 0x2a, 0xd5, 0xbb, 0x4c, 0x58, 0x3f, 0x8c, 0xa0, 0x29, 0xb6,
+ 0x9f, 0x99, 0x2c, 0xe1, 0xa1, 0x77, 0x1e, 0xc3, 0x63, 0xb0, 0x16, 0xd2,
+ 0x0f, 0x9b, 0x01, 0x2b, 0x78, 0x69, 0x6c, 0xf2, 0x29, 0x9a, 0xcb, 0x69,
+ 0x57, 0xc0, 0x17, 0x77,
+};
+static const struct drbg_kat_pr_false kat1567_t = {
+ 6, kat1567_entropyin, kat1567_nonce, kat1567_persstr,
+ kat1567_entropyinreseed, kat1567_addinreseed, kat1567_addin0,
+ kat1567_addin1, kat1567_retbits
+};
+static const struct drbg_kat kat1567 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1567_t
+};
+
+static const unsigned char kat1568_entropyin[] = {
+ 0x89, 0xd2, 0xcf, 0x42, 0x58, 0xd7, 0x86, 0x36, 0xbf, 0xa8, 0x9d, 0xed,
+ 0xd6, 0x6e, 0xce, 0x30,
+};
+static const unsigned char kat1568_nonce[] = {
+ 0x67, 0xba, 0x75, 0xac, 0x91, 0x95, 0x61, 0xf9,
+};
+static const unsigned char kat1568_persstr[] = {0};
+static const unsigned char kat1568_entropyinreseed[] = {
+ 0xaa, 0x1f, 0x97, 0x8d, 0x93, 0xc7, 0x47, 0x93, 0x3e, 0x9f, 0x71, 0x7e,
+ 0x10, 0x1b, 0xf8, 0xa0,
+};
+static const unsigned char kat1568_addinreseed[] = {0};
+static const unsigned char kat1568_addin0[] = {0};
+static const unsigned char kat1568_addin1[] = {0};
+static const unsigned char kat1568_retbits[] = {
+ 0xf9, 0x45, 0x1e, 0x03, 0x87, 0xbe, 0x0b, 0x51, 0x8c, 0x53, 0x84, 0x22,
+ 0xf4, 0xae, 0xb8, 0x0d, 0x77, 0x55, 0x61, 0x30, 0x45, 0x55, 0xc5, 0x95,
+ 0x7e, 0xc9, 0xc7, 0xd5, 0x2a, 0x8b, 0x77, 0x3c, 0x7b, 0xc1, 0x9a, 0x21,
+ 0xa8, 0x48, 0xd4, 0x74, 0x1c, 0x18, 0x83, 0x63, 0x96, 0xb3, 0x70, 0x11,
+ 0xfc, 0xb4, 0x54, 0xad, 0x87, 0xec, 0x06, 0x6e, 0x40, 0xa8, 0x61, 0xda,
+ 0xb4, 0x07, 0xef, 0x37,
+};
+static const struct drbg_kat_pr_false kat1568_t = {
+ 7, kat1568_entropyin, kat1568_nonce, kat1568_persstr,
+ kat1568_entropyinreseed, kat1568_addinreseed, kat1568_addin0,
+ kat1568_addin1, kat1568_retbits
+};
+static const struct drbg_kat kat1568 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1568_t
+};
+
+static const unsigned char kat1569_entropyin[] = {
+ 0xb1, 0x5a, 0x9e, 0xec, 0xbd, 0x33, 0xef, 0x60, 0x1f, 0xc4, 0x94, 0x6b,
+ 0x78, 0xb3, 0x18, 0x03,
+};
+static const unsigned char kat1569_nonce[] = {
+ 0xb1, 0x45, 0xc3, 0xdb, 0x01, 0xc5, 0xdc, 0x45,
+};
+static const unsigned char kat1569_persstr[] = {0};
+static const unsigned char kat1569_entropyinreseed[] = {
+ 0x64, 0xc7, 0xac, 0xf3, 0x47, 0x3d, 0x0c, 0x4a, 0xb3, 0xd9, 0xd2, 0x0e,
+ 0x42, 0x4b, 0x80, 0x82,
+};
+static const unsigned char kat1569_addinreseed[] = {0};
+static const unsigned char kat1569_addin0[] = {0};
+static const unsigned char kat1569_addin1[] = {0};
+static const unsigned char kat1569_retbits[] = {
+ 0x59, 0x0e, 0xf8, 0xdf, 0x13, 0x09, 0xd1, 0xf2, 0xcf, 0xf2, 0x7e, 0x40,
+ 0x5c, 0x72, 0x23, 0x29, 0xf6, 0x99, 0xcb, 0x56, 0x72, 0x05, 0x31, 0x31,
+ 0x22, 0x80, 0x60, 0x28, 0x0f, 0x44, 0x8d, 0x1f, 0xef, 0x80, 0x91, 0xde,
+ 0x46, 0x9a, 0xa6, 0xc2, 0x6d, 0xce, 0x06, 0xde, 0xf9, 0x98, 0x33, 0x80,
+ 0x2b, 0x36, 0x3d, 0xea, 0x4d, 0x7c, 0x4b, 0x85, 0xbf, 0x28, 0x14, 0x9b,
+ 0xe9, 0x3d, 0x6c, 0x16,
+};
+static const struct drbg_kat_pr_false kat1569_t = {
+ 8, kat1569_entropyin, kat1569_nonce, kat1569_persstr,
+ kat1569_entropyinreseed, kat1569_addinreseed, kat1569_addin0,
+ kat1569_addin1, kat1569_retbits
+};
+static const struct drbg_kat kat1569 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1569_t
+};
+
+static const unsigned char kat1570_entropyin[] = {
+ 0x8d, 0x35, 0x7c, 0xf4, 0xee, 0xd0, 0xf1, 0x04, 0xe3, 0x93, 0xe8, 0x50,
+ 0xb9, 0x10, 0x48, 0xbb,
+};
+static const unsigned char kat1570_nonce[] = {
+ 0xa9, 0x9f, 0x29, 0x50, 0x9b, 0xed, 0xb6, 0xdf,
+};
+static const unsigned char kat1570_persstr[] = {0};
+static const unsigned char kat1570_entropyinreseed[] = {
+ 0x54, 0x89, 0xe4, 0x83, 0x8c, 0xe2, 0x4a, 0x12, 0xc5, 0x79, 0xfb, 0xc1,
+ 0x0f, 0xe7, 0x97, 0x24,
+};
+static const unsigned char kat1570_addinreseed[] = {0};
+static const unsigned char kat1570_addin0[] = {0};
+static const unsigned char kat1570_addin1[] = {0};
+static const unsigned char kat1570_retbits[] = {
+ 0x55, 0xd7, 0x56, 0x86, 0x06, 0xd7, 0x6f, 0xcd, 0x23, 0x6e, 0x84, 0x3d,
+ 0xee, 0x34, 0x38, 0x90, 0x40, 0x54, 0x29, 0xb0, 0x56, 0xa8, 0xb6, 0x3f,
+ 0xf5, 0x2c, 0x08, 0x90, 0x78, 0x19, 0x5b, 0x54, 0x9d, 0xe6, 0x71, 0x8b,
+ 0x36, 0x2d, 0xdf, 0x2f, 0x6f, 0x4c, 0x97, 0x9c, 0xde, 0xbe, 0x2f, 0xe7,
+ 0x93, 0x33, 0x2b, 0x78, 0xb8, 0x92, 0xda, 0xc8, 0xed, 0xd2, 0x2c, 0x42,
+ 0xa5, 0xd0, 0x68, 0x80,
+};
+static const struct drbg_kat_pr_false kat1570_t = {
+ 9, kat1570_entropyin, kat1570_nonce, kat1570_persstr,
+ kat1570_entropyinreseed, kat1570_addinreseed, kat1570_addin0,
+ kat1570_addin1, kat1570_retbits
+};
+static const struct drbg_kat kat1570 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1570_t
+};
+
+static const unsigned char kat1571_entropyin[] = {
+ 0x62, 0x01, 0x55, 0x02, 0x44, 0xc1, 0xa4, 0x2a, 0x4c, 0x45, 0x7a, 0x75,
+ 0x91, 0xd2, 0x57, 0x43,
+};
+static const unsigned char kat1571_nonce[] = {
+ 0xe8, 0x34, 0x27, 0xa9, 0xf4, 0x8d, 0x56, 0x7e,
+};
+static const unsigned char kat1571_persstr[] = {0};
+static const unsigned char kat1571_entropyinreseed[] = {
+ 0x44, 0x49, 0x41, 0x0c, 0xfc, 0x18, 0x83, 0x0e, 0xc1, 0x85, 0x12, 0xff,
+ 0xbe, 0x64, 0xe5, 0x62,
+};
+static const unsigned char kat1571_addinreseed[] = {0};
+static const unsigned char kat1571_addin0[] = {0};
+static const unsigned char kat1571_addin1[] = {0};
+static const unsigned char kat1571_retbits[] = {
+ 0x09, 0xa3, 0x44, 0x44, 0x99, 0x8a, 0x2c, 0x1c, 0xac, 0xed, 0x5d, 0x93,
+ 0x13, 0xa3, 0xb8, 0xe3, 0x9a, 0x13, 0xc8, 0xba, 0x98, 0xa3, 0x3e, 0x96,
+ 0xd7, 0x8a, 0x99, 0x10, 0x55, 0xac, 0xfb, 0x38, 0x46, 0x88, 0xb5, 0xb3,
+ 0xe1, 0xb8, 0x7c, 0x2c, 0x3d, 0x0c, 0x91, 0x0f, 0xb9, 0xa4, 0x20, 0x49,
+ 0x93, 0x84, 0xa4, 0x90, 0x70, 0x20, 0x1b, 0x76, 0xc1, 0x4a, 0x12, 0x68,
+ 0x51, 0xb8, 0xf4, 0x3d,
+};
+static const struct drbg_kat_pr_false kat1571_t = {
+ 10, kat1571_entropyin, kat1571_nonce, kat1571_persstr,
+ kat1571_entropyinreseed, kat1571_addinreseed, kat1571_addin0,
+ kat1571_addin1, kat1571_retbits
+};
+static const struct drbg_kat kat1571 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1571_t
+};
+
+static const unsigned char kat1572_entropyin[] = {
+ 0x5b, 0xd5, 0x4f, 0xaa, 0xc8, 0xf1, 0xb1, 0x1f, 0xe1, 0xd5, 0x0a, 0xfd,
+ 0x36, 0xb0, 0x58, 0x9c,
+};
+static const unsigned char kat1572_nonce[] = {
+ 0xe3, 0x85, 0x78, 0x8e, 0x7b, 0x67, 0xfa, 0xe2,
+};
+static const unsigned char kat1572_persstr[] = {0};
+static const unsigned char kat1572_entropyinreseed[] = {
+ 0x87, 0x26, 0x55, 0x03, 0x30, 0xd8, 0x52, 0x83, 0x8a, 0x99, 0x9f, 0xc9,
+ 0x89, 0xe4, 0xa1, 0xa6,
+};
+static const unsigned char kat1572_addinreseed[] = {0};
+static const unsigned char kat1572_addin0[] = {0};
+static const unsigned char kat1572_addin1[] = {0};
+static const unsigned char kat1572_retbits[] = {
+ 0xe8, 0x7b, 0xd1, 0x88, 0xf3, 0xfe, 0xef, 0xb4, 0xd0, 0x58, 0xbd, 0x73,
+ 0x2a, 0x0f, 0x22, 0x56, 0x89, 0xb8, 0xeb, 0x31, 0xcb, 0xbb, 0x65, 0xb3,
+ 0x16, 0x1e, 0xb5, 0xf8, 0xd5, 0x23, 0xb1, 0xbe, 0xfc, 0x59, 0xb0, 0x05,
+ 0xc8, 0x82, 0x0d, 0x33, 0x5a, 0x06, 0x0c, 0xe2, 0xae, 0xfa, 0xba, 0xf7,
+ 0x4a, 0x6d, 0xd9, 0x94, 0xf8, 0x13, 0x4e, 0x78, 0x05, 0xac, 0x65, 0xe5,
+ 0x06, 0x57, 0x0a, 0xf7,
+};
+static const struct drbg_kat_pr_false kat1572_t = {
+ 11, kat1572_entropyin, kat1572_nonce, kat1572_persstr,
+ kat1572_entropyinreseed, kat1572_addinreseed, kat1572_addin0,
+ kat1572_addin1, kat1572_retbits
+};
+static const struct drbg_kat kat1572 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1572_t
+};
+
+static const unsigned char kat1573_entropyin[] = {
+ 0x47, 0x49, 0xf6, 0xae, 0x9d, 0x20, 0x0c, 0xe0, 0xff, 0xe5, 0xbc, 0xa2,
+ 0xf7, 0x00, 0x7c, 0x5b,
+};
+static const unsigned char kat1573_nonce[] = {
+ 0x90, 0xdb, 0x60, 0xc7, 0x60, 0xe3, 0x00, 0x2c,
+};
+static const unsigned char kat1573_persstr[] = {0};
+static const unsigned char kat1573_entropyinreseed[] = {
+ 0x54, 0xad, 0x4c, 0xa1, 0x94, 0x02, 0xfd, 0xbd, 0x37, 0x60, 0x06, 0x02,
+ 0x10, 0x40, 0xbd, 0xaa,
+};
+static const unsigned char kat1573_addinreseed[] = {0};
+static const unsigned char kat1573_addin0[] = {0};
+static const unsigned char kat1573_addin1[] = {0};
+static const unsigned char kat1573_retbits[] = {
+ 0x37, 0x98, 0x01, 0x26, 0x2f, 0xdb, 0xda, 0x3b, 0x30, 0x37, 0x37, 0x19,
+ 0xea, 0x22, 0x41, 0xb8, 0xe8, 0x4f, 0xb1, 0x73, 0x56, 0x51, 0x63, 0xd9,
+ 0x63, 0x50, 0x22, 0x77, 0xfd, 0x41, 0xb6, 0x2c, 0x2f, 0x78, 0x50, 0x6d,
+ 0x23, 0xee, 0x80, 0xc7, 0xf2, 0xe8, 0xb9, 0x63, 0x54, 0xa6, 0xca, 0xa6,
+ 0x9d, 0xd6, 0x94, 0xd8, 0x04, 0x94, 0x67, 0x50, 0x46, 0x17, 0xf6, 0x94,
+ 0x89, 0x45, 0x74, 0xc2,
+};
+static const struct drbg_kat_pr_false kat1573_t = {
+ 12, kat1573_entropyin, kat1573_nonce, kat1573_persstr,
+ kat1573_entropyinreseed, kat1573_addinreseed, kat1573_addin0,
+ kat1573_addin1, kat1573_retbits
+};
+static const struct drbg_kat kat1573 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1573_t
+};
+
+static const unsigned char kat1574_entropyin[] = {
+ 0x18, 0x48, 0x45, 0xac, 0x4e, 0x88, 0x42, 0x13, 0x08, 0x1c, 0xb2, 0x94,
+ 0x23, 0xb5, 0x11, 0x6e,
+};
+static const unsigned char kat1574_nonce[] = {
+ 0x29, 0x92, 0x07, 0xbc, 0xbc, 0xaa, 0x35, 0xbe,
+};
+static const unsigned char kat1574_persstr[] = {0};
+static const unsigned char kat1574_entropyinreseed[] = {
+ 0x54, 0x60, 0xf7, 0x13, 0x93, 0xfe, 0x8a, 0xac, 0xba, 0x6a, 0xa2, 0xb6,
+ 0x90, 0xca, 0xc9, 0x78,
+};
+static const unsigned char kat1574_addinreseed[] = {0};
+static const unsigned char kat1574_addin0[] = {0};
+static const unsigned char kat1574_addin1[] = {0};
+static const unsigned char kat1574_retbits[] = {
+ 0x01, 0x9e, 0xfa, 0xcf, 0x06, 0x0d, 0xe6, 0x89, 0x8d, 0xc2, 0x34, 0xad,
+ 0x02, 0xfa, 0xcc, 0x81, 0x79, 0xbf, 0xd7, 0xe4, 0xfb, 0x70, 0x8f, 0x1c,
+ 0x01, 0x51, 0x92, 0xd4, 0x3d, 0x95, 0x3e, 0x59, 0x0b, 0xf3, 0xe8, 0xa2,
+ 0x52, 0xfb, 0xfa, 0xed, 0x5d, 0x9b, 0x5d, 0x69, 0xc9, 0x9c, 0x23, 0x43,
+ 0xd9, 0xc3, 0x2c, 0x71, 0xa9, 0x01, 0x0a, 0x12, 0xd6, 0x9a, 0x8e, 0x6c,
+ 0x86, 0xe5, 0x89, 0x0c,
+};
+static const struct drbg_kat_pr_false kat1574_t = {
+ 13, kat1574_entropyin, kat1574_nonce, kat1574_persstr,
+ kat1574_entropyinreseed, kat1574_addinreseed, kat1574_addin0,
+ kat1574_addin1, kat1574_retbits
+};
+static const struct drbg_kat kat1574 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1574_t
+};
+
+static const unsigned char kat1575_entropyin[] = {
+ 0x37, 0x29, 0xfb, 0x44, 0x2b, 0xc3, 0x2e, 0x13, 0x2a, 0x5b, 0x3b, 0x6f,
+ 0x37, 0x9d, 0xca, 0x0c,
+};
+static const unsigned char kat1575_nonce[] = {
+ 0x5b, 0xd4, 0xf3, 0xfb, 0x9e, 0xf3, 0x63, 0xbf,
+};
+static const unsigned char kat1575_persstr[] = {0};
+static const unsigned char kat1575_entropyinreseed[] = {
+ 0xa5, 0x10, 0x80, 0xa3, 0x5e, 0x53, 0xe8, 0x0f, 0x63, 0x67, 0x82, 0x99,
+ 0xeb, 0x04, 0x6a, 0xab,
+};
+static const unsigned char kat1575_addinreseed[] = {0};
+static const unsigned char kat1575_addin0[] = {0};
+static const unsigned char kat1575_addin1[] = {0};
+static const unsigned char kat1575_retbits[] = {
+ 0x4f, 0xd5, 0x86, 0xf7, 0x4c, 0x27, 0x8c, 0x14, 0x9d, 0x1b, 0xee, 0x67,
+ 0x14, 0xa5, 0xcb, 0x94, 0x10, 0xc2, 0x05, 0xd0, 0x42, 0x74, 0x0b, 0x45,
+ 0x4b, 0x7a, 0x84, 0x14, 0x70, 0xb7, 0xf9, 0x87, 0xf6, 0xaf, 0x8a, 0x68,
+ 0x0e, 0x91, 0xa3, 0xf2, 0xbd, 0x88, 0x11, 0x6c, 0x25, 0xd9, 0xe5, 0xec,
+ 0x8a, 0x78, 0xf2, 0xd1, 0x2a, 0x12, 0x89, 0xa0, 0x15, 0x74, 0xf2, 0xf7,
+ 0x51, 0x18, 0x1c, 0xd0,
+};
+static const struct drbg_kat_pr_false kat1575_t = {
+ 14, kat1575_entropyin, kat1575_nonce, kat1575_persstr,
+ kat1575_entropyinreseed, kat1575_addinreseed, kat1575_addin0,
+ kat1575_addin1, kat1575_retbits
+};
+static const struct drbg_kat kat1575 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1575_t
+};
+
+static const unsigned char kat1576_entropyin[] = {
+ 0x34, 0xd0, 0xf9, 0xf7, 0x14, 0xd1, 0x53, 0x9a, 0x29, 0x8b, 0x21, 0xd3,
+ 0xea, 0x18, 0x8d, 0x0e,
+};
+static const unsigned char kat1576_nonce[] = {
+ 0xf2, 0xff, 0x4b, 0xd5, 0xf6, 0xcf, 0x78, 0x12,
+};
+static const unsigned char kat1576_persstr[] = {0};
+static const unsigned char kat1576_entropyinreseed[] = {
+ 0xcd, 0x44, 0xf4, 0x1d, 0xc3, 0xfd, 0x07, 0xd8, 0x85, 0x00, 0xb4, 0x08,
+ 0x4a, 0x65, 0xa9, 0xa0,
+};
+static const unsigned char kat1576_addinreseed[] = {
+ 0x19, 0xc3, 0xb7, 0x0b, 0xa9, 0x50, 0xac, 0x85, 0x35, 0xa4, 0xb5, 0x4e,
+ 0x11, 0x76, 0xe7, 0xe1,
+};
+static const unsigned char kat1576_addin0[] = {
+ 0x23, 0x35, 0x69, 0x9d, 0x1e, 0x4d, 0xc4, 0xf7, 0x78, 0x13, 0x75, 0x75,
+ 0x0f, 0xd6, 0xdd, 0x86,
+};
+static const unsigned char kat1576_addin1[] = {
+ 0x25, 0xa8, 0x4e, 0xe7, 0x46, 0x66, 0x5d, 0x8c, 0x50, 0xb0, 0xd6, 0x72,
+ 0x44, 0x5a, 0x9f, 0x04,
+};
+static const unsigned char kat1576_retbits[] = {
+ 0x06, 0x40, 0x54, 0xac, 0x13, 0xc9, 0xda, 0xab, 0x59, 0x06, 0xb6, 0x48,
+ 0x31, 0x49, 0x79, 0x37, 0x60, 0x63, 0x50, 0x8b, 0xba, 0x87, 0x21, 0xff,
+ 0xf6, 0xfe, 0xdc, 0x45, 0x22, 0x19, 0x08, 0x1f, 0x6f, 0xe0, 0x3f, 0x7c,
+ 0xff, 0x48, 0xf6, 0xa5, 0x82, 0xdf, 0xe3, 0x3c, 0xa7, 0xe5, 0x76, 0x44,
+ 0xaf, 0x20, 0x88, 0xfd, 0x67, 0x74, 0xdf, 0xa5, 0x9c, 0xb9, 0x3c, 0x11,
+ 0x60, 0xed, 0xf8, 0xb3,
+};
+static const struct drbg_kat_pr_false kat1576_t = {
+ 0, kat1576_entropyin, kat1576_nonce, kat1576_persstr,
+ kat1576_entropyinreseed, kat1576_addinreseed, kat1576_addin0,
+ kat1576_addin1, kat1576_retbits
+};
+static const struct drbg_kat kat1576 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1576_t
+};
+
+static const unsigned char kat1577_entropyin[] = {
+ 0x97, 0x47, 0x59, 0x0c, 0xe4, 0x3b, 0x11, 0x8f, 0x68, 0x51, 0x2c, 0x8d,
+ 0xd6, 0x94, 0x5f, 0x2f,
+};
+static const unsigned char kat1577_nonce[] = {
+ 0x57, 0x21, 0x36, 0xc8, 0x4f, 0x2b, 0x76, 0xf8,
+};
+static const unsigned char kat1577_persstr[] = {0};
+static const unsigned char kat1577_entropyinreseed[] = {
+ 0x79, 0x18, 0x3d, 0x9f, 0x83, 0xbb, 0xf2, 0xe4, 0xdf, 0xa1, 0x1c, 0xc8,
+ 0xa4, 0xe5, 0x20, 0xd5,
+};
+static const unsigned char kat1577_addinreseed[] = {
+ 0x07, 0x77, 0x48, 0xf5, 0x93, 0x51, 0x70, 0xc2, 0x4e, 0xe6, 0x4d, 0x53,
+ 0x05, 0x70, 0x14, 0x07,
+};
+static const unsigned char kat1577_addin0[] = {
+ 0x55, 0xc3, 0x9d, 0xa1, 0x64, 0x97, 0xae, 0x1b, 0xaf, 0x68, 0x16, 0xe1,
+ 0x3f, 0x9e, 0xe2, 0x8a,
+};
+static const unsigned char kat1577_addin1[] = {
+ 0x94, 0x95, 0x6b, 0xbe, 0x66, 0x19, 0x33, 0xd7, 0xc8, 0xf7, 0x02, 0x5d,
+ 0x75, 0x1b, 0x27, 0xb3,
+};
+static const unsigned char kat1577_retbits[] = {
+ 0x7a, 0xaa, 0x55, 0xd5, 0x65, 0xfa, 0x40, 0x9a, 0xe9, 0x83, 0x12, 0xa6,
+ 0x5b, 0x8e, 0x6c, 0x46, 0x2f, 0x0b, 0xe0, 0xdb, 0x73, 0x9f, 0xe8, 0x62,
+ 0x90, 0xda, 0xc1, 0xb5, 0xe1, 0xb1, 0x92, 0x41, 0x44, 0x98, 0x80, 0x33,
+ 0xe8, 0x9e, 0x81, 0xbc, 0xc1, 0x2c, 0xda, 0x58, 0x6b, 0xf5, 0xc9, 0x54,
+ 0x7e, 0xe3, 0x2b, 0xd5, 0xcf, 0xce, 0x50, 0xdd, 0x21, 0x32, 0x95, 0xa4,
+ 0x7b, 0x2d, 0x54, 0xeb,
+};
+static const struct drbg_kat_pr_false kat1577_t = {
+ 1, kat1577_entropyin, kat1577_nonce, kat1577_persstr,
+ kat1577_entropyinreseed, kat1577_addinreseed, kat1577_addin0,
+ kat1577_addin1, kat1577_retbits
+};
+static const struct drbg_kat kat1577 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1577_t
+};
+
+static const unsigned char kat1578_entropyin[] = {
+ 0xa1, 0x8e, 0x30, 0x38, 0xd4, 0xbf, 0xb3, 0xfb, 0x19, 0x48, 0x34, 0xb6,
+ 0x5c, 0x3a, 0xf2, 0x80,
+};
+static const unsigned char kat1578_nonce[] = {
+ 0x60, 0x42, 0xec, 0xe5, 0xc2, 0x16, 0xe0, 0xf3,
+};
+static const unsigned char kat1578_persstr[] = {0};
+static const unsigned char kat1578_entropyinreseed[] = {
+ 0x39, 0xcd, 0x5e, 0xbc, 0x18, 0x3b, 0x7c, 0x85, 0x90, 0x8c, 0xba, 0xf4,
+ 0x5e, 0x1b, 0x17, 0x92,
+};
+static const unsigned char kat1578_addinreseed[] = {
+ 0x1d, 0x78, 0x0d, 0x8e, 0x23, 0x06, 0x57, 0x70, 0xa6, 0xeb, 0xfc, 0x0c,
+ 0x11, 0xbd, 0xf8, 0xd1,
+};
+static const unsigned char kat1578_addin0[] = {
+ 0x7b, 0xa2, 0x57, 0xad, 0x0b, 0x02, 0xb1, 0x56, 0xeb, 0xce, 0x64, 0x4e,
+ 0xc3, 0xb5, 0x90, 0xb5,
+};
+static const unsigned char kat1578_addin1[] = {
+ 0xfa, 0x8c, 0xb5, 0xef, 0x31, 0x45, 0x0d, 0xae, 0xf8, 0x56, 0x0d, 0x48,
+ 0x4f, 0x9b, 0xd6, 0x38,
+};
+static const unsigned char kat1578_retbits[] = {
+ 0x58, 0x56, 0x54, 0x5b, 0x1c, 0x44, 0x4e, 0x02, 0x03, 0x51, 0xed, 0x06,
+ 0x42, 0x0a, 0x41, 0x86, 0x89, 0x8b, 0xe0, 0x70, 0x90, 0x5d, 0x18, 0x2a,
+ 0x32, 0x29, 0x18, 0x8a, 0xfc, 0xa5, 0x5c, 0x24, 0x80, 0xb1, 0xf1, 0x2e,
+ 0x0a, 0xca, 0x0b, 0x68, 0x0c, 0x9c, 0x72, 0xc2, 0x00, 0x9c, 0xb3, 0xdc,
+ 0x0b, 0x9b, 0xe7, 0xd7, 0x24, 0xfc, 0xc9, 0xf2, 0x69, 0x37, 0xfc, 0x09,
+ 0xa5, 0xd7, 0x33, 0xd1,
+};
+static const struct drbg_kat_pr_false kat1578_t = {
+ 2, kat1578_entropyin, kat1578_nonce, kat1578_persstr,
+ kat1578_entropyinreseed, kat1578_addinreseed, kat1578_addin0,
+ kat1578_addin1, kat1578_retbits
+};
+static const struct drbg_kat kat1578 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1578_t
+};
+
+static const unsigned char kat1579_entropyin[] = {
+ 0xe1, 0x34, 0xcc, 0x13, 0x4a, 0x22, 0xb4, 0xd6, 0x22, 0xee, 0x6f, 0xb1,
+ 0xe8, 0x9a, 0x1c, 0x53,
+};
+static const unsigned char kat1579_nonce[] = {
+ 0x14, 0x9f, 0x4e, 0xb0, 0x08, 0x00, 0x70, 0xd3,
+};
+static const unsigned char kat1579_persstr[] = {0};
+static const unsigned char kat1579_entropyinreseed[] = {
+ 0x53, 0x36, 0x84, 0xbe, 0xcf, 0x30, 0xac, 0x8d, 0xef, 0x95, 0xb5, 0xe5,
+ 0x44, 0x99, 0x0c, 0x99,
+};
+static const unsigned char kat1579_addinreseed[] = {
+ 0x1c, 0x61, 0xbc, 0x27, 0xf6, 0xd4, 0x5c, 0x7e, 0x06, 0x61, 0x37, 0x77,
+ 0xa6, 0xce, 0x14, 0x98,
+};
+static const unsigned char kat1579_addin0[] = {
+ 0x65, 0xf6, 0x0c, 0xe8, 0xdf, 0xa6, 0xbc, 0xf8, 0x2f, 0x73, 0xf0, 0xa9,
+ 0x3f, 0xcf, 0x99, 0x11,
+};
+static const unsigned char kat1579_addin1[] = {
+ 0xf2, 0xc1, 0xe2, 0xa1, 0xdb, 0xe9, 0xf1, 0x82, 0x8e, 0xc7, 0x73, 0x3c,
+ 0x18, 0xa1, 0x6b, 0xa5,
+};
+static const unsigned char kat1579_retbits[] = {
+ 0x32, 0x2e, 0x86, 0x03, 0x79, 0xe6, 0x63, 0x84, 0xdf, 0x97, 0xf5, 0x21,
+ 0xeb, 0x6b, 0x8e, 0x85, 0x20, 0xb0, 0x37, 0x2e, 0x90, 0x89, 0x27, 0xe5,
+ 0x0e, 0x06, 0x07, 0x7e, 0x3b, 0xd3, 0x80, 0x51, 0x99, 0xfd, 0xd0, 0x5d,
+ 0x0b, 0x8a, 0xc6, 0x19, 0x82, 0xb1, 0x43, 0x21, 0x07, 0x86, 0x6e, 0x37,
+ 0xd4, 0x59, 0x6b, 0x42, 0xa3, 0x42, 0x15, 0x13, 0x63, 0x8a, 0x61, 0x96,
+ 0xe6, 0xa9, 0x2d, 0x61,
+};
+static const struct drbg_kat_pr_false kat1579_t = {
+ 3, kat1579_entropyin, kat1579_nonce, kat1579_persstr,
+ kat1579_entropyinreseed, kat1579_addinreseed, kat1579_addin0,
+ kat1579_addin1, kat1579_retbits
+};
+static const struct drbg_kat kat1579 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1579_t
+};
+
+static const unsigned char kat1580_entropyin[] = {
+ 0x32, 0x63, 0xfb, 0xac, 0x89, 0x3e, 0x72, 0xf1, 0x56, 0x04, 0x38, 0xda,
+ 0x0b, 0x4a, 0x9a, 0x34,
+};
+static const unsigned char kat1580_nonce[] = {
+ 0x77, 0x70, 0xa4, 0x6c, 0x62, 0x71, 0x97, 0x59,
+};
+static const unsigned char kat1580_persstr[] = {0};
+static const unsigned char kat1580_entropyinreseed[] = {
+ 0x5d, 0x36, 0x83, 0x22, 0x6f, 0x90, 0x4c, 0x8d, 0xba, 0x17, 0x59, 0x99,
+ 0x4b, 0xb8, 0x77, 0x60,
+};
+static const unsigned char kat1580_addinreseed[] = {
+ 0xec, 0x8d, 0xd9, 0x2e, 0xec, 0xe7, 0xbc, 0x81, 0x0e, 0x4c, 0x7a, 0x6c,
+ 0x15, 0xf1, 0xe8, 0x04,
+};
+static const unsigned char kat1580_addin0[] = {
+ 0x05, 0x1b, 0xd8, 0x3d, 0x0d, 0xe0, 0x52, 0x0b, 0xf9, 0x12, 0x55, 0x81,
+ 0x1e, 0x45, 0x4a, 0x43,
+};
+static const unsigned char kat1580_addin1[] = {
+ 0x22, 0x84, 0x1d, 0xeb, 0x0d, 0x11, 0x78, 0x1d, 0xa5, 0x6f, 0xab, 0x8d,
+ 0x12, 0x2b, 0x39, 0x5c,
+};
+static const unsigned char kat1580_retbits[] = {
+ 0x9e, 0x42, 0xab, 0xfa, 0x0c, 0x06, 0x2d, 0x8a, 0xd6, 0x94, 0x55, 0x0a,
+ 0x39, 0x5a, 0x7c, 0x36, 0x2f, 0x14, 0x91, 0xa2, 0xf4, 0x12, 0x9e, 0xe5,
+ 0xae, 0x5a, 0x17, 0xe3, 0x1d, 0xec, 0xa4, 0x12, 0xc8, 0x44, 0x46, 0x05,
+ 0xe9, 0x55, 0x90, 0x58, 0xdf, 0xde, 0xa5, 0xc4, 0x37, 0x65, 0x3d, 0x19,
+ 0x0c, 0x57, 0x19, 0x5b, 0x42, 0xd4, 0x4f, 0x1f, 0xd8, 0xfd, 0xaf, 0xa0,
+ 0xe8, 0xee, 0x40, 0x08,
+};
+static const struct drbg_kat_pr_false kat1580_t = {
+ 4, kat1580_entropyin, kat1580_nonce, kat1580_persstr,
+ kat1580_entropyinreseed, kat1580_addinreseed, kat1580_addin0,
+ kat1580_addin1, kat1580_retbits
+};
+static const struct drbg_kat kat1580 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1580_t
+};
+
+static const unsigned char kat1581_entropyin[] = {
+ 0xe6, 0x3e, 0xf8, 0xca, 0x16, 0x15, 0xf7, 0x3f, 0x0e, 0x0d, 0x35, 0xec,
+ 0xbe, 0x68, 0x1b, 0xdd,
+};
+static const unsigned char kat1581_nonce[] = {
+ 0xe7, 0xf6, 0xc3, 0xf5, 0xac, 0x90, 0xff, 0xcf,
+};
+static const unsigned char kat1581_persstr[] = {0};
+static const unsigned char kat1581_entropyinreseed[] = {
+ 0x7f, 0x89, 0x1c, 0x36, 0xf7, 0xe3, 0xf0, 0x13, 0xed, 0x05, 0x37, 0x9a,
+ 0xa9, 0x93, 0xb3, 0x81,
+};
+static const unsigned char kat1581_addinreseed[] = {
+ 0xc9, 0x40, 0x45, 0xd4, 0x51, 0x4c, 0x74, 0x7a, 0x84, 0xe4, 0x1b, 0x06,
+ 0xa5, 0x55, 0xf8, 0x49,
+};
+static const unsigned char kat1581_addin0[] = {
+ 0xae, 0xe6, 0x98, 0x06, 0xec, 0x57, 0xf6, 0x19, 0x33, 0xf6, 0x06, 0xc8,
+ 0xf1, 0x53, 0x92, 0x45,
+};
+static const unsigned char kat1581_addin1[] = {
+ 0xa6, 0x7d, 0xc6, 0xb4, 0xee, 0x42, 0x7e, 0x0f, 0x6d, 0x2d, 0xa0, 0x66,
+ 0x3f, 0x0c, 0xe3, 0x82,
+};
+static const unsigned char kat1581_retbits[] = {
+ 0x2a, 0x8c, 0x7c, 0xcc, 0x8c, 0x52, 0x42, 0xb1, 0x21, 0x4d, 0x19, 0x2e,
+ 0xc5, 0x02, 0x8d, 0xb9, 0xff, 0x42, 0xe7, 0x3a, 0x32, 0x11, 0x57, 0x1a,
+ 0x05, 0xe9, 0xb3, 0xd8, 0x79, 0x0a, 0x78, 0x7f, 0x2b, 0xcf, 0x80, 0x9b,
+ 0x8f, 0x02, 0xec, 0x8d, 0x3e, 0xd2, 0x1a, 0x57, 0x9e, 0x95, 0x5c, 0x42,
+ 0xfb, 0xdc, 0xf8, 0x58, 0x3e, 0xf6, 0x93, 0xbb, 0x7e, 0x00, 0x96, 0xb7,
+ 0xb9, 0x25, 0x1b, 0x2f,
+};
+static const struct drbg_kat_pr_false kat1581_t = {
+ 5, kat1581_entropyin, kat1581_nonce, kat1581_persstr,
+ kat1581_entropyinreseed, kat1581_addinreseed, kat1581_addin0,
+ kat1581_addin1, kat1581_retbits
+};
+static const struct drbg_kat kat1581 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1581_t
+};
+
+static const unsigned char kat1582_entropyin[] = {
+ 0x6d, 0x2c, 0x97, 0xd0, 0xc8, 0x88, 0xf4, 0x9c, 0x45, 0x53, 0x97, 0x53,
+ 0xe3, 0x8f, 0x4f, 0x93,
+};
+static const unsigned char kat1582_nonce[] = {
+ 0x8d, 0x6a, 0x04, 0xaf, 0x07, 0xd2, 0x6f, 0x1e,
+};
+static const unsigned char kat1582_persstr[] = {0};
+static const unsigned char kat1582_entropyinreseed[] = {
+ 0xf6, 0xd8, 0x0a, 0x65, 0xe2, 0xa4, 0x56, 0x9a, 0x9f, 0x64, 0x4f, 0x62,
+ 0x62, 0xae, 0x8b, 0xc3,
+};
+static const unsigned char kat1582_addinreseed[] = {
+ 0xfd, 0x49, 0x1d, 0x4f, 0xee, 0xb2, 0x30, 0xda, 0x88, 0xf1, 0xc3, 0xb5,
+ 0x57, 0xef, 0x1d, 0xa0,
+};
+static const unsigned char kat1582_addin0[] = {
+ 0x52, 0x26, 0x6b, 0x8c, 0x27, 0x9d, 0xbe, 0x61, 0x71, 0x84, 0x96, 0xc2,
+ 0x3f, 0x92, 0x62, 0xde,
+};
+static const unsigned char kat1582_addin1[] = {
+ 0x0a, 0x2e, 0x54, 0x9d, 0x8d, 0x1b, 0x4f, 0x0f, 0x1a, 0x66, 0x3a, 0xfd,
+ 0xc5, 0x76, 0x28, 0x3a,
+};
+static const unsigned char kat1582_retbits[] = {
+ 0x1f, 0x72, 0xb7, 0xdf, 0x97, 0xb3, 0x5d, 0x8d, 0xaf, 0x1e, 0x35, 0x96,
+ 0xe5, 0x8c, 0x72, 0x8d, 0xab, 0x6e, 0x72, 0x58, 0x56, 0x77, 0x41, 0x94,
+ 0x31, 0x85, 0xab, 0x7e, 0xdb, 0x0d, 0x41, 0xfc, 0x87, 0x77, 0x69, 0x83,
+ 0x4b, 0x3d, 0x01, 0xed, 0xf4, 0x69, 0x30, 0x18, 0xe5, 0x26, 0xab, 0x55,
+ 0xee, 0x12, 0x4f, 0xdc, 0x5d, 0xdf, 0x80, 0x58, 0x52, 0xd1, 0x44, 0x96,
+ 0x0d, 0x16, 0x66, 0xd9,
+};
+static const struct drbg_kat_pr_false kat1582_t = {
+ 6, kat1582_entropyin, kat1582_nonce, kat1582_persstr,
+ kat1582_entropyinreseed, kat1582_addinreseed, kat1582_addin0,
+ kat1582_addin1, kat1582_retbits
+};
+static const struct drbg_kat kat1582 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1582_t
+};
+
+static const unsigned char kat1583_entropyin[] = {
+ 0x17, 0x92, 0x1f, 0x57, 0xc0, 0xbf, 0x22, 0xa5, 0x13, 0xfd, 0xb0, 0x8d,
+ 0xe4, 0xfd, 0x67, 0x80,
+};
+static const unsigned char kat1583_nonce[] = {
+ 0xa1, 0x89, 0x1a, 0x4e, 0x0a, 0xf5, 0x69, 0x4d,
+};
+static const unsigned char kat1583_persstr[] = {0};
+static const unsigned char kat1583_entropyinreseed[] = {
+ 0xa4, 0x93, 0xc2, 0xae, 0x19, 0x6f, 0x9a, 0x2b, 0x66, 0x10, 0x9d, 0x95,
+ 0x8e, 0x8f, 0x9b, 0xe8,
+};
+static const unsigned char kat1583_addinreseed[] = {
+ 0x31, 0x1c, 0x0e, 0x0f, 0xf4, 0x43, 0x3d, 0x40, 0x2a, 0x69, 0x95, 0x5b,
+ 0x54, 0xe8, 0xc1, 0xe0,
+};
+static const unsigned char kat1583_addin0[] = {
+ 0xfb, 0x16, 0xe6, 0xed, 0x99, 0x53, 0x81, 0xcb, 0x9f, 0x93, 0xfb, 0x37,
+ 0x91, 0x23, 0xee, 0xcf,
+};
+static const unsigned char kat1583_addin1[] = {
+ 0x80, 0x81, 0x7d, 0xce, 0x78, 0xd3, 0x0e, 0xef, 0xcb, 0xf1, 0xfb, 0xed,
+ 0x07, 0xc0, 0x8f, 0x2d,
+};
+static const unsigned char kat1583_retbits[] = {
+ 0x9e, 0xe1, 0x1c, 0x5c, 0x7d, 0x77, 0xb9, 0xd3, 0xb0, 0x5c, 0xc8, 0x28,
+ 0x57, 0x2d, 0x3e, 0xdc, 0x79, 0x79, 0x1f, 0x30, 0x92, 0xb4, 0xcb, 0x6e,
+ 0xc0, 0x69, 0x07, 0xfa, 0xbd, 0x20, 0x2b, 0x67, 0x8c, 0xb4, 0x95, 0xe5,
+ 0x60, 0xc7, 0x50, 0xea, 0xb2, 0x8e, 0xc9, 0x1d, 0xec, 0x23, 0xbc, 0x46,
+ 0x21, 0xc3, 0x53, 0xdb, 0x91, 0xf0, 0xdf, 0xb1, 0xb9, 0x56, 0x14, 0xf2,
+ 0xf4, 0x1b, 0xff, 0xd5,
+};
+static const struct drbg_kat_pr_false kat1583_t = {
+ 7, kat1583_entropyin, kat1583_nonce, kat1583_persstr,
+ kat1583_entropyinreseed, kat1583_addinreseed, kat1583_addin0,
+ kat1583_addin1, kat1583_retbits
+};
+static const struct drbg_kat kat1583 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1583_t
+};
+
+static const unsigned char kat1584_entropyin[] = {
+ 0xd5, 0x0b, 0x76, 0x45, 0x7b, 0xdf, 0xc0, 0x71, 0xf7, 0x1f, 0xcd, 0x16,
+ 0x66, 0xd4, 0x47, 0xfb,
+};
+static const unsigned char kat1584_nonce[] = {
+ 0x1c, 0x9a, 0xb7, 0x23, 0x74, 0x19, 0xb3, 0xae,
+};
+static const unsigned char kat1584_persstr[] = {0};
+static const unsigned char kat1584_entropyinreseed[] = {
+ 0xb1, 0xe9, 0x4b, 0xc1, 0xdf, 0x60, 0xd5, 0x4f, 0x0e, 0xb2, 0x62, 0x93,
+ 0xbf, 0x17, 0x5a, 0xfd,
+};
+static const unsigned char kat1584_addinreseed[] = {
+ 0xdf, 0x29, 0x3a, 0xe2, 0x85, 0xb9, 0xaf, 0x7a, 0x8e, 0x69, 0xff, 0x2f,
+ 0xcd, 0xfa, 0xc8, 0x5d,
+};
+static const unsigned char kat1584_addin0[] = {
+ 0x0f, 0xac, 0xdb, 0x57, 0x41, 0x8e, 0x7a, 0x22, 0x8a, 0x7c, 0x56, 0x66,
+ 0x3d, 0xee, 0x72, 0xdc,
+};
+static const unsigned char kat1584_addin1[] = {
+ 0x38, 0x31, 0xf9, 0x65, 0x96, 0x37, 0xfe, 0x2e, 0xce, 0x94, 0xf5, 0x24,
+ 0xa3, 0x8a, 0xe5, 0x76,
+};
+static const unsigned char kat1584_retbits[] = {
+ 0x12, 0x96, 0x0a, 0x4d, 0x3f, 0x80, 0xdd, 0x22, 0x51, 0x02, 0x21, 0x53,
+ 0x52, 0x9d, 0x07, 0xf5, 0xe7, 0x2e, 0x15, 0x5f, 0x91, 0x2d, 0x9c, 0x42,
+ 0xc7, 0xc1, 0x34, 0x29, 0x57, 0x01, 0xe0, 0x25, 0x2e, 0x90, 0x30, 0x62,
+ 0x71, 0x8e, 0x08, 0x36, 0xb4, 0xbd, 0x4a, 0xf2, 0xc6, 0x5f, 0x45, 0xe6,
+ 0xc7, 0x36, 0x71, 0x0e, 0x5b, 0xaf, 0xb8, 0x42, 0x93, 0x6a, 0x23, 0x18,
+ 0x2e, 0x38, 0x88, 0xc4,
+};
+static const struct drbg_kat_pr_false kat1584_t = {
+ 8, kat1584_entropyin, kat1584_nonce, kat1584_persstr,
+ kat1584_entropyinreseed, kat1584_addinreseed, kat1584_addin0,
+ kat1584_addin1, kat1584_retbits
+};
+static const struct drbg_kat kat1584 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1584_t
+};
+
+static const unsigned char kat1585_entropyin[] = {
+ 0xaf, 0xdd, 0x79, 0xf7, 0x92, 0xe4, 0xbd, 0x30, 0x69, 0x4c, 0x4a, 0x04,
+ 0xdd, 0x9a, 0x28, 0xab,
+};
+static const unsigned char kat1585_nonce[] = {
+ 0xeb, 0x33, 0x6d, 0x7a, 0x66, 0xa6, 0xf2, 0x9d,
+};
+static const unsigned char kat1585_persstr[] = {0};
+static const unsigned char kat1585_entropyinreseed[] = {
+ 0xb8, 0xfd, 0x1f, 0xca, 0x74, 0x7e, 0x54, 0x09, 0x29, 0xd8, 0x80, 0x0a,
+ 0x33, 0x5d, 0x5c, 0x8f,
+};
+static const unsigned char kat1585_addinreseed[] = {
+ 0x41, 0x8e, 0xdd, 0x80, 0xf3, 0x44, 0xbd, 0x88, 0x55, 0x6a, 0x4d, 0x90,
+ 0x1e, 0x62, 0x91, 0xb9,
+};
+static const unsigned char kat1585_addin0[] = {
+ 0xcd, 0x16, 0x37, 0x51, 0x7c, 0xe6, 0x2f, 0xfb, 0xc5, 0x96, 0x98, 0xc8,
+ 0x81, 0x80, 0x69, 0x42,
+};
+static const unsigned char kat1585_addin1[] = {
+ 0x12, 0xa4, 0xe4, 0x7e, 0x67, 0x27, 0xb0, 0x4a, 0xa9, 0x0a, 0xb4, 0x3e,
+ 0x39, 0xdc, 0xc3, 0x22,
+};
+static const unsigned char kat1585_retbits[] = {
+ 0x25, 0xf7, 0x97, 0x2e, 0x9e, 0xf3, 0x40, 0xb1, 0x6f, 0x32, 0x98, 0x5e,
+ 0xf5, 0x09, 0x22, 0xab, 0x4b, 0x59, 0x60, 0x34, 0xb8, 0xae, 0xed, 0x3d,
+ 0xd6, 0x9a, 0xae, 0xeb, 0x98, 0xbb, 0xdd, 0x57, 0xa6, 0x02, 0xbc, 0xfb,
+ 0x42, 0xe0, 0x3a, 0x42, 0xb0, 0x0c, 0x9b, 0xe2, 0x87, 0x79, 0x64, 0xa0,
+ 0x6f, 0xe3, 0x1d, 0x36, 0x8f, 0x91, 0x1b, 0xcc, 0x97, 0x53, 0xbc, 0x3c,
+ 0xea, 0x05, 0x9d, 0xbe,
+};
+static const struct drbg_kat_pr_false kat1585_t = {
+ 9, kat1585_entropyin, kat1585_nonce, kat1585_persstr,
+ kat1585_entropyinreseed, kat1585_addinreseed, kat1585_addin0,
+ kat1585_addin1, kat1585_retbits
+};
+static const struct drbg_kat kat1585 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1585_t
+};
+
+static const unsigned char kat1586_entropyin[] = {
+ 0x2c, 0x11, 0x11, 0xf8, 0x55, 0x11, 0x5b, 0xa3, 0x5d, 0x49, 0xe6, 0x66,
+ 0xfc, 0x52, 0x8e, 0x56,
+};
+static const unsigned char kat1586_nonce[] = {
+ 0x42, 0x96, 0xbd, 0xfe, 0x67, 0xde, 0x26, 0x01,
+};
+static const unsigned char kat1586_persstr[] = {0};
+static const unsigned char kat1586_entropyinreseed[] = {
+ 0x85, 0x59, 0x62, 0x34, 0xf2, 0xb8, 0xd9, 0x87, 0x3a, 0xc2, 0x97, 0x44,
+ 0xaf, 0x1f, 0xa2, 0x1e,
+};
+static const unsigned char kat1586_addinreseed[] = {
+ 0x5e, 0xc1, 0x2e, 0x10, 0x2e, 0xe5, 0x92, 0x98, 0xf6, 0x46, 0x6c, 0xd6,
+ 0xb9, 0x31, 0xad, 0x5f,
+};
+static const unsigned char kat1586_addin0[] = {
+ 0x68, 0x1d, 0x63, 0xd5, 0x68, 0x93, 0xc0, 0xc8, 0x5b, 0x4c, 0x5b, 0x08,
+ 0x1b, 0x6b, 0x46, 0xad,
+};
+static const unsigned char kat1586_addin1[] = {
+ 0x81, 0x7d, 0x54, 0xb8, 0xd6, 0xda, 0xa6, 0xe0, 0xf8, 0xf1, 0xc7, 0x01,
+ 0x8d, 0x7e, 0x18, 0x10,
+};
+static const unsigned char kat1586_retbits[] = {
+ 0x09, 0x57, 0xd1, 0xa1, 0x0e, 0x59, 0x75, 0x8c, 0xd6, 0xa0, 0xc5, 0x07,
+ 0x50, 0x56, 0x17, 0xfc, 0xa5, 0x52, 0x03, 0x96, 0xd4, 0x34, 0x91, 0xe4,
+ 0xf0, 0xb9, 0x81, 0xf0, 0x23, 0xaf, 0x5e, 0x09, 0x80, 0x53, 0x04, 0xe8,
+ 0x87, 0xd7, 0x0a, 0x9f, 0x29, 0xbd, 0xa1, 0x5b, 0xff, 0x72, 0x5b, 0xff,
+ 0x3e, 0x54, 0xef, 0xca, 0xa4, 0x59, 0x63, 0x42, 0xde, 0xf1, 0x7d, 0xd9,
+ 0x1c, 0xcb, 0x50, 0x68,
+};
+static const struct drbg_kat_pr_false kat1586_t = {
+ 10, kat1586_entropyin, kat1586_nonce, kat1586_persstr,
+ kat1586_entropyinreseed, kat1586_addinreseed, kat1586_addin0,
+ kat1586_addin1, kat1586_retbits
+};
+static const struct drbg_kat kat1586 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1586_t
+};
+
+static const unsigned char kat1587_entropyin[] = {
+ 0xe8, 0x4c, 0x46, 0x6a, 0x54, 0x1d, 0xea, 0x2d, 0x42, 0x53, 0x36, 0x86,
+ 0x01, 0x1d, 0x8f, 0xea,
+};
+static const unsigned char kat1587_nonce[] = {
+ 0xb6, 0x87, 0x15, 0x68, 0xd8, 0x83, 0x9e, 0xc5,
+};
+static const unsigned char kat1587_persstr[] = {0};
+static const unsigned char kat1587_entropyinreseed[] = {
+ 0x73, 0x12, 0xed, 0xfa, 0x7a, 0xd5, 0x56, 0xf9, 0x44, 0x00, 0x38, 0x24,
+ 0x4a, 0x98, 0x4b, 0xf3,
+};
+static const unsigned char kat1587_addinreseed[] = {
+ 0xb5, 0x13, 0x1e, 0xc3, 0x46, 0xe9, 0x70, 0xf2, 0xfe, 0x24, 0x8c, 0xc9,
+ 0xbb, 0x41, 0xc6, 0x64,
+};
+static const unsigned char kat1587_addin0[] = {
+ 0xf1, 0x80, 0x30, 0x95, 0xa6, 0xe9, 0xe6, 0x29, 0x69, 0xd4, 0x40, 0x29,
+ 0x42, 0x05, 0x64, 0x73,
+};
+static const unsigned char kat1587_addin1[] = {
+ 0x10, 0xa7, 0xea, 0x90, 0xea, 0x7b, 0x69, 0x75, 0xf0, 0x8a, 0x8d, 0xee,
+ 0xce, 0xca, 0xa4, 0xf8,
+};
+static const unsigned char kat1587_retbits[] = {
+ 0x15, 0x8a, 0xed, 0xc7, 0x1d, 0xa0, 0x30, 0x4e, 0x1d, 0xfa, 0x23, 0x8d,
+ 0x30, 0x6f, 0xcc, 0x8b, 0xd7, 0xa7, 0x78, 0x02, 0x74, 0x9d, 0xc9, 0x28,
+ 0x26, 0x58, 0xfd, 0x9e, 0xed, 0xd5, 0x3f, 0x40, 0xd8, 0x26, 0x3f, 0x34,
+ 0xd0, 0x89, 0x78, 0x42, 0x67, 0x43, 0x49, 0x12, 0xc7, 0xe6, 0x34, 0xff,
+ 0xbc, 0x97, 0x90, 0x87, 0x00, 0xce, 0x2b, 0x59, 0x9f, 0x9b, 0x20, 0x0c,
+ 0x36, 0xad, 0x49, 0xa5,
+};
+static const struct drbg_kat_pr_false kat1587_t = {
+ 11, kat1587_entropyin, kat1587_nonce, kat1587_persstr,
+ kat1587_entropyinreseed, kat1587_addinreseed, kat1587_addin0,
+ kat1587_addin1, kat1587_retbits
+};
+static const struct drbg_kat kat1587 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1587_t
+};
+
+static const unsigned char kat1588_entropyin[] = {
+ 0xd3, 0x32, 0xc0, 0x65, 0x15, 0xe3, 0x66, 0x0a, 0x25, 0xe6, 0x9f, 0xad,
+ 0x54, 0xe5, 0x83, 0x7c,
+};
+static const unsigned char kat1588_nonce[] = {
+ 0xca, 0x60, 0xe6, 0x71, 0x89, 0x36, 0xfb, 0xd7,
+};
+static const unsigned char kat1588_persstr[] = {0};
+static const unsigned char kat1588_entropyinreseed[] = {
+ 0x50, 0xdc, 0x6d, 0xd9, 0x64, 0x4d, 0x79, 0xd2, 0x8f, 0x05, 0xba, 0xa9,
+ 0xe2, 0xae, 0x77, 0x2d,
+};
+static const unsigned char kat1588_addinreseed[] = {
+ 0x7a, 0x48, 0xdd, 0x5e, 0xba, 0x3a, 0x69, 0x89, 0x9d, 0x32, 0x53, 0x79,
+ 0x78, 0x02, 0x43, 0x2f,
+};
+static const unsigned char kat1588_addin0[] = {
+ 0xa5, 0x0c, 0xcb, 0x58, 0x12, 0x3b, 0x0c, 0x37, 0xfa, 0x54, 0x3d, 0x8a,
+ 0xe5, 0x23, 0xe8, 0xed,
+};
+static const unsigned char kat1588_addin1[] = {
+ 0xce, 0x9e, 0x86, 0x08, 0x90, 0xeb, 0x6b, 0xcd, 0x91, 0xd9, 0x73, 0x3c,
+ 0xdc, 0xf9, 0x6e, 0x10,
+};
+static const unsigned char kat1588_retbits[] = {
+ 0x06, 0x06, 0x26, 0x49, 0x9e, 0x14, 0x43, 0x85, 0x76, 0xd7, 0x62, 0x1d,
+ 0x71, 0xf0, 0x1e, 0x4b, 0xe8, 0x74, 0xa9, 0x55, 0x33, 0x0b, 0x0d, 0x5d,
+ 0x6f, 0xef, 0x37, 0x94, 0xee, 0xb7, 0x61, 0xb4, 0xd1, 0x1a, 0x88, 0xd1,
+ 0xce, 0x09, 0x94, 0x2e, 0x24, 0x4f, 0xde, 0x57, 0x6d, 0x7e, 0x96, 0x45,
+ 0x85, 0x42, 0x3d, 0x65, 0x84, 0x72, 0x6e, 0xb7, 0x98, 0xf3, 0x57, 0x72,
+ 0xca, 0xea, 0x1d, 0xf6,
+};
+static const struct drbg_kat_pr_false kat1588_t = {
+ 12, kat1588_entropyin, kat1588_nonce, kat1588_persstr,
+ kat1588_entropyinreseed, kat1588_addinreseed, kat1588_addin0,
+ kat1588_addin1, kat1588_retbits
+};
+static const struct drbg_kat kat1588 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1588_t
+};
+
+static const unsigned char kat1589_entropyin[] = {
+ 0x47, 0x5e, 0x49, 0x05, 0xd8, 0xc9, 0x68, 0xd8, 0x64, 0x37, 0x45, 0x3f,
+ 0x58, 0x88, 0x66, 0x93,
+};
+static const unsigned char kat1589_nonce[] = {
+ 0x4a, 0x93, 0x66, 0xba, 0x7f, 0xe4, 0x10, 0x8e,
+};
+static const unsigned char kat1589_persstr[] = {0};
+static const unsigned char kat1589_entropyinreseed[] = {
+ 0xf0, 0x0f, 0x3c, 0x00, 0xe3, 0x22, 0xb4, 0xa4, 0x38, 0x8d, 0x4b, 0x5c,
+ 0x81, 0xa7, 0x46, 0xb6,
+};
+static const unsigned char kat1589_addinreseed[] = {
+ 0x8b, 0xae, 0x1a, 0x96, 0xca, 0x83, 0x9d, 0x48, 0xda, 0x80, 0xd2, 0xfd,
+ 0x65, 0x6d, 0x70, 0x80,
+};
+static const unsigned char kat1589_addin0[] = {
+ 0x24, 0xef, 0x11, 0x25, 0x11, 0xb6, 0xfb, 0x0b, 0x0c, 0xe5, 0x69, 0xb6,
+ 0x42, 0xda, 0x3e, 0x41,
+};
+static const unsigned char kat1589_addin1[] = {
+ 0xbf, 0x74, 0x39, 0x94, 0xd4, 0x9f, 0x01, 0x43, 0x5d, 0x3f, 0x65, 0x05,
+ 0xe4, 0x10, 0x8c, 0x06,
+};
+static const unsigned char kat1589_retbits[] = {
+ 0x57, 0x98, 0x05, 0xd6, 0x4a, 0x46, 0x71, 0x44, 0x43, 0x42, 0x32, 0x92,
+ 0x14, 0x2e, 0x39, 0x04, 0x94, 0xd8, 0xec, 0x9f, 0x42, 0xa6, 0x5a, 0x48,
+ 0x11, 0x29, 0xf6, 0x54, 0x8a, 0x0b, 0xbd, 0x3d, 0xb2, 0x4b, 0x90, 0x2e,
+ 0x48, 0xc0, 0xd4, 0x97, 0x70, 0x27, 0x53, 0x8a, 0xb7, 0x54, 0x47, 0xe7,
+ 0x11, 0x53, 0x80, 0xfc, 0x45, 0x3d, 0x25, 0x25, 0x0a, 0x8c, 0x97, 0xda,
+ 0x5d, 0x0c, 0x86, 0xfb,
+};
+static const struct drbg_kat_pr_false kat1589_t = {
+ 13, kat1589_entropyin, kat1589_nonce, kat1589_persstr,
+ kat1589_entropyinreseed, kat1589_addinreseed, kat1589_addin0,
+ kat1589_addin1, kat1589_retbits
+};
+static const struct drbg_kat kat1589 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1589_t
+};
+
+static const unsigned char kat1590_entropyin[] = {
+ 0xc0, 0xe1, 0x8b, 0x81, 0x10, 0xf4, 0x92, 0xc5, 0x2e, 0xa1, 0x3a, 0x86,
+ 0x79, 0x9b, 0x5b, 0x23,
+};
+static const unsigned char kat1590_nonce[] = {
+ 0x8c, 0x8d, 0x05, 0x21, 0xb4, 0x3e, 0x17, 0xf4,
+};
+static const unsigned char kat1590_persstr[] = {0};
+static const unsigned char kat1590_entropyinreseed[] = {
+ 0x1c, 0x6d, 0x2c, 0x89, 0x90, 0x74, 0xc7, 0x6e, 0x08, 0xed, 0xc7, 0xbf,
+ 0xd8, 0xb8, 0xed, 0x06,
+};
+static const unsigned char kat1590_addinreseed[] = {
+ 0x0c, 0xc1, 0xfc, 0xcd, 0x3b, 0x6c, 0x0d, 0x9a, 0xeb, 0x4a, 0xda, 0x6f,
+ 0x40, 0x00, 0x96, 0x03,
+};
+static const unsigned char kat1590_addin0[] = {
+ 0xee, 0x07, 0x99, 0x55, 0x88, 0x6e, 0x85, 0xe7, 0xcb, 0x9d, 0x76, 0xb5,
+ 0xdd, 0xc4, 0x0c, 0x14,
+};
+static const unsigned char kat1590_addin1[] = {
+ 0xb0, 0xc1, 0x05, 0x48, 0xfe, 0x95, 0x4e, 0x2d, 0x78, 0x89, 0x33, 0xcc,
+ 0xb3, 0x5f, 0x56, 0x1b,
+};
+static const unsigned char kat1590_retbits[] = {
+ 0x92, 0x67, 0xed, 0x60, 0x5e, 0x90, 0xe1, 0x5a, 0x37, 0x03, 0xf1, 0x51,
+ 0x7d, 0xaa, 0x7c, 0xda, 0xa0, 0x3c, 0xfd, 0x8f, 0x0d, 0x96, 0xc5, 0x69,
+ 0xdd, 0xea, 0x42, 0x9c, 0xf8, 0x26, 0xb3, 0x9f, 0xa9, 0x7c, 0xdb, 0x81,
+ 0x03, 0xce, 0x59, 0x0c, 0x5e, 0x91, 0xb6, 0xa8, 0xd6, 0xbd, 0x93, 0x63,
+ 0x77, 0x58, 0xb5, 0x3b, 0xcf, 0x0f, 0xc6, 0xa0, 0xb4, 0x76, 0x24, 0x5f,
+ 0x94, 0xb5, 0x95, 0x4e,
+};
+static const struct drbg_kat_pr_false kat1590_t = {
+ 14, kat1590_entropyin, kat1590_nonce, kat1590_persstr,
+ kat1590_entropyinreseed, kat1590_addinreseed, kat1590_addin0,
+ kat1590_addin1, kat1590_retbits
+};
+static const struct drbg_kat kat1590 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1590_t
+};
+
+static const unsigned char kat1591_entropyin[] = {
+ 0xae, 0x5a, 0x2f, 0x97, 0x26, 0xea, 0x95, 0x3e, 0x4e, 0xc0, 0x57, 0xc4,
+ 0xc9, 0x6d, 0xdd, 0x83,
+};
+static const unsigned char kat1591_nonce[] = {
+ 0x7f, 0xe8, 0x15, 0xf7, 0x35, 0x25, 0x3b, 0xf2,
+};
+static const unsigned char kat1591_persstr[] = {
+ 0xd4, 0x91, 0x4e, 0x88, 0x70, 0xc2, 0x98, 0x36, 0x5c, 0x8c, 0x5d, 0xf2,
+ 0x16, 0xd2, 0x59, 0xf3,
+};
+static const unsigned char kat1591_entropyinreseed[] = {
+ 0x2c, 0xf2, 0xfa, 0xd8, 0xc5, 0x9c, 0x50, 0x50, 0x86, 0x08, 0x55, 0x55,
+ 0x49, 0xcd, 0x61, 0x1e,
+};
+static const unsigned char kat1591_addinreseed[] = {0};
+static const unsigned char kat1591_addin0[] = {0};
+static const unsigned char kat1591_addin1[] = {0};
+static const unsigned char kat1591_retbits[] = {
+ 0xf9, 0x12, 0x0e, 0xaa, 0x71, 0xe3, 0xd8, 0x54, 0x33, 0x33, 0xcb, 0xd0,
+ 0xa8, 0x3b, 0x46, 0xec, 0x86, 0xa2, 0x22, 0x00, 0x87, 0x86, 0x16, 0x10,
+ 0x6c, 0x86, 0x6e, 0x13, 0xa8, 0xcb, 0xd6, 0x46, 0x91, 0x5a, 0xd8, 0x1c,
+ 0x7a, 0x11, 0xae, 0xd8, 0x39, 0x6a, 0x25, 0xf9, 0x8b, 0x32, 0x4b, 0x53,
+ 0x52, 0xea, 0xff, 0xd5, 0x01, 0xfd, 0xc9, 0x92, 0x0b, 0x53, 0x53, 0x59,
+ 0x0e, 0xb0, 0x40, 0x9f,
+};
+static const struct drbg_kat_pr_false kat1591_t = {
+ 0, kat1591_entropyin, kat1591_nonce, kat1591_persstr,
+ kat1591_entropyinreseed, kat1591_addinreseed, kat1591_addin0,
+ kat1591_addin1, kat1591_retbits
+};
+static const struct drbg_kat kat1591 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1591_t
+};
+
+static const unsigned char kat1592_entropyin[] = {
+ 0x95, 0xee, 0x91, 0x7d, 0x26, 0x61, 0x31, 0xbf, 0xd6, 0x90, 0xce, 0xde,
+ 0x3e, 0x20, 0xfe, 0x6e,
+};
+static const unsigned char kat1592_nonce[] = {
+ 0x37, 0x68, 0xc2, 0x91, 0x57, 0xe4, 0x19, 0x2e,
+};
+static const unsigned char kat1592_persstr[] = {
+ 0x0f, 0x89, 0x37, 0x5d, 0xa6, 0xb2, 0xf7, 0xaa, 0x5e, 0x8e, 0x86, 0xc9,
+ 0x8e, 0x09, 0x28, 0x89,
+};
+static const unsigned char kat1592_entropyinreseed[] = {
+ 0x78, 0xe5, 0x9c, 0x9b, 0x60, 0x28, 0x2f, 0xe5, 0x51, 0x08, 0xeb, 0x89,
+ 0x6c, 0x16, 0x27, 0xf4,
+};
+static const unsigned char kat1592_addinreseed[] = {0};
+static const unsigned char kat1592_addin0[] = {0};
+static const unsigned char kat1592_addin1[] = {0};
+static const unsigned char kat1592_retbits[] = {
+ 0x21, 0xf4, 0x5f, 0x0f, 0x87, 0x95, 0x53, 0x85, 0xb3, 0xa6, 0x04, 0xf8,
+ 0x7f, 0x7a, 0x77, 0x0f, 0xdc, 0x4e, 0x4c, 0x2d, 0x6c, 0xcb, 0x7c, 0xf5,
+ 0x34, 0x87, 0xd9, 0x9c, 0x9e, 0x11, 0xbc, 0xfd, 0x88, 0x6f, 0x22, 0x23,
+ 0x45, 0x17, 0x77, 0x08, 0x0f, 0xe4, 0x9e, 0x3b, 0x8a, 0x40, 0x59, 0xa8,
+ 0x3c, 0x54, 0x66, 0x10, 0x10, 0x7c, 0x9a, 0xa9, 0xa1, 0x51, 0x52, 0x2c,
+ 0x72, 0x19, 0x63, 0x4a,
+};
+static const struct drbg_kat_pr_false kat1592_t = {
+ 1, kat1592_entropyin, kat1592_nonce, kat1592_persstr,
+ kat1592_entropyinreseed, kat1592_addinreseed, kat1592_addin0,
+ kat1592_addin1, kat1592_retbits
+};
+static const struct drbg_kat kat1592 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1592_t
+};
+
+static const unsigned char kat1593_entropyin[] = {
+ 0x24, 0x4b, 0x4a, 0xac, 0xc4, 0x03, 0xb0, 0x8f, 0x4f, 0xd8, 0x0d, 0xd6,
+ 0x55, 0xd2, 0x63, 0x9d,
+};
+static const unsigned char kat1593_nonce[] = {
+ 0x41, 0x63, 0x9d, 0x03, 0x15, 0x11, 0x3f, 0xa6,
+};
+static const unsigned char kat1593_persstr[] = {
+ 0xac, 0x58, 0x7a, 0x5c, 0x8d, 0xd7, 0x0b, 0x82, 0x38, 0xbb, 0x8a, 0xc6,
+ 0x73, 0xef, 0x8c, 0xbc,
+};
+static const unsigned char kat1593_entropyinreseed[] = {
+ 0xa4, 0xbb, 0x89, 0xbd, 0x6b, 0xe8, 0x58, 0xc9, 0x28, 0x90, 0x53, 0xa2,
+ 0x45, 0xc4, 0x7c, 0xa1,
+};
+static const unsigned char kat1593_addinreseed[] = {0};
+static const unsigned char kat1593_addin0[] = {0};
+static const unsigned char kat1593_addin1[] = {0};
+static const unsigned char kat1593_retbits[] = {
+ 0x90, 0xb5, 0x99, 0x89, 0x32, 0x5f, 0x3e, 0x7f, 0xda, 0x22, 0x5c, 0x21,
+ 0x89, 0xcf, 0x7f, 0x6c, 0xd4, 0xa4, 0xc4, 0x34, 0x86, 0xb4, 0x2b, 0xb7,
+ 0xaf, 0x90, 0xf6, 0xf2, 0xb1, 0x5f, 0x9d, 0xe5, 0x4a, 0x3f, 0xb4, 0xe1,
+ 0xc8, 0x4b, 0x76, 0x24, 0x91, 0x53, 0xcb, 0x6f, 0x6e, 0x2a, 0xad, 0x8d,
+ 0xed, 0xfd, 0x17, 0xb9, 0x02, 0x52, 0x22, 0x85, 0x59, 0xec, 0xc8, 0xa7,
+ 0xd7, 0x18, 0xde, 0xc4,
+};
+static const struct drbg_kat_pr_false kat1593_t = {
+ 2, kat1593_entropyin, kat1593_nonce, kat1593_persstr,
+ kat1593_entropyinreseed, kat1593_addinreseed, kat1593_addin0,
+ kat1593_addin1, kat1593_retbits
+};
+static const struct drbg_kat kat1593 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1593_t
+};
+
+static const unsigned char kat1594_entropyin[] = {
+ 0x6e, 0xc8, 0x2c, 0x6c, 0x91, 0x3e, 0x33, 0xa1, 0x17, 0x56, 0xee, 0xf8,
+ 0x44, 0x57, 0xb7, 0x66,
+};
+static const unsigned char kat1594_nonce[] = {
+ 0x17, 0x74, 0xb2, 0x7c, 0xd4, 0xc3, 0x37, 0x84,
+};
+static const unsigned char kat1594_persstr[] = {
+ 0x80, 0x8c, 0x58, 0xbc, 0xfe, 0xcd, 0x08, 0x26, 0xb2, 0x95, 0xf4, 0x01,
+ 0x08, 0xba, 0x20, 0xd4,
+};
+static const unsigned char kat1594_entropyinreseed[] = {
+ 0xf8, 0xcb, 0x5b, 0xf5, 0xe6, 0x8c, 0xcd, 0xc4, 0x34, 0x88, 0xf2, 0x57,
+ 0x8b, 0xb4, 0xa5, 0xf0,
+};
+static const unsigned char kat1594_addinreseed[] = {0};
+static const unsigned char kat1594_addin0[] = {0};
+static const unsigned char kat1594_addin1[] = {0};
+static const unsigned char kat1594_retbits[] = {
+ 0x11, 0xe8, 0xe8, 0x16, 0x05, 0x3b, 0xc0, 0x66, 0xbe, 0x8e, 0x97, 0x06,
+ 0xd3, 0xf9, 0x37, 0xcb, 0xf9, 0x8e, 0x50, 0xec, 0xa8, 0x05, 0x64, 0x61,
+ 0x38, 0xb4, 0x1f, 0xa6, 0xa6, 0xd4, 0xa3, 0x58, 0x07, 0x7f, 0xb7, 0x94,
+ 0xa6, 0x9f, 0xdf, 0xad, 0xdd, 0x75, 0xc4, 0xbb, 0xb5, 0xe6, 0xf7, 0x1d,
+ 0x7c, 0x5e, 0x8c, 0xb0, 0x88, 0xbb, 0x25, 0x16, 0x2e, 0x25, 0xea, 0xca,
+ 0xaa, 0x1c, 0x4d, 0x1c,
+};
+static const struct drbg_kat_pr_false kat1594_t = {
+ 3, kat1594_entropyin, kat1594_nonce, kat1594_persstr,
+ kat1594_entropyinreseed, kat1594_addinreseed, kat1594_addin0,
+ kat1594_addin1, kat1594_retbits
+};
+static const struct drbg_kat kat1594 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1594_t
+};
+
+static const unsigned char kat1595_entropyin[] = {
+ 0xe3, 0xf0, 0x25, 0x98, 0x4f, 0xa7, 0xc8, 0x78, 0xc0, 0xd1, 0xf9, 0x72,
+ 0x15, 0xab, 0xe4, 0x74,
+};
+static const unsigned char kat1595_nonce[] = {
+ 0x33, 0xcc, 0xc2, 0xed, 0x46, 0x6c, 0x1e, 0x7b,
+};
+static const unsigned char kat1595_persstr[] = {
+ 0x37, 0x30, 0x78, 0x36, 0xb1, 0x53, 0x55, 0x44, 0x7a, 0x63, 0x5f, 0x28,
+ 0xcc, 0xe0, 0x38, 0x88,
+};
+static const unsigned char kat1595_entropyinreseed[] = {
+ 0x33, 0x46, 0xd3, 0x89, 0x74, 0x29, 0x20, 0xc8, 0x1e, 0xc7, 0xc9, 0x31,
+ 0x9f, 0x45, 0x7f, 0x85,
+};
+static const unsigned char kat1595_addinreseed[] = {0};
+static const unsigned char kat1595_addin0[] = {0};
+static const unsigned char kat1595_addin1[] = {0};
+static const unsigned char kat1595_retbits[] = {
+ 0xb1, 0xc9, 0x19, 0x52, 0xea, 0xcb, 0x72, 0xb4, 0xf7, 0x3b, 0x96, 0x0c,
+ 0xe4, 0xf2, 0x28, 0xd1, 0x8e, 0xd3, 0xcb, 0x22, 0xe4, 0xa8, 0x70, 0x72,
+ 0xf8, 0x9c, 0xb8, 0x65, 0xad, 0xbf, 0x4d, 0x38, 0xe3, 0xd8, 0xa0, 0x9d,
+ 0x1c, 0x1b, 0xb3, 0xc7, 0x1d, 0x9e, 0x63, 0xd7, 0xcd, 0x59, 0xc2, 0x54,
+ 0x41, 0x86, 0xb8, 0x6e, 0xaf, 0x79, 0xfa, 0x16, 0x51, 0x44, 0xad, 0x9c,
+ 0x39, 0x09, 0x32, 0x1a,
+};
+static const struct drbg_kat_pr_false kat1595_t = {
+ 4, kat1595_entropyin, kat1595_nonce, kat1595_persstr,
+ kat1595_entropyinreseed, kat1595_addinreseed, kat1595_addin0,
+ kat1595_addin1, kat1595_retbits
+};
+static const struct drbg_kat kat1595 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1595_t
+};
+
+static const unsigned char kat1596_entropyin[] = {
+ 0x8f, 0xf3, 0x5a, 0x1a, 0xc0, 0x80, 0xdf, 0xf9, 0x7d, 0xed, 0x22, 0x16,
+ 0x21, 0x16, 0x6a, 0x86,
+};
+static const unsigned char kat1596_nonce[] = {
+ 0xf7, 0x8a, 0xad, 0x37, 0x93, 0x9c, 0x78, 0x8c,
+};
+static const unsigned char kat1596_persstr[] = {
+ 0xfb, 0xc5, 0xb6, 0x1a, 0x7c, 0x04, 0x85, 0x1f, 0x06, 0x90, 0xec, 0x4c,
+ 0xc8, 0x70, 0x27, 0x57,
+};
+static const unsigned char kat1596_entropyinreseed[] = {
+ 0xe2, 0x51, 0xfd, 0x54, 0xe0, 0xe6, 0x66, 0x60, 0xd5, 0xea, 0x10, 0xa7,
+ 0xed, 0xd2, 0x20, 0x29,
+};
+static const unsigned char kat1596_addinreseed[] = {0};
+static const unsigned char kat1596_addin0[] = {0};
+static const unsigned char kat1596_addin1[] = {0};
+static const unsigned char kat1596_retbits[] = {
+ 0xd4, 0xd3, 0x13, 0x90, 0x7b, 0x08, 0x29, 0x3c, 0x1a, 0x03, 0xcd, 0x3d,
+ 0x9a, 0x63, 0x19, 0x2f, 0x44, 0x67, 0x7d, 0x37, 0x0c, 0xe3, 0x20, 0x50,
+ 0x1b, 0x5f, 0xaf, 0x2c, 0xd6, 0x6f, 0xa8, 0xfa, 0x4f, 0xd1, 0xdd, 0x3f,
+ 0x34, 0x03, 0x26, 0xa9, 0x9b, 0x8b, 0x5e, 0x5b, 0x02, 0xa6, 0x36, 0xee,
+ 0xb0, 0x4f, 0xbb, 0x0f, 0x31, 0xf1, 0x93, 0xbe, 0x24, 0x34, 0x2e, 0x6f,
+ 0xaa, 0x3b, 0xc2, 0x33,
+};
+static const struct drbg_kat_pr_false kat1596_t = {
+ 5, kat1596_entropyin, kat1596_nonce, kat1596_persstr,
+ kat1596_entropyinreseed, kat1596_addinreseed, kat1596_addin0,
+ kat1596_addin1, kat1596_retbits
+};
+static const struct drbg_kat kat1596 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1596_t
+};
+
+static const unsigned char kat1597_entropyin[] = {
+ 0x8d, 0xff, 0x98, 0x53, 0xcc, 0xa3, 0x15, 0xff, 0x7e, 0x45, 0xa1, 0x3b,
+ 0x1d, 0xc2, 0x00, 0x95,
+};
+static const unsigned char kat1597_nonce[] = {
+ 0x7e, 0x16, 0x07, 0x80, 0xd6, 0x97, 0x25, 0x5b,
+};
+static const unsigned char kat1597_persstr[] = {
+ 0x62, 0x80, 0x55, 0xef, 0x3a, 0x08, 0x49, 0x67, 0xaa, 0x28, 0x7f, 0x62,
+ 0x6d, 0x0d, 0x8c, 0xaa,
+};
+static const unsigned char kat1597_entropyinreseed[] = {
+ 0x8a, 0xd8, 0xeb, 0x28, 0xce, 0x1b, 0xad, 0x08, 0xf4, 0xa2, 0x4f, 0x3b,
+ 0x65, 0x3e, 0x45, 0x5e,
+};
+static const unsigned char kat1597_addinreseed[] = {0};
+static const unsigned char kat1597_addin0[] = {0};
+static const unsigned char kat1597_addin1[] = {0};
+static const unsigned char kat1597_retbits[] = {
+ 0xd6, 0x57, 0x78, 0x08, 0x4c, 0xa5, 0x05, 0x56, 0x13, 0x55, 0xb8, 0xc3,
+ 0xc8, 0xcd, 0x08, 0x33, 0xcc, 0x94, 0xc6, 0x80, 0x38, 0xb0, 0x0f, 0x38,
+ 0xee, 0x59, 0x3f, 0x0b, 0xca, 0xd7, 0x97, 0xff, 0x6e, 0xd2, 0xdd, 0xd9,
+ 0x8f, 0x9c, 0x65, 0x31, 0x80, 0x94, 0xb4, 0x3c, 0x25, 0xdc, 0x59, 0xb6,
+ 0xbb, 0xb0, 0xd3, 0x1f, 0x79, 0xc0, 0x44, 0xf9, 0x10, 0xda, 0xbb, 0xd6,
+ 0xc1, 0xbc, 0xc5, 0x4b,
+};
+static const struct drbg_kat_pr_false kat1597_t = {
+ 6, kat1597_entropyin, kat1597_nonce, kat1597_persstr,
+ kat1597_entropyinreseed, kat1597_addinreseed, kat1597_addin0,
+ kat1597_addin1, kat1597_retbits
+};
+static const struct drbg_kat kat1597 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1597_t
+};
+
+static const unsigned char kat1598_entropyin[] = {
+ 0x11, 0x8e, 0x19, 0xa3, 0x1c, 0xcd, 0xd1, 0x4b, 0x84, 0x49, 0xe6, 0xb1,
+ 0x2e, 0x13, 0x40, 0xb0,
+};
+static const unsigned char kat1598_nonce[] = {
+ 0x22, 0x18, 0x7a, 0x3a, 0xbb, 0x44, 0x77, 0xa0,
+};
+static const unsigned char kat1598_persstr[] = {
+ 0xe7, 0xb8, 0x85, 0x95, 0x2c, 0x83, 0x88, 0x4e, 0xa6, 0xa9, 0x6c, 0x1a,
+ 0x51, 0xee, 0x7e, 0xd5,
+};
+static const unsigned char kat1598_entropyinreseed[] = {
+ 0x8d, 0xb1, 0x4d, 0x02, 0xf1, 0xf6, 0x3c, 0x38, 0x5d, 0xfd, 0x55, 0x92,
+ 0xaa, 0xea, 0x1c, 0x2e,
+};
+static const unsigned char kat1598_addinreseed[] = {0};
+static const unsigned char kat1598_addin0[] = {0};
+static const unsigned char kat1598_addin1[] = {0};
+static const unsigned char kat1598_retbits[] = {
+ 0x15, 0x47, 0x8c, 0xc9, 0xc1, 0x2d, 0xf7, 0x0e, 0x18, 0x20, 0x08, 0xb8,
+ 0x60, 0xe0, 0xc4, 0xde, 0x5d, 0x8d, 0xfc, 0x37, 0x5b, 0xb6, 0x86, 0xc5,
+ 0x8e, 0xb6, 0x94, 0xf4, 0x81, 0x7b, 0x4b, 0x0c, 0x37, 0x3d, 0xe5, 0x3c,
+ 0x49, 0x01, 0xb6, 0x4d, 0x91, 0x5b, 0xba, 0xf7, 0xa4, 0x1a, 0x43, 0x60,
+ 0xae, 0xa9, 0xcb, 0x99, 0x6e, 0xe3, 0xd5, 0x15, 0x56, 0xfb, 0xa9, 0xb0,
+ 0xc3, 0x19, 0x6b, 0xd4,
+};
+static const struct drbg_kat_pr_false kat1598_t = {
+ 7, kat1598_entropyin, kat1598_nonce, kat1598_persstr,
+ kat1598_entropyinreseed, kat1598_addinreseed, kat1598_addin0,
+ kat1598_addin1, kat1598_retbits
+};
+static const struct drbg_kat kat1598 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1598_t
+};
+
+static const unsigned char kat1599_entropyin[] = {
+ 0x83, 0xf3, 0xf7, 0xad, 0xeb, 0x93, 0x2e, 0x3b, 0x80, 0x3f, 0x43, 0x52,
+ 0x13, 0xa3, 0x28, 0x3e,
+};
+static const unsigned char kat1599_nonce[] = {
+ 0x24, 0x8d, 0x7a, 0xf9, 0xce, 0x6e, 0x41, 0x67,
+};
+static const unsigned char kat1599_persstr[] = {
+ 0x39, 0xfc, 0xae, 0x72, 0x6d, 0xbe, 0x65, 0x1b, 0xc8, 0x0e, 0x56, 0xa7,
+ 0xec, 0x19, 0xfa, 0x60,
+};
+static const unsigned char kat1599_entropyinreseed[] = {
+ 0x0b, 0xfe, 0x69, 0xb9, 0xab, 0xc8, 0xa7, 0x6c, 0x06, 0x3e, 0x06, 0xd3,
+ 0x61, 0x7e, 0x41, 0x47,
+};
+static const unsigned char kat1599_addinreseed[] = {0};
+static const unsigned char kat1599_addin0[] = {0};
+static const unsigned char kat1599_addin1[] = {0};
+static const unsigned char kat1599_retbits[] = {
+ 0x7e, 0x6f, 0x2e, 0xe5, 0x70, 0x13, 0x7a, 0xbe, 0x6c, 0x6e, 0x8d, 0xb2,
+ 0x55, 0x6b, 0x2d, 0x30, 0xf8, 0x7a, 0xea, 0x4f, 0xea, 0x5f, 0xa0, 0x63,
+ 0xa1, 0x10, 0xe9, 0x42, 0xae, 0xc4, 0xa2, 0x77, 0x0b, 0x57, 0x1b, 0xad,
+ 0x44, 0xf0, 0x7d, 0x39, 0x89, 0xe9, 0xad, 0xff, 0x29, 0x18, 0xbe, 0xbc,
+ 0x04, 0x62, 0x8a, 0x88, 0xee, 0xca, 0x6c, 0x6f, 0x2c, 0xea, 0x7c, 0xc3,
+ 0x38, 0xee, 0xb6, 0x70,
+};
+static const struct drbg_kat_pr_false kat1599_t = {
+ 8, kat1599_entropyin, kat1599_nonce, kat1599_persstr,
+ kat1599_entropyinreseed, kat1599_addinreseed, kat1599_addin0,
+ kat1599_addin1, kat1599_retbits
+};
+static const struct drbg_kat kat1599 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1599_t
+};
+
+static const unsigned char kat1600_entropyin[] = {
+ 0x2d, 0xe9, 0x89, 0xec, 0x6d, 0x0d, 0xa9, 0xeb, 0xcc, 0x02, 0xf7, 0x24,
+ 0xa4, 0x47, 0x67, 0x12,
+};
+static const unsigned char kat1600_nonce[] = {
+ 0xf2, 0xf3, 0x79, 0x4d, 0x18, 0xac, 0x2b, 0xcd,
+};
+static const unsigned char kat1600_persstr[] = {
+ 0xc5, 0x0a, 0xc1, 0x7e, 0x4a, 0x68, 0xf7, 0xf0, 0x2d, 0x68, 0x20, 0x65,
+ 0x3f, 0x0a, 0x71, 0xfd,
+};
+static const unsigned char kat1600_entropyinreseed[] = {
+ 0x35, 0x09, 0x27, 0xee, 0xc6, 0x63, 0x63, 0x05, 0xba, 0xbd, 0x0f, 0xee,
+ 0xe2, 0x43, 0x08, 0x2f,
+};
+static const unsigned char kat1600_addinreseed[] = {0};
+static const unsigned char kat1600_addin0[] = {0};
+static const unsigned char kat1600_addin1[] = {0};
+static const unsigned char kat1600_retbits[] = {
+ 0xda, 0xb2, 0x04, 0xce, 0x72, 0xaf, 0xd6, 0xcd, 0x25, 0x6a, 0x17, 0x54,
+ 0xab, 0x7e, 0xbe, 0x42, 0x4d, 0x4b, 0xfc, 0x6a, 0xee, 0xac, 0x9b, 0x6b,
+ 0xbd, 0x06, 0xe7, 0x9f, 0x21, 0x28, 0x63, 0x45, 0x45, 0x7b, 0x5f, 0xd4,
+ 0x62, 0x81, 0xc1, 0x45, 0xee, 0xc4, 0x50, 0x22, 0x58, 0x23, 0xc7, 0x59,
+ 0x6e, 0x18, 0xb7, 0xbc, 0xbb, 0x37, 0x98, 0x45, 0xa3, 0x84, 0xab, 0x48,
+ 0xd8, 0xa5, 0x55, 0xb3,
+};
+static const struct drbg_kat_pr_false kat1600_t = {
+ 9, kat1600_entropyin, kat1600_nonce, kat1600_persstr,
+ kat1600_entropyinreseed, kat1600_addinreseed, kat1600_addin0,
+ kat1600_addin1, kat1600_retbits
+};
+static const struct drbg_kat kat1600 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1600_t
+};
+
+static const unsigned char kat1601_entropyin[] = {
+ 0x76, 0x0f, 0xa0, 0x51, 0x53, 0x04, 0xe5, 0x24, 0x74, 0x3c, 0xa5, 0x63,
+ 0xba, 0xf2, 0x48, 0xf7,
+};
+static const unsigned char kat1601_nonce[] = {
+ 0x46, 0x86, 0xbf, 0x04, 0x37, 0xa2, 0x86, 0xad,
+};
+static const unsigned char kat1601_persstr[] = {
+ 0xb0, 0x39, 0x22, 0xe8, 0x92, 0x34, 0x93, 0xd2, 0x22, 0x7a, 0x1b, 0xff,
+ 0xc9, 0xee, 0x7c, 0x09,
+};
+static const unsigned char kat1601_entropyinreseed[] = {
+ 0x70, 0x29, 0x4a, 0xab, 0xa8, 0x04, 0x2e, 0x77, 0x0e, 0x2e, 0xdd, 0x6a,
+ 0x02, 0xd3, 0x65, 0xaa,
+};
+static const unsigned char kat1601_addinreseed[] = {0};
+static const unsigned char kat1601_addin0[] = {0};
+static const unsigned char kat1601_addin1[] = {0};
+static const unsigned char kat1601_retbits[] = {
+ 0xee, 0xc8, 0xb2, 0x57, 0x7c, 0xb1, 0x03, 0x75, 0xf5, 0x6f, 0x8a, 0xa8,
+ 0x78, 0x9c, 0xc8, 0x16, 0xc0, 0xbf, 0xd4, 0xb9, 0x28, 0xf2, 0xb5, 0xaf,
+ 0xdd, 0xbe, 0x8f, 0xdd, 0xb1, 0x4b, 0x0f, 0xaa, 0x1d, 0xfd, 0xba, 0x51,
+ 0x88, 0xa2, 0x86, 0x25, 0x23, 0xcf, 0x4c, 0x44, 0xce, 0x1d, 0x90, 0xe1,
+ 0x2a, 0x1f, 0xcd, 0x42, 0x26, 0x3b, 0x30, 0x5e, 0x2d, 0x85, 0xd3, 0xc4,
+ 0x0f, 0x56, 0x3b, 0x14,
+};
+static const struct drbg_kat_pr_false kat1601_t = {
+ 10, kat1601_entropyin, kat1601_nonce, kat1601_persstr,
+ kat1601_entropyinreseed, kat1601_addinreseed, kat1601_addin0,
+ kat1601_addin1, kat1601_retbits
+};
+static const struct drbg_kat kat1601 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1601_t
+};
+
+static const unsigned char kat1602_entropyin[] = {
+ 0xe1, 0x02, 0xad, 0x43, 0x7a, 0xa0, 0xa7, 0xdb, 0xd8, 0x50, 0x60, 0x83,
+ 0x77, 0xaf, 0xef, 0x1c,
+};
+static const unsigned char kat1602_nonce[] = {
+ 0x0c, 0x12, 0x14, 0xcf, 0xc9, 0xb3, 0xb4, 0x50,
+};
+static const unsigned char kat1602_persstr[] = {
+ 0x15, 0xa7, 0x9c, 0xbb, 0xd9, 0xec, 0x83, 0x9e, 0xfc, 0x49, 0xa1, 0x03,
+ 0x0e, 0x8c, 0x20, 0xae,
+};
+static const unsigned char kat1602_entropyinreseed[] = {
+ 0x84, 0x64, 0xc0, 0xfb, 0x73, 0x35, 0x30, 0x5f, 0x54, 0x57, 0x1f, 0x29,
+ 0x51, 0x27, 0x21, 0x15,
+};
+static const unsigned char kat1602_addinreseed[] = {0};
+static const unsigned char kat1602_addin0[] = {0};
+static const unsigned char kat1602_addin1[] = {0};
+static const unsigned char kat1602_retbits[] = {
+ 0xb6, 0xb1, 0x8e, 0x26, 0xd9, 0x0e, 0x70, 0xe0, 0xb7, 0x86, 0xff, 0x64,
+ 0x08, 0x40, 0x27, 0x3e, 0xe0, 0x86, 0xbf, 0x03, 0x20, 0x59, 0x05, 0xfe,
+ 0x1c, 0xdb, 0x2e, 0x9e, 0x89, 0x2f, 0x0b, 0x2a, 0xa2, 0xd6, 0xe7, 0x8e,
+ 0xcd, 0x3c, 0xee, 0x2d, 0x99, 0x28, 0x61, 0x60, 0xc2, 0x94, 0xdc, 0x36,
+ 0x8e, 0xd4, 0x5e, 0x2e, 0xb3, 0x31, 0xd0, 0x3b, 0xad, 0x58, 0xf4, 0xb5,
+ 0xcc, 0x50, 0x50, 0x53,
+};
+static const struct drbg_kat_pr_false kat1602_t = {
+ 11, kat1602_entropyin, kat1602_nonce, kat1602_persstr,
+ kat1602_entropyinreseed, kat1602_addinreseed, kat1602_addin0,
+ kat1602_addin1, kat1602_retbits
+};
+static const struct drbg_kat kat1602 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1602_t
+};
+
+static const unsigned char kat1603_entropyin[] = {
+ 0x90, 0xa9, 0xac, 0xc6, 0x56, 0x6b, 0x8b, 0xa0, 0xdb, 0x4e, 0xd5, 0xba,
+ 0x9b, 0x7d, 0x19, 0xd9,
+};
+static const unsigned char kat1603_nonce[] = {
+ 0x74, 0xb6, 0xc9, 0x43, 0x76, 0x1b, 0x95, 0x68,
+};
+static const unsigned char kat1603_persstr[] = {
+ 0x6b, 0xd1, 0x6b, 0xc6, 0xb0, 0x29, 0xab, 0x5f, 0x76, 0x68, 0x3b, 0xe7,
+ 0x12, 0xdc, 0x32, 0x72,
+};
+static const unsigned char kat1603_entropyinreseed[] = {
+ 0xfe, 0xe3, 0xad, 0x6f, 0x48, 0x45, 0x84, 0xb3, 0x16, 0x3a, 0x21, 0x3f,
+ 0x19, 0x9a, 0x4d, 0x42,
+};
+static const unsigned char kat1603_addinreseed[] = {0};
+static const unsigned char kat1603_addin0[] = {0};
+static const unsigned char kat1603_addin1[] = {0};
+static const unsigned char kat1603_retbits[] = {
+ 0xa3, 0xcc, 0x0d, 0xf5, 0x3f, 0x0d, 0x51, 0x6a, 0x27, 0x9a, 0x25, 0x3e,
+ 0x68, 0x53, 0xb1, 0x46, 0xa4, 0xbd, 0xed, 0x0c, 0x27, 0x0a, 0xe6, 0x61,
+ 0xe1, 0x9f, 0xaa, 0xcc, 0x5a, 0x76, 0x45, 0x15, 0xd0, 0x15, 0x66, 0x88,
+ 0x2f, 0x88, 0xde, 0x51, 0x60, 0xf4, 0x02, 0xe2, 0xce, 0x0e, 0xc4, 0x6d,
+ 0x1d, 0x7d, 0x50, 0x28, 0x94, 0x46, 0xde, 0x69, 0xac, 0x9d, 0x88, 0x9a,
+ 0xe1, 0x08, 0x82, 0xfa,
+};
+static const struct drbg_kat_pr_false kat1603_t = {
+ 12, kat1603_entropyin, kat1603_nonce, kat1603_persstr,
+ kat1603_entropyinreseed, kat1603_addinreseed, kat1603_addin0,
+ kat1603_addin1, kat1603_retbits
+};
+static const struct drbg_kat kat1603 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1603_t
+};
+
+static const unsigned char kat1604_entropyin[] = {
+ 0xa9, 0xc5, 0xfa, 0x1f, 0xd1, 0x5d, 0xc3, 0x5a, 0xcf, 0xd2, 0x59, 0x81,
+ 0xdd, 0x54, 0x7b, 0x56,
+};
+static const unsigned char kat1604_nonce[] = {
+ 0x26, 0x74, 0x04, 0x71, 0x4f, 0x70, 0xa7, 0xcf,
+};
+static const unsigned char kat1604_persstr[] = {
+ 0x61, 0x07, 0x14, 0x92, 0x22, 0x90, 0x36, 0x0d, 0x49, 0x19, 0xa9, 0xf1,
+ 0xf4, 0x71, 0xbb, 0xc6,
+};
+static const unsigned char kat1604_entropyinreseed[] = {
+ 0x98, 0x34, 0x85, 0x9e, 0xcd, 0x85, 0x2a, 0x72, 0x69, 0x54, 0x6e, 0x82,
+ 0x5c, 0x01, 0xd6, 0x11,
+};
+static const unsigned char kat1604_addinreseed[] = {0};
+static const unsigned char kat1604_addin0[] = {0};
+static const unsigned char kat1604_addin1[] = {0};
+static const unsigned char kat1604_retbits[] = {
+ 0xe7, 0x2e, 0xba, 0x34, 0xd4, 0x2b, 0x8e, 0xa6, 0x93, 0xbc, 0xe7, 0xe8,
+ 0x76, 0xc7, 0xb3, 0x38, 0xc1, 0xa7, 0x19, 0x1b, 0x07, 0xc9, 0xc5, 0x3e,
+ 0x1c, 0x0e, 0x27, 0xb0, 0x8b, 0xf0, 0x63, 0x65, 0x19, 0xa6, 0x5f, 0x63,
+ 0x4f, 0xea, 0xc5, 0x2e, 0x76, 0x0a, 0xe7, 0x81, 0x66, 0x99, 0xba, 0xbb,
+ 0x0c, 0x02, 0x68, 0xb1, 0x72, 0x38, 0xd8, 0x0c, 0xe6, 0x98, 0x30, 0x8e,
+ 0x6b, 0x36, 0x0c, 0xf9,
+};
+static const struct drbg_kat_pr_false kat1604_t = {
+ 13, kat1604_entropyin, kat1604_nonce, kat1604_persstr,
+ kat1604_entropyinreseed, kat1604_addinreseed, kat1604_addin0,
+ kat1604_addin1, kat1604_retbits
+};
+static const struct drbg_kat kat1604 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1604_t
+};
+
+static const unsigned char kat1605_entropyin[] = {
+ 0xe7, 0x61, 0x77, 0x8d, 0xfc, 0xf1, 0x2b, 0x16, 0x97, 0x95, 0x6b, 0xa1,
+ 0xf4, 0x96, 0x17, 0xbe,
+};
+static const unsigned char kat1605_nonce[] = {
+ 0x8c, 0xe2, 0x52, 0xad, 0x4d, 0xc8, 0xa7, 0x02,
+};
+static const unsigned char kat1605_persstr[] = {
+ 0xce, 0xae, 0x74, 0xc9, 0x76, 0x0f, 0xb4, 0x49, 0x5d, 0x33, 0x3f, 0x84,
+ 0x76, 0x1a, 0x8a, 0x30,
+};
+static const unsigned char kat1605_entropyinreseed[] = {
+ 0x1a, 0x36, 0x53, 0xbc, 0xfa, 0x54, 0x9c, 0x1f, 0x98, 0xf1, 0x7f, 0x5b,
+ 0x26, 0xfc, 0x04, 0xb1,
+};
+static const unsigned char kat1605_addinreseed[] = {0};
+static const unsigned char kat1605_addin0[] = {0};
+static const unsigned char kat1605_addin1[] = {0};
+static const unsigned char kat1605_retbits[] = {
+ 0x67, 0xad, 0x31, 0x84, 0x3d, 0x23, 0xd5, 0xb1, 0xb2, 0x1f, 0x70, 0x87,
+ 0x63, 0x51, 0xd5, 0x25, 0x2c, 0xf0, 0xcc, 0x93, 0xa9, 0x1a, 0x7a, 0x7c,
+ 0x8f, 0x78, 0x51, 0x89, 0xf8, 0x29, 0x34, 0x9b, 0xe6, 0x7a, 0xcb, 0xb9,
+ 0xda, 0xe0, 0x5d, 0x52, 0xb2, 0x14, 0xbc, 0xe4, 0xb3, 0x10, 0x19, 0x77,
+ 0x38, 0x37, 0x7a, 0x5f, 0x05, 0x0e, 0x25, 0x49, 0x20, 0x91, 0x0b, 0x44,
+ 0x97, 0xd6, 0x07, 0xba,
+};
+static const struct drbg_kat_pr_false kat1605_t = {
+ 14, kat1605_entropyin, kat1605_nonce, kat1605_persstr,
+ kat1605_entropyinreseed, kat1605_addinreseed, kat1605_addin0,
+ kat1605_addin1, kat1605_retbits
+};
+static const struct drbg_kat kat1605 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1605_t
+};
+
+static const unsigned char kat1606_entropyin[] = {
+ 0xb7, 0x02, 0x52, 0x64, 0xdc, 0xa8, 0x57, 0x6b, 0xd5, 0x2a, 0x26, 0xc2,
+ 0xd6, 0x4b, 0x50, 0x11,
+};
+static const unsigned char kat1606_nonce[] = {
+ 0xe5, 0x9d, 0x54, 0xd2, 0xc0, 0x30, 0x32, 0xcd,
+};
+static const unsigned char kat1606_persstr[] = {
+ 0x80, 0x1f, 0x88, 0xc6, 0x1c, 0x57, 0x7f, 0xa1, 0x61, 0x34, 0x05, 0x3d,
+ 0x07, 0xbf, 0x6f, 0x0f,
+};
+static const unsigned char kat1606_entropyinreseed[] = {
+ 0x91, 0xae, 0x03, 0xa1, 0xb4, 0xb4, 0x31, 0x66, 0x11, 0x09, 0x43, 0x73,
+ 0xf9, 0x34, 0x9a, 0x57,
+};
+static const unsigned char kat1606_addinreseed[] = {
+ 0x65, 0x2f, 0x24, 0xf9, 0x36, 0x55, 0x1b, 0x0b, 0xbe, 0xb3, 0xe8, 0x29,
+ 0xdd, 0x1e, 0xc9, 0xad,
+};
+static const unsigned char kat1606_addin0[] = {
+ 0xc0, 0x7d, 0x36, 0x37, 0x5b, 0x0b, 0xa8, 0xe7, 0xd9, 0xbd, 0x7e, 0x9f,
+ 0x53, 0xe2, 0xd9, 0x8c,
+};
+static const unsigned char kat1606_addin1[] = {
+ 0x20, 0x99, 0x53, 0xab, 0xe8, 0x50, 0x45, 0x9d, 0x83, 0xe5, 0xdd, 0xd1,
+ 0x5d, 0x21, 0x50, 0x5b,
+};
+static const unsigned char kat1606_retbits[] = {
+ 0x4b, 0x15, 0x3e, 0x0a, 0xd2, 0xe8, 0xd2, 0x6e, 0xa0, 0x51, 0x72, 0x90,
+ 0xde, 0x36, 0x5e, 0x3e, 0x5b, 0xbe, 0xbf, 0x6e, 0x76, 0x00, 0x2b, 0x3e,
+ 0x8b, 0xbd, 0x4e, 0xe9, 0xed, 0xde, 0xf8, 0xcb, 0xc9, 0xc4, 0xdc, 0x85,
+ 0xac, 0xe2, 0x1d, 0x82, 0x17, 0xef, 0x25, 0xe6, 0x88, 0x34, 0x29, 0xc1,
+ 0x63, 0x21, 0xa4, 0x58, 0xb5, 0x0e, 0x6c, 0x15, 0xac, 0xc6, 0xd5, 0x32,
+ 0x4b, 0x55, 0xe5, 0xf3,
+};
+static const struct drbg_kat_pr_false kat1606_t = {
+ 0, kat1606_entropyin, kat1606_nonce, kat1606_persstr,
+ kat1606_entropyinreseed, kat1606_addinreseed, kat1606_addin0,
+ kat1606_addin1, kat1606_retbits
+};
+static const struct drbg_kat kat1606 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1606_t
+};
+
+static const unsigned char kat1607_entropyin[] = {
+ 0x17, 0x44, 0x36, 0xf2, 0x35, 0x26, 0x7b, 0x38, 0x93, 0x29, 0x40, 0x17,
+ 0xd4, 0xe6, 0x91, 0x28,
+};
+static const unsigned char kat1607_nonce[] = {
+ 0x44, 0x20, 0xe5, 0x57, 0xde, 0xd3, 0xf7, 0xad,
+};
+static const unsigned char kat1607_persstr[] = {
+ 0x44, 0x9f, 0x60, 0x38, 0x06, 0xef, 0x01, 0x20, 0xb8, 0xd5, 0x8a, 0x9a,
+ 0xa5, 0x1f, 0x60, 0x04,
+};
+static const unsigned char kat1607_entropyinreseed[] = {
+ 0xc6, 0xa1, 0xa1, 0x32, 0x8b, 0x7a, 0x40, 0x73, 0x6b, 0xf9, 0xc7, 0xee,
+ 0xfe, 0xe9, 0xf2, 0xdf,
+};
+static const unsigned char kat1607_addinreseed[] = {
+ 0xf0, 0x90, 0x19, 0xe8, 0xe6, 0x0b, 0x2c, 0x42, 0xbe, 0xc6, 0x11, 0x81,
+ 0x7b, 0x2b, 0x3b, 0xfc,
+};
+static const unsigned char kat1607_addin0[] = {
+ 0x1e, 0xe6, 0xef, 0xa2, 0x42, 0xe6, 0x51, 0x12, 0xa3, 0xf0, 0xd2, 0xf1,
+ 0x70, 0x6a, 0xd3, 0x8f,
+};
+static const unsigned char kat1607_addin1[] = {
+ 0xb1, 0x45, 0x9d, 0x42, 0x04, 0x99, 0x98, 0xd4, 0xda, 0x0b, 0x01, 0xff,
+ 0xee, 0x4e, 0x20, 0xdf,
+};
+static const unsigned char kat1607_retbits[] = {
+ 0x11, 0xb0, 0xab, 0xbb, 0x76, 0x19, 0xb3, 0x7c, 0x19, 0x0f, 0x23, 0x98,
+ 0xe2, 0x62, 0xdf, 0xb7, 0x58, 0x6b, 0x63, 0x2b, 0x3e, 0x96, 0xc7, 0xae,
+ 0x09, 0x9a, 0x2f, 0xe0, 0xe1, 0xfb, 0xee, 0x70, 0xe4, 0x9b, 0x21, 0x64,
+ 0x2d, 0x37, 0xc3, 0x65, 0xef, 0x87, 0x8f, 0x63, 0xe8, 0x4e, 0x67, 0x21,
+ 0x05, 0xce, 0x2b, 0x81, 0x91, 0x1f, 0x18, 0xb6, 0x0a, 0xa6, 0xa4, 0x40,
+ 0xec, 0xce, 0xf5, 0x2b,
+};
+static const struct drbg_kat_pr_false kat1607_t = {
+ 1, kat1607_entropyin, kat1607_nonce, kat1607_persstr,
+ kat1607_entropyinreseed, kat1607_addinreseed, kat1607_addin0,
+ kat1607_addin1, kat1607_retbits
+};
+static const struct drbg_kat kat1607 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1607_t
+};
+
+static const unsigned char kat1608_entropyin[] = {
+ 0x2f, 0xcc, 0x99, 0xd4, 0x0a, 0xf5, 0xcb, 0xa1, 0x41, 0xb7, 0x92, 0xd1,
+ 0x86, 0xe6, 0x13, 0x43,
+};
+static const unsigned char kat1608_nonce[] = {
+ 0xdc, 0xae, 0x59, 0x9d, 0xab, 0x13, 0x5c, 0x65,
+};
+static const unsigned char kat1608_persstr[] = {
+ 0xbe, 0xe3, 0xfc, 0x60, 0x13, 0x16, 0x05, 0x7b, 0x12, 0xcf, 0x79, 0x1a,
+ 0x6f, 0xa3, 0x62, 0xbb,
+};
+static const unsigned char kat1608_entropyinreseed[] = {
+ 0x71, 0x2f, 0xcb, 0x5b, 0x28, 0x36, 0xe6, 0xbd, 0xb9, 0x29, 0x35, 0x08,
+ 0xe0, 0x28, 0x3e, 0x8e,
+};
+static const unsigned char kat1608_addinreseed[] = {
+ 0xb2, 0xe4, 0x6f, 0xb3, 0x9a, 0x3a, 0xd8, 0x9b, 0xdc, 0xc7, 0x8a, 0xde,
+ 0x62, 0x38, 0xc4, 0xd0,
+};
+static const unsigned char kat1608_addin0[] = {
+ 0xe2, 0x56, 0x7f, 0x6e, 0xc2, 0x7b, 0xcb, 0x14, 0x97, 0xc2, 0xfe, 0x15,
+ 0x17, 0x39, 0xe8, 0xd0,
+};
+static const unsigned char kat1608_addin1[] = {
+ 0x95, 0x86, 0xb4, 0xad, 0xa0, 0xa3, 0x00, 0xe8, 0x36, 0x97, 0x51, 0x7f,
+ 0x6f, 0x43, 0x46, 0x3c,
+};
+static const unsigned char kat1608_retbits[] = {
+ 0x2b, 0x5c, 0xe7, 0x2c, 0x71, 0x7e, 0xe1, 0x0c, 0xcc, 0x34, 0xd8, 0x6e,
+ 0x39, 0x67, 0xaf, 0xdc, 0xe8, 0x3d, 0x48, 0x59, 0x97, 0xf6, 0xdc, 0x3d,
+ 0x3d, 0x40, 0xb5, 0x97, 0xe0, 0x74, 0x20, 0x65, 0x22, 0x10, 0x56, 0xea,
+ 0xd6, 0xa1, 0x6f, 0x39, 0x5e, 0x4d, 0x8c, 0x09, 0x47, 0x16, 0x7f, 0xf6,
+ 0x62, 0x90, 0x98, 0xf3, 0x3b, 0x92, 0x09, 0x12, 0x8c, 0xa7, 0xd7, 0x13,
+ 0xbe, 0xd2, 0x41, 0x77,
+};
+static const struct drbg_kat_pr_false kat1608_t = {
+ 2, kat1608_entropyin, kat1608_nonce, kat1608_persstr,
+ kat1608_entropyinreseed, kat1608_addinreseed, kat1608_addin0,
+ kat1608_addin1, kat1608_retbits
+};
+static const struct drbg_kat kat1608 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1608_t
+};
+
+static const unsigned char kat1609_entropyin[] = {
+ 0xab, 0x71, 0x23, 0x94, 0x4a, 0x2f, 0x46, 0x2a, 0x36, 0x8d, 0xa1, 0x71,
+ 0x27, 0x16, 0xb1, 0x14,
+};
+static const unsigned char kat1609_nonce[] = {
+ 0x85, 0x1d, 0x50, 0x04, 0x9e, 0x1d, 0x4f, 0x1f,
+};
+static const unsigned char kat1609_persstr[] = {
+ 0x8a, 0xd5, 0xac, 0x69, 0x4f, 0x28, 0x28, 0x1e, 0xaa, 0x42, 0x78, 0x44,
+ 0xfc, 0xff, 0xdf, 0x6e,
+};
+static const unsigned char kat1609_entropyinreseed[] = {
+ 0xed, 0x59, 0xf0, 0x72, 0x06, 0x25, 0x38, 0x2b, 0xcf, 0x4e, 0x48, 0x57,
+ 0xf5, 0x36, 0x0f, 0x54,
+};
+static const unsigned char kat1609_addinreseed[] = {
+ 0xe7, 0xac, 0x99, 0x66, 0x02, 0x0b, 0xe3, 0xeb, 0x21, 0xef, 0x18, 0x31,
+ 0xf3, 0xde, 0x23, 0x04,
+};
+static const unsigned char kat1609_addin0[] = {
+ 0x1d, 0xa1, 0xbd, 0xe0, 0x9d, 0x7b, 0x44, 0xf6, 0xfa, 0x07, 0x4e, 0x55,
+ 0xa2, 0x69, 0x8f, 0x4e,
+};
+static const unsigned char kat1609_addin1[] = {
+ 0x79, 0x53, 0x26, 0xf8, 0x3c, 0x85, 0x42, 0x21, 0x5b, 0x13, 0x15, 0xbf,
+ 0x3d, 0x7c, 0x98, 0x46,
+};
+static const unsigned char kat1609_retbits[] = {
+ 0xcb, 0x65, 0x6e, 0x62, 0x41, 0x71, 0x88, 0xa7, 0x4d, 0x7a, 0xfa, 0x64,
+ 0x02, 0x56, 0x4b, 0x7d, 0x15, 0x72, 0x9b, 0x5b, 0x70, 0xb1, 0x4d, 0x8b,
+ 0x5c, 0x51, 0x30, 0xc6, 0x81, 0x6d, 0x05, 0x12, 0x86, 0xe5, 0xe2, 0x2f,
+ 0xf3, 0x6a, 0x45, 0x05, 0x8b, 0xc5, 0x0b, 0x7f, 0x0f, 0x53, 0xd8, 0x0c,
+ 0x95, 0x91, 0x3a, 0x32, 0x5a, 0xf9, 0x85, 0x02, 0xb2, 0xe0, 0x59, 0x15,
+ 0x24, 0xf9, 0xfc, 0xdd,
+};
+static const struct drbg_kat_pr_false kat1609_t = {
+ 3, kat1609_entropyin, kat1609_nonce, kat1609_persstr,
+ kat1609_entropyinreseed, kat1609_addinreseed, kat1609_addin0,
+ kat1609_addin1, kat1609_retbits
+};
+static const struct drbg_kat kat1609 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1609_t
+};
+
+static const unsigned char kat1610_entropyin[] = {
+ 0x87, 0x34, 0xae, 0xf1, 0x17, 0x2b, 0xac, 0xc3, 0xdc, 0x4a, 0x31, 0x81,
+ 0x77, 0x3b, 0x7f, 0xe8,
+};
+static const unsigned char kat1610_nonce[] = {
+ 0x1d, 0x31, 0xdd, 0xf0, 0xc8, 0x80, 0xf0, 0x1a,
+};
+static const unsigned char kat1610_persstr[] = {
+ 0xf2, 0x3a, 0x18, 0x47, 0x5c, 0xff, 0xd5, 0x71, 0xb9, 0x6d, 0x9b, 0xae,
+ 0x12, 0x84, 0xec, 0xf4,
+};
+static const unsigned char kat1610_entropyinreseed[] = {
+ 0x10, 0x44, 0x77, 0x6a, 0x68, 0x0c, 0xdd, 0xc3, 0x8c, 0x7a, 0x9d, 0x0a,
+ 0x9d, 0x37, 0x3f, 0xc8,
+};
+static const unsigned char kat1610_addinreseed[] = {
+ 0x4a, 0x6d, 0xab, 0xcf, 0x18, 0x1d, 0x43, 0x5d, 0xf7, 0xe3, 0x5b, 0x53,
+ 0x02, 0x2b, 0x60, 0x45,
+};
+static const unsigned char kat1610_addin0[] = {
+ 0x0c, 0xb7, 0xc3, 0x61, 0x82, 0x15, 0x86, 0xd6, 0x40, 0x6c, 0xf0, 0xd0,
+ 0x74, 0x1b, 0xb3, 0xe6,
+};
+static const unsigned char kat1610_addin1[] = {
+ 0x98, 0x4e, 0x88, 0x83, 0x6d, 0x0c, 0xfc, 0xb1, 0xb9, 0xad, 0xaa, 0x26,
+ 0xed, 0x04, 0x7a, 0x56,
+};
+static const unsigned char kat1610_retbits[] = {
+ 0x97, 0xf5, 0xaa, 0x05, 0xfb, 0x16, 0x91, 0xe4, 0x34, 0xf8, 0x27, 0xb1,
+ 0xed, 0x0f, 0x67, 0xc6, 0xb0, 0x6a, 0x12, 0x9b, 0xbb, 0x64, 0x64, 0xd9,
+ 0xad, 0x03, 0xde, 0x5f, 0xe8, 0xb6, 0x36, 0x10, 0xc6, 0x96, 0x00, 0xd9,
+ 0x72, 0xd8, 0x3a, 0x75, 0xb7, 0x1e, 0x23, 0xcb, 0xd0, 0x5b, 0x30, 0x6e,
+ 0x57, 0x72, 0x12, 0x67, 0x03, 0x93, 0x1a, 0x80, 0x29, 0x32, 0xdd, 0x27,
+ 0x2d, 0xdc, 0x24, 0xec,
+};
+static const struct drbg_kat_pr_false kat1610_t = {
+ 4, kat1610_entropyin, kat1610_nonce, kat1610_persstr,
+ kat1610_entropyinreseed, kat1610_addinreseed, kat1610_addin0,
+ kat1610_addin1, kat1610_retbits
+};
+static const struct drbg_kat kat1610 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1610_t
+};
+
+static const unsigned char kat1611_entropyin[] = {
+ 0x08, 0xe2, 0xe7, 0x4d, 0x47, 0xdf, 0xb3, 0xc0, 0xed, 0x43, 0x64, 0x4d,
+ 0x98, 0x41, 0x39, 0x11,
+};
+static const unsigned char kat1611_nonce[] = {
+ 0xdf, 0xe6, 0xf2, 0xb5, 0x61, 0x47, 0x11, 0x6e,
+};
+static const unsigned char kat1611_persstr[] = {
+ 0x1e, 0xf4, 0xb3, 0x07, 0x4c, 0x24, 0x7b, 0x7c, 0x96, 0x2d, 0x49, 0xea,
+ 0x2e, 0x51, 0x95, 0x68,
+};
+static const unsigned char kat1611_entropyinreseed[] = {
+ 0xd9, 0x1c, 0x7e, 0xaa, 0xe8, 0x9c, 0xe0, 0x7d, 0xe8, 0x57, 0x8d, 0x9f,
+ 0x46, 0x41, 0x11, 0x90,
+};
+static const unsigned char kat1611_addinreseed[] = {
+ 0xa6, 0xf7, 0x3c, 0x36, 0xfd, 0x4b, 0x51, 0x0e, 0xde, 0x52, 0xbd, 0x81,
+ 0xef, 0xf1, 0x12, 0x03,
+};
+static const unsigned char kat1611_addin0[] = {
+ 0x20, 0xda, 0xd8, 0x65, 0xc4, 0xe4, 0x21, 0xbb, 0x49, 0x67, 0xbc, 0x88,
+ 0xb3, 0x00, 0x53, 0xd5,
+};
+static const unsigned char kat1611_addin1[] = {
+ 0x9a, 0xfa, 0x0a, 0x2c, 0x87, 0xef, 0x1a, 0x19, 0x20, 0xa2, 0x49, 0x0a,
+ 0xb9, 0x88, 0x05, 0xb5,
+};
+static const unsigned char kat1611_retbits[] = {
+ 0xb8, 0xad, 0xce, 0x5f, 0xb7, 0xc2, 0x84, 0xa1, 0x8f, 0x4c, 0x9f, 0x15,
+ 0xfd, 0x66, 0x43, 0x50, 0x54, 0x51, 0xda, 0x4a, 0x05, 0xe2, 0xde, 0xe0,
+ 0xfd, 0x57, 0x23, 0xd1, 0x5a, 0xe5, 0xba, 0xec, 0x8e, 0x98, 0xd0, 0x88,
+ 0x38, 0xd4, 0x48, 0x9b, 0x37, 0x9c, 0xf3, 0x49, 0x0c, 0x7f, 0x61, 0xb5,
+ 0xb7, 0x8d, 0x59, 0x03, 0x77, 0x3d, 0x68, 0xd9, 0x14, 0x25, 0x3b, 0x33,
+ 0x9f, 0x26, 0x7c, 0x0e,
+};
+static const struct drbg_kat_pr_false kat1611_t = {
+ 5, kat1611_entropyin, kat1611_nonce, kat1611_persstr,
+ kat1611_entropyinreseed, kat1611_addinreseed, kat1611_addin0,
+ kat1611_addin1, kat1611_retbits
+};
+static const struct drbg_kat kat1611 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1611_t
+};
+
+static const unsigned char kat1612_entropyin[] = {
+ 0xd4, 0x24, 0xd8, 0x11, 0x23, 0xb1, 0x45, 0x47, 0x1d, 0x64, 0xac, 0x2d,
+ 0xe5, 0xe4, 0x11, 0xfa,
+};
+static const unsigned char kat1612_nonce[] = {
+ 0x46, 0xbf, 0x21, 0x3d, 0xd4, 0x00, 0x48, 0x67,
+};
+static const unsigned char kat1612_persstr[] = {
+ 0x8a, 0xe3, 0xf0, 0xa1, 0x88, 0xd1, 0xb5, 0xd3, 0x1b, 0xaa, 0xb8, 0xf9,
+ 0x2e, 0x60, 0x40, 0x79,
+};
+static const unsigned char kat1612_entropyinreseed[] = {
+ 0xb3, 0xff, 0x4e, 0x4f, 0x5d, 0xbf, 0x58, 0x66, 0xa8, 0x6a, 0x5a, 0x60,
+ 0x0b, 0x69, 0x12, 0xf9,
+};
+static const unsigned char kat1612_addinreseed[] = {
+ 0xd9, 0xb4, 0x30, 0xa4, 0xee, 0x9b, 0x1c, 0xf7, 0xbf, 0xc7, 0xcc, 0x4a,
+ 0x77, 0xeb, 0xcf, 0xe4,
+};
+static const unsigned char kat1612_addin0[] = {
+ 0xcc, 0x67, 0x05, 0x56, 0xf4, 0xb5, 0x87, 0x1f, 0xf0, 0xbc, 0x15, 0xc7,
+ 0xf5, 0xd9, 0xc1, 0xce,
+};
+static const unsigned char kat1612_addin1[] = {
+ 0xf4, 0x8b, 0x9c, 0x5f, 0xfc, 0xfa, 0x9d, 0xba, 0x23, 0x2d, 0xef, 0x34,
+ 0xcd, 0xfc, 0xe9, 0xf7,
+};
+static const unsigned char kat1612_retbits[] = {
+ 0xa5, 0x2a, 0x74, 0xad, 0x01, 0xc9, 0xfb, 0xef, 0xce, 0x42, 0x46, 0x2b,
+ 0x18, 0x7f, 0xda, 0xba, 0x5b, 0xe7, 0x75, 0xac, 0x96, 0x1d, 0x6d, 0xab,
+ 0xc6, 0x96, 0x98, 0x82, 0x65, 0x67, 0x36, 0x2d, 0xcd, 0xb0, 0xcd, 0x11,
+ 0xbe, 0xb4, 0xd3, 0x8e, 0xe1, 0xbd, 0x79, 0x03, 0xae, 0xcf, 0x1a, 0xfc,
+ 0xb4, 0x2e, 0xe0, 0x27, 0x18, 0xeb, 0xe5, 0x1e, 0xec, 0x8a, 0xfb, 0x4f,
+ 0xf7, 0x8c, 0x07, 0xbd,
+};
+static const struct drbg_kat_pr_false kat1612_t = {
+ 6, kat1612_entropyin, kat1612_nonce, kat1612_persstr,
+ kat1612_entropyinreseed, kat1612_addinreseed, kat1612_addin0,
+ kat1612_addin1, kat1612_retbits
+};
+static const struct drbg_kat kat1612 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1612_t
+};
+
+static const unsigned char kat1613_entropyin[] = {
+ 0x09, 0xe6, 0xc2, 0x3a, 0x82, 0x6e, 0xff, 0xc9, 0xe9, 0x63, 0x10, 0x89,
+ 0xc6, 0xbe, 0xa1, 0x37,
+};
+static const unsigned char kat1613_nonce[] = {
+ 0x2b, 0x70, 0x2f, 0xd9, 0x5a, 0xda, 0x52, 0x19,
+};
+static const unsigned char kat1613_persstr[] = {
+ 0x44, 0x70, 0x0b, 0xd3, 0xd0, 0x49, 0xb6, 0xb6, 0xbb, 0x42, 0x6a, 0x3e,
+ 0xac, 0xd4, 0x1d, 0x64,
+};
+static const unsigned char kat1613_entropyinreseed[] = {
+ 0x63, 0x1c, 0x3c, 0x7d, 0xbc, 0xf9, 0x03, 0x95, 0xd2, 0x2b, 0xe3, 0x58,
+ 0xdd, 0x67, 0x46, 0xe4,
+};
+static const unsigned char kat1613_addinreseed[] = {
+ 0x9f, 0x9f, 0x8e, 0x2a, 0x8b, 0xf3, 0x4b, 0x4f, 0x2c, 0x52, 0xbe, 0xa9,
+ 0xa1, 0xa7, 0x4c, 0x28,
+};
+static const unsigned char kat1613_addin0[] = {
+ 0xc7, 0xa5, 0xe5, 0x4b, 0x97, 0xe0, 0xb5, 0x83, 0xd0, 0xc3, 0x5a, 0xa6,
+ 0x44, 0x4d, 0x25, 0x8d,
+};
+static const unsigned char kat1613_addin1[] = {
+ 0xa9, 0x9a, 0x5e, 0x8a, 0x6e, 0xf0, 0x62, 0xb8, 0xfd, 0xb6, 0x7c, 0x7f,
+ 0x96, 0x87, 0xff, 0xdd,
+};
+static const unsigned char kat1613_retbits[] = {
+ 0x01, 0x1d, 0x23, 0xe5, 0x4e, 0xbe, 0x6a, 0xba, 0x2d, 0x19, 0xd0, 0x8a,
+ 0x48, 0x92, 0x04, 0x82, 0xe2, 0x81, 0x0c, 0x33, 0x63, 0xec, 0x54, 0x71,
+ 0x8f, 0x18, 0x01, 0x86, 0x6e, 0x76, 0x9c, 0x18, 0x02, 0x31, 0x11, 0x3d,
+ 0xaa, 0x31, 0xb2, 0xc1, 0xe7, 0xb1, 0x08, 0x0c, 0x7c, 0xbd, 0x73, 0x05,
+ 0x22, 0xcf, 0xe2, 0x0c, 0x16, 0xde, 0x1f, 0x48, 0xbf, 0xb0, 0xf2, 0x7e,
+ 0xa1, 0xbb, 0x96, 0xf3,
+};
+static const struct drbg_kat_pr_false kat1613_t = {
+ 7, kat1613_entropyin, kat1613_nonce, kat1613_persstr,
+ kat1613_entropyinreseed, kat1613_addinreseed, kat1613_addin0,
+ kat1613_addin1, kat1613_retbits
+};
+static const struct drbg_kat kat1613 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1613_t
+};
+
+static const unsigned char kat1614_entropyin[] = {
+ 0x82, 0x6f, 0xcf, 0x8c, 0xe7, 0x32, 0x58, 0xd0, 0x34, 0x16, 0xc1, 0x19,
+ 0xdd, 0x6f, 0xfb, 0x92,
+};
+static const unsigned char kat1614_nonce[] = {
+ 0x33, 0xa7, 0x66, 0xd8, 0x2e, 0x3b, 0xda, 0xeb,
+};
+static const unsigned char kat1614_persstr[] = {
+ 0xbf, 0xd2, 0xd1, 0xfe, 0xfb, 0x06, 0xf1, 0x5a, 0xe1, 0xc5, 0x15, 0xd3,
+ 0x1f, 0x6d, 0x29, 0x70,
+};
+static const unsigned char kat1614_entropyinreseed[] = {
+ 0x54, 0xa6, 0x17, 0x72, 0xd5, 0x7a, 0x0f, 0x49, 0xcf, 0x71, 0xcc, 0x07,
+ 0xa8, 0x88, 0x52, 0xa2,
+};
+static const unsigned char kat1614_addinreseed[] = {
+ 0x4b, 0x03, 0x82, 0x37, 0x68, 0x27, 0x48, 0xfe, 0x3d, 0xe0, 0x5c, 0x62,
+ 0xd3, 0x46, 0x27, 0xc7,
+};
+static const unsigned char kat1614_addin0[] = {
+ 0x05, 0x61, 0x98, 0xe2, 0xfc, 0x30, 0x18, 0x53, 0x17, 0xab, 0xd3, 0xcb,
+ 0x27, 0x33, 0x7b, 0xaa,
+};
+static const unsigned char kat1614_addin1[] = {
+ 0xfb, 0xb4, 0x85, 0xa9, 0xc3, 0xa8, 0x47, 0x24, 0xe9, 0x69, 0x5e, 0x39,
+ 0x5c, 0x59, 0x5e, 0x50,
+};
+static const unsigned char kat1614_retbits[] = {
+ 0x01, 0x40, 0xd3, 0xd9, 0x2f, 0x1b, 0x41, 0x6a, 0x26, 0x29, 0x35, 0x5d,
+ 0x7a, 0x0b, 0xd6, 0x41, 0xd7, 0x65, 0xb8, 0x0d, 0x94, 0xca, 0xb4, 0x93,
+ 0x9a, 0x7d, 0xf2, 0x53, 0xd5, 0x6f, 0xf4, 0x3f, 0x15, 0x87, 0x9d, 0x1d,
+ 0x48, 0x16, 0x47, 0x2d, 0xe9, 0x3c, 0x62, 0xec, 0x96, 0x3d, 0x43, 0xf9,
+ 0x5e, 0xf4, 0x6c, 0xdd, 0xa3, 0xdd, 0x10, 0xdc, 0x63, 0x5d, 0xe7, 0xef,
+ 0xcd, 0x95, 0xde, 0x26,
+};
+static const struct drbg_kat_pr_false kat1614_t = {
+ 8, kat1614_entropyin, kat1614_nonce, kat1614_persstr,
+ kat1614_entropyinreseed, kat1614_addinreseed, kat1614_addin0,
+ kat1614_addin1, kat1614_retbits
+};
+static const struct drbg_kat kat1614 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1614_t
+};
+
+static const unsigned char kat1615_entropyin[] = {
+ 0x3b, 0x82, 0xcc, 0x6a, 0xc3, 0xcc, 0xbb, 0x15, 0x75, 0xa6, 0x2f, 0x13,
+ 0x13, 0x19, 0xcc, 0xd2,
+};
+static const unsigned char kat1615_nonce[] = {
+ 0x27, 0xbb, 0xa0, 0xa7, 0xae, 0x72, 0xde, 0x41,
+};
+static const unsigned char kat1615_persstr[] = {
+ 0x82, 0x5a, 0x89, 0xb6, 0x3c, 0xb2, 0x18, 0x78, 0xa5, 0x1d, 0x75, 0x06,
+ 0x3b, 0x5c, 0xdb, 0x60,
+};
+static const unsigned char kat1615_entropyinreseed[] = {
+ 0x37, 0xf5, 0xd8, 0x1a, 0x34, 0x83, 0xfa, 0x8b, 0x56, 0x10, 0x2a, 0x09,
+ 0x51, 0xec, 0x16, 0x70,
+};
+static const unsigned char kat1615_addinreseed[] = {
+ 0xd7, 0x86, 0x93, 0xf6, 0x8a, 0xe4, 0xcb, 0xa3, 0x8f, 0x3e, 0x18, 0x88,
+ 0x29, 0x64, 0xa7, 0x55,
+};
+static const unsigned char kat1615_addin0[] = {
+ 0x74, 0xe4, 0xf0, 0x2b, 0x34, 0xc2, 0xbb, 0x5c, 0x11, 0xd2, 0xba, 0xda,
+ 0x96, 0x79, 0xa9, 0x60,
+};
+static const unsigned char kat1615_addin1[] = {
+ 0x90, 0xcd, 0x8f, 0xdc, 0x9e, 0x34, 0x44, 0x55, 0x40, 0xa4, 0xd4, 0xe8,
+ 0xdd, 0x43, 0xd5, 0x0e,
+};
+static const unsigned char kat1615_retbits[] = {
+ 0x29, 0xbf, 0x5c, 0xe9, 0x9f, 0xf2, 0x8a, 0x3c, 0xff, 0xc9, 0x9c, 0xa5,
+ 0xe4, 0xfe, 0x8e, 0x70, 0xb7, 0x38, 0x1f, 0xfa, 0xb6, 0xa6, 0xc6, 0xad,
+ 0x5a, 0xbf, 0x97, 0xe7, 0x3f, 0x1e, 0x4a, 0x9d, 0x3c, 0x74, 0xd5, 0x55,
+ 0xe6, 0x80, 0x85, 0x84, 0xb9, 0x4d, 0xdb, 0x1e, 0xfe, 0x04, 0x8f, 0x27,
+ 0xff, 0x70, 0x60, 0x6c, 0xa8, 0xab, 0x67, 0xc1, 0xd2, 0x62, 0xac, 0x38,
+ 0x08, 0x7c, 0x2d, 0x3c,
+};
+static const struct drbg_kat_pr_false kat1615_t = {
+ 9, kat1615_entropyin, kat1615_nonce, kat1615_persstr,
+ kat1615_entropyinreseed, kat1615_addinreseed, kat1615_addin0,
+ kat1615_addin1, kat1615_retbits
+};
+static const struct drbg_kat kat1615 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1615_t
+};
+
+static const unsigned char kat1616_entropyin[] = {
+ 0x9d, 0x8d, 0x93, 0x16, 0x20, 0xb5, 0xee, 0x39, 0x90, 0x63, 0xa7, 0x8e,
+ 0xea, 0x53, 0x26, 0x90,
+};
+static const unsigned char kat1616_nonce[] = {
+ 0x9c, 0x7a, 0xe6, 0x55, 0xd5, 0xe7, 0x44, 0x46,
+};
+static const unsigned char kat1616_persstr[] = {
+ 0xe8, 0x20, 0x63, 0x20, 0x27, 0xe1, 0x0f, 0xb5, 0xbc, 0xd4, 0x8a, 0xcb,
+ 0x42, 0x28, 0x89, 0x7b,
+};
+static const unsigned char kat1616_entropyinreseed[] = {
+ 0xe3, 0x61, 0x8d, 0xb7, 0x9c, 0x92, 0x39, 0xc8, 0x83, 0x9c, 0xaf, 0xfd,
+ 0x15, 0xea, 0xad, 0x79,
+};
+static const unsigned char kat1616_addinreseed[] = {
+ 0x9f, 0xbd, 0x70, 0xeb, 0x16, 0xbc, 0x44, 0x39, 0xa5, 0x76, 0x59, 0x14,
+ 0x49, 0xa8, 0x20, 0xee,
+};
+static const unsigned char kat1616_addin0[] = {
+ 0x9a, 0xec, 0xcb, 0xdc, 0x45, 0x52, 0x49, 0x72, 0xc2, 0xb8, 0xcb, 0xfc,
+ 0x42, 0xad, 0x00, 0x6b,
+};
+static const unsigned char kat1616_addin1[] = {
+ 0x44, 0x19, 0x9d, 0xd3, 0xe3, 0x97, 0xff, 0x4b, 0xb5, 0x57, 0x4d, 0x5e,
+ 0x1a, 0x86, 0xfc, 0xc0,
+};
+static const unsigned char kat1616_retbits[] = {
+ 0xe1, 0xb7, 0x8f, 0xa3, 0xa4, 0x24, 0x43, 0xc7, 0x89, 0x63, 0x1f, 0x25,
+ 0x00, 0x63, 0x56, 0x16, 0xbd, 0x05, 0xc6, 0x2d, 0xb9, 0x8a, 0x76, 0xfc,
+ 0xe8, 0x4f, 0x63, 0xae, 0xcd, 0x84, 0x2e, 0xe3, 0x3d, 0xd9, 0x63, 0xc5,
+ 0xa4, 0x75, 0xf0, 0xdc, 0x6e, 0x0a, 0x01, 0xe8, 0xe4, 0x41, 0x32, 0x04,
+ 0x50, 0x44, 0xcb, 0x33, 0xef, 0xc0, 0xbb, 0xbf, 0xba, 0x11, 0x6c, 0x07,
+ 0x56, 0xcc, 0x3d, 0xca,
+};
+static const struct drbg_kat_pr_false kat1616_t = {
+ 10, kat1616_entropyin, kat1616_nonce, kat1616_persstr,
+ kat1616_entropyinreseed, kat1616_addinreseed, kat1616_addin0,
+ kat1616_addin1, kat1616_retbits
+};
+static const struct drbg_kat kat1616 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1616_t
+};
+
+static const unsigned char kat1617_entropyin[] = {
+ 0x62, 0xa8, 0x7e, 0x0f, 0xfc, 0x6f, 0x62, 0xea, 0x86, 0x8f, 0x82, 0xfc,
+ 0x4b, 0x49, 0x76, 0xd8,
+};
+static const unsigned char kat1617_nonce[] = {
+ 0x98, 0x26, 0x8b, 0xa7, 0xa9, 0xf8, 0x0a, 0x81,
+};
+static const unsigned char kat1617_persstr[] = {
+ 0x21, 0x25, 0x1e, 0xd8, 0x32, 0xf0, 0x78, 0xc0, 0x57, 0x4e, 0x28, 0x62,
+ 0xe5, 0xd6, 0xe4, 0x58,
+};
+static const unsigned char kat1617_entropyinreseed[] = {
+ 0xe6, 0x3a, 0x86, 0x05, 0x64, 0x75, 0xab, 0x9b, 0x10, 0xf4, 0x6b, 0x07,
+ 0x32, 0xb5, 0x81, 0xd6,
+};
+static const unsigned char kat1617_addinreseed[] = {
+ 0xc0, 0x2a, 0xa5, 0x62, 0x35, 0xea, 0x4a, 0x75, 0x2e, 0xb7, 0xd4, 0xff,
+ 0xb3, 0x4d, 0xde, 0xef,
+};
+static const unsigned char kat1617_addin0[] = {
+ 0x13, 0x44, 0xf9, 0x7a, 0x17, 0xaf, 0xb3, 0xfb, 0xf8, 0x4f, 0x0b, 0xbf,
+ 0xee, 0x49, 0xba, 0x10,
+};
+static const unsigned char kat1617_addin1[] = {
+ 0x30, 0x4f, 0xbd, 0xe8, 0xe0, 0x73, 0x4e, 0x63, 0x71, 0xb5, 0xb8, 0x0b,
+ 0xd2, 0x2d, 0xd4, 0x2e,
+};
+static const unsigned char kat1617_retbits[] = {
+ 0xea, 0xb0, 0xc7, 0x66, 0x14, 0x25, 0x0b, 0xf3, 0xd0, 0xb1, 0x93, 0x7e,
+ 0x8b, 0x56, 0xcd, 0xe6, 0xbd, 0x01, 0xd6, 0x26, 0x44, 0xdc, 0x88, 0x55,
+ 0xf0, 0xd4, 0x44, 0xb1, 0x90, 0xc2, 0x1e, 0xb7, 0x43, 0x03, 0xeb, 0x5c,
+ 0x3b, 0x65, 0x12, 0x59, 0xed, 0x5c, 0x41, 0x50, 0x63, 0x3a, 0x92, 0xf0,
+ 0xeb, 0x52, 0xb9, 0x42, 0x2a, 0x5b, 0xc4, 0xa0, 0x94, 0xfd, 0xb6, 0xd0,
+ 0x74, 0x75, 0x8e, 0xc0,
+};
+static const struct drbg_kat_pr_false kat1617_t = {
+ 11, kat1617_entropyin, kat1617_nonce, kat1617_persstr,
+ kat1617_entropyinreseed, kat1617_addinreseed, kat1617_addin0,
+ kat1617_addin1, kat1617_retbits
+};
+static const struct drbg_kat kat1617 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1617_t
+};
+
+static const unsigned char kat1618_entropyin[] = {
+ 0xdc, 0x54, 0xc3, 0xca, 0xf3, 0x70, 0xe3, 0x8f, 0xc0, 0x70, 0x7b, 0xbc,
+ 0x19, 0x85, 0x1b, 0xe1,
+};
+static const unsigned char kat1618_nonce[] = {
+ 0x9f, 0x39, 0x71, 0x06, 0xf6, 0xe7, 0x09, 0x6b,
+};
+static const unsigned char kat1618_persstr[] = {
+ 0x05, 0xa4, 0x60, 0xe3, 0x68, 0xb5, 0xbe, 0xf6, 0x8d, 0x38, 0x32, 0x25,
+ 0x0a, 0x75, 0xa1, 0x1c,
+};
+static const unsigned char kat1618_entropyinreseed[] = {
+ 0xd8, 0xae, 0x13, 0x47, 0x82, 0xa7, 0xda, 0x3e, 0x01, 0xd8, 0xb4, 0x6d,
+ 0x20, 0x30, 0x7b, 0x57,
+};
+static const unsigned char kat1618_addinreseed[] = {
+ 0x11, 0xbf, 0x57, 0xa2, 0xca, 0xb8, 0x66, 0x51, 0x0f, 0x7a, 0xb7, 0x24,
+ 0xc7, 0x43, 0xc7, 0xd7,
+};
+static const unsigned char kat1618_addin0[] = {
+ 0x00, 0xd7, 0x5e, 0x2b, 0x56, 0xb9, 0xcd, 0x45, 0xf1, 0xfb, 0x04, 0xe2,
+ 0xd3, 0x9d, 0xca, 0x0b,
+};
+static const unsigned char kat1618_addin1[] = {
+ 0x57, 0x17, 0xb7, 0x01, 0xb9, 0x69, 0xad, 0x32, 0x52, 0xd9, 0x7f, 0x5f,
+ 0x2f, 0x89, 0x20, 0x99,
+};
+static const unsigned char kat1618_retbits[] = {
+ 0x22, 0x11, 0xb8, 0xf7, 0xdd, 0x5c, 0xca, 0xd5, 0x20, 0x4c, 0xa9, 0x83,
+ 0x13, 0x1a, 0xa2, 0x15, 0x36, 0x4d, 0xae, 0xed, 0x60, 0x83, 0xf2, 0x42,
+ 0x14, 0x1a, 0x54, 0xdf, 0x64, 0xf6, 0xba, 0x95, 0x97, 0x76, 0x9d, 0xbf,
+ 0xc5, 0x43, 0x9c, 0x2a, 0xc2, 0x2a, 0x10, 0x61, 0xee, 0x12, 0x63, 0x1b,
+ 0x23, 0xdc, 0x26, 0x5e, 0x64, 0xde, 0xcf, 0xae, 0x4d, 0x7e, 0x53, 0x1f,
+ 0x04, 0xea, 0x01, 0x66,
+};
+static const struct drbg_kat_pr_false kat1618_t = {
+ 12, kat1618_entropyin, kat1618_nonce, kat1618_persstr,
+ kat1618_entropyinreseed, kat1618_addinreseed, kat1618_addin0,
+ kat1618_addin1, kat1618_retbits
+};
+static const struct drbg_kat kat1618 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1618_t
+};
+
+static const unsigned char kat1619_entropyin[] = {
+ 0xf5, 0x13, 0x72, 0x2a, 0x1f, 0xab, 0x9c, 0x61, 0xaa, 0xa3, 0xfc, 0x99,
+ 0x51, 0x30, 0xa3, 0x0c,
+};
+static const unsigned char kat1619_nonce[] = {
+ 0xb3, 0x9d, 0x9c, 0x89, 0x5e, 0x74, 0x06, 0x43,
+};
+static const unsigned char kat1619_persstr[] = {
+ 0x2e, 0xb5, 0x58, 0xba, 0x9e, 0xf0, 0x93, 0x60, 0xba, 0xdb, 0xc5, 0x0a,
+ 0xdf, 0xe9, 0x89, 0xe7,
+};
+static const unsigned char kat1619_entropyinreseed[] = {
+ 0x0d, 0x39, 0x8b, 0xc9, 0x73, 0x16, 0x15, 0x3c, 0x2a, 0xee, 0x28, 0x0a,
+ 0xb9, 0x0f, 0xa6, 0xf2,
+};
+static const unsigned char kat1619_addinreseed[] = {
+ 0xc5, 0xf0, 0x38, 0xa4, 0x36, 0x3e, 0xc1, 0x59, 0x5e, 0x56, 0xc5, 0x2d,
+ 0x12, 0xed, 0x4a, 0x7f,
+};
+static const unsigned char kat1619_addin0[] = {
+ 0xb9, 0x83, 0xc3, 0x08, 0x62, 0xb0, 0x76, 0x1c, 0x60, 0x1b, 0x19, 0xb0,
+ 0x10, 0xa7, 0xc3, 0x6b,
+};
+static const unsigned char kat1619_addin1[] = {
+ 0xa5, 0x13, 0x92, 0x0a, 0x6c, 0x6c, 0xd4, 0x0e, 0xc4, 0x6e, 0xd0, 0x77,
+ 0xab, 0xd0, 0xbb, 0x4c,
+};
+static const unsigned char kat1619_retbits[] = {
+ 0x84, 0x68, 0x9e, 0xe8, 0x47, 0xb4, 0xae, 0x30, 0x1c, 0x36, 0x94, 0xb0,
+ 0x74, 0x63, 0x31, 0xe9, 0x07, 0xea, 0xf6, 0x0f, 0x8c, 0xdd, 0xf0, 0x89,
+ 0x95, 0x9b, 0xe7, 0xc9, 0x05, 0x72, 0xc3, 0xbf, 0x63, 0xec, 0x70, 0xd1,
+ 0x81, 0x24, 0xad, 0xad, 0x1f, 0xff, 0xbd, 0x0f, 0x00, 0xb6, 0x46, 0x99,
+ 0x8a, 0xc1, 0xe8, 0x64, 0x9a, 0x76, 0x9d, 0xc4, 0x50, 0x62, 0xb9, 0x74,
+ 0x1b, 0xd6, 0x86, 0x15,
+};
+static const struct drbg_kat_pr_false kat1619_t = {
+ 13, kat1619_entropyin, kat1619_nonce, kat1619_persstr,
+ kat1619_entropyinreseed, kat1619_addinreseed, kat1619_addin0,
+ kat1619_addin1, kat1619_retbits
+};
+static const struct drbg_kat kat1619 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1619_t
+};
+
+static const unsigned char kat1620_entropyin[] = {
+ 0x83, 0x5e, 0xe6, 0xc4, 0x44, 0xf5, 0xd7, 0x14, 0xa5, 0x2f, 0xc8, 0x2a,
+ 0xb2, 0x7a, 0x37, 0x19,
+};
+static const unsigned char kat1620_nonce[] = {
+ 0xca, 0x12, 0x68, 0xda, 0x49, 0xf4, 0xf5, 0xf9,
+};
+static const unsigned char kat1620_persstr[] = {
+ 0x09, 0x04, 0xaa, 0x87, 0xa1, 0xca, 0x57, 0xa2, 0x27, 0x41, 0xf8, 0x6b,
+ 0x5e, 0x7d, 0xb4, 0x0f,
+};
+static const unsigned char kat1620_entropyinreseed[] = {
+ 0x33, 0xe8, 0xcf, 0x06, 0x47, 0x91, 0x59, 0x1c, 0xe4, 0xf3, 0x17, 0xb2,
+ 0xff, 0xbe, 0x34, 0xdd,
+};
+static const unsigned char kat1620_addinreseed[] = {
+ 0x06, 0xa0, 0x62, 0xb0, 0x0e, 0xc4, 0xf9, 0x5f, 0xa4, 0x28, 0x4d, 0xd7,
+ 0xbb, 0x34, 0x41, 0xaa,
+};
+static const unsigned char kat1620_addin0[] = {
+ 0xd4, 0x43, 0x4a, 0x19, 0xa8, 0xbf, 0xad, 0x8d, 0xd1, 0xc7, 0xa4, 0xd3,
+ 0x0d, 0x0c, 0x51, 0x1d,
+};
+static const unsigned char kat1620_addin1[] = {
+ 0xe6, 0xc5, 0xe3, 0xc6, 0x12, 0x0b, 0x14, 0x53, 0x5f, 0x14, 0x9c, 0x6d,
+ 0x4d, 0x52, 0x3a, 0x0c,
+};
+static const unsigned char kat1620_retbits[] = {
+ 0x94, 0x95, 0x22, 0xac, 0xa9, 0xd3, 0x5e, 0x73, 0xb2, 0x84, 0x48, 0xd4,
+ 0x22, 0x7e, 0xfc, 0xa8, 0xb2, 0x1c, 0xf0, 0x3e, 0xa0, 0x5e, 0x64, 0x83,
+ 0xdd, 0x77, 0x7a, 0xf1, 0xe4, 0x51, 0xd2, 0xb9, 0x8b, 0x6f, 0x61, 0xee,
+ 0xf5, 0x86, 0x22, 0x3a, 0x21, 0x2c, 0xf0, 0xe4, 0xad, 0xb5, 0x1c, 0x92,
+ 0xbc, 0xb6, 0x13, 0x68, 0xdc, 0x71, 0x1f, 0x3e, 0xf0, 0x9f, 0xe7, 0x56,
+ 0x66, 0x0f, 0xf2, 0xd9,
+};
+static const struct drbg_kat_pr_false kat1620_t = {
+ 14, kat1620_entropyin, kat1620_nonce, kat1620_persstr,
+ kat1620_entropyinreseed, kat1620_addinreseed, kat1620_addin0,
+ kat1620_addin1, kat1620_retbits
+};
+static const struct drbg_kat kat1620 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1620_t
+};
+
+static const unsigned char kat1621_entropyin[] = {
+ 0xb2, 0x5e, 0x5c, 0x41, 0x1c, 0x47, 0xc6, 0x87, 0x11, 0xf6, 0x2a, 0x1c,
+ 0x95, 0xc6, 0x09, 0x4d,
+};
+static const unsigned char kat1621_nonce[] = {
+ 0xf4, 0x9d, 0xca, 0x3c, 0x2c, 0xd3, 0x16, 0x43,
+};
+static const unsigned char kat1621_persstr[] = {0};
+static const unsigned char kat1621_entropyinreseed[] = {
+ 0x84, 0x80, 0x69, 0x41, 0x37, 0x80, 0x19, 0xab, 0x90, 0xb1, 0xe8, 0x45,
+ 0xf1, 0xb4, 0xaf, 0xa9,
+};
+static const unsigned char kat1621_addinreseed[] = {0};
+static const unsigned char kat1621_addin0[] = {0};
+static const unsigned char kat1621_addin1[] = {0};
+static const unsigned char kat1621_retbits[] = {
+ 0x25, 0xe5, 0x48, 0x21, 0x8a, 0x2d, 0x85, 0x1d, 0x59, 0x6b, 0x02, 0xed,
+ 0x1c, 0x18, 0xac, 0xea, 0x5c, 0x5a, 0xbb, 0xf4, 0x38, 0xfb, 0x83, 0x8e,
+ 0xf4, 0x76, 0x2f, 0x73, 0x6e, 0xb8, 0x9f, 0xc8, 0x70, 0x68, 0xe1, 0x45,
+ 0x5c, 0x6a, 0xc3, 0x2d, 0x16, 0x2d, 0xc3, 0x2e, 0x54, 0x3c, 0xf5, 0xdf,
+ 0xf0, 0x9b, 0x9d, 0x3a, 0x19, 0xd7, 0x3b, 0x0d, 0xd2, 0x5c, 0x4e, 0x3f,
+ 0xbd, 0x0b, 0x93, 0x09,
+};
+static const struct drbg_kat_pr_false kat1621_t = {
+ 0, kat1621_entropyin, kat1621_nonce, kat1621_persstr,
+ kat1621_entropyinreseed, kat1621_addinreseed, kat1621_addin0,
+ kat1621_addin1, kat1621_retbits
+};
+static const struct drbg_kat kat1621 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1621_t
+};
+
+static const unsigned char kat1622_entropyin[] = {
+ 0x2d, 0x8a, 0xf5, 0x66, 0xa2, 0x07, 0x09, 0x5f, 0x36, 0x7c, 0xc2, 0xfd,
+ 0x6b, 0x55, 0x3f, 0x09,
+};
+static const unsigned char kat1622_nonce[] = {
+ 0xcf, 0x04, 0x3e, 0x8a, 0xc5, 0x6a, 0xf0, 0x56,
+};
+static const unsigned char kat1622_persstr[] = {0};
+static const unsigned char kat1622_entropyinreseed[] = {
+ 0x66, 0x7a, 0xb3, 0xc3, 0x12, 0xfe, 0x19, 0x62, 0xde, 0x00, 0xde, 0x64,
+ 0x71, 0x73, 0x58, 0x13,
+};
+static const unsigned char kat1622_addinreseed[] = {0};
+static const unsigned char kat1622_addin0[] = {0};
+static const unsigned char kat1622_addin1[] = {0};
+static const unsigned char kat1622_retbits[] = {
+ 0xa9, 0x9d, 0x65, 0xd5, 0x2e, 0xb2, 0xa0, 0xbb, 0x62, 0x15, 0x11, 0x87,
+ 0x51, 0xfc, 0x3f, 0xcd, 0x3e, 0x59, 0x51, 0xfa, 0x17, 0x01, 0xbc, 0x1d,
+ 0x58, 0x33, 0x8a, 0x14, 0x81, 0x19, 0x91, 0xfe, 0x43, 0x17, 0x5c, 0x4f,
+ 0x7d, 0x8e, 0xd4, 0x9d, 0xc6, 0xbe, 0xa2, 0x28, 0x14, 0x70, 0x1e, 0x89,
+ 0x59, 0x39, 0x57, 0xe5, 0x54, 0x37, 0x33, 0xf9, 0xa5, 0xd7, 0x61, 0xeb,
+ 0xed, 0x5d, 0xf0, 0xaa,
+};
+static const struct drbg_kat_pr_false kat1622_t = {
+ 1, kat1622_entropyin, kat1622_nonce, kat1622_persstr,
+ kat1622_entropyinreseed, kat1622_addinreseed, kat1622_addin0,
+ kat1622_addin1, kat1622_retbits
+};
+static const struct drbg_kat kat1622 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1622_t
+};
+
+static const unsigned char kat1623_entropyin[] = {
+ 0xd2, 0x7e, 0x9d, 0xc5, 0x0d, 0x02, 0xc1, 0x5c, 0x94, 0xfb, 0x4c, 0x89,
+ 0xf0, 0xb6, 0x3f, 0x3b,
+};
+static const unsigned char kat1623_nonce[] = {
+ 0x03, 0x70, 0x86, 0x37, 0xe5, 0x2d, 0xbc, 0x43,
+};
+static const unsigned char kat1623_persstr[] = {0};
+static const unsigned char kat1623_entropyinreseed[] = {
+ 0x29, 0xfe, 0x20, 0x3f, 0x73, 0xd1, 0xec, 0x9d, 0x8b, 0x2d, 0xb8, 0x43,
+ 0xcf, 0x24, 0x93, 0x5c,
+};
+static const unsigned char kat1623_addinreseed[] = {0};
+static const unsigned char kat1623_addin0[] = {0};
+static const unsigned char kat1623_addin1[] = {0};
+static const unsigned char kat1623_retbits[] = {
+ 0x6d, 0x05, 0x86, 0xb9, 0xbb, 0xf7, 0x84, 0x77, 0xd1, 0x76, 0x3a, 0x6b,
+ 0x13, 0x94, 0x6d, 0xd7, 0xff, 0x3b, 0x64, 0xe1, 0xa0, 0x81, 0x26, 0x53,
+ 0x27, 0x3b, 0x1b, 0x89, 0x24, 0xa6, 0x10, 0x37, 0xcc, 0x82, 0x47, 0x19,
+ 0xfa, 0x7a, 0x68, 0x82, 0x0d, 0x6b, 0xeb, 0xf9, 0xea, 0xd1, 0x6b, 0xd8,
+ 0xe9, 0xb1, 0x68, 0xef, 0x94, 0xfc, 0x0e, 0x8c, 0x10, 0xc7, 0xbd, 0x8e,
+ 0xee, 0xc0, 0x5e, 0x9e,
+};
+static const struct drbg_kat_pr_false kat1623_t = {
+ 2, kat1623_entropyin, kat1623_nonce, kat1623_persstr,
+ kat1623_entropyinreseed, kat1623_addinreseed, kat1623_addin0,
+ kat1623_addin1, kat1623_retbits
+};
+static const struct drbg_kat kat1623 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1623_t
+};
+
+static const unsigned char kat1624_entropyin[] = {
+ 0x9d, 0x35, 0xf5, 0xde, 0xe9, 0xdf, 0xea, 0x54, 0x3f, 0x12, 0x5e, 0x43,
+ 0x8b, 0x9d, 0x80, 0x85,
+};
+static const unsigned char kat1624_nonce[] = {
+ 0xa0, 0x71, 0xd5, 0xcc, 0x08, 0x16, 0xf7, 0x70,
+};
+static const unsigned char kat1624_persstr[] = {0};
+static const unsigned char kat1624_entropyinreseed[] = {
+ 0x72, 0x0e, 0xa8, 0x84, 0xc2, 0x53, 0xef, 0x23, 0x50, 0xc2, 0xb7, 0x37,
+ 0x57, 0xa7, 0xe5, 0x89,
+};
+static const unsigned char kat1624_addinreseed[] = {0};
+static const unsigned char kat1624_addin0[] = {0};
+static const unsigned char kat1624_addin1[] = {0};
+static const unsigned char kat1624_retbits[] = {
+ 0x4d, 0x57, 0x1f, 0xec, 0x7a, 0xc3, 0x22, 0xd1, 0xe0, 0xda, 0x52, 0x57,
+ 0x13, 0x42, 0xd9, 0x75, 0x25, 0xf2, 0xa5, 0xdd, 0x06, 0x3b, 0xeb, 0x0d,
+ 0xbb, 0xa8, 0xf1, 0x59, 0x2c, 0xa3, 0x26, 0x3f, 0x46, 0x59, 0x6f, 0xbe,
+ 0x15, 0xbb, 0x21, 0x87, 0xb4, 0x23, 0x4e, 0x1d, 0x24, 0x9c, 0xab, 0x0b,
+ 0xd1, 0x8a, 0x70, 0x24, 0xac, 0xaa, 0x60, 0x25, 0x56, 0x56, 0x99, 0xec,
+ 0x88, 0xca, 0xef, 0xca,
+};
+static const struct drbg_kat_pr_false kat1624_t = {
+ 3, kat1624_entropyin, kat1624_nonce, kat1624_persstr,
+ kat1624_entropyinreseed, kat1624_addinreseed, kat1624_addin0,
+ kat1624_addin1, kat1624_retbits
+};
+static const struct drbg_kat kat1624 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1624_t
+};
+
+static const unsigned char kat1625_entropyin[] = {
+ 0x4f, 0x17, 0x02, 0xfe, 0x2a, 0x6a, 0x2f, 0xeb, 0xfb, 0xcc, 0x28, 0xa4,
+ 0xa3, 0xcc, 0xa8, 0x95,
+};
+static const unsigned char kat1625_nonce[] = {
+ 0xa8, 0x60, 0x2c, 0x83, 0x29, 0xe5, 0xed, 0x59,
+};
+static const unsigned char kat1625_persstr[] = {0};
+static const unsigned char kat1625_entropyinreseed[] = {
+ 0x7e, 0xac, 0x91, 0x89, 0xd1, 0x72, 0x3e, 0xcd, 0xdc, 0x4d, 0x4c, 0x9b,
+ 0x7d, 0xa7, 0x51, 0x25,
+};
+static const unsigned char kat1625_addinreseed[] = {0};
+static const unsigned char kat1625_addin0[] = {0};
+static const unsigned char kat1625_addin1[] = {0};
+static const unsigned char kat1625_retbits[] = {
+ 0x17, 0x9a, 0xc5, 0x06, 0x5c, 0x44, 0x6b, 0xb0, 0x21, 0x3a, 0x0f, 0x7a,
+ 0x65, 0xea, 0x72, 0x87, 0xf0, 0x32, 0x21, 0xaa, 0x0a, 0x53, 0xe3, 0x83,
+ 0x8c, 0xeb, 0xf1, 0x09, 0xa0, 0x21, 0xb5, 0x20, 0xa3, 0x66, 0x39, 0x1f,
+ 0xf6, 0x7e, 0xa7, 0x80, 0x6b, 0x42, 0xd6, 0xfb, 0xe3, 0x29, 0xaa, 0x4c,
+ 0x7e, 0x47, 0x32, 0xd1, 0x6e, 0x32, 0x4a, 0xbe, 0xce, 0x03, 0x34, 0xf9,
+ 0x95, 0x0f, 0x59, 0xc7,
+};
+static const struct drbg_kat_pr_false kat1625_t = {
+ 4, kat1625_entropyin, kat1625_nonce, kat1625_persstr,
+ kat1625_entropyinreseed, kat1625_addinreseed, kat1625_addin0,
+ kat1625_addin1, kat1625_retbits
+};
+static const struct drbg_kat kat1625 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1625_t
+};
+
+static const unsigned char kat1626_entropyin[] = {
+ 0x5d, 0xf0, 0x1e, 0x87, 0xe1, 0x1d, 0xd2, 0x27, 0x12, 0x78, 0x20, 0xdc,
+ 0x1d, 0x28, 0x6c, 0xbe,
+};
+static const unsigned char kat1626_nonce[] = {
+ 0x7f, 0xd3, 0xc3, 0xb3, 0x9a, 0xa9, 0x10, 0xd4,
+};
+static const unsigned char kat1626_persstr[] = {0};
+static const unsigned char kat1626_entropyinreseed[] = {
+ 0x11, 0x4e, 0xc0, 0x94, 0x30, 0xb7, 0xc0, 0xf4, 0x3e, 0x41, 0xb6, 0x54,
+ 0x61, 0xc2, 0x8b, 0xaf,
+};
+static const unsigned char kat1626_addinreseed[] = {0};
+static const unsigned char kat1626_addin0[] = {0};
+static const unsigned char kat1626_addin1[] = {0};
+static const unsigned char kat1626_retbits[] = {
+ 0x9b, 0xd4, 0x58, 0x79, 0xf0, 0xf0, 0xb9, 0xfa, 0xac, 0xd7, 0xc6, 0x47,
+ 0x43, 0xfd, 0xa1, 0xd0, 0x03, 0x74, 0x42, 0xc3, 0xc5, 0xc5, 0x81, 0xba,
+ 0xe0, 0x0a, 0x4f, 0xec, 0x9a, 0xd6, 0xa1, 0x17, 0x5a, 0x15, 0xfd, 0xbb,
+ 0xa5, 0x6e, 0x62, 0x37, 0x39, 0x92, 0x81, 0xf6, 0x87, 0x02, 0x2e, 0x4a,
+ 0x1c, 0xa0, 0xb4, 0x53, 0x20, 0xae, 0xd2, 0x68, 0xe6, 0x11, 0x1d, 0x92,
+ 0x60, 0x9a, 0x1b, 0x40,
+};
+static const struct drbg_kat_pr_false kat1626_t = {
+ 5, kat1626_entropyin, kat1626_nonce, kat1626_persstr,
+ kat1626_entropyinreseed, kat1626_addinreseed, kat1626_addin0,
+ kat1626_addin1, kat1626_retbits
+};
+static const struct drbg_kat kat1626 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1626_t
+};
+
+static const unsigned char kat1627_entropyin[] = {
+ 0x60, 0xbf, 0x7d, 0x60, 0x9d, 0x78, 0x10, 0xb0, 0xd4, 0x86, 0xad, 0x95,
+ 0x32, 0x1c, 0x3b, 0x76,
+};
+static const unsigned char kat1627_nonce[] = {
+ 0xab, 0x8b, 0x81, 0x29, 0xc5, 0xb9, 0x99, 0xff,
+};
+static const unsigned char kat1627_persstr[] = {0};
+static const unsigned char kat1627_entropyinreseed[] = {
+ 0xca, 0xed, 0x65, 0x4d, 0xd8, 0x79, 0x03, 0xa7, 0x84, 0x79, 0x8f, 0x70,
+ 0xae, 0xa3, 0xd5, 0xc7,
+};
+static const unsigned char kat1627_addinreseed[] = {0};
+static const unsigned char kat1627_addin0[] = {0};
+static const unsigned char kat1627_addin1[] = {0};
+static const unsigned char kat1627_retbits[] = {
+ 0xa4, 0x42, 0x50, 0x7d, 0xc8, 0xe2, 0x3b, 0x83, 0xb9, 0x51, 0xaf, 0x0f,
+ 0x25, 0xc2, 0x07, 0xb7, 0x31, 0x48, 0xf4, 0x80, 0x0d, 0x45, 0xf3, 0x94,
+ 0x8a, 0x08, 0x8f, 0xf3, 0xd9, 0x61, 0xd2, 0x1d, 0x93, 0x75, 0x55, 0x80,
+ 0x56, 0xcd, 0xea, 0x12, 0x28, 0xf2, 0xe9, 0x3f, 0xcd, 0xe8, 0xc3, 0xa4,
+ 0xce, 0x8c, 0x8d, 0x7f, 0x98, 0x02, 0x8c, 0x8d, 0xcb, 0x1b, 0x38, 0xe7,
+ 0x95, 0xeb, 0xd4, 0x95,
+};
+static const struct drbg_kat_pr_false kat1627_t = {
+ 6, kat1627_entropyin, kat1627_nonce, kat1627_persstr,
+ kat1627_entropyinreseed, kat1627_addinreseed, kat1627_addin0,
+ kat1627_addin1, kat1627_retbits
+};
+static const struct drbg_kat kat1627 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1627_t
+};
+
+static const unsigned char kat1628_entropyin[] = {
+ 0x33, 0x83, 0x45, 0x50, 0xdb, 0xb5, 0x8b, 0x77, 0xf6, 0xa1, 0x1c, 0x50,
+ 0x43, 0xda, 0x2c, 0x35,
+};
+static const unsigned char kat1628_nonce[] = {
+ 0x0b, 0x31, 0x57, 0x24, 0xf1, 0xd7, 0xd8, 0x8c,
+};
+static const unsigned char kat1628_persstr[] = {0};
+static const unsigned char kat1628_entropyinreseed[] = {
+ 0xe2, 0xb0, 0x7a, 0x29, 0x0f, 0x04, 0x79, 0x61, 0xeb, 0x10, 0xc2, 0x6e,
+ 0x58, 0xfe, 0x32, 0xd3,
+};
+static const unsigned char kat1628_addinreseed[] = {0};
+static const unsigned char kat1628_addin0[] = {0};
+static const unsigned char kat1628_addin1[] = {0};
+static const unsigned char kat1628_retbits[] = {
+ 0x28, 0xe7, 0x0d, 0x99, 0xb3, 0xef, 0xd0, 0xd9, 0xee, 0xc9, 0x3f, 0xc5,
+ 0x33, 0xe3, 0x35, 0xe5, 0x68, 0xee, 0xd5, 0x7c, 0x21, 0xd7, 0xfe, 0xd9,
+ 0x20, 0xe5, 0x54, 0x46, 0x67, 0xcf, 0xe1, 0x3f, 0xbc, 0x06, 0x3d, 0xd8,
+ 0x18, 0xf3, 0x1c, 0xc8, 0x31, 0x27, 0xb6, 0x39, 0x45, 0x8f, 0x66, 0x0f,
+ 0x74, 0x81, 0x66, 0x3a, 0xdc, 0x3b, 0xb1, 0xfd, 0xf9, 0x18, 0x7f, 0xef,
+ 0x0a, 0x7a, 0x9d, 0xf0,
+};
+static const struct drbg_kat_pr_false kat1628_t = {
+ 7, kat1628_entropyin, kat1628_nonce, kat1628_persstr,
+ kat1628_entropyinreseed, kat1628_addinreseed, kat1628_addin0,
+ kat1628_addin1, kat1628_retbits
+};
+static const struct drbg_kat kat1628 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1628_t
+};
+
+static const unsigned char kat1629_entropyin[] = {
+ 0x3e, 0xd5, 0x95, 0x77, 0xbc, 0xd9, 0xa0, 0x4f, 0x0d, 0x87, 0xf0, 0x97,
+ 0xb0, 0x6a, 0xad, 0x2c,
+};
+static const unsigned char kat1629_nonce[] = {
+ 0x6a, 0xcc, 0x6c, 0xf7, 0x18, 0x5b, 0xa0, 0xb5,
+};
+static const unsigned char kat1629_persstr[] = {0};
+static const unsigned char kat1629_entropyinreseed[] = {
+ 0x90, 0xd0, 0x4f, 0x84, 0x01, 0x72, 0xe5, 0xf5, 0xcc, 0xb3, 0x4a, 0x11,
+ 0x3e, 0xc7, 0xfe, 0x9a,
+};
+static const unsigned char kat1629_addinreseed[] = {0};
+static const unsigned char kat1629_addin0[] = {0};
+static const unsigned char kat1629_addin1[] = {0};
+static const unsigned char kat1629_retbits[] = {
+ 0xe3, 0xb8, 0x76, 0x80, 0x23, 0x87, 0x5d, 0xf8, 0x1b, 0x9f, 0xca, 0xa4,
+ 0xdd, 0x55, 0xed, 0x53, 0x3e, 0xa8, 0xc0, 0x5b, 0x57, 0xf0, 0x2c, 0x2b,
+ 0xea, 0xd3, 0x27, 0x83, 0x0d, 0xe5, 0x29, 0x31, 0x76, 0x52, 0x3a, 0xea,
+ 0x97, 0x4b, 0xff, 0x83, 0x52, 0xa7, 0x84, 0x32, 0x1f, 0xe3, 0x08, 0xe1,
+ 0xb2, 0x89, 0x7b, 0x47, 0x07, 0x8d, 0x25, 0xc2, 0x4f, 0xb8, 0xa1, 0x71,
+ 0x63, 0x9d, 0x27, 0x6f,
+};
+static const struct drbg_kat_pr_false kat1629_t = {
+ 8, kat1629_entropyin, kat1629_nonce, kat1629_persstr,
+ kat1629_entropyinreseed, kat1629_addinreseed, kat1629_addin0,
+ kat1629_addin1, kat1629_retbits
+};
+static const struct drbg_kat kat1629 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1629_t
+};
+
+static const unsigned char kat1630_entropyin[] = {
+ 0xd1, 0x17, 0x76, 0x26, 0xcc, 0x06, 0x76, 0x73, 0x7d, 0x87, 0x92, 0x99,
+ 0xd0, 0x1a, 0x5a, 0x24,
+};
+static const unsigned char kat1630_nonce[] = {
+ 0xef, 0x9e, 0xfb, 0x3a, 0x6e, 0xd4, 0x84, 0x8a,
+};
+static const unsigned char kat1630_persstr[] = {0};
+static const unsigned char kat1630_entropyinreseed[] = {
+ 0x19, 0xbe, 0xeb, 0x41, 0xb5, 0x96, 0x9d, 0xf1, 0xab, 0xa6, 0x5d, 0xe8,
+ 0x54, 0x74, 0xf6, 0xc8,
+};
+static const unsigned char kat1630_addinreseed[] = {0};
+static const unsigned char kat1630_addin0[] = {0};
+static const unsigned char kat1630_addin1[] = {0};
+static const unsigned char kat1630_retbits[] = {
+ 0xee, 0xfa, 0x3b, 0x05, 0xf8, 0x74, 0x2c, 0x2c, 0x31, 0xf7, 0x2f, 0x36,
+ 0x2a, 0xc9, 0x4e, 0x9c, 0x25, 0x4d, 0x39, 0x8c, 0x2c, 0x7b, 0x43, 0x15,
+ 0xb6, 0x06, 0x0e, 0x73, 0x3c, 0x80, 0x1f, 0xb9, 0x56, 0xff, 0x06, 0x48,
+ 0xfa, 0x87, 0x33, 0x8d, 0x5f, 0xeb, 0x1e, 0x33, 0x04, 0xfa, 0xbe, 0xc5,
+ 0x29, 0xa3, 0x37, 0xe2, 0x94, 0x62, 0xd3, 0x6c, 0x02, 0xa2, 0x75, 0x7d,
+ 0x0b, 0x31, 0xd4, 0xc6,
+};
+static const struct drbg_kat_pr_false kat1630_t = {
+ 9, kat1630_entropyin, kat1630_nonce, kat1630_persstr,
+ kat1630_entropyinreseed, kat1630_addinreseed, kat1630_addin0,
+ kat1630_addin1, kat1630_retbits
+};
+static const struct drbg_kat kat1630 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1630_t
+};
+
+static const unsigned char kat1631_entropyin[] = {
+ 0x92, 0x87, 0xcc, 0x2b, 0xb1, 0xfe, 0xe8, 0x2a, 0x6d, 0x74, 0xcc, 0xb8,
+ 0x53, 0x49, 0xc7, 0x5d,
+};
+static const unsigned char kat1631_nonce[] = {
+ 0x22, 0x2d, 0x7a, 0x6f, 0xe2, 0xc1, 0x6c, 0x1f,
+};
+static const unsigned char kat1631_persstr[] = {0};
+static const unsigned char kat1631_entropyinreseed[] = {
+ 0xf5, 0xf6, 0x01, 0xce, 0xbc, 0x5a, 0x7f, 0xb7, 0x3f, 0x14, 0xed, 0x29,
+ 0x08, 0x01, 0x6c, 0x7d,
+};
+static const unsigned char kat1631_addinreseed[] = {0};
+static const unsigned char kat1631_addin0[] = {0};
+static const unsigned char kat1631_addin1[] = {0};
+static const unsigned char kat1631_retbits[] = {
+ 0xc5, 0x40, 0x51, 0xb9, 0xdb, 0xb9, 0x8b, 0x81, 0x2d, 0xcc, 0x41, 0x7b,
+ 0x67, 0x15, 0x26, 0x7a, 0x11, 0x72, 0x09, 0xd4, 0x73, 0x58, 0x77, 0xb4,
+ 0x9e, 0x68, 0xe9, 0x6f, 0x4f, 0xa7, 0x16, 0x7d, 0x6e, 0x13, 0x82, 0x69,
+ 0x17, 0x6f, 0xbb, 0x4d, 0x5e, 0xbe, 0x53, 0x28, 0x6d, 0xd0, 0xc0, 0xc3,
+ 0xbc, 0x6b, 0x7f, 0xc6, 0xd7, 0x42, 0x64, 0x45, 0x8a, 0x61, 0xcb, 0x67,
+ 0x41, 0x8b, 0xe4, 0xb1,
+};
+static const struct drbg_kat_pr_false kat1631_t = {
+ 10, kat1631_entropyin, kat1631_nonce, kat1631_persstr,
+ kat1631_entropyinreseed, kat1631_addinreseed, kat1631_addin0,
+ kat1631_addin1, kat1631_retbits
+};
+static const struct drbg_kat kat1631 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1631_t
+};
+
+static const unsigned char kat1632_entropyin[] = {
+ 0xd8, 0xbe, 0xea, 0x04, 0xe4, 0x55, 0xb1, 0x5c, 0x26, 0x87, 0x02, 0xc7,
+ 0x87, 0xa5, 0x46, 0xbb,
+};
+static const unsigned char kat1632_nonce[] = {
+ 0xd3, 0x3f, 0x60, 0x34, 0x33, 0xf0, 0x97, 0xc4,
+};
+static const unsigned char kat1632_persstr[] = {0};
+static const unsigned char kat1632_entropyinreseed[] = {
+ 0x3d, 0x0e, 0x20, 0x90, 0xdc, 0xab, 0xf5, 0x21, 0x16, 0x09, 0x62, 0xe5,
+ 0xee, 0x91, 0x21, 0x32,
+};
+static const unsigned char kat1632_addinreseed[] = {0};
+static const unsigned char kat1632_addin0[] = {0};
+static const unsigned char kat1632_addin1[] = {0};
+static const unsigned char kat1632_retbits[] = {
+ 0x4e, 0xda, 0xaf, 0x5f, 0x46, 0x83, 0x82, 0xca, 0x0a, 0x8c, 0x9b, 0x51,
+ 0x17, 0x4d, 0x97, 0xc1, 0x06, 0xa2, 0xed, 0x2e, 0xc6, 0x36, 0xe9, 0xb4,
+ 0xd2, 0x9c, 0x25, 0x99, 0xc0, 0xe0, 0xd6, 0x80, 0xaa, 0xf7, 0xbd, 0xa1,
+ 0x5b, 0x26, 0x7f, 0x8f, 0x16, 0x18, 0x24, 0xa0, 0x1c, 0xc6, 0x0d, 0x41,
+ 0x8a, 0x8f, 0x13, 0xe7, 0xcd, 0xe3, 0x1f, 0xbd, 0x2a, 0x85, 0x27, 0x2c,
+ 0xb5, 0x57, 0x76, 0x79,
+};
+static const struct drbg_kat_pr_false kat1632_t = {
+ 11, kat1632_entropyin, kat1632_nonce, kat1632_persstr,
+ kat1632_entropyinreseed, kat1632_addinreseed, kat1632_addin0,
+ kat1632_addin1, kat1632_retbits
+};
+static const struct drbg_kat kat1632 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1632_t
+};
+
+static const unsigned char kat1633_entropyin[] = {
+ 0xf2, 0x41, 0xf0, 0x59, 0x8f, 0x93, 0x15, 0xdc, 0xad, 0x17, 0xe6, 0x09,
+ 0x8a, 0x7d, 0x5d, 0x72,
+};
+static const unsigned char kat1633_nonce[] = {
+ 0x3a, 0x79, 0xda, 0x9a, 0xd1, 0x74, 0x9c, 0x15,
+};
+static const unsigned char kat1633_persstr[] = {0};
+static const unsigned char kat1633_entropyinreseed[] = {
+ 0xc5, 0x04, 0x6a, 0x9d, 0x08, 0x79, 0x46, 0xe3, 0xac, 0x1c, 0x54, 0x12,
+ 0x77, 0x2d, 0x26, 0x2e,
+};
+static const unsigned char kat1633_addinreseed[] = {0};
+static const unsigned char kat1633_addin0[] = {0};
+static const unsigned char kat1633_addin1[] = {0};
+static const unsigned char kat1633_retbits[] = {
+ 0x07, 0xd0, 0xb5, 0x65, 0x09, 0x41, 0x8f, 0xba, 0x49, 0xa3, 0x62, 0xeb,
+ 0x47, 0xc3, 0xe2, 0x30, 0xb9, 0x32, 0x93, 0x04, 0xc0, 0xa4, 0x47, 0x89,
+ 0x49, 0x58, 0x6c, 0xb1, 0xfe, 0x28, 0xb1, 0xd0, 0x48, 0x0c, 0x4f, 0x44,
+ 0x3b, 0x04, 0xb0, 0xa2, 0xdd, 0x12, 0xce, 0xd3, 0xd7, 0x21, 0xf1, 0x3e,
+ 0x7f, 0x1b, 0xc0, 0xed, 0x07, 0x4b, 0xcc, 0x08, 0x47, 0xca, 0x0e, 0xfe,
+ 0x7f, 0xcb, 0xc3, 0x63,
+};
+static const struct drbg_kat_pr_false kat1633_t = {
+ 12, kat1633_entropyin, kat1633_nonce, kat1633_persstr,
+ kat1633_entropyinreseed, kat1633_addinreseed, kat1633_addin0,
+ kat1633_addin1, kat1633_retbits
+};
+static const struct drbg_kat kat1633 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1633_t
+};
+
+static const unsigned char kat1634_entropyin[] = {
+ 0x8a, 0x40, 0xd5, 0x80, 0xe5, 0x3b, 0xdb, 0xbc, 0xfd, 0x9f, 0x49, 0xcb,
+ 0x76, 0x56, 0xe3, 0xa2,
+};
+static const unsigned char kat1634_nonce[] = {
+ 0xd4, 0x12, 0x9f, 0xc3, 0x72, 0x4c, 0x6d, 0x41,
+};
+static const unsigned char kat1634_persstr[] = {0};
+static const unsigned char kat1634_entropyinreseed[] = {
+ 0x88, 0xee, 0xad, 0xc3, 0x2c, 0x34, 0x87, 0xcb, 0x07, 0x45, 0x43, 0xab,
+ 0xf2, 0x24, 0x76, 0x43,
+};
+static const unsigned char kat1634_addinreseed[] = {0};
+static const unsigned char kat1634_addin0[] = {0};
+static const unsigned char kat1634_addin1[] = {0};
+static const unsigned char kat1634_retbits[] = {
+ 0x6a, 0x02, 0xe4, 0xc3, 0xc8, 0x14, 0xf7, 0x5f, 0x65, 0x18, 0xfb, 0x2a,
+ 0x52, 0x95, 0xa0, 0x5c, 0x5a, 0xf4, 0x91, 0xb6, 0x43, 0x89, 0xf9, 0x16,
+ 0x11, 0x79, 0xaf, 0x54, 0x36, 0xa5, 0x2a, 0x5e, 0xcd, 0xbc, 0x07, 0x31,
+ 0xde, 0xda, 0xf9, 0x5a, 0x24, 0xdc, 0x56, 0xec, 0x63, 0x4c, 0x97, 0x45,
+ 0xb6, 0xcd, 0x33, 0x3a, 0x6d, 0xe9, 0x60, 0x4d, 0x18, 0xa5, 0x18, 0x7a,
+ 0xc7, 0xcc, 0x9a, 0x1d,
+};
+static const struct drbg_kat_pr_false kat1634_t = {
+ 13, kat1634_entropyin, kat1634_nonce, kat1634_persstr,
+ kat1634_entropyinreseed, kat1634_addinreseed, kat1634_addin0,
+ kat1634_addin1, kat1634_retbits
+};
+static const struct drbg_kat kat1634 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1634_t
+};
+
+static const unsigned char kat1635_entropyin[] = {
+ 0x07, 0x56, 0xb7, 0x33, 0x1d, 0x1c, 0x5b, 0x85, 0x52, 0xf1, 0x04, 0x73,
+ 0x4a, 0x4e, 0x4f, 0x5c,
+};
+static const unsigned char kat1635_nonce[] = {
+ 0x17, 0x78, 0xbc, 0x41, 0x30, 0xec, 0xfd, 0x4f,
+};
+static const unsigned char kat1635_persstr[] = {0};
+static const unsigned char kat1635_entropyinreseed[] = {
+ 0x48, 0x8e, 0xd1, 0x5d, 0xce, 0x02, 0xe3, 0xc2, 0xe3, 0xee, 0x57, 0x12,
+ 0x60, 0xfe, 0x73, 0x4c,
+};
+static const unsigned char kat1635_addinreseed[] = {0};
+static const unsigned char kat1635_addin0[] = {0};
+static const unsigned char kat1635_addin1[] = {0};
+static const unsigned char kat1635_retbits[] = {
+ 0x8e, 0xa1, 0x97, 0x96, 0x34, 0x72, 0xda, 0x04, 0x30, 0xaa, 0xb9, 0xc3,
+ 0x1b, 0x91, 0xb5, 0xf9, 0x59, 0x24, 0xe7, 0xc8, 0xa3, 0x4c, 0x26, 0x25,
+ 0x27, 0x7d, 0xdb, 0xdf, 0xf5, 0x51, 0xb8, 0x37, 0xf4, 0x08, 0x96, 0xf1,
+ 0x33, 0xf7, 0xf6, 0x85, 0x5f, 0xbb, 0xbc, 0xb1, 0x97, 0xd4, 0xb2, 0x22,
+ 0xac, 0xb3, 0xc0, 0xd0, 0x4d, 0x1c, 0xff, 0xc3, 0x41, 0x19, 0x47, 0xa5,
+ 0x8b, 0x57, 0x16, 0x6b,
+};
+static const struct drbg_kat_pr_false kat1635_t = {
+ 14, kat1635_entropyin, kat1635_nonce, kat1635_persstr,
+ kat1635_entropyinreseed, kat1635_addinreseed, kat1635_addin0,
+ kat1635_addin1, kat1635_retbits
+};
+static const struct drbg_kat kat1635 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat1635_t
+};
+
+static const unsigned char kat1636_entropyin[] = {
+ 0x09, 0x6a, 0xf1, 0x70, 0x4b, 0xca, 0xb3, 0x13, 0xf8, 0xa4, 0xe9, 0xa2,
+ 0xb1, 0xed, 0x50, 0x6e,
+};
+static const unsigned char kat1636_nonce[] = {
+ 0x58, 0xf0, 0xeb, 0x13, 0x75, 0xa0, 0xbd, 0x20,
+};
+static const unsigned char kat1636_persstr[] = {0};
+static const unsigned char kat1636_entropyinreseed[] = {
+ 0x4b, 0x55, 0x79, 0xcd, 0x54, 0x8b, 0xf9, 0xea, 0xf3, 0xf1, 0x75, 0x45,
+ 0x96, 0x13, 0xf3, 0xc8,
+};
+static const unsigned char kat1636_addinreseed[] = {
+ 0x2f, 0x23, 0x3b, 0x8d, 0x01, 0x24, 0xb7, 0xa0, 0xac, 0x81, 0xce, 0xe2,
+ 0xea, 0x1e, 0x7e, 0xf4,
+};
+static const unsigned char kat1636_addin0[] = {
+ 0x19, 0xf8, 0xdb, 0xdc, 0xc7, 0x78, 0x51, 0xf3, 0x6b, 0x40, 0x05, 0x90,
+ 0x86, 0x20, 0xe4, 0x03,
+};
+static const unsigned char kat1636_addin1[] = {
+ 0xeb, 0x89, 0x42, 0x22, 0x93, 0xb9, 0xc9, 0xaa, 0x20, 0xa5, 0x0c, 0x42,
+ 0x9e, 0xbd, 0xad, 0x6e,
+};
+static const unsigned char kat1636_retbits[] = {
+ 0x82, 0x44, 0x51, 0xfd, 0x98, 0x19, 0xef, 0x4e, 0x30, 0x0e, 0xa6, 0xea,
+ 0xa1, 0xd2, 0x05, 0x12, 0xfa, 0xd1, 0xa6, 0xce, 0xa4, 0x3c, 0x47, 0xa9,
+ 0x2d, 0xc5, 0x07, 0x56, 0xb5, 0x91, 0x7b, 0x84, 0x88, 0x87, 0xe7, 0x05,
+ 0xb1, 0x7d, 0x71, 0x78, 0x15, 0xa5, 0xf6, 0xc3, 0xbb, 0xc0, 0xf4, 0xb3,
+ 0xe1, 0xb3, 0x92, 0x51, 0x9e, 0x5e, 0x71, 0x47, 0xda, 0x12, 0x6f, 0xd0,
+ 0xc5, 0x8a, 0x25, 0xbd,
+};
+static const struct drbg_kat_pr_false kat1636_t = {
+ 0, kat1636_entropyin, kat1636_nonce, kat1636_persstr,
+ kat1636_entropyinreseed, kat1636_addinreseed, kat1636_addin0,
+ kat1636_addin1, kat1636_retbits
+};
+static const struct drbg_kat kat1636 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1636_t
+};
+
+static const unsigned char kat1637_entropyin[] = {
+ 0x47, 0x96, 0x55, 0xc2, 0x06, 0x72, 0xdb, 0x0e, 0xaa, 0xbf, 0xd8, 0x9b,
+ 0x82, 0x2f, 0x03, 0x0f,
+};
+static const unsigned char kat1637_nonce[] = {
+ 0xac, 0x04, 0x35, 0x95, 0x5c, 0x09, 0x76, 0xde,
+};
+static const unsigned char kat1637_persstr[] = {0};
+static const unsigned char kat1637_entropyinreseed[] = {
+ 0xbe, 0x00, 0x06, 0x29, 0xc3, 0x1e, 0xb6, 0xd6, 0x6b, 0x09, 0x9d, 0xad,
+ 0x3a, 0xeb, 0xed, 0x35,
+};
+static const unsigned char kat1637_addinreseed[] = {
+ 0xde, 0x2f, 0x66, 0x25, 0x0a, 0x05, 0x3f, 0x6f, 0x3f, 0xf1, 0xf1, 0xf3,
+ 0xe3, 0x1c, 0x0e, 0xdc,
+};
+static const unsigned char kat1637_addin0[] = {
+ 0x6f, 0xf2, 0xba, 0x8f, 0xe3, 0x4c, 0x1d, 0x08, 0xe5, 0x5e, 0x70, 0x0a,
+ 0x77, 0x30, 0xc2, 0x3b,
+};
+static const unsigned char kat1637_addin1[] = {
+ 0xa2, 0xc9, 0x66, 0x07, 0xa2, 0xe3, 0x1a, 0x5d, 0xd1, 0x0c, 0x82, 0x1e,
+ 0xc0, 0x53, 0xe2, 0xfe,
+};
+static const unsigned char kat1637_retbits[] = {
+ 0xff, 0xcd, 0xde, 0x31, 0xbc, 0xce, 0x01, 0x6d, 0x9f, 0xba, 0xcb, 0xbe,
+ 0x8b, 0xe4, 0x62, 0x1b, 0xa8, 0x4f, 0x8c, 0x97, 0xfb, 0xd0, 0xa0, 0x37,
+ 0x8e, 0xe1, 0x34, 0xe8, 0xd4, 0x12, 0x4a, 0x5f, 0x12, 0x98, 0xa2, 0xcb,
+ 0x0e, 0x8c, 0x1b, 0xe8, 0xc6, 0x58, 0x7c, 0x60, 0x0a, 0xb2, 0x72, 0xfb,
+ 0xbe, 0x30, 0xbb, 0xb1, 0x5a, 0x8f, 0x8f, 0xab, 0x68, 0xc3, 0xe8, 0x22,
+ 0xfe, 0xe7, 0x10, 0x0d,
+};
+static const struct drbg_kat_pr_false kat1637_t = {
+ 1, kat1637_entropyin, kat1637_nonce, kat1637_persstr,
+ kat1637_entropyinreseed, kat1637_addinreseed, kat1637_addin0,
+ kat1637_addin1, kat1637_retbits
+};
+static const struct drbg_kat kat1637 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1637_t
+};
+
+static const unsigned char kat1638_entropyin[] = {
+ 0xf6, 0xcc, 0x98, 0x59, 0xa8, 0x81, 0x1d, 0x24, 0x7e, 0x93, 0x42, 0x58,
+ 0x78, 0x64, 0xd4, 0x53,
+};
+static const unsigned char kat1638_nonce[] = {
+ 0x70, 0x2f, 0x64, 0xb7, 0x91, 0x2a, 0x61, 0xd9,
+};
+static const unsigned char kat1638_persstr[] = {0};
+static const unsigned char kat1638_entropyinreseed[] = {
+ 0xbf, 0x7b, 0x10, 0x0a, 0x23, 0x54, 0xf6, 0x00, 0x62, 0x21, 0x23, 0xd2,
+ 0x1e, 0x61, 0xb2, 0x2d,
+};
+static const unsigned char kat1638_addinreseed[] = {
+ 0x92, 0x50, 0xfe, 0x41, 0x9e, 0xbf, 0xba, 0xb0, 0xec, 0x7c, 0x5b, 0x8c,
+ 0xb9, 0xe1, 0x5e, 0x6f,
+};
+static const unsigned char kat1638_addin0[] = {
+ 0xa2, 0xb1, 0xf0, 0xac, 0x23, 0x0e, 0xb0, 0x5f, 0x99, 0xc0, 0x0f, 0x02,
+ 0x8e, 0xa8, 0xfb, 0xf5,
+};
+static const unsigned char kat1638_addin1[] = {
+ 0x02, 0xb1, 0x47, 0x1a, 0xce, 0x23, 0x30, 0xcb, 0x99, 0x90, 0xe2, 0xb3,
+ 0x3f, 0x7d, 0x2f, 0xe2,
+};
+static const unsigned char kat1638_retbits[] = {
+ 0xd8, 0x65, 0xd2, 0x38, 0x47, 0xd0, 0xae, 0x11, 0x3b, 0xa0, 0x69, 0xb6,
+ 0x45, 0x64, 0x9b, 0x1e, 0x8d, 0x97, 0x64, 0xc4, 0xb8, 0x25, 0x6b, 0x90,
+ 0x64, 0x60, 0x14, 0x15, 0xdf, 0x62, 0x00, 0xed, 0x92, 0xab, 0x18, 0x65,
+ 0x24, 0x37, 0x7d, 0x0f, 0x97, 0x03, 0x61, 0xb6, 0x6d, 0x07, 0x48, 0x62,
+ 0xe7, 0x63, 0x89, 0x4f, 0xc1, 0xf9, 0x3a, 0x9c, 0xdb, 0x64, 0x5c, 0xa6,
+ 0xd8, 0xe4, 0x44, 0x9c,
+};
+static const struct drbg_kat_pr_false kat1638_t = {
+ 2, kat1638_entropyin, kat1638_nonce, kat1638_persstr,
+ kat1638_entropyinreseed, kat1638_addinreseed, kat1638_addin0,
+ kat1638_addin1, kat1638_retbits
+};
+static const struct drbg_kat kat1638 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1638_t
+};
+
+static const unsigned char kat1639_entropyin[] = {
+ 0xcc, 0xc6, 0xad, 0x2d, 0xd9, 0x31, 0x8d, 0x61, 0xbe, 0xf5, 0x39, 0x0e,
+ 0x0e, 0x5f, 0xe9, 0x1f,
+};
+static const unsigned char kat1639_nonce[] = {
+ 0x6d, 0xdb, 0x3c, 0xd3, 0x78, 0xfa, 0x31, 0x7a,
+};
+static const unsigned char kat1639_persstr[] = {0};
+static const unsigned char kat1639_entropyinreseed[] = {
+ 0x9e, 0xab, 0x54, 0xe7, 0x43, 0xac, 0x5e, 0xc4, 0x97, 0x7c, 0xad, 0x57,
+ 0x53, 0x2f, 0x81, 0xd1,
+};
+static const unsigned char kat1639_addinreseed[] = {
+ 0xb0, 0x2c, 0x69, 0xda, 0x73, 0x58, 0xe8, 0x25, 0x25, 0xa5, 0x03, 0xd7,
+ 0xb7, 0x24, 0xd1, 0x5d,
+};
+static const unsigned char kat1639_addin0[] = {
+ 0x1c, 0xd7, 0x22, 0xa3, 0x93, 0x2d, 0xb2, 0x12, 0xf9, 0x27, 0xa4, 0xe0,
+ 0x1f, 0x7e, 0x71, 0x32,
+};
+static const unsigned char kat1639_addin1[] = {
+ 0x72, 0xc7, 0xfb, 0xbf, 0xb6, 0x6c, 0x1c, 0x74, 0x4f, 0xe1, 0x4f, 0x39,
+ 0xeb, 0x4f, 0x68, 0xaa,
+};
+static const unsigned char kat1639_retbits[] = {
+ 0xe1, 0xae, 0xca, 0xd7, 0xb5, 0x8d, 0x69, 0x7a, 0xdb, 0x10, 0xfd, 0xf6,
+ 0x4b, 0x55, 0x0e, 0xbb, 0xdd, 0x72, 0x14, 0x6d, 0xcb, 0x97, 0x34, 0x64,
+ 0xf2, 0x3a, 0xde, 0x84, 0x56, 0xbc, 0x90, 0x37, 0x22, 0x72, 0xb0, 0xe0,
+ 0x41, 0xa7, 0x1d, 0x4e, 0x0b, 0x63, 0x5a, 0x13, 0xb5, 0x75, 0x16, 0x3a,
+ 0x81, 0x09, 0xe9, 0xc9, 0xab, 0xe6, 0x93, 0x29, 0x6d, 0x74, 0x85, 0xe7,
+ 0x2d, 0x58, 0x6c, 0x66,
+};
+static const struct drbg_kat_pr_false kat1639_t = {
+ 3, kat1639_entropyin, kat1639_nonce, kat1639_persstr,
+ kat1639_entropyinreseed, kat1639_addinreseed, kat1639_addin0,
+ kat1639_addin1, kat1639_retbits
+};
+static const struct drbg_kat kat1639 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1639_t
+};
+
+static const unsigned char kat1640_entropyin[] = {
+ 0xfb, 0x39, 0xe5, 0xb3, 0xd0, 0xd1, 0x3d, 0x19, 0xa9, 0xac, 0xa7, 0x61,
+ 0xe6, 0xd6, 0xda, 0xc1,
+};
+static const unsigned char kat1640_nonce[] = {
+ 0xa8, 0x4c, 0x3d, 0xec, 0x8f, 0xd8, 0xd3, 0xd7,
+};
+static const unsigned char kat1640_persstr[] = {0};
+static const unsigned char kat1640_entropyinreseed[] = {
+ 0xcb, 0x39, 0x17, 0xe8, 0x54, 0x11, 0x7b, 0x54, 0xf8, 0x72, 0xfe, 0x54,
+ 0xf3, 0x96, 0x42, 0x6e,
+};
+static const unsigned char kat1640_addinreseed[] = {
+ 0x12, 0x01, 0xc0, 0x48, 0x86, 0xbe, 0xf5, 0xf8, 0x76, 0xae, 0x73, 0x29,
+ 0x70, 0x80, 0x33, 0x37,
+};
+static const unsigned char kat1640_addin0[] = {
+ 0x04, 0xcc, 0xad, 0x68, 0xea, 0xe5, 0x72, 0x99, 0xee, 0x86, 0x3c, 0x73,
+ 0x61, 0x97, 0x83, 0x67,
+};
+static const unsigned char kat1640_addin1[] = {
+ 0xc1, 0x1b, 0xa7, 0x99, 0x4d, 0xbf, 0xbe, 0x09, 0xec, 0x91, 0x11, 0x6e,
+ 0xc3, 0x7a, 0x26, 0xe0,
+};
+static const unsigned char kat1640_retbits[] = {
+ 0x7b, 0x28, 0xab, 0x4b, 0x2d, 0x8f, 0xfe, 0x3c, 0x8a, 0x78, 0xdf, 0x52,
+ 0x2f, 0x2f, 0x66, 0xe5, 0x37, 0x3c, 0xdb, 0x13, 0xa2, 0xe7, 0xb9, 0x5f,
+ 0x80, 0xe1, 0x5f, 0xb1, 0x5e, 0x9e, 0xc8, 0x53, 0x81, 0x84, 0x83, 0x94,
+ 0xb9, 0x10, 0x58, 0xd9, 0xb1, 0x23, 0x0c, 0x1b, 0x52, 0xc7, 0x5d, 0x32,
+ 0x22, 0x6c, 0xc8, 0x20, 0x6f, 0x78, 0x44, 0x0e, 0x09, 0xf2, 0x93, 0x9f,
+ 0xa4, 0xd0, 0x95, 0x38,
+};
+static const struct drbg_kat_pr_false kat1640_t = {
+ 4, kat1640_entropyin, kat1640_nonce, kat1640_persstr,
+ kat1640_entropyinreseed, kat1640_addinreseed, kat1640_addin0,
+ kat1640_addin1, kat1640_retbits
+};
+static const struct drbg_kat kat1640 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1640_t
+};
+
+static const unsigned char kat1641_entropyin[] = {
+ 0x02, 0xa8, 0x96, 0xb4, 0x4a, 0x0b, 0xee, 0x21, 0xab, 0x76, 0xf2, 0xb3,
+ 0xb8, 0x1b, 0x82, 0x2b,
+};
+static const unsigned char kat1641_nonce[] = {
+ 0xf8, 0x73, 0x32, 0xdf, 0x5d, 0x23, 0x4c, 0xc7,
+};
+static const unsigned char kat1641_persstr[] = {0};
+static const unsigned char kat1641_entropyinreseed[] = {
+ 0x81, 0xa5, 0x59, 0x70, 0xbd, 0x1f, 0xfb, 0xcd, 0xc4, 0x4c, 0x05, 0x26,
+ 0xa3, 0x11, 0x73, 0xa7,
+};
+static const unsigned char kat1641_addinreseed[] = {
+ 0x34, 0xb9, 0xbd, 0xfd, 0x1b, 0x35, 0xb3, 0xc3, 0xcf, 0x18, 0x3f, 0xfc,
+ 0x1d, 0xb7, 0xea, 0x64,
+};
+static const unsigned char kat1641_addin0[] = {
+ 0xe3, 0x70, 0xda, 0xb5, 0xc5, 0x1f, 0x4e, 0xbe, 0xde, 0xc1, 0xce, 0x23,
+ 0x53, 0xba, 0x2d, 0x3e,
+};
+static const unsigned char kat1641_addin1[] = {
+ 0x2a, 0x9c, 0xb1, 0x9b, 0x53, 0x7a, 0x18, 0xf8, 0x2d, 0xf6, 0xc3, 0x3a,
+ 0x0a, 0x4c, 0x27, 0x16,
+};
+static const unsigned char kat1641_retbits[] = {
+ 0x9f, 0x54, 0x6c, 0x83, 0xaf, 0xe7, 0xfb, 0x8f, 0xa8, 0x19, 0x40, 0x77,
+ 0xf9, 0x91, 0x71, 0xe9, 0x78, 0x7a, 0xb3, 0xdd, 0x2c, 0x3b, 0xe0, 0xde,
+ 0xbb, 0x99, 0x20, 0xf9, 0x08, 0x4d, 0x0d, 0xd1, 0x77, 0xd1, 0x14, 0x3d,
+ 0x76, 0xfd, 0xea, 0xbe, 0x6c, 0x6d, 0x79, 0x41, 0x65, 0xea, 0x99, 0x60,
+ 0x26, 0x7d, 0x61, 0x6f, 0x6f, 0x0f, 0xfd, 0x57, 0xae, 0x16, 0xd0, 0x8e,
+ 0xf5, 0x65, 0x05, 0xc5,
+};
+static const struct drbg_kat_pr_false kat1641_t = {
+ 5, kat1641_entropyin, kat1641_nonce, kat1641_persstr,
+ kat1641_entropyinreseed, kat1641_addinreseed, kat1641_addin0,
+ kat1641_addin1, kat1641_retbits
+};
+static const struct drbg_kat kat1641 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1641_t
+};
+
+static const unsigned char kat1642_entropyin[] = {
+ 0x6b, 0x90, 0x99, 0x43, 0x98, 0xad, 0x0d, 0xaa, 0x3c, 0xa9, 0x82, 0xea,
+ 0x94, 0x5c, 0x56, 0xda,
+};
+static const unsigned char kat1642_nonce[] = {
+ 0x6b, 0x31, 0xe0, 0x10, 0x15, 0x63, 0xd6, 0xcb,
+};
+static const unsigned char kat1642_persstr[] = {0};
+static const unsigned char kat1642_entropyinreseed[] = {
+ 0x18, 0x90, 0x44, 0xb3, 0x3d, 0xf7, 0xc3, 0x2a, 0x63, 0xd0, 0xb5, 0x13,
+ 0xc9, 0xa0, 0x80, 0xe0,
+};
+static const unsigned char kat1642_addinreseed[] = {
+ 0x5d, 0xdd, 0x33, 0x2b, 0xe7, 0xdd, 0xaa, 0xa8, 0x6d, 0x47, 0x6e, 0x5f,
+ 0x49, 0xe1, 0x69, 0xbb,
+};
+static const unsigned char kat1642_addin0[] = {
+ 0x7c, 0xca, 0x79, 0xe6, 0xdc, 0xc0, 0xf1, 0x2c, 0xea, 0xd1, 0x89, 0xfe,
+ 0x61, 0xd5, 0xd4, 0xfe,
+};
+static const unsigned char kat1642_addin1[] = {
+ 0x95, 0x7f, 0x2b, 0xc6, 0x7a, 0x24, 0x48, 0xaa, 0x69, 0x61, 0xa3, 0x35,
+ 0x76, 0x50, 0x30, 0x4a,
+};
+static const unsigned char kat1642_retbits[] = {
+ 0x44, 0xef, 0x3b, 0xbd, 0x32, 0x75, 0x80, 0x0b, 0xbe, 0xff, 0xac, 0xa6,
+ 0xc9, 0x47, 0x93, 0xdc, 0xa2, 0xb0, 0x25, 0xf5, 0x0f, 0x13, 0xbc, 0x57,
+ 0x2d, 0x75, 0xe9, 0x09, 0xb6, 0xbf, 0xd4, 0xb7, 0xbd, 0xa2, 0x3e, 0x19,
+ 0xa3, 0x43, 0x46, 0x74, 0x93, 0xd2, 0x3c, 0x16, 0xd8, 0x81, 0x20, 0xfe,
+ 0x73, 0xe3, 0xa2, 0x46, 0xe5, 0x45, 0xaf, 0x09, 0xce, 0x2d, 0xf0, 0xff,
+ 0x4e, 0x09, 0x45, 0xda,
+};
+static const struct drbg_kat_pr_false kat1642_t = {
+ 6, kat1642_entropyin, kat1642_nonce, kat1642_persstr,
+ kat1642_entropyinreseed, kat1642_addinreseed, kat1642_addin0,
+ kat1642_addin1, kat1642_retbits
+};
+static const struct drbg_kat kat1642 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1642_t
+};
+
+static const unsigned char kat1643_entropyin[] = {
+ 0xdc, 0xb2, 0x07, 0x2b, 0xa7, 0x46, 0x6c, 0x37, 0x46, 0x1b, 0x75, 0x81,
+ 0xc4, 0xcd, 0x7a, 0xb2,
+};
+static const unsigned char kat1643_nonce[] = {
+ 0xd5, 0xf8, 0x31, 0x70, 0x90, 0x12, 0x4c, 0xfe,
+};
+static const unsigned char kat1643_persstr[] = {0};
+static const unsigned char kat1643_entropyinreseed[] = {
+ 0xf8, 0xd4, 0xf7, 0x77, 0x6f, 0x53, 0xa7, 0x04, 0x15, 0x35, 0xe6, 0xa2,
+ 0x16, 0x19, 0x13, 0x78,
+};
+static const unsigned char kat1643_addinreseed[] = {
+ 0xb3, 0xcc, 0xe2, 0x11, 0xf1, 0x06, 0x1d, 0xbd, 0x0a, 0x59, 0x38, 0x4f,
+ 0x6b, 0xa1, 0x4a, 0x85,
+};
+static const unsigned char kat1643_addin0[] = {
+ 0xfc, 0xfc, 0xd5, 0x5e, 0x35, 0x3b, 0x12, 0x94, 0x47, 0x6b, 0xa9, 0x82,
+ 0x80, 0xe5, 0x2e, 0x6c,
+};
+static const unsigned char kat1643_addin1[] = {
+ 0xcc, 0x41, 0x57, 0x1b, 0x9a, 0x7e, 0x58, 0xad, 0xf9, 0x63, 0x39, 0x56,
+ 0x88, 0x7c, 0xab, 0x4d,
+};
+static const unsigned char kat1643_retbits[] = {
+ 0x47, 0x26, 0x9a, 0x35, 0x51, 0x55, 0xdb, 0xd9, 0x9a, 0x6d, 0x9e, 0x5f,
+ 0x3f, 0x37, 0x79, 0xea, 0xbe, 0x60, 0xf3, 0x73, 0xa7, 0x27, 0x90, 0xd1,
+ 0x73, 0x46, 0xe8, 0x67, 0x26, 0xe6, 0xb3, 0xb4, 0x6a, 0x01, 0x74, 0xae,
+ 0x5c, 0x51, 0x59, 0xc0, 0x6c, 0xe9, 0xbe, 0x07, 0x77, 0xd3, 0xd3, 0x6e,
+ 0x5d, 0x1b, 0x37, 0xb8, 0x47, 0x2e, 0xbb, 0x09, 0x21, 0x3d, 0x3e, 0xd6,
+ 0x23, 0xfa, 0x3e, 0xf2,
+};
+static const struct drbg_kat_pr_false kat1643_t = {
+ 7, kat1643_entropyin, kat1643_nonce, kat1643_persstr,
+ kat1643_entropyinreseed, kat1643_addinreseed, kat1643_addin0,
+ kat1643_addin1, kat1643_retbits
+};
+static const struct drbg_kat kat1643 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1643_t
+};
+
+static const unsigned char kat1644_entropyin[] = {
+ 0xee, 0x89, 0x77, 0x21, 0xc7, 0x65, 0x8e, 0xdb, 0x43, 0xcb, 0x66, 0xd9,
+ 0x17, 0x9d, 0x03, 0x75,
+};
+static const unsigned char kat1644_nonce[] = {
+ 0x6f, 0x0c, 0xf5, 0x07, 0x1c, 0x79, 0xb4, 0xa6,
+};
+static const unsigned char kat1644_persstr[] = {0};
+static const unsigned char kat1644_entropyinreseed[] = {
+ 0x2a, 0xd2, 0xc8, 0x5a, 0x34, 0xe4, 0x44, 0x7d, 0x2d, 0xb6, 0x3e, 0x17,
+ 0x8d, 0xc7, 0x06, 0xc6,
+};
+static const unsigned char kat1644_addinreseed[] = {
+ 0x6f, 0x9a, 0x15, 0x23, 0xcb, 0x3d, 0xde, 0x58, 0x8d, 0x80, 0xe5, 0x20,
+ 0x99, 0xdf, 0x13, 0xdc,
+};
+static const unsigned char kat1644_addin0[] = {
+ 0xe6, 0x00, 0x88, 0xd6, 0xfe, 0xb5, 0xd7, 0xb8, 0x3a, 0x01, 0x06, 0x56,
+ 0xcf, 0x99, 0x6c, 0x65,
+};
+static const unsigned char kat1644_addin1[] = {
+ 0x3a, 0x44, 0x43, 0xf3, 0xe9, 0xae, 0x8c, 0x59, 0x29, 0x8c, 0xb5, 0x3a,
+ 0x8b, 0xd6, 0x05, 0xd6,
+};
+static const unsigned char kat1644_retbits[] = {
+ 0xfc, 0x73, 0x86, 0x29, 0xb7, 0xd5, 0x99, 0x13, 0x81, 0x0b, 0xab, 0x5d,
+ 0x53, 0xf7, 0xe9, 0xf8, 0x36, 0x9f, 0xf9, 0x27, 0xc4, 0xc3, 0xd7, 0xdc,
+ 0xb8, 0xc5, 0xd6, 0x16, 0x36, 0xd0, 0x62, 0x27, 0x97, 0x7a, 0x99, 0x7b,
+ 0x75, 0x77, 0x07, 0xe1, 0xe1, 0x45, 0x7b, 0x1b, 0x8f, 0xff, 0x3f, 0x7e,
+ 0x48, 0x30, 0xb8, 0x4c, 0x5a, 0xd6, 0xfc, 0x3d, 0x15, 0xac, 0x1a, 0x57,
+ 0xc5, 0x87, 0x67, 0xb0,
+};
+static const struct drbg_kat_pr_false kat1644_t = {
+ 8, kat1644_entropyin, kat1644_nonce, kat1644_persstr,
+ kat1644_entropyinreseed, kat1644_addinreseed, kat1644_addin0,
+ kat1644_addin1, kat1644_retbits
+};
+static const struct drbg_kat kat1644 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1644_t
+};
+
+static const unsigned char kat1645_entropyin[] = {
+ 0x0e, 0x45, 0xd8, 0xb4, 0xcc, 0x12, 0x23, 0xc0, 0xfa, 0x44, 0xcc, 0x4e,
+ 0x9b, 0xa0, 0x7a, 0x95,
+};
+static const unsigned char kat1645_nonce[] = {
+ 0x1c, 0x73, 0xa3, 0xe3, 0x6d, 0xa2, 0x48, 0xb5,
+};
+static const unsigned char kat1645_persstr[] = {0};
+static const unsigned char kat1645_entropyinreseed[] = {
+ 0xd8, 0x83, 0x53, 0xf7, 0x82, 0xfd, 0x4f, 0x77, 0xba, 0x5e, 0x4b, 0x74,
+ 0x15, 0xaa, 0xa7, 0x0d,
+};
+static const unsigned char kat1645_addinreseed[] = {
+ 0x91, 0xd2, 0x2d, 0x86, 0x66, 0xe3, 0xa8, 0x8e, 0x21, 0x73, 0xc7, 0x64,
+ 0x61, 0x5c, 0x88, 0x48,
+};
+static const unsigned char kat1645_addin0[] = {
+ 0xc1, 0xe7, 0xd9, 0xa0, 0x10, 0xbe, 0x5e, 0xcb, 0xbe, 0xb9, 0xbf, 0x6c,
+ 0x23, 0x42, 0xd3, 0x61,
+};
+static const unsigned char kat1645_addin1[] = {
+ 0xf8, 0x1d, 0x44, 0xb9, 0x5a, 0x5c, 0x5a, 0x8a, 0x50, 0xb5, 0x85, 0x8b,
+ 0x98, 0x1e, 0x67, 0x6e,
+};
+static const unsigned char kat1645_retbits[] = {
+ 0x32, 0xbe, 0x02, 0xe9, 0x68, 0x1c, 0x6d, 0xbf, 0xcb, 0x9b, 0xf6, 0x88,
+ 0xc2, 0xc5, 0x15, 0xd6, 0x36, 0x92, 0xfa, 0xae, 0x3f, 0x5f, 0x76, 0x08,
+ 0x35, 0x1e, 0xf2, 0x8c, 0x3a, 0xa1, 0xae, 0xdf, 0xe1, 0x0f, 0xab, 0xbb,
+ 0x2d, 0x69, 0x31, 0x92, 0x90, 0xf6, 0x3f, 0x0e, 0x5e, 0x5b, 0xeb, 0xa9,
+ 0x1f, 0x2a, 0x5c, 0x26, 0x9f, 0xa7, 0x33, 0x09, 0xf2, 0x32, 0x60, 0xd7,
+ 0x6d, 0xae, 0x3c, 0xe5,
+};
+static const struct drbg_kat_pr_false kat1645_t = {
+ 9, kat1645_entropyin, kat1645_nonce, kat1645_persstr,
+ kat1645_entropyinreseed, kat1645_addinreseed, kat1645_addin0,
+ kat1645_addin1, kat1645_retbits
+};
+static const struct drbg_kat kat1645 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1645_t
+};
+
+static const unsigned char kat1646_entropyin[] = {
+ 0xc7, 0xad, 0xf6, 0x03, 0x2c, 0xa8, 0x0c, 0x8a, 0xc0, 0xe6, 0x2f, 0x81,
+ 0x48, 0xca, 0x35, 0x73,
+};
+static const unsigned char kat1646_nonce[] = {
+ 0x7e, 0x54, 0x68, 0x31, 0xf9, 0x48, 0xd5, 0xb1,
+};
+static const unsigned char kat1646_persstr[] = {0};
+static const unsigned char kat1646_entropyinreseed[] = {
+ 0xf4, 0x8c, 0xe4, 0x98, 0xef, 0x65, 0xf5, 0xbb, 0x23, 0x29, 0x85, 0x7d,
+ 0xba, 0xe6, 0x6d, 0xff,
+};
+static const unsigned char kat1646_addinreseed[] = {
+ 0x84, 0x02, 0x0b, 0x1e, 0xc2, 0xc2, 0xb2, 0xc9, 0x8e, 0x49, 0xcf, 0x7e,
+ 0x71, 0x60, 0x00, 0x49,
+};
+static const unsigned char kat1646_addin0[] = {
+ 0x60, 0x36, 0xf9, 0x63, 0x89, 0xdb, 0x7c, 0xd1, 0x63, 0x49, 0xbf, 0xed,
+ 0xcb, 0x80, 0xf4, 0x73,
+};
+static const unsigned char kat1646_addin1[] = {
+ 0x5f, 0x2c, 0xc7, 0x3c, 0x73, 0x12, 0x94, 0xee, 0x13, 0xfd, 0x23, 0x4b,
+ 0x29, 0xea, 0x10, 0xbd,
+};
+static const unsigned char kat1646_retbits[] = {
+ 0xd2, 0xf2, 0xef, 0x17, 0x95, 0x5c, 0xb9, 0x33, 0x7b, 0x6f, 0xf6, 0x8b,
+ 0x8d, 0x38, 0xf6, 0x4c, 0x83, 0xca, 0x1e, 0x12, 0xd7, 0x8a, 0xd7, 0x8b,
+ 0x39, 0xff, 0xb2, 0xc7, 0xc6, 0xd5, 0x5f, 0xde, 0xad, 0xfc, 0x00, 0xbd,
+ 0x96, 0xd1, 0x23, 0x9f, 0xfd, 0x1a, 0x5f, 0x34, 0x60, 0x20, 0x7a, 0x2f,
+ 0xc1, 0x92, 0x47, 0x62, 0x77, 0x41, 0x56, 0x17, 0x3a, 0xb0, 0xf5, 0x14,
+ 0xa9, 0x3d, 0xa1, 0x0b,
+};
+static const struct drbg_kat_pr_false kat1646_t = {
+ 10, kat1646_entropyin, kat1646_nonce, kat1646_persstr,
+ kat1646_entropyinreseed, kat1646_addinreseed, kat1646_addin0,
+ kat1646_addin1, kat1646_retbits
+};
+static const struct drbg_kat kat1646 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1646_t
+};
+
+static const unsigned char kat1647_entropyin[] = {
+ 0x5b, 0x15, 0x45, 0x3c, 0x39, 0x6d, 0xde, 0x5a, 0x82, 0x63, 0xa2, 0x9c,
+ 0x3e, 0xc1, 0xd9, 0x71,
+};
+static const unsigned char kat1647_nonce[] = {
+ 0xf6, 0xe9, 0x02, 0x60, 0x37, 0x0d, 0xb0, 0xd0,
+};
+static const unsigned char kat1647_persstr[] = {0};
+static const unsigned char kat1647_entropyinreseed[] = {
+ 0x2e, 0x0e, 0x8f, 0xa6, 0x25, 0x41, 0xbd, 0x37, 0xcc, 0xb5, 0xb4, 0x45,
+ 0xc4, 0xc5, 0xfd, 0xdd,
+};
+static const unsigned char kat1647_addinreseed[] = {
+ 0xb6, 0x15, 0xa8, 0x41, 0xea, 0x7c, 0xe4, 0xc0, 0xf8, 0x5f, 0xb0, 0xcd,
+ 0xaa, 0x60, 0x23, 0x94,
+};
+static const unsigned char kat1647_addin0[] = {
+ 0xec, 0x2b, 0xa3, 0x53, 0x03, 0x5a, 0x90, 0x10, 0xcd, 0x99, 0xec, 0x92,
+ 0xfd, 0x8f, 0x26, 0x44,
+};
+static const unsigned char kat1647_addin1[] = {
+ 0xac, 0xe2, 0x25, 0xa7, 0x88, 0xda, 0x7e, 0xfb, 0x41, 0xba, 0x15, 0x56,
+ 0x22, 0x2f, 0x62, 0x86,
+};
+static const unsigned char kat1647_retbits[] = {
+ 0x3a, 0x92, 0xb2, 0x57, 0x0c, 0x78, 0xc5, 0xd5, 0x42, 0xb9, 0x5e, 0xbb,
+ 0x0c, 0xbc, 0x43, 0xa5, 0x22, 0x42, 0x6c, 0xaa, 0x84, 0x6f, 0x5a, 0x52,
+ 0xaf, 0x61, 0xc1, 0x07, 0x70, 0x74, 0x73, 0x36, 0x70, 0x55, 0xc4, 0x45,
+ 0x53, 0x33, 0x53, 0x16, 0x07, 0x98, 0x5c, 0xd8, 0x12, 0xdb, 0x42, 0xee,
+ 0x26, 0xfb, 0x2d, 0x69, 0xca, 0x02, 0x10, 0xc0, 0x44, 0x3f, 0xd8, 0xca,
+ 0x0f, 0xef, 0x1f, 0x89,
+};
+static const struct drbg_kat_pr_false kat1647_t = {
+ 11, kat1647_entropyin, kat1647_nonce, kat1647_persstr,
+ kat1647_entropyinreseed, kat1647_addinreseed, kat1647_addin0,
+ kat1647_addin1, kat1647_retbits
+};
+static const struct drbg_kat kat1647 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1647_t
+};
+
+static const unsigned char kat1648_entropyin[] = {
+ 0x96, 0x76, 0x44, 0xa1, 0x2c, 0x0c, 0xac, 0x92, 0xaa, 0x3c, 0x24, 0x61,
+ 0x5a, 0x90, 0x2a, 0x28,
+};
+static const unsigned char kat1648_nonce[] = {
+ 0xd3, 0x8e, 0x61, 0x76, 0xc3, 0x7c, 0xee, 0x4c,
+};
+static const unsigned char kat1648_persstr[] = {0};
+static const unsigned char kat1648_entropyinreseed[] = {
+ 0xfe, 0x42, 0xe0, 0x6c, 0x38, 0xa8, 0x1c, 0x45, 0x25, 0x08, 0xee, 0x3d,
+ 0x5d, 0xbf, 0x4b, 0x58,
+};
+static const unsigned char kat1648_addinreseed[] = {
+ 0x72, 0x3b, 0xa4, 0x72, 0x0d, 0xae, 0x76, 0x09, 0x56, 0x12, 0x14, 0x21,
+ 0x52, 0xca, 0x8f, 0x79,
+};
+static const unsigned char kat1648_addin0[] = {
+ 0x2b, 0x81, 0xc9, 0x8b, 0x29, 0x24, 0x93, 0x85, 0xb2, 0xce, 0x41, 0xa0,
+ 0x80, 0xe7, 0x2a, 0x76,
+};
+static const unsigned char kat1648_addin1[] = {
+ 0x13, 0x61, 0x0d, 0x87, 0x45, 0x9c, 0xcc, 0x72, 0xa9, 0xe1, 0x0b, 0x45,
+ 0x2a, 0xba, 0xd9, 0xc8,
+};
+static const unsigned char kat1648_retbits[] = {
+ 0xdd, 0xe7, 0x1d, 0x2d, 0xd1, 0x03, 0x52, 0x4f, 0x8a, 0x8b, 0xa7, 0xaf,
+ 0x12, 0xaf, 0xbd, 0xf5, 0x1a, 0xb5, 0x69, 0xc9, 0x97, 0x3e, 0x16, 0x13,
+ 0x94, 0x58, 0x63, 0x0b, 0x0d, 0xa1, 0x3d, 0x62, 0x40, 0x04, 0x2c, 0x3b,
+ 0x08, 0x92, 0x45, 0x7e, 0x90, 0x44, 0x63, 0x90, 0xf2, 0x2a, 0x6d, 0x85,
+ 0x6d, 0x3a, 0x21, 0x28, 0x4f, 0xea, 0x54, 0x68, 0x11, 0xd0, 0x1c, 0x33,
+ 0x89, 0x6a, 0x4a, 0x1e,
+};
+static const struct drbg_kat_pr_false kat1648_t = {
+ 12, kat1648_entropyin, kat1648_nonce, kat1648_persstr,
+ kat1648_entropyinreseed, kat1648_addinreseed, kat1648_addin0,
+ kat1648_addin1, kat1648_retbits
+};
+static const struct drbg_kat kat1648 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1648_t
+};
+
+static const unsigned char kat1649_entropyin[] = {
+ 0xb7, 0xf3, 0x99, 0xdd, 0x5a, 0x9b, 0x2c, 0x48, 0x69, 0xaa, 0x4a, 0xdd,
+ 0x46, 0xdb, 0xbe, 0x64,
+};
+static const unsigned char kat1649_nonce[] = {
+ 0xc0, 0x7f, 0x6d, 0xf3, 0x50, 0x5f, 0xe2, 0xc9,
+};
+static const unsigned char kat1649_persstr[] = {0};
+static const unsigned char kat1649_entropyinreseed[] = {
+ 0xa7, 0xc4, 0x9b, 0x25, 0xc4, 0xf4, 0x27, 0x62, 0x57, 0x37, 0x2d, 0x7b,
+ 0x29, 0xa7, 0xed, 0x64,
+};
+static const unsigned char kat1649_addinreseed[] = {
+ 0x29, 0xc8, 0x86, 0xf9, 0x9c, 0x32, 0xf1, 0xea, 0xff, 0xf5, 0x68, 0x17,
+ 0x5d, 0x63, 0xc5, 0x8f,
+};
+static const unsigned char kat1649_addin0[] = {
+ 0xaa, 0x3f, 0x8c, 0x15, 0x91, 0x54, 0xaf, 0x33, 0x53, 0x9b, 0xbc, 0xb8,
+ 0xfc, 0xa2, 0x83, 0x6b,
+};
+static const unsigned char kat1649_addin1[] = {
+ 0x20, 0xe8, 0x40, 0xf7, 0x0e, 0x6d, 0x1d, 0x88, 0x83, 0xde, 0x53, 0xeb,
+ 0x0d, 0xfe, 0x2e, 0xb0,
+};
+static const unsigned char kat1649_retbits[] = {
+ 0x43, 0xe4, 0x4d, 0x6b, 0xb5, 0x7b, 0x70, 0xfb, 0xc2, 0xe7, 0x4a, 0xf3,
+ 0x7b, 0xdf, 0x79, 0x11, 0x6f, 0x3e, 0xb0, 0xc0, 0x94, 0x5b, 0xe7, 0x3a,
+ 0x34, 0xee, 0x90, 0xc0, 0xa7, 0x44, 0x60, 0x09, 0xb4, 0x9f, 0x52, 0xaa,
+ 0x9c, 0x6a, 0x1d, 0xd9, 0x0d, 0x2b, 0x57, 0xe7, 0xe3, 0x0a, 0x65, 0xd4,
+ 0x62, 0x68, 0xcf, 0x26, 0x9c, 0xfd, 0x86, 0x23, 0xf7, 0xe2, 0xca, 0xb0,
+ 0xe0, 0xfb, 0xc6, 0x65,
+};
+static const struct drbg_kat_pr_false kat1649_t = {
+ 13, kat1649_entropyin, kat1649_nonce, kat1649_persstr,
+ kat1649_entropyinreseed, kat1649_addinreseed, kat1649_addin0,
+ kat1649_addin1, kat1649_retbits
+};
+static const struct drbg_kat kat1649 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1649_t
+};
+
+static const unsigned char kat1650_entropyin[] = {
+ 0x71, 0x28, 0x2c, 0x33, 0x99, 0x24, 0x43, 0x50, 0x6e, 0x38, 0x85, 0x54,
+ 0xad, 0x6f, 0xe8, 0xea,
+};
+static const unsigned char kat1650_nonce[] = {
+ 0xdb, 0x21, 0x40, 0x73, 0xbc, 0xeb, 0xe1, 0x33,
+};
+static const unsigned char kat1650_persstr[] = {0};
+static const unsigned char kat1650_entropyinreseed[] = {
+ 0xa3, 0xaa, 0xaf, 0x03, 0x74, 0x46, 0xf7, 0xc2, 0xaa, 0x1c, 0x20, 0x4a,
+ 0x33, 0x2d, 0xda, 0x01,
+};
+static const unsigned char kat1650_addinreseed[] = {
+ 0xc9, 0x6f, 0xd8, 0xeb, 0xe8, 0x98, 0x54, 0x19, 0xde, 0x85, 0x89, 0x03,
+ 0x32, 0x04, 0x41, 0x9c,
+};
+static const unsigned char kat1650_addin0[] = {
+ 0x21, 0x3b, 0x12, 0xdc, 0x91, 0x53, 0x56, 0xa1, 0x28, 0x1f, 0xa0, 0x62,
+ 0x48, 0x64, 0x1f, 0x93,
+};
+static const unsigned char kat1650_addin1[] = {
+ 0xef, 0x7e, 0x08, 0xce, 0x74, 0x77, 0x0e, 0x30, 0xe5, 0xcc, 0xd8, 0x6a,
+ 0xb9, 0xfb, 0x06, 0x13,
+};
+static const unsigned char kat1650_retbits[] = {
+ 0x8b, 0x77, 0xd5, 0x33, 0x2e, 0xe6, 0x11, 0x95, 0x28, 0x68, 0x00, 0x49,
+ 0xaf, 0xf5, 0x74, 0xd0, 0x21, 0x0f, 0x4e, 0x43, 0xf7, 0x58, 0x71, 0xcf,
+ 0xea, 0x4e, 0xee, 0x70, 0xaf, 0xac, 0x0e, 0x0d, 0xf9, 0x45, 0x78, 0x55,
+ 0x56, 0x75, 0x4c, 0x21, 0x04, 0x67, 0xdd, 0x58, 0x1e, 0x97, 0xfe, 0x68,
+ 0x81, 0xd9, 0xf7, 0x21, 0x15, 0xb6, 0x6b, 0xfd, 0xd7, 0x28, 0xe8, 0xf1,
+ 0x42, 0x5a, 0x40, 0x75,
+};
+static const struct drbg_kat_pr_false kat1650_t = {
+ 14, kat1650_entropyin, kat1650_nonce, kat1650_persstr,
+ kat1650_entropyinreseed, kat1650_addinreseed, kat1650_addin0,
+ kat1650_addin1, kat1650_retbits
+};
+static const struct drbg_kat kat1650 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat1650_t
+};
+
+static const unsigned char kat1651_entropyin[] = {
+ 0x81, 0x05, 0x2d, 0x33, 0x22, 0xa2, 0x60, 0xfc, 0xf3, 0x33, 0x9b, 0x53,
+ 0xf6, 0xcf, 0x5d, 0x6d,
+};
+static const unsigned char kat1651_nonce[] = {
+ 0x57, 0x30, 0x39, 0x72, 0xab, 0x58, 0xf0, 0x64,
+};
+static const unsigned char kat1651_persstr[] = {
+ 0xc3, 0xce, 0xe8, 0x56, 0x4d, 0x8b, 0xb2, 0xfb, 0x8e, 0xfe, 0x6b, 0x16,
+ 0xaa, 0x26, 0x16, 0xa6,
+};
+static const unsigned char kat1651_entropyinreseed[] = {
+ 0xc9, 0xb1, 0x03, 0xf3, 0x77, 0x9a, 0xa6, 0x3e, 0x37, 0x98, 0x41, 0xb7,
+ 0x14, 0x19, 0x6c, 0xf6,
+};
+static const unsigned char kat1651_addinreseed[] = {0};
+static const unsigned char kat1651_addin0[] = {0};
+static const unsigned char kat1651_addin1[] = {0};
+static const unsigned char kat1651_retbits[] = {
+ 0xd5, 0x37, 0x12, 0x48, 0x2c, 0x2b, 0x33, 0x36, 0x40, 0x3c, 0x40, 0xaa,
+ 0xe1, 0x56, 0x20, 0x3c, 0x58, 0x59, 0xa6, 0xb3, 0xfa, 0xe4, 0xb5, 0x53,
+ 0xe7, 0x2b, 0x8a, 0x66, 0x87, 0xc0, 0x15, 0x2b, 0xbd, 0xaf, 0xe4, 0x09,
+ 0x94, 0x39, 0xe1, 0x97, 0xe5, 0xd6, 0x0f, 0x8e, 0x60, 0x2e, 0x5b, 0x55,
+ 0x0a, 0xeb, 0x73, 0x87, 0xa4, 0x34, 0x7e, 0xcd, 0xe6, 0xe3, 0xa0, 0x42,
+ 0x88, 0x39, 0x0f, 0x13,
+};
+static const struct drbg_kat_pr_false kat1651_t = {
+ 0, kat1651_entropyin, kat1651_nonce, kat1651_persstr,
+ kat1651_entropyinreseed, kat1651_addinreseed, kat1651_addin0,
+ kat1651_addin1, kat1651_retbits
+};
+static const struct drbg_kat kat1651 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1651_t
+};
+
+static const unsigned char kat1652_entropyin[] = {
+ 0xd7, 0x12, 0xbe, 0x6d, 0xf1, 0xe2, 0x1d, 0xed, 0xd8, 0x88, 0x93, 0x03,
+ 0x1d, 0xa2, 0x00, 0x9b,
+};
+static const unsigned char kat1652_nonce[] = {
+ 0xfe, 0x56, 0x0d, 0x21, 0x41, 0x84, 0x65, 0x40,
+};
+static const unsigned char kat1652_persstr[] = {
+ 0x49, 0xec, 0x80, 0xb4, 0xf3, 0xf8, 0x53, 0x88, 0xd2, 0xea, 0x74, 0x54,
+ 0xac, 0x31, 0xbf, 0xcc,
+};
+static const unsigned char kat1652_entropyinreseed[] = {
+ 0xb5, 0xed, 0x3d, 0xd2, 0xf5, 0xe1, 0x9c, 0xbe, 0xdb, 0x9d, 0xa7, 0xb0,
+ 0xf1, 0x40, 0xc1, 0x82,
+};
+static const unsigned char kat1652_addinreseed[] = {0};
+static const unsigned char kat1652_addin0[] = {0};
+static const unsigned char kat1652_addin1[] = {0};
+static const unsigned char kat1652_retbits[] = {
+ 0x04, 0x22, 0xd6, 0x0c, 0xec, 0xea, 0x42, 0x66, 0x12, 0x04, 0x4a, 0x3e,
+ 0x97, 0xc4, 0xc9, 0x62, 0x97, 0x5c, 0x86, 0xf5, 0x9b, 0x27, 0x8f, 0x80,
+ 0xab, 0xb5, 0xb5, 0xd2, 0x05, 0x37, 0xb3, 0x9f, 0x97, 0x93, 0x94, 0xdc,
+ 0x34, 0x18, 0xd0, 0x04, 0xf3, 0x91, 0x29, 0x7a, 0xf0, 0xfe, 0x5a, 0x17,
+ 0x42, 0x16, 0x6b, 0xec, 0x5b, 0xc0, 0x13, 0xe2, 0xe7, 0x32, 0x9c, 0xe3,
+ 0x08, 0xd8, 0xa0, 0xae,
+};
+static const struct drbg_kat_pr_false kat1652_t = {
+ 1, kat1652_entropyin, kat1652_nonce, kat1652_persstr,
+ kat1652_entropyinreseed, kat1652_addinreseed, kat1652_addin0,
+ kat1652_addin1, kat1652_retbits
+};
+static const struct drbg_kat kat1652 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1652_t
+};
+
+static const unsigned char kat1653_entropyin[] = {
+ 0x63, 0x08, 0xf7, 0xcc, 0xbf, 0xe7, 0x46, 0x9b, 0x1a, 0x9d, 0x97, 0x27,
+ 0x4a, 0x94, 0x03, 0xbb,
+};
+static const unsigned char kat1653_nonce[] = {
+ 0x4f, 0x63, 0xa8, 0x62, 0x80, 0x8a, 0x0b, 0x5a,
+};
+static const unsigned char kat1653_persstr[] = {
+ 0x0a, 0xbf, 0x7c, 0x0b, 0x6e, 0xc5, 0x42, 0x38, 0x74, 0xc1, 0x70, 0x01,
+ 0xe1, 0x95, 0x34, 0x60,
+};
+static const unsigned char kat1653_entropyinreseed[] = {
+ 0xf2, 0xf8, 0x87, 0x15, 0xe1, 0x98, 0xc7, 0xe3, 0xee, 0x46, 0x52, 0x50,
+ 0x40, 0xd8, 0xd7, 0xde,
+};
+static const unsigned char kat1653_addinreseed[] = {0};
+static const unsigned char kat1653_addin0[] = {0};
+static const unsigned char kat1653_addin1[] = {0};
+static const unsigned char kat1653_retbits[] = {
+ 0x00, 0x8e, 0x17, 0xda, 0x77, 0x57, 0xaf, 0xbe, 0x5c, 0x5f, 0x2f, 0x79,
+ 0x08, 0x82, 0xe3, 0x10, 0x4e, 0x23, 0x43, 0x81, 0xba, 0x5a, 0xe3, 0xa9,
+ 0x9b, 0x7a, 0x45, 0x01, 0x47, 0x97, 0x3f, 0x54, 0x3c, 0x8a, 0xe0, 0x67,
+ 0x2e, 0xe7, 0x24, 0xea, 0xa4, 0x09, 0x73, 0xf0, 0xb7, 0x24, 0x61, 0x0f,
+ 0xc5, 0x12, 0x98, 0x12, 0x54, 0xa5, 0x45, 0x34, 0x43, 0xbd, 0x68, 0x25,
+ 0x3a, 0x67, 0x37, 0x83,
+};
+static const struct drbg_kat_pr_false kat1653_t = {
+ 2, kat1653_entropyin, kat1653_nonce, kat1653_persstr,
+ kat1653_entropyinreseed, kat1653_addinreseed, kat1653_addin0,
+ kat1653_addin1, kat1653_retbits
+};
+static const struct drbg_kat kat1653 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1653_t
+};
+
+static const unsigned char kat1654_entropyin[] = {
+ 0xe8, 0x9d, 0xac, 0x4d, 0x14, 0xab, 0xe1, 0x78, 0x3f, 0xe7, 0x9f, 0x9c,
+ 0xd7, 0x46, 0x6d, 0xfa,
+};
+static const unsigned char kat1654_nonce[] = {
+ 0x63, 0x2c, 0x72, 0x69, 0x6a, 0x65, 0x75, 0xcf,
+};
+static const unsigned char kat1654_persstr[] = {
+ 0xd1, 0x15, 0x42, 0x6c, 0x6a, 0xbc, 0xfc, 0x94, 0xdb, 0x8a, 0x03, 0x44,
+ 0x0f, 0xa6, 0x80, 0x69,
+};
+static const unsigned char kat1654_entropyinreseed[] = {
+ 0x14, 0xa7, 0x67, 0xa1, 0x6c, 0x2c, 0xc3, 0x5c, 0x38, 0x99, 0x28, 0xcc,
+ 0x9c, 0xae, 0x2c, 0x6e,
+};
+static const unsigned char kat1654_addinreseed[] = {0};
+static const unsigned char kat1654_addin0[] = {0};
+static const unsigned char kat1654_addin1[] = {0};
+static const unsigned char kat1654_retbits[] = {
+ 0x3a, 0x50, 0x4f, 0xd1, 0xc9, 0x5b, 0x6c, 0xdd, 0x10, 0x57, 0xb3, 0xaa,
+ 0x6e, 0xa9, 0xaf, 0xb0, 0xdd, 0x53, 0x47, 0x5f, 0x77, 0x4d, 0xf7, 0x79,
+ 0x7d, 0x94, 0x98, 0x53, 0xfc, 0xe5, 0x38, 0xe1, 0xa3, 0xf1, 0xbd, 0xfd,
+ 0x7b, 0xc8, 0x6f, 0xe0, 0xe4, 0x49, 0x6f, 0x21, 0x03, 0x51, 0xaf, 0xd0,
+ 0x64, 0x62, 0xc3, 0xe0, 0xfc, 0xb6, 0x6a, 0x54, 0x78, 0xcc, 0x54, 0xc8,
+ 0x54, 0x69, 0x0a, 0x69,
+};
+static const struct drbg_kat_pr_false kat1654_t = {
+ 3, kat1654_entropyin, kat1654_nonce, kat1654_persstr,
+ kat1654_entropyinreseed, kat1654_addinreseed, kat1654_addin0,
+ kat1654_addin1, kat1654_retbits
+};
+static const struct drbg_kat kat1654 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1654_t
+};
+
+static const unsigned char kat1655_entropyin[] = {
+ 0xa8, 0x5e, 0x33, 0xac, 0x6b, 0x70, 0x9b, 0x7d, 0xe2, 0xad, 0x77, 0x3f,
+ 0x77, 0x62, 0x8b, 0x32,
+};
+static const unsigned char kat1655_nonce[] = {
+ 0x7e, 0x5b, 0x6a, 0x38, 0xb6, 0x66, 0x0c, 0x54,
+};
+static const unsigned char kat1655_persstr[] = {
+ 0x1a, 0xbf, 0x0b, 0x86, 0x7a, 0xe7, 0x81, 0x0c, 0x52, 0xbc, 0x8b, 0xfe,
+ 0xd2, 0x43, 0x70, 0x59,
+};
+static const unsigned char kat1655_entropyinreseed[] = {
+ 0x65, 0xa8, 0xd3, 0xd0, 0xfe, 0xa0, 0x1a, 0x05, 0x16, 0x81, 0x24, 0x18,
+ 0x4d, 0xea, 0xb4, 0xf1,
+};
+static const unsigned char kat1655_addinreseed[] = {0};
+static const unsigned char kat1655_addin0[] = {0};
+static const unsigned char kat1655_addin1[] = {0};
+static const unsigned char kat1655_retbits[] = {
+ 0xb8, 0x7e, 0xba, 0x4b, 0xcf, 0x9b, 0x91, 0x48, 0x23, 0x81, 0x8b, 0xe7,
+ 0xd1, 0x3a, 0x73, 0xd7, 0xb2, 0xad, 0x39, 0xa0, 0xbb, 0x28, 0x95, 0x59,
+ 0xcb, 0x18, 0x62, 0x55, 0x26, 0x88, 0xe0, 0xd4, 0x22, 0x9a, 0x7b, 0x10,
+ 0x69, 0xe2, 0xd4, 0x59, 0xfb, 0xbe, 0x38, 0x52, 0xd5, 0x48, 0xfb, 0x31,
+ 0x60, 0x26, 0x02, 0x55, 0x19, 0x41, 0x52, 0xe6, 0x2a, 0x3c, 0xde, 0xb7,
+ 0xaf, 0x81, 0x6f, 0xf0,
+};
+static const struct drbg_kat_pr_false kat1655_t = {
+ 4, kat1655_entropyin, kat1655_nonce, kat1655_persstr,
+ kat1655_entropyinreseed, kat1655_addinreseed, kat1655_addin0,
+ kat1655_addin1, kat1655_retbits
+};
+static const struct drbg_kat kat1655 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1655_t
+};
+
+static const unsigned char kat1656_entropyin[] = {
+ 0x0f, 0xb4, 0x03, 0xce, 0x51, 0x3c, 0x91, 0x48, 0xef, 0xb4, 0x97, 0x31,
+ 0x39, 0xda, 0x3c, 0x1b,
+};
+static const unsigned char kat1656_nonce[] = {
+ 0xbb, 0x37, 0xf7, 0x3d, 0xf2, 0x80, 0xc7, 0xba,
+};
+static const unsigned char kat1656_persstr[] = {
+ 0xad, 0x71, 0x2e, 0xe9, 0x6e, 0xe9, 0x6a, 0xd8, 0x21, 0x08, 0x81, 0x5d,
+ 0x97, 0x5f, 0x0f, 0x74,
+};
+static const unsigned char kat1656_entropyinreseed[] = {
+ 0xfb, 0xd8, 0x71, 0x7c, 0x36, 0xc2, 0xfa, 0x4d, 0xfe, 0x1d, 0x9a, 0x69,
+ 0x0b, 0x5d, 0x16, 0xaf,
+};
+static const unsigned char kat1656_addinreseed[] = {0};
+static const unsigned char kat1656_addin0[] = {0};
+static const unsigned char kat1656_addin1[] = {0};
+static const unsigned char kat1656_retbits[] = {
+ 0xbc, 0x16, 0xda, 0x47, 0xe6, 0x4d, 0x48, 0x01, 0xc4, 0xc4, 0x74, 0x08,
+ 0x8a, 0xa5, 0x35, 0x64, 0x67, 0x32, 0x31, 0xda, 0xd9, 0xda, 0x7e, 0x76,
+ 0xb4, 0xff, 0x8e, 0x5b, 0xe6, 0x53, 0xd5, 0x61, 0xd5, 0x4a, 0xcf, 0xd2,
+ 0xa5, 0x5e, 0x0f, 0x4c, 0xae, 0x45, 0x33, 0x3e, 0xef, 0x0c, 0xcc, 0x28,
+ 0xab, 0xd9, 0x4f, 0x5e, 0x11, 0x8e, 0xfa, 0x7b, 0x3c, 0x51, 0x88, 0x39,
+ 0xb7, 0xe4, 0x09, 0xe0,
+};
+static const struct drbg_kat_pr_false kat1656_t = {
+ 5, kat1656_entropyin, kat1656_nonce, kat1656_persstr,
+ kat1656_entropyinreseed, kat1656_addinreseed, kat1656_addin0,
+ kat1656_addin1, kat1656_retbits
+};
+static const struct drbg_kat kat1656 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1656_t
+};
+
+static const unsigned char kat1657_entropyin[] = {
+ 0x2b, 0xa9, 0xc0, 0x9f, 0xa8, 0x33, 0xa4, 0xa1, 0x98, 0xff, 0x06, 0x79,
+ 0xa0, 0x22, 0x61, 0xa1,
+};
+static const unsigned char kat1657_nonce[] = {
+ 0x76, 0x4e, 0x8c, 0x46, 0x05, 0x71, 0x1d, 0x49,
+};
+static const unsigned char kat1657_persstr[] = {
+ 0x46, 0x54, 0x96, 0xdd, 0xad, 0xd1, 0x00, 0x86, 0xb7, 0xe6, 0xc7, 0x57,
+ 0x80, 0x41, 0x81, 0x77,
+};
+static const unsigned char kat1657_entropyinreseed[] = {
+ 0xda, 0x68, 0x1a, 0x3f, 0x60, 0x3a, 0x2a, 0xd1, 0xea, 0xae, 0x2e, 0x7e,
+ 0xfd, 0xba, 0x51, 0x97,
+};
+static const unsigned char kat1657_addinreseed[] = {0};
+static const unsigned char kat1657_addin0[] = {0};
+static const unsigned char kat1657_addin1[] = {0};
+static const unsigned char kat1657_retbits[] = {
+ 0xd6, 0x35, 0x28, 0xe2, 0x80, 0x46, 0x8c, 0x71, 0x92, 0xcf, 0x77, 0x39,
+ 0xdc, 0x3b, 0xcd, 0xf5, 0x6b, 0x3a, 0x85, 0x60, 0x92, 0x4c, 0x7d, 0x18,
+ 0x48, 0xd6, 0x4a, 0xe4, 0x0a, 0x0e, 0x5c, 0x12, 0x4b, 0x47, 0xd2, 0xd1,
+ 0xcc, 0x43, 0x9a, 0x04, 0xd7, 0x53, 0xb3, 0xb8, 0x85, 0x8f, 0xc2, 0x27,
+ 0xb5, 0xdf, 0x11, 0x86, 0x4b, 0xfa, 0x22, 0x4e, 0x46, 0xbf, 0x0a, 0x6a,
+ 0x01, 0xba, 0x68, 0x3e,
+};
+static const struct drbg_kat_pr_false kat1657_t = {
+ 6, kat1657_entropyin, kat1657_nonce, kat1657_persstr,
+ kat1657_entropyinreseed, kat1657_addinreseed, kat1657_addin0,
+ kat1657_addin1, kat1657_retbits
+};
+static const struct drbg_kat kat1657 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1657_t
+};
+
+static const unsigned char kat1658_entropyin[] = {
+ 0x79, 0x7b, 0x61, 0x23, 0x10, 0xf4, 0xd8, 0x97, 0x55, 0xef, 0x63, 0xd5,
+ 0x89, 0x51, 0xcc, 0x90,
+};
+static const unsigned char kat1658_nonce[] = {
+ 0x21, 0xb8, 0x21, 0xf9, 0x37, 0xd6, 0xe6, 0x60,
+};
+static const unsigned char kat1658_persstr[] = {
+ 0x9b, 0x92, 0x77, 0xb3, 0x68, 0x5d, 0xc0, 0x30, 0x12, 0xa4, 0x2d, 0x2f,
+ 0x01, 0xbb, 0x28, 0xfb,
+};
+static const unsigned char kat1658_entropyinreseed[] = {
+ 0x60, 0x52, 0x3f, 0x67, 0x64, 0xd4, 0x2a, 0x6f, 0x94, 0x79, 0x39, 0xed,
+ 0x11, 0x51, 0x15, 0x86,
+};
+static const unsigned char kat1658_addinreseed[] = {0};
+static const unsigned char kat1658_addin0[] = {0};
+static const unsigned char kat1658_addin1[] = {0};
+static const unsigned char kat1658_retbits[] = {
+ 0x4b, 0x2f, 0xa5, 0x53, 0x83, 0x97, 0xeb, 0x49, 0xf6, 0xb6, 0xd7, 0x6d,
+ 0x55, 0xe5, 0x32, 0xb5, 0x78, 0xbf, 0xc5, 0xa1, 0xf2, 0x88, 0xd7, 0xba,
+ 0x20, 0xc8, 0x51, 0x81, 0x66, 0x97, 0x5b, 0xee, 0x53, 0xe6, 0x3f, 0xe7,
+ 0xdf, 0x54, 0xcc, 0xf6, 0x9e, 0x0b, 0x3f, 0xfa, 0x07, 0x72, 0x78, 0xf9,
+ 0x2c, 0xc1, 0x44, 0x80, 0x00, 0xd9, 0x6d, 0x82, 0xcb, 0x45, 0xc0, 0x55,
+ 0xce, 0x6c, 0x00, 0xeb,
+};
+static const struct drbg_kat_pr_false kat1658_t = {
+ 7, kat1658_entropyin, kat1658_nonce, kat1658_persstr,
+ kat1658_entropyinreseed, kat1658_addinreseed, kat1658_addin0,
+ kat1658_addin1, kat1658_retbits
+};
+static const struct drbg_kat kat1658 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1658_t
+};
+
+static const unsigned char kat1659_entropyin[] = {
+ 0xd0, 0x85, 0x26, 0xc1, 0x78, 0x83, 0x93, 0x93, 0x24, 0xfa, 0x66, 0xfd,
+ 0xe8, 0x01, 0xa3, 0xbd,
+};
+static const unsigned char kat1659_nonce[] = {
+ 0x21, 0xc2, 0x84, 0x91, 0xa8, 0xfe, 0x20, 0xd9,
+};
+static const unsigned char kat1659_persstr[] = {
+ 0x6e, 0xf8, 0x10, 0x47, 0x7d, 0x4d, 0x96, 0x14, 0x39, 0x89, 0x46, 0x65,
+ 0x3f, 0xd3, 0x47, 0x12,
+};
+static const unsigned char kat1659_entropyinreseed[] = {
+ 0x40, 0x64, 0x5b, 0xeb, 0x71, 0xb4, 0x0f, 0x95, 0x06, 0x3d, 0x49, 0x2e,
+ 0xd3, 0xbe, 0xd7, 0xc1,
+};
+static const unsigned char kat1659_addinreseed[] = {0};
+static const unsigned char kat1659_addin0[] = {0};
+static const unsigned char kat1659_addin1[] = {0};
+static const unsigned char kat1659_retbits[] = {
+ 0x0b, 0x2c, 0x24, 0x31, 0x61, 0xc8, 0x38, 0x6e, 0xc9, 0x96, 0xa8, 0x69,
+ 0x3f, 0xc3, 0x07, 0xc0, 0xc5, 0xa0, 0x94, 0xa0, 0x23, 0xc8, 0x12, 0x33,
+ 0x7f, 0x8d, 0x47, 0x6b, 0xef, 0x8c, 0x96, 0xc6, 0xf7, 0x16, 0x87, 0x02,
+ 0x76, 0xb0, 0x90, 0x09, 0x49, 0x4d, 0x64, 0xdf, 0x31, 0xe6, 0x6f, 0xf6,
+ 0xd0, 0x67, 0xfe, 0x58, 0x9c, 0x35, 0x7e, 0xec, 0x5a, 0xc9, 0x9c, 0xc9,
+ 0xa8, 0x1b, 0x2d, 0x6e,
+};
+static const struct drbg_kat_pr_false kat1659_t = {
+ 8, kat1659_entropyin, kat1659_nonce, kat1659_persstr,
+ kat1659_entropyinreseed, kat1659_addinreseed, kat1659_addin0,
+ kat1659_addin1, kat1659_retbits
+};
+static const struct drbg_kat kat1659 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1659_t
+};
+
+static const unsigned char kat1660_entropyin[] = {
+ 0xb9, 0x1a, 0xfe, 0xe6, 0x05, 0x7b, 0xf4, 0xc6, 0x30, 0x69, 0x64, 0xb8,
+ 0x6f, 0xbb, 0xbc, 0xbe,
+};
+static const unsigned char kat1660_nonce[] = {
+ 0x09, 0x06, 0x42, 0x79, 0x9a, 0x48, 0x0b, 0xe1,
+};
+static const unsigned char kat1660_persstr[] = {
+ 0xfc, 0xf6, 0x3a, 0x6b, 0x30, 0xc2, 0xfd, 0xd9, 0xa5, 0x35, 0x55, 0x77,
+ 0x96, 0x05, 0x98, 0x4c,
+};
+static const unsigned char kat1660_entropyinreseed[] = {
+ 0x1b, 0x47, 0x80, 0x0f, 0x5b, 0x61, 0x89, 0x11, 0x6c, 0x34, 0x1e, 0x9b,
+ 0x99, 0xc4, 0x3b, 0x01,
+};
+static const unsigned char kat1660_addinreseed[] = {0};
+static const unsigned char kat1660_addin0[] = {0};
+static const unsigned char kat1660_addin1[] = {0};
+static const unsigned char kat1660_retbits[] = {
+ 0x9d, 0x85, 0xb2, 0xaa, 0xad, 0x31, 0xe0, 0x24, 0x79, 0xe2, 0xaf, 0x3a,
+ 0x59, 0xcc, 0x61, 0xda, 0x98, 0xcd, 0xc2, 0x46, 0x50, 0x53, 0x56, 0x18,
+ 0x31, 0x8d, 0x93, 0xda, 0xfc, 0x18, 0x59, 0x0d, 0x5a, 0xf6, 0xa4, 0x20,
+ 0x25, 0x3d, 0x74, 0xd5, 0x29, 0x91, 0xb1, 0x22, 0x83, 0x76, 0x19, 0x8b,
+ 0x1c, 0xab, 0x0e, 0x12, 0x18, 0x43, 0x85, 0xe7, 0xc0, 0x28, 0x92, 0x3c,
+ 0x93, 0x94, 0x93, 0x10,
+};
+static const struct drbg_kat_pr_false kat1660_t = {
+ 9, kat1660_entropyin, kat1660_nonce, kat1660_persstr,
+ kat1660_entropyinreseed, kat1660_addinreseed, kat1660_addin0,
+ kat1660_addin1, kat1660_retbits
+};
+static const struct drbg_kat kat1660 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1660_t
+};
+
+static const unsigned char kat1661_entropyin[] = {
+ 0xa9, 0xaa, 0xfd, 0x15, 0xd1, 0x09, 0xd3, 0x0c, 0xf8, 0x89, 0xe6, 0x54,
+ 0x57, 0x92, 0xb8, 0x69,
+};
+static const unsigned char kat1661_nonce[] = {
+ 0x4d, 0xab, 0xcc, 0x8c, 0x29, 0x3b, 0x88, 0x16,
+};
+static const unsigned char kat1661_persstr[] = {
+ 0xa0, 0xe5, 0x66, 0x63, 0x70, 0x74, 0xc9, 0x40, 0x7c, 0x2f, 0x18, 0xf5,
+ 0x7f, 0x8b, 0x0c, 0x3e,
+};
+static const unsigned char kat1661_entropyinreseed[] = {
+ 0xd1, 0x8b, 0x43, 0x41, 0x3b, 0xc0, 0xc9, 0xbd, 0xc8, 0xb8, 0xca, 0x83,
+ 0xf2, 0x2b, 0x1c, 0x7b,
+};
+static const unsigned char kat1661_addinreseed[] = {0};
+static const unsigned char kat1661_addin0[] = {0};
+static const unsigned char kat1661_addin1[] = {0};
+static const unsigned char kat1661_retbits[] = {
+ 0x40, 0x58, 0xa7, 0xd0, 0x33, 0x09, 0xc5, 0x49, 0x4b, 0xa6, 0x82, 0x69,
+ 0xb4, 0x87, 0xac, 0x6e, 0xed, 0x2a, 0x8f, 0x20, 0x3d, 0xb9, 0x1d, 0xa9,
+ 0xe0, 0x94, 0x13, 0x7e, 0x53, 0xcd, 0x48, 0x45, 0x3d, 0x50, 0xe3, 0xa6,
+ 0x41, 0xdb, 0xc1, 0x9a, 0x4a, 0x7e, 0x64, 0x09, 0xf4, 0xc1, 0xf7, 0x09,
+ 0x71, 0x9e, 0xf8, 0x35, 0xce, 0xcd, 0xb7, 0xf1, 0xe5, 0xc4, 0xa3, 0xe4,
+ 0x4f, 0x12, 0x5e, 0x22,
+};
+static const struct drbg_kat_pr_false kat1661_t = {
+ 10, kat1661_entropyin, kat1661_nonce, kat1661_persstr,
+ kat1661_entropyinreseed, kat1661_addinreseed, kat1661_addin0,
+ kat1661_addin1, kat1661_retbits
+};
+static const struct drbg_kat kat1661 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1661_t
+};
+
+static const unsigned char kat1662_entropyin[] = {
+ 0x8b, 0xd6, 0x76, 0x14, 0x99, 0x6c, 0x00, 0xfa, 0xe1, 0xc1, 0x51, 0xfa,
+ 0xe1, 0xb7, 0x8b, 0xbf,
+};
+static const unsigned char kat1662_nonce[] = {
+ 0x32, 0xba, 0x6e, 0x01, 0x50, 0xa0, 0x8c, 0x02,
+};
+static const unsigned char kat1662_persstr[] = {
+ 0x5a, 0x43, 0x28, 0xea, 0x5b, 0x5c, 0xf8, 0xe1, 0x6a, 0xe2, 0x1e, 0x8d,
+ 0xf0, 0x6d, 0xf9, 0x40,
+};
+static const unsigned char kat1662_entropyinreseed[] = {
+ 0xcd, 0xd5, 0xe2, 0x49, 0xa7, 0x77, 0x09, 0xe0, 0x2d, 0x34, 0xae, 0x6a,
+ 0x4c, 0x71, 0x38, 0x76,
+};
+static const unsigned char kat1662_addinreseed[] = {0};
+static const unsigned char kat1662_addin0[] = {0};
+static const unsigned char kat1662_addin1[] = {0};
+static const unsigned char kat1662_retbits[] = {
+ 0x61, 0x6c, 0xfe, 0x61, 0x27, 0xed, 0xdc, 0xca, 0xdd, 0xaa, 0xf8, 0x16,
+ 0x24, 0x82, 0x93, 0xa7, 0x1f, 0xed, 0x14, 0x66, 0x1a, 0xc0, 0x67, 0xeb,
+ 0xcb, 0xb8, 0xb3, 0x15, 0xc7, 0x73, 0xbd, 0x54, 0xe5, 0x41, 0x6c, 0xb1,
+ 0xf2, 0xf4, 0xe3, 0xf1, 0x5e, 0x78, 0x5b, 0x9a, 0x48, 0xb5, 0xa3, 0x10,
+ 0xcf, 0x24, 0x1d, 0x53, 0xb2, 0x11, 0xbc, 0x20, 0x70, 0xc7, 0x4f, 0x53,
+ 0xf3, 0x16, 0x31, 0x09,
+};
+static const struct drbg_kat_pr_false kat1662_t = {
+ 11, kat1662_entropyin, kat1662_nonce, kat1662_persstr,
+ kat1662_entropyinreseed, kat1662_addinreseed, kat1662_addin0,
+ kat1662_addin1, kat1662_retbits
+};
+static const struct drbg_kat kat1662 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1662_t
+};
+
+static const unsigned char kat1663_entropyin[] = {
+ 0x12, 0x3c, 0x43, 0x44, 0x43, 0x6c, 0xc0, 0x99, 0x0b, 0x3a, 0xde, 0x31,
+ 0x83, 0x0a, 0x97, 0x4b,
+};
+static const unsigned char kat1663_nonce[] = {
+ 0xb5, 0xcd, 0x6c, 0x8b, 0xc4, 0x20, 0x25, 0x8b,
+};
+static const unsigned char kat1663_persstr[] = {
+ 0xf9, 0xd9, 0xb8, 0xd8, 0xd1, 0xd3, 0xef, 0x2c, 0x3c, 0xec, 0x38, 0x96,
+ 0x8c, 0x40, 0x6c, 0x03,
+};
+static const unsigned char kat1663_entropyinreseed[] = {
+ 0x94, 0x90, 0x60, 0x24, 0xe8, 0xb4, 0xf5, 0x73, 0x20, 0x88, 0x70, 0xc4,
+ 0x04, 0x26, 0x7d, 0x30,
+};
+static const unsigned char kat1663_addinreseed[] = {0};
+static const unsigned char kat1663_addin0[] = {0};
+static const unsigned char kat1663_addin1[] = {0};
+static const unsigned char kat1663_retbits[] = {
+ 0x35, 0x11, 0xd4, 0x1a, 0xcf, 0x56, 0xd6, 0x37, 0xa8, 0x13, 0x80, 0x3d,
+ 0x1c, 0xdb, 0xed, 0xfa, 0xd5, 0xa2, 0xc3, 0x22, 0xea, 0x64, 0x49, 0x87,
+ 0x29, 0x01, 0x44, 0x68, 0xee, 0x2e, 0x7a, 0x26, 0x33, 0xfc, 0x37, 0xf3,
+ 0xca, 0x11, 0xbe, 0x7e, 0x49, 0x87, 0xf5, 0x30, 0xf1, 0xf9, 0xa9, 0x66,
+ 0x49, 0x82, 0x9e, 0xb6, 0xda, 0x52, 0x4c, 0xf9, 0xbd, 0x0c, 0x7f, 0x20,
+ 0xb2, 0x19, 0x94, 0x15,
+};
+static const struct drbg_kat_pr_false kat1663_t = {
+ 12, kat1663_entropyin, kat1663_nonce, kat1663_persstr,
+ kat1663_entropyinreseed, kat1663_addinreseed, kat1663_addin0,
+ kat1663_addin1, kat1663_retbits
+};
+static const struct drbg_kat kat1663 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1663_t
+};
+
+static const unsigned char kat1664_entropyin[] = {
+ 0x0c, 0xfc, 0x00, 0xd7, 0x72, 0xf3, 0x8e, 0x58, 0xa6, 0xef, 0xde, 0xde,
+ 0xf1, 0xfa, 0xc3, 0xd9,
+};
+static const unsigned char kat1664_nonce[] = {
+ 0x46, 0x99, 0x6d, 0xce, 0xa6, 0xed, 0x65, 0x2f,
+};
+static const unsigned char kat1664_persstr[] = {
+ 0x68, 0xe3, 0x9a, 0xe1, 0x43, 0xbd, 0x7a, 0xf7, 0x59, 0x33, 0x9d, 0xf9,
+ 0xcf, 0x86, 0x11, 0x22,
+};
+static const unsigned char kat1664_entropyinreseed[] = {
+ 0x5c, 0x7e, 0xe1, 0x19, 0x2c, 0xb3, 0xb4, 0x3d, 0x30, 0x29, 0xee, 0x6c,
+ 0xe7, 0x85, 0x95, 0x34,
+};
+static const unsigned char kat1664_addinreseed[] = {0};
+static const unsigned char kat1664_addin0[] = {0};
+static const unsigned char kat1664_addin1[] = {0};
+static const unsigned char kat1664_retbits[] = {
+ 0x6f, 0xb8, 0x87, 0x1f, 0xf3, 0x19, 0xf6, 0x31, 0x19, 0x08, 0x18, 0x30,
+ 0xd3, 0x8d, 0x43, 0xf3, 0x77, 0x40, 0xc3, 0xb8, 0x62, 0xd6, 0xb2, 0xa0,
+ 0x78, 0x0d, 0x89, 0xbc, 0xb3, 0x89, 0x21, 0xa0, 0x34, 0x96, 0xfe, 0x8a,
+ 0x09, 0x79, 0x2f, 0x4f, 0x64, 0xbd, 0x0c, 0xa1, 0xb6, 0x07, 0x1f, 0xfc,
+ 0x8d, 0xb7, 0x6d, 0xe1, 0xcd, 0xd0, 0xb0, 0x9c, 0x2a, 0x0e, 0xa1, 0x92,
+ 0x2e, 0xad, 0x60, 0x43,
+};
+static const struct drbg_kat_pr_false kat1664_t = {
+ 13, kat1664_entropyin, kat1664_nonce, kat1664_persstr,
+ kat1664_entropyinreseed, kat1664_addinreseed, kat1664_addin0,
+ kat1664_addin1, kat1664_retbits
+};
+static const struct drbg_kat kat1664 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1664_t
+};
+
+static const unsigned char kat1665_entropyin[] = {
+ 0x81, 0x3c, 0xe8, 0xc1, 0x5b, 0xe0, 0xee, 0xf6, 0xce, 0x6e, 0x11, 0x9a,
+ 0x5b, 0x3f, 0xa2, 0x3c,
+};
+static const unsigned char kat1665_nonce[] = {
+ 0xe4, 0x71, 0x36, 0x67, 0x32, 0x80, 0x3f, 0x51,
+};
+static const unsigned char kat1665_persstr[] = {
+ 0xa3, 0x5b, 0x7d, 0x70, 0x37, 0xf4, 0xe1, 0xa2, 0xbf, 0xe3, 0xff, 0x17,
+ 0xc2, 0xce, 0xe8, 0x7a,
+};
+static const unsigned char kat1665_entropyinreseed[] = {
+ 0x8f, 0x8d, 0xae, 0xf2, 0x5b, 0x0c, 0x78, 0xae, 0x5a, 0xdd, 0x50, 0xce,
+ 0xa3, 0x05, 0x47, 0x20,
+};
+static const unsigned char kat1665_addinreseed[] = {0};
+static const unsigned char kat1665_addin0[] = {0};
+static const unsigned char kat1665_addin1[] = {0};
+static const unsigned char kat1665_retbits[] = {
+ 0x01, 0x70, 0x65, 0x1e, 0x7e, 0xec, 0x1f, 0x00, 0x11, 0xc9, 0x57, 0x31,
+ 0x3a, 0x9c, 0x33, 0x20, 0x21, 0x96, 0x4a, 0xbe, 0xba, 0x2e, 0x62, 0x6e,
+ 0xfc, 0x59, 0xd8, 0xb0, 0x30, 0x22, 0xf8, 0xb2, 0x77, 0x2c, 0xe3, 0x54,
+ 0xe5, 0xdd, 0x7d, 0x6c, 0x20, 0x95, 0x1c, 0xb6, 0x34, 0x1c, 0xe9, 0x86,
+ 0x1b, 0x35, 0x34, 0x6e, 0x9d, 0x16, 0x6d, 0x92, 0xce, 0x11, 0xfb, 0xc0,
+ 0xad, 0x21, 0xb4, 0x64,
+};
+static const struct drbg_kat_pr_false kat1665_t = {
+ 14, kat1665_entropyin, kat1665_nonce, kat1665_persstr,
+ kat1665_entropyinreseed, kat1665_addinreseed, kat1665_addin0,
+ kat1665_addin1, kat1665_retbits
+};
+static const struct drbg_kat kat1665 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat1665_t
+};
+
+static const unsigned char kat1666_entropyin[] = {
+ 0xe7, 0x96, 0xb7, 0x28, 0xec, 0x69, 0xcf, 0x79, 0xf9, 0x7e, 0xaa, 0x2c,
+ 0x06, 0xe7, 0x18, 0x7f,
+};
+static const unsigned char kat1666_nonce[] = {
+ 0x35, 0x68, 0xf0, 0x11, 0xc2, 0x82, 0xc0, 0x1d,
+};
+static const unsigned char kat1666_persstr[] = {
+ 0xb5, 0xae, 0x69, 0x31, 0x92, 0xff, 0x05, 0x7e, 0x68, 0x2a, 0x62, 0x9b,
+ 0x84, 0xb8, 0xfe, 0xec,
+};
+static const unsigned char kat1666_entropyinreseed[] = {
+ 0x31, 0xc4, 0xdb, 0x57, 0x13, 0xe0, 0x8e, 0x4e, 0x8c, 0xfb, 0xf7, 0x77,
+ 0xb9, 0x62, 0x1a, 0x04,
+};
+static const unsigned char kat1666_addinreseed[] = {
+ 0xb6, 0x99, 0x76, 0x17, 0xe4, 0xe2, 0xc9, 0x4d, 0x8a, 0x3b, 0xf3, 0xc6,
+ 0x14, 0x39, 0xa5, 0x5e,
+};
+static const unsigned char kat1666_addin0[] = {
+ 0xc3, 0x99, 0x8f, 0x9e, 0xdd, 0x93, 0x82, 0x86, 0xd7, 0xfa, 0xd2, 0xcc,
+ 0x75, 0x96, 0x3f, 0xdd,
+};
+static const unsigned char kat1666_addin1[] = {
+ 0x64, 0x8f, 0xc7, 0x36, 0x0a, 0xe2, 0x70, 0x02, 0xe1, 0xaa, 0x77, 0xd8,
+ 0x58, 0x95, 0xb8, 0x9e,
+};
+static const unsigned char kat1666_retbits[] = {
+ 0x6c, 0xe1, 0xeb, 0x64, 0xfd, 0xca, 0x9f, 0xd3, 0xb3, 0xef, 0x61, 0x91,
+ 0x3c, 0xc1, 0xc2, 0x14, 0xf9, 0x3b, 0xca, 0x0e, 0x51, 0x5d, 0x05, 0x14,
+ 0xfa, 0x48, 0x8d, 0x8a, 0xf5, 0x29, 0xf4, 0x98, 0x92, 0xbb, 0x7c, 0xd7,
+ 0xfb, 0xf5, 0x84, 0xeb, 0x02, 0x0f, 0xd8, 0xcb, 0x2a, 0xf9, 0xe6, 0xdb,
+ 0xfc, 0xe8, 0xa8, 0xa3, 0x43, 0x9b, 0xe8, 0x5d, 0x5c, 0xc4, 0xde, 0x76,
+ 0x40, 0xb4, 0xef, 0x7d,
+};
+static const struct drbg_kat_pr_false kat1666_t = {
+ 0, kat1666_entropyin, kat1666_nonce, kat1666_persstr,
+ kat1666_entropyinreseed, kat1666_addinreseed, kat1666_addin0,
+ kat1666_addin1, kat1666_retbits
+};
+static const struct drbg_kat kat1666 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1666_t
+};
+
+static const unsigned char kat1667_entropyin[] = {
+ 0x94, 0xa7, 0x99, 0xa2, 0xc3, 0x52, 0xbb, 0xc8, 0x24, 0x92, 0x1a, 0x75,
+ 0xdb, 0x0b, 0x15, 0x90,
+};
+static const unsigned char kat1667_nonce[] = {
+ 0xf5, 0xfc, 0xd4, 0xcf, 0x35, 0x32, 0x7d, 0xbe,
+};
+static const unsigned char kat1667_persstr[] = {
+ 0xde, 0xff, 0xfa, 0xfd, 0x85, 0xc8, 0x47, 0x35, 0xbe, 0xae, 0xe8, 0x7b,
+ 0x3d, 0x22, 0x66, 0x84,
+};
+static const unsigned char kat1667_entropyinreseed[] = {
+ 0xe6, 0x95, 0x0d, 0x5b, 0xd3, 0x1c, 0x48, 0x2b, 0x6d, 0x83, 0xc6, 0x46,
+ 0xd7, 0xbf, 0xab, 0x07,
+};
+static const unsigned char kat1667_addinreseed[] = {
+ 0x90, 0x3b, 0x9c, 0x07, 0x91, 0x79, 0x4c, 0xf5, 0xc8, 0x82, 0x48, 0x82,
+ 0x54, 0x22, 0xab, 0x79,
+};
+static const unsigned char kat1667_addin0[] = {
+ 0x1d, 0x08, 0x7b, 0xde, 0x28, 0xb6, 0x63, 0x53, 0xe0, 0x26, 0x1d, 0xb4,
+ 0xf9, 0x9a, 0xc5, 0xf8,
+};
+static const unsigned char kat1667_addin1[] = {
+ 0x90, 0x9a, 0x9f, 0x61, 0xa8, 0x7a, 0x68, 0x1d, 0x08, 0x44, 0x1c, 0x26,
+ 0x1e, 0x33, 0xed, 0xae,
+};
+static const unsigned char kat1667_retbits[] = {
+ 0x55, 0x1f, 0x8b, 0x60, 0x71, 0xe4, 0xa1, 0xbd, 0xe5, 0x9b, 0x60, 0x6f,
+ 0x8e, 0x3d, 0xf0, 0x33, 0x50, 0x1c, 0x1e, 0x45, 0xa0, 0xf7, 0x18, 0xb6,
+ 0xbd, 0xf0, 0x6a, 0x64, 0xfc, 0xef, 0x9c, 0xda, 0xec, 0x65, 0xba, 0x60,
+ 0x89, 0x12, 0x5a, 0xd0, 0xa2, 0x5e, 0x61, 0x7a, 0x03, 0xac, 0xc2, 0x6a,
+ 0x26, 0x2f, 0xe4, 0xef, 0x4b, 0x64, 0x60, 0x52, 0x4c, 0xf6, 0xbf, 0x92,
+ 0x11, 0x08, 0xd5, 0xff,
+};
+static const struct drbg_kat_pr_false kat1667_t = {
+ 1, kat1667_entropyin, kat1667_nonce, kat1667_persstr,
+ kat1667_entropyinreseed, kat1667_addinreseed, kat1667_addin0,
+ kat1667_addin1, kat1667_retbits
+};
+static const struct drbg_kat kat1667 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1667_t
+};
+
+static const unsigned char kat1668_entropyin[] = {
+ 0xed, 0x3f, 0x63, 0x46, 0xca, 0x31, 0x6c, 0xea, 0x24, 0x55, 0x8d, 0x0f,
+ 0x1a, 0xaa, 0x4b, 0xac,
+};
+static const unsigned char kat1668_nonce[] = {
+ 0xcf, 0xfb, 0xd0, 0xed, 0x03, 0x36, 0xfd, 0x69,
+};
+static const unsigned char kat1668_persstr[] = {
+ 0x07, 0xd6, 0xfa, 0x69, 0x41, 0xfe, 0x2a, 0x4a, 0xf3, 0x5b, 0x4f, 0x93,
+ 0x9c, 0x2c, 0xa8, 0x9d,
+};
+static const unsigned char kat1668_entropyinreseed[] = {
+ 0x1d, 0xad, 0xbf, 0xf4, 0xd9, 0x17, 0xba, 0x52, 0x36, 0x75, 0x2d, 0xe8,
+ 0xe0, 0x1e, 0x42, 0xa8,
+};
+static const unsigned char kat1668_addinreseed[] = {
+ 0x03, 0x1f, 0x2b, 0x1f, 0x31, 0x30, 0xd0, 0xdb, 0x79, 0x80, 0x5d, 0x9c,
+ 0x78, 0x7c, 0x18, 0x99,
+};
+static const unsigned char kat1668_addin0[] = {
+ 0xb2, 0xb2, 0xee, 0xa5, 0xfa, 0x8a, 0x18, 0x81, 0xe2, 0x61, 0x5b, 0x46,
+ 0x79, 0xec, 0x4d, 0x9c,
+};
+static const unsigned char kat1668_addin1[] = {
+ 0x00, 0xf6, 0x1c, 0x3a, 0x37, 0x45, 0x36, 0xf8, 0x9b, 0xfc, 0xcf, 0x7e,
+ 0x43, 0xa3, 0xb0, 0x4b,
+};
+static const unsigned char kat1668_retbits[] = {
+ 0x8c, 0xc6, 0xb6, 0xdb, 0xb0, 0x95, 0xc8, 0x7e, 0x0e, 0xde, 0x01, 0xf5,
+ 0xe8, 0x7b, 0x8a, 0xaf, 0x0e, 0xad, 0xdf, 0x43, 0xfd, 0x2d, 0xff, 0xc0,
+ 0x84, 0x39, 0xd1, 0x06, 0xeb, 0xbe, 0x51, 0x73, 0xd5, 0xb3, 0xeb, 0x61,
+ 0xf3, 0x89, 0x63, 0xc1, 0x9b, 0x5d, 0xb1, 0x83, 0x3b, 0xe1, 0x44, 0x2e,
+ 0x8a, 0x50, 0x99, 0x25, 0x1c, 0xc6, 0x6d, 0x75, 0x77, 0x3b, 0xc6, 0xfa,
+ 0x49, 0x36, 0x73, 0x2a,
+};
+static const struct drbg_kat_pr_false kat1668_t = {
+ 2, kat1668_entropyin, kat1668_nonce, kat1668_persstr,
+ kat1668_entropyinreseed, kat1668_addinreseed, kat1668_addin0,
+ kat1668_addin1, kat1668_retbits
+};
+static const struct drbg_kat kat1668 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1668_t
+};
+
+static const unsigned char kat1669_entropyin[] = {
+ 0x6b, 0x47, 0x6b, 0x20, 0x1b, 0x0c, 0xaa, 0x27, 0x0e, 0xef, 0x30, 0xb0,
+ 0x94, 0x06, 0x82, 0xa3,
+};
+static const unsigned char kat1669_nonce[] = {
+ 0xa1, 0xd0, 0x95, 0x4c, 0x17, 0x16, 0x7b, 0x17,
+};
+static const unsigned char kat1669_persstr[] = {
+ 0x65, 0x42, 0x79, 0xa6, 0x97, 0x2d, 0x0f, 0x18, 0xca, 0x99, 0x0f, 0xb9,
+ 0xe8, 0x7f, 0x40, 0x89,
+};
+static const unsigned char kat1669_entropyinreseed[] = {
+ 0xf4, 0x36, 0x74, 0x80, 0x08, 0x6b, 0x48, 0x22, 0xa3, 0xb5, 0x4d, 0xd5,
+ 0xb1, 0xf4, 0xd3, 0x10,
+};
+static const unsigned char kat1669_addinreseed[] = {
+ 0xde, 0x6e, 0x78, 0x40, 0x68, 0xb0, 0x51, 0xf6, 0x04, 0x27, 0xa3, 0xf4,
+ 0x9d, 0xde, 0x44, 0x6a,
+};
+static const unsigned char kat1669_addin0[] = {
+ 0xa6, 0xa5, 0xd6, 0x1d, 0x96, 0x97, 0xd9, 0x33, 0x64, 0xe7, 0xe5, 0x50,
+ 0xa9, 0x3c, 0xf7, 0xd7,
+};
+static const unsigned char kat1669_addin1[] = {
+ 0xa4, 0xe9, 0x48, 0x81, 0x1c, 0x45, 0x55, 0x00, 0x20, 0x62, 0xf5, 0xe7,
+ 0x6e, 0x89, 0x2f, 0xfc,
+};
+static const unsigned char kat1669_retbits[] = {
+ 0x33, 0x2a, 0x38, 0x68, 0x36, 0x2a, 0xfe, 0xe0, 0x36, 0xe8, 0x07, 0x3f,
+ 0x1c, 0x83, 0x91, 0xff, 0xca, 0x33, 0xc7, 0x24, 0x32, 0x5a, 0xa3, 0xf6,
+ 0x6c, 0x79, 0x71, 0x52, 0xb9, 0x97, 0x8e, 0xab, 0xe8, 0x31, 0x92, 0x29,
+ 0xf8, 0xae, 0x3e, 0x52, 0x3f, 0x03, 0xb1, 0x47, 0xa8, 0x7b, 0xee, 0x27,
+ 0x8f, 0xa3, 0x35, 0x51, 0xd5, 0xf3, 0x04, 0x28, 0xb5, 0x6b, 0xb0, 0x1e,
+ 0x3b, 0x3c, 0x1c, 0xf3,
+};
+static const struct drbg_kat_pr_false kat1669_t = {
+ 3, kat1669_entropyin, kat1669_nonce, kat1669_persstr,
+ kat1669_entropyinreseed, kat1669_addinreseed, kat1669_addin0,
+ kat1669_addin1, kat1669_retbits
+};
+static const struct drbg_kat kat1669 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1669_t
+};
+
+static const unsigned char kat1670_entropyin[] = {
+ 0x70, 0xca, 0xd5, 0x57, 0xde, 0xfa, 0xa0, 0xc8, 0xb3, 0x7c, 0x16, 0x7c,
+ 0x97, 0x23, 0xdb, 0xc7,
+};
+static const unsigned char kat1670_nonce[] = {
+ 0xdb, 0xe8, 0x9a, 0x10, 0x6f, 0x15, 0xd1, 0x12,
+};
+static const unsigned char kat1670_persstr[] = {
+ 0x84, 0x6c, 0xdb, 0x83, 0x87, 0x2b, 0xe7, 0x90, 0x01, 0x04, 0xc1, 0x4c,
+ 0x1f, 0x88, 0xdd, 0x6b,
+};
+static const unsigned char kat1670_entropyinreseed[] = {
+ 0xf0, 0x4c, 0x51, 0x9d, 0x94, 0xa0, 0xab, 0x7e, 0xaf, 0x35, 0x44, 0xec,
+ 0xd5, 0xf8, 0x5b, 0x95,
+};
+static const unsigned char kat1670_addinreseed[] = {
+ 0x9f, 0xbd, 0x72, 0xce, 0x33, 0x2a, 0xbf, 0xf5, 0xf7, 0x46, 0x66, 0xd7,
+ 0xe6, 0x4f, 0x5a, 0xcd,
+};
+static const unsigned char kat1670_addin0[] = {
+ 0xb0, 0x76, 0x87, 0xad, 0xba, 0xef, 0x6b, 0x11, 0x41, 0xae, 0xbd, 0x9e,
+ 0x78, 0x35, 0x84, 0x74,
+};
+static const unsigned char kat1670_addin1[] = {
+ 0x53, 0x98, 0xf3, 0x1a, 0x34, 0xaf, 0x72, 0x0d, 0x2b, 0x2e, 0x30, 0xf6,
+ 0x5b, 0x8b, 0x05, 0x67,
+};
+static const unsigned char kat1670_retbits[] = {
+ 0x0f, 0x29, 0xf6, 0xb2, 0x07, 0xc3, 0x82, 0xd3, 0x52, 0x44, 0x03, 0xde,
+ 0x0e, 0xdd, 0xe3, 0xbd, 0xca, 0x56, 0xab, 0x08, 0x10, 0x13, 0x74, 0x2b,
+ 0x40, 0xc9, 0x23, 0xa3, 0xe3, 0xc9, 0x5b, 0x9c, 0x3b, 0x36, 0x1c, 0x1c,
+ 0xff, 0x27, 0xbf, 0x2d, 0x2e, 0x60, 0xd8, 0x1f, 0x3b, 0x45, 0x06, 0xf8,
+ 0x8e, 0xe5, 0x58, 0xf7, 0x7f, 0x72, 0x48, 0xae, 0x3a, 0x68, 0xac, 0x29,
+ 0x1f, 0x00, 0x21, 0xe8,
+};
+static const struct drbg_kat_pr_false kat1670_t = {
+ 4, kat1670_entropyin, kat1670_nonce, kat1670_persstr,
+ kat1670_entropyinreseed, kat1670_addinreseed, kat1670_addin0,
+ kat1670_addin1, kat1670_retbits
+};
+static const struct drbg_kat kat1670 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1670_t
+};
+
+static const unsigned char kat1671_entropyin[] = {
+ 0x33, 0xba, 0x49, 0x4b, 0x54, 0x91, 0x84, 0x51, 0x03, 0xb5, 0x7a, 0xaa,
+ 0xce, 0xf0, 0xa6, 0x5d,
+};
+static const unsigned char kat1671_nonce[] = {
+ 0x55, 0x38, 0x5b, 0x3e, 0xa7, 0xf3, 0xb4, 0xac,
+};
+static const unsigned char kat1671_persstr[] = {
+ 0x92, 0x47, 0xdd, 0xa0, 0x3f, 0x2c, 0x31, 0x07, 0x93, 0xf3, 0xe5, 0xec,
+ 0x5d, 0x07, 0xd3, 0x97,
+};
+static const unsigned char kat1671_entropyinreseed[] = {
+ 0x87, 0x89, 0x5e, 0xd4, 0x3a, 0xf7, 0x34, 0x51, 0x89, 0x91, 0x19, 0x77,
+ 0x48, 0x19, 0x8c, 0x0d,
+};
+static const unsigned char kat1671_addinreseed[] = {
+ 0xde, 0x0e, 0xcc, 0xbf, 0xda, 0xbb, 0xae, 0xb7, 0xf9, 0xc5, 0x25, 0x80,
+ 0x49, 0x0c, 0xeb, 0x87,
+};
+static const unsigned char kat1671_addin0[] = {
+ 0x6d, 0xea, 0x3b, 0x1b, 0xee, 0x14, 0x66, 0x6e, 0xd0, 0x53, 0xf0, 0xb5,
+ 0x12, 0x56, 0x53, 0x16,
+};
+static const unsigned char kat1671_addin1[] = {
+ 0x1e, 0x3d, 0x49, 0xdf, 0x6e, 0x07, 0x9f, 0x9c, 0x8e, 0x79, 0x26, 0x0c,
+ 0x63, 0x12, 0x74, 0x45,
+};
+static const unsigned char kat1671_retbits[] = {
+ 0x13, 0x9d, 0x25, 0x6f, 0x1c, 0xe3, 0xe4, 0xf2, 0xb6, 0xbf, 0x08, 0x6d,
+ 0x80, 0x9f, 0xaf, 0x19, 0x82, 0x0e, 0x79, 0x9f, 0x74, 0x4f, 0x7c, 0x36,
+ 0x58, 0x0c, 0xf8, 0x24, 0x19, 0xca, 0xef, 0x4d, 0xe7, 0x6e, 0x51, 0x10,
+ 0xe1, 0x1c, 0xa4, 0x75, 0x60, 0x4f, 0xc0, 0x4a, 0x55, 0xfe, 0x3b, 0x07,
+ 0x13, 0xcf, 0x19, 0x1a, 0x6d, 0xfb, 0x9d, 0x33, 0xde, 0xd0, 0xd5, 0xc6,
+ 0x1a, 0x6b, 0xa1, 0x60,
+};
+static const struct drbg_kat_pr_false kat1671_t = {
+ 5, kat1671_entropyin, kat1671_nonce, kat1671_persstr,
+ kat1671_entropyinreseed, kat1671_addinreseed, kat1671_addin0,
+ kat1671_addin1, kat1671_retbits
+};
+static const struct drbg_kat kat1671 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1671_t
+};
+
+static const unsigned char kat1672_entropyin[] = {
+ 0x26, 0xe3, 0xa5, 0x0f, 0x73, 0xa6, 0x06, 0x98, 0xb9, 0x4a, 0xd3, 0x93,
+ 0x15, 0xa6, 0x6a, 0xda,
+};
+static const unsigned char kat1672_nonce[] = {
+ 0x6e, 0x53, 0xc2, 0xba, 0xa7, 0x17, 0x45, 0xca,
+};
+static const unsigned char kat1672_persstr[] = {
+ 0xc4, 0x7b, 0xeb, 0x1a, 0x59, 0x0e, 0x06, 0x70, 0x77, 0x22, 0xe3, 0xf1,
+ 0x94, 0xfa, 0x5c, 0xee,
+};
+static const unsigned char kat1672_entropyinreseed[] = {
+ 0x61, 0x81, 0x51, 0x42, 0x13, 0x45, 0xf7, 0x40, 0x0a, 0xce, 0x77, 0xeb,
+ 0x7f, 0xa4, 0xb0, 0xc8,
+};
+static const unsigned char kat1672_addinreseed[] = {
+ 0xfd, 0x7e, 0xbb, 0x1e, 0xa4, 0xe7, 0x6d, 0x8e, 0x52, 0x28, 0xcd, 0xff,
+ 0x77, 0x86, 0xa5, 0x2a,
+};
+static const unsigned char kat1672_addin0[] = {
+ 0x39, 0xe8, 0xc5, 0x78, 0xb7, 0xc9, 0x24, 0xc5, 0x6a, 0xfc, 0xdf, 0xfe,
+ 0xa3, 0x7f, 0xed, 0x4d,
+};
+static const unsigned char kat1672_addin1[] = {
+ 0x24, 0x83, 0xb9, 0x6f, 0x21, 0x90, 0xed, 0x57, 0xb4, 0xa6, 0x8c, 0x7c,
+ 0xd0, 0x4a, 0x42, 0xcf,
+};
+static const unsigned char kat1672_retbits[] = {
+ 0x94, 0x8c, 0x0a, 0xe1, 0x8f, 0x98, 0x9d, 0x2d, 0xe0, 0x70, 0x0b, 0x5f,
+ 0xf1, 0xcf, 0xb5, 0x39, 0xb9, 0x14, 0x67, 0x6e, 0xcb, 0x4e, 0x51, 0x6f,
+ 0x4f, 0xa0, 0x37, 0x69, 0x9b, 0x18, 0x14, 0x04, 0xa3, 0x00, 0x51, 0x3b,
+ 0xbb, 0x9a, 0xf3, 0xf5, 0x55, 0x53, 0xa6, 0xbe, 0x6e, 0x89, 0x41, 0x96,
+ 0x48, 0x57, 0x36, 0xe7, 0x53, 0x43, 0x2b, 0xfa, 0x67, 0x9d, 0x07, 0xbb,
+ 0x6c, 0x5b, 0xcd, 0xa8,
+};
+static const struct drbg_kat_pr_false kat1672_t = {
+ 6, kat1672_entropyin, kat1672_nonce, kat1672_persstr,
+ kat1672_entropyinreseed, kat1672_addinreseed, kat1672_addin0,
+ kat1672_addin1, kat1672_retbits
+};
+static const struct drbg_kat kat1672 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1672_t
+};
+
+static const unsigned char kat1673_entropyin[] = {
+ 0xb7, 0x51, 0x68, 0x65, 0xda, 0x6b, 0x6b, 0x49, 0x4e, 0x6b, 0x33, 0xb2,
+ 0x78, 0xfb, 0xa5, 0x88,
+};
+static const unsigned char kat1673_nonce[] = {
+ 0xc6, 0x6f, 0x5d, 0x69, 0x9f, 0x36, 0x98, 0x1d,
+};
+static const unsigned char kat1673_persstr[] = {
+ 0xbc, 0x64, 0x31, 0x50, 0x04, 0x95, 0xb2, 0xcf, 0x8f, 0x91, 0x05, 0x37,
+ 0xb2, 0x9e, 0x86, 0xc1,
+};
+static const unsigned char kat1673_entropyinreseed[] = {
+ 0x4e, 0xf0, 0x7e, 0xde, 0xc9, 0x5e, 0x66, 0x2a, 0xd8, 0xec, 0x1a, 0xe3,
+ 0x0c, 0x77, 0x39, 0xf2,
+};
+static const unsigned char kat1673_addinreseed[] = {
+ 0x5d, 0xb2, 0x75, 0x41, 0xe3, 0xb6, 0xdc, 0x48, 0x30, 0xe7, 0xaf, 0xb1,
+ 0x6b, 0x26, 0x7e, 0x42,
+};
+static const unsigned char kat1673_addin0[] = {
+ 0x5a, 0x4b, 0xa4, 0xf6, 0xa1, 0xa7, 0x6d, 0x21, 0xa4, 0x16, 0x12, 0x04,
+ 0xd5, 0x82, 0xcd, 0x25,
+};
+static const unsigned char kat1673_addin1[] = {
+ 0xd3, 0x5d, 0xef, 0x58, 0xfb, 0x9c, 0x13, 0xf2, 0x6f, 0x13, 0xdb, 0x4f,
+ 0x44, 0xf8, 0x43, 0xc8,
+};
+static const unsigned char kat1673_retbits[] = {
+ 0xbc, 0x5a, 0x17, 0x4b, 0x9a, 0xf4, 0xc1, 0xb9, 0xb3, 0x77, 0xb3, 0x20,
+ 0xa9, 0x3b, 0xce, 0x84, 0x8d, 0xa3, 0x10, 0x6a, 0x14, 0x7c, 0xa6, 0xb8,
+ 0x84, 0x2e, 0x02, 0x0c, 0xe3, 0xad, 0x5b, 0x79, 0xd2, 0x6f, 0x7a, 0xdf,
+ 0x72, 0x10, 0x05, 0x18, 0x3a, 0x1b, 0x53, 0xce, 0x07, 0x64, 0xa7, 0xd4,
+ 0x73, 0x8d, 0xdb, 0x97, 0xcd, 0xcd, 0x0d, 0x6a, 0x76, 0xa3, 0x2d, 0xbf,
+ 0xa4, 0x96, 0xd2, 0xcb,
+};
+static const struct drbg_kat_pr_false kat1673_t = {
+ 7, kat1673_entropyin, kat1673_nonce, kat1673_persstr,
+ kat1673_entropyinreseed, kat1673_addinreseed, kat1673_addin0,
+ kat1673_addin1, kat1673_retbits
+};
+static const struct drbg_kat kat1673 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1673_t
+};
+
+static const unsigned char kat1674_entropyin[] = {
+ 0xbc, 0x08, 0x07, 0xf6, 0xcd, 0xae, 0x0e, 0x32, 0xb1, 0xbb, 0x0a, 0xc0,
+ 0xb4, 0x02, 0x81, 0x19,
+};
+static const unsigned char kat1674_nonce[] = {
+ 0x76, 0xf5, 0x69, 0x4b, 0x0c, 0x85, 0x2d, 0x4b,
+};
+static const unsigned char kat1674_persstr[] = {
+ 0x32, 0x49, 0x48, 0x22, 0x00, 0x2c, 0x74, 0xdc, 0x40, 0x6b, 0x88, 0xa2,
+ 0x13, 0xe2, 0x6d, 0x46,
+};
+static const unsigned char kat1674_entropyinreseed[] = {
+ 0x16, 0xd4, 0x60, 0x23, 0x7a, 0x5f, 0x38, 0xa6, 0x49, 0xe6, 0x8f, 0xc1,
+ 0x11, 0xc1, 0xef, 0x56,
+};
+static const unsigned char kat1674_addinreseed[] = {
+ 0xee, 0x95, 0xf1, 0x84, 0x34, 0x4b, 0xfb, 0x04, 0x55, 0xfa, 0x7f, 0x4d,
+ 0xb2, 0x32, 0x6d, 0x45,
+};
+static const unsigned char kat1674_addin0[] = {
+ 0xbe, 0x4b, 0x33, 0x2e, 0x3c, 0xf2, 0x0a, 0x86, 0x8b, 0xa9, 0x90, 0xee,
+ 0xf3, 0xf8, 0x21, 0x2f,
+};
+static const unsigned char kat1674_addin1[] = {
+ 0x43, 0x45, 0xac, 0xd4, 0x33, 0xee, 0xc5, 0x10, 0xaf, 0xde, 0x2f, 0xaf,
+ 0x2c, 0x51, 0xdc, 0x9a,
+};
+static const unsigned char kat1674_retbits[] = {
+ 0xc7, 0xb5, 0x7b, 0x7e, 0x6d, 0xee, 0xb1, 0x32, 0x88, 0xb4, 0x8f, 0xc1,
+ 0x77, 0x5c, 0x0e, 0xb1, 0x22, 0x81, 0x1c, 0xe2, 0x7e, 0x33, 0x6d, 0xab,
+ 0xdc, 0xe3, 0xfa, 0x23, 0xdb, 0x31, 0x68, 0x82, 0xed, 0xe6, 0x93, 0x8a,
+ 0x44, 0x1f, 0xfe, 0x84, 0x8d, 0x82, 0xc0, 0xa1, 0xa3, 0x7a, 0x1e, 0x8b,
+ 0xbf, 0x12, 0xca, 0x3b, 0xb8, 0xb2, 0x26, 0x5c, 0xb5, 0xb3, 0xb3, 0x35,
+ 0xd4, 0xc7, 0x9f, 0x14,
+};
+static const struct drbg_kat_pr_false kat1674_t = {
+ 8, kat1674_entropyin, kat1674_nonce, kat1674_persstr,
+ kat1674_entropyinreseed, kat1674_addinreseed, kat1674_addin0,
+ kat1674_addin1, kat1674_retbits
+};
+static const struct drbg_kat kat1674 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1674_t
+};
+
+static const unsigned char kat1675_entropyin[] = {
+ 0xb5, 0x43, 0x14, 0x02, 0x3c, 0xb8, 0x82, 0xd7, 0x59, 0xe7, 0x4f, 0xd8,
+ 0x22, 0xd6, 0x14, 0x95,
+};
+static const unsigned char kat1675_nonce[] = {
+ 0xb3, 0x3a, 0xd7, 0x16, 0x9c, 0x32, 0x64, 0xc0,
+};
+static const unsigned char kat1675_persstr[] = {
+ 0x89, 0xbf, 0x26, 0x19, 0x0e, 0xaf, 0xec, 0x31, 0x7d, 0xae, 0x99, 0x49,
+ 0xff, 0x79, 0xaa, 0x20,
+};
+static const unsigned char kat1675_entropyinreseed[] = {
+ 0x49, 0x00, 0x88, 0x22, 0x5d, 0x2a, 0x81, 0x64, 0x1b, 0xc0, 0x14, 0x7d,
+ 0x10, 0x8a, 0x79, 0x25,
+};
+static const unsigned char kat1675_addinreseed[] = {
+ 0x47, 0x0b, 0x3f, 0x0a, 0xa0, 0xf2, 0x80, 0x59, 0x9f, 0xe9, 0x38, 0xcd,
+ 0x5a, 0xa1, 0xb9, 0xbd,
+};
+static const unsigned char kat1675_addin0[] = {
+ 0x32, 0xf3, 0xb0, 0xf8, 0x61, 0x0b, 0x2f, 0xe6, 0x54, 0x94, 0x09, 0xa7,
+ 0x42, 0xae, 0x16, 0x38,
+};
+static const unsigned char kat1675_addin1[] = {
+ 0xc8, 0x37, 0x68, 0x2d, 0x0a, 0x19, 0xdb, 0x10, 0xef, 0xc3, 0x4a, 0x44,
+ 0x47, 0x85, 0x12, 0xe2,
+};
+static const unsigned char kat1675_retbits[] = {
+ 0x99, 0xab, 0x5f, 0xa6, 0x18, 0xbc, 0x7b, 0xd1, 0x52, 0x1b, 0xf3, 0xd0,
+ 0x5d, 0xb3, 0xcd, 0x08, 0x27, 0x24, 0x83, 0x6d, 0x29, 0x13, 0x61, 0x9d,
+ 0x18, 0xd0, 0x7a, 0xc4, 0x7d, 0x57, 0xf0, 0x5f, 0x4d, 0xf2, 0xeb, 0xe2,
+ 0xbd, 0x22, 0xde, 0x04, 0x87, 0xac, 0x6c, 0xb9, 0xba, 0xb7, 0x58, 0xf9,
+ 0xf4, 0x9e, 0xbf, 0x1a, 0xfd, 0xf7, 0xcf, 0x83, 0xe8, 0xae, 0x3b, 0x5f,
+ 0xb6, 0x9d, 0x62, 0x9f,
+};
+static const struct drbg_kat_pr_false kat1675_t = {
+ 9, kat1675_entropyin, kat1675_nonce, kat1675_persstr,
+ kat1675_entropyinreseed, kat1675_addinreseed, kat1675_addin0,
+ kat1675_addin1, kat1675_retbits
+};
+static const struct drbg_kat kat1675 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1675_t
+};
+
+static const unsigned char kat1676_entropyin[] = {
+ 0xb3, 0xcb, 0x56, 0xce, 0x6d, 0x01, 0xea, 0xc4, 0x58, 0x38, 0x66, 0xfd,
+ 0xf2, 0xa0, 0xcc, 0xe6,
+};
+static const unsigned char kat1676_nonce[] = {
+ 0x13, 0x0d, 0x06, 0xc3, 0x5a, 0x72, 0xa8, 0x70,
+};
+static const unsigned char kat1676_persstr[] = {
+ 0x5d, 0xe4, 0xb0, 0xc6, 0xc7, 0x1f, 0x9a, 0xd9, 0x1d, 0xf2, 0xee, 0x4c,
+ 0xa4, 0xca, 0xde, 0x6e,
+};
+static const unsigned char kat1676_entropyinreseed[] = {
+ 0x7a, 0x91, 0x6f, 0xbc, 0x9f, 0x00, 0x39, 0x48, 0x55, 0x1b, 0x1c, 0x7e,
+ 0x61, 0xc5, 0xd1, 0x26,
+};
+static const unsigned char kat1676_addinreseed[] = {
+ 0x63, 0x7d, 0x0c, 0x6e, 0xf1, 0x99, 0xc8, 0xe3, 0xe3, 0x09, 0x38, 0x7a,
+ 0x55, 0xea, 0x39, 0x86,
+};
+static const unsigned char kat1676_addin0[] = {
+ 0x84, 0xb3, 0xaa, 0x93, 0xf8, 0x44, 0x47, 0xe2, 0xd3, 0x79, 0x2d, 0x2f,
+ 0x5f, 0xe0, 0xea, 0x61,
+};
+static const unsigned char kat1676_addin1[] = {
+ 0xa0, 0x45, 0xf5, 0x0a, 0xa1, 0x7c, 0x94, 0xd1, 0xf5, 0x5c, 0x55, 0xd3,
+ 0xdd, 0x70, 0x59, 0x32,
+};
+static const unsigned char kat1676_retbits[] = {
+ 0x22, 0x7e, 0x06, 0x77, 0x1d, 0x65, 0x80, 0x94, 0xc8, 0x24, 0xcc, 0x4b,
+ 0xbc, 0x1a, 0x98, 0x50, 0x58, 0xc5, 0xaf, 0xa3, 0x71, 0x06, 0xf3, 0xf0,
+ 0xfe, 0xd3, 0x70, 0xdf, 0x64, 0xbb, 0x22, 0x65, 0x11, 0x51, 0xe3, 0x33,
+ 0x2c, 0x60, 0x2d, 0x0a, 0x36, 0x48, 0x6c, 0x70, 0xed, 0x7f, 0xd1, 0xf5,
+ 0xaf, 0x6b, 0x52, 0xc3, 0xfb, 0xd2, 0x8b, 0x8a, 0x31, 0x03, 0x2b, 0xb1,
+ 0x0f, 0x79, 0xdf, 0x5d,
+};
+static const struct drbg_kat_pr_false kat1676_t = {
+ 10, kat1676_entropyin, kat1676_nonce, kat1676_persstr,
+ kat1676_entropyinreseed, kat1676_addinreseed, kat1676_addin0,
+ kat1676_addin1, kat1676_retbits
+};
+static const struct drbg_kat kat1676 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1676_t
+};
+
+static const unsigned char kat1677_entropyin[] = {
+ 0x7f, 0x24, 0x9f, 0x2b, 0x0a, 0xf7, 0xf6, 0xd2, 0xac, 0xcc, 0x53, 0x44,
+ 0x86, 0xff, 0x25, 0xd4,
+};
+static const unsigned char kat1677_nonce[] = {
+ 0xb4, 0xa5, 0xeb, 0x9f, 0x06, 0x22, 0x75, 0x80,
+};
+static const unsigned char kat1677_persstr[] = {
+ 0x26, 0x0f, 0x24, 0xcb, 0xf2, 0xc6, 0x6c, 0x31, 0xc8, 0x78, 0xba, 0x86,
+ 0x7a, 0x47, 0x04, 0xc0,
+};
+static const unsigned char kat1677_entropyinreseed[] = {
+ 0x9b, 0xa2, 0x92, 0xc2, 0x92, 0x26, 0xaf, 0x77, 0x34, 0x2c, 0xa4, 0x6c,
+ 0xa8, 0x0d, 0x03, 0x20,
+};
+static const unsigned char kat1677_addinreseed[] = {
+ 0x91, 0xa7, 0x7c, 0x7f, 0x13, 0x2f, 0x21, 0x03, 0x51, 0xbb, 0x51, 0xc6,
+ 0xc7, 0x32, 0x7f, 0x6f,
+};
+static const unsigned char kat1677_addin0[] = {
+ 0x33, 0x61, 0xb4, 0x6f, 0xc0, 0x51, 0x20, 0x43, 0x02, 0x26, 0x4b, 0x97,
+ 0xb8, 0x54, 0x77, 0x07,
+};
+static const unsigned char kat1677_addin1[] = {
+ 0x06, 0x47, 0x8f, 0xa6, 0x87, 0x46, 0x5e, 0x75, 0x94, 0x20, 0xea, 0xac,
+ 0x2c, 0x7d, 0x0a, 0xdd,
+};
+static const unsigned char kat1677_retbits[] = {
+ 0x26, 0x05, 0xbb, 0xd7, 0xd0, 0xef, 0x8e, 0x2b, 0x3d, 0x8c, 0x57, 0x9e,
+ 0xb9, 0xf0, 0x60, 0x2c, 0xb0, 0x35, 0xcf, 0xd5, 0xe4, 0x66, 0xe4, 0xd5,
+ 0xa1, 0xe4, 0x0f, 0x92, 0x88, 0xbb, 0x06, 0xdc, 0x52, 0x89, 0x6c, 0xe3,
+ 0x41, 0xab, 0x39, 0xe2, 0x16, 0xce, 0x7b, 0x8b, 0x70, 0xd6, 0x2e, 0x1c,
+ 0xe0, 0x7b, 0xbc, 0x0a, 0x31, 0x17, 0x2f, 0xd1, 0x91, 0xf4, 0x00, 0xfd,
+ 0x2b, 0xfa, 0xfd, 0x47,
+};
+static const struct drbg_kat_pr_false kat1677_t = {
+ 11, kat1677_entropyin, kat1677_nonce, kat1677_persstr,
+ kat1677_entropyinreseed, kat1677_addinreseed, kat1677_addin0,
+ kat1677_addin1, kat1677_retbits
+};
+static const struct drbg_kat kat1677 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1677_t
+};
+
+static const unsigned char kat1678_entropyin[] = {
+ 0x7c, 0x5d, 0x54, 0x81, 0x65, 0x13, 0xa3, 0x18, 0xb3, 0x3a, 0xc6, 0x7e,
+ 0xd7, 0x14, 0x4d, 0x4c,
+};
+static const unsigned char kat1678_nonce[] = {
+ 0x52, 0xbe, 0xc7, 0x8f, 0xae, 0xa5, 0xe1, 0xf6,
+};
+static const unsigned char kat1678_persstr[] = {
+ 0x8a, 0x2f, 0x62, 0xb8, 0x33, 0x07, 0xbc, 0x52, 0xe7, 0xcf, 0xa4, 0xcf,
+ 0x81, 0x73, 0x6e, 0xfa,
+};
+static const unsigned char kat1678_entropyinreseed[] = {
+ 0x19, 0x2f, 0x65, 0x31, 0x61, 0x7e, 0xc4, 0xba, 0xef, 0x6a, 0x30, 0x2e,
+ 0x18, 0xfe, 0x8a, 0x16,
+};
+static const unsigned char kat1678_addinreseed[] = {
+ 0xf2, 0xac, 0xa1, 0xe5, 0xc0, 0x01, 0x77, 0x08, 0xfc, 0x78, 0x14, 0xcb,
+ 0x74, 0x8b, 0x09, 0x79,
+};
+static const unsigned char kat1678_addin0[] = {
+ 0xff, 0x68, 0xc1, 0x94, 0x02, 0xe0, 0xcb, 0xae, 0x1a, 0x67, 0xf9, 0x8f,
+ 0xfd, 0x62, 0xf2, 0x5e,
+};
+static const unsigned char kat1678_addin1[] = {
+ 0x2e, 0x89, 0x13, 0x4c, 0x16, 0xb5, 0xda, 0x0f, 0x57, 0x2a, 0x72, 0xe8,
+ 0xf7, 0x2b, 0xad, 0x03,
+};
+static const unsigned char kat1678_retbits[] = {
+ 0x95, 0x9d, 0x50, 0x5f, 0x74, 0x2d, 0x5c, 0xfd, 0x4e, 0x57, 0x67, 0xab,
+ 0x75, 0xf4, 0x1a, 0x6a, 0x97, 0x86, 0x5b, 0x6a, 0x48, 0x91, 0x8a, 0x68,
+ 0xc9, 0x15, 0x5d, 0x9e, 0xe5, 0x61, 0x43, 0x96, 0x3c, 0x5f, 0xe0, 0x20,
+ 0x0e, 0xb3, 0xf7, 0x3e, 0x23, 0x4d, 0xdb, 0x0d, 0xf4, 0xbf, 0xe9, 0xa9,
+ 0x6b, 0x59, 0xc8, 0xd3, 0xdb, 0xc3, 0x24, 0xd4, 0x9a, 0x01, 0xe0, 0x11,
+ 0x3b, 0xfc, 0x0e, 0xae,
+};
+static const struct drbg_kat_pr_false kat1678_t = {
+ 12, kat1678_entropyin, kat1678_nonce, kat1678_persstr,
+ kat1678_entropyinreseed, kat1678_addinreseed, kat1678_addin0,
+ kat1678_addin1, kat1678_retbits
+};
+static const struct drbg_kat kat1678 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1678_t
+};
+
+static const unsigned char kat1679_entropyin[] = {
+ 0x59, 0x87, 0x0c, 0x27, 0x3d, 0x6d, 0x94, 0xa6, 0xa8, 0xa3, 0x8a, 0x2c,
+ 0x63, 0xba, 0x28, 0x82,
+};
+static const unsigned char kat1679_nonce[] = {
+ 0x16, 0x76, 0x7b, 0x20, 0x36, 0x07, 0x63, 0x01,
+};
+static const unsigned char kat1679_persstr[] = {
+ 0x1e, 0x4c, 0x01, 0xaf, 0x96, 0x95, 0x28, 0x84, 0x9f, 0xfa, 0xfb, 0x17,
+ 0x04, 0x4b, 0xbc, 0xd9,
+};
+static const unsigned char kat1679_entropyinreseed[] = {
+ 0x4d, 0x83, 0x53, 0x75, 0x0d, 0xe1, 0x5b, 0xbc, 0x51, 0x0e, 0xe8, 0x9c,
+ 0x56, 0xd9, 0xb2, 0xcf,
+};
+static const unsigned char kat1679_addinreseed[] = {
+ 0x58, 0xd4, 0x9d, 0x61, 0x04, 0x73, 0xcd, 0x1a, 0x0c, 0x02, 0x2e, 0x33,
+ 0x8e, 0x45, 0xc9, 0xc7,
+};
+static const unsigned char kat1679_addin0[] = {
+ 0x2b, 0xc0, 0x10, 0x29, 0xd8, 0x19, 0x5d, 0x54, 0xf8, 0xac, 0xe2, 0x35,
+ 0x2c, 0x4b, 0xf1, 0x56,
+};
+static const unsigned char kat1679_addin1[] = {
+ 0xdf, 0xdc, 0xb7, 0x8b, 0xcd, 0xa7, 0x7c, 0xf0, 0xa6, 0x36, 0xde, 0x21,
+ 0x84, 0x9b, 0xab, 0xc9,
+};
+static const unsigned char kat1679_retbits[] = {
+ 0xdd, 0x24, 0xc8, 0x35, 0x59, 0x5f, 0xf6, 0x42, 0xfc, 0x2f, 0x23, 0x79,
+ 0xe3, 0x5f, 0x5c, 0xdd, 0x74, 0x95, 0x78, 0x38, 0x48, 0x61, 0x35, 0x64,
+ 0xd9, 0xb2, 0xbe, 0xf9, 0x62, 0x50, 0x4f, 0x2c, 0x76, 0x07, 0x50, 0x5e,
+ 0x09, 0x12, 0x2d, 0x63, 0xa2, 0xaa, 0x06, 0x78, 0xb9, 0x5f, 0x4d, 0x3c,
+ 0x3d, 0xd3, 0xc5, 0xf8, 0x5f, 0x1a, 0x1a, 0x0f, 0x55, 0x9e, 0xef, 0x23,
+ 0xdb, 0x00, 0x2f, 0xd7,
+};
+static const struct drbg_kat_pr_false kat1679_t = {
+ 13, kat1679_entropyin, kat1679_nonce, kat1679_persstr,
+ kat1679_entropyinreseed, kat1679_addinreseed, kat1679_addin0,
+ kat1679_addin1, kat1679_retbits
+};
+static const struct drbg_kat kat1679 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1679_t
+};
+
+static const unsigned char kat1680_entropyin[] = {
+ 0x03, 0xaf, 0x6c, 0x44, 0xc7, 0x10, 0x15, 0x44, 0xca, 0x78, 0x88, 0x83,
+ 0x1f, 0x3f, 0x9f, 0x95,
+};
+static const unsigned char kat1680_nonce[] = {
+ 0x58, 0xd8, 0x0f, 0xc3, 0x78, 0x56, 0x93, 0x46,
+};
+static const unsigned char kat1680_persstr[] = {
+ 0x7e, 0xc2, 0xb5, 0x97, 0xc8, 0x45, 0xae, 0x8b, 0xbb, 0x63, 0x60, 0x9a,
+ 0x80, 0xc2, 0xab, 0x4f,
+};
+static const unsigned char kat1680_entropyinreseed[] = {
+ 0x41, 0x07, 0x37, 0xc3, 0xc6, 0x11, 0x2b, 0x51, 0x13, 0xf0, 0xef, 0x66,
+ 0xb0, 0xfa, 0x6a, 0x07,
+};
+static const unsigned char kat1680_addinreseed[] = {
+ 0xae, 0x2c, 0xe6, 0xd1, 0xdb, 0xa5, 0x67, 0x75, 0xdb, 0x17, 0xb8, 0xc6,
+ 0xd9, 0x37, 0x9f, 0x14,
+};
+static const unsigned char kat1680_addin0[] = {
+ 0x57, 0x86, 0x63, 0x75, 0x23, 0x8e, 0xa5, 0x6e, 0x97, 0xdd, 0x6a, 0xf8,
+ 0xc5, 0x01, 0x06, 0x18,
+};
+static const unsigned char kat1680_addin1[] = {
+ 0x34, 0xa4, 0x49, 0xf8, 0x60, 0xc0, 0xc1, 0x8f, 0xdf, 0x85, 0x4b, 0x32,
+ 0xde, 0x57, 0x29, 0x17,
+};
+static const unsigned char kat1680_retbits[] = {
+ 0x56, 0x4b, 0xd3, 0xb7, 0x7e, 0x4c, 0x3b, 0xdc, 0xb6, 0xc8, 0x5d, 0xb1,
+ 0x11, 0xf2, 0x94, 0x29, 0x3a, 0x47, 0x38, 0xd2, 0x00, 0x43, 0xda, 0x15,
+ 0x64, 0x9b, 0x8c, 0x94, 0xf1, 0x4e, 0xcd, 0xc7, 0x3f, 0xb7, 0x5d, 0x76,
+ 0x19, 0x71, 0xf3, 0xa8, 0xdc, 0x4f, 0x33, 0xf4, 0x5d, 0xf9, 0x7c, 0x0d,
+ 0x2b, 0xba, 0x4e, 0x4b, 0xe7, 0x4f, 0x52, 0x88, 0x73, 0x25, 0xb3, 0x00,
+ 0xff, 0x1e, 0x6d, 0x81,
+};
+static const struct drbg_kat_pr_false kat1680_t = {
+ 14, kat1680_entropyin, kat1680_nonce, kat1680_persstr,
+ kat1680_entropyinreseed, kat1680_addinreseed, kat1680_addin0,
+ kat1680_addin1, kat1680_retbits
+};
+static const struct drbg_kat kat1680 = {
+ PR_FALSE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat1680_t
+};
+
+static const unsigned char kat1681_entropyin[] = {
+ 0xb1, 0x1d, 0x8b, 0x10, 0x4a, 0x7c, 0xed, 0x9b, 0x9f, 0x37, 0xe5, 0xd9,
+ 0x2a, 0xd3, 0xdf, 0xcb, 0xb8, 0x17, 0x55, 0x2b, 0x1a, 0xe8, 0x8f, 0x6a,
+};
+static const unsigned char kat1681_nonce[] = {
+ 0x01, 0x75, 0x10, 0xf2, 0x70, 0xc6, 0x65, 0x86, 0xa5, 0x13, 0x13, 0xea,
+ 0xdc, 0x32, 0xb0, 0x7e,
+};
+static const unsigned char kat1681_persstr[] = {0};
+static const unsigned char kat1681_entropyinreseed[] = {
+ 0x6d, 0x14, 0xcf, 0xb3, 0x6f, 0x30, 0xc9, 0xc1, 0xa1, 0xba, 0x0e, 0x0a,
+ 0x32, 0xc2, 0xf9, 0x9d, 0x1b, 0x47, 0xf2, 0x19, 0xa3, 0xa8, 0xac, 0x14,
+};
+static const unsigned char kat1681_addinreseed[] = {0};
+static const unsigned char kat1681_addin0[] = {0};
+static const unsigned char kat1681_addin1[] = {0};
+static const unsigned char kat1681_retbits[] = {
+ 0x53, 0xfb, 0xba, 0x56, 0x3a, 0xe0, 0x14, 0xeb, 0xc0, 0x80, 0x76, 0x7a,
+ 0xab, 0x84, 0x52, 0xa9, 0xf3, 0x6c, 0xe4, 0x0b, 0xbf, 0x68, 0xf1, 0xa1,
+ 0x2d, 0xc0, 0xa6, 0x38, 0x8c, 0x87, 0x0c, 0x8d, 0xfa, 0x42, 0x50, 0x52,
+ 0x6c, 0xbc, 0x8c, 0x98, 0x3f, 0xee, 0x64, 0x49, 0x90, 0x3c, 0x6b, 0xd7,
+ 0xc2, 0xc0, 0x2e, 0x32, 0x76, 0x80, 0xa6, 0x6b, 0x46, 0x42, 0x67, 0xed,
+ 0xbc, 0x4e, 0x67, 0x97,
+};
+static const struct drbg_kat_pr_false kat1681_t = {
+ 0, kat1681_entropyin, kat1681_nonce, kat1681_persstr,
+ kat1681_entropyinreseed, kat1681_addinreseed, kat1681_addin0,
+ kat1681_addin1, kat1681_retbits
+};
+static const struct drbg_kat kat1681 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1681_t
+};
+
+static const unsigned char kat1682_entropyin[] = {
+ 0x88, 0x0a, 0x7d, 0xee, 0x52, 0xba, 0x35, 0x83, 0x04, 0x42, 0x54, 0xbd,
+ 0xca, 0xe8, 0x9d, 0xb6, 0xf8, 0x45, 0x1e, 0x63, 0x19, 0x37, 0xfe, 0xcb,
+};
+static const unsigned char kat1682_nonce[] = {
+ 0x82, 0x99, 0x9b, 0x1f, 0x66, 0x83, 0xa3, 0x0d, 0xdf, 0x52, 0x76, 0x59,
+ 0xdf, 0x47, 0x3e, 0x2f,
+};
+static const unsigned char kat1682_persstr[] = {0};
+static const unsigned char kat1682_entropyinreseed[] = {
+ 0x11, 0x53, 0xcf, 0xd0, 0x90, 0x6d, 0x9d, 0x82, 0xf2, 0xb6, 0x73, 0xcc,
+ 0xdd, 0x92, 0x8e, 0xda, 0x89, 0x87, 0x05, 0x76, 0xc9, 0xc4, 0x78, 0xaf,
+};
+static const unsigned char kat1682_addinreseed[] = {0};
+static const unsigned char kat1682_addin0[] = {0};
+static const unsigned char kat1682_addin1[] = {0};
+static const unsigned char kat1682_retbits[] = {
+ 0xa0, 0x79, 0x79, 0xb2, 0xae, 0xb6, 0xc4, 0x81, 0x95, 0xb9, 0x17, 0xeb,
+ 0xb4, 0xf3, 0xea, 0x4d, 0x24, 0x8e, 0x96, 0x24, 0xa9, 0x10, 0x01, 0x29,
+ 0x00, 0xeb, 0xbd, 0xff, 0x1a, 0xf4, 0xa9, 0x75, 0x40, 0x0d, 0xcc, 0x51,
+ 0x0a, 0x0f, 0x56, 0x6b, 0x02, 0x4a, 0x23, 0x82, 0x06, 0x28, 0x08, 0xcd,
+ 0x5b, 0x44, 0x39, 0xdc, 0xce, 0xaf, 0x7c, 0xe7, 0xe3, 0x83, 0x7d, 0xdf,
+ 0xc2, 0x5c, 0xb1, 0x66,
+};
+static const struct drbg_kat_pr_false kat1682_t = {
+ 1, kat1682_entropyin, kat1682_nonce, kat1682_persstr,
+ kat1682_entropyinreseed, kat1682_addinreseed, kat1682_addin0,
+ kat1682_addin1, kat1682_retbits
+};
+static const struct drbg_kat kat1682 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1682_t
+};
+
+static const unsigned char kat1683_entropyin[] = {
+ 0xb8, 0x5e, 0xa7, 0x67, 0x39, 0xba, 0xf8, 0x3c, 0x2c, 0xe4, 0x4c, 0x9c,
+ 0xb3, 0xb0, 0xd6, 0x55, 0xef, 0x36, 0x9c, 0x63, 0x14, 0x85, 0x05, 0xd2,
+};
+static const unsigned char kat1683_nonce[] = {
+ 0xdc, 0xf5, 0xf6, 0x6c, 0x8d, 0xc3, 0xd9, 0x6e, 0x11, 0x7c, 0xa8, 0xb9,
+ 0x07, 0x56, 0x58, 0x79,
+};
+static const unsigned char kat1683_persstr[] = {0};
+static const unsigned char kat1683_entropyinreseed[] = {
+ 0xbd, 0x67, 0xbd, 0x3f, 0xab, 0xaf, 0xd2, 0x98, 0xd8, 0xd2, 0xa3, 0x9e,
+ 0x7c, 0x88, 0x77, 0x88, 0x60, 0x9d, 0xc9, 0x0b, 0x00, 0xaa, 0xfa, 0xb3,
+};
+static const unsigned char kat1683_addinreseed[] = {0};
+static const unsigned char kat1683_addin0[] = {0};
+static const unsigned char kat1683_addin1[] = {0};
+static const unsigned char kat1683_retbits[] = {
+ 0x7d, 0x6b, 0x36, 0x75, 0x26, 0xb2, 0xfc, 0xa3, 0x6b, 0x18, 0x43, 0xa5,
+ 0xf7, 0x43, 0xcf, 0xef, 0x02, 0xe1, 0xc4, 0x9f, 0x16, 0x07, 0x1d, 0x15,
+ 0x01, 0xf9, 0x1f, 0xfb, 0xd2, 0x4a, 0x03, 0xf5, 0xe0, 0xe6, 0x4f, 0xbf,
+ 0x55, 0x0b, 0x6c, 0x36, 0x6f, 0x5c, 0x05, 0x92, 0xbc, 0x83, 0xbd, 0xff,
+ 0xa5, 0xdb, 0x64, 0x89, 0x7b, 0xfc, 0x38, 0x42, 0x53, 0x54, 0xbe, 0xa3,
+ 0xe1, 0x78, 0x26, 0x1d,
+};
+static const struct drbg_kat_pr_false kat1683_t = {
+ 2, kat1683_entropyin, kat1683_nonce, kat1683_persstr,
+ kat1683_entropyinreseed, kat1683_addinreseed, kat1683_addin0,
+ kat1683_addin1, kat1683_retbits
+};
+static const struct drbg_kat kat1683 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1683_t
+};
+
+static const unsigned char kat1684_entropyin[] = {
+ 0x5c, 0x1c, 0x98, 0x76, 0x25, 0xe9, 0x1a, 0x8d, 0xa1, 0x4d, 0x9a, 0x48,
+ 0x27, 0xe8, 0x3e, 0x0a, 0x18, 0xb7, 0x15, 0x4c, 0xfc, 0xd2, 0xa2, 0xe6,
+};
+static const unsigned char kat1684_nonce[] = {
+ 0xe7, 0x5d, 0x87, 0x38, 0xac, 0xef, 0x17, 0xff, 0x94, 0xa4, 0x80, 0x9e,
+ 0xde, 0xd5, 0xcc, 0x74,
+};
+static const unsigned char kat1684_persstr[] = {0};
+static const unsigned char kat1684_entropyinreseed[] = {
+ 0x4d, 0xc9, 0xca, 0x6b, 0xf7, 0xc4, 0xe9, 0x14, 0xcc, 0xb7, 0x85, 0x63,
+ 0x9c, 0x80, 0xb0, 0x85, 0x38, 0xe6, 0x85, 0x9a, 0xe1, 0x60, 0xb1, 0xc1,
+};
+static const unsigned char kat1684_addinreseed[] = {0};
+static const unsigned char kat1684_addin0[] = {0};
+static const unsigned char kat1684_addin1[] = {0};
+static const unsigned char kat1684_retbits[] = {
+ 0xd2, 0x3c, 0x44, 0xc8, 0x9c, 0xb4, 0xcf, 0x3a, 0x61, 0x9d, 0xf8, 0x0d,
+ 0xf7, 0x6c, 0x75, 0x25, 0xd3, 0x7f, 0x83, 0xbe, 0x93, 0xf7, 0x23, 0xf5,
+ 0x5f, 0x26, 0x63, 0x99, 0x69, 0xde, 0x8b, 0x12, 0xc6, 0x87, 0xf1, 0x7b,
+ 0x4d, 0x4c, 0x94, 0x7e, 0x6a, 0x53, 0xde, 0x7c, 0x0f, 0x7c, 0xdd, 0xde,
+ 0xf6, 0x21, 0x50, 0x21, 0x62, 0xa3, 0x4c, 0xee, 0x70, 0xd5, 0x1e, 0x14,
+ 0xe7, 0x9d, 0x85, 0x3c,
+};
+static const struct drbg_kat_pr_false kat1684_t = {
+ 3, kat1684_entropyin, kat1684_nonce, kat1684_persstr,
+ kat1684_entropyinreseed, kat1684_addinreseed, kat1684_addin0,
+ kat1684_addin1, kat1684_retbits
+};
+static const struct drbg_kat kat1684 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1684_t
+};
+
+static const unsigned char kat1685_entropyin[] = {
+ 0xcc, 0x15, 0xb7, 0x05, 0x89, 0xb3, 0xe4, 0x7b, 0x00, 0xa0, 0x8e, 0x17,
+ 0x18, 0x60, 0xcd, 0x24, 0x43, 0x55, 0xda, 0x6a, 0xd8, 0xe0, 0x5c, 0xac,
+};
+static const unsigned char kat1685_nonce[] = {
+ 0x25, 0x65, 0x03, 0x30, 0x94, 0x68, 0x95, 0x5f, 0x40, 0x8d, 0xe1, 0xa1,
+ 0x88, 0x19, 0xe9, 0x8c,
+};
+static const unsigned char kat1685_persstr[] = {0};
+static const unsigned char kat1685_entropyinreseed[] = {
+ 0x00, 0xd3, 0x94, 0xec, 0x9e, 0x37, 0xc1, 0x58, 0xb2, 0xb6, 0x5f, 0x43,
+ 0xf6, 0x91, 0x12, 0xe6, 0xb7, 0x5d, 0x6b, 0x19, 0x95, 0xd5, 0x6a, 0x2c,
+};
+static const unsigned char kat1685_addinreseed[] = {0};
+static const unsigned char kat1685_addin0[] = {0};
+static const unsigned char kat1685_addin1[] = {0};
+static const unsigned char kat1685_retbits[] = {
+ 0x6c, 0xc2, 0x80, 0x59, 0x53, 0xbc, 0x5c, 0xfb, 0x9a, 0x26, 0x80, 0x8b,
+ 0x10, 0x93, 0x40, 0x01, 0xcf, 0xeb, 0x91, 0xa3, 0x7a, 0x2f, 0x7b, 0xb8,
+ 0xa9, 0x14, 0x13, 0x50, 0x0d, 0x69, 0x62, 0x02, 0x0b, 0x1a, 0xe0, 0xd1,
+ 0xea, 0xd6, 0x03, 0x89, 0x9e, 0xb2, 0x34, 0xa5, 0x1b, 0xeb, 0xea, 0x22,
+ 0x1a, 0x80, 0x3e, 0x1c, 0xec, 0x0f, 0x9c, 0xfd, 0x65, 0x06, 0x86, 0xee,
+ 0x14, 0xb0, 0xc5, 0xc3,
+};
+static const struct drbg_kat_pr_false kat1685_t = {
+ 4, kat1685_entropyin, kat1685_nonce, kat1685_persstr,
+ kat1685_entropyinreseed, kat1685_addinreseed, kat1685_addin0,
+ kat1685_addin1, kat1685_retbits
+};
+static const struct drbg_kat kat1685 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1685_t
+};
+
+static const unsigned char kat1686_entropyin[] = {
+ 0xf9, 0xb2, 0xfd, 0xd2, 0xed, 0xaa, 0x5f, 0x94, 0xef, 0xdc, 0xc3, 0xdc,
+ 0x97, 0xba, 0xfd, 0xa0, 0x14, 0x21, 0x0d, 0x62, 0xbe, 0x32, 0x9c, 0x18,
+};
+static const unsigned char kat1686_nonce[] = {
+ 0x99, 0x86, 0x88, 0x05, 0xc0, 0xc3, 0x6b, 0xd2, 0x68, 0x65, 0x0a, 0x48,
+ 0xc6, 0xc8, 0x40, 0x83,
+};
+static const unsigned char kat1686_persstr[] = {0};
+static const unsigned char kat1686_entropyinreseed[] = {
+ 0x95, 0xe4, 0x40, 0x07, 0xd9, 0xba, 0x0b, 0xeb, 0x99, 0xf8, 0x22, 0x08,
+ 0x52, 0xf8, 0x6f, 0xb3, 0x8c, 0xa6, 0x33, 0x31, 0xf8, 0x99, 0x15, 0xec,
+};
+static const unsigned char kat1686_addinreseed[] = {0};
+static const unsigned char kat1686_addin0[] = {0};
+static const unsigned char kat1686_addin1[] = {0};
+static const unsigned char kat1686_retbits[] = {
+ 0xf6, 0x53, 0x8f, 0x8f, 0x69, 0x1a, 0xda, 0xa1, 0x17, 0x93, 0x8e, 0xfc,
+ 0x81, 0x88, 0x5f, 0x56, 0xff, 0xd9, 0xb4, 0x21, 0x03, 0x7b, 0x92, 0x4b,
+ 0xe2, 0xb6, 0xe2, 0x3d, 0x38, 0x51, 0xe4, 0x65, 0x0e, 0x03, 0xf0, 0xdd,
+ 0x7a, 0x44, 0xaf, 0xa4, 0x1a, 0x46, 0x0c, 0xce, 0xdc, 0x3b, 0x65, 0x96,
+ 0xdc, 0xb0, 0x49, 0xe9, 0x89, 0x56, 0x4b, 0x0f, 0xf5, 0xef, 0x6a, 0xdc,
+ 0xea, 0x82, 0xab, 0x01,
+};
+static const struct drbg_kat_pr_false kat1686_t = {
+ 5, kat1686_entropyin, kat1686_nonce, kat1686_persstr,
+ kat1686_entropyinreseed, kat1686_addinreseed, kat1686_addin0,
+ kat1686_addin1, kat1686_retbits
+};
+static const struct drbg_kat kat1686 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1686_t
+};
+
+static const unsigned char kat1687_entropyin[] = {
+ 0xa9, 0x79, 0x20, 0x82, 0x0f, 0x98, 0x69, 0xa4, 0x38, 0x75, 0xe3, 0xc2,
+ 0xc6, 0x46, 0x5a, 0xe5, 0xf8, 0xb0, 0x97, 0x6e, 0xc8, 0xb6, 0xf6, 0x56,
+};
+static const unsigned char kat1687_nonce[] = {
+ 0x92, 0x7c, 0x2a, 0xad, 0x29, 0x09, 0x1d, 0x96, 0xa4, 0x5f, 0x28, 0x17,
+ 0x25, 0x30, 0xed, 0x77,
+};
+static const unsigned char kat1687_persstr[] = {0};
+static const unsigned char kat1687_entropyinreseed[] = {
+ 0xdb, 0xdb, 0x21, 0x29, 0x8a, 0x35, 0x9c, 0x9c, 0xdf, 0x82, 0x0a, 0x04,
+ 0xb2, 0x86, 0xd8, 0x7c, 0xc0, 0xa0, 0x74, 0x96, 0xd9, 0xa4, 0x9a, 0x2e,
+};
+static const unsigned char kat1687_addinreseed[] = {0};
+static const unsigned char kat1687_addin0[] = {0};
+static const unsigned char kat1687_addin1[] = {0};
+static const unsigned char kat1687_retbits[] = {
+ 0xde, 0x33, 0xef, 0xd6, 0x8a, 0x83, 0xc9, 0x1a, 0xdc, 0xdf, 0xe9, 0xbe,
+ 0x01, 0x97, 0xa7, 0x91, 0x2b, 0x0f, 0xf0, 0xc7, 0xff, 0x4d, 0x2f, 0xa3,
+ 0x8e, 0x6b, 0x1f, 0xe4, 0x27, 0xce, 0x77, 0x77, 0x5d, 0xd8, 0xa6, 0x6e,
+ 0x64, 0x06, 0x0a, 0x8e, 0x82, 0xfd, 0x3a, 0xfe, 0xf9, 0xa7, 0x3d, 0xea,
+ 0x82, 0xa5, 0x4a, 0x55, 0x4a, 0x20, 0xae, 0x31, 0x40, 0xc1, 0x6b, 0x8e,
+ 0xe3, 0x38, 0x95, 0x34,
+};
+static const struct drbg_kat_pr_false kat1687_t = {
+ 6, kat1687_entropyin, kat1687_nonce, kat1687_persstr,
+ kat1687_entropyinreseed, kat1687_addinreseed, kat1687_addin0,
+ kat1687_addin1, kat1687_retbits
+};
+static const struct drbg_kat kat1687 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1687_t
+};
+
+static const unsigned char kat1688_entropyin[] = {
+ 0x94, 0x85, 0x54, 0x25, 0xe8, 0x28, 0xce, 0x1f, 0x2e, 0x05, 0x11, 0x14,
+ 0xa9, 0x0f, 0xa1, 0xea, 0x86, 0xda, 0xfd, 0x8f, 0x2a, 0xa5, 0x8e, 0xba,
+};
+static const unsigned char kat1688_nonce[] = {
+ 0x97, 0x9a, 0x8c, 0xdb, 0xad, 0xf8, 0x44, 0x66, 0x5b, 0x13, 0xad, 0x19,
+ 0x76, 0x9d, 0xa9, 0x09,
+};
+static const unsigned char kat1688_persstr[] = {0};
+static const unsigned char kat1688_entropyinreseed[] = {
+ 0x69, 0x5a, 0x5c, 0xd7, 0x98, 0x66, 0xa7, 0x2e, 0x2b, 0xd2, 0xb4, 0xb6,
+ 0x1b, 0xe0, 0x70, 0x8a, 0x4e, 0xa7, 0x95, 0x80, 0x49, 0x4d, 0x1b, 0xd5,
+};
+static const unsigned char kat1688_addinreseed[] = {0};
+static const unsigned char kat1688_addin0[] = {0};
+static const unsigned char kat1688_addin1[] = {0};
+static const unsigned char kat1688_retbits[] = {
+ 0x4b, 0x9f, 0x91, 0x05, 0x56, 0xcf, 0xb4, 0x5d, 0x3b, 0x3a, 0x0b, 0xa9,
+ 0x45, 0xe2, 0x72, 0xd8, 0x1e, 0x36, 0x15, 0x97, 0xe3, 0xa2, 0x60, 0x63,
+ 0xb3, 0x86, 0x2e, 0xc5, 0xba, 0x6a, 0x5e, 0x9e, 0xe7, 0xc7, 0xd7, 0x70,
+ 0xe7, 0xbb, 0xce, 0x70, 0x3e, 0x6e, 0xeb, 0x68, 0xd6, 0xeb, 0x12, 0x73,
+ 0x5a, 0x19, 0x6c, 0xd2, 0x01, 0xb5, 0xbc, 0x9f, 0x2c, 0xeb, 0x30, 0x4b,
+ 0xa6, 0x4b, 0x66, 0x5c,
+};
+static const struct drbg_kat_pr_false kat1688_t = {
+ 7, kat1688_entropyin, kat1688_nonce, kat1688_persstr,
+ kat1688_entropyinreseed, kat1688_addinreseed, kat1688_addin0,
+ kat1688_addin1, kat1688_retbits
+};
+static const struct drbg_kat kat1688 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1688_t
+};
+
+static const unsigned char kat1689_entropyin[] = {
+ 0xf1, 0xa7, 0x52, 0xeb, 0x2b, 0x86, 0x93, 0x23, 0x48, 0x48, 0x64, 0xe2,
+ 0x28, 0x5c, 0x08, 0xf2, 0x3b, 0xc5, 0x1c, 0xed, 0x55, 0x10, 0xc0, 0x53,
+};
+static const unsigned char kat1689_nonce[] = {
+ 0xcb, 0xfb, 0x38, 0x85, 0xad, 0x9e, 0xb3, 0xdd, 0xb2, 0x88, 0x53, 0x29,
+ 0x03, 0x0c, 0x20, 0xb3,
+};
+static const unsigned char kat1689_persstr[] = {0};
+static const unsigned char kat1689_entropyinreseed[] = {
+ 0x1a, 0xbe, 0x3a, 0xe3, 0x4c, 0x0a, 0x9b, 0x5d, 0xf6, 0x0f, 0xc7, 0xaf,
+ 0x7a, 0x8f, 0x65, 0xc3, 0xb7, 0x65, 0x70, 0x9c, 0x2f, 0xce, 0xed, 0x3b,
+};
+static const unsigned char kat1689_addinreseed[] = {0};
+static const unsigned char kat1689_addin0[] = {0};
+static const unsigned char kat1689_addin1[] = {0};
+static const unsigned char kat1689_retbits[] = {
+ 0x75, 0xa3, 0xe6, 0xe4, 0x51, 0x7a, 0x30, 0x26, 0xf1, 0x1f, 0xc6, 0x19,
+ 0x1a, 0x32, 0x8a, 0xbd, 0xf9, 0x16, 0x6b, 0xf5, 0xe9, 0x00, 0x10, 0xc1,
+ 0xe8, 0x33, 0x2e, 0x4a, 0x59, 0x3e, 0x4e, 0x49, 0x31, 0xd6, 0xaf, 0x12,
+ 0x9e, 0xe2, 0x50, 0xd5, 0x65, 0x4c, 0x6a, 0x9b, 0x60, 0x1b, 0xe6, 0xee,
+ 0xd2, 0xd6, 0x71, 0x19, 0xa7, 0xcd, 0x22, 0x22, 0x1e, 0x68, 0xdb, 0xb9,
+ 0xd7, 0x13, 0xd1, 0x38,
+};
+static const struct drbg_kat_pr_false kat1689_t = {
+ 8, kat1689_entropyin, kat1689_nonce, kat1689_persstr,
+ kat1689_entropyinreseed, kat1689_addinreseed, kat1689_addin0,
+ kat1689_addin1, kat1689_retbits
+};
+static const struct drbg_kat kat1689 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1689_t
+};
+
+static const unsigned char kat1690_entropyin[] = {
+ 0xea, 0xc1, 0x5d, 0x41, 0x87, 0xdb, 0x3c, 0x65, 0x6f, 0x3c, 0xa8, 0x2c,
+ 0xad, 0xf3, 0xb8, 0x22, 0xe7, 0x92, 0xab, 0xd7, 0x7d, 0x07, 0x62, 0x09,
+};
+static const unsigned char kat1690_nonce[] = {
+ 0x07, 0x94, 0xcd, 0x4c, 0x85, 0x6c, 0x3b, 0x06, 0xe5, 0xa0, 0x8c, 0x01,
+ 0xa2, 0xf7, 0x33, 0x9b,
+};
+static const unsigned char kat1690_persstr[] = {0};
+static const unsigned char kat1690_entropyinreseed[] = {
+ 0xdf, 0x9f, 0x05, 0x09, 0x9f, 0x04, 0x92, 0xb2, 0x85, 0xd6, 0x79, 0x1d,
+ 0xb7, 0x03, 0x89, 0xa4, 0x12, 0xaf, 0x2e, 0x9b, 0xb4, 0x97, 0x18, 0xd9,
+};
+static const unsigned char kat1690_addinreseed[] = {0};
+static const unsigned char kat1690_addin0[] = {0};
+static const unsigned char kat1690_addin1[] = {0};
+static const unsigned char kat1690_retbits[] = {
+ 0x38, 0x95, 0xe8, 0xb2, 0x75, 0x1c, 0xac, 0x3d, 0xcb, 0xaa, 0x9c, 0x06,
+ 0xb9, 0x8d, 0x4b, 0xb4, 0x8f, 0xc7, 0xdf, 0xf1, 0x75, 0xad, 0xb4, 0xfe,
+ 0x9e, 0x8d, 0xde, 0x5e, 0x76, 0x1f, 0x9c, 0x5f, 0x9d, 0x7c, 0x92, 0xc4,
+ 0xe8, 0x32, 0x0c, 0x9d, 0x6f, 0xd2, 0x7b, 0x48, 0x71, 0x3b, 0x39, 0x01,
+ 0x2b, 0x67, 0x15, 0x4c, 0x15, 0xea, 0x0b, 0xe1, 0xd0, 0xb9, 0xb4, 0x52,
+ 0x3c, 0xd8, 0x2e, 0x52,
+};
+static const struct drbg_kat_pr_false kat1690_t = {
+ 9, kat1690_entropyin, kat1690_nonce, kat1690_persstr,
+ kat1690_entropyinreseed, kat1690_addinreseed, kat1690_addin0,
+ kat1690_addin1, kat1690_retbits
+};
+static const struct drbg_kat kat1690 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1690_t
+};
+
+static const unsigned char kat1691_entropyin[] = {
+ 0x8e, 0xc7, 0x70, 0x27, 0x54, 0x86, 0x31, 0x64, 0x65, 0xf6, 0xdd, 0x0a,
+ 0x82, 0xd5, 0xa5, 0xf7, 0x52, 0x93, 0x92, 0xca, 0x59, 0xda, 0xe5, 0x72,
+};
+static const unsigned char kat1691_nonce[] = {
+ 0x68, 0xe5, 0xb6, 0xbe, 0xf9, 0xb2, 0x21, 0x84, 0x87, 0x25, 0x04, 0xb2,
+ 0xb8, 0xb1, 0xbc, 0x63,
+};
+static const unsigned char kat1691_persstr[] = {0};
+static const unsigned char kat1691_entropyinreseed[] = {
+ 0x06, 0x6b, 0xba, 0xb8, 0x85, 0xdb, 0xec, 0x60, 0xa4, 0x00, 0x5b, 0xdf,
+ 0x1b, 0x26, 0xae, 0x24, 0x05, 0xb0, 0xf0, 0x89, 0xcd, 0x72, 0xb4, 0x70,
+};
+static const unsigned char kat1691_addinreseed[] = {0};
+static const unsigned char kat1691_addin0[] = {0};
+static const unsigned char kat1691_addin1[] = {0};
+static const unsigned char kat1691_retbits[] = {
+ 0xe2, 0x37, 0xd1, 0x4f, 0xa1, 0xde, 0x2d, 0xb1, 0xee, 0xed, 0x8d, 0x56,
+ 0x12, 0xe6, 0x40, 0x11, 0x61, 0x2b, 0x92, 0x9a, 0x59, 0x55, 0x8e, 0xb1,
+ 0x1a, 0xfa, 0xe1, 0xe8, 0xab, 0x01, 0x0f, 0x9a, 0xca, 0xf6, 0x97, 0x0b,
+ 0x86, 0x12, 0xd7, 0x6c, 0xb9, 0x82, 0xbf, 0x8b, 0xd0, 0x59, 0x7a, 0x6c,
+ 0xf1, 0x45, 0x0f, 0x5a, 0xf4, 0x60, 0x48, 0xf3, 0x76, 0x88, 0x96, 0x54,
+ 0x05, 0x18, 0xd3, 0x6e,
+};
+static const struct drbg_kat_pr_false kat1691_t = {
+ 10, kat1691_entropyin, kat1691_nonce, kat1691_persstr,
+ kat1691_entropyinreseed, kat1691_addinreseed, kat1691_addin0,
+ kat1691_addin1, kat1691_retbits
+};
+static const struct drbg_kat kat1691 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1691_t
+};
+
+static const unsigned char kat1692_entropyin[] = {
+ 0x4d, 0x8f, 0x48, 0xad, 0xd2, 0xe4, 0x3f, 0x33, 0xe9, 0x7b, 0xf4, 0xa0,
+ 0x47, 0xc0, 0xfb, 0xf4, 0xb6, 0x9f, 0xc6, 0x16, 0x95, 0x10, 0x26, 0x25,
+};
+static const unsigned char kat1692_nonce[] = {
+ 0x7f, 0xb4, 0xe4, 0xb5, 0xe5, 0xc0, 0x25, 0x82, 0x26, 0x2f, 0x9c, 0x1a,
+ 0xe6, 0xe3, 0x21, 0x4e,
+};
+static const unsigned char kat1692_persstr[] = {0};
+static const unsigned char kat1692_entropyinreseed[] = {
+ 0x38, 0x7a, 0x88, 0x88, 0x56, 0x59, 0x27, 0xa2, 0x26, 0x22, 0x51, 0xd1,
+ 0x37, 0x18, 0xe8, 0x97, 0xda, 0x8d, 0xdc, 0x41, 0xa5, 0x95, 0xa1, 0xc8,
+};
+static const unsigned char kat1692_addinreseed[] = {0};
+static const unsigned char kat1692_addin0[] = {0};
+static const unsigned char kat1692_addin1[] = {0};
+static const unsigned char kat1692_retbits[] = {
+ 0x2b, 0x5c, 0x7c, 0x6d, 0x83, 0x9e, 0x83, 0xf5, 0x6e, 0x6e, 0x40, 0xe0,
+ 0x6f, 0xf1, 0x7f, 0xc2, 0x2e, 0xb1, 0x25, 0x0d, 0xd3, 0xa1, 0xda, 0x76,
+ 0xf2, 0xd6, 0xed, 0x8b, 0x23, 0x69, 0x6f, 0x2c, 0x10, 0x62, 0xdd, 0x1e,
+ 0x64, 0xae, 0xa7, 0x63, 0xe4, 0x55, 0x83, 0x5d, 0xbe, 0x68, 0xcb, 0x58,
+ 0xcc, 0xce, 0x0a, 0xc2, 0x61, 0x01, 0xa3, 0xed, 0xf0, 0xd6, 0x56, 0x0a,
+ 0x57, 0xbe, 0x2f, 0x28,
+};
+static const struct drbg_kat_pr_false kat1692_t = {
+ 11, kat1692_entropyin, kat1692_nonce, kat1692_persstr,
+ kat1692_entropyinreseed, kat1692_addinreseed, kat1692_addin0,
+ kat1692_addin1, kat1692_retbits
+};
+static const struct drbg_kat kat1692 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1692_t
+};
+
+static const unsigned char kat1693_entropyin[] = {
+ 0xe2, 0xa3, 0x0f, 0xa3, 0xcb, 0x3e, 0x33, 0xb9, 0x7d, 0x83, 0xd0, 0xd3,
+ 0xaa, 0x2d, 0xf4, 0x05, 0x37, 0x72, 0x91, 0xe9, 0x92, 0x0f, 0x3b, 0x26,
+};
+static const unsigned char kat1693_nonce[] = {
+ 0x41, 0xa5, 0xe7, 0x4c, 0x8f, 0x19, 0x6a, 0x5d, 0xa2, 0xb4, 0xd9, 0x04,
+ 0x3e, 0x24, 0xcd, 0x42,
+};
+static const unsigned char kat1693_persstr[] = {0};
+static const unsigned char kat1693_entropyinreseed[] = {
+ 0x15, 0xf0, 0x86, 0x37, 0xda, 0xa6, 0x57, 0x92, 0x70, 0xd8, 0x7b, 0x0c,
+ 0x7b, 0xeb, 0x81, 0xc3, 0x20, 0x98, 0x12, 0x15, 0xfd, 0x58, 0xa1, 0x06,
+};
+static const unsigned char kat1693_addinreseed[] = {0};
+static const unsigned char kat1693_addin0[] = {0};
+static const unsigned char kat1693_addin1[] = {0};
+static const unsigned char kat1693_retbits[] = {
+ 0xaa, 0x1c, 0x37, 0x50, 0x3f, 0xea, 0x02, 0xa1, 0xc9, 0xd7, 0x72, 0x4b,
+ 0xc2, 0x8b, 0x82, 0x42, 0x46, 0xbf, 0x62, 0x03, 0x29, 0xba, 0x2f, 0x8b,
+ 0x4d, 0x3a, 0xa9, 0x9a, 0x8b, 0x5a, 0xd3, 0xaa, 0x47, 0x38, 0xd5, 0xb6,
+ 0x39, 0xa9, 0xe1, 0x73, 0x4e, 0x52, 0x08, 0x7f, 0x4d, 0xa1, 0x0f, 0x7c,
+ 0x29, 0x31, 0x54, 0x92, 0x3b, 0x60, 0x81, 0x90, 0xa2, 0x9e, 0x6a, 0x0d,
+ 0xf7, 0x6e, 0x56, 0x2f,
+};
+static const struct drbg_kat_pr_false kat1693_t = {
+ 12, kat1693_entropyin, kat1693_nonce, kat1693_persstr,
+ kat1693_entropyinreseed, kat1693_addinreseed, kat1693_addin0,
+ kat1693_addin1, kat1693_retbits
+};
+static const struct drbg_kat kat1693 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1693_t
+};
+
+static const unsigned char kat1694_entropyin[] = {
+ 0x91, 0xf9, 0x69, 0x7b, 0xb5, 0x08, 0x6f, 0x33, 0x15, 0xf5, 0xab, 0x85,
+ 0xde, 0x1e, 0x1f, 0xb3, 0xc1, 0xcf, 0xa8, 0x43, 0xdb, 0xae, 0x5a, 0x0e,
+};
+static const unsigned char kat1694_nonce[] = {
+ 0xa2, 0xe5, 0xca, 0x73, 0x00, 0x77, 0x76, 0x9e, 0x3a, 0xb6, 0x52, 0xb5,
+ 0x03, 0x83, 0x02, 0x47,
+};
+static const unsigned char kat1694_persstr[] = {0};
+static const unsigned char kat1694_entropyinreseed[] = {
+ 0xfe, 0x30, 0x47, 0x16, 0xbf, 0xe5, 0xa4, 0xf0, 0xc6, 0x12, 0x94, 0x6f,
+ 0x52, 0xb3, 0xbd, 0xea, 0x06, 0xf9, 0x12, 0xd2, 0x23, 0x15, 0x24, 0xd2,
+};
+static const unsigned char kat1694_addinreseed[] = {0};
+static const unsigned char kat1694_addin0[] = {0};
+static const unsigned char kat1694_addin1[] = {0};
+static const unsigned char kat1694_retbits[] = {
+ 0xfc, 0xd9, 0x4f, 0x13, 0x8b, 0x88, 0xaa, 0x2e, 0x49, 0x8f, 0x75, 0x52,
+ 0x34, 0x5b, 0x25, 0x3a, 0xa6, 0xff, 0xe0, 0xbc, 0x15, 0x98, 0x80, 0x37,
+ 0x9f, 0xe7, 0x39, 0xc3, 0x60, 0x92, 0x29, 0x4d, 0xe2, 0x8d, 0x7f, 0xa7,
+ 0xbb, 0xb5, 0x74, 0x26, 0x6f, 0x50, 0x05, 0x99, 0x8b, 0x1a, 0xd1, 0xf2,
+ 0x94, 0x2b, 0x0e, 0x8f, 0xf1, 0x8c, 0xb6, 0xb3, 0x7e, 0x2f, 0x0c, 0xbf,
+ 0x45, 0xc0, 0x30, 0x1a,
+};
+static const struct drbg_kat_pr_false kat1694_t = {
+ 13, kat1694_entropyin, kat1694_nonce, kat1694_persstr,
+ kat1694_entropyinreseed, kat1694_addinreseed, kat1694_addin0,
+ kat1694_addin1, kat1694_retbits
+};
+static const struct drbg_kat kat1694 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1694_t
+};
+
+static const unsigned char kat1695_entropyin[] = {
+ 0xf3, 0x92, 0x2c, 0xf4, 0x22, 0x17, 0x4c, 0xe2, 0x6b, 0x0b, 0x69, 0x1d,
+ 0xf1, 0xc8, 0xd4, 0x4e, 0xfd, 0x46, 0xaa, 0xef, 0xa6, 0x20, 0xc2, 0x04,
+};
+static const unsigned char kat1695_nonce[] = {
+ 0x54, 0x29, 0x0f, 0x52, 0x02, 0xde, 0x67, 0x1c, 0x30, 0xd7, 0x81, 0x97,
+ 0x55, 0x25, 0x74, 0x94,
+};
+static const unsigned char kat1695_persstr[] = {0};
+static const unsigned char kat1695_entropyinreseed[] = {
+ 0xc7, 0xdb, 0xf7, 0xf1, 0x16, 0x1d, 0x35, 0x51, 0xc3, 0xb6, 0xe3, 0x60,
+ 0xca, 0x73, 0x21, 0x31, 0xc0, 0x4f, 0xd5, 0xe1, 0xa4, 0x3f, 0x9a, 0xff,
+};
+static const unsigned char kat1695_addinreseed[] = {0};
+static const unsigned char kat1695_addin0[] = {0};
+static const unsigned char kat1695_addin1[] = {0};
+static const unsigned char kat1695_retbits[] = {
+ 0x11, 0x4e, 0xb9, 0x2d, 0x66, 0x78, 0x66, 0x79, 0xdc, 0xc9, 0xea, 0x1a,
+ 0xfa, 0x04, 0xe4, 0xba, 0xfb, 0x83, 0xab, 0x94, 0xf3, 0x38, 0xb3, 0xbd,
+ 0xc4, 0x0f, 0xf6, 0x6b, 0xeb, 0xf1, 0xc4, 0x6f, 0x73, 0x6d, 0x6a, 0x91,
+ 0x2a, 0xc3, 0xe3, 0xe7, 0x9c, 0x5b, 0x0e, 0x14, 0x92, 0x7f, 0xbe, 0xfb,
+ 0x59, 0xcd, 0x80, 0x5a, 0xd5, 0x51, 0x5c, 0x50, 0x19, 0x23, 0xdc, 0x47,
+ 0xd6, 0x45, 0x6e, 0x64,
+};
+static const struct drbg_kat_pr_false kat1695_t = {
+ 14, kat1695_entropyin, kat1695_nonce, kat1695_persstr,
+ kat1695_entropyinreseed, kat1695_addinreseed, kat1695_addin0,
+ kat1695_addin1, kat1695_retbits
+};
+static const struct drbg_kat kat1695 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1695_t
+};
+
+static const unsigned char kat1696_entropyin[] = {
+ 0x3a, 0x09, 0xc9, 0xcc, 0x5e, 0x01, 0xf1, 0x52, 0xea, 0x2e, 0xd3, 0x02,
+ 0x1d, 0x49, 0xb4, 0xd6, 0x38, 0x6a, 0xa6, 0xf0, 0x45, 0x21, 0xeb, 0xde,
+};
+static const unsigned char kat1696_nonce[] = {
+ 0x49, 0x0b, 0xd4, 0xee, 0x62, 0x8c, 0xf9, 0x61, 0x50, 0x35, 0x54, 0x3e,
+ 0x70, 0xfc, 0xe4, 0xe2,
+};
+static const unsigned char kat1696_persstr[] = {0};
+static const unsigned char kat1696_entropyinreseed[] = {
+ 0xdf, 0x06, 0xe5, 0x66, 0x8d, 0x41, 0xa6, 0xfa, 0x76, 0x60, 0xae, 0xf4,
+ 0x77, 0xef, 0xf7, 0xa0, 0xff, 0xc0, 0x54, 0x2c, 0x1c, 0xd4, 0x06, 0xd5,
+};
+static const unsigned char kat1696_addinreseed[] = {
+ 0x59, 0xb8, 0xc2, 0x66, 0x26, 0xaa, 0xb6, 0x9e, 0x46, 0x27, 0x52, 0x72,
+ 0x2f, 0x19, 0x45, 0x0d, 0x12, 0xe2, 0xc0, 0xe9, 0x59, 0x88, 0x2d, 0x4d,
+ 0x06, 0xef, 0x41, 0x77, 0xe3, 0x96, 0x85, 0x5d,
+};
+static const unsigned char kat1696_addin0[] = {
+ 0x28, 0xe5, 0x7a, 0x91, 0x28, 0xe4, 0x79, 0x98, 0x5c, 0xce, 0x39, 0x1e,
+ 0x98, 0x12, 0x7f, 0xd1, 0x26, 0xf3, 0x7a, 0xd0, 0xf3, 0x17, 0xfd, 0x5f,
+ 0x97, 0xb8, 0xc1, 0x8e, 0x76, 0x2f, 0x36, 0x0b,
+};
+static const unsigned char kat1696_addin1[] = {
+ 0xd4, 0x88, 0x67, 0x2b, 0x52, 0xe8, 0x67, 0x81, 0x61, 0x78, 0x36, 0x9f,
+ 0x54, 0x21, 0x90, 0x68, 0x5b, 0xbe, 0x86, 0x72, 0x72, 0x0c, 0x19, 0x43,
+ 0xd8, 0xa4, 0x37, 0x8c, 0xc9, 0xb9, 0xdd, 0x0c,
+};
+static const unsigned char kat1696_retbits[] = {
+ 0x5c, 0x23, 0x3e, 0x28, 0x50, 0xe4, 0x98, 0x1b, 0xab, 0x0f, 0x65, 0x13,
+ 0xa7, 0x6c, 0xa2, 0xc9, 0xf9, 0xf9, 0x7b, 0x89, 0xb7, 0xfe, 0xdd, 0x3d,
+ 0x9a, 0xaf, 0xfe, 0xcf, 0x30, 0x5d, 0x89, 0xfd, 0x53, 0x06, 0xcf, 0x24,
+ 0x71, 0x58, 0x95, 0xad, 0x9b, 0xa7, 0xda, 0xc8, 0xc3, 0x89, 0xfd, 0x87,
+ 0xf9, 0x5b, 0x49, 0x73, 0x00, 0x31, 0x50, 0x87, 0x1f, 0xa2, 0x81, 0xe9,
+ 0x62, 0xf2, 0x70, 0xcb,
+};
+static const struct drbg_kat_pr_false kat1696_t = {
+ 0, kat1696_entropyin, kat1696_nonce, kat1696_persstr,
+ kat1696_entropyinreseed, kat1696_addinreseed, kat1696_addin0,
+ kat1696_addin1, kat1696_retbits
+};
+static const struct drbg_kat kat1696 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1696_t
+};
+
+static const unsigned char kat1697_entropyin[] = {
+ 0x60, 0x2a, 0x92, 0x35, 0x7a, 0x43, 0x37, 0xc3, 0xd4, 0x2c, 0x29, 0x83,
+ 0x84, 0xc2, 0x9c, 0x1e, 0x04, 0x8d, 0x30, 0xc1, 0x14, 0x6d, 0xce, 0xd6,
+};
+static const unsigned char kat1697_nonce[] = {
+ 0x86, 0x9e, 0x7d, 0x82, 0xde, 0xc9, 0xe9, 0x2c, 0x07, 0xd2, 0xc6, 0x58,
+ 0xbc, 0x86, 0x7d, 0xcd,
+};
+static const unsigned char kat1697_persstr[] = {0};
+static const unsigned char kat1697_entropyinreseed[] = {
+ 0x08, 0x8c, 0x0a, 0xbf, 0x63, 0x34, 0x6b, 0xd6, 0xa7, 0xfc, 0x75, 0x42,
+ 0xdf, 0xf6, 0x0f, 0x12, 0xcf, 0x55, 0xfd, 0x32, 0x0f, 0xfb, 0x60, 0x75,
+};
+static const unsigned char kat1697_addinreseed[] = {
+ 0xe2, 0x8e, 0xcb, 0xbe, 0x64, 0x61, 0xc6, 0xc1, 0x3b, 0x85, 0x6e, 0xb6,
+ 0xfd, 0x97, 0x1b, 0x00, 0x0d, 0xf6, 0xf4, 0xca, 0x6f, 0xad, 0xa0, 0x59,
+ 0xb6, 0x20, 0x1c, 0x65, 0x82, 0x66, 0x22, 0x5b,
+};
+static const unsigned char kat1697_addin0[] = {
+ 0x1a, 0x1b, 0xfb, 0x70, 0x32, 0xf9, 0xaa, 0x19, 0x78, 0x42, 0xef, 0x9a,
+ 0x5b, 0xb3, 0x33, 0xd6, 0x4b, 0x23, 0xe5, 0x0b, 0x87, 0x8f, 0xe9, 0x6c,
+ 0x36, 0x34, 0x3e, 0x45, 0x64, 0x2f, 0x94, 0xd1,
+};
+static const unsigned char kat1697_addin1[] = {
+ 0x6c, 0x59, 0x6c, 0x81, 0x94, 0xae, 0x83, 0x89, 0x04, 0x18, 0x8d, 0x3e,
+ 0x8c, 0xaf, 0x89, 0x5f, 0xa2, 0xb2, 0xf5, 0x23, 0x54, 0x45, 0x29, 0xa3,
+ 0xdf, 0x54, 0xad, 0x5e, 0xd7, 0x34, 0x97, 0x60,
+};
+static const unsigned char kat1697_retbits[] = {
+ 0x1a, 0x40, 0xcd, 0xed, 0x46, 0xf0, 0xff, 0x78, 0x09, 0x14, 0x9e, 0x1e,
+ 0xd8, 0xfd, 0xa8, 0x3b, 0x18, 0xdc, 0xd1, 0xdb, 0xcb, 0x5d, 0xf7, 0xb2,
+ 0xb4, 0xe2, 0xeb, 0xd8, 0x76, 0xea, 0x6e, 0xf3, 0xdd, 0x53, 0x52, 0x8f,
+ 0x90, 0x96, 0x7b, 0xcd, 0x8f, 0xae, 0xb6, 0x3f, 0xbe, 0x5b, 0xe1, 0x83,
+ 0x8a, 0xf3, 0x78, 0x57, 0xc1, 0xd0, 0x10, 0x70, 0x4a, 0x59, 0x7d, 0x24,
+ 0x5d, 0xb5, 0x7e, 0x57,
+};
+static const struct drbg_kat_pr_false kat1697_t = {
+ 1, kat1697_entropyin, kat1697_nonce, kat1697_persstr,
+ kat1697_entropyinreseed, kat1697_addinreseed, kat1697_addin0,
+ kat1697_addin1, kat1697_retbits
+};
+static const struct drbg_kat kat1697 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1697_t
+};
+
+static const unsigned char kat1698_entropyin[] = {
+ 0xac, 0xce, 0xfe, 0x82, 0xaf, 0x41, 0x4c, 0x24, 0x92, 0xb0, 0x2d, 0xde,
+ 0x59, 0x70, 0x5f, 0x01, 0x5c, 0x78, 0x02, 0x7a, 0x8e, 0xec, 0x11, 0x3d,
+};
+static const unsigned char kat1698_nonce[] = {
+ 0x51, 0x34, 0x07, 0x5d, 0x95, 0x14, 0xb4, 0x66, 0xce, 0x11, 0xf4, 0x73,
+ 0x29, 0x81, 0x81, 0x23,
+};
+static const unsigned char kat1698_persstr[] = {0};
+static const unsigned char kat1698_entropyinreseed[] = {
+ 0x77, 0x95, 0x0e, 0x14, 0xe3, 0x2d, 0x96, 0x65, 0xec, 0x60, 0x30, 0x8c,
+ 0x1b, 0x47, 0x32, 0xfc, 0x51, 0xf7, 0xc6, 0xfd, 0xc2, 0x7a, 0x04, 0x37,
+};
+static const unsigned char kat1698_addinreseed[] = {
+ 0xa4, 0x68, 0xa6, 0x85, 0xd2, 0x7e, 0xb4, 0xbf, 0x61, 0xfc, 0xff, 0x6c,
+ 0xe5, 0x91, 0xc5, 0x57, 0x9f, 0x9a, 0x22, 0x10, 0x48, 0x15, 0xbc, 0x34,
+ 0x1b, 0x41, 0x1e, 0xa1, 0x61, 0x0a, 0xb5, 0x1f,
+};
+static const unsigned char kat1698_addin0[] = {
+ 0x13, 0xce, 0xdd, 0xac, 0x15, 0x04, 0x76, 0xa1, 0x36, 0x4b, 0x9f, 0x70,
+ 0x0e, 0xc7, 0xa3, 0xae, 0x02, 0x62, 0x9b, 0x9a, 0xa4, 0x41, 0xa5, 0x59,
+ 0x05, 0x7b, 0x65, 0x49, 0xa1, 0x33, 0xe4, 0x96,
+};
+static const unsigned char kat1698_addin1[] = {
+ 0x90, 0x84, 0x2d, 0x71, 0xb9, 0xc5, 0x97, 0xff, 0xd3, 0x07, 0xb5, 0xa9,
+ 0xe1, 0xb7, 0x35, 0x5f, 0x73, 0x0f, 0xa3, 0x0b, 0xdc, 0x42, 0x42, 0x5c,
+ 0xb0, 0x1c, 0x9b, 0x94, 0x15, 0x21, 0xcc, 0x54,
+};
+static const unsigned char kat1698_retbits[] = {
+ 0x77, 0x4f, 0xff, 0x12, 0x1f, 0x3b, 0x7c, 0x9b, 0xbc, 0xdf, 0x84, 0x44,
+ 0x97, 0x21, 0x2d, 0xa4, 0x7a, 0x83, 0xce, 0xc4, 0x76, 0xf0, 0x9b, 0xca,
+ 0x3e, 0x19, 0x89, 0xe5, 0x4d, 0xe0, 0x11, 0x6f, 0x3f, 0x25, 0xab, 0x24,
+ 0x76, 0x84, 0xfb, 0xd0, 0xb5, 0xb5, 0x9a, 0xd1, 0xbd, 0xa0, 0x77, 0x3f,
+ 0xa0, 0x06, 0xd6, 0x04, 0x9d, 0xfb, 0x0e, 0xaf, 0xdb, 0xab, 0xf4, 0xbe,
+ 0x05, 0xbe, 0xc4, 0x55,
+};
+static const struct drbg_kat_pr_false kat1698_t = {
+ 2, kat1698_entropyin, kat1698_nonce, kat1698_persstr,
+ kat1698_entropyinreseed, kat1698_addinreseed, kat1698_addin0,
+ kat1698_addin1, kat1698_retbits
+};
+static const struct drbg_kat kat1698 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1698_t
+};
+
+static const unsigned char kat1699_entropyin[] = {
+ 0xf8, 0xaf, 0x59, 0x4a, 0xf0, 0xd5, 0x73, 0x4e, 0x80, 0x2d, 0xc1, 0xf3,
+ 0x47, 0xc0, 0x2f, 0x5f, 0xad, 0x75, 0x3b, 0x9e, 0x4e, 0x2d, 0x8e, 0xaa,
+};
+static const unsigned char kat1699_nonce[] = {
+ 0xf8, 0x67, 0x14, 0x4b, 0x4f, 0xd8, 0x28, 0x89, 0xd0, 0x74, 0x64, 0x09,
+ 0xbf, 0x8e, 0xad, 0x4b,
+};
+static const unsigned char kat1699_persstr[] = {0};
+static const unsigned char kat1699_entropyinreseed[] = {
+ 0x39, 0x93, 0x80, 0x3f, 0xb8, 0xd4, 0x23, 0x34, 0x28, 0xaa, 0xb4, 0x60,
+ 0x83, 0x5a, 0xcc, 0x9a, 0xd4, 0xb2, 0xc0, 0xd5, 0xd2, 0x15, 0x71, 0x0b,
+};
+static const unsigned char kat1699_addinreseed[] = {
+ 0xfc, 0x53, 0x85, 0x64, 0x78, 0xfd, 0xc9, 0x1c, 0xb2, 0x8a, 0x32, 0xf1,
+ 0xfb, 0x75, 0xe1, 0x73, 0x26, 0xe3, 0x88, 0x25, 0x78, 0x31, 0x71, 0xa2,
+ 0x07, 0x7f, 0x86, 0x21, 0x26, 0x8d, 0x7f, 0x63,
+};
+static const unsigned char kat1699_addin0[] = {
+ 0x1f, 0xf0, 0x4a, 0x19, 0x18, 0x60, 0x7f, 0xda, 0xc6, 0x16, 0x60, 0xee,
+ 0x44, 0x0d, 0x1c, 0x1f, 0xdd, 0x05, 0x03, 0x8d, 0x03, 0xc6, 0x01, 0x1c,
+ 0x93, 0x26, 0x66, 0xa4, 0xb5, 0x4b, 0x03, 0x91,
+};
+static const unsigned char kat1699_addin1[] = {
+ 0xd6, 0x7e, 0x82, 0xb2, 0x65, 0xe5, 0xee, 0xd3, 0x20, 0x62, 0x71, 0x4f,
+ 0x5a, 0xd2, 0x4e, 0x56, 0x63, 0xcb, 0x96, 0x18, 0x42, 0x1c, 0xc1, 0xb6,
+ 0x9c, 0xea, 0x37, 0x71, 0xed, 0x7a, 0xe4, 0xa5,
+};
+static const unsigned char kat1699_retbits[] = {
+ 0xb4, 0xe2, 0x20, 0x34, 0xe1, 0x42, 0xc5, 0xd1, 0xad, 0xa2, 0x6b, 0x09,
+ 0x02, 0x78, 0xb7, 0x36, 0x0b, 0x5e, 0x1d, 0x9b, 0x0b, 0x56, 0xfb, 0x25,
+ 0x75, 0x15, 0xf5, 0xc3, 0xce, 0x34, 0x62, 0x16, 0x9a, 0xf1, 0xac, 0x86,
+ 0xfa, 0x2c, 0xfc, 0x58, 0x66, 0xe9, 0x73, 0xa9, 0x83, 0x0d, 0x65, 0x54,
+ 0x18, 0x6f, 0xb2, 0xd1, 0xf5, 0xf1, 0x11, 0x46, 0xa1, 0x5e, 0x78, 0xaf,
+ 0xeb, 0xd8, 0xc1, 0x20,
+};
+static const struct drbg_kat_pr_false kat1699_t = {
+ 3, kat1699_entropyin, kat1699_nonce, kat1699_persstr,
+ kat1699_entropyinreseed, kat1699_addinreseed, kat1699_addin0,
+ kat1699_addin1, kat1699_retbits
+};
+static const struct drbg_kat kat1699 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1699_t
+};
+
+static const unsigned char kat1700_entropyin[] = {
+ 0x85, 0x92, 0xce, 0xc1, 0xa3, 0xfb, 0x26, 0x15, 0xd8, 0xde, 0xb8, 0xfa,
+ 0x42, 0x51, 0xee, 0x2a, 0xf1, 0x7b, 0x52, 0xd3, 0x2c, 0xb8, 0x7e, 0xae,
+};
+static const unsigned char kat1700_nonce[] = {
+ 0x35, 0x88, 0x82, 0x0f, 0x95, 0xa5, 0x16, 0xef, 0x5d, 0x24, 0x97, 0x56,
+ 0x22, 0xe0, 0x3d, 0xf7,
+};
+static const unsigned char kat1700_persstr[] = {0};
+static const unsigned char kat1700_entropyinreseed[] = {
+ 0x58, 0x80, 0xbb, 0x7d, 0xe2, 0xce, 0xac, 0x8a, 0xf5, 0x3d, 0x24, 0x3a,
+ 0x74, 0xed, 0x5d, 0xef, 0x43, 0xb7, 0x63, 0xc5, 0xe2, 0x90, 0xe3, 0x9b,
+};
+static const unsigned char kat1700_addinreseed[] = {
+ 0x92, 0x45, 0xb3, 0x2b, 0xe1, 0x81, 0xa9, 0x3c, 0x03, 0x77, 0x67, 0x57,
+ 0xdb, 0xbe, 0xd2, 0x56, 0x67, 0x70, 0xb0, 0x1f, 0xfb, 0xd2, 0xfa, 0x8b,
+ 0xea, 0x19, 0x4c, 0xf9, 0x7e, 0x1e, 0xbb, 0x39,
+};
+static const unsigned char kat1700_addin0[] = {
+ 0xd4, 0xf6, 0x8a, 0x99, 0xe3, 0x22, 0xf7, 0x56, 0x0b, 0x5f, 0x60, 0x1a,
+ 0xbf, 0xf8, 0x99, 0x71, 0x1d, 0xf0, 0x66, 0x66, 0x69, 0x59, 0xf2, 0x31,
+ 0xaa, 0x3a, 0x63, 0x53, 0xad, 0x59, 0x74, 0xb1,
+};
+static const unsigned char kat1700_addin1[] = {
+ 0xa2, 0x4d, 0x59, 0xdc, 0x5a, 0xff, 0x9b, 0xee, 0x69, 0xf7, 0x92, 0xc2,
+ 0x90, 0xd2, 0xf4, 0x98, 0xd8, 0x85, 0x0b, 0xb1, 0xec, 0x75, 0xed, 0xf5,
+ 0xe6, 0xfe, 0x0f, 0xd7, 0x14, 0xa8, 0xe2, 0x29,
+};
+static const unsigned char kat1700_retbits[] = {
+ 0x94, 0x13, 0x69, 0x8a, 0x33, 0xff, 0xfd, 0x6c, 0x89, 0x8f, 0x20, 0x59,
+ 0xcf, 0xc7, 0xa6, 0x01, 0xb2, 0x2c, 0x34, 0x3a, 0x4f, 0x7b, 0x48, 0x45,
+ 0x73, 0x73, 0x67, 0x14, 0xbc, 0x3b, 0x85, 0x1a, 0x31, 0x64, 0xe2, 0xb3,
+ 0x05, 0x65, 0x34, 0x8e, 0x4d, 0x0d, 0x0b, 0xc0, 0xee, 0x6c, 0x50, 0xd2,
+ 0x52, 0x69, 0xb1, 0xa2, 0x89, 0x24, 0x7b, 0xe0, 0x90, 0x65, 0x14, 0x45,
+ 0x51, 0x31, 0xcf, 0x29,
+};
+static const struct drbg_kat_pr_false kat1700_t = {
+ 4, kat1700_entropyin, kat1700_nonce, kat1700_persstr,
+ kat1700_entropyinreseed, kat1700_addinreseed, kat1700_addin0,
+ kat1700_addin1, kat1700_retbits
+};
+static const struct drbg_kat kat1700 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1700_t
+};
+
+static const unsigned char kat1701_entropyin[] = {
+ 0x42, 0xa2, 0xac, 0xb0, 0x3c, 0x89, 0xd9, 0x66, 0x46, 0x85, 0x2d, 0xc2,
+ 0x79, 0x67, 0x94, 0x82, 0x81, 0xfa, 0xff, 0xe0, 0x54, 0xe1, 0xe7, 0x24,
+};
+static const unsigned char kat1701_nonce[] = {
+ 0xec, 0x26, 0x08, 0x86, 0x4b, 0xac, 0xd3, 0xd6, 0x7b, 0x13, 0x5c, 0xaf,
+ 0x43, 0xbe, 0xa1, 0x21,
+};
+static const unsigned char kat1701_persstr[] = {0};
+static const unsigned char kat1701_entropyinreseed[] = {
+ 0xfd, 0x61, 0x2c, 0xde, 0x9f, 0xa6, 0x53, 0xc3, 0x8a, 0x43, 0x83, 0x8d,
+ 0xab, 0xa2, 0x32, 0xd0, 0xd8, 0x35, 0x69, 0xb4, 0xc5, 0x00, 0xeb, 0x20,
+};
+static const unsigned char kat1701_addinreseed[] = {
+ 0xa0, 0x87, 0x38, 0x8b, 0x6d, 0xb7, 0x55, 0x04, 0x58, 0x09, 0xae, 0x59,
+ 0x82, 0x25, 0xb5, 0xf3, 0xb2, 0x83, 0xc2, 0xf3, 0x3e, 0xa6, 0xa2, 0x21,
+ 0x6c, 0x34, 0xcf, 0x46, 0xe5, 0x07, 0x7d, 0x95,
+};
+static const unsigned char kat1701_addin0[] = {
+ 0xb7, 0xb1, 0x3e, 0x5f, 0x55, 0x98, 0x02, 0x72, 0x90, 0x1e, 0xb1, 0x86,
+ 0xca, 0x61, 0xf5, 0xce, 0xcb, 0xaa, 0xd8, 0xe4, 0x00, 0x94, 0x5e, 0x47,
+ 0x46, 0xaa, 0x85, 0x9f, 0xe7, 0x23, 0xb9, 0xd3,
+};
+static const unsigned char kat1701_addin1[] = {
+ 0xb8, 0x7f, 0xc6, 0xc1, 0x14, 0x50, 0xa6, 0xe6, 0x2e, 0x2b, 0x8c, 0x97,
+ 0x62, 0x3b, 0x9a, 0xa3, 0xec, 0x05, 0xfd, 0x24, 0x0a, 0xc9, 0xfa, 0xa5,
+ 0x4d, 0x61, 0xc7, 0x01, 0xd7, 0xd9, 0x66, 0x61,
+};
+static const unsigned char kat1701_retbits[] = {
+ 0xb6, 0x0a, 0xc5, 0xc2, 0xdd, 0x9d, 0xa0, 0x55, 0x75, 0x44, 0x32, 0x55,
+ 0x21, 0x33, 0xb8, 0xd1, 0x73, 0x1c, 0x7b, 0xc3, 0x0d, 0x8f, 0x99, 0x58,
+ 0x59, 0x6a, 0x54, 0x3e, 0x95, 0x4f, 0xc2, 0x01, 0xa1, 0x63, 0x74, 0xb2,
+ 0xd6, 0xd4, 0x03, 0x33, 0x4a, 0xf6, 0x8d, 0x20, 0xec, 0x0d, 0x5a, 0xad,
+ 0x47, 0xb2, 0xc2, 0xc8, 0xeb, 0xb1, 0xf8, 0x02, 0x3b, 0x8c, 0x19, 0xeb,
+ 0x04, 0x1f, 0x3e, 0x3e,
+};
+static const struct drbg_kat_pr_false kat1701_t = {
+ 5, kat1701_entropyin, kat1701_nonce, kat1701_persstr,
+ kat1701_entropyinreseed, kat1701_addinreseed, kat1701_addin0,
+ kat1701_addin1, kat1701_retbits
+};
+static const struct drbg_kat kat1701 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1701_t
+};
+
+static const unsigned char kat1702_entropyin[] = {
+ 0x74, 0x3a, 0x00, 0xf3, 0x82, 0x80, 0x02, 0x87, 0xb2, 0x34, 0xd7, 0x4d,
+ 0x27, 0x46, 0x9b, 0x32, 0x22, 0x8f, 0x5f, 0xe3, 0xbd, 0xcf, 0xf4, 0x6f,
+};
+static const unsigned char kat1702_nonce[] = {
+ 0xfc, 0x31, 0x97, 0x60, 0x29, 0x29, 0x66, 0x5f, 0xe0, 0x21, 0x2d, 0xba,
+ 0xb1, 0xf0, 0xf7, 0x25,
+};
+static const unsigned char kat1702_persstr[] = {0};
+static const unsigned char kat1702_entropyinreseed[] = {
+ 0x2f, 0x85, 0x7a, 0x20, 0x33, 0x8c, 0x3d, 0x9a, 0xdd, 0xfb, 0xa4, 0xa7,
+ 0x9d, 0x84, 0xf9, 0xef, 0xec, 0x5a, 0xe8, 0x5d, 0xfa, 0xbb, 0x62, 0xd4,
+};
+static const unsigned char kat1702_addinreseed[] = {
+ 0x4c, 0xa1, 0xf2, 0xb8, 0x6c, 0x8e, 0x61, 0x48, 0x66, 0x68, 0x77, 0x03,
+ 0x8c, 0x00, 0x96, 0x16, 0x16, 0xe4, 0x67, 0x1b, 0x76, 0x76, 0xa9, 0x64,
+ 0x7e, 0xb6, 0x51, 0x5d, 0x39, 0x22, 0x4d, 0x99,
+};
+static const unsigned char kat1702_addin0[] = {
+ 0xaa, 0x19, 0x4d, 0x36, 0x6d, 0xfe, 0xf6, 0x2e, 0xcb, 0x94, 0x9a, 0xac,
+ 0x68, 0xcd, 0x32, 0xfb, 0x09, 0xd1, 0x3a, 0xe2, 0x9f, 0xf8, 0x46, 0x0f,
+ 0x66, 0x9b, 0xd7, 0xda, 0x6c, 0xaa, 0xfb, 0x9e,
+};
+static const unsigned char kat1702_addin1[] = {
+ 0x2d, 0x25, 0x5f, 0x27, 0x3b, 0x8b, 0x7f, 0xa3, 0x94, 0x31, 0xb0, 0x56,
+ 0x8a, 0xdb, 0x4a, 0xef, 0xcb, 0xec, 0xf5, 0x7d, 0xce, 0x3f, 0x45, 0xf7,
+ 0x7e, 0x61, 0x1e, 0x97, 0xc6, 0xd5, 0x86, 0xb6,
+};
+static const unsigned char kat1702_retbits[] = {
+ 0x28, 0x0d, 0xa4, 0xa8, 0xbd, 0x81, 0x58, 0x31, 0x8c, 0xe3, 0x2e, 0x92,
+ 0x6a, 0xd4, 0xf0, 0x31, 0x65, 0xbc, 0xd4, 0xff, 0x19, 0xc2, 0x74, 0x10,
+ 0x38, 0x38, 0xcd, 0xab, 0xed, 0x76, 0xdf, 0x4b, 0xa0, 0x64, 0x26, 0x77,
+ 0x03, 0xc2, 0x4b, 0xd1, 0x83, 0x9d, 0x18, 0xd0, 0x31, 0x18, 0x37, 0xc4,
+ 0xd7, 0xca, 0xbb, 0x7c, 0x22, 0x75, 0x1b, 0x63, 0x56, 0x14, 0x36, 0x99,
+ 0x3a, 0x14, 0xd4, 0x19,
+};
+static const struct drbg_kat_pr_false kat1702_t = {
+ 6, kat1702_entropyin, kat1702_nonce, kat1702_persstr,
+ kat1702_entropyinreseed, kat1702_addinreseed, kat1702_addin0,
+ kat1702_addin1, kat1702_retbits
+};
+static const struct drbg_kat kat1702 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1702_t
+};
+
+static const unsigned char kat1703_entropyin[] = {
+ 0xfd, 0x36, 0xf6, 0x1e, 0x82, 0xb1, 0x7a, 0xed, 0x18, 0xe7, 0x0f, 0x40,
+ 0x3a, 0xe5, 0xec, 0x89, 0xd1, 0xbe, 0xc1, 0xe6, 0xcc, 0x2c, 0x73, 0x9c,
+};
+static const unsigned char kat1703_nonce[] = {
+ 0xb3, 0xa7, 0x9e, 0x1a, 0x78, 0xef, 0x63, 0x0f, 0x82, 0x74, 0xbb, 0x17,
+ 0x66, 0xfa, 0x2f, 0x4d,
+};
+static const unsigned char kat1703_persstr[] = {0};
+static const unsigned char kat1703_entropyinreseed[] = {
+ 0x5d, 0xf9, 0x2b, 0xd6, 0x3a, 0x0d, 0x92, 0x10, 0xed, 0xef, 0xc4, 0x55,
+ 0x08, 0xf4, 0x76, 0xee, 0x97, 0xde, 0x02, 0xbf, 0x06, 0x75, 0x3a, 0x29,
+};
+static const unsigned char kat1703_addinreseed[] = {
+ 0x0e, 0xe3, 0xd2, 0xcc, 0xf2, 0x34, 0x3e, 0x68, 0x47, 0x10, 0xb9, 0x4e,
+ 0x72, 0x1b, 0x23, 0xbd, 0x7a, 0x14, 0x66, 0x27, 0x92, 0x06, 0xb0, 0xb5,
+ 0xaa, 0x85, 0x4b, 0x03, 0xbe, 0x2a, 0x73, 0x60,
+};
+static const unsigned char kat1703_addin0[] = {
+ 0x95, 0xfc, 0x87, 0x57, 0xdf, 0x7b, 0x89, 0xce, 0xf1, 0xdb, 0x5d, 0xbb,
+ 0xdd, 0xa2, 0xce, 0x45, 0x92, 0x84, 0x70, 0x5c, 0x9a, 0xc5, 0x68, 0xef,
+ 0xdb, 0x6f, 0xcf, 0xc6, 0x85, 0xfd, 0x13, 0x6d,
+};
+static const unsigned char kat1703_addin1[] = {
+ 0xd1, 0x2a, 0xe9, 0xad, 0x44, 0x12, 0xde, 0x00, 0xef, 0xc5, 0x85, 0xf0,
+ 0x29, 0xbb, 0x36, 0x16, 0x55, 0x8e, 0x60, 0x80, 0x67, 0x85, 0xe3, 0x2b,
+ 0xe7, 0x08, 0x6d, 0x2c, 0x64, 0x09, 0xe2, 0xc8,
+};
+static const unsigned char kat1703_retbits[] = {
+ 0x0d, 0x35, 0x9a, 0x5e, 0x94, 0xac, 0x6f, 0xf1, 0xfa, 0x3b, 0xc1, 0x5a,
+ 0xdc, 0x46, 0xd5, 0x48, 0x30, 0x11, 0x83, 0x10, 0xbc, 0x65, 0x0d, 0x61,
+ 0x35, 0x30, 0xe6, 0x29, 0xd3, 0x4a, 0x45, 0x9b, 0xe5, 0xb2, 0xa6, 0x29,
+ 0x06, 0x5b, 0x4e, 0x7f, 0x4c, 0x85, 0xf3, 0xb6, 0xac, 0xb8, 0x96, 0x2f,
+ 0xcb, 0xbc, 0x8a, 0x0f, 0xed, 0x24, 0x81, 0x84, 0x09, 0xf9, 0x42, 0x5f,
+ 0xff, 0xa3, 0xe1, 0x6a,
+};
+static const struct drbg_kat_pr_false kat1703_t = {
+ 7, kat1703_entropyin, kat1703_nonce, kat1703_persstr,
+ kat1703_entropyinreseed, kat1703_addinreseed, kat1703_addin0,
+ kat1703_addin1, kat1703_retbits
+};
+static const struct drbg_kat kat1703 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1703_t
+};
+
+static const unsigned char kat1704_entropyin[] = {
+ 0xde, 0xce, 0xa1, 0x8a, 0xbd, 0x55, 0x45, 0x50, 0x07, 0x75, 0x1b, 0xbd,
+ 0xff, 0x85, 0x01, 0xc4, 0x63, 0x05, 0xa7, 0xfa, 0xdf, 0x15, 0xe7, 0xa0,
+};
+static const unsigned char kat1704_nonce[] = {
+ 0x9f, 0xf5, 0x32, 0xb8, 0x26, 0x85, 0xf9, 0xea, 0x4f, 0x91, 0x89, 0x47,
+ 0x08, 0x07, 0x86, 0xfc,
+};
+static const unsigned char kat1704_persstr[] = {0};
+static const unsigned char kat1704_entropyinreseed[] = {
+ 0x2c, 0x06, 0xc5, 0xd4, 0x8a, 0x5f, 0xd3, 0x86, 0x99, 0x9d, 0x42, 0x8c,
+ 0xcc, 0x22, 0x7b, 0x55, 0xd7, 0x54, 0x9f, 0x57, 0xc4, 0xf3, 0xc1, 0x62,
+};
+static const unsigned char kat1704_addinreseed[] = {
+ 0x82, 0x3b, 0x0e, 0xec, 0x04, 0x51, 0xa2, 0x89, 0xe8, 0x27, 0x21, 0xea,
+ 0x47, 0x94, 0x9b, 0x5b, 0x25, 0x8b, 0x85, 0x0a, 0x4f, 0xa1, 0x49, 0x83,
+ 0x92, 0x1e, 0x9e, 0xca, 0x70, 0xd6, 0x4d, 0x8c,
+};
+static const unsigned char kat1704_addin0[] = {
+ 0x01, 0xe9, 0x0b, 0x33, 0xf3, 0x06, 0x7e, 0xbb, 0x73, 0x8d, 0xf3, 0x8f,
+ 0x6c, 0xcb, 0x08, 0x16, 0x4a, 0x0d, 0x8d, 0x92, 0x19, 0x01, 0x3f, 0xcf,
+ 0xbd, 0x05, 0x99, 0xdc, 0xfd, 0xd4, 0xfc, 0x40,
+};
+static const unsigned char kat1704_addin1[] = {
+ 0x15, 0xdd, 0x70, 0xaf, 0xee, 0x05, 0x3c, 0x64, 0xc6, 0xe1, 0x80, 0xf4,
+ 0x3b, 0xf1, 0x56, 0x42, 0x00, 0x7f, 0x2f, 0x2d, 0xf6, 0xdb, 0x9e, 0xbe,
+ 0x75, 0xf4, 0x06, 0x43, 0x14, 0xaa, 0x61, 0xf6,
+};
+static const unsigned char kat1704_retbits[] = {
+ 0x9a, 0x60, 0x83, 0xaa, 0x7a, 0x1f, 0xc1, 0xae, 0x11, 0xda, 0x9d, 0xa4,
+ 0x50, 0x60, 0xbe, 0xb1, 0x14, 0x2a, 0x57, 0xe0, 0xaa, 0x84, 0xf7, 0x5e,
+ 0x3d, 0xe1, 0x82, 0x88, 0xb1, 0x78, 0xfb, 0x20, 0x23, 0xfd, 0x30, 0xdc,
+ 0x42, 0x7f, 0xc9, 0x20, 0x16, 0x42, 0x90, 0x63, 0x56, 0x8a, 0xcc, 0xd4,
+ 0x92, 0x63, 0x9d, 0xe3, 0xd8, 0xd8, 0x07, 0xdc, 0x32, 0x40, 0x95, 0xa6,
+ 0xed, 0x01, 0xfe, 0x56,
+};
+static const struct drbg_kat_pr_false kat1704_t = {
+ 8, kat1704_entropyin, kat1704_nonce, kat1704_persstr,
+ kat1704_entropyinreseed, kat1704_addinreseed, kat1704_addin0,
+ kat1704_addin1, kat1704_retbits
+};
+static const struct drbg_kat kat1704 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1704_t
+};
+
+static const unsigned char kat1705_entropyin[] = {
+ 0x23, 0x98, 0x50, 0xb9, 0x49, 0x0a, 0x64, 0x03, 0x4e, 0x4b, 0x1d, 0xe3,
+ 0xd8, 0xdb, 0xf9, 0x37, 0x8c, 0x6e, 0xe8, 0x70, 0x2c, 0xc6, 0xa1, 0x34,
+};
+static const unsigned char kat1705_nonce[] = {
+ 0x0c, 0xb7, 0x8b, 0xf0, 0xbd, 0x2a, 0xe2, 0x7e, 0xff, 0xdc, 0xd5, 0x56,
+ 0x4b, 0x13, 0x8c, 0x9a,
+};
+static const unsigned char kat1705_persstr[] = {0};
+static const unsigned char kat1705_entropyinreseed[] = {
+ 0xe5, 0xcb, 0xac, 0xb9, 0x29, 0x64, 0xe9, 0xab, 0xd8, 0xff, 0x6d, 0xeb,
+ 0x1d, 0xae, 0x10, 0x21, 0x11, 0xf5, 0x29, 0x26, 0x7b, 0xcb, 0xb4, 0x3b,
+};
+static const unsigned char kat1705_addinreseed[] = {
+ 0xd7, 0x3f, 0x98, 0x23, 0x59, 0x0b, 0xe4, 0x3e, 0x23, 0x89, 0x42, 0x7b,
+ 0xc7, 0x96, 0xbf, 0x7e, 0xe5, 0xef, 0x65, 0x82, 0x32, 0x33, 0x8b, 0x45,
+ 0x75, 0xfb, 0x57, 0x74, 0x89, 0x88, 0xdf, 0x3e,
+};
+static const unsigned char kat1705_addin0[] = {
+ 0x1e, 0x48, 0x3f, 0x9a, 0xbe, 0xf8, 0x34, 0x66, 0xd2, 0x61, 0xce, 0x53,
+ 0x5a, 0xf9, 0x39, 0x4d, 0x11, 0x7c, 0x0d, 0xc0, 0x6b, 0x5b, 0xf5, 0x68,
+ 0x97, 0xe8, 0x1a, 0x98, 0xd8, 0x0a, 0x32, 0x54,
+};
+static const unsigned char kat1705_addin1[] = {
+ 0xc3, 0x21, 0x29, 0xbf, 0xa5, 0x6d, 0x52, 0xed, 0x84, 0x83, 0x49, 0x15,
+ 0xc9, 0x08, 0x60, 0x84, 0x3a, 0x78, 0xa6, 0xd9, 0xbb, 0x5c, 0x47, 0x0e,
+ 0xbc, 0xe2, 0xe1, 0x38, 0xa3, 0x95, 0x5b, 0x24,
+};
+static const unsigned char kat1705_retbits[] = {
+ 0xac, 0x61, 0x3d, 0x48, 0x58, 0x8a, 0x28, 0x00, 0xca, 0x6b, 0x77, 0xd5,
+ 0x6a, 0xf2, 0x1f, 0xa1, 0x36, 0x84, 0x76, 0x46, 0x78, 0x09, 0x9e, 0x51,
+ 0x76, 0x48, 0x97, 0xcf, 0x50, 0x8a, 0x12, 0xf9, 0xbb, 0xbb, 0xcf, 0x9a,
+ 0x72, 0x20, 0x91, 0x83, 0x41, 0x1c, 0x84, 0x6a, 0xe9, 0xb0, 0x12, 0x28,
+ 0xfc, 0x1d, 0xab, 0xc3, 0x41, 0xd6, 0x34, 0x50, 0xfc, 0xc0, 0x15, 0x93,
+ 0x2e, 0x8b, 0xd6, 0x45,
+};
+static const struct drbg_kat_pr_false kat1705_t = {
+ 9, kat1705_entropyin, kat1705_nonce, kat1705_persstr,
+ kat1705_entropyinreseed, kat1705_addinreseed, kat1705_addin0,
+ kat1705_addin1, kat1705_retbits
+};
+static const struct drbg_kat kat1705 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1705_t
+};
+
+static const unsigned char kat1706_entropyin[] = {
+ 0x1f, 0x7f, 0x04, 0xd9, 0xd5, 0x73, 0x35, 0xaf, 0xf4, 0x1e, 0xf2, 0x11,
+ 0x29, 0x9e, 0xd9, 0xe8, 0x8c, 0x95, 0x08, 0x3a, 0x93, 0xda, 0x76, 0x66,
+};
+static const unsigned char kat1706_nonce[] = {
+ 0x2c, 0x08, 0x55, 0x5e, 0x92, 0x98, 0x21, 0x91, 0x52, 0x28, 0x50, 0xb7,
+ 0x77, 0xd6, 0x1c, 0xad,
+};
+static const unsigned char kat1706_persstr[] = {0};
+static const unsigned char kat1706_entropyinreseed[] = {
+ 0xe1, 0xf4, 0x18, 0xc9, 0x9d, 0x81, 0x4e, 0x9e, 0x95, 0x96, 0xc2, 0x62,
+ 0xf8, 0x26, 0x61, 0x9f, 0xbc, 0x0a, 0x31, 0x43, 0x50, 0xe0, 0xbf, 0x64,
+};
+static const unsigned char kat1706_addinreseed[] = {
+ 0x5d, 0x1c, 0xd9, 0x63, 0xcd, 0x8f, 0xef, 0x60, 0x52, 0x9a, 0x15, 0x7f,
+ 0x55, 0xcd, 0xb0, 0xea, 0x96, 0xa6, 0x0e, 0x84, 0x5e, 0x2f, 0xc6, 0x32,
+ 0x66, 0xb9, 0x13, 0x8e, 0xb2, 0xe2, 0xb4, 0xd7,
+};
+static const unsigned char kat1706_addin0[] = {
+ 0xc9, 0xd5, 0x36, 0x69, 0x2e, 0x69, 0x91, 0x19, 0xae, 0x81, 0xb8, 0x89,
+ 0x6e, 0x78, 0xac, 0xe4, 0xf1, 0x34, 0x68, 0xb6, 0x26, 0x0a, 0xd8, 0xcf,
+ 0xa4, 0x8d, 0x16, 0x78, 0x1d, 0x34, 0x44, 0xef,
+};
+static const unsigned char kat1706_addin1[] = {
+ 0x09, 0x93, 0x5f, 0x2c, 0x5f, 0x63, 0x13, 0x20, 0x63, 0x7f, 0xbf, 0x8c,
+ 0xbb, 0xd1, 0x0d, 0x9e, 0x08, 0x2d, 0x21, 0xe3, 0xf2, 0x6c, 0xcf, 0x9b,
+ 0x7f, 0xd5, 0x4c, 0xa9, 0xa3, 0x47, 0x38, 0x71,
+};
+static const unsigned char kat1706_retbits[] = {
+ 0x59, 0x46, 0x4c, 0xa6, 0x8b, 0x54, 0xf4, 0xfa, 0x32, 0xe7, 0x64, 0x73,
+ 0x8c, 0x10, 0x73, 0xf9, 0xb8, 0xcc, 0x01, 0x4e, 0x2f, 0x57, 0x9e, 0x67,
+ 0xe1, 0xb1, 0x18, 0xf7, 0xf2, 0xf7, 0x8d, 0xad, 0x7f, 0x39, 0x92, 0xc5,
+ 0x3a, 0x45, 0xd6, 0x50, 0x7f, 0x88, 0x95, 0xa7, 0xbe, 0x7f, 0x76, 0x4d,
+ 0xc7, 0x2a, 0x88, 0xd4, 0x06, 0x64, 0x0b, 0x37, 0x09, 0x96, 0x5a, 0x9c,
+ 0xf6, 0xff, 0x1e, 0x8f,
+};
+static const struct drbg_kat_pr_false kat1706_t = {
+ 10, kat1706_entropyin, kat1706_nonce, kat1706_persstr,
+ kat1706_entropyinreseed, kat1706_addinreseed, kat1706_addin0,
+ kat1706_addin1, kat1706_retbits
+};
+static const struct drbg_kat kat1706 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1706_t
+};
+
+static const unsigned char kat1707_entropyin[] = {
+ 0x8c, 0x4e, 0xe1, 0xf9, 0xe1, 0x0a, 0x3a, 0xd8, 0x58, 0x7c, 0x15, 0x6e,
+ 0x28, 0x2f, 0x11, 0xaf, 0x86, 0x84, 0x1e, 0x11, 0xc5, 0xed, 0x1c, 0x2b,
+};
+static const unsigned char kat1707_nonce[] = {
+ 0xa2, 0x76, 0x0a, 0xc4, 0x50, 0x0a, 0x6d, 0xb4, 0x6b, 0x2a, 0x0a, 0x23,
+ 0x94, 0x08, 0xbe, 0x43,
+};
+static const unsigned char kat1707_persstr[] = {0};
+static const unsigned char kat1707_entropyinreseed[] = {
+ 0x05, 0x26, 0x1c, 0x4b, 0x47, 0x46, 0x93, 0x7f, 0x42, 0x5c, 0xc4, 0x92,
+ 0x78, 0xdf, 0x53, 0x38, 0x29, 0xc5, 0x4f, 0x36, 0xb4, 0x3f, 0x59, 0x24,
+};
+static const unsigned char kat1707_addinreseed[] = {
+ 0xa2, 0x68, 0x81, 0xf6, 0x4d, 0xfb, 0xe6, 0xb5, 0x0c, 0xd8, 0x79, 0xfd,
+ 0xcc, 0x35, 0xb6, 0x90, 0xd5, 0xec, 0x7e, 0xf9, 0x0e, 0x65, 0x7a, 0x61,
+ 0x34, 0x2e, 0x0f, 0x6b, 0xed, 0xa0, 0x46, 0xbb,
+};
+static const unsigned char kat1707_addin0[] = {
+ 0x39, 0xe1, 0x01, 0x41, 0x29, 0x93, 0x9c, 0x1a, 0x55, 0xf5, 0xfb, 0x58,
+ 0x4b, 0x14, 0x14, 0x96, 0x5e, 0x1e, 0x7b, 0x5e, 0x5d, 0xfa, 0xb2, 0x3d,
+ 0x10, 0x84, 0xcb, 0x32, 0x4d, 0xbb, 0x32, 0x8f,
+};
+static const unsigned char kat1707_addin1[] = {
+ 0xd0, 0xbb, 0x63, 0xa8, 0xe1, 0xcb, 0x4c, 0xdc, 0xa8, 0xcf, 0x2a, 0x26,
+ 0x34, 0xb4, 0x91, 0x60, 0x39, 0x75, 0x9c, 0xc1, 0xd5, 0x74, 0xb8, 0xd2,
+ 0xe2, 0x78, 0x18, 0x52, 0x2f, 0xca, 0xf7, 0x45,
+};
+static const unsigned char kat1707_retbits[] = {
+ 0xd3, 0xef, 0xf7, 0x65, 0xc8, 0x3e, 0x14, 0x0b, 0xad, 0x7b, 0x00, 0xc5,
+ 0x71, 0xd2, 0x79, 0x10, 0xb2, 0x17, 0xba, 0x53, 0xe0, 0x0f, 0x3f, 0x11,
+ 0xc5, 0xf2, 0x1a, 0xee, 0x87, 0xfb, 0xfe, 0x33, 0xe2, 0xa1, 0x95, 0x68,
+ 0x17, 0x52, 0x06, 0x2d, 0x79, 0xa6, 0xb2, 0x11, 0xd5, 0x82, 0x01, 0x87,
+ 0x99, 0x46, 0x5b, 0x83, 0xd6, 0xa8, 0xc7, 0x32, 0xa8, 0x7e, 0xe8, 0xe9,
+ 0x0b, 0xcb, 0x47, 0xb4,
+};
+static const struct drbg_kat_pr_false kat1707_t = {
+ 11, kat1707_entropyin, kat1707_nonce, kat1707_persstr,
+ kat1707_entropyinreseed, kat1707_addinreseed, kat1707_addin0,
+ kat1707_addin1, kat1707_retbits
+};
+static const struct drbg_kat kat1707 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1707_t
+};
+
+static const unsigned char kat1708_entropyin[] = {
+ 0x8f, 0x6a, 0xa1, 0x65, 0x44, 0x11, 0x71, 0x51, 0xeb, 0xa0, 0x2f, 0xb2,
+ 0x66, 0xdc, 0x34, 0x7b, 0xdd, 0x2e, 0x1e, 0xc5, 0xe6, 0x02, 0x18, 0x14,
+};
+static const unsigned char kat1708_nonce[] = {
+ 0x60, 0x09, 0xa1, 0x64, 0x96, 0x8e, 0x19, 0xc7, 0x07, 0x57, 0x0c, 0x4a,
+ 0xdb, 0xbc, 0x22, 0x53,
+};
+static const unsigned char kat1708_persstr[] = {0};
+static const unsigned char kat1708_entropyinreseed[] = {
+ 0x0b, 0x51, 0xe6, 0x81, 0x56, 0xe2, 0xa5, 0x70, 0xe1, 0xa0, 0x8f, 0xf8,
+ 0xed, 0xa4, 0x65, 0x91, 0xb2, 0xf5, 0x4c, 0xb2, 0x17, 0x88, 0x3d, 0x04,
+};
+static const unsigned char kat1708_addinreseed[] = {
+ 0x3c, 0xd2, 0x78, 0x3e, 0x00, 0xd4, 0x8f, 0x5b, 0x4c, 0x13, 0x39, 0x31,
+ 0xbc, 0xb4, 0xd3, 0x59, 0x0d, 0x09, 0xc7, 0x09, 0xed, 0x6f, 0x19, 0x5c,
+ 0x3d, 0xfe, 0xd6, 0xbf, 0x15, 0x0c, 0x76, 0xdd,
+};
+static const unsigned char kat1708_addin0[] = {
+ 0xdb, 0x89, 0x1a, 0xf9, 0x7a, 0x11, 0x0a, 0x36, 0x43, 0x15, 0x50, 0x94,
+ 0xe0, 0xee, 0xb9, 0xc6, 0x11, 0x6c, 0x38, 0x1b, 0x86, 0x16, 0xe3, 0x6f,
+ 0x47, 0x1a, 0xed, 0xf2, 0x72, 0x5e, 0x1c, 0x54,
+};
+static const unsigned char kat1708_addin1[] = {
+ 0xfc, 0x60, 0x84, 0xa2, 0x85, 0x8f, 0x34, 0xbc, 0xd2, 0xb8, 0x79, 0x49,
+ 0x45, 0x2b, 0x38, 0x2b, 0x18, 0x9f, 0x35, 0x13, 0x43, 0x6a, 0xea, 0x38,
+ 0xd6, 0x8f, 0xd9, 0xc7, 0x61, 0xd6, 0x8e, 0x83,
+};
+static const unsigned char kat1708_retbits[] = {
+ 0x15, 0xb7, 0xc5, 0xb6, 0x70, 0x61, 0x67, 0x23, 0x49, 0x59, 0x72, 0x7d,
+ 0xa2, 0x71, 0x85, 0xe6, 0x5b, 0x7b, 0x8f, 0xa9, 0xcb, 0x77, 0x59, 0x70,
+ 0xa5, 0xfe, 0x80, 0x62, 0x85, 0xa0, 0x37, 0xb3, 0x22, 0xbf, 0x81, 0x14,
+ 0xa3, 0x98, 0xa0, 0x19, 0xef, 0xfb, 0xcf, 0x65, 0xc3, 0xd4, 0xdc, 0xe1,
+ 0x54, 0xe0, 0x3a, 0x0c, 0x7f, 0x4b, 0x72, 0xd3, 0xa5, 0x7f, 0x4a, 0xc8,
+ 0xf4, 0x0b, 0x40, 0x74,
+};
+static const struct drbg_kat_pr_false kat1708_t = {
+ 12, kat1708_entropyin, kat1708_nonce, kat1708_persstr,
+ kat1708_entropyinreseed, kat1708_addinreseed, kat1708_addin0,
+ kat1708_addin1, kat1708_retbits
+};
+static const struct drbg_kat kat1708 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1708_t
+};
+
+static const unsigned char kat1709_entropyin[] = {
+ 0x52, 0xf0, 0x6f, 0xdc, 0x40, 0xd3, 0x2a, 0x19, 0xe6, 0x9d, 0x32, 0xa2,
+ 0x1b, 0xf8, 0xf4, 0xcf, 0x55, 0xd6, 0x97, 0x84, 0x21, 0xe6, 0x36, 0xa2,
+};
+static const unsigned char kat1709_nonce[] = {
+ 0x1f, 0xb3, 0x3c, 0x9e, 0xe0, 0x7b, 0x2a, 0x2f, 0xfd, 0x41, 0x0b, 0x7c,
+ 0x6a, 0x02, 0x36, 0x5b,
+};
+static const unsigned char kat1709_persstr[] = {0};
+static const unsigned char kat1709_entropyinreseed[] = {
+ 0xb1, 0x04, 0x34, 0xd0, 0xae, 0xea, 0xd8, 0x74, 0xa3, 0x0d, 0xf2, 0x49,
+ 0xdd, 0x69, 0x2d, 0xfb, 0xaf, 0xd0, 0xd5, 0xd8, 0xaa, 0xb6, 0x74, 0x38,
+};
+static const unsigned char kat1709_addinreseed[] = {
+ 0xfc, 0x8a, 0x66, 0x14, 0xd9, 0x37, 0xf5, 0x0f, 0x74, 0xea, 0x94, 0x9f,
+ 0x50, 0x97, 0xb9, 0x00, 0x3e, 0xb0, 0x4b, 0x95, 0x35, 0x10, 0xde, 0x46,
+ 0x46, 0xc9, 0x4d, 0x18, 0xc9, 0x78, 0xec, 0x62,
+};
+static const unsigned char kat1709_addin0[] = {
+ 0xba, 0xa0, 0xd5, 0xc1, 0x14, 0x6e, 0xaf, 0xa4, 0x63, 0x1c, 0xae, 0x7d,
+ 0x4c, 0x8c, 0x80, 0x93, 0x00, 0x96, 0xc9, 0xbf, 0x05, 0x64, 0xc0, 0x9d,
+ 0x5a, 0xc8, 0x89, 0x5e, 0xea, 0x02, 0x57, 0x27,
+};
+static const unsigned char kat1709_addin1[] = {
+ 0xfe, 0x23, 0x0d, 0x75, 0x0e, 0xa1, 0xc8, 0x81, 0xb2, 0xc7, 0x3c, 0x6b,
+ 0x97, 0xcb, 0xcc, 0x30, 0xe4, 0x39, 0xb1, 0x83, 0x0a, 0x9e, 0x8e, 0xba,
+ 0x12, 0x34, 0x21, 0x57, 0x43, 0x90, 0xa1, 0xa2,
+};
+static const unsigned char kat1709_retbits[] = {
+ 0xe8, 0xbb, 0xe2, 0x23, 0xd9, 0xef, 0x98, 0x9b, 0x12, 0x27, 0x45, 0xe5,
+ 0xf5, 0xa4, 0x42, 0xe0, 0xbd, 0x54, 0xba, 0x8d, 0x8f, 0xbe, 0x91, 0x9a,
+ 0x19, 0x99, 0x54, 0x25, 0x25, 0x1d, 0x00, 0x20, 0xd5, 0x50, 0x3b, 0x49,
+ 0x3a, 0x37, 0x22, 0x53, 0x7d, 0x81, 0xbf, 0x42, 0x5e, 0xc9, 0x15, 0x9e,
+ 0x53, 0x72, 0x5b, 0x70, 0x7c, 0x2d, 0xf8, 0xbf, 0x2e, 0x2c, 0x25, 0x8f,
+ 0xd8, 0xfb, 0x8e, 0x7b,
+};
+static const struct drbg_kat_pr_false kat1709_t = {
+ 13, kat1709_entropyin, kat1709_nonce, kat1709_persstr,
+ kat1709_entropyinreseed, kat1709_addinreseed, kat1709_addin0,
+ kat1709_addin1, kat1709_retbits
+};
+static const struct drbg_kat kat1709 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1709_t
+};
+
+static const unsigned char kat1710_entropyin[] = {
+ 0x8f, 0x8e, 0x6e, 0x35, 0xa6, 0x89, 0xbb, 0x88, 0xf8, 0x96, 0x89, 0x91,
+ 0xa4, 0xad, 0xbf, 0x89, 0x37, 0x3c, 0x58, 0xc5, 0xed, 0x36, 0x3f, 0x5f,
+};
+static const unsigned char kat1710_nonce[] = {
+ 0x85, 0x70, 0xbf, 0xeb, 0xd6, 0x37, 0x9d, 0x10, 0x51, 0x86, 0xf8, 0x7e,
+ 0x99, 0x64, 0xcc, 0x6b,
+};
+static const unsigned char kat1710_persstr[] = {0};
+static const unsigned char kat1710_entropyinreseed[] = {
+ 0x29, 0x5c, 0x35, 0xe7, 0x2f, 0xaf, 0x6a, 0xad, 0xed, 0xdb, 0x49, 0x32,
+ 0x0f, 0x86, 0xa4, 0x3b, 0x18, 0xda, 0x0e, 0x60, 0xb8, 0xd9, 0x41, 0xa2,
+};
+static const unsigned char kat1710_addinreseed[] = {
+ 0x23, 0xbe, 0x84, 0x8c, 0xad, 0xd9, 0x0a, 0xf9, 0xb3, 0x34, 0xda, 0x73,
+ 0x44, 0xec, 0xaa, 0xfa, 0x99, 0xcb, 0x48, 0x10, 0xfb, 0x00, 0xce, 0x67,
+ 0x4f, 0x56, 0xe5, 0xed, 0x36, 0xab, 0x98, 0xba,
+};
+static const unsigned char kat1710_addin0[] = {
+ 0x92, 0xbd, 0x8e, 0xeb, 0x63, 0x6f, 0xbf, 0x83, 0xfe, 0x7d, 0x6b, 0xf5,
+ 0xd2, 0x99, 0x84, 0x3d, 0x8f, 0xac, 0x84, 0x37, 0x69, 0x1a, 0xe5, 0xf5,
+ 0xea, 0x43, 0x56, 0x06, 0x27, 0xa7, 0xc0, 0x22,
+};
+static const unsigned char kat1710_addin1[] = {
+ 0xed, 0x82, 0xe0, 0xfb, 0xb0, 0xed, 0x60, 0x7b, 0xf1, 0xd2, 0x41, 0xcc,
+ 0xf3, 0x47, 0x0d, 0xc0, 0x65, 0x87, 0x73, 0xb0, 0xc8, 0xf5, 0xb8, 0x32,
+ 0xb3, 0x24, 0x4a, 0xe8, 0x8e, 0x45, 0xc6, 0xed,
+};
+static const unsigned char kat1710_retbits[] = {
+ 0x10, 0xc4, 0xcd, 0x9c, 0x6f, 0xb5, 0x61, 0x62, 0x95, 0x22, 0x4d, 0x4b,
+ 0x2c, 0xaa, 0x98, 0xac, 0x96, 0x2c, 0xba, 0xf5, 0x0f, 0x9c, 0x52, 0x17,
+ 0x49, 0xd5, 0x54, 0xcf, 0x2a, 0x41, 0x7a, 0xe7, 0x6c, 0x07, 0xff, 0xfb,
+ 0x88, 0x75, 0x38, 0x1a, 0x2b, 0xd6, 0x30, 0x5b, 0x50, 0x31, 0xfb, 0x62,
+ 0xf9, 0x3c, 0x00, 0x64, 0xac, 0xa7, 0xa4, 0x55, 0xdb, 0x75, 0x45, 0xe6,
+ 0xb5, 0x29, 0x38, 0xb0,
+};
+static const struct drbg_kat_pr_false kat1710_t = {
+ 14, kat1710_entropyin, kat1710_nonce, kat1710_persstr,
+ kat1710_entropyinreseed, kat1710_addinreseed, kat1710_addin0,
+ kat1710_addin1, kat1710_retbits
+};
+static const struct drbg_kat kat1710 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1710_t
+};
+
+static const unsigned char kat1711_entropyin[] = {
+ 0x35, 0x81, 0x14, 0x73, 0xd1, 0x05, 0xa6, 0xae, 0x33, 0x2b, 0xf7, 0x2a,
+ 0xa9, 0x8a, 0x44, 0x3b, 0xa9, 0x7d, 0xa5, 0x5b, 0xad, 0xb2, 0xe3, 0xc3,
+};
+static const unsigned char kat1711_nonce[] = {
+ 0x38, 0x5b, 0xd4, 0x42, 0xb5, 0xb7, 0x21, 0x0c, 0x2d, 0x66, 0x10, 0x9f,
+ 0x88, 0xac, 0x1e, 0xd1,
+};
+static const unsigned char kat1711_persstr[] = {
+ 0x16, 0xed, 0x4e, 0xe5, 0x94, 0x01, 0x55, 0x0c, 0x67, 0xcd, 0xab, 0x99,
+ 0x62, 0x02, 0x57, 0xe5, 0x4c, 0xfc, 0x7a, 0xa3, 0x12, 0xc6, 0x81, 0x4f,
+ 0x81, 0x35, 0x21, 0x23, 0xe4, 0xa2, 0x8f, 0x11,
+};
+static const unsigned char kat1711_entropyinreseed[] = {
+ 0xa8, 0x35, 0xe0, 0x14, 0x0b, 0x52, 0xae, 0x14, 0xdf, 0x33, 0x43, 0xb6,
+ 0x5b, 0x11, 0x01, 0x92, 0xba, 0xaf, 0xd1, 0x7e, 0xc2, 0xbc, 0xb1, 0x0a,
+};
+static const unsigned char kat1711_addinreseed[] = {0};
+static const unsigned char kat1711_addin0[] = {0};
+static const unsigned char kat1711_addin1[] = {0};
+static const unsigned char kat1711_retbits[] = {
+ 0x4b, 0x8a, 0xfb, 0x7c, 0x20, 0xbf, 0x94, 0x1d, 0xb7, 0xfb, 0x2c, 0xac,
+ 0x02, 0xb4, 0x6a, 0x45, 0x31, 0x33, 0x34, 0xc0, 0x40, 0x34, 0xb7, 0xe4,
+ 0x11, 0xb3, 0x60, 0x7e, 0x19, 0xfc, 0x92, 0x1d, 0xca, 0x47, 0xf1, 0x9c,
+ 0x58, 0x77, 0xe9, 0x20, 0x86, 0x54, 0x7c, 0xc6, 0xf1, 0x15, 0x8c, 0xa4,
+ 0xcf, 0xd6, 0x20, 0x01, 0xf7, 0xe0, 0xf3, 0xaf, 0x8a, 0x62, 0xe3, 0xc9,
+ 0x88, 0x8b, 0xf9, 0xad,
+};
+static const struct drbg_kat_pr_false kat1711_t = {
+ 0, kat1711_entropyin, kat1711_nonce, kat1711_persstr,
+ kat1711_entropyinreseed, kat1711_addinreseed, kat1711_addin0,
+ kat1711_addin1, kat1711_retbits
+};
+static const struct drbg_kat kat1711 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1711_t
+};
+
+static const unsigned char kat1712_entropyin[] = {
+ 0xe3, 0xcf, 0xf7, 0x14, 0x2a, 0x7f, 0x22, 0x01, 0x86, 0x03, 0x2d, 0x9a,
+ 0xe1, 0x71, 0x0a, 0xda, 0x92, 0x14, 0x77, 0x3a, 0x88, 0x4f, 0x3e, 0xc2,
+};
+static const unsigned char kat1712_nonce[] = {
+ 0x1d, 0x82, 0x7a, 0x2d, 0xf6, 0x8e, 0x9f, 0x64, 0xb6, 0xde, 0xdf, 0x09,
+ 0x98, 0xe1, 0x12, 0x3c,
+};
+static const unsigned char kat1712_persstr[] = {
+ 0xea, 0x14, 0xfe, 0xbc, 0x4c, 0xc3, 0x38, 0x46, 0xd2, 0x66, 0x96, 0x1d,
+ 0x2d, 0x97, 0xfb, 0xca, 0xba, 0x58, 0xc8, 0x48, 0xbb, 0x82, 0x8b, 0xef,
+ 0x63, 0x36, 0xab, 0x06, 0x9a, 0x87, 0xda, 0xef,
+};
+static const unsigned char kat1712_entropyinreseed[] = {
+ 0xbd, 0xbd, 0xf2, 0x28, 0x7b, 0xec, 0x53, 0x6b, 0xe1, 0x6d, 0x62, 0x18,
+ 0x0d, 0x66, 0x7c, 0xcf, 0xeb, 0xd3, 0x7d, 0x44, 0x59, 0x20, 0xc6, 0x96,
+};
+static const unsigned char kat1712_addinreseed[] = {0};
+static const unsigned char kat1712_addin0[] = {0};
+static const unsigned char kat1712_addin1[] = {0};
+static const unsigned char kat1712_retbits[] = {
+ 0x16, 0xa4, 0x6a, 0xe5, 0xda, 0xe5, 0xea, 0x51, 0xc5, 0x8a, 0x8f, 0xf6,
+ 0xeb, 0x43, 0x19, 0x6d, 0xe2, 0x6a, 0xc9, 0x7f, 0xb4, 0x32, 0xc6, 0x33,
+ 0x3a, 0x41, 0x82, 0x68, 0xf4, 0xbe, 0xfe, 0x2b, 0x75, 0x34, 0xa8, 0x9b,
+ 0xee, 0xc1, 0xa7, 0x7f, 0x23, 0x9a, 0xcd, 0x4c, 0x63, 0x36, 0x7a, 0xd7,
+ 0xad, 0xf9, 0xbc, 0x6c, 0xf2, 0xe4, 0xf7, 0x42, 0xef, 0xcc, 0xde, 0xf6,
+ 0x26, 0x24, 0x57, 0x2b,
+};
+static const struct drbg_kat_pr_false kat1712_t = {
+ 1, kat1712_entropyin, kat1712_nonce, kat1712_persstr,
+ kat1712_entropyinreseed, kat1712_addinreseed, kat1712_addin0,
+ kat1712_addin1, kat1712_retbits
+};
+static const struct drbg_kat kat1712 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1712_t
+};
+
+static const unsigned char kat1713_entropyin[] = {
+ 0x0c, 0xb4, 0xfa, 0x32, 0x5f, 0xe3, 0x28, 0x38, 0x56, 0x80, 0xa2, 0x05,
+ 0x3a, 0x47, 0x19, 0x4a, 0x7d, 0x6d, 0x20, 0x1a, 0x02, 0x8f, 0x14, 0x7a,
+};
+static const unsigned char kat1713_nonce[] = {
+ 0xc3, 0xa7, 0x12, 0xec, 0x12, 0xb6, 0xed, 0x9a, 0x21, 0x47, 0x07, 0xa5,
+ 0xf1, 0x5a, 0x8b, 0x4a,
+};
+static const unsigned char kat1713_persstr[] = {
+ 0x5d, 0x44, 0x33, 0xd2, 0x9b, 0xac, 0x8c, 0x03, 0xa1, 0x61, 0x6d, 0xf4,
+ 0x31, 0x9f, 0xf3, 0x1f, 0x1a, 0xd6, 0x2d, 0x76, 0x46, 0x1a, 0xf6, 0xd3,
+ 0xf3, 0xbe, 0x53, 0x7d, 0xcd, 0x9b, 0x1a, 0x21,
+};
+static const unsigned char kat1713_entropyinreseed[] = {
+ 0x61, 0x6e, 0xbb, 0x63, 0xcc, 0x14, 0x39, 0x48, 0x09, 0xd5, 0xce, 0x11,
+ 0x48, 0xe8, 0x5c, 0x26, 0xde, 0xf9, 0xaa, 0xcc, 0xf7, 0x0b, 0x2f, 0x13,
+};
+static const unsigned char kat1713_addinreseed[] = {0};
+static const unsigned char kat1713_addin0[] = {0};
+static const unsigned char kat1713_addin1[] = {0};
+static const unsigned char kat1713_retbits[] = {
+ 0x2e, 0x0b, 0x66, 0x3a, 0x5a, 0xaf, 0xe0, 0xfc, 0x61, 0x5e, 0xf4, 0xef,
+ 0xa6, 0xbe, 0x0c, 0x7b, 0xa1, 0xc4, 0x74, 0x36, 0x0d, 0xf2, 0x10, 0xed,
+ 0x0b, 0xc7, 0x6f, 0xf4, 0x58, 0xa3, 0xbd, 0x73, 0x2d, 0x3d, 0xec, 0x7b,
+ 0x89, 0x01, 0x79, 0xbc, 0xe2, 0x69, 0x8c, 0x28, 0x53, 0x83, 0xdc, 0x58,
+ 0x04, 0x5a, 0x95, 0x79, 0xfc, 0x72, 0x4f, 0x9a, 0x24, 0xca, 0x76, 0x8a,
+ 0x43, 0xb6, 0xf5, 0xdd,
+};
+static const struct drbg_kat_pr_false kat1713_t = {
+ 2, kat1713_entropyin, kat1713_nonce, kat1713_persstr,
+ kat1713_entropyinreseed, kat1713_addinreseed, kat1713_addin0,
+ kat1713_addin1, kat1713_retbits
+};
+static const struct drbg_kat kat1713 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1713_t
+};
+
+static const unsigned char kat1714_entropyin[] = {
+ 0xc9, 0xd8, 0x9d, 0x88, 0xc9, 0x33, 0x03, 0x3a, 0x27, 0x53, 0x09, 0xd3,
+ 0xe8, 0xe4, 0x84, 0xb9, 0x2f, 0x3c, 0x22, 0xb1, 0xf2, 0xe5, 0xe0, 0x84,
+};
+static const unsigned char kat1714_nonce[] = {
+ 0x49, 0x2d, 0x6f, 0x25, 0x49, 0x2d, 0x7e, 0x43, 0x34, 0xe7, 0x2b, 0xfc,
+ 0xfc, 0x2f, 0x4e, 0xc5,
+};
+static const unsigned char kat1714_persstr[] = {
+ 0xe1, 0xc9, 0x9f, 0x11, 0x60, 0x57, 0x84, 0x2d, 0x63, 0x06, 0xdb, 0x32,
+ 0x7b, 0x43, 0x6a, 0x65, 0x3c, 0xe7, 0x6f, 0x4a, 0x30, 0xc3, 0x08, 0x92,
+ 0x13, 0x66, 0xbf, 0xcc, 0xfa, 0xce, 0xdc, 0x98,
+};
+static const unsigned char kat1714_entropyinreseed[] = {
+ 0x83, 0x35, 0xfa, 0xbd, 0x36, 0x9e, 0x9d, 0xbb, 0xc4, 0xe2, 0xd6, 0x34,
+ 0xb3, 0x74, 0x61, 0xe3, 0x0a, 0x01, 0xdb, 0x6e, 0xd4, 0x82, 0x47, 0x3b,
+};
+static const unsigned char kat1714_addinreseed[] = {0};
+static const unsigned char kat1714_addin0[] = {0};
+static const unsigned char kat1714_addin1[] = {0};
+static const unsigned char kat1714_retbits[] = {
+ 0x5f, 0x4a, 0xaf, 0x8b, 0x5a, 0x3a, 0x1a, 0x03, 0x14, 0x48, 0xf9, 0x49,
+ 0xc4, 0xf8, 0x2c, 0x50, 0x1a, 0xd6, 0xb0, 0xb8, 0x29, 0x19, 0x06, 0xee,
+ 0x00, 0x5c, 0x1b, 0x77, 0x11, 0x44, 0xc1, 0xc0, 0xda, 0xf5, 0x85, 0x7a,
+ 0x25, 0x64, 0xf7, 0xe0, 0xac, 0x21, 0xdf, 0x5d, 0x52, 0x34, 0x43, 0xab,
+ 0xa9, 0x51, 0xee, 0x53, 0x51, 0xa2, 0xe6, 0x60, 0xe4, 0xd5, 0x27, 0xdc,
+ 0x3f, 0x32, 0x0c, 0xa4,
+};
+static const struct drbg_kat_pr_false kat1714_t = {
+ 3, kat1714_entropyin, kat1714_nonce, kat1714_persstr,
+ kat1714_entropyinreseed, kat1714_addinreseed, kat1714_addin0,
+ kat1714_addin1, kat1714_retbits
+};
+static const struct drbg_kat kat1714 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1714_t
+};
+
+static const unsigned char kat1715_entropyin[] = {
+ 0x89, 0xd5, 0xf4, 0x9b, 0x38, 0xc2, 0x51, 0x1d, 0xab, 0x84, 0xdd, 0x37,
+ 0x9d, 0x99, 0x96, 0x5d, 0x89, 0x7f, 0x82, 0x95, 0x29, 0x47, 0xad, 0xe4,
+};
+static const unsigned char kat1715_nonce[] = {
+ 0xde, 0x6d, 0x08, 0x38, 0xf5, 0x29, 0x95, 0x26, 0x2f, 0xe8, 0xf9, 0x1c,
+ 0x24, 0x55, 0xa0, 0x9d,
+};
+static const unsigned char kat1715_persstr[] = {
+ 0x94, 0x71, 0x58, 0x73, 0x11, 0xf5, 0x9d, 0xb5, 0xd7, 0xb5, 0x7b, 0x7b,
+ 0x74, 0xdb, 0x62, 0x68, 0x7d, 0x85, 0xa0, 0x8c, 0x22, 0x55, 0xf4, 0xa8,
+ 0x4e, 0x6c, 0x09, 0x6e, 0x53, 0xb3, 0x38, 0x18,
+};
+static const unsigned char kat1715_entropyinreseed[] = {
+ 0xfe, 0xf4, 0xbf, 0x58, 0x4b, 0x76, 0x7c, 0xdf, 0xa2, 0x97, 0xf0, 0x77,
+ 0x17, 0xe0, 0x3b, 0x7e, 0x9a, 0x29, 0xf1, 0x61, 0xd1, 0x05, 0x04, 0x0b,
+};
+static const unsigned char kat1715_addinreseed[] = {0};
+static const unsigned char kat1715_addin0[] = {0};
+static const unsigned char kat1715_addin1[] = {0};
+static const unsigned char kat1715_retbits[] = {
+ 0xb2, 0x3d, 0x19, 0xfd, 0xad, 0x4f, 0xb8, 0xe4, 0x5b, 0x2f, 0xb5, 0xed,
+ 0x80, 0x7b, 0xa3, 0xac, 0xb1, 0x1d, 0x56, 0x64, 0x9a, 0xc2, 0xef, 0x71,
+ 0x47, 0xc8, 0xc7, 0x8b, 0x13, 0x4c, 0x5b, 0xba, 0x87, 0xa7, 0x10, 0xcf,
+ 0xb6, 0xe6, 0x46, 0x02, 0x81, 0xdd, 0x4d, 0xb7, 0xd6, 0x28, 0x3e, 0x15,
+ 0x4a, 0xfa, 0x16, 0x49, 0x95, 0xaf, 0x02, 0x49, 0x11, 0x98, 0x38, 0xb2,
+ 0x2b, 0x8a, 0x5a, 0x4b,
+};
+static const struct drbg_kat_pr_false kat1715_t = {
+ 4, kat1715_entropyin, kat1715_nonce, kat1715_persstr,
+ kat1715_entropyinreseed, kat1715_addinreseed, kat1715_addin0,
+ kat1715_addin1, kat1715_retbits
+};
+static const struct drbg_kat kat1715 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1715_t
+};
+
+static const unsigned char kat1716_entropyin[] = {
+ 0x37, 0x78, 0xc9, 0x92, 0x77, 0x8f, 0x16, 0xf4, 0x8e, 0x46, 0xf6, 0x8c,
+ 0xe0, 0x0b, 0xe0, 0x24, 0x69, 0x6a, 0xae, 0xe2, 0xd5, 0x3c, 0xc6, 0xc9,
+};
+static const unsigned char kat1716_nonce[] = {
+ 0x9e, 0xa6, 0x45, 0x1e, 0xe3, 0x1d, 0xf3, 0x0e, 0x60, 0xad, 0xbb, 0xf4,
+ 0xd8, 0x29, 0x87, 0x47,
+};
+static const unsigned char kat1716_persstr[] = {
+ 0x5a, 0xed, 0x80, 0x56, 0xfe, 0x05, 0x89, 0x2e, 0x9c, 0x99, 0xc6, 0x0f,
+ 0x0b, 0xc1, 0xd9, 0xb2, 0x48, 0x48, 0xf7, 0x2a, 0x17, 0x22, 0xfc, 0x4f,
+ 0x48, 0x9a, 0x1e, 0xc2, 0x0b, 0x5d, 0x19, 0xd2,
+};
+static const unsigned char kat1716_entropyinreseed[] = {
+ 0x42, 0x1f, 0x1b, 0x05, 0xf4, 0x7a, 0x0a, 0x11, 0x00, 0xeb, 0xb5, 0xcc,
+ 0xb0, 0x4d, 0xc3, 0x17, 0x87, 0x99, 0xd2, 0x40, 0x1f, 0x71, 0x98, 0x59,
+};
+static const unsigned char kat1716_addinreseed[] = {0};
+static const unsigned char kat1716_addin0[] = {0};
+static const unsigned char kat1716_addin1[] = {0};
+static const unsigned char kat1716_retbits[] = {
+ 0xb5, 0x84, 0x04, 0x3c, 0xad, 0x7c, 0xd3, 0x46, 0xdf, 0xd0, 0x58, 0xd4,
+ 0x6b, 0x34, 0xf0, 0xba, 0x0c, 0xa6, 0xc3, 0x4b, 0x61, 0x98, 0xff, 0xf8,
+ 0xc8, 0x61, 0x47, 0x10, 0x48, 0x39, 0x29, 0xa1, 0x8b, 0xae, 0xe5, 0xa6,
+ 0x7b, 0x1b, 0x64, 0x8e, 0x6b, 0x27, 0xa7, 0xe9, 0x10, 0x0c, 0xb2, 0x8d,
+ 0x1a, 0x94, 0x23, 0x60, 0xf8, 0x52, 0x29, 0x5f, 0x33, 0xa8, 0xf8, 0xcf,
+ 0x09, 0xb8, 0x29, 0xcb,
+};
+static const struct drbg_kat_pr_false kat1716_t = {
+ 5, kat1716_entropyin, kat1716_nonce, kat1716_persstr,
+ kat1716_entropyinreseed, kat1716_addinreseed, kat1716_addin0,
+ kat1716_addin1, kat1716_retbits
+};
+static const struct drbg_kat kat1716 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1716_t
+};
+
+static const unsigned char kat1717_entropyin[] = {
+ 0x74, 0xed, 0x96, 0x9a, 0x5f, 0x80, 0x67, 0xa4, 0xbe, 0xe9, 0x9c, 0x24,
+ 0x8d, 0x79, 0x9a, 0x85, 0x49, 0x47, 0x93, 0x22, 0x46, 0x0e, 0x1c, 0x6d,
+};
+static const unsigned char kat1717_nonce[] = {
+ 0xa8, 0xa5, 0xc8, 0x74, 0xcd, 0xdc, 0x73, 0xab, 0xd8, 0xa6, 0xcc, 0x5a,
+ 0x0c, 0xb2, 0x87, 0x18,
+};
+static const unsigned char kat1717_persstr[] = {
+ 0xd7, 0xb6, 0x4d, 0x2d, 0xd3, 0xbd, 0xf5, 0xba, 0x98, 0xa6, 0xf6, 0x9e,
+ 0x90, 0x45, 0xf2, 0x61, 0xaa, 0xe3, 0x2e, 0xa4, 0xac, 0xe5, 0xca, 0x05,
+ 0x49, 0x69, 0xeb, 0x31, 0x33, 0x27, 0x0c, 0xbf,
+};
+static const unsigned char kat1717_entropyinreseed[] = {
+ 0xbe, 0x88, 0x02, 0xae, 0x99, 0x5a, 0xea, 0x50, 0xa6, 0xde, 0x7d, 0xab,
+ 0x99, 0x72, 0xb8, 0x65, 0x32, 0x68, 0xaf, 0xfb, 0x68, 0x7b, 0x46, 0xb3,
+};
+static const unsigned char kat1717_addinreseed[] = {0};
+static const unsigned char kat1717_addin0[] = {0};
+static const unsigned char kat1717_addin1[] = {0};
+static const unsigned char kat1717_retbits[] = {
+ 0x88, 0x75, 0x49, 0x97, 0xc4, 0x74, 0xbb, 0x30, 0xe9, 0xf1, 0x47, 0x27,
+ 0x3f, 0x65, 0x3c, 0x02, 0x69, 0x3b, 0xe2, 0xc2, 0xe4, 0x79, 0x53, 0xb4,
+ 0xc8, 0xff, 0x2c, 0x37, 0xa1, 0xe1, 0x95, 0x52, 0x19, 0x02, 0x3d, 0x5a,
+ 0xae, 0x09, 0xa8, 0xd3, 0x9d, 0x77, 0x2b, 0xdc, 0x58, 0x36, 0x10, 0x12,
+ 0x8b, 0x89, 0x44, 0x0c, 0x9d, 0x51, 0x56, 0x6d, 0xa8, 0xbd, 0xe9, 0x2c,
+ 0xc2, 0x65, 0x21, 0xcc,
+};
+static const struct drbg_kat_pr_false kat1717_t = {
+ 6, kat1717_entropyin, kat1717_nonce, kat1717_persstr,
+ kat1717_entropyinreseed, kat1717_addinreseed, kat1717_addin0,
+ kat1717_addin1, kat1717_retbits
+};
+static const struct drbg_kat kat1717 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1717_t
+};
+
+static const unsigned char kat1718_entropyin[] = {
+ 0x9f, 0xf4, 0xb4, 0xfe, 0x4b, 0xee, 0x71, 0xfc, 0xc8, 0x3c, 0xcb, 0xaa,
+ 0xb7, 0x37, 0x5f, 0xb2, 0x0d, 0x51, 0x80, 0x0e, 0x94, 0x6a, 0xa2, 0x0f,
+};
+static const unsigned char kat1718_nonce[] = {
+ 0xcc, 0x4a, 0xab, 0x82, 0xec, 0x3b, 0xc4, 0x58, 0x8b, 0x84, 0x8c, 0x41,
+ 0x29, 0x3a, 0x57, 0x18,
+};
+static const unsigned char kat1718_persstr[] = {
+ 0x0f, 0x49, 0x26, 0x17, 0xa1, 0x89, 0xe9, 0xd5, 0x35, 0xca, 0x7b, 0x64,
+ 0xad, 0xbb, 0x6a, 0x6d, 0xab, 0x3a, 0x5b, 0xe5, 0x13, 0xf8, 0x67, 0x42,
+ 0xf9, 0x61, 0xd0, 0xc8, 0xda, 0xa5, 0x38, 0x37,
+};
+static const unsigned char kat1718_entropyinreseed[] = {
+ 0x99, 0xd6, 0x88, 0x49, 0x9f, 0x6b, 0xe5, 0xda, 0x36, 0xb9, 0xc9, 0xba,
+ 0x94, 0x3e, 0xec, 0x84, 0x7b, 0x4b, 0x6b, 0x3c, 0xf3, 0x18, 0x40, 0xd0,
+};
+static const unsigned char kat1718_addinreseed[] = {0};
+static const unsigned char kat1718_addin0[] = {0};
+static const unsigned char kat1718_addin1[] = {0};
+static const unsigned char kat1718_retbits[] = {
+ 0x3c, 0x4c, 0x9a, 0x4c, 0x1c, 0x82, 0xf1, 0x6a, 0x3f, 0x72, 0xc2, 0x1a,
+ 0xd9, 0xc0, 0x25, 0x7b, 0x5c, 0x69, 0xfb, 0xd1, 0x2b, 0x70, 0xa3, 0xa8,
+ 0xbd, 0x2c, 0xa4, 0x2a, 0x20, 0x33, 0xa2, 0x31, 0xbe, 0xc4, 0xd9, 0x32,
+ 0x46, 0xd2, 0x5c, 0xaa, 0x68, 0xd6, 0x0c, 0x7a, 0xab, 0x41, 0x94, 0x38,
+ 0x1a, 0x30, 0x9a, 0x1a, 0xaa, 0x07, 0x98, 0x93, 0xf7, 0x8a, 0x96, 0xac,
+ 0xcf, 0x1e, 0x10, 0xba,
+};
+static const struct drbg_kat_pr_false kat1718_t = {
+ 7, kat1718_entropyin, kat1718_nonce, kat1718_persstr,
+ kat1718_entropyinreseed, kat1718_addinreseed, kat1718_addin0,
+ kat1718_addin1, kat1718_retbits
+};
+static const struct drbg_kat kat1718 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1718_t
+};
+
+static const unsigned char kat1719_entropyin[] = {
+ 0xee, 0xf4, 0xce, 0x64, 0x12, 0xc0, 0x29, 0xdb, 0xd0, 0x09, 0x0f, 0x6b,
+ 0xfb, 0x56, 0x42, 0x68, 0x9c, 0x53, 0x66, 0xef, 0x4b, 0x31, 0x08, 0x9c,
+};
+static const unsigned char kat1719_nonce[] = {
+ 0x01, 0xf9, 0x80, 0x77, 0x3c, 0x1c, 0x7a, 0xef, 0xa2, 0x18, 0xa7, 0x67,
+ 0xae, 0x02, 0x3e, 0xe7,
+};
+static const unsigned char kat1719_persstr[] = {
+ 0xa9, 0xff, 0x72, 0x03, 0xce, 0x16, 0xa7, 0x20, 0xb8, 0xb6, 0x51, 0x4d,
+ 0xff, 0x58, 0x7f, 0x54, 0xeb, 0x28, 0x32, 0x36, 0x69, 0xd0, 0x1b, 0x9e,
+ 0x55, 0xfc, 0xd3, 0x4a, 0x98, 0xdc, 0xad, 0x90,
+};
+static const unsigned char kat1719_entropyinreseed[] = {
+ 0x19, 0x26, 0xa7, 0x29, 0xcc, 0x54, 0xe2, 0x28, 0x69, 0xfa, 0xd8, 0x0d,
+ 0xb7, 0x74, 0xd8, 0x4f, 0x42, 0xd7, 0x38, 0xd3, 0xc8, 0x84, 0x8d, 0x1e,
+};
+static const unsigned char kat1719_addinreseed[] = {0};
+static const unsigned char kat1719_addin0[] = {0};
+static const unsigned char kat1719_addin1[] = {0};
+static const unsigned char kat1719_retbits[] = {
+ 0x52, 0x23, 0xf2, 0x69, 0xda, 0xf6, 0xb4, 0x78, 0xcd, 0x31, 0x05, 0xb8,
+ 0xd6, 0x89, 0xcb, 0x0b, 0x32, 0x24, 0x7a, 0x47, 0x64, 0xd8, 0xb0, 0x52,
+ 0xbe, 0x2c, 0x3f, 0xdd, 0x8a, 0x61, 0x0a, 0xc8, 0x93, 0x82, 0x28, 0x20,
+ 0xac, 0xba, 0x53, 0xc0, 0x36, 0x85, 0x18, 0xef, 0x3a, 0x3f, 0xdf, 0x98,
+ 0xf5, 0xf4, 0x44, 0x07, 0x89, 0xfc, 0x2b, 0xf4, 0xb1, 0xe9, 0x99, 0xb3,
+ 0x84, 0xfb, 0x8a, 0x5b,
+};
+static const struct drbg_kat_pr_false kat1719_t = {
+ 8, kat1719_entropyin, kat1719_nonce, kat1719_persstr,
+ kat1719_entropyinreseed, kat1719_addinreseed, kat1719_addin0,
+ kat1719_addin1, kat1719_retbits
+};
+static const struct drbg_kat kat1719 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1719_t
+};
+
+static const unsigned char kat1720_entropyin[] = {
+ 0x64, 0x0c, 0xb5, 0x2b, 0xb0, 0x72, 0x0e, 0xcf, 0x4d, 0x69, 0xd9, 0x03,
+ 0x7c, 0x8a, 0x96, 0x99, 0x9d, 0x06, 0x22, 0x1a, 0xaa, 0x53, 0xf0, 0xd5,
+};
+static const unsigned char kat1720_nonce[] = {
+ 0xd8, 0x35, 0x3d, 0xc3, 0x3b, 0x33, 0x28, 0x7b, 0x7f, 0xfd, 0x91, 0x00,
+ 0xbc, 0xcb, 0x55, 0x54,
+};
+static const unsigned char kat1720_persstr[] = {
+ 0x98, 0x9f, 0x1c, 0xa7, 0xd6, 0x3a, 0xd2, 0xbf, 0x8a, 0x2c, 0x34, 0x92,
+ 0x1a, 0xd7, 0xbf, 0x8a, 0xf3, 0xd8, 0x30, 0xdc, 0x1c, 0xae, 0xa6, 0xa8,
+ 0x4d, 0x2c, 0x88, 0xbe, 0xf3, 0x31, 0x8a, 0xa8,
+};
+static const unsigned char kat1720_entropyinreseed[] = {
+ 0x86, 0x5f, 0x77, 0x28, 0x22, 0xf1, 0x85, 0x63, 0xe9, 0x74, 0x71, 0x54,
+ 0xec, 0xa2, 0xb8, 0x6f, 0x38, 0x66, 0xc3, 0xe1, 0x52, 0x29, 0x3e, 0x27,
+};
+static const unsigned char kat1720_addinreseed[] = {0};
+static const unsigned char kat1720_addin0[] = {0};
+static const unsigned char kat1720_addin1[] = {0};
+static const unsigned char kat1720_retbits[] = {
+ 0xeb, 0x3d, 0xfb, 0xca, 0xaf, 0x41, 0xdb, 0xa5, 0xb4, 0xcb, 0x13, 0x34,
+ 0xdf, 0x47, 0xb0, 0x88, 0xd3, 0x4e, 0x7e, 0x6e, 0x13, 0x40, 0x64, 0x5d,
+ 0x19, 0x6b, 0x40, 0x57, 0x9a, 0xaa, 0xed, 0x94, 0x4e, 0x93, 0xe2, 0xde,
+ 0x78, 0x1b, 0x62, 0x15, 0x2d, 0x75, 0xe8, 0x2a, 0xf9, 0x03, 0x6d, 0x7c,
+ 0xca, 0xf3, 0xf8, 0x3d, 0x67, 0x46, 0x5c, 0xce, 0x27, 0x46, 0xf7, 0xb6,
+ 0xb3, 0xe2, 0x6e, 0x58,
+};
+static const struct drbg_kat_pr_false kat1720_t = {
+ 9, kat1720_entropyin, kat1720_nonce, kat1720_persstr,
+ kat1720_entropyinreseed, kat1720_addinreseed, kat1720_addin0,
+ kat1720_addin1, kat1720_retbits
+};
+static const struct drbg_kat kat1720 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1720_t
+};
+
+static const unsigned char kat1721_entropyin[] = {
+ 0x5e, 0x26, 0x76, 0xdc, 0x7c, 0x0e, 0x85, 0xe7, 0x2a, 0xa4, 0x83, 0x86,
+ 0x39, 0x96, 0x7e, 0x04, 0xf7, 0x70, 0x1c, 0x11, 0x15, 0x04, 0xa4, 0xec,
+};
+static const unsigned char kat1721_nonce[] = {
+ 0x29, 0x3a, 0x64, 0x5b, 0xe4, 0x3e, 0xe7, 0x92, 0xdf, 0x89, 0xea, 0x78,
+ 0xc8, 0xfc, 0xe5, 0x75,
+};
+static const unsigned char kat1721_persstr[] = {
+ 0xcc, 0xb1, 0x3a, 0xdc, 0xbd, 0xf1, 0x12, 0x97, 0x9c, 0xcf, 0xcd, 0x1c,
+ 0xb4, 0x0f, 0x74, 0x43, 0xb0, 0x82, 0x07, 0xda, 0x54, 0x38, 0x36, 0xa6,
+ 0x95, 0x21, 0x49, 0xbc, 0x9a, 0x8b, 0x95, 0x37,
+};
+static const unsigned char kat1721_entropyinreseed[] = {
+ 0x64, 0x0e, 0x6e, 0xdb, 0x68, 0x3f, 0xcb, 0xa5, 0xb1, 0x0d, 0x3c, 0x39,
+ 0x5b, 0x19, 0xbf, 0xe0, 0x3b, 0x64, 0x98, 0xe1, 0x40, 0x30, 0x2a, 0x5a,
+};
+static const unsigned char kat1721_addinreseed[] = {0};
+static const unsigned char kat1721_addin0[] = {0};
+static const unsigned char kat1721_addin1[] = {0};
+static const unsigned char kat1721_retbits[] = {
+ 0xf7, 0x0e, 0x60, 0x47, 0x1a, 0x48, 0x04, 0x9a, 0x4a, 0x85, 0x19, 0x1f,
+ 0x4d, 0xc2, 0xa5, 0xaa, 0x0d, 0xa1, 0x1a, 0x45, 0x51, 0xb3, 0xc1, 0xee,
+ 0x49, 0x13, 0x67, 0xb8, 0x5d, 0x4e, 0x10, 0x01, 0x4b, 0xd9, 0x14, 0x22,
+ 0x3e, 0xa7, 0x0b, 0x20, 0x99, 0xd8, 0x31, 0x65, 0xfe, 0xef, 0x3e, 0x96,
+ 0x6e, 0x29, 0x72, 0xc5, 0x54, 0xc3, 0x97, 0xd3, 0x3b, 0xfe, 0x5c, 0x77,
+ 0x34, 0xec, 0x3f, 0xaf,
+};
+static const struct drbg_kat_pr_false kat1721_t = {
+ 10, kat1721_entropyin, kat1721_nonce, kat1721_persstr,
+ kat1721_entropyinreseed, kat1721_addinreseed, kat1721_addin0,
+ kat1721_addin1, kat1721_retbits
+};
+static const struct drbg_kat kat1721 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1721_t
+};
+
+static const unsigned char kat1722_entropyin[] = {
+ 0x87, 0x92, 0xc5, 0xa2, 0xc8, 0x4b, 0x1b, 0x9d, 0xcd, 0x2a, 0x7f, 0xcc,
+ 0x4a, 0x38, 0xd6, 0xcc, 0x85, 0x24, 0x34, 0xde, 0x18, 0xb0, 0xf2, 0xd6,
+};
+static const unsigned char kat1722_nonce[] = {
+ 0x01, 0x13, 0x24, 0x11, 0xa6, 0xdf, 0x2f, 0x1f, 0xac, 0x37, 0x4f, 0xba,
+ 0x2e, 0x96, 0x1d, 0x52,
+};
+static const unsigned char kat1722_persstr[] = {
+ 0xe9, 0x85, 0xad, 0x13, 0x5f, 0x44, 0xc4, 0xf0, 0x68, 0xc1, 0x9b, 0xa4,
+ 0x2a, 0x47, 0x4a, 0x78, 0x2c, 0x4b, 0x23, 0x92, 0xa5, 0xa9, 0x43, 0xe6,
+ 0x29, 0x80, 0x2b, 0x27, 0x58, 0x23, 0x1e, 0x74,
+};
+static const unsigned char kat1722_entropyinreseed[] = {
+ 0x51, 0xea, 0x69, 0x00, 0xe3, 0xd2, 0x78, 0x9e, 0x9f, 0x13, 0x53, 0x54,
+ 0xb6, 0x63, 0x8f, 0xf3, 0xdd, 0x49, 0x57, 0xf9, 0x28, 0x91, 0xba, 0x66,
+};
+static const unsigned char kat1722_addinreseed[] = {0};
+static const unsigned char kat1722_addin0[] = {0};
+static const unsigned char kat1722_addin1[] = {0};
+static const unsigned char kat1722_retbits[] = {
+ 0xb3, 0x84, 0xb7, 0x29, 0x30, 0xd1, 0xb5, 0x31, 0xb5, 0xe2, 0x82, 0x21,
+ 0x33, 0x9e, 0xd2, 0x8d, 0x04, 0x5c, 0x72, 0x93, 0x67, 0x3d, 0x73, 0x65,
+ 0xab, 0x2b, 0x0b, 0x28, 0xaf, 0x0d, 0x82, 0xca, 0x97, 0xb6, 0x23, 0xf9,
+ 0x1b, 0x0b, 0x65, 0x08, 0xfa, 0x3f, 0xec, 0x78, 0xe2, 0xc5, 0x60, 0x07,
+ 0x40, 0x35, 0x7e, 0x77, 0xc1, 0xac, 0x67, 0x3b, 0xd3, 0x86, 0x12, 0xaa,
+ 0xa9, 0x1b, 0x46, 0xe3,
+};
+static const struct drbg_kat_pr_false kat1722_t = {
+ 11, kat1722_entropyin, kat1722_nonce, kat1722_persstr,
+ kat1722_entropyinreseed, kat1722_addinreseed, kat1722_addin0,
+ kat1722_addin1, kat1722_retbits
+};
+static const struct drbg_kat kat1722 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1722_t
+};
+
+static const unsigned char kat1723_entropyin[] = {
+ 0x55, 0x72, 0xc0, 0xf3, 0x52, 0x0c, 0xe2, 0x5b, 0x4b, 0xac, 0xbd, 0x82,
+ 0x76, 0xbe, 0xaa, 0x9c, 0x8a, 0xd4, 0xf8, 0xcd, 0xda, 0xfd, 0x8d, 0xaa,
+};
+static const unsigned char kat1723_nonce[] = {
+ 0x46, 0xf2, 0x4e, 0x7a, 0x1d, 0xe7, 0x69, 0x48, 0x44, 0x64, 0xab, 0x41,
+ 0x97, 0x21, 0x26, 0x3e,
+};
+static const unsigned char kat1723_persstr[] = {
+ 0xde, 0xe6, 0x58, 0x9c, 0x8b, 0x97, 0x2b, 0x0b, 0x58, 0x18, 0x52, 0xa2,
+ 0x63, 0x01, 0xcf, 0x5c, 0x2e, 0x7b, 0x58, 0x2f, 0x5d, 0x57, 0x4d, 0x41,
+ 0x34, 0xdb, 0x5a, 0x46, 0x20, 0x27, 0x10, 0x45,
+};
+static const unsigned char kat1723_entropyinreseed[] = {
+ 0xf2, 0x5a, 0xc7, 0xa1, 0xd9, 0xfb, 0xa5, 0x74, 0xf5, 0x5a, 0x73, 0x8d,
+ 0x81, 0xd7, 0x30, 0xd4, 0xa6, 0x78, 0xc9, 0x22, 0xab, 0xff, 0x56, 0x67,
+};
+static const unsigned char kat1723_addinreseed[] = {0};
+static const unsigned char kat1723_addin0[] = {0};
+static const unsigned char kat1723_addin1[] = {0};
+static const unsigned char kat1723_retbits[] = {
+ 0xbc, 0x7e, 0x16, 0xf8, 0xc6, 0x43, 0x2d, 0xa6, 0xd7, 0xf9, 0xf1, 0x87,
+ 0x65, 0x0a, 0x33, 0x08, 0x60, 0xe6, 0xb7, 0x07, 0xc2, 0xfe, 0x2b, 0xda,
+ 0x14, 0x6a, 0x5a, 0xdb, 0xbb, 0xac, 0xd3, 0x05, 0xc8, 0x13, 0x66, 0xe1,
+ 0x5f, 0x26, 0x9f, 0xcf, 0x33, 0xb4, 0x0c, 0xc1, 0x71, 0x0e, 0x2e, 0xfe,
+ 0x3d, 0x96, 0x91, 0x9b, 0x50, 0x09, 0xfb, 0xad, 0xc0, 0x26, 0x6d, 0xde,
+ 0xe8, 0x5e, 0x02, 0xf5,
+};
+static const struct drbg_kat_pr_false kat1723_t = {
+ 12, kat1723_entropyin, kat1723_nonce, kat1723_persstr,
+ kat1723_entropyinreseed, kat1723_addinreseed, kat1723_addin0,
+ kat1723_addin1, kat1723_retbits
+};
+static const struct drbg_kat kat1723 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1723_t
+};
+
+static const unsigned char kat1724_entropyin[] = {
+ 0x89, 0xbb, 0xe5, 0xd0, 0x01, 0xdb, 0x9f, 0xb2, 0x19, 0x8d, 0xb6, 0xd9,
+ 0x25, 0xd6, 0xca, 0x12, 0xf6, 0x8a, 0x2a, 0x52, 0x50, 0xa1, 0x42, 0xa4,
+};
+static const unsigned char kat1724_nonce[] = {
+ 0xf4, 0x58, 0x12, 0x7b, 0x7a, 0x5d, 0xce, 0x83, 0xee, 0xb8, 0x7b, 0xe8,
+ 0x24, 0xe1, 0xa5, 0xac,
+};
+static const unsigned char kat1724_persstr[] = {
+ 0x23, 0x96, 0xa7, 0x14, 0x68, 0x43, 0x5c, 0x63, 0x5e, 0x51, 0xf4, 0xf7,
+ 0xd3, 0x8c, 0x4a, 0x11, 0x57, 0x24, 0x0e, 0xd9, 0xa4, 0xf6, 0x32, 0x3e,
+ 0x13, 0xe7, 0xdb, 0x34, 0x0a, 0xba, 0x16, 0x62,
+};
+static const unsigned char kat1724_entropyinreseed[] = {
+ 0xe1, 0x34, 0x62, 0x32, 0x55, 0x02, 0x90, 0x60, 0x02, 0xeb, 0xf9, 0x0b,
+ 0xc2, 0xa4, 0x2b, 0xb1, 0x06, 0xf2, 0xd7, 0x35, 0xf1, 0xd6, 0x97, 0x10,
+};
+static const unsigned char kat1724_addinreseed[] = {0};
+static const unsigned char kat1724_addin0[] = {0};
+static const unsigned char kat1724_addin1[] = {0};
+static const unsigned char kat1724_retbits[] = {
+ 0x0c, 0xf5, 0xa2, 0x54, 0x85, 0xac, 0x14, 0x0b, 0xc6, 0x49, 0x71, 0xd9,
+ 0xb1, 0x73, 0x4f, 0xa5, 0x7b, 0xad, 0xad, 0xa8, 0xea, 0x2b, 0xaa, 0xc7,
+ 0x0b, 0xb2, 0x9d, 0xc2, 0x3a, 0xb5, 0x32, 0x79, 0xeb, 0xe5, 0x44, 0x4d,
+ 0xe2, 0x31, 0x98, 0x79, 0x63, 0x98, 0x21, 0x44, 0x83, 0xe8, 0xba, 0x12,
+ 0xee, 0x64, 0x7c, 0x3f, 0x06, 0x68, 0xdf, 0xff, 0x2d, 0x97, 0x9a, 0xe0,
+ 0x41, 0x43, 0xfb, 0x3d,
+};
+static const struct drbg_kat_pr_false kat1724_t = {
+ 13, kat1724_entropyin, kat1724_nonce, kat1724_persstr,
+ kat1724_entropyinreseed, kat1724_addinreseed, kat1724_addin0,
+ kat1724_addin1, kat1724_retbits
+};
+static const struct drbg_kat kat1724 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1724_t
+};
+
+static const unsigned char kat1725_entropyin[] = {
+ 0x8d, 0xf6, 0x79, 0x6a, 0xa3, 0x55, 0x95, 0xbe, 0x1f, 0x4f, 0x9f, 0x07,
+ 0x40, 0xe2, 0xa8, 0x22, 0x33, 0x2c, 0x82, 0xfb, 0xb9, 0xce, 0x49, 0x2e,
+};
+static const unsigned char kat1725_nonce[] = {
+ 0x12, 0x55, 0x05, 0xcb, 0x0c, 0x37, 0xe0, 0x4b, 0xb9, 0xac, 0x58, 0x99,
+ 0x06, 0x99, 0xa9, 0x25,
+};
+static const unsigned char kat1725_persstr[] = {
+ 0xff, 0xd7, 0x5a, 0x98, 0xdc, 0xf5, 0x21, 0x8a, 0x81, 0xf5, 0x82, 0x00,
+ 0x87, 0xee, 0xc8, 0x4a, 0x4a, 0x07, 0x60, 0x01, 0xb0, 0x1e, 0x24, 0xcc,
+ 0x8c, 0x15, 0x68, 0x03, 0xcc, 0xf9, 0x94, 0x35,
+};
+static const unsigned char kat1725_entropyinreseed[] = {
+ 0x59, 0x94, 0x88, 0x01, 0x9a, 0x36, 0x13, 0x20, 0x02, 0x36, 0x7d, 0xf6,
+ 0xe2, 0xa6, 0xf8, 0x27, 0x35, 0xed, 0x55, 0xd5, 0xfa, 0x1c, 0x91, 0x46,
+};
+static const unsigned char kat1725_addinreseed[] = {0};
+static const unsigned char kat1725_addin0[] = {0};
+static const unsigned char kat1725_addin1[] = {0};
+static const unsigned char kat1725_retbits[] = {
+ 0x73, 0xb0, 0x9a, 0xef, 0x67, 0x83, 0xb0, 0xc9, 0xd3, 0x08, 0xda, 0xb8,
+ 0xc9, 0x61, 0xbe, 0x7a, 0xe3, 0x4a, 0xff, 0xd4, 0xd0, 0x72, 0x56, 0x84,
+ 0x29, 0x8a, 0x2c, 0x76, 0x57, 0xe5, 0xa3, 0x3f, 0xe3, 0x67, 0x78, 0x1e,
+ 0xe1, 0xa7, 0xf2, 0x7e, 0x33, 0x7c, 0x23, 0xef, 0x7a, 0x35, 0x5d, 0x78,
+ 0x00, 0xf0, 0x85, 0x42, 0x00, 0x5f, 0x96, 0x86, 0xf2, 0xa8, 0x76, 0x2e,
+ 0xe8, 0xf6, 0xdb, 0x35,
+};
+static const struct drbg_kat_pr_false kat1725_t = {
+ 14, kat1725_entropyin, kat1725_nonce, kat1725_persstr,
+ kat1725_entropyinreseed, kat1725_addinreseed, kat1725_addin0,
+ kat1725_addin1, kat1725_retbits
+};
+static const struct drbg_kat kat1725 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1725_t
+};
+
+static const unsigned char kat1726_entropyin[] = {
+ 0xc4, 0xb1, 0xe6, 0xa9, 0x95, 0x87, 0xea, 0xcd, 0x7e, 0xc8, 0x51, 0x7f,
+ 0x40, 0xf9, 0x43, 0x3c, 0xa4, 0x32, 0xce, 0xa8, 0x68, 0x64, 0x33, 0xf0,
+};
+static const unsigned char kat1726_nonce[] = {
+ 0xd0, 0x3a, 0x29, 0xe5, 0x48, 0xe5, 0x8c, 0xa7, 0xcb, 0xf0, 0xac, 0x70,
+ 0x7b, 0x14, 0x64, 0xe3,
+};
+static const unsigned char kat1726_persstr[] = {
+ 0x0d, 0xaa, 0xea, 0xd2, 0x17, 0x79, 0xb2, 0xa4, 0x28, 0xd2, 0xb7, 0xfb,
+ 0x12, 0xd9, 0xab, 0x83, 0x16, 0x89, 0x9e, 0xdb, 0xe2, 0x6b, 0x54, 0x60,
+ 0xde, 0x15, 0x49, 0xc9, 0x9e, 0x47, 0x81, 0xc9,
+};
+static const unsigned char kat1726_entropyinreseed[] = {
+ 0x22, 0x29, 0x14, 0x4c, 0x1b, 0x4e, 0xfb, 0x79, 0xab, 0x5f, 0xe0, 0x79,
+ 0xcd, 0xa2, 0x6b, 0xc3, 0x3a, 0xcb, 0xb2, 0xa0, 0xa8, 0x7f, 0x64, 0x2c,
+};
+static const unsigned char kat1726_addinreseed[] = {
+ 0xf1, 0x16, 0xa6, 0x83, 0xca, 0x48, 0x5f, 0xda, 0x84, 0x6a, 0x59, 0x8b,
+ 0x8d, 0x9b, 0x07, 0x9e, 0x78, 0xc2, 0x82, 0x82, 0x86, 0xad, 0x53, 0x0b,
+ 0xf0, 0x1f, 0x69, 0x3c, 0xc8, 0xaf, 0x9f, 0x84,
+};
+static const unsigned char kat1726_addin0[] = {
+ 0x7c, 0x89, 0xde, 0x35, 0x32, 0x98, 0x93, 0x5b, 0xd2, 0x6a, 0xa1, 0x85,
+ 0x17, 0x35, 0x53, 0x13, 0xdf, 0x06, 0x30, 0xda, 0x5f, 0x45, 0xea, 0x02,
+ 0x40, 0xe8, 0x09, 0x17, 0x93, 0x63, 0x08, 0x0b,
+};
+static const unsigned char kat1726_addin1[] = {
+ 0xe9, 0x78, 0xb8, 0xfe, 0x56, 0xaf, 0xc9, 0x08, 0xbe, 0xd1, 0x29, 0xa4,
+ 0x6d, 0x57, 0xa8, 0x69, 0x8d, 0x66, 0x03, 0x4d, 0x4d, 0xbc, 0xc7, 0xab,
+ 0xa3, 0xa3, 0x3d, 0x57, 0x96, 0xfb, 0x75, 0x59,
+};
+static const unsigned char kat1726_retbits[] = {
+ 0x8c, 0xe7, 0xe9, 0x58, 0x9c, 0x29, 0x75, 0xfd, 0x69, 0x89, 0xa4, 0x50,
+ 0xaa, 0x65, 0xda, 0x91, 0x14, 0xe5, 0x15, 0x77, 0x7c, 0x97, 0x35, 0x1d,
+ 0xa0, 0x37, 0xcc, 0xb7, 0x2d, 0x49, 0x87, 0xeb, 0x69, 0xc6, 0x80, 0x41,
+ 0x17, 0x24, 0xed, 0x60, 0x2e, 0x6a, 0xc7, 0x6c, 0xd2, 0xd0, 0x85, 0x72,
+ 0x56, 0x16, 0xc9, 0x27, 0x77, 0xa4, 0x66, 0x4d, 0x43, 0xa5, 0x9c, 0x3a,
+ 0xe9, 0x94, 0x61, 0x34,
+};
+static const struct drbg_kat_pr_false kat1726_t = {
+ 0, kat1726_entropyin, kat1726_nonce, kat1726_persstr,
+ kat1726_entropyinreseed, kat1726_addinreseed, kat1726_addin0,
+ kat1726_addin1, kat1726_retbits
+};
+static const struct drbg_kat kat1726 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1726_t
+};
+
+static const unsigned char kat1727_entropyin[] = {
+ 0xc5, 0x8a, 0xd5, 0x0f, 0x48, 0x8b, 0xd6, 0x92, 0x5c, 0x0e, 0x92, 0x3e,
+ 0x83, 0x64, 0xe8, 0x2d, 0x65, 0x5f, 0xd4, 0xd9, 0xbc, 0x05, 0xc9, 0xf0,
+};
+static const unsigned char kat1727_nonce[] = {
+ 0x21, 0x9c, 0xb7, 0x12, 0x58, 0x11, 0x87, 0x72, 0x65, 0x27, 0xa2, 0x63,
+ 0x3c, 0x55, 0x05, 0xa6,
+};
+static const unsigned char kat1727_persstr[] = {
+ 0xdf, 0x4d, 0x6e, 0xba, 0xba, 0xbf, 0xb2, 0x09, 0xa6, 0x01, 0xb9, 0x38,
+ 0xa6, 0x55, 0x6f, 0xf0, 0x37, 0xac, 0x2d, 0x51, 0xef, 0xaa, 0x23, 0x7b,
+ 0x34, 0x7d, 0x5d, 0xff, 0xff, 0x1e, 0x12, 0x71,
+};
+static const unsigned char kat1727_entropyinreseed[] = {
+ 0xe4, 0x71, 0xdb, 0x32, 0xc9, 0xc5, 0x0c, 0x26, 0x88, 0x07, 0x52, 0x51,
+ 0xcc, 0x45, 0x51, 0x60, 0x4d, 0x02, 0xe2, 0xc1, 0x39, 0x82, 0x37, 0x52,
+};
+static const unsigned char kat1727_addinreseed[] = {
+ 0xe5, 0xb1, 0xec, 0x5e, 0x6e, 0x8b, 0x43, 0x24, 0xb9, 0xe5, 0x02, 0xfb,
+ 0x88, 0xf9, 0xec, 0x66, 0x71, 0xec, 0x49, 0x41, 0x40, 0xc4, 0x6e, 0x58,
+ 0xec, 0x1d, 0x0c, 0x87, 0xd4, 0xff, 0x23, 0x64,
+};
+static const unsigned char kat1727_addin0[] = {
+ 0xa7, 0x70, 0xf7, 0x3e, 0x3b, 0xfb, 0xe6, 0x1e, 0x8f, 0x05, 0xee, 0x03,
+ 0x4c, 0xdb, 0xc1, 0x45, 0x8f, 0x53, 0x42, 0xfb, 0xa9, 0xf0, 0x4d, 0xc2,
+ 0xeb, 0x52, 0x57, 0x39, 0x08, 0xd3, 0xd1, 0x6c,
+};
+static const unsigned char kat1727_addin1[] = {
+ 0xaf, 0x96, 0x18, 0x16, 0x0e, 0x6e, 0x6f, 0x65, 0x65, 0x47, 0x9c, 0x74,
+ 0x4b, 0x75, 0xcc, 0x8a, 0xde, 0x16, 0x66, 0xd9, 0x4d, 0xa7, 0x90, 0x08,
+ 0x6a, 0x2e, 0x82, 0x13, 0xdd, 0xc9, 0xcc, 0x19,
+};
+static const unsigned char kat1727_retbits[] = {
+ 0x3f, 0x8e, 0xff, 0x82, 0x47, 0x90, 0xe0, 0xec, 0x6d, 0x07, 0xfa, 0x28,
+ 0xe0, 0xa0, 0x0e, 0x8e, 0x06, 0xda, 0xd0, 0x33, 0xfa, 0x2d, 0xe5, 0xb9,
+ 0x7b, 0x4d, 0x46, 0x7c, 0x70, 0xa9, 0x13, 0xff, 0xa2, 0x5c, 0xbb, 0x30,
+ 0x05, 0x97, 0x0e, 0x65, 0xcb, 0x3f, 0x34, 0x24, 0x85, 0x5d, 0x4b, 0xfa,
+ 0x10, 0xf7, 0x25, 0x68, 0xcb, 0x5e, 0x91, 0xe3, 0xfc, 0x1d, 0x6d, 0x81,
+ 0x78, 0x33, 0x1f, 0x8c,
+};
+static const struct drbg_kat_pr_false kat1727_t = {
+ 1, kat1727_entropyin, kat1727_nonce, kat1727_persstr,
+ kat1727_entropyinreseed, kat1727_addinreseed, kat1727_addin0,
+ kat1727_addin1, kat1727_retbits
+};
+static const struct drbg_kat kat1727 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1727_t
+};
+
+static const unsigned char kat1728_entropyin[] = {
+ 0x8a, 0xba, 0xfd, 0xcc, 0xff, 0x47, 0x08, 0x84, 0x5a, 0x5f, 0x0a, 0x21,
+ 0xd9, 0x9b, 0xd7, 0xc7, 0x4c, 0xff, 0xc9, 0x5a, 0x60, 0xab, 0x9e, 0x8a,
+};
+static const unsigned char kat1728_nonce[] = {
+ 0xa7, 0xd9, 0x8d, 0xa9, 0x54, 0xc3, 0x3f, 0xaf, 0xca, 0x07, 0x01, 0x73,
+ 0x90, 0x59, 0x1d, 0x53,
+};
+static const unsigned char kat1728_persstr[] = {
+ 0xdc, 0x7a, 0x32, 0x71, 0x1d, 0x69, 0x33, 0xb6, 0xfc, 0x10, 0x18, 0x4a,
+ 0xe0, 0x80, 0x89, 0xa2, 0xb9, 0x6d, 0x44, 0x48, 0x67, 0x6b, 0xcc, 0xb4,
+ 0xe8, 0xf0, 0xf6, 0x9a, 0x46, 0x6d, 0x44, 0x49,
+};
+static const unsigned char kat1728_entropyinreseed[] = {
+ 0xc3, 0x8c, 0xe5, 0x72, 0x84, 0x0b, 0x16, 0x38, 0xef, 0xf0, 0xc1, 0x80,
+ 0x1f, 0x40, 0xbe, 0xa2, 0x4b, 0x71, 0xaf, 0xb1, 0x41, 0xee, 0xeb, 0xa0,
+};
+static const unsigned char kat1728_addinreseed[] = {
+ 0x3c, 0xa0, 0x5c, 0x23, 0xd8, 0x25, 0x91, 0x7e, 0x4a, 0x98, 0xd9, 0xbf,
+ 0x1b, 0xeb, 0xc7, 0x25, 0xca, 0x04, 0x54, 0xa0, 0x62, 0x8c, 0xba, 0x77,
+ 0x68, 0x6e, 0xe5, 0x8d, 0x45, 0x6a, 0x5b, 0x39,
+};
+static const unsigned char kat1728_addin0[] = {
+ 0x92, 0x07, 0x10, 0x1a, 0x61, 0x71, 0x0e, 0xdc, 0xc6, 0x02, 0xd4, 0x31,
+ 0xb4, 0xb9, 0xf1, 0x3a, 0x1b, 0xb0, 0xf4, 0x3a, 0x0d, 0xbe, 0x3e, 0x97,
+ 0xa4, 0xce, 0xdc, 0x32, 0xcc, 0x17, 0xf4, 0xc6,
+};
+static const unsigned char kat1728_addin1[] = {
+ 0x8d, 0xfe, 0xcd, 0x01, 0xba, 0xe7, 0xc6, 0xf4, 0x71, 0x9b, 0x2f, 0x12,
+ 0x0b, 0x6b, 0xf1, 0x1b, 0x84, 0x8f, 0xf5, 0x64, 0x8d, 0xf3, 0x03, 0x04,
+ 0xe3, 0x40, 0xde, 0x90, 0xc3, 0x34, 0x2b, 0xb0,
+};
+static const unsigned char kat1728_retbits[] = {
+ 0x6b, 0x87, 0x6e, 0xb3, 0xd2, 0x91, 0xfb, 0xc4, 0x97, 0x30, 0xb5, 0x51,
+ 0x5a, 0x32, 0x65, 0x87, 0x29, 0x7e, 0x97, 0x13, 0x60, 0xdb, 0xe2, 0x94,
+ 0xee, 0xce, 0x35, 0xd0, 0xdc, 0x00, 0x58, 0xc0, 0x69, 0x5f, 0xa0, 0x61,
+ 0xb2, 0x36, 0x45, 0x79, 0x15, 0xc4, 0x70, 0x12, 0xb7, 0x89, 0xec, 0xdc,
+ 0xe6, 0xc0, 0x8b, 0x5a, 0x47, 0xa0, 0xe5, 0xd1, 0xd2, 0x3d, 0xb3, 0x07,
+ 0x3b, 0xf2, 0x92, 0xcc,
+};
+static const struct drbg_kat_pr_false kat1728_t = {
+ 2, kat1728_entropyin, kat1728_nonce, kat1728_persstr,
+ kat1728_entropyinreseed, kat1728_addinreseed, kat1728_addin0,
+ kat1728_addin1, kat1728_retbits
+};
+static const struct drbg_kat kat1728 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1728_t
+};
+
+static const unsigned char kat1729_entropyin[] = {
+ 0x6b, 0xbf, 0xcc, 0x3a, 0xdc, 0xb5, 0x7d, 0x1a, 0x54, 0x2a, 0x24, 0x6f,
+ 0xac, 0xd8, 0x99, 0x24, 0x41, 0x62, 0xdd, 0x9a, 0xfb, 0xe4, 0xcb, 0xe9,
+};
+static const unsigned char kat1729_nonce[] = {
+ 0x98, 0xf6, 0x06, 0x43, 0xcb, 0x5d, 0xd6, 0x6b, 0x41, 0x5b, 0x42, 0x85,
+ 0xf6, 0x06, 0x21, 0x2d,
+};
+static const unsigned char kat1729_persstr[] = {
+ 0x38, 0x4b, 0x97, 0x79, 0x3b, 0x9d, 0x51, 0x8d, 0xbf, 0x71, 0x89, 0x0c,
+ 0xbf, 0x13, 0x83, 0x6e, 0x51, 0xb9, 0xe9, 0xb1, 0xd6, 0xf7, 0x69, 0xca,
+ 0xc2, 0x0b, 0x71, 0xcf, 0x51, 0xd3, 0x13, 0xfb,
+};
+static const unsigned char kat1729_entropyinreseed[] = {
+ 0x0d, 0x88, 0x40, 0x93, 0xd0, 0x0e, 0x9a, 0x95, 0x1a, 0xd2, 0xdf, 0x66,
+ 0x80, 0xe3, 0x65, 0xaf, 0x11, 0xd1, 0x4e, 0x70, 0x00, 0xf4, 0x40, 0xaf,
+};
+static const unsigned char kat1729_addinreseed[] = {
+ 0x96, 0x07, 0x06, 0xa7, 0x9f, 0xb0, 0xb2, 0xef, 0x08, 0x37, 0xd1, 0x63,
+ 0x0f, 0xed, 0x53, 0xaf, 0x50, 0xdf, 0x03, 0x3c, 0xde, 0xff, 0x2d, 0xda,
+ 0x61, 0xe5, 0xa3, 0xf3, 0x25, 0x2a, 0xef, 0xce,
+};
+static const unsigned char kat1729_addin0[] = {
+ 0xef, 0x74, 0xde, 0x0f, 0x42, 0x10, 0xd1, 0x80, 0xc0, 0x99, 0xfe, 0x5f,
+ 0xdd, 0x58, 0xc2, 0xcd, 0x6d, 0x8c, 0x79, 0xb3, 0xfe, 0x4a, 0x78, 0x2e,
+ 0x58, 0x4a, 0xc9, 0x6f, 0x8e, 0x27, 0x43, 0x03,
+};
+static const unsigned char kat1729_addin1[] = {
+ 0x0a, 0xdc, 0x46, 0x26, 0xc9, 0xd6, 0x60, 0x85, 0xe1, 0xcd, 0x4c, 0xc4,
+ 0xa1, 0x0f, 0x85, 0xd0, 0x4d, 0xea, 0x85, 0x45, 0x39, 0x90, 0x58, 0x51,
+ 0x2d, 0xa0, 0xa6, 0xac, 0x38, 0x77, 0x37, 0x7f,
+};
+static const unsigned char kat1729_retbits[] = {
+ 0x92, 0x7b, 0x03, 0x19, 0xbd, 0xc7, 0x6e, 0x79, 0x5d, 0x37, 0x84, 0x53,
+ 0xf2, 0x41, 0x91, 0x6e, 0x25, 0xfb, 0x8a, 0x72, 0x24, 0x94, 0x14, 0x6e,
+ 0xbd, 0xfe, 0xa9, 0x9a, 0xa4, 0x8a, 0xa6, 0xd8, 0x78, 0xd8, 0xcf, 0xfa,
+ 0x93, 0x24, 0xa8, 0x98, 0x48, 0x14, 0xdc, 0xda, 0x30, 0xe5, 0xae, 0xd8,
+ 0xc8, 0x73, 0x99, 0xc9, 0xe5, 0xfd, 0x45, 0x7d, 0x63, 0xc0, 0xd6, 0x1b,
+ 0x46, 0xa4, 0x6a, 0x7f,
+};
+static const struct drbg_kat_pr_false kat1729_t = {
+ 3, kat1729_entropyin, kat1729_nonce, kat1729_persstr,
+ kat1729_entropyinreseed, kat1729_addinreseed, kat1729_addin0,
+ kat1729_addin1, kat1729_retbits
+};
+static const struct drbg_kat kat1729 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1729_t
+};
+
+static const unsigned char kat1730_entropyin[] = {
+ 0x0c, 0x91, 0x04, 0xc0, 0x8e, 0xba, 0xf5, 0xa4, 0x91, 0xf2, 0xd8, 0x5f,
+ 0x10, 0xde, 0xd3, 0xe2, 0xfe, 0x76, 0x12, 0xdf, 0xa6, 0xe1, 0xd6, 0xfb,
+};
+static const unsigned char kat1730_nonce[] = {
+ 0x22, 0x67, 0x8d, 0x0e, 0xd3, 0x64, 0x63, 0x56, 0xb5, 0x2f, 0xe3, 0x28,
+ 0xb2, 0x3f, 0x2e, 0xd1,
+};
+static const unsigned char kat1730_persstr[] = {
+ 0x58, 0xc1, 0xd9, 0xb7, 0x6a, 0x19, 0xd2, 0x17, 0x22, 0x3b, 0x44, 0x31,
+ 0x94, 0x97, 0xaa, 0x99, 0xe3, 0x90, 0xe3, 0x20, 0xb8, 0xc9, 0x1e, 0x11,
+ 0x70, 0xeb, 0x8f, 0x8f, 0x48, 0x4a, 0x34, 0xbe,
+};
+static const unsigned char kat1730_entropyinreseed[] = {
+ 0xb1, 0x96, 0x63, 0x2d, 0x9b, 0x65, 0x1c, 0xaa, 0xc5, 0xad, 0xd9, 0x01,
+ 0xdd, 0xe3, 0xf2, 0x2e, 0xaa, 0xf9, 0xfd, 0xa9, 0x84, 0xed, 0x36, 0x80,
+};
+static const unsigned char kat1730_addinreseed[] = {
+ 0x2b, 0xff, 0xb5, 0x87, 0x6d, 0x20, 0x0a, 0x35, 0x87, 0x2e, 0x30, 0xa9,
+ 0x97, 0x6e, 0x93, 0x8e, 0x1f, 0x4a, 0xc5, 0x43, 0xfd, 0x2d, 0xac, 0xfe,
+ 0xe1, 0x61, 0xc0, 0x74, 0x67, 0xc3, 0x45, 0x78,
+};
+static const unsigned char kat1730_addin0[] = {
+ 0xdc, 0x7f, 0xf3, 0xaa, 0x1d, 0xd3, 0xd2, 0xec, 0x77, 0x41, 0xc2, 0xeb,
+ 0x64, 0x8c, 0xc3, 0x64, 0x39, 0x8a, 0xe0, 0x12, 0xd2, 0xd4, 0x75, 0x8f,
+ 0x0f, 0x5b, 0x32, 0xa9, 0xb3, 0xb7, 0x3c, 0x4c,
+};
+static const unsigned char kat1730_addin1[] = {
+ 0xf6, 0xc9, 0x37, 0xcd, 0xaa, 0x89, 0x14, 0x62, 0xa5, 0x4d, 0x5c, 0xaa,
+ 0xa0, 0xc6, 0xbb, 0x20, 0x09, 0xd1, 0x9c, 0x76, 0x92, 0xe2, 0x67, 0xd5,
+ 0x79, 0x40, 0xd6, 0xf2, 0x88, 0x6f, 0xe6, 0x87,
+};
+static const unsigned char kat1730_retbits[] = {
+ 0x60, 0x82, 0xab, 0x6e, 0x55, 0xf5, 0x37, 0x3b, 0x2d, 0x70, 0xda, 0xfa,
+ 0x2d, 0xd0, 0xc5, 0x3a, 0xcd, 0x97, 0x9e, 0xb1, 0xb0, 0x9f, 0xf4, 0x2d,
+ 0x34, 0xe3, 0x64, 0x15, 0x93, 0xc1, 0xfc, 0x66, 0x93, 0x7b, 0x6e, 0xb0,
+ 0x8a, 0x84, 0x90, 0xb3, 0xea, 0x20, 0x8b, 0xa5, 0xe0, 0xe9, 0x94, 0x79,
+ 0x2b, 0x1e, 0xe9, 0x99, 0x26, 0x15, 0x9e, 0xb0, 0x80, 0x74, 0x8d, 0xda,
+ 0x31, 0x4b, 0x48, 0x60,
+};
+static const struct drbg_kat_pr_false kat1730_t = {
+ 4, kat1730_entropyin, kat1730_nonce, kat1730_persstr,
+ kat1730_entropyinreseed, kat1730_addinreseed, kat1730_addin0,
+ kat1730_addin1, kat1730_retbits
+};
+static const struct drbg_kat kat1730 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1730_t
+};
+
+static const unsigned char kat1731_entropyin[] = {
+ 0x02, 0xff, 0xe9, 0xc1, 0x62, 0x87, 0x73, 0x94, 0x89, 0xbb, 0xc5, 0xb1,
+ 0x62, 0x0f, 0x74, 0x9a, 0xd5, 0x4b, 0x2c, 0x4c, 0x8a, 0x08, 0x11, 0x22,
+};
+static const unsigned char kat1731_nonce[] = {
+ 0x56, 0x00, 0xaf, 0x36, 0x95, 0xa9, 0xac, 0x46, 0x72, 0xe3, 0xb2, 0xa5,
+ 0x2a, 0xe0, 0xb1, 0x9f,
+};
+static const unsigned char kat1731_persstr[] = {
+ 0xc7, 0xc9, 0xf9, 0xcc, 0x55, 0xa1, 0xf8, 0x2a, 0x61, 0x22, 0xa5, 0x36,
+ 0x54, 0x09, 0x5a, 0x38, 0xbc, 0xc1, 0xce, 0xb7, 0xf2, 0xa9, 0x7c, 0x52,
+ 0xa7, 0xe7, 0xf4, 0x6c, 0xd0, 0xd0, 0x74, 0xca,
+};
+static const unsigned char kat1731_entropyinreseed[] = {
+ 0x2d, 0x6e, 0x4b, 0x10, 0x74, 0x29, 0xbf, 0x28, 0xcb, 0xd9, 0xef, 0xd6,
+ 0x2c, 0x91, 0x85, 0x75, 0x65, 0xc9, 0x9f, 0x70, 0xcb, 0xd1, 0x2f, 0x00,
+};
+static const unsigned char kat1731_addinreseed[] = {
+ 0xb6, 0x74, 0x7c, 0x8a, 0x93, 0x92, 0xc6, 0xe5, 0x20, 0x9c, 0x0d, 0x4c,
+ 0xa3, 0x88, 0xa4, 0x49, 0xe7, 0x27, 0xb1, 0xfe, 0xba, 0x24, 0xa2, 0x74,
+ 0xc7, 0x9a, 0x20, 0xb0, 0x7c, 0x59, 0x89, 0x45,
+};
+static const unsigned char kat1731_addin0[] = {
+ 0x1c, 0x4f, 0xc5, 0x5f, 0x2b, 0x56, 0x4c, 0xff, 0xba, 0x27, 0xfc, 0x54,
+ 0x28, 0x12, 0xe2, 0x46, 0xef, 0xf4, 0xd6, 0xbc, 0x65, 0xea, 0xf8, 0x97,
+ 0x3c, 0xb0, 0x3c, 0x3c, 0x9f, 0xde, 0x39, 0x59,
+};
+static const unsigned char kat1731_addin1[] = {
+ 0xa8, 0x14, 0xa5, 0x1a, 0xd2, 0x6e, 0xd3, 0x40, 0x0e, 0x62, 0xa3, 0x42,
+ 0x7d, 0x1b, 0x88, 0x1c, 0x7b, 0x3d, 0x3e, 0x46, 0xdf, 0xd8, 0x6e, 0x54,
+ 0xb4, 0x14, 0x01, 0xc7, 0xe2, 0x8b, 0xa2, 0xb7,
+};
+static const unsigned char kat1731_retbits[] = {
+ 0x1b, 0x72, 0x73, 0x45, 0xc0, 0x92, 0x7c, 0x80, 0x50, 0x04, 0x41, 0x98,
+ 0x55, 0xfc, 0x69, 0x8d, 0xa8, 0x77, 0x50, 0xe4, 0x48, 0x85, 0x9d, 0x75,
+ 0x33, 0xec, 0xe8, 0x7b, 0xc5, 0xac, 0xb2, 0xef, 0xe6, 0x97, 0xd6, 0xf5,
+ 0xa5, 0x6b, 0xf2, 0xb5, 0x74, 0x7b, 0x0b, 0xd4, 0xbd, 0x21, 0x27, 0x30,
+ 0x62, 0x99, 0x4e, 0x89, 0xd3, 0x02, 0x8d, 0xb6, 0x3e, 0x5b, 0x0f, 0x8c,
+ 0xfd, 0xe0, 0x2b, 0x3e,
+};
+static const struct drbg_kat_pr_false kat1731_t = {
+ 5, kat1731_entropyin, kat1731_nonce, kat1731_persstr,
+ kat1731_entropyinreseed, kat1731_addinreseed, kat1731_addin0,
+ kat1731_addin1, kat1731_retbits
+};
+static const struct drbg_kat kat1731 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1731_t
+};
+
+static const unsigned char kat1732_entropyin[] = {
+ 0xff, 0xa1, 0x6b, 0x18, 0x7b, 0x4e, 0x0f, 0x40, 0xd7, 0x3d, 0x41, 0x03,
+ 0xa8, 0x02, 0x19, 0xe5, 0xd7, 0x96, 0x10, 0x64, 0xfa, 0x6f, 0x40, 0x6c,
+};
+static const unsigned char kat1732_nonce[] = {
+ 0x81, 0x22, 0xf3, 0xb2, 0xcd, 0x57, 0x5f, 0xbc, 0xbd, 0x3e, 0x74, 0x0b,
+ 0xe1, 0xaf, 0x44, 0x11,
+};
+static const unsigned char kat1732_persstr[] = {
+ 0x0f, 0x23, 0xa0, 0x8a, 0xd7, 0xab, 0x7d, 0x0e, 0xc9, 0xdf, 0x99, 0x39,
+ 0xe0, 0x85, 0xd0, 0xbf, 0x49, 0xf3, 0xef, 0xf9, 0x26, 0x3f, 0x4d, 0x0e,
+ 0xf9, 0xf8, 0x8b, 0x54, 0x72, 0x3b, 0x5c, 0x66,
+};
+static const unsigned char kat1732_entropyinreseed[] = {
+ 0x72, 0x79, 0x2b, 0x72, 0xe8, 0x36, 0x37, 0x96, 0xc4, 0x64, 0xda, 0x3b,
+ 0x54, 0x28, 0xfe, 0x40, 0x25, 0x49, 0x11, 0x21, 0x0e, 0x32, 0x82, 0x22,
+};
+static const unsigned char kat1732_addinreseed[] = {
+ 0x1a, 0x3b, 0x6d, 0x86, 0x06, 0x51, 0x0b, 0x13, 0x28, 0x7d, 0xae, 0x18,
+ 0x39, 0xc9, 0x3c, 0x9f, 0x53, 0x6e, 0xdb, 0x5c, 0xf5, 0xcc, 0x52, 0xf4,
+ 0x43, 0x1a, 0xd7, 0xf2, 0xed, 0x53, 0xdf, 0x7f,
+};
+static const unsigned char kat1732_addin0[] = {
+ 0x9e, 0xef, 0x33, 0x78, 0x5e, 0x86, 0x2a, 0x99, 0x07, 0x5e, 0x19, 0xfe,
+ 0xc4, 0x20, 0x7c, 0x2e, 0xef, 0x9c, 0x6e, 0x39, 0x65, 0xb3, 0xf2, 0x2c,
+ 0x53, 0xcc, 0xfd, 0x65, 0x5b, 0x84, 0x80, 0x62,
+};
+static const unsigned char kat1732_addin1[] = {
+ 0x88, 0x1e, 0x83, 0xd1, 0x75, 0xfa, 0xd0, 0x4c, 0x5a, 0xc5, 0x48, 0xaa,
+ 0x54, 0x43, 0xb9, 0x30, 0xb5, 0xdc, 0xc0, 0x4b, 0x9d, 0x0a, 0xfe, 0xb5,
+ 0xe7, 0xd0, 0x57, 0xf0, 0xc7, 0x75, 0x7e, 0xea,
+};
+static const unsigned char kat1732_retbits[] = {
+ 0x87, 0xb2, 0x76, 0x39, 0xb2, 0x9e, 0x73, 0x06, 0xd3, 0x03, 0xe6, 0x7e,
+ 0x88, 0x59, 0x8f, 0xfb, 0xef, 0xf2, 0x30, 0xe0, 0xac, 0x23, 0x1e, 0x97,
+ 0x72, 0xbe, 0x25, 0x7e, 0x6c, 0xaa, 0x96, 0xac, 0x35, 0x01, 0x8a, 0x45,
+ 0xf8, 0x3e, 0xcb, 0x72, 0xdc, 0x7b, 0x9e, 0xa8, 0xc0, 0x06, 0xb2, 0xae,
+ 0x36, 0x62, 0x7b, 0x18, 0x1a, 0xdf, 0x30, 0xf5, 0x65, 0x92, 0x18, 0x41,
+ 0xc8, 0x78, 0x21, 0xb1,
+};
+static const struct drbg_kat_pr_false kat1732_t = {
+ 6, kat1732_entropyin, kat1732_nonce, kat1732_persstr,
+ kat1732_entropyinreseed, kat1732_addinreseed, kat1732_addin0,
+ kat1732_addin1, kat1732_retbits
+};
+static const struct drbg_kat kat1732 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1732_t
+};
+
+static const unsigned char kat1733_entropyin[] = {
+ 0xbd, 0x04, 0xd9, 0x1c, 0x3e, 0x30, 0x10, 0x93, 0x89, 0x17, 0x08, 0x10,
+ 0x69, 0xd0, 0xad, 0x91, 0x11, 0x88, 0x5d, 0xef, 0xf8, 0x98, 0x82, 0xed,
+};
+static const unsigned char kat1733_nonce[] = {
+ 0x3a, 0x78, 0x16, 0x88, 0x88, 0x74, 0x9e, 0x95, 0xe4, 0x4b, 0x17, 0x18,
+ 0x8e, 0x6c, 0xb3, 0xc5,
+};
+static const unsigned char kat1733_persstr[] = {
+ 0x31, 0x2a, 0xd6, 0x94, 0x36, 0x01, 0x47, 0x0d, 0x60, 0x18, 0x40, 0xdf,
+ 0x6d, 0x9d, 0x3f, 0x92, 0x04, 0x85, 0xe4, 0xbb, 0xfb, 0x0b, 0x1c, 0x68,
+ 0x83, 0xbb, 0x18, 0x68, 0x82, 0xf3, 0x05, 0x7b,
+};
+static const unsigned char kat1733_entropyinreseed[] = {
+ 0xd0, 0x63, 0xdb, 0xdd, 0xca, 0x1b, 0xfb, 0x0b, 0x5a, 0xa1, 0x9a, 0x9d,
+ 0x88, 0xf5, 0x8c, 0xb9, 0x00, 0x7f, 0x98, 0xf0, 0x98, 0xc8, 0xb8, 0x01,
+};
+static const unsigned char kat1733_addinreseed[] = {
+ 0x17, 0x00, 0x59, 0xa3, 0x31, 0x3c, 0x13, 0xae, 0xb4, 0x6f, 0x61, 0xe2,
+ 0x7f, 0x6b, 0x48, 0xf8, 0xaa, 0xe9, 0x4f, 0x10, 0x04, 0x08, 0x3e, 0xc2,
+ 0x7c, 0xb7, 0x1a, 0xdf, 0xe1, 0xd3, 0x6f, 0x35,
+};
+static const unsigned char kat1733_addin0[] = {
+ 0xa1, 0xe3, 0xe4, 0x57, 0x15, 0xc6, 0x8d, 0x57, 0x11, 0xd5, 0x76, 0xf4,
+ 0x50, 0x65, 0xb7, 0x62, 0x9a, 0xd2, 0x9c, 0x6f, 0x42, 0x55, 0x42, 0xe1,
+ 0x20, 0x4d, 0x57, 0x87, 0x22, 0x94, 0x51, 0xff,
+};
+static const unsigned char kat1733_addin1[] = {
+ 0x8c, 0xce, 0x6a, 0x52, 0xbf, 0xa2, 0xb0, 0x2e, 0x56, 0x6e, 0x86, 0x00,
+ 0x23, 0x1b, 0x0f, 0x5e, 0xc8, 0xff, 0xfe, 0xcd, 0x13, 0x33, 0x87, 0x22,
+ 0xfd, 0x47, 0x6b, 0xe4, 0x97, 0x43, 0x50, 0xd8,
+};
+static const unsigned char kat1733_retbits[] = {
+ 0x86, 0xc2, 0xcb, 0x9d, 0x00, 0xaa, 0xc2, 0x55, 0x56, 0xe8, 0x37, 0xd8,
+ 0x28, 0xae, 0xee, 0x34, 0x93, 0x10, 0xf8, 0x59, 0x54, 0x7b, 0xd5, 0x10,
+ 0x96, 0x28, 0x3a, 0x3d, 0x22, 0x12, 0xdf, 0x63, 0x67, 0x1a, 0x07, 0x05,
+ 0x0e, 0x1d, 0x64, 0x1a, 0x39, 0xf8, 0x8f, 0xa9, 0xff, 0x13, 0x11, 0x75,
+ 0x48, 0xe1, 0x58, 0xe1, 0x74, 0x5e, 0x85, 0x94, 0x47, 0x16, 0x7c, 0x80,
+ 0xae, 0x98, 0xe7, 0x1a,
+};
+static const struct drbg_kat_pr_false kat1733_t = {
+ 7, kat1733_entropyin, kat1733_nonce, kat1733_persstr,
+ kat1733_entropyinreseed, kat1733_addinreseed, kat1733_addin0,
+ kat1733_addin1, kat1733_retbits
+};
+static const struct drbg_kat kat1733 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1733_t
+};
+
+static const unsigned char kat1734_entropyin[] = {
+ 0x43, 0x88, 0xfe, 0xb0, 0xaf, 0x37, 0x1c, 0x51, 0x7f, 0xf3, 0x26, 0x78,
+ 0xab, 0x06, 0xee, 0x5b, 0xb0, 0x8d, 0x3e, 0xe2, 0xe9, 0x6b, 0xc9, 0xeb,
+};
+static const unsigned char kat1734_nonce[] = {
+ 0x30, 0xf6, 0xd8, 0x6d, 0x5d, 0x70, 0xe8, 0xb0, 0xcd, 0x8e, 0xa2, 0x9f,
+ 0x05, 0xb9, 0xb9, 0x6f,
+};
+static const unsigned char kat1734_persstr[] = {
+ 0x81, 0xe8, 0x2b, 0x9d, 0x1a, 0x08, 0x7c, 0x0b, 0x51, 0x57, 0xa0, 0xd3,
+ 0x1c, 0x60, 0x73, 0x6b, 0x19, 0xb2, 0x2f, 0x6a, 0xc2, 0xc0, 0xd6, 0x4e,
+ 0x49, 0xe6, 0x47, 0xe5, 0xcc, 0xaa, 0x5b, 0x98,
+};
+static const unsigned char kat1734_entropyinreseed[] = {
+ 0x75, 0x07, 0x42, 0x3c, 0x12, 0xe4, 0xa9, 0x1c, 0x29, 0x1c, 0x3b, 0x7b,
+ 0x3c, 0x12, 0x8d, 0xef, 0xa4, 0xa3, 0x43, 0x21, 0x5c, 0xb8, 0x86, 0x32,
+};
+static const unsigned char kat1734_addinreseed[] = {
+ 0xb9, 0xc4, 0x90, 0xc7, 0x02, 0x83, 0xf9, 0x5e, 0xa2, 0xa5, 0x55, 0xe5,
+ 0xc7, 0xc1, 0x1f, 0x25, 0x46, 0x1d, 0x60, 0x75, 0x12, 0xc8, 0x3f, 0xbd,
+ 0x86, 0x7f, 0x03, 0x25, 0x41, 0x94, 0xd3, 0x0a,
+};
+static const unsigned char kat1734_addin0[] = {
+ 0x1d, 0x54, 0xaa, 0x2a, 0x4a, 0x2e, 0xf1, 0x75, 0x37, 0x68, 0x82, 0xd4,
+ 0x0f, 0x1b, 0x92, 0x97, 0xf7, 0xd0, 0x5e, 0xf2, 0x1d, 0x5a, 0x6d, 0x95,
+ 0xfc, 0x84, 0xd5, 0x89, 0xd1, 0xb0, 0x30, 0xf5,
+};
+static const unsigned char kat1734_addin1[] = {
+ 0x2b, 0x03, 0x1f, 0x9b, 0x0b, 0xca, 0x10, 0xcb, 0xd1, 0xc4, 0x79, 0x9d,
+ 0xe3, 0x90, 0x0d, 0xf2, 0x81, 0x5a, 0x5f, 0xf8, 0x8a, 0x66, 0xf9, 0xfd,
+ 0xf1, 0x63, 0xe8, 0x95, 0x32, 0xdd, 0x1c, 0x91,
+};
+static const unsigned char kat1734_retbits[] = {
+ 0xd3, 0xc6, 0x4c, 0x70, 0xd8, 0x48, 0x9f, 0xec, 0x82, 0x15, 0x0b, 0xd8,
+ 0x8b, 0x1c, 0x7e, 0x5f, 0xee, 0xe7, 0x10, 0x04, 0xbb, 0x6d, 0xaa, 0x37,
+ 0x5e, 0x40, 0x42, 0x09, 0x2f, 0x5a, 0x9d, 0x62, 0xa6, 0xc0, 0x7a, 0x4c,
+ 0xd1, 0xcc, 0x05, 0x9e, 0x32, 0x95, 0x87, 0xc5, 0xb6, 0xe1, 0xf2, 0x5d,
+ 0x4d, 0xd2, 0xec, 0x89, 0xe6, 0x9c, 0x73, 0xdd, 0x10, 0xf4, 0xa6, 0x19,
+ 0x66, 0x96, 0x5d, 0xe2,
+};
+static const struct drbg_kat_pr_false kat1734_t = {
+ 8, kat1734_entropyin, kat1734_nonce, kat1734_persstr,
+ kat1734_entropyinreseed, kat1734_addinreseed, kat1734_addin0,
+ kat1734_addin1, kat1734_retbits
+};
+static const struct drbg_kat kat1734 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1734_t
+};
+
+static const unsigned char kat1735_entropyin[] = {
+ 0xb3, 0x44, 0x24, 0x39, 0x39, 0x3a, 0xa5, 0xb9, 0xfb, 0xc4, 0x77, 0xd3,
+ 0x8f, 0xfc, 0xf9, 0x14, 0xef, 0xda, 0x00, 0x9b, 0x4b, 0x54, 0x65, 0x04,
+};
+static const unsigned char kat1735_nonce[] = {
+ 0x9e, 0x46, 0x14, 0xc2, 0x37, 0xfe, 0xa7, 0xc1, 0xb5, 0x0b, 0x1d, 0x09,
+ 0x24, 0x7b, 0x32, 0xb9,
+};
+static const unsigned char kat1735_persstr[] = {
+ 0x73, 0x64, 0x4e, 0x9c, 0x09, 0x20, 0x03, 0xdf, 0x11, 0x95, 0x16, 0xd1,
+ 0x86, 0x4d, 0xbd, 0x7f, 0x8d, 0x30, 0xce, 0xc0, 0xf7, 0x01, 0x18, 0x82,
+ 0xf4, 0xf7, 0xe8, 0x35, 0xea, 0x7d, 0x0a, 0xe1,
+};
+static const unsigned char kat1735_entropyinreseed[] = {
+ 0xa1, 0x0b, 0x44, 0x60, 0x7d, 0x8f, 0x46, 0x90, 0xa8, 0x96, 0x51, 0x86,
+ 0xa4, 0x4f, 0x54, 0x42, 0x5a, 0x14, 0x28, 0xc7, 0xa3, 0x6f, 0xa5, 0xb7,
+};
+static const unsigned char kat1735_addinreseed[] = {
+ 0xda, 0xb6, 0x21, 0xcc, 0xbd, 0x15, 0xf1, 0x2e, 0x3a, 0x7a, 0x6e, 0xa0,
+ 0xc4, 0x1d, 0x54, 0x82, 0x01, 0x89, 0xeb, 0xf9, 0x55, 0xbe, 0x61, 0x25,
+ 0xd7, 0x32, 0x16, 0x5d, 0x1d, 0xda, 0x19, 0x8a,
+};
+static const unsigned char kat1735_addin0[] = {
+ 0x3c, 0xbb, 0x61, 0x5f, 0xc6, 0xbb, 0x70, 0x33, 0x90, 0x65, 0xce, 0xdf,
+ 0x41, 0xae, 0xcb, 0xce, 0xbe, 0x82, 0xf3, 0x2d, 0xc9, 0x47, 0xa7, 0x98,
+ 0x56, 0x26, 0xe1, 0xf4, 0x2d, 0xd3, 0xea, 0x80,
+};
+static const unsigned char kat1735_addin1[] = {
+ 0x19, 0x42, 0x0e, 0x42, 0xcc, 0x21, 0x35, 0xe4, 0xd7, 0x0d, 0xcd, 0x3c,
+ 0xf3, 0xac, 0x8b, 0xa6, 0x30, 0xe4, 0x2e, 0xb1, 0xac, 0x71, 0x12, 0x90,
+ 0x65, 0x78, 0xa1, 0xe3, 0x16, 0xed, 0xd0, 0xbd,
+};
+static const unsigned char kat1735_retbits[] = {
+ 0x7c, 0xc3, 0x2d, 0x5f, 0x08, 0x15, 0x95, 0x24, 0x5c, 0x16, 0x70, 0xd4,
+ 0x98, 0x9a, 0xb7, 0xbf, 0xfe, 0x05, 0x3c, 0x03, 0xb0, 0xf2, 0xd6, 0x36,
+ 0x88, 0x6b, 0xaa, 0x93, 0xe1, 0x23, 0xc1, 0x0c, 0x1b, 0x49, 0x52, 0x35,
+ 0xc9, 0xa7, 0xcb, 0xb6, 0xbc, 0x08, 0xbc, 0x06, 0x71, 0x9b, 0x6d, 0x4b,
+ 0x7c, 0x65, 0xf0, 0xdd, 0xc5, 0x4d, 0x2b, 0xa9, 0x7f, 0x73, 0x26, 0xcd,
+ 0xa5, 0x44, 0xdf, 0x65,
+};
+static const struct drbg_kat_pr_false kat1735_t = {
+ 9, kat1735_entropyin, kat1735_nonce, kat1735_persstr,
+ kat1735_entropyinreseed, kat1735_addinreseed, kat1735_addin0,
+ kat1735_addin1, kat1735_retbits
+};
+static const struct drbg_kat kat1735 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1735_t
+};
+
+static const unsigned char kat1736_entropyin[] = {
+ 0x3e, 0x5a, 0x64, 0xdc, 0x44, 0x1c, 0x56, 0x99, 0xd2, 0x24, 0xdb, 0xf4,
+ 0x9d, 0x71, 0xd3, 0x2a, 0x43, 0x65, 0xd7, 0xe1, 0xd3, 0xe4, 0x75, 0x71,
+};
+static const unsigned char kat1736_nonce[] = {
+ 0xa2, 0x19, 0x51, 0x91, 0x7c, 0x69, 0xcf, 0x41, 0x88, 0x5a, 0x93, 0x98,
+ 0x86, 0x61, 0xa3, 0x6d,
+};
+static const unsigned char kat1736_persstr[] = {
+ 0x9d, 0x75, 0x9f, 0xa8, 0x73, 0xe3, 0x75, 0x35, 0xcd, 0x39, 0xcc, 0xe9,
+ 0xdd, 0x09, 0x24, 0x14, 0xb8, 0x38, 0x72, 0x56, 0xc6, 0x38, 0x0a, 0xb2,
+ 0xdf, 0x96, 0xfe, 0xd0, 0x14, 0xaf, 0x41, 0x71,
+};
+static const unsigned char kat1736_entropyinreseed[] = {
+ 0x96, 0xa1, 0x28, 0x7a, 0x1b, 0x36, 0xf5, 0xf1, 0x4c, 0xe8, 0xab, 0xed,
+ 0xae, 0x64, 0xb7, 0x91, 0xaf, 0xfc, 0x5a, 0x5c, 0xdb, 0x50, 0x53, 0x75,
+};
+static const unsigned char kat1736_addinreseed[] = {
+ 0x76, 0xa1, 0x25, 0xcd, 0xae, 0xa2, 0x71, 0x22, 0xe4, 0xf8, 0xf7, 0x4c,
+ 0xc9, 0x28, 0x4a, 0xf2, 0x61, 0xc7, 0xe3, 0x6f, 0x2b, 0x72, 0xb6, 0x13,
+ 0x7f, 0x6e, 0xe5, 0x38, 0xfc, 0x1a, 0x84, 0x20,
+};
+static const unsigned char kat1736_addin0[] = {
+ 0xeb, 0x46, 0x41, 0x28, 0x83, 0x69, 0x49, 0x58, 0x66, 0xdc, 0x9c, 0x2e,
+ 0x72, 0x42, 0xdb, 0x84, 0xc3, 0x74, 0xb7, 0x99, 0xd3, 0xfe, 0x0f, 0xd9,
+ 0x1e, 0x82, 0x01, 0x62, 0x9b, 0xa1, 0xdb, 0xd8,
+};
+static const unsigned char kat1736_addin1[] = {
+ 0xe4, 0x57, 0xac, 0xf8, 0xc5, 0x17, 0xfc, 0xb8, 0x38, 0x86, 0x5f, 0x58,
+ 0x79, 0xe2, 0xde, 0xa3, 0x1b, 0x6f, 0xa5, 0x06, 0xa6, 0xd4, 0xf4, 0x1e,
+ 0x3d, 0x05, 0xab, 0xb9, 0x3d, 0x94, 0x93, 0xf4,
+};
+static const unsigned char kat1736_retbits[] = {
+ 0xe3, 0x21, 0xe4, 0x34, 0x9b, 0xdc, 0xb1, 0xf3, 0x40, 0x20, 0xb2, 0x31,
+ 0x11, 0xd8, 0x8b, 0x55, 0x86, 0x95, 0xc7, 0x0c, 0x14, 0x73, 0x85, 0x2f,
+ 0x46, 0x03, 0x9a, 0x1a, 0xfe, 0x26, 0x76, 0xca, 0x91, 0xc9, 0xb4, 0x90,
+ 0x65, 0xaf, 0x4b, 0x81, 0xfe, 0xfd, 0x6b, 0x3e, 0x0d, 0xc3, 0xea, 0x88,
+ 0xfe, 0x69, 0xac, 0xa1, 0xf2, 0x1a, 0x3e, 0x09, 0x14, 0x5b, 0xab, 0xa0,
+ 0x26, 0x1e, 0xfb, 0x54,
+};
+static const struct drbg_kat_pr_false kat1736_t = {
+ 10, kat1736_entropyin, kat1736_nonce, kat1736_persstr,
+ kat1736_entropyinreseed, kat1736_addinreseed, kat1736_addin0,
+ kat1736_addin1, kat1736_retbits
+};
+static const struct drbg_kat kat1736 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1736_t
+};
+
+static const unsigned char kat1737_entropyin[] = {
+ 0x54, 0x53, 0x3d, 0x5c, 0x00, 0x27, 0x37, 0x17, 0x80, 0x22, 0x41, 0x84,
+ 0xbf, 0x72, 0x72, 0x05, 0xdd, 0x72, 0xb4, 0x0f, 0xb0, 0x9f, 0x49, 0x37,
+};
+static const unsigned char kat1737_nonce[] = {
+ 0x73, 0xe3, 0xf2, 0xaf, 0xe2, 0xc6, 0xf2, 0x11, 0x2a, 0xb9, 0x36, 0xf1,
+ 0x21, 0xff, 0x25, 0xbb,
+};
+static const unsigned char kat1737_persstr[] = {
+ 0xf4, 0x58, 0xa9, 0x55, 0x41, 0x4a, 0xd4, 0x7c, 0xb2, 0xf4, 0x3d, 0xd8,
+ 0xea, 0x2f, 0x4b, 0x1b, 0xcd, 0xf0, 0x9d, 0xa5, 0x3d, 0x07, 0x5e, 0x2b,
+ 0x47, 0xd4, 0xb9, 0xad, 0x93, 0xcd, 0x4e, 0x04,
+};
+static const unsigned char kat1737_entropyinreseed[] = {
+ 0x67, 0xd5, 0xa0, 0x79, 0xc4, 0xe6, 0x8a, 0xd4, 0xc9, 0x57, 0xdd, 0xd4,
+ 0x85, 0xee, 0x58, 0x71, 0x04, 0xc9, 0x24, 0xb1, 0x71, 0x92, 0x4d, 0x44,
+};
+static const unsigned char kat1737_addinreseed[] = {
+ 0x1a, 0xcc, 0x20, 0xb2, 0xeb, 0xeb, 0x2d, 0xcb, 0xdf, 0x6d, 0x3a, 0x0a,
+ 0x32, 0x70, 0x8f, 0x59, 0xe4, 0x3f, 0x66, 0x02, 0x7b, 0x52, 0x5d, 0xa6,
+ 0x10, 0xa3, 0xdd, 0xed, 0x85, 0x52, 0x44, 0x75,
+};
+static const unsigned char kat1737_addin0[] = {
+ 0x88, 0x66, 0x7f, 0x25, 0xd1, 0x9e, 0x4c, 0x99, 0x45, 0x87, 0xc1, 0x92,
+ 0x4e, 0xc6, 0xac, 0x51, 0x97, 0x3b, 0x5a, 0x43, 0x4e, 0x62, 0x36, 0xc8,
+ 0x95, 0xe3, 0xd1, 0xd2, 0x00, 0x52, 0x0a, 0x44,
+};
+static const unsigned char kat1737_addin1[] = {
+ 0x91, 0x52, 0x08, 0x19, 0xc6, 0x44, 0x0b, 0xa4, 0x1e, 0x25, 0xa3, 0x27,
+ 0xce, 0x16, 0x8d, 0xf9, 0xa9, 0x89, 0xc9, 0xfd, 0xc9, 0x5c, 0x3d, 0xb9,
+ 0xa0, 0xf4, 0x96, 0xd6, 0xf4, 0xf3, 0x74, 0xb0,
+};
+static const unsigned char kat1737_retbits[] = {
+ 0x1b, 0x10, 0xc9, 0x51, 0x7b, 0x63, 0x71, 0x0e, 0x0e, 0x48, 0xda, 0xb3,
+ 0x14, 0x6f, 0xed, 0xfe, 0xcb, 0x95, 0xc4, 0xb5, 0xe5, 0xcd, 0x39, 0x37,
+ 0x9a, 0xab, 0x9b, 0x36, 0x02, 0xd8, 0x15, 0x6a, 0x5d, 0xdc, 0xfa, 0xaa,
+ 0xbf, 0x6c, 0xcb, 0xff, 0x1d, 0xd5, 0x91, 0x1e, 0xc8, 0xed, 0x11, 0x3e,
+ 0xc9, 0x34, 0xcf, 0x34, 0x92, 0x1d, 0x5f, 0x6b, 0x73, 0x38, 0x71, 0x27,
+ 0x55, 0x4d, 0x29, 0x88,
+};
+static const struct drbg_kat_pr_false kat1737_t = {
+ 11, kat1737_entropyin, kat1737_nonce, kat1737_persstr,
+ kat1737_entropyinreseed, kat1737_addinreseed, kat1737_addin0,
+ kat1737_addin1, kat1737_retbits
+};
+static const struct drbg_kat kat1737 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1737_t
+};
+
+static const unsigned char kat1738_entropyin[] = {
+ 0xaf, 0x26, 0x03, 0x6d, 0x72, 0xb9, 0xad, 0x05, 0x84, 0xe7, 0x9b, 0x51,
+ 0xdb, 0xab, 0xe2, 0x5e, 0x60, 0x91, 0x4f, 0x3f, 0x48, 0xd9, 0x78, 0xe4,
+};
+static const unsigned char kat1738_nonce[] = {
+ 0x39, 0xeb, 0x3c, 0x0f, 0xd2, 0x0a, 0x00, 0xb7, 0x7e, 0xbd, 0xb0, 0x03,
+ 0x01, 0x80, 0x20, 0xc1,
+};
+static const unsigned char kat1738_persstr[] = {
+ 0x08, 0x1f, 0x45, 0xa7, 0xab, 0x84, 0x51, 0x05, 0x77, 0xaa, 0x11, 0x3d,
+ 0xd7, 0x11, 0xc0, 0xc2, 0x89, 0xc4, 0xfe, 0x4e, 0x66, 0x2b, 0x74, 0x6e,
+ 0xea, 0xbe, 0xd2, 0x68, 0x0a, 0x67, 0x0b, 0x25,
+};
+static const unsigned char kat1738_entropyinreseed[] = {
+ 0xaf, 0x8e, 0x68, 0x99, 0xdd, 0x09, 0x7a, 0x54, 0x9b, 0x56, 0xb9, 0xd2,
+ 0x49, 0xdf, 0xef, 0x8c, 0xdd, 0x39, 0x6e, 0xa6, 0x70, 0xdf, 0x8c, 0x38,
+};
+static const unsigned char kat1738_addinreseed[] = {
+ 0x88, 0xbf, 0x96, 0x9c, 0x1a, 0xe4, 0xba, 0xaa, 0x60, 0xb7, 0x4c, 0xbd,
+ 0x80, 0x4b, 0x79, 0x8b, 0x95, 0x80, 0xd4, 0x5c, 0x10, 0x00, 0x85, 0x10,
+ 0x86, 0x30, 0x1d, 0x41, 0xb6, 0xa9, 0x83, 0x95,
+};
+static const unsigned char kat1738_addin0[] = {
+ 0xdb, 0xf4, 0xcf, 0xae, 0x03, 0x84, 0xda, 0xe7, 0x1a, 0xe5, 0xfb, 0x2b,
+ 0xaa, 0x27, 0xb8, 0x6c, 0x05, 0x29, 0x16, 0xc9, 0x2a, 0x66, 0x2c, 0x32,
+ 0x83, 0x9e, 0x67, 0xb9, 0xfb, 0x13, 0xb2, 0x26,
+};
+static const unsigned char kat1738_addin1[] = {
+ 0x30, 0xb3, 0xf0, 0x73, 0xc9, 0x79, 0x98, 0x2e, 0xc1, 0x9a, 0xba, 0x53,
+ 0x73, 0x19, 0xc3, 0xb7, 0xb8, 0xd8, 0xd6, 0x84, 0xd9, 0x93, 0xa5, 0xc3,
+ 0x8e, 0x72, 0x18, 0xa1, 0x36, 0x92, 0x27, 0x1c,
+};
+static const unsigned char kat1738_retbits[] = {
+ 0xf0, 0x09, 0xbc, 0xb2, 0xb5, 0x2e, 0x30, 0x8b, 0x76, 0x9d, 0xa0, 0x6c,
+ 0x02, 0xaa, 0xb3, 0xf4, 0xf6, 0xe7, 0x76, 0x04, 0xe4, 0xec, 0xfc, 0x9b,
+ 0x50, 0xcd, 0x02, 0xd5, 0xc1, 0xfc, 0x4b, 0x71, 0xd1, 0xfa, 0x5a, 0xa9,
+ 0x52, 0x02, 0x7a, 0x85, 0x6a, 0xf6, 0x14, 0x95, 0x78, 0xf1, 0xd9, 0x09,
+ 0xe3, 0xbc, 0xce, 0xb8, 0xe6, 0xed, 0xcf, 0xfb, 0x61, 0x40, 0xfc, 0x67,
+ 0x8e, 0xd5, 0x45, 0x59,
+};
+static const struct drbg_kat_pr_false kat1738_t = {
+ 12, kat1738_entropyin, kat1738_nonce, kat1738_persstr,
+ kat1738_entropyinreseed, kat1738_addinreseed, kat1738_addin0,
+ kat1738_addin1, kat1738_retbits
+};
+static const struct drbg_kat kat1738 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1738_t
+};
+
+static const unsigned char kat1739_entropyin[] = {
+ 0x8d, 0x92, 0xdd, 0xad, 0xac, 0x44, 0x61, 0xb0, 0xa4, 0x0d, 0xec, 0x1b,
+ 0xea, 0x91, 0xfb, 0x3f, 0x9a, 0x8a, 0x76, 0xec, 0x77, 0x57, 0xb2, 0x72,
+};
+static const unsigned char kat1739_nonce[] = {
+ 0x14, 0x08, 0xc1, 0xe6, 0xba, 0xfc, 0xd0, 0x97, 0x2f, 0x1f, 0x38, 0x1b,
+ 0xa3, 0x1e, 0x15, 0x7d,
+};
+static const unsigned char kat1739_persstr[] = {
+ 0x69, 0xde, 0x45, 0xdc, 0x21, 0xe7, 0x84, 0x9e, 0x37, 0xde, 0xd8, 0x76,
+ 0xbf, 0x5d, 0x89, 0x2d, 0x0f, 0xf5, 0x67, 0x63, 0x8d, 0xca, 0x8f, 0x48,
+ 0x0b, 0x04, 0x95, 0x73, 0xdf, 0xc0, 0x73, 0x4d,
+};
+static const unsigned char kat1739_entropyinreseed[] = {
+ 0x2a, 0xdf, 0x51, 0x61, 0x11, 0xeb, 0x9b, 0xd1, 0x84, 0x48, 0x28, 0x40,
+ 0x70, 0xf2, 0x79, 0x95, 0x68, 0x06, 0xf4, 0xd2, 0xd2, 0xeb, 0xbd, 0xcf,
+};
+static const unsigned char kat1739_addinreseed[] = {
+ 0xcf, 0x77, 0x4b, 0x40, 0x5f, 0x45, 0x02, 0xef, 0x20, 0x74, 0xdb, 0xe5,
+ 0xbc, 0xf8, 0x68, 0x15, 0x28, 0xfe, 0x01, 0x1f, 0x71, 0xb1, 0xcd, 0x41,
+ 0x8a, 0x01, 0xfc, 0xab, 0xd1, 0xc2, 0x7c, 0x04,
+};
+static const unsigned char kat1739_addin0[] = {
+ 0xae, 0xc5, 0x9e, 0xa5, 0x33, 0x96, 0x96, 0xe8, 0xa4, 0x17, 0x3a, 0xa2,
+ 0x39, 0xac, 0xfa, 0xaf, 0x17, 0x42, 0x6a, 0xd1, 0xd8, 0x34, 0x46, 0x0f,
+ 0x84, 0x83, 0xc3, 0x6e, 0x47, 0x76, 0xd6, 0xa6,
+};
+static const unsigned char kat1739_addin1[] = {
+ 0x33, 0x2b, 0x67, 0x83, 0x57, 0xf6, 0xb2, 0x47, 0xac, 0xc1, 0xe3, 0x44,
+ 0x67, 0xec, 0x4d, 0xf7, 0x44, 0xbb, 0xa4, 0x2b, 0x1e, 0x1c, 0xd0, 0x5a,
+ 0x35, 0xd3, 0xac, 0xcd, 0x0e, 0xcc, 0xe9, 0x1f,
+};
+static const unsigned char kat1739_retbits[] = {
+ 0x38, 0x2c, 0xe5, 0xed, 0x5c, 0xf0, 0x2d, 0xd3, 0x85, 0x4f, 0xb9, 0x7b,
+ 0x16, 0x25, 0xf2, 0x3e, 0xa9, 0x97, 0x27, 0x6d, 0x2d, 0x8b, 0x85, 0xc1,
+ 0x05, 0xda, 0x6d, 0x95, 0x8c, 0xcb, 0xf8, 0xd0, 0xc1, 0x22, 0xce, 0x47,
+ 0x97, 0x91, 0x89, 0xcf, 0x7f, 0x96, 0x43, 0x6f, 0x09, 0x89, 0xa2, 0xbe,
+ 0x72, 0x58, 0x98, 0xae, 0x91, 0xdd, 0x96, 0x4d, 0x1b, 0xcd, 0x6a, 0x2e,
+ 0xc6, 0xdb, 0x6b, 0x94,
+};
+static const struct drbg_kat_pr_false kat1739_t = {
+ 13, kat1739_entropyin, kat1739_nonce, kat1739_persstr,
+ kat1739_entropyinreseed, kat1739_addinreseed, kat1739_addin0,
+ kat1739_addin1, kat1739_retbits
+};
+static const struct drbg_kat kat1739 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1739_t
+};
+
+static const unsigned char kat1740_entropyin[] = {
+ 0x22, 0xd0, 0xca, 0x92, 0x65, 0xd8, 0x9c, 0x5b, 0x37, 0x16, 0x52, 0x45,
+ 0x90, 0xbf, 0x2d, 0xec, 0xa5, 0x31, 0xfe, 0x9a, 0xd6, 0xc4, 0xca, 0xdd,
+};
+static const unsigned char kat1740_nonce[] = {
+ 0xed, 0x25, 0xae, 0x62, 0x79, 0xf1, 0xff, 0x44, 0x52, 0xb8, 0x89, 0x71,
+ 0x30, 0x40, 0x79, 0xec,
+};
+static const unsigned char kat1740_persstr[] = {
+ 0xdf, 0xe0, 0x4e, 0xe1, 0x9a, 0x64, 0xaf, 0x7c, 0x06, 0x98, 0xa0, 0x57,
+ 0xb7, 0x68, 0x0f, 0xd3, 0x7a, 0x9f, 0x7b, 0x5a, 0x9e, 0xe3, 0xc9, 0xfb,
+ 0x98, 0x5a, 0x20, 0x73, 0x46, 0xdb, 0xa5, 0x68,
+};
+static const unsigned char kat1740_entropyinreseed[] = {
+ 0x77, 0xed, 0x9f, 0x0a, 0xe1, 0x3d, 0x23, 0x7c, 0xf3, 0x93, 0x13, 0x43,
+ 0xaf, 0x6f, 0xdc, 0x34, 0xeb, 0x3a, 0xa8, 0x47, 0x74, 0xb4, 0x04, 0xef,
+};
+static const unsigned char kat1740_addinreseed[] = {
+ 0x7e, 0x87, 0xdb, 0x1a, 0x9c, 0xd8, 0x19, 0x14, 0xe4, 0x39, 0x49, 0xa7,
+ 0xa9, 0xdb, 0xa1, 0x67, 0xab, 0x01, 0x2d, 0x35, 0x55, 0x7f, 0x7d, 0x90,
+ 0x01, 0xd4, 0xec, 0xe3, 0x53, 0xc7, 0x90, 0x75,
+};
+static const unsigned char kat1740_addin0[] = {
+ 0x23, 0x96, 0x2b, 0x88, 0x7c, 0x19, 0x6b, 0x7d, 0x0d, 0x62, 0xb2, 0xe7,
+ 0x9b, 0x9a, 0xdd, 0xca, 0xa7, 0x4e, 0xe0, 0x4c, 0xf2, 0xa2, 0x8c, 0x45,
+ 0x38, 0x6f, 0x69, 0xa5, 0x6b, 0xb4, 0x76, 0x99,
+};
+static const unsigned char kat1740_addin1[] = {
+ 0xc0, 0x28, 0x2b, 0x47, 0x16, 0x62, 0x73, 0x2c, 0x84, 0x75, 0xc1, 0xd6,
+ 0x30, 0x6e, 0xff, 0xa2, 0xe8, 0xb4, 0xc1, 0xaf, 0xc1, 0x60, 0x54, 0x4d,
+ 0x3c, 0x9b, 0x01, 0x9e, 0x00, 0x71, 0xb1, 0x0e,
+};
+static const unsigned char kat1740_retbits[] = {
+ 0xe7, 0x92, 0x01, 0x75, 0x5a, 0x4c, 0xb6, 0x3a, 0x13, 0x34, 0xcf, 0xaa,
+ 0x53, 0xac, 0x55, 0x32, 0xc2, 0xd4, 0x45, 0x57, 0xfd, 0xa2, 0xa2, 0x2f,
+ 0x71, 0x8d, 0x69, 0xf0, 0xdc, 0xea, 0xfc, 0xe1, 0x81, 0x79, 0x67, 0x8b,
+ 0x30, 0xae, 0x8c, 0x97, 0xea, 0xc2, 0xfc, 0x49, 0x97, 0x90, 0xd2, 0x53,
+ 0x2a, 0xe1, 0xb3, 0xfc, 0x54, 0x01, 0xb0, 0x88, 0xea, 0x1f, 0xa3, 0xa4,
+ 0x9e, 0xab, 0x26, 0x04,
+};
+static const struct drbg_kat_pr_false kat1740_t = {
+ 14, kat1740_entropyin, kat1740_nonce, kat1740_persstr,
+ kat1740_entropyinreseed, kat1740_addinreseed, kat1740_addin0,
+ kat1740_addin1, kat1740_retbits
+};
+static const struct drbg_kat kat1740 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1740_t
+};
+
+static const unsigned char kat1741_entropyin[] = {
+ 0xff, 0x25, 0x66, 0x1b, 0x6b, 0x58, 0x5c, 0x5a, 0x31, 0x21, 0x7a, 0x9b,
+ 0x5c, 0x20, 0xa6, 0xe3, 0x07, 0xf7, 0x0b, 0x12, 0x6f, 0xda, 0x2e, 0x25,
+};
+static const unsigned char kat1741_nonce[] = {
+ 0x1b, 0xe8, 0xf5, 0x1a, 0xfe, 0xbd, 0x48, 0x14, 0x55, 0x41, 0x60, 0x3d,
+ 0xf9, 0x2e, 0x5d, 0x0d,
+};
+static const unsigned char kat1741_persstr[] = {0};
+static const unsigned char kat1741_entropyinreseed[] = {
+ 0x29, 0x85, 0x5d, 0xfe, 0x13, 0x48, 0x00, 0x58, 0x56, 0x2d, 0x33, 0x7e,
+ 0x16, 0xae, 0x0c, 0x87, 0x53, 0xcc, 0x4e, 0xb5, 0x42, 0x0c, 0x88, 0x25,
+};
+static const unsigned char kat1741_addinreseed[] = {0};
+static const unsigned char kat1741_addin0[] = {0};
+static const unsigned char kat1741_addin1[] = {0};
+static const unsigned char kat1741_retbits[] = {
+ 0x86, 0x07, 0xc9, 0xd7, 0x84, 0x54, 0x8f, 0x2f, 0x37, 0xf2, 0x61, 0x6b,
+ 0x24, 0x4e, 0x9f, 0x27, 0xa3, 0x00, 0x92, 0xdf, 0x94, 0x24, 0xc4, 0x7b,
+ 0x34, 0x64, 0x86, 0x2e, 0x67, 0x5f, 0x03, 0xd4, 0xec, 0x6c, 0xd5, 0xff,
+ 0x79, 0xf9, 0xf4, 0xa5, 0xd3, 0x88, 0xa6, 0x03, 0xe7, 0x49, 0x5d, 0x39,
+ 0x47, 0x79, 0x55, 0x46, 0x0a, 0xc2, 0xee, 0x0c, 0x2c, 0xe4, 0xd3, 0xd8,
+ 0x34, 0xef, 0x51, 0x74,
+};
+static const struct drbg_kat_pr_false kat1741_t = {
+ 0, kat1741_entropyin, kat1741_nonce, kat1741_persstr,
+ kat1741_entropyinreseed, kat1741_addinreseed, kat1741_addin0,
+ kat1741_addin1, kat1741_retbits
+};
+static const struct drbg_kat kat1741 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1741_t
+};
+
+static const unsigned char kat1742_entropyin[] = {
+ 0x39, 0xaf, 0x29, 0xf3, 0x92, 0xbc, 0x31, 0x78, 0x98, 0xa6, 0x6a, 0x84,
+ 0xad, 0x84, 0x3b, 0x9e, 0x17, 0x69, 0x87, 0xb0, 0x29, 0xd0, 0x01, 0x2d,
+};
+static const unsigned char kat1742_nonce[] = {
+ 0xef, 0xa6, 0x22, 0xec, 0xfe, 0xcc, 0x7b, 0x52, 0x93, 0x76, 0x8b, 0x48,
+ 0xdb, 0xf3, 0xe5, 0xa7,
+};
+static const unsigned char kat1742_persstr[] = {0};
+static const unsigned char kat1742_entropyinreseed[] = {
+ 0xb6, 0x66, 0x30, 0x6e, 0x4f, 0x02, 0xf4, 0xcd, 0x45, 0x5c, 0x3a, 0x79,
+ 0x94, 0x38, 0x73, 0x36, 0x77, 0xc5, 0x96, 0x5f, 0x48, 0x2e, 0x32, 0x5a,
+};
+static const unsigned char kat1742_addinreseed[] = {0};
+static const unsigned char kat1742_addin0[] = {0};
+static const unsigned char kat1742_addin1[] = {0};
+static const unsigned char kat1742_retbits[] = {
+ 0xb7, 0x36, 0xc6, 0xba, 0x43, 0x0b, 0x05, 0x1f, 0xa2, 0x09, 0x6e, 0xe7,
+ 0xf0, 0x77, 0xb0, 0xce, 0xda, 0x0b, 0x40, 0xd4, 0xf3, 0x97, 0xb4, 0xdd,
+ 0x55, 0x9c, 0x29, 0x4a, 0x73, 0x00, 0x3d, 0xf3, 0x80, 0xb2, 0x66, 0xd2,
+ 0xbb, 0xa4, 0xeb, 0x94, 0xac, 0xc6, 0x2f, 0x45, 0x98, 0x71, 0x26, 0xf7,
+ 0x78, 0xc9, 0x4c, 0x02, 0x08, 0xa3, 0x30, 0xed, 0xc8, 0xbf, 0xa3, 0xae,
+ 0xc7, 0xdd, 0x86, 0x6d,
+};
+static const struct drbg_kat_pr_false kat1742_t = {
+ 1, kat1742_entropyin, kat1742_nonce, kat1742_persstr,
+ kat1742_entropyinreseed, kat1742_addinreseed, kat1742_addin0,
+ kat1742_addin1, kat1742_retbits
+};
+static const struct drbg_kat kat1742 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1742_t
+};
+
+static const unsigned char kat1743_entropyin[] = {
+ 0x34, 0x30, 0xbe, 0x27, 0x58, 0x37, 0x10, 0x61, 0x88, 0x22, 0xa1, 0xd8,
+ 0xb4, 0xa0, 0xfd, 0xfe, 0xab, 0xc1, 0x2f, 0x8d, 0x2f, 0x70, 0x23, 0x87,
+};
+static const unsigned char kat1743_nonce[] = {
+ 0xc2, 0xbd, 0xf8, 0x75, 0x47, 0xfe, 0x9c, 0xd7, 0xca, 0xd2, 0x3b, 0xc1,
+ 0xf6, 0x30, 0x49, 0xbd,
+};
+static const unsigned char kat1743_persstr[] = {0};
+static const unsigned char kat1743_entropyinreseed[] = {
+ 0x53, 0xe2, 0xec, 0x40, 0xc0, 0x31, 0xd8, 0x60, 0xb7, 0x7a, 0x00, 0xc8,
+ 0x6d, 0x1b, 0x65, 0x90, 0xa4, 0xbd, 0x02, 0xf7, 0xb2, 0x7b, 0x1e, 0xf1,
+};
+static const unsigned char kat1743_addinreseed[] = {0};
+static const unsigned char kat1743_addin0[] = {0};
+static const unsigned char kat1743_addin1[] = {0};
+static const unsigned char kat1743_retbits[] = {
+ 0xed, 0xf1, 0xb1, 0xb6, 0x48, 0x90, 0x7a, 0xbe, 0x36, 0xe5, 0x05, 0x8f,
+ 0xff, 0x3f, 0xf7, 0xaa, 0x66, 0x82, 0xe0, 0x1d, 0x05, 0x81, 0x56, 0x17,
+ 0x47, 0x2c, 0xc5, 0x0f, 0xcf, 0x17, 0xc3, 0xeb, 0xe0, 0xc7, 0x9c, 0x03,
+ 0x00, 0x49, 0x9e, 0x88, 0x1d, 0x10, 0x67, 0x39, 0xe6, 0xe4, 0xd6, 0xf4,
+ 0x02, 0x21, 0xa7, 0x7a, 0x24, 0x2d, 0xcd, 0xe2, 0x96, 0x87, 0xa2, 0xda,
+ 0x7e, 0x18, 0x12, 0x09,
+};
+static const struct drbg_kat_pr_false kat1743_t = {
+ 2, kat1743_entropyin, kat1743_nonce, kat1743_persstr,
+ kat1743_entropyinreseed, kat1743_addinreseed, kat1743_addin0,
+ kat1743_addin1, kat1743_retbits
+};
+static const struct drbg_kat kat1743 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1743_t
+};
+
+static const unsigned char kat1744_entropyin[] = {
+ 0x27, 0xf1, 0xd6, 0xe2, 0xcf, 0x04, 0xbd, 0x6e, 0x97, 0xf1, 0xac, 0x02,
+ 0x8a, 0x7f, 0x07, 0x68, 0x7f, 0xe8, 0xa0, 0x17, 0x44, 0x78, 0x02, 0xdc,
+};
+static const unsigned char kat1744_nonce[] = {
+ 0xb3, 0xc4, 0x9d, 0x63, 0x52, 0x84, 0x8c, 0x4f, 0x72, 0xd7, 0xf8, 0x2e,
+ 0x5c, 0x35, 0x72, 0xdd,
+};
+static const unsigned char kat1744_persstr[] = {0};
+static const unsigned char kat1744_entropyinreseed[] = {
+ 0xdf, 0xb1, 0x3a, 0x14, 0x26, 0xbd, 0x48, 0xde, 0xfc, 0xfa, 0x7a, 0x91,
+ 0xe1, 0x34, 0x67, 0xee, 0xb2, 0x43, 0x07, 0x5c, 0x23, 0xa6, 0xa4, 0x19,
+};
+static const unsigned char kat1744_addinreseed[] = {0};
+static const unsigned char kat1744_addin0[] = {0};
+static const unsigned char kat1744_addin1[] = {0};
+static const unsigned char kat1744_retbits[] = {
+ 0x7d, 0x90, 0x4e, 0x4c, 0xe2, 0x9e, 0xda, 0x57, 0x0c, 0x4c, 0xa2, 0x7a,
+ 0xf3, 0x82, 0x35, 0xaf, 0x66, 0x6a, 0x25, 0x1a, 0x45, 0x18, 0xf0, 0x64,
+ 0x96, 0x3d, 0x8c, 0x36, 0x41, 0x80, 0x6e, 0x5e, 0x7d, 0x96, 0x3d, 0x1f,
+ 0x32, 0x09, 0x0b, 0x8a, 0xe8, 0x69, 0x91, 0x82, 0xb9, 0xec, 0xd6, 0x25,
+ 0xec, 0x61, 0xe0, 0x9c, 0x47, 0x08, 0x34, 0x88, 0xea, 0xb7, 0x56, 0x56,
+ 0xc2, 0xbe, 0xe4, 0xcf,
+};
+static const struct drbg_kat_pr_false kat1744_t = {
+ 3, kat1744_entropyin, kat1744_nonce, kat1744_persstr,
+ kat1744_entropyinreseed, kat1744_addinreseed, kat1744_addin0,
+ kat1744_addin1, kat1744_retbits
+};
+static const struct drbg_kat kat1744 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1744_t
+};
+
+static const unsigned char kat1745_entropyin[] = {
+ 0xdf, 0x28, 0xa9, 0x33, 0x1b, 0x88, 0x99, 0x13, 0x65, 0x7c, 0x59, 0xf9,
+ 0x54, 0x6c, 0xb6, 0xe3, 0x33, 0x93, 0xea, 0x65, 0x85, 0x84, 0x32, 0xb1,
+};
+static const unsigned char kat1745_nonce[] = {
+ 0xd6, 0xd8, 0x58, 0x3b, 0xb7, 0xef, 0x49, 0x5a, 0x5b, 0x10, 0x87, 0x30,
+ 0xaf, 0x2c, 0xf1, 0x4b,
+};
+static const unsigned char kat1745_persstr[] = {0};
+static const unsigned char kat1745_entropyinreseed[] = {
+ 0x7b, 0x14, 0x4e, 0x63, 0x8d, 0xe5, 0x3a, 0x66, 0x18, 0x17, 0xc2, 0x95,
+ 0x61, 0x9e, 0xa0, 0xe0, 0x8f, 0x2b, 0xcf, 0x3f, 0xe1, 0xc7, 0x82, 0x90,
+};
+static const unsigned char kat1745_addinreseed[] = {0};
+static const unsigned char kat1745_addin0[] = {0};
+static const unsigned char kat1745_addin1[] = {0};
+static const unsigned char kat1745_retbits[] = {
+ 0xea, 0x76, 0x0a, 0xb5, 0xda, 0x81, 0x1a, 0x6b, 0x1a, 0x17, 0x9c, 0xcf,
+ 0x53, 0x19, 0x02, 0xe1, 0x5f, 0xba, 0x08, 0x01, 0x4f, 0xf9, 0x4d, 0x19,
+ 0x9a, 0x1c, 0xd8, 0xb7, 0x52, 0x74, 0x87, 0xe4, 0x3c, 0x36, 0xf6, 0x87,
+ 0x4c, 0xe3, 0x52, 0x11, 0xe6, 0xd7, 0x19, 0xfa, 0xbf, 0x8c, 0x0a, 0x05,
+ 0xd4, 0xf3, 0x78, 0x2e, 0x78, 0xf9, 0xf8, 0xe8, 0x91, 0x31, 0xfe, 0x9f,
+ 0x39, 0x21, 0xc8, 0xea,
+};
+static const struct drbg_kat_pr_false kat1745_t = {
+ 4, kat1745_entropyin, kat1745_nonce, kat1745_persstr,
+ kat1745_entropyinreseed, kat1745_addinreseed, kat1745_addin0,
+ kat1745_addin1, kat1745_retbits
+};
+static const struct drbg_kat kat1745 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1745_t
+};
+
+static const unsigned char kat1746_entropyin[] = {
+ 0x3c, 0xa7, 0x8a, 0xbb, 0x93, 0x47, 0xfd, 0xf8, 0x76, 0xd2, 0x98, 0xa3,
+ 0x7d, 0xe1, 0xba, 0xf0, 0x67, 0x9f, 0x9e, 0x9e, 0xd6, 0x91, 0xdd, 0x63,
+};
+static const unsigned char kat1746_nonce[] = {
+ 0xc5, 0xb3, 0x57, 0xe7, 0xf2, 0x77, 0xe4, 0x4b, 0x2a, 0xa5, 0x2c, 0x6b,
+ 0xe5, 0xef, 0x12, 0xed,
+};
+static const unsigned char kat1746_persstr[] = {0};
+static const unsigned char kat1746_entropyinreseed[] = {
+ 0x96, 0x8f, 0x83, 0x03, 0x0b, 0x80, 0x50, 0x37, 0xd2, 0xbd, 0x5d, 0xb9,
+ 0xea, 0xee, 0xbb, 0x5c, 0x5b, 0xb4, 0x65, 0x0b, 0x21, 0xaf, 0xec, 0x1f,
+};
+static const unsigned char kat1746_addinreseed[] = {0};
+static const unsigned char kat1746_addin0[] = {0};
+static const unsigned char kat1746_addin1[] = {0};
+static const unsigned char kat1746_retbits[] = {
+ 0xd2, 0xa0, 0x32, 0xf7, 0x7b, 0x57, 0xd7, 0x44, 0x06, 0x76, 0x67, 0xcf,
+ 0xf1, 0x88, 0x40, 0xd0, 0x34, 0xe2, 0x73, 0x81, 0x94, 0x3e, 0xf1, 0x41,
+ 0xfb, 0x94, 0x7f, 0x34, 0x07, 0x67, 0x50, 0xb9, 0xe9, 0x0c, 0x2c, 0x03,
+ 0x3e, 0xaa, 0x9d, 0xe7, 0x8e, 0x48, 0xfd, 0xb1, 0x92, 0x6e, 0x31, 0x24,
+ 0xc2, 0x10, 0x78, 0xfc, 0xcc, 0x44, 0xe3, 0x50, 0x98, 0xb4, 0x89, 0x47,
+ 0x75, 0x22, 0x67, 0x1e,
+};
+static const struct drbg_kat_pr_false kat1746_t = {
+ 5, kat1746_entropyin, kat1746_nonce, kat1746_persstr,
+ kat1746_entropyinreseed, kat1746_addinreseed, kat1746_addin0,
+ kat1746_addin1, kat1746_retbits
+};
+static const struct drbg_kat kat1746 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1746_t
+};
+
+static const unsigned char kat1747_entropyin[] = {
+ 0x89, 0x1c, 0xd4, 0x4b, 0x24, 0x6f, 0x6c, 0xc4, 0x79, 0x01, 0x92, 0x7a,
+ 0x01, 0x74, 0xe2, 0x25, 0x07, 0x89, 0x93, 0xb5, 0xb6, 0x4d, 0x89, 0x72,
+};
+static const unsigned char kat1747_nonce[] = {
+ 0xfb, 0x4f, 0x2e, 0xb7, 0x3c, 0x30, 0x3a, 0xa6, 0xe3, 0xd6, 0x12, 0xa9,
+ 0x1f, 0x25, 0x19, 0x30,
+};
+static const unsigned char kat1747_persstr[] = {0};
+static const unsigned char kat1747_entropyinreseed[] = {
+ 0x5e, 0xf1, 0x97, 0x23, 0x73, 0xeb, 0xdb, 0x4c, 0x7b, 0x41, 0x4c, 0x69,
+ 0x84, 0x5a, 0x8e, 0xad, 0xa0, 0x73, 0x4e, 0xa4, 0x6f, 0xa1, 0xd0, 0x12,
+};
+static const unsigned char kat1747_addinreseed[] = {0};
+static const unsigned char kat1747_addin0[] = {0};
+static const unsigned char kat1747_addin1[] = {0};
+static const unsigned char kat1747_retbits[] = {
+ 0x59, 0xe6, 0xf2, 0xe4, 0x16, 0xe0, 0xfa, 0x43, 0xb6, 0x5f, 0xec, 0x2b,
+ 0xec, 0x3d, 0x51, 0x1d, 0x97, 0xe0, 0xb0, 0xd5, 0x37, 0xeb, 0xf8, 0x40,
+ 0x57, 0xba, 0xca, 0x29, 0x50, 0x44, 0x9b, 0xe1, 0x25, 0x3f, 0x58, 0x4d,
+ 0x57, 0x54, 0x03, 0xfb, 0x17, 0x20, 0x33, 0x01, 0x8e, 0xfc, 0xc0, 0x94,
+ 0xe4, 0x3d, 0xb9, 0x98, 0x40, 0x88, 0x1d, 0x94, 0x4b, 0x45, 0x0a, 0xfc,
+ 0x6b, 0x9e, 0x99, 0xc3,
+};
+static const struct drbg_kat_pr_false kat1747_t = {
+ 6, kat1747_entropyin, kat1747_nonce, kat1747_persstr,
+ kat1747_entropyinreseed, kat1747_addinreseed, kat1747_addin0,
+ kat1747_addin1, kat1747_retbits
+};
+static const struct drbg_kat kat1747 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1747_t
+};
+
+static const unsigned char kat1748_entropyin[] = {
+ 0x55, 0x70, 0x9e, 0xf0, 0x14, 0x8e, 0x66, 0xa6, 0x05, 0xe4, 0x3e, 0x76,
+ 0xcc, 0xd1, 0xaa, 0x9c, 0xe1, 0x67, 0xe2, 0x53, 0x85, 0x71, 0x6c, 0xc4,
+};
+static const unsigned char kat1748_nonce[] = {
+ 0x6c, 0xc4, 0x71, 0x1a, 0xc1, 0x43, 0xaa, 0xc7, 0x36, 0x3b, 0x9f, 0x5f,
+ 0xe1, 0x16, 0xd5, 0x50,
+};
+static const unsigned char kat1748_persstr[] = {0};
+static const unsigned char kat1748_entropyinreseed[] = {
+ 0xb1, 0x78, 0xff, 0x73, 0x2e, 0x79, 0x45, 0x9d, 0xb5, 0x12, 0x86, 0x3f,
+ 0x65, 0x48, 0x7d, 0x08, 0xe0, 0x18, 0x5c, 0x3e, 0x82, 0x5f, 0x74, 0x96,
+};
+static const unsigned char kat1748_addinreseed[] = {0};
+static const unsigned char kat1748_addin0[] = {0};
+static const unsigned char kat1748_addin1[] = {0};
+static const unsigned char kat1748_retbits[] = {
+ 0x0d, 0x27, 0xa3, 0x9e, 0x96, 0x10, 0x57, 0xfc, 0x03, 0x03, 0x81, 0x8c,
+ 0x80, 0x05, 0x87, 0x25, 0x4c, 0xc4, 0xa7, 0xd7, 0xda, 0x33, 0xf2, 0x16,
+ 0xa1, 0xb2, 0x80, 0x4a, 0x27, 0x85, 0xd7, 0x22, 0xae, 0xde, 0xf0, 0xe1,
+ 0x6c, 0x02, 0x97, 0x30, 0x07, 0x38, 0x3c, 0xb7, 0x57, 0x4c, 0x64, 0xed,
+ 0x1f, 0x8c, 0x52, 0x8c, 0xc8, 0xb0, 0xbd, 0xde, 0xef, 0x77, 0x07, 0xcd,
+ 0xab, 0x7b, 0x7e, 0xa6,
+};
+static const struct drbg_kat_pr_false kat1748_t = {
+ 7, kat1748_entropyin, kat1748_nonce, kat1748_persstr,
+ kat1748_entropyinreseed, kat1748_addinreseed, kat1748_addin0,
+ kat1748_addin1, kat1748_retbits
+};
+static const struct drbg_kat kat1748 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1748_t
+};
+
+static const unsigned char kat1749_entropyin[] = {
+ 0xf9, 0x7b, 0x44, 0x2e, 0xf4, 0x89, 0xf8, 0x22, 0x00, 0x46, 0x97, 0xce,
+ 0xad, 0xac, 0xfc, 0x24, 0x0e, 0x53, 0x3d, 0xb4, 0x3c, 0xc9, 0xd2, 0x1a,
+};
+static const unsigned char kat1749_nonce[] = {
+ 0xee, 0xcf, 0x1b, 0x9a, 0x52, 0xc3, 0x70, 0xf0, 0xfc, 0xd6, 0x4b, 0x5d,
+ 0x2d, 0x7b, 0x05, 0x3c,
+};
+static const unsigned char kat1749_persstr[] = {0};
+static const unsigned char kat1749_entropyinreseed[] = {
+ 0xe9, 0x7b, 0x26, 0x17, 0xe8, 0x7c, 0x6a, 0xb9, 0x3f, 0xfb, 0x9f, 0xf0,
+ 0x64, 0x08, 0xe4, 0x44, 0x45, 0x2e, 0x06, 0xd0, 0x1d, 0xbd, 0x99, 0x49,
+};
+static const unsigned char kat1749_addinreseed[] = {0};
+static const unsigned char kat1749_addin0[] = {0};
+static const unsigned char kat1749_addin1[] = {0};
+static const unsigned char kat1749_retbits[] = {
+ 0x2f, 0x82, 0xdf, 0xf5, 0x43, 0x24, 0x19, 0x5a, 0xe3, 0x9e, 0x92, 0x63,
+ 0x0a, 0xf5, 0x41, 0xb3, 0x9e, 0xbb, 0xee, 0xa0, 0xad, 0xab, 0x96, 0x7f,
+ 0xe5, 0x15, 0x97, 0xc8, 0x49, 0x6c, 0xd6, 0x63, 0x7e, 0xf7, 0x48, 0x36,
+ 0xb7, 0xa9, 0x2d, 0x9c, 0x7f, 0x69, 0x93, 0x46, 0xa8, 0xb4, 0xa8, 0x90,
+ 0x78, 0x70, 0x40, 0x9f, 0xa5, 0xa2, 0xa3, 0x9b, 0xf1, 0x71, 0xb8, 0xd7,
+ 0xe5, 0x80, 0x6c, 0x9a,
+};
+static const struct drbg_kat_pr_false kat1749_t = {
+ 8, kat1749_entropyin, kat1749_nonce, kat1749_persstr,
+ kat1749_entropyinreseed, kat1749_addinreseed, kat1749_addin0,
+ kat1749_addin1, kat1749_retbits
+};
+static const struct drbg_kat kat1749 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1749_t
+};
+
+static const unsigned char kat1750_entropyin[] = {
+ 0xc5, 0xd2, 0xd8, 0x36, 0xc3, 0x75, 0x63, 0x38, 0x19, 0x23, 0x1b, 0xf9,
+ 0x1f, 0x50, 0xf8, 0xb7, 0x49, 0x8c, 0x7d, 0xad, 0x84, 0x84, 0x73, 0xe1,
+};
+static const unsigned char kat1750_nonce[] = {
+ 0x45, 0x25, 0x02, 0x5b, 0x4e, 0x84, 0x8f, 0x81, 0xf4, 0xd4, 0xc6, 0x7b,
+ 0x5f, 0xe2, 0x2b, 0x67,
+};
+static const unsigned char kat1750_persstr[] = {0};
+static const unsigned char kat1750_entropyinreseed[] = {
+ 0xe9, 0xf7, 0xd8, 0xd3, 0x54, 0xcb, 0xa1, 0x69, 0x1c, 0x40, 0xeb, 0xce,
+ 0x00, 0xa2, 0xdd, 0x73, 0xc4, 0x56, 0x9d, 0x79, 0x3e, 0x83, 0x8a, 0x23,
+};
+static const unsigned char kat1750_addinreseed[] = {0};
+static const unsigned char kat1750_addin0[] = {0};
+static const unsigned char kat1750_addin1[] = {0};
+static const unsigned char kat1750_retbits[] = {
+ 0x3a, 0xe7, 0xa6, 0xd7, 0x67, 0x87, 0xab, 0xd4, 0x70, 0xd2, 0xa9, 0x58,
+ 0x65, 0x49, 0xfe, 0x08, 0x15, 0xda, 0x69, 0x04, 0x02, 0xc8, 0x3d, 0x4d,
+ 0x74, 0x57, 0xa0, 0x2c, 0x1d, 0x79, 0x5c, 0x61, 0xc9, 0x42, 0xdf, 0x12,
+ 0x8c, 0xa7, 0xc2, 0xfd, 0x2c, 0x05, 0x89, 0xf9, 0xa0, 0xc9, 0xc0, 0x8b,
+ 0x24, 0x75, 0x79, 0xdd, 0xf2, 0x65, 0xaf, 0x06, 0xaf, 0xfa, 0x9f, 0x04,
+ 0x41, 0xf6, 0x97, 0x71,
+};
+static const struct drbg_kat_pr_false kat1750_t = {
+ 9, kat1750_entropyin, kat1750_nonce, kat1750_persstr,
+ kat1750_entropyinreseed, kat1750_addinreseed, kat1750_addin0,
+ kat1750_addin1, kat1750_retbits
+};
+static const struct drbg_kat kat1750 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1750_t
+};
+
+static const unsigned char kat1751_entropyin[] = {
+ 0x93, 0xdf, 0xc0, 0x25, 0xa3, 0xa8, 0x39, 0xa7, 0x7d, 0x63, 0xfd, 0xe8,
+ 0x0c, 0x3d, 0xd2, 0x8d, 0x82, 0xd0, 0xd2, 0x99, 0x9d, 0x19, 0xd0, 0x4c,
+};
+static const unsigned char kat1751_nonce[] = {
+ 0x97, 0xbe, 0xba, 0xb3, 0x68, 0x46, 0x53, 0x6f, 0x60, 0xd3, 0x15, 0xfe,
+ 0x88, 0x43, 0x47, 0xec,
+};
+static const unsigned char kat1751_persstr[] = {0};
+static const unsigned char kat1751_entropyinreseed[] = {
+ 0xb4, 0x15, 0xc7, 0x0c, 0x93, 0xed, 0x68, 0x96, 0x4c, 0x9f, 0x15, 0x22,
+ 0x70, 0x42, 0x3c, 0xb3, 0x82, 0x00, 0x7a, 0x5b, 0xa8, 0x88, 0x27, 0xa2,
+};
+static const unsigned char kat1751_addinreseed[] = {0};
+static const unsigned char kat1751_addin0[] = {0};
+static const unsigned char kat1751_addin1[] = {0};
+static const unsigned char kat1751_retbits[] = {
+ 0x5a, 0xa7, 0x02, 0x88, 0xc8, 0x48, 0xe1, 0xc2, 0xba, 0x05, 0x8d, 0x54,
+ 0x5e, 0x97, 0xfd, 0x91, 0x02, 0xfa, 0xd2, 0x5f, 0xb6, 0x09, 0xda, 0x1e,
+ 0x30, 0x1c, 0x25, 0x2e, 0x4f, 0xf0, 0xa7, 0xeb, 0x53, 0x7f, 0x3c, 0x41,
+ 0x1f, 0xd0, 0x48, 0x56, 0x67, 0x64, 0xba, 0xb6, 0x17, 0x06, 0x04, 0x65,
+ 0xbc, 0x6c, 0x3a, 0x2c, 0xe0, 0x67, 0x0e, 0x68, 0x92, 0x6c, 0xcb, 0xf4,
+ 0xe9, 0x8d, 0x91, 0x40,
+};
+static const struct drbg_kat_pr_false kat1751_t = {
+ 10, kat1751_entropyin, kat1751_nonce, kat1751_persstr,
+ kat1751_entropyinreseed, kat1751_addinreseed, kat1751_addin0,
+ kat1751_addin1, kat1751_retbits
+};
+static const struct drbg_kat kat1751 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1751_t
+};
+
+static const unsigned char kat1752_entropyin[] = {
+ 0x94, 0x63, 0xfc, 0x03, 0xc1, 0x7b, 0xdb, 0x56, 0x6f, 0x14, 0x08, 0xcf,
+ 0x6d, 0x05, 0x26, 0x69, 0x81, 0x6f, 0xd7, 0x9d, 0x4c, 0x55, 0x02, 0x86,
+};
+static const unsigned char kat1752_nonce[] = {
+ 0x31, 0x42, 0xc0, 0x30, 0xd3, 0x3f, 0x46, 0x51, 0x54, 0x8c, 0x56, 0x9b,
+ 0x64, 0xfb, 0x2d, 0x45,
+};
+static const unsigned char kat1752_persstr[] = {0};
+static const unsigned char kat1752_entropyinreseed[] = {
+ 0x6e, 0x6d, 0x9a, 0x71, 0x67, 0xfd, 0xab, 0x95, 0x92, 0x1d, 0x78, 0xfe,
+ 0x19, 0x7d, 0x06, 0x5c, 0xe7, 0xbd, 0x16, 0x89, 0x75, 0x47, 0x3c, 0x54,
+};
+static const unsigned char kat1752_addinreseed[] = {0};
+static const unsigned char kat1752_addin0[] = {0};
+static const unsigned char kat1752_addin1[] = {0};
+static const unsigned char kat1752_retbits[] = {
+ 0xd1, 0x82, 0xbf, 0x85, 0xd9, 0x48, 0xb2, 0xc8, 0xb0, 0x5c, 0xd2, 0xa9,
+ 0x8b, 0x2c, 0x7b, 0xaf, 0x46, 0x18, 0xc1, 0x23, 0x87, 0xb4, 0x1d, 0x72,
+ 0xba, 0xbb, 0xc9, 0xf9, 0x2b, 0x9f, 0xe3, 0xe4, 0xba, 0x65, 0x52, 0x25,
+ 0x25, 0x74, 0xc4, 0x04, 0x59, 0xbf, 0xe7, 0x4d, 0x9e, 0x79, 0x0b, 0x29,
+ 0x49, 0x11, 0xca, 0x07, 0x77, 0xd2, 0xd2, 0xc4, 0xd5, 0x49, 0x29, 0x70,
+ 0x06, 0x99, 0xea, 0x0c,
+};
+static const struct drbg_kat_pr_false kat1752_t = {
+ 11, kat1752_entropyin, kat1752_nonce, kat1752_persstr,
+ kat1752_entropyinreseed, kat1752_addinreseed, kat1752_addin0,
+ kat1752_addin1, kat1752_retbits
+};
+static const struct drbg_kat kat1752 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1752_t
+};
+
+static const unsigned char kat1753_entropyin[] = {
+ 0xcc, 0xc5, 0xce, 0xf1, 0xe1, 0x77, 0x48, 0x07, 0xb2, 0x08, 0x8e, 0xa2,
+ 0x48, 0x69, 0x13, 0x61, 0xb5, 0x60, 0x38, 0x06, 0xce, 0x61, 0x31, 0x09,
+};
+static const unsigned char kat1753_nonce[] = {
+ 0x02, 0x56, 0xaf, 0x44, 0x54, 0x65, 0xdd, 0x03, 0x75, 0x6c, 0x30, 0x01,
+ 0x44, 0x7e, 0xea, 0x4f,
+};
+static const unsigned char kat1753_persstr[] = {0};
+static const unsigned char kat1753_entropyinreseed[] = {
+ 0xb6, 0xbb, 0xa4, 0x17, 0xab, 0x2c, 0x32, 0xae, 0x81, 0x21, 0xc9, 0xb0,
+ 0xaf, 0x77, 0x24, 0xee, 0xab, 0x15, 0xb7, 0x06, 0x4d, 0x9e, 0xfa, 0x91,
+};
+static const unsigned char kat1753_addinreseed[] = {0};
+static const unsigned char kat1753_addin0[] = {0};
+static const unsigned char kat1753_addin1[] = {0};
+static const unsigned char kat1753_retbits[] = {
+ 0xdb, 0xdf, 0x75, 0x5f, 0x7a, 0x3f, 0x7e, 0x8a, 0xe1, 0x0d, 0xa9, 0x95,
+ 0x7f, 0xd6, 0xf0, 0x68, 0xb2, 0x4d, 0x2b, 0x25, 0x38, 0x18, 0xb8, 0xfd,
+ 0x11, 0x70, 0xfe, 0x17, 0xc6, 0xeb, 0x98, 0x11, 0x2d, 0x56, 0x39, 0x45,
+ 0x59, 0xf5, 0x07, 0x53, 0x76, 0x1b, 0x48, 0x60, 0x49, 0x32, 0x64, 0x64,
+ 0x6c, 0x51, 0x7a, 0xbc, 0xf5, 0xc8, 0x6a, 0x29, 0xcd, 0x1a, 0xcd, 0x6d,
+ 0x14, 0x51, 0xe3, 0x94,
+};
+static const struct drbg_kat_pr_false kat1753_t = {
+ 12, kat1753_entropyin, kat1753_nonce, kat1753_persstr,
+ kat1753_entropyinreseed, kat1753_addinreseed, kat1753_addin0,
+ kat1753_addin1, kat1753_retbits
+};
+static const struct drbg_kat kat1753 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1753_t
+};
+
+static const unsigned char kat1754_entropyin[] = {
+ 0x95, 0xb7, 0xc2, 0x78, 0x07, 0x11, 0x6c, 0xbb, 0x6a, 0xd8, 0xb6, 0x9c,
+ 0x88, 0x95, 0xef, 0x11, 0x5b, 0xf5, 0x65, 0x87, 0xd8, 0xc0, 0x0f, 0x6a,
+};
+static const unsigned char kat1754_nonce[] = {
+ 0xc9, 0x47, 0x78, 0x41, 0x14, 0xf6, 0xf5, 0xba, 0x96, 0x52, 0x86, 0xfd,
+ 0x9b, 0x31, 0xf3, 0xc7,
+};
+static const unsigned char kat1754_persstr[] = {0};
+static const unsigned char kat1754_entropyinreseed[] = {
+ 0xf3, 0x36, 0xb1, 0xab, 0x1a, 0x4f, 0xeb, 0xac, 0x39, 0xeb, 0xce, 0xb2,
+ 0xed, 0x91, 0x9a, 0x81, 0xb4, 0x38, 0x8b, 0x13, 0xae, 0x77, 0x72, 0x42,
+};
+static const unsigned char kat1754_addinreseed[] = {0};
+static const unsigned char kat1754_addin0[] = {0};
+static const unsigned char kat1754_addin1[] = {0};
+static const unsigned char kat1754_retbits[] = {
+ 0xbb, 0xd7, 0x09, 0x42, 0xbb, 0x27, 0x72, 0xa1, 0xc0, 0x09, 0x7b, 0xc5,
+ 0xcc, 0xe0, 0x1b, 0xfb, 0x64, 0xdc, 0x27, 0xcc, 0x20, 0x03, 0x7f, 0x85,
+ 0x9e, 0x23, 0xa6, 0xc7, 0x85, 0x75, 0xaa, 0xe4, 0xe2, 0xed, 0xa3, 0x8c,
+ 0x64, 0x59, 0x9a, 0x40, 0xe7, 0x06, 0xee, 0x0c, 0x11, 0x9f, 0xc1, 0xeb,
+ 0x0e, 0x13, 0x9e, 0xd1, 0xa0, 0x2f, 0x0d, 0xa9, 0xd7, 0xcf, 0x7b, 0x84,
+ 0xcc, 0x7e, 0x69, 0x34,
+};
+static const struct drbg_kat_pr_false kat1754_t = {
+ 13, kat1754_entropyin, kat1754_nonce, kat1754_persstr,
+ kat1754_entropyinreseed, kat1754_addinreseed, kat1754_addin0,
+ kat1754_addin1, kat1754_retbits
+};
+static const struct drbg_kat kat1754 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1754_t
+};
+
+static const unsigned char kat1755_entropyin[] = {
+ 0x77, 0x0b, 0x80, 0xe1, 0x5a, 0x3e, 0xee, 0x89, 0xf7, 0x56, 0x08, 0xa7,
+ 0x80, 0x93, 0x4b, 0x15, 0x9d, 0xe6, 0xad, 0x3f, 0x5d, 0x78, 0xb6, 0xdf,
+};
+static const unsigned char kat1755_nonce[] = {
+ 0xd7, 0x41, 0x92, 0xd5, 0x0f, 0x0f, 0x73, 0x90, 0x94, 0x80, 0x89, 0x87,
+ 0xed, 0x94, 0xd3, 0x82,
+};
+static const unsigned char kat1755_persstr[] = {0};
+static const unsigned char kat1755_entropyinreseed[] = {
+ 0xdd, 0x3e, 0x0a, 0xe9, 0x4d, 0xe7, 0x39, 0x52, 0x66, 0x5c, 0xd7, 0x5c,
+ 0x72, 0x94, 0x04, 0x32, 0x90, 0x98, 0xd6, 0x10, 0x94, 0x0a, 0x9a, 0x40,
+};
+static const unsigned char kat1755_addinreseed[] = {0};
+static const unsigned char kat1755_addin0[] = {0};
+static const unsigned char kat1755_addin1[] = {0};
+static const unsigned char kat1755_retbits[] = {
+ 0x11, 0x1c, 0x15, 0x75, 0xc8, 0xee, 0xc3, 0x7a, 0x42, 0x72, 0xf5, 0x9e,
+ 0x83, 0x9b, 0x6d, 0x6d, 0xa2, 0x48, 0x86, 0xa8, 0x2f, 0x1d, 0x33, 0x89,
+ 0x95, 0x2b, 0x5f, 0x5f, 0xe9, 0xea, 0x6b, 0x35, 0x2e, 0x84, 0x73, 0x95,
+ 0x9d, 0xfd, 0x61, 0x7d, 0x0c, 0xd8, 0x58, 0x80, 0x10, 0xa1, 0xf5, 0xda,
+ 0x8c, 0x9a, 0x9d, 0xd0, 0x36, 0x61, 0x0a, 0x93, 0xd4, 0xe9, 0x40, 0xe0,
+ 0x9a, 0x95, 0xb1, 0x64,
+};
+static const struct drbg_kat_pr_false kat1755_t = {
+ 14, kat1755_entropyin, kat1755_nonce, kat1755_persstr,
+ kat1755_entropyinreseed, kat1755_addinreseed, kat1755_addin0,
+ kat1755_addin1, kat1755_retbits
+};
+static const struct drbg_kat kat1755 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1755_t
+};
+
+static const unsigned char kat1756_entropyin[] = {
+ 0x1a, 0x1a, 0x4a, 0x3b, 0xec, 0x7b, 0xbd, 0xf9, 0x8f, 0x53, 0x59, 0x24,
+ 0x18, 0xd9, 0x03, 0xae, 0xd3, 0xe1, 0x14, 0xa7, 0xf0, 0x11, 0x45, 0x63,
+};
+static const unsigned char kat1756_nonce[] = {
+ 0xf0, 0xb7, 0xb7, 0x42, 0x4f, 0x10, 0x8f, 0x6d, 0xb6, 0xcf, 0xcb, 0xfd,
+ 0x2d, 0x40, 0xa5, 0xb6,
+};
+static const unsigned char kat1756_persstr[] = {0};
+static const unsigned char kat1756_entropyinreseed[] = {
+ 0x6f, 0x78, 0xaf, 0xb3, 0x10, 0xee, 0x0d, 0xae, 0x67, 0x32, 0xe0, 0xed,
+ 0x97, 0x9c, 0x63, 0xa3, 0xad, 0x87, 0x92, 0x33, 0x36, 0x62, 0xf6, 0x24,
+};
+static const unsigned char kat1756_addinreseed[] = {
+ 0x9f, 0x05, 0x05, 0x42, 0xa1, 0x09, 0x7f, 0x93, 0x5c, 0x68, 0xf3, 0x73,
+ 0x82, 0x4a, 0xb9, 0xca, 0xc1, 0x78, 0x27, 0xba, 0xdb, 0xe0, 0x7c, 0xf9,
+ 0xde, 0xe4, 0x8a, 0xf3, 0x3a, 0x31, 0x99, 0x1f,
+};
+static const unsigned char kat1756_addin0[] = {
+ 0x38, 0xd6, 0x8c, 0xc7, 0xc8, 0x98, 0x66, 0xd8, 0xd2, 0x70, 0x8a, 0x21,
+ 0x57, 0x76, 0xaf, 0x15, 0x4b, 0x3c, 0x08, 0x2d, 0x55, 0x0c, 0x55, 0x5e,
+ 0x1a, 0xaa, 0x5a, 0x72, 0xef, 0x2f, 0x5b, 0xe0,
+};
+static const unsigned char kat1756_addin1[] = {
+ 0x40, 0xf8, 0x31, 0x44, 0x89, 0xc3, 0x25, 0x8d, 0xd4, 0xb1, 0x3b, 0xa5,
+ 0x9b, 0x7e, 0x8f, 0x3e, 0xc9, 0x5d, 0xb0, 0x08, 0x29, 0xa2, 0x35, 0x3a,
+ 0x08, 0xcd, 0x75, 0x8b, 0x49, 0x89, 0xc0, 0x53,
+};
+static const unsigned char kat1756_retbits[] = {
+ 0x15, 0xcc, 0x0c, 0xe7, 0x7e, 0xe5, 0x5c, 0xa4, 0xd7, 0x2b, 0x2e, 0x75,
+ 0xc3, 0x28, 0x87, 0x69, 0x4d, 0xca, 0xc9, 0x7f, 0x7d, 0x26, 0x1f, 0xbe,
+ 0x9e, 0xe1, 0xd0, 0x99, 0x70, 0xb7, 0xb0, 0x31, 0x3f, 0xb3, 0x18, 0x63,
+ 0x0a, 0xfa, 0x4a, 0xc3, 0x69, 0xb9, 0x97, 0x9c, 0x22, 0x64, 0x7f, 0x60,
+ 0xa3, 0x79, 0x97, 0x39, 0x94, 0x2d, 0x78, 0x08, 0xd4, 0xfb, 0xb1, 0x4f,
+ 0x7a, 0xc4, 0x90, 0x37,
+};
+static const struct drbg_kat_pr_false kat1756_t = {
+ 0, kat1756_entropyin, kat1756_nonce, kat1756_persstr,
+ kat1756_entropyinreseed, kat1756_addinreseed, kat1756_addin0,
+ kat1756_addin1, kat1756_retbits
+};
+static const struct drbg_kat kat1756 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1756_t
+};
+
+static const unsigned char kat1757_entropyin[] = {
+ 0x71, 0xe7, 0x3c, 0x32, 0xcd, 0x92, 0x05, 0xd4, 0x5c, 0x25, 0x5a, 0x5e,
+ 0x30, 0xba, 0x6d, 0x98, 0x47, 0x53, 0x85, 0xf1, 0x66, 0x17, 0x60, 0x06,
+};
+static const unsigned char kat1757_nonce[] = {
+ 0x10, 0xa5, 0x55, 0x7c, 0xc3, 0xa1, 0x26, 0x84, 0x49, 0xb9, 0xa4, 0x40,
+ 0xf3, 0xe5, 0x7e, 0xb7,
+};
+static const unsigned char kat1757_persstr[] = {0};
+static const unsigned char kat1757_entropyinreseed[] = {
+ 0x29, 0x0c, 0x46, 0x5c, 0x47, 0xf7, 0x6f, 0xe1, 0x1c, 0x2d, 0xdd, 0xee,
+ 0x35, 0x43, 0x88, 0x6e, 0x83, 0x83, 0x18, 0x41, 0x1a, 0xac, 0x69, 0x22,
+};
+static const unsigned char kat1757_addinreseed[] = {
+ 0x4a, 0x2f, 0x94, 0xd6, 0xd8, 0x57, 0x54, 0x06, 0x79, 0xea, 0x0b, 0x03,
+ 0x1a, 0x86, 0x90, 0x19, 0x1a, 0xea, 0x68, 0x19, 0x9a, 0xf3, 0x94, 0xe2,
+ 0xf6, 0x41, 0x86, 0xe4, 0x1c, 0xfa, 0xa3, 0xd7,
+};
+static const unsigned char kat1757_addin0[] = {
+ 0x22, 0xea, 0xa2, 0x4b, 0x0a, 0x5c, 0xdb, 0x23, 0x61, 0xfe, 0x82, 0x86,
+ 0x1f, 0x33, 0xc2, 0x42, 0xbb, 0x4a, 0x5b, 0x9e, 0x0f, 0x7b, 0x10, 0xe2,
+ 0xef, 0xde, 0x2b, 0xc3, 0x2e, 0x42, 0xd7, 0x20,
+};
+static const unsigned char kat1757_addin1[] = {
+ 0x21, 0x9c, 0x41, 0x68, 0x95, 0x7f, 0x03, 0x0f, 0x60, 0x21, 0xd0, 0x35,
+ 0xa5, 0x2a, 0x5c, 0xd6, 0x66, 0xe9, 0xbf, 0x26, 0xea, 0xd9, 0x53, 0x88,
+ 0xa8, 0xcc, 0x6f, 0x59, 0x31, 0xdb, 0x8d, 0xbd,
+};
+static const unsigned char kat1757_retbits[] = {
+ 0x76, 0x33, 0xdc, 0xb4, 0xee, 0x8e, 0xe1, 0x0c, 0x82, 0xac, 0x4e, 0x6f,
+ 0xae, 0x5f, 0xe6, 0x45, 0x3d, 0xda, 0x9b, 0x83, 0xf3, 0x83, 0x16, 0xd3,
+ 0xd6, 0x8d, 0xb1, 0xce, 0x72, 0x61, 0xdb, 0x92, 0x1a, 0x7d, 0x53, 0x82,
+ 0x82, 0x4c, 0xe9, 0xd4, 0xfb, 0x12, 0xa3, 0x83, 0xea, 0x27, 0x34, 0x78,
+ 0xee, 0xeb, 0xa9, 0x7d, 0xca, 0x2e, 0xea, 0x9b, 0x3b, 0x5c, 0xba, 0x7c,
+ 0x97, 0x8c, 0x20, 0xb5,
+};
+static const struct drbg_kat_pr_false kat1757_t = {
+ 1, kat1757_entropyin, kat1757_nonce, kat1757_persstr,
+ kat1757_entropyinreseed, kat1757_addinreseed, kat1757_addin0,
+ kat1757_addin1, kat1757_retbits
+};
+static const struct drbg_kat kat1757 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1757_t
+};
+
+static const unsigned char kat1758_entropyin[] = {
+ 0x8a, 0xaf, 0x10, 0xeb, 0x86, 0x77, 0xc8, 0x8f, 0xcb, 0xc3, 0xd4, 0xb8,
+ 0x41, 0x83, 0x41, 0xa5, 0x38, 0xcc, 0x28, 0xb1, 0xc7, 0x2d, 0x95, 0x97,
+};
+static const unsigned char kat1758_nonce[] = {
+ 0xd5, 0x83, 0xc8, 0x52, 0x66, 0xa9, 0xee, 0xe2, 0x8d, 0x62, 0x3f, 0x24,
+ 0xcd, 0x5e, 0x16, 0xbb,
+};
+static const unsigned char kat1758_persstr[] = {0};
+static const unsigned char kat1758_entropyinreseed[] = {
+ 0x15, 0xdc, 0xf6, 0x5b, 0xbe, 0x6f, 0xd3, 0x97, 0x4a, 0xeb, 0x4b, 0xf1,
+ 0xf2, 0x5a, 0xbe, 0xd2, 0xa3, 0x7a, 0x6f, 0x46, 0xc8, 0xdf, 0x48, 0xef,
+};
+static const unsigned char kat1758_addinreseed[] = {
+ 0x77, 0x41, 0x1d, 0xe2, 0x4f, 0x03, 0x35, 0x28, 0x64, 0xe3, 0x3b, 0x9a,
+ 0x2b, 0x34, 0xd3, 0x7f, 0x91, 0x50, 0x03, 0xe2, 0x8e, 0x31, 0xbd, 0xf0,
+ 0xb4, 0x35, 0x5e, 0x90, 0x08, 0x30, 0xd6, 0xb2,
+};
+static const unsigned char kat1758_addin0[] = {
+ 0x13, 0x07, 0x02, 0xd1, 0x32, 0x6b, 0x4e, 0x6d, 0xea, 0x87, 0x96, 0x7e,
+ 0x9e, 0xd7, 0xef, 0xe0, 0x37, 0xf1, 0xe5, 0x60, 0x70, 0x42, 0x44, 0x73,
+ 0x8f, 0x3e, 0xd5, 0xd6, 0x2f, 0x57, 0xf7, 0x26,
+};
+static const unsigned char kat1758_addin1[] = {
+ 0xbd, 0xfe, 0x4c, 0x89, 0x12, 0xab, 0x00, 0x67, 0x0b, 0xac, 0xf1, 0x42,
+ 0x31, 0x0a, 0x92, 0x22, 0x55, 0x85, 0x41, 0x99, 0x7d, 0x36, 0x65, 0x90,
+ 0x88, 0x71, 0x04, 0xed, 0x95, 0x46, 0xa2, 0xaf,
+};
+static const unsigned char kat1758_retbits[] = {
+ 0xfb, 0x5c, 0x73, 0x16, 0x16, 0x3c, 0x8e, 0xc1, 0xcb, 0x1b, 0x9f, 0xbc,
+ 0x30, 0xa8, 0x10, 0x40, 0xfd, 0x4e, 0x6e, 0x0d, 0x1b, 0x6d, 0x35, 0xda,
+ 0xc6, 0xce, 0xd9, 0xe6, 0x78, 0x04, 0x82, 0x88, 0x07, 0xc1, 0x29, 0x26,
+ 0xcb, 0x1e, 0x7b, 0x28, 0x44, 0x96, 0x25, 0xdc, 0x11, 0xfb, 0x98, 0xc1,
+ 0xfd, 0x71, 0xd6, 0x69, 0x3d, 0x77, 0x34, 0xcf, 0x40, 0x3e, 0x80, 0xe0,
+ 0x90, 0xd6, 0xa8, 0x2f,
+};
+static const struct drbg_kat_pr_false kat1758_t = {
+ 2, kat1758_entropyin, kat1758_nonce, kat1758_persstr,
+ kat1758_entropyinreseed, kat1758_addinreseed, kat1758_addin0,
+ kat1758_addin1, kat1758_retbits
+};
+static const struct drbg_kat kat1758 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1758_t
+};
+
+static const unsigned char kat1759_entropyin[] = {
+ 0x81, 0x4a, 0x71, 0xf1, 0x7b, 0x4d, 0x83, 0xea, 0xba, 0x16, 0x42, 0xb5,
+ 0x3b, 0x42, 0xab, 0x5f, 0xcf, 0x37, 0x49, 0x53, 0x1e, 0x05, 0x2c, 0x6a,
+};
+static const unsigned char kat1759_nonce[] = {
+ 0x19, 0x70, 0xb2, 0x49, 0x74, 0xa6, 0xe4, 0x5f, 0xcd, 0x09, 0x9f, 0x7f,
+ 0x81, 0xe9, 0x89, 0x68,
+};
+static const unsigned char kat1759_persstr[] = {0};
+static const unsigned char kat1759_entropyinreseed[] = {
+ 0x58, 0x3d, 0xdd, 0x4b, 0x2d, 0x88, 0xdd, 0xe2, 0x5b, 0x7e, 0x22, 0x85,
+ 0x47, 0x8b, 0x06, 0xa2, 0xe1, 0xba, 0x41, 0xc0, 0x05, 0xe2, 0xb9, 0x39,
+};
+static const unsigned char kat1759_addinreseed[] = {
+ 0xe1, 0x25, 0x14, 0xea, 0xa3, 0xf6, 0x8d, 0x7f, 0x2c, 0xf0, 0x37, 0x77,
+ 0x36, 0x36, 0x0b, 0x2a, 0x14, 0x45, 0x9c, 0x0b, 0x74, 0x1d, 0x04, 0x32,
+ 0xd0, 0x41, 0xb9, 0x8d, 0xe3, 0xf1, 0x1e, 0xdc,
+};
+static const unsigned char kat1759_addin0[] = {
+ 0xc4, 0xcc, 0xc6, 0x6d, 0x9b, 0x2f, 0x4d, 0x09, 0xe2, 0x30, 0x25, 0xb0,
+ 0xc0, 0x43, 0x6c, 0xcc, 0x7a, 0x7f, 0x02, 0x97, 0x34, 0x05, 0xdf, 0x09,
+ 0x34, 0x4d, 0x74, 0x21, 0xaa, 0x56, 0x92, 0xa1,
+};
+static const unsigned char kat1759_addin1[] = {
+ 0x00, 0xe6, 0xc4, 0x9a, 0x01, 0x66, 0xe4, 0x7e, 0x4b, 0x81, 0x2f, 0xed,
+ 0x1b, 0x2f, 0x9e, 0x66, 0x2a, 0x6e, 0x7b, 0x90, 0x6a, 0xda, 0xe6, 0x48,
+ 0x67, 0x57, 0xca, 0x65, 0xf0, 0xad, 0x8a, 0xa3,
+};
+static const unsigned char kat1759_retbits[] = {
+ 0xc0, 0x73, 0xda, 0x24, 0x88, 0xad, 0x58, 0xc9, 0xb2, 0xb3, 0xc5, 0xc1,
+ 0x21, 0xde, 0x40, 0x81, 0x71, 0x10, 0x86, 0xb6, 0x2d, 0xaf, 0xbf, 0xa2,
+ 0x35, 0x95, 0xb2, 0xde, 0xea, 0x86, 0x2e, 0x89, 0xcd, 0x8b, 0xcd, 0xb1,
+ 0x66, 0x81, 0x73, 0x92, 0xfb, 0xbf, 0xbc, 0x54, 0xec, 0x07, 0x0f, 0x1f,
+ 0xfb, 0xe5, 0x45, 0xfe, 0xc8, 0xf5, 0xb0, 0x4a, 0xeb, 0x34, 0x82, 0xf2,
+ 0xcf, 0x5a, 0xf4, 0xd0,
+};
+static const struct drbg_kat_pr_false kat1759_t = {
+ 3, kat1759_entropyin, kat1759_nonce, kat1759_persstr,
+ kat1759_entropyinreseed, kat1759_addinreseed, kat1759_addin0,
+ kat1759_addin1, kat1759_retbits
+};
+static const struct drbg_kat kat1759 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1759_t
+};
+
+static const unsigned char kat1760_entropyin[] = {
+ 0xda, 0x3f, 0x84, 0x0c, 0x1b, 0x9e, 0x65, 0x6b, 0x1c, 0x20, 0x84, 0x1a,
+ 0xec, 0x39, 0x26, 0x18, 0xd9, 0x05, 0x27, 0xcf, 0x64, 0x5a, 0x76, 0x91,
+};
+static const unsigned char kat1760_nonce[] = {
+ 0x1e, 0x15, 0x6c, 0x5d, 0x97, 0xf3, 0x24, 0x5a, 0x4e, 0x88, 0xf4, 0xf1,
+ 0xd0, 0xaf, 0xe5, 0xcd,
+};
+static const unsigned char kat1760_persstr[] = {0};
+static const unsigned char kat1760_entropyinreseed[] = {
+ 0x6c, 0x71, 0x43, 0x3e, 0xc9, 0x88, 0x48, 0x6e, 0x29, 0x30, 0xe7, 0x20,
+ 0x60, 0xf9, 0x71, 0x57, 0xeb, 0xef, 0x1b, 0x41, 0x0d, 0xed, 0xa0, 0xfc,
+};
+static const unsigned char kat1760_addinreseed[] = {
+ 0x1b, 0xc4, 0xff, 0xa8, 0xc5, 0x78, 0x25, 0x9b, 0x65, 0x26, 0x1d, 0x38,
+ 0xa8, 0x08, 0x87, 0x51, 0x9f, 0xf0, 0x53, 0x71, 0xe1, 0x82, 0x4a, 0xdb,
+ 0x3c, 0xe8, 0x90, 0xc8, 0xe2, 0xa6, 0xc1, 0xb0,
+};
+static const unsigned char kat1760_addin0[] = {
+ 0x7d, 0xa1, 0xc4, 0x87, 0xcd, 0x40, 0xad, 0x88, 0x94, 0x5b, 0xab, 0xd3,
+ 0x50, 0xe9, 0x8f, 0xf6, 0x9b, 0xa6, 0x5c, 0x92, 0xd9, 0x99, 0x1b, 0xf2,
+ 0xb9, 0xee, 0x7c, 0xb6, 0x2f, 0x59, 0x26, 0x28,
+};
+static const unsigned char kat1760_addin1[] = {
+ 0x0e, 0x97, 0x65, 0x5c, 0x3f, 0xda, 0x2f, 0x9c, 0x48, 0xcb, 0xf6, 0xd8,
+ 0x48, 0x97, 0xe0, 0x9e, 0xa7, 0x71, 0xf9, 0x83, 0x3f, 0xa3, 0x11, 0x87,
+ 0x90, 0x14, 0x28, 0x9a, 0x09, 0xc0, 0xa1, 0x1b,
+};
+static const unsigned char kat1760_retbits[] = {
+ 0x1f, 0x02, 0xf7, 0xa8, 0xa2, 0x90, 0x77, 0xef, 0xf9, 0x15, 0xcc, 0xa9,
+ 0x8d, 0x44, 0x36, 0xca, 0xa2, 0x70, 0xaa, 0xfe, 0xa0, 0x37, 0xc0, 0x8d,
+ 0x5a, 0x2a, 0x91, 0x71, 0xdc, 0xb6, 0xa6, 0x18, 0xe9, 0x9e, 0x7e, 0xac,
+ 0xb0, 0x07, 0x28, 0x07, 0xa6, 0x1e, 0xae, 0x8f, 0x75, 0x57, 0xc1, 0x83,
+ 0xdb, 0x67, 0xa1, 0x86, 0x89, 0x33, 0x16, 0x05, 0x7f, 0x85, 0xf1, 0x66,
+ 0x01, 0x30, 0x11, 0xd2,
+};
+static const struct drbg_kat_pr_false kat1760_t = {
+ 4, kat1760_entropyin, kat1760_nonce, kat1760_persstr,
+ kat1760_entropyinreseed, kat1760_addinreseed, kat1760_addin0,
+ kat1760_addin1, kat1760_retbits
+};
+static const struct drbg_kat kat1760 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1760_t
+};
+
+static const unsigned char kat1761_entropyin[] = {
+ 0xe5, 0x1c, 0xc4, 0xdd, 0x63, 0x24, 0xeb, 0x3e, 0x2e, 0xe3, 0xcf, 0x68,
+ 0x07, 0xa5, 0x81, 0xc5, 0xfe, 0x69, 0xa4, 0xd9, 0x06, 0x74, 0xa1, 0xb0,
+};
+static const unsigned char kat1761_nonce[] = {
+ 0x8f, 0xf0, 0x15, 0x7e, 0xea, 0x81, 0x29, 0x5a, 0xff, 0x85, 0xa6, 0x2f,
+ 0xc8, 0x7f, 0xd5, 0xfc,
+};
+static const unsigned char kat1761_persstr[] = {0};
+static const unsigned char kat1761_entropyinreseed[] = {
+ 0x01, 0x14, 0x91, 0xb7, 0x65, 0xe4, 0xf7, 0x92, 0x7c, 0x2a, 0xd5, 0x6b,
+ 0xeb, 0xb1, 0xc5, 0x44, 0x66, 0xce, 0x6a, 0x00, 0x50, 0xde, 0x0b, 0xea,
+};
+static const unsigned char kat1761_addinreseed[] = {
+ 0xc9, 0x46, 0x0a, 0xc8, 0x53, 0x33, 0xd5, 0x83, 0xde, 0xc6, 0x96, 0xf8,
+ 0x75, 0x32, 0x74, 0xfb, 0x16, 0xed, 0x0e, 0x27, 0x39, 0x34, 0xbd, 0x18,
+ 0xc8, 0xb9, 0xb8, 0x00, 0xd8, 0x2f, 0x19, 0x16,
+};
+static const unsigned char kat1761_addin0[] = {
+ 0x83, 0x7a, 0x5b, 0x4c, 0x64, 0x96, 0x86, 0x10, 0xcf, 0x67, 0xe1, 0x76,
+ 0x6b, 0x27, 0x66, 0x54, 0x95, 0xde, 0x9a, 0x79, 0x58, 0xe8, 0x35, 0x91,
+ 0xaf, 0x8a, 0x18, 0x33, 0x28, 0xf0, 0xc4, 0x27,
+};
+static const unsigned char kat1761_addin1[] = {
+ 0x6a, 0x22, 0x17, 0xa8, 0x65, 0xf9, 0x79, 0xa7, 0x50, 0xb4, 0xb5, 0x64,
+ 0xb9, 0xd7, 0x2e, 0x8e, 0xf9, 0xa0, 0x51, 0xcf, 0x26, 0x63, 0x9c, 0xfa,
+ 0xc8, 0x3b, 0x0d, 0x19, 0x65, 0xfa, 0x2b, 0xf5,
+};
+static const unsigned char kat1761_retbits[] = {
+ 0xe2, 0x5f, 0x04, 0xc5, 0x06, 0xea, 0xad, 0x2c, 0x39, 0xe2, 0xa1, 0x28,
+ 0x58, 0xa3, 0xbf, 0xa5, 0x46, 0x4c, 0xf4, 0xdf, 0x77, 0x13, 0x7b, 0x82,
+ 0x86, 0xa3, 0x33, 0x74, 0xeb, 0x67, 0x65, 0xd7, 0x45, 0xc9, 0x34, 0xaf,
+ 0xa0, 0x60, 0x7d, 0xfe, 0x46, 0x00, 0xe2, 0x8b, 0x69, 0x23, 0x0d, 0x28,
+ 0xa8, 0xcb, 0x93, 0x1d, 0xfc, 0x3d, 0x43, 0x49, 0x77, 0xb7, 0xa8, 0x59,
+ 0xa8, 0x6d, 0x2d, 0x74,
+};
+static const struct drbg_kat_pr_false kat1761_t = {
+ 5, kat1761_entropyin, kat1761_nonce, kat1761_persstr,
+ kat1761_entropyinreseed, kat1761_addinreseed, kat1761_addin0,
+ kat1761_addin1, kat1761_retbits
+};
+static const struct drbg_kat kat1761 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1761_t
+};
+
+static const unsigned char kat1762_entropyin[] = {
+ 0x1b, 0x9f, 0xc4, 0xe1, 0x5d, 0x6d, 0xfa, 0x69, 0x18, 0x4e, 0x90, 0x5d,
+ 0xc5, 0x7d, 0x84, 0x9d, 0x79, 0x16, 0x28, 0x68, 0x3c, 0xc7, 0x1c, 0x07,
+};
+static const unsigned char kat1762_nonce[] = {
+ 0xa5, 0x90, 0x29, 0x65, 0xd4, 0x4b, 0x0e, 0x3c, 0x63, 0x92, 0xd9, 0x6f,
+ 0x2f, 0x0f, 0xae, 0xe6,
+};
+static const unsigned char kat1762_persstr[] = {0};
+static const unsigned char kat1762_entropyinreseed[] = {
+ 0xd9, 0x88, 0xc4, 0x56, 0x1c, 0x9f, 0x6d, 0x8a, 0xde, 0xc7, 0x2e, 0xa5,
+ 0xab, 0xd3, 0x70, 0x73, 0x8e, 0x82, 0xd8, 0xc7, 0x7b, 0x77, 0xa7, 0x96,
+};
+static const unsigned char kat1762_addinreseed[] = {
+ 0x42, 0x78, 0x6f, 0x5c, 0x79, 0xee, 0x03, 0xe3, 0x9a, 0x7a, 0x7f, 0xf0,
+ 0x1c, 0x2d, 0x20, 0xe2, 0xa6, 0xd5, 0xae, 0xf7, 0xc7, 0xb1, 0x61, 0xbc,
+ 0x2a, 0xd1, 0xbc, 0x10, 0xec, 0xe7, 0xd4, 0x51,
+};
+static const unsigned char kat1762_addin0[] = {
+ 0x82, 0x19, 0xb7, 0xc3, 0x00, 0x96, 0xfb, 0x4e, 0xee, 0x43, 0x3c, 0x09,
+ 0xa6, 0x1c, 0x21, 0xef, 0xf9, 0xd2, 0x9f, 0xb5, 0x6d, 0x4a, 0x28, 0xa9,
+ 0xe6, 0xdf, 0xac, 0x50, 0xf1, 0x56, 0x42, 0x06,
+};
+static const unsigned char kat1762_addin1[] = {
+ 0x14, 0x87, 0x0b, 0x12, 0x35, 0xe1, 0xcb, 0x17, 0x8e, 0xe7, 0x29, 0xae,
+ 0x45, 0x5e, 0x05, 0xde, 0x8c, 0xab, 0xf7, 0xb3, 0x1b, 0xf7, 0xc5, 0xa8,
+ 0xff, 0x6a, 0xc0, 0x5c, 0xed, 0x3c, 0x89, 0x38,
+};
+static const unsigned char kat1762_retbits[] = {
+ 0xcc, 0x73, 0x86, 0xb1, 0xbd, 0xd1, 0x86, 0x92, 0x32, 0xfb, 0x94, 0x8d,
+ 0x89, 0x9d, 0xbb, 0x0a, 0xf6, 0x63, 0x33, 0xd0, 0x7b, 0x23, 0xed, 0x3d,
+ 0x10, 0x5c, 0x37, 0x7d, 0x7a, 0x15, 0xd5, 0xbe, 0x67, 0x8c, 0x7c, 0x53,
+ 0x0c, 0x79, 0xad, 0x52, 0xc2, 0xda, 0xd5, 0xa3, 0x5a, 0x2e, 0xac, 0x31,
+ 0xa9, 0x74, 0x97, 0x64, 0x39, 0x92, 0xb4, 0xa5, 0x81, 0xe7, 0x71, 0x7d,
+ 0xe8, 0xbc, 0x4b, 0xde,
+};
+static const struct drbg_kat_pr_false kat1762_t = {
+ 6, kat1762_entropyin, kat1762_nonce, kat1762_persstr,
+ kat1762_entropyinreseed, kat1762_addinreseed, kat1762_addin0,
+ kat1762_addin1, kat1762_retbits
+};
+static const struct drbg_kat kat1762 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1762_t
+};
+
+static const unsigned char kat1763_entropyin[] = {
+ 0x50, 0xaa, 0x97, 0x94, 0x21, 0xc7, 0xcc, 0xd4, 0x2d, 0x6f, 0x05, 0x52,
+ 0x50, 0x92, 0x81, 0x2f, 0xa6, 0x10, 0xde, 0x82, 0x33, 0x55, 0x7d, 0x1a,
+};
+static const unsigned char kat1763_nonce[] = {
+ 0x57, 0x5b, 0xfb, 0x8f, 0x5c, 0x47, 0x24, 0x98, 0xeb, 0x16, 0xb0, 0xb9,
+ 0xe0, 0xb9, 0xad, 0x10,
+};
+static const unsigned char kat1763_persstr[] = {0};
+static const unsigned char kat1763_entropyinreseed[] = {
+ 0x83, 0x14, 0xc1, 0xb3, 0x0b, 0x34, 0x16, 0xb3, 0xd1, 0x38, 0xbb, 0xf2,
+ 0xf6, 0x90, 0xd0, 0xe4, 0x5c, 0x06, 0x15, 0x0d, 0x35, 0x35, 0xcb, 0x4d,
+};
+static const unsigned char kat1763_addinreseed[] = {
+ 0x41, 0x98, 0x1c, 0xc9, 0x77, 0xe7, 0x27, 0x6c, 0xf6, 0x9b, 0x55, 0x81,
+ 0x4c, 0xb0, 0x66, 0x52, 0x8c, 0x90, 0x6d, 0xc2, 0x64, 0xf6, 0xf8, 0x56,
+ 0x3f, 0xaa, 0x5f, 0xf0, 0xd4, 0xdd, 0x4e, 0x0a,
+};
+static const unsigned char kat1763_addin0[] = {
+ 0x3d, 0x46, 0x50, 0xb5, 0xf1, 0x9c, 0xf1, 0x9f, 0x3c, 0x03, 0x7a, 0x11,
+ 0x0d, 0x64, 0xa2, 0xdf, 0x4e, 0x81, 0xed, 0x7a, 0xd6, 0xcc, 0x47, 0x8b,
+ 0x83, 0x63, 0x74, 0xba, 0x9b, 0x0a, 0x15, 0x91,
+};
+static const unsigned char kat1763_addin1[] = {
+ 0x52, 0x12, 0x12, 0x55, 0x7a, 0x42, 0xc6, 0x54, 0xd8, 0xe2, 0x8b, 0x39,
+ 0x95, 0xf0, 0x35, 0xbd, 0x57, 0xe8, 0xc5, 0x7f, 0xcd, 0xa6, 0xb8, 0x9d,
+ 0xb6, 0x0d, 0xd2, 0xcd, 0x11, 0xdf, 0x9b, 0xf9,
+};
+static const unsigned char kat1763_retbits[] = {
+ 0x87, 0xf9, 0x83, 0x23, 0x46, 0x03, 0xff, 0xdc, 0xbd, 0x61, 0x7d, 0x62,
+ 0xd2, 0x3c, 0x5f, 0x9d, 0x40, 0xcc, 0xb5, 0xe2, 0xcd, 0x55, 0x73, 0x9d,
+ 0x99, 0x4b, 0x09, 0x59, 0x1e, 0x63, 0x36, 0xd1, 0xa3, 0xec, 0x92, 0xec,
+ 0x56, 0x07, 0x4e, 0xe3, 0xfd, 0x78, 0x3d, 0x56, 0x99, 0xe5, 0x2d, 0xa0,
+ 0x9e, 0xf2, 0x00, 0x2a, 0xe8, 0xf2, 0xf8, 0x53, 0x64, 0x7a, 0x6b, 0xd9,
+ 0xff, 0xf6, 0xa0, 0xe5,
+};
+static const struct drbg_kat_pr_false kat1763_t = {
+ 7, kat1763_entropyin, kat1763_nonce, kat1763_persstr,
+ kat1763_entropyinreseed, kat1763_addinreseed, kat1763_addin0,
+ kat1763_addin1, kat1763_retbits
+};
+static const struct drbg_kat kat1763 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1763_t
+};
+
+static const unsigned char kat1764_entropyin[] = {
+ 0xa5, 0x3e, 0x5d, 0xaf, 0x4a, 0x15, 0x61, 0x8a, 0x2b, 0xa5, 0x9c, 0xa1,
+ 0xd3, 0xbd, 0x9a, 0xbd, 0x75, 0xd5, 0x85, 0x98, 0xe4, 0x58, 0xae, 0x7d,
+};
+static const unsigned char kat1764_nonce[] = {
+ 0x33, 0x8c, 0xd8, 0x66, 0xb0, 0xc4, 0x05, 0x51, 0x29, 0x47, 0xf4, 0x10,
+ 0x2f, 0x0e, 0x3d, 0x27,
+};
+static const unsigned char kat1764_persstr[] = {0};
+static const unsigned char kat1764_entropyinreseed[] = {
+ 0x42, 0xce, 0x3e, 0x84, 0xe8, 0xe8, 0xdc, 0x92, 0xd3, 0x94, 0x8c, 0xaa,
+ 0x0a, 0x71, 0x24, 0x84, 0x92, 0xf1, 0x6e, 0xa6, 0xc5, 0x4a, 0x44, 0x4d,
+};
+static const unsigned char kat1764_addinreseed[] = {
+ 0x01, 0x00, 0x8e, 0xc0, 0xcc, 0xe1, 0x7f, 0x9f, 0x9f, 0x60, 0x0a, 0xd6,
+ 0x82, 0xf0, 0xda, 0xea, 0x81, 0xec, 0x4e, 0x5f, 0xad, 0x23, 0xad, 0xbd,
+ 0x45, 0xee, 0x95, 0x4d, 0x7c, 0xe8, 0x44, 0x9a,
+};
+static const unsigned char kat1764_addin0[] = {
+ 0x69, 0x42, 0x40, 0x03, 0xf0, 0x8f, 0x5d, 0xcb, 0x73, 0x66, 0xe7, 0x40,
+ 0x24, 0x64, 0x8d, 0x9b, 0xc0, 0x1a, 0x57, 0x08, 0xbf, 0x15, 0x57, 0x4b,
+ 0x81, 0x67, 0x94, 0x30, 0x27, 0x69, 0x75, 0x55,
+};
+static const unsigned char kat1764_addin1[] = {
+ 0x81, 0x31, 0x40, 0x6a, 0x80, 0x3b, 0xd4, 0x4f, 0xed, 0xb1, 0xa4, 0x51,
+ 0x3e, 0x4c, 0xc0, 0xdd, 0x19, 0xc0, 0xe1, 0xae, 0xf2, 0xcd, 0x91, 0xd7,
+ 0x7f, 0x91, 0x35, 0x9a, 0xd6, 0x65, 0xe2, 0xb7,
+};
+static const unsigned char kat1764_retbits[] = {
+ 0x82, 0x48, 0x56, 0xa7, 0x29, 0x08, 0x28, 0x27, 0x3f, 0xaa, 0x88, 0x58,
+ 0x5c, 0x17, 0xd6, 0xc6, 0xe9, 0x39, 0x5e, 0x6a, 0xd9, 0xeb, 0x85, 0x81,
+ 0xfc, 0xbe, 0x15, 0xd2, 0x6b, 0x11, 0xd1, 0xd7, 0x8e, 0xec, 0xbf, 0x9a,
+ 0x98, 0xa5, 0x6a, 0xf4, 0x78, 0x45, 0xac, 0x46, 0xd7, 0x3e, 0xa6, 0xdc,
+ 0x47, 0x54, 0xb5, 0x96, 0xdc, 0x97, 0xc2, 0x64, 0xc4, 0xab, 0xc4, 0x02,
+ 0x91, 0xfa, 0x26, 0xe0,
+};
+static const struct drbg_kat_pr_false kat1764_t = {
+ 8, kat1764_entropyin, kat1764_nonce, kat1764_persstr,
+ kat1764_entropyinreseed, kat1764_addinreseed, kat1764_addin0,
+ kat1764_addin1, kat1764_retbits
+};
+static const struct drbg_kat kat1764 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1764_t
+};
+
+static const unsigned char kat1765_entropyin[] = {
+ 0x1c, 0x1e, 0x9c, 0xcf, 0x0b, 0x05, 0xa9, 0x31, 0xca, 0xd4, 0xd8, 0xa0,
+ 0x26, 0xd0, 0x31, 0x36, 0x46, 0x35, 0xa3, 0x85, 0x62, 0x62, 0xb7, 0x5a,
+};
+static const unsigned char kat1765_nonce[] = {
+ 0x61, 0xe9, 0x48, 0x36, 0x5f, 0x59, 0x0e, 0xc3, 0x63, 0x07, 0x5c, 0xb6,
+ 0xac, 0xc1, 0x40, 0xf3,
+};
+static const unsigned char kat1765_persstr[] = {0};
+static const unsigned char kat1765_entropyinreseed[] = {
+ 0x0d, 0xa4, 0xb5, 0xe8, 0x40, 0x9b, 0xcc, 0x2e, 0xe6, 0x54, 0x5e, 0xee,
+ 0xb6, 0xe9, 0xd7, 0x85, 0x70, 0x09, 0x23, 0xc0, 0x34, 0x04, 0xd6, 0x5b,
+};
+static const unsigned char kat1765_addinreseed[] = {
+ 0x10, 0x06, 0x44, 0x0f, 0x91, 0x37, 0xe5, 0x75, 0x22, 0x88, 0x7c, 0x93,
+ 0xe7, 0x09, 0x28, 0x81, 0xb7, 0x87, 0x56, 0xfe, 0xa2, 0x28, 0x57, 0xd6,
+ 0x9c, 0xc1, 0x55, 0xb0, 0xa8, 0xfb, 0x7d, 0xd8,
+};
+static const unsigned char kat1765_addin0[] = {
+ 0x7d, 0xe4, 0xc7, 0x57, 0x59, 0x2a, 0xb9, 0x9a, 0x0f, 0x0a, 0x9e, 0x94,
+ 0xa5, 0x1f, 0xc2, 0xd5, 0xde, 0x57, 0x28, 0x02, 0x85, 0xf0, 0xf2, 0xa3,
+ 0x68, 0x81, 0x4c, 0x47, 0x05, 0xfd, 0x25, 0x04,
+};
+static const unsigned char kat1765_addin1[] = {
+ 0x11, 0xc9, 0x46, 0x8c, 0x28, 0x6e, 0x66, 0x39, 0x53, 0x6d, 0x51, 0x3d,
+ 0x13, 0x68, 0xce, 0x25, 0x25, 0x3f, 0x0e, 0x60, 0x35, 0x7e, 0x45, 0x07,
+ 0x73, 0x38, 0x5b, 0xd8, 0x7c, 0x32, 0x49, 0x58,
+};
+static const unsigned char kat1765_retbits[] = {
+ 0x37, 0x12, 0xfa, 0xd0, 0x6f, 0xbb, 0xe3, 0x9c, 0xb2, 0xca, 0x2e, 0x85,
+ 0x36, 0xee, 0x10, 0x61, 0xb6, 0xed, 0x74, 0x36, 0x2d, 0x8c, 0xc6, 0xcf,
+ 0xcc, 0xfd, 0x49, 0x40, 0x1e, 0x21, 0x0d, 0x10, 0x13, 0xee, 0x0d, 0x21,
+ 0x28, 0xe9, 0x90, 0x2c, 0xc3, 0x43, 0xed, 0xe3, 0x22, 0xd9, 0xe4, 0xcb,
+ 0x56, 0x21, 0xc6, 0xb3, 0xad, 0x27, 0xb0, 0xca, 0x8d, 0x27, 0xa1, 0x8d,
+ 0x31, 0x39, 0xd1, 0x53,
+};
+static const struct drbg_kat_pr_false kat1765_t = {
+ 9, kat1765_entropyin, kat1765_nonce, kat1765_persstr,
+ kat1765_entropyinreseed, kat1765_addinreseed, kat1765_addin0,
+ kat1765_addin1, kat1765_retbits
+};
+static const struct drbg_kat kat1765 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1765_t
+};
+
+static const unsigned char kat1766_entropyin[] = {
+ 0xa1, 0x5b, 0x7d, 0xab, 0x42, 0xf6, 0x30, 0x4c, 0xbe, 0x20, 0x1c, 0x67,
+ 0xee, 0xf5, 0x2c, 0xb7, 0x2b, 0x92, 0xf7, 0xdd, 0xe9, 0xcd, 0xe9, 0xf5,
+};
+static const unsigned char kat1766_nonce[] = {
+ 0x3d, 0x62, 0x16, 0xc7, 0x78, 0xfa, 0x79, 0x63, 0x12, 0x28, 0x1e, 0xb7,
+ 0x8e, 0x36, 0x0d, 0xfc,
+};
+static const unsigned char kat1766_persstr[] = {0};
+static const unsigned char kat1766_entropyinreseed[] = {
+ 0x86, 0xc5, 0x9d, 0x10, 0x8e, 0x18, 0xa0, 0x72, 0xd1, 0x3c, 0x83, 0x6e,
+ 0x70, 0xf9, 0xa3, 0xb5, 0x03, 0x5d, 0x4a, 0x80, 0xa7, 0x38, 0x4f, 0x15,
+};
+static const unsigned char kat1766_addinreseed[] = {
+ 0xa6, 0x1d, 0x90, 0xe6, 0xa9, 0x4c, 0x09, 0x6e, 0x41, 0xb4, 0xa9, 0xb6,
+ 0x9a, 0x1d, 0xab, 0xa4, 0xe5, 0xf5, 0x30, 0xa5, 0x3d, 0xa5, 0x85, 0x10,
+ 0xe4, 0x5a, 0xdc, 0x36, 0x1b, 0xe9, 0x64, 0x00,
+};
+static const unsigned char kat1766_addin0[] = {
+ 0x92, 0xd3, 0x74, 0xff, 0xd3, 0x69, 0xa7, 0x1b, 0x9a, 0x96, 0x3b, 0xb8,
+ 0x4c, 0x9a, 0x57, 0xbc, 0xbd, 0x02, 0x21, 0x53, 0x17, 0x06, 0x0a, 0xa1,
+ 0xba, 0x6f, 0x8d, 0xb7, 0xf8, 0xa8, 0x89, 0xd7,
+};
+static const unsigned char kat1766_addin1[] = {
+ 0x1b, 0x36, 0x7d, 0x51, 0xc9, 0x2f, 0xad, 0x59, 0xc7, 0xe7, 0x6b, 0xb1,
+ 0xeb, 0x67, 0xb9, 0x86, 0xfe, 0x2b, 0x4b, 0x3d, 0xd7, 0xe3, 0xad, 0x6c,
+ 0xc7, 0x36, 0x41, 0x2a, 0x90, 0x18, 0x79, 0x0f,
+};
+static const unsigned char kat1766_retbits[] = {
+ 0x83, 0x14, 0xc9, 0x92, 0xf9, 0x78, 0x65, 0x7d, 0xcc, 0xb0, 0xe8, 0x58,
+ 0x86, 0xb6, 0x71, 0xe2, 0xef, 0xfe, 0x8a, 0x62, 0x76, 0xd2, 0x4d, 0xd4,
+ 0xa8, 0x6b, 0xfc, 0x4c, 0xa1, 0x7e, 0x43, 0xdb, 0xc5, 0xcf, 0xc0, 0x6c,
+ 0x59, 0xd5, 0x21, 0xc2, 0xd9, 0x1a, 0xbc, 0x13, 0xe7, 0xec, 0x7e, 0x99,
+ 0x98, 0x3f, 0x2f, 0xdd, 0x12, 0x31, 0x94, 0x97, 0x1b, 0x1d, 0x52, 0xbd,
+ 0x7e, 0xf1, 0x52, 0xde,
+};
+static const struct drbg_kat_pr_false kat1766_t = {
+ 10, kat1766_entropyin, kat1766_nonce, kat1766_persstr,
+ kat1766_entropyinreseed, kat1766_addinreseed, kat1766_addin0,
+ kat1766_addin1, kat1766_retbits
+};
+static const struct drbg_kat kat1766 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1766_t
+};
+
+static const unsigned char kat1767_entropyin[] = {
+ 0xf0, 0x24, 0xbb, 0x65, 0x54, 0xa3, 0x1a, 0x62, 0x28, 0x1e, 0x06, 0x31,
+ 0x4f, 0xd4, 0x67, 0x11, 0x28, 0x68, 0xcf, 0xc1, 0x8d, 0x39, 0x50, 0x80,
+};
+static const unsigned char kat1767_nonce[] = {
+ 0xbf, 0x8e, 0x1a, 0xf5, 0xcd, 0x96, 0x31, 0x53, 0x62, 0xf8, 0x2b, 0xe8,
+ 0x2e, 0x4b, 0x88, 0x7a,
+};
+static const unsigned char kat1767_persstr[] = {0};
+static const unsigned char kat1767_entropyinreseed[] = {
+ 0x94, 0x62, 0x3e, 0x66, 0x06, 0x5f, 0x15, 0x28, 0x01, 0x94, 0x91, 0x89,
+ 0x3c, 0x8c, 0x5d, 0x23, 0x46, 0x4a, 0x97, 0x7c, 0x7f, 0x30, 0x21, 0x8d,
+};
+static const unsigned char kat1767_addinreseed[] = {
+ 0x5d, 0x0a, 0x55, 0x11, 0xca, 0x4f, 0x36, 0xd0, 0xb0, 0xfc, 0xce, 0x0f,
+ 0xcd, 0x42, 0x1f, 0x95, 0xff, 0x65, 0x90, 0x12, 0xd6, 0x67, 0x4a, 0xd8,
+ 0xe1, 0x97, 0xb7, 0x02, 0xf3, 0x58, 0x8e, 0x91,
+};
+static const unsigned char kat1767_addin0[] = {
+ 0x6b, 0x9c, 0xc5, 0x97, 0x17, 0x5c, 0x2c, 0x0a, 0x3f, 0xf4, 0x85, 0x12,
+ 0x2f, 0x6e, 0x12, 0x49, 0x35, 0xf2, 0x3b, 0x48, 0xad, 0xbf, 0x0a, 0xb2,
+ 0x97, 0xf1, 0xb2, 0x7f, 0xc1, 0x1e, 0x99, 0xe9,
+};
+static const unsigned char kat1767_addin1[] = {
+ 0x08, 0x96, 0x7a, 0x8d, 0xcd, 0xcf, 0x63, 0x27, 0x5d, 0x79, 0x91, 0x52,
+ 0x17, 0x8a, 0x75, 0x2c, 0x79, 0x28, 0xa4, 0x30, 0x7f, 0x5c, 0xbe, 0x7c,
+ 0x01, 0xbb, 0x5b, 0xa6, 0x07, 0xe5, 0xe6, 0xc9,
+};
+static const unsigned char kat1767_retbits[] = {
+ 0xe0, 0x2b, 0xe5, 0x57, 0xa6, 0xdc, 0x83, 0x49, 0x72, 0xf3, 0xde, 0x03,
+ 0x22, 0xb0, 0x71, 0xe3, 0x5d, 0x79, 0x25, 0xfe, 0x37, 0x4e, 0x85, 0x4c,
+ 0xdb, 0xaa, 0x64, 0x89, 0x28, 0x27, 0xb8, 0x64, 0x45, 0x54, 0x5d, 0xf6,
+ 0xcc, 0xcc, 0x8f, 0x53, 0x43, 0xb2, 0x11, 0xe0, 0x25, 0xc9, 0xea, 0x03,
+ 0xd8, 0x0e, 0xf2, 0x83, 0x7f, 0xf0, 0x6f, 0x4f, 0x20, 0x6a, 0xa2, 0x26,
+ 0x25, 0xb9, 0xab, 0xf7,
+};
+static const struct drbg_kat_pr_false kat1767_t = {
+ 11, kat1767_entropyin, kat1767_nonce, kat1767_persstr,
+ kat1767_entropyinreseed, kat1767_addinreseed, kat1767_addin0,
+ kat1767_addin1, kat1767_retbits
+};
+static const struct drbg_kat kat1767 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1767_t
+};
+
+static const unsigned char kat1768_entropyin[] = {
+ 0x82, 0x0a, 0xd7, 0x4a, 0x3c, 0x3c, 0x10, 0xb5, 0x64, 0x52, 0xdf, 0x57,
+ 0xbf, 0xea, 0xfb, 0xff, 0xd0, 0x9f, 0x1a, 0xd0, 0x21, 0x65, 0x2a, 0x9b,
+};
+static const unsigned char kat1768_nonce[] = {
+ 0xaf, 0xb7, 0x68, 0xe3, 0x56, 0x78, 0xb6, 0x7d, 0xee, 0xcc, 0xd8, 0x83,
+ 0xa4, 0x3e, 0x2c, 0xb2,
+};
+static const unsigned char kat1768_persstr[] = {0};
+static const unsigned char kat1768_entropyinreseed[] = {
+ 0x3f, 0xe9, 0x80, 0x72, 0xd4, 0x21, 0x3d, 0x47, 0x51, 0x7e, 0xc8, 0x26,
+ 0xab, 0x9a, 0x4b, 0x5f, 0xff, 0x39, 0xe8, 0x98, 0x70, 0x22, 0x30, 0xb2,
+};
+static const unsigned char kat1768_addinreseed[] = {
+ 0x36, 0x68, 0x7f, 0xd7, 0x4e, 0xcf, 0xbc, 0x15, 0xbc, 0x9f, 0x40, 0x07,
+ 0xd2, 0xa3, 0x60, 0xdb, 0xcc, 0x4f, 0x35, 0x5e, 0xe9, 0xbc, 0xf7, 0xec,
+ 0x4c, 0xf1, 0xaf, 0xdd, 0xbd, 0xca, 0x07, 0x38,
+};
+static const unsigned char kat1768_addin0[] = {
+ 0x07, 0x02, 0xe7, 0x82, 0xde, 0xf9, 0x48, 0xc2, 0x77, 0x8b, 0xad, 0xb2,
+ 0xf6, 0xa4, 0xb2, 0xea, 0x77, 0x32, 0x0e, 0x82, 0xb3, 0xed, 0xc2, 0x17,
+ 0x4d, 0xea, 0xa9, 0xcb, 0x49, 0x37, 0x24, 0x48,
+};
+static const unsigned char kat1768_addin1[] = {
+ 0x31, 0x59, 0xbb, 0x5c, 0x19, 0x63, 0x24, 0x3a, 0x58, 0xe5, 0x3d, 0x23,
+ 0x6e, 0x09, 0xbe, 0x05, 0x58, 0xa5, 0x48, 0x71, 0x75, 0x1d, 0x46, 0x04,
+ 0xba, 0x7e, 0x3f, 0xb2, 0xe3, 0xf3, 0x82, 0xb7,
+};
+static const unsigned char kat1768_retbits[] = {
+ 0xcf, 0x81, 0x75, 0x10, 0xcd, 0x62, 0xd0, 0x88, 0xad, 0x84, 0x80, 0xdc,
+ 0xc0, 0x22, 0x38, 0xd3, 0xf9, 0x43, 0xb4, 0x29, 0xf9, 0x1e, 0x4a, 0xdd,
+ 0x15, 0xd8, 0x7b, 0x4c, 0xb2, 0x3a, 0xfa, 0x3b, 0x5e, 0xa9, 0x26, 0xea,
+ 0xf7, 0xc0, 0x1f, 0x4e, 0xbf, 0xa8, 0x5d, 0xe1, 0xbc, 0x98, 0x30, 0x7c,
+ 0x49, 0x63, 0xc8, 0x18, 0x9e, 0xbe, 0xf4, 0x6a, 0x8b, 0xef, 0x6e, 0xa1,
+ 0xaa, 0x14, 0xb8, 0x33,
+};
+static const struct drbg_kat_pr_false kat1768_t = {
+ 12, kat1768_entropyin, kat1768_nonce, kat1768_persstr,
+ kat1768_entropyinreseed, kat1768_addinreseed, kat1768_addin0,
+ kat1768_addin1, kat1768_retbits
+};
+static const struct drbg_kat kat1768 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1768_t
+};
+
+static const unsigned char kat1769_entropyin[] = {
+ 0xbf, 0x03, 0x39, 0x77, 0x4a, 0x1d, 0x0b, 0x64, 0xa2, 0x4f, 0xfa, 0x11,
+ 0x2c, 0x6d, 0x73, 0x07, 0x46, 0xb7, 0x16, 0x7a, 0x64, 0x95, 0xc6, 0xe8,
+};
+static const unsigned char kat1769_nonce[] = {
+ 0xcc, 0x9c, 0xec, 0xf9, 0x04, 0xe8, 0x73, 0xfa, 0x41, 0xbf, 0x51, 0x65,
+ 0x63, 0x34, 0x40, 0x9a,
+};
+static const unsigned char kat1769_persstr[] = {0};
+static const unsigned char kat1769_entropyinreseed[] = {
+ 0x4d, 0x4e, 0x0e, 0x0c, 0xe3, 0x3b, 0xd3, 0x63, 0x3b, 0x33, 0x2c, 0xb1,
+ 0x58, 0xeb, 0xf9, 0x14, 0xc1, 0x78, 0xff, 0x19, 0x5c, 0x80, 0x29, 0x2b,
+};
+static const unsigned char kat1769_addinreseed[] = {
+ 0x2c, 0x62, 0xee, 0x3c, 0x5a, 0x44, 0xc1, 0x1a, 0xaa, 0x31, 0xa0, 0x04,
+ 0xea, 0x11, 0x75, 0xee, 0x4f, 0x8e, 0x43, 0x21, 0x44, 0x41, 0x8b, 0x8a,
+ 0x83, 0xf3, 0x79, 0xae, 0x07, 0x73, 0x9a, 0x5c,
+};
+static const unsigned char kat1769_addin0[] = {
+ 0x4b, 0xa7, 0xc3, 0x60, 0x34, 0x3d, 0x98, 0xed, 0xa3, 0xa3, 0x15, 0x84,
+ 0x3e, 0xf6, 0x38, 0x79, 0x5a, 0xfd, 0x99, 0xb8, 0x52, 0x7c, 0x07, 0xb5,
+ 0x67, 0xee, 0xd4, 0xd5, 0x2b, 0x3a, 0xa0, 0x46,
+};
+static const unsigned char kat1769_addin1[] = {
+ 0x38, 0x0a, 0x11, 0x72, 0xc4, 0x38, 0xc5, 0x54, 0x6e, 0x3a, 0xbc, 0xb0,
+ 0xe9, 0xe3, 0xff, 0x68, 0x51, 0x96, 0x72, 0x7e, 0xf6, 0x7c, 0x62, 0xd1,
+ 0xe5, 0x17, 0xdd, 0x55, 0x5d, 0xfe, 0x46, 0x28,
+};
+static const unsigned char kat1769_retbits[] = {
+ 0xd3, 0xf2, 0xa7, 0xbc, 0x68, 0x02, 0x3d, 0xdf, 0x2b, 0xd5, 0x75, 0x76,
+ 0x76, 0x48, 0xb0, 0x8e, 0x08, 0xe6, 0x65, 0x89, 0x0c, 0xf5, 0xba, 0xef,
+ 0x71, 0x7b, 0x60, 0x91, 0xbd, 0xa5, 0xa3, 0x2b, 0xc1, 0x9d, 0xae, 0x9c,
+ 0xa9, 0x64, 0x2a, 0xe6, 0x0f, 0xd4, 0x16, 0x01, 0x1b, 0xe8, 0x3c, 0x92,
+ 0x67, 0x66, 0xe3, 0x6c, 0x9a, 0xff, 0x61, 0x66, 0xfe, 0xd3, 0xa6, 0xb2,
+ 0x7d, 0xa5, 0xb3, 0x1b,
+};
+static const struct drbg_kat_pr_false kat1769_t = {
+ 13, kat1769_entropyin, kat1769_nonce, kat1769_persstr,
+ kat1769_entropyinreseed, kat1769_addinreseed, kat1769_addin0,
+ kat1769_addin1, kat1769_retbits
+};
+static const struct drbg_kat kat1769 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1769_t
+};
+
+static const unsigned char kat1770_entropyin[] = {
+ 0xd5, 0x31, 0xfd, 0x35, 0xf3, 0x1c, 0xb0, 0xfd, 0xd6, 0x69, 0x20, 0x55,
+ 0x41, 0x4c, 0x69, 0xe9, 0xa3, 0x3f, 0x8d, 0xdd, 0x69, 0x76, 0x46, 0x79,
+};
+static const unsigned char kat1770_nonce[] = {
+ 0x90, 0xb2, 0x85, 0xdd, 0xe8, 0x1d, 0xac, 0x32, 0x39, 0x9b, 0x10, 0xa2,
+ 0x60, 0x91, 0x8a, 0x57,
+};
+static const unsigned char kat1770_persstr[] = {0};
+static const unsigned char kat1770_entropyinreseed[] = {
+ 0xc1, 0x3a, 0x65, 0x16, 0x18, 0xfe, 0x8b, 0x94, 0x6d, 0xd3, 0xe4, 0x72,
+ 0x74, 0x16, 0xdd, 0x78, 0x10, 0x48, 0x21, 0x4f, 0x4e, 0x65, 0xbf, 0x05,
+};
+static const unsigned char kat1770_addinreseed[] = {
+ 0x5d, 0x38, 0x50, 0x72, 0xd2, 0x50, 0x18, 0xf3, 0x57, 0xc8, 0x25, 0x5c,
+ 0x33, 0x0c, 0xc5, 0xac, 0x3c, 0x49, 0x00, 0x23, 0x23, 0x2d, 0x6b, 0x42,
+ 0x30, 0x0c, 0x86, 0x8d, 0xdb, 0xb1, 0x8b, 0xa7,
+};
+static const unsigned char kat1770_addin0[] = {
+ 0x84, 0x3b, 0xdd, 0x12, 0x4e, 0x61, 0x0e, 0x6d, 0x4a, 0x8b, 0x8a, 0x57,
+ 0x0b, 0x6e, 0xaa, 0xa4, 0x20, 0x8a, 0xc4, 0xc9, 0x0a, 0x63, 0x46, 0xae,
+ 0xc5, 0x68, 0xbc, 0xb4, 0x0e, 0x7e, 0xfd, 0x9c,
+};
+static const unsigned char kat1770_addin1[] = {
+ 0xae, 0xc9, 0x86, 0x64, 0xda, 0xd6, 0x63, 0x48, 0x33, 0xe2, 0x77, 0x81,
+ 0xc6, 0x26, 0x41, 0xf6, 0x74, 0x9c, 0xce, 0xbb, 0x40, 0x7a, 0xc2, 0xfa,
+ 0x04, 0x06, 0x3b, 0x47, 0xd1, 0x87, 0xc6, 0xa1,
+};
+static const unsigned char kat1770_retbits[] = {
+ 0xa4, 0x97, 0x49, 0x7e, 0x07, 0x22, 0x35, 0x13, 0xb6, 0xde, 0xcd, 0xcb,
+ 0x3c, 0x1c, 0xa6, 0x20, 0x43, 0xda, 0x0b, 0x2d, 0x65, 0xa1, 0x31, 0x6a,
+ 0x5d, 0x24, 0x5f, 0x61, 0x70, 0xb2, 0x7b, 0x08, 0x04, 0x0c, 0x0c, 0xbd,
+ 0xcc, 0x59, 0x6e, 0x0e, 0xeb, 0x8f, 0x0f, 0xb8, 0xf3, 0x90, 0x7a, 0x57,
+ 0xf4, 0x1c, 0xfe, 0xa1, 0xe0, 0x4d, 0xed, 0xc4, 0x5c, 0x58, 0x6b, 0xfd,
+ 0x26, 0xba, 0x45, 0x23,
+};
+static const struct drbg_kat_pr_false kat1770_t = {
+ 14, kat1770_entropyin, kat1770_nonce, kat1770_persstr,
+ kat1770_entropyinreseed, kat1770_addinreseed, kat1770_addin0,
+ kat1770_addin1, kat1770_retbits
+};
+static const struct drbg_kat kat1770 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1770_t
+};
+
+static const unsigned char kat1771_entropyin[] = {
+ 0xa7, 0x11, 0x8c, 0x15, 0x5d, 0x69, 0x70, 0x55, 0x19, 0xf1, 0xa5, 0x6f,
+ 0x3f, 0x52, 0x4e, 0xfc, 0xb3, 0x2a, 0xeb, 0x32, 0xa9, 0x8a, 0xe8, 0x1a,
+};
+static const unsigned char kat1771_nonce[] = {
+ 0x02, 0x07, 0xf3, 0x53, 0x4f, 0x11, 0x8c, 0x71, 0xcc, 0x11, 0xf1, 0x81,
+ 0xf5, 0xc6, 0xfc, 0x0f,
+};
+static const unsigned char kat1771_persstr[] = {
+ 0x8d, 0x11, 0x49, 0x1c, 0x83, 0xde, 0xde, 0x01, 0x2f, 0x27, 0x1c, 0x26,
+ 0x3f, 0x8d, 0x42, 0x46, 0xc3, 0xef, 0xdf, 0xdd, 0x28, 0x87, 0x10, 0xc6,
+ 0x7e, 0x97, 0x9f, 0x4f, 0xbb, 0xc8, 0x64, 0xcd,
+};
+static const unsigned char kat1771_entropyinreseed[] = {
+ 0x66, 0xab, 0xef, 0x82, 0xf7, 0x94, 0xf3, 0x5e, 0xd9, 0x42, 0x82, 0xde,
+ 0xef, 0x0d, 0xfc, 0x22, 0x8c, 0xa5, 0xec, 0x83, 0x25, 0x7e, 0x81, 0xd7,
+};
+static const unsigned char kat1771_addinreseed[] = {0};
+static const unsigned char kat1771_addin0[] = {0};
+static const unsigned char kat1771_addin1[] = {0};
+static const unsigned char kat1771_retbits[] = {
+ 0x5d, 0xdd, 0x46, 0xba, 0xf5, 0xc6, 0xa5, 0xe3, 0x09, 0x43, 0xc5, 0xbd,
+ 0xa1, 0x2f, 0x5d, 0xb8, 0xec, 0x19, 0xc5, 0x37, 0xf1, 0x70, 0x2a, 0xfe,
+ 0xa3, 0x12, 0x92, 0xb4, 0xa9, 0xa8, 0xd4, 0x25, 0x76, 0x3a, 0x9f, 0x92,
+ 0xb3, 0x6f, 0x61, 0x6f, 0x4f, 0xfd, 0xb9, 0x16, 0x07, 0x74, 0xd8, 0x77,
+ 0x64, 0x33, 0xb7, 0xc0, 0x5c, 0x46, 0xfe, 0x6f, 0x66, 0xc4, 0x03, 0x73,
+ 0x6a, 0x04, 0x4b, 0xe5,
+};
+static const struct drbg_kat_pr_false kat1771_t = {
+ 0, kat1771_entropyin, kat1771_nonce, kat1771_persstr,
+ kat1771_entropyinreseed, kat1771_addinreseed, kat1771_addin0,
+ kat1771_addin1, kat1771_retbits
+};
+static const struct drbg_kat kat1771 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1771_t
+};
+
+static const unsigned char kat1772_entropyin[] = {
+ 0x45, 0xc2, 0xaf, 0x2d, 0x36, 0x15, 0xd4, 0x49, 0x3b, 0xeb, 0x79, 0x22,
+ 0x0c, 0x2f, 0x78, 0x2b, 0xa5, 0x64, 0x2e, 0xf4, 0x45, 0x47, 0x14, 0x7d,
+};
+static const unsigned char kat1772_nonce[] = {
+ 0xaf, 0x67, 0x2d, 0x64, 0x5a, 0x68, 0x34, 0xd6, 0x56, 0x5f, 0xb3, 0x2d,
+ 0x15, 0xd4, 0x08, 0x5c,
+};
+static const unsigned char kat1772_persstr[] = {
+ 0x07, 0x58, 0xc2, 0x4f, 0xc9, 0x2f, 0x12, 0x6b, 0x41, 0xea, 0x90, 0x6d,
+ 0xa2, 0xbd, 0x9e, 0x8f, 0x97, 0x32, 0x70, 0x3b, 0x13, 0xc4, 0xf2, 0x33,
+ 0x4c, 0x96, 0xfb, 0x55, 0xbd, 0xbe, 0xa9, 0x98,
+};
+static const unsigned char kat1772_entropyinreseed[] = {
+ 0x8d, 0xd1, 0x5d, 0x94, 0x4c, 0xbb, 0xcc, 0x54, 0x13, 0x99, 0x6d, 0x32,
+ 0x16, 0x20, 0xfa, 0x12, 0x64, 0x78, 0x95, 0x34, 0xbd, 0x22, 0x8f, 0xc1,
+};
+static const unsigned char kat1772_addinreseed[] = {0};
+static const unsigned char kat1772_addin0[] = {0};
+static const unsigned char kat1772_addin1[] = {0};
+static const unsigned char kat1772_retbits[] = {
+ 0x6e, 0x4c, 0x6c, 0xf2, 0x19, 0x2c, 0x95, 0x93, 0x76, 0xe1, 0xd9, 0xf3,
+ 0xfe, 0xf0, 0xa7, 0x15, 0xa9, 0x93, 0x2b, 0x1c, 0xad, 0x08, 0xb9, 0xc6,
+ 0x53, 0xe7, 0xb1, 0xac, 0xee, 0x53, 0x13, 0x05, 0x1f, 0xe2, 0xf4, 0x3c,
+ 0xdb, 0xe0, 0xf1, 0x6a, 0x56, 0x50, 0x39, 0xd5, 0x47, 0xca, 0xb6, 0xde,
+ 0x9b, 0xbc, 0xbe, 0x3a, 0xf1, 0x2d, 0x90, 0x57, 0xa9, 0xbc, 0x3f, 0xeb,
+ 0x98, 0xd7, 0x21, 0x0e,
+};
+static const struct drbg_kat_pr_false kat1772_t = {
+ 1, kat1772_entropyin, kat1772_nonce, kat1772_persstr,
+ kat1772_entropyinreseed, kat1772_addinreseed, kat1772_addin0,
+ kat1772_addin1, kat1772_retbits
+};
+static const struct drbg_kat kat1772 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1772_t
+};
+
+static const unsigned char kat1773_entropyin[] = {
+ 0x5f, 0xe4, 0x90, 0x5c, 0x81, 0x0f, 0xcc, 0xff, 0xd3, 0xe2, 0x98, 0x5f,
+ 0x20, 0x94, 0x69, 0x0d, 0x7a, 0x58, 0x1f, 0x3e, 0x5a, 0xd3, 0x99, 0x71,
+};
+static const unsigned char kat1773_nonce[] = {
+ 0x3a, 0x12, 0xf5, 0xf2, 0xd9, 0x06, 0x27, 0xb9, 0xb7, 0x21, 0x2c, 0x33,
+ 0xbf, 0xf3, 0xde, 0x9a,
+};
+static const unsigned char kat1773_persstr[] = {
+ 0xb4, 0x59, 0x1d, 0xc7, 0xef, 0x27, 0x05, 0x80, 0x8e, 0xdd, 0xe8, 0x0a,
+ 0x37, 0xf6, 0x25, 0x70, 0x5e, 0x5b, 0xa2, 0xab, 0x0d, 0x4c, 0x79, 0x4f,
+ 0x10, 0xac, 0x0d, 0xf6, 0x35, 0x3f, 0x5c, 0x15,
+};
+static const unsigned char kat1773_entropyinreseed[] = {
+ 0x79, 0xd3, 0xf0, 0x84, 0x70, 0xe1, 0x89, 0x09, 0xe8, 0x5a, 0x04, 0x10,
+ 0xc7, 0xe4, 0x85, 0x5b, 0x15, 0x5c, 0xd5, 0x9b, 0x2c, 0xec, 0xc4, 0x7a,
+};
+static const unsigned char kat1773_addinreseed[] = {0};
+static const unsigned char kat1773_addin0[] = {0};
+static const unsigned char kat1773_addin1[] = {0};
+static const unsigned char kat1773_retbits[] = {
+ 0xc4, 0x97, 0xbe, 0x7e, 0xae, 0x97, 0x4f, 0x2e, 0xd6, 0x5d, 0xfb, 0x0f,
+ 0x8b, 0x6c, 0xbb, 0x3c, 0xe0, 0x5d, 0xb8, 0x2f, 0xf3, 0x1f, 0x36, 0xf0,
+ 0x4a, 0xaa, 0x44, 0xe1, 0x9b, 0x08, 0x28, 0xd0, 0xc5, 0xfd, 0xb5, 0x9c,
+ 0xf5, 0x88, 0x52, 0x9e, 0x5f, 0x7e, 0xb0, 0x48, 0xc4, 0x2d, 0x50, 0x3e,
+ 0x5b, 0xe7, 0x37, 0x26, 0x57, 0x34, 0x7e, 0x9d, 0x3e, 0xdb, 0xde, 0xd3,
+ 0x4d, 0xe3, 0x16, 0x33,
+};
+static const struct drbg_kat_pr_false kat1773_t = {
+ 2, kat1773_entropyin, kat1773_nonce, kat1773_persstr,
+ kat1773_entropyinreseed, kat1773_addinreseed, kat1773_addin0,
+ kat1773_addin1, kat1773_retbits
+};
+static const struct drbg_kat kat1773 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1773_t
+};
+
+static const unsigned char kat1774_entropyin[] = {
+ 0x72, 0x23, 0x17, 0x5b, 0x57, 0xe3, 0xe3, 0xa2, 0x2b, 0x95, 0xbe, 0xde,
+ 0x4b, 0x62, 0xb2, 0x46, 0xee, 0xcb, 0x21, 0x7e, 0xf8, 0x71, 0x47, 0xa4,
+};
+static const unsigned char kat1774_nonce[] = {
+ 0xed, 0x25, 0xc6, 0xf4, 0xc4, 0x87, 0x9f, 0xa9, 0x9f, 0x17, 0x5b, 0x2e,
+ 0x47, 0x0c, 0x8d, 0xee,
+};
+static const unsigned char kat1774_persstr[] = {
+ 0xad, 0x21, 0xbf, 0x9e, 0x96, 0xa9, 0x1b, 0x56, 0xfe, 0x9b, 0x19, 0x9a,
+ 0x16, 0xa6, 0x74, 0x88, 0x5a, 0xbf, 0x22, 0x34, 0x83, 0xc7, 0x6c, 0x6c,
+ 0x27, 0x9e, 0xcb, 0x25, 0x3d, 0xc5, 0x80, 0x0b,
+};
+static const unsigned char kat1774_entropyinreseed[] = {
+ 0x54, 0x4b, 0xdd, 0xff, 0x07, 0xfb, 0x62, 0x46, 0xfe, 0xcf, 0x5a, 0xa4,
+ 0xec, 0x7a, 0x88, 0x35, 0x0a, 0xfe, 0x27, 0x58, 0x24, 0x0b, 0xc5, 0x58,
+};
+static const unsigned char kat1774_addinreseed[] = {0};
+static const unsigned char kat1774_addin0[] = {0};
+static const unsigned char kat1774_addin1[] = {0};
+static const unsigned char kat1774_retbits[] = {
+ 0x3e, 0x52, 0x22, 0x4e, 0x48, 0x91, 0xa1, 0x7c, 0x10, 0x19, 0xd2, 0x8d,
+ 0x0c, 0x90, 0xb0, 0x36, 0x59, 0x28, 0x66, 0x0f, 0x8a, 0xf1, 0xf6, 0x6f,
+ 0xab, 0xd6, 0xe6, 0x87, 0xd8, 0x1c, 0xa7, 0x24, 0xf1, 0x34, 0x01, 0x4c,
+ 0x72, 0x59, 0xd5, 0x3f, 0xe7, 0x95, 0xab, 0xc3, 0x4b, 0x6f, 0xdc, 0x03,
+ 0x9d, 0x9c, 0xf2, 0xd2, 0x46, 0xcc, 0x73, 0x81, 0x05, 0xe1, 0x7b, 0xd5,
+ 0x54, 0x75, 0x2f, 0x73,
+};
+static const struct drbg_kat_pr_false kat1774_t = {
+ 3, kat1774_entropyin, kat1774_nonce, kat1774_persstr,
+ kat1774_entropyinreseed, kat1774_addinreseed, kat1774_addin0,
+ kat1774_addin1, kat1774_retbits
+};
+static const struct drbg_kat kat1774 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1774_t
+};
+
+static const unsigned char kat1775_entropyin[] = {
+ 0x1d, 0xeb, 0x31, 0x28, 0xbd, 0x87, 0x02, 0x2d, 0xd2, 0xff, 0x7a, 0xbe,
+ 0xaf, 0x7b, 0xfd, 0xac, 0x66, 0x14, 0x0c, 0x31, 0x9f, 0x1d, 0xd2, 0x4d,
+};
+static const unsigned char kat1775_nonce[] = {
+ 0xd6, 0x50, 0x4f, 0x4d, 0xbb, 0xe2, 0xfe, 0xcc, 0xd8, 0x9c, 0x9c, 0x22,
+ 0x5c, 0xef, 0x0c, 0x7c,
+};
+static const unsigned char kat1775_persstr[] = {
+ 0x26, 0x67, 0x37, 0xc2, 0xc2, 0x82, 0x5f, 0x2d, 0x0c, 0x85, 0x39, 0x75,
+ 0x7f, 0xf8, 0xf9, 0xe8, 0x5a, 0xd9, 0x4f, 0xa4, 0xec, 0x8e, 0x2a, 0x29,
+ 0x58, 0x02, 0x5f, 0x0f, 0xc2, 0xc6, 0x64, 0x87,
+};
+static const unsigned char kat1775_entropyinreseed[] = {
+ 0xf9, 0x67, 0x9a, 0x22, 0x0b, 0x82, 0xaf, 0x90, 0x38, 0x5c, 0x5e, 0x04,
+ 0xfc, 0xf8, 0x91, 0xca, 0xca, 0x12, 0x46, 0xc0, 0xec, 0xe0, 0x83, 0xfc,
+};
+static const unsigned char kat1775_addinreseed[] = {0};
+static const unsigned char kat1775_addin0[] = {0};
+static const unsigned char kat1775_addin1[] = {0};
+static const unsigned char kat1775_retbits[] = {
+ 0x9d, 0x41, 0x94, 0xc9, 0x88, 0xa7, 0xbf, 0x40, 0xd4, 0x7d, 0x40, 0x60,
+ 0x94, 0xb7, 0x27, 0x53, 0x40, 0xa6, 0x47, 0x43, 0x57, 0xc8, 0xf4, 0xee,
+ 0x5f, 0xce, 0xdb, 0x29, 0xf5, 0xc3, 0xc9, 0x7b, 0xb9, 0xf6, 0xdc, 0x95,
+ 0x7a, 0x4c, 0xe3, 0xce, 0x54, 0x1f, 0xe4, 0x3c, 0x4d, 0x2c, 0x54, 0x7c,
+ 0x85, 0xe4, 0x82, 0x32, 0x88, 0xaf, 0x9d, 0x47, 0xba, 0x8d, 0x4f, 0x89,
+ 0xd3, 0xd4, 0x6c, 0xaf,
+};
+static const struct drbg_kat_pr_false kat1775_t = {
+ 4, kat1775_entropyin, kat1775_nonce, kat1775_persstr,
+ kat1775_entropyinreseed, kat1775_addinreseed, kat1775_addin0,
+ kat1775_addin1, kat1775_retbits
+};
+static const struct drbg_kat kat1775 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1775_t
+};
+
+static const unsigned char kat1776_entropyin[] = {
+ 0x92, 0x29, 0x5b, 0xe3, 0x87, 0x66, 0xb6, 0x48, 0xcf, 0x44, 0x2b, 0x84,
+ 0xcd, 0x3e, 0xaf, 0x02, 0x28, 0x2e, 0x37, 0x8c, 0x00, 0xd3, 0xe4, 0x2f,
+};
+static const unsigned char kat1776_nonce[] = {
+ 0x8f, 0x1b, 0x22, 0x7a, 0xb2, 0xcc, 0x65, 0x64, 0x86, 0x8d, 0x7a, 0x21,
+ 0x9b, 0x36, 0xf5, 0xcc,
+};
+static const unsigned char kat1776_persstr[] = {
+ 0xb5, 0x72, 0xb2, 0xbe, 0xf8, 0x44, 0x03, 0xd8, 0xa2, 0x88, 0xf0, 0xa5,
+ 0x47, 0x5c, 0x00, 0xf1, 0x86, 0x94, 0x1f, 0x72, 0x88, 0x02, 0x3b, 0x8c,
+ 0xda, 0xca, 0x3e, 0xe6, 0x5c, 0x4b, 0x5e, 0x46,
+};
+static const unsigned char kat1776_entropyinreseed[] = {
+ 0xa5, 0xb8, 0xb6, 0xf4, 0x4d, 0x8a, 0xa2, 0x3b, 0x66, 0x21, 0x88, 0x85,
+ 0x45, 0x09, 0x8e, 0x25, 0x54, 0xa6, 0x81, 0x15, 0xdb, 0x1b, 0x3f, 0x0d,
+};
+static const unsigned char kat1776_addinreseed[] = {0};
+static const unsigned char kat1776_addin0[] = {0};
+static const unsigned char kat1776_addin1[] = {0};
+static const unsigned char kat1776_retbits[] = {
+ 0xa1, 0x1e, 0x67, 0xa3, 0x53, 0xa2, 0xe6, 0x4e, 0xe0, 0x60, 0x8e, 0xea,
+ 0x12, 0xe6, 0xdb, 0x0b, 0x35, 0xc1, 0xc6, 0xd9, 0xeb, 0xf8, 0x86, 0x9b,
+ 0xc4, 0xea, 0x48, 0x06, 0x00, 0x9b, 0x42, 0x3c, 0x68, 0xc2, 0xf6, 0xb3,
+ 0x91, 0x30, 0xa0, 0x82, 0xed, 0x6b, 0x06, 0x3a, 0xd5, 0x7b, 0xc2, 0xd7,
+ 0x55, 0x69, 0xb2, 0x21, 0x64, 0x7c, 0x9b, 0xd1, 0xc0, 0x38, 0xa7, 0x36,
+ 0x04, 0xdf, 0x2c, 0xd5,
+};
+static const struct drbg_kat_pr_false kat1776_t = {
+ 5, kat1776_entropyin, kat1776_nonce, kat1776_persstr,
+ kat1776_entropyinreseed, kat1776_addinreseed, kat1776_addin0,
+ kat1776_addin1, kat1776_retbits
+};
+static const struct drbg_kat kat1776 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1776_t
+};
+
+static const unsigned char kat1777_entropyin[] = {
+ 0x0b, 0x6e, 0xa6, 0x6e, 0x96, 0x19, 0xc8, 0xd3, 0xe1, 0xbd, 0x52, 0xb3,
+ 0x65, 0x62, 0x8a, 0x4a, 0x0b, 0x7f, 0x94, 0x83, 0x72, 0xdf, 0x28, 0x53,
+};
+static const unsigned char kat1777_nonce[] = {
+ 0x6c, 0xba, 0xf0, 0x2c, 0x17, 0x3d, 0x73, 0x9b, 0x00, 0x94, 0xc0, 0xa2,
+ 0x5e, 0xf2, 0x0a, 0x54,
+};
+static const unsigned char kat1777_persstr[] = {
+ 0x2d, 0x23, 0xdc, 0x58, 0x40, 0xf8, 0xfd, 0xcc, 0x8a, 0x8b, 0x93, 0xce,
+ 0x30, 0x14, 0x18, 0xfa, 0xa8, 0x17, 0xec, 0xc6, 0x61, 0x2f, 0xf0, 0xc9,
+ 0x1b, 0x01, 0xad, 0x7e, 0x22, 0xa8, 0x64, 0xe9,
+};
+static const unsigned char kat1777_entropyinreseed[] = {
+ 0xed, 0xf7, 0x63, 0x85, 0xd2, 0xc9, 0x95, 0x16, 0x98, 0x8e, 0x91, 0x86,
+ 0x9e, 0x09, 0xe1, 0xc0, 0x7e, 0x65, 0x56, 0x55, 0x42, 0x84, 0x74, 0xd4,
+};
+static const unsigned char kat1777_addinreseed[] = {0};
+static const unsigned char kat1777_addin0[] = {0};
+static const unsigned char kat1777_addin1[] = {0};
+static const unsigned char kat1777_retbits[] = {
+ 0x17, 0x57, 0xea, 0xd1, 0x4a, 0x22, 0xc4, 0xce, 0x8c, 0xd1, 0x90, 0xfd,
+ 0xa3, 0x67, 0x10, 0xc3, 0xee, 0x80, 0x56, 0x26, 0x8b, 0xd6, 0xef, 0x44,
+ 0x8b, 0xc3, 0x8a, 0x34, 0x05, 0x7d, 0xaa, 0x0d, 0x55, 0xe7, 0x09, 0xbb,
+ 0x20, 0xfc, 0x72, 0xbb, 0xb5, 0xd4, 0xc1, 0xfa, 0x16, 0xb4, 0x04, 0x26,
+ 0x9f, 0x94, 0x68, 0xc3, 0x02, 0x9a, 0xd4, 0x44, 0x48, 0x00, 0x5d, 0x5b,
+ 0xe0, 0xf4, 0x55, 0x26,
+};
+static const struct drbg_kat_pr_false kat1777_t = {
+ 6, kat1777_entropyin, kat1777_nonce, kat1777_persstr,
+ kat1777_entropyinreseed, kat1777_addinreseed, kat1777_addin0,
+ kat1777_addin1, kat1777_retbits
+};
+static const struct drbg_kat kat1777 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1777_t
+};
+
+static const unsigned char kat1778_entropyin[] = {
+ 0xd0, 0x10, 0x00, 0x3f, 0x83, 0x5e, 0xce, 0x36, 0xbe, 0x84, 0xe2, 0x53,
+ 0xeb, 0xb8, 0x29, 0xb6, 0x68, 0x9a, 0xe0, 0x55, 0x82, 0xda, 0x39, 0x9a,
+};
+static const unsigned char kat1778_nonce[] = {
+ 0x17, 0x28, 0x1f, 0x73, 0x42, 0x7d, 0x33, 0x1f, 0x15, 0x9d, 0xc5, 0xcc,
+ 0xa3, 0xb8, 0x42, 0x69,
+};
+static const unsigned char kat1778_persstr[] = {
+ 0x9a, 0x9c, 0x95, 0x40, 0xe6, 0xf1, 0x77, 0xfd, 0xe4, 0x0a, 0xda, 0x55,
+ 0xcf, 0x6d, 0xbc, 0xb5, 0x3c, 0xf3, 0x00, 0x52, 0xbf, 0x69, 0xfb, 0xfd,
+ 0x10, 0x41, 0x95, 0xdb, 0x59, 0x69, 0x95, 0x74,
+};
+static const unsigned char kat1778_entropyinreseed[] = {
+ 0x6b, 0x72, 0x93, 0x36, 0x10, 0xd8, 0xef, 0xda, 0xb5, 0xb2, 0x36, 0x56,
+ 0xa6, 0x57, 0xf6, 0x93, 0x45, 0x92, 0xf5, 0xc8, 0x6e, 0x01, 0x8b, 0x4d,
+};
+static const unsigned char kat1778_addinreseed[] = {0};
+static const unsigned char kat1778_addin0[] = {0};
+static const unsigned char kat1778_addin1[] = {0};
+static const unsigned char kat1778_retbits[] = {
+ 0xae, 0xf5, 0xae, 0x88, 0x2c, 0xcb, 0x2f, 0xae, 0xcf, 0xf8, 0x4c, 0x64,
+ 0x84, 0x24, 0x8f, 0xc1, 0x3e, 0xd8, 0x07, 0x91, 0xe8, 0x92, 0x66, 0x75,
+ 0xa9, 0xc0, 0x11, 0x84, 0xd8, 0x43, 0xe0, 0xaa, 0x15, 0x4d, 0x97, 0xdd,
+ 0x17, 0x59, 0xe4, 0xef, 0xb1, 0x78, 0x8b, 0x0e, 0xc8, 0xfb, 0xcd, 0xd6,
+ 0xe5, 0x9e, 0x9f, 0x1d, 0xb0, 0x2a, 0xd4, 0x7c, 0x8b, 0x16, 0x78, 0x1f,
+ 0xe8, 0x13, 0xc2, 0x50,
+};
+static const struct drbg_kat_pr_false kat1778_t = {
+ 7, kat1778_entropyin, kat1778_nonce, kat1778_persstr,
+ kat1778_entropyinreseed, kat1778_addinreseed, kat1778_addin0,
+ kat1778_addin1, kat1778_retbits
+};
+static const struct drbg_kat kat1778 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1778_t
+};
+
+static const unsigned char kat1779_entropyin[] = {
+ 0xa9, 0xf4, 0x08, 0xa0, 0xa9, 0x72, 0x85, 0xf0, 0xc5, 0x34, 0x16, 0xe6,
+ 0x0d, 0xf5, 0x5a, 0xd4, 0x6a, 0x1b, 0xee, 0x91, 0xcc, 0x9d, 0x46, 0x36,
+};
+static const unsigned char kat1779_nonce[] = {
+ 0x73, 0xc7, 0x85, 0x3f, 0xa6, 0x76, 0x81, 0xe4, 0xc2, 0x55, 0x87, 0xb5,
+ 0x47, 0x11, 0x0e, 0xb2,
+};
+static const unsigned char kat1779_persstr[] = {
+ 0x3a, 0xe2, 0x6b, 0x8b, 0x2e, 0xbd, 0x1a, 0x15, 0x31, 0x61, 0x00, 0x96,
+ 0x9d, 0x33, 0x5a, 0x38, 0x39, 0x45, 0xfd, 0xf6, 0xbf, 0x9f, 0x7c, 0x1c,
+ 0x65, 0x83, 0x11, 0x81, 0x16, 0x79, 0x93, 0x3f,
+};
+static const unsigned char kat1779_entropyinreseed[] = {
+ 0x87, 0x7b, 0xf6, 0xc9, 0x1d, 0x63, 0x45, 0xf7, 0x77, 0xdc, 0x1d, 0xf5,
+ 0x65, 0x0c, 0x1f, 0xe4, 0x0f, 0x74, 0xca, 0xde, 0x7b, 0x3b, 0x29, 0xa3,
+};
+static const unsigned char kat1779_addinreseed[] = {0};
+static const unsigned char kat1779_addin0[] = {0};
+static const unsigned char kat1779_addin1[] = {0};
+static const unsigned char kat1779_retbits[] = {
+ 0x67, 0x9f, 0xdc, 0xc2, 0xc5, 0xb1, 0x0b, 0xcf, 0xee, 0x0a, 0xb3, 0x22,
+ 0xa1, 0xa3, 0xfb, 0x43, 0xa8, 0x30, 0x03, 0x9e, 0x9c, 0x23, 0x57, 0x4f,
+ 0xc6, 0xee, 0x77, 0x2c, 0xfe, 0x6e, 0xf7, 0x99, 0x1d, 0x35, 0x0e, 0x52,
+ 0xc0, 0xcb, 0xd7, 0xb6, 0xb3, 0xe4, 0xed, 0xb2, 0xab, 0xd3, 0xbf, 0xff,
+ 0xf6, 0xd7, 0x22, 0xbb, 0xae, 0x43, 0x30, 0x56, 0x31, 0xdf, 0x0a, 0xbd,
+ 0x10, 0x9d, 0x6b, 0xdd,
+};
+static const struct drbg_kat_pr_false kat1779_t = {
+ 8, kat1779_entropyin, kat1779_nonce, kat1779_persstr,
+ kat1779_entropyinreseed, kat1779_addinreseed, kat1779_addin0,
+ kat1779_addin1, kat1779_retbits
+};
+static const struct drbg_kat kat1779 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1779_t
+};
+
+static const unsigned char kat1780_entropyin[] = {
+ 0xdb, 0x35, 0x5d, 0x72, 0x6c, 0x79, 0xea, 0xc6, 0xd6, 0x22, 0x58, 0xed,
+ 0x92, 0xd4, 0xf3, 0x1c, 0xd3, 0xe6, 0xa8, 0xe0, 0xcd, 0xa0, 0x52, 0x74,
+};
+static const unsigned char kat1780_nonce[] = {
+ 0xaf, 0x52, 0xb3, 0xf0, 0xd4, 0x3e, 0x3a, 0x03, 0x10, 0xda, 0x57, 0xb4,
+ 0xd0, 0xc6, 0xa2, 0x84,
+};
+static const unsigned char kat1780_persstr[] = {
+ 0x51, 0xd6, 0xb8, 0x40, 0x3b, 0x7a, 0x37, 0x29, 0xc5, 0xe0, 0x5d, 0x59,
+ 0x5b, 0x6f, 0x38, 0x50, 0xd2, 0x20, 0xb2, 0x33, 0xf4, 0xec, 0x30, 0x52,
+ 0xab, 0x67, 0x8f, 0x4a, 0x3e, 0x1a, 0xb4, 0x29,
+};
+static const unsigned char kat1780_entropyinreseed[] = {
+ 0x9f, 0x1e, 0x57, 0x62, 0xf5, 0xc7, 0x5b, 0x1a, 0xc9, 0x8c, 0xb0, 0x68,
+ 0x81, 0x77, 0x39, 0xfe, 0xed, 0x86, 0xfa, 0xcd, 0x98, 0xfe, 0x85, 0xb1,
+};
+static const unsigned char kat1780_addinreseed[] = {0};
+static const unsigned char kat1780_addin0[] = {0};
+static const unsigned char kat1780_addin1[] = {0};
+static const unsigned char kat1780_retbits[] = {
+ 0x5e, 0x6a, 0xf3, 0x00, 0xa4, 0xff, 0x0c, 0x00, 0x42, 0xd1, 0xe8, 0xc5,
+ 0x1b, 0x0e, 0xac, 0x14, 0x90, 0x2b, 0x95, 0x94, 0xdb, 0x95, 0xc3, 0x5d,
+ 0xac, 0x8e, 0xb5, 0x31, 0x49, 0x66, 0x3c, 0x6a, 0xd5, 0x9f, 0x9f, 0x47,
+ 0x5c, 0x68, 0x02, 0xb1, 0x1a, 0xa0, 0x94, 0x49, 0x44, 0x13, 0xff, 0xc6,
+ 0x1a, 0xca, 0x80, 0x6a, 0x45, 0x57, 0x20, 0x8b, 0x0c, 0x86, 0x3b, 0x0c,
+ 0x10, 0xa6, 0x0c, 0xdf,
+};
+static const struct drbg_kat_pr_false kat1780_t = {
+ 9, kat1780_entropyin, kat1780_nonce, kat1780_persstr,
+ kat1780_entropyinreseed, kat1780_addinreseed, kat1780_addin0,
+ kat1780_addin1, kat1780_retbits
+};
+static const struct drbg_kat kat1780 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1780_t
+};
+
+static const unsigned char kat1781_entropyin[] = {
+ 0x4d, 0xc6, 0x5a, 0xbe, 0x7e, 0xdc, 0x66, 0x28, 0xa9, 0xce, 0x20, 0xfe,
+ 0xcf, 0x1c, 0xa9, 0xcc, 0x11, 0xe1, 0x06, 0xc2, 0x47, 0xaa, 0xdc, 0x78,
+};
+static const unsigned char kat1781_nonce[] = {
+ 0x26, 0x9e, 0x93, 0xba, 0xd3, 0x8f, 0xf6, 0x9a, 0xf7, 0x23, 0x30, 0xe5,
+ 0xfb, 0x29, 0x60, 0xb1,
+};
+static const unsigned char kat1781_persstr[] = {
+ 0x5e, 0x10, 0x57, 0x8b, 0xea, 0x14, 0xb9, 0x80, 0x6c, 0x47, 0x20, 0xf1,
+ 0x99, 0xde, 0x43, 0xd4, 0xb3, 0x49, 0x87, 0x45, 0xd3, 0x67, 0xce, 0x6a,
+ 0xea, 0x80, 0x5d, 0x17, 0x6b, 0x83, 0xaf, 0x85,
+};
+static const unsigned char kat1781_entropyinreseed[] = {
+ 0xec, 0xf4, 0xf2, 0xa5, 0x15, 0x79, 0x4d, 0x3f, 0x4e, 0x19, 0x82, 0x46,
+ 0xf7, 0x72, 0x64, 0x5d, 0x34, 0x12, 0x14, 0xa8, 0xe2, 0x73, 0xdd, 0xab,
+};
+static const unsigned char kat1781_addinreseed[] = {0};
+static const unsigned char kat1781_addin0[] = {0};
+static const unsigned char kat1781_addin1[] = {0};
+static const unsigned char kat1781_retbits[] = {
+ 0x41, 0x33, 0x5b, 0x22, 0x2f, 0x06, 0x3d, 0x9f, 0x1e, 0x8c, 0x09, 0xb5,
+ 0xb1, 0xfd, 0xf9, 0xd2, 0x0c, 0x8d, 0x09, 0x75, 0x93, 0x91, 0x7a, 0x55,
+ 0x32, 0x7f, 0x81, 0x28, 0xf5, 0xbd, 0x8a, 0xbd, 0x42, 0xa2, 0xa8, 0x9a,
+ 0x86, 0xd1, 0x0a, 0xd6, 0x36, 0xea, 0x8d, 0xdc, 0x0a, 0xad, 0xf4, 0x79,
+ 0xc2, 0xe6, 0xe6, 0x78, 0x6e, 0xe1, 0x66, 0xd3, 0x37, 0xd8, 0xcb, 0x32,
+ 0x63, 0xd6, 0xb3, 0xfc,
+};
+static const struct drbg_kat_pr_false kat1781_t = {
+ 10, kat1781_entropyin, kat1781_nonce, kat1781_persstr,
+ kat1781_entropyinreseed, kat1781_addinreseed, kat1781_addin0,
+ kat1781_addin1, kat1781_retbits
+};
+static const struct drbg_kat kat1781 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1781_t
+};
+
+static const unsigned char kat1782_entropyin[] = {
+ 0xb9, 0x86, 0x27, 0x6f, 0x9f, 0xbb, 0x11, 0xab, 0xc1, 0x2a, 0x14, 0x71,
+ 0xbe, 0xb8, 0x2c, 0xf5, 0xe8, 0xcc, 0xc5, 0x3c, 0x02, 0xdc, 0x35, 0x27,
+};
+static const unsigned char kat1782_nonce[] = {
+ 0x16, 0x5b, 0x23, 0xa4, 0x47, 0x84, 0x87, 0xe0, 0xa4, 0xef, 0xb4, 0x0c,
+ 0xd3, 0xf8, 0x63, 0x53,
+};
+static const unsigned char kat1782_persstr[] = {
+ 0xa8, 0x20, 0xfc, 0x95, 0x88, 0x68, 0x89, 0x4b, 0xba, 0xaa, 0xdb, 0x33,
+ 0x3a, 0xec, 0x48, 0xd2, 0xf9, 0xca, 0x8e, 0xb3, 0x37, 0x80, 0xb2, 0x17,
+ 0xed, 0x3b, 0xb8, 0xaa, 0xb7, 0x92, 0xdd, 0xc3,
+};
+static const unsigned char kat1782_entropyinreseed[] = {
+ 0x10, 0xc4, 0x47, 0x62, 0x37, 0xb2, 0x3c, 0xe6, 0xf5, 0xff, 0x6b, 0xf2,
+ 0x69, 0x0c, 0xf8, 0x6a, 0x9e, 0x0a, 0x5d, 0xea, 0xa2, 0xec, 0x94, 0x5a,
+};
+static const unsigned char kat1782_addinreseed[] = {0};
+static const unsigned char kat1782_addin0[] = {0};
+static const unsigned char kat1782_addin1[] = {0};
+static const unsigned char kat1782_retbits[] = {
+ 0xce, 0x03, 0xa4, 0x7a, 0xf0, 0xf4, 0xde, 0xaa, 0x7b, 0xa0, 0xf2, 0xac,
+ 0x33, 0x2d, 0x4c, 0x46, 0x7d, 0xd1, 0xbe, 0xa4, 0xde, 0x27, 0x91, 0xab,
+ 0xca, 0x97, 0x55, 0x43, 0xae, 0x78, 0x56, 0x09, 0x67, 0xe6, 0x75, 0xe9,
+ 0x0d, 0x1e, 0xcd, 0xb6, 0x64, 0x3f, 0x39, 0xaa, 0x75, 0x3b, 0x86, 0x19,
+ 0xb9, 0xe2, 0xa7, 0x6e, 0x46, 0x39, 0xe6, 0x27, 0x02, 0xde, 0xa2, 0x3c,
+ 0x6e, 0x60, 0x9b, 0x71,
+};
+static const struct drbg_kat_pr_false kat1782_t = {
+ 11, kat1782_entropyin, kat1782_nonce, kat1782_persstr,
+ kat1782_entropyinreseed, kat1782_addinreseed, kat1782_addin0,
+ kat1782_addin1, kat1782_retbits
+};
+static const struct drbg_kat kat1782 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1782_t
+};
+
+static const unsigned char kat1783_entropyin[] = {
+ 0xd6, 0x46, 0x5c, 0x9a, 0xb5, 0x5c, 0x68, 0x19, 0x3f, 0x5b, 0xe8, 0x7f,
+ 0x10, 0x24, 0x08, 0xe2, 0x2b, 0xdc, 0x9b, 0x29, 0x81, 0x56, 0x6f, 0xf9,
+};
+static const unsigned char kat1783_nonce[] = {
+ 0x0c, 0x0b, 0xf9, 0xbd, 0x55, 0x5b, 0x91, 0x56, 0x42, 0x69, 0x3e, 0xd4,
+ 0x56, 0x92, 0xb2, 0xe3,
+};
+static const unsigned char kat1783_persstr[] = {
+ 0x58, 0x98, 0xc4, 0x99, 0x9a, 0x56, 0x75, 0x8f, 0x67, 0x91, 0x94, 0xa9,
+ 0x1d, 0x88, 0xaa, 0x1f, 0xfe, 0xa8, 0x61, 0x74, 0x3c, 0xbf, 0x99, 0xfb,
+ 0xf5, 0x3f, 0xf8, 0xeb, 0x91, 0xac, 0xa1, 0x85,
+};
+static const unsigned char kat1783_entropyinreseed[] = {
+ 0x82, 0x83, 0xc4, 0x8d, 0x8f, 0x77, 0x50, 0xad, 0x74, 0x63, 0x11, 0x97,
+ 0xa5, 0x8b, 0x30, 0xf2, 0xa5, 0x36, 0xbe, 0xd2, 0x60, 0x63, 0xff, 0x2e,
+};
+static const unsigned char kat1783_addinreseed[] = {0};
+static const unsigned char kat1783_addin0[] = {0};
+static const unsigned char kat1783_addin1[] = {0};
+static const unsigned char kat1783_retbits[] = {
+ 0x2f, 0x1f, 0x48, 0x4f, 0xa2, 0x76, 0x47, 0x65, 0x31, 0xc0, 0x9e, 0x2b,
+ 0x8a, 0x47, 0x45, 0x4f, 0xf4, 0xa7, 0x4b, 0x04, 0x23, 0x79, 0x3e, 0xfa,
+ 0x05, 0x6b, 0x41, 0x5b, 0xc8, 0x53, 0x59, 0x00, 0x76, 0xd3, 0x27, 0x73,
+ 0x69, 0xa7, 0x28, 0xae, 0xe6, 0x6c, 0x1f, 0x3b, 0xad, 0x91, 0x3f, 0x33,
+ 0xb4, 0x82, 0xcb, 0x8e, 0x0e, 0x80, 0x58, 0x91, 0xe2, 0x0a, 0xcf, 0x14,
+ 0x64, 0x4d, 0xd5, 0x5a,
+};
+static const struct drbg_kat_pr_false kat1783_t = {
+ 12, kat1783_entropyin, kat1783_nonce, kat1783_persstr,
+ kat1783_entropyinreseed, kat1783_addinreseed, kat1783_addin0,
+ kat1783_addin1, kat1783_retbits
+};
+static const struct drbg_kat kat1783 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1783_t
+};
+
+static const unsigned char kat1784_entropyin[] = {
+ 0x1e, 0xb6, 0x96, 0xf5, 0xc6, 0x4a, 0x3c, 0x49, 0x21, 0x85, 0xbe, 0x78,
+ 0x79, 0x89, 0xa3, 0xe0, 0x14, 0xe8, 0xd5, 0x52, 0x57, 0xf3, 0x9e, 0x1e,
+};
+static const unsigned char kat1784_nonce[] = {
+ 0x0d, 0x7b, 0x8a, 0x3d, 0x6b, 0xee, 0x62, 0x1d, 0x2a, 0x29, 0x74, 0x2c,
+ 0x05, 0x8e, 0x86, 0x66,
+};
+static const unsigned char kat1784_persstr[] = {
+ 0x9c, 0x14, 0x84, 0xee, 0x47, 0x1c, 0x88, 0x47, 0xda, 0x3d, 0x97, 0xac,
+ 0xef, 0x0d, 0x02, 0x83, 0xaf, 0x1d, 0x95, 0xf7, 0x35, 0x71, 0x7f, 0xc2,
+ 0x31, 0xc1, 0x28, 0x46, 0xbd, 0x8e, 0xae, 0x27,
+};
+static const unsigned char kat1784_entropyinreseed[] = {
+ 0x17, 0xe3, 0x33, 0xbb, 0xbf, 0x9f, 0xaa, 0x74, 0x11, 0xcf, 0x13, 0xdb,
+ 0xb5, 0x40, 0xe0, 0x5b, 0xe9, 0x54, 0xb8, 0x17, 0x15, 0xb0, 0x9c, 0x68,
+};
+static const unsigned char kat1784_addinreseed[] = {0};
+static const unsigned char kat1784_addin0[] = {0};
+static const unsigned char kat1784_addin1[] = {0};
+static const unsigned char kat1784_retbits[] = {
+ 0x54, 0x4c, 0x50, 0x96, 0xe6, 0x9f, 0x2b, 0x3b, 0xf7, 0x4d, 0x8e, 0xa7,
+ 0x89, 0xa9, 0x57, 0x2d, 0x2e, 0x61, 0xaa, 0x83, 0x6b, 0x2c, 0x5a, 0xa5,
+ 0xb0, 0x2b, 0xfe, 0x9e, 0xdd, 0x12, 0x7c, 0xa1, 0xcc, 0x49, 0x91, 0x7d,
+ 0x8e, 0x7f, 0xb8, 0x15, 0x49, 0x70, 0x96, 0x85, 0x7c, 0xce, 0x59, 0x5c,
+ 0x84, 0x41, 0x93, 0x89, 0x66, 0x2f, 0x1b, 0xc8, 0x42, 0xb5, 0xfb, 0xb4,
+ 0x6d, 0x44, 0xdc, 0xd4,
+};
+static const struct drbg_kat_pr_false kat1784_t = {
+ 13, kat1784_entropyin, kat1784_nonce, kat1784_persstr,
+ kat1784_entropyinreseed, kat1784_addinreseed, kat1784_addin0,
+ kat1784_addin1, kat1784_retbits
+};
+static const struct drbg_kat kat1784 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1784_t
+};
+
+static const unsigned char kat1785_entropyin[] = {
+ 0x0e, 0x14, 0xa0, 0x5f, 0xfd, 0xc1, 0xa8, 0x0a, 0x9c, 0xa9, 0xc7, 0xf3,
+ 0x77, 0xce, 0xd6, 0x9c, 0x06, 0x42, 0xab, 0x84, 0x90, 0xc6, 0x92, 0xaa,
+};
+static const unsigned char kat1785_nonce[] = {
+ 0x25, 0x09, 0x8e, 0x57, 0x45, 0x02, 0xed, 0x63, 0x49, 0xed, 0xc0, 0xc8,
+ 0xd3, 0xa2, 0x80, 0x06,
+};
+static const unsigned char kat1785_persstr[] = {
+ 0x1d, 0x0e, 0x83, 0xb9, 0xf3, 0x25, 0x71, 0xaf, 0x1b, 0xd9, 0x4c, 0xb1,
+ 0x5e, 0x4e, 0xdd, 0xf1, 0x8a, 0x4e, 0x56, 0x52, 0x04, 0x74, 0x6d, 0x7a,
+ 0x34, 0xd6, 0x48, 0xef, 0x17, 0xd3, 0x86, 0xa8,
+};
+static const unsigned char kat1785_entropyinreseed[] = {
+ 0x3b, 0x2c, 0xdf, 0xc8, 0xe4, 0xea, 0xb2, 0x83, 0xd6, 0x11, 0x83, 0x1e,
+ 0xd1, 0x21, 0xa9, 0xd1, 0xdd, 0x2c, 0x3b, 0x90, 0xc8, 0x6e, 0x42, 0x98,
+};
+static const unsigned char kat1785_addinreseed[] = {0};
+static const unsigned char kat1785_addin0[] = {0};
+static const unsigned char kat1785_addin1[] = {0};
+static const unsigned char kat1785_retbits[] = {
+ 0x4a, 0x40, 0xd4, 0xb4, 0xca, 0x42, 0x90, 0xc6, 0x7b, 0x52, 0x22, 0xfe,
+ 0xd5, 0x7d, 0xdb, 0xba, 0x72, 0xb6, 0xaa, 0x20, 0xa5, 0x70, 0x48, 0xa3,
+ 0x24, 0x78, 0xb9, 0x94, 0x1b, 0xda, 0x2e, 0x96, 0xe4, 0xf3, 0x5b, 0x32,
+ 0x85, 0xd5, 0x12, 0xea, 0x1a, 0xc0, 0x28, 0x2e, 0xf2, 0xd4, 0xce, 0x4c,
+ 0x22, 0x3a, 0x6d, 0xc7, 0x9b, 0x91, 0x1e, 0x1b, 0xd3, 0x57, 0x6c, 0x9c,
+ 0x90, 0x08, 0xf9, 0x57,
+};
+static const struct drbg_kat_pr_false kat1785_t = {
+ 14, kat1785_entropyin, kat1785_nonce, kat1785_persstr,
+ kat1785_entropyinreseed, kat1785_addinreseed, kat1785_addin0,
+ kat1785_addin1, kat1785_retbits
+};
+static const struct drbg_kat kat1785 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1785_t
+};
+
+static const unsigned char kat1786_entropyin[] = {
+ 0xe8, 0x9d, 0x54, 0xf8, 0x16, 0xf8, 0x02, 0xa1, 0x25, 0x6f, 0xb9, 0xc9,
+ 0xc2, 0x39, 0x88, 0x7e, 0xbc, 0xf6, 0xc6, 0x4d, 0x68, 0x55, 0x79, 0x40,
+};
+static const unsigned char kat1786_nonce[] = {
+ 0x4f, 0x02, 0x21, 0x71, 0xca, 0xce, 0x97, 0xc0, 0x81, 0xdf, 0x28, 0xcf,
+ 0x42, 0x5d, 0x09, 0x56,
+};
+static const unsigned char kat1786_persstr[] = {
+ 0x53, 0xcc, 0x68, 0x34, 0xe9, 0xfc, 0xbb, 0x3e, 0xca, 0x68, 0x80, 0xa0,
+ 0xae, 0x90, 0xd3, 0xa7, 0x76, 0x0a, 0xaf, 0x5a, 0x1c, 0x0d, 0x07, 0x4b,
+ 0x09, 0x2b, 0x9f, 0x93, 0x70, 0x31, 0xa6, 0x8a,
+};
+static const unsigned char kat1786_entropyinreseed[] = {
+ 0x6e, 0x5c, 0x51, 0xab, 0x74, 0xc8, 0x55, 0x2c, 0x16, 0xbe, 0x25, 0x7b,
+ 0xd1, 0x62, 0x6d, 0xf3, 0xaf, 0x79, 0x26, 0xbe, 0x67, 0xb6, 0x2c, 0x0c,
+};
+static const unsigned char kat1786_addinreseed[] = {
+ 0x73, 0x97, 0x2f, 0x57, 0xc4, 0xa3, 0xe3, 0x0a, 0x79, 0x5d, 0x8c, 0x10,
+ 0xee, 0x80, 0x1e, 0xf0, 0xf6, 0xc8, 0xbe, 0x7f, 0x79, 0xff, 0xfb, 0x96,
+ 0xb5, 0x41, 0xd3, 0x22, 0xba, 0x7f, 0xd9, 0xcc,
+};
+static const unsigned char kat1786_addin0[] = {
+ 0xec, 0xe1, 0xb6, 0x4c, 0x51, 0xbb, 0x97, 0xee, 0x3e, 0x72, 0xc1, 0xc7,
+ 0xd4, 0xca, 0xa3, 0xa3, 0xd4, 0x8b, 0x64, 0x10, 0x91, 0x42, 0x40, 0xca,
+ 0x03, 0x3f, 0x35, 0xed, 0x5b, 0x89, 0x83, 0x31,
+};
+static const unsigned char kat1786_addin1[] = {
+ 0xe7, 0xd5, 0xda, 0xbd, 0x56, 0xf9, 0x20, 0x29, 0xa0, 0x9c, 0xf1, 0x7c,
+ 0xd6, 0x4a, 0xaa, 0xd8, 0xba, 0x6b, 0x4d, 0x72, 0xdb, 0xfa, 0x07, 0x00,
+ 0x3c, 0xd4, 0xea, 0xfd, 0x83, 0xc1, 0x70, 0xe5,
+};
+static const unsigned char kat1786_retbits[] = {
+ 0xb0, 0xe0, 0x3c, 0xef, 0x0f, 0xbb, 0xfa, 0xec, 0x57, 0x54, 0xa0, 0xa2,
+ 0xc1, 0xb3, 0x96, 0xa7, 0xdf, 0x6e, 0x44, 0xdf, 0x6a, 0xc0, 0x55, 0x4a,
+ 0xe1, 0x9d, 0x77, 0xe6, 0xfb, 0xe4, 0xf0, 0x13, 0x64, 0x83, 0x38, 0x0c,
+ 0xbb, 0x81, 0x56, 0x8c, 0x1c, 0x1f, 0x0a, 0xe7, 0xfc, 0x02, 0x75, 0x8d,
+ 0x8d, 0x1e, 0x79, 0x68, 0x66, 0xb7, 0xa6, 0xa6, 0xd1, 0x73, 0xec, 0xc0,
+ 0x16, 0xb8, 0x1f, 0x26,
+};
+static const struct drbg_kat_pr_false kat1786_t = {
+ 0, kat1786_entropyin, kat1786_nonce, kat1786_persstr,
+ kat1786_entropyinreseed, kat1786_addinreseed, kat1786_addin0,
+ kat1786_addin1, kat1786_retbits
+};
+static const struct drbg_kat kat1786 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1786_t
+};
+
+static const unsigned char kat1787_entropyin[] = {
+ 0x22, 0xf7, 0x79, 0x8a, 0xc6, 0x7c, 0x09, 0x1d, 0xe8, 0x68, 0x7a, 0x84,
+ 0x9b, 0x7a, 0x2d, 0xd4, 0x04, 0x52, 0xe6, 0x50, 0x54, 0xd3, 0x54, 0x3a,
+};
+static const unsigned char kat1787_nonce[] = {
+ 0x10, 0xa4, 0x21, 0x46, 0xc7, 0xb0, 0xa4, 0x12, 0x34, 0x7f, 0x1c, 0x93,
+ 0x4b, 0x21, 0x7b, 0xfb,
+};
+static const unsigned char kat1787_persstr[] = {
+ 0xd6, 0xee, 0x30, 0xbd, 0xd4, 0xc8, 0x71, 0x50, 0xb7, 0x9f, 0x88, 0xa1,
+ 0xd1, 0x1f, 0xe3, 0x88, 0x9c, 0xdb, 0xdd, 0x37, 0x63, 0x00, 0x2f, 0x6d,
+ 0x6e, 0x27, 0x35, 0x2f, 0x6e, 0x51, 0xeb, 0x93,
+};
+static const unsigned char kat1787_entropyinreseed[] = {
+ 0xae, 0x4a, 0xe7, 0x9b, 0xd9, 0x0b, 0x36, 0xd2, 0xab, 0x76, 0xf2, 0x3d,
+ 0x9e, 0x94, 0x2b, 0x5c, 0x12, 0x02, 0x19, 0xa0, 0x78, 0xec, 0x45, 0x8c,
+};
+static const unsigned char kat1787_addinreseed[] = {
+ 0x21, 0x28, 0xf3, 0x48, 0xdb, 0x64, 0x71, 0x25, 0x74, 0x21, 0x96, 0x54,
+ 0xfb, 0xa0, 0x31, 0x75, 0xba, 0xc5, 0x60, 0xcc, 0x2a, 0xb8, 0x3f, 0x93,
+ 0xdd, 0x43, 0xd5, 0xba, 0x10, 0xef, 0x89, 0x21,
+};
+static const unsigned char kat1787_addin0[] = {
+ 0xc0, 0xe6, 0xb2, 0xeb, 0x2e, 0xc9, 0x8c, 0x78, 0xee, 0x46, 0xd2, 0x57,
+ 0x07, 0xd0, 0xf0, 0x11, 0xc3, 0x26, 0x40, 0x20, 0xff, 0xcc, 0x81, 0xcd,
+ 0x1b, 0x60, 0xc4, 0xc1, 0xef, 0x56, 0xab, 0x66,
+};
+static const unsigned char kat1787_addin1[] = {
+ 0x19, 0xc0, 0x01, 0x77, 0xfb, 0x10, 0x30, 0x78, 0xc0, 0xff, 0x32, 0x3c,
+ 0x65, 0x23, 0x25, 0x82, 0x31, 0x53, 0x0d, 0x0d, 0x17, 0x95, 0x47, 0x93,
+ 0xb3, 0x63, 0x7d, 0x9d, 0x62, 0x04, 0x68, 0x9a,
+};
+static const unsigned char kat1787_retbits[] = {
+ 0xde, 0xb7, 0x4b, 0x2e, 0x7e, 0xe9, 0x67, 0x66, 0xf3, 0x2e, 0x96, 0xda,
+ 0x12, 0xea, 0x1d, 0xa4, 0xdc, 0x4c, 0xb5, 0x27, 0x5f, 0x26, 0x74, 0x87,
+ 0x97, 0x12, 0xce, 0x7d, 0xeb, 0x35, 0xcf, 0xd5, 0x78, 0x61, 0xef, 0x4f,
+ 0x01, 0x1b, 0x51, 0xf5, 0xae, 0xb2, 0xf1, 0x67, 0x6f, 0x32, 0xcc, 0xa3,
+ 0x77, 0x29, 0xcc, 0x7a, 0x65, 0x35, 0x81, 0x49, 0x70, 0x4c, 0x65, 0x43,
+ 0x28, 0x2d, 0x9d, 0x9a,
+};
+static const struct drbg_kat_pr_false kat1787_t = {
+ 1, kat1787_entropyin, kat1787_nonce, kat1787_persstr,
+ kat1787_entropyinreseed, kat1787_addinreseed, kat1787_addin0,
+ kat1787_addin1, kat1787_retbits
+};
+static const struct drbg_kat kat1787 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1787_t
+};
+
+static const unsigned char kat1788_entropyin[] = {
+ 0x82, 0x01, 0x7f, 0xb7, 0x8d, 0x34, 0x55, 0x95, 0x8b, 0xe3, 0x2c, 0xfe,
+ 0x22, 0xc1, 0x20, 0x76, 0x8f, 0x66, 0x88, 0x16, 0x42, 0x64, 0x30, 0xf5,
+};
+static const unsigned char kat1788_nonce[] = {
+ 0xc0, 0x59, 0x73, 0x36, 0x7c, 0x93, 0x86, 0x83, 0x14, 0xd5, 0xed, 0x91,
+ 0xfe, 0x27, 0x5b, 0x82,
+};
+static const unsigned char kat1788_persstr[] = {
+ 0x5e, 0x9c, 0xc6, 0x69, 0x50, 0x57, 0xa0, 0xbf, 0x15, 0x50, 0xfd, 0xf6,
+ 0x2c, 0x2e, 0x96, 0x6a, 0xbe, 0xa0, 0x13, 0xb9, 0xad, 0xc6, 0xf2, 0xa2,
+ 0xa8, 0xdd, 0x9d, 0xdb, 0x7b, 0xb3, 0x50, 0x71,
+};
+static const unsigned char kat1788_entropyinreseed[] = {
+ 0x70, 0x49, 0xdc, 0xcb, 0x73, 0xd0, 0x43, 0x1a, 0xee, 0x47, 0x33, 0xbe,
+ 0x2b, 0x1a, 0x26, 0x9a, 0x55, 0xdb, 0xcc, 0x6d, 0xf8, 0x3f, 0x2d, 0xe0,
+};
+static const unsigned char kat1788_addinreseed[] = {
+ 0xee, 0x73, 0x1e, 0x2d, 0xab, 0xdc, 0x71, 0x31, 0xa1, 0x18, 0x6e, 0x87,
+ 0x39, 0x35, 0x73, 0x1a, 0x93, 0x18, 0xde, 0xef, 0x0e, 0xfc, 0x84, 0x56,
+ 0x31, 0xac, 0x80, 0xc9, 0xf9, 0x1d, 0x92, 0x5a,
+};
+static const unsigned char kat1788_addin0[] = {
+ 0x0d, 0x6e, 0x10, 0x49, 0xd9, 0xbf, 0xd6, 0xe5, 0xd5, 0xfb, 0xaa, 0xe8,
+ 0x72, 0x87, 0x62, 0x82, 0x2c, 0x2d, 0x26, 0xf4, 0x5c, 0xfc, 0xea, 0xa4,
+ 0x2e, 0x89, 0x50, 0xb7, 0x97, 0x1e, 0xc9, 0x4e,
+};
+static const unsigned char kat1788_addin1[] = {
+ 0xce, 0x6b, 0xb4, 0xb8, 0x69, 0x5b, 0xd7, 0xbb, 0x48, 0xa1, 0xa9, 0xc2,
+ 0x74, 0x30, 0x2f, 0x4f, 0xf2, 0xcb, 0xd3, 0x30, 0x72, 0xe3, 0xc6, 0x35,
+ 0x63, 0x30, 0x2e, 0xbc, 0xf8, 0x25, 0xa6, 0x33,
+};
+static const unsigned char kat1788_retbits[] = {
+ 0x0c, 0xba, 0xa6, 0xa0, 0x67, 0xc4, 0xc5, 0x68, 0x73, 0x67, 0xa3, 0x3a,
+ 0xb1, 0x5f, 0xad, 0x90, 0xec, 0x64, 0xdf, 0x41, 0xba, 0x5f, 0xc5, 0xf2,
+ 0xcb, 0xa0, 0x01, 0x99, 0x83, 0x28, 0xf8, 0xa9, 0x4f, 0x3a, 0x4d, 0x8a,
+ 0x49, 0x8f, 0x8c, 0xa0, 0xc9, 0x70, 0x4a, 0x86, 0xec, 0xbc, 0xe2, 0xe1,
+ 0x4d, 0x08, 0x23, 0x4f, 0xab, 0x8c, 0x4c, 0xee, 0x79, 0xc4, 0xab, 0x40,
+ 0x52, 0x2d, 0xd1, 0xf4,
+};
+static const struct drbg_kat_pr_false kat1788_t = {
+ 2, kat1788_entropyin, kat1788_nonce, kat1788_persstr,
+ kat1788_entropyinreseed, kat1788_addinreseed, kat1788_addin0,
+ kat1788_addin1, kat1788_retbits
+};
+static const struct drbg_kat kat1788 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1788_t
+};
+
+static const unsigned char kat1789_entropyin[] = {
+ 0x16, 0xfa, 0x53, 0x65, 0xb5, 0xb5, 0x21, 0x6d, 0xd8, 0xa5, 0xbd, 0xb8,
+ 0xc7, 0xbe, 0xcc, 0x09, 0xa4, 0x1c, 0x61, 0x62, 0x35, 0x55, 0xa1, 0xc4,
+};
+static const unsigned char kat1789_nonce[] = {
+ 0x0c, 0x10, 0x8c, 0xfc, 0xad, 0xd4, 0xa5, 0xea, 0xde, 0xfc, 0x66, 0xd0,
+ 0x6f, 0xcd, 0x63, 0x7a,
+};
+static const unsigned char kat1789_persstr[] = {
+ 0x7f, 0x4c, 0xca, 0xdd, 0x08, 0xe4, 0xbb, 0x1d, 0xf1, 0xcb, 0xaa, 0x32,
+ 0x92, 0x49, 0x1d, 0x66, 0x09, 0xaa, 0x7f, 0x88, 0xaf, 0xb0, 0x74, 0xde,
+ 0x67, 0x54, 0x5b, 0xfc, 0x1d, 0x00, 0x11, 0x36,
+};
+static const unsigned char kat1789_entropyinreseed[] = {
+ 0xf8, 0x17, 0x11, 0x4b, 0x9e, 0xe5, 0xac, 0x7a, 0x75, 0x67, 0xca, 0x0b,
+ 0x0d, 0x64, 0xbf, 0xfb, 0x80, 0xb9, 0x15, 0x2f, 0x01, 0xaf, 0x86, 0x45,
+};
+static const unsigned char kat1789_addinreseed[] = {
+ 0x7a, 0x6c, 0x28, 0xa4, 0x0d, 0x51, 0x81, 0x58, 0x01, 0x66, 0xad, 0xb1,
+ 0x3b, 0xba, 0x1e, 0x8c, 0x21, 0x68, 0xc1, 0x43, 0xbd, 0xcf, 0x78, 0xd0,
+ 0xba, 0xba, 0x05, 0x02, 0xf9, 0xce, 0xd8, 0x5b,
+};
+static const unsigned char kat1789_addin0[] = {
+ 0x88, 0xfb, 0x83, 0x63, 0x59, 0xf8, 0xe4, 0x6e, 0x3d, 0x06, 0x82, 0x09,
+ 0x95, 0xcc, 0x58, 0xd6, 0x1b, 0xb6, 0x1f, 0x8a, 0x5e, 0x12, 0x87, 0xec,
+ 0xe4, 0x11, 0xb6, 0x5b, 0x14, 0x68, 0x31, 0xd3,
+};
+static const unsigned char kat1789_addin1[] = {
+ 0xa2, 0xec, 0x3e, 0x73, 0x0c, 0xb9, 0x41, 0xd6, 0x16, 0x55, 0xbf, 0xef,
+ 0xba, 0xfb, 0x48, 0x2c, 0xd5, 0xfe, 0xda, 0x99, 0x8b, 0xc3, 0x10, 0x4f,
+ 0xca, 0x6b, 0xf7, 0x44, 0xfb, 0x18, 0x4b, 0x13,
+};
+static const unsigned char kat1789_retbits[] = {
+ 0x51, 0x4c, 0x5b, 0x0c, 0xb6, 0x7f, 0xe3, 0xa9, 0x98, 0x69, 0x2d, 0xaf,
+ 0x5c, 0xa4, 0x58, 0x70, 0xad, 0x3d, 0x84, 0xea, 0x05, 0x63, 0x1e, 0x53,
+ 0xdb, 0xb1, 0x40, 0xd4, 0x31, 0x98, 0x66, 0x03, 0xbd, 0x5b, 0x5b, 0xb0,
+ 0xc0, 0xe0, 0x2d, 0x51, 0xc1, 0x3e, 0x4b, 0x33, 0xd5, 0x02, 0x15, 0x71,
+ 0xde, 0xb7, 0xe2, 0x22, 0xd9, 0xa9, 0xfc, 0xaa, 0xbb, 0xaa, 0xf8, 0x8e,
+ 0xf6, 0x5b, 0xa8, 0xef,
+};
+static const struct drbg_kat_pr_false kat1789_t = {
+ 3, kat1789_entropyin, kat1789_nonce, kat1789_persstr,
+ kat1789_entropyinreseed, kat1789_addinreseed, kat1789_addin0,
+ kat1789_addin1, kat1789_retbits
+};
+static const struct drbg_kat kat1789 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1789_t
+};
+
+static const unsigned char kat1790_entropyin[] = {
+ 0xdb, 0x22, 0x31, 0xa8, 0xdc, 0xb6, 0x0e, 0x15, 0x44, 0x38, 0xbe, 0x8d,
+ 0x11, 0xb2, 0x21, 0x9e, 0x29, 0x27, 0xe8, 0x31, 0xd5, 0xb3, 0xf6, 0xae,
+};
+static const unsigned char kat1790_nonce[] = {
+ 0x5f, 0x0f, 0x17, 0x21, 0xf2, 0x73, 0x19, 0x9f, 0x41, 0x75, 0xa9, 0x7d,
+ 0x53, 0x54, 0x99, 0xda,
+};
+static const unsigned char kat1790_persstr[] = {
+ 0x1c, 0x37, 0x64, 0xee, 0x63, 0xbb, 0x12, 0x47, 0x35, 0x0a, 0x4d, 0x4a,
+ 0x68, 0x25, 0x10, 0xf5, 0xd5, 0xf8, 0x80, 0x21, 0x1a, 0xad, 0xf9, 0xd4,
+ 0xea, 0x86, 0x5f, 0x6b, 0xa3, 0xd2, 0xcd, 0x74,
+};
+static const unsigned char kat1790_entropyinreseed[] = {
+ 0x96, 0x56, 0x0d, 0xb1, 0x58, 0x08, 0x69, 0xc3, 0x9b, 0x9b, 0x46, 0x07,
+ 0x4d, 0xe4, 0xc2, 0x99, 0x95, 0xec, 0x1b, 0xd8, 0xfe, 0x78, 0x13, 0xa2,
+};
+static const unsigned char kat1790_addinreseed[] = {
+ 0x1a, 0x9d, 0x96, 0xd8, 0x82, 0x44, 0x87, 0x30, 0x25, 0xac, 0x58, 0x45,
+ 0xa1, 0xfb, 0x69, 0xd9, 0xaa, 0x9d, 0x18, 0x20, 0x62, 0xe4, 0xb4, 0x45,
+ 0x26, 0x8f, 0x57, 0x9c, 0x77, 0x85, 0x32, 0xfd,
+};
+static const unsigned char kat1790_addin0[] = {
+ 0x01, 0x4c, 0xc6, 0x9f, 0x6e, 0xcf, 0x20, 0xd1, 0xef, 0x39, 0x08, 0x1d,
+ 0x9b, 0x94, 0x5a, 0xed, 0x97, 0x00, 0xb8, 0x60, 0x53, 0x0f, 0xb3, 0xa6,
+ 0xe9, 0xec, 0xa8, 0x7c, 0x6d, 0xac, 0x6b, 0xd6,
+};
+static const unsigned char kat1790_addin1[] = {
+ 0x26, 0xdf, 0x86, 0x83, 0xca, 0x38, 0x36, 0xe5, 0x92, 0x21, 0x55, 0xd4,
+ 0xe7, 0xe6, 0x27, 0xf3, 0xf1, 0x37, 0xd0, 0x7c, 0x05, 0x62, 0x4e, 0x76,
+ 0x45, 0x63, 0xae, 0x68, 0xab, 0x0d, 0x75, 0x19,
+};
+static const unsigned char kat1790_retbits[] = {
+ 0xe8, 0x24, 0x10, 0xf1, 0xbf, 0x2c, 0x0c, 0xac, 0xe3, 0x5e, 0x05, 0xcf,
+ 0x44, 0x23, 0x3e, 0x5c, 0xbc, 0xb3, 0xdd, 0xa7, 0x45, 0x72, 0xc6, 0x9e,
+ 0xef, 0x14, 0x71, 0x93, 0xf4, 0x7e, 0x40, 0xbc, 0x0d, 0x4d, 0x20, 0x6a,
+ 0xc8, 0x0b, 0x77, 0xe3, 0x6e, 0xa1, 0x16, 0x38, 0xb3, 0x5a, 0xb5, 0x3f,
+ 0x7a, 0x16, 0xeb, 0x5c, 0x01, 0xf2, 0xab, 0x43, 0x49, 0x88, 0x4b, 0x08,
+ 0x8e, 0xf8, 0x77, 0xc4,
+};
+static const struct drbg_kat_pr_false kat1790_t = {
+ 4, kat1790_entropyin, kat1790_nonce, kat1790_persstr,
+ kat1790_entropyinreseed, kat1790_addinreseed, kat1790_addin0,
+ kat1790_addin1, kat1790_retbits
+};
+static const struct drbg_kat kat1790 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1790_t
+};
+
+static const unsigned char kat1791_entropyin[] = {
+ 0x69, 0x11, 0xeb, 0xe9, 0xed, 0xe1, 0xdc, 0xd1, 0x34, 0xdb, 0x33, 0x6f,
+ 0x95, 0xad, 0x1b, 0x8b, 0xa2, 0x75, 0xbd, 0x56, 0xef, 0xe2, 0x7a, 0x17,
+};
+static const unsigned char kat1791_nonce[] = {
+ 0x54, 0xf1, 0x9e, 0xbb, 0x53, 0xd8, 0xed, 0xcf, 0x4e, 0xae, 0x8c, 0xa4,
+ 0x63, 0x12, 0x6e, 0xb4,
+};
+static const unsigned char kat1791_persstr[] = {
+ 0x05, 0xe1, 0xa0, 0xf5, 0xb3, 0xd9, 0x64, 0xf3, 0xe6, 0x3a, 0x10, 0x58,
+ 0xd7, 0xe2, 0xab, 0xa7, 0xfe, 0x58, 0xa9, 0xae, 0x97, 0xc2, 0xaa, 0x37,
+ 0x45, 0x27, 0xaf, 0x29, 0x6f, 0x4d, 0x18, 0x4d,
+};
+static const unsigned char kat1791_entropyinreseed[] = {
+ 0x10, 0xb4, 0x8f, 0x4a, 0x15, 0xfa, 0x12, 0x1c, 0x51, 0x49, 0x8c, 0x2a,
+ 0x86, 0x70, 0x0f, 0xc4, 0x7a, 0x55, 0xd8, 0x34, 0x05, 0x16, 0x55, 0x69,
+};
+static const unsigned char kat1791_addinreseed[] = {
+ 0x2f, 0x7e, 0x0d, 0x79, 0x57, 0xb1, 0x8e, 0x03, 0x4b, 0x9c, 0xa9, 0xa1,
+ 0x19, 0x61, 0x09, 0xca, 0x6c, 0xe3, 0xa5, 0xac, 0x80, 0x60, 0x03, 0x85,
+ 0xe0, 0x05, 0x14, 0xac, 0xf7, 0x15, 0xe8, 0x1a,
+};
+static const unsigned char kat1791_addin0[] = {
+ 0x3b, 0xb1, 0x3c, 0xc2, 0x97, 0x0e, 0x8f, 0x14, 0x7d, 0xfb, 0x24, 0xfb,
+ 0x0b, 0x76, 0x1f, 0x0d, 0xe6, 0x32, 0x7b, 0x0f, 0xd1, 0x77, 0xba, 0xc7,
+ 0x5a, 0xca, 0xa7, 0x2d, 0xfe, 0x60, 0xe2, 0x66,
+};
+static const unsigned char kat1791_addin1[] = {
+ 0x71, 0x4b, 0x13, 0x5d, 0xf6, 0x99, 0x53, 0x1a, 0x72, 0xc5, 0x7c, 0xee,
+ 0xdd, 0x39, 0x90, 0xf9, 0xd5, 0x3d, 0x68, 0xe7, 0x8d, 0xec, 0x0b, 0x68,
+ 0xd2, 0xad, 0xd1, 0xf3, 0xa4, 0x94, 0xaf, 0xbb,
+};
+static const unsigned char kat1791_retbits[] = {
+ 0x99, 0x70, 0xd7, 0x20, 0x2f, 0xf7, 0x7e, 0x95, 0xf4, 0x22, 0x51, 0x54,
+ 0x58, 0x53, 0xcf, 0xd5, 0x0d, 0x1e, 0x5a, 0xd7, 0xa5, 0x17, 0x19, 0xa3,
+ 0x91, 0xed, 0xe0, 0x0b, 0x3f, 0x8f, 0x50, 0x07, 0xce, 0x05, 0x03, 0x48,
+ 0x4b, 0x83, 0xd0, 0xf0, 0x14, 0xe6, 0x5a, 0xc0, 0x27, 0x82, 0x9a, 0x5c,
+ 0x9f, 0xc7, 0xf6, 0x09, 0x2c, 0x62, 0xe7, 0xec, 0x47, 0x51, 0x5d, 0x20,
+ 0x0b, 0x39, 0xb6, 0x18,
+};
+static const struct drbg_kat_pr_false kat1791_t = {
+ 5, kat1791_entropyin, kat1791_nonce, kat1791_persstr,
+ kat1791_entropyinreseed, kat1791_addinreseed, kat1791_addin0,
+ kat1791_addin1, kat1791_retbits
+};
+static const struct drbg_kat kat1791 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1791_t
+};
+
+static const unsigned char kat1792_entropyin[] = {
+ 0xa3, 0xd8, 0x65, 0x9c, 0x09, 0x7d, 0x5c, 0x7e, 0x27, 0x42, 0x83, 0x64,
+ 0x7a, 0xad, 0x26, 0xc0, 0x7f, 0xe7, 0x51, 0x17, 0x2c, 0xa1, 0x2e, 0x10,
+};
+static const unsigned char kat1792_nonce[] = {
+ 0xea, 0x0f, 0x68, 0xdd, 0x7b, 0x68, 0x78, 0xd6, 0xd1, 0x39, 0xa9, 0x35,
+ 0xc2, 0x4b, 0x7f, 0xeb,
+};
+static const unsigned char kat1792_persstr[] = {
+ 0x84, 0x51, 0x5e, 0x05, 0x19, 0x27, 0x97, 0x40, 0xce, 0x7a, 0x00, 0xfa,
+ 0x1b, 0x31, 0xf6, 0xfb, 0x2b, 0xb1, 0x4b, 0x36, 0x36, 0x8b, 0x9b, 0xbf,
+ 0x95, 0xb4, 0xc4, 0x32, 0xe1, 0x38, 0x2e, 0x99,
+};
+static const unsigned char kat1792_entropyinreseed[] = {
+ 0x7d, 0xe4, 0x78, 0x11, 0x57, 0x4a, 0x94, 0xe6, 0xec, 0xc4, 0xa2, 0xd1,
+ 0x6c, 0x41, 0x47, 0xcf, 0xb6, 0x9e, 0x41, 0x1b, 0x66, 0xaa, 0x6d, 0x0c,
+};
+static const unsigned char kat1792_addinreseed[] = {
+ 0xf8, 0x84, 0x45, 0x98, 0x84, 0xe2, 0x2d, 0xd0, 0x6a, 0x7b, 0x4e, 0x23,
+ 0x43, 0x02, 0x25, 0x77, 0x22, 0x12, 0x13, 0xc8, 0x61, 0xee, 0x61, 0xd6,
+ 0xa9, 0xb5, 0x96, 0x94, 0x22, 0x99, 0xc7, 0x72,
+};
+static const unsigned char kat1792_addin0[] = {
+ 0x35, 0x84, 0x2e, 0xdb, 0x5d, 0xfb, 0xf0, 0x2c, 0x72, 0xca, 0xf9, 0xe2,
+ 0x48, 0xf3, 0xc0, 0x7e, 0xf0, 0xf9, 0xb3, 0x80, 0x71, 0x69, 0x5c, 0x0a,
+ 0x28, 0x52, 0x50, 0x6d, 0x65, 0xe5, 0x25, 0x2e,
+};
+static const unsigned char kat1792_addin1[] = {
+ 0x9a, 0x43, 0x3f, 0xdc, 0x6f, 0x80, 0xb2, 0xcf, 0xb8, 0x13, 0x80, 0xc9,
+ 0xf9, 0xb4, 0x4b, 0xb4, 0xa2, 0x64, 0xe5, 0xfb, 0xc7, 0x59, 0x34, 0xba,
+ 0x63, 0x5f, 0xdf, 0xb6, 0x96, 0xec, 0x5d, 0x23,
+};
+static const unsigned char kat1792_retbits[] = {
+ 0xe6, 0xef, 0xbf, 0x12, 0xfe, 0xd1, 0xc6, 0x4c, 0x3a, 0x98, 0x17, 0x55,
+ 0x71, 0x46, 0x0a, 0x19, 0xa4, 0xc6, 0x2c, 0xea, 0xe4, 0x15, 0x3b, 0xeb,
+ 0x7a, 0x04, 0x78, 0x4e, 0xa4, 0xd8, 0xdd, 0xc4, 0x1d, 0x9c, 0x8c, 0x6e,
+ 0x89, 0xf7, 0xb6, 0x4a, 0x95, 0xc6, 0xfe, 0x3d, 0x57, 0xe7, 0xb3, 0x64,
+ 0x88, 0xe9, 0x36, 0x31, 0x64, 0x8e, 0x1f, 0x94, 0xe0, 0xfc, 0x6f, 0xf3,
+ 0xc0, 0x58, 0x56, 0x9d,
+};
+static const struct drbg_kat_pr_false kat1792_t = {
+ 6, kat1792_entropyin, kat1792_nonce, kat1792_persstr,
+ kat1792_entropyinreseed, kat1792_addinreseed, kat1792_addin0,
+ kat1792_addin1, kat1792_retbits
+};
+static const struct drbg_kat kat1792 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1792_t
+};
+
+static const unsigned char kat1793_entropyin[] = {
+ 0xdd, 0xc1, 0x37, 0xa7, 0x25, 0x95, 0x7f, 0x7f, 0x36, 0x27, 0x5a, 0x2f,
+ 0x2e, 0xe1, 0xbf, 0x8a, 0xe9, 0x2a, 0xfe, 0x71, 0x1a, 0x7a, 0x3f, 0x77,
+};
+static const unsigned char kat1793_nonce[] = {
+ 0x4d, 0xc7, 0xe3, 0xc7, 0x5d, 0x20, 0x6e, 0x4e, 0x3e, 0x7f, 0xc0, 0x33,
+ 0xde, 0x54, 0x2c, 0x20,
+};
+static const unsigned char kat1793_persstr[] = {
+ 0x76, 0x44, 0x3d, 0xdb, 0xcf, 0xfa, 0xd4, 0x0a, 0xd8, 0xc7, 0xc0, 0xb2,
+ 0x81, 0x10, 0x45, 0x21, 0x6e, 0xa1, 0x6c, 0x7f, 0x54, 0x25, 0x91, 0x9b,
+ 0x13, 0x78, 0x66, 0xcc, 0x17, 0xbd, 0xd2, 0xdb,
+};
+static const unsigned char kat1793_entropyinreseed[] = {
+ 0x4a, 0xf4, 0xe3, 0xe8, 0x77, 0xca, 0x4b, 0x1d, 0x6f, 0xb9, 0xf4, 0xdc,
+ 0x42, 0x21, 0x08, 0xdc, 0x47, 0xc9, 0x24, 0xfa, 0xaf, 0x93, 0x1f, 0x6b,
+};
+static const unsigned char kat1793_addinreseed[] = {
+ 0xaa, 0x28, 0xf7, 0x23, 0x36, 0x32, 0x14, 0xac, 0xd0, 0x82, 0xcc, 0xd2,
+ 0x35, 0x8b, 0xe8, 0xc7, 0x2f, 0x2d, 0x3a, 0x90, 0x31, 0x53, 0x83, 0xd4,
+ 0xb6, 0x79, 0x93, 0xf8, 0xd8, 0xdf, 0xdc, 0xcb,
+};
+static const unsigned char kat1793_addin0[] = {
+ 0x8c, 0x42, 0x7d, 0x26, 0x0f, 0xdf, 0xed, 0x81, 0x33, 0x51, 0xea, 0x2c,
+ 0xef, 0x64, 0x31, 0x52, 0x78, 0xb3, 0x3a, 0x08, 0x78, 0x91, 0xe3, 0x6a,
+ 0xea, 0x41, 0x60, 0x57, 0x4e, 0xcd, 0xdd, 0x74,
+};
+static const unsigned char kat1793_addin1[] = {
+ 0x8b, 0xca, 0x36, 0x6d, 0xc9, 0x0b, 0x9a, 0x2a, 0x9f, 0xaf, 0x85, 0x56,
+ 0x82, 0x0c, 0x64, 0x31, 0xe2, 0x6e, 0x0f, 0xdb, 0x7d, 0x9c, 0x7c, 0x2c,
+ 0x94, 0xfc, 0xc8, 0x9d, 0xa6, 0x08, 0x18, 0xf1,
+};
+static const unsigned char kat1793_retbits[] = {
+ 0x83, 0x47, 0x06, 0x8e, 0xbb, 0x42, 0xb3, 0x59, 0x22, 0x8a, 0x84, 0x34,
+ 0x03, 0x69, 0xd5, 0x1a, 0x73, 0xf8, 0x5a, 0xb2, 0xcd, 0xa2, 0xe3, 0x2d,
+ 0xd2, 0x66, 0x3f, 0xc8, 0x3d, 0x2c, 0x64, 0x74, 0xe3, 0x8a, 0x08, 0xb8,
+ 0xe9, 0xe6, 0x0d, 0x6e, 0xc0, 0xbc, 0x1a, 0x4e, 0xe9, 0xf0, 0x93, 0xfb,
+ 0x69, 0xf0, 0xcc, 0x42, 0x81, 0x25, 0x8d, 0x72, 0xc6, 0xe4, 0xc7, 0xa4,
+ 0xd1, 0x0f, 0x08, 0xac,
+};
+static const struct drbg_kat_pr_false kat1793_t = {
+ 7, kat1793_entropyin, kat1793_nonce, kat1793_persstr,
+ kat1793_entropyinreseed, kat1793_addinreseed, kat1793_addin0,
+ kat1793_addin1, kat1793_retbits
+};
+static const struct drbg_kat kat1793 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1793_t
+};
+
+static const unsigned char kat1794_entropyin[] = {
+ 0x3c, 0xf4, 0xe2, 0x61, 0xf7, 0x26, 0xeb, 0x75, 0xdc, 0xb3, 0x56, 0x29,
+ 0xf4, 0x4a, 0x31, 0x02, 0x96, 0x8b, 0x6c, 0x94, 0x79, 0x0f, 0x41, 0x16,
+};
+static const unsigned char kat1794_nonce[] = {
+ 0x16, 0x7a, 0xbc, 0xa4, 0xfd, 0xaf, 0x21, 0xa3, 0x0b, 0x55, 0x43, 0x14,
+ 0xd2, 0xde, 0xfc, 0x7e,
+};
+static const unsigned char kat1794_persstr[] = {
+ 0xcc, 0x87, 0xbc, 0x66, 0xae, 0x04, 0xea, 0x9b, 0x35, 0xef, 0x84, 0x7f,
+ 0x92, 0x90, 0x9f, 0x8d, 0xd2, 0x36, 0x41, 0xd6, 0xec, 0x26, 0x10, 0xbc,
+ 0xdf, 0x1d, 0xb7, 0x8a, 0xb0, 0xfa, 0x4f, 0x2d,
+};
+static const unsigned char kat1794_entropyinreseed[] = {
+ 0xb5, 0x9b, 0xe5, 0xdd, 0x93, 0xd7, 0xd2, 0xd4, 0x00, 0xd9, 0xbc, 0x93,
+ 0xb6, 0xc4, 0x41, 0x60, 0x15, 0xf7, 0x0f, 0xdc, 0x3a, 0xc8, 0x09, 0x78,
+};
+static const unsigned char kat1794_addinreseed[] = {
+ 0x32, 0x38, 0x73, 0x32, 0x34, 0x6c, 0x56, 0x6e, 0xc9, 0x45, 0x6a, 0x16,
+ 0xe9, 0x16, 0xe9, 0xa4, 0x67, 0xfa, 0x0d, 0xb0, 0xc8, 0xa3, 0x15, 0xb6,
+ 0x71, 0x21, 0xe3, 0x00, 0x35, 0x02, 0x99, 0x38,
+};
+static const unsigned char kat1794_addin0[] = {
+ 0xc4, 0xcf, 0x2c, 0xb9, 0x2c, 0xf8, 0x56, 0xe3, 0x33, 0xcd, 0x95, 0x3a,
+ 0xab, 0x50, 0x0b, 0x3f, 0xb7, 0xa2, 0x59, 0xc6, 0x98, 0x1b, 0x22, 0x06,
+ 0xf3, 0x9b, 0xa1, 0x6b, 0xf4, 0x39, 0xc5, 0x81,
+};
+static const unsigned char kat1794_addin1[] = {
+ 0xac, 0xd9, 0x8e, 0x1c, 0x9a, 0xd4, 0x9f, 0x1b, 0x30, 0x9e, 0xef, 0xe9,
+ 0x5a, 0x5b, 0xa3, 0x6f, 0x35, 0xc4, 0x11, 0xfc, 0x42, 0x41, 0xaf, 0xbe,
+ 0x06, 0x7e, 0x6a, 0xde, 0x67, 0xff, 0xa0, 0x9e,
+};
+static const unsigned char kat1794_retbits[] = {
+ 0xf9, 0x59, 0x9d, 0x40, 0x2a, 0x9f, 0x26, 0xfd, 0x6f, 0x1f, 0xe9, 0x8f,
+ 0xde, 0x34, 0x22, 0x54, 0x6b, 0x7d, 0x75, 0x11, 0x62, 0xa7, 0x28, 0x8b,
+ 0xfc, 0x6b, 0x32, 0xf8, 0x63, 0xae, 0x98, 0xb1, 0xb2, 0x04, 0x82, 0x86,
+ 0x32, 0xd3, 0xad, 0x5e, 0x90, 0x0c, 0xb0, 0xfe, 0x54, 0xd8, 0x4b, 0x2c,
+ 0xeb, 0x4d, 0xf1, 0x55, 0xcc, 0xfd, 0x99, 0x1e, 0x93, 0xa2, 0x63, 0xe1,
+ 0xe0, 0x4f, 0xdb, 0xdc,
+};
+static const struct drbg_kat_pr_false kat1794_t = {
+ 8, kat1794_entropyin, kat1794_nonce, kat1794_persstr,
+ kat1794_entropyinreseed, kat1794_addinreseed, kat1794_addin0,
+ kat1794_addin1, kat1794_retbits
+};
+static const struct drbg_kat kat1794 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1794_t
+};
+
+static const unsigned char kat1795_entropyin[] = {
+ 0xf8, 0xfe, 0xa2, 0x09, 0xa8, 0xab, 0xf3, 0xd6, 0x70, 0x0f, 0x05, 0x12,
+ 0x91, 0xbf, 0xf9, 0x86, 0x55, 0xf9, 0x9c, 0x10, 0x41, 0xd6, 0x9b, 0x61,
+};
+static const unsigned char kat1795_nonce[] = {
+ 0xfc, 0xcf, 0xb4, 0x00, 0xdb, 0x6f, 0x4b, 0xbf, 0xaf, 0xa5, 0x1b, 0xda,
+ 0xc0, 0x35, 0x80, 0xd8,
+};
+static const unsigned char kat1795_persstr[] = {
+ 0x71, 0x70, 0xc1, 0x54, 0x8d, 0xf5, 0xc4, 0x8e, 0xee, 0x3b, 0x07, 0x65,
+ 0x16, 0x39, 0x6c, 0xd3, 0x55, 0xcd, 0x76, 0x1d, 0xd2, 0x9b, 0x8a, 0x53,
+ 0x42, 0x63, 0xa3, 0xb9, 0xaf, 0x29, 0x9d, 0xca,
+};
+static const unsigned char kat1795_entropyinreseed[] = {
+ 0x96, 0x3e, 0x22, 0x2a, 0xf3, 0xed, 0x7d, 0x4b, 0x6d, 0x33, 0xd9, 0x2f,
+ 0x8e, 0xfb, 0x7d, 0xbd, 0x44, 0x70, 0xdd, 0x86, 0xef, 0x4a, 0x22, 0x03,
+};
+static const unsigned char kat1795_addinreseed[] = {
+ 0x34, 0xa1, 0x0d, 0x36, 0x53, 0x33, 0xbc, 0x69, 0x40, 0x24, 0xe7, 0xe0,
+ 0x87, 0x28, 0x0d, 0x5f, 0xa2, 0x7f, 0x0f, 0x69, 0xc4, 0x8e, 0x53, 0x79,
+ 0x9b, 0x0d, 0x3f, 0x55, 0xbb, 0xbe, 0x58, 0x21,
+};
+static const unsigned char kat1795_addin0[] = {
+ 0xbc, 0x95, 0xea, 0x09, 0x9f, 0xd7, 0xeb, 0x90, 0x7b, 0xcc, 0x96, 0x69,
+ 0xff, 0x2a, 0xed, 0x11, 0x0d, 0xb8, 0x8c, 0x30, 0xb0, 0x9a, 0x10, 0xa6,
+ 0xa5, 0x0b, 0x45, 0x14, 0x6c, 0x19, 0xa2, 0xba,
+};
+static const unsigned char kat1795_addin1[] = {
+ 0x87, 0x12, 0x11, 0x49, 0xb2, 0x5e, 0xb1, 0xe5, 0x50, 0x0e, 0x78, 0x2d,
+ 0x7c, 0xd0, 0x73, 0x3f, 0x9d, 0xff, 0x8e, 0x59, 0x73, 0xac, 0xfd, 0x0b,
+ 0xba, 0x04, 0x93, 0x2c, 0xbb, 0x05, 0x8c, 0xf6,
+};
+static const unsigned char kat1795_retbits[] = {
+ 0xb3, 0x25, 0xc7, 0xfa, 0xde, 0xe9, 0x11, 0xab, 0x38, 0xde, 0x35, 0xbb,
+ 0x02, 0xfe, 0x63, 0xf7, 0x04, 0xbd, 0xaa, 0xe8, 0xeb, 0xd2, 0xe9, 0x75,
+ 0x0d, 0x27, 0x3b, 0x65, 0x52, 0xe3, 0x42, 0x86, 0xe4, 0x72, 0xa0, 0x1c,
+ 0x05, 0x4d, 0x5a, 0x84, 0x6a, 0x64, 0xce, 0x0b, 0xe1, 0x5f, 0xc4, 0x4a,
+ 0xfd, 0xf5, 0xc6, 0x46, 0x5b, 0x50, 0x86, 0x4b, 0x24, 0x65, 0x89, 0x4c,
+ 0x83, 0x88, 0xc6, 0xfb,
+};
+static const struct drbg_kat_pr_false kat1795_t = {
+ 9, kat1795_entropyin, kat1795_nonce, kat1795_persstr,
+ kat1795_entropyinreseed, kat1795_addinreseed, kat1795_addin0,
+ kat1795_addin1, kat1795_retbits
+};
+static const struct drbg_kat kat1795 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1795_t
+};
+
+static const unsigned char kat1796_entropyin[] = {
+ 0x2d, 0xbb, 0xc1, 0xb4, 0x1e, 0xca, 0x69, 0xae, 0xeb, 0x3f, 0x16, 0x19,
+ 0x07, 0xb1, 0x22, 0x81, 0x65, 0x36, 0x56, 0xf1, 0x5c, 0x87, 0x93, 0x41,
+};
+static const unsigned char kat1796_nonce[] = {
+ 0x7d, 0x88, 0xa1, 0x24, 0xa3, 0xbd, 0x84, 0x71, 0xa5, 0xb5, 0x61, 0xda,
+ 0xd2, 0xce, 0xb9, 0xb2,
+};
+static const unsigned char kat1796_persstr[] = {
+ 0xa1, 0xb6, 0x6f, 0x79, 0xb4, 0x8f, 0xda, 0xf8, 0x19, 0x1a, 0xb2, 0x70,
+ 0x35, 0xb0, 0xa3, 0xa8, 0xbb, 0x1c, 0xed, 0x65, 0x8d, 0x03, 0x00, 0x58,
+ 0x14, 0xc2, 0x49, 0x4b, 0x68, 0x02, 0x64, 0x85,
+};
+static const unsigned char kat1796_entropyinreseed[] = {
+ 0x50, 0xe0, 0xdf, 0x18, 0x7d, 0xd9, 0xc2, 0x7d, 0x5a, 0x0e, 0x96, 0x2c,
+ 0x2c, 0x86, 0x15, 0xbf, 0xe7, 0x22, 0x8d, 0x14, 0x75, 0xe2, 0xf4, 0xf7,
+};
+static const unsigned char kat1796_addinreseed[] = {
+ 0x85, 0x98, 0xc8, 0x0c, 0xaf, 0x70, 0xe2, 0xe6, 0xff, 0xce, 0x3c, 0x6c,
+ 0xb4, 0xf0, 0x69, 0x33, 0x11, 0x40, 0x15, 0xd7, 0xc9, 0xc5, 0xd2, 0x73,
+ 0xb4, 0x28, 0xb4, 0xfb, 0xc2, 0xd1, 0x4b, 0x7c,
+};
+static const unsigned char kat1796_addin0[] = {
+ 0x83, 0x94, 0xe9, 0x45, 0xa4, 0x21, 0xe9, 0xbc, 0x68, 0x4f, 0x49, 0x87,
+ 0x6a, 0x01, 0x15, 0x96, 0xa2, 0x2c, 0x6c, 0x98, 0x8b, 0x83, 0xc7, 0x30,
+ 0x9f, 0x3d, 0xbc, 0xbd, 0x9c, 0xb1, 0x9d, 0x8c,
+};
+static const unsigned char kat1796_addin1[] = {
+ 0x70, 0x52, 0x58, 0xf5, 0xb7, 0x80, 0x48, 0x20, 0x7e, 0x1e, 0x3f, 0x8e,
+ 0xfd, 0x9e, 0xaf, 0xee, 0xfe, 0xde, 0x23, 0xb4, 0xe5, 0x1c, 0x79, 0xc0,
+ 0x31, 0x04, 0xb1, 0x56, 0x86, 0x56, 0x27, 0xd5,
+};
+static const unsigned char kat1796_retbits[] = {
+ 0xb7, 0xf5, 0x39, 0x6c, 0x9d, 0x2d, 0xbb, 0x14, 0xfb, 0xe1, 0x62, 0x2d,
+ 0x15, 0x40, 0xe5, 0xdf, 0xe7, 0x2b, 0xba, 0x85, 0xcd, 0xd4, 0x95, 0x15,
+ 0x11, 0x47, 0x28, 0xdc, 0x9a, 0x35, 0xef, 0x38, 0x6a, 0xd5, 0xc1, 0xb7,
+ 0xc7, 0xb7, 0xc4, 0x0b, 0x06, 0x90, 0x4f, 0x71, 0x19, 0x0a, 0x39, 0xd5,
+ 0xbe, 0x41, 0x9b, 0x29, 0xa4, 0x2b, 0x94, 0x70, 0xe6, 0xb9, 0x73, 0x83,
+ 0x0f, 0x01, 0x87, 0xd3,
+};
+static const struct drbg_kat_pr_false kat1796_t = {
+ 10, kat1796_entropyin, kat1796_nonce, kat1796_persstr,
+ kat1796_entropyinreseed, kat1796_addinreseed, kat1796_addin0,
+ kat1796_addin1, kat1796_retbits
+};
+static const struct drbg_kat kat1796 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1796_t
+};
+
+static const unsigned char kat1797_entropyin[] = {
+ 0x60, 0x7b, 0x26, 0x92, 0x9e, 0x2a, 0x93, 0x26, 0xcd, 0x3b, 0xb2, 0x6e,
+ 0x7d, 0xd1, 0x0b, 0x13, 0x09, 0x5c, 0xca, 0x93, 0x94, 0x95, 0x75, 0xf5,
+};
+static const unsigned char kat1797_nonce[] = {
+ 0xbf, 0xf2, 0x91, 0xe5, 0x98, 0x12, 0xd1, 0x0a, 0x4d, 0x65, 0xb3, 0x8a,
+ 0x61, 0x44, 0xd0, 0x08,
+};
+static const unsigned char kat1797_persstr[] = {
+ 0x52, 0xaa, 0x98, 0x10, 0xf2, 0x6f, 0x28, 0x4e, 0x91, 0x5a, 0xa3, 0x8f,
+ 0x20, 0xd5, 0x8b, 0x38, 0x94, 0x9e, 0x5d, 0xb9, 0x27, 0x80, 0x51, 0x1d,
+ 0x69, 0xcf, 0x73, 0xc0, 0x8b, 0xb9, 0x92, 0x6f,
+};
+static const unsigned char kat1797_entropyinreseed[] = {
+ 0x64, 0x89, 0xce, 0x0e, 0x80, 0xeb, 0x12, 0xde, 0x88, 0xcb, 0xcd, 0xc4,
+ 0xe6, 0xa1, 0xf1, 0x64, 0xf8, 0xc3, 0x41, 0x09, 0xa8, 0x42, 0x21, 0xe9,
+};
+static const unsigned char kat1797_addinreseed[] = {
+ 0xf9, 0xd6, 0x5f, 0x81, 0x8d, 0xc0, 0x80, 0x6e, 0xaa, 0xa9, 0x0f, 0x22,
+ 0xa6, 0x1b, 0x7c, 0xf3, 0xde, 0x69, 0x54, 0x2f, 0xd7, 0x22, 0x39, 0x69,
+ 0x36, 0x13, 0x84, 0x1b, 0x92, 0x4a, 0xd2, 0xb0,
+};
+static const unsigned char kat1797_addin0[] = {
+ 0xd8, 0x59, 0x20, 0xfa, 0x2d, 0x32, 0x1e, 0xf6, 0x17, 0xb2, 0x39, 0x8e,
+ 0x43, 0x8c, 0x6a, 0xa4, 0x55, 0x22, 0x91, 0x24, 0x9c, 0x54, 0x4a, 0x65,
+ 0xe6, 0x2f, 0xe1, 0xdb, 0xfa, 0x77, 0xfe, 0x75,
+};
+static const unsigned char kat1797_addin1[] = {
+ 0x77, 0xf9, 0x64, 0x78, 0x0f, 0x61, 0x98, 0xe5, 0x21, 0xa1, 0xd3, 0x11,
+ 0x1c, 0xc4, 0xa8, 0xaa, 0xc7, 0xcd, 0x84, 0x2d, 0x8b, 0xb6, 0x90, 0x44,
+ 0x95, 0xc8, 0xbb, 0x25, 0x57, 0x82, 0x86, 0xd9,
+};
+static const unsigned char kat1797_retbits[] = {
+ 0xb8, 0xc1, 0xa5, 0x3e, 0xa0, 0x7a, 0xf7, 0xcb, 0xcf, 0xec, 0x57, 0xb7,
+ 0xc4, 0x89, 0xfa, 0xf8, 0x51, 0x61, 0xd9, 0xdd, 0xe7, 0xc2, 0x73, 0x4b,
+ 0x60, 0x5f, 0x62, 0x38, 0xbc, 0x3a, 0xaf, 0xdc, 0x44, 0x83, 0xd2, 0x41,
+ 0x35, 0x2c, 0xaf, 0x04, 0x47, 0x9b, 0xa6, 0x7c, 0x84, 0xc1, 0xbf, 0xeb,
+ 0x19, 0xa8, 0xbb, 0xf0, 0xc4, 0xc0, 0xe7, 0x07, 0x28, 0x8d, 0x2c, 0x2c,
+ 0x69, 0x70, 0x11, 0x22,
+};
+static const struct drbg_kat_pr_false kat1797_t = {
+ 11, kat1797_entropyin, kat1797_nonce, kat1797_persstr,
+ kat1797_entropyinreseed, kat1797_addinreseed, kat1797_addin0,
+ kat1797_addin1, kat1797_retbits
+};
+static const struct drbg_kat kat1797 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1797_t
+};
+
+static const unsigned char kat1798_entropyin[] = {
+ 0xe1, 0xb5, 0xb9, 0x1f, 0x0f, 0x5e, 0xf3, 0xd6, 0x65, 0x18, 0xca, 0x65,
+ 0x09, 0x8c, 0x6a, 0xf7, 0x90, 0x80, 0x66, 0x24, 0xbf, 0x6c, 0x2e, 0x98,
+};
+static const unsigned char kat1798_nonce[] = {
+ 0xe9, 0x27, 0x8e, 0xa5, 0xf8, 0x64, 0x35, 0x11, 0xcd, 0x78, 0x7a, 0x71,
+ 0xe3, 0x9b, 0x4c, 0x4d,
+};
+static const unsigned char kat1798_persstr[] = {
+ 0x0c, 0xab, 0x8f, 0x63, 0xd0, 0x8f, 0xad, 0xaa, 0x11, 0xc1, 0xe8, 0x0a,
+ 0x1e, 0x29, 0x82, 0x95, 0x06, 0xbe, 0x37, 0x20, 0x96, 0x3b, 0xad, 0x7f,
+ 0xe9, 0x08, 0xea, 0x74, 0x88, 0x0e, 0x41, 0x38,
+};
+static const unsigned char kat1798_entropyinreseed[] = {
+ 0xcf, 0x20, 0x4b, 0xbc, 0x35, 0xe9, 0x77, 0xfb, 0x77, 0xcb, 0x04, 0x8a,
+ 0xcb, 0x7a, 0x3c, 0xd5, 0xba, 0x1d, 0x8e, 0x1d, 0xd6, 0x48, 0x43, 0x13,
+};
+static const unsigned char kat1798_addinreseed[] = {
+ 0x3c, 0x60, 0xd5, 0x16, 0xaf, 0x0f, 0x43, 0x61, 0x2e, 0x2e, 0x0d, 0xb1,
+ 0xad, 0x91, 0xba, 0x12, 0xad, 0x5a, 0x9b, 0xdb, 0x20, 0xcb, 0x3c, 0x80,
+ 0x7a, 0x7a, 0x30, 0xfd, 0xc0, 0x0d, 0xac, 0x8e,
+};
+static const unsigned char kat1798_addin0[] = {
+ 0x4b, 0x69, 0x7b, 0xdf, 0x6e, 0xe0, 0x15, 0xfa, 0xac, 0xfa, 0x95, 0x96,
+ 0xcf, 0x4a, 0xb6, 0x64, 0xd4, 0x7d, 0xbb, 0xc1, 0x98, 0xac, 0x77, 0x11,
+ 0x2b, 0x2e, 0x64, 0xe3, 0x32, 0x51, 0xa0, 0x30,
+};
+static const unsigned char kat1798_addin1[] = {
+ 0x89, 0xdc, 0x88, 0xd0, 0xba, 0x7c, 0x9d, 0xd8, 0x31, 0xf0, 0xcf, 0x11,
+ 0xbe, 0xbd, 0x08, 0x0e, 0x1c, 0x38, 0xd1, 0x69, 0x70, 0xcf, 0x48, 0x7b,
+ 0x46, 0xe0, 0xaa, 0x7e, 0xbd, 0x46, 0x82, 0x40,
+};
+static const unsigned char kat1798_retbits[] = {
+ 0x8d, 0x84, 0xec, 0x1a, 0x7b, 0x11, 0xdd, 0xed, 0xdd, 0xdd, 0x6d, 0x6b,
+ 0x90, 0xb2, 0x60, 0x4e, 0x6d, 0x6c, 0x87, 0x2c, 0x9d, 0x3e, 0xce, 0x42,
+ 0x4c, 0xae, 0x84, 0xbe, 0x9b, 0x71, 0xd8, 0xc0, 0xc1, 0x39, 0x5a, 0xfe,
+ 0xbd, 0x95, 0x50, 0x20, 0xcc, 0xa1, 0x5b, 0x03, 0xa5, 0xf5, 0x09, 0xd8,
+ 0x8d, 0x51, 0x5b, 0x3b, 0xbc, 0xd5, 0x8f, 0xe9, 0x0a, 0x30, 0x52, 0xb0,
+ 0x07, 0xf7, 0xe8, 0xf5,
+};
+static const struct drbg_kat_pr_false kat1798_t = {
+ 12, kat1798_entropyin, kat1798_nonce, kat1798_persstr,
+ kat1798_entropyinreseed, kat1798_addinreseed, kat1798_addin0,
+ kat1798_addin1, kat1798_retbits
+};
+static const struct drbg_kat kat1798 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1798_t
+};
+
+static const unsigned char kat1799_entropyin[] = {
+ 0xb4, 0x6c, 0x57, 0xd2, 0x61, 0xd5, 0x94, 0x9f, 0x47, 0x12, 0x98, 0x28,
+ 0xcd, 0x1a, 0x7f, 0xc8, 0xbe, 0xa0, 0x82, 0x61, 0x13, 0x25, 0x57, 0xe0,
+};
+static const unsigned char kat1799_nonce[] = {
+ 0x82, 0x9f, 0x0e, 0x69, 0x20, 0x55, 0xf6, 0xba, 0xf7, 0xf5, 0x5d, 0x36,
+ 0x42, 0x13, 0xbd, 0xb1,
+};
+static const unsigned char kat1799_persstr[] = {
+ 0x4e, 0x00, 0x00, 0x1a, 0x12, 0xf5, 0x32, 0xeb, 0x49, 0x9d, 0xf4, 0x71,
+ 0x0e, 0x47, 0xdb, 0x80, 0xc1, 0x5b, 0x08, 0xc0, 0x0c, 0xa9, 0x2b, 0x84,
+ 0x85, 0xd3, 0xb4, 0xa8, 0xe0, 0x21, 0xa4, 0xbe,
+};
+static const unsigned char kat1799_entropyinreseed[] = {
+ 0x56, 0xc5, 0x0b, 0x70, 0x16, 0x34, 0xb9, 0x37, 0x96, 0x90, 0x10, 0xc3,
+ 0xac, 0x50, 0x53, 0xee, 0x6c, 0x7e, 0xa6, 0x90, 0xaa, 0x65, 0x2d, 0x6b,
+};
+static const unsigned char kat1799_addinreseed[] = {
+ 0xcd, 0xbc, 0x87, 0x31, 0xa1, 0xe3, 0x9a, 0x36, 0xac, 0x03, 0x79, 0x02,
+ 0x77, 0xfa, 0x02, 0xee, 0x09, 0xd8, 0x35, 0xd6, 0xcd, 0x73, 0x70, 0xf9,
+ 0x3d, 0x78, 0xfb, 0x18, 0x4c, 0x6c, 0xd7, 0x9c,
+};
+static const unsigned char kat1799_addin0[] = {
+ 0xe0, 0xc2, 0xbb, 0x2d, 0xc1, 0x87, 0x2f, 0x85, 0x6f, 0x7f, 0x15, 0x94,
+ 0xb9, 0xf6, 0x52, 0xb6, 0x38, 0xa0, 0xf7, 0x80, 0x85, 0x5c, 0xe4, 0x99,
+ 0xa7, 0xcf, 0x26, 0x28, 0xe1, 0xb1, 0x76, 0x3c,
+};
+static const unsigned char kat1799_addin1[] = {
+ 0x0e, 0xec, 0x40, 0xf4, 0x86, 0xff, 0xbd, 0xa8, 0x3e, 0xfc, 0xa8, 0x89,
+ 0xb5, 0xf8, 0xe8, 0x43, 0x6f, 0xba, 0xe0, 0xcf, 0x89, 0xc5, 0xa4, 0x01,
+ 0x28, 0x6b, 0x81, 0x91, 0x3a, 0xaf, 0x95, 0xd1,
+};
+static const unsigned char kat1799_retbits[] = {
+ 0x91, 0xcc, 0x03, 0x09, 0x72, 0xe6, 0xc2, 0x85, 0x6f, 0x49, 0x03, 0x11,
+ 0xb7, 0x4c, 0x23, 0xad, 0xf0, 0x5d, 0x87, 0x91, 0xe5, 0x8f, 0xff, 0x2b,
+ 0x03, 0x48, 0x01, 0x63, 0x48, 0xc6, 0xc9, 0x9f, 0xa9, 0x68, 0x63, 0xe6,
+ 0x30, 0xfa, 0xfe, 0x10, 0x5a, 0x81, 0xc3, 0x4c, 0x2f, 0x93, 0xe7, 0xf0,
+ 0xff, 0x09, 0xfa, 0x74, 0x23, 0x3e, 0x6f, 0x88, 0x02, 0xce, 0xb9, 0xcf,
+ 0x04, 0x40, 0x9c, 0xa3,
+};
+static const struct drbg_kat_pr_false kat1799_t = {
+ 13, kat1799_entropyin, kat1799_nonce, kat1799_persstr,
+ kat1799_entropyinreseed, kat1799_addinreseed, kat1799_addin0,
+ kat1799_addin1, kat1799_retbits
+};
+static const struct drbg_kat kat1799 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1799_t
+};
+
+static const unsigned char kat1800_entropyin[] = {
+ 0xa7, 0x1b, 0x17, 0xc7, 0x42, 0x8f, 0x2b, 0x3e, 0x67, 0x5a, 0x0c, 0x46,
+ 0xcf, 0xd1, 0x7d, 0x89, 0x15, 0x90, 0x04, 0x62, 0x02, 0xdf, 0x4a, 0x3e,
+};
+static const unsigned char kat1800_nonce[] = {
+ 0x55, 0x8c, 0x6e, 0xc0, 0x9d, 0x48, 0x33, 0xbd, 0x1e, 0xb2, 0x89, 0xa5,
+ 0x8d, 0x9a, 0x80, 0xe6,
+};
+static const unsigned char kat1800_persstr[] = {
+ 0xee, 0x6d, 0x71, 0xf0, 0xbd, 0x06, 0x64, 0xea, 0x86, 0xe4, 0xb0, 0x4f,
+ 0xf6, 0xe4, 0x75, 0x10, 0xe9, 0xc4, 0x29, 0x32, 0x47, 0xce, 0xfb, 0x9f,
+ 0xea, 0x3b, 0x5c, 0xc1, 0xc8, 0xed, 0xec, 0xf7,
+};
+static const unsigned char kat1800_entropyinreseed[] = {
+ 0x11, 0x80, 0xc5, 0x75, 0xb9, 0x9d, 0x09, 0xc7, 0x50, 0xe4, 0x4f, 0xed,
+ 0x75, 0x6e, 0x75, 0x5f, 0xd8, 0xb0, 0x10, 0xbc, 0x75, 0x11, 0xbf, 0xde,
+};
+static const unsigned char kat1800_addinreseed[] = {
+ 0x85, 0x75, 0x65, 0xdf, 0xef, 0xed, 0xbe, 0xbc, 0x2b, 0x93, 0x07, 0x79,
+ 0x5d, 0x83, 0x42, 0xdd, 0x37, 0x4c, 0xcf, 0xec, 0x43, 0xbd, 0x45, 0x4f,
+ 0x7b, 0x92, 0x24, 0x31, 0xe9, 0x36, 0x83, 0x07,
+};
+static const unsigned char kat1800_addin0[] = {
+ 0xc2, 0x66, 0x01, 0x9b, 0xef, 0x29, 0x4f, 0xae, 0xc2, 0x87, 0xd1, 0x49,
+ 0x27, 0x6c, 0x9b, 0xef, 0x20, 0x25, 0x8c, 0x3e, 0xf0, 0x68, 0x51, 0xc5,
+ 0x0b, 0x63, 0x0f, 0x76, 0x81, 0xa6, 0x87, 0xed,
+};
+static const unsigned char kat1800_addin1[] = {
+ 0x8d, 0x8b, 0x34, 0xc3, 0x01, 0x86, 0x62, 0x13, 0x57, 0x9e, 0x2d, 0x4a,
+ 0x0d, 0xed, 0x89, 0x50, 0x2c, 0x68, 0x37, 0x3e, 0xa2, 0x34, 0x53, 0xba,
+ 0x89, 0x6f, 0x18, 0x3c, 0x35, 0x37, 0x61, 0x0f,
+};
+static const unsigned char kat1800_retbits[] = {
+ 0xe5, 0x36, 0x33, 0xd4, 0x9f, 0xa5, 0x64, 0x28, 0xc0, 0x81, 0x2e, 0xd0,
+ 0xe2, 0xec, 0xbb, 0x8c, 0x97, 0x3b, 0x91, 0xb9, 0x30, 0x95, 0x9a, 0xae,
+ 0x4f, 0x18, 0x54, 0xe2, 0x5b, 0x52, 0xfb, 0x10, 0x23, 0x0b, 0x58, 0x0d,
+ 0x7f, 0xd0, 0x1c, 0x0e, 0x54, 0xec, 0x25, 0xdc, 0x4f, 0xc4, 0x41, 0x51,
+ 0x24, 0xab, 0x5b, 0x22, 0xa0, 0x07, 0x12, 0xd3, 0xd1, 0xdd, 0x01, 0xc0,
+ 0x93, 0x46, 0x6f, 0x9b,
+};
+static const struct drbg_kat_pr_false kat1800_t = {
+ 14, kat1800_entropyin, kat1800_nonce, kat1800_persstr,
+ kat1800_entropyinreseed, kat1800_addinreseed, kat1800_addin0,
+ kat1800_addin1, kat1800_retbits
+};
+static const struct drbg_kat kat1800 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1800_t
+};
+
+static const unsigned char kat1801_entropyin[] = {
+ 0x85, 0x16, 0xa8, 0x78, 0x8f, 0x6a, 0x58, 0xdd, 0xad, 0xed, 0xf8, 0x17,
+ 0x5a, 0xa2, 0x89, 0xa2, 0xbc, 0x31, 0x0c, 0x07, 0xef, 0x0d, 0x0d, 0x82,
+};
+static const unsigned char kat1801_nonce[] = {
+ 0x5d, 0xb7, 0xbe, 0x3e, 0x06, 0x83, 0x00, 0xb2, 0x5b, 0xd9, 0x49, 0x74,
+ 0x47, 0x5e, 0x58, 0xf5,
+};
+static const unsigned char kat1801_persstr[] = {0};
+static const unsigned char kat1801_entropyinreseed[] = {
+ 0x42, 0x3b, 0x99, 0x12, 0xe0, 0xe6, 0xfb, 0xef, 0x38, 0x64, 0x2c, 0x46,
+ 0xdf, 0x7d, 0xba, 0xee, 0x21, 0x97, 0x17, 0x33, 0x52, 0xf1, 0x52, 0x67,
+};
+static const unsigned char kat1801_addinreseed[] = {0};
+static const unsigned char kat1801_addin0[] = {0};
+static const unsigned char kat1801_addin1[] = {0};
+static const unsigned char kat1801_retbits[] = {
+ 0xc6, 0x12, 0xff, 0xdb, 0x9e, 0xa6, 0xe2, 0x09, 0x01, 0xe8, 0xf5, 0x8c,
+ 0x18, 0x0d, 0xc4, 0xd7, 0x9b, 0x9a, 0x25, 0xbb, 0x51, 0xff, 0xb7, 0x5d,
+ 0x7b, 0x40, 0x76, 0xf8, 0xf6, 0x79, 0x1c, 0x23, 0x2e, 0xea, 0xab, 0xb2,
+ 0xe4, 0x3f, 0x30, 0x91, 0x55, 0xe5, 0x38, 0x10, 0xae, 0x79, 0x5e, 0xba,
+ 0x66, 0x71, 0x24, 0xa9, 0xf6, 0x97, 0xf6, 0xbb, 0x35, 0x67, 0x85, 0xed,
+ 0xd9, 0xff, 0x39, 0x59,
+};
+static const struct drbg_kat_pr_false kat1801_t = {
+ 0, kat1801_entropyin, kat1801_nonce, kat1801_persstr,
+ kat1801_entropyinreseed, kat1801_addinreseed, kat1801_addin0,
+ kat1801_addin1, kat1801_retbits
+};
+static const struct drbg_kat kat1801 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1801_t
+};
+
+static const unsigned char kat1802_entropyin[] = {
+ 0x88, 0x93, 0x59, 0x3a, 0x21, 0xe2, 0xdf, 0x41, 0xdd, 0xbd, 0x7f, 0xce,
+ 0xe3, 0x00, 0x18, 0xa6, 0x9f, 0xfb, 0x23, 0x35, 0x86, 0x0d, 0x18, 0xda,
+};
+static const unsigned char kat1802_nonce[] = {
+ 0xfd, 0x1d, 0xc5, 0x85, 0xcc, 0x19, 0x5c, 0x10, 0xd7, 0xe2, 0x74, 0x18,
+ 0xff, 0x2d, 0xdd, 0x35,
+};
+static const unsigned char kat1802_persstr[] = {0};
+static const unsigned char kat1802_entropyinreseed[] = {
+ 0x3c, 0x23, 0x6b, 0xe2, 0x70, 0x7e, 0x38, 0x80, 0x22, 0xe7, 0x30, 0x7e,
+ 0x1e, 0xf4, 0xde, 0x38, 0x7b, 0x3a, 0x6e, 0xb9, 0x50, 0x86, 0xb2, 0xa7,
+};
+static const unsigned char kat1802_addinreseed[] = {0};
+static const unsigned char kat1802_addin0[] = {0};
+static const unsigned char kat1802_addin1[] = {0};
+static const unsigned char kat1802_retbits[] = {
+ 0x30, 0x83, 0x05, 0x4e, 0xa1, 0xe2, 0x76, 0x87, 0xd8, 0x69, 0x6b, 0x74,
+ 0x62, 0x98, 0xb3, 0xad, 0xd9, 0xf3, 0xb5, 0x6d, 0x7a, 0xc8, 0x3f, 0xba,
+ 0x75, 0xc4, 0x72, 0xc3, 0xd5, 0xba, 0xd1, 0xbf, 0xd5, 0xc5, 0x37, 0xe4,
+ 0x21, 0x16, 0x49, 0xf7, 0x2b, 0xeb, 0x0d, 0xea, 0x79, 0xf0, 0x97, 0xc9,
+ 0xeb, 0x13, 0xa7, 0xce, 0xf0, 0x84, 0x33, 0x3d, 0x95, 0x86, 0x66, 0x3e,
+ 0x07, 0x28, 0xb2, 0x90,
+};
+static const struct drbg_kat_pr_false kat1802_t = {
+ 1, kat1802_entropyin, kat1802_nonce, kat1802_persstr,
+ kat1802_entropyinreseed, kat1802_addinreseed, kat1802_addin0,
+ kat1802_addin1, kat1802_retbits
+};
+static const struct drbg_kat kat1802 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1802_t
+};
+
+static const unsigned char kat1803_entropyin[] = {
+ 0x0a, 0xe9, 0xa6, 0x0d, 0xc1, 0xf0, 0x74, 0xb2, 0xdd, 0x86, 0xba, 0x3f,
+ 0xa2, 0xe3, 0x29, 0xb9, 0xca, 0xdf, 0x7a, 0xfc, 0xd9, 0x4e, 0x64, 0xd1,
+};
+static const unsigned char kat1803_nonce[] = {
+ 0x28, 0xf3, 0xbb, 0x2c, 0x48, 0xeb, 0xe5, 0x82, 0x9d, 0x31, 0x28, 0x30,
+ 0x24, 0xf7, 0x0a, 0x55,
+};
+static const unsigned char kat1803_persstr[] = {0};
+static const unsigned char kat1803_entropyinreseed[] = {
+ 0xd0, 0xff, 0xba, 0xf4, 0x62, 0xaf, 0xe1, 0xfc, 0x9b, 0x5c, 0x45, 0x93,
+ 0x28, 0x03, 0x6e, 0x11, 0x5d, 0x4f, 0xde, 0x0d, 0x0b, 0x87, 0xe2, 0x87,
+};
+static const unsigned char kat1803_addinreseed[] = {0};
+static const unsigned char kat1803_addin0[] = {0};
+static const unsigned char kat1803_addin1[] = {0};
+static const unsigned char kat1803_retbits[] = {
+ 0x67, 0x82, 0x85, 0xfd, 0x0c, 0xba, 0x3c, 0x39, 0x27, 0x2f, 0x64, 0xad,
+ 0xaf, 0xc6, 0x97, 0x07, 0xcb, 0xbb, 0xcc, 0x50, 0x26, 0x43, 0x06, 0x3b,
+ 0x0c, 0xda, 0xfa, 0x32, 0xc4, 0x5e, 0x7a, 0xca, 0x70, 0xdd, 0xfa, 0xed,
+ 0xc6, 0x56, 0xd7, 0x43, 0xcb, 0xc9, 0x80, 0xa1, 0x85, 0x90, 0x46, 0x97,
+ 0xc4, 0xe4, 0xdd, 0x1a, 0x10, 0x26, 0x93, 0x3e, 0x42, 0x59, 0x8d, 0x44,
+ 0xf3, 0xc1, 0xc9, 0x9e,
+};
+static const struct drbg_kat_pr_false kat1803_t = {
+ 2, kat1803_entropyin, kat1803_nonce, kat1803_persstr,
+ kat1803_entropyinreseed, kat1803_addinreseed, kat1803_addin0,
+ kat1803_addin1, kat1803_retbits
+};
+static const struct drbg_kat kat1803 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1803_t
+};
+
+static const unsigned char kat1804_entropyin[] = {
+ 0x7d, 0x0e, 0xfd, 0x40, 0x0f, 0xbc, 0x7a, 0xe6, 0xaf, 0xb8, 0xb0, 0x85,
+ 0x29, 0x1f, 0x22, 0xd9, 0xd6, 0xf4, 0x12, 0x90, 0xc0, 0x87, 0xbd, 0x24,
+};
+static const unsigned char kat1804_nonce[] = {
+ 0x11, 0xa6, 0xa4, 0x53, 0x12, 0x4a, 0xde, 0xe3, 0x3f, 0x8e, 0xbc, 0x68,
+ 0x85, 0xcc, 0xaf, 0xdd,
+};
+static const unsigned char kat1804_persstr[] = {0};
+static const unsigned char kat1804_entropyinreseed[] = {
+ 0x33, 0xd5, 0x55, 0xae, 0xbd, 0xc8, 0xc5, 0x29, 0x33, 0xb5, 0x8b, 0xba,
+ 0xa2, 0x7c, 0x2b, 0x46, 0xbb, 0xc6, 0xc5, 0x9e, 0xa9, 0xc3, 0x26, 0xe0,
+};
+static const unsigned char kat1804_addinreseed[] = {0};
+static const unsigned char kat1804_addin0[] = {0};
+static const unsigned char kat1804_addin1[] = {0};
+static const unsigned char kat1804_retbits[] = {
+ 0xe4, 0x05, 0x98, 0x48, 0x62, 0xb4, 0x0e, 0x21, 0xf2, 0x96, 0x78, 0xc4,
+ 0x10, 0xda, 0xff, 0x86, 0x4e, 0xd9, 0xe7, 0x0a, 0xb4, 0x1f, 0xa3, 0x07,
+ 0x82, 0xa7, 0x33, 0x90, 0xfd, 0xdd, 0xc3, 0xe0, 0x9e, 0x0a, 0x89, 0x6f,
+ 0x12, 0xb1, 0xc8, 0x5e, 0x6a, 0x66, 0x88, 0x20, 0x3b, 0xa8, 0xbb, 0xdb,
+ 0xac, 0xce, 0xb5, 0x0f, 0xdf, 0x90, 0xa0, 0xd2, 0xd5, 0x8e, 0x88, 0x1a,
+ 0xc9, 0x4b, 0x3d, 0xa6,
+};
+static const struct drbg_kat_pr_false kat1804_t = {
+ 3, kat1804_entropyin, kat1804_nonce, kat1804_persstr,
+ kat1804_entropyinreseed, kat1804_addinreseed, kat1804_addin0,
+ kat1804_addin1, kat1804_retbits
+};
+static const struct drbg_kat kat1804 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1804_t
+};
+
+static const unsigned char kat1805_entropyin[] = {
+ 0x7f, 0xbe, 0xbd, 0xc4, 0x84, 0x63, 0xe3, 0xff, 0x81, 0x35, 0x88, 0xa1,
+ 0x08, 0xc2, 0x88, 0xe0, 0x6c, 0xce, 0xbb, 0xbf, 0x3e, 0x0a, 0xb7, 0x57,
+};
+static const unsigned char kat1805_nonce[] = {
+ 0x84, 0x92, 0xb8, 0xcf, 0x8a, 0xb3, 0x62, 0x0a, 0xde, 0x27, 0x28, 0xc3,
+ 0x06, 0xe0, 0x7c, 0x2d,
+};
+static const unsigned char kat1805_persstr[] = {0};
+static const unsigned char kat1805_entropyinreseed[] = {
+ 0x22, 0x6d, 0x45, 0xb7, 0xd7, 0x7c, 0xf7, 0x4e, 0x9d, 0xe7, 0x4c, 0xb2,
+ 0x47, 0x49, 0xb9, 0x26, 0x67, 0x5d, 0xd8, 0xf9, 0xb3, 0x86, 0x94, 0x55,
+};
+static const unsigned char kat1805_addinreseed[] = {0};
+static const unsigned char kat1805_addin0[] = {0};
+static const unsigned char kat1805_addin1[] = {0};
+static const unsigned char kat1805_retbits[] = {
+ 0xc5, 0x6f, 0x70, 0x40, 0xef, 0x81, 0x4f, 0x24, 0x49, 0x91, 0xbf, 0xb4,
+ 0x31, 0xab, 0x18, 0xe1, 0xce, 0xb6, 0xc7, 0xab, 0x20, 0xcd, 0xdb, 0x6e,
+ 0x9c, 0xdb, 0x1d, 0x77, 0x40, 0xd6, 0xa1, 0x43, 0x43, 0xd5, 0xe8, 0xdc,
+ 0xca, 0x2c, 0x70, 0xf5, 0xca, 0xe2, 0x57, 0x6b, 0xa5, 0x75, 0x79, 0x5b,
+ 0xcb, 0xa7, 0x36, 0x79, 0x09, 0x9c, 0xc0, 0x3c, 0xc5, 0x01, 0xdb, 0xa6,
+ 0xc9, 0x75, 0x83, 0xa9,
+};
+static const struct drbg_kat_pr_false kat1805_t = {
+ 4, kat1805_entropyin, kat1805_nonce, kat1805_persstr,
+ kat1805_entropyinreseed, kat1805_addinreseed, kat1805_addin0,
+ kat1805_addin1, kat1805_retbits
+};
+static const struct drbg_kat kat1805 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1805_t
+};
+
+static const unsigned char kat1806_entropyin[] = {
+ 0xe2, 0xe6, 0x95, 0x34, 0x3b, 0xcb, 0x5d, 0x7c, 0xbd, 0xed, 0xc3, 0x76,
+ 0x3d, 0x95, 0x15, 0x51, 0xb5, 0x48, 0x61, 0x55, 0x8a, 0x8f, 0x32, 0x11,
+};
+static const unsigned char kat1806_nonce[] = {
+ 0x41, 0x87, 0x39, 0xcd, 0x69, 0xca, 0xe5, 0x0e, 0xc9, 0xc1, 0x03, 0x57,
+ 0xbf, 0x6c, 0xe0, 0x8c,
+};
+static const unsigned char kat1806_persstr[] = {0};
+static const unsigned char kat1806_entropyinreseed[] = {
+ 0xd9, 0x36, 0x2f, 0xce, 0x7b, 0xc4, 0x8b, 0xe4, 0x37, 0xc9, 0xe9, 0xb6,
+ 0x70, 0xdb, 0x33, 0x1d, 0x68, 0x24, 0x18, 0xf6, 0x1d, 0x77, 0x25, 0x00,
+};
+static const unsigned char kat1806_addinreseed[] = {0};
+static const unsigned char kat1806_addin0[] = {0};
+static const unsigned char kat1806_addin1[] = {0};
+static const unsigned char kat1806_retbits[] = {
+ 0x01, 0x39, 0x42, 0x70, 0x19, 0x01, 0xbd, 0x4d, 0xde, 0x2e, 0x38, 0x3a,
+ 0x5f, 0x99, 0x8f, 0x66, 0xf2, 0x0f, 0x9a, 0xd5, 0x75, 0xbc, 0xd5, 0x72,
+ 0x90, 0x3a, 0x9d, 0x8e, 0xe3, 0x0e, 0x22, 0xac, 0xfb, 0xe0, 0xf2, 0x63,
+ 0xbd, 0x0d, 0xb0, 0x2d, 0x38, 0xa9, 0x94, 0x73, 0xfd, 0x7d, 0xc8, 0x95,
+ 0x44, 0xce, 0xc1, 0xc4, 0xdb, 0xca, 0x81, 0xbf, 0x2d, 0x73, 0x9b, 0x21,
+ 0x48, 0xf1, 0xaf, 0xd7,
+};
+static const struct drbg_kat_pr_false kat1806_t = {
+ 5, kat1806_entropyin, kat1806_nonce, kat1806_persstr,
+ kat1806_entropyinreseed, kat1806_addinreseed, kat1806_addin0,
+ kat1806_addin1, kat1806_retbits
+};
+static const struct drbg_kat kat1806 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1806_t
+};
+
+static const unsigned char kat1807_entropyin[] = {
+ 0x1c, 0xd8, 0x9c, 0xfc, 0x55, 0x97, 0xe8, 0x09, 0xed, 0xf9, 0xe6, 0x8a,
+ 0x25, 0xf4, 0x41, 0x1c, 0x9d, 0xf3, 0xc3, 0xf5, 0x7d, 0x7d, 0x72, 0x18,
+};
+static const unsigned char kat1807_nonce[] = {
+ 0x86, 0xdc, 0x6a, 0x43, 0x33, 0xfb, 0x03, 0xa8, 0x99, 0x93, 0xcf, 0x5d,
+ 0x36, 0x95, 0x78, 0xd6,
+};
+static const unsigned char kat1807_persstr[] = {0};
+static const unsigned char kat1807_entropyinreseed[] = {
+ 0xb6, 0x5e, 0x35, 0xa5, 0x79, 0xbf, 0xc3, 0x70, 0x81, 0x93, 0x8d, 0x69,
+ 0x63, 0x27, 0xa9, 0x2f, 0x02, 0xa2, 0x8a, 0x1b, 0x60, 0x86, 0x55, 0x21,
+};
+static const unsigned char kat1807_addinreseed[] = {0};
+static const unsigned char kat1807_addin0[] = {0};
+static const unsigned char kat1807_addin1[] = {0};
+static const unsigned char kat1807_retbits[] = {
+ 0x21, 0x05, 0x53, 0x79, 0x40, 0xb6, 0x4a, 0x57, 0x02, 0x1d, 0x43, 0x5a,
+ 0x1a, 0xcf, 0x03, 0x5c, 0xb3, 0x07, 0xd2, 0x41, 0x81, 0xc0, 0x9d, 0x6f,
+ 0xc6, 0x7a, 0x73, 0xd6, 0xe3, 0x6f, 0xba, 0x8a, 0x62, 0x87, 0x0e, 0x72,
+ 0x64, 0x43, 0x52, 0x44, 0x78, 0xa1, 0x8d, 0x79, 0x0c, 0xde, 0xba, 0xf1,
+ 0x23, 0xf5, 0xea, 0x88, 0x2d, 0x34, 0x70, 0xc8, 0xae, 0x3a, 0x1e, 0xb1,
+ 0xdf, 0xdb, 0x47, 0x34,
+};
+static const struct drbg_kat_pr_false kat1807_t = {
+ 6, kat1807_entropyin, kat1807_nonce, kat1807_persstr,
+ kat1807_entropyinreseed, kat1807_addinreseed, kat1807_addin0,
+ kat1807_addin1, kat1807_retbits
+};
+static const struct drbg_kat kat1807 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1807_t
+};
+
+static const unsigned char kat1808_entropyin[] = {
+ 0x1c, 0xc3, 0xe8, 0xf1, 0xc3, 0x37, 0x60, 0xc4, 0xa0, 0xfd, 0xda, 0x9d,
+ 0xa7, 0xda, 0xba, 0xec, 0xab, 0x10, 0xd5, 0x70, 0xc6, 0xdd, 0x64, 0x00,
+};
+static const unsigned char kat1808_nonce[] = {
+ 0x1b, 0x73, 0xad, 0xb6, 0x67, 0x83, 0xbe, 0xe0, 0x24, 0x27, 0x2b, 0x69,
+ 0x5b, 0x0e, 0x19, 0xc3,
+};
+static const unsigned char kat1808_persstr[] = {0};
+static const unsigned char kat1808_entropyinreseed[] = {
+ 0x3b, 0xc1, 0x48, 0xc4, 0x3b, 0x54, 0xcb, 0x12, 0x6a, 0x16, 0xe7, 0x5d,
+ 0xa5, 0x4f, 0x53, 0x89, 0x7e, 0xc0, 0xa2, 0x8a, 0xe5, 0x89, 0xac, 0x64,
+};
+static const unsigned char kat1808_addinreseed[] = {0};
+static const unsigned char kat1808_addin0[] = {0};
+static const unsigned char kat1808_addin1[] = {0};
+static const unsigned char kat1808_retbits[] = {
+ 0x5e, 0xd9, 0xd6, 0x51, 0x92, 0x1f, 0x35, 0x11, 0x8a, 0x6f, 0xd8, 0xac,
+ 0x34, 0x84, 0xf9, 0xde, 0xee, 0x2d, 0x02, 0x5e, 0x0b, 0xa4, 0x80, 0x0e,
+ 0xfc, 0xf4, 0x8e, 0x5a, 0x8e, 0x63, 0x22, 0xfe, 0x4b, 0x49, 0x36, 0x18,
+ 0x01, 0xc7, 0x7e, 0x02, 0x68, 0xe1, 0xc5, 0xe5, 0x5b, 0xe5, 0x3c, 0x8f,
+ 0xb5, 0x66, 0x8c, 0x7a, 0x28, 0x96, 0x70, 0xcb, 0x26, 0xb5, 0xa8, 0x5b,
+ 0xc5, 0x33, 0x61, 0xf9,
+};
+static const struct drbg_kat_pr_false kat1808_t = {
+ 7, kat1808_entropyin, kat1808_nonce, kat1808_persstr,
+ kat1808_entropyinreseed, kat1808_addinreseed, kat1808_addin0,
+ kat1808_addin1, kat1808_retbits
+};
+static const struct drbg_kat kat1808 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1808_t
+};
+
+static const unsigned char kat1809_entropyin[] = {
+ 0x72, 0x19, 0x73, 0x9f, 0x3e, 0x1f, 0x8c, 0x23, 0x9c, 0xf0, 0x7d, 0xf8,
+ 0x99, 0xc8, 0x7c, 0x79, 0xcb, 0x4d, 0x59, 0xe7, 0xb9, 0xec, 0x8c, 0x64,
+};
+static const unsigned char kat1809_nonce[] = {
+ 0x4f, 0xb9, 0x43, 0xb6, 0x2b, 0xb2, 0x37, 0x4e, 0xbe, 0xe5, 0x0b, 0x69,
+ 0x67, 0xa3, 0xac, 0x46,
+};
+static const unsigned char kat1809_persstr[] = {0};
+static const unsigned char kat1809_entropyinreseed[] = {
+ 0x75, 0x57, 0xd7, 0xdd, 0xef, 0x0a, 0x0f, 0xa1, 0xd7, 0xb8, 0xee, 0x12,
+ 0x19, 0xf0, 0xa1, 0xbe, 0x84, 0xdd, 0x0c, 0xab, 0x71, 0xd8, 0x5b, 0x90,
+};
+static const unsigned char kat1809_addinreseed[] = {0};
+static const unsigned char kat1809_addin0[] = {0};
+static const unsigned char kat1809_addin1[] = {0};
+static const unsigned char kat1809_retbits[] = {
+ 0x8b, 0x4a, 0xe1, 0xdf, 0x4e, 0x76, 0xbc, 0x75, 0x4d, 0xee, 0x8e, 0x64,
+ 0xa0, 0xae, 0x0d, 0x0c, 0xd6, 0x7a, 0x62, 0x8e, 0x60, 0x4f, 0x8e, 0x28,
+ 0x5b, 0xcf, 0x0e, 0x08, 0x1b, 0x6b, 0x3d, 0xc1, 0x1c, 0x4f, 0x43, 0xe8,
+ 0x5a, 0xaa, 0xea, 0x19, 0x35, 0x62, 0xe1, 0x35, 0xcf, 0x06, 0x1a, 0x71,
+ 0xfb, 0xfc, 0x46, 0x9b, 0x7f, 0x2c, 0x03, 0x83, 0x37, 0x48, 0xde, 0x32,
+ 0x85, 0xbf, 0x9c, 0x2c,
+};
+static const struct drbg_kat_pr_false kat1809_t = {
+ 8, kat1809_entropyin, kat1809_nonce, kat1809_persstr,
+ kat1809_entropyinreseed, kat1809_addinreseed, kat1809_addin0,
+ kat1809_addin1, kat1809_retbits
+};
+static const struct drbg_kat kat1809 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1809_t
+};
+
+static const unsigned char kat1810_entropyin[] = {
+ 0x62, 0x68, 0xc2, 0x43, 0xd1, 0xc9, 0x09, 0x4f, 0x63, 0xb1, 0xc4, 0x5f,
+ 0x4b, 0xb1, 0xc4, 0x4f, 0x43, 0xca, 0x28, 0x49, 0x54, 0x94, 0xfd, 0x46,
+};
+static const unsigned char kat1810_nonce[] = {
+ 0x9f, 0xcd, 0xcb, 0x37, 0x2d, 0x37, 0x54, 0x41, 0x92, 0x5d, 0x7d, 0x27,
+ 0x5b, 0x58, 0x2d, 0x73,
+};
+static const unsigned char kat1810_persstr[] = {0};
+static const unsigned char kat1810_entropyinreseed[] = {
+ 0xec, 0xf4, 0xa3, 0x16, 0x2a, 0xba, 0x12, 0x95, 0xa3, 0x35, 0xd5, 0xe0,
+ 0x02, 0x10, 0x9c, 0x95, 0xce, 0x20, 0x10, 0xdc, 0xbb, 0xd1, 0xf8, 0xa8,
+};
+static const unsigned char kat1810_addinreseed[] = {0};
+static const unsigned char kat1810_addin0[] = {0};
+static const unsigned char kat1810_addin1[] = {0};
+static const unsigned char kat1810_retbits[] = {
+ 0x08, 0xa2, 0xaa, 0x60, 0x8f, 0x79, 0xb3, 0xf5, 0xee, 0x17, 0x13, 0xac,
+ 0xcd, 0xe3, 0x91, 0x49, 0xef, 0xb1, 0x50, 0x41, 0x02, 0x1f, 0xad, 0xc5,
+ 0xad, 0x2b, 0xe4, 0xca, 0x3b, 0x2a, 0xd8, 0x24, 0xb3, 0x27, 0x67, 0xc2,
+ 0xeb, 0x35, 0x85, 0x7b, 0xbf, 0x14, 0xce, 0x9f, 0xdb, 0xdc, 0x30, 0x1b,
+ 0xd6, 0xab, 0x51, 0xec, 0x16, 0xe3, 0x08, 0xd3, 0x5b, 0xa9, 0x41, 0x95,
+ 0xfa, 0x51, 0xee, 0x58,
+};
+static const struct drbg_kat_pr_false kat1810_t = {
+ 9, kat1810_entropyin, kat1810_nonce, kat1810_persstr,
+ kat1810_entropyinreseed, kat1810_addinreseed, kat1810_addin0,
+ kat1810_addin1, kat1810_retbits
+};
+static const struct drbg_kat kat1810 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1810_t
+};
+
+static const unsigned char kat1811_entropyin[] = {
+ 0xc9, 0x05, 0xf9, 0x60, 0x65, 0x4b, 0xc6, 0x31, 0x7c, 0xc5, 0xbd, 0x6b,
+ 0x32, 0xae, 0x79, 0x61, 0xb0, 0xfe, 0x5e, 0xeb, 0xb4, 0xe9, 0xe5, 0xcf,
+};
+static const unsigned char kat1811_nonce[] = {
+ 0xc7, 0x2b, 0xaa, 0x07, 0xff, 0xa4, 0x5e, 0xb5, 0x66, 0x6b, 0xbb, 0x01,
+ 0x10, 0x9a, 0x4f, 0x5f,
+};
+static const unsigned char kat1811_persstr[] = {0};
+static const unsigned char kat1811_entropyinreseed[] = {
+ 0xee, 0x91, 0xc5, 0x18, 0xf4, 0xda, 0x92, 0x8b, 0x36, 0xa5, 0x28, 0x9d,
+ 0x35, 0x0d, 0x41, 0x97, 0x02, 0x85, 0x7e, 0x24, 0x3e, 0x62, 0xa9, 0xb4,
+};
+static const unsigned char kat1811_addinreseed[] = {0};
+static const unsigned char kat1811_addin0[] = {0};
+static const unsigned char kat1811_addin1[] = {0};
+static const unsigned char kat1811_retbits[] = {
+ 0x0d, 0x74, 0x2f, 0x74, 0xdc, 0x8f, 0x09, 0xc6, 0x1c, 0x36, 0x3a, 0x18,
+ 0x79, 0x48, 0x81, 0x1e, 0x9a, 0x50, 0x4a, 0xfc, 0xb1, 0x3d, 0x5e, 0x6f,
+ 0x18, 0xe9, 0xf1, 0x90, 0x5a, 0x05, 0xcc, 0x75, 0x40, 0x08, 0xac, 0x57,
+ 0xe2, 0xfc, 0xdd, 0x4c, 0x3b, 0xdc, 0x53, 0x68, 0x50, 0x83, 0x1e, 0x7d,
+ 0x1b, 0x2d, 0x49, 0x9d, 0x95, 0x72, 0x9e, 0xd5, 0x73, 0x73, 0xca, 0xf0,
+ 0xb4, 0x1a, 0x55, 0x9c,
+};
+static const struct drbg_kat_pr_false kat1811_t = {
+ 10, kat1811_entropyin, kat1811_nonce, kat1811_persstr,
+ kat1811_entropyinreseed, kat1811_addinreseed, kat1811_addin0,
+ kat1811_addin1, kat1811_retbits
+};
+static const struct drbg_kat kat1811 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1811_t
+};
+
+static const unsigned char kat1812_entropyin[] = {
+ 0x7f, 0x0a, 0xf1, 0x9f, 0x09, 0x47, 0xd3, 0xbc, 0xc2, 0x27, 0x0a, 0xd8,
+ 0x86, 0x42, 0x32, 0x75, 0x0e, 0x3a, 0x79, 0x07, 0x3e, 0x54, 0xaa, 0x5e,
+};
+static const unsigned char kat1812_nonce[] = {
+ 0xd0, 0xfe, 0x40, 0x37, 0x45, 0x98, 0xd5, 0xad, 0x63, 0x46, 0x8a, 0xa0,
+ 0x6f, 0x92, 0xc5, 0x03,
+};
+static const unsigned char kat1812_persstr[] = {0};
+static const unsigned char kat1812_entropyinreseed[] = {
+ 0x65, 0x8e, 0x55, 0x21, 0x5a, 0x90, 0x63, 0x34, 0xe6, 0xb8, 0x02, 0x6f,
+ 0x6f, 0xc3, 0x65, 0x75, 0x99, 0x50, 0x01, 0xc9, 0xdb, 0xb8, 0xf8, 0x90,
+};
+static const unsigned char kat1812_addinreseed[] = {0};
+static const unsigned char kat1812_addin0[] = {0};
+static const unsigned char kat1812_addin1[] = {0};
+static const unsigned char kat1812_retbits[] = {
+ 0xa8, 0xdd, 0xbb, 0xef, 0x58, 0xdd, 0xeb, 0x3b, 0xdb, 0x92, 0x3b, 0x64,
+ 0xae, 0x8f, 0x43, 0xf0, 0xaa, 0x3f, 0xfe, 0xc3, 0x03, 0xc0, 0x4d, 0x0a,
+ 0xca, 0x8e, 0xcf, 0x0d, 0x45, 0x25, 0xfe, 0xd8, 0x42, 0x15, 0x5d, 0xfe,
+ 0x46, 0x38, 0xbb, 0x08, 0x92, 0x08, 0x7f, 0x8f, 0x7d, 0x28, 0xb1, 0x28,
+ 0x29, 0x6d, 0x62, 0xe9, 0x8a, 0x51, 0xf6, 0x49, 0x32, 0x46, 0x2a, 0xcb,
+ 0x6b, 0x84, 0x1a, 0x82,
+};
+static const struct drbg_kat_pr_false kat1812_t = {
+ 11, kat1812_entropyin, kat1812_nonce, kat1812_persstr,
+ kat1812_entropyinreseed, kat1812_addinreseed, kat1812_addin0,
+ kat1812_addin1, kat1812_retbits
+};
+static const struct drbg_kat kat1812 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1812_t
+};
+
+static const unsigned char kat1813_entropyin[] = {
+ 0x0b, 0x8a, 0x7f, 0x72, 0xc3, 0xdd, 0xc6, 0x37, 0x67, 0xd3, 0x36, 0x80,
+ 0x59, 0x85, 0x3b, 0x2c, 0xc3, 0xd8, 0x30, 0x95, 0x34, 0xd4, 0x4c, 0x31,
+};
+static const unsigned char kat1813_nonce[] = {
+ 0xc5, 0x27, 0x9d, 0x25, 0x22, 0xcb, 0x77, 0x0a, 0x82, 0x07, 0xec, 0x2d,
+ 0x38, 0x4f, 0x7c, 0xcc,
+};
+static const unsigned char kat1813_persstr[] = {0};
+static const unsigned char kat1813_entropyinreseed[] = {
+ 0xc1, 0x10, 0x44, 0x27, 0xc1, 0x97, 0xbf, 0xaf, 0x5d, 0x4a, 0x17, 0x69,
+ 0xfd, 0xa0, 0x12, 0xea, 0xa2, 0xf5, 0x4e, 0x94, 0x17, 0x7a, 0x5a, 0xd5,
+};
+static const unsigned char kat1813_addinreseed[] = {0};
+static const unsigned char kat1813_addin0[] = {0};
+static const unsigned char kat1813_addin1[] = {0};
+static const unsigned char kat1813_retbits[] = {
+ 0x56, 0x7d, 0x3c, 0x40, 0x6e, 0x82, 0x7e, 0x5c, 0x0f, 0x43, 0x8a, 0x30,
+ 0x41, 0x76, 0x59, 0xd2, 0x27, 0xf3, 0xad, 0x10, 0x20, 0xa5, 0xcc, 0xfd,
+ 0xaa, 0x3e, 0x64, 0xcc, 0x9f, 0xcf, 0x6b, 0x0e, 0xed, 0xf8, 0x3b, 0x9f,
+ 0x1f, 0xbc, 0x52, 0x51, 0x40, 0xbc, 0x60, 0x43, 0x4c, 0x0c, 0x02, 0xa3,
+ 0xce, 0x54, 0x82, 0xf1, 0xaf, 0xf8, 0x5f, 0x30, 0xc6, 0xf9, 0x8d, 0xea,
+ 0x4a, 0x22, 0xed, 0xf4,
+};
+static const struct drbg_kat_pr_false kat1813_t = {
+ 12, kat1813_entropyin, kat1813_nonce, kat1813_persstr,
+ kat1813_entropyinreseed, kat1813_addinreseed, kat1813_addin0,
+ kat1813_addin1, kat1813_retbits
+};
+static const struct drbg_kat kat1813 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1813_t
+};
+
+static const unsigned char kat1814_entropyin[] = {
+ 0x00, 0x97, 0xb5, 0x44, 0x37, 0x40, 0x41, 0xcf, 0xb4, 0x57, 0x27, 0xbf,
+ 0xca, 0x76, 0x9c, 0x75, 0x86, 0xca, 0xe5, 0x2c, 0x8b, 0x94, 0x5c, 0x18,
+};
+static const unsigned char kat1814_nonce[] = {
+ 0x0e, 0x90, 0x59, 0xb8, 0x65, 0x50, 0x56, 0xf9, 0xc8, 0x24, 0x18, 0x0f,
+ 0xe1, 0x07, 0xab, 0x55,
+};
+static const unsigned char kat1814_persstr[] = {0};
+static const unsigned char kat1814_entropyinreseed[] = {
+ 0x03, 0xdd, 0xb3, 0xe6, 0xf2, 0x73, 0x42, 0x53, 0x8d, 0x21, 0x0b, 0x02,
+ 0xce, 0x2b, 0xbd, 0x42, 0x0a, 0x52, 0xd3, 0x14, 0x2a, 0x69, 0xb0, 0xca,
+};
+static const unsigned char kat1814_addinreseed[] = {0};
+static const unsigned char kat1814_addin0[] = {0};
+static const unsigned char kat1814_addin1[] = {0};
+static const unsigned char kat1814_retbits[] = {
+ 0x7a, 0xab, 0x29, 0xb7, 0xc4, 0x0c, 0x29, 0xc4, 0xfc, 0x71, 0x56, 0x6b,
+ 0x3f, 0x9f, 0x6e, 0xbc, 0x37, 0xea, 0x8c, 0xd9, 0x26, 0x6d, 0x0c, 0x8b,
+ 0x4d, 0x50, 0xd8, 0x1b, 0x07, 0x95, 0x9c, 0x22, 0x8e, 0x0d, 0x96, 0x76,
+ 0x1a, 0xaa, 0x91, 0x65, 0x68, 0xec, 0xfe, 0xbe, 0x6c, 0x7a, 0xf3, 0xe9,
+ 0xc0, 0x2c, 0x55, 0x64, 0x00, 0x4f, 0x22, 0x5d, 0xa9, 0x18, 0x11, 0xc5,
+ 0xb7, 0x61, 0x41, 0x9e,
+};
+static const struct drbg_kat_pr_false kat1814_t = {
+ 13, kat1814_entropyin, kat1814_nonce, kat1814_persstr,
+ kat1814_entropyinreseed, kat1814_addinreseed, kat1814_addin0,
+ kat1814_addin1, kat1814_retbits
+};
+static const struct drbg_kat kat1814 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1814_t
+};
+
+static const unsigned char kat1815_entropyin[] = {
+ 0x02, 0xe1, 0x03, 0xc5, 0xdc, 0xb5, 0x5e, 0x06, 0x5e, 0x50, 0xf7, 0xf2,
+ 0x66, 0x02, 0x83, 0xb0, 0xe3, 0x08, 0x72, 0x43, 0x3c, 0xd3, 0x66, 0x20,
+};
+static const unsigned char kat1815_nonce[] = {
+ 0xb2, 0xf2, 0x1f, 0x7a, 0x10, 0x11, 0x95, 0xd4, 0xa2, 0xe7, 0xdd, 0x73,
+ 0x53, 0x77, 0x3a, 0xe2,
+};
+static const unsigned char kat1815_persstr[] = {0};
+static const unsigned char kat1815_entropyinreseed[] = {
+ 0x95, 0xe4, 0xc2, 0xf9, 0x76, 0x93, 0x1c, 0xb5, 0x03, 0x6f, 0xae, 0x1d,
+ 0x4d, 0x58, 0x38, 0x47, 0x44, 0xc4, 0xba, 0x30, 0x06, 0xfa, 0xb3, 0x66,
+};
+static const unsigned char kat1815_addinreseed[] = {0};
+static const unsigned char kat1815_addin0[] = {0};
+static const unsigned char kat1815_addin1[] = {0};
+static const unsigned char kat1815_retbits[] = {
+ 0xf0, 0x49, 0x55, 0xbf, 0x05, 0x2c, 0xd1, 0x88, 0x99, 0xa4, 0x48, 0xa2,
+ 0x50, 0x79, 0xbc, 0x03, 0xe3, 0x61, 0x9c, 0x44, 0x44, 0x8f, 0xc5, 0x5b,
+ 0x6e, 0x6f, 0x04, 0xc9, 0x87, 0x24, 0x80, 0x37, 0x81, 0x30, 0xd8, 0xd2,
+ 0xae, 0x35, 0x3e, 0xf2, 0x55, 0xb4, 0xa9, 0xf5, 0x36, 0xc9, 0x62, 0xe2,
+ 0xda, 0x01, 0xfa, 0x44, 0xb7, 0xd9, 0xd3, 0x4c, 0x3f, 0xaf, 0x14, 0xb7,
+ 0x25, 0x7a, 0x62, 0xeb,
+};
+static const struct drbg_kat_pr_false kat1815_t = {
+ 14, kat1815_entropyin, kat1815_nonce, kat1815_persstr,
+ kat1815_entropyinreseed, kat1815_addinreseed, kat1815_addin0,
+ kat1815_addin1, kat1815_retbits
+};
+static const struct drbg_kat kat1815 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1815_t
+};
+
+static const unsigned char kat1816_entropyin[] = {
+ 0xf0, 0xe2, 0x17, 0x21, 0x4a, 0x4b, 0x7f, 0x85, 0x85, 0xd5, 0x24, 0x42,
+ 0x63, 0x85, 0x9e, 0x64, 0x5c, 0xe0, 0x1e, 0x76, 0xeb, 0x7c, 0x55, 0x53,
+};
+static const unsigned char kat1816_nonce[] = {
+ 0xd1, 0xd4, 0xdb, 0xb0, 0xcb, 0xa2, 0xf0, 0xb0, 0x39, 0x6c, 0x41, 0x38,
+ 0xe4, 0x32, 0x1e, 0x61,
+};
+static const unsigned char kat1816_persstr[] = {0};
+static const unsigned char kat1816_entropyinreseed[] = {
+ 0xe3, 0xc7, 0x49, 0x3d, 0xde, 0xf2, 0x5d, 0x62, 0x81, 0x8c, 0x85, 0x61,
+ 0x9c, 0x3b, 0x38, 0x3c, 0x5b, 0x7e, 0x96, 0x8f, 0xb6, 0x04, 0x3c, 0xb1,
+};
+static const unsigned char kat1816_addinreseed[] = {
+ 0xa9, 0x74, 0x63, 0xfb, 0x30, 0x37, 0xce, 0xee, 0x5e, 0xd2, 0x2f, 0xda,
+ 0x8f, 0x59, 0xc3, 0x70, 0x73, 0x90, 0x89, 0xe8, 0x9f, 0xdd, 0xc2, 0x4e,
+ 0x79, 0xf0, 0x38, 0x22, 0x03, 0x2e, 0x19, 0x93,
+};
+static const unsigned char kat1816_addin0[] = {
+ 0xfc, 0x62, 0xd7, 0xcd, 0x9a, 0xc1, 0x39, 0x77, 0x18, 0x11, 0x20, 0xcd,
+ 0xe5, 0x7c, 0x93, 0xa6, 0x83, 0x92, 0x28, 0x43, 0xc3, 0x09, 0x34, 0x3c,
+ 0x9a, 0xa8, 0xc6, 0x76, 0x17, 0x10, 0xb4, 0x11,
+};
+static const unsigned char kat1816_addin1[] = {
+ 0xf6, 0xb9, 0xb0, 0x17, 0x24, 0xda, 0xea, 0x70, 0xf2, 0xce, 0xd2, 0x4b,
+ 0xed, 0x57, 0x2f, 0x61, 0x10, 0x08, 0xeb, 0x9e, 0x0c, 0x21, 0xd9, 0x02,
+ 0x86, 0x97, 0x17, 0x13, 0x82, 0x1c, 0x75, 0xe6,
+};
+static const unsigned char kat1816_retbits[] = {
+ 0x95, 0x97, 0xe6, 0x9f, 0x09, 0xd5, 0x77, 0x85, 0xbf, 0x83, 0xb5, 0xdb,
+ 0x3d, 0x04, 0x2e, 0xa7, 0x67, 0x60, 0x42, 0x44, 0x19, 0x0a, 0x65, 0x76,
+ 0x5d, 0xea, 0x89, 0x83, 0x41, 0x5f, 0xe8, 0x84, 0x20, 0x46, 0xb9, 0xab,
+ 0x90, 0x00, 0x8e, 0xc6, 0x8a, 0x3e, 0x4c, 0x8b, 0xd3, 0xc7, 0xa4, 0xcc,
+ 0xbf, 0x7d, 0xc6, 0x88, 0xec, 0xf0, 0xd1, 0x2e, 0x53, 0x76, 0x0d, 0xcc,
+ 0x9d, 0xf2, 0x66, 0x4b,
+};
+static const struct drbg_kat_pr_false kat1816_t = {
+ 0, kat1816_entropyin, kat1816_nonce, kat1816_persstr,
+ kat1816_entropyinreseed, kat1816_addinreseed, kat1816_addin0,
+ kat1816_addin1, kat1816_retbits
+};
+static const struct drbg_kat kat1816 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1816_t
+};
+
+static const unsigned char kat1817_entropyin[] = {
+ 0xb1, 0x5a, 0x2a, 0xc5, 0x4b, 0x2b, 0x7c, 0x03, 0x71, 0xaf, 0x00, 0xca,
+ 0xfc, 0x27, 0xd8, 0xe1, 0x50, 0x1d, 0xba, 0x2f, 0xe8, 0xa2, 0x6f, 0x40,
+};
+static const unsigned char kat1817_nonce[] = {
+ 0x1e, 0xee, 0x88, 0x1d, 0xe4, 0x37, 0xcb, 0xcf, 0x27, 0x73, 0x8d, 0x7c,
+ 0x16, 0x7d, 0x12, 0x3d,
+};
+static const unsigned char kat1817_persstr[] = {0};
+static const unsigned char kat1817_entropyinreseed[] = {
+ 0xb4, 0x7e, 0x42, 0x99, 0x52, 0x6b, 0x93, 0xf0, 0x5f, 0x32, 0x14, 0x32,
+ 0xbe, 0x03, 0x45, 0x99, 0xfc, 0xbc, 0x12, 0xd4, 0x65, 0x4a, 0x97, 0xb8,
+};
+static const unsigned char kat1817_addinreseed[] = {
+ 0x36, 0x56, 0x34, 0x71, 0x15, 0x76, 0xc7, 0xc8, 0x70, 0x7b, 0x26, 0xa3,
+ 0x67, 0x5d, 0x84, 0xdb, 0x8d, 0x79, 0xa9, 0xfd, 0xa6, 0x99, 0x5d, 0xa2,
+ 0x0d, 0xfa, 0x1a, 0xfa, 0xe0, 0xcf, 0xe4, 0xc0,
+};
+static const unsigned char kat1817_addin0[] = {
+ 0xd4, 0xe6, 0x45, 0xe2, 0xaa, 0xad, 0xbc, 0xbf, 0x97, 0x2f, 0x55, 0x22,
+ 0x88, 0xa3, 0x6b, 0xe9, 0xda, 0xed, 0x48, 0x83, 0x37, 0x95, 0xe8, 0x2b,
+ 0x8d, 0xbe, 0xc4, 0x5a, 0x84, 0x68, 0x1d, 0x7a,
+};
+static const unsigned char kat1817_addin1[] = {
+ 0xd6, 0xca, 0x41, 0x4b, 0x27, 0x90, 0x59, 0x33, 0x23, 0xe1, 0xb1, 0xf1,
+ 0x75, 0xc6, 0x0e, 0xf2, 0x14, 0xfe, 0x6b, 0x04, 0x5c, 0x9c, 0x05, 0x9c,
+ 0x99, 0xa4, 0xf7, 0x1b, 0xcb, 0x6f, 0xc3, 0x31,
+};
+static const unsigned char kat1817_retbits[] = {
+ 0xac, 0xbb, 0xb4, 0x82, 0x28, 0xc9, 0xfa, 0xc4, 0xab, 0x99, 0x46, 0xec,
+ 0xb7, 0x7f, 0x83, 0x0c, 0x0c, 0x38, 0xda, 0xfe, 0x95, 0xba, 0x64, 0xa2,
+ 0x37, 0xd7, 0x86, 0xbd, 0x14, 0x46, 0x35, 0xc8, 0x1f, 0x52, 0x07, 0xc0,
+ 0xa5, 0xb2, 0x0d, 0x56, 0xb5, 0x59, 0xae, 0xfe, 0x53, 0xa4, 0xbf, 0xb8,
+ 0xb2, 0x30, 0x83, 0xe7, 0xfa, 0x4f, 0x5b, 0xb1, 0xdd, 0xb5, 0x09, 0x77,
+ 0x55, 0xb5, 0x99, 0xed,
+};
+static const struct drbg_kat_pr_false kat1817_t = {
+ 1, kat1817_entropyin, kat1817_nonce, kat1817_persstr,
+ kat1817_entropyinreseed, kat1817_addinreseed, kat1817_addin0,
+ kat1817_addin1, kat1817_retbits
+};
+static const struct drbg_kat kat1817 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1817_t
+};
+
+static const unsigned char kat1818_entropyin[] = {
+ 0x8e, 0xf4, 0x56, 0x81, 0x2c, 0x1d, 0xd6, 0x64, 0xf5, 0xd6, 0xe6, 0x8d,
+ 0x33, 0x34, 0x16, 0x28, 0x3d, 0x07, 0xfa, 0x72, 0x6f, 0xb7, 0xaa, 0x11,
+};
+static const unsigned char kat1818_nonce[] = {
+ 0x41, 0xa4, 0xe4, 0x9b, 0x52, 0x97, 0x21, 0x6e, 0xde, 0x17, 0x28, 0x3a,
+ 0xb1, 0x58, 0xf6, 0xfb,
+};
+static const unsigned char kat1818_persstr[] = {0};
+static const unsigned char kat1818_entropyinreseed[] = {
+ 0x59, 0x5e, 0x6e, 0xa0, 0x66, 0x72, 0xaa, 0xbf, 0xf8, 0x98, 0x67, 0xc2,
+ 0x66, 0xe1, 0x38, 0x84, 0x0e, 0xad, 0x1f, 0x8a, 0x3e, 0xae, 0x74, 0xb9,
+};
+static const unsigned char kat1818_addinreseed[] = {
+ 0xd0, 0xef, 0xd9, 0xf7, 0x5f, 0x21, 0xd2, 0xa3, 0xf4, 0xe9, 0x3f, 0x5e,
+ 0xfe, 0x4f, 0x28, 0x5b, 0x6e, 0x33, 0x45, 0x6b, 0x37, 0x81, 0xf0, 0x80,
+ 0x95, 0xf8, 0x85, 0x5f, 0x1a, 0x43, 0xa4, 0x6a,
+};
+static const unsigned char kat1818_addin0[] = {
+ 0x44, 0x0c, 0xb6, 0x8e, 0x0c, 0x9d, 0x6d, 0xb8, 0xb9, 0x1e, 0x8a, 0x3e,
+ 0x32, 0xe4, 0xb4, 0x7d, 0xd1, 0xbd, 0xea, 0xe2, 0x40, 0xfa, 0x6c, 0x18,
+ 0x12, 0xac, 0xb5, 0x81, 0x4e, 0x24, 0x68, 0xb4,
+};
+static const unsigned char kat1818_addin1[] = {
+ 0x5b, 0x27, 0x88, 0x1c, 0x73, 0x5e, 0xa7, 0x32, 0x2d, 0xb0, 0x39, 0x75,
+ 0x05, 0x4b, 0x95, 0x5a, 0x2e, 0x99, 0x5c, 0xc0, 0xd3, 0xea, 0x3a, 0x98,
+ 0x2a, 0x03, 0xb8, 0xf8, 0x4f, 0x6b, 0x97, 0x67,
+};
+static const unsigned char kat1818_retbits[] = {
+ 0x77, 0xf9, 0x03, 0xa4, 0x0b, 0xee, 0xf1, 0xf9, 0x2a, 0xbe, 0xbb, 0x58,
+ 0xf5, 0xe1, 0xfb, 0x50, 0x82, 0x39, 0x10, 0x3a, 0xa8, 0x63, 0xe0, 0x30,
+ 0x05, 0x91, 0xe5, 0xc5, 0x8a, 0x96, 0x80, 0xb5, 0x7e, 0x46, 0x68, 0x15,
+ 0x0d, 0x55, 0x3d, 0x39, 0x0b, 0xe0, 0x59, 0xa2, 0xc6, 0xdb, 0xc9, 0xf7,
+ 0xe2, 0x54, 0x42, 0xc6, 0xab, 0xd1, 0x17, 0x68, 0xb1, 0x17, 0x8d, 0xf9,
+ 0x93, 0x4e, 0xf6, 0xd9,
+};
+static const struct drbg_kat_pr_false kat1818_t = {
+ 2, kat1818_entropyin, kat1818_nonce, kat1818_persstr,
+ kat1818_entropyinreseed, kat1818_addinreseed, kat1818_addin0,
+ kat1818_addin1, kat1818_retbits
+};
+static const struct drbg_kat kat1818 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1818_t
+};
+
+static const unsigned char kat1819_entropyin[] = {
+ 0xc9, 0x56, 0x81, 0x42, 0x40, 0x4f, 0x28, 0xa2, 0xb2, 0xff, 0xe1, 0x83,
+ 0xde, 0xce, 0xe1, 0xbe, 0xd5, 0x66, 0x78, 0x5a, 0xed, 0x71, 0x42, 0x0e,
+};
+static const unsigned char kat1819_nonce[] = {
+ 0x14, 0xef, 0x70, 0x09, 0x33, 0x27, 0x88, 0x41, 0x17, 0xc0, 0x18, 0x3a,
+ 0x4b, 0xd5, 0x45, 0x58,
+};
+static const unsigned char kat1819_persstr[] = {0};
+static const unsigned char kat1819_entropyinreseed[] = {
+ 0x67, 0x3a, 0x9f, 0x7a, 0x68, 0xee, 0x42, 0x01, 0xc2, 0xc4, 0xe4, 0x50,
+ 0x7b, 0x23, 0xc5, 0x03, 0x63, 0xad, 0xe2, 0xc0, 0x37, 0x06, 0x3c, 0x40,
+};
+static const unsigned char kat1819_addinreseed[] = {
+ 0xf3, 0x41, 0xc1, 0xc5, 0x5a, 0x40, 0x47, 0x1c, 0xf2, 0x52, 0x39, 0x6f,
+ 0xc6, 0x5a, 0x90, 0xaf, 0xa6, 0x64, 0xd9, 0x93, 0xee, 0xc4, 0xc0, 0x3b,
+ 0x4e, 0x54, 0xbc, 0x0b, 0x12, 0xfe, 0x00, 0xf5,
+};
+static const unsigned char kat1819_addin0[] = {
+ 0xea, 0x20, 0x91, 0x40, 0xd9, 0x30, 0x08, 0x32, 0x42, 0xfe, 0x4a, 0x2f,
+ 0x7c, 0xba, 0xcc, 0x0a, 0x73, 0xeb, 0xdd, 0x5e, 0x73, 0x77, 0x1b, 0x9d,
+ 0x9e, 0x1b, 0xcc, 0xf7, 0xa3, 0x09, 0x23, 0xf1,
+};
+static const unsigned char kat1819_addin1[] = {
+ 0x05, 0xea, 0xcd, 0x56, 0x0d, 0x53, 0x7f, 0x91, 0x0e, 0xa2, 0xd9, 0xc7,
+ 0x7f, 0x16, 0x9e, 0xfe, 0x75, 0xa0, 0x6c, 0x06, 0xe4, 0x35, 0xdc, 0x3c,
+ 0xd9, 0xc6, 0x4d, 0x50, 0xee, 0xda, 0xa9, 0xdd,
+};
+static const unsigned char kat1819_retbits[] = {
+ 0x6b, 0x40, 0xab, 0x76, 0xf1, 0x0b, 0x30, 0x38, 0x3b, 0x2c, 0x98, 0x39,
+ 0x4f, 0x26, 0x95, 0xba, 0x4d, 0x2e, 0xcf, 0x96, 0x14, 0x81, 0x12, 0xca,
+ 0x5e, 0x3a, 0x2b, 0x2e, 0x00, 0xc6, 0xb0, 0xcd, 0x05, 0x1a, 0x44, 0x7f,
+ 0xe1, 0x9d, 0x32, 0xb4, 0x8e, 0x2e, 0x1a, 0x89, 0xb8, 0x6b, 0x48, 0xd5,
+ 0x2f, 0x05, 0xbd, 0x26, 0xd2, 0x8c, 0x24, 0x26, 0xb0, 0xe5, 0x7a, 0x76,
+ 0x1d, 0xa8, 0x31, 0xe6,
+};
+static const struct drbg_kat_pr_false kat1819_t = {
+ 3, kat1819_entropyin, kat1819_nonce, kat1819_persstr,
+ kat1819_entropyinreseed, kat1819_addinreseed, kat1819_addin0,
+ kat1819_addin1, kat1819_retbits
+};
+static const struct drbg_kat kat1819 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1819_t
+};
+
+static const unsigned char kat1820_entropyin[] = {
+ 0x5b, 0x3e, 0x48, 0x45, 0x6c, 0xad, 0x2b, 0xf7, 0x88, 0x2f, 0xf6, 0x9b,
+ 0xdc, 0x2c, 0x3b, 0x38, 0xe2, 0xa9, 0x85, 0x8f, 0xcc, 0x37, 0x58, 0x77,
+};
+static const unsigned char kat1820_nonce[] = {
+ 0x12, 0x4e, 0xf0, 0xaf, 0xb6, 0x6b, 0x6e, 0x41, 0x97, 0xad, 0x87, 0x14,
+ 0x80, 0x89, 0x80, 0xf0,
+};
+static const unsigned char kat1820_persstr[] = {0};
+static const unsigned char kat1820_entropyinreseed[] = {
+ 0x55, 0xb8, 0x52, 0xc8, 0xee, 0xf9, 0xfa, 0xb4, 0xf0, 0xb2, 0xdb, 0xf2,
+ 0x3a, 0xe7, 0x2a, 0x7c, 0x24, 0xc9, 0x7a, 0xc7, 0x6f, 0x80, 0x2f, 0xc6,
+};
+static const unsigned char kat1820_addinreseed[] = {
+ 0xf7, 0x0a, 0xef, 0x2e, 0x5b, 0x2a, 0x95, 0xfa, 0x78, 0xd5, 0xa4, 0xf5,
+ 0x45, 0xc3, 0x41, 0xb5, 0x48, 0x32, 0xc9, 0xd9, 0xc9, 0x1a, 0xbf, 0x33,
+ 0xf9, 0x46, 0xea, 0xb8, 0x64, 0x9e, 0x2a, 0xc3,
+};
+static const unsigned char kat1820_addin0[] = {
+ 0x78, 0x25, 0x2e, 0xac, 0xb9, 0x81, 0x5e, 0x93, 0x30, 0x51, 0xf5, 0x25,
+ 0x1c, 0x07, 0x39, 0xb8, 0x59, 0x73, 0x92, 0x4b, 0x17, 0x34, 0x18, 0x8a,
+ 0x9a, 0x59, 0xcd, 0xd4, 0x8a, 0x7b, 0x7d, 0x8a,
+};
+static const unsigned char kat1820_addin1[] = {
+ 0x8e, 0x39, 0x1f, 0x33, 0xd6, 0xbb, 0xca, 0x15, 0x42, 0x88, 0xc6, 0x9c,
+ 0x95, 0xd8, 0xa5, 0x5a, 0x18, 0xa4, 0xe0, 0x0d, 0x77, 0x3c, 0x88, 0xf5,
+ 0x04, 0x4c, 0x18, 0x4d, 0x7e, 0x16, 0x0b, 0xcf,
+};
+static const unsigned char kat1820_retbits[] = {
+ 0x59, 0x20, 0x77, 0xa6, 0xbd, 0xeb, 0x53, 0x9a, 0x7f, 0xf9, 0x68, 0x1e,
+ 0xb8, 0x60, 0xb8, 0xa3, 0x9c, 0x53, 0xd5, 0xa4, 0x12, 0x04, 0xa8, 0xe0,
+ 0x1a, 0x5a, 0x8a, 0xc3, 0x1a, 0x40, 0x88, 0xef, 0xeb, 0x15, 0xa1, 0x65,
+ 0xa5, 0xd9, 0xbe, 0x5b, 0xb0, 0x1a, 0x0a, 0xb8, 0x3d, 0x5d, 0x46, 0xd3,
+ 0x98, 0x71, 0x37, 0xa6, 0x3b, 0xda, 0x38, 0x21, 0x14, 0xbf, 0xd1, 0x50,
+ 0x2e, 0xeb, 0x25, 0xab,
+};
+static const struct drbg_kat_pr_false kat1820_t = {
+ 4, kat1820_entropyin, kat1820_nonce, kat1820_persstr,
+ kat1820_entropyinreseed, kat1820_addinreseed, kat1820_addin0,
+ kat1820_addin1, kat1820_retbits
+};
+static const struct drbg_kat kat1820 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1820_t
+};
+
+static const unsigned char kat1821_entropyin[] = {
+ 0x12, 0x55, 0x64, 0x2a, 0x14, 0xc2, 0x22, 0xa9, 0x08, 0xc7, 0xd6, 0x67,
+ 0x2f, 0x8c, 0xb6, 0x04, 0x58, 0x70, 0x23, 0x1b, 0xe7, 0xdd, 0x6c, 0xf3,
+};
+static const unsigned char kat1821_nonce[] = {
+ 0x32, 0x70, 0x7c, 0x7d, 0xc9, 0xd0, 0xf8, 0x17, 0x54, 0xdd, 0xfb, 0xb3,
+ 0x97, 0x0f, 0x5b, 0x9f,
+};
+static const unsigned char kat1821_persstr[] = {0};
+static const unsigned char kat1821_entropyinreseed[] = {
+ 0x08, 0xc8, 0x68, 0x2a, 0xdb, 0x94, 0x8a, 0xb0, 0xb7, 0x3b, 0x3e, 0x7f,
+ 0x1a, 0xeb, 0x72, 0xaf, 0xb7, 0x7c, 0x59, 0x4a, 0xc4, 0xe0, 0x3a, 0x17,
+};
+static const unsigned char kat1821_addinreseed[] = {
+ 0xd0, 0x9e, 0xa0, 0x3b, 0x81, 0xca, 0x3f, 0x39, 0x37, 0x48, 0xb1, 0xb0,
+ 0x86, 0x38, 0x09, 0x70, 0xda, 0xfd, 0x79, 0xa3, 0x64, 0x49, 0xc2, 0x26,
+ 0xf7, 0xd9, 0x7d, 0x88, 0x31, 0xf5, 0x6b, 0x96,
+};
+static const unsigned char kat1821_addin0[] = {
+ 0xcb, 0x08, 0x5f, 0x55, 0xa5, 0xe5, 0x74, 0x6c, 0xa1, 0x24, 0x1f, 0xab,
+ 0x16, 0xb5, 0x45, 0xc5, 0x37, 0xb8, 0xf5, 0xe0, 0xfe, 0x8d, 0xb7, 0x43,
+ 0x2e, 0x10, 0x83, 0xda, 0x07, 0x07, 0xe1, 0x43,
+};
+static const unsigned char kat1821_addin1[] = {
+ 0x83, 0xce, 0x1c, 0xd0, 0xbf, 0xa5, 0x38, 0x4e, 0xe8, 0x74, 0x72, 0xfd,
+ 0x88, 0xfe, 0x87, 0xbf, 0xe1, 0xcf, 0xd2, 0x0f, 0x69, 0x5e, 0x0d, 0xac,
+ 0x03, 0x5a, 0xf8, 0x47, 0x75, 0xf9, 0xfc, 0xc6,
+};
+static const unsigned char kat1821_retbits[] = {
+ 0x81, 0x01, 0xd9, 0x8b, 0x42, 0xaf, 0x97, 0x3c, 0xee, 0xe8, 0x1f, 0x8e,
+ 0xf3, 0x6a, 0xf9, 0xaa, 0x41, 0xd7, 0xaa, 0x93, 0xa9, 0xfd, 0x0e, 0x3c,
+ 0x91, 0xcb, 0x9a, 0x8e, 0x6b, 0xaa, 0xe5, 0xd0, 0x73, 0x59, 0x6e, 0x1b,
+ 0xe2, 0xb9, 0x2b, 0xd3, 0x02, 0xf2, 0x50, 0x1a, 0xed, 0x36, 0xaf, 0x2e,
+ 0x4b, 0x2e, 0xf4, 0x6c, 0xe2, 0x2a, 0x16, 0xcf, 0x88, 0x94, 0x04, 0x5d,
+ 0x89, 0x2f, 0x6f, 0x1d,
+};
+static const struct drbg_kat_pr_false kat1821_t = {
+ 5, kat1821_entropyin, kat1821_nonce, kat1821_persstr,
+ kat1821_entropyinreseed, kat1821_addinreseed, kat1821_addin0,
+ kat1821_addin1, kat1821_retbits
+};
+static const struct drbg_kat kat1821 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1821_t
+};
+
+static const unsigned char kat1822_entropyin[] = {
+ 0xfb, 0xc5, 0x79, 0x34, 0x78, 0xaf, 0xe0, 0x52, 0x2e, 0x2f, 0x90, 0x87,
+ 0x9b, 0xa8, 0xcd, 0x0c, 0x2b, 0x2f, 0x2d, 0x4e, 0xfa, 0x4e, 0x94, 0x74,
+};
+static const unsigned char kat1822_nonce[] = {
+ 0x6c, 0xc1, 0xcc, 0x67, 0x32, 0x5b, 0x90, 0x0d, 0x06, 0x24, 0xe2, 0x79,
+ 0x3e, 0xc3, 0x5e, 0x96,
+};
+static const unsigned char kat1822_persstr[] = {0};
+static const unsigned char kat1822_entropyinreseed[] = {
+ 0x50, 0x8e, 0x1a, 0xb7, 0x55, 0xb0, 0x26, 0xfa, 0xab, 0xe7, 0x3d, 0x35,
+ 0x45, 0x07, 0xb3, 0x49, 0x5a, 0x1d, 0x6d, 0xe1, 0xbb, 0xf4, 0x99, 0x11,
+};
+static const unsigned char kat1822_addinreseed[] = {
+ 0xcb, 0xd2, 0xf6, 0x1a, 0x84, 0xc5, 0xf0, 0x85, 0xee, 0x5b, 0xf3, 0x4e,
+ 0x1f, 0xf7, 0x51, 0xbc, 0xf3, 0x3a, 0x04, 0x78, 0x38, 0x99, 0x8e, 0x0e,
+ 0xb0, 0x4a, 0xf0, 0xff, 0x30, 0x28, 0x5c, 0x45,
+};
+static const unsigned char kat1822_addin0[] = {
+ 0x4c, 0xae, 0x13, 0x1d, 0x3e, 0x36, 0x61, 0x85, 0xb8, 0xb1, 0xe4, 0xca,
+ 0xa3, 0x4f, 0xaf, 0x28, 0xe3, 0x59, 0xf4, 0x6e, 0xd4, 0xf3, 0x6b, 0xd9,
+ 0x07, 0x2a, 0xa5, 0xbe, 0x93, 0x6b, 0xc4, 0xa1,
+};
+static const unsigned char kat1822_addin1[] = {
+ 0x43, 0x7f, 0x31, 0xf2, 0xa4, 0xb3, 0xf5, 0x46, 0x46, 0x9d, 0xf7, 0x26,
+ 0x0a, 0x3e, 0x5f, 0x05, 0x12, 0x95, 0x16, 0xa8, 0x4a, 0xf7, 0x58, 0xe7,
+ 0x59, 0xe4, 0x48, 0x31, 0xed, 0x13, 0x2e, 0x36,
+};
+static const unsigned char kat1822_retbits[] = {
+ 0x65, 0x6d, 0xa5, 0x12, 0x32, 0x3f, 0xa8, 0x26, 0x17, 0x08, 0xcf, 0xc9,
+ 0x71, 0xcf, 0x7c, 0xf7, 0xaf, 0xa8, 0xcb, 0x41, 0x9f, 0xfa, 0x31, 0x07,
+ 0x69, 0x67, 0xc5, 0xe6, 0x62, 0x9a, 0x24, 0x90, 0x29, 0x7a, 0xee, 0xbb,
+ 0x58, 0x2a, 0x05, 0xb2, 0xb6, 0x67, 0x8a, 0x82, 0xd8, 0xa4, 0x1f, 0x24,
+ 0x67, 0x2d, 0x35, 0xdb, 0x2e, 0xca, 0xc4, 0x86, 0x6d, 0x78, 0x11, 0x8a,
+ 0x24, 0x21, 0x28, 0x3b,
+};
+static const struct drbg_kat_pr_false kat1822_t = {
+ 6, kat1822_entropyin, kat1822_nonce, kat1822_persstr,
+ kat1822_entropyinreseed, kat1822_addinreseed, kat1822_addin0,
+ kat1822_addin1, kat1822_retbits
+};
+static const struct drbg_kat kat1822 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1822_t
+};
+
+static const unsigned char kat1823_entropyin[] = {
+ 0xee, 0x37, 0x9f, 0x3c, 0xc9, 0x90, 0x84, 0x29, 0x44, 0x6b, 0xf2, 0x2b,
+ 0x7c, 0xe1, 0xb5, 0xb9, 0x46, 0xeb, 0x2b, 0x16, 0xdc, 0xe5, 0x09, 0xd8,
+};
+static const unsigned char kat1823_nonce[] = {
+ 0xc3, 0x96, 0xd8, 0x3d, 0x90, 0xb4, 0x2a, 0x67, 0xe4, 0xff, 0xea, 0x01,
+ 0x1c, 0x37, 0x9d, 0x26,
+};
+static const unsigned char kat1823_persstr[] = {0};
+static const unsigned char kat1823_entropyinreseed[] = {
+ 0x52, 0x4c, 0x96, 0x98, 0x9f, 0xf4, 0x30, 0xb1, 0x42, 0x41, 0xec, 0xbf,
+ 0x5d, 0x23, 0x7b, 0xb0, 0xd9, 0xc5, 0x61, 0x07, 0x6e, 0xeb, 0xa4, 0x21,
+};
+static const unsigned char kat1823_addinreseed[] = {
+ 0x4d, 0x0e, 0xb1, 0x8c, 0xbc, 0xc7, 0x88, 0x3a, 0x07, 0xb9, 0x99, 0x97,
+ 0xad, 0xca, 0xa5, 0xc1, 0x32, 0x0a, 0x24, 0x05, 0x0b, 0x44, 0x07, 0xd7,
+ 0x55, 0x0c, 0x9c, 0xe6, 0xbb, 0xbf, 0xbf, 0x56,
+};
+static const unsigned char kat1823_addin0[] = {
+ 0xc9, 0xe8, 0x5f, 0x42, 0xd7, 0x2b, 0x2f, 0x34, 0x8e, 0x72, 0x3f, 0xf2,
+ 0x67, 0xca, 0x8a, 0x37, 0xec, 0xf5, 0x07, 0x06, 0xa7, 0x5b, 0x36, 0xb7,
+ 0xc6, 0x45, 0x85, 0x2c, 0x0d, 0x00, 0x2e, 0x71,
+};
+static const unsigned char kat1823_addin1[] = {
+ 0x3f, 0xf6, 0xd9, 0x57, 0xdd, 0xb1, 0xed, 0x27, 0x13, 0xcf, 0x3d, 0x40,
+ 0x69, 0x8f, 0xe8, 0x8a, 0x62, 0xf5, 0x36, 0xb3, 0xf8, 0xfd, 0x68, 0x4f,
+ 0xe0, 0x1d, 0xa3, 0xc3, 0x23, 0x19, 0xc1, 0xd6,
+};
+static const unsigned char kat1823_retbits[] = {
+ 0xbb, 0x1c, 0x04, 0x56, 0x10, 0x64, 0xf8, 0xc7, 0x29, 0xfd, 0x62, 0x09,
+ 0x8a, 0x32, 0x51, 0x6b, 0xc4, 0x72, 0x98, 0x86, 0x9e, 0x42, 0x6f, 0x49,
+ 0xd5, 0x2a, 0x26, 0x9b, 0x74, 0x4d, 0x82, 0x39, 0x77, 0xea, 0xa0, 0xa0,
+ 0xea, 0x80, 0x2f, 0xb0, 0x8e, 0xda, 0xc6, 0xf1, 0x30, 0x4c, 0x4d, 0xbe,
+ 0x5e, 0x17, 0x12, 0xd2, 0xbb, 0x88, 0xb6, 0xaf, 0x99, 0x57, 0x9d, 0xd4,
+ 0xba, 0xd4, 0x78, 0x37,
+};
+static const struct drbg_kat_pr_false kat1823_t = {
+ 7, kat1823_entropyin, kat1823_nonce, kat1823_persstr,
+ kat1823_entropyinreseed, kat1823_addinreseed, kat1823_addin0,
+ kat1823_addin1, kat1823_retbits
+};
+static const struct drbg_kat kat1823 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1823_t
+};
+
+static const unsigned char kat1824_entropyin[] = {
+ 0x5c, 0x0d, 0x92, 0xa3, 0xa3, 0xc7, 0xe3, 0x10, 0x42, 0x21, 0x75, 0x09,
+ 0x0c, 0x74, 0x99, 0x73, 0xc3, 0x0f, 0x83, 0xec, 0x2d, 0xe7, 0x9a, 0x98,
+};
+static const unsigned char kat1824_nonce[] = {
+ 0xf4, 0x8e, 0x7f, 0xf7, 0x4b, 0x31, 0x8f, 0x65, 0x83, 0xbe, 0xba, 0x9a,
+ 0xa8, 0xbc, 0xb7, 0x9e,
+};
+static const unsigned char kat1824_persstr[] = {0};
+static const unsigned char kat1824_entropyinreseed[] = {
+ 0x37, 0xf9, 0x1f, 0xc9, 0x43, 0x1e, 0xcc, 0xb2, 0xa0, 0x62, 0xbf, 0x78,
+ 0xd3, 0x14, 0xaa, 0xdd, 0xfd, 0x2c, 0xe2, 0x5f, 0x32, 0xd3, 0x7e, 0x32,
+};
+static const unsigned char kat1824_addinreseed[] = {
+ 0x77, 0xf8, 0x1b, 0xef, 0xdf, 0xfd, 0xcc, 0xf9, 0x83, 0x78, 0x3a, 0x6b,
+ 0x70, 0xa8, 0xd8, 0xfa, 0x6e, 0x64, 0x0a, 0x74, 0x76, 0xdb, 0x2f, 0x28,
+ 0x3f, 0x42, 0xe0, 0x49, 0x85, 0x50, 0x05, 0xe3,
+};
+static const unsigned char kat1824_addin0[] = {
+ 0xd0, 0xbc, 0x32, 0x86, 0x5e, 0x04, 0x75, 0xd0, 0xbd, 0x77, 0xa3, 0x8c,
+ 0x2d, 0x9a, 0xa7, 0xbf, 0xfa, 0xfd, 0xfd, 0x44, 0xbc, 0xc1, 0x33, 0xff,
+ 0x1e, 0xbd, 0x56, 0xdf, 0xae, 0x89, 0x78, 0x84,
+};
+static const unsigned char kat1824_addin1[] = {
+ 0x22, 0x70, 0xa5, 0xd7, 0x1d, 0x58, 0x4f, 0x3a, 0xa0, 0xfb, 0x2e, 0xaf,
+ 0x69, 0x99, 0x87, 0x79, 0x96, 0xaa, 0x1d, 0x03, 0xc0, 0xe8, 0x8f, 0xa2,
+ 0xec, 0x63, 0x81, 0x3b, 0xe6, 0x39, 0x1a, 0xb6,
+};
+static const unsigned char kat1824_retbits[] = {
+ 0x2f, 0x4d, 0xca, 0x3e, 0x8e, 0x58, 0x0e, 0x53, 0x33, 0xda, 0xe9, 0x04,
+ 0x43, 0x6b, 0xaa, 0x80, 0xb7, 0xa9, 0xb9, 0x5f, 0x02, 0x4a, 0x48, 0xac,
+ 0x8a, 0x3f, 0x0f, 0xec, 0x2b, 0x38, 0xc1, 0x08, 0x05, 0xa3, 0x8e, 0x84,
+ 0x29, 0x27, 0x20, 0xbf, 0xb8, 0xad, 0xbc, 0xa7, 0x7e, 0x9c, 0xcb, 0x7a,
+ 0xbb, 0xd6, 0x8e, 0x70, 0x10, 0xff, 0xfa, 0x35, 0x14, 0x52, 0xd3, 0x37,
+ 0xba, 0x42, 0x1f, 0x61,
+};
+static const struct drbg_kat_pr_false kat1824_t = {
+ 8, kat1824_entropyin, kat1824_nonce, kat1824_persstr,
+ kat1824_entropyinreseed, kat1824_addinreseed, kat1824_addin0,
+ kat1824_addin1, kat1824_retbits
+};
+static const struct drbg_kat kat1824 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1824_t
+};
+
+static const unsigned char kat1825_entropyin[] = {
+ 0x4f, 0x43, 0xad, 0x1b, 0xad, 0x3b, 0xf9, 0x28, 0xee, 0xb0, 0x1f, 0xf9,
+ 0x95, 0x6c, 0xb6, 0x89, 0xbb, 0xd6, 0xae, 0x70, 0xdd, 0x5a, 0x08, 0x49,
+};
+static const unsigned char kat1825_nonce[] = {
+ 0x8e, 0x11, 0xec, 0xb9, 0x89, 0x28, 0x07, 0x5c, 0x77, 0x85, 0x7f, 0xd4,
+ 0x48, 0x48, 0xc3, 0x00,
+};
+static const unsigned char kat1825_persstr[] = {0};
+static const unsigned char kat1825_entropyinreseed[] = {
+ 0xab, 0xee, 0x57, 0xc4, 0xf5, 0xc8, 0xe3, 0x75, 0x08, 0x64, 0xfd, 0x56,
+ 0xd1, 0x53, 0x92, 0x8f, 0xf1, 0x62, 0x14, 0x0e, 0x6a, 0x4a, 0x3e, 0xf0,
+};
+static const unsigned char kat1825_addinreseed[] = {
+ 0x75, 0x59, 0x3a, 0x00, 0x45, 0xb2, 0x50, 0x83, 0x60, 0xa9, 0x04, 0xbe,
+ 0x27, 0x0e, 0x38, 0x1b, 0x43, 0x9f, 0x5c, 0x58, 0xe5, 0xd6, 0xdc, 0x80,
+ 0xa4, 0x5f, 0xb1, 0x76, 0xf8, 0xbe, 0x2e, 0x9e,
+};
+static const unsigned char kat1825_addin0[] = {
+ 0xad, 0x68, 0xad, 0xcc, 0x9f, 0xe6, 0x81, 0xd2, 0xe5, 0xea, 0x02, 0xbc,
+ 0x02, 0x5b, 0xe7, 0x92, 0x88, 0x50, 0x73, 0x40, 0x3f, 0x79, 0xb3, 0x2a,
+ 0x15, 0xb9, 0xe9, 0xa3, 0xca, 0x61, 0x9f, 0x89,
+};
+static const unsigned char kat1825_addin1[] = {
+ 0x20, 0x34, 0x09, 0xaf, 0x2d, 0x63, 0xc0, 0x89, 0x8d, 0x8a, 0xad, 0x3e,
+ 0x54, 0x15, 0x71, 0xcb, 0x36, 0x31, 0x6e, 0xe2, 0x80, 0x6d, 0x26, 0x2b,
+ 0x2d, 0xfe, 0xa6, 0x3e, 0x65, 0xe9, 0xe5, 0xf1,
+};
+static const unsigned char kat1825_retbits[] = {
+ 0x4d, 0xc0, 0xe6, 0x8c, 0x07, 0xb2, 0xce, 0xf2, 0x45, 0x08, 0x83, 0x67,
+ 0x2b, 0xd5, 0x71, 0x6d, 0xe8, 0x8c, 0xe9, 0x4b, 0x5f, 0x72, 0x40, 0x0f,
+ 0xb7, 0x49, 0xad, 0xe2, 0xf4, 0xa5, 0xc6, 0xda, 0xbd, 0x01, 0xc3, 0xd3,
+ 0x26, 0xc7, 0xa8, 0xec, 0x4b, 0xa5, 0xbc, 0xb3, 0x3c, 0xc4, 0x5c, 0x20,
+ 0x64, 0x98, 0xe1, 0x45, 0xca, 0x2a, 0xea, 0xfc, 0x5b, 0x42, 0x6d, 0xc1,
+ 0x65, 0xaf, 0x33, 0xfb,
+};
+static const struct drbg_kat_pr_false kat1825_t = {
+ 9, kat1825_entropyin, kat1825_nonce, kat1825_persstr,
+ kat1825_entropyinreseed, kat1825_addinreseed, kat1825_addin0,
+ kat1825_addin1, kat1825_retbits
+};
+static const struct drbg_kat kat1825 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1825_t
+};
+
+static const unsigned char kat1826_entropyin[] = {
+ 0xa4, 0x4a, 0x50, 0xf5, 0x30, 0x3a, 0x77, 0x0f, 0x1b, 0x58, 0x73, 0x33,
+ 0x4e, 0x7c, 0x7d, 0x42, 0xec, 0xfd, 0x83, 0x77, 0x78, 0x23, 0x55, 0xb2,
+};
+static const unsigned char kat1826_nonce[] = {
+ 0xab, 0x86, 0x69, 0x25, 0x75, 0x75, 0x37, 0xa1, 0x8b, 0x57, 0x55, 0x7f,
+ 0xde, 0xcf, 0xfd, 0x30,
+};
+static const unsigned char kat1826_persstr[] = {0};
+static const unsigned char kat1826_entropyinreseed[] = {
+ 0xfc, 0x81, 0xc0, 0xab, 0xef, 0x73, 0xef, 0x4b, 0x7b, 0xfa, 0x38, 0x73,
+ 0xf0, 0xdb, 0xae, 0xb9, 0xea, 0x72, 0xce, 0x6f, 0xbd, 0x23, 0x5f, 0x22,
+};
+static const unsigned char kat1826_addinreseed[] = {
+ 0xee, 0x7b, 0xd6, 0x67, 0xb3, 0x8e, 0x2d, 0xfd, 0x79, 0x96, 0x20, 0x47,
+ 0x8e, 0xd8, 0x58, 0xa3, 0x21, 0xeb, 0xa2, 0x8d, 0x23, 0x42, 0xc2, 0x7e,
+ 0x5a, 0xfb, 0xd5, 0xa6, 0xac, 0x89, 0x63, 0x5a,
+};
+static const unsigned char kat1826_addin0[] = {
+ 0x56, 0x11, 0xfd, 0x32, 0x39, 0x52, 0x59, 0x92, 0x40, 0xeb, 0x28, 0xc5,
+ 0x1c, 0x4e, 0xf0, 0xf3, 0xfd, 0x50, 0x8e, 0xb4, 0x59, 0xdc, 0x65, 0x2a,
+ 0xdf, 0x17, 0xfd, 0x19, 0xe7, 0xc2, 0xbe, 0x66,
+};
+static const unsigned char kat1826_addin1[] = {
+ 0xe1, 0xac, 0x2a, 0xbd, 0x69, 0x3e, 0xf6, 0xf1, 0xe5, 0x84, 0xa5, 0xa7,
+ 0x93, 0xfc, 0xb3, 0xd2, 0x3a, 0x38, 0x8e, 0xfe, 0x75, 0x02, 0x5a, 0x86,
+ 0x52, 0xc5, 0x4f, 0x99, 0xf6, 0xe3, 0xfb, 0x5f,
+};
+static const unsigned char kat1826_retbits[] = {
+ 0x0e, 0x11, 0xbc, 0x63, 0xc8, 0x6a, 0x93, 0x96, 0xfe, 0x20, 0x6a, 0x73,
+ 0xab, 0x7d, 0x6d, 0xdd, 0x83, 0xbe, 0x9b, 0x67, 0xa9, 0x45, 0x27, 0x09,
+ 0x29, 0x24, 0xf1, 0xf8, 0xb2, 0x29, 0x54, 0xb9, 0xa4, 0xb4, 0x28, 0x54,
+ 0xa1, 0xe9, 0x58, 0x16, 0x14, 0x00, 0x46, 0x20, 0x57, 0x7d, 0x68, 0x77,
+ 0x75, 0x65, 0x7a, 0x8d, 0x33, 0xff, 0xb3, 0xeb, 0xd6, 0xf7, 0x54, 0x2f,
+ 0x42, 0x1a, 0x75, 0x7a,
+};
+static const struct drbg_kat_pr_false kat1826_t = {
+ 10, kat1826_entropyin, kat1826_nonce, kat1826_persstr,
+ kat1826_entropyinreseed, kat1826_addinreseed, kat1826_addin0,
+ kat1826_addin1, kat1826_retbits
+};
+static const struct drbg_kat kat1826 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1826_t
+};
+
+static const unsigned char kat1827_entropyin[] = {
+ 0x5b, 0x91, 0x58, 0x0f, 0x90, 0xc7, 0x06, 0xba, 0x39, 0xc3, 0x84, 0x5e,
+ 0x26, 0xcc, 0x7e, 0x39, 0x79, 0x35, 0x6c, 0xbe, 0xfb, 0x11, 0x66, 0xc5,
+};
+static const unsigned char kat1827_nonce[] = {
+ 0x04, 0xfa, 0xa1, 0x9a, 0x8a, 0x14, 0x06, 0xed, 0xa3, 0xe2, 0x28, 0x0a,
+ 0xe2, 0xd1, 0xc7, 0x8f,
+};
+static const unsigned char kat1827_persstr[] = {0};
+static const unsigned char kat1827_entropyinreseed[] = {
+ 0xda, 0xf1, 0x44, 0x93, 0xf4, 0x2f, 0x75, 0xb7, 0x0c, 0xfe, 0xcc, 0xc7,
+ 0x6b, 0x95, 0x54, 0xbc, 0x7c, 0x5a, 0x9d, 0x81, 0x16, 0xe8, 0x8d, 0xb5,
+};
+static const unsigned char kat1827_addinreseed[] = {
+ 0x93, 0xc6, 0x29, 0xbb, 0xb9, 0x8d, 0xfd, 0x26, 0xeb, 0x01, 0x6a, 0xc4,
+ 0xc4, 0xd5, 0xc2, 0xdd, 0x1b, 0x37, 0xdb, 0x62, 0x6c, 0x21, 0x61, 0xad,
+ 0xa7, 0xfc, 0x47, 0xab, 0x77, 0x08, 0x9b, 0xa8,
+};
+static const unsigned char kat1827_addin0[] = {
+ 0x96, 0xc6, 0x01, 0xd4, 0x82, 0x4b, 0x37, 0xe7, 0x6c, 0xfc, 0x1a, 0x71,
+ 0x79, 0xc6, 0x5e, 0x8c, 0x96, 0xfa, 0x42, 0xf3, 0xc1, 0xab, 0x6a, 0x56,
+ 0x46, 0x9a, 0x18, 0x42, 0x3e, 0xfa, 0x45, 0xc0,
+};
+static const unsigned char kat1827_addin1[] = {
+ 0xe8, 0x33, 0xc4, 0x7f, 0xf9, 0x8b, 0x52, 0x1b, 0x2b, 0x1b, 0xf6, 0x23,
+ 0x79, 0x4b, 0x95, 0xfe, 0xa7, 0x3b, 0x81, 0xb3, 0xde, 0x0b, 0x17, 0x8c,
+ 0x5d, 0x1d, 0xd3, 0x16, 0xd5, 0x64, 0xa0, 0xac,
+};
+static const unsigned char kat1827_retbits[] = {
+ 0x39, 0xb2, 0x7f, 0x35, 0x36, 0xb9, 0x3a, 0xdf, 0x14, 0x78, 0x54, 0x43,
+ 0x79, 0x7b, 0x9c, 0x1c, 0x59, 0x29, 0xf0, 0xd7, 0x92, 0x0c, 0xa2, 0x93,
+ 0x25, 0x80, 0xe2, 0xff, 0x0d, 0xca, 0xe3, 0x98, 0x1d, 0xfc, 0x86, 0xc1,
+ 0x55, 0xf1, 0x38, 0xac, 0x2b, 0x9c, 0x63, 0x8a, 0x09, 0x3b, 0x65, 0xe9,
+ 0xe3, 0xde, 0x71, 0x55, 0x35, 0xcf, 0x72, 0x9e, 0x4f, 0xce, 0x46, 0x58,
+ 0xfe, 0x35, 0x0c, 0x6b,
+};
+static const struct drbg_kat_pr_false kat1827_t = {
+ 11, kat1827_entropyin, kat1827_nonce, kat1827_persstr,
+ kat1827_entropyinreseed, kat1827_addinreseed, kat1827_addin0,
+ kat1827_addin1, kat1827_retbits
+};
+static const struct drbg_kat kat1827 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1827_t
+};
+
+static const unsigned char kat1828_entropyin[] = {
+ 0x26, 0x85, 0x78, 0xf1, 0x4d, 0xf3, 0x20, 0x00, 0x2e, 0x79, 0xd1, 0x17,
+ 0x4d, 0x28, 0x1c, 0xeb, 0x14, 0x34, 0x9e, 0x0d, 0xa1, 0xe7, 0x23, 0x56,
+};
+static const unsigned char kat1828_nonce[] = {
+ 0x75, 0xcf, 0x7e, 0x7b, 0x84, 0xa1, 0x1e, 0xcf, 0xce, 0x10, 0x64, 0x68,
+ 0xad, 0xc2, 0x87, 0x96,
+};
+static const unsigned char kat1828_persstr[] = {0};
+static const unsigned char kat1828_entropyinreseed[] = {
+ 0x28, 0xc5, 0x64, 0x2a, 0x89, 0x23, 0xe7, 0x37, 0xea, 0xdd, 0x24, 0xf0,
+ 0xae, 0xc0, 0x89, 0x77, 0x20, 0x1d, 0x08, 0xca, 0xa0, 0xc2, 0x43, 0x27,
+};
+static const unsigned char kat1828_addinreseed[] = {
+ 0xaf, 0x7b, 0x0e, 0x35, 0x1d, 0x2c, 0xa7, 0x95, 0x59, 0x2b, 0x1c, 0xad,
+ 0x16, 0x7a, 0xe3, 0xf6, 0x99, 0xcf, 0x01, 0xf0, 0xf1, 0xd0, 0xcc, 0x8c,
+ 0xfd, 0xc9, 0x14, 0x82, 0xd3, 0x04, 0x2f, 0x57,
+};
+static const unsigned char kat1828_addin0[] = {
+ 0x47, 0x26, 0xeb, 0x11, 0x9c, 0xa6, 0x2e, 0xff, 0xe2, 0x05, 0x99, 0x0b,
+ 0x94, 0x3e, 0x8b, 0xc9, 0xcf, 0xd4, 0x93, 0xdb, 0xf3, 0x17, 0xab, 0x70,
+ 0xab, 0x96, 0x6b, 0x8d, 0x22, 0x57, 0xae, 0xf7,
+};
+static const unsigned char kat1828_addin1[] = {
+ 0x8e, 0x35, 0xac, 0x04, 0x31, 0xb9, 0xea, 0x89, 0xdf, 0x69, 0x8f, 0xad,
+ 0x94, 0x57, 0x3c, 0xf6, 0xaa, 0x96, 0x2a, 0xca, 0x44, 0x09, 0x1a, 0xb7,
+ 0x3f, 0x6a, 0xb0, 0xc1, 0x5f, 0x9f, 0x72, 0xb1,
+};
+static const unsigned char kat1828_retbits[] = {
+ 0xbd, 0x97, 0xf1, 0x49, 0xf8, 0xb6, 0x0f, 0xca, 0xfd, 0x16, 0x48, 0x58,
+ 0x7f, 0x65, 0x62, 0x3a, 0xb9, 0xe8, 0xc7, 0xe5, 0xf4, 0x3c, 0x96, 0x5f,
+ 0x69, 0x5e, 0xd7, 0x30, 0x54, 0x3a, 0x6e, 0xfa, 0x58, 0xbb, 0x25, 0x38,
+ 0x70, 0x72, 0xa5, 0x25, 0x1a, 0x7c, 0xd3, 0xcb, 0x92, 0x10, 0xb2, 0xa7,
+ 0x98, 0x57, 0x39, 0x35, 0xc7, 0x41, 0x54, 0xa9, 0xa7, 0x7f, 0x41, 0x8b,
+ 0x06, 0x6a, 0x6a, 0xdb,
+};
+static const struct drbg_kat_pr_false kat1828_t = {
+ 12, kat1828_entropyin, kat1828_nonce, kat1828_persstr,
+ kat1828_entropyinreseed, kat1828_addinreseed, kat1828_addin0,
+ kat1828_addin1, kat1828_retbits
+};
+static const struct drbg_kat kat1828 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1828_t
+};
+
+static const unsigned char kat1829_entropyin[] = {
+ 0x06, 0x65, 0x0e, 0x55, 0xf2, 0x14, 0x36, 0xce, 0xea, 0x53, 0x06, 0x15,
+ 0xe1, 0x43, 0x57, 0x5e, 0xf5, 0x9e, 0x0f, 0xb6, 0xe1, 0x3e, 0x1b, 0x48,
+};
+static const unsigned char kat1829_nonce[] = {
+ 0x87, 0x0b, 0x65, 0xaf, 0x36, 0xdf, 0x39, 0xcc, 0x20, 0x4c, 0xd3, 0x2b,
+ 0xd0, 0x96, 0x24, 0x20,
+};
+static const unsigned char kat1829_persstr[] = {0};
+static const unsigned char kat1829_entropyinreseed[] = {
+ 0x7b, 0x2c, 0x19, 0x9c, 0xae, 0x21, 0xe4, 0xa3, 0x28, 0xec, 0xee, 0x6b,
+ 0x8f, 0x2b, 0x8c, 0x28, 0x63, 0x0e, 0x3c, 0x39, 0x0f, 0x40, 0x1a, 0xe1,
+};
+static const unsigned char kat1829_addinreseed[] = {
+ 0x29, 0xba, 0x0b, 0x55, 0xa4, 0xf2, 0xee, 0x63, 0xc8, 0x58, 0x61, 0x5f,
+ 0xe3, 0x93, 0xe6, 0xd7, 0x04, 0xd0, 0x45, 0x88, 0xf5, 0x19, 0x01, 0xd5,
+ 0x75, 0xf6, 0x24, 0x7c, 0xf5, 0x2d, 0x69, 0xa5,
+};
+static const unsigned char kat1829_addin0[] = {
+ 0x7c, 0x34, 0x32, 0x9a, 0x91, 0xb1, 0xd1, 0x5e, 0x8a, 0x2f, 0x33, 0x52,
+ 0xf7, 0xcc, 0x18, 0x76, 0xec, 0xbd, 0xd6, 0x6e, 0xad, 0x5c, 0x6d, 0x9d,
+ 0xfb, 0x6b, 0x90, 0x48, 0xbc, 0x7e, 0x20, 0xf1,
+};
+static const unsigned char kat1829_addin1[] = {
+ 0x4e, 0x75, 0x78, 0x84, 0x92, 0xaa, 0x55, 0xf6, 0x32, 0xd5, 0x9b, 0xdf,
+ 0x96, 0xb6, 0x4c, 0xed, 0xe3, 0xcf, 0x1e, 0x9f, 0x97, 0x6c, 0x43, 0xec,
+ 0x7a, 0x32, 0x58, 0xc6, 0x8c, 0x0e, 0x03, 0x08,
+};
+static const unsigned char kat1829_retbits[] = {
+ 0x8a, 0xce, 0x58, 0xad, 0x55, 0xdf, 0x74, 0x4d, 0x2d, 0x19, 0xdd, 0x8d,
+ 0x68, 0xf2, 0x96, 0x74, 0xc3, 0x0b, 0xaa, 0x5a, 0xaf, 0x4d, 0xd6, 0x74,
+ 0x86, 0x24, 0xac, 0xd6, 0x3a, 0xb0, 0xa8, 0xdc, 0xd6, 0x26, 0xfd, 0x94,
+ 0xe1, 0x31, 0xa1, 0x00, 0xc1, 0x58, 0x15, 0xeb, 0xc0, 0x56, 0x97, 0x2f,
+ 0x80, 0xb3, 0x38, 0xe5, 0xa9, 0xf6, 0x22, 0xcf, 0xb1, 0x59, 0xc9, 0xf9,
+ 0xe3, 0x16, 0x00, 0x46,
+};
+static const struct drbg_kat_pr_false kat1829_t = {
+ 13, kat1829_entropyin, kat1829_nonce, kat1829_persstr,
+ kat1829_entropyinreseed, kat1829_addinreseed, kat1829_addin0,
+ kat1829_addin1, kat1829_retbits
+};
+static const struct drbg_kat kat1829 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1829_t
+};
+
+static const unsigned char kat1830_entropyin[] = {
+ 0x46, 0xb5, 0xb2, 0x73, 0xb4, 0x46, 0x4d, 0x53, 0xaa, 0x43, 0xba, 0xca,
+ 0x41, 0x3c, 0xc9, 0xda, 0xa3, 0x05, 0xe9, 0xd9, 0x88, 0x9c, 0xc2, 0x8f,
+};
+static const unsigned char kat1830_nonce[] = {
+ 0x23, 0xd3, 0xdd, 0xcb, 0x8a, 0xd9, 0x89, 0x0c, 0xf4, 0x48, 0x0e, 0x84,
+ 0xcb, 0x7a, 0x1b, 0xf1,
+};
+static const unsigned char kat1830_persstr[] = {0};
+static const unsigned char kat1830_entropyinreseed[] = {
+ 0x43, 0x7a, 0x21, 0x3d, 0xd1, 0xa0, 0x6c, 0x1a, 0xc5, 0x06, 0x9d, 0x55,
+ 0xc0, 0xb2, 0x1a, 0xab, 0xd7, 0x23, 0xf1, 0xfd, 0x84, 0xe4, 0x5a, 0x92,
+};
+static const unsigned char kat1830_addinreseed[] = {
+ 0xcb, 0x24, 0x2d, 0x02, 0xdb, 0xdb, 0x8f, 0x93, 0x67, 0x37, 0x35, 0xdd,
+ 0xbe, 0x45, 0x13, 0xc3, 0xaf, 0x98, 0x01, 0x0f, 0x82, 0x72, 0x9b, 0x2c,
+ 0xee, 0xd0, 0x8f, 0xe0, 0x2d, 0x39, 0x0a, 0x39,
+};
+static const unsigned char kat1830_addin0[] = {
+ 0x73, 0x11, 0x3a, 0x6b, 0xed, 0x92, 0x93, 0x5e, 0x4b, 0x6c, 0x58, 0xbb,
+ 0x78, 0x8e, 0xa6, 0x20, 0x03, 0x38, 0x37, 0x41, 0x50, 0x8c, 0xcf, 0xe9,
+ 0xff, 0xf1, 0x43, 0x22, 0x87, 0x0f, 0x19, 0x8f,
+};
+static const unsigned char kat1830_addin1[] = {
+ 0x12, 0x9c, 0xa5, 0x35, 0xa8, 0xa9, 0xec, 0xed, 0x5a, 0xa8, 0xc0, 0xc9,
+ 0x6a, 0x01, 0x8a, 0xa1, 0xa8, 0x60, 0x64, 0x8a, 0x5f, 0xc2, 0xc5, 0x65,
+ 0x7a, 0x49, 0xda, 0xb7, 0x79, 0x31, 0x54, 0xdc,
+};
+static const unsigned char kat1830_retbits[] = {
+ 0x03, 0x7a, 0x2b, 0x9b, 0xa1, 0x3b, 0xe2, 0x12, 0xdb, 0xe8, 0xae, 0x28,
+ 0xf4, 0xaa, 0xff, 0x9c, 0x9b, 0x36, 0x35, 0xed, 0xeb, 0xe0, 0xad, 0x29,
+ 0xbd, 0x13, 0xff, 0x64, 0x20, 0xf9, 0x79, 0x04, 0x32, 0x45, 0x49, 0xba,
+ 0x24, 0x7e, 0xc3, 0xd5, 0x76, 0x4f, 0x66, 0x23, 0x67, 0xd9, 0x49, 0x49,
+ 0x77, 0xe2, 0xf9, 0xef, 0xf2, 0xa3, 0xaa, 0xa4, 0x84, 0x39, 0x5a, 0x9e,
+ 0x9e, 0x5b, 0x77, 0x6c,
+};
+static const struct drbg_kat_pr_false kat1830_t = {
+ 14, kat1830_entropyin, kat1830_nonce, kat1830_persstr,
+ kat1830_entropyinreseed, kat1830_addinreseed, kat1830_addin0,
+ kat1830_addin1, kat1830_retbits
+};
+static const struct drbg_kat kat1830 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1830_t
+};
+
+static const unsigned char kat1831_entropyin[] = {
+ 0xb4, 0xb0, 0x5c, 0xe9, 0xce, 0x07, 0x41, 0x83, 0xa3, 0x06, 0xbf, 0x07,
+ 0xee, 0xd6, 0x84, 0xbf, 0x06, 0x5e, 0xbf, 0xfa, 0xd9, 0x75, 0x84, 0x51,
+};
+static const unsigned char kat1831_nonce[] = {
+ 0x73, 0x3a, 0x68, 0xb1, 0xd2, 0x76, 0xf1, 0x54, 0xe7, 0x9b, 0x3d, 0xd0,
+ 0x83, 0xd2, 0x27, 0x8f,
+};
+static const unsigned char kat1831_persstr[] = {
+ 0x9e, 0x88, 0x4f, 0xac, 0xfb, 0x9e, 0x9d, 0x40, 0x03, 0x47, 0x1d, 0x76,
+ 0x2b, 0xe0, 0x12, 0x47, 0xfb, 0xcb, 0x18, 0xd9, 0x08, 0x49, 0x73, 0xa2,
+ 0xb8, 0x33, 0x76, 0x4d, 0x71, 0x5c, 0x0c, 0xf8,
+};
+static const unsigned char kat1831_entropyinreseed[] = {
+ 0xbe, 0x90, 0x03, 0xb0, 0x6e, 0x75, 0x26, 0x5c, 0x4f, 0xa5, 0x4c, 0x31,
+ 0xf6, 0xf5, 0xbf, 0xd2, 0x13, 0x25, 0xe1, 0x24, 0xfd, 0x54, 0x17, 0x69,
+};
+static const unsigned char kat1831_addinreseed[] = {0};
+static const unsigned char kat1831_addin0[] = {0};
+static const unsigned char kat1831_addin1[] = {0};
+static const unsigned char kat1831_retbits[] = {
+ 0x38, 0xbf, 0x46, 0x94, 0x71, 0x70, 0x62, 0xef, 0x51, 0x12, 0x1b, 0xcd,
+ 0xf1, 0xdc, 0x70, 0x0e, 0xcc, 0x1a, 0x01, 0x8a, 0x2d, 0xa4, 0x07, 0x41,
+ 0x7a, 0x8f, 0x63, 0x11, 0xf1, 0x97, 0xe7, 0xda, 0x9c, 0x7b, 0x4a, 0x30,
+ 0x05, 0x46, 0xa6, 0x8c, 0x4a, 0x39, 0x35, 0x76, 0xd1, 0x51, 0x2e, 0x27,
+ 0x73, 0x75, 0xa0, 0xe0, 0x5c, 0x53, 0x75, 0x77, 0x86, 0x7c, 0x93, 0x70,
+ 0x62, 0xd7, 0x0f, 0xd7,
+};
+static const struct drbg_kat_pr_false kat1831_t = {
+ 0, kat1831_entropyin, kat1831_nonce, kat1831_persstr,
+ kat1831_entropyinreseed, kat1831_addinreseed, kat1831_addin0,
+ kat1831_addin1, kat1831_retbits
+};
+static const struct drbg_kat kat1831 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1831_t
+};
+
+static const unsigned char kat1832_entropyin[] = {
+ 0xa4, 0xf6, 0xfc, 0x1a, 0x3d, 0xfe, 0xcb, 0x13, 0x77, 0x69, 0x98, 0x26,
+ 0xb8, 0xf4, 0xb5, 0x12, 0x9e, 0x58, 0x4b, 0xf8, 0xd2, 0x6b, 0x3a, 0x82,
+};
+static const unsigned char kat1832_nonce[] = {
+ 0x47, 0xf7, 0xa5, 0x5a, 0x78, 0x38, 0x70, 0xc5, 0xcb, 0x62, 0x1d, 0x67,
+ 0x38, 0x7d, 0x6f, 0xdd,
+};
+static const unsigned char kat1832_persstr[] = {
+ 0xb0, 0x16, 0xdb, 0x1c, 0x11, 0x1f, 0x20, 0x3d, 0x10, 0x84, 0x96, 0xdf,
+ 0xdc, 0x79, 0x9e, 0xe2, 0xec, 0xe6, 0xd7, 0xf5, 0x6c, 0x8b, 0x73, 0xc9,
+ 0xf5, 0xeb, 0x24, 0xe1, 0x88, 0xa4, 0x88, 0x2f,
+};
+static const unsigned char kat1832_entropyinreseed[] = {
+ 0x35, 0xb7, 0xe7, 0x15, 0xce, 0xb2, 0x6b, 0xe7, 0x5c, 0x23, 0x0d, 0x44,
+ 0x2c, 0xce, 0xad, 0x39, 0xc9, 0xab, 0x94, 0x10, 0x38, 0xd4, 0x74, 0xcc,
+};
+static const unsigned char kat1832_addinreseed[] = {0};
+static const unsigned char kat1832_addin0[] = {0};
+static const unsigned char kat1832_addin1[] = {0};
+static const unsigned char kat1832_retbits[] = {
+ 0xe4, 0x75, 0x26, 0x2f, 0x8f, 0x34, 0xb0, 0xd2, 0x3e, 0xaa, 0x75, 0x3b,
+ 0x0c, 0xdf, 0xe5, 0xf4, 0x9b, 0xb5, 0x42, 0x16, 0xf8, 0x9c, 0x7b, 0x73,
+ 0xcb, 0xd5, 0xb4, 0xcd, 0x8c, 0x88, 0x2c, 0xf9, 0xf2, 0x5b, 0x40, 0x59,
+ 0xe3, 0x98, 0x72, 0xc3, 0xa7, 0x90, 0x20, 0xfe, 0x44, 0xbe, 0xf2, 0x0a,
+ 0x39, 0xe3, 0xdf, 0x16, 0x5e, 0x0b, 0x6e, 0x16, 0x9a, 0xd4, 0x6d, 0x89,
+ 0xee, 0x3a, 0xfa, 0x0b,
+};
+static const struct drbg_kat_pr_false kat1832_t = {
+ 1, kat1832_entropyin, kat1832_nonce, kat1832_persstr,
+ kat1832_entropyinreseed, kat1832_addinreseed, kat1832_addin0,
+ kat1832_addin1, kat1832_retbits
+};
+static const struct drbg_kat kat1832 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1832_t
+};
+
+static const unsigned char kat1833_entropyin[] = {
+ 0x2c, 0x84, 0xf1, 0xa7, 0x9a, 0x2c, 0xf4, 0xfa, 0xc8, 0x74, 0x0e, 0xd9,
+ 0x80, 0xc6, 0x57, 0x32, 0xc5, 0xb2, 0x57, 0xbb, 0x1c, 0x2c, 0xea, 0x36,
+};
+static const unsigned char kat1833_nonce[] = {
+ 0x40, 0xf1, 0xfd, 0xf6, 0xfa, 0x5f, 0xf0, 0x37, 0x66, 0xea, 0xd7, 0xb7,
+ 0x1b, 0xcb, 0x44, 0xd2,
+};
+static const unsigned char kat1833_persstr[] = {
+ 0x4f, 0x8c, 0x7b, 0x89, 0x31, 0x7a, 0x92, 0xfa, 0xe1, 0x8b, 0x6d, 0x68,
+ 0xf7, 0xfa, 0xcd, 0x60, 0x1c, 0x4d, 0x4d, 0xd5, 0x39, 0xc3, 0xa9, 0xc3,
+ 0xeb, 0xe2, 0x89, 0x18, 0x6f, 0xfb, 0x2f, 0x22,
+};
+static const unsigned char kat1833_entropyinreseed[] = {
+ 0xa6, 0x5b, 0xa6, 0x90, 0xcf, 0x9b, 0xa5, 0x74, 0xd0, 0x10, 0x55, 0x2b,
+ 0x7b, 0x3d, 0xfd, 0x38, 0x8b, 0x56, 0x52, 0xf3, 0x23, 0x3d, 0xbc, 0xd3,
+};
+static const unsigned char kat1833_addinreseed[] = {0};
+static const unsigned char kat1833_addin0[] = {0};
+static const unsigned char kat1833_addin1[] = {0};
+static const unsigned char kat1833_retbits[] = {
+ 0xea, 0x06, 0x8f, 0xb6, 0x2d, 0x2f, 0x78, 0xb1, 0xb4, 0xb1, 0x92, 0x51,
+ 0x81, 0xa9, 0xf6, 0x13, 0x96, 0x4a, 0x17, 0xc3, 0xe1, 0xf8, 0xa9, 0xce,
+ 0xd2, 0xa9, 0x6f, 0xa3, 0x77, 0x12, 0x3c, 0x01, 0xb7, 0xf7, 0x84, 0x77,
+ 0x4e, 0x94, 0x08, 0x31, 0xc1, 0xf5, 0x2d, 0xc1, 0x5a, 0xca, 0x3b, 0xad,
+ 0x24, 0xac, 0xe3, 0x42, 0x2e, 0xdf, 0x56, 0xdf, 0xc8, 0x95, 0x2d, 0xb8,
+ 0x61, 0x38, 0x83, 0x22,
+};
+static const struct drbg_kat_pr_false kat1833_t = {
+ 2, kat1833_entropyin, kat1833_nonce, kat1833_persstr,
+ kat1833_entropyinreseed, kat1833_addinreseed, kat1833_addin0,
+ kat1833_addin1, kat1833_retbits
+};
+static const struct drbg_kat kat1833 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1833_t
+};
+
+static const unsigned char kat1834_entropyin[] = {
+ 0x26, 0x3c, 0xb0, 0x78, 0x00, 0x82, 0xab, 0xf9, 0xf3, 0xb3, 0x7f, 0xf2,
+ 0xb8, 0xf8, 0x10, 0xdb, 0x35, 0xf9, 0x70, 0xf4, 0x74, 0x9e, 0x1e, 0x4b,
+};
+static const unsigned char kat1834_nonce[] = {
+ 0x43, 0x65, 0x58, 0x42, 0x5d, 0x3a, 0x43, 0x26, 0xaa, 0xda, 0x7e, 0xef,
+ 0x7b, 0x13, 0xc1, 0xba,
+};
+static const unsigned char kat1834_persstr[] = {
+ 0x30, 0xc8, 0x2b, 0xe2, 0x5e, 0xba, 0xcb, 0xa2, 0x24, 0xaa, 0xd9, 0xc8,
+ 0xb7, 0xd4, 0x99, 0x3e, 0x7b, 0xae, 0x90, 0x82, 0x05, 0xeb, 0xd1, 0x1c,
+ 0x19, 0xf1, 0xb3, 0x5b, 0x09, 0xd0, 0x6a, 0xf8,
+};
+static const unsigned char kat1834_entropyinreseed[] = {
+ 0x63, 0xd5, 0x60, 0xf8, 0xa0, 0xee, 0xab, 0x76, 0xce, 0x62, 0xa1, 0x6d,
+ 0x12, 0x5d, 0x39, 0x2a, 0x36, 0xff, 0x34, 0x2b, 0x03, 0x4c, 0xe8, 0xa5,
+};
+static const unsigned char kat1834_addinreseed[] = {0};
+static const unsigned char kat1834_addin0[] = {0};
+static const unsigned char kat1834_addin1[] = {0};
+static const unsigned char kat1834_retbits[] = {
+ 0xbb, 0xb3, 0x9e, 0xaa, 0x24, 0xa9, 0x84, 0x17, 0xb6, 0xaf, 0xdc, 0xd5,
+ 0x6d, 0x15, 0x41, 0xe3, 0x05, 0x45, 0xa9, 0x44, 0x4c, 0xb7, 0xbc, 0x66,
+ 0x49, 0xe9, 0xbb, 0x8b, 0x4b, 0x52, 0xbf, 0x3a, 0x10, 0xa7, 0xa2, 0x0b,
+ 0x5b, 0xda, 0x1e, 0x76, 0x40, 0xfa, 0x15, 0xce, 0x09, 0x05, 0xd7, 0x6e,
+ 0xc4, 0x92, 0xdb, 0xf3, 0xb3, 0x74, 0x65, 0x89, 0x69, 0x4a, 0xcc, 0x2e,
+ 0xde, 0x36, 0xb2, 0x96,
+};
+static const struct drbg_kat_pr_false kat1834_t = {
+ 3, kat1834_entropyin, kat1834_nonce, kat1834_persstr,
+ kat1834_entropyinreseed, kat1834_addinreseed, kat1834_addin0,
+ kat1834_addin1, kat1834_retbits
+};
+static const struct drbg_kat kat1834 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1834_t
+};
+
+static const unsigned char kat1835_entropyin[] = {
+ 0x54, 0x25, 0x5d, 0x15, 0x88, 0x32, 0x50, 0x17, 0x21, 0xaf, 0x07, 0x4f,
+ 0x1a, 0x05, 0x3f, 0x04, 0xc7, 0x17, 0xc9, 0x38, 0xc3, 0x22, 0x6d, 0x7e,
+};
+static const unsigned char kat1835_nonce[] = {
+ 0xc8, 0xb9, 0x45, 0x14, 0x33, 0xa2, 0x9e, 0x92, 0x09, 0x99, 0x82, 0xfe,
+ 0x6b, 0xa9, 0x95, 0x5a,
+};
+static const unsigned char kat1835_persstr[] = {
+ 0xc2, 0x6c, 0x8d, 0xad, 0xf2, 0x10, 0x51, 0xbf, 0x82, 0xbb, 0xd0, 0x9d,
+ 0x5a, 0x45, 0x50, 0xda, 0x1e, 0x90, 0xfc, 0x8d, 0x3b, 0x3b, 0xfc, 0x0e,
+ 0xc2, 0xca, 0x55, 0xef, 0xc5, 0xce, 0x66, 0xae,
+};
+static const unsigned char kat1835_entropyinreseed[] = {
+ 0x30, 0x03, 0x5f, 0xa0, 0xdd, 0xf9, 0xbd, 0xbf, 0x2e, 0x09, 0xc6, 0x92,
+ 0x60, 0xec, 0x31, 0x8c, 0xa3, 0xe4, 0x4d, 0x60, 0x80, 0xa2, 0x8b, 0x7e,
+};
+static const unsigned char kat1835_addinreseed[] = {0};
+static const unsigned char kat1835_addin0[] = {0};
+static const unsigned char kat1835_addin1[] = {0};
+static const unsigned char kat1835_retbits[] = {
+ 0x84, 0xd1, 0x57, 0x84, 0xb0, 0x20, 0x87, 0xe2, 0x62, 0x26, 0xc6, 0x63,
+ 0xc5, 0xc8, 0x6d, 0x5f, 0x06, 0x17, 0xa1, 0x50, 0x30, 0x10, 0x92, 0x0c,
+ 0xd0, 0x29, 0xf7, 0xca, 0x91, 0xbb, 0x82, 0xb6, 0x63, 0x30, 0x50, 0x13,
+ 0x9e, 0xb4, 0x23, 0xb8, 0x6f, 0x29, 0x24, 0xd5, 0x0d, 0xa7, 0x78, 0x7e,
+ 0x1e, 0x47, 0xda, 0x02, 0xb8, 0x34, 0x85, 0x91, 0xb7, 0xc7, 0xa7, 0xc6,
+ 0x1d, 0xbb, 0xb8, 0xf5,
+};
+static const struct drbg_kat_pr_false kat1835_t = {
+ 4, kat1835_entropyin, kat1835_nonce, kat1835_persstr,
+ kat1835_entropyinreseed, kat1835_addinreseed, kat1835_addin0,
+ kat1835_addin1, kat1835_retbits
+};
+static const struct drbg_kat kat1835 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1835_t
+};
+
+static const unsigned char kat1836_entropyin[] = {
+ 0x25, 0x3f, 0xfd, 0xfa, 0xd4, 0x16, 0x5e, 0x6e, 0x3f, 0x00, 0xb9, 0x73,
+ 0x53, 0x50, 0xa9, 0xe1, 0x7e, 0xf2, 0xfa, 0x1a, 0x04, 0x83, 0x08, 0xe6,
+};
+static const unsigned char kat1836_nonce[] = {
+ 0x77, 0xb9, 0x59, 0x98, 0x2f, 0x91, 0xa2, 0xf5, 0x21, 0xe7, 0xe8, 0xc2,
+ 0x55, 0x50, 0x67, 0x5d,
+};
+static const unsigned char kat1836_persstr[] = {
+ 0x16, 0x43, 0x5f, 0x2a, 0xb0, 0xef, 0x6e, 0xe1, 0xa1, 0x6f, 0x9b, 0xa1,
+ 0x5a, 0xb5, 0xcf, 0x26, 0x41, 0xab, 0x07, 0x6b, 0x37, 0xe6, 0x42, 0x1a,
+ 0xef, 0x73, 0x38, 0x0b, 0x4b, 0x89, 0x69, 0x91,
+};
+static const unsigned char kat1836_entropyinreseed[] = {
+ 0xc0, 0x69, 0xcf, 0x7c, 0x19, 0x91, 0x46, 0xba, 0xa6, 0x7e, 0x5d, 0x80,
+ 0x23, 0xb5, 0x62, 0xbd, 0xe6, 0x18, 0x5d, 0x3d, 0xab, 0x78, 0x12, 0x11,
+};
+static const unsigned char kat1836_addinreseed[] = {0};
+static const unsigned char kat1836_addin0[] = {0};
+static const unsigned char kat1836_addin1[] = {0};
+static const unsigned char kat1836_retbits[] = {
+ 0xa5, 0x8d, 0x58, 0xc9, 0x90, 0x43, 0xc0, 0xe2, 0x57, 0xfe, 0xe3, 0x8e,
+ 0xfd, 0x78, 0x28, 0x12, 0x96, 0xd4, 0x68, 0xbc, 0xa2, 0xa9, 0x19, 0x18,
+ 0xd8, 0x17, 0xd3, 0x1b, 0x00, 0xbb, 0x52, 0x93, 0x08, 0x79, 0x14, 0x1d,
+ 0xe2, 0x4b, 0xde, 0x70, 0x1d, 0x83, 0x76, 0xe8, 0xab, 0x07, 0xe8, 0x43,
+ 0xcd, 0x6c, 0x4e, 0x33, 0x4e, 0x5b, 0xd0, 0xc3, 0x6f, 0x92, 0xe3, 0x8a,
+ 0x19, 0x58, 0x19, 0x92,
+};
+static const struct drbg_kat_pr_false kat1836_t = {
+ 5, kat1836_entropyin, kat1836_nonce, kat1836_persstr,
+ kat1836_entropyinreseed, kat1836_addinreseed, kat1836_addin0,
+ kat1836_addin1, kat1836_retbits
+};
+static const struct drbg_kat kat1836 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1836_t
+};
+
+static const unsigned char kat1837_entropyin[] = {
+ 0xcf, 0xd1, 0x6e, 0xe9, 0x53, 0xaa, 0x49, 0x89, 0xa2, 0x08, 0xb9, 0xfa,
+ 0x8e, 0x00, 0x44, 0xce, 0x2e, 0x4e, 0xd6, 0xd6, 0x72, 0xd1, 0x82, 0xfe,
+};
+static const unsigned char kat1837_nonce[] = {
+ 0xde, 0x8e, 0x91, 0xe6, 0x58, 0x14, 0x56, 0x9f, 0xf0, 0x47, 0x67, 0xaa,
+ 0x75, 0xdb, 0x6b, 0xf5,
+};
+static const unsigned char kat1837_persstr[] = {
+ 0xde, 0x22, 0x3d, 0x66, 0x43, 0xe2, 0x33, 0x19, 0x0e, 0xe0, 0x21, 0x8f,
+ 0xef, 0x63, 0x05, 0xc1, 0x42, 0xd2, 0xfe, 0xaa, 0xa0, 0xab, 0xd6, 0xac,
+ 0x7c, 0x8b, 0xd8, 0x95, 0xa0, 0x0e, 0x91, 0x72,
+};
+static const unsigned char kat1837_entropyinreseed[] = {
+ 0xad, 0x5a, 0x4f, 0xb9, 0xe0, 0x3f, 0x8a, 0x51, 0xab, 0x23, 0x82, 0x35,
+ 0xed, 0x27, 0x27, 0x98, 0xbe, 0x43, 0xdb, 0x42, 0x17, 0xa5, 0xb3, 0x63,
+};
+static const unsigned char kat1837_addinreseed[] = {0};
+static const unsigned char kat1837_addin0[] = {0};
+static const unsigned char kat1837_addin1[] = {0};
+static const unsigned char kat1837_retbits[] = {
+ 0x1d, 0x59, 0x82, 0x19, 0x54, 0xc5, 0xc4, 0xad, 0x22, 0x48, 0xe0, 0x59,
+ 0x3e, 0xab, 0x77, 0x5c, 0xb2, 0x08, 0xa1, 0x88, 0x7b, 0xec, 0xf9, 0xcf,
+ 0x93, 0xea, 0x2b, 0x02, 0x58, 0xaf, 0x6e, 0x37, 0x05, 0xb1, 0xd7, 0x22,
+ 0x7a, 0x14, 0x01, 0xcb, 0xcd, 0x32, 0x72, 0xed, 0xc4, 0xcf, 0x98, 0x5a,
+ 0x05, 0xc3, 0x45, 0x49, 0x2d, 0x1b, 0xb9, 0xe9, 0x04, 0x7b, 0xbe, 0xec,
+ 0x7a, 0xba, 0x24, 0x36,
+};
+static const struct drbg_kat_pr_false kat1837_t = {
+ 6, kat1837_entropyin, kat1837_nonce, kat1837_persstr,
+ kat1837_entropyinreseed, kat1837_addinreseed, kat1837_addin0,
+ kat1837_addin1, kat1837_retbits
+};
+static const struct drbg_kat kat1837 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1837_t
+};
+
+static const unsigned char kat1838_entropyin[] = {
+ 0x36, 0xd2, 0x23, 0x69, 0x48, 0x40, 0x0d, 0xea, 0x19, 0x14, 0x2d, 0xd1,
+ 0xc5, 0x3c, 0x3e, 0x7d, 0xb7, 0xc3, 0xbc, 0x7e, 0xf3, 0xb9, 0xe2, 0x75,
+};
+static const unsigned char kat1838_nonce[] = {
+ 0x90, 0xa5, 0xb9, 0x10, 0x30, 0xcb, 0x25, 0x37, 0xd4, 0xbc, 0xbb, 0xce,
+ 0xc6, 0xcd, 0x43, 0x86,
+};
+static const unsigned char kat1838_persstr[] = {
+ 0x7c, 0xc5, 0x1d, 0x67, 0x30, 0x40, 0x05, 0xb5, 0x23, 0x1c, 0x3a, 0x3a,
+ 0xd3, 0xbf, 0x14, 0x4e, 0xb6, 0xa1, 0x74, 0xbf, 0x1a, 0x0d, 0x29, 0xed,
+ 0x97, 0xb8, 0x87, 0xcf, 0x7c, 0x00, 0xc3, 0xf6,
+};
+static const unsigned char kat1838_entropyinreseed[] = {
+ 0x83, 0x07, 0xc0, 0x28, 0x00, 0x12, 0x69, 0x45, 0x2b, 0x72, 0xb4, 0x13,
+ 0x4d, 0x85, 0x34, 0x16, 0x36, 0x57, 0x66, 0xb8, 0xb8, 0xc2, 0x7e, 0xea,
+};
+static const unsigned char kat1838_addinreseed[] = {0};
+static const unsigned char kat1838_addin0[] = {0};
+static const unsigned char kat1838_addin1[] = {0};
+static const unsigned char kat1838_retbits[] = {
+ 0xb6, 0x4c, 0xcb, 0xa0, 0x8e, 0x5d, 0x97, 0x00, 0xa6, 0xc7, 0xbe, 0x68,
+ 0x14, 0x85, 0xf6, 0x7c, 0xf1, 0xb2, 0xea, 0xa7, 0xa7, 0x9f, 0xcc, 0x0c,
+ 0xab, 0x39, 0xd3, 0xb2, 0x68, 0xe3, 0x66, 0x14, 0x7c, 0x95, 0x42, 0xd4,
+ 0x44, 0x6f, 0xa0, 0x72, 0x61, 0x4f, 0xde, 0xb5, 0x0e, 0x74, 0x8c, 0x2f,
+ 0xdd, 0x85, 0xf4, 0xd5, 0x16, 0x86, 0x3a, 0xa8, 0x82, 0x0f, 0x69, 0xc0,
+ 0x70, 0x76, 0x1c, 0x72,
+};
+static const struct drbg_kat_pr_false kat1838_t = {
+ 7, kat1838_entropyin, kat1838_nonce, kat1838_persstr,
+ kat1838_entropyinreseed, kat1838_addinreseed, kat1838_addin0,
+ kat1838_addin1, kat1838_retbits
+};
+static const struct drbg_kat kat1838 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1838_t
+};
+
+static const unsigned char kat1839_entropyin[] = {
+ 0x7e, 0xb1, 0x89, 0xf1, 0xbc, 0xb5, 0x47, 0xd8, 0x37, 0xb7, 0x55, 0x32,
+ 0x31, 0x32, 0x5b, 0x4d, 0xda, 0xe1, 0xea, 0x87, 0xb9, 0x38, 0xb0, 0xc4,
+};
+static const unsigned char kat1839_nonce[] = {
+ 0x9d, 0x2d, 0xc9, 0x6e, 0x33, 0x37, 0x3f, 0x89, 0xe4, 0xda, 0x9f, 0x5b,
+ 0xa1, 0x7e, 0xb1, 0xb7,
+};
+static const unsigned char kat1839_persstr[] = {
+ 0x1c, 0x56, 0xb2, 0xa0, 0x25, 0x34, 0x09, 0xcc, 0xa5, 0x73, 0x83, 0xc9,
+ 0x57, 0x12, 0xbb, 0xab, 0xd5, 0xa5, 0x5b, 0x32, 0x99, 0x87, 0xd1, 0xbe,
+ 0xe5, 0xff, 0x82, 0x37, 0xe7, 0xbd, 0x9e, 0x70,
+};
+static const unsigned char kat1839_entropyinreseed[] = {
+ 0xcd, 0x9b, 0x86, 0xc1, 0xb8, 0xb8, 0x2c, 0x72, 0xf7, 0xcb, 0x2b, 0xb9,
+ 0x40, 0xee, 0x31, 0x89, 0xa2, 0x55, 0x41, 0x87, 0xdf, 0xa8, 0xfd, 0xd4,
+};
+static const unsigned char kat1839_addinreseed[] = {0};
+static const unsigned char kat1839_addin0[] = {0};
+static const unsigned char kat1839_addin1[] = {0};
+static const unsigned char kat1839_retbits[] = {
+ 0xe9, 0x5d, 0xbf, 0x39, 0xd1, 0x48, 0x2b, 0xd0, 0x3a, 0x57, 0x73, 0x57,
+ 0x76, 0xdd, 0xb3, 0x18, 0xe0, 0xf9, 0xff, 0xb0, 0xcc, 0xb5, 0x13, 0x60,
+ 0x7d, 0xe3, 0x86, 0x3b, 0x4f, 0xd0, 0xfb, 0x40, 0x5e, 0x74, 0xd2, 0x8b,
+ 0x2d, 0xed, 0x6e, 0xe1, 0x97, 0x2e, 0x2e, 0xe8, 0x9a, 0x09, 0xb6, 0x64,
+ 0x17, 0x61, 0xfa, 0x18, 0xa2, 0xf6, 0xc1, 0x23, 0xae, 0xe9, 0xf7, 0x19,
+ 0x1e, 0xfe, 0x52, 0x8c,
+};
+static const struct drbg_kat_pr_false kat1839_t = {
+ 8, kat1839_entropyin, kat1839_nonce, kat1839_persstr,
+ kat1839_entropyinreseed, kat1839_addinreseed, kat1839_addin0,
+ kat1839_addin1, kat1839_retbits
+};
+static const struct drbg_kat kat1839 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1839_t
+};
+
+static const unsigned char kat1840_entropyin[] = {
+ 0xe0, 0x61, 0x79, 0x9e, 0xb8, 0xa5, 0x70, 0xf6, 0xde, 0x95, 0xba, 0x5f,
+ 0x10, 0x8f, 0xcc, 0x1d, 0x2c, 0x9e, 0xa1, 0x6c, 0xcf, 0xc2, 0xbe, 0xce,
+};
+static const unsigned char kat1840_nonce[] = {
+ 0x87, 0x71, 0x03, 0x26, 0xb9, 0x78, 0xb2, 0xf4, 0x34, 0x3e, 0x26, 0x70,
+ 0xb4, 0x51, 0xed, 0x31,
+};
+static const unsigned char kat1840_persstr[] = {
+ 0x27, 0xa3, 0xa9, 0x29, 0x10, 0x36, 0x8d, 0xa0, 0x98, 0x4a, 0xaf, 0x3c,
+ 0x7e, 0x31, 0x5b, 0xed, 0x2b, 0x6b, 0x19, 0x34, 0x15, 0xd4, 0x38, 0xa3,
+ 0x7d, 0xef, 0x8f, 0x2c, 0xe5, 0x42, 0xa3, 0x23,
+};
+static const unsigned char kat1840_entropyinreseed[] = {
+ 0x3f, 0x3c, 0x15, 0x3d, 0xca, 0xb7, 0xa0, 0x08, 0x56, 0x6c, 0x25, 0xd3,
+ 0xfa, 0x71, 0xbc, 0x71, 0x04, 0x76, 0x7c, 0x1d, 0x4a, 0xe5, 0xca, 0x02,
+};
+static const unsigned char kat1840_addinreseed[] = {0};
+static const unsigned char kat1840_addin0[] = {0};
+static const unsigned char kat1840_addin1[] = {0};
+static const unsigned char kat1840_retbits[] = {
+ 0x6b, 0x75, 0x48, 0x1f, 0x70, 0xda, 0x16, 0x6f, 0x30, 0x55, 0x39, 0x1c,
+ 0x70, 0x5f, 0xf6, 0xec, 0x67, 0x5d, 0xc9, 0x12, 0x25, 0x3a, 0x5d, 0xe9,
+ 0xf6, 0x61, 0xf6, 0x8a, 0xdc, 0x09, 0x7c, 0x64, 0x33, 0x46, 0x16, 0x83,
+ 0x9c, 0x67, 0xf2, 0x98, 0xae, 0xc4, 0x10, 0x4b, 0x51, 0x3f, 0x49, 0x70,
+ 0xe6, 0x1d, 0xcf, 0x30, 0x40, 0x87, 0x73, 0x31, 0xc2, 0x4d, 0x87, 0xeb,
+ 0x09, 0x1b, 0x9d, 0x91,
+};
+static const struct drbg_kat_pr_false kat1840_t = {
+ 9, kat1840_entropyin, kat1840_nonce, kat1840_persstr,
+ kat1840_entropyinreseed, kat1840_addinreseed, kat1840_addin0,
+ kat1840_addin1, kat1840_retbits
+};
+static const struct drbg_kat kat1840 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1840_t
+};
+
+static const unsigned char kat1841_entropyin[] = {
+ 0xba, 0x8c, 0xa3, 0x61, 0xab, 0x65, 0xb9, 0xf1, 0x56, 0xe8, 0xdc, 0x5d,
+ 0x4e, 0x50, 0xc8, 0xac, 0x4c, 0x78, 0x76, 0xcb, 0xea, 0xae, 0x09, 0xae,
+};
+static const unsigned char kat1841_nonce[] = {
+ 0xc2, 0x16, 0xc9, 0xaf, 0x4d, 0xd9, 0x44, 0x0a, 0xe5, 0x19, 0x15, 0x41,
+ 0xb4, 0x0b, 0x1d, 0x6b,
+};
+static const unsigned char kat1841_persstr[] = {
+ 0x25, 0xad, 0xc2, 0x73, 0xf5, 0xd8, 0x3b, 0xe2, 0x70, 0x23, 0x35, 0x2b,
+ 0x7a, 0x78, 0xbf, 0x0c, 0xbd, 0xae, 0xfa, 0x76, 0x72, 0x5a, 0x45, 0xaa,
+ 0x9b, 0xee, 0x06, 0x13, 0x73, 0x51, 0xd2, 0x4d,
+};
+static const unsigned char kat1841_entropyinreseed[] = {
+ 0xc7, 0xe3, 0x6a, 0xe2, 0x3e, 0xfe, 0x97, 0x4b, 0x76, 0x3e, 0xe4, 0x23,
+ 0xf2, 0x14, 0x55, 0x59, 0x23, 0xd6, 0x6f, 0xeb, 0x9a, 0xa1, 0x74, 0xed,
+};
+static const unsigned char kat1841_addinreseed[] = {0};
+static const unsigned char kat1841_addin0[] = {0};
+static const unsigned char kat1841_addin1[] = {0};
+static const unsigned char kat1841_retbits[] = {
+ 0x1f, 0xa1, 0xce, 0xd6, 0xb2, 0xf2, 0x09, 0xe4, 0x30, 0x66, 0x7c, 0xc1,
+ 0x11, 0xf2, 0x97, 0x81, 0x39, 0x36, 0x0c, 0xd4, 0xc5, 0x26, 0x7a, 0x66,
+ 0xd9, 0x02, 0x39, 0xa5, 0x37, 0x81, 0x49, 0xd2, 0x47, 0x83, 0xac, 0x42,
+ 0x77, 0x26, 0x5f, 0x38, 0xd4, 0x40, 0xcd, 0xac, 0xaf, 0x47, 0x9b, 0xb7,
+ 0x34, 0xbb, 0x5a, 0x86, 0x5b, 0x3c, 0x67, 0xc4, 0x96, 0xd3, 0x64, 0x23,
+ 0x37, 0xad, 0xda, 0xbd,
+};
+static const struct drbg_kat_pr_false kat1841_t = {
+ 10, kat1841_entropyin, kat1841_nonce, kat1841_persstr,
+ kat1841_entropyinreseed, kat1841_addinreseed, kat1841_addin0,
+ kat1841_addin1, kat1841_retbits
+};
+static const struct drbg_kat kat1841 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1841_t
+};
+
+static const unsigned char kat1842_entropyin[] = {
+ 0x0a, 0xa9, 0x24, 0xd3, 0x23, 0xa3, 0x92, 0x46, 0x22, 0x4f, 0x4a, 0x6b,
+ 0xe2, 0xb6, 0x37, 0xe2, 0x06, 0xc6, 0xcf, 0x2c, 0xc2, 0x87, 0x20, 0x45,
+};
+static const unsigned char kat1842_nonce[] = {
+ 0x0c, 0x22, 0xc2, 0x62, 0x96, 0x51, 0x7b, 0xb9, 0x9d, 0xc9, 0x2c, 0x6d,
+ 0x16, 0xdc, 0x05, 0x8b,
+};
+static const unsigned char kat1842_persstr[] = {
+ 0xbb, 0x1e, 0xf0, 0x94, 0x07, 0x24, 0xb5, 0xcf, 0x38, 0xdd, 0xb6, 0xcf,
+ 0xdc, 0xa8, 0x6c, 0xf2, 0x25, 0x04, 0x62, 0x00, 0x12, 0xc2, 0x7b, 0xeb,
+ 0x65, 0xc4, 0x1c, 0xf7, 0x90, 0x29, 0x45, 0x95,
+};
+static const unsigned char kat1842_entropyinreseed[] = {
+ 0xdf, 0x35, 0x0b, 0x7f, 0x1c, 0xc5, 0x3b, 0xec, 0x3e, 0xae, 0x29, 0x2d,
+ 0xad, 0xb7, 0x56, 0x9d, 0xeb, 0x21, 0xeb, 0x34, 0x5c, 0x2e, 0x19, 0x20,
+};
+static const unsigned char kat1842_addinreseed[] = {0};
+static const unsigned char kat1842_addin0[] = {0};
+static const unsigned char kat1842_addin1[] = {0};
+static const unsigned char kat1842_retbits[] = {
+ 0x3e, 0x59, 0x86, 0x67, 0xb2, 0x13, 0x2e, 0x80, 0x30, 0xce, 0x4c, 0xfc,
+ 0x92, 0xa5, 0xb8, 0xa7, 0x50, 0xb3, 0xe7, 0x19, 0xa1, 0x01, 0xb8, 0x73,
+ 0xa5, 0x7a, 0x17, 0x95, 0x15, 0x98, 0x52, 0x8c, 0x1a, 0xa3, 0xa8, 0x71,
+ 0x5b, 0x63, 0x83, 0x24, 0xea, 0x00, 0xa4, 0x72, 0x5e, 0xa8, 0x3f, 0x94,
+ 0x6a, 0x24, 0x9f, 0xba, 0x6f, 0x36, 0x20, 0xb7, 0xf1, 0xbf, 0x22, 0xff,
+ 0x7d, 0x09, 0x2d, 0xe9,
+};
+static const struct drbg_kat_pr_false kat1842_t = {
+ 11, kat1842_entropyin, kat1842_nonce, kat1842_persstr,
+ kat1842_entropyinreseed, kat1842_addinreseed, kat1842_addin0,
+ kat1842_addin1, kat1842_retbits
+};
+static const struct drbg_kat kat1842 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1842_t
+};
+
+static const unsigned char kat1843_entropyin[] = {
+ 0x38, 0xae, 0x86, 0x1a, 0x0d, 0xfa, 0x5f, 0xa4, 0xbd, 0xb4, 0x41, 0xb1,
+ 0xb6, 0x89, 0x1a, 0x6a, 0x28, 0x8e, 0x53, 0xb4, 0xba, 0x11, 0x28, 0xb1,
+};
+static const unsigned char kat1843_nonce[] = {
+ 0xce, 0x41, 0x04, 0x74, 0x1c, 0x21, 0xae, 0xc8, 0x39, 0xb3, 0x36, 0xbd,
+ 0x06, 0x3e, 0x5b, 0x31,
+};
+static const unsigned char kat1843_persstr[] = {
+ 0x5e, 0x4a, 0x4f, 0x9b, 0xf0, 0xbd, 0x36, 0x72, 0x2b, 0x45, 0x65, 0x55,
+ 0xbf, 0xc2, 0x04, 0x4c, 0x4f, 0xc4, 0x3f, 0xf2, 0x8e, 0xcf, 0x7e, 0x4e,
+ 0x0d, 0xf3, 0xe1, 0x7a, 0xd1, 0x02, 0xc7, 0xca,
+};
+static const unsigned char kat1843_entropyinreseed[] = {
+ 0x40, 0x61, 0xa0, 0xd2, 0xb1, 0x15, 0x82, 0xfd, 0x4b, 0xc2, 0xa9, 0x00,
+ 0xb5, 0xf3, 0x80, 0xf9, 0x19, 0xd5, 0xd3, 0x2a, 0xf4, 0x6a, 0xfa, 0x13,
+};
+static const unsigned char kat1843_addinreseed[] = {0};
+static const unsigned char kat1843_addin0[] = {0};
+static const unsigned char kat1843_addin1[] = {0};
+static const unsigned char kat1843_retbits[] = {
+ 0xc8, 0x5d, 0xa5, 0x24, 0x49, 0x8a, 0x8b, 0x6e, 0xdd, 0xff, 0x39, 0x98,
+ 0x64, 0xaf, 0x02, 0x7d, 0x93, 0x5e, 0xc0, 0x02, 0xea, 0xec, 0x2c, 0x8d,
+ 0xc7, 0x5b, 0x1b, 0x1d, 0x84, 0x9d, 0x46, 0x1e, 0xa6, 0xde, 0xa8, 0x0e,
+ 0x91, 0x5a, 0x75, 0xa3, 0x7c, 0x5c, 0x46, 0x78, 0x07, 0x44, 0x65, 0xa9,
+ 0x95, 0x5c, 0xb9, 0xf0, 0x74, 0x54, 0xb6, 0x37, 0x9c, 0xb1, 0xba, 0xf5,
+ 0x48, 0xe9, 0x28, 0x16,
+};
+static const struct drbg_kat_pr_false kat1843_t = {
+ 12, kat1843_entropyin, kat1843_nonce, kat1843_persstr,
+ kat1843_entropyinreseed, kat1843_addinreseed, kat1843_addin0,
+ kat1843_addin1, kat1843_retbits
+};
+static const struct drbg_kat kat1843 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1843_t
+};
+
+static const unsigned char kat1844_entropyin[] = {
+ 0xb2, 0xba, 0xbc, 0x18, 0x8a, 0xba, 0x0d, 0xf4, 0x8f, 0x9e, 0xce, 0x46,
+ 0x2b, 0xae, 0x4c, 0x20, 0xfa, 0x60, 0xbb, 0xcc, 0x76, 0xc7, 0x7e, 0xdb,
+};
+static const unsigned char kat1844_nonce[] = {
+ 0x39, 0xd5, 0x0f, 0x4f, 0x3e, 0x9c, 0x19, 0xca, 0x43, 0x79, 0x12, 0x13,
+ 0xd1, 0xe4, 0xab, 0xea,
+};
+static const unsigned char kat1844_persstr[] = {
+ 0xc0, 0x1a, 0x62, 0x42, 0xd7, 0x9f, 0x07, 0x3e, 0x11, 0x2c, 0x5e, 0xe6,
+ 0xbd, 0x4a, 0x71, 0xa1, 0x25, 0x9b, 0x2c, 0xed, 0xd7, 0x5c, 0x5c, 0xfb,
+ 0x82, 0xda, 0x2b, 0xf1, 0xc0, 0x50, 0xe4, 0x02,
+};
+static const unsigned char kat1844_entropyinreseed[] = {
+ 0x8b, 0xbc, 0x6d, 0x75, 0x4a, 0xd5, 0x50, 0x61, 0x25, 0x2a, 0x2b, 0x53,
+ 0x59, 0x99, 0xf1, 0xb5, 0x80, 0x57, 0x86, 0x36, 0x92, 0x7e, 0x93, 0x27,
+};
+static const unsigned char kat1844_addinreseed[] = {0};
+static const unsigned char kat1844_addin0[] = {0};
+static const unsigned char kat1844_addin1[] = {0};
+static const unsigned char kat1844_retbits[] = {
+ 0x22, 0xda, 0x3f, 0x3c, 0x2d, 0xcc, 0xe7, 0xf3, 0xa3, 0xf3, 0x31, 0x29,
+ 0xca, 0xf2, 0x27, 0x10, 0x28, 0x42, 0x4d, 0x72, 0xbc, 0xbd, 0x75, 0xcc,
+ 0x81, 0x86, 0x3b, 0x24, 0xf9, 0x6f, 0x75, 0x01, 0xe7, 0x0b, 0xcb, 0x5b,
+ 0x25, 0x4c, 0xb4, 0xd2, 0xca, 0x48, 0x0c, 0x2c, 0x64, 0x9d, 0x9e, 0x89,
+ 0x47, 0xc2, 0x53, 0x7e, 0xfe, 0xdc, 0xec, 0xd5, 0x07, 0x2d, 0x57, 0xfd,
+ 0x36, 0xb7, 0x54, 0x81,
+};
+static const struct drbg_kat_pr_false kat1844_t = {
+ 13, kat1844_entropyin, kat1844_nonce, kat1844_persstr,
+ kat1844_entropyinreseed, kat1844_addinreseed, kat1844_addin0,
+ kat1844_addin1, kat1844_retbits
+};
+static const struct drbg_kat kat1844 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1844_t
+};
+
+static const unsigned char kat1845_entropyin[] = {
+ 0xea, 0x1e, 0x0b, 0xd5, 0x16, 0x89, 0xf2, 0xd1, 0x21, 0xeb, 0x55, 0xee,
+ 0x52, 0x72, 0xb6, 0xfe, 0xd7, 0xb9, 0xff, 0x7d, 0xfa, 0x8c, 0x1f, 0x11,
+};
+static const unsigned char kat1845_nonce[] = {
+ 0x31, 0xaa, 0x1e, 0x8f, 0x81, 0xac, 0xaf, 0x88, 0x40, 0x48, 0xfa, 0x05,
+ 0x64, 0x88, 0x90, 0x2a,
+};
+static const unsigned char kat1845_persstr[] = {
+ 0x2a, 0xc2, 0xe8, 0x98, 0xb0, 0x0a, 0x09, 0x96, 0x12, 0xf6, 0x85, 0x47,
+ 0x38, 0x22, 0xd2, 0x15, 0x2b, 0xcd, 0x8f, 0x77, 0x82, 0x0a, 0x38, 0x59,
+ 0xb4, 0x81, 0xef, 0x1d, 0xfb, 0xed, 0xab, 0xed,
+};
+static const unsigned char kat1845_entropyinreseed[] = {
+ 0x05, 0xc7, 0xb3, 0xfc, 0xd8, 0x58, 0xbf, 0x50, 0x80, 0xb7, 0xec, 0x08,
+ 0xb6, 0x4c, 0x20, 0xfd, 0x36, 0x14, 0xd2, 0x5d, 0x9b, 0x6f, 0x4d, 0x1b,
+};
+static const unsigned char kat1845_addinreseed[] = {0};
+static const unsigned char kat1845_addin0[] = {0};
+static const unsigned char kat1845_addin1[] = {0};
+static const unsigned char kat1845_retbits[] = {
+ 0x43, 0x97, 0xf3, 0x8e, 0x54, 0xa1, 0x58, 0x39, 0xaf, 0x1d, 0x7f, 0x5b,
+ 0x19, 0x0b, 0x9f, 0x12, 0x2b, 0x1e, 0x85, 0x34, 0xd1, 0xd7, 0x4c, 0x53,
+ 0x29, 0x3e, 0x9f, 0x37, 0x27, 0x37, 0x4c, 0x2c, 0x66, 0xba, 0x78, 0x48,
+ 0x89, 0x29, 0xee, 0x09, 0x99, 0x15, 0x98, 0x52, 0x4b, 0x14, 0xed, 0x98,
+ 0x00, 0x21, 0x7d, 0x3c, 0xb2, 0xe0, 0x2e, 0xde, 0xe7, 0xf8, 0x41, 0x04,
+ 0x22, 0xe3, 0x6e, 0xb5,
+};
+static const struct drbg_kat_pr_false kat1845_t = {
+ 14, kat1845_entropyin, kat1845_nonce, kat1845_persstr,
+ kat1845_entropyinreseed, kat1845_addinreseed, kat1845_addin0,
+ kat1845_addin1, kat1845_retbits
+};
+static const struct drbg_kat kat1845 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1845_t
+};
+
+static const unsigned char kat1846_entropyin[] = {
+ 0xa9, 0xb3, 0xbb, 0xf1, 0x9c, 0x1d, 0x80, 0x62, 0x32, 0x97, 0xf7, 0xc5,
+ 0x0e, 0x9d, 0xeb, 0x3b, 0x6c, 0xc4, 0x97, 0xd1, 0x8c, 0x48, 0xd2, 0x44,
+};
+static const unsigned char kat1846_nonce[] = {
+ 0xe0, 0xaa, 0x9a, 0x80, 0x3e, 0x29, 0x6e, 0x3f, 0x37, 0x00, 0x1e, 0x77,
+ 0x65, 0x4e, 0x23, 0x39,
+};
+static const unsigned char kat1846_persstr[] = {
+ 0xcc, 0xef, 0xb2, 0xc8, 0xbc, 0x0d, 0xfa, 0xa1, 0x6c, 0x14, 0xef, 0x3c,
+ 0x9d, 0x98, 0x54, 0x6e, 0x47, 0x66, 0x58, 0xed, 0xe3, 0xf3, 0x56, 0x21,
+ 0x48, 0x8f, 0x1d, 0x03, 0xad, 0x49, 0x06, 0x33,
+};
+static const unsigned char kat1846_entropyinreseed[] = {
+ 0xcd, 0x2a, 0x71, 0x04, 0xda, 0x1b, 0x30, 0x30, 0x11, 0x81, 0x7d, 0xe7,
+ 0x3e, 0x83, 0xe4, 0x6c, 0x6e, 0xf8, 0x93, 0x95, 0x2f, 0xa9, 0x21, 0x45,
+};
+static const unsigned char kat1846_addinreseed[] = {
+ 0xb9, 0xed, 0xaa, 0x9d, 0x7d, 0xb6, 0x67, 0x06, 0x6c, 0xa8, 0x5a, 0x46,
+ 0x19, 0x91, 0xb7, 0x81, 0xbd, 0x87, 0x7c, 0xae, 0x12, 0x00, 0xa4, 0x7b,
+ 0xa0, 0x89, 0xbb, 0x81, 0x65, 0xfb, 0xb9, 0x5a,
+};
+static const unsigned char kat1846_addin0[] = {
+ 0x01, 0xc5, 0xae, 0xb2, 0x5c, 0xfb, 0x8f, 0x31, 0x63, 0x1f, 0x6e, 0x7b,
+ 0x69, 0xb8, 0x44, 0x98, 0x45, 0x03, 0x44, 0x35, 0x75, 0x8b, 0x97, 0x47,
+ 0xd3, 0x81, 0x22, 0x23, 0x70, 0x9a, 0x55, 0xa5,
+};
+static const unsigned char kat1846_addin1[] = {
+ 0x93, 0x0e, 0xbe, 0x68, 0xb0, 0x2f, 0x33, 0x1f, 0xb1, 0xa9, 0xe7, 0xe5,
+ 0xed, 0x2f, 0xd0, 0x33, 0x4b, 0x45, 0xb5, 0x03, 0x13, 0xa6, 0x14, 0xed,
+ 0xdc, 0x06, 0xfd, 0x67, 0x80, 0x49, 0x2d, 0xe9,
+};
+static const unsigned char kat1846_retbits[] = {
+ 0x18, 0xba, 0xcd, 0xea, 0x0c, 0x71, 0xdb, 0xea, 0x09, 0x48, 0x5a, 0xd0,
+ 0xb9, 0x21, 0x0d, 0xaf, 0x6b, 0x17, 0x5c, 0x8a, 0xfa, 0xa7, 0xd6, 0x15,
+ 0x8f, 0xa7, 0x4e, 0x5a, 0xe3, 0x70, 0xd3, 0x38, 0x21, 0x6c, 0xa0, 0x27,
+ 0x57, 0x47, 0x86, 0xd4, 0x14, 0xf0, 0xef, 0x87, 0xb4, 0x18, 0xc4, 0x7f,
+ 0xc5, 0x87, 0xa0, 0x1e, 0x57, 0x8d, 0x8d, 0x41, 0x6f, 0x80, 0x20, 0xa4,
+ 0x45, 0xe2, 0x0f, 0x3e,
+};
+static const struct drbg_kat_pr_false kat1846_t = {
+ 0, kat1846_entropyin, kat1846_nonce, kat1846_persstr,
+ kat1846_entropyinreseed, kat1846_addinreseed, kat1846_addin0,
+ kat1846_addin1, kat1846_retbits
+};
+static const struct drbg_kat kat1846 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1846_t
+};
+
+static const unsigned char kat1847_entropyin[] = {
+ 0x08, 0x35, 0x31, 0x41, 0x2b, 0x21, 0x9d, 0x9d, 0x1b, 0x08, 0x48, 0xbc,
+ 0xa3, 0x52, 0x72, 0xca, 0x96, 0xd4, 0x9a, 0xfd, 0x4b, 0x0b, 0x5c, 0x8e,
+};
+static const unsigned char kat1847_nonce[] = {
+ 0x5c, 0x8f, 0xfe, 0xcf, 0xd6, 0x5b, 0x9c, 0xa2, 0xa4, 0x28, 0x6b, 0xa4,
+ 0x41, 0x38, 0x62, 0x7d,
+};
+static const unsigned char kat1847_persstr[] = {
+ 0x26, 0xc9, 0xa7, 0xb2, 0xf1, 0x5a, 0x59, 0x0e, 0x0e, 0x92, 0xa2, 0x70,
+ 0x8b, 0xc3, 0x06, 0xe6, 0x87, 0x50, 0x47, 0x6e, 0x96, 0x26, 0xd5, 0x42,
+ 0xf1, 0x57, 0x70, 0x75, 0xf4, 0xe5, 0x94, 0xed,
+};
+static const unsigned char kat1847_entropyinreseed[] = {
+ 0x85, 0x13, 0xb3, 0x2e, 0xff, 0x61, 0x74, 0x0c, 0xf9, 0xd1, 0x9c, 0xac,
+ 0xc7, 0xab, 0x02, 0x88, 0x90, 0x3d, 0x3f, 0x18, 0x86, 0xf2, 0x85, 0x34,
+};
+static const unsigned char kat1847_addinreseed[] = {
+ 0x0f, 0x1f, 0x76, 0xa1, 0x92, 0x8e, 0x49, 0x07, 0x6b, 0xe7, 0xf0, 0x2f,
+ 0x70, 0x31, 0x2d, 0x0a, 0xc5, 0x22, 0x49, 0x87, 0xd0, 0x09, 0x8d, 0x2e,
+ 0xb3, 0xa4, 0x53, 0xe3, 0x7a, 0x0d, 0x5f, 0x7b,
+};
+static const unsigned char kat1847_addin0[] = {
+ 0x1b, 0xd8, 0x0d, 0xb1, 0xd7, 0x40, 0x22, 0x34, 0x29, 0x80, 0x8c, 0x1e,
+ 0x09, 0xce, 0xf6, 0x90, 0xc3, 0x8f, 0xaf, 0x31, 0xdc, 0x3b, 0xf2, 0x94,
+ 0x94, 0xce, 0xf3, 0x4a, 0x74, 0xa6, 0x89, 0x72,
+};
+static const unsigned char kat1847_addin1[] = {
+ 0x19, 0xb3, 0x6f, 0x90, 0x75, 0xb1, 0x0e, 0x91, 0x59, 0xa8, 0x99, 0x54,
+ 0xdb, 0xc8, 0x35, 0x0a, 0x72, 0x2d, 0x1b, 0x21, 0x14, 0xd0, 0xf9, 0x3a,
+ 0xfb, 0x9b, 0xba, 0x0c, 0xc5, 0xa7, 0x45, 0x9e,
+};
+static const unsigned char kat1847_retbits[] = {
+ 0xf6, 0xe8, 0x4c, 0x6e, 0x16, 0x53, 0xe1, 0xcf, 0x38, 0xd3, 0xdd, 0xac,
+ 0x0c, 0x02, 0xbe, 0x3c, 0xbb, 0xdc, 0x07, 0x12, 0xf7, 0xf7, 0x9e, 0x15,
+ 0x9b, 0xbc, 0x50, 0x19, 0xc4, 0x19, 0x6a, 0xba, 0x13, 0x33, 0xd3, 0x4a,
+ 0xed, 0xa7, 0x94, 0xa8, 0x66, 0x22, 0xf5, 0xb9, 0x26, 0xf4, 0xce, 0x92,
+ 0x9d, 0xe9, 0xd8, 0xee, 0x04, 0x60, 0x43, 0xae, 0x48, 0x93, 0xf6, 0x7c,
+ 0x19, 0x57, 0x2b, 0xf7,
+};
+static const struct drbg_kat_pr_false kat1847_t = {
+ 1, kat1847_entropyin, kat1847_nonce, kat1847_persstr,
+ kat1847_entropyinreseed, kat1847_addinreseed, kat1847_addin0,
+ kat1847_addin1, kat1847_retbits
+};
+static const struct drbg_kat kat1847 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1847_t
+};
+
+static const unsigned char kat1848_entropyin[] = {
+ 0x89, 0xe5, 0x82, 0x55, 0x8a, 0x26, 0xfc, 0x33, 0xd4, 0x04, 0x8a, 0xac,
+ 0xa2, 0xb5, 0xba, 0x4d, 0x7c, 0x0f, 0xcb, 0x70, 0xa2, 0x5a, 0xd7, 0x54,
+};
+static const unsigned char kat1848_nonce[] = {
+ 0x3f, 0xd2, 0xd1, 0x91, 0xd9, 0x66, 0xb0, 0xd5, 0x53, 0xd1, 0x4e, 0xf3,
+ 0xc5, 0x13, 0x5d, 0x35,
+};
+static const unsigned char kat1848_persstr[] = {
+ 0x4b, 0x68, 0xda, 0x99, 0xc5, 0xa9, 0x95, 0xf4, 0xa2, 0x03, 0xa8, 0xd1,
+ 0xc8, 0xdc, 0x85, 0xa2, 0xcd, 0x96, 0xda, 0x5d, 0xd6, 0x6a, 0x8f, 0xed,
+ 0x10, 0x8d, 0x21, 0x3e, 0x34, 0x72, 0x07, 0x25,
+};
+static const unsigned char kat1848_entropyinreseed[] = {
+ 0x84, 0xe5, 0x88, 0xa5, 0xa5, 0x95, 0xab, 0x01, 0xdb, 0x9c, 0xc1, 0xd0,
+ 0x5f, 0x93, 0x2c, 0xc4, 0x2d, 0x62, 0x3f, 0x7e, 0xff, 0x59, 0x66, 0x51,
+};
+static const unsigned char kat1848_addinreseed[] = {
+ 0x58, 0x7f, 0x52, 0x66, 0xb6, 0xd7, 0x28, 0x43, 0x55, 0x74, 0x94, 0xde,
+ 0xcf, 0xa5, 0xf7, 0x84, 0x14, 0x28, 0xf8, 0x96, 0xc6, 0x50, 0x46, 0xbe,
+ 0xa9, 0x46, 0x81, 0x15, 0xe8, 0xeb, 0xcc, 0xbe,
+};
+static const unsigned char kat1848_addin0[] = {
+ 0x73, 0x15, 0x43, 0xe0, 0xd0, 0xb3, 0xa9, 0x13, 0xe0, 0x13, 0x83, 0x05,
+ 0x44, 0x12, 0x25, 0x0a, 0x26, 0x7b, 0x99, 0x17, 0x41, 0xb5, 0xe8, 0x36,
+ 0x12, 0xba, 0xe7, 0xc6, 0x23, 0x4d, 0xa3, 0xec,
+};
+static const unsigned char kat1848_addin1[] = {
+ 0x6f, 0xaf, 0x16, 0x1b, 0xa8, 0xe1, 0xd6, 0xa6, 0x5a, 0x21, 0xf5, 0x06,
+ 0x20, 0x76, 0x4a, 0x28, 0xdb, 0x12, 0x8a, 0x55, 0xea, 0xe9, 0x27, 0x50,
+ 0xf5, 0xeb, 0x07, 0x49, 0xab, 0x2a, 0x5e, 0xf5,
+};
+static const unsigned char kat1848_retbits[] = {
+ 0x15, 0x91, 0x30, 0x65, 0x13, 0x3a, 0xb3, 0x1c, 0xeb, 0x6c, 0xb6, 0xd0,
+ 0x73, 0xdb, 0x1b, 0x56, 0x34, 0x79, 0x2d, 0xa4, 0x60, 0x67, 0x31, 0x09,
+ 0x71, 0x6a, 0x3f, 0x76, 0x33, 0x82, 0x4f, 0x62, 0xd7, 0x40, 0xbf, 0xe5,
+ 0x05, 0x9a, 0xd3, 0xa9, 0x91, 0x1e, 0xe2, 0xdf, 0x27, 0xcc, 0x22, 0x66,
+ 0x1e, 0xaa, 0x00, 0x81, 0xf0, 0x75, 0xea, 0x26, 0x35, 0x3c, 0x63, 0x47,
+ 0x45, 0x01, 0x4e, 0x0b,
+};
+static const struct drbg_kat_pr_false kat1848_t = {
+ 2, kat1848_entropyin, kat1848_nonce, kat1848_persstr,
+ kat1848_entropyinreseed, kat1848_addinreseed, kat1848_addin0,
+ kat1848_addin1, kat1848_retbits
+};
+static const struct drbg_kat kat1848 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1848_t
+};
+
+static const unsigned char kat1849_entropyin[] = {
+ 0x05, 0x10, 0x6b, 0x71, 0xaa, 0x27, 0x41, 0x1b, 0xf5, 0x1d, 0xd3, 0x86,
+ 0x2c, 0x15, 0x0d, 0xb3, 0x56, 0xc9, 0x73, 0x62, 0x33, 0xd1, 0x6f, 0x64,
+};
+static const unsigned char kat1849_nonce[] = {
+ 0xb1, 0x96, 0x0f, 0x10, 0x05, 0xf2, 0x0d, 0x6f, 0xfd, 0x10, 0xdb, 0x51,
+ 0xdc, 0x28, 0x9e, 0xcd,
+};
+static const unsigned char kat1849_persstr[] = {
+ 0x29, 0x79, 0x47, 0x4c, 0x07, 0x99, 0xb3, 0x5f, 0x94, 0xda, 0x68, 0x13,
+ 0xb2, 0x64, 0x4b, 0x3a, 0x79, 0xfa, 0x83, 0xc6, 0xc3, 0xda, 0x5f, 0xff,
+ 0xc8, 0x2f, 0x4e, 0x0f, 0x66, 0x1e, 0xd9, 0x2d,
+};
+static const unsigned char kat1849_entropyinreseed[] = {
+ 0x52, 0xff, 0x44, 0x30, 0xbf, 0x26, 0x59, 0x32, 0xee, 0xd4, 0x2c, 0x8c,
+ 0x70, 0xeb, 0xdb, 0x13, 0x05, 0x00, 0xf8, 0x11, 0x1a, 0x29, 0xfb, 0x5f,
+};
+static const unsigned char kat1849_addinreseed[] = {
+ 0xce, 0x48, 0x40, 0xa6, 0x5a, 0xb3, 0xcb, 0x97, 0x42, 0xb7, 0xaa, 0x58,
+ 0x2e, 0x42, 0x8f, 0x85, 0x1a, 0x70, 0xd1, 0x8d, 0xd9, 0x16, 0xde, 0x63,
+ 0x64, 0x7f, 0xe3, 0xfa, 0x2b, 0xd9, 0x29, 0x94,
+};
+static const unsigned char kat1849_addin0[] = {
+ 0x4d, 0x6d, 0xba, 0x3f, 0xe5, 0x20, 0x98, 0xe4, 0xf5, 0x70, 0x12, 0x41,
+ 0x97, 0x48, 0x6d, 0x8c, 0xd9, 0xc6, 0x06, 0x21, 0x0f, 0x4f, 0x21, 0x2e,
+ 0x98, 0xb4, 0x5f, 0x10, 0x4a, 0xcc, 0x17, 0x72,
+};
+static const unsigned char kat1849_addin1[] = {
+ 0x94, 0x29, 0xe5, 0x10, 0x01, 0x1b, 0xcd, 0xd1, 0xb4, 0x3a, 0x8b, 0x84,
+ 0x1d, 0x9a, 0x75, 0xf1, 0x4c, 0x66, 0x55, 0xa5, 0x23, 0x2e, 0xf0, 0x84,
+ 0x77, 0xa5, 0x4e, 0xbd, 0x14, 0x48, 0x83, 0xfc,
+};
+static const unsigned char kat1849_retbits[] = {
+ 0x6a, 0x7f, 0xd0, 0x7f, 0xd4, 0x06, 0x3f, 0xd6, 0xef, 0xa3, 0x59, 0x7a,
+ 0xd8, 0xb8, 0x17, 0x92, 0xc7, 0x9e, 0x74, 0x8e, 0x8e, 0xd6, 0xca, 0xb0,
+ 0x09, 0xe4, 0xb8, 0x41, 0xd9, 0x88, 0xd9, 0x72, 0x57, 0xeb, 0xe0, 0x25,
+ 0xad, 0x56, 0x19, 0xe1, 0xdd, 0x9d, 0xab, 0xf1, 0xef, 0x1c, 0x59, 0xa4,
+ 0x54, 0x49, 0x90, 0xe0, 0xc6, 0x81, 0x93, 0xe5, 0x9c, 0x28, 0x64, 0x7b,
+ 0xd6, 0x96, 0xa9, 0xc7,
+};
+static const struct drbg_kat_pr_false kat1849_t = {
+ 3, kat1849_entropyin, kat1849_nonce, kat1849_persstr,
+ kat1849_entropyinreseed, kat1849_addinreseed, kat1849_addin0,
+ kat1849_addin1, kat1849_retbits
+};
+static const struct drbg_kat kat1849 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1849_t
+};
+
+static const unsigned char kat1850_entropyin[] = {
+ 0x0c, 0x5e, 0xc7, 0x88, 0x1c, 0xbf, 0x99, 0x57, 0xe1, 0x09, 0xd8, 0xb9,
+ 0x76, 0xf8, 0x2b, 0xff, 0x1d, 0xf2, 0xa9, 0x45, 0xfa, 0x6d, 0xae, 0x0c,
+};
+static const unsigned char kat1850_nonce[] = {
+ 0xf1, 0x8e, 0xf1, 0x25, 0x0b, 0x60, 0x8d, 0xbf, 0x06, 0x7c, 0xb6, 0xab,
+ 0xee, 0x21, 0x6b, 0x67,
+};
+static const unsigned char kat1850_persstr[] = {
+ 0xc6, 0x4f, 0xda, 0x60, 0x0e, 0x24, 0x95, 0x3f, 0x36, 0xeb, 0x53, 0x05,
+ 0x89, 0x05, 0xcc, 0x2e, 0x94, 0xa4, 0xe6, 0x61, 0xe1, 0xc5, 0x4a, 0xf9,
+ 0xf8, 0xb2, 0x9f, 0x48, 0xa9, 0x6c, 0x69, 0xfb,
+};
+static const unsigned char kat1850_entropyinreseed[] = {
+ 0x30, 0xdf, 0x03, 0xd1, 0xa3, 0x2d, 0xb7, 0xa7, 0x4c, 0x33, 0x8c, 0x80,
+ 0x33, 0x1b, 0x04, 0x30, 0x2e, 0xde, 0x61, 0x6d, 0xfd, 0x23, 0x05, 0x3e,
+};
+static const unsigned char kat1850_addinreseed[] = {
+ 0x27, 0x40, 0x98, 0x30, 0xb6, 0x07, 0xcd, 0x33, 0x52, 0x06, 0x66, 0xdd,
+ 0x29, 0x1c, 0x3d, 0xd2, 0x0c, 0x38, 0xbe, 0xd5, 0x29, 0x99, 0xc1, 0x6f,
+ 0xb7, 0x28, 0x77, 0xc5, 0x95, 0x4e, 0x94, 0xe4,
+};
+static const unsigned char kat1850_addin0[] = {
+ 0xb1, 0xf2, 0xf1, 0x6d, 0xeb, 0x47, 0xa7, 0x29, 0x0d, 0x79, 0x25, 0x1c,
+ 0x4a, 0xec, 0x38, 0xa0, 0x5d, 0xb3, 0x54, 0x96, 0xfc, 0x49, 0x89, 0x29,
+ 0x65, 0x3d, 0xb5, 0x40, 0xd3, 0x01, 0xf9, 0x39,
+};
+static const unsigned char kat1850_addin1[] = {
+ 0x91, 0x8d, 0xb2, 0xc3, 0x1f, 0xd4, 0x0d, 0x06, 0xf0, 0x74, 0xb0, 0xf9,
+ 0x2a, 0x13, 0x27, 0xf8, 0x1d, 0x8c, 0xbc, 0x47, 0xd8, 0x35, 0xb0, 0x8a,
+ 0x69, 0x8b, 0x08, 0x3e, 0x57, 0x59, 0xde, 0xdf,
+};
+static const unsigned char kat1850_retbits[] = {
+ 0xd1, 0x22, 0x39, 0xc3, 0x0a, 0x44, 0x58, 0x2e, 0xd0, 0x58, 0xf2, 0xb4,
+ 0x35, 0xe0, 0x75, 0xba, 0x23, 0x41, 0x69, 0xdb, 0xf3, 0x02, 0x70, 0xd7,
+ 0x5d, 0x00, 0xeb, 0xf3, 0x8e, 0xbf, 0x32, 0xf5, 0xd4, 0x33, 0xad, 0x1b,
+ 0xb8, 0xd8, 0xae, 0x2b, 0x15, 0x3f, 0x6f, 0x3f, 0xbf, 0xed, 0x74, 0x94,
+ 0xf5, 0xab, 0x9a, 0x9c, 0x19, 0x25, 0x6c, 0x4b, 0x10, 0xa9, 0xfc, 0xcb,
+ 0x28, 0x29, 0x82, 0x87,
+};
+static const struct drbg_kat_pr_false kat1850_t = {
+ 4, kat1850_entropyin, kat1850_nonce, kat1850_persstr,
+ kat1850_entropyinreseed, kat1850_addinreseed, kat1850_addin0,
+ kat1850_addin1, kat1850_retbits
+};
+static const struct drbg_kat kat1850 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1850_t
+};
+
+static const unsigned char kat1851_entropyin[] = {
+ 0x13, 0x30, 0x77, 0xd8, 0x2c, 0x26, 0xf9, 0x44, 0x8a, 0x28, 0x90, 0x0f,
+ 0xe6, 0xba, 0xde, 0x08, 0x0b, 0x38, 0x16, 0xc3, 0xf8, 0xc8, 0x98, 0xfd,
+};
+static const unsigned char kat1851_nonce[] = {
+ 0x68, 0x72, 0x57, 0x45, 0x96, 0x0d, 0x17, 0x4e, 0xef, 0x8a, 0x76, 0x2b,
+ 0xc8, 0x7c, 0x0b, 0x9f,
+};
+static const unsigned char kat1851_persstr[] = {
+ 0x45, 0x9b, 0x7a, 0x15, 0x4d, 0x7a, 0x66, 0xdc, 0x78, 0x7b, 0x89, 0xe5,
+ 0xdb, 0x98, 0x1c, 0x69, 0x0e, 0x95, 0xd3, 0x11, 0xd8, 0xa1, 0x68, 0xc4,
+ 0xd2, 0x6c, 0x48, 0x78, 0x90, 0x26, 0x64, 0xb9,
+};
+static const unsigned char kat1851_entropyinreseed[] = {
+ 0xf1, 0xea, 0x44, 0xf0, 0x20, 0xa5, 0x57, 0x2a, 0xde, 0x8a, 0x84, 0x3f,
+ 0xdf, 0x1e, 0x9c, 0x4e, 0x5b, 0x0a, 0x06, 0x77, 0x56, 0x67, 0x0c, 0x1e,
+};
+static const unsigned char kat1851_addinreseed[] = {
+ 0xf3, 0x73, 0x05, 0x96, 0x38, 0xdc, 0xb7, 0x60, 0x2a, 0x30, 0x88, 0x73,
+ 0x0b, 0xa0, 0x0c, 0xb3, 0x17, 0x90, 0x76, 0xa2, 0x79, 0x52, 0xd4, 0x65,
+ 0xfb, 0x01, 0x59, 0xf4, 0x6a, 0x19, 0x17, 0x91,
+};
+static const unsigned char kat1851_addin0[] = {
+ 0x20, 0x4c, 0x3b, 0x20, 0xea, 0x88, 0x28, 0x1b, 0x5c, 0x76, 0x68, 0xbd,
+ 0x47, 0x4f, 0xa4, 0x3f, 0x61, 0x92, 0x1f, 0x70, 0x2b, 0xa6, 0xdf, 0x17,
+ 0x61, 0x6a, 0xd6, 0xe9, 0xeb, 0x14, 0x90, 0x45,
+};
+static const unsigned char kat1851_addin1[] = {
+ 0xa0, 0x04, 0xcd, 0x5d, 0x29, 0x4a, 0x4a, 0x96, 0xb7, 0x6b, 0x68, 0x9c,
+ 0xc7, 0x77, 0xf4, 0xf6, 0x33, 0x57, 0x85, 0x8d, 0x7e, 0x51, 0x21, 0x27,
+ 0xca, 0x9c, 0x6e, 0x9a, 0xdf, 0xbc, 0x54, 0x7a,
+};
+static const unsigned char kat1851_retbits[] = {
+ 0x70, 0x5a, 0xf2, 0x14, 0x7b, 0x04, 0x24, 0x8b, 0x0b, 0x7c, 0xd1, 0x7b,
+ 0x5b, 0x6f, 0xb8, 0x91, 0xf3, 0xb1, 0xa8, 0x42, 0x0e, 0x25, 0x3c, 0xc7,
+ 0x0c, 0x42, 0xf8, 0xb3, 0xcc, 0xf7, 0x79, 0xcc, 0x12, 0x8b, 0xa0, 0x09,
+ 0x58, 0x17, 0x40, 0xd8, 0x0d, 0x2e, 0x4c, 0xfa, 0xe6, 0x62, 0x43, 0x40,
+ 0xef, 0xe1, 0xa6, 0xa9, 0x20, 0xc2, 0x9a, 0xfd, 0x8a, 0xf6, 0x3c, 0xbe,
+ 0x0f, 0x66, 0x7c, 0xe3,
+};
+static const struct drbg_kat_pr_false kat1851_t = {
+ 5, kat1851_entropyin, kat1851_nonce, kat1851_persstr,
+ kat1851_entropyinreseed, kat1851_addinreseed, kat1851_addin0,
+ kat1851_addin1, kat1851_retbits
+};
+static const struct drbg_kat kat1851 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1851_t
+};
+
+static const unsigned char kat1852_entropyin[] = {
+ 0x05, 0x09, 0xdf, 0x07, 0x08, 0x54, 0x4e, 0x7a, 0x57, 0x5b, 0x3d, 0x5b,
+ 0x9e, 0x07, 0xb4, 0x9e, 0xe9, 0x35, 0x19, 0xfc, 0x33, 0xe0, 0x8f, 0x99,
+};
+static const unsigned char kat1852_nonce[] = {
+ 0x02, 0xc8, 0x66, 0x33, 0x6f, 0xfe, 0x75, 0xdf, 0x64, 0x7f, 0x5c, 0x5f,
+ 0x81, 0xa1, 0x18, 0x8f,
+};
+static const unsigned char kat1852_persstr[] = {
+ 0x3d, 0xda, 0xd3, 0xee, 0x67, 0xd0, 0x64, 0x14, 0xb7, 0x88, 0x25, 0xfb,
+ 0x0e, 0x75, 0x77, 0x8e, 0xd0, 0x50, 0xdb, 0x00, 0x6b, 0xef, 0x2b, 0x01,
+ 0x88, 0xd1, 0x9a, 0x15, 0x62, 0xec, 0xb4, 0x15,
+};
+static const unsigned char kat1852_entropyinreseed[] = {
+ 0x56, 0x38, 0xe2, 0xa2, 0x2e, 0x7b, 0x1a, 0xb2, 0x0a, 0xf2, 0x7d, 0x83,
+ 0xde, 0x26, 0xc3, 0xcd, 0xee, 0x62, 0x5a, 0x81, 0x1d, 0xc7, 0x50, 0x79,
+};
+static const unsigned char kat1852_addinreseed[] = {
+ 0x41, 0xfb, 0xd0, 0xae, 0xed, 0x30, 0x96, 0x66, 0xb0, 0x73, 0xaf, 0xb0,
+ 0x14, 0x11, 0xb7, 0xc4, 0x62, 0x67, 0x3d, 0xb9, 0x20, 0x26, 0x37, 0x03,
+ 0x01, 0x42, 0x32, 0x7a, 0xc1, 0x09, 0x25, 0x6d,
+};
+static const unsigned char kat1852_addin0[] = {
+ 0x96, 0xc1, 0x7e, 0x3c, 0x80, 0xb0, 0x90, 0x57, 0x13, 0xb3, 0x21, 0x6d,
+ 0xd1, 0x19, 0xe9, 0xc0, 0xb5, 0xa4, 0xe8, 0x8e, 0x55, 0xa2, 0x01, 0xb4,
+ 0x30, 0x7b, 0x0d, 0x44, 0xd1, 0xf7, 0xe2, 0x4c,
+};
+static const unsigned char kat1852_addin1[] = {
+ 0x40, 0x90, 0x5a, 0xce, 0xd9, 0x87, 0x18, 0x1f, 0x0c, 0x5e, 0x3b, 0xb4,
+ 0xdf, 0x7e, 0xa9, 0x99, 0x0c, 0x87, 0xcc, 0xc5, 0x87, 0x37, 0x0b, 0x92,
+ 0x37, 0xce, 0xa6, 0x5f, 0x80, 0x37, 0x86, 0x27,
+};
+static const unsigned char kat1852_retbits[] = {
+ 0x7f, 0x68, 0xae, 0x02, 0x37, 0x99, 0xa3, 0x28, 0xda, 0xbe, 0x2b, 0x18,
+ 0x22, 0x5b, 0x51, 0x0b, 0x2d, 0xbc, 0x89, 0xd3, 0xfd, 0x85, 0x40, 0xff,
+ 0xc2, 0x4a, 0x41, 0x90, 0x67, 0x03, 0xb3, 0x21, 0x2b, 0xf8, 0x10, 0x09,
+ 0x0d, 0x6d, 0x2d, 0x0a, 0x53, 0x66, 0xfe, 0x64, 0xbf, 0x8f, 0xf4, 0xf8,
+ 0x76, 0x69, 0x7b, 0x7b, 0xf8, 0x09, 0x97, 0x67, 0x85, 0x3b, 0xed, 0xc3,
+ 0xf3, 0x7a, 0x34, 0x95,
+};
+static const struct drbg_kat_pr_false kat1852_t = {
+ 6, kat1852_entropyin, kat1852_nonce, kat1852_persstr,
+ kat1852_entropyinreseed, kat1852_addinreseed, kat1852_addin0,
+ kat1852_addin1, kat1852_retbits
+};
+static const struct drbg_kat kat1852 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1852_t
+};
+
+static const unsigned char kat1853_entropyin[] = {
+ 0xd0, 0xdd, 0x32, 0x9f, 0x93, 0x4d, 0xce, 0x8b, 0xf0, 0x87, 0x16, 0x01,
+ 0x40, 0x9c, 0x2e, 0x21, 0xcb, 0xf0, 0x35, 0x03, 0x04, 0xd3, 0xa7, 0x9c,
+};
+static const unsigned char kat1853_nonce[] = {
+ 0xa3, 0xa0, 0x4c, 0x16, 0x44, 0xd1, 0xba, 0x80, 0xea, 0xfd, 0xde, 0x17,
+ 0xc4, 0x4e, 0x08, 0xdc,
+};
+static const unsigned char kat1853_persstr[] = {
+ 0xda, 0x53, 0xb0, 0x0d, 0x0a, 0xf5, 0x64, 0x22, 0x1e, 0x37, 0xcd, 0x68,
+ 0x1c, 0xbb, 0x63, 0x9a, 0x77, 0x70, 0x4b, 0x37, 0x6a, 0x59, 0x8e, 0x16,
+ 0x4b, 0x05, 0x6c, 0xa1, 0xae, 0x4c, 0x1c, 0x50,
+};
+static const unsigned char kat1853_entropyinreseed[] = {
+ 0x2e, 0x50, 0xff, 0xc1, 0x62, 0x75, 0x93, 0xc2, 0x55, 0xcc, 0x72, 0xa9,
+ 0x98, 0xed, 0xfc, 0x90, 0x67, 0xa3, 0x1e, 0xee, 0x74, 0xfd, 0xf0, 0xb7,
+};
+static const unsigned char kat1853_addinreseed[] = {
+ 0x31, 0x4d, 0x8e, 0xa4, 0x09, 0x69, 0x70, 0xae, 0x48, 0xd3, 0x2f, 0x40,
+ 0x2b, 0x0c, 0xd7, 0x5e, 0xea, 0x72, 0xca, 0x46, 0x3d, 0xa3, 0x05, 0x75,
+ 0x2e, 0xba, 0x67, 0xbf, 0x23, 0xf0, 0x83, 0xa2,
+};
+static const unsigned char kat1853_addin0[] = {
+ 0xac, 0x23, 0x73, 0x13, 0x07, 0x0a, 0x98, 0x06, 0x03, 0x4b, 0xe9, 0xdb,
+ 0x87, 0x99, 0x40, 0x56, 0xf6, 0x6a, 0xb0, 0x6b, 0x00, 0x0e, 0xee, 0x7d,
+ 0x8e, 0x1d, 0xde, 0x9e, 0xac, 0x24, 0xf8, 0x98,
+};
+static const unsigned char kat1853_addin1[] = {
+ 0xc2, 0x45, 0xee, 0x9a, 0xc6, 0x08, 0x00, 0xb8, 0xf3, 0xd1, 0x35, 0x15,
+ 0xc5, 0x10, 0x2e, 0xda, 0xdb, 0xf3, 0x73, 0xe1, 0x33, 0xab, 0x8f, 0x81,
+ 0xd5, 0x1a, 0x3c, 0xe6, 0xe2, 0x26, 0x82, 0x95,
+};
+static const unsigned char kat1853_retbits[] = {
+ 0xb2, 0x36, 0x08, 0x70, 0xea, 0x54, 0xd6, 0xa2, 0x40, 0x37, 0x2b, 0x7e,
+ 0xd8, 0x2b, 0x25, 0xb4, 0x97, 0x89, 0x7b, 0xdc, 0x5f, 0x23, 0x74, 0x64,
+ 0x0d, 0x06, 0xf2, 0x2e, 0x2a, 0xe0, 0x78, 0x22, 0xf9, 0x9a, 0x76, 0x8f,
+ 0xc9, 0x5f, 0x50, 0x84, 0x93, 0x24, 0x1f, 0x57, 0x3d, 0x5f, 0x86, 0x5e,
+ 0x87, 0x80, 0xa3, 0xb2, 0x79, 0x63, 0xe2, 0xb4, 0x51, 0x00, 0xae, 0xb7,
+ 0x1a, 0x38, 0x33, 0x2b,
+};
+static const struct drbg_kat_pr_false kat1853_t = {
+ 7, kat1853_entropyin, kat1853_nonce, kat1853_persstr,
+ kat1853_entropyinreseed, kat1853_addinreseed, kat1853_addin0,
+ kat1853_addin1, kat1853_retbits
+};
+static const struct drbg_kat kat1853 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1853_t
+};
+
+static const unsigned char kat1854_entropyin[] = {
+ 0x81, 0x88, 0x9a, 0x65, 0x45, 0x8e, 0x06, 0xf4, 0x48, 0xa6, 0x16, 0x35,
+ 0x3e, 0x1f, 0xcc, 0x5f, 0x82, 0xdc, 0x1b, 0xb7, 0x4b, 0x55, 0x41, 0xc7,
+};
+static const unsigned char kat1854_nonce[] = {
+ 0x39, 0x04, 0x31, 0x44, 0xb4, 0x5f, 0xeb, 0x3a, 0x3a, 0x49, 0x23, 0xab,
+ 0x33, 0x64, 0x6a, 0x71,
+};
+static const unsigned char kat1854_persstr[] = {
+ 0x3d, 0xf6, 0x37, 0x71, 0xf9, 0xf4, 0x04, 0x79, 0xd1, 0x2a, 0x1f, 0x24,
+ 0x6e, 0xf6, 0xe6, 0x59, 0x1b, 0x18, 0x18, 0x7e, 0xd1, 0x1d, 0xbd, 0xf0,
+ 0x4f, 0x1f, 0xd4, 0x50, 0xf0, 0xd2, 0x1c, 0x38,
+};
+static const unsigned char kat1854_entropyinreseed[] = {
+ 0x62, 0xb1, 0x40, 0xdc, 0x4b, 0x7d, 0x68, 0x5d, 0x82, 0xf7, 0x4c, 0xd1,
+ 0x33, 0xfc, 0x49, 0xcc, 0x00, 0x60, 0xc4, 0xeb, 0xb9, 0xf1, 0xf6, 0xdd,
+};
+static const unsigned char kat1854_addinreseed[] = {
+ 0x0b, 0x33, 0x1b, 0xd3, 0x8c, 0x94, 0x3a, 0xb1, 0x1f, 0xd1, 0xa2, 0xee,
+ 0xb5, 0x63, 0x5c, 0xe6, 0x6d, 0x73, 0x25, 0xf2, 0x61, 0xf0, 0x28, 0x95,
+ 0x3c, 0x3b, 0x63, 0x02, 0x63, 0x12, 0x20, 0x4e,
+};
+static const unsigned char kat1854_addin0[] = {
+ 0x13, 0xfe, 0x4d, 0x09, 0x02, 0xde, 0x13, 0x62, 0x78, 0xb1, 0x4e, 0xd7,
+ 0x74, 0x94, 0x79, 0x84, 0x44, 0xb3, 0xda, 0x6e, 0x03, 0xed, 0xde, 0x64,
+ 0xb0, 0xdf, 0x11, 0xe2, 0x9b, 0x25, 0xcf, 0xcb,
+};
+static const unsigned char kat1854_addin1[] = {
+ 0xe8, 0x0f, 0x4a, 0x99, 0x01, 0x4a, 0x52, 0x0d, 0x0d, 0x4f, 0xdd, 0xcb,
+ 0xd9, 0xb7, 0x38, 0x11, 0x10, 0x3c, 0xd9, 0x8e, 0x12, 0xe1, 0x0a, 0x69,
+ 0x2d, 0x45, 0x4f, 0x7c, 0x24, 0x5e, 0x5e, 0xe9,
+};
+static const unsigned char kat1854_retbits[] = {
+ 0x14, 0x2d, 0x3d, 0xc2, 0x0f, 0x17, 0x78, 0x37, 0x82, 0x01, 0xb3, 0xda,
+ 0x58, 0xac, 0x7f, 0x32, 0xa0, 0x5a, 0xba, 0x7d, 0x91, 0xae, 0xc7, 0x55,
+ 0xf3, 0x2e, 0xf3, 0xfd, 0xd8, 0x0b, 0xa2, 0xea, 0x31, 0x10, 0xcd, 0x76,
+ 0xb7, 0xad, 0x3c, 0x54, 0xc7, 0x8d, 0x14, 0xed, 0xa6, 0x34, 0xc7, 0x4e,
+ 0xa8, 0x3b, 0x82, 0xf6, 0x31, 0xf4, 0xcf, 0x01, 0x75, 0x4a, 0x58, 0x33,
+ 0x4e, 0xa9, 0x31, 0x6e,
+};
+static const struct drbg_kat_pr_false kat1854_t = {
+ 8, kat1854_entropyin, kat1854_nonce, kat1854_persstr,
+ kat1854_entropyinreseed, kat1854_addinreseed, kat1854_addin0,
+ kat1854_addin1, kat1854_retbits
+};
+static const struct drbg_kat kat1854 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1854_t
+};
+
+static const unsigned char kat1855_entropyin[] = {
+ 0x03, 0xec, 0x84, 0x37, 0x99, 0x44, 0xaf, 0xf7, 0xe0, 0xad, 0xb0, 0x8c,
+ 0x92, 0x91, 0x12, 0x7e, 0xd3, 0x7e, 0xcb, 0x05, 0xa3, 0xec, 0x9e, 0x39,
+};
+static const unsigned char kat1855_nonce[] = {
+ 0xc6, 0x91, 0xd7, 0x43, 0x54, 0x31, 0xe1, 0xd8, 0x11, 0xe4, 0xa7, 0x43,
+ 0xe5, 0x2b, 0x71, 0x35,
+};
+static const unsigned char kat1855_persstr[] = {
+ 0xd9, 0x7f, 0x3f, 0xd8, 0x6b, 0xa4, 0x12, 0xdb, 0xe6, 0xd4, 0xba, 0xe7,
+ 0xef, 0x32, 0xb4, 0xd1, 0x06, 0x08, 0x6a, 0xde, 0xa3, 0xf4, 0xdf, 0x74,
+ 0xc5, 0x6f, 0x65, 0xe2, 0xe4, 0x82, 0x09, 0xdb,
+};
+static const unsigned char kat1855_entropyinreseed[] = {
+ 0x41, 0xd8, 0x86, 0xd8, 0x52, 0x27, 0x78, 0x6a, 0x30, 0x87, 0x76, 0xad,
+ 0x7c, 0xa5, 0x29, 0xdd, 0x1f, 0x3e, 0x9b, 0x7c, 0x4c, 0x09, 0xa2, 0x12,
+};
+static const unsigned char kat1855_addinreseed[] = {
+ 0x2f, 0x34, 0x43, 0xee, 0xc2, 0x9c, 0x51, 0x2a, 0x55, 0x77, 0x0c, 0x4c,
+ 0xa6, 0xa3, 0xf4, 0x63, 0x7f, 0xa9, 0x41, 0x52, 0xd7, 0x4c, 0xae, 0xa5,
+ 0xaa, 0x4b, 0xac, 0x9d, 0x21, 0x58, 0x4d, 0x22,
+};
+static const unsigned char kat1855_addin0[] = {
+ 0x32, 0x25, 0x47, 0x0b, 0x5b, 0x9b, 0x52, 0x81, 0x56, 0x03, 0x89, 0xde,
+ 0x7a, 0x7e, 0x3f, 0xd5, 0x31, 0x49, 0xc5, 0xaa, 0xbf, 0x94, 0x07, 0x74,
+ 0x87, 0x78, 0xf6, 0xde, 0x9b, 0xb5, 0x1b, 0xf2,
+};
+static const unsigned char kat1855_addin1[] = {
+ 0x4b, 0xa5, 0x9a, 0x6f, 0xb8, 0x7b, 0x8d, 0x97, 0x7c, 0x6f, 0x92, 0xac,
+ 0x3c, 0x62, 0x39, 0x97, 0xf7, 0x8a, 0x67, 0xa6, 0xa0, 0x5f, 0x0d, 0x15,
+ 0x19, 0x22, 0xda, 0x69, 0x26, 0x09, 0xf5, 0x21,
+};
+static const unsigned char kat1855_retbits[] = {
+ 0x14, 0xc6, 0x93, 0xc3, 0x7a, 0x43, 0x3e, 0x2c, 0xa1, 0x6f, 0x30, 0xb4,
+ 0x17, 0xab, 0xe5, 0x65, 0x10, 0x4b, 0x41, 0x89, 0x8d, 0x6a, 0xcb, 0x75,
+ 0xfc, 0x3e, 0x86, 0x66, 0x08, 0xcb, 0xe5, 0x12, 0xac, 0xd8, 0x56, 0xd0,
+ 0xef, 0xb2, 0xcb, 0xbf, 0x82, 0xe8, 0xe9, 0x31, 0x01, 0xf0, 0x33, 0x66,
+ 0xa7, 0x86, 0x88, 0xe1, 0x44, 0x3f, 0xaf, 0xdc, 0xfd, 0x82, 0xe5, 0x85,
+ 0x7a, 0x8e, 0x51, 0xe6,
+};
+static const struct drbg_kat_pr_false kat1855_t = {
+ 9, kat1855_entropyin, kat1855_nonce, kat1855_persstr,
+ kat1855_entropyinreseed, kat1855_addinreseed, kat1855_addin0,
+ kat1855_addin1, kat1855_retbits
+};
+static const struct drbg_kat kat1855 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1855_t
+};
+
+static const unsigned char kat1856_entropyin[] = {
+ 0xd2, 0xac, 0xf0, 0x8b, 0xcc, 0x40, 0xe9, 0xdf, 0xc5, 0x9a, 0x64, 0x06,
+ 0xfc, 0x4e, 0x9c, 0x8b, 0x7e, 0x00, 0x74, 0x0d, 0x58, 0x9b, 0x98, 0xc9,
+};
+static const unsigned char kat1856_nonce[] = {
+ 0x60, 0x23, 0x28, 0x4f, 0xfb, 0x13, 0x8b, 0xc5, 0x94, 0x91, 0xdd, 0x99,
+ 0x37, 0x44, 0x1d, 0xae,
+};
+static const unsigned char kat1856_persstr[] = {
+ 0xb9, 0xc7, 0x53, 0x34, 0x66, 0x9d, 0xf3, 0x1c, 0x8b, 0x6a, 0xbd, 0x9d,
+ 0x25, 0xc4, 0x0f, 0xe3, 0x15, 0xad, 0xfa, 0xd4, 0xc4, 0x3b, 0x2f, 0x68,
+ 0x3e, 0x0c, 0xf2, 0x67, 0x33, 0x59, 0xd6, 0x7f,
+};
+static const unsigned char kat1856_entropyinreseed[] = {
+ 0x4a, 0x89, 0x40, 0xb0, 0x18, 0x0d, 0x21, 0x6b, 0x63, 0x50, 0xb8, 0xb3,
+ 0xea, 0x55, 0xa1, 0xf2, 0x70, 0x7f, 0xed, 0x06, 0xe6, 0x72, 0x3e, 0x42,
+};
+static const unsigned char kat1856_addinreseed[] = {
+ 0xcd, 0x9d, 0xe0, 0x0b, 0x55, 0xff, 0xbe, 0x8e, 0x02, 0xc8, 0x31, 0xc2,
+ 0x98, 0xb3, 0xc1, 0x3a, 0x4c, 0xbc, 0x4c, 0x3c, 0x6e, 0xb7, 0xb2, 0xb6,
+ 0x25, 0x8d, 0xe7, 0xc2, 0xd9, 0x5d, 0x4d, 0x9b,
+};
+static const unsigned char kat1856_addin0[] = {
+ 0xaa, 0x37, 0x54, 0xc1, 0x3d, 0xde, 0x61, 0x6a, 0xa4, 0x62, 0x1f, 0xe0,
+ 0x8b, 0xd2, 0xab, 0xa2, 0x50, 0x87, 0x97, 0x67, 0x03, 0x93, 0x9c, 0x71,
+ 0xe8, 0x48, 0x32, 0xde, 0xbc, 0xf3, 0x98, 0x64,
+};
+static const unsigned char kat1856_addin1[] = {
+ 0x52, 0x06, 0xe7, 0x1f, 0x69, 0xac, 0x98, 0x8e, 0x70, 0x92, 0xcc, 0xfd,
+ 0xea, 0x60, 0x41, 0xae, 0x16, 0x78, 0xab, 0x21, 0x60, 0x77, 0x60, 0xa8,
+ 0x5f, 0x4f, 0xb3, 0xc9, 0x9c, 0x27, 0xa1, 0x5a,
+};
+static const unsigned char kat1856_retbits[] = {
+ 0xa2, 0x7f, 0x43, 0x51, 0xf8, 0x57, 0x33, 0x87, 0xc1, 0xdf, 0x57, 0xf2,
+ 0x0b, 0x75, 0xc1, 0xde, 0x59, 0xf8, 0xbb, 0x42, 0xe2, 0x7f, 0xba, 0x73,
+ 0x1c, 0xf6, 0x08, 0xe7, 0x49, 0xa7, 0x6c, 0x4d, 0xd0, 0x90, 0x4e, 0x2d,
+ 0x13, 0x72, 0x3f, 0xe5, 0x31, 0x8d, 0x9b, 0x69, 0xf1, 0x02, 0x03, 0x62,
+ 0xce, 0x23, 0xdf, 0x7e, 0xfe, 0x2c, 0x02, 0x3c, 0xee, 0x72, 0xfe, 0xfa,
+ 0xe0, 0x4d, 0x1d, 0x82,
+};
+static const struct drbg_kat_pr_false kat1856_t = {
+ 10, kat1856_entropyin, kat1856_nonce, kat1856_persstr,
+ kat1856_entropyinreseed, kat1856_addinreseed, kat1856_addin0,
+ kat1856_addin1, kat1856_retbits
+};
+static const struct drbg_kat kat1856 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1856_t
+};
+
+static const unsigned char kat1857_entropyin[] = {
+ 0x1b, 0x03, 0xf6, 0x89, 0x55, 0x05, 0x65, 0x3d, 0xe5, 0xb3, 0x4c, 0x21,
+ 0xac, 0x40, 0xb5, 0xb9, 0x66, 0x9a, 0x9d, 0xb1, 0x38, 0x88, 0x79, 0x00,
+};
+static const unsigned char kat1857_nonce[] = {
+ 0x3c, 0x76, 0xd7, 0xa2, 0xae, 0x12, 0x20, 0x50, 0x88, 0x6d, 0x23, 0xb6,
+ 0xf5, 0x3f, 0x6d, 0x86,
+};
+static const unsigned char kat1857_persstr[] = {
+ 0x23, 0x4a, 0xde, 0x4d, 0x96, 0x7a, 0xf7, 0xdf, 0x54, 0xd5, 0x01, 0x27,
+ 0x0c, 0xbf, 0xd6, 0x58, 0xd1, 0xc9, 0x6d, 0xee, 0x79, 0xbc, 0xbd, 0x4c,
+ 0xe5, 0x55, 0x25, 0x53, 0xb1, 0x13, 0xef, 0x05,
+};
+static const unsigned char kat1857_entropyinreseed[] = {
+ 0x0e, 0x24, 0x0b, 0x43, 0x6e, 0x48, 0xeb, 0xfd, 0x50, 0xb2, 0xe0, 0x0f,
+ 0xa2, 0xd5, 0xb4, 0xe0, 0x49, 0x76, 0xf7, 0xf8, 0x94, 0xa1, 0xdf, 0x4a,
+};
+static const unsigned char kat1857_addinreseed[] = {
+ 0x9b, 0x43, 0xb7, 0x34, 0xd7, 0x11, 0x98, 0x5f, 0x69, 0x90, 0x0f, 0x6a,
+ 0x0b, 0x09, 0xdc, 0x9f, 0x8e, 0xb0, 0x0a, 0xf4, 0xe5, 0x4f, 0x7f, 0x5b,
+ 0x64, 0xee, 0x09, 0x5b, 0xca, 0xdd, 0x2c, 0x89,
+};
+static const unsigned char kat1857_addin0[] = {
+ 0xf9, 0x1d, 0x3a, 0xb7, 0xca, 0xee, 0xad, 0x5e, 0x2f, 0x29, 0xad, 0xfa,
+ 0x0f, 0xa9, 0x70, 0xc3, 0x7a, 0x96, 0xd6, 0x33, 0xd9, 0xdc, 0x42, 0xe4,
+ 0x27, 0x19, 0x7d, 0x12, 0x1e, 0x34, 0x58, 0x05,
+};
+static const unsigned char kat1857_addin1[] = {
+ 0x3e, 0x97, 0x02, 0x59, 0x15, 0xa5, 0x16, 0xb2, 0x21, 0xf6, 0x27, 0x98,
+ 0x32, 0x45, 0xc2, 0x8a, 0x6a, 0xa6, 0x62, 0xad, 0x78, 0xca, 0x82, 0xb2,
+ 0x95, 0xfd, 0xbc, 0x91, 0x6e, 0x06, 0x2f, 0x02,
+};
+static const unsigned char kat1857_retbits[] = {
+ 0x18, 0x63, 0xad, 0x4e, 0x4d, 0xa5, 0xee, 0x11, 0x31, 0xdc, 0x40, 0xc2,
+ 0xa0, 0x87, 0x81, 0x17, 0x7f, 0xa8, 0xf3, 0x45, 0x19, 0x88, 0x4a, 0xb1,
+ 0xaf, 0x43, 0x6a, 0x4e, 0xa6, 0x9d, 0x0a, 0xca, 0x1b, 0x97, 0x10, 0x86,
+ 0x2b, 0x70, 0x0d, 0x5c, 0x47, 0xbb, 0xd4, 0x8b, 0x56, 0x00, 0x0c, 0xcf,
+ 0xb3, 0xd2, 0x44, 0x67, 0xaf, 0xc5, 0xd1, 0xd6, 0xad, 0x58, 0x11, 0xee,
+ 0x0a, 0x45, 0xdc, 0xec,
+};
+static const struct drbg_kat_pr_false kat1857_t = {
+ 11, kat1857_entropyin, kat1857_nonce, kat1857_persstr,
+ kat1857_entropyinreseed, kat1857_addinreseed, kat1857_addin0,
+ kat1857_addin1, kat1857_retbits
+};
+static const struct drbg_kat kat1857 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1857_t
+};
+
+static const unsigned char kat1858_entropyin[] = {
+ 0xfa, 0xff, 0x69, 0x5a, 0x25, 0x5d, 0xbb, 0x2f, 0xa6, 0x7e, 0x64, 0xaf,
+ 0x83, 0x4c, 0x95, 0xac, 0xc2, 0x72, 0xa9, 0x75, 0x84, 0x2b, 0xcd, 0x35,
+};
+static const unsigned char kat1858_nonce[] = {
+ 0x83, 0x39, 0xa7, 0xd4, 0x9d, 0xbb, 0x6b, 0x36, 0xa8, 0x46, 0x9a, 0xf7,
+ 0x40, 0xc8, 0x7f, 0x27,
+};
+static const unsigned char kat1858_persstr[] = {
+ 0xbb, 0xba, 0xf2, 0x72, 0x49, 0xf3, 0x0e, 0x12, 0x12, 0x98, 0x02, 0x84,
+ 0xb8, 0x37, 0xde, 0x12, 0x01, 0x02, 0x49, 0xef, 0xba, 0x78, 0xa3, 0xf8,
+ 0xc7, 0x65, 0x75, 0x39, 0xea, 0x70, 0x80, 0xc7,
+};
+static const unsigned char kat1858_entropyinreseed[] = {
+ 0x13, 0xb2, 0xbe, 0x94, 0x5b, 0x68, 0xb9, 0x85, 0x71, 0xac, 0x82, 0xf5,
+ 0x91, 0x81, 0x95, 0x38, 0xc4, 0x41, 0xc4, 0x55, 0x6c, 0x58, 0x15, 0xe2,
+};
+static const unsigned char kat1858_addinreseed[] = {
+ 0x7b, 0x6c, 0x0c, 0x3d, 0xdf, 0xd4, 0x81, 0x3f, 0x4e, 0x8a, 0xea, 0x81,
+ 0x99, 0x43, 0x06, 0x7f, 0x25, 0xa4, 0xb8, 0x93, 0x9a, 0x43, 0xe3, 0xcd,
+ 0xf3, 0x2f, 0xad, 0x5d, 0x15, 0x9d, 0x69, 0xad,
+};
+static const unsigned char kat1858_addin0[] = {
+ 0xbf, 0xee, 0x57, 0x52, 0x37, 0x9d, 0x9f, 0xe8, 0xcc, 0xe5, 0x5b, 0x19,
+ 0x7f, 0x3c, 0x46, 0xde, 0xbc, 0x66, 0xc9, 0x33, 0xe5, 0xf9, 0xba, 0x37,
+ 0x4b, 0x9d, 0xd6, 0xf1, 0x84, 0x20, 0x2d, 0xd7,
+};
+static const unsigned char kat1858_addin1[] = {
+ 0xa6, 0x08, 0x47, 0x94, 0x33, 0xbc, 0xef, 0x51, 0x7e, 0x81, 0x44, 0x8c,
+ 0x91, 0x2f, 0x25, 0x7e, 0x66, 0x87, 0x74, 0x7c, 0x99, 0x24, 0xb8, 0xf8,
+ 0x8a, 0x0e, 0xc1, 0x44, 0x2d, 0x90, 0xe1, 0x9e,
+};
+static const unsigned char kat1858_retbits[] = {
+ 0x7c, 0xc6, 0x5e, 0x63, 0x83, 0xaa, 0x89, 0x19, 0x34, 0xe5, 0xcf, 0x1e,
+ 0x6d, 0x29, 0x69, 0x2e, 0xa5, 0xf2, 0x78, 0xf3, 0x5f, 0x4d, 0x5e, 0x48,
+ 0xfc, 0x21, 0xf6, 0x04, 0xe4, 0xf4, 0x2e, 0xed, 0xad, 0x07, 0xd2, 0xb1,
+ 0xad, 0x70, 0xfa, 0x74, 0x62, 0xec, 0x0e, 0xd6, 0x68, 0x6b, 0x27, 0x36,
+ 0x5f, 0xa0, 0xa7, 0xb3, 0x4e, 0xc8, 0x4e, 0xf3, 0xaa, 0x9b, 0xb0, 0x8e,
+ 0x02, 0x7d, 0x6c, 0xa0,
+};
+static const struct drbg_kat_pr_false kat1858_t = {
+ 12, kat1858_entropyin, kat1858_nonce, kat1858_persstr,
+ kat1858_entropyinreseed, kat1858_addinreseed, kat1858_addin0,
+ kat1858_addin1, kat1858_retbits
+};
+static const struct drbg_kat kat1858 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1858_t
+};
+
+static const unsigned char kat1859_entropyin[] = {
+ 0xd0, 0x98, 0xdf, 0x2d, 0x5d, 0x7a, 0x8e, 0x96, 0xd4, 0x79, 0xf6, 0xac,
+ 0x30, 0xa1, 0x77, 0x15, 0x00, 0xec, 0xac, 0x0e, 0x2b, 0x82, 0x9d, 0x22,
+};
+static const unsigned char kat1859_nonce[] = {
+ 0x8d, 0xa4, 0xd6, 0x23, 0x31, 0xed, 0xec, 0xf8, 0x28, 0xeb, 0x58, 0x52,
+ 0xed, 0x92, 0x01, 0x0c,
+};
+static const unsigned char kat1859_persstr[] = {
+ 0xc6, 0x1d, 0x8a, 0x14, 0x18, 0xc0, 0xe0, 0xeb, 0x3d, 0x06, 0x52, 0xe5,
+ 0x5b, 0x77, 0x0f, 0x87, 0x10, 0xc8, 0x4a, 0xed, 0x5e, 0x24, 0xd3, 0xc6,
+ 0x31, 0x48, 0x5b, 0x15, 0xbc, 0x03, 0x70, 0x90,
+};
+static const unsigned char kat1859_entropyinreseed[] = {
+ 0x81, 0x22, 0x96, 0xb1, 0xfc, 0xd4, 0x7b, 0xbf, 0x5d, 0x3d, 0xec, 0x66,
+ 0x25, 0xfc, 0x85, 0xd1, 0xe1, 0x41, 0xab, 0x26, 0x65, 0x5f, 0xb1, 0x88,
+};
+static const unsigned char kat1859_addinreseed[] = {
+ 0xb1, 0x32, 0x81, 0x65, 0x61, 0x0b, 0xef, 0x7a, 0x32, 0x38, 0x69, 0x0c,
+ 0x03, 0x54, 0x9f, 0x06, 0xfa, 0xf8, 0x72, 0xd6, 0x42, 0x82, 0x7c, 0x38,
+ 0x5d, 0x6c, 0xe0, 0x39, 0x46, 0x5c, 0xbe, 0x56,
+};
+static const unsigned char kat1859_addin0[] = {
+ 0x41, 0x03, 0x4b, 0xa9, 0xac, 0x78, 0x98, 0x7f, 0x21, 0xeb, 0xcd, 0xdc,
+ 0x7e, 0x22, 0x89, 0x85, 0xb7, 0x18, 0x33, 0x45, 0x3e, 0x14, 0xeb, 0x71,
+ 0x29, 0x26, 0x1b, 0x5f, 0xdc, 0xa5, 0xfa, 0xf7,
+};
+static const unsigned char kat1859_addin1[] = {
+ 0x39, 0x8f, 0xbe, 0x1d, 0xca, 0x9a, 0x36, 0x1f, 0x27, 0x68, 0x64, 0xb0,
+ 0xcd, 0xe0, 0xe5, 0xf2, 0x5c, 0xc3, 0x7b, 0x29, 0x4b, 0xb0, 0xc0, 0x48,
+ 0x3b, 0x10, 0x9d, 0x7b, 0x36, 0x87, 0x8a, 0x5b,
+};
+static const unsigned char kat1859_retbits[] = {
+ 0xc6, 0xd5, 0x44, 0xdd, 0xde, 0xbe, 0x42, 0x7b, 0x73, 0xe7, 0x5d, 0x9d,
+ 0x65, 0x9d, 0x49, 0x98, 0xe7, 0x23, 0x04, 0xca, 0x64, 0xc5, 0x6d, 0x07,
+ 0xf6, 0x8b, 0x70, 0x12, 0x5e, 0x90, 0xfe, 0xb9, 0xff, 0x70, 0xaf, 0xd2,
+ 0xb8, 0x59, 0x86, 0x67, 0xcb, 0x6b, 0x08, 0x43, 0x65, 0x57, 0x69, 0x85,
+ 0x5e, 0xf3, 0xa7, 0x83, 0x2b, 0x86, 0x05, 0x55, 0x43, 0xac, 0xfe, 0x4d,
+ 0x37, 0x7c, 0x01, 0x8a,
+};
+static const struct drbg_kat_pr_false kat1859_t = {
+ 13, kat1859_entropyin, kat1859_nonce, kat1859_persstr,
+ kat1859_entropyinreseed, kat1859_addinreseed, kat1859_addin0,
+ kat1859_addin1, kat1859_retbits
+};
+static const struct drbg_kat kat1859 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1859_t
+};
+
+static const unsigned char kat1860_entropyin[] = {
+ 0x17, 0xb7, 0xbb, 0x5b, 0x07, 0x6a, 0x5f, 0x4c, 0x5b, 0x87, 0xb9, 0xcb,
+ 0x11, 0x38, 0x3d, 0xdb, 0x38, 0xc4, 0x94, 0xb7, 0xb8, 0x9e, 0xed, 0x83,
+};
+static const unsigned char kat1860_nonce[] = {
+ 0x2d, 0xd9, 0x28, 0xdd, 0x7e, 0xee, 0x5f, 0x03, 0x97, 0x79, 0xe7, 0xcd,
+ 0x05, 0x04, 0x49, 0x37,
+};
+static const unsigned char kat1860_persstr[] = {
+ 0x77, 0xe9, 0xd3, 0xbc, 0x69, 0xed, 0x06, 0xc4, 0xd9, 0x70, 0x99, 0x71,
+ 0xdf, 0xac, 0x2a, 0xb7, 0x75, 0x32, 0x35, 0x0c, 0x2a, 0x86, 0x0d, 0xe7,
+ 0xb0, 0x11, 0x47, 0x75, 0x6d, 0x59, 0x41, 0x31,
+};
+static const unsigned char kat1860_entropyinreseed[] = {
+ 0x42, 0xef, 0x85, 0x73, 0x7b, 0x47, 0x2b, 0xae, 0x82, 0x02, 0x15, 0xf1,
+ 0xa7, 0xf0, 0x0c, 0xe6, 0x80, 0x50, 0x26, 0x56, 0x3c, 0x70, 0x3d, 0x87,
+};
+static const unsigned char kat1860_addinreseed[] = {
+ 0xb2, 0x28, 0xa3, 0x11, 0x3a, 0xbc, 0x0e, 0x1e, 0x45, 0x03, 0x39, 0xcb,
+ 0xf6, 0x1b, 0x74, 0xb1, 0x38, 0x67, 0x16, 0xf8, 0x67, 0x4e, 0x73, 0x7c,
+ 0xdf, 0x38, 0x45, 0xcb, 0x67, 0x2b, 0x38, 0x07,
+};
+static const unsigned char kat1860_addin0[] = {
+ 0x13, 0x36, 0xba, 0x38, 0xc0, 0x4d, 0x6f, 0x3a, 0x2d, 0x43, 0xb1, 0x9f,
+ 0x65, 0x70, 0xbe, 0xfc, 0x05, 0x06, 0xa3, 0xd0, 0x2b, 0x0b, 0x62, 0x96,
+ 0xf4, 0xd5, 0x12, 0x21, 0x66, 0x5b, 0x8f, 0x45,
+};
+static const unsigned char kat1860_addin1[] = {
+ 0xbf, 0x2b, 0x08, 0x64, 0x99, 0x55, 0x8c, 0x15, 0xc1, 0xd6, 0x0a, 0xd7,
+ 0xa2, 0xcc, 0x90, 0xb2, 0xb9, 0xac, 0x41, 0x1f, 0xa2, 0x13, 0xa2, 0x01,
+ 0x44, 0xac, 0xa3, 0x86, 0x48, 0x3f, 0x50, 0xdf,
+};
+static const unsigned char kat1860_retbits[] = {
+ 0x0e, 0xce, 0xc0, 0xe3, 0x4a, 0x4d, 0x31, 0x9c, 0x1e, 0x41, 0x34, 0xae,
+ 0xf6, 0x33, 0xbf, 0x5d, 0x2a, 0xe0, 0x9e, 0x93, 0x11, 0xb2, 0x9b, 0x74,
+ 0xfc, 0x76, 0x51, 0xc6, 0xa4, 0x29, 0x53, 0xcf, 0xc0, 0x47, 0xf6, 0xf6,
+ 0x89, 0x27, 0x62, 0x6a, 0x6f, 0xfc, 0xc9, 0xa2, 0x05, 0xfd, 0x3a, 0x33,
+ 0x46, 0xa1, 0x10, 0x58, 0x04, 0xfc, 0x1b, 0x4d, 0x60, 0x76, 0xbd, 0xd1,
+ 0x1b, 0xa3, 0x71, 0x90,
+};
+static const struct drbg_kat_pr_false kat1860_t = {
+ 14, kat1860_entropyin, kat1860_nonce, kat1860_persstr,
+ kat1860_entropyinreseed, kat1860_addinreseed, kat1860_addin0,
+ kat1860_addin1, kat1860_retbits
+};
+static const struct drbg_kat kat1860 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1860_t
+};
+
+static const unsigned char kat1861_entropyin[] = {
+ 0xb7, 0x1d, 0x3e, 0x35, 0x69, 0x7b, 0x6a, 0x1c, 0xf5, 0xca, 0x4f, 0x09,
+ 0x92, 0xda, 0xe0, 0xaf, 0xd9, 0x1d, 0x6d, 0x59, 0xfa, 0x67, 0x34, 0x40,
+};
+static const unsigned char kat1861_nonce[] = {
+ 0x40, 0x0b, 0x0d, 0xe0, 0x36, 0x70, 0x40, 0x9c, 0x92, 0x79, 0x85, 0x35,
+ 0x85, 0x8e, 0x54, 0x88,
+};
+static const unsigned char kat1861_persstr[] = {0};
+static const unsigned char kat1861_entropyinreseed[] = {
+ 0x56, 0xe3, 0x1e, 0xb4, 0xa1, 0xc8, 0xba, 0xe7, 0x96, 0x20, 0x7a, 0xa5,
+ 0x20, 0xd6, 0x61, 0x61, 0xcf, 0x06, 0xbe, 0x2d, 0x5b, 0x46, 0xa7, 0xaa,
+};
+static const unsigned char kat1861_addinreseed[] = {0};
+static const unsigned char kat1861_addin0[] = {0};
+static const unsigned char kat1861_addin1[] = {0};
+static const unsigned char kat1861_retbits[] = {
+ 0x3d, 0xce, 0x2a, 0xce, 0xaa, 0xec, 0x3f, 0xcf, 0x59, 0xd7, 0x2a, 0xd8,
+ 0xca, 0xe9, 0x26, 0x75, 0x37, 0xb0, 0xd9, 0x65, 0xb9, 0x70, 0x84, 0x6d,
+ 0x2c, 0xa3, 0xc5, 0x2c, 0xcc, 0x28, 0xfe, 0x78, 0x62, 0xea, 0x14, 0x40,
+ 0x74, 0xd7, 0x19, 0xe1, 0x8a, 0x7c, 0x50, 0xa9, 0xa1, 0x88, 0xef, 0x28,
+ 0x9f, 0x36, 0xd1, 0x1d, 0x20, 0xe1, 0x76, 0xc0, 0x02, 0x0d, 0x0d, 0xbf,
+ 0x2c, 0x94, 0xc2, 0x82,
+};
+static const struct drbg_kat_pr_false kat1861_t = {
+ 0, kat1861_entropyin, kat1861_nonce, kat1861_persstr,
+ kat1861_entropyinreseed, kat1861_addinreseed, kat1861_addin0,
+ kat1861_addin1, kat1861_retbits
+};
+static const struct drbg_kat kat1861 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1861_t
+};
+
+static const unsigned char kat1862_entropyin[] = {
+ 0x04, 0xa2, 0xb8, 0xad, 0xf8, 0x34, 0x88, 0x64, 0x3d, 0x5e, 0x67, 0x12,
+ 0xd0, 0x9f, 0xdb, 0x4b, 0x0d, 0xa6, 0x0e, 0x3e, 0xbd, 0x0e, 0x64, 0x27,
+};
+static const unsigned char kat1862_nonce[] = {
+ 0xc7, 0x0f, 0xfc, 0x39, 0x67, 0x41, 0x6d, 0x4a, 0xf2, 0xe3, 0xf5, 0xef,
+ 0x20, 0xd7, 0xd4, 0x02,
+};
+static const unsigned char kat1862_persstr[] = {0};
+static const unsigned char kat1862_entropyinreseed[] = {
+ 0xb3, 0xf2, 0x48, 0xa4, 0xca, 0x6f, 0x65, 0x89, 0x3e, 0x61, 0x3e, 0xac,
+ 0xa4, 0xe2, 0x4c, 0x99, 0xd1, 0xff, 0xbb, 0x37, 0x33, 0x95, 0xa8, 0xe8,
+};
+static const unsigned char kat1862_addinreseed[] = {0};
+static const unsigned char kat1862_addin0[] = {0};
+static const unsigned char kat1862_addin1[] = {0};
+static const unsigned char kat1862_retbits[] = {
+ 0x3c, 0x7a, 0x50, 0xf0, 0x21, 0x5c, 0xd9, 0xb4, 0xcf, 0x60, 0xea, 0x77,
+ 0xc0, 0x6a, 0xd2, 0x09, 0xb2, 0x4d, 0xf9, 0x3c, 0x9d, 0x7a, 0x9d, 0x28,
+ 0x8c, 0xc4, 0x97, 0x8c, 0x18, 0xe0, 0x88, 0x35, 0x67, 0x1c, 0x9f, 0x7a,
+ 0x54, 0x15, 0xde, 0x66, 0xbb, 0xbf, 0xaa, 0x5c, 0x9c, 0x2e, 0x70, 0x99,
+ 0x98, 0x98, 0x8d, 0x86, 0x12, 0x2f, 0x98, 0x5b, 0x86, 0xfd, 0xb5, 0x02,
+ 0xed, 0xf1, 0xb9, 0x28,
+};
+static const struct drbg_kat_pr_false kat1862_t = {
+ 1, kat1862_entropyin, kat1862_nonce, kat1862_persstr,
+ kat1862_entropyinreseed, kat1862_addinreseed, kat1862_addin0,
+ kat1862_addin1, kat1862_retbits
+};
+static const struct drbg_kat kat1862 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1862_t
+};
+
+static const unsigned char kat1863_entropyin[] = {
+ 0x73, 0xd6, 0x8d, 0x22, 0xb4, 0xb6, 0xb9, 0x8c, 0xf4, 0xee, 0x1a, 0x4f,
+ 0x6b, 0x8f, 0x6a, 0x03, 0x58, 0x93, 0xf0, 0x3d, 0x34, 0xeb, 0x82, 0xa2,
+};
+static const unsigned char kat1863_nonce[] = {
+ 0x76, 0xd8, 0x33, 0x38, 0xff, 0x6e, 0x65, 0x71, 0xe9, 0x59, 0x7f, 0x34,
+ 0xa8, 0x04, 0x62, 0x6d,
+};
+static const unsigned char kat1863_persstr[] = {0};
+static const unsigned char kat1863_entropyinreseed[] = {
+ 0xdc, 0xe7, 0xc7, 0x23, 0x8d, 0x22, 0xe6, 0x3d, 0xb2, 0xed, 0xd8, 0xf9,
+ 0xa4, 0x86, 0x84, 0x69, 0x9f, 0x94, 0x94, 0xb4, 0x69, 0x82, 0x51, 0x66,
+};
+static const unsigned char kat1863_addinreseed[] = {0};
+static const unsigned char kat1863_addin0[] = {0};
+static const unsigned char kat1863_addin1[] = {0};
+static const unsigned char kat1863_retbits[] = {
+ 0x29, 0x6e, 0xfd, 0x1a, 0x98, 0xed, 0xf4, 0x54, 0x2d, 0x34, 0xf6, 0x93,
+ 0x8b, 0xd8, 0x82, 0x6e, 0x52, 0x5e, 0x46, 0x61, 0xaa, 0xc5, 0xef, 0xd0,
+ 0x21, 0x69, 0xf5, 0x52, 0xab, 0x12, 0xdd, 0x01, 0x93, 0xb6, 0xf7, 0x66,
+ 0xb4, 0x1d, 0xa0, 0x55, 0x30, 0x06, 0xcb, 0xba, 0xf5, 0xb7, 0x29, 0x37,
+ 0x7e, 0xb2, 0xc9, 0x30, 0xb7, 0x1a, 0xb8, 0x62, 0x17, 0x31, 0xa0, 0x63,
+ 0xbb, 0x11, 0x13, 0xb9,
+};
+static const struct drbg_kat_pr_false kat1863_t = {
+ 2, kat1863_entropyin, kat1863_nonce, kat1863_persstr,
+ kat1863_entropyinreseed, kat1863_addinreseed, kat1863_addin0,
+ kat1863_addin1, kat1863_retbits
+};
+static const struct drbg_kat kat1863 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1863_t
+};
+
+static const unsigned char kat1864_entropyin[] = {
+ 0xbe, 0xe5, 0xbf, 0xc0, 0x0f, 0x67, 0x07, 0x95, 0x85, 0xf1, 0x15, 0x9c,
+ 0x37, 0xe5, 0xc2, 0xda, 0xca, 0xf1, 0x9a, 0x20, 0x57, 0x4b, 0x9a, 0xe6,
+};
+static const unsigned char kat1864_nonce[] = {
+ 0x8d, 0xf0, 0xc9, 0xb5, 0xbb, 0x7b, 0x18, 0xdf, 0x82, 0x3f, 0xe5, 0x6c,
+ 0xf1, 0x15, 0x3d, 0x53,
+};
+static const unsigned char kat1864_persstr[] = {0};
+static const unsigned char kat1864_entropyinreseed[] = {
+ 0xc1, 0xa5, 0x3c, 0xfa, 0x7d, 0xa4, 0x4e, 0xb9, 0x42, 0x0b, 0x3e, 0xb7,
+ 0x22, 0xda, 0xab, 0x61, 0x85, 0x8f, 0x5e, 0xfa, 0x57, 0x3f, 0x12, 0xc1,
+};
+static const unsigned char kat1864_addinreseed[] = {0};
+static const unsigned char kat1864_addin0[] = {0};
+static const unsigned char kat1864_addin1[] = {0};
+static const unsigned char kat1864_retbits[] = {
+ 0xda, 0xc2, 0x50, 0x49, 0x2a, 0xbf, 0x78, 0xbf, 0x7c, 0x43, 0x37, 0x36,
+ 0x97, 0x4f, 0x73, 0xbb, 0x2c, 0xb3, 0xd3, 0xe0, 0x1c, 0xfd, 0xf2, 0x72,
+ 0x6d, 0x31, 0x59, 0x08, 0x63, 0xb2, 0x96, 0x45, 0x1d, 0x5b, 0x51, 0x27,
+ 0x50, 0x7f, 0x6d, 0x4c, 0x50, 0x06, 0x72, 0x72, 0xfa, 0xea, 0x3a, 0xa5,
+ 0x79, 0x06, 0x70, 0x56, 0x89, 0x48, 0xc6, 0x17, 0xaf, 0x11, 0x61, 0x24,
+ 0x96, 0xb7, 0x6e, 0xe1,
+};
+static const struct drbg_kat_pr_false kat1864_t = {
+ 3, kat1864_entropyin, kat1864_nonce, kat1864_persstr,
+ kat1864_entropyinreseed, kat1864_addinreseed, kat1864_addin0,
+ kat1864_addin1, kat1864_retbits
+};
+static const struct drbg_kat kat1864 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1864_t
+};
+
+static const unsigned char kat1865_entropyin[] = {
+ 0xbe, 0x06, 0x74, 0x4b, 0x7c, 0xc6, 0x33, 0x13, 0x20, 0x86, 0xb2, 0xd5,
+ 0xa1, 0xe9, 0xb6, 0x2c, 0x26, 0xbd, 0xe5, 0x6b, 0xd9, 0xc0, 0xd7, 0xd0,
+};
+static const unsigned char kat1865_nonce[] = {
+ 0x70, 0x57, 0x67, 0xee, 0xb9, 0xb9, 0x7c, 0xe7, 0x17, 0xd7, 0x27, 0x2e,
+ 0x75, 0xb6, 0x21, 0xb8,
+};
+static const unsigned char kat1865_persstr[] = {0};
+static const unsigned char kat1865_entropyinreseed[] = {
+ 0xc9, 0x38, 0x49, 0x87, 0x51, 0x8e, 0xa2, 0xd0, 0x29, 0xea, 0x7c, 0x1d,
+ 0x41, 0x65, 0x7c, 0x55, 0xd7, 0x79, 0x38, 0x82, 0xc8, 0xe0, 0x8c, 0xcc,
+};
+static const unsigned char kat1865_addinreseed[] = {0};
+static const unsigned char kat1865_addin0[] = {0};
+static const unsigned char kat1865_addin1[] = {0};
+static const unsigned char kat1865_retbits[] = {
+ 0xef, 0x10, 0xc8, 0x6d, 0x13, 0x4b, 0xa1, 0x62, 0x57, 0xad, 0x2f, 0xa4,
+ 0x83, 0x96, 0x13, 0x49, 0x17, 0x79, 0x57, 0x24, 0xf7, 0xed, 0x52, 0x57,
+ 0xa2, 0x87, 0x88, 0xd7, 0x29, 0xae, 0x13, 0x93, 0xf4, 0x42, 0xbc, 0x5f,
+ 0x5a, 0x5d, 0x39, 0x88, 0x4b, 0x3b, 0x9d, 0xf5, 0x6e, 0x26, 0x2b, 0xe4,
+ 0x29, 0x88, 0x1a, 0x72, 0x01, 0x69, 0x5a, 0xcd, 0x21, 0xfc, 0x2c, 0xef,
+ 0xdb, 0x91, 0xff, 0xa7,
+};
+static const struct drbg_kat_pr_false kat1865_t = {
+ 4, kat1865_entropyin, kat1865_nonce, kat1865_persstr,
+ kat1865_entropyinreseed, kat1865_addinreseed, kat1865_addin0,
+ kat1865_addin1, kat1865_retbits
+};
+static const struct drbg_kat kat1865 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1865_t
+};
+
+static const unsigned char kat1866_entropyin[] = {
+ 0x0f, 0x06, 0xdf, 0xb4, 0x07, 0xdc, 0x85, 0x79, 0x61, 0x76, 0x13, 0xe5,
+ 0xf7, 0x16, 0x54, 0xa6, 0xad, 0xb9, 0xb2, 0x7a, 0xef, 0x95, 0xd8, 0xa6,
+};
+static const unsigned char kat1866_nonce[] = {
+ 0x4c, 0xd4, 0x15, 0xdd, 0x1a, 0x32, 0xc7, 0xe2, 0x8b, 0x86, 0x35, 0xe5,
+ 0x4d, 0xe9, 0x28, 0x7d,
+};
+static const unsigned char kat1866_persstr[] = {0};
+static const unsigned char kat1866_entropyinreseed[] = {
+ 0xac, 0xfa, 0x2c, 0xbc, 0x60, 0xe6, 0xcd, 0x27, 0x3d, 0x64, 0x99, 0x77,
+ 0xe5, 0x67, 0x59, 0x0d, 0x05, 0xd1, 0x5e, 0x6b, 0x52, 0x94, 0xdd, 0x2b,
+};
+static const unsigned char kat1866_addinreseed[] = {0};
+static const unsigned char kat1866_addin0[] = {0};
+static const unsigned char kat1866_addin1[] = {0};
+static const unsigned char kat1866_retbits[] = {
+ 0x93, 0x67, 0x8a, 0x28, 0x0f, 0xad, 0x7a, 0xdd, 0x11, 0x77, 0x6e, 0x03,
+ 0x35, 0x88, 0xd7, 0x57, 0x54, 0x0e, 0x45, 0x14, 0x44, 0x86, 0xb3, 0xc7,
+ 0x5d, 0x87, 0xd2, 0xf0, 0x3f, 0xf3, 0x64, 0xef, 0x6d, 0xee, 0x2c, 0x87,
+ 0x78, 0xd4, 0x35, 0xa4, 0xd6, 0x97, 0x5b, 0x3c, 0xb2, 0x53, 0x0b, 0x07,
+ 0x1b, 0x65, 0x93, 0x97, 0x03, 0xfa, 0x01, 0x7b, 0xb5, 0x2c, 0x2c, 0x0c,
+ 0x35, 0x20, 0xaf, 0x20,
+};
+static const struct drbg_kat_pr_false kat1866_t = {
+ 5, kat1866_entropyin, kat1866_nonce, kat1866_persstr,
+ kat1866_entropyinreseed, kat1866_addinreseed, kat1866_addin0,
+ kat1866_addin1, kat1866_retbits
+};
+static const struct drbg_kat kat1866 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1866_t
+};
+
+static const unsigned char kat1867_entropyin[] = {
+ 0x7e, 0x8b, 0xef, 0x91, 0x21, 0x1e, 0xf7, 0x3d, 0xaa, 0x9e, 0xb7, 0xd3,
+ 0x2a, 0xf7, 0x9f, 0xbe, 0x74, 0x12, 0x0b, 0x5c, 0x18, 0x3e, 0x30, 0xa0,
+};
+static const unsigned char kat1867_nonce[] = {
+ 0xe9, 0xeb, 0x7d, 0x6b, 0xa6, 0xee, 0xb4, 0x5b, 0x67, 0x73, 0x69, 0x19,
+ 0xde, 0x78, 0x2f, 0x15,
+};
+static const unsigned char kat1867_persstr[] = {0};
+static const unsigned char kat1867_entropyinreseed[] = {
+ 0x43, 0x45, 0x2b, 0xa9, 0x09, 0x07, 0x78, 0x55, 0xb2, 0x12, 0x4a, 0x5e,
+ 0xf9, 0x0f, 0x84, 0x9e, 0xf4, 0xf0, 0x19, 0xce, 0x16, 0x90, 0x2a, 0x46,
+};
+static const unsigned char kat1867_addinreseed[] = {0};
+static const unsigned char kat1867_addin0[] = {0};
+static const unsigned char kat1867_addin1[] = {0};
+static const unsigned char kat1867_retbits[] = {
+ 0xb1, 0xe1, 0x9c, 0xf5, 0x5d, 0xa5, 0xc1, 0xcb, 0x0f, 0x36, 0x46, 0xe7,
+ 0x4b, 0xd2, 0xdf, 0x96, 0xf6, 0x88, 0x7c, 0x77, 0x9b, 0x54, 0x74, 0xe4,
+ 0x7f, 0xae, 0xd2, 0x2e, 0x68, 0x67, 0xdb, 0xb2, 0x84, 0x33, 0x23, 0xc2,
+ 0xa3, 0x29, 0x04, 0x2a, 0x15, 0x50, 0x57, 0xd2, 0x42, 0xf3, 0xfe, 0x6f,
+ 0x59, 0x0a, 0xe3, 0x82, 0x51, 0x38, 0x02, 0x27, 0x69, 0xbc, 0x6e, 0x14,
+ 0x1d, 0xa5, 0x1b, 0xd9,
+};
+static const struct drbg_kat_pr_false kat1867_t = {
+ 6, kat1867_entropyin, kat1867_nonce, kat1867_persstr,
+ kat1867_entropyinreseed, kat1867_addinreseed, kat1867_addin0,
+ kat1867_addin1, kat1867_retbits
+};
+static const struct drbg_kat kat1867 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1867_t
+};
+
+static const unsigned char kat1868_entropyin[] = {
+ 0x63, 0xbc, 0x10, 0x0a, 0x11, 0x6e, 0x14, 0x82, 0xaa, 0x5f, 0x6d, 0x66,
+ 0xc1, 0x8b, 0x69, 0xf9, 0xe3, 0xde, 0xea, 0x25, 0x20, 0x3d, 0xd7, 0xae,
+};
+static const unsigned char kat1868_nonce[] = {
+ 0xcf, 0x9b, 0x21, 0x79, 0xe3, 0xe8, 0xd6, 0x51, 0xfd, 0xda, 0xe5, 0xca,
+ 0x8b, 0x22, 0x0c, 0x0d,
+};
+static const unsigned char kat1868_persstr[] = {0};
+static const unsigned char kat1868_entropyinreseed[] = {
+ 0x2e, 0x7b, 0xac, 0x45, 0x85, 0xde, 0xea, 0x2a, 0x93, 0xf4, 0x06, 0x9f,
+ 0x98, 0x96, 0x54, 0x4a, 0xef, 0xc4, 0xa2, 0x18, 0xc1, 0x41, 0xa2, 0x5e,
+};
+static const unsigned char kat1868_addinreseed[] = {0};
+static const unsigned char kat1868_addin0[] = {0};
+static const unsigned char kat1868_addin1[] = {0};
+static const unsigned char kat1868_retbits[] = {
+ 0x96, 0x24, 0x97, 0x7f, 0x13, 0x5c, 0x29, 0x8a, 0xff, 0xfc, 0xd6, 0x0b,
+ 0x5b, 0xe0, 0xff, 0x62, 0xdd, 0x29, 0xa2, 0xd8, 0x91, 0x38, 0x9b, 0x6b,
+ 0x50, 0x80, 0xe9, 0xd8, 0x8b, 0xac, 0x60, 0x9d, 0xe4, 0xc7, 0x16, 0xf0,
+ 0x6b, 0x47, 0xc1, 0xb7, 0xcc, 0x92, 0xf6, 0x6c, 0xb5, 0xf7, 0xa4, 0xd9,
+ 0xda, 0x90, 0x6f, 0x08, 0x4d, 0x5d, 0x45, 0xae, 0xe9, 0xbb, 0xef, 0x26,
+ 0x24, 0x30, 0x9a, 0xda,
+};
+static const struct drbg_kat_pr_false kat1868_t = {
+ 7, kat1868_entropyin, kat1868_nonce, kat1868_persstr,
+ kat1868_entropyinreseed, kat1868_addinreseed, kat1868_addin0,
+ kat1868_addin1, kat1868_retbits
+};
+static const struct drbg_kat kat1868 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1868_t
+};
+
+static const unsigned char kat1869_entropyin[] = {
+ 0x43, 0x78, 0xbc, 0x78, 0xe4, 0x0b, 0x93, 0x18, 0x89, 0xce, 0x78, 0x51,
+ 0x0e, 0xe5, 0x27, 0xfd, 0x96, 0xa5, 0x75, 0x1e, 0xa7, 0x7c, 0xd8, 0x77,
+};
+static const unsigned char kat1869_nonce[] = {
+ 0xf4, 0xbf, 0xf2, 0xf1, 0xda, 0x88, 0x63, 0x21, 0xeb, 0x94, 0xf6, 0xba,
+ 0x34, 0xef, 0x0c, 0xb9,
+};
+static const unsigned char kat1869_persstr[] = {0};
+static const unsigned char kat1869_entropyinreseed[] = {
+ 0x0f, 0x25, 0xa2, 0xc8, 0xd4, 0x0a, 0x04, 0x0b, 0x2b, 0xfd, 0xae, 0x68,
+ 0xc5, 0x67, 0x19, 0x43, 0x25, 0xc9, 0x4d, 0x8a, 0xa5, 0x73, 0x93, 0xcb,
+};
+static const unsigned char kat1869_addinreseed[] = {0};
+static const unsigned char kat1869_addin0[] = {0};
+static const unsigned char kat1869_addin1[] = {0};
+static const unsigned char kat1869_retbits[] = {
+ 0x16, 0x0d, 0xbe, 0x0b, 0x5f, 0x8a, 0xab, 0x91, 0xb9, 0x9e, 0xe5, 0x82,
+ 0x24, 0xe3, 0x1e, 0xb5, 0xe8, 0x00, 0x7d, 0x43, 0xe0, 0xea, 0xee, 0x13,
+ 0x86, 0x2a, 0x26, 0xa1, 0xbb, 0xaf, 0x09, 0x9f, 0x8d, 0x93, 0xed, 0x4d,
+ 0x21, 0x12, 0x11, 0x4d, 0xc9, 0x52, 0xa0, 0xcd, 0x8c, 0x26, 0x6f, 0x82,
+ 0xd5, 0xcc, 0xd8, 0x0a, 0x5b, 0x35, 0xf5, 0xff, 0xb3, 0xb2, 0x11, 0xd0,
+ 0xcb, 0xa5, 0x11, 0x03,
+};
+static const struct drbg_kat_pr_false kat1869_t = {
+ 8, kat1869_entropyin, kat1869_nonce, kat1869_persstr,
+ kat1869_entropyinreseed, kat1869_addinreseed, kat1869_addin0,
+ kat1869_addin1, kat1869_retbits
+};
+static const struct drbg_kat kat1869 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1869_t
+};
+
+static const unsigned char kat1870_entropyin[] = {
+ 0x8c, 0xc5, 0xc1, 0x01, 0xec, 0xe3, 0xca, 0xdc, 0xce, 0x50, 0xad, 0x2b,
+ 0x80, 0x5a, 0x4c, 0x79, 0xc5, 0x1c, 0x67, 0x95, 0xaf, 0x71, 0x66, 0x80,
+};
+static const unsigned char kat1870_nonce[] = {
+ 0x3a, 0x16, 0x68, 0x15, 0xaa, 0x0c, 0x21, 0x7c, 0x0c, 0x14, 0x7e, 0xec,
+ 0xa8, 0xef, 0x1d, 0xbb,
+};
+static const unsigned char kat1870_persstr[] = {0};
+static const unsigned char kat1870_entropyinreseed[] = {
+ 0xe9, 0x45, 0x67, 0x8b, 0x03, 0x33, 0xa0, 0xb4, 0xde, 0xd6, 0x48, 0x67,
+ 0x9d, 0x73, 0x90, 0x09, 0x42, 0xeb, 0xe7, 0xbb, 0x9a, 0xd1, 0xef, 0xaf,
+};
+static const unsigned char kat1870_addinreseed[] = {0};
+static const unsigned char kat1870_addin0[] = {0};
+static const unsigned char kat1870_addin1[] = {0};
+static const unsigned char kat1870_retbits[] = {
+ 0x4a, 0xc1, 0x7a, 0xcf, 0x72, 0x5f, 0xa2, 0xc5, 0xde, 0xcf, 0x35, 0x96,
+ 0xcc, 0x85, 0x9b, 0xed, 0xbc, 0x14, 0x46, 0x74, 0x6b, 0x39, 0x40, 0xe6,
+ 0xd2, 0x8a, 0x37, 0x59, 0xc7, 0x98, 0xf5, 0x91, 0x62, 0xf1, 0x76, 0xb8,
+ 0x59, 0x1b, 0x70, 0xac, 0x58, 0xea, 0x83, 0x28, 0x3f, 0x37, 0x39, 0xff,
+ 0x82, 0x5f, 0xc1, 0xc5, 0x3e, 0xf3, 0xd9, 0x1b, 0x84, 0x83, 0x2c, 0x16,
+ 0x2a, 0x4c, 0xeb, 0x5c,
+};
+static const struct drbg_kat_pr_false kat1870_t = {
+ 9, kat1870_entropyin, kat1870_nonce, kat1870_persstr,
+ kat1870_entropyinreseed, kat1870_addinreseed, kat1870_addin0,
+ kat1870_addin1, kat1870_retbits
+};
+static const struct drbg_kat kat1870 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1870_t
+};
+
+static const unsigned char kat1871_entropyin[] = {
+ 0x36, 0x28, 0x4d, 0xdc, 0xea, 0x07, 0xdc, 0xab, 0x15, 0xd5, 0xca, 0x8c,
+ 0x6c, 0x6e, 0xca, 0xa7, 0xd1, 0x91, 0x8a, 0x38, 0x3e, 0x65, 0xa1, 0x5e,
+};
+static const unsigned char kat1871_nonce[] = {
+ 0x8a, 0x20, 0x92, 0x90, 0x64, 0xfd, 0x5f, 0x29, 0xe6, 0x98, 0xae, 0x13,
+ 0x47, 0xc7, 0xd7, 0x55,
+};
+static const unsigned char kat1871_persstr[] = {0};
+static const unsigned char kat1871_entropyinreseed[] = {
+ 0xde, 0x97, 0x0d, 0x72, 0x45, 0x26, 0xe0, 0x68, 0xc8, 0xa4, 0x26, 0x74,
+ 0xbf, 0x99, 0x90, 0x5a, 0x3e, 0x16, 0x15, 0xbc, 0x03, 0x63, 0x12, 0x25,
+};
+static const unsigned char kat1871_addinreseed[] = {0};
+static const unsigned char kat1871_addin0[] = {0};
+static const unsigned char kat1871_addin1[] = {0};
+static const unsigned char kat1871_retbits[] = {
+ 0x67, 0xe2, 0x7a, 0x41, 0x90, 0x0d, 0xb0, 0x06, 0x70, 0x79, 0x9b, 0x61,
+ 0xde, 0x77, 0x1e, 0x03, 0x74, 0x25, 0x82, 0xe8, 0xa5, 0x82, 0x25, 0x68,
+ 0x62, 0x89, 0x0d, 0x33, 0x2c, 0x85, 0x8e, 0xae, 0xe4, 0xed, 0x31, 0x01,
+ 0x00, 0xbb, 0x43, 0x23, 0xa3, 0x06, 0xb1, 0xde, 0x9b, 0xde, 0x3f, 0x78,
+ 0x22, 0x19, 0xe3, 0xe7, 0x96, 0x60, 0x44, 0x4a, 0x4c, 0xbc, 0x44, 0xa5,
+ 0xc4, 0x8b, 0x07, 0xef,
+};
+static const struct drbg_kat_pr_false kat1871_t = {
+ 10, kat1871_entropyin, kat1871_nonce, kat1871_persstr,
+ kat1871_entropyinreseed, kat1871_addinreseed, kat1871_addin0,
+ kat1871_addin1, kat1871_retbits
+};
+static const struct drbg_kat kat1871 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1871_t
+};
+
+static const unsigned char kat1872_entropyin[] = {
+ 0xa6, 0x28, 0x15, 0x05, 0xd0, 0x16, 0xf4, 0x52, 0x27, 0xcb, 0x86, 0xff,
+ 0xb3, 0x29, 0x49, 0x9a, 0x89, 0x44, 0x9d, 0x7e, 0x7d, 0x1f, 0x96, 0xae,
+};
+static const unsigned char kat1872_nonce[] = {
+ 0x44, 0xed, 0x90, 0x0e, 0x03, 0xbe, 0x20, 0x99, 0x8d, 0x0d, 0xe6, 0xa4,
+ 0xc8, 0xa6, 0x47, 0xca,
+};
+static const unsigned char kat1872_persstr[] = {0};
+static const unsigned char kat1872_entropyinreseed[] = {
+ 0x3c, 0xe1, 0x02, 0x76, 0x7f, 0x57, 0x9d, 0xd9, 0xe0, 0x99, 0x52, 0x9a,
+ 0xb6, 0x48, 0x05, 0x96, 0xc3, 0x8a, 0xdb, 0x22, 0xe9, 0x22, 0xc1, 0xbf,
+};
+static const unsigned char kat1872_addinreseed[] = {0};
+static const unsigned char kat1872_addin0[] = {0};
+static const unsigned char kat1872_addin1[] = {0};
+static const unsigned char kat1872_retbits[] = {
+ 0xe3, 0xbe, 0x72, 0xf6, 0xc8, 0xce, 0xe6, 0xae, 0x17, 0x02, 0xfc, 0x10,
+ 0x60, 0x11, 0x50, 0x08, 0x72, 0xbd, 0x43, 0xa2, 0x33, 0x58, 0x7c, 0xdd,
+ 0x27, 0x45, 0xf6, 0x9d, 0x12, 0x14, 0x8f, 0x33, 0xbd, 0x56, 0x09, 0x8a,
+ 0x70, 0x6d, 0x95, 0xfa, 0x75, 0x31, 0xb7, 0x83, 0x32, 0xad, 0x76, 0xd1,
+ 0xb7, 0xa7, 0xa1, 0xe1, 0x6b, 0x69, 0x04, 0xed, 0x53, 0x64, 0xb3, 0xd1,
+ 0xb3, 0x23, 0x0a, 0x74,
+};
+static const struct drbg_kat_pr_false kat1872_t = {
+ 11, kat1872_entropyin, kat1872_nonce, kat1872_persstr,
+ kat1872_entropyinreseed, kat1872_addinreseed, kat1872_addin0,
+ kat1872_addin1, kat1872_retbits
+};
+static const struct drbg_kat kat1872 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1872_t
+};
+
+static const unsigned char kat1873_entropyin[] = {
+ 0xd4, 0x36, 0xc3, 0xb4, 0x6a, 0x8f, 0x2a, 0x04, 0xb0, 0x7e, 0xbe, 0x21,
+ 0x3b, 0x3d, 0x6e, 0x46, 0x41, 0x38, 0xf8, 0x01, 0x5d, 0xaf, 0xd0, 0x79,
+};
+static const unsigned char kat1873_nonce[] = {
+ 0xf6, 0xdf, 0xa2, 0xe6, 0x90, 0x75, 0xff, 0x67, 0x65, 0xc4, 0xa3, 0xef,
+ 0x9d, 0x7f, 0x8f, 0x83,
+};
+static const unsigned char kat1873_persstr[] = {0};
+static const unsigned char kat1873_entropyinreseed[] = {
+ 0x19, 0x5c, 0x37, 0xc4, 0xe2, 0xf8, 0xc0, 0x6e, 0x40, 0xc7, 0x9c, 0xd4,
+ 0xbc, 0xd5, 0x5f, 0x1d, 0x82, 0xec, 0x2d, 0xae, 0xfa, 0x1a, 0x5f, 0x83,
+};
+static const unsigned char kat1873_addinreseed[] = {0};
+static const unsigned char kat1873_addin0[] = {0};
+static const unsigned char kat1873_addin1[] = {0};
+static const unsigned char kat1873_retbits[] = {
+ 0x29, 0xc9, 0x20, 0x40, 0x70, 0xd4, 0xc2, 0x55, 0xef, 0x0e, 0x1b, 0x52,
+ 0xfb, 0xa7, 0x45, 0x0e, 0xe0, 0xe5, 0xae, 0x0d, 0x26, 0x8b, 0xd8, 0xaa,
+ 0x9d, 0x17, 0x38, 0x16, 0x1f, 0x22, 0xfb, 0x95, 0x50, 0x5c, 0x1f, 0xa6,
+ 0xa6, 0xb3, 0x30, 0x91, 0x8e, 0x75, 0xc4, 0xbb, 0x8f, 0x96, 0xfa, 0x2b,
+ 0x9a, 0xc0, 0x2b, 0x5d, 0xdb, 0x25, 0x51, 0xbd, 0x49, 0x7e, 0x56, 0x1a,
+ 0xe1, 0xec, 0x84, 0x5d,
+};
+static const struct drbg_kat_pr_false kat1873_t = {
+ 12, kat1873_entropyin, kat1873_nonce, kat1873_persstr,
+ kat1873_entropyinreseed, kat1873_addinreseed, kat1873_addin0,
+ kat1873_addin1, kat1873_retbits
+};
+static const struct drbg_kat kat1873 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1873_t
+};
+
+static const unsigned char kat1874_entropyin[] = {
+ 0xb6, 0x9f, 0x6c, 0xae, 0xa2, 0xd9, 0xcb, 0x35, 0x15, 0xac, 0xd9, 0x9d,
+ 0x24, 0x56, 0x42, 0x6b, 0x79, 0x95, 0x05, 0x94, 0xf5, 0xd7, 0xbe, 0x45,
+};
+static const unsigned char kat1874_nonce[] = {
+ 0x76, 0xd6, 0x6f, 0xbf, 0x25, 0xf4, 0x18, 0xd8, 0xb3, 0x9a, 0x14, 0x25,
+ 0x19, 0x17, 0xa5, 0x97,
+};
+static const unsigned char kat1874_persstr[] = {0};
+static const unsigned char kat1874_entropyinreseed[] = {
+ 0xfc, 0x3a, 0x32, 0xe8, 0x09, 0x58, 0x9e, 0x33, 0x58, 0xb7, 0x98, 0xb1,
+ 0xb5, 0xd6, 0x42, 0xd0, 0xf9, 0xc1, 0xdb, 0xe8, 0x95, 0x2f, 0x80, 0x32,
+};
+static const unsigned char kat1874_addinreseed[] = {0};
+static const unsigned char kat1874_addin0[] = {0};
+static const unsigned char kat1874_addin1[] = {0};
+static const unsigned char kat1874_retbits[] = {
+ 0x7c, 0xcf, 0xe7, 0x4c, 0x24, 0x3d, 0xa0, 0x1c, 0x74, 0x38, 0x1d, 0x64,
+ 0xe7, 0xb2, 0xac, 0xd3, 0x7f, 0xb4, 0xf3, 0xd2, 0x44, 0x12, 0xe7, 0x57,
+ 0x3a, 0xbd, 0xd9, 0xdb, 0x91, 0xe2, 0x79, 0x70, 0x13, 0xa1, 0xd6, 0x72,
+ 0xe9, 0x09, 0x29, 0x8e, 0x51, 0x65, 0xf2, 0x9a, 0x53, 0x09, 0x6d, 0xdd,
+ 0x5b, 0x90, 0x22, 0x05, 0x48, 0xb2, 0x17, 0x3c, 0x75, 0xa0, 0x83, 0x43,
+ 0x95, 0xd1, 0x2e, 0xad,
+};
+static const struct drbg_kat_pr_false kat1874_t = {
+ 13, kat1874_entropyin, kat1874_nonce, kat1874_persstr,
+ kat1874_entropyinreseed, kat1874_addinreseed, kat1874_addin0,
+ kat1874_addin1, kat1874_retbits
+};
+static const struct drbg_kat kat1874 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1874_t
+};
+
+static const unsigned char kat1875_entropyin[] = {
+ 0xe8, 0xd8, 0x01, 0x57, 0x46, 0x77, 0x19, 0x9b, 0xd8, 0x66, 0x19, 0x79,
+ 0x46, 0xd2, 0xac, 0xcf, 0x3c, 0xd1, 0xc6, 0x17, 0x30, 0x55, 0x3c, 0xbd,
+};
+static const unsigned char kat1875_nonce[] = {
+ 0xaf, 0xb3, 0x2d, 0x28, 0x3c, 0xa1, 0x54, 0x6d, 0xbd, 0x50, 0x75, 0xa9,
+ 0x03, 0x82, 0x82, 0x75,
+};
+static const unsigned char kat1875_persstr[] = {0};
+static const unsigned char kat1875_entropyinreseed[] = {
+ 0x34, 0xf8, 0xc9, 0x6c, 0x52, 0xc6, 0xc4, 0x8a, 0xa0, 0xf3, 0x9d, 0x20,
+ 0x50, 0x2f, 0x5b, 0x03, 0x19, 0x30, 0x66, 0x7a, 0xf2, 0x93, 0xbb, 0xaa,
+};
+static const unsigned char kat1875_addinreseed[] = {0};
+static const unsigned char kat1875_addin0[] = {0};
+static const unsigned char kat1875_addin1[] = {0};
+static const unsigned char kat1875_retbits[] = {
+ 0x5b, 0x8a, 0x8c, 0xc5, 0x54, 0xa7, 0x0e, 0x64, 0xd1, 0xe8, 0xf0, 0x80,
+ 0xfa, 0x20, 0xbe, 0xe1, 0x26, 0xb4, 0x39, 0x14, 0x7c, 0x6c, 0x56, 0xfd,
+ 0xf6, 0x98, 0xe9, 0x6c, 0x5c, 0x3e, 0x89, 0xf2, 0x0f, 0xef, 0xed, 0x68,
+ 0x63, 0x66, 0x9f, 0xb8, 0xf5, 0x8e, 0xa4, 0x2e, 0x2f, 0xcb, 0xfa, 0x9a,
+ 0x40, 0xa4, 0xfc, 0xa7, 0x7a, 0x7e, 0xbd, 0xe4, 0x39, 0x56, 0x64, 0x90,
+ 0x22, 0xc6, 0xf4, 0x75,
+};
+static const struct drbg_kat_pr_false kat1875_t = {
+ 14, kat1875_entropyin, kat1875_nonce, kat1875_persstr,
+ kat1875_entropyinreseed, kat1875_addinreseed, kat1875_addin0,
+ kat1875_addin1, kat1875_retbits
+};
+static const struct drbg_kat kat1875 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat1875_t
+};
+
+static const unsigned char kat1876_entropyin[] = {
+ 0x2c, 0x09, 0x49, 0x0d, 0xc8, 0x67, 0x10, 0xa6, 0xbc, 0xdb, 0x45, 0x0d,
+ 0x07, 0xfa, 0x52, 0xaa, 0x6b, 0xbd, 0x5e, 0xe1, 0x55, 0x90, 0x14, 0x0a,
+};
+static const unsigned char kat1876_nonce[] = {
+ 0x1d, 0x40, 0x71, 0x20, 0xf3, 0xb6, 0x83, 0x5d, 0x0d, 0xf0, 0x86, 0x6d,
+ 0x0e, 0xcd, 0x05, 0xf8,
+};
+static const unsigned char kat1876_persstr[] = {0};
+static const unsigned char kat1876_entropyinreseed[] = {
+ 0x2e, 0x52, 0xa0, 0x68, 0xbd, 0x4d, 0x9c, 0x42, 0x79, 0xb1, 0x83, 0xf1,
+ 0xa4, 0x5f, 0x1d, 0x2c, 0xe5, 0x03, 0x10, 0x5a, 0x42, 0x8c, 0xee, 0x9e,
+};
+static const unsigned char kat1876_addinreseed[] = {
+ 0x31, 0xcf, 0xc6, 0x8c, 0xcb, 0xe6, 0x80, 0xf1, 0x80, 0x75, 0xe2, 0x16,
+ 0x05, 0x02, 0x4f, 0xaa, 0x39, 0x79, 0xee, 0x70, 0xc6, 0xff, 0xaa, 0xfa,
+ 0xef, 0x17, 0x0b, 0x57, 0xc5, 0x7f, 0x4c, 0x14,
+};
+static const unsigned char kat1876_addin0[] = {
+ 0x26, 0x26, 0xab, 0x5a, 0x06, 0x50, 0x8b, 0x34, 0xfd, 0x64, 0x90, 0x4e,
+ 0x75, 0x6f, 0xfc, 0x52, 0xa1, 0xc6, 0xaf, 0x28, 0x29, 0xc9, 0xee, 0xc0,
+ 0x08, 0xf2, 0x1b, 0x28, 0x40, 0x43, 0xfb, 0x67,
+};
+static const unsigned char kat1876_addin1[] = {
+ 0xce, 0x41, 0x26, 0xda, 0x75, 0x7e, 0x5d, 0x88, 0xcb, 0x86, 0x27, 0x72,
+ 0x1b, 0x54, 0x91, 0xc2, 0x86, 0x6e, 0xd0, 0xd1, 0xd6, 0x73, 0x8a, 0x68,
+ 0xbe, 0x1b, 0x49, 0x83, 0x9d, 0x4b, 0xf6, 0xc2,
+};
+static const unsigned char kat1876_retbits[] = {
+ 0xa7, 0xa9, 0x2c, 0x0f, 0xf5, 0xdf, 0xf9, 0x24, 0x1e, 0x2f, 0x0f, 0x87,
+ 0x6a, 0xe4, 0xc1, 0xa3, 0x19, 0xe8, 0xfb, 0x00, 0xfd, 0x39, 0x15, 0x1e,
+ 0x72, 0x77, 0x36, 0xa1, 0xdd, 0xa7, 0xbe, 0x1b, 0x9f, 0xdc, 0xaa, 0x82,
+ 0xc8, 0x8b, 0xfa, 0x5b, 0x14, 0x9d, 0xbc, 0x24, 0x6b, 0xd6, 0x72, 0x03,
+ 0x4a, 0x9f, 0x70, 0xac, 0x2e, 0xbe, 0x72, 0xf7, 0x0b, 0x83, 0x41, 0x81,
+ 0x73, 0xcc, 0xbd, 0x04,
+};
+static const struct drbg_kat_pr_false kat1876_t = {
+ 0, kat1876_entropyin, kat1876_nonce, kat1876_persstr,
+ kat1876_entropyinreseed, kat1876_addinreseed, kat1876_addin0,
+ kat1876_addin1, kat1876_retbits
+};
+static const struct drbg_kat kat1876 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1876_t
+};
+
+static const unsigned char kat1877_entropyin[] = {
+ 0xf9, 0x5c, 0xd3, 0x8c, 0x3e, 0x18, 0xfa, 0x19, 0xc3, 0x65, 0x02, 0x2f,
+ 0xba, 0x6c, 0xb1, 0x97, 0xc3, 0xaa, 0x31, 0xe3, 0x48, 0x23, 0x49, 0xe4,
+};
+static const unsigned char kat1877_nonce[] = {
+ 0xab, 0x14, 0xf6, 0xe3, 0xac, 0x82, 0xff, 0xef, 0xa1, 0xb2, 0x0c, 0xb1,
+ 0x27, 0x14, 0x5b, 0x54,
+};
+static const unsigned char kat1877_persstr[] = {0};
+static const unsigned char kat1877_entropyinreseed[] = {
+ 0x79, 0x04, 0x44, 0x2f, 0x08, 0x71, 0xdb, 0x67, 0x27, 0xfb, 0xf2, 0xcc,
+ 0x34, 0x26, 0xfd, 0x5c, 0x30, 0x53, 0xd1, 0xf9, 0x3f, 0x57, 0x4b, 0x27,
+};
+static const unsigned char kat1877_addinreseed[] = {
+ 0x74, 0xce, 0xd2, 0x49, 0xbe, 0x05, 0xcc, 0x23, 0xd0, 0xc1, 0x8f, 0xf9,
+ 0x61, 0x99, 0xd8, 0x66, 0x45, 0x4a, 0x52, 0xc9, 0x62, 0xd6, 0xaa, 0xc4,
+ 0x0a, 0x42, 0x93, 0x60, 0x3f, 0x2c, 0x97, 0xa2,
+};
+static const unsigned char kat1877_addin0[] = {
+ 0xad, 0x33, 0x91, 0xc8, 0xa8, 0x10, 0x61, 0x9e, 0x50, 0x4d, 0xab, 0x12,
+ 0xfd, 0x1b, 0xaa, 0x1d, 0x43, 0x34, 0x32, 0x46, 0x86, 0x53, 0x19, 0xc6,
+ 0xa7, 0x03, 0x08, 0x28, 0x2f, 0xf6, 0x03, 0x26,
+};
+static const unsigned char kat1877_addin1[] = {
+ 0x6c, 0xf4, 0xf2, 0xa9, 0xba, 0x56, 0x11, 0x60, 0xcc, 0x0f, 0x91, 0x02,
+ 0xd7, 0x7f, 0x56, 0x63, 0x4a, 0x86, 0x7d, 0x4f, 0x4a, 0xa0, 0xaf, 0xce,
+ 0x17, 0x5d, 0x99, 0x4a, 0x40, 0x74, 0x45, 0xdc,
+};
+static const unsigned char kat1877_retbits[] = {
+ 0x89, 0xcb, 0xbd, 0x15, 0xb4, 0xf0, 0xd1, 0xac, 0xa8, 0x4a, 0x44, 0x73,
+ 0x13, 0xe9, 0xbc, 0x83, 0xa6, 0x4a, 0x87, 0xc7, 0x07, 0x5b, 0x1c, 0x74,
+ 0xde, 0x18, 0x4b, 0xda, 0x6c, 0x6a, 0xb6, 0x69, 0xc8, 0xef, 0x7b, 0x8c,
+ 0x6b, 0xca, 0x3d, 0xe3, 0x28, 0xa5, 0xd3, 0x24, 0xbf, 0xa2, 0x79, 0x52,
+ 0xa8, 0x34, 0x24, 0xbb, 0xd4, 0x0c, 0xac, 0x99, 0x51, 0x03, 0x30, 0xe9,
+ 0x59, 0xb0, 0x2d, 0xc7,
+};
+static const struct drbg_kat_pr_false kat1877_t = {
+ 1, kat1877_entropyin, kat1877_nonce, kat1877_persstr,
+ kat1877_entropyinreseed, kat1877_addinreseed, kat1877_addin0,
+ kat1877_addin1, kat1877_retbits
+};
+static const struct drbg_kat kat1877 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1877_t
+};
+
+static const unsigned char kat1878_entropyin[] = {
+ 0xc4, 0xf0, 0x88, 0xcc, 0x36, 0x9b, 0x2c, 0x22, 0x76, 0x67, 0xe8, 0x29,
+ 0x78, 0xf3, 0x4d, 0x26, 0x78, 0xd1, 0xa5, 0x3d, 0xe1, 0xf0, 0x56, 0x55,
+};
+static const unsigned char kat1878_nonce[] = {
+ 0x61, 0x95, 0xe0, 0x26, 0x70, 0xba, 0xe3, 0xbe, 0xdb, 0x2f, 0xf0, 0xca,
+ 0x0f, 0x7a, 0x05, 0x49,
+};
+static const unsigned char kat1878_persstr[] = {0};
+static const unsigned char kat1878_entropyinreseed[] = {
+ 0x1f, 0x37, 0xe7, 0x80, 0xfb, 0x27, 0xd7, 0x43, 0xc5, 0x2d, 0xe9, 0xbb,
+ 0x71, 0xd4, 0xdd, 0xca, 0x74, 0x39, 0x00, 0x15, 0x4a, 0x8d, 0x46, 0x22,
+};
+static const unsigned char kat1878_addinreseed[] = {
+ 0x5f, 0x05, 0x9a, 0xb2, 0xc4, 0x7e, 0x54, 0xf7, 0x73, 0x5d, 0x85, 0x0d,
+ 0x49, 0x23, 0x06, 0x96, 0xd5, 0x22, 0x38, 0xc6, 0xab, 0x28, 0xf2, 0xb1,
+ 0x19, 0x94, 0x54, 0x53, 0x89, 0x35, 0x0f, 0x78,
+};
+static const unsigned char kat1878_addin0[] = {
+ 0xcc, 0x3e, 0x9e, 0xbc, 0xf2, 0xad, 0xd4, 0x63, 0x17, 0x7b, 0xc1, 0x8a,
+ 0xdd, 0xc3, 0x30, 0x60, 0x0d, 0x42, 0x43, 0x1f, 0x77, 0x88, 0xf7, 0x62,
+ 0xcd, 0x69, 0xce, 0xe2, 0x1e, 0x14, 0x1b, 0x9e,
+};
+static const unsigned char kat1878_addin1[] = {
+ 0xec, 0x29, 0x2f, 0x2e, 0x19, 0xd9, 0x51, 0x0d, 0xc3, 0x99, 0x3c, 0x79,
+ 0x60, 0x93, 0xf7, 0xe2, 0x37, 0x26, 0xd2, 0xae, 0x1c, 0x4f, 0xa7, 0x6b,
+ 0x95, 0xf1, 0x18, 0xce, 0x39, 0x06, 0x10, 0xc5,
+};
+static const unsigned char kat1878_retbits[] = {
+ 0xec, 0xe8, 0xaf, 0x0e, 0x89, 0xf0, 0xad, 0x9d, 0xd2, 0x10, 0xe8, 0xb3,
+ 0x28, 0x26, 0xc1, 0x5d, 0x15, 0x3e, 0x57, 0x9d, 0x26, 0x04, 0x46, 0xbd,
+ 0xf1, 0x08, 0x12, 0xca, 0xe3, 0xd6, 0x87, 0x55, 0x61, 0x8a, 0xe3, 0xc2,
+ 0xef, 0xe3, 0x29, 0x38, 0x7e, 0x09, 0x04, 0xae, 0xc1, 0x54, 0x10, 0xb3,
+ 0x01, 0x00, 0xbf, 0xd5, 0xd2, 0xb3, 0xe4, 0xdf, 0x87, 0x91, 0xf6, 0x73,
+ 0xdc, 0x05, 0xe4, 0x93,
+};
+static const struct drbg_kat_pr_false kat1878_t = {
+ 2, kat1878_entropyin, kat1878_nonce, kat1878_persstr,
+ kat1878_entropyinreseed, kat1878_addinreseed, kat1878_addin0,
+ kat1878_addin1, kat1878_retbits
+};
+static const struct drbg_kat kat1878 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1878_t
+};
+
+static const unsigned char kat1879_entropyin[] = {
+ 0x73, 0x58, 0xd4, 0x37, 0x39, 0xe2, 0xd3, 0x1d, 0x55, 0x3e, 0xa4, 0x84,
+ 0x2c, 0x38, 0xf8, 0xb9, 0x44, 0x6f, 0x72, 0x24, 0x21, 0xeb, 0xb0, 0x02,
+};
+static const unsigned char kat1879_nonce[] = {
+ 0xef, 0xc2, 0x6b, 0x24, 0x50, 0x5b, 0xc4, 0x57, 0xa2, 0x33, 0x98, 0x2b,
+ 0x8a, 0xbf, 0x64, 0xa0,
+};
+static const unsigned char kat1879_persstr[] = {0};
+static const unsigned char kat1879_entropyinreseed[] = {
+ 0x8f, 0xa7, 0x89, 0xdd, 0xc0, 0xa5, 0x31, 0x4d, 0x8e, 0x9f, 0xad, 0x3e,
+ 0xf9, 0xa9, 0xf8, 0x36, 0x00, 0xe5, 0xb0, 0x19, 0x01, 0x68, 0xc5, 0x48,
+};
+static const unsigned char kat1879_addinreseed[] = {
+ 0xce, 0x6b, 0x37, 0x64, 0x64, 0x01, 0xf7, 0x80, 0x6c, 0x6c, 0x9f, 0x9a,
+ 0x4b, 0xec, 0x98, 0xf7, 0x0c, 0xcc, 0x5c, 0x1e, 0xf1, 0xf4, 0xee, 0xa1,
+ 0xce, 0x8a, 0xfd, 0x09, 0x2f, 0x31, 0x62, 0x6d,
+};
+static const unsigned char kat1879_addin0[] = {
+ 0xf0, 0x31, 0x5b, 0x4c, 0xdb, 0x0c, 0x92, 0xd3, 0x46, 0x14, 0x4b, 0xdb,
+ 0xc3, 0x57, 0x32, 0xf4, 0xe3, 0xeb, 0xec, 0xa5, 0xf3, 0x90, 0x74, 0xbf,
+ 0x9b, 0x84, 0x91, 0x70, 0xb6, 0xa3, 0x14, 0x4b,
+};
+static const unsigned char kat1879_addin1[] = {
+ 0x91, 0xc2, 0x89, 0x61, 0xeb, 0x16, 0xda, 0x37, 0x15, 0xe9, 0x54, 0x46,
+ 0x23, 0x8e, 0xdd, 0xf3, 0x46, 0x02, 0xb3, 0x69, 0xf7, 0xf8, 0x07, 0xbd,
+ 0xb7, 0x4b, 0x97, 0xf1, 0xe1, 0xa1, 0xc8, 0xb8,
+};
+static const unsigned char kat1879_retbits[] = {
+ 0x81, 0x50, 0xca, 0xed, 0x36, 0x08, 0xad, 0x8b, 0xa1, 0x0a, 0x60, 0x5a,
+ 0x9c, 0xca, 0x68, 0x8d, 0x2a, 0x1d, 0x97, 0xd4, 0xf6, 0x52, 0xd3, 0xb3,
+ 0x5c, 0xd6, 0xc5, 0xeb, 0xae, 0x3f, 0x62, 0xdf, 0xbc, 0xab, 0xeb, 0xa8,
+ 0xe1, 0x13, 0x87, 0x7b, 0x28, 0x1b, 0x70, 0xd2, 0x3d, 0x5a, 0xe9, 0xa2,
+ 0x05, 0xfc, 0x46, 0xd9, 0xe6, 0x38, 0x32, 0x91, 0xb0, 0xb5, 0x4e, 0x13,
+ 0x24, 0x10, 0x91, 0x5e,
+};
+static const struct drbg_kat_pr_false kat1879_t = {
+ 3, kat1879_entropyin, kat1879_nonce, kat1879_persstr,
+ kat1879_entropyinreseed, kat1879_addinreseed, kat1879_addin0,
+ kat1879_addin1, kat1879_retbits
+};
+static const struct drbg_kat kat1879 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1879_t
+};
+
+static const unsigned char kat1880_entropyin[] = {
+ 0x59, 0x9b, 0xe5, 0x01, 0xc1, 0xfd, 0xd8, 0xaa, 0xc4, 0xdf, 0x29, 0x4f,
+ 0x32, 0xc0, 0x15, 0x9b, 0x00, 0xc6, 0x61, 0x64, 0x59, 0x55, 0x93, 0x8e,
+};
+static const unsigned char kat1880_nonce[] = {
+ 0xdc, 0x4a, 0xbf, 0xa8, 0x6c, 0x4b, 0x7a, 0x47, 0x46, 0x68, 0xa5, 0x64,
+ 0xd5, 0x62, 0x1e, 0x17,
+};
+static const unsigned char kat1880_persstr[] = {0};
+static const unsigned char kat1880_entropyinreseed[] = {
+ 0xe0, 0xb7, 0xa4, 0x00, 0xb2, 0x3a, 0xb2, 0xce, 0xcc, 0x2a, 0xf1, 0xed,
+ 0x4c, 0x80, 0x39, 0x13, 0x08, 0x7a, 0x9a, 0xf8, 0x5a, 0x7d, 0xc5, 0x08,
+};
+static const unsigned char kat1880_addinreseed[] = {
+ 0xdd, 0x24, 0xc8, 0x97, 0x57, 0x60, 0x02, 0xbc, 0x66, 0x5f, 0xd5, 0xa2,
+ 0xc5, 0x7a, 0x43, 0x93, 0x45, 0xac, 0xd0, 0x46, 0x90, 0xba, 0x7b, 0xfa,
+ 0x1c, 0xfd, 0x65, 0x5c, 0x73, 0x67, 0x67, 0xf1,
+};
+static const unsigned char kat1880_addin0[] = {
+ 0x87, 0xeb, 0x59, 0xa1, 0x9b, 0xf8, 0x72, 0x6b, 0x41, 0x3c, 0xe8, 0xff,
+ 0xd8, 0x59, 0xc0, 0xbf, 0x96, 0x39, 0xf0, 0x01, 0x3d, 0x4a, 0x58, 0xa0,
+ 0xab, 0x8e, 0xe9, 0x3a, 0xa5, 0xb3, 0xf7, 0x9e,
+};
+static const unsigned char kat1880_addin1[] = {
+ 0x8c, 0x12, 0xfc, 0x58, 0x83, 0x3f, 0xae, 0x3e, 0xf2, 0xf0, 0x87, 0x6b,
+ 0xeb, 0x2d, 0xea, 0xf6, 0xca, 0xd9, 0x5c, 0xf4, 0x9b, 0x04, 0x81, 0x21,
+ 0xe0, 0x59, 0x3a, 0xcf, 0x64, 0xc9, 0x22, 0x99,
+};
+static const unsigned char kat1880_retbits[] = {
+ 0xf3, 0x43, 0x4f, 0xdb, 0x75, 0xf2, 0xe2, 0x1e, 0xfe, 0xe2, 0x61, 0xfe,
+ 0x9a, 0xfb, 0xeb, 0x7b, 0x71, 0xe2, 0x10, 0xf1, 0x6e, 0x3b, 0x61, 0x23,
+ 0x40, 0xe2, 0xf5, 0x87, 0xd9, 0x58, 0xdf, 0x6d, 0x8a, 0x83, 0xf1, 0x91,
+ 0x6e, 0x75, 0x77, 0xb8, 0x9c, 0x7c, 0xd3, 0xb0, 0x1c, 0x60, 0x4e, 0x92,
+ 0xb0, 0xda, 0xc3, 0xa0, 0x4a, 0x3c, 0x58, 0xd7, 0x37, 0x7b, 0xb2, 0x05,
+ 0xce, 0xc1, 0xa5, 0x23,
+};
+static const struct drbg_kat_pr_false kat1880_t = {
+ 4, kat1880_entropyin, kat1880_nonce, kat1880_persstr,
+ kat1880_entropyinreseed, kat1880_addinreseed, kat1880_addin0,
+ kat1880_addin1, kat1880_retbits
+};
+static const struct drbg_kat kat1880 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1880_t
+};
+
+static const unsigned char kat1881_entropyin[] = {
+ 0xe7, 0xa6, 0x39, 0x69, 0x85, 0x3b, 0x21, 0xc8, 0xa4, 0x1f, 0x9c, 0xbd,
+ 0x11, 0x25, 0xba, 0xc6, 0x6a, 0xbc, 0x87, 0x71, 0xf3, 0x49, 0xc5, 0xb5,
+};
+static const unsigned char kat1881_nonce[] = {
+ 0x45, 0xe5, 0x89, 0x8e, 0x4c, 0xd7, 0xf6, 0xee, 0x15, 0xee, 0xcc, 0xaa,
+ 0x20, 0x43, 0x76, 0xaf,
+};
+static const unsigned char kat1881_persstr[] = {0};
+static const unsigned char kat1881_entropyinreseed[] = {
+ 0x46, 0x81, 0xc0, 0xdc, 0x64, 0x35, 0x48, 0x3a, 0xbe, 0x87, 0x71, 0x1f,
+ 0xd2, 0xd1, 0x29, 0x2a, 0x3d, 0xbb, 0xa7, 0xee, 0x13, 0xa1, 0x8b, 0x79,
+};
+static const unsigned char kat1881_addinreseed[] = {
+ 0x43, 0x79, 0x0f, 0x50, 0x88, 0x2e, 0xf2, 0xcc, 0x65, 0xb3, 0x73, 0x6a,
+ 0xdc, 0x17, 0x05, 0x2c, 0x2f, 0x65, 0x99, 0x04, 0x57, 0x9c, 0x48, 0xfb,
+ 0xbc, 0x8b, 0xf8, 0x96, 0xc0, 0x0d, 0xdd, 0xb6,
+};
+static const unsigned char kat1881_addin0[] = {
+ 0x68, 0x66, 0x6c, 0x2a, 0x39, 0x11, 0xc6, 0xef, 0x22, 0x0b, 0x67, 0x65,
+ 0xb4, 0x37, 0xa5, 0xf6, 0x99, 0x31, 0xd5, 0xc5, 0x47, 0x63, 0xb6, 0x42,
+ 0xe4, 0xc3, 0x84, 0xd8, 0xaf, 0x76, 0xc0, 0xac,
+};
+static const unsigned char kat1881_addin1[] = {
+ 0x31, 0x21, 0xd7, 0x1c, 0x5d, 0x3d, 0x56, 0x44, 0x2c, 0x17, 0xc3, 0x7f,
+ 0xbf, 0x7e, 0x5b, 0xf6, 0x79, 0x82, 0xda, 0x1d, 0xbe, 0xbc, 0x0c, 0x9c,
+ 0xd5, 0x11, 0xec, 0x81, 0x05, 0x9f, 0xf7, 0x01,
+};
+static const unsigned char kat1881_retbits[] = {
+ 0xd2, 0x97, 0x9b, 0xec, 0x69, 0x23, 0xcd, 0x21, 0x06, 0x5e, 0x7b, 0xe3,
+ 0x4f, 0xa1, 0x8d, 0x3e, 0x59, 0x1c, 0xed, 0x66, 0x9b, 0x02, 0x93, 0xb3,
+ 0xcd, 0x0d, 0xbf, 0xcd, 0x79, 0xd0, 0xa7, 0x06, 0x27, 0x38, 0x42, 0xd3,
+ 0x79, 0x2f, 0x77, 0xad, 0x67, 0x85, 0x3a, 0x41, 0x1a, 0xa2, 0x8d, 0x76,
+ 0x82, 0xff, 0x37, 0xde, 0x2b, 0x4f, 0x36, 0xff, 0xbf, 0x7f, 0x40, 0x03,
+ 0xb2, 0x79, 0x62, 0x7d,
+};
+static const struct drbg_kat_pr_false kat1881_t = {
+ 5, kat1881_entropyin, kat1881_nonce, kat1881_persstr,
+ kat1881_entropyinreseed, kat1881_addinreseed, kat1881_addin0,
+ kat1881_addin1, kat1881_retbits
+};
+static const struct drbg_kat kat1881 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1881_t
+};
+
+static const unsigned char kat1882_entropyin[] = {
+ 0xc6, 0xee, 0x4e, 0xd1, 0x61, 0x1b, 0x36, 0x19, 0x7c, 0x29, 0xe7, 0x2e,
+ 0x27, 0xaf, 0x2e, 0x5b, 0x50, 0x47, 0x6c, 0x85, 0x31, 0x88, 0xd7, 0x15,
+};
+static const unsigned char kat1882_nonce[] = {
+ 0x87, 0x3a, 0x27, 0x5e, 0x5a, 0xa1, 0xe9, 0xde, 0x62, 0xa1, 0x8c, 0x25,
+ 0xb1, 0x46, 0xc2, 0x36,
+};
+static const unsigned char kat1882_persstr[] = {0};
+static const unsigned char kat1882_entropyinreseed[] = {
+ 0xc0, 0xe1, 0xe5, 0xd4, 0xa7, 0x3a, 0xb1, 0xeb, 0x78, 0xfa, 0xd2, 0x3a,
+ 0x81, 0xd5, 0xf7, 0x2b, 0xea, 0x2f, 0xec, 0xd5, 0xac, 0x2d, 0x87, 0x7e,
+};
+static const unsigned char kat1882_addinreseed[] = {
+ 0x3c, 0xbc, 0x7e, 0xa5, 0xe6, 0x34, 0xca, 0x5f, 0xf0, 0xfb, 0x82, 0x29,
+ 0x95, 0x5d, 0x86, 0x0e, 0x1b, 0xac, 0xb2, 0xea, 0x41, 0xd0, 0xf8, 0xf7,
+ 0x82, 0xc8, 0xb0, 0x2e, 0x00, 0x16, 0xce, 0xc9,
+};
+static const unsigned char kat1882_addin0[] = {
+ 0xbe, 0xeb, 0x14, 0x8c, 0xa4, 0x71, 0x84, 0x20, 0x21, 0xde, 0xfc, 0x36,
+ 0x5c, 0xbb, 0x57, 0x09, 0xbb, 0xbf, 0x70, 0xe1, 0x21, 0x3c, 0xe6, 0xff,
+ 0xe6, 0x0d, 0xb0, 0xce, 0xaf, 0x9e, 0xac, 0xec,
+};
+static const unsigned char kat1882_addin1[] = {
+ 0x8e, 0x81, 0xc7, 0xec, 0xaf, 0xc3, 0x65, 0xa3, 0x20, 0xc4, 0xad, 0xea,
+ 0x72, 0x94, 0x3e, 0x1b, 0xb0, 0xee, 0xab, 0x84, 0xee, 0x0e, 0x37, 0xd2,
+ 0xa4, 0x9e, 0x6b, 0xf0, 0xa5, 0x2d, 0xb1, 0xa4,
+};
+static const unsigned char kat1882_retbits[] = {
+ 0x9b, 0x4d, 0xfc, 0x68, 0x35, 0xa9, 0xf6, 0x4d, 0x77, 0x80, 0xf4, 0x74,
+ 0xd2, 0xb6, 0xe1, 0xdc, 0xfc, 0x77, 0x42, 0x3c, 0x4a, 0xb0, 0x3f, 0x3e,
+ 0xb5, 0xfd, 0x2a, 0x50, 0x52, 0xdf, 0x3f, 0x71, 0x9d, 0x1d, 0x54, 0x8e,
+ 0x3e, 0x5a, 0x2c, 0xd5, 0x0b, 0x8a, 0x49, 0xa1, 0x80, 0xa3, 0xb3, 0xa2,
+ 0xfe, 0x26, 0xa1, 0xfe, 0xae, 0x15, 0xa9, 0xf7, 0x5a, 0x81, 0xd7, 0xa1,
+ 0x8a, 0xa7, 0x74, 0xe4,
+};
+static const struct drbg_kat_pr_false kat1882_t = {
+ 6, kat1882_entropyin, kat1882_nonce, kat1882_persstr,
+ kat1882_entropyinreseed, kat1882_addinreseed, kat1882_addin0,
+ kat1882_addin1, kat1882_retbits
+};
+static const struct drbg_kat kat1882 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1882_t
+};
+
+static const unsigned char kat1883_entropyin[] = {
+ 0xa7, 0xc9, 0x04, 0x01, 0xea, 0xd7, 0xcd, 0x97, 0x84, 0xf6, 0x05, 0x19,
+ 0x7d, 0x5e, 0xd8, 0xbd, 0xae, 0x93, 0xf3, 0x5d, 0x39, 0x0e, 0xd4, 0xf9,
+};
+static const unsigned char kat1883_nonce[] = {
+ 0xe0, 0xbd, 0x52, 0xa2, 0xcc, 0xa3, 0xba, 0x7c, 0x6c, 0xf8, 0xf6, 0x5f,
+ 0xe6, 0x52, 0x1f, 0xb6,
+};
+static const unsigned char kat1883_persstr[] = {0};
+static const unsigned char kat1883_entropyinreseed[] = {
+ 0xcf, 0x4b, 0x11, 0xd8, 0x27, 0x61, 0x62, 0xc2, 0xf3, 0xc6, 0x3d, 0x38,
+ 0x6f, 0x9f, 0xaa, 0x34, 0xe3, 0x42, 0x00, 0x70, 0xc7, 0xa1, 0x09, 0x45,
+};
+static const unsigned char kat1883_addinreseed[] = {
+ 0x21, 0xeb, 0x57, 0x52, 0x5a, 0x88, 0xdf, 0x1b, 0x5a, 0xf4, 0xf5, 0xf1,
+ 0x8a, 0x2e, 0x5f, 0x2a, 0x4c, 0x8a, 0x18, 0x79, 0xd7, 0x6d, 0xe9, 0xb9,
+ 0x2a, 0xc7, 0x53, 0xec, 0x92, 0x4c, 0x02, 0x40,
+};
+static const unsigned char kat1883_addin0[] = {
+ 0xc5, 0x45, 0x36, 0x1d, 0xde, 0xe8, 0x15, 0x0a, 0xe9, 0x8a, 0x9d, 0xe9,
+ 0xff, 0x46, 0x96, 0x5f, 0xb4, 0x26, 0x16, 0xea, 0x85, 0xfe, 0x25, 0x8a,
+ 0x34, 0xdc, 0x26, 0x26, 0x73, 0x2a, 0xbf, 0x73,
+};
+static const unsigned char kat1883_addin1[] = {
+ 0x37, 0x4c, 0x4d, 0x96, 0x63, 0x98, 0x1b, 0x1f, 0xcf, 0xf2, 0x2f, 0xb2,
+ 0xbf, 0xfa, 0xf2, 0xa5, 0x76, 0x6f, 0x7f, 0xb7, 0x3a, 0xe7, 0x6b, 0x1f,
+ 0x4a, 0x49, 0xe7, 0x6c, 0x41, 0xbf, 0xe0, 0xef,
+};
+static const unsigned char kat1883_retbits[] = {
+ 0x7a, 0xff, 0x3b, 0xbc, 0xad, 0x25, 0xd1, 0xc6, 0x8b, 0x3b, 0xa0, 0xdf,
+ 0xd4, 0xc3, 0x40, 0x95, 0xd5, 0xd6, 0x56, 0x37, 0x4c, 0xb0, 0xd6, 0x69,
+ 0xcb, 0x32, 0x42, 0xc6, 0x10, 0xa6, 0x97, 0xa7, 0xe2, 0xf3, 0x6c, 0xe9,
+ 0x41, 0x6a, 0xf2, 0xc8, 0x5f, 0xe0, 0x21, 0xf4, 0xa5, 0xeb, 0x24, 0xec,
+ 0x72, 0xe9, 0xcd, 0xa1, 0x45, 0x9c, 0xb9, 0x12, 0xea, 0xb0, 0x6a, 0x0d,
+ 0xbe, 0xf3, 0xa5, 0x01,
+};
+static const struct drbg_kat_pr_false kat1883_t = {
+ 7, kat1883_entropyin, kat1883_nonce, kat1883_persstr,
+ kat1883_entropyinreseed, kat1883_addinreseed, kat1883_addin0,
+ kat1883_addin1, kat1883_retbits
+};
+static const struct drbg_kat kat1883 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1883_t
+};
+
+static const unsigned char kat1884_entropyin[] = {
+ 0x53, 0x81, 0x4b, 0x3e, 0x96, 0x45, 0xf1, 0x77, 0xbf, 0xb2, 0xcc, 0xf7,
+ 0x58, 0xf1, 0x2e, 0xc1, 0x45, 0xf6, 0x79, 0xed, 0x85, 0x62, 0x21, 0xeb,
+};
+static const unsigned char kat1884_nonce[] = {
+ 0x76, 0xbd, 0x9b, 0x8e, 0xd5, 0x36, 0xd3, 0x8d, 0xf7, 0xcb, 0x49, 0x6d,
+ 0xb5, 0xb1, 0x56, 0x23,
+};
+static const unsigned char kat1884_persstr[] = {0};
+static const unsigned char kat1884_entropyinreseed[] = {
+ 0x7a, 0xb2, 0x0a, 0xdb, 0xd8, 0x27, 0x52, 0xb2, 0x29, 0x2d, 0x9f, 0x17,
+ 0xae, 0xcb, 0x01, 0xdb, 0xb2, 0x7c, 0x31, 0x49, 0xab, 0xa6, 0xc6, 0xdf,
+};
+static const unsigned char kat1884_addinreseed[] = {
+ 0x82, 0xea, 0xed, 0x42, 0xfd, 0x77, 0xe6, 0xad, 0x8f, 0x81, 0xe7, 0xbf,
+ 0x18, 0x21, 0x69, 0x1c, 0x2c, 0x00, 0xba, 0xb9, 0x4c, 0x85, 0x7a, 0x6e,
+ 0xc0, 0x2c, 0x2e, 0xbc, 0xd3, 0xfc, 0xa2, 0xee,
+};
+static const unsigned char kat1884_addin0[] = {
+ 0x1b, 0x52, 0xb0, 0x27, 0x04, 0x42, 0xfe, 0x5b, 0x87, 0xde, 0x64, 0x0f,
+ 0xa8, 0x60, 0x74, 0x7f, 0xb3, 0x01, 0x94, 0xa9, 0xe9, 0xd1, 0x88, 0x95,
+ 0x00, 0x2a, 0x3d, 0x37, 0x8f, 0x54, 0x33, 0x5c,
+};
+static const unsigned char kat1884_addin1[] = {
+ 0x93, 0x54, 0xed, 0x25, 0x8f, 0x0e, 0x59, 0x95, 0xb4, 0xae, 0x13, 0x82,
+ 0x67, 0x1f, 0xe0, 0x65, 0x92, 0x4b, 0x54, 0x77, 0x66, 0x8d, 0x88, 0xe4,
+ 0xeb, 0xce, 0x36, 0x2b, 0x2d, 0x94, 0x93, 0xec,
+};
+static const unsigned char kat1884_retbits[] = {
+ 0x3b, 0x24, 0x61, 0x32, 0x28, 0x82, 0x08, 0x85, 0x34, 0x5e, 0xc8, 0xeb,
+ 0x70, 0x3b, 0x34, 0xc1, 0x9b, 0xab, 0x15, 0x03, 0xb4, 0x24, 0xd6, 0x5e,
+ 0xa3, 0x72, 0xe8, 0x3f, 0x2a, 0xbd, 0xe7, 0xbc, 0x74, 0xb0, 0x3b, 0xdd,
+ 0x43, 0xa9, 0x02, 0x65, 0xa1, 0x79, 0xc4, 0x34, 0xac, 0x7d, 0x93, 0x69,
+ 0xed, 0x0b, 0x5e, 0x8a, 0xde, 0xa6, 0x84, 0x04, 0x79, 0x74, 0xaa, 0x89,
+ 0x47, 0xdd, 0xea, 0x88,
+};
+static const struct drbg_kat_pr_false kat1884_t = {
+ 8, kat1884_entropyin, kat1884_nonce, kat1884_persstr,
+ kat1884_entropyinreseed, kat1884_addinreseed, kat1884_addin0,
+ kat1884_addin1, kat1884_retbits
+};
+static const struct drbg_kat kat1884 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1884_t
+};
+
+static const unsigned char kat1885_entropyin[] = {
+ 0xb7, 0xdb, 0xea, 0x9d, 0x0a, 0x65, 0x43, 0x06, 0x95, 0xf4, 0x5c, 0x58,
+ 0xad, 0xc6, 0x68, 0x96, 0x77, 0xd3, 0xb3, 0xf3, 0x24, 0x69, 0xb9, 0x4a,
+};
+static const unsigned char kat1885_nonce[] = {
+ 0x12, 0x5e, 0x64, 0x85, 0xef, 0x1d, 0x71, 0xd4, 0x9c, 0x64, 0x17, 0x6f,
+ 0x5f, 0xbe, 0x13, 0xf6,
+};
+static const unsigned char kat1885_persstr[] = {0};
+static const unsigned char kat1885_entropyinreseed[] = {
+ 0x86, 0x0c, 0x03, 0x16, 0x47, 0xa2, 0xe0, 0x22, 0xc3, 0x45, 0x74, 0x5a,
+ 0x84, 0xef, 0x63, 0x60, 0x34, 0x14, 0xe1, 0x1e, 0x64, 0xb3, 0xed, 0x32,
+};
+static const unsigned char kat1885_addinreseed[] = {
+ 0x7e, 0x00, 0xca, 0xaa, 0xfd, 0x46, 0x46, 0x45, 0x34, 0x72, 0x5c, 0x0d,
+ 0x99, 0xb5, 0x26, 0x54, 0x56, 0xa5, 0xd6, 0x59, 0xb7, 0x63, 0xdd, 0xf6,
+ 0x79, 0x81, 0x34, 0x34, 0x1f, 0xa6, 0xa4, 0xbb,
+};
+static const unsigned char kat1885_addin0[] = {
+ 0xfd, 0xd9, 0x13, 0xfc, 0xac, 0x4d, 0x32, 0xb2, 0x31, 0x30, 0x3a, 0x65,
+ 0x36, 0x84, 0x24, 0x85, 0x5d, 0xcb, 0xba, 0x49, 0xc1, 0xe5, 0xf5, 0x18,
+ 0x13, 0xa6, 0x25, 0x36, 0x53, 0xd9, 0x94, 0x47,
+};
+static const unsigned char kat1885_addin1[] = {
+ 0x14, 0xdd, 0x4b, 0x3b, 0xbf, 0x47, 0x6c, 0xc7, 0x70, 0xdc, 0x3a, 0xa0,
+ 0x01, 0xd5, 0x47, 0x3c, 0xc9, 0x9a, 0x77, 0xb4, 0xcb, 0x13, 0xd5, 0x1f,
+ 0x6e, 0xfc, 0x37, 0x0a, 0xdf, 0x4b, 0x90, 0x2b,
+};
+static const unsigned char kat1885_retbits[] = {
+ 0xa2, 0xb1, 0x5d, 0x99, 0x84, 0xdd, 0x5c, 0xb0, 0x0a, 0x33, 0x39, 0xed,
+ 0x0a, 0xfb, 0x3c, 0xf3, 0xb9, 0x0d, 0xfc, 0xca, 0x4c, 0xdf, 0x87, 0x8a,
+ 0x6e, 0xfa, 0xcc, 0x9e, 0xe5, 0x48, 0xb8, 0x31, 0x8c, 0x20, 0xfb, 0xc6,
+ 0x14, 0x4a, 0x0f, 0xa8, 0xdb, 0x23, 0x00, 0x8c, 0xb2, 0xfc, 0xfb, 0x09,
+ 0x48, 0xf0, 0x4b, 0x17, 0xc6, 0x5c, 0xc6, 0x84, 0xde, 0x92, 0x72, 0x45,
+ 0xff, 0xed, 0xd5, 0x5a,
+};
+static const struct drbg_kat_pr_false kat1885_t = {
+ 9, kat1885_entropyin, kat1885_nonce, kat1885_persstr,
+ kat1885_entropyinreseed, kat1885_addinreseed, kat1885_addin0,
+ kat1885_addin1, kat1885_retbits
+};
+static const struct drbg_kat kat1885 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1885_t
+};
+
+static const unsigned char kat1886_entropyin[] = {
+ 0x06, 0xa9, 0xbc, 0xdd, 0x5b, 0xd8, 0x71, 0x33, 0x9b, 0xb8, 0xf0, 0x36,
+ 0xee, 0xb1, 0xa3, 0x2e, 0x1c, 0x65, 0x53, 0xc9, 0x90, 0xc6, 0x26, 0xd6,
+};
+static const unsigned char kat1886_nonce[] = {
+ 0x43, 0xb3, 0x0d, 0x3c, 0x04, 0xd8, 0x7d, 0xea, 0xa6, 0x23, 0x71, 0x8a,
+ 0xdd, 0x57, 0xd8, 0xc6,
+};
+static const unsigned char kat1886_persstr[] = {0};
+static const unsigned char kat1886_entropyinreseed[] = {
+ 0x31, 0x0a, 0x06, 0x48, 0xfa, 0x83, 0x81, 0x31, 0xe8, 0xbc, 0xbb, 0xed,
+ 0x29, 0xde, 0x0f, 0x39, 0x7d, 0xa2, 0x98, 0x11, 0x37, 0xe1, 0xf1, 0x4d,
+};
+static const unsigned char kat1886_addinreseed[] = {
+ 0x23, 0x0d, 0xeb, 0xdf, 0x54, 0x93, 0x52, 0x13, 0xae, 0x5b, 0x3c, 0x19,
+ 0x75, 0x8d, 0xf9, 0x2b, 0x8d, 0x63, 0x59, 0x69, 0xcb, 0x3c, 0xcb, 0x80,
+ 0x29, 0x38, 0xcc, 0xf9, 0x3b, 0x3b, 0xcb, 0x92,
+};
+static const unsigned char kat1886_addin0[] = {
+ 0xb5, 0xbb, 0x93, 0xab, 0x9d, 0xa9, 0xcc, 0x5b, 0x57, 0x71, 0x2c, 0x64,
+ 0x9e, 0x46, 0xe9, 0x9d, 0xc9, 0x2b, 0x63, 0x4b, 0x18, 0x28, 0xf9, 0x09,
+ 0xe9, 0x8e, 0xb2, 0x38, 0xbd, 0xd4, 0x61, 0xc8,
+};
+static const unsigned char kat1886_addin1[] = {
+ 0x48, 0x95, 0x70, 0x9c, 0x29, 0xd4, 0x02, 0xdf, 0x99, 0x9e, 0x43, 0x01,
+ 0xfc, 0xee, 0x4a, 0xbe, 0x5a, 0xc5, 0xc6, 0xab, 0x13, 0xbf, 0x31, 0xab,
+ 0x5d, 0xe0, 0x94, 0x6e, 0x75, 0x03, 0x97, 0x02,
+};
+static const unsigned char kat1886_retbits[] = {
+ 0x5e, 0xf5, 0x16, 0x1c, 0xa1, 0xa5, 0xa9, 0xac, 0x4f, 0x9e, 0x93, 0x0f,
+ 0x3b, 0xce, 0x13, 0xd4, 0x12, 0x2c, 0xe2, 0x7e, 0x0d, 0xb9, 0x33, 0x9e,
+ 0x05, 0xe1, 0x03, 0x8e, 0x35, 0x89, 0xe3, 0x00, 0xbf, 0x72, 0x3d, 0x50,
+ 0x37, 0x01, 0x61, 0xb7, 0x5d, 0x5a, 0xf0, 0x49, 0x0c, 0x74, 0xba, 0x3c,
+ 0xb9, 0x4e, 0x4a, 0xcf, 0x10, 0x50, 0xd4, 0x77, 0x5d, 0xa9, 0x6c, 0xfa,
+ 0x9d, 0x10, 0x89, 0x86,
+};
+static const struct drbg_kat_pr_false kat1886_t = {
+ 10, kat1886_entropyin, kat1886_nonce, kat1886_persstr,
+ kat1886_entropyinreseed, kat1886_addinreseed, kat1886_addin0,
+ kat1886_addin1, kat1886_retbits
+};
+static const struct drbg_kat kat1886 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1886_t
+};
+
+static const unsigned char kat1887_entropyin[] = {
+ 0xe3, 0x2c, 0xce, 0x1d, 0x96, 0x22, 0xf8, 0xf0, 0x45, 0x08, 0xe3, 0x66,
+ 0x1e, 0x63, 0x5c, 0x46, 0x62, 0x6e, 0x00, 0x70, 0xf6, 0x56, 0x07, 0x99,
+};
+static const unsigned char kat1887_nonce[] = {
+ 0xd4, 0x89, 0xae, 0x9d, 0x83, 0x01, 0x1e, 0x32, 0x39, 0xb1, 0xd1, 0x11,
+ 0xff, 0x89, 0xc2, 0x0b,
+};
+static const unsigned char kat1887_persstr[] = {0};
+static const unsigned char kat1887_entropyinreseed[] = {
+ 0x84, 0x91, 0xcb, 0x65, 0x4e, 0x46, 0x4b, 0x0e, 0xbc, 0xf0, 0x37, 0x29,
+ 0x71, 0xdc, 0xb0, 0x87, 0x62, 0xa7, 0xdf, 0x82, 0x84, 0xda, 0xf9, 0x0e,
+};
+static const unsigned char kat1887_addinreseed[] = {
+ 0x69, 0x46, 0x2c, 0x9f, 0x14, 0x86, 0x28, 0xdf, 0x54, 0x32, 0x4e, 0xc8,
+ 0x54, 0xde, 0x81, 0x6e, 0x5f, 0xa6, 0x36, 0x6f, 0x8f, 0x5e, 0x0a, 0x3a,
+ 0xde, 0x9c, 0x12, 0x5e, 0x2d, 0x88, 0xc1, 0x2b,
+};
+static const unsigned char kat1887_addin0[] = {
+ 0x53, 0x5b, 0x2c, 0xc4, 0x72, 0x65, 0x21, 0xb0, 0xa6, 0x6f, 0xb8, 0x0f,
+ 0xce, 0xcc, 0x8c, 0x0c, 0x6a, 0xa7, 0xab, 0x30, 0xb9, 0x35, 0x61, 0x81,
+ 0xeb, 0xbd, 0xce, 0xdf, 0xd9, 0xb7, 0x5f, 0x76,
+};
+static const unsigned char kat1887_addin1[] = {
+ 0x4e, 0x08, 0x13, 0x99, 0xa2, 0xb7, 0x78, 0x4d, 0x9e, 0x85, 0xdf, 0xdf,
+ 0x48, 0x8b, 0x6a, 0xc9, 0x06, 0x51, 0x8d, 0x71, 0xd1, 0x43, 0x93, 0x37,
+ 0xa5, 0x0b, 0x6b, 0xe9, 0x37, 0x09, 0x64, 0xd8,
+};
+static const unsigned char kat1887_retbits[] = {
+ 0xab, 0x2e, 0x87, 0xa3, 0xd6, 0x5f, 0x42, 0x2f, 0xfd, 0x67, 0x71, 0x5c,
+ 0x98, 0x5b, 0xb5, 0xbc, 0x77, 0xdc, 0x15, 0x05, 0x51, 0xe2, 0x42, 0xeb,
+ 0x9d, 0xf0, 0x98, 0xbc, 0x6b, 0x83, 0x54, 0xe0, 0xb3, 0xb4, 0x69, 0x8b,
+ 0xe9, 0xb1, 0x94, 0x6b, 0xf0, 0xee, 0xe7, 0x58, 0x17, 0x7b, 0x6e, 0x51,
+ 0x07, 0x0b, 0x24, 0xbb, 0xa0, 0x07, 0x93, 0x62, 0x23, 0xca, 0xfe, 0x98,
+ 0x1f, 0x3c, 0x64, 0xd8,
+};
+static const struct drbg_kat_pr_false kat1887_t = {
+ 11, kat1887_entropyin, kat1887_nonce, kat1887_persstr,
+ kat1887_entropyinreseed, kat1887_addinreseed, kat1887_addin0,
+ kat1887_addin1, kat1887_retbits
+};
+static const struct drbg_kat kat1887 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1887_t
+};
+
+static const unsigned char kat1888_entropyin[] = {
+ 0xdc, 0x0d, 0x12, 0x49, 0xfe, 0x31, 0x36, 0x4f, 0x9b, 0x7c, 0x96, 0x13,
+ 0xd9, 0xd7, 0x18, 0x0d, 0x59, 0x82, 0x96, 0x8a, 0xf8, 0xab, 0x60, 0x85,
+};
+static const unsigned char kat1888_nonce[] = {
+ 0x4d, 0x44, 0xaa, 0xf1, 0x79, 0xb4, 0x35, 0x44, 0x25, 0x9b, 0xd4, 0xd3,
+ 0x1d, 0xf3, 0xc3, 0x82,
+};
+static const unsigned char kat1888_persstr[] = {0};
+static const unsigned char kat1888_entropyinreseed[] = {
+ 0x54, 0x19, 0x61, 0xc1, 0xcf, 0x4c, 0xbc, 0x04, 0x28, 0xc3, 0xc9, 0x3f,
+ 0xda, 0x65, 0xa8, 0x37, 0x43, 0x2b, 0xf8, 0xa4, 0xbb, 0xc9, 0xcd, 0xd9,
+};
+static const unsigned char kat1888_addinreseed[] = {
+ 0x39, 0x57, 0xb3, 0xac, 0x7e, 0xd3, 0x5b, 0x46, 0x87, 0x5f, 0xc5, 0x79,
+ 0xc5, 0xfd, 0x5e, 0x91, 0x50, 0x52, 0x02, 0x48, 0x16, 0xf9, 0x12, 0xb7,
+ 0x1f, 0x7d, 0xe9, 0xb0, 0xb3, 0x1e, 0xda, 0x38,
+};
+static const unsigned char kat1888_addin0[] = {
+ 0x20, 0xcc, 0x95, 0xb4, 0xd7, 0xb1, 0x87, 0x89, 0xad, 0x6c, 0xab, 0x1f,
+ 0x7a, 0x44, 0x4d, 0x7e, 0xcd, 0x1a, 0x33, 0x06, 0x70, 0x0d, 0x08, 0x46,
+ 0xe3, 0x52, 0xef, 0xf1, 0x5a, 0xed, 0xb7, 0xc9,
+};
+static const unsigned char kat1888_addin1[] = {
+ 0xb4, 0x0a, 0x26, 0xda, 0x42, 0xe3, 0xd6, 0x6a, 0x8e, 0x02, 0xff, 0x16,
+ 0xbc, 0x91, 0xe5, 0x25, 0xc8, 0x29, 0x90, 0x26, 0xbe, 0x41, 0xd4, 0x68,
+ 0xa4, 0x4b, 0xf9, 0x3d, 0x74, 0xbc, 0xab, 0xa3,
+};
+static const unsigned char kat1888_retbits[] = {
+ 0x28, 0x89, 0x96, 0xd0, 0x1d, 0x28, 0x2f, 0x1c, 0xc2, 0x80, 0x6f, 0x85,
+ 0x7b, 0xe6, 0x69, 0xd9, 0x11, 0xa6, 0xbf, 0x9a, 0xc4, 0xcc, 0x59, 0xab,
+ 0x58, 0xac, 0xbe, 0x7c, 0xd9, 0x71, 0x3d, 0xea, 0xcf, 0xfb, 0x7a, 0x2c,
+ 0xb3, 0x90, 0xc8, 0xf2, 0xdf, 0xf4, 0x42, 0x79, 0x2b, 0x5d, 0x63, 0x08,
+ 0x9a, 0x33, 0x4b, 0xf4, 0x3d, 0x2d, 0x1f, 0x46, 0x25, 0xf5, 0x09, 0x94,
+ 0x81, 0x35, 0x42, 0xa9,
+};
+static const struct drbg_kat_pr_false kat1888_t = {
+ 12, kat1888_entropyin, kat1888_nonce, kat1888_persstr,
+ kat1888_entropyinreseed, kat1888_addinreseed, kat1888_addin0,
+ kat1888_addin1, kat1888_retbits
+};
+static const struct drbg_kat kat1888 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1888_t
+};
+
+static const unsigned char kat1889_entropyin[] = {
+ 0xe4, 0x2d, 0x17, 0x7d, 0x30, 0xf0, 0x63, 0x21, 0xd1, 0xae, 0x17, 0x98,
+ 0x99, 0x3f, 0x24, 0x80, 0x58, 0x4b, 0x4a, 0x6d, 0x3d, 0xde, 0xd3, 0x54,
+};
+static const unsigned char kat1889_nonce[] = {
+ 0x10, 0x9f, 0x51, 0x55, 0xc6, 0xd2, 0xac, 0x7b, 0x8c, 0x96, 0x63, 0x83,
+ 0x61, 0x39, 0xe7, 0xe4,
+};
+static const unsigned char kat1889_persstr[] = {0};
+static const unsigned char kat1889_entropyinreseed[] = {
+ 0xcb, 0x4d, 0x71, 0xb6, 0xd6, 0xc3, 0x5b, 0x91, 0xff, 0x4c, 0x50, 0xfd,
+ 0x88, 0xd8, 0xf4, 0xe8, 0xdd, 0x51, 0xc0, 0xc1, 0x33, 0x25, 0xae, 0xd5,
+};
+static const unsigned char kat1889_addinreseed[] = {
+ 0xd7, 0xf7, 0x30, 0xcc, 0x17, 0xf7, 0x0a, 0xe6, 0x47, 0x75, 0xfd, 0x59,
+ 0x3b, 0xe4, 0x3b, 0x9e, 0xeb, 0x41, 0xdb, 0x8c, 0x58, 0x80, 0x4d, 0x4f,
+ 0xaf, 0x8b, 0x4a, 0x57, 0xe8, 0xe9, 0xa1, 0x65,
+};
+static const unsigned char kat1889_addin0[] = {
+ 0x03, 0xc0, 0xd2, 0xf7, 0x2a, 0xb6, 0x6a, 0x18, 0xdb, 0x41, 0x09, 0xdf,
+ 0x3f, 0xcc, 0xd6, 0xa6, 0x17, 0x41, 0x74, 0xa4, 0x53, 0xde, 0x17, 0x93,
+ 0x1c, 0x87, 0x85, 0x4f, 0xd1, 0x2e, 0x4a, 0xb5,
+};
+static const unsigned char kat1889_addin1[] = {
+ 0x9d, 0xfa, 0xd6, 0xa1, 0xb1, 0x58, 0xa1, 0xad, 0x24, 0xb4, 0x66, 0x99,
+ 0x9e, 0x16, 0x9b, 0x32, 0x0b, 0x47, 0x24, 0xf5, 0x8d, 0x80, 0xed, 0x89,
+ 0xad, 0xe8, 0xd2, 0x6b, 0x67, 0xa0, 0x15, 0x67,
+};
+static const unsigned char kat1889_retbits[] = {
+ 0xbe, 0x7d, 0x61, 0x8e, 0xa4, 0x77, 0x3e, 0x3e, 0xf5, 0xee, 0x2a, 0x9d,
+ 0x9a, 0xb2, 0x65, 0x2f, 0xbe, 0x5c, 0x8c, 0xc7, 0x65, 0x7a, 0xbe, 0x11,
+ 0x18, 0x16, 0x08, 0x5a, 0xc3, 0x5d, 0x7f, 0x09, 0x07, 0x40, 0x9e, 0x00,
+ 0x41, 0x37, 0x7e, 0x87, 0xf9, 0xe5, 0x8c, 0xf6, 0xf1, 0x5a, 0xaa, 0x58,
+ 0x3f, 0x84, 0xe7, 0x7d, 0x74, 0x81, 0xd5, 0x12, 0x84, 0xa3, 0x59, 0xe2,
+ 0x31, 0xdf, 0x77, 0x67,
+};
+static const struct drbg_kat_pr_false kat1889_t = {
+ 13, kat1889_entropyin, kat1889_nonce, kat1889_persstr,
+ kat1889_entropyinreseed, kat1889_addinreseed, kat1889_addin0,
+ kat1889_addin1, kat1889_retbits
+};
+static const struct drbg_kat kat1889 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1889_t
+};
+
+static const unsigned char kat1890_entropyin[] = {
+ 0xb5, 0x7e, 0xac, 0x6d, 0x16, 0x7d, 0xca, 0x49, 0x3c, 0xf1, 0xbd, 0x58,
+ 0x17, 0x26, 0x58, 0x0b, 0xbc, 0x14, 0x2c, 0xae, 0xe0, 0xa9, 0x31, 0x2a,
+};
+static const unsigned char kat1890_nonce[] = {
+ 0x5d, 0x6f, 0x1f, 0x44, 0x43, 0x8a, 0x31, 0x2c, 0x19, 0x4d, 0xe7, 0x40,
+ 0xe5, 0xe7, 0x2c, 0xc4,
+};
+static const unsigned char kat1890_persstr[] = {0};
+static const unsigned char kat1890_entropyinreseed[] = {
+ 0xc9, 0xb3, 0xf4, 0x74, 0x0e, 0x50, 0x76, 0x27, 0x8b, 0x23, 0x02, 0x10,
+ 0x07, 0x39, 0xc9, 0xaa, 0x1a, 0xb3, 0xa2, 0xac, 0x82, 0xf4, 0x62, 0x87,
+};
+static const unsigned char kat1890_addinreseed[] = {
+ 0x27, 0xf6, 0xb7, 0x1b, 0xa6, 0x0b, 0x62, 0xff, 0x29, 0xd2, 0xba, 0xaf,
+ 0x5b, 0xbf, 0xbe, 0x34, 0x5a, 0xc5, 0x95, 0x5c, 0x80, 0xce, 0x1c, 0x21,
+ 0x35, 0x5c, 0x25, 0x6f, 0x69, 0x26, 0x63, 0xa3,
+};
+static const unsigned char kat1890_addin0[] = {
+ 0xaf, 0xde, 0xaa, 0x87, 0x96, 0x5c, 0x4e, 0xa3, 0x3a, 0xff, 0x1c, 0x32,
+ 0xce, 0x37, 0x06, 0x52, 0xd4, 0x3e, 0x89, 0xf2, 0xff, 0x4b, 0x63, 0x21,
+ 0x5d, 0x84, 0xd0, 0xf7, 0x6a, 0xc0, 0x97, 0xc7,
+};
+static const unsigned char kat1890_addin1[] = {
+ 0x5c, 0x7e, 0xad, 0x30, 0xd4, 0x42, 0xc9, 0x57, 0xfb, 0xde, 0xb5, 0xc1,
+ 0xe3, 0xe9, 0x3c, 0x09, 0x4d, 0x96, 0x47, 0xb0, 0x08, 0x44, 0xb1, 0x23,
+ 0x97, 0x86, 0xc8, 0x84, 0x84, 0xd2, 0xfb, 0xe5,
+};
+static const unsigned char kat1890_retbits[] = {
+ 0x95, 0x1b, 0xd3, 0x58, 0xbc, 0x14, 0x57, 0x01, 0x1b, 0x34, 0x31, 0x74,
+ 0x78, 0xeb, 0x82, 0xa6, 0xbf, 0x61, 0x8e, 0x34, 0x2c, 0x45, 0x05, 0x03,
+ 0x05, 0x59, 0xba, 0xf2, 0xee, 0x2a, 0xf8, 0xa2, 0x6b, 0x4e, 0xa2, 0x0b,
+ 0xb5, 0x4e, 0xc2, 0x57, 0x84, 0x7e, 0x05, 0xe5, 0x61, 0x5e, 0xf4, 0x18,
+ 0xff, 0x8b, 0x88, 0xfb, 0x68, 0x1b, 0x36, 0xa4, 0xe5, 0xeb, 0xcb, 0x81,
+ 0x7e, 0xbd, 0x6e, 0xb6,
+};
+static const struct drbg_kat_pr_false kat1890_t = {
+ 14, kat1890_entropyin, kat1890_nonce, kat1890_persstr,
+ kat1890_entropyinreseed, kat1890_addinreseed, kat1890_addin0,
+ kat1890_addin1, kat1890_retbits
+};
+static const struct drbg_kat kat1890 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat1890_t
+};
+
+static const unsigned char kat1891_entropyin[] = {
+ 0xf4, 0x93, 0x6a, 0x73, 0x2f, 0xdf, 0x56, 0x68, 0x57, 0x7d, 0xb7, 0x9e,
+ 0x7f, 0x93, 0xe9, 0x1c, 0x4c, 0xda, 0x1d, 0x10, 0xb5, 0x78, 0x1b, 0x5e,
+};
+static const unsigned char kat1891_nonce[] = {
+ 0xc6, 0x0b, 0x0b, 0x05, 0x60, 0x01, 0x52, 0xf0, 0x33, 0xf0, 0x56, 0xdc,
+ 0xe7, 0xaf, 0x79, 0x15,
+};
+static const unsigned char kat1891_persstr[] = {
+ 0x6f, 0x0c, 0xf0, 0x12, 0xd0, 0xe4, 0x95, 0x05, 0x1f, 0xd6, 0xc2, 0xc9,
+ 0x6e, 0x58, 0x19, 0x25, 0x96, 0x02, 0x71, 0xb3, 0x59, 0xa7, 0x05, 0xa6,
+ 0x50, 0x75, 0xbc, 0x5e, 0xc1, 0x6d, 0xdc, 0x6e,
+};
+static const unsigned char kat1891_entropyinreseed[] = {
+ 0xbf, 0x21, 0xff, 0x36, 0x30, 0xb1, 0x6a, 0xce, 0xf8, 0x76, 0x02, 0xba,
+ 0xdb, 0x5a, 0xc2, 0xd6, 0x40, 0x24, 0x1e, 0xb4, 0x81, 0xa0, 0xc8, 0xd9,
+};
+static const unsigned char kat1891_addinreseed[] = {0};
+static const unsigned char kat1891_addin0[] = {0};
+static const unsigned char kat1891_addin1[] = {0};
+static const unsigned char kat1891_retbits[] = {
+ 0x18, 0x93, 0x1f, 0xb1, 0xdc, 0x25, 0x5d, 0xde, 0xa2, 0xe6, 0xd4, 0x35,
+ 0x1e, 0xb6, 0xf3, 0x29, 0xc2, 0x34, 0xe1, 0xd4, 0x96, 0x20, 0x60, 0xac,
+ 0xed, 0xdf, 0x0c, 0x9f, 0xa9, 0x95, 0x09, 0xcb, 0xc6, 0x4c, 0x04, 0x22,
+ 0x58, 0xf8, 0xda, 0xf5, 0x7c, 0x12, 0x0d, 0x7a, 0x2d, 0xac, 0xa9, 0x5f,
+ 0x40, 0x73, 0x4f, 0x59, 0x20, 0x6e, 0x69, 0x94, 0xaa, 0x63, 0x95, 0xcd,
+ 0x80, 0xa1, 0xfd, 0x54,
+};
+static const struct drbg_kat_pr_false kat1891_t = {
+ 0, kat1891_entropyin, kat1891_nonce, kat1891_persstr,
+ kat1891_entropyinreseed, kat1891_addinreseed, kat1891_addin0,
+ kat1891_addin1, kat1891_retbits
+};
+static const struct drbg_kat kat1891 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1891_t
+};
+
+static const unsigned char kat1892_entropyin[] = {
+ 0x3d, 0x18, 0x5c, 0x30, 0x29, 0xd1, 0x29, 0x2e, 0x8d, 0xc0, 0x74, 0x8a,
+ 0xfd, 0x68, 0x1c, 0x9e, 0x8c, 0x41, 0x07, 0x77, 0x74, 0x21, 0x7b, 0x9c,
+};
+static const unsigned char kat1892_nonce[] = {
+ 0xec, 0x68, 0xb8, 0xb7, 0xda, 0x23, 0x8e, 0xdc, 0x37, 0x82, 0x4f, 0x55,
+ 0xeb, 0xff, 0x29, 0xf8,
+};
+static const unsigned char kat1892_persstr[] = {
+ 0x80, 0x5c, 0xc9, 0x41, 0xc1, 0xdd, 0xc1, 0xa4, 0xae, 0x3a, 0x1f, 0xf9,
+ 0xda, 0x01, 0x45, 0xe5, 0xc2, 0x56, 0xfd, 0x63, 0xdf, 0xec, 0xc5, 0x94,
+ 0x8e, 0x0e, 0x24, 0xa9, 0x2d, 0x8a, 0xdb, 0xcb,
+};
+static const unsigned char kat1892_entropyinreseed[] = {
+ 0xb4, 0x5d, 0x6e, 0x41, 0x03, 0x35, 0xda, 0x94, 0xa1, 0x78, 0x41, 0x67,
+ 0x65, 0x79, 0xde, 0x67, 0x78, 0x1e, 0xcb, 0xa2, 0x57, 0x13, 0x13, 0x85,
+};
+static const unsigned char kat1892_addinreseed[] = {0};
+static const unsigned char kat1892_addin0[] = {0};
+static const unsigned char kat1892_addin1[] = {0};
+static const unsigned char kat1892_retbits[] = {
+ 0xfb, 0x95, 0x2f, 0x3f, 0x62, 0x3e, 0xf2, 0x83, 0x3a, 0x4d, 0x81, 0x13,
+ 0x01, 0x91, 0x74, 0xb9, 0x12, 0x7f, 0x84, 0xfa, 0x59, 0x3c, 0x38, 0x0d,
+ 0x03, 0xad, 0x11, 0x64, 0x3d, 0x5a, 0x35, 0x73, 0x58, 0x48, 0xd9, 0x30,
+ 0x09, 0xb4, 0x58, 0xef, 0x41, 0x64, 0x3c, 0x26, 0x66, 0xda, 0x6d, 0xeb,
+ 0x94, 0x32, 0x39, 0x8c, 0x4e, 0x7e, 0xc2, 0x48, 0x0b, 0x9c, 0x7b, 0x87,
+ 0x9c, 0x09, 0x9f, 0xd1,
+};
+static const struct drbg_kat_pr_false kat1892_t = {
+ 1, kat1892_entropyin, kat1892_nonce, kat1892_persstr,
+ kat1892_entropyinreseed, kat1892_addinreseed, kat1892_addin0,
+ kat1892_addin1, kat1892_retbits
+};
+static const struct drbg_kat kat1892 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1892_t
+};
+
+static const unsigned char kat1893_entropyin[] = {
+ 0xc3, 0x36, 0xf7, 0xc8, 0x12, 0x1c, 0x4f, 0x6d, 0xf2, 0x06, 0xa9, 0x4e,
+ 0xfc, 0x5d, 0xc1, 0x30, 0xe8, 0xef, 0x83, 0xdd, 0x48, 0x7e, 0xcd, 0x56,
+};
+static const unsigned char kat1893_nonce[] = {
+ 0x61, 0x5b, 0x07, 0x9c, 0x73, 0x80, 0x12, 0xa3, 0xda, 0x7f, 0xe8, 0xe9,
+ 0x0c, 0x4d, 0x8a, 0xc5,
+};
+static const unsigned char kat1893_persstr[] = {
+ 0x8b, 0xca, 0x6f, 0x65, 0xed, 0xd7, 0x4f, 0x3c, 0x88, 0xeb, 0x56, 0x8e,
+ 0x2f, 0xad, 0xcd, 0x1c, 0x7d, 0x3d, 0x71, 0x7a, 0xbf, 0x80, 0xa2, 0x65,
+ 0xdb, 0x35, 0x90, 0xe0, 0xfe, 0x50, 0xf5, 0xf7,
+};
+static const unsigned char kat1893_entropyinreseed[] = {
+ 0x1a, 0x02, 0xbd, 0x0c, 0xc1, 0x58, 0xc9, 0x18, 0x6c, 0xfc, 0xd4, 0xcb,
+ 0x15, 0x32, 0x86, 0x24, 0xd3, 0x7b, 0xe1, 0xe8, 0x96, 0xf0, 0xbd, 0x0f,
+};
+static const unsigned char kat1893_addinreseed[] = {0};
+static const unsigned char kat1893_addin0[] = {0};
+static const unsigned char kat1893_addin1[] = {0};
+static const unsigned char kat1893_retbits[] = {
+ 0xb4, 0x46, 0x31, 0x16, 0x49, 0xe6, 0x16, 0xfd, 0xf4, 0x08, 0x8d, 0x4f,
+ 0x9f, 0xd5, 0x09, 0x72, 0x2b, 0x3d, 0x99, 0x75, 0xf9, 0x39, 0x65, 0x82,
+ 0x25, 0x8b, 0x98, 0x92, 0xa6, 0xcb, 0x5f, 0x5a, 0xb4, 0xe2, 0x61, 0xa8,
+ 0x15, 0x6b, 0x35, 0x22, 0x91, 0x0e, 0xfc, 0x20, 0x64, 0x54, 0x28, 0xff,
+ 0x3c, 0x0f, 0x65, 0x23, 0x28, 0x4e, 0x5c, 0x56, 0x29, 0xf9, 0x74, 0x61,
+ 0x3d, 0x49, 0x42, 0xb7,
+};
+static const struct drbg_kat_pr_false kat1893_t = {
+ 2, kat1893_entropyin, kat1893_nonce, kat1893_persstr,
+ kat1893_entropyinreseed, kat1893_addinreseed, kat1893_addin0,
+ kat1893_addin1, kat1893_retbits
+};
+static const struct drbg_kat kat1893 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1893_t
+};
+
+static const unsigned char kat1894_entropyin[] = {
+ 0x78, 0xca, 0x16, 0xd7, 0x7c, 0x8f, 0x03, 0x75, 0x92, 0xdd, 0x30, 0xf5,
+ 0xe3, 0xe0, 0xdf, 0x30, 0xcb, 0xb8, 0xb5, 0xc4, 0x25, 0xf8, 0x43, 0xa2,
+};
+static const unsigned char kat1894_nonce[] = {
+ 0xf7, 0xe8, 0x0e, 0xd2, 0x76, 0xaf, 0x5f, 0xa1, 0xcb, 0x96, 0x7f, 0x33,
+ 0x1f, 0x12, 0x98, 0x26,
+};
+static const unsigned char kat1894_persstr[] = {
+ 0x7c, 0xf5, 0x34, 0x2f, 0x37, 0x1d, 0x56, 0xb3, 0x1e, 0x70, 0xb6, 0xc5,
+ 0x52, 0xaa, 0x96, 0xeb, 0x00, 0x00, 0x9c, 0x15, 0xa5, 0xe0, 0xe3, 0xeb,
+ 0x8f, 0x6b, 0x9c, 0xea, 0x4c, 0x96, 0xeb, 0x5f,
+};
+static const unsigned char kat1894_entropyinreseed[] = {
+ 0x4d, 0x58, 0x2b, 0x73, 0xb5, 0x4f, 0x07, 0xe3, 0xb5, 0x98, 0x2f, 0x12,
+ 0xb7, 0xe9, 0x38, 0x88, 0x9a, 0x72, 0x0e, 0xd0, 0x38, 0x9c, 0x76, 0xa1,
+};
+static const unsigned char kat1894_addinreseed[] = {0};
+static const unsigned char kat1894_addin0[] = {0};
+static const unsigned char kat1894_addin1[] = {0};
+static const unsigned char kat1894_retbits[] = {
+ 0x91, 0x2a, 0x9f, 0xa8, 0x5b, 0xef, 0xf2, 0xec, 0xd1, 0xb8, 0xd5, 0x27,
+ 0x80, 0xd5, 0xa5, 0x67, 0x4e, 0x2b, 0xf2, 0x2d, 0xa5, 0xf9, 0xf2, 0x60,
+ 0x43, 0x26, 0x91, 0xeb, 0xbd, 0x43, 0x2c, 0x82, 0x75, 0x19, 0x68, 0xd2,
+ 0x25, 0xbd, 0x06, 0xc6, 0x81, 0xaf, 0x89, 0xac, 0xd2, 0xba, 0x48, 0x3a,
+ 0x37, 0x21, 0x4a, 0xbf, 0xdb, 0xe4, 0xaa, 0x88, 0x19, 0xc6, 0x46, 0x32,
+ 0xe3, 0xb4, 0x04, 0x08,
+};
+static const struct drbg_kat_pr_false kat1894_t = {
+ 3, kat1894_entropyin, kat1894_nonce, kat1894_persstr,
+ kat1894_entropyinreseed, kat1894_addinreseed, kat1894_addin0,
+ kat1894_addin1, kat1894_retbits
+};
+static const struct drbg_kat kat1894 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1894_t
+};
+
+static const unsigned char kat1895_entropyin[] = {
+ 0xff, 0x51, 0x15, 0xcc, 0xbc, 0x5f, 0xc4, 0x15, 0xdd, 0x57, 0xab, 0xa3,
+ 0x10, 0x2d, 0x23, 0xf6, 0xf1, 0x19, 0xaa, 0xc1, 0x4d, 0xc9, 0x5d, 0x1b,
+};
+static const unsigned char kat1895_nonce[] = {
+ 0xd8, 0xa0, 0xc6, 0xe2, 0xcb, 0xd0, 0xc0, 0xb3, 0x97, 0x9d, 0x9a, 0xfa,
+ 0xa3, 0x23, 0x62, 0xa3,
+};
+static const unsigned char kat1895_persstr[] = {
+ 0x41, 0x17, 0x45, 0x7f, 0x12, 0x56, 0xdb, 0x46, 0x94, 0x31, 0x66, 0xc8,
+ 0xcf, 0xe0, 0x3c, 0xcb, 0x40, 0xa4, 0x33, 0x36, 0x9f, 0x0b, 0xd3, 0xbb,
+ 0x2e, 0xee, 0xe2, 0x8d, 0xcc, 0xe4, 0x4b, 0x65,
+};
+static const unsigned char kat1895_entropyinreseed[] = {
+ 0x11, 0xbf, 0x85, 0xb6, 0x34, 0x8b, 0xce, 0xb8, 0x63, 0xb6, 0xa7, 0x52,
+ 0xcb, 0x65, 0x15, 0x72, 0xa4, 0xe7, 0x50, 0xb1, 0xd1, 0x01, 0x07, 0x80,
+};
+static const unsigned char kat1895_addinreseed[] = {0};
+static const unsigned char kat1895_addin0[] = {0};
+static const unsigned char kat1895_addin1[] = {0};
+static const unsigned char kat1895_retbits[] = {
+ 0xab, 0xbb, 0xa8, 0x3d, 0x02, 0xfa, 0x0b, 0xad, 0x5f, 0xf6, 0xac, 0xe6,
+ 0xa9, 0x2a, 0xab, 0x07, 0xb3, 0xaa, 0x2f, 0xaa, 0xc6, 0xc5, 0xfe, 0xcb,
+ 0x46, 0xaf, 0x4c, 0xb4, 0x39, 0x04, 0x22, 0x7f, 0xd9, 0xf3, 0x43, 0x22,
+ 0xb3, 0xac, 0x90, 0x29, 0x82, 0xb2, 0x3b, 0x55, 0x80, 0x46, 0x58, 0xba,
+ 0xd3, 0xf9, 0x75, 0x67, 0x40, 0x51, 0xba, 0xf5, 0x54, 0x06, 0x57, 0x85,
+ 0xec, 0x5b, 0xad, 0x80,
+};
+static const struct drbg_kat_pr_false kat1895_t = {
+ 4, kat1895_entropyin, kat1895_nonce, kat1895_persstr,
+ kat1895_entropyinreseed, kat1895_addinreseed, kat1895_addin0,
+ kat1895_addin1, kat1895_retbits
+};
+static const struct drbg_kat kat1895 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1895_t
+};
+
+static const unsigned char kat1896_entropyin[] = {
+ 0x9e, 0xb4, 0x24, 0x9f, 0x70, 0x60, 0xd6, 0xc3, 0xee, 0x57, 0x4b, 0x63,
+ 0xf8, 0x4d, 0x4d, 0xd7, 0x75, 0x90, 0x38, 0xd3, 0x2d, 0x15, 0xb2, 0x4b,
+};
+static const unsigned char kat1896_nonce[] = {
+ 0x64, 0x91, 0xe9, 0xd1, 0x4f, 0xa7, 0xed, 0xd4, 0x02, 0x49, 0xfb, 0x55,
+ 0x92, 0xad, 0x8e, 0xbc,
+};
+static const unsigned char kat1896_persstr[] = {
+ 0xca, 0x30, 0x44, 0xf4, 0x39, 0x13, 0xbe, 0x03, 0x45, 0xa7, 0x4a, 0x99,
+ 0x88, 0x73, 0x33, 0x2c, 0xa3, 0x62, 0x32, 0x82, 0xfd, 0x03, 0xb0, 0x0b,
+ 0xce, 0x0c, 0xfd, 0x97, 0x8e, 0x0d, 0x9b, 0x1d,
+};
+static const unsigned char kat1896_entropyinreseed[] = {
+ 0xf6, 0x58, 0x34, 0x6d, 0xa8, 0x25, 0x95, 0x7f, 0x1d, 0x14, 0x29, 0xdc,
+ 0x32, 0xd7, 0x25, 0x18, 0x46, 0xfe, 0xbe, 0x1c, 0x3a, 0xe6, 0xcc, 0x3b,
+};
+static const unsigned char kat1896_addinreseed[] = {0};
+static const unsigned char kat1896_addin0[] = {0};
+static const unsigned char kat1896_addin1[] = {0};
+static const unsigned char kat1896_retbits[] = {
+ 0x02, 0x7f, 0x5c, 0xbe, 0x58, 0x8d, 0xd3, 0x9c, 0x52, 0x69, 0x1e, 0x52,
+ 0x05, 0x03, 0x98, 0x13, 0xa5, 0x74, 0xd4, 0x54, 0x34, 0x13, 0xd0, 0x92,
+ 0xaf, 0x0d, 0x0b, 0x75, 0x42, 0xfb, 0x25, 0x52, 0xa7, 0xf5, 0x83, 0xd1,
+ 0x96, 0x00, 0xb8, 0x97, 0xcc, 0xe9, 0xe8, 0xac, 0x1c, 0x74, 0x4f, 0xa4,
+ 0x99, 0xfe, 0x0d, 0x70, 0x4e, 0x89, 0x7d, 0x76, 0xd8, 0x7a, 0xeb, 0xf4,
+ 0xfd, 0xc9, 0x4d, 0x19,
+};
+static const struct drbg_kat_pr_false kat1896_t = {
+ 5, kat1896_entropyin, kat1896_nonce, kat1896_persstr,
+ kat1896_entropyinreseed, kat1896_addinreseed, kat1896_addin0,
+ kat1896_addin1, kat1896_retbits
+};
+static const struct drbg_kat kat1896 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1896_t
+};
+
+static const unsigned char kat1897_entropyin[] = {
+ 0xf4, 0x18, 0xd3, 0xa2, 0xd3, 0xa1, 0x04, 0xa3, 0x25, 0xf8, 0x2e, 0xa1,
+ 0x7e, 0x2b, 0x03, 0xe3, 0xdc, 0x47, 0x1f, 0xaa, 0xe7, 0x83, 0x41, 0x3a,
+};
+static const unsigned char kat1897_nonce[] = {
+ 0x41, 0xfd, 0xda, 0xcc, 0x56, 0xc8, 0x18, 0x07, 0xb4, 0x2e, 0x44, 0x12,
+ 0x88, 0xda, 0x65, 0x78,
+};
+static const unsigned char kat1897_persstr[] = {
+ 0x95, 0x5f, 0x18, 0x80, 0x23, 0xda, 0x79, 0xf9, 0x4f, 0x3c, 0xfd, 0xe7,
+ 0x1e, 0xdf, 0xf2, 0xec, 0x5a, 0x6b, 0xab, 0x24, 0x92, 0x5f, 0x52, 0x6f,
+ 0xc0, 0x2d, 0x82, 0x08, 0x71, 0xce, 0x4d, 0x9e,
+};
+static const unsigned char kat1897_entropyinreseed[] = {
+ 0x39, 0x24, 0xcd, 0xe4, 0x36, 0x83, 0x61, 0x4e, 0xb4, 0x39, 0x6f, 0xce,
+ 0x38, 0xd6, 0x5a, 0x49, 0x8f, 0x87, 0xe6, 0xc3, 0x74, 0xfc, 0x23, 0x08,
+};
+static const unsigned char kat1897_addinreseed[] = {0};
+static const unsigned char kat1897_addin0[] = {0};
+static const unsigned char kat1897_addin1[] = {0};
+static const unsigned char kat1897_retbits[] = {
+ 0x97, 0x5c, 0xb8, 0xc8, 0x17, 0xac, 0x90, 0x27, 0xe5, 0x4a, 0xb9, 0xef,
+ 0xfc, 0xb6, 0xf8, 0x21, 0xf4, 0x68, 0x8f, 0x9c, 0xfc, 0xdf, 0x5c, 0xf9,
+ 0xc0, 0xf5, 0x84, 0xa5, 0xb5, 0x12, 0x23, 0x60, 0x01, 0x68, 0x1b, 0xb9,
+ 0x85, 0xd9, 0x13, 0xd5, 0x23, 0x6b, 0xed, 0x8d, 0x53, 0x6a, 0xf0, 0x5e,
+ 0xeb, 0xee, 0x87, 0xcd, 0xc7, 0x75, 0x6a, 0xf9, 0x8b, 0x22, 0x99, 0x01,
+ 0x26, 0x40, 0x89, 0x7e,
+};
+static const struct drbg_kat_pr_false kat1897_t = {
+ 6, kat1897_entropyin, kat1897_nonce, kat1897_persstr,
+ kat1897_entropyinreseed, kat1897_addinreseed, kat1897_addin0,
+ kat1897_addin1, kat1897_retbits
+};
+static const struct drbg_kat kat1897 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1897_t
+};
+
+static const unsigned char kat1898_entropyin[] = {
+ 0xb9, 0x7a, 0x78, 0xcc, 0x24, 0x88, 0x61, 0x4d, 0xed, 0xcc, 0x62, 0x17,
+ 0x06, 0xae, 0x80, 0x96, 0xa0, 0x8a, 0x27, 0xed, 0x23, 0x23, 0x72, 0xea,
+};
+static const unsigned char kat1898_nonce[] = {
+ 0x68, 0x5b, 0x6c, 0x16, 0xe3, 0xd3, 0xf7, 0x25, 0x68, 0x64, 0x44, 0x50,
+ 0xc8, 0x11, 0xca, 0xfa,
+};
+static const unsigned char kat1898_persstr[] = {
+ 0x4a, 0xce, 0x80, 0xd8, 0xc0, 0xbb, 0xb9, 0xef, 0x5e, 0x1a, 0x6b, 0xc2,
+ 0x4a, 0x7b, 0x7f, 0x66, 0xfd, 0x86, 0xc9, 0x3f, 0x95, 0xfc, 0x7c, 0xf1,
+ 0x43, 0x08, 0x38, 0x3c, 0x82, 0x72, 0xee, 0x6a,
+};
+static const unsigned char kat1898_entropyinreseed[] = {
+ 0x9a, 0xac, 0xfa, 0xf8, 0x11, 0xcd, 0xcd, 0xa8, 0x65, 0x5c, 0x6a, 0xf2,
+ 0xee, 0xfb, 0x24, 0xca, 0xed, 0x4a, 0x90, 0x68, 0xd1, 0xf6, 0xf5, 0x58,
+};
+static const unsigned char kat1898_addinreseed[] = {0};
+static const unsigned char kat1898_addin0[] = {0};
+static const unsigned char kat1898_addin1[] = {0};
+static const unsigned char kat1898_retbits[] = {
+ 0x40, 0xef, 0x28, 0x7a, 0xc7, 0x53, 0x7c, 0xf3, 0x70, 0x1b, 0x75, 0xbc,
+ 0x67, 0x0a, 0xdd, 0x6e, 0xb9, 0x41, 0xe9, 0x35, 0x8b, 0xe8, 0x49, 0xd4,
+ 0xb7, 0xfb, 0xdf, 0x4c, 0x2d, 0x4c, 0xa9, 0x4c, 0x03, 0xc5, 0xa8, 0x01,
+ 0xb3, 0x0a, 0x9e, 0x9a, 0x74, 0x41, 0xc4, 0x67, 0x18, 0x3d, 0xb8, 0x18,
+ 0xfd, 0x9e, 0xea, 0xca, 0x9b, 0x97, 0x8b, 0xfc, 0x17, 0x93, 0xc1, 0x91,
+ 0x42, 0x7d, 0xa2, 0x81,
+};
+static const struct drbg_kat_pr_false kat1898_t = {
+ 7, kat1898_entropyin, kat1898_nonce, kat1898_persstr,
+ kat1898_entropyinreseed, kat1898_addinreseed, kat1898_addin0,
+ kat1898_addin1, kat1898_retbits
+};
+static const struct drbg_kat kat1898 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1898_t
+};
+
+static const unsigned char kat1899_entropyin[] = {
+ 0xf2, 0x07, 0xc8, 0xa0, 0xc2, 0x7c, 0x3e, 0x3f, 0x22, 0xc6, 0xbb, 0x8a,
+ 0x5b, 0xea, 0xd3, 0x57, 0x61, 0x40, 0xdd, 0x7d, 0x8b, 0x60, 0x32, 0x46,
+};
+static const unsigned char kat1899_nonce[] = {
+ 0x64, 0x80, 0x60, 0x75, 0x08, 0xaf, 0xa5, 0xa0, 0xd4, 0xcf, 0xc0, 0x91,
+ 0x2f, 0xb9, 0xf7, 0x15,
+};
+static const unsigned char kat1899_persstr[] = {
+ 0x54, 0x1c, 0x21, 0xc0, 0xf8, 0x5f, 0x0f, 0x4c, 0x58, 0xfd, 0x04, 0x45,
+ 0x2a, 0x7a, 0xe4, 0x11, 0x72, 0x30, 0xef, 0x2f, 0xea, 0x31, 0x6e, 0xd5,
+ 0xe0, 0x0b, 0x74, 0x22, 0x31, 0x29, 0x15, 0x6e,
+};
+static const unsigned char kat1899_entropyinreseed[] = {
+ 0xae, 0xdf, 0x55, 0xe5, 0xcd, 0xcc, 0x12, 0x9e, 0x7a, 0x6d, 0xf9, 0x34,
+ 0x63, 0x68, 0x00, 0x59, 0xa0, 0xf7, 0x3b, 0xf9, 0x11, 0x76, 0xf6, 0x9f,
+};
+static const unsigned char kat1899_addinreseed[] = {0};
+static const unsigned char kat1899_addin0[] = {0};
+static const unsigned char kat1899_addin1[] = {0};
+static const unsigned char kat1899_retbits[] = {
+ 0x7f, 0x88, 0x33, 0x0f, 0xa0, 0xe6, 0x80, 0x39, 0x22, 0xf9, 0xc8, 0x50,
+ 0xab, 0xe5, 0xa8, 0x3b, 0xc1, 0xd7, 0xc9, 0xd5, 0xe4, 0x7d, 0x17, 0x5c,
+ 0xc0, 0xdb, 0x22, 0x71, 0xcd, 0x72, 0xfc, 0xe9, 0xcc, 0xc2, 0x05, 0xdf,
+ 0x33, 0x1b, 0x8f, 0x39, 0x85, 0x8f, 0x77, 0x8f, 0x73, 0x3a, 0x4b, 0x70,
+ 0x92, 0xd7, 0x80, 0x5d, 0x27, 0xad, 0x5f, 0x49, 0x1c, 0xb2, 0xa3, 0x4d,
+ 0x79, 0x82, 0xc8, 0x09,
+};
+static const struct drbg_kat_pr_false kat1899_t = {
+ 8, kat1899_entropyin, kat1899_nonce, kat1899_persstr,
+ kat1899_entropyinreseed, kat1899_addinreseed, kat1899_addin0,
+ kat1899_addin1, kat1899_retbits
+};
+static const struct drbg_kat kat1899 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1899_t
+};
+
+static const unsigned char kat1900_entropyin[] = {
+ 0x62, 0x79, 0xa3, 0xa5, 0x21, 0x24, 0x46, 0x5e, 0x50, 0x6a, 0x00, 0x16,
+ 0x6b, 0x31, 0x85, 0x20, 0x88, 0x46, 0x25, 0xf3, 0xd1, 0xf5, 0xce, 0xfd,
+};
+static const unsigned char kat1900_nonce[] = {
+ 0x59, 0xa0, 0xc8, 0xeb, 0x4d, 0xcf, 0x7c, 0x54, 0xff, 0xaa, 0x39, 0x9d,
+ 0xac, 0x76, 0x13, 0x65,
+};
+static const unsigned char kat1900_persstr[] = {
+ 0xaf, 0x79, 0x29, 0x4e, 0x87, 0xc6, 0xdf, 0x70, 0x5e, 0xc4, 0xcb, 0xd0,
+ 0xf4, 0xac, 0xc0, 0x5b, 0xef, 0xc4, 0x06, 0xae, 0x7a, 0x52, 0xda, 0xca,
+ 0x1c, 0xd4, 0xa5, 0xf7, 0xec, 0x56, 0xa9, 0x89,
+};
+static const unsigned char kat1900_entropyinreseed[] = {
+ 0x53, 0x20, 0xe0, 0xc8, 0x24, 0xb9, 0x2e, 0x9d, 0xb9, 0x22, 0xf2, 0x8d,
+ 0xed, 0x30, 0x93, 0x6b, 0xb1, 0xa0, 0xf6, 0x71, 0x70, 0x2b, 0xda, 0xcd,
+};
+static const unsigned char kat1900_addinreseed[] = {0};
+static const unsigned char kat1900_addin0[] = {0};
+static const unsigned char kat1900_addin1[] = {0};
+static const unsigned char kat1900_retbits[] = {
+ 0x15, 0x27, 0x43, 0xc5, 0xd4, 0xa7, 0xf9, 0xc5, 0x72, 0x6d, 0x5d, 0x5a,
+ 0x9f, 0xde, 0x8c, 0x1e, 0x63, 0x8f, 0x2f, 0xe6, 0x40, 0x97, 0x28, 0xf2,
+ 0xa6, 0xe8, 0xa9, 0x5f, 0x30, 0x7c, 0xd2, 0xa8, 0x8e, 0x22, 0xd1, 0x0f,
+ 0x51, 0x2c, 0xf3, 0xea, 0x4b, 0x38, 0x45, 0x39, 0x63, 0x59, 0xe1, 0x81,
+ 0xcc, 0xfb, 0x02, 0x72, 0xf9, 0x1b, 0xf0, 0x79, 0x5a, 0x85, 0x63, 0x9a,
+ 0xe5, 0xce, 0xf0, 0x14,
+};
+static const struct drbg_kat_pr_false kat1900_t = {
+ 9, kat1900_entropyin, kat1900_nonce, kat1900_persstr,
+ kat1900_entropyinreseed, kat1900_addinreseed, kat1900_addin0,
+ kat1900_addin1, kat1900_retbits
+};
+static const struct drbg_kat kat1900 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1900_t
+};
+
+static const unsigned char kat1901_entropyin[] = {
+ 0xaf, 0x2b, 0xe0, 0xee, 0xc2, 0xc1, 0x0b, 0xa5, 0x7f, 0xf2, 0xef, 0xec,
+ 0xa5, 0xe5, 0xa6, 0x35, 0x0d, 0x6b, 0x73, 0x4b, 0xc2, 0x19, 0xf2, 0x60,
+};
+static const unsigned char kat1901_nonce[] = {
+ 0x99, 0xed, 0xa9, 0x5f, 0x1b, 0xbd, 0x4c, 0x07, 0x93, 0xbc, 0x34, 0xb7,
+ 0xfc, 0x1e, 0x23, 0x97,
+};
+static const unsigned char kat1901_persstr[] = {
+ 0x4d, 0x61, 0x63, 0x64, 0xd5, 0x2a, 0x6f, 0x94, 0xdf, 0x53, 0xe9, 0x5c,
+ 0x55, 0x04, 0xf1, 0xc5, 0xf5, 0x6d, 0x1b, 0x4d, 0x03, 0x0d, 0xab, 0xae,
+ 0xdc, 0xb4, 0xbc, 0xf1, 0xc8, 0x1e, 0xe5, 0xdc,
+};
+static const unsigned char kat1901_entropyinreseed[] = {
+ 0x63, 0xef, 0xa8, 0x99, 0x65, 0xdb, 0x28, 0x1c, 0xaa, 0xc5, 0x2c, 0x1d,
+ 0xe6, 0x2d, 0x1f, 0x53, 0xd9, 0x9d, 0xe8, 0x80, 0xe6, 0x5a, 0xb6, 0x2e,
+};
+static const unsigned char kat1901_addinreseed[] = {0};
+static const unsigned char kat1901_addin0[] = {0};
+static const unsigned char kat1901_addin1[] = {0};
+static const unsigned char kat1901_retbits[] = {
+ 0xe9, 0x78, 0xda, 0x1f, 0x41, 0x49, 0xe4, 0x30, 0x9f, 0x43, 0x21, 0x3e,
+ 0x31, 0x3e, 0x58, 0x60, 0xe1, 0xf1, 0x68, 0x3a, 0xfa, 0x97, 0x49, 0xa9,
+ 0x38, 0xae, 0x08, 0x25, 0x2b, 0xf8, 0x48, 0x9e, 0xb3, 0x0d, 0x24, 0x72,
+ 0x3d, 0x19, 0xe4, 0x91, 0xfc, 0xd2, 0xe0, 0x84, 0x4b, 0x16, 0x97, 0xde,
+ 0xc3, 0x82, 0x3e, 0x1f, 0xb6, 0xfe, 0x80, 0x7c, 0x7f, 0x66, 0xf6, 0xe8,
+ 0x03, 0xe7, 0xfe, 0xc3,
+};
+static const struct drbg_kat_pr_false kat1901_t = {
+ 10, kat1901_entropyin, kat1901_nonce, kat1901_persstr,
+ kat1901_entropyinreseed, kat1901_addinreseed, kat1901_addin0,
+ kat1901_addin1, kat1901_retbits
+};
+static const struct drbg_kat kat1901 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1901_t
+};
+
+static const unsigned char kat1902_entropyin[] = {
+ 0xd3, 0x97, 0xa9, 0xd8, 0x0f, 0x77, 0xca, 0xf5, 0xbe, 0xcb, 0x65, 0xb1,
+ 0x24, 0xf3, 0x78, 0x8e, 0xbb, 0xec, 0x7c, 0x3a, 0xdf, 0xa6, 0xa8, 0xbf,
+};
+static const unsigned char kat1902_nonce[] = {
+ 0x06, 0x0b, 0x85, 0x6f, 0xa8, 0xdb, 0x25, 0x7b, 0x16, 0x3f, 0xfa, 0x8e,
+ 0x1c, 0x1a, 0xd2, 0xed,
+};
+static const unsigned char kat1902_persstr[] = {
+ 0x04, 0x53, 0x33, 0x2d, 0xfd, 0xfd, 0x39, 0xa9, 0x74, 0xb9, 0x5d, 0x84,
+ 0x91, 0xba, 0x57, 0xc0, 0x34, 0x76, 0x2d, 0x63, 0xdc, 0x0a, 0x46, 0xe6,
+ 0x5e, 0x06, 0x6c, 0x7d, 0xf6, 0xd9, 0xef, 0x91,
+};
+static const unsigned char kat1902_entropyinreseed[] = {
+ 0x5b, 0xf4, 0x45, 0x5e, 0xf3, 0x08, 0x62, 0xd8, 0xc2, 0x42, 0xba, 0x07,
+ 0xb1, 0x2c, 0x7a, 0x9c, 0xf2, 0x55, 0xe1, 0x67, 0x3c, 0x5c, 0x3b, 0x98,
+};
+static const unsigned char kat1902_addinreseed[] = {0};
+static const unsigned char kat1902_addin0[] = {0};
+static const unsigned char kat1902_addin1[] = {0};
+static const unsigned char kat1902_retbits[] = {
+ 0x41, 0x13, 0xac, 0xc3, 0xc1, 0x55, 0xe9, 0x6d, 0xa2, 0x8d, 0xc1, 0xc5,
+ 0xaa, 0x36, 0x9a, 0xd5, 0xd1, 0xbc, 0x4a, 0x83, 0x93, 0x12, 0xd6, 0xf7,
+ 0x9d, 0x6e, 0x15, 0x14, 0x69, 0x6f, 0x9a, 0x2c, 0x52, 0x31, 0x57, 0x7d,
+ 0xce, 0x79, 0xe8, 0xcc, 0x9d, 0x94, 0x9c, 0xbb, 0xd3, 0x03, 0x39, 0xc4,
+ 0xe5, 0x25, 0xd0, 0x17, 0x10, 0x6c, 0x4b, 0x2f, 0x64, 0xb5, 0x48, 0xc5,
+ 0x53, 0x74, 0xaf, 0x6c,
+};
+static const struct drbg_kat_pr_false kat1902_t = {
+ 11, kat1902_entropyin, kat1902_nonce, kat1902_persstr,
+ kat1902_entropyinreseed, kat1902_addinreseed, kat1902_addin0,
+ kat1902_addin1, kat1902_retbits
+};
+static const struct drbg_kat kat1902 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1902_t
+};
+
+static const unsigned char kat1903_entropyin[] = {
+ 0xbd, 0xa8, 0x8e, 0x80, 0x55, 0x70, 0xfb, 0xbe, 0x77, 0xb9, 0xd5, 0x3f,
+ 0xe5, 0xbc, 0x44, 0x39, 0x72, 0xa0, 0x09, 0x4e, 0x54, 0x36, 0x2c, 0x6d,
+};
+static const unsigned char kat1903_nonce[] = {
+ 0x83, 0xac, 0x35, 0xef, 0x07, 0xaf, 0x29, 0x1d, 0x6e, 0x46, 0xd8, 0xa9,
+ 0xe4, 0xa2, 0xf4, 0x0a,
+};
+static const unsigned char kat1903_persstr[] = {
+ 0xb5, 0xff, 0x03, 0x68, 0x54, 0xfe, 0x4b, 0x3f, 0x67, 0x4b, 0x11, 0x31,
+ 0x73, 0x3b, 0x8a, 0xaf, 0x11, 0xec, 0xa1, 0xdb, 0xb2, 0xbf, 0x68, 0x34,
+ 0xf3, 0xd2, 0x36, 0xe6, 0xe0, 0xff, 0xaf, 0x43,
+};
+static const unsigned char kat1903_entropyinreseed[] = {
+ 0xed, 0xd2, 0xf0, 0xdb, 0x20, 0xf4, 0x31, 0x3c, 0xe3, 0x6d, 0xec, 0x00,
+ 0xa8, 0x5f, 0xf6, 0xf7, 0x0e, 0x00, 0xd5, 0x06, 0xf8, 0xdb, 0xad, 0x68,
+};
+static const unsigned char kat1903_addinreseed[] = {0};
+static const unsigned char kat1903_addin0[] = {0};
+static const unsigned char kat1903_addin1[] = {0};
+static const unsigned char kat1903_retbits[] = {
+ 0x97, 0xb4, 0x5b, 0xc5, 0x6e, 0x89, 0xd4, 0x0d, 0x83, 0x46, 0xe8, 0xfe,
+ 0x3c, 0x3e, 0x3c, 0x9b, 0x23, 0x0f, 0x19, 0x25, 0x6e, 0x01, 0xc4, 0x03,
+ 0x64, 0x09, 0x0e, 0x30, 0x81, 0xdb, 0x19, 0x22, 0x30, 0x46, 0x5b, 0x8e,
+ 0xf1, 0x3b, 0x9d, 0x58, 0xe2, 0xd6, 0x21, 0x8a, 0xaa, 0xdb, 0xc4, 0xaf,
+ 0xd6, 0xf9, 0x1b, 0x83, 0x57, 0x3e, 0x6c, 0xf7, 0xf0, 0x57, 0x29, 0x9d,
+ 0x75, 0x82, 0x6d, 0x66,
+};
+static const struct drbg_kat_pr_false kat1903_t = {
+ 12, kat1903_entropyin, kat1903_nonce, kat1903_persstr,
+ kat1903_entropyinreseed, kat1903_addinreseed, kat1903_addin0,
+ kat1903_addin1, kat1903_retbits
+};
+static const struct drbg_kat kat1903 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1903_t
+};
+
+static const unsigned char kat1904_entropyin[] = {
+ 0x28, 0x80, 0xd8, 0x06, 0xb5, 0xdc, 0xa2, 0x2e, 0x2c, 0xeb, 0x0e, 0x24,
+ 0x2b, 0xd0, 0xa5, 0xd6, 0x47, 0x58, 0xf9, 0x8b, 0x70, 0x32, 0xfa, 0x5d,
+};
+static const unsigned char kat1904_nonce[] = {
+ 0x0f, 0x48, 0x11, 0xc8, 0xf4, 0x94, 0x2e, 0x69, 0xbe, 0x1e, 0x7d, 0x15,
+ 0x4c, 0x73, 0x06, 0x72,
+};
+static const unsigned char kat1904_persstr[] = {
+ 0x63, 0x2a, 0x70, 0xfd, 0xf2, 0xb9, 0xce, 0xe1, 0xf4, 0x5a, 0x3d, 0x18,
+ 0xa9, 0x67, 0x2d, 0xdf, 0xf9, 0xb2, 0x2a, 0x01, 0xb8, 0x25, 0x26, 0x2e,
+ 0x64, 0x1e, 0x7c, 0xc6, 0xe0, 0xc9, 0xca, 0x46,
+};
+static const unsigned char kat1904_entropyinreseed[] = {
+ 0x3b, 0x4f, 0x70, 0x5e, 0x1f, 0x47, 0x04, 0xb2, 0x19, 0xb2, 0x65, 0xe8,
+ 0x35, 0x9c, 0x16, 0x7d, 0x17, 0x12, 0xb8, 0x3e, 0x56, 0x00, 0x00, 0x6a,
+};
+static const unsigned char kat1904_addinreseed[] = {0};
+static const unsigned char kat1904_addin0[] = {0};
+static const unsigned char kat1904_addin1[] = {0};
+static const unsigned char kat1904_retbits[] = {
+ 0x25, 0x38, 0xeb, 0xdd, 0x9c, 0x73, 0x92, 0x19, 0x3a, 0xa2, 0xdf, 0x2e,
+ 0xfe, 0x8a, 0x9c, 0xe1, 0xc5, 0x91, 0xb1, 0xe6, 0x5e, 0x1b, 0x8d, 0x08,
+ 0x37, 0xa6, 0xc1, 0x82, 0x6d, 0xd9, 0x86, 0x00, 0x1c, 0xd1, 0x69, 0xa8,
+ 0x5d, 0x66, 0xfc, 0x6c, 0xb6, 0x72, 0xd4, 0xda, 0xa3, 0xd2, 0xab, 0x98,
+ 0xc3, 0xdc, 0xde, 0x71, 0x04, 0x7c, 0xe7, 0x3d, 0xb4, 0xb6, 0x90, 0xea,
+ 0x29, 0xd3, 0x20, 0xdb,
+};
+static const struct drbg_kat_pr_false kat1904_t = {
+ 13, kat1904_entropyin, kat1904_nonce, kat1904_persstr,
+ kat1904_entropyinreseed, kat1904_addinreseed, kat1904_addin0,
+ kat1904_addin1, kat1904_retbits
+};
+static const struct drbg_kat kat1904 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1904_t
+};
+
+static const unsigned char kat1905_entropyin[] = {
+ 0x20, 0x46, 0x34, 0x49, 0x04, 0xa1, 0xd3, 0xad, 0xbe, 0x32, 0x47, 0x66,
+ 0x79, 0xf6, 0xb4, 0x5b, 0xa9, 0x87, 0xeb, 0x1f, 0x9a, 0xf7, 0xa9, 0x68,
+};
+static const unsigned char kat1905_nonce[] = {
+ 0xcf, 0xbb, 0x77, 0x61, 0xde, 0xed, 0x18, 0xfe, 0x83, 0x25, 0x0f, 0xd1,
+ 0x28, 0xb7, 0xd5, 0x6a,
+};
+static const unsigned char kat1905_persstr[] = {
+ 0x20, 0x30, 0x06, 0x72, 0x46, 0xe0, 0xfc, 0x33, 0x10, 0xb4, 0x11, 0x19,
+ 0x5c, 0x5f, 0xba, 0x12, 0x8a, 0xa1, 0xec, 0x82, 0x30, 0x51, 0x08, 0x1a,
+ 0xf0, 0xad, 0x3a, 0x43, 0x32, 0x44, 0xb4, 0xb1,
+};
+static const unsigned char kat1905_entropyinreseed[] = {
+ 0xfc, 0xd0, 0x71, 0x14, 0xa5, 0x60, 0x39, 0xf5, 0xce, 0x59, 0x1e, 0x90,
+ 0x7b, 0x3a, 0xf1, 0x47, 0x2b, 0x0f, 0x07, 0xc8, 0xf9, 0xad, 0x08, 0x2c,
+};
+static const unsigned char kat1905_addinreseed[] = {0};
+static const unsigned char kat1905_addin0[] = {0};
+static const unsigned char kat1905_addin1[] = {0};
+static const unsigned char kat1905_retbits[] = {
+ 0x25, 0xfc, 0x78, 0xce, 0x65, 0xa5, 0x6f, 0x4b, 0xbc, 0x1b, 0xf3, 0xad,
+ 0x32, 0x71, 0x6e, 0xd1, 0xbc, 0x91, 0x7c, 0xc2, 0x1f, 0x51, 0x90, 0x84,
+ 0xc5, 0xff, 0x17, 0x58, 0x7a, 0x37, 0x7f, 0x2e, 0xf7, 0x83, 0x0c, 0x1e,
+ 0x4f, 0x7c, 0xf3, 0x81, 0xbe, 0x26, 0x0f, 0x5c, 0xb9, 0x39, 0x7c, 0x4c,
+ 0xca, 0xea, 0x42, 0xef, 0xc4, 0x99, 0x36, 0x3e, 0xdc, 0xc1, 0x4b, 0xfb,
+ 0xe5, 0x41, 0x20, 0xf2,
+};
+static const struct drbg_kat_pr_false kat1905_t = {
+ 14, kat1905_entropyin, kat1905_nonce, kat1905_persstr,
+ kat1905_entropyinreseed, kat1905_addinreseed, kat1905_addin0,
+ kat1905_addin1, kat1905_retbits
+};
+static const struct drbg_kat kat1905 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat1905_t
+};
+
+static const unsigned char kat1906_entropyin[] = {
+ 0xa6, 0x01, 0x37, 0x86, 0xb2, 0xe7, 0x8a, 0xf9, 0x7a, 0x4c, 0xcc, 0xe8,
+ 0xfc, 0x71, 0x1b, 0x53, 0x88, 0x69, 0xb7, 0x80, 0x09, 0x80, 0x3a, 0xc3,
+};
+static const unsigned char kat1906_nonce[] = {
+ 0x8b, 0x97, 0x4d, 0x92, 0x3a, 0xe0, 0x96, 0xa6, 0x1f, 0x2c, 0x06, 0x3a,
+ 0x1b, 0xfa, 0x20, 0xc4,
+};
+static const unsigned char kat1906_persstr[] = {
+ 0x4a, 0xfe, 0x7d, 0x39, 0xb3, 0x68, 0x50, 0xb8, 0xb1, 0x40, 0x03, 0xf3,
+ 0x93, 0x0f, 0xd6, 0x8a, 0xd3, 0x2d, 0xc6, 0xc4, 0x69, 0xb8, 0x18, 0x5d,
+ 0xba, 0x21, 0x3c, 0x77, 0x08, 0x60, 0x93, 0xf7,
+};
+static const unsigned char kat1906_entropyinreseed[] = {
+ 0x5b, 0x75, 0x1b, 0xb1, 0x15, 0x0f, 0x67, 0x2a, 0x47, 0xc2, 0x12, 0x80,
+ 0x7b, 0xeb, 0x2b, 0x2d, 0xaa, 0xf5, 0xa1, 0x9c, 0x4b, 0x94, 0xcf, 0xc7,
+};
+static const unsigned char kat1906_addinreseed[] = {
+ 0xb1, 0x11, 0xd8, 0x2a, 0xe4, 0xb6, 0x1c, 0x4e, 0x21, 0xd2, 0x7b, 0xee,
+ 0xd0, 0x05, 0x11, 0x01, 0x4f, 0x4c, 0xff, 0xac, 0x62, 0xd9, 0x68, 0x78,
+ 0x11, 0x5c, 0xd4, 0x1f, 0x83, 0xa7, 0xdb, 0xe5,
+};
+static const unsigned char kat1906_addin0[] = {
+ 0x5a, 0x30, 0x7a, 0x08, 0x7f, 0x9c, 0x09, 0xed, 0x8e, 0x66, 0x7d, 0x1c,
+ 0x3c, 0xbe, 0xfa, 0x77, 0x22, 0x22, 0xd0, 0x90, 0x11, 0xf0, 0x0f, 0x80,
+ 0xb6, 0xf6, 0x30, 0x6e, 0x24, 0xef, 0x67, 0x47,
+};
+static const unsigned char kat1906_addin1[] = {
+ 0xee, 0x94, 0x19, 0xfe, 0xd1, 0x45, 0xa9, 0xfc, 0xf4, 0xae, 0x56, 0x71,
+ 0x86, 0xcc, 0xc4, 0xff, 0xed, 0xf8, 0xbc, 0x00, 0x00, 0x8b, 0x00, 0xb6,
+ 0x06, 0xcc, 0xfc, 0xb8, 0xf4, 0xf3, 0xfb, 0x99,
+};
+static const unsigned char kat1906_retbits[] = {
+ 0x60, 0xa0, 0x77, 0xb6, 0xb5, 0xc3, 0xa4, 0xf5, 0x9c, 0x6a, 0x9f, 0xce,
+ 0x46, 0xee, 0x8e, 0xb1, 0x6f, 0x14, 0x33, 0xb2, 0x4f, 0x99, 0x29, 0x0f,
+ 0x17, 0xb2, 0xfb, 0xe1, 0x89, 0x0a, 0x33, 0xb9, 0x8c, 0xd0, 0x1c, 0xd3,
+ 0x73, 0x50, 0x13, 0x0c, 0x30, 0x11, 0x77, 0xdf, 0x0a, 0x6f, 0x0c, 0x44,
+ 0xae, 0xf6, 0x30, 0x82, 0xe6, 0xa1, 0x3c, 0xc7, 0x4a, 0x2a, 0x51, 0xf8,
+ 0x96, 0xaa, 0x27, 0xf6,
+};
+static const struct drbg_kat_pr_false kat1906_t = {
+ 0, kat1906_entropyin, kat1906_nonce, kat1906_persstr,
+ kat1906_entropyinreseed, kat1906_addinreseed, kat1906_addin0,
+ kat1906_addin1, kat1906_retbits
+};
+static const struct drbg_kat kat1906 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1906_t
+};
+
+static const unsigned char kat1907_entropyin[] = {
+ 0xf4, 0x71, 0x50, 0xc1, 0xb3, 0xc4, 0xe1, 0xea, 0x7f, 0x19, 0x5c, 0x81,
+ 0xd2, 0xa4, 0xa3, 0xee, 0x9b, 0x7b, 0x59, 0xb7, 0xad, 0x55, 0x36, 0x95,
+};
+static const unsigned char kat1907_nonce[] = {
+ 0x84, 0x9c, 0xf7, 0x0b, 0xcb, 0x23, 0x1d, 0xf7, 0xa8, 0x67, 0x30, 0x03,
+ 0xd6, 0x5d, 0xb5, 0xf0,
+};
+static const unsigned char kat1907_persstr[] = {
+ 0x84, 0xb3, 0x63, 0xef, 0x90, 0xb3, 0x8a, 0xfc, 0x04, 0x2b, 0x3f, 0x81,
+ 0x79, 0x6b, 0x0f, 0xcf, 0x05, 0x13, 0x73, 0x9c, 0xcc, 0x33, 0x78, 0x72,
+ 0xf1, 0x6c, 0xdb, 0x7b, 0xa8, 0x12, 0x51, 0x47,
+};
+static const unsigned char kat1907_entropyinreseed[] = {
+ 0xb6, 0xa9, 0x31, 0xea, 0x34, 0xee, 0x8b, 0x2b, 0x4f, 0xf4, 0x3c, 0x5c,
+ 0x3a, 0x32, 0x5e, 0xff, 0x1a, 0xfc, 0x74, 0xb2, 0x63, 0xc4, 0x54, 0xdb,
+};
+static const unsigned char kat1907_addinreseed[] = {
+ 0x1e, 0xe9, 0xa0, 0x56, 0x36, 0x2f, 0xdc, 0xe4, 0x71, 0x88, 0x70, 0xe1,
+ 0x70, 0xd5, 0x04, 0xf0, 0xe6, 0x7d, 0x9d, 0x4f, 0x02, 0x81, 0x3a, 0x9b,
+ 0xc0, 0xf1, 0x74, 0xd9, 0x10, 0x6e, 0xcb, 0xfe,
+};
+static const unsigned char kat1907_addin0[] = {
+ 0x3d, 0xd2, 0x21, 0xda, 0x19, 0xd4, 0x7b, 0x0d, 0x2b, 0xb8, 0x19, 0x7b,
+ 0x07, 0x06, 0xa5, 0x9e, 0xc9, 0x50, 0x99, 0xa8, 0x84, 0xc3, 0x0a, 0xe0,
+ 0x6f, 0xea, 0xe6, 0x8c, 0x3f, 0x17, 0x5a, 0xed,
+};
+static const unsigned char kat1907_addin1[] = {
+ 0xe5, 0x3f, 0xcb, 0xf8, 0xab, 0x85, 0x0f, 0x16, 0x0b, 0xfc, 0xa6, 0x84,
+ 0xda, 0x91, 0x1f, 0x44, 0x72, 0x7c, 0x7c, 0xd1, 0x24, 0xfa, 0xed, 0x95,
+ 0x6f, 0xcb, 0xf0, 0x83, 0x2d, 0xeb, 0x41, 0x41,
+};
+static const unsigned char kat1907_retbits[] = {
+ 0x1b, 0x6c, 0x79, 0x23, 0x03, 0x7a, 0x87, 0xf7, 0xa6, 0xd3, 0x32, 0x2c,
+ 0xb0, 0xac, 0x73, 0xbc, 0xaa, 0xd5, 0xea, 0x5b, 0x24, 0x26, 0x79, 0x6c,
+ 0x10, 0x5c, 0x6d, 0x6c, 0x75, 0x9e, 0x34, 0xa4, 0xd6, 0xbb, 0x8a, 0x06,
+ 0x49, 0x89, 0xfa, 0xc7, 0xb1, 0x19, 0x30, 0xb3, 0x77, 0x2d, 0xc0, 0x4f,
+ 0xea, 0x90, 0x23, 0x54, 0xbd, 0x4c, 0x81, 0x75, 0x5f, 0xad, 0x6e, 0x88,
+ 0x01, 0x99, 0x31, 0x3b,
+};
+static const struct drbg_kat_pr_false kat1907_t = {
+ 1, kat1907_entropyin, kat1907_nonce, kat1907_persstr,
+ kat1907_entropyinreseed, kat1907_addinreseed, kat1907_addin0,
+ kat1907_addin1, kat1907_retbits
+};
+static const struct drbg_kat kat1907 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1907_t
+};
+
+static const unsigned char kat1908_entropyin[] = {
+ 0xd9, 0x3f, 0xfd, 0xb3, 0x51, 0xc6, 0x4e, 0x5d, 0xea, 0xd1, 0x8a, 0x25,
+ 0x3d, 0x51, 0x85, 0x61, 0x37, 0x0f, 0x7b, 0x38, 0x8f, 0x6c, 0x14, 0xb3,
+};
+static const unsigned char kat1908_nonce[] = {
+ 0x0b, 0x8a, 0xab, 0xbf, 0xb5, 0x0c, 0x34, 0xe2, 0xb4, 0xce, 0xf3, 0x55,
+ 0xcc, 0xe0, 0x2d, 0x16,
+};
+static const unsigned char kat1908_persstr[] = {
+ 0xea, 0x28, 0x46, 0x14, 0x2e, 0xf9, 0xe5, 0xe9, 0x15, 0x15, 0x64, 0xe7,
+ 0xe4, 0x80, 0xda, 0x1c, 0x53, 0xfd, 0x7f, 0x71, 0x6a, 0xb4, 0x7c, 0x86,
+ 0xff, 0x77, 0xd2, 0xc7, 0xe4, 0x8d, 0x0a, 0x31,
+};
+static const unsigned char kat1908_entropyinreseed[] = {
+ 0x69, 0x07, 0x69, 0x1b, 0xf8, 0x22, 0x89, 0x26, 0x82, 0xa2, 0x87, 0xa5,
+ 0x48, 0xb0, 0x21, 0x44, 0x01, 0xf0, 0xe2, 0x85, 0xee, 0xe2, 0x35, 0xd6,
+};
+static const unsigned char kat1908_addinreseed[] = {
+ 0x38, 0x8e, 0x47, 0x09, 0xe2, 0x4f, 0x8c, 0xfc, 0x33, 0xfc, 0x4e, 0xb6,
+ 0x20, 0x00, 0x30, 0xc8, 0xe3, 0x3b, 0x75, 0x6e, 0xfd, 0x63, 0x51, 0x7a,
+ 0x54, 0x95, 0x82, 0xae, 0xb7, 0xab, 0xfc, 0x3c,
+};
+static const unsigned char kat1908_addin0[] = {
+ 0xb3, 0x1f, 0x05, 0x6e, 0x61, 0x0b, 0xc0, 0x55, 0x2e, 0xcc, 0x30, 0x39,
+ 0xe8, 0xbc, 0xbd, 0x3a, 0x94, 0x8e, 0xda, 0xff, 0x21, 0xfa, 0x08, 0x9f,
+ 0x69, 0xd2, 0xd5, 0x96, 0x55, 0xef, 0x5a, 0x5e,
+};
+static const unsigned char kat1908_addin1[] = {
+ 0x78, 0xf1, 0xf0, 0x2d, 0x50, 0xa8, 0x84, 0x17, 0xad, 0xc9, 0x57, 0x2c,
+ 0x44, 0x72, 0xa8, 0x6d, 0x2e, 0xf4, 0x2b, 0x37, 0x57, 0x10, 0x31, 0xce,
+ 0xb4, 0xa6, 0xd6, 0xa9, 0xd4, 0x8a, 0xfb, 0x78,
+};
+static const unsigned char kat1908_retbits[] = {
+ 0xcd, 0x87, 0x91, 0x49, 0x5a, 0xbe, 0x44, 0x46, 0x5a, 0xd1, 0xf2, 0xf7,
+ 0x86, 0x6d, 0x18, 0x3d, 0xb8, 0x37, 0x5f, 0x1c, 0x32, 0x5b, 0xce, 0xaf,
+ 0xf2, 0xa5, 0xdf, 0x27, 0x9a, 0xc2, 0x62, 0xe3, 0x4b, 0x58, 0x9e, 0xb3,
+ 0x7c, 0x49, 0x6c, 0xdd, 0x1d, 0x17, 0xf5, 0xfe, 0x4f, 0xd9, 0x1f, 0xee,
+ 0xa4, 0x6e, 0x03, 0xbb, 0xc7, 0x6b, 0x94, 0x13, 0x7e, 0x12, 0x8b, 0xce,
+ 0xf3, 0x02, 0xae, 0x4b,
+};
+static const struct drbg_kat_pr_false kat1908_t = {
+ 2, kat1908_entropyin, kat1908_nonce, kat1908_persstr,
+ kat1908_entropyinreseed, kat1908_addinreseed, kat1908_addin0,
+ kat1908_addin1, kat1908_retbits
+};
+static const struct drbg_kat kat1908 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1908_t
+};
+
+static const unsigned char kat1909_entropyin[] = {
+ 0x5e, 0x26, 0x0d, 0xb3, 0x62, 0xdc, 0x6c, 0xa6, 0x7c, 0xee, 0xd0, 0x61,
+ 0x89, 0xc4, 0x8c, 0x6b, 0x56, 0x5a, 0x5a, 0x97, 0x65, 0x2b, 0xff, 0xa2,
+};
+static const unsigned char kat1909_nonce[] = {
+ 0x93, 0x8c, 0x4e, 0x17, 0xae, 0x2d, 0x58, 0xa0, 0xea, 0xba, 0x1c, 0xb0,
+ 0xfb, 0x17, 0x1f, 0x5c,
+};
+static const unsigned char kat1909_persstr[] = {
+ 0x4d, 0x07, 0x7d, 0x2d, 0xb8, 0xc1, 0xc0, 0x71, 0x37, 0xa1, 0xf0, 0x18,
+ 0x6d, 0xde, 0xac, 0xb9, 0xad, 0x41, 0x03, 0x13, 0xb8, 0x89, 0xf9, 0x22,
+ 0x13, 0xe3, 0xcb, 0xe6, 0xbc, 0xb5, 0x15, 0x33,
+};
+static const unsigned char kat1909_entropyinreseed[] = {
+ 0x1c, 0x06, 0xf7, 0x99, 0xed, 0x96, 0xd7, 0x2f, 0x1a, 0x3b, 0xc6, 0x43,
+ 0x11, 0x99, 0xf8, 0x13, 0x38, 0x56, 0x51, 0x35, 0x3a, 0x58, 0x0b, 0xc2,
+};
+static const unsigned char kat1909_addinreseed[] = {
+ 0xc5, 0x2f, 0xa7, 0xaa, 0x53, 0x00, 0xb7, 0xf9, 0x04, 0xc8, 0xa0, 0x41,
+ 0x4b, 0xb9, 0x52, 0xf6, 0x31, 0x15, 0x5a, 0xf1, 0x74, 0x05, 0xef, 0x95,
+ 0xb7, 0x7c, 0x6f, 0xfd, 0xda, 0x76, 0x94, 0x78,
+};
+static const unsigned char kat1909_addin0[] = {
+ 0x7d, 0xc8, 0x6d, 0xd2, 0x3c, 0x8a, 0x0f, 0x39, 0x85, 0x8b, 0x6b, 0x04,
+ 0x21, 0x7f, 0x90, 0x8f, 0xfc, 0x80, 0x70, 0xb5, 0x06, 0xde, 0x36, 0x9a,
+ 0x76, 0x90, 0x85, 0x07, 0x99, 0xcd, 0x51, 0x0f,
+};
+static const unsigned char kat1909_addin1[] = {
+ 0xb4, 0xb0, 0x1b, 0xf4, 0x68, 0x19, 0xbf, 0xb7, 0x0c, 0x69, 0x62, 0x64,
+ 0x3c, 0xee, 0x8e, 0x72, 0x05, 0x10, 0xb1, 0x1f, 0x54, 0x65, 0x09, 0xf0,
+ 0x09, 0xcf, 0xb3, 0x6a, 0x2a, 0x59, 0x64, 0xfc,
+};
+static const unsigned char kat1909_retbits[] = {
+ 0xfb, 0xb5, 0x0d, 0x0d, 0xd0, 0xf4, 0x5c, 0xa9, 0x07, 0xff, 0xc7, 0x28,
+ 0x55, 0x6b, 0x2b, 0x80, 0x57, 0x07, 0x7e, 0xde, 0xf0, 0x38, 0x23, 0x6a,
+ 0x30, 0xa3, 0x5b, 0xf2, 0x3c, 0x3b, 0x02, 0x47, 0x5e, 0xda, 0x2a, 0x76,
+ 0xfe, 0x9a, 0xfc, 0xb9, 0xd3, 0x8d, 0x4e, 0x91, 0x15, 0xce, 0x4e, 0x32,
+ 0x85, 0xa1, 0x72, 0x35, 0x80, 0xd7, 0xc7, 0xcf, 0x31, 0x0d, 0x45, 0xed,
+ 0x28, 0x2f, 0x72, 0x12,
+};
+static const struct drbg_kat_pr_false kat1909_t = {
+ 3, kat1909_entropyin, kat1909_nonce, kat1909_persstr,
+ kat1909_entropyinreseed, kat1909_addinreseed, kat1909_addin0,
+ kat1909_addin1, kat1909_retbits
+};
+static const struct drbg_kat kat1909 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1909_t
+};
+
+static const unsigned char kat1910_entropyin[] = {
+ 0xec, 0xe4, 0x8b, 0xe4, 0x9e, 0x97, 0x96, 0x61, 0x0b, 0xd1, 0x83, 0xa9,
+ 0x9e, 0x87, 0x85, 0x95, 0x5a, 0xce, 0xe4, 0x8c, 0xed, 0xcb, 0xcd, 0x1f,
+};
+static const unsigned char kat1910_nonce[] = {
+ 0x8a, 0xf5, 0xce, 0x39, 0x3c, 0x24, 0x1d, 0xcb, 0x99, 0x3b, 0x4e, 0x2b,
+ 0xd1, 0x41, 0xff, 0x0d,
+};
+static const unsigned char kat1910_persstr[] = {
+ 0x59, 0x2b, 0x01, 0xbf, 0xc7, 0x48, 0xdb, 0x7b, 0xa6, 0xfd, 0xc5, 0x17,
+ 0xf8, 0x71, 0xed, 0x96, 0x21, 0xab, 0xf3, 0x8b, 0x18, 0x3c, 0x7b, 0x92,
+ 0xe7, 0x3a, 0x87, 0xb6, 0x6c, 0xec, 0xb0, 0x2c,
+};
+static const unsigned char kat1910_entropyinreseed[] = {
+ 0x92, 0x5e, 0x83, 0xe8, 0x53, 0xed, 0x17, 0xb9, 0xa5, 0x1c, 0x3a, 0x5d,
+ 0xc1, 0xa5, 0x58, 0xad, 0x46, 0x9c, 0x72, 0x9a, 0xbf, 0x33, 0xc3, 0x64,
+};
+static const unsigned char kat1910_addinreseed[] = {
+ 0xb9, 0xc5, 0x15, 0xe3, 0x79, 0xd4, 0x27, 0xb3, 0xb5, 0x26, 0x49, 0xa4,
+ 0xf4, 0xe7, 0x9a, 0xa1, 0xf8, 0xd7, 0xe3, 0x32, 0x0d, 0xb1, 0xf9, 0x53,
+ 0x7e, 0x86, 0x0e, 0xb6, 0xce, 0x9f, 0xa3, 0x0c,
+};
+static const unsigned char kat1910_addin0[] = {
+ 0x4d, 0x77, 0xbc, 0x15, 0xf7, 0x7e, 0xef, 0xac, 0x57, 0x8b, 0xff, 0xb4,
+ 0x5a, 0xb7, 0x73, 0x79, 0x2a, 0x4b, 0x88, 0x15, 0x19, 0x81, 0x18, 0xe4,
+ 0xde, 0x50, 0xfc, 0x57, 0x63, 0xfd, 0x49, 0x1c,
+};
+static const unsigned char kat1910_addin1[] = {
+ 0xba, 0x5a, 0x18, 0x49, 0x93, 0x32, 0xd2, 0x7b, 0x14, 0x70, 0xab, 0xf0,
+ 0x52, 0x65, 0xa2, 0x5a, 0xa9, 0x7e, 0x54, 0x2d, 0x35, 0x62, 0x29, 0x8e,
+ 0x8c, 0xa1, 0x80, 0x3b, 0xd3, 0xd5, 0xf2, 0xe7,
+};
+static const unsigned char kat1910_retbits[] = {
+ 0x86, 0xec, 0xcf, 0x86, 0x9b, 0xb1, 0x33, 0xe0, 0x57, 0x0a, 0x80, 0x21,
+ 0xe1, 0x58, 0x9a, 0xfe, 0xa2, 0xf4, 0xbb, 0x88, 0x0a, 0xc8, 0x4d, 0xde,
+ 0xff, 0xd5, 0x96, 0x28, 0xd6, 0x77, 0x1d, 0x2d, 0x0c, 0x1a, 0x03, 0xbb,
+ 0x75, 0x2b, 0x2d, 0xaa, 0x2c, 0x28, 0xd0, 0x48, 0x57, 0x0e, 0x0f, 0x49,
+ 0x3c, 0xef, 0x76, 0x65, 0x0f, 0x4c, 0x83, 0xf8, 0x8d, 0x07, 0x9b, 0x3f,
+ 0xc6, 0x8f, 0xb4, 0x47,
+};
+static const struct drbg_kat_pr_false kat1910_t = {
+ 4, kat1910_entropyin, kat1910_nonce, kat1910_persstr,
+ kat1910_entropyinreseed, kat1910_addinreseed, kat1910_addin0,
+ kat1910_addin1, kat1910_retbits
+};
+static const struct drbg_kat kat1910 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1910_t
+};
+
+static const unsigned char kat1911_entropyin[] = {
+ 0x69, 0x7d, 0x57, 0x85, 0x30, 0x02, 0x04, 0xca, 0xdb, 0x61, 0x20, 0x34,
+ 0xd3, 0xe0, 0x98, 0x65, 0x1f, 0xf1, 0x01, 0x94, 0x12, 0xcf, 0x37, 0x18,
+};
+static const unsigned char kat1911_nonce[] = {
+ 0xb4, 0x30, 0x42, 0xd9, 0xdb, 0xce, 0x8e, 0xf4, 0x96, 0x28, 0x89, 0xea,
+ 0x3a, 0xec, 0x21, 0x60,
+};
+static const unsigned char kat1911_persstr[] = {
+ 0xfd, 0x40, 0xe0, 0x40, 0x13, 0xf5, 0x43, 0x0c, 0xec, 0x93, 0x56, 0xab,
+ 0xcc, 0x5a, 0x3d, 0x71, 0xfd, 0xd7, 0x0c, 0x5e, 0xf2, 0x98, 0xc3, 0x8d,
+ 0x55, 0x91, 0x82, 0xaa, 0xd1, 0xf1, 0x5f, 0xa4,
+};
+static const unsigned char kat1911_entropyinreseed[] = {
+ 0xc6, 0x52, 0x17, 0x19, 0x25, 0x26, 0xba, 0x93, 0x68, 0x1f, 0xd1, 0x53,
+ 0x39, 0x4c, 0x32, 0xba, 0x4a, 0x78, 0xcb, 0x92, 0x24, 0xab, 0x57, 0x65,
+};
+static const unsigned char kat1911_addinreseed[] = {
+ 0x9e, 0x1c, 0x82, 0x32, 0x01, 0x94, 0x36, 0x32, 0xe3, 0xb5, 0xe9, 0xdc,
+ 0x15, 0xa6, 0x00, 0xc9, 0x95, 0x46, 0x0c, 0x04, 0x71, 0xd8, 0xc8, 0x92,
+ 0xb1, 0xd6, 0xe0, 0xb6, 0xcd, 0xa6, 0x9a, 0xdf,
+};
+static const unsigned char kat1911_addin0[] = {
+ 0xee, 0x91, 0x1f, 0xc3, 0x53, 0xca, 0xd8, 0x51, 0x1b, 0x97, 0xa3, 0xfa,
+ 0xe4, 0x95, 0xc7, 0x07, 0x28, 0x22, 0x9b, 0x2b, 0x79, 0x59, 0x6a, 0x6d,
+ 0x65, 0x74, 0xf5, 0x47, 0x6a, 0xa3, 0x84, 0xd5,
+};
+static const unsigned char kat1911_addin1[] = {
+ 0xeb, 0x46, 0x6d, 0xd8, 0x45, 0x06, 0xb3, 0xfd, 0xc3, 0xcf, 0xcb, 0xac,
+ 0x86, 0x9c, 0xa0, 0x47, 0x70, 0x26, 0x6c, 0x80, 0x68, 0x9a, 0x0e, 0xbb,
+ 0x2a, 0xf0, 0xd2, 0xe6, 0xfa, 0xdd, 0x0c, 0x2e,
+};
+static const unsigned char kat1911_retbits[] = {
+ 0x5f, 0x66, 0x7e, 0xf0, 0xe3, 0xe5, 0x89, 0xdd, 0xe3, 0x49, 0x96, 0x3c,
+ 0x46, 0x4b, 0x16, 0x80, 0xae, 0x7c, 0x30, 0x64, 0xb1, 0x1b, 0xf2, 0xcd,
+ 0xa9, 0x2e, 0x04, 0x07, 0x03, 0x75, 0x91, 0xd2, 0xa4, 0x78, 0x2c, 0x89,
+ 0x17, 0x2d, 0xce, 0xba, 0xc3, 0x96, 0x45, 0x36, 0x88, 0xd7, 0x86, 0xaa,
+ 0x6d, 0x61, 0xbf, 0x80, 0xe8, 0x3f, 0x3a, 0xc3, 0x96, 0x3a, 0x07, 0x15,
+ 0x3e, 0xbb, 0x77, 0xf2,
+};
+static const struct drbg_kat_pr_false kat1911_t = {
+ 5, kat1911_entropyin, kat1911_nonce, kat1911_persstr,
+ kat1911_entropyinreseed, kat1911_addinreseed, kat1911_addin0,
+ kat1911_addin1, kat1911_retbits
+};
+static const struct drbg_kat kat1911 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1911_t
+};
+
+static const unsigned char kat1912_entropyin[] = {
+ 0x20, 0x1a, 0x22, 0x93, 0x31, 0x7a, 0x8d, 0x5b, 0xd7, 0x40, 0xc0, 0xe8,
+ 0x71, 0xb3, 0x52, 0x6b, 0xb8, 0xaa, 0x4d, 0xbb, 0x04, 0x2c, 0xdb, 0x9f,
+};
+static const unsigned char kat1912_nonce[] = {
+ 0xcf, 0xba, 0x92, 0x8a, 0x48, 0x97, 0xfa, 0xb8, 0xbf, 0x01, 0xe1, 0x95,
+ 0xb9, 0xbe, 0xb7, 0xf5,
+};
+static const unsigned char kat1912_persstr[] = {
+ 0x89, 0x06, 0x59, 0x6c, 0xfd, 0xa6, 0x8e, 0xb4, 0x99, 0xd5, 0xc8, 0x4e,
+ 0xbb, 0x04, 0x4d, 0x23, 0x10, 0xf3, 0x9c, 0x16, 0x56, 0x5a, 0x4a, 0x6d,
+ 0xb1, 0x27, 0x09, 0x0b, 0x0c, 0x15, 0xa1, 0x62,
+};
+static const unsigned char kat1912_entropyinreseed[] = {
+ 0x38, 0x58, 0xa9, 0x99, 0x54, 0x04, 0xc5, 0xcc, 0xa0, 0xa0, 0x4a, 0xc5,
+ 0x90, 0xdb, 0xc7, 0x9e, 0x7f, 0x21, 0xe0, 0x42, 0xec, 0x23, 0x79, 0x93,
+};
+static const unsigned char kat1912_addinreseed[] = {
+ 0xf9, 0xca, 0x96, 0x77, 0xb1, 0xdd, 0x89, 0x48, 0x6a, 0xfd, 0x2a, 0x52,
+ 0x1f, 0x72, 0x12, 0xc4, 0x1d, 0xaa, 0xb3, 0x68, 0x50, 0x51, 0x78, 0xbe,
+ 0x49, 0x4b, 0x77, 0x96, 0x18, 0xb6, 0x15, 0xf4,
+};
+static const unsigned char kat1912_addin0[] = {
+ 0xf6, 0x60, 0x37, 0xb8, 0xb5, 0x77, 0xd4, 0xb8, 0x66, 0xb0, 0x17, 0x1c,
+ 0xe1, 0x6b, 0xed, 0x3b, 0x90, 0x47, 0x94, 0xa0, 0x9e, 0xf0, 0x2a, 0x41,
+ 0x38, 0xe7, 0xbe, 0x47, 0x26, 0x88, 0xb8, 0xb4,
+};
+static const unsigned char kat1912_addin1[] = {
+ 0xb5, 0x4e, 0xb9, 0x3f, 0xb6, 0x65, 0x3f, 0x7a, 0x57, 0x1f, 0x3e, 0x07,
+ 0x92, 0x39, 0x84, 0x24, 0xd5, 0x0b, 0x75, 0xfb, 0x6a, 0xae, 0x6f, 0x45,
+ 0x7f, 0xdc, 0x0b, 0x2d, 0xcd, 0xae, 0x38, 0xf4,
+};
+static const unsigned char kat1912_retbits[] = {
+ 0x3e, 0x94, 0x65, 0x7c, 0x6c, 0x08, 0xc0, 0x4a, 0x2a, 0x56, 0xf6, 0x30,
+ 0x72, 0x19, 0x7c, 0x72, 0xe1, 0x24, 0x42, 0x86, 0x67, 0x5b, 0xe3, 0x5d,
+ 0x86, 0x57, 0xa9, 0x2f, 0xb1, 0x57, 0x3c, 0xff, 0xc7, 0xe8, 0x76, 0x63,
+ 0x12, 0x84, 0x50, 0x1d, 0x07, 0x64, 0x57, 0xf0, 0x74, 0x51, 0x79, 0x16,
+ 0x2d, 0x90, 0x3f, 0xf4, 0x2e, 0x8a, 0x29, 0x19, 0xec, 0x5f, 0x32, 0x6c,
+ 0x93, 0x6d, 0xfa, 0xf7,
+};
+static const struct drbg_kat_pr_false kat1912_t = {
+ 6, kat1912_entropyin, kat1912_nonce, kat1912_persstr,
+ kat1912_entropyinreseed, kat1912_addinreseed, kat1912_addin0,
+ kat1912_addin1, kat1912_retbits
+};
+static const struct drbg_kat kat1912 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1912_t
+};
+
+static const unsigned char kat1913_entropyin[] = {
+ 0x82, 0x33, 0x49, 0x05, 0x0b, 0xed, 0x4f, 0x80, 0x59, 0x71, 0x5f, 0xcf,
+ 0x8d, 0xe4, 0x57, 0x0c, 0xf3, 0x7e, 0x45, 0x4f, 0x83, 0x3b, 0x59, 0xbf,
+};
+static const unsigned char kat1913_nonce[] = {
+ 0x23, 0xe7, 0x78, 0xbe, 0x62, 0x17, 0x7f, 0xbd, 0x73, 0x56, 0x36, 0x40,
+ 0x76, 0x7c, 0xd7, 0xad,
+};
+static const unsigned char kat1913_persstr[] = {
+ 0x76, 0x55, 0x4f, 0xef, 0x6f, 0xeb, 0x95, 0x97, 0x39, 0x12, 0xd4, 0xaf,
+ 0x33, 0xd5, 0x38, 0x0e, 0xc1, 0x3e, 0x17, 0xeb, 0x9c, 0x07, 0x20, 0xc5,
+ 0x2e, 0xf0, 0x11, 0x0d, 0xee, 0xf4, 0x27, 0xa0,
+};
+static const unsigned char kat1913_entropyinreseed[] = {
+ 0x29, 0xf4, 0x0a, 0xa8, 0x8b, 0x68, 0xea, 0x61, 0xec, 0xdc, 0x0f, 0xc6,
+ 0x0d, 0xed, 0x69, 0x58, 0x04, 0x23, 0xfd, 0x4a, 0x19, 0x43, 0x11, 0x7e,
+};
+static const unsigned char kat1913_addinreseed[] = {
+ 0x5b, 0x32, 0x62, 0x36, 0xce, 0x66, 0x27, 0x4c, 0xc9, 0x8f, 0x34, 0x53,
+ 0xdb, 0x13, 0x7e, 0xb3, 0xa3, 0x94, 0xba, 0x6b, 0x1f, 0xa7, 0x2a, 0xff,
+ 0x98, 0x26, 0x90, 0x26, 0xa4, 0x70, 0xfd, 0xe6,
+};
+static const unsigned char kat1913_addin0[] = {
+ 0x18, 0xef, 0x72, 0xd2, 0x35, 0x85, 0x2d, 0xe3, 0xf1, 0x87, 0x7c, 0x5d,
+ 0x67, 0xaa, 0xff, 0xda, 0x71, 0xd0, 0xe2, 0x0a, 0xe3, 0x13, 0xac, 0xca,
+ 0x5e, 0xec, 0xa5, 0xd0, 0x2e, 0x0d, 0x7a, 0x81,
+};
+static const unsigned char kat1913_addin1[] = {
+ 0xd4, 0x28, 0xde, 0x12, 0x1a, 0x20, 0xf7, 0x10, 0xc8, 0x2b, 0x04, 0x78,
+ 0x4b, 0x42, 0x0f, 0x3f, 0xc1, 0x32, 0xcb, 0xd6, 0xfb, 0xe4, 0xc1, 0xc8,
+ 0xb2, 0x41, 0x73, 0xa7, 0x0c, 0x27, 0x97, 0x51,
+};
+static const unsigned char kat1913_retbits[] = {
+ 0x73, 0x0a, 0x7b, 0x36, 0x5d, 0x8e, 0x38, 0xc3, 0x0d, 0x6f, 0xc8, 0x8e,
+ 0x1c, 0x87, 0x5c, 0xfe, 0xf7, 0x14, 0x6c, 0xac, 0x3a, 0x14, 0xe5, 0xbb,
+ 0xbb, 0x92, 0x2d, 0x0e, 0x03, 0xae, 0x6b, 0xa5, 0xe1, 0x19, 0x84, 0x84,
+ 0x87, 0x29, 0x3d, 0xd0, 0x4c, 0xec, 0x93, 0x43, 0x99, 0x89, 0xb2, 0xdd,
+ 0x9b, 0x4b, 0x8e, 0x61, 0x10, 0xe1, 0xea, 0xd0, 0x4d, 0xe8, 0x1c, 0x21,
+ 0x2a, 0x01, 0x06, 0x55,
+};
+static const struct drbg_kat_pr_false kat1913_t = {
+ 7, kat1913_entropyin, kat1913_nonce, kat1913_persstr,
+ kat1913_entropyinreseed, kat1913_addinreseed, kat1913_addin0,
+ kat1913_addin1, kat1913_retbits
+};
+static const struct drbg_kat kat1913 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1913_t
+};
+
+static const unsigned char kat1914_entropyin[] = {
+ 0x78, 0x85, 0x2a, 0xb6, 0xf6, 0xb9, 0x7f, 0xd3, 0x3d, 0x0a, 0xf2, 0x96,
+ 0xfe, 0xb8, 0x20, 0x1b, 0x84, 0xc0, 0x69, 0x8e, 0x94, 0xd8, 0x71, 0x49,
+};
+static const unsigned char kat1914_nonce[] = {
+ 0x2e, 0xec, 0xbe, 0x98, 0xc1, 0x0d, 0xdc, 0xe7, 0xb3, 0xdc, 0x43, 0xd8,
+ 0x21, 0xb9, 0x65, 0x14,
+};
+static const unsigned char kat1914_persstr[] = {
+ 0x22, 0xae, 0x68, 0x7b, 0xbd, 0x32, 0x90, 0x3d, 0x78, 0x16, 0xd2, 0x47,
+ 0x6e, 0x14, 0x52, 0x8f, 0xbe, 0x12, 0xe9, 0x9f, 0xa6, 0x2f, 0xbf, 0x61,
+ 0x6b, 0xd0, 0x8f, 0x66, 0x15, 0x2d, 0xba, 0xa2,
+};
+static const unsigned char kat1914_entropyinreseed[] = {
+ 0xcb, 0xf0, 0x65, 0x4e, 0xaa, 0x4e, 0x24, 0x81, 0xf3, 0x2a, 0xb7, 0x4b,
+ 0xa0, 0x19, 0x57, 0x7c, 0x52, 0xc2, 0xeb, 0x45, 0x11, 0xbb, 0xff, 0x26,
+};
+static const unsigned char kat1914_addinreseed[] = {
+ 0x75, 0x0e, 0x5d, 0x39, 0x3e, 0x18, 0xbe, 0xb3, 0x23, 0x81, 0x45, 0x77,
+ 0x9c, 0xe1, 0x26, 0x5b, 0xd4, 0x73, 0xc9, 0xd3, 0x13, 0x03, 0x7b, 0x1e,
+ 0x3f, 0x34, 0x33, 0xed, 0x47, 0xf0, 0x95, 0x5b,
+};
+static const unsigned char kat1914_addin0[] = {
+ 0x4a, 0x63, 0x21, 0x1a, 0x20, 0x9d, 0x5b, 0x07, 0x6b, 0xde, 0x3a, 0x43,
+ 0xe4, 0xeb, 0xc5, 0x51, 0xe4, 0xb6, 0x96, 0x85, 0x7a, 0xcf, 0x6b, 0x2b,
+ 0xe9, 0x2a, 0x73, 0x62, 0xb7, 0x04, 0x6d, 0x1b,
+};
+static const unsigned char kat1914_addin1[] = {
+ 0xda, 0xd1, 0x95, 0x2c, 0xf6, 0xc4, 0xdb, 0x63, 0x15, 0xc7, 0xb4, 0x7c,
+ 0x53, 0x74, 0x1d, 0xc0, 0x2d, 0x66, 0xc3, 0x36, 0xd7, 0x08, 0xaf, 0x18,
+ 0xcf, 0xff, 0x9e, 0xdf, 0xec, 0x88, 0x22, 0xbf,
+};
+static const unsigned char kat1914_retbits[] = {
+ 0xd1, 0x29, 0x0b, 0x3d, 0xfd, 0x54, 0xb0, 0x0e, 0x06, 0x39, 0xd9, 0x6b,
+ 0x17, 0x1c, 0x57, 0x11, 0xef, 0xd7, 0xa7, 0x69, 0xab, 0x53, 0x2c, 0x09,
+ 0x63, 0x14, 0x34, 0xa1, 0x0b, 0x6b, 0x33, 0x6a, 0xc3, 0x7a, 0xad, 0xdb,
+ 0x5d, 0x03, 0x94, 0x96, 0x3c, 0xed, 0xea, 0x3f, 0x91, 0x9a, 0xd5, 0xf6,
+ 0xea, 0x10, 0x6e, 0x81, 0xce, 0xcf, 0x7f, 0x01, 0x05, 0x32, 0x63, 0x88,
+ 0xea, 0xb7, 0x45, 0x33,
+};
+static const struct drbg_kat_pr_false kat1914_t = {
+ 8, kat1914_entropyin, kat1914_nonce, kat1914_persstr,
+ kat1914_entropyinreseed, kat1914_addinreseed, kat1914_addin0,
+ kat1914_addin1, kat1914_retbits
+};
+static const struct drbg_kat kat1914 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1914_t
+};
+
+static const unsigned char kat1915_entropyin[] = {
+ 0x52, 0x26, 0x6e, 0x3d, 0x43, 0x2c, 0x32, 0x7b, 0x87, 0x9d, 0x69, 0x70,
+ 0x7a, 0x26, 0xcc, 0xd8, 0x2f, 0x1c, 0x71, 0x36, 0x99, 0x13, 0xc9, 0x97,
+};
+static const unsigned char kat1915_nonce[] = {
+ 0x7e, 0x77, 0x4e, 0x99, 0x2e, 0xb9, 0xfc, 0x62, 0x9d, 0x20, 0xbb, 0x96,
+ 0x8f, 0x11, 0x39, 0xa9,
+};
+static const unsigned char kat1915_persstr[] = {
+ 0xd7, 0x4f, 0x4a, 0xa6, 0x94, 0x9b, 0x4c, 0x4c, 0xa7, 0x28, 0xab, 0xfe,
+ 0x12, 0x2f, 0x64, 0x15, 0x11, 0x08, 0x7b, 0x85, 0x68, 0x6f, 0x79, 0x32,
+ 0x85, 0x56, 0xcf, 0xf8, 0xbb, 0xcb, 0x11, 0x58,
+};
+static const unsigned char kat1915_entropyinreseed[] = {
+ 0xd4, 0x80, 0xd8, 0x6e, 0xfb, 0x6c, 0x9e, 0xfc, 0xd7, 0x41, 0x2e, 0x1f,
+ 0x37, 0x82, 0xfd, 0x5a, 0x87, 0xb5, 0x41, 0x98, 0xa3, 0x0f, 0xca, 0x6f,
+};
+static const unsigned char kat1915_addinreseed[] = {
+ 0xf2, 0x05, 0xa6, 0x75, 0x1d, 0x23, 0x25, 0xc7, 0x9d, 0xbb, 0x31, 0x43,
+ 0x79, 0x53, 0x67, 0x47, 0x5d, 0x2c, 0x8d, 0x32, 0x48, 0xc1, 0xbb, 0xee,
+ 0xc8, 0x89, 0xce, 0x2c, 0xc4, 0xfd, 0xd6, 0x92,
+};
+static const unsigned char kat1915_addin0[] = {
+ 0xe6, 0x8b, 0x67, 0xbe, 0x2e, 0x8b, 0x18, 0x4f, 0x19, 0x3b, 0x37, 0x54,
+ 0xb0, 0x29, 0xb9, 0x6b, 0xda, 0xd8, 0xd1, 0xd1, 0xca, 0xfd, 0xa0, 0x60,
+ 0x37, 0x05, 0x81, 0x3c, 0xec, 0xad, 0x75, 0xd7,
+};
+static const unsigned char kat1915_addin1[] = {
+ 0x8b, 0x83, 0xbf, 0xf6, 0x53, 0x6e, 0x4b, 0x3c, 0xb1, 0xc1, 0xd4, 0x25,
+ 0xf0, 0x2e, 0x07, 0xb9, 0xd8, 0x8c, 0xa6, 0x15, 0x41, 0xd2, 0x59, 0x32,
+ 0x42, 0x10, 0xee, 0x48, 0x8b, 0x59, 0xba, 0xf7,
+};
+static const unsigned char kat1915_retbits[] = {
+ 0x19, 0x75, 0x45, 0xab, 0x71, 0x7f, 0x4b, 0x15, 0x6b, 0xae, 0x39, 0x3c,
+ 0x7e, 0x86, 0xcb, 0x2f, 0x3d, 0xa7, 0x53, 0xa2, 0xe7, 0x8c, 0x33, 0x17,
+ 0x93, 0xd9, 0xf2, 0xb6, 0x76, 0x7d, 0xbf, 0x07, 0xd7, 0xac, 0xa1, 0x22,
+ 0x8e, 0x45, 0x2e, 0x39, 0x68, 0xa0, 0x4b, 0x48, 0xcb, 0x9d, 0x7f, 0x94,
+ 0x1c, 0x53, 0x46, 0x2f, 0x98, 0x8c, 0xbd, 0x12, 0xc0, 0xad, 0xc7, 0xc7,
+ 0x16, 0x08, 0x5d, 0x69,
+};
+static const struct drbg_kat_pr_false kat1915_t = {
+ 9, kat1915_entropyin, kat1915_nonce, kat1915_persstr,
+ kat1915_entropyinreseed, kat1915_addinreseed, kat1915_addin0,
+ kat1915_addin1, kat1915_retbits
+};
+static const struct drbg_kat kat1915 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1915_t
+};
+
+static const unsigned char kat1916_entropyin[] = {
+ 0x50, 0x23, 0xd5, 0x26, 0x99, 0x1c, 0x0b, 0xa4, 0xd7, 0x80, 0x93, 0x47,
+ 0xc4, 0x3d, 0x99, 0x00, 0x42, 0x5b, 0x59, 0x96, 0x7c, 0xb9, 0x76, 0x19,
+};
+static const unsigned char kat1916_nonce[] = {
+ 0xea, 0xe2, 0x91, 0x2f, 0x80, 0x6d, 0x1b, 0xed, 0x45, 0xa0, 0xd8, 0x3c,
+ 0x02, 0x5c, 0xc3, 0xf9,
+};
+static const unsigned char kat1916_persstr[] = {
+ 0xa4, 0x8b, 0xd5, 0xfb, 0x24, 0xe6, 0x75, 0xb7, 0xd4, 0x7c, 0x66, 0x2b,
+ 0x7c, 0x57, 0xae, 0x1c, 0xdc, 0x43, 0xe6, 0x45, 0xc7, 0xb3, 0x9e, 0x1c,
+ 0x5b, 0x54, 0x97, 0xbe, 0x55, 0xc3, 0x1e, 0xdf,
+};
+static const unsigned char kat1916_entropyinreseed[] = {
+ 0xc0, 0x12, 0x37, 0xcc, 0xa4, 0x1c, 0xc7, 0x7f, 0x96, 0x86, 0xfe, 0xd0,
+ 0x78, 0xf5, 0x67, 0xca, 0xfb, 0xcb, 0xca, 0x23, 0x16, 0xe9, 0xc5, 0xd9,
+};
+static const unsigned char kat1916_addinreseed[] = {
+ 0xbd, 0x59, 0xb8, 0x90, 0x80, 0x6b, 0x0f, 0x67, 0x30, 0x82, 0x92, 0xc6,
+ 0x73, 0x27, 0xc4, 0x7f, 0xf4, 0x39, 0xbd, 0x76, 0xb0, 0x50, 0xfb, 0x87,
+ 0xd9, 0x55, 0xd1, 0x14, 0x81, 0xe2, 0x8f, 0x95,
+};
+static const unsigned char kat1916_addin0[] = {
+ 0xc1, 0xeb, 0x4e, 0x0e, 0xb4, 0x08, 0x8c, 0xdb, 0x9f, 0xee, 0xd0, 0xbb,
+ 0x19, 0xe1, 0x5a, 0x1e, 0x48, 0xe0, 0xc0, 0x6c, 0x60, 0xe8, 0x6a, 0x4a,
+ 0x0c, 0x77, 0x99, 0x8e, 0x8d, 0x60, 0x04, 0x56,
+};
+static const unsigned char kat1916_addin1[] = {
+ 0xbf, 0x84, 0x1c, 0x1b, 0x1f, 0xc5, 0x5c, 0x2f, 0x01, 0xf9, 0x6a, 0x3c,
+ 0x2f, 0xe4, 0xce, 0x50, 0x3f, 0xfd, 0x40, 0x99, 0xbd, 0x88, 0x4f, 0xc6,
+ 0x20, 0xa1, 0x5d, 0x45, 0x27, 0xfd, 0x1e, 0x21,
+};
+static const unsigned char kat1916_retbits[] = {
+ 0xbf, 0x7a, 0x3a, 0x2a, 0x43, 0x0e, 0xfc, 0xf4, 0xeb, 0x9b, 0x30, 0xd2,
+ 0xc7, 0x6d, 0x3c, 0x2d, 0xb3, 0xdc, 0x67, 0x0b, 0xcc, 0xd5, 0x14, 0xb4,
+ 0xbc, 0xb5, 0x0c, 0x56, 0xd3, 0x42, 0xd9, 0xa9, 0xfe, 0x1d, 0x45, 0x89,
+ 0xe0, 0xb8, 0xcc, 0x0d, 0x42, 0x26, 0xf1, 0x0d, 0x51, 0x8b, 0x36, 0xc1,
+ 0x15, 0xd8, 0xe4, 0xa2, 0x91, 0x06, 0xc3, 0xa0, 0x72, 0x42, 0x3f, 0x1f,
+ 0x3c, 0x09, 0xc7, 0xfd,
+};
+static const struct drbg_kat_pr_false kat1916_t = {
+ 10, kat1916_entropyin, kat1916_nonce, kat1916_persstr,
+ kat1916_entropyinreseed, kat1916_addinreseed, kat1916_addin0,
+ kat1916_addin1, kat1916_retbits
+};
+static const struct drbg_kat kat1916 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1916_t
+};
+
+static const unsigned char kat1917_entropyin[] = {
+ 0x36, 0xdd, 0x90, 0xad, 0x3a, 0x99, 0xef, 0x0f, 0x03, 0x9d, 0x30, 0xd2,
+ 0xc9, 0x9f, 0x2b, 0x07, 0xbf, 0x8b, 0x1a, 0xb7, 0xa4, 0xef, 0xdb, 0x01,
+};
+static const unsigned char kat1917_nonce[] = {
+ 0x17, 0x90, 0x21, 0x0b, 0x26, 0x3d, 0x0f, 0x66, 0xd1, 0x99, 0xdf, 0x75,
+ 0x90, 0x74, 0x83, 0xba,
+};
+static const unsigned char kat1917_persstr[] = {
+ 0x77, 0x10, 0x04, 0xb4, 0x54, 0xc3, 0xc2, 0xc4, 0x18, 0xcd, 0x7e, 0x39,
+ 0xbc, 0xf8, 0xb3, 0x34, 0x9d, 0x8d, 0xd0, 0x16, 0x5f, 0xb9, 0xc5, 0xf5,
+ 0x6f, 0x72, 0x49, 0xf7, 0x25, 0x8a, 0x43, 0x04,
+};
+static const unsigned char kat1917_entropyinreseed[] = {
+ 0x31, 0x03, 0xdd, 0xed, 0x1e, 0x53, 0xb3, 0xae, 0x63, 0xa4, 0x20, 0x7e,
+ 0xba, 0xef, 0xcb, 0x86, 0x27, 0x1f, 0xfe, 0x9d, 0x73, 0x71, 0x18, 0xaf,
+};
+static const unsigned char kat1917_addinreseed[] = {
+ 0x03, 0x50, 0xcb, 0xee, 0x80, 0xaa, 0xad, 0x1b, 0xcd, 0xc9, 0x45, 0x3b,
+ 0xdb, 0x12, 0xaf, 0x36, 0xd5, 0xa0, 0x33, 0x7a, 0xf3, 0x65, 0xd4, 0x67,
+ 0x05, 0x30, 0x5b, 0x5d, 0xbc, 0x8d, 0x0d, 0x4b,
+};
+static const unsigned char kat1917_addin0[] = {
+ 0xa3, 0x35, 0x7c, 0x6e, 0x97, 0xb7, 0xf2, 0xea, 0xed, 0xd4, 0x5d, 0x8b,
+ 0x17, 0xb1, 0x87, 0xea, 0xa5, 0x8c, 0xea, 0x7f, 0x6b, 0x90, 0xcd, 0x71,
+ 0x11, 0x09, 0x33, 0x7a, 0xc6, 0x40, 0x1b, 0x38,
+};
+static const unsigned char kat1917_addin1[] = {
+ 0xf1, 0xa8, 0x78, 0x7b, 0x45, 0x43, 0x01, 0x28, 0xec, 0xf1, 0x60, 0x8a,
+ 0xbf, 0x7d, 0xf5, 0x39, 0x75, 0x3e, 0x59, 0xb7, 0x42, 0xf1, 0x40, 0x0b,
+ 0xea, 0xe3, 0x5f, 0x87, 0xf7, 0x6e, 0x60, 0x0a,
+};
+static const unsigned char kat1917_retbits[] = {
+ 0x03, 0xb0, 0xe5, 0x10, 0x3b, 0x44, 0xcc, 0x72, 0xb3, 0xa7, 0x6c, 0x6e,
+ 0x3f, 0xe5, 0x3b, 0x2a, 0x21, 0x6d, 0xe6, 0xa6, 0xa2, 0x57, 0x14, 0x4d,
+ 0xeb, 0x74, 0x75, 0xc8, 0xc9, 0x17, 0xc2, 0x03, 0x17, 0x4c, 0xf5, 0xd2,
+ 0x59, 0x35, 0x16, 0xee, 0x13, 0x16, 0xcf, 0xf5, 0xc1, 0x0a, 0x13, 0x3a,
+ 0x3b, 0xd8, 0x0e, 0x06, 0x71, 0x40, 0xad, 0x9e, 0x7c, 0xaf, 0x39, 0xa7,
+ 0x06, 0xdd, 0xb4, 0x71,
+};
+static const struct drbg_kat_pr_false kat1917_t = {
+ 11, kat1917_entropyin, kat1917_nonce, kat1917_persstr,
+ kat1917_entropyinreseed, kat1917_addinreseed, kat1917_addin0,
+ kat1917_addin1, kat1917_retbits
+};
+static const struct drbg_kat kat1917 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1917_t
+};
+
+static const unsigned char kat1918_entropyin[] = {
+ 0x32, 0xa4, 0xbc, 0x55, 0xfe, 0x00, 0x93, 0x34, 0x11, 0xbc, 0x14, 0x63,
+ 0xc0, 0x04, 0xb7, 0xdd, 0xb6, 0xaf, 0xfb, 0xa1, 0x85, 0xdf, 0x62, 0x5f,
+};
+static const unsigned char kat1918_nonce[] = {
+ 0x4f, 0x93, 0x6c, 0x59, 0xf1, 0xdd, 0x36, 0xae, 0xd0, 0x40, 0x44, 0x02,
+ 0x0e, 0x60, 0x64, 0xab,
+};
+static const unsigned char kat1918_persstr[] = {
+ 0x31, 0xcb, 0x2a, 0x44, 0x66, 0x33, 0xbb, 0x01, 0xb9, 0xd9, 0x02, 0x4d,
+ 0x16, 0xbf, 0xc3, 0x87, 0x2f, 0xfa, 0x2d, 0x1c, 0x8f, 0x95, 0x92, 0xc4,
+ 0x72, 0x65, 0x7a, 0x92, 0x5d, 0x6e, 0xc3, 0x14,
+};
+static const unsigned char kat1918_entropyinreseed[] = {
+ 0xde, 0x9e, 0x64, 0x8b, 0xf1, 0x54, 0x06, 0xca, 0x39, 0x8d, 0x6b, 0x1c,
+ 0x68, 0xb7, 0x0b, 0x3e, 0xad, 0x20, 0xb4, 0x66, 0x90, 0xb9, 0x9c, 0x26,
+};
+static const unsigned char kat1918_addinreseed[] = {
+ 0x13, 0x3c, 0x98, 0x79, 0x41, 0x16, 0x12, 0xbc, 0x04, 0x92, 0x51, 0x98,
+ 0x7f, 0x20, 0x26, 0x13, 0x02, 0x04, 0x53, 0xa6, 0x18, 0xac, 0xba, 0x0f,
+ 0x45, 0xd5, 0x05, 0xe2, 0xb6, 0xc1, 0xb9, 0x45,
+};
+static const unsigned char kat1918_addin0[] = {
+ 0x9b, 0x6c, 0x10, 0x33, 0x39, 0xed, 0xe7, 0x00, 0x56, 0x41, 0x85, 0xcd,
+ 0x26, 0xd6, 0xa7, 0x2a, 0x0b, 0x2b, 0x55, 0x9e, 0xc9, 0x01, 0xa0, 0xda,
+ 0x1a, 0x68, 0xc7, 0x5f, 0xc6, 0xad, 0x94, 0x9b,
+};
+static const unsigned char kat1918_addin1[] = {
+ 0xd1, 0xc6, 0x02, 0x29, 0x4b, 0x4a, 0x1e, 0x66, 0x06, 0xfa, 0xd1, 0x1c,
+ 0x53, 0x88, 0x7e, 0x90, 0x47, 0x0a, 0x05, 0x00, 0xef, 0x54, 0xbe, 0x0b,
+ 0x56, 0x9f, 0x8f, 0x48, 0xaa, 0xd9, 0xe1, 0xaa,
+};
+static const unsigned char kat1918_retbits[] = {
+ 0x6a, 0xec, 0x60, 0x89, 0x42, 0xd4, 0x00, 0x86, 0x8d, 0x4a, 0x49, 0x0a,
+ 0x70, 0x8a, 0x77, 0x19, 0x6c, 0x56, 0xcf, 0x01, 0x40, 0xe2, 0x50, 0xe3,
+ 0xfd, 0x7e, 0x1e, 0xe5, 0xcd, 0x90, 0x49, 0x25, 0xed, 0x7f, 0xbd, 0xfc,
+ 0xbb, 0x8a, 0xc3, 0x89, 0x9e, 0x63, 0x29, 0x03, 0x0e, 0xfa, 0xc6, 0xb7,
+ 0xae, 0xc3, 0xfe, 0x4c, 0x17, 0x2f, 0xfc, 0x3c, 0x78, 0x37, 0xb9, 0x69,
+ 0x5f, 0xec, 0x58, 0xde,
+};
+static const struct drbg_kat_pr_false kat1918_t = {
+ 12, kat1918_entropyin, kat1918_nonce, kat1918_persstr,
+ kat1918_entropyinreseed, kat1918_addinreseed, kat1918_addin0,
+ kat1918_addin1, kat1918_retbits
+};
+static const struct drbg_kat kat1918 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1918_t
+};
+
+static const unsigned char kat1919_entropyin[] = {
+ 0xfa, 0x45, 0x67, 0x8e, 0x54, 0x8e, 0xca, 0x6f, 0x7d, 0x55, 0x2d, 0x03,
+ 0xfe, 0xf9, 0xf5, 0x00, 0xa4, 0x1e, 0x63, 0xa9, 0xaf, 0x5f, 0x6d, 0xe7,
+};
+static const unsigned char kat1919_nonce[] = {
+ 0xe2, 0x14, 0xb4, 0x23, 0x0c, 0xb2, 0xae, 0x42, 0x8e, 0x31, 0x7c, 0x52,
+ 0x11, 0x28, 0x3f, 0x47,
+};
+static const unsigned char kat1919_persstr[] = {
+ 0xf3, 0x2a, 0x32, 0x62, 0xca, 0x7a, 0x6b, 0x52, 0x37, 0x2a, 0x86, 0xa7,
+ 0x20, 0xb1, 0xe3, 0xb3, 0xee, 0xd9, 0xf2, 0x28, 0xa9, 0x66, 0xe3, 0xe9,
+ 0xeb, 0xc5, 0x94, 0x72, 0x3b, 0x83, 0x13, 0x9d,
+};
+static const unsigned char kat1919_entropyinreseed[] = {
+ 0x4b, 0x4f, 0x7a, 0x51, 0xdf, 0x67, 0x39, 0xe8, 0x83, 0x9e, 0xa1, 0x11,
+ 0xb8, 0x09, 0x83, 0x48, 0x62, 0x9f, 0x89, 0x96, 0xcf, 0xce, 0x8a, 0xdf,
+};
+static const unsigned char kat1919_addinreseed[] = {
+ 0x21, 0xdf, 0xbc, 0xee, 0x16, 0xb0, 0x58, 0x1a, 0x4e, 0xaa, 0x7f, 0x22,
+ 0xa7, 0xc1, 0x15, 0x62, 0x66, 0xde, 0x87, 0x14, 0x67, 0xf3, 0x27, 0xe8,
+ 0x05, 0x39, 0x78, 0x41, 0x18, 0x9b, 0xef, 0x6e,
+};
+static const unsigned char kat1919_addin0[] = {
+ 0xcd, 0xd8, 0x36, 0x6b, 0x0e, 0x7b, 0xe7, 0x7b, 0x00, 0xe8, 0x47, 0xf6,
+ 0x89, 0x8c, 0xfe, 0xdd, 0x50, 0x13, 0x32, 0x1d, 0x15, 0x1e, 0x6a, 0x4a,
+ 0x01, 0xf8, 0xe1, 0xe4, 0x45, 0x1e, 0x73, 0x18,
+};
+static const unsigned char kat1919_addin1[] = {
+ 0x36, 0x66, 0xe9, 0xf2, 0x7c, 0x2b, 0xe7, 0x5d, 0x70, 0x7f, 0xdf, 0x0e,
+ 0x08, 0x23, 0x0c, 0x5e, 0x22, 0xee, 0x30, 0x72, 0x9f, 0xfd, 0x70, 0xcf,
+ 0xce, 0x62, 0xca, 0x82, 0xca, 0x97, 0x6a, 0x3b,
+};
+static const unsigned char kat1919_retbits[] = {
+ 0xea, 0x8b, 0x6e, 0xc1, 0xdd, 0xc4, 0x98, 0xd5, 0x9c, 0x97, 0x69, 0x21,
+ 0xa8, 0x74, 0x6a, 0xef, 0x37, 0xc4, 0x1a, 0x1f, 0xfa, 0xe2, 0x7d, 0x51,
+ 0x4f, 0xc9, 0xdb, 0x9d, 0x75, 0xa0, 0xce, 0x18, 0x1c, 0x94, 0xb1, 0x22,
+ 0x9c, 0x09, 0xd2, 0xe4, 0x84, 0xc8, 0x1a, 0xbf, 0xaf, 0x2f, 0xdc, 0x23,
+ 0x12, 0x4e, 0x51, 0x85, 0x02, 0xf7, 0xdb, 0xc7, 0x96, 0x71, 0x98, 0xa5,
+ 0xdd, 0x0e, 0xef, 0x71,
+};
+static const struct drbg_kat_pr_false kat1919_t = {
+ 13, kat1919_entropyin, kat1919_nonce, kat1919_persstr,
+ kat1919_entropyinreseed, kat1919_addinreseed, kat1919_addin0,
+ kat1919_addin1, kat1919_retbits
+};
+static const struct drbg_kat kat1919 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1919_t
+};
+
+static const unsigned char kat1920_entropyin[] = {
+ 0x66, 0xc1, 0xb0, 0xef, 0x8b, 0xac, 0xf0, 0x16, 0x36, 0x6d, 0x2d, 0x9a,
+ 0xe1, 0xaa, 0x16, 0x75, 0x91, 0xd8, 0x60, 0x74, 0x85, 0xf1, 0x6a, 0x9a,
+};
+static const unsigned char kat1920_nonce[] = {
+ 0xce, 0xa9, 0x90, 0x2a, 0x8e, 0xc1, 0xac, 0xbc, 0xa4, 0xb1, 0x0e, 0x13,
+ 0x25, 0xca, 0x6f, 0xff,
+};
+static const unsigned char kat1920_persstr[] = {
+ 0xee, 0xdc, 0xc9, 0xba, 0x4e, 0xa5, 0x01, 0xca, 0x23, 0xaf, 0x2f, 0x41,
+ 0x18, 0x52, 0xb4, 0xba, 0xfd, 0xd9, 0x2f, 0x3d, 0x4b, 0xb0, 0x81, 0x7c,
+ 0x3c, 0x47, 0xb7, 0x45, 0x77, 0xfb, 0xd1, 0x63,
+};
+static const unsigned char kat1920_entropyinreseed[] = {
+ 0xd4, 0x97, 0xe5, 0x55, 0x56, 0xa1, 0x11, 0x9c, 0x02, 0xa0, 0xe1, 0x2d,
+ 0xab, 0x8c, 0x1f, 0x8f, 0x77, 0xa4, 0x17, 0x17, 0xa1, 0xfe, 0x4a, 0xa6,
+};
+static const unsigned char kat1920_addinreseed[] = {
+ 0x81, 0xda, 0x6a, 0xf9, 0x7d, 0x93, 0xab, 0xfc, 0x11, 0xa7, 0x04, 0x0a,
+ 0x2a, 0x88, 0xa1, 0x67, 0x65, 0xef, 0x29, 0xb6, 0xba, 0xb5, 0x26, 0x0a,
+ 0x6c, 0x2c, 0x4b, 0xab, 0x1f, 0xa5, 0xdf, 0x3c,
+};
+static const unsigned char kat1920_addin0[] = {
+ 0x32, 0x13, 0x0c, 0x14, 0xe5, 0x92, 0xca, 0xfb, 0x1d, 0xa7, 0x46, 0xae,
+ 0x46, 0x34, 0xc5, 0xeb, 0xfe, 0xf0, 0x8f, 0x31, 0x84, 0x63, 0x9a, 0x44,
+ 0x7b, 0x96, 0xef, 0x12, 0xb4, 0x80, 0x2d, 0xf5,
+};
+static const unsigned char kat1920_addin1[] = {
+ 0x42, 0x9b, 0x9f, 0x44, 0x2c, 0x75, 0xc7, 0x66, 0x15, 0x49, 0x25, 0x82,
+ 0xd6, 0xdc, 0xc0, 0x07, 0xc9, 0x14, 0x06, 0xab, 0xfa, 0x88, 0x20, 0x8f,
+ 0x8b, 0x06, 0xe8, 0x0e, 0xf2, 0x29, 0x0c, 0xc5,
+};
+static const unsigned char kat1920_retbits[] = {
+ 0x5c, 0x37, 0xde, 0x23, 0x5a, 0x55, 0xd3, 0x74, 0x77, 0x44, 0xe8, 0x4e,
+ 0xb4, 0x41, 0x6b, 0x6e, 0x2d, 0xa0, 0xda, 0x09, 0xf3, 0x2c, 0x29, 0xf7,
+ 0x2c, 0xba, 0x63, 0x43, 0xb3, 0x27, 0xb4, 0x88, 0xdf, 0xa0, 0xd8, 0xa6,
+ 0x03, 0x66, 0x6d, 0x8b, 0xa3, 0x3b, 0x41, 0x7c, 0x71, 0x79, 0x51, 0xdd,
+ 0xee, 0xc4, 0x7d, 0x54, 0x9d, 0x0f, 0x6e, 0x09, 0x1e, 0x1b, 0xb7, 0xda,
+ 0xeb, 0x9e, 0x2e, 0x20,
+};
+static const struct drbg_kat_pr_false kat1920_t = {
+ 14, kat1920_entropyin, kat1920_nonce, kat1920_persstr,
+ kat1920_entropyinreseed, kat1920_addinreseed, kat1920_addin0,
+ kat1920_addin1, kat1920_retbits
+};
+static const struct drbg_kat kat1920 = {
+ PR_FALSE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat1920_t
+};
+
+static const unsigned char kat1921_entropyin[] = {
+ 0x2d, 0x4c, 0x9f, 0x46, 0xb9, 0x81, 0xc6, 0xa0, 0xb2, 0xb5, 0xd8, 0xc6,
+ 0x93, 0x91, 0xe5, 0x69, 0xff, 0x13, 0x85, 0x14, 0x37, 0xeb, 0xc0, 0xfc,
+ 0x00, 0xd6, 0x16, 0x34, 0x02, 0x52, 0xfe, 0xd5,
+};
+static const unsigned char kat1921_nonce[] = {
+ 0x0b, 0xf8, 0x14, 0xb4, 0x11, 0xf6, 0x5e, 0xc4, 0x86, 0x6b, 0xe1, 0xab,
+ 0xb5, 0x9d, 0x3c, 0x32,
+};
+static const unsigned char kat1921_persstr[] = {0};
+static const unsigned char kat1921_entropyinreseed[] = {
+ 0x93, 0x50, 0x0f, 0xae, 0x4f, 0xa3, 0x2b, 0x86, 0x03, 0x3b, 0x7a, 0x7b,
+ 0xac, 0x9d, 0x37, 0xe7, 0x10, 0xdc, 0xc6, 0x7c, 0xa2, 0x66, 0xbc, 0x86,
+ 0x07, 0xd6, 0x65, 0x93, 0x77, 0x66, 0xd2, 0x07,
+};
+static const unsigned char kat1921_addinreseed[] = {0};
+static const unsigned char kat1921_addin0[] = {0};
+static const unsigned char kat1921_addin1[] = {0};
+static const unsigned char kat1921_retbits[] = {
+ 0x32, 0x2d, 0xd2, 0x86, 0x70, 0xe7, 0x5c, 0x0e, 0xa6, 0x38, 0xf3, 0xcb,
+ 0x68, 0xd6, 0xa9, 0xd6, 0xe5, 0x0d, 0xdf, 0xd0, 0x52, 0xb7, 0x72, 0xa7,
+ 0xb1, 0xd7, 0x82, 0x63, 0xa7, 0xb8, 0x97, 0x8b, 0x67, 0x40, 0xc2, 0xb6,
+ 0x5a, 0x95, 0x50, 0xc3, 0xa7, 0x63, 0x25, 0x86, 0x6f, 0xa9, 0x7e, 0x16,
+ 0xd7, 0x40, 0x06, 0xbc, 0x96, 0xf2, 0x62, 0x49, 0xb9, 0xf0, 0xa9, 0x0d,
+ 0x07, 0x6f, 0x08, 0xe5,
+};
+static const struct drbg_kat_pr_false kat1921_t = {
+ 0, kat1921_entropyin, kat1921_nonce, kat1921_persstr,
+ kat1921_entropyinreseed, kat1921_addinreseed, kat1921_addin0,
+ kat1921_addin1, kat1921_retbits
+};
+static const struct drbg_kat kat1921 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1921_t
+};
+
+static const unsigned char kat1922_entropyin[] = {
+ 0x20, 0x0f, 0x09, 0x6b, 0x76, 0xe3, 0xbf, 0x2f, 0x40, 0x13, 0x3a, 0xe6,
+ 0x64, 0x92, 0x21, 0x08, 0x4f, 0x0a, 0xfb, 0x11, 0xf9, 0x6f, 0xe8, 0x6a,
+ 0x49, 0x87, 0xae, 0x7b, 0x11, 0x59, 0xd0, 0x32,
+};
+static const unsigned char kat1922_nonce[] = {
+ 0x3b, 0xe5, 0x6f, 0x6c, 0x0a, 0xe2, 0x89, 0xdf, 0xc6, 0x36, 0xf9, 0x6c,
+ 0xff, 0x5d, 0xaa, 0xa1,
+};
+static const unsigned char kat1922_persstr[] = {0};
+static const unsigned char kat1922_entropyinreseed[] = {
+ 0x89, 0x51, 0x33, 0xf4, 0xf2, 0xd1, 0xbe, 0x25, 0xec, 0x92, 0x9d, 0x42,
+ 0xe9, 0x04, 0xdb, 0xc7, 0x74, 0x99, 0x39, 0xad, 0x70, 0x22, 0xa9, 0x03,
+ 0x60, 0xa7, 0x43, 0xfd, 0x2c, 0x3f, 0x48, 0x3c,
+};
+static const unsigned char kat1922_addinreseed[] = {0};
+static const unsigned char kat1922_addin0[] = {0};
+static const unsigned char kat1922_addin1[] = {0};
+static const unsigned char kat1922_retbits[] = {
+ 0xbf, 0x12, 0xbf, 0x4d, 0x8e, 0xb6, 0xbb, 0xbd, 0x9f, 0x91, 0xa2, 0xef,
+ 0x48, 0xc6, 0xbc, 0x65, 0x24, 0xa1, 0x33, 0xdd, 0xe3, 0xc8, 0xd4, 0xf1,
+ 0x3d, 0x4b, 0x5c, 0xda, 0xe3, 0xb9, 0xe0, 0x41, 0xb9, 0x8c, 0x86, 0x50,
+ 0xad, 0xa9, 0xe1, 0xf2, 0xb5, 0xdf, 0x01, 0xd8, 0x75, 0x47, 0x0b, 0x22,
+ 0x0c, 0xac, 0xad, 0x0e, 0xe8, 0x87, 0x08, 0x0c, 0x27, 0x19, 0x29, 0xf6,
+ 0x95, 0x20, 0x4b, 0x66,
+};
+static const struct drbg_kat_pr_false kat1922_t = {
+ 1, kat1922_entropyin, kat1922_nonce, kat1922_persstr,
+ kat1922_entropyinreseed, kat1922_addinreseed, kat1922_addin0,
+ kat1922_addin1, kat1922_retbits
+};
+static const struct drbg_kat kat1922 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1922_t
+};
+
+static const unsigned char kat1923_entropyin[] = {
+ 0x1c, 0xc5, 0xa0, 0x86, 0x83, 0x1f, 0xac, 0x6b, 0xa0, 0x46, 0xb7, 0xf5,
+ 0x6c, 0x4e, 0xa5, 0xba, 0x7b, 0xcf, 0x9d, 0x85, 0x1b, 0x50, 0x51, 0x25,
+ 0x4c, 0x46, 0x83, 0xbf, 0xed, 0x7a, 0x26, 0xf9,
+};
+static const unsigned char kat1923_nonce[] = {
+ 0xa8, 0xd4, 0x2c, 0xa3, 0xb0, 0x8c, 0x9c, 0x97, 0x4f, 0xa2, 0xc2, 0xec,
+ 0xeb, 0x5a, 0x71, 0xe7,
+};
+static const unsigned char kat1923_persstr[] = {0};
+static const unsigned char kat1923_entropyinreseed[] = {
+ 0xe8, 0xc1, 0x74, 0xc6, 0x21, 0xaf, 0x92, 0xc5, 0x01, 0x2f, 0xc4, 0xca,
+ 0xca, 0x8d, 0x1f, 0xb7, 0x2e, 0xa7, 0x99, 0x8f, 0x5f, 0x78, 0xa6, 0xcd,
+ 0x5f, 0x3f, 0x25, 0x0f, 0x33, 0x0f, 0x0c, 0x74,
+};
+static const unsigned char kat1923_addinreseed[] = {0};
+static const unsigned char kat1923_addin0[] = {0};
+static const unsigned char kat1923_addin1[] = {0};
+static const unsigned char kat1923_retbits[] = {
+ 0x66, 0x54, 0xd8, 0x31, 0x40, 0x36, 0x93, 0x59, 0x14, 0x76, 0x21, 0x3b,
+ 0xee, 0x7b, 0xea, 0x64, 0x4c, 0x50, 0x58, 0xf9, 0x34, 0x54, 0xe8, 0x9e,
+ 0xa5, 0xb3, 0x48, 0xbc, 0x53, 0x54, 0xe2, 0xd8, 0xab, 0xac, 0x00, 0xd5,
+ 0x3b, 0x38, 0x79, 0xe2, 0xc8, 0x9b, 0xc8, 0xf4, 0x90, 0x96, 0x9e, 0x42,
+ 0xd7, 0x38, 0xba, 0x37, 0x43, 0x28, 0x22, 0xdf, 0x85, 0x9d, 0x63, 0x1c,
+ 0xfc, 0x86, 0xcd, 0x40,
+};
+static const struct drbg_kat_pr_false kat1923_t = {
+ 2, kat1923_entropyin, kat1923_nonce, kat1923_persstr,
+ kat1923_entropyinreseed, kat1923_addinreseed, kat1923_addin0,
+ kat1923_addin1, kat1923_retbits
+};
+static const struct drbg_kat kat1923 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1923_t
+};
+
+static const unsigned char kat1924_entropyin[] = {
+ 0x6b, 0xa5, 0xe8, 0x15, 0x27, 0x4e, 0x5c, 0xf4, 0xb2, 0x46, 0x77, 0x43,
+ 0xa8, 0x33, 0x3c, 0x5c, 0x52, 0x92, 0x32, 0x9a, 0x96, 0xf0, 0xae, 0xa4,
+ 0xfd, 0xc9, 0xa1, 0x80, 0x8b, 0x31, 0x2c, 0x62,
+};
+static const unsigned char kat1924_nonce[] = {
+ 0x2a, 0xbe, 0x3c, 0x2f, 0x11, 0xc9, 0x0e, 0xc9, 0xb6, 0x84, 0xe1, 0xcb,
+ 0x3f, 0xb0, 0xbd, 0xe6,
+};
+static const unsigned char kat1924_persstr[] = {0};
+static const unsigned char kat1924_entropyinreseed[] = {
+ 0xbc, 0x72, 0x57, 0xf6, 0x25, 0xcc, 0x10, 0x95, 0x36, 0x6d, 0x7e, 0xdd,
+ 0xb7, 0x93, 0xea, 0x75, 0xad, 0x2c, 0x5a, 0x47, 0x55, 0x14, 0xd5, 0x30,
+ 0x56, 0x65, 0x94, 0x23, 0xe5, 0x4c, 0xd0, 0x01,
+};
+static const unsigned char kat1924_addinreseed[] = {0};
+static const unsigned char kat1924_addin0[] = {0};
+static const unsigned char kat1924_addin1[] = {0};
+static const unsigned char kat1924_retbits[] = {
+ 0xb9, 0x5f, 0x8d, 0x62, 0x58, 0x51, 0x5a, 0x67, 0xc5, 0x1f, 0x96, 0xf8,
+ 0x20, 0x1c, 0x0b, 0x54, 0x45, 0x14, 0x2c, 0xde, 0x38, 0xda, 0xb3, 0xcf,
+ 0xf2, 0xb5, 0x27, 0xa4, 0xe5, 0xdc, 0xa5, 0xee, 0xe1, 0x5f, 0x79, 0xcf,
+ 0x07, 0x33, 0x45, 0xf3, 0x43, 0x8b, 0x1c, 0xd5, 0x07, 0xb2, 0xfe, 0x6c,
+ 0xe1, 0x56, 0x97, 0x07, 0xfe, 0x0c, 0x28, 0x8b, 0x76, 0xbf, 0x85, 0xe1,
+ 0xbf, 0x1a, 0x04, 0x19,
+};
+static const struct drbg_kat_pr_false kat1924_t = {
+ 3, kat1924_entropyin, kat1924_nonce, kat1924_persstr,
+ kat1924_entropyinreseed, kat1924_addinreseed, kat1924_addin0,
+ kat1924_addin1, kat1924_retbits
+};
+static const struct drbg_kat kat1924 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1924_t
+};
+
+static const unsigned char kat1925_entropyin[] = {
+ 0x14, 0x59, 0x8d, 0x23, 0xe6, 0x1d, 0x00, 0x3b, 0xf3, 0x21, 0xa2, 0xb4,
+ 0x81, 0x6f, 0x0a, 0x7e, 0xa3, 0xef, 0x6d, 0xe1, 0xad, 0x69, 0x83, 0xf9,
+ 0x3f, 0x26, 0xb1, 0xc1, 0x63, 0x0d, 0x58, 0x8b,
+};
+static const unsigned char kat1925_nonce[] = {
+ 0x2f, 0xce, 0xfe, 0x8c, 0x6a, 0x93, 0xce, 0xf3, 0x5a, 0x92, 0x5e, 0xb0,
+ 0x23, 0x17, 0x9f, 0x02,
+};
+static const unsigned char kat1925_persstr[] = {0};
+static const unsigned char kat1925_entropyinreseed[] = {
+ 0x42, 0xed, 0xae, 0x47, 0x8f, 0x8b, 0xa6, 0xd4, 0x5e, 0x97, 0xa4, 0x39,
+ 0x06, 0xaa, 0x2a, 0x62, 0x3a, 0xb6, 0x04, 0x03, 0xf5, 0xf6, 0x0a, 0x4c,
+ 0x40, 0x54, 0x8f, 0x0d, 0xed, 0xed, 0xba, 0x4b,
+};
+static const unsigned char kat1925_addinreseed[] = {0};
+static const unsigned char kat1925_addin0[] = {0};
+static const unsigned char kat1925_addin1[] = {0};
+static const unsigned char kat1925_retbits[] = {
+ 0x76, 0x6a, 0xe3, 0x6c, 0x6e, 0x9c, 0x48, 0x2c, 0x6f, 0xa2, 0xe7, 0xfc,
+ 0x1e, 0x25, 0x1d, 0xc3, 0x5b, 0x2e, 0x2a, 0xe6, 0x45, 0xa7, 0x9c, 0x2b,
+ 0x8d, 0x5c, 0x0b, 0xd7, 0xf5, 0x20, 0xb0, 0xf4, 0xde, 0x1b, 0x68, 0x41,
+ 0x9c, 0x4d, 0xce, 0xa0, 0x75, 0x16, 0xe2, 0x55, 0xe6, 0xcb, 0xe9, 0x60,
+ 0x07, 0xa2, 0x53, 0x96, 0xf9, 0x3f, 0x78, 0x1b, 0x36, 0xc9, 0xd2, 0xca,
+ 0x32, 0x36, 0x14, 0x33,
+};
+static const struct drbg_kat_pr_false kat1925_t = {
+ 4, kat1925_entropyin, kat1925_nonce, kat1925_persstr,
+ kat1925_entropyinreseed, kat1925_addinreseed, kat1925_addin0,
+ kat1925_addin1, kat1925_retbits
+};
+static const struct drbg_kat kat1925 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1925_t
+};
+
+static const unsigned char kat1926_entropyin[] = {
+ 0xb5, 0x53, 0x89, 0x90, 0x82, 0xc7, 0x83, 0x54, 0x84, 0xa2, 0xcb, 0x11,
+ 0x14, 0xce, 0xb1, 0x8f, 0xcb, 0x26, 0xa7, 0xb0, 0x1d, 0xb8, 0xd7, 0xcb,
+ 0xfc, 0xea, 0x9c, 0x35, 0xa6, 0x4e, 0x11, 0x1f,
+};
+static const unsigned char kat1926_nonce[] = {
+ 0x2e, 0x81, 0x4d, 0x71, 0x71, 0x73, 0x6a, 0xee, 0x9a, 0x47, 0xf9, 0x94,
+ 0xe7, 0x63, 0x9e, 0xdf,
+};
+static const unsigned char kat1926_persstr[] = {0};
+static const unsigned char kat1926_entropyinreseed[] = {
+ 0x53, 0xff, 0x45, 0xe7, 0x28, 0x97, 0x9c, 0xbb, 0x90, 0x54, 0xdc, 0xa9,
+ 0x30, 0xda, 0x5a, 0x54, 0xf1, 0xc6, 0x03, 0x37, 0x56, 0x21, 0xb5, 0xc8,
+ 0xbe, 0x06, 0x52, 0x13, 0x2f, 0x58, 0x7f, 0x0e,
+};
+static const unsigned char kat1926_addinreseed[] = {0};
+static const unsigned char kat1926_addin0[] = {0};
+static const unsigned char kat1926_addin1[] = {0};
+static const unsigned char kat1926_retbits[] = {
+ 0x06, 0x93, 0xd0, 0xa1, 0x3f, 0xb4, 0x84, 0x8d, 0xcf, 0xb5, 0xbf, 0xe4,
+ 0xa9, 0xa0, 0x22, 0x27, 0xd3, 0x98, 0x41, 0x03, 0xce, 0x39, 0xbb, 0x8c,
+ 0x40, 0xd7, 0xcb, 0x22, 0x4b, 0xc9, 0x28, 0x10, 0x87, 0xd7, 0x97, 0xa5,
+ 0x33, 0x33, 0x75, 0x05, 0x2b, 0xfc, 0x35, 0x2e, 0xa8, 0x8d, 0xa1, 0xc9,
+ 0x36, 0x8c, 0x3e, 0x25, 0x0e, 0x09, 0x5b, 0x12, 0x09, 0x1f, 0x6b, 0x6f,
+ 0x12, 0x60, 0x5f, 0x46,
+};
+static const struct drbg_kat_pr_false kat1926_t = {
+ 5, kat1926_entropyin, kat1926_nonce, kat1926_persstr,
+ kat1926_entropyinreseed, kat1926_addinreseed, kat1926_addin0,
+ kat1926_addin1, kat1926_retbits
+};
+static const struct drbg_kat kat1926 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1926_t
+};
+
+static const unsigned char kat1927_entropyin[] = {
+ 0xcb, 0x15, 0xc9, 0x0b, 0xc7, 0x2d, 0xf4, 0xa4, 0xad, 0xed, 0x92, 0xe9,
+ 0xa8, 0x5f, 0x0a, 0x23, 0x01, 0x9f, 0xbf, 0x86, 0x7b, 0x5b, 0x02, 0x7a,
+ 0x61, 0x4a, 0x00, 0x25, 0xf9, 0xf3, 0xcc, 0xfe,
+};
+static const unsigned char kat1927_nonce[] = {
+ 0x3b, 0x42, 0x6d, 0xf8, 0xfc, 0x90, 0xb5, 0xba, 0xc1, 0xf2, 0x0e, 0x8d,
+ 0x32, 0x48, 0x7d, 0x1a,
+};
+static const unsigned char kat1927_persstr[] = {0};
+static const unsigned char kat1927_entropyinreseed[] = {
+ 0x27, 0x70, 0x98, 0xc4, 0xc0, 0x4f, 0x2e, 0x3f, 0x47, 0xa4, 0x61, 0xe7,
+ 0x02, 0x58, 0xd6, 0x29, 0xfd, 0xac, 0x97, 0xe0, 0x40, 0xf1, 0x3d, 0x4b,
+ 0xa0, 0x15, 0x16, 0x0a, 0xd7, 0xb5, 0x37, 0xb9,
+};
+static const unsigned char kat1927_addinreseed[] = {0};
+static const unsigned char kat1927_addin0[] = {0};
+static const unsigned char kat1927_addin1[] = {0};
+static const unsigned char kat1927_retbits[] = {
+ 0x75, 0x32, 0x87, 0x78, 0xfe, 0x7a, 0x63, 0xdc, 0xe1, 0xb7, 0xc8, 0xce,
+ 0xde, 0xa9, 0xd6, 0xa9, 0xd7, 0x67, 0xdc, 0x81, 0x79, 0x1d, 0xf0, 0x48,
+ 0x19, 0x83, 0xab, 0xfa, 0x2d, 0x21, 0x5a, 0xe5, 0x36, 0xbf, 0x76, 0xb5,
+ 0x99, 0x2a, 0x10, 0xc4, 0xa5, 0xcb, 0x06, 0x85, 0x8b, 0x5a, 0x4e, 0x3c,
+ 0x2d, 0x8b, 0xa4, 0xba, 0x99, 0x12, 0xae, 0xbe, 0x96, 0x03, 0x93, 0xe8,
+ 0x1e, 0x28, 0xaa, 0x69,
+};
+static const struct drbg_kat_pr_false kat1927_t = {
+ 6, kat1927_entropyin, kat1927_nonce, kat1927_persstr,
+ kat1927_entropyinreseed, kat1927_addinreseed, kat1927_addin0,
+ kat1927_addin1, kat1927_retbits
+};
+static const struct drbg_kat kat1927 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1927_t
+};
+
+static const unsigned char kat1928_entropyin[] = {
+ 0xa0, 0x2d, 0xe2, 0xe5, 0x3e, 0x9b, 0x72, 0x85, 0x35, 0x11, 0xac, 0xaf,
+ 0xa5, 0x90, 0x28, 0xc3, 0x58, 0xe8, 0xdc, 0x4a, 0x1c, 0x70, 0x83, 0x4d,
+ 0x43, 0x50, 0x65, 0x8b, 0x89, 0x99, 0xac, 0xf9,
+};
+static const unsigned char kat1928_nonce[] = {
+ 0x2d, 0xa0, 0x17, 0xfb, 0xfc, 0x2b, 0x13, 0xf2, 0x1b, 0xda, 0x1e, 0x70,
+ 0xde, 0x06, 0x74, 0x4b,
+};
+static const unsigned char kat1928_persstr[] = {0};
+static const unsigned char kat1928_entropyinreseed[] = {
+ 0x14, 0xe7, 0xc1, 0xaf, 0x87, 0x60, 0xd6, 0x4c, 0x74, 0x66, 0x8d, 0xd5,
+ 0x09, 0x50, 0x83, 0x5d, 0x98, 0x81, 0xe0, 0x40, 0xec, 0xd6, 0x25, 0xe0,
+ 0x02, 0x5d, 0x8c, 0x13, 0x63, 0xbf, 0xd7, 0x64,
+};
+static const unsigned char kat1928_addinreseed[] = {0};
+static const unsigned char kat1928_addin0[] = {0};
+static const unsigned char kat1928_addin1[] = {0};
+static const unsigned char kat1928_retbits[] = {
+ 0x09, 0xe0, 0x47, 0x91, 0xc2, 0xf9, 0xbe, 0xf5, 0x29, 0x78, 0x54, 0x06,
+ 0x52, 0x12, 0xcf, 0x1b, 0xe4, 0x4c, 0x2a, 0x5e, 0x28, 0xe8, 0xf9, 0x0d,
+ 0xc1, 0x84, 0xd4, 0xe7, 0x6c, 0x6d, 0xd0, 0x94, 0x49, 0x85, 0x9e, 0x66,
+ 0xf4, 0x5b, 0x7e, 0x1f, 0x4c, 0xb2, 0x2a, 0xe5, 0x1b, 0x8d, 0x0c, 0x53,
+ 0x74, 0x45, 0xb7, 0xd4, 0x38, 0xb0, 0x54, 0xef, 0x9c, 0x7c, 0xc7, 0xf5,
+ 0xa2, 0xba, 0x2e, 0x19,
+};
+static const struct drbg_kat_pr_false kat1928_t = {
+ 7, kat1928_entropyin, kat1928_nonce, kat1928_persstr,
+ kat1928_entropyinreseed, kat1928_addinreseed, kat1928_addin0,
+ kat1928_addin1, kat1928_retbits
+};
+static const struct drbg_kat kat1928 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1928_t
+};
+
+static const unsigned char kat1929_entropyin[] = {
+ 0xc9, 0xce, 0xd6, 0x50, 0x13, 0xee, 0x88, 0xa5, 0x4e, 0xe9, 0x0d, 0x95,
+ 0xca, 0x61, 0x89, 0x20, 0x7c, 0x22, 0xd7, 0xfd, 0x93, 0xf5, 0x69, 0xec,
+ 0x11, 0xbf, 0x69, 0x42, 0x43, 0xb7, 0xaa, 0x19,
+};
+static const unsigned char kat1929_nonce[] = {
+ 0x4b, 0x3b, 0x12, 0x4b, 0x7e, 0x7f, 0x83, 0xa8, 0x8d, 0x83, 0x64, 0x56,
+ 0x33, 0xd7, 0xa8, 0x6a,
+};
+static const unsigned char kat1929_persstr[] = {0};
+static const unsigned char kat1929_entropyinreseed[] = {
+ 0x69, 0xc0, 0x85, 0x76, 0xb8, 0x8d, 0x95, 0x7a, 0xbd, 0xcb, 0xbf, 0x03,
+ 0x8e, 0xcb, 0x6d, 0xb8, 0x65, 0xd1, 0x2b, 0x0b, 0x0a, 0x7d, 0x42, 0x0b,
+ 0x64, 0xfd, 0xb0, 0x3a, 0x26, 0x19, 0x08, 0x28,
+};
+static const unsigned char kat1929_addinreseed[] = {0};
+static const unsigned char kat1929_addin0[] = {0};
+static const unsigned char kat1929_addin1[] = {0};
+static const unsigned char kat1929_retbits[] = {
+ 0xb2, 0x4a, 0xf1, 0x37, 0x9b, 0x88, 0xda, 0x5f, 0xba, 0x97, 0x85, 0xd8,
+ 0xac, 0x5f, 0xc9, 0xfb, 0x53, 0xcc, 0x3d, 0xb5, 0xc7, 0x1a, 0xd8, 0x00,
+ 0x2a, 0x3f, 0x08, 0x62, 0xf4, 0x84, 0x87, 0xad, 0xdc, 0xf4, 0x2d, 0xdc,
+ 0x19, 0x3b, 0xc9, 0x08, 0x82, 0x71, 0x07, 0x30, 0x26, 0xc3, 0x3c, 0xb1,
+ 0xb8, 0xef, 0xd7, 0x72, 0x03, 0xd5, 0xe9, 0xbc, 0xd8, 0x83, 0x94, 0xe4,
+ 0x43, 0xdb, 0xd5, 0x73,
+};
+static const struct drbg_kat_pr_false kat1929_t = {
+ 8, kat1929_entropyin, kat1929_nonce, kat1929_persstr,
+ kat1929_entropyinreseed, kat1929_addinreseed, kat1929_addin0,
+ kat1929_addin1, kat1929_retbits
+};
+static const struct drbg_kat kat1929 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1929_t
+};
+
+static const unsigned char kat1930_entropyin[] = {
+ 0x95, 0x9a, 0xd6, 0xbc, 0xd9, 0xf6, 0xb2, 0xa1, 0x07, 0x19, 0x9d, 0x95,
+ 0x93, 0xb7, 0xf6, 0x33, 0xec, 0xb0, 0x30, 0x24, 0x6c, 0xc9, 0x86, 0x0a,
+ 0x41, 0x55, 0x88, 0x34, 0x07, 0x0d, 0x0a, 0x0b,
+};
+static const unsigned char kat1930_nonce[] = {
+ 0x77, 0x84, 0x1f, 0x79, 0x56, 0x2d, 0xa4, 0xe4, 0x8a, 0x66, 0x56, 0x45,
+ 0x41, 0x0e, 0x15, 0x69,
+};
+static const unsigned char kat1930_persstr[] = {0};
+static const unsigned char kat1930_entropyinreseed[] = {
+ 0x21, 0x3d, 0xa2, 0x49, 0x06, 0xda, 0x06, 0xff, 0x2b, 0x9b, 0xeb, 0x1f,
+ 0xe5, 0x04, 0x14, 0x96, 0x36, 0xa8, 0xac, 0xd6, 0x70, 0x01, 0xfe, 0x32,
+ 0x6b, 0xfa, 0xbd, 0x03, 0x8a, 0x71, 0x48, 0xf3,
+};
+static const unsigned char kat1930_addinreseed[] = {0};
+static const unsigned char kat1930_addin0[] = {0};
+static const unsigned char kat1930_addin1[] = {0};
+static const unsigned char kat1930_retbits[] = {
+ 0x33, 0x57, 0x48, 0xe3, 0x90, 0xea, 0x7c, 0x23, 0x19, 0x3c, 0xdf, 0x67,
+ 0x2f, 0x31, 0x82, 0x65, 0x6b, 0x9e, 0x44, 0xe7, 0x3a, 0xff, 0x8f, 0x38,
+ 0x23, 0x9b, 0x06, 0x57, 0xd8, 0x25, 0x8c, 0x2b, 0x1d, 0x40, 0x45, 0x8a,
+ 0x0f, 0xe2, 0x01, 0x01, 0x0b, 0x36, 0xed, 0xe6, 0x22, 0x06, 0xce, 0x67,
+ 0xc1, 0x98, 0x32, 0x3b, 0x7c, 0xd1, 0xd8, 0x1b, 0x61, 0xaa, 0x25, 0xa0,
+ 0xf5, 0x21, 0x1e, 0x95,
+};
+static const struct drbg_kat_pr_false kat1930_t = {
+ 9, kat1930_entropyin, kat1930_nonce, kat1930_persstr,
+ kat1930_entropyinreseed, kat1930_addinreseed, kat1930_addin0,
+ kat1930_addin1, kat1930_retbits
+};
+static const struct drbg_kat kat1930 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1930_t
+};
+
+static const unsigned char kat1931_entropyin[] = {
+ 0xb9, 0xff, 0xca, 0x2a, 0x28, 0xb4, 0xb5, 0x35, 0xc2, 0xad, 0x53, 0x44,
+ 0x7a, 0x2b, 0x53, 0x7c, 0x5f, 0xd6, 0x73, 0xd2, 0xeb, 0x2a, 0x6e, 0x98,
+ 0x0e, 0x84, 0x34, 0xec, 0x7b, 0xec, 0x21, 0xa2,
+};
+static const unsigned char kat1931_nonce[] = {
+ 0xd2, 0x3a, 0x37, 0x64, 0x51, 0xfc, 0x7e, 0x0a, 0x6a, 0x0d, 0x20, 0x15,
+ 0x97, 0x04, 0xe9, 0xfe,
+};
+static const unsigned char kat1931_persstr[] = {0};
+static const unsigned char kat1931_entropyinreseed[] = {
+ 0x27, 0xde, 0x4e, 0x53, 0xba, 0x25, 0xe7, 0x4e, 0x08, 0xa9, 0x8d, 0xc2,
+ 0xb9, 0x6d, 0xf4, 0x39, 0xff, 0xfa, 0x0c, 0xf2, 0x11, 0xa5, 0x22, 0xc0,
+ 0xa9, 0x2e, 0xf1, 0xb6, 0x08, 0x30, 0xc3, 0x08,
+};
+static const unsigned char kat1931_addinreseed[] = {0};
+static const unsigned char kat1931_addin0[] = {0};
+static const unsigned char kat1931_addin1[] = {0};
+static const unsigned char kat1931_retbits[] = {
+ 0xeb, 0xb3, 0x00, 0x30, 0x3b, 0xf8, 0xbc, 0xb9, 0x77, 0x1a, 0x2f, 0xbc,
+ 0x75, 0x53, 0x59, 0xcc, 0x8a, 0x8d, 0xe2, 0xd8, 0x24, 0x5b, 0xf4, 0xac,
+ 0xb2, 0xb5, 0x16, 0xe2, 0xa8, 0xbc, 0x71, 0x91, 0xea, 0x47, 0x7d, 0xd8,
+ 0x4a, 0x4c, 0x5a, 0x19, 0xc2, 0xc4, 0xcd, 0x09, 0xb8, 0x23, 0x3d, 0x58,
+ 0x01, 0x5e, 0x4f, 0xe9, 0xc0, 0xf0, 0xc6, 0x01, 0x76, 0x8d, 0xe0, 0xaf,
+ 0x3f, 0x16, 0x36, 0xac,
+};
+static const struct drbg_kat_pr_false kat1931_t = {
+ 10, kat1931_entropyin, kat1931_nonce, kat1931_persstr,
+ kat1931_entropyinreseed, kat1931_addinreseed, kat1931_addin0,
+ kat1931_addin1, kat1931_retbits
+};
+static const struct drbg_kat kat1931 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1931_t
+};
+
+static const unsigned char kat1932_entropyin[] = {
+ 0x4c, 0xe2, 0x4a, 0x78, 0x79, 0x55, 0x07, 0xa5, 0x37, 0xb3, 0x2c, 0x12,
+ 0x7d, 0x94, 0x9c, 0x7d, 0xf9, 0x03, 0x22, 0xa8, 0xd5, 0x03, 0x8e, 0x25,
+ 0x9d, 0x4c, 0xad, 0x7d, 0x21, 0x88, 0x9e, 0x09,
+};
+static const unsigned char kat1932_nonce[] = {
+ 0x1e, 0xc7, 0x84, 0x86, 0x91, 0xce, 0x55, 0x18, 0x76, 0x02, 0x8d, 0x24,
+ 0xc4, 0xd9, 0x74, 0xe0,
+};
+static const unsigned char kat1932_persstr[] = {0};
+static const unsigned char kat1932_entropyinreseed[] = {
+ 0x40, 0x42, 0x58, 0x4f, 0x1c, 0x00, 0x00, 0x59, 0xc2, 0xa1, 0xd7, 0x3c,
+ 0x60, 0x28, 0x56, 0x7b, 0x12, 0xd5, 0xef, 0x2a, 0xda, 0xc3, 0x75, 0x4f,
+ 0x32, 0xf4, 0x1a, 0x61, 0xea, 0x65, 0xfe, 0x06,
+};
+static const unsigned char kat1932_addinreseed[] = {0};
+static const unsigned char kat1932_addin0[] = {0};
+static const unsigned char kat1932_addin1[] = {0};
+static const unsigned char kat1932_retbits[] = {
+ 0xb5, 0xcb, 0xd3, 0xad, 0x01, 0xd2, 0x16, 0xeb, 0x48, 0x73, 0xae, 0x66,
+ 0x24, 0x4c, 0xc6, 0x13, 0x7f, 0xa7, 0xb4, 0x6c, 0xfe, 0xa2, 0xdd, 0x60,
+ 0x3b, 0x4e, 0xb7, 0xe2, 0xca, 0x0a, 0x92, 0xcf, 0xff, 0x78, 0xc4, 0x69,
+ 0xc4, 0x08, 0x8c, 0x62, 0x3d, 0xc2, 0x72, 0x2b, 0x18, 0x7f, 0xb8, 0x78,
+ 0x3b, 0x4e, 0xc1, 0x0d, 0x0c, 0x93, 0x03, 0x7d, 0xc2, 0x13, 0xd4, 0x14,
+ 0xd9, 0x36, 0xcc, 0xcc,
+};
+static const struct drbg_kat_pr_false kat1932_t = {
+ 11, kat1932_entropyin, kat1932_nonce, kat1932_persstr,
+ kat1932_entropyinreseed, kat1932_addinreseed, kat1932_addin0,
+ kat1932_addin1, kat1932_retbits
+};
+static const struct drbg_kat kat1932 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1932_t
+};
+
+static const unsigned char kat1933_entropyin[] = {
+ 0xce, 0x8d, 0xaf, 0xdd, 0xf0, 0x8f, 0x03, 0x21, 0xb0, 0xf0, 0x7a, 0x82,
+ 0x52, 0x82, 0xb4, 0x53, 0x40, 0x11, 0x78, 0x6f, 0x04, 0x28, 0x86, 0x78,
+ 0xcb, 0xd9, 0xf3, 0x40, 0x75, 0x2a, 0x9a, 0xc6,
+};
+static const unsigned char kat1933_nonce[] = {
+ 0xd9, 0x2a, 0xe0, 0x2e, 0x9b, 0x54, 0x0b, 0x68, 0x12, 0x84, 0x19, 0xbb,
+ 0x62, 0x8b, 0x90, 0x74,
+};
+static const unsigned char kat1933_persstr[] = {0};
+static const unsigned char kat1933_entropyinreseed[] = {
+ 0xee, 0xd6, 0x94, 0x79, 0x73, 0x73, 0x5b, 0x05, 0xdd, 0x54, 0x68, 0xa6,
+ 0x62, 0x80, 0x21, 0x51, 0xb3, 0x0f, 0xbd, 0xe6, 0xc9, 0x56, 0xc8, 0xf0,
+ 0x68, 0x54, 0x6c, 0x94, 0x62, 0xce, 0xa7, 0x87,
+};
+static const unsigned char kat1933_addinreseed[] = {0};
+static const unsigned char kat1933_addin0[] = {0};
+static const unsigned char kat1933_addin1[] = {0};
+static const unsigned char kat1933_retbits[] = {
+ 0x49, 0x6f, 0x69, 0xfa, 0x85, 0x65, 0x55, 0x8b, 0xfd, 0xe8, 0xb6, 0x7e,
+ 0x99, 0x0d, 0x5f, 0x44, 0x6a, 0x7c, 0xd6, 0x68, 0xba, 0x0a, 0xa1, 0x0d,
+ 0x1e, 0xb1, 0x71, 0x0e, 0xf6, 0x47, 0x98, 0xd7, 0xd8, 0xc7, 0xe0, 0x8d,
+ 0xb6, 0x54, 0x40, 0x9e, 0x4c, 0x62, 0x6c, 0x05, 0x03, 0xf3, 0x77, 0x9f,
+ 0x14, 0xa9, 0xb2, 0xbe, 0x22, 0x90, 0x5f, 0xbf, 0x0c, 0x49, 0xc3, 0x05,
+ 0x70, 0x02, 0x49, 0x53,
+};
+static const struct drbg_kat_pr_false kat1933_t = {
+ 12, kat1933_entropyin, kat1933_nonce, kat1933_persstr,
+ kat1933_entropyinreseed, kat1933_addinreseed, kat1933_addin0,
+ kat1933_addin1, kat1933_retbits
+};
+static const struct drbg_kat kat1933 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1933_t
+};
+
+static const unsigned char kat1934_entropyin[] = {
+ 0xf3, 0xab, 0x51, 0x25, 0xec, 0x2d, 0xbb, 0x3d, 0xd9, 0x8e, 0x4f, 0x02,
+ 0x53, 0xaf, 0x3c, 0xd2, 0x3a, 0x85, 0xf4, 0xf0, 0xcb, 0x01, 0xc7, 0x45,
+ 0xf4, 0x21, 0x03, 0x2b, 0x4f, 0x0c, 0x86, 0x33,
+};
+static const unsigned char kat1934_nonce[] = {
+ 0x85, 0x20, 0x43, 0x76, 0xc7, 0x7c, 0xa3, 0xa9, 0x9a, 0x66, 0x21, 0x35,
+ 0x49, 0x91, 0xf0, 0x5a,
+};
+static const unsigned char kat1934_persstr[] = {0};
+static const unsigned char kat1934_entropyinreseed[] = {
+ 0x69, 0x16, 0x7e, 0x80, 0x47, 0x83, 0x89, 0xce, 0x33, 0x42, 0x65, 0x02,
+ 0xa6, 0xf7, 0xdd, 0x96, 0xd3, 0x1e, 0x2c, 0xf7, 0x86, 0x4b, 0xc8, 0xe0,
+ 0x8c, 0xaf, 0x41, 0xa0, 0xbc, 0xb6, 0xe7, 0x74,
+};
+static const unsigned char kat1934_addinreseed[] = {0};
+static const unsigned char kat1934_addin0[] = {0};
+static const unsigned char kat1934_addin1[] = {0};
+static const unsigned char kat1934_retbits[] = {
+ 0xe6, 0xad, 0xcd, 0x35, 0x29, 0xaf, 0xd0, 0x55, 0x7c, 0x19, 0x51, 0xb6,
+ 0x32, 0x56, 0xc6, 0xb7, 0xb4, 0x23, 0xb1, 0x27, 0x10, 0xb5, 0xf4, 0xf8,
+ 0x77, 0x15, 0xa8, 0xff, 0x21, 0x56, 0xc0, 0x7c, 0xbe, 0xa5, 0x3f, 0x29,
+ 0xa6, 0x7c, 0x60, 0xb0, 0x10, 0xdc, 0x4c, 0x45, 0x75, 0x04, 0xdd, 0x8a,
+ 0xe4, 0xae, 0x3f, 0x92, 0xda, 0xb3, 0xc2, 0xc4, 0x63, 0x10, 0xf4, 0x61,
+ 0x62, 0x90, 0xca, 0xb0,
+};
+static const struct drbg_kat_pr_false kat1934_t = {
+ 13, kat1934_entropyin, kat1934_nonce, kat1934_persstr,
+ kat1934_entropyinreseed, kat1934_addinreseed, kat1934_addin0,
+ kat1934_addin1, kat1934_retbits
+};
+static const struct drbg_kat kat1934 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1934_t
+};
+
+static const unsigned char kat1935_entropyin[] = {
+ 0x67, 0xde, 0x0f, 0x88, 0xbd, 0x02, 0x17, 0x93, 0x81, 0xc0, 0x3b, 0xe6,
+ 0x29, 0x5a, 0xdb, 0xa3, 0xc1, 0x02, 0xf5, 0xee, 0x74, 0xf8, 0x5a, 0x96,
+ 0xee, 0xbe, 0xad, 0x92, 0x5d, 0x0e, 0x80, 0xe0,
+};
+static const unsigned char kat1935_nonce[] = {
+ 0x9e, 0xc1, 0xef, 0x1f, 0xe9, 0xee, 0x30, 0x8e, 0xa9, 0xc4, 0xd2, 0x44,
+ 0x7b, 0x9e, 0xab, 0xea,
+};
+static const unsigned char kat1935_persstr[] = {0};
+static const unsigned char kat1935_entropyinreseed[] = {
+ 0x12, 0x51, 0x33, 0x1a, 0x10, 0xf9, 0xfb, 0xe9, 0x38, 0x48, 0x58, 0x58,
+ 0x35, 0x24, 0x70, 0xc5, 0x8c, 0x47, 0x29, 0xa9, 0xd9, 0xc4, 0x7c, 0x64,
+ 0x5d, 0x06, 0x26, 0x15, 0x2d, 0xdb, 0x21, 0x21,
+};
+static const unsigned char kat1935_addinreseed[] = {0};
+static const unsigned char kat1935_addin0[] = {0};
+static const unsigned char kat1935_addin1[] = {0};
+static const unsigned char kat1935_retbits[] = {
+ 0xd6, 0x69, 0xb7, 0xd6, 0xdc, 0x83, 0xb1, 0x6e, 0x2f, 0x81, 0x91, 0xd2,
+ 0x16, 0xab, 0x0b, 0xe3, 0x52, 0x39, 0x81, 0xb4, 0xcc, 0xa4, 0x02, 0x0d,
+ 0x58, 0x9f, 0x4d, 0x79, 0xb8, 0x92, 0x68, 0x38, 0x33, 0x4f, 0xbb, 0x7e,
+ 0xf4, 0x82, 0x65, 0xda, 0xa1, 0x09, 0x1e, 0xf2, 0x85, 0xfe, 0xc2, 0x78,
+ 0x6c, 0x81, 0xe7, 0x1b, 0xe4, 0x39, 0x2c, 0x82, 0x44, 0xe4, 0x36, 0x59,
+ 0x8d, 0x0a, 0xf3, 0x91,
+};
+static const struct drbg_kat_pr_false kat1935_t = {
+ 14, kat1935_entropyin, kat1935_nonce, kat1935_persstr,
+ kat1935_entropyinreseed, kat1935_addinreseed, kat1935_addin0,
+ kat1935_addin1, kat1935_retbits
+};
+static const struct drbg_kat kat1935 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1935_t
+};
+
+static const unsigned char kat1936_entropyin[] = {
+ 0x6f, 0x60, 0xf0, 0xf9, 0xd4, 0x86, 0xbc, 0x23, 0xe1, 0x22, 0x3b, 0x93,
+ 0x4e, 0x61, 0xc0, 0xc7, 0x8a, 0xe9, 0x23, 0x2f, 0xa2, 0xe9, 0xa8, 0x7c,
+ 0x6d, 0xac, 0xd4, 0x47, 0xc3, 0xf1, 0x0e, 0x9e,
+};
+static const unsigned char kat1936_nonce[] = {
+ 0x40, 0x1e, 0x3f, 0x87, 0x76, 0x2f, 0xa8, 0xa1, 0x4a, 0xb2, 0x32, 0xcc,
+ 0xb8, 0x48, 0x0a, 0x2f,
+};
+static const unsigned char kat1936_persstr[] = {0};
+static const unsigned char kat1936_entropyinreseed[] = {
+ 0x35, 0x0b, 0xe5, 0x25, 0x52, 0xa6, 0x5a, 0x80, 0x4a, 0x10, 0x65, 0x43,
+ 0xeb, 0xb7, 0xdd, 0x04, 0x6c, 0xff, 0xae, 0x10, 0x4e, 0x4e, 0x8b, 0x2f,
+ 0x18, 0x93, 0x6d, 0x56, 0x4d, 0x3c, 0x19, 0x50,
+};
+static const unsigned char kat1936_addinreseed[] = {
+ 0x7a, 0x36, 0x88, 0xad, 0xb1, 0xcf, 0xb6, 0xc0, 0x32, 0x64, 0xe2, 0x76,
+ 0x2e, 0xce, 0x96, 0xbf, 0xe4, 0xda, 0xf9, 0x55, 0x8f, 0xab, 0xf7, 0x4d,
+ 0x7f, 0xff, 0x20, 0x3c, 0x08, 0xb4, 0xdd, 0x9f,
+};
+static const unsigned char kat1936_addin0[] = {
+ 0x67, 0xcf, 0x4a, 0x56, 0xd0, 0x81, 0xc5, 0x36, 0x70, 0xf2, 0x57, 0xc2,
+ 0x55, 0x57, 0x01, 0x4c, 0xd5, 0xe8, 0xb0, 0xe9, 0x19, 0xaa, 0x58, 0xf2,
+ 0x3d, 0x68, 0x61, 0xb1, 0x0b, 0x00, 0xea, 0x80,
+};
+static const unsigned char kat1936_addin1[] = {
+ 0x64, 0x8d, 0x4a, 0x22, 0x91, 0x98, 0xb4, 0x3f, 0x33, 0xdd, 0x7d, 0xd8,
+ 0x42, 0x66, 0x50, 0xbe, 0x11, 0xc5, 0x65, 0x6a, 0xdc, 0xdf, 0x91, 0x3b,
+ 0xb3, 0xee, 0x5e, 0xb4, 0x9a, 0x2a, 0x38, 0x92,
+};
+static const unsigned char kat1936_retbits[] = {
+ 0x2d, 0x81, 0x9f, 0xb9, 0xfe, 0xe3, 0x8b, 0xfc, 0x3f, 0x15, 0xa0, 0x7e,
+ 0xf0, 0xe1, 0x83, 0xff, 0x36, 0xdb, 0x5d, 0x31, 0x84, 0xce, 0xa1, 0xd2,
+ 0x4e, 0x79, 0x6b, 0xa1, 0x03, 0x68, 0x74, 0x15, 0xab, 0xe6, 0xd9, 0xf2,
+ 0xc5, 0x9a, 0x11, 0x93, 0x14, 0x39, 0xa3, 0xd1, 0x4f, 0x45, 0xfc, 0x3f,
+ 0x43, 0x45, 0xf3, 0x31, 0xa0, 0x67, 0x5a, 0x34, 0x77, 0xea, 0xf7, 0xcd,
+ 0x89, 0x10, 0x7e, 0x37,
+};
+static const struct drbg_kat_pr_false kat1936_t = {
+ 0, kat1936_entropyin, kat1936_nonce, kat1936_persstr,
+ kat1936_entropyinreseed, kat1936_addinreseed, kat1936_addin0,
+ kat1936_addin1, kat1936_retbits
+};
+static const struct drbg_kat kat1936 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1936_t
+};
+
+static const unsigned char kat1937_entropyin[] = {
+ 0xfc, 0xe3, 0x1f, 0xf0, 0xd8, 0x4b, 0x13, 0x49, 0x59, 0xc8, 0xa3, 0x63,
+ 0x16, 0x68, 0xdd, 0x81, 0x26, 0xeb, 0x2f, 0xf9, 0xf4, 0x0a, 0x0d, 0x1d,
+ 0x74, 0xa3, 0x71, 0xb1, 0xd2, 0xbc, 0x52, 0x3e,
+};
+static const unsigned char kat1937_nonce[] = {
+ 0x2e, 0x18, 0x41, 0x9b, 0x16, 0xaa, 0x23, 0xd2, 0x23, 0x0e, 0xf8, 0x78,
+ 0x37, 0x19, 0x81, 0xb9,
+};
+static const unsigned char kat1937_persstr[] = {0};
+static const unsigned char kat1937_entropyinreseed[] = {
+ 0x75, 0xfe, 0x1b, 0x33, 0xea, 0x93, 0x0b, 0x25, 0x73, 0xc4, 0x91, 0xfa,
+ 0x89, 0x2c, 0x15, 0xe0, 0x99, 0x11, 0xe3, 0x47, 0x9e, 0x12, 0x7c, 0xd6,
+ 0xf8, 0x6e, 0xcb, 0x89, 0x56, 0x8e, 0x6d, 0xdd,
+};
+static const unsigned char kat1937_addinreseed[] = {
+ 0xae, 0x15, 0x52, 0x90, 0x6d, 0x13, 0xa3, 0x4f, 0xad, 0xd1, 0xe3, 0xda,
+ 0xcc, 0xc1, 0xe9, 0x07, 0x5d, 0xae, 0x64, 0xbf, 0xe8, 0x0d, 0xcb, 0xf6,
+ 0x92, 0x1c, 0x96, 0xdf, 0x88, 0x97, 0x92, 0x9c,
+};
+static const unsigned char kat1937_addin0[] = {
+ 0xc9, 0xbd, 0xdd, 0x01, 0x23, 0x7a, 0x8c, 0x46, 0x10, 0xc6, 0x16, 0x22,
+ 0xec, 0x28, 0xa8, 0x0b, 0x81, 0x1c, 0x28, 0x8c, 0x2d, 0xbf, 0xba, 0xb4,
+ 0x96, 0xb4, 0x9a, 0xc1, 0x5e, 0x2e, 0x54, 0x0f,
+};
+static const unsigned char kat1937_addin1[] = {
+ 0x89, 0x9f, 0xd8, 0xd3, 0x62, 0x15, 0xcb, 0x4e, 0xcb, 0xa7, 0xdf, 0x33,
+ 0x37, 0xce, 0x50, 0x60, 0xfe, 0xfd, 0x63, 0xfb, 0x7d, 0x63, 0x81, 0xcd,
+ 0x0d, 0xb7, 0xfb, 0x9a, 0xd4, 0x92, 0x93, 0xcd,
+};
+static const unsigned char kat1937_retbits[] = {
+ 0x88, 0xfb, 0x20, 0xe4, 0x7e, 0xe6, 0x38, 0x65, 0xfa, 0x9e, 0xe1, 0x9a,
+ 0x7d, 0x4f, 0x8c, 0x1b, 0x48, 0x94, 0x8a, 0xf1, 0x76, 0xb5, 0x78, 0x3a,
+ 0x28, 0x54, 0x1e, 0xba, 0x3a, 0xc6, 0x7c, 0x58, 0xb9, 0x33, 0xb5, 0x93,
+ 0x7e, 0x48, 0x6e, 0x1f, 0xc1, 0x82, 0x7e, 0x27, 0xe3, 0x6b, 0xd8, 0xf8,
+ 0x6f, 0x22, 0xad, 0xae, 0xd7, 0x94, 0xcc, 0x57, 0x1c, 0xf6, 0x25, 0x44,
+ 0x2f, 0x82, 0xa8, 0x9b,
+};
+static const struct drbg_kat_pr_false kat1937_t = {
+ 1, kat1937_entropyin, kat1937_nonce, kat1937_persstr,
+ kat1937_entropyinreseed, kat1937_addinreseed, kat1937_addin0,
+ kat1937_addin1, kat1937_retbits
+};
+static const struct drbg_kat kat1937 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1937_t
+};
+
+static const unsigned char kat1938_entropyin[] = {
+ 0x94, 0x4d, 0xf3, 0x4c, 0xa4, 0x9c, 0xad, 0xbe, 0x78, 0xd5, 0x07, 0xad,
+ 0x48, 0xdd, 0xea, 0xd9, 0x03, 0xa4, 0x3f, 0x6c, 0x2b, 0x7f, 0xd7, 0xf7,
+ 0x69, 0x80, 0x75, 0x44, 0x58, 0xef, 0x91, 0x21,
+};
+static const unsigned char kat1938_nonce[] = {
+ 0x55, 0xc0, 0x2c, 0x46, 0x1b, 0xe3, 0x8a, 0xc2, 0x91, 0x9f, 0x96, 0xf3,
+ 0x11, 0x42, 0xec, 0x61,
+};
+static const unsigned char kat1938_persstr[] = {0};
+static const unsigned char kat1938_entropyinreseed[] = {
+ 0x68, 0x9a, 0x4f, 0x4d, 0x06, 0xe2, 0x49, 0xdb, 0x86, 0x23, 0x99, 0xe5,
+ 0x8a, 0xf5, 0x10, 0xd8, 0x09, 0x67, 0xfa, 0x7c, 0x07, 0xbf, 0x1b, 0xce,
+ 0x0d, 0xbc, 0x78, 0x63, 0x06, 0x27, 0x3b, 0x57,
+};
+static const unsigned char kat1938_addinreseed[] = {
+ 0x90, 0xca, 0xdd, 0xd0, 0xc9, 0x7f, 0xea, 0x34, 0xed, 0x6d, 0xd9, 0x67,
+ 0x67, 0x71, 0xc9, 0x18, 0x05, 0x3d, 0x88, 0xb1, 0x80, 0x9d, 0x56, 0x34,
+ 0xd5, 0xc5, 0xcb, 0x89, 0x35, 0xb4, 0x07, 0x5e,
+};
+static const unsigned char kat1938_addin0[] = {
+ 0xa4, 0xf0, 0x5f, 0xdb, 0x44, 0x8d, 0x8c, 0x2a, 0xb7, 0xe4, 0xc1, 0x65,
+ 0xa3, 0x15, 0x35, 0x10, 0x86, 0xae, 0xb1, 0x94, 0x83, 0x38, 0x08, 0xb2,
+ 0x0e, 0xaf, 0xfd, 0x55, 0xd1, 0x19, 0xa2, 0xd2,
+};
+static const unsigned char kat1938_addin1[] = {
+ 0xb1, 0x83, 0x55, 0xc7, 0x5f, 0x0d, 0xd4, 0x09, 0x20, 0xa0, 0x4d, 0xdc,
+ 0x22, 0x91, 0x40, 0xab, 0xe2, 0x21, 0x81, 0xd1, 0x2c, 0x86, 0x61, 0x94,
+ 0x81, 0x53, 0xe9, 0xc6, 0x92, 0x81, 0xda, 0x58,
+};
+static const unsigned char kat1938_retbits[] = {
+ 0x3d, 0x7e, 0xa8, 0x04, 0x6f, 0x78, 0x49, 0x3c, 0xa7, 0x76, 0x53, 0x77,
+ 0x55, 0x45, 0x1e, 0x5e, 0x7f, 0x06, 0x3f, 0xcb, 0x4d, 0x53, 0xf6, 0xa6,
+ 0x22, 0x76, 0x40, 0x48, 0xc2, 0x5b, 0xc4, 0x8f, 0x05, 0xc3, 0x9f, 0x8c,
+ 0x8d, 0x79, 0x33, 0x8c, 0xf9, 0x3e, 0xad, 0x21, 0xb4, 0x55, 0xcf, 0xa5,
+ 0x9c, 0x9b, 0x1b, 0xdd, 0x81, 0xee, 0xa2, 0x3d, 0x75, 0xcf, 0xd6, 0x3c,
+ 0xa1, 0xfd, 0xa9, 0xbf,
+};
+static const struct drbg_kat_pr_false kat1938_t = {
+ 2, kat1938_entropyin, kat1938_nonce, kat1938_persstr,
+ kat1938_entropyinreseed, kat1938_addinreseed, kat1938_addin0,
+ kat1938_addin1, kat1938_retbits
+};
+static const struct drbg_kat kat1938 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1938_t
+};
+
+static const unsigned char kat1939_entropyin[] = {
+ 0x3b, 0xb3, 0xb5, 0x11, 0x2e, 0x2f, 0xa8, 0xc3, 0x7b, 0x22, 0xe4, 0x99,
+ 0xad, 0x91, 0x0d, 0x2a, 0x7c, 0xfe, 0xce, 0x4e, 0xc1, 0x14, 0xad, 0xa1,
+ 0xe5, 0x2e, 0xe5, 0x45, 0xbe, 0x0c, 0xe0, 0xbb,
+};
+static const unsigned char kat1939_nonce[] = {
+ 0x54, 0xb5, 0xd6, 0x43, 0x1b, 0x84, 0xaa, 0x20, 0x7b, 0x55, 0x0a, 0xcd,
+ 0xba, 0xf4, 0xe0, 0xf1,
+};
+static const unsigned char kat1939_persstr[] = {0};
+static const unsigned char kat1939_entropyinreseed[] = {
+ 0x0d, 0xa0, 0x82, 0xed, 0xb7, 0xd7, 0xee, 0x03, 0x49, 0xc9, 0x0e, 0xd3,
+ 0xf4, 0xd4, 0xcd, 0x59, 0x75, 0xfa, 0x38, 0xa1, 0xe7, 0x95, 0xdb, 0xef,
+ 0x9a, 0x92, 0xaf, 0x71, 0x11, 0x8c, 0xc8, 0x67,
+};
+static const unsigned char kat1939_addinreseed[] = {
+ 0x44, 0x96, 0xe5, 0x79, 0xc0, 0x86, 0xe6, 0x59, 0x0a, 0xe5, 0xe0, 0x86,
+ 0x33, 0x1f, 0xc5, 0xb8, 0xd6, 0x85, 0x4f, 0xeb, 0x94, 0xb6, 0x49, 0xbb,
+ 0xf8, 0xe2, 0x12, 0xdd, 0xf1, 0xcf, 0xc5, 0x27,
+};
+static const unsigned char kat1939_addin0[] = {
+ 0x58, 0x52, 0x2d, 0x81, 0x22, 0x41, 0x56, 0x3f, 0xc1, 0x67, 0x96, 0xd7,
+ 0x93, 0x58, 0x6b, 0x1f, 0x7f, 0xdc, 0xbc, 0xbe, 0x2d, 0x80, 0x78, 0x65,
+ 0xdf, 0x4a, 0x20, 0xe9, 0xf5, 0x04, 0x30, 0xea,
+};
+static const unsigned char kat1939_addin1[] = {
+ 0x84, 0x8a, 0x24, 0xb8, 0x45, 0x2f, 0xd6, 0x79, 0x23, 0x78, 0xdf, 0x38,
+ 0x22, 0x17, 0xbf, 0x72, 0x39, 0x2e, 0x94, 0x35, 0x37, 0x5d, 0x27, 0xb3,
+ 0xe7, 0x0e, 0x88, 0xc7, 0x9c, 0x90, 0x50, 0xc9,
+};
+static const unsigned char kat1939_retbits[] = {
+ 0x3c, 0x64, 0x4f, 0xdd, 0x07, 0x64, 0x25, 0x0c, 0x7d, 0xc7, 0xe8, 0xf0,
+ 0x2d, 0x55, 0x9b, 0xbc, 0xbe, 0xf8, 0xe7, 0xf5, 0x39, 0x16, 0x26, 0xd5,
+ 0x63, 0x05, 0x4e, 0x6c, 0x0c, 0xdc, 0x11, 0x40, 0x8c, 0xca, 0x6d, 0xbc,
+ 0x06, 0xe5, 0x73, 0xe6, 0xd5, 0x71, 0x9e, 0xa7, 0x7a, 0x19, 0x91, 0x3a,
+ 0xe1, 0x27, 0x53, 0xc2, 0x8f, 0xfc, 0xe8, 0x72, 0xb1, 0x3f, 0x48, 0x43,
+ 0x77, 0xe2, 0x33, 0x9c,
+};
+static const struct drbg_kat_pr_false kat1939_t = {
+ 3, kat1939_entropyin, kat1939_nonce, kat1939_persstr,
+ kat1939_entropyinreseed, kat1939_addinreseed, kat1939_addin0,
+ kat1939_addin1, kat1939_retbits
+};
+static const struct drbg_kat kat1939 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1939_t
+};
+
+static const unsigned char kat1940_entropyin[] = {
+ 0x1d, 0x60, 0x2a, 0xec, 0x16, 0x01, 0xe2, 0xff, 0x65, 0xf1, 0x66, 0x28,
+ 0xbd, 0xde, 0xac, 0x66, 0x97, 0x71, 0x3d, 0x2f, 0x5d, 0x43, 0x35, 0xc7,
+ 0x01, 0x35, 0x07, 0x88, 0x5b, 0x0d, 0x50, 0xc9,
+};
+static const unsigned char kat1940_nonce[] = {
+ 0x03, 0xa5, 0xbc, 0xa1, 0xbf, 0xd3, 0x85, 0xac, 0x0e, 0x14, 0xf1, 0xdc,
+ 0x9d, 0xa4, 0x17, 0xbd,
+};
+static const unsigned char kat1940_persstr[] = {0};
+static const unsigned char kat1940_entropyinreseed[] = {
+ 0x7c, 0x5e, 0xd5, 0x89, 0x8a, 0x5f, 0xf4, 0x9b, 0x36, 0xf7, 0xaa, 0x8d,
+ 0x38, 0x60, 0x0d, 0x33, 0x10, 0x90, 0x35, 0x75, 0x03, 0x84, 0xfa, 0xb2,
+ 0xbe, 0x26, 0xad, 0xc8, 0x59, 0x09, 0x40, 0x2d,
+};
+static const unsigned char kat1940_addinreseed[] = {
+ 0x3f, 0x11, 0x64, 0xdf, 0x72, 0x65, 0xfd, 0x56, 0xe7, 0x01, 0xd5, 0x1e,
+ 0xf1, 0xfb, 0x39, 0x96, 0xd2, 0xcf, 0xc7, 0xc3, 0x55, 0x87, 0x36, 0x53,
+ 0xd1, 0x27, 0xb9, 0xe2, 0xdc, 0xcc, 0x1d, 0xa3,
+};
+static const unsigned char kat1940_addin0[] = {
+ 0x02, 0xa7, 0xd6, 0x8d, 0x2e, 0x6f, 0x4d, 0xe2, 0xa3, 0x5c, 0x97, 0xe7,
+ 0xaa, 0xdf, 0x25, 0xa2, 0xf1, 0x4a, 0x9b, 0x40, 0x76, 0x94, 0x00, 0x50,
+ 0xff, 0xe6, 0x44, 0x82, 0xe6, 0x27, 0x18, 0xa7,
+};
+static const unsigned char kat1940_addin1[] = {
+ 0x40, 0xb4, 0xff, 0x19, 0x60, 0x9f, 0x62, 0x66, 0xe4, 0x50, 0xe1, 0xcd,
+ 0xb1, 0x84, 0xf1, 0xaa, 0x0b, 0x55, 0x1a, 0x05, 0xb9, 0x12, 0xa1, 0x25,
+ 0x1b, 0x9c, 0xaf, 0x7e, 0xe1, 0x5a, 0x71, 0x84,
+};
+static const unsigned char kat1940_retbits[] = {
+ 0x5b, 0xc4, 0xe4, 0xc0, 0x9a, 0x19, 0xd5, 0xf3, 0x94, 0xee, 0x60, 0x03,
+ 0x43, 0x78, 0x43, 0x97, 0x4d, 0xfe, 0x44, 0x30, 0x68, 0x4d, 0x39, 0x4d,
+ 0x6c, 0x7c, 0xc8, 0xeb, 0x4d, 0x7a, 0x72, 0x2c, 0x61, 0x57, 0x07, 0xd0,
+ 0xed, 0xe8, 0x8e, 0xf1, 0xfb, 0xba, 0x81, 0xe4, 0x5f, 0xdd, 0x93, 0xd2,
+ 0x09, 0x66, 0x32, 0xcf, 0x21, 0xb6, 0x30, 0xdd, 0x93, 0x3f, 0x52, 0xa0,
+ 0x52, 0xaa, 0x9b, 0xe4,
+};
+static const struct drbg_kat_pr_false kat1940_t = {
+ 4, kat1940_entropyin, kat1940_nonce, kat1940_persstr,
+ kat1940_entropyinreseed, kat1940_addinreseed, kat1940_addin0,
+ kat1940_addin1, kat1940_retbits
+};
+static const struct drbg_kat kat1940 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1940_t
+};
+
+static const unsigned char kat1941_entropyin[] = {
+ 0x57, 0x54, 0x8b, 0xee, 0x6b, 0x45, 0x3d, 0xa6, 0xb0, 0xe6, 0x50, 0xaa,
+ 0x04, 0x45, 0xdd, 0xfb, 0x13, 0x23, 0x8a, 0x3c, 0x64, 0x7c, 0x4f, 0x41,
+ 0x0e, 0xcc, 0x52, 0x27, 0x48, 0xd8, 0xa5, 0xe8,
+};
+static const unsigned char kat1941_nonce[] = {
+ 0x01, 0x01, 0x9d, 0xaf, 0x8a, 0xa3, 0xbd, 0x72, 0x79, 0xd0, 0x95, 0x2b,
+ 0xc7, 0xa3, 0x0c, 0x1c,
+};
+static const unsigned char kat1941_persstr[] = {0};
+static const unsigned char kat1941_entropyinreseed[] = {
+ 0x80, 0xbc, 0xb9, 0xb9, 0x50, 0x6c, 0x81, 0x17, 0xe8, 0x4c, 0xd8, 0xae,
+ 0x22, 0xc4, 0xd9, 0x07, 0x0a, 0x95, 0x0e, 0x04, 0x9b, 0x59, 0x7f, 0xf4,
+ 0x82, 0xc6, 0xf9, 0x08, 0x09, 0xf4, 0xff, 0x22,
+};
+static const unsigned char kat1941_addinreseed[] = {
+ 0x17, 0x4a, 0x42, 0xc2, 0x48, 0xdd, 0x17, 0x6e, 0x65, 0xd9, 0x37, 0x48,
+ 0x70, 0xbd, 0x78, 0xcc, 0xcf, 0x3f, 0x3b, 0x1b, 0x5c, 0xa2, 0x22, 0xb0,
+ 0xfa, 0x3c, 0xb1, 0x28, 0x24, 0x27, 0x23, 0xb3,
+};
+static const unsigned char kat1941_addin0[] = {
+ 0x86, 0xd8, 0x85, 0xe9, 0x24, 0x64, 0x6e, 0xad, 0xe6, 0xa2, 0xd9, 0x0a,
+ 0xf3, 0x18, 0x5f, 0x11, 0x77, 0x6c, 0x40, 0x90, 0x01, 0xf1, 0x9b, 0x04,
+ 0x28, 0x3e, 0xa6, 0xf2, 0x1a, 0x25, 0xff, 0x9f,
+};
+static const unsigned char kat1941_addin1[] = {
+ 0x22, 0xd9, 0x05, 0x81, 0xa8, 0x55, 0x0f, 0x0f, 0x3c, 0xb2, 0x96, 0x6b,
+ 0xf1, 0x8c, 0x04, 0x67, 0x10, 0x79, 0x7d, 0x56, 0x54, 0x90, 0x46, 0x52,
+ 0xac, 0xa2, 0x7d, 0x1c, 0x73, 0xd7, 0x5f, 0xf0,
+};
+static const unsigned char kat1941_retbits[] = {
+ 0x67, 0xc3, 0x26, 0x66, 0x3c, 0x12, 0x31, 0xa3, 0xf5, 0xd6, 0xbe, 0x94,
+ 0x22, 0x30, 0x0b, 0xfc, 0xa1, 0x64, 0x1c, 0x3a, 0x3d, 0xdd, 0x1b, 0x07,
+ 0xb8, 0x51, 0x91, 0xca, 0xa1, 0x34, 0xaf, 0x4c, 0xfd, 0x61, 0xe4, 0x7b,
+ 0x73, 0x20, 0x44, 0xfc, 0xca, 0x0d, 0x45, 0xfc, 0x63, 0x23, 0x77, 0x16,
+ 0x85, 0x74, 0x63, 0x9b, 0x68, 0x4d, 0x3d, 0x58, 0x75, 0x1b, 0xc3, 0x02,
+ 0xbb, 0x20, 0x37, 0xd2,
+};
+static const struct drbg_kat_pr_false kat1941_t = {
+ 5, kat1941_entropyin, kat1941_nonce, kat1941_persstr,
+ kat1941_entropyinreseed, kat1941_addinreseed, kat1941_addin0,
+ kat1941_addin1, kat1941_retbits
+};
+static const struct drbg_kat kat1941 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1941_t
+};
+
+static const unsigned char kat1942_entropyin[] = {
+ 0x48, 0x8f, 0x11, 0xf5, 0x21, 0x5e, 0x5a, 0x3d, 0x2d, 0xd3, 0xa6, 0xb8,
+ 0x99, 0x62, 0x42, 0xdf, 0x86, 0x63, 0x8a, 0x9c, 0x20, 0xd8, 0x0b, 0xd9,
+ 0x4f, 0xc1, 0xf6, 0xda, 0x1d, 0x9a, 0x65, 0x50,
+};
+static const unsigned char kat1942_nonce[] = {
+ 0xc0, 0xf3, 0x31, 0xd0, 0x22, 0xe8, 0x0f, 0xa2, 0x1a, 0xe0, 0xee, 0x81,
+ 0x59, 0x37, 0xd2, 0xaa,
+};
+static const unsigned char kat1942_persstr[] = {0};
+static const unsigned char kat1942_entropyinreseed[] = {
+ 0xc7, 0x32, 0x6a, 0x10, 0x4c, 0x33, 0xcc, 0xdc, 0x06, 0xf6, 0x13, 0x93,
+ 0x55, 0x46, 0x8a, 0xff, 0x1f, 0xb5, 0x43, 0xe3, 0xe9, 0x67, 0x5e, 0x1d,
+ 0xc2, 0xc7, 0xae, 0x0b, 0x42, 0xce, 0x4a, 0xb7,
+};
+static const unsigned char kat1942_addinreseed[] = {
+ 0xbf, 0x61, 0xd5, 0x69, 0x46, 0x81, 0x10, 0x8d, 0x73, 0x5d, 0x4d, 0x15,
+ 0xf0, 0xae, 0x34, 0x58, 0x82, 0x38, 0xf9, 0x46, 0xb3, 0x3f, 0xf3, 0xfc,
+ 0x14, 0x0d, 0xa2, 0x67, 0x59, 0xbc, 0x03, 0xdd,
+};
+static const unsigned char kat1942_addin0[] = {
+ 0x5c, 0xa2, 0x47, 0xc6, 0x81, 0xb0, 0x00, 0x8a, 0x4d, 0x4c, 0x2a, 0xa0,
+ 0xc0, 0xf5, 0x82, 0xc5, 0x19, 0xe1, 0xb5, 0x13, 0x49, 0x43, 0x05, 0xae,
+ 0xb1, 0x26, 0x5b, 0xe9, 0x4c, 0xde, 0x3f, 0x5e,
+};
+static const unsigned char kat1942_addin1[] = {
+ 0xeb, 0x5f, 0x56, 0x78, 0x83, 0xec, 0xe6, 0xef, 0xc4, 0x23, 0x4f, 0x8e,
+ 0xf3, 0x5c, 0x26, 0xc4, 0x5b, 0x56, 0x90, 0x9b, 0x96, 0xe4, 0x7f, 0xd2,
+ 0x1f, 0xc6, 0x1e, 0xd5, 0x6e, 0xbb, 0xb3, 0xcd,
+};
+static const unsigned char kat1942_retbits[] = {
+ 0xa6, 0xe6, 0xc9, 0x98, 0x9b, 0xe3, 0xe1, 0x9b, 0x08, 0xb2, 0xa2, 0x3a,
+ 0x25, 0xc1, 0x5f, 0xac, 0xe6, 0x1a, 0xea, 0x67, 0x1a, 0x19, 0x04, 0xbb,
+ 0x76, 0x14, 0xbc, 0x2f, 0xc5, 0x12, 0x91, 0xd1, 0x01, 0xb7, 0x37, 0xeb,
+ 0x32, 0x87, 0xf7, 0xb0, 0xe6, 0x86, 0xd6, 0xe8, 0xb3, 0x80, 0x99, 0x85,
+ 0x3c, 0xd8, 0xc2, 0x0e, 0xbc, 0xd8, 0x2b, 0x1b, 0xe6, 0x73, 0x56, 0x91,
+ 0x1c, 0x62, 0xd8, 0x94,
+};
+static const struct drbg_kat_pr_false kat1942_t = {
+ 6, kat1942_entropyin, kat1942_nonce, kat1942_persstr,
+ kat1942_entropyinreseed, kat1942_addinreseed, kat1942_addin0,
+ kat1942_addin1, kat1942_retbits
+};
+static const struct drbg_kat kat1942 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1942_t
+};
+
+static const unsigned char kat1943_entropyin[] = {
+ 0x3b, 0x12, 0x66, 0xf1, 0xaf, 0xc0, 0x7a, 0x3c, 0xb2, 0x12, 0xa7, 0x79,
+ 0xf3, 0x29, 0x76, 0xe3, 0x33, 0x4a, 0x34, 0x32, 0xce, 0xec, 0x46, 0xb9,
+ 0xd9, 0xd0, 0xf0, 0xf7, 0xb1, 0xad, 0x5b, 0x1a,
+};
+static const unsigned char kat1943_nonce[] = {
+ 0x87, 0xe0, 0xb3, 0xc2, 0x7c, 0xc5, 0x57, 0x3e, 0x6c, 0xec, 0x5e, 0x3b,
+ 0xdd, 0xda, 0x94, 0x3c,
+};
+static const unsigned char kat1943_persstr[] = {0};
+static const unsigned char kat1943_entropyinreseed[] = {
+ 0x65, 0xcc, 0x6c, 0x45, 0x4a, 0x03, 0x41, 0xe1, 0x5f, 0xff, 0xb5, 0xb4,
+ 0x05, 0xc4, 0x0e, 0x77, 0x74, 0x98, 0x06, 0x54, 0xc6, 0x2b, 0x06, 0x01,
+ 0x2f, 0x60, 0xc2, 0xc3, 0xa7, 0x84, 0xb0, 0x29,
+};
+static const unsigned char kat1943_addinreseed[] = {
+ 0x3c, 0xb7, 0x5a, 0x67, 0x62, 0xbe, 0x00, 0x8d, 0x71, 0xad, 0x48, 0x57,
+ 0x76, 0x72, 0xf2, 0xcc, 0xab, 0x0a, 0x3f, 0x68, 0x84, 0xe6, 0x61, 0xf4,
+ 0x27, 0x0e, 0xdf, 0x8e, 0xcd, 0x8f, 0xfa, 0x1e,
+};
+static const unsigned char kat1943_addin0[] = {
+ 0x37, 0x91, 0xe5, 0x5d, 0xac, 0xf0, 0x27, 0xc8, 0x28, 0xe7, 0x6e, 0xab,
+ 0xe2, 0x5c, 0xca, 0xd3, 0x3b, 0x74, 0x27, 0x8d, 0xb8, 0x5f, 0xd2, 0x73,
+ 0x23, 0x2c, 0x73, 0x36, 0x23, 0x01, 0x7c, 0x8a,
+};
+static const unsigned char kat1943_addin1[] = {
+ 0x01, 0xea, 0x3c, 0x8c, 0x66, 0x63, 0xde, 0xdc, 0xec, 0xcf, 0x31, 0x1d,
+ 0x3a, 0xf3, 0xc2, 0x79, 0xe4, 0x00, 0xde, 0x3d, 0x7b, 0xdd, 0xcd, 0xbd,
+ 0xa4, 0x0d, 0x78, 0x6a, 0xf1, 0xd9, 0x6c, 0x7b,
+};
+static const unsigned char kat1943_retbits[] = {
+ 0xd4, 0x66, 0x48, 0xfa, 0x06, 0xdb, 0x61, 0xd4, 0xd0, 0x70, 0xcd, 0x92,
+ 0xf4, 0x20, 0x21, 0x10, 0xff, 0x07, 0x67, 0x22, 0xe5, 0xfb, 0xb4, 0x95,
+ 0x92, 0xc0, 0x20, 0x31, 0x16, 0xce, 0x8d, 0x38, 0x73, 0x3e, 0x44, 0xa8,
+ 0xc4, 0x8a, 0xe7, 0xb7, 0xe7, 0x62, 0xf2, 0x67, 0x14, 0x96, 0x8f, 0x15,
+ 0xe6, 0xe4, 0x33, 0x73, 0xbe, 0xf1, 0xa7, 0xa6, 0x72, 0xbe, 0x70, 0xfa,
+ 0x43, 0x7f, 0x5f, 0xed,
+};
+static const struct drbg_kat_pr_false kat1943_t = {
+ 7, kat1943_entropyin, kat1943_nonce, kat1943_persstr,
+ kat1943_entropyinreseed, kat1943_addinreseed, kat1943_addin0,
+ kat1943_addin1, kat1943_retbits
+};
+static const struct drbg_kat kat1943 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1943_t
+};
+
+static const unsigned char kat1944_entropyin[] = {
+ 0x02, 0x04, 0x77, 0x41, 0x58, 0xe7, 0x45, 0x49, 0x35, 0xf3, 0xf9, 0xad,
+ 0xe7, 0xc6, 0xf0, 0x46, 0xcc, 0x2d, 0xb5, 0x26, 0xcf, 0x38, 0x24, 0x9d,
+ 0xe0, 0x3b, 0x23, 0x53, 0x8b, 0x9f, 0x88, 0xf7,
+};
+static const unsigned char kat1944_nonce[] = {
+ 0xd0, 0x91, 0x2d, 0xc4, 0x92, 0x2a, 0xac, 0x88, 0x70, 0x26, 0xa2, 0x38,
+ 0xb9, 0x41, 0x3d, 0x7e,
+};
+static const unsigned char kat1944_persstr[] = {0};
+static const unsigned char kat1944_entropyinreseed[] = {
+ 0x18, 0x98, 0xa3, 0x70, 0x1c, 0x36, 0x0e, 0x17, 0x3d, 0x87, 0x37, 0x99,
+ 0xac, 0x6a, 0xb0, 0x2d, 0x52, 0xdc, 0x1a, 0x45, 0xcc, 0xfe, 0x1c, 0x69,
+ 0xcd, 0x9e, 0x8a, 0x66, 0xa2, 0x80, 0x12, 0xb9,
+};
+static const unsigned char kat1944_addinreseed[] = {
+ 0x26, 0x72, 0x1f, 0x70, 0xf3, 0x51, 0x6f, 0x48, 0x24, 0x5f, 0x05, 0x33,
+ 0x92, 0xd3, 0x2f, 0x48, 0xef, 0x7c, 0x50, 0xab, 0x6c, 0x05, 0x0c, 0x92,
+ 0xf6, 0x71, 0x06, 0x8d, 0x79, 0xf7, 0x83, 0x75,
+};
+static const unsigned char kat1944_addin0[] = {
+ 0xfa, 0x10, 0x6c, 0x6b, 0xc9, 0xca, 0xb8, 0x03, 0x5d, 0x64, 0xa2, 0xa1,
+ 0x8b, 0xce, 0xc3, 0x43, 0x5d, 0x5f, 0xb3, 0x23, 0x40, 0xc8, 0x36, 0x7d,
+ 0x5f, 0x2c, 0x1d, 0xd1, 0x8f, 0x81, 0x8a, 0xbf,
+};
+static const unsigned char kat1944_addin1[] = {
+ 0xb7, 0x81, 0xb4, 0xf5, 0x2d, 0xa6, 0xe7, 0x01, 0xf4, 0xaf, 0x17, 0xd6,
+ 0xc9, 0x6b, 0x3e, 0x7d, 0x86, 0x7a, 0xc7, 0x01, 0x2c, 0x43, 0x35, 0x6a,
+ 0x5a, 0xfe, 0xee, 0xc4, 0x8f, 0xf4, 0x86, 0x37,
+};
+static const unsigned char kat1944_retbits[] = {
+ 0xf9, 0xba, 0x4c, 0x30, 0xd3, 0x3d, 0x85, 0xeb, 0x8b, 0x99, 0xea, 0xcd,
+ 0xad, 0xb1, 0xc1, 0x45, 0x94, 0x66, 0xb9, 0xc9, 0xcf, 0x24, 0xe4, 0xc0,
+ 0xe0, 0xc4, 0xb6, 0xb0, 0x58, 0xe9, 0x3b, 0x88, 0x25, 0x0d, 0x31, 0x89,
+ 0x6b, 0x73, 0x8a, 0x95, 0xeb, 0xd3, 0xc8, 0x1c, 0x3a, 0x1f, 0x9c, 0xd0,
+ 0x92, 0x28, 0xfd, 0xb3, 0xac, 0xa3, 0x0c, 0x25, 0xad, 0xec, 0x99, 0x0c,
+ 0x53, 0xfc, 0x53, 0xa3,
+};
+static const struct drbg_kat_pr_false kat1944_t = {
+ 8, kat1944_entropyin, kat1944_nonce, kat1944_persstr,
+ kat1944_entropyinreseed, kat1944_addinreseed, kat1944_addin0,
+ kat1944_addin1, kat1944_retbits
+};
+static const struct drbg_kat kat1944 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1944_t
+};
+
+static const unsigned char kat1945_entropyin[] = {
+ 0x42, 0x8e, 0x20, 0xb9, 0x6d, 0xbb, 0xfe, 0xbe, 0xe7, 0x9a, 0xb1, 0xdb,
+ 0x8c, 0x0c, 0xc1, 0xfb, 0x40, 0xd0, 0x00, 0x9b, 0xe9, 0xdb, 0xd5, 0x8f,
+ 0x3f, 0x9b, 0x37, 0xa7, 0x4e, 0x1e, 0x56, 0xec,
+};
+static const unsigned char kat1945_nonce[] = {
+ 0xc9, 0x3a, 0x22, 0xc9, 0x43, 0x7f, 0x02, 0x2b, 0xec, 0xdd, 0x12, 0xff,
+ 0xae, 0xbb, 0x0f, 0xc4,
+};
+static const unsigned char kat1945_persstr[] = {0};
+static const unsigned char kat1945_entropyinreseed[] = {
+ 0xea, 0xaa, 0xe4, 0xbe, 0x71, 0x21, 0xc8, 0xf5, 0xc0, 0x73, 0xc7, 0x91,
+ 0xa9, 0xa1, 0x83, 0x93, 0xd9, 0xad, 0x66, 0x15, 0x3b, 0xfc, 0x98, 0xa0,
+ 0xd6, 0x45, 0x69, 0x7a, 0x46, 0x39, 0x28, 0xa1,
+};
+static const unsigned char kat1945_addinreseed[] = {
+ 0x82, 0x3e, 0x71, 0xbb, 0x84, 0x3c, 0x54, 0x00, 0x9e, 0x8d, 0x02, 0xd2,
+ 0xec, 0x0e, 0x5d, 0x7b, 0x49, 0xf0, 0xd5, 0x3b, 0xc0, 0xf0, 0xc3, 0x83,
+ 0xf6, 0xc9, 0x27, 0x3a, 0x25, 0xa6, 0xf3, 0x12,
+};
+static const unsigned char kat1945_addin0[] = {
+ 0xf0, 0xd5, 0xad, 0x12, 0x99, 0x99, 0xd7, 0x10, 0xf8, 0xe5, 0x50, 0x4c,
+ 0x95, 0x5b, 0x78, 0xd0, 0x52, 0xa1, 0xcc, 0x63, 0x37, 0xd4, 0x63, 0x2e,
+ 0xaa, 0x85, 0xbd, 0xb9, 0x85, 0x75, 0x9e, 0xa6,
+};
+static const unsigned char kat1945_addin1[] = {
+ 0xdd, 0x10, 0x78, 0x19, 0x8d, 0xb2, 0xdd, 0x5e, 0x7e, 0x63, 0x25, 0x25,
+ 0x62, 0x36, 0xeb, 0x2b, 0xe2, 0x62, 0x0e, 0xe0, 0xee, 0x85, 0x97, 0x01,
+ 0x29, 0x80, 0x8f, 0xd1, 0x64, 0x0b, 0xdf, 0x41,
+};
+static const unsigned char kat1945_retbits[] = {
+ 0x99, 0x3a, 0x6a, 0x73, 0xfc, 0x63, 0xbd, 0x50, 0x62, 0x93, 0xba, 0x73,
+ 0xb7, 0x6c, 0xb2, 0xcd, 0xc8, 0xb0, 0x56, 0xd2, 0xf8, 0x7e, 0x21, 0x07,
+ 0x91, 0x25, 0x62, 0x43, 0x99, 0xc2, 0xfb, 0xec, 0x29, 0x16, 0x97, 0x71,
+ 0x87, 0x93, 0xdb, 0x1f, 0xfd, 0xd8, 0x76, 0xd2, 0x7a, 0x68, 0x9e, 0xcd,
+ 0x49, 0xe7, 0xc9, 0xf5, 0xbb, 0xa1, 0x91, 0x06, 0x91, 0xe5, 0x6f, 0x81,
+ 0x76, 0xeb, 0x84, 0x4b,
+};
+static const struct drbg_kat_pr_false kat1945_t = {
+ 9, kat1945_entropyin, kat1945_nonce, kat1945_persstr,
+ kat1945_entropyinreseed, kat1945_addinreseed, kat1945_addin0,
+ kat1945_addin1, kat1945_retbits
+};
+static const struct drbg_kat kat1945 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1945_t
+};
+
+static const unsigned char kat1946_entropyin[] = {
+ 0x72, 0xe7, 0x73, 0x5c, 0x3b, 0x8b, 0x44, 0xca, 0x95, 0x57, 0xb2, 0x93,
+ 0x90, 0x34, 0xef, 0x4c, 0x38, 0x3d, 0x23, 0xbc, 0x68, 0xce, 0xa0, 0xfe,
+ 0x35, 0x52, 0xb5, 0xeb, 0xd4, 0x88, 0x5a, 0x9f,
+};
+static const unsigned char kat1946_nonce[] = {
+ 0x35, 0xf4, 0x11, 0x2d, 0x4d, 0xe3, 0x97, 0x05, 0xb6, 0xad, 0x6d, 0x42,
+ 0x2e, 0xc1, 0xd5, 0x9a,
+};
+static const unsigned char kat1946_persstr[] = {0};
+static const unsigned char kat1946_entropyinreseed[] = {
+ 0x71, 0x59, 0x18, 0x4b, 0xb4, 0x62, 0x8e, 0x7e, 0xc7, 0x95, 0xf9, 0x4f,
+ 0x05, 0x4f, 0x7b, 0xbd, 0xe9, 0xc3, 0x64, 0xc6, 0x0b, 0xa3, 0xf0, 0x76,
+ 0x70, 0xdb, 0xf6, 0x15, 0xd1, 0xfa, 0xf5, 0x12,
+};
+static const unsigned char kat1946_addinreseed[] = {
+ 0x89, 0x68, 0x98, 0xb9, 0xa4, 0x7e, 0xbe, 0xfe, 0x20, 0xcb, 0x20, 0x14,
+ 0x1a, 0x16, 0x76, 0x48, 0xac, 0x0a, 0xa8, 0x15, 0x1f, 0x49, 0x1b, 0xd1,
+ 0xd1, 0x3a, 0x00, 0xf5, 0xcf, 0x6f, 0x17, 0xb4,
+};
+static const unsigned char kat1946_addin0[] = {
+ 0x9c, 0xfb, 0xbf, 0x1b, 0xd7, 0xb6, 0xf5, 0x52, 0x43, 0x67, 0x27, 0x59,
+ 0x17, 0x7f, 0xa9, 0x06, 0x01, 0x67, 0x91, 0xd4, 0x5d, 0x1e, 0xa5, 0x02,
+ 0xaf, 0x2c, 0xc5, 0x69, 0xe6, 0xd7, 0xc8, 0x82,
+};
+static const unsigned char kat1946_addin1[] = {
+ 0x4d, 0x9a, 0xdd, 0x7b, 0x30, 0xf3, 0xa8, 0x55, 0x03, 0x8b, 0xcb, 0xbb,
+ 0x9a, 0x3c, 0xf6, 0x37, 0xbe, 0x18, 0xdd, 0xd1, 0xc6, 0x72, 0x1f, 0x4c,
+ 0xb2, 0xdd, 0x65, 0x4e, 0x8e, 0xf2, 0x57, 0x1c,
+};
+static const unsigned char kat1946_retbits[] = {
+ 0x11, 0xaf, 0xdc, 0x0f, 0xe1, 0x5c, 0x21, 0x51, 0x30, 0x64, 0x8b, 0x3d,
+ 0xca, 0xbd, 0x8b, 0x76, 0x25, 0xad, 0x20, 0xfc, 0x65, 0x98, 0x5a, 0x70,
+ 0xee, 0x05, 0x61, 0x40, 0x1b, 0xb0, 0xaf, 0x02, 0xd5, 0xc4, 0x28, 0x27,
+ 0x65, 0x12, 0x34, 0x7a, 0x3f, 0x4b, 0x76, 0xca, 0x99, 0x7c, 0xaa, 0xd1,
+ 0x78, 0xa7, 0xf8, 0xcd, 0xad, 0xdf, 0xd7, 0x7d, 0x5f, 0xe7, 0x35, 0x75,
+ 0x5e, 0x7d, 0x37, 0xac,
+};
+static const struct drbg_kat_pr_false kat1946_t = {
+ 10, kat1946_entropyin, kat1946_nonce, kat1946_persstr,
+ kat1946_entropyinreseed, kat1946_addinreseed, kat1946_addin0,
+ kat1946_addin1, kat1946_retbits
+};
+static const struct drbg_kat kat1946 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1946_t
+};
+
+static const unsigned char kat1947_entropyin[] = {
+ 0xfd, 0x06, 0x92, 0x71, 0x6b, 0x92, 0xab, 0xbc, 0x87, 0x53, 0x4e, 0x70,
+ 0xd0, 0xfc, 0x5a, 0xd0, 0x7b, 0xab, 0x29, 0x68, 0x2e, 0x33, 0xf4, 0x30,
+ 0x01, 0xec, 0xda, 0xd7, 0xab, 0x92, 0xb3, 0x26,
+};
+static const unsigned char kat1947_nonce[] = {
+ 0x4f, 0x3c, 0xd8, 0xb4, 0x2a, 0xb8, 0x90, 0xc7, 0x7e, 0xda, 0x4a, 0xfe,
+ 0x96, 0xc5, 0x35, 0x74,
+};
+static const unsigned char kat1947_persstr[] = {0};
+static const unsigned char kat1947_entropyinreseed[] = {
+ 0xc5, 0x51, 0xf5, 0x79, 0x27, 0x68, 0x0d, 0x8e, 0xb7, 0x89, 0x08, 0x70,
+ 0x1f, 0x34, 0xd8, 0xca, 0x7e, 0x03, 0x1b, 0x7a, 0x25, 0x22, 0x45, 0xee,
+ 0x53, 0xb8, 0x3d, 0xc9, 0x38, 0x2e, 0xa5, 0x2d,
+};
+static const unsigned char kat1947_addinreseed[] = {
+ 0xa8, 0x41, 0x19, 0xf7, 0x73, 0xb3, 0xd3, 0xbe, 0xd2, 0x8d, 0xae, 0x7c,
+ 0x79, 0x13, 0x69, 0xf9, 0xe9, 0xba, 0x33, 0x3b, 0xa6, 0x03, 0x73, 0x70,
+ 0xdb, 0x64, 0xc0, 0xb6, 0x55, 0x7c, 0x11, 0x37,
+};
+static const unsigned char kat1947_addin0[] = {
+ 0x6b, 0x0c, 0x61, 0x9f, 0x00, 0xe0, 0x4e, 0xa9, 0x1e, 0x2e, 0x7c, 0xd3,
+ 0x7a, 0x1f, 0x4d, 0x5a, 0xe7, 0x2e, 0xfb, 0x55, 0x2a, 0xf5, 0x5d, 0x27,
+ 0x37, 0x22, 0xc3, 0x71, 0xd9, 0x68, 0xeb, 0xc3,
+};
+static const unsigned char kat1947_addin1[] = {
+ 0xb5, 0x8f, 0xfd, 0x71, 0xfc, 0x21, 0x66, 0xd3, 0x86, 0xc9, 0x42, 0x75,
+ 0xbd, 0x97, 0xe4, 0x36, 0x17, 0x7d, 0xd0, 0xb5, 0xc6, 0xfa, 0x9e, 0x80,
+ 0x97, 0x60, 0xc8, 0x49, 0x10, 0xb8, 0xe6, 0xf8,
+};
+static const unsigned char kat1947_retbits[] = {
+ 0xdd, 0xb7, 0x67, 0xec, 0xd3, 0xb3, 0xd2, 0xcd, 0xc9, 0x25, 0xe7, 0x0b,
+ 0x90, 0x19, 0xd5, 0x51, 0x18, 0x5f, 0xad, 0x94, 0x28, 0x56, 0x55, 0xc2,
+ 0xcb, 0x96, 0xdc, 0xa7, 0xfe, 0xde, 0xd8, 0x1d, 0xc6, 0x1a, 0x59, 0x81,
+ 0xa4, 0x45, 0x96, 0x5f, 0x59, 0xf9, 0x86, 0x2e, 0x9a, 0x63, 0xda, 0x20,
+ 0xe3, 0xb2, 0x89, 0x48, 0x61, 0xd6, 0x2e, 0xe9, 0x9e, 0xcc, 0x5f, 0x90,
+ 0x46, 0x7c, 0xff, 0x69,
+};
+static const struct drbg_kat_pr_false kat1947_t = {
+ 11, kat1947_entropyin, kat1947_nonce, kat1947_persstr,
+ kat1947_entropyinreseed, kat1947_addinreseed, kat1947_addin0,
+ kat1947_addin1, kat1947_retbits
+};
+static const struct drbg_kat kat1947 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1947_t
+};
+
+static const unsigned char kat1948_entropyin[] = {
+ 0x8e, 0x1b, 0x9f, 0x28, 0x28, 0xc2, 0xa7, 0x98, 0x67, 0x2c, 0x6c, 0xb6,
+ 0x03, 0x39, 0x6b, 0xd4, 0xb7, 0x3d, 0xbc, 0xe8, 0x19, 0x48, 0x7c, 0xe8,
+ 0x15, 0x54, 0x48, 0xf0, 0x26, 0xef, 0x16, 0x07,
+};
+static const unsigned char kat1948_nonce[] = {
+ 0x60, 0xf4, 0xa0, 0x76, 0xcd, 0xd0, 0xa2, 0xa3, 0xf3, 0x32, 0xea, 0x18,
+ 0x67, 0xdb, 0x02, 0x77,
+};
+static const unsigned char kat1948_persstr[] = {0};
+static const unsigned char kat1948_entropyinreseed[] = {
+ 0x07, 0x58, 0x2e, 0x14, 0xea, 0x30, 0xd8, 0x66, 0x08, 0x81, 0x42, 0x5f,
+ 0x9d, 0x56, 0xfa, 0x00, 0x5c, 0x4f, 0xe2, 0xf4, 0x28, 0x2e, 0xce, 0xfe,
+ 0x74, 0xc9, 0xd9, 0xfe, 0x59, 0x54, 0x21, 0x1d,
+};
+static const unsigned char kat1948_addinreseed[] = {
+ 0xa2, 0x4c, 0x19, 0xbf, 0x72, 0x63, 0xfa, 0x8b, 0x52, 0x64, 0xad, 0x71,
+ 0x36, 0x0c, 0xf5, 0x86, 0x6a, 0xf4, 0x3b, 0x63, 0x8b, 0x39, 0x04, 0xb8,
+ 0xfa, 0x32, 0x18, 0x8e, 0x4c, 0x15, 0x78, 0x40,
+};
+static const unsigned char kat1948_addin0[] = {
+ 0xb2, 0x50, 0x07, 0xd2, 0xd4, 0xe5, 0xf8, 0x1c, 0x3b, 0x7c, 0x8d, 0x49,
+ 0x38, 0x8b, 0x8c, 0xd0, 0x13, 0xae, 0xbf, 0x00, 0xe9, 0x2d, 0x90, 0x4f,
+ 0x0d, 0x12, 0x97, 0x97, 0xed, 0x65, 0x35, 0xd6,
+};
+static const unsigned char kat1948_addin1[] = {
+ 0x3f, 0x11, 0x60, 0xa6, 0x77, 0x0f, 0x71, 0x41, 0xee, 0xe7, 0x59, 0x0d,
+ 0xb2, 0xd2, 0xf7, 0x41, 0x26, 0xe7, 0x28, 0xb8, 0x0a, 0x3a, 0x5e, 0xad,
+ 0x5a, 0xa3, 0x67, 0x50, 0x00, 0x63, 0x7e, 0xc0,
+};
+static const unsigned char kat1948_retbits[] = {
+ 0x7b, 0x91, 0x58, 0xc9, 0x78, 0xea, 0x13, 0xef, 0x7a, 0xdf, 0xda, 0x03,
+ 0xfa, 0x2a, 0x01, 0x1b, 0x78, 0x0e, 0x48, 0x5b, 0xc9, 0xbb, 0xce, 0x32,
+ 0x7a, 0x95, 0x8b, 0x98, 0x0c, 0x73, 0x38, 0xdf, 0x22, 0x2a, 0x79, 0x2a,
+ 0xab, 0xea, 0x0f, 0x74, 0x65, 0xb4, 0x38, 0x6e, 0x1c, 0x51, 0x08, 0xca,
+ 0xfb, 0x72, 0x8b, 0xbb, 0x66, 0x0f, 0x85, 0x34, 0xc6, 0x25, 0x21, 0x34,
+ 0x32, 0x3c, 0x39, 0xfc,
+};
+static const struct drbg_kat_pr_false kat1948_t = {
+ 12, kat1948_entropyin, kat1948_nonce, kat1948_persstr,
+ kat1948_entropyinreseed, kat1948_addinreseed, kat1948_addin0,
+ kat1948_addin1, kat1948_retbits
+};
+static const struct drbg_kat kat1948 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1948_t
+};
+
+static const unsigned char kat1949_entropyin[] = {
+ 0xa6, 0xe3, 0xc0, 0x38, 0xc0, 0x33, 0xb3, 0x1b, 0xc9, 0x2d, 0x32, 0xc0,
+ 0x92, 0x96, 0xf7, 0xfa, 0xce, 0xfe, 0x1e, 0x4a, 0xac, 0xa0, 0x3c, 0x19,
+ 0x7d, 0x1c, 0x03, 0x54, 0xb4, 0x97, 0x58, 0xf5,
+};
+static const unsigned char kat1949_nonce[] = {
+ 0xe7, 0x25, 0xa5, 0xa8, 0x1a, 0x7b, 0x47, 0x78, 0xea, 0x1c, 0xca, 0xec,
+ 0x77, 0x77, 0x23, 0x1b,
+};
+static const unsigned char kat1949_persstr[] = {0};
+static const unsigned char kat1949_entropyinreseed[] = {
+ 0x09, 0x1f, 0xe5, 0x3d, 0x98, 0xc7, 0xff, 0x8e, 0x64, 0x17, 0x91, 0x45,
+ 0x02, 0x7a, 0xc6, 0xbe, 0xf4, 0x55, 0xa8, 0xf4, 0xd1, 0x67, 0x30, 0xf3,
+ 0x12, 0x35, 0x31, 0xde, 0x4c, 0xfb, 0x32, 0x59,
+};
+static const unsigned char kat1949_addinreseed[] = {
+ 0x95, 0x9b, 0x30, 0x40, 0x64, 0x79, 0x11, 0x84, 0x31, 0xa2, 0x65, 0x3d,
+ 0x0f, 0x0d, 0x08, 0xf8, 0xfc, 0xcc, 0x68, 0x14, 0x11, 0x66, 0xfb, 0x19,
+ 0xdb, 0x71, 0x6e, 0xe2, 0xd7, 0x8e, 0xf0, 0x12,
+};
+static const unsigned char kat1949_addin0[] = {
+ 0x9a, 0x0b, 0x0d, 0xe5, 0xf8, 0xf8, 0x25, 0xe7, 0x58, 0xb9, 0xfb, 0x28,
+ 0xe2, 0xa0, 0x6f, 0x9f, 0xac, 0x29, 0x0a, 0x16, 0x11, 0x97, 0x6c, 0xa9,
+ 0x98, 0x09, 0x25, 0x08, 0x9f, 0x5e, 0xe6, 0xf7,
+};
+static const unsigned char kat1949_addin1[] = {
+ 0xb3, 0xe4, 0x22, 0xe0, 0xba, 0x29, 0xe8, 0x82, 0x36, 0x96, 0xcd, 0x82,
+ 0x98, 0x22, 0x58, 0xce, 0x93, 0x6a, 0x51, 0xe8, 0x0e, 0x64, 0x08, 0x70,
+ 0x0a, 0x2b, 0xd5, 0xca, 0x51, 0x29, 0x49, 0xbb,
+};
+static const unsigned char kat1949_retbits[] = {
+ 0x7b, 0x8a, 0xb6, 0xd8, 0x79, 0xaa, 0x29, 0x07, 0xe4, 0x41, 0xdb, 0x2f,
+ 0xf6, 0x0c, 0x84, 0x0b, 0x68, 0x4a, 0x98, 0x1f, 0x8d, 0x08, 0x67, 0xc0,
+ 0xf7, 0xcf, 0xc3, 0x03, 0x23, 0xee, 0x32, 0x1e, 0x7f, 0xb1, 0xad, 0xee,
+ 0x16, 0xad, 0xb6, 0xc3, 0x14, 0xb0, 0x0e, 0xd4, 0x11, 0x5d, 0x9c, 0xb5,
+ 0x76, 0x08, 0xd5, 0x0f, 0x29, 0x80, 0xc3, 0xa1, 0xfa, 0x9a, 0x24, 0x2d,
+ 0x1a, 0x5c, 0xe4, 0x09,
+};
+static const struct drbg_kat_pr_false kat1949_t = {
+ 13, kat1949_entropyin, kat1949_nonce, kat1949_persstr,
+ kat1949_entropyinreseed, kat1949_addinreseed, kat1949_addin0,
+ kat1949_addin1, kat1949_retbits
+};
+static const struct drbg_kat kat1949 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1949_t
+};
+
+static const unsigned char kat1950_entropyin[] = {
+ 0x8b, 0x60, 0x56, 0x35, 0x13, 0x8a, 0xb1, 0x96, 0xa9, 0x61, 0x92, 0xab,
+ 0x3a, 0xa6, 0x95, 0x85, 0x7f, 0xfd, 0x19, 0x7a, 0x55, 0x20, 0xec, 0x65,
+ 0xe2, 0xad, 0x44, 0xd0, 0x50, 0xbd, 0x97, 0xc4,
+};
+static const unsigned char kat1950_nonce[] = {
+ 0xc0, 0xa2, 0x59, 0xd4, 0xcd, 0x87, 0x2b, 0x35, 0x1a, 0xc6, 0x01, 0x82,
+ 0xa6, 0x7c, 0x4f, 0xaa,
+};
+static const unsigned char kat1950_persstr[] = {0};
+static const unsigned char kat1950_entropyinreseed[] = {
+ 0xde, 0x78, 0xf4, 0x5f, 0xbf, 0x92, 0xdd, 0x2e, 0x8a, 0x1f, 0x19, 0xe6,
+ 0xcc, 0x9c, 0xaf, 0xcd, 0xdd, 0x93, 0x61, 0x7d, 0x3a, 0x1d, 0xa4, 0x01,
+ 0x53, 0x45, 0x07, 0xf5, 0x2d, 0x63, 0xf5, 0x1a,
+};
+static const unsigned char kat1950_addinreseed[] = {
+ 0x15, 0x5f, 0xeb, 0xed, 0xef, 0x23, 0x54, 0xb4, 0x4e, 0x86, 0xeb, 0x66,
+ 0xd5, 0x73, 0x0c, 0x6d, 0x6c, 0x9c, 0x7d, 0x49, 0x97, 0x78, 0x82, 0xdb,
+ 0xb6, 0x51, 0x5b, 0x83, 0x67, 0x47, 0xfa, 0x34,
+};
+static const unsigned char kat1950_addin0[] = {
+ 0xae, 0x78, 0xdc, 0xb8, 0x12, 0x84, 0x5e, 0x9f, 0x42, 0xe4, 0xfc, 0x86,
+ 0x75, 0x81, 0x18, 0x1d, 0xd8, 0x46, 0xc4, 0xfe, 0x98, 0xb5, 0xb2, 0x80,
+ 0x5f, 0x55, 0x1b, 0x6c, 0x40, 0x7b, 0xcf, 0x5f,
+};
+static const unsigned char kat1950_addin1[] = {
+ 0x5f, 0x07, 0x62, 0x17, 0x2d, 0xcd, 0xc6, 0x40, 0x73, 0x75, 0x55, 0x9a,
+ 0xc8, 0xb2, 0x86, 0xf4, 0xaf, 0xcf, 0x52, 0x02, 0xa3, 0xe7, 0x16, 0x4d,
+ 0x72, 0xfd, 0x5e, 0x35, 0x3f, 0x90, 0xa1, 0x41,
+};
+static const unsigned char kat1950_retbits[] = {
+ 0x26, 0x96, 0xba, 0xa6, 0x7d, 0x11, 0xfa, 0x12, 0x5a, 0x8d, 0xfd, 0x4e,
+ 0xf8, 0x89, 0xe6, 0xb3, 0x16, 0x20, 0xef, 0x6f, 0xdd, 0xe5, 0x83, 0x50,
+ 0x6c, 0x4c, 0x9c, 0x7f, 0x93, 0xc4, 0xee, 0xa0, 0x55, 0x2c, 0x08, 0xff,
+ 0x8f, 0x00, 0x98, 0x8e, 0xf6, 0x12, 0x4a, 0xd2, 0x26, 0xcd, 0xcc, 0x04,
+ 0x36, 0x06, 0xc5, 0x4b, 0x38, 0x58, 0xef, 0x62, 0x20, 0x09, 0x1e, 0xaf,
+ 0x45, 0x90, 0x6f, 0x82,
+};
+static const struct drbg_kat_pr_false kat1950_t = {
+ 14, kat1950_entropyin, kat1950_nonce, kat1950_persstr,
+ kat1950_entropyinreseed, kat1950_addinreseed, kat1950_addin0,
+ kat1950_addin1, kat1950_retbits
+};
+static const struct drbg_kat kat1950 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1950_t
+};
+
+static const unsigned char kat1951_entropyin[] = {
+ 0x5b, 0xb1, 0x4b, 0xec, 0x3a, 0x2e, 0x43, 0x5a, 0xca, 0xb8, 0xb8, 0x91,
+ 0xf0, 0x75, 0x10, 0x7d, 0xf3, 0x87, 0x90, 0x2c, 0xb2, 0xcd, 0x99, 0x60,
+ 0x21, 0xb1, 0xa1, 0x24, 0x5d, 0x4e, 0xa2, 0xb5,
+};
+static const unsigned char kat1951_nonce[] = {
+ 0x12, 0xac, 0x7f, 0x44, 0x4e, 0x24, 0x7f, 0x77, 0x0d, 0x2f, 0x4d, 0x0a,
+ 0x65, 0xfd, 0xab, 0x4e,
+};
+static const unsigned char kat1951_persstr[] = {
+ 0x2e, 0x95, 0x7d, 0x53, 0xcb, 0xa5, 0xa6, 0xb9, 0xb8, 0xa2, 0xce, 0x43,
+ 0x69, 0xbb, 0x88, 0x5c, 0x09, 0x31, 0x78, 0x80, 0x15, 0xb9, 0xfe, 0x5a,
+ 0xc3, 0xc0, 0x1a, 0x7e, 0xc5, 0xea, 0xcd, 0x70,
+};
+static const unsigned char kat1951_entropyinreseed[] = {
+ 0x19, 0xf3, 0x0c, 0x84, 0xf6, 0xdb, 0xf1, 0xca, 0xf6, 0x8c, 0xbe, 0xc3,
+ 0xd4, 0xbb, 0x90, 0xe5, 0xe8, 0xf5, 0x71, 0x6e, 0xae, 0x8c, 0x1b, 0xba,
+ 0xda, 0xba, 0x99, 0xa2, 0xa2, 0xbd, 0x4e, 0xb2,
+};
+static const unsigned char kat1951_addinreseed[] = {0};
+static const unsigned char kat1951_addin0[] = {0};
+static const unsigned char kat1951_addin1[] = {0};
+static const unsigned char kat1951_retbits[] = {
+ 0xb7, 0xdd, 0x8a, 0xc2, 0xc5, 0xea, 0xa9, 0x7c, 0x77, 0x9f, 0xe4, 0x6c,
+ 0xc7, 0x93, 0xb9, 0xb1, 0xe7, 0xb9, 0x40, 0xc3, 0x18, 0xd3, 0xb5, 0x31,
+ 0x74, 0x4b, 0x42, 0x85, 0x6f, 0x29, 0x82, 0x64, 0xe4, 0x5f, 0x9a, 0x0a,
+ 0xca, 0x5d, 0xa9, 0x3e, 0x7f, 0x34, 0xf0, 0xeb, 0xc0, 0xed, 0x0e, 0xa3,
+ 0x2c, 0x00, 0x9e, 0x3e, 0x03, 0xcf, 0x01, 0x32, 0x0c, 0x9a, 0x83, 0x98,
+ 0x07, 0x57, 0x54, 0x05,
+};
+static const struct drbg_kat_pr_false kat1951_t = {
+ 0, kat1951_entropyin, kat1951_nonce, kat1951_persstr,
+ kat1951_entropyinreseed, kat1951_addinreseed, kat1951_addin0,
+ kat1951_addin1, kat1951_retbits
+};
+static const struct drbg_kat kat1951 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat1951_t
+};
+
+static const unsigned char kat1952_entropyin[] = {
+ 0x5e, 0x1a, 0x56, 0x4a, 0x70, 0xf5, 0x93, 0xc1, 0xc0, 0xb0, 0x7c, 0x99,
+ 0x06, 0x45, 0x5b, 0xd9, 0xf5, 0xce, 0x7a, 0xd9, 0x2e, 0xb3, 0x44, 0xa9,
+ 0xcc, 0xeb, 0x12, 0xf5, 0x57, 0x6d, 0x7d, 0x9c,
+};
+static const unsigned char kat1952_nonce[] = {
+ 0x45, 0xe0, 0x93, 0xe5, 0x87, 0x34, 0x1f, 0x6c, 0xb8, 0xf3, 0xde, 0xff,
+ 0xdd, 0xc4, 0xdc, 0x4d,
+};
+static const unsigned char kat1952_persstr[] = {
+ 0xb6, 0x17, 0x14, 0xba, 0x7e, 0xd3, 0x39, 0xa2, 0x46, 0x35, 0xc0, 0xbd,
+ 0x4f, 0x4d, 0xb4, 0x96, 0xb7, 0x46, 0x31, 0xeb, 0xbc, 0xd1, 0x4f, 0x64,
+ 0x8d, 0xe7, 0x1b, 0xd6, 0xd7, 0xc1, 0x97, 0xff,
+};
+static const unsigned char kat1952_entropyinreseed[] = {
+ 0x4f, 0xcf, 0x7a, 0xb9, 0xda, 0xa8, 0x08, 0xae, 0x81, 0xea, 0xf7, 0x28,
+ 0xdc, 0x74, 0xbd, 0xf4, 0xc1, 0x23, 0xa1, 0xe2, 0x44, 0x4e, 0x51, 0x18,
+ 0xc8, 0x04, 0x01, 0x42, 0xfe, 0xa5, 0x0a, 0x0b,
+};
+static const unsigned char kat1952_addinreseed[] = {0};
+static const unsigned char kat1952_addin0[] = {0};
+static const unsigned char kat1952_addin1[] = {0};
+static const unsigned char kat1952_retbits[] = {
+ 0x4d, 0x56, 0xfa, 0x06, 0x5a, 0x3b, 0x98, 0xf9, 0xce, 0x21, 0x70, 0x1c,
+ 0x00, 0xc8, 0x33, 0xbc, 0xd4, 0x39, 0x27, 0x6f, 0xc7, 0x0a, 0xaa, 0x14,
+ 0x18, 0x5b, 0x39, 0xf3, 0x4d, 0x80, 0x23, 0x25, 0x65, 0xc9, 0x92, 0xe2,
+ 0xf0, 0xfb, 0xd9, 0x51, 0x91, 0x75, 0x75, 0x1b, 0x40, 0x57, 0xc2, 0x1e,
+ 0xa6, 0x9d, 0x4c, 0x55, 0x3e, 0x30, 0xe3, 0xdc, 0x55, 0x33, 0xd4, 0xab,
+ 0xd9, 0x7a, 0xb1, 0x9f,
+};
+static const struct drbg_kat_pr_false kat1952_t = {
+ 1, kat1952_entropyin, kat1952_nonce, kat1952_persstr,
+ kat1952_entropyinreseed, kat1952_addinreseed, kat1952_addin0,
+ kat1952_addin1, kat1952_retbits
+};
+static const struct drbg_kat kat1952 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat1952_t
+};
+
+static const unsigned char kat1953_entropyin[] = {
+ 0xc3, 0x22, 0x38, 0x77, 0x3d, 0xe8, 0xdf, 0xdf, 0x3b, 0xc3, 0x19, 0xa6,
+ 0x46, 0x31, 0xc3, 0xca, 0xf6, 0x7a, 0xb0, 0x71, 0x6e, 0x89, 0x46, 0xee,
+ 0xe2, 0xff, 0xf1, 0xfd, 0xda, 0x96, 0xd2, 0xff,
+};
+static const unsigned char kat1953_nonce[] = {
+ 0xae, 0x2b, 0x3a, 0x16, 0xb0, 0x31, 0xc7, 0x84, 0xb8, 0x0b, 0x94, 0xb4,
+ 0x5c, 0x8c, 0xfa, 0xea,
+};
+static const unsigned char kat1953_persstr[] = {
+ 0xb2, 0x94, 0x00, 0xe4, 0x9e, 0x0f, 0xe2, 0x4c, 0x64, 0x18, 0xc4, 0xda,
+ 0x38, 0x41, 0x7f, 0x85, 0x7d, 0x53, 0xed, 0x61, 0x07, 0x0d, 0x46, 0x7e,
+ 0x34, 0x04, 0x9f, 0x61, 0x35, 0x68, 0x97, 0x8f,
+};
+static const unsigned char kat1953_entropyinreseed[] = {
+ 0x91, 0xc3, 0x6b, 0x0c, 0x87, 0x58, 0x7b, 0x66, 0x35, 0x83, 0xf6, 0x36,
+ 0xa2, 0x63, 0x03, 0xf3, 0x08, 0xb7, 0xa5, 0xdc, 0x23, 0x5c, 0xb1, 0x80,
+ 0x86, 0xd4, 0xe3, 0x50, 0xbd, 0x3f, 0xb6, 0x31,
+};
+static const unsigned char kat1953_addinreseed[] = {0};
+static const unsigned char kat1953_addin0[] = {0};
+static const unsigned char kat1953_addin1[] = {0};
+static const unsigned char kat1953_retbits[] = {
+ 0xa1, 0xd5, 0xa0, 0x59, 0xe6, 0xf3, 0xc2, 0x5a, 0x1b, 0x10, 0x61, 0x3e,
+ 0xfb, 0xfc, 0x48, 0x30, 0x95, 0xcc, 0x25, 0x7f, 0xd9, 0x8e, 0xd2, 0x91,
+ 0x43, 0x79, 0xbc, 0xd8, 0xa2, 0xff, 0xca, 0x2b, 0x3d, 0x74, 0x5c, 0x32,
+ 0xdf, 0xfd, 0xb7, 0x21, 0xae, 0x7a, 0x9d, 0xea, 0x85, 0xe0, 0xb7, 0xa9,
+ 0x93, 0xdb, 0xdf, 0xec, 0x01, 0xac, 0xaf, 0x10, 0x97, 0xdd, 0x9f, 0x52,
+ 0xee, 0x22, 0x3a, 0x0d,
+};
+static const struct drbg_kat_pr_false kat1953_t = {
+ 2, kat1953_entropyin, kat1953_nonce, kat1953_persstr,
+ kat1953_entropyinreseed, kat1953_addinreseed, kat1953_addin0,
+ kat1953_addin1, kat1953_retbits
+};
+static const struct drbg_kat kat1953 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat1953_t
+};
+
+static const unsigned char kat1954_entropyin[] = {
+ 0xce, 0x80, 0xe5, 0x65, 0x60, 0x90, 0xe0, 0x97, 0xba, 0xfc, 0x21, 0x03,
+ 0x70, 0x21, 0x3d, 0x46, 0xf3, 0x58, 0xf7, 0x79, 0x03, 0xfc, 0xdf, 0xb8,
+ 0x77, 0xa0, 0xe5, 0x7f, 0x45, 0x3b, 0x4f, 0x7a,
+};
+static const unsigned char kat1954_nonce[] = {
+ 0x45, 0x15, 0xc8, 0x64, 0x48, 0xed, 0xa2, 0x8e, 0xe6, 0x38, 0x17, 0xf3,
+ 0x6a, 0x28, 0x2b, 0xa3,
+};
+static const unsigned char kat1954_persstr[] = {
+ 0xc7, 0x87, 0x5c, 0xcf, 0x1e, 0x5e, 0xf1, 0xf6, 0xd7, 0x59, 0x42, 0x96,
+ 0x02, 0x4a, 0x71, 0xca, 0xca, 0x6c, 0xf5, 0x3c, 0xc8, 0x6e, 0x4e, 0x02,
+ 0xf8, 0x6f, 0xbb, 0x03, 0x50, 0x6f, 0xa9, 0xa8,
+};
+static const unsigned char kat1954_entropyinreseed[] = {
+ 0x8c, 0xe6, 0xf5, 0x6c, 0xd5, 0xb2, 0x6d, 0xe5, 0x9e, 0x01, 0xea, 0x11,
+ 0x50, 0x9a, 0x23, 0xe5, 0x98, 0xaf, 0xf8, 0x09, 0xdf, 0xe0, 0x7d, 0xf7,
+ 0xe4, 0x99, 0x4c, 0x99, 0x88, 0x5e, 0xb9, 0x4f,
+};
+static const unsigned char kat1954_addinreseed[] = {0};
+static const unsigned char kat1954_addin0[] = {0};
+static const unsigned char kat1954_addin1[] = {0};
+static const unsigned char kat1954_retbits[] = {
+ 0x41, 0xcc, 0x56, 0x5e, 0xc3, 0x49, 0xc9, 0x78, 0xbf, 0x7c, 0x4a, 0xf2,
+ 0x8a, 0x6c, 0xa9, 0xb1, 0xa5, 0x99, 0x24, 0xb2, 0x3a, 0x58, 0x1a, 0x7f,
+ 0x3b, 0x43, 0xae, 0x08, 0x96, 0x90, 0xd6, 0xac, 0x26, 0x2c, 0x02, 0x4f,
+ 0xc1, 0x6d, 0x56, 0xd1, 0xb4, 0x36, 0xc8, 0x00, 0x45, 0x22, 0xf8, 0x7f,
+ 0x5e, 0x8e, 0xc3, 0x85, 0x19, 0x03, 0xea, 0x1e, 0xc8, 0x74, 0x50, 0x5a,
+ 0x20, 0x6d, 0x16, 0x59,
+};
+static const struct drbg_kat_pr_false kat1954_t = {
+ 3, kat1954_entropyin, kat1954_nonce, kat1954_persstr,
+ kat1954_entropyinreseed, kat1954_addinreseed, kat1954_addin0,
+ kat1954_addin1, kat1954_retbits
+};
+static const struct drbg_kat kat1954 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat1954_t
+};
+
+static const unsigned char kat1955_entropyin[] = {
+ 0x41, 0x7b, 0x1a, 0x5a, 0xa4, 0x69, 0x4a, 0xcc, 0x25, 0xae, 0x2f, 0xb1,
+ 0x8e, 0xbe, 0xe5, 0x05, 0x5d, 0x69, 0x1f, 0x89, 0x08, 0x88, 0x8e, 0x60,
+ 0x88, 0x62, 0xc8, 0x31, 0xb9, 0x93, 0x6e, 0xae,
+};
+static const unsigned char kat1955_nonce[] = {
+ 0x53, 0xa2, 0x27, 0xb0, 0x46, 0x86, 0x02, 0xf6, 0xd5, 0xed, 0x62, 0x3b,
+ 0x6b, 0x55, 0x2f, 0x48,
+};
+static const unsigned char kat1955_persstr[] = {
+ 0xec, 0xbe, 0x55, 0xcd, 0xe2, 0x1a, 0x7d, 0x74, 0xf0, 0x34, 0x08, 0xe5,
+ 0xfc, 0x8b, 0x4c, 0x16, 0x2e, 0xe0, 0x66, 0x51, 0x55, 0x2f, 0xd3, 0x2a,
+ 0x6d, 0x40, 0xe0, 0x6c, 0x66, 0x7f, 0x95, 0xe2,
+};
+static const unsigned char kat1955_entropyinreseed[] = {
+ 0xd1, 0xa0, 0x0e, 0x5b, 0xf5, 0x65, 0x19, 0xc1, 0x27, 0xa1, 0x7f, 0xfc,
+ 0xa8, 0x48, 0xa2, 0x27, 0x6b, 0x02, 0x60, 0x4e, 0xb0, 0x1b, 0x92, 0x83,
+ 0xde, 0x58, 0x57, 0xfa, 0x8d, 0x19, 0xb4, 0x37,
+};
+static const unsigned char kat1955_addinreseed[] = {0};
+static const unsigned char kat1955_addin0[] = {0};
+static const unsigned char kat1955_addin1[] = {0};
+static const unsigned char kat1955_retbits[] = {
+ 0xad, 0x11, 0x37, 0x5c, 0xd7, 0xdb, 0x35, 0x4f, 0xd6, 0x73, 0x02, 0xd7,
+ 0x06, 0x5c, 0x9e, 0xf3, 0x6d, 0xea, 0x37, 0x3f, 0x74, 0x41, 0x14, 0xce,
+ 0xaf, 0xea, 0xfe, 0x6b, 0x91, 0x47, 0x98, 0x37, 0xec, 0x6f, 0xd9, 0xcd,
+ 0xfc, 0x29, 0x22, 0x0e, 0x84, 0x60, 0x8f, 0xb8, 0xc1, 0xa5, 0x9b, 0xde,
+ 0x70, 0x22, 0xa8, 0xf1, 0xe3, 0x1b, 0xef, 0x03, 0x48, 0x95, 0xcf, 0x06,
+ 0xa8, 0x08, 0x51, 0x88,
+};
+static const struct drbg_kat_pr_false kat1955_t = {
+ 4, kat1955_entropyin, kat1955_nonce, kat1955_persstr,
+ kat1955_entropyinreseed, kat1955_addinreseed, kat1955_addin0,
+ kat1955_addin1, kat1955_retbits
+};
+static const struct drbg_kat kat1955 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat1955_t
+};
+
+static const unsigned char kat1956_entropyin[] = {
+ 0xf7, 0xf9, 0xbc, 0x79, 0x89, 0x94, 0x31, 0x7e, 0xca, 0xaf, 0x30, 0x54,
+ 0xaf, 0x3f, 0x65, 0x49, 0x4a, 0xeb, 0x2a, 0x23, 0x5a, 0x6e, 0x76, 0x68,
+ 0xaf, 0xef, 0xc4, 0x31, 0x77, 0x57, 0xab, 0xbf,
+};
+static const unsigned char kat1956_nonce[] = {
+ 0x5d, 0x97, 0x89, 0xc2, 0x77, 0x4b, 0x85, 0x86, 0xdc, 0xba, 0xd4, 0x13,
+ 0x46, 0x0b, 0x7c, 0xb1,
+};
+static const unsigned char kat1956_persstr[] = {
+ 0x8c, 0x18, 0x8f, 0xe3, 0x10, 0xbd, 0x42, 0x00, 0xbf, 0x84, 0xb5, 0x76,
+ 0x17, 0xac, 0x0d, 0xaf, 0x2c, 0x37, 0x3a, 0xb2, 0x1d, 0xf7, 0xb0, 0xe5,
+ 0x61, 0xaa, 0xbb, 0xd2, 0xe3, 0xac, 0x19, 0xef,
+};
+static const unsigned char kat1956_entropyinreseed[] = {
+ 0xed, 0x53, 0xec, 0x2b, 0xd6, 0xed, 0x54, 0x58, 0xa5, 0x76, 0x2c, 0x38,
+ 0xb5, 0xc5, 0x92, 0x82, 0xf6, 0xe5, 0x56, 0x5c, 0x3b, 0xab, 0xdd, 0xe6,
+ 0x61, 0xbf, 0x60, 0x2a, 0x33, 0xd6, 0xf0, 0x8d,
+};
+static const unsigned char kat1956_addinreseed[] = {0};
+static const unsigned char kat1956_addin0[] = {0};
+static const unsigned char kat1956_addin1[] = {0};
+static const unsigned char kat1956_retbits[] = {
+ 0x27, 0xe7, 0xcb, 0xeb, 0xd6, 0x7c, 0x9d, 0x82, 0xbc, 0x5e, 0x79, 0x67,
+ 0x10, 0xb5, 0x70, 0xe4, 0x99, 0xe0, 0xbf, 0x9b, 0xa3, 0x90, 0x54, 0xbb,
+ 0x0c, 0x98, 0x9a, 0x04, 0x5b, 0x27, 0x5f, 0x5f, 0x0c, 0x08, 0x9e, 0x5a,
+ 0x01, 0xec, 0x0b, 0xb7, 0x4c, 0xf2, 0x9e, 0x55, 0x3d, 0xc2, 0xb5, 0x2c,
+ 0x0b, 0x53, 0xa3, 0x03, 0x7b, 0x62, 0x92, 0xa4, 0x13, 0x29, 0x9c, 0x9d,
+ 0x03, 0xae, 0xdf, 0xf3,
+};
+static const struct drbg_kat_pr_false kat1956_t = {
+ 5, kat1956_entropyin, kat1956_nonce, kat1956_persstr,
+ kat1956_entropyinreseed, kat1956_addinreseed, kat1956_addin0,
+ kat1956_addin1, kat1956_retbits
+};
+static const struct drbg_kat kat1956 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat1956_t
+};
+
+static const unsigned char kat1957_entropyin[] = {
+ 0x3a, 0x67, 0x01, 0x02, 0xa4, 0x46, 0xdb, 0x05, 0x67, 0x74, 0x2d, 0x42,
+ 0xee, 0xcd, 0xa3, 0x04, 0x69, 0xc9, 0x62, 0x11, 0xf8, 0xe7, 0xfd, 0xf8,
+ 0xbb, 0x72, 0x01, 0xcc, 0x5e, 0x60, 0x24, 0x81,
+};
+static const unsigned char kat1957_nonce[] = {
+ 0x9b, 0xf1, 0x38, 0xee, 0x6a, 0xf5, 0x0a, 0x1b, 0xc2, 0x27, 0x49, 0xda,
+ 0x1f, 0x36, 0xe6, 0xfe,
+};
+static const unsigned char kat1957_persstr[] = {
+ 0x16, 0xb8, 0xe8, 0x4e, 0x24, 0x9e, 0xeb, 0x2d, 0x26, 0xf8, 0x9f, 0x47,
+ 0x97, 0xf3, 0xff, 0x38, 0xa0, 0x68, 0x71, 0x8c, 0xc0, 0x3d, 0x14, 0xc6,
+ 0x55, 0x6c, 0x25, 0x5e, 0x1c, 0xc6, 0xf6, 0x6d,
+};
+static const unsigned char kat1957_entropyinreseed[] = {
+ 0x13, 0xd8, 0x16, 0x0e, 0x06, 0x70, 0xac, 0xa8, 0x40, 0xd9, 0x5e, 0x0c,
+ 0x39, 0x61, 0x15, 0x19, 0x2f, 0xf8, 0x41, 0x8c, 0xfa, 0x45, 0x97, 0x34,
+ 0xb6, 0xe3, 0x5c, 0x4a, 0x41, 0x44, 0xef, 0xb1,
+};
+static const unsigned char kat1957_addinreseed[] = {0};
+static const unsigned char kat1957_addin0[] = {0};
+static const unsigned char kat1957_addin1[] = {0};
+static const unsigned char kat1957_retbits[] = {
+ 0x5a, 0xd8, 0xd4, 0x37, 0xd2, 0x1a, 0x11, 0xc3, 0x7f, 0x9e, 0x95, 0x0a,
+ 0xab, 0x0e, 0x74, 0x1b, 0x7b, 0xa1, 0x79, 0x8a, 0x9f, 0xb8, 0xeb, 0x16,
+ 0x6d, 0x40, 0xee, 0xc4, 0x2f, 0x9c, 0x07, 0xd2, 0x72, 0xfe, 0x7d, 0x95,
+ 0xb1, 0x55, 0x61, 0x1f, 0xc6, 0xe5, 0xa4, 0x5d, 0x9e, 0x35, 0x5a, 0x55,
+ 0x26, 0x1a, 0x28, 0xdb, 0x17, 0xea, 0xad, 0x37, 0x3c, 0x46, 0xb4, 0xef,
+ 0xf6, 0xa1, 0x4b, 0x59,
+};
+static const struct drbg_kat_pr_false kat1957_t = {
+ 6, kat1957_entropyin, kat1957_nonce, kat1957_persstr,
+ kat1957_entropyinreseed, kat1957_addinreseed, kat1957_addin0,
+ kat1957_addin1, kat1957_retbits
+};
+static const struct drbg_kat kat1957 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat1957_t
+};
+
+static const unsigned char kat1958_entropyin[] = {
+ 0x05, 0xee, 0xe5, 0xcf, 0x3a, 0x14, 0x8a, 0x84, 0xf1, 0x4d, 0xbe, 0x86,
+ 0xcb, 0xb0, 0x10, 0x4e, 0x40, 0x89, 0x3b, 0xb0, 0xb4, 0xa7, 0x12, 0x24,
+ 0x7b, 0x8d, 0xd5, 0x2e, 0x4a, 0x66, 0xcc, 0xb9,
+};
+static const unsigned char kat1958_nonce[] = {
+ 0xe1, 0xe5, 0xc4, 0x83, 0x0f, 0xd7, 0x3e, 0x87, 0xe6, 0x34, 0x6c, 0x55,
+ 0xe2, 0x16, 0xd0, 0x75,
+};
+static const unsigned char kat1958_persstr[] = {
+ 0xbc, 0x41, 0xaa, 0xfb, 0xcc, 0x7e, 0x63, 0xc0, 0x2d, 0x7e, 0x9c, 0x3f,
+ 0xb9, 0x55, 0x18, 0xb0, 0x18, 0x88, 0x67, 0x56, 0x7c, 0x65, 0x73, 0x5c,
+ 0x12, 0xf1, 0x3f, 0x5a, 0xb9, 0x0e, 0x78, 0x8b,
+};
+static const unsigned char kat1958_entropyinreseed[] = {
+ 0x70, 0x2a, 0x6a, 0x05, 0x88, 0xe7, 0x2b, 0x9c, 0x95, 0x27, 0x43, 0x64,
+ 0x5e, 0x3d, 0x00, 0xb3, 0x5a, 0x0c, 0x8b, 0x0c, 0x2c, 0x39, 0xda, 0x09,
+ 0xa2, 0xe4, 0x3e, 0x91, 0xb4, 0xda, 0xcb, 0x6d,
+};
+static const unsigned char kat1958_addinreseed[] = {0};
+static const unsigned char kat1958_addin0[] = {0};
+static const unsigned char kat1958_addin1[] = {0};
+static const unsigned char kat1958_retbits[] = {
+ 0xf7, 0xde, 0x81, 0xc2, 0x6c, 0x2f, 0x78, 0xb4, 0x2c, 0x33, 0x6a, 0x8e,
+ 0x0c, 0xdd, 0xde, 0x25, 0x81, 0xd4, 0xd0, 0x6d, 0x40, 0x90, 0x75, 0x0e,
+ 0xff, 0x3e, 0x43, 0x81, 0x6f, 0x6e, 0xa3, 0x3f, 0x56, 0xbe, 0xab, 0x6f,
+ 0x78, 0x79, 0x3a, 0xc4, 0x5d, 0xd4, 0xbc, 0x0a, 0x1d, 0x34, 0xf4, 0x90,
+ 0x60, 0xf7, 0x2f, 0xab, 0x0f, 0x8f, 0x31, 0xac, 0x5b, 0x7e, 0x98, 0x0e,
+ 0x34, 0x6e, 0x2f, 0x93,
+};
+static const struct drbg_kat_pr_false kat1958_t = {
+ 7, kat1958_entropyin, kat1958_nonce, kat1958_persstr,
+ kat1958_entropyinreseed, kat1958_addinreseed, kat1958_addin0,
+ kat1958_addin1, kat1958_retbits
+};
+static const struct drbg_kat kat1958 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat1958_t
+};
+
+static const unsigned char kat1959_entropyin[] = {
+ 0x6c, 0x2a, 0xae, 0xac, 0x30, 0x12, 0xfc, 0x4a, 0xcc, 0x8d, 0x35, 0xc6,
+ 0x71, 0xf5, 0xd8, 0x8f, 0xa2, 0x5f, 0x50, 0xd8, 0xc8, 0x0c, 0x03, 0x1a,
+ 0xc5, 0xe8, 0x94, 0x22, 0x0b, 0xcf, 0x6f, 0xbf,
+};
+static const unsigned char kat1959_nonce[] = {
+ 0xba, 0xac, 0x5c, 0xc1, 0x70, 0x84, 0x7c, 0x81, 0x5a, 0x76, 0xfe, 0x6e,
+ 0x7f, 0x9a, 0x3d, 0xa8,
+};
+static const unsigned char kat1959_persstr[] = {
+ 0x8d, 0xb2, 0x9b, 0x7c, 0xa6, 0x68, 0x4a, 0x13, 0xed, 0xe4, 0x02, 0x5f,
+ 0x60, 0x00, 0x48, 0x2a, 0x37, 0x9f, 0x74, 0x56, 0x04, 0xa7, 0xd5, 0xbc,
+ 0xbf, 0x60, 0xa4, 0x8e, 0xf6, 0xcd, 0x8d, 0xb2,
+};
+static const unsigned char kat1959_entropyinreseed[] = {
+ 0x64, 0xe9, 0x86, 0x2f, 0x9e, 0x66, 0x36, 0x61, 0xb3, 0x2a, 0x8e, 0x27,
+ 0xa7, 0x0b, 0x2a, 0x3c, 0x0e, 0xcd, 0x3f, 0x1c, 0xa3, 0xc6, 0xe1, 0x99,
+ 0x99, 0x5b, 0x1b, 0x58, 0x7b, 0xa3, 0x1e, 0x0c,
+};
+static const unsigned char kat1959_addinreseed[] = {0};
+static const unsigned char kat1959_addin0[] = {0};
+static const unsigned char kat1959_addin1[] = {0};
+static const unsigned char kat1959_retbits[] = {
+ 0xfa, 0x74, 0x54, 0x92, 0x70, 0xc6, 0x48, 0x47, 0x22, 0x63, 0xe0, 0xa7,
+ 0x9e, 0xfb, 0x82, 0x39, 0xf0, 0x36, 0x96, 0x79, 0xcd, 0x46, 0x1f, 0xc6,
+ 0x87, 0x34, 0xf1, 0x04, 0x32, 0xcd, 0x26, 0x6b, 0x5b, 0xd2, 0xdf, 0x0b,
+ 0x50, 0xcd, 0x30, 0x7b, 0xf4, 0x79, 0xac, 0x63, 0xd5, 0xd3, 0x3d, 0xd6,
+ 0x50, 0x17, 0xad, 0x51, 0xb8, 0xb8, 0x57, 0x7e, 0xb4, 0x2a, 0x45, 0xac,
+ 0xad, 0x37, 0x3f, 0xc7,
+};
+static const struct drbg_kat_pr_false kat1959_t = {
+ 8, kat1959_entropyin, kat1959_nonce, kat1959_persstr,
+ kat1959_entropyinreseed, kat1959_addinreseed, kat1959_addin0,
+ kat1959_addin1, kat1959_retbits
+};
+static const struct drbg_kat kat1959 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat1959_t
+};
+
+static const unsigned char kat1960_entropyin[] = {
+ 0x23, 0x88, 0x16, 0x18, 0xde, 0x81, 0xab, 0x18, 0xa1, 0xe3, 0x15, 0x96,
+ 0xae, 0x03, 0x63, 0x2a, 0x50, 0x0e, 0xe8, 0xd7, 0x51, 0xc4, 0xbd, 0x30,
+ 0x97, 0x22, 0x77, 0xe3, 0xab, 0xdd, 0xb4, 0x8d,
+};
+static const unsigned char kat1960_nonce[] = {
+ 0x88, 0xcd, 0x13, 0x0a, 0x12, 0xf9, 0x2a, 0xad, 0x96, 0xe1, 0x6b, 0x13,
+ 0xda, 0xdc, 0xd9, 0xdd,
+};
+static const unsigned char kat1960_persstr[] = {
+ 0x2d, 0x9d, 0xae, 0x1d, 0xcd, 0x0b, 0x7b, 0x57, 0x10, 0x88, 0x80, 0xc3,
+ 0x22, 0x51, 0x41, 0x65, 0x24, 0x01, 0x40, 0xd8, 0x75, 0xf2, 0xfc, 0x82,
+ 0x9d, 0x9b, 0x2e, 0xf9, 0x9d, 0xd3, 0x71, 0xc8,
+};
+static const unsigned char kat1960_entropyinreseed[] = {
+ 0x85, 0x75, 0xf1, 0x6a, 0xc4, 0x2d, 0xce, 0x0d, 0xe1, 0x13, 0x23, 0x90,
+ 0x53, 0x54, 0x99, 0x1f, 0x1b, 0x2e, 0x85, 0xd7, 0x5c, 0x2c, 0x89, 0x30,
+ 0x2f, 0x5a, 0x63, 0x4c, 0xb0, 0xda, 0x24, 0x37,
+};
+static const unsigned char kat1960_addinreseed[] = {0};
+static const unsigned char kat1960_addin0[] = {0};
+static const unsigned char kat1960_addin1[] = {0};
+static const unsigned char kat1960_retbits[] = {
+ 0x66, 0x30, 0x8b, 0x40, 0xe1, 0x2d, 0xcb, 0x28, 0x68, 0x39, 0xf2, 0x4d,
+ 0x88, 0xcd, 0x19, 0xeb, 0x46, 0xc4, 0x49, 0x0d, 0xca, 0xfa, 0x92, 0xd8,
+ 0xea, 0x19, 0xd0, 0xb2, 0x6f, 0x73, 0xe1, 0x51, 0x50, 0xe9, 0x2c, 0x9e,
+ 0x79, 0x18, 0xa2, 0xf1, 0x8c, 0x9b, 0x26, 0x59, 0x9c, 0x9f, 0x19, 0xa8,
+ 0x13, 0xb4, 0xf0, 0x1e, 0xd5, 0x66, 0x17, 0x41, 0x27, 0xfe, 0xae, 0xfc,
+ 0x5d, 0x15, 0x1f, 0xf4,
+};
+static const struct drbg_kat_pr_false kat1960_t = {
+ 9, kat1960_entropyin, kat1960_nonce, kat1960_persstr,
+ kat1960_entropyinreseed, kat1960_addinreseed, kat1960_addin0,
+ kat1960_addin1, kat1960_retbits
+};
+static const struct drbg_kat kat1960 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat1960_t
+};
+
+static const unsigned char kat1961_entropyin[] = {
+ 0xcb, 0xde, 0x0b, 0x36, 0x4d, 0xb2, 0x2d, 0x51, 0x07, 0xfc, 0xb2, 0x9b,
+ 0x06, 0x62, 0x84, 0x70, 0x15, 0x06, 0x2f, 0xbe, 0x18, 0x0f, 0x9d, 0xd1,
+ 0x3f, 0x8b, 0x6a, 0x0f, 0xa7, 0x9c, 0xe7, 0xdb,
+};
+static const unsigned char kat1961_nonce[] = {
+ 0xf1, 0x29, 0x4d, 0xd5, 0x52, 0x6d, 0x94, 0x97, 0x2e, 0xb0, 0x8f, 0xb3,
+ 0xfa, 0xb7, 0x83, 0xff,
+};
+static const unsigned char kat1961_persstr[] = {
+ 0x7b, 0x1d, 0x46, 0x97, 0x6d, 0x6d, 0x18, 0xf0, 0xad, 0x0c, 0x39, 0x28,
+ 0x6b, 0x9a, 0x9d, 0x55, 0x49, 0xc6, 0xaa, 0xab, 0xdf, 0x1d, 0xf0, 0xf0,
+ 0x28, 0x5d, 0x2e, 0xec, 0xe4, 0xa2, 0x9a, 0x58,
+};
+static const unsigned char kat1961_entropyinreseed[] = {
+ 0x3d, 0x71, 0xf3, 0xc4, 0xf5, 0xea, 0xe7, 0x78, 0x33, 0x3e, 0x65, 0x31,
+ 0x56, 0x64, 0xd4, 0x4d, 0x3a, 0x0a, 0x58, 0x86, 0x5b, 0xdd, 0xfd, 0x62,
+ 0xd2, 0x2f, 0x01, 0x9d, 0xcf, 0x2b, 0xcb, 0xdb,
+};
+static const unsigned char kat1961_addinreseed[] = {0};
+static const unsigned char kat1961_addin0[] = {0};
+static const unsigned char kat1961_addin1[] = {0};
+static const unsigned char kat1961_retbits[] = {
+ 0x56, 0xf7, 0x1f, 0x0d, 0x48, 0x80, 0x4e, 0x0f, 0x2e, 0xac, 0x77, 0xf5,
+ 0xd3, 0x4f, 0x7b, 0xdc, 0x5e, 0x73, 0xb4, 0xe6, 0x42, 0x1d, 0x30, 0x62,
+ 0x3a, 0x50, 0x86, 0x0a, 0x4e, 0xfb, 0x44, 0x9b, 0x4b, 0xda, 0xb3, 0x91,
+ 0x8b, 0xa9, 0x4a, 0x89, 0x8d, 0x01, 0x3f, 0x15, 0x13, 0xa4, 0x01, 0x45,
+ 0x06, 0x73, 0x10, 0x74, 0x4e, 0x9a, 0x41, 0x98, 0xc5, 0xd3, 0x15, 0x0f,
+ 0xbd, 0xca, 0xb5, 0xba,
+};
+static const struct drbg_kat_pr_false kat1961_t = {
+ 10, kat1961_entropyin, kat1961_nonce, kat1961_persstr,
+ kat1961_entropyinreseed, kat1961_addinreseed, kat1961_addin0,
+ kat1961_addin1, kat1961_retbits
+};
+static const struct drbg_kat kat1961 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat1961_t
+};
+
+static const unsigned char kat1962_entropyin[] = {
+ 0x8b, 0xc6, 0x8f, 0xd8, 0xe3, 0xe4, 0x25, 0x4d, 0xd1, 0xcc, 0x17, 0x8c,
+ 0xad, 0x22, 0x71, 0x96, 0x19, 0x67, 0x33, 0x1f, 0x3a, 0x9b, 0xf3, 0xa4,
+ 0xb4, 0x40, 0x40, 0x7f, 0xf0, 0xcd, 0x57, 0x47,
+};
+static const unsigned char kat1962_nonce[] = {
+ 0xf6, 0xd9, 0x2f, 0x16, 0x33, 0xa1, 0xc4, 0x15, 0xcb, 0xa8, 0xd1, 0x35,
+ 0x97, 0x96, 0x5f, 0x4d,
+};
+static const unsigned char kat1962_persstr[] = {
+ 0x7f, 0x5d, 0xe4, 0x5b, 0xd1, 0x23, 0xb5, 0xf8, 0x35, 0x07, 0x1d, 0x51,
+ 0xbe, 0x22, 0xe5, 0x12, 0xc8, 0x66, 0x90, 0xdf, 0x17, 0xac, 0x9d, 0x21,
+ 0x09, 0xdd, 0xf8, 0xe2, 0xd7, 0xd4, 0xa6, 0x5e,
+};
+static const unsigned char kat1962_entropyinreseed[] = {
+ 0x22, 0x03, 0xaf, 0xda, 0x11, 0xd3, 0x9a, 0xca, 0x50, 0x79, 0x39, 0xb0,
+ 0xcd, 0xc1, 0xb7, 0x1a, 0x46, 0xec, 0x50, 0xc8, 0xfc, 0x75, 0xca, 0xd8,
+ 0x7e, 0x86, 0x64, 0xc1, 0x43, 0x91, 0x3d, 0x07,
+};
+static const unsigned char kat1962_addinreseed[] = {0};
+static const unsigned char kat1962_addin0[] = {0};
+static const unsigned char kat1962_addin1[] = {0};
+static const unsigned char kat1962_retbits[] = {
+ 0x5e, 0x92, 0x13, 0x22, 0xaa, 0xf8, 0x03, 0x01, 0x22, 0xa6, 0x81, 0x4c,
+ 0x9e, 0x33, 0xa2, 0xb6, 0x7c, 0x02, 0x05, 0x6e, 0xaf, 0xd7, 0xfc, 0xa4,
+ 0x57, 0xdf, 0xbd, 0xf5, 0x52, 0x7d, 0x3e, 0xf7, 0xbb, 0x95, 0x05, 0xd9,
+ 0x69, 0xdc, 0x35, 0x31, 0x55, 0xc7, 0xc9, 0x23, 0x4c, 0xaa, 0x50, 0x04,
+ 0xc3, 0xfa, 0x6c, 0x8e, 0x63, 0x80, 0xb9, 0xe2, 0x5c, 0xd6, 0xc2, 0xc3,
+ 0x6c, 0x84, 0x0f, 0xc6,
+};
+static const struct drbg_kat_pr_false kat1962_t = {
+ 11, kat1962_entropyin, kat1962_nonce, kat1962_persstr,
+ kat1962_entropyinreseed, kat1962_addinreseed, kat1962_addin0,
+ kat1962_addin1, kat1962_retbits
+};
+static const struct drbg_kat kat1962 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat1962_t
+};
+
+static const unsigned char kat1963_entropyin[] = {
+ 0x22, 0xe2, 0xdb, 0x91, 0xef, 0xbe, 0x30, 0xb5, 0x3f, 0xa6, 0x43, 0xd8,
+ 0x9e, 0x60, 0x7a, 0x1b, 0x7e, 0xeb, 0x11, 0x71, 0xca, 0xf9, 0xa5, 0x0a,
+ 0xf5, 0xba, 0x5d, 0x86, 0x10, 0xbe, 0xc9, 0xb2,
+};
+static const unsigned char kat1963_nonce[] = {
+ 0x7e, 0x7d, 0x51, 0xf8, 0x9c, 0x10, 0xae, 0xa9, 0xc1, 0x3a, 0xd0, 0x3a,
+ 0x17, 0xa6, 0xf2, 0x08,
+};
+static const unsigned char kat1963_persstr[] = {
+ 0x8a, 0x7b, 0xc1, 0x75, 0x52, 0xa5, 0x52, 0xdb, 0x2d, 0x6c, 0x96, 0xbd,
+ 0xfe, 0x93, 0xf4, 0xed, 0x61, 0xf1, 0xb1, 0x1b, 0xf9, 0xf6, 0x90, 0x3b,
+ 0x4f, 0xe3, 0x06, 0x63, 0x8f, 0xe0, 0x35, 0x7f,
+};
+static const unsigned char kat1963_entropyinreseed[] = {
+ 0xec, 0x21, 0x9c, 0xcf, 0x1f, 0x56, 0x55, 0xa2, 0x48, 0x1c, 0x6a, 0xf3,
+ 0x5d, 0x88, 0x66, 0xf3, 0x54, 0x47, 0x2b, 0xf2, 0x57, 0x44, 0x73, 0x11,
+ 0x41, 0xbe, 0xf7, 0x46, 0x36, 0x87, 0xfd, 0x28,
+};
+static const unsigned char kat1963_addinreseed[] = {0};
+static const unsigned char kat1963_addin0[] = {0};
+static const unsigned char kat1963_addin1[] = {0};
+static const unsigned char kat1963_retbits[] = {
+ 0x19, 0xc4, 0x2f, 0x82, 0xf8, 0xff, 0xba, 0x0d, 0xb3, 0x58, 0x7d, 0xbd,
+ 0xda, 0xcb, 0x95, 0x37, 0x6b, 0xe4, 0xef, 0x55, 0x46, 0xf3, 0x31, 0x24,
+ 0xff, 0xc3, 0x4d, 0xa4, 0x99, 0xbb, 0xdc, 0xb1, 0x5a, 0x17, 0x72, 0x7b,
+ 0x5f, 0x41, 0x4d, 0x01, 0x0c, 0x22, 0x72, 0x8e, 0x8f, 0x9c, 0x72, 0x1e,
+ 0xa0, 0xe0, 0xba, 0x5d, 0xc6, 0x8f, 0x7b, 0x29, 0x24, 0x7b, 0xfd, 0x04,
+ 0x94, 0x6b, 0x9d, 0xad,
+};
+static const struct drbg_kat_pr_false kat1963_t = {
+ 12, kat1963_entropyin, kat1963_nonce, kat1963_persstr,
+ kat1963_entropyinreseed, kat1963_addinreseed, kat1963_addin0,
+ kat1963_addin1, kat1963_retbits
+};
+static const struct drbg_kat kat1963 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat1963_t
+};
+
+static const unsigned char kat1964_entropyin[] = {
+ 0x4f, 0x56, 0x73, 0xce, 0x79, 0x8b, 0x07, 0xee, 0x69, 0x1b, 0x0c, 0x42,
+ 0x6d, 0x52, 0x9e, 0xb6, 0xc9, 0x38, 0xf1, 0x6f, 0xf3, 0x30, 0x47, 0x2f,
+ 0xc6, 0xf6, 0x06, 0x80, 0xa3, 0x54, 0x9f, 0xd3,
+};
+static const unsigned char kat1964_nonce[] = {
+ 0xa0, 0x7d, 0xf7, 0xd8, 0x76, 0x24, 0x12, 0xdc, 0x61, 0xa9, 0xd7, 0x8b,
+ 0xa0, 0x24, 0x4d, 0x5d,
+};
+static const unsigned char kat1964_persstr[] = {
+ 0x9f, 0xdc, 0xb1, 0x7d, 0xa4, 0x41, 0x92, 0xca, 0xad, 0x6b, 0x57, 0x0d,
+ 0xd5, 0xe7, 0x5b, 0xe6, 0x6c, 0x3b, 0x30, 0x3c, 0xa7, 0xc1, 0x4b, 0xf7,
+ 0x20, 0xc9, 0x4a, 0x2d, 0xef, 0x34, 0xdd, 0xc3,
+};
+static const unsigned char kat1964_entropyinreseed[] = {
+ 0x45, 0x48, 0xef, 0xd4, 0xfd, 0xc0, 0x6d, 0xf5, 0x45, 0x80, 0xf1, 0x42,
+ 0x6e, 0x1b, 0xe1, 0x45, 0x5f, 0x1e, 0x6d, 0x72, 0x4b, 0x07, 0x48, 0x09,
+ 0x74, 0xa4, 0xc6, 0xf1, 0x6b, 0x16, 0xa1, 0x90,
+};
+static const unsigned char kat1964_addinreseed[] = {0};
+static const unsigned char kat1964_addin0[] = {0};
+static const unsigned char kat1964_addin1[] = {0};
+static const unsigned char kat1964_retbits[] = {
+ 0xa1, 0x72, 0xfd, 0xf2, 0xcd, 0x1a, 0xd4, 0x6d, 0xa5, 0xa9, 0x0c, 0x00,
+ 0xfe, 0x39, 0x2b, 0xbb, 0x5b, 0x3b, 0x44, 0x05, 0xa0, 0x77, 0x10, 0x8a,
+ 0x19, 0x49, 0xb5, 0x4c, 0x05, 0x23, 0x64, 0xeb, 0xdc, 0xda, 0xd3, 0x4e,
+ 0xb9, 0xea, 0xc9, 0x3f, 0xf9, 0x1e, 0x5e, 0x13, 0xcc, 0x67, 0xf0, 0x84,
+ 0x33, 0x10, 0x21, 0xf8, 0xdb, 0x72, 0x3b, 0x46, 0xfc, 0xdc, 0x13, 0x78,
+ 0x15, 0x7a, 0x6d, 0x0a,
+};
+static const struct drbg_kat_pr_false kat1964_t = {
+ 13, kat1964_entropyin, kat1964_nonce, kat1964_persstr,
+ kat1964_entropyinreseed, kat1964_addinreseed, kat1964_addin0,
+ kat1964_addin1, kat1964_retbits
+};
+static const struct drbg_kat kat1964 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat1964_t
+};
+
+static const unsigned char kat1965_entropyin[] = {
+ 0xab, 0xc9, 0xf9, 0xd5, 0x38, 0x10, 0xde, 0x8e, 0x38, 0xba, 0xd1, 0x19,
+ 0xd5, 0x23, 0x40, 0x17, 0xc6, 0x6e, 0xcb, 0xd4, 0x10, 0x21, 0x86, 0x1f,
+ 0xa2, 0x82, 0x56, 0xe7, 0x3d, 0x3f, 0x70, 0x1b,
+};
+static const unsigned char kat1965_nonce[] = {
+ 0x19, 0x4d, 0x4d, 0x4c, 0x8e, 0x64, 0xbd, 0xd9, 0x6c, 0xab, 0x79, 0xe2,
+ 0x3d, 0x21, 0x26, 0xe8,
+};
+static const unsigned char kat1965_persstr[] = {
+ 0x21, 0xdc, 0x81, 0x41, 0xc8, 0x92, 0xea, 0x17, 0x36, 0x37, 0x52, 0x57,
+ 0x53, 0xc1, 0x1f, 0x11, 0x58, 0xfe, 0x74, 0x97, 0x5e, 0xe5, 0x5f, 0xfe,
+ 0x76, 0xc8, 0xa4, 0x39, 0xa3, 0x69, 0xfd, 0x25,
+};
+static const unsigned char kat1965_entropyinreseed[] = {
+ 0xe9, 0x99, 0xc9, 0xd8, 0xb6, 0xec, 0xae, 0x35, 0xa4, 0xe0, 0x74, 0x1e,
+ 0xb9, 0x44, 0x12, 0x3b, 0x9b, 0xfb, 0x82, 0x42, 0x4d, 0xca, 0xe1, 0x84,
+ 0xee, 0x36, 0xba, 0xb4, 0xce, 0xdd, 0x54, 0x70,
+};
+static const unsigned char kat1965_addinreseed[] = {0};
+static const unsigned char kat1965_addin0[] = {0};
+static const unsigned char kat1965_addin1[] = {0};
+static const unsigned char kat1965_retbits[] = {
+ 0x30, 0xc3, 0x28, 0xb6, 0xf8, 0xcd, 0x1e, 0xd8, 0x6d, 0x10, 0x6d, 0x40,
+ 0xb7, 0x24, 0xf9, 0x42, 0xbd, 0xbc, 0xd9, 0x03, 0x81, 0x1f, 0x4b, 0x8c,
+ 0x9d, 0xd0, 0xd2, 0x54, 0x66, 0x38, 0x75, 0x0e, 0x51, 0x42, 0x7e, 0xcd,
+ 0xb5, 0x17, 0xa9, 0x16, 0xf8, 0xae, 0x11, 0x90, 0x0c, 0x4a, 0xd7, 0x3d,
+ 0xb1, 0xbd, 0x1f, 0x23, 0x5c, 0xf8, 0xce, 0xf8, 0x1c, 0x60, 0xc7, 0x5c,
+ 0xfc, 0x4e, 0xe3, 0x23,
+};
+static const struct drbg_kat_pr_false kat1965_t = {
+ 14, kat1965_entropyin, kat1965_nonce, kat1965_persstr,
+ kat1965_entropyinreseed, kat1965_addinreseed, kat1965_addin0,
+ kat1965_addin1, kat1965_retbits
+};
+static const struct drbg_kat kat1965 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat1965_t
+};
+
+static const unsigned char kat1966_entropyin[] = {
+ 0x17, 0x4b, 0x46, 0x25, 0x00, 0x51, 0xa9, 0xe3, 0xd8, 0x0c, 0x56, 0xae,
+ 0x71, 0x63, 0xda, 0xfe, 0x7e, 0x54, 0x48, 0x1a, 0x56, 0xca, 0xfd, 0x3b,
+ 0x86, 0x25, 0xf9, 0x9b, 0xbb, 0x29, 0xc4, 0x42,
+};
+static const unsigned char kat1966_nonce[] = {
+ 0x98, 0xff, 0xd9, 0x9c, 0x46, 0x6e, 0x0e, 0x94, 0xa4, 0x5d, 0xa7, 0xe0,
+ 0xe8, 0x2d, 0xbc, 0x6b,
+};
+static const unsigned char kat1966_persstr[] = {
+ 0x70, 0x95, 0x26, 0x8e, 0x99, 0x93, 0x8b, 0x3e, 0x04, 0x27, 0x34, 0xb9,
+ 0x17, 0x6c, 0x9a, 0xa0, 0x51, 0xf0, 0x0a, 0x5f, 0x8d, 0x2a, 0x89, 0xad,
+ 0xa2, 0x14, 0xb8, 0x9b, 0xee, 0xf1, 0x8e, 0xbf,
+};
+static const unsigned char kat1966_entropyinreseed[] = {
+ 0xe8, 0x8b, 0xe1, 0x96, 0x7c, 0x55, 0x03, 0xf6, 0x5d, 0x23, 0x86, 0x7b,
+ 0xbc, 0x89, 0x1b, 0xd6, 0x79, 0xdb, 0x03, 0xb4, 0x87, 0x86, 0x63, 0xf6,
+ 0xc8, 0x77, 0x59, 0x2d, 0xf2, 0x5f, 0x0d, 0x9a,
+};
+static const unsigned char kat1966_addinreseed[] = {
+ 0xcd, 0xf6, 0xad, 0x54, 0x9e, 0x45, 0xb6, 0xaa, 0x5c, 0xd6, 0x7d, 0x02,
+ 0x49, 0x31, 0xc3, 0x3c, 0xd1, 0x33, 0xd5, 0x2d, 0x5a, 0xe5, 0x00, 0xc3,
+ 0x01, 0x50, 0x20, 0xbe, 0xb3, 0x0d, 0xa0, 0x63,
+};
+static const unsigned char kat1966_addin0[] = {
+ 0xc7, 0x22, 0x8e, 0x90, 0xc6, 0x2f, 0x89, 0x6a, 0x09, 0xe1, 0x16, 0x84,
+ 0x53, 0x01, 0x02, 0xf9, 0x26, 0xec, 0x90, 0xa3, 0x25, 0x5f, 0x6c, 0x21,
+ 0xb8, 0x57, 0x88, 0x3c, 0x75, 0x80, 0x01, 0x43,
+};
+static const unsigned char kat1966_addin1[] = {
+ 0x76, 0xa9, 0x4f, 0x22, 0x41, 0x78, 0xfe, 0x4c, 0xbf, 0x9e, 0x2b, 0x8a,
+ 0xcc, 0x53, 0xc9, 0xdc, 0x3e, 0x50, 0xbb, 0x61, 0x3a, 0xac, 0x89, 0x36,
+ 0x60, 0x14, 0x53, 0xcd, 0xa3, 0x29, 0x3b, 0x17,
+};
+static const unsigned char kat1966_retbits[] = {
+ 0x1a, 0x6d, 0x8d, 0xbd, 0x64, 0x20, 0x76, 0xd1, 0x39, 0x16, 0xe5, 0xe2,
+ 0x30, 0x38, 0xb6, 0x0b, 0x26, 0x06, 0x1f, 0x13, 0xdd, 0x4e, 0x00, 0x62,
+ 0x77, 0xe0, 0x26, 0x86, 0x98, 0xff, 0xb2, 0xc8, 0x7e, 0x45, 0x3b, 0xae,
+ 0x12, 0x51, 0x63, 0x1a, 0xc9, 0x0c, 0x70, 0x1a, 0x98, 0x49, 0xd9, 0x33,
+ 0x99, 0x5e, 0x8b, 0x02, 0x21, 0xfe, 0x9a, 0xca, 0x19, 0x85, 0xc5, 0x46,
+ 0xc2, 0x07, 0x90, 0x27,
+};
+static const struct drbg_kat_pr_false kat1966_t = {
+ 0, kat1966_entropyin, kat1966_nonce, kat1966_persstr,
+ kat1966_entropyinreseed, kat1966_addinreseed, kat1966_addin0,
+ kat1966_addin1, kat1966_retbits
+};
+static const struct drbg_kat kat1966 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat1966_t
+};
+
+static const unsigned char kat1967_entropyin[] = {
+ 0x4a, 0x92, 0x74, 0x81, 0x37, 0xf9, 0x99, 0x16, 0x0a, 0x6a, 0x75, 0xa2,
+ 0xa1, 0x4b, 0xc8, 0x78, 0x63, 0xf7, 0xd2, 0x7a, 0xef, 0x0d, 0x53, 0x5c,
+ 0x72, 0xc7, 0xf6, 0xc2, 0xe9, 0x6d, 0xa2, 0x45,
+};
+static const unsigned char kat1967_nonce[] = {
+ 0x3f, 0x1a, 0xf8, 0xa2, 0x3a, 0xf9, 0xe1, 0x30, 0x95, 0xa0, 0xad, 0xa3,
+ 0xa9, 0x62, 0x18, 0xdb,
+};
+static const unsigned char kat1967_persstr[] = {
+ 0xf7, 0xfc, 0xfc, 0x35, 0x6c, 0xda, 0x3a, 0x71, 0xc4, 0xc4, 0x72, 0x9a,
+ 0x2c, 0xa6, 0x3a, 0x0b, 0xe6, 0xb7, 0x17, 0x86, 0x12, 0xe6, 0x43, 0xea,
+ 0xd7, 0x8a, 0x44, 0xef, 0xa3, 0x5d, 0x11, 0x00,
+};
+static const unsigned char kat1967_entropyinreseed[] = {
+ 0xef, 0xa6, 0xfd, 0xa8, 0x4b, 0x4d, 0x01, 0xb1, 0x16, 0xb3, 0x9d, 0xc5,
+ 0x14, 0xba, 0xef, 0x49, 0xff, 0x51, 0xf0, 0x18, 0x41, 0xb1, 0x94, 0x9e,
+ 0x94, 0xfd, 0xee, 0x2e, 0xc7, 0x46, 0xbd, 0xd4,
+};
+static const unsigned char kat1967_addinreseed[] = {
+ 0x5d, 0x20, 0xbf, 0x1e, 0x3a, 0x06, 0x19, 0x3a, 0xb9, 0xe1, 0xe0, 0x25,
+ 0xc3, 0x00, 0x59, 0x14, 0x90, 0x30, 0xb1, 0x99, 0x6b, 0x72, 0x7c, 0xe6,
+ 0x5d, 0x07, 0x64, 0x9b, 0x62, 0xfa, 0x1b, 0xc7,
+};
+static const unsigned char kat1967_addin0[] = {
+ 0xb5, 0x3f, 0x78, 0x08, 0x06, 0xa9, 0xad, 0x59, 0x03, 0xac, 0xdd, 0x1f,
+ 0x85, 0x1f, 0x0b, 0x0f, 0xe7, 0x2a, 0x33, 0x90, 0x66, 0x3b, 0x40, 0x68,
+ 0x20, 0x75, 0xb2, 0x5a, 0xc9, 0x2c, 0x0f, 0xd5,
+};
+static const unsigned char kat1967_addin1[] = {
+ 0x46, 0xe8, 0x48, 0x39, 0xa1, 0x0e, 0xbb, 0x41, 0x69, 0x4e, 0x55, 0xfd,
+ 0x06, 0x42, 0x4e, 0x49, 0x4b, 0xe5, 0x80, 0xc5, 0xe1, 0x8e, 0x47, 0x44,
+ 0xdf, 0x8a, 0x64, 0x63, 0xff, 0x73, 0x4a, 0x40,
+};
+static const unsigned char kat1967_retbits[] = {
+ 0xdc, 0x67, 0x62, 0x85, 0xe8, 0xdc, 0xfc, 0xcf, 0xfb, 0xb1, 0xc2, 0xbf,
+ 0x41, 0x4f, 0x4b, 0x20, 0xfe, 0xcd, 0x3e, 0x99, 0xe7, 0xa9, 0xf4, 0xd9,
+ 0x0b, 0xc8, 0x65, 0x06, 0x05, 0x4d, 0xbd, 0x44, 0x4a, 0x7c, 0x74, 0x0f,
+ 0x48, 0xe7, 0x1f, 0x12, 0x93, 0x1e, 0x86, 0x4e, 0xe6, 0x3c, 0x69, 0x03,
+ 0x74, 0xb1, 0x4d, 0x18, 0x20, 0xea, 0xef, 0xc1, 0xbf, 0x5f, 0x0d, 0x8b,
+ 0x57, 0x15, 0x0b, 0x5b,
+};
+static const struct drbg_kat_pr_false kat1967_t = {
+ 1, kat1967_entropyin, kat1967_nonce, kat1967_persstr,
+ kat1967_entropyinreseed, kat1967_addinreseed, kat1967_addin0,
+ kat1967_addin1, kat1967_retbits
+};
+static const struct drbg_kat kat1967 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat1967_t
+};
+
+static const unsigned char kat1968_entropyin[] = {
+ 0x0a, 0xb7, 0x99, 0x5c, 0xb7, 0x93, 0x6f, 0x22, 0xfe, 0xa0, 0x32, 0x40,
+ 0xfd, 0x87, 0x86, 0x6e, 0xd3, 0x90, 0x75, 0xee, 0xd9, 0x4b, 0xbf, 0xc6,
+ 0xbe, 0x78, 0x5a, 0xd0, 0x52, 0x55, 0x2a, 0xb4,
+};
+static const unsigned char kat1968_nonce[] = {
+ 0x5f, 0x1b, 0x0e, 0x41, 0x7d, 0x86, 0x7a, 0x38, 0xee, 0x09, 0x94, 0xf9,
+ 0x6e, 0xd6, 0xe8, 0xe1,
+};
+static const unsigned char kat1968_persstr[] = {
+ 0x43, 0x05, 0xa7, 0xe0, 0x1f, 0x93, 0x1e, 0x2d, 0xd7, 0x68, 0x30, 0xcf,
+ 0xc3, 0x8b, 0xd1, 0x66, 0xb2, 0x35, 0x93, 0x4d, 0x25, 0x05, 0x84, 0x88,
+ 0x4f, 0x9b, 0x6a, 0x4d, 0x78, 0x37, 0x83, 0x8f,
+};
+static const unsigned char kat1968_entropyinreseed[] = {
+ 0x5c, 0xc4, 0x8c, 0xd4, 0xc1, 0x9e, 0x8c, 0x17, 0xcd, 0x9f, 0xcc, 0xf6,
+ 0x7f, 0xb4, 0xaa, 0x80, 0x08, 0xa7, 0x45, 0xf9, 0x22, 0xf3, 0xe7, 0xe5,
+ 0x1f, 0xd2, 0x9c, 0xc1, 0xc1, 0x49, 0x0a, 0xe7,
+};
+static const unsigned char kat1968_addinreseed[] = {
+ 0x89, 0x63, 0x2c, 0x6a, 0x52, 0xe9, 0x25, 0x73, 0x21, 0x4f, 0x50, 0x28,
+ 0x9a, 0xc7, 0x43, 0x16, 0x5e, 0xc7, 0xb2, 0x2e, 0x6c, 0x9e, 0xf9, 0x5b,
+ 0xe8, 0xee, 0x4a, 0x8d, 0x3a, 0xd9, 0x68, 0xab,
+};
+static const unsigned char kat1968_addin0[] = {
+ 0x9b, 0xad, 0x67, 0xae, 0x47, 0x2d, 0x90, 0x1d, 0x3e, 0xb0, 0x44, 0xc5,
+ 0x39, 0x4e, 0x49, 0x68, 0xb2, 0xc2, 0xbf, 0xed, 0x1f, 0xa6, 0x51, 0x03,
+ 0xaa, 0x35, 0xb1, 0x21, 0xd7, 0xea, 0xda, 0xf1,
+};
+static const unsigned char kat1968_addin1[] = {
+ 0xaf, 0x71, 0x5e, 0xb5, 0x88, 0x9f, 0x22, 0xfb, 0x63, 0xd0, 0x04, 0xb3,
+ 0xd7, 0xed, 0x48, 0x5c, 0x60, 0xb0, 0x34, 0x2d, 0x4a, 0xf7, 0x37, 0xac,
+ 0x32, 0xe0, 0x7c, 0xa5, 0x54, 0x6e, 0x74, 0xa3,
+};
+static const unsigned char kat1968_retbits[] = {
+ 0x92, 0x37, 0xd5, 0xa4, 0x04, 0xf7, 0xeb, 0xa1, 0x57, 0xf1, 0xd9, 0xb8,
+ 0xbc, 0x82, 0xf6, 0xed, 0x1f, 0x82, 0x99, 0x25, 0xc2, 0xc6, 0x90, 0xf9,
+ 0x05, 0xb1, 0x03, 0x0f, 0xf4, 0xb3, 0xa5, 0x92, 0xf5, 0xe2, 0x21, 0xe9,
+ 0x9d, 0x76, 0xc1, 0x42, 0x1a, 0x41, 0xe8, 0xf7, 0x4b, 0xc1, 0xf7, 0x8a,
+ 0xb4, 0xa7, 0x70, 0x01, 0xe3, 0x9d, 0x87, 0xd4, 0x2f, 0x42, 0x60, 0xcb,
+ 0xaf, 0x4a, 0x40, 0xc1,
+};
+static const struct drbg_kat_pr_false kat1968_t = {
+ 2, kat1968_entropyin, kat1968_nonce, kat1968_persstr,
+ kat1968_entropyinreseed, kat1968_addinreseed, kat1968_addin0,
+ kat1968_addin1, kat1968_retbits
+};
+static const struct drbg_kat kat1968 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat1968_t
+};
+
+static const unsigned char kat1969_entropyin[] = {
+ 0x5f, 0x04, 0x39, 0x91, 0x65, 0xa2, 0x39, 0x2f, 0x61, 0xc5, 0x88, 0xfe,
+ 0x64, 0x6e, 0x9d, 0x8c, 0xdc, 0x9b, 0x2c, 0x35, 0x6f, 0x7b, 0x00, 0x50,
+ 0x27, 0x16, 0xdc, 0x43, 0x3e, 0xcf, 0x91, 0x3d,
+};
+static const unsigned char kat1969_nonce[] = {
+ 0xd3, 0xc9, 0xb9, 0x33, 0x6b, 0xcd, 0xef, 0x76, 0xbe, 0x6d, 0xa4, 0x2d,
+ 0x67, 0xb7, 0x7c, 0x73,
+};
+static const unsigned char kat1969_persstr[] = {
+ 0xf3, 0x1c, 0xb8, 0xec, 0x30, 0xe0, 0x87, 0xc6, 0xf9, 0x32, 0x50, 0x08,
+ 0x77, 0xb9, 0xd7, 0xb3, 0xc4, 0x75, 0x66, 0xcd, 0x91, 0x9e, 0x79, 0xd1,
+ 0x87, 0x34, 0x0b, 0xaa, 0x4d, 0x38, 0x9c, 0xed,
+};
+static const unsigned char kat1969_entropyinreseed[] = {
+ 0x73, 0x62, 0xfd, 0x81, 0x35, 0x5a, 0xdb, 0x2d, 0x42, 0x21, 0xfd, 0x66,
+ 0xa8, 0x5e, 0xcd, 0x20, 0xe9, 0x49, 0xb9, 0x12, 0xc4, 0xae, 0xf9, 0xc1,
+ 0x28, 0x51, 0xb7, 0x91, 0x6d, 0x44, 0x18, 0x67,
+};
+static const unsigned char kat1969_addinreseed[] = {
+ 0xf8, 0x11, 0x56, 0x38, 0x23, 0xd0, 0x46, 0x62, 0x56, 0x42, 0xe0, 0x52,
+ 0xaa, 0xdb, 0x89, 0xbd, 0x64, 0x14, 0x67, 0x3b, 0xe1, 0x41, 0x9d, 0x34,
+ 0x2a, 0x7e, 0x3d, 0xc3, 0xbb, 0x1a, 0xdd, 0x17,
+};
+static const unsigned char kat1969_addin0[] = {
+ 0x6a, 0x06, 0xf3, 0x07, 0x79, 0x56, 0x9b, 0x7d, 0x56, 0x1e, 0xe1, 0x6b,
+ 0xd5, 0x2e, 0xb8, 0xfa, 0x7c, 0xe6, 0x0d, 0x23, 0x6e, 0x81, 0x92, 0xf8,
+ 0x01, 0x83, 0x10, 0xd9, 0x01, 0xad, 0xb6, 0x54,
+};
+static const unsigned char kat1969_addin1[] = {
+ 0x9b, 0xf4, 0x89, 0xbd, 0x45, 0xe4, 0xdd, 0x75, 0x20, 0x7d, 0xbe, 0x73,
+ 0x39, 0xb9, 0xe0, 0x46, 0x6f, 0x53, 0x71, 0x82, 0x2f, 0x8e, 0x90, 0xdc,
+ 0xca, 0xa2, 0xa3, 0x1b, 0x3c, 0x78, 0x8a, 0x2b,
+};
+static const unsigned char kat1969_retbits[] = {
+ 0x00, 0xd8, 0x8e, 0x7f, 0xa5, 0x28, 0xf8, 0x30, 0xbe, 0x3e, 0xad, 0x61,
+ 0xdd, 0xba, 0x12, 0x98, 0xdc, 0xad, 0x36, 0x6c, 0x0a, 0xb1, 0xa4, 0xe9,
+ 0x0f, 0x49, 0xf1, 0x35, 0x87, 0xb9, 0x32, 0x69, 0x32, 0xd8, 0xe1, 0x97,
+ 0x2c, 0x4e, 0x7b, 0x33, 0x5c, 0xee, 0xdd, 0x2f, 0xb1, 0x7d, 0x33, 0x46,
+ 0x47, 0xef, 0x6f, 0x40, 0x6e, 0x30, 0x82, 0xa1, 0xc3, 0x3f, 0xf4, 0xde,
+ 0x98, 0x6a, 0x55, 0x57,
+};
+static const struct drbg_kat_pr_false kat1969_t = {
+ 3, kat1969_entropyin, kat1969_nonce, kat1969_persstr,
+ kat1969_entropyinreseed, kat1969_addinreseed, kat1969_addin0,
+ kat1969_addin1, kat1969_retbits
+};
+static const struct drbg_kat kat1969 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat1969_t
+};
+
+static const unsigned char kat1970_entropyin[] = {
+ 0xa7, 0xa0, 0x53, 0x61, 0xd4, 0x28, 0xaf, 0x23, 0xa0, 0xd4, 0xf1, 0x32,
+ 0x76, 0x8a, 0x4b, 0x24, 0xfb, 0xd7, 0x8e, 0x1f, 0x42, 0xfb, 0x46, 0x20,
+ 0x5d, 0x7b, 0x52, 0x89, 0x1b, 0x22, 0x97, 0xa8,
+};
+static const unsigned char kat1970_nonce[] = {
+ 0x81, 0x77, 0x60, 0x0c, 0xb1, 0xff, 0xea, 0x16, 0x12, 0x77, 0xa8, 0x39,
+ 0xad, 0x5d, 0x05, 0xfa,
+};
+static const unsigned char kat1970_persstr[] = {
+ 0x79, 0xce, 0x51, 0xa1, 0xc2, 0x95, 0xc9, 0xa3, 0x8d, 0x11, 0xdb, 0x50,
+ 0x23, 0xc3, 0x49, 0xfb, 0xa3, 0x47, 0xe1, 0x93, 0x96, 0x1c, 0x90, 0xaf,
+ 0x9e, 0x2e, 0x73, 0x26, 0x42, 0x0d, 0x90, 0x28,
+};
+static const unsigned char kat1970_entropyinreseed[] = {
+ 0x66, 0x40, 0x38, 0xf3, 0xe8, 0xbf, 0xd6, 0xb0, 0xba, 0x65, 0x52, 0xe8,
+ 0x36, 0x98, 0xb3, 0xf4, 0x94, 0x5f, 0x18, 0x2c, 0x40, 0x0b, 0xff, 0xab,
+ 0x74, 0xb4, 0x6f, 0x07, 0xad, 0x42, 0x76, 0x4e,
+};
+static const unsigned char kat1970_addinreseed[] = {
+ 0xa5, 0x82, 0xb4, 0x50, 0xef, 0xf2, 0x1d, 0xc5, 0xc0, 0xbb, 0xde, 0x22,
+ 0x5c, 0xf9, 0x02, 0xa4, 0x85, 0x88, 0x91, 0xff, 0x42, 0xb2, 0xcd, 0xc5,
+ 0x20, 0x80, 0x91, 0x10, 0x64, 0x48, 0x58, 0x2e,
+};
+static const unsigned char kat1970_addin0[] = {
+ 0x1f, 0xa8, 0xbe, 0x06, 0x76, 0xba, 0x5b, 0x09, 0xb8, 0x4d, 0x43, 0xac,
+ 0x44, 0xc7, 0x84, 0x32, 0x85, 0x8e, 0xfa, 0x4b, 0xda, 0x7b, 0x4a, 0xad,
+ 0x8d, 0x6a, 0x7e, 0x64, 0xd1, 0x55, 0xcc, 0x89,
+};
+static const unsigned char kat1970_addin1[] = {
+ 0xb7, 0x36, 0x8a, 0x0e, 0x32, 0xea, 0x9e, 0x17, 0x61, 0x63, 0x67, 0x92,
+ 0x19, 0x58, 0x0f, 0xd0, 0x50, 0xf7, 0x56, 0x6a, 0x31, 0x8f, 0x1b, 0x6c,
+ 0x5f, 0xaf, 0x1e, 0x84, 0xe2, 0xe9, 0x07, 0x0f,
+};
+static const unsigned char kat1970_retbits[] = {
+ 0x56, 0xeb, 0xc2, 0x2b, 0xd2, 0x5e, 0x87, 0x23, 0x3e, 0x27, 0x44, 0x8f,
+ 0x3d, 0x78, 0xd0, 0x27, 0xfd, 0x9a, 0xb6, 0x06, 0xf0, 0x0a, 0xd1, 0x7d,
+ 0x9c, 0x42, 0x7c, 0x7a, 0xd8, 0x8a, 0x29, 0x7b, 0x94, 0x0f, 0x04, 0x4a,
+ 0x7e, 0x6d, 0xc5, 0x48, 0xa9, 0xec, 0x12, 0x07, 0x4a, 0xc9, 0xcb, 0x87,
+ 0x14, 0x8b, 0x6b, 0x2d, 0x48, 0xd7, 0x0b, 0x24, 0xcf, 0xd6, 0xe2, 0x03,
+ 0x44, 0xe7, 0xb8, 0x5b,
+};
+static const struct drbg_kat_pr_false kat1970_t = {
+ 4, kat1970_entropyin, kat1970_nonce, kat1970_persstr,
+ kat1970_entropyinreseed, kat1970_addinreseed, kat1970_addin0,
+ kat1970_addin1, kat1970_retbits
+};
+static const struct drbg_kat kat1970 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat1970_t
+};
+
+static const unsigned char kat1971_entropyin[] = {
+ 0x2d, 0x06, 0x66, 0x50, 0x7c, 0xc6, 0xe1, 0xe6, 0xab, 0x6d, 0x87, 0x44,
+ 0x83, 0x35, 0x38, 0x05, 0x67, 0x22, 0xd6, 0x72, 0x0a, 0xf8, 0x8d, 0x01,
+ 0x09, 0xd0, 0xef, 0x56, 0x3e, 0xc1, 0xd1, 0x3e,
+};
+static const unsigned char kat1971_nonce[] = {
+ 0xcb, 0x71, 0x96, 0x4e, 0x05, 0x72, 0x1f, 0xc4, 0xe6, 0xfd, 0x22, 0x79,
+ 0xdf, 0x81, 0xee, 0x45,
+};
+static const unsigned char kat1971_persstr[] = {
+ 0x0d, 0x07, 0xef, 0xdd, 0x5a, 0x8e, 0x15, 0x25, 0x26, 0xb7, 0xbd, 0x59,
+ 0x21, 0x77, 0x4c, 0xe5, 0x04, 0xf0, 0xc4, 0xff, 0x8c, 0xca, 0xca, 0x1d,
+ 0x86, 0x15, 0xe0, 0x74, 0xf8, 0xc9, 0x93, 0x1b,
+};
+static const unsigned char kat1971_entropyinreseed[] = {
+ 0xc9, 0x21, 0x8f, 0x42, 0xa2, 0xa5, 0x63, 0x1e, 0x75, 0x7e, 0x6e, 0x92,
+ 0xcc, 0xdb, 0x84, 0x8b, 0x51, 0xb0, 0xc9, 0xba, 0xc8, 0x94, 0x58, 0x88,
+ 0xcb, 0x9f, 0xda, 0x7e, 0xe1, 0x09, 0x56, 0xb8,
+};
+static const unsigned char kat1971_addinreseed[] = {
+ 0xf8, 0x30, 0x52, 0x47, 0xd7, 0xcc, 0xa7, 0xb0, 0x65, 0xdb, 0x7e, 0xae,
+ 0xeb, 0x13, 0xab, 0xc3, 0x18, 0x71, 0xe7, 0xa8, 0xcd, 0x76, 0x63, 0xc2,
+ 0x91, 0x08, 0x3c, 0x87, 0xd9, 0xcb, 0xc1, 0x84,
+};
+static const unsigned char kat1971_addin0[] = {
+ 0xb9, 0xc4, 0x8f, 0x33, 0x81, 0xf9, 0xcc, 0x54, 0x97, 0x5f, 0x9b, 0xd4,
+ 0x6d, 0x00, 0x38, 0x66, 0x44, 0x18, 0x3f, 0x17, 0x16, 0xb2, 0xe0, 0x4c,
+ 0xf1, 0x07, 0x2c, 0x0e, 0x53, 0xf5, 0xa4, 0xeb,
+};
+static const unsigned char kat1971_addin1[] = {
+ 0xef, 0x19, 0x0e, 0x7e, 0xb3, 0xb6, 0x0f, 0x61, 0x46, 0x65, 0x63, 0x8f,
+ 0xb3, 0xba, 0xe5, 0x66, 0xd2, 0x5e, 0x77, 0x90, 0x21, 0x70, 0x42, 0x38,
+ 0x54, 0x60, 0x18, 0x40, 0x84, 0x9e, 0x62, 0x88,
+};
+static const unsigned char kat1971_retbits[] = {
+ 0xe6, 0x2e, 0x6a, 0x47, 0x88, 0x65, 0x7b, 0xa4, 0xe9, 0xb9, 0x37, 0x1d,
+ 0x1e, 0x72, 0xe7, 0xb0, 0x70, 0xe5, 0x88, 0x57, 0x31, 0x8f, 0x4d, 0x3a,
+ 0x7f, 0x0e, 0xf3, 0x70, 0x21, 0x4a, 0x2f, 0x4e, 0xb4, 0xb4, 0x5d, 0x32,
+ 0x97, 0x6a, 0xf7, 0x9c, 0x7c, 0xfd, 0xc4, 0x49, 0x44, 0x7b, 0x51, 0x71,
+ 0x48, 0x92, 0xbe, 0x31, 0xc9, 0x92, 0x30, 0x99, 0x6f, 0xa6, 0xa1, 0x8f,
+ 0x23, 0x65, 0x80, 0x76,
+};
+static const struct drbg_kat_pr_false kat1971_t = {
+ 5, kat1971_entropyin, kat1971_nonce, kat1971_persstr,
+ kat1971_entropyinreseed, kat1971_addinreseed, kat1971_addin0,
+ kat1971_addin1, kat1971_retbits
+};
+static const struct drbg_kat kat1971 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat1971_t
+};
+
+static const unsigned char kat1972_entropyin[] = {
+ 0x49, 0x1c, 0xc3, 0x12, 0x91, 0xac, 0x33, 0xe3, 0x69, 0xde, 0xd4, 0xe7,
+ 0xae, 0xb0, 0x7e, 0xe5, 0x77, 0x7f, 0x3e, 0x18, 0x3e, 0x30, 0xa8, 0x32,
+ 0x7b, 0x4e, 0x56, 0x49, 0x80, 0x92, 0x82, 0x58,
+};
+static const unsigned char kat1972_nonce[] = {
+ 0x4d, 0x38, 0x0f, 0x5a, 0xe8, 0x77, 0xce, 0xcf, 0x4d, 0x70, 0xc6, 0x56,
+ 0x0e, 0x92, 0x26, 0xba,
+};
+static const unsigned char kat1972_persstr[] = {
+ 0xa3, 0x22, 0x05, 0xba, 0x78, 0x25, 0x3d, 0x54, 0x21, 0xfe, 0x61, 0xbe,
+ 0x3c, 0x8b, 0xa8, 0x99, 0x03, 0x11, 0xfd, 0xdc, 0xa1, 0x81, 0x50, 0x3b,
+ 0x2a, 0x85, 0xb9, 0x82, 0x74, 0x50, 0x6f, 0x90,
+};
+static const unsigned char kat1972_entropyinreseed[] = {
+ 0x57, 0xc8, 0x4a, 0xbf, 0x8e, 0x41, 0x80, 0xa6, 0x8d, 0x84, 0x32, 0x06,
+ 0x36, 0x9a, 0x6a, 0x5d, 0xb1, 0x3e, 0x02, 0xf9, 0x9f, 0x65, 0x75, 0x1f,
+ 0x92, 0x22, 0xe7, 0x4b, 0x06, 0xa7, 0xdc, 0xab,
+};
+static const unsigned char kat1972_addinreseed[] = {
+ 0xb2, 0x79, 0x26, 0x41, 0xd5, 0x42, 0x2b, 0x27, 0x6a, 0x56, 0xb9, 0x97,
+ 0x21, 0x24, 0x37, 0x52, 0x75, 0xb0, 0xbb, 0x2e, 0x52, 0xd2, 0xea, 0x65,
+ 0x2e, 0x53, 0xd8, 0xbe, 0xd5, 0xfc, 0xe8, 0xb6,
+};
+static const unsigned char kat1972_addin0[] = {
+ 0x17, 0xa6, 0x9c, 0x86, 0x2f, 0xff, 0xd1, 0xb0, 0xf3, 0x55, 0x71, 0x6f,
+ 0xb1, 0x0c, 0x9f, 0xc9, 0xfa, 0x8d, 0xc7, 0xe2, 0x9e, 0xc7, 0x46, 0xed,
+ 0x3a, 0xf2, 0x62, 0x08, 0x53, 0x03, 0xa8, 0x95,
+};
+static const unsigned char kat1972_addin1[] = {
+ 0x0b, 0xeb, 0x0a, 0xf4, 0x1f, 0xa7, 0x9e, 0xc5, 0x39, 0x26, 0x1c, 0x85,
+ 0x61, 0x17, 0x6c, 0xed, 0xa3, 0x88, 0x8b, 0x56, 0x90, 0x24, 0xfd, 0x44,
+ 0xca, 0xdd, 0xc7, 0xd7, 0xb9, 0x9a, 0x9a, 0x6c,
+};
+static const unsigned char kat1972_retbits[] = {
+ 0x27, 0x81, 0x00, 0x65, 0x97, 0xc9, 0x2e, 0xe6, 0x8f, 0xd5, 0xb1, 0x79,
+ 0x13, 0x01, 0xa5, 0x64, 0x30, 0x71, 0x25, 0xde, 0x30, 0xdf, 0xe3, 0x83,
+ 0x0c, 0x0b, 0xff, 0x48, 0x27, 0xf7, 0x4b, 0xe3, 0xa1, 0x1c, 0x21, 0xfd,
+ 0xa3, 0x9e, 0x4c, 0xff, 0xd2, 0x92, 0xcf, 0xe7, 0x4d, 0x69, 0x1e, 0x00,
+ 0xe9, 0x1f, 0x43, 0x15, 0x60, 0xd3, 0x2f, 0xcd, 0xf5, 0xe6, 0xe5, 0xa3,
+ 0xae, 0xad, 0xa9, 0x0b,
+};
+static const struct drbg_kat_pr_false kat1972_t = {
+ 6, kat1972_entropyin, kat1972_nonce, kat1972_persstr,
+ kat1972_entropyinreseed, kat1972_addinreseed, kat1972_addin0,
+ kat1972_addin1, kat1972_retbits
+};
+static const struct drbg_kat kat1972 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat1972_t
+};
+
+static const unsigned char kat1973_entropyin[] = {
+ 0x44, 0xc9, 0xd4, 0x36, 0x1c, 0x63, 0x9e, 0xe3, 0x50, 0x88, 0x22, 0x03,
+ 0xe0, 0x8f, 0x81, 0xa5, 0xff, 0xec, 0x04, 0x4c, 0x35, 0xd8, 0x4e, 0x3b,
+ 0x60, 0x11, 0x7d, 0x45, 0xda, 0xfb, 0x33, 0xfd,
+};
+static const unsigned char kat1973_nonce[] = {
+ 0x42, 0xb3, 0x02, 0xfa, 0xf1, 0x98, 0x1a, 0x5c, 0x90, 0xc6, 0x84, 0xc6,
+ 0xd4, 0xae, 0x1c, 0x66,
+};
+static const unsigned char kat1973_persstr[] = {
+ 0x65, 0x61, 0xd6, 0xf2, 0x98, 0x20, 0x5a, 0x0b, 0xf0, 0x52, 0xed, 0xf7,
+ 0x3d, 0xfd, 0xd1, 0xd5, 0x8e, 0xef, 0x8a, 0xb6, 0xdf, 0x93, 0x93, 0x54,
+ 0x5e, 0x1f, 0xc7, 0x69, 0x1e, 0x23, 0xde, 0x88,
+};
+static const unsigned char kat1973_entropyinreseed[] = {
+ 0x9f, 0x0e, 0xfe, 0xe8, 0x6b, 0x42, 0x67, 0x62, 0xf1, 0xd6, 0x5e, 0x2c,
+ 0x70, 0x2e, 0xfe, 0x93, 0x94, 0x29, 0x30, 0xc3, 0xf3, 0x68, 0xfd, 0x17,
+ 0xbb, 0x3a, 0xaf, 0xa0, 0x3e, 0x47, 0x2e, 0x77,
+};
+static const unsigned char kat1973_addinreseed[] = {
+ 0x1f, 0xaf, 0x3b, 0x76, 0x2a, 0x40, 0xad, 0x81, 0x5c, 0x67, 0xbe, 0x4e,
+ 0xfe, 0xc9, 0xac, 0x0f, 0x2a, 0xc2, 0x94, 0xc7, 0x22, 0x6f, 0xe7, 0xac,
+ 0x8a, 0x9d, 0x68, 0xa3, 0x46, 0x09, 0x91, 0x1d,
+};
+static const unsigned char kat1973_addin0[] = {
+ 0x7d, 0xba, 0xd1, 0x57, 0xb0, 0x98, 0x14, 0x17, 0x73, 0xf9, 0x63, 0x0c,
+ 0xfa, 0x4e, 0x71, 0xee, 0xdf, 0x36, 0x32, 0x9b, 0x92, 0x50, 0x0b, 0x65,
+ 0x55, 0x1c, 0xec, 0xab, 0x57, 0xae, 0x99, 0x44,
+};
+static const unsigned char kat1973_addin1[] = {
+ 0x03, 0x14, 0xf5, 0xea, 0x3a, 0xab, 0xad, 0xbc, 0x0c, 0x3d, 0xb2, 0x5f,
+ 0x7f, 0xd1, 0x45, 0x61, 0x0b, 0xa3, 0x50, 0xb2, 0xb2, 0x78, 0xd4, 0x05,
+ 0xd0, 0x0a, 0x36, 0x89, 0xb6, 0x75, 0x0a, 0xf3,
+};
+static const unsigned char kat1973_retbits[] = {
+ 0xde, 0x13, 0x6a, 0x0f, 0x97, 0x44, 0x7d, 0x24, 0xea, 0x51, 0x60, 0xec,
+ 0x1a, 0xb9, 0x3b, 0xa7, 0xfe, 0x80, 0x44, 0xfe, 0x3b, 0x8a, 0xe8, 0x69,
+ 0xf5, 0xc4, 0x48, 0xcc, 0x9e, 0x27, 0xa4, 0x8e, 0x18, 0x44, 0xd8, 0xfa,
+ 0xe0, 0x68, 0x70, 0x5b, 0x6c, 0xd7, 0x86, 0x7e, 0xa1, 0xae, 0xb5, 0xa3,
+ 0xf0, 0xd4, 0x9e, 0x79, 0xea, 0x9f, 0x51, 0x37, 0x69, 0x4e, 0xca, 0x28,
+ 0x65, 0x96, 0x40, 0x4d,
+};
+static const struct drbg_kat_pr_false kat1973_t = {
+ 7, kat1973_entropyin, kat1973_nonce, kat1973_persstr,
+ kat1973_entropyinreseed, kat1973_addinreseed, kat1973_addin0,
+ kat1973_addin1, kat1973_retbits
+};
+static const struct drbg_kat kat1973 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat1973_t
+};
+
+static const unsigned char kat1974_entropyin[] = {
+ 0xb5, 0x43, 0x0c, 0x96, 0x22, 0xac, 0x2d, 0xde, 0xf3, 0x03, 0xee, 0xac,
+ 0x62, 0xdb, 0x05, 0x75, 0xba, 0x07, 0x1f, 0xfb, 0x73, 0xec, 0xb0, 0x19,
+ 0xf7, 0xf3, 0xc5, 0xb8, 0xd7, 0x3f, 0x8a, 0x05,
+};
+static const unsigned char kat1974_nonce[] = {
+ 0xd3, 0xa3, 0x07, 0x22, 0xd6, 0xb4, 0x30, 0xbc, 0x9e, 0x9a, 0xe6, 0x13,
+ 0x47, 0x74, 0x46, 0x91,
+};
+static const unsigned char kat1974_persstr[] = {
+ 0x3f, 0xb2, 0x8f, 0x0a, 0x48, 0xd5, 0x6d, 0x87, 0x13, 0xc8, 0x59, 0xd2,
+ 0xfc, 0x05, 0x0c, 0xc2, 0x8e, 0xc3, 0xa6, 0xa1, 0x0e, 0x20, 0x60, 0xdb,
+ 0x25, 0x0f, 0x73, 0xb2, 0x1e, 0x79, 0x83, 0xb4,
+};
+static const unsigned char kat1974_entropyinreseed[] = {
+ 0xdd, 0xa8, 0x22, 0xa6, 0x96, 0x85, 0x15, 0x71, 0xaa, 0x5b, 0x1e, 0x07,
+ 0x26, 0x61, 0x6c, 0xe1, 0x12, 0x2e, 0x71, 0xdc, 0xe3, 0x3d, 0x54, 0xfb,
+ 0x75, 0xf2, 0x3f, 0xf2, 0xb9, 0x1a, 0xf9, 0x55,
+};
+static const unsigned char kat1974_addinreseed[] = {
+ 0x07, 0x63, 0x35, 0xd2, 0x3d, 0xb4, 0x02, 0x31, 0x63, 0x4d, 0x4c, 0x90,
+ 0xd2, 0x19, 0x1b, 0xbb, 0x25, 0xa5, 0x2e, 0x2f, 0x20, 0xf2, 0x77, 0xea,
+ 0xec, 0x90, 0xe2, 0xc0, 0x6c, 0x9f, 0xde, 0x82,
+};
+static const unsigned char kat1974_addin0[] = {
+ 0x5f, 0x34, 0xc6, 0x1b, 0x82, 0xf5, 0x51, 0x6b, 0x67, 0xbe, 0xd5, 0x10,
+ 0x20, 0x98, 0x07, 0xad, 0xe3, 0xa6, 0x68, 0x7a, 0x3c, 0x5f, 0x03, 0xb2,
+ 0x94, 0xad, 0x11, 0x64, 0xa4, 0xd7, 0xa1, 0x52,
+};
+static const unsigned char kat1974_addin1[] = {
+ 0x83, 0xd4, 0x0f, 0xd5, 0x5b, 0x12, 0xfc, 0x40, 0x85, 0x65, 0x33, 0x30,
+ 0xe6, 0x73, 0x61, 0xb0, 0x86, 0xbb, 0x00, 0x3a, 0x2d, 0x00, 0x2d, 0x4f,
+ 0x1a, 0xc9, 0x19, 0x10, 0x8e, 0x31, 0x7f, 0x1a,
+};
+static const unsigned char kat1974_retbits[] = {
+ 0xf8, 0xd4, 0xab, 0xc5, 0xb4, 0x8f, 0xba, 0x89, 0x4a, 0x6e, 0x96, 0xfb,
+ 0x21, 0xd2, 0xb8, 0x1c, 0x1a, 0xfc, 0xa1, 0xed, 0x0b, 0x0f, 0x02, 0x7c,
+ 0x05, 0xc3, 0xa8, 0x37, 0xe0, 0x5f, 0xe6, 0x35, 0x9a, 0x31, 0x4f, 0x34,
+ 0xc5, 0x05, 0x41, 0x31, 0x42, 0x35, 0x6d, 0x33, 0xba, 0x4f, 0xbd, 0x22,
+ 0x71, 0x67, 0x34, 0x08, 0x81, 0x3a, 0x48, 0x7c, 0x68, 0xf6, 0xf4, 0x56,
+ 0x08, 0x83, 0xc4, 0x75,
+};
+static const struct drbg_kat_pr_false kat1974_t = {
+ 8, kat1974_entropyin, kat1974_nonce, kat1974_persstr,
+ kat1974_entropyinreseed, kat1974_addinreseed, kat1974_addin0,
+ kat1974_addin1, kat1974_retbits
+};
+static const struct drbg_kat kat1974 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat1974_t
+};
+
+static const unsigned char kat1975_entropyin[] = {
+ 0xda, 0x0a, 0x38, 0xa4, 0x63, 0x8f, 0x1b, 0x7d, 0xbd, 0xa5, 0x90, 0xab,
+ 0xb5, 0xa3, 0x7d, 0x59, 0x35, 0xf1, 0xe2, 0xe7, 0x24, 0xf5, 0x0c, 0xd3,
+ 0xfe, 0x9a, 0xb1, 0x31, 0xd1, 0x0f, 0xdc, 0xd9,
+};
+static const unsigned char kat1975_nonce[] = {
+ 0x7d, 0x11, 0x73, 0xea, 0x9d, 0x0c, 0x56, 0x51, 0x29, 0xe3, 0x62, 0xc3,
+ 0x9b, 0x54, 0x14, 0xd1,
+};
+static const unsigned char kat1975_persstr[] = {
+ 0x93, 0x92, 0x38, 0x53, 0x3e, 0x73, 0xaa, 0xc1, 0xf2, 0x46, 0x70, 0xa5,
+ 0x86, 0x36, 0x8b, 0xc5, 0x4b, 0xe2, 0x48, 0x13, 0x65, 0x29, 0xf8, 0x6a,
+ 0xbc, 0x6b, 0x50, 0x79, 0x14, 0x74, 0xff, 0x8c,
+};
+static const unsigned char kat1975_entropyinreseed[] = {
+ 0xf5, 0xf9, 0x12, 0x27, 0x85, 0x2b, 0x78, 0xad, 0x75, 0x5a, 0x28, 0x4a,
+ 0x3f, 0x43, 0xf3, 0x8e, 0x88, 0xd3, 0xe9, 0x3f, 0x78, 0xd4, 0x4a, 0x0d,
+ 0x34, 0x8f, 0x10, 0x13, 0x56, 0x1b, 0xa2, 0x9c,
+};
+static const unsigned char kat1975_addinreseed[] = {
+ 0x3d, 0xf6, 0xc0, 0x3d, 0x2f, 0x09, 0xcc, 0x64, 0xca, 0x13, 0x39, 0x08,
+ 0x34, 0x7c, 0xed, 0xd6, 0x11, 0x06, 0x2b, 0xf6, 0x9e, 0xa6, 0x91, 0x26,
+ 0x86, 0xe4, 0x24, 0x4b, 0xd5, 0xcf, 0x42, 0x1b,
+};
+static const unsigned char kat1975_addin0[] = {
+ 0x54, 0xaf, 0x87, 0x4c, 0x0d, 0x14, 0x2a, 0xb9, 0x07, 0x77, 0x97, 0x4c,
+ 0x1c, 0x9c, 0x7f, 0xce, 0x24, 0xd4, 0x3b, 0xd5, 0x6c, 0x94, 0x37, 0xf5,
+ 0xc7, 0x74, 0xbf, 0xf5, 0xf5, 0x44, 0x61, 0x24,
+};
+static const unsigned char kat1975_addin1[] = {
+ 0x4f, 0x26, 0x45, 0x61, 0xd6, 0xf3, 0xcc, 0xdb, 0xeb, 0xcf, 0x3f, 0xf5,
+ 0x86, 0x2e, 0x4d, 0xba, 0xa3, 0xae, 0xf6, 0x7f, 0xf4, 0xbd, 0x66, 0xe3,
+ 0xf2, 0x5c, 0x3a, 0xf1, 0xf4, 0x1c, 0xfe, 0xc8,
+};
+static const unsigned char kat1975_retbits[] = {
+ 0xfa, 0x04, 0xd2, 0xd7, 0x2d, 0x5b, 0xd0, 0x4e, 0x6b, 0x6a, 0x58, 0x5f,
+ 0x84, 0x85, 0x47, 0xcd, 0x84, 0xcb, 0x18, 0x5f, 0x18, 0x82, 0x50, 0x5f,
+ 0xa8, 0xc5, 0xd4, 0xad, 0xd1, 0xc8, 0xf5, 0x47, 0x5e, 0x83, 0xe2, 0x56,
+ 0xd8, 0xd6, 0xe4, 0x15, 0x08, 0x3c, 0x06, 0x5f, 0x8b, 0x06, 0x44, 0x0f,
+ 0xa1, 0x47, 0x4e, 0xf4, 0xe8, 0x49, 0x69, 0x36, 0x3d, 0xbd, 0xb3, 0x96,
+ 0x45, 0x40, 0x73, 0x75,
+};
+static const struct drbg_kat_pr_false kat1975_t = {
+ 9, kat1975_entropyin, kat1975_nonce, kat1975_persstr,
+ kat1975_entropyinreseed, kat1975_addinreseed, kat1975_addin0,
+ kat1975_addin1, kat1975_retbits
+};
+static const struct drbg_kat kat1975 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat1975_t
+};
+
+static const unsigned char kat1976_entropyin[] = {
+ 0x5a, 0xf6, 0xb6, 0x59, 0x08, 0xb5, 0x46, 0x1c, 0x07, 0xd4, 0x0e, 0xc4,
+ 0xc9, 0x8f, 0x7c, 0x26, 0x1c, 0x08, 0x2a, 0x4f, 0xb8, 0x5c, 0x1f, 0x04,
+ 0x0c, 0xf3, 0xc1, 0x8f, 0x78, 0x97, 0x96, 0x91,
+};
+static const unsigned char kat1976_nonce[] = {
+ 0x55, 0xd3, 0x3b, 0x62, 0xb4, 0x25, 0xfa, 0x0e, 0x10, 0x9f, 0x24, 0x33,
+ 0x77, 0x7c, 0xd9, 0x37,
+};
+static const unsigned char kat1976_persstr[] = {
+ 0x63, 0xa0, 0x58, 0xbd, 0x4c, 0x6c, 0x72, 0x69, 0x10, 0x61, 0xd2, 0x1a,
+ 0xc1, 0x69, 0xd2, 0xb3, 0x3d, 0x02, 0xdd, 0xc7, 0xb1, 0xde, 0x1c, 0x2c,
+ 0xa1, 0xe5, 0xf6, 0x10, 0xdc, 0x28, 0x76, 0x82,
+};
+static const unsigned char kat1976_entropyinreseed[] = {
+ 0xb0, 0x78, 0xb3, 0xaf, 0x06, 0x8d, 0x7e, 0x13, 0x28, 0xed, 0x8f, 0x00,
+ 0xa0, 0xe4, 0x2a, 0x65, 0x8c, 0x29, 0x2a, 0x47, 0x50, 0x43, 0x99, 0x6b,
+ 0x10, 0xb7, 0x05, 0x6e, 0x1e, 0x49, 0x71, 0x02,
+};
+static const unsigned char kat1976_addinreseed[] = {
+ 0x2a, 0x2a, 0xfe, 0x6e, 0x45, 0xf1, 0xf4, 0x8b, 0x7a, 0xb0, 0x43, 0x31,
+ 0x20, 0xb2, 0xb8, 0xa3, 0x7b, 0x79, 0xb2, 0xe6, 0xf2, 0xab, 0x92, 0x1f,
+ 0x12, 0xa5, 0xbc, 0xa9, 0xc6, 0x73, 0x64, 0xce,
+};
+static const unsigned char kat1976_addin0[] = {
+ 0x07, 0x2f, 0x69, 0xd0, 0x0d, 0xff, 0x6f, 0x5a, 0xb5, 0x95, 0x0c, 0xc9,
+ 0x54, 0xdc, 0x36, 0x37, 0xbd, 0x68, 0x55, 0x5a, 0x18, 0x0b, 0x89, 0xf1,
+ 0xc5, 0x2a, 0x1d, 0x47, 0x20, 0x1c, 0x02, 0xf3,
+};
+static const unsigned char kat1976_addin1[] = {
+ 0xf8, 0xd0, 0x6b, 0xdd, 0x54, 0x10, 0xfd, 0x66, 0x92, 0xda, 0x7e, 0x23,
+ 0xc6, 0x4b, 0x30, 0xd1, 0xde, 0x24, 0x0b, 0x34, 0x59, 0x18, 0x65, 0x3b,
+ 0x84, 0x5b, 0x2b, 0xf9, 0xea, 0xc1, 0x67, 0xbe,
+};
+static const unsigned char kat1976_retbits[] = {
+ 0x8f, 0xeb, 0x4e, 0x9d, 0x8a, 0x89, 0x95, 0x00, 0x76, 0x3f, 0x24, 0xc5,
+ 0x7c, 0xa1, 0x05, 0x2a, 0x44, 0x03, 0xc2, 0xce, 0xaa, 0x17, 0x96, 0xbb,
+ 0xc1, 0xeb, 0x1e, 0x26, 0xe8, 0x7f, 0xbe, 0x05, 0x21, 0xe7, 0xa3, 0x4d,
+ 0x00, 0x5f, 0x9d, 0x1e, 0x5e, 0x2c, 0x97, 0x6a, 0xbe, 0x71, 0xac, 0xa8,
+ 0xbd, 0xfa, 0x43, 0x4e, 0x80, 0x30, 0x49, 0xb7, 0x59, 0xae, 0x71, 0x7c,
+ 0xac, 0x67, 0x72, 0x1a,
+};
+static const struct drbg_kat_pr_false kat1976_t = {
+ 10, kat1976_entropyin, kat1976_nonce, kat1976_persstr,
+ kat1976_entropyinreseed, kat1976_addinreseed, kat1976_addin0,
+ kat1976_addin1, kat1976_retbits
+};
+static const struct drbg_kat kat1976 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat1976_t
+};
+
+static const unsigned char kat1977_entropyin[] = {
+ 0xf2, 0xe0, 0x47, 0x18, 0x70, 0xfe, 0x34, 0xf9, 0xb6, 0xb5, 0x9f, 0x92,
+ 0x9e, 0xc2, 0xc0, 0x92, 0x44, 0x9f, 0xa0, 0x87, 0x71, 0x88, 0x13, 0x11,
+ 0xc0, 0xe8, 0x1f, 0x7a, 0xf1, 0x37, 0x90, 0x5b,
+};
+static const unsigned char kat1977_nonce[] = {
+ 0x34, 0x37, 0x45, 0x6d, 0xb3, 0x5a, 0x5b, 0xda, 0x24, 0xae, 0x47, 0xbf,
+ 0x87, 0xc5, 0xbe, 0x30,
+};
+static const unsigned char kat1977_persstr[] = {
+ 0x1f, 0x8e, 0xd1, 0x6f, 0xa8, 0x6a, 0x24, 0x84, 0xa7, 0x2b, 0x35, 0xc1,
+ 0xf9, 0x70, 0x1a, 0xc6, 0x94, 0xab, 0xa0, 0x71, 0x88, 0xf6, 0x9a, 0x64,
+ 0x51, 0x82, 0xcd, 0xe4, 0x88, 0xca, 0x11, 0x38,
+};
+static const unsigned char kat1977_entropyinreseed[] = {
+ 0x7e, 0xa6, 0xcc, 0x5c, 0xa1, 0x9b, 0x0e, 0xe8, 0xdf, 0x42, 0xa3, 0x01,
+ 0x01, 0x87, 0x1d, 0x35, 0xbb, 0xc0, 0xc3, 0xdf, 0xec, 0xd4, 0x78, 0x65,
+ 0x57, 0x15, 0x79, 0xb1, 0xa8, 0x96, 0x22, 0x82,
+};
+static const unsigned char kat1977_addinreseed[] = {
+ 0xab, 0x49, 0x73, 0x3e, 0xe0, 0x6c, 0x08, 0xf8, 0x82, 0x7a, 0xd4, 0xf8,
+ 0x3b, 0x5b, 0x43, 0x8e, 0xc4, 0x43, 0xe1, 0x38, 0x90, 0x6c, 0xa6, 0x79,
+ 0x4c, 0xd8, 0x61, 0xc0, 0xc0, 0x28, 0x95, 0x1a,
+};
+static const unsigned char kat1977_addin0[] = {
+ 0xf7, 0x8c, 0xc7, 0xe9, 0x0d, 0xcd, 0x9c, 0xa2, 0x80, 0x8b, 0x85, 0x94,
+ 0x6b, 0x68, 0x6f, 0x50, 0x21, 0xb8, 0x99, 0x41, 0x3b, 0x7e, 0x34, 0x4c,
+ 0x38, 0x57, 0xc0, 0x09, 0x13, 0x5b, 0x83, 0x2a,
+};
+static const unsigned char kat1977_addin1[] = {
+ 0x3d, 0x8e, 0x21, 0xe4, 0x2c, 0x5c, 0x0e, 0xc9, 0x88, 0xc9, 0xd9, 0xc5,
+ 0x90, 0xc0, 0xff, 0xbe, 0x24, 0x70, 0x0a, 0xbe, 0xc7, 0xbb, 0xe9, 0x00,
+ 0x0f, 0x3b, 0x46, 0xae, 0xa7, 0x13, 0x2d, 0x2c,
+};
+static const unsigned char kat1977_retbits[] = {
+ 0x80, 0x7e, 0x47, 0x3b, 0xbe, 0xec, 0x28, 0x8e, 0x1e, 0x7b, 0xf5, 0x80,
+ 0x3e, 0x56, 0xea, 0x91, 0xb8, 0xa7, 0x52, 0xf4, 0xc9, 0xe9, 0x69, 0x4d,
+ 0xfb, 0x86, 0x9a, 0x13, 0x34, 0x48, 0x73, 0xf3, 0x79, 0xc6, 0xb6, 0x85,
+ 0xe5, 0x82, 0x38, 0x5b, 0x69, 0x50, 0x52, 0x3c, 0x2e, 0x93, 0xc0, 0x33,
+ 0x5a, 0x9f, 0x84, 0x56, 0x67, 0xeb, 0x99, 0x0c, 0xcf, 0x0f, 0xfd, 0xe1,
+ 0x6f, 0x92, 0x99, 0x18,
+};
+static const struct drbg_kat_pr_false kat1977_t = {
+ 11, kat1977_entropyin, kat1977_nonce, kat1977_persstr,
+ kat1977_entropyinreseed, kat1977_addinreseed, kat1977_addin0,
+ kat1977_addin1, kat1977_retbits
+};
+static const struct drbg_kat kat1977 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat1977_t
+};
+
+static const unsigned char kat1978_entropyin[] = {
+ 0x5b, 0xde, 0x92, 0xbb, 0xc8, 0x3a, 0x68, 0xe8, 0x2c, 0xef, 0x67, 0xcb,
+ 0x60, 0xd4, 0x7d, 0x93, 0x51, 0xc2, 0x33, 0xf3, 0xfc, 0x64, 0x60, 0xc8,
+ 0xfb, 0x61, 0xef, 0x55, 0x78, 0x82, 0xee, 0x26,
+};
+static const unsigned char kat1978_nonce[] = {
+ 0xf5, 0xc0, 0x72, 0xc0, 0x5d, 0x07, 0x44, 0x60, 0x30, 0x5e, 0x89, 0xf8,
+ 0xce, 0xcb, 0x5b, 0x9c,
+};
+static const unsigned char kat1978_persstr[] = {
+ 0xab, 0x1b, 0x19, 0x99, 0x78, 0xe5, 0x7f, 0x14, 0xb9, 0xe1, 0x9d, 0x81,
+ 0x63, 0x6b, 0xdd, 0xef, 0x53, 0xba, 0xe4, 0x2a, 0xa7, 0x8e, 0x96, 0xc7,
+ 0xb3, 0xf8, 0x57, 0x57, 0x8a, 0x4c, 0x6c, 0x3e,
+};
+static const unsigned char kat1978_entropyinreseed[] = {
+ 0x50, 0xd9, 0x0c, 0xe4, 0x74, 0x12, 0xca, 0xb9, 0x8e, 0x42, 0x21, 0xef,
+ 0xa1, 0xac, 0x7c, 0xdb, 0x78, 0x8e, 0x03, 0x3f, 0xdd, 0xa4, 0xff, 0xcc,
+ 0x62, 0x72, 0xe1, 0xb8, 0x97, 0xcc, 0x44, 0x12,
+};
+static const unsigned char kat1978_addinreseed[] = {
+ 0x46, 0x83, 0x9e, 0xc6, 0xc1, 0x03, 0xdf, 0x72, 0x2e, 0x85, 0x6e, 0x1a,
+ 0x10, 0x6b, 0xad, 0x55, 0xcd, 0x66, 0x01, 0xd1, 0x88, 0xd4, 0x10, 0x31,
+ 0xe1, 0x75, 0xda, 0x09, 0x7c, 0x01, 0x9a, 0x39,
+};
+static const unsigned char kat1978_addin0[] = {
+ 0xc3, 0xa3, 0xef, 0xb6, 0x95, 0xb6, 0x82, 0x78, 0xc6, 0x35, 0x10, 0xe0,
+ 0x79, 0xd9, 0x74, 0x06, 0xd9, 0xf5, 0x73, 0xe2, 0x1d, 0x7b, 0x35, 0xdd,
+ 0x44, 0x6a, 0x14, 0xce, 0x68, 0xfa, 0x0d, 0xea,
+};
+static const unsigned char kat1978_addin1[] = {
+ 0xb0, 0x42, 0x7c, 0x4f, 0x4d, 0x90, 0x85, 0x14, 0x41, 0x62, 0xbd, 0x6c,
+ 0x1d, 0xf9, 0x7c, 0x07, 0x44, 0x5f, 0xf2, 0xaf, 0xcb, 0x18, 0x67, 0x56,
+ 0xf3, 0x4c, 0x1f, 0x19, 0x24, 0xdd, 0x40, 0x3a,
+};
+static const unsigned char kat1978_retbits[] = {
+ 0x23, 0x84, 0x35, 0xbf, 0xb2, 0x6f, 0x01, 0x4c, 0x76, 0x52, 0xb5, 0xe6,
+ 0x70, 0x88, 0x09, 0x43, 0x5c, 0xa0, 0x58, 0xf4, 0xf3, 0xb6, 0xa0, 0x30,
+ 0xed, 0x83, 0xaa, 0x41, 0x52, 0xb5, 0x2c, 0xe0, 0xbb, 0x03, 0xc0, 0xec,
+ 0x49, 0xfc, 0x03, 0x26, 0xcf, 0x5c, 0xab, 0xa2, 0x96, 0xb4, 0xc9, 0x18,
+ 0xb1, 0x8e, 0x0b, 0xdd, 0x89, 0xef, 0x33, 0x81, 0x79, 0xb7, 0x2b, 0x6c,
+ 0xc0, 0xad, 0x6d, 0xe8,
+};
+static const struct drbg_kat_pr_false kat1978_t = {
+ 12, kat1978_entropyin, kat1978_nonce, kat1978_persstr,
+ kat1978_entropyinreseed, kat1978_addinreseed, kat1978_addin0,
+ kat1978_addin1, kat1978_retbits
+};
+static const struct drbg_kat kat1978 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat1978_t
+};
+
+static const unsigned char kat1979_entropyin[] = {
+ 0x48, 0x0b, 0xd3, 0x97, 0x3d, 0xc0, 0x4d, 0xfa, 0xac, 0x13, 0x40, 0x35,
+ 0xfa, 0x45, 0xf2, 0xbb, 0x92, 0x20, 0x0d, 0xf8, 0xec, 0x46, 0x8c, 0x23,
+ 0xc5, 0xb9, 0x54, 0xd0, 0x69, 0x3e, 0xea, 0x88,
+};
+static const unsigned char kat1979_nonce[] = {
+ 0xd4, 0xf0, 0x13, 0xd5, 0x87, 0x73, 0xe7, 0x6e, 0xf5, 0x21, 0x97, 0xa6,
+ 0x8f, 0xba, 0x4a, 0x31,
+};
+static const unsigned char kat1979_persstr[] = {
+ 0xd7, 0x04, 0xf9, 0xe2, 0xfc, 0x2b, 0x24, 0xa0, 0xbe, 0x98, 0xa6, 0xeb,
+ 0x44, 0x3a, 0x7f, 0x99, 0xcf, 0x8c, 0x1b, 0xaf, 0x62, 0x97, 0x0c, 0xcd,
+ 0x0f, 0x1e, 0x92, 0x9a, 0x8d, 0x2e, 0x47, 0x5b,
+};
+static const unsigned char kat1979_entropyinreseed[] = {
+ 0x1d, 0xd9, 0x13, 0x9e, 0x18, 0xc3, 0xb8, 0xd5, 0x41, 0xff, 0x47, 0xa5,
+ 0x49, 0x5f, 0x13, 0xa7, 0x2a, 0x35, 0x34, 0xa9, 0xee, 0x4a, 0x12, 0x25,
+ 0x42, 0xee, 0x33, 0x06, 0x51, 0x28, 0xd5, 0x7b,
+};
+static const unsigned char kat1979_addinreseed[] = {
+ 0x1b, 0x1d, 0xde, 0x5e, 0x70, 0x64, 0x89, 0x1a, 0xcd, 0x5c, 0xe8, 0x0e,
+ 0xb8, 0x72, 0x64, 0xa3, 0x91, 0x53, 0x40, 0xd2, 0x25, 0xbb, 0xda, 0x81,
+ 0xfa, 0x3d, 0x79, 0xcb, 0x25, 0x02, 0x7d, 0x0c,
+};
+static const unsigned char kat1979_addin0[] = {
+ 0x71, 0x19, 0x22, 0x6c, 0xd5, 0xf2, 0xcf, 0x7a, 0x00, 0x74, 0x61, 0x49,
+ 0x33, 0x5c, 0x56, 0x7e, 0x88, 0x63, 0x4a, 0x0b, 0x82, 0x86, 0xfd, 0xdb,
+ 0xd1, 0x2a, 0xb7, 0x6c, 0x3f, 0x05, 0xe7, 0x7a,
+};
+static const unsigned char kat1979_addin1[] = {
+ 0x2f, 0xf3, 0x83, 0x88, 0x24, 0xfb, 0x03, 0x20, 0xa8, 0x33, 0x23, 0x35,
+ 0x8b, 0x3a, 0x0b, 0x50, 0x1b, 0x06, 0x0f, 0x6e, 0xb1, 0x68, 0xd0, 0xdd,
+ 0x56, 0xee, 0xd4, 0x03, 0xf3, 0x61, 0xf3, 0x1b,
+};
+static const unsigned char kat1979_retbits[] = {
+ 0x48, 0x02, 0xd4, 0xfa, 0x85, 0x47, 0x93, 0xf9, 0xef, 0xf0, 0x2f, 0xca,
+ 0x1d, 0x77, 0x68, 0x75, 0x98, 0x86, 0xcf, 0xaf, 0x80, 0x7e, 0x69, 0x43,
+ 0x18, 0x35, 0x2f, 0x84, 0x61, 0xf4, 0x78, 0xc4, 0xc9, 0x83, 0xa6, 0xf6,
+ 0x05, 0xa3, 0x21, 0x82, 0xb5, 0xbc, 0x01, 0x03, 0x46, 0x61, 0x4a, 0x5f,
+ 0xb2, 0xb8, 0x0c, 0xea, 0xd4, 0x7a, 0xc7, 0x54, 0x0a, 0x8f, 0x91, 0x3e,
+ 0x53, 0xd0, 0x54, 0xbb,
+};
+static const struct drbg_kat_pr_false kat1979_t = {
+ 13, kat1979_entropyin, kat1979_nonce, kat1979_persstr,
+ kat1979_entropyinreseed, kat1979_addinreseed, kat1979_addin0,
+ kat1979_addin1, kat1979_retbits
+};
+static const struct drbg_kat kat1979 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat1979_t
+};
+
+static const unsigned char kat1980_entropyin[] = {
+ 0x7f, 0x72, 0x64, 0xa5, 0x7c, 0x98, 0x51, 0xcb, 0xc7, 0xd0, 0x17, 0x10,
+ 0x7e, 0x0e, 0xdb, 0xd5, 0x54, 0xae, 0xfd, 0x5a, 0x98, 0x48, 0x3e, 0xe7,
+ 0x6f, 0xa5, 0xef, 0x17, 0x74, 0x5e, 0xec, 0xb4,
+};
+static const unsigned char kat1980_nonce[] = {
+ 0xe6, 0x24, 0xbe, 0x62, 0x8f, 0x27, 0x81, 0x7c, 0x18, 0x06, 0xad, 0x40,
+ 0x64, 0x0b, 0x57, 0x70,
+};
+static const unsigned char kat1980_persstr[] = {
+ 0x8c, 0x76, 0x9b, 0x07, 0x24, 0xb3, 0x81, 0x3e, 0x71, 0x57, 0x3d, 0x50,
+ 0x66, 0x98, 0x89, 0x7d, 0x4d, 0xe7, 0xe6, 0xc9, 0x6c, 0x1f, 0xb3, 0xb1,
+ 0x03, 0xde, 0x29, 0xa0, 0x0b, 0x3d, 0x5f, 0x32,
+};
+static const unsigned char kat1980_entropyinreseed[] = {
+ 0xf1, 0x3e, 0x8b, 0xc2, 0xc1, 0x9f, 0x0a, 0xb7, 0x39, 0x87, 0xce, 0x58,
+ 0x7c, 0x66, 0x64, 0x01, 0xe1, 0xc3, 0xd0, 0x1a, 0x76, 0xde, 0x66, 0x85,
+ 0xb7, 0x00, 0x63, 0x8f, 0x48, 0x60, 0xbb, 0x7d,
+};
+static const unsigned char kat1980_addinreseed[] = {
+ 0x02, 0x92, 0x2d, 0x34, 0xeb, 0x86, 0x13, 0xd5, 0xc8, 0x80, 0x41, 0xf4,
+ 0x46, 0xb1, 0xb8, 0x76, 0xef, 0x53, 0x45, 0x45, 0xb8, 0x74, 0x8b, 0x8a,
+ 0x4c, 0xb8, 0xe1, 0x0c, 0x3d, 0x9a, 0x2a, 0xb9,
+};
+static const unsigned char kat1980_addin0[] = {
+ 0xd6, 0xb7, 0x61, 0xc8, 0x35, 0x13, 0x40, 0x5c, 0x3b, 0x25, 0x14, 0x9d,
+ 0x47, 0x7b, 0x35, 0xb3, 0xcd, 0x9b, 0x28, 0x39, 0xdc, 0xaa, 0xa0, 0x71,
+ 0x74, 0xba, 0x94, 0x88, 0xf0, 0x0d, 0xdd, 0x89,
+};
+static const unsigned char kat1980_addin1[] = {
+ 0x50, 0x88, 0x6c, 0x50, 0x3f, 0xd4, 0x86, 0x4c, 0xe3, 0x27, 0x10, 0xf8,
+ 0x3b, 0xd6, 0x75, 0xb6, 0x70, 0x37, 0xc4, 0x5e, 0x68, 0xca, 0x8e, 0x54,
+ 0x11, 0x66, 0xca, 0xee, 0x95, 0x79, 0x69, 0xa4,
+};
+static const unsigned char kat1980_retbits[] = {
+ 0x5f, 0x07, 0x9f, 0xfb, 0xde, 0xca, 0x18, 0xda, 0x7b, 0x13, 0xcc, 0x71,
+ 0x0e, 0xbc, 0xd4, 0xae, 0xdf, 0x7f, 0x47, 0x5c, 0x2a, 0x7d, 0x96, 0x9b,
+ 0x4a, 0x1e, 0xff, 0x3a, 0x33, 0x48, 0xb5, 0x77, 0xcc, 0x2b, 0xa8, 0xd9,
+ 0x26, 0x11, 0x37, 0x09, 0x70, 0xc9, 0xbf, 0x02, 0x2d, 0xcf, 0x09, 0xdb,
+ 0xdb, 0xc0, 0xa4, 0x42, 0xa0, 0xac, 0xdf, 0xd3, 0x1a, 0xd9, 0x25, 0x7c,
+ 0x62, 0xce, 0xa1, 0xab,
+};
+static const struct drbg_kat_pr_false kat1980_t = {
+ 14, kat1980_entropyin, kat1980_nonce, kat1980_persstr,
+ kat1980_entropyinreseed, kat1980_addinreseed, kat1980_addin0,
+ kat1980_addin1, kat1980_retbits
+};
+static const struct drbg_kat kat1980 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat1980_t
+};
+
+static const unsigned char kat1981_entropyin[] = {
+ 0xa8, 0x9d, 0x08, 0x18, 0x5b, 0x53, 0x9a, 0x83, 0x0b, 0x1e, 0x9b, 0x74,
+ 0xc0, 0x1f, 0x59, 0xe2, 0xb7, 0x5b, 0xd2, 0xe2, 0xcb, 0xcf, 0x95, 0xc1,
+ 0x85, 0xa8, 0x3a, 0x80, 0x69, 0x43, 0x9e, 0x42,
+};
+static const unsigned char kat1981_nonce[] = {
+ 0xc6, 0x75, 0xe3, 0xb6, 0x34, 0xb0, 0x75, 0xdb, 0x09, 0x78, 0x9e, 0x5d,
+ 0x8a, 0x39, 0xc5, 0xe8,
+};
+static const unsigned char kat1981_persstr[] = {0};
+static const unsigned char kat1981_entropyinreseed[] = {
+ 0x0e, 0xd8, 0xe6, 0x3b, 0x82, 0x3a, 0xf5, 0x47, 0x6d, 0xcb, 0x97, 0x02,
+ 0xda, 0xf4, 0x61, 0x85, 0xd3, 0xf4, 0x95, 0x3d, 0xf7, 0x04, 0x74, 0x9d,
+ 0x3d, 0xea, 0x2f, 0xbe, 0x0c, 0x7a, 0x46, 0xdd,
+};
+static const unsigned char kat1981_addinreseed[] = {0};
+static const unsigned char kat1981_addin0[] = {0};
+static const unsigned char kat1981_addin1[] = {0};
+static const unsigned char kat1981_retbits[] = {
+ 0x61, 0xf1, 0xfb, 0x64, 0xc0, 0x66, 0x87, 0x47, 0xd2, 0x70, 0xd4, 0xfa,
+ 0xb1, 0x7c, 0x34, 0xdb, 0x3a, 0x69, 0x82, 0x9e, 0xa0, 0x8f, 0xe4, 0x3e,
+ 0xc3, 0x59, 0xae, 0x17, 0x4f, 0xfb, 0x0c, 0xaa, 0xe8, 0xbc, 0xba, 0x3a,
+ 0x4f, 0xff, 0xb5, 0xb2, 0x9b, 0x90, 0x0f, 0x0e, 0x2e, 0xf2, 0x39, 0x4c,
+ 0x39, 0x29, 0x2b, 0xf2, 0x95, 0x62, 0x3f, 0x89, 0x46, 0x17, 0xce, 0x95,
+ 0x00, 0x22, 0x8b, 0xb4,
+};
+static const struct drbg_kat_pr_false kat1981_t = {
+ 0, kat1981_entropyin, kat1981_nonce, kat1981_persstr,
+ kat1981_entropyinreseed, kat1981_addinreseed, kat1981_addin0,
+ kat1981_addin1, kat1981_retbits
+};
+static const struct drbg_kat kat1981 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1981_t
+};
+
+static const unsigned char kat1982_entropyin[] = {
+ 0x00, 0xc3, 0x12, 0xcb, 0xa2, 0xec, 0x5d, 0x72, 0xf9, 0x54, 0x9e, 0x2a,
+ 0x14, 0x14, 0xc9, 0x73, 0xf4, 0xe9, 0xed, 0x70, 0x40, 0x79, 0x71, 0xf5,
+ 0x8c, 0xcb, 0xcc, 0x85, 0x72, 0x0f, 0x1f, 0xa5,
+};
+static const unsigned char kat1982_nonce[] = {
+ 0x03, 0x1e, 0x82, 0xc6, 0x0b, 0xe9, 0x64, 0x98, 0x70, 0x5e, 0x6d, 0xab,
+ 0xf4, 0xc5, 0x50, 0xb7,
+};
+static const unsigned char kat1982_persstr[] = {0};
+static const unsigned char kat1982_entropyinreseed[] = {
+ 0x08, 0x4b, 0x11, 0xec, 0xae, 0xfe, 0x51, 0xdb, 0xb7, 0xa2, 0x65, 0x1f,
+ 0x45, 0xb0, 0xe1, 0x81, 0x92, 0x8c, 0x65, 0xce, 0xc5, 0x75, 0xf7, 0x63,
+ 0x0d, 0xbf, 0x9f, 0x49, 0xc0, 0x84, 0xa5, 0x84,
+};
+static const unsigned char kat1982_addinreseed[] = {0};
+static const unsigned char kat1982_addin0[] = {0};
+static const unsigned char kat1982_addin1[] = {0};
+static const unsigned char kat1982_retbits[] = {
+ 0xeb, 0x2c, 0x76, 0xed, 0x3e, 0x94, 0x67, 0xec, 0xf9, 0xfa, 0x64, 0x2b,
+ 0x87, 0x2c, 0xbd, 0xf3, 0x40, 0xa2, 0xe1, 0xf7, 0x11, 0x6f, 0x5b, 0xa5,
+ 0x9e, 0xcc, 0xef, 0x7b, 0xe8, 0x27, 0x65, 0x62, 0x0f, 0xa3, 0x50, 0x7a,
+ 0x3f, 0x87, 0x0b, 0xfc, 0x85, 0x74, 0x04, 0x1d, 0xbb, 0x9e, 0x7b, 0x8a,
+ 0x0d, 0xb6, 0x90, 0x6b, 0xde, 0xe0, 0xbc, 0x5d, 0xc1, 0x44, 0x92, 0x2d,
+ 0x67, 0x0c, 0xee, 0xd4,
+};
+static const struct drbg_kat_pr_false kat1982_t = {
+ 1, kat1982_entropyin, kat1982_nonce, kat1982_persstr,
+ kat1982_entropyinreseed, kat1982_addinreseed, kat1982_addin0,
+ kat1982_addin1, kat1982_retbits
+};
+static const struct drbg_kat kat1982 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1982_t
+};
+
+static const unsigned char kat1983_entropyin[] = {
+ 0x42, 0xcf, 0x0a, 0x3b, 0x9f, 0x08, 0x1f, 0x46, 0x94, 0x5c, 0x37, 0x82,
+ 0x2c, 0x4c, 0xfa, 0x65, 0xcb, 0x6f, 0xb6, 0x24, 0xfb, 0xc5, 0x6f, 0xd7,
+ 0x12, 0x0c, 0x15, 0x9f, 0xc5, 0x58, 0x52, 0x83,
+};
+static const unsigned char kat1983_nonce[] = {
+ 0x96, 0xe4, 0xb7, 0xf6, 0x61, 0xf0, 0xe1, 0xaa, 0x7e, 0x35, 0x61, 0xd0,
+ 0x6b, 0xac, 0x14, 0x30,
+};
+static const unsigned char kat1983_persstr[] = {0};
+static const unsigned char kat1983_entropyinreseed[] = {
+ 0x29, 0x3e, 0x30, 0x9d, 0xbc, 0x4b, 0x90, 0xf8, 0x05, 0xad, 0x2e, 0x7d,
+ 0xd4, 0x06, 0x29, 0x10, 0x02, 0xc2, 0x83, 0x84, 0xcb, 0x29, 0xbf, 0xc7,
+ 0x2c, 0x30, 0x5a, 0x93, 0xdb, 0x6c, 0x50, 0x2a,
+};
+static const unsigned char kat1983_addinreseed[] = {0};
+static const unsigned char kat1983_addin0[] = {0};
+static const unsigned char kat1983_addin1[] = {0};
+static const unsigned char kat1983_retbits[] = {
+ 0x94, 0x85, 0x20, 0x8c, 0x00, 0x2e, 0x4e, 0x27, 0xf8, 0x0b, 0xdf, 0xed,
+ 0x3c, 0x1b, 0xf3, 0x27, 0xe3, 0xc0, 0xf4, 0xf0, 0x74, 0xfa, 0x8f, 0x60,
+ 0xee, 0xd4, 0x07, 0x52, 0xc2, 0x88, 0xc5, 0x39, 0x8a, 0x77, 0x64, 0x3d,
+ 0xd9, 0xa7, 0xed, 0x50, 0x81, 0x00, 0xb0, 0x47, 0xb8, 0x2d, 0x42, 0x9f,
+ 0x3b, 0x18, 0x06, 0xf0, 0x50, 0xe0, 0xad, 0x57, 0xf9, 0x71, 0x41, 0xbb,
+ 0x7a, 0x5d, 0x99, 0xc7,
+};
+static const struct drbg_kat_pr_false kat1983_t = {
+ 2, kat1983_entropyin, kat1983_nonce, kat1983_persstr,
+ kat1983_entropyinreseed, kat1983_addinreseed, kat1983_addin0,
+ kat1983_addin1, kat1983_retbits
+};
+static const struct drbg_kat kat1983 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1983_t
+};
+
+static const unsigned char kat1984_entropyin[] = {
+ 0x4d, 0x53, 0xcc, 0xa2, 0x56, 0x57, 0x79, 0xf6, 0xcf, 0x96, 0x23, 0x67,
+ 0xbb, 0x37, 0x93, 0xb0, 0xfc, 0xa3, 0xfe, 0xaf, 0xee, 0x09, 0xdf, 0xd7,
+ 0xd3, 0xb4, 0xd9, 0xbf, 0x0b, 0xa5, 0xaa, 0xfd,
+};
+static const unsigned char kat1984_nonce[] = {
+ 0x9a, 0x51, 0x81, 0x4c, 0x35, 0x7e, 0xe8, 0x74, 0x41, 0xfe, 0x02, 0x77,
+ 0x60, 0x93, 0x10, 0x33,
+};
+static const unsigned char kat1984_persstr[] = {0};
+static const unsigned char kat1984_entropyinreseed[] = {
+ 0xda, 0x0d, 0xe5, 0xa7, 0xa5, 0x4d, 0xc3, 0xa6, 0xc8, 0x74, 0xd8, 0xe5,
+ 0xb3, 0x1c, 0x7c, 0xd2, 0xc6, 0xd2, 0xb5, 0x83, 0x44, 0x32, 0x1e, 0xcf,
+ 0xb1, 0xf9, 0x8d, 0x42, 0x80, 0x7d, 0x64, 0x47,
+};
+static const unsigned char kat1984_addinreseed[] = {0};
+static const unsigned char kat1984_addin0[] = {0};
+static const unsigned char kat1984_addin1[] = {0};
+static const unsigned char kat1984_retbits[] = {
+ 0x72, 0x74, 0xb2, 0x27, 0xd0, 0x24, 0x47, 0x5d, 0x52, 0x48, 0xcb, 0xf5,
+ 0x67, 0x91, 0xc9, 0xbe, 0xf9, 0x18, 0xe2, 0x5e, 0x28, 0x65, 0x9e, 0x6b,
+ 0xcc, 0x7d, 0x04, 0x50, 0xe9, 0xc2, 0x5b, 0x81, 0xc5, 0xb6, 0x44, 0x26,
+ 0x61, 0xd5, 0x9f, 0x97, 0x2e, 0xe9, 0x59, 0x45, 0x28, 0x97, 0x9a, 0x0d,
+ 0x92, 0xc1, 0x4d, 0xc9, 0x3f, 0x4a, 0xdd, 0xdb, 0x03, 0xea, 0x48, 0xb1,
+ 0x5d, 0xc6, 0x1c, 0xf3,
+};
+static const struct drbg_kat_pr_false kat1984_t = {
+ 3, kat1984_entropyin, kat1984_nonce, kat1984_persstr,
+ kat1984_entropyinreseed, kat1984_addinreseed, kat1984_addin0,
+ kat1984_addin1, kat1984_retbits
+};
+static const struct drbg_kat kat1984 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1984_t
+};
+
+static const unsigned char kat1985_entropyin[] = {
+ 0x15, 0x97, 0xc3, 0x5f, 0x95, 0xf9, 0x4f, 0x12, 0xbb, 0x94, 0xa1, 0xa4,
+ 0x7a, 0x06, 0x96, 0xf4, 0x68, 0xa8, 0x72, 0x5a, 0x67, 0x93, 0xd4, 0xd9,
+ 0x84, 0x8a, 0xa0, 0x6f, 0x2c, 0xa0, 0x86, 0x82,
+};
+static const unsigned char kat1985_nonce[] = {
+ 0x44, 0xdd, 0x56, 0x83, 0x9e, 0xa1, 0x93, 0xe5, 0xa1, 0xfc, 0x34, 0xe9,
+ 0xc6, 0x11, 0x75, 0x6b,
+};
+static const unsigned char kat1985_persstr[] = {0};
+static const unsigned char kat1985_entropyinreseed[] = {
+ 0xae, 0x7e, 0x17, 0x93, 0xdb, 0xfe, 0xc6, 0x08, 0x62, 0xc0, 0xbc, 0x91,
+ 0x29, 0x3d, 0x69, 0x22, 0x15, 0x93, 0x13, 0x08, 0x48, 0x10, 0xcc, 0x50,
+ 0x69, 0xb7, 0x5d, 0xf1, 0xcb, 0x87, 0x83, 0x2a,
+};
+static const unsigned char kat1985_addinreseed[] = {0};
+static const unsigned char kat1985_addin0[] = {0};
+static const unsigned char kat1985_addin1[] = {0};
+static const unsigned char kat1985_retbits[] = {
+ 0x4f, 0x7c, 0xa3, 0x9c, 0x8e, 0x90, 0x6d, 0x12, 0x6f, 0xdc, 0xeb, 0xaa,
+ 0x89, 0xa2, 0x8c, 0xeb, 0x63, 0x8b, 0x3d, 0xd5, 0xb9, 0xa2, 0xaf, 0x0e,
+ 0x27, 0x08, 0xb4, 0xbc, 0x5f, 0xfb, 0x8c, 0x28, 0xeb, 0xa3, 0xd4, 0x2b,
+ 0x3b, 0xc7, 0x49, 0x8e, 0x4c, 0xd3, 0x71, 0x67, 0x20, 0x49, 0xdd, 0x9b,
+ 0x83, 0x47, 0x2e, 0x1e, 0x47, 0xb9, 0x8d, 0xf7, 0x7f, 0x15, 0xd1, 0x44,
+ 0xad, 0xa6, 0x78, 0x8d,
+};
+static const struct drbg_kat_pr_false kat1985_t = {
+ 4, kat1985_entropyin, kat1985_nonce, kat1985_persstr,
+ kat1985_entropyinreseed, kat1985_addinreseed, kat1985_addin0,
+ kat1985_addin1, kat1985_retbits
+};
+static const struct drbg_kat kat1985 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1985_t
+};
+
+static const unsigned char kat1986_entropyin[] = {
+ 0xb8, 0x7d, 0xaa, 0x16, 0x72, 0x94, 0xe2, 0x73, 0xea, 0xd3, 0x15, 0x09,
+ 0x28, 0xc7, 0x58, 0x3c, 0xf8, 0x08, 0xf3, 0x34, 0xad, 0xbe, 0x8c, 0x56,
+ 0xb1, 0x81, 0xfc, 0xf0, 0x32, 0x5d, 0x8f, 0xc5,
+};
+static const unsigned char kat1986_nonce[] = {
+ 0x98, 0xc0, 0x39, 0xbc, 0x42, 0x18, 0xa3, 0xcd, 0x76, 0x3e, 0x40, 0xb7,
+ 0xb6, 0x5e, 0x8a, 0xa5,
+};
+static const unsigned char kat1986_persstr[] = {0};
+static const unsigned char kat1986_entropyinreseed[] = {
+ 0x7c, 0xd8, 0x99, 0xb6, 0xd3, 0x76, 0x2f, 0xa4, 0xce, 0x27, 0x3b, 0x81,
+ 0x11, 0x4b, 0x08, 0x5d, 0x6f, 0x10, 0x8c, 0xec, 0xd0, 0x1e, 0x76, 0x06,
+ 0xb6, 0x40, 0x46, 0x80, 0x7e, 0x63, 0x44, 0xe6,
+};
+static const unsigned char kat1986_addinreseed[] = {0};
+static const unsigned char kat1986_addin0[] = {0};
+static const unsigned char kat1986_addin1[] = {0};
+static const unsigned char kat1986_retbits[] = {
+ 0x68, 0xc3, 0xa6, 0x14, 0x38, 0xc0, 0x00, 0x96, 0xc1, 0x59, 0x17, 0xe7,
+ 0x94, 0x1f, 0xda, 0x04, 0x94, 0x5e, 0xc5, 0x49, 0x47, 0x91, 0x42, 0xe8,
+ 0x4c, 0x7f, 0x29, 0xa1, 0x47, 0x6c, 0x37, 0x20, 0x7c, 0xed, 0x72, 0xf8,
+ 0x60, 0x0c, 0x1c, 0x64, 0x61, 0x3c, 0x30, 0xa9, 0x16, 0x57, 0x81, 0xa2,
+ 0xd2, 0xef, 0x17, 0x60, 0x6c, 0xd5, 0xcd, 0xb6, 0xfe, 0x59, 0x0a, 0x2c,
+ 0xbf, 0x99, 0x22, 0x43,
+};
+static const struct drbg_kat_pr_false kat1986_t = {
+ 5, kat1986_entropyin, kat1986_nonce, kat1986_persstr,
+ kat1986_entropyinreseed, kat1986_addinreseed, kat1986_addin0,
+ kat1986_addin1, kat1986_retbits
+};
+static const struct drbg_kat kat1986 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1986_t
+};
+
+static const unsigned char kat1987_entropyin[] = {
+ 0x81, 0x61, 0xeb, 0x93, 0x5e, 0xa9, 0x0c, 0xcc, 0xec, 0xfc, 0xed, 0x72,
+ 0xa1, 0x0d, 0x41, 0xee, 0xbd, 0xc7, 0x5e, 0x5b, 0x1e, 0xcc, 0x1f, 0x0d,
+ 0x8a, 0x08, 0x32, 0x66, 0x35, 0xd0, 0x5f, 0x11,
+};
+static const unsigned char kat1987_nonce[] = {
+ 0x1f, 0x9c, 0xda, 0xc6, 0xae, 0xc9, 0xe7, 0x42, 0x72, 0xf4, 0x0a, 0x52,
+ 0x87, 0x48, 0x89, 0x78,
+};
+static const unsigned char kat1987_persstr[] = {0};
+static const unsigned char kat1987_entropyinreseed[] = {
+ 0xd1, 0x34, 0x14, 0xac, 0x42, 0x2e, 0x7c, 0x35, 0x97, 0x03, 0x06, 0x51,
+ 0x00, 0xd0, 0x6e, 0x64, 0xc7, 0x1d, 0xaa, 0x49, 0x98, 0xe6, 0x5b, 0xa4,
+ 0xca, 0x71, 0x70, 0xb3, 0x14, 0x18, 0x81, 0x5e,
+};
+static const unsigned char kat1987_addinreseed[] = {0};
+static const unsigned char kat1987_addin0[] = {0};
+static const unsigned char kat1987_addin1[] = {0};
+static const unsigned char kat1987_retbits[] = {
+ 0x63, 0xa3, 0x1c, 0xdb, 0xcd, 0x3d, 0x10, 0xf9, 0xa3, 0x66, 0x7f, 0xd5,
+ 0x7a, 0x28, 0x1d, 0xf5, 0x23, 0xac, 0x6f, 0xdf, 0xdc, 0xa9, 0x3f, 0x3a,
+ 0xa5, 0x7b, 0x04, 0x71, 0x62, 0x24, 0x01, 0xe2, 0x03, 0xd5, 0xb0, 0xf2,
+ 0x84, 0x6e, 0x5e, 0xae, 0x9a, 0xd0, 0x1e, 0xf6, 0xec, 0x8c, 0x5b, 0x6c,
+ 0xb0, 0xaf, 0xa1, 0xbd, 0x24, 0x48, 0x06, 0xd0, 0x63, 0x0b, 0x1a, 0x23,
+ 0x42, 0xf3, 0x60, 0x54,
+};
+static const struct drbg_kat_pr_false kat1987_t = {
+ 6, kat1987_entropyin, kat1987_nonce, kat1987_persstr,
+ kat1987_entropyinreseed, kat1987_addinreseed, kat1987_addin0,
+ kat1987_addin1, kat1987_retbits
+};
+static const struct drbg_kat kat1987 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1987_t
+};
+
+static const unsigned char kat1988_entropyin[] = {
+ 0xb8, 0xfd, 0xe0, 0xb3, 0xbc, 0x46, 0x08, 0x47, 0x78, 0x29, 0xf2, 0x2e,
+ 0xf3, 0xec, 0x37, 0xe6, 0x65, 0xe6, 0xea, 0x75, 0x35, 0xfa, 0xdb, 0xbc,
+ 0x65, 0x91, 0xfc, 0xae, 0x02, 0x43, 0x1f, 0xeb,
+};
+static const unsigned char kat1988_nonce[] = {
+ 0x20, 0xd5, 0x96, 0xab, 0x90, 0x2a, 0x88, 0x04, 0x76, 0x03, 0x24, 0x16,
+ 0xb2, 0xe8, 0x0c, 0x35,
+};
+static const unsigned char kat1988_persstr[] = {0};
+static const unsigned char kat1988_entropyinreseed[] = {
+ 0x47, 0xfb, 0x33, 0x79, 0xe4, 0xf0, 0xd4, 0x6f, 0xe8, 0x2f, 0xaf, 0x1a,
+ 0xcf, 0xe0, 0x55, 0xa5, 0x7f, 0x63, 0xf9, 0x18, 0x70, 0xc1, 0x3f, 0xbe,
+ 0x16, 0xc4, 0x0d, 0xe4, 0x13, 0x68, 0x47, 0x7c,
+};
+static const unsigned char kat1988_addinreseed[] = {0};
+static const unsigned char kat1988_addin0[] = {0};
+static const unsigned char kat1988_addin1[] = {0};
+static const unsigned char kat1988_retbits[] = {
+ 0xfb, 0x59, 0xea, 0xf7, 0xe2, 0x3b, 0x7d, 0xef, 0x45, 0x1f, 0x21, 0xa3,
+ 0xe1, 0xa7, 0xdc, 0x02, 0xa4, 0x8d, 0xfb, 0x29, 0x09, 0x33, 0x2a, 0xe9,
+ 0x49, 0xd7, 0x17, 0xd1, 0x26, 0x4f, 0x86, 0xe9, 0xcf, 0x9a, 0xc4, 0x76,
+ 0xa1, 0x56, 0x79, 0x25, 0x91, 0x74, 0xd4, 0xa7, 0x7b, 0x50, 0x52, 0x5e,
+ 0x03, 0x03, 0x45, 0xfb, 0x9b, 0x04, 0xa7, 0x10, 0x1e, 0xad, 0x5f, 0x8b,
+ 0xd7, 0x55, 0x74, 0x9c,
+};
+static const struct drbg_kat_pr_false kat1988_t = {
+ 7, kat1988_entropyin, kat1988_nonce, kat1988_persstr,
+ kat1988_entropyinreseed, kat1988_addinreseed, kat1988_addin0,
+ kat1988_addin1, kat1988_retbits
+};
+static const struct drbg_kat kat1988 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1988_t
+};
+
+static const unsigned char kat1989_entropyin[] = {
+ 0xb7, 0x72, 0xf6, 0x63, 0xad, 0x91, 0xc0, 0xf7, 0x2f, 0x83, 0x5b, 0xb0,
+ 0xcd, 0xc9, 0xab, 0x22, 0xa3, 0x90, 0xc0, 0x57, 0x50, 0x0d, 0x2c, 0xdc,
+ 0xdd, 0x0b, 0x29, 0xf9, 0xab, 0xcd, 0x01, 0xd7,
+};
+static const unsigned char kat1989_nonce[] = {
+ 0x97, 0x31, 0x68, 0x1c, 0xf5, 0x60, 0xd6, 0x0c, 0x2b, 0x97, 0x86, 0xa6,
+ 0x61, 0x89, 0x95, 0xb9,
+};
+static const unsigned char kat1989_persstr[] = {0};
+static const unsigned char kat1989_entropyinreseed[] = {
+ 0x2c, 0x93, 0xce, 0xbe, 0x26, 0x6c, 0x48, 0x91, 0x22, 0x0f, 0x49, 0x01,
+ 0x79, 0xb0, 0x40, 0xe4, 0x1d, 0x41, 0x74, 0x24, 0x8c, 0x90, 0x0f, 0x2d,
+ 0xd2, 0xbb, 0x32, 0xfb, 0xce, 0x04, 0x35, 0xc6,
+};
+static const unsigned char kat1989_addinreseed[] = {0};
+static const unsigned char kat1989_addin0[] = {0};
+static const unsigned char kat1989_addin1[] = {0};
+static const unsigned char kat1989_retbits[] = {
+ 0xef, 0x87, 0xf8, 0x20, 0x56, 0x6c, 0xd8, 0x2b, 0x66, 0x4c, 0x3d, 0x40,
+ 0xa1, 0x18, 0x6a, 0xc8, 0x05, 0x13, 0x53, 0x5c, 0x3a, 0x2b, 0x6e, 0x25,
+ 0x8f, 0x6a, 0x76, 0x4d, 0xd7, 0xb2, 0x92, 0xa0, 0x17, 0xec, 0xbb, 0x9d,
+ 0x7b, 0xdf, 0x34, 0x09, 0x99, 0x8a, 0xe6, 0xb3, 0xbc, 0x31, 0xc1, 0xe4,
+ 0xd4, 0xeb, 0x87, 0x6b, 0x6b, 0x0c, 0x5c, 0xeb, 0x97, 0x04, 0xe9, 0x57,
+ 0x49, 0x35, 0x72, 0xc0,
+};
+static const struct drbg_kat_pr_false kat1989_t = {
+ 8, kat1989_entropyin, kat1989_nonce, kat1989_persstr,
+ kat1989_entropyinreseed, kat1989_addinreseed, kat1989_addin0,
+ kat1989_addin1, kat1989_retbits
+};
+static const struct drbg_kat kat1989 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1989_t
+};
+
+static const unsigned char kat1990_entropyin[] = {
+ 0x7e, 0x31, 0x3c, 0x2c, 0xab, 0x1c, 0x49, 0xea, 0x71, 0x41, 0x22, 0x36,
+ 0x05, 0x59, 0x88, 0xea, 0x95, 0x8a, 0x29, 0xf1, 0xc6, 0x6e, 0xad, 0x5d,
+ 0xaf, 0x91, 0xff, 0x47, 0xcc, 0x5e, 0x84, 0x36,
+};
+static const unsigned char kat1990_nonce[] = {
+ 0xc2, 0xb8, 0x52, 0x0e, 0xfb, 0xa1, 0xca, 0x97, 0x85, 0xd1, 0x9e, 0xe0,
+ 0x58, 0xcf, 0x23, 0xe0,
+};
+static const unsigned char kat1990_persstr[] = {0};
+static const unsigned char kat1990_entropyinreseed[] = {
+ 0x2a, 0x37, 0x51, 0x83, 0x42, 0x6c, 0x04, 0x4e, 0x84, 0xd7, 0x16, 0x3c,
+ 0x06, 0x74, 0xdf, 0x32, 0x48, 0x89, 0xc3, 0xbe, 0xa2, 0xba, 0xf0, 0x57,
+ 0xea, 0x93, 0xa4, 0x7e, 0xf7, 0x75, 0xa8, 0xbf,
+};
+static const unsigned char kat1990_addinreseed[] = {0};
+static const unsigned char kat1990_addin0[] = {0};
+static const unsigned char kat1990_addin1[] = {0};
+static const unsigned char kat1990_retbits[] = {
+ 0x5e, 0x6c, 0xc2, 0x5c, 0xd2, 0xa2, 0x0b, 0x89, 0xa8, 0xfe, 0x89, 0x4f,
+ 0x2f, 0x1e, 0x72, 0x6b, 0x66, 0x54, 0x41, 0xf7, 0x3c, 0x6e, 0x45, 0xeb,
+ 0x41, 0xaf, 0x99, 0x01, 0xca, 0x6a, 0xe6, 0x2e, 0x63, 0xe0, 0x82, 0xef,
+ 0x49, 0xa1, 0xbd, 0xc9, 0xd1, 0x13, 0xe9, 0x9a, 0xbf, 0xf7, 0x48, 0x46,
+ 0x7a, 0xdd, 0x4c, 0x69, 0x05, 0xb8, 0x8c, 0x4d, 0x2c, 0x25, 0x86, 0x73,
+ 0x3f, 0x4b, 0x33, 0xdd,
+};
+static const struct drbg_kat_pr_false kat1990_t = {
+ 9, kat1990_entropyin, kat1990_nonce, kat1990_persstr,
+ kat1990_entropyinreseed, kat1990_addinreseed, kat1990_addin0,
+ kat1990_addin1, kat1990_retbits
+};
+static const struct drbg_kat kat1990 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1990_t
+};
+
+static const unsigned char kat1991_entropyin[] = {
+ 0xb2, 0x7e, 0x9c, 0x0f, 0xb4, 0x94, 0xc0, 0x9e, 0x2a, 0x96, 0x0a, 0x5f,
+ 0x03, 0x49, 0x1a, 0x46, 0x1c, 0xc3, 0x30, 0x4c, 0x92, 0xeb, 0xed, 0xe9,
+ 0xe3, 0xcc, 0xc7, 0x48, 0xf5, 0x02, 0xa8, 0xbb,
+};
+static const unsigned char kat1991_nonce[] = {
+ 0xd0, 0xb6, 0xa2, 0x94, 0x0d, 0x43, 0x6f, 0x09, 0xe0, 0xe1, 0xbd, 0x90,
+ 0x3c, 0xc4, 0x46, 0x3d,
+};
+static const unsigned char kat1991_persstr[] = {0};
+static const unsigned char kat1991_entropyinreseed[] = {
+ 0xf1, 0x0b, 0x94, 0x28, 0xd0, 0xd6, 0x00, 0x9c, 0x8a, 0x6d, 0xa2, 0x48,
+ 0x3a, 0x14, 0x72, 0x46, 0xe2, 0x02, 0x10, 0xa3, 0xae, 0x82, 0x78, 0x9e,
+ 0x9e, 0x32, 0xd3, 0xd8, 0xac, 0x5c, 0x4f, 0x87,
+};
+static const unsigned char kat1991_addinreseed[] = {0};
+static const unsigned char kat1991_addin0[] = {0};
+static const unsigned char kat1991_addin1[] = {0};
+static const unsigned char kat1991_retbits[] = {
+ 0xd0, 0xb5, 0x94, 0x6a, 0x21, 0x55, 0x1d, 0x84, 0x08, 0xea, 0x54, 0xeb,
+ 0xcd, 0xe8, 0x93, 0xeb, 0xbb, 0xd5, 0xad, 0x9e, 0xaa, 0xbd, 0xdd, 0xd2,
+ 0xe7, 0x60, 0x1f, 0xce, 0xce, 0xc9, 0xa7, 0x93, 0x91, 0x82, 0xca, 0xdb,
+ 0xe2, 0xef, 0x7b, 0xa7, 0x0b, 0xee, 0x96, 0x6a, 0x22, 0x45, 0x45, 0x49,
+ 0xe9, 0xd5, 0xc1, 0x34, 0x44, 0xe4, 0x42, 0xad, 0xda, 0xd8, 0xba, 0x4e,
+ 0x55, 0xf5, 0xd7, 0x49,
+};
+static const struct drbg_kat_pr_false kat1991_t = {
+ 10, kat1991_entropyin, kat1991_nonce, kat1991_persstr,
+ kat1991_entropyinreseed, kat1991_addinreseed, kat1991_addin0,
+ kat1991_addin1, kat1991_retbits
+};
+static const struct drbg_kat kat1991 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1991_t
+};
+
+static const unsigned char kat1992_entropyin[] = {
+ 0x98, 0x75, 0xfe, 0xf6, 0xd8, 0xb0, 0x69, 0x91, 0x45, 0xce, 0x20, 0x38,
+ 0x7e, 0xd0, 0x9e, 0xcd, 0xfc, 0xba, 0x5d, 0xd9, 0xbd, 0xe9, 0x26, 0x7d,
+ 0xe3, 0xa5, 0x5e, 0x03, 0x8f, 0xc6, 0x4a, 0xc7,
+};
+static const unsigned char kat1992_nonce[] = {
+ 0xf3, 0xe7, 0x44, 0xf4, 0x38, 0x71, 0x7b, 0x81, 0x2d, 0x02, 0xed, 0x45,
+ 0x96, 0x41, 0x0d, 0xdf,
+};
+static const unsigned char kat1992_persstr[] = {0};
+static const unsigned char kat1992_entropyinreseed[] = {
+ 0xa6, 0xa1, 0x11, 0x5f, 0x2e, 0x8b, 0x8d, 0xf2, 0x1c, 0xad, 0x82, 0x0b,
+ 0xfc, 0x5f, 0xe3, 0x07, 0x7b, 0xdc, 0x6b, 0xf8, 0x8a, 0xbe, 0x07, 0xc5,
+ 0x2f, 0x1f, 0xbc, 0x4c, 0x35, 0x3c, 0x22, 0x37,
+};
+static const unsigned char kat1992_addinreseed[] = {0};
+static const unsigned char kat1992_addin0[] = {0};
+static const unsigned char kat1992_addin1[] = {0};
+static const unsigned char kat1992_retbits[] = {
+ 0x89, 0x08, 0x93, 0x5d, 0xc5, 0x30, 0x28, 0x49, 0x84, 0xaa, 0x1c, 0x55,
+ 0xde, 0xf5, 0x6d, 0x7b, 0x07, 0xc7, 0x40, 0xaa, 0x1b, 0x20, 0x86, 0x46,
+ 0x18, 0x0f, 0x90, 0x80, 0xf9, 0xba, 0xc3, 0xce, 0xd4, 0xb9, 0xcc, 0xe3,
+ 0x0c, 0x4a, 0x82, 0x09, 0x84, 0xc6, 0x95, 0x91, 0xc9, 0x7d, 0xe7, 0x03,
+ 0xd0, 0x62, 0xdf, 0x19, 0xe2, 0x11, 0xdc, 0x20, 0x34, 0x06, 0xe1, 0x88,
+ 0xf2, 0x12, 0x2a, 0x65,
+};
+static const struct drbg_kat_pr_false kat1992_t = {
+ 11, kat1992_entropyin, kat1992_nonce, kat1992_persstr,
+ kat1992_entropyinreseed, kat1992_addinreseed, kat1992_addin0,
+ kat1992_addin1, kat1992_retbits
+};
+static const struct drbg_kat kat1992 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1992_t
+};
+
+static const unsigned char kat1993_entropyin[] = {
+ 0x1e, 0x8f, 0x79, 0xf3, 0x04, 0x16, 0xf8, 0x08, 0xec, 0x31, 0x7e, 0x40,
+ 0xb1, 0x5d, 0xcd, 0x93, 0x5e, 0x10, 0xe2, 0x91, 0x4b, 0x9d, 0x83, 0x41,
+ 0x3e, 0x21, 0x85, 0xd0, 0x09, 0x9f, 0xfe, 0xd6,
+};
+static const unsigned char kat1993_nonce[] = {
+ 0x24, 0xb6, 0x75, 0x8f, 0x5e, 0x31, 0xb3, 0x25, 0xdc, 0x73, 0x6e, 0x6c,
+ 0xfb, 0x2c, 0x36, 0xe4,
+};
+static const unsigned char kat1993_persstr[] = {0};
+static const unsigned char kat1993_entropyinreseed[] = {
+ 0x20, 0xd5, 0x9d, 0x0b, 0xbf, 0xf2, 0x2f, 0x2e, 0x99, 0x1a, 0x8b, 0x45,
+ 0xcd, 0xab, 0x52, 0x5d, 0xbc, 0xae, 0x36, 0x91, 0x91, 0x93, 0x23, 0x3c,
+ 0xa9, 0xb0, 0x8b, 0xf1, 0x0d, 0x41, 0xf6, 0xd1,
+};
+static const unsigned char kat1993_addinreseed[] = {0};
+static const unsigned char kat1993_addin0[] = {0};
+static const unsigned char kat1993_addin1[] = {0};
+static const unsigned char kat1993_retbits[] = {
+ 0xce, 0xf2, 0x98, 0x71, 0x30, 0x6d, 0xa0, 0xaf, 0xa0, 0x0f, 0x6d, 0x63,
+ 0x43, 0x05, 0x7c, 0x2d, 0x89, 0x93, 0xeb, 0xe3, 0xe0, 0xab, 0xe0, 0xf5,
+ 0xa8, 0xca, 0xaf, 0xbd, 0x67, 0x2a, 0x63, 0x86, 0x2f, 0xe6, 0xba, 0xd6,
+ 0x94, 0x53, 0x12, 0x1a, 0xd8, 0xa7, 0x57, 0xea, 0x4e, 0x5c, 0x48, 0x2c,
+ 0xa1, 0x47, 0x29, 0xb6, 0xe2, 0xce, 0x01, 0xb3, 0x99, 0x6d, 0x4d, 0x34,
+ 0xa1, 0xd8, 0x32, 0xb1,
+};
+static const struct drbg_kat_pr_false kat1993_t = {
+ 12, kat1993_entropyin, kat1993_nonce, kat1993_persstr,
+ kat1993_entropyinreseed, kat1993_addinreseed, kat1993_addin0,
+ kat1993_addin1, kat1993_retbits
+};
+static const struct drbg_kat kat1993 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1993_t
+};
+
+static const unsigned char kat1994_entropyin[] = {
+ 0xaa, 0xdc, 0x2c, 0xce, 0x3a, 0xcf, 0x39, 0x8c, 0x8c, 0x11, 0xbf, 0x8e,
+ 0x20, 0x5d, 0x61, 0x57, 0xf9, 0x90, 0x3e, 0x8f, 0x19, 0x52, 0x46, 0xa7,
+ 0xbb, 0x81, 0x0a, 0xdf, 0xab, 0x0a, 0x76, 0x28,
+};
+static const unsigned char kat1994_nonce[] = {
+ 0x8f, 0x66, 0xf8, 0x80, 0xd0, 0x79, 0x6f, 0x8e, 0xe5, 0x55, 0x45, 0xa2,
+ 0x26, 0x8c, 0x46, 0x52,
+};
+static const unsigned char kat1994_persstr[] = {0};
+static const unsigned char kat1994_entropyinreseed[] = {
+ 0x25, 0x02, 0xca, 0x2a, 0xf9, 0x70, 0x79, 0xa3, 0x87, 0xdf, 0xdf, 0x25,
+ 0x47, 0x21, 0x7f, 0x84, 0xc3, 0x93, 0x2f, 0xcb, 0xa4, 0x91, 0x77, 0xc2,
+ 0xa9, 0x52, 0x81, 0xf3, 0xa2, 0x89, 0xe8, 0x3e,
+};
+static const unsigned char kat1994_addinreseed[] = {0};
+static const unsigned char kat1994_addin0[] = {0};
+static const unsigned char kat1994_addin1[] = {0};
+static const unsigned char kat1994_retbits[] = {
+ 0xd5, 0x7d, 0xdd, 0xf8, 0x72, 0x43, 0xde, 0x2d, 0xb9, 0xa5, 0xba, 0xe4,
+ 0x95, 0xcc, 0x20, 0xeb, 0xe8, 0x19, 0xe6, 0xa4, 0x67, 0x46, 0x06, 0x19,
+ 0x9a, 0xaa, 0xb3, 0xb5, 0x59, 0x31, 0xc1, 0xbf, 0xa1, 0xd1, 0x33, 0x35,
+ 0x78, 0x15, 0xb3, 0x94, 0xff, 0x9e, 0x81, 0x0b, 0x83, 0x73, 0xda, 0xec,
+ 0xd8, 0x59, 0x26, 0x98, 0x71, 0xea, 0xf6, 0xf5, 0x6b, 0xe4, 0xa7, 0x43,
+ 0xb1, 0xc1, 0x99, 0x7a,
+};
+static const struct drbg_kat_pr_false kat1994_t = {
+ 13, kat1994_entropyin, kat1994_nonce, kat1994_persstr,
+ kat1994_entropyinreseed, kat1994_addinreseed, kat1994_addin0,
+ kat1994_addin1, kat1994_retbits
+};
+static const struct drbg_kat kat1994 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1994_t
+};
+
+static const unsigned char kat1995_entropyin[] = {
+ 0x4e, 0xeb, 0x68, 0x8f, 0x8a, 0xa8, 0x60, 0x04, 0x74, 0x96, 0x42, 0x16,
+ 0x17, 0x26, 0x6a, 0xbe, 0xe3, 0xee, 0xf3, 0xf8, 0x86, 0x82, 0xa7, 0x92,
+ 0x51, 0x11, 0x6b, 0xf7, 0x80, 0x16, 0xa8, 0xf1,
+};
+static const unsigned char kat1995_nonce[] = {
+ 0xbc, 0x38, 0xd8, 0x3e, 0x89, 0x18, 0x15, 0x59, 0x7c, 0x40, 0x8b, 0x0a,
+ 0x50, 0xa2, 0x94, 0x8d,
+};
+static const unsigned char kat1995_persstr[] = {0};
+static const unsigned char kat1995_entropyinreseed[] = {
+ 0xae, 0xe4, 0xa6, 0x65, 0x5f, 0x81, 0x74, 0x12, 0xf2, 0x7f, 0x4c, 0xa6,
+ 0x86, 0xf1, 0x47, 0x6f, 0xf3, 0x8b, 0xe0, 0x6a, 0xbc, 0x2d, 0xfa, 0xfe,
+ 0xd9, 0x50, 0xfd, 0x46, 0xdf, 0x03, 0x86, 0x5e,
+};
+static const unsigned char kat1995_addinreseed[] = {0};
+static const unsigned char kat1995_addin0[] = {0};
+static const unsigned char kat1995_addin1[] = {0};
+static const unsigned char kat1995_retbits[] = {
+ 0x2d, 0xbe, 0xc5, 0x64, 0x8c, 0x60, 0x8d, 0xa2, 0xf1, 0x95, 0xf8, 0x6a,
+ 0x41, 0xd2, 0x6a, 0x98, 0x87, 0xa7, 0xf7, 0x5f, 0x38, 0xed, 0x8d, 0x5d,
+ 0xc5, 0x1b, 0x8c, 0xe6, 0x7e, 0xdb, 0x10, 0xe9, 0x68, 0xc1, 0xb0, 0x54,
+ 0xa7, 0x8d, 0x12, 0x98, 0xcc, 0x3e, 0x6d, 0x8a, 0xd3, 0x61, 0x08, 0x6a,
+ 0x0f, 0xee, 0x9d, 0x24, 0xcb, 0x36, 0xfc, 0x84, 0x34, 0xbb, 0xaa, 0x14,
+ 0x42, 0xe2, 0x82, 0x87,
+};
+static const struct drbg_kat_pr_false kat1995_t = {
+ 14, kat1995_entropyin, kat1995_nonce, kat1995_persstr,
+ kat1995_entropyinreseed, kat1995_addinreseed, kat1995_addin0,
+ kat1995_addin1, kat1995_retbits
+};
+static const struct drbg_kat kat1995 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat1995_t
+};
+
+static const unsigned char kat1996_entropyin[] = {
+ 0x44, 0xa6, 0x90, 0xd5, 0x90, 0xf4, 0x43, 0xbc, 0xa7, 0xab, 0xe4, 0xc2,
+ 0x0c, 0x70, 0xdd, 0xb0, 0xdf, 0x0e, 0xe2, 0x9e, 0xd2, 0x3e, 0xdf, 0xc1,
+ 0xcb, 0xe9, 0x23, 0xae, 0x7a, 0x4e, 0xb6, 0xc7,
+};
+static const unsigned char kat1996_nonce[] = {
+ 0x33, 0x4f, 0xc3, 0x55, 0xf9, 0xf0, 0x74, 0x59, 0xd8, 0xf0, 0x14, 0xeb,
+ 0xde, 0x24, 0xbc, 0xb6,
+};
+static const unsigned char kat1996_persstr[] = {0};
+static const unsigned char kat1996_entropyinreseed[] = {
+ 0x1b, 0xb4, 0x9e, 0x9b, 0xad, 0x9f, 0xc9, 0x4d, 0x36, 0x3d, 0xf0, 0x1c,
+ 0x02, 0x38, 0x8a, 0xf3, 0x91, 0xf4, 0x56, 0x4a, 0xbd, 0x8c, 0xce, 0x10,
+ 0x29, 0x88, 0x75, 0xd2, 0x93, 0x4d, 0xf8, 0x91,
+};
+static const unsigned char kat1996_addinreseed[] = {
+ 0x00, 0x92, 0xb9, 0x9e, 0xfa, 0x09, 0xa6, 0xb3, 0x0b, 0xb6, 0xf0, 0xd9,
+ 0xfd, 0x5f, 0xde, 0xd4, 0x90, 0xe7, 0x45, 0xc4, 0xbe, 0x3f, 0xa5, 0x61,
+ 0x5b, 0x31, 0x84, 0x44, 0xb5, 0x59, 0x3d, 0xb5,
+};
+static const unsigned char kat1996_addin0[] = {
+ 0xf5, 0xf6, 0x98, 0xf0, 0xdd, 0x17, 0x1c, 0x38, 0xd2, 0x4a, 0x5b, 0xb3,
+ 0xc5, 0xbf, 0x61, 0x15, 0xbf, 0x1a, 0xf2, 0x3c, 0x38, 0x51, 0x72, 0x92,
+ 0xe9, 0x4d, 0xd7, 0xf5, 0x76, 0x59, 0x7d, 0xb5,
+};
+static const unsigned char kat1996_addin1[] = {
+ 0x2d, 0xa7, 0x19, 0xaa, 0x44, 0xa9, 0x69, 0x10, 0xe7, 0x3f, 0xcf, 0x27,
+ 0xe4, 0x6d, 0x8d, 0xbb, 0x1c, 0x7b, 0x5d, 0x82, 0xf5, 0x71, 0x3a, 0x29,
+ 0x80, 0xaa, 0xda, 0x6c, 0xf2, 0xa4, 0x51, 0x04,
+};
+static const unsigned char kat1996_retbits[] = {
+ 0x27, 0xa2, 0xfb, 0x77, 0x04, 0xa7, 0x14, 0xe2, 0x07, 0xfd, 0x31, 0xa7,
+ 0x96, 0xc4, 0xc0, 0x53, 0xb0, 0x35, 0x5a, 0x15, 0x99, 0xd4, 0x7d, 0x20,
+ 0x1b, 0x1b, 0x5b, 0xb3, 0x7f, 0x79, 0xcf, 0x32, 0xf9, 0x28, 0x9b, 0xd2,
+ 0x63, 0xac, 0x6b, 0xdd, 0x8e, 0x83, 0xcc, 0x45, 0x1b, 0x3a, 0x3b, 0xaa,
+ 0x8f, 0x27, 0xcf, 0x3b, 0x5b, 0xa6, 0xa9, 0xa4, 0xa7, 0xd2, 0xd6, 0xae,
+ 0x60, 0x7d, 0xbc, 0x22,
+};
+static const struct drbg_kat_pr_false kat1996_t = {
+ 0, kat1996_entropyin, kat1996_nonce, kat1996_persstr,
+ kat1996_entropyinreseed, kat1996_addinreseed, kat1996_addin0,
+ kat1996_addin1, kat1996_retbits
+};
+static const struct drbg_kat kat1996 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1996_t
+};
+
+static const unsigned char kat1997_entropyin[] = {
+ 0x64, 0x9d, 0xb3, 0xcd, 0x39, 0x89, 0xa3, 0xb6, 0xc7, 0x73, 0xd7, 0x2b,
+ 0x16, 0x72, 0x3d, 0xe9, 0x03, 0xac, 0x45, 0x76, 0x40, 0xf2, 0xa9, 0x70,
+ 0xb9, 0xfc, 0xe2, 0xf5, 0xbf, 0x24, 0xa1, 0xf2,
+};
+static const unsigned char kat1997_nonce[] = {
+ 0x02, 0x83, 0xf0, 0xdb, 0x14, 0xbd, 0x72, 0x9f, 0x96, 0x84, 0x2e, 0x35,
+ 0xba, 0xa9, 0xc8, 0x2f,
+};
+static const unsigned char kat1997_persstr[] = {0};
+static const unsigned char kat1997_entropyinreseed[] = {
+ 0x42, 0x2a, 0xb5, 0x36, 0x72, 0xd6, 0x7d, 0x4e, 0xc1, 0x9d, 0xe8, 0xd0,
+ 0xa1, 0x89, 0xf8, 0x10, 0x0e, 0x77, 0xde, 0x8f, 0x79, 0xd9, 0x52, 0x8e,
+ 0xe5, 0xad, 0xcc, 0x4f, 0xfd, 0xb4, 0x9a, 0x9a,
+};
+static const unsigned char kat1997_addinreseed[] = {
+ 0x56, 0xb5, 0x27, 0xe7, 0x8f, 0x33, 0xe2, 0xba, 0x91, 0xa6, 0xf5, 0x49,
+ 0x11, 0x57, 0x6e, 0xb9, 0xdc, 0x15, 0xb9, 0xda, 0x40, 0x7c, 0x28, 0xc8,
+ 0x13, 0x1d, 0x7a, 0x5f, 0x33, 0xef, 0x6f, 0xd8,
+};
+static const unsigned char kat1997_addin0[] = {
+ 0x7d, 0x58, 0x38, 0xfc, 0x84, 0xcf, 0xce, 0xf3, 0xbd, 0x11, 0xd2, 0x7f,
+ 0x3d, 0x8c, 0x79, 0x15, 0x03, 0xad, 0xd8, 0x38, 0xdf, 0xe6, 0x95, 0xc9,
+ 0x48, 0x9a, 0x5b, 0x3c, 0x9c, 0xcd, 0x32, 0x7a,
+};
+static const unsigned char kat1997_addin1[] = {
+ 0x19, 0x9b, 0x51, 0x64, 0xbf, 0xcb, 0x0e, 0x91, 0x58, 0xa1, 0x9a, 0x2f,
+ 0xdf, 0xce, 0xdc, 0x8f, 0x00, 0xc3, 0x9b, 0x97, 0x04, 0x24, 0x62, 0x53,
+ 0x69, 0x7c, 0x8e, 0xe0, 0x1f, 0xc0, 0x8e, 0x2c,
+};
+static const unsigned char kat1997_retbits[] = {
+ 0x82, 0x27, 0xed, 0xc6, 0x0f, 0x95, 0xc7, 0x89, 0xeb, 0x19, 0x00, 0x82,
+ 0x19, 0x9b, 0x1a, 0xd4, 0x30, 0xbb, 0x8a, 0x83, 0xf1, 0xc4, 0x09, 0x12,
+ 0xfd, 0xf7, 0x3c, 0xa9, 0x97, 0x9a, 0x2b, 0x52, 0xdf, 0x52, 0xb5, 0xe6,
+ 0x52, 0x1c, 0x86, 0xa7, 0x9d, 0x68, 0x1e, 0x01, 0x05, 0xa1, 0x1b, 0x48,
+ 0x5a, 0x47, 0x4d, 0x09, 0xff, 0x77, 0x4e, 0x57, 0x30, 0xdf, 0x10, 0xc7,
+ 0x44, 0x19, 0x8e, 0x15,
+};
+static const struct drbg_kat_pr_false kat1997_t = {
+ 1, kat1997_entropyin, kat1997_nonce, kat1997_persstr,
+ kat1997_entropyinreseed, kat1997_addinreseed, kat1997_addin0,
+ kat1997_addin1, kat1997_retbits
+};
+static const struct drbg_kat kat1997 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1997_t
+};
+
+static const unsigned char kat1998_entropyin[] = {
+ 0x3e, 0x7d, 0x7c, 0x87, 0x97, 0xdc, 0x01, 0x64, 0xfc, 0x3a, 0xdb, 0x59,
+ 0x5b, 0xad, 0xd0, 0xd8, 0xeb, 0x26, 0xf3, 0xa8, 0x28, 0x79, 0xe5, 0x4a,
+ 0x10, 0x46, 0xaf, 0x14, 0x0b, 0xe7, 0x37, 0xb4,
+};
+static const unsigned char kat1998_nonce[] = {
+ 0x62, 0x99, 0x3d, 0xd2, 0xfc, 0x88, 0xcc, 0xaa, 0x24, 0x38, 0xe2, 0x14,
+ 0x83, 0xab, 0xa2, 0x44,
+};
+static const unsigned char kat1998_persstr[] = {0};
+static const unsigned char kat1998_entropyinreseed[] = {
+ 0xc7, 0x31, 0x1f, 0x9f, 0x1e, 0x1b, 0x61, 0x89, 0xfa, 0x05, 0x10, 0xec,
+ 0x96, 0x93, 0xb8, 0xf5, 0xde, 0x6c, 0x2a, 0xb9, 0x00, 0xc9, 0x3f, 0xb0,
+ 0xe3, 0x8e, 0xb0, 0x9e, 0x83, 0x13, 0x5d, 0x22,
+};
+static const unsigned char kat1998_addinreseed[] = {
+ 0x7d, 0x0d, 0xda, 0xce, 0xd9, 0x21, 0xbd, 0x01, 0x87, 0xa2, 0xb5, 0x86,
+ 0x69, 0xe4, 0x6e, 0x07, 0x2c, 0xd0, 0x15, 0x1c, 0x90, 0x51, 0x3d, 0xc8,
+ 0x1c, 0xff, 0x20, 0x6e, 0xa4, 0xb1, 0xf3, 0xd9,
+};
+static const unsigned char kat1998_addin0[] = {
+ 0xb0, 0x00, 0x10, 0x7d, 0x1a, 0x93, 0xc5, 0xbd, 0xbb, 0x48, 0x6a, 0x4b,
+ 0x7e, 0xdc, 0x5f, 0xbd, 0xec, 0x1e, 0xc1, 0xab, 0xd7, 0x1f, 0xcd, 0xc6,
+ 0xb2, 0x48, 0x33, 0x32, 0x07, 0x42, 0x27, 0x79,
+};
+static const unsigned char kat1998_addin1[] = {
+ 0xfb, 0xf8, 0xac, 0x5f, 0x68, 0x9b, 0xbd, 0xb3, 0x6c, 0x9c, 0xf4, 0xff,
+ 0xc8, 0x84, 0xe3, 0x2a, 0xf9, 0xa6, 0x00, 0xca, 0x79, 0x28, 0xf8, 0x7c,
+ 0xa3, 0x22, 0x40, 0xbf, 0xbd, 0x9c, 0x89, 0xdd,
+};
+static const unsigned char kat1998_retbits[] = {
+ 0x4d, 0xc2, 0x2e, 0xa7, 0x2e, 0xbe, 0x04, 0xfe, 0x6e, 0x0b, 0xbb, 0xc4,
+ 0x85, 0xa2, 0x1d, 0x24, 0x96, 0x49, 0x98, 0xb8, 0x94, 0x8e, 0x5d, 0x08,
+ 0xf1, 0x58, 0x57, 0xc6, 0x0e, 0x7e, 0x25, 0x42, 0x8a, 0xcc, 0xf2, 0x4d,
+ 0xac, 0xec, 0x40, 0xad, 0x7d, 0x7d, 0x39, 0xb3, 0x4d, 0x21, 0x53, 0xdd,
+ 0x95, 0xf4, 0xe6, 0xb7, 0x2d, 0x2d, 0x35, 0xd1, 0xd9, 0x5e, 0xf6, 0xd0,
+ 0x99, 0x88, 0x6e, 0x4c,
+};
+static const struct drbg_kat_pr_false kat1998_t = {
+ 2, kat1998_entropyin, kat1998_nonce, kat1998_persstr,
+ kat1998_entropyinreseed, kat1998_addinreseed, kat1998_addin0,
+ kat1998_addin1, kat1998_retbits
+};
+static const struct drbg_kat kat1998 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1998_t
+};
+
+static const unsigned char kat1999_entropyin[] = {
+ 0xc7, 0x63, 0x39, 0xf1, 0xe0, 0x9b, 0xa2, 0xe8, 0xa4, 0x7b, 0xe1, 0xbe,
+ 0xf7, 0xba, 0xb4, 0x9a, 0x22, 0x2b, 0xa9, 0xa1, 0xc8, 0x49, 0x2e, 0x71,
+ 0x64, 0xab, 0x36, 0xeb, 0xce, 0xa7, 0xea, 0x5d,
+};
+static const unsigned char kat1999_nonce[] = {
+ 0xd4, 0x65, 0x73, 0x33, 0xca, 0x9f, 0xba, 0x1e, 0xd3, 0x31, 0x64, 0xd8,
+ 0xb3, 0xbb, 0xe4, 0xd7,
+};
+static const unsigned char kat1999_persstr[] = {0};
+static const unsigned char kat1999_entropyinreseed[] = {
+ 0x64, 0xc2, 0x5b, 0x2f, 0xd3, 0x3d, 0xdc, 0x3e, 0xc6, 0x5e, 0x84, 0xc1,
+ 0xac, 0x14, 0xc9, 0xd3, 0xe8, 0x64, 0x5c, 0xd1, 0xf5, 0xfe, 0x85, 0x22,
+ 0x2c, 0x5b, 0xfb, 0x8c, 0x59, 0x01, 0xa2, 0x47,
+};
+static const unsigned char kat1999_addinreseed[] = {
+ 0xfc, 0xa6, 0x00, 0x41, 0x1f, 0xd3, 0xfb, 0xa5, 0x54, 0xad, 0xa7, 0x6f,
+ 0x90, 0x97, 0x2f, 0x81, 0x8a, 0xcd, 0x57, 0x43, 0x1a, 0x48, 0xd8, 0x10,
+ 0x00, 0xf1, 0xde, 0xa2, 0xe2, 0x83, 0x00, 0x02,
+};
+static const unsigned char kat1999_addin0[] = {
+ 0xac, 0x98, 0xcf, 0x17, 0x06, 0x4b, 0x93, 0x3c, 0xb5, 0xd7, 0x18, 0x21,
+ 0x30, 0xf1, 0x0b, 0x0f, 0x72, 0x11, 0x7f, 0xcd, 0x2c, 0x91, 0x4c, 0x0d,
+ 0xbd, 0x46, 0x1d, 0xdb, 0x7e, 0xc1, 0xa1, 0xd0,
+};
+static const unsigned char kat1999_addin1[] = {
+ 0xe8, 0x22, 0x10, 0x9e, 0x3b, 0xaa, 0x54, 0xa0, 0xbf, 0xb5, 0x4b, 0x9a,
+ 0x52, 0xaa, 0x7c, 0x94, 0x5c, 0xdc, 0x48, 0xb4, 0x1d, 0x1a, 0x5e, 0x54,
+ 0x4f, 0xbc, 0xea, 0xc1, 0x14, 0x7a, 0x36, 0xca,
+};
+static const unsigned char kat1999_retbits[] = {
+ 0xb4, 0x8b, 0x4c, 0x1d, 0x9d, 0xb0, 0x71, 0xc7, 0xdf, 0x5e, 0xd9, 0xf7,
+ 0x8f, 0x48, 0xff, 0xb3, 0x76, 0xc3, 0x92, 0xc5, 0x1d, 0x2d, 0x0e, 0x76,
+ 0x42, 0x47, 0xb7, 0x94, 0xa7, 0x62, 0xd0, 0x85, 0x74, 0x31, 0x1b, 0xc3,
+ 0xe6, 0x1c, 0x84, 0xc8, 0x12, 0xd8, 0x3f, 0x5a, 0xb1, 0x7a, 0x2b, 0x47,
+ 0x46, 0x7f, 0x84, 0xc0, 0xa4, 0xd4, 0xe8, 0x5a, 0xb9, 0x90, 0x98, 0x9c,
+ 0x56, 0x1a, 0xa2, 0x0c,
+};
+static const struct drbg_kat_pr_false kat1999_t = {
+ 3, kat1999_entropyin, kat1999_nonce, kat1999_persstr,
+ kat1999_entropyinreseed, kat1999_addinreseed, kat1999_addin0,
+ kat1999_addin1, kat1999_retbits
+};
+static const struct drbg_kat kat1999 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat1999_t
+};
+
+static const unsigned char kat2000_entropyin[] = {
+ 0x10, 0x12, 0x60, 0x1e, 0x13, 0x60, 0x24, 0x7c, 0x8f, 0xc2, 0x48, 0xcb,
+ 0x1d, 0x6b, 0x76, 0x1e, 0x78, 0xe6, 0x23, 0xcd, 0xfe, 0x85, 0x79, 0x39,
+ 0xdb, 0x98, 0xb4, 0xc1, 0x57, 0xb7, 0x3d, 0xad,
+};
+static const unsigned char kat2000_nonce[] = {
+ 0x0d, 0x6f, 0xcf, 0x7c, 0x63, 0xc2, 0x0a, 0x41, 0xdd, 0xdf, 0xf5, 0xe0,
+ 0x01, 0xad, 0x0d, 0xe3,
+};
+static const unsigned char kat2000_persstr[] = {0};
+static const unsigned char kat2000_entropyinreseed[] = {
+ 0x08, 0x91, 0x20, 0xc4, 0x78, 0xd3, 0x34, 0xb3, 0x97, 0xcb, 0xaf, 0xa7,
+ 0xad, 0x1c, 0xf2, 0xa9, 0xb3, 0xaa, 0xfb, 0x65, 0xb7, 0x9b, 0x0e, 0x0a,
+ 0xd1, 0xc4, 0xd8, 0x62, 0x72, 0xf0, 0xc2, 0x96,
+};
+static const unsigned char kat2000_addinreseed[] = {
+ 0xd2, 0xed, 0x4c, 0xf9, 0x0d, 0x3f, 0xb8, 0xa0, 0x7c, 0x96, 0x52, 0x2e,
+ 0xff, 0x6f, 0xda, 0x6b, 0xe4, 0x51, 0x11, 0x50, 0xfa, 0x8b, 0xf3, 0x27,
+ 0xe4, 0x3c, 0x85, 0x98, 0x61, 0xab, 0xcb, 0x02,
+};
+static const unsigned char kat2000_addin0[] = {
+ 0x95, 0x22, 0x0e, 0x36, 0x78, 0x95, 0x98, 0x5f, 0xa9, 0xa5, 0xa0, 0xba,
+ 0x2b, 0x10, 0x84, 0xae, 0x96, 0xca, 0x37, 0xbd, 0x7b, 0x90, 0x97, 0x6e,
+ 0x63, 0x6d, 0xaf, 0xe5, 0x99, 0x93, 0xc4, 0xf9,
+};
+static const unsigned char kat2000_addin1[] = {
+ 0xcc, 0xb2, 0xbf, 0x64, 0xa7, 0xe7, 0x06, 0xa8, 0xa7, 0xc8, 0x6d, 0x30,
+ 0xd7, 0x2f, 0x89, 0xa7, 0xa8, 0x7c, 0xb9, 0x85, 0x69, 0x24, 0x2a, 0x72,
+ 0xa1, 0xd3, 0x28, 0x58, 0x77, 0x23, 0x80, 0x37,
+};
+static const unsigned char kat2000_retbits[] = {
+ 0x6e, 0x25, 0x10, 0x47, 0xfd, 0x4f, 0x9d, 0x10, 0x44, 0xde, 0x50, 0xd5,
+ 0xf3, 0xda, 0x3a, 0x9d, 0xe2, 0x75, 0x60, 0xf2, 0xc2, 0xef, 0xbb, 0xfa,
+ 0xaa, 0xef, 0x1a, 0x03, 0x06, 0x08, 0x75, 0x69, 0xf5, 0xa8, 0x2d, 0x8b,
+ 0xde, 0x09, 0x4c, 0x0c, 0x45, 0x1b, 0x5e, 0x52, 0x38, 0x11, 0x14, 0x93,
+ 0xd5, 0xee, 0x6e, 0xa6, 0x5e, 0x7d, 0x39, 0x97, 0x7b, 0xed, 0x45, 0xdd,
+ 0xb7, 0xf0, 0xea, 0xf8,
+};
+static const struct drbg_kat_pr_false kat2000_t = {
+ 4, kat2000_entropyin, kat2000_nonce, kat2000_persstr,
+ kat2000_entropyinreseed, kat2000_addinreseed, kat2000_addin0,
+ kat2000_addin1, kat2000_retbits
+};
+static const struct drbg_kat kat2000 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2000_t
+};
+
+static const unsigned char kat2001_entropyin[] = {
+ 0x8a, 0xce, 0xcd, 0x89, 0x86, 0xca, 0xee, 0xdd, 0xcd, 0xa8, 0xb7, 0xe1,
+ 0x8b, 0xa2, 0x84, 0x44, 0x05, 0x57, 0xf8, 0xd4, 0xeb, 0x74, 0x19, 0x30,
+ 0xd9, 0xc9, 0x64, 0xc6, 0x28, 0xa5, 0xb0, 0x27,
+};
+static const unsigned char kat2001_nonce[] = {
+ 0xb3, 0xbc, 0x9f, 0x79, 0x3d, 0x6a, 0x8b, 0xd3, 0xc6, 0x7d, 0x98, 0x6e,
+ 0x7d, 0xb3, 0x34, 0x9d,
+};
+static const unsigned char kat2001_persstr[] = {0};
+static const unsigned char kat2001_entropyinreseed[] = {
+ 0x1b, 0x7f, 0x8a, 0xf0, 0x0c, 0x7d, 0xc7, 0xbc, 0x89, 0xc2, 0x52, 0x25,
+ 0xb1, 0x57, 0x36, 0x5a, 0x66, 0xc0, 0x1d, 0x51, 0x59, 0x69, 0x1d, 0x66,
+ 0xe4, 0x79, 0xfa, 0x9e, 0x6c, 0x16, 0x46, 0x79,
+};
+static const unsigned char kat2001_addinreseed[] = {
+ 0xec, 0x9a, 0x53, 0xbd, 0xb4, 0xb5, 0x14, 0x40, 0x9b, 0xa1, 0xa4, 0xa1,
+ 0x41, 0x5e, 0x84, 0xda, 0x62, 0x23, 0x19, 0x7a, 0x97, 0xc2, 0xf9, 0xd8,
+ 0x9a, 0x9c, 0xd0, 0x27, 0xba, 0xe6, 0x7a, 0x93,
+};
+static const unsigned char kat2001_addin0[] = {
+ 0x87, 0xb9, 0x6a, 0xeb, 0x33, 0xf6, 0x15, 0xbc, 0x91, 0xba, 0xf8, 0xb0,
+ 0x9f, 0xbb, 0x17, 0x9c, 0xd3, 0x36, 0x42, 0x4f, 0x4b, 0x5e, 0x63, 0x71,
+ 0xdf, 0x55, 0xbe, 0x66, 0x87, 0xf9, 0x4b, 0x1e,
+};
+static const unsigned char kat2001_addin1[] = {
+ 0xf3, 0x62, 0x2d, 0xe5, 0xdd, 0x40, 0x97, 0xa0, 0xdb, 0xc7, 0x1b, 0xc7,
+ 0xac, 0x01, 0xcf, 0x70, 0xd8, 0x83, 0x7e, 0xc2, 0x96, 0xcb, 0x84, 0x4c,
+ 0x7a, 0x66, 0x20, 0x68, 0x85, 0xc7, 0x1e, 0x80,
+};
+static const unsigned char kat2001_retbits[] = {
+ 0xc5, 0xc7, 0x49, 0xa8, 0x0a, 0xce, 0x0d, 0x83, 0x34, 0xbc, 0x85, 0x58,
+ 0x32, 0x05, 0x78, 0x91, 0x67, 0x80, 0xd5, 0x9a, 0xc6, 0xa8, 0x17, 0x42,
+ 0xab, 0x0f, 0xaf, 0x0f, 0x3d, 0x1a, 0xce, 0x4f, 0x33, 0xd2, 0xed, 0x6f,
+ 0xb4, 0xe1, 0x47, 0xe1, 0xdd, 0x15, 0x7e, 0x34, 0x85, 0x66, 0x35, 0x4d,
+ 0x24, 0x9c, 0xf2, 0x5f, 0x36, 0xcc, 0x46, 0xae, 0x36, 0x15, 0xe3, 0x2d,
+ 0x51, 0x7a, 0xb6, 0x4c,
+};
+static const struct drbg_kat_pr_false kat2001_t = {
+ 5, kat2001_entropyin, kat2001_nonce, kat2001_persstr,
+ kat2001_entropyinreseed, kat2001_addinreseed, kat2001_addin0,
+ kat2001_addin1, kat2001_retbits
+};
+static const struct drbg_kat kat2001 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2001_t
+};
+
+static const unsigned char kat2002_entropyin[] = {
+ 0x66, 0x5b, 0xb9, 0xce, 0xf9, 0xe9, 0x3b, 0x94, 0x3a, 0xaf, 0x7f, 0x75,
+ 0x34, 0x36, 0x7d, 0x88, 0x11, 0x3b, 0xde, 0x79, 0x96, 0xfc, 0x92, 0x2b,
+ 0x26, 0xb9, 0x34, 0x53, 0x6f, 0x4e, 0x47, 0x80,
+};
+static const unsigned char kat2002_nonce[] = {
+ 0x80, 0xa5, 0x7f, 0x45, 0x0d, 0x81, 0x63, 0xdd, 0xe1, 0xae, 0xff, 0xc1,
+ 0x74, 0x24, 0x55, 0x19,
+};
+static const unsigned char kat2002_persstr[] = {0};
+static const unsigned char kat2002_entropyinreseed[] = {
+ 0x7a, 0x24, 0xa2, 0xbd, 0x4f, 0x5e, 0x20, 0x10, 0xf6, 0x00, 0xcd, 0xf0,
+ 0x33, 0x03, 0x1d, 0xbd, 0x20, 0xe1, 0xc9, 0x5d, 0x2b, 0x31, 0xdb, 0x82,
+ 0x4e, 0x66, 0x16, 0xd3, 0x15, 0xb1, 0x48, 0x67,
+};
+static const unsigned char kat2002_addinreseed[] = {
+ 0xd6, 0xd1, 0x91, 0x1b, 0x53, 0xb4, 0x34, 0x22, 0x45, 0x31, 0xf8, 0xea,
+ 0xb5, 0x6f, 0x0a, 0xd4, 0xf4, 0x6c, 0xdb, 0x38, 0x92, 0x24, 0xaf, 0xfe,
+ 0xc3, 0xbf, 0x61, 0xbb, 0xcc, 0x84, 0x3e, 0x51,
+};
+static const unsigned char kat2002_addin0[] = {
+ 0xa1, 0xd0, 0x42, 0x00, 0xea, 0x02, 0x11, 0x29, 0x48, 0xe0, 0xa9, 0xb0,
+ 0x22, 0x9d, 0x63, 0x69, 0x7d, 0x68, 0x96, 0xcb, 0xcd, 0x1a, 0x9b, 0x97,
+ 0x95, 0x38, 0x17, 0xbd, 0xd0, 0x0f, 0xe6, 0x61,
+};
+static const unsigned char kat2002_addin1[] = {
+ 0x89, 0x34, 0xbc, 0x9a, 0x62, 0x29, 0xbd, 0x25, 0x78, 0x79, 0xf6, 0xd8,
+ 0x4d, 0x75, 0x3b, 0xd7, 0xb1, 0x51, 0xe6, 0x16, 0xff, 0xfd, 0xa3, 0x30,
+ 0x50, 0x2b, 0x2d, 0x7e, 0xf2, 0x03, 0x53, 0x1c,
+};
+static const unsigned char kat2002_retbits[] = {
+ 0xd9, 0x50, 0xcf, 0xe3, 0x23, 0xef, 0x9f, 0x24, 0xdc, 0xef, 0x3e, 0x87,
+ 0x65, 0xa9, 0x90, 0x9c, 0xcd, 0xd6, 0x0a, 0x5d, 0x63, 0x59, 0xb5, 0x1c,
+ 0xa2, 0x93, 0x7e, 0x11, 0xca, 0x38, 0xc9, 0xd8, 0xca, 0x89, 0xdc, 0x4d,
+ 0xdf, 0x3e, 0x7a, 0x5b, 0x27, 0x32, 0x0f, 0x18, 0xe9, 0x6d, 0xc1, 0x8a,
+ 0x37, 0x99, 0xcb, 0x22, 0x8d, 0x59, 0x06, 0xc9, 0x3e, 0xf1, 0x38, 0x0f,
+ 0x10, 0xa6, 0x6a, 0xee,
+};
+static const struct drbg_kat_pr_false kat2002_t = {
+ 6, kat2002_entropyin, kat2002_nonce, kat2002_persstr,
+ kat2002_entropyinreseed, kat2002_addinreseed, kat2002_addin0,
+ kat2002_addin1, kat2002_retbits
+};
+static const struct drbg_kat kat2002 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2002_t
+};
+
+static const unsigned char kat2003_entropyin[] = {
+ 0x72, 0x2b, 0xcc, 0xd6, 0xf5, 0x5f, 0xe0, 0xba, 0xe6, 0x99, 0x87, 0x07,
+ 0x91, 0x1e, 0xfb, 0x59, 0x1c, 0xd4, 0xb4, 0x8e, 0xfd, 0x95, 0xd6, 0x93,
+ 0x17, 0xbf, 0x2b, 0xcc, 0x50, 0xf1, 0xc1, 0xbc,
+};
+static const unsigned char kat2003_nonce[] = {
+ 0x53, 0xe3, 0x9a, 0x29, 0x91, 0xdc, 0xae, 0xfc, 0xca, 0x3d, 0xbe, 0x53,
+ 0xca, 0x3b, 0x6c, 0x4d,
+};
+static const unsigned char kat2003_persstr[] = {0};
+static const unsigned char kat2003_entropyinreseed[] = {
+ 0xd7, 0xfc, 0x5a, 0xfe, 0xf4, 0x03, 0xb9, 0x30, 0x5e, 0xc3, 0xca, 0xb0,
+ 0xbf, 0xd8, 0x47, 0x91, 0x19, 0x66, 0x6a, 0xd0, 0x8f, 0xe2, 0x44, 0xc6,
+ 0x5a, 0xa1, 0xb8, 0x35, 0x96, 0x2e, 0x59, 0x8f,
+};
+static const unsigned char kat2003_addinreseed[] = {
+ 0xee, 0x1a, 0xd1, 0x32, 0x2b, 0x4f, 0x23, 0xd6, 0xbc, 0x1a, 0x58, 0xd0,
+ 0xa3, 0x26, 0x73, 0xeb, 0x89, 0x42, 0xb6, 0xe5, 0x3c, 0x9e, 0xc2, 0x25,
+ 0x69, 0xf3, 0xfc, 0xaf, 0xd2, 0xdb, 0x33, 0x97,
+};
+static const unsigned char kat2003_addin0[] = {
+ 0xd5, 0x16, 0xae, 0xae, 0xf6, 0x8b, 0x70, 0x77, 0xd4, 0x31, 0x4e, 0xb6,
+ 0x94, 0xbc, 0x0b, 0x4c, 0xa6, 0x61, 0xec, 0x26, 0x43, 0x14, 0x59, 0xa4,
+ 0x4d, 0x15, 0xe9, 0xdf, 0x27, 0x33, 0x3b, 0xbe,
+};
+static const unsigned char kat2003_addin1[] = {
+ 0xf6, 0xc3, 0x72, 0x3a, 0xdb, 0x8e, 0xff, 0x96, 0x00, 0xb8, 0x4a, 0x45,
+ 0x2a, 0xdb, 0x00, 0x71, 0x97, 0x77, 0xc9, 0x52, 0x32, 0x9a, 0xfe, 0x7d,
+ 0xc2, 0xf4, 0x12, 0x91, 0x75, 0x24, 0x7a, 0xb0,
+};
+static const unsigned char kat2003_retbits[] = {
+ 0xc9, 0x5b, 0x75, 0x75, 0x49, 0x93, 0x1f, 0x03, 0x0f, 0x70, 0x79, 0x6e,
+ 0xaf, 0x03, 0x83, 0xd9, 0x80, 0x36, 0x27, 0x94, 0xcf, 0x24, 0xfd, 0xac,
+ 0xf5, 0xa6, 0x10, 0x1f, 0x96, 0x8d, 0x09, 0x9c, 0x19, 0x4c, 0xc7, 0x06,
+ 0x07, 0xa6, 0xf8, 0x6b, 0xa0, 0x40, 0x4a, 0xdd, 0xd2, 0xac, 0x04, 0xd2,
+ 0x5e, 0x4a, 0x0d, 0x51, 0xce, 0xb4, 0x5e, 0x2f, 0x9f, 0xfc, 0x2d, 0xa4,
+ 0x99, 0x13, 0xea, 0x5b,
+};
+static const struct drbg_kat_pr_false kat2003_t = {
+ 7, kat2003_entropyin, kat2003_nonce, kat2003_persstr,
+ kat2003_entropyinreseed, kat2003_addinreseed, kat2003_addin0,
+ kat2003_addin1, kat2003_retbits
+};
+static const struct drbg_kat kat2003 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2003_t
+};
+
+static const unsigned char kat2004_entropyin[] = {
+ 0x64, 0x7f, 0xa5, 0x68, 0x08, 0x69, 0xa0, 0x8f, 0x9f, 0xb1, 0x9d, 0x6a,
+ 0xf6, 0x27, 0x47, 0x85, 0x26, 0x88, 0xf5, 0x87, 0x0a, 0x5b, 0x5d, 0x80,
+ 0x92, 0x6c, 0x69, 0xd0, 0x85, 0x03, 0xcc, 0x12,
+};
+static const unsigned char kat2004_nonce[] = {
+ 0x66, 0xa1, 0xc1, 0x52, 0xb8, 0xdb, 0x54, 0x56, 0xd9, 0x17, 0x63, 0x7b,
+ 0xf3, 0x34, 0x86, 0xac,
+};
+static const unsigned char kat2004_persstr[] = {0};
+static const unsigned char kat2004_entropyinreseed[] = {
+ 0xa6, 0x58, 0xb2, 0x55, 0x93, 0x13, 0xf1, 0x61, 0x81, 0xaf, 0x98, 0x00,
+ 0x0d, 0x05, 0x8b, 0x20, 0xc7, 0xc1, 0x22, 0x3b, 0x22, 0x58, 0xd6, 0x8d,
+ 0xe5, 0x43, 0xfa, 0x83, 0x47, 0x56, 0x88, 0x55,
+};
+static const unsigned char kat2004_addinreseed[] = {
+ 0x44, 0x60, 0xdd, 0xd3, 0xbd, 0xe8, 0x53, 0x28, 0x53, 0xd3, 0xc8, 0x67,
+ 0xc4, 0xed, 0xcc, 0x32, 0xeb, 0xac, 0x9b, 0x04, 0x08, 0x60, 0x95, 0xe1,
+ 0x81, 0xf4, 0x24, 0x84, 0x18, 0x68, 0x8a, 0x85,
+};
+static const unsigned char kat2004_addin0[] = {
+ 0x79, 0x36, 0x4b, 0xaf, 0xbe, 0x6c, 0xeb, 0x9e, 0xe5, 0xf6, 0xb9, 0xee,
+ 0x93, 0x2a, 0x46, 0x7a, 0x50, 0xe1, 0xaa, 0x1d, 0x5f, 0xdb, 0xf4, 0x03,
+ 0x80, 0xe6, 0x7d, 0x66, 0x02, 0xf8, 0x33, 0xcf,
+};
+static const unsigned char kat2004_addin1[] = {
+ 0x42, 0x33, 0xa1, 0x1a, 0xea, 0x16, 0x8c, 0x43, 0xeb, 0xcf, 0x8d, 0x2d,
+ 0x3e, 0xe0, 0x03, 0xf7, 0xcc, 0x0f, 0x3b, 0x68, 0xb8, 0x59, 0xcd, 0x81,
+ 0xc7, 0x21, 0x44, 0x7c, 0x05, 0x77, 0x30, 0x8e,
+};
+static const unsigned char kat2004_retbits[] = {
+ 0x81, 0x40, 0x67, 0x45, 0xe9, 0x97, 0xb7, 0x3d, 0x6c, 0xa3, 0x14, 0xe0,
+ 0xac, 0xfa, 0x08, 0x76, 0x18, 0xe9, 0x67, 0xec, 0x93, 0x48, 0x78, 0xa5,
+ 0xa7, 0xe0, 0x08, 0xf4, 0xc3, 0xb3, 0xa7, 0xe0, 0x2d, 0x9e, 0x75, 0x92,
+ 0x93, 0xa4, 0xa4, 0x88, 0xff, 0xf4, 0x8e, 0xf9, 0x69, 0x37, 0x67, 0xe1,
+ 0x7e, 0x07, 0xa0, 0x89, 0x21, 0x1e, 0xca, 0xee, 0x1b, 0xdd, 0xbe, 0x54,
+ 0x6e, 0x95, 0xb5, 0xc2,
+};
+static const struct drbg_kat_pr_false kat2004_t = {
+ 8, kat2004_entropyin, kat2004_nonce, kat2004_persstr,
+ kat2004_entropyinreseed, kat2004_addinreseed, kat2004_addin0,
+ kat2004_addin1, kat2004_retbits
+};
+static const struct drbg_kat kat2004 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2004_t
+};
+
+static const unsigned char kat2005_entropyin[] = {
+ 0xb2, 0xb6, 0xfe, 0x28, 0x6e, 0x93, 0x4e, 0x1e, 0xdb, 0x91, 0x69, 0xdb,
+ 0xa3, 0x14, 0xea, 0x13, 0x64, 0xd5, 0x97, 0x2a, 0xe4, 0x5a, 0x34, 0x3f,
+ 0xa3, 0xa2, 0x9e, 0xc7, 0xd2, 0x2e, 0x63, 0x0b,
+};
+static const unsigned char kat2005_nonce[] = {
+ 0x6d, 0xe0, 0xb6, 0x1f, 0xb0, 0x85, 0x27, 0x11, 0xc0, 0xb7, 0x8e, 0xac,
+ 0xca, 0x49, 0x01, 0x08,
+};
+static const unsigned char kat2005_persstr[] = {0};
+static const unsigned char kat2005_entropyinreseed[] = {
+ 0xe7, 0x40, 0x74, 0xcf, 0xfe, 0x00, 0x4d, 0xb9, 0x0f, 0x24, 0x85, 0x22,
+ 0x0d, 0xdd, 0xb0, 0xbf, 0x81, 0xdd, 0xd9, 0xec, 0x2f, 0xb8, 0x3e, 0xbd,
+ 0x42, 0x49, 0xba, 0x39, 0xab, 0x1b, 0x2a, 0x20,
+};
+static const unsigned char kat2005_addinreseed[] = {
+ 0x72, 0xaa, 0x7b, 0xd3, 0xf4, 0xc3, 0x29, 0x94, 0xce, 0xeb, 0xd3, 0x74,
+ 0xba, 0x55, 0x96, 0x44, 0x14, 0x8e, 0x55, 0xc1, 0x4b, 0xba, 0xbe, 0xa5,
+ 0x53, 0x6a, 0xf8, 0xca, 0xcd, 0xb2, 0xce, 0x34,
+};
+static const unsigned char kat2005_addin0[] = {
+ 0xc1, 0xff, 0x35, 0xde, 0x77, 0xf0, 0x71, 0x3a, 0xb3, 0x52, 0x65, 0x42,
+ 0x0d, 0x0b, 0xcd, 0xe1, 0x13, 0xc1, 0x85, 0xbc, 0xbd, 0x14, 0x75, 0x22,
+ 0xb4, 0xb6, 0x49, 0x98, 0x45, 0x1b, 0x38, 0x95,
+};
+static const unsigned char kat2005_addin1[] = {
+ 0x77, 0xab, 0xb2, 0x9a, 0x42, 0x1b, 0x8b, 0xd4, 0x8c, 0xef, 0xe4, 0x7c,
+ 0xff, 0x73, 0x0b, 0xe6, 0x6a, 0xb9, 0xf5, 0xb5, 0x22, 0x4f, 0x3f, 0x69,
+ 0x39, 0x9a, 0xfe, 0x81, 0x3e, 0x2a, 0x24, 0xfb,
+};
+static const unsigned char kat2005_retbits[] = {
+ 0xb3, 0x96, 0xa2, 0x9c, 0x98, 0x31, 0x8e, 0x0f, 0x1b, 0xb2, 0x27, 0x9f,
+ 0xba, 0xc6, 0x77, 0xec, 0xa0, 0x63, 0x42, 0x28, 0x7e, 0x6d, 0x4a, 0xec,
+ 0x0c, 0xef, 0x36, 0xe8, 0x7e, 0xc4, 0x33, 0x33, 0x7d, 0x00, 0x4a, 0x5a,
+ 0x0e, 0xc6, 0xd8, 0xf3, 0x5a, 0xf7, 0x05, 0x58, 0xf5, 0xdc, 0x6c, 0xdf,
+ 0xf9, 0x14, 0x48, 0x36, 0xa6, 0x70, 0x5e, 0x0d, 0x31, 0x59, 0xe6, 0x90,
+ 0x42, 0x13, 0x90, 0x3c,
+};
+static const struct drbg_kat_pr_false kat2005_t = {
+ 9, kat2005_entropyin, kat2005_nonce, kat2005_persstr,
+ kat2005_entropyinreseed, kat2005_addinreseed, kat2005_addin0,
+ kat2005_addin1, kat2005_retbits
+};
+static const struct drbg_kat kat2005 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2005_t
+};
+
+static const unsigned char kat2006_entropyin[] = {
+ 0x22, 0x97, 0xaa, 0x40, 0x6e, 0x58, 0x9f, 0xe6, 0x30, 0xfa, 0xf8, 0xe5,
+ 0x7c, 0x75, 0xf0, 0x84, 0x3b, 0x03, 0x07, 0xa4, 0xef, 0x46, 0xa5, 0xa3,
+ 0x53, 0xe0, 0xd5, 0xc2, 0x19, 0xef, 0xd5, 0xda,
+};
+static const unsigned char kat2006_nonce[] = {
+ 0x92, 0x18, 0x25, 0xe5, 0xec, 0xbc, 0x19, 0x51, 0xcb, 0xfb, 0xa8, 0xbb,
+ 0x05, 0xcf, 0xda, 0x30,
+};
+static const unsigned char kat2006_persstr[] = {0};
+static const unsigned char kat2006_entropyinreseed[] = {
+ 0xff, 0x27, 0xdc, 0xdd, 0x3c, 0xb7, 0x47, 0x6f, 0xa7, 0x74, 0x01, 0xfd,
+ 0xd2, 0x5e, 0xa0, 0x42, 0xa3, 0xf3, 0xb6, 0xdc, 0xa7, 0x5d, 0x7a, 0x6b,
+ 0xe0, 0xd3, 0x93, 0x84, 0x32, 0xeb, 0x7c, 0xa5,
+};
+static const unsigned char kat2006_addinreseed[] = {
+ 0xbd, 0x65, 0xc1, 0x1d, 0x7e, 0x42, 0x1e, 0x17, 0xde, 0x46, 0x19, 0x65,
+ 0x6a, 0xc9, 0xab, 0x7d, 0x5d, 0x11, 0x2b, 0x28, 0xc9, 0x5d, 0x51, 0x17,
+ 0x96, 0x3a, 0x19, 0x89, 0x65, 0xfc, 0x75, 0xcb,
+};
+static const unsigned char kat2006_addin0[] = {
+ 0xbf, 0x1c, 0x52, 0xe8, 0x11, 0x27, 0xa5, 0x3b, 0xe2, 0x31, 0x34, 0x6d,
+ 0x9d, 0x82, 0x75, 0x41, 0x22, 0x1d, 0xe0, 0x99, 0x4a, 0x23, 0xf8, 0xd5,
+ 0xd5, 0x7f, 0x7b, 0x16, 0x8a, 0xf5, 0x9f, 0xd9,
+};
+static const unsigned char kat2006_addin1[] = {
+ 0x6b, 0xf3, 0x00, 0xfc, 0x65, 0x05, 0xeb, 0xde, 0xb7, 0x0d, 0x96, 0x1b,
+ 0xf5, 0xb8, 0x89, 0x7a, 0x4f, 0xf4, 0x28, 0x8d, 0x12, 0xf4, 0xf3, 0xf7,
+ 0xf7, 0x91, 0xd0, 0xa7, 0xc5, 0x33, 0xb6, 0xd2,
+};
+static const unsigned char kat2006_retbits[] = {
+ 0x27, 0x7b, 0xeb, 0x95, 0x11, 0xdf, 0x11, 0x5f, 0x44, 0x8b, 0xbf, 0x37,
+ 0x3a, 0x73, 0xfb, 0x8e, 0x83, 0x5b, 0x30, 0xa2, 0x87, 0x81, 0xed, 0x8e,
+ 0xc3, 0x20, 0xbc, 0x77, 0x5a, 0x46, 0xc0, 0x60, 0x08, 0x90, 0x53, 0x3e,
+ 0xc6, 0x05, 0x67, 0xa1, 0xc5, 0x05, 0x70, 0xd4, 0xcd, 0xec, 0xde, 0xba,
+ 0x52, 0x43, 0x2d, 0xdc, 0x75, 0x8e, 0xa8, 0x6c, 0xc3, 0x4b, 0x3d, 0x83,
+ 0xcd, 0x9e, 0x3c, 0x81,
+};
+static const struct drbg_kat_pr_false kat2006_t = {
+ 10, kat2006_entropyin, kat2006_nonce, kat2006_persstr,
+ kat2006_entropyinreseed, kat2006_addinreseed, kat2006_addin0,
+ kat2006_addin1, kat2006_retbits
+};
+static const struct drbg_kat kat2006 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2006_t
+};
+
+static const unsigned char kat2007_entropyin[] = {
+ 0xac, 0x72, 0x05, 0xc8, 0x1f, 0x9b, 0x2f, 0x86, 0x9a, 0x85, 0xfd, 0x09,
+ 0x24, 0x03, 0xa7, 0x9f, 0x82, 0x1e, 0xe9, 0x84, 0xec, 0x54, 0x52, 0x9b,
+ 0xd3, 0x8a, 0xdc, 0x7a, 0x62, 0x5b, 0x42, 0x8b,
+};
+static const unsigned char kat2007_nonce[] = {
+ 0x56, 0x8f, 0x2b, 0x58, 0xe8, 0x4d, 0xe0, 0x57, 0xbf, 0x00, 0x63, 0x0c,
+ 0x12, 0x5e, 0x38, 0x4b,
+};
+static const unsigned char kat2007_persstr[] = {0};
+static const unsigned char kat2007_entropyinreseed[] = {
+ 0x14, 0x67, 0x4d, 0xc6, 0x20, 0x3e, 0x93, 0x19, 0xfa, 0x81, 0x0f, 0x48,
+ 0x07, 0x37, 0xda, 0xa3, 0x47, 0x99, 0x0e, 0x83, 0x03, 0xb5, 0x9c, 0xb8,
+ 0xe4, 0x76, 0x3d, 0xab, 0xb1, 0x0b, 0xa2, 0xae,
+};
+static const unsigned char kat2007_addinreseed[] = {
+ 0x90, 0x96, 0xef, 0x0d, 0xc5, 0x38, 0xc5, 0x14, 0xd7, 0x85, 0x50, 0x66,
+ 0x0b, 0x42, 0x4c, 0x7b, 0x95, 0xf0, 0x3d, 0xbd, 0x13, 0x90, 0xee, 0xa4,
+ 0x18, 0x85, 0xc3, 0xf0, 0xa5, 0x9b, 0xf3, 0x57,
+};
+static const unsigned char kat2007_addin0[] = {
+ 0x35, 0x74, 0x31, 0x99, 0xbd, 0xb9, 0x56, 0xd2, 0x69, 0xcd, 0xdc, 0x55,
+ 0xa8, 0xaf, 0x52, 0xe4, 0x98, 0x16, 0x88, 0x29, 0x56, 0xeb, 0xe3, 0x17,
+ 0xfd, 0x7e, 0x09, 0x5a, 0x6f, 0x18, 0x30, 0xd8,
+};
+static const unsigned char kat2007_addin1[] = {
+ 0x29, 0x84, 0x5f, 0x68, 0x8d, 0x6f, 0x7c, 0x00, 0xa1, 0x4a, 0x72, 0xb0,
+ 0xa4, 0xbc, 0x5e, 0x6c, 0x31, 0x95, 0xd0, 0xb0, 0x43, 0x6e, 0xa6, 0x7c,
+ 0x09, 0x8c, 0x0a, 0xbe, 0x05, 0x85, 0x0b, 0x90,
+};
+static const unsigned char kat2007_retbits[] = {
+ 0xc6, 0xc6, 0xd6, 0xdb, 0x9a, 0xe3, 0xfc, 0x25, 0xbc, 0x5b, 0x17, 0xcc,
+ 0x44, 0x8b, 0x95, 0xe8, 0xc7, 0xf1, 0xa0, 0x7b, 0xb3, 0xd0, 0x26, 0x47,
+ 0xbc, 0x88, 0xcc, 0x8e, 0x8e, 0xd1, 0x07, 0x58, 0x41, 0x6a, 0xc0, 0xa7,
+ 0x6c, 0x55, 0x65, 0xe3, 0x8f, 0xa5, 0xd6, 0x9b, 0xe6, 0x52, 0x84, 0x40,
+ 0x5f, 0x51, 0x7a, 0x84, 0x6c, 0x3e, 0x43, 0x11, 0xa6, 0xf3, 0x82, 0x58,
+ 0x3c, 0xf8, 0x96, 0x46,
+};
+static const struct drbg_kat_pr_false kat2007_t = {
+ 11, kat2007_entropyin, kat2007_nonce, kat2007_persstr,
+ kat2007_entropyinreseed, kat2007_addinreseed, kat2007_addin0,
+ kat2007_addin1, kat2007_retbits
+};
+static const struct drbg_kat kat2007 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2007_t
+};
+
+static const unsigned char kat2008_entropyin[] = {
+ 0x26, 0x7d, 0x90, 0x56, 0xdb, 0xf8, 0x60, 0x31, 0xeb, 0x8c, 0x5a, 0x98,
+ 0x28, 0xf7, 0x99, 0x1c, 0x67, 0xa8, 0xe0, 0x41, 0xaa, 0x62, 0xaf, 0xd0,
+ 0xf6, 0x5b, 0x51, 0x4b, 0xfc, 0xd6, 0xa4, 0xf9,
+};
+static const unsigned char kat2008_nonce[] = {
+ 0x43, 0x97, 0xda, 0x37, 0xff, 0x90, 0x73, 0x1f, 0x27, 0x23, 0x48, 0x2a,
+ 0x2b, 0xdc, 0x99, 0x11,
+};
+static const unsigned char kat2008_persstr[] = {0};
+static const unsigned char kat2008_entropyinreseed[] = {
+ 0xba, 0x2a, 0x72, 0x41, 0xbb, 0xf3, 0xb5, 0xc6, 0xfc, 0xfd, 0x20, 0x60,
+ 0x0f, 0x69, 0x31, 0x4f, 0x29, 0x06, 0x97, 0x85, 0x75, 0xb1, 0x20, 0xa7,
+ 0x59, 0xea, 0x4f, 0xc8, 0x34, 0xd0, 0x70, 0x10,
+};
+static const unsigned char kat2008_addinreseed[] = {
+ 0x7e, 0xce, 0xd6, 0x5d, 0x87, 0xc5, 0x5a, 0x81, 0xfa, 0x01, 0xc4, 0x6b,
+ 0xfd, 0x80, 0x95, 0x8a, 0x87, 0xe6, 0x71, 0xf8, 0x6a, 0x62, 0x8a, 0x3a,
+ 0xd0, 0xa1, 0xc5, 0xb0, 0x63, 0x9c, 0xe4, 0xb3,
+};
+static const unsigned char kat2008_addin0[] = {
+ 0x09, 0xb5, 0xde, 0x16, 0x81, 0xb5, 0x52, 0x6e, 0xfd, 0xe5, 0x8f, 0xe9,
+ 0xd3, 0xab, 0xe4, 0xcd, 0x4e, 0x74, 0xf5, 0xdf, 0xd4, 0x83, 0x92, 0xa8,
+ 0x51, 0xf8, 0x85, 0x59, 0x6f, 0xd5, 0xb8, 0xbd,
+};
+static const unsigned char kat2008_addin1[] = {
+ 0x48, 0xee, 0x86, 0x11, 0xaa, 0x8c, 0x0e, 0x75, 0xa2, 0xd4, 0x5a, 0x65,
+ 0x82, 0x6a, 0x49, 0xf0, 0xd2, 0x1d, 0xfb, 0x4a, 0xf3, 0xfd, 0x1d, 0x17,
+ 0xcd, 0x64, 0x9f, 0x52, 0xbf, 0xe2, 0x6a, 0x9a,
+};
+static const unsigned char kat2008_retbits[] = {
+ 0xff, 0xe8, 0xbd, 0xbe, 0xfd, 0x0c, 0xf8, 0x21, 0xda, 0x1e, 0x0a, 0x3c,
+ 0xd8, 0xe8, 0x12, 0xe2, 0x9b, 0x2c, 0x10, 0xfb, 0x00, 0xb5, 0xcc, 0xbd,
+ 0x35, 0x81, 0x0b, 0x74, 0xa0, 0xc9, 0x6d, 0x54, 0x88, 0xfc, 0x6c, 0xd2,
+ 0x0d, 0x4a, 0x36, 0x35, 0xaf, 0x14, 0x28, 0x21, 0x6a, 0x75, 0x4c, 0x32,
+ 0xaa, 0x0c, 0x4a, 0x2e, 0xdf, 0xb8, 0xbd, 0xa3, 0x71, 0xa2, 0x5a, 0xe7,
+ 0x7f, 0x6b, 0x05, 0x0c,
+};
+static const struct drbg_kat_pr_false kat2008_t = {
+ 12, kat2008_entropyin, kat2008_nonce, kat2008_persstr,
+ kat2008_entropyinreseed, kat2008_addinreseed, kat2008_addin0,
+ kat2008_addin1, kat2008_retbits
+};
+static const struct drbg_kat kat2008 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2008_t
+};
+
+static const unsigned char kat2009_entropyin[] = {
+ 0x12, 0x26, 0x88, 0x7c, 0xec, 0xc5, 0xee, 0xf4, 0x73, 0x92, 0x74, 0x5c,
+ 0xf9, 0x29, 0xff, 0xff, 0x4d, 0xd6, 0xe9, 0xc0, 0xda, 0x8b, 0xbe, 0x5e,
+ 0x32, 0xaa, 0x0a, 0xbd, 0xaa, 0xf4, 0x28, 0x84,
+};
+static const unsigned char kat2009_nonce[] = {
+ 0x67, 0x97, 0x5b, 0x45, 0xee, 0xf8, 0x94, 0xaa, 0x8d, 0x40, 0x4f, 0xa2,
+ 0x98, 0xb0, 0xaa, 0xa1,
+};
+static const unsigned char kat2009_persstr[] = {0};
+static const unsigned char kat2009_entropyinreseed[] = {
+ 0xe7, 0xaf, 0xf4, 0x6f, 0x2b, 0x77, 0x18, 0x99, 0x23, 0x8f, 0xa6, 0xc0,
+ 0x9c, 0x09, 0x48, 0x21, 0x66, 0x46, 0x11, 0xc6, 0x6a, 0x57, 0x8c, 0x25,
+ 0xbb, 0x3e, 0xf5, 0xe5, 0x3d, 0xb4, 0xbd, 0x8b,
+};
+static const unsigned char kat2009_addinreseed[] = {
+ 0xcf, 0xbd, 0xad, 0x53, 0xab, 0x7c, 0xc8, 0xcb, 0x78, 0x51, 0x2c, 0x7f,
+ 0x19, 0x5d, 0x95, 0x54, 0x48, 0xfa, 0x80, 0xcc, 0x08, 0xe1, 0xb5, 0x02,
+ 0x81, 0xa7, 0xe9, 0x8b, 0x0e, 0xdd, 0xd7, 0x80,
+};
+static const unsigned char kat2009_addin0[] = {
+ 0x3d, 0x83, 0xa6, 0x01, 0x49, 0x48, 0x7c, 0xd4, 0x4f, 0x12, 0x69, 0xc4,
+ 0xa2, 0xbe, 0xcb, 0x26, 0x20, 0x93, 0x96, 0x45, 0xe6, 0x89, 0x86, 0x85,
+ 0x51, 0x28, 0x6c, 0x70, 0xf3, 0x7f, 0x61, 0xc4,
+};
+static const unsigned char kat2009_addin1[] = {
+ 0x7a, 0x20, 0xbc, 0x5e, 0x65, 0xa9, 0xbf, 0x88, 0x66, 0x9d, 0xe6, 0x26,
+ 0xa5, 0x7b, 0xff, 0xfd, 0xf6, 0x7f, 0xfb, 0x31, 0x10, 0x54, 0x19, 0x11,
+ 0x26, 0xce, 0x18, 0x81, 0x9a, 0xc7, 0x07, 0xcb,
+};
+static const unsigned char kat2009_retbits[] = {
+ 0x68, 0x05, 0xb3, 0x15, 0xc0, 0xbc, 0x3e, 0xdd, 0x65, 0x74, 0x85, 0x92,
+ 0xb5, 0xb2, 0xde, 0xa1, 0x67, 0x83, 0xc2, 0x01, 0xfc, 0x46, 0x93, 0xd4,
+ 0x0c, 0x1e, 0x2b, 0x9c, 0xba, 0x53, 0x34, 0x53, 0x02, 0x4f, 0x07, 0xd8,
+ 0xa7, 0x0b, 0xcd, 0xe4, 0xbf, 0x8d, 0x1f, 0x62, 0xf3, 0x58, 0xb9, 0xbf,
+ 0x53, 0x37, 0x27, 0x06, 0xe9, 0x24, 0x06, 0x2a, 0x16, 0x03, 0x74, 0x62,
+ 0x53, 0x83, 0x00, 0xcd,
+};
+static const struct drbg_kat_pr_false kat2009_t = {
+ 13, kat2009_entropyin, kat2009_nonce, kat2009_persstr,
+ kat2009_entropyinreseed, kat2009_addinreseed, kat2009_addin0,
+ kat2009_addin1, kat2009_retbits
+};
+static const struct drbg_kat kat2009 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2009_t
+};
+
+static const unsigned char kat2010_entropyin[] = {
+ 0x5e, 0xaf, 0x75, 0x44, 0xa8, 0x32, 0xc9, 0xc9, 0xea, 0x6d, 0x44, 0xfe,
+ 0xb9, 0x32, 0x3f, 0x5f, 0xad, 0x6b, 0xe9, 0xdd, 0x7e, 0xb3, 0x58, 0x3e,
+ 0x37, 0xd2, 0x6d, 0x0a, 0x11, 0x39, 0x68, 0xa4,
+};
+static const unsigned char kat2010_nonce[] = {
+ 0xc8, 0x2d, 0x1b, 0xa5, 0xb2, 0x1f, 0x00, 0x63, 0xca, 0x68, 0x67, 0x06,
+ 0xbe, 0x55, 0x64, 0x72,
+};
+static const unsigned char kat2010_persstr[] = {0};
+static const unsigned char kat2010_entropyinreseed[] = {
+ 0x3c, 0xbd, 0x80, 0x7a, 0xe5, 0xa1, 0x28, 0x3e, 0x8c, 0xd8, 0xbc, 0x36,
+ 0xf8, 0x9d, 0xbc, 0x74, 0x74, 0x34, 0xe5, 0x87, 0x21, 0xd8, 0x38, 0x7f,
+ 0x3d, 0x3f, 0xef, 0x48, 0xc6, 0x6e, 0x25, 0x95,
+};
+static const unsigned char kat2010_addinreseed[] = {
+ 0x35, 0x50, 0x19, 0x8b, 0xe9, 0x9e, 0x10, 0x84, 0xad, 0x87, 0xf1, 0x3f,
+ 0xab, 0x41, 0x21, 0x33, 0x3c, 0x38, 0x99, 0x61, 0xef, 0x48, 0x91, 0x9d,
+ 0x9b, 0xb8, 0x37, 0xb2, 0x46, 0xdf, 0x56, 0x11,
+};
+static const unsigned char kat2010_addin0[] = {
+ 0xbd, 0x20, 0xf7, 0x26, 0x63, 0xcc, 0xae, 0xb0, 0x86, 0x32, 0x8a, 0x3c,
+ 0x59, 0xd3, 0xee, 0x4a, 0x2d, 0xb2, 0xd8, 0xb0, 0x10, 0xff, 0x8f, 0x41,
+ 0x46, 0xaf, 0x45, 0x05, 0x8b, 0x2a, 0xf6, 0x2b,
+};
+static const unsigned char kat2010_addin1[] = {
+ 0xc6, 0xb1, 0x9e, 0x4c, 0xd3, 0xd8, 0xdf, 0x2c, 0x95, 0x3e, 0x0a, 0xdd,
+ 0xac, 0xbf, 0xf6, 0xf4, 0x47, 0x44, 0x1f, 0xe2, 0x30, 0x9b, 0xd8, 0xc4,
+ 0x37, 0x13, 0x7b, 0xec, 0x1b, 0xb9, 0xb8, 0x19,
+};
+static const unsigned char kat2010_retbits[] = {
+ 0x01, 0x9d, 0x32, 0x2a, 0x41, 0xa6, 0xcd, 0x1f, 0x4f, 0x7a, 0x06, 0xed,
+ 0xdb, 0x64, 0xaf, 0x1f, 0x84, 0x17, 0x09, 0x70, 0xb9, 0x38, 0xf4, 0x27,
+ 0xe2, 0x4b, 0x7c, 0xaa, 0x3f, 0x82, 0x17, 0x04, 0xba, 0x6b, 0x73, 0xac,
+ 0x67, 0xc2, 0x98, 0xfc, 0x09, 0xc0, 0x76, 0xe5, 0x6c, 0xda, 0x06, 0x5d,
+ 0xe3, 0xd0, 0x68, 0x2a, 0xbe, 0x6e, 0x55, 0x84, 0x1f, 0x68, 0x5e, 0x4a,
+ 0xb3, 0x27, 0x70, 0x2d,
+};
+static const struct drbg_kat_pr_false kat2010_t = {
+ 14, kat2010_entropyin, kat2010_nonce, kat2010_persstr,
+ kat2010_entropyinreseed, kat2010_addinreseed, kat2010_addin0,
+ kat2010_addin1, kat2010_retbits
+};
+static const struct drbg_kat kat2010 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2010_t
+};
+
+static const unsigned char kat2011_entropyin[] = {
+ 0x4c, 0xfb, 0x21, 0x86, 0x73, 0x34, 0x6d, 0x9d, 0x50, 0xc9, 0x22, 0xe4,
+ 0x9b, 0x0d, 0xfc, 0xd0, 0x90, 0xad, 0xf0, 0x4f, 0x5c, 0x3b, 0xa4, 0x73,
+ 0x27, 0xdf, 0xcd, 0x6f, 0xa6, 0x3a, 0x78, 0x5c,
+};
+static const unsigned char kat2011_nonce[] = {
+ 0x01, 0x69, 0x62, 0xa7, 0xfd, 0x27, 0x87, 0xa2, 0x4b, 0xf6, 0xbe, 0x47,
+ 0xef, 0x37, 0x83, 0xf1,
+};
+static const unsigned char kat2011_persstr[] = {
+ 0x88, 0xee, 0xb8, 0xe0, 0xe8, 0x3b, 0xf3, 0x29, 0x4b, 0xda, 0xcd, 0x60,
+ 0x99, 0xeb, 0xe4, 0xbf, 0x55, 0xec, 0xd9, 0x11, 0x3f, 0x71, 0xe5, 0xeb,
+ 0xcb, 0x45, 0x75, 0xf3, 0xd6, 0xa6, 0x8a, 0x6b,
+};
+static const unsigned char kat2011_entropyinreseed[] = {
+ 0xb7, 0xec, 0x46, 0x07, 0x23, 0x63, 0x83, 0x4a, 0x1b, 0x01, 0x33, 0xf2,
+ 0xc2, 0x38, 0x91, 0xdb, 0x4f, 0x11, 0xa6, 0x86, 0x51, 0xf2, 0x3e, 0x3a,
+ 0x8b, 0x1f, 0xdc, 0x03, 0xb1, 0x92, 0xc7, 0xe7,
+};
+static const unsigned char kat2011_addinreseed[] = {0};
+static const unsigned char kat2011_addin0[] = {0};
+static const unsigned char kat2011_addin1[] = {0};
+static const unsigned char kat2011_retbits[] = {
+ 0xa5, 0x51, 0x80, 0xa1, 0x90, 0xbe, 0xf3, 0xad, 0xaf, 0x28, 0xf6, 0xb7,
+ 0x95, 0xe9, 0xf1, 0xf3, 0xd6, 0xdf, 0xa1, 0xb2, 0x7d, 0xd0, 0x46, 0x7b,
+ 0x0c, 0x75, 0xf5, 0xfa, 0x93, 0x1e, 0x97, 0x14, 0x75, 0xb2, 0x7c, 0xae,
+ 0x03, 0xa2, 0x96, 0x54, 0xe2, 0xf4, 0x09, 0x66, 0xea, 0x33, 0x64, 0x30,
+ 0x40, 0xd1, 0x40, 0x0f, 0xe6, 0x77, 0x87, 0x3a, 0xf8, 0x09, 0x7c, 0x1f,
+ 0xe9, 0xf0, 0x02, 0x98,
+};
+static const struct drbg_kat_pr_false kat2011_t = {
+ 0, kat2011_entropyin, kat2011_nonce, kat2011_persstr,
+ kat2011_entropyinreseed, kat2011_addinreseed, kat2011_addin0,
+ kat2011_addin1, kat2011_retbits
+};
+static const struct drbg_kat kat2011 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2011_t
+};
+
+static const unsigned char kat2012_entropyin[] = {
+ 0x29, 0xce, 0xa3, 0x1e, 0x47, 0x32, 0x08, 0xa5, 0x52, 0xad, 0x82, 0x6d,
+ 0x25, 0x50, 0x3e, 0xbc, 0x06, 0x5d, 0x88, 0x7d, 0xda, 0xa8, 0x3e, 0xf9,
+ 0xcf, 0xf8, 0x30, 0x44, 0xf2, 0xe4, 0x9b, 0xc0,
+};
+static const unsigned char kat2012_nonce[] = {
+ 0x45, 0x4c, 0x1c, 0x31, 0x8f, 0x74, 0xb3, 0x32, 0xc8, 0x98, 0xf0, 0x2e,
+ 0x95, 0x1f, 0x4f, 0xc5,
+};
+static const unsigned char kat2012_persstr[] = {
+ 0x67, 0x8d, 0xae, 0xda, 0x93, 0x30, 0x5c, 0x64, 0xc0, 0xfd, 0x05, 0x6c,
+ 0x9e, 0xf4, 0x26, 0x95, 0xf4, 0x0e, 0x5a, 0xf6, 0x13, 0x08, 0x21, 0xb4,
+ 0xa4, 0xd7, 0x06, 0xe7, 0x01, 0x3f, 0xc5, 0x23,
+};
+static const unsigned char kat2012_entropyinreseed[] = {
+ 0x23, 0x42, 0xd3, 0xd6, 0x2a, 0xcb, 0x6d, 0x40, 0x2a, 0xf7, 0x57, 0x35,
+ 0x96, 0x31, 0xb5, 0x30, 0x29, 0xed, 0x18, 0xd9, 0x7e, 0xf7, 0xd6, 0xae,
+ 0x9c, 0xf7, 0xff, 0xc3, 0x40, 0x20, 0x28, 0x08,
+};
+static const unsigned char kat2012_addinreseed[] = {0};
+static const unsigned char kat2012_addin0[] = {0};
+static const unsigned char kat2012_addin1[] = {0};
+static const unsigned char kat2012_retbits[] = {
+ 0x65, 0x14, 0x67, 0xac, 0xa6, 0x45, 0x4e, 0x17, 0x5f, 0x85, 0x79, 0x24,
+ 0xe1, 0x48, 0x32, 0x94, 0xc7, 0xbf, 0xd3, 0xbc, 0x22, 0x63, 0xa1, 0xde,
+ 0xe9, 0x03, 0xb7, 0xeb, 0x9b, 0xb0, 0x89, 0x95, 0x03, 0xbf, 0x61, 0xec,
+ 0x2a, 0x9d, 0xb5, 0x8e, 0x69, 0xaa, 0xc0, 0x9a, 0xc4, 0x46, 0x31, 0xe4,
+ 0xc7, 0xd4, 0xc0, 0x5d, 0xc7, 0x04, 0x19, 0x87, 0x06, 0xea, 0xe2, 0xd1,
+ 0xa1, 0xef, 0x76, 0x6e,
+};
+static const struct drbg_kat_pr_false kat2012_t = {
+ 1, kat2012_entropyin, kat2012_nonce, kat2012_persstr,
+ kat2012_entropyinreseed, kat2012_addinreseed, kat2012_addin0,
+ kat2012_addin1, kat2012_retbits
+};
+static const struct drbg_kat kat2012 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2012_t
+};
+
+static const unsigned char kat2013_entropyin[] = {
+ 0x23, 0x9e, 0xa1, 0x4c, 0x16, 0x90, 0x01, 0x73, 0xfb, 0xed, 0x08, 0x06,
+ 0xa3, 0x46, 0x5d, 0xf4, 0x83, 0xce, 0x98, 0x16, 0x06, 0xd9, 0xa3, 0x68,
+ 0x80, 0xd1, 0xca, 0x8d, 0xb2, 0x4f, 0xc2, 0x98,
+};
+static const unsigned char kat2013_nonce[] = {
+ 0x3a, 0xf4, 0x04, 0xff, 0x32, 0x62, 0x20, 0x0c, 0x22, 0xb6, 0x46, 0xba,
+ 0x80, 0xbb, 0xf5, 0x38,
+};
+static const unsigned char kat2013_persstr[] = {
+ 0x63, 0x57, 0x37, 0x22, 0x01, 0x06, 0xb0, 0x84, 0xc6, 0x41, 0xbb, 0xa0,
+ 0x05, 0x73, 0x1f, 0xeb, 0xb6, 0xea, 0xe4, 0x58, 0xf0, 0xfe, 0x38, 0x77,
+ 0x7b, 0x2f, 0x85, 0xb0, 0x49, 0xa1, 0x71, 0xb7,
+};
+static const unsigned char kat2013_entropyinreseed[] = {
+ 0x34, 0x51, 0x9e, 0x5f, 0x5a, 0x23, 0x70, 0x0d, 0x3b, 0x62, 0xcb, 0x3f,
+ 0x0f, 0x36, 0x22, 0x14, 0xa8, 0x87, 0x42, 0xcc, 0x5d, 0x11, 0x2d, 0x47,
+ 0x4f, 0x8c, 0xfd, 0x81, 0xa9, 0x3a, 0xce, 0x1f,
+};
+static const unsigned char kat2013_addinreseed[] = {0};
+static const unsigned char kat2013_addin0[] = {0};
+static const unsigned char kat2013_addin1[] = {0};
+static const unsigned char kat2013_retbits[] = {
+ 0xd7, 0x55, 0x42, 0xca, 0x92, 0x64, 0x44, 0xd0, 0xab, 0x13, 0xd4, 0x20,
+ 0x97, 0xfa, 0xb5, 0x94, 0xc5, 0x02, 0x33, 0xe2, 0x1b, 0x5d, 0x46, 0x39,
+ 0xe3, 0x2c, 0x5b, 0xc2, 0x04, 0xd3, 0xfb, 0xe7, 0x8b, 0x58, 0x34, 0x94,
+ 0x69, 0x2e, 0x72, 0x0b, 0x07, 0x14, 0xb5, 0xdd, 0x64, 0x7f, 0x5e, 0xbb,
+ 0xba, 0x76, 0xf1, 0xe2, 0x70, 0x28, 0xb9, 0x79, 0xc2, 0xde, 0x7b, 0x62,
+ 0xf7, 0x57, 0x87, 0x68,
+};
+static const struct drbg_kat_pr_false kat2013_t = {
+ 2, kat2013_entropyin, kat2013_nonce, kat2013_persstr,
+ kat2013_entropyinreseed, kat2013_addinreseed, kat2013_addin0,
+ kat2013_addin1, kat2013_retbits
+};
+static const struct drbg_kat kat2013 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2013_t
+};
+
+static const unsigned char kat2014_entropyin[] = {
+ 0xd8, 0xff, 0x66, 0xe0, 0xe9, 0xc2, 0x6a, 0x79, 0x85, 0xda, 0xde, 0x71,
+ 0xe9, 0xf6, 0x1b, 0xa4, 0x35, 0x3b, 0x88, 0x7a, 0x09, 0xfb, 0xc8, 0x9d,
+ 0x77, 0xfa, 0x9d, 0xc7, 0x39, 0xff, 0xc7, 0xf8,
+};
+static const unsigned char kat2014_nonce[] = {
+ 0x4a, 0xe3, 0x0b, 0x04, 0x7f, 0x67, 0x41, 0x39, 0x3e, 0x8d, 0x77, 0x25,
+ 0x99, 0x2c, 0x5c, 0x44,
+};
+static const unsigned char kat2014_persstr[] = {
+ 0x51, 0x7e, 0x7d, 0x94, 0x13, 0x79, 0xd2, 0x5c, 0x82, 0xc1, 0x29, 0xc1,
+ 0x0f, 0x3e, 0xe4, 0xdd, 0x7e, 0xaf, 0xad, 0x17, 0x53, 0xd7, 0x38, 0x3e,
+ 0xaf, 0x81, 0x97, 0x02, 0xea, 0x93, 0xf1, 0xea,
+};
+static const unsigned char kat2014_entropyinreseed[] = {
+ 0xb0, 0x88, 0xea, 0x2c, 0xc9, 0x30, 0xd1, 0x67, 0x7f, 0xc6, 0x9d, 0x9e,
+ 0x60, 0x59, 0x47, 0xc5, 0x98, 0xff, 0x67, 0x4b, 0x52, 0x74, 0x2f, 0xc6,
+ 0xdb, 0x01, 0x77, 0x5a, 0x62, 0xd2, 0x57, 0xfd,
+};
+static const unsigned char kat2014_addinreseed[] = {0};
+static const unsigned char kat2014_addin0[] = {0};
+static const unsigned char kat2014_addin1[] = {0};
+static const unsigned char kat2014_retbits[] = {
+ 0x50, 0x44, 0xf6, 0x8a, 0x7a, 0x7b, 0x26, 0xcf, 0xed, 0xc0, 0x63, 0x78,
+ 0xba, 0x9e, 0xa1, 0x6d, 0x47, 0x15, 0x25, 0x42, 0x93, 0x45, 0x64, 0xbc,
+ 0xee, 0x62, 0x78, 0x24, 0xf5, 0xb7, 0x2b, 0x59, 0x5e, 0xf3, 0xc3, 0xd8,
+ 0xfd, 0xba, 0xeb, 0x29, 0x6c, 0x8e, 0x10, 0x66, 0x40, 0x1f, 0xf4, 0x38,
+ 0xd3, 0xb3, 0xd1, 0xd2, 0x5a, 0xec, 0xf7, 0x79, 0x03, 0x43, 0x23, 0xa2,
+ 0x60, 0x5f, 0x9e, 0xa8,
+};
+static const struct drbg_kat_pr_false kat2014_t = {
+ 3, kat2014_entropyin, kat2014_nonce, kat2014_persstr,
+ kat2014_entropyinreseed, kat2014_addinreseed, kat2014_addin0,
+ kat2014_addin1, kat2014_retbits
+};
+static const struct drbg_kat kat2014 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2014_t
+};
+
+static const unsigned char kat2015_entropyin[] = {
+ 0x91, 0x73, 0xc4, 0x4a, 0xba, 0xf9, 0x26, 0xae, 0x00, 0xb7, 0x71, 0xbd,
+ 0x72, 0xc4, 0x97, 0xcd, 0x58, 0x3d, 0x8b, 0x3c, 0x11, 0x6f, 0x32, 0x04,
+ 0x4d, 0x6a, 0xce, 0x54, 0xf2, 0x9a, 0xf5, 0x9a,
+};
+static const unsigned char kat2015_nonce[] = {
+ 0x72, 0x6d, 0xab, 0xbe, 0x47, 0x46, 0x51, 0xda, 0x76, 0x06, 0xb6, 0x5a,
+ 0x2b, 0xbe, 0x0a, 0x6f,
+};
+static const unsigned char kat2015_persstr[] = {
+ 0x7a, 0x66, 0xdd, 0x4b, 0x42, 0xf9, 0x0a, 0x05, 0x57, 0x5c, 0xab, 0x46,
+ 0x08, 0xc9, 0x4d, 0x69, 0xe7, 0x4c, 0x96, 0x8d, 0x69, 0x7f, 0x66, 0xa2,
+ 0xea, 0xd4, 0x0d, 0x4d, 0xc0, 0xd5, 0x3e, 0xfa,
+};
+static const unsigned char kat2015_entropyinreseed[] = {
+ 0x09, 0xf2, 0x29, 0x4f, 0x43, 0xb6, 0x8a, 0x99, 0x25, 0x09, 0xdc, 0xfa,
+ 0xaf, 0x82, 0xb3, 0x0e, 0xc4, 0x73, 0x66, 0x7b, 0xe7, 0x79, 0xf2, 0x2b,
+ 0x03, 0x53, 0xd9, 0x01, 0xd2, 0x1a, 0x70, 0x47,
+};
+static const unsigned char kat2015_addinreseed[] = {0};
+static const unsigned char kat2015_addin0[] = {0};
+static const unsigned char kat2015_addin1[] = {0};
+static const unsigned char kat2015_retbits[] = {
+ 0xf3, 0x6d, 0x59, 0xc8, 0xe3, 0x28, 0xba, 0x45, 0xb1, 0x50, 0x74, 0xbc,
+ 0x59, 0x69, 0x62, 0xec, 0xe0, 0x48, 0x4e, 0xfc, 0x73, 0x35, 0x93, 0x2d,
+ 0x8d, 0x49, 0x2e, 0xcd, 0xe2, 0x55, 0x2c, 0x6d, 0xf3, 0xb5, 0x2d, 0xa8,
+ 0xba, 0xa0, 0x5d, 0xd4, 0x18, 0xcb, 0x39, 0xb2, 0x9f, 0x84, 0x68, 0xbd,
+ 0xe9, 0xe8, 0x82, 0xbc, 0x11, 0xe0, 0x7a, 0x03, 0x7e, 0xcc, 0xd2, 0x04,
+ 0x7c, 0x0b, 0x32, 0xae,
+};
+static const struct drbg_kat_pr_false kat2015_t = {
+ 4, kat2015_entropyin, kat2015_nonce, kat2015_persstr,
+ kat2015_entropyinreseed, kat2015_addinreseed, kat2015_addin0,
+ kat2015_addin1, kat2015_retbits
+};
+static const struct drbg_kat kat2015 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2015_t
+};
+
+static const unsigned char kat2016_entropyin[] = {
+ 0xde, 0x5a, 0x2a, 0x51, 0x29, 0x31, 0xc0, 0x71, 0x93, 0x32, 0xce, 0xb5,
+ 0x14, 0x60, 0x5f, 0x89, 0xb3, 0x05, 0xca, 0xe6, 0x26, 0x24, 0xe6, 0xf8,
+ 0xb4, 0xe5, 0x98, 0x44, 0xc4, 0x61, 0xf2, 0xbc,
+};
+static const unsigned char kat2016_nonce[] = {
+ 0x74, 0x28, 0x15, 0xb8, 0xfe, 0x39, 0x9e, 0x5f, 0x2d, 0xf4, 0x58, 0x11,
+ 0xf6, 0x54, 0xc6, 0x0e,
+};
+static const unsigned char kat2016_persstr[] = {
+ 0xf8, 0x69, 0xd9, 0x30, 0x28, 0x89, 0x61, 0xe4, 0x3e, 0x11, 0x2e, 0xc0,
+ 0x26, 0xde, 0xaf, 0x76, 0xcf, 0x5d, 0x00, 0x12, 0xc2, 0x45, 0xea, 0xec,
+ 0x57, 0x1b, 0x30, 0xc1, 0x3b, 0xb5, 0x34, 0xc4,
+};
+static const unsigned char kat2016_entropyinreseed[] = {
+ 0xaa, 0x1c, 0x49, 0x3e, 0x86, 0x57, 0xab, 0x3d, 0xc2, 0xd7, 0x78, 0xb5,
+ 0x84, 0x5c, 0x16, 0x10, 0xa6, 0xd0, 0x79, 0x71, 0xe4, 0x36, 0x66, 0x66,
+ 0xd2, 0x46, 0xc7, 0xaa, 0x15, 0x57, 0x8b, 0x01,
+};
+static const unsigned char kat2016_addinreseed[] = {0};
+static const unsigned char kat2016_addin0[] = {0};
+static const unsigned char kat2016_addin1[] = {0};
+static const unsigned char kat2016_retbits[] = {
+ 0x7d, 0xf6, 0xed, 0xe4, 0x50, 0xfa, 0xcd, 0x51, 0xdd, 0xb9, 0x31, 0xf7,
+ 0xa8, 0x17, 0xb6, 0xc1, 0xff, 0x27, 0xa3, 0x09, 0x4c, 0xf7, 0xdd, 0x4e,
+ 0x25, 0xc3, 0x90, 0xbe, 0xd8, 0x38, 0xad, 0x47, 0xb8, 0xc0, 0x3d, 0xe0,
+ 0xa6, 0xbc, 0xba, 0xd3, 0x7b, 0x0d, 0x1c, 0xb5, 0x5a, 0xab, 0x58, 0xf6,
+ 0xf0, 0x35, 0x71, 0x87, 0xb2, 0xec, 0x22, 0xd9, 0xe8, 0x8a, 0xa9, 0x80,
+ 0xb6, 0xe5, 0x4d, 0x75,
+};
+static const struct drbg_kat_pr_false kat2016_t = {
+ 5, kat2016_entropyin, kat2016_nonce, kat2016_persstr,
+ kat2016_entropyinreseed, kat2016_addinreseed, kat2016_addin0,
+ kat2016_addin1, kat2016_retbits
+};
+static const struct drbg_kat kat2016 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2016_t
+};
+
+static const unsigned char kat2017_entropyin[] = {
+ 0x77, 0x53, 0x1f, 0x8a, 0xd0, 0x07, 0xaa, 0xd3, 0x1f, 0xc1, 0x05, 0xe0,
+ 0xee, 0xc0, 0x24, 0xd5, 0x02, 0xcf, 0x76, 0xfd, 0x8f, 0xaa, 0xcd, 0x8b,
+ 0x46, 0xeb, 0x83, 0x4d, 0xfc, 0xf8, 0xd5, 0xae,
+};
+static const unsigned char kat2017_nonce[] = {
+ 0x37, 0xde, 0x8b, 0xaa, 0x4b, 0x96, 0x68, 0x97, 0x93, 0xae, 0x6a, 0xd9,
+ 0x9a, 0xd3, 0x44, 0x5c,
+};
+static const unsigned char kat2017_persstr[] = {
+ 0x67, 0xdd, 0xa2, 0xdb, 0x55, 0x9e, 0xbc, 0x63, 0x8e, 0x18, 0x2c, 0xc5,
+ 0x29, 0x0c, 0xcc, 0x1b, 0xbf, 0xc7, 0x01, 0x7a, 0xf2, 0xda, 0x6b, 0x99,
+ 0x8b, 0x85, 0x12, 0x05, 0x29, 0x61, 0x87, 0x42,
+};
+static const unsigned char kat2017_entropyinreseed[] = {
+ 0x6c, 0xed, 0xc8, 0x68, 0xa2, 0x00, 0xed, 0xca, 0xfc, 0x34, 0xdb, 0xff,
+ 0x2b, 0xb4, 0xbc, 0x78, 0x51, 0xaa, 0x08, 0xa9, 0xf9, 0x23, 0x8b, 0x3f,
+ 0x2b, 0x31, 0xa0, 0x4d, 0x66, 0xab, 0x57, 0x67,
+};
+static const unsigned char kat2017_addinreseed[] = {0};
+static const unsigned char kat2017_addin0[] = {0};
+static const unsigned char kat2017_addin1[] = {0};
+static const unsigned char kat2017_retbits[] = {
+ 0x0f, 0xeb, 0x6c, 0xb4, 0xbd, 0x77, 0x74, 0x91, 0x3d, 0x17, 0x52, 0xec,
+ 0x47, 0x7a, 0x43, 0xe4, 0xcf, 0xc1, 0x14, 0x7e, 0x82, 0x64, 0xda, 0xa3,
+ 0x3d, 0x90, 0x7b, 0x5f, 0x3c, 0x2d, 0xe7, 0x44, 0x60, 0xbc, 0x7d, 0x45,
+ 0xd3, 0xf1, 0x74, 0xbb, 0x7b, 0x24, 0x12, 0x56, 0xae, 0xf2, 0x46, 0x19,
+ 0x31, 0xb3, 0x51, 0x60, 0xf7, 0x93, 0xe9, 0x86, 0x40, 0xb4, 0xe1, 0x07,
+ 0xe3, 0x58, 0x5d, 0xcf,
+};
+static const struct drbg_kat_pr_false kat2017_t = {
+ 6, kat2017_entropyin, kat2017_nonce, kat2017_persstr,
+ kat2017_entropyinreseed, kat2017_addinreseed, kat2017_addin0,
+ kat2017_addin1, kat2017_retbits
+};
+static const struct drbg_kat kat2017 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2017_t
+};
+
+static const unsigned char kat2018_entropyin[] = {
+ 0xee, 0xf2, 0x97, 0xf8, 0x8d, 0x13, 0xed, 0x4c, 0xa5, 0xfc, 0xe5, 0x6a,
+ 0xcb, 0x43, 0x6c, 0x38, 0x77, 0xd7, 0xb9, 0x4d, 0x0a, 0xdb, 0x90, 0xa3,
+ 0x77, 0x44, 0x39, 0x7e, 0x9e, 0x84, 0x68, 0x47,
+};
+static const unsigned char kat2018_nonce[] = {
+ 0x64, 0x31, 0x67, 0x7c, 0x9b, 0x85, 0x22, 0x0d, 0x1c, 0x6b, 0x1f, 0x78,
+ 0x64, 0x19, 0xfa, 0xcd,
+};
+static const unsigned char kat2018_persstr[] = {
+ 0x14, 0x76, 0xd4, 0xb9, 0x16, 0xa8, 0x69, 0x4a, 0x45, 0xfc, 0xd0, 0x08,
+ 0x9f, 0x3b, 0x61, 0x52, 0xed, 0x6e, 0x92, 0x06, 0x4b, 0x1f, 0x6b, 0x6f,
+ 0xb0, 0xa3, 0x13, 0xc7, 0xaa, 0x8e, 0xfa, 0xda,
+};
+static const unsigned char kat2018_entropyinreseed[] = {
+ 0x93, 0x82, 0x5a, 0x28, 0x28, 0x66, 0x26, 0x90, 0x42, 0x4b, 0x8c, 0x6c,
+ 0xf8, 0xdd, 0xbe, 0x9c, 0xd1, 0x4b, 0x14, 0xaf, 0x8d, 0x91, 0x98, 0x4b,
+ 0x66, 0x76, 0xfa, 0x6a, 0x92, 0x42, 0x84, 0x5e,
+};
+static const unsigned char kat2018_addinreseed[] = {0};
+static const unsigned char kat2018_addin0[] = {0};
+static const unsigned char kat2018_addin1[] = {0};
+static const unsigned char kat2018_retbits[] = {
+ 0xa4, 0x5f, 0xbb, 0x99, 0x6a, 0x1c, 0x35, 0xe7, 0xc6, 0x72, 0xb1, 0x68,
+ 0x69, 0x02, 0x3c, 0x7d, 0x1c, 0xe8, 0x1a, 0x1e, 0x10, 0x7a, 0x46, 0x07,
+ 0xd2, 0xf7, 0x56, 0xf7, 0x90, 0x45, 0x26, 0xb7, 0x29, 0x85, 0x85, 0x15,
+ 0x55, 0x3e, 0x39, 0xa7, 0xc7, 0xf4, 0x49, 0x12, 0xa2, 0x7d, 0x8f, 0xc7,
+ 0xfc, 0x61, 0x12, 0x0a, 0x63, 0x62, 0x54, 0x33, 0x98, 0xa2, 0xb5, 0x8c,
+ 0xcd, 0x7a, 0x67, 0xd3,
+};
+static const struct drbg_kat_pr_false kat2018_t = {
+ 7, kat2018_entropyin, kat2018_nonce, kat2018_persstr,
+ kat2018_entropyinreseed, kat2018_addinreseed, kat2018_addin0,
+ kat2018_addin1, kat2018_retbits
+};
+static const struct drbg_kat kat2018 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2018_t
+};
+
+static const unsigned char kat2019_entropyin[] = {
+ 0x6f, 0x77, 0x68, 0x48, 0x07, 0x01, 0xda, 0x57, 0xff, 0xb6, 0xf6, 0x5f,
+ 0xde, 0x52, 0xb3, 0x07, 0x6d, 0x0d, 0x54, 0xdf, 0x32, 0x5a, 0x81, 0x5b,
+ 0xa0, 0x08, 0x9c, 0xf9, 0x66, 0x76, 0x6e, 0x69,
+};
+static const unsigned char kat2019_nonce[] = {
+ 0x7f, 0x97, 0x9d, 0x87, 0x6d, 0xef, 0x96, 0xd8, 0x03, 0xb1, 0xd2, 0x11,
+ 0x17, 0x3c, 0xe4, 0x99,
+};
+static const unsigned char kat2019_persstr[] = {
+ 0xa4, 0x8d, 0x8c, 0xc1, 0x24, 0x57, 0xad, 0xe1, 0x15, 0x15, 0xec, 0x9d,
+ 0xdb, 0xa1, 0x27, 0x4d, 0x05, 0xa6, 0xb3, 0x40, 0x70, 0xf0, 0x4e, 0xe4,
+ 0x27, 0xcb, 0xd2, 0x6a, 0xfc, 0x2e, 0xdf, 0x3b,
+};
+static const unsigned char kat2019_entropyinreseed[] = {
+ 0x3d, 0xfe, 0x53, 0xa6, 0x1b, 0xb7, 0x95, 0x53, 0x7c, 0x65, 0xfe, 0xd8,
+ 0xff, 0xe0, 0x9c, 0x3f, 0x8b, 0xb6, 0x2f, 0xfa, 0x5e, 0x9e, 0x26, 0xcb,
+ 0x29, 0x07, 0x40, 0x1c, 0x4b, 0x8d, 0xcc, 0x1c,
+};
+static const unsigned char kat2019_addinreseed[] = {0};
+static const unsigned char kat2019_addin0[] = {0};
+static const unsigned char kat2019_addin1[] = {0};
+static const unsigned char kat2019_retbits[] = {
+ 0xe5, 0xeb, 0x35, 0x3c, 0xf0, 0xad, 0xbe, 0xf2, 0xe6, 0xc6, 0x2d, 0x74,
+ 0x58, 0x76, 0xa8, 0x35, 0x65, 0x9a, 0x3a, 0x94, 0xcd, 0xd2, 0x32, 0x8b,
+ 0xcc, 0xa6, 0xab, 0xf9, 0x6a, 0xd9, 0x63, 0x7b, 0xe2, 0xff, 0x68, 0xe2,
+ 0x7b, 0x8e, 0x7c, 0xc4, 0x5a, 0x3b, 0x79, 0xd2, 0x57, 0x36, 0x61, 0x81,
+ 0x9e, 0xc6, 0x84, 0xea, 0xb3, 0x4a, 0xba, 0x07, 0xc1, 0xfa, 0xe6, 0xab,
+ 0x81, 0xc9, 0x88, 0xcd,
+};
+static const struct drbg_kat_pr_false kat2019_t = {
+ 8, kat2019_entropyin, kat2019_nonce, kat2019_persstr,
+ kat2019_entropyinreseed, kat2019_addinreseed, kat2019_addin0,
+ kat2019_addin1, kat2019_retbits
+};
+static const struct drbg_kat kat2019 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2019_t
+};
+
+static const unsigned char kat2020_entropyin[] = {
+ 0x2c, 0x07, 0x7b, 0xd7, 0x8a, 0x88, 0x67, 0xc6, 0x27, 0xc8, 0x56, 0xd8,
+ 0xf0, 0x4d, 0x7d, 0x6f, 0x1d, 0x21, 0x62, 0x23, 0x2b, 0x33, 0x91, 0x6a,
+ 0x94, 0x69, 0x97, 0xf4, 0xfb, 0x0f, 0xcf, 0x55,
+};
+static const unsigned char kat2020_nonce[] = {
+ 0xf0, 0x12, 0x36, 0xe4, 0x57, 0x55, 0xd7, 0x21, 0xd5, 0x75, 0xc4, 0xe9,
+ 0x30, 0x41, 0x70, 0xb0,
+};
+static const unsigned char kat2020_persstr[] = {
+ 0x57, 0xef, 0xc6, 0x0e, 0x69, 0x31, 0x51, 0xfb, 0xaf, 0x60, 0x51, 0xde,
+ 0x84, 0xfa, 0x04, 0x29, 0xb4, 0xea, 0xff, 0x35, 0xfe, 0xb7, 0xe8, 0x24,
+ 0xc2, 0xfb, 0xbd, 0x69, 0x2f, 0xb8, 0xd6, 0x8f,
+};
+static const unsigned char kat2020_entropyinreseed[] = {
+ 0x15, 0x1f, 0xeb, 0xac, 0xbf, 0x94, 0x9e, 0x12, 0x93, 0x71, 0x0a, 0x12,
+ 0x50, 0xd2, 0x29, 0xec, 0x02, 0xba, 0x4d, 0xf1, 0x0b, 0x50, 0xab, 0xc2,
+ 0x74, 0x2f, 0x08, 0x3e, 0x3f, 0x92, 0x3a, 0xbf,
+};
+static const unsigned char kat2020_addinreseed[] = {0};
+static const unsigned char kat2020_addin0[] = {0};
+static const unsigned char kat2020_addin1[] = {0};
+static const unsigned char kat2020_retbits[] = {
+ 0xa6, 0xcc, 0x43, 0x1f, 0xb6, 0x26, 0xa9, 0x26, 0x21, 0x0f, 0xf7, 0xd3,
+ 0x08, 0x4e, 0x13, 0x3d, 0xbf, 0x00, 0xb2, 0x2d, 0x98, 0x77, 0xa0, 0x7c,
+ 0x82, 0x22, 0x1b, 0x1a, 0x5e, 0xbd, 0x77, 0xea, 0x67, 0x19, 0x50, 0x16,
+ 0x0e, 0xb2, 0x98, 0x18, 0x4a, 0xfc, 0x62, 0x37, 0x31, 0xa2, 0x22, 0x5b,
+ 0x6c, 0x67, 0x10, 0x4b, 0x85, 0xb9, 0x10, 0x22, 0xad, 0x9d, 0x33, 0xe8,
+ 0x49, 0x5a, 0xcf, 0xad,
+};
+static const struct drbg_kat_pr_false kat2020_t = {
+ 9, kat2020_entropyin, kat2020_nonce, kat2020_persstr,
+ kat2020_entropyinreseed, kat2020_addinreseed, kat2020_addin0,
+ kat2020_addin1, kat2020_retbits
+};
+static const struct drbg_kat kat2020 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2020_t
+};
+
+static const unsigned char kat2021_entropyin[] = {
+ 0x68, 0x5d, 0xe1, 0xf0, 0x40, 0x67, 0x8f, 0x2e, 0x86, 0x11, 0x1f, 0x7a,
+ 0xbf, 0x2f, 0x75, 0x96, 0x49, 0x3b, 0xaa, 0xc9, 0x32, 0xdd, 0x9e, 0xd0,
+ 0x1f, 0xb7, 0x0a, 0xef, 0xab, 0x40, 0xfe, 0x03,
+};
+static const unsigned char kat2021_nonce[] = {
+ 0x5c, 0xcd, 0xe2, 0x40, 0xd7, 0xff, 0x22, 0x93, 0x09, 0x1a, 0x58, 0xde,
+ 0x55, 0x60, 0x2c, 0xa9,
+};
+static const unsigned char kat2021_persstr[] = {
+ 0x3b, 0x18, 0x89, 0x2f, 0xea, 0xb0, 0x83, 0xb5, 0x30, 0x37, 0x1d, 0x6e,
+ 0xb5, 0x99, 0x82, 0x8a, 0x58, 0xa7, 0x6a, 0x34, 0x6f, 0x2a, 0x25, 0xa4,
+ 0x12, 0xf5, 0xd4, 0x60, 0x6f, 0x2f, 0x0b, 0xaa,
+};
+static const unsigned char kat2021_entropyinreseed[] = {
+ 0x3e, 0x7a, 0x1c, 0xb8, 0xbc, 0xc4, 0xf2, 0xc2, 0xc6, 0x26, 0x2b, 0x1b,
+ 0x8f, 0xa7, 0xbd, 0xc2, 0x0a, 0xac, 0x98, 0xe3, 0xf4, 0x25, 0xf7, 0x81,
+ 0xc7, 0xd6, 0x85, 0xbb, 0x43, 0xfe, 0x38, 0x3b,
+};
+static const unsigned char kat2021_addinreseed[] = {0};
+static const unsigned char kat2021_addin0[] = {0};
+static const unsigned char kat2021_addin1[] = {0};
+static const unsigned char kat2021_retbits[] = {
+ 0xd8, 0x7b, 0x0e, 0xf2, 0x3e, 0x09, 0xb1, 0xc6, 0xf1, 0x26, 0x72, 0x68,
+ 0x02, 0x95, 0x28, 0xc7, 0x6b, 0x3e, 0x3a, 0x66, 0x48, 0xc6, 0x74, 0xfe,
+ 0x92, 0x48, 0x68, 0x69, 0xa4, 0x7f, 0x78, 0x92, 0xe5, 0x66, 0x0f, 0x88,
+ 0x5d, 0x0f, 0xd2, 0xe6, 0xb2, 0xa2, 0x28, 0x85, 0x61, 0xd0, 0x75, 0x75,
+ 0xc6, 0x60, 0x68, 0x99, 0xa6, 0x55, 0x1c, 0x4f, 0x3e, 0x2f, 0x14, 0xca,
+ 0x75, 0xc4, 0x35, 0xc5,
+};
+static const struct drbg_kat_pr_false kat2021_t = {
+ 10, kat2021_entropyin, kat2021_nonce, kat2021_persstr,
+ kat2021_entropyinreseed, kat2021_addinreseed, kat2021_addin0,
+ kat2021_addin1, kat2021_retbits
+};
+static const struct drbg_kat kat2021 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2021_t
+};
+
+static const unsigned char kat2022_entropyin[] = {
+ 0xeb, 0x4b, 0x9c, 0x2e, 0x64, 0x18, 0x80, 0xe8, 0x57, 0xa2, 0xba, 0xeb,
+ 0xc8, 0xcb, 0xf9, 0x18, 0x24, 0xba, 0x35, 0xd2, 0x63, 0x99, 0xa7, 0xca,
+ 0xed, 0xc1, 0x1e, 0xa4, 0x2d, 0x7c, 0x85, 0x8d,
+};
+static const unsigned char kat2022_nonce[] = {
+ 0xf4, 0x81, 0x90, 0x53, 0xac, 0x38, 0x8f, 0x63, 0x44, 0xe8, 0xd0, 0x6f,
+ 0xc9, 0x40, 0x67, 0xa3,
+};
+static const unsigned char kat2022_persstr[] = {
+ 0x10, 0xbe, 0x74, 0x84, 0x45, 0x06, 0x56, 0x6a, 0x1d, 0xb5, 0x52, 0x93,
+ 0x2c, 0x9a, 0xff, 0xb3, 0x14, 0xb8, 0x9c, 0x83, 0x43, 0x43, 0x07, 0xb8,
+ 0x73, 0xa0, 0x12, 0x6f, 0x4c, 0xf2, 0x8a, 0x77,
+};
+static const unsigned char kat2022_entropyinreseed[] = {
+ 0x66, 0x82, 0x6d, 0x4b, 0x8e, 0xc8, 0x03, 0x8f, 0x71, 0x99, 0xd9, 0x6c,
+ 0x84, 0x95, 0x96, 0x1a, 0x0a, 0x74, 0xe3, 0x91, 0xbd, 0x28, 0x99, 0xf0,
+ 0x45, 0x80, 0x59, 0xea, 0x4d, 0x2e, 0xdd, 0xe3,
+};
+static const unsigned char kat2022_addinreseed[] = {0};
+static const unsigned char kat2022_addin0[] = {0};
+static const unsigned char kat2022_addin1[] = {0};
+static const unsigned char kat2022_retbits[] = {
+ 0x83, 0xb7, 0x38, 0xbd, 0xb8, 0x63, 0xcc, 0x77, 0x12, 0xea, 0xbc, 0xe9,
+ 0x3f, 0xb9, 0x35, 0xa0, 0xc0, 0x18, 0x34, 0xba, 0xa1, 0x18, 0xae, 0x99,
+ 0xa6, 0x16, 0x3b, 0x5d, 0xc0, 0x5a, 0x71, 0xb0, 0x2b, 0x93, 0xe8, 0xeb,
+ 0xfd, 0x6a, 0x20, 0xde, 0xb3, 0xd5, 0x4e, 0x18, 0x50, 0xf8, 0x2d, 0x96,
+ 0xaf, 0xba, 0xb2, 0xc1, 0x3b, 0x1f, 0xaa, 0x27, 0xc5, 0xbb, 0x01, 0x28,
+ 0x18, 0x02, 0xe2, 0xf1,
+};
+static const struct drbg_kat_pr_false kat2022_t = {
+ 11, kat2022_entropyin, kat2022_nonce, kat2022_persstr,
+ kat2022_entropyinreseed, kat2022_addinreseed, kat2022_addin0,
+ kat2022_addin1, kat2022_retbits
+};
+static const struct drbg_kat kat2022 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2022_t
+};
+
+static const unsigned char kat2023_entropyin[] = {
+ 0x6e, 0xe0, 0xc8, 0x75, 0xd0, 0x8c, 0xe1, 0x2c, 0xb1, 0x0f, 0xfa, 0x82,
+ 0x4b, 0xe2, 0xb7, 0x57, 0x13, 0x90, 0x1d, 0xfa, 0xd2, 0xd9, 0x43, 0x09,
+ 0xa1, 0xec, 0xc4, 0xb5, 0x1a, 0xdc, 0x37, 0xcb,
+};
+static const unsigned char kat2023_nonce[] = {
+ 0xc0, 0x3e, 0x8e, 0xf1, 0x0c, 0x25, 0x39, 0x43, 0xa0, 0x58, 0x01, 0xb7,
+ 0xc0, 0xd0, 0x4e, 0x70,
+};
+static const unsigned char kat2023_persstr[] = {
+ 0x0e, 0x71, 0x7d, 0xb9, 0x6e, 0xbc, 0xf8, 0x94, 0xc0, 0x18, 0x28, 0x07,
+ 0xeb, 0x49, 0x1a, 0x87, 0x19, 0xcf, 0xd4, 0x33, 0xec, 0x02, 0xda, 0xda,
+ 0xb7, 0xba, 0x2f, 0xbd, 0xea, 0xb1, 0x08, 0x5c,
+};
+static const unsigned char kat2023_entropyinreseed[] = {
+ 0xcd, 0x6d, 0x2a, 0x32, 0x4c, 0xd3, 0x8f, 0x3a, 0xae, 0x6e, 0xf8, 0xe9,
+ 0x3d, 0xe7, 0x01, 0xf0, 0x72, 0x5c, 0x3c, 0x08, 0xf0, 0x7d, 0x35, 0x70,
+ 0xd6, 0xc8, 0xc0, 0x1b, 0x65, 0x25, 0xc1, 0x8c,
+};
+static const unsigned char kat2023_addinreseed[] = {0};
+static const unsigned char kat2023_addin0[] = {0};
+static const unsigned char kat2023_addin1[] = {0};
+static const unsigned char kat2023_retbits[] = {
+ 0xdc, 0x5e, 0x7a, 0xa2, 0x2a, 0x72, 0x2c, 0x62, 0xd6, 0x83, 0x91, 0xe1,
+ 0xa5, 0x97, 0x93, 0xab, 0x4f, 0x27, 0xef, 0x9f, 0x1c, 0xb2, 0xc3, 0x24,
+ 0x7b, 0xbf, 0x94, 0xc3, 0x39, 0x17, 0x6a, 0xe8, 0x10, 0x10, 0xc3, 0x0c,
+ 0x75, 0x57, 0x29, 0x71, 0xbe, 0x8f, 0x78, 0xa6, 0xcf, 0x8c, 0xb4, 0xc3,
+ 0xff, 0x13, 0xbd, 0xf0, 0x0c, 0x0e, 0x3a, 0x25, 0x9e, 0xa7, 0x03, 0x06,
+ 0xbc, 0x0b, 0x4b, 0x02,
+};
+static const struct drbg_kat_pr_false kat2023_t = {
+ 12, kat2023_entropyin, kat2023_nonce, kat2023_persstr,
+ kat2023_entropyinreseed, kat2023_addinreseed, kat2023_addin0,
+ kat2023_addin1, kat2023_retbits
+};
+static const struct drbg_kat kat2023 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2023_t
+};
+
+static const unsigned char kat2024_entropyin[] = {
+ 0x60, 0x0b, 0xab, 0x60, 0x15, 0x80, 0x02, 0xdb, 0xae, 0x08, 0x65, 0x77,
+ 0x57, 0x13, 0xcb, 0x02, 0x45, 0x3f, 0xb5, 0x25, 0xd5, 0xcd, 0xae, 0xbd,
+ 0x8a, 0xd3, 0x23, 0x03, 0xab, 0x9c, 0xf8, 0x6b,
+};
+static const unsigned char kat2024_nonce[] = {
+ 0x66, 0x1a, 0x0b, 0x68, 0x0f, 0x2b, 0x76, 0x82, 0xc1, 0x57, 0xe0, 0x1c,
+ 0x99, 0xd8, 0x3f, 0xa9,
+};
+static const unsigned char kat2024_persstr[] = {
+ 0x1c, 0x16, 0xa8, 0x11, 0x08, 0x0b, 0xe7, 0x4b, 0x86, 0x2f, 0x9f, 0x64,
+ 0xd4, 0xba, 0x0a, 0xc8, 0x96, 0x44, 0x39, 0xbd, 0xa0, 0xe5, 0x60, 0x58,
+ 0x4b, 0x7f, 0xe8, 0xe5, 0xd6, 0x7e, 0x9d, 0x62,
+};
+static const unsigned char kat2024_entropyinreseed[] = {
+ 0xaa, 0x15, 0xf2, 0x6c, 0x20, 0x5d, 0x46, 0xc2, 0x0f, 0xbc, 0xc5, 0xe8,
+ 0x88, 0x3d, 0xf0, 0xa2, 0xb9, 0x1a, 0xc3, 0x13, 0x9a, 0x3c, 0x1f, 0xb5,
+ 0x8f, 0x1f, 0xff, 0x17, 0xb1, 0xce, 0x0d, 0x95,
+};
+static const unsigned char kat2024_addinreseed[] = {0};
+static const unsigned char kat2024_addin0[] = {0};
+static const unsigned char kat2024_addin1[] = {0};
+static const unsigned char kat2024_retbits[] = {
+ 0xab, 0x59, 0xd0, 0x63, 0x60, 0x45, 0xcc, 0x34, 0x63, 0x47, 0x84, 0x50,
+ 0xdf, 0x2e, 0x6e, 0x9e, 0x08, 0xc2, 0x09, 0x04, 0x15, 0x44, 0xfc, 0x15,
+ 0xd3, 0x2d, 0xed, 0xb6, 0x41, 0x75, 0x6f, 0x15, 0x20, 0x7a, 0xc7, 0xa4,
+ 0xdd, 0x56, 0xdc, 0x00, 0x6e, 0xf9, 0xe5, 0x20, 0x54, 0x66, 0x90, 0x4a,
+ 0x47, 0xb5, 0xe5, 0x11, 0x66, 0x7c, 0x7d, 0x14, 0x1e, 0x1b, 0x9a, 0xe9,
+ 0xd9, 0xd6, 0xa8, 0x61,
+};
+static const struct drbg_kat_pr_false kat2024_t = {
+ 13, kat2024_entropyin, kat2024_nonce, kat2024_persstr,
+ kat2024_entropyinreseed, kat2024_addinreseed, kat2024_addin0,
+ kat2024_addin1, kat2024_retbits
+};
+static const struct drbg_kat kat2024 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2024_t
+};
+
+static const unsigned char kat2025_entropyin[] = {
+ 0xff, 0xec, 0x8a, 0x7f, 0x17, 0x0f, 0xff, 0x95, 0x26, 0x68, 0x72, 0x8c,
+ 0x9c, 0x93, 0x90, 0xe7, 0x1b, 0xa4, 0x13, 0x8f, 0xde, 0x68, 0x40, 0x53,
+ 0x35, 0x13, 0x76, 0xd7, 0xab, 0x54, 0x86, 0x4e,
+};
+static const unsigned char kat2025_nonce[] = {
+ 0xa2, 0x70, 0x70, 0xb7, 0x10, 0xe5, 0xae, 0xe5, 0xfa, 0xd9, 0xc6, 0x05,
+ 0xdf, 0x1c, 0x34, 0xd5,
+};
+static const unsigned char kat2025_persstr[] = {
+ 0xdb, 0xc5, 0x11, 0x3e, 0xf0, 0xd4, 0xc4, 0xe6, 0x1a, 0x27, 0x4c, 0xf6,
+ 0x66, 0x18, 0x19, 0xfc, 0x41, 0xbf, 0x2f, 0x91, 0xf2, 0xe4, 0x4f, 0x39,
+ 0xdf, 0x43, 0xa7, 0x6c, 0xce, 0x0c, 0x84, 0xde,
+};
+static const unsigned char kat2025_entropyinreseed[] = {
+ 0xed, 0xe1, 0x52, 0x73, 0x04, 0x75, 0x08, 0x0f, 0x4b, 0x8c, 0xaf, 0xdd,
+ 0x33, 0xef, 0xd0, 0xe7, 0xd0, 0x35, 0x29, 0xc0, 0x68, 0x34, 0xfd, 0x5c,
+ 0x62, 0xcf, 0x07, 0x08, 0xdc, 0x96, 0x1d, 0x31,
+};
+static const unsigned char kat2025_addinreseed[] = {0};
+static const unsigned char kat2025_addin0[] = {0};
+static const unsigned char kat2025_addin1[] = {0};
+static const unsigned char kat2025_retbits[] = {
+ 0x0c, 0x50, 0x98, 0xb7, 0xbb, 0xc8, 0xb8, 0xe2, 0x04, 0x5d, 0xd6, 0xac,
+ 0x82, 0x50, 0x8f, 0x83, 0x6c, 0x9e, 0x05, 0x9c, 0x07, 0x0e, 0x04, 0x99,
+ 0xbc, 0xbe, 0x58, 0xb2, 0x0d, 0x98, 0x43, 0xf2, 0x58, 0xa6, 0xcb, 0xeb,
+ 0xdc, 0x05, 0x54, 0x68, 0x6c, 0xc0, 0x45, 0x07, 0xdc, 0x58, 0x9c, 0xaf,
+ 0xf4, 0x60, 0xf0, 0xe9, 0xb8, 0xdb, 0xd9, 0xd9, 0xe6, 0xa8, 0x4a, 0x36,
+ 0x54, 0x9e, 0x77, 0xeb,
+};
+static const struct drbg_kat_pr_false kat2025_t = {
+ 14, kat2025_entropyin, kat2025_nonce, kat2025_persstr,
+ kat2025_entropyinreseed, kat2025_addinreseed, kat2025_addin0,
+ kat2025_addin1, kat2025_retbits
+};
+static const struct drbg_kat kat2025 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2025_t
+};
+
+static const unsigned char kat2026_entropyin[] = {
+ 0x6c, 0x0f, 0xf3, 0x73, 0x51, 0xe7, 0x87, 0xd3, 0x58, 0x05, 0x81, 0x07,
+ 0x50, 0x39, 0x48, 0x54, 0xdf, 0xc7, 0xb3, 0x70, 0x4c, 0xad, 0xea, 0x32,
+ 0x59, 0x34, 0x58, 0xe1, 0xef, 0x67, 0xf2, 0xdc,
+};
+static const unsigned char kat2026_nonce[] = {
+ 0xf0, 0xd3, 0x42, 0xf2, 0xcb, 0x12, 0x70, 0xed, 0x3c, 0xc9, 0x35, 0xb1,
+ 0xd3, 0x05, 0x9d, 0x0f,
+};
+static const unsigned char kat2026_persstr[] = {
+ 0xe1, 0xb9, 0x5c, 0x70, 0x69, 0xbb, 0x22, 0x47, 0x5d, 0x5a, 0x7a, 0x99,
+ 0xfc, 0x8b, 0xee, 0xdc, 0xed, 0x73, 0xbb, 0xed, 0x78, 0x5c, 0x73, 0xce,
+ 0x56, 0x63, 0x74, 0x0c, 0x46, 0x56, 0x88, 0x84,
+};
+static const unsigned char kat2026_entropyinreseed[] = {
+ 0x11, 0x40, 0xa4, 0x7d, 0xbe, 0x3b, 0x89, 0x36, 0x29, 0x22, 0xb3, 0x75,
+ 0x50, 0x23, 0x00, 0xc7, 0xe7, 0x56, 0x62, 0x24, 0xac, 0xca, 0xc3, 0xeb,
+ 0xdb, 0x99, 0xc8, 0xfa, 0x77, 0x65, 0x94, 0xdd,
+};
+static const unsigned char kat2026_addinreseed[] = {
+ 0x66, 0xcc, 0xb8, 0xdd, 0xaf, 0x02, 0x01, 0xa7, 0xf2, 0xf7, 0xfe, 0xf0,
+ 0x49, 0x39, 0xf2, 0xc8, 0x02, 0xe4, 0x80, 0xe4, 0xac, 0xc1, 0xc3, 0x17,
+ 0x75, 0x71, 0xf3, 0x42, 0x48, 0xbb, 0xfc, 0xe1,
+};
+static const unsigned char kat2026_addin0[] = {
+ 0x53, 0xf7, 0x4b, 0xa9, 0xd0, 0xeb, 0x69, 0x01, 0x0c, 0xc4, 0xed, 0xa1,
+ 0xda, 0x03, 0x7c, 0x8e, 0x60, 0x56, 0xc1, 0x15, 0x42, 0x48, 0xbc, 0xf4,
+ 0x63, 0x2b, 0x44, 0xd6, 0xa5, 0x98, 0x11, 0xf1,
+};
+static const unsigned char kat2026_addin1[] = {
+ 0x1c, 0xdb, 0xb5, 0x31, 0x80, 0x3e, 0x7b, 0xca, 0xc8, 0xde, 0x8a, 0xaf,
+ 0x9c, 0x35, 0x34, 0x18, 0x4c, 0xf7, 0x37, 0xc9, 0xce, 0xda, 0x1a, 0x7a,
+ 0x16, 0x05, 0x6b, 0x0c, 0x53, 0xa8, 0x28, 0xff,
+};
+static const unsigned char kat2026_retbits[] = {
+ 0x74, 0x3e, 0x9c, 0xb6, 0x03, 0x89, 0xd6, 0x49, 0x11, 0x3a, 0x93, 0xe9,
+ 0xba, 0x35, 0x00, 0xad, 0xcf, 0xf0, 0x51, 0x93, 0x93, 0x46, 0x02, 0x79,
+ 0x7c, 0x5a, 0x36, 0x08, 0x4d, 0xc1, 0xb3, 0xf2, 0xdb, 0x7c, 0x65, 0xd7,
+ 0xb6, 0x42, 0x5d, 0xbf, 0x3b, 0xb5, 0x72, 0x23, 0x9e, 0x88, 0x45, 0xa0,
+ 0x5b, 0x3e, 0xe5, 0x36, 0x6b, 0x53, 0x8a, 0x10, 0x10, 0xd4, 0xfe, 0x2a,
+ 0x09, 0x19, 0xc1, 0xa9,
+};
+static const struct drbg_kat_pr_false kat2026_t = {
+ 0, kat2026_entropyin, kat2026_nonce, kat2026_persstr,
+ kat2026_entropyinreseed, kat2026_addinreseed, kat2026_addin0,
+ kat2026_addin1, kat2026_retbits
+};
+static const struct drbg_kat kat2026 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2026_t
+};
+
+static const unsigned char kat2027_entropyin[] = {
+ 0x0c, 0x02, 0x9b, 0xad, 0x3e, 0x7f, 0x1d, 0xdf, 0x54, 0x2d, 0x54, 0x48,
+ 0x82, 0xfe, 0x1a, 0x00, 0x92, 0xed, 0xb6, 0xcf, 0x2a, 0x3a, 0x22, 0x02,
+ 0xd8, 0x84, 0x86, 0x90, 0x4e, 0xef, 0x78, 0x59,
+};
+static const unsigned char kat2027_nonce[] = {
+ 0x9e, 0x6e, 0xe0, 0x2c, 0x4b, 0x52, 0x0d, 0x4f, 0xc1, 0x26, 0x2e, 0x28,
+ 0x33, 0xd8, 0xe2, 0x46,
+};
+static const unsigned char kat2027_persstr[] = {
+ 0x2f, 0x24, 0xa5, 0xd9, 0xbf, 0x88, 0x93, 0xa0, 0xf2, 0xd3, 0x3a, 0x66,
+ 0x5b, 0x1b, 0x18, 0x72, 0x9e, 0x96, 0x33, 0x0e, 0x22, 0xf6, 0xe5, 0xa2,
+ 0x9b, 0xbb, 0xb4, 0xa9, 0xe8, 0x89, 0xec, 0x30,
+};
+static const unsigned char kat2027_entropyinreseed[] = {
+ 0x7e, 0xc4, 0x50, 0x63, 0xb8, 0x77, 0xf4, 0x97, 0x38, 0xac, 0x80, 0x20,
+ 0xc0, 0xa7, 0x64, 0xef, 0xbf, 0xc1, 0x66, 0x7c, 0x7d, 0xba, 0x37, 0xa6,
+ 0x52, 0xf0, 0xfc, 0x6a, 0x03, 0xd0, 0xb1, 0x53,
+};
+static const unsigned char kat2027_addinreseed[] = {
+ 0x74, 0xb7, 0x1d, 0x1d, 0x5b, 0x8b, 0x5d, 0x8c, 0x24, 0xf4, 0x4b, 0x75,
+ 0x7b, 0xa8, 0x79, 0x89, 0xd3, 0xea, 0x75, 0x7c, 0xcf, 0xc5, 0xb7, 0xf4,
+ 0xc4, 0x26, 0xe7, 0xd7, 0x2c, 0xbd, 0xe9, 0xf8,
+};
+static const unsigned char kat2027_addin0[] = {
+ 0xec, 0x30, 0xeb, 0x4c, 0x56, 0xb8, 0xf6, 0x1f, 0x5d, 0x61, 0x52, 0x6b,
+ 0xf1, 0x83, 0x07, 0x45, 0xfd, 0xe9, 0xf0, 0x7a, 0x4d, 0xbd, 0x50, 0xfb,
+ 0x50, 0x2b, 0x27, 0x08, 0x7f, 0x42, 0xf4, 0x2f,
+};
+static const unsigned char kat2027_addin1[] = {
+ 0xb4, 0x0b, 0x2e, 0x8f, 0x9d, 0x51, 0x7e, 0x64, 0x35, 0x6f, 0xd8, 0x98,
+ 0x17, 0x60, 0x19, 0x61, 0xd2, 0x21, 0x96, 0xfd, 0xbe, 0x74, 0x92, 0x79,
+ 0xb3, 0x21, 0xba, 0xa6, 0x1e, 0x72, 0xd6, 0x28,
+};
+static const unsigned char kat2027_retbits[] = {
+ 0x70, 0xdb, 0x96, 0x9c, 0x96, 0x75, 0x5d, 0x28, 0xa1, 0x3a, 0xdf, 0xff,
+ 0x66, 0x6c, 0x0a, 0xa6, 0x2f, 0x0d, 0xbe, 0x13, 0x20, 0x52, 0x22, 0xb6,
+ 0x4e, 0xc4, 0x97, 0x03, 0x1e, 0x73, 0x4a, 0xa9, 0x57, 0xbd, 0xf8, 0x7b,
+ 0x72, 0xb2, 0xbe, 0x56, 0x53, 0xe1, 0x05, 0x1a, 0xb5, 0x55, 0x19, 0x31,
+ 0x00, 0x79, 0x78, 0xe8, 0x7f, 0x6b, 0xda, 0x21, 0x5f, 0x43, 0x58, 0xdc,
+ 0x08, 0x42, 0x77, 0x46,
+};
+static const struct drbg_kat_pr_false kat2027_t = {
+ 1, kat2027_entropyin, kat2027_nonce, kat2027_persstr,
+ kat2027_entropyinreseed, kat2027_addinreseed, kat2027_addin0,
+ kat2027_addin1, kat2027_retbits
+};
+static const struct drbg_kat kat2027 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2027_t
+};
+
+static const unsigned char kat2028_entropyin[] = {
+ 0x68, 0xc4, 0xf1, 0x36, 0xb5, 0xc4, 0xe2, 0x3d, 0x67, 0x6c, 0xa2, 0x41,
+ 0xb9, 0x01, 0x32, 0xd8, 0x30, 0xd8, 0xf3, 0xc4, 0x47, 0x8a, 0x9b, 0xc0,
+ 0x63, 0x96, 0x00, 0xe9, 0xc0, 0x62, 0xdd, 0xa7,
+};
+static const unsigned char kat2028_nonce[] = {
+ 0x4f, 0x35, 0x04, 0x2b, 0xc4, 0x18, 0xd6, 0xcd, 0x9b, 0x1b, 0x1f, 0xf6,
+ 0x67, 0x6b, 0xb8, 0xf3,
+};
+static const unsigned char kat2028_persstr[] = {
+ 0x7d, 0x9e, 0xe5, 0x89, 0x15, 0x99, 0x90, 0xf1, 0x26, 0xdb, 0x66, 0xb0,
+ 0xee, 0x59, 0x47, 0x58, 0xb7, 0x52, 0x03, 0x7c, 0x06, 0x08, 0x4c, 0xae,
+ 0x35, 0x4f, 0x02, 0x13, 0x0f, 0x0f, 0xce, 0x05,
+};
+static const unsigned char kat2028_entropyinreseed[] = {
+ 0xb7, 0xe6, 0x83, 0xd1, 0x79, 0x7f, 0xe3, 0x64, 0xdd, 0x95, 0xe8, 0x4f,
+ 0x47, 0xd2, 0x16, 0xe0, 0x4d, 0xe2, 0xef, 0x9d, 0xfc, 0x51, 0xdb, 0x88,
+ 0x7c, 0x56, 0x8a, 0x16, 0x22, 0x1c, 0x8c, 0xbe,
+};
+static const unsigned char kat2028_addinreseed[] = {
+ 0xe4, 0x48, 0x8b, 0x56, 0x54, 0x19, 0x70, 0x7a, 0x46, 0x14, 0x78, 0x5f,
+ 0xe7, 0xde, 0x43, 0x18, 0xa1, 0x8a, 0xbf, 0x7b, 0xda, 0xee, 0x54, 0xbd,
+ 0x60, 0x9c, 0x17, 0x39, 0x87, 0xa2, 0x6a, 0x2d,
+};
+static const unsigned char kat2028_addin0[] = {
+ 0x4e, 0xd5, 0xcb, 0x9b, 0x2b, 0x7e, 0x2b, 0xb7, 0xa9, 0x66, 0xca, 0xcb,
+ 0x9e, 0x7c, 0x7e, 0xe7, 0xc5, 0x8c, 0xb6, 0xde, 0x45, 0xe6, 0xf7, 0xd9,
+ 0x1d, 0xa4, 0x3d, 0xe0, 0xc6, 0x25, 0xc4, 0x3b,
+};
+static const unsigned char kat2028_addin1[] = {
+ 0x45, 0x48, 0x14, 0x0c, 0xf5, 0xfc, 0x79, 0x02, 0xed, 0xee, 0x67, 0x34,
+ 0x0f, 0x38, 0xed, 0x2e, 0xd8, 0x30, 0x1c, 0xc3, 0x5c, 0xd4, 0xa6, 0xbf,
+ 0x27, 0x1e, 0xfa, 0x89, 0x7b, 0x1e, 0xba, 0x6b,
+};
+static const unsigned char kat2028_retbits[] = {
+ 0x8b, 0x91, 0xdb, 0xf2, 0xa5, 0x67, 0x9f, 0x95, 0x87, 0xeb, 0xc3, 0x51,
+ 0x4a, 0x36, 0x45, 0xa6, 0x88, 0x10, 0xdc, 0x87, 0x74, 0x6c, 0x66, 0xa2,
+ 0x2c, 0xea, 0x59, 0x9a, 0x90, 0xf3, 0x4d, 0xde, 0x9d, 0x4c, 0x13, 0x0b,
+ 0xae, 0xc3, 0x5e, 0xdc, 0x0c, 0x2f, 0x10, 0x46, 0x37, 0xb6, 0xd4, 0x0a,
+ 0x4b, 0x69, 0x5a, 0x11, 0xbb, 0x55, 0xe8, 0x6a, 0x36, 0x17, 0x5e, 0x63,
+ 0x12, 0x4a, 0x4e, 0x5d,
+};
+static const struct drbg_kat_pr_false kat2028_t = {
+ 2, kat2028_entropyin, kat2028_nonce, kat2028_persstr,
+ kat2028_entropyinreseed, kat2028_addinreseed, kat2028_addin0,
+ kat2028_addin1, kat2028_retbits
+};
+static const struct drbg_kat kat2028 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2028_t
+};
+
+static const unsigned char kat2029_entropyin[] = {
+ 0xa9, 0x36, 0x3e, 0x0b, 0x2b, 0x09, 0x97, 0xe1, 0x1c, 0x5d, 0xf6, 0x8c,
+ 0xcd, 0x5b, 0xc5, 0x3d, 0x10, 0xd9, 0xb9, 0xc6, 0x84, 0xe0, 0x69, 0x76,
+ 0x11, 0x41, 0xdc, 0xf7, 0x71, 0xac, 0x64, 0x76,
+};
+static const unsigned char kat2029_nonce[] = {
+ 0xb8, 0xf8, 0xdf, 0xfe, 0x03, 0x48, 0x1c, 0x63, 0x21, 0x15, 0xec, 0x4e,
+ 0x95, 0xd2, 0x06, 0x22,
+};
+static const unsigned char kat2029_persstr[] = {
+ 0x13, 0x4f, 0x93, 0xf5, 0xee, 0x3c, 0x5d, 0x88, 0x41, 0x6a, 0xc0, 0xf4,
+ 0xee, 0xa9, 0x05, 0xd4, 0xba, 0x2b, 0xfc, 0xe3, 0x1b, 0xc4, 0x04, 0x12,
+ 0xe8, 0xa3, 0xb9, 0x02, 0xa9, 0xfe, 0xb6, 0x49,
+};
+static const unsigned char kat2029_entropyinreseed[] = {
+ 0xd0, 0xcc, 0x63, 0xe9, 0xce, 0xd8, 0x29, 0x24, 0xde, 0x6a, 0x8e, 0x91,
+ 0x72, 0x4c, 0xc3, 0x91, 0x36, 0xbc, 0x2a, 0xe3, 0x92, 0x89, 0xb4, 0x39,
+ 0xad, 0x90, 0x27, 0x7d, 0xdc, 0xfd, 0x28, 0xcf,
+};
+static const unsigned char kat2029_addinreseed[] = {
+ 0x8c, 0x17, 0x6a, 0x3d, 0xa6, 0x62, 0x16, 0xf0, 0xf3, 0x47, 0x64, 0x0e,
+ 0x34, 0xf6, 0x97, 0x9e, 0xb5, 0x21, 0xc8, 0xdb, 0x3e, 0x44, 0x75, 0xb8,
+ 0x13, 0x90, 0xad, 0x8f, 0xd8, 0x9b, 0xf2, 0xae,
+};
+static const unsigned char kat2029_addin0[] = {
+ 0xe6, 0x47, 0x75, 0x65, 0x00, 0xca, 0xfe, 0x3e, 0xaf, 0xdb, 0x93, 0x41,
+ 0x69, 0xc8, 0x36, 0x84, 0x10, 0x39, 0x26, 0x3f, 0x90, 0xa4, 0x4c, 0x1d,
+ 0x78, 0x97, 0x7b, 0x79, 0x4f, 0xbc, 0x4b, 0x01,
+};
+static const unsigned char kat2029_addin1[] = {
+ 0x56, 0xe7, 0x5d, 0x3a, 0xa5, 0xf9, 0xb4, 0xd4, 0x34, 0xf5, 0x3d, 0x18,
+ 0x63, 0x47, 0x09, 0x03, 0xdd, 0x71, 0xbd, 0x12, 0x7e, 0x30, 0x1a, 0x7e,
+ 0x59, 0xb3, 0x53, 0xc2, 0x29, 0xc2, 0xae, 0xe0,
+};
+static const unsigned char kat2029_retbits[] = {
+ 0x83, 0x42, 0x31, 0x25, 0x59, 0x5f, 0xa9, 0xd0, 0x20, 0xb2, 0x35, 0x91,
+ 0x8d, 0xb9, 0x28, 0xef, 0x5d, 0xe2, 0xb7, 0xb5, 0x7a, 0x2a, 0xb3, 0x94,
+ 0x07, 0x1e, 0x57, 0x77, 0xd2, 0x52, 0xcd, 0x13, 0x69, 0x18, 0xd9, 0xf4,
+ 0x33, 0x92, 0x0f, 0x09, 0xda, 0xd1, 0x3d, 0xbf, 0x36, 0x44, 0x9e, 0x2c,
+ 0x9c, 0x26, 0x86, 0x59, 0x9a, 0x20, 0x94, 0x65, 0x71, 0x16, 0x79, 0x74,
+ 0x92, 0xbe, 0x73, 0x27,
+};
+static const struct drbg_kat_pr_false kat2029_t = {
+ 3, kat2029_entropyin, kat2029_nonce, kat2029_persstr,
+ kat2029_entropyinreseed, kat2029_addinreseed, kat2029_addin0,
+ kat2029_addin1, kat2029_retbits
+};
+static const struct drbg_kat kat2029 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2029_t
+};
+
+static const unsigned char kat2030_entropyin[] = {
+ 0xf2, 0xe6, 0x5a, 0x05, 0xb7, 0x5c, 0x87, 0x50, 0xc1, 0x79, 0xbf, 0x07,
+ 0x71, 0x5d, 0xaf, 0x35, 0x08, 0xc0, 0x8c, 0xdc, 0x04, 0xac, 0xaa, 0x22,
+ 0x3c, 0x93, 0xcf, 0xae, 0xba, 0xd2, 0x00, 0x15,
+};
+static const unsigned char kat2030_nonce[] = {
+ 0xa3, 0x34, 0x0a, 0xc8, 0x8f, 0xca, 0x36, 0x0a, 0x72, 0x8b, 0x5c, 0x9a,
+ 0x73, 0x53, 0x7c, 0xac,
+};
+static const unsigned char kat2030_persstr[] = {
+ 0x13, 0x64, 0x6f, 0xba, 0xc9, 0x38, 0x30, 0x56, 0x09, 0x1c, 0xad, 0x95,
+ 0xf8, 0xc6, 0xd8, 0x77, 0xb0, 0x91, 0x6f, 0x3b, 0xb9, 0xc2, 0xac, 0xb1,
+ 0xaf, 0xf6, 0xa6, 0xe9, 0x7f, 0xc3, 0xf5, 0x39,
+};
+static const unsigned char kat2030_entropyinreseed[] = {
+ 0x34, 0xd6, 0x97, 0x77, 0xcb, 0x99, 0x3a, 0x4b, 0xe6, 0x65, 0x83, 0x30,
+ 0x9c, 0xe0, 0xbc, 0x2a, 0x67, 0x66, 0xdf, 0xf0, 0x5a, 0x26, 0xef, 0x41,
+ 0x83, 0xf1, 0x1f, 0x7e, 0xe6, 0x54, 0xe4, 0x36,
+};
+static const unsigned char kat2030_addinreseed[] = {
+ 0x80, 0x31, 0xea, 0x87, 0x92, 0x09, 0x69, 0x1a, 0x68, 0x24, 0x06, 0x80,
+ 0x34, 0x31, 0x1d, 0x7c, 0x91, 0x53, 0xbb, 0x26, 0x63, 0x4b, 0x4f, 0x72,
+ 0x85, 0xda, 0xdb, 0x9b, 0xbd, 0xdf, 0x89, 0x5f,
+};
+static const unsigned char kat2030_addin0[] = {
+ 0xfb, 0x68, 0x41, 0x6c, 0x48, 0x54, 0x27, 0x21, 0xa2, 0x0f, 0x2e, 0xdc,
+ 0x1e, 0xe3, 0xad, 0x21, 0x0d, 0xaf, 0xb6, 0xb5, 0x29, 0x18, 0x38, 0xc2,
+ 0x17, 0x1b, 0x79, 0xc7, 0xe8, 0x45, 0x78, 0xfa,
+};
+static const unsigned char kat2030_addin1[] = {
+ 0xee, 0x20, 0x66, 0xa2, 0x10, 0xd9, 0x6d, 0x2a, 0xe2, 0xde, 0x62, 0xc3,
+ 0xb7, 0xcd, 0x8f, 0x62, 0xa2, 0x82, 0x00, 0x6d, 0x6f, 0xc0, 0xd6, 0x9f,
+ 0xa4, 0x03, 0x57, 0x04, 0x90, 0x9b, 0x98, 0x1b,
+};
+static const unsigned char kat2030_retbits[] = {
+ 0x44, 0xf3, 0x34, 0x50, 0xff, 0x56, 0x59, 0x3e, 0x77, 0xfc, 0x51, 0x16,
+ 0xbd, 0xbb, 0xa5, 0xa1, 0x70, 0x83, 0xed, 0xaf, 0x0d, 0xd0, 0xd2, 0x07,
+ 0x07, 0x96, 0xc5, 0x55, 0xf3, 0xea, 0x2d, 0x35, 0x89, 0xa5, 0x5d, 0x54,
+ 0x1d, 0xcd, 0x83, 0x4b, 0x5e, 0x3d, 0xf2, 0x81, 0x45, 0x4e, 0x84, 0xf8,
+ 0x1f, 0xda, 0xe9, 0x41, 0x35, 0x8b, 0x57, 0x52, 0xa3, 0x66, 0xee, 0xee,
+ 0x0a, 0x56, 0x5a, 0xd0,
+};
+static const struct drbg_kat_pr_false kat2030_t = {
+ 4, kat2030_entropyin, kat2030_nonce, kat2030_persstr,
+ kat2030_entropyinreseed, kat2030_addinreseed, kat2030_addin0,
+ kat2030_addin1, kat2030_retbits
+};
+static const struct drbg_kat kat2030 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2030_t
+};
+
+static const unsigned char kat2031_entropyin[] = {
+ 0x5d, 0x48, 0x06, 0x2e, 0x6d, 0xbe, 0xb6, 0x9d, 0x09, 0x09, 0x29, 0xd8,
+ 0x9d, 0x12, 0x7c, 0xe5, 0x4e, 0xf2, 0xc3, 0x37, 0x3e, 0x22, 0x2c, 0x3c,
+ 0xed, 0x1f, 0x1d, 0xa2, 0x33, 0xd0, 0xf6, 0xa9,
+};
+static const unsigned char kat2031_nonce[] = {
+ 0x97, 0x01, 0x39, 0x53, 0x20, 0xdb, 0xd4, 0x43, 0x7e, 0x67, 0x87, 0x6f,
+ 0x97, 0x83, 0x42, 0xd8,
+};
+static const unsigned char kat2031_persstr[] = {
+ 0xb9, 0x76, 0xfa, 0x12, 0x84, 0x1d, 0xc6, 0x31, 0x4e, 0xfd, 0xc9, 0xb3,
+ 0xb4, 0xd2, 0xe3, 0xcc, 0x1e, 0x5d, 0x8d, 0xf4, 0x34, 0x5f, 0x33, 0xad,
+ 0xc0, 0x47, 0xa8, 0xe8, 0x13, 0x5e, 0xbd, 0xa0,
+};
+static const unsigned char kat2031_entropyinreseed[] = {
+ 0xd9, 0xef, 0x5e, 0x9a, 0x53, 0x4a, 0xe3, 0x20, 0xf1, 0x70, 0x58, 0xdf,
+ 0x52, 0xc0, 0xbb, 0x3a, 0xa0, 0x22, 0x60, 0xbd, 0xd5, 0x19, 0x19, 0xe0,
+ 0xd6, 0x8c, 0x7b, 0x6d, 0x58, 0xe1, 0xca, 0x43,
+};
+static const unsigned char kat2031_addinreseed[] = {
+ 0x12, 0x0b, 0xd1, 0xc3, 0xc2, 0x1b, 0xe3, 0x46, 0x52, 0x03, 0xe2, 0x91,
+ 0x2e, 0x9a, 0xd5, 0xef, 0x2f, 0x83, 0x36, 0xa2, 0x0e, 0x5d, 0xbf, 0x87,
+ 0x35, 0x3d, 0xa5, 0x65, 0x32, 0x2b, 0x18, 0x52,
+};
+static const unsigned char kat2031_addin0[] = {
+ 0xdb, 0x2d, 0x4a, 0x5c, 0xff, 0x0e, 0xf5, 0xab, 0x75, 0x75, 0x26, 0xfc,
+ 0x04, 0x66, 0x63, 0x10, 0x85, 0xad, 0xbb, 0x88, 0x20, 0x86, 0x87, 0xc1,
+ 0x0a, 0x72, 0x81, 0xb5, 0xa2, 0x5d, 0x58, 0x38,
+};
+static const unsigned char kat2031_addin1[] = {
+ 0x0f, 0x3f, 0xc9, 0x16, 0xb1, 0xf6, 0x60, 0x46, 0x6e, 0x0a, 0xdc, 0xf2,
+ 0xc4, 0x2d, 0xf0, 0x76, 0x2c, 0xc6, 0xac, 0x4a, 0x1e, 0x07, 0xd1, 0x42,
+ 0x0e, 0x04, 0x48, 0x6c, 0x59, 0x3e, 0x40, 0xab,
+};
+static const unsigned char kat2031_retbits[] = {
+ 0x20, 0x0f, 0x5d, 0xe4, 0x66, 0xcf, 0x4a, 0xd5, 0x74, 0x27, 0x54, 0x3d,
+ 0x95, 0x50, 0x2b, 0x50, 0x42, 0xa8, 0xc2, 0x3e, 0x0d, 0xc9, 0xd8, 0xaf,
+ 0x45, 0x9f, 0x27, 0x76, 0xbd, 0x3c, 0x78, 0xa7, 0x6a, 0x91, 0xaa, 0xc4,
+ 0x8f, 0xa3, 0x49, 0xb3, 0xe0, 0x28, 0x33, 0xf1, 0xb7, 0xe1, 0x97, 0x74,
+ 0xf3, 0x51, 0xdb, 0xf8, 0x1c, 0x2a, 0x66, 0xf0, 0xe9, 0xa0, 0xc0, 0x16,
+ 0x89, 0xd3, 0x88, 0xa8,
+};
+static const struct drbg_kat_pr_false kat2031_t = {
+ 5, kat2031_entropyin, kat2031_nonce, kat2031_persstr,
+ kat2031_entropyinreseed, kat2031_addinreseed, kat2031_addin0,
+ kat2031_addin1, kat2031_retbits
+};
+static const struct drbg_kat kat2031 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2031_t
+};
+
+static const unsigned char kat2032_entropyin[] = {
+ 0xd2, 0x59, 0xf3, 0xfd, 0x16, 0xfe, 0xeb, 0x67, 0xd1, 0x76, 0x67, 0xfe,
+ 0x82, 0xea, 0x29, 0x17, 0x61, 0x91, 0x8f, 0xc2, 0x94, 0x76, 0x62, 0x69,
+ 0xba, 0x2c, 0xb5, 0x6a, 0x36, 0x76, 0xed, 0xd2,
+};
+static const unsigned char kat2032_nonce[] = {
+ 0x58, 0x2c, 0x05, 0x83, 0x8e, 0x16, 0x38, 0x1e, 0x6d, 0xc1, 0x04, 0x6d,
+ 0x78, 0x4f, 0xfd, 0xf8,
+};
+static const unsigned char kat2032_persstr[] = {
+ 0x94, 0xca, 0x52, 0xda, 0x42, 0x4c, 0xc0, 0x71, 0x72, 0xc2, 0x07, 0x50,
+ 0xdf, 0x5f, 0xed, 0xdb, 0x68, 0xf2, 0x8f, 0xe7, 0x94, 0x46, 0x1e, 0x51,
+ 0xc9, 0x2c, 0xc6, 0x45, 0x1f, 0xf5, 0x8c, 0x0f,
+};
+static const unsigned char kat2032_entropyinreseed[] = {
+ 0x1b, 0x98, 0xe4, 0xa8, 0x62, 0x0c, 0xa5, 0xf9, 0x52, 0x05, 0x83, 0xb7,
+ 0x53, 0xc2, 0x22, 0xed, 0xa5, 0x54, 0x0a, 0x87, 0x36, 0xd8, 0xa3, 0xe7,
+ 0x84, 0xd0, 0x1b, 0x75, 0xfc, 0x8a, 0xe3, 0x5d,
+};
+static const unsigned char kat2032_addinreseed[] = {
+ 0xe6, 0xe1, 0xfb, 0x6b, 0xe9, 0x07, 0xc8, 0x43, 0xc9, 0x9b, 0x5a, 0x85,
+ 0xe6, 0x21, 0xaf, 0xd2, 0x2e, 0xb1, 0xac, 0x18, 0xb5, 0x41, 0xa6, 0x95,
+ 0x9c, 0x2a, 0xef, 0x14, 0xaa, 0x8e, 0xb8, 0x54,
+};
+static const unsigned char kat2032_addin0[] = {
+ 0x43, 0x6b, 0xfc, 0xb8, 0x0f, 0x97, 0x4d, 0x5e, 0x28, 0x15, 0xe2, 0x1e,
+ 0xc0, 0x92, 0x5c, 0x8e, 0x0e, 0x41, 0x46, 0xda, 0xbe, 0xb2, 0xad, 0x6a,
+ 0xe7, 0x6d, 0x11, 0x8b, 0xf4, 0xd9, 0xfa, 0x9a,
+};
+static const unsigned char kat2032_addin1[] = {
+ 0x11, 0xd4, 0x15, 0x3c, 0xf7, 0x7f, 0xa5, 0xb1, 0xb5, 0x8a, 0xce, 0x5c,
+ 0xa0, 0x1d, 0x73, 0x70, 0x99, 0xb4, 0xc2, 0xad, 0xb5, 0x7f, 0xc2, 0xfb,
+ 0xf2, 0x8f, 0xb5, 0x8e, 0x5f, 0xd3, 0xea, 0x50,
+};
+static const unsigned char kat2032_retbits[] = {
+ 0x1c, 0x39, 0xba, 0x5e, 0xd9, 0x63, 0x28, 0xec, 0x66, 0x56, 0x8d, 0x3c,
+ 0xeb, 0x77, 0x89, 0x4f, 0x12, 0x24, 0x0f, 0x0f, 0xdc, 0xf0, 0x65, 0x11,
+ 0x9c, 0xd8, 0x41, 0x15, 0x1c, 0xb8, 0x60, 0xca, 0xa6, 0x4f, 0x74, 0xbb,
+ 0x1b, 0x19, 0x98, 0x32, 0x25, 0x25, 0x4b, 0x3b, 0x58, 0xfe, 0x97, 0xbf,
+ 0xfb, 0xd2, 0x0b, 0x57, 0xa9, 0x49, 0x23, 0x89, 0xd6, 0x2c, 0x2b, 0x54,
+ 0x2d, 0x53, 0xfb, 0x64,
+};
+static const struct drbg_kat_pr_false kat2032_t = {
+ 6, kat2032_entropyin, kat2032_nonce, kat2032_persstr,
+ kat2032_entropyinreseed, kat2032_addinreseed, kat2032_addin0,
+ kat2032_addin1, kat2032_retbits
+};
+static const struct drbg_kat kat2032 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2032_t
+};
+
+static const unsigned char kat2033_entropyin[] = {
+ 0xf3, 0x6e, 0x6a, 0xb1, 0x6a, 0x4d, 0xc1, 0xa6, 0x8e, 0xad, 0x3c, 0x8f,
+ 0xb5, 0xfd, 0x4a, 0x9b, 0x22, 0xeb, 0x15, 0xe2, 0x43, 0x96, 0x46, 0x57,
+ 0x89, 0x5d, 0x02, 0xce, 0xb5, 0xca, 0x9b, 0x75,
+};
+static const unsigned char kat2033_nonce[] = {
+ 0xcb, 0x55, 0x56, 0x1e, 0x35, 0xc4, 0x41, 0x8b, 0x6c, 0x22, 0x75, 0xb5,
+ 0x0d, 0xe5, 0x7d, 0xf1,
+};
+static const unsigned char kat2033_persstr[] = {
+ 0x9c, 0x60, 0x4b, 0xa9, 0x91, 0x03, 0x66, 0x68, 0x57, 0x98, 0xf0, 0xc2,
+ 0x10, 0x44, 0x78, 0x9e, 0xb8, 0xfa, 0x3a, 0x51, 0xf9, 0x9a, 0x7e, 0xd4,
+ 0x51, 0xca, 0x3a, 0x6e, 0x22, 0x3e, 0xc3, 0x4a,
+};
+static const unsigned char kat2033_entropyinreseed[] = {
+ 0x9f, 0xf7, 0x9a, 0xea, 0xb2, 0x49, 0x8f, 0xde, 0xe0, 0x9a, 0x35, 0x55,
+ 0x79, 0x98, 0xe8, 0x00, 0xec, 0xc1, 0x62, 0xff, 0xe0, 0xd5, 0x62, 0x91,
+ 0xe5, 0x76, 0x01, 0x1e, 0x23, 0x68, 0x09, 0xdc,
+};
+static const unsigned char kat2033_addinreseed[] = {
+ 0x0b, 0x86, 0x5e, 0x50, 0xb6, 0x19, 0x82, 0x1f, 0x53, 0xe6, 0x3e, 0x06,
+ 0x84, 0xd1, 0xce, 0xa2, 0x7a, 0xba, 0xc0, 0xbe, 0x27, 0xf1, 0x20, 0x6a,
+ 0xb1, 0xa6, 0xe4, 0x7f, 0xf0, 0x3e, 0xcf, 0x47,
+};
+static const unsigned char kat2033_addin0[] = {
+ 0x4e, 0x2b, 0x14, 0x2f, 0x77, 0xdb, 0x9e, 0xa7, 0xf2, 0x9f, 0x6a, 0x93,
+ 0x85, 0xa4, 0xae, 0x22, 0xbf, 0xcc, 0xcf, 0x81, 0x1f, 0x7f, 0xdf, 0x8a,
+ 0x5e, 0x5f, 0x4a, 0x0f, 0x6f, 0x32, 0x5c, 0x99,
+};
+static const unsigned char kat2033_addin1[] = {
+ 0x46, 0x92, 0x2a, 0xd3, 0x87, 0x71, 0x54, 0x90, 0x11, 0xfc, 0x80, 0xe7,
+ 0x46, 0x33, 0x4e, 0x15, 0x85, 0x3c, 0x04, 0x46, 0x19, 0xae, 0xd6, 0x84,
+ 0x7f, 0xc7, 0xc6, 0x2e, 0x60, 0x04, 0xf2, 0x98,
+};
+static const unsigned char kat2033_retbits[] = {
+ 0xe1, 0x3d, 0x04, 0x6e, 0x9d, 0xa6, 0xa6, 0x03, 0x66, 0xee, 0x3c, 0x7c,
+ 0xe2, 0x0b, 0x59, 0xcf, 0x55, 0x5e, 0x41, 0xfa, 0xf5, 0x8b, 0xab, 0x05,
+ 0x1a, 0xa4, 0x0c, 0x35, 0xa2, 0x07, 0xa3, 0x16, 0x63, 0x4d, 0x17, 0x95,
+ 0x1f, 0x8c, 0x17, 0x51, 0xa2, 0x64, 0x13, 0xca, 0x25, 0xea, 0x2e, 0x94,
+ 0x62, 0xcd, 0x3d, 0x9c, 0xe8, 0xff, 0xf3, 0xb3, 0x53, 0xf9, 0x10, 0x76,
+ 0xa3, 0x2a, 0xd6, 0xe2,
+};
+static const struct drbg_kat_pr_false kat2033_t = {
+ 7, kat2033_entropyin, kat2033_nonce, kat2033_persstr,
+ kat2033_entropyinreseed, kat2033_addinreseed, kat2033_addin0,
+ kat2033_addin1, kat2033_retbits
+};
+static const struct drbg_kat kat2033 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2033_t
+};
+
+static const unsigned char kat2034_entropyin[] = {
+ 0xf9, 0xb2, 0x9d, 0x40, 0x98, 0x2e, 0xa2, 0x73, 0xa6, 0xb3, 0x5b, 0xec,
+ 0x95, 0x3c, 0x6e, 0x9b, 0x77, 0xab, 0x90, 0x4f, 0xef, 0x3b, 0x55, 0x40,
+ 0x8e, 0xb4, 0xde, 0x51, 0x73, 0x19, 0xb7, 0x92,
+};
+static const unsigned char kat2034_nonce[] = {
+ 0x76, 0x5c, 0x54, 0x2b, 0xc6, 0xfa, 0xda, 0x9f, 0x68, 0x72, 0xfa, 0xaf,
+ 0x63, 0xe7, 0xb9, 0x53,
+};
+static const unsigned char kat2034_persstr[] = {
+ 0x9c, 0xef, 0xad, 0x9c, 0x60, 0x51, 0x1e, 0x2f, 0x67, 0xa1, 0x69, 0x56,
+ 0x0f, 0x7d, 0x4e, 0x5e, 0xc5, 0x31, 0xaf, 0xa7, 0x4e, 0x83, 0xa5, 0x69,
+ 0xe8, 0x39, 0xed, 0xcd, 0x47, 0xef, 0x46, 0xaa,
+};
+static const unsigned char kat2034_entropyinreseed[] = {
+ 0x97, 0x7e, 0x45, 0xdf, 0xf8, 0x78, 0xec, 0xec, 0x24, 0xbe, 0x75, 0x9f,
+ 0xfe, 0x70, 0x37, 0x32, 0xf6, 0x16, 0x73, 0xdb, 0x62, 0x6f, 0x07, 0xc0,
+ 0x0e, 0x94, 0x64, 0xc6, 0x9b, 0x2e, 0x08, 0x24,
+};
+static const unsigned char kat2034_addinreseed[] = {
+ 0xa4, 0xb1, 0x50, 0x28, 0x86, 0x23, 0xbb, 0x82, 0x21, 0x6a, 0x96, 0xef,
+ 0x1f, 0xb6, 0x73, 0x4f, 0xda, 0x32, 0x24, 0xbe, 0xa5, 0x65, 0xa5, 0x65,
+ 0xde, 0xe4, 0x1e, 0x5b, 0x7c, 0xec, 0x95, 0x00,
+};
+static const unsigned char kat2034_addin0[] = {
+ 0x6a, 0x16, 0x5a, 0xb0, 0x41, 0xc1, 0x2c, 0x31, 0xb9, 0x8a, 0x40, 0x78,
+ 0xd8, 0xca, 0x90, 0x7c, 0x2a, 0x08, 0x41, 0x20, 0x60, 0x4f, 0x85, 0x9c,
+ 0x63, 0x09, 0x43, 0xef, 0x25, 0x13, 0x1c, 0x6f,
+};
+static const unsigned char kat2034_addin1[] = {
+ 0x5e, 0x59, 0x18, 0xcc, 0x94, 0x39, 0x63, 0x7a, 0x96, 0xfb, 0x3c, 0xb3,
+ 0xb1, 0x7e, 0x46, 0x8b, 0xda, 0xcd, 0x8b, 0x87, 0x4e, 0x2c, 0xf1, 0x4b,
+ 0x56, 0x40, 0x34, 0xdd, 0xb4, 0x7d, 0x1e, 0x20,
+};
+static const unsigned char kat2034_retbits[] = {
+ 0xe3, 0x97, 0xc6, 0x10, 0x46, 0x55, 0x59, 0x2c, 0xbc, 0x9b, 0x8e, 0x14,
+ 0xab, 0x5d, 0x08, 0x22, 0x86, 0x6d, 0xe4, 0x31, 0x48, 0x8f, 0x45, 0x2e,
+ 0xac, 0xfe, 0x42, 0x3e, 0x69, 0x41, 0x10, 0x9c, 0x47, 0xea, 0x4a, 0x43,
+ 0x88, 0xa6, 0x72, 0x3b, 0x40, 0x73, 0xc0, 0xe8, 0x96, 0x37, 0x7b, 0x0d,
+ 0x2f, 0x35, 0x2d, 0x6f, 0xb9, 0x60, 0x1d, 0x7f, 0xb5, 0xbc, 0x73, 0xc0,
+ 0x4c, 0x52, 0x4d, 0xe8,
+};
+static const struct drbg_kat_pr_false kat2034_t = {
+ 8, kat2034_entropyin, kat2034_nonce, kat2034_persstr,
+ kat2034_entropyinreseed, kat2034_addinreseed, kat2034_addin0,
+ kat2034_addin1, kat2034_retbits
+};
+static const struct drbg_kat kat2034 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2034_t
+};
+
+static const unsigned char kat2035_entropyin[] = {
+ 0x3d, 0xdf, 0xa0, 0xf5, 0x78, 0x09, 0xbe, 0x74, 0x56, 0xfc, 0x8f, 0xb8,
+ 0xc4, 0xeb, 0xbc, 0x20, 0x40, 0x49, 0x6a, 0xef, 0x79, 0x27, 0x58, 0xee,
+ 0xbb, 0x72, 0x84, 0xe2, 0x36, 0x99, 0xc2, 0x0c,
+};
+static const unsigned char kat2035_nonce[] = {
+ 0xa1, 0x83, 0x9a, 0x77, 0x56, 0x1f, 0xf3, 0xe4, 0x06, 0x19, 0x78, 0xf8,
+ 0xf4, 0x22, 0x70, 0x8c,
+};
+static const unsigned char kat2035_persstr[] = {
+ 0x88, 0x9b, 0x72, 0x24, 0x6e, 0x71, 0x33, 0x39, 0x45, 0xc7, 0xcf, 0x9f,
+ 0x4d, 0x70, 0x6d, 0x6d, 0xdd, 0x7b, 0x1c, 0xf0, 0x9a, 0x59, 0xc5, 0x7c,
+ 0xe8, 0x82, 0xdb, 0xf3, 0xab, 0x3c, 0x88, 0xc7,
+};
+static const unsigned char kat2035_entropyinreseed[] = {
+ 0x6d, 0x26, 0xd6, 0x1a, 0xec, 0x8f, 0x12, 0x2b, 0x50, 0xf9, 0x02, 0x2b,
+ 0xda, 0x1f, 0x09, 0x73, 0xb1, 0x4c, 0x5c, 0x3e, 0x5d, 0x16, 0xbe, 0x2c,
+ 0x88, 0x39, 0x8e, 0x35, 0x28, 0x65, 0x4b, 0x6b,
+};
+static const unsigned char kat2035_addinreseed[] = {
+ 0x50, 0x13, 0x8a, 0x1c, 0x11, 0x8b, 0x36, 0xc7, 0x5a, 0x05, 0x2a, 0xad,
+ 0x17, 0x0c, 0xda, 0x2c, 0xd4, 0xc0, 0x11, 0x36, 0xd6, 0x2b, 0x88, 0x40,
+ 0x97, 0xd6, 0x4b, 0x8b, 0xe2, 0xa8, 0x87, 0x60,
+};
+static const unsigned char kat2035_addin0[] = {
+ 0x45, 0xe5, 0x70, 0x24, 0x61, 0xdd, 0x9b, 0xc7, 0x26, 0x15, 0x8e, 0x6c,
+ 0x96, 0xc6, 0x96, 0xf5, 0x19, 0xf8, 0x07, 0xa5, 0x8e, 0xdd, 0xfe, 0xc7,
+ 0x9e, 0x50, 0xf3, 0x8a, 0x03, 0xb6, 0x5a, 0x29,
+};
+static const unsigned char kat2035_addin1[] = {
+ 0x34, 0x8f, 0x61, 0x37, 0x0c, 0xa8, 0x04, 0xe6, 0x4d, 0x42, 0x19, 0xae,
+ 0xc7, 0xb7, 0xa9, 0x61, 0x0d, 0xe4, 0x43, 0x19, 0x05, 0x10, 0x7b, 0x2a,
+ 0xb9, 0x33, 0x62, 0xf4, 0xbc, 0x19, 0xd8, 0xf1,
+};
+static const unsigned char kat2035_retbits[] = {
+ 0xfc, 0xc0, 0xdc, 0x7a, 0xed, 0x0e, 0x56, 0x94, 0x05, 0x8e, 0xd3, 0xc6,
+ 0x21, 0x34, 0x6d, 0x5c, 0xb5, 0xcf, 0xef, 0x49, 0xd3, 0xc0, 0x46, 0x73,
+ 0x80, 0x23, 0x45, 0x6f, 0x17, 0x57, 0x7b, 0xc0, 0x86, 0x15, 0x94, 0xec,
+ 0x01, 0x81, 0x49, 0xb3, 0x66, 0xb4, 0x02, 0xdd, 0x64, 0x30, 0x3d, 0x4b,
+ 0x0e, 0x36, 0xfc, 0xb8, 0x95, 0xf3, 0xc6, 0xa5, 0x08, 0x3f, 0xd2, 0x89,
+ 0x80, 0x35, 0x5b, 0xc1,
+};
+static const struct drbg_kat_pr_false kat2035_t = {
+ 9, kat2035_entropyin, kat2035_nonce, kat2035_persstr,
+ kat2035_entropyinreseed, kat2035_addinreseed, kat2035_addin0,
+ kat2035_addin1, kat2035_retbits
+};
+static const struct drbg_kat kat2035 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2035_t
+};
+
+static const unsigned char kat2036_entropyin[] = {
+ 0x77, 0x82, 0x8e, 0xfc, 0xe8, 0x2d, 0xfc, 0x95, 0x5f, 0x77, 0x84, 0x99,
+ 0x7a, 0x70, 0xdf, 0xf8, 0xfe, 0x11, 0xcc, 0xc7, 0x25, 0xcd, 0x1b, 0xa2,
+ 0xd6, 0xa1, 0x1e, 0xd6, 0x73, 0xa0, 0x6b, 0x38,
+};
+static const unsigned char kat2036_nonce[] = {
+ 0x5e, 0x2d, 0xe9, 0xfe, 0x7e, 0xec, 0xeb, 0x0a, 0x5b, 0xd7, 0xc1, 0xfe,
+ 0x5f, 0xb6, 0x30, 0x1e,
+};
+static const unsigned char kat2036_persstr[] = {
+ 0x26, 0x78, 0x11, 0x51, 0x52, 0xd3, 0xa5, 0xd2, 0x5a, 0x86, 0x30, 0x31,
+ 0x29, 0x87, 0x56, 0x55, 0x09, 0xfd, 0x85, 0xcb, 0xc0, 0xac, 0xcc, 0x26,
+ 0x2c, 0x14, 0x03, 0x0e, 0x5e, 0xd4, 0x48, 0xa8,
+};
+static const unsigned char kat2036_entropyinreseed[] = {
+ 0xaf, 0x77, 0x49, 0x41, 0x5d, 0xe1, 0xb5, 0x53, 0xfa, 0x6b, 0x20, 0xa1,
+ 0x92, 0x3e, 0xf3, 0x48, 0xf7, 0xef, 0x60, 0x19, 0x0d, 0x02, 0x88, 0x15,
+ 0x5d, 0x57, 0x94, 0xcd, 0x8f, 0xff, 0x4e, 0x45,
+};
+static const unsigned char kat2036_addinreseed[] = {
+ 0x97, 0xe8, 0x11, 0x74, 0xb5, 0x07, 0x69, 0xbd, 0xb0, 0xb4, 0x3d, 0xc7,
+ 0x44, 0xb1, 0xfa, 0xbe, 0x08, 0x55, 0x05, 0xc3, 0x54, 0xb2, 0xf6, 0xa7,
+ 0xde, 0x38, 0xa5, 0x30, 0xc1, 0x06, 0x06, 0x9b,
+};
+static const unsigned char kat2036_addin0[] = {
+ 0x6f, 0xc0, 0x2b, 0xbc, 0xc3, 0x07, 0x59, 0x46, 0xdd, 0x5c, 0xd8, 0x10,
+ 0xe6, 0x77, 0x18, 0x8c, 0xf6, 0x91, 0x18, 0x66, 0x5d, 0x04, 0xf1, 0x5c,
+ 0xe6, 0x67, 0x1e, 0x5b, 0xb5, 0xbb, 0xe7, 0xa3,
+};
+static const unsigned char kat2036_addin1[] = {
+ 0xe7, 0x67, 0x4e, 0x18, 0xae, 0x38, 0xaa, 0x10, 0xf4, 0x4a, 0x0e, 0x24,
+ 0x1c, 0x9c, 0x74, 0xf8, 0xd6, 0xe5, 0x70, 0x66, 0x6b, 0xf5, 0x3e, 0x02,
+ 0x3c, 0xe1, 0x1e, 0x5c, 0x1c, 0x2c, 0x0a, 0x02,
+};
+static const unsigned char kat2036_retbits[] = {
+ 0x13, 0x89, 0xc9, 0x04, 0xca, 0xc5, 0x90, 0x8a, 0xc5, 0x72, 0x85, 0xbc,
+ 0x5f, 0xa5, 0xbe, 0xfe, 0x12, 0xf8, 0x10, 0x0d, 0x0e, 0x50, 0xd0, 0x9f,
+ 0x01, 0xd1, 0x37, 0xa9, 0x7d, 0x6c, 0xf6, 0x21, 0x14, 0xa6, 0xbd, 0x18,
+ 0xa4, 0xd8, 0xbc, 0x81, 0x23, 0xae, 0x4c, 0xbc, 0x63, 0x03, 0xe2, 0x98,
+ 0x30, 0xe6, 0xb3, 0x01, 0xac, 0x29, 0x4f, 0xcd, 0x0f, 0xd4, 0x1d, 0x17,
+ 0x39, 0xbb, 0x28, 0x0d,
+};
+static const struct drbg_kat_pr_false kat2036_t = {
+ 10, kat2036_entropyin, kat2036_nonce, kat2036_persstr,
+ kat2036_entropyinreseed, kat2036_addinreseed, kat2036_addin0,
+ kat2036_addin1, kat2036_retbits
+};
+static const struct drbg_kat kat2036 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2036_t
+};
+
+static const unsigned char kat2037_entropyin[] = {
+ 0x55, 0x57, 0xed, 0xbd, 0x85, 0x34, 0x9f, 0x61, 0x6b, 0x8b, 0x52, 0x59,
+ 0xc9, 0x55, 0xd6, 0x7e, 0x19, 0x8f, 0x96, 0xa9, 0xe3, 0x6c, 0x23, 0x66,
+ 0x02, 0x46, 0x48, 0x53, 0x8f, 0x11, 0xd9, 0xda,
+};
+static const unsigned char kat2037_nonce[] = {
+ 0x33, 0xce, 0x40, 0x59, 0xe8, 0xbd, 0xe0, 0x8d, 0x74, 0xa0, 0x25, 0x9c,
+ 0x14, 0x10, 0x94, 0x67,
+};
+static const unsigned char kat2037_persstr[] = {
+ 0x81, 0xd2, 0x6a, 0xc8, 0x78, 0x52, 0xec, 0x42, 0x81, 0x01, 0xbb, 0x00,
+ 0xe4, 0xcf, 0xd3, 0xf0, 0xc3, 0xbb, 0x46, 0xf2, 0xe9, 0xf0, 0x5f, 0xc7,
+ 0x89, 0xfb, 0x58, 0x96, 0x93, 0xfe, 0x66, 0x16,
+};
+static const unsigned char kat2037_entropyinreseed[] = {
+ 0x6a, 0xfc, 0x50, 0x03, 0xb7, 0xc1, 0x96, 0xc5, 0xe5, 0xc6, 0x86, 0x20,
+ 0x76, 0x55, 0x38, 0x5f, 0x55, 0xf7, 0xe2, 0x07, 0xf7, 0xab, 0x28, 0xb5,
+ 0x3a, 0x94, 0xb0, 0xab, 0x5b, 0x2a, 0xdf, 0x8c,
+};
+static const unsigned char kat2037_addinreseed[] = {
+ 0x66, 0x1f, 0x9d, 0x57, 0x13, 0x1b, 0x78, 0x89, 0xd6, 0x5d, 0xf4, 0xe4,
+ 0x44, 0xec, 0xd4, 0x1b, 0x32, 0x5c, 0x11, 0x22, 0x85, 0xea, 0xb1, 0x36,
+ 0x73, 0x9f, 0x11, 0x7e, 0x6e, 0xcc, 0xa4, 0xb4,
+};
+static const unsigned char kat2037_addin0[] = {
+ 0x03, 0x98, 0x30, 0x95, 0xb3, 0x12, 0xf8, 0x15, 0xe0, 0x1d, 0x0c, 0x24,
+ 0x03, 0xcd, 0xa2, 0xbb, 0x22, 0x2f, 0xcc, 0xd5, 0xb5, 0xa6, 0xa5, 0xf1,
+ 0x6c, 0x85, 0x96, 0xf5, 0x56, 0xfa, 0x80, 0x70,
+};
+static const unsigned char kat2037_addin1[] = {
+ 0x14, 0xb8, 0x44, 0x64, 0x46, 0x87, 0x77, 0x60, 0x22, 0xae, 0x0d, 0x4e,
+ 0x5c, 0xc3, 0x5b, 0xa9, 0xb7, 0x7f, 0xeb, 0x70, 0x0d, 0x17, 0xac, 0x5b,
+ 0xdb, 0x7e, 0x5c, 0x62, 0x74, 0x47, 0x7c, 0xfa,
+};
+static const unsigned char kat2037_retbits[] = {
+ 0x5c, 0xd9, 0x4c, 0x38, 0xb3, 0x4a, 0x13, 0x18, 0x46, 0x88, 0x64, 0x39,
+ 0x4c, 0x5a, 0x0e, 0x8f, 0x3b, 0xbe, 0x99, 0xa5, 0xbc, 0x76, 0x27, 0xe6,
+ 0x05, 0x71, 0xed, 0x0f, 0x0e, 0xb5, 0x9d, 0x2f, 0xa5, 0x89, 0xaf, 0xb2,
+ 0xdc, 0xa4, 0x72, 0x63, 0x06, 0xb0, 0x9c, 0x11, 0xe0, 0x79, 0xe1, 0xd6,
+ 0x00, 0x9b, 0x6e, 0x52, 0x03, 0x36, 0x8b, 0x23, 0x9d, 0xd5, 0x93, 0x1d,
+ 0x8a, 0x3e, 0xa8, 0x57,
+};
+static const struct drbg_kat_pr_false kat2037_t = {
+ 11, kat2037_entropyin, kat2037_nonce, kat2037_persstr,
+ kat2037_entropyinreseed, kat2037_addinreseed, kat2037_addin0,
+ kat2037_addin1, kat2037_retbits
+};
+static const struct drbg_kat kat2037 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2037_t
+};
+
+static const unsigned char kat2038_entropyin[] = {
+ 0xb7, 0xa4, 0x83, 0x79, 0xbb, 0x37, 0x60, 0xea, 0xa6, 0x1a, 0x73, 0x3c,
+ 0x9b, 0x13, 0xd0, 0x07, 0x9b, 0xc7, 0x62, 0xec, 0xaf, 0x7c, 0xb3, 0x3a,
+ 0xdc, 0x47, 0xfd, 0xab, 0xe1, 0x60, 0xb6, 0xed,
+};
+static const unsigned char kat2038_nonce[] = {
+ 0x90, 0xce, 0xe0, 0x92, 0x75, 0xcc, 0x0d, 0xa2, 0x95, 0x5c, 0xbd, 0xc8,
+ 0x17, 0xc9, 0x26, 0x9d,
+};
+static const unsigned char kat2038_persstr[] = {
+ 0x3a, 0x93, 0x3b, 0x47, 0x64, 0x07, 0x4a, 0xfb, 0xd7, 0x5f, 0x08, 0x0b,
+ 0x7e, 0x6d, 0x7e, 0xa7, 0xad, 0x28, 0x83, 0x7f, 0x14, 0xbc, 0xae, 0x18,
+ 0x73, 0xbd, 0xe7, 0xa7, 0xab, 0x7b, 0x08, 0x5b,
+};
+static const unsigned char kat2038_entropyinreseed[] = {
+ 0xe1, 0xbd, 0x1f, 0x81, 0x20, 0xc8, 0xdc, 0x41, 0x8c, 0x5c, 0xca, 0x4e,
+ 0x76, 0x7e, 0x4a, 0xb7, 0x74, 0x83, 0x37, 0xce, 0xf9, 0x88, 0xb2, 0x59,
+ 0x88, 0x00, 0xd6, 0x09, 0xa0, 0x2b, 0xa1, 0x45,
+};
+static const unsigned char kat2038_addinreseed[] = {
+ 0x04, 0xed, 0x95, 0x64, 0x79, 0x76, 0xce, 0x36, 0xe0, 0xbb, 0xb3, 0x2e,
+ 0xbd, 0xaf, 0xa7, 0xd3, 0x2d, 0x01, 0x1f, 0xc6, 0xf1, 0x3f, 0x09, 0x8e,
+ 0x70, 0xdc, 0x10, 0xf5, 0x1a, 0x2b, 0x41, 0x1d,
+};
+static const unsigned char kat2038_addin0[] = {
+ 0x4e, 0x43, 0x12, 0xc6, 0x9f, 0x41, 0x56, 0xdc, 0xd6, 0x33, 0x48, 0x1c,
+ 0xf8, 0x2d, 0x9f, 0x77, 0x7d, 0x40, 0x2f, 0xfe, 0x17, 0x58, 0x4e, 0x6d,
+ 0xa7, 0x72, 0x14, 0x47, 0x6f, 0x00, 0x11, 0x6e,
+};
+static const unsigned char kat2038_addin1[] = {
+ 0xce, 0xdb, 0xaf, 0x29, 0x7d, 0xc8, 0xc8, 0x38, 0x20, 0xdb, 0x61, 0x47,
+ 0xd4, 0xad, 0x9c, 0xc8, 0x06, 0xcf, 0x63, 0x26, 0x89, 0xb8, 0x1f, 0x02,
+ 0xdb, 0xc9, 0x5a, 0x1e, 0x74, 0xea, 0xac, 0x81,
+};
+static const unsigned char kat2038_retbits[] = {
+ 0x74, 0x61, 0xdf, 0x9d, 0x63, 0x4f, 0xd4, 0x73, 0x85, 0x67, 0x70, 0x90,
+ 0xc4, 0x78, 0xd0, 0xa4, 0xd9, 0x67, 0xcd, 0x9c, 0xec, 0x61, 0x60, 0x08,
+ 0x83, 0xd7, 0x00, 0xa5, 0xd5, 0xf8, 0xd2, 0xa5, 0x47, 0xfb, 0x3a, 0xae,
+ 0x9c, 0x2b, 0x64, 0x17, 0xaa, 0xef, 0x1c, 0x5c, 0x3f, 0xa6, 0x28, 0xfd,
+ 0x25, 0xb0, 0x12, 0x60, 0x0b, 0x78, 0xbb, 0x88, 0xed, 0xdd, 0x8c, 0x80,
+ 0x9c, 0x77, 0xcb, 0xfc,
+};
+static const struct drbg_kat_pr_false kat2038_t = {
+ 12, kat2038_entropyin, kat2038_nonce, kat2038_persstr,
+ kat2038_entropyinreseed, kat2038_addinreseed, kat2038_addin0,
+ kat2038_addin1, kat2038_retbits
+};
+static const struct drbg_kat kat2038 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2038_t
+};
+
+static const unsigned char kat2039_entropyin[] = {
+ 0x1b, 0x4b, 0xc0, 0x41, 0x68, 0xf2, 0x1a, 0xfa, 0x76, 0xe6, 0x5a, 0x7f,
+ 0x80, 0xba, 0xce, 0x5e, 0x1a, 0x28, 0x53, 0x09, 0xac, 0x93, 0x6e, 0x66,
+ 0x5b, 0x9a, 0x3f, 0x45, 0xd0, 0x90, 0xe3, 0x42,
+};
+static const unsigned char kat2039_nonce[] = {
+ 0x8f, 0xb3, 0xf4, 0xa6, 0xc8, 0xef, 0x57, 0x25, 0xd0, 0xb9, 0xef, 0xdf,
+ 0x17, 0xf2, 0xd0, 0x2f,
+};
+static const unsigned char kat2039_persstr[] = {
+ 0x5e, 0x7c, 0x4b, 0x72, 0x3b, 0xc8, 0xfe, 0x19, 0xc2, 0xe2, 0x49, 0xba,
+ 0x3e, 0x3a, 0xce, 0x3e, 0x44, 0x1b, 0xcc, 0xdd, 0x33, 0xce, 0x35, 0x3c,
+ 0xbd, 0xdf, 0xc2, 0xe2, 0x6e, 0x81, 0xd8, 0xe8,
+};
+static const unsigned char kat2039_entropyinreseed[] = {
+ 0x1d, 0x8f, 0xbf, 0xa1, 0xe8, 0x32, 0xd3, 0x0a, 0x9c, 0x9c, 0xf7, 0x8f,
+ 0x6e, 0x01, 0x46, 0xcd, 0x5d, 0xc7, 0xec, 0x01, 0xc4, 0x45, 0xad, 0xa4,
+ 0x32, 0xc7, 0x6a, 0x79, 0xa3, 0x03, 0xd3, 0x70,
+};
+static const unsigned char kat2039_addinreseed[] = {
+ 0x51, 0x9e, 0x20, 0x10, 0x2d, 0x03, 0x10, 0xd7, 0x7d, 0x2a, 0xca, 0x93,
+ 0xb8, 0xb9, 0x20, 0x37, 0x05, 0x6c, 0xbc, 0x0a, 0x9e, 0xb2, 0x5f, 0xd3,
+ 0xd0, 0xf2, 0x3a, 0x94, 0x79, 0xba, 0x44, 0x1c,
+};
+static const unsigned char kat2039_addin0[] = {
+ 0x94, 0x63, 0x3d, 0xd0, 0xc6, 0xf3, 0x37, 0xde, 0xbf, 0xc2, 0x18, 0xc5,
+ 0x96, 0x0f, 0x71, 0x6d, 0x5d, 0x42, 0xcf, 0x01, 0xb7, 0x96, 0x8d, 0x7d,
+ 0x9e, 0x50, 0xd8, 0x3c, 0xc3, 0x5b, 0xdc, 0x71,
+};
+static const unsigned char kat2039_addin1[] = {
+ 0xf1, 0xe7, 0x0c, 0x21, 0x24, 0xec, 0x84, 0xf1, 0xe3, 0x22, 0x29, 0x44,
+ 0x17, 0x7d, 0xd7, 0xee, 0x74, 0x14, 0x29, 0x4c, 0x35, 0x45, 0x6e, 0xc4,
+ 0x4e, 0xf0, 0xae, 0x9b, 0x03, 0x04, 0x4f, 0x63,
+};
+static const unsigned char kat2039_retbits[] = {
+ 0x58, 0xe9, 0xe6, 0x83, 0xd1, 0xbc, 0x06, 0x4c, 0x83, 0x6e, 0x36, 0x20,
+ 0x15, 0xd0, 0xe8, 0x2b, 0x8c, 0xd1, 0x2e, 0xb0, 0x5c, 0x5c, 0x3f, 0x94,
+ 0x83, 0x2f, 0x81, 0xdf, 0xd7, 0xc0, 0x71, 0x97, 0xa3, 0xa5, 0xe1, 0xd3,
+ 0xc5, 0xb8, 0xbe, 0x33, 0x11, 0xc7, 0x34, 0x9e, 0x05, 0xd4, 0x68, 0x04,
+ 0x2e, 0x74, 0xbb, 0x51, 0xa4, 0xa3, 0x0d, 0xff, 0x94, 0x31, 0xd2, 0x7d,
+ 0x77, 0xb5, 0x6e, 0x6c,
+};
+static const struct drbg_kat_pr_false kat2039_t = {
+ 13, kat2039_entropyin, kat2039_nonce, kat2039_persstr,
+ kat2039_entropyinreseed, kat2039_addinreseed, kat2039_addin0,
+ kat2039_addin1, kat2039_retbits
+};
+static const struct drbg_kat kat2039 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2039_t
+};
+
+static const unsigned char kat2040_entropyin[] = {
+ 0xc1, 0x68, 0xc7, 0xc4, 0xec, 0x2a, 0xab, 0x2a, 0x43, 0xeb, 0x91, 0x06,
+ 0xcc, 0x7b, 0x01, 0x5b, 0x51, 0xf9, 0x63, 0xbe, 0xa7, 0x50, 0x55, 0xbd,
+ 0xdf, 0x30, 0x9c, 0xe4, 0xc4, 0xbd, 0xdd, 0x35,
+};
+static const unsigned char kat2040_nonce[] = {
+ 0x78, 0x45, 0x5e, 0x64, 0x37, 0xea, 0x20, 0x65, 0x29, 0xec, 0x02, 0xca,
+ 0x10, 0x31, 0xe3, 0xa8,
+};
+static const unsigned char kat2040_persstr[] = {
+ 0x2d, 0x1f, 0x73, 0x5d, 0x27, 0xa9, 0x86, 0x85, 0x59, 0x4e, 0xbd, 0x7d,
+ 0x1f, 0x33, 0x85, 0x19, 0xb0, 0x39, 0x81, 0xb4, 0xe9, 0x1c, 0x20, 0xa6,
+ 0x69, 0xdf, 0x5b, 0x06, 0x68, 0x53, 0xd3, 0xa7,
+};
+static const unsigned char kat2040_entropyinreseed[] = {
+ 0x3f, 0x38, 0x53, 0xd3, 0xd1, 0xd6, 0x9f, 0x43, 0xc1, 0xf3, 0x31, 0xcc,
+ 0x06, 0x10, 0xa6, 0xd3, 0x4e, 0x52, 0x4b, 0x15, 0x1f, 0xbd, 0x07, 0x4a,
+ 0x2f, 0x92, 0x4e, 0x4f, 0xb7, 0x17, 0xbd, 0x62,
+};
+static const unsigned char kat2040_addinreseed[] = {
+ 0xdb, 0xf6, 0xa2, 0xe0, 0x38, 0xcc, 0x18, 0x20, 0xe8, 0x76, 0x83, 0xa8,
+ 0xad, 0x6e, 0xd0, 0x05, 0xa4, 0x8b, 0x3f, 0x46, 0x08, 0x68, 0x34, 0x37,
+ 0x76, 0xdc, 0x76, 0xf1, 0xd7, 0x74, 0x8e, 0x00,
+};
+static const unsigned char kat2040_addin0[] = {
+ 0x4c, 0xc2, 0x2a, 0x0b, 0x23, 0x3f, 0x31, 0x70, 0xe0, 0x19, 0x02, 0xca,
+ 0x80, 0x4a, 0x45, 0x16, 0x2b, 0x73, 0xf5, 0x50, 0xc1, 0x9c, 0xaf, 0x2c,
+ 0x97, 0x41, 0xcc, 0x25, 0x85, 0x45, 0x87, 0xd1,
+};
+static const unsigned char kat2040_addin1[] = {
+ 0x48, 0x23, 0x8c, 0x9b, 0xe5, 0xce, 0xf5, 0x7d, 0x5b, 0x1c, 0x45, 0xa0,
+ 0x45, 0x6c, 0xce, 0x1e, 0x42, 0xbd, 0x45, 0x9a, 0x7a, 0xb3, 0xe3, 0x48,
+ 0x3b, 0xcd, 0xaf, 0xae, 0x90, 0x94, 0x1e, 0x64,
+};
+static const unsigned char kat2040_retbits[] = {
+ 0xf2, 0xda, 0x41, 0x89, 0x06, 0x19, 0x1b, 0x76, 0xb3, 0xc5, 0xe2, 0x92,
+ 0x1a, 0x17, 0xe5, 0xcb, 0xf4, 0x82, 0x03, 0x69, 0xe8, 0xc8, 0xb1, 0xc2,
+ 0xa2, 0x66, 0x3c, 0x3f, 0xdf, 0x9d, 0x73, 0x09, 0x5b, 0xe4, 0xc5, 0x41,
+ 0xad, 0xd9, 0xb8, 0xdc, 0xa4, 0x4a, 0x48, 0x6c, 0x31, 0x36, 0x8b, 0x1c,
+ 0x64, 0xb1, 0xc3, 0xd2, 0xc5, 0xbf, 0x14, 0xf3, 0x35, 0x58, 0x41, 0x1c,
+ 0xca, 0x1f, 0x2c, 0xe7,
+};
+static const struct drbg_kat_pr_false kat2040_t = {
+ 14, kat2040_entropyin, kat2040_nonce, kat2040_persstr,
+ kat2040_entropyinreseed, kat2040_addinreseed, kat2040_addin0,
+ kat2040_addin1, kat2040_retbits
+};
+static const struct drbg_kat kat2040 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2040_t
+};
+
+static const unsigned char kat2041_entropyin[] = {
+ 0x83, 0x0b, 0xdf, 0xd3, 0x34, 0x86, 0xf2, 0x6f, 0x4a, 0xf9, 0xf2, 0xa6,
+ 0x99, 0xdb, 0x1e, 0x49, 0x65, 0x26, 0x35, 0xae, 0xd6, 0x98, 0x4e, 0x04,
+ 0xa0, 0xce, 0xa2, 0xc9, 0xa8, 0x7e, 0x43, 0xd2,
+};
+static const unsigned char kat2041_nonce[] = {
+ 0x21, 0xed, 0xe5, 0xbe, 0x36, 0x40, 0x4c, 0x34, 0xb1, 0xb8, 0x5c, 0x2d,
+ 0x23, 0x69, 0xbf, 0x09,
+};
+static const unsigned char kat2041_persstr[] = {0};
+static const unsigned char kat2041_entropyinreseed[] = {
+ 0x8c, 0x72, 0x19, 0x57, 0xa6, 0x30, 0x07, 0x94, 0x86, 0x2a, 0x00, 0x45,
+ 0x74, 0xf9, 0x8a, 0xf9, 0xbb, 0xc0, 0x74, 0xec, 0xdd, 0xe2, 0x2b, 0xec,
+ 0xb0, 0x81, 0xf3, 0x60, 0x53, 0x5f, 0x3f, 0x1f,
+};
+static const unsigned char kat2041_addinreseed[] = {0};
+static const unsigned char kat2041_addin0[] = {0};
+static const unsigned char kat2041_addin1[] = {0};
+static const unsigned char kat2041_retbits[] = {
+ 0x3f, 0x63, 0xeb, 0x5d, 0xe3, 0xa1, 0x3a, 0x30, 0x97, 0xe2, 0x53, 0x99,
+ 0xc3, 0xd9, 0xed, 0x7d, 0x5e, 0x65, 0x91, 0x93, 0x14, 0x61, 0xa8, 0x51,
+ 0xba, 0x64, 0x5b, 0xcf, 0xfd, 0xd0, 0xc0, 0x7f, 0x2b, 0x71, 0xcf, 0xbb,
+ 0x83, 0x29, 0xbb, 0x19, 0x34, 0x97, 0x1d, 0x14, 0x03, 0xdc, 0x68, 0xca,
+ 0xfb, 0x0b, 0xd6, 0xca, 0x4e, 0x4a, 0x6c, 0x28, 0x97, 0x6a, 0xd5, 0xe8,
+ 0xbb, 0x13, 0xa3, 0x5f,
+};
+static const struct drbg_kat_pr_false kat2041_t = {
+ 0, kat2041_entropyin, kat2041_nonce, kat2041_persstr,
+ kat2041_entropyinreseed, kat2041_addinreseed, kat2041_addin0,
+ kat2041_addin1, kat2041_retbits
+};
+static const struct drbg_kat kat2041 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2041_t
+};
+
+static const unsigned char kat2042_entropyin[] = {
+ 0x06, 0x8c, 0xe2, 0x9e, 0x91, 0xfa, 0x6e, 0xbe, 0x9d, 0x39, 0xb0, 0x1e,
+ 0x28, 0x8f, 0xbb, 0x5c, 0x64, 0xd5, 0x30, 0x6e, 0xea, 0xe7, 0x03, 0xd3,
+ 0xb7, 0x4d, 0xcd, 0xcd, 0x64, 0x75, 0x7d, 0x8f,
+};
+static const unsigned char kat2042_nonce[] = {
+ 0xc9, 0x60, 0x64, 0xd6, 0x19, 0xd4, 0xee, 0x60, 0x5d, 0xeb, 0x0c, 0xac,
+ 0x78, 0x02, 0x9e, 0x0c,
+};
+static const unsigned char kat2042_persstr[] = {0};
+static const unsigned char kat2042_entropyinreseed[] = {
+ 0xa5, 0xf0, 0xc7, 0x36, 0xba, 0xc2, 0xf1, 0xe7, 0xc7, 0x55, 0x4f, 0x51,
+ 0xe8, 0x72, 0x79, 0xab, 0xf0, 0x1d, 0x39, 0x21, 0x3f, 0x20, 0xe3, 0x10,
+ 0xab, 0x45, 0xd0, 0xe0, 0x26, 0x22, 0x70, 0xfd,
+};
+static const unsigned char kat2042_addinreseed[] = {0};
+static const unsigned char kat2042_addin0[] = {0};
+static const unsigned char kat2042_addin1[] = {0};
+static const unsigned char kat2042_retbits[] = {
+ 0x24, 0x1c, 0x13, 0xc5, 0xf1, 0x80, 0xe1, 0x73, 0x82, 0xb0, 0x32, 0x29,
+ 0xcb, 0x60, 0x37, 0xa2, 0x23, 0x8e, 0x65, 0x8b, 0x0b, 0xc7, 0x92, 0x73,
+ 0x42, 0x83, 0x3e, 0xf0, 0xb4, 0x51, 0x1b, 0xf8, 0x0d, 0x8d, 0x04, 0x04,
+ 0x2a, 0x71, 0x14, 0x48, 0x5b, 0x6a, 0xec, 0x34, 0x7d, 0xa8, 0x9c, 0x64,
+ 0xea, 0x5f, 0x7d, 0x80, 0xe8, 0xf4, 0xab, 0xb4, 0xb0, 0x54, 0xf2, 0xf0,
+ 0x7a, 0xc6, 0xe2, 0xee,
+};
+static const struct drbg_kat_pr_false kat2042_t = {
+ 1, kat2042_entropyin, kat2042_nonce, kat2042_persstr,
+ kat2042_entropyinreseed, kat2042_addinreseed, kat2042_addin0,
+ kat2042_addin1, kat2042_retbits
+};
+static const struct drbg_kat kat2042 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2042_t
+};
+
+static const unsigned char kat2043_entropyin[] = {
+ 0xf2, 0x2c, 0xf7, 0xcf, 0xf5, 0xc8, 0xf2, 0x5c, 0x3b, 0x15, 0xd9, 0xe6,
+ 0x4b, 0x72, 0x8e, 0xe8, 0xd1, 0x5c, 0xc9, 0x06, 0x37, 0xe2, 0x7b, 0x64,
+ 0xc4, 0x64, 0x3e, 0x46, 0xe1, 0x9a, 0xfb, 0x76,
+};
+static const unsigned char kat2043_nonce[] = {
+ 0xae, 0xf3, 0x66, 0xb3, 0x95, 0x5f, 0x78, 0xf1, 0xcc, 0x43, 0xee, 0x00,
+ 0x8f, 0xc8, 0x8b, 0x7d,
+};
+static const unsigned char kat2043_persstr[] = {0};
+static const unsigned char kat2043_entropyinreseed[] = {
+ 0x17, 0xc1, 0x95, 0x0c, 0x8f, 0x33, 0x9c, 0x84, 0x93, 0xd2, 0x29, 0x8b,
+ 0xb5, 0x3e, 0x14, 0x7c, 0x1b, 0xf8, 0xce, 0x8c, 0xd2, 0xd5, 0x47, 0x62,
+ 0x25, 0x3f, 0x90, 0xf4, 0x3f, 0xb1, 0xc2, 0x54,
+};
+static const unsigned char kat2043_addinreseed[] = {0};
+static const unsigned char kat2043_addin0[] = {0};
+static const unsigned char kat2043_addin1[] = {0};
+static const unsigned char kat2043_retbits[] = {
+ 0xd6, 0xbb, 0x19, 0x64, 0xe6, 0x9c, 0x56, 0x12, 0xe5, 0x8b, 0xff, 0x46,
+ 0x60, 0xa5, 0x83, 0x67, 0x04, 0xd7, 0xf1, 0x4a, 0x3d, 0xd8, 0x3b, 0xac,
+ 0x42, 0x7a, 0x46, 0x4c, 0x8d, 0xcc, 0xe6, 0x08, 0x22, 0xc8, 0x57, 0xf2,
+ 0x80, 0xc2, 0x54, 0x0a, 0x5c, 0x43, 0x19, 0xb8, 0xf1, 0x37, 0xf8, 0xcd,
+ 0x5c, 0x9f, 0xb8, 0xbf, 0xa7, 0xf8, 0xea, 0x75, 0x58, 0x76, 0x95, 0xad,
+ 0xa3, 0xb7, 0x99, 0xbd,
+};
+static const struct drbg_kat_pr_false kat2043_t = {
+ 2, kat2043_entropyin, kat2043_nonce, kat2043_persstr,
+ kat2043_entropyinreseed, kat2043_addinreseed, kat2043_addin0,
+ kat2043_addin1, kat2043_retbits
+};
+static const struct drbg_kat kat2043 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2043_t
+};
+
+static const unsigned char kat2044_entropyin[] = {
+ 0x9a, 0xa2, 0x27, 0x51, 0x45, 0xe2, 0x52, 0xf9, 0x47, 0x1f, 0xa1, 0x39,
+ 0x9e, 0xea, 0xf8, 0x4a, 0x7d, 0xac, 0x15, 0x90, 0xb6, 0xc1, 0x2e, 0x71,
+ 0x33, 0x84, 0x39, 0x35, 0x58, 0x7e, 0xe8, 0x14,
+};
+static const unsigned char kat2044_nonce[] = {
+ 0xe5, 0x0e, 0xfc, 0xb1, 0xa4, 0xfa, 0xc7, 0x02, 0xf2, 0x4d, 0xf5, 0x04,
+ 0x7e, 0xf4, 0x9d, 0x8c,
+};
+static const unsigned char kat2044_persstr[] = {0};
+static const unsigned char kat2044_entropyinreseed[] = {
+ 0xe0, 0x5b, 0x05, 0x97, 0xbd, 0xde, 0x19, 0x98, 0xef, 0xfb, 0x97, 0x02,
+ 0xa2, 0x0c, 0x79, 0x2e, 0x80, 0x93, 0xc2, 0x89, 0x60, 0x07, 0xf8, 0x77,
+ 0x7d, 0xc5, 0x93, 0x3a, 0x6d, 0xe4, 0x9b, 0x10,
+};
+static const unsigned char kat2044_addinreseed[] = {0};
+static const unsigned char kat2044_addin0[] = {0};
+static const unsigned char kat2044_addin1[] = {0};
+static const unsigned char kat2044_retbits[] = {
+ 0x5b, 0xa6, 0xf7, 0xb6, 0x5e, 0xc4, 0xc9, 0x5d, 0x17, 0xcd, 0x02, 0x9a,
+ 0xd5, 0x6a, 0x4f, 0xe2, 0x9d, 0xd7, 0x03, 0xc9, 0x33, 0x13, 0xac, 0x06,
+ 0x59, 0x74, 0x15, 0x59, 0x64, 0xa7, 0xb9, 0xb0, 0xfe, 0x25, 0x2b, 0xc2,
+ 0xe8, 0x65, 0x35, 0x2e, 0x6a, 0x4c, 0xae, 0xe0, 0x90, 0x72, 0x1a, 0x0e,
+ 0xee, 0x0d, 0x6a, 0x7a, 0x0f, 0xd8, 0x3c, 0x74, 0xfe, 0xb7, 0x28, 0xfd,
+ 0xcb, 0xca, 0x4e, 0x94,
+};
+static const struct drbg_kat_pr_false kat2044_t = {
+ 3, kat2044_entropyin, kat2044_nonce, kat2044_persstr,
+ kat2044_entropyinreseed, kat2044_addinreseed, kat2044_addin0,
+ kat2044_addin1, kat2044_retbits
+};
+static const struct drbg_kat kat2044 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2044_t
+};
+
+static const unsigned char kat2045_entropyin[] = {
+ 0xf6, 0x5e, 0xcb, 0xb2, 0x12, 0x05, 0xf1, 0x48, 0x6f, 0xd9, 0x5f, 0x77,
+ 0xa9, 0xac, 0xd6, 0x1a, 0x39, 0x2d, 0x9c, 0x9d, 0x80, 0xb8, 0x01, 0x0c,
+ 0x99, 0x89, 0xbb, 0x84, 0xae, 0x31, 0xf0, 0x64,
+};
+static const unsigned char kat2045_nonce[] = {
+ 0x32, 0xb0, 0x43, 0x52, 0xbd, 0x34, 0x5b, 0x8e, 0x46, 0xa5, 0xb7, 0x7b,
+ 0x30, 0x80, 0x64, 0xb6,
+};
+static const unsigned char kat2045_persstr[] = {0};
+static const unsigned char kat2045_entropyinreseed[] = {
+ 0x32, 0xd8, 0x61, 0xef, 0x5b, 0xcc, 0xc9, 0x0d, 0x39, 0x3c, 0xc9, 0x9b,
+ 0x5c, 0x45, 0x50, 0xa4, 0x1e, 0x2f, 0x0c, 0x2d, 0x23, 0x48, 0x28, 0x23,
+ 0x5f, 0x06, 0x24, 0x3d, 0x61, 0x26, 0xd1, 0x5b,
+};
+static const unsigned char kat2045_addinreseed[] = {0};
+static const unsigned char kat2045_addin0[] = {0};
+static const unsigned char kat2045_addin1[] = {0};
+static const unsigned char kat2045_retbits[] = {
+ 0x52, 0x46, 0x30, 0xad, 0x63, 0xdf, 0x62, 0x94, 0xb9, 0x75, 0xd1, 0xfc,
+ 0xf8, 0x6b, 0x79, 0x50, 0x66, 0x97, 0xc4, 0xb7, 0x96, 0x68, 0xd3, 0x82,
+ 0xe7, 0xd8, 0x3e, 0x30, 0xda, 0x06, 0xac, 0xbd, 0x97, 0xe1, 0x6e, 0x25,
+ 0x6d, 0xf7, 0x3d, 0x68, 0x0c, 0x50, 0x44, 0xe8, 0x34, 0x3d, 0x6b, 0x88,
+ 0x12, 0x3c, 0x7c, 0x89, 0x48, 0x2e, 0x93, 0xef, 0x1a, 0x6c, 0x67, 0xf8,
+ 0x14, 0xcb, 0x99, 0x8b,
+};
+static const struct drbg_kat_pr_false kat2045_t = {
+ 4, kat2045_entropyin, kat2045_nonce, kat2045_persstr,
+ kat2045_entropyinreseed, kat2045_addinreseed, kat2045_addin0,
+ kat2045_addin1, kat2045_retbits
+};
+static const struct drbg_kat kat2045 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2045_t
+};
+
+static const unsigned char kat2046_entropyin[] = {
+ 0x3c, 0xad, 0xe5, 0x24, 0x68, 0xee, 0x03, 0x3f, 0x34, 0x0c, 0xed, 0xf2,
+ 0x66, 0xf6, 0x0e, 0x5d, 0xc4, 0xf4, 0x46, 0xce, 0x1c, 0x53, 0x75, 0x09,
+ 0xc3, 0xa2, 0x5e, 0x77, 0x6e, 0x2d, 0x05, 0x4c,
+};
+static const unsigned char kat2046_nonce[] = {
+ 0x32, 0x5e, 0x3c, 0x6b, 0xc9, 0x0d, 0xab, 0x20, 0x17, 0x83, 0x80, 0xbc,
+ 0x97, 0xa9, 0x2e, 0xa3,
+};
+static const unsigned char kat2046_persstr[] = {0};
+static const unsigned char kat2046_entropyinreseed[] = {
+ 0x6c, 0x3a, 0x92, 0x7d, 0x9f, 0x06, 0x20, 0x92, 0x6f, 0x35, 0x4f, 0x2b,
+ 0x91, 0x29, 0x86, 0x32, 0xbc, 0x52, 0x6b, 0x0c, 0x99, 0xf2, 0x15, 0x05,
+ 0x6f, 0x63, 0x1e, 0x07, 0x97, 0x26, 0xad, 0x98,
+};
+static const unsigned char kat2046_addinreseed[] = {0};
+static const unsigned char kat2046_addin0[] = {0};
+static const unsigned char kat2046_addin1[] = {0};
+static const unsigned char kat2046_retbits[] = {
+ 0x1d, 0x2b, 0x13, 0x25, 0x16, 0x35, 0x4e, 0x9b, 0x0c, 0xbc, 0xf7, 0x88,
+ 0x12, 0xdd, 0xa8, 0xfd, 0xd0, 0x44, 0xaf, 0x16, 0x1c, 0x2e, 0xd5, 0x21,
+ 0x9d, 0xf1, 0xa4, 0xe6, 0x43, 0xda, 0xfa, 0xba, 0xd1, 0xf2, 0x32, 0x1e,
+ 0xd0, 0x9d, 0x68, 0x0c, 0x27, 0x8a, 0x2a, 0x6d, 0xad, 0xfb, 0x5a, 0x5c,
+ 0x9c, 0xd3, 0x28, 0x4c, 0x7e, 0x56, 0x26, 0x2b, 0xb7, 0x07, 0x7e, 0xf7,
+ 0x75, 0x1c, 0xc9, 0xbf,
+};
+static const struct drbg_kat_pr_false kat2046_t = {
+ 5, kat2046_entropyin, kat2046_nonce, kat2046_persstr,
+ kat2046_entropyinreseed, kat2046_addinreseed, kat2046_addin0,
+ kat2046_addin1, kat2046_retbits
+};
+static const struct drbg_kat kat2046 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2046_t
+};
+
+static const unsigned char kat2047_entropyin[] = {
+ 0x82, 0xbc, 0xba, 0xf4, 0x30, 0x05, 0x23, 0x3f, 0x53, 0x5a, 0xb0, 0x4b,
+ 0xdd, 0x9e, 0xb0, 0x8f, 0x55, 0x24, 0xfb, 0x69, 0x99, 0xe9, 0xbb, 0x60,
+ 0xc4, 0xb9, 0x50, 0x1b, 0xb5, 0x8f, 0xaa, 0xe5,
+};
+static const unsigned char kat2047_nonce[] = {
+ 0xb6, 0x34, 0xf1, 0x19, 0x61, 0x75, 0x33, 0x24, 0x2b, 0xc4, 0xe1, 0x0c,
+ 0xdc, 0x73, 0xc8, 0xcc,
+};
+static const unsigned char kat2047_persstr[] = {0};
+static const unsigned char kat2047_entropyinreseed[] = {
+ 0xe0, 0xea, 0x05, 0x05, 0x54, 0xd4, 0xb7, 0xab, 0x4f, 0xaa, 0x51, 0xe3,
+ 0x84, 0xeb, 0x4a, 0x3d, 0xfc, 0xec, 0x08, 0x04, 0x8a, 0x6e, 0xaa, 0x6d,
+ 0x51, 0xe0, 0xfc, 0x95, 0x60, 0x43, 0xec, 0xb5,
+};
+static const unsigned char kat2047_addinreseed[] = {0};
+static const unsigned char kat2047_addin0[] = {0};
+static const unsigned char kat2047_addin1[] = {0};
+static const unsigned char kat2047_retbits[] = {
+ 0x17, 0xae, 0xf2, 0x8a, 0x45, 0xc1, 0xeb, 0xec, 0xcf, 0xed, 0x99, 0x1f,
+ 0x52, 0x6e, 0x56, 0x00, 0x35, 0xd1, 0xc9, 0xe7, 0x3d, 0xe1, 0x21, 0x7c,
+ 0x26, 0x90, 0xe4, 0xe0, 0x1b, 0x36, 0x3c, 0x51, 0x48, 0xcc, 0xd8, 0x00,
+ 0x71, 0x14, 0x3f, 0xc3, 0x4d, 0xf0, 0xee, 0xc7, 0x35, 0x42, 0xd9, 0x93,
+ 0x7a, 0x22, 0x6b, 0x13, 0xf1, 0x6c, 0x2f, 0xce, 0xc9, 0x68, 0xa4, 0x1e,
+ 0xb6, 0xa5, 0x20, 0xd9,
+};
+static const struct drbg_kat_pr_false kat2047_t = {
+ 6, kat2047_entropyin, kat2047_nonce, kat2047_persstr,
+ kat2047_entropyinreseed, kat2047_addinreseed, kat2047_addin0,
+ kat2047_addin1, kat2047_retbits
+};
+static const struct drbg_kat kat2047 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2047_t
+};
+
+static const unsigned char kat2048_entropyin[] = {
+ 0xdc, 0x19, 0xdf, 0x9e, 0x97, 0x75, 0x9b, 0x82, 0x67, 0xa5, 0x50, 0xed,
+ 0xdb, 0x19, 0xc9, 0xac, 0x93, 0x6e, 0x88, 0x1f, 0xe5, 0xf8, 0x07, 0xd8,
+ 0x1b, 0xcc, 0x91, 0x4b, 0x3c, 0x5f, 0x63, 0x89,
+};
+static const unsigned char kat2048_nonce[] = {
+ 0x11, 0x21, 0xd9, 0x75, 0x2e, 0x5f, 0x88, 0x2a, 0x70, 0x75, 0x60, 0xbd,
+ 0x0a, 0x44, 0x9c, 0x59,
+};
+static const unsigned char kat2048_persstr[] = {0};
+static const unsigned char kat2048_entropyinreseed[] = {
+ 0x1c, 0x61, 0x5c, 0xd5, 0x96, 0x22, 0xed, 0xf0, 0xe1, 0xa5, 0xbf, 0xda,
+ 0xbd, 0x4c, 0x39, 0x2e, 0x5d, 0xfd, 0xe8, 0x7d, 0xe0, 0x56, 0xab, 0x83,
+ 0x3f, 0xe2, 0x38, 0x54, 0xb2, 0x6f, 0x3a, 0xe4,
+};
+static const unsigned char kat2048_addinreseed[] = {0};
+static const unsigned char kat2048_addin0[] = {0};
+static const unsigned char kat2048_addin1[] = {0};
+static const unsigned char kat2048_retbits[] = {
+ 0x62, 0xd4, 0x66, 0xee, 0x59, 0x0a, 0x6c, 0x77, 0x27, 0x9f, 0xd8, 0x1c,
+ 0x63, 0x7d, 0x0c, 0x13, 0xb6, 0xca, 0x88, 0x6e, 0x7d, 0xd5, 0x38, 0x0d,
+ 0x55, 0x86, 0x42, 0x8b, 0x40, 0xa6, 0x36, 0x58, 0x17, 0x52, 0x45, 0x8a,
+ 0xda, 0xc6, 0x02, 0x4c, 0xc6, 0x3d, 0x51, 0x24, 0xb7, 0xf5, 0x40, 0x0b,
+ 0x3d, 0x25, 0x4e, 0x4d, 0xdb, 0xbd, 0x48, 0xd2, 0x04, 0x87, 0x89, 0xca,
+ 0x0e, 0x46, 0x4f, 0x9c,
+};
+static const struct drbg_kat_pr_false kat2048_t = {
+ 7, kat2048_entropyin, kat2048_nonce, kat2048_persstr,
+ kat2048_entropyinreseed, kat2048_addinreseed, kat2048_addin0,
+ kat2048_addin1, kat2048_retbits
+};
+static const struct drbg_kat kat2048 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2048_t
+};
+
+static const unsigned char kat2049_entropyin[] = {
+ 0x00, 0x62, 0x44, 0x33, 0x85, 0xcd, 0xb8, 0xbc, 0xae, 0xd2, 0x7a, 0xc3,
+ 0xef, 0x50, 0xa9, 0x8d, 0x93, 0x46, 0xff, 0x59, 0xf5, 0xe2, 0x24, 0x2a,
+ 0x2d, 0x01, 0x65, 0xd3, 0xa7, 0x8a, 0xab, 0x58,
+};
+static const unsigned char kat2049_nonce[] = {
+ 0x44, 0x8c, 0x17, 0x4e, 0x31, 0x66, 0x38, 0xea, 0xfa, 0x0b, 0xcc, 0x35,
+ 0xfd, 0x5c, 0x59, 0x9d,
+};
+static const unsigned char kat2049_persstr[] = {0};
+static const unsigned char kat2049_entropyinreseed[] = {
+ 0xec, 0xe3, 0xf6, 0x5e, 0x9e, 0xe3, 0x87, 0x5b, 0xac, 0x85, 0x2c, 0xc6,
+ 0x8a, 0x81, 0x72, 0xbd, 0x02, 0xf3, 0xd7, 0x0c, 0xf7, 0x86, 0x07, 0xed,
+ 0xd3, 0xc0, 0x68, 0x69, 0x06, 0xdf, 0xbf, 0x7c,
+};
+static const unsigned char kat2049_addinreseed[] = {0};
+static const unsigned char kat2049_addin0[] = {0};
+static const unsigned char kat2049_addin1[] = {0};
+static const unsigned char kat2049_retbits[] = {
+ 0xd6, 0xe0, 0xcb, 0x06, 0x2c, 0xa6, 0xf8, 0xce, 0xaf, 0x32, 0x80, 0xd9,
+ 0x18, 0x06, 0x21, 0x68, 0xdf, 0x79, 0xc3, 0xa2, 0xa9, 0x28, 0x17, 0xbe,
+ 0x76, 0x57, 0x3f, 0x19, 0xb2, 0xd5, 0x15, 0x15, 0xee, 0x20, 0x70, 0xa7,
+ 0x87, 0x01, 0xac, 0x41, 0x41, 0x9c, 0x7a, 0xf1, 0xf6, 0xd3, 0xb5, 0xcc,
+ 0x3f, 0x7b, 0xc0, 0xf3, 0xc0, 0xcb, 0xe3, 0x7c, 0x9c, 0x68, 0x25, 0x8a,
+ 0xbf, 0x2b, 0x2b, 0x2c,
+};
+static const struct drbg_kat_pr_false kat2049_t = {
+ 8, kat2049_entropyin, kat2049_nonce, kat2049_persstr,
+ kat2049_entropyinreseed, kat2049_addinreseed, kat2049_addin0,
+ kat2049_addin1, kat2049_retbits
+};
+static const struct drbg_kat kat2049 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2049_t
+};
+
+static const unsigned char kat2050_entropyin[] = {
+ 0xf9, 0xa0, 0x99, 0x20, 0x37, 0x17, 0x0c, 0xb0, 0xfc, 0xa1, 0x69, 0x74,
+ 0x2b, 0x0c, 0x7d, 0xe2, 0xee, 0x80, 0x7b, 0x13, 0x70, 0x1b, 0x29, 0xd4,
+ 0xe4, 0x9d, 0xa0, 0x4a, 0x00, 0xf2, 0x04, 0xbe,
+};
+static const unsigned char kat2050_nonce[] = {
+ 0x97, 0x86, 0x9e, 0xd7, 0x96, 0xb0, 0x3c, 0xf4, 0xae, 0xf0, 0x00, 0xff,
+ 0x75, 0x0a, 0x17, 0xaa,
+};
+static const unsigned char kat2050_persstr[] = {0};
+static const unsigned char kat2050_entropyinreseed[] = {
+ 0x3a, 0x22, 0x1b, 0x7c, 0xda, 0x67, 0xd6, 0x4a, 0xfc, 0xdb, 0xb1, 0x63,
+ 0xf2, 0x0d, 0xb4, 0x58, 0x4a, 0x39, 0xa0, 0xda, 0x8a, 0x70, 0x75, 0x6f,
+ 0xb2, 0x49, 0xfd, 0x16, 0xfe, 0x96, 0x0a, 0xee,
+};
+static const unsigned char kat2050_addinreseed[] = {0};
+static const unsigned char kat2050_addin0[] = {0};
+static const unsigned char kat2050_addin1[] = {0};
+static const unsigned char kat2050_retbits[] = {
+ 0x92, 0x3b, 0x15, 0xe4, 0xf6, 0x3d, 0x08, 0x4c, 0x59, 0x93, 0xca, 0x72,
+ 0x02, 0xf0, 0x75, 0x4d, 0xa8, 0x29, 0xa0, 0xea, 0x42, 0x63, 0x77, 0x19,
+ 0x7a, 0x4c, 0xbd, 0xff, 0xf4, 0x9e, 0xff, 0x86, 0x51, 0x5e, 0xbb, 0xa8,
+ 0x39, 0xdc, 0x3f, 0xa7, 0xa7, 0x2b, 0xe7, 0x9f, 0xdf, 0xe1, 0x82, 0xc7,
+ 0xc0, 0x8a, 0xa8, 0x3f, 0xc0, 0x26, 0xf8, 0x8e, 0x20, 0x6c, 0x7b, 0x19,
+ 0x4d, 0x2f, 0x3e, 0xc5,
+};
+static const struct drbg_kat_pr_false kat2050_t = {
+ 9, kat2050_entropyin, kat2050_nonce, kat2050_persstr,
+ kat2050_entropyinreseed, kat2050_addinreseed, kat2050_addin0,
+ kat2050_addin1, kat2050_retbits
+};
+static const struct drbg_kat kat2050 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2050_t
+};
+
+static const unsigned char kat2051_entropyin[] = {
+ 0x2c, 0x9d, 0x39, 0x34, 0xfd, 0x01, 0x41, 0x88, 0x57, 0xc6, 0x9a, 0xa5,
+ 0xe6, 0x50, 0xe6, 0x6c, 0x27, 0x78, 0xc8, 0xe3, 0xc0, 0xd6, 0x18, 0x01,
+ 0x46, 0x52, 0x85, 0x07, 0x2a, 0x6c, 0x96, 0x28,
+};
+static const unsigned char kat2051_nonce[] = {
+ 0xc5, 0xb5, 0x06, 0x5f, 0x97, 0x97, 0x1e, 0x1f, 0x8d, 0x8f, 0x90, 0x70,
+ 0xc6, 0xc1, 0x8c, 0xbf,
+};
+static const unsigned char kat2051_persstr[] = {0};
+static const unsigned char kat2051_entropyinreseed[] = {
+ 0x85, 0x50, 0xde, 0xa0, 0x8a, 0x70, 0x96, 0x5d, 0xdb, 0xac, 0x46, 0xd1,
+ 0x2f, 0x34, 0x45, 0xd1, 0xfb, 0xf3, 0xfc, 0xce, 0x23, 0x3f, 0x54, 0x0b,
+ 0x23, 0x49, 0x4b, 0x24, 0xb8, 0x78, 0xad, 0x03,
+};
+static const unsigned char kat2051_addinreseed[] = {0};
+static const unsigned char kat2051_addin0[] = {0};
+static const unsigned char kat2051_addin1[] = {0};
+static const unsigned char kat2051_retbits[] = {
+ 0xda, 0x8c, 0x3b, 0x43, 0xdc, 0xd7, 0xd3, 0x93, 0xb6, 0x9e, 0x4d, 0x02,
+ 0x3e, 0xf0, 0xee, 0x57, 0xa4, 0x97, 0x52, 0xcb, 0x16, 0xef, 0x4f, 0xaf,
+ 0x84, 0x48, 0xac, 0x67, 0x4a, 0xac, 0x9c, 0xc3, 0xc4, 0x38, 0xb9, 0x8a,
+ 0x8a, 0x6a, 0xdd, 0x54, 0xf5, 0x09, 0xbd, 0x76, 0x3e, 0x47, 0xd7, 0xa2,
+ 0xeb, 0x52, 0x54, 0x00, 0x9f, 0x69, 0x52, 0xd3, 0x8e, 0x2b, 0xb6, 0xe0,
+ 0x5d, 0xc5, 0xa9, 0x72,
+};
+static const struct drbg_kat_pr_false kat2051_t = {
+ 10, kat2051_entropyin, kat2051_nonce, kat2051_persstr,
+ kat2051_entropyinreseed, kat2051_addinreseed, kat2051_addin0,
+ kat2051_addin1, kat2051_retbits
+};
+static const struct drbg_kat kat2051 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2051_t
+};
+
+static const unsigned char kat2052_entropyin[] = {
+ 0xe6, 0xa5, 0x84, 0x3f, 0x49, 0xe0, 0xa8, 0x37, 0xbd, 0xf2, 0x16, 0xe0,
+ 0x64, 0x4c, 0x89, 0x02, 0xef, 0xfd, 0x8c, 0x69, 0x22, 0xd3, 0x0e, 0xba,
+ 0x8d, 0xa3, 0xfd, 0x45, 0x37, 0x57, 0x8e, 0x8c,
+};
+static const unsigned char kat2052_nonce[] = {
+ 0xd8, 0x7b, 0x4c, 0xe9, 0x48, 0x9a, 0xa9, 0xb6, 0xd1, 0x83, 0x7d, 0x9c,
+ 0x72, 0xae, 0x98, 0x69,
+};
+static const unsigned char kat2052_persstr[] = {0};
+static const unsigned char kat2052_entropyinreseed[] = {
+ 0xa9, 0x0e, 0x89, 0xfd, 0x52, 0xd9, 0x74, 0xd8, 0x6c, 0x39, 0xe8, 0xd5,
+ 0x04, 0xa6, 0x1a, 0x17, 0xeb, 0x08, 0xd3, 0xd8, 0x9d, 0x97, 0xbc, 0x4f,
+ 0x18, 0xde, 0x4a, 0xe2, 0x87, 0x95, 0x75, 0x7f,
+};
+static const unsigned char kat2052_addinreseed[] = {0};
+static const unsigned char kat2052_addin0[] = {0};
+static const unsigned char kat2052_addin1[] = {0};
+static const unsigned char kat2052_retbits[] = {
+ 0x95, 0x19, 0x15, 0x4b, 0x87, 0xb2, 0xc9, 0xac, 0x7b, 0xe1, 0xe1, 0xea,
+ 0x12, 0xd5, 0x52, 0x5d, 0x8e, 0x00, 0xe2, 0x5b, 0x05, 0x28, 0xbf, 0xa0,
+ 0x85, 0x2e, 0x45, 0xe8, 0x90, 0x19, 0x7d, 0xcf, 0x3a, 0xba, 0x65, 0xe2,
+ 0x81, 0x2a, 0x42, 0xe3, 0xe9, 0x25, 0xe2, 0xd8, 0x75, 0x0c, 0xe5, 0x96,
+ 0x54, 0xc0, 0x43, 0xcd, 0xd3, 0xa6, 0xc9, 0x2d, 0x09, 0x14, 0xd0, 0x30,
+ 0xce, 0x87, 0xa4, 0x39,
+};
+static const struct drbg_kat_pr_false kat2052_t = {
+ 11, kat2052_entropyin, kat2052_nonce, kat2052_persstr,
+ kat2052_entropyinreseed, kat2052_addinreseed, kat2052_addin0,
+ kat2052_addin1, kat2052_retbits
+};
+static const struct drbg_kat kat2052 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2052_t
+};
+
+static const unsigned char kat2053_entropyin[] = {
+ 0xaa, 0xd6, 0xe7, 0x13, 0x43, 0x3a, 0x4c, 0xce, 0x72, 0x95, 0x8b, 0x1c,
+ 0x69, 0xe2, 0x2e, 0x67, 0xeb, 0xf0, 0xde, 0xe5, 0x02, 0xab, 0xb5, 0xce,
+ 0x6b, 0x2a, 0x5a, 0xb3, 0x5c, 0x0c, 0xef, 0x2c,
+};
+static const unsigned char kat2053_nonce[] = {
+ 0x63, 0x01, 0xb4, 0x1a, 0x2c, 0x28, 0xb3, 0x0c, 0xd3, 0x57, 0xf0, 0x89,
+ 0x00, 0xd6, 0xca, 0x75,
+};
+static const unsigned char kat2053_persstr[] = {0};
+static const unsigned char kat2053_entropyinreseed[] = {
+ 0xa9, 0xdd, 0xda, 0xa0, 0x88, 0x28, 0x92, 0x41, 0xf6, 0x5f, 0xa8, 0x0a,
+ 0xc6, 0x11, 0x59, 0x79, 0x60, 0x27, 0x98, 0x56, 0x89, 0x56, 0xf1, 0xbb,
+ 0x09, 0x34, 0x0d, 0x78, 0x78, 0x6c, 0xe3, 0xe8,
+};
+static const unsigned char kat2053_addinreseed[] = {0};
+static const unsigned char kat2053_addin0[] = {0};
+static const unsigned char kat2053_addin1[] = {0};
+static const unsigned char kat2053_retbits[] = {
+ 0xe8, 0xd4, 0x9d, 0xba, 0xd6, 0xe0, 0x89, 0xad, 0x08, 0x44, 0x1a, 0x10,
+ 0x5a, 0xd8, 0x90, 0x16, 0xfb, 0x03, 0x61, 0xad, 0x1b, 0x6d, 0xfb, 0x83,
+ 0x5b, 0x22, 0x83, 0x6e, 0x51, 0x31, 0xe8, 0xa2, 0xc4, 0xbb, 0x2c, 0xee,
+ 0x2a, 0x45, 0xe8, 0x18, 0x17, 0x72, 0x19, 0x4c, 0x29, 0xa8, 0x2a, 0x89,
+ 0x05, 0x4d, 0xf7, 0x0d, 0x97, 0x01, 0xd2, 0x77, 0xbe, 0xaf, 0xc8, 0x55,
+ 0x3c, 0x21, 0x02, 0x58,
+};
+static const struct drbg_kat_pr_false kat2053_t = {
+ 12, kat2053_entropyin, kat2053_nonce, kat2053_persstr,
+ kat2053_entropyinreseed, kat2053_addinreseed, kat2053_addin0,
+ kat2053_addin1, kat2053_retbits
+};
+static const struct drbg_kat kat2053 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2053_t
+};
+
+static const unsigned char kat2054_entropyin[] = {
+ 0x74, 0x9f, 0xad, 0x3e, 0xdf, 0x12, 0x0a, 0x72, 0x68, 0x1e, 0x67, 0x8b,
+ 0x5d, 0x68, 0x36, 0xa7, 0x3e, 0xd7, 0x36, 0x12, 0xad, 0x1b, 0x37, 0x57,
+ 0xbb, 0x00, 0x54, 0xf7, 0x61, 0xf2, 0x11, 0xe9,
+};
+static const unsigned char kat2054_nonce[] = {
+ 0xcc, 0x84, 0xac, 0xb7, 0xc6, 0x87, 0x63, 0x6c, 0x1e, 0xb7, 0x70, 0x1e,
+ 0x6d, 0x45, 0x69, 0x1c,
+};
+static const unsigned char kat2054_persstr[] = {0};
+static const unsigned char kat2054_entropyinreseed[] = {
+ 0x46, 0x8e, 0xce, 0x07, 0x20, 0x44, 0x91, 0x93, 0xfd, 0xbe, 0xe2, 0x3d,
+ 0xc5, 0xb2, 0x46, 0x32, 0x77, 0x0c, 0x44, 0x48, 0x5b, 0x2b, 0xc1, 0x9a,
+ 0x2d, 0xc4, 0xe2, 0xed, 0x3a, 0x45, 0xc9, 0x35,
+};
+static const unsigned char kat2054_addinreseed[] = {0};
+static const unsigned char kat2054_addin0[] = {0};
+static const unsigned char kat2054_addin1[] = {0};
+static const unsigned char kat2054_retbits[] = {
+ 0xd5, 0x0e, 0x34, 0x7e, 0x74, 0x59, 0x8e, 0xe3, 0xb2, 0x79, 0xeb, 0x7f,
+ 0x6b, 0xe7, 0x83, 0x49, 0x46, 0xe5, 0x44, 0x96, 0xce, 0x0c, 0x09, 0x1a,
+ 0xf1, 0x50, 0x1a, 0x30, 0xc6, 0x07, 0x3f, 0xfd, 0xfd, 0x42, 0xc5, 0x5f,
+ 0x20, 0x94, 0xc8, 0x16, 0x07, 0x1a, 0xf6, 0x63, 0xda, 0xf3, 0x8c, 0xf4,
+ 0x51, 0x5c, 0x4b, 0xb9, 0xa0, 0xd1, 0x5a, 0x0f, 0x95, 0x77, 0x09, 0xad,
+ 0x84, 0x08, 0x61, 0x69,
+};
+static const struct drbg_kat_pr_false kat2054_t = {
+ 13, kat2054_entropyin, kat2054_nonce, kat2054_persstr,
+ kat2054_entropyinreseed, kat2054_addinreseed, kat2054_addin0,
+ kat2054_addin1, kat2054_retbits
+};
+static const struct drbg_kat kat2054 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2054_t
+};
+
+static const unsigned char kat2055_entropyin[] = {
+ 0xae, 0x8d, 0xa9, 0x6f, 0x3d, 0x66, 0x24, 0x3a, 0x89, 0xff, 0x45, 0x46,
+ 0x76, 0xd9, 0xbd, 0xa5, 0xa3, 0x9d, 0xad, 0xc7, 0x23, 0xb1, 0x19, 0xb4,
+ 0x8a, 0x03, 0xb7, 0xcd, 0x9d, 0xa5, 0xb0, 0x2e,
+};
+static const unsigned char kat2055_nonce[] = {
+ 0xbc, 0xd1, 0xd6, 0x43, 0x68, 0x0b, 0x50, 0xf1, 0x92, 0x05, 0x13, 0xbb,
+ 0xaf, 0xd3, 0x8b, 0x01,
+};
+static const unsigned char kat2055_persstr[] = {0};
+static const unsigned char kat2055_entropyinreseed[] = {
+ 0xd2, 0x96, 0xa0, 0xab, 0x1d, 0xf8, 0x8a, 0x37, 0x54, 0x2a, 0x51, 0x21,
+ 0xa4, 0x74, 0x09, 0xd5, 0xe2, 0x0c, 0x48, 0xf4, 0x8e, 0x3a, 0xc4, 0x08,
+ 0xd8, 0xa4, 0x92, 0xf7, 0xcc, 0x21, 0xf2, 0x82,
+};
+static const unsigned char kat2055_addinreseed[] = {0};
+static const unsigned char kat2055_addin0[] = {0};
+static const unsigned char kat2055_addin1[] = {0};
+static const unsigned char kat2055_retbits[] = {
+ 0x5f, 0xc1, 0xdb, 0xe6, 0x7e, 0x39, 0x6a, 0xed, 0x1d, 0x04, 0x1e, 0xed,
+ 0x15, 0x73, 0x2a, 0x80, 0xcb, 0x3f, 0x50, 0x82, 0x9b, 0xdc, 0x54, 0x9c,
+ 0x79, 0x59, 0xf2, 0x6e, 0xd6, 0x6a, 0xd4, 0x07, 0xfa, 0x93, 0x98, 0xa5,
+ 0x8c, 0x7b, 0xf3, 0x25, 0x71, 0x04, 0xe1, 0x69, 0xae, 0x6f, 0xb5, 0xdc,
+ 0x18, 0xf0, 0xa1, 0x85, 0xa8, 0xba, 0xa7, 0x44, 0xda, 0xc4, 0xa1, 0x14,
+ 0xe1, 0x6f, 0x11, 0x1a,
+};
+static const struct drbg_kat_pr_false kat2055_t = {
+ 14, kat2055_entropyin, kat2055_nonce, kat2055_persstr,
+ kat2055_entropyinreseed, kat2055_addinreseed, kat2055_addin0,
+ kat2055_addin1, kat2055_retbits
+};
+static const struct drbg_kat kat2055 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2055_t
+};
+
+static const unsigned char kat2056_entropyin[] = {
+ 0x9f, 0x07, 0x35, 0x80, 0x36, 0x8a, 0xb5, 0xed, 0xea, 0x6d, 0x6d, 0x66,
+ 0x7b, 0xfc, 0xf3, 0x6a, 0x01, 0x05, 0x98, 0x2d, 0x53, 0xc7, 0xb7, 0xb0,
+ 0x55, 0x75, 0x96, 0x4b, 0x9f, 0x32, 0xfd, 0xd6,
+};
+static const unsigned char kat2056_nonce[] = {
+ 0x4a, 0x08, 0xd6, 0xe7, 0xb5, 0x3d, 0x78, 0x29, 0x26, 0x6f, 0xd8, 0x49,
+ 0xaa, 0x2d, 0x57, 0x6e,
+};
+static const unsigned char kat2056_persstr[] = {0};
+static const unsigned char kat2056_entropyinreseed[] = {
+ 0x09, 0xc1, 0x18, 0x34, 0xd1, 0xa2, 0x73, 0xd5, 0xc5, 0xd1, 0x2a, 0xc7,
+ 0x1c, 0x11, 0xff, 0x0d, 0xae, 0xd3, 0xb5, 0x20, 0xd6, 0x2b, 0x80, 0x41,
+ 0xcd, 0x60, 0x8b, 0xa7, 0x85, 0x3a, 0xc1, 0xa3,
+};
+static const unsigned char kat2056_addinreseed[] = {
+ 0xe2, 0x44, 0x26, 0xc1, 0x59, 0xbd, 0xe6, 0xe1, 0xf0, 0xc1, 0xed, 0x20,
+ 0xaf, 0x18, 0x9f, 0x15, 0x52, 0x60, 0xa8, 0xf2, 0x0a, 0x02, 0xda, 0x69,
+ 0x3d, 0xf3, 0x3a, 0xda, 0x4a, 0xba, 0x5c, 0x32,
+};
+static const unsigned char kat2056_addin0[] = {
+ 0x90, 0x55, 0xb0, 0x15, 0xae, 0xed, 0x80, 0xa3, 0xed, 0xd5, 0x22, 0x6c,
+ 0x64, 0x33, 0x1f, 0xd0, 0xa6, 0x5f, 0x82, 0xe7, 0x81, 0xde, 0xdc, 0x03,
+ 0x45, 0x3f, 0x5d, 0xcb, 0xb1, 0xa2, 0x70, 0x32,
+};
+static const unsigned char kat2056_addin1[] = {
+ 0xb6, 0x34, 0x35, 0x3f, 0x5b, 0x71, 0x3e, 0x1c, 0xe0, 0x77, 0x8a, 0x6a,
+ 0x19, 0x32, 0x5a, 0x1a, 0x1d, 0xeb, 0x02, 0xbc, 0xf1, 0xcc, 0xf1, 0xde,
+ 0x5c, 0x2c, 0x2c, 0xb6, 0xd4, 0x69, 0xe4, 0x2f,
+};
+static const unsigned char kat2056_retbits[] = {
+ 0x43, 0xe7, 0xe6, 0x2f, 0xfa, 0x98, 0xf4, 0x36, 0xef, 0xa3, 0x4b, 0x1f,
+ 0xe0, 0xe4, 0xe6, 0x33, 0xbd, 0xfe, 0x10, 0xfd, 0x20, 0xa2, 0xab, 0x1c,
+ 0x6f, 0x7d, 0x8f, 0x5c, 0xa5, 0x51, 0xdc, 0xd1, 0x4a, 0x8b, 0x96, 0x96,
+ 0xe5, 0x49, 0xb4, 0xe6, 0xfe, 0xe4, 0xc6, 0xd6, 0x9a, 0x89, 0x0c, 0x6a,
+ 0xa4, 0x24, 0x68, 0xda, 0xd9, 0xc5, 0x66, 0xaa, 0xaf, 0x16, 0x4a, 0x9c,
+ 0x81, 0x98, 0x3f, 0x11,
+};
+static const struct drbg_kat_pr_false kat2056_t = {
+ 0, kat2056_entropyin, kat2056_nonce, kat2056_persstr,
+ kat2056_entropyinreseed, kat2056_addinreseed, kat2056_addin0,
+ kat2056_addin1, kat2056_retbits
+};
+static const struct drbg_kat kat2056 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2056_t
+};
+
+static const unsigned char kat2057_entropyin[] = {
+ 0x74, 0x8b, 0x9b, 0xd2, 0x2e, 0x6e, 0x7c, 0x58, 0xb3, 0xbc, 0x01, 0x8f,
+ 0xa2, 0xae, 0xe9, 0xee, 0x34, 0x45, 0xaa, 0x05, 0x4b, 0x2a, 0x50, 0x9d,
+ 0xca, 0xed, 0xe5, 0x13, 0x9b, 0x3f, 0xb8, 0xd6,
+};
+static const unsigned char kat2057_nonce[] = {
+ 0xe2, 0x04, 0xff, 0xc9, 0xbc, 0x51, 0x4c, 0x9c, 0x55, 0x66, 0x08, 0x61,
+ 0x17, 0x59, 0x0e, 0x4c,
+};
+static const unsigned char kat2057_persstr[] = {0};
+static const unsigned char kat2057_entropyinreseed[] = {
+ 0x05, 0x58, 0x5a, 0x0c, 0x8e, 0xb3, 0xc7, 0x06, 0x1d, 0x24, 0xe0, 0x9a,
+ 0xfc, 0x84, 0x40, 0xce, 0xd5, 0xfd, 0x6e, 0x74, 0x8a, 0xff, 0x0b, 0x5e,
+ 0x38, 0xd7, 0xd5, 0xeb, 0x74, 0xf0, 0xdc, 0x6a,
+};
+static const unsigned char kat2057_addinreseed[] = {
+ 0x83, 0x52, 0xd0, 0xbb, 0xcb, 0xb0, 0x26, 0x27, 0xc7, 0x11, 0x5e, 0xc7,
+ 0x88, 0x9e, 0x34, 0x2f, 0x6c, 0x6d, 0xd4, 0x3a, 0xa5, 0x65, 0x09, 0xc6,
+ 0x33, 0x7b, 0x2d, 0x88, 0x2d, 0xf6, 0xab, 0xc4,
+};
+static const unsigned char kat2057_addin0[] = {
+ 0xd8, 0xa9, 0x8a, 0x4d, 0x9d, 0xf5, 0xa7, 0x9d, 0x17, 0x96, 0x8d, 0xbe,
+ 0x37, 0xea, 0xc8, 0x97, 0x29, 0xd4, 0x92, 0xa4, 0x93, 0x74, 0xf7, 0xea,
+ 0xf6, 0xe0, 0x3f, 0x53, 0xce, 0xae, 0xc0, 0xb7,
+};
+static const unsigned char kat2057_addin1[] = {
+ 0x52, 0x69, 0xe1, 0x18, 0x7f, 0xf5, 0x82, 0xa5, 0xe3, 0xf6, 0x41, 0x7d,
+ 0x9e, 0x1a, 0xbd, 0x68, 0x9f, 0xb2, 0xa9, 0xd8, 0x28, 0xec, 0x30, 0x58,
+ 0xd8, 0xdc, 0x1c, 0x44, 0x4c, 0xfd, 0xf2, 0x24,
+};
+static const unsigned char kat2057_retbits[] = {
+ 0xe4, 0xa1, 0xec, 0x1f, 0xa5, 0x73, 0x33, 0x7b, 0xca, 0x64, 0x9b, 0xbf,
+ 0xcd, 0xe2, 0xeb, 0x52, 0xe0, 0xbd, 0x61, 0x70, 0xc5, 0xb1, 0x29, 0x68,
+ 0xe3, 0x04, 0x60, 0x74, 0xaa, 0xd8, 0xa5, 0xe3, 0x3d, 0x12, 0x04, 0x68,
+ 0xb8, 0x6a, 0x07, 0x64, 0xa1, 0x03, 0xd8, 0x48, 0xd5, 0xa5, 0xad, 0xf6,
+ 0x30, 0x31, 0x5c, 0xc9, 0x14, 0x1d, 0xdc, 0x07, 0x1e, 0xde, 0x86, 0x96,
+ 0xc4, 0xae, 0x0c, 0x9b,
+};
+static const struct drbg_kat_pr_false kat2057_t = {
+ 1, kat2057_entropyin, kat2057_nonce, kat2057_persstr,
+ kat2057_entropyinreseed, kat2057_addinreseed, kat2057_addin0,
+ kat2057_addin1, kat2057_retbits
+};
+static const struct drbg_kat kat2057 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2057_t
+};
+
+static const unsigned char kat2058_entropyin[] = {
+ 0x95, 0x0a, 0xf3, 0xe5, 0xe5, 0x39, 0x82, 0x02, 0x7c, 0x70, 0xbe, 0xa5,
+ 0x53, 0x40, 0x02, 0x6b, 0x14, 0xde, 0xb0, 0x46, 0xb7, 0xb5, 0x62, 0xfc,
+ 0x2a, 0x70, 0x4e, 0x87, 0x44, 0x88, 0x58, 0x44,
+};
+static const unsigned char kat2058_nonce[] = {
+ 0xe9, 0xe1, 0xe5, 0xcf, 0x21, 0xca, 0x35, 0xb5, 0xbd, 0xf0, 0x9d, 0x52,
+ 0xe8, 0xa2, 0x0a, 0x67,
+};
+static const unsigned char kat2058_persstr[] = {0};
+static const unsigned char kat2058_entropyinreseed[] = {
+ 0x4f, 0xe1, 0x3c, 0x82, 0xf3, 0xfb, 0x4e, 0x9f, 0xe7, 0x65, 0xc2, 0xaf,
+ 0xc7, 0x7d, 0xc7, 0x60, 0x12, 0xe1, 0x51, 0x4f, 0x90, 0xc8, 0x2e, 0x83,
+ 0xd4, 0x8a, 0xc0, 0xa9, 0x3b, 0xbc, 0xac, 0xdf,
+};
+static const unsigned char kat2058_addinreseed[] = {
+ 0x86, 0xe8, 0x2b, 0x15, 0x04, 0x96, 0xca, 0x2f, 0x7d, 0x10, 0x26, 0x6e,
+ 0x93, 0xc5, 0x34, 0x4c, 0x7b, 0xc2, 0x7e, 0x3d, 0x94, 0xa6, 0xe2, 0x30,
+ 0xdb, 0xa8, 0x04, 0x40, 0x05, 0x44, 0x5a, 0x59,
+};
+static const unsigned char kat2058_addin0[] = {
+ 0x2a, 0x48, 0xd7, 0xa7, 0xb6, 0x51, 0x53, 0x52, 0x46, 0x81, 0x96, 0xa8,
+ 0x8c, 0x4b, 0x01, 0x5c, 0x57, 0x54, 0x4c, 0xb8, 0x33, 0x10, 0xbd, 0xec,
+ 0xf1, 0xa8, 0xbe, 0x5b, 0x53, 0xa4, 0x87, 0x5e,
+};
+static const unsigned char kat2058_addin1[] = {
+ 0xe2, 0xf2, 0x0c, 0xf7, 0x0c, 0x84, 0x96, 0x59, 0xb1, 0x9f, 0x03, 0x4b,
+ 0x46, 0x23, 0x96, 0x35, 0xf7, 0x6c, 0x2d, 0x0c, 0x92, 0x9d, 0x2d, 0xcf,
+ 0xaa, 0x1e, 0x31, 0xd9, 0x45, 0xf0, 0x2b, 0xaa,
+};
+static const unsigned char kat2058_retbits[] = {
+ 0xf1, 0x2a, 0xa1, 0x75, 0x6b, 0xdd, 0x09, 0x0b, 0x64, 0xae, 0xbf, 0x99,
+ 0xf8, 0x62, 0x84, 0x40, 0xdc, 0xab, 0x15, 0x91, 0xd5, 0x1c, 0xa1, 0x0f,
+ 0x71, 0xac, 0xf4, 0xa6, 0x07, 0x9e, 0xeb, 0xe3, 0xec, 0x50, 0x05, 0x26,
+ 0xbe, 0x2d, 0xbf, 0xb0, 0xfb, 0xb0, 0xd2, 0x5f, 0x61, 0xd1, 0x5f, 0xcc,
+ 0xcc, 0xba, 0xcd, 0x14, 0x35, 0x61, 0x91, 0x4f, 0xb9, 0x21, 0xd4, 0x34,
+ 0xda, 0xaa, 0x02, 0x3f,
+};
+static const struct drbg_kat_pr_false kat2058_t = {
+ 2, kat2058_entropyin, kat2058_nonce, kat2058_persstr,
+ kat2058_entropyinreseed, kat2058_addinreseed, kat2058_addin0,
+ kat2058_addin1, kat2058_retbits
+};
+static const struct drbg_kat kat2058 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2058_t
+};
+
+static const unsigned char kat2059_entropyin[] = {
+ 0x84, 0x2b, 0x5d, 0xcc, 0x51, 0x9c, 0x45, 0xe7, 0x80, 0x19, 0xc0, 0xc8,
+ 0xd0, 0xff, 0x9f, 0x1f, 0x89, 0xe1, 0x3b, 0x10, 0x33, 0x95, 0xc4, 0xdb,
+ 0x67, 0xe6, 0x56, 0xc7, 0x98, 0x00, 0x96, 0x55,
+};
+static const unsigned char kat2059_nonce[] = {
+ 0x59, 0x87, 0x6a, 0xf4, 0x58, 0x61, 0x4e, 0x4c, 0x71, 0xe7, 0x2e, 0x16,
+ 0x32, 0xc2, 0xbf, 0x2e,
+};
+static const unsigned char kat2059_persstr[] = {0};
+static const unsigned char kat2059_entropyinreseed[] = {
+ 0x5e, 0xa5, 0xba, 0xfb, 0x70, 0x5f, 0xfb, 0x0a, 0x05, 0x12, 0x38, 0xf7,
+ 0x80, 0xab, 0x02, 0x77, 0x93, 0xb6, 0x4a, 0x2d, 0x9d, 0xb4, 0xef, 0x15,
+ 0xc6, 0x50, 0x30, 0x97, 0xf8, 0xb3, 0x17, 0xa8,
+};
+static const unsigned char kat2059_addinreseed[] = {
+ 0x1f, 0x6f, 0xce, 0x9f, 0x01, 0x00, 0x5b, 0xfc, 0x9a, 0xc5, 0x5c, 0x28,
+ 0x20, 0xc3, 0x26, 0xf5, 0xba, 0x8a, 0x10, 0x27, 0xaa, 0x49, 0x2a, 0x11,
+ 0x30, 0x6d, 0x35, 0x67, 0x1b, 0xd1, 0x5a, 0x96,
+};
+static const unsigned char kat2059_addin0[] = {
+ 0xfd, 0xba, 0xbb, 0x5e, 0xe1, 0x36, 0x48, 0x82, 0x71, 0xfb, 0x86, 0x04,
+ 0x50, 0x6c, 0x59, 0xb2, 0xb1, 0xb1, 0xb0, 0xa5, 0xcb, 0xa4, 0x24, 0x1f,
+ 0xe9, 0xc3, 0x3d, 0x59, 0xff, 0xbe, 0xe7, 0xc6,
+};
+static const unsigned char kat2059_addin1[] = {
+ 0xbc, 0x6c, 0x2d, 0xca, 0x4c, 0xeb, 0x01, 0x45, 0xd9, 0x68, 0xc5, 0x54,
+ 0xfc, 0x9d, 0xe7, 0xf0, 0x88, 0x2c, 0x92, 0x72, 0xbe, 0x9b, 0xbe, 0x76,
+ 0xcb, 0xed, 0xd3, 0xd7, 0x22, 0x92, 0xdb, 0x96,
+};
+static const unsigned char kat2059_retbits[] = {
+ 0x54, 0x0d, 0xa0, 0xc1, 0xd1, 0xda, 0x6d, 0x0e, 0x7c, 0x3d, 0x1e, 0x5c,
+ 0x64, 0x97, 0x43, 0x92, 0x3e, 0xe9, 0x24, 0xa2, 0xa8, 0x54, 0xc2, 0x2c,
+ 0x03, 0x4f, 0xf5, 0x3b, 0x6c, 0x86, 0x66, 0x86, 0x3f, 0xc6, 0x39, 0xeb,
+ 0xe9, 0xf4, 0xde, 0x4c, 0x48, 0x61, 0x85, 0x91, 0xbc, 0x46, 0xce, 0x69,
+ 0x3a, 0xae, 0xcb, 0x6e, 0x9c, 0x32, 0xe8, 0x63, 0x5b, 0x25, 0x83, 0x28,
+ 0x5b, 0xd7, 0x91, 0x85,
+};
+static const struct drbg_kat_pr_false kat2059_t = {
+ 3, kat2059_entropyin, kat2059_nonce, kat2059_persstr,
+ kat2059_entropyinreseed, kat2059_addinreseed, kat2059_addin0,
+ kat2059_addin1, kat2059_retbits
+};
+static const struct drbg_kat kat2059 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2059_t
+};
+
+static const unsigned char kat2060_entropyin[] = {
+ 0x96, 0xcd, 0x1a, 0xc9, 0x3f, 0xbd, 0xe2, 0xce, 0x84, 0x33, 0x99, 0x2d,
+ 0xf6, 0x41, 0x08, 0x13, 0x89, 0x7f, 0xdd, 0x93, 0xa2, 0x6d, 0xb8, 0xe6,
+ 0x95, 0x53, 0x60, 0x04, 0x5c, 0xd5, 0x54, 0x70,
+};
+static const unsigned char kat2060_nonce[] = {
+ 0x1f, 0x25, 0x82, 0x61, 0xba, 0xa3, 0x9a, 0xa3, 0xae, 0xbd, 0x7e, 0x8b,
+ 0x16, 0x7d, 0xd6, 0xe8,
+};
+static const unsigned char kat2060_persstr[] = {0};
+static const unsigned char kat2060_entropyinreseed[] = {
+ 0xb7, 0x65, 0xd4, 0xdd, 0x23, 0xad, 0xcd, 0x9c, 0x5b, 0x92, 0xae, 0x10,
+ 0xe5, 0xf7, 0xd7, 0x2c, 0x6f, 0x28, 0x74, 0xad, 0x08, 0x05, 0xde, 0x3d,
+ 0x12, 0xd3, 0x18, 0xd0, 0x8c, 0x70, 0xb2, 0x98,
+};
+static const unsigned char kat2060_addinreseed[] = {
+ 0x7b, 0x6e, 0x37, 0x90, 0x9d, 0xfd, 0xcc, 0xe4, 0xb1, 0x53, 0x56, 0xaa,
+ 0x4b, 0x5c, 0xca, 0x64, 0x92, 0x15, 0x70, 0x5f, 0xff, 0x00, 0xa2, 0x30,
+ 0xa9, 0x4a, 0xed, 0xf1, 0x6f, 0xba, 0x85, 0x8c,
+};
+static const unsigned char kat2060_addin0[] = {
+ 0xea, 0xc7, 0x7c, 0xd7, 0xe6, 0xca, 0xbc, 0x39, 0x71, 0x09, 0xa6, 0x66,
+ 0x93, 0x28, 0xbb, 0x78, 0x89, 0x60, 0x41, 0xc8, 0x3b, 0x6c, 0xc6, 0xe3,
+ 0xf6, 0xea, 0xa6, 0xc4, 0x8b, 0x3f, 0xfb, 0xca,
+};
+static const unsigned char kat2060_addin1[] = {
+ 0x7b, 0x08, 0xa2, 0x56, 0x54, 0x0d, 0xe3, 0xed, 0xe2, 0xa6, 0x8a, 0x88,
+ 0x22, 0x99, 0xd5, 0xbf, 0x7b, 0x55, 0xdc, 0xf6, 0x6b, 0x02, 0x1a, 0x44,
+ 0x2e, 0x11, 0x0a, 0x1b, 0xc0, 0x68, 0x8a, 0xcf,
+};
+static const unsigned char kat2060_retbits[] = {
+ 0x39, 0xae, 0x15, 0xfd, 0x0e, 0x41, 0x67, 0x92, 0x25, 0x9c, 0x75, 0xe1,
+ 0x5d, 0x30, 0x5f, 0x77, 0xb0, 0x92, 0x0d, 0x99, 0x13, 0xab, 0x17, 0xd3,
+ 0x4f, 0x6b, 0x02, 0x5a, 0x78, 0xc9, 0xd1, 0x4c, 0x25, 0xf7, 0xbb, 0xcc,
+ 0x11, 0xae, 0x8f, 0x9c, 0xbd, 0xbe, 0xa4, 0x13, 0xc3, 0x32, 0xd0, 0xfa,
+ 0x53, 0xb5, 0x01, 0x6d, 0x62, 0xf5, 0x92, 0x51, 0x63, 0xd1, 0xf9, 0xf3,
+ 0xeb, 0xc3, 0x73, 0x16,
+};
+static const struct drbg_kat_pr_false kat2060_t = {
+ 4, kat2060_entropyin, kat2060_nonce, kat2060_persstr,
+ kat2060_entropyinreseed, kat2060_addinreseed, kat2060_addin0,
+ kat2060_addin1, kat2060_retbits
+};
+static const struct drbg_kat kat2060 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2060_t
+};
+
+static const unsigned char kat2061_entropyin[] = {
+ 0xbb, 0xe7, 0xca, 0xee, 0x69, 0xaf, 0xde, 0xdc, 0xa4, 0xd5, 0x65, 0xe3,
+ 0x52, 0xbf, 0x4a, 0x51, 0xf1, 0xd3, 0xa5, 0xae, 0x2a, 0x2d, 0x72, 0x1b,
+ 0x6e, 0xa4, 0x81, 0xd8, 0xc2, 0x5e, 0x11, 0x82,
+};
+static const unsigned char kat2061_nonce[] = {
+ 0xc9, 0xe5, 0xc0, 0x75, 0xb2, 0x89, 0xb5, 0x8c, 0xbc, 0x92, 0x0f, 0xeb,
+ 0x99, 0x9d, 0xa9, 0xcb,
+};
+static const unsigned char kat2061_persstr[] = {0};
+static const unsigned char kat2061_entropyinreseed[] = {
+ 0xa7, 0x51, 0xbc, 0x73, 0x73, 0xe1, 0x9c, 0xac, 0x00, 0xc7, 0x20, 0x6f,
+ 0x06, 0x5d, 0x70, 0xf6, 0xa3, 0xcf, 0x4a, 0xc2, 0xbd, 0x8f, 0x19, 0xa9,
+ 0x56, 0xed, 0x81, 0x68, 0x05, 0x40, 0x42, 0x59,
+};
+static const unsigned char kat2061_addinreseed[] = {
+ 0xdf, 0x89, 0x4e, 0x68, 0xf6, 0x1d, 0x34, 0xae, 0x10, 0xa2, 0xdc, 0xc0,
+ 0xca, 0x7a, 0xe0, 0x4b, 0x41, 0xaf, 0xd7, 0xba, 0x58, 0xaa, 0xc9, 0xb2,
+ 0xb0, 0x81, 0x21, 0x6d, 0x21, 0x41, 0x77, 0xc4,
+};
+static const unsigned char kat2061_addin0[] = {
+ 0x2c, 0x43, 0xa2, 0xe1, 0xaa, 0x47, 0x79, 0x99, 0x4b, 0x1b, 0x74, 0xb4,
+ 0x51, 0x09, 0x15, 0xda, 0xa7, 0xeb, 0x0f, 0x90, 0xbb, 0xae, 0x83, 0xb5,
+ 0xfd, 0xce, 0xb6, 0x7f, 0xac, 0x1e, 0x23, 0x76,
+};
+static const unsigned char kat2061_addin1[] = {
+ 0x6a, 0x77, 0xa6, 0x8f, 0x3d, 0x07, 0x92, 0x37, 0xbc, 0x77, 0x7c, 0xf4,
+ 0x1c, 0x38, 0xad, 0x49, 0xc7, 0xc0, 0x05, 0x3c, 0xda, 0xdd, 0x0b, 0xb1,
+ 0xaa, 0x41, 0xb5, 0xd8, 0xb8, 0x1d, 0xde, 0x48,
+};
+static const unsigned char kat2061_retbits[] = {
+ 0x34, 0xb5, 0xe2, 0x2a, 0x86, 0x24, 0x73, 0x4b, 0x7d, 0x5f, 0x6b, 0x35,
+ 0x93, 0x07, 0x99, 0xec, 0xeb, 0x7d, 0xbf, 0xc4, 0x69, 0x14, 0xf4, 0x79,
+ 0xe3, 0x4b, 0xf6, 0x4e, 0xaa, 0x15, 0x43, 0x09, 0xd8, 0x5c, 0xec, 0xa6,
+ 0x24, 0x1e, 0x17, 0xfd, 0xa0, 0x4f, 0x09, 0x70, 0x45, 0x7e, 0xcf, 0xd8,
+ 0xa9, 0xf7, 0x00, 0x30, 0x46, 0xc1, 0xbd, 0xfc, 0xe3, 0xb3, 0x11, 0xba,
+ 0x2e, 0xfa, 0x97, 0xa9,
+};
+static const struct drbg_kat_pr_false kat2061_t = {
+ 5, kat2061_entropyin, kat2061_nonce, kat2061_persstr,
+ kat2061_entropyinreseed, kat2061_addinreseed, kat2061_addin0,
+ kat2061_addin1, kat2061_retbits
+};
+static const struct drbg_kat kat2061 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2061_t
+};
+
+static const unsigned char kat2062_entropyin[] = {
+ 0xfb, 0x33, 0x7b, 0x69, 0xc9, 0xac, 0xe8, 0xde, 0xfa, 0xc7, 0xf6, 0x85,
+ 0x35, 0xcc, 0x6f, 0xee, 0x72, 0xb8, 0x0b, 0xf9, 0x1d, 0x22, 0x6a, 0x34,
+ 0x77, 0xb9, 0x0a, 0x0d, 0xa0, 0x2c, 0x3e, 0x71,
+};
+static const unsigned char kat2062_nonce[] = {
+ 0x58, 0x1d, 0x7f, 0x09, 0xc1, 0x1e, 0x7c, 0x40, 0x8a, 0x99, 0x36, 0x84,
+ 0xe5, 0x16, 0xa3, 0x07,
+};
+static const unsigned char kat2062_persstr[] = {0};
+static const unsigned char kat2062_entropyinreseed[] = {
+ 0xb0, 0xcb, 0x88, 0xe0, 0x7a, 0xc0, 0xa0, 0x0a, 0xe7, 0xaf, 0x46, 0x9c,
+ 0xb9, 0x76, 0xc1, 0x6c, 0xbc, 0x3e, 0x93, 0x11, 0xb6, 0x92, 0x7a, 0x53,
+ 0x74, 0xd4, 0x9a, 0x9a, 0xb7, 0x6e, 0xb8, 0xe3,
+};
+static const unsigned char kat2062_addinreseed[] = {
+ 0xc1, 0xef, 0xdf, 0x70, 0xb2, 0x16, 0xab, 0x0f, 0xb7, 0x81, 0x4d, 0x0c,
+ 0x92, 0x3d, 0x26, 0x69, 0x97, 0x49, 0xf6, 0x2a, 0x72, 0x0b, 0x9b, 0xbc,
+ 0xdb, 0xd1, 0x47, 0x17, 0x03, 0x64, 0x50, 0x4c,
+};
+static const unsigned char kat2062_addin0[] = {
+ 0x4f, 0x86, 0xec, 0x3b, 0x4c, 0x3b, 0x48, 0x89, 0x67, 0x17, 0x27, 0x5b,
+ 0x74, 0x6b, 0xe2, 0x0f, 0xcf, 0x59, 0x3f, 0x39, 0x79, 0xf4, 0xbe, 0x3b,
+ 0x8e, 0x16, 0xda, 0x50, 0x39, 0xcf, 0x79, 0x6e,
+};
+static const unsigned char kat2062_addin1[] = {
+ 0x86, 0x82, 0x04, 0xde, 0x4b, 0x0d, 0xce, 0x60, 0x1b, 0x59, 0xfb, 0x69,
+ 0x2b, 0x08, 0x91, 0xf4, 0x4f, 0xa0, 0x8b, 0x44, 0x09, 0x02, 0x48, 0x10,
+ 0x9f, 0x50, 0x12, 0xfd, 0x21, 0x05, 0x63, 0x64,
+};
+static const unsigned char kat2062_retbits[] = {
+ 0x7a, 0xee, 0x74, 0x7a, 0x7d, 0x70, 0xd2, 0x6e, 0x94, 0x2e, 0x56, 0x42,
+ 0x89, 0xc8, 0x40, 0x3d, 0xce, 0x2e, 0x70, 0x7d, 0xaa, 0xed, 0xf2, 0x79,
+ 0x46, 0x03, 0xc3, 0xbe, 0xf0, 0x35, 0xd0, 0xff, 0x14, 0xe8, 0xf6, 0x1d,
+ 0x12, 0x35, 0xe8, 0xf8, 0x36, 0x2d, 0x18, 0xf2, 0xc4, 0xf1, 0xe7, 0xdc,
+ 0xf5, 0x57, 0x77, 0x7d, 0x44, 0x42, 0xc5, 0xd5, 0xeb, 0x46, 0xe3, 0x97,
+ 0x56, 0xdb, 0x98, 0x6d,
+};
+static const struct drbg_kat_pr_false kat2062_t = {
+ 6, kat2062_entropyin, kat2062_nonce, kat2062_persstr,
+ kat2062_entropyinreseed, kat2062_addinreseed, kat2062_addin0,
+ kat2062_addin1, kat2062_retbits
+};
+static const struct drbg_kat kat2062 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2062_t
+};
+
+static const unsigned char kat2063_entropyin[] = {
+ 0x15, 0xb7, 0x40, 0x90, 0xb3, 0x62, 0xe9, 0xb5, 0xc8, 0xba, 0x9f, 0xb7,
+ 0xf9, 0x84, 0x1d, 0x60, 0x88, 0x51, 0xa9, 0xf6, 0xd7, 0x0c, 0xd0, 0x71,
+ 0xd3, 0x46, 0xa2, 0x7f, 0x5e, 0x1a, 0x8f, 0x95,
+};
+static const unsigned char kat2063_nonce[] = {
+ 0xca, 0x94, 0x43, 0x3a, 0x65, 0x1a, 0x87, 0x3c, 0x10, 0xc2, 0xbc, 0x46,
+ 0x26, 0x84, 0x6a, 0x29,
+};
+static const unsigned char kat2063_persstr[] = {0};
+static const unsigned char kat2063_entropyinreseed[] = {
+ 0xc8, 0x64, 0xb7, 0x86, 0xb4, 0xf7, 0xda, 0x6c, 0xe9, 0xe1, 0x15, 0x40,
+ 0x44, 0x76, 0x82, 0x10, 0xf6, 0xff, 0x3e, 0x6f, 0xb6, 0x7e, 0x9c, 0x1c,
+ 0x05, 0x99, 0x7f, 0xac, 0x3d, 0x6a, 0xed, 0x6b,
+};
+static const unsigned char kat2063_addinreseed[] = {
+ 0xed, 0x7d, 0x93, 0x34, 0x74, 0xeb, 0xcf, 0x2d, 0x24, 0x61, 0x94, 0xb8,
+ 0xd9, 0xe2, 0x81, 0xa2, 0xb6, 0x5c, 0x1d, 0x4c, 0x63, 0xa4, 0x4a, 0x6b,
+ 0x3d, 0xdf, 0x86, 0x8e, 0x05, 0x2b, 0xdb, 0x1e,
+};
+static const unsigned char kat2063_addin0[] = {
+ 0x58, 0xd8, 0x5c, 0x1f, 0x69, 0x76, 0x51, 0xd7, 0xe1, 0x8e, 0x90, 0x2f,
+ 0x71, 0x6b, 0xc3, 0xeb, 0x7c, 0xbc, 0x31, 0xb1, 0x27, 0xcd, 0x85, 0xd7,
+ 0x06, 0xd6, 0x99, 0xc4, 0xa4, 0x2a, 0x2d, 0x62,
+};
+static const unsigned char kat2063_addin1[] = {
+ 0xe9, 0x16, 0x42, 0x9e, 0xd3, 0x82, 0x2a, 0xb6, 0xc8, 0x84, 0xc2, 0xcd,
+ 0xd5, 0xd7, 0x16, 0x13, 0xeb, 0x41, 0x03, 0x7d, 0x18, 0xe3, 0xd6, 0xa8,
+ 0x93, 0x35, 0x64, 0x81, 0xa1, 0x45, 0x13, 0xf8,
+};
+static const unsigned char kat2063_retbits[] = {
+ 0xe9, 0x7f, 0x83, 0x8e, 0xef, 0x0f, 0xb6, 0xd0, 0x3c, 0xd6, 0x51, 0x0e,
+ 0x47, 0x17, 0x16, 0x92, 0xf4, 0x63, 0xa6, 0x9e, 0xd5, 0x62, 0x1f, 0x7c,
+ 0x42, 0x48, 0x39, 0x9e, 0xa7, 0x70, 0x51, 0x48, 0xea, 0x6e, 0x7c, 0x4b,
+ 0xf3, 0x45, 0x00, 0xda, 0x89, 0x50, 0x46, 0xe1, 0x71, 0xe5, 0x14, 0x94,
+ 0x1c, 0x43, 0x03, 0x0c, 0xa5, 0xdb, 0xfc, 0xc2, 0x6a, 0x3c, 0x7e, 0x5c,
+ 0x30, 0x56, 0x46, 0xa4,
+};
+static const struct drbg_kat_pr_false kat2063_t = {
+ 7, kat2063_entropyin, kat2063_nonce, kat2063_persstr,
+ kat2063_entropyinreseed, kat2063_addinreseed, kat2063_addin0,
+ kat2063_addin1, kat2063_retbits
+};
+static const struct drbg_kat kat2063 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2063_t
+};
+
+static const unsigned char kat2064_entropyin[] = {
+ 0x65, 0xe3, 0xdb, 0x8d, 0x0a, 0x6e, 0x3d, 0xc1, 0x28, 0x42, 0xf0, 0x55,
+ 0xc8, 0x0e, 0xae, 0x31, 0xf8, 0x18, 0xb1, 0xa1, 0x4d, 0x75, 0xc8, 0x71,
+ 0x1b, 0x8c, 0x18, 0x1d, 0x0d, 0x18, 0x74, 0x7b,
+};
+static const unsigned char kat2064_nonce[] = {
+ 0xb7, 0x9f, 0x9c, 0xf8, 0x55, 0xe0, 0xcb, 0x6a, 0x84, 0x1c, 0x08, 0x0b,
+ 0xae, 0x63, 0x49, 0x76,
+};
+static const unsigned char kat2064_persstr[] = {0};
+static const unsigned char kat2064_entropyinreseed[] = {
+ 0xd4, 0xcf, 0x11, 0x66, 0xb3, 0x38, 0xc6, 0x42, 0xd9, 0xac, 0x01, 0x38,
+ 0x91, 0x35, 0x20, 0x13, 0x03, 0x4f, 0xb8, 0xe7, 0x1b, 0x19, 0xf4, 0x6a,
+ 0x5e, 0x6b, 0xb8, 0xde, 0x03, 0x44, 0x77, 0xb0,
+};
+static const unsigned char kat2064_addinreseed[] = {
+ 0xc4, 0x43, 0x07, 0x38, 0x7c, 0x1f, 0xf4, 0xee, 0xa1, 0x94, 0x16, 0x9b,
+ 0x00, 0x62, 0x42, 0x10, 0x52, 0x2d, 0xfc, 0x9a, 0x15, 0x66, 0x24, 0xe8,
+ 0x22, 0x5d, 0xc4, 0x95, 0x76, 0xdf, 0xc1, 0xf1,
+};
+static const unsigned char kat2064_addin0[] = {
+ 0xe8, 0xb1, 0x0c, 0x6e, 0x30, 0xe4, 0xa2, 0xf4, 0x06, 0xd5, 0xe6, 0x5c,
+ 0x39, 0x7d, 0xf0, 0xde, 0x25, 0x19, 0x9a, 0x14, 0x8f, 0xe3, 0x16, 0x26,
+ 0x68, 0x69, 0xe9, 0xfe, 0xdc, 0x71, 0x15, 0x87,
+};
+static const unsigned char kat2064_addin1[] = {
+ 0xb6, 0x05, 0x51, 0x59, 0x67, 0x47, 0xb7, 0xf1, 0x43, 0x91, 0xac, 0xce,
+ 0x63, 0xc7, 0xf1, 0xde, 0x7a, 0xa5, 0x96, 0xf6, 0x43, 0xa3, 0x6c, 0x97,
+ 0xc8, 0x2f, 0xbd, 0x8f, 0x34, 0x3e, 0xf7, 0x1a,
+};
+static const unsigned char kat2064_retbits[] = {
+ 0x88, 0x6c, 0xc0, 0x6f, 0x88, 0x41, 0xb2, 0xec, 0xe3, 0x89, 0x42, 0x2c,
+ 0xa8, 0x8b, 0xc1, 0x56, 0xd3, 0x96, 0xa7, 0xe6, 0x2c, 0x01, 0x81, 0x80,
+ 0x84, 0x0a, 0xb0, 0x9b, 0x2c, 0x8b, 0x08, 0x4c, 0x0c, 0xd0, 0x63, 0xcc,
+ 0x27, 0x56, 0x75, 0x5c, 0x6e, 0x35, 0x0d, 0x42, 0xa7, 0xea, 0x85, 0xae,
+ 0x04, 0x7f, 0x4d, 0x86, 0x29, 0xbe, 0xcd, 0x70, 0x2d, 0x35, 0xcf, 0x2e,
+ 0xe4, 0x03, 0x9c, 0x4e,
+};
+static const struct drbg_kat_pr_false kat2064_t = {
+ 8, kat2064_entropyin, kat2064_nonce, kat2064_persstr,
+ kat2064_entropyinreseed, kat2064_addinreseed, kat2064_addin0,
+ kat2064_addin1, kat2064_retbits
+};
+static const struct drbg_kat kat2064 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2064_t
+};
+
+static const unsigned char kat2065_entropyin[] = {
+ 0xc5, 0x7b, 0x69, 0x79, 0x25, 0xa2, 0xb2, 0xca, 0x7e, 0xe1, 0x24, 0x25,
+ 0x2a, 0xd7, 0x5d, 0x45, 0x1a, 0x33, 0x31, 0xcd, 0xe2, 0x07, 0x8c, 0xc3,
+ 0x49, 0xd7, 0x3e, 0x55, 0xce, 0xc5, 0x0b, 0x86,
+};
+static const unsigned char kat2065_nonce[] = {
+ 0x5f, 0x59, 0x31, 0x58, 0x79, 0x4c, 0x51, 0x4c, 0x7d, 0x34, 0x47, 0x87,
+ 0x1c, 0x8e, 0xc9, 0xef,
+};
+static const unsigned char kat2065_persstr[] = {0};
+static const unsigned char kat2065_entropyinreseed[] = {
+ 0x71, 0x65, 0x3e, 0xbc, 0x9e, 0x18, 0xba, 0x5d, 0x3e, 0x5f, 0x0a, 0x7a,
+ 0xe5, 0xb3, 0x80, 0x2e, 0xc6, 0x96, 0x15, 0xa5, 0x0f, 0x3a, 0xe8, 0x70,
+ 0x4a, 0x8c, 0x3d, 0xac, 0xe0, 0x6d, 0x14, 0x6b,
+};
+static const unsigned char kat2065_addinreseed[] = {
+ 0x79, 0xd9, 0x32, 0x2a, 0x06, 0xe4, 0xc6, 0x64, 0x06, 0xb3, 0x76, 0x66,
+ 0xd7, 0x71, 0x4c, 0x24, 0x99, 0x7d, 0xb0, 0x07, 0x55, 0x7f, 0x49, 0x07,
+ 0xa1, 0x80, 0x9c, 0xc7, 0x88, 0x32, 0x69, 0x78,
+};
+static const unsigned char kat2065_addin0[] = {
+ 0x8f, 0x53, 0xc1, 0xc6, 0xa1, 0x1d, 0xfe, 0xe6, 0x52, 0x13, 0x2b, 0x86,
+ 0x4e, 0x47, 0x07, 0xb2, 0x23, 0x6d, 0x31, 0x5c, 0x46, 0x4f, 0xcf, 0x5e,
+ 0x84, 0x58, 0x72, 0x12, 0x66, 0xd1, 0x53, 0x68,
+};
+static const unsigned char kat2065_addin1[] = {
+ 0x84, 0xc7, 0x84, 0x63, 0x7c, 0xde, 0xf2, 0x05, 0x3a, 0x2d, 0xd5, 0xdc,
+ 0xd6, 0xa7, 0x5e, 0xd2, 0x11, 0x92, 0x09, 0xe7, 0xda, 0x45, 0x4b, 0x1d,
+ 0x90, 0x22, 0xfd, 0x7e, 0xf7, 0xd4, 0x16, 0x75,
+};
+static const unsigned char kat2065_retbits[] = {
+ 0x99, 0x0d, 0x41, 0x42, 0x1f, 0x54, 0x5a, 0x75, 0x8e, 0xe4, 0x15, 0x93,
+ 0x8a, 0x05, 0x07, 0x7f, 0x56, 0xab, 0x3e, 0x96, 0xf0, 0x3d, 0xb6, 0x2b,
+ 0x6c, 0x88, 0x5a, 0x98, 0x7b, 0x70, 0xdd, 0x2d, 0x72, 0xcc, 0xb1, 0x88,
+ 0x26, 0x33, 0xab, 0x8f, 0xba, 0xb7, 0x00, 0x21, 0x04, 0x1e, 0xa9, 0x4c,
+ 0xce, 0xd7, 0x20, 0x5b, 0x65, 0x50, 0x15, 0x6a, 0x3d, 0x73, 0x71, 0xa2,
+ 0x37, 0xe9, 0x01, 0x6f,
+};
+static const struct drbg_kat_pr_false kat2065_t = {
+ 9, kat2065_entropyin, kat2065_nonce, kat2065_persstr,
+ kat2065_entropyinreseed, kat2065_addinreseed, kat2065_addin0,
+ kat2065_addin1, kat2065_retbits
+};
+static const struct drbg_kat kat2065 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2065_t
+};
+
+static const unsigned char kat2066_entropyin[] = {
+ 0x3e, 0x47, 0x3c, 0x90, 0x9e, 0x54, 0xca, 0x0b, 0xef, 0x5d, 0xe8, 0x53,
+ 0x66, 0x4f, 0x31, 0x13, 0x82, 0xed, 0x00, 0x52, 0x26, 0x01, 0xdf, 0xea,
+ 0x2c, 0xa0, 0x3a, 0xcd, 0x10, 0x59, 0x3f, 0xa1,
+};
+static const unsigned char kat2066_nonce[] = {
+ 0x5e, 0x41, 0x5a, 0x91, 0x41, 0xda, 0xb4, 0xdf, 0x17, 0x1a, 0xda, 0xd3,
+ 0x99, 0x79, 0x52, 0xd8,
+};
+static const unsigned char kat2066_persstr[] = {0};
+static const unsigned char kat2066_entropyinreseed[] = {
+ 0x2e, 0x76, 0xa1, 0x86, 0x77, 0x1e, 0x1d, 0x70, 0x59, 0xc9, 0xd6, 0xdf,
+ 0x5a, 0xab, 0x3e, 0x30, 0x42, 0x1d, 0x34, 0xdd, 0x31, 0x8b, 0x5e, 0x1e,
+ 0xdd, 0x59, 0xc0, 0xc2, 0xf2, 0x10, 0x36, 0xce,
+};
+static const unsigned char kat2066_addinreseed[] = {
+ 0x18, 0x10, 0xe5, 0xb9, 0x63, 0xdf, 0xfb, 0x7f, 0xa7, 0x7b, 0x76, 0x1b,
+ 0x6d, 0x3c, 0xc9, 0xca, 0xfd, 0xa7, 0xb7, 0x75, 0x10, 0xe4, 0x44, 0x57,
+ 0x85, 0x26, 0x89, 0x10, 0xb9, 0x95, 0xc7, 0x88,
+};
+static const unsigned char kat2066_addin0[] = {
+ 0x0a, 0xbc, 0xce, 0x85, 0x53, 0xe1, 0x57, 0x0d, 0xa0, 0x7a, 0xd5, 0x16,
+ 0x5c, 0x95, 0xa7, 0x1e, 0xf0, 0xa9, 0xce, 0xe7, 0x46, 0x96, 0x39, 0x95,
+ 0xdc, 0x7a, 0xbb, 0x2c, 0x9b, 0x4d, 0xc5, 0x60,
+};
+static const unsigned char kat2066_addin1[] = {
+ 0xd3, 0x9b, 0x08, 0xed, 0x9b, 0x49, 0x92, 0x1c, 0x7e, 0xc7, 0x35, 0xd1,
+ 0x77, 0x23, 0xd7, 0xc8, 0x47, 0xe0, 0x61, 0xcf, 0xd8, 0xc3, 0xdb, 0x4f,
+ 0xb9, 0x14, 0xe0, 0x9b, 0xc3, 0x98, 0x92, 0x65,
+};
+static const unsigned char kat2066_retbits[] = {
+ 0x21, 0xd7, 0x7a, 0x37, 0x06, 0xdf, 0x28, 0x28, 0x92, 0x37, 0x30, 0x03,
+ 0x95, 0x4e, 0x95, 0x3c, 0xf9, 0x09, 0x1b, 0x35, 0x02, 0xb8, 0x02, 0x85,
+ 0x59, 0x91, 0x9d, 0x61, 0x5b, 0x74, 0x53, 0x39, 0x5e, 0x12, 0x03, 0xc9,
+ 0x85, 0x8c, 0x23, 0x6f, 0xf4, 0xa3, 0x9d, 0x26, 0x4d, 0xbe, 0xfa, 0xb4,
+ 0x8d, 0xc7, 0xb3, 0xe0, 0x83, 0xa1, 0xa2, 0x13, 0x4c, 0x1b, 0xf7, 0x05,
+ 0x43, 0xb8, 0x18, 0x59,
+};
+static const struct drbg_kat_pr_false kat2066_t = {
+ 10, kat2066_entropyin, kat2066_nonce, kat2066_persstr,
+ kat2066_entropyinreseed, kat2066_addinreseed, kat2066_addin0,
+ kat2066_addin1, kat2066_retbits
+};
+static const struct drbg_kat kat2066 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2066_t
+};
+
+static const unsigned char kat2067_entropyin[] = {
+ 0xd5, 0x35, 0xa0, 0x9b, 0x24, 0x05, 0xe4, 0x38, 0x8c, 0xcb, 0xd1, 0xf6,
+ 0x1a, 0x55, 0x18, 0xcf, 0xe9, 0xd0, 0xb3, 0x11, 0xf6, 0x41, 0xa1, 0xf2,
+ 0xde, 0xf7, 0x39, 0x4e, 0x7e, 0xe3, 0x89, 0x43,
+};
+static const unsigned char kat2067_nonce[] = {
+ 0x8b, 0x07, 0x98, 0x43, 0xb5, 0x3f, 0x41, 0x5f, 0x48, 0x49, 0xb6, 0x0f,
+ 0x6c, 0x4b, 0x6f, 0x5b,
+};
+static const unsigned char kat2067_persstr[] = {0};
+static const unsigned char kat2067_entropyinreseed[] = {
+ 0x40, 0xe4, 0xad, 0x89, 0x0e, 0x3a, 0xe3, 0x8b, 0x0e, 0xf0, 0xbb, 0x45,
+ 0x8a, 0xb5, 0x79, 0xd7, 0xd9, 0x89, 0x04, 0xc3, 0xf0, 0xf1, 0xf3, 0x2b,
+ 0xd2, 0x72, 0x05, 0x35, 0x5f, 0x2a, 0x0a, 0x18,
+};
+static const unsigned char kat2067_addinreseed[] = {
+ 0x46, 0xf0, 0x5c, 0x8f, 0x15, 0xbc, 0xcf, 0x47, 0xfe, 0xa0, 0x99, 0x13,
+ 0x80, 0xfc, 0x40, 0x7e, 0x36, 0x7f, 0x1b, 0x11, 0xdd, 0xdf, 0xd4, 0xb3,
+ 0xdd, 0x0e, 0xa8, 0x61, 0x44, 0x54, 0x99, 0x8a,
+};
+static const unsigned char kat2067_addin0[] = {
+ 0x97, 0x88, 0x1b, 0xf6, 0x3c, 0xf3, 0xe9, 0xcb, 0xef, 0xa8, 0x99, 0x96,
+ 0x21, 0xdd, 0x8f, 0x6f, 0x19, 0xbe, 0x23, 0x1b, 0x12, 0xe2, 0x66, 0xb7,
+ 0x74, 0x79, 0xd7, 0x15, 0xe7, 0x65, 0x66, 0xf2,
+};
+static const unsigned char kat2067_addin1[] = {
+ 0x20, 0xb3, 0x20, 0xd2, 0x72, 0xe0, 0x2c, 0x04, 0xc4, 0x50, 0x2a, 0x09,
+ 0x4e, 0x22, 0x46, 0x2e, 0x1e, 0xa7, 0x6a, 0x81, 0x26, 0x87, 0x87, 0x15,
+ 0xba, 0x17, 0x41, 0x5a, 0x3b, 0x5a, 0x11, 0x16,
+};
+static const unsigned char kat2067_retbits[] = {
+ 0x3d, 0xc4, 0x7d, 0x67, 0x86, 0xc2, 0xcc, 0x41, 0x8b, 0x6e, 0xce, 0x22,
+ 0xda, 0xd2, 0x1a, 0x8d, 0x75, 0x9c, 0xe7, 0xc4, 0xb1, 0x98, 0x2a, 0x78,
+ 0xd8, 0xb3, 0x26, 0xee, 0x72, 0x62, 0xc6, 0x4a, 0x18, 0x9f, 0x59, 0x85,
+ 0xe7, 0x97, 0x4f, 0x6f, 0x7c, 0x2d, 0xfc, 0x43, 0xba, 0x37, 0xa1, 0x12,
+ 0x63, 0x7b, 0xb9, 0xba, 0xc1, 0xf8, 0xb4, 0xe6, 0xc6, 0x24, 0x52, 0xd4,
+ 0x53, 0xf8, 0xa2, 0xe6,
+};
+static const struct drbg_kat_pr_false kat2067_t = {
+ 11, kat2067_entropyin, kat2067_nonce, kat2067_persstr,
+ kat2067_entropyinreseed, kat2067_addinreseed, kat2067_addin0,
+ kat2067_addin1, kat2067_retbits
+};
+static const struct drbg_kat kat2067 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2067_t
+};
+
+static const unsigned char kat2068_entropyin[] = {
+ 0x54, 0x14, 0xaa, 0x61, 0xc9, 0x9a, 0x61, 0xa8, 0x37, 0x95, 0x7d, 0x4e,
+ 0x48, 0x34, 0xaf, 0x5a, 0x1f, 0xa1, 0xaf, 0x06, 0x47, 0x3b, 0x2a, 0x00,
+ 0x92, 0xe8, 0x64, 0x37, 0x7b, 0xa6, 0x0b, 0x37,
+};
+static const unsigned char kat2068_nonce[] = {
+ 0x21, 0xdc, 0x0a, 0xc4, 0x8c, 0x7c, 0xbb, 0x74, 0x97, 0x01, 0x08, 0x35,
+ 0xfc, 0xc6, 0xfa, 0x0e,
+};
+static const unsigned char kat2068_persstr[] = {0};
+static const unsigned char kat2068_entropyinreseed[] = {
+ 0x88, 0x07, 0x2a, 0xf8, 0xd0, 0x67, 0xfc, 0x9f, 0x63, 0x73, 0x1a, 0x62,
+ 0x41, 0x3c, 0x3a, 0xaf, 0x44, 0xb4, 0xb6, 0x80, 0x12, 0x06, 0x15, 0x60,
+ 0x75, 0xdf, 0xc9, 0x0b, 0x0a, 0xc9, 0xfe, 0x91,
+};
+static const unsigned char kat2068_addinreseed[] = {
+ 0x96, 0x65, 0x1f, 0xd4, 0x55, 0x51, 0x62, 0x49, 0x49, 0x26, 0xbd, 0x86,
+ 0x5a, 0xfc, 0x18, 0x6b, 0x4e, 0x9a, 0x93, 0x85, 0x2f, 0x7c, 0x9a, 0xb4,
+ 0xf7, 0x59, 0x96, 0x27, 0xaa, 0x96, 0x37, 0x74,
+};
+static const unsigned char kat2068_addin0[] = {
+ 0xb3, 0x1b, 0x15, 0x2f, 0x87, 0x7b, 0xfd, 0x3d, 0xbe, 0x55, 0x16, 0x56,
+ 0x7d, 0x78, 0xe1, 0x48, 0x81, 0x94, 0x8a, 0x60, 0x56, 0x0e, 0xf7, 0xc3,
+ 0xdd, 0x6c, 0x48, 0xe4, 0x5a, 0xf6, 0x17, 0x63,
+};
+static const unsigned char kat2068_addin1[] = {
+ 0xaa, 0xfa, 0xb7, 0x76, 0x9b, 0x57, 0x80, 0x5f, 0xef, 0x54, 0x8d, 0x32,
+ 0xed, 0x95, 0xe7, 0x0a, 0x94, 0x19, 0x0c, 0xca, 0x0c, 0xb9, 0x90, 0xf6,
+ 0xbc, 0xb5, 0xbe, 0x52, 0x0f, 0x8a, 0xd7, 0xdd,
+};
+static const unsigned char kat2068_retbits[] = {
+ 0x43, 0x15, 0xad, 0x17, 0x9d, 0x6a, 0x54, 0xef, 0xa9, 0xa2, 0x43, 0x8d,
+ 0x46, 0x02, 0x9f, 0x9d, 0xf5, 0x22, 0x09, 0x0b, 0xdb, 0x69, 0xa3, 0x51,
+ 0x91, 0x56, 0x1d, 0xe0, 0x00, 0x5f, 0xc7, 0xf0, 0x74, 0xed, 0xc4, 0x5d,
+ 0x54, 0x4b, 0xa3, 0x61, 0xcf, 0x37, 0xac, 0x94, 0xa9, 0xf9, 0xed, 0xdb,
+ 0x9e, 0x5c, 0x24, 0xe2, 0xe4, 0x16, 0x77, 0xe5, 0xda, 0x2a, 0xc9, 0x64,
+ 0x91, 0x3b, 0xe2, 0x02,
+};
+static const struct drbg_kat_pr_false kat2068_t = {
+ 12, kat2068_entropyin, kat2068_nonce, kat2068_persstr,
+ kat2068_entropyinreseed, kat2068_addinreseed, kat2068_addin0,
+ kat2068_addin1, kat2068_retbits
+};
+static const struct drbg_kat kat2068 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2068_t
+};
+
+static const unsigned char kat2069_entropyin[] = {
+ 0xe8, 0xfc, 0x2f, 0xb6, 0xf9, 0x24, 0x73, 0xef, 0x5c, 0xbe, 0xbe, 0xe6,
+ 0x38, 0xd5, 0x8b, 0xdd, 0x07, 0xe5, 0x86, 0x0d, 0x87, 0xa2, 0x66, 0x70,
+ 0xde, 0x5e, 0x83, 0x05, 0xa2, 0x1b, 0xa8, 0x2b,
+};
+static const unsigned char kat2069_nonce[] = {
+ 0xc0, 0x3c, 0x34, 0x0b, 0xb3, 0x77, 0xe0, 0x36, 0xd2, 0xf1, 0xb9, 0xed,
+ 0x01, 0x83, 0x30, 0xdf,
+};
+static const unsigned char kat2069_persstr[] = {0};
+static const unsigned char kat2069_entropyinreseed[] = {
+ 0x6b, 0x1e, 0x3a, 0x62, 0xe7, 0x7c, 0x81, 0x4c, 0x22, 0xcd, 0xde, 0xaf,
+ 0x63, 0x10, 0xb7, 0x51, 0x77, 0x1b, 0xf0, 0xa8, 0x6f, 0x5f, 0x55, 0x7f,
+ 0xe1, 0x31, 0x8e, 0xa0, 0xfe, 0x2e, 0xd7, 0xdc,
+};
+static const unsigned char kat2069_addinreseed[] = {
+ 0xab, 0xd7, 0xeb, 0xbc, 0xae, 0x2e, 0x26, 0x88, 0x04, 0xab, 0x4b, 0x98,
+ 0xad, 0x33, 0xfe, 0x6c, 0xc2, 0x12, 0x9d, 0x7f, 0x17, 0xb3, 0xc7, 0x14,
+ 0x18, 0x5f, 0xf2, 0x40, 0x60, 0x96, 0xb9, 0x22,
+};
+static const unsigned char kat2069_addin0[] = {
+ 0x65, 0x66, 0x9e, 0x7d, 0xb6, 0x14, 0x52, 0x75, 0x36, 0xcb, 0xf9, 0x32,
+ 0xad, 0x42, 0xe4, 0x39, 0x5c, 0xcb, 0xef, 0x38, 0x87, 0x3b, 0xd5, 0x5d,
+ 0x18, 0x13, 0xd8, 0x01, 0x59, 0xe1, 0xff, 0xf4,
+};
+static const unsigned char kat2069_addin1[] = {
+ 0xb8, 0x43, 0xfa, 0xe8, 0xf8, 0xdc, 0x65, 0x5d, 0x84, 0x21, 0x73, 0x3a,
+ 0x62, 0x04, 0x34, 0x68, 0x84, 0xac, 0x33, 0x5a, 0x05, 0xe3, 0xb2, 0x9a,
+ 0x8a, 0xdf, 0x03, 0x6d, 0xeb, 0x80, 0x88, 0x55,
+};
+static const unsigned char kat2069_retbits[] = {
+ 0xa3, 0x04, 0x40, 0x87, 0x46, 0x5c, 0x14, 0x26, 0xf4, 0x54, 0xba, 0xcc,
+ 0x2d, 0xad, 0x1f, 0x9d, 0x9e, 0x23, 0x53, 0x9a, 0xeb, 0xd8, 0x03, 0x6d,
+ 0xd7, 0xf5, 0x8f, 0x16, 0xd6, 0xf2, 0xf5, 0x55, 0x69, 0x70, 0xe7, 0x5d,
+ 0x72, 0x83, 0xe1, 0xef, 0x91, 0x25, 0x42, 0xf2, 0x08, 0x96, 0xaa, 0x98,
+ 0xc5, 0xcb, 0xb1, 0xac, 0x1f, 0x76, 0xce, 0x64, 0xd5, 0x3c, 0x7e, 0x36,
+ 0x76, 0x1d, 0xe2, 0x9b,
+};
+static const struct drbg_kat_pr_false kat2069_t = {
+ 13, kat2069_entropyin, kat2069_nonce, kat2069_persstr,
+ kat2069_entropyinreseed, kat2069_addinreseed, kat2069_addin0,
+ kat2069_addin1, kat2069_retbits
+};
+static const struct drbg_kat kat2069 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2069_t
+};
+
+static const unsigned char kat2070_entropyin[] = {
+ 0x8d, 0xca, 0x78, 0xc7, 0x87, 0x4b, 0x3c, 0xc3, 0x05, 0xc5, 0x6a, 0x47,
+ 0x79, 0x50, 0x1b, 0xad, 0xb7, 0x1c, 0x29, 0x27, 0x74, 0xe9, 0xd1, 0xd8,
+ 0x93, 0xb4, 0x39, 0x0c, 0xf1, 0x32, 0xc2, 0x6a,
+};
+static const unsigned char kat2070_nonce[] = {
+ 0x43, 0xff, 0x3a, 0xac, 0xcc, 0xee, 0x9e, 0x4a, 0x11, 0x2a, 0x34, 0x70,
+ 0xff, 0xa6, 0x77, 0x0f,
+};
+static const unsigned char kat2070_persstr[] = {0};
+static const unsigned char kat2070_entropyinreseed[] = {
+ 0xda, 0x52, 0x47, 0x15, 0xb4, 0x5d, 0xe9, 0x93, 0x91, 0xeb, 0xb3, 0x4a,
+ 0x1a, 0x70, 0x62, 0x15, 0x53, 0xaa, 0xb2, 0x45, 0x04, 0x4a, 0x65, 0x23,
+ 0xb7, 0x38, 0x81, 0xc0, 0x0c, 0xb1, 0xb2, 0xc7,
+};
+static const unsigned char kat2070_addinreseed[] = {
+ 0x8d, 0xb7, 0xda, 0xb5, 0x8d, 0xf1, 0xc4, 0x38, 0xf5, 0x6a, 0x72, 0x2c,
+ 0x14, 0x8c, 0x4a, 0x02, 0xb3, 0x94, 0xd1, 0xd7, 0x86, 0x6b, 0x61, 0x54,
+ 0xfd, 0x02, 0xf0, 0xbb, 0x26, 0x69, 0xe6, 0x04,
+};
+static const unsigned char kat2070_addin0[] = {
+ 0x43, 0xe7, 0x0e, 0xf3, 0xd4, 0x72, 0xe2, 0xcd, 0xd7, 0x37, 0xe8, 0xa0,
+ 0xbb, 0xb7, 0x5a, 0x55, 0x0f, 0x60, 0x79, 0xe2, 0xa5, 0x02, 0x62, 0x71,
+ 0xcc, 0xc3, 0xdc, 0xbf, 0x56, 0x8b, 0x84, 0xb1,
+};
+static const unsigned char kat2070_addin1[] = {
+ 0x94, 0xf4, 0x42, 0x59, 0xb1, 0xa3, 0xd3, 0xb4, 0x65, 0x57, 0x19, 0x60,
+ 0xc6, 0xd8, 0x8b, 0x9f, 0xa4, 0x0c, 0x7c, 0x0b, 0xeb, 0x30, 0xde, 0x5f,
+ 0x8f, 0x6d, 0xf5, 0xc3, 0x74, 0xf4, 0xb3, 0x48,
+};
+static const unsigned char kat2070_retbits[] = {
+ 0x2b, 0x46, 0xad, 0xfc, 0x92, 0xd2, 0x22, 0x77, 0x11, 0x1a, 0xba, 0x05,
+ 0x60, 0x32, 0xd7, 0x9e, 0x9c, 0x1f, 0x85, 0x7d, 0x2a, 0x94, 0xc6, 0x27,
+ 0xef, 0xa3, 0x32, 0x7d, 0x6f, 0x19, 0xe8, 0xc9, 0x00, 0xf2, 0x0e, 0xb9,
+ 0xe0, 0xcb, 0x16, 0x43, 0x01, 0x6c, 0x03, 0xef, 0xb9, 0x66, 0x18, 0xd2,
+ 0x70, 0xe1, 0x5e, 0x4a, 0x7e, 0x91, 0x52, 0x2f, 0x0e, 0x1e, 0x81, 0x44,
+ 0x03, 0x25, 0x64, 0xda,
+};
+static const struct drbg_kat_pr_false kat2070_t = {
+ 14, kat2070_entropyin, kat2070_nonce, kat2070_persstr,
+ kat2070_entropyinreseed, kat2070_addinreseed, kat2070_addin0,
+ kat2070_addin1, kat2070_retbits
+};
+static const struct drbg_kat kat2070 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2070_t
+};
+
+static const unsigned char kat2071_entropyin[] = {
+ 0x7f, 0xc5, 0xc6, 0x7c, 0x1e, 0x8e, 0xae, 0xbf, 0x19, 0xbe, 0x64, 0x63,
+ 0xc9, 0xee, 0x13, 0x82, 0x5b, 0x1c, 0x63, 0xbd, 0x38, 0xe5, 0x8c, 0xe7,
+ 0x3a, 0x77, 0x68, 0x87, 0xd9, 0x5f, 0xf9, 0x20,
+};
+static const unsigned char kat2071_nonce[] = {
+ 0x36, 0xb6, 0xaa, 0xc8, 0x1c, 0x45, 0x45, 0x8d, 0x48, 0xe3, 0xa1, 0xa3,
+ 0x42, 0xff, 0x66, 0x7c,
+};
+static const unsigned char kat2071_persstr[] = {
+ 0x21, 0x96, 0x68, 0x06, 0x72, 0xe2, 0xc4, 0xe1, 0x64, 0x05, 0x9c, 0xde,
+ 0x6d, 0x2f, 0xe9, 0x1b, 0xa3, 0xc3, 0x96, 0xcf, 0x4b, 0x61, 0xb5, 0xe2,
+ 0x3f, 0xb1, 0x66, 0x78, 0x16, 0xf9, 0xbd, 0xa4,
+};
+static const unsigned char kat2071_entropyinreseed[] = {
+ 0x11, 0x44, 0x75, 0xd8, 0xee, 0xb7, 0x71, 0xa0, 0xd9, 0xba, 0xd4, 0x51,
+ 0x24, 0x5f, 0x36, 0x33, 0xe7, 0x09, 0x59, 0x24, 0x42, 0xe5, 0x00, 0x58,
+ 0x45, 0xd0, 0xeb, 0xaf, 0xed, 0x5f, 0x68, 0x0d,
+};
+static const unsigned char kat2071_addinreseed[] = {0};
+static const unsigned char kat2071_addin0[] = {0};
+static const unsigned char kat2071_addin1[] = {0};
+static const unsigned char kat2071_retbits[] = {
+ 0xcc, 0x7c, 0x90, 0x20, 0xa9, 0xb1, 0x15, 0x01, 0x44, 0x04, 0x64, 0xe3,
+ 0xc3, 0x06, 0xd3, 0x82, 0x62, 0xc4, 0x58, 0x38, 0xda, 0x3a, 0x0d, 0xd2,
+ 0x65, 0x52, 0xee, 0x7a, 0x9e, 0xdd, 0x9f, 0xc3, 0x82, 0xd3, 0xf7, 0xb1,
+ 0x87, 0xe9, 0xfb, 0x37, 0x0b, 0xe9, 0x7d, 0x9b, 0xf4, 0x34, 0x66, 0xa5,
+ 0x51, 0xe9, 0x73, 0x89, 0x29, 0xf3, 0x86, 0x97, 0xc7, 0x38, 0xbf, 0x26,
+ 0x7b, 0x66, 0x49, 0x84,
+};
+static const struct drbg_kat_pr_false kat2071_t = {
+ 0, kat2071_entropyin, kat2071_nonce, kat2071_persstr,
+ kat2071_entropyinreseed, kat2071_addinreseed, kat2071_addin0,
+ kat2071_addin1, kat2071_retbits
+};
+static const struct drbg_kat kat2071 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2071_t
+};
+
+static const unsigned char kat2072_entropyin[] = {
+ 0x3a, 0xf4, 0xdf, 0x4e, 0x10, 0x10, 0x56, 0xd2, 0x2e, 0x93, 0x86, 0xa4,
+ 0xf7, 0xd4, 0x7a, 0x97, 0x5a, 0x8e, 0x7b, 0x44, 0xe2, 0x02, 0xe7, 0xa3,
+ 0xd6, 0x0a, 0x0c, 0x92, 0x0c, 0x07, 0x0f, 0x59,
+};
+static const unsigned char kat2072_nonce[] = {
+ 0x4f, 0xdb, 0xb7, 0x87, 0xed, 0xe1, 0xf7, 0x04, 0x1c, 0xd6, 0xc5, 0xa1,
+ 0x80, 0xc2, 0x37, 0x26,
+};
+static const unsigned char kat2072_persstr[] = {
+ 0xf8, 0x51, 0x98, 0x98, 0xa7, 0x17, 0x3c, 0x7b, 0xee, 0xe3, 0x40, 0x62,
+ 0x65, 0x24, 0x3c, 0x0b, 0x06, 0x13, 0x9c, 0x3c, 0xbc, 0xb4, 0x7a, 0x6c,
+ 0x45, 0x25, 0xc4, 0x1f, 0x5c, 0xd0, 0x79, 0xe9,
+};
+static const unsigned char kat2072_entropyinreseed[] = {
+ 0x81, 0x72, 0x99, 0x9c, 0x00, 0x5b, 0x5e, 0xa6, 0x0c, 0xe1, 0x2b, 0xfe,
+ 0x04, 0x13, 0xd7, 0xc7, 0x97, 0x4e, 0x55, 0xf1, 0xb8, 0xe0, 0x55, 0x21,
+ 0x39, 0x08, 0x5e, 0x1e, 0xc9, 0xae, 0x79, 0xfb,
+};
+static const unsigned char kat2072_addinreseed[] = {0};
+static const unsigned char kat2072_addin0[] = {0};
+static const unsigned char kat2072_addin1[] = {0};
+static const unsigned char kat2072_retbits[] = {
+ 0xfc, 0xa1, 0x7a, 0xb3, 0x23, 0xf4, 0x4a, 0x1f, 0x7b, 0xee, 0x2a, 0xc8,
+ 0x40, 0x00, 0x66, 0xee, 0xe2, 0xb0, 0x2b, 0xfc, 0x43, 0x4f, 0x63, 0xcc,
+ 0x9f, 0xa3, 0x69, 0x9b, 0x08, 0x3b, 0x34, 0xac, 0x7a, 0x9a, 0xa9, 0x09,
+ 0xb4, 0x11, 0xc7, 0x69, 0xcd, 0xe1, 0x2c, 0xab, 0x39, 0xb3, 0x1d, 0x70,
+ 0x77, 0xd4, 0x1f, 0xa0, 0xda, 0xb0, 0xab, 0x1a, 0xbe, 0x8e, 0x7e, 0xe7,
+ 0x75, 0x51, 0x1e, 0x3b,
+};
+static const struct drbg_kat_pr_false kat2072_t = {
+ 1, kat2072_entropyin, kat2072_nonce, kat2072_persstr,
+ kat2072_entropyinreseed, kat2072_addinreseed, kat2072_addin0,
+ kat2072_addin1, kat2072_retbits
+};
+static const struct drbg_kat kat2072 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2072_t
+};
+
+static const unsigned char kat2073_entropyin[] = {
+ 0xe8, 0xba, 0x22, 0xbc, 0x9d, 0x74, 0x6b, 0x6a, 0x4e, 0xcf, 0x61, 0x0b,
+ 0xca, 0xf1, 0x97, 0x13, 0x0c, 0xf6, 0x22, 0x69, 0xde, 0xa6, 0x84, 0x92,
+ 0x0b, 0xf1, 0xbb, 0xcf, 0x17, 0x66, 0x03, 0x24,
+};
+static const unsigned char kat2073_nonce[] = {
+ 0x54, 0xaf, 0xff, 0x3a, 0xb2, 0x95, 0x57, 0xaa, 0xef, 0xbf, 0x4f, 0x2d,
+ 0x7d, 0x34, 0xe9, 0x4e,
+};
+static const unsigned char kat2073_persstr[] = {
+ 0xe0, 0x21, 0xd4, 0x42, 0x65, 0x37, 0xdd, 0x91, 0x59, 0x0e, 0x35, 0x4b,
+ 0xe4, 0xd9, 0x61, 0x07, 0xa7, 0x8d, 0xb8, 0x0a, 0xc4, 0x80, 0x2f, 0xff,
+ 0x38, 0x4b, 0x52, 0x9a, 0x3f, 0x8f, 0xa9, 0x25,
+};
+static const unsigned char kat2073_entropyinreseed[] = {
+ 0xcc, 0xea, 0xb6, 0xa2, 0x6c, 0x17, 0x0b, 0x68, 0x9a, 0xdd, 0xc9, 0x62,
+ 0xbe, 0x4c, 0x11, 0xa4, 0xfc, 0xfb, 0x47, 0x26, 0x00, 0xe7, 0xa3, 0xe5,
+ 0xc5, 0xe7, 0x8f, 0x0c, 0xe8, 0xfa, 0x97, 0xf7,
+};
+static const unsigned char kat2073_addinreseed[] = {0};
+static const unsigned char kat2073_addin0[] = {0};
+static const unsigned char kat2073_addin1[] = {0};
+static const unsigned char kat2073_retbits[] = {
+ 0xd2, 0x04, 0x54, 0x54, 0x94, 0x22, 0xfb, 0xdc, 0x77, 0x08, 0xb0, 0x47,
+ 0xe2, 0xec, 0xbd, 0x13, 0xbb, 0x47, 0x12, 0xe3, 0x8a, 0xb2, 0xb0, 0xef,
+ 0xc6, 0x80, 0x0c, 0xe2, 0xd6, 0x32, 0xac, 0xb2, 0xac, 0x14, 0x36, 0xfc,
+ 0x81, 0x3d, 0x55, 0x11, 0x34, 0x94, 0x7d, 0x14, 0x2d, 0x84, 0x21, 0xa9,
+ 0x1d, 0x1e, 0xb3, 0x21, 0x50, 0xcb, 0xf9, 0x9b, 0x26, 0x6c, 0x55, 0x2b,
+ 0x21, 0x5c, 0x20, 0xa7,
+};
+static const struct drbg_kat_pr_false kat2073_t = {
+ 2, kat2073_entropyin, kat2073_nonce, kat2073_persstr,
+ kat2073_entropyinreseed, kat2073_addinreseed, kat2073_addin0,
+ kat2073_addin1, kat2073_retbits
+};
+static const struct drbg_kat kat2073 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2073_t
+};
+
+static const unsigned char kat2074_entropyin[] = {
+ 0xcc, 0x02, 0x83, 0xb5, 0x6b, 0x01, 0xaf, 0x29, 0xdf, 0x83, 0x61, 0x7f,
+ 0x12, 0x96, 0x9e, 0x05, 0xbc, 0x95, 0x15, 0x1b, 0xd6, 0xea, 0x04, 0x33,
+ 0x78, 0x25, 0x89, 0x1a, 0xc9, 0x47, 0x98, 0xe9,
+};
+static const unsigned char kat2074_nonce[] = {
+ 0x82, 0x59, 0x76, 0xf8, 0x32, 0x79, 0x66, 0x02, 0xd9, 0xaf, 0xac, 0x19,
+ 0xf9, 0xa4, 0x59, 0x72,
+};
+static const unsigned char kat2074_persstr[] = {
+ 0x75, 0xae, 0xc9, 0xc3, 0x2f, 0x40, 0xbd, 0xa3, 0x39, 0x02, 0xf1, 0xa2,
+ 0x10, 0x75, 0x77, 0x59, 0x70, 0xf6, 0xa2, 0x78, 0x44, 0xae, 0x2a, 0x34,
+ 0x29, 0xb5, 0xe1, 0x86, 0x11, 0x9c, 0xe9, 0x17,
+};
+static const unsigned char kat2074_entropyinreseed[] = {
+ 0x7b, 0x27, 0x34, 0x15, 0xd5, 0xbc, 0xac, 0xc9, 0xbe, 0xba, 0x66, 0x59,
+ 0x92, 0x35, 0xb7, 0x80, 0xa0, 0x77, 0xf4, 0xa7, 0xeb, 0xba, 0x6a, 0xed,
+ 0xdc, 0xdd, 0xe5, 0x83, 0xc2, 0x05, 0x89, 0xcf,
+};
+static const unsigned char kat2074_addinreseed[] = {0};
+static const unsigned char kat2074_addin0[] = {0};
+static const unsigned char kat2074_addin1[] = {0};
+static const unsigned char kat2074_retbits[] = {
+ 0xe8, 0x37, 0x57, 0xb1, 0x9d, 0xc2, 0x44, 0xf4, 0x8d, 0xbf, 0x6a, 0xba,
+ 0x22, 0xa8, 0xb2, 0x4a, 0xde, 0x44, 0xde, 0xe9, 0x59, 0xd0, 0x17, 0xff,
+ 0xb4, 0xfe, 0x97, 0x71, 0xc2, 0xa6, 0xd2, 0x8c, 0xc5, 0x6e, 0x94, 0x49,
+ 0xc9, 0x05, 0x0f, 0x52, 0xb5, 0xa3, 0x15, 0xff, 0x7e, 0x45, 0x35, 0x43,
+ 0x52, 0xfc, 0x4b, 0x44, 0x62, 0x19, 0x44, 0xdc, 0x7c, 0xa3, 0xa9, 0x3f,
+ 0xba, 0x7a, 0xa7, 0x1c,
+};
+static const struct drbg_kat_pr_false kat2074_t = {
+ 3, kat2074_entropyin, kat2074_nonce, kat2074_persstr,
+ kat2074_entropyinreseed, kat2074_addinreseed, kat2074_addin0,
+ kat2074_addin1, kat2074_retbits
+};
+static const struct drbg_kat kat2074 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2074_t
+};
+
+static const unsigned char kat2075_entropyin[] = {
+ 0xd4, 0xc9, 0xfa, 0x57, 0xd2, 0x11, 0xf5, 0x3d, 0xcd, 0x16, 0xb2, 0xf1,
+ 0x81, 0x21, 0x41, 0xec, 0x3e, 0xfe, 0x2d, 0x0b, 0xd4, 0x25, 0xd5, 0xc1,
+ 0xfd, 0x7e, 0x6d, 0x96, 0xa1, 0x46, 0xdb, 0x37,
+};
+static const unsigned char kat2075_nonce[] = {
+ 0x64, 0x73, 0x75, 0x8b, 0x32, 0x84, 0x8f, 0x04, 0xb8, 0x6c, 0xcb, 0xcb,
+ 0xd0, 0x17, 0xf1, 0x4b,
+};
+static const unsigned char kat2075_persstr[] = {
+ 0xa2, 0x69, 0x8b, 0x2b, 0x6e, 0x58, 0xc2, 0x3c, 0x3e, 0x82, 0xcc, 0x19,
+ 0x5e, 0x15, 0x51, 0x64, 0xf4, 0xd8, 0x86, 0x53, 0x92, 0x46, 0x9a, 0x30,
+ 0x87, 0x4e, 0x54, 0x9b, 0x01, 0x71, 0xa4, 0x90,
+};
+static const unsigned char kat2075_entropyinreseed[] = {
+ 0x96, 0xb5, 0x9a, 0x20, 0x9f, 0xe5, 0x4c, 0xe7, 0x5a, 0x3f, 0x0d, 0x6f,
+ 0x62, 0xf7, 0xe4, 0x92, 0xaa, 0xbc, 0x41, 0x58, 0x4e, 0x16, 0x07, 0x46,
+ 0x3d, 0x16, 0x1f, 0x99, 0xe9, 0x8c, 0xbd, 0x88,
+};
+static const unsigned char kat2075_addinreseed[] = {0};
+static const unsigned char kat2075_addin0[] = {0};
+static const unsigned char kat2075_addin1[] = {0};
+static const unsigned char kat2075_retbits[] = {
+ 0x1b, 0x5b, 0xf3, 0xcf, 0xee, 0x33, 0xf7, 0xfd, 0x4b, 0x9a, 0x07, 0xf9,
+ 0xbb, 0x98, 0x25, 0x5b, 0x0b, 0xd4, 0x7a, 0x3e, 0x8d, 0x64, 0x72, 0xaf,
+ 0x57, 0x60, 0x2a, 0xb8, 0xb6, 0xab, 0xeb, 0xd0, 0x78, 0xdf, 0x5a, 0xae,
+ 0x76, 0x10, 0x53, 0x3a, 0xe3, 0x17, 0x38, 0x95, 0x6c, 0x3e, 0x4c, 0xcd,
+ 0x41, 0x10, 0x45, 0x85, 0x65, 0x5d, 0xab, 0x4c, 0xfc, 0xb3, 0x2d, 0x37,
+ 0xc8, 0x1f, 0xb7, 0x92,
+};
+static const struct drbg_kat_pr_false kat2075_t = {
+ 4, kat2075_entropyin, kat2075_nonce, kat2075_persstr,
+ kat2075_entropyinreseed, kat2075_addinreseed, kat2075_addin0,
+ kat2075_addin1, kat2075_retbits
+};
+static const struct drbg_kat kat2075 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2075_t
+};
+
+static const unsigned char kat2076_entropyin[] = {
+ 0x75, 0x1b, 0xe4, 0x10, 0x47, 0x40, 0xcd, 0x52, 0xa1, 0xa5, 0x15, 0xe4,
+ 0x3b, 0x80, 0xef, 0xda, 0x17, 0x38, 0x55, 0x8d, 0xe8, 0x9e, 0x6f, 0x04,
+ 0x9e, 0xa1, 0x94, 0xd7, 0xd8, 0x48, 0x7f, 0x29,
+};
+static const unsigned char kat2076_nonce[] = {
+ 0xee, 0xc6, 0x0a, 0x29, 0x78, 0xa4, 0x90, 0xb2, 0xe6, 0xbe, 0x71, 0x76,
+ 0x5e, 0x69, 0xc3, 0x61,
+};
+static const unsigned char kat2076_persstr[] = {
+ 0x6c, 0x7a, 0x39, 0x82, 0x2f, 0x61, 0xf4, 0xf1, 0x7d, 0x0a, 0xe3, 0x90,
+ 0x99, 0xfd, 0xc8, 0x20, 0xc6, 0x35, 0xc6, 0x90, 0x05, 0xbf, 0x04, 0xe4,
+ 0xd1, 0x3b, 0x18, 0xa1, 0x88, 0x38, 0x21, 0x40,
+};
+static const unsigned char kat2076_entropyinreseed[] = {
+ 0x39, 0x61, 0xb2, 0x4f, 0x64, 0x27, 0x35, 0x2d, 0x52, 0xf2, 0xdc, 0x45,
+ 0xee, 0x9d, 0x22, 0x81, 0x4e, 0x72, 0x26, 0x56, 0x7a, 0xdc, 0xff, 0x95,
+ 0x0b, 0xf7, 0x3d, 0x43, 0x1a, 0xb8, 0xcb, 0x4a,
+};
+static const unsigned char kat2076_addinreseed[] = {0};
+static const unsigned char kat2076_addin0[] = {0};
+static const unsigned char kat2076_addin1[] = {0};
+static const unsigned char kat2076_retbits[] = {
+ 0xde, 0x87, 0xa4, 0xa7, 0x65, 0xc5, 0x04, 0x0d, 0x89, 0x74, 0x31, 0x46,
+ 0x69, 0x6a, 0x67, 0x02, 0xd5, 0xcd, 0xe9, 0x05, 0xeb, 0xf2, 0xdd, 0x0f,
+ 0x65, 0x40, 0xd5, 0x3f, 0x5c, 0x8b, 0xd4, 0xfa, 0x1c, 0x3a, 0xa8, 0x3b,
+ 0x9c, 0x2b, 0x0e, 0xdd, 0x72, 0xf8, 0x57, 0xd5, 0x95, 0x71, 0xba, 0x50,
+ 0x8b, 0xd6, 0x3d, 0x5f, 0x7a, 0xe3, 0x01, 0x18, 0xe3, 0xe9, 0x68, 0x8c,
+ 0x60, 0x6f, 0xd1, 0xcb,
+};
+static const struct drbg_kat_pr_false kat2076_t = {
+ 5, kat2076_entropyin, kat2076_nonce, kat2076_persstr,
+ kat2076_entropyinreseed, kat2076_addinreseed, kat2076_addin0,
+ kat2076_addin1, kat2076_retbits
+};
+static const struct drbg_kat kat2076 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2076_t
+};
+
+static const unsigned char kat2077_entropyin[] = {
+ 0xd4, 0x01, 0xf6, 0xfc, 0x6d, 0xaf, 0x7c, 0x00, 0x3c, 0xcd, 0xfe, 0xde,
+ 0xac, 0xd0, 0x11, 0xe2, 0xc0, 0x49, 0x96, 0x3f, 0x66, 0x2b, 0xfe, 0x18,
+ 0x5c, 0x63, 0x15, 0x68, 0xa8, 0x3c, 0x9e, 0xed,
+};
+static const unsigned char kat2077_nonce[] = {
+ 0x03, 0x73, 0x51, 0x56, 0x23, 0x64, 0x76, 0x10, 0x49, 0x28, 0xdf, 0x85,
+ 0xc3, 0x07, 0x74, 0xf0,
+};
+static const unsigned char kat2077_persstr[] = {
+ 0x17, 0x50, 0x48, 0x78, 0x6a, 0xa8, 0x3e, 0x4d, 0xc8, 0x50, 0x0b, 0x01,
+ 0x18, 0xfc, 0xda, 0xce, 0x91, 0x74, 0xbb, 0x77, 0xed, 0x8e, 0xae, 0xe4,
+ 0xc5, 0x5f, 0xeb, 0xa0, 0x45, 0x34, 0xb0, 0x9d,
+};
+static const unsigned char kat2077_entropyinreseed[] = {
+ 0xd5, 0x4f, 0x61, 0xe2, 0xf1, 0x53, 0xd3, 0x42, 0x2f, 0x74, 0x87, 0x06,
+ 0xa4, 0xf4, 0x07, 0x91, 0x4b, 0x84, 0x78, 0x99, 0x75, 0x18, 0xcd, 0x5f,
+ 0x24, 0xf0, 0x7b, 0x52, 0x3b, 0xec, 0x5c, 0xe2,
+};
+static const unsigned char kat2077_addinreseed[] = {0};
+static const unsigned char kat2077_addin0[] = {0};
+static const unsigned char kat2077_addin1[] = {0};
+static const unsigned char kat2077_retbits[] = {
+ 0xa3, 0xa6, 0x91, 0x0c, 0x6f, 0xfc, 0x12, 0x1b, 0xdc, 0xfa, 0x6d, 0x29,
+ 0xb7, 0xee, 0x78, 0x72, 0xb5, 0x37, 0xb3, 0xa3, 0xab, 0x84, 0xa8, 0xc8,
+ 0xa6, 0xd7, 0x43, 0xb8, 0x3d, 0xe9, 0x8d, 0xcf, 0x9b, 0xe9, 0xdd, 0x50,
+ 0x6e, 0x51, 0xc5, 0xa5, 0x56, 0x9e, 0x40, 0xee, 0xff, 0xdb, 0x57, 0x89,
+ 0xa0, 0x53, 0x15, 0xae, 0xf5, 0x95, 0xcf, 0x44, 0x01, 0xcd, 0xcd, 0x31,
+ 0x16, 0xfe, 0x24, 0xfa,
+};
+static const struct drbg_kat_pr_false kat2077_t = {
+ 6, kat2077_entropyin, kat2077_nonce, kat2077_persstr,
+ kat2077_entropyinreseed, kat2077_addinreseed, kat2077_addin0,
+ kat2077_addin1, kat2077_retbits
+};
+static const struct drbg_kat kat2077 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2077_t
+};
+
+static const unsigned char kat2078_entropyin[] = {
+ 0x77, 0x23, 0x05, 0x44, 0xaa, 0xa9, 0x9a, 0x91, 0x03, 0x69, 0xa2, 0xef,
+ 0x67, 0x98, 0xe2, 0x10, 0x62, 0x46, 0xab, 0x47, 0x29, 0x64, 0x85, 0xc8,
+ 0xf6, 0x5a, 0x75, 0x30, 0x3c, 0xf9, 0x0b, 0x18,
+};
+static const unsigned char kat2078_nonce[] = {
+ 0x49, 0x37, 0xbc, 0x2c, 0x21, 0x1a, 0xd7, 0x13, 0x77, 0x97, 0xa0, 0xc4,
+ 0xd0, 0xcd, 0x07, 0x3a,
+};
+static const unsigned char kat2078_persstr[] = {
+ 0x1d, 0x24, 0x63, 0xa3, 0x26, 0x6c, 0xac, 0x98, 0x40, 0xed, 0x6b, 0x7c,
+ 0x35, 0xf1, 0x45, 0x65, 0x41, 0x89, 0xe1, 0xe0, 0x83, 0x22, 0x2a, 0x4a,
+ 0x28, 0x1d, 0xab, 0x50, 0x1e, 0x99, 0x23, 0xf9,
+};
+static const unsigned char kat2078_entropyinreseed[] = {
+ 0x2e, 0x1d, 0x69, 0xe4, 0x66, 0x80, 0x0f, 0xe9, 0xfe, 0xab, 0x87, 0x2b,
+ 0x3e, 0x3d, 0x41, 0x04, 0x59, 0xdc, 0x17, 0x91, 0xf2, 0x92, 0x42, 0x41,
+ 0xa0, 0x0a, 0x58, 0x5a, 0x6f, 0x94, 0xdc, 0xe1,
+};
+static const unsigned char kat2078_addinreseed[] = {0};
+static const unsigned char kat2078_addin0[] = {0};
+static const unsigned char kat2078_addin1[] = {0};
+static const unsigned char kat2078_retbits[] = {
+ 0x2f, 0xed, 0x41, 0x01, 0x07, 0x52, 0xd7, 0x7f, 0x32, 0x3c, 0x4b, 0xfb,
+ 0xfa, 0x09, 0xb9, 0x52, 0x96, 0xbc, 0xbe, 0x56, 0x5b, 0x84, 0xb4, 0xa6,
+ 0x5d, 0x7e, 0xca, 0x93, 0x8e, 0xd6, 0x4e, 0x30, 0xf7, 0xe4, 0x8e, 0x0c,
+ 0x71, 0xb2, 0xca, 0x0b, 0x6c, 0x08, 0xa0, 0xfe, 0x52, 0xd8, 0xa0, 0xcf,
+ 0xd8, 0x55, 0x8e, 0x58, 0xdc, 0x15, 0xe7, 0xd5, 0x61, 0x0c, 0xc6, 0x6c,
+ 0x24, 0x22, 0x50, 0x31,
+};
+static const struct drbg_kat_pr_false kat2078_t = {
+ 7, kat2078_entropyin, kat2078_nonce, kat2078_persstr,
+ kat2078_entropyinreseed, kat2078_addinreseed, kat2078_addin0,
+ kat2078_addin1, kat2078_retbits
+};
+static const struct drbg_kat kat2078 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2078_t
+};
+
+static const unsigned char kat2079_entropyin[] = {
+ 0x50, 0x09, 0xd8, 0x18, 0xcc, 0x03, 0x84, 0xbf, 0xbc, 0x9c, 0x5d, 0xd8,
+ 0x15, 0x79, 0xc7, 0x4f, 0x56, 0xe5, 0x49, 0x0c, 0x56, 0xe5, 0x31, 0x11,
+ 0x52, 0x23, 0x1e, 0x8a, 0x71, 0x72, 0x0a, 0x13,
+};
+static const unsigned char kat2079_nonce[] = {
+ 0x1b, 0x16, 0x4d, 0x66, 0x07, 0x34, 0x67, 0xa8, 0xfc, 0xb1, 0x72, 0x2c,
+ 0x67, 0x1b, 0x40, 0x8e,
+};
+static const unsigned char kat2079_persstr[] = {
+ 0x1e, 0x56, 0xa2, 0xcd, 0xae, 0x59, 0x11, 0xd0, 0xd6, 0x0b, 0xae, 0xd7,
+ 0xd4, 0x9d, 0x3b, 0x3c, 0xb0, 0x62, 0xc4, 0xcb, 0xfb, 0xbe, 0x31, 0xa5,
+ 0x67, 0x13, 0xbe, 0xb3, 0x7f, 0xb1, 0x9f, 0xd4,
+};
+static const unsigned char kat2079_entropyinreseed[] = {
+ 0x2d, 0x75, 0x4e, 0xda, 0x6d, 0xe4, 0x87, 0xa5, 0xb2, 0x82, 0x84, 0x86,
+ 0x75, 0x57, 0xac, 0xcd, 0x43, 0x2c, 0x63, 0x86, 0x92, 0x4b, 0x24, 0xd3,
+ 0x22, 0x63, 0xf6, 0x07, 0x29, 0x17, 0x37, 0xec,
+};
+static const unsigned char kat2079_addinreseed[] = {0};
+static const unsigned char kat2079_addin0[] = {0};
+static const unsigned char kat2079_addin1[] = {0};
+static const unsigned char kat2079_retbits[] = {
+ 0x89, 0xfd, 0xec, 0xe4, 0x0e, 0xf8, 0x18, 0x21, 0xbb, 0xb7, 0xbe, 0xba,
+ 0x79, 0xf1, 0xc1, 0xd6, 0x8c, 0xb9, 0xbe, 0xe9, 0xe9, 0xcf, 0x2f, 0x6c,
+ 0x2b, 0x0b, 0xf4, 0x2e, 0x0c, 0xa3, 0xa3, 0xc6, 0x65, 0x9b, 0x2a, 0xcb,
+ 0xb5, 0xee, 0xe8, 0x5e, 0xba, 0xcf, 0xdc, 0xcf, 0x35, 0x20, 0x22, 0x08,
+ 0x8b, 0x99, 0x5e, 0xbc, 0x84, 0xcd, 0x24, 0xd3, 0xa1, 0x9b, 0x83, 0x2e,
+ 0x46, 0x17, 0xcd, 0xad,
+};
+static const struct drbg_kat_pr_false kat2079_t = {
+ 8, kat2079_entropyin, kat2079_nonce, kat2079_persstr,
+ kat2079_entropyinreseed, kat2079_addinreseed, kat2079_addin0,
+ kat2079_addin1, kat2079_retbits
+};
+static const struct drbg_kat kat2079 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2079_t
+};
+
+static const unsigned char kat2080_entropyin[] = {
+ 0xd4, 0xdf, 0xfe, 0x9c, 0x0d, 0x22, 0xf9, 0xe9, 0x6c, 0xd2, 0x95, 0x3c,
+ 0x61, 0x04, 0xd7, 0x94, 0x32, 0x84, 0x88, 0x93, 0xb7, 0x50, 0xeb, 0x2c,
+ 0x2d, 0x73, 0x8c, 0x15, 0x7f, 0x2a, 0xd6, 0x72,
+};
+static const unsigned char kat2080_nonce[] = {
+ 0x11, 0x9f, 0x12, 0x04, 0xc0, 0xab, 0x08, 0x62, 0x29, 0x73, 0x5c, 0x03,
+ 0xcf, 0xaa, 0xd1, 0xe7,
+};
+static const unsigned char kat2080_persstr[] = {
+ 0x81, 0x1c, 0x74, 0x80, 0xaf, 0xe7, 0xd9, 0xac, 0xfd, 0x5d, 0x46, 0xd8,
+ 0x5d, 0x01, 0xc2, 0xaf, 0x4e, 0xc7, 0x80, 0x29, 0x48, 0xa0, 0x4d, 0x3f,
+ 0x2d, 0x6c, 0x2b, 0xe8, 0xed, 0x80, 0xf2, 0xfb,
+};
+static const unsigned char kat2080_entropyinreseed[] = {
+ 0x59, 0xc7, 0xe9, 0x4b, 0xec, 0xdf, 0x52, 0x34, 0xb6, 0x02, 0x90, 0x31,
+ 0x52, 0xea, 0xb2, 0x4e, 0xed, 0x5f, 0x84, 0x17, 0x59, 0xfd, 0x13, 0xa9,
+ 0xb0, 0xda, 0x4d, 0xdf, 0x14, 0x82, 0x11, 0x70,
+};
+static const unsigned char kat2080_addinreseed[] = {0};
+static const unsigned char kat2080_addin0[] = {0};
+static const unsigned char kat2080_addin1[] = {0};
+static const unsigned char kat2080_retbits[] = {
+ 0x8a, 0x2b, 0xda, 0xc0, 0xe3, 0xb9, 0xec, 0xab, 0x36, 0xf4, 0x95, 0xcd,
+ 0xc9, 0x2b, 0xfd, 0x0e, 0xb1, 0x97, 0x8a, 0xa6, 0x26, 0x04, 0xda, 0x0c,
+ 0xf5, 0x88, 0x4a, 0x02, 0x62, 0x12, 0x30, 0x04, 0x95, 0x8f, 0x07, 0xe7,
+ 0x0f, 0x33, 0x80, 0xde, 0x03, 0xa8, 0x38, 0x68, 0xf4, 0x31, 0xf8, 0xce,
+ 0xfa, 0xd7, 0xa1, 0x4b, 0x5a, 0x3d, 0x9c, 0x42, 0x54, 0xe5, 0x2f, 0x0c,
+ 0xe9, 0x91, 0xc0, 0xf1,
+};
+static const struct drbg_kat_pr_false kat2080_t = {
+ 9, kat2080_entropyin, kat2080_nonce, kat2080_persstr,
+ kat2080_entropyinreseed, kat2080_addinreseed, kat2080_addin0,
+ kat2080_addin1, kat2080_retbits
+};
+static const struct drbg_kat kat2080 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2080_t
+};
+
+static const unsigned char kat2081_entropyin[] = {
+ 0x0e, 0xa4, 0x75, 0x26, 0x1c, 0xad, 0x88, 0x91, 0x3c, 0x57, 0xc9, 0x8a,
+ 0xac, 0xcc, 0x03, 0x69, 0xba, 0x00, 0xe8, 0xb0, 0x67, 0x6d, 0x1b, 0xfb,
+ 0x5b, 0x30, 0xfc, 0x36, 0xb3, 0x8a, 0x4a, 0x1d,
+};
+static const unsigned char kat2081_nonce[] = {
+ 0x3d, 0xd1, 0x8e, 0x05, 0xb7, 0x63, 0xfa, 0x1c, 0xa3, 0x88, 0x1e, 0x7d,
+ 0x92, 0x85, 0x5c, 0x8e,
+};
+static const unsigned char kat2081_persstr[] = {
+ 0x1b, 0x95, 0xa4, 0xba, 0x83, 0x93, 0xe5, 0x2c, 0x94, 0x98, 0x27, 0x9e,
+ 0x8a, 0x00, 0x99, 0x01, 0x34, 0x28, 0xc2, 0x91, 0xd7, 0x0c, 0xce, 0x70,
+ 0xbe, 0xa7, 0xf9, 0x01, 0xa9, 0xb9, 0x28, 0x28,
+};
+static const unsigned char kat2081_entropyinreseed[] = {
+ 0xe8, 0xed, 0x16, 0x2d, 0xe3, 0xb5, 0x1a, 0x68, 0xe2, 0xcd, 0x8d, 0xf5,
+ 0x91, 0xb9, 0xc6, 0x22, 0x59, 0xd2, 0x4e, 0x31, 0x01, 0x2b, 0x79, 0x38,
+ 0xcd, 0x36, 0x8c, 0x1a, 0x53, 0x6b, 0xa9, 0xb3,
+};
+static const unsigned char kat2081_addinreseed[] = {0};
+static const unsigned char kat2081_addin0[] = {0};
+static const unsigned char kat2081_addin1[] = {0};
+static const unsigned char kat2081_retbits[] = {
+ 0x2c, 0x6c, 0xf1, 0x74, 0x7b, 0xda, 0xc8, 0xf3, 0x33, 0x51, 0xd6, 0x39,
+ 0x2d, 0xaf, 0x4a, 0x2b, 0x32, 0xf5, 0x42, 0x4b, 0x12, 0xf1, 0xfd, 0x80,
+ 0x96, 0xb6, 0x5b, 0x6a, 0x76, 0x39, 0x89, 0x17, 0xc4, 0x34, 0xff, 0xed,
+ 0xac, 0xdc, 0x6b, 0x2b, 0xe1, 0xaa, 0x4a, 0xd6, 0xdc, 0xda, 0xd1, 0x89,
+ 0x32, 0xb6, 0x38, 0xe3, 0xcb, 0x56, 0xde, 0xb7, 0x2e, 0xfd, 0x3b, 0x69,
+ 0xcf, 0xd1, 0xb0, 0xbc,
+};
+static const struct drbg_kat_pr_false kat2081_t = {
+ 10, kat2081_entropyin, kat2081_nonce, kat2081_persstr,
+ kat2081_entropyinreseed, kat2081_addinreseed, kat2081_addin0,
+ kat2081_addin1, kat2081_retbits
+};
+static const struct drbg_kat kat2081 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2081_t
+};
+
+static const unsigned char kat2082_entropyin[] = {
+ 0x21, 0x89, 0x37, 0x99, 0x01, 0x6c, 0xfb, 0xe5, 0x44, 0xd6, 0x63, 0x80,
+ 0x0d, 0x6e, 0xaa, 0xbc, 0x1d, 0x49, 0xfb, 0xe3, 0xe5, 0xbc, 0x4b, 0x95,
+ 0x84, 0x59, 0xcb, 0xe3, 0x01, 0xac, 0x67, 0x8b,
+};
+static const unsigned char kat2082_nonce[] = {
+ 0x60, 0x05, 0x98, 0x54, 0xb2, 0x34, 0xf1, 0x8b, 0xe1, 0x8c, 0x6e, 0x6e,
+ 0x32, 0xc6, 0x0d, 0x69,
+};
+static const unsigned char kat2082_persstr[] = {
+ 0xab, 0x61, 0xe4, 0x4f, 0x7a, 0xa3, 0x1c, 0x12, 0x41, 0xa2, 0xa4, 0x8c,
+ 0x33, 0x4d, 0x3f, 0xa9, 0x52, 0x03, 0xa2, 0xf2, 0x10, 0x2a, 0xfc, 0x29,
+ 0x09, 0xb6, 0x27, 0xf8, 0x3b, 0xd0, 0xeb, 0x0b,
+};
+static const unsigned char kat2082_entropyinreseed[] = {
+ 0x45, 0x6a, 0x7d, 0x56, 0x6b, 0xb4, 0x88, 0xaf, 0x9a, 0x80, 0x84, 0xe1,
+ 0x96, 0x1b, 0x61, 0x0d, 0x05, 0xcd, 0x7e, 0xa5, 0x73, 0x54, 0xb2, 0x0f,
+ 0x74, 0xc3, 0x08, 0x18, 0xab, 0xdf, 0x01, 0x1d,
+};
+static const unsigned char kat2082_addinreseed[] = {0};
+static const unsigned char kat2082_addin0[] = {0};
+static const unsigned char kat2082_addin1[] = {0};
+static const unsigned char kat2082_retbits[] = {
+ 0x64, 0x01, 0xc6, 0xaf, 0xe7, 0x34, 0x2a, 0xd9, 0x57, 0x45, 0x26, 0x95,
+ 0x80, 0xfd, 0x3f, 0xb1, 0xa5, 0x6c, 0x3c, 0x7d, 0x7f, 0x7d, 0x74, 0x7d,
+ 0x35, 0xe0, 0x95, 0x01, 0xc0, 0xef, 0x35, 0x9e, 0x1d, 0xbb, 0xe1, 0xe0,
+ 0xf5, 0x11, 0x34, 0x21, 0xf8, 0x89, 0xad, 0x64, 0xab, 0x6e, 0xe3, 0xbf,
+ 0xf2, 0x1e, 0x38, 0x66, 0x8f, 0x7e, 0xa1, 0x6a, 0x80, 0x0d, 0xd0, 0x21,
+ 0x79, 0x48, 0x5b, 0xb4,
+};
+static const struct drbg_kat_pr_false kat2082_t = {
+ 11, kat2082_entropyin, kat2082_nonce, kat2082_persstr,
+ kat2082_entropyinreseed, kat2082_addinreseed, kat2082_addin0,
+ kat2082_addin1, kat2082_retbits
+};
+static const struct drbg_kat kat2082 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2082_t
+};
+
+static const unsigned char kat2083_entropyin[] = {
+ 0xad, 0x02, 0xf7, 0xd2, 0x57, 0xda, 0x2a, 0x69, 0x3b, 0xb3, 0xc5, 0x44,
+ 0xc0, 0x66, 0xcd, 0xd7, 0x70, 0x29, 0xfe, 0xdf, 0x75, 0x7f, 0x42, 0x4c,
+ 0xe2, 0x12, 0x10, 0x3e, 0x83, 0x49, 0xcd, 0x4f,
+};
+static const unsigned char kat2083_nonce[] = {
+ 0x6e, 0xe3, 0xdd, 0x90, 0x9c, 0xbb, 0xcd, 0xc0, 0x46, 0x23, 0xfd, 0x63,
+ 0xe9, 0x15, 0x42, 0x87,
+};
+static const unsigned char kat2083_persstr[] = {
+ 0x7f, 0x9b, 0x52, 0x1d, 0x35, 0x7e, 0xf4, 0x86, 0xe3, 0x68, 0x27, 0xfd,
+ 0x0d, 0xc0, 0x30, 0xbc, 0x5b, 0x48, 0x5e, 0x7b, 0x44, 0x24, 0x45, 0x55,
+ 0xfb, 0xb9, 0x24, 0xb2, 0x0a, 0x88, 0xbc, 0x49,
+};
+static const unsigned char kat2083_entropyinreseed[] = {
+ 0xf5, 0xd1, 0x03, 0xa7, 0xb4, 0x83, 0xcf, 0xfe, 0xa2, 0xe0, 0x9e, 0x5a,
+ 0x5e, 0x84, 0x9c, 0x43, 0x6d, 0xf0, 0x8c, 0xb4, 0x1e, 0x17, 0x9e, 0x7d,
+ 0x2c, 0x85, 0x37, 0x05, 0x3e, 0xd5, 0xe7, 0x1a,
+};
+static const unsigned char kat2083_addinreseed[] = {0};
+static const unsigned char kat2083_addin0[] = {0};
+static const unsigned char kat2083_addin1[] = {0};
+static const unsigned char kat2083_retbits[] = {
+ 0x6c, 0x21, 0x27, 0x03, 0xa2, 0x78, 0x35, 0x80, 0xf2, 0xfc, 0xb4, 0xdc,
+ 0x48, 0x56, 0x13, 0x52, 0xcf, 0x4b, 0xf2, 0x3c, 0xf1, 0xca, 0x3f, 0x42,
+ 0x76, 0x29, 0x23, 0xb9, 0xfa, 0xd3, 0x52, 0xd2, 0xef, 0x63, 0x83, 0x67,
+ 0x60, 0x75, 0x67, 0x21, 0xa3, 0xcd, 0x91, 0x53, 0xd5, 0xdc, 0x3e, 0x96,
+ 0xa2, 0xd7, 0x2a, 0xcd, 0x5e, 0x6b, 0xd9, 0xd7, 0xa3, 0x60, 0xf9, 0xca,
+ 0x05, 0x10, 0x3c, 0x3f,
+};
+static const struct drbg_kat_pr_false kat2083_t = {
+ 12, kat2083_entropyin, kat2083_nonce, kat2083_persstr,
+ kat2083_entropyinreseed, kat2083_addinreseed, kat2083_addin0,
+ kat2083_addin1, kat2083_retbits
+};
+static const struct drbg_kat kat2083 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2083_t
+};
+
+static const unsigned char kat2084_entropyin[] = {
+ 0xa5, 0xcb, 0xff, 0x0d, 0x43, 0x58, 0x97, 0xec, 0xc9, 0xa7, 0x87, 0xf8,
+ 0x05, 0xbb, 0xdb, 0x26, 0xb7, 0xae, 0x87, 0x40, 0xf6, 0xb8, 0x4a, 0x46,
+ 0x51, 0x3e, 0xfb, 0x2c, 0xc9, 0x72, 0x04, 0xce,
+};
+static const unsigned char kat2084_nonce[] = {
+ 0x76, 0xa0, 0x6e, 0xd1, 0xed, 0xe2, 0x64, 0xa2, 0xac, 0x16, 0xa5, 0x80,
+ 0x50, 0xe1, 0x91, 0xf9,
+};
+static const unsigned char kat2084_persstr[] = {
+ 0x6f, 0x5c, 0xd7, 0x38, 0x55, 0xfa, 0x56, 0x96, 0x6d, 0x62, 0xd5, 0x04,
+ 0xe3, 0x21, 0x16, 0x64, 0xed, 0xaa, 0xff, 0x51, 0x81, 0x8e, 0x7a, 0x30,
+ 0x90, 0x4c, 0x3a, 0xe4, 0xb1, 0xa0, 0x4a, 0x51,
+};
+static const unsigned char kat2084_entropyinreseed[] = {
+ 0x42, 0xe6, 0xb1, 0x57, 0xab, 0x34, 0x19, 0x0f, 0x82, 0x60, 0xda, 0x99,
+ 0x69, 0xa6, 0xfa, 0x35, 0xec, 0x31, 0x3d, 0x04, 0x4f, 0xe5, 0xef, 0x96,
+ 0xf6, 0xec, 0x49, 0x7f, 0xe1, 0xe5, 0x26, 0xd8,
+};
+static const unsigned char kat2084_addinreseed[] = {0};
+static const unsigned char kat2084_addin0[] = {0};
+static const unsigned char kat2084_addin1[] = {0};
+static const unsigned char kat2084_retbits[] = {
+ 0x6d, 0x5d, 0xf4, 0xde, 0xc9, 0x97, 0xc5, 0x9a, 0x36, 0x30, 0xef, 0xdf,
+ 0xa9, 0xd7, 0x47, 0xca, 0x8c, 0x82, 0xa8, 0x63, 0x05, 0x61, 0x2d, 0x40,
+ 0x43, 0x91, 0x62, 0xad, 0x48, 0x5d, 0x47, 0xc9, 0x3e, 0xf4, 0x4b, 0x88,
+ 0x4f, 0x69, 0xdf, 0x3c, 0x4a, 0xb4, 0x0a, 0x2e, 0x4e, 0xa6, 0x3a, 0x45,
+ 0x51, 0x56, 0x41, 0x5f, 0x31, 0xa3, 0x1f, 0xdd, 0xb6, 0xb1, 0x8d, 0x9a,
+ 0xe1, 0xf3, 0xcc, 0x1a,
+};
+static const struct drbg_kat_pr_false kat2084_t = {
+ 13, kat2084_entropyin, kat2084_nonce, kat2084_persstr,
+ kat2084_entropyinreseed, kat2084_addinreseed, kat2084_addin0,
+ kat2084_addin1, kat2084_retbits
+};
+static const struct drbg_kat kat2084 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2084_t
+};
+
+static const unsigned char kat2085_entropyin[] = {
+ 0x92, 0x52, 0x17, 0x8c, 0x52, 0xd1, 0x12, 0x48, 0xa0, 0x56, 0x91, 0x2f,
+ 0x51, 0x00, 0xa3, 0xd7, 0x58, 0x3b, 0xa4, 0x1c, 0x91, 0xe5, 0x31, 0xb7,
+ 0x55, 0xa9, 0x3a, 0xc5, 0xe0, 0xc6, 0x1b, 0xde,
+};
+static const unsigned char kat2085_nonce[] = {
+ 0x9e, 0xe9, 0x82, 0xdf, 0xbd, 0x23, 0x60, 0x75, 0x35, 0x9a, 0x6f, 0x19,
+ 0x6b, 0xc0, 0x03, 0x9f,
+};
+static const unsigned char kat2085_persstr[] = {
+ 0x58, 0x62, 0x5e, 0x96, 0xe0, 0x3c, 0x78, 0x9f, 0x00, 0x65, 0x9e, 0xc4,
+ 0xcc, 0x7a, 0x13, 0xb3, 0x14, 0x04, 0xb9, 0x91, 0x6d, 0x8b, 0xb7, 0x6f,
+ 0x90, 0x9f, 0x60, 0xc0, 0x85, 0xfe, 0xd9, 0xa4,
+};
+static const unsigned char kat2085_entropyinreseed[] = {
+ 0xde, 0xaa, 0x87, 0x6e, 0x0c, 0x1b, 0xbd, 0xfd, 0x5d, 0xd7, 0xac, 0xf8,
+ 0x8b, 0x53, 0x20, 0xbf, 0x9b, 0xd1, 0xcc, 0x0a, 0x95, 0xc7, 0x46, 0x16,
+ 0xe6, 0x06, 0x6c, 0xff, 0xd9, 0x13, 0xdd, 0x7a,
+};
+static const unsigned char kat2085_addinreseed[] = {0};
+static const unsigned char kat2085_addin0[] = {0};
+static const unsigned char kat2085_addin1[] = {0};
+static const unsigned char kat2085_retbits[] = {
+ 0x34, 0x0a, 0xfc, 0x31, 0x54, 0xde, 0xff, 0xc2, 0xd8, 0xe2, 0xb9, 0xf9,
+ 0xbb, 0x1d, 0x1c, 0x69, 0x57, 0x6c, 0x6b, 0x35, 0x57, 0x73, 0xe2, 0x79,
+ 0xf0, 0x7e, 0x23, 0x26, 0x7e, 0xea, 0x72, 0xd3, 0xcd, 0x70, 0x67, 0xf0,
+ 0xc2, 0xdf, 0xa5, 0x84, 0xf0, 0xfd, 0x1f, 0xe8, 0xe6, 0x40, 0x05, 0x87,
+ 0x95, 0xbb, 0x24, 0xea, 0xb4, 0xe5, 0xda, 0x36, 0x14, 0x83, 0x48, 0x70,
+ 0x38, 0x02, 0xb5, 0xfb,
+};
+static const struct drbg_kat_pr_false kat2085_t = {
+ 14, kat2085_entropyin, kat2085_nonce, kat2085_persstr,
+ kat2085_entropyinreseed, kat2085_addinreseed, kat2085_addin0,
+ kat2085_addin1, kat2085_retbits
+};
+static const struct drbg_kat kat2085 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2085_t
+};
+
+static const unsigned char kat2086_entropyin[] = {
+ 0xfa, 0xfa, 0x5b, 0x9d, 0x43, 0xae, 0xfb, 0x06, 0x2a, 0xff, 0x96, 0x0c,
+ 0x01, 0xd1, 0xf7, 0x43, 0x9f, 0x8f, 0x00, 0xe5, 0xde, 0x1b, 0x23, 0x28,
+ 0xc8, 0xdd, 0xf1, 0xdf, 0xc6, 0xcc, 0x5f, 0x33,
+};
+static const unsigned char kat2086_nonce[] = {
+ 0x6c, 0xf9, 0xc5, 0x92, 0x5e, 0xfd, 0x88, 0x6c, 0xab, 0x50, 0xce, 0x85,
+ 0xbb, 0x07, 0x8b, 0xd3,
+};
+static const unsigned char kat2086_persstr[] = {
+ 0xbf, 0xc8, 0xc5, 0xeb, 0x0e, 0x41, 0x07, 0x7e, 0xb9, 0xfb, 0xb0, 0xaa,
+ 0x82, 0xbe, 0xd7, 0xa7, 0x69, 0x2a, 0x3a, 0xbf, 0x89, 0x7f, 0x00, 0xa0,
+ 0x21, 0x89, 0x7a, 0x01, 0x83, 0xd8, 0x59, 0x01,
+};
+static const unsigned char kat2086_entropyinreseed[] = {
+ 0x23, 0x47, 0x61, 0xb5, 0x8f, 0x9f, 0x79, 0x35, 0xed, 0x4e, 0x42, 0x01,
+ 0xa8, 0x76, 0xcf, 0x79, 0x64, 0x65, 0xf9, 0x0b, 0x94, 0xd8, 0x85, 0xe8,
+ 0xb7, 0x24, 0x89, 0x4a, 0x19, 0xa6, 0x72, 0x3f,
+};
+static const unsigned char kat2086_addinreseed[] = {
+ 0x43, 0xa4, 0xe4, 0x84, 0xd1, 0x47, 0xa9, 0x25, 0x52, 0x99, 0xeb, 0xb8,
+ 0x93, 0x45, 0xf2, 0xa2, 0xb9, 0xf3, 0x8b, 0xb5, 0x8f, 0xd2, 0x95, 0xd7,
+ 0x37, 0xe8, 0xac, 0x2f, 0x4f, 0x02, 0xa6, 0x76,
+};
+static const unsigned char kat2086_addin0[] = {
+ 0x0c, 0xe1, 0x84, 0x00, 0xcc, 0xf5, 0x10, 0xa3, 0x8f, 0xe7, 0xe2, 0xda,
+ 0x4a, 0xf7, 0xd9, 0x38, 0x74, 0xb1, 0x28, 0x2d, 0x8a, 0xa4, 0x90, 0x74,
+ 0xb7, 0xde, 0x92, 0x4a, 0xdb, 0x40, 0xdc, 0x3e,
+};
+static const unsigned char kat2086_addin1[] = {
+ 0x68, 0x74, 0x2f, 0x45, 0x43, 0xd1, 0xa2, 0x50, 0x66, 0x00, 0xf2, 0xae,
+ 0x8f, 0xb7, 0x18, 0xde, 0xcb, 0x2f, 0xa3, 0x0b, 0x24, 0xcc, 0x5b, 0xd6,
+ 0xd3, 0xda, 0xf0, 0x51, 0x1a, 0x9d, 0x91, 0xe8,
+};
+static const unsigned char kat2086_retbits[] = {
+ 0x96, 0x6d, 0xb3, 0xb1, 0xc9, 0x27, 0x15, 0xcb, 0x59, 0xac, 0x23, 0x86,
+ 0x0d, 0x2b, 0x13, 0x4b, 0x54, 0x11, 0x2a, 0x99, 0xb1, 0x16, 0xb8, 0xd4,
+ 0x98, 0x36, 0x6c, 0x29, 0x26, 0xf1, 0xcc, 0xda, 0x76, 0xba, 0x3f, 0x7d,
+ 0x7c, 0x28, 0x2d, 0x5e, 0xdc, 0x1f, 0x66, 0x4d, 0x22, 0x73, 0x8a, 0x45,
+ 0xd4, 0xbb, 0x24, 0x40, 0xe5, 0x5b, 0x6f, 0xd9, 0x2b, 0xe8, 0x9c, 0xa7,
+ 0xc1, 0xce, 0x87, 0x5d,
+};
+static const struct drbg_kat_pr_false kat2086_t = {
+ 0, kat2086_entropyin, kat2086_nonce, kat2086_persstr,
+ kat2086_entropyinreseed, kat2086_addinreseed, kat2086_addin0,
+ kat2086_addin1, kat2086_retbits
+};
+static const struct drbg_kat kat2086 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2086_t
+};
+
+static const unsigned char kat2087_entropyin[] = {
+ 0x28, 0x2f, 0x3f, 0x1e, 0xf1, 0x2e, 0x70, 0x53, 0x7e, 0xa5, 0x3f, 0x17,
+ 0x70, 0x57, 0x99, 0xfd, 0xcc, 0x00, 0x48, 0xa8, 0x8e, 0x2d, 0xcc, 0x7d,
+ 0xf2, 0x23, 0x25, 0x1a, 0x70, 0x9e, 0xf9, 0xf5,
+};
+static const unsigned char kat2087_nonce[] = {
+ 0x70, 0x12, 0xa2, 0xa5, 0xd0, 0x14, 0x12, 0x09, 0x57, 0x44, 0xed, 0x53,
+ 0x06, 0x81, 0x5d, 0x57,
+};
+static const unsigned char kat2087_persstr[] = {
+ 0x4d, 0xe7, 0x98, 0x31, 0x90, 0x3f, 0x0e, 0x24, 0xb9, 0x59, 0x62, 0x05,
+ 0x4e, 0xed, 0x06, 0x16, 0xa3, 0xa7, 0xa9, 0x45, 0xff, 0x2b, 0x9d, 0xe8,
+ 0xfd, 0x63, 0x1e, 0xa0, 0x8b, 0xae, 0xf3, 0xd0,
+};
+static const unsigned char kat2087_entropyinreseed[] = {
+ 0xac, 0xe3, 0x29, 0xd7, 0x9a, 0xf4, 0x81, 0xc1, 0xca, 0x9d, 0xc2, 0x88,
+ 0x1d, 0x73, 0x4a, 0x10, 0x56, 0x79, 0x48, 0xb5, 0x96, 0xb7, 0xbe, 0xeb,
+ 0x0f, 0xc5, 0x13, 0x84, 0x0e, 0x5c, 0x58, 0x3d,
+};
+static const unsigned char kat2087_addinreseed[] = {
+ 0x73, 0x21, 0xa3, 0x30, 0x52, 0x73, 0x69, 0x4e, 0xba, 0x15, 0xa9, 0xca,
+ 0x81, 0x09, 0xb9, 0x09, 0x98, 0x16, 0x27, 0xf6, 0x93, 0xa6, 0xf1, 0xa9,
+ 0x61, 0x6e, 0x63, 0xf8, 0xdb, 0xe4, 0xcb, 0x50,
+};
+static const unsigned char kat2087_addin0[] = {
+ 0x3b, 0xd4, 0x34, 0x98, 0x1f, 0x58, 0xfa, 0xf8, 0x21, 0x22, 0xe6, 0x12,
+ 0xae, 0x8a, 0x92, 0x5f, 0x6a, 0xbb, 0x6a, 0x2c, 0x95, 0x0a, 0x48, 0x61,
+ 0x10, 0x7e, 0xfa, 0x69, 0x92, 0x27, 0xc6, 0x6d,
+};
+static const unsigned char kat2087_addin1[] = {
+ 0x68, 0x36, 0x96, 0x5c, 0x88, 0x75, 0x27, 0x8c, 0xa7, 0x8e, 0xad, 0x9e,
+ 0x59, 0x62, 0x89, 0xb0, 0x71, 0x53, 0xf5, 0xc4, 0x2d, 0x99, 0x73, 0xf1,
+ 0xb8, 0xb5, 0x30, 0x24, 0x4a, 0xd1, 0xaa, 0x3d,
+};
+static const unsigned char kat2087_retbits[] = {
+ 0xc4, 0xce, 0x3a, 0x78, 0xf6, 0xbe, 0x46, 0x7a, 0x08, 0xed, 0x78, 0x3a,
+ 0x95, 0x7f, 0x63, 0x97, 0xfc, 0xc9, 0x05, 0xee, 0x83, 0x6d, 0xcf, 0xe0,
+ 0x47, 0xe2, 0x8a, 0xa7, 0xe9, 0x2d, 0x66, 0x98, 0x6f, 0x41, 0xf8, 0x6b,
+ 0xfc, 0xc7, 0xce, 0xef, 0x93, 0x23, 0xe0, 0x05, 0x39, 0x77, 0x27, 0x68,
+ 0x14, 0x27, 0x8c, 0x3d, 0x3b, 0x60, 0x6a, 0xe1, 0x19, 0x5d, 0xef, 0xdb,
+ 0xab, 0x71, 0x41, 0xac,
+};
+static const struct drbg_kat_pr_false kat2087_t = {
+ 1, kat2087_entropyin, kat2087_nonce, kat2087_persstr,
+ kat2087_entropyinreseed, kat2087_addinreseed, kat2087_addin0,
+ kat2087_addin1, kat2087_retbits
+};
+static const struct drbg_kat kat2087 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2087_t
+};
+
+static const unsigned char kat2088_entropyin[] = {
+ 0x97, 0xb9, 0x02, 0xf2, 0x88, 0x89, 0x29, 0xaa, 0x89, 0xb8, 0x75, 0x14,
+ 0xb1, 0x22, 0x1e, 0xeb, 0xa8, 0xed, 0xa1, 0x2d, 0x6c, 0x5a, 0x60, 0xd6,
+ 0x4a, 0xd1, 0x2d, 0x18, 0x57, 0x67, 0xfa, 0x51,
+};
+static const unsigned char kat2088_nonce[] = {
+ 0x8f, 0x07, 0x51, 0x05, 0xed, 0xf8, 0x6d, 0xa4, 0x0d, 0xb7, 0x6f, 0x5c,
+ 0xc9, 0x77, 0x69, 0x5a,
+};
+static const unsigned char kat2088_persstr[] = {
+ 0x1b, 0x05, 0x17, 0xee, 0x64, 0x0f, 0x1e, 0xc6, 0xbb, 0xfc, 0x4f, 0xac,
+ 0x43, 0x73, 0xe4, 0xc5, 0xee, 0x2c, 0x8e, 0x1f, 0x4a, 0x72, 0x1b, 0x41,
+ 0x48, 0x7a, 0x96, 0x8c, 0x5c, 0x05, 0x8c, 0x99,
+};
+static const unsigned char kat2088_entropyinreseed[] = {
+ 0x4b, 0x44, 0x08, 0x99, 0xf9, 0x8b, 0x9b, 0x71, 0xd0, 0xfc, 0x14, 0xa1,
+ 0x00, 0x30, 0x8f, 0x1e, 0x74, 0xb8, 0xbb, 0xe6, 0x1f, 0x60, 0xe4, 0x7f,
+ 0x88, 0x7e, 0x60, 0x43, 0x40, 0x53, 0x97, 0xa2,
+};
+static const unsigned char kat2088_addinreseed[] = {
+ 0x05, 0xd3, 0x31, 0x03, 0x39, 0x0b, 0xfb, 0xa0, 0x3e, 0xef, 0xfc, 0x14,
+ 0x03, 0x79, 0xa8, 0x1c, 0xfc, 0x84, 0x3d, 0x27, 0xa6, 0x25, 0xb5, 0x23,
+ 0xb4, 0x0e, 0x3d, 0xfd, 0xfd, 0xe9, 0xdd, 0xfd,
+};
+static const unsigned char kat2088_addin0[] = {
+ 0xde, 0x7a, 0x2f, 0x05, 0x70, 0x0c, 0x70, 0x71, 0x29, 0x08, 0xb2, 0xc7,
+ 0x45, 0xb4, 0xfb, 0x88, 0x5b, 0x2a, 0xe8, 0x79, 0x1f, 0x9a, 0x17, 0x7d,
+ 0xdf, 0x98, 0xab, 0x89, 0x34, 0x26, 0x6c, 0x6e,
+};
+static const unsigned char kat2088_addin1[] = {
+ 0x62, 0x33, 0x5d, 0x94, 0xb4, 0x67, 0x35, 0x26, 0xdb, 0x73, 0x2f, 0x12,
+ 0x37, 0xde, 0x72, 0x30, 0x8b, 0x32, 0xe7, 0xcf, 0xc7, 0xa1, 0x38, 0x71,
+ 0x6c, 0x4b, 0xaa, 0x61, 0x17, 0xb8, 0xfc, 0x99,
+};
+static const unsigned char kat2088_retbits[] = {
+ 0xef, 0xcd, 0x4f, 0xd2, 0x23, 0x2a, 0x48, 0x4e, 0xee, 0x54, 0x47, 0xa1,
+ 0x1e, 0xe2, 0xac, 0xfc, 0x45, 0x23, 0x77, 0x53, 0x4d, 0x45, 0x3f, 0x32,
+ 0x0b, 0xa7, 0x3b, 0xe4, 0xc4, 0xa1, 0x5e, 0xa1, 0x2d, 0xda, 0x11, 0x49,
+ 0xd8, 0x5f, 0x80, 0x50, 0xc7, 0xa2, 0x0f, 0xf6, 0x81, 0xb9, 0x96, 0xea,
+ 0x78, 0x64, 0x80, 0xd8, 0x2e, 0x88, 0x5d, 0xfc, 0xb6, 0x4a, 0xba, 0x55,
+ 0x8a, 0xaa, 0xcd, 0xba,
+};
+static const struct drbg_kat_pr_false kat2088_t = {
+ 2, kat2088_entropyin, kat2088_nonce, kat2088_persstr,
+ kat2088_entropyinreseed, kat2088_addinreseed, kat2088_addin0,
+ kat2088_addin1, kat2088_retbits
+};
+static const struct drbg_kat kat2088 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2088_t
+};
+
+static const unsigned char kat2089_entropyin[] = {
+ 0x15, 0x0a, 0x91, 0xb6, 0x3c, 0x28, 0xa2, 0x37, 0x4c, 0x06, 0xf7, 0x0a,
+ 0x08, 0xdb, 0x87, 0x4e, 0x58, 0x7e, 0x17, 0x2f, 0x36, 0xd2, 0xc8, 0x04,
+ 0x4f, 0x08, 0x58, 0xc6, 0x1b, 0x1a, 0xa9, 0xfd,
+};
+static const unsigned char kat2089_nonce[] = {
+ 0x34, 0x9b, 0x82, 0x28, 0xc2, 0x2d, 0xd7, 0x62, 0xaa, 0x86, 0x08, 0x08,
+ 0x09, 0xde, 0xda, 0x5f,
+};
+static const unsigned char kat2089_persstr[] = {
+ 0x8f, 0x32, 0xa7, 0x7d, 0xa1, 0xaf, 0x4a, 0xd1, 0x41, 0x96, 0x0f, 0x1a,
+ 0x69, 0xf4, 0xef, 0xc9, 0x90, 0x50, 0x73, 0xd4, 0x24, 0x3d, 0x9b, 0x0e,
+ 0xa0, 0x99, 0x6f, 0xf4, 0x5f, 0x24, 0xc7, 0x20,
+};
+static const unsigned char kat2089_entropyinreseed[] = {
+ 0x35, 0x8b, 0x5e, 0xdb, 0x24, 0xc9, 0xa9, 0x4d, 0x3b, 0x4b, 0x91, 0xd9,
+ 0x25, 0x16, 0x2c, 0x52, 0x43, 0x28, 0x03, 0xfb, 0x90, 0x26, 0x8a, 0xef,
+ 0xf8, 0x5e, 0x02, 0x7e, 0x47, 0xfe, 0xe9, 0x49,
+};
+static const unsigned char kat2089_addinreseed[] = {
+ 0x0e, 0x2e, 0xb1, 0x1e, 0x8f, 0x71, 0x2b, 0xb5, 0xf6, 0x22, 0x7a, 0x58,
+ 0x97, 0x88, 0xf8, 0x91, 0x1c, 0x83, 0x80, 0x21, 0x86, 0x6f, 0xb9, 0x3a,
+ 0x87, 0x50, 0x44, 0x13, 0x0d, 0x54, 0x9b, 0xae,
+};
+static const unsigned char kat2089_addin0[] = {
+ 0xd0, 0xd3, 0xd6, 0x02, 0xb9, 0xe4, 0x3d, 0x8a, 0x4b, 0xbd, 0xe7, 0x3e,
+ 0xe9, 0x3e, 0xec, 0xbe, 0x78, 0xdf, 0xa5, 0x34, 0xf1, 0xf7, 0x4b, 0xad,
+ 0xe7, 0xeb, 0x38, 0x66, 0x90, 0xf5, 0xb3, 0x03,
+};
+static const unsigned char kat2089_addin1[] = {
+ 0x2d, 0xe2, 0x4b, 0x49, 0x17, 0xb9, 0xd6, 0x42, 0x0e, 0x64, 0x6c, 0x31,
+ 0x41, 0x31, 0x0c, 0x45, 0xe4, 0x93, 0xc3, 0x1d, 0x53, 0x25, 0xa8, 0x5c,
+ 0x1a, 0x6f, 0x56, 0xdd, 0x87, 0x3a, 0xba, 0x20,
+};
+static const unsigned char kat2089_retbits[] = {
+ 0xb5, 0x29, 0x88, 0x89, 0x75, 0x8b, 0xcf, 0xec, 0x31, 0x83, 0x87, 0x5b,
+ 0x4d, 0x73, 0xf8, 0x4a, 0x28, 0xa7, 0x83, 0x93, 0xbe, 0x7e, 0xbd, 0x4b,
+ 0xa3, 0xd4, 0x2e, 0xfb, 0xa7, 0x4e, 0xd6, 0xf5, 0xa5, 0x85, 0xd9, 0xe6,
+ 0x77, 0x56, 0x85, 0x86, 0x2d, 0xc4, 0x5d, 0x37, 0xe1, 0x32, 0x20, 0x08,
+ 0x55, 0xf8, 0xf8, 0x64, 0x4b, 0x93, 0x59, 0xd8, 0x46, 0xd7, 0x4d, 0x00,
+ 0x08, 0x2a, 0xfd, 0xdd,
+};
+static const struct drbg_kat_pr_false kat2089_t = {
+ 3, kat2089_entropyin, kat2089_nonce, kat2089_persstr,
+ kat2089_entropyinreseed, kat2089_addinreseed, kat2089_addin0,
+ kat2089_addin1, kat2089_retbits
+};
+static const struct drbg_kat kat2089 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2089_t
+};
+
+static const unsigned char kat2090_entropyin[] = {
+ 0xce, 0x3c, 0x09, 0x74, 0x58, 0x3f, 0x1a, 0xa6, 0xd2, 0x4c, 0xa0, 0x12,
+ 0x85, 0x73, 0x44, 0x69, 0x4a, 0x01, 0x0d, 0xfc, 0x4a, 0xcc, 0x26, 0x05,
+ 0xd3, 0xd7, 0x3b, 0x12, 0xcf, 0x22, 0x8a, 0xe7,
+};
+static const unsigned char kat2090_nonce[] = {
+ 0xf8, 0x2b, 0xc8, 0xab, 0x0a, 0x55, 0x64, 0xe3, 0xde, 0x71, 0x26, 0x3a,
+ 0x8a, 0x5f, 0x94, 0x3b,
+};
+static const unsigned char kat2090_persstr[] = {
+ 0xde, 0x0b, 0xde, 0x27, 0x60, 0x40, 0x19, 0x72, 0x44, 0x35, 0x79, 0x5e,
+ 0xfd, 0x20, 0x4c, 0xb4, 0xc9, 0x39, 0x99, 0x52, 0x7c, 0x5b, 0x11, 0xc1,
+ 0x5d, 0x11, 0xe1, 0x1d, 0x3a, 0xa4, 0x82, 0xb7,
+};
+static const unsigned char kat2090_entropyinreseed[] = {
+ 0x1e, 0xf1, 0xc0, 0xf6, 0xf5, 0x00, 0x24, 0xcd, 0xda, 0xcb, 0xed, 0x96,
+ 0xf2, 0x90, 0x9c, 0xa0, 0xa2, 0x94, 0x6b, 0x7c, 0x9b, 0x87, 0x41, 0x7e,
+ 0xd5, 0xf6, 0x8c, 0x4f, 0x9c, 0x20, 0xf3, 0x67,
+};
+static const unsigned char kat2090_addinreseed[] = {
+ 0x5c, 0x44, 0x41, 0xf1, 0x1b, 0x37, 0x99, 0x5c, 0x9a, 0x6e, 0xd1, 0x71,
+ 0x01, 0xc3, 0xcd, 0x1f, 0x4b, 0x47, 0x3f, 0xb0, 0xdc, 0x9c, 0x13, 0x88,
+ 0xfa, 0xc6, 0xa1, 0x45, 0xab, 0x0b, 0xb7, 0xd2,
+};
+static const unsigned char kat2090_addin0[] = {
+ 0x5c, 0xd7, 0x4a, 0xa3, 0xc2, 0xc9, 0x40, 0x64, 0x18, 0x7b, 0x00, 0x80,
+ 0x8c, 0x18, 0xcb, 0x6e, 0xe4, 0x39, 0x58, 0xb9, 0xf8, 0xca, 0xab, 0x17,
+ 0xe7, 0x73, 0x52, 0xe7, 0x30, 0xc1, 0x01, 0xaf,
+};
+static const unsigned char kat2090_addin1[] = {
+ 0xde, 0x68, 0xa7, 0xf7, 0x5e, 0xf1, 0x8a, 0xbb, 0xb2, 0x46, 0x54, 0x39,
+ 0x84, 0xa2, 0x78, 0xa1, 0x1a, 0x6a, 0x37, 0xde, 0x68, 0x5a, 0x71, 0x5b,
+ 0x08, 0xa8, 0xa3, 0xe0, 0x79, 0xbb, 0x9e, 0xa8,
+};
+static const unsigned char kat2090_retbits[] = {
+ 0x1b, 0x34, 0x56, 0x82, 0x5f, 0xaa, 0x79, 0x8f, 0x77, 0x03, 0x18, 0x68,
+ 0x7b, 0xa6, 0x2d, 0xf8, 0x61, 0xa1, 0x07, 0x81, 0xb8, 0x50, 0xd3, 0x25,
+ 0x4b, 0x52, 0x81, 0x50, 0x20, 0x39, 0xcc, 0x0e, 0x73, 0xee, 0xb8, 0x5a,
+ 0x9c, 0x79, 0x31, 0x73, 0x41, 0x74, 0xeb, 0x3e, 0x08, 0x6b, 0x70, 0x49,
+ 0x1f, 0xd7, 0x35, 0xc3, 0x9f, 0x55, 0xe6, 0x7f, 0x92, 0x8d, 0xdf, 0xb4,
+ 0xe8, 0xec, 0xe3, 0xd0,
+};
+static const struct drbg_kat_pr_false kat2090_t = {
+ 4, kat2090_entropyin, kat2090_nonce, kat2090_persstr,
+ kat2090_entropyinreseed, kat2090_addinreseed, kat2090_addin0,
+ kat2090_addin1, kat2090_retbits
+};
+static const struct drbg_kat kat2090 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2090_t
+};
+
+static const unsigned char kat2091_entropyin[] = {
+ 0xf3, 0x45, 0x60, 0xff, 0x22, 0xfe, 0x4c, 0x09, 0x19, 0xca, 0xe7, 0x39,
+ 0x9b, 0xb8, 0xfc, 0x99, 0x22, 0x8e, 0xde, 0xb6, 0x52, 0x4b, 0xbc, 0x62,
+ 0x07, 0xed, 0xc6, 0x36, 0x8a, 0xad, 0xa0, 0xfc,
+};
+static const unsigned char kat2091_nonce[] = {
+ 0x39, 0x4b, 0x73, 0xda, 0x65, 0xab, 0x35, 0xcc, 0xba, 0xd6, 0x1a, 0xa3,
+ 0x01, 0x0d, 0x7a, 0xe0,
+};
+static const unsigned char kat2091_persstr[] = {
+ 0x4c, 0xb4, 0x2f, 0x76, 0x40, 0x81, 0x41, 0x5f, 0x1c, 0x34, 0x68, 0xf9,
+ 0x25, 0xf5, 0xe3, 0xc0, 0x1c, 0x31, 0x62, 0xd5, 0x52, 0x01, 0x7d, 0x9b,
+ 0x4c, 0xcc, 0x49, 0xa3, 0xac, 0x9a, 0x19, 0x31,
+};
+static const unsigned char kat2091_entropyinreseed[] = {
+ 0x2c, 0xdf, 0x1e, 0x13, 0x1f, 0xec, 0x0d, 0xe6, 0x53, 0xb7, 0x84, 0xe8,
+ 0x92, 0x38, 0x89, 0x86, 0xb2, 0xf2, 0x81, 0x77, 0xc4, 0xf5, 0xa7, 0x13,
+ 0x50, 0x17, 0xbf, 0x17, 0xda, 0x30, 0xd6, 0xf8,
+};
+static const unsigned char kat2091_addinreseed[] = {
+ 0x37, 0xc0, 0x3b, 0x05, 0x54, 0x28, 0x77, 0x8e, 0xfe, 0x9e, 0x2a, 0x49,
+ 0x78, 0x1b, 0x02, 0xca, 0x66, 0xaa, 0x0d, 0xc4, 0xc2, 0x74, 0x80, 0x01,
+ 0x09, 0x20, 0x3e, 0xda, 0x12, 0xa3, 0x42, 0x73,
+};
+static const unsigned char kat2091_addin0[] = {
+ 0x2b, 0x38, 0x12, 0x52, 0xd6, 0xad, 0x41, 0x93, 0x56, 0xe7, 0xd7, 0x78,
+ 0xaa, 0xf4, 0x0d, 0x0c, 0x1b, 0x7e, 0x7b, 0xa8, 0x86, 0x2f, 0x90, 0x75,
+ 0x67, 0x23, 0xe6, 0xab, 0x84, 0xba, 0xf0, 0xc8,
+};
+static const unsigned char kat2091_addin1[] = {
+ 0xd0, 0x36, 0xef, 0x8e, 0x08, 0x9c, 0x53, 0x52, 0xf8, 0x00, 0x7d, 0xed,
+ 0xbf, 0x49, 0x3d, 0xc3, 0x66, 0x2d, 0xbd, 0x47, 0x51, 0x52, 0x9d, 0x95,
+ 0xa6, 0x75, 0x5d, 0x3e, 0x5a, 0x27, 0xed, 0x80,
+};
+static const unsigned char kat2091_retbits[] = {
+ 0xa2, 0x83, 0x69, 0xdb, 0xde, 0xe9, 0xa8, 0x4b, 0xd0, 0xe5, 0x99, 0x7a,
+ 0xc1, 0x50, 0x58, 0x11, 0x5a, 0x22, 0xc9, 0xa3, 0x11, 0x9d, 0x24, 0x38,
+ 0xca, 0x86, 0xa7, 0x17, 0xb3, 0xe1, 0x60, 0xfe, 0x67, 0x50, 0xd2, 0x88,
+ 0xca, 0x73, 0xf3, 0xbb, 0x4a, 0x93, 0xdc, 0xd5, 0x37, 0x50, 0x26, 0x28,
+ 0xde, 0x0d, 0xcb, 0x75, 0xae, 0xfd, 0x19, 0xc7, 0xec, 0xff, 0x04, 0x44,
+ 0xf1, 0x9f, 0x78, 0x74,
+};
+static const struct drbg_kat_pr_false kat2091_t = {
+ 5, kat2091_entropyin, kat2091_nonce, kat2091_persstr,
+ kat2091_entropyinreseed, kat2091_addinreseed, kat2091_addin0,
+ kat2091_addin1, kat2091_retbits
+};
+static const struct drbg_kat kat2091 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2091_t
+};
+
+static const unsigned char kat2092_entropyin[] = {
+ 0xcc, 0x20, 0xf6, 0x7e, 0xef, 0x21, 0x9f, 0x30, 0xe5, 0x10, 0x8c, 0x0a,
+ 0x14, 0xaf, 0x05, 0x5a, 0x53, 0xb4, 0xa0, 0xe8, 0x80, 0x5c, 0x0a, 0xfb,
+ 0xb7, 0x96, 0x54, 0x67, 0xd5, 0x58, 0x1e, 0xef,
+};
+static const unsigned char kat2092_nonce[] = {
+ 0x60, 0xbb, 0xca, 0x8a, 0xbb, 0x53, 0x80, 0xe6, 0x2d, 0xa2, 0x6f, 0x8e,
+ 0xec, 0x80, 0x21, 0x2a,
+};
+static const unsigned char kat2092_persstr[] = {
+ 0xf9, 0x8d, 0x53, 0x7e, 0x64, 0xd3, 0x26, 0x3e, 0xe4, 0x1a, 0x2f, 0x1c,
+ 0x93, 0xdd, 0x76, 0x17, 0xd4, 0x57, 0xe0, 0x8a, 0x0d, 0x49, 0x04, 0x6b,
+ 0xc1, 0x74, 0x10, 0xec, 0xe7, 0xb1, 0x42, 0x7c,
+};
+static const unsigned char kat2092_entropyinreseed[] = {
+ 0x61, 0x45, 0x87, 0x08, 0x6c, 0xec, 0x14, 0x6f, 0xd1, 0x5c, 0x1c, 0x45,
+ 0x60, 0x23, 0x96, 0x17, 0x41, 0x35, 0x96, 0x06, 0x96, 0xbf, 0x78, 0x54,
+ 0x66, 0x0f, 0x50, 0x4d, 0xde, 0xb1, 0xfc, 0x03,
+};
+static const unsigned char kat2092_addinreseed[] = {
+ 0x43, 0x2a, 0xed, 0xc0, 0x93, 0xe9, 0xa3, 0xf5, 0xcf, 0xf3, 0x43, 0x37,
+ 0xf9, 0xd1, 0xf0, 0xb6, 0xb2, 0xf4, 0xd9, 0xe9, 0x55, 0x15, 0x6a, 0x55,
+ 0xff, 0xfc, 0x59, 0x17, 0x03, 0x87, 0x3a, 0xa7,
+};
+static const unsigned char kat2092_addin0[] = {
+ 0x13, 0xc3, 0x85, 0x0d, 0x8a, 0x13, 0xe2, 0x05, 0xa8, 0xe8, 0x16, 0xd3,
+ 0xee, 0xa3, 0x1b, 0x96, 0xc4, 0x71, 0xb8, 0xc2, 0x9a, 0xd0, 0x37, 0xd6,
+ 0x8c, 0xda, 0xf0, 0x53, 0x72, 0xf9, 0x82, 0x66,
+};
+static const unsigned char kat2092_addin1[] = {
+ 0xfe, 0x43, 0x11, 0xce, 0x3a, 0x9b, 0xf6, 0xe1, 0x05, 0xa0, 0x7a, 0x9f,
+ 0x6e, 0xbd, 0xae, 0xc8, 0x1f, 0xab, 0x96, 0x82, 0x05, 0xce, 0xf6, 0x41,
+ 0x56, 0xdb, 0x09, 0xf6, 0xfd, 0xce, 0x62, 0x84,
+};
+static const unsigned char kat2092_retbits[] = {
+ 0x98, 0xe0, 0xdc, 0xa2, 0x0d, 0x95, 0x6b, 0x4b, 0xe8, 0x0e, 0x62, 0xcd,
+ 0xc0, 0x3d, 0x5e, 0xa5, 0x45, 0x05, 0x70, 0x61, 0xe7, 0x2b, 0xf6, 0x06,
+ 0x05, 0x7d, 0xfc, 0xea, 0x0e, 0x0f, 0x48, 0x5b, 0x95, 0x55, 0x26, 0x38,
+ 0xd4, 0x4b, 0xee, 0xcc, 0x5c, 0xc6, 0xdb, 0x87, 0x6d, 0xff, 0x0b, 0xa9,
+ 0x5a, 0x0d, 0x15, 0x1a, 0xa0, 0xb7, 0x2f, 0x79, 0x9b, 0xfe, 0x49, 0xa9,
+ 0x3d, 0x86, 0xdd, 0xb9,
+};
+static const struct drbg_kat_pr_false kat2092_t = {
+ 6, kat2092_entropyin, kat2092_nonce, kat2092_persstr,
+ kat2092_entropyinreseed, kat2092_addinreseed, kat2092_addin0,
+ kat2092_addin1, kat2092_retbits
+};
+static const struct drbg_kat kat2092 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2092_t
+};
+
+static const unsigned char kat2093_entropyin[] = {
+ 0x09, 0xe4, 0xc1, 0xe0, 0xbc, 0x54, 0x01, 0x3b, 0xaa, 0x0f, 0x5f, 0x69,
+ 0x7c, 0xda, 0x89, 0x7a, 0x0f, 0xa4, 0x7c, 0x9a, 0x91, 0x85, 0xe2, 0xd0,
+ 0x34, 0x8a, 0x75, 0x66, 0x95, 0x76, 0x91, 0x43,
+};
+static const unsigned char kat2093_nonce[] = {
+ 0xc5, 0x92, 0xfa, 0xe4, 0xaa, 0xcc, 0x3e, 0x2f, 0x6a, 0x41, 0x7c, 0x5a,
+ 0xf6, 0xc5, 0xc0, 0x30,
+};
+static const unsigned char kat2093_persstr[] = {
+ 0x66, 0x02, 0x68, 0x0d, 0xd9, 0x37, 0xf7, 0xac, 0x34, 0xbc, 0xcc, 0x7b,
+ 0xa7, 0x79, 0x32, 0x9e, 0x37, 0xab, 0x46, 0xef, 0x70, 0xb3, 0x81, 0xdc,
+ 0x65, 0x71, 0xe0, 0x25, 0xe0, 0xea, 0x3a, 0x2e,
+};
+static const unsigned char kat2093_entropyinreseed[] = {
+ 0x45, 0xf2, 0xbd, 0x8e, 0xbc, 0x9b, 0x2f, 0x57, 0x74, 0xe9, 0x3d, 0xe0,
+ 0x01, 0xed, 0x97, 0xf2, 0x5f, 0x76, 0x51, 0x5d, 0x74, 0x82, 0xa5, 0x5e,
+ 0x18, 0x12, 0x94, 0x1f, 0x79, 0x5e, 0x97, 0xb7,
+};
+static const unsigned char kat2093_addinreseed[] = {
+ 0x58, 0xba, 0x0e, 0xda, 0x15, 0xdb, 0xf5, 0xb9, 0x0d, 0xef, 0x6d, 0xca,
+ 0xdd, 0xbf, 0xf8, 0x75, 0xda, 0x07, 0x89, 0x2d, 0x2b, 0xc3, 0xcc, 0x4b,
+ 0xef, 0xb5, 0x60, 0x89, 0x26, 0x28, 0x31, 0x82,
+};
+static const unsigned char kat2093_addin0[] = {
+ 0xa9, 0x0e, 0xb4, 0xec, 0xe1, 0xa1, 0x0a, 0x5b, 0x3e, 0xb4, 0x44, 0x77,
+ 0x0b, 0x9f, 0xae, 0x2d, 0xb9, 0x5b, 0x52, 0x4d, 0x72, 0x2a, 0x61, 0xfb,
+ 0x68, 0x1c, 0x8d, 0xe9, 0xc8, 0x88, 0xf3, 0xd2,
+};
+static const unsigned char kat2093_addin1[] = {
+ 0x77, 0xac, 0x3a, 0xe2, 0x46, 0xc4, 0x18, 0xba, 0x00, 0xfb, 0xf1, 0x11,
+ 0x0a, 0xac, 0x88, 0x37, 0x82, 0xfe, 0x89, 0x9b, 0x69, 0x7b, 0x83, 0x0f,
+ 0x72, 0x90, 0x49, 0x49, 0xa2, 0x31, 0xc7, 0x12,
+};
+static const unsigned char kat2093_retbits[] = {
+ 0x6a, 0x9c, 0x6e, 0x15, 0x55, 0x19, 0x94, 0x77, 0x4d, 0xe0, 0x94, 0x27,
+ 0x04, 0x60, 0x24, 0x88, 0x07, 0xef, 0xee, 0xb1, 0xb1, 0x6b, 0x7d, 0xff,
+ 0x10, 0x2e, 0xbc, 0x33, 0xf0, 0x43, 0xdc, 0xa3, 0xa6, 0x8d, 0x46, 0xec,
+ 0x55, 0xcc, 0xbd, 0x89, 0x1b, 0xf4, 0x09, 0x95, 0x99, 0xc1, 0x95, 0xfe,
+ 0x38, 0x68, 0x07, 0xf6, 0x4e, 0x61, 0x2d, 0x5c, 0xd5, 0x64, 0x96, 0x19,
+ 0x5a, 0x1b, 0xed, 0xe7,
+};
+static const struct drbg_kat_pr_false kat2093_t = {
+ 7, kat2093_entropyin, kat2093_nonce, kat2093_persstr,
+ kat2093_entropyinreseed, kat2093_addinreseed, kat2093_addin0,
+ kat2093_addin1, kat2093_retbits
+};
+static const struct drbg_kat kat2093 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2093_t
+};
+
+static const unsigned char kat2094_entropyin[] = {
+ 0x62, 0xcf, 0x2b, 0x15, 0x9e, 0x28, 0x72, 0x15, 0xe9, 0x63, 0xa2, 0x89,
+ 0xf3, 0x63, 0xc4, 0x10, 0xde, 0x2e, 0x19, 0xdd, 0xce, 0x44, 0xfa, 0xc9,
+ 0xe2, 0x6b, 0x7e, 0xd4, 0x4a, 0xd1, 0xf9, 0x71,
+};
+static const unsigned char kat2094_nonce[] = {
+ 0xc4, 0xe5, 0xb2, 0x21, 0xae, 0x8b, 0xca, 0xec, 0xcc, 0x34, 0x81, 0xf1,
+ 0xc5, 0x06, 0x38, 0xf5,
+};
+static const unsigned char kat2094_persstr[] = {
+ 0x14, 0x7f, 0x15, 0x24, 0xbe, 0xe0, 0xb0, 0x51, 0x26, 0x61, 0x11, 0x00,
+ 0xf7, 0x78, 0xe2, 0x23, 0x07, 0xca, 0x58, 0x93, 0xc5, 0x86, 0x8e, 0x13,
+ 0xc3, 0x41, 0x5d, 0x08, 0xc3, 0xf2, 0xd9, 0x98,
+};
+static const unsigned char kat2094_entropyinreseed[] = {
+ 0xba, 0x37, 0x05, 0xc6, 0xae, 0xb6, 0x6d, 0xd1, 0x27, 0x86, 0xb8, 0xe3,
+ 0x5d, 0x6e, 0x5a, 0xac, 0xd4, 0xc2, 0x03, 0x0a, 0x95, 0x09, 0x3a, 0x8e,
+ 0xb0, 0x8e, 0xcb, 0x06, 0xd5, 0xab, 0x87, 0x6f,
+};
+static const unsigned char kat2094_addinreseed[] = {
+ 0x32, 0x7e, 0x55, 0x80, 0xf4, 0xc9, 0xb3, 0x6f, 0x99, 0x94, 0x92, 0x74,
+ 0xb3, 0x91, 0xff, 0x1a, 0xc4, 0x65, 0xf1, 0xff, 0x30, 0x5d, 0x04, 0x4b,
+ 0x0c, 0x2e, 0x9d, 0x4f, 0xfc, 0x09, 0xf9, 0xf8,
+};
+static const unsigned char kat2094_addin0[] = {
+ 0xcd, 0x1b, 0x49, 0x35, 0x86, 0x98, 0x94, 0xfe, 0xe3, 0xca, 0x2e, 0x18,
+ 0x34, 0x16, 0xe4, 0x4b, 0xf0, 0x98, 0x23, 0x94, 0x62, 0xf9, 0xa5, 0xa4,
+ 0x35, 0x95, 0xae, 0x59, 0x27, 0xc4, 0x0d, 0x2d,
+};
+static const unsigned char kat2094_addin1[] = {
+ 0xa4, 0xe7, 0xb4, 0x7c, 0x9d, 0xe1, 0xf9, 0xd3, 0x63, 0x55, 0xe2, 0xfc,
+ 0x99, 0x20, 0x01, 0xa3, 0x72, 0x97, 0xa7, 0xca, 0xe7, 0x35, 0x2c, 0x27,
+ 0x2a, 0xf0, 0x19, 0x1a, 0x6f, 0x54, 0xbb, 0x2c,
+};
+static const unsigned char kat2094_retbits[] = {
+ 0x89, 0xaa, 0xe1, 0x70, 0xab, 0xce, 0x1e, 0x86, 0xea, 0x52, 0x75, 0xdd,
+ 0x8c, 0x96, 0x0d, 0xfe, 0x29, 0xba, 0xb5, 0x49, 0x92, 0xea, 0x01, 0x3e,
+ 0x82, 0xdc, 0x89, 0xd8, 0x1c, 0xae, 0xe9, 0x2e, 0x72, 0x0c, 0xad, 0x6f,
+ 0x26, 0x1a, 0xf2, 0xb2, 0x0b, 0xa7, 0xfb, 0xfb, 0xa1, 0xfc, 0x2f, 0x68,
+ 0x43, 0xdb, 0x82, 0xf9, 0x1a, 0x40, 0x4c, 0x08, 0xb2, 0x65, 0xdf, 0x06,
+ 0xf9, 0x5b, 0x6d, 0x4e,
+};
+static const struct drbg_kat_pr_false kat2094_t = {
+ 8, kat2094_entropyin, kat2094_nonce, kat2094_persstr,
+ kat2094_entropyinreseed, kat2094_addinreseed, kat2094_addin0,
+ kat2094_addin1, kat2094_retbits
+};
+static const struct drbg_kat kat2094 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2094_t
+};
+
+static const unsigned char kat2095_entropyin[] = {
+ 0x8b, 0x61, 0xac, 0x65, 0xfe, 0x61, 0xa6, 0x2d, 0x1c, 0x14, 0x2d, 0xd4,
+ 0x43, 0xa2, 0xa9, 0x39, 0x11, 0xb5, 0xe3, 0x5c, 0x66, 0x26, 0xf8, 0xc4,
+ 0xd0, 0xc9, 0x1b, 0x81, 0xdd, 0x2f, 0xe5, 0x59,
+};
+static const unsigned char kat2095_nonce[] = {
+ 0x05, 0xc2, 0xa2, 0x11, 0x9a, 0xdb, 0xc0, 0x96, 0x95, 0x1a, 0x35, 0xd9,
+ 0x22, 0xcb, 0x7e, 0xd0,
+};
+static const unsigned char kat2095_persstr[] = {
+ 0x12, 0xf1, 0xc2, 0xd9, 0xde, 0xbe, 0xb8, 0x9a, 0xb6, 0x40, 0xbd, 0x0f,
+ 0xdd, 0x0b, 0xfb, 0x3e, 0x9f, 0x35, 0x6c, 0x22, 0xe9, 0x92, 0x51, 0x76,
+ 0xd0, 0x0d, 0x3b, 0x1d, 0x79, 0xf5, 0x9e, 0x41,
+};
+static const unsigned char kat2095_entropyinreseed[] = {
+ 0x98, 0x76, 0x30, 0xfe, 0x62, 0x21, 0x90, 0xd0, 0x99, 0x3e, 0x79, 0xdc,
+ 0x0a, 0x69, 0x4d, 0x35, 0x8a, 0xdf, 0x09, 0x75, 0x99, 0x3c, 0xc1, 0x6e,
+ 0x7b, 0xde, 0x35, 0xcb, 0x9b, 0xaa, 0xd8, 0x42,
+};
+static const unsigned char kat2095_addinreseed[] = {
+ 0x3d, 0x68, 0x64, 0xd4, 0xd0, 0x76, 0x52, 0xfe, 0xab, 0x92, 0x69, 0xad,
+ 0xad, 0xf1, 0xa7, 0x59, 0xe3, 0xf8, 0x72, 0x3a, 0xc0, 0xcf, 0x3b, 0x05,
+ 0xb8, 0x46, 0x39, 0x8e, 0xb2, 0x1b, 0xab, 0xac,
+};
+static const unsigned char kat2095_addin0[] = {
+ 0xd8, 0x90, 0x61, 0x4d, 0x33, 0xbe, 0x07, 0xdf, 0x37, 0x80, 0x64, 0x4e,
+ 0xe4, 0x79, 0x38, 0x9a, 0x7a, 0xe7, 0x88, 0x7e, 0x28, 0xc2, 0x5d, 0x14,
+ 0xf7, 0x66, 0xf2, 0x89, 0xc7, 0x5f, 0x2c, 0x22,
+};
+static const unsigned char kat2095_addin1[] = {
+ 0xd2, 0xb0, 0x29, 0xa2, 0xdd, 0x16, 0x6f, 0xc1, 0x75, 0xc6, 0x7d, 0xf9,
+ 0xc9, 0x8b, 0x4e, 0x16, 0x90, 0x0b, 0x1d, 0xc0, 0x20, 0xfa, 0x11, 0x39,
+ 0x33, 0xab, 0xa6, 0xc7, 0x72, 0x09, 0xe3, 0x30,
+};
+static const unsigned char kat2095_retbits[] = {
+ 0x14, 0x62, 0xb7, 0x9b, 0xe2, 0x5c, 0xc4, 0x8b, 0x7b, 0xe8, 0x1f, 0x44,
+ 0xdf, 0x5f, 0xbb, 0x21, 0xba, 0xff, 0x03, 0x7e, 0xa8, 0x6e, 0x2a, 0x34,
+ 0x44, 0x09, 0xcb, 0x48, 0x31, 0x57, 0xef, 0x84, 0x85, 0x9d, 0x34, 0x6f,
+ 0x5c, 0x92, 0x50, 0xba, 0x45, 0x39, 0xa8, 0xd5, 0x98, 0x34, 0xb1, 0x56,
+ 0x73, 0xd4, 0x30, 0x36, 0x52, 0xf5, 0xc6, 0xd2, 0x73, 0x10, 0x6e, 0x05,
+ 0x3c, 0x57, 0x8d, 0x02,
+};
+static const struct drbg_kat_pr_false kat2095_t = {
+ 9, kat2095_entropyin, kat2095_nonce, kat2095_persstr,
+ kat2095_entropyinreseed, kat2095_addinreseed, kat2095_addin0,
+ kat2095_addin1, kat2095_retbits
+};
+static const struct drbg_kat kat2095 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2095_t
+};
+
+static const unsigned char kat2096_entropyin[] = {
+ 0x13, 0x99, 0x16, 0xe7, 0x4a, 0x74, 0x05, 0xa7, 0x0c, 0x09, 0xe3, 0x1b,
+ 0x65, 0x11, 0xe8, 0x5f, 0xb5, 0xf3, 0x87, 0xbc, 0xdb, 0xfc, 0x1c, 0x5e,
+ 0x4d, 0x93, 0xb7, 0x83, 0xda, 0x94, 0x98, 0x4a,
+};
+static const unsigned char kat2096_nonce[] = {
+ 0x70, 0x9d, 0xba, 0x3d, 0xe6, 0xf7, 0x99, 0xed, 0x20, 0xa8, 0xfc, 0xc7,
+ 0x1c, 0xa7, 0xeb, 0x47,
+};
+static const unsigned char kat2096_persstr[] = {
+ 0x08, 0x2f, 0xf0, 0xb5, 0x2f, 0x79, 0xf2, 0x8f, 0x63, 0x56, 0x86, 0xbf,
+ 0x9a, 0xd0, 0x41, 0x5a, 0x94, 0xea, 0x2a, 0x40, 0x39, 0x14, 0x4c, 0x7e,
+ 0x3d, 0xce, 0xf8, 0xe3, 0xa8, 0xd6, 0xcb, 0x4e,
+};
+static const unsigned char kat2096_entropyinreseed[] = {
+ 0x72, 0x09, 0x7f, 0xf8, 0x3c, 0x04, 0x66, 0xc1, 0x8d, 0xc6, 0x64, 0xbc,
+ 0xa1, 0xf2, 0x17, 0xbf, 0xd4, 0x67, 0xbd, 0x38, 0xa8, 0xaa, 0xc1, 0x94,
+ 0x9f, 0x49, 0x96, 0xe1, 0x96, 0x70, 0xb8, 0x7f,
+};
+static const unsigned char kat2096_addinreseed[] = {
+ 0x92, 0xea, 0xf3, 0x48, 0xc8, 0x20, 0xcc, 0x30, 0xd0, 0x0b, 0x9d, 0xd6,
+ 0xb4, 0x02, 0xd0, 0x76, 0x15, 0x8e, 0xe9, 0x57, 0xb1, 0x9e, 0x27, 0xe5,
+ 0xde, 0xe3, 0xea, 0x48, 0x2b, 0xce, 0x0a, 0x77,
+};
+static const unsigned char kat2096_addin0[] = {
+ 0x6b, 0x9a, 0xf2, 0x7c, 0xf7, 0x94, 0xba, 0xe5, 0x6e, 0x69, 0xd0, 0xe8,
+ 0x79, 0xcb, 0xdb, 0x82, 0xfa, 0xc1, 0xe3, 0x72, 0xd0, 0x0a, 0x31, 0x58,
+ 0xff, 0x73, 0xd4, 0xcc, 0x76, 0x59, 0x01, 0x4a,
+};
+static const unsigned char kat2096_addin1[] = {
+ 0xdd, 0x18, 0xc8, 0x13, 0x9f, 0xe9, 0xbd, 0x59, 0xef, 0xd5, 0x36, 0x02,
+ 0x24, 0x16, 0xf0, 0xe0, 0x38, 0x0f, 0x5f, 0x1d, 0xfd, 0x5e, 0x3e, 0x6a,
+ 0x19, 0x54, 0xa7, 0x30, 0xf0, 0x07, 0x08, 0xc7,
+};
+static const unsigned char kat2096_retbits[] = {
+ 0xdd, 0xf3, 0xe7, 0xae, 0x96, 0x7d, 0xd3, 0xa1, 0xee, 0xfb, 0x82, 0x8a,
+ 0xf4, 0x20, 0x17, 0x05, 0x98, 0xd4, 0x64, 0xd3, 0xc2, 0xf7, 0x8d, 0xba,
+ 0xbf, 0x10, 0x17, 0x6e, 0x90, 0xbf, 0xda, 0xc2, 0xd0, 0x0d, 0x9a, 0xea,
+ 0x42, 0x47, 0xdb, 0x05, 0x35, 0x81, 0xd0, 0xb5, 0x40, 0xa1, 0xfc, 0xe0,
+ 0x92, 0x9c, 0x6f, 0x24, 0xdd, 0x64, 0x7a, 0x6e, 0x86, 0xcb, 0x8c, 0x42,
+ 0x2b, 0x56, 0x90, 0x29,
+};
+static const struct drbg_kat_pr_false kat2096_t = {
+ 10, kat2096_entropyin, kat2096_nonce, kat2096_persstr,
+ kat2096_entropyinreseed, kat2096_addinreseed, kat2096_addin0,
+ kat2096_addin1, kat2096_retbits
+};
+static const struct drbg_kat kat2096 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2096_t
+};
+
+static const unsigned char kat2097_entropyin[] = {
+ 0xd2, 0x5d, 0x0a, 0x11, 0x8d, 0x9d, 0x3f, 0x62, 0x37, 0xb6, 0xe5, 0x6f,
+ 0x5e, 0xac, 0xff, 0x1b, 0xb9, 0xd5, 0xdf, 0x8c, 0xb0, 0x94, 0x5c, 0x14,
+ 0xf0, 0x9c, 0x4b, 0x6d, 0x77, 0x8b, 0xe3, 0x9a,
+};
+static const unsigned char kat2097_nonce[] = {
+ 0x74, 0x55, 0x73, 0xc0, 0x91, 0x79, 0x34, 0xcd, 0xd6, 0x15, 0xa6, 0xa2,
+ 0x1d, 0xd6, 0x8b, 0xb9,
+};
+static const unsigned char kat2097_persstr[] = {
+ 0xbe, 0xc1, 0xbc, 0xe1, 0x32, 0xaa, 0x26, 0xae, 0x4b, 0x44, 0xc9, 0xdb,
+ 0xb9, 0x1a, 0xf4, 0xb9, 0xbd, 0xc6, 0xa0, 0xc9, 0x0e, 0x4a, 0x7a, 0x97,
+ 0x8f, 0x36, 0xdc, 0xa0, 0xff, 0x17, 0x27, 0xdd,
+};
+static const unsigned char kat2097_entropyinreseed[] = {
+ 0x7e, 0xe5, 0x65, 0xbe, 0x81, 0xb5, 0xb6, 0xba, 0x0d, 0x60, 0xf2, 0xd3,
+ 0x33, 0x90, 0x2b, 0x45, 0xb4, 0x35, 0x58, 0x1c, 0x5b, 0xb4, 0xa8, 0x19,
+ 0x03, 0x0c, 0x15, 0x1b, 0x51, 0xb6, 0x1c, 0x35,
+};
+static const unsigned char kat2097_addinreseed[] = {
+ 0xb1, 0xbf, 0xd9, 0xef, 0x0b, 0x54, 0x01, 0x10, 0x7f, 0xca, 0xfc, 0x1a,
+ 0x5f, 0x15, 0xac, 0x63, 0xfc, 0x58, 0x86, 0xef, 0xae, 0xbb, 0x1d, 0xea,
+ 0x9c, 0x8e, 0xae, 0xc4, 0xa4, 0xca, 0x27, 0x14,
+};
+static const unsigned char kat2097_addin0[] = {
+ 0xd8, 0x7d, 0x68, 0x33, 0x81, 0x5e, 0x5a, 0xaf, 0xda, 0xc7, 0x17, 0x91,
+ 0xb2, 0x82, 0x79, 0x53, 0x52, 0x76, 0x72, 0xd3, 0xc6, 0x92, 0xb4, 0x2c,
+ 0x6a, 0x22, 0x40, 0xd8, 0x47, 0x1a, 0x5c, 0x95,
+};
+static const unsigned char kat2097_addin1[] = {
+ 0xef, 0x92, 0xf4, 0x6e, 0x53, 0xea, 0x61, 0xbd, 0xe1, 0x75, 0xe6, 0x66,
+ 0xe9, 0x7c, 0x62, 0xf5, 0xa4, 0xb1, 0xf3, 0x76, 0xf9, 0x01, 0xa7, 0x98,
+ 0x41, 0x1e, 0xf9, 0x05, 0x59, 0x46, 0x00, 0x79,
+};
+static const unsigned char kat2097_retbits[] = {
+ 0x27, 0xfa, 0x85, 0xc2, 0xeb, 0xd4, 0x31, 0x02, 0x5b, 0x1e, 0x1b, 0x66,
+ 0x98, 0xb5, 0xf0, 0x8f, 0x05, 0x9a, 0x65, 0xc0, 0x93, 0xfc, 0x3c, 0xc9,
+ 0x6e, 0x49, 0xac, 0x74, 0x39, 0x04, 0x04, 0xdc, 0xe0, 0x0c, 0x34, 0x56,
+ 0xd5, 0x97, 0xd3, 0xc5, 0x95, 0x99, 0xfb, 0x7d, 0x85, 0x6a, 0xe5, 0x5a,
+ 0x04, 0xb5, 0xc8, 0xb2, 0x82, 0x00, 0x84, 0x7b, 0xb9, 0x53, 0xc3, 0x3e,
+ 0xf5, 0x56, 0xeb, 0x1c,
+};
+static const struct drbg_kat_pr_false kat2097_t = {
+ 11, kat2097_entropyin, kat2097_nonce, kat2097_persstr,
+ kat2097_entropyinreseed, kat2097_addinreseed, kat2097_addin0,
+ kat2097_addin1, kat2097_retbits
+};
+static const struct drbg_kat kat2097 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2097_t
+};
+
+static const unsigned char kat2098_entropyin[] = {
+ 0x05, 0x74, 0x6b, 0x55, 0xef, 0x89, 0x70, 0xe3, 0x5f, 0x37, 0x9c, 0x58,
+ 0xf6, 0xba, 0x8f, 0x8c, 0x21, 0xd3, 0xc4, 0xe2, 0x41, 0xf9, 0xa8, 0x88,
+ 0x0f, 0x81, 0x1d, 0xfa, 0xd0, 0x85, 0xdc, 0xcf,
+};
+static const unsigned char kat2098_nonce[] = {
+ 0xc5, 0x2f, 0x6c, 0xc4, 0x31, 0x19, 0xb0, 0x8f, 0xdc, 0xa9, 0x95, 0xc7,
+ 0x15, 0xcb, 0xee, 0x15,
+};
+static const unsigned char kat2098_persstr[] = {
+ 0xbf, 0xc1, 0x39, 0xcd, 0xc8, 0xb4, 0x6c, 0x4c, 0xef, 0xc1, 0x38, 0x3a,
+ 0x9f, 0x42, 0x89, 0xbd, 0x4f, 0x79, 0xc1, 0x6a, 0x46, 0xa6, 0x4c, 0x87,
+ 0xfb, 0x99, 0x1e, 0x91, 0x02, 0xd4, 0x1d, 0xd2,
+};
+static const unsigned char kat2098_entropyinreseed[] = {
+ 0x78, 0xfe, 0x98, 0x1d, 0xd9, 0x59, 0xe9, 0xdd, 0x55, 0x73, 0xa6, 0x9d,
+ 0xa8, 0xd6, 0x38, 0xc4, 0x4f, 0xd8, 0xe9, 0xa3, 0x7c, 0x34, 0x63, 0x27,
+ 0xd6, 0xdb, 0x1a, 0xed, 0x04, 0x28, 0x7a, 0x17,
+};
+static const unsigned char kat2098_addinreseed[] = {
+ 0xf1, 0x66, 0x83, 0xa7, 0xfa, 0x56, 0xfe, 0x77, 0xfe, 0x2e, 0xc5, 0xe0,
+ 0xfc, 0xfc, 0x8c, 0x73, 0x06, 0xac, 0x96, 0x40, 0xe9, 0x0e, 0x12, 0xd0,
+ 0xf8, 0x90, 0x18, 0x84, 0x35, 0x98, 0x07, 0x66,
+};
+static const unsigned char kat2098_addin0[] = {
+ 0xfc, 0x5a, 0x69, 0xe0, 0x79, 0x89, 0x62, 0xc7, 0x22, 0x97, 0xf0, 0x18,
+ 0xfc, 0x6a, 0x85, 0x16, 0x1e, 0x97, 0xa8, 0x02, 0x9b, 0x66, 0x4c, 0x78,
+ 0x9e, 0xb9, 0x95, 0x04, 0x8f, 0xf3, 0x02, 0x06,
+};
+static const unsigned char kat2098_addin1[] = {
+ 0xe2, 0x69, 0xaa, 0x79, 0x16, 0xf5, 0x48, 0x44, 0x52, 0x09, 0xa8, 0x75,
+ 0xda, 0x37, 0x84, 0x2e, 0xc9, 0xea, 0xa4, 0x6b, 0x30, 0x13, 0xf6, 0xee,
+ 0x08, 0x7b, 0xf1, 0x13, 0x07, 0x92, 0x31, 0x29,
+};
+static const unsigned char kat2098_retbits[] = {
+ 0xbf, 0x53, 0xfe, 0x5c, 0x0d, 0x48, 0x5e, 0x2c, 0xb8, 0x4d, 0xaa, 0xad,
+ 0x94, 0x99, 0x1f, 0x3c, 0x1a, 0x1c, 0x7e, 0x5f, 0xcd, 0xda, 0x3c, 0xfe,
+ 0xe9, 0x7a, 0x63, 0x2f, 0x44, 0x43, 0x97, 0x10, 0xe8, 0x3d, 0x15, 0x80,
+ 0x0a, 0xb3, 0x5d, 0x6d, 0x6c, 0x22, 0x05, 0xb3, 0xf4, 0x23, 0xa4, 0xd6,
+ 0x8a, 0x2b, 0x36, 0xc3, 0x24, 0x97, 0xf2, 0x48, 0xe5, 0xbe, 0x80, 0xef,
+ 0xd7, 0x2f, 0xb1, 0xc1,
+};
+static const struct drbg_kat_pr_false kat2098_t = {
+ 12, kat2098_entropyin, kat2098_nonce, kat2098_persstr,
+ kat2098_entropyinreseed, kat2098_addinreseed, kat2098_addin0,
+ kat2098_addin1, kat2098_retbits
+};
+static const struct drbg_kat kat2098 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2098_t
+};
+
+static const unsigned char kat2099_entropyin[] = {
+ 0x78, 0x82, 0xb2, 0xa4, 0x43, 0x94, 0xf3, 0x73, 0xc2, 0x40, 0xf1, 0x59,
+ 0x82, 0x59, 0x2c, 0xc5, 0x14, 0x4e, 0xa0, 0x99, 0xd6, 0x9a, 0x6d, 0xa3,
+ 0xdd, 0xd5, 0x31, 0xf4, 0x98, 0x44, 0xd0, 0xc7,
+};
+static const unsigned char kat2099_nonce[] = {
+ 0xbf, 0x39, 0xee, 0xa3, 0x14, 0x93, 0xf3, 0x56, 0x55, 0xa7, 0xb4, 0x75,
+ 0xe7, 0x5f, 0x4a, 0xb8,
+};
+static const unsigned char kat2099_persstr[] = {
+ 0x76, 0xc6, 0x0c, 0x2f, 0x17, 0x1d, 0x5d, 0x35, 0x67, 0xdc, 0xf4, 0x39,
+ 0x77, 0x8c, 0xe3, 0xaa, 0x92, 0x0c, 0x04, 0x46, 0x23, 0x70, 0xda, 0xb2,
+ 0x7e, 0xd1, 0x17, 0x5b, 0x17, 0xdc, 0x3b, 0x1c,
+};
+static const unsigned char kat2099_entropyinreseed[] = {
+ 0x9b, 0x04, 0xf2, 0xa8, 0xcd, 0x91, 0xf0, 0x45, 0x34, 0x44, 0x04, 0xc1,
+ 0x38, 0x9b, 0x73, 0xc1, 0x72, 0x84, 0xfb, 0x80, 0xe3, 0xd2, 0x32, 0x80,
+ 0xb4, 0x07, 0xa3, 0x3b, 0xef, 0x91, 0xa8, 0xaf,
+};
+static const unsigned char kat2099_addinreseed[] = {
+ 0x6a, 0xfd, 0x74, 0xbb, 0xaa, 0x06, 0x20, 0x63, 0x8d, 0x49, 0xb6, 0x86,
+ 0x31, 0xdb, 0x75, 0x1e, 0x61, 0x20, 0xb1, 0x17, 0x1e, 0xdf, 0x8a, 0x4b,
+ 0xb3, 0x29, 0xde, 0xcd, 0xca, 0x35, 0x05, 0xb0,
+};
+static const unsigned char kat2099_addin0[] = {
+ 0x01, 0x05, 0x9b, 0x5e, 0xf0, 0xfa, 0xa0, 0x1d, 0x1e, 0x7a, 0x8d, 0x04,
+ 0xa2, 0x02, 0x8f, 0xe0, 0xb9, 0x30, 0x7b, 0xb1, 0xdc, 0x19, 0xff, 0x05,
+ 0x49, 0xa1, 0xac, 0xaa, 0x69, 0xd4, 0x98, 0x97,
+};
+static const unsigned char kat2099_addin1[] = {
+ 0x06, 0xe8, 0x6c, 0x7f, 0x79, 0xa2, 0xcb, 0x16, 0xe6, 0x36, 0xcf, 0x4d,
+ 0x77, 0x8c, 0x10, 0xf6, 0x1f, 0x9e, 0xd7, 0xe2, 0x4c, 0xd7, 0xfe, 0x92,
+ 0x13, 0x44, 0x7f, 0x01, 0x90, 0xc3, 0x08, 0x0e,
+};
+static const unsigned char kat2099_retbits[] = {
+ 0x9a, 0xbd, 0xc0, 0x6e, 0x5a, 0x7a, 0xbf, 0xb7, 0x45, 0x1c, 0xc2, 0x6a,
+ 0xe4, 0x7d, 0xf1, 0x4d, 0x33, 0xde, 0xc8, 0xf7, 0x92, 0x3a, 0x9d, 0x35,
+ 0x73, 0xe5, 0xd3, 0xfc, 0x1f, 0x35, 0x4b, 0x48, 0x0d, 0x83, 0x83, 0xdb,
+ 0xe2, 0xe9, 0xb7, 0xb7, 0x34, 0x60, 0x38, 0xb9, 0xa5, 0xbd, 0x33, 0x07,
+ 0xf8, 0xb5, 0x6d, 0x9d, 0xd6, 0x19, 0x7b, 0x92, 0xc8, 0x0e, 0x11, 0xe3,
+ 0xc1, 0x6b, 0x4a, 0x84,
+};
+static const struct drbg_kat_pr_false kat2099_t = {
+ 13, kat2099_entropyin, kat2099_nonce, kat2099_persstr,
+ kat2099_entropyinreseed, kat2099_addinreseed, kat2099_addin0,
+ kat2099_addin1, kat2099_retbits
+};
+static const struct drbg_kat kat2099 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2099_t
+};
+
+static const unsigned char kat2100_entropyin[] = {
+ 0x4c, 0x4e, 0xbf, 0x43, 0xe2, 0x1c, 0x24, 0x29, 0x94, 0x75, 0x81, 0x8a,
+ 0xbc, 0x84, 0xfd, 0xd5, 0x34, 0xeb, 0xd9, 0xe6, 0x5b, 0x61, 0x08, 0x42,
+ 0x8d, 0xb8, 0xf9, 0xa5, 0x49, 0xd5, 0x0d, 0x9d,
+};
+static const unsigned char kat2100_nonce[] = {
+ 0x50, 0xfa, 0x19, 0x03, 0x94, 0x29, 0xd9, 0x57, 0xd3, 0x47, 0x42, 0x36,
+ 0x6c, 0x8a, 0x07, 0xfe,
+};
+static const unsigned char kat2100_persstr[] = {
+ 0x6d, 0xe8, 0x3c, 0x16, 0xf9, 0x10, 0x70, 0xe6, 0xe3, 0x01, 0xda, 0x2e,
+ 0x18, 0xd5, 0x5b, 0xa2, 0xad, 0x77, 0xec, 0x05, 0x4b, 0x27, 0x06, 0xfc,
+ 0xea, 0x03, 0x2c, 0xf4, 0x9b, 0x0d, 0xa9, 0xe5,
+};
+static const unsigned char kat2100_entropyinreseed[] = {
+ 0x3e, 0x42, 0x75, 0x2a, 0x39, 0xd1, 0x55, 0x18, 0x64, 0xf0, 0x18, 0x7f,
+ 0x35, 0xe3, 0x03, 0x30, 0x18, 0x49, 0x89, 0x84, 0xe4, 0x96, 0xf8, 0xe4,
+ 0xff, 0xa9, 0x1b, 0xde, 0x1c, 0x35, 0x5e, 0x81,
+};
+static const unsigned char kat2100_addinreseed[] = {
+ 0x9a, 0x11, 0x10, 0x9a, 0x33, 0x27, 0xb3, 0xeb, 0x22, 0xc2, 0x0c, 0x74,
+ 0xca, 0xd7, 0x46, 0x47, 0xbe, 0xd3, 0xd0, 0x22, 0x0f, 0xab, 0x4f, 0x6f,
+ 0x2c, 0x13, 0xc9, 0xac, 0x37, 0x8a, 0xbd, 0xdf,
+};
+static const unsigned char kat2100_addin0[] = {
+ 0x30, 0x8e, 0xa9, 0xfd, 0x62, 0x9b, 0x01, 0x94, 0xaf, 0xf1, 0x55, 0xea,
+ 0x40, 0x6d, 0x68, 0x04, 0x7e, 0x7d, 0xa4, 0x00, 0x55, 0x92, 0x85, 0x7c,
+ 0xb8, 0xad, 0xe4, 0x04, 0x47, 0x80, 0x71, 0xa3,
+};
+static const unsigned char kat2100_addin1[] = {
+ 0x89, 0x1a, 0x8b, 0x0a, 0xbf, 0x78, 0xeb, 0x7e, 0xae, 0x64, 0x69, 0x0e,
+ 0x48, 0x85, 0x7c, 0xde, 0x9d, 0xa4, 0xaf, 0x41, 0x5d, 0xff, 0x59, 0xfd,
+ 0xed, 0x63, 0x05, 0xc5, 0x7e, 0xf3, 0xd8, 0x33,
+};
+static const unsigned char kat2100_retbits[] = {
+ 0x85, 0x97, 0xc5, 0xc2, 0xe5, 0xd6, 0x3d, 0xba, 0xed, 0x95, 0xac, 0xef,
+ 0x7b, 0xb4, 0x15, 0x36, 0xfc, 0x36, 0x2b, 0x0f, 0xbd, 0x18, 0x78, 0x0f,
+ 0xdf, 0xb6, 0xf1, 0x25, 0xa9, 0x7d, 0xb0, 0xa0, 0xed, 0x94, 0xa8, 0x93,
+ 0x43, 0x17, 0xd8, 0x0c, 0x93, 0xb1, 0x4c, 0xb3, 0x60, 0x1f, 0x45, 0x11,
+ 0xa2, 0xd8, 0xdb, 0xdc, 0xbb, 0x32, 0x4f, 0x9e, 0x90, 0x75, 0x97, 0x8d,
+ 0x5c, 0x9a, 0x4f, 0x21,
+};
+static const struct drbg_kat_pr_false kat2100_t = {
+ 14, kat2100_entropyin, kat2100_nonce, kat2100_persstr,
+ kat2100_entropyinreseed, kat2100_addinreseed, kat2100_addin0,
+ kat2100_addin1, kat2100_retbits
+};
+static const struct drbg_kat kat2100 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2100_t
+};
+
+static const unsigned char kat2101_entropyin[] = {
+ 0xd5, 0x55, 0x91, 0x02, 0xcf, 0x8f, 0x23, 0x4a, 0x89, 0xb6, 0xc4, 0x8c,
+ 0xbf, 0x47, 0x3b, 0x15, 0x72, 0xa7, 0xd0, 0xc3, 0x42, 0xd7, 0xb6, 0x1a,
+ 0xdd, 0xe3, 0xd6, 0xa0, 0x12, 0x4d, 0x39, 0x91,
+};
+static const unsigned char kat2101_nonce[] = {
+ 0x5b, 0xe9, 0x48, 0xd0, 0x54, 0xbb, 0x66, 0xe1, 0x76, 0xb9, 0x3f, 0xa8,
+ 0x48, 0xda, 0x0f, 0x51,
+};
+static const unsigned char kat2101_persstr[] = {0};
+static const unsigned char kat2101_entropyinreseed[] = {
+ 0x8b, 0xd5, 0x44, 0xef, 0x23, 0x9b, 0xe9, 0x8f, 0xf3, 0x15, 0x26, 0x1a,
+ 0xd3, 0xa3, 0xe2, 0x3a, 0x84, 0x00, 0xf1, 0xeb, 0xdc, 0xca, 0x65, 0xe0,
+ 0xf4, 0x6c, 0x7c, 0x66, 0x1f, 0xc4, 0x21, 0xa6,
+};
+static const unsigned char kat2101_addinreseed[] = {0};
+static const unsigned char kat2101_addin0[] = {0};
+static const unsigned char kat2101_addin1[] = {0};
+static const unsigned char kat2101_retbits[] = {
+ 0xe1, 0xbd, 0xd0, 0xbd, 0xb4, 0xd5, 0x1b, 0x01, 0x0b, 0x11, 0x1e, 0x90,
+ 0x88, 0xdf, 0x56, 0x2d, 0x21, 0x6c, 0xa7, 0x37, 0x14, 0x09, 0xd7, 0x29,
+ 0xf9, 0x52, 0x50, 0xe8, 0x10, 0x0f, 0x97, 0x53, 0xa6, 0x00, 0x99, 0xa4,
+ 0x94, 0x08, 0xbb, 0x00, 0x65, 0xf9, 0x9d, 0x59, 0xdc, 0xe5, 0x08, 0x1b,
+ 0xd6, 0x7c, 0xeb, 0xd5, 0x4c, 0x2b, 0x21, 0xfb, 0xf3, 0x51, 0x84, 0xf2,
+ 0x6d, 0x1c, 0x47, 0x06,
+};
+static const struct drbg_kat_pr_false kat2101_t = {
+ 0, kat2101_entropyin, kat2101_nonce, kat2101_persstr,
+ kat2101_entropyinreseed, kat2101_addinreseed, kat2101_addin0,
+ kat2101_addin1, kat2101_retbits
+};
+static const struct drbg_kat kat2101 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2101_t
+};
+
+static const unsigned char kat2102_entropyin[] = {
+ 0x6b, 0x9d, 0xad, 0xcd, 0x05, 0xb1, 0xf2, 0xb4, 0x49, 0x33, 0x55, 0xec,
+ 0x62, 0x1b, 0xdb, 0xb0, 0xeb, 0xb6, 0x79, 0x52, 0x33, 0x7f, 0x3d, 0x37,
+ 0x23, 0x96, 0x31, 0x97, 0x77, 0x47, 0x7a, 0x70,
+};
+static const unsigned char kat2102_nonce[] = {
+ 0x34, 0xe6, 0x2e, 0x1c, 0x2e, 0x74, 0x1b, 0x4f, 0xd7, 0x4b, 0x79, 0x9c,
+ 0x3f, 0x6f, 0xd9, 0xc1,
+};
+static const unsigned char kat2102_persstr[] = {0};
+static const unsigned char kat2102_entropyinreseed[] = {
+ 0x24, 0xa9, 0xfc, 0x63, 0x93, 0xc8, 0xc3, 0xaf, 0x6b, 0xa2, 0xec, 0xe5,
+ 0x11, 0x87, 0xd7, 0x29, 0x80, 0xf4, 0x0a, 0xd6, 0x01, 0xf0, 0x39, 0x54,
+ 0x35, 0xc5, 0x4e, 0xda, 0xc6, 0x42, 0x68, 0x1f,
+};
+static const unsigned char kat2102_addinreseed[] = {0};
+static const unsigned char kat2102_addin0[] = {0};
+static const unsigned char kat2102_addin1[] = {0};
+static const unsigned char kat2102_retbits[] = {
+ 0xd2, 0xba, 0xa4, 0x59, 0x67, 0x61, 0x7b, 0x7d, 0x9a, 0x50, 0x56, 0xfa,
+ 0x8b, 0x84, 0x3d, 0x9f, 0x5c, 0x72, 0xb7, 0x7e, 0xd9, 0x51, 0xa1, 0xa4,
+ 0xe4, 0x3f, 0x2e, 0x88, 0xa6, 0x32, 0x32, 0xbc, 0xf1, 0xcf, 0xb2, 0x27,
+ 0x18, 0x86, 0x8a, 0x6d, 0x14, 0x2a, 0xf2, 0x0d, 0x23, 0x4a, 0x0b, 0x4a,
+ 0x29, 0xf5, 0xf1, 0x52, 0xd7, 0x2a, 0xe6, 0x0b, 0x9e, 0xb8, 0x68, 0x95,
+ 0x3c, 0x0d, 0x46, 0xad,
+};
+static const struct drbg_kat_pr_false kat2102_t = {
+ 1, kat2102_entropyin, kat2102_nonce, kat2102_persstr,
+ kat2102_entropyinreseed, kat2102_addinreseed, kat2102_addin0,
+ kat2102_addin1, kat2102_retbits
+};
+static const struct drbg_kat kat2102 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2102_t
+};
+
+static const unsigned char kat2103_entropyin[] = {
+ 0x55, 0xc4, 0x65, 0xf2, 0x79, 0x86, 0x0a, 0xe0, 0xa3, 0x0b, 0x37, 0x4e,
+ 0x54, 0x20, 0xb5, 0x8f, 0x5c, 0x2f, 0xbb, 0x55, 0x79, 0x28, 0x15, 0x5b,
+ 0xc0, 0x49, 0x40, 0x4c, 0x71, 0x7d, 0x01, 0x48,
+};
+static const unsigned char kat2103_nonce[] = {
+ 0xd4, 0x13, 0x7d, 0x0c, 0x64, 0xfd, 0x93, 0x20, 0x57, 0xc9, 0x9e, 0x9c,
+ 0x48, 0x8b, 0xc9, 0xe9,
+};
+static const unsigned char kat2103_persstr[] = {0};
+static const unsigned char kat2103_entropyinreseed[] = {
+ 0xd0, 0x97, 0x64, 0x62, 0x80, 0x26, 0x28, 0xc6, 0xed, 0x63, 0x20, 0xf6,
+ 0xd8, 0x85, 0x21, 0x22, 0x8c, 0xc6, 0x2e, 0xaf, 0xd4, 0xa8, 0xe1, 0x49,
+ 0x84, 0xaa, 0xcd, 0x0a, 0x30, 0xb2, 0x1b, 0x1c,
+};
+static const unsigned char kat2103_addinreseed[] = {0};
+static const unsigned char kat2103_addin0[] = {0};
+static const unsigned char kat2103_addin1[] = {0};
+static const unsigned char kat2103_retbits[] = {
+ 0xc1, 0x40, 0x68, 0x12, 0x25, 0x2b, 0x57, 0xe7, 0x93, 0xce, 0x57, 0x13,
+ 0x2f, 0x0b, 0xf4, 0xb7, 0xe7, 0x86, 0xa2, 0xb9, 0x6b, 0xa2, 0x84, 0xd7,
+ 0x69, 0x17, 0x28, 0x8f, 0x0c, 0x79, 0xb5, 0xf5, 0x2c, 0x59, 0x1b, 0xef,
+ 0x9b, 0x12, 0x31, 0xf9, 0x82, 0xe1, 0x42, 0xaa, 0xe6, 0xe0, 0xcf, 0x63,
+ 0xbf, 0xf0, 0xe5, 0x4a, 0x1c, 0x89, 0x34, 0x5f, 0x59, 0x1f, 0xe5, 0x6d,
+ 0x5a, 0x79, 0x5f, 0x95,
+};
+static const struct drbg_kat_pr_false kat2103_t = {
+ 2, kat2103_entropyin, kat2103_nonce, kat2103_persstr,
+ kat2103_entropyinreseed, kat2103_addinreseed, kat2103_addin0,
+ kat2103_addin1, kat2103_retbits
+};
+static const struct drbg_kat kat2103 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2103_t
+};
+
+static const unsigned char kat2104_entropyin[] = {
+ 0x40, 0x71, 0x95, 0x2b, 0x5c, 0x08, 0xad, 0xa3, 0x47, 0xc7, 0xad, 0x5e,
+ 0xca, 0x73, 0x10, 0x96, 0x3d, 0x08, 0x86, 0xc4, 0xf3, 0x07, 0x67, 0x69,
+ 0xc5, 0xce, 0xb7, 0x32, 0x98, 0x58, 0x61, 0xc6,
+};
+static const unsigned char kat2104_nonce[] = {
+ 0xcc, 0x2d, 0xd3, 0x39, 0x35, 0x09, 0xb4, 0xbb, 0x25, 0x42, 0xd2, 0xb6,
+ 0x96, 0x10, 0xd4, 0x9e,
+};
+static const unsigned char kat2104_persstr[] = {0};
+static const unsigned char kat2104_entropyinreseed[] = {
+ 0xbf, 0x9c, 0x1a, 0x5b, 0x5d, 0x9b, 0x7c, 0xe8, 0xf9, 0xe5, 0x0c, 0x62,
+ 0xda, 0xef, 0xef, 0x19, 0x04, 0x19, 0x05, 0x52, 0xae, 0x4a, 0xbc, 0x22,
+ 0x2f, 0x8d, 0xe8, 0x65, 0xd3, 0xe3, 0xee, 0x0d,
+};
+static const unsigned char kat2104_addinreseed[] = {0};
+static const unsigned char kat2104_addin0[] = {0};
+static const unsigned char kat2104_addin1[] = {0};
+static const unsigned char kat2104_retbits[] = {
+ 0x24, 0xfb, 0x48, 0x3f, 0xb7, 0xc9, 0xff, 0x58, 0xe2, 0xdc, 0x90, 0x0d,
+ 0x63, 0x34, 0xd3, 0xa3, 0xb6, 0x2d, 0x26, 0xea, 0x74, 0xe6, 0x06, 0xb6,
+ 0xdc, 0x7a, 0x9b, 0x1e, 0xb5, 0x07, 0x9f, 0xfa, 0x02, 0x00, 0xd4, 0xf9,
+ 0x47, 0x95, 0xe1, 0xb2, 0xae, 0xb5, 0x8a, 0x48, 0x11, 0x48, 0xf2, 0x48,
+ 0x32, 0xa8, 0x29, 0x92, 0x16, 0xea, 0x9c, 0x17, 0x24, 0x27, 0x4e, 0xcf,
+ 0xe2, 0xed, 0x8d, 0x2f,
+};
+static const struct drbg_kat_pr_false kat2104_t = {
+ 3, kat2104_entropyin, kat2104_nonce, kat2104_persstr,
+ kat2104_entropyinreseed, kat2104_addinreseed, kat2104_addin0,
+ kat2104_addin1, kat2104_retbits
+};
+static const struct drbg_kat kat2104 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2104_t
+};
+
+static const unsigned char kat2105_entropyin[] = {
+ 0x8b, 0x1d, 0xbf, 0x30, 0x9e, 0x22, 0xd7, 0xa7, 0x92, 0xfa, 0x89, 0x8b,
+ 0x23, 0xdb, 0x77, 0xc0, 0x73, 0x38, 0xc5, 0xb5, 0xa9, 0x0b, 0x89, 0xde,
+ 0x54, 0x14, 0xb3, 0xd8, 0x5b, 0xac, 0x85, 0x81,
+};
+static const unsigned char kat2105_nonce[] = {
+ 0xdf, 0x1c, 0xc9, 0xe0, 0x0d, 0xae, 0x20, 0x2a, 0xf1, 0x31, 0xe8, 0x10,
+ 0x10, 0x44, 0x32, 0x73,
+};
+static const unsigned char kat2105_persstr[] = {0};
+static const unsigned char kat2105_entropyinreseed[] = {
+ 0xfa, 0x1f, 0xc8, 0xff, 0x6a, 0xec, 0xf7, 0xca, 0x00, 0xf3, 0x18, 0x0e,
+ 0x94, 0xfc, 0xcb, 0xb0, 0x55, 0xe3, 0xa2, 0xaf, 0x28, 0xc2, 0x7f, 0x66,
+ 0xea, 0xab, 0xb8, 0x13, 0x51, 0x43, 0x0b, 0x08,
+};
+static const unsigned char kat2105_addinreseed[] = {0};
+static const unsigned char kat2105_addin0[] = {0};
+static const unsigned char kat2105_addin1[] = {0};
+static const unsigned char kat2105_retbits[] = {
+ 0x5d, 0x34, 0x78, 0x50, 0x40, 0xd4, 0xfd, 0xeb, 0x85, 0x8a, 0xb1, 0xca,
+ 0x7c, 0x4b, 0xff, 0x23, 0x60, 0x1f, 0xdf, 0xd9, 0x1f, 0xe0, 0x03, 0xe5,
+ 0x79, 0xe1, 0x14, 0xa2, 0xe2, 0xa8, 0xf2, 0x90, 0xe6, 0xc4, 0x2b, 0x20,
+ 0xc8, 0x23, 0x22, 0xdc, 0xa0, 0xf4, 0xc9, 0xab, 0xb6, 0x34, 0x95, 0x4d,
+ 0x59, 0x6d, 0x1d, 0x1b, 0xd1, 0x19, 0x37, 0x34, 0x19, 0x83, 0x52, 0x15,
+ 0x2e, 0x4e, 0xb8, 0x17,
+};
+static const struct drbg_kat_pr_false kat2105_t = {
+ 4, kat2105_entropyin, kat2105_nonce, kat2105_persstr,
+ kat2105_entropyinreseed, kat2105_addinreseed, kat2105_addin0,
+ kat2105_addin1, kat2105_retbits
+};
+static const struct drbg_kat kat2105 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2105_t
+};
+
+static const unsigned char kat2106_entropyin[] = {
+ 0xa9, 0x46, 0xbe, 0xb3, 0x8c, 0x95, 0xb6, 0x3b, 0xb7, 0x11, 0xf0, 0x43,
+ 0xb0, 0x49, 0xed, 0x94, 0xcb, 0x7d, 0x1e, 0x08, 0x01, 0x85, 0x44, 0xa8,
+ 0xfa, 0xfd, 0x27, 0x53, 0x13, 0x87, 0x2a, 0x75,
+};
+static const unsigned char kat2106_nonce[] = {
+ 0xc8, 0x58, 0x20, 0x6d, 0xca, 0x84, 0x3b, 0x65, 0xad, 0x9e, 0x50, 0xa6,
+ 0x3e, 0xbc, 0x32, 0xbd,
+};
+static const unsigned char kat2106_persstr[] = {0};
+static const unsigned char kat2106_entropyinreseed[] = {
+ 0x2d, 0x0f, 0xc4, 0x58, 0x35, 0x42, 0xc4, 0xe9, 0x23, 0x14, 0x82, 0xf6,
+ 0x6a, 0x52, 0x28, 0x46, 0xbc, 0xdc, 0xb2, 0x81, 0xd1, 0x6e, 0xb0, 0x79,
+ 0x50, 0xa8, 0xa8, 0x59, 0x5b, 0x20, 0x0b, 0x9f,
+};
+static const unsigned char kat2106_addinreseed[] = {0};
+static const unsigned char kat2106_addin0[] = {0};
+static const unsigned char kat2106_addin1[] = {0};
+static const unsigned char kat2106_retbits[] = {
+ 0x2b, 0xbe, 0xa1, 0x6d, 0x11, 0x0e, 0x85, 0x35, 0xfb, 0xa8, 0x9f, 0x4a,
+ 0x9c, 0xec, 0x48, 0x2c, 0x87, 0xd9, 0x99, 0x98, 0x2f, 0x6b, 0x05, 0xc1,
+ 0x5c, 0x4f, 0x4b, 0xcb, 0x74, 0x0d, 0x1d, 0x43, 0xb9, 0x0f, 0xb7, 0x62,
+ 0xaa, 0x8b, 0x50, 0x6a, 0xfa, 0x6d, 0x4c, 0x8b, 0x96, 0x76, 0xe3, 0xbc,
+ 0xee, 0xb6, 0x3d, 0xb9, 0x22, 0x45, 0x22, 0x7c, 0x73, 0x66, 0xaa, 0x96,
+ 0x97, 0x0c, 0xe8, 0xee,
+};
+static const struct drbg_kat_pr_false kat2106_t = {
+ 5, kat2106_entropyin, kat2106_nonce, kat2106_persstr,
+ kat2106_entropyinreseed, kat2106_addinreseed, kat2106_addin0,
+ kat2106_addin1, kat2106_retbits
+};
+static const struct drbg_kat kat2106 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2106_t
+};
+
+static const unsigned char kat2107_entropyin[] = {
+ 0xa7, 0xfd, 0xa1, 0x96, 0xa7, 0x0f, 0x5b, 0xce, 0x96, 0x15, 0x4f, 0x88,
+ 0xd7, 0xa5, 0x13, 0x7b, 0x17, 0x83, 0x3a, 0x43, 0x5f, 0x04, 0x2a, 0x16,
+ 0x6d, 0x55, 0x50, 0x4e, 0xc5, 0x98, 0xb2, 0xa5,
+};
+static const unsigned char kat2107_nonce[] = {
+ 0xff, 0x4e, 0x6e, 0x41, 0xb0, 0x72, 0x0a, 0xa7, 0x2c, 0x34, 0x93, 0xb3,
+ 0xf2, 0x07, 0xc2, 0x58,
+};
+static const unsigned char kat2107_persstr[] = {0};
+static const unsigned char kat2107_entropyinreseed[] = {
+ 0xea, 0x04, 0xe6, 0x0f, 0xc4, 0xff, 0x30, 0x9d, 0x05, 0x34, 0xb7, 0xff,
+ 0xb5, 0xb1, 0xa0, 0x54, 0x99, 0x32, 0x6b, 0xaf, 0x5e, 0x0d, 0x57, 0xfc,
+ 0xeb, 0xd3, 0x2b, 0xe6, 0xee, 0x50, 0x8c, 0xcc,
+};
+static const unsigned char kat2107_addinreseed[] = {0};
+static const unsigned char kat2107_addin0[] = {0};
+static const unsigned char kat2107_addin1[] = {0};
+static const unsigned char kat2107_retbits[] = {
+ 0xb6, 0x24, 0xe0, 0x59, 0x49, 0x36, 0xec, 0xc5, 0x76, 0xae, 0xd1, 0x06,
+ 0xfa, 0xcf, 0x68, 0x40, 0x12, 0x58, 0x0b, 0x5c, 0xd7, 0x50, 0x2c, 0x16,
+ 0x25, 0xad, 0x6e, 0x03, 0x23, 0xf6, 0x4e, 0xff, 0x8b, 0x91, 0x76, 0xce,
+ 0xbd, 0xd1, 0xf6, 0xab, 0x7f, 0x39, 0x9a, 0x4b, 0x71, 0xb8, 0xa9, 0x10,
+ 0xf9, 0x12, 0xe1, 0x2e, 0x71, 0x45, 0xbb, 0xb0, 0xbb, 0x47, 0x94, 0x10,
+ 0x66, 0xcc, 0x7a, 0xd5,
+};
+static const struct drbg_kat_pr_false kat2107_t = {
+ 6, kat2107_entropyin, kat2107_nonce, kat2107_persstr,
+ kat2107_entropyinreseed, kat2107_addinreseed, kat2107_addin0,
+ kat2107_addin1, kat2107_retbits
+};
+static const struct drbg_kat kat2107 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2107_t
+};
+
+static const unsigned char kat2108_entropyin[] = {
+ 0x59, 0x70, 0x11, 0x52, 0x79, 0x8c, 0x85, 0xd2, 0x0e, 0xda, 0x96, 0x3c,
+ 0x03, 0x2b, 0x3d, 0x9e, 0xfe, 0xf8, 0xd7, 0xc7, 0x14, 0x20, 0x3a, 0xd4,
+ 0x4a, 0x39, 0x71, 0xe3, 0xa6, 0xef, 0xdd, 0xd2,
+};
+static const unsigned char kat2108_nonce[] = {
+ 0x37, 0x96, 0x3c, 0xf4, 0x4d, 0xfe, 0x03, 0x87, 0x74, 0x7e, 0x23, 0xfd,
+ 0x2c, 0xd1, 0x25, 0x6e,
+};
+static const unsigned char kat2108_persstr[] = {0};
+static const unsigned char kat2108_entropyinreseed[] = {
+ 0x9c, 0x61, 0xd2, 0x94, 0x62, 0x02, 0xc4, 0x0e, 0x78, 0x37, 0x0c, 0x46,
+ 0xc3, 0xdb, 0xb4, 0xec, 0xe2, 0x93, 0x09, 0x9d, 0x88, 0x08, 0x97, 0x88,
+ 0x59, 0x2c, 0xca, 0x1b, 0x4c, 0x49, 0xf7, 0x9c,
+};
+static const unsigned char kat2108_addinreseed[] = {0};
+static const unsigned char kat2108_addin0[] = {0};
+static const unsigned char kat2108_addin1[] = {0};
+static const unsigned char kat2108_retbits[] = {
+ 0x14, 0xc1, 0x42, 0x60, 0x5f, 0x72, 0x5b, 0xb5, 0x94, 0xf2, 0x00, 0xfb,
+ 0xc7, 0x09, 0xaf, 0x89, 0x2f, 0x0a, 0x32, 0x4d, 0x41, 0x81, 0x1f, 0xca,
+ 0x6b, 0x81, 0xec, 0x71, 0xc6, 0xa2, 0xff, 0x1e, 0xe4, 0x23, 0xde, 0x7e,
+ 0x14, 0x21, 0x33, 0x77, 0x60, 0x84, 0x7e, 0x86, 0x26, 0x70, 0x63, 0x75,
+ 0x46, 0xcf, 0x17, 0x07, 0x35, 0x41, 0x2f, 0xa2, 0x62, 0x07, 0x52, 0x19,
+ 0xe1, 0x02, 0xc2, 0x40,
+};
+static const struct drbg_kat_pr_false kat2108_t = {
+ 7, kat2108_entropyin, kat2108_nonce, kat2108_persstr,
+ kat2108_entropyinreseed, kat2108_addinreseed, kat2108_addin0,
+ kat2108_addin1, kat2108_retbits
+};
+static const struct drbg_kat kat2108 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2108_t
+};
+
+static const unsigned char kat2109_entropyin[] = {
+ 0x9e, 0x4a, 0x31, 0x24, 0xf5, 0xc5, 0x6e, 0x83, 0x69, 0xd5, 0x1f, 0xa4,
+ 0x2b, 0xf6, 0x62, 0x55, 0x13, 0x0a, 0x3a, 0x30, 0x05, 0x34, 0x27, 0xe0,
+ 0xbb, 0x5d, 0x03, 0x66, 0xf1, 0x8b, 0xdf, 0x47,
+};
+static const unsigned char kat2109_nonce[] = {
+ 0x55, 0xdd, 0xd1, 0x82, 0xb9, 0x56, 0xaa, 0xce, 0xaf, 0x92, 0xed, 0x50,
+ 0xc7, 0xea, 0x77, 0x81,
+};
+static const unsigned char kat2109_persstr[] = {0};
+static const unsigned char kat2109_entropyinreseed[] = {
+ 0x55, 0x8f, 0x4e, 0xcf, 0x21, 0x68, 0x78, 0x59, 0x93, 0x5f, 0x9a, 0x25,
+ 0xc2, 0xac, 0xdf, 0xc0, 0x09, 0x9c, 0x69, 0x3a, 0x86, 0xf1, 0xce, 0xfe,
+ 0x62, 0xef, 0x3b, 0x97, 0x33, 0x4a, 0x3f, 0xdd,
+};
+static const unsigned char kat2109_addinreseed[] = {0};
+static const unsigned char kat2109_addin0[] = {0};
+static const unsigned char kat2109_addin1[] = {0};
+static const unsigned char kat2109_retbits[] = {
+ 0x02, 0xa7, 0xbf, 0xda, 0x63, 0x48, 0x49, 0xff, 0x49, 0xce, 0xad, 0xb4,
+ 0xba, 0x67, 0x94, 0x65, 0xcc, 0x45, 0x7f, 0xf1, 0x07, 0x35, 0xbb, 0xa7,
+ 0x2b, 0x13, 0x8c, 0x21, 0x27, 0xb5, 0x30, 0x6b, 0x5a, 0xf0, 0x8f, 0xbb,
+ 0xfa, 0x8f, 0xd4, 0x17, 0xa6, 0x73, 0x39, 0xbc, 0xaf, 0x93, 0xfd, 0xf4,
+ 0x17, 0xa2, 0x6d, 0xa6, 0xfe, 0x32, 0x95, 0xdd, 0xfa, 0xfd, 0x0c, 0xb8,
+ 0x1a, 0x8e, 0xff, 0x3a,
+};
+static const struct drbg_kat_pr_false kat2109_t = {
+ 8, kat2109_entropyin, kat2109_nonce, kat2109_persstr,
+ kat2109_entropyinreseed, kat2109_addinreseed, kat2109_addin0,
+ kat2109_addin1, kat2109_retbits
+};
+static const struct drbg_kat kat2109 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2109_t
+};
+
+static const unsigned char kat2110_entropyin[] = {
+ 0x76, 0x2d, 0xaf, 0x87, 0xb7, 0xa2, 0x6d, 0xe0, 0xba, 0xb5, 0xdb, 0xa9,
+ 0x11, 0x01, 0xf8, 0x98, 0xd1, 0x92, 0x5a, 0x51, 0x7a, 0x52, 0x53, 0x39,
+ 0x47, 0x5d, 0xfb, 0x43, 0xa0, 0x5a, 0x97, 0x0d,
+};
+static const unsigned char kat2110_nonce[] = {
+ 0xf4, 0xc9, 0x83, 0x08, 0x8d, 0x46, 0xc4, 0x75, 0xd4, 0x94, 0x66, 0xdd,
+ 0xf3, 0x35, 0x6c, 0xd5,
+};
+static const unsigned char kat2110_persstr[] = {0};
+static const unsigned char kat2110_entropyinreseed[] = {
+ 0xd3, 0x92, 0xd2, 0xbd, 0x13, 0x7a, 0xcd, 0x80, 0x16, 0x94, 0xfc, 0xed,
+ 0xcf, 0xd7, 0xcb, 0x5c, 0xc8, 0xf5, 0xad, 0xf4, 0xb1, 0xcb, 0xf5, 0xe5,
+ 0xa4, 0x46, 0xc2, 0x4e, 0x36, 0x92, 0xa2, 0x60,
+};
+static const unsigned char kat2110_addinreseed[] = {0};
+static const unsigned char kat2110_addin0[] = {0};
+static const unsigned char kat2110_addin1[] = {0};
+static const unsigned char kat2110_retbits[] = {
+ 0x2b, 0x38, 0xeb, 0xe7, 0xa4, 0xb0, 0xba, 0x7b, 0xc9, 0x77, 0xd1, 0xe3,
+ 0x85, 0x26, 0x78, 0xf9, 0xa9, 0xec, 0x78, 0xd9, 0x9e, 0xe5, 0xc2, 0xe2,
+ 0x41, 0xdf, 0xdc, 0xd3, 0x63, 0xde, 0xe1, 0x58, 0x9f, 0xb6, 0x6d, 0x89,
+ 0x06, 0xef, 0xf7, 0xb4, 0x92, 0xe2, 0x32, 0x69, 0x31, 0xa6, 0xea, 0x11,
+ 0x59, 0x66, 0x49, 0x78, 0x12, 0x2b, 0xa6, 0xe2, 0x08, 0xe4, 0x91, 0x66,
+ 0xf4, 0x81, 0x1f, 0xa0,
+};
+static const struct drbg_kat_pr_false kat2110_t = {
+ 9, kat2110_entropyin, kat2110_nonce, kat2110_persstr,
+ kat2110_entropyinreseed, kat2110_addinreseed, kat2110_addin0,
+ kat2110_addin1, kat2110_retbits
+};
+static const struct drbg_kat kat2110 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2110_t
+};
+
+static const unsigned char kat2111_entropyin[] = {
+ 0x6a, 0xc8, 0xe3, 0x50, 0x40, 0x24, 0xbd, 0x11, 0xae, 0xde, 0xa1, 0xfc,
+ 0x28, 0x6e, 0xb2, 0xea, 0xd9, 0x71, 0x98, 0x37, 0xb1, 0xfb, 0x95, 0x68,
+ 0xbc, 0xa0, 0x1c, 0x3e, 0xc9, 0xcc, 0x74, 0xd1,
+};
+static const unsigned char kat2111_nonce[] = {
+ 0x3b, 0x90, 0xc5, 0xc9, 0xdf, 0xf9, 0xb0, 0x52, 0xe4, 0x21, 0x7b, 0x27,
+ 0x8a, 0xa6, 0x4c, 0x3b,
+};
+static const unsigned char kat2111_persstr[] = {0};
+static const unsigned char kat2111_entropyinreseed[] = {
+ 0xc4, 0xcc, 0xfa, 0xcb, 0xf2, 0x94, 0xb5, 0x6e, 0x41, 0xf6, 0xb5, 0xd6,
+ 0x91, 0xec, 0x36, 0xd9, 0xb6, 0x9d, 0x70, 0xed, 0x67, 0x82, 0x9a, 0x8d,
+ 0x28, 0x56, 0xda, 0x85, 0x93, 0xf2, 0xd0, 0x68,
+};
+static const unsigned char kat2111_addinreseed[] = {0};
+static const unsigned char kat2111_addin0[] = {0};
+static const unsigned char kat2111_addin1[] = {0};
+static const unsigned char kat2111_retbits[] = {
+ 0x3b, 0x28, 0x60, 0xce, 0x55, 0xe6, 0x80, 0xfd, 0x96, 0x47, 0x87, 0xe5,
+ 0xd2, 0xbb, 0xf6, 0xfb, 0xdb, 0x7d, 0x5d, 0x8b, 0xc8, 0xdd, 0xdf, 0x66,
+ 0x29, 0xc5, 0x88, 0x77, 0x60, 0x04, 0xbe, 0xb9, 0x83, 0x14, 0xd1, 0x50,
+ 0x1d, 0x0e, 0x23, 0x5b, 0xea, 0xff, 0x94, 0x76, 0x27, 0xdd, 0x69, 0x5d,
+ 0x77, 0xb1, 0x1b, 0x19, 0xe4, 0xfe, 0xee, 0x86, 0x03, 0x0e, 0x20, 0x47,
+ 0x9f, 0x32, 0x12, 0xdf,
+};
+static const struct drbg_kat_pr_false kat2111_t = {
+ 10, kat2111_entropyin, kat2111_nonce, kat2111_persstr,
+ kat2111_entropyinreseed, kat2111_addinreseed, kat2111_addin0,
+ kat2111_addin1, kat2111_retbits
+};
+static const struct drbg_kat kat2111 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2111_t
+};
+
+static const unsigned char kat2112_entropyin[] = {
+ 0xa4, 0xf1, 0x1d, 0xae, 0x4a, 0x6d, 0x51, 0x5a, 0x7d, 0xbb, 0xc6, 0x24,
+ 0xdf, 0xfa, 0x3d, 0xc1, 0x6e, 0xef, 0xbf, 0x3b, 0xe7, 0x20, 0x7d, 0x9c,
+ 0x1b, 0xfa, 0x23, 0x27, 0xe7, 0x88, 0x98, 0x44,
+};
+static const unsigned char kat2112_nonce[] = {
+ 0x58, 0xa2, 0xe7, 0xa6, 0xf9, 0xcc, 0x54, 0x3d, 0xe0, 0xd7, 0xbb, 0xe8,
+ 0x23, 0x57, 0xd1, 0x85,
+};
+static const unsigned char kat2112_persstr[] = {0};
+static const unsigned char kat2112_entropyinreseed[] = {
+ 0x52, 0x8c, 0x20, 0x6e, 0xc5, 0x93, 0x45, 0xce, 0x4a, 0x8f, 0xfa, 0x8f,
+ 0x5c, 0x85, 0xdc, 0xfa, 0x78, 0x47, 0xc1, 0x18, 0x4a, 0x79, 0x84, 0x39,
+ 0x78, 0x69, 0xa1, 0xbd, 0x4e, 0xf6, 0xc1, 0x46,
+};
+static const unsigned char kat2112_addinreseed[] = {0};
+static const unsigned char kat2112_addin0[] = {0};
+static const unsigned char kat2112_addin1[] = {0};
+static const unsigned char kat2112_retbits[] = {
+ 0x20, 0x97, 0xb5, 0x7c, 0x80, 0x2d, 0x25, 0x85, 0xec, 0x19, 0x20, 0x98,
+ 0xee, 0xa7, 0xad, 0x73, 0xae, 0x11, 0xdb, 0x7d, 0x28, 0x4f, 0x75, 0xd2,
+ 0xc3, 0x1f, 0xf4, 0xb6, 0xcd, 0xbd, 0x3f, 0x42, 0xe2, 0x52, 0x5a, 0x65,
+ 0x18, 0x38, 0x3d, 0x8d, 0x89, 0x2a, 0x57, 0x8a, 0xf9, 0x48, 0x42, 0x5e,
+ 0x1e, 0x60, 0x80, 0x3a, 0xfd, 0x88, 0x35, 0xc6, 0xf7, 0x3b, 0x58, 0x7a,
+ 0xa7, 0x8a, 0xc0, 0x3b,
+};
+static const struct drbg_kat_pr_false kat2112_t = {
+ 11, kat2112_entropyin, kat2112_nonce, kat2112_persstr,
+ kat2112_entropyinreseed, kat2112_addinreseed, kat2112_addin0,
+ kat2112_addin1, kat2112_retbits
+};
+static const struct drbg_kat kat2112 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2112_t
+};
+
+static const unsigned char kat2113_entropyin[] = {
+ 0xdb, 0x54, 0x4f, 0x76, 0x78, 0xe8, 0xe2, 0xf6, 0xc8, 0x45, 0xe4, 0x24,
+ 0x41, 0x46, 0x84, 0xd3, 0xcb, 0x6f, 0x2f, 0x67, 0x05, 0x0d, 0xf5, 0xaf,
+ 0x3c, 0xa5, 0xe4, 0x1d, 0x5d, 0x83, 0x4b, 0x42,
+};
+static const unsigned char kat2113_nonce[] = {
+ 0xc9, 0x6c, 0x73, 0x57, 0x05, 0xbe, 0xc1, 0x3e, 0xc9, 0x34, 0x8e, 0x8f,
+ 0x5d, 0xb4, 0x55, 0x5d,
+};
+static const unsigned char kat2113_persstr[] = {0};
+static const unsigned char kat2113_entropyinreseed[] = {
+ 0x83, 0x74, 0x98, 0x4b, 0x53, 0x92, 0x63, 0xfa, 0xf1, 0x21, 0x45, 0x91,
+ 0x09, 0xe0, 0xf5, 0x3a, 0x03, 0x03, 0xfa, 0x0f, 0x82, 0x0b, 0x9b, 0xea,
+ 0x4e, 0x35, 0xc5, 0x64, 0x4a, 0x42, 0xbd, 0xd2,
+};
+static const unsigned char kat2113_addinreseed[] = {0};
+static const unsigned char kat2113_addin0[] = {0};
+static const unsigned char kat2113_addin1[] = {0};
+static const unsigned char kat2113_retbits[] = {
+ 0xd6, 0xb5, 0x43, 0xa9, 0x5c, 0x18, 0x4b, 0x96, 0x58, 0x3e, 0x9e, 0x5d,
+ 0x47, 0x7e, 0xd1, 0x9e, 0x2d, 0xcd, 0xb8, 0x4d, 0xba, 0x69, 0x21, 0x58,
+ 0x7f, 0xb1, 0x4b, 0xc6, 0xdc, 0x1d, 0xa5, 0xa7, 0xbf, 0x9f, 0x2a, 0xa4,
+ 0x14, 0x5d, 0x3d, 0x4f, 0x77, 0x3f, 0x53, 0x93, 0xec, 0x8b, 0x76, 0xc3,
+ 0x07, 0xf3, 0xf7, 0x2f, 0xf1, 0xb5, 0xe0, 0xb0, 0x3b, 0x32, 0x2d, 0xda,
+ 0x40, 0x9a, 0x88, 0xb4,
+};
+static const struct drbg_kat_pr_false kat2113_t = {
+ 12, kat2113_entropyin, kat2113_nonce, kat2113_persstr,
+ kat2113_entropyinreseed, kat2113_addinreseed, kat2113_addin0,
+ kat2113_addin1, kat2113_retbits
+};
+static const struct drbg_kat kat2113 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2113_t
+};
+
+static const unsigned char kat2114_entropyin[] = {
+ 0x86, 0x81, 0x54, 0x77, 0x45, 0xec, 0x3c, 0x9b, 0xdc, 0xe9, 0x75, 0x28,
+ 0x79, 0x8f, 0xf3, 0x5e, 0x25, 0x9f, 0x0e, 0x64, 0x9b, 0x52, 0x5f, 0x49,
+ 0x2d, 0xae, 0xf3, 0xa5, 0x96, 0xfc, 0xa9, 0xeb,
+};
+static const unsigned char kat2114_nonce[] = {
+ 0x92, 0x7d, 0x4b, 0x92, 0xa9, 0xfd, 0x2d, 0x8a, 0x78, 0xa0, 0x5f, 0x73,
+ 0xc9, 0x04, 0xa7, 0xc8,
+};
+static const unsigned char kat2114_persstr[] = {0};
+static const unsigned char kat2114_entropyinreseed[] = {
+ 0x8e, 0xe9, 0xe5, 0x76, 0x63, 0x2b, 0x2f, 0x5a, 0x54, 0x9e, 0x3d, 0xd0,
+ 0xd9, 0x9d, 0x0b, 0x26, 0x7e, 0x07, 0x93, 0x6e, 0x97, 0x22, 0x3a, 0x49,
+ 0xed, 0xf3, 0x86, 0xba, 0xc7, 0xfd, 0xcd, 0xc4,
+};
+static const unsigned char kat2114_addinreseed[] = {0};
+static const unsigned char kat2114_addin0[] = {0};
+static const unsigned char kat2114_addin1[] = {0};
+static const unsigned char kat2114_retbits[] = {
+ 0xd1, 0x61, 0x6f, 0x14, 0x5a, 0x4e, 0xfd, 0x1c, 0xdc, 0x6e, 0x68, 0x82,
+ 0x66, 0xd2, 0x0d, 0xa1, 0x16, 0xad, 0x90, 0x44, 0xce, 0x4e, 0x4e, 0x42,
+ 0xd7, 0xe6, 0xe7, 0x8b, 0x65, 0xbb, 0x4f, 0xf1, 0x5c, 0x89, 0x36, 0xdf,
+ 0x9f, 0x2a, 0xc6, 0x5f, 0x43, 0xb5, 0x11, 0x17, 0x50, 0xec, 0xe5, 0x14,
+ 0x12, 0x84, 0x7a, 0xb3, 0xc0, 0xd6, 0x30, 0x53, 0x54, 0x55, 0x46, 0xfa,
+ 0x66, 0xf5, 0x77, 0x18,
+};
+static const struct drbg_kat_pr_false kat2114_t = {
+ 13, kat2114_entropyin, kat2114_nonce, kat2114_persstr,
+ kat2114_entropyinreseed, kat2114_addinreseed, kat2114_addin0,
+ kat2114_addin1, kat2114_retbits
+};
+static const struct drbg_kat kat2114 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2114_t
+};
+
+static const unsigned char kat2115_entropyin[] = {
+ 0x73, 0x4f, 0x99, 0xb0, 0xab, 0xc6, 0x1a, 0xe2, 0x31, 0xdb, 0x7f, 0xb1,
+ 0x9a, 0xb2, 0xbc, 0x4b, 0xb9, 0x03, 0x56, 0x7d, 0x6b, 0x35, 0xdb, 0xaf,
+ 0x76, 0x27, 0x4c, 0x4a, 0x68, 0x9e, 0xa2, 0xae,
+};
+static const unsigned char kat2115_nonce[] = {
+ 0x3c, 0xbc, 0xda, 0x1d, 0xc5, 0xf7, 0x7e, 0x82, 0x11, 0x11, 0x25, 0xac,
+ 0x8c, 0x9d, 0x30, 0xb3,
+};
+static const unsigned char kat2115_persstr[] = {0};
+static const unsigned char kat2115_entropyinreseed[] = {
+ 0xa3, 0x75, 0x6f, 0xff, 0x99, 0x03, 0xf3, 0x23, 0xe5, 0x73, 0x87, 0x21,
+ 0x04, 0xa1, 0xf4, 0xa2, 0x03, 0x5d, 0xbd, 0x3a, 0x46, 0x4e, 0xe5, 0xa5,
+ 0xee, 0x8d, 0xb4, 0xf4, 0x8e, 0xd0, 0xf1, 0xb7,
+};
+static const unsigned char kat2115_addinreseed[] = {0};
+static const unsigned char kat2115_addin0[] = {0};
+static const unsigned char kat2115_addin1[] = {0};
+static const unsigned char kat2115_retbits[] = {
+ 0xbf, 0xe7, 0xe2, 0x05, 0xac, 0x68, 0x9d, 0x21, 0xae, 0x2a, 0x26, 0x85,
+ 0xe2, 0xea, 0xf1, 0xae, 0x0a, 0xd3, 0xe1, 0x39, 0x88, 0x18, 0x91, 0xc1,
+ 0xd1, 0x1b, 0x50, 0x59, 0x4d, 0xdd, 0x22, 0xcf, 0x3d, 0x7e, 0xe4, 0xd5,
+ 0xd4, 0x01, 0x0b, 0x44, 0xc9, 0xb7, 0xa8, 0x6f, 0x9b, 0x86, 0xd6, 0x65,
+ 0xa1, 0xb2, 0x8a, 0xe2, 0x1a, 0xc1, 0xd1, 0x19, 0xdd, 0xb5, 0x4e, 0x14,
+ 0x4e, 0xe8, 0xcb, 0x64,
+};
+static const struct drbg_kat_pr_false kat2115_t = {
+ 14, kat2115_entropyin, kat2115_nonce, kat2115_persstr,
+ kat2115_entropyinreseed, kat2115_addinreseed, kat2115_addin0,
+ kat2115_addin1, kat2115_retbits
+};
+static const struct drbg_kat kat2115 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat2115_t
+};
+
+static const unsigned char kat2116_entropyin[] = {
+ 0xa6, 0xe8, 0x60, 0x41, 0x4e, 0x2f, 0xe8, 0xd4, 0x74, 0x0e, 0xa2, 0x04,
+ 0xb8, 0x77, 0xc7, 0x6b, 0x50, 0x28, 0x07, 0x22, 0xc3, 0xb9, 0x18, 0x63,
+ 0x25, 0x74, 0x34, 0xc7, 0x53, 0x04, 0xda, 0xfe,
+};
+static const unsigned char kat2116_nonce[] = {
+ 0x8f, 0x12, 0xc9, 0x32, 0x7d, 0x28, 0xe2, 0xc2, 0x74, 0x1e, 0x4a, 0xd7,
+ 0xe2, 0x7b, 0xb1, 0x24,
+};
+static const unsigned char kat2116_persstr[] = {0};
+static const unsigned char kat2116_entropyinreseed[] = {
+ 0xc3, 0x2e, 0x3b, 0x4c, 0xf9, 0x7c, 0x06, 0xfa, 0xb4, 0x1b, 0x54, 0x58,
+ 0x70, 0xad, 0xd8, 0xc3, 0xf9, 0x8f, 0xa6, 0x75, 0x1a, 0xab, 0x02, 0x98,
+ 0x8d, 0x2d, 0x34, 0xc9, 0x5d, 0x19, 0x99, 0x65,
+};
+static const unsigned char kat2116_addinreseed[] = {
+ 0xf0, 0xd9, 0xa6, 0x4f, 0xab, 0xbf, 0x34, 0x6c, 0x87, 0x1d, 0x77, 0x31,
+ 0xe7, 0x15, 0x86, 0xbc, 0xce, 0x74, 0x8b, 0x08, 0xff, 0x07, 0x26, 0xd6,
+ 0x8d, 0x54, 0xbf, 0xed, 0x27, 0xb1, 0x0b, 0x27,
+};
+static const unsigned char kat2116_addin0[] = {
+ 0xc7, 0x2f, 0x45, 0x58, 0x1a, 0x79, 0x73, 0xcb, 0x41, 0x48, 0xfb, 0x9e,
+ 0x8e, 0xac, 0xfc, 0xa0, 0xe5, 0x13, 0xc4, 0x0a, 0xb8, 0x92, 0x53, 0x13,
+ 0xb4, 0x99, 0xb1, 0xb8, 0x3a, 0x99, 0xe3, 0x72,
+};
+static const unsigned char kat2116_addin1[] = {
+ 0x7d, 0xfa, 0xcd, 0x72, 0xc0, 0x84, 0xc3, 0x24, 0xf7, 0x21, 0xf0, 0x3a,
+ 0xdd, 0xbe, 0x72, 0xb6, 0x46, 0xa4, 0xa7, 0x23, 0xe7, 0x8b, 0x5e, 0x40,
+ 0x1a, 0xef, 0x84, 0x4c, 0xf2, 0xb9, 0x13, 0x33,
+};
+static const unsigned char kat2116_retbits[] = {
+ 0xdb, 0x25, 0x29, 0x86, 0x20, 0x11, 0xf4, 0x5d, 0x95, 0x91, 0x8d, 0x84,
+ 0x3b, 0x7e, 0xf0, 0xd7, 0xab, 0x18, 0xa6, 0xd6, 0xe3, 0xf0, 0xbc, 0xec,
+ 0x10, 0x94, 0x97, 0x50, 0x2b, 0x68, 0xb5, 0xed, 0x9c, 0xea, 0xe8, 0x55,
+ 0x14, 0xaf, 0x51, 0x59, 0x7e, 0x84, 0x79, 0x19, 0x6d, 0x59, 0x19, 0x0c,
+ 0xda, 0x41, 0x4e, 0x56, 0x6a, 0xd6, 0x38, 0xd3, 0x91, 0x56, 0x35, 0x1a,
+ 0xfb, 0xae, 0xaf, 0xd9,
+};
+static const struct drbg_kat_pr_false kat2116_t = {
+ 0, kat2116_entropyin, kat2116_nonce, kat2116_persstr,
+ kat2116_entropyinreseed, kat2116_addinreseed, kat2116_addin0,
+ kat2116_addin1, kat2116_retbits
+};
+static const struct drbg_kat kat2116 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2116_t
+};
+
+static const unsigned char kat2117_entropyin[] = {
+ 0xdd, 0xbf, 0xec, 0xb8, 0x8d, 0xf6, 0x62, 0x75, 0x52, 0xb9, 0x13, 0xe6,
+ 0x36, 0xa2, 0xdf, 0xcc, 0x8a, 0x00, 0x93, 0xf4, 0xc5, 0xd6, 0xec, 0x3b,
+ 0x0a, 0x30, 0x07, 0xcf, 0xce, 0x1b, 0x08, 0xf2,
+};
+static const unsigned char kat2117_nonce[] = {
+ 0xb8, 0x62, 0xf9, 0xd4, 0x92, 0xd9, 0x3d, 0x73, 0x62, 0x01, 0xb5, 0xce,
+ 0xf1, 0x5b, 0x5c, 0x5c,
+};
+static const unsigned char kat2117_persstr[] = {0};
+static const unsigned char kat2117_entropyinreseed[] = {
+ 0x2a, 0xe9, 0xd1, 0x9f, 0x0a, 0xaf, 0x66, 0x88, 0xd7, 0x8a, 0xb9, 0x1b,
+ 0x11, 0xf0, 0x66, 0x8c, 0x16, 0x16, 0xe8, 0x1a, 0x62, 0x79, 0xab, 0xaf,
+ 0x91, 0x1b, 0x46, 0x86, 0xe0, 0x46, 0xd1, 0xdb,
+};
+static const unsigned char kat2117_addinreseed[] = {
+ 0x40, 0x4c, 0x84, 0x94, 0x36, 0x37, 0xc2, 0x2f, 0xce, 0xd4, 0x95, 0x55,
+ 0x83, 0x9d, 0xab, 0xab, 0xa0, 0xd6, 0xdf, 0x25, 0xc7, 0xa0, 0x49, 0xaa,
+ 0x2b, 0xb7, 0x11, 0x4b, 0xea, 0x93, 0xff, 0x67,
+};
+static const unsigned char kat2117_addin0[] = {
+ 0x79, 0x53, 0x9a, 0x1f, 0xe5, 0x6c, 0x5e, 0x1d, 0x72, 0x01, 0x29, 0x2d,
+ 0x50, 0x7c, 0x5e, 0xdb, 0x55, 0x4c, 0xde, 0x37, 0x96, 0x81, 0x05, 0xc3,
+ 0x86, 0x5d, 0xf9, 0xf7, 0xdc, 0x36, 0xd1, 0xe7,
+};
+static const unsigned char kat2117_addin1[] = {
+ 0x8f, 0x33, 0x19, 0xf8, 0x43, 0xe0, 0x82, 0x44, 0xe8, 0xd2, 0x7d, 0x7e,
+ 0xb5, 0xdb, 0x68, 0x1e, 0x9f, 0xfd, 0x83, 0x65, 0x7d, 0xdb, 0x40, 0x65,
+ 0x9f, 0xde, 0x20, 0xb2, 0xb4, 0x37, 0x6c, 0x01,
+};
+static const unsigned char kat2117_retbits[] = {
+ 0x87, 0xb7, 0xa3, 0xe5, 0xbf, 0xd7, 0xa5, 0xf8, 0xba, 0x93, 0xfb, 0x02,
+ 0x0f, 0x21, 0x3c, 0xef, 0xb0, 0xb2, 0xaf, 0xc6, 0xa7, 0x33, 0xd9, 0x9b,
+ 0x53, 0xe5, 0x6e, 0x51, 0xca, 0x06, 0x06, 0x8f, 0x1a, 0x37, 0xff, 0x8d,
+ 0x88, 0xb7, 0xc7, 0x7c, 0x23, 0x48, 0x7b, 0xdf, 0x63, 0xb0, 0x98, 0x76,
+ 0x10, 0x40, 0xf5, 0xf3, 0xd4, 0x94, 0x89, 0xc3, 0x8f, 0xb6, 0xfd, 0x3a,
+ 0x7e, 0xb3, 0x3f, 0xf1,
+};
+static const struct drbg_kat_pr_false kat2117_t = {
+ 1, kat2117_entropyin, kat2117_nonce, kat2117_persstr,
+ kat2117_entropyinreseed, kat2117_addinreseed, kat2117_addin0,
+ kat2117_addin1, kat2117_retbits
+};
+static const struct drbg_kat kat2117 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2117_t
+};
+
+static const unsigned char kat2118_entropyin[] = {
+ 0xca, 0x44, 0x84, 0x1b, 0xa8, 0x3a, 0xcc, 0xac, 0x8a, 0x90, 0xe8, 0xe7,
+ 0xed, 0xe8, 0x6a, 0x9b, 0xcc, 0x1e, 0x42, 0xa7, 0x36, 0xf3, 0x17, 0xbe,
+ 0x3e, 0xc2, 0x5d, 0xd8, 0xc0, 0x15, 0xe0, 0xe0,
+};
+static const unsigned char kat2118_nonce[] = {
+ 0xd1, 0x59, 0xa4, 0x15, 0xb8, 0x1b, 0xf2, 0x6e, 0x13, 0xb6, 0xce, 0x37,
+ 0x98, 0x63, 0x1f, 0x7c,
+};
+static const unsigned char kat2118_persstr[] = {0};
+static const unsigned char kat2118_entropyinreseed[] = {
+ 0xdb, 0xdf, 0xb6, 0x75, 0x71, 0x48, 0x70, 0x4b, 0x56, 0xa1, 0x6c, 0x40,
+ 0x17, 0xe4, 0xda, 0xa2, 0x0c, 0x1a, 0x40, 0x3b, 0x79, 0x0b, 0xd6, 0x48,
+ 0x3d, 0x3f, 0x4c, 0x1a, 0xb4, 0xcc, 0x96, 0xa8,
+};
+static const unsigned char kat2118_addinreseed[] = {
+ 0x8e, 0x22, 0x25, 0x23, 0xa9, 0x3e, 0x06, 0x11, 0x7d, 0xd2, 0xbe, 0x55,
+ 0xed, 0x51, 0x30, 0xce, 0x59, 0x0d, 0xcb, 0xcc, 0xb7, 0x05, 0xa4, 0x23,
+ 0x86, 0x7a, 0x56, 0xa6, 0xc7, 0x87, 0x51, 0xca,
+};
+static const unsigned char kat2118_addin0[] = {
+ 0x9f, 0x0d, 0x6c, 0xa9, 0xf4, 0xd3, 0xb7, 0x9f, 0x36, 0x9f, 0x37, 0x63,
+ 0x25, 0x4f, 0xe8, 0x0a, 0x77, 0x03, 0xdf, 0x5a, 0x96, 0xdd, 0x2f, 0xf5,
+ 0x3d, 0x57, 0x82, 0x0b, 0x70, 0x09, 0x5c, 0x1f,
+};
+static const unsigned char kat2118_addin1[] = {
+ 0xc9, 0x01, 0x99, 0x27, 0xc4, 0x0c, 0xe1, 0x2c, 0x1b, 0xd5, 0x96, 0xc2,
+ 0x2c, 0x72, 0x65, 0x4c, 0xce, 0xa3, 0xee, 0x52, 0x91, 0xcc, 0xe1, 0x1c,
+ 0xe5, 0x50, 0xe6, 0x0e, 0xb7, 0xf0, 0x39, 0x31,
+};
+static const unsigned char kat2118_retbits[] = {
+ 0xcf, 0xdb, 0x90, 0x64, 0x12, 0x88, 0xc8, 0x57, 0x17, 0x48, 0xc9, 0xea,
+ 0x59, 0x34, 0xac, 0xb3, 0x23, 0x0a, 0x84, 0x7d, 0x1d, 0xee, 0xd4, 0x80,
+ 0x14, 0xcc, 0x1b, 0x25, 0x78, 0xe4, 0x05, 0x39, 0xdf, 0xab, 0x2b, 0xc6,
+ 0x11, 0x80, 0x57, 0xb1, 0x86, 0x08, 0x39, 0x9e, 0xdf, 0x19, 0x8d, 0xad,
+ 0xb4, 0x87, 0xaa, 0x4a, 0xf2, 0x0b, 0xc5, 0xf4, 0x4d, 0x8c, 0x4f, 0xbb,
+ 0xc9, 0x60, 0x56, 0xb6,
+};
+static const struct drbg_kat_pr_false kat2118_t = {
+ 2, kat2118_entropyin, kat2118_nonce, kat2118_persstr,
+ kat2118_entropyinreseed, kat2118_addinreseed, kat2118_addin0,
+ kat2118_addin1, kat2118_retbits
+};
+static const struct drbg_kat kat2118 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2118_t
+};
+
+static const unsigned char kat2119_entropyin[] = {
+ 0x10, 0xe2, 0x6c, 0x67, 0x4e, 0x99, 0xf1, 0x86, 0x67, 0x78, 0xe3, 0x16,
+ 0x50, 0x7f, 0x7a, 0x15, 0xcf, 0x5d, 0x82, 0xfb, 0xca, 0xb3, 0xb9, 0x1f,
+ 0xf7, 0xf6, 0x6b, 0x92, 0x61, 0x46, 0x7b, 0xb8,
+};
+static const unsigned char kat2119_nonce[] = {
+ 0x12, 0x76, 0xfa, 0x82, 0x6b, 0x68, 0xf3, 0x85, 0xf2, 0x3a, 0x43, 0x78,
+ 0x6d, 0x62, 0xbe, 0x18,
+};
+static const unsigned char kat2119_persstr[] = {0};
+static const unsigned char kat2119_entropyinreseed[] = {
+ 0xec, 0xa2, 0xbf, 0xae, 0x3f, 0xa6, 0xb2, 0x71, 0xfb, 0x51, 0xef, 0x89,
+ 0xa6, 0x41, 0xf8, 0x92, 0x30, 0xad, 0x3e, 0xfb, 0x23, 0xa2, 0x50, 0x53,
+ 0x4a, 0x34, 0x2d, 0xbf, 0xff, 0xc4, 0x3b, 0xdf,
+};
+static const unsigned char kat2119_addinreseed[] = {
+ 0x8c, 0x1c, 0x67, 0x3b, 0x3a, 0x06, 0xbd, 0x9b, 0x10, 0xc7, 0x87, 0xe6,
+ 0x09, 0x44, 0x2d, 0x7f, 0x6d, 0xba, 0x9d, 0xef, 0x1d, 0x59, 0x6c, 0x03,
+ 0x1d, 0x39, 0x3c, 0x91, 0x65, 0x67, 0x41, 0x14,
+};
+static const unsigned char kat2119_addin0[] = {
+ 0x12, 0xce, 0x47, 0x00, 0x2f, 0x81, 0x57, 0x00, 0xe7, 0x9a, 0xc6, 0x6f,
+ 0x69, 0xba, 0x65, 0x87, 0x44, 0x27, 0xa5, 0x20, 0xe5, 0xa0, 0x33, 0xa0,
+ 0x96, 0x05, 0xde, 0xd1, 0xac, 0xe9, 0xb0, 0xd2,
+};
+static const unsigned char kat2119_addin1[] = {
+ 0x05, 0x80, 0xae, 0x03, 0x35, 0x9c, 0x94, 0xd3, 0x27, 0x6e, 0x67, 0x87,
+ 0x8a, 0x01, 0xfc, 0x99, 0xcb, 0xdc, 0x83, 0xbb, 0x83, 0x2d, 0xbd, 0x85,
+ 0xa6, 0x1a, 0x11, 0x60, 0x38, 0xd6, 0x28, 0x4e,
+};
+static const unsigned char kat2119_retbits[] = {
+ 0xc6, 0x5a, 0x71, 0x6f, 0x71, 0x6e, 0x12, 0xe8, 0x88, 0x4b, 0x68, 0x5f,
+ 0xbd, 0x61, 0x2f, 0x8a, 0xdf, 0xc0, 0x2b, 0x0d, 0x17, 0x53, 0x78, 0x62,
+ 0x08, 0x80, 0x2a, 0xca, 0x3f, 0xe6, 0x97, 0x03, 0x1f, 0x51, 0x4a, 0x47,
+ 0x0c, 0x09, 0x63, 0x50, 0x30, 0xf0, 0x39, 0x73, 0x81, 0xbc, 0x61, 0x95,
+ 0xe9, 0x9f, 0xf2, 0x4b, 0xcf, 0x20, 0xf5, 0x16, 0xa0, 0xb4, 0xc6, 0x55,
+ 0xa6, 0x45, 0x13, 0x05,
+};
+static const struct drbg_kat_pr_false kat2119_t = {
+ 3, kat2119_entropyin, kat2119_nonce, kat2119_persstr,
+ kat2119_entropyinreseed, kat2119_addinreseed, kat2119_addin0,
+ kat2119_addin1, kat2119_retbits
+};
+static const struct drbg_kat kat2119 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2119_t
+};
+
+static const unsigned char kat2120_entropyin[] = {
+ 0x52, 0x99, 0x8a, 0x71, 0xea, 0x17, 0xfc, 0x99, 0x3f, 0x67, 0xd8, 0xbb,
+ 0xb1, 0x77, 0xd7, 0xe1, 0x93, 0x9b, 0x58, 0x5c, 0x21, 0x36, 0xff, 0x16,
+ 0x11, 0x2a, 0x89, 0xa8, 0x9d, 0x36, 0xad, 0x6d,
+};
+static const unsigned char kat2120_nonce[] = {
+ 0x4d, 0xd6, 0x76, 0xa4, 0x24, 0x15, 0xb4, 0x81, 0x87, 0xec, 0xbb, 0x8f,
+ 0x27, 0x05, 0x7a, 0x2c,
+};
+static const unsigned char kat2120_persstr[] = {0};
+static const unsigned char kat2120_entropyinreseed[] = {
+ 0xf7, 0x67, 0x3a, 0x0f, 0x9b, 0x21, 0x50, 0xee, 0x95, 0x67, 0xcd, 0xf4,
+ 0x81, 0x4a, 0x40, 0x99, 0x41, 0xa1, 0x76, 0x0c, 0xbf, 0xc3, 0x69, 0xe8,
+ 0xc7, 0xdf, 0xc7, 0x1b, 0x02, 0xc2, 0x78, 0x38,
+};
+static const unsigned char kat2120_addinreseed[] = {
+ 0xd1, 0x61, 0xc1, 0x8a, 0xbb, 0x23, 0xd0, 0x84, 0x0b, 0xd3, 0x77, 0xbf,
+ 0x7b, 0xf4, 0xd6, 0xe6, 0xaa, 0x2f, 0xeb, 0xe4, 0x54, 0x2b, 0xc5, 0x38,
+ 0x07, 0xaf, 0xd5, 0x0d, 0xd3, 0x2e, 0x71, 0x1e,
+};
+static const unsigned char kat2120_addin0[] = {
+ 0x92, 0xc1, 0x80, 0xe7, 0x7c, 0x48, 0xf9, 0xb4, 0xa0, 0xfa, 0x85, 0xf3,
+ 0x81, 0x2e, 0x0b, 0x2a, 0x19, 0xce, 0xaf, 0x56, 0x89, 0x0b, 0x57, 0x82,
+ 0xaf, 0x2c, 0xc9, 0x1f, 0x73, 0x8f, 0xc6, 0x65,
+};
+static const unsigned char kat2120_addin1[] = {
+ 0x50, 0x50, 0x67, 0xbe, 0x22, 0x50, 0xe0, 0x83, 0xf3, 0x2e, 0xbb, 0x38,
+ 0xfe, 0xab, 0x5f, 0xd1, 0xaf, 0x1b, 0x71, 0x79, 0xcc, 0x4b, 0x73, 0xa4,
+ 0xea, 0x75, 0xf3, 0xad, 0xf3, 0xe7, 0xfc, 0x5b,
+};
+static const unsigned char kat2120_retbits[] = {
+ 0x9c, 0x3d, 0xb7, 0x06, 0x21, 0xf2, 0xe9, 0xb6, 0x6d, 0x94, 0xa7, 0x2c,
+ 0xf9, 0x65, 0x27, 0x27, 0xbd, 0x76, 0xe1, 0x6f, 0xb9, 0x8e, 0x3f, 0x78,
+ 0x0b, 0x21, 0x8a, 0x3f, 0x84, 0xc4, 0xd5, 0xd3, 0x86, 0x04, 0xac, 0x85,
+ 0x71, 0xfb, 0x70, 0x76, 0xae, 0xa0, 0xd6, 0x69, 0x20, 0x6b, 0x37, 0xb9,
+ 0x78, 0x78, 0x77, 0x67, 0xdc, 0xb4, 0xe8, 0xf2, 0xcb, 0x64, 0x09, 0x2e,
+ 0x1c, 0xfb, 0x97, 0x39,
+};
+static const struct drbg_kat_pr_false kat2120_t = {
+ 4, kat2120_entropyin, kat2120_nonce, kat2120_persstr,
+ kat2120_entropyinreseed, kat2120_addinreseed, kat2120_addin0,
+ kat2120_addin1, kat2120_retbits
+};
+static const struct drbg_kat kat2120 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2120_t
+};
+
+static const unsigned char kat2121_entropyin[] = {
+ 0x71, 0x03, 0x7d, 0xf5, 0xd1, 0x85, 0x2f, 0xa6, 0xd5, 0x85, 0x26, 0x92,
+ 0xb3, 0x64, 0xbf, 0x74, 0xd8, 0x91, 0x3e, 0x4b, 0xcc, 0x01, 0x5e, 0xc9,
+ 0x7b, 0x8c, 0xb4, 0x5d, 0x45, 0x62, 0xe8, 0x51,
+};
+static const unsigned char kat2121_nonce[] = {
+ 0xf7, 0xae, 0xd4, 0x63, 0x1b, 0xfa, 0x3d, 0xe4, 0xa0, 0xf0, 0x28, 0xed,
+ 0xc9, 0xba, 0xae, 0xe0,
+};
+static const unsigned char kat2121_persstr[] = {0};
+static const unsigned char kat2121_entropyinreseed[] = {
+ 0xd6, 0xce, 0x60, 0x95, 0xeb, 0x53, 0x1c, 0x5e, 0xc9, 0x42, 0x20, 0x97,
+ 0x8f, 0xb4, 0x29, 0x3c, 0x8f, 0x62, 0x7e, 0x97, 0x0b, 0x0d, 0x34, 0xcd,
+ 0x2f, 0x44, 0xbd, 0xb3, 0x8e, 0xb9, 0xed, 0xd4,
+};
+static const unsigned char kat2121_addinreseed[] = {
+ 0x99, 0xa6, 0xe1, 0xf0, 0x0c, 0xc4, 0xb9, 0xc4, 0xf7, 0x79, 0x57, 0xd4,
+ 0xf8, 0x3a, 0x02, 0x41, 0xcf, 0x4e, 0xc1, 0x4c, 0x59, 0xdf, 0x8d, 0xef,
+ 0x35, 0xdf, 0xde, 0x2b, 0x5b, 0x44, 0x1d, 0x75,
+};
+static const unsigned char kat2121_addin0[] = {
+ 0xde, 0xf6, 0xf7, 0x96, 0x03, 0xde, 0x44, 0x66, 0xcd, 0x17, 0xc0, 0xa9,
+ 0x3b, 0x58, 0x2e, 0xa2, 0xbc, 0x2d, 0x94, 0xde, 0xd2, 0x4d, 0x74, 0xbd,
+ 0xe5, 0x7e, 0x81, 0x08, 0x56, 0x67, 0x30, 0xc5,
+};
+static const unsigned char kat2121_addin1[] = {
+ 0x88, 0x05, 0xf0, 0x93, 0xa6, 0x7f, 0x02, 0xb2, 0x08, 0xfa, 0x37, 0x44,
+ 0x51, 0x11, 0x58, 0xf3, 0xfa, 0xc0, 0x7a, 0x78, 0x84, 0xfd, 0xbd, 0x2e,
+ 0x5a, 0x96, 0xee, 0xc9, 0x64, 0x57, 0x64, 0xf0,
+};
+static const unsigned char kat2121_retbits[] = {
+ 0x87, 0x03, 0x35, 0xd8, 0x35, 0x76, 0xcf, 0x60, 0xb9, 0x74, 0xef, 0x6b,
+ 0x2d, 0xd1, 0xe2, 0xa9, 0x73, 0x90, 0x16, 0x67, 0xa6, 0x90, 0x5e, 0x18,
+ 0x1e, 0x5a, 0x04, 0x9a, 0x7a, 0xf0, 0xf4, 0x83, 0xbe, 0xd1, 0xff, 0x11,
+ 0x65, 0xd5, 0xff, 0x09, 0x4e, 0x88, 0x56, 0xbd, 0x7f, 0x93, 0x34, 0x2d,
+ 0xbe, 0xa5, 0xe4, 0xa5, 0x40, 0x7e, 0x7a, 0x5e, 0x20, 0x41, 0xa9, 0x6c,
+ 0x94, 0x3a, 0x25, 0x54,
+};
+static const struct drbg_kat_pr_false kat2121_t = {
+ 5, kat2121_entropyin, kat2121_nonce, kat2121_persstr,
+ kat2121_entropyinreseed, kat2121_addinreseed, kat2121_addin0,
+ kat2121_addin1, kat2121_retbits
+};
+static const struct drbg_kat kat2121 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2121_t
+};
+
+static const unsigned char kat2122_entropyin[] = {
+ 0x4e, 0x40, 0xed, 0x65, 0xde, 0xaf, 0xbe, 0x08, 0xd8, 0x1a, 0xca, 0x66,
+ 0x07, 0x51, 0x8f, 0xa9, 0xe5, 0x58, 0xba, 0x83, 0x23, 0x5c, 0xb9, 0x23,
+ 0xae, 0x5e, 0xc2, 0xd4, 0x81, 0x9e, 0x4f, 0xb2,
+};
+static const unsigned char kat2122_nonce[] = {
+ 0xec, 0xd1, 0xc0, 0x86, 0x38, 0x92, 0xcd, 0x09, 0x6e, 0xc0, 0x00, 0xd1,
+ 0xf8, 0x29, 0x58, 0x86,
+};
+static const unsigned char kat2122_persstr[] = {0};
+static const unsigned char kat2122_entropyinreseed[] = {
+ 0x38, 0x1b, 0xc2, 0x4e, 0xf1, 0xfe, 0xa4, 0x04, 0xc6, 0x85, 0xeb, 0x7b,
+ 0x06, 0xc4, 0x0d, 0xb6, 0x97, 0x2a, 0xf2, 0xf9, 0x98, 0x04, 0xdf, 0xa8,
+ 0x87, 0x59, 0x14, 0x7a, 0xad, 0x41, 0xa8, 0x62,
+};
+static const unsigned char kat2122_addinreseed[] = {
+ 0x2d, 0x28, 0x44, 0x5e, 0xa8, 0x81, 0xec, 0x3a, 0x42, 0x37, 0x41, 0xb1,
+ 0x70, 0xb5, 0xef, 0x85, 0x29, 0xe5, 0xdc, 0x53, 0xa2, 0x6f, 0x2d, 0x63,
+ 0x45, 0x2a, 0xf4, 0x28, 0x61, 0x3d, 0x56, 0xd5,
+};
+static const unsigned char kat2122_addin0[] = {
+ 0xb7, 0xca, 0x5f, 0xb6, 0xd8, 0xa7, 0xce, 0x2a, 0x5d, 0x25, 0xbc, 0xba,
+ 0xc2, 0x46, 0x97, 0x8a, 0x26, 0x01, 0x83, 0x2f, 0xcd, 0x9e, 0xa2, 0x35,
+ 0x0b, 0xbb, 0x7b, 0xb8, 0x34, 0xfc, 0xa7, 0x85,
+};
+static const unsigned char kat2122_addin1[] = {
+ 0xc5, 0xdd, 0x43, 0x28, 0xa1, 0x10, 0xd6, 0x9a, 0xa1, 0xfe, 0x1b, 0x24,
+ 0x28, 0x1b, 0x8b, 0xbf, 0x7a, 0x15, 0xe7, 0x86, 0x21, 0xd6, 0x2a, 0x66,
+ 0x56, 0xf3, 0xa0, 0x3c, 0x87, 0xdd, 0x92, 0xa7,
+};
+static const unsigned char kat2122_retbits[] = {
+ 0xb9, 0x7b, 0x22, 0x0c, 0x2c, 0x44, 0x70, 0x29, 0xc1, 0x58, 0x75, 0x9f,
+ 0x0a, 0x5e, 0x94, 0x4e, 0x35, 0x3c, 0x15, 0xf0, 0x3d, 0x3a, 0x74, 0x55,
+ 0x52, 0xf8, 0xd5, 0x41, 0x53, 0x35, 0xe8, 0xc8, 0x4b, 0x80, 0x38, 0xe6,
+ 0x30, 0xbd, 0x82, 0x18, 0x3b, 0x0c, 0x1a, 0x3c, 0x4f, 0x75, 0xc4, 0xe2,
+ 0x08, 0xe2, 0x75, 0x76, 0x37, 0x36, 0x53, 0xee, 0xa7, 0xb8, 0x4b, 0x1e,
+ 0xc7, 0x04, 0xf4, 0x96,
+};
+static const struct drbg_kat_pr_false kat2122_t = {
+ 6, kat2122_entropyin, kat2122_nonce, kat2122_persstr,
+ kat2122_entropyinreseed, kat2122_addinreseed, kat2122_addin0,
+ kat2122_addin1, kat2122_retbits
+};
+static const struct drbg_kat kat2122 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2122_t
+};
+
+static const unsigned char kat2123_entropyin[] = {
+ 0xc7, 0xa8, 0x47, 0x9e, 0x9a, 0x97, 0xa0, 0x4c, 0xb3, 0x1a, 0x75, 0xb1,
+ 0xcc, 0x8c, 0x12, 0x89, 0x73, 0x83, 0xd4, 0xb3, 0x58, 0xd6, 0x30, 0x80,
+ 0x67, 0x93, 0x93, 0x1d, 0x67, 0xe2, 0x9f, 0x2e,
+};
+static const unsigned char kat2123_nonce[] = {
+ 0x69, 0x52, 0x33, 0x66, 0x95, 0xe2, 0xf5, 0x18, 0x42, 0xe5, 0x0d, 0x47,
+ 0xac, 0x03, 0x1e, 0x3a,
+};
+static const unsigned char kat2123_persstr[] = {0};
+static const unsigned char kat2123_entropyinreseed[] = {
+ 0x4d, 0xbe, 0xf9, 0x60, 0x13, 0xf0, 0xb0, 0x35, 0xdc, 0xce, 0xfb, 0x03,
+ 0x36, 0x20, 0x74, 0xe4, 0x25, 0xe4, 0xa7, 0x49, 0x16, 0xbe, 0x7c, 0x9c,
+ 0x8a, 0xdd, 0x37, 0x68, 0x35, 0x9f, 0x63, 0x10,
+};
+static const unsigned char kat2123_addinreseed[] = {
+ 0xdd, 0xa0, 0xcd, 0x22, 0xf2, 0x4c, 0xff, 0x55, 0x2a, 0xb9, 0x63, 0x81,
+ 0x98, 0x67, 0x82, 0xbb, 0xdf, 0x4f, 0xa9, 0x1d, 0x17, 0xbb, 0x25, 0x26,
+ 0x5b, 0x8f, 0x30, 0xcc, 0xa9, 0x31, 0xb3, 0xf6,
+};
+static const unsigned char kat2123_addin0[] = {
+ 0x8a, 0x08, 0x98, 0xe1, 0xea, 0xa5, 0xca, 0x96, 0xcb, 0xff, 0xd0, 0xae,
+ 0xf4, 0xaa, 0xfb, 0x59, 0xe5, 0x53, 0x00, 0x99, 0x0f, 0xf4, 0xe4, 0xd2,
+ 0xa5, 0x57, 0x44, 0x9a, 0x9f, 0x45, 0x2b, 0x0b,
+};
+static const unsigned char kat2123_addin1[] = {
+ 0xc0, 0xb4, 0x8a, 0xe5, 0xe4, 0xcf, 0xf6, 0x0d, 0x9d, 0x80, 0x92, 0x10,
+ 0x41, 0x05, 0xa4, 0x85, 0xd4, 0x00, 0xc4, 0xe6, 0x2a, 0x20, 0x87, 0xb6,
+ 0xee, 0xfb, 0x8c, 0x45, 0xc7, 0x25, 0x1a, 0x15,
+};
+static const unsigned char kat2123_retbits[] = {
+ 0x8e, 0xa6, 0x1e, 0x74, 0x00, 0x80, 0xed, 0xcd, 0x50, 0xd8, 0x53, 0x6e,
+ 0xdf, 0x1f, 0xb0, 0x9c, 0xab, 0x95, 0x14, 0xaf, 0xd3, 0xf5, 0xd7, 0x0c,
+ 0x61, 0xe0, 0x62, 0x53, 0xcf, 0xe2, 0x9c, 0x35, 0x7f, 0x58, 0xdc, 0xcc,
+ 0xc7, 0xa9, 0x47, 0x8c, 0xb9, 0x11, 0xd8, 0xb0, 0x78, 0xd0, 0x28, 0xfc,
+ 0x28, 0x44, 0x96, 0x78, 0xa4, 0x7e, 0x12, 0xc1, 0xef, 0x80, 0xed, 0xbd,
+ 0x68, 0x28, 0x05, 0x5b,
+};
+static const struct drbg_kat_pr_false kat2123_t = {
+ 7, kat2123_entropyin, kat2123_nonce, kat2123_persstr,
+ kat2123_entropyinreseed, kat2123_addinreseed, kat2123_addin0,
+ kat2123_addin1, kat2123_retbits
+};
+static const struct drbg_kat kat2123 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2123_t
+};
+
+static const unsigned char kat2124_entropyin[] = {
+ 0xdf, 0x2f, 0xc4, 0x1f, 0x0b, 0xd9, 0xd1, 0x85, 0xdc, 0x15, 0xc6, 0xea,
+ 0xb6, 0xb9, 0xe9, 0xe7, 0x26, 0x7e, 0x8c, 0xce, 0x27, 0x22, 0x81, 0xaf,
+ 0xa5, 0xd6, 0x54, 0x5a, 0x75, 0xea, 0x7a, 0x18,
+};
+static const unsigned char kat2124_nonce[] = {
+ 0x28, 0x65, 0xdc, 0x91, 0xbd, 0xf6, 0xbb, 0x25, 0xbd, 0xf9, 0xec, 0xae,
+ 0x68, 0x10, 0xbe, 0x24,
+};
+static const unsigned char kat2124_persstr[] = {0};
+static const unsigned char kat2124_entropyinreseed[] = {
+ 0x21, 0x01, 0xfe, 0xbe, 0x49, 0x04, 0xbe, 0xfd, 0xce, 0xf6, 0x08, 0x94,
+ 0x53, 0xac, 0x1b, 0x3c, 0x82, 0xcb, 0xee, 0x72, 0x5d, 0x96, 0x9f, 0x09,
+ 0x77, 0xcb, 0x57, 0x4c, 0xd2, 0xa4, 0x41, 0x2e,
+};
+static const unsigned char kat2124_addinreseed[] = {
+ 0x31, 0xb8, 0xd2, 0x98, 0x48, 0xa0, 0x4f, 0x81, 0x59, 0xb8, 0x02, 0xd6,
+ 0xec, 0x98, 0x27, 0x49, 0xe7, 0xfa, 0x4a, 0xa0, 0xb8, 0x72, 0x29, 0x1d,
+ 0x2c, 0xc9, 0xda, 0x03, 0x10, 0x34, 0x4d, 0x43,
+};
+static const unsigned char kat2124_addin0[] = {
+ 0xb0, 0xaa, 0xd9, 0xd5, 0x68, 0x57, 0x88, 0xfe, 0x82, 0x1b, 0xb2, 0xbb,
+ 0x81, 0xd3, 0x42, 0x0f, 0x49, 0xa5, 0x1a, 0xec, 0x11, 0x8f, 0x54, 0x87,
+ 0xf4, 0x15, 0x52, 0x84, 0x78, 0x85, 0x76, 0xe8,
+};
+static const unsigned char kat2124_addin1[] = {
+ 0xba, 0x68, 0xcc, 0x2e, 0xde, 0x48, 0x38, 0xa8, 0x34, 0x93, 0x8d, 0xce,
+ 0xa6, 0x94, 0xfa, 0x63, 0x41, 0xb0, 0x73, 0x28, 0x60, 0xc0, 0xed, 0xa9,
+ 0xcd, 0x0f, 0xd3, 0xc6, 0xe6, 0x87, 0xc9, 0x88,
+};
+static const unsigned char kat2124_retbits[] = {
+ 0x4d, 0xcf, 0x23, 0xca, 0x7f, 0xa9, 0x87, 0x21, 0x65, 0x1c, 0x0c, 0xcf,
+ 0x5f, 0x7a, 0xe8, 0xcd, 0xfa, 0x51, 0x2c, 0xba, 0x1a, 0x90, 0xf4, 0xcb,
+ 0x31, 0xac, 0x8d, 0x13, 0x16, 0xc1, 0xd3, 0x67, 0x2e, 0xd8, 0x46, 0x55,
+ 0x4c, 0xd6, 0x2e, 0xb8, 0x5c, 0xbd, 0x0e, 0xd9, 0xb2, 0x8f, 0x6e, 0x2a,
+ 0xac, 0x87, 0xa1, 0xb2, 0x90, 0x76, 0xd3, 0x27, 0x8a, 0xbe, 0x1d, 0xc4,
+ 0xd9, 0x81, 0x37, 0x95,
+};
+static const struct drbg_kat_pr_false kat2124_t = {
+ 8, kat2124_entropyin, kat2124_nonce, kat2124_persstr,
+ kat2124_entropyinreseed, kat2124_addinreseed, kat2124_addin0,
+ kat2124_addin1, kat2124_retbits
+};
+static const struct drbg_kat kat2124 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2124_t
+};
+
+static const unsigned char kat2125_entropyin[] = {
+ 0x79, 0x86, 0x4c, 0xd2, 0xd6, 0x9f, 0xc5, 0xb7, 0x5f, 0xac, 0xa2, 0xa9,
+ 0x35, 0x03, 0xec, 0xf2, 0x1b, 0x60, 0x17, 0x67, 0x54, 0xc7, 0xe6, 0xc0,
+ 0x28, 0xec, 0xbb, 0x67, 0x4f, 0x2b, 0xba, 0xac,
+};
+static const unsigned char kat2125_nonce[] = {
+ 0x61, 0x9b, 0x1f, 0x7e, 0xd2, 0x8f, 0x45, 0x1c, 0xee, 0x9b, 0xa7, 0x3f,
+ 0x61, 0x4b, 0x05, 0x90,
+};
+static const unsigned char kat2125_persstr[] = {0};
+static const unsigned char kat2125_entropyinreseed[] = {
+ 0xa6, 0x18, 0xdb, 0xbf, 0x6a, 0xcb, 0x2e, 0x29, 0xb2, 0x73, 0xee, 0x89,
+ 0xce, 0x86, 0x6e, 0xa2, 0x93, 0xb2, 0x8b, 0x4b, 0x11, 0xb4, 0x7c, 0xef,
+ 0x8c, 0x48, 0xbe, 0xc2, 0x93, 0x39, 0x7c, 0xf1,
+};
+static const unsigned char kat2125_addinreseed[] = {
+ 0xd2, 0x2d, 0xb1, 0x90, 0xf2, 0xa7, 0x17, 0x45, 0xa7, 0xbd, 0xe0, 0x72,
+ 0x3f, 0xde, 0xf0, 0x58, 0x80, 0xf8, 0xe3, 0x73, 0x86, 0x5c, 0x6e, 0x8b,
+ 0x93, 0x33, 0xaa, 0x93, 0x33, 0xb0, 0xdb, 0x55,
+};
+static const unsigned char kat2125_addin0[] = {
+ 0x76, 0x0c, 0xe1, 0x2b, 0x9a, 0x1f, 0x09, 0xed, 0x4c, 0x0b, 0x9a, 0xe5,
+ 0xcf, 0x47, 0x85, 0xad, 0x0a, 0x8e, 0x6f, 0x4e, 0x69, 0x92, 0x3d, 0xcc,
+ 0xf8, 0x21, 0x38, 0xbf, 0x2c, 0x57, 0x52, 0x73,
+};
+static const unsigned char kat2125_addin1[] = {
+ 0xe6, 0x17, 0x61, 0xdc, 0x83, 0xfd, 0xf9, 0x4e, 0x91, 0x0b, 0x25, 0xb1,
+ 0xc1, 0x6b, 0x83, 0x65, 0x30, 0xbe, 0x7c, 0xd3, 0x30, 0x6b, 0x4f, 0x29,
+ 0x81, 0xba, 0x1a, 0x05, 0x43, 0x32, 0xe7, 0x8d,
+};
+static const unsigned char kat2125_retbits[] = {
+ 0xef, 0x45, 0xa0, 0xe1, 0x1a, 0x2e, 0xc4, 0x00, 0x89, 0x45, 0xbb, 0xf2,
+ 0xe2, 0xa3, 0x9f, 0xf2, 0x6b, 0xf4, 0xce, 0x12, 0x62, 0x40, 0x12, 0x93,
+ 0x32, 0x64, 0x86, 0x41, 0x2e, 0x77, 0xe7, 0x13, 0x5f, 0xc3, 0xbc, 0xba,
+ 0x60, 0xc2, 0x61, 0x3b, 0x48, 0x93, 0xd3, 0x75, 0x5b, 0xd2, 0x25, 0x37,
+ 0xab, 0x34, 0x75, 0x85, 0x93, 0x12, 0x16, 0x15, 0x19, 0x10, 0xcb, 0xf9,
+ 0x68, 0x76, 0xb3, 0x00,
+};
+static const struct drbg_kat_pr_false kat2125_t = {
+ 9, kat2125_entropyin, kat2125_nonce, kat2125_persstr,
+ kat2125_entropyinreseed, kat2125_addinreseed, kat2125_addin0,
+ kat2125_addin1, kat2125_retbits
+};
+static const struct drbg_kat kat2125 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2125_t
+};
+
+static const unsigned char kat2126_entropyin[] = {
+ 0x23, 0xf3, 0x2f, 0xd6, 0xa8, 0x09, 0x79, 0xd0, 0x04, 0xdd, 0xeb, 0xa2,
+ 0xfb, 0xce, 0xa7, 0x30, 0x65, 0x94, 0x20, 0x68, 0x07, 0xe6, 0x6e, 0xd0,
+ 0x5e, 0x8a, 0xa4, 0x64, 0xec, 0x91, 0xb7, 0x14,
+};
+static const unsigned char kat2126_nonce[] = {
+ 0x75, 0x31, 0x14, 0xf0, 0x3f, 0x8f, 0xa5, 0x14, 0xb7, 0xd3, 0x09, 0xad,
+ 0xc9, 0x0a, 0xa5, 0x49,
+};
+static const unsigned char kat2126_persstr[] = {0};
+static const unsigned char kat2126_entropyinreseed[] = {
+ 0xe0, 0x32, 0x91, 0xac, 0x01, 0x95, 0x89, 0x46, 0xc9, 0x68, 0x8e, 0xaa,
+ 0x3a, 0xe7, 0x93, 0x35, 0x7e, 0x9f, 0x75, 0xb4, 0x71, 0x53, 0xd7, 0x1b,
+ 0x26, 0x37, 0x5f, 0x6a, 0x10, 0x07, 0x0a, 0xdd,
+};
+static const unsigned char kat2126_addinreseed[] = {
+ 0x7a, 0xd9, 0x39, 0x8a, 0x31, 0x37, 0xa1, 0xd5, 0x22, 0xe0, 0xe2, 0x22,
+ 0x95, 0x02, 0x05, 0x9b, 0xed, 0xc0, 0xb4, 0x85, 0x49, 0x59, 0x80, 0x9e,
+ 0xef, 0x19, 0xad, 0xaf, 0x9f, 0x59, 0x3a, 0x70,
+};
+static const unsigned char kat2126_addin0[] = {
+ 0xb0, 0xd4, 0xe8, 0x96, 0xb9, 0xa0, 0xbe, 0xa0, 0x73, 0xd4, 0x29, 0xc9,
+ 0x62, 0x8c, 0x23, 0x75, 0xaa, 0x89, 0x66, 0xfb, 0x3e, 0xf4, 0x4c, 0xf4,
+ 0xe4, 0x01, 0x02, 0x97, 0x63, 0x5b, 0xab, 0xd8,
+};
+static const unsigned char kat2126_addin1[] = {
+ 0x08, 0xb1, 0xf2, 0xd6, 0x9c, 0x90, 0x00, 0x7c, 0xaf, 0x10, 0xbb, 0x98,
+ 0x8b, 0xaf, 0x3f, 0x7e, 0xd9, 0xed, 0xc5, 0xfa, 0x49, 0xf9, 0x1e, 0xa6,
+ 0x82, 0x67, 0x59, 0x60, 0x95, 0x88, 0x26, 0xc0,
+};
+static const unsigned char kat2126_retbits[] = {
+ 0x0b, 0x24, 0xd8, 0xfa, 0xdd, 0xe9, 0x49, 0xb8, 0xce, 0x0a, 0x44, 0xa5,
+ 0x5c, 0xff, 0x2a, 0xfd, 0x20, 0x35, 0x8b, 0xe7, 0x57, 0x99, 0x32, 0xb3,
+ 0xa5, 0xbb, 0xc4, 0x1c, 0xc9, 0xcc, 0xe2, 0xbc, 0x10, 0x78, 0x47, 0xdd,
+ 0x14, 0xe3, 0x34, 0xda, 0x5c, 0x8e, 0xb3, 0xfe, 0x03, 0x97, 0x60, 0x46,
+ 0x27, 0xa9, 0x3f, 0x87, 0x91, 0xd6, 0x4a, 0x41, 0x6c, 0x6f, 0x83, 0x22,
+ 0x42, 0xaf, 0x05, 0xde,
+};
+static const struct drbg_kat_pr_false kat2126_t = {
+ 10, kat2126_entropyin, kat2126_nonce, kat2126_persstr,
+ kat2126_entropyinreseed, kat2126_addinreseed, kat2126_addin0,
+ kat2126_addin1, kat2126_retbits
+};
+static const struct drbg_kat kat2126 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2126_t
+};
+
+static const unsigned char kat2127_entropyin[] = {
+ 0x7f, 0xf4, 0x9d, 0x51, 0xb6, 0xbc, 0x73, 0x01, 0xd2, 0xd3, 0x3a, 0x13,
+ 0x76, 0x78, 0x2c, 0x95, 0x10, 0xf2, 0xb1, 0x6e, 0x83, 0x9c, 0xe2, 0xd2,
+ 0x85, 0x63, 0xfc, 0x28, 0x78, 0xf6, 0x2e, 0x16,
+};
+static const unsigned char kat2127_nonce[] = {
+ 0x88, 0xb7, 0x48, 0x9a, 0xb9, 0x75, 0x45, 0x03, 0xe9, 0x80, 0x58, 0xc4,
+ 0xcd, 0x9a, 0x18, 0xf4,
+};
+static const unsigned char kat2127_persstr[] = {0};
+static const unsigned char kat2127_entropyinreseed[] = {
+ 0x17, 0xcb, 0xc9, 0x23, 0x6b, 0x1a, 0x43, 0x5d, 0x17, 0xed, 0x3e, 0x7f,
+ 0x43, 0x84, 0x83, 0x39, 0x40, 0xb8, 0x74, 0xbc, 0x26, 0xdd, 0x64, 0xab,
+ 0xda, 0x01, 0x83, 0xf2, 0xf1, 0x4b, 0x7a, 0xa4,
+};
+static const unsigned char kat2127_addinreseed[] = {
+ 0x55, 0x78, 0x0b, 0x47, 0x16, 0x28, 0xcb, 0xcc, 0xa5, 0xbb, 0x71, 0x6c,
+ 0x42, 0xc8, 0x08, 0x3e, 0x1d, 0x45, 0x5e, 0xbe, 0x56, 0x9d, 0x39, 0xfa,
+ 0x65, 0x6b, 0x0b, 0xee, 0x1b, 0xba, 0xe1, 0xfd,
+};
+static const unsigned char kat2127_addin0[] = {
+ 0xa5, 0xf9, 0x4d, 0xfa, 0x79, 0x88, 0xbc, 0xf8, 0x8b, 0xde, 0x68, 0xf7,
+ 0x31, 0x12, 0x48, 0xe4, 0xdf, 0x8b, 0xe9, 0xaf, 0x8d, 0xf3, 0xf4, 0x81,
+ 0x4e, 0x97, 0x6b, 0x75, 0x1c, 0x23, 0x11, 0x3a,
+};
+static const unsigned char kat2127_addin1[] = {
+ 0x59, 0x87, 0xbf, 0xb2, 0x7d, 0x2f, 0xe8, 0xf5, 0xca, 0x95, 0x53, 0x9a,
+ 0x85, 0x35, 0xa8, 0xcc, 0x3d, 0xa2, 0x67, 0x70, 0xc7, 0x3f, 0xf3, 0x4e,
+ 0xe8, 0xd3, 0x76, 0x47, 0x44, 0x83, 0xf3, 0x2a,
+};
+static const unsigned char kat2127_retbits[] = {
+ 0x63, 0x07, 0x1a, 0x08, 0xf1, 0xc2, 0x55, 0xad, 0x89, 0x87, 0xe8, 0x34,
+ 0x88, 0x2d, 0xa0, 0xeb, 0xff, 0xe5, 0xee, 0x72, 0xfd, 0xf4, 0xb4, 0xbf,
+ 0xcd, 0xc4, 0xb7, 0x80, 0x82, 0xee, 0xcc, 0x5e, 0x3a, 0x59, 0xb2, 0x18,
+ 0xb9, 0xd9, 0x08, 0x4d, 0xef, 0xdf, 0x06, 0x1f, 0xe6, 0xaf, 0x5d, 0xd5,
+ 0x70, 0xcb, 0x93, 0x2e, 0xf4, 0x4f, 0xf6, 0x41, 0xd4, 0x74, 0xaa, 0x04,
+ 0x58, 0x7f, 0xd7, 0x12,
+};
+static const struct drbg_kat_pr_false kat2127_t = {
+ 11, kat2127_entropyin, kat2127_nonce, kat2127_persstr,
+ kat2127_entropyinreseed, kat2127_addinreseed, kat2127_addin0,
+ kat2127_addin1, kat2127_retbits
+};
+static const struct drbg_kat kat2127 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2127_t
+};
+
+static const unsigned char kat2128_entropyin[] = {
+ 0x59, 0xc6, 0x24, 0x97, 0x25, 0x40, 0x13, 0x30, 0x29, 0xe9, 0x15, 0x62,
+ 0x33, 0x2c, 0xcf, 0x40, 0xf7, 0xb5, 0x56, 0x28, 0x64, 0x07, 0xa7, 0x3e,
+ 0xa7, 0xc9, 0xdf, 0x43, 0x04, 0xd2, 0xf3, 0x25,
+};
+static const unsigned char kat2128_nonce[] = {
+ 0xc0, 0xe4, 0x7a, 0x74, 0xbb, 0x19, 0xd6, 0xb1, 0x60, 0x96, 0x36, 0x4c,
+ 0x37, 0xba, 0x0c, 0xe5,
+};
+static const unsigned char kat2128_persstr[] = {0};
+static const unsigned char kat2128_entropyinreseed[] = {
+ 0xcc, 0xa8, 0xc1, 0xbb, 0x44, 0x82, 0xa4, 0x83, 0x34, 0x39, 0x19, 0x76,
+ 0x57, 0xb1, 0x1d, 0x64, 0xa5, 0xe6, 0x56, 0xe0, 0xe6, 0x1a, 0xe7, 0x1d,
+ 0x90, 0x51, 0x58, 0xc0, 0xd9, 0xbf, 0xa3, 0xaf,
+};
+static const unsigned char kat2128_addinreseed[] = {
+ 0x41, 0x28, 0x78, 0xf5, 0x68, 0x08, 0x31, 0x61, 0xe5, 0xc8, 0x60, 0x8b,
+ 0xa6, 0x12, 0x80, 0x77, 0x33, 0x96, 0x73, 0x0f, 0x79, 0x16, 0x00, 0x39,
+ 0x01, 0x03, 0x39, 0x5c, 0x7e, 0x80, 0xc6, 0x00,
+};
+static const unsigned char kat2128_addin0[] = {
+ 0x04, 0x8e, 0xcc, 0xc9, 0x29, 0xef, 0x23, 0xbb, 0x41, 0x4d, 0x3d, 0x1a,
+ 0x4e, 0x6e, 0xc7, 0x03, 0xb0, 0x32, 0xf2, 0x1a, 0x23, 0xd5, 0x94, 0x08,
+ 0x15, 0xef, 0xdb, 0x06, 0x0b, 0xe5, 0x95, 0x42,
+};
+static const unsigned char kat2128_addin1[] = {
+ 0x43, 0x30, 0xd5, 0x48, 0x7d, 0x71, 0x70, 0xf5, 0x5e, 0xdb, 0x3a, 0x50,
+ 0x93, 0x6c, 0x75, 0xbb, 0xf5, 0x23, 0x0f, 0x24, 0x7b, 0x29, 0x52, 0x45,
+ 0xca, 0x10, 0x78, 0xd8, 0xb6, 0x46, 0xe5, 0x2d,
+};
+static const unsigned char kat2128_retbits[] = {
+ 0x6c, 0x58, 0x12, 0x77, 0x55, 0x6d, 0x56, 0xa3, 0x3d, 0x15, 0x48, 0xca,
+ 0xe0, 0x32, 0x0c, 0x5e, 0x40, 0xa7, 0x9a, 0x81, 0x31, 0xbf, 0xe5, 0x64,
+ 0x60, 0x4d, 0x5e, 0x05, 0xb1, 0x0c, 0xce, 0x0a, 0x9f, 0x69, 0xcf, 0x32,
+ 0x4b, 0xa3, 0xd5, 0x2a, 0x04, 0xa8, 0x56, 0x35, 0x8d, 0xf5, 0xef, 0x72,
+ 0x0c, 0xa2, 0x5a, 0xf4, 0xd6, 0x6a, 0x8d, 0x5b, 0xf9, 0x16, 0x21, 0x76,
+ 0xfa, 0xc7, 0xf1, 0x70,
+};
+static const struct drbg_kat_pr_false kat2128_t = {
+ 12, kat2128_entropyin, kat2128_nonce, kat2128_persstr,
+ kat2128_entropyinreseed, kat2128_addinreseed, kat2128_addin0,
+ kat2128_addin1, kat2128_retbits
+};
+static const struct drbg_kat kat2128 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2128_t
+};
+
+static const unsigned char kat2129_entropyin[] = {
+ 0x43, 0x60, 0xd1, 0xf9, 0x2c, 0xa7, 0x60, 0x0f, 0x95, 0x4e, 0xab, 0x31,
+ 0x0a, 0xa1, 0xb4, 0xe5, 0x84, 0xf3, 0x27, 0x94, 0xa2, 0x7c, 0xb4, 0xa4,
+ 0x99, 0x8f, 0xc5, 0x16, 0x97, 0x32, 0x62, 0xaf,
+};
+static const unsigned char kat2129_nonce[] = {
+ 0xac, 0xd8, 0xb9, 0x47, 0xd3, 0xf3, 0x25, 0x2c, 0xc1, 0x1f, 0x22, 0xd4,
+ 0x7c, 0xe7, 0x28, 0xf3,
+};
+static const unsigned char kat2129_persstr[] = {0};
+static const unsigned char kat2129_entropyinreseed[] = {
+ 0x81, 0x5c, 0x19, 0x40, 0x6b, 0x7f, 0x65, 0x9b, 0x65, 0x61, 0xc7, 0x23,
+ 0x2c, 0xe3, 0x0e, 0x71, 0x9f, 0xca, 0x70, 0x04, 0xc6, 0x6e, 0xd6, 0xf0,
+ 0x59, 0x64, 0x72, 0x34, 0x0c, 0x24, 0xed, 0x13,
+};
+static const unsigned char kat2129_addinreseed[] = {
+ 0xb4, 0xe5, 0xc9, 0xb9, 0xd4, 0x54, 0xcb, 0x10, 0x98, 0xbb, 0x94, 0x96,
+ 0x14, 0xa8, 0x4c, 0x36, 0xce, 0xe8, 0xfb, 0x57, 0xc6, 0x27, 0xea, 0x86,
+ 0x31, 0xf5, 0xc0, 0xb6, 0x30, 0x3a, 0x21, 0x37,
+};
+static const unsigned char kat2129_addin0[] = {
+ 0xab, 0xef, 0xd6, 0xa5, 0xf2, 0xe8, 0x8a, 0x69, 0x79, 0x06, 0xd7, 0x4b,
+ 0x23, 0xb3, 0x9a, 0xf9, 0x7a, 0x19, 0x5a, 0x30, 0xb8, 0xc6, 0x3d, 0x22,
+ 0x6b, 0xae, 0x6b, 0x2d, 0xdf, 0x29, 0x56, 0xbe,
+};
+static const unsigned char kat2129_addin1[] = {
+ 0xd3, 0xf2, 0x27, 0x7e, 0x1e, 0x89, 0xdc, 0x6c, 0xd9, 0x75, 0xe7, 0xd7,
+ 0x7d, 0xca, 0x4b, 0x74, 0xbf, 0x67, 0xc6, 0x8b, 0x4e, 0x8d, 0xbb, 0xc2,
+ 0xbb, 0x1c, 0xd0, 0x29, 0x8b, 0x3d, 0xf0, 0x75,
+};
+static const unsigned char kat2129_retbits[] = {
+ 0x1a, 0xf3, 0x58, 0x62, 0x99, 0xe7, 0xfb, 0x06, 0x9d, 0x13, 0xcf, 0x8e,
+ 0x16, 0x97, 0xcd, 0x3d, 0x24, 0xfd, 0x1b, 0x1c, 0x65, 0x6b, 0x64, 0xc2,
+ 0xc5, 0x6c, 0xfb, 0x5f, 0x32, 0x15, 0x68, 0xc4, 0x35, 0xae, 0x15, 0x24,
+ 0xf5, 0x7a, 0x86, 0x09, 0x7a, 0xbd, 0xf0, 0x88, 0xfd, 0x35, 0x5d, 0xb9,
+ 0x8a, 0x1b, 0xd2, 0x4c, 0xe8, 0x2a, 0xf7, 0xfb, 0x0b, 0xd3, 0xfe, 0x5e,
+ 0x0b, 0x26, 0x36, 0x15,
+};
+static const struct drbg_kat_pr_false kat2129_t = {
+ 13, kat2129_entropyin, kat2129_nonce, kat2129_persstr,
+ kat2129_entropyinreseed, kat2129_addinreseed, kat2129_addin0,
+ kat2129_addin1, kat2129_retbits
+};
+static const struct drbg_kat kat2129 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2129_t
+};
+
+static const unsigned char kat2130_entropyin[] = {
+ 0x18, 0x14, 0x21, 0xb5, 0xee, 0x17, 0x84, 0x1e, 0x23, 0x92, 0xdf, 0x0b,
+ 0xe3, 0xbe, 0xbc, 0xb4, 0xe9, 0x05, 0xbb, 0x5c, 0xdf, 0x7c, 0xdd, 0xa6,
+ 0xb9, 0x60, 0x4f, 0x81, 0x45, 0x0b, 0xfa, 0x23,
+};
+static const unsigned char kat2130_nonce[] = {
+ 0x7e, 0x9d, 0xe5, 0xb3, 0x72, 0x41, 0xf1, 0xc4, 0xea, 0x91, 0x07, 0x00,
+ 0xd8, 0xf8, 0x60, 0x94,
+};
+static const unsigned char kat2130_persstr[] = {0};
+static const unsigned char kat2130_entropyinreseed[] = {
+ 0xc3, 0xe2, 0xe3, 0x8d, 0xe2, 0xb2, 0x6b, 0x35, 0x99, 0x62, 0xab, 0xf5,
+ 0x6b, 0xbf, 0xe4, 0xcb, 0x73, 0x63, 0x4f, 0x79, 0xc1, 0x21, 0x46, 0x9d,
+ 0x45, 0x44, 0x68, 0x8d, 0x65, 0xe9, 0xce, 0xc9,
+};
+static const unsigned char kat2130_addinreseed[] = {
+ 0xcf, 0x24, 0xf3, 0x4c, 0xc1, 0xd7, 0x65, 0xe8, 0x82, 0x93, 0xa7, 0x70,
+ 0x7c, 0xf5, 0x22, 0xc2, 0x98, 0xea, 0x33, 0x5b, 0xfc, 0xc9, 0xd9, 0xa6,
+ 0xe8, 0x0b, 0xce, 0x3d, 0x57, 0x55, 0x58, 0x2c,
+};
+static const unsigned char kat2130_addin0[] = {
+ 0x1b, 0xe2, 0x40, 0x10, 0x85, 0x0f, 0x9a, 0xa3, 0xaa, 0x0f, 0x50, 0xc9,
+ 0x8b, 0xe8, 0x15, 0x70, 0x9d, 0x5e, 0x7a, 0x3d, 0xcf, 0xf9, 0x75, 0x8b,
+ 0x1a, 0xc5, 0x1b, 0x5a, 0x66, 0x64, 0x1c, 0x68,
+};
+static const unsigned char kat2130_addin1[] = {
+ 0x39, 0x08, 0x25, 0x0e, 0x9a, 0xc3, 0xb3, 0xa8, 0x82, 0x3f, 0x6d, 0x61,
+ 0x56, 0x34, 0x8e, 0x55, 0xc3, 0x5d, 0xab, 0x68, 0x1b, 0x48, 0x51, 0xc3,
+ 0x9a, 0xd6, 0x39, 0x3e, 0x42, 0xa3, 0x46, 0x9e,
+};
+static const unsigned char kat2130_retbits[] = {
+ 0xd4, 0x76, 0x63, 0xde, 0x21, 0x3d, 0x5a, 0x15, 0xdc, 0xf3, 0x76, 0x74,
+ 0xd7, 0x13, 0xc8, 0x50, 0xc1, 0x4c, 0xfd, 0x7b, 0x1e, 0xfd, 0x62, 0xf0,
+ 0xe3, 0xdd, 0x1c, 0xdb, 0x51, 0xdc, 0xae, 0xd4, 0x3f, 0xc0, 0xb6, 0x60,
+ 0xae, 0xef, 0x38, 0x58, 0xee, 0x5e, 0x91, 0x1e, 0x17, 0xc0, 0xbd, 0x74,
+ 0x8c, 0x3b, 0x76, 0x2e, 0xbd, 0x59, 0x5a, 0x02, 0x75, 0x90, 0x2b, 0x69,
+ 0xe7, 0x53, 0xc1, 0x11,
+};
+static const struct drbg_kat_pr_false kat2130_t = {
+ 14, kat2130_entropyin, kat2130_nonce, kat2130_persstr,
+ kat2130_entropyinreseed, kat2130_addinreseed, kat2130_addin0,
+ kat2130_addin1, kat2130_retbits
+};
+static const struct drbg_kat kat2130 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat2130_t
+};
+
+static const unsigned char kat2131_entropyin[] = {
+ 0xfb, 0xae, 0x3e, 0xe0, 0x21, 0x05, 0xa8, 0xa2, 0x35, 0x3b, 0xbe, 0x9d,
+ 0x80, 0x68, 0x29, 0xcf, 0x78, 0xc8, 0xc3, 0x12, 0xc7, 0x82, 0xab, 0xf1,
+ 0x55, 0x4c, 0x66, 0x46, 0xcc, 0x37, 0xa1, 0xe5,
+};
+static const unsigned char kat2131_nonce[] = {
+ 0xb0, 0x47, 0x99, 0x00, 0xa4, 0x04, 0xe8, 0xe7, 0x9c, 0x5f, 0x2f, 0xd7,
+ 0x81, 0x92, 0x32, 0xb9,
+};
+static const unsigned char kat2131_persstr[] = {
+ 0x54, 0x90, 0x9f, 0xaf, 0xc8, 0xf7, 0x04, 0x28, 0x89, 0x2f, 0x8d, 0x32,
+ 0xed, 0x51, 0xe9, 0x56, 0x72, 0x89, 0x21, 0x92, 0xd3, 0x95, 0x54, 0x09,
+ 0xe8, 0x9c, 0x53, 0xdc, 0x69, 0x80, 0xd0, 0xaf,
+};
+static const unsigned char kat2131_entropyinreseed[] = {
+ 0xaa, 0xb3, 0x6c, 0x9f, 0xab, 0x8b, 0xea, 0x6b, 0x9d, 0xeb, 0x70, 0x1f,
+ 0xdf, 0x56, 0x5d, 0x51, 0xe7, 0xa1, 0x8b, 0x38, 0x98, 0x08, 0xf8, 0xb9,
+ 0x38, 0x37, 0x5d, 0x76, 0xf8, 0x65, 0x78, 0x42,
+};
+static const unsigned char kat2131_addinreseed[] = {0};
+static const unsigned char kat2131_addin0[] = {0};
+static const unsigned char kat2131_addin1[] = {0};
+static const unsigned char kat2131_retbits[] = {
+ 0x8d, 0x17, 0x00, 0xf1, 0xf6, 0x32, 0xdf, 0x34, 0x00, 0xaf, 0x0c, 0xc9,
+ 0x1c, 0x4d, 0x3d, 0x11, 0xda, 0x03, 0x49, 0x93, 0xdf, 0x50, 0x43, 0xce,
+ 0xfa, 0x49, 0xfb, 0xc0, 0x17, 0x84, 0xed, 0x78, 0x09, 0x9e, 0xec, 0x91,
+ 0xd0, 0x93, 0x95, 0x08, 0x4d, 0xf3, 0x25, 0xba, 0x02, 0xcd, 0xbd, 0x5b,
+ 0x1a, 0xbc, 0x64, 0xf9, 0xe3, 0x47, 0xd8, 0x1a, 0xe0, 0x91, 0xec, 0x08,
+ 0x1f, 0xe2, 0x7d, 0x4c,
+};
+static const struct drbg_kat_pr_false kat2131_t = {
+ 0, kat2131_entropyin, kat2131_nonce, kat2131_persstr,
+ kat2131_entropyinreseed, kat2131_addinreseed, kat2131_addin0,
+ kat2131_addin1, kat2131_retbits
+};
+static const struct drbg_kat kat2131 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2131_t
+};
+
+static const unsigned char kat2132_entropyin[] = {
+ 0x7d, 0x4f, 0x11, 0x35, 0xa5, 0x2b, 0xc8, 0x6c, 0x13, 0x75, 0x0f, 0xcc,
+ 0x1e, 0x02, 0xd3, 0x1d, 0x51, 0xaf, 0x05, 0x73, 0x40, 0x5e, 0x7e, 0xe1,
+ 0xb6, 0x1a, 0x5a, 0xec, 0x6f, 0x96, 0x9a, 0xc9,
+};
+static const unsigned char kat2132_nonce[] = {
+ 0xc2, 0xb9, 0x95, 0x98, 0x8a, 0x6f, 0xdc, 0xbe, 0x04, 0x3a, 0x41, 0x5a,
+ 0xbb, 0x20, 0xf6, 0xd9,
+};
+static const unsigned char kat2132_persstr[] = {
+ 0xc8, 0x1a, 0x7c, 0x88, 0x16, 0x9f, 0x1c, 0xe6, 0x4f, 0x5b, 0x8e, 0xdd,
+ 0x1e, 0xcc, 0xfa, 0xa1, 0xab, 0x85, 0x3e, 0x48, 0x79, 0x96, 0xc2, 0x4d,
+ 0x13, 0x68, 0xaf, 0x36, 0x4f, 0xfe, 0x8c, 0xb8,
+};
+static const unsigned char kat2132_entropyinreseed[] = {
+ 0x98, 0x77, 0x2d, 0xb6, 0xc0, 0x38, 0xa6, 0xbf, 0xe3, 0x28, 0xc9, 0xdb,
+ 0x05, 0x93, 0xbb, 0x12, 0xc7, 0x1c, 0xb1, 0x4d, 0x12, 0xff, 0x5c, 0x5e,
+ 0x6a, 0xa1, 0x12, 0x01, 0xbd, 0x7e, 0x06, 0x58,
+};
+static const unsigned char kat2132_addinreseed[] = {0};
+static const unsigned char kat2132_addin0[] = {0};
+static const unsigned char kat2132_addin1[] = {0};
+static const unsigned char kat2132_retbits[] = {
+ 0xd5, 0xe5, 0xcf, 0x6a, 0x1d, 0x67, 0x28, 0xc5, 0x0a, 0x95, 0x8c, 0xfa,
+ 0x9e, 0x38, 0x53, 0xa3, 0x78, 0xf4, 0xb4, 0x7d, 0x2a, 0x8b, 0xb8, 0x41,
+ 0xae, 0xf6, 0xbc, 0x55, 0x83, 0x51, 0x43, 0xfe, 0x41, 0x18, 0x60, 0xe4,
+ 0xb3, 0xaf, 0xbf, 0xc9, 0x48, 0xff, 0x87, 0xcf, 0x6e, 0x65, 0x33, 0x36,
+ 0x42, 0x2d, 0xcc, 0x36, 0xb6, 0x06, 0x56, 0x0d, 0xf6, 0x6b, 0xca, 0xfd,
+ 0x83, 0x02, 0xd7, 0xc5,
+};
+static const struct drbg_kat_pr_false kat2132_t = {
+ 1, kat2132_entropyin, kat2132_nonce, kat2132_persstr,
+ kat2132_entropyinreseed, kat2132_addinreseed, kat2132_addin0,
+ kat2132_addin1, kat2132_retbits
+};
+static const struct drbg_kat kat2132 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2132_t
+};
+
+static const unsigned char kat2133_entropyin[] = {
+ 0x03, 0xcd, 0x4e, 0x03, 0x10, 0x89, 0x59, 0xa5, 0x87, 0xa2, 0x09, 0x76,
+ 0x54, 0x12, 0xc2, 0xde, 0xb8, 0x85, 0x85, 0x36, 0x9a, 0xa7, 0x28, 0x0a,
+ 0xd9, 0x5a, 0xbd, 0xe3, 0xbc, 0x5e, 0x6b, 0x61,
+};
+static const unsigned char kat2133_nonce[] = {
+ 0x49, 0x9c, 0x15, 0x12, 0xbc, 0x86, 0xf1, 0xb0, 0xeb, 0x1a, 0x06, 0x27,
+ 0xdc, 0xe2, 0xcc, 0x39,
+};
+static const unsigned char kat2133_persstr[] = {
+ 0x33, 0x56, 0xaf, 0xd6, 0x03, 0x65, 0x38, 0x85, 0x38, 0xc2, 0x77, 0xb8,
+ 0x7c, 0xc8, 0x2f, 0x4d, 0x10, 0xa2, 0xfa, 0x61, 0x84, 0xba, 0x36, 0xca,
+ 0xc3, 0xf7, 0x12, 0xd5, 0x84, 0xd6, 0x5d, 0xc2,
+};
+static const unsigned char kat2133_entropyinreseed[] = {
+ 0x61, 0xe0, 0x5c, 0x8b, 0x87, 0xa3, 0x5d, 0x5b, 0xe4, 0x7f, 0xed, 0x54,
+ 0xeb, 0xf7, 0x54, 0x3d, 0xdd, 0xa1, 0x3b, 0xcb, 0xb9, 0x42, 0xd0, 0x80,
+ 0x71, 0x8c, 0xce, 0xb0, 0x7e, 0xd7, 0x18, 0x08,
+};
+static const unsigned char kat2133_addinreseed[] = {0};
+static const unsigned char kat2133_addin0[] = {0};
+static const unsigned char kat2133_addin1[] = {0};
+static const unsigned char kat2133_retbits[] = {
+ 0x2e, 0xfa, 0xbe, 0x7f, 0x94, 0x4c, 0xe4, 0x9e, 0x27, 0xb8, 0x6f, 0xda,
+ 0x4e, 0x0d, 0xd9, 0xc4, 0x6f, 0x11, 0x9c, 0xa2, 0x54, 0x1c, 0x87, 0x81,
+ 0xdb, 0xec, 0x6b, 0xe2, 0xcc, 0x74, 0xce, 0x9a, 0xc2, 0x08, 0xb2, 0x4b,
+ 0xe5, 0x75, 0x83, 0x75, 0x72, 0x0f, 0x1c, 0x42, 0xe0, 0x41, 0x87, 0x62,
+ 0x3d, 0x2c, 0xcd, 0xce, 0x73, 0x43, 0xd7, 0xc8, 0xc1, 0x24, 0x4a, 0x66,
+ 0x92, 0x6e, 0x28, 0x66,
+};
+static const struct drbg_kat_pr_false kat2133_t = {
+ 2, kat2133_entropyin, kat2133_nonce, kat2133_persstr,
+ kat2133_entropyinreseed, kat2133_addinreseed, kat2133_addin0,
+ kat2133_addin1, kat2133_retbits
+};
+static const struct drbg_kat kat2133 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2133_t
+};
+
+static const unsigned char kat2134_entropyin[] = {
+ 0xe9, 0xa3, 0x3f, 0xee, 0xf5, 0x45, 0x5b, 0xe5, 0x7a, 0x87, 0x6a, 0x4e,
+ 0xaf, 0xd4, 0xfe, 0xbb, 0x02, 0xa3, 0x13, 0xc7, 0x7c, 0x64, 0x21, 0x7f,
+ 0xfb, 0x8c, 0x6f, 0xdb, 0x2c, 0x46, 0xfd, 0x9b,
+};
+static const unsigned char kat2134_nonce[] = {
+ 0xb0, 0xa2, 0x56, 0x1d, 0x86, 0xf4, 0x12, 0x78, 0x71, 0xdc, 0x6c, 0x09,
+ 0x17, 0xfe, 0x01, 0xde,
+};
+static const unsigned char kat2134_persstr[] = {
+ 0x62, 0x31, 0xa9, 0x99, 0xd0, 0x0e, 0x07, 0x96, 0x2d, 0x98, 0x26, 0x09,
+ 0x5e, 0xd0, 0xc2, 0x49, 0x81, 0x7d, 0x86, 0x47, 0xae, 0x02, 0xd1, 0x7c,
+ 0x25, 0x05, 0x74, 0x38, 0xea, 0xc5, 0xb5, 0x06,
+};
+static const unsigned char kat2134_entropyinreseed[] = {
+ 0x71, 0x21, 0xa3, 0x8b, 0x59, 0xf8, 0x0a, 0x53, 0x64, 0x1b, 0x0c, 0xeb,
+ 0xe2, 0xa6, 0xd1, 0xae, 0xeb, 0xf6, 0xe3, 0x66, 0x96, 0x48, 0x2d, 0x54,
+ 0xa5, 0xb5, 0xbf, 0x0a, 0xd4, 0x49, 0x02, 0x93,
+};
+static const unsigned char kat2134_addinreseed[] = {0};
+static const unsigned char kat2134_addin0[] = {0};
+static const unsigned char kat2134_addin1[] = {0};
+static const unsigned char kat2134_retbits[] = {
+ 0x16, 0x5f, 0x56, 0xa0, 0x1e, 0x61, 0x94, 0x4e, 0xee, 0x87, 0xce, 0x0c,
+ 0x75, 0x2a, 0x8a, 0x31, 0x11, 0x7d, 0x6e, 0xad, 0x60, 0xc3, 0x7b, 0xea,
+ 0xa0, 0x5d, 0x8a, 0x39, 0xec, 0x6f, 0x42, 0xb6, 0xb9, 0xc9, 0x0e, 0x47,
+ 0x1c, 0x84, 0x0a, 0x61, 0x72, 0xfa, 0xcd, 0x9a, 0x1b, 0xd3, 0xdb, 0x7d,
+ 0x47, 0x70, 0x9d, 0x66, 0x5b, 0x49, 0x40, 0x7a, 0x23, 0x02, 0x0d, 0xaf,
+ 0xb8, 0x97, 0xe8, 0x53,
+};
+static const struct drbg_kat_pr_false kat2134_t = {
+ 3, kat2134_entropyin, kat2134_nonce, kat2134_persstr,
+ kat2134_entropyinreseed, kat2134_addinreseed, kat2134_addin0,
+ kat2134_addin1, kat2134_retbits
+};
+static const struct drbg_kat kat2134 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2134_t
+};
+
+static const unsigned char kat2135_entropyin[] = {
+ 0x05, 0xbd, 0xd4, 0xe1, 0x43, 0x18, 0x0e, 0x1b, 0xe2, 0xd2, 0xa5, 0x61,
+ 0xb9, 0x05, 0x59, 0x26, 0x8e, 0x46, 0x2a, 0xd5, 0x68, 0x69, 0xf5, 0xf5,
+ 0xd3, 0x48, 0x0f, 0xc4, 0xbd, 0xd1, 0xe6, 0x82,
+};
+static const unsigned char kat2135_nonce[] = {
+ 0x74, 0x7d, 0x40, 0xd2, 0x0f, 0x46, 0xa7, 0xf3, 0x9a, 0xe5, 0x2b, 0xab,
+ 0x17, 0xca, 0x61, 0xce,
+};
+static const unsigned char kat2135_persstr[] = {
+ 0x40, 0x3e, 0x35, 0xaf, 0x4f, 0xfa, 0xe9, 0xe3, 0xee, 0x2d, 0x5f, 0x27,
+ 0x7e, 0x69, 0xb2, 0x9d, 0x3f, 0x4a, 0x8d, 0xac, 0x36, 0x69, 0x1d, 0xdb,
+ 0x31, 0x50, 0x7d, 0xda, 0x6f, 0xbe, 0x66, 0x50,
+};
+static const unsigned char kat2135_entropyinreseed[] = {
+ 0x5e, 0x4e, 0x32, 0xe9, 0x4e, 0xd5, 0xe1, 0xdc, 0x89, 0x4b, 0x7c, 0xf2,
+ 0x85, 0x7b, 0xf5, 0xe2, 0x21, 0x8e, 0x46, 0xf2, 0xb6, 0x9f, 0x8b, 0xf4,
+ 0x55, 0x5b, 0xcc, 0xa6, 0x15, 0x68, 0xaf, 0x33,
+};
+static const unsigned char kat2135_addinreseed[] = {0};
+static const unsigned char kat2135_addin0[] = {0};
+static const unsigned char kat2135_addin1[] = {0};
+static const unsigned char kat2135_retbits[] = {
+ 0xa3, 0x68, 0x46, 0xc7, 0x20, 0x11, 0x87, 0x36, 0xd0, 0x99, 0x2a, 0x0a,
+ 0xfe, 0xb0, 0x85, 0x30, 0xa2, 0xa3, 0xb6, 0x8b, 0xed, 0x0c, 0x76, 0x07,
+ 0x6e, 0xa6, 0x52, 0x50, 0x91, 0x17, 0x94, 0x3c, 0xee, 0x2f, 0x8f, 0x88,
+ 0x8f, 0x82, 0xc8, 0xc0, 0x40, 0x5c, 0xff, 0xec, 0x84, 0xb2, 0x14, 0x58,
+ 0x21, 0xca, 0x33, 0x68, 0x64, 0x35, 0xaf, 0xe1, 0x45, 0xc0, 0x4a, 0x49,
+ 0xdf, 0xe1, 0xcd, 0x7a,
+};
+static const struct drbg_kat_pr_false kat2135_t = {
+ 4, kat2135_entropyin, kat2135_nonce, kat2135_persstr,
+ kat2135_entropyinreseed, kat2135_addinreseed, kat2135_addin0,
+ kat2135_addin1, kat2135_retbits
+};
+static const struct drbg_kat kat2135 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2135_t
+};
+
+static const unsigned char kat2136_entropyin[] = {
+ 0xa6, 0x35, 0xe4, 0x3f, 0x3d, 0x97, 0xdc, 0x35, 0x11, 0x93, 0x2a, 0xef,
+ 0x96, 0x64, 0x98, 0x62, 0xb4, 0x68, 0x30, 0xdf, 0x9a, 0xc0, 0xeb, 0xbc,
+ 0x31, 0xb9, 0x32, 0xef, 0x51, 0xad, 0xa0, 0x5b,
+};
+static const unsigned char kat2136_nonce[] = {
+ 0xb3, 0x8d, 0x99, 0x26, 0x19, 0x1b, 0x49, 0xeb, 0x99, 0x59, 0x81, 0xbb,
+ 0xfe, 0xce, 0xcb, 0xa3,
+};
+static const unsigned char kat2136_persstr[] = {
+ 0xcd, 0x98, 0x38, 0xb0, 0x7d, 0x04, 0x1b, 0xe3, 0x13, 0x57, 0xfe, 0x9e,
+ 0xbc, 0x01, 0xfa, 0xf5, 0x47, 0x31, 0xcc, 0xb9, 0x05, 0x84, 0xd6, 0xc1,
+ 0x95, 0x23, 0xdf, 0x39, 0x89, 0xcd, 0x86, 0x6b,
+};
+static const unsigned char kat2136_entropyinreseed[] = {
+ 0xb8, 0xd1, 0x11, 0xba, 0xcd, 0xf0, 0x1b, 0x76, 0xb1, 0x48, 0x2d, 0xa9,
+ 0xdf, 0x89, 0x76, 0xac, 0x34, 0xbf, 0xff, 0x06, 0xe1, 0x01, 0x84, 0x06,
+ 0x5a, 0x33, 0x9a, 0xda, 0xb8, 0x5a, 0x9b, 0xa5,
+};
+static const unsigned char kat2136_addinreseed[] = {0};
+static const unsigned char kat2136_addin0[] = {0};
+static const unsigned char kat2136_addin1[] = {0};
+static const unsigned char kat2136_retbits[] = {
+ 0x6e, 0x0f, 0xc3, 0xde, 0x87, 0xa9, 0x92, 0x84, 0x77, 0x90, 0x5b, 0x9b,
+ 0x62, 0x1f, 0x3f, 0x9f, 0x86, 0xfe, 0xc7, 0x64, 0x30, 0x07, 0xe4, 0xb5,
+ 0x60, 0x85, 0x4f, 0xb2, 0x09, 0x9c, 0x7c, 0xaa, 0x58, 0xb8, 0x62, 0xc7,
+ 0xff, 0x21, 0x98, 0x0e, 0xd6, 0xf9, 0x1f, 0x78, 0x67, 0xa6, 0xec, 0x48,
+ 0x70, 0xe2, 0xc3, 0x2b, 0x34, 0x59, 0x28, 0x09, 0xb8, 0xaf, 0x17, 0x95,
+ 0x80, 0x7c, 0xa3, 0x4b,
+};
+static const struct drbg_kat_pr_false kat2136_t = {
+ 5, kat2136_entropyin, kat2136_nonce, kat2136_persstr,
+ kat2136_entropyinreseed, kat2136_addinreseed, kat2136_addin0,
+ kat2136_addin1, kat2136_retbits
+};
+static const struct drbg_kat kat2136 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2136_t
+};
+
+static const unsigned char kat2137_entropyin[] = {
+ 0x1f, 0xf0, 0x23, 0x99, 0x22, 0x87, 0x2d, 0x42, 0xcc, 0xb5, 0x95, 0xf7,
+ 0xbb, 0xdb, 0xe6, 0xad, 0x86, 0xcb, 0x39, 0x52, 0x25, 0x1e, 0x6e, 0x11,
+ 0x0b, 0x36, 0x0f, 0xbd, 0xf4, 0x19, 0x59, 0x1e,
+};
+static const unsigned char kat2137_nonce[] = {
+ 0xa0, 0x07, 0x41, 0x6d, 0x48, 0x31, 0x24, 0x57, 0xff, 0xe0, 0x8b, 0x43,
+ 0x8b, 0x54, 0xd9, 0x29,
+};
+static const unsigned char kat2137_persstr[] = {
+ 0x70, 0xa3, 0xf7, 0x36, 0x27, 0x45, 0xba, 0x47, 0xa9, 0xd5, 0xd5, 0x93,
+ 0x81, 0x7f, 0x09, 0x6d, 0x88, 0x18, 0x48, 0xf0, 0x77, 0xe8, 0x1f, 0x43,
+ 0x39, 0xe7, 0x9e, 0xff, 0xa9, 0x91, 0x9d, 0x82,
+};
+static const unsigned char kat2137_entropyinreseed[] = {
+ 0x56, 0xc9, 0x68, 0xdc, 0x6d, 0x17, 0x03, 0xfb, 0x42, 0x93, 0x55, 0xa0,
+ 0x03, 0x3b, 0x5b, 0x61, 0xe8, 0x7a, 0x22, 0x61, 0x67, 0xbb, 0x36, 0x01,
+ 0x7c, 0x70, 0xc4, 0xb1, 0x77, 0xbb, 0x7a, 0xd8,
+};
+static const unsigned char kat2137_addinreseed[] = {0};
+static const unsigned char kat2137_addin0[] = {0};
+static const unsigned char kat2137_addin1[] = {0};
+static const unsigned char kat2137_retbits[] = {
+ 0xd0, 0x37, 0xe0, 0xfa, 0x29, 0xbb, 0x5e, 0x48, 0xbb, 0x0e, 0x91, 0x4c,
+ 0x09, 0x5a, 0x11, 0x8c, 0xbd, 0xc4, 0x6a, 0x81, 0xb8, 0xa5, 0xb6, 0x8a,
+ 0x84, 0xcf, 0x82, 0x8e, 0xc3, 0x9c, 0xa4, 0x90, 0x94, 0x55, 0xcd, 0x00,
+ 0x21, 0x26, 0xae, 0x1c, 0x3d, 0xad, 0x12, 0x79, 0xbf, 0x33, 0xfc, 0xc7,
+ 0xd7, 0x47, 0x59, 0x05, 0xd3, 0xb5, 0xf4, 0xb9, 0x81, 0xc8, 0xfb, 0x15,
+ 0x8f, 0xe6, 0x7c, 0x8d,
+};
+static const struct drbg_kat_pr_false kat2137_t = {
+ 6, kat2137_entropyin, kat2137_nonce, kat2137_persstr,
+ kat2137_entropyinreseed, kat2137_addinreseed, kat2137_addin0,
+ kat2137_addin1, kat2137_retbits
+};
+static const struct drbg_kat kat2137 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2137_t
+};
+
+static const unsigned char kat2138_entropyin[] = {
+ 0xe4, 0xc6, 0xe4, 0x01, 0x0c, 0x7f, 0x5b, 0x79, 0xd0, 0x67, 0xe0, 0x35,
+ 0xea, 0xe4, 0xd0, 0xf7, 0xe4, 0xc6, 0xb3, 0x13, 0xc5, 0xd0, 0xf4, 0xdd,
+ 0xa3, 0xf0, 0x7f, 0x77, 0x0e, 0x63, 0x78, 0x19,
+};
+static const unsigned char kat2138_nonce[] = {
+ 0x98, 0x2d, 0xdf, 0xcb, 0xe5, 0xb6, 0x55, 0xdb, 0xbf, 0x1f, 0x6e, 0x42,
+ 0x8c, 0x6e, 0xa2, 0x16,
+};
+static const unsigned char kat2138_persstr[] = {
+ 0xd6, 0x11, 0x70, 0x48, 0xbe, 0xc5, 0x91, 0xf9, 0x0a, 0x46, 0x81, 0xd8,
+ 0xe6, 0x67, 0x70, 0x7f, 0x9a, 0xfc, 0xfe, 0x92, 0xf2, 0xea, 0xb8, 0x6e,
+ 0xf0, 0x4b, 0x68, 0xa4, 0x1d, 0xe1, 0x7f, 0x31,
+};
+static const unsigned char kat2138_entropyinreseed[] = {
+ 0x02, 0x93, 0x9c, 0xd4, 0x00, 0x4a, 0xe8, 0x91, 0xb3, 0xbf, 0xcd, 0x21,
+ 0x00, 0x75, 0xc1, 0xa9, 0x78, 0x76, 0xc0, 0xce, 0xf8, 0x6d, 0x3e, 0xcf,
+ 0xeb, 0xe2, 0xc8, 0xca, 0xf8, 0x0f, 0xe2, 0x11,
+};
+static const unsigned char kat2138_addinreseed[] = {0};
+static const unsigned char kat2138_addin0[] = {0};
+static const unsigned char kat2138_addin1[] = {0};
+static const unsigned char kat2138_retbits[] = {
+ 0xa4, 0x18, 0x2c, 0x34, 0xc1, 0xdf, 0x82, 0x7e, 0xc9, 0x3e, 0xbf, 0xa0,
+ 0xd5, 0x15, 0xcc, 0x7d, 0x6f, 0x8e, 0xe2, 0x2f, 0x3a, 0x76, 0x9a, 0x30,
+ 0xaf, 0x0c, 0xd5, 0xee, 0x74, 0x88, 0xab, 0x68, 0xf7, 0x0c, 0x4c, 0xe6,
+ 0x2e, 0xe3, 0x14, 0xa0, 0x47, 0x26, 0x8c, 0x00, 0x45, 0xfb, 0x1b, 0x7d,
+ 0x25, 0x84, 0xbd, 0xb6, 0x46, 0xc3, 0xed, 0x49, 0xc8, 0x85, 0x10, 0xb4,
+ 0xc5, 0x4a, 0x67, 0x6b,
+};
+static const struct drbg_kat_pr_false kat2138_t = {
+ 7, kat2138_entropyin, kat2138_nonce, kat2138_persstr,
+ kat2138_entropyinreseed, kat2138_addinreseed, kat2138_addin0,
+ kat2138_addin1, kat2138_retbits
+};
+static const struct drbg_kat kat2138 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2138_t
+};
+
+static const unsigned char kat2139_entropyin[] = {
+ 0x65, 0x2d, 0xb4, 0x0e, 0xda, 0x98, 0x90, 0x32, 0xae, 0x1e, 0xd5, 0xee,
+ 0x90, 0x1c, 0xbf, 0x95, 0x0c, 0x31, 0x83, 0x3a, 0x9d, 0x6f, 0x36, 0xe5,
+ 0x15, 0x9c, 0x2c, 0xc8, 0x24, 0x5d, 0xf3, 0xd6,
+};
+static const unsigned char kat2139_nonce[] = {
+ 0x72, 0x80, 0x39, 0xb6, 0x72, 0xc1, 0x14, 0x9b, 0x9b, 0x48, 0xa1, 0x18,
+ 0xe6, 0x7f, 0x73, 0x8f,
+};
+static const unsigned char kat2139_persstr[] = {
+ 0x14, 0xa9, 0x29, 0x92, 0xfc, 0xb0, 0x15, 0x77, 0x80, 0xf8, 0x19, 0x9a,
+ 0xf5, 0x6e, 0xd1, 0xca, 0xec, 0x8e, 0xe6, 0x24, 0xd9, 0x23, 0x2d, 0xa4,
+ 0xa1, 0x49, 0xc3, 0xd2, 0xa6, 0xe5, 0x34, 0x94,
+};
+static const unsigned char kat2139_entropyinreseed[] = {
+ 0x8d, 0x6a, 0x04, 0x51, 0x3d, 0xd5, 0xbd, 0xd3, 0xee, 0x04, 0xdd, 0x9d,
+ 0xc0, 0xd4, 0x8e, 0xda, 0xc0, 0x41, 0x34, 0x8b, 0xf6, 0x95, 0x23, 0xa8,
+ 0x2b, 0x25, 0x86, 0x0e, 0xc1, 0x71, 0xad, 0xd4,
+};
+static const unsigned char kat2139_addinreseed[] = {0};
+static const unsigned char kat2139_addin0[] = {0};
+static const unsigned char kat2139_addin1[] = {0};
+static const unsigned char kat2139_retbits[] = {
+ 0x6a, 0x77, 0x21, 0xac, 0x74, 0xfe, 0xae, 0x95, 0xb2, 0x95, 0x88, 0x33,
+ 0x30, 0xe0, 0x0d, 0xe9, 0x42, 0x80, 0xcd, 0x66, 0x6c, 0x73, 0x91, 0xc7,
+ 0x10, 0x86, 0x67, 0xd1, 0x29, 0x2d, 0xc8, 0x80, 0x15, 0xf9, 0x91, 0x30,
+ 0xe5, 0x61, 0x55, 0x1b, 0x72, 0x41, 0xc9, 0xe5, 0xa0, 0x6b, 0x47, 0x6b,
+ 0xe9, 0x44, 0x21, 0x5b, 0x23, 0x66, 0xe6, 0x64, 0xeb, 0x28, 0xe5, 0xc2,
+ 0x5b, 0x2f, 0xa9, 0x84,
+};
+static const struct drbg_kat_pr_false kat2139_t = {
+ 8, kat2139_entropyin, kat2139_nonce, kat2139_persstr,
+ kat2139_entropyinreseed, kat2139_addinreseed, kat2139_addin0,
+ kat2139_addin1, kat2139_retbits
+};
+static const struct drbg_kat kat2139 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2139_t
+};
+
+static const unsigned char kat2140_entropyin[] = {
+ 0x98, 0x3f, 0xb9, 0xe2, 0x9d, 0x7c, 0xf7, 0x40, 0x6e, 0x03, 0x1a, 0x50,
+ 0x1a, 0x04, 0xf5, 0xef, 0xba, 0xe2, 0x1d, 0x89, 0xd1, 0xff, 0x7e, 0x37,
+ 0x44, 0xc6, 0x25, 0x1b, 0x1c, 0x6e, 0x51, 0xec,
+};
+static const unsigned char kat2140_nonce[] = {
+ 0xd4, 0x79, 0xf8, 0x03, 0x12, 0x8d, 0x7a, 0x87, 0xdc, 0x5f, 0x18, 0x80,
+ 0xe9, 0xd1, 0x82, 0xc5,
+};
+static const unsigned char kat2140_persstr[] = {
+ 0x0d, 0x58, 0xac, 0x5a, 0xe0, 0x40, 0xa3, 0x69, 0xaa, 0x37, 0x0c, 0x40,
+ 0xde, 0xee, 0x13, 0x16, 0x36, 0x09, 0x7a, 0x1c, 0x7d, 0x2c, 0x26, 0x2e,
+ 0xdf, 0x63, 0xbf, 0x93, 0x9f, 0x34, 0x26, 0x16,
+};
+static const unsigned char kat2140_entropyinreseed[] = {
+ 0x35, 0xae, 0xcb, 0xdd, 0x24, 0x4a, 0x41, 0x97, 0x2b, 0xe4, 0x50, 0x9a,
+ 0x98, 0xdd, 0xc4, 0xd6, 0x46, 0x7f, 0xa6, 0x33, 0xe9, 0x35, 0x3d, 0x9d,
+ 0xd2, 0xc3, 0x44, 0x2a, 0x30, 0x87, 0x50, 0x39,
+};
+static const unsigned char kat2140_addinreseed[] = {0};
+static const unsigned char kat2140_addin0[] = {0};
+static const unsigned char kat2140_addin1[] = {0};
+static const unsigned char kat2140_retbits[] = {
+ 0xfc, 0x7b, 0x2c, 0xf9, 0x20, 0x6a, 0x83, 0xb2, 0xa8, 0xd7, 0xed, 0xb1,
+ 0x78, 0x63, 0x2a, 0x0c, 0x0c, 0x0b, 0xd3, 0xaa, 0x28, 0xb1, 0x9a, 0x96,
+ 0x3f, 0xda, 0x7f, 0xab, 0x9d, 0x09, 0x92, 0x8a, 0xde, 0xde, 0xe6, 0xc3,
+ 0x7d, 0x3d, 0xd4, 0xb9, 0xf3, 0x86, 0x52, 0x9c, 0x68, 0x02, 0xd9, 0xa4,
+ 0xf5, 0xf6, 0x39, 0xdf, 0xa4, 0x92, 0xbf, 0xad, 0x22, 0xd6, 0x83, 0xb6,
+ 0xc9, 0xfb, 0xbe, 0x6a,
+};
+static const struct drbg_kat_pr_false kat2140_t = {
+ 9, kat2140_entropyin, kat2140_nonce, kat2140_persstr,
+ kat2140_entropyinreseed, kat2140_addinreseed, kat2140_addin0,
+ kat2140_addin1, kat2140_retbits
+};
+static const struct drbg_kat kat2140 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2140_t
+};
+
+static const unsigned char kat2141_entropyin[] = {
+ 0xbd, 0x9e, 0x23, 0xeb, 0x4b, 0xb4, 0xdc, 0x2c, 0x3b, 0x58, 0xa7, 0xf4,
+ 0xd3, 0x2c, 0x8e, 0x93, 0x21, 0x08, 0xfc, 0x7a, 0x2d, 0xc7, 0xa9, 0xf4,
+ 0x0d, 0xce, 0x67, 0x1f, 0xc3, 0xfe, 0xa1, 0xdb,
+};
+static const unsigned char kat2141_nonce[] = {
+ 0x14, 0x73, 0x2e, 0xc7, 0x51, 0xa5, 0x56, 0x66, 0xde, 0x4f, 0x16, 0xba,
+ 0xc7, 0x7d, 0x20, 0xab,
+};
+static const unsigned char kat2141_persstr[] = {
+ 0xbf, 0x7e, 0x5c, 0x3f, 0xe8, 0xe3, 0xaf, 0x80, 0x5e, 0x61, 0xb2, 0xa2,
+ 0xbe, 0x73, 0xb2, 0x37, 0xe9, 0x5c, 0x5b, 0x93, 0xcf, 0x1e, 0x26, 0xd0,
+ 0x43, 0x5a, 0xb6, 0x34, 0x14, 0x96, 0x47, 0x40,
+};
+static const unsigned char kat2141_entropyinreseed[] = {
+ 0x62, 0xf6, 0xd8, 0x06, 0x5f, 0xdb, 0x72, 0x79, 0xbf, 0x58, 0xa4, 0x00,
+ 0x80, 0x95, 0xf4, 0x48, 0x51, 0x9a, 0x21, 0x23, 0x1c, 0x9b, 0x96, 0xd5,
+ 0x92, 0x72, 0xa9, 0xb5, 0x38, 0x2b, 0x72, 0x6e,
+};
+static const unsigned char kat2141_addinreseed[] = {0};
+static const unsigned char kat2141_addin0[] = {0};
+static const unsigned char kat2141_addin1[] = {0};
+static const unsigned char kat2141_retbits[] = {
+ 0x51, 0xf4, 0x37, 0x4e, 0x68, 0x04, 0xce, 0x98, 0x9b, 0x4b, 0xf4, 0x1e,
+ 0x48, 0xde, 0x6b, 0xfd, 0x37, 0x1f, 0x02, 0x34, 0x3a, 0x07, 0xda, 0x6a,
+ 0x7a, 0x65, 0x11, 0x63, 0xf8, 0xa8, 0x4d, 0x4e, 0xa7, 0xc7, 0x05, 0xe0,
+ 0xc5, 0x49, 0x1d, 0xfe, 0x5e, 0xb8, 0x73, 0x0d, 0xbe, 0x38, 0xd6, 0x9d,
+ 0x68, 0x8b, 0x6d, 0x83, 0x51, 0xe9, 0x60, 0x0c, 0x23, 0x1c, 0xb7, 0x27,
+ 0x6d, 0x69, 0xdc, 0xee,
+};
+static const struct drbg_kat_pr_false kat2141_t = {
+ 10, kat2141_entropyin, kat2141_nonce, kat2141_persstr,
+ kat2141_entropyinreseed, kat2141_addinreseed, kat2141_addin0,
+ kat2141_addin1, kat2141_retbits
+};
+static const struct drbg_kat kat2141 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2141_t
+};
+
+static const unsigned char kat2142_entropyin[] = {
+ 0xba, 0x06, 0xca, 0x20, 0x47, 0x54, 0x97, 0x2a, 0x26, 0xac, 0x96, 0x25,
+ 0xc8, 0x5c, 0x5c, 0x80, 0x94, 0xd8, 0xed, 0xb0, 0x7f, 0x6f, 0x47, 0x3e,
+ 0xbb, 0x94, 0x1b, 0x57, 0x71, 0x18, 0x7a, 0x17,
+};
+static const unsigned char kat2142_nonce[] = {
+ 0x20, 0x09, 0x80, 0xcc, 0x16, 0x68, 0xaf, 0x5a, 0x4e, 0x54, 0x07, 0x96,
+ 0x19, 0x47, 0x0b, 0xe3,
+};
+static const unsigned char kat2142_persstr[] = {
+ 0x57, 0xd8, 0x07, 0xd0, 0xa6, 0x19, 0xf8, 0x95, 0xac, 0x68, 0x37, 0x79,
+ 0xe6, 0xc1, 0xf8, 0x9b, 0xae, 0xeb, 0xc9, 0x3e, 0x17, 0xdb, 0x5b, 0x5e,
+ 0x80, 0xbd, 0xdc, 0xe5, 0xf8, 0x5b, 0x00, 0x2d,
+};
+static const unsigned char kat2142_entropyinreseed[] = {
+ 0xfa, 0x0e, 0x8f, 0x2a, 0x77, 0xc6, 0xc0, 0x6a, 0x58, 0x68, 0x09, 0xf3,
+ 0xea, 0xe9, 0x3a, 0xa7, 0xea, 0xc0, 0xa3, 0xd0, 0x9c, 0x26, 0x2a, 0x72,
+ 0xa1, 0x88, 0x66, 0x51, 0xba, 0x25, 0x29, 0x6e,
+};
+static const unsigned char kat2142_addinreseed[] = {0};
+static const unsigned char kat2142_addin0[] = {0};
+static const unsigned char kat2142_addin1[] = {0};
+static const unsigned char kat2142_retbits[] = {
+ 0xe0, 0x22, 0xdb, 0xdf, 0xcd, 0x01, 0x88, 0xed, 0x16, 0x41, 0x30, 0x14,
+ 0xf1, 0x70, 0x75, 0x77, 0xc6, 0xaf, 0x5b, 0x59, 0xec, 0x41, 0xa4, 0x6b,
+ 0x98, 0x36, 0x38, 0xc6, 0xa7, 0xe0, 0x55, 0xb9, 0xfa, 0xde, 0x91, 0x52,
+ 0x8c, 0x9e, 0x5c, 0x46, 0xd8, 0x4a, 0x71, 0xd7, 0x33, 0xa4, 0x7c, 0xdd,
+ 0xe6, 0x2f, 0x3f, 0xb4, 0x7d, 0x33, 0x56, 0x02, 0x9c, 0x4e, 0xc7, 0x79,
+ 0xfc, 0x88, 0x56, 0x91,
+};
+static const struct drbg_kat_pr_false kat2142_t = {
+ 11, kat2142_entropyin, kat2142_nonce, kat2142_persstr,
+ kat2142_entropyinreseed, kat2142_addinreseed, kat2142_addin0,
+ kat2142_addin1, kat2142_retbits
+};
+static const struct drbg_kat kat2142 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2142_t
+};
+
+static const unsigned char kat2143_entropyin[] = {
+ 0xa7, 0x94, 0x2a, 0x0d, 0x3b, 0x07, 0x54, 0x61, 0xa2, 0x9b, 0xb9, 0x93,
+ 0x43, 0xb1, 0x0e, 0x1f, 0x10, 0x01, 0x4f, 0x53, 0x09, 0x7c, 0x34, 0x02,
+ 0x74, 0x47, 0x59, 0xd2, 0x4b, 0xaf, 0x43, 0x9a,
+};
+static const unsigned char kat2143_nonce[] = {
+ 0xf2, 0x68, 0xeb, 0x70, 0xdb, 0xdf, 0xa7, 0xec, 0x61, 0x14, 0x19, 0xee,
+ 0xb9, 0x4b, 0xf8, 0x84,
+};
+static const unsigned char kat2143_persstr[] = {
+ 0xf9, 0x47, 0x75, 0x4a, 0x31, 0x35, 0xbc, 0x19, 0x07, 0xf8, 0x6f, 0x77,
+ 0xf6, 0xf5, 0x22, 0x45, 0x94, 0xb2, 0xc5, 0x87, 0x19, 0x3f, 0x7d, 0x86,
+ 0xe3, 0x43, 0xdb, 0xe8, 0xae, 0x94, 0x0a, 0xf0,
+};
+static const unsigned char kat2143_entropyinreseed[] = {
+ 0x1f, 0x57, 0x25, 0x65, 0x3a, 0x01, 0xfd, 0x3d, 0x38, 0x70, 0xa5, 0x87,
+ 0x4b, 0xb9, 0x7e, 0x09, 0x10, 0xd4, 0x80, 0x39, 0x58, 0x9c, 0xeb, 0x80,
+ 0xa0, 0xd4, 0x1c, 0x2d, 0x3b, 0x07, 0x24, 0x0c,
+};
+static const unsigned char kat2143_addinreseed[] = {0};
+static const unsigned char kat2143_addin0[] = {0};
+static const unsigned char kat2143_addin1[] = {0};
+static const unsigned char kat2143_retbits[] = {
+ 0x72, 0x48, 0xfa, 0xac, 0x73, 0xe7, 0x78, 0x28, 0x18, 0x85, 0x47, 0x3b,
+ 0x0a, 0xd2, 0xed, 0x56, 0xdc, 0x3c, 0x4e, 0xcb, 0x50, 0x5a, 0x29, 0xc0,
+ 0x80, 0xc5, 0x7d, 0xd5, 0x07, 0xe5, 0x6a, 0x50, 0xbf, 0xe9, 0xce, 0x04,
+ 0xc7, 0x24, 0xac, 0x71, 0x30, 0xcb, 0xfc, 0xf5, 0x22, 0x7c, 0x8d, 0xf5,
+ 0x1a, 0xd1, 0x08, 0xfc, 0x58, 0x75, 0xed, 0x13, 0xcf, 0xdd, 0x3e, 0xed,
+ 0x7b, 0x95, 0xed, 0x60,
+};
+static const struct drbg_kat_pr_false kat2143_t = {
+ 12, kat2143_entropyin, kat2143_nonce, kat2143_persstr,
+ kat2143_entropyinreseed, kat2143_addinreseed, kat2143_addin0,
+ kat2143_addin1, kat2143_retbits
+};
+static const struct drbg_kat kat2143 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2143_t
+};
+
+static const unsigned char kat2144_entropyin[] = {
+ 0xc1, 0x7b, 0x59, 0x23, 0x51, 0xce, 0x97, 0xc2, 0xb9, 0x39, 0x7d, 0x1d,
+ 0x35, 0xf7, 0x84, 0x93, 0x61, 0xce, 0x0f, 0xbc, 0xc8, 0x9d, 0x64, 0xea,
+ 0x24, 0xee, 0x23, 0x44, 0x89, 0xc8, 0x78, 0x48,
+};
+static const unsigned char kat2144_nonce[] = {
+ 0xd0, 0x22, 0x07, 0xb5, 0x33, 0xdd, 0xfc, 0x79, 0xfd, 0x54, 0xe2, 0x47,
+ 0x47, 0x25, 0x42, 0x68,
+};
+static const unsigned char kat2144_persstr[] = {
+ 0x6b, 0x88, 0x60, 0xde, 0x89, 0xdc, 0x49, 0x34, 0x59, 0xc3, 0xe8, 0x22,
+ 0x1d, 0xb1, 0x0d, 0x60, 0x16, 0x77, 0xec, 0xa9, 0x3c, 0x86, 0xa4, 0x36,
+ 0x07, 0xc0, 0xff, 0x55, 0x8d, 0x26, 0xb7, 0x04,
+};
+static const unsigned char kat2144_entropyinreseed[] = {
+ 0x26, 0x72, 0x25, 0xf3, 0xa9, 0xaa, 0x08, 0x67, 0xa4, 0xbe, 0x8e, 0x3e,
+ 0x53, 0x01, 0x54, 0x51, 0xcf, 0x58, 0x79, 0x6a, 0xce, 0x50, 0xa3, 0x6c,
+ 0x65, 0x78, 0x11, 0xe5, 0x1b, 0xd5, 0x21, 0x70,
+};
+static const unsigned char kat2144_addinreseed[] = {0};
+static const unsigned char kat2144_addin0[] = {0};
+static const unsigned char kat2144_addin1[] = {0};
+static const unsigned char kat2144_retbits[] = {
+ 0x2c, 0x07, 0x5e, 0xfc, 0xca, 0x1a, 0x60, 0x3e, 0x60, 0x9f, 0x35, 0xbd,
+ 0xeb, 0xf5, 0x75, 0x56, 0xe8, 0x7c, 0x1d, 0x41, 0x8b, 0xbf, 0x22, 0x98,
+ 0x78, 0x80, 0x00, 0xb8, 0x25, 0x4f, 0x70, 0xa4, 0x4e, 0x98, 0x17, 0x2e,
+ 0x41, 0xc6, 0xba, 0x51, 0xdc, 0x35, 0x21, 0xdc, 0x19, 0x69, 0xbc, 0x38,
+ 0x6c, 0x62, 0x5e, 0xc0, 0xef, 0x12, 0x89, 0xc4, 0x2c, 0x3e, 0x27, 0xc5,
+ 0x2b, 0x4a, 0x24, 0x87,
+};
+static const struct drbg_kat_pr_false kat2144_t = {
+ 13, kat2144_entropyin, kat2144_nonce, kat2144_persstr,
+ kat2144_entropyinreseed, kat2144_addinreseed, kat2144_addin0,
+ kat2144_addin1, kat2144_retbits
+};
+static const struct drbg_kat kat2144 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2144_t
+};
+
+static const unsigned char kat2145_entropyin[] = {
+ 0xf8, 0x83, 0xb4, 0xbb, 0xea, 0x89, 0xca, 0xc2, 0xfd, 0x37, 0x85, 0x59,
+ 0xfe, 0x57, 0x90, 0xd7, 0xad, 0x64, 0xdc, 0x6f, 0x5a, 0xcc, 0x61, 0xce,
+ 0xec, 0xbc, 0x13, 0xbd, 0x97, 0x1f, 0x6a, 0xfb,
+};
+static const unsigned char kat2145_nonce[] = {
+ 0x3a, 0xb0, 0x89, 0x48, 0xf0, 0x14, 0x16, 0x31, 0x7c, 0xeb, 0xab, 0x29,
+ 0xeb, 0x21, 0x1d, 0x7b,
+};
+static const unsigned char kat2145_persstr[] = {
+ 0xd0, 0x86, 0x05, 0x74, 0x93, 0x50, 0x0d, 0x75, 0xd9, 0x3d, 0x93, 0x27,
+ 0xb0, 0x9c, 0x10, 0x8e, 0xd9, 0xe6, 0x27, 0x01, 0x79, 0x49, 0x51, 0xc9,
+ 0xb9, 0xfc, 0x77, 0xef, 0x38, 0x72, 0xa5, 0x55,
+};
+static const unsigned char kat2145_entropyinreseed[] = {
+ 0x21, 0x49, 0x69, 0x3a, 0xd3, 0xbb, 0x60, 0xd8, 0x75, 0x0e, 0x9f, 0x21,
+ 0xff, 0xc1, 0x6b, 0x71, 0x78, 0x31, 0x0a, 0xfa, 0xc1, 0xe2, 0xfa, 0x63,
+ 0x33, 0x43, 0x02, 0xcf, 0xfa, 0x1c, 0x0a, 0x47,
+};
+static const unsigned char kat2145_addinreseed[] = {0};
+static const unsigned char kat2145_addin0[] = {0};
+static const unsigned char kat2145_addin1[] = {0};
+static const unsigned char kat2145_retbits[] = {
+ 0xe0, 0x59, 0x8a, 0x33, 0x11, 0x4c, 0xc1, 0x83, 0xed, 0xb8, 0x43, 0x41,
+ 0x5d, 0x69, 0x7a, 0xca, 0xdc, 0x91, 0xc3, 0x9b, 0xa5, 0x41, 0x00, 0xc7,
+ 0xb1, 0x4f, 0x79, 0xe6, 0x7e, 0x47, 0xeb, 0x7f, 0x8d, 0x21, 0xcc, 0x1c,
+ 0x5e, 0x4d, 0x74, 0x4b, 0x32, 0x9f, 0x71, 0x7c, 0x88, 0x23, 0x90, 0x35,
+ 0xb9, 0x1f, 0xd4, 0xb7, 0x0e, 0x41, 0x5f, 0x26, 0x97, 0xe9, 0xf9, 0xd4,
+ 0x36, 0xf3, 0xb0, 0x01,
+};
+static const struct drbg_kat_pr_false kat2145_t = {
+ 14, kat2145_entropyin, kat2145_nonce, kat2145_persstr,
+ kat2145_entropyinreseed, kat2145_addinreseed, kat2145_addin0,
+ kat2145_addin1, kat2145_retbits
+};
+static const struct drbg_kat kat2145 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat2145_t
+};
+
+static const unsigned char kat2146_entropyin[] = {
+ 0xe2, 0xf7, 0x5c, 0xf5, 0x53, 0x03, 0x5b, 0x3c, 0xb4, 0xd2, 0x1e, 0x56,
+ 0x7c, 0xa5, 0xc2, 0x03, 0x62, 0x3d, 0x4a, 0x4b, 0x58, 0x85, 0x32, 0x6f,
+ 0x63, 0xea, 0x61, 0xa0, 0x20, 0xa4, 0x98, 0x4e,
+};
+static const unsigned char kat2146_nonce[] = {
+ 0xa6, 0x66, 0xee, 0x4b, 0x26, 0xda, 0xe5, 0x89, 0x7f, 0xc5, 0xe8, 0x5c,
+ 0x64, 0x3f, 0xc6, 0x30,
+};
+static const unsigned char kat2146_persstr[] = {
+ 0x19, 0x27, 0x5b, 0xbd, 0x7a, 0x01, 0x09, 0xd8, 0x17, 0x93, 0x34, 0xc5,
+ 0x53, 0x37, 0xbc, 0x0a, 0x3f, 0x5a, 0xc4, 0x8c, 0xb8, 0xc4, 0x95, 0x9c,
+ 0x88, 0x8c, 0x0b, 0x65, 0xf7, 0xac, 0x9a, 0x84,
+};
+static const unsigned char kat2146_entropyinreseed[] = {
+ 0xf6, 0x67, 0x2d, 0x02, 0x22, 0x26, 0xb0, 0x5d, 0xb5, 0xd3, 0xc5, 0x9c,
+ 0x0d, 0xa5, 0xb2, 0x0a, 0x1b, 0xe0, 0x5e, 0xca, 0xbb, 0xd1, 0x74, 0x44,
+ 0x83, 0xca, 0x4c, 0xe5, 0x57, 0x1d, 0x93, 0xf4,
+};
+static const unsigned char kat2146_addinreseed[] = {
+ 0x8c, 0x8f, 0x94, 0x0a, 0xf4, 0x5a, 0xec, 0x86, 0x4c, 0x8a, 0xa8, 0xbe,
+ 0x60, 0xb1, 0x00, 0xf8, 0x2b, 0xb9, 0x67, 0x0c, 0x7e, 0x2a, 0x39, 0x2a,
+ 0x4a, 0xb6, 0xf4, 0xb2, 0x0e, 0xef, 0xbb, 0xaa,
+};
+static const unsigned char kat2146_addin0[] = {
+ 0x26, 0xb5, 0xf0, 0xda, 0xdc, 0x89, 0x1e, 0x0b, 0x1b, 0x78, 0x87, 0x8e,
+ 0x7a, 0xe7, 0x5a, 0xee, 0x84, 0x33, 0x76, 0xc0, 0x96, 0x8c, 0x54, 0xc1,
+ 0x27, 0x59, 0xc1, 0x8d, 0xef, 0x21, 0xd3, 0x63,
+};
+static const unsigned char kat2146_addin1[] = {
+ 0xff, 0x67, 0x91, 0xf4, 0xd4, 0xb2, 0x99, 0x96, 0xb0, 0x39, 0x9d, 0x95,
+ 0xa1, 0x4a, 0x28, 0xb8, 0xe2, 0xe2, 0x07, 0x87, 0x53, 0x1d, 0x91, 0x6e,
+ 0x7e, 0xd2, 0xec, 0x04, 0x0b, 0xbd, 0x7c, 0x84,
+};
+static const unsigned char kat2146_retbits[] = {
+ 0xeb, 0x8f, 0x28, 0x9b, 0xb0, 0x5b, 0xe8, 0x40, 0x84, 0x84, 0x0c, 0x3d,
+ 0x2c, 0x9d, 0xee, 0xa0, 0x24, 0x54, 0x87, 0xa9, 0x8d, 0x7e, 0x1a, 0x40,
+ 0x17, 0xb8, 0x60, 0xe4, 0x86, 0x35, 0x21, 0x3d, 0x62, 0x2a, 0x4a, 0x4e,
+ 0xae, 0x91, 0xef, 0xdd, 0x53, 0x42, 0xad, 0xe9, 0x40, 0x93, 0xf1, 0x99,
+ 0xc1, 0x6d, 0xeb, 0x1e, 0x58, 0xd0, 0x08, 0x8b, 0x9b, 0x4a, 0x0f, 0x24,
+ 0xa5, 0xd1, 0x57, 0x75,
+};
+static const struct drbg_kat_pr_false kat2146_t = {
+ 0, kat2146_entropyin, kat2146_nonce, kat2146_persstr,
+ kat2146_entropyinreseed, kat2146_addinreseed, kat2146_addin0,
+ kat2146_addin1, kat2146_retbits
+};
+static const struct drbg_kat kat2146 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2146_t
+};
+
+static const unsigned char kat2147_entropyin[] = {
+ 0x0b, 0xab, 0xce, 0xcc, 0x5d, 0x90, 0xf7, 0xe5, 0xdf, 0xde, 0x2c, 0x3c,
+ 0x24, 0xa0, 0x76, 0x69, 0xe0, 0xf7, 0x19, 0xaa, 0x4f, 0xf5, 0xbf, 0xcc,
+ 0x02, 0xed, 0xdd, 0xc5, 0x5f, 0x2c, 0x48, 0xf7,
+};
+static const unsigned char kat2147_nonce[] = {
+ 0x2c, 0x3e, 0x8a, 0xfc, 0xaa, 0xef, 0xf9, 0x4a, 0xb3, 0x39, 0xe3, 0x9a,
+ 0xa5, 0xcf, 0x1a, 0xbe,
+};
+static const unsigned char kat2147_persstr[] = {
+ 0x94, 0xd9, 0x5d, 0xdf, 0xb0, 0x2f, 0xef, 0xf3, 0x95, 0x0c, 0x03, 0xa2,
+ 0x85, 0x45, 0xbf, 0xfb, 0xa9, 0x84, 0x00, 0xf9, 0xca, 0xd0, 0x04, 0xcb,
+ 0x22, 0xb8, 0xa7, 0x7b, 0x67, 0xed, 0x61, 0x80,
+};
+static const unsigned char kat2147_entropyinreseed[] = {
+ 0x17, 0x82, 0xe8, 0x62, 0x69, 0x09, 0x68, 0x6c, 0x37, 0x9c, 0xfc, 0xa7,
+ 0x8b, 0x93, 0x9f, 0x7c, 0x0c, 0xb5, 0x89, 0xea, 0x0b, 0xd3, 0x16, 0xf3,
+ 0xae, 0xc8, 0xdc, 0x5a, 0x04, 0x93, 0x79, 0x9b,
+};
+static const unsigned char kat2147_addinreseed[] = {
+ 0x7b, 0x5f, 0x37, 0xad, 0xba, 0xd3, 0x1d, 0x71, 0xca, 0xdd, 0x3d, 0x32,
+ 0xb5, 0x72, 0x84, 0xb5, 0xf9, 0xd7, 0xd6, 0x72, 0x21, 0xf4, 0x51, 0xdf,
+ 0x25, 0x81, 0x93, 0xa1, 0x40, 0xd4, 0xa1, 0x38,
+};
+static const unsigned char kat2147_addin0[] = {
+ 0x75, 0x0c, 0x2c, 0x67, 0xd1, 0xa3, 0xd5, 0xb0, 0x41, 0x75, 0x27, 0x45,
+ 0x0f, 0xde, 0xd2, 0x04, 0xa5, 0xaa, 0x9f, 0xf6, 0xe9, 0x72, 0x6a, 0x33,
+ 0xdf, 0xe8, 0xdb, 0x52, 0xf8, 0x5c, 0xf2, 0x9a,
+};
+static const unsigned char kat2147_addin1[] = {
+ 0x62, 0x42, 0xc0, 0x0a, 0x5c, 0x73, 0x2f, 0x38, 0x00, 0x87, 0x91, 0x87,
+ 0x09, 0x73, 0xbe, 0x60, 0xb8, 0x3c, 0x04, 0x3a, 0x1b, 0xb3, 0xf0, 0xbe,
+ 0xdb, 0x4e, 0x46, 0x17, 0x0f, 0xda, 0x5b, 0xe2,
+};
+static const unsigned char kat2147_retbits[] = {
+ 0xc0, 0xb7, 0xac, 0xdf, 0xf7, 0xa3, 0x36, 0x28, 0xfb, 0xb6, 0x8b, 0xb3,
+ 0x99, 0x69, 0x3d, 0x0e, 0xdf, 0xb2, 0x26, 0x23, 0xfb, 0xcb, 0x1f, 0xe6,
+ 0x4c, 0xb5, 0x03, 0xcc, 0x52, 0x7f, 0x81, 0xc7, 0x05, 0xa5, 0x7d, 0xe8,
+ 0xe7, 0xed, 0x65, 0x6c, 0xe3, 0x28, 0xe9, 0x9c, 0xbb, 0xa0, 0xde, 0xcd,
+ 0x25, 0x3c, 0xc9, 0x46, 0x8b, 0xc8, 0x04, 0x2f, 0x49, 0xd3, 0xa4, 0x8c,
+ 0x51, 0xeb, 0xab, 0xd2,
+};
+static const struct drbg_kat_pr_false kat2147_t = {
+ 1, kat2147_entropyin, kat2147_nonce, kat2147_persstr,
+ kat2147_entropyinreseed, kat2147_addinreseed, kat2147_addin0,
+ kat2147_addin1, kat2147_retbits
+};
+static const struct drbg_kat kat2147 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2147_t
+};
+
+static const unsigned char kat2148_entropyin[] = {
+ 0x02, 0xe0, 0xc4, 0xbe, 0xd4, 0xff, 0x5a, 0x3a, 0x01, 0xa2, 0x57, 0x3c,
+ 0xb1, 0x34, 0x4a, 0x55, 0xa8, 0xed, 0xd6, 0x8c, 0x83, 0xe1, 0x11, 0xda,
+ 0x83, 0xea, 0xee, 0x22, 0x17, 0xb7, 0xb0, 0xf9,
+};
+static const unsigned char kat2148_nonce[] = {
+ 0x60, 0x6a, 0x90, 0x9c, 0x1e, 0xb4, 0x26, 0xe8, 0x6f, 0x65, 0x64, 0xcb,
+ 0xe0, 0x17, 0x72, 0x73,
+};
+static const unsigned char kat2148_persstr[] = {
+ 0x51, 0x97, 0x58, 0x93, 0x3d, 0x0c, 0x75, 0xad, 0x84, 0x4a, 0xc8, 0xb7,
+ 0xb9, 0x8c, 0x31, 0x45, 0x22, 0xdc, 0xb5, 0xb8, 0x08, 0x2a, 0xf3, 0x68,
+ 0xcb, 0x48, 0x9b, 0xca, 0xcb, 0x5d, 0xfa, 0xa9,
+};
+static const unsigned char kat2148_entropyinreseed[] = {
+ 0x81, 0xb0, 0x92, 0x39, 0x97, 0xa7, 0x86, 0xf9, 0x1e, 0xd0, 0xc2, 0x78,
+ 0x3a, 0x37, 0x2c, 0x87, 0xfe, 0x0f, 0xee, 0x2b, 0x83, 0x05, 0x23, 0x8e,
+ 0xff, 0xf9, 0x57, 0x56, 0x64, 0x51, 0xf7, 0x12,
+};
+static const unsigned char kat2148_addinreseed[] = {
+ 0x57, 0x6e, 0x8d, 0xc3, 0x6e, 0x4c, 0xc8, 0xaf, 0xe8, 0x0e, 0xdf, 0xb9,
+ 0x4f, 0x19, 0x22, 0x74, 0xbc, 0x90, 0x4b, 0x86, 0x59, 0xf3, 0xe7, 0x27,
+ 0x28, 0x4f, 0xd3, 0x77, 0xe9, 0xf9, 0xfb, 0x38,
+};
+static const unsigned char kat2148_addin0[] = {
+ 0x8c, 0x65, 0x63, 0xbd, 0x4a, 0x5f, 0xdb, 0x59, 0x81, 0x00, 0x35, 0x58,
+ 0x10, 0xd3, 0xaf, 0x0e, 0x0e, 0x07, 0xb2, 0x09, 0xb7, 0x8c, 0xd5, 0x6c,
+ 0xe5, 0x33, 0xab, 0xa3, 0x8a, 0xb7, 0x5b, 0x02,
+};
+static const unsigned char kat2148_addin1[] = {
+ 0xeb, 0xec, 0xb4, 0x61, 0x34, 0x57, 0x15, 0x0d, 0x8a, 0x28, 0x5a, 0x35,
+ 0x42, 0x51, 0xcf, 0xf0, 0x94, 0xa6, 0x35, 0xc3, 0xe1, 0x85, 0x63, 0xc8,
+ 0x00, 0xb5, 0xf5, 0xea, 0x71, 0x03, 0x2e, 0xfd,
+};
+static const unsigned char kat2148_retbits[] = {
+ 0xdf, 0xdb, 0x7f, 0x53, 0x42, 0x45, 0x60, 0xb5, 0xfa, 0x21, 0xbf, 0xbc,
+ 0xfb, 0x6a, 0x17, 0xdc, 0x6c, 0xd6, 0x93, 0x68, 0x1b, 0xb9, 0x78, 0xc2,
+ 0xd0, 0x4c, 0xf8, 0x8c, 0x46, 0x78, 0xb6, 0x8a, 0xf8, 0x4f, 0xe5, 0x41,
+ 0x91, 0x3e, 0x63, 0x3f, 0xde, 0xdc, 0x21, 0xa8, 0x7f, 0xb5, 0xcd, 0x1f,
+ 0xfe, 0x74, 0x25, 0x1d, 0x45, 0xac, 0x15, 0xd8, 0xe4, 0xec, 0xb3, 0x07,
+ 0x98, 0xd0, 0x69, 0x51,
+};
+static const struct drbg_kat_pr_false kat2148_t = {
+ 2, kat2148_entropyin, kat2148_nonce, kat2148_persstr,
+ kat2148_entropyinreseed, kat2148_addinreseed, kat2148_addin0,
+ kat2148_addin1, kat2148_retbits
+};
+static const struct drbg_kat kat2148 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2148_t
+};
+
+static const unsigned char kat2149_entropyin[] = {
+ 0xc0, 0x74, 0xa9, 0xe5, 0xac, 0x43, 0x39, 0x04, 0x37, 0xd1, 0x2d, 0x71,
+ 0x62, 0x85, 0x3a, 0xa9, 0xab, 0xd7, 0x6e, 0xc7, 0xec, 0xb4, 0x17, 0x41,
+ 0x7b, 0x30, 0x4e, 0x16, 0x4b, 0x60, 0xcb, 0x6f,
+};
+static const unsigned char kat2149_nonce[] = {
+ 0x59, 0xe3, 0x03, 0xf0, 0xbe, 0x5c, 0x52, 0x8e, 0x45, 0x25, 0x8d, 0x52,
+ 0x61, 0x4b, 0x85, 0x18,
+};
+static const unsigned char kat2149_persstr[] = {
+ 0x4c, 0xd7, 0x4f, 0x78, 0x46, 0x1d, 0x87, 0x9a, 0x90, 0xc2, 0x6e, 0x16,
+ 0xd7, 0x33, 0x3e, 0xf4, 0x59, 0xc2, 0xd6, 0x32, 0xe0, 0x89, 0x49, 0x7a,
+ 0x89, 0x1a, 0x9e, 0xe6, 0x18, 0x4e, 0x98, 0x1d,
+};
+static const unsigned char kat2149_entropyinreseed[] = {
+ 0x31, 0x61, 0xef, 0x4f, 0x92, 0xbf, 0xc3, 0x2f, 0xaf, 0x7f, 0xc1, 0xd7,
+ 0x0b, 0x19, 0x5c, 0xc1, 0xb0, 0x51, 0xf7, 0xf0, 0xaf, 0xc5, 0x90, 0x2f,
+ 0x4f, 0x28, 0xd0, 0x46, 0x20, 0x31, 0x82, 0xf1,
+};
+static const unsigned char kat2149_addinreseed[] = {
+ 0xab, 0x16, 0xc4, 0x17, 0x44, 0x2b, 0x01, 0xf3, 0x37, 0x25, 0x08, 0xc1,
+ 0x72, 0xc7, 0xf2, 0x37, 0xe2, 0x8f, 0x2b, 0x01, 0xfa, 0x13, 0x94, 0xe3,
+ 0x93, 0xa8, 0x71, 0xee, 0x50, 0x8b, 0xd5, 0xb2,
+};
+static const unsigned char kat2149_addin0[] = {
+ 0x81, 0xc7, 0x3b, 0x87, 0x80, 0xe8, 0x71, 0x69, 0x49, 0x42, 0x30, 0xf0,
+ 0x4f, 0xed, 0x33, 0xbb, 0x5b, 0x25, 0x1b, 0x6a, 0x42, 0xbc, 0x60, 0xa0,
+ 0xdd, 0xfe, 0x3f, 0xce, 0x78, 0xa1, 0xeb, 0x5c,
+};
+static const unsigned char kat2149_addin1[] = {
+ 0x29, 0xdf, 0x72, 0x41, 0x64, 0xff, 0xa3, 0x82, 0x69, 0x18, 0x3d, 0x55,
+ 0xe0, 0x5b, 0x22, 0xde, 0xb8, 0xde, 0xfc, 0x0d, 0x40, 0xfe, 0x9c, 0x23,
+ 0x29, 0x7b, 0xe0, 0xb6, 0x92, 0x61, 0xf6, 0x53,
+};
+static const unsigned char kat2149_retbits[] = {
+ 0xd4, 0xbc, 0x09, 0xc3, 0x91, 0xf5, 0xae, 0x44, 0x93, 0x69, 0xd9, 0x26,
+ 0x7e, 0x76, 0x44, 0x8d, 0x64, 0x93, 0xa2, 0x60, 0xad, 0xb9, 0xc3, 0x87,
+ 0x0c, 0xd5, 0x0b, 0xcc, 0xbf, 0x23, 0x6b, 0x6b, 0xcf, 0xf2, 0x13, 0x34,
+ 0xc6, 0x93, 0x92, 0x9c, 0x83, 0x93, 0x8f, 0xc9, 0xd6, 0x7a, 0x7d, 0x96,
+ 0xa1, 0x7e, 0x75, 0x4a, 0x8b, 0x68, 0x82, 0x9a, 0x13, 0x5d, 0x6f, 0xb6,
+ 0x3b, 0xfc, 0x7a, 0x26,
+};
+static const struct drbg_kat_pr_false kat2149_t = {
+ 3, kat2149_entropyin, kat2149_nonce, kat2149_persstr,
+ kat2149_entropyinreseed, kat2149_addinreseed, kat2149_addin0,
+ kat2149_addin1, kat2149_retbits
+};
+static const struct drbg_kat kat2149 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2149_t
+};
+
+static const unsigned char kat2150_entropyin[] = {
+ 0x9f, 0x06, 0xca, 0x93, 0xae, 0x6a, 0xf2, 0xab, 0x0f, 0xbf, 0x6a, 0xf0,
+ 0xeb, 0x1e, 0xb5, 0x83, 0xb8, 0xf6, 0xf8, 0xb5, 0x0a, 0xe9, 0xe1, 0x68,
+ 0xed, 0x6a, 0x85, 0xe6, 0xca, 0x56, 0x09, 0xc5,
+};
+static const unsigned char kat2150_nonce[] = {
+ 0x1c, 0x3f, 0xe6, 0x42, 0x4b, 0x3a, 0x6d, 0x4e, 0xa4, 0x1e, 0xdf, 0x35,
+ 0xf9, 0x77, 0xb3, 0x85,
+};
+static const unsigned char kat2150_persstr[] = {
+ 0x11, 0x64, 0xb2, 0xc0, 0x32, 0x99, 0xb6, 0x8d, 0xce, 0xb2, 0x10, 0x7a,
+ 0x61, 0x6e, 0x1e, 0xfe, 0x4d, 0x11, 0x1d, 0x59, 0x68, 0x8b, 0x6e, 0x24,
+ 0x81, 0x2f, 0x65, 0x71, 0x5f, 0xc9, 0x80, 0x23,
+};
+static const unsigned char kat2150_entropyinreseed[] = {
+ 0xcd, 0xa6, 0x5f, 0xa8, 0xc4, 0xe0, 0xbf, 0x37, 0xf3, 0xaa, 0xa9, 0xc2,
+ 0x53, 0x8d, 0x81, 0x07, 0xfc, 0x1c, 0xbc, 0x07, 0x25, 0xf3, 0x8e, 0xbe,
+ 0xb4, 0xb8, 0x74, 0x1e, 0x23, 0xb6, 0xa6, 0x32,
+};
+static const unsigned char kat2150_addinreseed[] = {
+ 0x44, 0xd6, 0xf1, 0x4b, 0xe3, 0xaa, 0x7a, 0x46, 0x85, 0x4b, 0xaa, 0x83,
+ 0x9c, 0x82, 0xdd, 0xe2, 0x39, 0xc6, 0xfd, 0xf2, 0x37, 0xc6, 0x18, 0x90,
+ 0xe1, 0x32, 0xa5, 0x48, 0x22, 0x84, 0x21, 0x36,
+};
+static const unsigned char kat2150_addin0[] = {
+ 0xe5, 0x0e, 0x51, 0x92, 0xf4, 0xeb, 0xd5, 0x77, 0x0b, 0x17, 0xdf, 0x64,
+ 0x20, 0x70, 0xa9, 0x4e, 0x7a, 0xb8, 0xe3, 0x64, 0xfb, 0xfd, 0x42, 0xb5,
+ 0xf4, 0xf0, 0xf6, 0xc3, 0xf3, 0x12, 0x0b, 0x5c,
+};
+static const unsigned char kat2150_addin1[] = {
+ 0xad, 0x96, 0x26, 0xe5, 0x8b, 0xdc, 0xd4, 0x30, 0xcd, 0xf8, 0x17, 0x24,
+ 0x5d, 0x04, 0xf8, 0xbe, 0x6e, 0xdf, 0xba, 0x8a, 0x6c, 0xda, 0x9d, 0x1c,
+ 0x44, 0xb8, 0x66, 0x48, 0x99, 0x63, 0x08, 0xef,
+};
+static const unsigned char kat2150_retbits[] = {
+ 0xac, 0x1e, 0x0c, 0xf2, 0x28, 0xc1, 0x4a, 0x82, 0x7a, 0x7d, 0x81, 0x7d,
+ 0x39, 0x93, 0xb5, 0x03, 0xbf, 0xb7, 0x53, 0x05, 0x24, 0xe6, 0xa6, 0x03,
+ 0xf8, 0x93, 0x18, 0x12, 0x8e, 0x5b, 0x08, 0x92, 0xd8, 0xe2, 0xbe, 0xb7,
+ 0x05, 0x97, 0x8b, 0x5c, 0x25, 0x5c, 0x86, 0x8e, 0xf0, 0xc4, 0x78, 0x93,
+ 0x12, 0xd9, 0xd0, 0xa2, 0x23, 0x07, 0xbe, 0xc2, 0x04, 0x22, 0x47, 0xf3,
+ 0xdf, 0x60, 0x12, 0x6a,
+};
+static const struct drbg_kat_pr_false kat2150_t = {
+ 4, kat2150_entropyin, kat2150_nonce, kat2150_persstr,
+ kat2150_entropyinreseed, kat2150_addinreseed, kat2150_addin0,
+ kat2150_addin1, kat2150_retbits
+};
+static const struct drbg_kat kat2150 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2150_t
+};
+
+static const unsigned char kat2151_entropyin[] = {
+ 0xec, 0xd1, 0x38, 0xbb, 0xf1, 0xd5, 0x54, 0x95, 0xf0, 0x79, 0x21, 0xb4,
+ 0xfb, 0x58, 0x60, 0x78, 0x50, 0x5b, 0xe5, 0xf6, 0x58, 0x6e, 0xba, 0x7f,
+ 0xe1, 0xad, 0xf5, 0x74, 0xf1, 0x63, 0xd3, 0x5a,
+};
+static const unsigned char kat2151_nonce[] = {
+ 0xe5, 0xae, 0xf8, 0xe6, 0x41, 0xc9, 0x2b, 0x0a, 0x05, 0xe3, 0xca, 0x17,
+ 0x8b, 0xce, 0xc8, 0x77,
+};
+static const unsigned char kat2151_persstr[] = {
+ 0xd3, 0xe2, 0x65, 0x73, 0xb8, 0x96, 0xbc, 0x32, 0x84, 0xc0, 0x4c, 0x78,
+ 0x6d, 0x3f, 0xb5, 0xeb, 0x29, 0x9d, 0xad, 0xa0, 0x3f, 0xda, 0x12, 0x9e,
+ 0x93, 0xd1, 0x18, 0xc1, 0x3c, 0x46, 0x9b, 0xca,
+};
+static const unsigned char kat2151_entropyinreseed[] = {
+ 0x3b, 0xce, 0x4b, 0x4e, 0x9c, 0xd3, 0xba, 0xf9, 0xe0, 0xb0, 0xcc, 0x7f,
+ 0xc7, 0x9a, 0x48, 0xa3, 0x26, 0x55, 0x25, 0xd7, 0x43, 0x15, 0xd3, 0x66,
+ 0x6e, 0x01, 0x8e, 0x06, 0xc8, 0xe8, 0xdf, 0x84,
+};
+static const unsigned char kat2151_addinreseed[] = {
+ 0xf6, 0x85, 0xcb, 0x18, 0x5c, 0xcf, 0x41, 0xdd, 0x92, 0x8e, 0x90, 0xf8,
+ 0x67, 0x5c, 0x27, 0xf5, 0x2c, 0x7b, 0x6b, 0x90, 0xff, 0x6c, 0x8c, 0x9f,
+ 0x40, 0x12, 0x51, 0x18, 0xc5, 0x82, 0x79, 0x49,
+};
+static const unsigned char kat2151_addin0[] = {
+ 0x03, 0x80, 0x38, 0x68, 0xd5, 0x9f, 0x85, 0xdf, 0x25, 0xaf, 0x53, 0x00,
+ 0xf9, 0x92, 0x10, 0xb5, 0xa9, 0x5f, 0x88, 0x48, 0x3c, 0xe6, 0xb9, 0x77,
+ 0x68, 0xc5, 0x53, 0x29, 0x76, 0x59, 0x2c, 0x2b,
+};
+static const unsigned char kat2151_addin1[] = {
+ 0x2c, 0x90, 0x32, 0xcb, 0xfe, 0x8b, 0xaf, 0xc9, 0x48, 0x80, 0xba, 0xc9,
+ 0x91, 0xb4, 0x69, 0x53, 0x1a, 0xfe, 0x06, 0x19, 0xd7, 0x1d, 0xd3, 0x84,
+ 0x1e, 0x14, 0xc7, 0x24, 0x45, 0x78, 0xae, 0x95,
+};
+static const unsigned char kat2151_retbits[] = {
+ 0xa0, 0xfd, 0xbc, 0x3d, 0x36, 0x28, 0x47, 0x9f, 0x47, 0xea, 0x66, 0x94,
+ 0xef, 0xad, 0x2b, 0xa9, 0xbe, 0xc2, 0xf5, 0xe7, 0xd1, 0x55, 0x23, 0x31,
+ 0x87, 0x0c, 0x03, 0x6a, 0xf1, 0x01, 0x92, 0xff, 0x0d, 0x0c, 0xe8, 0xa4,
+ 0xf1, 0x00, 0xdd, 0xe2, 0xb2, 0x2e, 0xbd, 0xac, 0xb8, 0x89, 0xec, 0x1d,
+ 0xc6, 0xbf, 0x8c, 0x34, 0xb4, 0x1e, 0x42, 0xc0, 0x6c, 0xd9, 0x68, 0xe2,
+ 0xd0, 0x62, 0x31, 0x2c,
+};
+static const struct drbg_kat_pr_false kat2151_t = {
+ 5, kat2151_entropyin, kat2151_nonce, kat2151_persstr,
+ kat2151_entropyinreseed, kat2151_addinreseed, kat2151_addin0,
+ kat2151_addin1, kat2151_retbits
+};
+static const struct drbg_kat kat2151 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2151_t
+};
+
+static const unsigned char kat2152_entropyin[] = {
+ 0xee, 0x7f, 0x43, 0x06, 0x5d, 0x94, 0x81, 0xd2, 0x3c, 0x4e, 0xc5, 0x6e,
+ 0xc4, 0x2d, 0xfb, 0xea, 0xc2, 0x0c, 0xd3, 0x6a, 0x74, 0x85, 0x41, 0xd1,
+ 0xad, 0x50, 0x52, 0x6d, 0x39, 0x47, 0xb4, 0xe7,
+};
+static const unsigned char kat2152_nonce[] = {
+ 0x65, 0x9e, 0x13, 0x58, 0x71, 0xaf, 0x57, 0x78, 0x00, 0x67, 0xc2, 0x16,
+ 0xf2, 0x72, 0xb4, 0xe7,
+};
+static const unsigned char kat2152_persstr[] = {
+ 0x4a, 0xb0, 0xcb, 0x88, 0x78, 0x1a, 0xa9, 0xc1, 0xa6, 0x9c, 0x7d, 0xaa,
+ 0xf5, 0x39, 0x4b, 0x48, 0x2c, 0x1f, 0x2a, 0x13, 0xf4, 0x09, 0xa0, 0xf0,
+ 0xaa, 0x35, 0xab, 0x84, 0x89, 0x7f, 0xf8, 0x9a,
+};
+static const unsigned char kat2152_entropyinreseed[] = {
+ 0xfc, 0xaf, 0x45, 0x6b, 0xae, 0xe3, 0x81, 0x32, 0xdc, 0x43, 0x04, 0xc5,
+ 0xc1, 0x79, 0x8c, 0x76, 0xc4, 0xea, 0x26, 0x26, 0xaa, 0x6a, 0x91, 0x23,
+ 0x32, 0xae, 0x2e, 0x04, 0x86, 0xc1, 0xb5, 0x48,
+};
+static const unsigned char kat2152_addinreseed[] = {
+ 0xe9, 0xc8, 0xf1, 0x54, 0x4b, 0x2e, 0x49, 0xe9, 0x49, 0x81, 0x06, 0xf6,
+ 0x43, 0x05, 0xa1, 0xe0, 0x99, 0x88, 0x3b, 0xc2, 0x3f, 0x00, 0x0c, 0x26,
+ 0xcf, 0xeb, 0x7b, 0x4d, 0xca, 0x50, 0xb2, 0xc4,
+};
+static const unsigned char kat2152_addin0[] = {
+ 0xa5, 0x67, 0x9b, 0xf8, 0xc2, 0x97, 0xac, 0x08, 0x6b, 0xee, 0x3a, 0xc6,
+ 0xc2, 0x5f, 0xfb, 0x89, 0x5d, 0x17, 0xeb, 0xae, 0x81, 0xd5, 0x60, 0x53,
+ 0xc8, 0x8f, 0x2d, 0xca, 0x4f, 0x70, 0x5e, 0xf8,
+};
+static const unsigned char kat2152_addin1[] = {
+ 0x0c, 0x0e, 0xae, 0x3c, 0x9b, 0x02, 0x24, 0x2b, 0xd8, 0x6d, 0x38, 0x73,
+ 0x3d, 0x02, 0x8e, 0x49, 0x0e, 0xe7, 0xcf, 0xb6, 0xf0, 0x7c, 0x9b, 0xc1,
+ 0xd7, 0x61, 0x8f, 0x6d, 0xaa, 0x20, 0x56, 0xc1,
+};
+static const unsigned char kat2152_retbits[] = {
+ 0x29, 0xc0, 0x9f, 0xa1, 0x97, 0x95, 0xa7, 0xab, 0x05, 0x2a, 0xc5, 0x56,
+ 0x84, 0xe6, 0x83, 0x57, 0x53, 0x9c, 0x80, 0xa4, 0x28, 0xf7, 0x19, 0x31,
+ 0xef, 0x4c, 0xef, 0x5f, 0x90, 0x99, 0xf7, 0x52, 0xa8, 0x44, 0xf2, 0x1c,
+ 0x54, 0x66, 0x22, 0xd8, 0xa4, 0x4b, 0xf6, 0xd4, 0x6f, 0x9e, 0xc4, 0x96,
+ 0x72, 0x0d, 0xfe, 0xe6, 0x11, 0x88, 0xdc, 0xab, 0x68, 0x68, 0xbe, 0x18,
+ 0xc8, 0x26, 0xd2, 0x30,
+};
+static const struct drbg_kat_pr_false kat2152_t = {
+ 6, kat2152_entropyin, kat2152_nonce, kat2152_persstr,
+ kat2152_entropyinreseed, kat2152_addinreseed, kat2152_addin0,
+ kat2152_addin1, kat2152_retbits
+};
+static const struct drbg_kat kat2152 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2152_t
+};
+
+static const unsigned char kat2153_entropyin[] = {
+ 0xd6, 0xc4, 0x95, 0x3a, 0x45, 0x71, 0x6f, 0x32, 0x16, 0xbe, 0xd8, 0xbe,
+ 0x44, 0x6c, 0xd3, 0xdf, 0xce, 0x25, 0x1d, 0x7f, 0xad, 0x76, 0xe7, 0x26,
+ 0x4e, 0x72, 0x83, 0xf9, 0x7b, 0xd5, 0x61, 0xd6,
+};
+static const unsigned char kat2153_nonce[] = {
+ 0xe8, 0x76, 0xf3, 0xf5, 0x7d, 0xf4, 0xf6, 0xc6, 0x9d, 0xed, 0xd5, 0xb7,
+ 0x72, 0xe7, 0xa4, 0x80,
+};
+static const unsigned char kat2153_persstr[] = {
+ 0x4c, 0x1a, 0x21, 0xf8, 0x06, 0x1c, 0x95, 0xd3, 0x22, 0xaa, 0xdf, 0x4a,
+ 0x4c, 0x5d, 0xbc, 0x09, 0x0d, 0xd0, 0x69, 0x7e, 0xc3, 0xf2, 0x02, 0x8a,
+ 0xea, 0xaa, 0x00, 0x93, 0x76, 0x04, 0x02, 0x7a,
+};
+static const unsigned char kat2153_entropyinreseed[] = {
+ 0xd8, 0xbc, 0xf4, 0xd1, 0x61, 0xea, 0x13, 0xf6, 0xf5, 0xd5, 0x2a, 0x04,
+ 0x99, 0x8e, 0xf7, 0xda, 0xef, 0x41, 0x79, 0xc4, 0x05, 0x83, 0x2d, 0xd6,
+ 0xe3, 0xe1, 0xc3, 0x7f, 0xbf, 0x2d, 0x2f, 0x53,
+};
+static const unsigned char kat2153_addinreseed[] = {
+ 0x01, 0xf6, 0x46, 0x50, 0x95, 0x71, 0x2d, 0x5d, 0x1b, 0xe3, 0x2d, 0x24,
+ 0xba, 0xd4, 0x7a, 0x1d, 0xde, 0xa1, 0xdf, 0xf9, 0xf7, 0x28, 0x97, 0xa0,
+ 0x54, 0x6e, 0x18, 0x79, 0x9c, 0x51, 0xc1, 0xfb,
+};
+static const unsigned char kat2153_addin0[] = {
+ 0x0f, 0x84, 0x5c, 0xe1, 0xcd, 0x10, 0x39, 0xf4, 0x00, 0x54, 0xf0, 0x6e,
+ 0x05, 0xc9, 0x54, 0xdd, 0xdb, 0x0d, 0x92, 0x97, 0x85, 0x57, 0xc7, 0xaa,
+ 0xda, 0xc4, 0x90, 0x48, 0x51, 0x7d, 0xb9, 0xe2,
+};
+static const unsigned char kat2153_addin1[] = {
+ 0x59, 0xfb, 0x2f, 0x13, 0x3c, 0xaa, 0xd5, 0xc9, 0x5d, 0x42, 0x8f, 0xf8,
+ 0xb5, 0xd5, 0x96, 0xf6, 0x43, 0xbc, 0xe6, 0x64, 0xba, 0x13, 0x4f, 0x92,
+ 0x1a, 0xbd, 0xaa, 0xa4, 0x87, 0x76, 0x8a, 0x93,
+};
+static const unsigned char kat2153_retbits[] = {
+ 0x11, 0x92, 0x7f, 0x50, 0x41, 0x61, 0x3a, 0x71, 0x92, 0xbe, 0x58, 0x69,
+ 0x7d, 0x66, 0xa4, 0x3e, 0x30, 0x24, 0x71, 0x01, 0x73, 0x0b, 0x94, 0x4c,
+ 0xeb, 0x1e, 0x35, 0xbc, 0x1c, 0xfe, 0x4d, 0xa4, 0x0e, 0x40, 0x70, 0x78,
+ 0x3a, 0xff, 0x20, 0x14, 0x2f, 0x73, 0xc4, 0xc3, 0xa8, 0xe7, 0x97, 0xeb,
+ 0xba, 0xba, 0x9e, 0x63, 0x9d, 0x28, 0x11, 0x9c, 0x8c, 0x67, 0x73, 0x1d,
+ 0x61, 0x09, 0x1d, 0xd9,
+};
+static const struct drbg_kat_pr_false kat2153_t = {
+ 7, kat2153_entropyin, kat2153_nonce, kat2153_persstr,
+ kat2153_entropyinreseed, kat2153_addinreseed, kat2153_addin0,
+ kat2153_addin1, kat2153_retbits
+};
+static const struct drbg_kat kat2153 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2153_t
+};
+
+static const unsigned char kat2154_entropyin[] = {
+ 0x2b, 0x08, 0xea, 0x18, 0x85, 0xcd, 0x66, 0x80, 0x46, 0x84, 0x86, 0x84,
+ 0x46, 0xfd, 0x79, 0x5c, 0x94, 0x10, 0x5e, 0x72, 0xf8, 0xb4, 0xa0, 0x99,
+ 0x7e, 0xd1, 0x78, 0xe0, 0xcd, 0x69, 0x59, 0xb2,
+};
+static const unsigned char kat2154_nonce[] = {
+ 0x30, 0x6b, 0x93, 0xb9, 0x3b, 0x2a, 0xb7, 0xe9, 0x4c, 0x2a, 0x7f, 0x0b,
+ 0x40, 0x1d, 0x18, 0xea,
+};
+static const unsigned char kat2154_persstr[] = {
+ 0x7a, 0x49, 0x1a, 0xae, 0x8a, 0x65, 0xeb, 0x02, 0x40, 0x26, 0x2f, 0x60,
+ 0x4b, 0xb0, 0x02, 0x39, 0xea, 0x8a, 0xd4, 0xc1, 0x40, 0x68, 0xa4, 0x61,
+ 0x06, 0xff, 0x68, 0x4d, 0x0f, 0x5e, 0x9c, 0xc4,
+};
+static const unsigned char kat2154_entropyinreseed[] = {
+ 0x38, 0x39, 0x0f, 0x35, 0x7d, 0x77, 0x70, 0xef, 0x3e, 0xa7, 0xdf, 0x82,
+ 0x37, 0x1e, 0x7e, 0xcf, 0x1e, 0xd1, 0x76, 0xfd, 0xba, 0x0d, 0x77, 0x6f,
+ 0x11, 0x27, 0x23, 0xe3, 0xd3, 0x38, 0xf0, 0xd6,
+};
+static const unsigned char kat2154_addinreseed[] = {
+ 0x75, 0xce, 0x68, 0x80, 0x28, 0x17, 0x7a, 0xab, 0xe8, 0xe9, 0x5f, 0x0f,
+ 0x50, 0x49, 0x4c, 0xf2, 0xb1, 0x3b, 0x21, 0x8b, 0x1b, 0x71, 0x52, 0x6c,
+ 0xed, 0x09, 0x77, 0xbc, 0x6b, 0x6e, 0x47, 0xa9,
+};
+static const unsigned char kat2154_addin0[] = {
+ 0x80, 0x70, 0x92, 0xa7, 0x46, 0x23, 0xf4, 0x63, 0xe5, 0xff, 0x4d, 0x4a,
+ 0xb8, 0x4a, 0x1b, 0x53, 0x9c, 0x34, 0x6b, 0xf4, 0x79, 0x8b, 0x4c, 0x66,
+ 0x1a, 0x78, 0x17, 0x83, 0x8b, 0x41, 0xfd, 0xe7,
+};
+static const unsigned char kat2154_addin1[] = {
+ 0xdb, 0xcb, 0x02, 0x35, 0x7c, 0x44, 0xb7, 0x70, 0xe6, 0x75, 0x3f, 0xbb,
+ 0xb1, 0x62, 0x2c, 0xa2, 0x89, 0x3e, 0x7c, 0xa4, 0x04, 0xd7, 0x93, 0xc5,
+ 0x4c, 0xf4, 0x02, 0xff, 0xb7, 0x8d, 0xec, 0x6c,
+};
+static const unsigned char kat2154_retbits[] = {
+ 0xa6, 0x0b, 0xc7, 0x53, 0x07, 0xf6, 0x83, 0x34, 0x51, 0x0e, 0xc3, 0x22,
+ 0x4a, 0x8a, 0x1e, 0xb1, 0xc9, 0x89, 0x25, 0x14, 0x55, 0xa8, 0xaa, 0x89,
+ 0xff, 0x1f, 0x91, 0x43, 0x53, 0x7b, 0x4e, 0xdd, 0x35, 0xce, 0xb0, 0xa9,
+ 0xce, 0xfd, 0x7b, 0x4f, 0x71, 0x5e, 0xe1, 0x70, 0x9f, 0xc7, 0xda, 0xe7,
+ 0x19, 0xfd, 0xfa, 0xe8, 0xb2, 0x02, 0x79, 0x09, 0x7c, 0xf8, 0x6b, 0x7f,
+ 0x48, 0x5d, 0x34, 0xcd,
+};
+static const struct drbg_kat_pr_false kat2154_t = {
+ 8, kat2154_entropyin, kat2154_nonce, kat2154_persstr,
+ kat2154_entropyinreseed, kat2154_addinreseed, kat2154_addin0,
+ kat2154_addin1, kat2154_retbits
+};
+static const struct drbg_kat kat2154 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2154_t
+};
+
+static const unsigned char kat2155_entropyin[] = {
+ 0x83, 0x6f, 0x18, 0xd7, 0xe0, 0xa9, 0x1e, 0x37, 0x26, 0xdd, 0x83, 0x30,
+ 0xa2, 0x3d, 0x09, 0x6a, 0x7e, 0xe5, 0xf8, 0x1a, 0xd2, 0x76, 0x75, 0x0a,
+ 0x53, 0xe8, 0x72, 0xff, 0xfe, 0x36, 0xd2, 0x8a,
+};
+static const unsigned char kat2155_nonce[] = {
+ 0x32, 0x01, 0x9f, 0xf2, 0x9b, 0xfc, 0x47, 0x29, 0xc7, 0x63, 0x9f, 0x74,
+ 0xba, 0xd7, 0x22, 0x4b,
+};
+static const unsigned char kat2155_persstr[] = {
+ 0xfe, 0xb7, 0x8b, 0xd6, 0x29, 0xee, 0xec, 0xf4, 0xfc, 0x04, 0x00, 0xd5,
+ 0x8c, 0x4c, 0x87, 0x15, 0xfd, 0xa9, 0x65, 0xbf, 0x76, 0x90, 0x5d, 0x14,
+ 0x6d, 0x58, 0xf8, 0x9f, 0x90, 0xf4, 0x00, 0x52,
+};
+static const unsigned char kat2155_entropyinreseed[] = {
+ 0x7a, 0x96, 0x33, 0x48, 0xb1, 0xdd, 0xd6, 0x9c, 0xa3, 0x74, 0xad, 0xba,
+ 0x0c, 0x8b, 0x57, 0x76, 0xc9, 0xb9, 0x8c, 0x29, 0x3a, 0x67, 0xa0, 0xbd,
+ 0x9b, 0x76, 0x32, 0x85, 0x13, 0xc7, 0x5d, 0x4b,
+};
+static const unsigned char kat2155_addinreseed[] = {
+ 0x8a, 0x91, 0x07, 0x8e, 0xf7, 0x08, 0x5e, 0x8e, 0x6a, 0x14, 0x27, 0xae,
+ 0xac, 0x3f, 0xc7, 0x93, 0x1d, 0xeb, 0xa0, 0xa7, 0x8a, 0xc1, 0x86, 0x62,
+ 0x21, 0x6a, 0xc9, 0xa6, 0xaa, 0xff, 0xd7, 0xea,
+};
+static const unsigned char kat2155_addin0[] = {
+ 0xb0, 0x72, 0x33, 0x93, 0x41, 0x9e, 0x29, 0xfc, 0xbc, 0x02, 0x97, 0x43,
+ 0xce, 0x53, 0xd0, 0xd6, 0xd1, 0x90, 0x5a, 0xd1, 0x9c, 0x0d, 0x80, 0xe6,
+ 0xed, 0x68, 0x1a, 0x3b, 0xb1, 0xaa, 0x71, 0xa0,
+};
+static const unsigned char kat2155_addin1[] = {
+ 0xa2, 0xd3, 0xe9, 0x6c, 0xd6, 0x6c, 0xe7, 0x7d, 0x72, 0x76, 0xd8, 0x81,
+ 0x92, 0x35, 0xab, 0xcb, 0x00, 0xdf, 0x30, 0xf3, 0xb9, 0xb8, 0x18, 0x8e,
+ 0x89, 0x50, 0x7c, 0x97, 0x81, 0x1a, 0xe7, 0x70,
+};
+static const unsigned char kat2155_retbits[] = {
+ 0x03, 0x45, 0x71, 0x27, 0x52, 0x3c, 0xe2, 0x5a, 0xe9, 0xa7, 0xdd, 0xed,
+ 0xd6, 0x57, 0xcc, 0x2e, 0x36, 0x20, 0xd2, 0xc3, 0xec, 0x18, 0x63, 0x7a,
+ 0x00, 0x39, 0x4b, 0x1a, 0x07, 0x2c, 0x04, 0xdf, 0xb8, 0x05, 0xb5, 0xb7,
+ 0xac, 0x91, 0x7f, 0xfa, 0x47, 0x4a, 0x7a, 0x5e, 0xc4, 0x72, 0x1d, 0x29,
+ 0xab, 0xec, 0xdc, 0x98, 0x41, 0xd3, 0x57, 0x50, 0xc6, 0xe3, 0xfc, 0xaa,
+ 0x8f, 0xc5, 0x4f, 0xd3,
+};
+static const struct drbg_kat_pr_false kat2155_t = {
+ 9, kat2155_entropyin, kat2155_nonce, kat2155_persstr,
+ kat2155_entropyinreseed, kat2155_addinreseed, kat2155_addin0,
+ kat2155_addin1, kat2155_retbits
+};
+static const struct drbg_kat kat2155 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2155_t
+};
+
+static const unsigned char kat2156_entropyin[] = {
+ 0x99, 0xdd, 0xe8, 0x97, 0xb5, 0xa3, 0xc4, 0x5c, 0x30, 0x7f, 0x68, 0x92,
+ 0x1a, 0xed, 0x2c, 0x58, 0x05, 0xef, 0x3b, 0x2e, 0xe2, 0xfe, 0x6d, 0xbd,
+ 0xf0, 0xf5, 0x8f, 0x67, 0x7c, 0xac, 0x5f, 0x34,
+};
+static const unsigned char kat2156_nonce[] = {
+ 0xd3, 0x76, 0xd5, 0xb1, 0xbc, 0xd4, 0x1e, 0xa1, 0x61, 0x13, 0x71, 0xd5,
+ 0x72, 0x13, 0x11, 0x9b,
+};
+static const unsigned char kat2156_persstr[] = {
+ 0xce, 0x0f, 0xa4, 0x3e, 0xb5, 0x72, 0x95, 0x29, 0xce, 0xaf, 0x3e, 0x7c,
+ 0x6d, 0x63, 0x19, 0x6c, 0x71, 0x08, 0xda, 0xec, 0x1a, 0x30, 0x2d, 0x38,
+ 0xfd, 0x6f, 0x52, 0x35, 0xa3, 0xcb, 0x59, 0x3a,
+};
+static const unsigned char kat2156_entropyinreseed[] = {
+ 0x49, 0x8d, 0x10, 0x60, 0x84, 0x16, 0x9b, 0x38, 0xf9, 0xdb, 0x61, 0xe1,
+ 0x0c, 0x87, 0x67, 0x39, 0x26, 0x4e, 0x0d, 0x35, 0xa3, 0x31, 0x4c, 0xf1,
+ 0x6b, 0xc7, 0x2d, 0xfb, 0x67, 0xbf, 0xbb, 0x36,
+};
+static const unsigned char kat2156_addinreseed[] = {
+ 0xc1, 0x95, 0x9d, 0xbb, 0xac, 0x36, 0xef, 0xca, 0xf1, 0x90, 0x15, 0x48,
+ 0x10, 0xcd, 0x76, 0x5b, 0xe4, 0xac, 0x05, 0x0d, 0xb9, 0x3b, 0xc7, 0x67,
+ 0xb0, 0xa4, 0xef, 0xba, 0xd6, 0x84, 0x1b, 0x05,
+};
+static const unsigned char kat2156_addin0[] = {
+ 0x07, 0xc9, 0x48, 0xe6, 0x87, 0x92, 0xfe, 0x9c, 0xb8, 0x9d, 0xb9, 0x3f,
+ 0xed, 0x75, 0xa9, 0x41, 0xa9, 0x1e, 0x55, 0x2c, 0x80, 0x26, 0x20, 0x4e,
+ 0x90, 0x30, 0x7e, 0x36, 0x0c, 0xc3, 0x04, 0x40,
+};
+static const unsigned char kat2156_addin1[] = {
+ 0x36, 0xd3, 0xde, 0xb7, 0xa3, 0x21, 0xee, 0xf9, 0xc1, 0x9f, 0xad, 0x4d,
+ 0x79, 0xb3, 0x1b, 0xdf, 0x40, 0x84, 0x53, 0x56, 0xdb, 0x3a, 0x3f, 0xcc,
+ 0xe9, 0xf2, 0x14, 0x7f, 0xfb, 0xe0, 0xcc, 0x8a,
+};
+static const unsigned char kat2156_retbits[] = {
+ 0x91, 0x1d, 0x89, 0xa6, 0x5c, 0xc1, 0x4b, 0x71, 0xdb, 0xae, 0x07, 0x58,
+ 0x7d, 0xc0, 0xe4, 0x23, 0x8c, 0x97, 0x13, 0xa5, 0xd7, 0x76, 0xac, 0xab,
+ 0x91, 0x6f, 0x09, 0x9e, 0x23, 0xf3, 0xd7, 0x8d, 0xe6, 0x17, 0xc5, 0xf6,
+ 0x97, 0xc9, 0x5e, 0x70, 0xc7, 0xa0, 0xec, 0x78, 0x4a, 0x41, 0x92, 0xad,
+ 0xce, 0x1e, 0xfc, 0x90, 0xc3, 0x36, 0xef, 0x6c, 0x21, 0xa5, 0x19, 0xa6,
+ 0x29, 0x5d, 0xc6, 0xb6,
+};
+static const struct drbg_kat_pr_false kat2156_t = {
+ 10, kat2156_entropyin, kat2156_nonce, kat2156_persstr,
+ kat2156_entropyinreseed, kat2156_addinreseed, kat2156_addin0,
+ kat2156_addin1, kat2156_retbits
+};
+static const struct drbg_kat kat2156 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2156_t
+};
+
+static const unsigned char kat2157_entropyin[] = {
+ 0xe1, 0x41, 0xd4, 0x5d, 0x2b, 0xaf, 0xcb, 0x32, 0xd7, 0x27, 0xc5, 0x2d,
+ 0x00, 0x79, 0x18, 0x8a, 0xdb, 0x4e, 0x14, 0x0b, 0x0a, 0xbb, 0xb2, 0x57,
+ 0xfa, 0x4b, 0x76, 0xcb, 0x14, 0xb5, 0x6b, 0x48,
+};
+static const unsigned char kat2157_nonce[] = {
+ 0xd0, 0x14, 0x02, 0x1d, 0x82, 0xd7, 0x1e, 0x7d, 0xa0, 0x7d, 0xb6, 0x7c,
+ 0x75, 0x1b, 0x6a, 0x13,
+};
+static const unsigned char kat2157_persstr[] = {
+ 0x23, 0xb4, 0x98, 0x39, 0xc8, 0x22, 0x13, 0xfc, 0xcf, 0x8e, 0x82, 0x11,
+ 0x4d, 0xb3, 0x81, 0x9c, 0xfd, 0xd8, 0xc0, 0x44, 0x0d, 0x64, 0xbd, 0xea,
+ 0xe4, 0x6e, 0x79, 0x8b, 0xed, 0xca, 0xff, 0x4d,
+};
+static const unsigned char kat2157_entropyinreseed[] = {
+ 0x68, 0x32, 0xcd, 0xf2, 0xab, 0x89, 0x77, 0x07, 0x53, 0x46, 0x66, 0xfd,
+ 0x47, 0x12, 0x6c, 0x07, 0xef, 0xa3, 0xc5, 0x38, 0x35, 0x35, 0xac, 0x85,
+ 0xcf, 0xee, 0xc8, 0xc6, 0xba, 0x1e, 0x17, 0x2b,
+};
+static const unsigned char kat2157_addinreseed[] = {
+ 0xcc, 0x22, 0x9c, 0x81, 0xa1, 0xc0, 0xbb, 0x7c, 0x5e, 0x63, 0x26, 0xc6,
+ 0x12, 0xf6, 0xf3, 0x0d, 0x1a, 0x54, 0x4f, 0xb8, 0xbf, 0xdf, 0x55, 0xd0,
+ 0x60, 0xda, 0xd6, 0xae, 0x01, 0x4d, 0x94, 0x33,
+};
+static const unsigned char kat2157_addin0[] = {
+ 0x68, 0x07, 0xbd, 0x4a, 0x3c, 0xe8, 0x49, 0xc7, 0x2d, 0x02, 0x21, 0x5f,
+ 0x97, 0x0e, 0x8e, 0x2a, 0xca, 0x54, 0xfe, 0xd1, 0x63, 0x0e, 0x91, 0x07,
+ 0x07, 0xb3, 0x01, 0xd6, 0x3b, 0xe9, 0x87, 0x62,
+};
+static const unsigned char kat2157_addin1[] = {
+ 0x0a, 0xd1, 0x42, 0xdc, 0xeb, 0xfd, 0xf2, 0x2a, 0x2d, 0x2e, 0xb5, 0xe7,
+ 0x58, 0xbc, 0x79, 0xc5, 0xaf, 0x8e, 0xd6, 0x40, 0x39, 0x02, 0x8e, 0xe8,
+ 0xa5, 0xc3, 0xe8, 0xc2, 0x4d, 0x4f, 0x47, 0x13,
+};
+static const unsigned char kat2157_retbits[] = {
+ 0xfb, 0x5b, 0xa7, 0xa1, 0x8f, 0x12, 0x22, 0x20, 0x1d, 0xc0, 0xbf, 0xa5,
+ 0x4c, 0xba, 0xe4, 0xc5, 0xee, 0x42, 0xdf, 0xe4, 0x8f, 0x58, 0xd6, 0x2c,
+ 0x50, 0xb3, 0xda, 0xdf, 0x5d, 0xca, 0x02, 0x1a, 0xa8, 0x48, 0x49, 0x21,
+ 0xf4, 0x5d, 0x89, 0x96, 0x2b, 0x5a, 0x82, 0x8e, 0x4b, 0xed, 0x53, 0xca,
+ 0xb6, 0x7a, 0xe2, 0x8c, 0xf8, 0xf0, 0x65, 0x4a, 0x3c, 0x38, 0xeb, 0x0b,
+ 0xc3, 0x6a, 0x13, 0xf0,
+};
+static const struct drbg_kat_pr_false kat2157_t = {
+ 11, kat2157_entropyin, kat2157_nonce, kat2157_persstr,
+ kat2157_entropyinreseed, kat2157_addinreseed, kat2157_addin0,
+ kat2157_addin1, kat2157_retbits
+};
+static const struct drbg_kat kat2157 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2157_t
+};
+
+static const unsigned char kat2158_entropyin[] = {
+ 0xec, 0x78, 0xd9, 0xf3, 0x85, 0xfc, 0xd4, 0x6d, 0xf1, 0xb0, 0x1d, 0xc0,
+ 0x56, 0x8c, 0xbf, 0x23, 0xaf, 0xe0, 0xa7, 0x19, 0x6a, 0x1c, 0x08, 0x3f,
+ 0x05, 0xa5, 0x3c, 0x5b, 0xee, 0x61, 0x00, 0x48,
+};
+static const unsigned char kat2158_nonce[] = {
+ 0x1e, 0x18, 0x3f, 0x9d, 0x70, 0x24, 0xcb, 0xc8, 0x5e, 0xc6, 0x98, 0x49,
+ 0x1c, 0x89, 0x0b, 0x56,
+};
+static const unsigned char kat2158_persstr[] = {
+ 0x5d, 0x09, 0x0b, 0x15, 0xe4, 0x89, 0x72, 0x31, 0x21, 0xbf, 0xdc, 0x9c,
+ 0x2b, 0x8f, 0x82, 0x87, 0x71, 0x8d, 0xca, 0xd0, 0x65, 0x44, 0xf0, 0x65,
+ 0x90, 0x2d, 0xe6, 0x86, 0x9c, 0x5f, 0x22, 0xe6,
+};
+static const unsigned char kat2158_entropyinreseed[] = {
+ 0x3a, 0x39, 0x11, 0x41, 0x5f, 0x45, 0xd3, 0xf9, 0xf6, 0x65, 0xab, 0x3d,
+ 0x28, 0xc5, 0xe9, 0x5c, 0xa0, 0xd7, 0xf8, 0x6a, 0x5e, 0x5b, 0xc9, 0xc7,
+ 0x6d, 0xc1, 0xe3, 0x5a, 0x5a, 0xc6, 0xfe, 0x06,
+};
+static const unsigned char kat2158_addinreseed[] = {
+ 0xba, 0xca, 0x0f, 0xb1, 0x3e, 0xf4, 0x5e, 0x9c, 0x1d, 0xde, 0x22, 0xf5,
+ 0x6a, 0xcf, 0x04, 0x8d, 0x53, 0x01, 0xcf, 0xa9, 0x27, 0x84, 0xa1, 0xe9,
+ 0x57, 0x31, 0x6b, 0x93, 0x37, 0xda, 0x25, 0x15,
+};
+static const unsigned char kat2158_addin0[] = {
+ 0xcf, 0xa0, 0x0b, 0xdc, 0x20, 0xda, 0xb7, 0x7d, 0xf9, 0xbe, 0xcd, 0x0e,
+ 0x21, 0x9c, 0xec, 0x4e, 0x26, 0x61, 0xe2, 0xe0, 0x15, 0xa5, 0x0a, 0xa6,
+ 0x46, 0x91, 0x25, 0xa3, 0xd0, 0x9f, 0xfd, 0xa8,
+};
+static const unsigned char kat2158_addin1[] = {
+ 0x11, 0x37, 0x96, 0x92, 0x7f, 0x70, 0xaa, 0x34, 0xa8, 0x27, 0xaf, 0xb8,
+ 0x92, 0xab, 0xaa, 0x38, 0xaf, 0x16, 0x15, 0xda, 0x0d, 0xa1, 0x34, 0x34,
+ 0xf5, 0xbe, 0x6c, 0xe4, 0x48, 0xe4, 0x3f, 0xe2,
+};
+static const unsigned char kat2158_retbits[] = {
+ 0x79, 0x20, 0x19, 0x54, 0xe9, 0xb5, 0x54, 0x41, 0x95, 0xba, 0xc5, 0x46,
+ 0x2e, 0xbf, 0x5c, 0x50, 0x23, 0x00, 0x45, 0x85, 0x24, 0x53, 0x3f, 0xdf,
+ 0xd7, 0xc8, 0xe4, 0xcc, 0x1a, 0x6d, 0x1b, 0x28, 0x4f, 0x12, 0xa0, 0x03,
+ 0xed, 0x49, 0x4b, 0x67, 0x16, 0x9c, 0xb1, 0x7d, 0x0f, 0xcd, 0x9e, 0xb5,
+ 0x7c, 0x93, 0xb8, 0x0f, 0x5f, 0xc3, 0xf6, 0xd4, 0xfa, 0x98, 0x3c, 0x63,
+ 0xbd, 0xa5, 0x95, 0xa6,
+};
+static const struct drbg_kat_pr_false kat2158_t = {
+ 12, kat2158_entropyin, kat2158_nonce, kat2158_persstr,
+ kat2158_entropyinreseed, kat2158_addinreseed, kat2158_addin0,
+ kat2158_addin1, kat2158_retbits
+};
+static const struct drbg_kat kat2158 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2158_t
+};
+
+static const unsigned char kat2159_entropyin[] = {
+ 0x3b, 0x4c, 0x1f, 0x22, 0x51, 0x75, 0x86, 0x2c, 0x15, 0xf5, 0x66, 0xf6,
+ 0xe8, 0x40, 0xa5, 0x2c, 0x71, 0xad, 0x24, 0x19, 0x76, 0x28, 0x8b, 0x95,
+ 0x21, 0x13, 0x51, 0x44, 0x1f, 0x55, 0xed, 0xb0,
+};
+static const unsigned char kat2159_nonce[] = {
+ 0xc2, 0x10, 0x67, 0x4f, 0x93, 0x22, 0xb5, 0xd1, 0xec, 0xd3, 0xb5, 0x70,
+ 0x65, 0xe6, 0xbb, 0xe8,
+};
+static const unsigned char kat2159_persstr[] = {
+ 0xfc, 0x46, 0x39, 0xe3, 0x97, 0x1b, 0xba, 0x34, 0xae, 0x3a, 0xda, 0xf8,
+ 0x8c, 0xb3, 0xc1, 0x00, 0x7c, 0x98, 0x61, 0x3f, 0x57, 0x39, 0x58, 0xea,
+ 0x74, 0x8c, 0x3d, 0x01, 0xa1, 0x1d, 0x0d, 0xac,
+};
+static const unsigned char kat2159_entropyinreseed[] = {
+ 0xbb, 0x42, 0xe1, 0x91, 0xb6, 0x17, 0xe0, 0x1d, 0xe8, 0x34, 0x34, 0xf1,
+ 0x39, 0x75, 0xc0, 0x3a, 0xe1, 0xd1, 0x1d, 0xf3, 0x47, 0x04, 0x63, 0x78,
+ 0x15, 0xfe, 0x71, 0xb6, 0x87, 0x6d, 0x9d, 0x7b,
+};
+static const unsigned char kat2159_addinreseed[] = {
+ 0xb6, 0x5b, 0xb9, 0xac, 0x14, 0xee, 0xac, 0x53, 0xaa, 0xb6, 0x85, 0x6f,
+ 0x3f, 0x90, 0x4b, 0x35, 0x3b, 0x6d, 0xb9, 0x11, 0xd5, 0xe1, 0xa4, 0x05,
+ 0x41, 0x4b, 0xd6, 0x9b, 0x8e, 0xf8, 0x2f, 0x8b,
+};
+static const unsigned char kat2159_addin0[] = {
+ 0x3c, 0x1e, 0x5f, 0xe0, 0x21, 0x2b, 0x72, 0xab, 0x2a, 0x8d, 0xc5, 0xd8,
+ 0xa1, 0x2e, 0x38, 0xe9, 0x7f, 0xcb, 0x0c, 0x3d, 0xaf, 0xb7, 0xd8, 0x79,
+ 0x35, 0xc4, 0x67, 0x85, 0xe4, 0xc1, 0x7c, 0xb0,
+};
+static const unsigned char kat2159_addin1[] = {
+ 0xb6, 0x79, 0x1e, 0xae, 0x5c, 0x22, 0x05, 0x99, 0x65, 0x47, 0x2b, 0x7a,
+ 0x7c, 0x71, 0x99, 0xe5, 0xc6, 0x37, 0xa5, 0x3f, 0x92, 0xb0, 0xa7, 0x10,
+ 0x29, 0x0a, 0x9d, 0xde, 0xec, 0xb7, 0x6e, 0xc6,
+};
+static const unsigned char kat2159_retbits[] = {
+ 0xd7, 0x74, 0x5b, 0x5d, 0x74, 0xae, 0xee, 0x1f, 0x90, 0xe5, 0xd9, 0x2b,
+ 0x3f, 0x72, 0x52, 0xae, 0x55, 0xbc, 0x03, 0xb2, 0xdb, 0x0c, 0x07, 0x3d,
+ 0x43, 0x58, 0xa3, 0x97, 0xe3, 0x97, 0x2b, 0x6e, 0x86, 0x88, 0x44, 0x84,
+ 0x85, 0xe2, 0x26, 0x31, 0xbf, 0xe2, 0xf0, 0xe1, 0x56, 0x52, 0x3a, 0xca,
+ 0x16, 0x3e, 0xbe, 0x39, 0x2d, 0xdc, 0xb1, 0xe5, 0x24, 0xa8, 0x39, 0x8f,
+ 0x75, 0x4b, 0x4c, 0x4d,
+};
+static const struct drbg_kat_pr_false kat2159_t = {
+ 13, kat2159_entropyin, kat2159_nonce, kat2159_persstr,
+ kat2159_entropyinreseed, kat2159_addinreseed, kat2159_addin0,
+ kat2159_addin1, kat2159_retbits
+};
+static const struct drbg_kat kat2159 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2159_t
+};
+
+static const unsigned char kat2160_entropyin[] = {
+ 0xbe, 0x69, 0x23, 0xef, 0x05, 0xea, 0xae, 0x72, 0x9b, 0x5b, 0x76, 0x1b,
+ 0x86, 0x68, 0xab, 0x9c, 0x72, 0x08, 0x38, 0x04, 0xdf, 0x87, 0x96, 0xa3,
+ 0x00, 0x41, 0x94, 0x74, 0xdd, 0x66, 0x33, 0x87,
+};
+static const unsigned char kat2160_nonce[] = {
+ 0x78, 0x06, 0x45, 0x8f, 0xfe, 0x9f, 0x20, 0x6e, 0xea, 0x8a, 0x96, 0x6b,
+ 0x1b, 0x23, 0xea, 0xc2,
+};
+static const unsigned char kat2160_persstr[] = {
+ 0x8b, 0x44, 0xc7, 0xf2, 0xe1, 0xf6, 0xb1, 0xba, 0x37, 0x98, 0xe5, 0x1f,
+ 0x9b, 0x04, 0x8c, 0x8c, 0x8b, 0x08, 0xdf, 0x3c, 0x83, 0x58, 0x45, 0x78,
+ 0x71, 0x2b, 0x9f, 0x8b, 0x73, 0x7b, 0xa1, 0x1b,
+};
+static const unsigned char kat2160_entropyinreseed[] = {
+ 0x40, 0xf0, 0xfe, 0x73, 0x6e, 0x7c, 0x94, 0xc6, 0x94, 0xeb, 0x85, 0x39,
+ 0xec, 0x81, 0x62, 0x66, 0x1f, 0x73, 0xa5, 0xdf, 0x5c, 0xf3, 0xd6, 0x96,
+ 0xb1, 0x9f, 0xa3, 0xfa, 0xcf, 0x3e, 0x32, 0xd1,
+};
+static const unsigned char kat2160_addinreseed[] = {
+ 0x86, 0x67, 0x70, 0x96, 0xcd, 0x2f, 0xc1, 0x9f, 0xb2, 0xb7, 0x43, 0x1c,
+ 0xb2, 0x5f, 0x8b, 0x3f, 0x0c, 0xc1, 0xdd, 0xa2, 0x78, 0x3a, 0xf6, 0xd4,
+ 0x9e, 0x0f, 0x02, 0xde, 0x44, 0xd9, 0x19, 0x58,
+};
+static const unsigned char kat2160_addin0[] = {
+ 0x63, 0x98, 0x24, 0x76, 0x80, 0x81, 0xb8, 0xf8, 0xd0, 0x9b, 0x9b, 0x4e,
+ 0xb5, 0x1c, 0x0b, 0xd1, 0xea, 0x56, 0x66, 0x06, 0x7a, 0xde, 0x26, 0x28,
+ 0xd4, 0x5e, 0x72, 0x72, 0x13, 0x84, 0xb1, 0xdd,
+};
+static const unsigned char kat2160_addin1[] = {
+ 0x74, 0x92, 0xad, 0xa1, 0xc9, 0x6f, 0x7b, 0x2d, 0xe3, 0x29, 0xcd, 0x54,
+ 0x65, 0x1b, 0xde, 0x17, 0xb4, 0xfc, 0x69, 0x47, 0x12, 0x80, 0x93, 0x11,
+ 0x80, 0xbb, 0xde, 0xca, 0xa2, 0x88, 0x94, 0x35,
+};
+static const unsigned char kat2160_retbits[] = {
+ 0x5c, 0x37, 0xc8, 0x29, 0xee, 0xe0, 0xa9, 0xac, 0xf2, 0xec, 0x0a, 0xf8,
+ 0x16, 0xc7, 0x97, 0x4a, 0x09, 0x99, 0x4e, 0x74, 0x4c, 0x07, 0x0f, 0x58,
+ 0xd4, 0xfc, 0xc2, 0x16, 0x49, 0x1a, 0x35, 0xbe, 0x0d, 0x32, 0x85, 0x4c,
+ 0xc4, 0xbf, 0x69, 0x56, 0xea, 0x5c, 0x43, 0x37, 0x0c, 0x02, 0x08, 0x4d,
+ 0xd3, 0x0a, 0x66, 0xfd, 0xa0, 0x89, 0xf5, 0xc4, 0x7b, 0x49, 0x75, 0xd5,
+ 0x9a, 0x01, 0xa0, 0x22,
+};
+static const struct drbg_kat_pr_false kat2160_t = {
+ 14, kat2160_entropyin, kat2160_nonce, kat2160_persstr,
+ kat2160_entropyinreseed, kat2160_addinreseed, kat2160_addin0,
+ kat2160_addin1, kat2160_retbits
+};
+static const struct drbg_kat kat2160 = {
+ PR_FALSE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat2160_t
+};
+
+static const unsigned char kat2161_entropyin[] = {
+ 0xed, 0x1e, 0x7f, 0x21, 0xef, 0x66, 0xea, 0x5d, 0x8e, 0x2a, 0x85, 0xb9,
+ 0x33, 0x72, 0x45, 0x44, 0x5b, 0x71, 0xd6, 0x39, 0x3a, 0x4e, 0xec, 0xb0,
+ 0xe6, 0x3c, 0x19, 0x3d, 0x0f, 0x72, 0xf9, 0xa9,
+};
+static const unsigned char kat2161_nonce[] = {0};
+static const unsigned char kat2161_persstr[] = {0};
+static const unsigned char kat2161_entropyinreseed[] = {
+ 0x30, 0x3f, 0xb5, 0x19, 0xf0, 0xa4, 0xe1, 0x7d, 0x6d, 0xf0, 0xb6, 0x42,
+ 0x6a, 0xa0, 0xec, 0xb2, 0xa3, 0x60, 0x79, 0xbd, 0x48, 0xbe, 0x47, 0xad,
+ 0x2a, 0x8d, 0xbf, 0xe4, 0x8d, 0xa3, 0xef, 0xad,
+};
+static const unsigned char kat2161_addinreseed[] = {0};
+static const unsigned char kat2161_addin0[] = {0};
+static const unsigned char kat2161_addin1[] = {0};
+static const unsigned char kat2161_retbits[] = {
+ 0xf8, 0x01, 0x11, 0xd0, 0x8e, 0x87, 0x46, 0x72, 0xf3, 0x2f, 0x42, 0x99,
+ 0x71, 0x33, 0xa5, 0x21, 0x0f, 0x7a, 0x93, 0x75, 0xe2, 0x2c, 0xea, 0x70,
+ 0x58, 0x7f, 0x9c, 0xfa, 0xfe, 0xbe, 0x0f, 0x6a, 0x6a, 0xa2, 0xeb, 0x68,
+ 0xe7, 0xdd, 0x91, 0x64, 0x53, 0x6d, 0x53, 0xfa, 0x02, 0x0f, 0xca, 0xb2,
+ 0x0f, 0x54, 0xca, 0xdd, 0xfa, 0xb7, 0xd6, 0xd9, 0x1e, 0x5f, 0xfe, 0xc1,
+ 0xdf, 0xd8, 0xde, 0xaa,
+};
+static const struct drbg_kat_pr_false kat2161_t = {
+ 0, kat2161_entropyin, kat2161_nonce, kat2161_persstr,
+ kat2161_entropyinreseed, kat2161_addinreseed, kat2161_addin0,
+ kat2161_addin1, kat2161_retbits
+};
+static const struct drbg_kat kat2161 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2161_t
+};
+
+static const unsigned char kat2162_entropyin[] = {
+ 0xea, 0xb5, 0xa9, 0xf2, 0x3c, 0xea, 0xc9, 0xe4, 0x19, 0x5e, 0x18, 0x5c,
+ 0x8c, 0xea, 0x54, 0x9d, 0x6d, 0x97, 0xd0, 0x32, 0x76, 0x22, 0x5a, 0x74,
+ 0x52, 0x76, 0x3c, 0x39, 0x6a, 0x7f, 0x70, 0xbf,
+};
+static const unsigned char kat2162_nonce[] = {0};
+static const unsigned char kat2162_persstr[] = {0};
+static const unsigned char kat2162_entropyinreseed[] = {
+ 0x42, 0x58, 0x76, 0x5c, 0x65, 0xa0, 0x3a, 0xf9, 0x2f, 0xc5, 0x81, 0x6f,
+ 0x96, 0x6f, 0x1a, 0x66, 0x44, 0xa6, 0x13, 0x46, 0x33, 0xaa, 0xd2, 0xd5,
+ 0xd1, 0x9b, 0xd1, 0x92, 0xe4, 0xc1, 0x19, 0x6a,
+};
+static const unsigned char kat2162_addinreseed[] = {0};
+static const unsigned char kat2162_addin0[] = {0};
+static const unsigned char kat2162_addin1[] = {0};
+static const unsigned char kat2162_retbits[] = {
+ 0x29, 0x15, 0xc9, 0xfa, 0xbf, 0xbf, 0x7c, 0x62, 0xd6, 0x8d, 0x83, 0xb4,
+ 0xe6, 0x5a, 0x23, 0x98, 0x85, 0xe8, 0x09, 0xce, 0xac, 0x97, 0xeb, 0x8e,
+ 0xf4, 0xb6, 0x4d, 0xf5, 0x98, 0x81, 0xc2, 0x77, 0xd3, 0xa1, 0x5e, 0x0e,
+ 0x15, 0xb0, 0x1d, 0x16, 0x7c, 0x49, 0x03, 0x8f, 0xad, 0x2f, 0x54, 0x78,
+ 0x5e, 0xa7, 0x14, 0x36, 0x6d, 0x17, 0xbb, 0x2f, 0x82, 0x39, 0xfd, 0x21,
+ 0x7d, 0x7e, 0x1c, 0xba,
+};
+static const struct drbg_kat_pr_false kat2162_t = {
+ 1, kat2162_entropyin, kat2162_nonce, kat2162_persstr,
+ kat2162_entropyinreseed, kat2162_addinreseed, kat2162_addin0,
+ kat2162_addin1, kat2162_retbits
+};
+static const struct drbg_kat kat2162 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2162_t
+};
+
+static const unsigned char kat2163_entropyin[] = {
+ 0x44, 0x65, 0xbf, 0x16, 0x92, 0x97, 0x81, 0x91, 0x60, 0xb8, 0xef, 0x40,
+ 0x6c, 0xe7, 0x68, 0xf7, 0x0d, 0x09, 0x45, 0x88, 0x32, 0x2e, 0x8a, 0x21,
+ 0x4a, 0x8d, 0x67, 0xd5, 0x57, 0x04, 0x93, 0x1c,
+};
+static const unsigned char kat2163_nonce[] = {0};
+static const unsigned char kat2163_persstr[] = {0};
+static const unsigned char kat2163_entropyinreseed[] = {
+ 0xa4, 0x61, 0xf0, 0x49, 0xfc, 0xa9, 0x34, 0x9c, 0x29, 0xf4, 0xaa, 0x49,
+ 0x09, 0xa4, 0xd1, 0x5d, 0x11, 0xe4, 0xce, 0x72, 0x74, 0x7a, 0xd5, 0xb0,
+ 0xa7, 0xb1, 0xca, 0x6d, 0x83, 0xf8, 0x8f, 0xf1,
+};
+static const unsigned char kat2163_addinreseed[] = {0};
+static const unsigned char kat2163_addin0[] = {0};
+static const unsigned char kat2163_addin1[] = {0};
+static const unsigned char kat2163_retbits[] = {
+ 0x1e, 0xd1, 0x07, 0x97, 0x63, 0xfb, 0xe2, 0xdc, 0xfc, 0x65, 0x53, 0x2d,
+ 0x2f, 0x1d, 0xb0, 0xe1, 0xcc, 0xd2, 0x71, 0xa9, 0xc7, 0x3b, 0x34, 0x79,
+ 0xf1, 0x6b, 0x0d, 0x3d, 0x99, 0x3b, 0xc0, 0x51, 0x6f, 0x4c, 0xaf, 0x6f,
+ 0x01, 0x85, 0xec, 0xba, 0x91, 0x2e, 0xbb, 0x8e, 0x42, 0x43, 0x7e, 0x20,
+ 0x16, 0xa6, 0x12, 0x14, 0x59, 0xe6, 0x4e, 0x82, 0xb4, 0x14, 0xba, 0x7f,
+ 0x99, 0x4a, 0x53, 0xbd,
+};
+static const struct drbg_kat_pr_false kat2163_t = {
+ 2, kat2163_entropyin, kat2163_nonce, kat2163_persstr,
+ kat2163_entropyinreseed, kat2163_addinreseed, kat2163_addin0,
+ kat2163_addin1, kat2163_retbits
+};
+static const struct drbg_kat kat2163 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2163_t
+};
+
+static const unsigned char kat2164_entropyin[] = {
+ 0x67, 0x56, 0x64, 0x94, 0xc6, 0xa1, 0x70, 0xe6, 0x5d, 0x52, 0x77, 0xb8,
+ 0x27, 0x26, 0x4d, 0xa1, 0x1d, 0xe1, 0xbd, 0xef, 0x34, 0x5e, 0x59, 0x3f,
+ 0x7a, 0x42, 0x05, 0x80, 0xbe, 0x8e, 0x3f, 0x7b,
+};
+static const unsigned char kat2164_nonce[] = {0};
+static const unsigned char kat2164_persstr[] = {0};
+static const unsigned char kat2164_entropyinreseed[] = {
+ 0x73, 0x76, 0x52, 0xb3, 0xa4, 0xce, 0xa2, 0xe6, 0x8f, 0x28, 0xfe, 0xd8,
+ 0x39, 0x99, 0x41, 0x70, 0xb7, 0x01, 0xaa, 0xa0, 0xfd, 0xc0, 0x15, 0xa9,
+ 0x45, 0xe8, 0xee, 0x00, 0x57, 0x7a, 0x7f, 0x6e,
+};
+static const unsigned char kat2164_addinreseed[] = {0};
+static const unsigned char kat2164_addin0[] = {0};
+static const unsigned char kat2164_addin1[] = {0};
+static const unsigned char kat2164_retbits[] = {
+ 0xe0, 0xee, 0x86, 0x95, 0x0d, 0xe5, 0x52, 0x81, 0xd8, 0x61, 0xdc, 0x65,
+ 0x6f, 0x80, 0xbc, 0x4b, 0xbe, 0xaf, 0x8b, 0x53, 0x03, 0xe0, 0x7d, 0xf3,
+ 0x53, 0xf6, 0x7a, 0xa6, 0x31, 0x83, 0x33, 0x3a, 0x43, 0x7a, 0xab, 0xc4,
+ 0x00, 0x64, 0x3e, 0x64, 0x8f, 0x21, 0xe6, 0x38, 0x09, 0xd6, 0x88, 0x63,
+ 0x2e, 0x4f, 0xc8, 0xa2, 0x5a, 0xa7, 0x40, 0x63, 0x7d, 0x81, 0x2a, 0xbe,
+ 0x9e, 0xb1, 0x7b, 0x5a,
+};
+static const struct drbg_kat_pr_false kat2164_t = {
+ 3, kat2164_entropyin, kat2164_nonce, kat2164_persstr,
+ kat2164_entropyinreseed, kat2164_addinreseed, kat2164_addin0,
+ kat2164_addin1, kat2164_retbits
+};
+static const struct drbg_kat kat2164 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2164_t
+};
+
+static const unsigned char kat2165_entropyin[] = {
+ 0x9b, 0xa9, 0x28, 0xf8, 0x8b, 0xc9, 0x24, 0xa1, 0xe1, 0x9e, 0xa8, 0x04,
+ 0xd7, 0x09, 0x6d, 0xd6, 0xc5, 0x5d, 0x94, 0x97, 0xd8, 0x89, 0xfb, 0x87,
+ 0xea, 0xfb, 0x17, 0x93, 0x80, 0xf7, 0xd7, 0xa5,
+};
+static const unsigned char kat2165_nonce[] = {0};
+static const unsigned char kat2165_persstr[] = {0};
+static const unsigned char kat2165_entropyinreseed[] = {
+ 0x76, 0x33, 0x7f, 0x55, 0xd0, 0x7c, 0x33, 0xc2, 0x11, 0x29, 0xaa, 0x69,
+ 0x49, 0x12, 0x70, 0x3e, 0x4f, 0xef, 0x8e, 0x54, 0x01, 0x18, 0x5c, 0x7e,
+ 0x7d, 0x47, 0x78, 0x4e, 0x96, 0x3c, 0x87, 0xa4,
+};
+static const unsigned char kat2165_addinreseed[] = {0};
+static const unsigned char kat2165_addin0[] = {0};
+static const unsigned char kat2165_addin1[] = {0};
+static const unsigned char kat2165_retbits[] = {
+ 0x51, 0x0b, 0x18, 0xec, 0x20, 0x12, 0x0d, 0xa8, 0x79, 0x8c, 0xa9, 0x44,
+ 0xdf, 0xc9, 0x7c, 0x63, 0xae, 0x62, 0x26, 0x6d, 0x12, 0x2c, 0x70, 0xce,
+ 0x5c, 0xf4, 0x72, 0xd5, 0xba, 0x71, 0x7d, 0xfc, 0x80, 0xa1, 0xcc, 0xe0,
+ 0xc2, 0x9a, 0x8c, 0xf3, 0xd2, 0x21, 0x58, 0x3c, 0x72, 0x23, 0xb3, 0x31,
+ 0x72, 0x7b, 0x41, 0xa0, 0xcd, 0x56, 0xd4, 0xca, 0x42, 0x5e, 0x76, 0x78,
+ 0x44, 0x17, 0x84, 0xfc,
+};
+static const struct drbg_kat_pr_false kat2165_t = {
+ 4, kat2165_entropyin, kat2165_nonce, kat2165_persstr,
+ kat2165_entropyinreseed, kat2165_addinreseed, kat2165_addin0,
+ kat2165_addin1, kat2165_retbits
+};
+static const struct drbg_kat kat2165 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2165_t
+};
+
+static const unsigned char kat2166_entropyin[] = {
+ 0xeb, 0x20, 0x96, 0x8b, 0x85, 0xcd, 0xab, 0xe8, 0x7c, 0x64, 0x00, 0xd8,
+ 0xb0, 0x1d, 0x93, 0xc0, 0x24, 0x0a, 0xce, 0x20, 0xa4, 0x0b, 0xbb, 0x49,
+ 0x96, 0xa0, 0xde, 0x6e, 0xd3, 0xc4, 0x93, 0x26,
+};
+static const unsigned char kat2166_nonce[] = {0};
+static const unsigned char kat2166_persstr[] = {0};
+static const unsigned char kat2166_entropyinreseed[] = {
+ 0xc4, 0x6e, 0x67, 0xb8, 0x02, 0x7d, 0xb6, 0xb5, 0xba, 0xc4, 0x09, 0x06,
+ 0xad, 0x0b, 0xe6, 0x27, 0x59, 0x52, 0x4a, 0x2f, 0x3d, 0x90, 0xa5, 0x02,
+ 0x5b, 0x18, 0x8e, 0x7a, 0x85, 0x0c, 0x73, 0xbe,
+};
+static const unsigned char kat2166_addinreseed[] = {0};
+static const unsigned char kat2166_addin0[] = {0};
+static const unsigned char kat2166_addin1[] = {0};
+static const unsigned char kat2166_retbits[] = {
+ 0xbd, 0x15, 0x8d, 0x21, 0xc0, 0x17, 0x2d, 0x50, 0x58, 0xf7, 0x4d, 0x69,
+ 0x86, 0x5c, 0x98, 0xb6, 0x10, 0x25, 0x68, 0x38, 0x07, 0xdf, 0x93, 0x0b,
+ 0xf5, 0xfc, 0x3c, 0x50, 0x0c, 0x8c, 0x10, 0xc7, 0x1d, 0x88, 0x04, 0xfa,
+ 0x67, 0xdb, 0x41, 0x3a, 0x4a, 0x5c, 0x53, 0xd5, 0x7a, 0x52, 0xaa, 0xac,
+ 0x46, 0x96, 0x98, 0xb4, 0xa4, 0x2f, 0xda, 0x0e, 0xed, 0xf7, 0xb4, 0x5d,
+ 0x36, 0x07, 0x86, 0x39,
+};
+static const struct drbg_kat_pr_false kat2166_t = {
+ 5, kat2166_entropyin, kat2166_nonce, kat2166_persstr,
+ kat2166_entropyinreseed, kat2166_addinreseed, kat2166_addin0,
+ kat2166_addin1, kat2166_retbits
+};
+static const struct drbg_kat kat2166 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2166_t
+};
+
+static const unsigned char kat2167_entropyin[] = {
+ 0x7b, 0x32, 0x92, 0xfe, 0xd2, 0x22, 0x26, 0x31, 0x5b, 0x52, 0xc1, 0x2e,
+ 0x0a, 0x49, 0x3e, 0xb4, 0xed, 0xa9, 0xa7, 0x94, 0x98, 0xcc, 0x71, 0x98,
+ 0x5a, 0x3b, 0xd0, 0x7d, 0x29, 0xe5, 0xae, 0x04,
+};
+static const unsigned char kat2167_nonce[] = {0};
+static const unsigned char kat2167_persstr[] = {0};
+static const unsigned char kat2167_entropyinreseed[] = {
+ 0x21, 0x31, 0x7b, 0xba, 0x5c, 0x80, 0x5b, 0x6e, 0x05, 0xa1, 0x13, 0x7c,
+ 0x90, 0xb6, 0x55, 0x9b, 0xf1, 0x02, 0x7c, 0x2a, 0x80, 0xb9, 0x5d, 0x17,
+ 0x6e, 0x31, 0xa8, 0x7f, 0x6d, 0xdd, 0x48, 0xb9,
+};
+static const unsigned char kat2167_addinreseed[] = {0};
+static const unsigned char kat2167_addin0[] = {0};
+static const unsigned char kat2167_addin1[] = {0};
+static const unsigned char kat2167_retbits[] = {
+ 0xeb, 0x68, 0xb9, 0x98, 0x5d, 0xb9, 0xfc, 0x86, 0x54, 0xe7, 0x21, 0x9c,
+ 0x85, 0x99, 0xf4, 0x2e, 0xc0, 0x16, 0x4b, 0x42, 0xb5, 0xe9, 0x5a, 0x08,
+ 0x7c, 0x4e, 0xe8, 0xbd, 0x88, 0x98, 0xfa, 0x69, 0x54, 0x8b, 0x8c, 0x5d,
+ 0xa1, 0xaf, 0x2a, 0x78, 0x5f, 0x5a, 0x01, 0x49, 0xdd, 0x30, 0xc8, 0x89,
+ 0x22, 0x12, 0x3d, 0x44, 0x9e, 0x32, 0x4c, 0x39, 0x9d, 0xf4, 0xb5, 0x24,
+ 0xa3, 0x3e, 0x5a, 0x9d,
+};
+static const struct drbg_kat_pr_false kat2167_t = {
+ 6, kat2167_entropyin, kat2167_nonce, kat2167_persstr,
+ kat2167_entropyinreseed, kat2167_addinreseed, kat2167_addin0,
+ kat2167_addin1, kat2167_retbits
+};
+static const struct drbg_kat kat2167 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2167_t
+};
+
+static const unsigned char kat2168_entropyin[] = {
+ 0x47, 0x7b, 0xaa, 0xc7, 0x30, 0xe5, 0x34, 0xf2, 0xe2, 0x52, 0x5e, 0x83,
+ 0x71, 0x98, 0x02, 0x76, 0x4b, 0x95, 0x4a, 0xcf, 0x97, 0x32, 0xe8, 0x72,
+ 0x4d, 0x85, 0x6d, 0xcd, 0x12, 0x4a, 0xea, 0xc7,
+};
+static const unsigned char kat2168_nonce[] = {0};
+static const unsigned char kat2168_persstr[] = {0};
+static const unsigned char kat2168_entropyinreseed[] = {
+ 0x44, 0x61, 0xfa, 0x9e, 0x6f, 0xb6, 0xd4, 0x82, 0x9c, 0x8b, 0x16, 0xcb,
+ 0xcc, 0xb1, 0x4d, 0xed, 0xee, 0x9f, 0x0d, 0x6f, 0x58, 0x83, 0x74, 0x8d,
+ 0x7a, 0x90, 0xf1, 0x4f, 0xef, 0x54, 0xd8, 0xcc,
+};
+static const unsigned char kat2168_addinreseed[] = {0};
+static const unsigned char kat2168_addin0[] = {0};
+static const unsigned char kat2168_addin1[] = {0};
+static const unsigned char kat2168_retbits[] = {
+ 0x61, 0xe5, 0xd9, 0x05, 0x6d, 0x27, 0x69, 0x1f, 0x42, 0x58, 0xe8, 0x84,
+ 0x4a, 0x51, 0x6e, 0x97, 0x9a, 0xeb, 0x49, 0xc5, 0xd9, 0x48, 0x26, 0x82,
+ 0xf9, 0x14, 0xcb, 0x9b, 0x31, 0x01, 0x72, 0xed, 0x1a, 0xe1, 0xb0, 0x1b,
+ 0x24, 0x1b, 0x31, 0x7a, 0x59, 0xad, 0xcc, 0x94, 0x44, 0xcd, 0xd8, 0x20,
+ 0x4e, 0x49, 0xb8, 0xd9, 0x17, 0x89, 0x2d, 0x23, 0x72, 0x58, 0x66, 0xcd,
+ 0x31, 0xef, 0xf5, 0x34,
+};
+static const struct drbg_kat_pr_false kat2168_t = {
+ 7, kat2168_entropyin, kat2168_nonce, kat2168_persstr,
+ kat2168_entropyinreseed, kat2168_addinreseed, kat2168_addin0,
+ kat2168_addin1, kat2168_retbits
+};
+static const struct drbg_kat kat2168 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2168_t
+};
+
+static const unsigned char kat2169_entropyin[] = {
+ 0x94, 0xc7, 0x7e, 0xc6, 0xe2, 0x2b, 0x85, 0xee, 0xb1, 0xd2, 0x87, 0x7b,
+ 0x69, 0xee, 0xb5, 0x64, 0x25, 0x8c, 0x21, 0x4e, 0x9e, 0xa5, 0x7c, 0xef,
+ 0x69, 0xa8, 0x29, 0xbb, 0xd8, 0xb7, 0xca, 0x09,
+};
+static const unsigned char kat2169_nonce[] = {0};
+static const unsigned char kat2169_persstr[] = {0};
+static const unsigned char kat2169_entropyinreseed[] = {
+ 0xc2, 0x26, 0x77, 0xc5, 0x70, 0xfc, 0x95, 0x91, 0x88, 0x09, 0x42, 0x9c,
+ 0x24, 0x08, 0x02, 0xf6, 0xb5, 0x89, 0x6c, 0x48, 0xa1, 0x30, 0xcb, 0x19,
+ 0xbf, 0x1c, 0x1a, 0xd4, 0x38, 0x76, 0x22, 0xdf,
+};
+static const unsigned char kat2169_addinreseed[] = {0};
+static const unsigned char kat2169_addin0[] = {0};
+static const unsigned char kat2169_addin1[] = {0};
+static const unsigned char kat2169_retbits[] = {
+ 0x52, 0x5d, 0x69, 0xe6, 0x83, 0x9a, 0x24, 0x2a, 0x90, 0x11, 0x79, 0xbc,
+ 0x2e, 0x23, 0x9e, 0xc3, 0x72, 0x26, 0x31, 0x9a, 0x34, 0x64, 0xb2, 0xaa,
+ 0x42, 0x1c, 0x9b, 0x5f, 0xf4, 0xc9, 0xd6, 0x71, 0x7e, 0x5b, 0x4a, 0xd4,
+ 0x2c, 0x91, 0x3c, 0x53, 0x29, 0x05, 0x69, 0x8d, 0xee, 0x3b, 0x82, 0x09,
+ 0xf2, 0xe2, 0x27, 0xae, 0x4f, 0x74, 0x8d, 0xeb, 0x3c, 0xe8, 0xd2, 0x17,
+ 0x46, 0xb5, 0x85, 0xbd,
+};
+static const struct drbg_kat_pr_false kat2169_t = {
+ 8, kat2169_entropyin, kat2169_nonce, kat2169_persstr,
+ kat2169_entropyinreseed, kat2169_addinreseed, kat2169_addin0,
+ kat2169_addin1, kat2169_retbits
+};
+static const struct drbg_kat kat2169 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2169_t
+};
+
+static const unsigned char kat2170_entropyin[] = {
+ 0x0e, 0x55, 0x85, 0xe1, 0x0c, 0xed, 0xd8, 0x96, 0x79, 0x2e, 0x2b, 0x91,
+ 0x8b, 0x2c, 0xb0, 0xa3, 0x78, 0x44, 0xb6, 0x4c, 0x86, 0x2c, 0x28, 0x3d,
+ 0x76, 0xc9, 0x70, 0x55, 0xc8, 0x8d, 0x70, 0x2b,
+};
+static const unsigned char kat2170_nonce[] = {0};
+static const unsigned char kat2170_persstr[] = {0};
+static const unsigned char kat2170_entropyinreseed[] = {
+ 0x87, 0x44, 0x5a, 0x1a, 0xde, 0x00, 0x2d, 0x1f, 0x0f, 0x49, 0xd6, 0x4b,
+ 0xda, 0x4c, 0x8c, 0xa4, 0x27, 0x22, 0x5f, 0xf5, 0x6f, 0x37, 0x1a, 0x20,
+ 0xbd, 0x8a, 0x5a, 0x3b, 0xd3, 0x5f, 0xc5, 0x68,
+};
+static const unsigned char kat2170_addinreseed[] = {0};
+static const unsigned char kat2170_addin0[] = {0};
+static const unsigned char kat2170_addin1[] = {0};
+static const unsigned char kat2170_retbits[] = {
+ 0x83, 0x06, 0x7b, 0x4a, 0x57, 0xa5, 0xf6, 0xba, 0x41, 0x8a, 0x98, 0x99,
+ 0x6e, 0xb1, 0x02, 0x32, 0x9d, 0x6b, 0xdc, 0x4e, 0x1d, 0xfb, 0x12, 0x54,
+ 0x68, 0xf1, 0xf8, 0xab, 0x36, 0xd0, 0x07, 0x32, 0x59, 0x7d, 0xe5, 0x68,
+ 0xc1, 0x7c, 0xae, 0x34, 0x12, 0xc9, 0xeb, 0xfa, 0xe0, 0x83, 0x77, 0xca,
+ 0x19, 0x40, 0x6b, 0x1a, 0xbc, 0x5e, 0x10, 0xbe, 0x5d, 0xbe, 0xac, 0xf3,
+ 0x83, 0x9b, 0xcf, 0x43,
+};
+static const struct drbg_kat_pr_false kat2170_t = {
+ 9, kat2170_entropyin, kat2170_nonce, kat2170_persstr,
+ kat2170_entropyinreseed, kat2170_addinreseed, kat2170_addin0,
+ kat2170_addin1, kat2170_retbits
+};
+static const struct drbg_kat kat2170 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2170_t
+};
+
+static const unsigned char kat2171_entropyin[] = {
+ 0x01, 0xd9, 0xf6, 0x24, 0x69, 0x36, 0xee, 0x66, 0x82, 0xe5, 0xcb, 0x84,
+ 0x0a, 0x39, 0x46, 0x28, 0xc7, 0x9d, 0x0d, 0x74, 0xc8, 0x98, 0xc7, 0x3c,
+ 0xac, 0x25, 0x15, 0xed, 0x9e, 0x05, 0x30, 0x3b,
+};
+static const unsigned char kat2171_nonce[] = {0};
+static const unsigned char kat2171_persstr[] = {0};
+static const unsigned char kat2171_entropyinreseed[] = {
+ 0xe2, 0xae, 0x7e, 0x8d, 0x2e, 0x3a, 0x18, 0x29, 0x36, 0x89, 0x1c, 0x06,
+ 0x67, 0x51, 0xd4, 0x0d, 0xd6, 0xc9, 0x2e, 0xbe, 0x14, 0x6d, 0xd1, 0x3d,
+ 0x4e, 0x07, 0x65, 0x91, 0xd7, 0xd6, 0x3f, 0x8d,
+};
+static const unsigned char kat2171_addinreseed[] = {0};
+static const unsigned char kat2171_addin0[] = {0};
+static const unsigned char kat2171_addin1[] = {0};
+static const unsigned char kat2171_retbits[] = {
+ 0x1c, 0xe0, 0x4a, 0x78, 0xac, 0x2d, 0x53, 0xdb, 0x46, 0xa1, 0xbb, 0x92,
+ 0x40, 0xd4, 0x7f, 0x37, 0x13, 0x4c, 0xa7, 0xa2, 0x82, 0x6c, 0x09, 0xce,
+ 0xb4, 0x8d, 0x53, 0x3d, 0x64, 0x5b, 0xb0, 0x87, 0xbf, 0xb7, 0x7b, 0x18,
+ 0xf9, 0xaa, 0xfd, 0x1c, 0xf1, 0x72, 0x7a, 0xd4, 0x8a, 0xed, 0xe2, 0x07,
+ 0xf4, 0x90, 0xbf, 0x53, 0xe1, 0xe1, 0x9f, 0x9f, 0x06, 0x61, 0x5d, 0xd9,
+ 0x37, 0x07, 0x3c, 0x11,
+};
+static const struct drbg_kat_pr_false kat2171_t = {
+ 10, kat2171_entropyin, kat2171_nonce, kat2171_persstr,
+ kat2171_entropyinreseed, kat2171_addinreseed, kat2171_addin0,
+ kat2171_addin1, kat2171_retbits
+};
+static const struct drbg_kat kat2171 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2171_t
+};
+
+static const unsigned char kat2172_entropyin[] = {
+ 0xc9, 0x11, 0x89, 0x66, 0x9a, 0xab, 0x97, 0x3c, 0x92, 0xc9, 0xa7, 0x1f,
+ 0xd6, 0x8d, 0xb2, 0x53, 0xd2, 0xad, 0xee, 0x1c, 0xbf, 0x25, 0xbd, 0x6a,
+ 0x4a, 0x1f, 0xa6, 0x69, 0xf7, 0xd0, 0x6e, 0x35,
+};
+static const unsigned char kat2172_nonce[] = {0};
+static const unsigned char kat2172_persstr[] = {0};
+static const unsigned char kat2172_entropyinreseed[] = {
+ 0xb7, 0x6f, 0x39, 0x31, 0x10, 0x0b, 0x65, 0x8f, 0xc0, 0x64, 0xa1, 0xcd,
+ 0x21, 0xcb, 0x75, 0x1d, 0x57, 0x70, 0x8f, 0x71, 0xe9, 0x03, 0xbf, 0x79,
+ 0x08, 0xa8, 0x06, 0x16, 0xfa, 0x7e, 0x5b, 0xcf,
+};
+static const unsigned char kat2172_addinreseed[] = {0};
+static const unsigned char kat2172_addin0[] = {0};
+static const unsigned char kat2172_addin1[] = {0};
+static const unsigned char kat2172_retbits[] = {
+ 0x86, 0xa5, 0x97, 0x07, 0xf4, 0x3f, 0x09, 0xdf, 0x04, 0xd0, 0x60, 0xe9,
+ 0xad, 0x08, 0x0f, 0x2d, 0x95, 0x84, 0xdc, 0x33, 0xc8, 0xf2, 0xde, 0x97,
+ 0x33, 0x75, 0x1d, 0xe4, 0xae, 0x17, 0xda, 0x5a, 0xc9, 0x3a, 0xd9, 0xf7,
+ 0xe3, 0x04, 0x39, 0x01, 0x37, 0x32, 0x52, 0x16, 0xf3, 0x7c, 0x77, 0xa7,
+ 0x12, 0xb6, 0x75, 0x6e, 0x6f, 0xfa, 0x38, 0x2b, 0x63, 0x49, 0x5e, 0xeb,
+ 0x80, 0x33, 0x24, 0x56,
+};
+static const struct drbg_kat_pr_false kat2172_t = {
+ 11, kat2172_entropyin, kat2172_nonce, kat2172_persstr,
+ kat2172_entropyinreseed, kat2172_addinreseed, kat2172_addin0,
+ kat2172_addin1, kat2172_retbits
+};
+static const struct drbg_kat kat2172 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2172_t
+};
+
+static const unsigned char kat2173_entropyin[] = {
+ 0xb0, 0xc3, 0x5b, 0xba, 0x01, 0x04, 0x33, 0x98, 0x44, 0x3d, 0x68, 0xdf,
+ 0xe2, 0xc8, 0x89, 0x89, 0x33, 0xce, 0x58, 0xb9, 0x8a, 0x59, 0x80, 0x64,
+ 0xb7, 0x6d, 0x09, 0x5c, 0x30, 0x07, 0x4b, 0xf6,
+};
+static const unsigned char kat2173_nonce[] = {0};
+static const unsigned char kat2173_persstr[] = {0};
+static const unsigned char kat2173_entropyinreseed[] = {
+ 0x02, 0xfd, 0xeb, 0x64, 0xd0, 0x97, 0x39, 0x96, 0xa8, 0xa8, 0xa0, 0x62,
+ 0x90, 0x26, 0xf5, 0x6c, 0xbb, 0xb9, 0x1f, 0xca, 0x34, 0xb8, 0xf5, 0x0e,
+ 0xc0, 0x59, 0xe7, 0x46, 0xd4, 0xb2, 0x0b, 0x1a,
+};
+static const unsigned char kat2173_addinreseed[] = {0};
+static const unsigned char kat2173_addin0[] = {0};
+static const unsigned char kat2173_addin1[] = {0};
+static const unsigned char kat2173_retbits[] = {
+ 0xa3, 0xdc, 0xfd, 0x35, 0x47, 0x81, 0x4b, 0x54, 0x39, 0xdd, 0x5c, 0xc6,
+ 0x17, 0x8c, 0x66, 0x32, 0xcc, 0xcd, 0x81, 0xfc, 0xc3, 0x4b, 0x8f, 0x9c,
+ 0x9c, 0xeb, 0x52, 0xc2, 0x3e, 0xfd, 0xd1, 0x8b, 0xb4, 0x87, 0x3b, 0x97,
+ 0xad, 0xe5, 0x3c, 0x54, 0x82, 0x4c, 0x87, 0x68, 0xdf, 0x0e, 0x99, 0x87,
+ 0xec, 0xfa, 0x96, 0x35, 0xe1, 0xba, 0x39, 0x44, 0xd8, 0x69, 0x4f, 0x7c,
+ 0xa8, 0xc5, 0x1f, 0xac,
+};
+static const struct drbg_kat_pr_false kat2173_t = {
+ 12, kat2173_entropyin, kat2173_nonce, kat2173_persstr,
+ kat2173_entropyinreseed, kat2173_addinreseed, kat2173_addin0,
+ kat2173_addin1, kat2173_retbits
+};
+static const struct drbg_kat kat2173 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2173_t
+};
+
+static const unsigned char kat2174_entropyin[] = {
+ 0x56, 0x9f, 0x3b, 0x21, 0xf1, 0xb8, 0x0c, 0x6c, 0x51, 0x70, 0x30, 0xf5,
+ 0x1c, 0xb8, 0x18, 0x66, 0xcd, 0xa2, 0x4a, 0xc1, 0x68, 0xa9, 0x9b, 0x4e,
+ 0x5e, 0x96, 0x34, 0xd0, 0xb1, 0x6a, 0xc0, 0xa1,
+};
+static const unsigned char kat2174_nonce[] = {0};
+static const unsigned char kat2174_persstr[] = {0};
+static const unsigned char kat2174_entropyinreseed[] = {
+ 0x0d, 0x66, 0x25, 0xc6, 0xe5, 0x10, 0x22, 0x16, 0xd4, 0xe0, 0xe5, 0xe6,
+ 0x17, 0x1d, 0x8e, 0xe2, 0x60, 0xca, 0xcd, 0xe6, 0xbd, 0xb5, 0xb0, 0x82,
+ 0xcb, 0x9b, 0xcf, 0xe9, 0x6b, 0x67, 0x98, 0x6e,
+};
+static const unsigned char kat2174_addinreseed[] = {0};
+static const unsigned char kat2174_addin0[] = {0};
+static const unsigned char kat2174_addin1[] = {0};
+static const unsigned char kat2174_retbits[] = {
+ 0x00, 0x6b, 0xe6, 0xcb, 0xd8, 0x66, 0xe2, 0x75, 0xd9, 0x7c, 0xc4, 0x99,
+ 0x81, 0x3f, 0x46, 0x25, 0x87, 0xf9, 0x38, 0x05, 0x4d, 0x73, 0x3f, 0xf2,
+ 0x09, 0xd3, 0x03, 0x5f, 0xde, 0x3e, 0x2d, 0x69, 0x15, 0xcf, 0x6c, 0xa3,
+ 0x34, 0x2d, 0x90, 0x64, 0xdf, 0x7a, 0xc8, 0x07, 0x5b, 0x3f, 0x54, 0xf8,
+ 0x7b, 0x35, 0xcd, 0x9b, 0x4e, 0xbc, 0x56, 0x83, 0x5a, 0x9e, 0xa2, 0x55,
+ 0x7d, 0x8e, 0x15, 0x4b,
+};
+static const struct drbg_kat_pr_false kat2174_t = {
+ 13, kat2174_entropyin, kat2174_nonce, kat2174_persstr,
+ kat2174_entropyinreseed, kat2174_addinreseed, kat2174_addin0,
+ kat2174_addin1, kat2174_retbits
+};
+static const struct drbg_kat kat2174 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2174_t
+};
+
+static const unsigned char kat2175_entropyin[] = {
+ 0x8e, 0xcd, 0xbf, 0x1c, 0xba, 0x26, 0xea, 0xe4, 0x5f, 0x70, 0xcc, 0xfe,
+ 0xc0, 0xe4, 0x2d, 0x61, 0x39, 0xbe, 0x57, 0xf1, 0x31, 0xff, 0x60, 0x89,
+ 0x8a, 0x3b, 0x63, 0x96, 0x8a, 0xcf, 0x28, 0xac,
+};
+static const unsigned char kat2175_nonce[] = {0};
+static const unsigned char kat2175_persstr[] = {0};
+static const unsigned char kat2175_entropyinreseed[] = {
+ 0x8d, 0x86, 0x0d, 0xcf, 0x67, 0xfb, 0xee, 0x47, 0xf3, 0x3e, 0xd5, 0x27,
+ 0x3f, 0xf8, 0x19, 0x56, 0x33, 0x5d, 0x91, 0x52, 0x08, 0x5f, 0x18, 0x4f,
+ 0x84, 0x27, 0xad, 0x42, 0x34, 0xf9, 0x56, 0x61,
+};
+static const unsigned char kat2175_addinreseed[] = {0};
+static const unsigned char kat2175_addin0[] = {0};
+static const unsigned char kat2175_addin1[] = {0};
+static const unsigned char kat2175_retbits[] = {
+ 0x80, 0x49, 0xf3, 0xfe, 0x2e, 0x62, 0x88, 0x3f, 0x71, 0xcc, 0x43, 0x87,
+ 0x3b, 0x97, 0x75, 0xbf, 0x60, 0xa9, 0x7c, 0x07, 0x03, 0x70, 0xf9, 0x75,
+ 0x7c, 0x51, 0x48, 0x8b, 0x05, 0x0c, 0x00, 0x95, 0x9d, 0x08, 0x5d, 0xdd,
+ 0x8f, 0x8e, 0x37, 0x02, 0xaa, 0x4c, 0xd6, 0xff, 0x19, 0xb6, 0xc6, 0x26,
+ 0x85, 0xaf, 0xb7, 0x79, 0x2e, 0xb0, 0x03, 0xc0, 0x7b, 0xbc, 0xc9, 0xf4,
+ 0xa0, 0x26, 0xd1, 0x38,
+};
+static const struct drbg_kat_pr_false kat2175_t = {
+ 14, kat2175_entropyin, kat2175_nonce, kat2175_persstr,
+ kat2175_entropyinreseed, kat2175_addinreseed, kat2175_addin0,
+ kat2175_addin1, kat2175_retbits
+};
+static const struct drbg_kat kat2175 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2175_t
+};
+
+static const unsigned char kat2176_entropyin[] = {
+ 0x6b, 0xc7, 0x09, 0xaa, 0x4c, 0x97, 0x5b, 0x0e, 0xcc, 0xb9, 0x22, 0xce,
+ 0x21, 0x10, 0xfa, 0x9b, 0x57, 0x24, 0x03, 0xf9, 0x01, 0x3d, 0xfd, 0x10,
+ 0xf0, 0x6a, 0x88, 0xd5, 0x4d, 0x38, 0x00, 0x02,
+};
+static const unsigned char kat2176_nonce[] = {0};
+static const unsigned char kat2176_persstr[] = {0};
+static const unsigned char kat2176_entropyinreseed[] = {
+ 0xcf, 0x1a, 0xf8, 0x4e, 0xdd, 0xd5, 0xbe, 0xf6, 0x66, 0xea, 0x42, 0xbe,
+ 0xa6, 0x06, 0x7a, 0x23, 0xe5, 0x27, 0x42, 0xe2, 0x46, 0x61, 0xf9, 0x44,
+ 0xba, 0x25, 0x14, 0xfe, 0x05, 0x2a, 0xbf, 0x31,
+};
+static const unsigned char kat2176_addinreseed[] = {
+ 0xa4, 0x69, 0x88, 0xba, 0xd4, 0x9b, 0x78, 0xc6, 0x13, 0xc9, 0x4e, 0x06,
+ 0xa5, 0x3b, 0x08, 0x0b, 0xf6, 0xd2, 0x0b, 0x73, 0x85, 0xbf, 0x4c, 0x78,
+ 0x2a, 0xd7, 0xcd, 0x14, 0x5d, 0xdc, 0x90, 0x53,
+};
+static const unsigned char kat2176_addin0[] = {
+ 0x13, 0x9d, 0x6f, 0x72, 0xbf, 0x1d, 0x0e, 0xc5, 0xbf, 0xdd, 0x24, 0x5e,
+ 0x01, 0x3f, 0x5c, 0xda, 0xc8, 0x5e, 0x3e, 0xca, 0x71, 0x61, 0x96, 0x01,
+ 0x8b, 0x92, 0x13, 0x3c, 0x00, 0xa0, 0x74, 0x36,
+};
+static const unsigned char kat2176_addin1[] = {
+ 0x24, 0x0f, 0x1a, 0x5a, 0xf7, 0xfc, 0x2e, 0x4d, 0x32, 0xac, 0xe6, 0x35,
+ 0xac, 0xba, 0x59, 0x47, 0xf3, 0x56, 0x4e, 0xcb, 0xfd, 0x75, 0x16, 0xc4,
+ 0x79, 0xc0, 0xad, 0xda, 0x20, 0x74, 0x7f, 0x26,
+};
+static const unsigned char kat2176_retbits[] = {
+ 0xe7, 0x27, 0x26, 0x8a, 0x54, 0x6c, 0x0c, 0x89, 0x1c, 0xf5, 0x3a, 0x70,
+ 0xa9, 0x28, 0x20, 0xee, 0x9b, 0xbf, 0x72, 0x8a, 0xd5, 0x2f, 0x30, 0x62,
+ 0x5b, 0x2e, 0x28, 0xf0, 0xf6, 0xc9, 0x06, 0xf6, 0x0f, 0xfd, 0x02, 0xf7,
+ 0xd8, 0x16, 0x23, 0x29, 0x59, 0x50, 0xc0, 0x4b, 0x63, 0xa4, 0x86, 0x34,
+ 0xeb, 0x41, 0xa5, 0xb4, 0xd6, 0x49, 0xbd, 0xab, 0xff, 0x33, 0x5a, 0xc3,
+ 0x20, 0x06, 0x90, 0xb0,
+};
+static const struct drbg_kat_pr_false kat2176_t = {
+ 0, kat2176_entropyin, kat2176_nonce, kat2176_persstr,
+ kat2176_entropyinreseed, kat2176_addinreseed, kat2176_addin0,
+ kat2176_addin1, kat2176_retbits
+};
+static const struct drbg_kat kat2176 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2176_t
+};
+
+static const unsigned char kat2177_entropyin[] = {
+ 0x7b, 0x8f, 0x45, 0x57, 0xe7, 0x8f, 0x17, 0x5c, 0x2a, 0x82, 0xb5, 0x62,
+ 0xc8, 0x59, 0x5a, 0xea, 0xd7, 0x5e, 0x6d, 0x6e, 0xae, 0xa8, 0x7b, 0xe0,
+ 0x96, 0x5a, 0xac, 0x1f, 0x92, 0x34, 0x73, 0x06,
+};
+static const unsigned char kat2177_nonce[] = {0};
+static const unsigned char kat2177_persstr[] = {0};
+static const unsigned char kat2177_entropyinreseed[] = {
+ 0x2b, 0x6a, 0xf9, 0x8e, 0x7e, 0x95, 0x09, 0x6f, 0xc3, 0xb8, 0xd2, 0xe2,
+ 0x26, 0xed, 0x4b, 0x1b, 0xe7, 0x77, 0xc3, 0x1b, 0x81, 0x06, 0xa9, 0x00,
+ 0x27, 0x05, 0x2e, 0xcd, 0xec, 0x17, 0xbc, 0x94,
+};
+static const unsigned char kat2177_addinreseed[] = {
+ 0x64, 0xdf, 0xaa, 0xa7, 0x19, 0x78, 0x75, 0x9f, 0xc2, 0xa0, 0xee, 0x73,
+ 0xae, 0xb4, 0x48, 0x95, 0xef, 0x09, 0xc9, 0x36, 0x38, 0xab, 0xf9, 0x9c,
+ 0xd4, 0xec, 0x99, 0xff, 0xa0, 0xfb, 0x94, 0x06,
+};
+static const unsigned char kat2177_addin0[] = {
+ 0xc0, 0xe5, 0xaa, 0x51, 0xf0, 0x54, 0x95, 0xfc, 0x74, 0x38, 0xae, 0xb9,
+ 0x53, 0xb6, 0x16, 0x27, 0xfa, 0xbb, 0xd1, 0x48, 0xa9, 0x95, 0x9b, 0xf8,
+ 0x73, 0xbb, 0x87, 0xea, 0x00, 0x5f, 0x05, 0x5c,
+};
+static const unsigned char kat2177_addin1[] = {
+ 0x69, 0x20, 0x02, 0x63, 0x79, 0x8a, 0x7d, 0x17, 0x4c, 0x1e, 0x36, 0x69,
+ 0xab, 0xef, 0x91, 0x4b, 0x86, 0x63, 0xe3, 0xf9, 0x99, 0x8c, 0x71, 0x1f,
+ 0x0d, 0xc0, 0x66, 0x78, 0x91, 0x8e, 0x80, 0x63,
+};
+static const unsigned char kat2177_retbits[] = {
+ 0x45, 0x39, 0x7a, 0x1d, 0x05, 0xd6, 0xc2, 0xc0, 0x82, 0xf7, 0x36, 0xae,
+ 0x77, 0xf1, 0x16, 0xd7, 0xbf, 0x54, 0x3b, 0x78, 0xad, 0x3b, 0xa4, 0xbf,
+ 0x39, 0xab, 0xea, 0xb7, 0xa9, 0x64, 0xef, 0x9d, 0xa3, 0x1d, 0x6e, 0x8c,
+ 0x5d, 0xec, 0x8e, 0x9e, 0x52, 0x47, 0x76, 0x65, 0x59, 0xb0, 0x3f, 0xb9,
+ 0x8c, 0x61, 0x98, 0x90, 0xd4, 0x09, 0x68, 0xb9, 0xab, 0x3c, 0x99, 0x51,
+ 0xdd, 0x6b, 0xf4, 0x8f,
+};
+static const struct drbg_kat_pr_false kat2177_t = {
+ 1, kat2177_entropyin, kat2177_nonce, kat2177_persstr,
+ kat2177_entropyinreseed, kat2177_addinreseed, kat2177_addin0,
+ kat2177_addin1, kat2177_retbits
+};
+static const struct drbg_kat kat2177 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2177_t
+};
+
+static const unsigned char kat2178_entropyin[] = {
+ 0xaa, 0x47, 0x40, 0xe7, 0x5b, 0x0b, 0x71, 0x42, 0xa1, 0x7c, 0xbe, 0x32,
+ 0xe0, 0xf9, 0xf8, 0x23, 0xc5, 0xc3, 0xea, 0xcb, 0x7a, 0xc8, 0xfc, 0xbd,
+ 0xcb, 0xbf, 0xb3, 0x46, 0x0c, 0x5b, 0xff, 0x92,
+};
+static const unsigned char kat2178_nonce[] = {0};
+static const unsigned char kat2178_persstr[] = {0};
+static const unsigned char kat2178_entropyinreseed[] = {
+ 0x1f, 0x34, 0x65, 0x09, 0xf7, 0x64, 0x19, 0xad, 0x21, 0xf4, 0x81, 0x2e,
+ 0xf3, 0x8b, 0x66, 0xeb, 0x1a, 0xb2, 0x27, 0x73, 0x38, 0xdb, 0x56, 0xf3,
+ 0xe3, 0x07, 0xad, 0xf4, 0xee, 0x55, 0xf0, 0x2f,
+};
+static const unsigned char kat2178_addinreseed[] = {
+ 0x51, 0xbf, 0xe5, 0x8d, 0xcb, 0x44, 0x08, 0xd5, 0xdb, 0x8b, 0x8c, 0x0c,
+ 0xf9, 0x7d, 0x8c, 0xfb, 0xb0, 0x8d, 0xa2, 0xda, 0x4a, 0x6e, 0x11, 0xe9,
+ 0x02, 0x32, 0xad, 0xf6, 0xa9, 0x38, 0xba, 0x9d,
+};
+static const unsigned char kat2178_addin0[] = {
+ 0x46, 0x40, 0xae, 0xd4, 0x19, 0xd8, 0x07, 0x57, 0x15, 0x14, 0x28, 0xdf,
+ 0xd1, 0x8c, 0x6d, 0x2a, 0x11, 0x91, 0xf0, 0xab, 0xa9, 0xe5, 0xa1, 0xd9,
+ 0xab, 0x62, 0x9a, 0xc0, 0x03, 0x5c, 0x1e, 0xd0,
+};
+static const unsigned char kat2178_addin1[] = {
+ 0x38, 0x8f, 0xcd, 0x2d, 0x71, 0x27, 0x79, 0x2a, 0x87, 0x75, 0x6e, 0xb3,
+ 0xfd, 0x7b, 0x31, 0x3a, 0x7e, 0x41, 0xc2, 0xf8, 0x75, 0x43, 0xf3, 0xce,
+ 0x23, 0x15, 0xe3, 0x4f, 0x2d, 0x9e, 0x4c, 0x5a,
+};
+static const unsigned char kat2178_retbits[] = {
+ 0xba, 0x44, 0x88, 0x69, 0xc1, 0x05, 0x29, 0x4c, 0xf9, 0x1b, 0xa7, 0x39,
+ 0x34, 0x9b, 0x74, 0xfb, 0xc2, 0x9d, 0x02, 0x1d, 0xa1, 0x47, 0x66, 0x2f,
+ 0xa1, 0x36, 0xd8, 0x89, 0x7e, 0xb8, 0x64, 0x21, 0xb5, 0x3f, 0xac, 0xfc,
+ 0x70, 0x9f, 0x7b, 0xc2, 0xa1, 0x92, 0x37, 0xea, 0xec, 0x53, 0xb2, 0xd4,
+ 0x48, 0xb9, 0x4f, 0x96, 0xc3, 0x7d, 0xc6, 0x97, 0x34, 0x9d, 0xc9, 0xa3,
+ 0x90, 0x17, 0xeb, 0x2e,
+};
+static const struct drbg_kat_pr_false kat2178_t = {
+ 2, kat2178_entropyin, kat2178_nonce, kat2178_persstr,
+ kat2178_entropyinreseed, kat2178_addinreseed, kat2178_addin0,
+ kat2178_addin1, kat2178_retbits
+};
+static const struct drbg_kat kat2178 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2178_t
+};
+
+static const unsigned char kat2179_entropyin[] = {
+ 0x82, 0x6c, 0x95, 0x14, 0x64, 0x51, 0x14, 0x70, 0xd1, 0x56, 0x0d, 0xf8,
+ 0x08, 0x8a, 0x04, 0x96, 0xa9, 0x6f, 0xae, 0x1b, 0xc7, 0x17, 0x15, 0x45,
+ 0x80, 0xfb, 0xbb, 0x63, 0xbd, 0x06, 0xea, 0x92,
+};
+static const unsigned char kat2179_nonce[] = {0};
+static const unsigned char kat2179_persstr[] = {0};
+static const unsigned char kat2179_entropyinreseed[] = {
+ 0xa0, 0xcb, 0x04, 0x42, 0x58, 0x78, 0x4e, 0x90, 0x70, 0xcf, 0x17, 0xfb,
+ 0xc9, 0xda, 0xb6, 0x00, 0x64, 0x91, 0x52, 0xb9, 0xca, 0x86, 0x6f, 0x24,
+ 0x44, 0x7c, 0xb9, 0x2c, 0x29, 0x01, 0xf5, 0xd2,
+};
+static const unsigned char kat2179_addinreseed[] = {
+ 0x65, 0x6f, 0x0b, 0xb0, 0x3f, 0x2c, 0x75, 0xd8, 0xa9, 0xbe, 0xb0, 0x49,
+ 0xef, 0xfd, 0xe2, 0x03, 0x2b, 0xbb, 0xf0, 0xb5, 0x08, 0x65, 0xc5, 0x2c,
+ 0xf0, 0x5f, 0xb4, 0xf4, 0xb3, 0xc1, 0x8d, 0x92,
+};
+static const unsigned char kat2179_addin0[] = {
+ 0x0f, 0xcf, 0xe1, 0x83, 0x97, 0x05, 0x6b, 0x1c, 0x98, 0xa9, 0x90, 0x30,
+ 0x11, 0x68, 0x3d, 0xa1, 0x2e, 0x51, 0x71, 0x7c, 0xd8, 0x13, 0xe8, 0xb6,
+ 0xf0, 0xed, 0x88, 0xf3, 0x77, 0xbd, 0x5e, 0x0f,
+};
+static const unsigned char kat2179_addin1[] = {
+ 0x0d, 0x6d, 0xc8, 0x35, 0xa7, 0x16, 0xa8, 0x69, 0xd7, 0x3c, 0x1c, 0xf7,
+ 0x80, 0xc0, 0x25, 0xc2, 0x6a, 0x77, 0x86, 0xf8, 0x37, 0x2b, 0x01, 0x57,
+ 0x0e, 0x89, 0x58, 0x7a, 0xce, 0xfa, 0x45, 0x35,
+};
+static const unsigned char kat2179_retbits[] = {
+ 0x77, 0x25, 0x16, 0x61, 0x20, 0x0d, 0xc4, 0xcb, 0x73, 0x96, 0xd4, 0x64,
+ 0x55, 0xc1, 0x45, 0x82, 0xbb, 0xc1, 0xc6, 0xcf, 0x61, 0x3a, 0xa4, 0x13,
+ 0xe4, 0x06, 0x9b, 0xf8, 0xfc, 0x4f, 0x01, 0xf4, 0xef, 0xee, 0xcf, 0x11,
+ 0x21, 0xe0, 0xa5, 0x04, 0x1e, 0xf4, 0x78, 0x5d, 0x73, 0xfa, 0xc3, 0x2b,
+ 0x0e, 0xf0, 0x8a, 0x0c, 0x13, 0xf9, 0x16, 0x4d, 0x7d, 0x74, 0xc0, 0xd6,
+ 0x96, 0xb7, 0x1d, 0x18,
+};
+static const struct drbg_kat_pr_false kat2179_t = {
+ 3, kat2179_entropyin, kat2179_nonce, kat2179_persstr,
+ kat2179_entropyinreseed, kat2179_addinreseed, kat2179_addin0,
+ kat2179_addin1, kat2179_retbits
+};
+static const struct drbg_kat kat2179 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2179_t
+};
+
+static const unsigned char kat2180_entropyin[] = {
+ 0xf5, 0x02, 0xec, 0x7c, 0x3e, 0x46, 0x21, 0x73, 0x86, 0x7d, 0xb8, 0x28,
+ 0x22, 0x04, 0x71, 0x25, 0xdc, 0x7b, 0xde, 0x93, 0x13, 0x27, 0x34, 0xc1,
+ 0xf0, 0xf2, 0xdc, 0xec, 0x6b, 0xb7, 0x4e, 0x33,
+};
+static const unsigned char kat2180_nonce[] = {0};
+static const unsigned char kat2180_persstr[] = {0};
+static const unsigned char kat2180_entropyinreseed[] = {
+ 0x14, 0x9c, 0x7a, 0xc7, 0x40, 0xfa, 0x5d, 0x05, 0xa7, 0xbd, 0xbb, 0x98,
+ 0x00, 0x86, 0xa9, 0xda, 0x1e, 0xef, 0x54, 0x1b, 0xee, 0xce, 0x75, 0xce,
+ 0xae, 0x41, 0x81, 0xba, 0xb3, 0x6b, 0x8f, 0x84,
+};
+static const unsigned char kat2180_addinreseed[] = {
+ 0x43, 0xed, 0xd5, 0xa2, 0x93, 0xa3, 0x6a, 0xd0, 0x77, 0xb9, 0x0a, 0x0f,
+ 0x72, 0xf4, 0xd1, 0x66, 0x1f, 0xdc, 0x12, 0x62, 0xb5, 0x29, 0x3f, 0xeb,
+ 0x9d, 0xad, 0xe5, 0x65, 0x10, 0xea, 0x23, 0xbf,
+};
+static const unsigned char kat2180_addin0[] = {
+ 0x12, 0x14, 0x95, 0xce, 0x1c, 0x78, 0xf2, 0x05, 0xe2, 0x43, 0xe5, 0xf5,
+ 0x08, 0xc9, 0xdb, 0x04, 0x57, 0x4d, 0xc6, 0x87, 0x82, 0x0f, 0xe2, 0xe1,
+ 0xf8, 0x70, 0x10, 0xf2, 0x3c, 0x2b, 0x42, 0xfb,
+};
+static const unsigned char kat2180_addin1[] = {
+ 0xf0, 0x35, 0xe4, 0x97, 0x6c, 0x99, 0x73, 0x2e, 0x11, 0x5b, 0xb4, 0x52,
+ 0x7d, 0x64, 0x22, 0xc6, 0x47, 0xbb, 0x03, 0x23, 0xc0, 0x12, 0x1f, 0x1a,
+ 0x4d, 0x42, 0x08, 0xfa, 0xbd, 0xd5, 0x6f, 0x9d,
+};
+static const unsigned char kat2180_retbits[] = {
+ 0x6b, 0x07, 0xa2, 0x98, 0x8a, 0x03, 0x69, 0x85, 0x91, 0xe0, 0x06, 0x63,
+ 0x37, 0x10, 0x41, 0x70, 0x6e, 0x72, 0x00, 0xe1, 0xa8, 0x19, 0xae, 0xa7,
+ 0xf6, 0x4e, 0x34, 0xa7, 0x7d, 0xed, 0x25, 0x04, 0x96, 0x51, 0x67, 0xb8,
+ 0x80, 0x4e, 0x6e, 0x77, 0xe9, 0x00, 0xf1, 0xb7, 0x8c, 0x0b, 0x8d, 0x59,
+ 0x45, 0xba, 0xb0, 0xc1, 0xec, 0xc3, 0x53, 0x22, 0x93, 0x21, 0x5f, 0xa4,
+ 0x05, 0x07, 0xd4, 0x57,
+};
+static const struct drbg_kat_pr_false kat2180_t = {
+ 4, kat2180_entropyin, kat2180_nonce, kat2180_persstr,
+ kat2180_entropyinreseed, kat2180_addinreseed, kat2180_addin0,
+ kat2180_addin1, kat2180_retbits
+};
+static const struct drbg_kat kat2180 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2180_t
+};
+
+static const unsigned char kat2181_entropyin[] = {
+ 0xe3, 0x1d, 0x0f, 0x4f, 0xc1, 0xa2, 0xb5, 0xbf, 0xa6, 0xda, 0x7d, 0xfa,
+ 0xd1, 0xa8, 0xdf, 0x6f, 0x90, 0x94, 0xa5, 0x65, 0xe0, 0x27, 0x3b, 0xc6,
+ 0x36, 0xbe, 0x46, 0x0c, 0x96, 0x38, 0xe7, 0x6f,
+};
+static const unsigned char kat2181_nonce[] = {0};
+static const unsigned char kat2181_persstr[] = {0};
+static const unsigned char kat2181_entropyinreseed[] = {
+ 0xe0, 0x68, 0x17, 0x05, 0x54, 0x74, 0xec, 0xfb, 0xd8, 0xe3, 0x03, 0xff,
+ 0xac, 0x10, 0x18, 0xda, 0x76, 0xfe, 0x47, 0x0a, 0x55, 0x72, 0x5a, 0xfd,
+ 0xf8, 0x1e, 0xb4, 0x71, 0xbf, 0x6e, 0x75, 0x93,
+};
+static const unsigned char kat2181_addinreseed[] = {
+ 0xec, 0x0c, 0x81, 0x82, 0xa0, 0x40, 0x74, 0x03, 0x5f, 0x28, 0x74, 0x70,
+ 0xf4, 0x97, 0x41, 0xad, 0xf1, 0x0e, 0xce, 0xcc, 0x69, 0x8c, 0x38, 0x0d,
+ 0xb6, 0x7b, 0xd2, 0xed, 0x23, 0x35, 0xf2, 0x9b,
+};
+static const unsigned char kat2181_addin0[] = {
+ 0x23, 0x14, 0x3e, 0xf3, 0x07, 0x85, 0xda, 0x8a, 0x40, 0x78, 0xd7, 0x17,
+ 0x35, 0x49, 0xf4, 0x2d, 0xc5, 0x3f, 0xa7, 0xa6, 0xcc, 0x12, 0xe7, 0x75,
+ 0x36, 0x1d, 0x16, 0xca, 0x9d, 0x8b, 0xfa, 0xc8,
+};
+static const unsigned char kat2181_addin1[] = {
+ 0x61, 0x5b, 0xfb, 0x9c, 0x06, 0x51, 0x10, 0x23, 0x26, 0xef, 0x1c, 0x1e,
+ 0xb6, 0xce, 0xd7, 0xb3, 0xf8, 0x7d, 0x40, 0x26, 0x83, 0x5e, 0x79, 0x6a,
+ 0xda, 0xbc, 0x05, 0xa0, 0x4e, 0x05, 0x50, 0xb6,
+};
+static const unsigned char kat2181_retbits[] = {
+ 0xcd, 0xfb, 0xcb, 0xf0, 0x69, 0x94, 0xfc, 0x9a, 0xa1, 0xfb, 0x5e, 0xbb,
+ 0xb8, 0xba, 0x47, 0x40, 0xc8, 0x6f, 0xf6, 0xce, 0x7a, 0xdd, 0xe7, 0x35,
+ 0x89, 0xbd, 0xe8, 0x80, 0x06, 0xda, 0xf2, 0x4f, 0x36, 0xb9, 0x82, 0xdf,
+ 0xc0, 0x68, 0xa1, 0x34, 0x78, 0x37, 0x74, 0x57, 0x69, 0xa7, 0x67, 0xe4,
+ 0xbd, 0x41, 0x41, 0x75, 0x68, 0xe8, 0x96, 0xe1, 0xb6, 0x9b, 0x63, 0xff,
+ 0x8f, 0xf2, 0x59, 0x23,
+};
+static const struct drbg_kat_pr_false kat2181_t = {
+ 5, kat2181_entropyin, kat2181_nonce, kat2181_persstr,
+ kat2181_entropyinreseed, kat2181_addinreseed, kat2181_addin0,
+ kat2181_addin1, kat2181_retbits
+};
+static const struct drbg_kat kat2181 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2181_t
+};
+
+static const unsigned char kat2182_entropyin[] = {
+ 0x1b, 0x56, 0x51, 0xab, 0x23, 0x6b, 0xae, 0x70, 0x61, 0x24, 0x7d, 0x66,
+ 0x6c, 0x1e, 0x27, 0xf7, 0x3f, 0x13, 0xe1, 0x4a, 0xcc, 0xc1, 0x53, 0xd0,
+ 0x8a, 0xf1, 0x9e, 0xac, 0xb9, 0xde, 0x3f, 0x9e,
+};
+static const unsigned char kat2182_nonce[] = {0};
+static const unsigned char kat2182_persstr[] = {0};
+static const unsigned char kat2182_entropyinreseed[] = {
+ 0xff, 0xf2, 0x6b, 0xc1, 0xd4, 0x80, 0x13, 0x48, 0xab, 0x5d, 0x2b, 0x74,
+ 0x7b, 0xc5, 0x23, 0xf3, 0xb5, 0xc9, 0xae, 0x5a, 0xe3, 0x9d, 0xb6, 0xb2,
+ 0x81, 0xed, 0x67, 0xd1, 0x7f, 0x50, 0x98, 0xa4,
+};
+static const unsigned char kat2182_addinreseed[] = {
+ 0xc3, 0x83, 0x99, 0x9f, 0x1c, 0x14, 0xe0, 0x7b, 0x16, 0xfc, 0xe1, 0x24,
+ 0xc0, 0x47, 0xa0, 0x1a, 0x62, 0xf8, 0xdf, 0x5c, 0xa0, 0xaa, 0xb2, 0x30,
+ 0xfb, 0xec, 0x71, 0x35, 0x3c, 0xf6, 0x32, 0x04,
+};
+static const unsigned char kat2182_addin0[] = {
+ 0x20, 0x78, 0x1e, 0xe4, 0x3c, 0xde, 0xd0, 0x7c, 0x46, 0x1a, 0xed, 0xbc,
+ 0x3d, 0x0f, 0xb9, 0x46, 0xf7, 0xd7, 0x0b, 0x6f, 0x5e, 0x8c, 0xcc, 0xbe,
+ 0x43, 0x5d, 0x6e, 0xd3, 0x71, 0x58, 0xbd, 0x13,
+};
+static const unsigned char kat2182_addin1[] = {
+ 0x1a, 0xae, 0x1a, 0x19, 0xd6, 0x53, 0xc0, 0x76, 0xea, 0xb1, 0x47, 0x53,
+ 0x98, 0x11, 0x83, 0xbe, 0xb9, 0x3c, 0xa5, 0xbb, 0x7c, 0xa5, 0x2e, 0x3d,
+ 0xd5, 0x00, 0xce, 0xa0, 0xf3, 0x0c, 0x31, 0x06,
+};
+static const unsigned char kat2182_retbits[] = {
+ 0x07, 0x03, 0x02, 0xb4, 0x3d, 0x7c, 0xed, 0xe1, 0xd9, 0x19, 0x1f, 0x8f,
+ 0xd1, 0xd2, 0x71, 0x13, 0x66, 0xcd, 0x1c, 0x2d, 0xb5, 0x6a, 0x61, 0xe8,
+ 0xad, 0x3d, 0x39, 0xca, 0x78, 0xa5, 0x3d, 0x05, 0x45, 0xa1, 0xd3, 0xf3,
+ 0xee, 0x79, 0x16, 0xd9, 0x2c, 0x6f, 0x6d, 0xfe, 0x4c, 0x52, 0xa5, 0xeb,
+ 0x87, 0x65, 0xea, 0x6f, 0xe7, 0x14, 0x09, 0x44, 0x2b, 0xd9, 0xdd, 0x0a,
+ 0xb6, 0x55, 0xde, 0x7a,
+};
+static const struct drbg_kat_pr_false kat2182_t = {
+ 6, kat2182_entropyin, kat2182_nonce, kat2182_persstr,
+ kat2182_entropyinreseed, kat2182_addinreseed, kat2182_addin0,
+ kat2182_addin1, kat2182_retbits
+};
+static const struct drbg_kat kat2182 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2182_t
+};
+
+static const unsigned char kat2183_entropyin[] = {
+ 0xfb, 0x5f, 0x8c, 0x3b, 0x6a, 0xc3, 0xe4, 0x7e, 0x19, 0x06, 0xef, 0xff,
+ 0xcd, 0x44, 0xa6, 0x75, 0x8c, 0x98, 0xd5, 0x1a, 0x14, 0xc6, 0xef, 0x7b,
+ 0xf4, 0x70, 0x8c, 0x1b, 0x4a, 0xe9, 0x2a, 0x0e,
+};
+static const unsigned char kat2183_nonce[] = {0};
+static const unsigned char kat2183_persstr[] = {0};
+static const unsigned char kat2183_entropyinreseed[] = {
+ 0x86, 0xfa, 0x40, 0x12, 0x4b, 0x30, 0x39, 0x0d, 0x63, 0x45, 0x1e, 0x3c,
+ 0xa1, 0xcb, 0xa4, 0xb7, 0xce, 0x5d, 0x25, 0xa8, 0x2e, 0x04, 0x61, 0x79,
+ 0xba, 0xe5, 0xa4, 0x84, 0x23, 0xde, 0x67, 0xd0,
+};
+static const unsigned char kat2183_addinreseed[] = {
+ 0x21, 0x8e, 0xed, 0xf5, 0x12, 0x01, 0x32, 0xe9, 0x28, 0x39, 0x7f, 0x35,
+ 0x8d, 0xe6, 0x5a, 0x5d, 0x19, 0x5d, 0xff, 0x3a, 0xed, 0xf5, 0x10, 0x28,
+ 0x9f, 0xc5, 0x13, 0x90, 0xb0, 0xec, 0x73, 0xd9,
+};
+static const unsigned char kat2183_addin0[] = {
+ 0x3a, 0x95, 0x77, 0x56, 0x1d, 0xc2, 0x80, 0xaf, 0xad, 0x33, 0xd5, 0x71,
+ 0xa6, 0x28, 0xcf, 0xa1, 0xa1, 0x04, 0xd3, 0xb9, 0x35, 0x43, 0x9b, 0xad,
+ 0x8c, 0xb6, 0xa8, 0xb5, 0xf6, 0x5e, 0x83, 0x7b,
+};
+static const unsigned char kat2183_addin1[] = {
+ 0xa1, 0x00, 0xf0, 0x83, 0x29, 0x3b, 0x2a, 0xe1, 0x76, 0xfa, 0xdc, 0x82,
+ 0xfc, 0x33, 0xc9, 0x7e, 0x03, 0xfe, 0xd2, 0xeb, 0xcb, 0xdc, 0x0b, 0x28,
+ 0xaa, 0x9c, 0xaa, 0x07, 0x54, 0x5e, 0x2b, 0x6d,
+};
+static const unsigned char kat2183_retbits[] = {
+ 0x96, 0x29, 0x6e, 0x9b, 0xad, 0xd3, 0xc4, 0xbb, 0x2b, 0xb3, 0x5a, 0x32,
+ 0x4c, 0x04, 0xcb, 0xef, 0xc2, 0x39, 0x50, 0x60, 0x9d, 0x65, 0x11, 0x8d,
+ 0x36, 0xaa, 0xe6, 0x01, 0x0f, 0x79, 0x06, 0x6c, 0x15, 0xd6, 0x12, 0x11,
+ 0xf2, 0x5b, 0x84, 0xcb, 0x39, 0x9e, 0x78, 0xfb, 0x43, 0xbb, 0x87, 0x6b,
+ 0xe9, 0x17, 0x26, 0x30, 0xe2, 0x50, 0x06, 0x9f, 0x0c, 0x71, 0x45, 0xbc,
+ 0x90, 0x9a, 0xc2, 0x13,
+};
+static const struct drbg_kat_pr_false kat2183_t = {
+ 7, kat2183_entropyin, kat2183_nonce, kat2183_persstr,
+ kat2183_entropyinreseed, kat2183_addinreseed, kat2183_addin0,
+ kat2183_addin1, kat2183_retbits
+};
+static const struct drbg_kat kat2183 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2183_t
+};
+
+static const unsigned char kat2184_entropyin[] = {
+ 0xf1, 0xce, 0x42, 0xd7, 0x8e, 0x25, 0xc8, 0xc0, 0x8e, 0xfa, 0x1f, 0x85,
+ 0xfb, 0x01, 0xee, 0x49, 0x11, 0xe6, 0x39, 0x6a, 0x4c, 0x1c, 0xd2, 0x4b,
+ 0x88, 0x69, 0xc4, 0x5a, 0xa6, 0x74, 0xaf, 0xff,
+};
+static const unsigned char kat2184_nonce[] = {0};
+static const unsigned char kat2184_persstr[] = {0};
+static const unsigned char kat2184_entropyinreseed[] = {
+ 0x19, 0x6b, 0x3d, 0xdc, 0xe4, 0xe9, 0xdd, 0x5d, 0x00, 0xc0, 0x1f, 0xa9,
+ 0x32, 0x94, 0x2a, 0x48, 0x16, 0xc0, 0xa2, 0x84, 0xcd, 0x44, 0xdb, 0xcb,
+ 0x26, 0x5d, 0x77, 0x98, 0x55, 0x02, 0x4d, 0xb7,
+};
+static const unsigned char kat2184_addinreseed[] = {
+ 0x55, 0x54, 0xc7, 0xa0, 0xe9, 0xef, 0x6b, 0x59, 0x9e, 0xff, 0x13, 0xd0,
+ 0x66, 0x2c, 0x1e, 0xdd, 0x12, 0x70, 0x7a, 0x35, 0x8c, 0xbc, 0xd3, 0x9c,
+ 0xe8, 0x06, 0xc5, 0x29, 0x7a, 0x8f, 0x2d, 0x47,
+};
+static const unsigned char kat2184_addin0[] = {
+ 0xfc, 0xcc, 0x8e, 0xe2, 0x51, 0xf8, 0x41, 0xe1, 0x01, 0xfd, 0x58, 0xbe,
+ 0xe5, 0x4e, 0x7d, 0xb4, 0xde, 0x15, 0x69, 0x8a, 0x13, 0x18, 0x51, 0x43,
+ 0x57, 0x7f, 0xdc, 0x3a, 0x51, 0xf1, 0xdb, 0x53,
+};
+static const unsigned char kat2184_addin1[] = {
+ 0xbb, 0x3a, 0xa7, 0x79, 0x9c, 0xec, 0x18, 0x23, 0xff, 0xc2, 0x02, 0xe3,
+ 0x0c, 0x48, 0x5f, 0x44, 0xf3, 0xeb, 0xae, 0xcc, 0xaf, 0x6f, 0x3a, 0x84,
+ 0xd4, 0xdc, 0x79, 0xdf, 0x4e, 0xcc, 0x3c, 0x09,
+};
+static const unsigned char kat2184_retbits[] = {
+ 0xa5, 0xd3, 0x08, 0x30, 0x32, 0xf0, 0x6e, 0x9a, 0x04, 0xca, 0x81, 0x99,
+ 0xd1, 0x8e, 0x7e, 0x7b, 0x0f, 0x6c, 0xa2, 0x94, 0x28, 0xdc, 0xa5, 0x9b,
+ 0xe4, 0xa4, 0x0f, 0xe7, 0xe7, 0x2f, 0x62, 0x12, 0xcb, 0x95, 0xf3, 0x58,
+ 0xd3, 0x08, 0x4a, 0x29, 0x08, 0x6a, 0xd3, 0x64, 0xb2, 0xf8, 0x60, 0xa8,
+ 0x7b, 0xb7, 0x87, 0xe8, 0x9f, 0x37, 0xd9, 0x15, 0xf2, 0xd8, 0x41, 0x3c,
+ 0x58, 0x04, 0x7d, 0x42,
+};
+static const struct drbg_kat_pr_false kat2184_t = {
+ 8, kat2184_entropyin, kat2184_nonce, kat2184_persstr,
+ kat2184_entropyinreseed, kat2184_addinreseed, kat2184_addin0,
+ kat2184_addin1, kat2184_retbits
+};
+static const struct drbg_kat kat2184 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2184_t
+};
+
+static const unsigned char kat2185_entropyin[] = {
+ 0x17, 0x0b, 0x01, 0x1a, 0xee, 0x09, 0x92, 0x3c, 0x77, 0xac, 0x05, 0xde,
+ 0x01, 0x83, 0xa8, 0x70, 0xea, 0x7f, 0x9a, 0x23, 0xef, 0x40, 0x1c, 0x50,
+ 0x7a, 0x98, 0xc9, 0x5c, 0xb4, 0xb6, 0xd1, 0x8b,
+};
+static const unsigned char kat2185_nonce[] = {0};
+static const unsigned char kat2185_persstr[] = {0};
+static const unsigned char kat2185_entropyinreseed[] = {
+ 0x93, 0x0a, 0x77, 0x01, 0x65, 0x87, 0xf5, 0x08, 0xa4, 0x84, 0x89, 0xe9,
+ 0x0b, 0x0c, 0x7e, 0x27, 0xc7, 0x91, 0x62, 0x41, 0x3b, 0x4b, 0x94, 0x6f,
+ 0x52, 0x45, 0x9d, 0x56, 0x1b, 0xea, 0xda, 0x6e,
+};
+static const unsigned char kat2185_addinreseed[] = {
+ 0xc2, 0xe6, 0x0b, 0x86, 0xc1, 0xbb, 0x85, 0x1e, 0x27, 0xec, 0xaf, 0xd0,
+ 0x6a, 0x9a, 0x44, 0x00, 0x3a, 0x98, 0x36, 0x85, 0x1f, 0xd7, 0x25, 0x07,
+ 0x73, 0x07, 0xbe, 0x28, 0xdf, 0xa3, 0x2e, 0x30,
+};
+static const unsigned char kat2185_addin0[] = {
+ 0xee, 0x67, 0xde, 0xd1, 0x36, 0x8d, 0xa0, 0x2f, 0x54, 0x5f, 0xfb, 0x6d,
+ 0x3f, 0xb1, 0x3c, 0x10, 0x54, 0x9e, 0x88, 0xf0, 0x73, 0xa6, 0xa6, 0xb2,
+ 0xad, 0x12, 0x1d, 0xcd, 0x99, 0x5b, 0xb9, 0x38,
+};
+static const unsigned char kat2185_addin1[] = {
+ 0x7b, 0xa0, 0x28, 0x7d, 0x9d, 0x12, 0xf4, 0x74, 0x20, 0x74, 0x0a, 0x8e,
+ 0xc6, 0xf1, 0xf3, 0x3b, 0x9f, 0x39, 0x9c, 0x03, 0xe9, 0xa9, 0x93, 0x12,
+ 0x96, 0xec, 0xb9, 0x33, 0x1c, 0x4d, 0xf8, 0x25,
+};
+static const unsigned char kat2185_retbits[] = {
+ 0x3d, 0x13, 0xc4, 0x53, 0xd5, 0xf3, 0xd3, 0x05, 0x67, 0x7b, 0x95, 0x32,
+ 0xb5, 0x7d, 0xc1, 0x6f, 0xc6, 0x8c, 0x7d, 0xb6, 0xbb, 0xae, 0xa6, 0xbe,
+ 0x8a, 0x35, 0x67, 0x45, 0x1b, 0x22, 0x1e, 0x99, 0x0d, 0x8b, 0x27, 0x71,
+ 0xc9, 0xe2, 0x8a, 0xee, 0x1c, 0x0c, 0xd0, 0x84, 0xea, 0xd9, 0x34, 0x6f,
+ 0x97, 0xbe, 0xd2, 0xc3, 0xb5, 0x82, 0x3b, 0xaf, 0x57, 0xe0, 0xd2, 0x7b,
+ 0x78, 0x3b, 0xa8, 0x6f,
+};
+static const struct drbg_kat_pr_false kat2185_t = {
+ 9, kat2185_entropyin, kat2185_nonce, kat2185_persstr,
+ kat2185_entropyinreseed, kat2185_addinreseed, kat2185_addin0,
+ kat2185_addin1, kat2185_retbits
+};
+static const struct drbg_kat kat2185 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2185_t
+};
+
+static const unsigned char kat2186_entropyin[] = {
+ 0x77, 0x86, 0x84, 0x1f, 0x3e, 0x87, 0x5f, 0x8d, 0x92, 0xc5, 0xb4, 0xab,
+ 0x38, 0x2e, 0x65, 0x38, 0xfd, 0x6f, 0x0f, 0xff, 0x26, 0x5f, 0xac, 0x5f,
+ 0xfd, 0xcc, 0x8a, 0x3a, 0x24, 0xc5, 0xe3, 0xb6,
+};
+static const unsigned char kat2186_nonce[] = {0};
+static const unsigned char kat2186_persstr[] = {0};
+static const unsigned char kat2186_entropyinreseed[] = {
+ 0xb5, 0xc9, 0x0a, 0x31, 0x93, 0x1a, 0xfb, 0x23, 0xfb, 0xc7, 0xad, 0x09,
+ 0xd5, 0xf5, 0xc8, 0xdf, 0x46, 0x12, 0xca, 0xf1, 0x49, 0xcd, 0xb7, 0xd2,
+ 0xdd, 0xc9, 0xba, 0x4d, 0x7d, 0x4e, 0x48, 0xa6,
+};
+static const unsigned char kat2186_addinreseed[] = {
+ 0xfe, 0x6c, 0x70, 0x12, 0x32, 0xe9, 0xc6, 0x74, 0x89, 0xf6, 0x66, 0xc0,
+ 0x57, 0x62, 0x27, 0x5a, 0xe0, 0x3c, 0x65, 0xe1, 0x8d, 0xfb, 0x2f, 0xd5,
+ 0xed, 0xc5, 0xbf, 0xf7, 0xfa, 0xe5, 0x01, 0x9f,
+};
+static const unsigned char kat2186_addin0[] = {
+ 0x57, 0xa8, 0x98, 0x47, 0x7d, 0x90, 0xc6, 0x87, 0xcd, 0x03, 0xb4, 0xb0,
+ 0xd0, 0xf4, 0xb5, 0xa4, 0xd3, 0xe0, 0x03, 0x7b, 0x35, 0x04, 0xcd, 0xc8,
+ 0x36, 0x7a, 0x26, 0xee, 0x93, 0x38, 0x37, 0x08,
+};
+static const unsigned char kat2186_addin1[] = {
+ 0x2d, 0xac, 0xb0, 0x99, 0x2d, 0x67, 0xcc, 0x6b, 0x29, 0x67, 0x1a, 0x95,
+ 0x14, 0x9b, 0x8b, 0xd9, 0x30, 0xda, 0xf0, 0x4b, 0x6c, 0xb5, 0x28, 0x98,
+ 0x3c, 0x7a, 0x2c, 0xe1, 0xb0, 0x72, 0xc8, 0xc2,
+};
+static const unsigned char kat2186_retbits[] = {
+ 0x1b, 0x1b, 0x16, 0x92, 0x8a, 0xf1, 0x9a, 0x71, 0x4f, 0x26, 0x07, 0x39,
+ 0x18, 0x39, 0xdb, 0x42, 0x8d, 0xdb, 0x49, 0xfd, 0x99, 0xed, 0xa0, 0xfd,
+ 0x2b, 0x0c, 0x05, 0xb0, 0x0a, 0x3d, 0x45, 0xaf, 0x65, 0x24, 0xc5, 0xbf,
+ 0x04, 0xc9, 0xcc, 0x04, 0xe3, 0x41, 0xf2, 0x3f, 0xef, 0xbb, 0xea, 0x10,
+ 0x75, 0xd9, 0xe0, 0x46, 0x30, 0xad, 0xca, 0xe2, 0xc8, 0xdd, 0x12, 0xff,
+ 0xcf, 0x88, 0x2b, 0xc8,
+};
+static const struct drbg_kat_pr_false kat2186_t = {
+ 10, kat2186_entropyin, kat2186_nonce, kat2186_persstr,
+ kat2186_entropyinreseed, kat2186_addinreseed, kat2186_addin0,
+ kat2186_addin1, kat2186_retbits
+};
+static const struct drbg_kat kat2186 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2186_t
+};
+
+static const unsigned char kat2187_entropyin[] = {
+ 0xf6, 0x59, 0x13, 0xee, 0x80, 0x86, 0xf9, 0xc2, 0x54, 0x7e, 0xe1, 0x38,
+ 0x24, 0x0f, 0x92, 0x61, 0x88, 0xe7, 0xf7, 0xbb, 0xaf, 0x8e, 0x9b, 0xd2,
+ 0x3b, 0x58, 0x21, 0xbc, 0xd1, 0xe3, 0xf4, 0x48,
+};
+static const unsigned char kat2187_nonce[] = {0};
+static const unsigned char kat2187_persstr[] = {0};
+static const unsigned char kat2187_entropyinreseed[] = {
+ 0x93, 0xd8, 0x26, 0xeb, 0x69, 0x38, 0x0d, 0x19, 0x6d, 0xb4, 0x76, 0x06,
+ 0x3b, 0x1d, 0x75, 0x3f, 0x84, 0x34, 0x42, 0xa7, 0xce, 0x8e, 0x0b, 0xb1,
+ 0xb2, 0x09, 0x4b, 0xbd, 0x25, 0x2f, 0x49, 0xf2,
+};
+static const unsigned char kat2187_addinreseed[] = {
+ 0xa1, 0x7f, 0xc9, 0x0c, 0x1f, 0x14, 0x68, 0x57, 0xdd, 0x68, 0xaf, 0x97,
+ 0x07, 0x33, 0x74, 0x93, 0xb1, 0x10, 0xa6, 0xed, 0x87, 0x85, 0x3e, 0x0b,
+ 0xf8, 0x5c, 0x05, 0x81, 0x35, 0xa8, 0x80, 0xa0,
+};
+static const unsigned char kat2187_addin0[] = {
+ 0x8b, 0x80, 0x2d, 0x97, 0x25, 0x7d, 0x13, 0x1a, 0x8d, 0xde, 0x39, 0x83,
+ 0xd8, 0x18, 0xd0, 0xeb, 0x83, 0x3e, 0x78, 0x2b, 0x2c, 0x47, 0x0b, 0xae,
+ 0xb3, 0x98, 0x14, 0x38, 0x82, 0x84, 0x0a, 0x97,
+};
+static const unsigned char kat2187_addin1[] = {
+ 0x86, 0xbb, 0xb6, 0xc4, 0x5e, 0xf8, 0x65, 0x5f, 0xa1, 0x51, 0xa1, 0xe2,
+ 0xff, 0x5a, 0x9e, 0x48, 0xa9, 0xc7, 0x0d, 0xd8, 0xd7, 0x93, 0xc1, 0xff,
+ 0xda, 0x80, 0xaa, 0x68, 0x00, 0x66, 0xc8, 0xbe,
+};
+static const unsigned char kat2187_retbits[] = {
+ 0x38, 0x46, 0x4e, 0x12, 0x41, 0x5b, 0x76, 0xec, 0x9a, 0x75, 0x44, 0xc9,
+ 0x55, 0x18, 0x7e, 0x58, 0xbb, 0xb3, 0xa5, 0xa0, 0x5b, 0xbc, 0xee, 0x22,
+ 0x2a, 0xf5, 0x88, 0xe0, 0x15, 0x29, 0x8c, 0x62, 0x27, 0xec, 0x94, 0xbc,
+ 0xb3, 0x7c, 0xea, 0x30, 0x28, 0x5b, 0x2d, 0x76, 0x7a, 0x60, 0x25, 0x9c,
+ 0x12, 0xe9, 0x6f, 0x3b, 0x15, 0x3c, 0x02, 0xe8, 0xfd, 0xac, 0x6d, 0x45,
+ 0x66, 0x29, 0x36, 0x2a,
+};
+static const struct drbg_kat_pr_false kat2187_t = {
+ 11, kat2187_entropyin, kat2187_nonce, kat2187_persstr,
+ kat2187_entropyinreseed, kat2187_addinreseed, kat2187_addin0,
+ kat2187_addin1, kat2187_retbits
+};
+static const struct drbg_kat kat2187 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2187_t
+};
+
+static const unsigned char kat2188_entropyin[] = {
+ 0xf1, 0xc1, 0x9b, 0x94, 0x55, 0xfd, 0x72, 0x62, 0x16, 0x43, 0x4f, 0xa8,
+ 0xad, 0x32, 0x2e, 0x7e, 0xfe, 0x5a, 0xae, 0x54, 0x90, 0x88, 0xd3, 0xfa,
+ 0x7e, 0x98, 0xf0, 0x1c, 0x90, 0xeb, 0x71, 0xf9,
+};
+static const unsigned char kat2188_nonce[] = {0};
+static const unsigned char kat2188_persstr[] = {0};
+static const unsigned char kat2188_entropyinreseed[] = {
+ 0xd4, 0x46, 0x97, 0xcf, 0x7c, 0x3b, 0x9a, 0xc2, 0x6c, 0x99, 0x89, 0x46,
+ 0x31, 0x57, 0x24, 0x83, 0x04, 0x70, 0xa3, 0x13, 0x0a, 0x42, 0xf0, 0xde,
+ 0xfa, 0xf6, 0x38, 0x0c, 0xa8, 0x1a, 0x0e, 0x72,
+};
+static const unsigned char kat2188_addinreseed[] = {
+ 0x46, 0x6f, 0x63, 0x68, 0x0a, 0xe4, 0xdf, 0xd9, 0x36, 0xae, 0x50, 0x9f,
+ 0xc0, 0x12, 0xae, 0xae, 0x02, 0x30, 0x0e, 0x12, 0x89, 0x40, 0xda, 0x44,
+ 0x8c, 0x6b, 0xa7, 0x5a, 0xfa, 0x42, 0xef, 0xf4,
+};
+static const unsigned char kat2188_addin0[] = {
+ 0xd2, 0x62, 0xc4, 0x19, 0x1c, 0x2a, 0xc1, 0x9c, 0x9e, 0xdd, 0x1c, 0x2c,
+ 0x93, 0x28, 0x29, 0x9f, 0xa0, 0x64, 0x1b, 0xc8, 0x0c, 0x08, 0xf3, 0x6c,
+ 0x63, 0xe3, 0xf3, 0x0e, 0x46, 0x8b, 0x89, 0x65,
+};
+static const unsigned char kat2188_addin1[] = {
+ 0x6c, 0x94, 0x3c, 0x5a, 0xc4, 0x06, 0x13, 0x68, 0xd2, 0xcf, 0x2e, 0x81,
+ 0x84, 0xd9, 0x6e, 0x44, 0x42, 0x84, 0xa6, 0xdb, 0xdc, 0xc8, 0xb9, 0x69,
+ 0xb0, 0xe2, 0xd5, 0x60, 0xbc, 0xe9, 0xc6, 0x2d,
+};
+static const unsigned char kat2188_retbits[] = {
+ 0x09, 0x66, 0x0d, 0xfe, 0xf8, 0x7d, 0x4f, 0x5e, 0x19, 0x92, 0xff, 0xb4,
+ 0x93, 0xed, 0x8c, 0x00, 0x99, 0xe7, 0x1a, 0x50, 0xda, 0xa6, 0xaf, 0x0a,
+ 0xa2, 0x10, 0x01, 0x21, 0x25, 0xdd, 0x63, 0x2a, 0xc8, 0x73, 0xfa, 0xa8,
+ 0xe4, 0x6b, 0x11, 0xd4, 0xae, 0xd7, 0xed, 0xef, 0x5d, 0xfb, 0xbf, 0x99,
+ 0x66, 0xc3, 0x14, 0xb7, 0xea, 0x5c, 0xf9, 0x89, 0xb6, 0x64, 0xe3, 0x56,
+ 0x48, 0x40, 0x4b, 0x5d,
+};
+static const struct drbg_kat_pr_false kat2188_t = {
+ 12, kat2188_entropyin, kat2188_nonce, kat2188_persstr,
+ kat2188_entropyinreseed, kat2188_addinreseed, kat2188_addin0,
+ kat2188_addin1, kat2188_retbits
+};
+static const struct drbg_kat kat2188 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2188_t
+};
+
+static const unsigned char kat2189_entropyin[] = {
+ 0x78, 0x11, 0x26, 0x14, 0x8a, 0x81, 0x9e, 0xda, 0x73, 0xbc, 0x90, 0xa2,
+ 0xc1, 0x4a, 0xa3, 0xba, 0xb8, 0x1b, 0xda, 0x81, 0x6a, 0x7c, 0xa6, 0x44,
+ 0xb3, 0x15, 0xd4, 0x8c, 0x43, 0x68, 0x70, 0x5c,
+};
+static const unsigned char kat2189_nonce[] = {0};
+static const unsigned char kat2189_persstr[] = {0};
+static const unsigned char kat2189_entropyinreseed[] = {
+ 0xdc, 0x6c, 0x73, 0xcf, 0x47, 0x82, 0x4a, 0x26, 0xb1, 0x20, 0xa9, 0x83,
+ 0xda, 0x41, 0x74, 0x51, 0x87, 0x7d, 0x55, 0x59, 0x49, 0x2f, 0x08, 0x54,
+ 0x17, 0x8e, 0x1a, 0x21, 0x8c, 0xf4, 0xb8, 0x2e,
+};
+static const unsigned char kat2189_addinreseed[] = {
+ 0x11, 0x57, 0x7c, 0xcb, 0xe1, 0x03, 0x00, 0x0b, 0xcb, 0x32, 0xea, 0xd5,
+ 0xef, 0xc3, 0x2b, 0x14, 0x55, 0xef, 0x5e, 0x37, 0xa1, 0x07, 0x53, 0xab,
+ 0x8f, 0xf8, 0xa8, 0xea, 0xe5, 0x7a, 0xd4, 0x2b,
+};
+static const unsigned char kat2189_addin0[] = {
+ 0x9f, 0xbf, 0x82, 0x56, 0x11, 0x3a, 0x79, 0x42, 0xc0, 0x5e, 0xed, 0x10,
+ 0xfb, 0xa1, 0xee, 0xeb, 0x7d, 0x4c, 0xa7, 0x80, 0x8a, 0xcc, 0xbf, 0x54,
+ 0x0a, 0x49, 0x7e, 0xa1, 0xa3, 0x70, 0x17, 0x2e,
+};
+static const unsigned char kat2189_addin1[] = {
+ 0x24, 0xd6, 0xd2, 0x22, 0x06, 0x4f, 0x34, 0xa0, 0xab, 0xe6, 0x33, 0x36,
+ 0xdd, 0xc6, 0x3f, 0xdb, 0x21, 0x27, 0x2d, 0x9f, 0xfc, 0x10, 0x92, 0x3e,
+ 0xe2, 0x68, 0x3a, 0x11, 0xd4, 0xec, 0xe7, 0x12,
+};
+static const unsigned char kat2189_retbits[] = {
+ 0xdf, 0xda, 0xe1, 0xa9, 0x48, 0xb1, 0xc1, 0xd3, 0xad, 0xc7, 0xe2, 0xfc,
+ 0xc7, 0xc6, 0x58, 0x91, 0x9a, 0x82, 0xe1, 0x0d, 0xd6, 0x5d, 0xfe, 0x34,
+ 0x51, 0xa2, 0xc5, 0x92, 0xc0, 0xa6, 0x46, 0x06, 0xb3, 0x31, 0xc5, 0xae,
+ 0xb9, 0x54, 0x9d, 0x4c, 0x36, 0x11, 0x13, 0x9f, 0x3d, 0x7d, 0x35, 0x9c,
+ 0x19, 0x70, 0xfd, 0x38, 0x88, 0x5e, 0xfa, 0x33, 0xdc, 0x74, 0x91, 0x73,
+ 0x99, 0x4c, 0xde, 0xd0,
+};
+static const struct drbg_kat_pr_false kat2189_t = {
+ 13, kat2189_entropyin, kat2189_nonce, kat2189_persstr,
+ kat2189_entropyinreseed, kat2189_addinreseed, kat2189_addin0,
+ kat2189_addin1, kat2189_retbits
+};
+static const struct drbg_kat kat2189 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2189_t
+};
+
+static const unsigned char kat2190_entropyin[] = {
+ 0x48, 0x15, 0xc5, 0x38, 0x0a, 0xe2, 0xde, 0x56, 0x2b, 0x55, 0x2b, 0xc1,
+ 0x8f, 0x42, 0x77, 0xbb, 0x29, 0xca, 0x89, 0xc6, 0xda, 0xad, 0xe8, 0x4a,
+ 0xf4, 0xe5, 0xb1, 0xaa, 0x99, 0x4c, 0x5e, 0x4f,
+};
+static const unsigned char kat2190_nonce[] = {0};
+static const unsigned char kat2190_persstr[] = {0};
+static const unsigned char kat2190_entropyinreseed[] = {
+ 0xcb, 0xcf, 0x3c, 0x89, 0xb2, 0xae, 0xff, 0x5b, 0xa2, 0x81, 0x42, 0xfd,
+ 0xb9, 0xf0, 0xe1, 0xed, 0xa8, 0x35, 0xeb, 0xe9, 0x18, 0x9e, 0x72, 0xbd,
+ 0xb6, 0xcc, 0x2a, 0x59, 0x12, 0x6c, 0x85, 0x3c,
+};
+static const unsigned char kat2190_addinreseed[] = {
+ 0x82, 0x50, 0xfb, 0x55, 0x53, 0xb1, 0xdd, 0x69, 0x2c, 0x98, 0xd6, 0x51,
+ 0xeb, 0xa5, 0x0d, 0x6e, 0x73, 0xd2, 0x51, 0x23, 0x1f, 0x83, 0x6c, 0x39,
+ 0x04, 0x5b, 0x45, 0x6f, 0x52, 0x73, 0x76, 0x81,
+};
+static const unsigned char kat2190_addin0[] = {
+ 0x9e, 0x0a, 0xbd, 0x6f, 0xee, 0x61, 0x13, 0x20, 0xde, 0x52, 0xbc, 0x48,
+ 0xe5, 0x6f, 0x5f, 0x17, 0xbf, 0x18, 0x0e, 0x59, 0x6d, 0x25, 0x80, 0x31,
+ 0xe3, 0x66, 0x60, 0x66, 0xbc, 0xc1, 0xe3, 0x69,
+};
+static const unsigned char kat2190_addin1[] = {
+ 0x56, 0x12, 0x69, 0x4e, 0x42, 0x60, 0xdc, 0x91, 0xba, 0x87, 0xee, 0x97,
+ 0x65, 0x6f, 0x14, 0x36, 0xce, 0xc1, 0xf7, 0x11, 0x53, 0x6b, 0xdb, 0xf6,
+ 0x10, 0x64, 0x02, 0x66, 0x73, 0xbb, 0x39, 0x8b,
+};
+static const unsigned char kat2190_retbits[] = {
+ 0x02, 0xbb, 0x0c, 0x1e, 0x3a, 0xbb, 0x29, 0x93, 0x38, 0x3c, 0xc9, 0xcf,
+ 0x2f, 0x32, 0xc1, 0x48, 0xd7, 0x85, 0xdd, 0xe2, 0x7d, 0xf3, 0xa8, 0xdb,
+ 0xd3, 0xec, 0xc7, 0x3e, 0xa4, 0xe8, 0x84, 0xcd, 0x42, 0x70, 0x61, 0x42,
+ 0x3e, 0x07, 0x36, 0xa9, 0x5d, 0xd3, 0x20, 0x2e, 0x63, 0x36, 0xcf, 0xac,
+ 0x40, 0x31, 0x1b, 0x8f, 0x08, 0xaa, 0xa8, 0x8a, 0x90, 0xba, 0xa2, 0xf9,
+ 0x39, 0x99, 0x69, 0x4b,
+};
+static const struct drbg_kat_pr_false kat2190_t = {
+ 14, kat2190_entropyin, kat2190_nonce, kat2190_persstr,
+ kat2190_entropyinreseed, kat2190_addinreseed, kat2190_addin0,
+ kat2190_addin1, kat2190_retbits
+};
+static const struct drbg_kat kat2190 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2190_t
+};
+
+static const unsigned char kat2191_entropyin[] = {
+ 0x34, 0xcb, 0xc2, 0xb2, 0x17, 0xf3, 0xd9, 0x07, 0xfa, 0x2a, 0xd6, 0xa0,
+ 0xd7, 0xa8, 0x13, 0xb0, 0xfd, 0xa1, 0xe1, 0x7f, 0xbe, 0xed, 0x94, 0xb0,
+ 0xe0, 0xa0, 0xab, 0xfb, 0xec, 0x94, 0x71, 0x46,
+};
+static const unsigned char kat2191_nonce[] = {0};
+static const unsigned char kat2191_persstr[] = {
+ 0xe8, 0xfa, 0x4c, 0x5d, 0xe8, 0x25, 0x79, 0x1e, 0x68, 0x18, 0x0f, 0x2b,
+ 0xa1, 0x07, 0xe8, 0x29, 0xc4, 0x82, 0x99, 0xcb, 0x01, 0xbe, 0x93, 0x9c,
+ 0xd0, 0xbe, 0x76, 0xda, 0x12, 0x0a, 0x91, 0xf2,
+};
+static const unsigned char kat2191_entropyinreseed[] = {
+ 0x83, 0x26, 0xf8, 0xe9, 0xcf, 0xbd, 0x02, 0xeb, 0x07, 0x6b, 0xbb, 0x98,
+ 0x19, 0xd9, 0x6a, 0x02, 0x38, 0x6f, 0x80, 0xbf, 0x91, 0x3c, 0x8e, 0x4a,
+ 0x80, 0x36, 0x1d, 0x82, 0xca, 0xfa, 0xd5, 0x2e,
+};
+static const unsigned char kat2191_addinreseed[] = {0};
+static const unsigned char kat2191_addin0[] = {0};
+static const unsigned char kat2191_addin1[] = {0};
+static const unsigned char kat2191_retbits[] = {
+ 0x52, 0xf5, 0xe7, 0x18, 0xbf, 0x48, 0xd9, 0x9e, 0x49, 0x87, 0x75, 0xc0,
+ 0x03, 0x78, 0xe5, 0x45, 0x79, 0x9b, 0xb2, 0x05, 0x9a, 0xef, 0x0b, 0x74,
+ 0xbe, 0x57, 0x3d, 0x82, 0x83, 0xf0, 0x2b, 0x52, 0x93, 0x91, 0x79, 0x13,
+ 0xbc, 0x8f, 0x26, 0xfc, 0x23, 0x76, 0x0a, 0x1c, 0x86, 0xc3, 0xf5, 0xc8,
+ 0x44, 0x85, 0x74, 0x19, 0x86, 0x8e, 0xaf, 0xeb, 0x17, 0xc9, 0x24, 0x82,
+ 0x27, 0xd0, 0x26, 0xb8,
+};
+static const struct drbg_kat_pr_false kat2191_t = {
+ 0, kat2191_entropyin, kat2191_nonce, kat2191_persstr,
+ kat2191_entropyinreseed, kat2191_addinreseed, kat2191_addin0,
+ kat2191_addin1, kat2191_retbits
+};
+static const struct drbg_kat kat2191 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2191_t
+};
+
+static const unsigned char kat2192_entropyin[] = {
+ 0xba, 0x81, 0x1b, 0xf4, 0x91, 0xac, 0x45, 0x97, 0xd7, 0x9d, 0x0f, 0x44,
+ 0x73, 0x20, 0x80, 0x11, 0xc5, 0xd4, 0x85, 0x75, 0xa1, 0x56, 0xd9, 0x69,
+ 0xf0, 0x71, 0xcd, 0x5a, 0xe5, 0xaa, 0x45, 0x58,
+};
+static const unsigned char kat2192_nonce[] = {0};
+static const unsigned char kat2192_persstr[] = {
+ 0x09, 0x09, 0xe7, 0x80, 0x9f, 0x07, 0x6e, 0xd3, 0x74, 0x76, 0x25, 0xcd,
+ 0x2b, 0x80, 0x61, 0x58, 0x75, 0x40, 0x7a, 0x13, 0x3e, 0x77, 0xd6, 0x77,
+ 0xfd, 0xf8, 0xd9, 0xd3, 0x78, 0xde, 0x4f, 0xd9,
+};
+static const unsigned char kat2192_entropyinreseed[] = {
+ 0xf5, 0x56, 0xc3, 0xaf, 0xea, 0x21, 0x2f, 0xf0, 0x60, 0xed, 0x01, 0xb7,
+ 0xf7, 0xf5, 0xdb, 0xb7, 0x3f, 0x96, 0x0e, 0xa6, 0xa3, 0xa9, 0x3f, 0x24,
+ 0x8a, 0xe4, 0xd2, 0xdf, 0x2b, 0xf4, 0x99, 0x48,
+};
+static const unsigned char kat2192_addinreseed[] = {0};
+static const unsigned char kat2192_addin0[] = {0};
+static const unsigned char kat2192_addin1[] = {0};
+static const unsigned char kat2192_retbits[] = {
+ 0x96, 0xee, 0xe3, 0x4e, 0x4c, 0xfc, 0x90, 0x5b, 0xe6, 0x4c, 0xf1, 0xdc,
+ 0x64, 0xc6, 0xe0, 0x7f, 0x1c, 0xeb, 0x3b, 0xdb, 0x74, 0x5f, 0x42, 0x33,
+ 0x25, 0x68, 0x87, 0x3b, 0x80, 0xb1, 0x1f, 0x1a, 0x1a, 0xc6, 0xd0, 0xd5,
+ 0x76, 0xaf, 0xef, 0xcd, 0xd7, 0xc7, 0x0c, 0xe6, 0xa8, 0x82, 0xee, 0x94,
+ 0x04, 0x63, 0x32, 0x3b, 0x51, 0xc1, 0x63, 0x39, 0x98, 0xa8, 0x09, 0x00,
+ 0x3b, 0x94, 0x72, 0x10,
+};
+static const struct drbg_kat_pr_false kat2192_t = {
+ 1, kat2192_entropyin, kat2192_nonce, kat2192_persstr,
+ kat2192_entropyinreseed, kat2192_addinreseed, kat2192_addin0,
+ kat2192_addin1, kat2192_retbits
+};
+static const struct drbg_kat kat2192 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2192_t
+};
+
+static const unsigned char kat2193_entropyin[] = {
+ 0xe9, 0xd1, 0x64, 0xce, 0x4b, 0xf5, 0x2a, 0x73, 0xe7, 0x39, 0x45, 0xe3,
+ 0xfd, 0xe2, 0xd5, 0x99, 0xdf, 0x02, 0xd6, 0x85, 0x40, 0x16, 0x5c, 0xe9,
+ 0x12, 0xe2, 0x0d, 0x29, 0xe3, 0xda, 0x17, 0x2f,
+};
+static const unsigned char kat2193_nonce[] = {0};
+static const unsigned char kat2193_persstr[] = {
+ 0x09, 0x10, 0xb0, 0x15, 0x8f, 0x03, 0x38, 0x29, 0x12, 0xb9, 0x6a, 0xab,
+ 0x0c, 0x35, 0x65, 0xb2, 0xb9, 0x5c, 0x7a, 0xbe, 0x82, 0x3d, 0xf4, 0x4e,
+ 0xad, 0xb2, 0x7d, 0x86, 0xd1, 0x56, 0xa9, 0xb8,
+};
+static const unsigned char kat2193_entropyinreseed[] = {
+ 0x97, 0x3c, 0x87, 0x25, 0x04, 0x7e, 0x71, 0xcf, 0xe9, 0xd2, 0x8d, 0x10,
+ 0xc4, 0x08, 0x49, 0xfa, 0xe8, 0x44, 0xc9, 0x32, 0x39, 0x84, 0x22, 0xac,
+ 0x0d, 0x80, 0xa5, 0xef, 0x2f, 0xef, 0x5b, 0x9c,
+};
+static const unsigned char kat2193_addinreseed[] = {0};
+static const unsigned char kat2193_addin0[] = {0};
+static const unsigned char kat2193_addin1[] = {0};
+static const unsigned char kat2193_retbits[] = {
+ 0x54, 0x7a, 0xe8, 0xf1, 0x1d, 0x18, 0x6c, 0xc2, 0x85, 0xf8, 0x2b, 0x38,
+ 0x54, 0xe4, 0xa5, 0xeb, 0x88, 0xd0, 0x21, 0x8d, 0xf6, 0x46, 0xf5, 0x4b,
+ 0x1f, 0xd7, 0xfe, 0x33, 0x50, 0x8f, 0xe6, 0xa1, 0x40, 0xf0, 0xc5, 0x17,
+ 0x35, 0x6d, 0x19, 0x2f, 0xdd, 0x96, 0x1a, 0x29, 0xf4, 0x7f, 0xdc, 0xc9,
+ 0xe3, 0x98, 0x37, 0x5e, 0xaf, 0xe7, 0x86, 0xd9, 0x7c, 0x69, 0xd0, 0xac,
+ 0x5c, 0x86, 0xc9, 0xe4,
+};
+static const struct drbg_kat_pr_false kat2193_t = {
+ 2, kat2193_entropyin, kat2193_nonce, kat2193_persstr,
+ kat2193_entropyinreseed, kat2193_addinreseed, kat2193_addin0,
+ kat2193_addin1, kat2193_retbits
+};
+static const struct drbg_kat kat2193 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2193_t
+};
+
+static const unsigned char kat2194_entropyin[] = {
+ 0x65, 0x11, 0x76, 0x66, 0x13, 0xfe, 0x85, 0x09, 0x39, 0x6f, 0x2c, 0x0a,
+ 0xf7, 0x43, 0xb7, 0xfe, 0x81, 0xf2, 0x83, 0x4b, 0xe8, 0xa7, 0xfc, 0x39,
+ 0x9f, 0x84, 0xb3, 0x5c, 0x1e, 0x89, 0xa2, 0x74,
+};
+static const unsigned char kat2194_nonce[] = {0};
+static const unsigned char kat2194_persstr[] = {
+ 0x62, 0x78, 0x4e, 0x10, 0xe5, 0x49, 0x0b, 0x15, 0x79, 0x88, 0xaf, 0x06,
+ 0x66, 0x0d, 0x42, 0xd8, 0xaa, 0x56, 0x78, 0x2b, 0x6d, 0x5f, 0x88, 0x1e,
+ 0x5e, 0x09, 0x88, 0xe8, 0xe3, 0x47, 0xbf, 0x08,
+};
+static const unsigned char kat2194_entropyinreseed[] = {
+ 0x52, 0xc1, 0xbf, 0x53, 0x7f, 0x4d, 0xa3, 0xbe, 0x03, 0x17, 0xa4, 0x88,
+ 0x14, 0xdf, 0x6d, 0xac, 0x9e, 0x66, 0x44, 0x40, 0x00, 0xe5, 0xb0, 0x22,
+ 0x6a, 0xb9, 0x04, 0xc8, 0xf0, 0xef, 0xa4, 0x4b,
+};
+static const unsigned char kat2194_addinreseed[] = {0};
+static const unsigned char kat2194_addin0[] = {0};
+static const unsigned char kat2194_addin1[] = {0};
+static const unsigned char kat2194_retbits[] = {
+ 0x2d, 0x04, 0xdc, 0x4e, 0x84, 0xe0, 0x2b, 0x07, 0x9b, 0xca, 0x0d, 0xf8,
+ 0xfe, 0xe5, 0x35, 0x10, 0xfe, 0xcc, 0x58, 0x27, 0x75, 0x18, 0x3d, 0x27,
+ 0x9d, 0x61, 0x4a, 0xef, 0xd9, 0xf5, 0x5d, 0x05, 0x67, 0x5a, 0x65, 0x7f,
+ 0x87, 0xc7, 0xe6, 0xfd, 0xa4, 0x5d, 0x99, 0x14, 0x83, 0xba, 0x78, 0x7a,
+ 0xc5, 0x7d, 0x3e, 0x22, 0xed, 0xa2, 0x9a, 0x86, 0xdc, 0x09, 0x4b, 0xc0,
+ 0x33, 0x27, 0x9b, 0x98,
+};
+static const struct drbg_kat_pr_false kat2194_t = {
+ 3, kat2194_entropyin, kat2194_nonce, kat2194_persstr,
+ kat2194_entropyinreseed, kat2194_addinreseed, kat2194_addin0,
+ kat2194_addin1, kat2194_retbits
+};
+static const struct drbg_kat kat2194 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2194_t
+};
+
+static const unsigned char kat2195_entropyin[] = {
+ 0xf8, 0x4a, 0x1b, 0xa8, 0x02, 0x1e, 0xe1, 0xb1, 0xbe, 0x01, 0xf1, 0x5d,
+ 0x47, 0xac, 0x98, 0xcc, 0x91, 0xb5, 0xd1, 0x15, 0x61, 0xc9, 0xce, 0x6a,
+ 0xd3, 0x13, 0xaf, 0x69, 0x4d, 0x87, 0x06, 0x1d,
+};
+static const unsigned char kat2195_nonce[] = {0};
+static const unsigned char kat2195_persstr[] = {
+ 0x46, 0xde, 0x12, 0xc1, 0x7a, 0x42, 0xe0, 0x4e, 0x49, 0x77, 0xe3, 0xd2,
+ 0xbf, 0x68, 0x94, 0xbf, 0x97, 0xce, 0x9e, 0x6c, 0x28, 0x76, 0x29, 0xec,
+ 0xf8, 0xfc, 0x84, 0xf8, 0xad, 0xba, 0xd8, 0xb3,
+};
+static const unsigned char kat2195_entropyinreseed[] = {
+ 0xc0, 0x5c, 0x30, 0xf8, 0x99, 0x4c, 0x38, 0x68, 0x8b, 0xf1, 0xc8, 0xfd,
+ 0xea, 0xab, 0x3f, 0x04, 0xdd, 0x7b, 0xca, 0xe1, 0xf3, 0xf1, 0xe8, 0x53,
+ 0x9b, 0x05, 0x35, 0x78, 0x9c, 0x8c, 0x49, 0x0f,
+};
+static const unsigned char kat2195_addinreseed[] = {0};
+static const unsigned char kat2195_addin0[] = {0};
+static const unsigned char kat2195_addin1[] = {0};
+static const unsigned char kat2195_retbits[] = {
+ 0xaf, 0x00, 0x78, 0x2c, 0x6f, 0xba, 0x94, 0x39, 0xd6, 0x1f, 0x63, 0x7d,
+ 0x73, 0x61, 0x53, 0xc9, 0x45, 0x67, 0x3c, 0x73, 0xa5, 0xa1, 0xd6, 0x46,
+ 0x5f, 0xed, 0x97, 0xf2, 0xd7, 0xcc, 0x38, 0xfc, 0x07, 0x19, 0x21, 0x8d,
+ 0xb5, 0xb2, 0x0a, 0x65, 0xba, 0x6e, 0xc0, 0xec, 0x7a, 0xfd, 0x47, 0xdc,
+ 0x40, 0xf4, 0xec, 0x61, 0x94, 0x0c, 0x9b, 0x11, 0x6f, 0x82, 0x00, 0x98,
+ 0xae, 0x53, 0xc9, 0x3d,
+};
+static const struct drbg_kat_pr_false kat2195_t = {
+ 4, kat2195_entropyin, kat2195_nonce, kat2195_persstr,
+ kat2195_entropyinreseed, kat2195_addinreseed, kat2195_addin0,
+ kat2195_addin1, kat2195_retbits
+};
+static const struct drbg_kat kat2195 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2195_t
+};
+
+static const unsigned char kat2196_entropyin[] = {
+ 0x26, 0xaf, 0x70, 0x07, 0x5d, 0xfa, 0x4f, 0x60, 0xf3, 0x4f, 0x40, 0x63,
+ 0xea, 0xaf, 0x74, 0x77, 0x9e, 0x58, 0x4c, 0xfc, 0xcd, 0xa7, 0x2a, 0x61,
+ 0x25, 0x78, 0xf8, 0x45, 0x83, 0x01, 0xae, 0x7d,
+};
+static const unsigned char kat2196_nonce[] = {0};
+static const unsigned char kat2196_persstr[] = {
+ 0x04, 0x8b, 0x9f, 0x8f, 0x06, 0xc2, 0x86, 0xc1, 0x30, 0x3f, 0x58, 0x7a,
+ 0x80, 0x27, 0x01, 0xbb, 0xa0, 0x05, 0x33, 0x8b, 0xb9, 0x52, 0xa6, 0x6b,
+ 0x30, 0xe4, 0x0a, 0x15, 0x3c, 0x9c, 0x07, 0x66,
+};
+static const unsigned char kat2196_entropyinreseed[] = {
+ 0xdb, 0xea, 0x9a, 0xd4, 0x23, 0x44, 0x72, 0xee, 0x5a, 0x15, 0x94, 0xd5,
+ 0x2e, 0x3b, 0x43, 0xd9, 0x4f, 0x23, 0x76, 0x2e, 0xd1, 0x98, 0x09, 0xde,
+ 0xa6, 0xca, 0xce, 0xdb, 0x93, 0x04, 0xa3, 0xcd,
+};
+static const unsigned char kat2196_addinreseed[] = {0};
+static const unsigned char kat2196_addin0[] = {0};
+static const unsigned char kat2196_addin1[] = {0};
+static const unsigned char kat2196_retbits[] = {
+ 0x32, 0xa7, 0x9a, 0xab, 0x3f, 0x2c, 0x04, 0xca, 0x33, 0x0f, 0xdb, 0x60,
+ 0x6c, 0x43, 0x7c, 0xb8, 0xdd, 0x58, 0x14, 0x70, 0xbc, 0xe8, 0x80, 0xc7,
+ 0x28, 0x07, 0xc5, 0x6e, 0x35, 0x65, 0xc2, 0xa2, 0x26, 0x92, 0x8c, 0x87,
+ 0x15, 0x21, 0x3d, 0xb1, 0x55, 0x0e, 0x3d, 0x44, 0x12, 0x63, 0x2f, 0xcb,
+ 0xcd, 0xed, 0xd9, 0x5f, 0xdc, 0xef, 0x93, 0xbd, 0x03, 0xcc, 0xf7, 0xc1,
+ 0x10, 0xd2, 0x06, 0xaf,
+};
+static const struct drbg_kat_pr_false kat2196_t = {
+ 5, kat2196_entropyin, kat2196_nonce, kat2196_persstr,
+ kat2196_entropyinreseed, kat2196_addinreseed, kat2196_addin0,
+ kat2196_addin1, kat2196_retbits
+};
+static const struct drbg_kat kat2196 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2196_t
+};
+
+static const unsigned char kat2197_entropyin[] = {
+ 0xe9, 0x0f, 0xe0, 0x73, 0x62, 0x57, 0x4f, 0x81, 0xed, 0xae, 0xa5, 0x41,
+ 0xc5, 0x25, 0xd6, 0xf9, 0x90, 0x6a, 0x5c, 0x4f, 0xd7, 0xf8, 0xf2, 0x8e,
+ 0x10, 0x10, 0x73, 0xaa, 0xcb, 0x88, 0xd1, 0xe7,
+};
+static const unsigned char kat2197_nonce[] = {0};
+static const unsigned char kat2197_persstr[] = {
+ 0xef, 0x64, 0xe8, 0xf6, 0x6b, 0x9f, 0x81, 0xfb, 0x2c, 0xc9, 0xec, 0xaa,
+ 0xe2, 0x08, 0xe5, 0xa9, 0x08, 0xf8, 0x4e, 0x7b, 0xa1, 0xe8, 0xac, 0x27,
+ 0x3d, 0xb2, 0xf8, 0xef, 0x11, 0xb5, 0x5b, 0x34,
+};
+static const unsigned char kat2197_entropyinreseed[] = {
+ 0xd4, 0xb7, 0x63, 0xdb, 0x6b, 0x46, 0x1e, 0x75, 0xd3, 0xbe, 0x8f, 0x01,
+ 0xb0, 0x89, 0x70, 0xda, 0x4d, 0x88, 0xc7, 0xdf, 0xa9, 0xf3, 0xe5, 0xc0,
+ 0x7c, 0x58, 0xff, 0x21, 0xf5, 0xa3, 0xc5, 0xe0,
+};
+static const unsigned char kat2197_addinreseed[] = {0};
+static const unsigned char kat2197_addin0[] = {0};
+static const unsigned char kat2197_addin1[] = {0};
+static const unsigned char kat2197_retbits[] = {
+ 0x91, 0xac, 0xb3, 0x87, 0xa1, 0x92, 0xf4, 0x0f, 0x3c, 0x29, 0x33, 0xca,
+ 0xe9, 0x4d, 0x3d, 0x29, 0xd2, 0xb9, 0xad, 0x12, 0xde, 0x19, 0x3f, 0x20,
+ 0xf7, 0x1d, 0xa5, 0x94, 0x39, 0x0d, 0xd5, 0x3a, 0xa4, 0xd0, 0xa6, 0x67,
+ 0x34, 0x7e, 0xb6, 0x1a, 0xd0, 0xfb, 0x09, 0x20, 0x1e, 0x25, 0x98, 0xfc,
+ 0x99, 0xb4, 0xab, 0xde, 0x5f, 0x80, 0x45, 0x8e, 0xb7, 0xec, 0x47, 0x66,
+ 0x6a, 0xe2, 0x65, 0x43,
+};
+static const struct drbg_kat_pr_false kat2197_t = {
+ 6, kat2197_entropyin, kat2197_nonce, kat2197_persstr,
+ kat2197_entropyinreseed, kat2197_addinreseed, kat2197_addin0,
+ kat2197_addin1, kat2197_retbits
+};
+static const struct drbg_kat kat2197 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2197_t
+};
+
+static const unsigned char kat2198_entropyin[] = {
+ 0x82, 0x68, 0x23, 0xd3, 0x54, 0xdc, 0x97, 0xd4, 0x55, 0x07, 0xae, 0xa1,
+ 0xad, 0x81, 0x42, 0xe7, 0x04, 0x75, 0x4b, 0x9f, 0xac, 0x6a, 0xda, 0xb2,
+ 0xe3, 0x52, 0x3b, 0xca, 0xea, 0xa0, 0x8a, 0x9c,
+};
+static const unsigned char kat2198_nonce[] = {0};
+static const unsigned char kat2198_persstr[] = {
+ 0x33, 0x34, 0xce, 0xa8, 0x71, 0x27, 0x9e, 0x90, 0xe1, 0xf3, 0xfa, 0xd0,
+ 0x8c, 0x5f, 0x1c, 0xb5, 0x49, 0x58, 0xd7, 0x5f, 0x28, 0xc7, 0xa1, 0x88,
+ 0x22, 0x89, 0xda, 0xd5, 0xbf, 0xa0, 0x46, 0x4d,
+};
+static const unsigned char kat2198_entropyinreseed[] = {
+ 0xbe, 0xc5, 0xaa, 0x6e, 0x75, 0x5b, 0xf3, 0x51, 0x4f, 0x35, 0x20, 0xe7,
+ 0xa9, 0x2c, 0xfa, 0xb4, 0x2c, 0xdf, 0x35, 0xc9, 0xb5, 0x9a, 0x15, 0xe7,
+ 0x81, 0xec, 0x82, 0xff, 0x7a, 0xdc, 0x88, 0xdd,
+};
+static const unsigned char kat2198_addinreseed[] = {0};
+static const unsigned char kat2198_addin0[] = {0};
+static const unsigned char kat2198_addin1[] = {0};
+static const unsigned char kat2198_retbits[] = {
+ 0x38, 0x82, 0x1c, 0xdc, 0x34, 0xe3, 0xd7, 0x64, 0xf8, 0x77, 0xf7, 0x60,
+ 0xb5, 0x1e, 0x18, 0x64, 0x6a, 0xa6, 0xab, 0x98, 0x71, 0xe8, 0xef, 0x22,
+ 0xb4, 0x3c, 0x34, 0x28, 0xd7, 0xcb, 0x66, 0x4e, 0x93, 0x2d, 0x96, 0x9b,
+ 0x34, 0x2d, 0x51, 0x96, 0x48, 0xcf, 0xfd, 0xef, 0x66, 0x24, 0xee, 0x14,
+ 0xe4, 0xf1, 0x36, 0x80, 0x0d, 0xe1, 0x1c, 0xce, 0xc1, 0x62, 0x1e, 0x3b,
+ 0x16, 0xbe, 0xea, 0x7d,
+};
+static const struct drbg_kat_pr_false kat2198_t = {
+ 7, kat2198_entropyin, kat2198_nonce, kat2198_persstr,
+ kat2198_entropyinreseed, kat2198_addinreseed, kat2198_addin0,
+ kat2198_addin1, kat2198_retbits
+};
+static const struct drbg_kat kat2198 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2198_t
+};
+
+static const unsigned char kat2199_entropyin[] = {
+ 0x30, 0x0b, 0x94, 0x5e, 0x8e, 0x0d, 0xff, 0xcb, 0xfc, 0x04, 0x35, 0xe6,
+ 0xac, 0x10, 0x85, 0xef, 0xd9, 0x33, 0x07, 0xe7, 0x11, 0xf1, 0xad, 0x60,
+ 0x9f, 0x7b, 0x92, 0x97, 0x04, 0x16, 0xb0, 0x79,
+};
+static const unsigned char kat2199_nonce[] = {0};
+static const unsigned char kat2199_persstr[] = {
+ 0x9a, 0x0f, 0xf7, 0x52, 0xcd, 0x21, 0x71, 0xfe, 0x59, 0xa2, 0x7a, 0x68,
+ 0xe9, 0xcd, 0xce, 0x81, 0xae, 0xa2, 0xb4, 0x08, 0xe0, 0x27, 0xbd, 0xd6,
+ 0x09, 0x98, 0x24, 0x48, 0x21, 0x58, 0x65, 0x34,
+};
+static const unsigned char kat2199_entropyinreseed[] = {
+ 0xe0, 0x76, 0xf4, 0xae, 0x6f, 0xe8, 0xf6, 0x6d, 0x71, 0x6b, 0xff, 0xc6,
+ 0xc4, 0xe1, 0x0d, 0xaa, 0xb3, 0x54, 0x91, 0x80, 0x4a, 0x59, 0xe6, 0xe5,
+ 0x79, 0x09, 0x43, 0x34, 0x83, 0xf3, 0xf4, 0x21,
+};
+static const unsigned char kat2199_addinreseed[] = {0};
+static const unsigned char kat2199_addin0[] = {0};
+static const unsigned char kat2199_addin1[] = {0};
+static const unsigned char kat2199_retbits[] = {
+ 0x48, 0x50, 0x26, 0xdd, 0x2d, 0x2a, 0xe2, 0x0c, 0x90, 0xc8, 0xb4, 0x3f,
+ 0x41, 0x84, 0x27, 0x0b, 0xb1, 0x56, 0x15, 0x6e, 0xf8, 0x8b, 0xb8, 0xf1,
+ 0x5e, 0x6f, 0xca, 0xf0, 0x73, 0x68, 0xe5, 0x0b, 0x75, 0x16, 0xc6, 0x03,
+ 0xf3, 0xf6, 0x9b, 0x2d, 0x20, 0xbd, 0x84, 0xbc, 0xcc, 0x02, 0xdf, 0x62,
+ 0xe6, 0xe8, 0x2e, 0xcf, 0xe0, 0x16, 0xe7, 0x48, 0x3f, 0xc0, 0x2a, 0x40,
+ 0x0f, 0xe4, 0x6a, 0xd6,
+};
+static const struct drbg_kat_pr_false kat2199_t = {
+ 8, kat2199_entropyin, kat2199_nonce, kat2199_persstr,
+ kat2199_entropyinreseed, kat2199_addinreseed, kat2199_addin0,
+ kat2199_addin1, kat2199_retbits
+};
+static const struct drbg_kat kat2199 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2199_t
+};
+
+static const unsigned char kat2200_entropyin[] = {
+ 0x64, 0xec, 0x01, 0x71, 0x09, 0xb9, 0x5c, 0xcb, 0x6a, 0xca, 0xc7, 0xaf,
+ 0x3d, 0xdb, 0x0b, 0xb0, 0x9c, 0xe5, 0x38, 0xb1, 0xaf, 0xe1, 0x31, 0xf0,
+ 0x89, 0x9f, 0x1f, 0xb0, 0x02, 0x3b, 0x21, 0xf8,
+};
+static const unsigned char kat2200_nonce[] = {0};
+static const unsigned char kat2200_persstr[] = {
+ 0xdb, 0x2c, 0x8f, 0xb7, 0x88, 0x01, 0xd7, 0x3c, 0x83, 0xf7, 0x9e, 0xde,
+ 0xb7, 0x6e, 0x87, 0x68, 0x24, 0x71, 0xdc, 0x0b, 0xee, 0xcf, 0x13, 0x51,
+ 0x01, 0x33, 0x9f, 0x7c, 0xc3, 0x21, 0xed, 0x6b,
+};
+static const unsigned char kat2200_entropyinreseed[] = {
+ 0x75, 0x18, 0x38, 0xce, 0x43, 0x40, 0xf8, 0xf8, 0xda, 0xd2, 0x29, 0xb3,
+ 0xd9, 0x5a, 0x24, 0xde, 0x3e, 0x45, 0xf0, 0x39, 0x6e, 0x44, 0x36, 0xb2,
+ 0x7f, 0xdd, 0x51, 0x30, 0xd6, 0x9b, 0x55, 0xb7,
+};
+static const unsigned char kat2200_addinreseed[] = {0};
+static const unsigned char kat2200_addin0[] = {0};
+static const unsigned char kat2200_addin1[] = {0};
+static const unsigned char kat2200_retbits[] = {
+ 0x51, 0x85, 0x45, 0x29, 0x21, 0x94, 0x44, 0xbb, 0x65, 0x99, 0x9e, 0x63,
+ 0xad, 0xfe, 0x88, 0xb5, 0x12, 0x4c, 0x2d, 0x60, 0xaf, 0x21, 0x4b, 0xf0,
+ 0x2b, 0x63, 0x8e, 0x47, 0x86, 0x44, 0x50, 0x01, 0x2e, 0x79, 0x1e, 0x73,
+ 0x7c, 0x5b, 0x57, 0xa8, 0xd7, 0x33, 0xdc, 0x07, 0xca, 0x59, 0x43, 0x5e,
+ 0xaa, 0x3c, 0x0e, 0x50, 0xd3, 0x1c, 0x73, 0x0e, 0xfb, 0xe9, 0x64, 0xa1,
+ 0x66, 0x8f, 0x60, 0xa4,
+};
+static const struct drbg_kat_pr_false kat2200_t = {
+ 9, kat2200_entropyin, kat2200_nonce, kat2200_persstr,
+ kat2200_entropyinreseed, kat2200_addinreseed, kat2200_addin0,
+ kat2200_addin1, kat2200_retbits
+};
+static const struct drbg_kat kat2200 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2200_t
+};
+
+static const unsigned char kat2201_entropyin[] = {
+ 0x94, 0x0b, 0xea, 0xb8, 0x8d, 0x26, 0xf3, 0x47, 0x5a, 0x2b, 0x65, 0x07,
+ 0x90, 0xcb, 0xdb, 0x89, 0xf7, 0x48, 0x37, 0x29, 0x1c, 0x05, 0x99, 0x59,
+ 0xd9, 0xc4, 0x19, 0xe9, 0xaf, 0xa9, 0xbe, 0x7c,
+};
+static const unsigned char kat2201_nonce[] = {0};
+static const unsigned char kat2201_persstr[] = {
+ 0x4e, 0x81, 0xc4, 0x2d, 0x27, 0xa5, 0xd0, 0xbf, 0x54, 0xa4, 0xc8, 0xe1,
+ 0xee, 0x44, 0x53, 0xa1, 0x80, 0x4f, 0x63, 0x81, 0x37, 0x69, 0x13, 0x7c,
+ 0x9a, 0x50, 0x05, 0xf2, 0x58, 0xb2, 0xa1, 0x4d,
+};
+static const unsigned char kat2201_entropyinreseed[] = {
+ 0x17, 0x83, 0x41, 0x1b, 0x3f, 0xae, 0xef, 0xe2, 0xaf, 0x92, 0x55, 0x87,
+ 0x2b, 0x2b, 0x60, 0x2f, 0xc1, 0x60, 0xcd, 0xbc, 0x2b, 0x03, 0x40, 0xd1,
+ 0xa0, 0x55, 0x8c, 0x44, 0x50, 0xdd, 0xe6, 0xca,
+};
+static const unsigned char kat2201_addinreseed[] = {0};
+static const unsigned char kat2201_addin0[] = {0};
+static const unsigned char kat2201_addin1[] = {0};
+static const unsigned char kat2201_retbits[] = {
+ 0xe7, 0xfa, 0x2f, 0xf9, 0x8a, 0xf3, 0xe8, 0x2b, 0xbe, 0x8e, 0xd8, 0x32,
+ 0xb9, 0x26, 0x91, 0x7e, 0x30, 0x03, 0x6b, 0xc1, 0xd2, 0xfa, 0xa0, 0xb6,
+ 0x82, 0x7c, 0x38, 0xd5, 0x37, 0x45, 0x59, 0xbe, 0x30, 0x1d, 0x27, 0x6b,
+ 0x40, 0x57, 0x92, 0x49, 0x92, 0xed, 0xe1, 0x11, 0xb0, 0x2d, 0x64, 0xa4,
+ 0x86, 0xbc, 0x3e, 0xc8, 0xb0, 0x9f, 0xfd, 0x15, 0x13, 0x9a, 0x21, 0xd4,
+ 0x1f, 0xcc, 0x85, 0xfb,
+};
+static const struct drbg_kat_pr_false kat2201_t = {
+ 10, kat2201_entropyin, kat2201_nonce, kat2201_persstr,
+ kat2201_entropyinreseed, kat2201_addinreseed, kat2201_addin0,
+ kat2201_addin1, kat2201_retbits
+};
+static const struct drbg_kat kat2201 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2201_t
+};
+
+static const unsigned char kat2202_entropyin[] = {
+ 0x59, 0x12, 0x03, 0xe2, 0x02, 0xf4, 0xf3, 0x2d, 0xc7, 0x1a, 0x00, 0x0a,
+ 0x4f, 0xa3, 0xea, 0x92, 0x30, 0xf3, 0x9a, 0x20, 0x42, 0xfc, 0x50, 0xbb,
+ 0x72, 0x53, 0xa9, 0x3f, 0xd0, 0xb1, 0xce, 0x01,
+};
+static const unsigned char kat2202_nonce[] = {0};
+static const unsigned char kat2202_persstr[] = {
+ 0x37, 0xa4, 0xd4, 0x62, 0xf6, 0x53, 0x0b, 0x5f, 0xc4, 0x4f, 0xd0, 0x1b,
+ 0x24, 0x66, 0x9c, 0x68, 0xae, 0x04, 0x2f, 0x0f, 0x0e, 0x84, 0xbf, 0xc1,
+ 0x81, 0x74, 0xff, 0x4c, 0xd4, 0x5d, 0xd1, 0x23,
+};
+static const unsigned char kat2202_entropyinreseed[] = {
+ 0x8a, 0x73, 0x88, 0xd7, 0x39, 0xcd, 0x2e, 0xf5, 0x42, 0xd5, 0xcb, 0x62,
+ 0x26, 0x07, 0xfd, 0x92, 0x28, 0x46, 0x66, 0xd5, 0x2e, 0xd9, 0x78, 0x84,
+ 0x46, 0x9e, 0xcb, 0xad, 0x1d, 0xae, 0xf6, 0xf6,
+};
+static const unsigned char kat2202_addinreseed[] = {0};
+static const unsigned char kat2202_addin0[] = {0};
+static const unsigned char kat2202_addin1[] = {0};
+static const unsigned char kat2202_retbits[] = {
+ 0x9d, 0x34, 0x8b, 0x5d, 0x6f, 0x71, 0x26, 0x03, 0x1e, 0x79, 0xac, 0xa1,
+ 0x67, 0x09, 0x7e, 0x2f, 0x8d, 0xd1, 0xc1, 0x07, 0x73, 0x06, 0x48, 0x18,
+ 0x66, 0x2c, 0x40, 0x8d, 0xc0, 0xf2, 0x43, 0x73, 0x5e, 0xff, 0xc6, 0xeb,
+ 0xc3, 0x35, 0x53, 0xf2, 0x5a, 0xc9, 0x29, 0x49, 0x1f, 0xf7, 0xb7, 0x71,
+ 0x3e, 0x05, 0x6c, 0x21, 0x49, 0x2a, 0x87, 0x7e, 0x47, 0x1a, 0xd1, 0x27,
+ 0x98, 0xa9, 0x66, 0xcb,
+};
+static const struct drbg_kat_pr_false kat2202_t = {
+ 11, kat2202_entropyin, kat2202_nonce, kat2202_persstr,
+ kat2202_entropyinreseed, kat2202_addinreseed, kat2202_addin0,
+ kat2202_addin1, kat2202_retbits
+};
+static const struct drbg_kat kat2202 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2202_t
+};
+
+static const unsigned char kat2203_entropyin[] = {
+ 0x4e, 0x16, 0x9d, 0xb1, 0xf4, 0x55, 0x51, 0x24, 0xf9, 0x53, 0xb7, 0x27,
+ 0x16, 0xdf, 0x0a, 0xe9, 0x76, 0xf9, 0x54, 0xf3, 0x19, 0x82, 0xe0, 0xa7,
+ 0x94, 0x84, 0x8f, 0x9b, 0x12, 0xec, 0x1a, 0x44,
+};
+static const unsigned char kat2203_nonce[] = {0};
+static const unsigned char kat2203_persstr[] = {
+ 0xc1, 0xa3, 0x4b, 0x76, 0x58, 0x1f, 0x1e, 0x7f, 0xbd, 0x52, 0x06, 0xbc,
+ 0x88, 0xea, 0x4d, 0x05, 0xa7, 0x61, 0x48, 0xb6, 0x17, 0x0c, 0x91, 0x23,
+ 0x1f, 0x35, 0x6c, 0x04, 0xf6, 0x90, 0x3a, 0xb5,
+};
+static const unsigned char kat2203_entropyinreseed[] = {
+ 0xcb, 0xcd, 0xf4, 0x96, 0x09, 0x3b, 0x84, 0x69, 0x94, 0x17, 0x06, 0x0b,
+ 0x1c, 0xe7, 0x6f, 0x56, 0xb2, 0x87, 0x9b, 0x14, 0x10, 0x2a, 0x58, 0x58,
+ 0xd0, 0x74, 0x35, 0x45, 0xca, 0x01, 0x96, 0x1f,
+};
+static const unsigned char kat2203_addinreseed[] = {0};
+static const unsigned char kat2203_addin0[] = {0};
+static const unsigned char kat2203_addin1[] = {0};
+static const unsigned char kat2203_retbits[] = {
+ 0x3d, 0x1f, 0xa7, 0xd8, 0x04, 0x71, 0x44, 0xde, 0xaf, 0xe5, 0xcf, 0x9a,
+ 0xb3, 0x4e, 0x41, 0xa8, 0x1d, 0xea, 0x90, 0x02, 0x03, 0x35, 0xc3, 0x68,
+ 0x02, 0x30, 0xa3, 0xad, 0xeb, 0xb8, 0xef, 0xb2, 0x39, 0x11, 0xeb, 0x4f,
+ 0xa4, 0xfa, 0x3b, 0x50, 0x5b, 0xe2, 0x1c, 0xe8, 0x4c, 0xe0, 0x35, 0xe8,
+ 0xc4, 0x4c, 0x11, 0xcb, 0xdc, 0x1f, 0x0e, 0x7b, 0x4c, 0x7e, 0x91, 0x30,
+ 0xe2, 0xfc, 0x57, 0x5d,
+};
+static const struct drbg_kat_pr_false kat2203_t = {
+ 12, kat2203_entropyin, kat2203_nonce, kat2203_persstr,
+ kat2203_entropyinreseed, kat2203_addinreseed, kat2203_addin0,
+ kat2203_addin1, kat2203_retbits
+};
+static const struct drbg_kat kat2203 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2203_t
+};
+
+static const unsigned char kat2204_entropyin[] = {
+ 0x15, 0x57, 0xa1, 0xae, 0xd5, 0x45, 0xe9, 0x7c, 0x1a, 0x84, 0xc4, 0x93,
+ 0x64, 0x75, 0x35, 0xf6, 0x5d, 0xe5, 0xbe, 0x29, 0x47, 0x8a, 0x4c, 0x9f,
+ 0xf6, 0x04, 0x79, 0x56, 0x00, 0x3b, 0x19, 0x5f,
+};
+static const unsigned char kat2204_nonce[] = {0};
+static const unsigned char kat2204_persstr[] = {
+ 0x6b, 0xef, 0x51, 0xa1, 0x4d, 0xa3, 0xdc, 0xe3, 0x0f, 0x20, 0xbc, 0x41,
+ 0x8a, 0x1d, 0xb9, 0x90, 0x10, 0x72, 0x1e, 0xd5, 0x65, 0xa2, 0xb8, 0x5d,
+ 0x15, 0xd6, 0x90, 0xee, 0x80, 0xd5, 0x38, 0xd5,
+};
+static const unsigned char kat2204_entropyinreseed[] = {
+ 0x10, 0xe9, 0xff, 0x17, 0x59, 0x20, 0x91, 0xc9, 0xbf, 0x21, 0x36, 0xdd,
+ 0xf8, 0xf8, 0x02, 0x3f, 0x9a, 0xa6, 0xce, 0x25, 0x6e, 0x6e, 0x93, 0x64,
+ 0x0d, 0xf5, 0xf4, 0xd7, 0xa7, 0xc3, 0x64, 0x6c,
+};
+static const unsigned char kat2204_addinreseed[] = {0};
+static const unsigned char kat2204_addin0[] = {0};
+static const unsigned char kat2204_addin1[] = {0};
+static const unsigned char kat2204_retbits[] = {
+ 0x33, 0x91, 0x97, 0xff, 0x48, 0x49, 0x9c, 0x09, 0x3a, 0x1b, 0x73, 0x18,
+ 0xe1, 0x09, 0x16, 0xfa, 0x2c, 0xb4, 0x4c, 0xf8, 0x2d, 0x44, 0x1f, 0x9b,
+ 0xa3, 0x34, 0xdc, 0x73, 0xd6, 0x25, 0xb6, 0x14, 0x03, 0x3b, 0x3f, 0xd8,
+ 0x98, 0xc1, 0x79, 0xa0, 0x5e, 0xd8, 0x1b, 0xe8, 0x8d, 0x7f, 0xb5, 0xf3,
+ 0xa4, 0x42, 0x97, 0x39, 0x84, 0x8a, 0xbe, 0xd5, 0x90, 0x40, 0x4f, 0x42,
+ 0x65, 0x4b, 0x26, 0x87,
+};
+static const struct drbg_kat_pr_false kat2204_t = {
+ 13, kat2204_entropyin, kat2204_nonce, kat2204_persstr,
+ kat2204_entropyinreseed, kat2204_addinreseed, kat2204_addin0,
+ kat2204_addin1, kat2204_retbits
+};
+static const struct drbg_kat kat2204 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2204_t
+};
+
+static const unsigned char kat2205_entropyin[] = {
+ 0xf3, 0xca, 0x53, 0x47, 0x5e, 0xab, 0x61, 0x72, 0x58, 0xe3, 0x97, 0x15,
+ 0x1a, 0xb3, 0xc1, 0x0a, 0x63, 0x56, 0xd1, 0x8e, 0xfa, 0x22, 0x5a, 0x43,
+ 0x42, 0xda, 0x13, 0xfa, 0x62, 0xaf, 0xf9, 0x9c,
+};
+static const unsigned char kat2205_nonce[] = {0};
+static const unsigned char kat2205_persstr[] = {
+ 0x48, 0x88, 0x2b, 0x0a, 0x26, 0x35, 0x82, 0xf0, 0xc6, 0xbb, 0x82, 0x88,
+ 0xba, 0x89, 0x4d, 0x71, 0x41, 0xe6, 0x65, 0xaa, 0x0c, 0x08, 0x4c, 0x7d,
+ 0x99, 0xea, 0xa0, 0xc1, 0xf0, 0x7e, 0x23, 0xc0,
+};
+static const unsigned char kat2205_entropyinreseed[] = {
+ 0x34, 0xcc, 0x10, 0xa3, 0xd7, 0x13, 0x98, 0xef, 0xec, 0x3c, 0x58, 0x54,
+ 0xef, 0x82, 0xa7, 0x7a, 0x0b, 0x6b, 0xfc, 0xaf, 0x84, 0x1a, 0xd9, 0xa1,
+ 0xd5, 0xc7, 0xbf, 0x05, 0xae, 0xed, 0x90, 0x82,
+};
+static const unsigned char kat2205_addinreseed[] = {0};
+static const unsigned char kat2205_addin0[] = {0};
+static const unsigned char kat2205_addin1[] = {0};
+static const unsigned char kat2205_retbits[] = {
+ 0xca, 0xc2, 0x6b, 0x07, 0x20, 0x4e, 0xea, 0x9a, 0x41, 0xe4, 0x28, 0x93,
+ 0x02, 0xd0, 0xda, 0x8f, 0x36, 0xea, 0x20, 0x0d, 0xac, 0xd2, 0x43, 0x5f,
+ 0x1b, 0xb1, 0xc1, 0x23, 0x5c, 0xb3, 0x62, 0x49, 0x7e, 0xeb, 0x87, 0xae,
+ 0xa2, 0x88, 0x9a, 0xa1, 0x09, 0x3d, 0x13, 0xd2, 0xce, 0xe2, 0x5e, 0xb1,
+ 0x1e, 0x28, 0x22, 0x9c, 0x39, 0xac, 0xdf, 0x89, 0x41, 0x22, 0x42, 0x5b,
+ 0x59, 0x48, 0xca, 0xe2,
+};
+static const struct drbg_kat_pr_false kat2205_t = {
+ 14, kat2205_entropyin, kat2205_nonce, kat2205_persstr,
+ kat2205_entropyinreseed, kat2205_addinreseed, kat2205_addin0,
+ kat2205_addin1, kat2205_retbits
+};
+static const struct drbg_kat kat2205 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2205_t
+};
+
+static const unsigned char kat2206_entropyin[] = {
+ 0x28, 0x9e, 0x5c, 0x82, 0x83, 0xcb, 0xd7, 0xdb, 0xe7, 0x07, 0x25, 0x5c,
+ 0xb3, 0xcf, 0x29, 0x07, 0xd8, 0xa5, 0xce, 0x5b, 0x34, 0x73, 0x14, 0x96,
+ 0x6f, 0x9b, 0x2b, 0xeb, 0xb1, 0xa1, 0xe2, 0x00,
+};
+static const unsigned char kat2206_nonce[] = {0};
+static const unsigned char kat2206_persstr[] = {
+ 0x7f, 0x7b, 0x59, 0xf2, 0x35, 0x10, 0xb9, 0x76, 0xfe, 0x15, 0x5d, 0x04,
+ 0x75, 0x25, 0xc9, 0x4e, 0x2d, 0xac, 0xb3, 0x0d, 0x77, 0xac, 0x8b, 0x09,
+ 0x28, 0x15, 0x44, 0xdd, 0x81, 0x5d, 0x52, 0x93,
+};
+static const unsigned char kat2206_entropyinreseed[] = {
+ 0x98, 0xc5, 0x22, 0x02, 0x8f, 0x36, 0xfc, 0x6b, 0x85, 0xa8, 0xf3, 0xc0,
+ 0x03, 0xef, 0xd4, 0xb1, 0x30, 0xdd, 0x90, 0x18, 0x0e, 0xc8, 0x1c, 0xf7,
+ 0xc6, 0x7d, 0x4c, 0x53, 0xd1, 0x0f, 0x00, 0x22,
+};
+static const unsigned char kat2206_addinreseed[] = {
+ 0xf7, 0xa0, 0x37, 0x83, 0x28, 0xd9, 0x39, 0xf0, 0xf8, 0x52, 0x1e, 0x39,
+ 0x40, 0x9d, 0x71, 0x75, 0xd8, 0x73, 0x19, 0xc7, 0x59, 0x7a, 0x90, 0x50,
+ 0x41, 0x4f, 0x7a, 0xdc, 0x39, 0x2a, 0x32, 0x8d,
+};
+static const unsigned char kat2206_addin0[] = {
+ 0x19, 0xc2, 0x86, 0xf5, 0xb3, 0x61, 0x94, 0xd1, 0xcc, 0x62, 0xc0, 0x18,
+ 0x81, 0x40, 0xbc, 0x9d, 0x61, 0xd2, 0xa9, 0xc5, 0xd8, 0x8b, 0xb5, 0xae,
+ 0xbc, 0x22, 0x4b, 0xfb, 0x04, 0xdf, 0xca, 0x83,
+};
+static const unsigned char kat2206_addin1[] = {
+ 0x82, 0x06, 0x50, 0xc3, 0x20, 0x1d, 0x34, 0x7f, 0x5b, 0x20, 0xd3, 0xd2,
+ 0x5d, 0x1c, 0x8c, 0x7b, 0xef, 0x4d, 0x9f, 0x66, 0xa5, 0xa0, 0x4c, 0x7d,
+ 0xd9, 0xd6, 0x69, 0xe9, 0x51, 0x82, 0xa0, 0xc4,
+};
+static const unsigned char kat2206_retbits[] = {
+ 0x79, 0xa7, 0x9d, 0x44, 0xed, 0xad, 0xa5, 0x8e, 0x3f, 0xc1, 0x2a, 0x4e,
+ 0x36, 0xae, 0x90, 0x0e, 0xea, 0xce, 0x29, 0x02, 0x65, 0xf0, 0x12, 0x62,
+ 0xf4, 0x0f, 0x29, 0x58, 0xa7, 0x0d, 0xcb, 0xd4, 0xd4, 0x18, 0x5f, 0x70,
+ 0x8c, 0x08, 0x8e, 0xde, 0x7f, 0xf8, 0xc8, 0x37, 0x5f, 0x44, 0xf4, 0x01,
+ 0x2f, 0x25, 0x12, 0xd3, 0x83, 0x28, 0xa5, 0xdf, 0x17, 0x1a, 0x17, 0x02,
+ 0x9d, 0x90, 0xf1, 0x85,
+};
+static const struct drbg_kat_pr_false kat2206_t = {
+ 0, kat2206_entropyin, kat2206_nonce, kat2206_persstr,
+ kat2206_entropyinreseed, kat2206_addinreseed, kat2206_addin0,
+ kat2206_addin1, kat2206_retbits
+};
+static const struct drbg_kat kat2206 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2206_t
+};
+
+static const unsigned char kat2207_entropyin[] = {
+ 0xa8, 0xcc, 0xbb, 0xf5, 0xa8, 0xba, 0x78, 0xa9, 0x3f, 0xc7, 0xf3, 0x01,
+ 0x33, 0x68, 0x9e, 0x2c, 0xee, 0x40, 0x3c, 0x42, 0x2f, 0x11, 0x71, 0xc0,
+ 0xb6, 0x5c, 0x38, 0xf0, 0x90, 0x41, 0x64, 0x22,
+};
+static const unsigned char kat2207_nonce[] = {0};
+static const unsigned char kat2207_persstr[] = {
+ 0x5c, 0x65, 0x61, 0x1d, 0xaf, 0xa5, 0xfc, 0x06, 0xad, 0xb3, 0x6c, 0x70,
+ 0x9a, 0x85, 0xa9, 0x37, 0x6c, 0xe5, 0xb2, 0x6b, 0x24, 0x3b, 0x89, 0x22,
+ 0xe2, 0x54, 0x72, 0xde, 0xee, 0x01, 0x91, 0xf3,
+};
+static const unsigned char kat2207_entropyinreseed[] = {
+ 0xb1, 0x7f, 0xf2, 0x27, 0xac, 0xfa, 0x21, 0xbc, 0x2d, 0x37, 0xe5, 0xba,
+ 0x23, 0xa8, 0x53, 0x9b, 0xc6, 0xe4, 0xe6, 0xff, 0x0a, 0x48, 0x37, 0x22,
+ 0x2a, 0x7c, 0xa9, 0x8b, 0xde, 0x86, 0xf8, 0x64,
+};
+static const unsigned char kat2207_addinreseed[] = {
+ 0x2b, 0x8f, 0x75, 0xb7, 0x60, 0x68, 0x8b, 0x41, 0xaa, 0xe7, 0x38, 0x47,
+ 0xfb, 0xa5, 0x6e, 0x43, 0x27, 0x4b, 0x32, 0x1f, 0xe7, 0xd8, 0xda, 0x6f,
+ 0x73, 0x45, 0x95, 0xcc, 0xf2, 0x1d, 0xa3, 0x42,
+};
+static const unsigned char kat2207_addin0[] = {
+ 0x66, 0xf8, 0xa4, 0xd5, 0x82, 0x48, 0xb5, 0x0e, 0x9a, 0x58, 0x24, 0x0f,
+ 0x72, 0x4e, 0xc3, 0xe1, 0x06, 0x3c, 0x47, 0x95, 0x1f, 0x7d, 0x2b, 0x54,
+ 0x46, 0x6d, 0xcc, 0xa7, 0x2f, 0xc7, 0xbb, 0xe1,
+};
+static const unsigned char kat2207_addin1[] = {
+ 0x0a, 0x29, 0xda, 0xcb, 0xbe, 0xbc, 0x8c, 0x45, 0x6d, 0x5e, 0x94, 0x4a,
+ 0x4d, 0x81, 0xab, 0x96, 0x4d, 0xe1, 0xce, 0xb3, 0xbb, 0xa8, 0x7f, 0x91,
+ 0xbb, 0x78, 0x87, 0xfc, 0x71, 0x45, 0x6e, 0x8e,
+};
+static const unsigned char kat2207_retbits[] = {
+ 0x49, 0xda, 0x27, 0x16, 0xe4, 0xdc, 0xfb, 0x22, 0x5b, 0x9b, 0x18, 0x3f,
+ 0x98, 0xf9, 0x22, 0xd5, 0x68, 0xc5, 0x59, 0x4a, 0x76, 0xf1, 0xbb, 0x4d,
+ 0xaa, 0xe6, 0xc1, 0x01, 0xb4, 0x94, 0x85, 0x4a, 0x0a, 0x11, 0xd2, 0x44,
+ 0x7c, 0x20, 0xb5, 0x57, 0x8a, 0x92, 0xd8, 0x47, 0x65, 0xfd, 0x76, 0xd0,
+ 0xdf, 0x16, 0xba, 0x38, 0xdd, 0xeb, 0x11, 0x0d, 0xb7, 0xcd, 0x99, 0xd7,
+ 0xaa, 0x71, 0xe8, 0x74,
+};
+static const struct drbg_kat_pr_false kat2207_t = {
+ 1, kat2207_entropyin, kat2207_nonce, kat2207_persstr,
+ kat2207_entropyinreseed, kat2207_addinreseed, kat2207_addin0,
+ kat2207_addin1, kat2207_retbits
+};
+static const struct drbg_kat kat2207 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2207_t
+};
+
+static const unsigned char kat2208_entropyin[] = {
+ 0x89, 0x7c, 0x09, 0x7d, 0x81, 0x5c, 0xb9, 0x8e, 0x90, 0xd0, 0x1d, 0x79,
+ 0x2e, 0xa4, 0xb3, 0x6a, 0xfa, 0x90, 0x37, 0x46, 0x95, 0x12, 0xf0, 0x3b,
+ 0x39, 0x27, 0xb8, 0x95, 0x2e, 0x90, 0x85, 0x00,
+};
+static const unsigned char kat2208_nonce[] = {0};
+static const unsigned char kat2208_persstr[] = {
+ 0x76, 0x1a, 0x0e, 0xa7, 0xd6, 0x19, 0xf3, 0xeb, 0xc0, 0x72, 0xbb, 0x79,
+ 0x9d, 0x7e, 0xfb, 0xaa, 0xfb, 0x54, 0xe8, 0x68, 0x9d, 0x95, 0xf7, 0xee,
+ 0x57, 0x34, 0x56, 0x07, 0xae, 0x61, 0xa9, 0xc6,
+};
+static const unsigned char kat2208_entropyinreseed[] = {
+ 0x86, 0x8d, 0x7f, 0xfb, 0xe5, 0x1b, 0xd1, 0x2e, 0xb8, 0x8b, 0x0b, 0x5d,
+ 0xfb, 0x25, 0xdf, 0x5d, 0x5d, 0xcb, 0x94, 0x76, 0x4f, 0x05, 0x4a, 0x3a,
+ 0xe0, 0x76, 0x80, 0x88, 0x8b, 0xbf, 0x5e, 0x26,
+};
+static const unsigned char kat2208_addinreseed[] = {
+ 0x59, 0xf8, 0xbb, 0x8b, 0x05, 0xab, 0xcb, 0xc2, 0x5a, 0x40, 0x40, 0x95,
+ 0x05, 0x5b, 0xac, 0x55, 0xd0, 0xdb, 0xd3, 0xca, 0x41, 0xec, 0xce, 0x17,
+ 0x74, 0x02, 0xdf, 0xd0, 0x74, 0x04, 0xc3, 0x8e,
+};
+static const unsigned char kat2208_addin0[] = {
+ 0xa7, 0x98, 0x02, 0xf9, 0x85, 0xa1, 0xd1, 0xcd, 0x0d, 0x4e, 0xd8, 0xc6,
+ 0x39, 0x4a, 0xe5, 0x3c, 0xab, 0x35, 0x42, 0x3e, 0xbe, 0xe2, 0xbc, 0x53,
+ 0x6a, 0x38, 0x66, 0xed, 0x49, 0x65, 0x68, 0x7a,
+};
+static const unsigned char kat2208_addin1[] = {
+ 0x21, 0xb6, 0xcc, 0xaf, 0x45, 0xae, 0x2e, 0x8d, 0x51, 0xd9, 0x63, 0x68,
+ 0x18, 0xa8, 0x46, 0x80, 0xb3, 0x8f, 0x9c, 0x2d, 0xeb, 0x7a, 0x82, 0x04,
+ 0x0f, 0xd8, 0xf8, 0xb2, 0x90, 0x31, 0x6e, 0x4f,
+};
+static const unsigned char kat2208_retbits[] = {
+ 0x99, 0x93, 0x84, 0x11, 0xa8, 0x54, 0xed, 0xfa, 0xe3, 0x68, 0x31, 0xf8,
+ 0x87, 0x0d, 0xe3, 0x9a, 0x17, 0x0f, 0x23, 0x60, 0x72, 0xc0, 0x8f, 0xec,
+ 0x93, 0x6b, 0x7f, 0x7d, 0x7b, 0xd3, 0xab, 0xc3, 0x99, 0x56, 0x16, 0xde,
+ 0x96, 0x59, 0x58, 0xc0, 0x0c, 0x36, 0x03, 0x0d, 0x57, 0xf6, 0x66, 0x56,
+ 0x32, 0x47, 0x3b, 0x07, 0xae, 0x78, 0xad, 0xd2, 0x21, 0x0f, 0x95, 0x61,
+ 0x19, 0x2e, 0x69, 0x94,
+};
+static const struct drbg_kat_pr_false kat2208_t = {
+ 2, kat2208_entropyin, kat2208_nonce, kat2208_persstr,
+ kat2208_entropyinreseed, kat2208_addinreseed, kat2208_addin0,
+ kat2208_addin1, kat2208_retbits
+};
+static const struct drbg_kat kat2208 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2208_t
+};
+
+static const unsigned char kat2209_entropyin[] = {
+ 0x46, 0xa1, 0xcb, 0xb4, 0xcf, 0xec, 0x94, 0x99, 0x2b, 0x0c, 0x06, 0xe6,
+ 0xcd, 0x58, 0xe1, 0x04, 0x3f, 0xef, 0x1c, 0x34, 0xe8, 0x84, 0x04, 0x28,
+ 0x65, 0x84, 0x5d, 0x83, 0xdf, 0xd5, 0x2c, 0xb3,
+};
+static const unsigned char kat2209_nonce[] = {0};
+static const unsigned char kat2209_persstr[] = {
+ 0x5c, 0x86, 0x2d, 0xc6, 0x89, 0x4a, 0x36, 0x89, 0x75, 0x5b, 0x23, 0x25,
+ 0xa9, 0x2e, 0xf7, 0x9a, 0xce, 0x4a, 0x2c, 0x25, 0xd1, 0xd8, 0x71, 0x6b,
+ 0x1a, 0xce, 0xeb, 0xcb, 0x71, 0xb9, 0x72, 0xf9,
+};
+static const unsigned char kat2209_entropyinreseed[] = {
+ 0x02, 0xd4, 0xbc, 0xf9, 0x60, 0x95, 0xc0, 0x20, 0x69, 0xd6, 0x93, 0x2d,
+ 0x62, 0x70, 0x39, 0x64, 0xc2, 0xbd, 0x09, 0xfe, 0xdf, 0xd9, 0x87, 0x88,
+ 0xda, 0x20, 0xbe, 0x5d, 0x89, 0x86, 0xda, 0x40,
+};
+static const unsigned char kat2209_addinreseed[] = {
+ 0x3d, 0xc2, 0xf2, 0xe1, 0xea, 0x19, 0xd6, 0x70, 0xff, 0x66, 0x9e, 0xe7,
+ 0x3a, 0x45, 0xcb, 0xd0, 0x69, 0x01, 0x22, 0x82, 0x63, 0x1a, 0xf6, 0xf9,
+ 0x16, 0xb9, 0xd1, 0x19, 0xdf, 0xd3, 0xb3, 0xf4,
+};
+static const unsigned char kat2209_addin0[] = {
+ 0x08, 0x40, 0xaf, 0x82, 0x4f, 0x94, 0x13, 0x9d, 0xad, 0x12, 0xb5, 0x01,
+ 0xa2, 0x7e, 0x24, 0xe2, 0x7d, 0x91, 0xed, 0xe1, 0xcd, 0xbb, 0x15, 0x47,
+ 0x0d, 0x98, 0x7e, 0x98, 0xb0, 0x24, 0x3e, 0x5d,
+};
+static const unsigned char kat2209_addin1[] = {
+ 0x1d, 0x4e, 0x1e, 0x4b, 0xb4, 0x9e, 0xcf, 0x8c, 0x58, 0x2b, 0xba, 0x65,
+ 0x82, 0xa5, 0x98, 0x9d, 0x20, 0x47, 0x29, 0xc3, 0xa8, 0x01, 0x18, 0x20,
+ 0x66, 0xa6, 0x71, 0x55, 0x89, 0x6c, 0x48, 0xc0,
+};
+static const unsigned char kat2209_retbits[] = {
+ 0x53, 0x22, 0xed, 0x1f, 0x50, 0xaf, 0x42, 0xc1, 0x3b, 0x2f, 0x36, 0xa4,
+ 0xfa, 0x04, 0x1d, 0xc1, 0x84, 0x66, 0xba, 0xea, 0x55, 0x80, 0x1d, 0x41,
+ 0xda, 0xc5, 0x49, 0x46, 0x55, 0x6f, 0xd0, 0xe0, 0x28, 0x47, 0xa2, 0x3d,
+ 0x4e, 0x89, 0x39, 0xce, 0x1d, 0x3c, 0x87, 0xbd, 0x9e, 0x61, 0xc4, 0xf6,
+ 0x7a, 0x66, 0x04, 0x97, 0x2e, 0x27, 0x3b, 0x30, 0xd0, 0xe3, 0x65, 0x5e,
+ 0xbc, 0xf7, 0x6d, 0xe0,
+};
+static const struct drbg_kat_pr_false kat2209_t = {
+ 3, kat2209_entropyin, kat2209_nonce, kat2209_persstr,
+ kat2209_entropyinreseed, kat2209_addinreseed, kat2209_addin0,
+ kat2209_addin1, kat2209_retbits
+};
+static const struct drbg_kat kat2209 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2209_t
+};
+
+static const unsigned char kat2210_entropyin[] = {
+ 0x96, 0x08, 0x08, 0x1f, 0xa3, 0xdf, 0xa9, 0xd5, 0x0f, 0x0e, 0x77, 0xae,
+ 0xf3, 0x07, 0x59, 0xcc, 0x5d, 0xc1, 0xa6, 0x42, 0x36, 0xa8, 0xf0, 0x9c,
+ 0x64, 0xb6, 0x89, 0xe6, 0x9d, 0xf2, 0xc3, 0x95,
+};
+static const unsigned char kat2210_nonce[] = {0};
+static const unsigned char kat2210_persstr[] = {
+ 0xa5, 0x5e, 0xb6, 0xa8, 0x01, 0xc6, 0xe4, 0xc9, 0xf1, 0x87, 0xad, 0xc8,
+ 0x65, 0x91, 0x60, 0x18, 0x1f, 0x21, 0x4b, 0xd2, 0x6a, 0x93, 0x2e, 0x16,
+ 0xc3, 0xb4, 0xc1, 0x42, 0xa2, 0x67, 0xdb, 0xae,
+};
+static const unsigned char kat2210_entropyinreseed[] = {
+ 0x4a, 0x64, 0xd7, 0x1c, 0xe7, 0x39, 0xd1, 0x4b, 0x49, 0x03, 0x76, 0x96,
+ 0x4f, 0x50, 0xc5, 0x06, 0xcb, 0xa0, 0xbe, 0xdf, 0x51, 0xbd, 0x79, 0xc2,
+ 0x86, 0x19, 0x59, 0xc6, 0x72, 0x24, 0x7a, 0x1f,
+};
+static const unsigned char kat2210_addinreseed[] = {
+ 0xa6, 0xae, 0x54, 0xc4, 0x2d, 0x7e, 0xe1, 0xdd, 0x6e, 0x91, 0x96, 0x51,
+ 0xed, 0x6d, 0x6d, 0x8e, 0x03, 0x40, 0x38, 0x27, 0xc6, 0x13, 0x75, 0x3e,
+ 0xcc, 0x51, 0x77, 0x6c, 0xdc, 0xd2, 0x4f, 0x9f,
+};
+static const unsigned char kat2210_addin0[] = {
+ 0xf4, 0x01, 0x1b, 0x9b, 0xed, 0x89, 0x75, 0x7e, 0xac, 0xe1, 0x51, 0x4c,
+ 0x03, 0x18, 0x4b, 0x76, 0xc0, 0xaf, 0x78, 0x97, 0xb1, 0x70, 0x73, 0x28,
+ 0x0a, 0x40, 0xe7, 0xaa, 0x8f, 0x39, 0xeb, 0xc1,
+};
+static const unsigned char kat2210_addin1[] = {
+ 0x59, 0x5f, 0xa0, 0xd4, 0x81, 0x73, 0xec, 0x95, 0x15, 0x0c, 0x3c, 0x62,
+ 0x2b, 0xae, 0xb1, 0x53, 0xfb, 0xca, 0x88, 0x0f, 0xc6, 0x83, 0xd8, 0xe5,
+ 0xc1, 0x4d, 0x6a, 0xb2, 0x53, 0x86, 0x94, 0x32,
+};
+static const unsigned char kat2210_retbits[] = {
+ 0x22, 0xf5, 0xfc, 0x79, 0x6c, 0x87, 0x95, 0xb9, 0xc8, 0x29, 0x6f, 0x0f,
+ 0x31, 0x36, 0x92, 0x03, 0xd5, 0x16, 0x7b, 0x43, 0x56, 0x0d, 0x50, 0x3f,
+ 0x20, 0xcb, 0xa6, 0x2c, 0xf5, 0xbb, 0x1d, 0x4a, 0xdd, 0x49, 0x1a, 0xcf,
+ 0x44, 0xcc, 0x11, 0xff, 0x40, 0x90, 0xaf, 0x7d, 0xf1, 0x0e, 0xa7, 0xb9,
+ 0xb6, 0x09, 0xe1, 0xe8, 0xa7, 0x90, 0x46, 0x05, 0x62, 0x87, 0x40, 0xa2,
+ 0xa6, 0xa1, 0xd6, 0xf4,
+};
+static const struct drbg_kat_pr_false kat2210_t = {
+ 4, kat2210_entropyin, kat2210_nonce, kat2210_persstr,
+ kat2210_entropyinreseed, kat2210_addinreseed, kat2210_addin0,
+ kat2210_addin1, kat2210_retbits
+};
+static const struct drbg_kat kat2210 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2210_t
+};
+
+static const unsigned char kat2211_entropyin[] = {
+ 0x13, 0x49, 0xc7, 0xf3, 0xd5, 0x2b, 0x8f, 0x92, 0xa0, 0xfe, 0xf2, 0xd8,
+ 0xc6, 0xa6, 0x77, 0xc3, 0xaf, 0x42, 0xcd, 0xf0, 0x76, 0x02, 0x6e, 0x0f,
+ 0x27, 0xec, 0x44, 0x97, 0xed, 0x86, 0x6f, 0x5f,
+};
+static const unsigned char kat2211_nonce[] = {0};
+static const unsigned char kat2211_persstr[] = {
+ 0x47, 0x1e, 0x89, 0x39, 0x76, 0x37, 0x3d, 0x2b, 0x6c, 0x34, 0x5a, 0xfd,
+ 0xa8, 0xcf, 0xd2, 0xfb, 0x90, 0x8b, 0xdf, 0x70, 0x46, 0x2c, 0x31, 0x45,
+ 0xbf, 0x88, 0x78, 0x8b, 0x31, 0xc1, 0x23, 0xbe,
+};
+static const unsigned char kat2211_entropyinreseed[] = {
+ 0x50, 0x3c, 0xc8, 0xc9, 0xb5, 0xec, 0xe0, 0xa8, 0x8c, 0xc1, 0xe0, 0x62,
+ 0x25, 0xed, 0xfd, 0x46, 0x9d, 0x6f, 0xfd, 0xd5, 0x93, 0xdb, 0x30, 0x13,
+ 0xdb, 0x38, 0x61, 0x57, 0x6c, 0x5f, 0xf7, 0x5b,
+};
+static const unsigned char kat2211_addinreseed[] = {
+ 0x2c, 0x94, 0x8a, 0x70, 0x38, 0x7b, 0x4e, 0xb5, 0x64, 0x2a, 0xd9, 0x2f,
+ 0x65, 0x7a, 0x7e, 0x5a, 0x65, 0xf2, 0xc4, 0x33, 0x72, 0xf3, 0x30, 0xef,
+ 0x27, 0x34, 0x4f, 0x8a, 0x65, 0xc0, 0x53, 0x0f,
+};
+static const unsigned char kat2211_addin0[] = {
+ 0x1b, 0xc8, 0x13, 0x3e, 0xe0, 0x4b, 0x9a, 0x4c, 0xae, 0x32, 0x30, 0x0c,
+ 0xbb, 0x04, 0x83, 0x2f, 0xb4, 0xb7, 0x8f, 0x6c, 0x87, 0xd6, 0x51, 0xaf,
+ 0xfc, 0xb1, 0xb5, 0x22, 0x58, 0x5b, 0xc6, 0xcd,
+};
+static const unsigned char kat2211_addin1[] = {
+ 0xf9, 0xd1, 0x1e, 0x59, 0xa9, 0x7c, 0x90, 0xf0, 0xba, 0xa3, 0x00, 0xa2,
+ 0x73, 0x0b, 0x3e, 0x18, 0xdf, 0x83, 0x04, 0x33, 0x03, 0xbc, 0xbb, 0x31,
+ 0x68, 0x6e, 0xe3, 0x3c, 0x24, 0xda, 0x08, 0xa9,
+};
+static const unsigned char kat2211_retbits[] = {
+ 0x63, 0xc3, 0x69, 0x2d, 0x71, 0xee, 0x48, 0x87, 0x9d, 0x0d, 0x8d, 0x1c,
+ 0x9a, 0x9d, 0x6c, 0x78, 0x19, 0xe3, 0xb6, 0x1f, 0xad, 0xb9, 0x7b, 0xb8,
+ 0xdd, 0x5c, 0x6b, 0xdd, 0x87, 0x88, 0x81, 0x9d, 0x59, 0xb6, 0x17, 0xf0,
+ 0x58, 0xea, 0x4c, 0x21, 0xde, 0xc6, 0xe1, 0xb7, 0x03, 0xa6, 0x31, 0x7a,
+ 0x48, 0x7c, 0x65, 0xc2, 0xc7, 0xf1, 0x9e, 0xa9, 0x9e, 0x9a, 0x50, 0xd5,
+ 0xcc, 0xdc, 0x9e, 0x9e,
+};
+static const struct drbg_kat_pr_false kat2211_t = {
+ 5, kat2211_entropyin, kat2211_nonce, kat2211_persstr,
+ kat2211_entropyinreseed, kat2211_addinreseed, kat2211_addin0,
+ kat2211_addin1, kat2211_retbits
+};
+static const struct drbg_kat kat2211 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2211_t
+};
+
+static const unsigned char kat2212_entropyin[] = {
+ 0x26, 0x0f, 0x99, 0xf0, 0xa9, 0x85, 0x05, 0xfd, 0xa8, 0x9e, 0xad, 0xd2,
+ 0x02, 0x4f, 0xaa, 0x84, 0x63, 0xc3, 0x2a, 0x62, 0x45, 0x30, 0x06, 0xfd,
+ 0x19, 0xe8, 0x8b, 0x34, 0xf5, 0x38, 0x9a, 0x77,
+};
+static const unsigned char kat2212_nonce[] = {0};
+static const unsigned char kat2212_persstr[] = {
+ 0x1b, 0xf7, 0xcf, 0x55, 0x38, 0x3d, 0xba, 0xc2, 0x6f, 0xc1, 0x83, 0xf5,
+ 0x06, 0x52, 0xcf, 0x03, 0xa8, 0xde, 0x20, 0x42, 0x32, 0xce, 0xe0, 0x24,
+ 0x2a, 0x1a, 0xbf, 0xd4, 0x3e, 0x7a, 0x38, 0x1f,
+};
+static const unsigned char kat2212_entropyinreseed[] = {
+ 0xab, 0xe2, 0xbd, 0x8e, 0x54, 0x49, 0x2c, 0x0c, 0xb3, 0x17, 0xf8, 0x36,
+ 0xfa, 0xa0, 0x85, 0x0e, 0x70, 0x8d, 0x78, 0x89, 0x57, 0xf1, 0xe2, 0x3a,
+ 0x33, 0xc1, 0x13, 0x2a, 0x48, 0xc5, 0xd8, 0x4e,
+};
+static const unsigned char kat2212_addinreseed[] = {
+ 0xc0, 0xfb, 0x4b, 0x84, 0x44, 0x5f, 0x37, 0xe2, 0x60, 0xbc, 0xba, 0xe4,
+ 0x56, 0x57, 0x6b, 0x4f, 0x7c, 0x39, 0xf0, 0xdc, 0xf3, 0x12, 0x2e, 0x18,
+ 0xd6, 0x0c, 0x31, 0x4e, 0xd4, 0xd7, 0xb3, 0x1e,
+};
+static const unsigned char kat2212_addin0[] = {
+ 0x9f, 0xdd, 0x11, 0x19, 0x65, 0x7c, 0xb3, 0x15, 0x98, 0xfc, 0xa9, 0xee,
+ 0xe9, 0x60, 0x0c, 0x1e, 0xae, 0x26, 0xda, 0xb6, 0x8d, 0x8f, 0xe7, 0xb8,
+ 0xa3, 0xf2, 0x6f, 0x4a, 0xe2, 0x92, 0xb3, 0xc0,
+};
+static const unsigned char kat2212_addin1[] = {
+ 0x9f, 0xd9, 0xd7, 0x42, 0xa6, 0x75, 0xf2, 0x72, 0x5c, 0x49, 0x67, 0xc7,
+ 0x6f, 0x1c, 0x79, 0x7c, 0x07, 0xae, 0xaa, 0xcf, 0x20, 0x98, 0x5a, 0xb9,
+ 0xd8, 0x8e, 0x6e, 0x08, 0x4d, 0xde, 0x20, 0x56,
+};
+static const unsigned char kat2212_retbits[] = {
+ 0x22, 0x26, 0x7c, 0x1d, 0xfb, 0x3a, 0xe0, 0xf4, 0x6b, 0xfc, 0x93, 0x0e,
+ 0x9d, 0x02, 0xe4, 0x05, 0x02, 0x8f, 0x0a, 0xb8, 0x38, 0x07, 0x80, 0xdc,
+ 0xa0, 0x03, 0x40, 0xc9, 0xe7, 0xe0, 0x30, 0xe0, 0x1c, 0xba, 0xd1, 0xad,
+ 0xaf, 0xf0, 0x79, 0x05, 0xe3, 0x43, 0x60, 0x70, 0xba, 0x65, 0x8d, 0x83,
+ 0x26, 0x35, 0x3e, 0xf4, 0x7d, 0xc0, 0x6c, 0x55, 0x08, 0x9c, 0x2d, 0xaa,
+ 0x5e, 0x39, 0x6e, 0x8c,
+};
+static const struct drbg_kat_pr_false kat2212_t = {
+ 6, kat2212_entropyin, kat2212_nonce, kat2212_persstr,
+ kat2212_entropyinreseed, kat2212_addinreseed, kat2212_addin0,
+ kat2212_addin1, kat2212_retbits
+};
+static const struct drbg_kat kat2212 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2212_t
+};
+
+static const unsigned char kat2213_entropyin[] = {
+ 0xa7, 0x4a, 0xa2, 0xa7, 0xce, 0x50, 0xa8, 0x71, 0xfb, 0x82, 0xa8, 0xb7,
+ 0x17, 0x9d, 0x25, 0x60, 0x6f, 0xb0, 0x0f, 0x4d, 0xcd, 0x6a, 0x1e, 0x8c,
+ 0x2d, 0x6d, 0xfe, 0xe1, 0x1b, 0x58, 0xdc, 0xa1,
+};
+static const unsigned char kat2213_nonce[] = {0};
+static const unsigned char kat2213_persstr[] = {
+ 0x95, 0xcf, 0x5c, 0x25, 0x12, 0xc7, 0x98, 0xcc, 0x23, 0xaa, 0x5d, 0x3d,
+ 0xb1, 0xb8, 0x2b, 0x14, 0xd2, 0x0d, 0x32, 0xcb, 0x8b, 0x7a, 0xae, 0x6b,
+ 0xc2, 0x63, 0x0e, 0x9c, 0x7a, 0x92, 0x39, 0xb3,
+};
+static const unsigned char kat2213_entropyinreseed[] = {
+ 0xe2, 0xde, 0x02, 0xb8, 0x48, 0x01, 0xbd, 0xc4, 0xf4, 0x94, 0x80, 0x05,
+ 0x5d, 0x54, 0xc4, 0xfd, 0x58, 0xd7, 0xf1, 0x24, 0x2b, 0xfb, 0xfa, 0x8f,
+ 0xa3, 0x5c, 0x99, 0x21, 0x1f, 0x27, 0x11, 0x3d,
+};
+static const unsigned char kat2213_addinreseed[] = {
+ 0x43, 0x4d, 0x46, 0x71, 0x50, 0xde, 0xcd, 0x49, 0x53, 0x6a, 0xb9, 0x7f,
+ 0x1a, 0x7d, 0xf2, 0x6f, 0x9f, 0x35, 0x31, 0x12, 0xde, 0xc5, 0xa6, 0x3b,
+ 0xc0, 0xa9, 0xee, 0x78, 0x9d, 0x3a, 0xa0, 0xd6,
+};
+static const unsigned char kat2213_addin0[] = {
+ 0x4b, 0x08, 0x79, 0xb0, 0x9f, 0x7b, 0xfd, 0x83, 0xd4, 0x9f, 0x68, 0x50,
+ 0x87, 0x68, 0x54, 0x1e, 0x6a, 0x5c, 0x9c, 0x7a, 0xe6, 0xd0, 0x21, 0xdd,
+ 0x74, 0x63, 0x95, 0x37, 0x0f, 0x1c, 0x50, 0xe2,
+};
+static const unsigned char kat2213_addin1[] = {
+ 0x7b, 0xf0, 0xa7, 0x59, 0x7c, 0x68, 0x4d, 0xce, 0xd6, 0xff, 0x03, 0x2a,
+ 0x58, 0x40, 0x70, 0x14, 0x40, 0x38, 0xce, 0x4d, 0xc3, 0x37, 0x65, 0xa6,
+ 0x7b, 0x92, 0xfd, 0x5b, 0x56, 0x31, 0xdf, 0x04,
+};
+static const unsigned char kat2213_retbits[] = {
+ 0xd8, 0x3e, 0xae, 0xaf, 0x16, 0xdf, 0x26, 0xfb, 0x1a, 0x58, 0xd4, 0x52,
+ 0x01, 0x47, 0xfc, 0x05, 0x04, 0xb2, 0x97, 0x41, 0x56, 0x7b, 0x75, 0xea,
+ 0xa5, 0x79, 0xdf, 0x31, 0x0b, 0xe3, 0xb1, 0xec, 0x5d, 0x95, 0x08, 0x13,
+ 0x07, 0x0f, 0x54, 0x34, 0x46, 0x2c, 0xea, 0x3a, 0x2b, 0x05, 0xaf, 0xc0,
+ 0x02, 0xa5, 0x11, 0x80, 0x1d, 0xd7, 0x3f, 0x82, 0x64, 0x64, 0x1d, 0xf1,
+ 0x16, 0x19, 0xbc, 0xc9,
+};
+static const struct drbg_kat_pr_false kat2213_t = {
+ 7, kat2213_entropyin, kat2213_nonce, kat2213_persstr,
+ kat2213_entropyinreseed, kat2213_addinreseed, kat2213_addin0,
+ kat2213_addin1, kat2213_retbits
+};
+static const struct drbg_kat kat2213 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2213_t
+};
+
+static const unsigned char kat2214_entropyin[] = {
+ 0x1b, 0x68, 0x10, 0x81, 0x60, 0x43, 0xca, 0x32, 0x6a, 0x44, 0x17, 0xb9,
+ 0x57, 0x68, 0x2b, 0x20, 0xce, 0xaf, 0x53, 0x2c, 0xfd, 0xd3, 0x29, 0xe6,
+ 0x19, 0xfa, 0xa2, 0x72, 0x6c, 0x03, 0x15, 0x56,
+};
+static const unsigned char kat2214_nonce[] = {0};
+static const unsigned char kat2214_persstr[] = {
+ 0x56, 0xee, 0x0d, 0x8c, 0xb5, 0x4c, 0x5a, 0x8d, 0x97, 0xbe, 0x4e, 0xc5,
+ 0x11, 0x74, 0x18, 0x61, 0x1c, 0x18, 0x24, 0x13, 0x22, 0xfd, 0x12, 0xbb,
+ 0xb5, 0x0d, 0xbd, 0x5d, 0x60, 0x01, 0xa7, 0xdd,
+};
+static const unsigned char kat2214_entropyinreseed[] = {
+ 0x1a, 0x88, 0xc8, 0x99, 0xee, 0x1c, 0x5c, 0x6f, 0x29, 0x64, 0xaa, 0x6b,
+ 0x36, 0xf6, 0x15, 0x98, 0x95, 0xd2, 0x86, 0x06, 0x96, 0xe3, 0xd6, 0xe3,
+ 0xe9, 0x2f, 0x72, 0x31, 0xbf, 0x6e, 0x47, 0x89,
+};
+static const unsigned char kat2214_addinreseed[] = {
+ 0x66, 0xa0, 0x75, 0x60, 0xc5, 0x1d, 0x44, 0x09, 0x77, 0xa8, 0xdb, 0x1b,
+ 0x5f, 0xb1, 0xcf, 0x8d, 0x71, 0x53, 0x0f, 0xa8, 0x57, 0x9d, 0x43, 0x67,
+ 0x12, 0x3c, 0x82, 0xc3, 0x8a, 0x2e, 0x43, 0x87,
+};
+static const unsigned char kat2214_addin0[] = {
+ 0xbc, 0x64, 0xeb, 0xb2, 0x05, 0x35, 0x11, 0xb5, 0xb5, 0xba, 0x2e, 0x99,
+ 0x87, 0x91, 0x28, 0x3d, 0x9b, 0x5d, 0xd8, 0xeb, 0x9d, 0x39, 0xb7, 0xd1,
+ 0xa2, 0xc3, 0x15, 0x62, 0xa0, 0xea, 0xc1, 0x2a,
+};
+static const unsigned char kat2214_addin1[] = {
+ 0x1d, 0x8d, 0x76, 0xc1, 0x06, 0xbd, 0x27, 0x5c, 0x39, 0xd2, 0x1d, 0xb2,
+ 0xa1, 0xfe, 0x1a, 0x26, 0x42, 0xbd, 0xaf, 0xfc, 0x92, 0x12, 0xe8, 0x41,
+ 0x45, 0xa2, 0x24, 0xcd, 0xfc, 0x6a, 0x7e, 0x2f,
+};
+static const unsigned char kat2214_retbits[] = {
+ 0x31, 0x35, 0x93, 0x3b, 0x86, 0xd9, 0x80, 0x31, 0xa9, 0x7f, 0xf1, 0x38,
+ 0x28, 0xc6, 0x3f, 0x43, 0x78, 0x0c, 0x81, 0x76, 0x85, 0x6c, 0x6f, 0xc8,
+ 0xd4, 0xf2, 0xd3, 0x2a, 0xfc, 0xc6, 0xe8, 0x4f, 0x71, 0xee, 0x0f, 0xe6,
+ 0xde, 0x9a, 0x7b, 0x75, 0x96, 0x8b, 0xcf, 0xfe, 0x9f, 0xae, 0x9d, 0xf7,
+ 0xa5, 0x3e, 0x8d, 0xfb, 0x46, 0xac, 0xec, 0x16, 0x8d, 0x1c, 0xa4, 0xc5,
+ 0x9b, 0xd4, 0x4b, 0x93,
+};
+static const struct drbg_kat_pr_false kat2214_t = {
+ 8, kat2214_entropyin, kat2214_nonce, kat2214_persstr,
+ kat2214_entropyinreseed, kat2214_addinreseed, kat2214_addin0,
+ kat2214_addin1, kat2214_retbits
+};
+static const struct drbg_kat kat2214 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2214_t
+};
+
+static const unsigned char kat2215_entropyin[] = {
+ 0xa4, 0x40, 0xef, 0xa3, 0xc7, 0xe8, 0x96, 0x63, 0xe3, 0x71, 0xe4, 0x1b,
+ 0xa5, 0xe1, 0x92, 0xb9, 0x5b, 0x2d, 0x14, 0x94, 0x2b, 0xfd, 0xfd, 0x03,
+ 0x78, 0x68, 0x60, 0xee, 0x33, 0xf7, 0x96, 0xb4,
+};
+static const unsigned char kat2215_nonce[] = {0};
+static const unsigned char kat2215_persstr[] = {
+ 0x32, 0x89, 0xae, 0xb3, 0xce, 0xda, 0x9d, 0xef, 0xf2, 0xf6, 0x5e, 0xa8,
+ 0x94, 0x17, 0x6f, 0x13, 0x1c, 0x41, 0x2f, 0x69, 0x95, 0x60, 0xfb, 0x21,
+ 0xd8, 0x7b, 0xe5, 0xaf, 0x99, 0xba, 0x18, 0xaf,
+};
+static const unsigned char kat2215_entropyinreseed[] = {
+ 0x93, 0x39, 0xf1, 0xff, 0xc3, 0x32, 0x0f, 0xb4, 0xd5, 0x1c, 0x24, 0x34,
+ 0xf5, 0xe5, 0x1e, 0xd5, 0x6a, 0x12, 0x01, 0x12, 0x73, 0xa4, 0x5f, 0x64,
+ 0x00, 0x2d, 0x1e, 0x3f, 0x91, 0x90, 0xbf, 0x3b,
+};
+static const unsigned char kat2215_addinreseed[] = {
+ 0x7a, 0xcd, 0xc7, 0x96, 0x7a, 0xa6, 0x86, 0xae, 0x37, 0xeb, 0xe9, 0xf3,
+ 0xae, 0x6f, 0x53, 0x11, 0x30, 0xbd, 0xb6, 0xc4, 0x84, 0xae, 0x93, 0x81,
+ 0xe9, 0x62, 0xdb, 0x37, 0x01, 0xf6, 0x6c, 0x4e,
+};
+static const unsigned char kat2215_addin0[] = {
+ 0xbf, 0x85, 0x64, 0x7e, 0x6c, 0xce, 0xe6, 0xd7, 0x8d, 0xbf, 0x62, 0x5a,
+ 0x46, 0x59, 0xac, 0xb8, 0xcc, 0x50, 0x3c, 0xfd, 0x1c, 0xf9, 0xfd, 0xd5,
+ 0x46, 0x8d, 0x51, 0xda, 0x1e, 0xba, 0x39, 0xdf,
+};
+static const unsigned char kat2215_addin1[] = {
+ 0x60, 0xda, 0x39, 0x9d, 0x92, 0x72, 0xeb, 0x90, 0x87, 0x8e, 0x3a, 0x24,
+ 0xf1, 0xab, 0x03, 0xd2, 0x57, 0xe5, 0x67, 0xaa, 0x1e, 0xba, 0xa4, 0x1e,
+ 0x00, 0xb4, 0xc8, 0x7c, 0xad, 0xda, 0x46, 0x3b,
+};
+static const unsigned char kat2215_retbits[] = {
+ 0x28, 0xac, 0x3a, 0xe1, 0xfb, 0x85, 0x2a, 0x3d, 0x9a, 0xb1, 0x76, 0x18,
+ 0x49, 0x30, 0x2c, 0x25, 0x15, 0xa0, 0xa8, 0x91, 0x2b, 0xbb, 0xb3, 0x72,
+ 0x48, 0x05, 0x46, 0x0b, 0x32, 0x7e, 0x34, 0xcc, 0x78, 0x10, 0xd0, 0xb4,
+ 0x60, 0x8c, 0x9c, 0x25, 0xa0, 0xbd, 0xbd, 0xd3, 0x42, 0x08, 0x83, 0x05,
+ 0x9d, 0xc7, 0x7f, 0x59, 0xd6, 0x96, 0x0b, 0x27, 0x15, 0x13, 0xd5, 0x26,
+ 0x7d, 0x96, 0xc9, 0xc2,
+};
+static const struct drbg_kat_pr_false kat2215_t = {
+ 9, kat2215_entropyin, kat2215_nonce, kat2215_persstr,
+ kat2215_entropyinreseed, kat2215_addinreseed, kat2215_addin0,
+ kat2215_addin1, kat2215_retbits
+};
+static const struct drbg_kat kat2215 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2215_t
+};
+
+static const unsigned char kat2216_entropyin[] = {
+ 0xc8, 0xa3, 0x2e, 0x5f, 0xf0, 0x6b, 0xc2, 0x0f, 0x07, 0x6b, 0x3b, 0xba,
+ 0xbd, 0x68, 0xeb, 0x21, 0xb6, 0x5f, 0x95, 0x36, 0xd7, 0x80, 0x27, 0x1a,
+ 0xfb, 0x13, 0xf7, 0x9e, 0xeb, 0x21, 0x0c, 0x1f,
+};
+static const unsigned char kat2216_nonce[] = {0};
+static const unsigned char kat2216_persstr[] = {
+ 0xce, 0x90, 0xe1, 0xaf, 0x81, 0xea, 0x8f, 0x9c, 0x58, 0x76, 0x20, 0x62,
+ 0x3d, 0xee, 0x3e, 0xf8, 0x89, 0xab, 0x61, 0x0b, 0x4d, 0x18, 0x27, 0x70,
+ 0x1c, 0x73, 0x92, 0x16, 0x2e, 0xab, 0x92, 0x3d,
+};
+static const unsigned char kat2216_entropyinreseed[] = {
+ 0xd1, 0xcc, 0xf4, 0xfb, 0xd8, 0xe0, 0x70, 0x9b, 0x4c, 0xf8, 0xd2, 0x04,
+ 0x4e, 0xe3, 0xc8, 0x9f, 0xcb, 0xbc, 0x1c, 0x6c, 0xf1, 0x0d, 0x63, 0x4e,
+ 0x44, 0x60, 0x5c, 0xc6, 0x76, 0xb7, 0x50, 0xad,
+};
+static const unsigned char kat2216_addinreseed[] = {
+ 0x3c, 0xda, 0xec, 0x08, 0xd7, 0x67, 0x0b, 0x80, 0xc6, 0x8b, 0x8c, 0xa4,
+ 0x72, 0x3d, 0x62, 0xf1, 0xa2, 0x3d, 0x7d, 0x83, 0xd8, 0x26, 0x87, 0xbc,
+ 0xcc, 0x10, 0xc3, 0x8e, 0x89, 0x4d, 0x81, 0x2a,
+};
+static const unsigned char kat2216_addin0[] = {
+ 0xfb, 0x0b, 0x46, 0x98, 0xd6, 0x62, 0x2c, 0x8f, 0x5f, 0x1d, 0x68, 0x0b,
+ 0xce, 0xb7, 0xf3, 0x94, 0xeb, 0x13, 0x72, 0x92, 0x14, 0x34, 0xf1, 0x7c,
+ 0x1a, 0xe6, 0x10, 0x9e, 0xce, 0x79, 0x5d, 0x96,
+};
+static const unsigned char kat2216_addin1[] = {
+ 0x1e, 0xc9, 0xcb, 0xf3, 0x69, 0xaa, 0x80, 0x16, 0x2b, 0x12, 0x48, 0xa2,
+ 0x50, 0xe4, 0x2f, 0xdd, 0xd1, 0x32, 0xb1, 0x2f, 0xa6, 0xf8, 0xca, 0x2d,
+ 0xe2, 0xed, 0xa4, 0xb7, 0x8e, 0x7f, 0x2e, 0xd2,
+};
+static const unsigned char kat2216_retbits[] = {
+ 0x58, 0xdf, 0x4e, 0x60, 0x2f, 0x85, 0xbd, 0x94, 0xa9, 0xbf, 0x7d, 0xd3,
+ 0x75, 0xba, 0xc1, 0x82, 0xe8, 0x93, 0xc7, 0xa3, 0x4a, 0xcc, 0x62, 0xa4,
+ 0x56, 0xd3, 0x62, 0x4c, 0xcb, 0xc5, 0x4e, 0x9b, 0x08, 0x2f, 0x4f, 0x04,
+ 0x40, 0x6a, 0x6c, 0x81, 0x5e, 0x26, 0xa5, 0x13, 0x8c, 0x29, 0x37, 0x23,
+ 0x72, 0xfa, 0x2c, 0x1f, 0x00, 0xe2, 0x86, 0xb3, 0xf4, 0x42, 0x17, 0x23,
+ 0x94, 0xf4, 0xda, 0x07,
+};
+static const struct drbg_kat_pr_false kat2216_t = {
+ 10, kat2216_entropyin, kat2216_nonce, kat2216_persstr,
+ kat2216_entropyinreseed, kat2216_addinreseed, kat2216_addin0,
+ kat2216_addin1, kat2216_retbits
+};
+static const struct drbg_kat kat2216 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2216_t
+};
+
+static const unsigned char kat2217_entropyin[] = {
+ 0xd0, 0x1e, 0x66, 0xa9, 0x23, 0x7a, 0x87, 0xac, 0x7b, 0x34, 0xbe, 0x3a,
+ 0xb4, 0x6a, 0xc9, 0xe5, 0xef, 0x86, 0xb6, 0x3f, 0xb8, 0x15, 0x0f, 0x2d,
+ 0x47, 0x3d, 0xc8, 0x05, 0xaf, 0x32, 0xc6, 0xe4,
+};
+static const unsigned char kat2217_nonce[] = {0};
+static const unsigned char kat2217_persstr[] = {
+ 0xea, 0xd3, 0x53, 0xed, 0xb0, 0xe4, 0xe9, 0xc3, 0x63, 0x20, 0x2d, 0x49,
+ 0xcd, 0x74, 0x62, 0x1e, 0x80, 0x6c, 0xc3, 0xf7, 0x91, 0x9f, 0x7c, 0xb4,
+ 0xbf, 0xda, 0xe9, 0x94, 0x4e, 0xf6, 0x60, 0x62,
+};
+static const unsigned char kat2217_entropyinreseed[] = {
+ 0x8c, 0x19, 0x86, 0xae, 0xbb, 0x33, 0x69, 0x32, 0xd8, 0xd7, 0x5e, 0xb5,
+ 0x59, 0xf4, 0x74, 0x8f, 0x61, 0x50, 0x6e, 0x83, 0x08, 0xd8, 0x16, 0x4a,
+ 0x63, 0x42, 0xf7, 0x97, 0xbc, 0x13, 0x64, 0xa2,
+};
+static const unsigned char kat2217_addinreseed[] = {
+ 0x05, 0xf9, 0xb1, 0x49, 0xcb, 0x48, 0xe9, 0x0e, 0x02, 0x86, 0x1e, 0x8c,
+ 0xef, 0xe4, 0xd5, 0xb4, 0xc5, 0x61, 0x98, 0xde, 0x51, 0xab, 0xc0, 0x7d,
+ 0xcd, 0xc3, 0x04, 0x7d, 0x6e, 0x68, 0x79, 0xa0,
+};
+static const unsigned char kat2217_addin0[] = {
+ 0xa3, 0xe1, 0x57, 0x7e, 0x87, 0xa4, 0x72, 0xf1, 0xf2, 0xcf, 0x66, 0x56,
+ 0xde, 0x57, 0x37, 0xb1, 0x7a, 0xfd, 0xc2, 0xee, 0xc4, 0x72, 0xac, 0xee,
+ 0x84, 0xe7, 0x95, 0x09, 0x86, 0x88, 0x90, 0x91,
+};
+static const unsigned char kat2217_addin1[] = {
+ 0xcb, 0xc8, 0x17, 0x95, 0x4c, 0x2f, 0x69, 0xcd, 0x63, 0x0f, 0xa8, 0x8d,
+ 0x36, 0x3f, 0x38, 0x78, 0xa5, 0x37, 0x62, 0xd3, 0xa9, 0x86, 0x25, 0xf1,
+ 0xba, 0xab, 0x9d, 0xa8, 0x39, 0x3e, 0x3e, 0x0b,
+};
+static const unsigned char kat2217_retbits[] = {
+ 0x59, 0xad, 0x55, 0x17, 0x21, 0xe3, 0x5f, 0x0a, 0xc2, 0xc3, 0x75, 0x67,
+ 0xd2, 0xd3, 0x13, 0x64, 0xfa, 0xe7, 0x39, 0x7f, 0x66, 0xe8, 0xa4, 0x54,
+ 0xe3, 0x27, 0x87, 0xe8, 0x6d, 0xf3, 0x0c, 0x26, 0x2d, 0xd6, 0xf0, 0xac,
+ 0x58, 0x3a, 0x5f, 0x88, 0xd5, 0x3d, 0x44, 0x4e, 0xf4, 0x64, 0xcf, 0x66,
+ 0x40, 0xf3, 0xd1, 0x6d, 0xa7, 0x36, 0xc0, 0x8e, 0x2f, 0x32, 0x8b, 0x53,
+ 0xee, 0x22, 0x84, 0xef,
+};
+static const struct drbg_kat_pr_false kat2217_t = {
+ 11, kat2217_entropyin, kat2217_nonce, kat2217_persstr,
+ kat2217_entropyinreseed, kat2217_addinreseed, kat2217_addin0,
+ kat2217_addin1, kat2217_retbits
+};
+static const struct drbg_kat kat2217 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2217_t
+};
+
+static const unsigned char kat2218_entropyin[] = {
+ 0x6b, 0x09, 0x8f, 0x31, 0x4b, 0x9f, 0x95, 0xc3, 0xa7, 0xbb, 0x25, 0x97,
+ 0x18, 0x2b, 0x30, 0x48, 0x3f, 0x21, 0x94, 0xfa, 0x4d, 0x21, 0x42, 0xb1,
+ 0x1d, 0x3f, 0x46, 0xcd, 0x94, 0xa0, 0xfe, 0xd4,
+};
+static const unsigned char kat2218_nonce[] = {0};
+static const unsigned char kat2218_persstr[] = {
+ 0x55, 0x36, 0xb0, 0xe3, 0x1d, 0xb7, 0x80, 0x14, 0x4a, 0xb7, 0xf5, 0xe6,
+ 0xc2, 0x25, 0x58, 0x84, 0xa8, 0x4b, 0x6d, 0xf9, 0x94, 0x77, 0x03, 0x99,
+ 0x39, 0xe2, 0x6c, 0x77, 0xbf, 0x28, 0x47, 0x0d,
+};
+static const unsigned char kat2218_entropyinreseed[] = {
+ 0xe0, 0xf9, 0xb6, 0x31, 0x75, 0xc7, 0x93, 0x09, 0x26, 0x9d, 0xd1, 0x3c,
+ 0x13, 0x42, 0x34, 0x00, 0xfa, 0xde, 0xc2, 0xb9, 0xa4, 0xed, 0x20, 0xff,
+ 0x1c, 0x71, 0xd6, 0x42, 0xb9, 0x5b, 0xcd, 0xe8,
+};
+static const unsigned char kat2218_addinreseed[] = {
+ 0x22, 0x74, 0x37, 0x31, 0x3d, 0xc0, 0x93, 0x13, 0x82, 0x80, 0x4f, 0x8a,
+ 0x2d, 0x7c, 0x14, 0xc8, 0x47, 0xe1, 0xcc, 0x4c, 0xe2, 0x8c, 0x5a, 0x58,
+ 0x9e, 0xc8, 0xe5, 0x1d, 0x3a, 0x81, 0x3c, 0x33,
+};
+static const unsigned char kat2218_addin0[] = {
+ 0x09, 0xc7, 0xee, 0xd8, 0xf0, 0xb6, 0x77, 0x5f, 0x02, 0x77, 0x45, 0xab,
+ 0x1a, 0x6f, 0x9f, 0xcd, 0x6a, 0x26, 0x69, 0x1f, 0xbb, 0xd4, 0x77, 0xff,
+ 0x23, 0xe0, 0x64, 0x43, 0xa6, 0x39, 0x14, 0xa4,
+};
+static const unsigned char kat2218_addin1[] = {
+ 0x70, 0xac, 0xab, 0x5c, 0xab, 0x1c, 0x70, 0x58, 0xc3, 0x77, 0xbf, 0x2b,
+ 0xae, 0xf6, 0x6d, 0x52, 0x6a, 0x77, 0xd3, 0x75, 0x16, 0xb8, 0x49, 0xe5,
+ 0x2f, 0x22, 0xc1, 0x04, 0x5d, 0x3f, 0x8a, 0x5d,
+};
+static const unsigned char kat2218_retbits[] = {
+ 0x74, 0x29, 0x9d, 0xe3, 0x5f, 0xfa, 0xb5, 0x51, 0x13, 0x2e, 0xe3, 0xa5,
+ 0x7b, 0x2d, 0x19, 0x68, 0xc7, 0xb2, 0x1d, 0xf9, 0x68, 0xfe, 0x21, 0xec,
+ 0x69, 0x7b, 0x93, 0x6c, 0x61, 0xad, 0x4a, 0x36, 0xff, 0x46, 0x2f, 0x75,
+ 0x15, 0x59, 0x4d, 0x3d, 0xb7, 0x7c, 0xc9, 0xaf, 0x73, 0x50, 0xed, 0xc2,
+ 0x57, 0x24, 0xa7, 0x54, 0xa6, 0x9d, 0xcb, 0x94, 0x72, 0xdf, 0x5b, 0x6f,
+ 0x08, 0x68, 0xf5, 0x5d,
+};
+static const struct drbg_kat_pr_false kat2218_t = {
+ 12, kat2218_entropyin, kat2218_nonce, kat2218_persstr,
+ kat2218_entropyinreseed, kat2218_addinreseed, kat2218_addin0,
+ kat2218_addin1, kat2218_retbits
+};
+static const struct drbg_kat kat2218 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2218_t
+};
+
+static const unsigned char kat2219_entropyin[] = {
+ 0x37, 0x6d, 0xf6, 0x9a, 0xc3, 0xdf, 0x60, 0x36, 0x7e, 0xaa, 0xe9, 0x14,
+ 0xa5, 0xbb, 0x60, 0x0f, 0x6a, 0x3d, 0x2d, 0x18, 0x85, 0xea, 0xb4, 0xf8,
+ 0xba, 0x9d, 0x87, 0x27, 0xd0, 0x99, 0xf1, 0xd9,
+};
+static const unsigned char kat2219_nonce[] = {0};
+static const unsigned char kat2219_persstr[] = {
+ 0xb7, 0xbe, 0x85, 0xc0, 0xb4, 0x6f, 0x0f, 0x75, 0x05, 0x02, 0xc0, 0x3d,
+ 0xbb, 0x82, 0x4c, 0xf5, 0x08, 0x2a, 0x29, 0x7e, 0x6e, 0x76, 0x32, 0xc9,
+ 0x45, 0x4f, 0x02, 0x9b, 0x4b, 0xac, 0x5b, 0x5a,
+};
+static const unsigned char kat2219_entropyinreseed[] = {
+ 0xf5, 0x61, 0x9d, 0xae, 0xf4, 0xdb, 0xf6, 0x38, 0x20, 0xe6, 0x7f, 0xbf,
+ 0xfe, 0x7b, 0x57, 0x7d, 0x10, 0x69, 0x99, 0x3f, 0x91, 0xfb, 0x07, 0xe5,
+ 0x39, 0x95, 0x54, 0xd7, 0x3f, 0xe1, 0x92, 0xa1,
+};
+static const unsigned char kat2219_addinreseed[] = {
+ 0x08, 0x86, 0x99, 0xed, 0x19, 0x58, 0xfa, 0x6c, 0x33, 0x19, 0xe6, 0xf6,
+ 0xd3, 0x5e, 0xa4, 0x2c, 0xc1, 0x4b, 0xa6, 0x59, 0x6c, 0x48, 0x47, 0x21,
+ 0x6a, 0x74, 0xa7, 0xf9, 0xcb, 0xd3, 0x1e, 0x35,
+};
+static const unsigned char kat2219_addin0[] = {
+ 0x50, 0x73, 0xe2, 0xe2, 0x45, 0x0b, 0x18, 0x2f, 0xb4, 0x29, 0x01, 0x28,
+ 0x08, 0x26, 0xf3, 0x4b, 0x0a, 0xeb, 0x1b, 0x0d, 0xcf, 0x26, 0xbc, 0xde,
+ 0x62, 0xb1, 0xd0, 0x4f, 0x8b, 0x96, 0x58, 0x99,
+};
+static const unsigned char kat2219_addin1[] = {
+ 0xbf, 0x58, 0xe8, 0x6f, 0x9d, 0xfa, 0x0c, 0x0a, 0x2c, 0xd4, 0x41, 0xc6,
+ 0x64, 0x0f, 0x8f, 0x46, 0xa2, 0x72, 0xa5, 0x05, 0x13, 0x26, 0x6a, 0xb2,
+ 0x90, 0xe2, 0x4c, 0x4f, 0x21, 0xc6, 0xf6, 0x38,
+};
+static const unsigned char kat2219_retbits[] = {
+ 0xf8, 0x0f, 0x79, 0xe6, 0x9f, 0x99, 0xf6, 0xd7, 0xcd, 0x24, 0x84, 0xc6,
+ 0x79, 0xa9, 0x74, 0xbd, 0xfa, 0x23, 0x64, 0x21, 0x8e, 0x1b, 0xf6, 0x44,
+ 0x53, 0x22, 0x2b, 0xc8, 0xb5, 0xb4, 0xea, 0x33, 0x9b, 0xd0, 0x56, 0x97,
+ 0xb4, 0x61, 0xcc, 0x49, 0xed, 0x33, 0x84, 0x74, 0x51, 0xe8, 0x76, 0x6f,
+ 0xf7, 0x6a, 0x87, 0x14, 0xcc, 0x92, 0x56, 0x18, 0x8e, 0x59, 0x6f, 0xf4,
+ 0x4e, 0xcc, 0xab, 0x10,
+};
+static const struct drbg_kat_pr_false kat2219_t = {
+ 13, kat2219_entropyin, kat2219_nonce, kat2219_persstr,
+ kat2219_entropyinreseed, kat2219_addinreseed, kat2219_addin0,
+ kat2219_addin1, kat2219_retbits
+};
+static const struct drbg_kat kat2219 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2219_t
+};
+
+static const unsigned char kat2220_entropyin[] = {
+ 0x25, 0x3d, 0xe0, 0xa4, 0xf5, 0x52, 0xf2, 0x7e, 0x2a, 0xe6, 0x15, 0x34,
+ 0x3d, 0xdc, 0xf8, 0x41, 0xdd, 0x28, 0x00, 0x30, 0x84, 0xb0, 0x7a, 0x63,
+ 0x5d, 0xd7, 0x19, 0x5a, 0x33, 0x6a, 0x20, 0x52,
+};
+static const unsigned char kat2220_nonce[] = {0};
+static const unsigned char kat2220_persstr[] = {
+ 0xbd, 0x13, 0xb2, 0x6e, 0xac, 0x18, 0x41, 0xee, 0x90, 0xdc, 0x84, 0xa4,
+ 0xc4, 0x56, 0xe3, 0x97, 0x5a, 0x3f, 0xf8, 0x17, 0x8f, 0xa5, 0x4d, 0x9d,
+ 0x59, 0x1c, 0x1c, 0x68, 0x1d, 0x49, 0x0c, 0x35,
+};
+static const unsigned char kat2220_entropyinreseed[] = {
+ 0x66, 0x00, 0xbc, 0x9f, 0x59, 0xae, 0x88, 0x08, 0xb2, 0x82, 0xb6, 0xe4,
+ 0x8d, 0x7b, 0xbc, 0x0d, 0x11, 0x12, 0x0b, 0xb4, 0xd7, 0x3a, 0xe6, 0x06,
+ 0x8f, 0x01, 0xdf, 0xe0, 0xc2, 0x19, 0x62, 0x76,
+};
+static const unsigned char kat2220_addinreseed[] = {
+ 0x0d, 0xc9, 0x35, 0x30, 0x3e, 0xef, 0xf1, 0x69, 0x39, 0xab, 0x83, 0xd4,
+ 0x60, 0x1e, 0x77, 0x28, 0x99, 0x3a, 0x7e, 0xdb, 0x57, 0xe6, 0x04, 0x74,
+ 0xf8, 0xa1, 0xa5, 0xfe, 0xef, 0x9f, 0x41, 0x40,
+};
+static const unsigned char kat2220_addin0[] = {
+ 0x15, 0x50, 0xac, 0x6d, 0xa1, 0x74, 0x28, 0x34, 0xc7, 0x05, 0xb4, 0xda,
+ 0xd6, 0x1c, 0x37, 0xfc, 0x33, 0xe7, 0xd7, 0x86, 0xf7, 0x6b, 0x55, 0x3a,
+ 0xb3, 0x24, 0xbf, 0x54, 0x3f, 0x8a, 0x1b, 0x17,
+};
+static const unsigned char kat2220_addin1[] = {
+ 0x77, 0xef, 0x7c, 0x3f, 0x81, 0x9d, 0xe7, 0x8c, 0x24, 0x33, 0x51, 0xa7,
+ 0x1b, 0xbb, 0x46, 0x09, 0x36, 0x06, 0x47, 0x38, 0xfc, 0xb7, 0x5a, 0xcf,
+ 0xc2, 0x14, 0xc8, 0x84, 0xff, 0x17, 0x23, 0x11,
+};
+static const unsigned char kat2220_retbits[] = {
+ 0x10, 0x30, 0xbf, 0xc7, 0xcc, 0x64, 0x5d, 0x6e, 0x2d, 0x6b, 0x2a, 0x3f,
+ 0x2e, 0x97, 0x97, 0x9a, 0xb9, 0x99, 0xd7, 0x02, 0x52, 0xc1, 0x55, 0x04,
+ 0xd7, 0x1d, 0x02, 0xc5, 0x84, 0x2c, 0x34, 0xcf, 0x63, 0xb9, 0x4c, 0x51,
+ 0x2e, 0x16, 0x27, 0x26, 0xac, 0xfb, 0x14, 0x92, 0xcc, 0xb5, 0x25, 0xea,
+ 0x56, 0xe4, 0xca, 0x1b, 0x54, 0xda, 0xaa, 0xc2, 0x28, 0x4e, 0x55, 0x8c,
+ 0xb4, 0x93, 0x69, 0x31,
+};
+static const struct drbg_kat_pr_false kat2220_t = {
+ 14, kat2220_entropyin, kat2220_nonce, kat2220_persstr,
+ kat2220_entropyinreseed, kat2220_addinreseed, kat2220_addin0,
+ kat2220_addin1, kat2220_retbits
+};
+static const struct drbg_kat kat2220 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2220_t
+};
+
+static const unsigned char kat2221_entropyin[] = {
+ 0xb2, 0xb3, 0x29, 0x83, 0x06, 0x47, 0x1b, 0xfc, 0xae, 0x61, 0x43, 0x8a,
+ 0x3a, 0x79, 0xe2, 0x35, 0x5e, 0xfa, 0x0b, 0x6e, 0xde, 0x4c, 0xbc, 0xd3,
+ 0xe6, 0x6d, 0xe5, 0x14, 0x0b, 0x3a, 0xe6, 0x80,
+};
+static const unsigned char kat2221_nonce[] = {0};
+static const unsigned char kat2221_persstr[] = {0};
+static const unsigned char kat2221_entropyinreseed[] = {
+ 0x26, 0xf0, 0xd1, 0xe4, 0x4b, 0xe5, 0x75, 0xee, 0x6f, 0x3e, 0xda, 0x89,
+ 0xc1, 0xe7, 0xe4, 0xfb, 0xd1, 0x42, 0x8f, 0x88, 0x52, 0x60, 0x48, 0x71,
+ 0xc7, 0xa4, 0xf4, 0xc7, 0x07, 0xa3, 0x93, 0x28,
+};
+static const unsigned char kat2221_addinreseed[] = {0};
+static const unsigned char kat2221_addin0[] = {0};
+static const unsigned char kat2221_addin1[] = {0};
+static const unsigned char kat2221_retbits[] = {
+ 0xb7, 0x1b, 0x6d, 0x73, 0x22, 0x45, 0x3a, 0x61, 0x2c, 0x34, 0xa9, 0x1c,
+ 0x1e, 0x5c, 0x3f, 0x8c, 0x30, 0x48, 0x6a, 0x69, 0x2b, 0x1a, 0xd1, 0x3a,
+ 0x4c, 0x08, 0xca, 0xcc, 0xd1, 0x23, 0xa6, 0x39, 0xfd, 0x2e, 0x0a, 0x7c,
+ 0x38, 0x9c, 0xfa, 0x1a, 0x97, 0xcb, 0x78, 0xb4, 0x38, 0xdf, 0xf5, 0x7b,
+ 0x0b, 0x5e, 0xc4, 0xd5, 0x69, 0xa8, 0xb2, 0x81, 0x0a, 0x15, 0xf8, 0x5c,
+ 0x8c, 0x92, 0x26, 0xbf,
+};
+static const struct drbg_kat_pr_false kat2221_t = {
+ 0, kat2221_entropyin, kat2221_nonce, kat2221_persstr,
+ kat2221_entropyinreseed, kat2221_addinreseed, kat2221_addin0,
+ kat2221_addin1, kat2221_retbits
+};
+static const struct drbg_kat kat2221 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2221_t
+};
+
+static const unsigned char kat2222_entropyin[] = {
+ 0x66, 0xf4, 0x1d, 0xc7, 0x91, 0xe1, 0x55, 0x12, 0x7b, 0x7f, 0xc6, 0x80,
+ 0x84, 0x20, 0x21, 0x29, 0x6f, 0xfd, 0x9f, 0x5e, 0x11, 0xd1, 0x09, 0x4e,
+ 0xb4, 0x46, 0xaf, 0x24, 0x37, 0x5f, 0x7f, 0x79,
+};
+static const unsigned char kat2222_nonce[] = {0};
+static const unsigned char kat2222_persstr[] = {0};
+static const unsigned char kat2222_entropyinreseed[] = {
+ 0x04, 0x4e, 0xb1, 0x2d, 0xb0, 0x5c, 0x2f, 0x45, 0x74, 0xb9, 0xb1, 0x62,
+ 0x8c, 0x65, 0x89, 0x17, 0x70, 0x72, 0xe8, 0x60, 0x7a, 0xfe, 0xd2, 0x7e,
+ 0x4a, 0x8f, 0xaa, 0x1a, 0xdb, 0xdd, 0x96, 0xf0,
+};
+static const unsigned char kat2222_addinreseed[] = {0};
+static const unsigned char kat2222_addin0[] = {0};
+static const unsigned char kat2222_addin1[] = {0};
+static const unsigned char kat2222_retbits[] = {
+ 0xf2, 0x72, 0x68, 0x2d, 0x39, 0x2f, 0xe7, 0x07, 0xff, 0x8f, 0xaa, 0xe4,
+ 0x71, 0xb7, 0xfa, 0xb6, 0x85, 0x14, 0x60, 0xed, 0xeb, 0x20, 0x7d, 0x9e,
+ 0x7d, 0xb9, 0x6d, 0x2c, 0x27, 0xb6, 0x6c, 0x5c, 0x45, 0xf9, 0x8a, 0x44,
+ 0x5d, 0xef, 0xd0, 0x89, 0x5e, 0x8c, 0x3f, 0x47, 0xfe, 0x85, 0xf8, 0xde,
+ 0x3c, 0x62, 0xd4, 0x02, 0x8f, 0x4f, 0xcc, 0x89, 0x1e, 0x28, 0x8f, 0xcd,
+ 0x78, 0x0f, 0x21, 0x2d,
+};
+static const struct drbg_kat_pr_false kat2222_t = {
+ 1, kat2222_entropyin, kat2222_nonce, kat2222_persstr,
+ kat2222_entropyinreseed, kat2222_addinreseed, kat2222_addin0,
+ kat2222_addin1, kat2222_retbits
+};
+static const struct drbg_kat kat2222 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2222_t
+};
+
+static const unsigned char kat2223_entropyin[] = {
+ 0xc6, 0x50, 0x6d, 0xd8, 0xb9, 0xb7, 0x4c, 0xa1, 0x6b, 0xd4, 0x11, 0x9b,
+ 0x69, 0x0f, 0xc3, 0x0d, 0xa5, 0xfc, 0xed, 0x3b, 0x8d, 0x31, 0x5e, 0x95,
+ 0x7b, 0x12, 0xf1, 0xcd, 0x9b, 0xf9, 0x5f, 0x94,
+};
+static const unsigned char kat2223_nonce[] = {0};
+static const unsigned char kat2223_persstr[] = {0};
+static const unsigned char kat2223_entropyinreseed[] = {
+ 0x0c, 0x80, 0xff, 0x54, 0xc4, 0x9a, 0xb8, 0x97, 0x82, 0x71, 0x6b, 0x1d,
+ 0x51, 0x5d, 0xa2, 0x4c, 0x30, 0x31, 0xf3, 0xef, 0x71, 0x79, 0xe5, 0x99,
+ 0xed, 0xc8, 0xd8, 0x65, 0xa0, 0x3c, 0x79, 0x9f,
+};
+static const unsigned char kat2223_addinreseed[] = {0};
+static const unsigned char kat2223_addin0[] = {0};
+static const unsigned char kat2223_addin1[] = {0};
+static const unsigned char kat2223_retbits[] = {
+ 0xe1, 0x69, 0x6c, 0xdb, 0x47, 0x6b, 0x24, 0xb5, 0x13, 0xc1, 0xe8, 0x7e,
+ 0x68, 0xc7, 0x4b, 0x1f, 0x38, 0x42, 0xf4, 0x29, 0x4a, 0xbf, 0x2a, 0x1a,
+ 0x81, 0x00, 0x73, 0xa6, 0xa5, 0xc8, 0xc4, 0x39, 0x93, 0xa5, 0x65, 0x07,
+ 0x44, 0x2d, 0xb3, 0x6a, 0x38, 0x22, 0x8b, 0x9c, 0x25, 0x25, 0x29, 0x93,
+ 0xdd, 0x88, 0x65, 0x09, 0x6f, 0xed, 0xb5, 0x85, 0x89, 0x24, 0xf0, 0x79,
+ 0xd5, 0x6c, 0x30, 0xd1,
+};
+static const struct drbg_kat_pr_false kat2223_t = {
+ 2, kat2223_entropyin, kat2223_nonce, kat2223_persstr,
+ kat2223_entropyinreseed, kat2223_addinreseed, kat2223_addin0,
+ kat2223_addin1, kat2223_retbits
+};
+static const struct drbg_kat kat2223 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2223_t
+};
+
+static const unsigned char kat2224_entropyin[] = {
+ 0x6b, 0x2e, 0x86, 0xd5, 0xfc, 0x54, 0x69, 0xda, 0x4e, 0xd3, 0x32, 0xf4,
+ 0xd1, 0x23, 0xa6, 0x11, 0xf6, 0x0d, 0x96, 0x49, 0x1c, 0x0a, 0x45, 0x08,
+ 0x81, 0x04, 0x76, 0x87, 0x12, 0x31, 0x43, 0x77,
+};
+static const unsigned char kat2224_nonce[] = {0};
+static const unsigned char kat2224_persstr[] = {0};
+static const unsigned char kat2224_entropyinreseed[] = {
+ 0x76, 0x2c, 0x53, 0x60, 0x8f, 0x07, 0x5b, 0xa1, 0x92, 0x63, 0x37, 0xa6,
+ 0x1c, 0x35, 0xdb, 0xfe, 0x02, 0x44, 0x27, 0xd2, 0x90, 0x26, 0x07, 0x85,
+ 0xb4, 0x3b, 0x39, 0xf3, 0x2d, 0x28, 0x2f, 0xc1,
+};
+static const unsigned char kat2224_addinreseed[] = {0};
+static const unsigned char kat2224_addin0[] = {0};
+static const unsigned char kat2224_addin1[] = {0};
+static const unsigned char kat2224_retbits[] = {
+ 0x7a, 0x6e, 0x19, 0x3c, 0xe1, 0xee, 0xb6, 0xa5, 0x43, 0xd2, 0xed, 0x0c,
+ 0x4d, 0xbb, 0xe4, 0x2e, 0x9b, 0x1a, 0xee, 0x2f, 0x3c, 0x99, 0x09, 0x16,
+ 0xe2, 0x13, 0xf0, 0x76, 0x13, 0x99, 0x46, 0x43, 0x01, 0xc2, 0x2e, 0x87,
+ 0x90, 0x7d, 0x3c, 0x1b, 0x20, 0xb1, 0x98, 0x72, 0x60, 0x15, 0x7d, 0xbc,
+ 0x66, 0xfb, 0x86, 0x0d, 0x68, 0x96, 0xad, 0xd9, 0xab, 0xd5, 0xed, 0x25,
+ 0x6c, 0x76, 0x35, 0x63,
+};
+static const struct drbg_kat_pr_false kat2224_t = {
+ 3, kat2224_entropyin, kat2224_nonce, kat2224_persstr,
+ kat2224_entropyinreseed, kat2224_addinreseed, kat2224_addin0,
+ kat2224_addin1, kat2224_retbits
+};
+static const struct drbg_kat kat2224 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2224_t
+};
+
+static const unsigned char kat2225_entropyin[] = {
+ 0x4f, 0xbe, 0xad, 0x74, 0x78, 0x2f, 0xdc, 0xd2, 0xb3, 0x31, 0x8c, 0x71,
+ 0xe7, 0x8a, 0xce, 0xb2, 0x3a, 0x4d, 0x03, 0x99, 0xfc, 0x5c, 0x03, 0x42,
+ 0x54, 0x5b, 0x99, 0x80, 0xdc, 0xd8, 0x5d, 0x53,
+};
+static const unsigned char kat2225_nonce[] = {0};
+static const unsigned char kat2225_persstr[] = {0};
+static const unsigned char kat2225_entropyinreseed[] = {
+ 0x53, 0xa4, 0x55, 0x12, 0x15, 0x96, 0xb4, 0x9d, 0xfa, 0x3a, 0x97, 0x93,
+ 0x2c, 0x71, 0x5f, 0x92, 0x6d, 0xe4, 0x0e, 0x6f, 0xc9, 0x30, 0xa8, 0xdd,
+ 0x57, 0x36, 0x15, 0x9c, 0x74, 0x93, 0x18, 0x9c,
+};
+static const unsigned char kat2225_addinreseed[] = {0};
+static const unsigned char kat2225_addin0[] = {0};
+static const unsigned char kat2225_addin1[] = {0};
+static const unsigned char kat2225_retbits[] = {
+ 0xc9, 0x12, 0xbf, 0xc9, 0x3b, 0x94, 0x78, 0xbf, 0x98, 0xf5, 0x4d, 0x58,
+ 0x54, 0xbb, 0x7d, 0x9f, 0x4e, 0xb5, 0xd4, 0x64, 0x89, 0x1c, 0xd0, 0xc5,
+ 0xe8, 0x4c, 0xbc, 0x4b, 0x44, 0x69, 0x5f, 0x74, 0x20, 0xbc, 0x21, 0xc6,
+ 0xfa, 0x7f, 0xb5, 0x7d, 0x9c, 0xbd, 0xc2, 0xe5, 0x8a, 0x35, 0xd0, 0x01,
+ 0xc5, 0x16, 0x29, 0x83, 0xae, 0x7f, 0x90, 0x35, 0xbd, 0x81, 0xdc, 0xd1,
+ 0xee, 0xc0, 0x99, 0x97,
+};
+static const struct drbg_kat_pr_false kat2225_t = {
+ 4, kat2225_entropyin, kat2225_nonce, kat2225_persstr,
+ kat2225_entropyinreseed, kat2225_addinreseed, kat2225_addin0,
+ kat2225_addin1, kat2225_retbits
+};
+static const struct drbg_kat kat2225 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2225_t
+};
+
+static const unsigned char kat2226_entropyin[] = {
+ 0x71, 0x1b, 0xf3, 0x4f, 0x33, 0x84, 0x4b, 0x11, 0x01, 0x69, 0x0a, 0xab,
+ 0x9a, 0x91, 0xcf, 0x42, 0xda, 0x10, 0xdc, 0x6f, 0xa2, 0x81, 0xbf, 0x06,
+ 0x50, 0xbc, 0x2b, 0x21, 0x27, 0x2c, 0x02, 0xf5,
+};
+static const unsigned char kat2226_nonce[] = {0};
+static const unsigned char kat2226_persstr[] = {0};
+static const unsigned char kat2226_entropyinreseed[] = {
+ 0x4c, 0x5a, 0x8a, 0xa8, 0x24, 0x21, 0xcd, 0x10, 0x1e, 0x53, 0x48, 0x13,
+ 0x76, 0x4b, 0x6c, 0x51, 0x4d, 0xe6, 0x30, 0x18, 0x26, 0xdd, 0xe3, 0xb9,
+ 0x21, 0x24, 0xb3, 0x35, 0xeb, 0xbf, 0x6f, 0x92,
+};
+static const unsigned char kat2226_addinreseed[] = {0};
+static const unsigned char kat2226_addin0[] = {0};
+static const unsigned char kat2226_addin1[] = {0};
+static const unsigned char kat2226_retbits[] = {
+ 0x60, 0x35, 0xa0, 0xff, 0x6b, 0x26, 0xd2, 0xb9, 0x38, 0x6e, 0x89, 0x3a,
+ 0x70, 0x4f, 0x20, 0x8b, 0x67, 0xd5, 0xb3, 0x55, 0x0d, 0xed, 0x60, 0x6c,
+ 0x6d, 0x5f, 0xdb, 0x3f, 0x61, 0x77, 0xf3, 0xa5, 0xd7, 0x0b, 0xf0, 0x84,
+ 0x4c, 0xef, 0x25, 0x2b, 0x3b, 0x38, 0xec, 0xc6, 0x83, 0xa8, 0x67, 0x0a,
+ 0x92, 0x35, 0x14, 0x31, 0x37, 0xd3, 0xe4, 0x45, 0x14, 0x59, 0x8c, 0x44,
+ 0x86, 0xeb, 0x73, 0x45,
+};
+static const struct drbg_kat_pr_false kat2226_t = {
+ 5, kat2226_entropyin, kat2226_nonce, kat2226_persstr,
+ kat2226_entropyinreseed, kat2226_addinreseed, kat2226_addin0,
+ kat2226_addin1, kat2226_retbits
+};
+static const struct drbg_kat kat2226 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2226_t
+};
+
+static const unsigned char kat2227_entropyin[] = {
+ 0x8c, 0x00, 0x6c, 0x19, 0xf2, 0xda, 0x7a, 0xe8, 0x82, 0x18, 0xfc, 0xd5,
+ 0x0d, 0x5c, 0x6d, 0x51, 0x02, 0x99, 0x2b, 0x47, 0x62, 0xb1, 0x47, 0x5e,
+ 0x12, 0x2a, 0x30, 0xed, 0x13, 0x29, 0x2d, 0x02,
+};
+static const unsigned char kat2227_nonce[] = {0};
+static const unsigned char kat2227_persstr[] = {0};
+static const unsigned char kat2227_entropyinreseed[] = {
+ 0x5c, 0xe9, 0x8d, 0x2a, 0x58, 0x2b, 0x95, 0xbd, 0xa2, 0x30, 0xb7, 0x48,
+ 0x2f, 0xf8, 0x00, 0xa8, 0x28, 0x91, 0xd6, 0xb1, 0xdf, 0x75, 0xfe, 0xce,
+ 0xca, 0xe5, 0xd7, 0x06, 0x7d, 0xdf, 0x5b, 0x46,
+};
+static const unsigned char kat2227_addinreseed[] = {0};
+static const unsigned char kat2227_addin0[] = {0};
+static const unsigned char kat2227_addin1[] = {0};
+static const unsigned char kat2227_retbits[] = {
+ 0x2a, 0x19, 0xd7, 0xb3, 0x58, 0x33, 0xea, 0xbf, 0xbc, 0x43, 0xcb, 0xc3,
+ 0xdd, 0xe1, 0x43, 0x92, 0xd8, 0x2f, 0x32, 0x83, 0xef, 0xbb, 0xd3, 0x3f,
+ 0x13, 0x4b, 0x32, 0x04, 0x04, 0x02, 0xc7, 0x13, 0x26, 0xcd, 0x31, 0xd3,
+ 0x7e, 0x25, 0x72, 0x2c, 0xe7, 0x3b, 0xf3, 0x64, 0x0e, 0x5e, 0x2b, 0x00,
+ 0xd7, 0xdd, 0x27, 0x8f, 0x28, 0xa0, 0xf4, 0xe4, 0x3f, 0x89, 0x35, 0x37,
+ 0x7c, 0xa1, 0xa6, 0x0b,
+};
+static const struct drbg_kat_pr_false kat2227_t = {
+ 6, kat2227_entropyin, kat2227_nonce, kat2227_persstr,
+ kat2227_entropyinreseed, kat2227_addinreseed, kat2227_addin0,
+ kat2227_addin1, kat2227_retbits
+};
+static const struct drbg_kat kat2227 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2227_t
+};
+
+static const unsigned char kat2228_entropyin[] = {
+ 0x9d, 0xee, 0xfa, 0x77, 0x93, 0x37, 0xef, 0x1f, 0xf7, 0xf4, 0x7c, 0x48,
+ 0x19, 0xd1, 0x75, 0x02, 0x4d, 0xf3, 0x49, 0xf8, 0xa5, 0xcf, 0xe8, 0x57,
+ 0xc9, 0xb5, 0xe8, 0x22, 0xd8, 0xda, 0xfc, 0x56,
+};
+static const unsigned char kat2228_nonce[] = {0};
+static const unsigned char kat2228_persstr[] = {0};
+static const unsigned char kat2228_entropyinreseed[] = {
+ 0x55, 0x8d, 0x79, 0xc8, 0x3d, 0x81, 0xd3, 0xfd, 0x07, 0xd6, 0xeb, 0x73,
+ 0x9a, 0xd3, 0x0e, 0x29, 0x83, 0x45, 0xbc, 0x4b, 0x90, 0x6d, 0x2f, 0x6f,
+ 0x87, 0xce, 0xeb, 0x79, 0x3a, 0xaa, 0xe8, 0xd6,
+};
+static const unsigned char kat2228_addinreseed[] = {0};
+static const unsigned char kat2228_addin0[] = {0};
+static const unsigned char kat2228_addin1[] = {0};
+static const unsigned char kat2228_retbits[] = {
+ 0x13, 0xda, 0x72, 0xe2, 0xa4, 0x8e, 0x58, 0x93, 0xae, 0x78, 0x64, 0x40,
+ 0x57, 0xf7, 0xd3, 0x44, 0xcf, 0x5b, 0x56, 0xcf, 0xc9, 0xc4, 0x9b, 0x7e,
+ 0x09, 0x79, 0xc5, 0x75, 0x35, 0x07, 0x18, 0x58, 0x8e, 0x73, 0xbd, 0x13,
+ 0x0e, 0xde, 0x3b, 0x84, 0x51, 0x31, 0x45, 0x2b, 0x82, 0x0e, 0x41, 0xe8,
+ 0xc9, 0x9b, 0xb7, 0xe5, 0x82, 0xe6, 0xe8, 0xa2, 0xe4, 0x52, 0xc0, 0x90,
+ 0x04, 0xad, 0xe4, 0x0d,
+};
+static const struct drbg_kat_pr_false kat2228_t = {
+ 7, kat2228_entropyin, kat2228_nonce, kat2228_persstr,
+ kat2228_entropyinreseed, kat2228_addinreseed, kat2228_addin0,
+ kat2228_addin1, kat2228_retbits
+};
+static const struct drbg_kat kat2228 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2228_t
+};
+
+static const unsigned char kat2229_entropyin[] = {
+ 0xb8, 0xd8, 0x2f, 0x15, 0xc3, 0xe0, 0xdf, 0x02, 0xd2, 0xdc, 0xd5, 0xa1,
+ 0x99, 0x5c, 0xbf, 0x47, 0x88, 0x45, 0x42, 0x6f, 0xf9, 0xe4, 0xfd, 0x7c,
+ 0xba, 0xc4, 0x94, 0xa2, 0xb7, 0x50, 0xa6, 0xdb,
+};
+static const unsigned char kat2229_nonce[] = {0};
+static const unsigned char kat2229_persstr[] = {0};
+static const unsigned char kat2229_entropyinreseed[] = {
+ 0xa3, 0x4c, 0xd6, 0x89, 0x58, 0x9e, 0x4f, 0x6f, 0x97, 0x35, 0x6f, 0x95,
+ 0xfc, 0xc8, 0xdd, 0xfd, 0x48, 0x40, 0x10, 0x43, 0xa6, 0xf0, 0xa0, 0xbb,
+ 0x4c, 0x83, 0x59, 0xca, 0x97, 0xe3, 0xe4, 0xca,
+};
+static const unsigned char kat2229_addinreseed[] = {0};
+static const unsigned char kat2229_addin0[] = {0};
+static const unsigned char kat2229_addin1[] = {0};
+static const unsigned char kat2229_retbits[] = {
+ 0x29, 0xc9, 0x08, 0x17, 0xb6, 0x5f, 0x08, 0xf9, 0x2b, 0xd5, 0x68, 0xcf,
+ 0x40, 0x55, 0x3d, 0x99, 0x8d, 0x0f, 0x45, 0x48, 0x27, 0x6d, 0xba, 0x08,
+ 0x9a, 0x02, 0x96, 0x25, 0x61, 0x9f, 0xc2, 0xaf, 0x85, 0xfb, 0x64, 0xd9,
+ 0x2a, 0x7c, 0x0c, 0x33, 0x37, 0xe5, 0x8d, 0x05, 0xc3, 0x4b, 0xfa, 0xe1,
+ 0xb9, 0x99, 0xd6, 0x2e, 0x50, 0x0c, 0xe7, 0x5c, 0xb3, 0x3d, 0xec, 0x5d,
+ 0xcb, 0x4d, 0x96, 0xc7,
+};
+static const struct drbg_kat_pr_false kat2229_t = {
+ 8, kat2229_entropyin, kat2229_nonce, kat2229_persstr,
+ kat2229_entropyinreseed, kat2229_addinreseed, kat2229_addin0,
+ kat2229_addin1, kat2229_retbits
+};
+static const struct drbg_kat kat2229 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2229_t
+};
+
+static const unsigned char kat2230_entropyin[] = {
+ 0x10, 0xd5, 0xd6, 0x38, 0xf7, 0x0d, 0x4b, 0x37, 0xc9, 0x1b, 0xe4, 0x4c,
+ 0x18, 0x21, 0x29, 0x26, 0x49, 0x57, 0x61, 0x01, 0x84, 0xcd, 0x9d, 0xe2,
+ 0x38, 0x74, 0x5b, 0x10, 0x57, 0x9a, 0x93, 0xde,
+};
+static const unsigned char kat2230_nonce[] = {0};
+static const unsigned char kat2230_persstr[] = {0};
+static const unsigned char kat2230_entropyinreseed[] = {
+ 0x36, 0x97, 0x34, 0x0c, 0x47, 0x83, 0x73, 0xa3, 0xb2, 0x29, 0x15, 0x7e,
+ 0x99, 0xdd, 0x95, 0x46, 0xfb, 0x0f, 0xd0, 0x37, 0x0b, 0x37, 0x39, 0x38,
+ 0x2d, 0x38, 0x49, 0x90, 0xc2, 0xb8, 0x5b, 0x5e,
+};
+static const unsigned char kat2230_addinreseed[] = {0};
+static const unsigned char kat2230_addin0[] = {0};
+static const unsigned char kat2230_addin1[] = {0};
+static const unsigned char kat2230_retbits[] = {
+ 0xa3, 0x1b, 0xba, 0x6f, 0x7b, 0x20, 0x3e, 0x05, 0x6f, 0xff, 0x45, 0x10,
+ 0x25, 0x06, 0x16, 0xc8, 0xd6, 0x7e, 0x0e, 0xb9, 0xac, 0x2d, 0x11, 0xd7,
+ 0xf4, 0x88, 0x88, 0x46, 0xc1, 0x97, 0x97, 0x1b, 0xdb, 0x8e, 0xdb, 0x2a,
+ 0xae, 0xda, 0x12, 0x02, 0x3c, 0x4a, 0x0d, 0x19, 0x9a, 0x89, 0x29, 0x14,
+ 0xef, 0x22, 0xaf, 0x69, 0x13, 0x89, 0xfe, 0x56, 0xe9, 0xac, 0xf3, 0x1f,
+ 0xb5, 0x8b, 0x63, 0xe6,
+};
+static const struct drbg_kat_pr_false kat2230_t = {
+ 9, kat2230_entropyin, kat2230_nonce, kat2230_persstr,
+ kat2230_entropyinreseed, kat2230_addinreseed, kat2230_addin0,
+ kat2230_addin1, kat2230_retbits
+};
+static const struct drbg_kat kat2230 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2230_t
+};
+
+static const unsigned char kat2231_entropyin[] = {
+ 0xe1, 0xf6, 0x77, 0x02, 0xec, 0x10, 0xc7, 0x5c, 0xa3, 0xe9, 0xd3, 0x08,
+ 0x16, 0xc4, 0x79, 0xbf, 0x4d, 0x04, 0xdb, 0xd1, 0xf6, 0x64, 0x73, 0x8b,
+ 0x21, 0xd5, 0x29, 0xe5, 0x46, 0x0e, 0x92, 0xdd,
+};
+static const unsigned char kat2231_nonce[] = {0};
+static const unsigned char kat2231_persstr[] = {0};
+static const unsigned char kat2231_entropyinreseed[] = {
+ 0x00, 0xc8, 0xac, 0x19, 0x71, 0x09, 0x6a, 0xe2, 0xa8, 0xd2, 0x88, 0xa9,
+ 0x62, 0xe5, 0xab, 0x33, 0x1e, 0xbd, 0x4e, 0xde, 0x7d, 0xd0, 0x72, 0x3b,
+ 0x0a, 0x92, 0xf9, 0x86, 0x9a, 0xb7, 0xea, 0x31,
+};
+static const unsigned char kat2231_addinreseed[] = {0};
+static const unsigned char kat2231_addin0[] = {0};
+static const unsigned char kat2231_addin1[] = {0};
+static const unsigned char kat2231_retbits[] = {
+ 0xa1, 0x58, 0x0a, 0x82, 0xcd, 0xc0, 0x86, 0x11, 0xf8, 0x6b, 0x0f, 0x1b,
+ 0xe4, 0x88, 0x10, 0xe3, 0x2f, 0x08, 0x48, 0x28, 0xe6, 0x15, 0x6c, 0xde,
+ 0x1a, 0x2b, 0x20, 0x4b, 0x5d, 0x30, 0x63, 0x6f, 0x1f, 0x06, 0x32, 0x4e,
+ 0x21, 0x5d, 0x1c, 0x0d, 0xe8, 0x8d, 0x60, 0x34, 0xa8, 0xe7, 0x36, 0x9e,
+ 0xa8, 0x45, 0xf8, 0xd4, 0xaf, 0xcb, 0xe9, 0x3b, 0xb2, 0x47, 0x0d, 0xf1,
+ 0x2a, 0x99, 0x3f, 0xe3,
+};
+static const struct drbg_kat_pr_false kat2231_t = {
+ 10, kat2231_entropyin, kat2231_nonce, kat2231_persstr,
+ kat2231_entropyinreseed, kat2231_addinreseed, kat2231_addin0,
+ kat2231_addin1, kat2231_retbits
+};
+static const struct drbg_kat kat2231 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2231_t
+};
+
+static const unsigned char kat2232_entropyin[] = {
+ 0xc9, 0x6d, 0xa7, 0x20, 0x4d, 0xf6, 0x93, 0x47, 0xb9, 0x1d, 0xec, 0x74,
+ 0x3d, 0xcb, 0xc8, 0x6c, 0xa6, 0x69, 0x0e, 0xba, 0x81, 0x93, 0xd1, 0x43,
+ 0x4b, 0x1b, 0x87, 0xc4, 0xaf, 0x03, 0xcc, 0x1d,
+};
+static const unsigned char kat2232_nonce[] = {0};
+static const unsigned char kat2232_persstr[] = {0};
+static const unsigned char kat2232_entropyinreseed[] = {
+ 0x42, 0x96, 0x74, 0xcb, 0x12, 0xe3, 0x55, 0x88, 0x4c, 0x33, 0xf2, 0x9b,
+ 0x46, 0xe2, 0x57, 0xf0, 0xfb, 0x0c, 0x38, 0xfa, 0xc9, 0x03, 0x9c, 0x0f,
+ 0xfc, 0x2a, 0x77, 0xb2, 0x9a, 0xcd, 0xf1, 0xc6,
+};
+static const unsigned char kat2232_addinreseed[] = {0};
+static const unsigned char kat2232_addin0[] = {0};
+static const unsigned char kat2232_addin1[] = {0};
+static const unsigned char kat2232_retbits[] = {
+ 0x28, 0x6f, 0x17, 0x37, 0x72, 0xd9, 0x42, 0x3e, 0x8a, 0x49, 0xa2, 0xa6,
+ 0x77, 0x36, 0x6f, 0xfe, 0x21, 0x25, 0xe1, 0x16, 0x64, 0x6e, 0x79, 0x9d,
+ 0x1c, 0x37, 0x7b, 0x33, 0x0f, 0x5a, 0x17, 0xb8, 0x2a, 0xdb, 0x65, 0x2b,
+ 0xa9, 0xf1, 0x4a, 0x57, 0x0d, 0x3c, 0xd3, 0xb5, 0xe2, 0xfb, 0xb8, 0xdf,
+ 0x03, 0x11, 0x9d, 0xac, 0x21, 0x9d, 0x87, 0x2b, 0x11, 0xe7, 0x50, 0xfd,
+ 0xb3, 0x26, 0xa6, 0x2d,
+};
+static const struct drbg_kat_pr_false kat2232_t = {
+ 11, kat2232_entropyin, kat2232_nonce, kat2232_persstr,
+ kat2232_entropyinreseed, kat2232_addinreseed, kat2232_addin0,
+ kat2232_addin1, kat2232_retbits
+};
+static const struct drbg_kat kat2232 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2232_t
+};
+
+static const unsigned char kat2233_entropyin[] = {
+ 0x5d, 0x31, 0xf8, 0x1a, 0x37, 0xc9, 0xb5, 0xd8, 0x4b, 0x87, 0x6d, 0x8c,
+ 0x38, 0x25, 0xb0, 0x0e, 0xdc, 0x9f, 0x4a, 0x51, 0xfe, 0x82, 0x14, 0x1d,
+ 0xdc, 0x58, 0xb6, 0x5d, 0x5f, 0x9a, 0x37, 0xcd,
+};
+static const unsigned char kat2233_nonce[] = {0};
+static const unsigned char kat2233_persstr[] = {0};
+static const unsigned char kat2233_entropyinreseed[] = {
+ 0x41, 0xda, 0x02, 0x30, 0xbb, 0x94, 0xf2, 0x60, 0x14, 0x47, 0xe4, 0x90,
+ 0xb0, 0x22, 0x0e, 0x7a, 0x1f, 0x4b, 0x2c, 0x42, 0x0e, 0xc6, 0xde, 0x0d,
+ 0x67, 0x5f, 0x63, 0x43, 0xf3, 0x4f, 0x1b, 0x6d,
+};
+static const unsigned char kat2233_addinreseed[] = {0};
+static const unsigned char kat2233_addin0[] = {0};
+static const unsigned char kat2233_addin1[] = {0};
+static const unsigned char kat2233_retbits[] = {
+ 0xb6, 0x18, 0xaf, 0xef, 0x11, 0x32, 0x93, 0x5a, 0xe9, 0xed, 0x83, 0xe1,
+ 0x3c, 0xc7, 0x07, 0x83, 0x32, 0x19, 0xff, 0xbd, 0x88, 0x5e, 0xd7, 0xaa,
+ 0x27, 0x9b, 0x6d, 0xf4, 0xef, 0x62, 0x86, 0x4b, 0x3f, 0xa3, 0xcc, 0x7e,
+ 0xcb, 0xe7, 0xd7, 0xe1, 0xf3, 0xb0, 0xd5, 0x35, 0x47, 0x06, 0x97, 0x3a,
+ 0x85, 0x94, 0xe4, 0x12, 0x43, 0x57, 0xca, 0xf3, 0x1f, 0xfc, 0x1d, 0x04,
+ 0xd4, 0x9d, 0xf6, 0x9b,
+};
+static const struct drbg_kat_pr_false kat2233_t = {
+ 12, kat2233_entropyin, kat2233_nonce, kat2233_persstr,
+ kat2233_entropyinreseed, kat2233_addinreseed, kat2233_addin0,
+ kat2233_addin1, kat2233_retbits
+};
+static const struct drbg_kat kat2233 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2233_t
+};
+
+static const unsigned char kat2234_entropyin[] = {
+ 0xc5, 0x0c, 0xea, 0xce, 0x05, 0xb9, 0xaa, 0xc3, 0x40, 0x7c, 0x91, 0xfc,
+ 0x40, 0x1e, 0x17, 0x78, 0xd2, 0xd7, 0xaa, 0x44, 0xb7, 0xa4, 0x2a, 0xf6,
+ 0x77, 0x4f, 0xd8, 0x0a, 0x13, 0x9b, 0x4e, 0x3c,
+};
+static const unsigned char kat2234_nonce[] = {0};
+static const unsigned char kat2234_persstr[] = {0};
+static const unsigned char kat2234_entropyinreseed[] = {
+ 0x15, 0xfe, 0x0d, 0xba, 0x96, 0x7b, 0xe9, 0xc7, 0x66, 0x87, 0xc8, 0x2d,
+ 0x74, 0xb0, 0xa0, 0x18, 0xcd, 0x96, 0xa8, 0x1c, 0xfb, 0xd0, 0x2e, 0x60,
+ 0x0f, 0x99, 0xf1, 0xd3, 0xe9, 0x65, 0xfa, 0xe3,
+};
+static const unsigned char kat2234_addinreseed[] = {0};
+static const unsigned char kat2234_addin0[] = {0};
+static const unsigned char kat2234_addin1[] = {0};
+static const unsigned char kat2234_retbits[] = {
+ 0xc0, 0xd8, 0x0e, 0x37, 0xd2, 0x02, 0x28, 0xb9, 0xe0, 0x7b, 0xa8, 0xda,
+ 0x21, 0x78, 0xbf, 0x18, 0xea, 0x8d, 0x49, 0x7c, 0xda, 0xe2, 0x7a, 0xb3,
+ 0x7d, 0x17, 0xeb, 0xf9, 0xba, 0xee, 0x9a, 0x4b, 0x88, 0x95, 0x33, 0x01,
+ 0xc3, 0x64, 0x2d, 0xe5, 0x96, 0x5a, 0x6c, 0xa7, 0xf9, 0x0e, 0x9f, 0x48,
+ 0xf8, 0xe6, 0x2e, 0x33, 0x8c, 0x77, 0xeb, 0x85, 0x9c, 0x69, 0x60, 0x88,
+ 0x67, 0x9f, 0xb0, 0xa4,
+};
+static const struct drbg_kat_pr_false kat2234_t = {
+ 13, kat2234_entropyin, kat2234_nonce, kat2234_persstr,
+ kat2234_entropyinreseed, kat2234_addinreseed, kat2234_addin0,
+ kat2234_addin1, kat2234_retbits
+};
+static const struct drbg_kat kat2234 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2234_t
+};
+
+static const unsigned char kat2235_entropyin[] = {
+ 0xac, 0x56, 0x68, 0xac, 0x05, 0x4f, 0x73, 0x2d, 0x2b, 0xcd, 0x88, 0x56,
+ 0x16, 0x42, 0xc5, 0xa7, 0xca, 0x98, 0xc6, 0x8e, 0x34, 0x1c, 0xf0, 0xcf,
+ 0x18, 0x87, 0x3f, 0xea, 0x93, 0xef, 0x33, 0xfe,
+};
+static const unsigned char kat2235_nonce[] = {0};
+static const unsigned char kat2235_persstr[] = {0};
+static const unsigned char kat2235_entropyinreseed[] = {
+ 0x4a, 0x4d, 0x08, 0x8b, 0xeb, 0x98, 0x43, 0xe4, 0x62, 0x2c, 0xdb, 0x0c,
+ 0x5a, 0x68, 0x51, 0x58, 0x7f, 0x2b, 0x47, 0x2d, 0xc5, 0xd7, 0x34, 0x21,
+ 0x14, 0x09, 0xba, 0xce, 0xc7, 0xb2, 0xac, 0x06,
+};
+static const unsigned char kat2235_addinreseed[] = {0};
+static const unsigned char kat2235_addin0[] = {0};
+static const unsigned char kat2235_addin1[] = {0};
+static const unsigned char kat2235_retbits[] = {
+ 0xb2, 0x01, 0x3a, 0x36, 0x3f, 0x3e, 0xe0, 0x1a, 0xb8, 0x57, 0x3f, 0x3e,
+ 0x3e, 0xed, 0x32, 0x28, 0x51, 0x08, 0xc3, 0xed, 0x3b, 0xf2, 0x31, 0xc0,
+ 0x66, 0x17, 0x6e, 0xd9, 0x01, 0xe4, 0xd6, 0xff, 0xaa, 0xf0, 0xcf, 0xd1,
+ 0x2d, 0x63, 0xd7, 0xc1, 0x9f, 0x6c, 0x46, 0x0b, 0xaf, 0x43, 0x4a, 0x1d,
+ 0x6a, 0x55, 0x2c, 0x62, 0x27, 0x4b, 0xcb, 0x74, 0x69, 0xf7, 0x00, 0x9c,
+ 0x0b, 0xea, 0xb9, 0x72,
+};
+static const struct drbg_kat_pr_false kat2235_t = {
+ 14, kat2235_entropyin, kat2235_nonce, kat2235_persstr,
+ kat2235_entropyinreseed, kat2235_addinreseed, kat2235_addin0,
+ kat2235_addin1, kat2235_retbits
+};
+static const struct drbg_kat kat2235 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2235_t
+};
+
+static const unsigned char kat2236_entropyin[] = {
+ 0xf8, 0x17, 0xed, 0xc3, 0x35, 0x37, 0xaf, 0x62, 0xb7, 0xe8, 0xc0, 0x87,
+ 0x45, 0xa5, 0x9a, 0xb0, 0x45, 0xa4, 0x99, 0x1f, 0x64, 0x89, 0xed, 0x48,
+ 0x16, 0x8b, 0xad, 0x05, 0x5a, 0x70, 0x42, 0x4b,
+};
+static const unsigned char kat2236_nonce[] = {0};
+static const unsigned char kat2236_persstr[] = {0};
+static const unsigned char kat2236_entropyinreseed[] = {
+ 0xd5, 0x2b, 0xaa, 0x36, 0x24, 0xc2, 0x63, 0x30, 0x4c, 0x09, 0x6a, 0x48,
+ 0x35, 0x6f, 0x06, 0x55, 0x19, 0xc7, 0xa7, 0x47, 0x08, 0x91, 0xf6, 0xce,
+ 0x3a, 0x20, 0xa4, 0xf4, 0x7e, 0xfd, 0x21, 0xc4,
+};
+static const unsigned char kat2236_addinreseed[] = {
+ 0x63, 0x26, 0x5b, 0xec, 0xde, 0xaa, 0xdb, 0x76, 0xa6, 0x74, 0x22, 0x1d,
+ 0xb1, 0xd8, 0x41, 0xba, 0xd5, 0x6b, 0xbc, 0x5d, 0x2a, 0xc1, 0xa5, 0x4e,
+ 0xc4, 0x4d, 0xea, 0xc5, 0xf7, 0xf2, 0x83, 0x68,
+};
+static const unsigned char kat2236_addin0[] = {
+ 0xf7, 0x8d, 0x6c, 0xb6, 0xea, 0x09, 0x45, 0xe8, 0xff, 0x9b, 0xc6, 0xf0,
+ 0xc2, 0x03, 0xd0, 0x6b, 0xf2, 0x78, 0x78, 0x35, 0xef, 0x4a, 0x94, 0xf1,
+ 0x0b, 0x90, 0x45, 0x92, 0xee, 0xd3, 0x1a, 0xd7,
+};
+static const unsigned char kat2236_addin1[] = {
+ 0x88, 0x11, 0xee, 0x4c, 0xad, 0x91, 0x74, 0x75, 0xde, 0x9a, 0x7c, 0xa1,
+ 0x07, 0x49, 0x80, 0x67, 0xd3, 0x94, 0x4b, 0x14, 0xe2, 0x03, 0xc3, 0xcf,
+ 0x4c, 0x33, 0x87, 0x66, 0xf0, 0x6d, 0x00, 0xf7,
+};
+static const unsigned char kat2236_retbits[] = {
+ 0xbb, 0x71, 0xbc, 0x49, 0x79, 0x4d, 0xfe, 0x83, 0xcf, 0x07, 0xf4, 0x2e,
+ 0xeb, 0x6e, 0x41, 0xa4, 0x96, 0x10, 0xf1, 0xa1, 0xe5, 0x74, 0x59, 0x76,
+ 0x4a, 0x40, 0x61, 0x1b, 0x1b, 0x14, 0x47, 0xc2, 0x84, 0x39, 0x40, 0xa4,
+ 0x76, 0x0c, 0xf3, 0x3b, 0x41, 0xf5, 0xf1, 0x02, 0x51, 0xa8, 0xe8, 0x3a,
+ 0xea, 0xfa, 0xba, 0xed, 0x1c, 0x28, 0x09, 0x1a, 0xb5, 0x52, 0xbc, 0x76,
+ 0x22, 0xf6, 0xea, 0xc3,
+};
+static const struct drbg_kat_pr_false kat2236_t = {
+ 0, kat2236_entropyin, kat2236_nonce, kat2236_persstr,
+ kat2236_entropyinreseed, kat2236_addinreseed, kat2236_addin0,
+ kat2236_addin1, kat2236_retbits
+};
+static const struct drbg_kat kat2236 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2236_t
+};
+
+static const unsigned char kat2237_entropyin[] = {
+ 0x85, 0x3f, 0x0b, 0x57, 0x15, 0x6c, 0xc0, 0x85, 0xfe, 0x4c, 0xd2, 0xd9,
+ 0xb9, 0x44, 0xf8, 0xe8, 0x5f, 0xd9, 0x81, 0xcf, 0xf2, 0x8f, 0xcf, 0xac,
+ 0x09, 0x2a, 0x28, 0x16, 0x27, 0xc4, 0x8a, 0x96,
+};
+static const unsigned char kat2237_nonce[] = {0};
+static const unsigned char kat2237_persstr[] = {0};
+static const unsigned char kat2237_entropyinreseed[] = {
+ 0x0c, 0x39, 0x92, 0xe1, 0xc6, 0xc8, 0x6f, 0x77, 0x4f, 0x1f, 0x95, 0x11,
+ 0xda, 0x98, 0xaf, 0xef, 0xcd, 0x78, 0x0a, 0x11, 0xc5, 0xdd, 0x00, 0x0e,
+ 0x59, 0x74, 0x3b, 0xdc, 0xec, 0xcb, 0x43, 0x1c,
+};
+static const unsigned char kat2237_addinreseed[] = {
+ 0x59, 0x8c, 0xf4, 0xba, 0xba, 0x27, 0xc1, 0x42, 0x68, 0xa8, 0x9f, 0x66,
+ 0x3b, 0x26, 0x27, 0x1b, 0x28, 0x7a, 0x4c, 0xc1, 0x97, 0xcb, 0xca, 0xec,
+ 0xf1, 0xdb, 0x68, 0x79, 0x20, 0x4d, 0x38, 0x41,
+};
+static const unsigned char kat2237_addin0[] = {
+ 0x64, 0x9a, 0x28, 0xe6, 0x0b, 0x85, 0x1f, 0x05, 0x41, 0x40, 0xbf, 0xa7,
+ 0x5c, 0x37, 0x08, 0x55, 0xfe, 0x49, 0x6b, 0x17, 0x5f, 0x92, 0x5e, 0xc4,
+ 0xc5, 0x65, 0x44, 0x75, 0xad, 0xcf, 0x12, 0x10,
+};
+static const unsigned char kat2237_addin1[] = {
+ 0x83, 0xb9, 0x2f, 0xa5, 0x02, 0x8d, 0x74, 0x22, 0x84, 0x07, 0xee, 0x65,
+ 0x42, 0xdf, 0x48, 0x1d, 0x35, 0xb9, 0xc9, 0x77, 0x4b, 0x0e, 0xab, 0x68,
+ 0x60, 0x7a, 0x51, 0x6d, 0xea, 0x99, 0x3c, 0x5d,
+};
+static const unsigned char kat2237_retbits[] = {
+ 0x96, 0x77, 0xab, 0xda, 0xa3, 0x02, 0xb2, 0x74, 0x64, 0x54, 0x1b, 0x03,
+ 0x55, 0xa3, 0x17, 0x07, 0xeb, 0x3f, 0xe9, 0x0d, 0xcb, 0xa3, 0xe1, 0x95,
+ 0x22, 0x3f, 0x41, 0x9d, 0xa2, 0xd1, 0x74, 0x38, 0xf4, 0xc5, 0xe3, 0xe1,
+ 0x92, 0xcd, 0xcf, 0x48, 0x97, 0xa1, 0x4b, 0x27, 0xee, 0xa6, 0x35, 0x25,
+ 0x11, 0xb7, 0xa9, 0x53, 0xf7, 0xf4, 0xd1, 0x29, 0x8b, 0x40, 0x0e, 0x03,
+ 0xb6, 0x7a, 0xa1, 0x1a,
+};
+static const struct drbg_kat_pr_false kat2237_t = {
+ 1, kat2237_entropyin, kat2237_nonce, kat2237_persstr,
+ kat2237_entropyinreseed, kat2237_addinreseed, kat2237_addin0,
+ kat2237_addin1, kat2237_retbits
+};
+static const struct drbg_kat kat2237 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2237_t
+};
+
+static const unsigned char kat2238_entropyin[] = {
+ 0x96, 0x65, 0x64, 0xca, 0x87, 0x82, 0x2f, 0xe8, 0x40, 0x97, 0x2d, 0xf9,
+ 0xbb, 0xdb, 0x4c, 0x54, 0x37, 0xfe, 0xad, 0x0b, 0x04, 0xb3, 0x5e, 0xeb,
+ 0xe3, 0x21, 0xe4, 0x9c, 0xdc, 0x48, 0x01, 0x39,
+};
+static const unsigned char kat2238_nonce[] = {0};
+static const unsigned char kat2238_persstr[] = {0};
+static const unsigned char kat2238_entropyinreseed[] = {
+ 0xb7, 0xb9, 0xa1, 0xdf, 0xa4, 0xac, 0x43, 0x5b, 0xc4, 0x3f, 0x40, 0x5a,
+ 0xc5, 0x32, 0xfb, 0x8b, 0x99, 0x54, 0xb9, 0x5a, 0x00, 0x17, 0xb9, 0x0e,
+ 0xb6, 0xa7, 0xdc, 0x49, 0xed, 0x5f, 0x71, 0x6f,
+};
+static const unsigned char kat2238_addinreseed[] = {
+ 0x20, 0x28, 0x67, 0xf8, 0x6b, 0xcf, 0xe0, 0xd2, 0xe8, 0x84, 0xa0, 0x56,
+ 0x4a, 0x9b, 0x37, 0xfd, 0xbf, 0x70, 0x5b, 0xc3, 0xb4, 0x49, 0xde, 0xa0,
+ 0xd9, 0x55, 0x3c, 0xe0, 0x89, 0x3d, 0xa9, 0xc1,
+};
+static const unsigned char kat2238_addin0[] = {
+ 0x1a, 0x57, 0xa3, 0xa6, 0x35, 0x68, 0x0f, 0xdc, 0xcb, 0x04, 0x89, 0x96,
+ 0x54, 0xd2, 0x8b, 0x01, 0xdb, 0xcb, 0x61, 0xc5, 0xe6, 0xd7, 0x08, 0x00,
+ 0xe0, 0xfc, 0x8b, 0x69, 0x4a, 0xc1, 0xeb, 0xf9,
+};
+static const unsigned char kat2238_addin1[] = {
+ 0x5b, 0x07, 0xdc, 0xaa, 0x29, 0x4a, 0x81, 0xf4, 0x12, 0x1a, 0x76, 0xe9,
+ 0xdd, 0x25, 0xab, 0x6d, 0xe0, 0x15, 0x28, 0x76, 0x1e, 0x2a, 0x61, 0xd8,
+ 0x7d, 0x63, 0x07, 0x86, 0xe5, 0x9c, 0x16, 0x5d,
+};
+static const unsigned char kat2238_retbits[] = {
+ 0x42, 0xcc, 0x3f, 0x56, 0x55, 0x16, 0xbd, 0x9c, 0x08, 0xd9, 0x13, 0x59,
+ 0xcd, 0x03, 0x62, 0x8b, 0x91, 0xb4, 0xcc, 0x11, 0x44, 0x6c, 0xba, 0xd6,
+ 0xea, 0xe1, 0xf9, 0xb6, 0xc9, 0xce, 0x2c, 0x9b, 0x57, 0xbe, 0xd0, 0x95,
+ 0x02, 0x83, 0xe8, 0xef, 0x2f, 0x78, 0x8f, 0x36, 0x2b, 0x32, 0xee, 0x35,
+ 0xd1, 0x63, 0x70, 0xc2, 0x3a, 0x03, 0x3e, 0xfe, 0x39, 0xbc, 0x89, 0x7d,
+ 0xd6, 0x7d, 0xc2, 0xe3,
+};
+static const struct drbg_kat_pr_false kat2238_t = {
+ 2, kat2238_entropyin, kat2238_nonce, kat2238_persstr,
+ kat2238_entropyinreseed, kat2238_addinreseed, kat2238_addin0,
+ kat2238_addin1, kat2238_retbits
+};
+static const struct drbg_kat kat2238 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2238_t
+};
+
+static const unsigned char kat2239_entropyin[] = {
+ 0x5f, 0x25, 0xed, 0x0a, 0x49, 0xa9, 0x5c, 0x85, 0x63, 0x02, 0x42, 0x0f,
+ 0x8e, 0x37, 0xb2, 0xb8, 0x12, 0xc4, 0x7e, 0x14, 0x0e, 0xf9, 0x54, 0xae,
+ 0xe4, 0x67, 0x49, 0x77, 0x6b, 0x05, 0x28, 0xff,
+};
+static const unsigned char kat2239_nonce[] = {0};
+static const unsigned char kat2239_persstr[] = {0};
+static const unsigned char kat2239_entropyinreseed[] = {
+ 0xb1, 0xf1, 0x31, 0xa6, 0x0b, 0x60, 0xc8, 0x10, 0x17, 0x55, 0x9d, 0xab,
+ 0x4f, 0x69, 0x6a, 0x1a, 0xf4, 0x35, 0x10, 0x69, 0x04, 0xe2, 0x97, 0x95,
+ 0xad, 0x78, 0xa8, 0x1b, 0x27, 0xfe, 0x9e, 0xb3,
+};
+static const unsigned char kat2239_addinreseed[] = {
+ 0x9d, 0x9a, 0xad, 0x67, 0x43, 0xde, 0x48, 0xc9, 0xd8, 0x65, 0xb6, 0x11,
+ 0xa0, 0x1d, 0xa3, 0x96, 0x46, 0x46, 0x93, 0x46, 0xe1, 0x56, 0x50, 0xfd,
+ 0xc9, 0xcb, 0x08, 0x4f, 0x35, 0xc2, 0xed, 0x8d,
+};
+static const unsigned char kat2239_addin0[] = {
+ 0xc4, 0x47, 0x88, 0x2f, 0x6c, 0x4a, 0x3f, 0x92, 0x0d, 0xb5, 0xf0, 0xf5,
+ 0x3e, 0xf1, 0xa4, 0x96, 0x03, 0x23, 0x80, 0xf3, 0x34, 0xe4, 0x69, 0x28,
+ 0x88, 0xa3, 0x7d, 0xe9, 0x3b, 0x39, 0xe7, 0xb0,
+};
+static const unsigned char kat2239_addin1[] = {
+ 0x5b, 0x4a, 0x50, 0x38, 0x6a, 0x7a, 0x2b, 0xa1, 0x2c, 0xaf, 0x2f, 0xb1,
+ 0x98, 0x9e, 0x50, 0xe7, 0x6d, 0xfb, 0xee, 0x2f, 0x31, 0xca, 0xd2, 0x88,
+ 0x1e, 0x6e, 0xfb, 0x75, 0xcf, 0x5f, 0x91, 0x93,
+};
+static const unsigned char kat2239_retbits[] = {
+ 0xb4, 0x4f, 0x0b, 0x16, 0x5d, 0x9e, 0x62, 0x16, 0xff, 0xec, 0xf4, 0x86,
+ 0xd3, 0x78, 0x6a, 0x78, 0xbf, 0x59, 0x39, 0xd5, 0x50, 0x96, 0x6e, 0x88,
+ 0xca, 0xd2, 0xd3, 0x9c, 0xf1, 0x75, 0xf7, 0xe9, 0x2c, 0xf1, 0xe1, 0x8f,
+ 0x11, 0xce, 0x11, 0x08, 0x89, 0x40, 0x5d, 0xb7, 0x39, 0xe4, 0x0a, 0x5d,
+ 0x18, 0x5f, 0x02, 0xb1, 0x2b, 0xdf, 0xa5, 0xb4, 0xb9, 0x23, 0xb8, 0x48,
+ 0x6f, 0x0a, 0xc5, 0x40,
+};
+static const struct drbg_kat_pr_false kat2239_t = {
+ 3, kat2239_entropyin, kat2239_nonce, kat2239_persstr,
+ kat2239_entropyinreseed, kat2239_addinreseed, kat2239_addin0,
+ kat2239_addin1, kat2239_retbits
+};
+static const struct drbg_kat kat2239 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2239_t
+};
+
+static const unsigned char kat2240_entropyin[] = {
+ 0xd9, 0x8b, 0x88, 0xd9, 0x57, 0xd4, 0x9a, 0xdb, 0x78, 0x9c, 0xf7, 0xda,
+ 0xe5, 0x77, 0x36, 0xb2, 0xad, 0x50, 0xb2, 0xce, 0xa3, 0x62, 0xf0, 0x54,
+ 0x8a, 0xa0, 0xfa, 0xfb, 0xb7, 0x02, 0x7e, 0x92,
+};
+static const unsigned char kat2240_nonce[] = {0};
+static const unsigned char kat2240_persstr[] = {0};
+static const unsigned char kat2240_entropyinreseed[] = {
+ 0xbc, 0x96, 0x4b, 0xbb, 0x80, 0x53, 0x2f, 0xfd, 0x6a, 0xfa, 0xf3, 0xa0,
+ 0xc6, 0xdc, 0x36, 0x92, 0xff, 0x51, 0x13, 0xe7, 0x42, 0xf4, 0x7d, 0xcc,
+ 0x0e, 0x33, 0x69, 0x49, 0xbf, 0x6d, 0x7a, 0xf2,
+};
+static const unsigned char kat2240_addinreseed[] = {
+ 0x7d, 0xa5, 0x5d, 0x04, 0x60, 0x39, 0x67, 0xc5, 0x26, 0x6c, 0x13, 0x80,
+ 0x47, 0x0f, 0x19, 0xdc, 0xf4, 0x53, 0xd2, 0x7f, 0x66, 0x0d, 0x08, 0x83,
+ 0x93, 0x08, 0x5c, 0xa4, 0xa3, 0x4f, 0x79, 0x2e,
+};
+static const unsigned char kat2240_addin0[] = {
+ 0xd7, 0x49, 0x73, 0x7b, 0x22, 0xc2, 0x37, 0x47, 0x1b, 0x9d, 0x78, 0x5e,
+ 0x4f, 0xf7, 0x52, 0x95, 0x1b, 0x49, 0x99, 0xbe, 0x82, 0xbe, 0xa9, 0x2c,
+ 0xf5, 0xd3, 0x62, 0x3e, 0xb2, 0x87, 0x40, 0x0f,
+};
+static const unsigned char kat2240_addin1[] = {
+ 0x97, 0x23, 0xd0, 0xe7, 0x2e, 0xe9, 0x65, 0x0d, 0xb1, 0x5f, 0x79, 0xf5,
+ 0xbe, 0x1f, 0xc7, 0x8c, 0xd7, 0x82, 0x5e, 0xa1, 0x02, 0xb4, 0x4a, 0x4b,
+ 0xd9, 0x6c, 0x51, 0xf4, 0x51, 0xff, 0x5c, 0xed,
+};
+static const unsigned char kat2240_retbits[] = {
+ 0x89, 0x59, 0x66, 0xcb, 0xa1, 0x7b, 0x7f, 0x6f, 0x0a, 0xfa, 0x16, 0x1f,
+ 0xfa, 0x23, 0xc9, 0x7d, 0x7b, 0xb9, 0x80, 0xbd, 0x2f, 0xf9, 0x8e, 0xc2,
+ 0x25, 0x50, 0x07, 0xc5, 0xe2, 0xfb, 0x82, 0xb8, 0x61, 0xce, 0x0a, 0x82,
+ 0x48, 0x0b, 0x0c, 0x06, 0xaf, 0xb1, 0xb4, 0xed, 0x62, 0x26, 0x22, 0x98,
+ 0x2e, 0x80, 0x60, 0x16, 0x9a, 0x36, 0xb1, 0x43, 0xa8, 0x20, 0x13, 0xbe,
+ 0xfb, 0x37, 0xf6, 0xea,
+};
+static const struct drbg_kat_pr_false kat2240_t = {
+ 4, kat2240_entropyin, kat2240_nonce, kat2240_persstr,
+ kat2240_entropyinreseed, kat2240_addinreseed, kat2240_addin0,
+ kat2240_addin1, kat2240_retbits
+};
+static const struct drbg_kat kat2240 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2240_t
+};
+
+static const unsigned char kat2241_entropyin[] = {
+ 0xb0, 0xe1, 0xc0, 0x50, 0x4f, 0xc2, 0xee, 0xe3, 0x9b, 0xb6, 0x10, 0x7d,
+ 0xea, 0x06, 0x99, 0x0a, 0x9b, 0x2e, 0xae, 0x04, 0x24, 0x26, 0x63, 0xbc,
+ 0xb5, 0xf4, 0x19, 0x2d, 0x15, 0x05, 0x2c, 0x13,
+};
+static const unsigned char kat2241_nonce[] = {0};
+static const unsigned char kat2241_persstr[] = {0};
+static const unsigned char kat2241_entropyinreseed[] = {
+ 0x4f, 0xd5, 0x25, 0x07, 0x93, 0x47, 0x65, 0x17, 0x84, 0x7d, 0xb8, 0xf4,
+ 0xe8, 0x06, 0xc3, 0x40, 0x24, 0x4b, 0xc2, 0x44, 0xdb, 0x15, 0xe7, 0x4f,
+ 0x7e, 0x0a, 0xb1, 0xaf, 0x9c, 0xb3, 0xfa, 0xf9,
+};
+static const unsigned char kat2241_addinreseed[] = {
+ 0xd1, 0x60, 0xbb, 0x1f, 0xcc, 0xc7, 0xaf, 0xd6, 0xea, 0x81, 0x87, 0x3c,
+ 0xd7, 0xba, 0x7a, 0x09, 0x38, 0xd3, 0xd7, 0xba, 0x4a, 0xef, 0x6b, 0xc1,
+ 0xc7, 0xdb, 0x63, 0x1f, 0x07, 0x71, 0x11, 0x4e,
+};
+static const unsigned char kat2241_addin0[] = {
+ 0x75, 0x06, 0x78, 0xd7, 0xfe, 0x88, 0x82, 0xf3, 0xda, 0xf7, 0x10, 0xd7,
+ 0x95, 0xef, 0xdd, 0xe4, 0x27, 0xcd, 0xe0, 0x9d, 0x2b, 0x9e, 0x59, 0x6a,
+ 0xf9, 0x83, 0x5b, 0x7c, 0x7c, 0x0b, 0x28, 0x6e,
+};
+static const unsigned char kat2241_addin1[] = {
+ 0x57, 0x0a, 0x22, 0x9e, 0xd5, 0xcd, 0x24, 0xe6, 0x57, 0xa2, 0x0c, 0x0e,
+ 0x00, 0x9b, 0x78, 0x6f, 0xd1, 0xa3, 0x0b, 0xc8, 0x0b, 0x6d, 0x49, 0x17,
+ 0x4b, 0x4c, 0xba, 0xcf, 0x67, 0x83, 0xcc, 0x5b,
+};
+static const unsigned char kat2241_retbits[] = {
+ 0x07, 0x2a, 0x9e, 0x3a, 0x66, 0xf2, 0x9c, 0x33, 0x5f, 0xa0, 0x91, 0xaf,
+ 0x47, 0x23, 0x3c, 0x4a, 0x9a, 0xeb, 0x43, 0x1c, 0xdb, 0x5e, 0x8c, 0xdf,
+ 0x7b, 0xa5, 0xa5, 0x64, 0x48, 0xd6, 0x33, 0xc1, 0xa2, 0x63, 0x85, 0xeb,
+ 0x88, 0x90, 0x7f, 0x13, 0x94, 0x1a, 0xb1, 0x6f, 0xe8, 0x0c, 0x5f, 0x28,
+ 0x8f, 0x3e, 0x78, 0x9a, 0x63, 0x4f, 0xa0, 0x79, 0x6c, 0x30, 0x80, 0xfe,
+ 0x2f, 0x43, 0x5a, 0x88,
+};
+static const struct drbg_kat_pr_false kat2241_t = {
+ 5, kat2241_entropyin, kat2241_nonce, kat2241_persstr,
+ kat2241_entropyinreseed, kat2241_addinreseed, kat2241_addin0,
+ kat2241_addin1, kat2241_retbits
+};
+static const struct drbg_kat kat2241 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2241_t
+};
+
+static const unsigned char kat2242_entropyin[] = {
+ 0x7c, 0x9d, 0xca, 0x70, 0xb3, 0xba, 0x24, 0xe3, 0x17, 0x2a, 0x89, 0xa9,
+ 0xf1, 0x7f, 0xe5, 0xcc, 0x75, 0x7e, 0x0f, 0xc0, 0x54, 0x94, 0x8b, 0xfd,
+ 0x1a, 0x1b, 0x80, 0xa6, 0x93, 0x6e, 0xad, 0xcf,
+};
+static const unsigned char kat2242_nonce[] = {0};
+static const unsigned char kat2242_persstr[] = {0};
+static const unsigned char kat2242_entropyinreseed[] = {
+ 0x84, 0x7f, 0xca, 0x31, 0x03, 0xb6, 0xb1, 0x11, 0x48, 0x51, 0x46, 0x70,
+ 0xba, 0x38, 0x3d, 0xbd, 0x10, 0x46, 0x12, 0x01, 0x9d, 0xc6, 0x35, 0xb4,
+ 0x49, 0xe0, 0x88, 0x02, 0xd6, 0x5e, 0xa4, 0x88,
+};
+static const unsigned char kat2242_addinreseed[] = {
+ 0xca, 0x08, 0x4e, 0xcb, 0x4d, 0xc2, 0x0d, 0x17, 0x6d, 0x50, 0x4a, 0x9a,
+ 0x95, 0xa9, 0xcf, 0x66, 0x6d, 0xd1, 0x2a, 0x63, 0x59, 0x8f, 0x7e, 0x32,
+ 0x06, 0xe7, 0x67, 0x3c, 0xbd, 0x31, 0x28, 0xa0,
+};
+static const unsigned char kat2242_addin0[] = {
+ 0xf4, 0x10, 0x46, 0xab, 0x85, 0x8e, 0x68, 0x85, 0x46, 0xa1, 0x2c, 0x2c,
+ 0xe9, 0x55, 0xe3, 0xc3, 0xa2, 0xb9, 0x8b, 0xf0, 0xd3, 0x86, 0x1a, 0x20,
+ 0x90, 0x34, 0x0a, 0x59, 0x2c, 0xee, 0x36, 0xc9,
+};
+static const unsigned char kat2242_addin1[] = {
+ 0x6e, 0x61, 0x06, 0x0e, 0xcf, 0xe6, 0xd5, 0x67, 0xf3, 0x5f, 0x7a, 0xcc,
+ 0xeb, 0x07, 0x49, 0x72, 0x03, 0xea, 0x8b, 0xa9, 0x17, 0xb5, 0x6f, 0x81,
+ 0xed, 0xef, 0x02, 0x4a, 0x84, 0x9e, 0x8c, 0x84,
+};
+static const unsigned char kat2242_retbits[] = {
+ 0x3a, 0x1e, 0x1e, 0xec, 0x45, 0x9c, 0x90, 0xfc, 0xee, 0x4c, 0x12, 0x41,
+ 0xf2, 0xa4, 0x9e, 0x5a, 0x2a, 0xa3, 0x1c, 0xe1, 0x69, 0x83, 0x05, 0x7a,
+ 0xd8, 0xd4, 0x3d, 0x3a, 0x88, 0x7c, 0xe3, 0x01, 0xf0, 0xd7, 0xa4, 0x55,
+ 0x8a, 0x07, 0x2b, 0xe3, 0x19, 0x8d, 0xb7, 0x31, 0x06, 0xee, 0x3c, 0xf6,
+ 0x30, 0xd4, 0xe4, 0xc1, 0x3a, 0xb3, 0x76, 0x7e, 0x81, 0xaf, 0x15, 0x68,
+ 0xef, 0x7a, 0x25, 0x1d,
+};
+static const struct drbg_kat_pr_false kat2242_t = {
+ 6, kat2242_entropyin, kat2242_nonce, kat2242_persstr,
+ kat2242_entropyinreseed, kat2242_addinreseed, kat2242_addin0,
+ kat2242_addin1, kat2242_retbits
+};
+static const struct drbg_kat kat2242 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2242_t
+};
+
+static const unsigned char kat2243_entropyin[] = {
+ 0x0b, 0x1b, 0xd6, 0x1c, 0x9c, 0xd2, 0xc1, 0xaa, 0x26, 0xb6, 0x8d, 0x2e,
+ 0x0e, 0x40, 0x9c, 0xe8, 0x7a, 0xfa, 0x40, 0xe0, 0x3a, 0x8d, 0xfa, 0xe6,
+ 0x14, 0x85, 0x3c, 0x1f, 0x3e, 0x50, 0x33, 0xa7,
+};
+static const unsigned char kat2243_nonce[] = {0};
+static const unsigned char kat2243_persstr[] = {0};
+static const unsigned char kat2243_entropyinreseed[] = {
+ 0x96, 0x0e, 0x3e, 0xd2, 0x46, 0x66, 0x02, 0xc3, 0xa4, 0x56, 0xe0, 0x16,
+ 0x1d, 0x89, 0x24, 0x82, 0x82, 0x98, 0xeb, 0x5d, 0x3d, 0x4a, 0x0e, 0x28,
+ 0x97, 0xd3, 0xc2, 0x30, 0xfb, 0x12, 0xad, 0xf6,
+};
+static const unsigned char kat2243_addinreseed[] = {
+ 0xfb, 0xb3, 0xf1, 0x6d, 0x70, 0xec, 0xd0, 0xf5, 0x81, 0x91, 0x4a, 0x1f,
+ 0xf8, 0xb1, 0xe5, 0x36, 0xaa, 0xe6, 0x05, 0x4f, 0x3d, 0x68, 0x88, 0xee,
+ 0x84, 0x36, 0xb2, 0xe6, 0x00, 0xda, 0x2e, 0xbd,
+};
+static const unsigned char kat2243_addin0[] = {
+ 0x4f, 0xd3, 0x0a, 0x71, 0xf7, 0x86, 0xae, 0x96, 0x60, 0xe4, 0x21, 0x75,
+ 0xe6, 0x43, 0xbb, 0x99, 0x02, 0x3a, 0x66, 0x31, 0xc5, 0x2f, 0x51, 0xc5,
+ 0xb3, 0x5e, 0xa0, 0x56, 0xe9, 0xfd, 0x39, 0x52,
+};
+static const unsigned char kat2243_addin1[] = {
+ 0xde, 0xa9, 0xa0, 0x94, 0x29, 0x0b, 0x68, 0xa7, 0x90, 0xea, 0x1a, 0x8b,
+ 0xe7, 0x08, 0x9a, 0xe1, 0x52, 0x28, 0xf6, 0x8d, 0xa0, 0xcb, 0x5f, 0xaa,
+ 0x70, 0x25, 0x8f, 0x51, 0x3c, 0x19, 0xe1, 0x61,
+};
+static const unsigned char kat2243_retbits[] = {
+ 0x6a, 0x12, 0x37, 0x02, 0xdf, 0xfe, 0x38, 0xd5, 0x52, 0xc6, 0x3b, 0x1c,
+ 0xa9, 0xba, 0x01, 0xd0, 0xde, 0x1b, 0x8c, 0xc0, 0x64, 0xae, 0xd9, 0x52,
+ 0x96, 0xda, 0x45, 0x44, 0x69, 0xad, 0x28, 0xe2, 0xb7, 0x94, 0xea, 0xfc,
+ 0x04, 0xc4, 0x67, 0x78, 0xfa, 0x9e, 0x24, 0xe5, 0xc3, 0x86, 0x68, 0x40,
+ 0xc2, 0x91, 0xc8, 0x51, 0x48, 0x2c, 0xd3, 0x78, 0x8b, 0x2a, 0x5e, 0xb1,
+ 0x7f, 0x23, 0x63, 0x90,
+};
+static const struct drbg_kat_pr_false kat2243_t = {
+ 7, kat2243_entropyin, kat2243_nonce, kat2243_persstr,
+ kat2243_entropyinreseed, kat2243_addinreseed, kat2243_addin0,
+ kat2243_addin1, kat2243_retbits
+};
+static const struct drbg_kat kat2243 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2243_t
+};
+
+static const unsigned char kat2244_entropyin[] = {
+ 0xb7, 0x7f, 0xfb, 0xdb, 0x00, 0x58, 0x6f, 0x80, 0x34, 0xcf, 0xfb, 0x58,
+ 0xe2, 0xc4, 0x59, 0xf7, 0x73, 0xce, 0x20, 0x4d, 0x41, 0x3d, 0x4b, 0x7a,
+ 0x6f, 0xc3, 0x1c, 0x0f, 0x97, 0x0c, 0xab, 0x2c,
+};
+static const unsigned char kat2244_nonce[] = {0};
+static const unsigned char kat2244_persstr[] = {0};
+static const unsigned char kat2244_entropyinreseed[] = {
+ 0xa9, 0x00, 0xa2, 0xb9, 0x40, 0x5f, 0x6b, 0x07, 0xcd, 0xf4, 0x4e, 0xb4,
+ 0x95, 0xb6, 0x2d, 0x35, 0xca, 0x66, 0xa1, 0x36, 0x2b, 0xd9, 0x6b, 0x62,
+ 0x31, 0x04, 0x39, 0x90, 0x26, 0x46, 0x99, 0xf1,
+};
+static const unsigned char kat2244_addinreseed[] = {
+ 0x75, 0x8d, 0x5c, 0x4d, 0x93, 0x43, 0x4b, 0x02, 0xc6, 0xf6, 0x96, 0x4e,
+ 0xb7, 0xa9, 0x31, 0xbd, 0x33, 0x1d, 0x5a, 0x4e, 0x29, 0x0b, 0x32, 0x91,
+ 0xab, 0x51, 0x74, 0x71, 0x48, 0x21, 0x75, 0x3f,
+};
+static const unsigned char kat2244_addin0[] = {
+ 0x58, 0x52, 0xbe, 0x3e, 0xf7, 0x36, 0x1d, 0xc7, 0x69, 0x6c, 0x0a, 0x35,
+ 0x8f, 0x30, 0xba, 0xb0, 0x59, 0xfe, 0xeb, 0xb7, 0x7a, 0x6b, 0xca, 0xa1,
+ 0x1d, 0x3c, 0x35, 0x83, 0xfb, 0x6a, 0x4e, 0x5f,
+};
+static const unsigned char kat2244_addin1[] = {
+ 0xe5, 0x17, 0x82, 0x84, 0x83, 0xee, 0x9c, 0x1c, 0x1c, 0x65, 0x20, 0xbc,
+ 0x9b, 0xb6, 0x93, 0x24, 0xfa, 0x2e, 0x24, 0xc3, 0x56, 0x6e, 0xd5, 0xcf,
+ 0x0d, 0xb8, 0xc5, 0x84, 0x17, 0xc3, 0xd9, 0x9b,
+};
+static const unsigned char kat2244_retbits[] = {
+ 0x5f, 0x01, 0x75, 0x9b, 0x2a, 0x74, 0x8b, 0x40, 0xf8, 0x10, 0x9d, 0x5f,
+ 0x78, 0xcb, 0xfb, 0x7b, 0xa2, 0x45, 0xb3, 0x65, 0x58, 0x85, 0x8b, 0x82,
+ 0x1e, 0xc4, 0x43, 0xc7, 0xca, 0x41, 0x47, 0x90, 0x3a, 0xe2, 0xbd, 0xc2,
+ 0xb1, 0x00, 0x89, 0x59, 0xfb, 0xe8, 0xa6, 0x60, 0x5a, 0x7e, 0x4f, 0x9a,
+ 0x22, 0xad, 0xf4, 0x31, 0x38, 0xbf, 0x96, 0xc6, 0xff, 0x1d, 0xf1, 0x00,
+ 0xdc, 0xbc, 0xb0, 0xb4,
+};
+static const struct drbg_kat_pr_false kat2244_t = {
+ 8, kat2244_entropyin, kat2244_nonce, kat2244_persstr,
+ kat2244_entropyinreseed, kat2244_addinreseed, kat2244_addin0,
+ kat2244_addin1, kat2244_retbits
+};
+static const struct drbg_kat kat2244 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2244_t
+};
+
+static const unsigned char kat2245_entropyin[] = {
+ 0x67, 0xf1, 0xfd, 0x05, 0xf2, 0xeb, 0xd3, 0x21, 0xfc, 0xdf, 0x41, 0x16,
+ 0x55, 0xc5, 0x55, 0x94, 0x5e, 0xf8, 0xa5, 0xe8, 0x68, 0xad, 0x38, 0x8a,
+ 0x68, 0x6e, 0xfe, 0x88, 0xec, 0xd1, 0x54, 0xc1,
+};
+static const unsigned char kat2245_nonce[] = {0};
+static const unsigned char kat2245_persstr[] = {0};
+static const unsigned char kat2245_entropyinreseed[] = {
+ 0xa0, 0xdb, 0x50, 0x92, 0xdf, 0xdf, 0xef, 0x42, 0x44, 0x4d, 0x46, 0xc4,
+ 0xe3, 0x34, 0x42, 0xa3, 0x3f, 0x71, 0x4c, 0x05, 0x62, 0x4d, 0x24, 0xa9,
+ 0x22, 0xcd, 0x3d, 0xd2, 0x8f, 0x2b, 0x2e, 0x07,
+};
+static const unsigned char kat2245_addinreseed[] = {
+ 0xbf, 0x0e, 0x3d, 0xb3, 0x1b, 0x0e, 0x3c, 0x19, 0x94, 0xe7, 0x31, 0xe4,
+ 0x78, 0x76, 0xeb, 0xfd, 0x62, 0xfb, 0x4d, 0x3c, 0x62, 0x07, 0x19, 0xf9,
+ 0xf0, 0x86, 0xf1, 0x7d, 0x51, 0xbb, 0xfc, 0x15,
+};
+static const unsigned char kat2245_addin0[] = {
+ 0x1a, 0x28, 0x14, 0x05, 0x43, 0x45, 0xde, 0xb9, 0x23, 0x4b, 0x68, 0x37,
+ 0xd0, 0x3e, 0x6d, 0xe9, 0xec, 0x5c, 0xd3, 0x2d, 0x17, 0x62, 0x7f, 0x18,
+ 0x2c, 0x63, 0x3c, 0xc5, 0xc4, 0xca, 0x33, 0x4b,
+};
+static const unsigned char kat2245_addin1[] = {
+ 0xe6, 0xc7, 0x77, 0x82, 0xb1, 0x43, 0x06, 0xff, 0x68, 0x82, 0xe2, 0x97,
+ 0xda, 0x10, 0xcc, 0x9e, 0x47, 0x73, 0x3e, 0xd1, 0xf7, 0xc8, 0x59, 0x2d,
+ 0x46, 0xc3, 0x6d, 0x9d, 0xf0, 0x77, 0x51, 0xae,
+};
+static const unsigned char kat2245_retbits[] = {
+ 0x73, 0x74, 0x51, 0xd9, 0x56, 0xe5, 0x18, 0x46, 0xf6, 0xfa, 0xc8, 0x8b,
+ 0xc3, 0x31, 0x3f, 0xf4, 0x9b, 0x26, 0x41, 0x12, 0x79, 0x04, 0x2f, 0xa2,
+ 0x66, 0xcf, 0x55, 0x89, 0xd2, 0xff, 0x8a, 0x69, 0x1d, 0x22, 0x55, 0x8b,
+ 0xff, 0xb3, 0x6c, 0xdc, 0x23, 0xf0, 0x6d, 0xa0, 0xb5, 0xa3, 0xdf, 0xd7,
+ 0x98, 0x40, 0x3e, 0x9d, 0x48, 0x6b, 0x8e, 0x41, 0xa7, 0x2c, 0xf1, 0x47,
+ 0x3f, 0xed, 0xda, 0xc1,
+};
+static const struct drbg_kat_pr_false kat2245_t = {
+ 9, kat2245_entropyin, kat2245_nonce, kat2245_persstr,
+ kat2245_entropyinreseed, kat2245_addinreseed, kat2245_addin0,
+ kat2245_addin1, kat2245_retbits
+};
+static const struct drbg_kat kat2245 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2245_t
+};
+
+static const unsigned char kat2246_entropyin[] = {
+ 0x41, 0x65, 0xe4, 0xad, 0xb3, 0x7a, 0xfc, 0x2a, 0xe4, 0x35, 0xa9, 0x67,
+ 0x11, 0x47, 0xb9, 0x83, 0x10, 0x22, 0x79, 0xf7, 0x9b, 0x9a, 0x01, 0x88,
+ 0xc6, 0xfa, 0x4e, 0x5a, 0x22, 0xff, 0x55, 0xf4,
+};
+static const unsigned char kat2246_nonce[] = {0};
+static const unsigned char kat2246_persstr[] = {0};
+static const unsigned char kat2246_entropyinreseed[] = {
+ 0x2d, 0x32, 0xed, 0x1d, 0x2e, 0x3a, 0x52, 0x17, 0x9d, 0x07, 0x79, 0xef,
+ 0x09, 0xd1, 0x20, 0xa9, 0x2b, 0x3a, 0x4d, 0xaa, 0x09, 0xa3, 0x00, 0x65,
+ 0xd6, 0x3b, 0xd1, 0x1a, 0x97, 0xc4, 0xd6, 0xc7,
+};
+static const unsigned char kat2246_addinreseed[] = {
+ 0x4a, 0xc1, 0x99, 0x2e, 0xd9, 0x5f, 0x9f, 0x8d, 0x20, 0x7f, 0x29, 0xf6,
+ 0xa2, 0x03, 0x9b, 0x51, 0x1f, 0xfa, 0x82, 0x33, 0xf4, 0x6b, 0xb4, 0x8d,
+ 0xe6, 0x64, 0x77, 0x04, 0x4d, 0xc6, 0x7d, 0xd2,
+};
+static const unsigned char kat2246_addin0[] = {
+ 0xf2, 0x0d, 0x78, 0x1d, 0x0c, 0xcb, 0x63, 0x0d, 0x72, 0x62, 0x2e, 0x5d,
+ 0x65, 0x3c, 0x32, 0x3d, 0xb5, 0xf6, 0x52, 0xfc, 0x7b, 0xaa, 0xa8, 0x00,
+ 0x9a, 0xc1, 0xc3, 0xad, 0x2d, 0x0f, 0x38, 0x32,
+};
+static const unsigned char kat2246_addin1[] = {
+ 0x15, 0x62, 0x80, 0x1a, 0x0a, 0xaa, 0x41, 0x5b, 0x9d, 0x7a, 0x19, 0x4d,
+ 0xb4, 0x24, 0xc1, 0x8a, 0x73, 0x1e, 0xa2, 0x48, 0xa3, 0x25, 0x2c, 0x3a,
+ 0x70, 0x1e, 0x9f, 0x5d, 0x24, 0xce, 0x8d, 0x2d,
+};
+static const unsigned char kat2246_retbits[] = {
+ 0x1f, 0x02, 0x7b, 0xd8, 0x0e, 0x6e, 0xe8, 0x79, 0x75, 0x34, 0xbb, 0x44,
+ 0x41, 0xad, 0x16, 0x7f, 0x26, 0xcc, 0x4e, 0x42, 0x15, 0x61, 0x05, 0x11,
+ 0xfd, 0xac, 0xe7, 0x5e, 0x25, 0x1f, 0x2d, 0xed, 0xb9, 0x67, 0xa3, 0x5f,
+ 0x6b, 0xdc, 0x1f, 0x89, 0x53, 0xb9, 0xcc, 0x28, 0x52, 0xc8, 0x16, 0xa5,
+ 0xc3, 0xc8, 0xbc, 0x22, 0xd2, 0xf8, 0x84, 0x74, 0xea, 0x96, 0x4a, 0xbc,
+ 0xcb, 0x9b, 0x19, 0x68,
+};
+static const struct drbg_kat_pr_false kat2246_t = {
+ 10, kat2246_entropyin, kat2246_nonce, kat2246_persstr,
+ kat2246_entropyinreseed, kat2246_addinreseed, kat2246_addin0,
+ kat2246_addin1, kat2246_retbits
+};
+static const struct drbg_kat kat2246 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2246_t
+};
+
+static const unsigned char kat2247_entropyin[] = {
+ 0xb2, 0x60, 0xdb, 0x47, 0x85, 0x3c, 0xa3, 0x7f, 0x00, 0xb6, 0x9e, 0xa7,
+ 0x5f, 0x65, 0x40, 0xd1, 0xe8, 0x15, 0x51, 0x51, 0x57, 0x7f, 0xee, 0x68,
+ 0x35, 0x74, 0x64, 0x87, 0xdc, 0xef, 0x61, 0x5a,
+};
+static const unsigned char kat2247_nonce[] = {0};
+static const unsigned char kat2247_persstr[] = {0};
+static const unsigned char kat2247_entropyinreseed[] = {
+ 0x90, 0x13, 0x23, 0xde, 0x85, 0x9f, 0x3b, 0x5a, 0xd3, 0xe8, 0x1e, 0x33,
+ 0xb8, 0x7f, 0x53, 0xa8, 0xfe, 0xa3, 0x5a, 0x1a, 0x8b, 0x3f, 0xf3, 0xfb,
+ 0xd8, 0xe9, 0x66, 0xec, 0xfc, 0x6c, 0x72, 0xce,
+};
+static const unsigned char kat2247_addinreseed[] = {
+ 0x58, 0x4b, 0xf2, 0x9e, 0x79, 0xe1, 0x95, 0x0e, 0xf1, 0x2b, 0xc7, 0x7d,
+ 0x35, 0x5d, 0x39, 0xe3, 0x4d, 0xe3, 0xba, 0xd0, 0xe5, 0x82, 0xfd, 0xfa,
+ 0x62, 0x8e, 0x97, 0x40, 0x3f, 0x59, 0xf4, 0x06,
+};
+static const unsigned char kat2247_addin0[] = {
+ 0xc5, 0x42, 0x64, 0x83, 0xaa, 0x28, 0x2f, 0x44, 0xaf, 0xd6, 0x46, 0x2e,
+ 0x24, 0xec, 0xa4, 0x65, 0x32, 0x85, 0x39, 0xb4, 0x65, 0xb1, 0xb9, 0x7d,
+ 0x67, 0x3b, 0x05, 0xd9, 0x19, 0x50, 0xa3, 0x7e,
+};
+static const unsigned char kat2247_addin1[] = {
+ 0x07, 0x3b, 0xb1, 0xc0, 0x06, 0x94, 0xf6, 0x5a, 0xb1, 0x28, 0x80, 0xb9,
+ 0x4e, 0x24, 0x21, 0x08, 0x66, 0xed, 0x27, 0x2e, 0xa6, 0xe2, 0x06, 0xe0,
+ 0xae, 0x7e, 0x50, 0x07, 0xdc, 0xf4, 0xed, 0x4d,
+};
+static const unsigned char kat2247_retbits[] = {
+ 0xe6, 0x62, 0xb9, 0xc0, 0xdd, 0x94, 0xe0, 0xe8, 0x97, 0xf6, 0x47, 0x9c,
+ 0xa2, 0x3a, 0x5d, 0xe7, 0x45, 0xe4, 0x34, 0xd8, 0xd9, 0xd4, 0x1e, 0x22,
+ 0xfd, 0x89, 0xac, 0xa7, 0x93, 0xfa, 0xbe, 0x6d, 0x57, 0x34, 0x55, 0x34,
+ 0x15, 0xb6, 0x92, 0xb3, 0xce, 0x76, 0x08, 0xe8, 0x71, 0x4a, 0x4b, 0xc7,
+ 0xc2, 0x25, 0xec, 0xbc, 0xc7, 0xbb, 0x5b, 0x9f, 0x55, 0xc0, 0x53, 0xb5,
+ 0x1c, 0xee, 0x2c, 0x49,
+};
+static const struct drbg_kat_pr_false kat2247_t = {
+ 11, kat2247_entropyin, kat2247_nonce, kat2247_persstr,
+ kat2247_entropyinreseed, kat2247_addinreseed, kat2247_addin0,
+ kat2247_addin1, kat2247_retbits
+};
+static const struct drbg_kat kat2247 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2247_t
+};
+
+static const unsigned char kat2248_entropyin[] = {
+ 0xa9, 0x6e, 0x95, 0x20, 0x94, 0x31, 0x43, 0x50, 0xc6, 0x1c, 0x97, 0x4c,
+ 0x0a, 0x76, 0xd6, 0x2d, 0xa6, 0xeb, 0xf2, 0x5d, 0xc6, 0x33, 0xb7, 0x71,
+ 0x88, 0xae, 0xee, 0x43, 0x48, 0x97, 0x7d, 0xdf,
+};
+static const unsigned char kat2248_nonce[] = {0};
+static const unsigned char kat2248_persstr[] = {0};
+static const unsigned char kat2248_entropyinreseed[] = {
+ 0xea, 0x2d, 0x91, 0x10, 0x8a, 0x9e, 0xf2, 0xcc, 0xd6, 0xa1, 0x5b, 0xae,
+ 0x97, 0x60, 0x65, 0x74, 0xf6, 0x43, 0xc5, 0xc4, 0x89, 0x5d, 0xdf, 0x60,
+ 0x8a, 0x04, 0xf0, 0xc3, 0xa2, 0xf3, 0xee, 0xdf,
+};
+static const unsigned char kat2248_addinreseed[] = {
+ 0xed, 0x87, 0x5d, 0xa4, 0x52, 0x09, 0xf7, 0x47, 0x3e, 0x8c, 0x37, 0xa8,
+ 0x1c, 0x19, 0x8e, 0xba, 0xac, 0x89, 0xbb, 0x2d, 0xa2, 0x35, 0xf1, 0x1e,
+ 0xd6, 0x23, 0xe4, 0xd9, 0xa2, 0x70, 0x7c, 0x31,
+};
+static const unsigned char kat2248_addin0[] = {
+ 0x7b, 0x84, 0x13, 0x06, 0x54, 0x95, 0xab, 0x86, 0x5c, 0xf1, 0xab, 0x07,
+ 0x8b, 0x61, 0x03, 0xc1, 0xa8, 0x1a, 0x0a, 0x8b, 0xc5, 0xc9, 0x96, 0xc2,
+ 0xa5, 0xd4, 0x6c, 0x4e, 0x37, 0xab, 0x26, 0x95,
+};
+static const unsigned char kat2248_addin1[] = {
+ 0x26, 0x05, 0x7d, 0xf2, 0x12, 0xbb, 0x78, 0x04, 0x0a, 0xef, 0x36, 0xa1,
+ 0xcd, 0x4f, 0xbd, 0x09, 0x3d, 0x5d, 0x9b, 0xe7, 0x75, 0xc6, 0x1b, 0x93,
+ 0xa9, 0x05, 0xca, 0x0e, 0xbb, 0xb9, 0xed, 0x49,
+};
+static const unsigned char kat2248_retbits[] = {
+ 0xdb, 0xc5, 0xfe, 0x05, 0xc1, 0x93, 0xe1, 0x01, 0xb9, 0xa3, 0x13, 0x43,
+ 0x5b, 0x9f, 0x37, 0x71, 0x58, 0x8c, 0x16, 0x8a, 0x15, 0xdf, 0x08, 0x46,
+ 0x7a, 0x4d, 0x3c, 0x81, 0xac, 0xd4, 0xff, 0xd1, 0x77, 0x98, 0xd2, 0x00,
+ 0x46, 0x9a, 0xa7, 0x6a, 0xab, 0x34, 0x20, 0xe9, 0x9e, 0x1a, 0x68, 0xac,
+ 0xda, 0x02, 0x35, 0xb1, 0x59, 0x7d, 0x4a, 0xb9, 0x25, 0xe6, 0x1e, 0xe9,
+ 0xee, 0x57, 0xb5, 0x2d,
+};
+static const struct drbg_kat_pr_false kat2248_t = {
+ 12, kat2248_entropyin, kat2248_nonce, kat2248_persstr,
+ kat2248_entropyinreseed, kat2248_addinreseed, kat2248_addin0,
+ kat2248_addin1, kat2248_retbits
+};
+static const struct drbg_kat kat2248 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2248_t
+};
+
+static const unsigned char kat2249_entropyin[] = {
+ 0x2a, 0xaa, 0x69, 0xcc, 0x44, 0x0e, 0x47, 0x4b, 0x6b, 0x99, 0x40, 0x57,
+ 0x4c, 0x03, 0x6b, 0x82, 0xf7, 0x24, 0xac, 0x97, 0xdf, 0xa8, 0x2c, 0x71,
+ 0xf4, 0x92, 0x34, 0x9b, 0xb7, 0xa8, 0xf9, 0xe5,
+};
+static const unsigned char kat2249_nonce[] = {0};
+static const unsigned char kat2249_persstr[] = {0};
+static const unsigned char kat2249_entropyinreseed[] = {
+ 0x21, 0x31, 0x86, 0x6c, 0x96, 0x02, 0x62, 0xf4, 0x04, 0xad, 0x53, 0x59,
+ 0x67, 0xc5, 0x18, 0xf3, 0xf2, 0xe3, 0x64, 0xc4, 0xbb, 0x6d, 0xae, 0xb0,
+ 0xc4, 0xd7, 0x44, 0xbf, 0xc8, 0xfc, 0x83, 0xa0,
+};
+static const unsigned char kat2249_addinreseed[] = {
+ 0x33, 0xf7, 0xd1, 0x0b, 0xb1, 0xc6, 0x6a, 0xe0, 0x77, 0x1b, 0xa4, 0xfe,
+ 0x61, 0x93, 0xac, 0x27, 0x12, 0x01, 0xd6, 0x81, 0xe8, 0xe5, 0x80, 0x82,
+ 0xdf, 0x16, 0x32, 0xe5, 0xba, 0xee, 0x67, 0xa9,
+};
+static const unsigned char kat2249_addin0[] = {
+ 0xcf, 0x75, 0xd2, 0x02, 0xc5, 0xf3, 0x6a, 0x4d, 0x7a, 0x40, 0xce, 0x08,
+ 0x89, 0xb7, 0x92, 0x0b, 0x57, 0xcf, 0x9e, 0x55, 0xe9, 0xbe, 0xd3, 0x9c,
+ 0x06, 0x88, 0x79, 0x0d, 0xdf, 0x3b, 0xa7, 0x39,
+};
+static const unsigned char kat2249_addin1[] = {
+ 0x34, 0x5e, 0xea, 0x83, 0x40, 0x59, 0x40, 0xc2, 0xce, 0x5f, 0x32, 0xbe,
+ 0xba, 0x44, 0x57, 0x06, 0xe3, 0xd2, 0xd9, 0x12, 0x96, 0x1e, 0x0f, 0xc8,
+ 0x69, 0xee, 0x46, 0xed, 0x2f, 0x5d, 0x81, 0xb6,
+};
+static const unsigned char kat2249_retbits[] = {
+ 0xe3, 0x89, 0x19, 0x7c, 0x83, 0xf4, 0x32, 0xea, 0xe5, 0xaf, 0xbe, 0x2d,
+ 0xd4, 0x61, 0xdd, 0xf7, 0xea, 0xc0, 0x9b, 0xc8, 0xf9, 0x2a, 0xba, 0x0f,
+ 0x72, 0x6d, 0xd6, 0xd8, 0x57, 0x96, 0xf3, 0x47, 0x7f, 0x2b, 0x1e, 0xaf,
+ 0x50, 0x1d, 0x7f, 0x37, 0xb1, 0x73, 0x89, 0xca, 0xe9, 0x5c, 0x09, 0xe5,
+ 0xd4, 0xf2, 0x40, 0xa2, 0x77, 0xc9, 0xc9, 0x69, 0x56, 0x50, 0x0c, 0xaa,
+ 0x30, 0xea, 0xae, 0x28,
+};
+static const struct drbg_kat_pr_false kat2249_t = {
+ 13, kat2249_entropyin, kat2249_nonce, kat2249_persstr,
+ kat2249_entropyinreseed, kat2249_addinreseed, kat2249_addin0,
+ kat2249_addin1, kat2249_retbits
+};
+static const struct drbg_kat kat2249 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2249_t
+};
+
+static const unsigned char kat2250_entropyin[] = {
+ 0x9d, 0xd2, 0xb8, 0x4f, 0x4b, 0xa3, 0xbc, 0x67, 0xf5, 0x90, 0xee, 0xfd,
+ 0x75, 0xd5, 0x6b, 0xab, 0xf3, 0x37, 0x27, 0x40, 0x5a, 0x38, 0xa2, 0xd1,
+ 0xcd, 0x2a, 0x5b, 0xaf, 0xbb, 0x0d, 0xb2, 0x7c,
+};
+static const unsigned char kat2250_nonce[] = {0};
+static const unsigned char kat2250_persstr[] = {0};
+static const unsigned char kat2250_entropyinreseed[] = {
+ 0x4f, 0x21, 0xf5, 0x60, 0x76, 0x32, 0xc2, 0x86, 0x8e, 0x58, 0x48, 0xa6,
+ 0xbc, 0x9c, 0x6e, 0x17, 0xa1, 0xf6, 0x28, 0x22, 0xf9, 0x1a, 0x9a, 0x77,
+ 0xcf, 0x83, 0xfb, 0xe0, 0xf8, 0x12, 0xc6, 0xc7,
+};
+static const unsigned char kat2250_addinreseed[] = {
+ 0xf9, 0x08, 0x4e, 0x1f, 0xd6, 0xae, 0x34, 0x6c, 0x89, 0x20, 0x4b, 0x22,
+ 0xa7, 0x7a, 0x87, 0x9d, 0xda, 0xad, 0xb4, 0x2a, 0x1d, 0xcf, 0x5d, 0xa0,
+ 0x18, 0xc6, 0xb3, 0x06, 0xdf, 0xef, 0x11, 0x69,
+};
+static const unsigned char kat2250_addin0[] = {
+ 0xcc, 0x92, 0xf0, 0x9a, 0x3b, 0x12, 0xf2, 0x9d, 0x9e, 0x73, 0x25, 0x3c,
+ 0x26, 0x1e, 0x82, 0x81, 0x96, 0xfa, 0x54, 0x0a, 0x90, 0x24, 0x63, 0x26,
+ 0x65, 0xc6, 0xc2, 0x5a, 0x41, 0x9b, 0x1f, 0x86,
+};
+static const unsigned char kat2250_addin1[] = {
+ 0x53, 0x11, 0x37, 0x03, 0xa3, 0x36, 0x2b, 0x3e, 0xef, 0xb0, 0xc1, 0x25,
+ 0x87, 0xfa, 0x25, 0xa6, 0x20, 0xe0, 0x9e, 0x0c, 0xb6, 0x3a, 0xcb, 0x3f,
+ 0x7b, 0x74, 0x47, 0x16, 0x18, 0xcc, 0x0d, 0x05,
+};
+static const unsigned char kat2250_retbits[] = {
+ 0xee, 0xf4, 0x85, 0x0d, 0x91, 0xb6, 0x35, 0x08, 0xbd, 0xf3, 0x25, 0x7c,
+ 0x4b, 0x66, 0xc8, 0xc0, 0x22, 0xa6, 0x86, 0x9c, 0xc8, 0xd9, 0x47, 0x3e,
+ 0x5f, 0x57, 0x9d, 0x10, 0x3c, 0x67, 0x22, 0x5c, 0x04, 0xe3, 0x99, 0x4f,
+ 0x14, 0xc3, 0x1f, 0xf0, 0xe3, 0x28, 0xc1, 0xad, 0xdd, 0xc8, 0xd8, 0xf6,
+ 0xb1, 0xf2, 0xe7, 0x04, 0x09, 0x32, 0x5a, 0x35, 0x3e, 0xec, 0x19, 0xc4,
+ 0x20, 0x35, 0x2b, 0x7c,
+};
+static const struct drbg_kat_pr_false kat2250_t = {
+ 14, kat2250_entropyin, kat2250_nonce, kat2250_persstr,
+ kat2250_entropyinreseed, kat2250_addinreseed, kat2250_addin0,
+ kat2250_addin1, kat2250_retbits
+};
+static const struct drbg_kat kat2250 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2250_t
+};
+
+static const unsigned char kat2251_entropyin[] = {
+ 0x5c, 0xd1, 0xdf, 0x6d, 0xb5, 0x8e, 0xa5, 0x07, 0x83, 0x8d, 0x74, 0x26,
+ 0xb3, 0xfb, 0x48, 0x40, 0x2c, 0xd1, 0x4a, 0xb7, 0x5a, 0xbb, 0xde, 0xf3,
+ 0x3c, 0xe3, 0x0f, 0xb9, 0x7c, 0x53, 0x09, 0x98,
+};
+static const unsigned char kat2251_nonce[] = {0};
+static const unsigned char kat2251_persstr[] = {
+ 0x35, 0x14, 0x20, 0xc0, 0x26, 0x3c, 0xe1, 0x1e, 0xe8, 0xb6, 0x83, 0xf6,
+ 0x10, 0x61, 0x30, 0xc6, 0x7f, 0xf1, 0xc6, 0x55, 0xc4, 0xe6, 0x78, 0x82,
+ 0x52, 0x93, 0xf0, 0x04, 0xd2, 0x7c, 0x54, 0x24,
+};
+static const unsigned char kat2251_entropyinreseed[] = {
+ 0x99, 0xe6, 0x85, 0x0f, 0xa2, 0x91, 0x31, 0xbf, 0xc7, 0x48, 0xb2, 0xe7,
+ 0x4e, 0x0f, 0xd6, 0x2a, 0xcc, 0x4b, 0xe4, 0xe9, 0xb5, 0xf0, 0x64, 0x47,
+ 0xdc, 0x26, 0xf7, 0x72, 0xc0, 0x24, 0x15, 0x61,
+};
+static const unsigned char kat2251_addinreseed[] = {0};
+static const unsigned char kat2251_addin0[] = {0};
+static const unsigned char kat2251_addin1[] = {0};
+static const unsigned char kat2251_retbits[] = {
+ 0xf6, 0x04, 0x0a, 0xf8, 0xae, 0x7a, 0xb0, 0x4c, 0xde, 0x02, 0xbe, 0x25,
+ 0xaf, 0x95, 0xde, 0xda, 0xda, 0x3b, 0x10, 0x32, 0x1c, 0x41, 0x8c, 0x7a,
+ 0xf4, 0xed, 0x5b, 0xc8, 0x2e, 0x28, 0xeb, 0xf7, 0x78, 0xae, 0x42, 0x48,
+ 0xc5, 0x65, 0x29, 0x2e, 0x4c, 0xb8, 0xec, 0xcd, 0x40, 0xf1, 0x8a, 0x38,
+ 0x28, 0x48, 0xb4, 0x0d, 0x74, 0x41, 0xa2, 0x91, 0xcc, 0x9e, 0xe8, 0x46,
+ 0x5c, 0xbe, 0x5f, 0xd6,
+};
+static const struct drbg_kat_pr_false kat2251_t = {
+ 0, kat2251_entropyin, kat2251_nonce, kat2251_persstr,
+ kat2251_entropyinreseed, kat2251_addinreseed, kat2251_addin0,
+ kat2251_addin1, kat2251_retbits
+};
+static const struct drbg_kat kat2251 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2251_t
+};
+
+static const unsigned char kat2252_entropyin[] = {
+ 0x5a, 0x6d, 0xb1, 0xb1, 0xec, 0x99, 0xb8, 0x15, 0x05, 0xa6, 0x7f, 0x8c,
+ 0x22, 0xe4, 0x86, 0x9d, 0xd2, 0x2f, 0xeb, 0x9e, 0xb9, 0x42, 0xc2, 0x69,
+ 0xed, 0xbd, 0x5c, 0x9a, 0x85, 0x17, 0xa6, 0x83,
+};
+static const unsigned char kat2252_nonce[] = {0};
+static const unsigned char kat2252_persstr[] = {
+ 0xb7, 0x41, 0xa4, 0xc1, 0xeb, 0xfa, 0x69, 0x3a, 0xf8, 0xce, 0x1d, 0x2a,
+ 0xb1, 0x65, 0xba, 0xda, 0xcd, 0xc9, 0xa8, 0xbe, 0x61, 0xe2, 0x94, 0x4e,
+ 0xae, 0xe5, 0xb1, 0xb0, 0xdb, 0xd7, 0xa1, 0xa3,
+};
+static const unsigned char kat2252_entropyinreseed[] = {
+ 0x51, 0x0b, 0x0c, 0xec, 0x9b, 0x8e, 0x18, 0x2a, 0xa4, 0xed, 0x96, 0xdc,
+ 0xd7, 0x74, 0xc2, 0x41, 0xad, 0x98, 0xfc, 0x45, 0xd2, 0xd8, 0x17, 0x92,
+ 0x8a, 0x1b, 0x60, 0x13, 0xfb, 0xa6, 0xc9, 0xd4,
+};
+static const unsigned char kat2252_addinreseed[] = {0};
+static const unsigned char kat2252_addin0[] = {0};
+static const unsigned char kat2252_addin1[] = {0};
+static const unsigned char kat2252_retbits[] = {
+ 0xc0, 0x13, 0x52, 0x85, 0xad, 0xa6, 0xde, 0x39, 0x3f, 0xcc, 0xf2, 0x5e,
+ 0x20, 0xae, 0xb9, 0xd1, 0x06, 0x5d, 0x56, 0x71, 0xf5, 0x46, 0x2d, 0x15,
+ 0xf5, 0x9e, 0x54, 0xc1, 0x58, 0xfd, 0xd4, 0x82, 0x91, 0x20, 0xa2, 0xa6,
+ 0x78, 0xed, 0x79, 0xf6, 0x10, 0xd4, 0xbe, 0x30, 0x62, 0xbc, 0x37, 0xba,
+ 0x5a, 0x32, 0x9b, 0x6b, 0x1f, 0x25, 0x6e, 0x30, 0x62, 0xde, 0x33, 0x23,
+ 0xca, 0x50, 0xce, 0x13,
+};
+static const struct drbg_kat_pr_false kat2252_t = {
+ 1, kat2252_entropyin, kat2252_nonce, kat2252_persstr,
+ kat2252_entropyinreseed, kat2252_addinreseed, kat2252_addin0,
+ kat2252_addin1, kat2252_retbits
+};
+static const struct drbg_kat kat2252 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2252_t
+};
+
+static const unsigned char kat2253_entropyin[] = {
+ 0x9b, 0xdd, 0xb6, 0x2c, 0x4b, 0xdb, 0x84, 0x27, 0x24, 0x8f, 0x71, 0x9c,
+ 0x49, 0x70, 0x1e, 0xb2, 0x27, 0x8d, 0x72, 0x40, 0x85, 0xf6, 0xc7, 0xd3,
+ 0xfe, 0xf2, 0x62, 0x3a, 0x83, 0xdb, 0xce, 0xd4,
+};
+static const unsigned char kat2253_nonce[] = {0};
+static const unsigned char kat2253_persstr[] = {
+ 0xc0, 0xb7, 0x99, 0x37, 0x47, 0xee, 0x00, 0x3e, 0xfc, 0xc9, 0x7f, 0xff,
+ 0x09, 0x40, 0xc4, 0x44, 0x62, 0xd4, 0x65, 0x62, 0x85, 0x1c, 0x2b, 0x94,
+ 0xb0, 0x67, 0xb8, 0x99, 0xc9, 0xf7, 0x6c, 0x85,
+};
+static const unsigned char kat2253_entropyinreseed[] = {
+ 0x76, 0x02, 0x5a, 0xa8, 0x8b, 0x1a, 0xb2, 0xb2, 0xac, 0x51, 0xee, 0x5e,
+ 0x4b, 0x8a, 0xaa, 0xda, 0x34, 0x17, 0x2e, 0x82, 0x65, 0xe0, 0x31, 0x87,
+ 0x59, 0x82, 0x14, 0xff, 0x35, 0xa2, 0x81, 0x12,
+};
+static const unsigned char kat2253_addinreseed[] = {0};
+static const unsigned char kat2253_addin0[] = {0};
+static const unsigned char kat2253_addin1[] = {0};
+static const unsigned char kat2253_retbits[] = {
+ 0xc9, 0x06, 0xb7, 0x32, 0xf1, 0x1b, 0xae, 0x67, 0xa1, 0x8d, 0x6a, 0x25,
+ 0xb8, 0xa6, 0x50, 0xc7, 0x81, 0xce, 0xa4, 0x84, 0x84, 0x8d, 0xfb, 0x3a,
+ 0x7e, 0x88, 0x8f, 0xc9, 0x50, 0x78, 0x35, 0x9f, 0x2a, 0x08, 0x0b, 0x24,
+ 0x49, 0x0f, 0x84, 0xfe, 0xf1, 0x72, 0xbe, 0xa8, 0xcb, 0x0d, 0x0b, 0x33,
+ 0xea, 0x15, 0x71, 0x3b, 0xe9, 0x42, 0x7a, 0x09, 0xa8, 0x8f, 0x92, 0x07,
+ 0x1a, 0xf0, 0x07, 0xe4,
+};
+static const struct drbg_kat_pr_false kat2253_t = {
+ 2, kat2253_entropyin, kat2253_nonce, kat2253_persstr,
+ kat2253_entropyinreseed, kat2253_addinreseed, kat2253_addin0,
+ kat2253_addin1, kat2253_retbits
+};
+static const struct drbg_kat kat2253 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2253_t
+};
+
+static const unsigned char kat2254_entropyin[] = {
+ 0x67, 0x05, 0xf1, 0x42, 0xd5, 0x38, 0x06, 0x41, 0x1d, 0xaf, 0xb8, 0x97,
+ 0x4b, 0x9e, 0x04, 0xea, 0x96, 0xbd, 0x7e, 0xac, 0xdf, 0x3c, 0xa9, 0x86,
+ 0x78, 0xb8, 0x1b, 0xae, 0xf9, 0xb7, 0x94, 0xa4,
+};
+static const unsigned char kat2254_nonce[] = {0};
+static const unsigned char kat2254_persstr[] = {
+ 0xdb, 0x70, 0xc6, 0xa6, 0x75, 0x35, 0x68, 0x3d, 0x89, 0xab, 0xda, 0x1f,
+ 0xbe, 0xfc, 0x14, 0x96, 0x73, 0xde, 0x4c, 0xed, 0x67, 0x61, 0x22, 0x78,
+ 0x94, 0xff, 0xb5, 0x27, 0xc1, 0x59, 0xb5, 0xf8,
+};
+static const unsigned char kat2254_entropyinreseed[] = {
+ 0x8d, 0xa0, 0x42, 0xd0, 0x50, 0xc7, 0x18, 0xcd, 0xa4, 0x25, 0x2d, 0xd0,
+ 0x08, 0x0f, 0x0f, 0x46, 0x39, 0x92, 0x15, 0x35, 0x0f, 0xa5, 0x1e, 0x07,
+ 0x7c, 0x5b, 0x13, 0xf0, 0xb7, 0x3a, 0xaa, 0xa0,
+};
+static const unsigned char kat2254_addinreseed[] = {0};
+static const unsigned char kat2254_addin0[] = {0};
+static const unsigned char kat2254_addin1[] = {0};
+static const unsigned char kat2254_retbits[] = {
+ 0x77, 0x0c, 0x82, 0x80, 0x4c, 0x7b, 0x56, 0xab, 0x52, 0x4f, 0xd7, 0x8c,
+ 0x47, 0xd6, 0x76, 0x9f, 0xc8, 0x08, 0x28, 0x5a, 0x41, 0x05, 0x7c, 0x1e,
+ 0xe3, 0x22, 0xe4, 0x6b, 0xc8, 0x65, 0x3b, 0x2c, 0x80, 0x6f, 0x3a, 0x27,
+ 0x9c, 0xa0, 0x02, 0x81, 0xf8, 0xa7, 0xee, 0x69, 0x11, 0x1e, 0xb4, 0x0b,
+ 0x98, 0xc6, 0x5b, 0x20, 0x31, 0xd9, 0x62, 0xef, 0x4f, 0x79, 0x2b, 0xda,
+ 0x00, 0x53, 0x38, 0xe9,
+};
+static const struct drbg_kat_pr_false kat2254_t = {
+ 3, kat2254_entropyin, kat2254_nonce, kat2254_persstr,
+ kat2254_entropyinreseed, kat2254_addinreseed, kat2254_addin0,
+ kat2254_addin1, kat2254_retbits
+};
+static const struct drbg_kat kat2254 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2254_t
+};
+
+static const unsigned char kat2255_entropyin[] = {
+ 0x9b, 0x5f, 0xfa, 0xe4, 0x15, 0x8f, 0xc3, 0x5d, 0x95, 0xb0, 0x57, 0x2b,
+ 0xf7, 0xc9, 0xa6, 0x72, 0xce, 0x2b, 0x60, 0xe6, 0x0a, 0xed, 0xff, 0x83,
+ 0xaa, 0x4e, 0x06, 0x25, 0xcc, 0xa3, 0xb1, 0x59,
+};
+static const unsigned char kat2255_nonce[] = {0};
+static const unsigned char kat2255_persstr[] = {
+ 0x1a, 0x7c, 0x4a, 0x9f, 0xed, 0x26, 0x24, 0xff, 0x83, 0xd0, 0x14, 0x2a,
+ 0x60, 0x1b, 0x88, 0x72, 0xf4, 0x38, 0xce, 0x20, 0xc1, 0xdf, 0xb2, 0x10,
+ 0xb5, 0xa0, 0x82, 0xaf, 0x2b, 0x2a, 0xb4, 0xc9,
+};
+static const unsigned char kat2255_entropyinreseed[] = {
+ 0x09, 0x69, 0xf8, 0x95, 0xd8, 0x62, 0xdb, 0x10, 0x41, 0xe5, 0x3a, 0xe2,
+ 0xc9, 0x94, 0xd2, 0xce, 0xb6, 0xe9, 0x47, 0x0a, 0x58, 0xa6, 0xdf, 0x29,
+ 0x40, 0xae, 0x1b, 0x22, 0x49, 0xce, 0x32, 0xa1,
+};
+static const unsigned char kat2255_addinreseed[] = {0};
+static const unsigned char kat2255_addin0[] = {0};
+static const unsigned char kat2255_addin1[] = {0};
+static const unsigned char kat2255_retbits[] = {
+ 0x8f, 0xb5, 0x52, 0xd8, 0x4b, 0x11, 0x19, 0x6e, 0xb6, 0x4d, 0x04, 0x3a,
+ 0xdf, 0x89, 0x13, 0x11, 0x6f, 0x66, 0xd2, 0x8a, 0x41, 0x72, 0x5b, 0xc1,
+ 0xfb, 0x91, 0x43, 0xe3, 0xf8, 0xfd, 0x92, 0xd8, 0xd5, 0xb5, 0xa8, 0x69,
+ 0x36, 0xe0, 0xe8, 0x35, 0xff, 0x93, 0x2c, 0x52, 0x47, 0xfb, 0xc4, 0x8e,
+ 0x94, 0x64, 0x8c, 0x10, 0xcb, 0x9c, 0x90, 0xda, 0xd3, 0x54, 0xcd, 0x42,
+ 0x5e, 0x0a, 0xe9, 0xff,
+};
+static const struct drbg_kat_pr_false kat2255_t = {
+ 4, kat2255_entropyin, kat2255_nonce, kat2255_persstr,
+ kat2255_entropyinreseed, kat2255_addinreseed, kat2255_addin0,
+ kat2255_addin1, kat2255_retbits
+};
+static const struct drbg_kat kat2255 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2255_t
+};
+
+static const unsigned char kat2256_entropyin[] = {
+ 0xf9, 0xd4, 0x0e, 0x13, 0x7f, 0xbe, 0xdb, 0xba, 0xfd, 0x71, 0xf9, 0x7c,
+ 0x22, 0x05, 0xf4, 0x32, 0x52, 0x7e, 0x7a, 0x72, 0xd4, 0x52, 0xff, 0x45,
+ 0xeb, 0xc3, 0x11, 0xe2, 0x1c, 0x1a, 0x71, 0xad,
+};
+static const unsigned char kat2256_nonce[] = {0};
+static const unsigned char kat2256_persstr[] = {
+ 0xcc, 0x37, 0x6a, 0x45, 0xb3, 0x70, 0x3a, 0x58, 0xc5, 0x56, 0x0b, 0x1b,
+ 0xe1, 0x4a, 0x53, 0xc0, 0xe9, 0x1a, 0x90, 0x0a, 0x14, 0xbb, 0x88, 0xa8,
+ 0x77, 0x0d, 0x8d, 0xa3, 0xec, 0x27, 0x58, 0xe9,
+};
+static const unsigned char kat2256_entropyinreseed[] = {
+ 0x2f, 0x33, 0x6b, 0x89, 0x32, 0x96, 0xb7, 0x8c, 0x8a, 0xa9, 0xc3, 0x8e,
+ 0xa2, 0xf9, 0x17, 0xe1, 0x16, 0xa0, 0x3b, 0xb7, 0xf7, 0xa4, 0x5c, 0x14,
+ 0x20, 0xd7, 0xfc, 0x98, 0x0e, 0x2c, 0x10, 0xd9,
+};
+static const unsigned char kat2256_addinreseed[] = {0};
+static const unsigned char kat2256_addin0[] = {0};
+static const unsigned char kat2256_addin1[] = {0};
+static const unsigned char kat2256_retbits[] = {
+ 0xa8, 0x44, 0x99, 0x2c, 0xe6, 0x06, 0x87, 0xd5, 0xb1, 0xed, 0x23, 0x53,
+ 0xbd, 0x5b, 0xfa, 0xd0, 0x24, 0x7e, 0xd3, 0xe7, 0xad, 0xa6, 0x7d, 0x4d,
+ 0x41, 0x70, 0xff, 0x41, 0x2e, 0xa8, 0x6d, 0x72, 0xab, 0xb8, 0xe7, 0xa5,
+ 0x0f, 0x8f, 0x14, 0x6c, 0xc2, 0xcd, 0xa0, 0xc2, 0x20, 0x09, 0x4f, 0xd8,
+ 0x07, 0x4c, 0x11, 0x82, 0x71, 0xea, 0xbe, 0xe7, 0xa2, 0x7c, 0xb5, 0x3c,
+ 0xbf, 0x7a, 0x1a, 0x18,
+};
+static const struct drbg_kat_pr_false kat2256_t = {
+ 5, kat2256_entropyin, kat2256_nonce, kat2256_persstr,
+ kat2256_entropyinreseed, kat2256_addinreseed, kat2256_addin0,
+ kat2256_addin1, kat2256_retbits
+};
+static const struct drbg_kat kat2256 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2256_t
+};
+
+static const unsigned char kat2257_entropyin[] = {
+ 0xa9, 0x00, 0x72, 0xab, 0x36, 0x11, 0xcb, 0x02, 0xc1, 0xe7, 0x0e, 0x11,
+ 0x26, 0x06, 0xd7, 0xbd, 0xfd, 0x49, 0x45, 0x77, 0x74, 0xe4, 0xf3, 0xdb,
+ 0x23, 0xb2, 0xfb, 0x6b, 0xcd, 0xdd, 0x1f, 0xd7,
+};
+static const unsigned char kat2257_nonce[] = {0};
+static const unsigned char kat2257_persstr[] = {
+ 0x94, 0x0c, 0xf9, 0x7c, 0x25, 0xeb, 0x52, 0x49, 0x69, 0xe0, 0x4a, 0x47,
+ 0x04, 0x45, 0x88, 0x1a, 0x39, 0x40, 0xc0, 0x4d, 0x64, 0x8f, 0x41, 0x80,
+ 0x2b, 0x55, 0x88, 0xe4, 0xfe, 0x74, 0x49, 0x2e,
+};
+static const unsigned char kat2257_entropyinreseed[] = {
+ 0x05, 0x00, 0x26, 0x40, 0xb6, 0x43, 0xa0, 0x7e, 0xf9, 0x97, 0x1e, 0x38,
+ 0x07, 0xaa, 0x11, 0x8f, 0x40, 0xa3, 0x57, 0x31, 0x75, 0x68, 0xda, 0xd1,
+ 0x11, 0x9f, 0x00, 0xf6, 0x10, 0x0a, 0xcc, 0x41,
+};
+static const unsigned char kat2257_addinreseed[] = {0};
+static const unsigned char kat2257_addin0[] = {0};
+static const unsigned char kat2257_addin1[] = {0};
+static const unsigned char kat2257_retbits[] = {
+ 0x55, 0x80, 0x0b, 0xec, 0xd4, 0x0c, 0x19, 0xb7, 0xa1, 0x15, 0xa0, 0xcb,
+ 0xbf, 0x96, 0x4b, 0x2b, 0x59, 0x18, 0x90, 0xc4, 0x9e, 0x1f, 0xc9, 0x8a,
+ 0x65, 0xa6, 0x47, 0x1a, 0x51, 0xf6, 0xbd, 0x9a, 0x2e, 0xbd, 0x17, 0x7a,
+ 0x65, 0xb5, 0xcc, 0x0e, 0xf7, 0x22, 0x34, 0x08, 0x0f, 0x64, 0x8c, 0x93,
+ 0x8a, 0xe4, 0xa2, 0x02, 0x78, 0x76, 0x4c, 0x66, 0x94, 0x56, 0xba, 0xcf,
+ 0x71, 0x40, 0xf2, 0xbe,
+};
+static const struct drbg_kat_pr_false kat2257_t = {
+ 6, kat2257_entropyin, kat2257_nonce, kat2257_persstr,
+ kat2257_entropyinreseed, kat2257_addinreseed, kat2257_addin0,
+ kat2257_addin1, kat2257_retbits
+};
+static const struct drbg_kat kat2257 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2257_t
+};
+
+static const unsigned char kat2258_entropyin[] = {
+ 0x8d, 0xb0, 0x2f, 0x21, 0xf2, 0x60, 0xe4, 0x6e, 0x9e, 0x76, 0x72, 0x1a,
+ 0x6d, 0xfb, 0xd9, 0x42, 0x2e, 0xfc, 0x87, 0x1f, 0x4f, 0x9b, 0x10, 0x62,
+ 0x29, 0x4c, 0x5c, 0x59, 0xe7, 0x6d, 0xb9, 0x9d,
+};
+static const unsigned char kat2258_nonce[] = {0};
+static const unsigned char kat2258_persstr[] = {
+ 0xb1, 0xb9, 0x90, 0xc2, 0x91, 0x09, 0xb8, 0x72, 0x4e, 0x31, 0x6f, 0x19,
+ 0xb8, 0x9b, 0x4a, 0xd7, 0x96, 0x0e, 0xb8, 0x4c, 0x88, 0x4d, 0xb0, 0x59,
+ 0xbc, 0x67, 0x88, 0xe2, 0x49, 0x9b, 0x51, 0x59,
+};
+static const unsigned char kat2258_entropyinreseed[] = {
+ 0xb7, 0xda, 0xdb, 0xd5, 0x3e, 0xd4, 0x60, 0x73, 0xf2, 0x0b, 0xab, 0x20,
+ 0x2a, 0x55, 0x9b, 0xc5, 0x70, 0x46, 0xcc, 0x8f, 0x54, 0x83, 0xe2, 0x68,
+ 0xdd, 0x88, 0xd9, 0xbd, 0x38, 0x65, 0xc2, 0x42,
+};
+static const unsigned char kat2258_addinreseed[] = {0};
+static const unsigned char kat2258_addin0[] = {0};
+static const unsigned char kat2258_addin1[] = {0};
+static const unsigned char kat2258_retbits[] = {
+ 0x78, 0xe6, 0x38, 0x9d, 0xe4, 0xa6, 0x32, 0xea, 0x5a, 0xaf, 0xcd, 0x2b,
+ 0x31, 0xe0, 0xf0, 0x49, 0x20, 0xb2, 0x24, 0xd8, 0x66, 0xa9, 0x76, 0x3c,
+ 0xd6, 0xce, 0x33, 0xea, 0x67, 0x9d, 0x11, 0xc3, 0xf5, 0xc3, 0x61, 0xb9,
+ 0xdd, 0x7c, 0x89, 0x5e, 0x45, 0x10, 0x8d, 0xb2, 0xad, 0x03, 0x9e, 0x42,
+ 0xd6, 0xcf, 0xd1, 0xf8, 0xdb, 0x64, 0x09, 0xed, 0x8b, 0xde, 0x1e, 0xa2,
+ 0xb6, 0x3e, 0x9b, 0x5c,
+};
+static const struct drbg_kat_pr_false kat2258_t = {
+ 7, kat2258_entropyin, kat2258_nonce, kat2258_persstr,
+ kat2258_entropyinreseed, kat2258_addinreseed, kat2258_addin0,
+ kat2258_addin1, kat2258_retbits
+};
+static const struct drbg_kat kat2258 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2258_t
+};
+
+static const unsigned char kat2259_entropyin[] = {
+ 0xe9, 0x29, 0x1a, 0x80, 0x0e, 0xa9, 0x0c, 0x06, 0x9b, 0x52, 0x60, 0xf0,
+ 0x00, 0xc9, 0x4b, 0x14, 0x6d, 0x95, 0xd3, 0xd6, 0x4c, 0xf4, 0xae, 0x7b,
+ 0x97, 0x48, 0xc5, 0xa8, 0x5e, 0x0a, 0x08, 0x9f,
+};
+static const unsigned char kat2259_nonce[] = {0};
+static const unsigned char kat2259_persstr[] = {
+ 0xf7, 0x87, 0x51, 0x5a, 0xde, 0x3a, 0x38, 0x84, 0xd7, 0x3d, 0x85, 0x72,
+ 0xef, 0x11, 0x0f, 0x64, 0x48, 0x15, 0x3b, 0xf1, 0xe0, 0x52, 0xe7, 0x6d,
+ 0x79, 0x36, 0xc3, 0xbb, 0x10, 0x7c, 0xc1, 0xa4,
+};
+static const unsigned char kat2259_entropyinreseed[] = {
+ 0xe8, 0x1b, 0xc7, 0x0f, 0x7d, 0x11, 0x6d, 0x9c, 0x2a, 0xab, 0x9f, 0xd9,
+ 0x90, 0x0a, 0x93, 0x85, 0x91, 0xf7, 0x25, 0xc1, 0x88, 0x1f, 0x39, 0x1f,
+ 0x93, 0xf1, 0xe8, 0x4c, 0x67, 0xed, 0xbf, 0xba,
+};
+static const unsigned char kat2259_addinreseed[] = {0};
+static const unsigned char kat2259_addin0[] = {0};
+static const unsigned char kat2259_addin1[] = {0};
+static const unsigned char kat2259_retbits[] = {
+ 0x83, 0xf9, 0x86, 0xa5, 0xf8, 0x3a, 0x59, 0x12, 0x6d, 0xc8, 0x61, 0xe0,
+ 0xa6, 0x5a, 0x9f, 0x45, 0x44, 0x62, 0xb8, 0xf5, 0xaf, 0xa6, 0xf4, 0xdc,
+ 0x72, 0x4d, 0x11, 0x93, 0x6a, 0xe1, 0xa1, 0x49, 0x42, 0x23, 0x8c, 0x7c,
+ 0xe8, 0x5a, 0xa2, 0x7b, 0x80, 0xed, 0x71, 0x19, 0xd4, 0xc3, 0xd3, 0x84,
+ 0xb9, 0x12, 0x4a, 0xe5, 0xd6, 0x64, 0xd9, 0xa1, 0xd0, 0x09, 0x3c, 0xf6,
+ 0x9f, 0xa1, 0x2f, 0x80,
+};
+static const struct drbg_kat_pr_false kat2259_t = {
+ 8, kat2259_entropyin, kat2259_nonce, kat2259_persstr,
+ kat2259_entropyinreseed, kat2259_addinreseed, kat2259_addin0,
+ kat2259_addin1, kat2259_retbits
+};
+static const struct drbg_kat kat2259 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2259_t
+};
+
+static const unsigned char kat2260_entropyin[] = {
+ 0x13, 0x53, 0xd6, 0x86, 0x1c, 0x03, 0x4f, 0x22, 0x09, 0x7d, 0x5c, 0xf4,
+ 0xc6, 0x75, 0x27, 0x5d, 0xdb, 0x58, 0x8d, 0xbc, 0x5a, 0xc3, 0x15, 0xb7,
+ 0x25, 0x62, 0xb6, 0x4a, 0xaf, 0x84, 0xcd, 0x24,
+};
+static const unsigned char kat2260_nonce[] = {0};
+static const unsigned char kat2260_persstr[] = {
+ 0x56, 0x32, 0x41, 0x7e, 0x26, 0x80, 0x24, 0x19, 0x67, 0xbf, 0x72, 0x7d,
+ 0x6f, 0xb8, 0xa7, 0x46, 0x04, 0xdc, 0x63, 0x5b, 0x3d, 0x05, 0xea, 0x70,
+ 0xda, 0xb6, 0xb0, 0xfd, 0xac, 0xb0, 0xbe, 0xbe,
+};
+static const unsigned char kat2260_entropyinreseed[] = {
+ 0xc9, 0x0f, 0x5e, 0x48, 0x66, 0xf6, 0xc7, 0x6f, 0x9d, 0x75, 0x41, 0x88,
+ 0x2e, 0x38, 0x61, 0x78, 0xad, 0xa3, 0xe2, 0x9c, 0x7a, 0xa4, 0x32, 0x96,
+ 0x39, 0xb8, 0xe6, 0x16, 0x7b, 0x1a, 0x2d, 0x20,
+};
+static const unsigned char kat2260_addinreseed[] = {0};
+static const unsigned char kat2260_addin0[] = {0};
+static const unsigned char kat2260_addin1[] = {0};
+static const unsigned char kat2260_retbits[] = {
+ 0x49, 0x67, 0x9c, 0x5f, 0x86, 0x1a, 0xfa, 0xd3, 0x5f, 0xf1, 0xd2, 0xd1,
+ 0xa5, 0x23, 0x53, 0xfb, 0xd7, 0x5c, 0x76, 0x1b, 0xa0, 0xb9, 0xb8, 0xfd,
+ 0xc8, 0x3f, 0x7c, 0xe2, 0x6c, 0xb6, 0x48, 0x95, 0x7d, 0x74, 0xf8, 0x58,
+ 0x8f, 0x62, 0x3e, 0xc4, 0xba, 0x24, 0x4d, 0x97, 0x07, 0xc1, 0x3b, 0x07,
+ 0xeb, 0x6f, 0xa1, 0xac, 0xf3, 0x7c, 0xc1, 0x34, 0x1f, 0x59, 0x55, 0x77,
+ 0x8d, 0xee, 0xb7, 0x46,
+};
+static const struct drbg_kat_pr_false kat2260_t = {
+ 9, kat2260_entropyin, kat2260_nonce, kat2260_persstr,
+ kat2260_entropyinreseed, kat2260_addinreseed, kat2260_addin0,
+ kat2260_addin1, kat2260_retbits
+};
+static const struct drbg_kat kat2260 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2260_t
+};
+
+static const unsigned char kat2261_entropyin[] = {
+ 0x85, 0xc5, 0x08, 0xf0, 0x0b, 0x62, 0x85, 0xe4, 0xce, 0xf2, 0x18, 0x7b,
+ 0x28, 0x16, 0x9c, 0xe7, 0x2d, 0xc5, 0x69, 0xeb, 0xc1, 0xd2, 0x88, 0xbf,
+ 0xb3, 0x37, 0xfd, 0xd3, 0x6a, 0x52, 0x32, 0x85,
+};
+static const unsigned char kat2261_nonce[] = {0};
+static const unsigned char kat2261_persstr[] = {
+ 0x9c, 0xc8, 0xfb, 0x6e, 0xcc, 0x2c, 0x19, 0x65, 0x39, 0x86, 0x31, 0x59,
+ 0x40, 0xdb, 0x55, 0x23, 0x60, 0xa2, 0x5b, 0x5d, 0x8f, 0xe4, 0xb9, 0x14,
+ 0x2e, 0x15, 0xdc, 0x62, 0xc5, 0xbe, 0x19, 0xf0,
+};
+static const unsigned char kat2261_entropyinreseed[] = {
+ 0x05, 0x0a, 0xf1, 0x10, 0x89, 0x67, 0xaf, 0x92, 0x6f, 0xca, 0xf4, 0xdf,
+ 0x07, 0x87, 0xc9, 0xe0, 0x39, 0x9a, 0x07, 0x20, 0x44, 0x52, 0x86, 0x60,
+ 0x94, 0x64, 0x6a, 0x4e, 0xe7, 0xff, 0x69, 0x2c,
+};
+static const unsigned char kat2261_addinreseed[] = {0};
+static const unsigned char kat2261_addin0[] = {0};
+static const unsigned char kat2261_addin1[] = {0};
+static const unsigned char kat2261_retbits[] = {
+ 0x71, 0x23, 0x2d, 0xff, 0x0b, 0x88, 0x7e, 0x91, 0x44, 0x21, 0xdd, 0xe7,
+ 0xd3, 0xd9, 0x07, 0xa7, 0x42, 0x5e, 0x95, 0xe5, 0x99, 0x79, 0x46, 0x08,
+ 0x12, 0x0b, 0x6f, 0xa3, 0x3a, 0xe8, 0x75, 0x1f, 0xf3, 0x1d, 0x01, 0x99,
+ 0x69, 0x92, 0x44, 0x64, 0x4f, 0xe1, 0xe7, 0x51, 0x71, 0x20, 0xbe, 0x8b,
+ 0x28, 0xe8, 0x35, 0x33, 0x6f, 0x94, 0xc7, 0x9c, 0xc9, 0x4b, 0xf8, 0xdc,
+ 0x82, 0xa1, 0x02, 0xfb,
+};
+static const struct drbg_kat_pr_false kat2261_t = {
+ 10, kat2261_entropyin, kat2261_nonce, kat2261_persstr,
+ kat2261_entropyinreseed, kat2261_addinreseed, kat2261_addin0,
+ kat2261_addin1, kat2261_retbits
+};
+static const struct drbg_kat kat2261 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2261_t
+};
+
+static const unsigned char kat2262_entropyin[] = {
+ 0x4f, 0xe0, 0xd8, 0x99, 0x09, 0x01, 0xbd, 0x60, 0xd7, 0x8f, 0xdc, 0xe5,
+ 0xbb, 0xfa, 0xfb, 0xb8, 0x24, 0x73, 0x78, 0xa0, 0x8a, 0x83, 0xe6, 0xf5,
+ 0xfb, 0xa7, 0x95, 0x89, 0x81, 0x22, 0x54, 0xe7,
+};
+static const unsigned char kat2262_nonce[] = {0};
+static const unsigned char kat2262_persstr[] = {
+ 0x24, 0x0b, 0x77, 0x76, 0x0a, 0x80, 0x83, 0xdc, 0x5e, 0x1a, 0xb6, 0x2c,
+ 0x4b, 0x70, 0x45, 0x0a, 0x28, 0x41, 0xe2, 0x4f, 0xc3, 0xc3, 0xec, 0x74,
+ 0x02, 0xd5, 0x57, 0xdb, 0xe1, 0xf2, 0xf6, 0xa2,
+};
+static const unsigned char kat2262_entropyinreseed[] = {
+ 0x15, 0x2c, 0x88, 0x61, 0xdd, 0x1f, 0x1d, 0x1f, 0x6a, 0xb4, 0xe5, 0x65,
+ 0xa4, 0xe8, 0x7c, 0xb7, 0x46, 0x0d, 0xbe, 0x72, 0xe3, 0x43, 0x8a, 0x76,
+ 0x9e, 0xbc, 0xcf, 0xf3, 0x38, 0x8c, 0x2c, 0x29,
+};
+static const unsigned char kat2262_addinreseed[] = {0};
+static const unsigned char kat2262_addin0[] = {0};
+static const unsigned char kat2262_addin1[] = {0};
+static const unsigned char kat2262_retbits[] = {
+ 0xaa, 0x47, 0x57, 0x60, 0xe5, 0x01, 0x97, 0x2f, 0xe0, 0x4e, 0x42, 0xd9,
+ 0x0c, 0x62, 0x10, 0x87, 0x28, 0xb4, 0x2f, 0xfb, 0x9e, 0xcd, 0x5f, 0xc0,
+ 0x57, 0xc6, 0xc4, 0xd1, 0x90, 0xc1, 0x6d, 0x83, 0xc4, 0x2e, 0xf0, 0xf4,
+ 0xeb, 0x96, 0x55, 0x7a, 0xfd, 0xdb, 0x1b, 0xc7, 0x6a, 0x31, 0x9a, 0x81,
+ 0xfd, 0xf5, 0xe3, 0x16, 0xe4, 0xf9, 0x25, 0x25, 0x48, 0x39, 0x94, 0x5f,
+ 0xdd, 0x21, 0x32, 0x3a,
+};
+static const struct drbg_kat_pr_false kat2262_t = {
+ 11, kat2262_entropyin, kat2262_nonce, kat2262_persstr,
+ kat2262_entropyinreseed, kat2262_addinreseed, kat2262_addin0,
+ kat2262_addin1, kat2262_retbits
+};
+static const struct drbg_kat kat2262 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2262_t
+};
+
+static const unsigned char kat2263_entropyin[] = {
+ 0x76, 0xd9, 0x75, 0x22, 0xd2, 0x88, 0xa5, 0x78, 0x63, 0x10, 0xfb, 0x49,
+ 0xd3, 0x58, 0xa4, 0x0a, 0xc9, 0xcd, 0x59, 0xda, 0xc2, 0x00, 0xd1, 0x79,
+ 0xca, 0x42, 0xaf, 0x31, 0x74, 0xb9, 0x58, 0x14,
+};
+static const unsigned char kat2263_nonce[] = {0};
+static const unsigned char kat2263_persstr[] = {
+ 0xe3, 0x9b, 0x94, 0xd6, 0x96, 0xbd, 0x9d, 0x5a, 0xe2, 0xd2, 0x7a, 0x1c,
+ 0x23, 0x2e, 0x2c, 0xa4, 0xfa, 0xa8, 0x13, 0xfa, 0x1b, 0x34, 0xf7, 0x93,
+ 0xed, 0x7b, 0xa5, 0xd9, 0x31, 0xdc, 0xec, 0x34,
+};
+static const unsigned char kat2263_entropyinreseed[] = {
+ 0x8a, 0xe2, 0xcf, 0xb4, 0x4c, 0x92, 0x02, 0x03, 0x42, 0x45, 0xe8, 0xaa,
+ 0x88, 0x9a, 0x60, 0x38, 0x3a, 0x1f, 0x34, 0x99, 0x17, 0x2f, 0x46, 0x7b,
+ 0x23, 0xcc, 0x13, 0xd1, 0x48, 0x60, 0x0b, 0x4b,
+};
+static const unsigned char kat2263_addinreseed[] = {0};
+static const unsigned char kat2263_addin0[] = {0};
+static const unsigned char kat2263_addin1[] = {0};
+static const unsigned char kat2263_retbits[] = {
+ 0x1a, 0x04, 0xbe, 0x8e, 0x86, 0xc1, 0x59, 0x1f, 0x0b, 0x53, 0x86, 0xc8,
+ 0xd9, 0x2d, 0xdf, 0x7a, 0x29, 0xb9, 0x05, 0xe8, 0x63, 0xae, 0x96, 0x7a,
+ 0x48, 0x15, 0x7f, 0xb6, 0xb0, 0x8b, 0x89, 0x30, 0x51, 0x60, 0xdc, 0x72,
+ 0xd1, 0x20, 0x71, 0x52, 0xe7, 0x99, 0x87, 0xc0, 0x8e, 0x9e, 0x73, 0x22,
+ 0x41, 0x94, 0xfc, 0x5f, 0x19, 0x8e, 0x03, 0x4b, 0xc2, 0x12, 0x20, 0x82,
+ 0x28, 0xe2, 0xce, 0xb6,
+};
+static const struct drbg_kat_pr_false kat2263_t = {
+ 12, kat2263_entropyin, kat2263_nonce, kat2263_persstr,
+ kat2263_entropyinreseed, kat2263_addinreseed, kat2263_addin0,
+ kat2263_addin1, kat2263_retbits
+};
+static const struct drbg_kat kat2263 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2263_t
+};
+
+static const unsigned char kat2264_entropyin[] = {
+ 0x51, 0x16, 0x9f, 0xe1, 0x9e, 0xc2, 0xcc, 0x92, 0x4f, 0x66, 0x54, 0xae,
+ 0xa7, 0x7a, 0x9c, 0x18, 0x90, 0xf8, 0xa6, 0x4b, 0x34, 0x07, 0x1a, 0x69,
+ 0x4e, 0xb4, 0xdf, 0x88, 0xa0, 0xba, 0x6a, 0xec,
+};
+static const unsigned char kat2264_nonce[] = {0};
+static const unsigned char kat2264_persstr[] = {
+ 0x6b, 0x34, 0xc9, 0xfe, 0x6b, 0x14, 0x6f, 0xe9, 0x34, 0x2d, 0x4b, 0x1d,
+ 0xec, 0x10, 0xa5, 0x8b, 0x64, 0xc3, 0xf3, 0x8b, 0x12, 0x6f, 0xbe, 0xc4,
+ 0xc3, 0xb9, 0xa3, 0x77, 0x4f, 0xd6, 0x6a, 0x3e,
+};
+static const unsigned char kat2264_entropyinreseed[] = {
+ 0x0c, 0xd4, 0x46, 0x69, 0x9c, 0x1b, 0xf3, 0xfe, 0x98, 0x26, 0xd7, 0xfb,
+ 0xd0, 0x77, 0xac, 0x3b, 0x73, 0xd3, 0x43, 0x65, 0x03, 0xbc, 0x3d, 0x9a,
+ 0x4c, 0xba, 0x9c, 0xdb, 0xde, 0x7c, 0xe0, 0xf9,
+};
+static const unsigned char kat2264_addinreseed[] = {0};
+static const unsigned char kat2264_addin0[] = {0};
+static const unsigned char kat2264_addin1[] = {0};
+static const unsigned char kat2264_retbits[] = {
+ 0x37, 0x9e, 0x2a, 0xbd, 0xfd, 0xf6, 0x76, 0x4c, 0xb2, 0xac, 0x8c, 0xeb,
+ 0xdf, 0x57, 0x7b, 0xdf, 0xb5, 0x82, 0xda, 0x5e, 0xd5, 0x07, 0xd9, 0x6b,
+ 0xbd, 0x27, 0x84, 0xac, 0x6e, 0x18, 0xd4, 0xb3, 0xa5, 0x24, 0xd2, 0xf9,
+ 0x22, 0x6c, 0x21, 0x57, 0x2a, 0x54, 0x4d, 0x59, 0x2f, 0x49, 0x03, 0xb1,
+ 0xa5, 0x6c, 0xd1, 0x65, 0x1b, 0x0d, 0x0f, 0x0e, 0x2f, 0x13, 0xbe, 0xc3,
+ 0x11, 0x4c, 0x93, 0x57,
+};
+static const struct drbg_kat_pr_false kat2264_t = {
+ 13, kat2264_entropyin, kat2264_nonce, kat2264_persstr,
+ kat2264_entropyinreseed, kat2264_addinreseed, kat2264_addin0,
+ kat2264_addin1, kat2264_retbits
+};
+static const struct drbg_kat kat2264 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2264_t
+};
+
+static const unsigned char kat2265_entropyin[] = {
+ 0x85, 0xd2, 0xa6, 0xec, 0x8b, 0xe0, 0x12, 0xea, 0x4a, 0x50, 0x50, 0x51,
+ 0xed, 0x87, 0xa0, 0xa7, 0x4e, 0xbf, 0x60, 0xbf, 0xba, 0xc0, 0xed, 0x57,
+ 0x7d, 0xdc, 0xcf, 0xb1, 0x12, 0xfe, 0xd6, 0x3e,
+};
+static const unsigned char kat2265_nonce[] = {0};
+static const unsigned char kat2265_persstr[] = {
+ 0xa4, 0x8f, 0x64, 0xc6, 0x72, 0xf3, 0x76, 0x49, 0xb1, 0x26, 0x30, 0x15,
+ 0x7e, 0x15, 0xb9, 0x36, 0x4e, 0xe7, 0x54, 0x89, 0x84, 0xd9, 0x41, 0x71,
+ 0xb2, 0xa2, 0x91, 0x29, 0x2e, 0x54, 0xe1, 0x3e,
+};
+static const unsigned char kat2265_entropyinreseed[] = {
+ 0xc4, 0x93, 0x3f, 0x8a, 0x2a, 0xf9, 0x93, 0x89, 0x73, 0x2c, 0xbd, 0x01,
+ 0x20, 0xb6, 0x97, 0xb9, 0xad, 0x99, 0xe4, 0x82, 0x1f, 0x46, 0x10, 0xb6,
+ 0x6c, 0x18, 0xd9, 0xda, 0x0e, 0x28, 0xbd, 0x00,
+};
+static const unsigned char kat2265_addinreseed[] = {0};
+static const unsigned char kat2265_addin0[] = {0};
+static const unsigned char kat2265_addin1[] = {0};
+static const unsigned char kat2265_retbits[] = {
+ 0x77, 0xdc, 0x9c, 0x1b, 0x63, 0x6a, 0xcd, 0x5b, 0x76, 0xa3, 0x45, 0x3b,
+ 0x16, 0x84, 0x79, 0xce, 0x94, 0x7f, 0x4f, 0xc1, 0x40, 0x1c, 0xca, 0xd4,
+ 0xdc, 0x61, 0xd4, 0x63, 0x03, 0x70, 0xce, 0x21, 0xd2, 0x90, 0x17, 0x24,
+ 0x4c, 0xee, 0x50, 0x64, 0x4e, 0x36, 0x54, 0xe7, 0x02, 0xb6, 0x23, 0xe2,
+ 0x0f, 0xf4, 0x98, 0x61, 0x89, 0x07, 0x81, 0xa6, 0xbd, 0xb6, 0x8e, 0x5c,
+ 0xf3, 0xa7, 0x21, 0x6b,
+};
+static const struct drbg_kat_pr_false kat2265_t = {
+ 14, kat2265_entropyin, kat2265_nonce, kat2265_persstr,
+ kat2265_entropyinreseed, kat2265_addinreseed, kat2265_addin0,
+ kat2265_addin1, kat2265_retbits
+};
+static const struct drbg_kat kat2265 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2265_t
+};
+
+static const unsigned char kat2266_entropyin[] = {
+ 0x82, 0xaa, 0xbd, 0x90, 0x1b, 0x21, 0xbd, 0x5f, 0x54, 0x54, 0x47, 0x55,
+ 0xba, 0x1f, 0xb4, 0xc6, 0xa3, 0xf5, 0x99, 0x59, 0xe5, 0x9a, 0x20, 0x56,
+ 0x67, 0xdf, 0xcb, 0x5e, 0x76, 0x0b, 0xd4, 0xa5,
+};
+static const unsigned char kat2266_nonce[] = {0};
+static const unsigned char kat2266_persstr[] = {
+ 0x33, 0x78, 0x81, 0xb1, 0x6c, 0x89, 0xb8, 0xf4, 0x9f, 0x55, 0xa6, 0xe8,
+ 0x2b, 0xf1, 0xae, 0x98, 0x24, 0x77, 0x9b, 0x40, 0x15, 0xf3, 0x04, 0x4c,
+ 0x78, 0x0b, 0x23, 0x81, 0x6b, 0xb3, 0x99, 0xd6,
+};
+static const unsigned char kat2266_entropyinreseed[] = {
+ 0x2e, 0xd5, 0x33, 0xa7, 0xfa, 0x6b, 0xf1, 0x96, 0x57, 0x11, 0xb1, 0x2a,
+ 0x9d, 0x99, 0x37, 0x13, 0x9f, 0x52, 0xb6, 0x39, 0xf9, 0x40, 0x5b, 0x4a,
+ 0x40, 0xc8, 0xfc, 0x2f, 0xeb, 0xf6, 0x3b, 0x21,
+};
+static const unsigned char kat2266_addinreseed[] = {
+ 0x54, 0x44, 0xc8, 0xa3, 0xd8, 0x17, 0x0a, 0x64, 0x0a, 0x16, 0x19, 0xc8,
+ 0x7d, 0xfc, 0xa6, 0x60, 0xd6, 0xd2, 0xa7, 0x93, 0x5e, 0xb2, 0x1f, 0xb0,
+ 0x98, 0x8a, 0x12, 0x6c, 0x5f, 0x16, 0xef, 0x41,
+};
+static const unsigned char kat2266_addin0[] = {
+ 0xf7, 0xd8, 0x47, 0xa4, 0xc1, 0x8f, 0x86, 0x3f, 0x55, 0xfb, 0xa4, 0x05,
+ 0xd8, 0x99, 0xf8, 0x58, 0x09, 0x1c, 0x3a, 0x8e, 0x6e, 0x97, 0x4b, 0xdc,
+ 0xba, 0x58, 0xcd, 0x35, 0x63, 0xec, 0x63, 0xf1,
+};
+static const unsigned char kat2266_addin1[] = {
+ 0x35, 0xc8, 0x39, 0x3b, 0x03, 0x67, 0x4d, 0x9b, 0x89, 0x6b, 0x21, 0x30,
+ 0xe1, 0x06, 0x9d, 0x53, 0x77, 0x8f, 0xe5, 0x7a, 0x06, 0x3b, 0xcf, 0xcd,
+ 0x05, 0x1f, 0x7d, 0xe0, 0x36, 0xc9, 0x27, 0xbf,
+};
+static const unsigned char kat2266_retbits[] = {
+ 0xb2, 0x18, 0x61, 0xbb, 0xef, 0x51, 0xda, 0x17, 0x34, 0x7d, 0x72, 0x09,
+ 0x61, 0x37, 0x5e, 0x24, 0x4a, 0x34, 0xc3, 0x1c, 0x36, 0xf1, 0xa7, 0x56,
+ 0x85, 0x03, 0xb2, 0xdb, 0x6a, 0x33, 0x5b, 0x3c, 0xae, 0x2d, 0xb4, 0x13,
+ 0x0d, 0x4a, 0x1f, 0x35, 0x3d, 0x60, 0x85, 0xe3, 0x9f, 0xdd, 0xb8, 0xbe,
+ 0xa2, 0xa0, 0x41, 0x40, 0xf4, 0x44, 0x81, 0xf0, 0x79, 0x93, 0xa9, 0x3c,
+ 0x8e, 0xd0, 0xd1, 0xc1,
+};
+static const struct drbg_kat_pr_false kat2266_t = {
+ 0, kat2266_entropyin, kat2266_nonce, kat2266_persstr,
+ kat2266_entropyinreseed, kat2266_addinreseed, kat2266_addin0,
+ kat2266_addin1, kat2266_retbits
+};
+static const struct drbg_kat kat2266 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2266_t
+};
+
+static const unsigned char kat2267_entropyin[] = {
+ 0xe0, 0x1a, 0x0c, 0x42, 0xbf, 0x15, 0xd0, 0xac, 0x59, 0x3c, 0xd8, 0xf9,
+ 0xeb, 0x75, 0x72, 0x49, 0x01, 0x8d, 0x97, 0xcd, 0x02, 0x6a, 0x61, 0xbc,
+ 0x34, 0x2d, 0x1e, 0xfa, 0x22, 0x36, 0x04, 0x61,
+};
+static const unsigned char kat2267_nonce[] = {0};
+static const unsigned char kat2267_persstr[] = {
+ 0x12, 0x71, 0xb8, 0x19, 0x4e, 0x13, 0x16, 0xf8, 0xd9, 0xb8, 0xa0, 0xc9,
+ 0x11, 0x50, 0x2b, 0x6f, 0x9e, 0xee, 0x1a, 0x34, 0x73, 0xae, 0x0d, 0x6f,
+ 0xda, 0x0e, 0x43, 0xfd, 0x06, 0x68, 0x31, 0xc0,
+};
+static const unsigned char kat2267_entropyinreseed[] = {
+ 0xb8, 0x7a, 0x5f, 0x9c, 0xb5, 0x85, 0xd3, 0x33, 0xc7, 0x02, 0x37, 0x6c,
+ 0xd5, 0x43, 0xb0, 0x06, 0x24, 0xd9, 0x31, 0x2e, 0x2f, 0x64, 0xb6, 0x72,
+ 0x2c, 0x95, 0x02, 0x8e, 0xed, 0xe0, 0x0d, 0x98,
+};
+static const unsigned char kat2267_addinreseed[] = {
+ 0x4c, 0x6b, 0x42, 0x71, 0xd7, 0x8a, 0x3e, 0x4d, 0x99, 0x51, 0x2a, 0xe6,
+ 0xa0, 0xca, 0x7f, 0x8a, 0xd5, 0x9e, 0xf6, 0x7e, 0x28, 0x4c, 0x8d, 0x2a,
+ 0x40, 0x91, 0x6f, 0x5e, 0x83, 0xd1, 0x55, 0xde,
+};
+static const unsigned char kat2267_addin0[] = {
+ 0xbb, 0x4e, 0x5b, 0xd8, 0xde, 0xb2, 0xd2, 0xde, 0x49, 0x4f, 0x9d, 0x56,
+ 0x04, 0x1d, 0x4f, 0x56, 0xf1, 0x6f, 0xa6, 0x29, 0xd1, 0x7b, 0x54, 0xde,
+ 0x6c, 0x2c, 0x20, 0x18, 0xdf, 0xa0, 0xd8, 0xf2,
+};
+static const unsigned char kat2267_addin1[] = {
+ 0xc6, 0xd3, 0xae, 0xf9, 0xb3, 0xbf, 0x45, 0x75, 0x6d, 0x0b, 0x01, 0x7e,
+ 0xda, 0xff, 0x4e, 0x21, 0x62, 0x60, 0x9e, 0x47, 0xb7, 0x95, 0x4f, 0x5e,
+ 0xf9, 0xb4, 0x1b, 0x8f, 0xc6, 0x7e, 0x1b, 0x7a,
+};
+static const unsigned char kat2267_retbits[] = {
+ 0x5e, 0xb2, 0x51, 0x20, 0x20, 0xd1, 0xc1, 0xb7, 0xe8, 0x95, 0x1b, 0x20,
+ 0x66, 0x96, 0xfc, 0x76, 0xf8, 0x3e, 0x39, 0xc1, 0x8a, 0xac, 0x68, 0x2e,
+ 0x35, 0x96, 0x58, 0x68, 0x9a, 0xf7, 0x0c, 0x48, 0x62, 0xe1, 0xb8, 0x36,
+ 0x63, 0xfd, 0x24, 0x6c, 0xac, 0x02, 0xfc, 0x04, 0x55, 0xba, 0xbd, 0x6c,
+ 0xc3, 0xab, 0xc2, 0x06, 0xa3, 0x0a, 0x40, 0x59, 0xab, 0x48, 0x4a, 0x9d,
+ 0xa0, 0xff, 0x3d, 0x84,
+};
+static const struct drbg_kat_pr_false kat2267_t = {
+ 1, kat2267_entropyin, kat2267_nonce, kat2267_persstr,
+ kat2267_entropyinreseed, kat2267_addinreseed, kat2267_addin0,
+ kat2267_addin1, kat2267_retbits
+};
+static const struct drbg_kat kat2267 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2267_t
+};
+
+static const unsigned char kat2268_entropyin[] = {
+ 0x65, 0xcd, 0xfa, 0x76, 0xa8, 0xa8, 0xb9, 0x03, 0x34, 0x2c, 0xa6, 0x10,
+ 0xbc, 0x33, 0x92, 0xa0, 0xcc, 0x8c, 0x7a, 0x95, 0xe4, 0xd0, 0x6e, 0x32,
+ 0xbc, 0x11, 0x4b, 0x1e, 0x4e, 0x65, 0x4a, 0xfa,
+};
+static const unsigned char kat2268_nonce[] = {0};
+static const unsigned char kat2268_persstr[] = {
+ 0x21, 0x39, 0xe0, 0x15, 0x60, 0x03, 0x47, 0xdb, 0xd6, 0x0c, 0x2e, 0xcd,
+ 0x22, 0x03, 0x13, 0x8e, 0x13, 0xd2, 0xea, 0x2d, 0xd6, 0x7b, 0xc4, 0x4b,
+ 0x0e, 0x00, 0xd3, 0x15, 0xcf, 0xa9, 0xd0, 0x55,
+};
+static const unsigned char kat2268_entropyinreseed[] = {
+ 0x72, 0x06, 0x6f, 0x1f, 0x42, 0xf4, 0x60, 0x25, 0x18, 0xad, 0xe0, 0x8b,
+ 0xd8, 0x15, 0xd2, 0x21, 0x25, 0xe2, 0x46, 0x37, 0x6d, 0x0c, 0xdd, 0xfe,
+ 0xf3, 0xbb, 0xc8, 0x85, 0xc4, 0xec, 0x05, 0xe7,
+};
+static const unsigned char kat2268_addinreseed[] = {
+ 0xa3, 0x88, 0x76, 0x1c, 0xc3, 0x5d, 0xd4, 0x5c, 0x73, 0x76, 0x8f, 0xca,
+ 0x9b, 0x48, 0x56, 0xef, 0xdf, 0xc9, 0x82, 0x2d, 0x85, 0x83, 0x0a, 0x65,
+ 0x1a, 0x92, 0xae, 0x7e, 0xdd, 0xc4, 0x8d, 0x2c,
+};
+static const unsigned char kat2268_addin0[] = {
+ 0x47, 0x96, 0x50, 0xb8, 0x23, 0x5f, 0x72, 0x85, 0x0d, 0x5f, 0x09, 0x50,
+ 0x4e, 0xa6, 0x9f, 0x4f, 0x81, 0xf8, 0x82, 0x14, 0xce, 0x64, 0x57, 0xbb,
+ 0xaa, 0x8b, 0x5b, 0x6f, 0xdd, 0x03, 0xa5, 0x7a,
+};
+static const unsigned char kat2268_addin1[] = {
+ 0x7e, 0xba, 0x6b, 0x99, 0x4f, 0x4a, 0xfc, 0x2c, 0x75, 0x86, 0x0a, 0x71,
+ 0xb8, 0xbd, 0xdb, 0x41, 0xab, 0xab, 0x02, 0x91, 0x95, 0x11, 0x68, 0x34,
+ 0x31, 0x02, 0x82, 0x0c, 0x45, 0x73, 0x41, 0x08,
+};
+static const unsigned char kat2268_retbits[] = {
+ 0xfd, 0xf9, 0x1c, 0xbb, 0x54, 0x14, 0xaf, 0x19, 0x4b, 0x10, 0x7f, 0x68,
+ 0xbe, 0x0b, 0x6b, 0xb2, 0xbb, 0xda, 0x86, 0x15, 0x75, 0x50, 0x40, 0xb1,
+ 0x3b, 0x81, 0x7c, 0x9c, 0x92, 0x96, 0x35, 0x2a, 0x2c, 0xd1, 0xe9, 0x5b,
+ 0x72, 0x8c, 0x91, 0x64, 0x71, 0x12, 0x2c, 0x86, 0x55, 0x9b, 0xc1, 0x61,
+ 0xbf, 0xe7, 0xc7, 0x60, 0x58, 0x4d, 0x34, 0xea, 0x9d, 0x5e, 0x1c, 0x64,
+ 0x5b, 0x65, 0xf1, 0x02,
+};
+static const struct drbg_kat_pr_false kat2268_t = {
+ 2, kat2268_entropyin, kat2268_nonce, kat2268_persstr,
+ kat2268_entropyinreseed, kat2268_addinreseed, kat2268_addin0,
+ kat2268_addin1, kat2268_retbits
+};
+static const struct drbg_kat kat2268 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2268_t
+};
+
+static const unsigned char kat2269_entropyin[] = {
+ 0x0e, 0x91, 0xb7, 0x33, 0x28, 0x68, 0x28, 0x08, 0x32, 0x1e, 0xf7, 0x13,
+ 0xff, 0xd8, 0x13, 0x5a, 0x6a, 0x8b, 0x62, 0x1b, 0xcc, 0xdd, 0x7c, 0xe9,
+ 0x7f, 0xf4, 0xb0, 0xb9, 0x40, 0xc5, 0x5c, 0x67,
+};
+static const unsigned char kat2269_nonce[] = {0};
+static const unsigned char kat2269_persstr[] = {
+ 0xcb, 0xd5, 0xff, 0xde, 0x8c, 0x60, 0xdd, 0x65, 0xc6, 0x6b, 0xeb, 0xfc,
+ 0xed, 0x0a, 0x47, 0x36, 0x68, 0x05, 0x0a, 0x75, 0x3e, 0x3b, 0x5f, 0xbe,
+ 0xc2, 0x00, 0x0f, 0x4d, 0x21, 0xfe, 0x24, 0xef,
+};
+static const unsigned char kat2269_entropyinreseed[] = {
+ 0xf5, 0x3a, 0x72, 0x71, 0x08, 0x34, 0x74, 0x4a, 0x52, 0xe2, 0x93, 0x94,
+ 0x45, 0x9e, 0x31, 0x1d, 0xce, 0xcc, 0x37, 0xf3, 0xc2, 0x70, 0x14, 0xdc,
+ 0x3c, 0x9d, 0x85, 0x00, 0xf4, 0xb4, 0xbe, 0xcd,
+};
+static const unsigned char kat2269_addinreseed[] = {
+ 0x21, 0x5f, 0x26, 0x55, 0xae, 0x42, 0x46, 0x4b, 0x4a, 0xca, 0x80, 0x62,
+ 0x7e, 0x53, 0xf9, 0x2d, 0x02, 0x78, 0xa8, 0x66, 0x05, 0x93, 0x62, 0x8c,
+ 0x96, 0xee, 0x04, 0x8b, 0xc4, 0x4f, 0x8f, 0xaa,
+};
+static const unsigned char kat2269_addin0[] = {
+ 0x00, 0x62, 0x75, 0xae, 0x93, 0xdf, 0x89, 0x73, 0x4f, 0x53, 0xb6, 0x2d,
+ 0x5f, 0xd4, 0xb1, 0x49, 0xae, 0x0e, 0xa4, 0xca, 0xa9, 0x0d, 0x2e, 0xe1,
+ 0x26, 0x85, 0x4d, 0x36, 0x52, 0x62, 0xe0, 0x15,
+};
+static const unsigned char kat2269_addin1[] = {
+ 0x20, 0x6b, 0xaf, 0x1b, 0x61, 0x4c, 0x39, 0xc0, 0xc9, 0x86, 0xd3, 0x91,
+ 0x8a, 0xcb, 0x58, 0x61, 0x95, 0xa3, 0x72, 0x15, 0x82, 0xac, 0xec, 0x96,
+ 0x1c, 0x83, 0x07, 0x0e, 0x09, 0xa2, 0x81, 0xec,
+};
+static const unsigned char kat2269_retbits[] = {
+ 0xae, 0xb8, 0x33, 0x5f, 0x71, 0x17, 0x4b, 0xf6, 0x52, 0x25, 0xa9, 0x09,
+ 0xee, 0x49, 0x72, 0x26, 0xd6, 0x6e, 0xa6, 0x83, 0x99, 0x8f, 0x0b, 0xe5,
+ 0xf3, 0x4d, 0x7c, 0x1d, 0x88, 0xe0, 0xe4, 0x6d, 0x96, 0xbe, 0xc6, 0x43,
+ 0x80, 0x30, 0xa7, 0xc1, 0xda, 0x3b, 0x7f, 0xb3, 0xba, 0x91, 0x61, 0x50,
+ 0x6f, 0x78, 0x16, 0x0d, 0x40, 0xce, 0xa5, 0xf7, 0x4d, 0xae, 0x98, 0x5b,
+ 0xc6, 0xb2, 0xe8, 0x05,
+};
+static const struct drbg_kat_pr_false kat2269_t = {
+ 3, kat2269_entropyin, kat2269_nonce, kat2269_persstr,
+ kat2269_entropyinreseed, kat2269_addinreseed, kat2269_addin0,
+ kat2269_addin1, kat2269_retbits
+};
+static const struct drbg_kat kat2269 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2269_t
+};
+
+static const unsigned char kat2270_entropyin[] = {
+ 0xef, 0xe6, 0xb0, 0x36, 0xc6, 0xfe, 0x4a, 0xf1, 0xcd, 0x49, 0xf4, 0xa0,
+ 0x5f, 0x0b, 0x07, 0x11, 0x63, 0x9c, 0x4a, 0xbd, 0x23, 0xd1, 0x48, 0x4b,
+ 0xdc, 0x38, 0x0b, 0xbd, 0x70, 0xac, 0x52, 0xea,
+};
+static const unsigned char kat2270_nonce[] = {0};
+static const unsigned char kat2270_persstr[] = {
+ 0x90, 0x0e, 0xd9, 0x63, 0x9b, 0x54, 0x9e, 0xba, 0x0b, 0xac, 0x4e, 0xb1,
+ 0x25, 0xda, 0x62, 0xb4, 0x14, 0x5d, 0xeb, 0x48, 0xf8, 0x17, 0xee, 0xd6,
+ 0xc3, 0xbc, 0xb6, 0xec, 0x78, 0x22, 0x94, 0x04,
+};
+static const unsigned char kat2270_entropyinreseed[] = {
+ 0xe7, 0x66, 0x9b, 0xff, 0x42, 0x34, 0x58, 0x52, 0xc5, 0x7a, 0x2a, 0xc4,
+ 0x09, 0x9c, 0x43, 0xf8, 0x8c, 0xf2, 0x5d, 0xd9, 0xff, 0x6f, 0x75, 0xe1,
+ 0xc9, 0x26, 0xbb, 0x91, 0x14, 0x51, 0xd3, 0x84,
+};
+static const unsigned char kat2270_addinreseed[] = {
+ 0x85, 0x8c, 0x94, 0xec, 0x1d, 0x95, 0x3f, 0xe7, 0x33, 0x84, 0x2c, 0x49,
+ 0xb7, 0x85, 0x89, 0xb1, 0x9b, 0xc0, 0xf6, 0xe8, 0xb3, 0x46, 0x68, 0xe0,
+ 0x48, 0x89, 0x76, 0x54, 0x38, 0x5a, 0x02, 0xde,
+};
+static const unsigned char kat2270_addin0[] = {
+ 0xa1, 0x79, 0x2a, 0x91, 0xc7, 0xd9, 0x72, 0xdf, 0xe7, 0xfe, 0x45, 0xd4,
+ 0x82, 0x9d, 0x63, 0x58, 0xf1, 0x09, 0x22, 0x0a, 0x43, 0xc7, 0x3e, 0x63,
+ 0x4f, 0x2f, 0xb6, 0xc5, 0x58, 0x67, 0x98, 0xec,
+};
+static const unsigned char kat2270_addin1[] = {
+ 0xd5, 0xcc, 0x94, 0xdd, 0xac, 0x9f, 0x2d, 0x2b, 0x88, 0x39, 0x38, 0xfd,
+ 0x8c, 0x4a, 0xda, 0xe1, 0x46, 0xeb, 0xc5, 0x15, 0x06, 0x11, 0x23, 0x50,
+ 0xd9, 0x51, 0x2a, 0x3e, 0x0b, 0x7a, 0x61, 0x05,
+};
+static const unsigned char kat2270_retbits[] = {
+ 0x07, 0x96, 0x48, 0x9e, 0x81, 0x69, 0xfe, 0x32, 0xa5, 0xc9, 0x99, 0xf7,
+ 0x0a, 0x2e, 0x1b, 0x1e, 0x06, 0x55, 0xa4, 0x19, 0x0f, 0x04, 0x2e, 0x1c,
+ 0x6d, 0xa2, 0x71, 0x39, 0xb0, 0xdd, 0xd2, 0x2f, 0x1b, 0x15, 0x05, 0xff,
+ 0x10, 0x58, 0xb3, 0x43, 0x00, 0x5b, 0x81, 0x05, 0x10, 0x93, 0x9d, 0x53,
+ 0xf4, 0x97, 0x2e, 0xa1, 0x10, 0x49, 0x9f, 0xeb, 0x34, 0xf2, 0x11, 0x4e,
+ 0x90, 0x68, 0xaa, 0x0d,
+};
+static const struct drbg_kat_pr_false kat2270_t = {
+ 4, kat2270_entropyin, kat2270_nonce, kat2270_persstr,
+ kat2270_entropyinreseed, kat2270_addinreseed, kat2270_addin0,
+ kat2270_addin1, kat2270_retbits
+};
+static const struct drbg_kat kat2270 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2270_t
+};
+
+static const unsigned char kat2271_entropyin[] = {
+ 0xa5, 0xec, 0x52, 0x9d, 0x89, 0xe0, 0x8e, 0x9e, 0x44, 0x07, 0x67, 0xf7,
+ 0x21, 0x96, 0x0b, 0x6c, 0x6b, 0xac, 0x49, 0xaf, 0xb2, 0x12, 0xc7, 0x43,
+ 0x9d, 0x11, 0xdf, 0x2c, 0xda, 0xd0, 0xf3, 0x3e,
+};
+static const unsigned char kat2271_nonce[] = {0};
+static const unsigned char kat2271_persstr[] = {
+ 0x39, 0x5b, 0xd2, 0xe9, 0x19, 0x63, 0x8e, 0x42, 0x8d, 0x61, 0x55, 0xff,
+ 0xeb, 0xc9, 0x00, 0x89, 0xc0, 0x7f, 0xbe, 0x01, 0x2a, 0xc5, 0xbd, 0xb1,
+ 0x22, 0x93, 0x55, 0x82, 0x4e, 0x14, 0x5a, 0x26,
+};
+static const unsigned char kat2271_entropyinreseed[] = {
+ 0xee, 0x2c, 0x97, 0xe6, 0xd5, 0xb5, 0x4a, 0x29, 0x1d, 0x04, 0x15, 0xa0,
+ 0x30, 0x79, 0xf2, 0xd6, 0x88, 0x37, 0xfe, 0x9e, 0x42, 0x49, 0x07, 0xf7,
+ 0xce, 0x39, 0x8e, 0x73, 0x0e, 0xb3, 0x70, 0x17,
+};
+static const unsigned char kat2271_addinreseed[] = {
+ 0x5b, 0x86, 0xd0, 0xd7, 0xf0, 0xfa, 0x8b, 0x14, 0x83, 0xe2, 0x75, 0x8f,
+ 0xc0, 0x9f, 0xf7, 0x6b, 0xf0, 0x0d, 0xac, 0x31, 0x43, 0xfc, 0x4b, 0x44,
+ 0xcc, 0x2c, 0xe9, 0x3b, 0x19, 0x26, 0xc1, 0xc1,
+};
+static const unsigned char kat2271_addin0[] = {
+ 0x5b, 0xc4, 0x46, 0xc5, 0x23, 0x38, 0x6e, 0x7d, 0xca, 0x9a, 0x8b, 0x3b,
+ 0xf4, 0x0f, 0xb5, 0xe8, 0x66, 0x89, 0xfc, 0x4d, 0x17, 0x5a, 0x51, 0xe2,
+ 0x2a, 0x79, 0xa6, 0xea, 0xed, 0x79, 0xea, 0x43,
+};
+static const unsigned char kat2271_addin1[] = {
+ 0x88, 0x79, 0x8e, 0x30, 0x8f, 0x08, 0x1c, 0xdd, 0x87, 0xe6, 0xbc, 0xec,
+ 0x5a, 0xb2, 0x3f, 0x73, 0x19, 0xea, 0x4e, 0x38, 0xab, 0x96, 0x7b, 0x23,
+ 0xa6, 0xb9, 0xd2, 0xac, 0x9c, 0xd3, 0xdb, 0xec,
+};
+static const unsigned char kat2271_retbits[] = {
+ 0x5a, 0x42, 0x59, 0xf5, 0x27, 0x55, 0xc7, 0x4a, 0x91, 0xf2, 0x57, 0x7d,
+ 0xd0, 0xf4, 0x73, 0x21, 0x7e, 0x62, 0xe8, 0x85, 0x61, 0xcf, 0xfa, 0x62,
+ 0x5e, 0x03, 0x67, 0x29, 0x3f, 0xfb, 0x19, 0x99, 0xa3, 0xc6, 0xda, 0x37,
+ 0xc0, 0xbd, 0x6e, 0x62, 0xa7, 0x42, 0x53, 0x66, 0x32, 0xc8, 0x5b, 0x40,
+ 0x96, 0x2e, 0x72, 0x49, 0xbd, 0xe0, 0x7d, 0xef, 0xb9, 0x5b, 0x9e, 0x3a,
+ 0x72, 0xd2, 0x76, 0x2f,
+};
+static const struct drbg_kat_pr_false kat2271_t = {
+ 5, kat2271_entropyin, kat2271_nonce, kat2271_persstr,
+ kat2271_entropyinreseed, kat2271_addinreseed, kat2271_addin0,
+ kat2271_addin1, kat2271_retbits
+};
+static const struct drbg_kat kat2271 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2271_t
+};
+
+static const unsigned char kat2272_entropyin[] = {
+ 0xe5, 0xc6, 0x84, 0xd7, 0x03, 0x55, 0x0b, 0xf6, 0x50, 0x26, 0x46, 0x3a,
+ 0x89, 0x49, 0x24, 0x41, 0xf2, 0x97, 0x1c, 0xb1, 0xae, 0xe3, 0x94, 0xd1,
+ 0x62, 0x1c, 0x05, 0x34, 0x3c, 0x92, 0x45, 0x5e,
+};
+static const unsigned char kat2272_nonce[] = {0};
+static const unsigned char kat2272_persstr[] = {
+ 0x8f, 0x2a, 0x85, 0x78, 0xb4, 0x50, 0x01, 0x0d, 0xf7, 0xb5, 0x0c, 0x92,
+ 0xc3, 0x13, 0x16, 0xcd, 0x76, 0xf2, 0x8e, 0x4a, 0x95, 0x60, 0x2e, 0xde,
+ 0x95, 0x77, 0x0b, 0x02, 0x69, 0x52, 0x97, 0xd7,
+};
+static const unsigned char kat2272_entropyinreseed[] = {
+ 0xc2, 0x60, 0xed, 0x27, 0x92, 0x3b, 0x69, 0x42, 0x2a, 0x19, 0x61, 0xe4,
+ 0xbf, 0xbd, 0xe3, 0xa4, 0x75, 0x28, 0x99, 0x91, 0xcd, 0x31, 0xb5, 0xdb,
+ 0xad, 0x43, 0xa6, 0x50, 0xed, 0x29, 0xc0, 0x3c,
+};
+static const unsigned char kat2272_addinreseed[] = {
+ 0xa9, 0xdb, 0x1a, 0x29, 0x94, 0x37, 0x07, 0xb1, 0xc3, 0xfa, 0x6d, 0x6b,
+ 0x1d, 0x2f, 0xa8, 0x08, 0x41, 0xb2, 0xf2, 0x6e, 0x2b, 0xe9, 0x31, 0xa8,
+ 0xdb, 0x58, 0x65, 0xb5, 0xe3, 0x6a, 0x1b, 0xb8,
+};
+static const unsigned char kat2272_addin0[] = {
+ 0xbb, 0xb1, 0x1f, 0x77, 0xfd, 0xc9, 0xbd, 0x49, 0xdb, 0x0e, 0xb1, 0x9d,
+ 0x05, 0xb1, 0x65, 0x3d, 0xcd, 0xb0, 0x1b, 0x03, 0x2b, 0x2b, 0x53, 0xa2,
+ 0xa7, 0x9c, 0x74, 0xc5, 0x5a, 0x7f, 0x5e, 0x4a,
+};
+static const unsigned char kat2272_addin1[] = {
+ 0x2c, 0xa9, 0x14, 0x03, 0xd2, 0x77, 0xf7, 0xef, 0x52, 0xd7, 0x75, 0x2f,
+ 0xc4, 0x73, 0x8b, 0x0a, 0x5e, 0x4c, 0x27, 0xf3, 0x4e, 0xc5, 0xbd, 0x90,
+ 0xac, 0x1c, 0x70, 0xd3, 0x8f, 0x7f, 0x55, 0x80,
+};
+static const unsigned char kat2272_retbits[] = {
+ 0xd0, 0x78, 0xdd, 0x65, 0xc7, 0x18, 0x7b, 0x33, 0x7c, 0x81, 0xbc, 0xd0,
+ 0x3e, 0x0e, 0x54, 0x51, 0x39, 0x81, 0x87, 0xb0, 0x14, 0x64, 0xb5, 0xb1,
+ 0x0d, 0x85, 0xd8, 0x5b, 0xfd, 0x20, 0x62, 0x45, 0xca, 0x75, 0x8e, 0xb6,
+ 0xe7, 0xed, 0x57, 0x01, 0x84, 0xe9, 0xcd, 0x2f, 0xe5, 0x96, 0xf1, 0xee,
+ 0xfe, 0x69, 0x19, 0x10, 0xe1, 0x08, 0x7a, 0x74, 0xba, 0x73, 0x04, 0xa0,
+ 0x3e, 0xed, 0x6d, 0x4f,
+};
+static const struct drbg_kat_pr_false kat2272_t = {
+ 6, kat2272_entropyin, kat2272_nonce, kat2272_persstr,
+ kat2272_entropyinreseed, kat2272_addinreseed, kat2272_addin0,
+ kat2272_addin1, kat2272_retbits
+};
+static const struct drbg_kat kat2272 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2272_t
+};
+
+static const unsigned char kat2273_entropyin[] = {
+ 0x63, 0x02, 0xfb, 0x5f, 0x99, 0x25, 0x44, 0x96, 0xa7, 0xc8, 0x29, 0x37,
+ 0x0e, 0x43, 0xfc, 0xc8, 0xd6, 0x8e, 0x41, 0x09, 0x7a, 0x35, 0x75, 0xd3,
+ 0x0b, 0x41, 0x47, 0x7e, 0xc5, 0x34, 0x64, 0x0b,
+};
+static const unsigned char kat2273_nonce[] = {0};
+static const unsigned char kat2273_persstr[] = {
+ 0x54, 0x4e, 0x22, 0x68, 0x64, 0x51, 0xc4, 0x01, 0xa9, 0xdc, 0xf0, 0xf2,
+ 0x4e, 0xd9, 0x22, 0xd8, 0x8e, 0x82, 0x20, 0xbe, 0x45, 0x03, 0x11, 0x1b,
+ 0x58, 0x0c, 0x05, 0x2d, 0x39, 0x7b, 0xc1, 0x5d,
+};
+static const unsigned char kat2273_entropyinreseed[] = {
+ 0x0e, 0xdc, 0x85, 0xbc, 0xa4, 0x82, 0x6a, 0xe9, 0xea, 0x61, 0x8c, 0xc5,
+ 0xf7, 0x35, 0xcc, 0xf9, 0x74, 0x8c, 0xe8, 0xb9, 0xb4, 0x7b, 0xac, 0x67,
+ 0xe9, 0xf4, 0x73, 0xc2, 0xd2, 0x91, 0xd9, 0x91,
+};
+static const unsigned char kat2273_addinreseed[] = {
+ 0x00, 0xd5, 0x73, 0xc9, 0xb8, 0x9d, 0x4f, 0x3b, 0xd6, 0x0c, 0xde, 0xb4,
+ 0xd4, 0x0a, 0x8a, 0xf4, 0x1e, 0x2e, 0xb2, 0xf9, 0x39, 0x7f, 0xaf, 0x0d,
+ 0xe0, 0x49, 0xb5, 0x0c, 0xb5, 0x63, 0x86, 0x27,
+};
+static const unsigned char kat2273_addin0[] = {
+ 0x39, 0x87, 0xd1, 0x1b, 0xfa, 0xcf, 0x56, 0x14, 0xef, 0x0e, 0x28, 0xe2,
+ 0x60, 0x06, 0xd6, 0x6e, 0xa0, 0x3c, 0x3b, 0x01, 0x41, 0xe6, 0x77, 0x01,
+ 0x8b, 0xe1, 0x0e, 0x30, 0xf0, 0xb2, 0x53, 0x8a,
+};
+static const unsigned char kat2273_addin1[] = {
+ 0x23, 0x38, 0xa6, 0x8b, 0x5f, 0xac, 0xa8, 0xd6, 0xbe, 0x89, 0x81, 0x54,
+ 0x9e, 0xf2, 0xf6, 0xf3, 0x05, 0x69, 0xa2, 0xd2, 0x5f, 0x7c, 0x51, 0xf6,
+ 0x2c, 0xec, 0x5e, 0x12, 0x6a, 0xeb, 0xdf, 0x8d,
+};
+static const unsigned char kat2273_retbits[] = {
+ 0xee, 0xf8, 0xd2, 0x2d, 0x01, 0x40, 0xcf, 0x78, 0xa2, 0x9e, 0x40, 0x39,
+ 0x8a, 0xf3, 0xd1, 0xc8, 0x8d, 0xbc, 0x9e, 0xae, 0xf8, 0xc6, 0xe5, 0xa3,
+ 0xf8, 0xe3, 0x41, 0xbc, 0x72, 0x9e, 0x47, 0xc0, 0x35, 0x3f, 0x51, 0x68,
+ 0xde, 0x20, 0x80, 0xdf, 0x87, 0x00, 0xbc, 0xd6, 0x8d, 0x6b, 0x85, 0x15,
+ 0xef, 0xd8, 0x7b, 0xb1, 0x0f, 0x45, 0x97, 0xec, 0x5b, 0x52, 0x64, 0xcc,
+ 0x47, 0x65, 0xfc, 0xec,
+};
+static const struct drbg_kat_pr_false kat2273_t = {
+ 7, kat2273_entropyin, kat2273_nonce, kat2273_persstr,
+ kat2273_entropyinreseed, kat2273_addinreseed, kat2273_addin0,
+ kat2273_addin1, kat2273_retbits
+};
+static const struct drbg_kat kat2273 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2273_t
+};
+
+static const unsigned char kat2274_entropyin[] = {
+ 0xc4, 0x12, 0x94, 0xfc, 0x54, 0xdb, 0xb8, 0xb3, 0x6f, 0xa1, 0x43, 0x39,
+ 0x34, 0xc6, 0xd8, 0xc5, 0x17, 0x19, 0xc3, 0x0f, 0xd6, 0x37, 0x1d, 0x83,
+ 0x0c, 0x63, 0x2f, 0x6c, 0x10, 0x53, 0x30, 0x21,
+};
+static const unsigned char kat2274_nonce[] = {0};
+static const unsigned char kat2274_persstr[] = {
+ 0x8c, 0x43, 0xb0, 0x0a, 0x1b, 0xee, 0xfb, 0xae, 0x61, 0x28, 0x1c, 0x85,
+ 0x3f, 0xc2, 0x7a, 0xad, 0xc6, 0xea, 0xc6, 0x0e, 0xa0, 0x09, 0x87, 0x59,
+ 0x0d, 0x96, 0x76, 0xbf, 0x28, 0x72, 0x5b, 0x7a,
+};
+static const unsigned char kat2274_entropyinreseed[] = {
+ 0x60, 0x99, 0xd2, 0x71, 0x6d, 0x1e, 0x5b, 0xa4, 0x6b, 0x0b, 0x37, 0xd0,
+ 0x8b, 0x9a, 0xe2, 0xf6, 0xb7, 0xd3, 0x95, 0x83, 0xc5, 0xe1, 0x15, 0x8f,
+ 0x77, 0xe2, 0x68, 0xa7, 0x7b, 0xd9, 0x2a, 0x84,
+};
+static const unsigned char kat2274_addinreseed[] = {
+ 0xca, 0x48, 0x88, 0x12, 0x49, 0x43, 0xd6, 0x74, 0x1e, 0x09, 0xde, 0xed,
+ 0x6f, 0xf5, 0xae, 0xf0, 0xf0, 0x5d, 0x32, 0x27, 0x90, 0xfe, 0x79, 0x25,
+ 0x86, 0xa0, 0xfa, 0xdb, 0x7f, 0x9b, 0x27, 0xe0,
+};
+static const unsigned char kat2274_addin0[] = {
+ 0x26, 0x8e, 0x4a, 0x9f, 0xe0, 0x09, 0x23, 0x35, 0x63, 0x6a, 0x86, 0xb4,
+ 0x8f, 0x54, 0x84, 0x9a, 0x6e, 0x4a, 0xed, 0xbd, 0x8d, 0x88, 0x44, 0xb0,
+ 0xfd, 0x19, 0x02, 0xa6, 0xd2, 0x88, 0x6f, 0x56,
+};
+static const unsigned char kat2274_addin1[] = {
+ 0x79, 0x7a, 0x96, 0x4b, 0x3f, 0xf0, 0xb0, 0x38, 0xa4, 0xcb, 0x71, 0x38,
+ 0xf9, 0x80, 0x4e, 0x61, 0x6f, 0x4f, 0x4f, 0x31, 0xe5, 0xb4, 0x06, 0x7f,
+ 0x35, 0xa5, 0x3a, 0x9d, 0x73, 0x95, 0x8c, 0x1f,
+};
+static const unsigned char kat2274_retbits[] = {
+ 0x7d, 0xfb, 0x47, 0x1b, 0x39, 0x11, 0x2a, 0x02, 0xe4, 0x25, 0xca, 0x79,
+ 0x12, 0xfa, 0xe1, 0x00, 0xdb, 0xf0, 0x25, 0x15, 0x38, 0x2d, 0xf3, 0x08,
+ 0xd1, 0x42, 0x62, 0x07, 0xd7, 0x8d, 0x7a, 0x56, 0xf4, 0xbc, 0x84, 0x91,
+ 0x56, 0xb5, 0x13, 0x77, 0xf8, 0xe3, 0x1b, 0xff, 0x5a, 0xac, 0x7c, 0x2d,
+ 0x4e, 0x18, 0x17, 0xc8, 0x91, 0x32, 0x2f, 0x48, 0xd5, 0xe1, 0xbd, 0x8d,
+ 0x4f, 0xd6, 0xc7, 0xc6,
+};
+static const struct drbg_kat_pr_false kat2274_t = {
+ 8, kat2274_entropyin, kat2274_nonce, kat2274_persstr,
+ kat2274_entropyinreseed, kat2274_addinreseed, kat2274_addin0,
+ kat2274_addin1, kat2274_retbits
+};
+static const struct drbg_kat kat2274 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2274_t
+};
+
+static const unsigned char kat2275_entropyin[] = {
+ 0x36, 0x84, 0x32, 0xce, 0x04, 0x9f, 0x1a, 0x07, 0x54, 0xdc, 0x42, 0x60,
+ 0x8f, 0xd2, 0x66, 0x48, 0x61, 0xf2, 0xad, 0x0f, 0x0a, 0xc3, 0xcc, 0x26,
+ 0x5e, 0x74, 0x99, 0xc8, 0xc2, 0x0e, 0xc8, 0xa8,
+};
+static const unsigned char kat2275_nonce[] = {0};
+static const unsigned char kat2275_persstr[] = {
+ 0xe3, 0x42, 0xf4, 0xc0, 0xc9, 0x3e, 0x10, 0xae, 0x15, 0xc7, 0xf4, 0xdb,
+ 0x19, 0x3d, 0xbd, 0xa6, 0x74, 0x7f, 0x61, 0xeb, 0x22, 0xcd, 0x34, 0x2e,
+ 0x64, 0x1f, 0xae, 0xb1, 0x63, 0xf8, 0x3f, 0x2f,
+};
+static const unsigned char kat2275_entropyinreseed[] = {
+ 0xd6, 0x2b, 0xbe, 0x9a, 0x62, 0x56, 0x1a, 0x22, 0x74, 0x3f, 0x73, 0xe0,
+ 0xd6, 0x64, 0x7f, 0xfc, 0x9b, 0x8d, 0x5b, 0xa0, 0xcb, 0x41, 0x4f, 0xbf,
+ 0xa4, 0xfb, 0xa6, 0x33, 0x71, 0xe7, 0x91, 0x2a,
+};
+static const unsigned char kat2275_addinreseed[] = {
+ 0xff, 0x09, 0x78, 0x79, 0x87, 0xaa, 0xa1, 0x58, 0x59, 0x07, 0x5f, 0xcf,
+ 0xfb, 0x02, 0xd0, 0x49, 0x22, 0x2e, 0x2b, 0xec, 0x69, 0x0b, 0xfa, 0xcd,
+ 0xec, 0x2e, 0xe7, 0xd3, 0x16, 0x4b, 0xdf, 0x99,
+};
+static const unsigned char kat2275_addin0[] = {
+ 0x2d, 0xc1, 0xd8, 0xae, 0x52, 0xa2, 0x6c, 0xdf, 0x75, 0xba, 0x41, 0x32,
+ 0x38, 0xb1, 0xcb, 0x77, 0x63, 0x27, 0xdc, 0x9d, 0x83, 0x6a, 0xb2, 0x33,
+ 0x3e, 0xca, 0xf7, 0x60, 0x4c, 0x91, 0x10, 0x5c,
+};
+static const unsigned char kat2275_addin1[] = {
+ 0xe9, 0x1e, 0x11, 0x0e, 0x7b, 0x93, 0x72, 0x53, 0x08, 0x53, 0xc4, 0xab,
+ 0x31, 0x61, 0x50, 0xea, 0xc5, 0xfe, 0x62, 0x40, 0xf3, 0xef, 0x71, 0x75,
+ 0xc2, 0xca, 0x71, 0xb8, 0x89, 0xe5, 0x48, 0x4f,
+};
+static const unsigned char kat2275_retbits[] = {
+ 0x49, 0x30, 0xfa, 0xe1, 0x7e, 0xdc, 0x90, 0xa6, 0x9f, 0xa2, 0xa3, 0xc3,
+ 0x53, 0x68, 0x94, 0x5b, 0x56, 0x55, 0x6d, 0x56, 0x15, 0x51, 0xc3, 0xbd,
+ 0x04, 0x74, 0xa8, 0x8a, 0x10, 0xa0, 0x52, 0xcd, 0xbd, 0x70, 0xa6, 0xa2,
+ 0x2a, 0x9d, 0xec, 0x01, 0x7b, 0x23, 0x16, 0x0c, 0xa4, 0x70, 0x0d, 0x79,
+ 0x7f, 0xf5, 0x90, 0x92, 0x1e, 0x3e, 0xf4, 0x56, 0xe1, 0x1b, 0xe1, 0xc0,
+ 0xfe, 0x08, 0xcc, 0x35,
+};
+static const struct drbg_kat_pr_false kat2275_t = {
+ 9, kat2275_entropyin, kat2275_nonce, kat2275_persstr,
+ kat2275_entropyinreseed, kat2275_addinreseed, kat2275_addin0,
+ kat2275_addin1, kat2275_retbits
+};
+static const struct drbg_kat kat2275 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2275_t
+};
+
+static const unsigned char kat2276_entropyin[] = {
+ 0xb2, 0x05, 0xcd, 0xe0, 0xfc, 0xa4, 0x12, 0x1a, 0xf7, 0xd0, 0x7b, 0x44,
+ 0xc9, 0x19, 0xbf, 0x51, 0x3d, 0xb0, 0x90, 0x0c, 0x3f, 0x29, 0x2a, 0xff,
+ 0x8e, 0xd2, 0x9a, 0x7c, 0xc1, 0xcd, 0x7a, 0x5d,
+};
+static const unsigned char kat2276_nonce[] = {0};
+static const unsigned char kat2276_persstr[] = {
+ 0x1e, 0x77, 0x87, 0xca, 0x3a, 0xc8, 0x6f, 0xbf, 0xa3, 0xff, 0xde, 0xa3,
+ 0x3f, 0xd0, 0x50, 0xfb, 0xe0, 0x26, 0xa4, 0xce, 0x3a, 0x8e, 0x81, 0x61,
+ 0xd4, 0xc2, 0x13, 0xad, 0xb4, 0xf6, 0xa1, 0x49,
+};
+static const unsigned char kat2276_entropyinreseed[] = {
+ 0x49, 0xc5, 0x2f, 0x33, 0xa6, 0xed, 0x01, 0xc5, 0x5d, 0xe9, 0xcd, 0x02,
+ 0x80, 0x3f, 0xac, 0x02, 0x64, 0xb6, 0x70, 0x2b, 0xac, 0x6a, 0xf0, 0xaa,
+ 0x09, 0x24, 0xc6, 0x46, 0x2d, 0xc2, 0x17, 0xc1,
+};
+static const unsigned char kat2276_addinreseed[] = {
+ 0x29, 0x25, 0x5f, 0x9f, 0x7b, 0x39, 0xbe, 0xb0, 0x3e, 0xfd, 0xcd, 0x5a,
+ 0xe2, 0x43, 0x23, 0x58, 0xb6, 0x16, 0xf1, 0xc0, 0x89, 0xb2, 0x4b, 0x7b,
+ 0xd6, 0x53, 0xd7, 0xcc, 0x34, 0xc8, 0xf4, 0x49,
+};
+static const unsigned char kat2276_addin0[] = {
+ 0x35, 0xe9, 0xc1, 0x40, 0x32, 0xf0, 0xe0, 0x04, 0x99, 0x06, 0x13, 0x6c,
+ 0x71, 0xcf, 0x7f, 0x13, 0x97, 0x95, 0x0b, 0x42, 0x92, 0xa3, 0x9d, 0x16,
+ 0xa4, 0x90, 0x95, 0x9d, 0x13, 0x01, 0x5d, 0xf2,
+};
+static const unsigned char kat2276_addin1[] = {
+ 0xcf, 0x66, 0x07, 0x73, 0x53, 0x20, 0xdd, 0x4b, 0xce, 0x82, 0xaa, 0x15,
+ 0xd1, 0x57, 0x07, 0x80, 0x65, 0xb7, 0xd1, 0x1e, 0x72, 0x32, 0x1d, 0x0d,
+ 0x31, 0x5a, 0xa2, 0x53, 0xf7, 0x41, 0x48, 0xdc,
+};
+static const unsigned char kat2276_retbits[] = {
+ 0x67, 0x3e, 0x6d, 0x3a, 0xbe, 0x0c, 0x79, 0x91, 0x64, 0x70, 0xf0, 0x6a,
+ 0x94, 0xea, 0x61, 0x2e, 0x8a, 0xe0, 0x29, 0x20, 0xc6, 0xa5, 0xed, 0xfa,
+ 0xbe, 0xf8, 0x61, 0xb2, 0x89, 0xd3, 0x78, 0xf6, 0x7a, 0x07, 0x18, 0xd6,
+ 0x68, 0xa1, 0xa4, 0x43, 0x32, 0x6d, 0x94, 0xba, 0xa3, 0x87, 0xb6, 0x29,
+ 0x9d, 0x49, 0x9e, 0x0e, 0x83, 0x5d, 0x2c, 0xbd, 0xcb, 0xbe, 0x3f, 0xde,
+ 0xba, 0x5e, 0x00, 0x32,
+};
+static const struct drbg_kat_pr_false kat2276_t = {
+ 10, kat2276_entropyin, kat2276_nonce, kat2276_persstr,
+ kat2276_entropyinreseed, kat2276_addinreseed, kat2276_addin0,
+ kat2276_addin1, kat2276_retbits
+};
+static const struct drbg_kat kat2276 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2276_t
+};
+
+static const unsigned char kat2277_entropyin[] = {
+ 0xaa, 0xd0, 0x0f, 0x0e, 0xd2, 0x72, 0x20, 0x74, 0x78, 0x1e, 0x10, 0x2b,
+ 0x65, 0xf3, 0x23, 0xfb, 0x35, 0x86, 0x65, 0xf2, 0xc9, 0xe0, 0x5a, 0x17,
+ 0x75, 0x6d, 0x72, 0x1b, 0xae, 0x03, 0x75, 0x39,
+};
+static const unsigned char kat2277_nonce[] = {0};
+static const unsigned char kat2277_persstr[] = {
+ 0x53, 0x05, 0x68, 0x80, 0x59, 0x86, 0xe6, 0x0d, 0x9e, 0x96, 0x6b, 0xf2,
+ 0x0d, 0xf0, 0x97, 0xd9, 0xc5, 0x87, 0x57, 0x17, 0x86, 0xc0, 0x2e, 0x07,
+ 0x0f, 0xad, 0xd7, 0x51, 0xac, 0x1c, 0x88, 0xa5,
+};
+static const unsigned char kat2277_entropyinreseed[] = {
+ 0xce, 0xbe, 0xc2, 0xb5, 0xc7, 0xf4, 0x0d, 0xdf, 0x00, 0x68, 0xa9, 0x4a,
+ 0x17, 0x5f, 0x0e, 0xcd, 0xee, 0x43, 0xb6, 0xac, 0xe8, 0xe2, 0x86, 0x97,
+ 0x15, 0xf9, 0x20, 0xda, 0x40, 0x9b, 0x8e, 0xbf,
+};
+static const unsigned char kat2277_addinreseed[] = {
+ 0x8c, 0xc5, 0x22, 0x50, 0x79, 0xfe, 0xfd, 0xcc, 0x73, 0x32, 0xd0, 0x5c,
+ 0x6d, 0x57, 0x0c, 0xa6, 0x14, 0xa0, 0xfa, 0x53, 0xf4, 0x46, 0xd3, 0x8b,
+ 0xb7, 0x1a, 0xac, 0x4b, 0x33, 0x29, 0xd2, 0xe6,
+};
+static const unsigned char kat2277_addin0[] = {
+ 0x97, 0xbd, 0x3e, 0xcb, 0xc2, 0x7e, 0xeb, 0xfb, 0x56, 0x0b, 0xa0, 0x46,
+ 0x4d, 0xd9, 0xc2, 0x1e, 0x17, 0xa9, 0x15, 0x2c, 0xf8, 0x60, 0x8e, 0x8a,
+ 0x8f, 0x3a, 0x9f, 0x59, 0x08, 0x9d, 0x7b, 0x2e,
+};
+static const unsigned char kat2277_addin1[] = {
+ 0xa2, 0x4f, 0x46, 0xc9, 0xf2, 0x07, 0xef, 0xac, 0xef, 0x81, 0x09, 0x6d,
+ 0xc7, 0x6c, 0xf2, 0x93, 0xdd, 0xb5, 0x05, 0x77, 0x46, 0x30, 0x3f, 0xf6,
+ 0xef, 0x34, 0xfb, 0x83, 0xd1, 0x76, 0x0d, 0x33,
+};
+static const unsigned char kat2277_retbits[] = {
+ 0xf5, 0x7c, 0x5d, 0x13, 0x49, 0x5b, 0x10, 0x1b, 0x8b, 0x0a, 0x03, 0xa9,
+ 0xcc, 0xe0, 0x1d, 0x43, 0xef, 0xf7, 0xb9, 0x9d, 0x87, 0xda, 0x65, 0x0b,
+ 0xe3, 0xf6, 0x57, 0xe9, 0x0f, 0x57, 0x7c, 0x0b, 0x40, 0x96, 0x8d, 0xcf,
+ 0x18, 0x11, 0x44, 0x86, 0xb4, 0xb1, 0x88, 0x84, 0x35, 0xf8, 0x80, 0x69,
+ 0x6d, 0xc9, 0xc0, 0x28, 0x6d, 0xb7, 0xa4, 0x1e, 0x90, 0x07, 0x2d, 0x55,
+ 0xac, 0x8a, 0x2d, 0xc6,
+};
+static const struct drbg_kat_pr_false kat2277_t = {
+ 11, kat2277_entropyin, kat2277_nonce, kat2277_persstr,
+ kat2277_entropyinreseed, kat2277_addinreseed, kat2277_addin0,
+ kat2277_addin1, kat2277_retbits
+};
+static const struct drbg_kat kat2277 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2277_t
+};
+
+static const unsigned char kat2278_entropyin[] = {
+ 0x96, 0xb0, 0x84, 0xa6, 0xac, 0x52, 0x3b, 0x57, 0x84, 0xb6, 0x33, 0x5b,
+ 0x1e, 0xab, 0x7d, 0x31, 0x48, 0xa0, 0x5d, 0x0f, 0x8a, 0xf8, 0xa5, 0xac,
+ 0x4a, 0xc3, 0x19, 0x3d, 0x28, 0x16, 0xff, 0xe5,
+};
+static const unsigned char kat2278_nonce[] = {0};
+static const unsigned char kat2278_persstr[] = {
+ 0x93, 0x66, 0xab, 0x60, 0xa2, 0x63, 0x4d, 0xb0, 0x37, 0x04, 0x9b, 0xd3,
+ 0x7b, 0x33, 0x14, 0xbb, 0x3f, 0xa7, 0x01, 0xf4, 0xd6, 0xc3, 0xaa, 0x3a,
+ 0x22, 0x00, 0xd9, 0x8d, 0x28, 0xcc, 0x3d, 0x6e,
+};
+static const unsigned char kat2278_entropyinreseed[] = {
+ 0xba, 0xb2, 0x0d, 0x66, 0xed, 0xe0, 0x00, 0x15, 0x04, 0xc8, 0xbc, 0x73,
+ 0xdd, 0x17, 0x21, 0x66, 0x9e, 0xef, 0xba, 0x79, 0xf3, 0x99, 0x05, 0x32,
+ 0xd3, 0xc5, 0x43, 0x76, 0x65, 0xc3, 0x29, 0x9f,
+};
+static const unsigned char kat2278_addinreseed[] = {
+ 0x4f, 0x07, 0x92, 0xa8, 0x26, 0xf9, 0x74, 0xbf, 0xd9, 0x2a, 0xa4, 0xa0,
+ 0x9b, 0x8b, 0x51, 0xaa, 0x91, 0x2e, 0x93, 0x77, 0x8a, 0xd1, 0x4a, 0x73,
+ 0x79, 0x0e, 0xec, 0x3a, 0x25, 0x6c, 0xf4, 0x4b,
+};
+static const unsigned char kat2278_addin0[] = {
+ 0x7d, 0xc5, 0x21, 0xa5, 0xe5, 0x06, 0xe8, 0xec, 0x3e, 0xab, 0xcb, 0x28,
+ 0xcf, 0x30, 0xf2, 0xe9, 0x08, 0x1c, 0x29, 0xfa, 0x47, 0xe7, 0xf8, 0x89,
+ 0x34, 0x99, 0xa2, 0xa2, 0xff, 0x87, 0x44, 0xbd,
+};
+static const unsigned char kat2278_addin1[] = {
+ 0x86, 0xd0, 0x1d, 0x82, 0xe8, 0x16, 0x23, 0x54, 0xaa, 0x61, 0x30, 0x41,
+ 0xce, 0xf5, 0xc0, 0x27, 0x23, 0xab, 0x4d, 0x6b, 0x41, 0xfd, 0xb5, 0xdd,
+ 0xcb, 0x81, 0xcd, 0x81, 0x61, 0x0d, 0xab, 0xdc,
+};
+static const unsigned char kat2278_retbits[] = {
+ 0x4d, 0x21, 0xbb, 0x5b, 0x31, 0x8a, 0x2a, 0xd7, 0x9f, 0xb6, 0x5a, 0x7b,
+ 0x74, 0xb1, 0xd8, 0x76, 0x1b, 0x3d, 0x25, 0x6b, 0x54, 0x87, 0x5b, 0x7b,
+ 0x5c, 0x57, 0xb7, 0x6e, 0x3e, 0x2f, 0xb1, 0x82, 0x51, 0xdd, 0xfb, 0x55,
+ 0x09, 0x3a, 0x34, 0xed, 0x30, 0x52, 0x77, 0x02, 0x24, 0x14, 0x6a, 0xf6,
+ 0x52, 0xd5, 0xc3, 0xe0, 0xae, 0x34, 0x8d, 0xc6, 0xa1, 0x34, 0x11, 0x21,
+ 0x4e, 0x70, 0x6a, 0x2e,
+};
+static const struct drbg_kat_pr_false kat2278_t = {
+ 12, kat2278_entropyin, kat2278_nonce, kat2278_persstr,
+ kat2278_entropyinreseed, kat2278_addinreseed, kat2278_addin0,
+ kat2278_addin1, kat2278_retbits
+};
+static const struct drbg_kat kat2278 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2278_t
+};
+
+static const unsigned char kat2279_entropyin[] = {
+ 0xaa, 0x3b, 0x6a, 0x15, 0x20, 0x3f, 0xda, 0xd8, 0x97, 0x99, 0x69, 0x7a,
+ 0x0a, 0x6f, 0x14, 0x66, 0xd1, 0x77, 0xb7, 0x32, 0x31, 0xc3, 0x80, 0xd0,
+ 0x8b, 0xf4, 0xfd, 0xe5, 0x4d, 0xd9, 0x95, 0xc4,
+};
+static const unsigned char kat2279_nonce[] = {0};
+static const unsigned char kat2279_persstr[] = {
+ 0x9c, 0x17, 0x4a, 0x21, 0xe9, 0x07, 0x52, 0xfe, 0x8c, 0xf3, 0x18, 0x5f,
+ 0xa0, 0x6a, 0x9f, 0xd0, 0x63, 0x51, 0x35, 0x43, 0xf1, 0x70, 0x60, 0xb3,
+ 0xeb, 0x37, 0xd8, 0x63, 0x20, 0x25, 0xdb, 0xce,
+};
+static const unsigned char kat2279_entropyinreseed[] = {
+ 0x12, 0x04, 0xc8, 0xd8, 0x19, 0x25, 0x28, 0xc1, 0xe7, 0x28, 0x6b, 0x81,
+ 0x16, 0x8f, 0xef, 0x2a, 0x31, 0x16, 0xcf, 0x79, 0x59, 0x46, 0x26, 0xec,
+ 0x45, 0x33, 0xab, 0xa8, 0xff, 0xb0, 0xa5, 0x68,
+};
+static const unsigned char kat2279_addinreseed[] = {
+ 0xb5, 0xa7, 0xce, 0x55, 0x5d, 0x63, 0x0a, 0xcf, 0x70, 0x09, 0x35, 0x13,
+ 0x7d, 0x69, 0x20, 0xe3, 0x19, 0x62, 0xaa, 0xd9, 0x39, 0xe7, 0x64, 0xe5,
+ 0x65, 0x54, 0x3a, 0x38, 0xc7, 0x66, 0x0b, 0x14,
+};
+static const unsigned char kat2279_addin0[] = {
+ 0xc1, 0x61, 0x26, 0x32, 0xf8, 0xb3, 0xbd, 0xd4, 0x42, 0x4a, 0xa5, 0x52,
+ 0x15, 0x99, 0x12, 0xab, 0x82, 0xa2, 0x1f, 0x30, 0x06, 0x4c, 0x5f, 0x6f,
+ 0x00, 0xb9, 0x12, 0x1b, 0x7b, 0x74, 0xca, 0xc7,
+};
+static const unsigned char kat2279_addin1[] = {
+ 0x7a, 0xfb, 0x7b, 0x99, 0xbc, 0x91, 0x94, 0xe5, 0xda, 0x2c, 0xbe, 0xa1,
+ 0xe6, 0xc2, 0x23, 0xa5, 0x6c, 0x99, 0xea, 0x62, 0x91, 0x7c, 0x9b, 0x7d,
+ 0xc6, 0x2a, 0x44, 0xcc, 0xbb, 0x78, 0xf5, 0x81,
+};
+static const unsigned char kat2279_retbits[] = {
+ 0x11, 0x2d, 0xfe, 0x63, 0x25, 0x99, 0x8a, 0xb0, 0x3a, 0x8c, 0x56, 0xfe,
+ 0x4e, 0x0f, 0xb4, 0x56, 0x14, 0x15, 0x7b, 0x26, 0x35, 0xe8, 0x4c, 0x8a,
+ 0xb8, 0xfa, 0x0e, 0x98, 0xe0, 0xd0, 0xad, 0x0a, 0x82, 0x74, 0x23, 0x09,
+ 0x8f, 0x5f, 0xa8, 0x7f, 0x10, 0x38, 0xe0, 0x01, 0x8e, 0xfd, 0x03, 0x8f,
+ 0x38, 0x55, 0x01, 0xec, 0xc9, 0x53, 0x8d, 0x76, 0x29, 0x32, 0x9b, 0x81,
+ 0x73, 0x1f, 0x71, 0x6d,
+};
+static const struct drbg_kat_pr_false kat2279_t = {
+ 13, kat2279_entropyin, kat2279_nonce, kat2279_persstr,
+ kat2279_entropyinreseed, kat2279_addinreseed, kat2279_addin0,
+ kat2279_addin1, kat2279_retbits
+};
+static const struct drbg_kat kat2279 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2279_t
+};
+
+static const unsigned char kat2280_entropyin[] = {
+ 0x85, 0xf2, 0xb8, 0x38, 0x43, 0xcf, 0xca, 0x2a, 0xdf, 0x48, 0x10, 0x31,
+ 0x22, 0x05, 0xe9, 0x44, 0xb5, 0xef, 0x5f, 0xa7, 0x9a, 0x1e, 0x00, 0xdb,
+ 0xda, 0x0d, 0xf7, 0x1b, 0xe7, 0x75, 0x61, 0x81,
+};
+static const unsigned char kat2280_nonce[] = {0};
+static const unsigned char kat2280_persstr[] = {
+ 0x81, 0x37, 0xd6, 0xd0, 0x9a, 0x04, 0xe5, 0x87, 0xbe, 0x50, 0x82, 0xb8,
+ 0x5a, 0x0d, 0xe6, 0xaa, 0x65, 0x81, 0x94, 0x1f, 0xda, 0x24, 0x97, 0x1d,
+ 0x9d, 0xd1, 0x21, 0x70, 0xe5, 0x5b, 0xdc, 0x75,
+};
+static const unsigned char kat2280_entropyinreseed[] = {
+ 0x13, 0xf5, 0xf0, 0x66, 0xa8, 0x6c, 0x21, 0xee, 0x11, 0xfb, 0x40, 0x77,
+ 0x6d, 0xed, 0x01, 0x7f, 0x11, 0x52, 0xe9, 0xbe, 0xca, 0x96, 0x60, 0x2c,
+ 0x4e, 0x6e, 0x0a, 0x1e, 0x82, 0x2a, 0x9b, 0xe3,
+};
+static const unsigned char kat2280_addinreseed[] = {
+ 0xb9, 0xf8, 0xab, 0xd5, 0x90, 0xbb, 0xe1, 0x75, 0x1f, 0x1c, 0x41, 0x0a,
+ 0x42, 0xdd, 0xf9, 0x3c, 0x24, 0xe7, 0xf4, 0x9a, 0x5f, 0xd4, 0xb1, 0x64,
+ 0x48, 0x20, 0x75, 0x9a, 0x2a, 0xa2, 0x93, 0xb1,
+};
+static const unsigned char kat2280_addin0[] = {
+ 0x25, 0x37, 0xee, 0x73, 0xb5, 0x66, 0xf7, 0xfe, 0xbc, 0x51, 0x96, 0x3e,
+ 0xa9, 0x66, 0x91, 0x99, 0x4f, 0xdb, 0x15, 0x0d, 0x42, 0xdb, 0x58, 0x20,
+ 0x4f, 0x95, 0xbe, 0x45, 0xb4, 0xb4, 0xae, 0x32,
+};
+static const unsigned char kat2280_addin1[] = {
+ 0x2f, 0x4d, 0xd1, 0x69, 0x8f, 0x26, 0xaf, 0x2a, 0x92, 0x1d, 0x4f, 0x4a,
+ 0xce, 0xda, 0x1c, 0x15, 0xac, 0x71, 0xff, 0xf6, 0x2f, 0xf7, 0xbb, 0x5e,
+ 0xa6, 0xa9, 0x93, 0xa2, 0x9a, 0x8d, 0xc1, 0x99,
+};
+static const unsigned char kat2280_retbits[] = {
+ 0xf1, 0xb4, 0x6b, 0x02, 0x76, 0xbb, 0xd7, 0x5e, 0xec, 0x07, 0x92, 0xe9,
+ 0x99, 0x8c, 0xe8, 0x30, 0x22, 0xc8, 0xff, 0x2f, 0x00, 0xee, 0x99, 0x47,
+ 0x76, 0x0c, 0x6b, 0x2b, 0xed, 0x3f, 0x6a, 0x19, 0xbf, 0xf5, 0x8a, 0x0a,
+ 0x92, 0x09, 0x3a, 0x57, 0xb5, 0xac, 0x94, 0x9c, 0xc4, 0x02, 0x8f, 0xe3,
+ 0x1e, 0x2a, 0x62, 0x62, 0x12, 0x59, 0x94, 0xe6, 0xe3, 0x0d, 0xbb, 0x4b,
+ 0x7f, 0xaa, 0x6d, 0x4a,
+};
+static const struct drbg_kat_pr_false kat2280_t = {
+ 14, kat2280_entropyin, kat2280_nonce, kat2280_persstr,
+ kat2280_entropyinreseed, kat2280_addinreseed, kat2280_addin0,
+ kat2280_addin1, kat2280_retbits
+};
+static const struct drbg_kat kat2280 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2280_t
+};
+
+static const unsigned char kat2281_entropyin[] = {
+ 0x85, 0x82, 0x04, 0xf2, 0x7e, 0x93, 0xe8, 0x72, 0xa1, 0xce, 0x62, 0x08,
+ 0xef, 0x6d, 0xe3, 0x98, 0x68, 0xdd, 0xad, 0x55, 0xea, 0xc8, 0x99, 0xca,
+ 0x05, 0x81, 0xb9, 0xbb, 0x69, 0x7d, 0x44, 0x17,
+};
+static const unsigned char kat2281_nonce[] = {0};
+static const unsigned char kat2281_persstr[] = {0};
+static const unsigned char kat2281_entropyinreseed[] = {
+ 0x1e, 0x82, 0x20, 0x08, 0xae, 0xcf, 0x6e, 0x67, 0xcc, 0x47, 0xf2, 0xb9,
+ 0x8b, 0x04, 0x68, 0x7b, 0x12, 0x1e, 0xa4, 0x03, 0x6b, 0x6c, 0xab, 0xb0,
+ 0xc3, 0x6e, 0xfb, 0xe1, 0x51, 0x46, 0x38, 0x0b,
+};
+static const unsigned char kat2281_addinreseed[] = {0};
+static const unsigned char kat2281_addin0[] = {0};
+static const unsigned char kat2281_addin1[] = {0};
+static const unsigned char kat2281_retbits[] = {
+ 0x49, 0xce, 0x84, 0x96, 0x3d, 0xf8, 0x64, 0xaa, 0xe3, 0x6b, 0xec, 0x3f,
+ 0x3e, 0xd2, 0x23, 0xf9, 0x5d, 0xf4, 0x95, 0x6c, 0x7c, 0x01, 0xb6, 0x20,
+ 0xd5, 0xf2, 0x10, 0xe6, 0x38, 0x65, 0x9d, 0x5e, 0x18, 0x86, 0x70, 0x0c,
+ 0x04, 0xe7, 0x9e, 0x57, 0x9c, 0xa7, 0xc9, 0xb0, 0x54, 0x54, 0xb5, 0x25,
+ 0xc2, 0xea, 0x73, 0x48, 0x03, 0x2b, 0x3a, 0xb8, 0xd9, 0x1b, 0x4c, 0x47,
+ 0x00, 0x22, 0x04, 0xaf,
+};
+static const struct drbg_kat_pr_false kat2281_t = {
+ 0, kat2281_entropyin, kat2281_nonce, kat2281_persstr,
+ kat2281_entropyinreseed, kat2281_addinreseed, kat2281_addin0,
+ kat2281_addin1, kat2281_retbits
+};
+static const struct drbg_kat kat2281 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2281_t
+};
+
+static const unsigned char kat2282_entropyin[] = {
+ 0x04, 0xca, 0x8b, 0x70, 0xf0, 0xd9, 0x5b, 0x2a, 0x9f, 0x31, 0xda, 0xa6,
+ 0x66, 0xac, 0x57, 0xd2, 0xbf, 0x7c, 0x02, 0xfb, 0x65, 0x12, 0x2a, 0xb8,
+ 0x19, 0x0c, 0x56, 0x78, 0x55, 0xde, 0xba, 0xb6,
+};
+static const unsigned char kat2282_nonce[] = {0};
+static const unsigned char kat2282_persstr[] = {0};
+static const unsigned char kat2282_entropyinreseed[] = {
+ 0x0b, 0x40, 0x93, 0xae, 0x0f, 0x4c, 0x7f, 0xec, 0x06, 0xec, 0xb0, 0x5d,
+ 0xa5, 0x16, 0xe2, 0x23, 0x71, 0xdc, 0x8a, 0xbd, 0x55, 0x72, 0x17, 0x90,
+ 0x3b, 0xc5, 0xe3, 0x19, 0xc5, 0x0a, 0x0b, 0x51,
+};
+static const unsigned char kat2282_addinreseed[] = {0};
+static const unsigned char kat2282_addin0[] = {0};
+static const unsigned char kat2282_addin1[] = {0};
+static const unsigned char kat2282_retbits[] = {
+ 0xd7, 0x71, 0x32, 0x70, 0xe7, 0xbc, 0x22, 0x21, 0xde, 0x92, 0x9d, 0x96,
+ 0x22, 0xee, 0xfe, 0x35, 0xa4, 0x28, 0x5c, 0x27, 0x61, 0x6e, 0x2d, 0x0d,
+ 0xdc, 0xf6, 0x5e, 0xc4, 0xe7, 0x9a, 0xc5, 0x18, 0x09, 0x7e, 0xac, 0xf2,
+ 0xa5, 0xca, 0x3d, 0x20, 0x7c, 0x20, 0x17, 0xcc, 0xbc, 0x3a, 0x93, 0x43,
+ 0x58, 0x7e, 0x34, 0xca, 0x12, 0xa9, 0x7a, 0xfa, 0xea, 0x67, 0x8b, 0xba,
+ 0x86, 0xb6, 0x5c, 0xa8,
+};
+static const struct drbg_kat_pr_false kat2282_t = {
+ 1, kat2282_entropyin, kat2282_nonce, kat2282_persstr,
+ kat2282_entropyinreseed, kat2282_addinreseed, kat2282_addin0,
+ kat2282_addin1, kat2282_retbits
+};
+static const struct drbg_kat kat2282 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2282_t
+};
+
+static const unsigned char kat2283_entropyin[] = {
+ 0x82, 0x26, 0xac, 0xff, 0xba, 0x92, 0x3f, 0xa4, 0x63, 0x2d, 0x9d, 0x52,
+ 0xbd, 0x82, 0x63, 0xff, 0xe6, 0x08, 0xa7, 0x2b, 0x65, 0x55, 0x9f, 0x66,
+ 0xe2, 0x83, 0x23, 0xbc, 0xe0, 0x9c, 0xa2, 0x8d,
+};
+static const unsigned char kat2283_nonce[] = {0};
+static const unsigned char kat2283_persstr[] = {0};
+static const unsigned char kat2283_entropyinreseed[] = {
+ 0xf9, 0x3e, 0xee, 0x49, 0x7a, 0xe3, 0xf0, 0x66, 0xcc, 0xe4, 0x66, 0x84,
+ 0xeb, 0x30, 0xbe, 0xff, 0x68, 0xe8, 0xf5, 0x73, 0x8c, 0xef, 0xdb, 0xd5,
+ 0x19, 0xf9, 0xa3, 0x5b, 0x2a, 0xb2, 0xa6, 0xac,
+};
+static const unsigned char kat2283_addinreseed[] = {0};
+static const unsigned char kat2283_addin0[] = {0};
+static const unsigned char kat2283_addin1[] = {0};
+static const unsigned char kat2283_retbits[] = {
+ 0x14, 0xc3, 0x8f, 0x2c, 0x21, 0x74, 0x0d, 0xf8, 0xc2, 0xf2, 0x87, 0x0c,
+ 0xd1, 0xfc, 0x6c, 0x53, 0x6c, 0x19, 0x00, 0xb3, 0xda, 0xe6, 0x34, 0xc2,
+ 0x8b, 0xa9, 0x55, 0xb1, 0x35, 0xeb, 0xf1, 0xac, 0x8e, 0x63, 0x02, 0xdc,
+ 0x80, 0xf8, 0x9a, 0xf9, 0x82, 0x65, 0x3d, 0x29, 0x14, 0xdf, 0xf1, 0x0e,
+ 0xc7, 0x2c, 0x09, 0xf0, 0xd8, 0x0c, 0x91, 0x8f, 0xb5, 0xff, 0x96, 0xba,
+ 0xe8, 0x88, 0xee, 0xd5,
+};
+static const struct drbg_kat_pr_false kat2283_t = {
+ 2, kat2283_entropyin, kat2283_nonce, kat2283_persstr,
+ kat2283_entropyinreseed, kat2283_addinreseed, kat2283_addin0,
+ kat2283_addin1, kat2283_retbits
+};
+static const struct drbg_kat kat2283 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2283_t
+};
+
+static const unsigned char kat2284_entropyin[] = {
+ 0x1c, 0x1d, 0xb7, 0xb9, 0xc1, 0x2c, 0x06, 0x58, 0x2f, 0xca, 0x53, 0x04,
+ 0xc5, 0xda, 0x9b, 0x14, 0x58, 0x9f, 0x52, 0xf7, 0x84, 0xe6, 0x3d, 0x2f,
+ 0xd6, 0x59, 0x0e, 0x04, 0x23, 0x29, 0xb9, 0x50,
+};
+static const unsigned char kat2284_nonce[] = {0};
+static const unsigned char kat2284_persstr[] = {0};
+static const unsigned char kat2284_entropyinreseed[] = {
+ 0xd4, 0xbf, 0x05, 0x75, 0x54, 0x19, 0xef, 0xc2, 0x83, 0xc0, 0xec, 0x01,
+ 0x77, 0xd1, 0x5c, 0xc4, 0x4a, 0x63, 0x84, 0xda, 0x6f, 0xf0, 0x67, 0xf2,
+ 0xb9, 0xce, 0x5a, 0x19, 0xf6, 0x1f, 0x08, 0x2f,
+};
+static const unsigned char kat2284_addinreseed[] = {0};
+static const unsigned char kat2284_addin0[] = {0};
+static const unsigned char kat2284_addin1[] = {0};
+static const unsigned char kat2284_retbits[] = {
+ 0x91, 0xcb, 0xd4, 0xea, 0x47, 0x4e, 0xd1, 0x3d, 0x2d, 0xb1, 0x8b, 0xe2,
+ 0xcb, 0x08, 0x66, 0x16, 0x0f, 0xed, 0x17, 0xf2, 0x1b, 0x98, 0x28, 0x33,
+ 0x37, 0x17, 0xcc, 0xd8, 0xce, 0xa5, 0x12, 0x9a, 0x40, 0x7a, 0xa2, 0x3d,
+ 0x9e, 0x9c, 0x1b, 0x72, 0xea, 0xdf, 0x18, 0xab, 0x3c, 0xb9, 0xd5, 0xc2,
+ 0xfa, 0x0a, 0x03, 0x1c, 0xbe, 0x3d, 0xbc, 0x0b, 0xb6, 0x7b, 0x2d, 0xcb,
+ 0x01, 0x4b, 0x98, 0xc1,
+};
+static const struct drbg_kat_pr_false kat2284_t = {
+ 3, kat2284_entropyin, kat2284_nonce, kat2284_persstr,
+ kat2284_entropyinreseed, kat2284_addinreseed, kat2284_addin0,
+ kat2284_addin1, kat2284_retbits
+};
+static const struct drbg_kat kat2284 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2284_t
+};
+
+static const unsigned char kat2285_entropyin[] = {
+ 0xb7, 0x5e, 0x03, 0x82, 0x71, 0x39, 0x8c, 0x6e, 0x0a, 0xee, 0x80, 0x65,
+ 0x99, 0xc8, 0xc0, 0x88, 0xae, 0x92, 0x6e, 0xe7, 0x14, 0xb0, 0xe6, 0xef,
+ 0xa2, 0x50, 0xcf, 0x1c, 0xe4, 0xf9, 0xf7, 0x14,
+};
+static const unsigned char kat2285_nonce[] = {0};
+static const unsigned char kat2285_persstr[] = {0};
+static const unsigned char kat2285_entropyinreseed[] = {
+ 0xb9, 0x88, 0xb1, 0x67, 0xf9, 0x75, 0x97, 0x5b, 0x65, 0xb2, 0xe0, 0xea,
+ 0x2e, 0x69, 0xc5, 0x0f, 0xb3, 0x4e, 0x69, 0xa0, 0x5b, 0xc7, 0x8c, 0xc2,
+ 0x6e, 0x40, 0x95, 0xf1, 0xcf, 0x67, 0xeb, 0x21,
+};
+static const unsigned char kat2285_addinreseed[] = {0};
+static const unsigned char kat2285_addin0[] = {0};
+static const unsigned char kat2285_addin1[] = {0};
+static const unsigned char kat2285_retbits[] = {
+ 0x5e, 0x1f, 0xdb, 0xc3, 0x63, 0x3e, 0xbe, 0x87, 0x99, 0xf6, 0xca, 0x4d,
+ 0xb5, 0x30, 0x1a, 0xff, 0x06, 0x60, 0xea, 0xd7, 0x82, 0x5c, 0xbc, 0x48,
+ 0x19, 0x4a, 0xa3, 0x87, 0x70, 0xc8, 0x98, 0xf7, 0x41, 0x5a, 0x8a, 0x6b,
+ 0x93, 0x07, 0xf0, 0x9c, 0xcb, 0xf5, 0xfc, 0xe3, 0x86, 0xea, 0xb3, 0x3a,
+ 0x97, 0x3c, 0xc4, 0x6e, 0x59, 0xbc, 0x49, 0xac, 0x90, 0xd5, 0xbc, 0x4a,
+ 0x47, 0xfd, 0x3d, 0x39,
+};
+static const struct drbg_kat_pr_false kat2285_t = {
+ 4, kat2285_entropyin, kat2285_nonce, kat2285_persstr,
+ kat2285_entropyinreseed, kat2285_addinreseed, kat2285_addin0,
+ kat2285_addin1, kat2285_retbits
+};
+static const struct drbg_kat kat2285 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2285_t
+};
+
+static const unsigned char kat2286_entropyin[] = {
+ 0xc0, 0x61, 0xcf, 0x7b, 0x18, 0x04, 0xd7, 0xe7, 0x9f, 0xb3, 0x85, 0x32,
+ 0xc9, 0xd0, 0xd6, 0xed, 0xeb, 0xc5, 0xc4, 0xb1, 0xa4, 0x7d, 0x99, 0xbf,
+ 0xad, 0x50, 0x6a, 0xb1, 0xc4, 0xe0, 0x20, 0xca,
+};
+static const unsigned char kat2286_nonce[] = {0};
+static const unsigned char kat2286_persstr[] = {0};
+static const unsigned char kat2286_entropyinreseed[] = {
+ 0xa2, 0xe8, 0x60, 0x02, 0x3b, 0xa1, 0x5c, 0x23, 0x21, 0x5d, 0xfb, 0x31,
+ 0x7a, 0x99, 0xb2, 0x38, 0x68, 0xc5, 0x51, 0xfc, 0x5e, 0xcd, 0x1f, 0x95,
+ 0x71, 0xab, 0x9f, 0x77, 0x92, 0x00, 0xde, 0x0c,
+};
+static const unsigned char kat2286_addinreseed[] = {0};
+static const unsigned char kat2286_addin0[] = {0};
+static const unsigned char kat2286_addin1[] = {0};
+static const unsigned char kat2286_retbits[] = {
+ 0xca, 0x4c, 0xa6, 0x1a, 0xc8, 0x7f, 0x7a, 0xae, 0xe3, 0xed, 0xf6, 0x9e,
+ 0xd9, 0x5a, 0xfe, 0x43, 0x86, 0xc7, 0xeb, 0x0e, 0xd2, 0x0c, 0xf0, 0xd6,
+ 0xfe, 0xcd, 0x89, 0x45, 0x32, 0x70, 0xc1, 0xb1, 0xe7, 0xac, 0x4f, 0xac,
+ 0xc2, 0xf7, 0x3e, 0xb6, 0x94, 0xe3, 0x50, 0xfa, 0x12, 0xae, 0x82, 0xb1,
+ 0x5c, 0x70, 0xe2, 0x78, 0x95, 0x08, 0xd7, 0x74, 0x64, 0xff, 0x4f, 0xb9,
+ 0x1b, 0xf6, 0x0f, 0xa2,
+};
+static const struct drbg_kat_pr_false kat2286_t = {
+ 5, kat2286_entropyin, kat2286_nonce, kat2286_persstr,
+ kat2286_entropyinreseed, kat2286_addinreseed, kat2286_addin0,
+ kat2286_addin1, kat2286_retbits
+};
+static const struct drbg_kat kat2286 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2286_t
+};
+
+static const unsigned char kat2287_entropyin[] = {
+ 0xfc, 0xcc, 0x19, 0x36, 0x32, 0x6f, 0x01, 0xa3, 0x1a, 0xba, 0xeb, 0x61,
+ 0x82, 0xc9, 0x94, 0x60, 0xdd, 0x0c, 0x92, 0x3d, 0x8f, 0xbe, 0x55, 0xbd,
+ 0xc9, 0x58, 0xb1, 0x28, 0x75, 0x3a, 0x3c, 0x29,
+};
+static const unsigned char kat2287_nonce[] = {0};
+static const unsigned char kat2287_persstr[] = {0};
+static const unsigned char kat2287_entropyinreseed[] = {
+ 0xdc, 0x81, 0x4a, 0x96, 0xdb, 0xcd, 0xc3, 0x33, 0xa9, 0x4d, 0x66, 0x54,
+ 0x83, 0xb1, 0x1f, 0xd0, 0x7a, 0x7b, 0x5f, 0xea, 0xaa, 0x49, 0xa2, 0x3e,
+ 0xe7, 0x7c, 0xca, 0x74, 0x07, 0x54, 0x82, 0x54,
+};
+static const unsigned char kat2287_addinreseed[] = {0};
+static const unsigned char kat2287_addin0[] = {0};
+static const unsigned char kat2287_addin1[] = {0};
+static const unsigned char kat2287_retbits[] = {
+ 0xe6, 0xba, 0x27, 0x41, 0x68, 0x82, 0x5d, 0x39, 0xe9, 0xbe, 0x80, 0xcc,
+ 0x69, 0x01, 0xae, 0x41, 0xd8, 0x11, 0x45, 0x02, 0xc0, 0xa1, 0x0f, 0xc4,
+ 0x95, 0x62, 0x6a, 0xa6, 0x49, 0x74, 0xc0, 0x06, 0x5e, 0xb0, 0xe7, 0x53,
+ 0xf6, 0x69, 0xd1, 0x74, 0xa0, 0x81, 0x3a, 0xad, 0xde, 0xc0, 0xc7, 0x20,
+ 0x9d, 0x19, 0x79, 0x4c, 0x9a, 0xa1, 0x4c, 0x41, 0x0a, 0xbc, 0x13, 0xf3,
+ 0xdd, 0x8e, 0xba, 0x3f,
+};
+static const struct drbg_kat_pr_false kat2287_t = {
+ 6, kat2287_entropyin, kat2287_nonce, kat2287_persstr,
+ kat2287_entropyinreseed, kat2287_addinreseed, kat2287_addin0,
+ kat2287_addin1, kat2287_retbits
+};
+static const struct drbg_kat kat2287 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2287_t
+};
+
+static const unsigned char kat2288_entropyin[] = {
+ 0xa0, 0x33, 0x07, 0x9a, 0xde, 0x6f, 0xde, 0xb4, 0x2f, 0x91, 0x20, 0x7c,
+ 0xa4, 0x8a, 0x46, 0x86, 0xd9, 0x62, 0xab, 0xd6, 0x5f, 0x59, 0x0d, 0x0d,
+ 0x8e, 0xc5, 0x8d, 0x3a, 0xd3, 0x51, 0xfe, 0x49,
+};
+static const unsigned char kat2288_nonce[] = {0};
+static const unsigned char kat2288_persstr[] = {0};
+static const unsigned char kat2288_entropyinreseed[] = {
+ 0x1d, 0xf4, 0x8c, 0x8f, 0xac, 0xaa, 0xae, 0xdd, 0x6c, 0xb8, 0x95, 0xc5,
+ 0xaa, 0xc7, 0xbc, 0x61, 0xb0, 0x85, 0xcb, 0x29, 0xe3, 0xda, 0xf5, 0x71,
+ 0x6b, 0x55, 0xb8, 0x95, 0x82, 0x78, 0xce, 0xb0,
+};
+static const unsigned char kat2288_addinreseed[] = {0};
+static const unsigned char kat2288_addin0[] = {0};
+static const unsigned char kat2288_addin1[] = {0};
+static const unsigned char kat2288_retbits[] = {
+ 0xb7, 0x5a, 0x09, 0x2d, 0x2a, 0x91, 0x54, 0xc3, 0x30, 0x42, 0xcb, 0xd8,
+ 0xbb, 0x96, 0x0e, 0xd7, 0x42, 0xdc, 0x7a, 0x00, 0x2c, 0x16, 0xe5, 0xe7,
+ 0x47, 0xdd, 0x58, 0xd3, 0x10, 0x57, 0x7d, 0xd0, 0x78, 0x0d, 0x4e, 0x39,
+ 0xfd, 0xb8, 0x97, 0xef, 0x37, 0x57, 0x02, 0x50, 0x71, 0x4e, 0x74, 0x68,
+ 0xe6, 0x87, 0xd5, 0x72, 0x91, 0x9c, 0xa9, 0x4a, 0x27, 0x36, 0x03, 0x46,
+ 0x4d, 0x3e, 0x91, 0xad,
+};
+static const struct drbg_kat_pr_false kat2288_t = {
+ 7, kat2288_entropyin, kat2288_nonce, kat2288_persstr,
+ kat2288_entropyinreseed, kat2288_addinreseed, kat2288_addin0,
+ kat2288_addin1, kat2288_retbits
+};
+static const struct drbg_kat kat2288 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2288_t
+};
+
+static const unsigned char kat2289_entropyin[] = {
+ 0xaa, 0x83, 0xd5, 0x11, 0x23, 0xe9, 0xdf, 0xbd, 0xd0, 0x8f, 0x8a, 0x0e,
+ 0x1b, 0x46, 0xbf, 0xf9, 0x65, 0x7d, 0x07, 0xe2, 0x2f, 0x4b, 0xc8, 0x2c,
+ 0x1e, 0xba, 0x64, 0x9c, 0x78, 0xd2, 0x1a, 0x2b,
+};
+static const unsigned char kat2289_nonce[] = {0};
+static const unsigned char kat2289_persstr[] = {0};
+static const unsigned char kat2289_entropyinreseed[] = {
+ 0x80, 0xfd, 0xcb, 0x15, 0x9f, 0x1e, 0xb6, 0x41, 0xd7, 0x2d, 0xa1, 0xd9,
+ 0x27, 0x40, 0xee, 0x37, 0xa3, 0xb1, 0xf5, 0xea, 0x7e, 0xc3, 0x69, 0x50,
+ 0x95, 0xa5, 0x67, 0x9a, 0x8d, 0x67, 0x34, 0x49,
+};
+static const unsigned char kat2289_addinreseed[] = {0};
+static const unsigned char kat2289_addin0[] = {0};
+static const unsigned char kat2289_addin1[] = {0};
+static const unsigned char kat2289_retbits[] = {
+ 0x6c, 0x65, 0x23, 0x39, 0x8f, 0x06, 0x29, 0x7c, 0x9e, 0x83, 0x4d, 0x10,
+ 0x22, 0x60, 0xc1, 0x80, 0x14, 0xf2, 0x49, 0x3b, 0x06, 0x8f, 0x65, 0x83,
+ 0xa8, 0x43, 0x6f, 0xc7, 0x96, 0x4e, 0x99, 0xbb, 0xc9, 0x31, 0x5b, 0x7d,
+ 0xc8, 0x01, 0x5d, 0xc4, 0xe0, 0x54, 0x89, 0x42, 0xb0, 0x24, 0xe7, 0xc1,
+ 0xab, 0x5c, 0x2d, 0x37, 0x50, 0x96, 0x7d, 0x7e, 0xb6, 0xa1, 0x78, 0x37,
+ 0xae, 0x94, 0x82, 0x89,
+};
+static const struct drbg_kat_pr_false kat2289_t = {
+ 8, kat2289_entropyin, kat2289_nonce, kat2289_persstr,
+ kat2289_entropyinreseed, kat2289_addinreseed, kat2289_addin0,
+ kat2289_addin1, kat2289_retbits
+};
+static const struct drbg_kat kat2289 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2289_t
+};
+
+static const unsigned char kat2290_entropyin[] = {
+ 0x9b, 0x23, 0x7c, 0x7a, 0x8c, 0xae, 0x39, 0x12, 0xa8, 0x68, 0x6e, 0x84,
+ 0x08, 0x8a, 0xc3, 0xb6, 0x58, 0x90, 0xd7, 0x0e, 0xd5, 0xd2, 0x0f, 0x55,
+ 0xe2, 0x16, 0x8c, 0x12, 0x96, 0x6b, 0xdc, 0xf4,
+};
+static const unsigned char kat2290_nonce[] = {0};
+static const unsigned char kat2290_persstr[] = {0};
+static const unsigned char kat2290_entropyinreseed[] = {
+ 0x52, 0x30, 0x03, 0x8a, 0x3d, 0xd7, 0x1a, 0x15, 0x87, 0xaa, 0x0e, 0xb5,
+ 0x59, 0x64, 0x66, 0x01, 0xa7, 0x96, 0xdc, 0x69, 0x47, 0xee, 0xe2, 0x86,
+ 0xda, 0x40, 0xbb, 0x6d, 0xf1, 0xfa, 0xec, 0xb2,
+};
+static const unsigned char kat2290_addinreseed[] = {0};
+static const unsigned char kat2290_addin0[] = {0};
+static const unsigned char kat2290_addin1[] = {0};
+static const unsigned char kat2290_retbits[] = {
+ 0xbd, 0x22, 0xa6, 0x5b, 0x53, 0x6c, 0xa9, 0x91, 0x83, 0xa7, 0x14, 0x52,
+ 0xdd, 0xf6, 0x92, 0x7e, 0x6b, 0xd6, 0x87, 0x61, 0x25, 0x07, 0x6d, 0xb7,
+ 0x61, 0x34, 0xf4, 0xb5, 0x2c, 0x35, 0x9f, 0x46, 0x44, 0xfa, 0xed, 0x46,
+ 0x45, 0x4b, 0xc2, 0xf7, 0x2e, 0xbf, 0x69, 0x8c, 0x86, 0x60, 0x3b, 0xcc,
+ 0x3b, 0x57, 0x5c, 0xfd, 0x93, 0x9c, 0xd0, 0x86, 0x10, 0x73, 0xb3, 0x2a,
+ 0x0c, 0x73, 0xec, 0xf4,
+};
+static const struct drbg_kat_pr_false kat2290_t = {
+ 9, kat2290_entropyin, kat2290_nonce, kat2290_persstr,
+ kat2290_entropyinreseed, kat2290_addinreseed, kat2290_addin0,
+ kat2290_addin1, kat2290_retbits
+};
+static const struct drbg_kat kat2290 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2290_t
+};
+
+static const unsigned char kat2291_entropyin[] = {
+ 0x4b, 0xf2, 0xb6, 0x26, 0x35, 0xad, 0xb5, 0xd6, 0xa0, 0x13, 0x3a, 0xed,
+ 0x5f, 0x19, 0xf3, 0x36, 0x8b, 0x94, 0xf9, 0xcb, 0x1a, 0xdb, 0xf2, 0xab,
+ 0x0b, 0x14, 0x4e, 0x61, 0x81, 0x39, 0xe8, 0x31,
+};
+static const unsigned char kat2291_nonce[] = {0};
+static const unsigned char kat2291_persstr[] = {0};
+static const unsigned char kat2291_entropyinreseed[] = {
+ 0x7d, 0x52, 0xba, 0xc3, 0xd0, 0xff, 0x5f, 0x2b, 0xf7, 0x8f, 0x63, 0x09,
+ 0x07, 0x22, 0x2b, 0x6c, 0xe5, 0x1f, 0xf4, 0x31, 0xc9, 0x95, 0x09, 0xbe,
+ 0xef, 0x16, 0x0d, 0x32, 0x7e, 0x3b, 0xc8, 0xe9,
+};
+static const unsigned char kat2291_addinreseed[] = {0};
+static const unsigned char kat2291_addin0[] = {0};
+static const unsigned char kat2291_addin1[] = {0};
+static const unsigned char kat2291_retbits[] = {
+ 0x11, 0xab, 0xad, 0x1f, 0xb1, 0x32, 0x5e, 0xe3, 0x32, 0x31, 0xf3, 0x90,
+ 0xe9, 0x50, 0x65, 0x02, 0x2d, 0xea, 0x2a, 0x57, 0xe0, 0x0b, 0x10, 0x50,
+ 0x78, 0xdf, 0x01, 0xde, 0x3d, 0x59, 0xad, 0xb8, 0x28, 0xf5, 0x4c, 0xe7,
+ 0xe9, 0xd9, 0x09, 0xb9, 0x75, 0x71, 0x46, 0xde, 0x17, 0xa7, 0x43, 0xcc,
+ 0x2e, 0x57, 0xed, 0x14, 0xb8, 0x54, 0x1a, 0x1a, 0x0d, 0x8f, 0x57, 0x7f,
+ 0x83, 0xd7, 0x5c, 0x1a,
+};
+static const struct drbg_kat_pr_false kat2291_t = {
+ 10, kat2291_entropyin, kat2291_nonce, kat2291_persstr,
+ kat2291_entropyinreseed, kat2291_addinreseed, kat2291_addin0,
+ kat2291_addin1, kat2291_retbits
+};
+static const struct drbg_kat kat2291 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2291_t
+};
+
+static const unsigned char kat2292_entropyin[] = {
+ 0xfd, 0xce, 0x5a, 0xeb, 0x11, 0xf9, 0x25, 0x07, 0x5b, 0x89, 0xf9, 0x5e,
+ 0xfe, 0xeb, 0x5c, 0x0a, 0xde, 0x47, 0xc5, 0xd3, 0x5f, 0x47, 0x6f, 0x78,
+ 0xf5, 0x14, 0x50, 0xaa, 0x1c, 0x5d, 0x6b, 0x40,
+};
+static const unsigned char kat2292_nonce[] = {0};
+static const unsigned char kat2292_persstr[] = {0};
+static const unsigned char kat2292_entropyinreseed[] = {
+ 0x99, 0x73, 0x84, 0x94, 0x3e, 0x55, 0x93, 0xd6, 0x16, 0x80, 0x37, 0x26,
+ 0xb7, 0xe8, 0x0f, 0xa8, 0xdd, 0x78, 0x5a, 0xb2, 0xf3, 0x30, 0xb9, 0xae,
+ 0x26, 0xf6, 0x5d, 0x70, 0xa7, 0x80, 0xdb, 0xf3,
+};
+static const unsigned char kat2292_addinreseed[] = {0};
+static const unsigned char kat2292_addin0[] = {0};
+static const unsigned char kat2292_addin1[] = {0};
+static const unsigned char kat2292_retbits[] = {
+ 0xb3, 0xf2, 0xec, 0xd1, 0x71, 0xb6, 0xaf, 0xbe, 0x1b, 0xd2, 0x2c, 0xf8,
+ 0x81, 0xba, 0x0a, 0x38, 0xd7, 0xf9, 0x4b, 0x68, 0x8b, 0x42, 0x37, 0xd3,
+ 0xb6, 0xe7, 0x37, 0x64, 0x85, 0x41, 0x12, 0xe9, 0xc7, 0xc2, 0x4d, 0x8c,
+ 0x7e, 0x8e, 0xfb, 0xfd, 0x9d, 0x90, 0x3b, 0x9b, 0xce, 0xb8, 0xe6, 0x75,
+ 0x43, 0x66, 0x80, 0xb4, 0x82, 0xca, 0x48, 0xae, 0x59, 0x49, 0x85, 0xae,
+ 0x16, 0x26, 0x67, 0x40,
+};
+static const struct drbg_kat_pr_false kat2292_t = {
+ 11, kat2292_entropyin, kat2292_nonce, kat2292_persstr,
+ kat2292_entropyinreseed, kat2292_addinreseed, kat2292_addin0,
+ kat2292_addin1, kat2292_retbits
+};
+static const struct drbg_kat kat2292 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2292_t
+};
+
+static const unsigned char kat2293_entropyin[] = {
+ 0x2a, 0xd9, 0x95, 0x98, 0x32, 0x50, 0x03, 0x57, 0x9b, 0xfd, 0x0c, 0xf0,
+ 0x57, 0xca, 0x8d, 0x28, 0x71, 0x94, 0xff, 0xa0, 0xd4, 0xad, 0xe2, 0xf9,
+ 0xec, 0x5b, 0x7a, 0x67, 0x14, 0x99, 0xa7, 0x65,
+};
+static const unsigned char kat2293_nonce[] = {0};
+static const unsigned char kat2293_persstr[] = {0};
+static const unsigned char kat2293_entropyinreseed[] = {
+ 0x9e, 0xb0, 0x2d, 0xc8, 0xbf, 0x74, 0x30, 0x3c, 0x54, 0x2c, 0x6d, 0xa4,
+ 0xbf, 0xf7, 0x2c, 0xb8, 0xa2, 0x85, 0x93, 0x87, 0x5a, 0x7e, 0x9b, 0xa0,
+ 0xda, 0x73, 0xbc, 0x7b, 0x47, 0x39, 0x95, 0x76,
+};
+static const unsigned char kat2293_addinreseed[] = {0};
+static const unsigned char kat2293_addin0[] = {0};
+static const unsigned char kat2293_addin1[] = {0};
+static const unsigned char kat2293_retbits[] = {
+ 0x65, 0xbd, 0x86, 0x70, 0x7d, 0x02, 0x76, 0xcd, 0x6f, 0x07, 0x95, 0x55,
+ 0xb8, 0x19, 0x27, 0x10, 0xab, 0x28, 0xb9, 0xeb, 0x0d, 0xcf, 0x3c, 0x1b,
+ 0x01, 0xc2, 0xf4, 0x68, 0x30, 0x47, 0x76, 0x09, 0xb4, 0x1e, 0x70, 0xab,
+ 0x36, 0x4b, 0x48, 0xa8, 0x9f, 0x62, 0x24, 0x16, 0xc3, 0xc1, 0x14, 0xea,
+ 0x99, 0x0d, 0xe7, 0x4b, 0x24, 0xc6, 0x7e, 0x26, 0x18, 0xd1, 0xc4, 0x9f,
+ 0x1d, 0x16, 0x9e, 0xb3,
+};
+static const struct drbg_kat_pr_false kat2293_t = {
+ 12, kat2293_entropyin, kat2293_nonce, kat2293_persstr,
+ kat2293_entropyinreseed, kat2293_addinreseed, kat2293_addin0,
+ kat2293_addin1, kat2293_retbits
+};
+static const struct drbg_kat kat2293 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2293_t
+};
+
+static const unsigned char kat2294_entropyin[] = {
+ 0x49, 0x72, 0x64, 0x1e, 0xa2, 0x42, 0x32, 0x63, 0x1a, 0x5d, 0x80, 0x83,
+ 0x2e, 0x98, 0xeb, 0xb1, 0xaa, 0x18, 0x56, 0xef, 0x08, 0x99, 0x92, 0x0a,
+ 0x5b, 0x50, 0xaa, 0x06, 0xd2, 0x05, 0x18, 0x4a,
+};
+static const unsigned char kat2294_nonce[] = {0};
+static const unsigned char kat2294_persstr[] = {0};
+static const unsigned char kat2294_entropyinreseed[] = {
+ 0xf5, 0xe9, 0x1c, 0x15, 0x4d, 0x6d, 0x0c, 0xce, 0x6b, 0x15, 0xcc, 0xa4,
+ 0x4b, 0xa6, 0x4b, 0x67, 0x01, 0x34, 0xf6, 0xdc, 0x86, 0x9d, 0x01, 0x05,
+ 0x7e, 0x20, 0xc0, 0xe0, 0x27, 0x52, 0x0b, 0x4c,
+};
+static const unsigned char kat2294_addinreseed[] = {0};
+static const unsigned char kat2294_addin0[] = {0};
+static const unsigned char kat2294_addin1[] = {0};
+static const unsigned char kat2294_retbits[] = {
+ 0x3f, 0x8a, 0x14, 0x5d, 0x9a, 0xd6, 0xce, 0x2a, 0xb8, 0x8c, 0xd8, 0x63,
+ 0xda, 0x34, 0xa3, 0xe5, 0xa3, 0xd7, 0x67, 0x03, 0x97, 0x69, 0x67, 0x7f,
+ 0x5c, 0x53, 0x2d, 0xbe, 0xb4, 0x16, 0xd3, 0x9d, 0xec, 0x4c, 0x29, 0x1c,
+ 0xe5, 0x0c, 0xe5, 0x37, 0x75, 0x80, 0xfe, 0x97, 0xc1, 0x93, 0x14, 0x4d,
+ 0x79, 0xb9, 0x59, 0xf0, 0xdc, 0x34, 0x24, 0x93, 0xda, 0xa8, 0x19, 0xeb,
+ 0x60, 0x12, 0xfa, 0x9f,
+};
+static const struct drbg_kat_pr_false kat2294_t = {
+ 13, kat2294_entropyin, kat2294_nonce, kat2294_persstr,
+ kat2294_entropyinreseed, kat2294_addinreseed, kat2294_addin0,
+ kat2294_addin1, kat2294_retbits
+};
+static const struct drbg_kat kat2294 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2294_t
+};
+
+static const unsigned char kat2295_entropyin[] = {
+ 0xd0, 0x83, 0xe2, 0x22, 0xd8, 0x15, 0x97, 0x40, 0x04, 0x47, 0x07, 0xc7,
+ 0x6b, 0xd9, 0xec, 0x44, 0x36, 0x20, 0x2a, 0xc7, 0x78, 0xf6, 0x36, 0x46,
+ 0xe5, 0xb1, 0xe8, 0x8f, 0x21, 0xdd, 0xc1, 0x3f,
+};
+static const unsigned char kat2295_nonce[] = {0};
+static const unsigned char kat2295_persstr[] = {0};
+static const unsigned char kat2295_entropyinreseed[] = {
+ 0xb7, 0xb7, 0x14, 0x55, 0x07, 0x98, 0xc8, 0x88, 0xa5, 0x02, 0x6b, 0x0b,
+ 0x78, 0x01, 0xc0, 0x92, 0x3a, 0xe6, 0x0a, 0x28, 0x58, 0xca, 0xbb, 0x6d,
+ 0x69, 0x72, 0xd6, 0x61, 0x15, 0xf4, 0x0e, 0xda,
+};
+static const unsigned char kat2295_addinreseed[] = {0};
+static const unsigned char kat2295_addin0[] = {0};
+static const unsigned char kat2295_addin1[] = {0};
+static const unsigned char kat2295_retbits[] = {
+ 0x22, 0x7a, 0x88, 0x58, 0x3b, 0xb1, 0x37, 0xf0, 0x82, 0x96, 0x7a, 0xf0,
+ 0x4c, 0x27, 0xcb, 0x46, 0x4a, 0x63, 0x32, 0x72, 0x0b, 0x75, 0x9b, 0x43,
+ 0x5d, 0x4a, 0x7e, 0x26, 0x34, 0x9f, 0x56, 0xf4, 0xbb, 0x44, 0x76, 0x95,
+ 0xc0, 0x62, 0x95, 0xe8, 0x38, 0xa6, 0xc8, 0x6f, 0xc3, 0x86, 0x70, 0x06,
+ 0x21, 0x7c, 0x94, 0xbb, 0x5c, 0xc9, 0x9b, 0x3c, 0x44, 0xbf, 0xe5, 0x41,
+ 0xfc, 0x77, 0x50, 0x3c,
+};
+static const struct drbg_kat_pr_false kat2295_t = {
+ 14, kat2295_entropyin, kat2295_nonce, kat2295_persstr,
+ kat2295_entropyinreseed, kat2295_addinreseed, kat2295_addin0,
+ kat2295_addin1, kat2295_retbits
+};
+static const struct drbg_kat kat2295 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2295_t
+};
+
+static const unsigned char kat2296_entropyin[] = {
+ 0x3f, 0x63, 0xe6, 0x06, 0xdc, 0xc3, 0x8f, 0xe1, 0x5c, 0xcb, 0x4b, 0x98,
+ 0x8b, 0x29, 0xd3, 0x9f, 0x10, 0xbd, 0xde, 0xbd, 0x29, 0x5e, 0x1f, 0x23,
+ 0x5b, 0xaf, 0x4f, 0x07, 0x97, 0x39, 0x90, 0x9a,
+};
+static const unsigned char kat2296_nonce[] = {0};
+static const unsigned char kat2296_persstr[] = {0};
+static const unsigned char kat2296_entropyinreseed[] = {
+ 0x74, 0xf6, 0x10, 0xc0, 0x9f, 0xdd, 0x94, 0x98, 0xff, 0xbd, 0x7e, 0x95,
+ 0x69, 0xf1, 0x42, 0xfd, 0xb3, 0x34, 0x56, 0xc6, 0x93, 0x1f, 0xf8, 0x8d,
+ 0x4a, 0xcf, 0x1f, 0xfc, 0x5d, 0x42, 0x48, 0x2b,
+};
+static const unsigned char kat2296_addinreseed[] = {
+ 0x84, 0xe8, 0x79, 0x6b, 0x05, 0x4b, 0xd9, 0x90, 0x28, 0x45, 0x52, 0x8b,
+ 0x03, 0x85, 0xa8, 0x78, 0xb0, 0xf6, 0xc9, 0x8a, 0x93, 0x3e, 0xc3, 0x78,
+ 0xa8, 0x79, 0xad, 0x36, 0x53, 0x94, 0xc8, 0xe8,
+};
+static const unsigned char kat2296_addin0[] = {
+ 0x80, 0x99, 0x5e, 0x23, 0xf6, 0x66, 0x4d, 0x2b, 0xb2, 0x3e, 0x22, 0x31,
+ 0x0d, 0x0e, 0x40, 0xd3, 0xfd, 0xae, 0x89, 0x0d, 0x64, 0xc0, 0x1c, 0x37,
+ 0x27, 0xa7, 0x57, 0x6a, 0x6c, 0x3c, 0xf8, 0xe5,
+};
+static const unsigned char kat2296_addin1[] = {
+ 0x53, 0xb8, 0xab, 0xef, 0x45, 0xd0, 0x2e, 0x53, 0xa6, 0x39, 0x76, 0x62,
+ 0x6c, 0x60, 0x43, 0x6d, 0xfd, 0xbe, 0x9a, 0x48, 0xbf, 0x5f, 0x88, 0xfc,
+ 0x05, 0x31, 0x7f, 0x63, 0x68, 0x47, 0x19, 0x3f,
+};
+static const unsigned char kat2296_retbits[] = {
+ 0x0b, 0x92, 0x4d, 0xe3, 0xca, 0x2a, 0x9d, 0xcc, 0xe9, 0xae, 0x4c, 0xd0,
+ 0x9a, 0x36, 0x46, 0x3e, 0xc3, 0x34, 0x8e, 0xef, 0xbd, 0x53, 0x11, 0x51,
+ 0xe5, 0x53, 0x1b, 0x4d, 0x2e, 0xc6, 0xcd, 0x27, 0x67, 0x4f, 0x26, 0xe8,
+ 0x42, 0x40, 0xa2, 0xaf, 0x9d, 0x37, 0xc7, 0x9c, 0x20, 0x45, 0xd9, 0x45,
+ 0x11, 0x2d, 0xaf, 0xa9, 0x42, 0xd3, 0xdf, 0x53, 0xa0, 0xe2, 0x52, 0x20,
+ 0xe0, 0xde, 0xfa, 0x3f,
+};
+static const struct drbg_kat_pr_false kat2296_t = {
+ 0, kat2296_entropyin, kat2296_nonce, kat2296_persstr,
+ kat2296_entropyinreseed, kat2296_addinreseed, kat2296_addin0,
+ kat2296_addin1, kat2296_retbits
+};
+static const struct drbg_kat kat2296 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2296_t
+};
+
+static const unsigned char kat2297_entropyin[] = {
+ 0x05, 0x2e, 0xff, 0x35, 0xd0, 0x51, 0x74, 0x15, 0x54, 0x36, 0xd8, 0x3b,
+ 0x50, 0xdf, 0xc0, 0xbc, 0x45, 0xef, 0x81, 0x51, 0x3c, 0xbb, 0x3e, 0xe6,
+ 0x3c, 0x48, 0xe8, 0xdc, 0x3b, 0xbc, 0x6d, 0x74,
+};
+static const unsigned char kat2297_nonce[] = {0};
+static const unsigned char kat2297_persstr[] = {0};
+static const unsigned char kat2297_entropyinreseed[] = {
+ 0x28, 0x56, 0xa0, 0xfb, 0x49, 0x44, 0x7b, 0x28, 0x58, 0xdf, 0x74, 0xd2,
+ 0x81, 0xff, 0xae, 0x23, 0xfb, 0x94, 0xf0, 0x40, 0xf7, 0x63, 0x3a, 0xa4,
+ 0xc8, 0x47, 0x84, 0x45, 0x04, 0x2e, 0x2a, 0xc4,
+};
+static const unsigned char kat2297_addinreseed[] = {
+ 0xbc, 0xd4, 0xab, 0x13, 0x6b, 0x67, 0xe7, 0x5e, 0xd0, 0x40, 0x9a, 0xa2,
+ 0xca, 0xca, 0x94, 0x26, 0x8b, 0x97, 0xa2, 0x68, 0xf9, 0x6a, 0x29, 0x1e,
+ 0x38, 0x73, 0x8b, 0xd7, 0xb3, 0xb3, 0x9d, 0x56,
+};
+static const unsigned char kat2297_addin0[] = {
+ 0x08, 0x7d, 0x24, 0x89, 0x61, 0x89, 0x0b, 0x84, 0x02, 0x8e, 0xfe, 0x6a,
+ 0x07, 0x97, 0xbc, 0x21, 0xe9, 0x7a, 0x4d, 0xfc, 0xce, 0x5f, 0x3c, 0x36,
+ 0x2f, 0x02, 0x9a, 0x62, 0x9f, 0xd4, 0x4c, 0x4f,
+};
+static const unsigned char kat2297_addin1[] = {
+ 0xdd, 0x3f, 0x9c, 0x56, 0xd6, 0xfe, 0xeb, 0xe9, 0x3c, 0xe9, 0xad, 0xa8,
+ 0x08, 0x26, 0x37, 0x79, 0x97, 0xc5, 0xb6, 0x3b, 0x7a, 0x3a, 0x00, 0x35,
+ 0xbe, 0xe2, 0xb6, 0x96, 0x22, 0xd9, 0x2d, 0xdc,
+};
+static const unsigned char kat2297_retbits[] = {
+ 0xe3, 0x77, 0x40, 0xd3, 0xde, 0x49, 0x58, 0x1f, 0x9a, 0x1b, 0xc8, 0xfa,
+ 0xa1, 0x95, 0x6d, 0x9e, 0x57, 0xc8, 0x75, 0x01, 0xd9, 0xd7, 0xd1, 0x8c,
+ 0x7b, 0x9e, 0x3a, 0x14, 0x1f, 0x3f, 0x1c, 0x1d, 0xef, 0x05, 0xf5, 0xf3,
+ 0x6c, 0x60, 0x18, 0x07, 0x73, 0x6e, 0xb9, 0x2d, 0x89, 0xa7, 0x2c, 0xbe,
+ 0x01, 0x59, 0x6f, 0x21, 0x52, 0x61, 0x0f, 0xa5, 0x09, 0xfe, 0x75, 0xf9,
+ 0xab, 0x00, 0x0b, 0x6d,
+};
+static const struct drbg_kat_pr_false kat2297_t = {
+ 1, kat2297_entropyin, kat2297_nonce, kat2297_persstr,
+ kat2297_entropyinreseed, kat2297_addinreseed, kat2297_addin0,
+ kat2297_addin1, kat2297_retbits
+};
+static const struct drbg_kat kat2297 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2297_t
+};
+
+static const unsigned char kat2298_entropyin[] = {
+ 0xcc, 0x83, 0x4e, 0x09, 0x7c, 0x3d, 0xd4, 0xc6, 0x2c, 0x1b, 0x93, 0x8d,
+ 0x66, 0x3f, 0xf1, 0x8b, 0x20, 0xbd, 0x12, 0x55, 0x25, 0x72, 0xb3, 0x27,
+ 0xd2, 0x40, 0x01, 0x7c, 0x52, 0xd2, 0x8f, 0x18,
+};
+static const unsigned char kat2298_nonce[] = {0};
+static const unsigned char kat2298_persstr[] = {0};
+static const unsigned char kat2298_entropyinreseed[] = {
+ 0x15, 0xc1, 0xe0, 0xf0, 0x27, 0x37, 0x57, 0xbf, 0x18, 0xab, 0x0f, 0x42,
+ 0x50, 0x67, 0xa7, 0xf3, 0xea, 0x32, 0x87, 0xe0, 0x67, 0xd8, 0x61, 0x4d,
+ 0xaf, 0x4d, 0x66, 0x78, 0x68, 0xf8, 0xff, 0x6e,
+};
+static const unsigned char kat2298_addinreseed[] = {
+ 0x5f, 0xa4, 0xe7, 0x9c, 0xa2, 0x0e, 0xcc, 0x7c, 0xbc, 0x6b, 0x11, 0x26,
+ 0x3f, 0x7a, 0x07, 0xfe, 0xae, 0x7e, 0xfa, 0xce, 0xb7, 0x3a, 0xba, 0xb5,
+ 0x66, 0x29, 0x4c, 0x3f, 0x78, 0x4d, 0x83, 0x62,
+};
+static const unsigned char kat2298_addin0[] = {
+ 0x3e, 0x88, 0x2f, 0x8b, 0x35, 0x04, 0xa1, 0xe0, 0xde, 0xd4, 0x06, 0xaf,
+ 0x62, 0xbe, 0x3b, 0xa1, 0x62, 0x99, 0x91, 0x49, 0x78, 0xe2, 0x7d, 0x28,
+ 0x34, 0x09, 0xf7, 0x9b, 0xc6, 0xb1, 0x40, 0x7d,
+};
+static const unsigned char kat2298_addin1[] = {
+ 0x32, 0x17, 0x65, 0x55, 0xbc, 0xbb, 0x43, 0x3f, 0x4f, 0x99, 0xd3, 0x70,
+ 0x9c, 0x8f, 0x9d, 0x11, 0x3e, 0x4e, 0x84, 0xdf, 0x1d, 0xd6, 0x8d, 0x93,
+ 0x95, 0x3f, 0xb3, 0x23, 0x17, 0x29, 0x73, 0xf2,
+};
+static const unsigned char kat2298_retbits[] = {
+ 0x74, 0xb6, 0x47, 0xe2, 0x1d, 0x40, 0x70, 0x5b, 0x7d, 0x84, 0x17, 0xf8,
+ 0xec, 0x75, 0x43, 0x40, 0xc2, 0x02, 0x7f, 0x53, 0xa3, 0x97, 0xc5, 0xcb,
+ 0x1b, 0xad, 0x3e, 0x3b, 0x63, 0x42, 0xbb, 0x65, 0x33, 0x88, 0x3d, 0x68,
+ 0x83, 0x3c, 0x0f, 0x0f, 0x66, 0x66, 0x93, 0xae, 0x66, 0xde, 0xcc, 0x9c,
+ 0xe5, 0x76, 0x19, 0x6b, 0xca, 0x20, 0x82, 0x99, 0x14, 0x2c, 0xd2, 0x27,
+ 0x77, 0x97, 0x47, 0x67,
+};
+static const struct drbg_kat_pr_false kat2298_t = {
+ 2, kat2298_entropyin, kat2298_nonce, kat2298_persstr,
+ kat2298_entropyinreseed, kat2298_addinreseed, kat2298_addin0,
+ kat2298_addin1, kat2298_retbits
+};
+static const struct drbg_kat kat2298 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2298_t
+};
+
+static const unsigned char kat2299_entropyin[] = {
+ 0xc8, 0x10, 0x9d, 0x21, 0x10, 0x29, 0xe9, 0x18, 0x67, 0x85, 0xb9, 0x4c,
+ 0xaa, 0x1f, 0x04, 0xbc, 0x42, 0x9b, 0xe4, 0xec, 0x44, 0x8d, 0xf6, 0xd3,
+ 0x76, 0xf9, 0x1c, 0x61, 0xc3, 0x63, 0x2d, 0xac,
+};
+static const unsigned char kat2299_nonce[] = {0};
+static const unsigned char kat2299_persstr[] = {0};
+static const unsigned char kat2299_entropyinreseed[] = {
+ 0x48, 0xc0, 0x27, 0xb9, 0x28, 0x7e, 0xec, 0xb8, 0x53, 0xdd, 0xb7, 0x78,
+ 0x1a, 0x4c, 0x60, 0x08, 0xd0, 0x31, 0xb1, 0x20, 0x71, 0xaa, 0x0f, 0x36,
+ 0x00, 0x0b, 0x76, 0xed, 0x69, 0x3c, 0xf6, 0xa0,
+};
+static const unsigned char kat2299_addinreseed[] = {
+ 0xd3, 0xd2, 0x7f, 0xa5, 0x25, 0xd4, 0xf7, 0x0f, 0xae, 0x0d, 0x86, 0x75,
+ 0xa9, 0xa6, 0xbf, 0x17, 0xff, 0x2e, 0x31, 0x7d, 0xaf, 0xbd, 0x62, 0xc7,
+ 0x7e, 0xc9, 0x99, 0xcf, 0xe0, 0xb1, 0xf1, 0xf7,
+};
+static const unsigned char kat2299_addin0[] = {
+ 0x70, 0x8b, 0x9d, 0x5c, 0x5b, 0x96, 0x29, 0x93, 0xe5, 0xef, 0x1e, 0xdf,
+ 0x4b, 0xbb, 0xa3, 0x8a, 0xe7, 0x1b, 0x3f, 0xd3, 0x1b, 0xd7, 0x67, 0x0d,
+ 0x72, 0x36, 0xb7, 0xb0, 0xde, 0x98, 0x05, 0xf1,
+};
+static const unsigned char kat2299_addin1[] = {
+ 0xfb, 0x9d, 0xdf, 0x9d, 0x04, 0x83, 0xce, 0xe3, 0x78, 0xb8, 0x6a, 0xba,
+ 0x5a, 0x3b, 0xd0, 0x16, 0x10, 0x80, 0x19, 0xc0, 0x7e, 0x5f, 0x2c, 0x85,
+ 0xc0, 0xd9, 0x80, 0xce, 0xd9, 0x05, 0xd7, 0xa2,
+};
+static const unsigned char kat2299_retbits[] = {
+ 0xcf, 0x69, 0xe0, 0xec, 0xad, 0x27, 0xc6, 0x6e, 0x1e, 0xc0, 0x94, 0x49,
+ 0x5b, 0xa3, 0x0d, 0x7f, 0x3a, 0x3e, 0x2d, 0xa5, 0x76, 0x6c, 0x4d, 0xba,
+ 0xa8, 0x21, 0x7e, 0xbe, 0xab, 0x77, 0xfa, 0x4d, 0x88, 0xfa, 0x9c, 0x67,
+ 0x31, 0x4b, 0xa6, 0x07, 0x64, 0x70, 0x95, 0xfa, 0x33, 0xad, 0x31, 0x8b,
+ 0xa6, 0x61, 0x11, 0x16, 0x7b, 0x2e, 0x88, 0x79, 0xd2, 0x1c, 0xc7, 0xe9,
+ 0xb1, 0x67, 0x76, 0x7a,
+};
+static const struct drbg_kat_pr_false kat2299_t = {
+ 3, kat2299_entropyin, kat2299_nonce, kat2299_persstr,
+ kat2299_entropyinreseed, kat2299_addinreseed, kat2299_addin0,
+ kat2299_addin1, kat2299_retbits
+};
+static const struct drbg_kat kat2299 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2299_t
+};
+
+static const unsigned char kat2300_entropyin[] = {
+ 0xdc, 0x36, 0xb2, 0x04, 0x93, 0xef, 0x94, 0x07, 0x52, 0x8a, 0xad, 0xd6,
+ 0xb7, 0xb3, 0x7f, 0xd6, 0x00, 0x45, 0xf6, 0x69, 0x73, 0x45, 0xa2, 0x69,
+ 0xb2, 0x0d, 0xd9, 0xcb, 0x06, 0x51, 0xe6, 0x30,
+};
+static const unsigned char kat2300_nonce[] = {0};
+static const unsigned char kat2300_persstr[] = {0};
+static const unsigned char kat2300_entropyinreseed[] = {
+ 0x6d, 0xbc, 0x7f, 0x8a, 0x60, 0xa3, 0xc4, 0x50, 0x5f, 0x12, 0x24, 0xf8,
+ 0x4e, 0x29, 0x42, 0x57, 0x1f, 0xe9, 0x63, 0x5e, 0x6b, 0xd3, 0xa9, 0x8e,
+ 0x67, 0x76, 0x47, 0xd7, 0x3f, 0x45, 0x47, 0x80,
+};
+static const unsigned char kat2300_addinreseed[] = {
+ 0x48, 0x09, 0x72, 0xb4, 0x39, 0x3f, 0x00, 0x41, 0xe0, 0x4b, 0x19, 0x35,
+ 0x40, 0x98, 0x75, 0x85, 0x99, 0x15, 0x88, 0x13, 0xcd, 0x2a, 0x8e, 0xd7,
+ 0x1b, 0x05, 0x74, 0x6b, 0xfd, 0x28, 0x67, 0x66,
+};
+static const unsigned char kat2300_addin0[] = {
+ 0xc0, 0x97, 0x2b, 0x8b, 0xd5, 0x40, 0x7f, 0xb7, 0xad, 0xac, 0x4d, 0x95,
+ 0x52, 0x92, 0x09, 0xef, 0xb5, 0x9a, 0xd9, 0xdc, 0x4b, 0xbf, 0xf7, 0x29,
+ 0x3c, 0x1e, 0x6e, 0x41, 0xf7, 0xf5, 0xef, 0x9f,
+};
+static const unsigned char kat2300_addin1[] = {
+ 0x32, 0x57, 0x86, 0xe4, 0xfc, 0xba, 0xcc, 0x9b, 0xa6, 0x50, 0x4b, 0x81,
+ 0x87, 0x49, 0xcd, 0x01, 0x78, 0xd4, 0xc3, 0xa7, 0x8e, 0x17, 0x8e, 0xc7,
+ 0xb2, 0x2d, 0x27, 0xaa, 0x06, 0x71, 0x01, 0x83,
+};
+static const unsigned char kat2300_retbits[] = {
+ 0xbd, 0xa1, 0xf7, 0xd3, 0x86, 0x1e, 0xbf, 0xc5, 0xd6, 0xee, 0x4d, 0x4e,
+ 0x94, 0xf3, 0xf4, 0xba, 0x97, 0xf1, 0x8e, 0x2c, 0x5a, 0xf7, 0x66, 0x72,
+ 0x65, 0xcc, 0x32, 0x03, 0xf0, 0x02, 0xa0, 0xf7, 0x9e, 0x7b, 0x51, 0x0c,
+ 0xde, 0x53, 0x10, 0xb3, 0x59, 0x2c, 0x12, 0x9a, 0xe7, 0x10, 0x5a, 0xb9,
+ 0x75, 0xad, 0xd8, 0x25, 0xce, 0x78, 0xd3, 0x46, 0xbf, 0x95, 0x63, 0xaa,
+ 0x50, 0x13, 0x9c, 0x13,
+};
+static const struct drbg_kat_pr_false kat2300_t = {
+ 4, kat2300_entropyin, kat2300_nonce, kat2300_persstr,
+ kat2300_entropyinreseed, kat2300_addinreseed, kat2300_addin0,
+ kat2300_addin1, kat2300_retbits
+};
+static const struct drbg_kat kat2300 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2300_t
+};
+
+static const unsigned char kat2301_entropyin[] = {
+ 0xaa, 0x18, 0x5b, 0x63, 0x66, 0x14, 0x9e, 0x18, 0xab, 0x0b, 0x82, 0x2c,
+ 0x17, 0xb5, 0x2c, 0xe9, 0x94, 0x0c, 0xc1, 0xc6, 0x06, 0x7e, 0xff, 0x3c,
+ 0xe1, 0xaa, 0x9a, 0x79, 0x89, 0x19, 0x35, 0xd7,
+};
+static const unsigned char kat2301_nonce[] = {0};
+static const unsigned char kat2301_persstr[] = {0};
+static const unsigned char kat2301_entropyinreseed[] = {
+ 0x10, 0x47, 0x31, 0xf4, 0x68, 0x93, 0xaa, 0x96, 0xe5, 0x8f, 0x09, 0x1f,
+ 0x87, 0x0c, 0x25, 0x01, 0x5d, 0x91, 0x7d, 0xce, 0x7b, 0x6e, 0x17, 0x79,
+ 0x96, 0x83, 0x83, 0x53, 0xdc, 0x0c, 0x32, 0x4c,
+};
+static const unsigned char kat2301_addinreseed[] = {
+ 0xc0, 0xef, 0x97, 0x4f, 0xe0, 0xad, 0xad, 0x82, 0x08, 0x8a, 0xc6, 0x44,
+ 0xbc, 0x70, 0x2d, 0xb6, 0x09, 0xca, 0xf2, 0xa8, 0xf5, 0x78, 0x61, 0xa6,
+ 0xb3, 0x1c, 0x9c, 0xf6, 0x5c, 0x19, 0x42, 0x88,
+};
+static const unsigned char kat2301_addin0[] = {
+ 0xa7, 0x07, 0x84, 0x25, 0xec, 0xb8, 0x7e, 0x04, 0xbb, 0xda, 0x85, 0xaf,
+ 0x2a, 0xa8, 0xc6, 0x44, 0x52, 0x5f, 0xc0, 0x91, 0x09, 0xae, 0xaf, 0xb1,
+ 0xd5, 0xdc, 0x95, 0xf1, 0x63, 0xeb, 0xfc, 0xe3,
+};
+static const unsigned char kat2301_addin1[] = {
+ 0x84, 0x76, 0x4f, 0x40, 0x6a, 0x50, 0xae, 0xa8, 0x71, 0xa5, 0x32, 0x68,
+ 0x65, 0x07, 0xc8, 0x28, 0x8e, 0xac, 0x5e, 0xdf, 0x95, 0x1d, 0xfc, 0x77,
+ 0x94, 0xc6, 0x71, 0xe8, 0x6c, 0x1f, 0x3d, 0x91,
+};
+static const unsigned char kat2301_retbits[] = {
+ 0x7e, 0x8c, 0xc1, 0x6d, 0xe3, 0xe3, 0xb7, 0x80, 0xfd, 0x51, 0x65, 0x14,
+ 0xe0, 0x45, 0x40, 0x03, 0xf6, 0x29, 0x38, 0x8f, 0x6a, 0x85, 0x38, 0xf3,
+ 0x6d, 0xfa, 0xe9, 0x4b, 0xdb, 0x85, 0x63, 0x29, 0xdc, 0xee, 0xd1, 0xcd,
+ 0xbc, 0x97, 0x24, 0xb0, 0x9e, 0xfa, 0x3f, 0x3b, 0xa1, 0x7b, 0x72, 0x36,
+ 0xd9, 0x7e, 0x95, 0xcf, 0xe4, 0xb3, 0x37, 0x82, 0xa2, 0xde, 0x73, 0x61,
+ 0x7a, 0x0d, 0x1d, 0x84,
+};
+static const struct drbg_kat_pr_false kat2301_t = {
+ 5, kat2301_entropyin, kat2301_nonce, kat2301_persstr,
+ kat2301_entropyinreseed, kat2301_addinreseed, kat2301_addin0,
+ kat2301_addin1, kat2301_retbits
+};
+static const struct drbg_kat kat2301 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2301_t
+};
+
+static const unsigned char kat2302_entropyin[] = {
+ 0xfd, 0xc6, 0x95, 0x8a, 0x4f, 0x3d, 0x10, 0x1f, 0xa9, 0x9e, 0xcf, 0x6a,
+ 0xc6, 0x02, 0xbf, 0xa6, 0x76, 0xa1, 0xe1, 0xfd, 0x56, 0xd5, 0xac, 0xf4,
+ 0xe5, 0x33, 0x99, 0x6d, 0xb1, 0x74, 0x63, 0xbf,
+};
+static const unsigned char kat2302_nonce[] = {0};
+static const unsigned char kat2302_persstr[] = {0};
+static const unsigned char kat2302_entropyinreseed[] = {
+ 0xc5, 0xfb, 0x57, 0x99, 0x0a, 0x54, 0x4e, 0x36, 0x5e, 0x94, 0x31, 0x8b,
+ 0xe0, 0x25, 0xb8, 0x00, 0x1d, 0xa4, 0x65, 0x3f, 0x30, 0x99, 0x61, 0xbc,
+ 0xbf, 0x58, 0xe6, 0x1a, 0x33, 0x7d, 0xb4, 0x12,
+};
+static const unsigned char kat2302_addinreseed[] = {
+ 0x39, 0x0d, 0xdd, 0x2f, 0xc1, 0x71, 0xaf, 0xa0, 0xc5, 0x19, 0xcf, 0x12,
+ 0x92, 0x33, 0x10, 0x23, 0xca, 0x3d, 0xc9, 0x3f, 0x63, 0x71, 0xe3, 0x22,
+ 0xd1, 0x0b, 0xcd, 0x4b, 0x9b, 0x42, 0x86, 0xd5,
+};
+static const unsigned char kat2302_addin0[] = {
+ 0x3b, 0xa2, 0x6a, 0x9f, 0xe0, 0x56, 0x9f, 0xa2, 0x1d, 0xfc, 0xc8, 0x23,
+ 0x7d, 0x7d, 0x9e, 0xe1, 0x0d, 0xb3, 0x8a, 0xd7, 0xf7, 0x28, 0x22, 0x3a,
+ 0xb6, 0x42, 0x94, 0xdf, 0x6a, 0x83, 0xca, 0xbf,
+};
+static const unsigned char kat2302_addin1[] = {
+ 0x92, 0xfb, 0xb9, 0xe3, 0xc2, 0x5c, 0x5e, 0x6e, 0xf9, 0x6d, 0x4a, 0x34,
+ 0x9f, 0x17, 0x6a, 0x91, 0xdc, 0x9f, 0x38, 0x56, 0xc3, 0x6f, 0x13, 0xc4,
+ 0x58, 0x4a, 0xea, 0xd0, 0xc9, 0x23, 0x1f, 0x7c,
+};
+static const unsigned char kat2302_retbits[] = {
+ 0xea, 0xe4, 0x75, 0x63, 0x25, 0x7a, 0x2c, 0x6b, 0x73, 0x05, 0x9e, 0x32,
+ 0x52, 0xff, 0x60, 0x11, 0xf6, 0xc7, 0x48, 0xff, 0xdc, 0x0a, 0x30, 0x29,
+ 0xad, 0x4c, 0x1b, 0x7b, 0x6a, 0x27, 0x79, 0x7b, 0xec, 0xcb, 0xda, 0x1e,
+ 0xfe, 0x0d, 0x97, 0x64, 0xa5, 0x91, 0x0a, 0x17, 0x1f, 0x35, 0x15, 0x71,
+ 0x19, 0x0b, 0x2e, 0xe1, 0x1b, 0xa9, 0x04, 0xa4, 0x54, 0x53, 0x17, 0xef,
+ 0xc9, 0x43, 0x6c, 0x61,
+};
+static const struct drbg_kat_pr_false kat2302_t = {
+ 6, kat2302_entropyin, kat2302_nonce, kat2302_persstr,
+ kat2302_entropyinreseed, kat2302_addinreseed, kat2302_addin0,
+ kat2302_addin1, kat2302_retbits
+};
+static const struct drbg_kat kat2302 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2302_t
+};
+
+static const unsigned char kat2303_entropyin[] = {
+ 0x8f, 0xeb, 0xa3, 0x37, 0xaf, 0x22, 0x25, 0xa6, 0x88, 0x3b, 0xed, 0x91,
+ 0xed, 0xb2, 0x61, 0x4b, 0x90, 0x5d, 0x3c, 0x24, 0x0d, 0xe1, 0x66, 0x3b,
+ 0xdc, 0x23, 0x15, 0xad, 0x72, 0x4e, 0x76, 0xa8,
+};
+static const unsigned char kat2303_nonce[] = {0};
+static const unsigned char kat2303_persstr[] = {0};
+static const unsigned char kat2303_entropyinreseed[] = {
+ 0x45, 0x83, 0xd0, 0xaf, 0x8a, 0x4c, 0x0b, 0xa1, 0x41, 0xdc, 0xa8, 0x50,
+ 0x1b, 0x36, 0xb0, 0x40, 0x66, 0xac, 0x80, 0xf6, 0xab, 0xec, 0x11, 0xfd,
+ 0x59, 0xd8, 0xd0, 0xdb, 0xee, 0x80, 0x9d, 0xeb,
+};
+static const unsigned char kat2303_addinreseed[] = {
+ 0x8c, 0xed, 0x0f, 0xef, 0x57, 0x86, 0x41, 0x3d, 0x2a, 0x7e, 0x5a, 0xb3,
+ 0xc1, 0x83, 0x6c, 0xaa, 0x1e, 0x14, 0x7e, 0xfc, 0x42, 0x4c, 0x4f, 0x36,
+ 0x53, 0xbb, 0xd1, 0x8b, 0xce, 0xdf, 0x1e, 0xf8,
+};
+static const unsigned char kat2303_addin0[] = {
+ 0xcf, 0x5b, 0xa3, 0x22, 0x47, 0x7f, 0x5a, 0xb6, 0x37, 0xe1, 0x10, 0xbb,
+ 0xaf, 0x78, 0x4f, 0x05, 0xaa, 0xf8, 0xbc, 0x09, 0x80, 0x76, 0x9d, 0x16,
+ 0xa7, 0x7f, 0x69, 0xfc, 0x90, 0xb0, 0x66, 0x07,
+};
+static const unsigned char kat2303_addin1[] = {
+ 0xc3, 0x0f, 0x6a, 0x2d, 0x12, 0x18, 0x4b, 0xfd, 0xe9, 0x60, 0x1b, 0xa2,
+ 0x61, 0x83, 0xed, 0x8e, 0x0d, 0x81, 0xd7, 0x92, 0x9c, 0x72, 0x10, 0x1c,
+ 0x5f, 0xef, 0x56, 0xb0, 0xda, 0x72, 0x38, 0xdf,
+};
+static const unsigned char kat2303_retbits[] = {
+ 0x4d, 0x3d, 0xe3, 0x0c, 0xf0, 0x2e, 0x8e, 0xc2, 0xe0, 0x4f, 0x52, 0xf3,
+ 0xb7, 0x4d, 0x10, 0x61, 0x80, 0x95, 0xa9, 0x27, 0xfe, 0xb0, 0xb1, 0xf1,
+ 0xa0, 0x4e, 0x65, 0x2d, 0x31, 0xed, 0x4c, 0xa2, 0xa4, 0x80, 0xa7, 0x4c,
+ 0xfe, 0xb3, 0xcb, 0x2a, 0xff, 0x9c, 0xfa, 0xd5, 0x3a, 0xaf, 0x9b, 0x95,
+ 0xfb, 0x1e, 0xf5, 0x01, 0x83, 0x31, 0xeb, 0xf7, 0x32, 0x05, 0xac, 0x98,
+ 0x88, 0x9f, 0xdf, 0x02,
+};
+static const struct drbg_kat_pr_false kat2303_t = {
+ 7, kat2303_entropyin, kat2303_nonce, kat2303_persstr,
+ kat2303_entropyinreseed, kat2303_addinreseed, kat2303_addin0,
+ kat2303_addin1, kat2303_retbits
+};
+static const struct drbg_kat kat2303 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2303_t
+};
+
+static const unsigned char kat2304_entropyin[] = {
+ 0x79, 0x46, 0xa1, 0x1e, 0x27, 0x52, 0xa4, 0x8b, 0x28, 0xf0, 0xa3, 0xbb,
+ 0x22, 0x9b, 0x41, 0xaa, 0x2e, 0x38, 0x0e, 0x37, 0x54, 0x27, 0x6e, 0x43,
+ 0x89, 0x16, 0xba, 0xbf, 0xff, 0x3f, 0x0b, 0xbe,
+};
+static const unsigned char kat2304_nonce[] = {0};
+static const unsigned char kat2304_persstr[] = {0};
+static const unsigned char kat2304_entropyinreseed[] = {
+ 0xbe, 0xcd, 0x22, 0xf3, 0x08, 0x60, 0xa5, 0x12, 0x5a, 0x28, 0x45, 0x4f,
+ 0x9b, 0x68, 0xc6, 0x83, 0x9c, 0x74, 0x40, 0xc6, 0x5b, 0xca, 0x8b, 0x8f,
+ 0x53, 0x7b, 0xe5, 0xfc, 0x0a, 0xac, 0xe5, 0x5b,
+};
+static const unsigned char kat2304_addinreseed[] = {
+ 0x48, 0xa9, 0xb5, 0x1e, 0x85, 0x2c, 0x1e, 0x33, 0x52, 0xe4, 0xe1, 0x5e,
+ 0x8a, 0x0a, 0xff, 0x75, 0x76, 0xc7, 0x68, 0x0f, 0x1a, 0x6a, 0xce, 0x48,
+ 0x44, 0x00, 0x17, 0xa3, 0xb0, 0xa6, 0x28, 0xcf,
+};
+static const unsigned char kat2304_addin0[] = {
+ 0x07, 0x86, 0xfa, 0x8c, 0x78, 0xa4, 0x26, 0x59, 0x88, 0xc7, 0xe8, 0xec,
+ 0x14, 0xc2, 0x59, 0xc3, 0x1e, 0x10, 0x3f, 0x79, 0x31, 0xc0, 0x91, 0x50,
+ 0xe9, 0x61, 0x71, 0xa2, 0xef, 0xe3, 0xae, 0x09,
+};
+static const unsigned char kat2304_addin1[] = {
+ 0x54, 0xe4, 0xa8, 0xf6, 0x29, 0x23, 0x59, 0x7d, 0xe4, 0xcd, 0xd6, 0x56,
+ 0x7e, 0x2d, 0x7f, 0xce, 0xab, 0xf5, 0xaf, 0xf8, 0x8b, 0x4a, 0xdb, 0x9a,
+ 0xe2, 0x72, 0xe4, 0xc5, 0xd5, 0xfd, 0xbe, 0x28,
+};
+static const unsigned char kat2304_retbits[] = {
+ 0xfa, 0x12, 0x11, 0xa4, 0x4e, 0xc4, 0x96, 0x6a, 0x63, 0x90, 0x4b, 0x03,
+ 0xcd, 0xa2, 0xe2, 0x68, 0xf8, 0x4a, 0x00, 0x91, 0xa2, 0xa8, 0x1b, 0x87,
+ 0xcc, 0x69, 0x5b, 0x0d, 0x05, 0xbb, 0xa8, 0xaf, 0x18, 0xee, 0x29, 0x2f,
+ 0x46, 0xe1, 0xda, 0xf1, 0x5d, 0xad, 0xd3, 0xef, 0x12, 0xd9, 0xd7, 0x9c,
+ 0xdf, 0x32, 0xa0, 0xe7, 0x3c, 0x9a, 0x6f, 0x57, 0xb2, 0xac, 0x14, 0xdb,
+ 0xc3, 0xcd, 0xaf, 0x37,
+};
+static const struct drbg_kat_pr_false kat2304_t = {
+ 8, kat2304_entropyin, kat2304_nonce, kat2304_persstr,
+ kat2304_entropyinreseed, kat2304_addinreseed, kat2304_addin0,
+ kat2304_addin1, kat2304_retbits
+};
+static const struct drbg_kat kat2304 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2304_t
+};
+
+static const unsigned char kat2305_entropyin[] = {
+ 0xe7, 0x45, 0xd1, 0x50, 0x74, 0xdd, 0x1e, 0x53, 0x16, 0x3e, 0x1a, 0x0f,
+ 0xb8, 0xce, 0x15, 0xf9, 0x30, 0xd8, 0x00, 0x10, 0x4a, 0xef, 0x4b, 0xc1,
+ 0x06, 0xfc, 0xb8, 0xaf, 0x15, 0x08, 0xca, 0xbd,
+};
+static const unsigned char kat2305_nonce[] = {0};
+static const unsigned char kat2305_persstr[] = {0};
+static const unsigned char kat2305_entropyinreseed[] = {
+ 0x39, 0xe0, 0x13, 0x85, 0xb2, 0xd4, 0xb9, 0x7d, 0x5a, 0x33, 0x82, 0xf2,
+ 0x8d, 0x02, 0xa4, 0xbb, 0xf4, 0x1e, 0xab, 0x31, 0x10, 0x86, 0x96, 0x73,
+ 0xe5, 0xc3, 0x7f, 0x4d, 0x08, 0x16, 0x86, 0xb3,
+};
+static const unsigned char kat2305_addinreseed[] = {
+ 0x91, 0xef, 0xc4, 0x19, 0x91, 0x22, 0x9d, 0xda, 0xbe, 0xb0, 0xe0, 0xcd,
+ 0x94, 0x5b, 0x6c, 0xec, 0xef, 0x92, 0xd7, 0x45, 0x6b, 0x22, 0xa9, 0xe7,
+ 0x94, 0x02, 0x96, 0x16, 0x10, 0xc0, 0x57, 0xa1,
+};
+static const unsigned char kat2305_addin0[] = {
+ 0xc8, 0x19, 0xe3, 0x91, 0xe1, 0xd7, 0x8f, 0x88, 0x1d, 0x7a, 0xc7, 0x79,
+ 0xcd, 0xe2, 0xe8, 0xd3, 0x53, 0xc2, 0xf8, 0xe7, 0x52, 0x55, 0xb8, 0x05,
+ 0x2e, 0xf5, 0xfc, 0x33, 0x6a, 0xd8, 0x15, 0x65,
+};
+static const unsigned char kat2305_addin1[] = {
+ 0xf0, 0xcf, 0xbb, 0x76, 0x28, 0x20, 0x8d, 0xc3, 0x82, 0xe7, 0x80, 0xdf,
+ 0x02, 0x37, 0x1e, 0x1c, 0x61, 0xa3, 0x28, 0xb3, 0x3d, 0x95, 0x54, 0x97,
+ 0x50, 0x9e, 0xd4, 0xd3, 0xf3, 0x17, 0x2c, 0xaf,
+};
+static const unsigned char kat2305_retbits[] = {
+ 0xeb, 0x8a, 0xc8, 0x68, 0xf4, 0x7c, 0x41, 0xee, 0xb1, 0xf7, 0x13, 0x65,
+ 0x14, 0xa6, 0x88, 0x39, 0x5b, 0x86, 0x2c, 0xc0, 0x7c, 0x26, 0x9c, 0x3c,
+ 0xee, 0xbf, 0xc9, 0xa6, 0x9e, 0x91, 0x8e, 0xa8, 0x3e, 0x30, 0xc9, 0x81,
+ 0x68, 0xe2, 0x76, 0x86, 0xae, 0x3a, 0xb1, 0x53, 0xf9, 0xb5, 0xac, 0x5a,
+ 0x45, 0x6b, 0x57, 0x96, 0x70, 0xfb, 0x4a, 0xf5, 0x1b, 0x34, 0xc7, 0x1d,
+ 0x73, 0xcc, 0x36, 0xcf,
+};
+static const struct drbg_kat_pr_false kat2305_t = {
+ 9, kat2305_entropyin, kat2305_nonce, kat2305_persstr,
+ kat2305_entropyinreseed, kat2305_addinreseed, kat2305_addin0,
+ kat2305_addin1, kat2305_retbits
+};
+static const struct drbg_kat kat2305 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2305_t
+};
+
+static const unsigned char kat2306_entropyin[] = {
+ 0xac, 0x24, 0x19, 0x0f, 0x83, 0x39, 0x44, 0xf8, 0xae, 0xed, 0x03, 0x95,
+ 0xf7, 0x5a, 0xbf, 0xd0, 0x85, 0x36, 0x87, 0x68, 0x29, 0x93, 0x45, 0x19,
+ 0x21, 0x4f, 0x37, 0x20, 0x48, 0x20, 0xbd, 0x8c,
+};
+static const unsigned char kat2306_nonce[] = {0};
+static const unsigned char kat2306_persstr[] = {0};
+static const unsigned char kat2306_entropyinreseed[] = {
+ 0xc7, 0xe6, 0x8f, 0x6c, 0x90, 0x87, 0x8d, 0xff, 0x52, 0xfc, 0xd5, 0x23,
+ 0x78, 0xb7, 0x15, 0x5c, 0x08, 0x68, 0xfd, 0x84, 0x93, 0xad, 0xcf, 0x9d,
+ 0xe7, 0xda, 0x75, 0x47, 0xdb, 0x8c, 0xbb, 0xe8,
+};
+static const unsigned char kat2306_addinreseed[] = {
+ 0x6e, 0xb2, 0x14, 0xcc, 0x64, 0x8a, 0xd0, 0xaa, 0xf9, 0xe3, 0x6d, 0xb8,
+ 0x7e, 0x69, 0x8c, 0x3a, 0xcb, 0x1f, 0x79, 0x4d, 0x2c, 0xe4, 0x64, 0x72,
+ 0xb5, 0x15, 0xca, 0x38, 0x6f, 0xc3, 0xaa, 0xed,
+};
+static const unsigned char kat2306_addin0[] = {
+ 0x18, 0xea, 0x81, 0x6f, 0x90, 0x6b, 0x9b, 0x64, 0x2d, 0xb0, 0xa1, 0xde,
+ 0xf3, 0x19, 0xb7, 0x1e, 0x70, 0x99, 0x25, 0xa6, 0xff, 0x54, 0xa2, 0x51,
+ 0x2f, 0x45, 0xaf, 0x1b, 0x9a, 0x95, 0x65, 0x1e,
+};
+static const unsigned char kat2306_addin1[] = {
+ 0x14, 0x3e, 0x68, 0x2a, 0x7d, 0x2f, 0x14, 0xa9, 0x25, 0x82, 0x2b, 0xf0,
+ 0xd8, 0xe5, 0x1d, 0x52, 0x05, 0xc4, 0x1a, 0xce, 0xc4, 0xa4, 0x8f, 0xec,
+ 0x98, 0x41, 0x08, 0x1c, 0x6f, 0x56, 0xaa, 0x5b,
+};
+static const unsigned char kat2306_retbits[] = {
+ 0xc8, 0xc2, 0xd6, 0x09, 0x1c, 0x27, 0x96, 0x51, 0x98, 0xb3, 0x00, 0x27,
+ 0xd2, 0x1c, 0x6e, 0x26, 0x7a, 0x00, 0x73, 0xfe, 0x94, 0xb0, 0x93, 0x67,
+ 0x53, 0x53, 0x18, 0x5f, 0x77, 0xb8, 0x9c, 0x02, 0x07, 0x45, 0x93, 0xd8,
+ 0xfc, 0x5b, 0xc2, 0x33, 0xe5, 0x9c, 0xdb, 0xef, 0x80, 0xb9, 0x33, 0x61,
+ 0xbd, 0x8b, 0x50, 0x38, 0xe0, 0xb2, 0x4c, 0x8a, 0x96, 0x3a, 0xb5, 0x95,
+ 0x2c, 0x87, 0xd6, 0xbc,
+};
+static const struct drbg_kat_pr_false kat2306_t = {
+ 10, kat2306_entropyin, kat2306_nonce, kat2306_persstr,
+ kat2306_entropyinreseed, kat2306_addinreseed, kat2306_addin0,
+ kat2306_addin1, kat2306_retbits
+};
+static const struct drbg_kat kat2306 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2306_t
+};
+
+static const unsigned char kat2307_entropyin[] = {
+ 0xb8, 0xf9, 0xe9, 0x97, 0x5c, 0xa0, 0x1d, 0x4b, 0x55, 0x73, 0x8b, 0xa5,
+ 0x99, 0x1e, 0x0b, 0x8c, 0xe6, 0xc4, 0x8f, 0x9e, 0x5e, 0x24, 0xe2, 0x08,
+ 0x0c, 0x94, 0x26, 0xfa, 0x46, 0xbf, 0xfc, 0x7a,
+};
+static const unsigned char kat2307_nonce[] = {0};
+static const unsigned char kat2307_persstr[] = {0};
+static const unsigned char kat2307_entropyinreseed[] = {
+ 0xb0, 0x14, 0x4a, 0xb4, 0xb9, 0xed, 0xab, 0xf8, 0xbc, 0x31, 0x67, 0x97,
+ 0x4d, 0x42, 0xac, 0xcb, 0x3c, 0x37, 0x73, 0x04, 0x29, 0x51, 0x9b, 0x65,
+ 0x69, 0xca, 0x7e, 0x7f, 0x68, 0xb5, 0x1b, 0x31,
+};
+static const unsigned char kat2307_addinreseed[] = {
+ 0x18, 0xc9, 0xaf, 0x5d, 0x87, 0x47, 0xa5, 0x52, 0x34, 0x82, 0x23, 0x76,
+ 0xb2, 0x11, 0xfd, 0x2f, 0xc0, 0xc5, 0xc1, 0x39, 0xcd, 0x53, 0xd3, 0xf9,
+ 0x30, 0xea, 0x4f, 0xd8, 0x00, 0x23, 0x33, 0x88,
+};
+static const unsigned char kat2307_addin0[] = {
+ 0xd6, 0x91, 0xc5, 0x8e, 0x10, 0xc6, 0xb3, 0x7b, 0xca, 0xb6, 0xf0, 0x42,
+ 0x56, 0xc4, 0xc1, 0xea, 0xe2, 0xda, 0xae, 0x79, 0xaf, 0xb6, 0x29, 0xdf,
+ 0xea, 0xab, 0x6c, 0xd0, 0x61, 0xf0, 0xdb, 0x95,
+};
+static const unsigned char kat2307_addin1[] = {
+ 0x2b, 0x65, 0xf6, 0xd5, 0x9e, 0xa4, 0xa3, 0x4c, 0x1e, 0x7e, 0xa4, 0x5e,
+ 0xca, 0x57, 0xb9, 0x72, 0x5e, 0x97, 0x4d, 0x3c, 0x44, 0x4d, 0xa5, 0x55,
+ 0x2f, 0x01, 0xfa, 0x3d, 0xe9, 0xef, 0x59, 0x36,
+};
+static const unsigned char kat2307_retbits[] = {
+ 0x1e, 0x3c, 0x83, 0x0f, 0xbe, 0x43, 0x89, 0x4c, 0x4f, 0x3c, 0x4c, 0x65,
+ 0xf7, 0xe6, 0x68, 0xe6, 0x8c, 0x50, 0x41, 0xf2, 0x0c, 0xb5, 0xb8, 0x05,
+ 0x60, 0x5e, 0x0c, 0x50, 0xcb, 0x45, 0x16, 0xc0, 0xef, 0x62, 0x7b, 0xbe,
+ 0x36, 0x4c, 0x29, 0xf9, 0x8e, 0xa9, 0xed, 0xd5, 0x48, 0x3f, 0x78, 0x94,
+ 0x02, 0xce, 0x27, 0xfb, 0x17, 0x80, 0xba, 0xcf, 0x06, 0x9b, 0xa8, 0x23,
+ 0x1f, 0xe1, 0xba, 0x7f,
+};
+static const struct drbg_kat_pr_false kat2307_t = {
+ 11, kat2307_entropyin, kat2307_nonce, kat2307_persstr,
+ kat2307_entropyinreseed, kat2307_addinreseed, kat2307_addin0,
+ kat2307_addin1, kat2307_retbits
+};
+static const struct drbg_kat kat2307 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2307_t
+};
+
+static const unsigned char kat2308_entropyin[] = {
+ 0xd8, 0x07, 0x5b, 0x36, 0xc2, 0x5f, 0x82, 0x12, 0xa4, 0x8d, 0x55, 0xb8,
+ 0xb0, 0x10, 0x28, 0xb2, 0x05, 0x35, 0x32, 0xa3, 0x19, 0xe8, 0x9c, 0x64,
+ 0x43, 0x31, 0xf2, 0xb6, 0x1d, 0x69, 0x02, 0xe2,
+};
+static const unsigned char kat2308_nonce[] = {0};
+static const unsigned char kat2308_persstr[] = {0};
+static const unsigned char kat2308_entropyinreseed[] = {
+ 0xb3, 0x90, 0x9a, 0x05, 0x5a, 0x25, 0xd0, 0x79, 0x78, 0xb0, 0xb4, 0x20,
+ 0x1b, 0x9a, 0x84, 0xb2, 0xd7, 0xf2, 0xa9, 0x91, 0xe4, 0x9e, 0x88, 0x2d,
+ 0x85, 0x89, 0x67, 0xd2, 0x06, 0x1d, 0x53, 0x0c,
+};
+static const unsigned char kat2308_addinreseed[] = {
+ 0x8c, 0xae, 0x69, 0xcb, 0x63, 0xfd, 0x81, 0xf0, 0x56, 0xe9, 0x86, 0xcc,
+ 0x31, 0xbd, 0xdd, 0x01, 0xe4, 0xa9, 0x13, 0x93, 0x4c, 0x4d, 0x6a, 0x34,
+ 0x8b, 0xc4, 0x04, 0x80, 0x00, 0x0f, 0xd1, 0x9e,
+};
+static const unsigned char kat2308_addin0[] = {
+ 0xa9, 0xf6, 0x32, 0xeb, 0x72, 0x16, 0xca, 0x91, 0x2c, 0x92, 0x27, 0xfe,
+ 0x24, 0xd1, 0xbd, 0x38, 0xb9, 0x5a, 0xb8, 0xff, 0x93, 0x94, 0x64, 0x52,
+ 0x8b, 0x21, 0xb4, 0x69, 0x27, 0x3c, 0x93, 0x70,
+};
+static const unsigned char kat2308_addin1[] = {
+ 0xc1, 0x88, 0xc5, 0x71, 0xb1, 0xa7, 0x08, 0x08, 0x17, 0xd4, 0x15, 0xc3,
+ 0xe7, 0xd9, 0xe5, 0x7c, 0xf2, 0x42, 0x62, 0x55, 0xe2, 0x5a, 0x32, 0x76,
+ 0x53, 0x7f, 0xd4, 0xc9, 0xb5, 0x25, 0x72, 0x03,
+};
+static const unsigned char kat2308_retbits[] = {
+ 0xb8, 0x11, 0x6d, 0xa0, 0x55, 0x98, 0x3b, 0x12, 0xd5, 0x62, 0xfa, 0xe9,
+ 0xcc, 0x47, 0x5b, 0xb9, 0x4f, 0x88, 0x08, 0xbd, 0x86, 0x06, 0xc9, 0xfa,
+ 0x02, 0x55, 0x62, 0xad, 0x89, 0x8f, 0xb5, 0x6d, 0x02, 0x60, 0x7a, 0x5a,
+ 0x88, 0xf9, 0xbb, 0xf4, 0xef, 0xc4, 0x08, 0x9d, 0xa8, 0x54, 0x05, 0xd7,
+ 0x31, 0xe8, 0x00, 0xd3, 0x61, 0x38, 0xbe, 0x4e, 0x01, 0xc8, 0xaa, 0xcc,
+ 0x79, 0xc3, 0xc9, 0x0d,
+};
+static const struct drbg_kat_pr_false kat2308_t = {
+ 12, kat2308_entropyin, kat2308_nonce, kat2308_persstr,
+ kat2308_entropyinreseed, kat2308_addinreseed, kat2308_addin0,
+ kat2308_addin1, kat2308_retbits
+};
+static const struct drbg_kat kat2308 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2308_t
+};
+
+static const unsigned char kat2309_entropyin[] = {
+ 0x9f, 0xb3, 0xe4, 0x88, 0xf3, 0x21, 0x9d, 0xa5, 0x1d, 0x66, 0xdd, 0x6d,
+ 0x74, 0x1f, 0x61, 0xc1, 0x79, 0x62, 0x77, 0xce, 0x50, 0x35, 0xe7, 0x22,
+ 0x11, 0x82, 0xfb, 0xff, 0x6c, 0x92, 0x0b, 0xe5,
+};
+static const unsigned char kat2309_nonce[] = {0};
+static const unsigned char kat2309_persstr[] = {0};
+static const unsigned char kat2309_entropyinreseed[] = {
+ 0x80, 0x6d, 0xc8, 0xf9, 0x88, 0xec, 0xfc, 0xf6, 0x3d, 0xa6, 0x3c, 0x0c,
+ 0xb2, 0x13, 0x0e, 0x11, 0xc2, 0x73, 0x31, 0x42, 0x6b, 0xc9, 0xc8, 0x2c,
+ 0xfc, 0x1a, 0xde, 0xf5, 0xb9, 0xb7, 0x9f, 0xf1,
+};
+static const unsigned char kat2309_addinreseed[] = {
+ 0x46, 0x3d, 0x3f, 0xf4, 0xb0, 0x22, 0xa2, 0x7c, 0xb5, 0x37, 0xc4, 0xd9,
+ 0x3a, 0x00, 0x12, 0x7a, 0x22, 0xf0, 0xa8, 0xe6, 0xcf, 0x11, 0xb4, 0x17,
+ 0xb1, 0x12, 0x90, 0xaa, 0x4c, 0x76, 0x66, 0x94,
+};
+static const unsigned char kat2309_addin0[] = {
+ 0x29, 0x3e, 0x26, 0x62, 0x21, 0x46, 0x24, 0x97, 0x66, 0x55, 0x5b, 0x00,
+ 0xfd, 0x6a, 0xe3, 0x7b, 0xa8, 0x1c, 0x7d, 0xb7, 0x5b, 0xf9, 0xd0, 0x1e,
+ 0xda, 0x27, 0xd4, 0x37, 0x05, 0x42, 0x08, 0x39,
+};
+static const unsigned char kat2309_addin1[] = {
+ 0x10, 0x99, 0xb7, 0x88, 0xa1, 0xf5, 0xa3, 0xa8, 0xbd, 0xea, 0x7f, 0x64,
+ 0x74, 0x82, 0x33, 0x7d, 0x45, 0x14, 0x9f, 0x36, 0x2e, 0xbb, 0x07, 0x7d,
+ 0xba, 0x24, 0x03, 0x39, 0xe3, 0x2c, 0x78, 0x04,
+};
+static const unsigned char kat2309_retbits[] = {
+ 0xea, 0x0b, 0x2f, 0xb3, 0x4a, 0x68, 0x01, 0x3a, 0x54, 0x68, 0x24, 0xb4,
+ 0x26, 0x78, 0xdb, 0xb7, 0xb7, 0x72, 0xf8, 0x5e, 0x2a, 0xda, 0x34, 0xe1,
+ 0x74, 0x77, 0x0a, 0xad, 0xd1, 0x05, 0xa6, 0x43, 0xe6, 0xaa, 0x58, 0xd5,
+ 0x3a, 0xae, 0xb9, 0x2c, 0xfa, 0xe7, 0xfb, 0x5b, 0x31, 0x2e, 0xa6, 0xb1,
+ 0xd3, 0x1e, 0xee, 0x59, 0x8d, 0xf1, 0x46, 0xa3, 0xf2, 0x92, 0x76, 0x3b,
+ 0x05, 0xaf, 0xaa, 0x63,
+};
+static const struct drbg_kat_pr_false kat2309_t = {
+ 13, kat2309_entropyin, kat2309_nonce, kat2309_persstr,
+ kat2309_entropyinreseed, kat2309_addinreseed, kat2309_addin0,
+ kat2309_addin1, kat2309_retbits
+};
+static const struct drbg_kat kat2309 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2309_t
+};
+
+static const unsigned char kat2310_entropyin[] = {
+ 0x52, 0xda, 0x7e, 0x17, 0x7f, 0xca, 0xed, 0xa2, 0x7f, 0x0a, 0x5b, 0xcb,
+ 0xbc, 0x08, 0x73, 0xb9, 0xea, 0xa2, 0xd3, 0x3b, 0xfa, 0xa2, 0x5c, 0xbd,
+ 0xbc, 0x04, 0xcd, 0x58, 0xe3, 0x6a, 0xb4, 0xd2,
+};
+static const unsigned char kat2310_nonce[] = {0};
+static const unsigned char kat2310_persstr[] = {0};
+static const unsigned char kat2310_entropyinreseed[] = {
+ 0x1f, 0xbe, 0xa4, 0x2f, 0xce, 0xcb, 0x30, 0x73, 0xfe, 0x25, 0x80, 0xc2,
+ 0x2c, 0xe6, 0x4c, 0x87, 0xcd, 0x23, 0x99, 0x43, 0xd4, 0x1b, 0xc7, 0x5f,
+ 0xac, 0xae, 0xdd, 0x39, 0x39, 0xa9, 0xa0, 0xce,
+};
+static const unsigned char kat2310_addinreseed[] = {
+ 0x28, 0x1e, 0xad, 0x1b, 0x26, 0x94, 0xfc, 0x14, 0x3b, 0x2e, 0x14, 0x89,
+ 0x7b, 0xd0, 0x3b, 0xea, 0xb9, 0x54, 0xe3, 0x24, 0x3f, 0x58, 0xac, 0x1c,
+ 0x09, 0x19, 0xfb, 0xac, 0xe7, 0x67, 0xa5, 0xe3,
+};
+static const unsigned char kat2310_addin0[] = {
+ 0xee, 0x0d, 0x3e, 0x9c, 0x17, 0x8d, 0x53, 0xf9, 0x95, 0x7e, 0xc0, 0x87,
+ 0x7a, 0xc7, 0x19, 0x69, 0x41, 0x97, 0xe8, 0xbd, 0xff, 0xed, 0xf8, 0xfe,
+ 0x59, 0xc5, 0x7a, 0x0c, 0xf6, 0xa8, 0xff, 0x84,
+};
+static const unsigned char kat2310_addin1[] = {
+ 0x25, 0x45, 0xd3, 0x0f, 0x8b, 0x97, 0x4a, 0x21, 0xfa, 0x54, 0x14, 0x6a,
+ 0x14, 0xa5, 0x66, 0xbc, 0x01, 0x56, 0xa0, 0x15, 0xbd, 0xde, 0x60, 0xf3,
+ 0xf2, 0xb9, 0xe1, 0x86, 0xf6, 0x18, 0x1f, 0x5d,
+};
+static const unsigned char kat2310_retbits[] = {
+ 0x7c, 0xd2, 0x00, 0x30, 0x34, 0xf2, 0x35, 0xe2, 0x09, 0xcb, 0x0d, 0x73,
+ 0xab, 0x44, 0x22, 0x34, 0x01, 0x6a, 0x04, 0xc8, 0x30, 0x75, 0x27, 0x21,
+ 0x99, 0x81, 0x46, 0xc2, 0xf6, 0xf2, 0x7d, 0x92, 0x30, 0x0b, 0x47, 0xfa,
+ 0x3e, 0xe7, 0x2b, 0x46, 0x37, 0x80, 0x92, 0xfe, 0xb1, 0x75, 0x58, 0x38,
+ 0x94, 0xb6, 0xf7, 0x00, 0x43, 0x62, 0xf7, 0x24, 0xef, 0x14, 0x5f, 0xe0,
+ 0x3c, 0x94, 0x1d, 0x42,
+};
+static const struct drbg_kat_pr_false kat2310_t = {
+ 14, kat2310_entropyin, kat2310_nonce, kat2310_persstr,
+ kat2310_entropyinreseed, kat2310_addinreseed, kat2310_addin0,
+ kat2310_addin1, kat2310_retbits
+};
+static const struct drbg_kat kat2310 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2310_t
+};
+
+static const unsigned char kat2311_entropyin[] = {
+ 0x87, 0x64, 0xbf, 0x9c, 0x12, 0xff, 0x37, 0xe2, 0x3a, 0xfe, 0x28, 0xa4,
+ 0x5c, 0x43, 0x04, 0xc0, 0x5d, 0x54, 0x65, 0x4b, 0xa1, 0x4c, 0xf5, 0x8d,
+ 0x7a, 0xe3, 0x71, 0x34, 0x7e, 0x1e, 0x70, 0x35,
+};
+static const unsigned char kat2311_nonce[] = {0};
+static const unsigned char kat2311_persstr[] = {
+ 0xa6, 0xcf, 0xbd, 0xd0, 0x5e, 0xee, 0x36, 0xa3, 0xd1, 0x01, 0xc3, 0xd0,
+ 0x30, 0x1c, 0xb6, 0xff, 0x21, 0x68, 0x7d, 0x9f, 0x89, 0xcf, 0xc8, 0x60,
+ 0xd0, 0x5d, 0xfa, 0x1a, 0x95, 0x7f, 0x56, 0xbd,
+};
+static const unsigned char kat2311_entropyinreseed[] = {
+ 0x19, 0x09, 0x33, 0xf0, 0x7a, 0x1d, 0x44, 0x8d, 0xab, 0x65, 0x07, 0x16,
+ 0xa1, 0xb3, 0x07, 0x14, 0xca, 0xda, 0x5c, 0xd0, 0xfb, 0xc4, 0x3b, 0x9d,
+ 0x2d, 0xde, 0x79, 0x1c, 0x4a, 0xd8, 0x52, 0x2d,
+};
+static const unsigned char kat2311_addinreseed[] = {0};
+static const unsigned char kat2311_addin0[] = {0};
+static const unsigned char kat2311_addin1[] = {0};
+static const unsigned char kat2311_retbits[] = {
+ 0x5c, 0xbd, 0x9b, 0x5c, 0xf1, 0x88, 0x33, 0x30, 0xb3, 0x0b, 0x1d, 0xa9,
+ 0x17, 0xe6, 0x2d, 0x66, 0x82, 0x11, 0x5f, 0x0e, 0x97, 0x52, 0x39, 0x6c,
+ 0x32, 0xc5, 0x97, 0xb9, 0x0a, 0x95, 0x72, 0xa7, 0xe9, 0xc6, 0x13, 0x89,
+ 0xf5, 0xec, 0x97, 0x9a, 0x72, 0xf7, 0x1f, 0xe0, 0x3d, 0x0c, 0xd2, 0xf3,
+ 0x4b, 0x3d, 0x91, 0x70, 0xcc, 0x96, 0x1a, 0x79, 0x42, 0xc6, 0x52, 0xec,
+ 0x42, 0x65, 0x1b, 0xd3,
+};
+static const struct drbg_kat_pr_false kat2311_t = {
+ 0, kat2311_entropyin, kat2311_nonce, kat2311_persstr,
+ kat2311_entropyinreseed, kat2311_addinreseed, kat2311_addin0,
+ kat2311_addin1, kat2311_retbits
+};
+static const struct drbg_kat kat2311 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2311_t
+};
+
+static const unsigned char kat2312_entropyin[] = {
+ 0xdf, 0x7b, 0xb7, 0x21, 0x7c, 0x72, 0xc3, 0xf9, 0x66, 0x1b, 0xce, 0x37,
+ 0xe1, 0x18, 0xda, 0x03, 0xf9, 0xf6, 0x8b, 0x63, 0xdf, 0x62, 0x66, 0x10,
+ 0x7e, 0x87, 0xcd, 0x6b, 0x16, 0x17, 0xff, 0x74,
+};
+static const unsigned char kat2312_nonce[] = {0};
+static const unsigned char kat2312_persstr[] = {
+ 0xd8, 0x60, 0xaf, 0x51, 0x7e, 0x2b, 0x09, 0x6f, 0x09, 0x4b, 0xd9, 0x00,
+ 0x43, 0x2e, 0xc6, 0xad, 0x0d, 0xa9, 0xee, 0x6e, 0xb5, 0xa1, 0x4a, 0x9d,
+ 0xbd, 0xf3, 0x2b, 0xc9, 0xfd, 0x6b, 0xca, 0x3c,
+};
+static const unsigned char kat2312_entropyinreseed[] = {
+ 0x41, 0x48, 0x71, 0xa9, 0xc3, 0x30, 0x87, 0x93, 0x92, 0x79, 0x73, 0x36,
+ 0x95, 0x24, 0x53, 0xf3, 0xcb, 0x5f, 0xb7, 0x52, 0x18, 0xbf, 0xe7, 0x24,
+ 0x60, 0x6b, 0x1a, 0xe7, 0xc1, 0x07, 0xd3, 0x84,
+};
+static const unsigned char kat2312_addinreseed[] = {0};
+static const unsigned char kat2312_addin0[] = {0};
+static const unsigned char kat2312_addin1[] = {0};
+static const unsigned char kat2312_retbits[] = {
+ 0x00, 0x66, 0x06, 0x35, 0x14, 0x62, 0x87, 0xae, 0x14, 0xdd, 0x6e, 0x87,
+ 0xfe, 0xe4, 0x40, 0x88, 0xed, 0x4d, 0xda, 0xee, 0xbb, 0x24, 0x66, 0x85,
+ 0xed, 0x95, 0xc3, 0xbc, 0xab, 0xc9, 0xe7, 0x2a, 0xaa, 0x23, 0xb2, 0x7d,
+ 0x74, 0x62, 0xe3, 0x2a, 0xe7, 0x8f, 0x17, 0x1a, 0x73, 0x9f, 0x8b, 0x30,
+ 0x40, 0x9a, 0x50, 0xce, 0xdb, 0xca, 0x39, 0xa4, 0xa8, 0x9e, 0xff, 0xac,
+ 0x38, 0x45, 0x97, 0x51,
+};
+static const struct drbg_kat_pr_false kat2312_t = {
+ 1, kat2312_entropyin, kat2312_nonce, kat2312_persstr,
+ kat2312_entropyinreseed, kat2312_addinreseed, kat2312_addin0,
+ kat2312_addin1, kat2312_retbits
+};
+static const struct drbg_kat kat2312 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2312_t
+};
+
+static const unsigned char kat2313_entropyin[] = {
+ 0x16, 0xd6, 0x48, 0xe7, 0x67, 0xb9, 0xd7, 0xcf, 0x63, 0x67, 0xb9, 0xdc,
+ 0x19, 0xe2, 0xd0, 0xb3, 0xbe, 0x20, 0x4b, 0x70, 0x26, 0x88, 0x69, 0xff,
+ 0x07, 0x28, 0xb9, 0xec, 0x21, 0x32, 0xe2, 0xaf,
+};
+static const unsigned char kat2313_nonce[] = {0};
+static const unsigned char kat2313_persstr[] = {
+ 0x2d, 0x81, 0x20, 0x4a, 0x42, 0x99, 0x50, 0x55, 0x6f, 0x89, 0x4a, 0x21,
+ 0x9e, 0x45, 0x5a, 0xe8, 0x01, 0x6a, 0x8c, 0x38, 0x33, 0xab, 0xe0, 0x53,
+ 0xc1, 0xc1, 0x8f, 0x53, 0xc9, 0x36, 0xc8, 0x99,
+};
+static const unsigned char kat2313_entropyinreseed[] = {
+ 0xa4, 0xbb, 0x15, 0xbe, 0x31, 0x45, 0x14, 0x9a, 0xea, 0xd1, 0x27, 0xad,
+ 0xf3, 0x82, 0xb9, 0x2c, 0xdd, 0xd6, 0x7c, 0x89, 0x8d, 0xd9, 0x5e, 0xa8,
+ 0xb2, 0x82, 0xa4, 0xbc, 0x83, 0xf9, 0xfb, 0xfc,
+};
+static const unsigned char kat2313_addinreseed[] = {0};
+static const unsigned char kat2313_addin0[] = {0};
+static const unsigned char kat2313_addin1[] = {0};
+static const unsigned char kat2313_retbits[] = {
+ 0x01, 0x23, 0x09, 0xa4, 0xc7, 0x9d, 0xbc, 0x7b, 0x54, 0x6d, 0x55, 0x0c,
+ 0xf5, 0x48, 0x87, 0x3e, 0xe1, 0x7e, 0x43, 0x71, 0x89, 0x6d, 0xa2, 0x9b,
+ 0x9b, 0x93, 0xde, 0xae, 0x14, 0xd8, 0xa8, 0x94, 0x1c, 0xb3, 0xca, 0x3b,
+ 0xcc, 0x47, 0xe7, 0x03, 0xea, 0xff, 0x03, 0x1e, 0x13, 0x5c, 0xa4, 0x6e,
+ 0x22, 0xc9, 0x17, 0xe0, 0xab, 0x31, 0x68, 0x5a, 0x7d, 0x84, 0x34, 0xca,
+ 0x44, 0xff, 0x4c, 0x70,
+};
+static const struct drbg_kat_pr_false kat2313_t = {
+ 2, kat2313_entropyin, kat2313_nonce, kat2313_persstr,
+ kat2313_entropyinreseed, kat2313_addinreseed, kat2313_addin0,
+ kat2313_addin1, kat2313_retbits
+};
+static const struct drbg_kat kat2313 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2313_t
+};
+
+static const unsigned char kat2314_entropyin[] = {
+ 0xdb, 0xdd, 0xa4, 0xf6, 0xc6, 0xf0, 0x1a, 0xce, 0x43, 0x87, 0x77, 0xdd,
+ 0x95, 0x1c, 0xf9, 0x2a, 0xd5, 0x14, 0x8f, 0x1f, 0x0d, 0xf6, 0x40, 0xb0,
+ 0x37, 0x93, 0xee, 0x9a, 0xf8, 0x82, 0x9c, 0x05,
+};
+static const unsigned char kat2314_nonce[] = {0};
+static const unsigned char kat2314_persstr[] = {
+ 0xaf, 0x64, 0x1b, 0xa2, 0xc2, 0xd8, 0xce, 0x09, 0xf4, 0x26, 0x45, 0x5a,
+ 0x84, 0xd3, 0x2d, 0x27, 0x14, 0x3a, 0x7d, 0x83, 0xf3, 0x3e, 0x22, 0x27,
+ 0x63, 0x44, 0xe6, 0xcd, 0x11, 0xf6, 0x86, 0x94,
+};
+static const unsigned char kat2314_entropyinreseed[] = {
+ 0xda, 0x44, 0xe2, 0x3d, 0x1b, 0x61, 0x15, 0x03, 0x2f, 0xd3, 0x16, 0xcd,
+ 0xad, 0x47, 0x52, 0x4b, 0x15, 0xf9, 0xe3, 0x48, 0xf1, 0x60, 0x81, 0xa6,
+ 0x26, 0x12, 0x1f, 0x68, 0xac, 0x21, 0x3b, 0x7e,
+};
+static const unsigned char kat2314_addinreseed[] = {0};
+static const unsigned char kat2314_addin0[] = {0};
+static const unsigned char kat2314_addin1[] = {0};
+static const unsigned char kat2314_retbits[] = {
+ 0x4b, 0x2c, 0x9c, 0x7f, 0xfd, 0x58, 0x8b, 0x13, 0xdf, 0x41, 0x5c, 0x55,
+ 0xc1, 0xfd, 0xa1, 0x5c, 0x1e, 0xfe, 0x22, 0x34, 0x5f, 0x7d, 0x72, 0x71,
+ 0x0b, 0x0c, 0xce, 0x2e, 0x5c, 0xa5, 0xe5, 0xdd, 0xa4, 0x03, 0xd8, 0x63,
+ 0x29, 0x59, 0x1e, 0x8a, 0x5a, 0xbd, 0x58, 0xac, 0x9f, 0xaa, 0x09, 0x93,
+ 0x3f, 0xf3, 0x88, 0xc3, 0xde, 0xeb, 0x8e, 0xc8, 0xef, 0xb5, 0xca, 0xda,
+ 0x3c, 0x66, 0xce, 0x8f,
+};
+static const struct drbg_kat_pr_false kat2314_t = {
+ 3, kat2314_entropyin, kat2314_nonce, kat2314_persstr,
+ kat2314_entropyinreseed, kat2314_addinreseed, kat2314_addin0,
+ kat2314_addin1, kat2314_retbits
+};
+static const struct drbg_kat kat2314 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2314_t
+};
+
+static const unsigned char kat2315_entropyin[] = {
+ 0x2b, 0xac, 0xf6, 0x9b, 0xc8, 0xb5, 0xc1, 0xba, 0x18, 0xa6, 0x27, 0xd2,
+ 0xe8, 0x3a, 0x98, 0xde, 0x11, 0xc8, 0x53, 0xa3, 0x37, 0x5e, 0x3c, 0x22,
+ 0xed, 0x8a, 0xf9, 0xd0, 0x1c, 0x91, 0xea, 0xa0,
+};
+static const unsigned char kat2315_nonce[] = {0};
+static const unsigned char kat2315_persstr[] = {
+ 0xcd, 0xc3, 0x0e, 0x35, 0x64, 0x12, 0xc3, 0x08, 0x23, 0x9a, 0xf2, 0x96,
+ 0x2c, 0xea, 0xc8, 0x25, 0xcb, 0x59, 0x5c, 0x60, 0xef, 0xf0, 0xbe, 0xbb,
+ 0x74, 0xed, 0x52, 0xe2, 0xc8, 0x80, 0x36, 0xd0,
+};
+static const unsigned char kat2315_entropyinreseed[] = {
+ 0xd5, 0xf7, 0x1f, 0x70, 0x9e, 0x0e, 0x27, 0x1c, 0xeb, 0x6a, 0x45, 0xeb,
+ 0x9c, 0xa6, 0xb7, 0x5f, 0x6b, 0x17, 0xbe, 0x22, 0x7f, 0x2b, 0xf5, 0xcb,
+ 0x6d, 0x47, 0x75, 0x5f, 0xf4, 0x0e, 0x5a, 0xe3,
+};
+static const unsigned char kat2315_addinreseed[] = {0};
+static const unsigned char kat2315_addin0[] = {0};
+static const unsigned char kat2315_addin1[] = {0};
+static const unsigned char kat2315_retbits[] = {
+ 0xf3, 0xf8, 0xb8, 0xda, 0x42, 0xb0, 0xeb, 0x2d, 0x1e, 0x5a, 0x16, 0xb5,
+ 0x83, 0xe7, 0xc0, 0x23, 0x10, 0xa9, 0xaa, 0xa9, 0x7a, 0xc3, 0x1f, 0x46,
+ 0x81, 0x26, 0x85, 0x08, 0xa7, 0x54, 0xf5, 0xd3, 0xd8, 0xd1, 0x58, 0xb4,
+ 0x5c, 0x54, 0xd5, 0x6a, 0x2c, 0xb8, 0x5c, 0x63, 0x82, 0xa3, 0xdc, 0xe9,
+ 0x75, 0x15, 0xdc, 0xcf, 0x0c, 0x52, 0x34, 0xa6, 0xa3, 0x69, 0x63, 0x00,
+ 0x02, 0x32, 0x54, 0xca,
+};
+static const struct drbg_kat_pr_false kat2315_t = {
+ 4, kat2315_entropyin, kat2315_nonce, kat2315_persstr,
+ kat2315_entropyinreseed, kat2315_addinreseed, kat2315_addin0,
+ kat2315_addin1, kat2315_retbits
+};
+static const struct drbg_kat kat2315 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2315_t
+};
+
+static const unsigned char kat2316_entropyin[] = {
+ 0xbd, 0xb2, 0x72, 0xeb, 0x56, 0x63, 0x67, 0xc8, 0xe0, 0x30, 0xe8, 0xb1,
+ 0x14, 0x70, 0x36, 0x41, 0x89, 0x20, 0x40, 0x67, 0xab, 0x3e, 0xe6, 0xf2,
+ 0xf5, 0x4c, 0x74, 0x61, 0x7e, 0xf3, 0x73, 0xec,
+};
+static const unsigned char kat2316_nonce[] = {0};
+static const unsigned char kat2316_persstr[] = {
+ 0xa9, 0x58, 0x35, 0x61, 0x86, 0x05, 0x52, 0xad, 0x92, 0x61, 0x76, 0x21,
+ 0xf0, 0xc0, 0x15, 0xbd, 0x09, 0xb6, 0xc0, 0x3c, 0x5e, 0x24, 0xa6, 0xf0,
+ 0xfe, 0x92, 0x63, 0xae, 0xf5, 0xd8, 0x1d, 0xe0,
+};
+static const unsigned char kat2316_entropyinreseed[] = {
+ 0x6d, 0x02, 0x4e, 0xff, 0xf1, 0x08, 0x4f, 0xea, 0x38, 0xa2, 0x64, 0xdb,
+ 0x2a, 0xa1, 0xf2, 0x78, 0x0d, 0xf3, 0xc7, 0x29, 0xc1, 0x2b, 0x34, 0x47,
+ 0x90, 0x26, 0xd2, 0x75, 0xef, 0xec, 0x97, 0xee,
+};
+static const unsigned char kat2316_addinreseed[] = {0};
+static const unsigned char kat2316_addin0[] = {0};
+static const unsigned char kat2316_addin1[] = {0};
+static const unsigned char kat2316_retbits[] = {
+ 0x50, 0x70, 0x98, 0x28, 0x51, 0xcd, 0xd8, 0x27, 0x72, 0x2b, 0xac, 0x4b,
+ 0x56, 0xe6, 0x38, 0x5a, 0x94, 0xba, 0xcd, 0x3e, 0xd3, 0xa0, 0xdc, 0x23,
+ 0x03, 0x3b, 0xf6, 0x0f, 0xbb, 0x71, 0xc7, 0xcb, 0xa3, 0x1f, 0x7f, 0xc0,
+ 0x39, 0x9d, 0x17, 0xf2, 0x41, 0x30, 0x49, 0x46, 0x04, 0x0b, 0x52, 0x7b,
+ 0xdc, 0xf8, 0x63, 0x15, 0xac, 0x89, 0x0e, 0x43, 0x76, 0x63, 0x51, 0xdd,
+ 0xb9, 0xba, 0x9e, 0xb4,
+};
+static const struct drbg_kat_pr_false kat2316_t = {
+ 5, kat2316_entropyin, kat2316_nonce, kat2316_persstr,
+ kat2316_entropyinreseed, kat2316_addinreseed, kat2316_addin0,
+ kat2316_addin1, kat2316_retbits
+};
+static const struct drbg_kat kat2316 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2316_t
+};
+
+static const unsigned char kat2317_entropyin[] = {
+ 0x8e, 0x3d, 0x85, 0xc9, 0x1d, 0xef, 0x9a, 0xb0, 0x8a, 0xf1, 0xae, 0xe1,
+ 0xdb, 0x87, 0xb1, 0xdb, 0x7b, 0x8c, 0x3d, 0xbf, 0x49, 0x3b, 0x8b, 0x62,
+ 0x5e, 0x6c, 0x87, 0xee, 0x4a, 0x05, 0xe1, 0x77,
+};
+static const unsigned char kat2317_nonce[] = {0};
+static const unsigned char kat2317_persstr[] = {
+ 0x3b, 0xc3, 0xd5, 0x2c, 0xa8, 0x08, 0x6f, 0x8c, 0xb3, 0x75, 0xdf, 0x48,
+ 0x7b, 0x41, 0xef, 0x1d, 0x5b, 0xef, 0x5e, 0x4b, 0x01, 0x05, 0x8c, 0xee,
+ 0xfb, 0xc2, 0xa8, 0xe8, 0xb6, 0x82, 0x69, 0x4a,
+};
+static const unsigned char kat2317_entropyinreseed[] = {
+ 0x9d, 0xbf, 0x4c, 0x8d, 0x18, 0x7c, 0x99, 0x72, 0xd0, 0xd2, 0x26, 0xce,
+ 0x2b, 0xd2, 0x09, 0x8d, 0x70, 0x66, 0x02, 0xe5, 0xd8, 0xfe, 0x63, 0x87,
+ 0x97, 0xaa, 0x96, 0x9e, 0xe4, 0xb6, 0xb4, 0x73,
+};
+static const unsigned char kat2317_addinreseed[] = {0};
+static const unsigned char kat2317_addin0[] = {0};
+static const unsigned char kat2317_addin1[] = {0};
+static const unsigned char kat2317_retbits[] = {
+ 0xe0, 0xce, 0x25, 0x04, 0xb1, 0x9c, 0xdf, 0x7e, 0x7d, 0x4d, 0x50, 0x9b,
+ 0x26, 0x4a, 0xad, 0xe8, 0x34, 0x48, 0xc0, 0x48, 0xc3, 0x47, 0x73, 0xb6,
+ 0x9e, 0xb1, 0x4b, 0x71, 0xb0, 0xb1, 0xa8, 0x89, 0x9b, 0xda, 0xc8, 0x35,
+ 0x24, 0xd5, 0xf7, 0x43, 0x3d, 0xfc, 0x65, 0xa1, 0x64, 0x19, 0xf8, 0x1b,
+ 0xa4, 0x18, 0xa4, 0xab, 0x3d, 0xe0, 0xfe, 0xc5, 0x07, 0x57, 0xa4, 0x1a,
+ 0x4d, 0x00, 0x9a, 0xc1,
+};
+static const struct drbg_kat_pr_false kat2317_t = {
+ 6, kat2317_entropyin, kat2317_nonce, kat2317_persstr,
+ kat2317_entropyinreseed, kat2317_addinreseed, kat2317_addin0,
+ kat2317_addin1, kat2317_retbits
+};
+static const struct drbg_kat kat2317 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2317_t
+};
+
+static const unsigned char kat2318_entropyin[] = {
+ 0xb5, 0x5b, 0xe0, 0x84, 0x87, 0x38, 0x94, 0x57, 0x9c, 0xf1, 0xda, 0x2d,
+ 0x86, 0x3a, 0x4c, 0x36, 0xe1, 0x50, 0x05, 0x06, 0x5b, 0x64, 0x57, 0x05,
+ 0x78, 0xb1, 0xf4, 0x60, 0xe9, 0xf7, 0xa5, 0xc7,
+};
+static const unsigned char kat2318_nonce[] = {0};
+static const unsigned char kat2318_persstr[] = {
+ 0xd3, 0x0d, 0xd7, 0x4b, 0xbf, 0xf7, 0x14, 0xb9, 0x0a, 0x12, 0xe4, 0x21,
+ 0xe3, 0x8e, 0x75, 0xff, 0xa8, 0x09, 0xb0, 0xe9, 0xc8, 0x69, 0x2a, 0x4a,
+ 0x0b, 0xb9, 0xff, 0xc6, 0xec, 0xe1, 0x13, 0x8f,
+};
+static const unsigned char kat2318_entropyinreseed[] = {
+ 0x26, 0x4b, 0x4b, 0xae, 0x24, 0x9e, 0x78, 0xb6, 0x26, 0x74, 0x71, 0x49,
+ 0xdd, 0x6d, 0xd5, 0xd2, 0x39, 0x60, 0x8f, 0x8c, 0x10, 0xe6, 0x0e, 0xe8,
+ 0x40, 0xe0, 0xbc, 0x0a, 0xb6, 0xb9, 0x14, 0xeb,
+};
+static const unsigned char kat2318_addinreseed[] = {0};
+static const unsigned char kat2318_addin0[] = {0};
+static const unsigned char kat2318_addin1[] = {0};
+static const unsigned char kat2318_retbits[] = {
+ 0xd2, 0xd4, 0xa4, 0xe3, 0x3f, 0xf5, 0x95, 0x1b, 0xc3, 0x45, 0x7b, 0x4b,
+ 0xe2, 0xa8, 0xa8, 0xcb, 0x1c, 0x7d, 0x46, 0x57, 0xd6, 0x66, 0x75, 0x82,
+ 0x4b, 0xc0, 0xe4, 0x2c, 0xe6, 0xa1, 0xb9, 0xe0, 0x4f, 0x0f, 0x27, 0xe6,
+ 0x7d, 0xaf, 0x6b, 0xbb, 0x11, 0xcc, 0x9e, 0x80, 0x91, 0x34, 0x76, 0xb6,
+ 0xd1, 0xdb, 0x78, 0x87, 0x96, 0xdc, 0x60, 0xea, 0x7d, 0x87, 0x59, 0xc2,
+ 0xe1, 0x60, 0x3a, 0x85,
+};
+static const struct drbg_kat_pr_false kat2318_t = {
+ 7, kat2318_entropyin, kat2318_nonce, kat2318_persstr,
+ kat2318_entropyinreseed, kat2318_addinreseed, kat2318_addin0,
+ kat2318_addin1, kat2318_retbits
+};
+static const struct drbg_kat kat2318 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2318_t
+};
+
+static const unsigned char kat2319_entropyin[] = {
+ 0x7b, 0xa1, 0x5c, 0x76, 0xd5, 0xec, 0x7c, 0x8e, 0x34, 0x9f, 0xb3, 0x68,
+ 0x3b, 0x2b, 0x39, 0x6c, 0x61, 0x3b, 0xbf, 0x69, 0x59, 0xfb, 0x49, 0xab,
+ 0xe3, 0xf2, 0xab, 0xc3, 0x46, 0x93, 0x7b, 0xa1,
+};
+static const unsigned char kat2319_nonce[] = {0};
+static const unsigned char kat2319_persstr[] = {
+ 0xc4, 0xce, 0x04, 0x34, 0x2c, 0x7c, 0x74, 0x31, 0x6e, 0xb1, 0xe1, 0x1c,
+ 0x5a, 0x10, 0x30, 0x09, 0xa3, 0xf6, 0xce, 0x1f, 0xa2, 0x70, 0x07, 0xd5,
+ 0x4d, 0xd1, 0x45, 0x57, 0x4f, 0x71, 0xef, 0x8b,
+};
+static const unsigned char kat2319_entropyinreseed[] = {
+ 0x66, 0x1b, 0xb5, 0xed, 0x93, 0x20, 0xb4, 0xb8, 0x2f, 0xed, 0x06, 0x6b,
+ 0x65, 0x2d, 0x82, 0x89, 0x3c, 0xec, 0xf2, 0xd6, 0x91, 0x02, 0x6a, 0xd6,
+ 0xf1, 0xb4, 0x5e, 0x0b, 0x4b, 0x57, 0xca, 0xf5,
+};
+static const unsigned char kat2319_addinreseed[] = {0};
+static const unsigned char kat2319_addin0[] = {0};
+static const unsigned char kat2319_addin1[] = {0};
+static const unsigned char kat2319_retbits[] = {
+ 0x0b, 0xf6, 0xe5, 0x28, 0xfc, 0xc8, 0x58, 0x9d, 0xa4, 0x92, 0xde, 0xc0,
+ 0x57, 0xb4, 0xde, 0x83, 0x63, 0x48, 0x3f, 0x59, 0x6f, 0x7b, 0xf8, 0xea,
+ 0x8b, 0xab, 0x5a, 0x58, 0x22, 0xa0, 0xd6, 0x02, 0x12, 0x5a, 0xdc, 0xa6,
+ 0x81, 0x93, 0xee, 0x5e, 0x2c, 0x64, 0x2c, 0x5e, 0xa8, 0x94, 0xf9, 0xcd,
+ 0xa9, 0x82, 0xcf, 0xbb, 0x41, 0x6c, 0x9e, 0x43, 0x9e, 0xde, 0xa5, 0xec,
+ 0x2b, 0x04, 0x29, 0xd5,
+};
+static const struct drbg_kat_pr_false kat2319_t = {
+ 8, kat2319_entropyin, kat2319_nonce, kat2319_persstr,
+ kat2319_entropyinreseed, kat2319_addinreseed, kat2319_addin0,
+ kat2319_addin1, kat2319_retbits
+};
+static const struct drbg_kat kat2319 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2319_t
+};
+
+static const unsigned char kat2320_entropyin[] = {
+ 0x7f, 0x07, 0xc8, 0x29, 0x57, 0xfc, 0x85, 0x00, 0x90, 0xab, 0xb4, 0xe0,
+ 0x6f, 0xea, 0xe9, 0xa6, 0xeb, 0x9e, 0x90, 0x51, 0x7f, 0x7e, 0x02, 0x4f,
+ 0x7b, 0xb7, 0x84, 0x40, 0xc4, 0x81, 0xb1, 0x0a,
+};
+static const unsigned char kat2320_nonce[] = {0};
+static const unsigned char kat2320_persstr[] = {
+ 0x44, 0x9b, 0xca, 0x7c, 0x34, 0x81, 0x44, 0xe0, 0x7b, 0x3e, 0xc3, 0x3c,
+ 0x33, 0xcf, 0x99, 0x77, 0xb1, 0x1b, 0xe3, 0x1a, 0xfc, 0x49, 0x1e, 0x0a,
+ 0x09, 0xa5, 0x32, 0xa1, 0x67, 0xfc, 0xee, 0x4a,
+};
+static const unsigned char kat2320_entropyinreseed[] = {
+ 0x50, 0x17, 0xd7, 0x58, 0xf3, 0xc9, 0x08, 0x5b, 0x9d, 0x55, 0x85, 0xfc,
+ 0xf5, 0x58, 0xbd, 0x35, 0x15, 0xfe, 0xab, 0xa4, 0x9c, 0xd0, 0x49, 0x1e,
+ 0xfb, 0x20, 0x24, 0xc0, 0x8b, 0x74, 0xe9, 0xf4,
+};
+static const unsigned char kat2320_addinreseed[] = {0};
+static const unsigned char kat2320_addin0[] = {0};
+static const unsigned char kat2320_addin1[] = {0};
+static const unsigned char kat2320_retbits[] = {
+ 0xb6, 0xd7, 0x4b, 0xbd, 0x2c, 0xbe, 0x4d, 0xe6, 0x36, 0xaf, 0x1e, 0xf1,
+ 0x20, 0x78, 0x58, 0x0e, 0x4e, 0x72, 0x85, 0x5d, 0x7f, 0xfe, 0x43, 0x33,
+ 0x12, 0xda, 0xad, 0xed, 0x3c, 0x81, 0x7f, 0x77, 0xb6, 0xc4, 0x03, 0xd9,
+ 0x40, 0x94, 0xbf, 0xf3, 0xc0, 0xed, 0xb1, 0x23, 0x2d, 0x59, 0x62, 0xf7,
+ 0x47, 0xe5, 0xca, 0xb2, 0xde, 0xc3, 0x29, 0xf1, 0x9b, 0x32, 0xee, 0x1d,
+ 0xb6, 0xa6, 0x78, 0xb1,
+};
+static const struct drbg_kat_pr_false kat2320_t = {
+ 9, kat2320_entropyin, kat2320_nonce, kat2320_persstr,
+ kat2320_entropyinreseed, kat2320_addinreseed, kat2320_addin0,
+ kat2320_addin1, kat2320_retbits
+};
+static const struct drbg_kat kat2320 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2320_t
+};
+
+static const unsigned char kat2321_entropyin[] = {
+ 0x54, 0x15, 0xa7, 0x36, 0xa1, 0x89, 0xb5, 0x80, 0xb6, 0x2f, 0xaf, 0xf8,
+ 0x18, 0x04, 0x5a, 0x98, 0x10, 0x4d, 0x31, 0x90, 0x72, 0x22, 0xe2, 0xd4,
+ 0xbb, 0x76, 0x45, 0x2e, 0x69, 0xec, 0x93, 0x48,
+};
+static const unsigned char kat2321_nonce[] = {0};
+static const unsigned char kat2321_persstr[] = {
+ 0xa9, 0xd3, 0xeb, 0x2f, 0x85, 0x11, 0x9f, 0x62, 0x52, 0xfa, 0xd8, 0xac,
+ 0x32, 0x5c, 0xa1, 0x5f, 0xcc, 0x46, 0x3e, 0xe5, 0x1f, 0xb0, 0xb5, 0x7c,
+ 0x1d, 0x72, 0x46, 0xc8, 0xba, 0x28, 0xed, 0xdd,
+};
+static const unsigned char kat2321_entropyinreseed[] = {
+ 0x11, 0x08, 0xf9, 0x87, 0xff, 0x50, 0x08, 0x7c, 0xb5, 0x83, 0xd2, 0x10,
+ 0xd2, 0xcc, 0x07, 0xc6, 0x58, 0xf5, 0x29, 0x28, 0x33, 0x2f, 0xad, 0x8f,
+ 0x2c, 0xa2, 0x17, 0xb4, 0x38, 0x38, 0x65, 0x4e,
+};
+static const unsigned char kat2321_addinreseed[] = {0};
+static const unsigned char kat2321_addin0[] = {0};
+static const unsigned char kat2321_addin1[] = {0};
+static const unsigned char kat2321_retbits[] = {
+ 0xe9, 0x2d, 0x7c, 0xbc, 0xb1, 0xea, 0xbb, 0x42, 0xc9, 0x29, 0xac, 0xf3,
+ 0x1f, 0x73, 0x89, 0x23, 0x0a, 0xaf, 0xa8, 0xe0, 0x24, 0x28, 0x16, 0xde,
+ 0xaa, 0xd3, 0x9e, 0x16, 0xec, 0x74, 0x0b, 0x1a, 0xae, 0xaa, 0x71, 0x4d,
+ 0xa2, 0x07, 0x38, 0xb6, 0x1e, 0xd2, 0xbc, 0xe1, 0x9e, 0xd9, 0x43, 0x63,
+ 0xdf, 0x69, 0xe1, 0x98, 0xbe, 0xd5, 0x5c, 0x1e, 0x96, 0xbb, 0x88, 0x4d,
+ 0xb5, 0x67, 0xc8, 0xc6,
+};
+static const struct drbg_kat_pr_false kat2321_t = {
+ 10, kat2321_entropyin, kat2321_nonce, kat2321_persstr,
+ kat2321_entropyinreseed, kat2321_addinreseed, kat2321_addin0,
+ kat2321_addin1, kat2321_retbits
+};
+static const struct drbg_kat kat2321 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2321_t
+};
+
+static const unsigned char kat2322_entropyin[] = {
+ 0x3e, 0xf0, 0xb0, 0x9e, 0xcf, 0x9d, 0x32, 0x50, 0x8b, 0xb3, 0xd3, 0x12,
+ 0x04, 0x4e, 0xc1, 0x1b, 0xc2, 0xcb, 0xff, 0x65, 0xb7, 0xda, 0x5b, 0xb0,
+ 0x88, 0x89, 0x65, 0x85, 0x4b, 0xb7, 0xa3, 0x19,
+};
+static const unsigned char kat2322_nonce[] = {0};
+static const unsigned char kat2322_persstr[] = {
+ 0x3c, 0xf0, 0xd2, 0x3c, 0x97, 0xc3, 0xbe, 0x61, 0x7f, 0xaa, 0xbb, 0x44,
+ 0xda, 0xae, 0x96, 0xc4, 0x61, 0x2c, 0x68, 0x19, 0xe6, 0x52, 0xa5, 0x26,
+ 0x4d, 0x79, 0x80, 0x99, 0x1a, 0x5d, 0x2a, 0x91,
+};
+static const unsigned char kat2322_entropyinreseed[] = {
+ 0xc3, 0x23, 0x6b, 0x2a, 0x1e, 0xe7, 0x89, 0x19, 0xb2, 0x10, 0x3b, 0x0e,
+ 0xf0, 0xc5, 0x2c, 0x86, 0x53, 0x15, 0x22, 0x78, 0xdb, 0xa2, 0x3e, 0xef,
+ 0xf3, 0xa7, 0x06, 0x50, 0xb6, 0x6b, 0xe1, 0x5d,
+};
+static const unsigned char kat2322_addinreseed[] = {0};
+static const unsigned char kat2322_addin0[] = {0};
+static const unsigned char kat2322_addin1[] = {0};
+static const unsigned char kat2322_retbits[] = {
+ 0x7a, 0xf7, 0x4e, 0x3d, 0x8f, 0x8a, 0x6f, 0xb4, 0x2e, 0x2e, 0x37, 0x74,
+ 0xb3, 0x0c, 0xbf, 0x16, 0x79, 0x4f, 0xc3, 0x5b, 0xd3, 0x30, 0xf2, 0xcd,
+ 0x78, 0x5a, 0x0d, 0xc6, 0x4e, 0x8f, 0xc8, 0x35, 0x11, 0x3b, 0x59, 0x49,
+ 0x1b, 0x11, 0x3f, 0xaf, 0xed, 0x0e, 0x60, 0xca, 0x0c, 0xd0, 0xb0, 0x0b,
+ 0x22, 0x0b, 0x5c, 0x6d, 0x73, 0x50, 0xa1, 0x91, 0xb5, 0xd3, 0x18, 0x8a,
+ 0x74, 0xc5, 0x95, 0x2b,
+};
+static const struct drbg_kat_pr_false kat2322_t = {
+ 11, kat2322_entropyin, kat2322_nonce, kat2322_persstr,
+ kat2322_entropyinreseed, kat2322_addinreseed, kat2322_addin0,
+ kat2322_addin1, kat2322_retbits
+};
+static const struct drbg_kat kat2322 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2322_t
+};
+
+static const unsigned char kat2323_entropyin[] = {
+ 0x9d, 0xac, 0x11, 0xb1, 0x82, 0x5b, 0x54, 0x6c, 0x07, 0x29, 0x7f, 0xce,
+ 0x1c, 0xde, 0xbf, 0xad, 0x39, 0xef, 0x27, 0x00, 0x33, 0x60, 0x31, 0x09,
+ 0x7d, 0xfa, 0x86, 0x15, 0x96, 0xd4, 0x90, 0x15,
+};
+static const unsigned char kat2323_nonce[] = {0};
+static const unsigned char kat2323_persstr[] = {
+ 0x37, 0x3c, 0xff, 0x2b, 0x14, 0x9b, 0xa7, 0xcb, 0xb0, 0xf7, 0xab, 0x5a,
+ 0x8c, 0x57, 0xe1, 0x40, 0xca, 0x53, 0x20, 0xf7, 0xb5, 0xdd, 0xbf, 0x9e,
+ 0x8d, 0x56, 0x6c, 0x56, 0x43, 0xfa, 0xba, 0x71,
+};
+static const unsigned char kat2323_entropyinreseed[] = {
+ 0xdc, 0xb2, 0x04, 0xc7, 0xb0, 0x59, 0x2f, 0x2f, 0x38, 0xa5, 0x81, 0x8a,
+ 0xa0, 0xe1, 0xdc, 0xc2, 0xc8, 0x25, 0x53, 0x87, 0x40, 0x98, 0xbc, 0xe4,
+ 0x01, 0x04, 0x88, 0x88, 0x29, 0xd7, 0x6a, 0xfd,
+};
+static const unsigned char kat2323_addinreseed[] = {0};
+static const unsigned char kat2323_addin0[] = {0};
+static const unsigned char kat2323_addin1[] = {0};
+static const unsigned char kat2323_retbits[] = {
+ 0xe3, 0xf8, 0x82, 0x60, 0xa3, 0x64, 0xd6, 0x73, 0xe8, 0x9f, 0x8a, 0x67,
+ 0x14, 0x1a, 0xca, 0x4f, 0x0a, 0x4e, 0x9f, 0xd7, 0x33, 0x16, 0x3e, 0x84,
+ 0xab, 0x7b, 0xa9, 0x40, 0xe4, 0xf0, 0xca, 0x41, 0xb0, 0x90, 0xad, 0xb3,
+ 0x93, 0xdc, 0x44, 0x6a, 0x0d, 0xc0, 0x4f, 0x11, 0x37, 0x7e, 0x1a, 0xf4,
+ 0x1d, 0xbc, 0x07, 0x45, 0x4d, 0xb8, 0xe9, 0x57, 0x77, 0x96, 0x09, 0x46,
+ 0x92, 0xe4, 0xe5, 0x95,
+};
+static const struct drbg_kat_pr_false kat2323_t = {
+ 12, kat2323_entropyin, kat2323_nonce, kat2323_persstr,
+ kat2323_entropyinreseed, kat2323_addinreseed, kat2323_addin0,
+ kat2323_addin1, kat2323_retbits
+};
+static const struct drbg_kat kat2323 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2323_t
+};
+
+static const unsigned char kat2324_entropyin[] = {
+ 0x5c, 0xf5, 0xa3, 0x1a, 0xac, 0x56, 0x98, 0x44, 0x53, 0xc0, 0x11, 0x63,
+ 0x80, 0xa1, 0x46, 0x22, 0x7f, 0x14, 0xf0, 0x0d, 0x85, 0x03, 0x55, 0x80,
+ 0xe6, 0xe3, 0xca, 0x73, 0x14, 0x00, 0x30, 0xab,
+};
+static const unsigned char kat2324_nonce[] = {0};
+static const unsigned char kat2324_persstr[] = {
+ 0x52, 0xdf, 0x31, 0x5f, 0x00, 0x6a, 0xb6, 0xae, 0x72, 0x42, 0xbd, 0x0d,
+ 0xce, 0xfd, 0x9f, 0x0e, 0x7e, 0x6f, 0x18, 0xb2, 0xf5, 0x7b, 0x80, 0x4e,
+ 0xaa, 0xcf, 0x90, 0x07, 0x5f, 0x3d, 0x39, 0x4f,
+};
+static const unsigned char kat2324_entropyinreseed[] = {
+ 0x81, 0xd1, 0x3e, 0x9c, 0xda, 0x01, 0x2d, 0x25, 0x35, 0xa1, 0xdf, 0x99,
+ 0xaf, 0x72, 0xf6, 0x43, 0xca, 0xff, 0xb3, 0x77, 0x6b, 0x97, 0x7a, 0x3d,
+ 0x3f, 0x81, 0x40, 0x59, 0x45, 0x47, 0x09, 0x86,
+};
+static const unsigned char kat2324_addinreseed[] = {0};
+static const unsigned char kat2324_addin0[] = {0};
+static const unsigned char kat2324_addin1[] = {0};
+static const unsigned char kat2324_retbits[] = {
+ 0xc5, 0x0e, 0xda, 0x2d, 0xa3, 0x68, 0xf0, 0x90, 0x8c, 0x9c, 0x1f, 0xfe,
+ 0x35, 0xe7, 0x5f, 0x02, 0xe2, 0xb8, 0x64, 0xa3, 0x1a, 0x52, 0x9e, 0x62,
+ 0x04, 0xad, 0x28, 0x2a, 0x3a, 0x95, 0xa4, 0xbf, 0x50, 0xbd, 0xae, 0x43,
+ 0x83, 0x77, 0x89, 0xf2, 0x84, 0xf3, 0xec, 0xcb, 0xf3, 0x42, 0xb1, 0xcf,
+ 0x9d, 0x35, 0xaf, 0x47, 0xa3, 0x59, 0x7c, 0xba, 0x11, 0x06, 0x93, 0x3e,
+ 0x37, 0x69, 0xd2, 0x90,
+};
+static const struct drbg_kat_pr_false kat2324_t = {
+ 13, kat2324_entropyin, kat2324_nonce, kat2324_persstr,
+ kat2324_entropyinreseed, kat2324_addinreseed, kat2324_addin0,
+ kat2324_addin1, kat2324_retbits
+};
+static const struct drbg_kat kat2324 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2324_t
+};
+
+static const unsigned char kat2325_entropyin[] = {
+ 0xc8, 0xa4, 0xe7, 0x39, 0x42, 0x01, 0x9f, 0xa4, 0xae, 0xe8, 0x8e, 0x01,
+ 0x21, 0x40, 0xe5, 0x65, 0xb5, 0xed, 0x9e, 0xb8, 0x34, 0x5a, 0x37, 0xbd,
+ 0x0d, 0xd5, 0x0a, 0x58, 0xc0, 0xc3, 0xbb, 0x7d,
+};
+static const unsigned char kat2325_nonce[] = {0};
+static const unsigned char kat2325_persstr[] = {
+ 0x41, 0xb9, 0xb8, 0xe2, 0xd9, 0xa7, 0x94, 0x5f, 0xfc, 0xf2, 0x63, 0x1b,
+ 0xf7, 0xd6, 0x68, 0x64, 0x89, 0x93, 0xc0, 0xf4, 0x85, 0x9e, 0xa2, 0x2d,
+ 0xe4, 0x27, 0x9c, 0x02, 0xa7, 0x39, 0xba, 0x2f,
+};
+static const unsigned char kat2325_entropyinreseed[] = {
+ 0xce, 0xcd, 0x9d, 0x0a, 0xc5, 0xcb, 0x7e, 0xa4, 0xcd, 0xa4, 0x56, 0x6b,
+ 0x87, 0x3b, 0xce, 0xfc, 0x2d, 0xb0, 0x68, 0xee, 0x41, 0x77, 0x4a, 0x68,
+ 0x61, 0xa2, 0x1b, 0xc6, 0x9c, 0xbe, 0x18, 0x14,
+};
+static const unsigned char kat2325_addinreseed[] = {0};
+static const unsigned char kat2325_addin0[] = {0};
+static const unsigned char kat2325_addin1[] = {0};
+static const unsigned char kat2325_retbits[] = {
+ 0x9d, 0x72, 0x09, 0xb6, 0x25, 0xd5, 0xdf, 0x31, 0xa9, 0x49, 0xfb, 0xf1,
+ 0x5b, 0xf6, 0xe4, 0x51, 0x5e, 0x42, 0xe6, 0xeb, 0x03, 0x90, 0x9d, 0xd6,
+ 0xd7, 0xff, 0x4e, 0x00, 0x1a, 0x84, 0x08, 0xc7, 0x04, 0x90, 0x1c, 0xa2,
+ 0xb2, 0x12, 0x1c, 0x07, 0x9e, 0x36, 0xc2, 0x8a, 0xed, 0x7a, 0x78, 0x6a,
+ 0xa3, 0x56, 0xb6, 0xf3, 0xc7, 0x5b, 0x87, 0xd4, 0xc7, 0x8a, 0x2d, 0x06,
+ 0x37, 0x1d, 0xe3, 0x56,
+};
+static const struct drbg_kat_pr_false kat2325_t = {
+ 14, kat2325_entropyin, kat2325_nonce, kat2325_persstr,
+ kat2325_entropyinreseed, kat2325_addinreseed, kat2325_addin0,
+ kat2325_addin1, kat2325_retbits
+};
+static const struct drbg_kat kat2325 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2325_t
+};
+
+static const unsigned char kat2326_entropyin[] = {
+ 0x77, 0x27, 0xb1, 0x13, 0x58, 0xcf, 0xa1, 0x2d, 0x22, 0x09, 0xd9, 0xd3,
+ 0xd6, 0x94, 0x2c, 0x62, 0x29, 0x6f, 0x68, 0x15, 0x93, 0xa5, 0xfc, 0x7d,
+ 0x15, 0xd9, 0x24, 0x42, 0xf5, 0xec, 0x75, 0x7e,
+};
+static const unsigned char kat2326_nonce[] = {0};
+static const unsigned char kat2326_persstr[] = {
+ 0xc1, 0xd2, 0x80, 0xfc, 0x9c, 0xed, 0xad, 0xb9, 0x48, 0x64, 0x12, 0x2e,
+ 0x87, 0x39, 0x89, 0xd7, 0x08, 0x0a, 0x0a, 0x34, 0xc6, 0x25, 0x20, 0x4f,
+ 0x04, 0xe7, 0x14, 0x16, 0x0c, 0x1c, 0xd9, 0x62,
+};
+static const unsigned char kat2326_entropyinreseed[] = {
+ 0xeb, 0x85, 0x1c, 0xa6, 0x64, 0x7c, 0xff, 0x70, 0xd9, 0x12, 0xd1, 0xe7,
+ 0x60, 0xab, 0xdb, 0x6b, 0x75, 0x28, 0x1e, 0x3c, 0xfb, 0x21, 0x69, 0x3f,
+ 0xea, 0x83, 0x06, 0x59, 0x01, 0x30, 0x14, 0x11,
+};
+static const unsigned char kat2326_addinreseed[] = {
+ 0x28, 0xcc, 0xec, 0x62, 0x8a, 0xc9, 0xfd, 0x74, 0x25, 0x1b, 0xdc, 0xfa,
+ 0xe5, 0xe3, 0xb3, 0x63, 0x05, 0xd5, 0x8d, 0x45, 0xf2, 0x8d, 0xa7, 0xa7,
+ 0x1e, 0xb2, 0xaa, 0x71, 0x0b, 0x99, 0x71, 0x79,
+};
+static const unsigned char kat2326_addin0[] = {
+ 0x79, 0x45, 0x78, 0xa6, 0x79, 0xba, 0x82, 0xf1, 0xce, 0x61, 0x10, 0x97,
+ 0x26, 0x53, 0x8c, 0x0e, 0x8d, 0xc9, 0x40, 0x89, 0xf0, 0x1e, 0xe8, 0x1e,
+ 0x88, 0xda, 0xb2, 0x75, 0x29, 0x86, 0xa5, 0xa8,
+};
+static const unsigned char kat2326_addin1[] = {
+ 0xbf, 0xd0, 0x56, 0x81, 0xf9, 0x91, 0x7e, 0x99, 0x9e, 0xfe, 0x25, 0xc1,
+ 0x9a, 0x94, 0x36, 0x49, 0x88, 0x0a, 0x7a, 0x79, 0x81, 0x91, 0x54, 0x34,
+ 0xf5, 0xd1, 0x72, 0x98, 0x42, 0x6a, 0x23, 0x6b,
+};
+static const unsigned char kat2326_retbits[] = {
+ 0x1a, 0xab, 0x46, 0x36, 0x5a, 0x15, 0x0b, 0xd2, 0x28, 0x1f, 0xa4, 0x95,
+ 0x55, 0x30, 0x10, 0x16, 0xbc, 0xd2, 0x26, 0x5d, 0x19, 0xb8, 0xfb, 0x83,
+ 0xde, 0xec, 0xc6, 0x3a, 0xb3, 0x25, 0x03, 0xce, 0x6b, 0x69, 0x6e, 0x15,
+ 0x76, 0x40, 0xf7, 0x87, 0x8a, 0x74, 0xa1, 0x6d, 0xd8, 0x7c, 0xe7, 0x29,
+ 0x94, 0x7a, 0x25, 0x63, 0xab, 0xce, 0x4d, 0xc9, 0xd5, 0x3e, 0x53, 0x6b,
+ 0xf6, 0xf9, 0x3c, 0xd5,
+};
+static const struct drbg_kat_pr_false kat2326_t = {
+ 0, kat2326_entropyin, kat2326_nonce, kat2326_persstr,
+ kat2326_entropyinreseed, kat2326_addinreseed, kat2326_addin0,
+ kat2326_addin1, kat2326_retbits
+};
+static const struct drbg_kat kat2326 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2326_t
+};
+
+static const unsigned char kat2327_entropyin[] = {
+ 0x80, 0x2e, 0xcb, 0x74, 0x7f, 0x01, 0x13, 0x09, 0x78, 0x61, 0xdf, 0x03,
+ 0xde, 0x18, 0x11, 0xa3, 0x54, 0xd9, 0xb1, 0x8b, 0xa9, 0x8f, 0x2c, 0xaf,
+ 0xf4, 0x28, 0x3f, 0x33, 0x05, 0xca, 0x9d, 0x82,
+};
+static const unsigned char kat2327_nonce[] = {0};
+static const unsigned char kat2327_persstr[] = {
+ 0x38, 0xb3, 0x90, 0xf8, 0x05, 0x2c, 0xd8, 0x90, 0x54, 0x9f, 0x7e, 0x5e,
+ 0x97, 0x3e, 0x31, 0x8e, 0xc5, 0xcb, 0xbd, 0x02, 0x29, 0x28, 0x02, 0x5c,
+ 0xf2, 0x13, 0x6e, 0x21, 0xd9, 0xb0, 0x64, 0xa2,
+};
+static const unsigned char kat2327_entropyinreseed[] = {
+ 0x59, 0x59, 0xaa, 0x5d, 0x35, 0x48, 0x7e, 0xd4, 0x62, 0xdf, 0xc3, 0xd9,
+ 0x81, 0x6f, 0x63, 0xda, 0x17, 0x26, 0xc5, 0xab, 0x65, 0xd8, 0xf1, 0xb6,
+ 0x72, 0x99, 0x1a, 0xd1, 0xfe, 0x8a, 0x3c, 0x57,
+};
+static const unsigned char kat2327_addinreseed[] = {
+ 0x57, 0x62, 0x8d, 0xc4, 0xf1, 0xb4, 0x8c, 0x9d, 0x8e, 0x24, 0x84, 0xb0,
+ 0x61, 0xcd, 0x2f, 0xc8, 0xb2, 0x9e, 0xe1, 0x39, 0x4c, 0x3f, 0x70, 0x74,
+ 0xac, 0x0b, 0x01, 0x49, 0xb9, 0x98, 0xe0, 0x7d,
+};
+static const unsigned char kat2327_addin0[] = {
+ 0xaf, 0xcf, 0x94, 0x5b, 0xf2, 0x08, 0xa1, 0x90, 0xff, 0x1c, 0xf3, 0xa3,
+ 0xd3, 0x55, 0x4d, 0xca, 0x0d, 0xa1, 0xc5, 0xbf, 0x21, 0xc9, 0x6f, 0xc2,
+ 0x83, 0x67, 0x7d, 0xe1, 0x97, 0x22, 0xe6, 0x78,
+};
+static const unsigned char kat2327_addin1[] = {
+ 0x22, 0xc9, 0x4a, 0xb5, 0x04, 0xa6, 0xfa, 0x3d, 0x00, 0xce, 0x68, 0x5d,
+ 0xb6, 0xc2, 0x65, 0x29, 0x49, 0x4f, 0x2e, 0x86, 0x11, 0x0f, 0x8b, 0x4e,
+ 0xf3, 0x55, 0x0e, 0x62, 0xa9, 0x38, 0x50, 0x60,
+};
+static const unsigned char kat2327_retbits[] = {
+ 0x69, 0x4e, 0x8b, 0x4b, 0xb5, 0x60, 0x7e, 0x89, 0x42, 0x3c, 0x10, 0xb2,
+ 0x71, 0x73, 0x2b, 0xa4, 0x01, 0x4a, 0x8a, 0x21, 0xd1, 0xe6, 0x95, 0xc6,
+ 0x54, 0x57, 0x92, 0xee, 0x30, 0x77, 0xb9, 0xce, 0x90, 0xda, 0x16, 0x2a,
+ 0xc7, 0x5b, 0xb5, 0x15, 0x2f, 0x7b, 0xf3, 0xfa, 0x07, 0xba, 0x9d, 0xfd,
+ 0x7a, 0x55, 0x07, 0x7e, 0x69, 0x38, 0x22, 0xda, 0x11, 0x34, 0xb7, 0xc8,
+ 0x1f, 0xb8, 0x8c, 0xcc,
+};
+static const struct drbg_kat_pr_false kat2327_t = {
+ 1, kat2327_entropyin, kat2327_nonce, kat2327_persstr,
+ kat2327_entropyinreseed, kat2327_addinreseed, kat2327_addin0,
+ kat2327_addin1, kat2327_retbits
+};
+static const struct drbg_kat kat2327 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2327_t
+};
+
+static const unsigned char kat2328_entropyin[] = {
+ 0x29, 0x24, 0x55, 0xcb, 0x52, 0x6e, 0x83, 0x8c, 0x2a, 0xe9, 0x1b, 0x2e,
+ 0x16, 0xe0, 0x81, 0xeb, 0x63, 0xa1, 0xc0, 0x46, 0x69, 0xfd, 0xdd, 0xcd,
+ 0xcf, 0x80, 0x28, 0x4c, 0x35, 0x32, 0x2d, 0xbe,
+};
+static const unsigned char kat2328_nonce[] = {0};
+static const unsigned char kat2328_persstr[] = {
+ 0x1f, 0xa3, 0x6f, 0xeb, 0x20, 0xf4, 0x08, 0x80, 0x3e, 0x68, 0xf6, 0x89,
+ 0x5e, 0x61, 0x84, 0x32, 0x53, 0x6f, 0x5e, 0xbe, 0x1d, 0x9d, 0xbd, 0x72,
+ 0x80, 0x4f, 0x3e, 0xa9, 0x72, 0x0e, 0x27, 0x4b,
+};
+static const unsigned char kat2328_entropyinreseed[] = {
+ 0x59, 0xb0, 0x63, 0xf4, 0x7e, 0xf6, 0x96, 0xdd, 0x24, 0x43, 0x77, 0xd8,
+ 0xe2, 0x2b, 0xbf, 0x03, 0x5c, 0xf5, 0x05, 0x46, 0xac, 0x0e, 0x7b, 0xa7,
+ 0x6e, 0x3d, 0x18, 0xcb, 0x78, 0xee, 0x68, 0xcd,
+};
+static const unsigned char kat2328_addinreseed[] = {
+ 0x2d, 0x5f, 0x74, 0x01, 0xfc, 0xc7, 0xd7, 0xbf, 0x6b, 0xf8, 0x61, 0xbe,
+ 0x08, 0x87, 0xeb, 0xb7, 0x76, 0xad, 0xeb, 0xcc, 0x11, 0x8d, 0xc8, 0x50,
+ 0x15, 0xb8, 0x4c, 0x66, 0x33, 0x22, 0xf6, 0xc6,
+};
+static const unsigned char kat2328_addin0[] = {
+ 0x59, 0x6c, 0x6d, 0xde, 0x7b, 0x82, 0xb4, 0x85, 0x0b, 0xc7, 0x3b, 0x34,
+ 0x0b, 0x34, 0xd6, 0x89, 0x83, 0xd5, 0x6f, 0x3a, 0xa8, 0x59, 0x21, 0x1c,
+ 0xcb, 0x92, 0xe6, 0x75, 0x77, 0xdd, 0x73, 0x5d,
+};
+static const unsigned char kat2328_addin1[] = {
+ 0x85, 0x8d, 0xa0, 0x66, 0x93, 0x4d, 0x2a, 0x52, 0x15, 0xec, 0xf3, 0xd2,
+ 0xe8, 0x90, 0xe7, 0x3d, 0x7f, 0x38, 0x9c, 0x75, 0x32, 0x80, 0x07, 0xb6,
+ 0xcd, 0x91, 0xe6, 0x3f, 0xec, 0x5f, 0x5e, 0x0c,
+};
+static const unsigned char kat2328_retbits[] = {
+ 0x8d, 0x30, 0xc1, 0xe9, 0x65, 0x6b, 0x81, 0xc3, 0xc4, 0x76, 0x6b, 0x24,
+ 0x55, 0x09, 0x59, 0x16, 0x4a, 0xe8, 0xc6, 0xa3, 0xf6, 0x3a, 0xa6, 0x13,
+ 0x34, 0xa6, 0x37, 0xf3, 0x4d, 0xa9, 0x39, 0xa8, 0x47, 0xb4, 0x4d, 0x6a,
+ 0xc0, 0x38, 0x10, 0x9c, 0x65, 0x73, 0xf7, 0xe7, 0xb5, 0x16, 0xf7, 0x8b,
+ 0x1c, 0x9d, 0xd6, 0x59, 0x8d, 0x11, 0x8c, 0x68, 0x15, 0xd8, 0xea, 0x2c,
+ 0x5f, 0x89, 0x23, 0x48,
+};
+static const struct drbg_kat_pr_false kat2328_t = {
+ 2, kat2328_entropyin, kat2328_nonce, kat2328_persstr,
+ kat2328_entropyinreseed, kat2328_addinreseed, kat2328_addin0,
+ kat2328_addin1, kat2328_retbits
+};
+static const struct drbg_kat kat2328 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2328_t
+};
+
+static const unsigned char kat2329_entropyin[] = {
+ 0x71, 0x73, 0xa8, 0xab, 0x13, 0xa1, 0xb3, 0x82, 0xf7, 0x35, 0x49, 0xa9,
+ 0x7a, 0x9c, 0xb1, 0xec, 0x2b, 0x64, 0x8d, 0xab, 0xfa, 0x0c, 0x7e, 0x54,
+ 0xb7, 0xcc, 0x6f, 0x51, 0xc4, 0xac, 0xeb, 0x5f,
+};
+static const unsigned char kat2329_nonce[] = {0};
+static const unsigned char kat2329_persstr[] = {
+ 0x92, 0x46, 0xdc, 0xd4, 0x83, 0x83, 0xd0, 0xf5, 0x84, 0x7d, 0xe8, 0x5d,
+ 0xcf, 0x0e, 0x1a, 0x0b, 0xd3, 0x6b, 0x8d, 0x8e, 0x84, 0xce, 0xe7, 0xd3,
+ 0x7a, 0x60, 0x8b, 0xe9, 0xa2, 0xdd, 0x2d, 0x1f,
+};
+static const unsigned char kat2329_entropyinreseed[] = {
+ 0xfe, 0x80, 0xc5, 0x88, 0xf5, 0x75, 0x4b, 0x98, 0x98, 0x6d, 0xdb, 0x47,
+ 0x78, 0x7a, 0xb6, 0xc0, 0x67, 0x31, 0xc9, 0xc5, 0xb7, 0xea, 0x01, 0x82,
+ 0x80, 0x21, 0xee, 0x96, 0x4b, 0x26, 0x0d, 0x1a,
+};
+static const unsigned char kat2329_addinreseed[] = {
+ 0x82, 0x02, 0xb4, 0x60, 0xb0, 0xdc, 0x49, 0x06, 0x67, 0x3e, 0x88, 0x3c,
+ 0xd2, 0x8d, 0x8e, 0xb7, 0xcf, 0x30, 0x3c, 0x8e, 0xd3, 0x1e, 0x37, 0x69,
+ 0x2b, 0x0f, 0x5a, 0x5f, 0xcf, 0x68, 0x7e, 0xa5,
+};
+static const unsigned char kat2329_addin0[] = {
+ 0x20, 0x4d, 0xd4, 0x1d, 0x44, 0xad, 0xf8, 0xeb, 0x97, 0x75, 0x8b, 0xc6,
+ 0x4e, 0xff, 0xa3, 0x2f, 0x42, 0x66, 0x17, 0x46, 0x86, 0xeb, 0xc0, 0x2b,
+ 0xb6, 0xbc, 0xb9, 0x3d, 0x50, 0x03, 0xc2, 0xf2,
+};
+static const unsigned char kat2329_addin1[] = {
+ 0xdd, 0xf6, 0xb6, 0x4b, 0x8b, 0xcb, 0x95, 0x9b, 0x9e, 0xb3, 0x44, 0x91,
+ 0x61, 0x70, 0xa9, 0xae, 0xa9, 0xe9, 0x47, 0xd3, 0x34, 0x2a, 0xcc, 0x3d,
+ 0xe8, 0xe4, 0x7b, 0xa9, 0xa4, 0xe8, 0x9b, 0xbc,
+};
+static const unsigned char kat2329_retbits[] = {
+ 0x52, 0x98, 0x3b, 0x6e, 0x7c, 0x3f, 0xc9, 0x1e, 0x7e, 0xc9, 0x87, 0x78,
+ 0x30, 0xad, 0x1d, 0x3c, 0x67, 0xbc, 0xd8, 0x0b, 0x06, 0x1e, 0x2c, 0x50,
+ 0xd8, 0x28, 0x9f, 0x26, 0xf5, 0x91, 0x5f, 0x9b, 0x3e, 0x20, 0x14, 0x82,
+ 0xb2, 0xfa, 0xa9, 0x80, 0x2a, 0x5a, 0x41, 0x58, 0xe2, 0x47, 0x59, 0x88,
+ 0xd4, 0x69, 0x80, 0x4a, 0x52, 0x9a, 0xca, 0x9d, 0x41, 0xf1, 0x0c, 0x5a,
+ 0x7f, 0x30, 0x07, 0x7f,
+};
+static const struct drbg_kat_pr_false kat2329_t = {
+ 3, kat2329_entropyin, kat2329_nonce, kat2329_persstr,
+ kat2329_entropyinreseed, kat2329_addinreseed, kat2329_addin0,
+ kat2329_addin1, kat2329_retbits
+};
+static const struct drbg_kat kat2329 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2329_t
+};
+
+static const unsigned char kat2330_entropyin[] = {
+ 0x50, 0x0d, 0x45, 0xce, 0x65, 0xb0, 0xfe, 0x2a, 0xd5, 0xf9, 0xb9, 0x62,
+ 0xc0, 0x64, 0xb0, 0x95, 0x0e, 0xe9, 0x5b, 0x09, 0xd4, 0xd7, 0xd7, 0x95,
+ 0x28, 0x01, 0xed, 0x09, 0x59, 0x78, 0x2b, 0x9d,
+};
+static const unsigned char kat2330_nonce[] = {0};
+static const unsigned char kat2330_persstr[] = {
+ 0x9f, 0x23, 0x37, 0xba, 0xb3, 0x1d, 0x98, 0x9a, 0x8e, 0xdd, 0xcb, 0x3c,
+ 0x05, 0x75, 0x3f, 0x22, 0x8b, 0xff, 0x22, 0xff, 0xed, 0x2b, 0x72, 0x9d,
+ 0x81, 0xa0, 0x93, 0xe9, 0x0a, 0x4c, 0x21, 0xb8,
+};
+static const unsigned char kat2330_entropyinreseed[] = {
+ 0x3b, 0xee, 0x44, 0x66, 0x9e, 0x4e, 0x9b, 0xe0, 0x1a, 0x27, 0x95, 0xef,
+ 0x64, 0xde, 0xd2, 0x8f, 0x9c, 0x43, 0x02, 0x4f, 0x9b, 0xcb, 0xc7, 0xdc,
+ 0x03, 0x3a, 0x76, 0x46, 0x6f, 0xe6, 0x07, 0x47,
+};
+static const unsigned char kat2330_addinreseed[] = {
+ 0x1a, 0x7a, 0x24, 0x5c, 0xe2, 0xb8, 0xb0, 0x0a, 0x57, 0x62, 0x9c, 0xab,
+ 0x9d, 0xae, 0xaa, 0xe8, 0xa2, 0xe3, 0x15, 0x90, 0xbc, 0x3f, 0xd3, 0xba,
+ 0x18, 0x38, 0xdf, 0x54, 0xce, 0x01, 0x9a, 0x29,
+};
+static const unsigned char kat2330_addin0[] = {
+ 0xb5, 0xf1, 0x90, 0xc9, 0x89, 0x13, 0xc0, 0x07, 0xd4, 0x1a, 0x31, 0x0f,
+ 0x45, 0xec, 0xb9, 0xf6, 0x70, 0xac, 0x05, 0x84, 0x58, 0xec, 0x02, 0xab,
+ 0x5a, 0xc5, 0x62, 0xf7, 0x94, 0x84, 0x50, 0xef,
+};
+static const unsigned char kat2330_addin1[] = {
+ 0x88, 0x38, 0x19, 0x87, 0xd3, 0xba, 0xd5, 0x83, 0xe0, 0x8d, 0xb2, 0x84,
+ 0x7a, 0x6e, 0x87, 0x72, 0x79, 0xc5, 0x1f, 0xa3, 0xb1, 0xa7, 0xe1, 0xa9,
+ 0xe8, 0x59, 0xe2, 0xc4, 0xf4, 0x23, 0xec, 0x21,
+};
+static const unsigned char kat2330_retbits[] = {
+ 0xff, 0xf0, 0x4b, 0xe4, 0xaf, 0x79, 0x1a, 0xdf, 0x61, 0xfa, 0xef, 0xe2,
+ 0xbb, 0x71, 0x45, 0xfe, 0x2f, 0x02, 0x38, 0xde, 0x8a, 0xdd, 0x47, 0x3f,
+ 0x7f, 0xcc, 0x7f, 0x9d, 0x82, 0x03, 0x94, 0xf7, 0xe0, 0xee, 0x92, 0xd1,
+ 0x78, 0x07, 0x58, 0x6c, 0xde, 0x4b, 0x11, 0xa5, 0x09, 0x68, 0xb0, 0xef,
+ 0x7a, 0x11, 0xdb, 0x1e, 0xe3, 0x57, 0xcc, 0xcc, 0xed, 0x69, 0xb1, 0xc4,
+ 0xb0, 0x1e, 0xcd, 0x53,
+};
+static const struct drbg_kat_pr_false kat2330_t = {
+ 4, kat2330_entropyin, kat2330_nonce, kat2330_persstr,
+ kat2330_entropyinreseed, kat2330_addinreseed, kat2330_addin0,
+ kat2330_addin1, kat2330_retbits
+};
+static const struct drbg_kat kat2330 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2330_t
+};
+
+static const unsigned char kat2331_entropyin[] = {
+ 0x0e, 0x1a, 0x74, 0x9c, 0xdf, 0x38, 0x55, 0xff, 0x8c, 0xa6, 0x51, 0x09,
+ 0xb5, 0xc4, 0x1c, 0x51, 0x9f, 0xa7, 0x49, 0x34, 0x32, 0xd6, 0xbb, 0xc1,
+ 0xf2, 0xfc, 0x08, 0x57, 0x53, 0xa4, 0xf3, 0x0d,
+};
+static const unsigned char kat2331_nonce[] = {0};
+static const unsigned char kat2331_persstr[] = {
+ 0x14, 0xbc, 0xa9, 0x3c, 0xe8, 0xec, 0x94, 0x26, 0xa1, 0x6a, 0x75, 0x95,
+ 0xdc, 0xf0, 0xba, 0x0c, 0x69, 0xc7, 0xfd, 0x76, 0xa7, 0x5a, 0x1c, 0xa8,
+ 0x65, 0xf5, 0x3a, 0xd2, 0xfa, 0xbb, 0x3f, 0xdd,
+};
+static const unsigned char kat2331_entropyinreseed[] = {
+ 0x77, 0xbd, 0xbe, 0x9f, 0xf4, 0x08, 0xea, 0xe5, 0x53, 0x55, 0xeb, 0xaa,
+ 0xf4, 0x77, 0x9b, 0xdd, 0x53, 0x39, 0x71, 0xeb, 0xd5, 0x9b, 0x9b, 0x7d,
+ 0xb5, 0xee, 0xc1, 0x7a, 0xa4, 0x07, 0x8f, 0xae,
+};
+static const unsigned char kat2331_addinreseed[] = {
+ 0x1d, 0x89, 0xcb, 0xd3, 0x23, 0x9f, 0x8f, 0x6a, 0x0f, 0x20, 0xc1, 0xc1,
+ 0x37, 0x22, 0xcc, 0xf1, 0xd5, 0xac, 0x10, 0xb6, 0x36, 0x26, 0x76, 0x70,
+ 0xb4, 0x76, 0x2e, 0x0d, 0xcf, 0x95, 0x99, 0xeb,
+};
+static const unsigned char kat2331_addin0[] = {
+ 0x6c, 0xa4, 0xa4, 0xc5, 0x57, 0x4e, 0x96, 0xa1, 0x2a, 0xc7, 0x40, 0x15,
+ 0x6d, 0x74, 0xab, 0x5e, 0xf4, 0x7c, 0x87, 0xad, 0xdf, 0xe7, 0x93, 0xa9,
+ 0x7a, 0x56, 0x32, 0x41, 0x77, 0x0a, 0xc0, 0xab,
+};
+static const unsigned char kat2331_addin1[] = {
+ 0x92, 0x6c, 0x37, 0x67, 0xdd, 0x1e, 0x75, 0xad, 0x60, 0xef, 0x12, 0xdf,
+ 0xdf, 0xdd, 0xd4, 0x76, 0x38, 0xac, 0x68, 0x25, 0x48, 0x76, 0x4b, 0xe2,
+ 0x57, 0x61, 0x8c, 0xe1, 0x57, 0x83, 0x4a, 0x52,
+};
+static const unsigned char kat2331_retbits[] = {
+ 0x71, 0x40, 0xe4, 0x69, 0x8c, 0xcc, 0x78, 0x9d, 0x8a, 0x91, 0x32, 0x4f,
+ 0xe3, 0x35, 0x59, 0x49, 0x93, 0x0d, 0x00, 0xa7, 0xe5, 0x82, 0x59, 0x51,
+ 0x10, 0x54, 0x7f, 0x3e, 0x28, 0x4a, 0x2c, 0x08, 0x7e, 0xc3, 0x27, 0x51,
+ 0x85, 0x2b, 0x82, 0x26, 0x29, 0x4c, 0xf1, 0xd1, 0xa0, 0x48, 0xfd, 0x94,
+ 0x80, 0xd4, 0xe5, 0x29, 0xe0, 0xba, 0x17, 0x81, 0xd4, 0xb1, 0x21, 0x20,
+ 0xd4, 0x44, 0x8d, 0x19,
+};
+static const struct drbg_kat_pr_false kat2331_t = {
+ 5, kat2331_entropyin, kat2331_nonce, kat2331_persstr,
+ kat2331_entropyinreseed, kat2331_addinreseed, kat2331_addin0,
+ kat2331_addin1, kat2331_retbits
+};
+static const struct drbg_kat kat2331 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2331_t
+};
+
+static const unsigned char kat2332_entropyin[] = {
+ 0xf5, 0x5d, 0xd2, 0x9a, 0xa4, 0x87, 0xd8, 0x83, 0x93, 0x5a, 0x66, 0xd4,
+ 0xab, 0xa2, 0x4b, 0xf1, 0x17, 0x17, 0x46, 0xaa, 0x68, 0x30, 0xb6, 0xc1,
+ 0x02, 0xa0, 0x39, 0x35, 0x4c, 0x69, 0x04, 0x8c,
+};
+static const unsigned char kat2332_nonce[] = {0};
+static const unsigned char kat2332_persstr[] = {
+ 0x55, 0x6e, 0xc2, 0x42, 0xe5, 0x52, 0x64, 0x3f, 0x3b, 0xba, 0xce, 0x99,
+ 0x95, 0x2e, 0x5e, 0x2f, 0x12, 0x3e, 0x5b, 0x55, 0xa7, 0xfd, 0xe5, 0xc7,
+ 0x50, 0x75, 0x05, 0x0c, 0x68, 0x92, 0x50, 0xcd,
+};
+static const unsigned char kat2332_entropyinreseed[] = {
+ 0xec, 0x61, 0xbf, 0xb0, 0x7f, 0xe2, 0xd3, 0x0b, 0x8f, 0x7b, 0xf9, 0xe3,
+ 0x9c, 0x7b, 0xeb, 0x0d, 0xe9, 0x67, 0x19, 0x32, 0x26, 0x4f, 0xc8, 0x17,
+ 0xa4, 0x24, 0x9f, 0x84, 0x8c, 0x64, 0x1d, 0x40,
+};
+static const unsigned char kat2332_addinreseed[] = {
+ 0x16, 0xf6, 0x93, 0xdb, 0x60, 0x24, 0xb7, 0x0f, 0x0c, 0x99, 0x55, 0x41,
+ 0x6c, 0xfe, 0xb0, 0x7a, 0xbe, 0x41, 0x1f, 0x64, 0xfe, 0x67, 0x04, 0x95,
+ 0xe6, 0x56, 0x99, 0x87, 0x9c, 0x1d, 0x75, 0x1b,
+};
+static const unsigned char kat2332_addin0[] = {
+ 0xf6, 0x77, 0x5b, 0x3d, 0x13, 0x77, 0xe8, 0xf0, 0x16, 0xa4, 0x4b, 0xbd,
+ 0x53, 0xdf, 0xb7, 0xc5, 0x4b, 0x20, 0x0f, 0x19, 0xa4, 0x06, 0xbb, 0xf4,
+ 0x6c, 0xf0, 0x19, 0x67, 0x2b, 0xb1, 0x00, 0xb5,
+};
+static const unsigned char kat2332_addin1[] = {
+ 0x00, 0x94, 0x1d, 0xc2, 0xcd, 0x41, 0xca, 0xf0, 0x81, 0x81, 0x3b, 0x44,
+ 0x0f, 0xd9, 0x0c, 0x0d, 0x1f, 0xbb, 0xe6, 0x71, 0xb8, 0x51, 0xb7, 0xe7,
+ 0x47, 0xdf, 0x89, 0x87, 0x8d, 0xf5, 0x61, 0x1e,
+};
+static const unsigned char kat2332_retbits[] = {
+ 0xdf, 0xd9, 0x19, 0x0e, 0xd3, 0x22, 0xa8, 0x4a, 0xa3, 0x0b, 0xff, 0x07,
+ 0xdb, 0x07, 0xb7, 0x85, 0xd6, 0x63, 0x3c, 0x39, 0xf8, 0xef, 0x12, 0xfa,
+ 0xe0, 0xe2, 0xa4, 0x5b, 0xc3, 0x8e, 0xc1, 0x09, 0x84, 0xa8, 0x6d, 0x39,
+ 0xe9, 0x6f, 0x81, 0xfd, 0x7d, 0xda, 0x32, 0x31, 0x22, 0xc6, 0xa2, 0xf8,
+ 0xb5, 0xff, 0x1d, 0xd0, 0xc9, 0x5c, 0x8b, 0x92, 0xa0, 0x86, 0xa8, 0xed,
+ 0x79, 0xfe, 0x90, 0x0b,
+};
+static const struct drbg_kat_pr_false kat2332_t = {
+ 6, kat2332_entropyin, kat2332_nonce, kat2332_persstr,
+ kat2332_entropyinreseed, kat2332_addinreseed, kat2332_addin0,
+ kat2332_addin1, kat2332_retbits
+};
+static const struct drbg_kat kat2332 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2332_t
+};
+
+static const unsigned char kat2333_entropyin[] = {
+ 0x76, 0x82, 0x73, 0xda, 0xe7, 0x88, 0x82, 0x9e, 0xe9, 0xd1, 0xc0, 0xb4,
+ 0xa5, 0x87, 0x1d, 0x87, 0x8a, 0x77, 0x06, 0x09, 0x25, 0x85, 0x1d, 0xef,
+ 0x18, 0x95, 0x22, 0x50, 0x91, 0x1d, 0x59, 0xf3,
+};
+static const unsigned char kat2333_nonce[] = {0};
+static const unsigned char kat2333_persstr[] = {
+ 0x5b, 0x9f, 0x96, 0x8d, 0xf5, 0xd2, 0x97, 0xa1, 0x86, 0x3d, 0x57, 0xc8,
+ 0xe1, 0x22, 0xa0, 0xac, 0xb2, 0x3d, 0x4d, 0x53, 0xef, 0x8c, 0x46, 0x50,
+ 0x46, 0x32, 0x30, 0x82, 0x07, 0x5d, 0xe4, 0xc6,
+};
+static const unsigned char kat2333_entropyinreseed[] = {
+ 0xfe, 0x47, 0xc7, 0xea, 0x3c, 0x95, 0xd1, 0x20, 0x61, 0x3a, 0x57, 0x84,
+ 0x61, 0x6b, 0x68, 0xae, 0x25, 0x30, 0xfa, 0xd5, 0xdc, 0x16, 0x04, 0x19,
+ 0xde, 0xed, 0x6e, 0x3d, 0xc9, 0xa1, 0xbf, 0xe1,
+};
+static const unsigned char kat2333_addinreseed[] = {
+ 0xaf, 0x65, 0xc7, 0x9e, 0xb9, 0xa5, 0xf8, 0x6a, 0xf7, 0xc0, 0x96, 0x0d,
+ 0x59, 0x18, 0xdc, 0xa9, 0x5d, 0x0c, 0x57, 0x38, 0xf5, 0x17, 0x4b, 0xa9,
+ 0x11, 0x04, 0x3e, 0x32, 0x8d, 0x04, 0x3d, 0x62,
+};
+static const unsigned char kat2333_addin0[] = {
+ 0xcf, 0xbc, 0xb2, 0x09, 0xa5, 0xbd, 0x18, 0xbd, 0x07, 0x22, 0x53, 0x58,
+ 0xd0, 0xc3, 0xc1, 0x03, 0x6a, 0x2b, 0x20, 0xd2, 0xe7, 0x15, 0xbc, 0xd4,
+ 0x26, 0x46, 0xd9, 0x72, 0xfc, 0x28, 0x84, 0xac,
+};
+static const unsigned char kat2333_addin1[] = {
+ 0xba, 0xfb, 0xe8, 0x2a, 0x93, 0x5e, 0xd0, 0x3c, 0x82, 0x8f, 0x55, 0xfe,
+ 0xa7, 0x54, 0x1f, 0xcd, 0x36, 0xde, 0x29, 0xe7, 0xdc, 0xa1, 0x05, 0xd0,
+ 0x95, 0x85, 0x51, 0x6d, 0x9b, 0xf9, 0x17, 0x31,
+};
+static const unsigned char kat2333_retbits[] = {
+ 0x20, 0xba, 0x45, 0x46, 0xcf, 0xd5, 0x02, 0x77, 0x16, 0x32, 0x13, 0x3b,
+ 0xf9, 0xfb, 0x59, 0xa5, 0xe1, 0x3d, 0xb5, 0xd2, 0xf4, 0xd0, 0xb3, 0x77,
+ 0x7e, 0x11, 0x41, 0xec, 0xf4, 0x10, 0xaf, 0xf1, 0xb4, 0x34, 0x7a, 0x29,
+ 0xbc, 0xc2, 0xd6, 0x8a, 0xd4, 0x63, 0x29, 0x1c, 0x9f, 0x49, 0x9a, 0x06,
+ 0xed, 0x0b, 0x79, 0x51, 0xbd, 0x41, 0x1e, 0x92, 0xe1, 0xb9, 0xce, 0x40,
+ 0x3b, 0xd0, 0x6c, 0x5d,
+};
+static const struct drbg_kat_pr_false kat2333_t = {
+ 7, kat2333_entropyin, kat2333_nonce, kat2333_persstr,
+ kat2333_entropyinreseed, kat2333_addinreseed, kat2333_addin0,
+ kat2333_addin1, kat2333_retbits
+};
+static const struct drbg_kat kat2333 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2333_t
+};
+
+static const unsigned char kat2334_entropyin[] = {
+ 0x33, 0x63, 0x6a, 0x4d, 0xcb, 0x87, 0xc5, 0x01, 0xa9, 0x9f, 0x11, 0x9d,
+ 0x96, 0x8a, 0x31, 0x82, 0xf6, 0x78, 0x6b, 0x3d, 0x23, 0xca, 0xdb, 0xd5,
+ 0x0c, 0xee, 0xdf, 0x9c, 0x9d, 0xc8, 0xda, 0x84,
+};
+static const unsigned char kat2334_nonce[] = {0};
+static const unsigned char kat2334_persstr[] = {
+ 0xf5, 0x90, 0xea, 0xf7, 0x33, 0x19, 0xec, 0x9e, 0x90, 0x7f, 0x97, 0x25,
+ 0xb5, 0x1a, 0x16, 0x6f, 0xe8, 0xa8, 0xdc, 0x6d, 0x23, 0x84, 0xee, 0x72,
+ 0xbf, 0x7f, 0x55, 0xf8, 0x37, 0x8c, 0x29, 0xe8,
+};
+static const unsigned char kat2334_entropyinreseed[] = {
+ 0xf9, 0xa6, 0xa6, 0x3c, 0xf9, 0x41, 0x49, 0xb8, 0x5f, 0x89, 0x2c, 0x8c,
+ 0x59, 0xfe, 0x20, 0xe7, 0x80, 0x84, 0xc2, 0x81, 0x13, 0x16, 0xb3, 0xd9,
+ 0x43, 0x21, 0x9d, 0x2c, 0xe1, 0x16, 0x32, 0xe5,
+};
+static const unsigned char kat2334_addinreseed[] = {
+ 0xda, 0xdd, 0x67, 0xa3, 0xfe, 0x25, 0x5f, 0x48, 0x8f, 0xdc, 0xe4, 0x1b,
+ 0x28, 0xbf, 0x74, 0xcc, 0xd6, 0xbf, 0x49, 0xa7, 0xf8, 0x5d, 0x52, 0x88,
+ 0x75, 0xbc, 0x5e, 0x6b, 0xe5, 0x59, 0xd4, 0x13,
+};
+static const unsigned char kat2334_addin0[] = {
+ 0x33, 0xd6, 0x34, 0xce, 0xe0, 0x45, 0x45, 0x3b, 0x13, 0xe1, 0xb1, 0x89,
+ 0x35, 0x5c, 0x0c, 0x99, 0x39, 0x67, 0x80, 0x51, 0x69, 0xbe, 0xf7, 0x2b,
+ 0xe5, 0x07, 0x37, 0xe3, 0x22, 0xf6, 0x7c, 0xc4,
+};
+static const unsigned char kat2334_addin1[] = {
+ 0x4e, 0x52, 0x8a, 0x71, 0x93, 0x01, 0x6c, 0x54, 0xa0, 0xb1, 0x04, 0x1c,
+ 0xf2, 0x6c, 0xbc, 0xe9, 0x63, 0x64, 0x34, 0x81, 0x99, 0x8e, 0xa1, 0xf8,
+ 0x84, 0xb4, 0x63, 0x37, 0x23, 0x58, 0xe5, 0xb2,
+};
+static const unsigned char kat2334_retbits[] = {
+ 0xc0, 0x07, 0x07, 0xab, 0x14, 0x72, 0xcf, 0xc3, 0xee, 0x0a, 0xed, 0x1b,
+ 0x8d, 0x86, 0x6b, 0x90, 0x9c, 0x15, 0x8b, 0x27, 0x20, 0x52, 0xa7, 0x5f,
+ 0x9f, 0xa9, 0x6e, 0x24, 0x8f, 0xd4, 0x54, 0x49, 0x00, 0x7d, 0x03, 0xf0,
+ 0xe1, 0x4d, 0x2e, 0x5d, 0x54, 0x4c, 0x37, 0x96, 0x26, 0x16, 0x59, 0xe3,
+ 0x07, 0x2e, 0x7c, 0x09, 0x58, 0x36, 0x52, 0xe4, 0xbc, 0x5b, 0xd7, 0xd9,
+ 0xb8, 0xac, 0xc1, 0xbd,
+};
+static const struct drbg_kat_pr_false kat2334_t = {
+ 8, kat2334_entropyin, kat2334_nonce, kat2334_persstr,
+ kat2334_entropyinreseed, kat2334_addinreseed, kat2334_addin0,
+ kat2334_addin1, kat2334_retbits
+};
+static const struct drbg_kat kat2334 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2334_t
+};
+
+static const unsigned char kat2335_entropyin[] = {
+ 0x5e, 0x0c, 0xe9, 0xdb, 0x9e, 0x51, 0x97, 0xc9, 0x39, 0xbb, 0x85, 0x7b,
+ 0x6d, 0xb4, 0x96, 0xc2, 0x3f, 0x3f, 0x4f, 0xf4, 0x1c, 0x27, 0xae, 0x9d,
+ 0x9d, 0x91, 0x0b, 0xa2, 0x9d, 0x77, 0xee, 0x81,
+};
+static const unsigned char kat2335_nonce[] = {0};
+static const unsigned char kat2335_persstr[] = {
+ 0x01, 0x90, 0xe7, 0xae, 0x55, 0x1e, 0x04, 0xb6, 0x86, 0xe7, 0xec, 0x5f,
+ 0xe9, 0x5d, 0xbd, 0xee, 0x68, 0xea, 0xbb, 0x5b, 0x53, 0xba, 0x9a, 0x66,
+ 0x31, 0x6c, 0x11, 0x1e, 0x8b, 0xc9, 0xbb, 0xf6,
+};
+static const unsigned char kat2335_entropyinreseed[] = {
+ 0x01, 0x6a, 0x84, 0xa1, 0x3a, 0xa8, 0xe0, 0x1d, 0x86, 0x04, 0x96, 0x4e,
+ 0xdd, 0x7f, 0xcf, 0x5f, 0xcd, 0x19, 0xd6, 0xe3, 0xb1, 0x76, 0x3a, 0x19,
+ 0x51, 0x8e, 0xd1, 0xe9, 0x6d, 0x32, 0xd9, 0xd0,
+};
+static const unsigned char kat2335_addinreseed[] = {
+ 0x96, 0x24, 0x5e, 0x8d, 0x1f, 0x8f, 0xe0, 0x68, 0xa7, 0x4b, 0x48, 0xa4,
+ 0x74, 0x37, 0xb3, 0xcd, 0x02, 0xb9, 0x45, 0x05, 0xcd, 0xcc, 0x7e, 0x5a,
+ 0x67, 0x79, 0xdd, 0xfc, 0x82, 0xee, 0xe4, 0x16,
+};
+static const unsigned char kat2335_addin0[] = {
+ 0x09, 0x2b, 0x6e, 0x51, 0x72, 0x7f, 0x4b, 0x8d, 0x14, 0x3c, 0x5a, 0x67,
+ 0x07, 0x44, 0x97, 0xa6, 0x38, 0xe9, 0x64, 0xa6, 0x0a, 0x91, 0x61, 0xfb,
+ 0x89, 0xd9, 0xe2, 0xd3, 0x58, 0x3e, 0xce, 0x4f,
+};
+static const unsigned char kat2335_addin1[] = {
+ 0x9a, 0x86, 0x96, 0x87, 0x73, 0x0e, 0x0a, 0x99, 0xd0, 0xbd, 0xe4, 0x0c,
+ 0x96, 0xa3, 0x64, 0x85, 0x24, 0xd3, 0x5f, 0xf2, 0xf7, 0xe5, 0x6b, 0x4c,
+ 0xcb, 0xd6, 0xf4, 0xbc, 0x68, 0x60, 0x0e, 0xeb,
+};
+static const unsigned char kat2335_retbits[] = {
+ 0x8f, 0x4c, 0xcc, 0x87, 0x34, 0x98, 0x5d, 0xd7, 0xd8, 0x4e, 0xe9, 0xee,
+ 0x14, 0xc5, 0x22, 0x3f, 0xba, 0x16, 0x27, 0x6f, 0x44, 0x55, 0x83, 0x2c,
+ 0xb1, 0x0f, 0x84, 0xe4, 0xa5, 0x6f, 0x7d, 0x32, 0x85, 0x39, 0xf3, 0xa3,
+ 0xf7, 0x17, 0x0c, 0x84, 0x68, 0xa4, 0x34, 0xf0, 0x06, 0xf3, 0x74, 0xfc,
+ 0xf6, 0xde, 0xc2, 0x71, 0xa9, 0xb4, 0x82, 0x70, 0x3b, 0x25, 0x66, 0x3e,
+ 0xdc, 0x33, 0xe1, 0x13,
+};
+static const struct drbg_kat_pr_false kat2335_t = {
+ 9, kat2335_entropyin, kat2335_nonce, kat2335_persstr,
+ kat2335_entropyinreseed, kat2335_addinreseed, kat2335_addin0,
+ kat2335_addin1, kat2335_retbits
+};
+static const struct drbg_kat kat2335 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2335_t
+};
+
+static const unsigned char kat2336_entropyin[] = {
+ 0xac, 0x96, 0x56, 0x7a, 0x9b, 0xbb, 0x67, 0x6e, 0x07, 0x46, 0x1a, 0x1e,
+ 0x50, 0xf6, 0x5d, 0xf7, 0x3d, 0x3b, 0xa7, 0x03, 0xb5, 0xee, 0x0f, 0x10,
+ 0x5b, 0x03, 0xf2, 0xf9, 0x21, 0x3b, 0xde, 0x26,
+};
+static const unsigned char kat2336_nonce[] = {0};
+static const unsigned char kat2336_persstr[] = {
+ 0xf2, 0x82, 0x1d, 0x6b, 0x19, 0xa1, 0x8d, 0x9b, 0x95, 0xb3, 0x7f, 0x9e,
+ 0xb4, 0x76, 0xeb, 0x12, 0xfa, 0x77, 0xfd, 0xe7, 0x31, 0xb8, 0xd7, 0xf7,
+ 0xe7, 0x26, 0x52, 0x08, 0xf2, 0xd2, 0x04, 0x8a,
+};
+static const unsigned char kat2336_entropyinreseed[] = {
+ 0x74, 0xd5, 0xdb, 0xa9, 0x95, 0x7d, 0xc7, 0x40, 0xaf, 0xa0, 0x19, 0x93,
+ 0x57, 0x5f, 0xa9, 0xbe, 0x6b, 0xbd, 0x89, 0x2e, 0x25, 0x20, 0x47, 0xad,
+ 0x07, 0x2f, 0x51, 0x39, 0x6b, 0xef, 0xd5, 0x8f,
+};
+static const unsigned char kat2336_addinreseed[] = {
+ 0x9c, 0x2e, 0x8b, 0xd6, 0x34, 0xf2, 0x8c, 0x81, 0x39, 0x0e, 0x01, 0x54,
+ 0xeb, 0xf8, 0x9e, 0xeb, 0xb6, 0x1a, 0x8f, 0x42, 0xb3, 0x15, 0x6e, 0xa5,
+ 0x68, 0x63, 0x98, 0xab, 0x0b, 0xbc, 0xa8, 0x1c,
+};
+static const unsigned char kat2336_addin0[] = {
+ 0x9b, 0xd8, 0x1c, 0xb7, 0x96, 0x71, 0xa3, 0xd8, 0x9e, 0x05, 0x0f, 0x1f,
+ 0x4c, 0x0e, 0x7d, 0xfd, 0xcf, 0xc1, 0xe2, 0xbd, 0x47, 0xd1, 0x9a, 0xd7,
+ 0xd7, 0xfd, 0xcb, 0x2b, 0x14, 0x36, 0xa8, 0xd4,
+};
+static const unsigned char kat2336_addin1[] = {
+ 0x93, 0xb5, 0xad, 0x9a, 0x6c, 0x08, 0xd3, 0xb7, 0x89, 0xf0, 0x9e, 0x9a,
+ 0x56, 0x7a, 0x22, 0x7f, 0x94, 0xf4, 0x53, 0x76, 0xf6, 0x8c, 0x82, 0xe7,
+ 0x5e, 0x80, 0x4a, 0x78, 0xf6, 0x75, 0xfe, 0x32,
+};
+static const unsigned char kat2336_retbits[] = {
+ 0xd3, 0x1d, 0x8e, 0x04, 0xa4, 0xc1, 0x2a, 0xba, 0xcd, 0x44, 0x57, 0xfa,
+ 0x45, 0x50, 0x4e, 0x9d, 0x7e, 0x53, 0xe9, 0x6f, 0x72, 0xce, 0x43, 0x2b,
+ 0xe5, 0x61, 0x6b, 0x39, 0x83, 0xa1, 0x3b, 0x3b, 0xd2, 0xbe, 0xc2, 0xdf,
+ 0x3d, 0x1a, 0x41, 0xbe, 0xf2, 0x98, 0xe9, 0xd8, 0x21, 0x20, 0x73, 0x59,
+ 0xa5, 0x01, 0xea, 0x90, 0x4b, 0xa2, 0xca, 0xd9, 0x48, 0xe1, 0x12, 0x06,
+ 0x4c, 0x4a, 0x80, 0x18,
+};
+static const struct drbg_kat_pr_false kat2336_t = {
+ 10, kat2336_entropyin, kat2336_nonce, kat2336_persstr,
+ kat2336_entropyinreseed, kat2336_addinreseed, kat2336_addin0,
+ kat2336_addin1, kat2336_retbits
+};
+static const struct drbg_kat kat2336 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2336_t
+};
+
+static const unsigned char kat2337_entropyin[] = {
+ 0x5e, 0x9b, 0xe4, 0x3d, 0x43, 0xae, 0xef, 0xf1, 0x9a, 0x56, 0x74, 0x0a,
+ 0xd9, 0x5d, 0xcd, 0x3c, 0xd4, 0x32, 0x6a, 0xaf, 0xe0, 0xfb, 0x4a, 0x16,
+ 0x09, 0x44, 0xf7, 0xd7, 0x99, 0x83, 0x79, 0x5e,
+};
+static const unsigned char kat2337_nonce[] = {0};
+static const unsigned char kat2337_persstr[] = {
+ 0xe5, 0x6d, 0x54, 0x50, 0xd6, 0xd0, 0xd3, 0xbd, 0x45, 0x2a, 0xff, 0xce,
+ 0x74, 0x3c, 0x42, 0x15, 0x4a, 0x4a, 0x03, 0x24, 0xd7, 0x96, 0x57, 0x0f,
+ 0x57, 0x4e, 0x28, 0x48, 0x7a, 0xf4, 0x3f, 0xdf,
+};
+static const unsigned char kat2337_entropyinreseed[] = {
+ 0x1c, 0x45, 0xcd, 0xf5, 0x5a, 0xaa, 0x02, 0x76, 0x53, 0xb2, 0xe3, 0x3b,
+ 0x77, 0x62, 0xf6, 0x8d, 0x29, 0xb5, 0xe3, 0x48, 0xfe, 0xea, 0x04, 0xc5,
+ 0x96, 0xf7, 0xc8, 0x66, 0x0f, 0x7b, 0x36, 0xa6,
+};
+static const unsigned char kat2337_addinreseed[] = {
+ 0xf5, 0x7c, 0x21, 0xbc, 0x4a, 0x2a, 0x37, 0xf5, 0xac, 0xe9, 0xc6, 0x19,
+ 0x2c, 0xb2, 0x49, 0xa8, 0xff, 0x16, 0xe3, 0xe0, 0x61, 0x1f, 0x03, 0x0c,
+ 0x97, 0xd1, 0x3e, 0x73, 0x0d, 0x84, 0xed, 0xd7,
+};
+static const unsigned char kat2337_addin0[] = {
+ 0xe5, 0xeb, 0x67, 0x78, 0xc2, 0xbb, 0xab, 0x07, 0x7d, 0x1f, 0xc0, 0xf4,
+ 0x2a, 0x42, 0xe4, 0x63, 0xec, 0xf0, 0x6d, 0x2a, 0xd6, 0x04, 0xb5, 0xa6,
+ 0x3e, 0x1e, 0xbc, 0x92, 0xd0, 0xe2, 0xdf, 0x75,
+};
+static const unsigned char kat2337_addin1[] = {
+ 0xa4, 0x1d, 0x73, 0x24, 0xb7, 0xba, 0x5c, 0x9d, 0x09, 0x8d, 0xbd, 0xa8,
+ 0x9c, 0x25, 0xa2, 0x37, 0xb0, 0x32, 0xcb, 0xb3, 0x08, 0x4a, 0x68, 0x7b,
+ 0x7e, 0x2c, 0x33, 0x30, 0xcc, 0x09, 0xe5, 0xa2,
+};
+static const unsigned char kat2337_retbits[] = {
+ 0x29, 0x5e, 0x75, 0x0d, 0x3b, 0x11, 0xd4, 0xfb, 0x01, 0x8c, 0x3d, 0xe8,
+ 0xe4, 0x9a, 0x24, 0x05, 0xc7, 0x1c, 0x30, 0x58, 0xf1, 0x01, 0x05, 0x5d,
+ 0x36, 0xef, 0xc5, 0xd4, 0xc5, 0x18, 0x3b, 0x32, 0x77, 0xd9, 0x8f, 0x0a,
+ 0xab, 0x8b, 0x4d, 0x3b, 0x0b, 0x9d, 0xd9, 0x9a, 0xbc, 0xfb, 0x95, 0xbc,
+ 0xb3, 0x50, 0x6a, 0xd1, 0xda, 0x44, 0x2c, 0x39, 0xda, 0xc9, 0xa1, 0x3f,
+ 0x1b, 0xbc, 0x15, 0xfe,
+};
+static const struct drbg_kat_pr_false kat2337_t = {
+ 11, kat2337_entropyin, kat2337_nonce, kat2337_persstr,
+ kat2337_entropyinreseed, kat2337_addinreseed, kat2337_addin0,
+ kat2337_addin1, kat2337_retbits
+};
+static const struct drbg_kat kat2337 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2337_t
+};
+
+static const unsigned char kat2338_entropyin[] = {
+ 0x47, 0x8d, 0x32, 0x5a, 0x9d, 0xcc, 0xd8, 0x7e, 0x74, 0x7d, 0x49, 0x64,
+ 0x32, 0x9f, 0x25, 0x7b, 0x7c, 0x3f, 0x58, 0x9d, 0x91, 0x78, 0x36, 0x7d,
+ 0xc4, 0xc2, 0x7a, 0xdf, 0x29, 0x59, 0xb3, 0x94,
+};
+static const unsigned char kat2338_nonce[] = {0};
+static const unsigned char kat2338_persstr[] = {
+ 0x68, 0x3d, 0x80, 0xba, 0xbc, 0x93, 0xb6, 0x98, 0x0b, 0xfc, 0x22, 0x8f,
+ 0xae, 0x25, 0xac, 0x1f, 0x2d, 0xd6, 0xed, 0xb7, 0xb1, 0x9e, 0xe5, 0x35,
+ 0x9a, 0x62, 0x46, 0x4a, 0xec, 0xe4, 0xe5, 0x53,
+};
+static const unsigned char kat2338_entropyinreseed[] = {
+ 0x6e, 0x85, 0xc1, 0x83, 0x73, 0x8f, 0x60, 0x99, 0x2c, 0xa5, 0x9e, 0xf3,
+ 0x73, 0x62, 0x40, 0xca, 0x36, 0xca, 0x87, 0x91, 0x34, 0x96, 0x64, 0x18,
+ 0x4e, 0x5d, 0xfa, 0x8d, 0xcc, 0x8c, 0x0b, 0x0f,
+};
+static const unsigned char kat2338_addinreseed[] = {
+ 0x53, 0xa5, 0x43, 0x24, 0xb5, 0x7b, 0x20, 0x40, 0xb9, 0x39, 0xc1, 0x49,
+ 0x30, 0x8e, 0xd2, 0xff, 0x39, 0xf5, 0xdc, 0xa6, 0x19, 0xa7, 0x38, 0xb0,
+ 0x00, 0xf8, 0xe3, 0x56, 0x18, 0x29, 0x13, 0x61,
+};
+static const unsigned char kat2338_addin0[] = {
+ 0x2a, 0xd2, 0x3c, 0x2e, 0x67, 0x3e, 0x0b, 0x45, 0x49, 0x60, 0x27, 0x4b,
+ 0x43, 0x4f, 0xe5, 0xfd, 0xae, 0xf8, 0x71, 0xd0, 0x85, 0x63, 0x4b, 0xab,
+ 0xcb, 0xad, 0x0f, 0x5b, 0x03, 0x71, 0x04, 0x2c,
+};
+static const unsigned char kat2338_addin1[] = {
+ 0xcc, 0x8b, 0x6b, 0x86, 0xc6, 0x2e, 0xb3, 0x19, 0x9c, 0x49, 0x21, 0x90,
+ 0x65, 0x57, 0x25, 0x88, 0x03, 0x50, 0xac, 0xc8, 0x25, 0x37, 0x69, 0xb5,
+ 0x26, 0xb7, 0x19, 0x14, 0x0e, 0x44, 0x80, 0x84,
+};
+static const unsigned char kat2338_retbits[] = {
+ 0x35, 0x42, 0xc6, 0x19, 0xf1, 0x4e, 0x23, 0x92, 0xd9, 0x2f, 0x0b, 0x75,
+ 0x97, 0xd7, 0xd0, 0x31, 0xda, 0x62, 0xbc, 0x28, 0x37, 0x3f, 0xbf, 0x9f,
+ 0x07, 0x47, 0xe9, 0x7f, 0x73, 0x92, 0x49, 0x35, 0x57, 0x21, 0x47, 0x6c,
+ 0xbc, 0xa5, 0xbe, 0x8e, 0xbd, 0xb4, 0xe9, 0xe5, 0x68, 0xd8, 0x63, 0xf3,
+ 0xb2, 0xd6, 0xba, 0x1f, 0xc2, 0x3d, 0x35, 0x97, 0x37, 0xa9, 0x2a, 0x1b,
+ 0xdd, 0x9e, 0x5a, 0x6a,
+};
+static const struct drbg_kat_pr_false kat2338_t = {
+ 12, kat2338_entropyin, kat2338_nonce, kat2338_persstr,
+ kat2338_entropyinreseed, kat2338_addinreseed, kat2338_addin0,
+ kat2338_addin1, kat2338_retbits
+};
+static const struct drbg_kat kat2338 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2338_t
+};
+
+static const unsigned char kat2339_entropyin[] = {
+ 0x67, 0xfe, 0xc7, 0x72, 0x18, 0x49, 0x94, 0x15, 0xaa, 0x7d, 0xe0, 0xa1,
+ 0xbe, 0x22, 0x15, 0x89, 0xb5, 0x13, 0xfd, 0x8c, 0x57, 0x8d, 0x6d, 0xb9,
+ 0xd4, 0x8f, 0xf8, 0x55, 0xb0, 0xaa, 0x1a, 0x22,
+};
+static const unsigned char kat2339_nonce[] = {0};
+static const unsigned char kat2339_persstr[] = {
+ 0x98, 0x9a, 0xf8, 0x2f, 0x6f, 0x41, 0xfb, 0x5e, 0xa5, 0x14, 0x1f, 0xef,
+ 0x7d, 0x89, 0xcf, 0xee, 0x1b, 0x5c, 0x3c, 0x6b, 0x9d, 0x41, 0x05, 0xdc,
+ 0xdc, 0xc9, 0xa8, 0xf1, 0x03, 0xda, 0xdf, 0xfa,
+};
+static const unsigned char kat2339_entropyinreseed[] = {
+ 0xd9, 0x7d, 0xcf, 0x93, 0x28, 0x5f, 0x4b, 0x67, 0xdb, 0x6d, 0x7d, 0x5f,
+ 0xaa, 0xf2, 0xd4, 0xb0, 0xf9, 0xad, 0x66, 0x0d, 0xbd, 0x26, 0x0d, 0xb7,
+ 0xc4, 0xd3, 0xc3, 0xc3, 0xd3, 0xa5, 0x9a, 0x19,
+};
+static const unsigned char kat2339_addinreseed[] = {
+ 0x82, 0x62, 0x3e, 0xdc, 0x25, 0x03, 0x97, 0x08, 0x32, 0xd9, 0x56, 0x6e,
+ 0xb3, 0x42, 0xe1, 0xdb, 0x9b, 0x8a, 0x0a, 0x2f, 0xdf, 0x84, 0x7f, 0x21,
+ 0xe3, 0x83, 0x13, 0xb2, 0xb9, 0xef, 0x84, 0x32,
+};
+static const unsigned char kat2339_addin0[] = {
+ 0x4e, 0xc1, 0x9e, 0xb0, 0x00, 0x95, 0x43, 0x9d, 0x87, 0x8b, 0xdc, 0x9a,
+ 0xe2, 0x54, 0x30, 0xcd, 0x8a, 0x70, 0x1a, 0x70, 0x77, 0x92, 0xc9, 0xae,
+ 0xcc, 0xe7, 0x17, 0xea, 0x3c, 0xfc, 0x8b, 0xe6,
+};
+static const unsigned char kat2339_addin1[] = {
+ 0xe5, 0xc5, 0x3c, 0x5d, 0x4d, 0x98, 0x43, 0xda, 0x5c, 0xee, 0x1c, 0x20,
+ 0x0d, 0x91, 0xc7, 0x1b, 0xd0, 0x49, 0x49, 0x9c, 0x01, 0x58, 0xb9, 0x30,
+ 0x29, 0xf0, 0xf7, 0xc8, 0x83, 0x2c, 0xfb, 0x25,
+};
+static const unsigned char kat2339_retbits[] = {
+ 0xa7, 0xa8, 0xee, 0x50, 0x45, 0x4e, 0xae, 0x4f, 0xf8, 0xa9, 0xbf, 0x71,
+ 0xd5, 0x19, 0xd0, 0x9c, 0x39, 0xe1, 0x4c, 0x0b, 0x46, 0x72, 0x06, 0xd3,
+ 0xa8, 0x5d, 0x92, 0xf5, 0x04, 0xb3, 0x30, 0x59, 0x99, 0xd4, 0x0e, 0xae,
+ 0x72, 0x82, 0x64, 0x2f, 0xb5, 0x23, 0xbb, 0x20, 0x35, 0xe4, 0x50, 0x2a,
+ 0x1b, 0xdb, 0xdf, 0x4f, 0x20, 0x96, 0xe0, 0x27, 0xb0, 0x73, 0x76, 0xe6,
+ 0xb7, 0x5c, 0x61, 0xe8,
+};
+static const struct drbg_kat_pr_false kat2339_t = {
+ 13, kat2339_entropyin, kat2339_nonce, kat2339_persstr,
+ kat2339_entropyinreseed, kat2339_addinreseed, kat2339_addin0,
+ kat2339_addin1, kat2339_retbits
+};
+static const struct drbg_kat kat2339 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2339_t
+};
+
+static const unsigned char kat2340_entropyin[] = {
+ 0xb0, 0x1a, 0x63, 0xe1, 0xeb, 0x4e, 0xcf, 0x7e, 0xea, 0x9d, 0x07, 0x8e,
+ 0x6e, 0x90, 0x85, 0x50, 0x22, 0xda, 0x74, 0x39, 0x38, 0x84, 0x8a, 0xf5,
+ 0x78, 0x97, 0xbb, 0xbc, 0xd6, 0x33, 0x96, 0xd9,
+};
+static const unsigned char kat2340_nonce[] = {0};
+static const unsigned char kat2340_persstr[] = {
+ 0x32, 0xdb, 0xa1, 0xb9, 0x98, 0x1b, 0x32, 0x07, 0x4e, 0xfa, 0x88, 0xdc,
+ 0x3e, 0xb2, 0xde, 0x16, 0x40, 0xf9, 0x97, 0xb9, 0xf4, 0xb6, 0x59, 0xf5,
+ 0xc5, 0x18, 0xb6, 0x07, 0x90, 0x98, 0xee, 0xe3,
+};
+static const unsigned char kat2340_entropyinreseed[] = {
+ 0xd1, 0xde, 0xec, 0xd9, 0x28, 0xc4, 0x26, 0x9e, 0xca, 0xbc, 0x75, 0x59,
+ 0x9d, 0x76, 0x86, 0x4d, 0x99, 0x90, 0xdb, 0xac, 0x39, 0x0e, 0xc8, 0x5a,
+ 0xf3, 0x0b, 0x71, 0x0d, 0x64, 0xb2, 0xb9, 0x5e,
+};
+static const unsigned char kat2340_addinreseed[] = {
+ 0xf9, 0x38, 0x19, 0x50, 0xa1, 0x24, 0xbc, 0x44, 0xef, 0x81, 0x18, 0xbc,
+ 0xd4, 0x2b, 0x6b, 0xd1, 0xc6, 0x6f, 0x60, 0xc9, 0x9e, 0xf5, 0x47, 0x9b,
+ 0x04, 0xcc, 0x1b, 0xae, 0xae, 0x4c, 0xe9, 0x50,
+};
+static const unsigned char kat2340_addin0[] = {
+ 0xad, 0xc0, 0x70, 0x7f, 0x3a, 0x06, 0xe7, 0x67, 0xea, 0x80, 0xf0, 0x88,
+ 0x2e, 0xbc, 0x01, 0x5b, 0x79, 0xf0, 0x22, 0x85, 0x47, 0xd2, 0x2e, 0xb5,
+ 0xa6, 0x35, 0xb2, 0x44, 0xa7, 0xd1, 0xc6, 0x57,
+};
+static const unsigned char kat2340_addin1[] = {
+ 0x83, 0x72, 0xa1, 0x27, 0x7f, 0x0e, 0xb8, 0x4c, 0xad, 0xd5, 0x3d, 0xf4,
+ 0xa6, 0xcc, 0x61, 0x9c, 0xfc, 0xa0, 0x29, 0xf8, 0x4d, 0x9b, 0xea, 0x48,
+ 0xbe, 0xca, 0x8c, 0xc8, 0x06, 0x05, 0x28, 0xcc,
+};
+static const unsigned char kat2340_retbits[] = {
+ 0x86, 0xcd, 0xe2, 0x2d, 0xae, 0x3a, 0x1a, 0xf9, 0x47, 0xd7, 0x6c, 0xd1,
+ 0x5e, 0x4d, 0xf0, 0xc8, 0x3a, 0x11, 0x76, 0x9d, 0x34, 0x61, 0x0d, 0x19,
+ 0x91, 0x94, 0x53, 0x50, 0xac, 0xd4, 0xf0, 0xaa, 0xef, 0x9e, 0xf7, 0x0b,
+ 0x5b, 0xbd, 0x57, 0xfa, 0xb7, 0x4f, 0xac, 0x6b, 0xe8, 0xcb, 0xc0, 0x28,
+ 0xb9, 0xba, 0xb6, 0x3a, 0xa5, 0xde, 0x62, 0xd9, 0xf1, 0xf9, 0x5d, 0x94,
+ 0x9e, 0x9d, 0x09, 0x3e,
+};
+static const struct drbg_kat_pr_false kat2340_t = {
+ 14, kat2340_entropyin, kat2340_nonce, kat2340_persstr,
+ kat2340_entropyinreseed, kat2340_addinreseed, kat2340_addin0,
+ kat2340_addin1, kat2340_retbits
+};
+static const struct drbg_kat kat2340 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2340_t
+};
+
+static const unsigned char kat2341_entropyin[] = {
+ 0x6e, 0xb2, 0xe5, 0x33, 0xb9, 0x02, 0x54, 0x5c, 0x31, 0xcd, 0xd0, 0x9a,
+ 0x06, 0x2c, 0xf5, 0x93, 0x46, 0x59, 0x4f, 0x34, 0xb5, 0x63, 0xb0, 0x90,
+ 0xdf, 0xbd, 0x63, 0x2a, 0xea, 0xdb, 0xd1, 0x91,
+};
+static const unsigned char kat2341_nonce[] = {0};
+static const unsigned char kat2341_persstr[] = {0};
+static const unsigned char kat2341_entropyinreseed[] = {
+ 0x2c, 0xd1, 0xce, 0xc6, 0x24, 0x2a, 0xc2, 0x5e, 0x75, 0x18, 0xb9, 0x8d,
+ 0xa8, 0xa2, 0x2b, 0xd1, 0x3a, 0xcf, 0xaf, 0x5f, 0xa4, 0x5f, 0xee, 0x60,
+ 0x21, 0xba, 0x28, 0x39, 0x26, 0xde, 0x19, 0x22,
+};
+static const unsigned char kat2341_addinreseed[] = {0};
+static const unsigned char kat2341_addin0[] = {0};
+static const unsigned char kat2341_addin1[] = {0};
+static const unsigned char kat2341_retbits[] = {
+ 0xba, 0x5c, 0xab, 0x62, 0xfd, 0xdf, 0x8c, 0x6e, 0xd1, 0x67, 0x33, 0xc5,
+ 0xbf, 0x0e, 0x39, 0x33, 0x6c, 0x18, 0x9d, 0x80, 0xa9, 0x66, 0x90, 0x43,
+ 0xac, 0x89, 0x2c, 0xea, 0x63, 0xd7, 0xe7, 0x0d, 0x39, 0x0e, 0x91, 0x74,
+ 0x18, 0x40, 0xbf, 0x7e, 0xe1, 0x4c, 0x07, 0x8c, 0xbb, 0xe9, 0x7d, 0x11,
+ 0x49, 0x92, 0xae, 0x78, 0x1d, 0x99, 0x66, 0xa5, 0xf6, 0xc7, 0x04, 0xe5,
+ 0xc0, 0x18, 0x11, 0xb5,
+};
+static const struct drbg_kat_pr_false kat2341_t = {
+ 0, kat2341_entropyin, kat2341_nonce, kat2341_persstr,
+ kat2341_entropyinreseed, kat2341_addinreseed, kat2341_addin0,
+ kat2341_addin1, kat2341_retbits
+};
+static const struct drbg_kat kat2341 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2341_t
+};
+
+static const unsigned char kat2342_entropyin[] = {
+ 0xbe, 0x72, 0xde, 0x2b, 0x1c, 0xdb, 0xf0, 0xc8, 0xfb, 0xcd, 0x4c, 0xfe,
+ 0x0b, 0x0f, 0x8d, 0xc5, 0xd9, 0x3d, 0x03, 0x5d, 0x9f, 0xaf, 0x88, 0x4b,
+ 0xfb, 0xa2, 0xef, 0x19, 0x72, 0x3f, 0x19, 0x6e,
+};
+static const unsigned char kat2342_nonce[] = {0};
+static const unsigned char kat2342_persstr[] = {0};
+static const unsigned char kat2342_entropyinreseed[] = {
+ 0x89, 0xc4, 0xf4, 0x35, 0x7f, 0x79, 0x9b, 0x65, 0x8e, 0x9d, 0x1c, 0xa5,
+ 0x34, 0x02, 0xbc, 0x60, 0x26, 0x4b, 0x4c, 0xed, 0xeb, 0x55, 0x3a, 0x0d,
+ 0x8a, 0xfc, 0x90, 0x46, 0x39, 0x1a, 0x04, 0x3d,
+};
+static const unsigned char kat2342_addinreseed[] = {0};
+static const unsigned char kat2342_addin0[] = {0};
+static const unsigned char kat2342_addin1[] = {0};
+static const unsigned char kat2342_retbits[] = {
+ 0x0d, 0xe1, 0x95, 0x71, 0xb5, 0xf5, 0x4c, 0x8b, 0x13, 0x49, 0x33, 0xd7,
+ 0x6b, 0x2f, 0xa2, 0x18, 0x26, 0x39, 0x4c, 0x3b, 0xfc, 0x06, 0xdb, 0xdb,
+ 0x08, 0xc0, 0x78, 0xa1, 0x58, 0xfb, 0xc3, 0x8a, 0xac, 0x3f, 0xca, 0xf6,
+ 0x91, 0x3d, 0x1c, 0x58, 0x8a, 0x6e, 0x36, 0x9b, 0x12, 0xb1, 0xcd, 0x94,
+ 0x6d, 0xce, 0x24, 0xd9, 0x6c, 0x4c, 0xa1, 0x74, 0x6e, 0xd1, 0xe9, 0x0a,
+ 0xb2, 0x62, 0x0d, 0xf5,
+};
+static const struct drbg_kat_pr_false kat2342_t = {
+ 1, kat2342_entropyin, kat2342_nonce, kat2342_persstr,
+ kat2342_entropyinreseed, kat2342_addinreseed, kat2342_addin0,
+ kat2342_addin1, kat2342_retbits
+};
+static const struct drbg_kat kat2342 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2342_t
+};
+
+static const unsigned char kat2343_entropyin[] = {
+ 0x5b, 0x3e, 0xa3, 0x9a, 0xaf, 0xf5, 0xc0, 0x40, 0x09, 0xee, 0xa6, 0x5c,
+ 0xad, 0x7c, 0x3a, 0x02, 0xd4, 0xf8, 0x80, 0x72, 0x55, 0xa4, 0xf4, 0x8e,
+ 0x60, 0xe3, 0x62, 0xe0, 0xe4, 0x17, 0x75, 0x85,
+};
+static const unsigned char kat2343_nonce[] = {0};
+static const unsigned char kat2343_persstr[] = {0};
+static const unsigned char kat2343_entropyinreseed[] = {
+ 0xf1, 0x90, 0x69, 0x10, 0x17, 0x9d, 0x2d, 0x64, 0xac, 0x13, 0x10, 0x75,
+ 0xee, 0x60, 0xaa, 0x69, 0x0c, 0xa4, 0x34, 0x5c, 0x18, 0x75, 0x05, 0x54,
+ 0x7d, 0xb4, 0xf4, 0x39, 0x58, 0xf6, 0xe1, 0xc6,
+};
+static const unsigned char kat2343_addinreseed[] = {0};
+static const unsigned char kat2343_addin0[] = {0};
+static const unsigned char kat2343_addin1[] = {0};
+static const unsigned char kat2343_retbits[] = {
+ 0x3c, 0x5a, 0xb2, 0x53, 0x97, 0xe0, 0x2a, 0x8c, 0x57, 0xd2, 0x49, 0x97,
+ 0xe5, 0x10, 0x81, 0xae, 0xd0, 0x9e, 0xb8, 0xfc, 0x68, 0x61, 0x2c, 0xd1,
+ 0x9c, 0x9d, 0x56, 0x0f, 0x35, 0x97, 0xc9, 0xdb, 0x6a, 0xaf, 0x5f, 0x62,
+ 0x22, 0x77, 0x8d, 0x81, 0x84, 0xc8, 0x3f, 0xf1, 0x66, 0xf0, 0x59, 0x1a,
+ 0xc2, 0xa8, 0xb4, 0xbb, 0xe9, 0xed, 0xfc, 0x4f, 0xd4, 0xdd, 0xb3, 0xaa,
+ 0xdc, 0xab, 0xd3, 0x24,
+};
+static const struct drbg_kat_pr_false kat2343_t = {
+ 2, kat2343_entropyin, kat2343_nonce, kat2343_persstr,
+ kat2343_entropyinreseed, kat2343_addinreseed, kat2343_addin0,
+ kat2343_addin1, kat2343_retbits
+};
+static const struct drbg_kat kat2343 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2343_t
+};
+
+static const unsigned char kat2344_entropyin[] = {
+ 0xb1, 0xd8, 0x7c, 0x20, 0xb1, 0x8e, 0xf4, 0xd7, 0x9b, 0xc0, 0x34, 0xe5,
+ 0x2e, 0x69, 0xe0, 0x7f, 0x0d, 0x1c, 0x22, 0x4d, 0x49, 0xcf, 0xe7, 0x7c,
+ 0x5d, 0xf5, 0xff, 0x7f, 0x26, 0x05, 0xee, 0xf5,
+};
+static const unsigned char kat2344_nonce[] = {0};
+static const unsigned char kat2344_persstr[] = {0};
+static const unsigned char kat2344_entropyinreseed[] = {
+ 0x0b, 0xad, 0x85, 0x80, 0x60, 0x63, 0xa7, 0xc6, 0xf5, 0x0c, 0x7e, 0xc4,
+ 0x98, 0xca, 0xda, 0x91, 0x2c, 0x61, 0x67, 0xbd, 0x6e, 0xe2, 0xcd, 0x3b,
+ 0xe8, 0xd2, 0xde, 0x94, 0xc1, 0x7d, 0xcf, 0xa8,
+};
+static const unsigned char kat2344_addinreseed[] = {0};
+static const unsigned char kat2344_addin0[] = {0};
+static const unsigned char kat2344_addin1[] = {0};
+static const unsigned char kat2344_retbits[] = {
+ 0x49, 0x53, 0xc4, 0x70, 0x6f, 0xb2, 0x74, 0x57, 0xbe, 0xf8, 0xbb, 0x4f,
+ 0xc4, 0x92, 0x9f, 0xe2, 0x27, 0xeb, 0x7b, 0xeb, 0x90, 0xe6, 0x6e, 0xda,
+ 0xb9, 0xe2, 0x6a, 0xb7, 0x67, 0x1f, 0x28, 0xa4, 0xf5, 0xb6, 0x5d, 0x1e,
+ 0xdf, 0x3f, 0xc2, 0x67, 0xb4, 0xf3, 0xe5, 0x1f, 0x4c, 0xa7, 0xf0, 0x7f,
+ 0x47, 0x62, 0x89, 0xca, 0x0a, 0xe3, 0xa8, 0x69, 0x19, 0x70, 0x5d, 0x2d,
+ 0xad, 0x0e, 0x48, 0xb7,
+};
+static const struct drbg_kat_pr_false kat2344_t = {
+ 3, kat2344_entropyin, kat2344_nonce, kat2344_persstr,
+ kat2344_entropyinreseed, kat2344_addinreseed, kat2344_addin0,
+ kat2344_addin1, kat2344_retbits
+};
+static const struct drbg_kat kat2344 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2344_t
+};
+
+static const unsigned char kat2345_entropyin[] = {
+ 0x08, 0x2a, 0x0f, 0x42, 0xb5, 0x4b, 0x52, 0x4e, 0xaf, 0x14, 0xa9, 0x52,
+ 0x19, 0x75, 0x94, 0xa1, 0x94, 0x7c, 0xff, 0xc2, 0x89, 0x71, 0x67, 0x76,
+ 0xd5, 0x2d, 0x02, 0xd0, 0x0c, 0x76, 0x30, 0xe0,
+};
+static const unsigned char kat2345_nonce[] = {0};
+static const unsigned char kat2345_persstr[] = {0};
+static const unsigned char kat2345_entropyinreseed[] = {
+ 0x5e, 0x79, 0x8f, 0x69, 0xfc, 0xd0, 0x17, 0xce, 0xea, 0x3c, 0x14, 0x34,
+ 0xea, 0x59, 0x7d, 0xac, 0x68, 0x47, 0xa6, 0x3a, 0x80, 0x93, 0x30, 0x9d,
+ 0xcb, 0xe5, 0x4f, 0xc2, 0xa0, 0x27, 0x2b, 0x7d,
+};
+static const unsigned char kat2345_addinreseed[] = {0};
+static const unsigned char kat2345_addin0[] = {0};
+static const unsigned char kat2345_addin1[] = {0};
+static const unsigned char kat2345_retbits[] = {
+ 0x09, 0x46, 0xb9, 0x1d, 0xc3, 0xf1, 0x9c, 0xf0, 0x8a, 0x2a, 0xf8, 0x6b,
+ 0xa6, 0x5a, 0xb9, 0xd1, 0x62, 0xde, 0x8f, 0x64, 0x5c, 0x2f, 0x53, 0x1d,
+ 0xd1, 0x6a, 0x22, 0xf6, 0x15, 0xf0, 0x56, 0x2f, 0x79, 0xa1, 0x28, 0x43,
+ 0x2e, 0x23, 0x95, 0x3d, 0xc3, 0xf6, 0x15, 0x61, 0x22, 0x18, 0xed, 0xbe,
+ 0xe5, 0xc9, 0xd0, 0x62, 0xae, 0x00, 0x9d, 0x4a, 0x2d, 0x24, 0x16, 0x71,
+ 0x8d, 0x59, 0x3b, 0x94,
+};
+static const struct drbg_kat_pr_false kat2345_t = {
+ 4, kat2345_entropyin, kat2345_nonce, kat2345_persstr,
+ kat2345_entropyinreseed, kat2345_addinreseed, kat2345_addin0,
+ kat2345_addin1, kat2345_retbits
+};
+static const struct drbg_kat kat2345 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2345_t
+};
+
+static const unsigned char kat2346_entropyin[] = {
+ 0x5f, 0x41, 0xde, 0x01, 0x51, 0x7a, 0x0d, 0x31, 0xa7, 0xd5, 0x35, 0x35,
+ 0xb8, 0x58, 0x25, 0x7c, 0x9d, 0x80, 0xe8, 0x12, 0x3c, 0xca, 0x98, 0xad,
+ 0x19, 0x9a, 0xe5, 0x3e, 0x77, 0x6d, 0xb9, 0xe3,
+};
+static const unsigned char kat2346_nonce[] = {0};
+static const unsigned char kat2346_persstr[] = {0};
+static const unsigned char kat2346_entropyinreseed[] = {
+ 0xb8, 0x57, 0xf6, 0x32, 0x81, 0x45, 0xfe, 0xdf, 0xd7, 0x1d, 0x2d, 0xc3,
+ 0xd4, 0xc9, 0x90, 0x68, 0xbd, 0x46, 0x48, 0xd3, 0x31, 0x03, 0x41, 0x5b,
+ 0x9f, 0xe1, 0x14, 0x82, 0x6a, 0xf6, 0x6a, 0x84,
+};
+static const unsigned char kat2346_addinreseed[] = {0};
+static const unsigned char kat2346_addin0[] = {0};
+static const unsigned char kat2346_addin1[] = {0};
+static const unsigned char kat2346_retbits[] = {
+ 0xe2, 0x44, 0x46, 0xec, 0x14, 0x9f, 0x6f, 0x16, 0xe4, 0x06, 0x9b, 0x27,
+ 0xf4, 0x5b, 0x0d, 0xb2, 0x93, 0xf5, 0xff, 0x4b, 0x6a, 0x0c, 0xb4, 0x65,
+ 0xfb, 0xef, 0x97, 0x09, 0xa6, 0xd9, 0xaf, 0x20, 0xa3, 0xbe, 0x60, 0x9c,
+ 0xbf, 0x1c, 0x64, 0x7b, 0xcd, 0xa7, 0x7f, 0xdf, 0xe3, 0x03, 0x79, 0x58,
+ 0x3f, 0x67, 0xad, 0x73, 0xb9, 0xd6, 0x2a, 0x4f, 0x51, 0x87, 0xf2, 0x1d,
+ 0xbb, 0x89, 0xbb, 0x36,
+};
+static const struct drbg_kat_pr_false kat2346_t = {
+ 5, kat2346_entropyin, kat2346_nonce, kat2346_persstr,
+ kat2346_entropyinreseed, kat2346_addinreseed, kat2346_addin0,
+ kat2346_addin1, kat2346_retbits
+};
+static const struct drbg_kat kat2346 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2346_t
+};
+
+static const unsigned char kat2347_entropyin[] = {
+ 0xd4, 0xfe, 0x09, 0x37, 0x2d, 0x8b, 0xba, 0xf3, 0x9f, 0x83, 0x88, 0xf1,
+ 0x93, 0x31, 0x0e, 0xe6, 0x3c, 0x4a, 0xda, 0x30, 0x8a, 0x58, 0x78, 0x3f,
+ 0x4b, 0xfa, 0x58, 0x08, 0x06, 0xf0, 0x1b, 0xc6,
+};
+static const unsigned char kat2347_nonce[] = {0};
+static const unsigned char kat2347_persstr[] = {0};
+static const unsigned char kat2347_entropyinreseed[] = {
+ 0x1e, 0x46, 0xde, 0x02, 0xdf, 0xd2, 0xa9, 0xf1, 0x1d, 0x2d, 0x68, 0x3f,
+ 0x4a, 0xb7, 0x9c, 0x25, 0x88, 0x62, 0x78, 0x72, 0xab, 0x14, 0xfb, 0xcc,
+ 0x0b, 0xb6, 0x19, 0xd3, 0x16, 0x87, 0xd5, 0x72,
+};
+static const unsigned char kat2347_addinreseed[] = {0};
+static const unsigned char kat2347_addin0[] = {0};
+static const unsigned char kat2347_addin1[] = {0};
+static const unsigned char kat2347_retbits[] = {
+ 0x20, 0xd8, 0x7a, 0x94, 0xba, 0x7a, 0xf2, 0x0e, 0x41, 0xe3, 0x84, 0x8e,
+ 0xc3, 0x1f, 0xcb, 0xd0, 0xb8, 0xe5, 0x1a, 0xae, 0x70, 0xa2, 0x5e, 0xb2,
+ 0xd5, 0x32, 0x03, 0xa7, 0x7a, 0xac, 0xd5, 0x32, 0x40, 0xb9, 0x11, 0x58,
+ 0x5f, 0x11, 0x5d, 0x8b, 0x8a, 0x07, 0xe3, 0x8c, 0x4e, 0x10, 0x1c, 0xd2,
+ 0xac, 0x46, 0xd7, 0xc9, 0xf3, 0x25, 0x05, 0xb8, 0x56, 0x4e, 0xbf, 0x7a,
+ 0xcd, 0x97, 0xa7, 0x99,
+};
+static const struct drbg_kat_pr_false kat2347_t = {
+ 6, kat2347_entropyin, kat2347_nonce, kat2347_persstr,
+ kat2347_entropyinreseed, kat2347_addinreseed, kat2347_addin0,
+ kat2347_addin1, kat2347_retbits
+};
+static const struct drbg_kat kat2347 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2347_t
+};
+
+static const unsigned char kat2348_entropyin[] = {
+ 0x54, 0x88, 0xcd, 0x2f, 0xb7, 0xa0, 0x02, 0xea, 0x1e, 0xd7, 0xeb, 0x6f,
+ 0x58, 0x5c, 0x23, 0xdd, 0xd7, 0x3c, 0xd5, 0x6c, 0x14, 0xd3, 0x9b, 0xd7,
+ 0x80, 0xb3, 0x06, 0x99, 0x84, 0xda, 0x00, 0x20,
+};
+static const unsigned char kat2348_nonce[] = {0};
+static const unsigned char kat2348_persstr[] = {0};
+static const unsigned char kat2348_entropyinreseed[] = {
+ 0x24, 0xfd, 0xcc, 0xeb, 0x76, 0x6f, 0xcb, 0xf2, 0x3c, 0x89, 0x54, 0x62,
+ 0x5f, 0x75, 0x9d, 0x34, 0x3d, 0xd3, 0x17, 0x03, 0xa0, 0x03, 0x9e, 0x95,
+ 0x96, 0x8b, 0x48, 0x2a, 0x33, 0x58, 0x3e, 0xfa,
+};
+static const unsigned char kat2348_addinreseed[] = {0};
+static const unsigned char kat2348_addin0[] = {0};
+static const unsigned char kat2348_addin1[] = {0};
+static const unsigned char kat2348_retbits[] = {
+ 0xb6, 0xd5, 0x85, 0x52, 0xbd, 0xe5, 0x95, 0xfe, 0x3e, 0xb0, 0xae, 0x54,
+ 0x53, 0x1e, 0x98, 0x45, 0x10, 0xe5, 0x45, 0xbf, 0xc4, 0x57, 0x69, 0x93,
+ 0x0a, 0x1f, 0xef, 0x2f, 0x96, 0xc5, 0xd4, 0x7e, 0xa1, 0xff, 0x8d, 0x3e,
+ 0xa4, 0x17, 0x91, 0x7b, 0x8c, 0x9a, 0x00, 0xaa, 0x32, 0xe4, 0x89, 0x1f,
+ 0x3b, 0xfe, 0x5d, 0x61, 0x21, 0xbb, 0x40, 0x48, 0x28, 0x86, 0x6a, 0xcc,
+ 0xd5, 0xac, 0x76, 0x9f,
+};
+static const struct drbg_kat_pr_false kat2348_t = {
+ 7, kat2348_entropyin, kat2348_nonce, kat2348_persstr,
+ kat2348_entropyinreseed, kat2348_addinreseed, kat2348_addin0,
+ kat2348_addin1, kat2348_retbits
+};
+static const struct drbg_kat kat2348 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2348_t
+};
+
+static const unsigned char kat2349_entropyin[] = {
+ 0x0f, 0x1e, 0x74, 0x70, 0x94, 0x4e, 0x37, 0x7d, 0x00, 0xe8, 0x7f, 0x09,
+ 0x20, 0xfe, 0x60, 0xed, 0x47, 0x34, 0xf6, 0xfa, 0x40, 0x34, 0xd1, 0xd1,
+ 0xa9, 0xad, 0x0e, 0x67, 0x49, 0x9e, 0x3b, 0x56,
+};
+static const unsigned char kat2349_nonce[] = {0};
+static const unsigned char kat2349_persstr[] = {0};
+static const unsigned char kat2349_entropyinreseed[] = {
+ 0xb0, 0xbb, 0xd0, 0xb3, 0x20, 0x68, 0x25, 0xe4, 0x84, 0x11, 0x8b, 0x9a,
+ 0xc4, 0xa9, 0xc7, 0xb9, 0xbf, 0x69, 0x83, 0x98, 0x3c, 0xb4, 0x18, 0x0d,
+ 0x5c, 0xe2, 0x78, 0x47, 0x5e, 0x2e, 0x85, 0xe1,
+};
+static const unsigned char kat2349_addinreseed[] = {0};
+static const unsigned char kat2349_addin0[] = {0};
+static const unsigned char kat2349_addin1[] = {0};
+static const unsigned char kat2349_retbits[] = {
+ 0x7e, 0x65, 0x92, 0x90, 0x50, 0x3d, 0xf5, 0xce, 0x17, 0x62, 0xba, 0x72,
+ 0x1e, 0x9f, 0x50, 0xa0, 0xd9, 0x87, 0x10, 0x99, 0x8d, 0x75, 0xe1, 0xfd,
+ 0xe9, 0x28, 0x29, 0x10, 0x6f, 0x10, 0x07, 0x45, 0x85, 0x74, 0xfb, 0x1c,
+ 0xc7, 0x3f, 0x69, 0x42, 0x7d, 0x10, 0x6d, 0x31, 0x8f, 0x1c, 0x16, 0x90,
+ 0xcf, 0x74, 0x8e, 0xab, 0xad, 0x72, 0xf8, 0x70, 0xc6, 0x05, 0x66, 0x13,
+ 0x99, 0x0f, 0x1d, 0xb9,
+};
+static const struct drbg_kat_pr_false kat2349_t = {
+ 8, kat2349_entropyin, kat2349_nonce, kat2349_persstr,
+ kat2349_entropyinreseed, kat2349_addinreseed, kat2349_addin0,
+ kat2349_addin1, kat2349_retbits
+};
+static const struct drbg_kat kat2349 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2349_t
+};
+
+static const unsigned char kat2350_entropyin[] = {
+ 0x30, 0xd6, 0xad, 0xf9, 0xb8, 0x45, 0x13, 0x90, 0xca, 0x56, 0x6f, 0xf1,
+ 0x99, 0xc0, 0x1d, 0xb2, 0x14, 0xb9, 0xf9, 0xe2, 0xb1, 0x47, 0xbf, 0x58,
+ 0x06, 0xb7, 0x05, 0x54, 0x57, 0x93, 0x0c, 0x78,
+};
+static const unsigned char kat2350_nonce[] = {0};
+static const unsigned char kat2350_persstr[] = {0};
+static const unsigned char kat2350_entropyinreseed[] = {
+ 0x82, 0x60, 0xeb, 0x48, 0xac, 0xc5, 0x9e, 0xc9, 0x46, 0x90, 0x5c, 0x56,
+ 0xea, 0xab, 0x34, 0xca, 0xfa, 0x41, 0x2d, 0xad, 0xbc, 0xa0, 0x2b, 0x30,
+ 0xc2, 0x93, 0xbf, 0xf0, 0xe6, 0x43, 0x75, 0x69,
+};
+static const unsigned char kat2350_addinreseed[] = {0};
+static const unsigned char kat2350_addin0[] = {0};
+static const unsigned char kat2350_addin1[] = {0};
+static const unsigned char kat2350_retbits[] = {
+ 0x29, 0xae, 0xf1, 0x7c, 0x99, 0x92, 0xe7, 0x31, 0x4a, 0xca, 0x59, 0x62,
+ 0x6d, 0x25, 0x08, 0x20, 0xde, 0xf8, 0x1b, 0xe8, 0x02, 0x42, 0x1a, 0xc7,
+ 0xba, 0x37, 0x39, 0x05, 0xe9, 0xf5, 0x49, 0xdf, 0xac, 0xde, 0xde, 0x4e,
+ 0xf7, 0x51, 0xe4, 0x47, 0x14, 0x97, 0x50, 0x14, 0x83, 0x70, 0xb8, 0xa5,
+ 0x47, 0xc7, 0x04, 0x14, 0x95, 0xd9, 0x45, 0x98, 0x57, 0x26, 0xf8, 0x97,
+ 0xe9, 0xdd, 0xd3, 0xe1,
+};
+static const struct drbg_kat_pr_false kat2350_t = {
+ 9, kat2350_entropyin, kat2350_nonce, kat2350_persstr,
+ kat2350_entropyinreseed, kat2350_addinreseed, kat2350_addin0,
+ kat2350_addin1, kat2350_retbits
+};
+static const struct drbg_kat kat2350 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2350_t
+};
+
+static const unsigned char kat2351_entropyin[] = {
+ 0x71, 0x72, 0xba, 0x99, 0x4b, 0x2e, 0xb0, 0xc9, 0x31, 0x6e, 0x87, 0x4d,
+ 0x2a, 0x5c, 0x97, 0x5c, 0xfd, 0x7e, 0x43, 0x77, 0x59, 0x12, 0xb2, 0x94,
+ 0x36, 0xfa, 0x75, 0x10, 0x58, 0x5a, 0x7d, 0xc5,
+};
+static const unsigned char kat2351_nonce[] = {0};
+static const unsigned char kat2351_persstr[] = {0};
+static const unsigned char kat2351_entropyinreseed[] = {
+ 0x9a, 0xc9, 0xe5, 0x14, 0x4c, 0xfd, 0x52, 0xd3, 0xdf, 0x33, 0x47, 0x36,
+ 0x09, 0x9d, 0x2c, 0xd9, 0x69, 0x3c, 0x97, 0xed, 0xc7, 0xc4, 0x1c, 0x1e,
+ 0x17, 0x30, 0x09, 0x14, 0x85, 0x49, 0xce, 0x8e,
+};
+static const unsigned char kat2351_addinreseed[] = {0};
+static const unsigned char kat2351_addin0[] = {0};
+static const unsigned char kat2351_addin1[] = {0};
+static const unsigned char kat2351_retbits[] = {
+ 0x6d, 0xf1, 0xde, 0x2d, 0xdd, 0x71, 0x3f, 0x9b, 0xc0, 0x16, 0x88, 0x36,
+ 0x6a, 0x44, 0xd1, 0x21, 0x68, 0x68, 0x12, 0x04, 0x1f, 0x00, 0x32, 0xbc,
+ 0x11, 0xa8, 0xfb, 0xbf, 0x7f, 0x5a, 0x22, 0x5d, 0xcc, 0x06, 0xb5, 0xfd,
+ 0x12, 0xc1, 0x91, 0x1e, 0xdc, 0xec, 0xb8, 0x06, 0x5e, 0x62, 0x95, 0xa0,
+ 0xb8, 0xaa, 0x83, 0x8f, 0x3e, 0x82, 0xf4, 0xdc, 0xe8, 0x88, 0x2e, 0xba,
+ 0xeb, 0x80, 0x27, 0x6e,
+};
+static const struct drbg_kat_pr_false kat2351_t = {
+ 10, kat2351_entropyin, kat2351_nonce, kat2351_persstr,
+ kat2351_entropyinreseed, kat2351_addinreseed, kat2351_addin0,
+ kat2351_addin1, kat2351_retbits
+};
+static const struct drbg_kat kat2351 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2351_t
+};
+
+static const unsigned char kat2352_entropyin[] = {
+ 0x33, 0xc4, 0x9e, 0x74, 0x2b, 0xb3, 0xd9, 0x03, 0x36, 0x12, 0xf3, 0x23,
+ 0x5e, 0x84, 0x02, 0x90, 0x4d, 0xa8, 0xbe, 0xc4, 0x43, 0x39, 0x31, 0x24,
+ 0xea, 0xbf, 0x0f, 0xfd, 0x92, 0xc7, 0xfd, 0x3a,
+};
+static const unsigned char kat2352_nonce[] = {0};
+static const unsigned char kat2352_persstr[] = {0};
+static const unsigned char kat2352_entropyinreseed[] = {
+ 0x70, 0x5b, 0xb4, 0x29, 0xe7, 0xca, 0xbd, 0xee, 0x77, 0x16, 0x55, 0xb3,
+ 0xa8, 0x5d, 0x4e, 0xe3, 0x27, 0x1c, 0x9f, 0x05, 0x71, 0xea, 0xd3, 0x4f,
+ 0x5d, 0x7d, 0x1d, 0xf3, 0x91, 0x8d, 0x3c, 0xaf,
+};
+static const unsigned char kat2352_addinreseed[] = {0};
+static const unsigned char kat2352_addin0[] = {0};
+static const unsigned char kat2352_addin1[] = {0};
+static const unsigned char kat2352_retbits[] = {
+ 0x19, 0xc5, 0x4e, 0xcb, 0x76, 0x92, 0x4f, 0xf9, 0x30, 0xad, 0xa1, 0xaa,
+ 0x6f, 0x35, 0xb4, 0x2c, 0x22, 0x5a, 0x0e, 0x72, 0x64, 0x53, 0x41, 0x77,
+ 0xe0, 0x79, 0x1c, 0xff, 0xda, 0x42, 0x67, 0x76, 0x34, 0x29, 0x78, 0x80,
+ 0x28, 0xea, 0xcf, 0x9b, 0x98, 0x77, 0x66, 0xf5, 0x3a, 0x06, 0x6f, 0xa6,
+ 0x91, 0x89, 0x58, 0xe9, 0x2e, 0x66, 0xbf, 0x0f, 0xac, 0x60, 0x63, 0x76,
+ 0xc8, 0x57, 0xa0, 0x78,
+};
+static const struct drbg_kat_pr_false kat2352_t = {
+ 11, kat2352_entropyin, kat2352_nonce, kat2352_persstr,
+ kat2352_entropyinreseed, kat2352_addinreseed, kat2352_addin0,
+ kat2352_addin1, kat2352_retbits
+};
+static const struct drbg_kat kat2352 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2352_t
+};
+
+static const unsigned char kat2353_entropyin[] = {
+ 0x0b, 0xde, 0x84, 0x03, 0xf4, 0xef, 0xfc, 0x3f, 0x58, 0x8d, 0x4e, 0xae,
+ 0xb9, 0x41, 0x23, 0x09, 0xed, 0x70, 0x3d, 0x88, 0x9d, 0x11, 0x81, 0x23,
+ 0xd5, 0xad, 0x55, 0xd4, 0xb6, 0xad, 0x04, 0x82,
+};
+static const unsigned char kat2353_nonce[] = {0};
+static const unsigned char kat2353_persstr[] = {0};
+static const unsigned char kat2353_entropyinreseed[] = {
+ 0x9f, 0xd6, 0x0f, 0x0e, 0xaf, 0xed, 0xfc, 0x85, 0x73, 0xdb, 0x6d, 0x11,
+ 0x4f, 0x87, 0x33, 0xc3, 0x69, 0xaa, 0x7a, 0x44, 0x9d, 0x58, 0x64, 0x28,
+ 0x46, 0xed, 0x8c, 0x04, 0x9e, 0xce, 0x92, 0x8d,
+};
+static const unsigned char kat2353_addinreseed[] = {0};
+static const unsigned char kat2353_addin0[] = {0};
+static const unsigned char kat2353_addin1[] = {0};
+static const unsigned char kat2353_retbits[] = {
+ 0x86, 0x65, 0x3c, 0x0a, 0xc3, 0x26, 0x18, 0x74, 0xa3, 0x99, 0xe4, 0x96,
+ 0x5a, 0x12, 0xbb, 0x98, 0x62, 0x67, 0x64, 0xfc, 0xfa, 0x54, 0x68, 0x99,
+ 0xcb, 0x22, 0xe4, 0x7a, 0x4d, 0x5c, 0xe2, 0x12, 0x19, 0x29, 0x77, 0x2a,
+ 0xd7, 0x2e, 0x8b, 0x69, 0x88, 0xbe, 0x10, 0x77, 0xde, 0x45, 0x10, 0xff,
+ 0x0d, 0x4f, 0x20, 0x4a, 0x92, 0xfa, 0x1e, 0xad, 0x4c, 0x1b, 0x82, 0xa2,
+ 0x24, 0xfb, 0x74, 0xbd,
+};
+static const struct drbg_kat_pr_false kat2353_t = {
+ 12, kat2353_entropyin, kat2353_nonce, kat2353_persstr,
+ kat2353_entropyinreseed, kat2353_addinreseed, kat2353_addin0,
+ kat2353_addin1, kat2353_retbits
+};
+static const struct drbg_kat kat2353 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2353_t
+};
+
+static const unsigned char kat2354_entropyin[] = {
+ 0x64, 0x59, 0x1d, 0x27, 0xdb, 0xfb, 0x75, 0x6f, 0xa8, 0x82, 0x39, 0x9d,
+ 0x93, 0xe2, 0x46, 0x04, 0xbb, 0xba, 0xa5, 0x32, 0x02, 0x38, 0xc3, 0x6d,
+ 0x8b, 0x66, 0x55, 0x4c, 0xb3, 0x42, 0xfc, 0x23,
+};
+static const unsigned char kat2354_nonce[] = {0};
+static const unsigned char kat2354_persstr[] = {0};
+static const unsigned char kat2354_entropyinreseed[] = {
+ 0xe2, 0x8b, 0x90, 0x9e, 0xcb, 0xbf, 0x0c, 0x5f, 0xaf, 0x80, 0xbd, 0x2c,
+ 0xae, 0xa1, 0x4f, 0x55, 0xdc, 0xa0, 0x8f, 0x97, 0x20, 0x6c, 0x0e, 0x0a,
+ 0x44, 0xc5, 0x47, 0x25, 0x54, 0x4d, 0xd4, 0xac,
+};
+static const unsigned char kat2354_addinreseed[] = {0};
+static const unsigned char kat2354_addin0[] = {0};
+static const unsigned char kat2354_addin1[] = {0};
+static const unsigned char kat2354_retbits[] = {
+ 0x0f, 0x5b, 0x8f, 0x9e, 0x65, 0xaf, 0x24, 0x7e, 0xc6, 0xe6, 0x4a, 0x99,
+ 0xe7, 0xc0, 0xa1, 0x9d, 0x9a, 0x75, 0x7b, 0x88, 0x89, 0x5d, 0xb9, 0xcf,
+ 0x01, 0x5e, 0x61, 0x77, 0xec, 0x24, 0x64, 0xde, 0xc7, 0x8e, 0x42, 0xf1,
+ 0x9a, 0x0f, 0xe5, 0x2f, 0x90, 0x79, 0x5b, 0x3f, 0xdd, 0x33, 0x12, 0x23,
+ 0x34, 0x8d, 0x43, 0x28, 0xc1, 0x84, 0x05, 0x07, 0x88, 0x1d, 0xb7, 0xa1,
+ 0x9f, 0x16, 0x8a, 0xdf,
+};
+static const struct drbg_kat_pr_false kat2354_t = {
+ 13, kat2354_entropyin, kat2354_nonce, kat2354_persstr,
+ kat2354_entropyinreseed, kat2354_addinreseed, kat2354_addin0,
+ kat2354_addin1, kat2354_retbits
+};
+static const struct drbg_kat kat2354 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2354_t
+};
+
+static const unsigned char kat2355_entropyin[] = {
+ 0xe3, 0xd8, 0xfc, 0xb8, 0xc0, 0x49, 0xe4, 0x42, 0xd2, 0xbd, 0x07, 0x10,
+ 0x4c, 0x46, 0xf0, 0x60, 0x2a, 0x1f, 0x60, 0xf8, 0x7b, 0xdc, 0x02, 0xdb,
+ 0xec, 0xdc, 0xfc, 0xf4, 0x00, 0x6b, 0x5b, 0x0a,
+};
+static const unsigned char kat2355_nonce[] = {0};
+static const unsigned char kat2355_persstr[] = {0};
+static const unsigned char kat2355_entropyinreseed[] = {
+ 0xe2, 0x53, 0x27, 0x86, 0x7f, 0xf2, 0x74, 0x56, 0xef, 0xf9, 0xf4, 0xae,
+ 0x43, 0x75, 0xc7, 0xa8, 0x57, 0x88, 0xb4, 0x00, 0xdc, 0xae, 0x03, 0xae,
+ 0x8c, 0x89, 0x24, 0x72, 0xc8, 0xa0, 0x52, 0x21,
+};
+static const unsigned char kat2355_addinreseed[] = {0};
+static const unsigned char kat2355_addin0[] = {0};
+static const unsigned char kat2355_addin1[] = {0};
+static const unsigned char kat2355_retbits[] = {
+ 0x75, 0x40, 0x63, 0xc6, 0x79, 0x26, 0x99, 0x31, 0xfd, 0xab, 0x8f, 0x90,
+ 0xde, 0xaa, 0x96, 0x79, 0x69, 0xf2, 0x0b, 0x18, 0x05, 0xd9, 0x3f, 0xe5,
+ 0xb1, 0x92, 0x85, 0x12, 0xcd, 0x2f, 0xe9, 0x89, 0x84, 0x97, 0x4b, 0x0b,
+ 0xb1, 0xd7, 0x49, 0x4d, 0x81, 0xf5, 0x3e, 0x07, 0x3f, 0x1a, 0x3a, 0x93,
+ 0x78, 0xea, 0x27, 0x30, 0x7a, 0x15, 0x4d, 0xc8, 0xa1, 0xfb, 0x1d, 0x3e,
+ 0x17, 0x99, 0x8f, 0x85,
+};
+static const struct drbg_kat_pr_false kat2355_t = {
+ 14, kat2355_entropyin, kat2355_nonce, kat2355_persstr,
+ kat2355_entropyinreseed, kat2355_addinreseed, kat2355_addin0,
+ kat2355_addin1, kat2355_retbits
+};
+static const struct drbg_kat kat2355 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat2355_t
+};
+
+static const unsigned char kat2356_entropyin[] = {
+ 0x11, 0x09, 0x21, 0x43, 0x25, 0x33, 0x47, 0x10, 0x6d, 0xf7, 0xa1, 0xc4,
+ 0x57, 0x2a, 0x2d, 0x2c, 0x01, 0x44, 0x28, 0x0b, 0x26, 0x97, 0x0b, 0x30,
+ 0xe7, 0x44, 0xd8, 0xe1, 0x42, 0x70, 0x32, 0xb3,
+};
+static const unsigned char kat2356_nonce[] = {0};
+static const unsigned char kat2356_persstr[] = {0};
+static const unsigned char kat2356_entropyinreseed[] = {
+ 0x4c, 0x56, 0xb8, 0x4e, 0x97, 0xa3, 0x75, 0xd8, 0x32, 0xe9, 0xd7, 0x41,
+ 0x3b, 0xa3, 0xc6, 0x20, 0xeb, 0xfd, 0x0e, 0x6b, 0x10, 0x61, 0xed, 0x2b,
+ 0x59, 0x36, 0xe6, 0xe6, 0xda, 0x9d, 0xae, 0x99,
+};
+static const unsigned char kat2356_addinreseed[] = {
+ 0xa4, 0xe9, 0x43, 0x3b, 0xf4, 0xb9, 0x48, 0xd3, 0x60, 0x3b, 0x5d, 0xac,
+ 0xb1, 0x5a, 0x66, 0xd1, 0xa2, 0x49, 0x10, 0x4d, 0x39, 0x20, 0x55, 0x39,
+ 0x25, 0x53, 0xf4, 0x8e, 0x92, 0x67, 0xb3, 0xe8,
+};
+static const unsigned char kat2356_addin0[] = {
+ 0x62, 0x4c, 0xc3, 0x86, 0xd7, 0x20, 0x4a, 0x70, 0xab, 0x42, 0x27, 0x74,
+ 0x8c, 0xe2, 0x06, 0xb0, 0xad, 0xee, 0x59, 0xb1, 0x9e, 0x42, 0xdf, 0x52,
+ 0xe8, 0xc8, 0xca, 0x06, 0xb8, 0x81, 0xce, 0x60,
+};
+static const unsigned char kat2356_addin1[] = {
+ 0xb0, 0x24, 0xf8, 0xa6, 0x09, 0xe4, 0xa0, 0xe0, 0x21, 0x4a, 0x22, 0x9d,
+ 0xcf, 0x65, 0xcf, 0xfd, 0xc2, 0x50, 0x8b, 0x4d, 0x19, 0x2c, 0x6f, 0x3c,
+ 0xb1, 0x64, 0x17, 0x60, 0xfa, 0xf8, 0x11, 0x31,
+};
+static const unsigned char kat2356_retbits[] = {
+ 0xa5, 0x0e, 0x16, 0x43, 0x26, 0x48, 0x93, 0xec, 0x49, 0xbd, 0xb0, 0xb1,
+ 0xd9, 0xfd, 0x7b, 0x53, 0x25, 0x61, 0xf8, 0x32, 0x56, 0xfb, 0x34, 0x21,
+ 0xb1, 0x30, 0x30, 0xdf, 0xdb, 0x3f, 0xf2, 0xe0, 0xab, 0xb6, 0x82, 0x82,
+ 0xf5, 0x75, 0x74, 0x18, 0xcd, 0x1f, 0xfb, 0x16, 0x93, 0x24, 0x55, 0xed,
+ 0x03, 0x8a, 0x85, 0x65, 0xc3, 0x80, 0xc5, 0x81, 0xeb, 0x5d, 0x90, 0xb0,
+ 0x8f, 0x06, 0xbb, 0x13,
+};
+static const struct drbg_kat_pr_false kat2356_t = {
+ 0, kat2356_entropyin, kat2356_nonce, kat2356_persstr,
+ kat2356_entropyinreseed, kat2356_addinreseed, kat2356_addin0,
+ kat2356_addin1, kat2356_retbits
+};
+static const struct drbg_kat kat2356 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2356_t
+};
+
+static const unsigned char kat2357_entropyin[] = {
+ 0xf1, 0x90, 0xfc, 0x84, 0x71, 0x3f, 0x16, 0x33, 0x7e, 0x9b, 0x96, 0xdf,
+ 0x5b, 0x1f, 0x8a, 0x65, 0x87, 0xda, 0x6b, 0x0f, 0xcf, 0x07, 0xf5, 0xef,
+ 0xee, 0xed, 0xe0, 0x04, 0x03, 0x21, 0x47, 0x62,
+};
+static const unsigned char kat2357_nonce[] = {0};
+static const unsigned char kat2357_persstr[] = {0};
+static const unsigned char kat2357_entropyinreseed[] = {
+ 0xb9, 0xb5, 0x85, 0x94, 0x83, 0x9f, 0x11, 0x7b, 0x7b, 0x4b, 0x40, 0x13,
+ 0x69, 0x11, 0x50, 0x1a, 0x60, 0x3c, 0x78, 0x20, 0x71, 0xa6, 0xbb, 0x05,
+ 0x71, 0xf4, 0x4e, 0x84, 0xfd, 0x5b, 0x7d, 0x1b,
+};
+static const unsigned char kat2357_addinreseed[] = {
+ 0xe5, 0xc2, 0x90, 0x91, 0x0d, 0x48, 0x41, 0x1a, 0xf2, 0x29, 0x23, 0xc6,
+ 0x8b, 0x1a, 0xc6, 0x11, 0xd6, 0x4f, 0x8d, 0x88, 0x92, 0x01, 0x53, 0x69,
+ 0x22, 0xa2, 0xe2, 0x29, 0xe6, 0xbe, 0x27, 0xe3,
+};
+static const unsigned char kat2357_addin0[] = {
+ 0xc7, 0xa3, 0xee, 0x13, 0xe2, 0x8e, 0xf7, 0x1e, 0xa5, 0xb2, 0x1c, 0x51,
+ 0x3f, 0xdb, 0x57, 0x01, 0xcc, 0xa6, 0xcd, 0x55, 0xbf, 0x3c, 0x2e, 0xc8,
+ 0x5c, 0x90, 0xd1, 0xea, 0x6e, 0xba, 0x5b, 0x28,
+};
+static const unsigned char kat2357_addin1[] = {
+ 0xce, 0xd4, 0xba, 0xd6, 0xc4, 0xb2, 0xff, 0xd2, 0x2c, 0x1a, 0xd1, 0x6a,
+ 0x31, 0x4c, 0x65, 0x88, 0x69, 0x2a, 0xfe, 0x2a, 0xbf, 0xff, 0x20, 0xfa,
+ 0xe5, 0xa9, 0xde, 0xb7, 0xaa, 0x9f, 0x03, 0xb3,
+};
+static const unsigned char kat2357_retbits[] = {
+ 0xf3, 0xad, 0xa6, 0xbc, 0x28, 0x8c, 0xbc, 0x98, 0xe4, 0x15, 0x42, 0xfe,
+ 0xc9, 0x89, 0xf2, 0xc2, 0x62, 0xd5, 0x68, 0xd9, 0x19, 0x8a, 0xb6, 0x29,
+ 0x64, 0x47, 0x71, 0xcd, 0x13, 0x02, 0xfe, 0x28, 0x56, 0x19, 0xb5, 0x80,
+ 0xc9, 0xfd, 0x42, 0xc5, 0xf0, 0x58, 0x17, 0x87, 0xc9, 0x02, 0xbc, 0x07,
+ 0xda, 0x1b, 0x5f, 0x3d, 0xbf, 0x34, 0xd8, 0x55, 0x0b, 0x8a, 0x71, 0x73,
+ 0x9d, 0x4a, 0xfa, 0x9d,
+};
+static const struct drbg_kat_pr_false kat2357_t = {
+ 1, kat2357_entropyin, kat2357_nonce, kat2357_persstr,
+ kat2357_entropyinreseed, kat2357_addinreseed, kat2357_addin0,
+ kat2357_addin1, kat2357_retbits
+};
+static const struct drbg_kat kat2357 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2357_t
+};
+
+static const unsigned char kat2358_entropyin[] = {
+ 0xd8, 0xad, 0xbb, 0xd7, 0x93, 0x35, 0xed, 0x67, 0x98, 0xd2, 0xb6, 0x6a,
+ 0x2e, 0xd1, 0xbd, 0x06, 0x8b, 0xfb, 0x69, 0xe2, 0xfc, 0xc1, 0xc0, 0x20,
+ 0x73, 0xf6, 0x0a, 0x09, 0x20, 0x08, 0xc8, 0x80,
+};
+static const unsigned char kat2358_nonce[] = {0};
+static const unsigned char kat2358_persstr[] = {0};
+static const unsigned char kat2358_entropyinreseed[] = {
+ 0x13, 0x90, 0x34, 0x30, 0x42, 0xb1, 0xff, 0xa4, 0xab, 0x4e, 0xb5, 0xfc,
+ 0xfb, 0x8b, 0xc7, 0x24, 0x7e, 0xc5, 0x61, 0xc5, 0x2e, 0x47, 0x37, 0xaf,
+ 0xd7, 0x55, 0xba, 0x06, 0x42, 0x8d, 0xb2, 0x16,
+};
+static const unsigned char kat2358_addinreseed[] = {
+ 0xa1, 0x08, 0x09, 0x7a, 0xa7, 0x2c, 0xf2, 0xf6, 0x7b, 0x72, 0x55, 0x8a,
+ 0x83, 0xdc, 0xa4, 0x86, 0x25, 0x0d, 0x26, 0x5e, 0x74, 0x8a, 0xe6, 0x80,
+ 0x81, 0x5c, 0xba, 0xea, 0x9b, 0x04, 0x35, 0xb7,
+};
+static const unsigned char kat2358_addin0[] = {
+ 0x65, 0x15, 0x45, 0x61, 0xff, 0xe9, 0x50, 0xe1, 0xbf, 0xb3, 0xad, 0xc1,
+ 0x1e, 0xbe, 0x73, 0x2f, 0x66, 0x08, 0xe0, 0xbd, 0x79, 0xdf, 0x4c, 0x38,
+ 0x4f, 0x8f, 0x04, 0xa2, 0x86, 0x5b, 0xc7, 0xed,
+};
+static const unsigned char kat2358_addin1[] = {
+ 0xe1, 0x72, 0xbc, 0x2a, 0x93, 0x41, 0x22, 0xec, 0x9d, 0xb5, 0x56, 0x67,
+ 0xf4, 0xd4, 0x47, 0x4f, 0xc6, 0x67, 0xfb, 0x56, 0xb3, 0x43, 0xc0, 0x6f,
+ 0x13, 0xd8, 0x33, 0x00, 0x6a, 0xcb, 0xbe, 0x38,
+};
+static const unsigned char kat2358_retbits[] = {
+ 0x8b, 0x29, 0xb1, 0x1b, 0x59, 0xb4, 0x90, 0xec, 0x84, 0xa2, 0x55, 0x3c,
+ 0xef, 0x26, 0x89, 0xf1, 0x4f, 0xeb, 0xb7, 0xa2, 0x81, 0x90, 0x41, 0xf5,
+ 0x1f, 0xb8, 0x2b, 0x24, 0x65, 0x2a, 0x4b, 0xd5, 0xec, 0x80, 0xd0, 0xd0,
+ 0x9c, 0x98, 0x31, 0xa7, 0x3d, 0x03, 0x3f, 0x8c, 0xe4, 0x35, 0xee, 0x72,
+ 0xcd, 0x22, 0x61, 0x95, 0xd7, 0x7e, 0xe0, 0xb2, 0x2b, 0x51, 0x29, 0x5b,
+ 0xb4, 0x4a, 0x17, 0xd1,
+};
+static const struct drbg_kat_pr_false kat2358_t = {
+ 2, kat2358_entropyin, kat2358_nonce, kat2358_persstr,
+ kat2358_entropyinreseed, kat2358_addinreseed, kat2358_addin0,
+ kat2358_addin1, kat2358_retbits
+};
+static const struct drbg_kat kat2358 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2358_t
+};
+
+static const unsigned char kat2359_entropyin[] = {
+ 0x69, 0xe1, 0xff, 0x29, 0xac, 0xba, 0x36, 0xe1, 0x9e, 0xa1, 0x89, 0x3c,
+ 0xfa, 0xc8, 0x89, 0xd1, 0x89, 0x02, 0x22, 0xbf, 0x0c, 0x84, 0xc1, 0x5b,
+ 0x9f, 0xee, 0x62, 0x52, 0x39, 0x3d, 0x0c, 0xbe,
+};
+static const unsigned char kat2359_nonce[] = {0};
+static const unsigned char kat2359_persstr[] = {0};
+static const unsigned char kat2359_entropyinreseed[] = {
+ 0xc1, 0xe5, 0xa2, 0x1d, 0x4a, 0x52, 0x45, 0x9c, 0x08, 0x52, 0x60, 0x17,
+ 0x7b, 0x0e, 0xee, 0x87, 0x13, 0xdf, 0x05, 0x8d, 0x70, 0x6f, 0x45, 0xf9,
+ 0xb6, 0x16, 0xf4, 0x90, 0x26, 0x16, 0x9e, 0x0a,
+};
+static const unsigned char kat2359_addinreseed[] = {
+ 0xe9, 0x30, 0xa2, 0xa1, 0x01, 0xde, 0x4f, 0xda, 0x42, 0x87, 0x8f, 0xd1,
+ 0x91, 0xf7, 0x33, 0x74, 0xc1, 0x20, 0x54, 0x6a, 0x88, 0xc8, 0x42, 0xfd,
+ 0xf6, 0x45, 0xc3, 0xeb, 0x11, 0xc0, 0x4b, 0xec,
+};
+static const unsigned char kat2359_addin0[] = {
+ 0xd8, 0xdd, 0x0e, 0x74, 0x9f, 0x6c, 0xc4, 0x9a, 0x60, 0x49, 0xe9, 0x51,
+ 0x4c, 0x5c, 0xe6, 0x09, 0x30, 0x2f, 0x56, 0x04, 0x0e, 0x38, 0x3f, 0xf5,
+ 0x8b, 0x8b, 0x31, 0x86, 0x9a, 0xb6, 0xa4, 0xe4,
+};
+static const unsigned char kat2359_addin1[] = {
+ 0x07, 0x86, 0xf9, 0xe0, 0xad, 0x87, 0x76, 0x4e, 0xa6, 0x69, 0xaa, 0x8b,
+ 0x1b, 0x76, 0x85, 0xfe, 0xb7, 0x7e, 0x30, 0x94, 0x34, 0x36, 0x02, 0xc7,
+ 0x3f, 0x68, 0xb8, 0x4e, 0x48, 0xfc, 0x4d, 0xaf,
+};
+static const unsigned char kat2359_retbits[] = {
+ 0x4e, 0x6a, 0x71, 0x34, 0xf4, 0x95, 0x72, 0xfd, 0x08, 0xce, 0xc8, 0x5c,
+ 0x8b, 0x90, 0x13, 0x68, 0x48, 0x82, 0x4c, 0xd3, 0x14, 0x2b, 0x36, 0x1a,
+ 0xe7, 0x0d, 0xbb, 0x80, 0xa3, 0x3a, 0x54, 0x49, 0x88, 0x12, 0xe7, 0x34,
+ 0xa8, 0x7c, 0x4d, 0x2d, 0xb9, 0xb8, 0xc1, 0x77, 0x6d, 0x6d, 0xa7, 0x59,
+ 0x3f, 0x98, 0xa5, 0xfb, 0x1d, 0xf9, 0x89, 0x2a, 0x3f, 0xdd, 0x6f, 0x12,
+ 0xb5, 0x53, 0xa5, 0xe7,
+};
+static const struct drbg_kat_pr_false kat2359_t = {
+ 3, kat2359_entropyin, kat2359_nonce, kat2359_persstr,
+ kat2359_entropyinreseed, kat2359_addinreseed, kat2359_addin0,
+ kat2359_addin1, kat2359_retbits
+};
+static const struct drbg_kat kat2359 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2359_t
+};
+
+static const unsigned char kat2360_entropyin[] = {
+ 0xe5, 0x66, 0x7c, 0x09, 0x01, 0x32, 0x40, 0xd7, 0xde, 0xd3, 0xed, 0xa9,
+ 0xce, 0x15, 0x77, 0x7e, 0x0a, 0x1d, 0x08, 0xe2, 0xfa, 0x13, 0x80, 0x0e,
+ 0xc2, 0xab, 0x17, 0x5e, 0x35, 0x12, 0x9e, 0x2a,
+};
+static const unsigned char kat2360_nonce[] = {0};
+static const unsigned char kat2360_persstr[] = {0};
+static const unsigned char kat2360_entropyinreseed[] = {
+ 0xdd, 0xe3, 0x65, 0x96, 0xca, 0xf0, 0x7b, 0xae, 0xb4, 0x2c, 0x6a, 0x73,
+ 0xc7, 0xb7, 0x21, 0xa6, 0x37, 0x13, 0x2c, 0xdc, 0x78, 0xe0, 0x68, 0xf7,
+ 0x0f, 0x47, 0xc7, 0x70, 0x28, 0x57, 0xa9, 0x6c,
+};
+static const unsigned char kat2360_addinreseed[] = {
+ 0xd5, 0x3a, 0xea, 0x10, 0x3a, 0x37, 0x60, 0x04, 0x09, 0x15, 0xd8, 0x68,
+ 0x4f, 0xcf, 0xff, 0xc7, 0xd7, 0x77, 0xa8, 0x7b, 0x0c, 0x23, 0x16, 0x9c,
+ 0x4d, 0xea, 0xc0, 0xb6, 0x86, 0xec, 0x66, 0x5a,
+};
+static const unsigned char kat2360_addin0[] = {
+ 0x8b, 0xd6, 0x7a, 0x30, 0xa8, 0xc3, 0x7b, 0x95, 0x6d, 0x20, 0xae, 0x76,
+ 0x19, 0x90, 0x87, 0xee, 0x4b, 0x9a, 0x7f, 0x5e, 0x56, 0xf5, 0xe6, 0x31,
+ 0xc9, 0xc5, 0x17, 0x0a, 0x9b, 0x2c, 0x51, 0xd0,
+};
+static const unsigned char kat2360_addin1[] = {
+ 0x32, 0x5b, 0xc3, 0x38, 0x6f, 0xcb, 0x93, 0xc3, 0x8a, 0x20, 0x88, 0xb0,
+ 0x4b, 0xe8, 0xbd, 0xc0, 0x08, 0x0c, 0x51, 0xba, 0x7e, 0xc1, 0x87, 0x93,
+ 0xfc, 0xc4, 0x6e, 0x0d, 0x41, 0xc7, 0xa5, 0xc9,
+};
+static const unsigned char kat2360_retbits[] = {
+ 0x06, 0x91, 0xa7, 0x1b, 0x34, 0x7f, 0x20, 0x09, 0x48, 0x81, 0xf0, 0xf1,
+ 0x7f, 0x0e, 0xf6, 0x44, 0x87, 0x6b, 0x75, 0xcf, 0x8c, 0x41, 0xda, 0x01,
+ 0x52, 0x4c, 0x63, 0x62, 0xc4, 0x1b, 0xec, 0x53, 0xb7, 0x47, 0x9e, 0xb3,
+ 0x91, 0xdb, 0xe6, 0x33, 0x86, 0xa3, 0xab, 0x4d, 0x38, 0xf7, 0x44, 0xbb,
+ 0x26, 0xcd, 0x6f, 0x25, 0x75, 0x06, 0x40, 0xb7, 0x41, 0xed, 0x1b, 0x8b,
+ 0xcf, 0x57, 0x10, 0x88,
+};
+static const struct drbg_kat_pr_false kat2360_t = {
+ 4, kat2360_entropyin, kat2360_nonce, kat2360_persstr,
+ kat2360_entropyinreseed, kat2360_addinreseed, kat2360_addin0,
+ kat2360_addin1, kat2360_retbits
+};
+static const struct drbg_kat kat2360 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2360_t
+};
+
+static const unsigned char kat2361_entropyin[] = {
+ 0xde, 0x44, 0x11, 0xd7, 0x47, 0x2a, 0x27, 0x6d, 0xde, 0x6f, 0xc3, 0xe1,
+ 0xbf, 0xbb, 0x66, 0x2f, 0xd0, 0x4d, 0x1b, 0xe1, 0xfd, 0x7b, 0xe5, 0x91,
+ 0xbc, 0xf6, 0x29, 0x48, 0x6b, 0xcd, 0x3d, 0x32,
+};
+static const unsigned char kat2361_nonce[] = {0};
+static const unsigned char kat2361_persstr[] = {0};
+static const unsigned char kat2361_entropyinreseed[] = {
+ 0x25, 0xfb, 0x6a, 0xe4, 0x9a, 0xe3, 0xa7, 0x12, 0x5e, 0xfd, 0xf4, 0xc5,
+ 0xed, 0x92, 0xf7, 0x87, 0xba, 0xc2, 0xbe, 0xdd, 0x88, 0x59, 0x5b, 0xd7,
+ 0xb5, 0x5f, 0xae, 0xb7, 0xb9, 0x5e, 0xc7, 0xf8,
+};
+static const unsigned char kat2361_addinreseed[] = {
+ 0x16, 0xf3, 0x98, 0x82, 0xd9, 0x48, 0x29, 0x3a, 0x74, 0x29, 0xae, 0x1f,
+ 0xf2, 0x0b, 0x51, 0x9f, 0x28, 0xf7, 0xe0, 0x22, 0x15, 0x02, 0x6b, 0x96,
+ 0xa2, 0xc0, 0x4e, 0x3c, 0xef, 0x56, 0x00, 0x4d,
+};
+static const unsigned char kat2361_addin0[] = {
+ 0xda, 0x63, 0x2e, 0xeb, 0x6f, 0x32, 0x6b, 0x0a, 0xe5, 0x5e, 0x18, 0xc6,
+ 0x9d, 0xb5, 0xc7, 0x97, 0x1b, 0xf9, 0x67, 0x39, 0xfa, 0xf1, 0xa7, 0x3c,
+ 0x15, 0x23, 0x92, 0xd5, 0xa6, 0xee, 0xff, 0xc5,
+};
+static const unsigned char kat2361_addin1[] = {
+ 0x00, 0x55, 0xb4, 0xcd, 0xd1, 0x09, 0x3b, 0x1b, 0xe3, 0x20, 0x9e, 0xb6,
+ 0x56, 0x19, 0x37, 0x9d, 0x58, 0xc2, 0xf2, 0xe9, 0x18, 0xb0, 0x53, 0xf2,
+ 0xc0, 0x7c, 0xe6, 0x47, 0xa6, 0x79, 0x78, 0x20,
+};
+static const unsigned char kat2361_retbits[] = {
+ 0xc0, 0x23, 0x2b, 0x72, 0x08, 0x78, 0x44, 0xcf, 0x62, 0xd3, 0x00, 0x4a,
+ 0x59, 0xae, 0x36, 0x85, 0xaf, 0x71, 0x56, 0x57, 0x54, 0x7b, 0x91, 0xbd,
+ 0xd5, 0x41, 0x16, 0x57, 0xca, 0xab, 0x20, 0xeb, 0x76, 0x6b, 0x04, 0x50,
+ 0x61, 0x06, 0xbc, 0x4b, 0x9f, 0x7a, 0x55, 0x40, 0xdd, 0xc0, 0xa3, 0x83,
+ 0x77, 0xaf, 0x0c, 0x28, 0xc7, 0xf4, 0x0e, 0x84, 0xb7, 0x68, 0x11, 0x43,
+ 0x17, 0x27, 0x9a, 0xde,
+};
+static const struct drbg_kat_pr_false kat2361_t = {
+ 5, kat2361_entropyin, kat2361_nonce, kat2361_persstr,
+ kat2361_entropyinreseed, kat2361_addinreseed, kat2361_addin0,
+ kat2361_addin1, kat2361_retbits
+};
+static const struct drbg_kat kat2361 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2361_t
+};
+
+static const unsigned char kat2362_entropyin[] = {
+ 0x61, 0xef, 0x80, 0xe8, 0x37, 0x2b, 0x80, 0x19, 0x5a, 0x4a, 0x16, 0xd0,
+ 0x5a, 0x73, 0x73, 0x12, 0xa7, 0xd5, 0x67, 0x68, 0x0a, 0x83, 0x4e, 0xf7,
+ 0x0a, 0x7d, 0x6a, 0xdb, 0x9d, 0x01, 0x64, 0xa4,
+};
+static const unsigned char kat2362_nonce[] = {0};
+static const unsigned char kat2362_persstr[] = {0};
+static const unsigned char kat2362_entropyinreseed[] = {
+ 0xd7, 0x9f, 0x8c, 0xbb, 0x3f, 0xfd, 0xa9, 0x58, 0x31, 0x51, 0xb9, 0x95,
+ 0x07, 0xeb, 0x85, 0x6b, 0x04, 0x91, 0x13, 0x35, 0x9e, 0x3b, 0xe0, 0x0d,
+ 0x4f, 0x67, 0x7c, 0x61, 0xc2, 0x7d, 0x77, 0x29,
+};
+static const unsigned char kat2362_addinreseed[] = {
+ 0xb9, 0x57, 0x10, 0x77, 0xcd, 0x2a, 0xe0, 0x0f, 0xb1, 0xc3, 0x21, 0x5d,
+ 0x09, 0x17, 0xc8, 0x3f, 0x8f, 0xa8, 0xaa, 0x47, 0x1b, 0xd6, 0xe0, 0x4a,
+ 0xdc, 0x61, 0x27, 0x87, 0xac, 0x5e, 0x05, 0xc8,
+};
+static const unsigned char kat2362_addin0[] = {
+ 0xdc, 0x6e, 0x9e, 0x7f, 0x58, 0x6a, 0xb6, 0x31, 0xd2, 0x91, 0xb3, 0x47,
+ 0x40, 0x74, 0x30, 0xd8, 0x89, 0x14, 0x7d, 0x27, 0x32, 0xd0, 0x17, 0xff,
+ 0xb5, 0xba, 0xfd, 0x3e, 0x6f, 0x44, 0x9d, 0x96,
+};
+static const unsigned char kat2362_addin1[] = {
+ 0x7f, 0xe5, 0x92, 0x2e, 0x85, 0xe5, 0x19, 0x90, 0xef, 0xa6, 0xd3, 0x99,
+ 0x0e, 0x59, 0xd8, 0x2e, 0x15, 0x80, 0xcd, 0xec, 0x91, 0xb5, 0x55, 0x0c,
+ 0x10, 0x53, 0xfd, 0x61, 0x41, 0x7d, 0x44, 0xf4,
+};
+static const unsigned char kat2362_retbits[] = {
+ 0x61, 0x5c, 0xbe, 0x15, 0x0c, 0xb8, 0x5d, 0xb0, 0x42, 0x61, 0x42, 0xbd,
+ 0x08, 0x84, 0xa6, 0x74, 0x47, 0xeb, 0x4f, 0xfa, 0xa7, 0x59, 0xd4, 0xc3,
+ 0x0c, 0xa5, 0xbe, 0xd2, 0xdd, 0x1c, 0xad, 0x86, 0x9c, 0xb0, 0x1e, 0x57,
+ 0x85, 0x77, 0xc4, 0xa0, 0x64, 0xd5, 0x9d, 0x55, 0x0e, 0xf4, 0x7f, 0x7e,
+ 0xe5, 0x94, 0xfa, 0xc2, 0xbd, 0x02, 0xf8, 0x7b, 0x93, 0x30, 0x17, 0xa9,
+ 0x8b, 0x15, 0x9d, 0xab,
+};
+static const struct drbg_kat_pr_false kat2362_t = {
+ 6, kat2362_entropyin, kat2362_nonce, kat2362_persstr,
+ kat2362_entropyinreseed, kat2362_addinreseed, kat2362_addin0,
+ kat2362_addin1, kat2362_retbits
+};
+static const struct drbg_kat kat2362 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2362_t
+};
+
+static const unsigned char kat2363_entropyin[] = {
+ 0x92, 0x74, 0x71, 0x62, 0x79, 0xd0, 0xc6, 0x06, 0x7b, 0x95, 0x5f, 0x30,
+ 0x62, 0x7b, 0xa1, 0x84, 0x27, 0x62, 0x02, 0x17, 0x02, 0x68, 0x30, 0x5a,
+ 0xce, 0x84, 0x66, 0xf9, 0x3b, 0xde, 0x9e, 0x35,
+};
+static const unsigned char kat2363_nonce[] = {0};
+static const unsigned char kat2363_persstr[] = {0};
+static const unsigned char kat2363_entropyinreseed[] = {
+ 0x71, 0x08, 0x6e, 0xed, 0x40, 0x3d, 0x6c, 0x22, 0x1b, 0xe2, 0xc5, 0xeb,
+ 0x06, 0x41, 0xec, 0xac, 0x4f, 0x78, 0x7f, 0x14, 0x47, 0xad, 0x90, 0x86,
+ 0x41, 0xcf, 0x37, 0xe4, 0x01, 0x53, 0x41, 0xad,
+};
+static const unsigned char kat2363_addinreseed[] = {
+ 0x99, 0xde, 0x60, 0x6c, 0x0a, 0xfa, 0x62, 0x39, 0xa3, 0xe3, 0x7b, 0x8c,
+ 0x37, 0xea, 0x37, 0xe2, 0xce, 0xbc, 0xea, 0x7c, 0x0b, 0xee, 0x31, 0x7c,
+ 0x63, 0x83, 0x6f, 0x3a, 0x85, 0x5f, 0xb8, 0x48,
+};
+static const unsigned char kat2363_addin0[] = {
+ 0x26, 0xad, 0xd2, 0xa6, 0x86, 0x89, 0x33, 0xac, 0x40, 0x21, 0x2f, 0xad,
+ 0x03, 0xee, 0x33, 0x56, 0x1b, 0xd1, 0x12, 0x12, 0xab, 0x93, 0x41, 0x4a,
+ 0x8e, 0x57, 0xc1, 0x72, 0x13, 0x8e, 0x57, 0x18,
+};
+static const unsigned char kat2363_addin1[] = {
+ 0x83, 0x34, 0xfe, 0xec, 0x63, 0x76, 0x5e, 0x7a, 0x23, 0x17, 0x5f, 0x6b,
+ 0xba, 0x6f, 0x3e, 0x77, 0xe1, 0x58, 0xa7, 0x33, 0x1c, 0x37, 0x9a, 0xf9,
+ 0x6b, 0xa9, 0xc0, 0x7b, 0x35, 0xa7, 0xb8, 0x64,
+};
+static const unsigned char kat2363_retbits[] = {
+ 0x91, 0x23, 0xd4, 0x13, 0x75, 0xb1, 0xc7, 0x84, 0xf5, 0xcb, 0x67, 0x16,
+ 0x0c, 0x81, 0x67, 0x21, 0xdb, 0xd0, 0x5c, 0xeb, 0xfd, 0xe1, 0xae, 0xea,
+ 0x5b, 0xe2, 0x4c, 0xed, 0xc4, 0x9b, 0xf3, 0x50, 0x18, 0xa2, 0x53, 0xf7,
+ 0x23, 0x6c, 0x36, 0x2d, 0x92, 0x92, 0x90, 0x96, 0xdc, 0xa9, 0x5a, 0x07,
+ 0xa4, 0xd0, 0x1d, 0xfb, 0x15, 0x9b, 0x8f, 0x28, 0x05, 0x56, 0x7d, 0x57,
+ 0xa0, 0x69, 0x04, 0xff,
+};
+static const struct drbg_kat_pr_false kat2363_t = {
+ 7, kat2363_entropyin, kat2363_nonce, kat2363_persstr,
+ kat2363_entropyinreseed, kat2363_addinreseed, kat2363_addin0,
+ kat2363_addin1, kat2363_retbits
+};
+static const struct drbg_kat kat2363 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2363_t
+};
+
+static const unsigned char kat2364_entropyin[] = {
+ 0x87, 0xbc, 0x9e, 0x07, 0xb0, 0x0c, 0x20, 0x2f, 0x00, 0x26, 0x4f, 0x4e,
+ 0xd0, 0x9a, 0x41, 0xa8, 0x7f, 0x3b, 0xc7, 0x9a, 0x46, 0x7c, 0xf6, 0x74,
+ 0x6b, 0x0a, 0x79, 0x2d, 0x3d, 0xe1, 0xf3, 0xd2,
+};
+static const unsigned char kat2364_nonce[] = {0};
+static const unsigned char kat2364_persstr[] = {0};
+static const unsigned char kat2364_entropyinreseed[] = {
+ 0x5d, 0x06, 0xe5, 0x1d, 0xcd, 0x29, 0x2b, 0xf5, 0xc6, 0x19, 0x7b, 0x72,
+ 0x71, 0xa4, 0x47, 0xfb, 0x5d, 0x8f, 0xfb, 0xc8, 0x4a, 0x89, 0x61, 0x14,
+ 0xc1, 0x42, 0xd2, 0x04, 0x12, 0xf1, 0x14, 0xdf,
+};
+static const unsigned char kat2364_addinreseed[] = {
+ 0x2d, 0xd5, 0x3c, 0x78, 0x15, 0x60, 0xda, 0x3f, 0x01, 0xa1, 0x3c, 0xa7,
+ 0xb0, 0x73, 0xf0, 0x88, 0xd1, 0xe7, 0x54, 0xb9, 0xe8, 0xcc, 0x97, 0xbd,
+ 0x4d, 0xe2, 0xa1, 0xd6, 0x8a, 0x34, 0x0b, 0x6f,
+};
+static const unsigned char kat2364_addin0[] = {
+ 0x7b, 0x5a, 0xf2, 0x54, 0xbe, 0xfe, 0xad, 0x4f, 0x53, 0x1b, 0xda, 0xe0,
+ 0x9e, 0x7f, 0x3c, 0x98, 0xe7, 0xa6, 0x6a, 0x2d, 0xd2, 0x43, 0xf9, 0xba,
+ 0x55, 0x67, 0x0c, 0xd5, 0xf4, 0x83, 0xd8, 0x9b,
+};
+static const unsigned char kat2364_addin1[] = {
+ 0x7a, 0x7b, 0x44, 0xec, 0x90, 0x06, 0xbf, 0xe4, 0x02, 0x78, 0x25, 0x96,
+ 0xd5, 0xa5, 0x00, 0xd4, 0x58, 0x12, 0xd2, 0x09, 0x65, 0x1c, 0x3e, 0x26,
+ 0x0d, 0x80, 0x49, 0x27, 0x0c, 0xc9, 0xed, 0x51,
+};
+static const unsigned char kat2364_retbits[] = {
+ 0x97, 0x2c, 0x6e, 0x29, 0x19, 0xbc, 0xc5, 0x82, 0x7b, 0xe7, 0x43, 0x5d,
+ 0xbf, 0xe8, 0x6b, 0xe2, 0x57, 0x44, 0x66, 0x1d, 0xef, 0x51, 0x34, 0x7e,
+ 0xc6, 0x75, 0x47, 0xf3, 0xd8, 0x74, 0x89, 0x68, 0x7b, 0x79, 0xfc, 0x7d,
+ 0xae, 0xfd, 0x9b, 0xb8, 0x25, 0x3c, 0x4f, 0x8f, 0x58, 0x86, 0xca, 0x93,
+ 0x3a, 0x03, 0x82, 0x5f, 0x8d, 0xb6, 0xca, 0x7f, 0x07, 0x8c, 0x6b, 0xfd,
+ 0xaa, 0x77, 0xe8, 0xc4,
+};
+static const struct drbg_kat_pr_false kat2364_t = {
+ 8, kat2364_entropyin, kat2364_nonce, kat2364_persstr,
+ kat2364_entropyinreseed, kat2364_addinreseed, kat2364_addin0,
+ kat2364_addin1, kat2364_retbits
+};
+static const struct drbg_kat kat2364 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2364_t
+};
+
+static const unsigned char kat2365_entropyin[] = {
+ 0xdd, 0xfe, 0xb8, 0x87, 0xc7, 0xee, 0xe3, 0xbb, 0x4e, 0x9e, 0x34, 0x79,
+ 0xbd, 0xaa, 0x09, 0x9a, 0xd5, 0x84, 0xce, 0x4d, 0xf4, 0xfc, 0x2c, 0x68,
+ 0xc1, 0x9f, 0x3e, 0xb9, 0x8f, 0x60, 0xbd, 0x62,
+};
+static const unsigned char kat2365_nonce[] = {0};
+static const unsigned char kat2365_persstr[] = {0};
+static const unsigned char kat2365_entropyinreseed[] = {
+ 0x14, 0x89, 0x3d, 0x56, 0x42, 0xb8, 0xc4, 0xef, 0x27, 0x89, 0xee, 0x62,
+ 0xbb, 0xc7, 0xef, 0xa1, 0xc7, 0xc8, 0x24, 0xb8, 0x52, 0xe5, 0xe3, 0x20,
+ 0x19, 0x11, 0xb1, 0x22, 0x8b, 0x1e, 0xc5, 0x34,
+};
+static const unsigned char kat2365_addinreseed[] = {
+ 0xcc, 0x6c, 0x7c, 0xf7, 0x96, 0x6c, 0x71, 0x8b, 0x0f, 0xc9, 0x8a, 0x77,
+ 0x30, 0xbd, 0xfd, 0xec, 0xef, 0xef, 0x47, 0x12, 0xed, 0x4b, 0xb0, 0xc5,
+ 0xcc, 0x3d, 0x59, 0x23, 0x44, 0x36, 0xab, 0x8f,
+};
+static const unsigned char kat2365_addin0[] = {
+ 0x98, 0x2d, 0xa5, 0xa4, 0x19, 0xb9, 0x45, 0x6a, 0x66, 0xf3, 0xa7, 0x60,
+ 0x3b, 0x42, 0x26, 0x0a, 0x9c, 0x4c, 0x90, 0xb7, 0xb9, 0x6c, 0x20, 0xf8,
+ 0x98, 0xd1, 0x3a, 0xe6, 0x4a, 0x1b, 0xc3, 0xa6,
+};
+static const unsigned char kat2365_addin1[] = {
+ 0xa9, 0x73, 0xb8, 0x52, 0xc1, 0x35, 0xdf, 0x72, 0x64, 0x45, 0x36, 0x48,
+ 0xf0, 0x98, 0xbc, 0xde, 0x47, 0x0a, 0x84, 0xd1, 0x9f, 0x64, 0x1b, 0x5b,
+ 0xef, 0xf0, 0x7c, 0xa6, 0x31, 0xb9, 0xa7, 0xc8,
+};
+static const unsigned char kat2365_retbits[] = {
+ 0x8c, 0x30, 0x54, 0xa6, 0x9e, 0xe9, 0x00, 0x39, 0xb7, 0xcd, 0x6b, 0xb8,
+ 0x0a, 0x14, 0x60, 0x8a, 0x36, 0x6a, 0x3d, 0xb7, 0xce, 0x49, 0xaa, 0x9b,
+ 0xdf, 0xf1, 0xd0, 0x63, 0xc5, 0x4d, 0x9d, 0x6b, 0xe1, 0x1f, 0xe7, 0xb2,
+ 0x13, 0xce, 0x3b, 0xa2, 0x04, 0x43, 0xef, 0xd3, 0x84, 0xcc, 0xf0, 0x0f,
+ 0xec, 0xcc, 0x58, 0xef, 0x99, 0x28, 0x82, 0xc6, 0x65, 0x69, 0x85, 0xa3,
+ 0x1f, 0x30, 0x09, 0x69,
+};
+static const struct drbg_kat_pr_false kat2365_t = {
+ 9, kat2365_entropyin, kat2365_nonce, kat2365_persstr,
+ kat2365_entropyinreseed, kat2365_addinreseed, kat2365_addin0,
+ kat2365_addin1, kat2365_retbits
+};
+static const struct drbg_kat kat2365 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2365_t
+};
+
+static const unsigned char kat2366_entropyin[] = {
+ 0xfd, 0xb2, 0x7f, 0xa5, 0xd7, 0x6b, 0xff, 0x49, 0xb2, 0x04, 0xf4, 0xc8,
+ 0x83, 0x49, 0x3d, 0x48, 0x93, 0x6e, 0xb1, 0x2e, 0x27, 0x20, 0x54, 0xd5,
+ 0x6f, 0xbf, 0x53, 0x75, 0x5b, 0xaf, 0x08, 0x08,
+};
+static const unsigned char kat2366_nonce[] = {0};
+static const unsigned char kat2366_persstr[] = {0};
+static const unsigned char kat2366_entropyinreseed[] = {
+ 0x59, 0x88, 0x04, 0xe3, 0xb0, 0xb2, 0x6e, 0x0b, 0xd4, 0xd8, 0x29, 0x2e,
+ 0xe5, 0x15, 0x06, 0xe0, 0x20, 0xc4, 0x23, 0x0b, 0x9d, 0x8e, 0xb1, 0x8d,
+ 0xee, 0x33, 0xbc, 0x6a, 0xc4, 0xd1, 0x1d, 0xb3,
+};
+static const unsigned char kat2366_addinreseed[] = {
+ 0xae, 0x4d, 0x63, 0x6d, 0xac, 0xb2, 0x6e, 0x89, 0xb5, 0x77, 0x72, 0xd1,
+ 0x0c, 0x2b, 0xef, 0x88, 0xa4, 0xa9, 0xbe, 0x8d, 0x6c, 0x98, 0xd6, 0x59,
+ 0x72, 0x9a, 0x12, 0x0b, 0x00, 0xeb, 0xda, 0x5f,
+};
+static const unsigned char kat2366_addin0[] = {
+ 0x8e, 0xca, 0x07, 0x50, 0xcc, 0x30, 0x6a, 0x30, 0x14, 0x82, 0x53, 0x94,
+ 0xa5, 0x80, 0x2b, 0x52, 0x73, 0x37, 0xef, 0x6f, 0x4c, 0x52, 0xc1, 0x67,
+ 0x9a, 0x82, 0xc9, 0x7b, 0x60, 0xa1, 0xb5, 0x93,
+};
+static const unsigned char kat2366_addin1[] = {
+ 0xb1, 0x84, 0xd9, 0x2e, 0xb2, 0x95, 0x55, 0x92, 0xb1, 0x27, 0x7e, 0xbc,
+ 0xcf, 0xb3, 0x3b, 0xbc, 0x77, 0x6b, 0x46, 0xf3, 0x00, 0xc6, 0xf2, 0x3b,
+ 0xda, 0xf1, 0x8c, 0xab, 0x9b, 0xd3, 0x3c, 0xc4,
+};
+static const unsigned char kat2366_retbits[] = {
+ 0x57, 0xed, 0x41, 0x6d, 0x11, 0x6c, 0x64, 0x4f, 0xac, 0x2f, 0x9d, 0xdb,
+ 0x54, 0xd3, 0xc6, 0x40, 0xae, 0xd6, 0xf6, 0x0d, 0xc6, 0x0d, 0x30, 0xc0,
+ 0xd8, 0xd7, 0xaa, 0xa4, 0x06, 0x44, 0x88, 0x22, 0x51, 0x82, 0x11, 0xff,
+ 0xf8, 0x2c, 0x09, 0x4c, 0x47, 0x14, 0xe1, 0xd7, 0x17, 0xc9, 0x33, 0xe2,
+ 0xd0, 0x50, 0x54, 0x75, 0x7e, 0x5d, 0x8b, 0x1a, 0x5e, 0x97, 0x9e, 0x6e,
+ 0x7a, 0x97, 0xaa, 0x2f,
+};
+static const struct drbg_kat_pr_false kat2366_t = {
+ 10, kat2366_entropyin, kat2366_nonce, kat2366_persstr,
+ kat2366_entropyinreseed, kat2366_addinreseed, kat2366_addin0,
+ kat2366_addin1, kat2366_retbits
+};
+static const struct drbg_kat kat2366 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2366_t
+};
+
+static const unsigned char kat2367_entropyin[] = {
+ 0x84, 0x3a, 0x90, 0x17, 0x9e, 0xb6, 0xe9, 0x5b, 0x37, 0x10, 0x4a, 0x22,
+ 0x11, 0xf0, 0xd7, 0x79, 0xff, 0x4a, 0x24, 0x4b, 0x35, 0xb3, 0xca, 0xb1,
+ 0x71, 0x0e, 0xef, 0x7c, 0x20, 0x72, 0xd6, 0x5a,
+};
+static const unsigned char kat2367_nonce[] = {0};
+static const unsigned char kat2367_persstr[] = {0};
+static const unsigned char kat2367_entropyinreseed[] = {
+ 0xc7, 0x8d, 0xd1, 0xf6, 0x26, 0xe6, 0x4e, 0x84, 0x9f, 0x63, 0xf1, 0x8f,
+ 0xd6, 0x86, 0xa6, 0xf0, 0x38, 0x7f, 0xd2, 0xd8, 0x03, 0x97, 0x82, 0x62,
+ 0x7b, 0xcc, 0xe3, 0x6e, 0x12, 0x1d, 0x68, 0x16,
+};
+static const unsigned char kat2367_addinreseed[] = {
+ 0xbd, 0xb6, 0x17, 0x5c, 0xc8, 0xec, 0xa6, 0x21, 0x57, 0x90, 0xdf, 0x0e,
+ 0x01, 0x07, 0x42, 0xc1, 0x6d, 0xbc, 0xd8, 0x43, 0x03, 0x19, 0x90, 0xd3,
+ 0x0c, 0xde, 0xd5, 0x67, 0xd1, 0x59, 0x70, 0xcb,
+};
+static const unsigned char kat2367_addin0[] = {
+ 0xa8, 0xd3, 0x60, 0x71, 0x71, 0x77, 0xf6, 0x03, 0xbd, 0xc4, 0xc5, 0x0d,
+ 0xb6, 0x79, 0xeb, 0x97, 0x11, 0x4c, 0xc5, 0x56, 0xc7, 0x22, 0x00, 0x25,
+ 0xfc, 0x05, 0xd9, 0xfb, 0x2e, 0xbe, 0xf1, 0x3c,
+};
+static const unsigned char kat2367_addin1[] = {
+ 0xcf, 0x95, 0x2c, 0xc4, 0xad, 0xae, 0xda, 0x8e, 0x5a, 0x33, 0x0f, 0xfe,
+ 0xa8, 0x6d, 0x1e, 0x1c, 0x4b, 0x4d, 0x3c, 0x95, 0x3d, 0xaf, 0xb3, 0x58,
+ 0x53, 0xbb, 0x30, 0xe8, 0xf0, 0xb2, 0xbc, 0x34,
+};
+static const unsigned char kat2367_retbits[] = {
+ 0x7c, 0x6e, 0xfb, 0x2a, 0xef, 0x74, 0x91, 0xca, 0x50, 0x11, 0xe5, 0x65,
+ 0x78, 0x12, 0xc5, 0xf0, 0x6b, 0x67, 0x95, 0xcd, 0xc5, 0xb6, 0x13, 0xff,
+ 0xc4, 0x18, 0x3a, 0xeb, 0x7c, 0x8b, 0xfd, 0x10, 0xad, 0xa4, 0x6b, 0xc5,
+ 0x39, 0x6e, 0x24, 0xd8, 0x3e, 0x78, 0x17, 0xd7, 0xd9, 0x04, 0xd8, 0xd5,
+ 0xb7, 0xfb, 0x58, 0x07, 0xb4, 0x2f, 0xb3, 0xa3, 0xdb, 0xfe, 0xbc, 0x75,
+ 0xb5, 0x09, 0xf5, 0xdd,
+};
+static const struct drbg_kat_pr_false kat2367_t = {
+ 11, kat2367_entropyin, kat2367_nonce, kat2367_persstr,
+ kat2367_entropyinreseed, kat2367_addinreseed, kat2367_addin0,
+ kat2367_addin1, kat2367_retbits
+};
+static const struct drbg_kat kat2367 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2367_t
+};
+
+static const unsigned char kat2368_entropyin[] = {
+ 0xb0, 0x81, 0x8e, 0xf7, 0x5b, 0x9d, 0x0e, 0xe5, 0xac, 0x6d, 0x72, 0x3a,
+ 0xee, 0xdc, 0xe2, 0xac, 0x47, 0x33, 0xbe, 0x08, 0xae, 0x89, 0xb4, 0x71,
+ 0x21, 0x50, 0x99, 0xb3, 0x04, 0x60, 0x9a, 0x7d,
+};
+static const unsigned char kat2368_nonce[] = {0};
+static const unsigned char kat2368_persstr[] = {0};
+static const unsigned char kat2368_entropyinreseed[] = {
+ 0xb5, 0x4d, 0x13, 0x80, 0x31, 0x05, 0xa7, 0x6f, 0x4b, 0x4f, 0x67, 0x32,
+ 0x9e, 0x63, 0x55, 0xd2, 0xcc, 0x48, 0xaf, 0x86, 0x67, 0x37, 0x90, 0xc5,
+ 0xc1, 0x7b, 0x03, 0xf8, 0x5b, 0x1c, 0x2e, 0x32,
+};
+static const unsigned char kat2368_addinreseed[] = {
+ 0x9a, 0x8a, 0xbf, 0x49, 0x95, 0x03, 0x63, 0x3a, 0x7b, 0x35, 0xbe, 0x82,
+ 0x4c, 0x37, 0xc1, 0xa5, 0xd0, 0x20, 0x29, 0x14, 0xfe, 0x5c, 0xd2, 0xd8,
+ 0x51, 0xa2, 0xed, 0xa0, 0xbe, 0x7b, 0x7c, 0x6f,
+};
+static const unsigned char kat2368_addin0[] = {
+ 0x6c, 0x60, 0xf5, 0xa6, 0x7b, 0x26, 0x22, 0xc8, 0xf5, 0x2a, 0xc1, 0x83,
+ 0x5a, 0x3f, 0x49, 0x0d, 0x6a, 0x89, 0x9e, 0x5c, 0x8d, 0xdd, 0x4b, 0xdb,
+ 0xe2, 0x8a, 0x32, 0xd0, 0x46, 0xbe, 0x7f, 0x1b,
+};
+static const unsigned char kat2368_addin1[] = {
+ 0xc6, 0xc8, 0xbc, 0xaa, 0x53, 0x8a, 0xa5, 0x78, 0x3d, 0xb2, 0x5e, 0x63,
+ 0x00, 0x0c, 0x2a, 0xd2, 0x94, 0x4b, 0x62, 0x85, 0xed, 0x8d, 0x33, 0x80,
+ 0x86, 0x28, 0x60, 0xc7, 0x15, 0x27, 0x28, 0x43,
+};
+static const unsigned char kat2368_retbits[] = {
+ 0x6c, 0x69, 0x25, 0x0d, 0x63, 0x55, 0x32, 0x28, 0xf9, 0xaf, 0x40, 0x19,
+ 0x86, 0xc6, 0x37, 0xd0, 0x1b, 0x97, 0xca, 0x9a, 0x4e, 0xf9, 0x81, 0x5b,
+ 0x70, 0x9d, 0x15, 0x89, 0x71, 0x75, 0xbb, 0x64, 0xd0, 0xda, 0x55, 0x83,
+ 0xbf, 0x0e, 0x43, 0xa6, 0x1a, 0x28, 0x31, 0x09, 0x5d, 0x30, 0xaa, 0x90,
+ 0x60, 0x33, 0xc5, 0x4a, 0xfb, 0xa2, 0x1d, 0x7f, 0x38, 0xf2, 0x27, 0x39,
+ 0x64, 0x48, 0x94, 0x47,
+};
+static const struct drbg_kat_pr_false kat2368_t = {
+ 12, kat2368_entropyin, kat2368_nonce, kat2368_persstr,
+ kat2368_entropyinreseed, kat2368_addinreseed, kat2368_addin0,
+ kat2368_addin1, kat2368_retbits
+};
+static const struct drbg_kat kat2368 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2368_t
+};
+
+static const unsigned char kat2369_entropyin[] = {
+ 0xce, 0xf0, 0x3d, 0x76, 0x60, 0x6e, 0x57, 0xac, 0xa2, 0x78, 0xcf, 0xf0,
+ 0x05, 0x1a, 0x83, 0x88, 0xcb, 0xe7, 0x29, 0x9f, 0x8a, 0xd3, 0xf7, 0x06,
+ 0x43, 0xa8, 0x57, 0x91, 0x8f, 0xee, 0x22, 0x60,
+};
+static const unsigned char kat2369_nonce[] = {0};
+static const unsigned char kat2369_persstr[] = {0};
+static const unsigned char kat2369_entropyinreseed[] = {
+ 0x51, 0x7b, 0x42, 0x73, 0x09, 0x66, 0x48, 0xaf, 0xd6, 0x62, 0x3f, 0x49,
+ 0xfc, 0x40, 0xf1, 0x8d, 0xeb, 0xfe, 0xae, 0xfe, 0xf1, 0xe9, 0x58, 0x98,
+ 0xdf, 0x15, 0x6e, 0xff, 0xf2, 0xf2, 0x2b, 0xeb,
+};
+static const unsigned char kat2369_addinreseed[] = {
+ 0x8e, 0x86, 0x12, 0xe1, 0xaf, 0x62, 0xb5, 0x1d, 0x04, 0xe7, 0x6c, 0xd9,
+ 0xd4, 0x1c, 0x83, 0xd6, 0xb6, 0x12, 0x6e, 0xa5, 0x41, 0xf5, 0xdb, 0x64,
+ 0x87, 0x0e, 0x07, 0xbf, 0x0a, 0x8f, 0xd6, 0x5b,
+};
+static const unsigned char kat2369_addin0[] = {
+ 0x7d, 0x2d, 0x1a, 0x93, 0xfa, 0xac, 0x61, 0xb9, 0x42, 0x5b, 0xfb, 0x82,
+ 0x59, 0xa4, 0x18, 0xe2, 0x55, 0xdf, 0x29, 0x79, 0xe7, 0x92, 0xb4, 0xb3,
+ 0x69, 0x04, 0xf8, 0x2f, 0xfc, 0x1b, 0x3d, 0x86,
+};
+static const unsigned char kat2369_addin1[] = {
+ 0x3b, 0x70, 0x71, 0x06, 0xcc, 0x8a, 0x03, 0xbb, 0x37, 0xa8, 0x10, 0x6e,
+ 0x97, 0xa7, 0xbc, 0xfb, 0x2c, 0x81, 0xf8, 0xba, 0x08, 0x32, 0x48, 0x9c,
+ 0xf6, 0xa1, 0xfb, 0x49, 0x28, 0x54, 0x09, 0xcd,
+};
+static const unsigned char kat2369_retbits[] = {
+ 0x25, 0xae, 0xf9, 0xe7, 0xee, 0x8a, 0x97, 0x2e, 0x9e, 0x64, 0x1c, 0xbd,
+ 0x79, 0x7d, 0x04, 0x92, 0xb3, 0x8c, 0xe6, 0xb4, 0x32, 0xa3, 0x5f, 0xe3,
+ 0x95, 0x0e, 0x65, 0xba, 0x74, 0xa7, 0xe2, 0x2e, 0x26, 0x26, 0xbd, 0x59,
+ 0xdc, 0x36, 0xac, 0x0f, 0x98, 0x31, 0xa4, 0x55, 0x55, 0x5b, 0x40, 0x24,
+ 0x6e, 0x29, 0x73, 0xe3, 0x4a, 0x7b, 0xf2, 0xac, 0x98, 0xd5, 0x84, 0xf7,
+ 0xf4, 0xce, 0x9c, 0x02,
+};
+static const struct drbg_kat_pr_false kat2369_t = {
+ 13, kat2369_entropyin, kat2369_nonce, kat2369_persstr,
+ kat2369_entropyinreseed, kat2369_addinreseed, kat2369_addin0,
+ kat2369_addin1, kat2369_retbits
+};
+static const struct drbg_kat kat2369 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2369_t
+};
+
+static const unsigned char kat2370_entropyin[] = {
+ 0x56, 0x13, 0x00, 0xb8, 0xb3, 0xcc, 0x83, 0x81, 0xad, 0x4c, 0x28, 0x32,
+ 0xd9, 0xf9, 0xe8, 0xba, 0xde, 0x8c, 0x72, 0x0b, 0x56, 0xed, 0x47, 0x26,
+ 0xa2, 0x11, 0xfb, 0xf7, 0xee, 0xa2, 0x85, 0xec,
+};
+static const unsigned char kat2370_nonce[] = {0};
+static const unsigned char kat2370_persstr[] = {0};
+static const unsigned char kat2370_entropyinreseed[] = {
+ 0xc2, 0x3d, 0xaa, 0xa3, 0x8e, 0xb8, 0xa0, 0x39, 0xc9, 0x61, 0x7b, 0xf1,
+ 0x8b, 0x61, 0x20, 0xf7, 0xe9, 0x7e, 0x70, 0x5d, 0xb4, 0x13, 0xd8, 0x22,
+ 0xe2, 0xd8, 0xb0, 0xf2, 0xb5, 0xfc, 0x5b, 0xa7,
+};
+static const unsigned char kat2370_addinreseed[] = {
+ 0x6c, 0xff, 0x3d, 0xa8, 0x10, 0x73, 0x47, 0x89, 0xc7, 0x60, 0x5d, 0x13,
+ 0xcc, 0x6b, 0x39, 0x12, 0x61, 0x99, 0x62, 0x57, 0x2e, 0xb9, 0x1b, 0x9f,
+ 0x9f, 0x27, 0xf9, 0x4a, 0x40, 0xbf, 0xeb, 0x08,
+};
+static const unsigned char kat2370_addin0[] = {
+ 0xff, 0x29, 0x6c, 0xd8, 0x3f, 0x43, 0x95, 0x29, 0xd4, 0x36, 0x25, 0x4c,
+ 0x49, 0x00, 0x13, 0xf2, 0x6f, 0xac, 0x4a, 0xb4, 0x07, 0xe1, 0x58, 0xa0,
+ 0x6b, 0x3c, 0x9d, 0x4e, 0x9e, 0x7d, 0x04, 0xa7,
+};
+static const unsigned char kat2370_addin1[] = {
+ 0x63, 0xde, 0xe7, 0x58, 0xf8, 0x0f, 0x00, 0x73, 0x8d, 0xee, 0x68, 0xe5,
+ 0xf8, 0xa3, 0x61, 0xcb, 0xbb, 0x37, 0x1b, 0xcf, 0xa1, 0xb6, 0x7f, 0xfb,
+ 0x07, 0x3c, 0x45, 0xe3, 0xc8, 0x4b, 0x85, 0xfb,
+};
+static const unsigned char kat2370_retbits[] = {
+ 0x29, 0x54, 0x46, 0xb0, 0x8f, 0x87, 0x9c, 0x3e, 0x46, 0xf0, 0xc5, 0x7d,
+ 0xac, 0x85, 0x76, 0x7d, 0x94, 0x80, 0x5f, 0xcd, 0xf7, 0xbe, 0xb1, 0xee,
+ 0xe7, 0x5d, 0x40, 0xf6, 0x43, 0x25, 0x46, 0x91, 0xad, 0xef, 0x0e, 0x83,
+ 0x00, 0xcf, 0x27, 0xde, 0xb9, 0x0a, 0x72, 0x80, 0x5c, 0xce, 0x91, 0xa4,
+ 0x43, 0x3d, 0x26, 0x3e, 0xca, 0xce, 0xe0, 0x58, 0x3b, 0x22, 0x2b, 0x81,
+ 0xc0, 0xbb, 0xe4, 0x01,
+};
+static const struct drbg_kat_pr_false kat2370_t = {
+ 14, kat2370_entropyin, kat2370_nonce, kat2370_persstr,
+ kat2370_entropyinreseed, kat2370_addinreseed, kat2370_addin0,
+ kat2370_addin1, kat2370_retbits
+};
+static const struct drbg_kat kat2370 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat2370_t
+};
+
+static const unsigned char kat2371_entropyin[] = {
+ 0x96, 0x80, 0xb3, 0x38, 0x56, 0x3c, 0x37, 0xdf, 0x37, 0xd9, 0xb8, 0x7c,
+ 0x39, 0xa9, 0xf7, 0xd1, 0x6e, 0x58, 0x0e, 0x03, 0x10, 0x63, 0x99, 0x51,
+ 0x23, 0x83, 0x7c, 0xa7, 0xc5, 0xbb, 0x9a, 0x16,
+};
+static const unsigned char kat2371_nonce[] = {0};
+static const unsigned char kat2371_persstr[] = {
+ 0x7b, 0xd8, 0x4c, 0x53, 0x97, 0xf2, 0xb0, 0xdd, 0xd4, 0xa6, 0x3a, 0x35,
+ 0x99, 0x49, 0xf1, 0x96, 0x68, 0x06, 0xd9, 0x03, 0x88, 0x56, 0x90, 0xc4,
+ 0x9f, 0x2a, 0x70, 0x32, 0xe3, 0x88, 0x8b, 0xb8,
+};
+static const unsigned char kat2371_entropyinreseed[] = {
+ 0xba, 0x53, 0x15, 0x33, 0x40, 0xc5, 0x89, 0x00, 0xd4, 0xe4, 0xce, 0xc7,
+ 0x47, 0x07, 0xa1, 0xfb, 0x32, 0xc9, 0x31, 0x08, 0xe2, 0x66, 0x15, 0xb0,
+ 0xe0, 0x09, 0x6d, 0xb6, 0x2e, 0xc1, 0x99, 0x9b,
+};
+static const unsigned char kat2371_addinreseed[] = {0};
+static const unsigned char kat2371_addin0[] = {0};
+static const unsigned char kat2371_addin1[] = {0};
+static const unsigned char kat2371_retbits[] = {
+ 0x28, 0x56, 0xd0, 0x79, 0xfe, 0x25, 0x39, 0xdb, 0x40, 0x0e, 0x42, 0x89,
+ 0x30, 0x6b, 0xf0, 0x42, 0x0c, 0x4c, 0xbc, 0xe3, 0x26, 0xb3, 0x8b, 0x8c,
+ 0xac, 0x7a, 0xc4, 0x49, 0x54, 0xf6, 0x50, 0x90, 0x00, 0xb4, 0xaf, 0x2f,
+ 0x50, 0xf2, 0x2c, 0x8f, 0x2c, 0x0a, 0x89, 0x7e, 0x98, 0x96, 0x68, 0x1a,
+ 0xe4, 0xc4, 0x7a, 0x83, 0x68, 0x8c, 0x7c, 0xfa, 0xc8, 0x6d, 0x6a, 0x16,
+ 0x37, 0xe4, 0x98, 0xad,
+};
+static const struct drbg_kat_pr_false kat2371_t = {
+ 0, kat2371_entropyin, kat2371_nonce, kat2371_persstr,
+ kat2371_entropyinreseed, kat2371_addinreseed, kat2371_addin0,
+ kat2371_addin1, kat2371_retbits
+};
+static const struct drbg_kat kat2371 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2371_t
+};
+
+static const unsigned char kat2372_entropyin[] = {
+ 0x2e, 0x16, 0xb1, 0xf1, 0x16, 0x7e, 0xd7, 0x04, 0x0b, 0xd7, 0x1b, 0x6d,
+ 0x80, 0x9f, 0x65, 0xd4, 0xc1, 0x94, 0xdf, 0x94, 0x99, 0xdf, 0x26, 0xec,
+ 0x29, 0x7d, 0x5b, 0xa7, 0x28, 0xce, 0xdd, 0xa4,
+};
+static const unsigned char kat2372_nonce[] = {0};
+static const unsigned char kat2372_persstr[] = {
+ 0xf9, 0x81, 0x51, 0xe9, 0x90, 0xf5, 0x68, 0x84, 0x2b, 0xd4, 0x7e, 0x0b,
+ 0x11, 0x67, 0xa6, 0x19, 0x57, 0xa4, 0x6b, 0xbb, 0x25, 0x4f, 0xc5, 0x69,
+ 0x15, 0xc2, 0x70, 0x71, 0x7d, 0x56, 0x07, 0x20,
+};
+static const unsigned char kat2372_entropyinreseed[] = {
+ 0xc1, 0xc2, 0x82, 0xb0, 0xd3, 0x6f, 0x56, 0xe6, 0x4e, 0x34, 0x89, 0x61,
+ 0xe0, 0xea, 0xca, 0xc2, 0x28, 0x37, 0x6f, 0xbd, 0x47, 0x05, 0xc1, 0x73,
+ 0x22, 0x78, 0x0c, 0x42, 0x30, 0x06, 0xcd, 0xf7,
+};
+static const unsigned char kat2372_addinreseed[] = {0};
+static const unsigned char kat2372_addin0[] = {0};
+static const unsigned char kat2372_addin1[] = {0};
+static const unsigned char kat2372_retbits[] = {
+ 0x1f, 0x25, 0xff, 0x8b, 0xa6, 0xe9, 0x6d, 0x41, 0xb3, 0x4d, 0x70, 0xed,
+ 0x7a, 0xf0, 0xa2, 0xd4, 0x46, 0x2b, 0x3f, 0x49, 0x59, 0x14, 0xa6, 0x5c,
+ 0x7c, 0x86, 0x18, 0xd9, 0x3c, 0x7f, 0x98, 0xcc, 0xaa, 0x4f, 0x81, 0x2b,
+ 0x7b, 0xb4, 0xe1, 0x87, 0x53, 0xaf, 0xdc, 0x8a, 0xfb, 0x53, 0x6e, 0xcf,
+ 0x34, 0x02, 0x80, 0x05, 0x5f, 0xe8, 0x1d, 0xa1, 0xe0, 0x32, 0x2c, 0x44,
+ 0xc0, 0xdf, 0x8e, 0x59,
+};
+static const struct drbg_kat_pr_false kat2372_t = {
+ 1, kat2372_entropyin, kat2372_nonce, kat2372_persstr,
+ kat2372_entropyinreseed, kat2372_addinreseed, kat2372_addin0,
+ kat2372_addin1, kat2372_retbits
+};
+static const struct drbg_kat kat2372 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2372_t
+};
+
+static const unsigned char kat2373_entropyin[] = {
+ 0xba, 0x84, 0xf7, 0xa7, 0x1d, 0x2c, 0x91, 0x9a, 0x11, 0xf0, 0x8b, 0x7c,
+ 0x28, 0xd8, 0xec, 0x96, 0x58, 0x06, 0x71, 0xc1, 0x09, 0x04, 0x62, 0x22,
+ 0xc7, 0xb0, 0xc7, 0x50, 0x5b, 0x50, 0x73, 0xcf,
+};
+static const unsigned char kat2373_nonce[] = {0};
+static const unsigned char kat2373_persstr[] = {
+ 0x20, 0xb1, 0x29, 0xc9, 0x9d, 0x00, 0x2d, 0x94, 0x96, 0xf1, 0x4b, 0x31,
+ 0x77, 0x74, 0x39, 0x0e, 0x55, 0x54, 0x00, 0xeb, 0xf0, 0x4f, 0xfa, 0xe5,
+ 0x5d, 0x92, 0x95, 0x70, 0x38, 0xfe, 0x01, 0xcf,
+};
+static const unsigned char kat2373_entropyinreseed[] = {
+ 0x6b, 0x08, 0x7b, 0x3f, 0x90, 0x43, 0x0a, 0x24, 0xf2, 0x16, 0xf0, 0x70,
+ 0xbd, 0x7c, 0x36, 0x8f, 0xc5, 0x01, 0xca, 0x64, 0x3f, 0x25, 0x11, 0x73,
+ 0x2b, 0xcb, 0x34, 0x58, 0x8d, 0x7d, 0x82, 0x90,
+};
+static const unsigned char kat2373_addinreseed[] = {0};
+static const unsigned char kat2373_addin0[] = {0};
+static const unsigned char kat2373_addin1[] = {0};
+static const unsigned char kat2373_retbits[] = {
+ 0x95, 0xad, 0x8e, 0x77, 0x7a, 0x32, 0x16, 0x6a, 0xb7, 0xc3, 0x9f, 0x2d,
+ 0x79, 0x49, 0x93, 0xa9, 0x10, 0x0f, 0x0b, 0xbc, 0x71, 0x72, 0x75, 0x99,
+ 0xe2, 0x27, 0xbf, 0x02, 0x9b, 0x2e, 0x85, 0xb7, 0xd6, 0x72, 0x69, 0xf4,
+ 0x85, 0xc3, 0x0f, 0x82, 0x2d, 0x21, 0xb9, 0xdc, 0x11, 0x50, 0x6b, 0x39,
+ 0xe0, 0x0e, 0x0e, 0x0e, 0xb7, 0xf8, 0x32, 0x21, 0x3c, 0xb8, 0x2f, 0x7d,
+ 0x6a, 0xf0, 0x67, 0x34,
+};
+static const struct drbg_kat_pr_false kat2373_t = {
+ 2, kat2373_entropyin, kat2373_nonce, kat2373_persstr,
+ kat2373_entropyinreseed, kat2373_addinreseed, kat2373_addin0,
+ kat2373_addin1, kat2373_retbits
+};
+static const struct drbg_kat kat2373 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2373_t
+};
+
+static const unsigned char kat2374_entropyin[] = {
+ 0xb5, 0x0b, 0xf4, 0x6c, 0x1d, 0x31, 0x78, 0x96, 0x80, 0xc5, 0x7c, 0x06,
+ 0xa3, 0x35, 0x68, 0x2f, 0xf4, 0x85, 0x6e, 0x73, 0xe5, 0xbb, 0x75, 0x52,
+ 0xfb, 0xb3, 0xb6, 0xd3, 0x30, 0x3f, 0x79, 0xf2,
+};
+static const unsigned char kat2374_nonce[] = {0};
+static const unsigned char kat2374_persstr[] = {
+ 0x98, 0x38, 0x81, 0x6d, 0xeb, 0x65, 0xb9, 0xfa, 0xde, 0x3c, 0xff, 0xc6,
+ 0xc7, 0xc5, 0x5c, 0x58, 0x32, 0xb2, 0xe7, 0x75, 0x5a, 0x25, 0xa1, 0xe6,
+ 0x6d, 0x3b, 0x6b, 0x73, 0x78, 0xc5, 0x22, 0xa1,
+};
+static const unsigned char kat2374_entropyinreseed[] = {
+ 0xfe, 0xb1, 0xa1, 0x5a, 0xfe, 0x4e, 0xe8, 0x82, 0x99, 0xc1, 0x6d, 0x5f,
+ 0xb2, 0xc7, 0x1e, 0x1b, 0x28, 0xad, 0xec, 0x08, 0x78, 0x04, 0x81, 0x76,
+ 0x3a, 0x04, 0x93, 0xc2, 0xb6, 0x18, 0x99, 0x85,
+};
+static const unsigned char kat2374_addinreseed[] = {0};
+static const unsigned char kat2374_addin0[] = {0};
+static const unsigned char kat2374_addin1[] = {0};
+static const unsigned char kat2374_retbits[] = {
+ 0x6f, 0x83, 0x9b, 0x3f, 0x40, 0xdc, 0x67, 0x74, 0xf7, 0xa0, 0x5f, 0xab,
+ 0x5a, 0xd1, 0xc0, 0xed, 0x05, 0xff, 0x26, 0xda, 0xe2, 0xf6, 0x5b, 0xd8,
+ 0x9c, 0xc2, 0xd5, 0x7b, 0x7e, 0xc9, 0x69, 0x30, 0x06, 0x94, 0x56, 0xb1,
+ 0x09, 0xd9, 0xfa, 0x50, 0xf8, 0x6e, 0x62, 0xf2, 0x75, 0xc1, 0xdd, 0x9f,
+ 0xef, 0x50, 0x94, 0xc4, 0x87, 0x0d, 0x18, 0x94, 0xe4, 0xb5, 0x0d, 0xad,
+ 0x6d, 0xf6, 0xfe, 0xda,
+};
+static const struct drbg_kat_pr_false kat2374_t = {
+ 3, kat2374_entropyin, kat2374_nonce, kat2374_persstr,
+ kat2374_entropyinreseed, kat2374_addinreseed, kat2374_addin0,
+ kat2374_addin1, kat2374_retbits
+};
+static const struct drbg_kat kat2374 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2374_t
+};
+
+static const unsigned char kat2375_entropyin[] = {
+ 0x73, 0xb0, 0x6f, 0xc7, 0xc1, 0xd1, 0x81, 0xd7, 0x45, 0x7a, 0x9d, 0x27,
+ 0x24, 0x43, 0x3a, 0x30, 0x5d, 0xf2, 0xee, 0x29, 0xab, 0x86, 0x1a, 0x87,
+ 0x4e, 0x08, 0x9f, 0x86, 0x4a, 0x22, 0xa4, 0x92,
+};
+static const unsigned char kat2375_nonce[] = {0};
+static const unsigned char kat2375_persstr[] = {
+ 0xf9, 0xe7, 0x69, 0x39, 0x54, 0xb2, 0x5f, 0x9f, 0x4c, 0xe5, 0xf4, 0xcb,
+ 0x52, 0x48, 0x70, 0x62, 0x18, 0xbf, 0xcc, 0x81, 0x84, 0x2a, 0xc0, 0xeb,
+ 0xcc, 0xae, 0x08, 0xe0, 0x74, 0xe2, 0xd0, 0xf2,
+};
+static const unsigned char kat2375_entropyinreseed[] = {
+ 0x68, 0x1f, 0xb7, 0xff, 0xb2, 0x93, 0x17, 0x3e, 0xd0, 0xf3, 0x58, 0x19,
+ 0x5d, 0x6e, 0x32, 0x9a, 0x6f, 0x79, 0xaf, 0x2c, 0x1a, 0x8e, 0x73, 0x4b,
+ 0x5a, 0xbf, 0xa8, 0x18, 0x14, 0x4b, 0x3d, 0x51,
+};
+static const unsigned char kat2375_addinreseed[] = {0};
+static const unsigned char kat2375_addin0[] = {0};
+static const unsigned char kat2375_addin1[] = {0};
+static const unsigned char kat2375_retbits[] = {
+ 0x95, 0xd6, 0x20, 0xf6, 0x9d, 0xf2, 0xfe, 0x74, 0xe0, 0x51, 0x4d, 0xfb,
+ 0x1e, 0x0e, 0x6a, 0x74, 0xe2, 0xac, 0x05, 0xa5, 0x12, 0xa0, 0xc0, 0x76,
+ 0x38, 0xbb, 0x8e, 0x9d, 0x97, 0x1d, 0xf6, 0xc0, 0x6e, 0x13, 0x67, 0xa3,
+ 0x4d, 0x3f, 0xfc, 0xaa, 0x5d, 0x6f, 0x56, 0xd3, 0x82, 0xfe, 0xab, 0xeb,
+ 0x49, 0x78, 0x72, 0x67, 0x7d, 0xf0, 0x0a, 0x9e, 0xc7, 0x11, 0x9b, 0x76,
+ 0xbb, 0x08, 0x5d, 0x1e,
+};
+static const struct drbg_kat_pr_false kat2375_t = {
+ 4, kat2375_entropyin, kat2375_nonce, kat2375_persstr,
+ kat2375_entropyinreseed, kat2375_addinreseed, kat2375_addin0,
+ kat2375_addin1, kat2375_retbits
+};
+static const struct drbg_kat kat2375 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2375_t
+};
+
+static const unsigned char kat2376_entropyin[] = {
+ 0xc3, 0x8a, 0x07, 0x4e, 0x9d, 0xd0, 0x72, 0x3f, 0x3b, 0x61, 0x97, 0x65,
+ 0x6c, 0xb4, 0xa0, 0xd3, 0xfa, 0x75, 0xde, 0xb2, 0xcf, 0x67, 0xf2, 0xda,
+ 0x63, 0x3b, 0xea, 0xc5, 0x0a, 0xe1, 0x41, 0x44,
+};
+static const unsigned char kat2376_nonce[] = {0};
+static const unsigned char kat2376_persstr[] = {
+ 0xd5, 0x8c, 0xa8, 0x8d, 0xea, 0x40, 0x63, 0x6f, 0x28, 0x43, 0xe7, 0x05,
+ 0x74, 0xe7, 0x64, 0xa4, 0xfb, 0x3c, 0x32, 0x7c, 0x45, 0x3d, 0x93, 0x54,
+ 0x95, 0xa4, 0x6e, 0xe5, 0x05, 0x83, 0x63, 0x02,
+};
+static const unsigned char kat2376_entropyinreseed[] = {
+ 0x8b, 0x40, 0x0e, 0x5e, 0xfa, 0x15, 0x06, 0xbc, 0xc7, 0x3a, 0xcf, 0x46,
+ 0x7c, 0x27, 0x39, 0xf4, 0xad, 0xd4, 0xee, 0x23, 0x66, 0x23, 0xbc, 0x78,
+ 0x07, 0x0d, 0x0d, 0x1b, 0x16, 0xa7, 0x8a, 0xd5,
+};
+static const unsigned char kat2376_addinreseed[] = {0};
+static const unsigned char kat2376_addin0[] = {0};
+static const unsigned char kat2376_addin1[] = {0};
+static const unsigned char kat2376_retbits[] = {
+ 0x2e, 0x2a, 0xe6, 0xfe, 0x54, 0x3b, 0x58, 0xc6, 0xda, 0xfe, 0x55, 0xa5,
+ 0x62, 0x8e, 0x1f, 0x70, 0x9a, 0x4a, 0x84, 0x8f, 0x66, 0x72, 0x1c, 0xf7,
+ 0xe6, 0x92, 0x14, 0xb0, 0x84, 0xcc, 0x71, 0xa6, 0xd8, 0x02, 0x94, 0x31,
+ 0x89, 0x01, 0x57, 0x19, 0x1f, 0x3e, 0xf2, 0xca, 0x45, 0xb4, 0x14, 0x19,
+ 0x16, 0x58, 0xdb, 0xee, 0xda, 0xea, 0xc7, 0xe0, 0x55, 0x24, 0xec, 0x1b,
+ 0x39, 0xc2, 0x0a, 0x4f,
+};
+static const struct drbg_kat_pr_false kat2376_t = {
+ 5, kat2376_entropyin, kat2376_nonce, kat2376_persstr,
+ kat2376_entropyinreseed, kat2376_addinreseed, kat2376_addin0,
+ kat2376_addin1, kat2376_retbits
+};
+static const struct drbg_kat kat2376 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2376_t
+};
+
+static const unsigned char kat2377_entropyin[] = {
+ 0xd3, 0x14, 0xa0, 0x80, 0xb0, 0x1f, 0x07, 0x1c, 0x2c, 0x72, 0x07, 0xe6,
+ 0x1b, 0xf5, 0xa3, 0x16, 0xd7, 0xb7, 0x68, 0xc8, 0x58, 0x16, 0xd9, 0xc9,
+ 0x2d, 0xd8, 0x63, 0x79, 0x60, 0x96, 0x6e, 0xd4,
+};
+static const unsigned char kat2377_nonce[] = {0};
+static const unsigned char kat2377_persstr[] = {
+ 0x2f, 0xed, 0x85, 0x7b, 0x2d, 0xd4, 0x18, 0xc1, 0x1c, 0x39, 0x9d, 0xb3,
+ 0xc7, 0x16, 0x88, 0x76, 0xd2, 0xd4, 0xcc, 0xda, 0x32, 0xf2, 0x8c, 0x87,
+ 0x6c, 0xa2, 0x58, 0x50, 0x75, 0x78, 0xf8, 0x67,
+};
+static const unsigned char kat2377_entropyinreseed[] = {
+ 0x16, 0xb8, 0x9e, 0x8e, 0x0e, 0x1f, 0x58, 0x96, 0x50, 0xda, 0x30, 0x93,
+ 0x04, 0xc1, 0xd7, 0xd3, 0x25, 0xa5, 0xb6, 0x1e, 0xc4, 0x56, 0xf5, 0x79,
+ 0xe2, 0x4c, 0xb7, 0xd8, 0xc6, 0xa0, 0x9c, 0x09,
+};
+static const unsigned char kat2377_addinreseed[] = {0};
+static const unsigned char kat2377_addin0[] = {0};
+static const unsigned char kat2377_addin1[] = {0};
+static const unsigned char kat2377_retbits[] = {
+ 0xf2, 0xeb, 0x91, 0x99, 0x42, 0xa1, 0x43, 0x16, 0xa7, 0x33, 0x04, 0xa6,
+ 0xdc, 0x0a, 0xe5, 0xa9, 0xf9, 0x2f, 0x7c, 0x60, 0xe8, 0x6f, 0x23, 0x14,
+ 0x63, 0xcc, 0x91, 0x47, 0xf1, 0xcb, 0x60, 0xd6, 0xae, 0x86, 0x25, 0xb6,
+ 0x90, 0x61, 0x21, 0x90, 0xd3, 0xdf, 0x62, 0x96, 0x4f, 0x95, 0x51, 0xd1,
+ 0x4b, 0x11, 0xa0, 0xaf, 0x43, 0x5d, 0x40, 0x20, 0xc5, 0x87, 0x32, 0xb6,
+ 0xa9, 0x09, 0xc9, 0x04,
+};
+static const struct drbg_kat_pr_false kat2377_t = {
+ 6, kat2377_entropyin, kat2377_nonce, kat2377_persstr,
+ kat2377_entropyinreseed, kat2377_addinreseed, kat2377_addin0,
+ kat2377_addin1, kat2377_retbits
+};
+static const struct drbg_kat kat2377 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2377_t
+};
+
+static const unsigned char kat2378_entropyin[] = {
+ 0xbd, 0xa4, 0x5a, 0x21, 0x1b, 0x41, 0xca, 0x5a, 0x49, 0x9d, 0xd2, 0x06,
+ 0xf9, 0x3d, 0x4e, 0x1f, 0xc4, 0x16, 0xea, 0xad, 0xc4, 0x66, 0xe2, 0x28,
+ 0xba, 0x31, 0xd7, 0x0e, 0x29, 0x83, 0xc7, 0x51,
+};
+static const unsigned char kat2378_nonce[] = {0};
+static const unsigned char kat2378_persstr[] = {
+ 0x2f, 0x64, 0x43, 0xee, 0xdd, 0xbd, 0xee, 0x49, 0x65, 0xf6, 0xfd, 0x9f,
+ 0x24, 0x24, 0x32, 0x01, 0xd6, 0x6e, 0x7a, 0x62, 0x55, 0x79, 0x4f, 0x4c,
+ 0x13, 0xa6, 0xb0, 0x27, 0x41, 0x22, 0xc3, 0xf2,
+};
+static const unsigned char kat2378_entropyinreseed[] = {
+ 0x2a, 0xde, 0x92, 0x40, 0xde, 0x8f, 0xc4, 0xfb, 0xdb, 0xd4, 0xf2, 0x45,
+ 0x82, 0xd1, 0x24, 0x0c, 0xe2, 0xd8, 0x4d, 0xd8, 0x75, 0x2d, 0x1b, 0x50,
+ 0x82, 0x2f, 0x72, 0xf6, 0xbe, 0x77, 0x6f, 0x7d,
+};
+static const unsigned char kat2378_addinreseed[] = {0};
+static const unsigned char kat2378_addin0[] = {0};
+static const unsigned char kat2378_addin1[] = {0};
+static const unsigned char kat2378_retbits[] = {
+ 0xab, 0xff, 0x61, 0xb3, 0xdf, 0x53, 0xd6, 0x98, 0xb5, 0x31, 0xd3, 0x4e,
+ 0xe4, 0xbc, 0x09, 0x7c, 0x05, 0x8b, 0x93, 0x2b, 0xfe, 0x29, 0x01, 0x95,
+ 0x31, 0xce, 0x08, 0x60, 0xc2, 0x7a, 0x96, 0x7c, 0xc1, 0x88, 0x6d, 0x13,
+ 0x84, 0xaa, 0xe4, 0x4d, 0x0d, 0x4f, 0x0d, 0x19, 0x6b, 0xee, 0xb9, 0x4a,
+ 0x62, 0x11, 0x36, 0x1a, 0x89, 0x8e, 0xbd, 0xda, 0x31, 0x6c, 0x33, 0x7f,
+ 0xfe, 0xb3, 0x82, 0x7a,
+};
+static const struct drbg_kat_pr_false kat2378_t = {
+ 7, kat2378_entropyin, kat2378_nonce, kat2378_persstr,
+ kat2378_entropyinreseed, kat2378_addinreseed, kat2378_addin0,
+ kat2378_addin1, kat2378_retbits
+};
+static const struct drbg_kat kat2378 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2378_t
+};
+
+static const unsigned char kat2379_entropyin[] = {
+ 0x70, 0x9d, 0x42, 0x3b, 0xcf, 0xeb, 0x14, 0xd3, 0xfd, 0x3e, 0x37, 0x21,
+ 0xe7, 0x47, 0x3e, 0x1b, 0x3f, 0x9d, 0x4d, 0x87, 0x24, 0x46, 0xfa, 0x2e,
+ 0x36, 0xff, 0xeb, 0xb3, 0xf2, 0x5f, 0xf6, 0x5b,
+};
+static const unsigned char kat2379_nonce[] = {0};
+static const unsigned char kat2379_persstr[] = {
+ 0x63, 0x88, 0x7b, 0xc1, 0x9b, 0x1e, 0xec, 0x94, 0x8f, 0x06, 0xba, 0x14,
+ 0x14, 0x5d, 0xd9, 0x5d, 0xf8, 0x20, 0x9d, 0x92, 0x5c, 0x81, 0x19, 0x95,
+ 0x0e, 0x07, 0x53, 0x68, 0x97, 0x0d, 0x7b, 0xb0,
+};
+static const unsigned char kat2379_entropyinreseed[] = {
+ 0x4e, 0xfc, 0x9c, 0x7b, 0x33, 0x7f, 0x00, 0xb2, 0x7b, 0x48, 0x2d, 0x83,
+ 0x32, 0xff, 0x0b, 0xb4, 0x1e, 0x77, 0x6e, 0x6a, 0xf5, 0xbd, 0x47, 0x41,
+ 0xbd, 0x22, 0x97, 0x8b, 0xf1, 0x9e, 0x33, 0x44,
+};
+static const unsigned char kat2379_addinreseed[] = {0};
+static const unsigned char kat2379_addin0[] = {0};
+static const unsigned char kat2379_addin1[] = {0};
+static const unsigned char kat2379_retbits[] = {
+ 0xb1, 0xdb, 0x4e, 0x8d, 0xaf, 0x64, 0x2a, 0x7d, 0xc5, 0x07, 0xd0, 0x12,
+ 0xbc, 0xff, 0xa9, 0xc1, 0x92, 0x43, 0xed, 0x97, 0x4f, 0x08, 0xaf, 0x7b,
+ 0xab, 0xe3, 0x65, 0xc8, 0x8b, 0x79, 0x4b, 0xe0, 0x5f, 0x1a, 0x5e, 0xd6,
+ 0x78, 0xc5, 0xcc, 0x13, 0x0e, 0xf0, 0x58, 0xdc, 0xdb, 0x31, 0x29, 0x9a,
+ 0xa4, 0x02, 0xbe, 0x17, 0x61, 0xc3, 0xda, 0x81, 0x5a, 0x61, 0x51, 0xd1,
+ 0x04, 0xc2, 0xc5, 0x4d,
+};
+static const struct drbg_kat_pr_false kat2379_t = {
+ 8, kat2379_entropyin, kat2379_nonce, kat2379_persstr,
+ kat2379_entropyinreseed, kat2379_addinreseed, kat2379_addin0,
+ kat2379_addin1, kat2379_retbits
+};
+static const struct drbg_kat kat2379 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2379_t
+};
+
+static const unsigned char kat2380_entropyin[] = {
+ 0x66, 0x67, 0x1a, 0xa2, 0x65, 0x61, 0x66, 0xa1, 0x74, 0xbb, 0x85, 0xc0,
+ 0xc5, 0x57, 0x5a, 0x4d, 0x16, 0x94, 0x2f, 0xb5, 0x7b, 0x25, 0x4c, 0xc3,
+ 0x03, 0xe5, 0x95, 0x4e, 0x70, 0xbd, 0x4f, 0x97,
+};
+static const unsigned char kat2380_nonce[] = {0};
+static const unsigned char kat2380_persstr[] = {
+ 0x40, 0x9e, 0xa4, 0x68, 0xfd, 0x7e, 0x7b, 0x80, 0xdd, 0x49, 0x43, 0x39,
+ 0xde, 0xc8, 0x25, 0x2c, 0x1d, 0xb7, 0x27, 0x90, 0xaf, 0xad, 0x99, 0x7d,
+ 0xed, 0x0f, 0x9d, 0x77, 0xdd, 0x31, 0x90, 0x1a,
+};
+static const unsigned char kat2380_entropyinreseed[] = {
+ 0x36, 0xd4, 0x84, 0x21, 0x36, 0xd8, 0x34, 0x3a, 0xef, 0xdb, 0xba, 0xb4,
+ 0xa1, 0x8a, 0xab, 0x9b, 0x68, 0x61, 0x5b, 0x97, 0x4a, 0x9f, 0xaf, 0x42,
+ 0xa9, 0x35, 0xe4, 0x0c, 0x6f, 0x87, 0xf1, 0x2b,
+};
+static const unsigned char kat2380_addinreseed[] = {0};
+static const unsigned char kat2380_addin0[] = {0};
+static const unsigned char kat2380_addin1[] = {0};
+static const unsigned char kat2380_retbits[] = {
+ 0x98, 0xc1, 0x32, 0x5d, 0xbf, 0x9c, 0x19, 0x0a, 0xba, 0x52, 0x2f, 0xc0,
+ 0x7f, 0x9d, 0x20, 0x9f, 0xff, 0xa8, 0x24, 0x0f, 0xbf, 0xac, 0xe8, 0x3a,
+ 0x1e, 0x01, 0x6c, 0x8a, 0x51, 0xc2, 0x83, 0xb0, 0xc8, 0xb8, 0x52, 0x67,
+ 0x3c, 0x3c, 0x72, 0xaf, 0xc6, 0x5f, 0xbe, 0x19, 0x3d, 0x67, 0x32, 0x12,
+ 0xf4, 0x6e, 0x8a, 0x28, 0x43, 0xb1, 0x50, 0x7a, 0x25, 0x20, 0xb0, 0x15,
+ 0x9c, 0x3e, 0xba, 0x01,
+};
+static const struct drbg_kat_pr_false kat2380_t = {
+ 9, kat2380_entropyin, kat2380_nonce, kat2380_persstr,
+ kat2380_entropyinreseed, kat2380_addinreseed, kat2380_addin0,
+ kat2380_addin1, kat2380_retbits
+};
+static const struct drbg_kat kat2380 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2380_t
+};
+
+static const unsigned char kat2381_entropyin[] = {
+ 0x19, 0xc5, 0x01, 0x3e, 0x12, 0x23, 0x7e, 0x58, 0x20, 0x01, 0xa2, 0x35,
+ 0x63, 0xea, 0xe2, 0xc1, 0x8c, 0x40, 0x09, 0xe5, 0xd1, 0x58, 0x38, 0xc3,
+ 0x45, 0x42, 0x5e, 0x82, 0xb7, 0x0d, 0x8b, 0x30,
+};
+static const unsigned char kat2381_nonce[] = {0};
+static const unsigned char kat2381_persstr[] = {
+ 0x90, 0x22, 0x6b, 0x0d, 0xbf, 0xf5, 0x45, 0xe3, 0x5f, 0x0e, 0xfa, 0x35,
+ 0xbf, 0x92, 0xf4, 0xd6, 0x51, 0x73, 0x09, 0x9f, 0xef, 0xde, 0xfe, 0x88,
+ 0x6e, 0xfe, 0xe0, 0x92, 0x1d, 0x16, 0x02, 0x5e,
+};
+static const unsigned char kat2381_entropyinreseed[] = {
+ 0x9f, 0xaa, 0x13, 0xbb, 0xe1, 0x14, 0xc1, 0x64, 0x28, 0x80, 0xd6, 0xb9,
+ 0x1f, 0x4e, 0x39, 0x43, 0x99, 0x16, 0x9d, 0x78, 0x57, 0xe1, 0x91, 0xaa,
+ 0xcd, 0x6d, 0x6f, 0x6a, 0xb4, 0x79, 0xba, 0xdb,
+};
+static const unsigned char kat2381_addinreseed[] = {0};
+static const unsigned char kat2381_addin0[] = {0};
+static const unsigned char kat2381_addin1[] = {0};
+static const unsigned char kat2381_retbits[] = {
+ 0x37, 0x07, 0x28, 0x31, 0xba, 0xe4, 0xd4, 0xdb, 0x94, 0x0a, 0xfc, 0x8e,
+ 0x89, 0x40, 0xc0, 0xe0, 0x3d, 0xaa, 0xee, 0x38, 0x11, 0xc6, 0xea, 0x92,
+ 0x39, 0xce, 0x88, 0x5a, 0x82, 0x63, 0xb8, 0xd8, 0xe8, 0x1a, 0xe8, 0x39,
+ 0x73, 0x2b, 0x11, 0xa6, 0xa5, 0xa5, 0xd2, 0xed, 0x02, 0xd2, 0x38, 0xd8,
+ 0xb3, 0xfb, 0x4d, 0x8d, 0x59, 0x42, 0x9a, 0x30, 0x2a, 0x07, 0xe9, 0x9b,
+ 0x84, 0x1e, 0x27, 0x4d,
+};
+static const struct drbg_kat_pr_false kat2381_t = {
+ 10, kat2381_entropyin, kat2381_nonce, kat2381_persstr,
+ kat2381_entropyinreseed, kat2381_addinreseed, kat2381_addin0,
+ kat2381_addin1, kat2381_retbits
+};
+static const struct drbg_kat kat2381 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2381_t
+};
+
+static const unsigned char kat2382_entropyin[] = {
+ 0x6a, 0x8e, 0xdd, 0xc0, 0xc7, 0xc5, 0x7e, 0x37, 0xde, 0xce, 0xaa, 0x3e,
+ 0x0b, 0x13, 0x92, 0x2d, 0x6a, 0x63, 0xf0, 0x5c, 0x2e, 0xf6, 0x4a, 0x8d,
+ 0x7c, 0x64, 0x80, 0x85, 0xa6, 0x2e, 0xd9, 0x25,
+};
+static const unsigned char kat2382_nonce[] = {0};
+static const unsigned char kat2382_persstr[] = {
+ 0x52, 0x16, 0x69, 0x65, 0x4b, 0x98, 0xc5, 0x65, 0xb9, 0x29, 0xdd, 0x00,
+ 0x1e, 0xa4, 0x1d, 0x45, 0x81, 0x20, 0xcc, 0x30, 0x03, 0x6f, 0xfc, 0xf5,
+ 0xc9, 0x0f, 0xac, 0x6a, 0xf6, 0xac, 0xe9, 0xcd,
+};
+static const unsigned char kat2382_entropyinreseed[] = {
+ 0xe6, 0xd5, 0x87, 0x03, 0xe3, 0xa9, 0xfa, 0x3e, 0x76, 0x08, 0x5b, 0xd1,
+ 0x0f, 0x18, 0x75, 0xf5, 0xb5, 0x1b, 0xfb, 0x0a, 0x0e, 0x4a, 0x6d, 0xbb,
+ 0x1c, 0x05, 0x52, 0xbd, 0x29, 0x85, 0x11, 0x96,
+};
+static const unsigned char kat2382_addinreseed[] = {0};
+static const unsigned char kat2382_addin0[] = {0};
+static const unsigned char kat2382_addin1[] = {0};
+static const unsigned char kat2382_retbits[] = {
+ 0x9e, 0xcf, 0x36, 0x7a, 0x00, 0xab, 0x54, 0x45, 0xf8, 0x31, 0xe4, 0xf1,
+ 0x5b, 0xe9, 0x27, 0xfb, 0x0e, 0x6c, 0xf8, 0x50, 0x87, 0x69, 0x8d, 0x73,
+ 0x45, 0x88, 0x25, 0x9e, 0xa1, 0xa8, 0x54, 0x12, 0xff, 0x92, 0x52, 0xb6,
+ 0x5f, 0x27, 0x9c, 0x17, 0xba, 0x0c, 0x99, 0xdc, 0x21, 0xe5, 0x51, 0x74,
+ 0x79, 0xc8, 0x9d, 0x68, 0x5e, 0x79, 0x74, 0x8f, 0x35, 0xe2, 0x87, 0xb7,
+ 0x2c, 0xe6, 0xdd, 0x2b,
+};
+static const struct drbg_kat_pr_false kat2382_t = {
+ 11, kat2382_entropyin, kat2382_nonce, kat2382_persstr,
+ kat2382_entropyinreseed, kat2382_addinreseed, kat2382_addin0,
+ kat2382_addin1, kat2382_retbits
+};
+static const struct drbg_kat kat2382 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2382_t
+};
+
+static const unsigned char kat2383_entropyin[] = {
+ 0x26, 0xe6, 0x07, 0x1e, 0xaf, 0x6f, 0x0c, 0xfe, 0x64, 0xd2, 0xfb, 0xf3,
+ 0x9b, 0x65, 0x5e, 0x16, 0x53, 0x13, 0xbb, 0x96, 0x17, 0x6d, 0xa0, 0x7b,
+ 0x3a, 0x2d, 0x07, 0x58, 0x90, 0xa5, 0x77, 0xea,
+};
+static const unsigned char kat2383_nonce[] = {0};
+static const unsigned char kat2383_persstr[] = {
+ 0x1a, 0xd4, 0x06, 0xc9, 0xb2, 0x7e, 0x9e, 0xd0, 0xe4, 0xf1, 0x14, 0x87,
+ 0x5a, 0x9b, 0x40, 0xa4, 0x72, 0x00, 0xd9, 0x2e, 0x94, 0xe2, 0x84, 0xb8,
+ 0x98, 0xf9, 0x1e, 0x3b, 0x61, 0x16, 0x97, 0x87,
+};
+static const unsigned char kat2383_entropyinreseed[] = {
+ 0x1c, 0x77, 0x44, 0x82, 0x9d, 0x36, 0x97, 0x7b, 0x4f, 0x02, 0x4e, 0xa9,
+ 0x9d, 0x82, 0xa0, 0xad, 0x8f, 0x87, 0x3d, 0xc9, 0x78, 0xac, 0xfe, 0xb1,
+ 0x0d, 0x30, 0xe9, 0x9c, 0xdd, 0x36, 0x20, 0x8c,
+};
+static const unsigned char kat2383_addinreseed[] = {0};
+static const unsigned char kat2383_addin0[] = {0};
+static const unsigned char kat2383_addin1[] = {0};
+static const unsigned char kat2383_retbits[] = {
+ 0xc2, 0x50, 0xcd, 0x44, 0x62, 0x5e, 0xf2, 0x7d, 0x1b, 0xf1, 0x96, 0x79,
+ 0x64, 0x65, 0xe5, 0xd4, 0xb4, 0x5a, 0x7f, 0x0c, 0x61, 0x33, 0xf3, 0xca,
+ 0x40, 0xb3, 0x63, 0x54, 0xee, 0xac, 0x6b, 0x99, 0x0a, 0xa2, 0x67, 0x3d,
+ 0x58, 0xff, 0xaa, 0x63, 0x15, 0x6e, 0xfd, 0x2a, 0xdc, 0x6d, 0x88, 0xbc,
+ 0x1d, 0x40, 0x70, 0x13, 0xd1, 0xa1, 0xe5, 0x27, 0x49, 0x12, 0x65, 0x17,
+ 0xb6, 0x78, 0x95, 0x21,
+};
+static const struct drbg_kat_pr_false kat2383_t = {
+ 12, kat2383_entropyin, kat2383_nonce, kat2383_persstr,
+ kat2383_entropyinreseed, kat2383_addinreseed, kat2383_addin0,
+ kat2383_addin1, kat2383_retbits
+};
+static const struct drbg_kat kat2383 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2383_t
+};
+
+static const unsigned char kat2384_entropyin[] = {
+ 0x4a, 0x9c, 0x90, 0xde, 0xd4, 0xe8, 0xe4, 0x8c, 0xd6, 0x7d, 0xa5, 0x93,
+ 0xfd, 0xe8, 0xeb, 0x9e, 0xfc, 0x33, 0xa2, 0x7e, 0xfc, 0xaa, 0xd3, 0x62,
+ 0x31, 0xeb, 0xa6, 0x02, 0xa4, 0xfc, 0xad, 0x23,
+};
+static const unsigned char kat2384_nonce[] = {0};
+static const unsigned char kat2384_persstr[] = {
+ 0x66, 0xf4, 0x93, 0xf5, 0x13, 0x5d, 0xcd, 0x08, 0xc5, 0x8a, 0x8c, 0x92,
+ 0x75, 0x8a, 0x3d, 0x9e, 0x20, 0xcc, 0xb3, 0x2a, 0x44, 0xf5, 0x97, 0x4d,
+ 0x68, 0xcb, 0x76, 0xf5, 0x30, 0x52, 0x0f, 0x3b,
+};
+static const unsigned char kat2384_entropyinreseed[] = {
+ 0x03, 0x79, 0xd0, 0xc6, 0x45, 0x57, 0xc0, 0x9c, 0xd5, 0x71, 0x7a, 0x12,
+ 0x15, 0x29, 0x89, 0x42, 0xd6, 0x02, 0xa6, 0x0d, 0x3d, 0xf2, 0x6f, 0x34,
+ 0x96, 0x64, 0x76, 0xc5, 0xa2, 0xc1, 0x60, 0x22,
+};
+static const unsigned char kat2384_addinreseed[] = {0};
+static const unsigned char kat2384_addin0[] = {0};
+static const unsigned char kat2384_addin1[] = {0};
+static const unsigned char kat2384_retbits[] = {
+ 0x1e, 0xd6, 0xa4, 0xfc, 0xfe, 0xf1, 0xd9, 0x60, 0x32, 0x8a, 0x31, 0xf2,
+ 0x82, 0xc6, 0x0f, 0x4f, 0x66, 0x28, 0xc2, 0x06, 0x1f, 0xe1, 0x14, 0x14,
+ 0x16, 0x58, 0xb5, 0x51, 0x7c, 0x5d, 0x0f, 0x04, 0x79, 0xb5, 0xfa, 0x11,
+ 0xeb, 0xb5, 0x70, 0x4b, 0x07, 0xb5, 0x8b, 0x15, 0x82, 0x74, 0x40, 0x6d,
+ 0xb8, 0x5d, 0xc4, 0x45, 0x71, 0xfa, 0x70, 0xee, 0x6f, 0xb9, 0xb2, 0x0e,
+ 0x95, 0x8f, 0x5a, 0x65,
+};
+static const struct drbg_kat_pr_false kat2384_t = {
+ 13, kat2384_entropyin, kat2384_nonce, kat2384_persstr,
+ kat2384_entropyinreseed, kat2384_addinreseed, kat2384_addin0,
+ kat2384_addin1, kat2384_retbits
+};
+static const struct drbg_kat kat2384 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2384_t
+};
+
+static const unsigned char kat2385_entropyin[] = {
+ 0x9d, 0x45, 0xbb, 0xae, 0x13, 0x56, 0xc6, 0x7b, 0xa8, 0x31, 0x36, 0xe8,
+ 0xef, 0x04, 0xd5, 0x2c, 0xc5, 0x8d, 0x1b, 0xa3, 0x9d, 0x98, 0x7a, 0x80,
+ 0xa5, 0x72, 0xe6, 0x2a, 0x11, 0xe0, 0x91, 0x52,
+};
+static const unsigned char kat2385_nonce[] = {0};
+static const unsigned char kat2385_persstr[] = {
+ 0x34, 0x5b, 0x74, 0xcf, 0x00, 0x94, 0x7d, 0xc1, 0xee, 0xdb, 0xba, 0xcd,
+ 0x5e, 0x40, 0x30, 0xd5, 0x63, 0x9f, 0x5e, 0x3c, 0x0b, 0x9f, 0xb9, 0x86,
+ 0xfd, 0xc0, 0xc3, 0xc6, 0xcb, 0xac, 0xb5, 0x8b,
+};
+static const unsigned char kat2385_entropyinreseed[] = {
+ 0x31, 0x50, 0xb6, 0xab, 0x1f, 0xb0, 0x05, 0xce, 0xb8, 0x32, 0x3c, 0x69,
+ 0x82, 0xfc, 0x3a, 0xf3, 0x09, 0x20, 0x77, 0x24, 0x1d, 0xcf, 0x49, 0x93,
+ 0xfe, 0x91, 0x69, 0x6b, 0xd5, 0xb8, 0xb7, 0x47,
+};
+static const unsigned char kat2385_addinreseed[] = {0};
+static const unsigned char kat2385_addin0[] = {0};
+static const unsigned char kat2385_addin1[] = {0};
+static const unsigned char kat2385_retbits[] = {
+ 0xbf, 0xf8, 0x3f, 0x45, 0xe0, 0xa4, 0x22, 0x34, 0x89, 0xb0, 0x84, 0x09,
+ 0x49, 0x74, 0x71, 0x42, 0x7e, 0x7b, 0x82, 0xf8, 0x34, 0x08, 0x21, 0x37,
+ 0x49, 0x7b, 0xc5, 0x52, 0x12, 0x74, 0x46, 0xa8, 0xa3, 0xf5, 0x2a, 0x73,
+ 0x09, 0x14, 0x65, 0x0c, 0xd7, 0x53, 0x09, 0x81, 0x62, 0xf7, 0xd2, 0x53,
+ 0xbb, 0xd6, 0x25, 0x98, 0x34, 0x30, 0xd1, 0xf1, 0x6f, 0xcd, 0xb0, 0xf7,
+ 0x8a, 0x13, 0x48, 0xa8,
+};
+static const struct drbg_kat_pr_false kat2385_t = {
+ 14, kat2385_entropyin, kat2385_nonce, kat2385_persstr,
+ kat2385_entropyinreseed, kat2385_addinreseed, kat2385_addin0,
+ kat2385_addin1, kat2385_retbits
+};
+static const struct drbg_kat kat2385 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat2385_t
+};
+
+static const unsigned char kat2386_entropyin[] = {
+ 0xd4, 0x22, 0xed, 0xef, 0x41, 0x62, 0x36, 0xb5, 0xfc, 0x6e, 0x34, 0x05,
+ 0x8c, 0x25, 0x88, 0xa0, 0xc7, 0xaa, 0xa0, 0xd0, 0x1f, 0xad, 0xcf, 0x80,
+ 0xe9, 0xd4, 0xd6, 0xef, 0x3c, 0x51, 0x57, 0xef,
+};
+static const unsigned char kat2386_nonce[] = {0};
+static const unsigned char kat2386_persstr[] = {
+ 0xc3, 0x3a, 0x82, 0x9f, 0xc5, 0x0c, 0x46, 0xbc, 0x71, 0x29, 0xe0, 0xc2,
+ 0x8d, 0x26, 0x0c, 0x45, 0x17, 0xb2, 0x8b, 0xa3, 0x2e, 0x5b, 0xe7, 0xc3,
+ 0x18, 0xf7, 0xf1, 0x82, 0x0a, 0x8c, 0x76, 0x0c,
+};
+static const unsigned char kat2386_entropyinreseed[] = {
+ 0xa2, 0x41, 0x28, 0x08, 0xf1, 0x38, 0xfb, 0x7d, 0x77, 0x24, 0xea, 0x2b,
+ 0xca, 0xbe, 0xd6, 0xa6, 0x5e, 0x71, 0x0c, 0x36, 0x5d, 0xa8, 0xa2, 0xf2,
+ 0x39, 0x56, 0xef, 0xeb, 0x96, 0x5d, 0x4d, 0x2e,
+};
+static const unsigned char kat2386_addinreseed[] = {
+ 0x24, 0x73, 0x3e, 0x6a, 0xce, 0xcc, 0x84, 0x9f, 0x12, 0x7a, 0xb1, 0x6a,
+ 0xd7, 0x54, 0x5a, 0x14, 0x83, 0x5c, 0x01, 0x06, 0x19, 0xde, 0xc1, 0x8a,
+ 0xef, 0x96, 0x22, 0x0b, 0xca, 0x09, 0x5b, 0xb5,
+};
+static const unsigned char kat2386_addin0[] = {
+ 0x8b, 0xbd, 0xe6, 0x36, 0x75, 0xda, 0x64, 0x5a, 0x25, 0x21, 0x11, 0xc5,
+ 0x4e, 0x3c, 0x61, 0xf2, 0x7b, 0xd2, 0xc0, 0x33, 0x97, 0x84, 0x5b, 0x59,
+ 0xe1, 0xf2, 0x2a, 0xbd, 0x81, 0xb4, 0x2c, 0xec,
+};
+static const unsigned char kat2386_addin1[] = {
+ 0x62, 0x20, 0x13, 0xfd, 0x3e, 0x2d, 0xf7, 0x9f, 0xe3, 0x4c, 0x27, 0x3a,
+ 0xf8, 0x42, 0x77, 0x80, 0x48, 0x68, 0x78, 0xaa, 0x90, 0xd0, 0xc2, 0x36,
+ 0x8d, 0xde, 0x1d, 0x75, 0x20, 0xb6, 0xab, 0x55,
+};
+static const unsigned char kat2386_retbits[] = {
+ 0xeb, 0x1b, 0x85, 0x51, 0xd1, 0x06, 0x2b, 0x90, 0x7e, 0xfe, 0x53, 0x02,
+ 0x3c, 0xde, 0x83, 0xd8, 0x8b, 0x4d, 0x1d, 0xb2, 0x89, 0x1b, 0x8d, 0xbb,
+ 0x8d, 0x10, 0xd6, 0x96, 0xcb, 0x32, 0xea, 0x0b, 0xed, 0x5d, 0x70, 0xd7,
+ 0x85, 0x7b, 0xf2, 0x99, 0x0c, 0x02, 0x2b, 0xe6, 0x77, 0xad, 0x75, 0xa3,
+ 0xc8, 0x04, 0x26, 0x3a, 0x77, 0x56, 0xd2, 0x6f, 0x62, 0x90, 0x54, 0xe0,
+ 0x52, 0xda, 0xfe, 0xbf,
+};
+static const struct drbg_kat_pr_false kat2386_t = {
+ 0, kat2386_entropyin, kat2386_nonce, kat2386_persstr,
+ kat2386_entropyinreseed, kat2386_addinreseed, kat2386_addin0,
+ kat2386_addin1, kat2386_retbits
+};
+static const struct drbg_kat kat2386 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2386_t
+};
+
+static const unsigned char kat2387_entropyin[] = {
+ 0xe4, 0x76, 0xb8, 0x7e, 0xfc, 0xcc, 0xb8, 0x8d, 0xfd, 0xbb, 0x6e, 0x34,
+ 0x27, 0x3e, 0x0a, 0x67, 0xc6, 0xaf, 0x69, 0x97, 0x8b, 0xed, 0x0c, 0x24,
+ 0xeb, 0x30, 0x08, 0x80, 0xda, 0x53, 0x1b, 0xb0,
+};
+static const unsigned char kat2387_nonce[] = {0};
+static const unsigned char kat2387_persstr[] = {
+ 0xeb, 0x90, 0x54, 0xf2, 0xab, 0xbd, 0xfb, 0x77, 0x8c, 0xb9, 0xf4, 0x24,
+ 0x4d, 0x8d, 0xf2, 0x13, 0xe1, 0x3c, 0xcd, 0x3d, 0x0e, 0x39, 0x51, 0x51,
+ 0xd9, 0xbd, 0x1e, 0xb5, 0xd8, 0xc8, 0x2d, 0x54,
+};
+static const unsigned char kat2387_entropyinreseed[] = {
+ 0x32, 0x9a, 0xdc, 0xee, 0xe7, 0x6f, 0x1b, 0x9d, 0xd4, 0xe2, 0x09, 0x69,
+ 0x47, 0xfd, 0xfd, 0x0c, 0xf2, 0xf3, 0x7e, 0x78, 0x02, 0xae, 0x7b, 0xa6,
+ 0xf6, 0xf4, 0xa6, 0x4f, 0x59, 0x4e, 0x13, 0x9e,
+};
+static const unsigned char kat2387_addinreseed[] = {
+ 0xb8, 0xaf, 0x7d, 0x0d, 0x51, 0x4e, 0xf5, 0x88, 0xb0, 0x53, 0x13, 0xdd,
+ 0xca, 0x65, 0xdd, 0xb2, 0x83, 0x0c, 0x04, 0x00, 0xf0, 0xb7, 0xac, 0x95,
+ 0xfa, 0xc3, 0xb8, 0xc7, 0xa5, 0x2a, 0xe0, 0x16,
+};
+static const unsigned char kat2387_addin0[] = {
+ 0x0b, 0x60, 0xef, 0xcd, 0xa1, 0x48, 0xb0, 0x6d, 0x11, 0xac, 0x61, 0x06,
+ 0x4c, 0x53, 0x49, 0x48, 0x69, 0xe9, 0xdf, 0x53, 0xb2, 0x1a, 0x62, 0xbb,
+ 0x52, 0xd2, 0x80, 0x95, 0xd4, 0xc6, 0x56, 0xe4,
+};
+static const unsigned char kat2387_addin1[] = {
+ 0xf8, 0xb6, 0x29, 0x3c, 0x60, 0x9e, 0xf8, 0x9b, 0x23, 0x9d, 0xc7, 0xfc,
+ 0xd2, 0xc4, 0x04, 0x80, 0x67, 0x43, 0xc8, 0x7e, 0x28, 0x78, 0x8b, 0x2c,
+ 0x45, 0xfd, 0xa2, 0x7e, 0x53, 0x6f, 0xbe, 0xc3,
+};
+static const unsigned char kat2387_retbits[] = {
+ 0xec, 0x75, 0x27, 0xec, 0xe6, 0xf3, 0x88, 0x16, 0x02, 0xa1, 0x85, 0xc6,
+ 0x63, 0x03, 0x6b, 0x22, 0x82, 0x19, 0x15, 0x34, 0x7c, 0xbe, 0xed, 0x6f,
+ 0xa5, 0x1b, 0xc9, 0x38, 0xe2, 0x08, 0x8c, 0xca, 0x6b, 0x87, 0xeb, 0x82,
+ 0xd8, 0xf1, 0x1b, 0xca, 0xb2, 0xe1, 0xcb, 0x11, 0xa4, 0xb1, 0xcd, 0x63,
+ 0x5f, 0xf7, 0xb8, 0x0b, 0x81, 0xf4, 0x09, 0x83, 0xca, 0x03, 0x5c, 0xd3,
+ 0x03, 0x6d, 0xf5, 0xdf,
+};
+static const struct drbg_kat_pr_false kat2387_t = {
+ 1, kat2387_entropyin, kat2387_nonce, kat2387_persstr,
+ kat2387_entropyinreseed, kat2387_addinreseed, kat2387_addin0,
+ kat2387_addin1, kat2387_retbits
+};
+static const struct drbg_kat kat2387 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2387_t
+};
+
+static const unsigned char kat2388_entropyin[] = {
+ 0x67, 0x48, 0x6c, 0xd0, 0xf3, 0x89, 0x13, 0xbd, 0x08, 0x0c, 0x08, 0xd7,
+ 0x98, 0xfa, 0x0d, 0x82, 0x87, 0x89, 0x3f, 0xd8, 0xd4, 0x78, 0x30, 0x55,
+ 0xc7, 0x73, 0xa3, 0x95, 0x43, 0xb6, 0x7d, 0x8c,
+};
+static const unsigned char kat2388_nonce[] = {0};
+static const unsigned char kat2388_persstr[] = {
+ 0xda, 0xdb, 0x51, 0x9f, 0x85, 0x93, 0x4d, 0x83, 0xe9, 0x59, 0xff, 0xaa,
+ 0x2f, 0x78, 0xa0, 0x08, 0x4d, 0x27, 0x76, 0xca, 0xf3, 0x7d, 0x78, 0x99,
+ 0xea, 0x73, 0xe0, 0x1b, 0xcd, 0x56, 0x53, 0xfc,
+};
+static const unsigned char kat2388_entropyinreseed[] = {
+ 0xdf, 0x23, 0x9e, 0x68, 0x77, 0xc1, 0xc3, 0xe4, 0x8e, 0xe3, 0x80, 0x62,
+ 0x9f, 0xde, 0x10, 0x56, 0x34, 0x41, 0xf8, 0xef, 0xf0, 0x6b, 0x16, 0x98,
+ 0x82, 0xa2, 0x76, 0xa8, 0x5b, 0xfa, 0xff, 0xd8,
+};
+static const unsigned char kat2388_addinreseed[] = {
+ 0xf0, 0xa9, 0xd6, 0x2d, 0x6d, 0xd4, 0x1b, 0x7a, 0x4d, 0x03, 0x8e, 0x7f,
+ 0x9e, 0x70, 0x55, 0x18, 0xbb, 0x08, 0xe3, 0x47, 0x94, 0xff, 0xdc, 0x80,
+ 0x12, 0x46, 0x3b, 0x12, 0x4c, 0xc4, 0x6e, 0xcd,
+};
+static const unsigned char kat2388_addin0[] = {
+ 0xa1, 0xff, 0x4e, 0xbd, 0x04, 0x77, 0x93, 0x38, 0x88, 0x4a, 0x06, 0x0a,
+ 0xd6, 0x97, 0x0e, 0x73, 0xaa, 0x54, 0x81, 0x63, 0x73, 0xb7, 0xa5, 0x0d,
+ 0xef, 0xc1, 0xf0, 0x17, 0x92, 0xf6, 0xb6, 0x7f,
+};
+static const unsigned char kat2388_addin1[] = {
+ 0x6a, 0x82, 0x57, 0xfe, 0x09, 0x04, 0x33, 0x77, 0x1b, 0x5c, 0xcd, 0x71,
+ 0x8a, 0xaf, 0xa2, 0x87, 0x55, 0xf7, 0x94, 0x6a, 0xde, 0xfd, 0xe8, 0x69,
+ 0x40, 0x2f, 0xeb, 0xa3, 0xba, 0x81, 0xe2, 0x54,
+};
+static const unsigned char kat2388_retbits[] = {
+ 0x9d, 0xd9, 0x4d, 0xd8, 0x59, 0x48, 0x3f, 0x5e, 0x56, 0xb7, 0xe1, 0xd1,
+ 0x31, 0x16, 0x6d, 0xa9, 0x1a, 0x17, 0x89, 0x35, 0x99, 0xcd, 0x85, 0x29,
+ 0xfd, 0xa4, 0xf3, 0x10, 0x8c, 0xa1, 0x3e, 0x30, 0x77, 0x60, 0x16, 0x1c,
+ 0x40, 0x93, 0x90, 0xcb, 0x88, 0x7f, 0xfd, 0x18, 0x03, 0x18, 0x4b, 0xc4,
+ 0x7a, 0x58, 0xf1, 0xfa, 0x88, 0x37, 0xca, 0xe0, 0x1e, 0x28, 0x08, 0xcc,
+ 0xc9, 0x61, 0xf4, 0x7d,
+};
+static const struct drbg_kat_pr_false kat2388_t = {
+ 2, kat2388_entropyin, kat2388_nonce, kat2388_persstr,
+ kat2388_entropyinreseed, kat2388_addinreseed, kat2388_addin0,
+ kat2388_addin1, kat2388_retbits
+};
+static const struct drbg_kat kat2388 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2388_t
+};
+
+static const unsigned char kat2389_entropyin[] = {
+ 0xcf, 0xb9, 0xf8, 0x0d, 0xc9, 0x05, 0xa4, 0xbd, 0xba, 0x94, 0xb0, 0x6c,
+ 0xc4, 0x19, 0x76, 0x16, 0x4c, 0x1e, 0x2a, 0xf2, 0xbe, 0x58, 0x30, 0xfc,
+ 0xb7, 0xf4, 0xeb, 0x3e, 0x74, 0xdb, 0x24, 0x05,
+};
+static const unsigned char kat2389_nonce[] = {0};
+static const unsigned char kat2389_persstr[] = {
+ 0xdc, 0x76, 0xf5, 0xfa, 0xf9, 0xc5, 0x78, 0x1c, 0x8b, 0xcf, 0x81, 0xe4,
+ 0xde, 0xad, 0x88, 0x3e, 0xc0, 0x0c, 0x0b, 0x59, 0x55, 0x3f, 0xf9, 0x57,
+ 0xda, 0xfc, 0xc7, 0x44, 0x05, 0x13, 0x14, 0x93,
+};
+static const unsigned char kat2389_entropyinreseed[] = {
+ 0xa8, 0x51, 0xc5, 0x68, 0xe5, 0xec, 0xf9, 0xe6, 0xc8, 0x40, 0xf7, 0xb3,
+ 0x29, 0x47, 0x1d, 0x38, 0x1a, 0x91, 0x11, 0x6e, 0xa2, 0x26, 0xdd, 0xf9,
+ 0x67, 0xab, 0x43, 0x47, 0x8b, 0x8a, 0x19, 0x9f,
+};
+static const unsigned char kat2389_addinreseed[] = {
+ 0x0e, 0xfa, 0x40, 0x03, 0xcd, 0x56, 0x33, 0x43, 0xd4, 0x61, 0xc0, 0x5b,
+ 0x85, 0xa3, 0xc3, 0x26, 0xfb, 0x68, 0x05, 0x64, 0x6d, 0x74, 0x69, 0x19,
+ 0x9f, 0x45, 0xe2, 0xa1, 0xe2, 0x0b, 0xef, 0x00,
+};
+static const unsigned char kat2389_addin0[] = {
+ 0xb5, 0x7b, 0x47, 0x6e, 0x20, 0xd1, 0x85, 0xd9, 0xd2, 0xa3, 0xf9, 0x31,
+ 0xbe, 0xd0, 0x46, 0x3f, 0x19, 0xc6, 0x73, 0xbb, 0x49, 0xc3, 0xa6, 0x81,
+ 0xc1, 0xb6, 0xc8, 0x12, 0x57, 0x1c, 0xfc, 0x7b,
+};
+static const unsigned char kat2389_addin1[] = {
+ 0x3c, 0x29, 0x5f, 0x47, 0xe5, 0x34, 0x33, 0x1d, 0xf2, 0xf6, 0x70, 0x71,
+ 0x22, 0xf0, 0x7f, 0x98, 0x37, 0xe9, 0x02, 0xe3, 0x79, 0x4e, 0x35, 0xdd,
+ 0x6e, 0x6d, 0x1b, 0x06, 0xc4, 0x0f, 0x2c, 0x0c,
+};
+static const unsigned char kat2389_retbits[] = {
+ 0x77, 0x7e, 0x5e, 0x33, 0xd6, 0xff, 0xf5, 0x52, 0x83, 0x76, 0x7e, 0x1c,
+ 0x7a, 0xdd, 0xf3, 0x76, 0x92, 0x11, 0x98, 0x3a, 0xf6, 0x12, 0xf1, 0xa8,
+ 0xb9, 0x37, 0x16, 0x31, 0x08, 0x07, 0x72, 0x10, 0x3f, 0xba, 0x8d, 0xff,
+ 0x4e, 0xbc, 0x40, 0x47, 0x6f, 0xa7, 0xa2, 0x19, 0xe6, 0x41, 0x61, 0x72,
+ 0xba, 0x8f, 0x3c, 0xd3, 0x66, 0xbd, 0xad, 0x48, 0x7e, 0xbb, 0x2f, 0xa7,
+ 0x8d, 0xf0, 0xf3, 0xd1,
+};
+static const struct drbg_kat_pr_false kat2389_t = {
+ 3, kat2389_entropyin, kat2389_nonce, kat2389_persstr,
+ kat2389_entropyinreseed, kat2389_addinreseed, kat2389_addin0,
+ kat2389_addin1, kat2389_retbits
+};
+static const struct drbg_kat kat2389 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2389_t
+};
+
+static const unsigned char kat2390_entropyin[] = {
+ 0xdb, 0x55, 0x2d, 0x5f, 0x75, 0xd1, 0x70, 0x74, 0x67, 0xe6, 0x28, 0x6e,
+ 0xff, 0x26, 0x47, 0x5e, 0xa4, 0x7f, 0xbf, 0xe7, 0xc6, 0x4b, 0x12, 0xed,
+ 0x34, 0xb3, 0x61, 0xf1, 0x50, 0xcd, 0xa0, 0x3f,
+};
+static const unsigned char kat2390_nonce[] = {0};
+static const unsigned char kat2390_persstr[] = {
+ 0x54, 0x08, 0xac, 0x0a, 0x26, 0x06, 0x1e, 0x09, 0x89, 0x90, 0x65, 0xc1,
+ 0xdd, 0xde, 0x78, 0x43, 0x9d, 0xbd, 0x5f, 0xfa, 0xab, 0xf7, 0x62, 0xc0,
+ 0x35, 0xe7, 0x17, 0x96, 0xa4, 0x64, 0x5d, 0x28,
+};
+static const unsigned char kat2390_entropyinreseed[] = {
+ 0xeb, 0x08, 0x44, 0x72, 0xba, 0x66, 0xc9, 0x20, 0xd8, 0xbc, 0x08, 0x7e,
+ 0xff, 0xc3, 0x0e, 0xbe, 0x7d, 0xb5, 0xba, 0x56, 0xe9, 0x75, 0x49, 0x0a,
+ 0xc2, 0xd3, 0x55, 0x23, 0x93, 0x88, 0x09, 0x3f,
+};
+static const unsigned char kat2390_addinreseed[] = {
+ 0x25, 0x5e, 0x86, 0x39, 0xcc, 0x74, 0xb7, 0x7e, 0xb1, 0x5a, 0xfe, 0xb6,
+ 0x1f, 0x90, 0x92, 0x6a, 0x2d, 0x43, 0x47, 0x78, 0x7b, 0x54, 0xf5, 0xd3,
+ 0x86, 0x1e, 0x66, 0xa0, 0x5f, 0x85, 0xd5, 0xc6,
+};
+static const unsigned char kat2390_addin0[] = {
+ 0x54, 0xfe, 0x7d, 0x9d, 0xc4, 0x0b, 0x8d, 0x18, 0x6f, 0xdd, 0x55, 0x25,
+ 0x00, 0x51, 0x41, 0x9d, 0x9c, 0x2b, 0x25, 0xad, 0xd4, 0xc7, 0xb3, 0x2b,
+ 0xcc, 0xf6, 0x00, 0x9a, 0x3d, 0x93, 0x88, 0x31,
+};
+static const unsigned char kat2390_addin1[] = {
+ 0x20, 0x6a, 0xe3, 0x0d, 0x2d, 0x6f, 0x7e, 0xe5, 0xdd, 0x0c, 0xdf, 0x2e,
+ 0x40, 0x35, 0x9a, 0x31, 0x83, 0x8f, 0xae, 0x94, 0xfd, 0x08, 0x17, 0x9a,
+ 0xf2, 0x33, 0x16, 0x02, 0x1b, 0xca, 0xf9, 0x04,
+};
+static const unsigned char kat2390_retbits[] = {
+ 0xa7, 0x2f, 0xcf, 0x91, 0x00, 0x01, 0x6c, 0xc4, 0x64, 0x56, 0xfc, 0x29,
+ 0x49, 0x80, 0x65, 0x12, 0xe1, 0xd3, 0x46, 0x28, 0x95, 0x57, 0x32, 0x2b,
+ 0xe1, 0x9b, 0x2e, 0x2b, 0x81, 0x63, 0xbf, 0x69, 0xab, 0x73, 0x8d, 0x30,
+ 0x70, 0x07, 0x7b, 0xb3, 0x55, 0xc6, 0xa8, 0x90, 0x1e, 0x75, 0xf4, 0xc6,
+ 0x06, 0x78, 0x31, 0xa0, 0xdb, 0xa9, 0x57, 0xd6, 0xd8, 0x7f, 0xaa, 0xe6,
+ 0xbf, 0x0f, 0x95, 0xeb,
+};
+static const struct drbg_kat_pr_false kat2390_t = {
+ 4, kat2390_entropyin, kat2390_nonce, kat2390_persstr,
+ kat2390_entropyinreseed, kat2390_addinreseed, kat2390_addin0,
+ kat2390_addin1, kat2390_retbits
+};
+static const struct drbg_kat kat2390 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2390_t
+};
+
+static const unsigned char kat2391_entropyin[] = {
+ 0x3a, 0x1c, 0x78, 0xa5, 0x6d, 0x5b, 0x7d, 0x01, 0x26, 0xab, 0xc6, 0x22,
+ 0x59, 0xc0, 0x42, 0x03, 0x8a, 0x3a, 0xac, 0x44, 0x8f, 0x93, 0xab, 0x44,
+ 0xef, 0x61, 0x12, 0x22, 0x43, 0x9e, 0x0c, 0x2b,
+};
+static const unsigned char kat2391_nonce[] = {0};
+static const unsigned char kat2391_persstr[] = {
+ 0x1e, 0x68, 0x2f, 0x42, 0xe2, 0xbc, 0x17, 0xde, 0x51, 0x55, 0xa3, 0xf3,
+ 0xfd, 0x93, 0x45, 0x75, 0x90, 0x6e, 0x19, 0xbb, 0x45, 0xe3, 0xd0, 0x10,
+ 0xfa, 0xf9, 0x62, 0x39, 0x82, 0xbb, 0xbb, 0x0f,
+};
+static const unsigned char kat2391_entropyinreseed[] = {
+ 0x8d, 0xc5, 0xa7, 0x83, 0xae, 0x1a, 0xdd, 0xc4, 0xb7, 0x3d, 0x39, 0xdc,
+ 0x57, 0x27, 0xa8, 0xbc, 0xc2, 0xd0, 0xd8, 0xc6, 0x03, 0x64, 0xdd, 0xe6,
+ 0x5b, 0xd9, 0xa0, 0xef, 0xbf, 0x50, 0x42, 0x75,
+};
+static const unsigned char kat2391_addinreseed[] = {
+ 0x73, 0x39, 0xe7, 0x10, 0x87, 0x72, 0xe6, 0x5c, 0x29, 0xb8, 0xb7, 0x47,
+ 0x15, 0x70, 0x84, 0x4a, 0x81, 0x5c, 0xc6, 0x38, 0xa0, 0xc2, 0xc8, 0xfa,
+ 0x68, 0x8b, 0xa6, 0x37, 0x7f, 0xfa, 0xe5, 0x56,
+};
+static const unsigned char kat2391_addin0[] = {
+ 0xd4, 0x63, 0xfa, 0xf4, 0xe0, 0x58, 0x52, 0x5d, 0x4a, 0xc2, 0x57, 0x50,
+ 0x53, 0xf8, 0x5c, 0xd4, 0x21, 0x6d, 0xf7, 0xd5, 0xef, 0xfd, 0x3d, 0xcc,
+ 0x52, 0x67, 0xd6, 0x81, 0xb8, 0x94, 0xc8, 0x04,
+};
+static const unsigned char kat2391_addin1[] = {
+ 0x39, 0x42, 0x7b, 0x84, 0xc2, 0x35, 0x43, 0x01, 0x14, 0xfc, 0xd4, 0x6c,
+ 0x8b, 0x07, 0x1c, 0x3e, 0x84, 0x31, 0xf5, 0x40, 0x26, 0xa4, 0xb9, 0x5a,
+ 0x0a, 0xc5, 0x86, 0xd4, 0xce, 0x49, 0xc7, 0xcd,
+};
+static const unsigned char kat2391_retbits[] = {
+ 0x3a, 0xc8, 0xb4, 0xa2, 0x15, 0xf9, 0xa4, 0x7e, 0x97, 0xa7, 0xe0, 0x15,
+ 0x0e, 0x8e, 0xd2, 0x7a, 0xb5, 0x9b, 0xb5, 0x7e, 0xfb, 0xeb, 0x13, 0x83,
+ 0xf5, 0xdb, 0x39, 0xb7, 0xed, 0xec, 0xee, 0x92, 0x05, 0xf5, 0xcc, 0xf4,
+ 0xd6, 0x6a, 0x9c, 0x28, 0x47, 0xb2, 0xc3, 0x59, 0x66, 0x0c, 0xac, 0xeb,
+ 0xb8, 0xc8, 0x52, 0xaf, 0x5d, 0x17, 0x45, 0x91, 0x74, 0x0e, 0x8c, 0xf9,
+ 0xe0, 0xf2, 0x9a, 0x12,
+};
+static const struct drbg_kat_pr_false kat2391_t = {
+ 5, kat2391_entropyin, kat2391_nonce, kat2391_persstr,
+ kat2391_entropyinreseed, kat2391_addinreseed, kat2391_addin0,
+ kat2391_addin1, kat2391_retbits
+};
+static const struct drbg_kat kat2391 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2391_t
+};
+
+static const unsigned char kat2392_entropyin[] = {
+ 0x15, 0xf1, 0xb6, 0x2b, 0x39, 0xaf, 0x34, 0x23, 0xe3, 0xf7, 0x7b, 0xcf,
+ 0xae, 0x9f, 0x5e, 0x89, 0x8c, 0xae, 0xdd, 0x6c, 0xde, 0x04, 0xa5, 0x14,
+ 0xf3, 0xba, 0xb8, 0xb4, 0xbc, 0x5f, 0xf2, 0xb5,
+};
+static const unsigned char kat2392_nonce[] = {0};
+static const unsigned char kat2392_persstr[] = {
+ 0x7b, 0x31, 0xdf, 0x6d, 0x1d, 0xd9, 0xc8, 0xda, 0x22, 0x10, 0x5f, 0xd2,
+ 0xa6, 0x15, 0xec, 0x67, 0xcd, 0x4d, 0x96, 0x39, 0x28, 0xc2, 0x3b, 0x61,
+ 0xa9, 0x58, 0x35, 0x2b, 0x97, 0xaa, 0x2f, 0x29,
+};
+static const unsigned char kat2392_entropyinreseed[] = {
+ 0x47, 0xdb, 0x12, 0xea, 0xb8, 0x42, 0x00, 0xc9, 0x90, 0x29, 0xcc, 0xa1,
+ 0x12, 0x15, 0x5b, 0x46, 0x82, 0x9a, 0x09, 0xcb, 0xf3, 0xbb, 0x8d, 0x0c,
+ 0x53, 0x49, 0x83, 0x32, 0x0b, 0x08, 0x66, 0x4b,
+};
+static const unsigned char kat2392_addinreseed[] = {
+ 0x2a, 0xc1, 0x0a, 0x72, 0xb1, 0xe9, 0x6c, 0xae, 0xc0, 0xc9, 0xfc, 0x04,
+ 0x36, 0x76, 0x88, 0xa6, 0x2d, 0xf2, 0xe8, 0x39, 0x89, 0xe7, 0xd7, 0xb5,
+ 0x81, 0x6b, 0xf8, 0x2a, 0xa7, 0xb5, 0xd5, 0x5c,
+};
+static const unsigned char kat2392_addin0[] = {
+ 0x88, 0x24, 0x08, 0xb6, 0x3e, 0xdb, 0x85, 0xee, 0x30, 0x60, 0xc0, 0xc0,
+ 0x23, 0x46, 0x46, 0x52, 0x2a, 0x3c, 0x3c, 0x9a, 0x9a, 0xdc, 0x23, 0x80,
+ 0x34, 0xfc, 0x3a, 0x3f, 0x8f, 0x3d, 0xd3, 0xf0,
+};
+static const unsigned char kat2392_addin1[] = {
+ 0x3d, 0x5c, 0xbe, 0xf0, 0xd5, 0xbf, 0xca, 0x58, 0xef, 0x82, 0x3f, 0x2b,
+ 0xb3, 0xb0, 0x71, 0xe3, 0xa6, 0x93, 0x8b, 0x61, 0xf3, 0xde, 0x58, 0xcd,
+ 0x18, 0xd0, 0xff, 0xe7, 0x1e, 0x87, 0xa1, 0x58,
+};
+static const unsigned char kat2392_retbits[] = {
+ 0x51, 0xba, 0x7f, 0x02, 0x0c, 0xb3, 0x15, 0xfa, 0xd6, 0xbd, 0xf1, 0x01,
+ 0x4d, 0xa8, 0xd1, 0x50, 0x03, 0x2b, 0x87, 0x3b, 0x09, 0x32, 0xcf, 0x15,
+ 0x81, 0x72, 0xf0, 0xa5, 0xd9, 0x23, 0x82, 0x2b, 0xd3, 0x26, 0xff, 0x7c,
+ 0xab, 0x77, 0xb7, 0x57, 0x69, 0xa6, 0x2d, 0x45, 0x18, 0x39, 0x56, 0xf9,
+ 0xe5, 0xa7, 0x58, 0x42, 0x03, 0xdd, 0x19, 0xac, 0x81, 0x8d, 0xf5, 0x90,
+ 0xef, 0x5e, 0xed, 0xf7,
+};
+static const struct drbg_kat_pr_false kat2392_t = {
+ 6, kat2392_entropyin, kat2392_nonce, kat2392_persstr,
+ kat2392_entropyinreseed, kat2392_addinreseed, kat2392_addin0,
+ kat2392_addin1, kat2392_retbits
+};
+static const struct drbg_kat kat2392 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2392_t
+};
+
+static const unsigned char kat2393_entropyin[] = {
+ 0x36, 0xc3, 0x9d, 0xae, 0x57, 0xd9, 0x9a, 0xfd, 0x30, 0xfd, 0x4e, 0xba,
+ 0xfd, 0x1c, 0x83, 0x43, 0xa7, 0x85, 0xfe, 0x26, 0xbd, 0xb1, 0x2e, 0xb3,
+ 0xbe, 0x90, 0xb5, 0xda, 0xcc, 0xd2, 0xa3, 0x45,
+};
+static const unsigned char kat2393_nonce[] = {0};
+static const unsigned char kat2393_persstr[] = {
+ 0x18, 0x85, 0x3c, 0x18, 0x69, 0x9a, 0x7b, 0x64, 0xf1, 0x36, 0xce, 0x24,
+ 0xa8, 0x19, 0x20, 0x52, 0xd7, 0x4e, 0x79, 0x9d, 0xc0, 0x6d, 0x2d, 0x8e,
+ 0x53, 0xbe, 0xf7, 0x47, 0xd6, 0xda, 0x42, 0xdb,
+};
+static const unsigned char kat2393_entropyinreseed[] = {
+ 0xf7, 0xab, 0x54, 0x75, 0x22, 0x02, 0xc9, 0xce, 0xfa, 0xc3, 0x67, 0xe3,
+ 0x7b, 0x28, 0xfa, 0x2f, 0x30, 0x4c, 0xc1, 0x78, 0xfc, 0x8c, 0x17, 0x9e,
+ 0x76, 0xdc, 0xe1, 0x1e, 0x3d, 0xc7, 0xa5, 0x26,
+};
+static const unsigned char kat2393_addinreseed[] = {
+ 0x61, 0xb9, 0xa2, 0xe8, 0xc1, 0x32, 0x85, 0x53, 0x42, 0x3e, 0xc0, 0xed,
+ 0x71, 0x8f, 0x53, 0x2e, 0xd9, 0xd5, 0x10, 0x36, 0x3b, 0x82, 0x59, 0x0c,
+ 0xcf, 0xb5, 0x1a, 0xca, 0x85, 0x94, 0xb4, 0xef,
+};
+static const unsigned char kat2393_addin0[] = {
+ 0x9d, 0xc4, 0x83, 0xda, 0xc4, 0x07, 0x20, 0x48, 0xc4, 0xec, 0x5a, 0x3b,
+ 0xeb, 0x21, 0x7e, 0xbf, 0xa4, 0x10, 0x36, 0x59, 0x45, 0xa7, 0xc2, 0x49,
+ 0xe1, 0x35, 0xae, 0x55, 0xc7, 0x9e, 0xed, 0xe8,
+};
+static const unsigned char kat2393_addin1[] = {
+ 0x84, 0x28, 0x11, 0x60, 0x18, 0x59, 0xfd, 0x73, 0x97, 0x54, 0xa6, 0xed,
+ 0x72, 0x50, 0x39, 0xbe, 0xcf, 0x0b, 0xe0, 0x4c, 0x17, 0x2c, 0xac, 0x5c,
+ 0x97, 0xfa, 0x2e, 0x4a, 0xe7, 0x16, 0x09, 0xb4,
+};
+static const unsigned char kat2393_retbits[] = {
+ 0x48, 0x15, 0x14, 0x02, 0x38, 0x30, 0xf4, 0x3b, 0x09, 0x28, 0x2c, 0xf0,
+ 0xfd, 0x98, 0x98, 0x7d, 0x1b, 0xfe, 0xe3, 0xd1, 0xba, 0x71, 0xa9, 0x1e,
+ 0xb8, 0x06, 0x58, 0x35, 0x0f, 0xa9, 0x13, 0x9b, 0x95, 0x67, 0x1f, 0x1f,
+ 0x49, 0x2c, 0xe3, 0x7e, 0xee, 0x4c, 0x63, 0x72, 0xec, 0x73, 0xa2, 0x6a,
+ 0xdd, 0xd3, 0x50, 0x8e, 0x28, 0xed, 0x4e, 0xb0, 0xed, 0x83, 0x48, 0xfd,
+ 0x28, 0xfe, 0x56, 0x9c,
+};
+static const struct drbg_kat_pr_false kat2393_t = {
+ 7, kat2393_entropyin, kat2393_nonce, kat2393_persstr,
+ kat2393_entropyinreseed, kat2393_addinreseed, kat2393_addin0,
+ kat2393_addin1, kat2393_retbits
+};
+static const struct drbg_kat kat2393 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2393_t
+};
+
+static const unsigned char kat2394_entropyin[] = {
+ 0x77, 0xd8, 0xb9, 0x76, 0x47, 0x5a, 0x2d, 0xa0, 0x9a, 0xfe, 0x53, 0xeb,
+ 0x63, 0x75, 0x14, 0x7c, 0x47, 0xc1, 0x4a, 0xe3, 0xe8, 0x0b, 0x56, 0xce,
+ 0x90, 0xcd, 0xbe, 0x10, 0x39, 0x89, 0xd4, 0x1d,
+};
+static const unsigned char kat2394_nonce[] = {0};
+static const unsigned char kat2394_persstr[] = {
+ 0x58, 0xa0, 0x54, 0x6a, 0xe7, 0xfb, 0x83, 0xd3, 0x5e, 0x9b, 0x8b, 0xe9,
+ 0xe5, 0xac, 0xab, 0xdd, 0x07, 0x50, 0x40, 0x78, 0x9e, 0x4a, 0x9b, 0x05,
+ 0x4e, 0x32, 0x1a, 0x92, 0x68, 0x31, 0x49, 0x5d,
+};
+static const unsigned char kat2394_entropyinreseed[] = {
+ 0xf2, 0x31, 0xbf, 0x21, 0x65, 0x5d, 0xe0, 0x14, 0xcd, 0x1b, 0x06, 0xe0,
+ 0x7d, 0x8d, 0x11, 0xea, 0x7f, 0xe0, 0x32, 0x8e, 0x67, 0x00, 0xd9, 0xe6,
+ 0x28, 0x9e, 0xb8, 0xdf, 0x1c, 0x63, 0x52, 0x08,
+};
+static const unsigned char kat2394_addinreseed[] = {
+ 0x73, 0x98, 0x48, 0x0c, 0xf9, 0xcd, 0x0e, 0xe4, 0xd4, 0x8d, 0x5e, 0x04,
+ 0xbd, 0x46, 0x03, 0xf1, 0xc6, 0xd9, 0x84, 0x7b, 0x8e, 0xbc, 0x37, 0xf0,
+ 0x14, 0x5b, 0x50, 0xe6, 0x64, 0x8a, 0x8d, 0xa5,
+};
+static const unsigned char kat2394_addin0[] = {
+ 0x5d, 0x40, 0x48, 0x36, 0xeb, 0x95, 0x7f, 0x47, 0x21, 0x69, 0x57, 0xfd,
+ 0xff, 0x9a, 0xdc, 0x1d, 0x80, 0x5b, 0xeb, 0x1d, 0x74, 0xde, 0x37, 0xde,
+ 0xca, 0xf1, 0x8d, 0x16, 0x38, 0xab, 0x7d, 0xf2,
+};
+static const unsigned char kat2394_addin1[] = {
+ 0x0d, 0x05, 0xe8, 0x4f, 0x22, 0xd2, 0x4f, 0x81, 0x4c, 0xf3, 0xac, 0xc6,
+ 0xce, 0x9a, 0xdc, 0xd5, 0xa1, 0xe6, 0xc1, 0xa1, 0x19, 0xab, 0xa1, 0xc9,
+ 0x41, 0xa2, 0x7c, 0xa7, 0x2c, 0x89, 0x46, 0xbf,
+};
+static const unsigned char kat2394_retbits[] = {
+ 0x1e, 0x50, 0xe3, 0x91, 0xd8, 0x03, 0x89, 0x80, 0x8c, 0xfe, 0xa2, 0xad,
+ 0xf3, 0xc5, 0xba, 0x78, 0xa4, 0xef, 0x35, 0x5e, 0xa3, 0x59, 0xb8, 0xdb,
+ 0xaa, 0x0f, 0xfc, 0x8b, 0x54, 0x4f, 0x55, 0x74, 0xc8, 0x8c, 0x0f, 0xc7,
+ 0x1d, 0xbc, 0xfd, 0x71, 0x4c, 0x3b, 0x61, 0x3e, 0xff, 0xc0, 0xe5, 0xc2,
+ 0x58, 0x55, 0x77, 0xf2, 0x31, 0xd8, 0x12, 0x4f, 0x47, 0xe1, 0xfd, 0x7c,
+ 0x3a, 0xb4, 0x16, 0xe1,
+};
+static const struct drbg_kat_pr_false kat2394_t = {
+ 8, kat2394_entropyin, kat2394_nonce, kat2394_persstr,
+ kat2394_entropyinreseed, kat2394_addinreseed, kat2394_addin0,
+ kat2394_addin1, kat2394_retbits
+};
+static const struct drbg_kat kat2394 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2394_t
+};
+
+static const unsigned char kat2395_entropyin[] = {
+ 0x0b, 0x8b, 0xba, 0xe7, 0x2b, 0xb6, 0xd5, 0xe5, 0x93, 0x98, 0x49, 0x7a,
+ 0x0c, 0x7e, 0x90, 0x0e, 0xe8, 0x46, 0x90, 0x46, 0x9c, 0x07, 0xe7, 0x27,
+ 0x04, 0xc3, 0xf9, 0xf7, 0x9c, 0xf8, 0xfa, 0x47,
+};
+static const unsigned char kat2395_nonce[] = {0};
+static const unsigned char kat2395_persstr[] = {
+ 0xb7, 0x33, 0x1d, 0xfe, 0xef, 0x1b, 0xb7, 0xb7, 0x60, 0x15, 0xf1, 0x81,
+ 0xa3, 0x0f, 0x56, 0x6c, 0xf2, 0xe2, 0x61, 0x6a, 0x73, 0xed, 0x49, 0x46,
+ 0x53, 0x21, 0x8f, 0x43, 0x04, 0x0b, 0x5f, 0xb1,
+};
+static const unsigned char kat2395_entropyinreseed[] = {
+ 0x3c, 0x5a, 0x05, 0xdf, 0x76, 0xba, 0xe6, 0x2c, 0x6f, 0xea, 0xe1, 0xb7,
+ 0x30, 0x5a, 0x52, 0xf2, 0x06, 0xb6, 0x96, 0xfd, 0x31, 0xcf, 0x61, 0x06,
+ 0xce, 0x89, 0x9c, 0x14, 0xc6, 0xba, 0x41, 0x38,
+};
+static const unsigned char kat2395_addinreseed[] = {
+ 0xbd, 0xb3, 0xc0, 0xb0, 0xa5, 0x0d, 0x7f, 0x62, 0x28, 0x52, 0xa0, 0x11,
+ 0xf6, 0x7d, 0xa2, 0x1b, 0x11, 0x70, 0x15, 0xea, 0x6e, 0x89, 0xbf, 0x46,
+ 0xf0, 0xe8, 0xf4, 0x48, 0x41, 0xb4, 0x73, 0x3e,
+};
+static const unsigned char kat2395_addin0[] = {
+ 0xec, 0xc1, 0xf3, 0xd4, 0x39, 0x82, 0xa8, 0x54, 0x50, 0x42, 0x44, 0x27,
+ 0x3a, 0xe7, 0x57, 0xe9, 0x25, 0x69, 0x67, 0xd1, 0x19, 0x24, 0xcb, 0xfb,
+ 0x1d, 0x99, 0xc2, 0x3c, 0x20, 0xa4, 0xc1, 0x4c,
+};
+static const unsigned char kat2395_addin1[] = {
+ 0xc6, 0xd2, 0x44, 0xa0, 0xbb, 0xd6, 0x9d, 0x5a, 0x7a, 0x22, 0xb4, 0x56,
+ 0x42, 0x5e, 0x97, 0xc4, 0x3d, 0x1d, 0x90, 0x66, 0x00, 0x36, 0xea, 0xd4,
+ 0x4c, 0x16, 0xc8, 0x6f, 0x43, 0xa0, 0x75, 0xd4,
+};
+static const unsigned char kat2395_retbits[] = {
+ 0x74, 0x0f, 0x54, 0x71, 0x0d, 0xb8, 0x7d, 0x08, 0x66, 0xb1, 0xbf, 0x32,
+ 0x3b, 0xba, 0xd8, 0x08, 0xef, 0x10, 0xb1, 0xa0, 0x4b, 0x5b, 0xbc, 0xa3,
+ 0xae, 0x03, 0x74, 0xb2, 0xfb, 0x8b, 0x0f, 0x03, 0xd5, 0x8c, 0x2e, 0xf0,
+ 0x39, 0xf8, 0x04, 0x85, 0xd1, 0xe9, 0xc7, 0x40, 0xb5, 0xf0, 0x1e, 0x2d,
+ 0x36, 0xc4, 0x63, 0xea, 0x07, 0xbd, 0x10, 0x0a, 0x87, 0x6b, 0x1c, 0xda,
+ 0x60, 0xae, 0x79, 0x69,
+};
+static const struct drbg_kat_pr_false kat2395_t = {
+ 9, kat2395_entropyin, kat2395_nonce, kat2395_persstr,
+ kat2395_entropyinreseed, kat2395_addinreseed, kat2395_addin0,
+ kat2395_addin1, kat2395_retbits
+};
+static const struct drbg_kat kat2395 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2395_t
+};
+
+static const unsigned char kat2396_entropyin[] = {
+ 0x1c, 0x57, 0x53, 0x52, 0x09, 0x25, 0x30, 0xf9, 0x90, 0xb7, 0x71, 0x18,
+ 0x69, 0x77, 0xbd, 0xd6, 0x84, 0x5b, 0xd3, 0x4b, 0x47, 0xaa, 0xd8, 0xd9,
+ 0x81, 0x77, 0x83, 0xb0, 0x4e, 0xbf, 0xbc, 0xc6,
+};
+static const unsigned char kat2396_nonce[] = {0};
+static const unsigned char kat2396_persstr[] = {
+ 0x4e, 0x74, 0xeb, 0xc3, 0x6d, 0x1e, 0x97, 0xc5, 0x76, 0x5a, 0x20, 0xb7,
+ 0x89, 0x72, 0xc0, 0x5f, 0x34, 0xf4, 0x13, 0x06, 0x82, 0x3c, 0x73, 0x8d,
+ 0x62, 0x79, 0xb5, 0x85, 0x77, 0x7a, 0xa7, 0xf3,
+};
+static const unsigned char kat2396_entropyinreseed[] = {
+ 0x93, 0x4e, 0x50, 0x79, 0x4c, 0xc9, 0x04, 0x06, 0xeb, 0x2f, 0xbd, 0x8a,
+ 0x46, 0xa9, 0xa0, 0x9e, 0xbd, 0xc3, 0xf9, 0x80, 0x26, 0x04, 0xc6, 0x60,
+ 0x8b, 0xe0, 0x8c, 0xa2, 0x71, 0x09, 0xe5, 0xe3,
+};
+static const unsigned char kat2396_addinreseed[] = {
+ 0x58, 0x67, 0xc2, 0x37, 0x3d, 0x3a, 0x6d, 0xa7, 0xbc, 0x6b, 0xd5, 0x0a,
+ 0x4b, 0x25, 0x55, 0x58, 0x7f, 0x44, 0xcf, 0x13, 0x1d, 0x0a, 0xdf, 0x91,
+ 0x26, 0x0d, 0xa9, 0xe0, 0x32, 0xfc, 0x36, 0x80,
+};
+static const unsigned char kat2396_addin0[] = {
+ 0x86, 0x1b, 0xa9, 0xa0, 0x09, 0x5d, 0x81, 0x8f, 0x85, 0x11, 0xfc, 0x56,
+ 0xbf, 0x3f, 0xdf, 0xa9, 0x00, 0x32, 0x8c, 0x38, 0x8e, 0x9e, 0xd8, 0x0f,
+ 0x3d, 0x8e, 0x40, 0xde, 0xa0, 0x78, 0x8a, 0x80,
+};
+static const unsigned char kat2396_addin1[] = {
+ 0xa5, 0x15, 0x43, 0x3a, 0x73, 0xbc, 0xd0, 0x3a, 0x4f, 0x65, 0x61, 0x71,
+ 0x7b, 0x44, 0x6e, 0x8e, 0xb7, 0xec, 0xac, 0x2b, 0x29, 0xcc, 0x87, 0xec,
+ 0x9c, 0xa5, 0xa4, 0x4e, 0x6f, 0xad, 0xca, 0x8a,
+};
+static const unsigned char kat2396_retbits[] = {
+ 0x57, 0xd9, 0x51, 0x3a, 0xb6, 0xbc, 0x4e, 0x5a, 0x40, 0xdd, 0x23, 0x1a,
+ 0x3e, 0x9b, 0xa5, 0x5a, 0xa9, 0x26, 0x44, 0xfa, 0x6e, 0x0c, 0x6b, 0xe4,
+ 0xf9, 0x62, 0xfd, 0x87, 0x88, 0x20, 0x4c, 0xaf, 0x94, 0x83, 0x7e, 0x90,
+ 0x74, 0x31, 0x81, 0x5a, 0x15, 0x0e, 0x7d, 0x72, 0x2e, 0x2d, 0xaa, 0x4e,
+ 0xe0, 0x5e, 0x64, 0x7c, 0x9a, 0xe0, 0xfa, 0x75, 0xa0, 0xa6, 0xef, 0x42,
+ 0x04, 0xd7, 0x4c, 0x16,
+};
+static const struct drbg_kat_pr_false kat2396_t = {
+ 10, kat2396_entropyin, kat2396_nonce, kat2396_persstr,
+ kat2396_entropyinreseed, kat2396_addinreseed, kat2396_addin0,
+ kat2396_addin1, kat2396_retbits
+};
+static const struct drbg_kat kat2396 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2396_t
+};
+
+static const unsigned char kat2397_entropyin[] = {
+ 0x18, 0x67, 0x71, 0xfb, 0x18, 0xb7, 0xb7, 0x5d, 0xc1, 0xab, 0x2b, 0x51,
+ 0xab, 0x0e, 0x52, 0x42, 0xdc, 0xb1, 0x12, 0x85, 0xcd, 0xc6, 0x1b, 0x11,
+ 0x2f, 0xb2, 0x39, 0xf5, 0x79, 0xfb, 0x5c, 0xd2,
+};
+static const unsigned char kat2397_nonce[] = {0};
+static const unsigned char kat2397_persstr[] = {
+ 0xc8, 0x08, 0x40, 0xa4, 0x2b, 0x99, 0x92, 0xb2, 0x88, 0xd4, 0x2c, 0xc9,
+ 0x6a, 0x8e, 0xa5, 0xf9, 0x3e, 0x42, 0x85, 0xcb, 0x53, 0x3e, 0x29, 0xe8,
+ 0xa4, 0xbf, 0x5a, 0x92, 0xa5, 0x5f, 0xa6, 0xf8,
+};
+static const unsigned char kat2397_entropyinreseed[] = {
+ 0xa3, 0x19, 0x7e, 0xf6, 0x8c, 0x1d, 0x6e, 0xdc, 0x7e, 0xde, 0xcf, 0xf7,
+ 0xc0, 0xc8, 0x56, 0x1a, 0x9c, 0x33, 0xde, 0x2c, 0x65, 0xa2, 0x1f, 0xa2,
+ 0x26, 0xce, 0x59, 0x92, 0xe1, 0xc7, 0xaa, 0x68,
+};
+static const unsigned char kat2397_addinreseed[] = {
+ 0xdb, 0xd9, 0xca, 0xc0, 0x49, 0xbf, 0x73, 0x5c, 0x11, 0xfa, 0x86, 0x91,
+ 0x4f, 0xd1, 0x39, 0x59, 0x90, 0xf7, 0x49, 0xde, 0x8f, 0x38, 0x57, 0xac,
+ 0x2a, 0xc1, 0xf2, 0x3d, 0x57, 0x27, 0x0c, 0x30,
+};
+static const unsigned char kat2397_addin0[] = {
+ 0x5a, 0x4b, 0x6d, 0x82, 0x90, 0x43, 0x62, 0x1c, 0x5d, 0x46, 0x53, 0x13,
+ 0x81, 0x30, 0x58, 0x59, 0xdf, 0xcd, 0xb8, 0x6d, 0x08, 0x45, 0xda, 0xc7,
+ 0x8f, 0xea, 0xc0, 0x72, 0x30, 0x5b, 0x63, 0xe4,
+};
+static const unsigned char kat2397_addin1[] = {
+ 0xea, 0xec, 0xc2, 0x89, 0xf6, 0xdb, 0x7c, 0x0e, 0x15, 0x0d, 0xff, 0x9d,
+ 0xa1, 0x18, 0x84, 0xb4, 0x8e, 0xbe, 0xf4, 0x7a, 0x50, 0x60, 0xcd, 0xd7,
+ 0x42, 0x83, 0x91, 0x89, 0x2a, 0x4c, 0x99, 0x69,
+};
+static const unsigned char kat2397_retbits[] = {
+ 0xc0, 0x34, 0xbf, 0xd6, 0xd1, 0x78, 0x06, 0xdf, 0x4b, 0x45, 0xf7, 0x84,
+ 0x4a, 0xe6, 0xa7, 0xc9, 0xb6, 0x8a, 0x61, 0x5d, 0xdb, 0xce, 0x4e, 0xf4,
+ 0x0b, 0x96, 0x4e, 0x02, 0x97, 0x23, 0x6d, 0x42, 0x9c, 0x3a, 0xe0, 0xb9,
+ 0x95, 0x4f, 0xca, 0x08, 0xb4, 0xdc, 0x72, 0x80, 0x9c, 0x0d, 0x5a, 0x14,
+ 0x5a, 0x51, 0xfa, 0x30, 0x2d, 0x0f, 0x1b, 0x25, 0x1b, 0xc6, 0xdb, 0x8b,
+ 0x4b, 0x81, 0x5a, 0x4a,
+};
+static const struct drbg_kat_pr_false kat2397_t = {
+ 11, kat2397_entropyin, kat2397_nonce, kat2397_persstr,
+ kat2397_entropyinreseed, kat2397_addinreseed, kat2397_addin0,
+ kat2397_addin1, kat2397_retbits
+};
+static const struct drbg_kat kat2397 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2397_t
+};
+
+static const unsigned char kat2398_entropyin[] = {
+ 0x05, 0xe3, 0x3f, 0xbf, 0xcc, 0x36, 0x2f, 0x65, 0xdf, 0x5f, 0xb1, 0x70,
+ 0xbc, 0x73, 0x52, 0x84, 0xa4, 0x0b, 0xd7, 0x05, 0x88, 0xca, 0x3e, 0xa6,
+ 0x90, 0x03, 0xc2, 0x43, 0x9f, 0xa0, 0x30, 0xbd,
+};
+static const unsigned char kat2398_nonce[] = {0};
+static const unsigned char kat2398_persstr[] = {
+ 0xa9, 0x8d, 0x93, 0x41, 0x48, 0xac, 0x82, 0x4d, 0x16, 0xf9, 0x45, 0x42,
+ 0xf3, 0x5a, 0x20, 0xbb, 0x9e, 0x29, 0x59, 0xfc, 0xff, 0x2a, 0x43, 0x2e,
+ 0x8c, 0x03, 0xfb, 0x0c, 0x18, 0x9e, 0xc6, 0xd3,
+};
+static const unsigned char kat2398_entropyinreseed[] = {
+ 0xde, 0x2b, 0x7b, 0xb5, 0x3e, 0xa6, 0xea, 0x0a, 0xe6, 0xd9, 0x6c, 0xb3,
+ 0x2d, 0xc5, 0xc6, 0xdb, 0xb3, 0xfc, 0xad, 0x7f, 0xf1, 0x16, 0xc8, 0xb2,
+ 0xbe, 0x53, 0xc1, 0x35, 0x85, 0xc5, 0x3e, 0x41,
+};
+static const unsigned char kat2398_addinreseed[] = {
+ 0xbf, 0xef, 0x2d, 0xbf, 0x7e, 0x8d, 0xac, 0xe5, 0x64, 0x5c, 0x4e, 0x53,
+ 0xae, 0x10, 0x21, 0xca, 0x7f, 0x93, 0x1f, 0xc9, 0x2e, 0x39, 0x75, 0x9e,
+ 0x96, 0xb0, 0x9a, 0x5a, 0x90, 0xac, 0x60, 0x8f,
+};
+static const unsigned char kat2398_addin0[] = {
+ 0xfe, 0x39, 0xd1, 0x67, 0x16, 0x70, 0xd0, 0x5b, 0x73, 0xd4, 0x5b, 0x02,
+ 0x0d, 0xb3, 0x05, 0x40, 0x9e, 0xdc, 0x11, 0x46, 0x58, 0xba, 0x40, 0xd7,
+ 0xdc, 0x6e, 0x7f, 0xba, 0x60, 0x08, 0xf7, 0xc3,
+};
+static const unsigned char kat2398_addin1[] = {
+ 0x45, 0x87, 0xfc, 0xf7, 0xef, 0x2a, 0x84, 0x98, 0xee, 0xef, 0x89, 0x72,
+ 0x49, 0xc9, 0xfb, 0x96, 0x80, 0x28, 0xa3, 0x81, 0xb9, 0xf3, 0x4c, 0x44,
+ 0x2f, 0x9e, 0x88, 0x57, 0x56, 0xce, 0x68, 0x62,
+};
+static const unsigned char kat2398_retbits[] = {
+ 0x36, 0x5a, 0x5b, 0x95, 0x3d, 0xa1, 0xf0, 0xf3, 0x6f, 0x42, 0xb0, 0x49,
+ 0xc1, 0x94, 0xa5, 0x15, 0x0e, 0x2d, 0x44, 0xaf, 0x2e, 0xeb, 0x48, 0x25,
+ 0xf5, 0x86, 0x5f, 0xe0, 0xaf, 0xf1, 0x49, 0x90, 0x4e, 0x4f, 0xc0, 0x73,
+ 0xe7, 0x19, 0x36, 0x9f, 0x32, 0x95, 0x07, 0x12, 0x35, 0x27, 0x11, 0xb5,
+ 0x73, 0x05, 0xbe, 0xee, 0x63, 0x6a, 0xa8, 0x11, 0x76, 0xfb, 0xd0, 0xd0,
+ 0x8c, 0xeb, 0x62, 0x67,
+};
+static const struct drbg_kat_pr_false kat2398_t = {
+ 12, kat2398_entropyin, kat2398_nonce, kat2398_persstr,
+ kat2398_entropyinreseed, kat2398_addinreseed, kat2398_addin0,
+ kat2398_addin1, kat2398_retbits
+};
+static const struct drbg_kat kat2398 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2398_t
+};
+
+static const unsigned char kat2399_entropyin[] = {
+ 0x9c, 0x5a, 0xe1, 0x06, 0xf2, 0xf0, 0xb0, 0x69, 0x6b, 0x77, 0xb5, 0x1f,
+ 0xcd, 0xb9, 0x5d, 0xae, 0x3d, 0xe9, 0xe6, 0x68, 0x3a, 0x0c, 0xed, 0x8a,
+ 0xee, 0xd2, 0x71, 0x94, 0xec, 0xe3, 0x35, 0x0b,
+};
+static const unsigned char kat2399_nonce[] = {0};
+static const unsigned char kat2399_persstr[] = {
+ 0x03, 0x2a, 0xd2, 0x0b, 0xd1, 0xf6, 0x6f, 0x71, 0x3b, 0xc1, 0x46, 0x78,
+ 0x99, 0xa0, 0x4a, 0xa1, 0xeb, 0xc2, 0xd3, 0x07, 0xcf, 0x33, 0xa4, 0xbe,
+ 0xad, 0xb7, 0xd6, 0xeb, 0x12, 0x27, 0xc0, 0xe3,
+};
+static const unsigned char kat2399_entropyinreseed[] = {
+ 0x57, 0x2d, 0x09, 0x71, 0x05, 0x0e, 0x4d, 0x17, 0x93, 0x0f, 0xc3, 0x53,
+ 0x85, 0xbe, 0x7c, 0x27, 0x91, 0x13, 0x60, 0x83, 0x97, 0x70, 0x65, 0x92,
+ 0x3f, 0xd1, 0x12, 0xa5, 0x89, 0xe2, 0x9d, 0x26,
+};
+static const unsigned char kat2399_addinreseed[] = {
+ 0xe6, 0xfb, 0xaa, 0xf4, 0xb3, 0x4b, 0x7c, 0x7c, 0x93, 0x63, 0x66, 0xfb,
+ 0x23, 0x56, 0xae, 0x9f, 0x8b, 0x3d, 0x50, 0xab, 0x60, 0x36, 0xa2, 0xc5,
+ 0x7e, 0x01, 0xef, 0x13, 0x04, 0x21, 0xb9, 0xce,
+};
+static const unsigned char kat2399_addin0[] = {
+ 0xbf, 0xa9, 0x28, 0x4f, 0xe2, 0x02, 0x3d, 0x5b, 0x33, 0x45, 0x7f, 0x80,
+ 0x55, 0x94, 0x53, 0x94, 0x40, 0xe8, 0x87, 0x8b, 0x44, 0x32, 0xea, 0x82,
+ 0x8e, 0xf6, 0x78, 0x34, 0x9f, 0x4e, 0x0e, 0xa4,
+};
+static const unsigned char kat2399_addin1[] = {
+ 0xab, 0xc9, 0x6a, 0x6b, 0x4a, 0xc6, 0x03, 0x47, 0x1c, 0x51, 0x4d, 0xe8,
+ 0x02, 0xa0, 0x0e, 0x2d, 0xdd, 0x09, 0x0c, 0x68, 0xd6, 0x86, 0xbc, 0x3a,
+ 0x54, 0x3b, 0x53, 0xaf, 0x69, 0xbc, 0xfd, 0x0e,
+};
+static const unsigned char kat2399_retbits[] = {
+ 0x9b, 0xfd, 0xf7, 0xe1, 0x0b, 0xae, 0xe4, 0x03, 0x90, 0x40, 0xee, 0x0e,
+ 0xa2, 0x17, 0x69, 0x84, 0x46, 0x16, 0xc3, 0xe2, 0xe7, 0x87, 0xc9, 0x74,
+ 0x27, 0x51, 0x43, 0x35, 0xaa, 0x2c, 0x3c, 0xa4, 0xe7, 0xbb, 0xfa, 0xea,
+ 0x6f, 0xe9, 0x30, 0xd1, 0x84, 0xdf, 0x7b, 0xda, 0x95, 0xe0, 0x76, 0x55,
+ 0xee, 0x9e, 0x4e, 0x10, 0x20, 0x86, 0x6f, 0x8c, 0xff, 0x42, 0x2a, 0x8f,
+ 0xc2, 0xb3, 0xb0, 0xe9,
+};
+static const struct drbg_kat_pr_false kat2399_t = {
+ 13, kat2399_entropyin, kat2399_nonce, kat2399_persstr,
+ kat2399_entropyinreseed, kat2399_addinreseed, kat2399_addin0,
+ kat2399_addin1, kat2399_retbits
+};
+static const struct drbg_kat kat2399 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2399_t
+};
+
+static const unsigned char kat2400_entropyin[] = {
+ 0x24, 0x42, 0xa2, 0x67, 0xb4, 0x38, 0x99, 0xbf, 0xdf, 0xad, 0xa9, 0x8c,
+ 0xca, 0x39, 0x48, 0xba, 0x36, 0x20, 0x66, 0x1e, 0xec, 0xfd, 0x79, 0x28,
+ 0x73, 0x3d, 0x25, 0x67, 0xf5, 0xba, 0xac, 0x21,
+};
+static const unsigned char kat2400_nonce[] = {0};
+static const unsigned char kat2400_persstr[] = {
+ 0x73, 0x76, 0x09, 0x9e, 0xf7, 0x6e, 0x4c, 0xb0, 0x57, 0x80, 0x9b, 0xd9,
+ 0x0a, 0x70, 0xe9, 0x09, 0xbf, 0xd9, 0x79, 0xad, 0x85, 0xb8, 0x7f, 0x08,
+ 0xe7, 0x66, 0x94, 0xb1, 0x58, 0xfd, 0x17, 0x7e,
+};
+static const unsigned char kat2400_entropyinreseed[] = {
+ 0xd3, 0xd6, 0xf9, 0x86, 0x49, 0xb7, 0x0e, 0x7e, 0x49, 0x7e, 0x64, 0x36,
+ 0xa6, 0x3a, 0x6f, 0x96, 0x91, 0x3f, 0x7d, 0xef, 0xf3, 0x44, 0x1c, 0x1d,
+ 0x28, 0x75, 0x88, 0x35, 0x73, 0x7e, 0x66, 0x19,
+};
+static const unsigned char kat2400_addinreseed[] = {
+ 0xfa, 0x20, 0x70, 0x6a, 0x43, 0x39, 0x1a, 0x74, 0xd8, 0x7f, 0x46, 0x69,
+ 0x27, 0x6e, 0x1f, 0x8a, 0xc4, 0xcb, 0x54, 0xa5, 0x21, 0xe1, 0x52, 0x1a,
+ 0xfa, 0x93, 0xe4, 0x18, 0x50, 0x38, 0x85, 0x6a,
+};
+static const unsigned char kat2400_addin0[] = {
+ 0xb6, 0x43, 0x01, 0x34, 0x74, 0xa3, 0x7b, 0x20, 0x8a, 0x6f, 0x6c, 0x44,
+ 0xcc, 0x56, 0xb1, 0xca, 0xea, 0x69, 0xe1, 0x28, 0x9d, 0x88, 0x97, 0xd5,
+ 0x3f, 0x40, 0x42, 0x3d, 0x9a, 0x6a, 0x40, 0xaa,
+};
+static const unsigned char kat2400_addin1[] = {
+ 0xb1, 0xe0, 0x7a, 0x0f, 0x97, 0x40, 0xc4, 0x93, 0x35, 0xab, 0x52, 0x44,
+ 0xe3, 0xb7, 0xaa, 0x56, 0x7c, 0x72, 0x34, 0xe0, 0x12, 0x53, 0xfa, 0x1c,
+ 0x31, 0x37, 0x2a, 0xc4, 0x3b, 0x1d, 0x65, 0x19,
+};
+static const unsigned char kat2400_retbits[] = {
+ 0x6e, 0x5f, 0xb2, 0x13, 0xd4, 0xbe, 0xf4, 0x0b, 0x3f, 0x27, 0x4f, 0x95,
+ 0x69, 0x60, 0xa1, 0xe0, 0xd2, 0x8e, 0x53, 0x99, 0xbf, 0xcf, 0x27, 0x09,
+ 0xfe, 0x98, 0xde, 0x2b, 0x54, 0xff, 0x26, 0x76, 0x68, 0x35, 0xb6, 0xed,
+ 0x53, 0x8b, 0x88, 0x7c, 0xc6, 0x17, 0x52, 0x9d, 0x05, 0x7f, 0x60, 0x05,
+ 0xdb, 0x02, 0x27, 0xda, 0xe7, 0x62, 0x77, 0x28, 0x50, 0x4c, 0xb8, 0xcf,
+ 0x35, 0x30, 0xeb, 0x2e,
+};
+static const struct drbg_kat_pr_false kat2400_t = {
+ 14, kat2400_entropyin, kat2400_nonce, kat2400_persstr,
+ kat2400_entropyinreseed, kat2400_addinreseed, kat2400_addin0,
+ kat2400_addin1, kat2400_retbits
+};
+static const struct drbg_kat kat2400 = {
+ PR_FALSE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat2400_t
+};
+
+static const unsigned char kat2401_entropyin[] = {
+ 0xd6, 0xe1, 0x8f, 0x45, 0x65, 0xfd, 0xf2, 0x82, 0x6d, 0x0d, 0x56, 0x41,
+ 0x96, 0x47, 0xc0, 0x20, 0x41, 0x3b, 0x96, 0x32, 0x99, 0xd8, 0xde, 0x2c,
+ 0x65, 0x10, 0x27, 0x7f, 0x8c, 0xe9, 0x88, 0xa7, 0xf0, 0xb3, 0xbc, 0x1d,
+ 0xf8, 0x5b, 0x15, 0x3f,
+};
+static const unsigned char kat2401_nonce[] = {0};
+static const unsigned char kat2401_persstr[] = {0};
+static const unsigned char kat2401_entropyinreseed[] = {
+ 0xa8, 0x23, 0xd6, 0x31, 0x1f, 0x9f, 0x66, 0xdf, 0x32, 0x9e, 0x3d, 0x70,
+ 0x65, 0xe2, 0x4f, 0xe2, 0x50, 0x7e, 0x6b, 0x9d, 0xbc, 0xc2, 0x28, 0x38,
+ 0x48, 0x3f, 0xa7, 0x29, 0xca, 0x51, 0x16, 0xd0, 0x3a, 0x91, 0x02, 0x81,
+ 0x39, 0xd7, 0x13, 0x0a,
+};
+static const unsigned char kat2401_addinreseed[] = {0};
+static const unsigned char kat2401_addin0[] = {0};
+static const unsigned char kat2401_addin1[] = {0};
+static const unsigned char kat2401_retbits[] = {
+ 0x4b, 0xf8, 0x06, 0x69, 0x0a, 0xf1, 0x3d, 0xbc, 0xfd, 0x44, 0x8c, 0x79,
+ 0xa3, 0x53, 0x2e, 0x00, 0x0b, 0xca, 0xbc, 0xef, 0x36, 0xf2, 0x64, 0x3f,
+ 0x3e, 0x1c, 0x9d, 0xe6, 0x07, 0x10, 0x42, 0x82, 0xf8, 0x1c, 0xd6, 0xcd,
+ 0xcf, 0x8d, 0xa8, 0x42, 0x9c, 0x94, 0x10, 0x82, 0x45, 0x11, 0x4d, 0x3d,
+ 0xa1, 0x7b, 0x9f, 0x48, 0xbb, 0x07, 0x09, 0x4c, 0x07, 0x3a, 0x94, 0xf5,
+ 0xd2, 0xef, 0x9e, 0x30,
+};
+static const struct drbg_kat_pr_false kat2401_t = {
+ 0, kat2401_entropyin, kat2401_nonce, kat2401_persstr,
+ kat2401_entropyinreseed, kat2401_addinreseed, kat2401_addin0,
+ kat2401_addin1, kat2401_retbits
+};
+static const struct drbg_kat kat2401 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2401_t
+};
+
+static const unsigned char kat2402_entropyin[] = {
+ 0x80, 0xff, 0xfb, 0xe6, 0x10, 0xd6, 0xd4, 0x04, 0xbe, 0x2a, 0x71, 0x2a,
+ 0xae, 0x84, 0x7b, 0x0e, 0x6a, 0x0c, 0x48, 0xda, 0x11, 0x43, 0x0f, 0xe1,
+ 0x7e, 0x1a, 0x74, 0x9f, 0x95, 0xbe, 0xaf, 0x0c, 0x5f, 0x6c, 0x0c, 0x77,
+ 0xc9, 0x42, 0x08, 0x46,
+};
+static const unsigned char kat2402_nonce[] = {0};
+static const unsigned char kat2402_persstr[] = {0};
+static const unsigned char kat2402_entropyinreseed[] = {
+ 0x27, 0xf5, 0xd5, 0xb3, 0x84, 0x57, 0x2c, 0x8f, 0x20, 0x19, 0xa6, 0x63,
+ 0xca, 0x19, 0x98, 0xab, 0x80, 0x3b, 0xf2, 0xff, 0xa1, 0x28, 0x73, 0x87,
+ 0x37, 0xe7, 0x9f, 0xea, 0x89, 0xda, 0x24, 0x70, 0xa3, 0x43, 0x6f, 0x82,
+ 0xcb, 0x3b, 0xfd, 0x37,
+};
+static const unsigned char kat2402_addinreseed[] = {0};
+static const unsigned char kat2402_addin0[] = {0};
+static const unsigned char kat2402_addin1[] = {0};
+static const unsigned char kat2402_retbits[] = {
+ 0x48, 0x67, 0x2c, 0x4b, 0xd0, 0x1f, 0xe9, 0x7e, 0x85, 0x9a, 0x13, 0xf5,
+ 0xa7, 0x37, 0x2e, 0xbd, 0xdb, 0x2a, 0xa0, 0xc6, 0x5a, 0x35, 0xa7, 0x1b,
+ 0xa3, 0x5c, 0xd3, 0x0d, 0xc2, 0x61, 0xdf, 0x08, 0xac, 0xb2, 0x6f, 0x7a,
+ 0x63, 0x2c, 0xc2, 0x29, 0xd9, 0xd0, 0xad, 0x74, 0x22, 0x8e, 0x2c, 0x54,
+ 0xed, 0x3b, 0x53, 0xf1, 0x25, 0x66, 0x45, 0xbe, 0x1b, 0xc1, 0xfe, 0xd9,
+ 0x4d, 0xad, 0x28, 0x2c,
+};
+static const struct drbg_kat_pr_false kat2402_t = {
+ 1, kat2402_entropyin, kat2402_nonce, kat2402_persstr,
+ kat2402_entropyinreseed, kat2402_addinreseed, kat2402_addin0,
+ kat2402_addin1, kat2402_retbits
+};
+static const struct drbg_kat kat2402 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2402_t
+};
+
+static const unsigned char kat2403_entropyin[] = {
+ 0x54, 0x7d, 0x4f, 0xc5, 0xcb, 0x41, 0x50, 0xb4, 0xaf, 0x1c, 0x10, 0xa3,
+ 0x81, 0xee, 0xd8, 0x64, 0xf2, 0x88, 0x4f, 0x93, 0x5b, 0xbb, 0x55, 0xb8,
+ 0x32, 0x2c, 0xf7, 0x79, 0xa3, 0x5a, 0x6e, 0x4d, 0x13, 0x93, 0x96, 0xa1,
+ 0xb8, 0xd7, 0x1a, 0xf8,
+};
+static const unsigned char kat2403_nonce[] = {0};
+static const unsigned char kat2403_persstr[] = {0};
+static const unsigned char kat2403_entropyinreseed[] = {
+ 0x49, 0x8c, 0x4a, 0x97, 0x69, 0xa8, 0x64, 0x9e, 0x61, 0x59, 0x3a, 0x13,
+ 0xc3, 0x1b, 0x64, 0xb0, 0xd3, 0x8c, 0x3a, 0xd6, 0xdc, 0xcd, 0x95, 0x56,
+ 0x2e, 0xa1, 0xe9, 0x35, 0xc7, 0x9c, 0xfa, 0xd5, 0xd8, 0xac, 0xcf, 0x82,
+ 0x67, 0x9c, 0x5b, 0x33,
+};
+static const unsigned char kat2403_addinreseed[] = {0};
+static const unsigned char kat2403_addin0[] = {0};
+static const unsigned char kat2403_addin1[] = {0};
+static const unsigned char kat2403_retbits[] = {
+ 0xc9, 0xdc, 0xf9, 0x99, 0xbd, 0x23, 0xc0, 0xe3, 0xd6, 0x3b, 0xf7, 0xa1,
+ 0xe8, 0xe4, 0xff, 0x6f, 0x49, 0x39, 0x84, 0xf5, 0x78, 0x0f, 0x29, 0x48,
+ 0x5d, 0x11, 0xcc, 0x90, 0x56, 0xd9, 0xa7, 0xb1, 0xf0, 0xb0, 0xc4, 0x14,
+ 0xc1, 0x76, 0xec, 0x86, 0x37, 0xc6, 0x02, 0xab, 0xa1, 0x03, 0x20, 0xfc,
+ 0xbe, 0x82, 0x64, 0x77, 0x43, 0xee, 0x41, 0xc9, 0xc5, 0x29, 0x11, 0x64,
+ 0xa0, 0x7c, 0x2e, 0x2e,
+};
+static const struct drbg_kat_pr_false kat2403_t = {
+ 2, kat2403_entropyin, kat2403_nonce, kat2403_persstr,
+ kat2403_entropyinreseed, kat2403_addinreseed, kat2403_addin0,
+ kat2403_addin1, kat2403_retbits
+};
+static const struct drbg_kat kat2403 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2403_t
+};
+
+static const unsigned char kat2404_entropyin[] = {
+ 0x0d, 0x1d, 0xa3, 0x7b, 0x22, 0xec, 0x35, 0xf9, 0x87, 0x57, 0x85, 0x31,
+ 0x46, 0x2f, 0x52, 0x6f, 0x52, 0xbb, 0x55, 0xfd, 0xed, 0xa0, 0x2c, 0x78,
+ 0x4b, 0xe1, 0x7e, 0x98, 0xb7, 0x0b, 0x05, 0xcb, 0x44, 0x86, 0xe0, 0xc2,
+ 0x03, 0xeb, 0x76, 0xf3,
+};
+static const unsigned char kat2404_nonce[] = {0};
+static const unsigned char kat2404_persstr[] = {0};
+static const unsigned char kat2404_entropyinreseed[] = {
+ 0x7f, 0xa5, 0xb8, 0xf7, 0xd8, 0x7e, 0x1c, 0xb5, 0xee, 0x99, 0xdb, 0xff,
+ 0x91, 0x51, 0xa4, 0x0d, 0xd3, 0x6d, 0xf5, 0x7a, 0x7d, 0xf0, 0xd5, 0xbf,
+ 0xdd, 0xca, 0x60, 0x83, 0xfa, 0x01, 0x8c, 0xdd, 0x8f, 0x01, 0xf1, 0x64,
+ 0xc3, 0x0a, 0x32, 0xc2,
+};
+static const unsigned char kat2404_addinreseed[] = {0};
+static const unsigned char kat2404_addin0[] = {0};
+static const unsigned char kat2404_addin1[] = {0};
+static const unsigned char kat2404_retbits[] = {
+ 0x31, 0x82, 0x0f, 0xb5, 0x53, 0x8d, 0x98, 0x52, 0x66, 0x5b, 0xcc, 0x3b,
+ 0x03, 0x37, 0x0c, 0x3d, 0x37, 0xc1, 0x7a, 0x1e, 0x14, 0x9b, 0x22, 0xc3,
+ 0x06, 0x34, 0x14, 0x0a, 0x30, 0xcc, 0x1d, 0x52, 0x76, 0x19, 0xad, 0xf6,
+ 0xc5, 0x27, 0xf5, 0xbe, 0x0f, 0xe1, 0x0e, 0x8b, 0x42, 0xe0, 0x7e, 0x8b,
+ 0xab, 0x8d, 0x9a, 0xb3, 0xf3, 0x17, 0xd0, 0x32, 0xeb, 0x38, 0x18, 0xca,
+ 0xae, 0x7e, 0x5e, 0x3f,
+};
+static const struct drbg_kat_pr_false kat2404_t = {
+ 3, kat2404_entropyin, kat2404_nonce, kat2404_persstr,
+ kat2404_entropyinreseed, kat2404_addinreseed, kat2404_addin0,
+ kat2404_addin1, kat2404_retbits
+};
+static const struct drbg_kat kat2404 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2404_t
+};
+
+static const unsigned char kat2405_entropyin[] = {
+ 0x56, 0x24, 0x82, 0xc2, 0xb6, 0x62, 0x99, 0x14, 0xf1, 0x19, 0x4c, 0xb7,
+ 0xef, 0x7c, 0xc0, 0xac, 0x8c, 0x2c, 0x87, 0x8d, 0xd6, 0x82, 0x4e, 0xf7,
+ 0x8c, 0xe6, 0x36, 0xab, 0xa8, 0x99, 0x02, 0x1a, 0xe0, 0xdc, 0xc2, 0x78,
+ 0x20, 0x61, 0x24, 0xdf,
+};
+static const unsigned char kat2405_nonce[] = {0};
+static const unsigned char kat2405_persstr[] = {0};
+static const unsigned char kat2405_entropyinreseed[] = {
+ 0xa0, 0x0d, 0x0e, 0x31, 0xab, 0x3d, 0x99, 0x65, 0xc1, 0xf8, 0x8e, 0x79,
+ 0xc7, 0x34, 0x0c, 0xa8, 0x01, 0xec, 0xcf, 0x13, 0x12, 0x84, 0x67, 0xd3,
+ 0x09, 0x1c, 0xc0, 0xf9, 0x59, 0x84, 0xf2, 0x8d, 0x22, 0xe5, 0xde, 0xa3,
+ 0x4d, 0x5b, 0xa1, 0x97,
+};
+static const unsigned char kat2405_addinreseed[] = {0};
+static const unsigned char kat2405_addin0[] = {0};
+static const unsigned char kat2405_addin1[] = {0};
+static const unsigned char kat2405_retbits[] = {
+ 0xbf, 0x98, 0x0f, 0xa5, 0xd2, 0x61, 0x8f, 0x34, 0x9c, 0xc2, 0xe0, 0xe6,
+ 0x79, 0xdf, 0x40, 0x00, 0x87, 0x13, 0xb2, 0xfe, 0x9e, 0xc4, 0xf4, 0x52,
+ 0x3b, 0x11, 0x3f, 0x62, 0x4d, 0xfc, 0xc5, 0xf7, 0xba, 0x32, 0xce, 0xce,
+ 0x7d, 0xf5, 0x53, 0xdb, 0x87, 0xbe, 0xd9, 0xab, 0xc9, 0xdd, 0xad, 0x81,
+ 0xa1, 0x8e, 0xe2, 0xcf, 0x95, 0x92, 0x1c, 0xda, 0x3a, 0x35, 0xf9, 0xfc,
+ 0x1a, 0x69, 0xb4, 0xb7,
+};
+static const struct drbg_kat_pr_false kat2405_t = {
+ 4, kat2405_entropyin, kat2405_nonce, kat2405_persstr,
+ kat2405_entropyinreseed, kat2405_addinreseed, kat2405_addin0,
+ kat2405_addin1, kat2405_retbits
+};
+static const struct drbg_kat kat2405 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2405_t
+};
+
+static const unsigned char kat2406_entropyin[] = {
+ 0xa6, 0x67, 0xc8, 0xaa, 0x4c, 0x4e, 0x10, 0x06, 0x7e, 0x1d, 0xf1, 0x45,
+ 0x74, 0xcb, 0x7f, 0x84, 0xdb, 0x6b, 0x49, 0xfc, 0x73, 0x0d, 0x23, 0x32,
+ 0x92, 0xa6, 0x8e, 0x12, 0xff, 0xfc, 0x80, 0x30, 0x32, 0xd9, 0x39, 0x49,
+ 0x9e, 0x17, 0xae, 0xd8,
+};
+static const unsigned char kat2406_nonce[] = {0};
+static const unsigned char kat2406_persstr[] = {0};
+static const unsigned char kat2406_entropyinreseed[] = {
+ 0xc5, 0x35, 0xe9, 0x36, 0xfa, 0xe2, 0xf2, 0xe8, 0x65, 0xb3, 0xbe, 0x04,
+ 0x6c, 0x86, 0xc5, 0x67, 0x8b, 0x1e, 0x6f, 0x3d, 0xa9, 0x76, 0x90, 0xb6,
+ 0x52, 0xe1, 0x29, 0x13, 0x31, 0x98, 0xeb, 0xca, 0x07, 0x47, 0x7a, 0x2a,
+ 0x11, 0x55, 0xd1, 0xfb,
+};
+static const unsigned char kat2406_addinreseed[] = {0};
+static const unsigned char kat2406_addin0[] = {0};
+static const unsigned char kat2406_addin1[] = {0};
+static const unsigned char kat2406_retbits[] = {
+ 0x07, 0x98, 0x88, 0xfa, 0xa3, 0x77, 0xb0, 0xce, 0x0a, 0x7b, 0x99, 0x47,
+ 0x44, 0xea, 0xf9, 0xd7, 0x02, 0x4b, 0xc8, 0x80, 0x49, 0x96, 0x6a, 0x84,
+ 0x5a, 0x84, 0x85, 0x27, 0x0f, 0x5f, 0xf3, 0x84, 0xdf, 0x05, 0x75, 0xd3,
+ 0x2d, 0xc9, 0x7c, 0x79, 0x81, 0x33, 0xaf, 0x99, 0x4d, 0x53, 0xb1, 0x84,
+ 0x09, 0x40, 0xb5, 0x13, 0x73, 0x32, 0x29, 0x30, 0x8c, 0x49, 0x74, 0x3a,
+ 0xdf, 0x58, 0x8c, 0x1c,
+};
+static const struct drbg_kat_pr_false kat2406_t = {
+ 5, kat2406_entropyin, kat2406_nonce, kat2406_persstr,
+ kat2406_entropyinreseed, kat2406_addinreseed, kat2406_addin0,
+ kat2406_addin1, kat2406_retbits
+};
+static const struct drbg_kat kat2406 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2406_t
+};
+
+static const unsigned char kat2407_entropyin[] = {
+ 0x54, 0x23, 0x54, 0x3f, 0xee, 0xc7, 0x2f, 0x5d, 0x56, 0xef, 0xf2, 0xd4,
+ 0x26, 0xc8, 0xb3, 0x97, 0x5e, 0xe6, 0xb1, 0xc7, 0xca, 0x88, 0x67, 0x99,
+ 0x4b, 0x2d, 0x8d, 0xd6, 0x5c, 0x4c, 0x44, 0x92, 0x0a, 0xe9, 0x4c, 0xb7,
+ 0xdb, 0x0f, 0x81, 0xc7,
+};
+static const unsigned char kat2407_nonce[] = {0};
+static const unsigned char kat2407_persstr[] = {0};
+static const unsigned char kat2407_entropyinreseed[] = {
+ 0x77, 0x0f, 0x68, 0xab, 0xe6, 0x21, 0x88, 0xa1, 0x7a, 0xbf, 0x4b, 0x56,
+ 0x0b, 0x61, 0x07, 0x8b, 0x5e, 0x86, 0xfc, 0x83, 0x0d, 0x88, 0x87, 0x0c,
+ 0xe3, 0xb7, 0x3a, 0x73, 0x44, 0x98, 0x98, 0x5a, 0x51, 0x39, 0x79, 0x99,
+ 0xad, 0x08, 0x90, 0xa7,
+};
+static const unsigned char kat2407_addinreseed[] = {0};
+static const unsigned char kat2407_addin0[] = {0};
+static const unsigned char kat2407_addin1[] = {0};
+static const unsigned char kat2407_retbits[] = {
+ 0xd8, 0x7c, 0x92, 0x2c, 0xf5, 0x4a, 0x01, 0x8d, 0xed, 0x13, 0xcc, 0x61,
+ 0xa8, 0x07, 0xc6, 0xca, 0xdc, 0x43, 0x54, 0xeb, 0xbf, 0x4d, 0x99, 0xae,
+ 0x38, 0x9f, 0xa8, 0xef, 0xb1, 0xe6, 0xd2, 0x2d, 0x02, 0x1f, 0x3e, 0xfc,
+ 0xa6, 0x77, 0xf8, 0xed, 0x8d, 0x6c, 0xe9, 0xc6, 0x30, 0xd3, 0x05, 0xb5,
+ 0xe4, 0xc0, 0x75, 0xa3, 0x21, 0xcc, 0x7e, 0xe2, 0x25, 0x3c, 0x7a, 0x27,
+ 0x26, 0xf8, 0xf4, 0x08,
+};
+static const struct drbg_kat_pr_false kat2407_t = {
+ 6, kat2407_entropyin, kat2407_nonce, kat2407_persstr,
+ kat2407_entropyinreseed, kat2407_addinreseed, kat2407_addin0,
+ kat2407_addin1, kat2407_retbits
+};
+static const struct drbg_kat kat2407 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2407_t
+};
+
+static const unsigned char kat2408_entropyin[] = {
+ 0xc6, 0xe4, 0xe1, 0x7d, 0x3e, 0xd8, 0x27, 0xc5, 0x7c, 0xe8, 0x5d, 0xc4,
+ 0x3b, 0x6f, 0x25, 0x72, 0x7b, 0x36, 0x91, 0x3e, 0x28, 0x94, 0xab, 0x83,
+ 0x8a, 0x0c, 0xee, 0xe6, 0xa6, 0xb4, 0xea, 0x5f, 0xe8, 0x80, 0xa4, 0x7b,
+ 0x1a, 0xe3, 0x13, 0x52,
+};
+static const unsigned char kat2408_nonce[] = {0};
+static const unsigned char kat2408_persstr[] = {0};
+static const unsigned char kat2408_entropyinreseed[] = {
+ 0x87, 0x33, 0x12, 0x69, 0x58, 0x70, 0x5f, 0x9a, 0x7a, 0x97, 0xc6, 0x95,
+ 0x2c, 0x40, 0x51, 0xa4, 0xeb, 0xbc, 0x5a, 0xd3, 0xb0, 0xed, 0x18, 0x5a,
+ 0xea, 0xd6, 0xc4, 0x4c, 0x12, 0x2b, 0x71, 0x08, 0x3b, 0xe9, 0x0d, 0xe7,
+ 0x2b, 0x8d, 0x33, 0x1b,
+};
+static const unsigned char kat2408_addinreseed[] = {0};
+static const unsigned char kat2408_addin0[] = {0};
+static const unsigned char kat2408_addin1[] = {0};
+static const unsigned char kat2408_retbits[] = {
+ 0x52, 0x61, 0x12, 0x7c, 0x8a, 0x5a, 0xa5, 0x2f, 0xcf, 0xf5, 0x9d, 0x04,
+ 0xcf, 0x03, 0x24, 0x53, 0xdf, 0x5a, 0x9e, 0x0c, 0x8a, 0xf5, 0xe8, 0x46,
+ 0x03, 0xb1, 0x5c, 0x77, 0x5a, 0x8e, 0x19, 0x67, 0xb0, 0x16, 0x30, 0x72,
+ 0x81, 0xb3, 0x52, 0xe8, 0x95, 0x04, 0xf2, 0xf5, 0xf8, 0xbe, 0x45, 0x80,
+ 0xa1, 0x70, 0x6e, 0x7b, 0x16, 0x3b, 0xaa, 0xfb, 0xd0, 0xb8, 0x9c, 0x7f,
+ 0x5f, 0xf9, 0x4c, 0x6d,
+};
+static const struct drbg_kat_pr_false kat2408_t = {
+ 7, kat2408_entropyin, kat2408_nonce, kat2408_persstr,
+ kat2408_entropyinreseed, kat2408_addinreseed, kat2408_addin0,
+ kat2408_addin1, kat2408_retbits
+};
+static const struct drbg_kat kat2408 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2408_t
+};
+
+static const unsigned char kat2409_entropyin[] = {
+ 0x21, 0xa1, 0x82, 0x6f, 0x92, 0x9a, 0x45, 0x40, 0x8c, 0x26, 0xa2, 0x52,
+ 0x9f, 0x93, 0xcb, 0xd3, 0x1e, 0x81, 0x32, 0x7d, 0xce, 0x2a, 0x21, 0x47,
+ 0xef, 0x1c, 0x54, 0x74, 0x75, 0x6a, 0x62, 0x2f, 0x47, 0x82, 0x3a, 0xb9,
+ 0x95, 0x4f, 0xa1, 0xbb,
+};
+static const unsigned char kat2409_nonce[] = {0};
+static const unsigned char kat2409_persstr[] = {0};
+static const unsigned char kat2409_entropyinreseed[] = {
+ 0xfc, 0x45, 0x43, 0x1e, 0x4b, 0x2b, 0x16, 0xcc, 0xab, 0x1b, 0xbd, 0xc2,
+ 0x62, 0x8c, 0xff, 0x34, 0x56, 0x97, 0xca, 0xe7, 0x24, 0x85, 0xb1, 0xdc,
+ 0xb2, 0x58, 0x0b, 0x70, 0xce, 0xe8, 0x0d, 0x2c, 0x58, 0x21, 0x2a, 0xdc,
+ 0x43, 0xba, 0x4c, 0x10,
+};
+static const unsigned char kat2409_addinreseed[] = {0};
+static const unsigned char kat2409_addin0[] = {0};
+static const unsigned char kat2409_addin1[] = {0};
+static const unsigned char kat2409_retbits[] = {
+ 0x9e, 0x83, 0xa6, 0x69, 0x90, 0x73, 0x5a, 0x4e, 0xcc, 0xcc, 0x2c, 0xb5,
+ 0x9a, 0xca, 0x97, 0x19, 0xd0, 0x34, 0x68, 0xbc, 0x9b, 0x37, 0x9d, 0x86,
+ 0x0a, 0xd1, 0xd9, 0xc0, 0x98, 0x81, 0x11, 0x1a, 0xce, 0xc2, 0x29, 0x52,
+ 0x68, 0xa6, 0x7b, 0xad, 0xf4, 0x5f, 0x4b, 0xc2, 0x18, 0x96, 0xa1, 0x7f,
+ 0x26, 0xd2, 0x4d, 0xf5, 0x53, 0x5e, 0x4e, 0xff, 0x14, 0x4a, 0xfa, 0x17,
+ 0xb0, 0xed, 0x87, 0x33,
+};
+static const struct drbg_kat_pr_false kat2409_t = {
+ 8, kat2409_entropyin, kat2409_nonce, kat2409_persstr,
+ kat2409_entropyinreseed, kat2409_addinreseed, kat2409_addin0,
+ kat2409_addin1, kat2409_retbits
+};
+static const struct drbg_kat kat2409 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2409_t
+};
+
+static const unsigned char kat2410_entropyin[] = {
+ 0x6e, 0x22, 0xce, 0x3e, 0x72, 0x4b, 0xa2, 0x93, 0xe9, 0x9e, 0xfd, 0x66,
+ 0x9f, 0x65, 0xd9, 0x9b, 0x78, 0xda, 0xc4, 0x96, 0x20, 0x09, 0xbe, 0xb0,
+ 0xed, 0x6b, 0x8d, 0x2b, 0x99, 0x43, 0xae, 0xff, 0x45, 0xdc, 0x0a, 0x33,
+ 0x1e, 0x3f, 0x53, 0xd0,
+};
+static const unsigned char kat2410_nonce[] = {0};
+static const unsigned char kat2410_persstr[] = {0};
+static const unsigned char kat2410_entropyinreseed[] = {
+ 0x6d, 0x2f, 0xc9, 0xaa, 0xb9, 0xbe, 0x7e, 0xd8, 0x48, 0x50, 0x10, 0x4d,
+ 0x19, 0xd8, 0x0f, 0x8b, 0x19, 0xce, 0xe6, 0xe4, 0x67, 0x60, 0xe4, 0x98,
+ 0x52, 0x04, 0xb2, 0x35, 0x57, 0xf7, 0xf4, 0x13, 0x19, 0x3c, 0x80, 0xf1,
+ 0xa5, 0x96, 0xbd, 0xd4,
+};
+static const unsigned char kat2410_addinreseed[] = {0};
+static const unsigned char kat2410_addin0[] = {0};
+static const unsigned char kat2410_addin1[] = {0};
+static const unsigned char kat2410_retbits[] = {
+ 0x0d, 0x58, 0x83, 0xaf, 0xea, 0xc7, 0x70, 0x81, 0xec, 0x25, 0x05, 0x39,
+ 0x09, 0xf2, 0x2e, 0x98, 0x1b, 0xe9, 0x2a, 0x54, 0xc3, 0x8c, 0xd3, 0x63,
+ 0xb2, 0xda, 0x33, 0x3a, 0x15, 0x19, 0x51, 0xb6, 0x48, 0xec, 0xc1, 0xd6,
+ 0xb5, 0x6a, 0x0d, 0x87, 0x62, 0x5f, 0x08, 0x06, 0x22, 0x0a, 0xb1, 0xf0,
+ 0xc7, 0x35, 0x86, 0xed, 0x18, 0x7f, 0xcc, 0x41, 0x17, 0xe8, 0x23, 0x76,
+ 0xb0, 0xba, 0xec, 0x69,
+};
+static const struct drbg_kat_pr_false kat2410_t = {
+ 9, kat2410_entropyin, kat2410_nonce, kat2410_persstr,
+ kat2410_entropyinreseed, kat2410_addinreseed, kat2410_addin0,
+ kat2410_addin1, kat2410_retbits
+};
+static const struct drbg_kat kat2410 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2410_t
+};
+
+static const unsigned char kat2411_entropyin[] = {
+ 0xcd, 0xa1, 0xab, 0xfe, 0x94, 0x88, 0x75, 0xac, 0xc7, 0x89, 0xb3, 0xf2,
+ 0x6b, 0xcf, 0xf5, 0x05, 0x4b, 0x9f, 0xa2, 0x43, 0x9e, 0xbf, 0x5c, 0xa9,
+ 0x8a, 0xa2, 0xfa, 0xcd, 0x51, 0x81, 0x85, 0x76, 0xb1, 0x69, 0x13, 0x78,
+ 0x43, 0xf5, 0xbb, 0x51,
+};
+static const unsigned char kat2411_nonce[] = {0};
+static const unsigned char kat2411_persstr[] = {0};
+static const unsigned char kat2411_entropyinreseed[] = {
+ 0x39, 0xc5, 0x64, 0x65, 0x20, 0x61, 0x67, 0x40, 0xae, 0xc5, 0x56, 0x52,
+ 0xbd, 0x67, 0x9e, 0xfa, 0x7b, 0x21, 0xd0, 0x5e, 0x71, 0x03, 0x3c, 0x32,
+ 0x57, 0x49, 0x3f, 0xad, 0xed, 0x9a, 0x0f, 0xa1, 0x45, 0xe5, 0xc0, 0xaf,
+ 0x11, 0xba, 0x2e, 0xd8,
+};
+static const unsigned char kat2411_addinreseed[] = {0};
+static const unsigned char kat2411_addin0[] = {0};
+static const unsigned char kat2411_addin1[] = {0};
+static const unsigned char kat2411_retbits[] = {
+ 0x53, 0x3f, 0x6d, 0xff, 0xa2, 0x26, 0x1e, 0x7d, 0x3e, 0x35, 0x16, 0x76,
+ 0x15, 0x2f, 0xeb, 0x26, 0x55, 0xa7, 0xfc, 0x88, 0xcd, 0x5b, 0xfa, 0x3f,
+ 0xf5, 0x4c, 0x48, 0x72, 0x37, 0x21, 0x13, 0xf2, 0x8c, 0xa6, 0x9c, 0x0e,
+ 0x57, 0xe4, 0x1a, 0xe6, 0xae, 0x81, 0x40, 0x8a, 0x7c, 0x64, 0x55, 0x46,
+ 0x86, 0x82, 0x90, 0xd9, 0x4a, 0xe3, 0x66, 0xd5, 0xb6, 0x4d, 0xff, 0xeb,
+ 0xdc, 0x27, 0xcb, 0xf7,
+};
+static const struct drbg_kat_pr_false kat2411_t = {
+ 10, kat2411_entropyin, kat2411_nonce, kat2411_persstr,
+ kat2411_entropyinreseed, kat2411_addinreseed, kat2411_addin0,
+ kat2411_addin1, kat2411_retbits
+};
+static const struct drbg_kat kat2411 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2411_t
+};
+
+static const unsigned char kat2412_entropyin[] = {
+ 0x05, 0x62, 0xa5, 0x09, 0x7a, 0x73, 0x53, 0x49, 0x0a, 0x95, 0x25, 0xa2,
+ 0xe5, 0xa8, 0x05, 0xed, 0x4d, 0xb3, 0x14, 0x5e, 0x94, 0x31, 0x72, 0xae,
+ 0xcb, 0xf8, 0x40, 0xc2, 0x71, 0xf4, 0xca, 0xef, 0xf3, 0x2c, 0xdc, 0x51,
+ 0xe8, 0x30, 0x32, 0x79,
+};
+static const unsigned char kat2412_nonce[] = {0};
+static const unsigned char kat2412_persstr[] = {0};
+static const unsigned char kat2412_entropyinreseed[] = {
+ 0x52, 0x9e, 0x85, 0x68, 0x6d, 0x64, 0xeb, 0xdd, 0xff, 0x61, 0xef, 0x1d,
+ 0x7c, 0x13, 0x50, 0x07, 0x5d, 0x51, 0x5a, 0x88, 0x81, 0x83, 0x71, 0x53,
+ 0x79, 0xb1, 0xa2, 0xc9, 0xf2, 0x71, 0xc8, 0xff, 0x6c, 0x8e, 0x5e, 0x47,
+ 0xff, 0xfe, 0x85, 0x53,
+};
+static const unsigned char kat2412_addinreseed[] = {0};
+static const unsigned char kat2412_addin0[] = {0};
+static const unsigned char kat2412_addin1[] = {0};
+static const unsigned char kat2412_retbits[] = {
+ 0x52, 0x84, 0xba, 0xf9, 0x15, 0xfb, 0x79, 0x25, 0x09, 0xd5, 0x0f, 0x18,
+ 0x2c, 0x3c, 0x40, 0xb7, 0xfe, 0xd7, 0x75, 0xb3, 0xa8, 0xc9, 0x1c, 0xd7,
+ 0x82, 0x70, 0x2a, 0x88, 0xfd, 0x29, 0x5a, 0x1d, 0x17, 0xcb, 0x7a, 0x99,
+ 0x70, 0xb0, 0xfd, 0xa7, 0x74, 0x36, 0x0c, 0x6b, 0xf7, 0x95, 0x77, 0xd3,
+ 0x22, 0x60, 0xdc, 0x2a, 0x99, 0x7f, 0xc3, 0xa9, 0xf3, 0xd4, 0xf7, 0x8e,
+ 0x48, 0x79, 0xdf, 0x96,
+};
+static const struct drbg_kat_pr_false kat2412_t = {
+ 11, kat2412_entropyin, kat2412_nonce, kat2412_persstr,
+ kat2412_entropyinreseed, kat2412_addinreseed, kat2412_addin0,
+ kat2412_addin1, kat2412_retbits
+};
+static const struct drbg_kat kat2412 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2412_t
+};
+
+static const unsigned char kat2413_entropyin[] = {
+ 0xc4, 0x83, 0x4a, 0xaa, 0x7f, 0x33, 0xd4, 0xa4, 0x43, 0xc2, 0x6c, 0x94,
+ 0x4d, 0x8e, 0x91, 0x27, 0x50, 0x23, 0x65, 0xd3, 0x3e, 0x52, 0x27, 0x08,
+ 0x21, 0x11, 0xe1, 0x43, 0x8c, 0xa3, 0xd2, 0x12, 0x9a, 0x42, 0xc9, 0x28,
+ 0x99, 0xea, 0xc2, 0xcc,
+};
+static const unsigned char kat2413_nonce[] = {0};
+static const unsigned char kat2413_persstr[] = {0};
+static const unsigned char kat2413_entropyinreseed[] = {
+ 0xd9, 0x0c, 0x1b, 0x69, 0xb8, 0xa2, 0x80, 0xf3, 0x1c, 0x66, 0xfb, 0x0c,
+ 0xbd, 0x53, 0xed, 0xdb, 0x12, 0x44, 0x41, 0xa8, 0x8a, 0x9e, 0x41, 0x30,
+ 0x10, 0x3e, 0xcd, 0xd5, 0x35, 0x73, 0x61, 0xb0, 0x00, 0xea, 0x5f, 0x80,
+ 0x1c, 0xa8, 0xab, 0x38,
+};
+static const unsigned char kat2413_addinreseed[] = {0};
+static const unsigned char kat2413_addin0[] = {0};
+static const unsigned char kat2413_addin1[] = {0};
+static const unsigned char kat2413_retbits[] = {
+ 0xc7, 0x14, 0x60, 0x3e, 0xb1, 0x85, 0x2c, 0x0b, 0xb2, 0x1f, 0x22, 0x4a,
+ 0x25, 0x52, 0xb8, 0x3f, 0x74, 0xc8, 0xa6, 0x66, 0x37, 0xcc, 0x87, 0x07,
+ 0x74, 0x35, 0xa3, 0x2e, 0x74, 0xfd, 0x79, 0xf4, 0x26, 0x23, 0xd4, 0xda,
+ 0x11, 0xd6, 0x4c, 0xac, 0x5a, 0x4a, 0xc7, 0xa1, 0x33, 0xd5, 0x6a, 0x10,
+ 0x76, 0x4c, 0x95, 0x43, 0xba, 0x22, 0x97, 0x29, 0xee, 0xe5, 0x8f, 0xcb,
+ 0x24, 0x73, 0x47, 0xfb,
+};
+static const struct drbg_kat_pr_false kat2413_t = {
+ 12, kat2413_entropyin, kat2413_nonce, kat2413_persstr,
+ kat2413_entropyinreseed, kat2413_addinreseed, kat2413_addin0,
+ kat2413_addin1, kat2413_retbits
+};
+static const struct drbg_kat kat2413 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2413_t
+};
+
+static const unsigned char kat2414_entropyin[] = {
+ 0x5d, 0xa8, 0x50, 0xea, 0x7c, 0x9c, 0x21, 0xb8, 0x72, 0x8e, 0x9e, 0x97,
+ 0x5a, 0xc8, 0x46, 0x5c, 0xe1, 0x68, 0x18, 0xfa, 0x82, 0x4f, 0x9b, 0x78,
+ 0x3b, 0x0e, 0xc3, 0xdb, 0x7e, 0xfd, 0xbd, 0x70, 0x70, 0x31, 0x7d, 0x64,
+ 0xe6, 0x23, 0xeb, 0xe1,
+};
+static const unsigned char kat2414_nonce[] = {0};
+static const unsigned char kat2414_persstr[] = {0};
+static const unsigned char kat2414_entropyinreseed[] = {
+ 0x27, 0xf2, 0xb4, 0x46, 0xf5, 0x52, 0x23, 0xa1, 0x3d, 0xcb, 0x3b, 0x3c,
+ 0x86, 0x61, 0xa5, 0x2b, 0xe0, 0x11, 0x8e, 0xb5, 0x5d, 0x9a, 0xc1, 0x7a,
+ 0x00, 0x71, 0x28, 0xf3, 0x22, 0x06, 0x8d, 0xf7, 0x77, 0xb2, 0x7f, 0x05,
+ 0xe1, 0xc8, 0x78, 0xd0,
+};
+static const unsigned char kat2414_addinreseed[] = {0};
+static const unsigned char kat2414_addin0[] = {0};
+static const unsigned char kat2414_addin1[] = {0};
+static const unsigned char kat2414_retbits[] = {
+ 0x11, 0xe1, 0x5b, 0x10, 0xf8, 0x3d, 0x08, 0x3e, 0x7e, 0x7d, 0x4c, 0xa1,
+ 0x3a, 0x46, 0xc5, 0x33, 0x82, 0x67, 0xf9, 0x3c, 0x03, 0x80, 0x2a, 0xe6,
+ 0xaf, 0x14, 0xb3, 0xdd, 0x5a, 0xca, 0x5e, 0xa8, 0x7d, 0xa3, 0x49, 0xdc,
+ 0xd9, 0xd5, 0x4b, 0xe5, 0x73, 0x6b, 0x28, 0x67, 0x16, 0x65, 0xdb, 0x49,
+ 0xc4, 0x85, 0x52, 0xca, 0x3f, 0x21, 0xef, 0x4f, 0x3c, 0xec, 0x4a, 0x5a,
+ 0xb7, 0xbe, 0xa9, 0xae,
+};
+static const struct drbg_kat_pr_false kat2414_t = {
+ 13, kat2414_entropyin, kat2414_nonce, kat2414_persstr,
+ kat2414_entropyinreseed, kat2414_addinreseed, kat2414_addin0,
+ kat2414_addin1, kat2414_retbits
+};
+static const struct drbg_kat kat2414 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2414_t
+};
+
+static const unsigned char kat2415_entropyin[] = {
+ 0xac, 0x8e, 0x24, 0xb8, 0x70, 0x4e, 0x20, 0x11, 0x07, 0x6f, 0xf9, 0x17,
+ 0x5f, 0xa1, 0xc1, 0x2d, 0x9b, 0xee, 0xed, 0x66, 0xc9, 0xa9, 0x75, 0x03,
+ 0x7e, 0xf6, 0xf1, 0xf5, 0x19, 0xef, 0xa2, 0x23, 0x0c, 0xa0, 0x14, 0x82,
+ 0x97, 0x5c, 0x99, 0x08,
+};
+static const unsigned char kat2415_nonce[] = {0};
+static const unsigned char kat2415_persstr[] = {0};
+static const unsigned char kat2415_entropyinreseed[] = {
+ 0xcb, 0xe0, 0x5b, 0x23, 0x5a, 0xb4, 0x57, 0x35, 0xf0, 0xfa, 0x0e, 0xd9,
+ 0x45, 0xec, 0x38, 0xec, 0x38, 0x01, 0xf2, 0xca, 0xed, 0x0b, 0xd8, 0xf9,
+ 0x6d, 0xfb, 0x34, 0xcc, 0x75, 0xef, 0x1a, 0x6a, 0x41, 0x22, 0xf5, 0xa8,
+ 0x30, 0x5f, 0x91, 0x5e,
+};
+static const unsigned char kat2415_addinreseed[] = {0};
+static const unsigned char kat2415_addin0[] = {0};
+static const unsigned char kat2415_addin1[] = {0};
+static const unsigned char kat2415_retbits[] = {
+ 0x91, 0xc4, 0x98, 0x03, 0xaf, 0x71, 0x47, 0x7a, 0x06, 0xa6, 0xa4, 0x93,
+ 0xb7, 0x5a, 0xa3, 0x68, 0x17, 0xaa, 0x15, 0xb5, 0x8a, 0xfe, 0x75, 0x98,
+ 0x75, 0x0b, 0x2f, 0xe4, 0xd6, 0x63, 0xf0, 0x5e, 0xcf, 0x0b, 0x8c, 0x1b,
+ 0x57, 0x37, 0xcd, 0x61, 0x1e, 0x2d, 0x56, 0xce, 0x95, 0xa0, 0x29, 0xbc,
+ 0x4f, 0xbc, 0x30, 0x7f, 0x54, 0x78, 0xf0, 0xb7, 0x96, 0xb2, 0x59, 0xe0,
+ 0x1a, 0x48, 0x92, 0x0b,
+};
+static const struct drbg_kat_pr_false kat2415_t = {
+ 14, kat2415_entropyin, kat2415_nonce, kat2415_persstr,
+ kat2415_entropyinreseed, kat2415_addinreseed, kat2415_addin0,
+ kat2415_addin1, kat2415_retbits
+};
+static const struct drbg_kat kat2415 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2415_t
+};
+
+static const unsigned char kat2416_entropyin[] = {
+ 0x65, 0x8a, 0x2d, 0xf4, 0xd2, 0xe3, 0x71, 0xa9, 0xa9, 0x71, 0x92, 0x86,
+ 0x9f, 0x77, 0xca, 0x77, 0xab, 0xc8, 0x0e, 0x3f, 0x6d, 0x2e, 0x1e, 0x29,
+ 0x5d, 0x4d, 0x22, 0x8d, 0xe2, 0xac, 0x90, 0xd5, 0x4d, 0x6c, 0xbe, 0xfa,
+ 0x2e, 0x9b, 0xa3, 0xda,
+};
+static const unsigned char kat2416_nonce[] = {0};
+static const unsigned char kat2416_persstr[] = {0};
+static const unsigned char kat2416_entropyinreseed[] = {
+ 0x79, 0xfb, 0xa3, 0xe1, 0x4d, 0x22, 0x5b, 0x26, 0xe6, 0x36, 0x5b, 0xd1,
+ 0xae, 0x16, 0x49, 0xae, 0x93, 0xd7, 0x16, 0xdc, 0x09, 0xed, 0x50, 0x9b,
+ 0xbe, 0x33, 0x8e, 0x2c, 0x78, 0x88, 0x3c, 0x77, 0xaa, 0x0f, 0x43, 0xae,
+ 0xd3, 0xc2, 0xbb, 0x2d,
+};
+static const unsigned char kat2416_addinreseed[] = {
+ 0xde, 0xf5, 0x51, 0x23, 0x14, 0xc4, 0x7a, 0x6b, 0xb7, 0xca, 0xcb, 0x35,
+ 0x29, 0xa6, 0x61, 0x64, 0xea, 0x48, 0x82, 0x66, 0x50, 0xa5, 0x4a, 0x6d,
+ 0x9b, 0xe9, 0xf5, 0xee, 0x4f, 0xbb, 0x8c, 0x7d, 0x74, 0x2d, 0x3d, 0xeb,
+ 0x00, 0x5e, 0x89, 0x96,
+};
+static const unsigned char kat2416_addin0[] = {
+ 0x54, 0xe3, 0xad, 0x6f, 0x72, 0xc1, 0xf7, 0x40, 0xa0, 0x19, 0x57, 0x2b,
+ 0x7e, 0x44, 0x6a, 0xd1, 0x58, 0xe0, 0xa2, 0x9b, 0xb0, 0xef, 0xbe, 0xa6,
+ 0x0f, 0xf6, 0xf1, 0x65, 0x96, 0xaf, 0xbb, 0xce, 0xcf, 0xd3, 0x5e, 0x65,
+ 0x63, 0x5f, 0x9f, 0x77,
+};
+static const unsigned char kat2416_addin1[] = {
+ 0x65, 0x16, 0xe1, 0x7a, 0x29, 0x5d, 0x2f, 0xc1, 0x41, 0xd2, 0xe8, 0x70,
+ 0x6e, 0x73, 0x82, 0x2e, 0xfd, 0x7b, 0x59, 0x7f, 0xc5, 0x76, 0xa9, 0x7f,
+ 0x43, 0x81, 0x6c, 0xd1, 0xa9, 0xdf, 0x4b, 0x9f, 0xf6, 0x91, 0x32, 0x4e,
+ 0x2b, 0x58, 0x17, 0x77,
+};
+static const unsigned char kat2416_retbits[] = {
+ 0x93, 0x2e, 0x59, 0xd4, 0x14, 0x55, 0xf8, 0x9a, 0xc8, 0x90, 0x30, 0x19,
+ 0xa6, 0x83, 0xd5, 0x35, 0x68, 0x94, 0xf4, 0xad, 0x60, 0x8f, 0x04, 0x6f,
+ 0x63, 0x57, 0x79, 0xd3, 0xae, 0x12, 0xe5, 0x52, 0xaa, 0x75, 0x57, 0x5c,
+ 0x7b, 0xbf, 0xde, 0xb5, 0x9d, 0x25, 0x38, 0x93, 0xb9, 0x6f, 0x71, 0x53,
+ 0x8f, 0xec, 0x60, 0x47, 0x58, 0x2e, 0xb9, 0x38, 0x83, 0x79, 0xad, 0x93,
+ 0x9c, 0x85, 0xc9, 0x56,
+};
+static const struct drbg_kat_pr_false kat2416_t = {
+ 0, kat2416_entropyin, kat2416_nonce, kat2416_persstr,
+ kat2416_entropyinreseed, kat2416_addinreseed, kat2416_addin0,
+ kat2416_addin1, kat2416_retbits
+};
+static const struct drbg_kat kat2416 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2416_t
+};
+
+static const unsigned char kat2417_entropyin[] = {
+ 0xa4, 0x4b, 0x6c, 0x8e, 0x84, 0x1c, 0xfe, 0x7b, 0x83, 0xc5, 0xf7, 0xa9,
+ 0xd3, 0x58, 0xd5, 0xff, 0xcf, 0x2d, 0x4c, 0xf0, 0xf3, 0x51, 0xc9, 0x99,
+ 0x88, 0xba, 0x16, 0x65, 0x69, 0x8e, 0xf2, 0x81, 0x85, 0x14, 0xc7, 0x7b,
+ 0x7e, 0x1d, 0xc5, 0xbc,
+};
+static const unsigned char kat2417_nonce[] = {0};
+static const unsigned char kat2417_persstr[] = {0};
+static const unsigned char kat2417_entropyinreseed[] = {
+ 0x2a, 0x9b, 0x73, 0x8d, 0x3b, 0xee, 0x43, 0x53, 0x56, 0x08, 0x83, 0x99,
+ 0x13, 0x27, 0x3b, 0x7b, 0xd5, 0x3d, 0x1c, 0x56, 0x2e, 0xde, 0x15, 0x37,
+ 0xd4, 0xfa, 0x0e, 0x2d, 0x84, 0x6d, 0x01, 0x20, 0x7a, 0x00, 0xb4, 0x98,
+ 0x31, 0x66, 0xa2, 0xb0,
+};
+static const unsigned char kat2417_addinreseed[] = {
+ 0xb9, 0xff, 0x9b, 0x91, 0x89, 0x60, 0x81, 0x00, 0xa3, 0xc4, 0xbf, 0xed,
+ 0xcd, 0x05, 0xe9, 0x08, 0xd9, 0x7e, 0x2d, 0x24, 0x84, 0xa9, 0x2e, 0x9b,
+ 0x31, 0x8a, 0x0f, 0x22, 0x31, 0x7c, 0xa8, 0x0e, 0xc5, 0x9a, 0x43, 0x06,
+ 0x94, 0x3e, 0x6a, 0x62,
+};
+static const unsigned char kat2417_addin0[] = {
+ 0xa2, 0xac, 0xf3, 0xc4, 0x6b, 0x6c, 0x30, 0xb1, 0xe8, 0x98, 0x55, 0xa8,
+ 0xf0, 0x0f, 0xec, 0xb8, 0xcb, 0x7f, 0xfe, 0x4b, 0x2c, 0x7b, 0xaa, 0xec,
+ 0xee, 0x58, 0x96, 0x34, 0xea, 0xdf, 0xc2, 0x71, 0x38, 0x6a, 0x7a, 0x31,
+ 0x7f, 0xbb, 0x2a, 0x98,
+};
+static const unsigned char kat2417_addin1[] = {
+ 0x41, 0x65, 0x84, 0xb1, 0x7c, 0x8e, 0xcc, 0x4e, 0x53, 0x5c, 0x0c, 0x84,
+ 0x78, 0x79, 0x82, 0x9a, 0xa7, 0xfc, 0xd4, 0xec, 0xc6, 0x91, 0xa3, 0x62,
+ 0x88, 0xd2, 0x9d, 0x20, 0x8b, 0x0d, 0xaa, 0xe9, 0xc8, 0xa1, 0xb5, 0x3f,
+ 0x5b, 0x6e, 0xcc, 0x30,
+};
+static const unsigned char kat2417_retbits[] = {
+ 0x8a, 0xb2, 0xe7, 0x1e, 0x5c, 0x96, 0xdc, 0x8f, 0x57, 0xd2, 0xc1, 0x11,
+ 0x7a, 0x3d, 0xf0, 0xf8, 0xc8, 0xb0, 0x0f, 0x20, 0x6f, 0xcb, 0x94, 0xe1,
+ 0xdd, 0x04, 0x70, 0x33, 0x7d, 0x66, 0xf0, 0xf8, 0xed, 0x2f, 0x5c, 0x60,
+ 0x57, 0x97, 0xd7, 0xdf, 0x6e, 0x2f, 0x70, 0xcf, 0x38, 0xe8, 0x42, 0xc4,
+ 0xaf, 0xab, 0xc9, 0xa5, 0xfb, 0x2a, 0x7c, 0x76, 0x51, 0xa5, 0xc4, 0x8a,
+ 0x89, 0x40, 0x09, 0xa5,
+};
+static const struct drbg_kat_pr_false kat2417_t = {
+ 1, kat2417_entropyin, kat2417_nonce, kat2417_persstr,
+ kat2417_entropyinreseed, kat2417_addinreseed, kat2417_addin0,
+ kat2417_addin1, kat2417_retbits
+};
+static const struct drbg_kat kat2417 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2417_t
+};
+
+static const unsigned char kat2418_entropyin[] = {
+ 0x91, 0x57, 0x2d, 0x61, 0xaa, 0x51, 0x0a, 0xdf, 0x20, 0xa0, 0xd7, 0x5d,
+ 0xba, 0xb5, 0xc9, 0x79, 0x6d, 0x44, 0x88, 0xd6, 0x84, 0xd6, 0x7a, 0x33,
+ 0xa8, 0x67, 0xea, 0x2a, 0xb6, 0xe4, 0x39, 0x5c, 0x05, 0x9d, 0x89, 0x4c,
+ 0xcd, 0x57, 0x51, 0xb8,
+};
+static const unsigned char kat2418_nonce[] = {0};
+static const unsigned char kat2418_persstr[] = {0};
+static const unsigned char kat2418_entropyinreseed[] = {
+ 0xda, 0x82, 0xdf, 0xf8, 0xf4, 0x3f, 0x6e, 0xc8, 0x62, 0xb6, 0xf2, 0x93,
+ 0x97, 0xef, 0xd2, 0xc0, 0xd2, 0xd1, 0x64, 0x5b, 0xf1, 0x8b, 0x56, 0xc5,
+ 0xc9, 0x5f, 0x23, 0x0b, 0xaa, 0x16, 0x68, 0x8a, 0x81, 0x09, 0xa8, 0xbe,
+ 0x2e, 0x26, 0xb4, 0xfa,
+};
+static const unsigned char kat2418_addinreseed[] = {
+ 0x14, 0x5e, 0x75, 0x54, 0xc3, 0x42, 0xb8, 0xc0, 0xbc, 0x8e, 0xc4, 0xf7,
+ 0x1d, 0xcf, 0x58, 0x6c, 0x2b, 0x67, 0xec, 0x12, 0xae, 0xaf, 0x9b, 0xd1,
+ 0xe4, 0xbf, 0x7f, 0x9b, 0x93, 0x20, 0xfd, 0x0b, 0xd9, 0x1d, 0x8c, 0x38,
+ 0x85, 0x02, 0x67, 0xf9,
+};
+static const unsigned char kat2418_addin0[] = {
+ 0x92, 0x20, 0x91, 0x99, 0x09, 0xcd, 0xf0, 0x48, 0x2f, 0x7b, 0x88, 0xca,
+ 0x2e, 0xbb, 0x38, 0x79, 0x83, 0xf0, 0x03, 0x43, 0x53, 0x64, 0x60, 0xa6,
+ 0x6a, 0x22, 0x0a, 0x3b, 0xcc, 0xf1, 0x38, 0x9b, 0xa8, 0x59, 0xb7, 0xb9,
+ 0xb3, 0xeb, 0xff, 0x59,
+};
+static const unsigned char kat2418_addin1[] = {
+ 0x47, 0x47, 0x97, 0x7b, 0xff, 0xf8, 0x0c, 0xba, 0xa1, 0x76, 0x47, 0x77,
+ 0xa4, 0x66, 0x59, 0x72, 0xd3, 0x6b, 0x21, 0x45, 0x59, 0x59, 0x05, 0x67,
+ 0xb4, 0x6c, 0xbc, 0x71, 0xa2, 0xe8, 0x23, 0x09, 0xb6, 0xe3, 0xe8, 0xf7,
+ 0x1e, 0x67, 0x50, 0xd2,
+};
+static const unsigned char kat2418_retbits[] = {
+ 0xf0, 0x06, 0x15, 0xaf, 0x99, 0xa9, 0xf9, 0x9d, 0x2c, 0xdf, 0xdb, 0x16,
+ 0xc7, 0x88, 0x73, 0xd9, 0x31, 0x13, 0x29, 0xee, 0x70, 0x05, 0x58, 0xcb,
+ 0xbe, 0x40, 0xa5, 0x3d, 0xcc, 0xe6, 0xca, 0xb3, 0xbf, 0xb7, 0xec, 0x49,
+ 0x7c, 0xe7, 0x3b, 0xa7, 0x26, 0x92, 0x2c, 0x96, 0x85, 0x29, 0xf6, 0x64,
+ 0xdd, 0xf3, 0x22, 0xbc, 0x1c, 0xce, 0x69, 0xae, 0x79, 0xad, 0x62, 0x6e,
+ 0x2d, 0xb2, 0xc7, 0xa9,
+};
+static const struct drbg_kat_pr_false kat2418_t = {
+ 2, kat2418_entropyin, kat2418_nonce, kat2418_persstr,
+ kat2418_entropyinreseed, kat2418_addinreseed, kat2418_addin0,
+ kat2418_addin1, kat2418_retbits
+};
+static const struct drbg_kat kat2418 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2418_t
+};
+
+static const unsigned char kat2419_entropyin[] = {
+ 0x9d, 0x49, 0x0a, 0xa1, 0x65, 0x01, 0x64, 0x56, 0x80, 0x73, 0xdd, 0x40,
+ 0xe7, 0x96, 0x7e, 0x81, 0x35, 0x54, 0x41, 0x79, 0x26, 0xcf, 0xbb, 0x74,
+ 0xf7, 0x0f, 0x6e, 0x4b, 0xee, 0xb0, 0x2c, 0xd3, 0x9f, 0xf5, 0xf3, 0xe2,
+ 0x78, 0xfe, 0x4b, 0x0c,
+};
+static const unsigned char kat2419_nonce[] = {0};
+static const unsigned char kat2419_persstr[] = {0};
+static const unsigned char kat2419_entropyinreseed[] = {
+ 0x9e, 0xbf, 0x64, 0x92, 0x7e, 0xd2, 0x60, 0xd9, 0x0a, 0x8a, 0x9a, 0xd7,
+ 0x79, 0x15, 0xaa, 0x9b, 0x40, 0xe7, 0x54, 0x38, 0x87, 0x25, 0xc3, 0x49,
+ 0xf5, 0x9b, 0xa2, 0xbb, 0x43, 0xe6, 0xb3, 0x61, 0xd0, 0xb0, 0x58, 0x4c,
+ 0xe0, 0x26, 0x61, 0x61,
+};
+static const unsigned char kat2419_addinreseed[] = {
+ 0x64, 0x77, 0x21, 0x39, 0xea, 0xe5, 0xe6, 0x60, 0x45, 0x49, 0x79, 0x2d,
+ 0xd0, 0x29, 0x19, 0x1e, 0xfa, 0x8e, 0x5e, 0x97, 0xc0, 0xfe, 0xff, 0x9e,
+ 0xad, 0x2d, 0xe1, 0x9a, 0x2d, 0x4c, 0x92, 0xf9, 0x30, 0xd3, 0x20, 0x15,
+ 0x89, 0x9f, 0xe6, 0x84,
+};
+static const unsigned char kat2419_addin0[] = {
+ 0x58, 0x3a, 0xbb, 0x1d, 0x1d, 0x0f, 0x63, 0x21, 0x79, 0xbd, 0xdc, 0x68,
+ 0x89, 0xbc, 0x1c, 0x2a, 0x09, 0x79, 0xb0, 0xf3, 0xeb, 0xd3, 0x83, 0xd5,
+ 0xf0, 0x0d, 0x18, 0xbd, 0xc0, 0xb2, 0x77, 0xf4, 0x0a, 0xf7, 0xb5, 0xc4,
+ 0x6a, 0x1f, 0x89, 0x36,
+};
+static const unsigned char kat2419_addin1[] = {
+ 0xf2, 0xe2, 0x4f, 0xbb, 0xd6, 0x26, 0xaa, 0x8e, 0xdc, 0xc2, 0xbd, 0x77,
+ 0xdc, 0x35, 0x69, 0xc5, 0xb9, 0x61, 0xfc, 0x86, 0x48, 0xc2, 0x46, 0x0a,
+ 0x78, 0xab, 0x4d, 0x1f, 0x29, 0x17, 0xa6, 0xcb, 0xa3, 0x46, 0x6a, 0xae,
+ 0x45, 0xdb, 0x2c, 0x5c,
+};
+static const unsigned char kat2419_retbits[] = {
+ 0x62, 0xa5, 0x98, 0xb9, 0xa7, 0xf4, 0x07, 0x71, 0xc6, 0x5c, 0xdc, 0x99,
+ 0x85, 0x1b, 0x22, 0xa7, 0x53, 0xf9, 0x2a, 0xdb, 0x02, 0x6a, 0xcf, 0xdd,
+ 0x92, 0x57, 0x24, 0x42, 0x5d, 0xb3, 0xb6, 0xea, 0x7b, 0x28, 0xd1, 0x3a,
+ 0x89, 0x8a, 0x2d, 0xa6, 0x3e, 0x19, 0x09, 0x46, 0xb0, 0xab, 0x1a, 0xdb,
+ 0x67, 0xf0, 0x52, 0x64, 0x0f, 0xf7, 0xe5, 0xaf, 0x7a, 0x53, 0xcf, 0x1b,
+ 0xb3, 0x9a, 0xee, 0x69,
+};
+static const struct drbg_kat_pr_false kat2419_t = {
+ 3, kat2419_entropyin, kat2419_nonce, kat2419_persstr,
+ kat2419_entropyinreseed, kat2419_addinreseed, kat2419_addin0,
+ kat2419_addin1, kat2419_retbits
+};
+static const struct drbg_kat kat2419 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2419_t
+};
+
+static const unsigned char kat2420_entropyin[] = {
+ 0xdc, 0x0f, 0x0c, 0xa3, 0x21, 0x37, 0xc6, 0x96, 0x70, 0x6f, 0xda, 0xda,
+ 0x6d, 0x0f, 0x6c, 0x24, 0xee, 0x0b, 0x68, 0xf4, 0x09, 0x1f, 0x8d, 0x2b,
+ 0x10, 0x9c, 0x24, 0xe4, 0x74, 0x68, 0x50, 0x70, 0xc3, 0x87, 0xf2, 0x1b,
+ 0x0c, 0x15, 0xf1, 0xc5,
+};
+static const unsigned char kat2420_nonce[] = {0};
+static const unsigned char kat2420_persstr[] = {0};
+static const unsigned char kat2420_entropyinreseed[] = {
+ 0x0d, 0x09, 0xb2, 0x6d, 0x4b, 0x71, 0x22, 0x57, 0x71, 0x42, 0x48, 0xfc,
+ 0x78, 0xea, 0xca, 0xc8, 0x14, 0xa7, 0x6b, 0xf4, 0x44, 0x50, 0x89, 0x11,
+ 0x85, 0x2f, 0x49, 0x92, 0xe8, 0x41, 0x57, 0x38, 0xb4, 0xf4, 0x77, 0xca,
+ 0x8e, 0x4f, 0x01, 0xc7,
+};
+static const unsigned char kat2420_addinreseed[] = {
+ 0xbb, 0xc0, 0x04, 0x7a, 0x8c, 0x57, 0xd5, 0xf9, 0x6f, 0x71, 0x7d, 0x06,
+ 0xc2, 0x2e, 0x84, 0xc1, 0x3b, 0xe6, 0x9f, 0x5f, 0xf7, 0xb6, 0x7f, 0x51,
+ 0xd1, 0x74, 0xe6, 0xca, 0xde, 0xdb, 0x18, 0x1f, 0x7f, 0x8e, 0x95, 0x11,
+ 0xd1, 0x4e, 0xdb, 0xc6,
+};
+static const unsigned char kat2420_addin0[] = {
+ 0xcc, 0x0d, 0x7b, 0x32, 0x14, 0xb5, 0x3d, 0xc5, 0xe0, 0xf4, 0xc8, 0x91,
+ 0x41, 0x8b, 0x65, 0x85, 0x43, 0xd8, 0xa9, 0xf6, 0x6e, 0x3b, 0xf5, 0x82,
+ 0x7e, 0xd9, 0xef, 0xc2, 0xcf, 0x25, 0xf7, 0xfc, 0x8b, 0x0b, 0x56, 0xfa,
+ 0x2b, 0x3b, 0xbb, 0xbe,
+};
+static const unsigned char kat2420_addin1[] = {
+ 0xa6, 0xd3, 0xc7, 0x27, 0x0e, 0x53, 0x17, 0x18, 0x41, 0x6c, 0xd8, 0x7e,
+ 0x0d, 0x8c, 0xb8, 0xa1, 0xec, 0xb1, 0xf1, 0xde, 0x6e, 0xbf, 0x33, 0x9e,
+ 0x22, 0x9c, 0xda, 0xb2, 0x53, 0x99, 0x52, 0xfb, 0x75, 0xdc, 0xc7, 0xe4,
+ 0xe4, 0xd8, 0x8a, 0xb3,
+};
+static const unsigned char kat2420_retbits[] = {
+ 0x0e, 0x84, 0xd7, 0xc3, 0x9b, 0x04, 0x9d, 0xc7, 0x68, 0x9b, 0x60, 0x9b,
+ 0x05, 0x2d, 0x1d, 0x24, 0xcb, 0xd6, 0xd4, 0xa8, 0x3a, 0xff, 0xb8, 0x79,
+ 0x96, 0xf0, 0x16, 0xe5, 0x9f, 0xc9, 0xc6, 0x5e, 0xf2, 0xbc, 0x4c, 0xca,
+ 0x0a, 0x95, 0x06, 0x72, 0xf3, 0x1a, 0xb3, 0x72, 0x27, 0x63, 0xbe, 0x5e,
+ 0x44, 0x4c, 0xc6, 0x5a, 0xc3, 0x3b, 0x9f, 0x0e, 0x61, 0x75, 0x55, 0x9c,
+ 0x65, 0x68, 0x77, 0x8b,
+};
+static const struct drbg_kat_pr_false kat2420_t = {
+ 4, kat2420_entropyin, kat2420_nonce, kat2420_persstr,
+ kat2420_entropyinreseed, kat2420_addinreseed, kat2420_addin0,
+ kat2420_addin1, kat2420_retbits
+};
+static const struct drbg_kat kat2420 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2420_t
+};
+
+static const unsigned char kat2421_entropyin[] = {
+ 0x3b, 0x5b, 0x21, 0x30, 0xcc, 0x3b, 0x2a, 0x60, 0x0c, 0x91, 0x05, 0x4a,
+ 0x66, 0x2d, 0xda, 0xa4, 0x22, 0x5f, 0x69, 0x4a, 0x26, 0x13, 0xd8, 0x68,
+ 0x07, 0x5f, 0x63, 0x4a, 0x45, 0xdf, 0x57, 0x49, 0x6d, 0x84, 0x3b, 0x3c,
+ 0xd0, 0x9f, 0x56, 0x8a,
+};
+static const unsigned char kat2421_nonce[] = {0};
+static const unsigned char kat2421_persstr[] = {0};
+static const unsigned char kat2421_entropyinreseed[] = {
+ 0x33, 0xe8, 0x63, 0x26, 0x00, 0x2f, 0x71, 0xb7, 0x9d, 0x67, 0x82, 0x4a,
+ 0xe4, 0xb7, 0xdd, 0x18, 0x61, 0x0d, 0x3f, 0x2a, 0x91, 0x1c, 0xee, 0x7f,
+ 0xdf, 0x24, 0xaf, 0x51, 0x5f, 0x30, 0x62, 0x70, 0xe9, 0x15, 0x0f, 0xeb,
+ 0xd8, 0x0e, 0x5b, 0xc0,
+};
+static const unsigned char kat2421_addinreseed[] = {
+ 0x4e, 0x1d, 0xac, 0x0d, 0x8e, 0x47, 0xc7, 0xb0, 0x66, 0x51, 0xfb, 0x76,
+ 0x66, 0xab, 0x9f, 0x4d, 0xb3, 0xa1, 0xad, 0x41, 0x6b, 0x44, 0xfa, 0x09,
+ 0x5c, 0x3f, 0x85, 0x11, 0xc2, 0xfc, 0x84, 0x9f, 0x08, 0x07, 0xe1, 0x46,
+ 0x63, 0x8d, 0xd2, 0xa2,
+};
+static const unsigned char kat2421_addin0[] = {
+ 0x38, 0xdd, 0x29, 0xff, 0x7f, 0x16, 0x7b, 0x52, 0x1b, 0x30, 0x19, 0x15,
+ 0x24, 0xb1, 0xeb, 0x3e, 0xda, 0x03, 0x41, 0xe4, 0x78, 0x23, 0x87, 0x2b,
+ 0x17, 0x75, 0xc1, 0x76, 0x87, 0x98, 0xf0, 0xc4, 0xe7, 0x57, 0xc5, 0xfd,
+ 0x15, 0x14, 0x04, 0x5b,
+};
+static const unsigned char kat2421_addin1[] = {
+ 0xa7, 0xc9, 0x99, 0x80, 0x6d, 0x38, 0x2e, 0xf8, 0xe9, 0x1e, 0xcf, 0x58,
+ 0x61, 0x59, 0x86, 0x02, 0x13, 0x50, 0xdd, 0x26, 0xb8, 0xd0, 0x4a, 0xa5,
+ 0x7d, 0x8d, 0x69, 0x84, 0x5e, 0xe9, 0x23, 0xa1, 0x36, 0x94, 0x7b, 0xe4,
+ 0x1d, 0x13, 0xa2, 0x54,
+};
+static const unsigned char kat2421_retbits[] = {
+ 0x64, 0xeb, 0x6c, 0xea, 0x5d, 0x7e, 0xec, 0x48, 0xbe, 0x1c, 0x63, 0xa7,
+ 0x6f, 0xa8, 0xdf, 0x5a, 0x18, 0x32, 0x96, 0x12, 0x10, 0x89, 0xf8, 0x9c,
+ 0x32, 0x2e, 0xee, 0x91, 0x6e, 0x70, 0xf8, 0x38, 0x92, 0x57, 0x09, 0xe2,
+ 0xdb, 0xb0, 0x5f, 0xff, 0x61, 0x37, 0x90, 0xe8, 0xbd, 0x4a, 0x62, 0x89,
+ 0xe9, 0x6a, 0x83, 0xae, 0xc6, 0xcf, 0xf4, 0x6a, 0xef, 0x91, 0xce, 0xf1,
+ 0x3e, 0x61, 0xbe, 0x60,
+};
+static const struct drbg_kat_pr_false kat2421_t = {
+ 5, kat2421_entropyin, kat2421_nonce, kat2421_persstr,
+ kat2421_entropyinreseed, kat2421_addinreseed, kat2421_addin0,
+ kat2421_addin1, kat2421_retbits
+};
+static const struct drbg_kat kat2421 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2421_t
+};
+
+static const unsigned char kat2422_entropyin[] = {
+ 0x58, 0x59, 0xf9, 0x21, 0x72, 0x4d, 0xf5, 0x22, 0xf3, 0x48, 0xa3, 0x6f,
+ 0x23, 0x78, 0x04, 0xdd, 0xbb, 0x71, 0xc7, 0xbc, 0xf6, 0x27, 0x3e, 0xf4,
+ 0x61, 0xdc, 0xf7, 0x4d, 0xcb, 0xc2, 0x1f, 0x0c, 0x34, 0x7c, 0x62, 0x8d,
+ 0xc5, 0xe3, 0x73, 0xd3,
+};
+static const unsigned char kat2422_nonce[] = {0};
+static const unsigned char kat2422_persstr[] = {0};
+static const unsigned char kat2422_entropyinreseed[] = {
+ 0xc0, 0xd3, 0x0c, 0xf0, 0xed, 0x04, 0x6a, 0x78, 0x87, 0xc7, 0x68, 0x4a,
+ 0xd8, 0x8d, 0x1a, 0x25, 0xb4, 0xe8, 0xae, 0x30, 0x35, 0xf2, 0xad, 0x6a,
+ 0xde, 0x05, 0xcc, 0xb3, 0xcb, 0x42, 0x41, 0x0e, 0x27, 0x90, 0xc9, 0x7d,
+ 0xab, 0x36, 0xd6, 0x58,
+};
+static const unsigned char kat2422_addinreseed[] = {
+ 0x5c, 0x40, 0xef, 0x84, 0xf8, 0x70, 0xa6, 0x0f, 0x18, 0x0e, 0xa2, 0x7d,
+ 0x10, 0xb0, 0xfa, 0x9f, 0xcb, 0xb9, 0xc5, 0x38, 0x13, 0x95, 0xd1, 0xd0,
+ 0x04, 0xab, 0x2b, 0x25, 0x36, 0x6a, 0xc7, 0xef, 0xb4, 0xe4, 0x91, 0x4a,
+ 0x44, 0xe6, 0x86, 0x8f,
+};
+static const unsigned char kat2422_addin0[] = {
+ 0xd4, 0x7e, 0x7c, 0x58, 0x6e, 0x87, 0x46, 0xa8, 0x7e, 0x1c, 0x5c, 0x0f,
+ 0x24, 0x29, 0xa0, 0xf7, 0x61, 0x56, 0x9b, 0xe5, 0xe3, 0xa7, 0x53, 0xf4,
+ 0x53, 0xb7, 0x5b, 0xd0, 0x9d, 0x52, 0x12, 0x69, 0x3f, 0x39, 0xd3, 0x3a,
+ 0x6f, 0x49, 0xc3, 0xb0,
+};
+static const unsigned char kat2422_addin1[] = {
+ 0x86, 0x70, 0x72, 0xeb, 0xb2, 0xad, 0x2d, 0x87, 0xa7, 0x9b, 0xd6, 0xce,
+ 0x4e, 0xb9, 0xfc, 0xd7, 0x17, 0x42, 0x88, 0x24, 0xb5, 0x6d, 0x2f, 0xe8,
+ 0x32, 0x79, 0x92, 0xbc, 0xfb, 0x79, 0x24, 0x94, 0xd7, 0x59, 0x6b, 0xd9,
+ 0x72, 0x77, 0x0a, 0x83,
+};
+static const unsigned char kat2422_retbits[] = {
+ 0x24, 0x69, 0x14, 0x31, 0x8b, 0x6b, 0xb9, 0x93, 0x68, 0x85, 0xcb, 0x19,
+ 0x75, 0xa5, 0x28, 0x10, 0x9c, 0xf7, 0x46, 0x44, 0x84, 0xdb, 0x70, 0x0e,
+ 0xcb, 0x2d, 0x69, 0x91, 0x9e, 0x4a, 0x7d, 0x6b, 0x2e, 0xd4, 0x70, 0xde,
+ 0x92, 0xa2, 0xc6, 0x48, 0x99, 0x5b, 0xef, 0xf8, 0x2c, 0xc1, 0x30, 0x33,
+ 0xc8, 0xdb, 0xec, 0x4d, 0xc7, 0x77, 0xe8, 0xb7, 0xbb, 0x57, 0x9b, 0xd7,
+ 0xdd, 0xb2, 0xdc, 0xf7,
+};
+static const struct drbg_kat_pr_false kat2422_t = {
+ 6, kat2422_entropyin, kat2422_nonce, kat2422_persstr,
+ kat2422_entropyinreseed, kat2422_addinreseed, kat2422_addin0,
+ kat2422_addin1, kat2422_retbits
+};
+static const struct drbg_kat kat2422 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2422_t
+};
+
+static const unsigned char kat2423_entropyin[] = {
+ 0x35, 0x99, 0xc3, 0xf1, 0x7a, 0xe1, 0x05, 0xfd, 0x8c, 0x46, 0xaa, 0x0c,
+ 0x33, 0x8d, 0xa7, 0x5f, 0x6b, 0xdf, 0xf7, 0x06, 0x49, 0x12, 0xad, 0xa1,
+ 0xd9, 0xb8, 0xa0, 0xfe, 0xfd, 0xf2, 0xae, 0x5d, 0xd8, 0x48, 0xed, 0x94,
+ 0xc8, 0xaa, 0x80, 0xe9,
+};
+static const unsigned char kat2423_nonce[] = {0};
+static const unsigned char kat2423_persstr[] = {0};
+static const unsigned char kat2423_entropyinreseed[] = {
+ 0xeb, 0xc8, 0x55, 0x00, 0x45, 0x94, 0xb5, 0xd1, 0xca, 0xaa, 0x95, 0x64,
+ 0x98, 0xb7, 0x83, 0x4c, 0xb2, 0x8b, 0xbc, 0x70, 0x3b, 0x9c, 0xed, 0xb1,
+ 0x9d, 0x18, 0xbc, 0x4b, 0xf3, 0x6b, 0xbc, 0x22, 0x4b, 0x40, 0x47, 0x22,
+ 0xa8, 0xa1, 0x9b, 0x21,
+};
+static const unsigned char kat2423_addinreseed[] = {
+ 0x69, 0x2d, 0x16, 0x8d, 0x7c, 0xa6, 0x69, 0x3f, 0xb9, 0xf4, 0x1c, 0x61,
+ 0xa5, 0x3c, 0x27, 0xd1, 0x48, 0x2a, 0x75, 0xf3, 0xde, 0xd5, 0x20, 0xe3,
+ 0x1a, 0x53, 0xa5, 0xe3, 0xb2, 0x84, 0x35, 0x5c, 0x2f, 0x6c, 0xff, 0x83,
+ 0x51, 0x5b, 0x18, 0x3a,
+};
+static const unsigned char kat2423_addin0[] = {
+ 0x79, 0x6f, 0xdd, 0xef, 0x51, 0xad, 0x8f, 0xfe, 0x79, 0x2d, 0x11, 0x78,
+ 0x1e, 0xf6, 0xbc, 0xad, 0x53, 0xd9, 0x1f, 0x4b, 0x21, 0x34, 0xbe, 0x53,
+ 0xa9, 0x59, 0xab, 0xb9, 0x9f, 0x1b, 0x87, 0x05, 0x83, 0xc7, 0xfc, 0x3a,
+ 0x3e, 0xc4, 0x64, 0xcd,
+};
+static const unsigned char kat2423_addin1[] = {
+ 0x42, 0x7d, 0x44, 0x21, 0xe6, 0x98, 0x1c, 0xad, 0x4c, 0x0a, 0xbc, 0xa0,
+ 0xb9, 0x14, 0x6c, 0x18, 0x4b, 0xfa, 0x6f, 0x0f, 0xde, 0xf1, 0xcd, 0x12,
+ 0x22, 0xa1, 0x44, 0x2a, 0xed, 0xeb, 0x75, 0x62, 0x84, 0x23, 0xa8, 0x32,
+ 0x6f, 0xc6, 0xdd, 0xc6,
+};
+static const unsigned char kat2423_retbits[] = {
+ 0x92, 0x70, 0xfe, 0xa3, 0xfe, 0x71, 0xcb, 0xe9, 0x54, 0xac, 0x4b, 0x79,
+ 0xe2, 0xcb, 0x31, 0xaf, 0x0d, 0xaf, 0x1f, 0xe7, 0x32, 0x99, 0x04, 0xbb,
+ 0xff, 0xd8, 0x8c, 0xc0, 0xc9, 0xa0, 0x03, 0x30, 0x32, 0xb0, 0x61, 0xf6,
+ 0xa8, 0x25, 0xf3, 0xc5, 0x6d, 0x78, 0xe1, 0x02, 0xd1, 0x04, 0x28, 0x43,
+ 0x3e, 0x1c, 0x19, 0xca, 0x84, 0xa0, 0xf1, 0xd7, 0xa5, 0x6c, 0x52, 0xeb,
+ 0x11, 0xd8, 0x4e, 0x2a,
+};
+static const struct drbg_kat_pr_false kat2423_t = {
+ 7, kat2423_entropyin, kat2423_nonce, kat2423_persstr,
+ kat2423_entropyinreseed, kat2423_addinreseed, kat2423_addin0,
+ kat2423_addin1, kat2423_retbits
+};
+static const struct drbg_kat kat2423 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2423_t
+};
+
+static const unsigned char kat2424_entropyin[] = {
+ 0x43, 0x12, 0xd0, 0x76, 0xaa, 0x8f, 0x71, 0x9c, 0x33, 0x40, 0xd8, 0x30,
+ 0xe7, 0x3e, 0x17, 0x61, 0xc7, 0x55, 0xf6, 0x0f, 0xd3, 0x14, 0x43, 0x14,
+ 0x10, 0x92, 0xe9, 0xf9, 0x81, 0x42, 0x06, 0xea, 0xf5, 0xdb, 0x71, 0x2d,
+ 0xa0, 0x54, 0x64, 0x76,
+};
+static const unsigned char kat2424_nonce[] = {0};
+static const unsigned char kat2424_persstr[] = {0};
+static const unsigned char kat2424_entropyinreseed[] = {
+ 0x17, 0x82, 0x67, 0xc6, 0x6e, 0x65, 0x87, 0x64, 0x37, 0x37, 0x50, 0x23,
+ 0x61, 0xe6, 0x52, 0x94, 0x80, 0x80, 0x59, 0xde, 0x01, 0x28, 0x72, 0xaf,
+ 0x50, 0xe3, 0xfc, 0x22, 0xa7, 0x7b, 0x1d, 0x89, 0x7f, 0x89, 0x1e, 0x17,
+ 0x37, 0xb9, 0xce, 0xfb,
+};
+static const unsigned char kat2424_addinreseed[] = {
+ 0xdc, 0x8e, 0xf5, 0xcb, 0x2f, 0xe6, 0x58, 0x22, 0x90, 0xb7, 0x86, 0x66,
+ 0x38, 0x11, 0xf0, 0xc4, 0x13, 0xcd, 0x3a, 0x7b, 0xb0, 0xcc, 0x9e, 0xdb,
+ 0x71, 0x2b, 0x33, 0x31, 0xc1, 0xd9, 0x5d, 0xed, 0xb3, 0xd0, 0x19, 0x74,
+ 0xf8, 0xb3, 0x9b, 0x62,
+};
+static const unsigned char kat2424_addin0[] = {
+ 0x63, 0x14, 0x3a, 0x7c, 0x7f, 0xa1, 0x66, 0xfb, 0xac, 0xd6, 0x15, 0x74,
+ 0x49, 0x1d, 0x9b, 0xbc, 0x78, 0x2e, 0x08, 0xf5, 0x99, 0x97, 0xcc, 0xa6,
+ 0x33, 0x5d, 0xff, 0x95, 0xb0, 0x1e, 0x80, 0xe0, 0x82, 0x0f, 0xba, 0xfb,
+ 0xd5, 0xdf, 0x7c, 0x34,
+};
+static const unsigned char kat2424_addin1[] = {
+ 0xcf, 0xdb, 0xa4, 0xc3, 0x78, 0xc5, 0xf6, 0xfb, 0x52, 0xa4, 0xdb, 0xd3,
+ 0x03, 0xe1, 0x97, 0x17, 0x2d, 0x4d, 0xf8, 0x8f, 0x68, 0x17, 0x04, 0x36,
+ 0x17, 0x61, 0xc8, 0x0e, 0x3f, 0xb2, 0xcf, 0x67, 0x8c, 0xa8, 0x68, 0x7f,
+ 0xfb, 0xc9, 0x19, 0xf6,
+};
+static const unsigned char kat2424_retbits[] = {
+ 0x21, 0x97, 0x9a, 0x03, 0x9a, 0x04, 0xba, 0x65, 0x89, 0xb5, 0x6d, 0x56,
+ 0x3d, 0x28, 0x63, 0xe0, 0xa4, 0x44, 0xf7, 0x3d, 0x37, 0x71, 0xae, 0x53,
+ 0x6b, 0x50, 0xff, 0xd5, 0x9e, 0xe8, 0x2c, 0xb1, 0x27, 0x57, 0x23, 0xd6,
+ 0xb7, 0x7e, 0xfc, 0x44, 0xbf, 0x67, 0x3f, 0xd3, 0xdd, 0xf1, 0x4c, 0x16,
+ 0x0e, 0x59, 0xce, 0x54, 0x9c, 0xd5, 0x1f, 0x46, 0x71, 0xe6, 0xa5, 0xcf,
+ 0x7e, 0xe6, 0x30, 0x5e,
+};
+static const struct drbg_kat_pr_false kat2424_t = {
+ 8, kat2424_entropyin, kat2424_nonce, kat2424_persstr,
+ kat2424_entropyinreseed, kat2424_addinreseed, kat2424_addin0,
+ kat2424_addin1, kat2424_retbits
+};
+static const struct drbg_kat kat2424 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2424_t
+};
+
+static const unsigned char kat2425_entropyin[] = {
+ 0x18, 0x48, 0x8a, 0x34, 0xee, 0x9d, 0xe4, 0xff, 0x27, 0x90, 0x5f, 0x19,
+ 0x73, 0x96, 0x04, 0xff, 0x5b, 0x11, 0x83, 0x91, 0x48, 0x55, 0xa2, 0xe4,
+ 0xb0, 0x5e, 0x07, 0x8e, 0xdc, 0x6f, 0x4e, 0x45, 0xa2, 0xe5, 0x0e, 0x90,
+ 0x06, 0x66, 0x1f, 0xd4,
+};
+static const unsigned char kat2425_nonce[] = {0};
+static const unsigned char kat2425_persstr[] = {0};
+static const unsigned char kat2425_entropyinreseed[] = {
+ 0xac, 0x53, 0xbc, 0x31, 0x3a, 0x18, 0x15, 0x34, 0x5c, 0xa9, 0xad, 0x9c,
+ 0x9b, 0x4e, 0x28, 0xfe, 0x1d, 0x01, 0x73, 0xd0, 0x14, 0x7f, 0xd0, 0x78,
+ 0x30, 0xa5, 0x7e, 0x67, 0xee, 0x67, 0xca, 0x76, 0x50, 0xa2, 0x62, 0x38,
+ 0xc4, 0x5e, 0x41, 0xf8,
+};
+static const unsigned char kat2425_addinreseed[] = {
+ 0xe7, 0x1f, 0x6d, 0x81, 0x66, 0xaa, 0xfe, 0x20, 0x7b, 0x80, 0x4c, 0xb2,
+ 0xb5, 0x1a, 0x84, 0xf3, 0xbd, 0x79, 0xbd, 0x88, 0xbb, 0xb5, 0x23, 0x24,
+ 0x4d, 0x47, 0xcf, 0xec, 0x05, 0xc5, 0xc4, 0x58, 0x3e, 0x0b, 0x0f, 0x5a,
+ 0x58, 0x31, 0xbb, 0x5a,
+};
+static const unsigned char kat2425_addin0[] = {
+ 0x70, 0x89, 0xce, 0xe3, 0xd8, 0xf6, 0x6c, 0xec, 0xe6, 0xe0, 0x53, 0xf4,
+ 0x80, 0x16, 0xf1, 0xf9, 0x9d, 0xfc, 0xe7, 0x33, 0x56, 0xa6, 0xbb, 0xf6,
+ 0xd9, 0x05, 0x86, 0x4e, 0x97, 0x02, 0x9b, 0x4a, 0x93, 0x43, 0x00, 0x86,
+ 0x28, 0x31, 0x0d, 0xc6,
+};
+static const unsigned char kat2425_addin1[] = {
+ 0x12, 0x35, 0xd6, 0xfe, 0xbe, 0xc6, 0x6d, 0xea, 0x03, 0xe4, 0x44, 0x19,
+ 0x5d, 0xe5, 0x4a, 0x42, 0x94, 0x83, 0x5d, 0x7a, 0x23, 0x13, 0xf8, 0xfd,
+ 0x1f, 0xc8, 0x4d, 0xde, 0x0e, 0x07, 0x46, 0x75, 0x03, 0x35, 0x92, 0xd8,
+ 0x21, 0xa9, 0x9f, 0x68,
+};
+static const unsigned char kat2425_retbits[] = {
+ 0x47, 0x49, 0xc7, 0x41, 0x5b, 0xd5, 0x8e, 0x7a, 0x21, 0x19, 0xf5, 0x0c,
+ 0xfd, 0x67, 0x3e, 0x73, 0x89, 0x86, 0xe4, 0x1e, 0x4e, 0x9b, 0x38, 0xc4,
+ 0x33, 0x76, 0x6e, 0x4a, 0xa1, 0xe8, 0x69, 0x4e, 0x7b, 0x93, 0x72, 0x83,
+ 0x2d, 0x8e, 0x70, 0x12, 0x1d, 0x99, 0x9e, 0x8b, 0xd0, 0x93, 0x7b, 0x79,
+ 0xe4, 0x88, 0xda, 0xf1, 0x87, 0x3e, 0xb8, 0xfa, 0xfa, 0x16, 0xb9, 0x34,
+ 0x57, 0x48, 0xf5, 0x51,
+};
+static const struct drbg_kat_pr_false kat2425_t = {
+ 9, kat2425_entropyin, kat2425_nonce, kat2425_persstr,
+ kat2425_entropyinreseed, kat2425_addinreseed, kat2425_addin0,
+ kat2425_addin1, kat2425_retbits
+};
+static const struct drbg_kat kat2425 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2425_t
+};
+
+static const unsigned char kat2426_entropyin[] = {
+ 0xe0, 0xb9, 0xb4, 0x8e, 0xdf, 0x87, 0x3e, 0xbc, 0xb6, 0x46, 0xb0, 0x90,
+ 0xec, 0xc9, 0xc6, 0xd7, 0xb1, 0xf4, 0xa5, 0xe8, 0x7c, 0x0b, 0x25, 0x70,
+ 0xf7, 0xec, 0xc4, 0x59, 0xab, 0xa8, 0x55, 0x23, 0xde, 0xd2, 0x04, 0xf5,
+ 0xfe, 0xc8, 0xd2, 0x7a,
+};
+static const unsigned char kat2426_nonce[] = {0};
+static const unsigned char kat2426_persstr[] = {0};
+static const unsigned char kat2426_entropyinreseed[] = {
+ 0x21, 0x31, 0x81, 0xaf, 0x9f, 0x4b, 0x08, 0x90, 0x8e, 0x08, 0xb5, 0x4a,
+ 0xbb, 0x5d, 0xb0, 0x9d, 0xa6, 0x76, 0x08, 0x78, 0x93, 0x79, 0x78, 0x8e,
+ 0xf4, 0xc3, 0xd9, 0x6c, 0xca, 0x41, 0xdb, 0x9e, 0x5e, 0x3c, 0x42, 0x56,
+ 0x90, 0x3d, 0x68, 0x62,
+};
+static const unsigned char kat2426_addinreseed[] = {
+ 0xd6, 0x66, 0xd0, 0x14, 0x21, 0x53, 0xd4, 0xbc, 0x3b, 0x50, 0x8e, 0x5c,
+ 0x15, 0x5e, 0x84, 0x03, 0x76, 0xa6, 0xc6, 0xec, 0x3c, 0xf5, 0x45, 0x3c,
+ 0x38, 0xcc, 0x70, 0x31, 0xab, 0xd0, 0x01, 0x41, 0x4f, 0x6f, 0xf5, 0x56,
+ 0x75, 0xac, 0x3a, 0x26,
+};
+static const unsigned char kat2426_addin0[] = {
+ 0xe2, 0x82, 0x22, 0x30, 0xe1, 0x0c, 0x94, 0x11, 0x28, 0x16, 0x67, 0xab,
+ 0xad, 0x67, 0x7d, 0xd7, 0x0b, 0xbc, 0xf8, 0x14, 0xc3, 0x4e, 0x0e, 0x8f,
+ 0x19, 0x00, 0xdf, 0x78, 0x78, 0xc8, 0x7c, 0xe6, 0x30, 0x63, 0x88, 0x1d,
+ 0xca, 0x1d, 0xe1, 0x3e,
+};
+static const unsigned char kat2426_addin1[] = {
+ 0xf8, 0x50, 0x6b, 0xfb, 0x85, 0xf0, 0xc8, 0x9c, 0x3c, 0x60, 0x98, 0x92,
+ 0xe7, 0xe9, 0xb7, 0x43, 0x16, 0xbb, 0xc2, 0x6d, 0x05, 0x8c, 0x80, 0x25,
+ 0xdb, 0xa9, 0xa6, 0x96, 0x79, 0xcc, 0x55, 0x09, 0x0e, 0x27, 0x05, 0x14,
+ 0xa0, 0x65, 0xa5, 0x51,
+};
+static const unsigned char kat2426_retbits[] = {
+ 0x25, 0xa4, 0x6b, 0xdd, 0xfa, 0x9a, 0xa7, 0x96, 0x8c, 0x80, 0xc2, 0x03,
+ 0x5d, 0x9a, 0xd6, 0x41, 0xec, 0x1b, 0x98, 0xc5, 0x51, 0xf3, 0xd0, 0xbb,
+ 0x0b, 0x57, 0x6c, 0xec, 0x9d, 0xc6, 0x3e, 0x28, 0xff, 0xd0, 0xd0, 0x8a,
+ 0x15, 0x39, 0xcf, 0x00, 0x52, 0x32, 0xd4, 0x20, 0xd6, 0xea, 0x0e, 0x50,
+ 0x21, 0x41, 0xf4, 0xa7, 0x30, 0x63, 0x6f, 0x41, 0xea, 0x84, 0x4e, 0xa0,
+ 0xdc, 0x42, 0x31, 0xee,
+};
+static const struct drbg_kat_pr_false kat2426_t = {
+ 10, kat2426_entropyin, kat2426_nonce, kat2426_persstr,
+ kat2426_entropyinreseed, kat2426_addinreseed, kat2426_addin0,
+ kat2426_addin1, kat2426_retbits
+};
+static const struct drbg_kat kat2426 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2426_t
+};
+
+static const unsigned char kat2427_entropyin[] = {
+ 0xf4, 0x0c, 0x54, 0x6e, 0x81, 0xce, 0x4b, 0x2c, 0xe6, 0x87, 0xce, 0x85,
+ 0x75, 0x9c, 0xab, 0xf3, 0x6f, 0xd4, 0xb9, 0x0f, 0x67, 0x76, 0x8c, 0x99,
+ 0xe1, 0x8a, 0x52, 0x5d, 0x3d, 0x11, 0xc3, 0xd8, 0x6d, 0x1d, 0xb8, 0xcb,
+ 0x49, 0xcc, 0x88, 0x1d,
+};
+static const unsigned char kat2427_nonce[] = {0};
+static const unsigned char kat2427_persstr[] = {0};
+static const unsigned char kat2427_entropyinreseed[] = {
+ 0xe8, 0xcc, 0x4f, 0x31, 0x80, 0x90, 0x4b, 0x3d, 0x06, 0x16, 0x8c, 0xb7,
+ 0xd4, 0x7b, 0x21, 0x25, 0x2a, 0xcc, 0x72, 0x89, 0x92, 0x63, 0xae, 0xe1,
+ 0x94, 0x6b, 0x37, 0xb9, 0xb5, 0x46, 0x62, 0x8f, 0x1f, 0x18, 0x26, 0x30,
+ 0x72, 0x6d, 0x61, 0x62,
+};
+static const unsigned char kat2427_addinreseed[] = {
+ 0x75, 0x3e, 0x59, 0xea, 0x01, 0x00, 0xb5, 0x1a, 0x1f, 0x01, 0x3a, 0x6f,
+ 0x0d, 0x91, 0x83, 0xe8, 0xd5, 0x4e, 0xdd, 0x44, 0x8e, 0x93, 0xb5, 0x18,
+ 0xa7, 0x0d, 0xcc, 0x7b, 0x32, 0x8e, 0x64, 0xe1, 0x14, 0xbe, 0x5b, 0xfb,
+ 0x1f, 0xb2, 0x91, 0x74,
+};
+static const unsigned char kat2427_addin0[] = {
+ 0x36, 0x75, 0xa8, 0x64, 0x1a, 0x09, 0x0d, 0x66, 0x5e, 0xcd, 0x6a, 0xb5,
+ 0x50, 0x8b, 0xd6, 0x52, 0x40, 0xf3, 0xa2, 0xc8, 0x28, 0xda, 0x70, 0x1e,
+ 0x1e, 0x59, 0x07, 0xfb, 0xb5, 0x9b, 0x8d, 0x6f, 0xad, 0xca, 0x7a, 0xef,
+ 0x53, 0xe8, 0x9e, 0xe8,
+};
+static const unsigned char kat2427_addin1[] = {
+ 0x8a, 0xaf, 0x08, 0xb0, 0xca, 0x7e, 0x9d, 0x02, 0x8f, 0x83, 0x0e, 0x45,
+ 0x74, 0x99, 0x10, 0x93, 0xf9, 0xff, 0x0c, 0xae, 0xbf, 0x89, 0x0b, 0xb8,
+ 0xc0, 0x0f, 0x2f, 0x18, 0x1f, 0x35, 0x42, 0xd1, 0x84, 0x23, 0xa2, 0xe6,
+ 0x21, 0x79, 0x36, 0x1d,
+};
+static const unsigned char kat2427_retbits[] = {
+ 0x98, 0xf6, 0xf5, 0x35, 0x9b, 0x55, 0xe8, 0xad, 0x37, 0xf7, 0x4c, 0x23,
+ 0x36, 0x34, 0x32, 0x97, 0xb9, 0xbc, 0x01, 0xbe, 0xe4, 0xe8, 0xf9, 0x8a,
+ 0x10, 0xa1, 0xe8, 0x6d, 0x56, 0x29, 0x90, 0xdf, 0xd1, 0xb3, 0xa6, 0x59,
+ 0x19, 0x8b, 0x2b, 0xf2, 0x61, 0x55, 0x13, 0x0c, 0x15, 0xa6, 0x83, 0xe0,
+ 0xd5, 0xf1, 0xec, 0xfb, 0xdc, 0x9f, 0xbf, 0x91, 0xe1, 0xbe, 0xc1, 0xd9,
+ 0x00, 0xf3, 0x06, 0x64,
+};
+static const struct drbg_kat_pr_false kat2427_t = {
+ 11, kat2427_entropyin, kat2427_nonce, kat2427_persstr,
+ kat2427_entropyinreseed, kat2427_addinreseed, kat2427_addin0,
+ kat2427_addin1, kat2427_retbits
+};
+static const struct drbg_kat kat2427 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2427_t
+};
+
+static const unsigned char kat2428_entropyin[] = {
+ 0x8e, 0xf1, 0x2c, 0x3e, 0x89, 0xa2, 0xcd, 0x21, 0xb3, 0xb1, 0x9b, 0x7e,
+ 0x38, 0xbd, 0x59, 0xd5, 0x22, 0x26, 0x12, 0xe9, 0xf7, 0xe3, 0x31, 0x3c,
+ 0x85, 0x3b, 0xaa, 0x89, 0x15, 0x75, 0xc8, 0x40, 0x77, 0xd0, 0x1f, 0x5e,
+ 0x37, 0x14, 0xcf, 0x2c,
+};
+static const unsigned char kat2428_nonce[] = {0};
+static const unsigned char kat2428_persstr[] = {0};
+static const unsigned char kat2428_entropyinreseed[] = {
+ 0x47, 0x04, 0x70, 0x5b, 0x43, 0xda, 0x7b, 0x66, 0x8a, 0xe1, 0x86, 0x5d,
+ 0x42, 0x1f, 0x6d, 0xe2, 0xc0, 0x54, 0xc6, 0x98, 0x8f, 0x93, 0xd9, 0xf1,
+ 0xce, 0x1f, 0x31, 0x42, 0x34, 0x7f, 0x20, 0xb5, 0xf4, 0x07, 0x70, 0x5e,
+ 0x76, 0x5d, 0xa4, 0x49,
+};
+static const unsigned char kat2428_addinreseed[] = {
+ 0x6f, 0x6a, 0x2f, 0xa0, 0xb3, 0x25, 0xe8, 0x54, 0xf3, 0x3e, 0xb7, 0xb2,
+ 0xe3, 0x03, 0xce, 0x24, 0x96, 0x7c, 0xbe, 0x21, 0x81, 0x2a, 0x7a, 0x24,
+ 0x48, 0x53, 0x47, 0xa0, 0xb4, 0xda, 0x15, 0x9b, 0xee, 0xfe, 0x03, 0x9a,
+ 0xbb, 0x25, 0xd8, 0x21,
+};
+static const unsigned char kat2428_addin0[] = {
+ 0xdf, 0xa6, 0x57, 0x09, 0xea, 0xc6, 0xdc, 0xd7, 0xd8, 0xce, 0x09, 0x64,
+ 0x6b, 0x78, 0xf1, 0xe2, 0x77, 0xfd, 0xe9, 0xfe, 0xaf, 0x52, 0xec, 0x3d,
+ 0x19, 0x48, 0x42, 0xe3, 0xe4, 0x17, 0x4e, 0x79, 0x03, 0x8a, 0xe1, 0x4b,
+ 0xab, 0x65, 0x12, 0x12,
+};
+static const unsigned char kat2428_addin1[] = {
+ 0x58, 0xe8, 0x2a, 0xf1, 0xb8, 0x94, 0x74, 0x38, 0xdb, 0x11, 0xd1, 0x3e,
+ 0x43, 0x6d, 0x4a, 0xfc, 0x51, 0x96, 0x7e, 0x30, 0x34, 0x26, 0x51, 0x5f,
+ 0x4f, 0xf8, 0xf0, 0x44, 0x80, 0x83, 0xf9, 0xc7, 0x28, 0xdd, 0x5b, 0x17,
+ 0x14, 0x05, 0x90, 0x7b,
+};
+static const unsigned char kat2428_retbits[] = {
+ 0xec, 0x66, 0x19, 0x4d, 0x98, 0xcd, 0x6b, 0x1c, 0x6e, 0x3e, 0xd6, 0xbd,
+ 0x5b, 0x83, 0xc2, 0x66, 0x4f, 0x87, 0x5f, 0x2a, 0x08, 0xeb, 0xc6, 0xb9,
+ 0x5e, 0x1c, 0x8f, 0xd0, 0xbd, 0x50, 0x76, 0x5e, 0xd1, 0x31, 0x5e, 0x32,
+ 0x9b, 0x35, 0x65, 0x57, 0x65, 0xbb, 0x70, 0x81, 0x57, 0x63, 0x90, 0xb6,
+ 0x4d, 0x52, 0xb1, 0xc2, 0x47, 0x62, 0xfe, 0x7d, 0x65, 0xe4, 0xa8, 0x13,
+ 0x31, 0xcd, 0x61, 0x0a,
+};
+static const struct drbg_kat_pr_false kat2428_t = {
+ 12, kat2428_entropyin, kat2428_nonce, kat2428_persstr,
+ kat2428_entropyinreseed, kat2428_addinreseed, kat2428_addin0,
+ kat2428_addin1, kat2428_retbits
+};
+static const struct drbg_kat kat2428 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2428_t
+};
+
+static const unsigned char kat2429_entropyin[] = {
+ 0x9d, 0xdc, 0x93, 0x1b, 0x65, 0x1d, 0x3a, 0xc5, 0x7d, 0xcb, 0x00, 0xdc,
+ 0xc3, 0xb4, 0xb0, 0x64, 0xdf, 0xff, 0xf4, 0x7e, 0xe2, 0x35, 0xee, 0x06,
+ 0xf6, 0x29, 0xfc, 0x11, 0x6d, 0xd1, 0x56, 0xe4, 0x5e, 0xf7, 0x21, 0x89,
+ 0x85, 0x86, 0xfb, 0xa4,
+};
+static const unsigned char kat2429_nonce[] = {0};
+static const unsigned char kat2429_persstr[] = {0};
+static const unsigned char kat2429_entropyinreseed[] = {
+ 0x45, 0x97, 0xdc, 0x09, 0x5c, 0x24, 0x34, 0x92, 0x97, 0x7a, 0x6c, 0x84,
+ 0xd3, 0x56, 0xeb, 0x67, 0x5d, 0xd6, 0xae, 0x97, 0xbc, 0x96, 0xac, 0x8d,
+ 0x93, 0x93, 0x3a, 0xaf, 0x91, 0x4d, 0xe1, 0xe4, 0x23, 0xce, 0x92, 0x37,
+ 0x28, 0x49, 0xbc, 0xfb,
+};
+static const unsigned char kat2429_addinreseed[] = {
+ 0x66, 0x52, 0x5b, 0x69, 0x09, 0x2c, 0x0a, 0x89, 0xbf, 0x4e, 0xe6, 0xfb,
+ 0xcc, 0xc3, 0x18, 0x53, 0x42, 0x10, 0x21, 0xdb, 0xfd, 0xed, 0x18, 0xdf,
+ 0xfc, 0xef, 0x91, 0x9c, 0xc1, 0x4f, 0x4d, 0x7f, 0xd6, 0x5c, 0x25, 0xec,
+ 0xd3, 0x6f, 0xea, 0xb0,
+};
+static const unsigned char kat2429_addin0[] = {
+ 0x79, 0x84, 0x10, 0x30, 0xcf, 0x70, 0x46, 0x8a, 0x49, 0x1e, 0x44, 0x63,
+ 0xd7, 0x14, 0x22, 0x67, 0x81, 0xa2, 0x7a, 0x26, 0x35, 0xa4, 0x9a, 0x29,
+ 0x38, 0x6d, 0xd6, 0xdb, 0xd3, 0x6c, 0x9a, 0x5d, 0x82, 0xf0, 0x47, 0x27,
+ 0x0b, 0xff, 0x29, 0xc1,
+};
+static const unsigned char kat2429_addin1[] = {
+ 0xac, 0x63, 0xf1, 0x7c, 0x8c, 0x46, 0xe0, 0x99, 0x6d, 0xc6, 0x96, 0x16,
+ 0x1c, 0x35, 0x9d, 0x40, 0x52, 0x32, 0x07, 0x77, 0xfc, 0x7b, 0xae, 0x0a,
+ 0xfb, 0x45, 0x6b, 0xcf, 0x9c, 0x8d, 0xba, 0xd6, 0xab, 0x10, 0xd4, 0x09,
+ 0x48, 0xf7, 0xcc, 0xf8,
+};
+static const unsigned char kat2429_retbits[] = {
+ 0xbf, 0xaf, 0x22, 0x73, 0xf8, 0x29, 0x61, 0xa9, 0x20, 0x51, 0x4c, 0xda,
+ 0x2d, 0x48, 0x6c, 0x9d, 0xed, 0x31, 0x28, 0x78, 0xcf, 0x8a, 0x5c, 0x7c,
+ 0x8d, 0x65, 0x39, 0xf3, 0x34, 0x15, 0xa0, 0xa0, 0x2a, 0xa7, 0x90, 0x7c,
+ 0x35, 0xa5, 0x76, 0x28, 0x76, 0x5b, 0x46, 0xe1, 0x4b, 0xaf, 0xbe, 0xf2,
+ 0xfc, 0xb3, 0x04, 0x76, 0xe1, 0x61, 0xe1, 0xef, 0xa8, 0x7f, 0x4c, 0x5d,
+ 0x7f, 0xee, 0x66, 0x75,
+};
+static const struct drbg_kat_pr_false kat2429_t = {
+ 13, kat2429_entropyin, kat2429_nonce, kat2429_persstr,
+ kat2429_entropyinreseed, kat2429_addinreseed, kat2429_addin0,
+ kat2429_addin1, kat2429_retbits
+};
+static const struct drbg_kat kat2429 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2429_t
+};
+
+static const unsigned char kat2430_entropyin[] = {
+ 0x15, 0xcf, 0xa0, 0xf5, 0x6d, 0x67, 0x0d, 0x19, 0x97, 0x9d, 0xd5, 0x62,
+ 0xf9, 0xf5, 0x3d, 0x6f, 0xa2, 0x48, 0x19, 0x82, 0x69, 0x47, 0x50, 0x02,
+ 0xdd, 0x9e, 0x6b, 0xb5, 0xc3, 0x05, 0xbf, 0x65, 0x02, 0x26, 0x09, 0x30,
+ 0x32, 0xe0, 0xe0, 0xac,
+};
+static const unsigned char kat2430_nonce[] = {0};
+static const unsigned char kat2430_persstr[] = {0};
+static const unsigned char kat2430_entropyinreseed[] = {
+ 0x47, 0x78, 0x2a, 0xf4, 0xe2, 0x13, 0x30, 0x29, 0x32, 0xd5, 0x2b, 0x57,
+ 0x76, 0xee, 0x84, 0x74, 0x46, 0xbf, 0xb6, 0xda, 0xc3, 0x58, 0xda, 0xfc,
+ 0xda, 0xde, 0xbf, 0xf1, 0x2e, 0x01, 0x4e, 0x01, 0xd5, 0xc1, 0x8d, 0x5c,
+ 0xf2, 0xd4, 0x2b, 0x11,
+};
+static const unsigned char kat2430_addinreseed[] = {
+ 0xf6, 0x9d, 0x8d, 0xa6, 0x8b, 0xb7, 0xc1, 0x18, 0xaa, 0xb8, 0xa2, 0x78,
+ 0x67, 0xa0, 0x59, 0x1f, 0x7c, 0x39, 0x73, 0x55, 0x0d, 0x3b, 0xec, 0x19,
+ 0x09, 0x9d, 0x46, 0xd3, 0xab, 0xc3, 0x0a, 0x30, 0x9b, 0x40, 0x5e, 0x51,
+ 0xa9, 0x2d, 0x1c, 0x2a,
+};
+static const unsigned char kat2430_addin0[] = {
+ 0xa4, 0x91, 0xfa, 0x45, 0xd1, 0x61, 0xef, 0xa7, 0x1c, 0xcd, 0xb4, 0x05,
+ 0xd6, 0xef, 0x31, 0x53, 0x70, 0x0b, 0x28, 0x96, 0x65, 0x82, 0xe1, 0x05,
+ 0x2c, 0xea, 0x99, 0x22, 0x18, 0xe5, 0xc0, 0x61, 0xd7, 0xdd, 0xb0, 0x83,
+ 0xf7, 0xea, 0xa1, 0x16,
+};
+static const unsigned char kat2430_addin1[] = {
+ 0x4a, 0x0c, 0xd5, 0x2d, 0x00, 0x50, 0x56, 0xdf, 0x60, 0x80, 0x3f, 0xb3,
+ 0x53, 0x72, 0x8f, 0x3b, 0x3f, 0xd2, 0x79, 0x64, 0xe5, 0xc9, 0x69, 0x65,
+ 0xac, 0x47, 0x2f, 0xf8, 0xbb, 0x4d, 0xed, 0xc4, 0xdd, 0x7d, 0x1c, 0xa0,
+ 0x4b, 0x12, 0x4f, 0x0a,
+};
+static const unsigned char kat2430_retbits[] = {
+ 0x0f, 0x78, 0xe4, 0x5b, 0xe3, 0x8a, 0x6a, 0x46, 0xc2, 0x91, 0x44, 0x49,
+ 0xbe, 0xb9, 0xdf, 0x52, 0x39, 0x40, 0x67, 0xb7, 0x20, 0xf3, 0x90, 0x22,
+ 0x5f, 0x93, 0x0c, 0x33, 0x13, 0x91, 0x6f, 0x00, 0x29, 0x3c, 0x7f, 0x7f,
+ 0x17, 0x3c, 0xd8, 0x9d, 0x2c, 0x30, 0xc7, 0x2b, 0xc0, 0x74, 0x82, 0xf0,
+ 0x66, 0x70, 0x8b, 0xda, 0x7a, 0x29, 0xaf, 0x42, 0x04, 0x90, 0x82, 0x1c,
+ 0x98, 0xc9, 0x95, 0xf4,
+};
+static const struct drbg_kat_pr_false kat2430_t = {
+ 14, kat2430_entropyin, kat2430_nonce, kat2430_persstr,
+ kat2430_entropyinreseed, kat2430_addinreseed, kat2430_addin0,
+ kat2430_addin1, kat2430_retbits
+};
+static const struct drbg_kat kat2430 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2430_t
+};
+
+static const unsigned char kat2431_entropyin[] = {
+ 0xe0, 0xe0, 0x3d, 0x4a, 0x9e, 0x4d, 0xe3, 0x62, 0xe6, 0xbb, 0x9b, 0xa6,
+ 0x35, 0xb8, 0x47, 0x91, 0x2a, 0x3f, 0x9e, 0x1d, 0x83, 0xb4, 0x36, 0x3f,
+ 0xc2, 0x58, 0xcd, 0xea, 0x29, 0x28, 0xa8, 0x78, 0x23, 0x18, 0x6f, 0x1c,
+ 0x47, 0xc4, 0x17, 0x5f,
+};
+static const unsigned char kat2431_nonce[] = {0};
+static const unsigned char kat2431_persstr[] = {
+ 0x2e, 0xca, 0x97, 0x47, 0x8d, 0x60, 0x6b, 0x0b, 0xca, 0x56, 0xf0, 0x55,
+ 0xa1, 0xe8, 0x39, 0x4b, 0x44, 0xf5, 0xe3, 0x02, 0x8d, 0xa5, 0x9a, 0x39,
+ 0x00, 0xd5, 0xd7, 0xbd, 0x34, 0x1b, 0x06, 0x21, 0xb5, 0xf6, 0xd2, 0x30,
+ 0x9e, 0x36, 0xb4, 0xae,
+};
+static const unsigned char kat2431_entropyinreseed[] = {
+ 0x66, 0xaa, 0x3d, 0xb4, 0xbe, 0xa8, 0xf2, 0xe1, 0xb2, 0x46, 0x97, 0x51,
+ 0x57, 0x8f, 0x24, 0xf1, 0xb4, 0xd0, 0xdf, 0x97, 0x1c, 0xf2, 0x28, 0x17,
+ 0x12, 0x14, 0x98, 0x12, 0xc2, 0x0e, 0x80, 0x4b, 0x90, 0xf3, 0xaa, 0xc1,
+ 0x2d, 0x7c, 0x98, 0x32,
+};
+static const unsigned char kat2431_addinreseed[] = {0};
+static const unsigned char kat2431_addin0[] = {0};
+static const unsigned char kat2431_addin1[] = {0};
+static const unsigned char kat2431_retbits[] = {
+ 0x0e, 0x02, 0xf3, 0x44, 0xb1, 0x15, 0x9c, 0xcd, 0x77, 0x95, 0x97, 0x4e,
+ 0x7b, 0xb9, 0xdf, 0x9e, 0x8c, 0xc3, 0x81, 0xa1, 0x30, 0xb9, 0x8b, 0x43,
+ 0x46, 0x22, 0x85, 0xfe, 0x3e, 0xd8, 0x58, 0x78, 0x11, 0xab, 0xde, 0xf4,
+ 0x71, 0xbb, 0xcf, 0xe8, 0x30, 0xe5, 0x16, 0xb7, 0x8f, 0x78, 0x1a, 0x05,
+ 0xb5, 0x2e, 0x44, 0xd5, 0x41, 0x22, 0x77, 0x50, 0x84, 0x17, 0x0f, 0xf6,
+ 0xd8, 0x06, 0x27, 0xe9,
+};
+static const struct drbg_kat_pr_false kat2431_t = {
+ 0, kat2431_entropyin, kat2431_nonce, kat2431_persstr,
+ kat2431_entropyinreseed, kat2431_addinreseed, kat2431_addin0,
+ kat2431_addin1, kat2431_retbits
+};
+static const struct drbg_kat kat2431 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2431_t
+};
+
+static const unsigned char kat2432_entropyin[] = {
+ 0x7a, 0x6c, 0x5d, 0x42, 0x8c, 0x1f, 0x0a, 0xd5, 0x7a, 0x82, 0xfd, 0xb8,
+ 0xe9, 0xfd, 0x39, 0x5c, 0x84, 0x4a, 0x8b, 0xe5, 0x6d, 0x55, 0x42, 0xe9,
+ 0x17, 0x10, 0x17, 0xf0, 0x72, 0x8f, 0xcb, 0x0c, 0x15, 0xc0, 0xd9, 0x92,
+ 0x1a, 0x63, 0x88, 0x42,
+};
+static const unsigned char kat2432_nonce[] = {0};
+static const unsigned char kat2432_persstr[] = {
+ 0x33, 0x38, 0x90, 0x56, 0x63, 0x7f, 0xfb, 0xaf, 0x97, 0xf1, 0x16, 0x1c,
+ 0x8d, 0xbc, 0x33, 0xe3, 0x8a, 0x5c, 0xc5, 0x23, 0x3c, 0x79, 0x8f, 0x35,
+ 0x8e, 0xdb, 0x76, 0xcd, 0xa0, 0x8b, 0x99, 0x4e, 0x70, 0xce, 0x95, 0x95,
+ 0x50, 0x85, 0xe0, 0xb4,
+};
+static const unsigned char kat2432_entropyinreseed[] = {
+ 0xb6, 0xea, 0x69, 0xb1, 0x1d, 0xe0, 0x86, 0x00, 0x31, 0x2b, 0xab, 0xe8,
+ 0x84, 0x57, 0xc4, 0x4b, 0xcc, 0x6e, 0xcb, 0x5a, 0x56, 0xf3, 0xe2, 0x31,
+ 0x68, 0xdb, 0x00, 0x89, 0xed, 0x2b, 0x04, 0x7a, 0x53, 0x37, 0x88, 0x31,
+ 0xf4, 0x77, 0x71, 0xef,
+};
+static const unsigned char kat2432_addinreseed[] = {0};
+static const unsigned char kat2432_addin0[] = {0};
+static const unsigned char kat2432_addin1[] = {0};
+static const unsigned char kat2432_retbits[] = {
+ 0xd1, 0xa2, 0x75, 0x21, 0x17, 0x01, 0x71, 0x93, 0x04, 0xe4, 0xa6, 0x5e,
+ 0x40, 0x91, 0xb1, 0xf3, 0xff, 0x96, 0x96, 0xcc, 0x86, 0x3c, 0x7a, 0xa9,
+ 0x6d, 0x34, 0x0c, 0x62, 0x76, 0x5b, 0x7a, 0x22, 0x45, 0xc1, 0x9a, 0x12,
+ 0x0c, 0x98, 0x8d, 0x40, 0x68, 0x40, 0xc0, 0x83, 0x92, 0x74, 0xd8, 0x9a,
+ 0xb8, 0xd6, 0x82, 0x0f, 0x85, 0xe9, 0xb3, 0xb4, 0xdc, 0xb9, 0x7d, 0x28,
+ 0xeb, 0x58, 0x95, 0x93,
+};
+static const struct drbg_kat_pr_false kat2432_t = {
+ 1, kat2432_entropyin, kat2432_nonce, kat2432_persstr,
+ kat2432_entropyinreseed, kat2432_addinreseed, kat2432_addin0,
+ kat2432_addin1, kat2432_retbits
+};
+static const struct drbg_kat kat2432 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2432_t
+};
+
+static const unsigned char kat2433_entropyin[] = {
+ 0xc7, 0x54, 0x7c, 0xd2, 0x18, 0x0f, 0x8a, 0xbf, 0x45, 0x52, 0x9a, 0xef,
+ 0x85, 0x7b, 0x48, 0xf5, 0x94, 0x5c, 0x93, 0xed, 0xd9, 0xc1, 0xb3, 0xad,
+ 0x11, 0xf3, 0xca, 0x39, 0x05, 0x1a, 0x40, 0x1a, 0xb1, 0xdc, 0xc2, 0xde,
+ 0x69, 0xb9, 0x9f, 0xb2,
+};
+static const unsigned char kat2433_nonce[] = {0};
+static const unsigned char kat2433_persstr[] = {
+ 0x73, 0x55, 0x7f, 0xb6, 0xe0, 0xbb, 0xe7, 0x8a, 0x02, 0x8e, 0x81, 0x24,
+ 0x98, 0x92, 0x4e, 0x52, 0x01, 0x37, 0x62, 0x4f, 0x58, 0xfb, 0x2a, 0xd2,
+ 0x96, 0xb7, 0x14, 0x50, 0xd5, 0x6a, 0x76, 0x0c, 0xae, 0x67, 0x46, 0x16,
+ 0x2f, 0x2a, 0x64, 0xb3,
+};
+static const unsigned char kat2433_entropyinreseed[] = {
+ 0x80, 0x12, 0x2c, 0x1f, 0x55, 0x52, 0x94, 0x9f, 0x19, 0x7c, 0xd9, 0x2b,
+ 0x8a, 0xf0, 0x57, 0x9a, 0x73, 0xf7, 0xd5, 0xcc, 0x1e, 0xaa, 0xc9, 0x7a,
+ 0xcb, 0xd8, 0xfb, 0xf2, 0x8d, 0xf1, 0x2f, 0x10, 0xa9, 0x15, 0x46, 0xa2,
+ 0xc3, 0xfe, 0x8f, 0x7a,
+};
+static const unsigned char kat2433_addinreseed[] = {0};
+static const unsigned char kat2433_addin0[] = {0};
+static const unsigned char kat2433_addin1[] = {0};
+static const unsigned char kat2433_retbits[] = {
+ 0x8e, 0x68, 0x0e, 0x9f, 0xe7, 0x5f, 0x83, 0xc1, 0x1d, 0x40, 0x30, 0x2b,
+ 0x96, 0x57, 0x27, 0xb3, 0x71, 0x4c, 0x8f, 0x0e, 0xe1, 0xa2, 0x2c, 0xae,
+ 0x74, 0x14, 0xeb, 0x05, 0x36, 0x31, 0xa7, 0x70, 0x9b, 0x3b, 0xe2, 0xf6,
+ 0xac, 0xe6, 0x23, 0x45, 0x4a, 0x44, 0x99, 0x86, 0x7a, 0x3d, 0x86, 0xd3,
+ 0x20, 0x9a, 0x3c, 0x2a, 0x12, 0x8e, 0xa4, 0x85, 0x1c, 0xb0, 0x81, 0x67,
+ 0x74, 0xdc, 0x15, 0x8e,
+};
+static const struct drbg_kat_pr_false kat2433_t = {
+ 2, kat2433_entropyin, kat2433_nonce, kat2433_persstr,
+ kat2433_entropyinreseed, kat2433_addinreseed, kat2433_addin0,
+ kat2433_addin1, kat2433_retbits
+};
+static const struct drbg_kat kat2433 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2433_t
+};
+
+static const unsigned char kat2434_entropyin[] = {
+ 0xe6, 0x42, 0x8c, 0x4d, 0xc3, 0xd9, 0xa5, 0xf5, 0xa2, 0xbb, 0x9a, 0x74,
+ 0x9f, 0x14, 0xcf, 0x57, 0x3d, 0xa8, 0x05, 0x83, 0xaf, 0x8b, 0x9a, 0xa1,
+ 0x4a, 0x78, 0x83, 0x98, 0x8c, 0x9f, 0x20, 0x18, 0xa3, 0xeb, 0x9e, 0x3d,
+ 0xed, 0x91, 0xa0, 0x22,
+};
+static const unsigned char kat2434_nonce[] = {0};
+static const unsigned char kat2434_persstr[] = {
+ 0x9e, 0x5c, 0x06, 0xb5, 0xce, 0x45, 0xcd, 0xa9, 0xf2, 0xb2, 0xa7, 0x97,
+ 0x75, 0x56, 0xe6, 0xb3, 0x9f, 0x0c, 0xed, 0x58, 0xce, 0x6c, 0x28, 0xd8,
+ 0xd9, 0x9d, 0xba, 0x45, 0x83, 0xc3, 0x5d, 0x78, 0x37, 0x1f, 0xcf, 0x60,
+ 0x85, 0x70, 0x35, 0xe9,
+};
+static const unsigned char kat2434_entropyinreseed[] = {
+ 0xcb, 0x6a, 0xf3, 0x4e, 0x70, 0xb3, 0x80, 0xe0, 0x5e, 0xb4, 0x39, 0xc1,
+ 0x2a, 0x73, 0x3c, 0x00, 0x70, 0xf1, 0x79, 0x71, 0x81, 0x6f, 0xfd, 0x2c,
+ 0x95, 0x9d, 0x9d, 0x37, 0x6c, 0x4b, 0x49, 0x38, 0x27, 0xcf, 0xda, 0x84,
+ 0xd4, 0xbe, 0xe4, 0xd4,
+};
+static const unsigned char kat2434_addinreseed[] = {0};
+static const unsigned char kat2434_addin0[] = {0};
+static const unsigned char kat2434_addin1[] = {0};
+static const unsigned char kat2434_retbits[] = {
+ 0x5d, 0xf4, 0x40, 0xba, 0x57, 0x8f, 0x1e, 0xaa, 0x1e, 0x91, 0xd0, 0x48,
+ 0x26, 0xc3, 0x3e, 0xcd, 0x33, 0xd4, 0xf6, 0x95, 0x5d, 0x87, 0x09, 0x29,
+ 0x01, 0x69, 0x8d, 0x98, 0x72, 0xfc, 0xc2, 0xf4, 0x97, 0x9c, 0xaa, 0xd3,
+ 0x6b, 0x2d, 0x5f, 0x04, 0xcf, 0x18, 0xe0, 0xd1, 0xa4, 0x27, 0x49, 0xd2,
+ 0xce, 0xdd, 0xb5, 0x75, 0xb0, 0x08, 0xdd, 0xd9, 0xc1, 0x9e, 0xab, 0x86,
+ 0xe0, 0xd6, 0x99, 0x23,
+};
+static const struct drbg_kat_pr_false kat2434_t = {
+ 3, kat2434_entropyin, kat2434_nonce, kat2434_persstr,
+ kat2434_entropyinreseed, kat2434_addinreseed, kat2434_addin0,
+ kat2434_addin1, kat2434_retbits
+};
+static const struct drbg_kat kat2434 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2434_t
+};
+
+static const unsigned char kat2435_entropyin[] = {
+ 0xfe, 0x8a, 0x4e, 0x18, 0xb6, 0xe8, 0xa5, 0x01, 0xc6, 0x1b, 0xa8, 0xcc,
+ 0x5d, 0xc0, 0xc5, 0x61, 0xeb, 0xba, 0x8e, 0x7f, 0x91, 0x5b, 0x20, 0x42,
+ 0x06, 0x0e, 0xd5, 0xf6, 0x13, 0x86, 0x89, 0x4d, 0xef, 0x33, 0x84, 0xd6,
+ 0xb9, 0x36, 0x9d, 0x9a,
+};
+static const unsigned char kat2435_nonce[] = {0};
+static const unsigned char kat2435_persstr[] = {
+ 0x51, 0x13, 0x95, 0x16, 0x73, 0x5a, 0x78, 0x77, 0xd0, 0x0e, 0x87, 0x4a,
+ 0x41, 0xb7, 0xef, 0x6a, 0xee, 0x8a, 0xd5, 0x50, 0xc9, 0xd3, 0xad, 0xef,
+ 0xdf, 0xc6, 0x0c, 0x47, 0xea, 0xb2, 0x7f, 0x3e, 0x6c, 0xbf, 0x9f, 0x25,
+ 0x38, 0x05, 0xb9, 0x34,
+};
+static const unsigned char kat2435_entropyinreseed[] = {
+ 0xe2, 0x09, 0x2c, 0xba, 0x77, 0xd1, 0x08, 0xdf, 0x45, 0xdd, 0x92, 0x1f,
+ 0x6b, 0x29, 0x4f, 0x88, 0xcd, 0x25, 0xfe, 0xb7, 0x06, 0x62, 0x45, 0x1a,
+ 0xa7, 0xc0, 0x1b, 0x76, 0x25, 0xb2, 0x95, 0x60, 0xb2, 0x39, 0xa9, 0xad,
+ 0x6c, 0xfc, 0xd0, 0x82,
+};
+static const unsigned char kat2435_addinreseed[] = {0};
+static const unsigned char kat2435_addin0[] = {0};
+static const unsigned char kat2435_addin1[] = {0};
+static const unsigned char kat2435_retbits[] = {
+ 0xcd, 0xdb, 0xfe, 0x20, 0x9b, 0xe6, 0x2b, 0x2f, 0xab, 0x1e, 0x79, 0x2f,
+ 0x50, 0x71, 0xcf, 0xda, 0xf6, 0xc9, 0xb5, 0x49, 0x1d, 0xb2, 0xaf, 0xbe,
+ 0x97, 0x10, 0xb7, 0x40, 0x6d, 0x64, 0x99, 0x60, 0xf4, 0x1e, 0xe3, 0x85,
+ 0xd6, 0x5f, 0x50, 0xe7, 0x6a, 0x40, 0x64, 0x4f, 0x66, 0xbe, 0xfb, 0xa8,
+ 0x83, 0x5c, 0x75, 0xbb, 0xe3, 0x5c, 0x9c, 0xa7, 0xa7, 0x43, 0x8c, 0xf3,
+ 0x6a, 0x0c, 0x74, 0x00,
+};
+static const struct drbg_kat_pr_false kat2435_t = {
+ 4, kat2435_entropyin, kat2435_nonce, kat2435_persstr,
+ kat2435_entropyinreseed, kat2435_addinreseed, kat2435_addin0,
+ kat2435_addin1, kat2435_retbits
+};
+static const struct drbg_kat kat2435 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2435_t
+};
+
+static const unsigned char kat2436_entropyin[] = {
+ 0xbf, 0x58, 0x5e, 0xfc, 0xf2, 0x28, 0x5a, 0x1a, 0x4f, 0x29, 0xd5, 0x4a,
+ 0x78, 0xba, 0xb1, 0x35, 0xfb, 0x84, 0xfd, 0x71, 0x6d, 0x4e, 0x76, 0x86,
+ 0x3a, 0x9b, 0x01, 0x59, 0x2c, 0x89, 0x08, 0xe3, 0x6d, 0x28, 0xf2, 0x8c,
+ 0xfa, 0x5f, 0x02, 0xe1,
+};
+static const unsigned char kat2436_nonce[] = {0};
+static const unsigned char kat2436_persstr[] = {
+ 0xb3, 0xf0, 0x8b, 0xb0, 0xec, 0x10, 0x06, 0xa0, 0xf9, 0x4b, 0x2c, 0x49,
+ 0xf2, 0xcf, 0x02, 0x09, 0x73, 0x32, 0x4c, 0x6d, 0xb4, 0xb0, 0xa2, 0x83,
+ 0xc2, 0xa3, 0xed, 0x39, 0xb9, 0x2e, 0x5f, 0x81, 0x74, 0x3b, 0x77, 0x8c,
+ 0x52, 0xbf, 0x51, 0xbc,
+};
+static const unsigned char kat2436_entropyinreseed[] = {
+ 0xab, 0xb4, 0x37, 0xfb, 0x42, 0x6c, 0x7d, 0x00, 0xdc, 0x80, 0x2c, 0x1a,
+ 0x23, 0xb5, 0xa3, 0xf4, 0x1d, 0x0f, 0xd2, 0x2a, 0x98, 0xd3, 0x29, 0xd9,
+ 0x59, 0xc4, 0xfb, 0x20, 0x5a, 0xb9, 0x8e, 0x40, 0xa8, 0x13, 0x49, 0x7e,
+ 0xea, 0xa5, 0x28, 0x5e,
+};
+static const unsigned char kat2436_addinreseed[] = {0};
+static const unsigned char kat2436_addin0[] = {0};
+static const unsigned char kat2436_addin1[] = {0};
+static const unsigned char kat2436_retbits[] = {
+ 0xfc, 0xa0, 0x7b, 0xf5, 0xd7, 0x2d, 0x19, 0xe4, 0xab, 0x99, 0xae, 0x02,
+ 0x03, 0x11, 0x0a, 0x87, 0x1a, 0xf2, 0x79, 0x09, 0xf4, 0x41, 0xd3, 0xe8,
+ 0x21, 0xd2, 0xdd, 0x8e, 0x57, 0x84, 0x6b, 0x99, 0x3b, 0x35, 0x5c, 0x41,
+ 0x9d, 0x9c, 0x67, 0x26, 0x3c, 0xa0, 0x7f, 0xd3, 0xb0, 0xa9, 0x8f, 0x68,
+ 0x17, 0x80, 0x18, 0x73, 0x7e, 0xc2, 0x5d, 0xb1, 0xa3, 0xe7, 0x41, 0xe9,
+ 0xe9, 0x30, 0x60, 0x6f,
+};
+static const struct drbg_kat_pr_false kat2436_t = {
+ 5, kat2436_entropyin, kat2436_nonce, kat2436_persstr,
+ kat2436_entropyinreseed, kat2436_addinreseed, kat2436_addin0,
+ kat2436_addin1, kat2436_retbits
+};
+static const struct drbg_kat kat2436 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2436_t
+};
+
+static const unsigned char kat2437_entropyin[] = {
+ 0x2e, 0xa3, 0xaf, 0x0f, 0x4b, 0xa3, 0x13, 0xd1, 0xb6, 0xec, 0x7b, 0xae,
+ 0x3c, 0x4c, 0xa7, 0xba, 0x8d, 0x5f, 0x2e, 0x3f, 0x90, 0xff, 0x10, 0x14,
+ 0xc9, 0xad, 0x8a, 0x12, 0x25, 0x79, 0x46, 0xc7, 0x99, 0x4c, 0xad, 0x9e,
+ 0xbb, 0xa6, 0xe0, 0xa3,
+};
+static const unsigned char kat2437_nonce[] = {0};
+static const unsigned char kat2437_persstr[] = {
+ 0xcf, 0xad, 0xd1, 0xab, 0x11, 0x19, 0xec, 0x7d, 0x6e, 0xcd, 0xe0, 0xa3,
+ 0xa0, 0x06, 0xce, 0xa0, 0x49, 0xb7, 0xd0, 0xff, 0x16, 0x8d, 0x75, 0x44,
+ 0xe0, 0xb9, 0x2c, 0xb9, 0x13, 0x19, 0x37, 0xb1, 0xc6, 0xcd, 0x54, 0x8c,
+ 0xaa, 0xa3, 0xd8, 0xeb,
+};
+static const unsigned char kat2437_entropyinreseed[] = {
+ 0x85, 0x60, 0x15, 0x45, 0xda, 0x1d, 0xf4, 0x45, 0x7b, 0x3e, 0x94, 0x71,
+ 0x10, 0x98, 0xc4, 0xfd, 0xed, 0xc9, 0x92, 0xc2, 0x75, 0xa8, 0x34, 0x9c,
+ 0x67, 0xc2, 0x0a, 0xee, 0x9f, 0x61, 0x76, 0x2e, 0x38, 0xbc, 0x97, 0x00,
+ 0x1e, 0x0e, 0x3c, 0xe5,
+};
+static const unsigned char kat2437_addinreseed[] = {0};
+static const unsigned char kat2437_addin0[] = {0};
+static const unsigned char kat2437_addin1[] = {0};
+static const unsigned char kat2437_retbits[] = {
+ 0xdb, 0x70, 0x72, 0xfb, 0x58, 0x7b, 0x7c, 0xf0, 0xa6, 0x48, 0x3e, 0xc9,
+ 0xe8, 0x0c, 0x6d, 0x6c, 0x82, 0x36, 0xb2, 0x73, 0x33, 0x20, 0x4f, 0xba,
+ 0x1c, 0x7b, 0x6f, 0x39, 0xc8, 0x38, 0x7d, 0x73, 0x31, 0xa5, 0x47, 0xa0,
+ 0x00, 0x98, 0xb9, 0x6d, 0x4c, 0x57, 0x8f, 0xb2, 0xdb, 0x25, 0x43, 0x9f,
+ 0xd2, 0x62, 0xbc, 0x28, 0x00, 0xb8, 0x4a, 0x80, 0x4e, 0x4a, 0xf8, 0x1a,
+ 0x05, 0x65, 0x11, 0xea,
+};
+static const struct drbg_kat_pr_false kat2437_t = {
+ 6, kat2437_entropyin, kat2437_nonce, kat2437_persstr,
+ kat2437_entropyinreseed, kat2437_addinreseed, kat2437_addin0,
+ kat2437_addin1, kat2437_retbits
+};
+static const struct drbg_kat kat2437 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2437_t
+};
+
+static const unsigned char kat2438_entropyin[] = {
+ 0xa4, 0x85, 0x6d, 0x1f, 0xd4, 0x52, 0x63, 0x3b, 0xd3, 0xc3, 0x4b, 0x9b,
+ 0xcb, 0x0d, 0x6b, 0x87, 0x28, 0x9a, 0xe7, 0x37, 0x76, 0x70, 0xcd, 0x70,
+ 0xc0, 0x73, 0x9f, 0x4e, 0x33, 0xe8, 0xe1, 0xd5, 0x5b, 0x5d, 0x3f, 0x5d,
+ 0x8e, 0x1a, 0x25, 0xd9,
+};
+static const unsigned char kat2438_nonce[] = {0};
+static const unsigned char kat2438_persstr[] = {
+ 0xbb, 0xfa, 0xbe, 0xbe, 0xc8, 0x95, 0xac, 0x0b, 0x3b, 0x0c, 0x23, 0xfe,
+ 0x2b, 0x21, 0x52, 0x5f, 0x14, 0x0c, 0x26, 0x3a, 0xf5, 0x4b, 0xa6, 0x74,
+ 0x82, 0xba, 0x3b, 0x20, 0xc7, 0x7e, 0xc1, 0x4a, 0x8e, 0x58, 0x70, 0x13,
+ 0x1e, 0xd3, 0x95, 0x35,
+};
+static const unsigned char kat2438_entropyinreseed[] = {
+ 0x94, 0xea, 0x81, 0xc8, 0xa7, 0x62, 0x3a, 0x7b, 0xc2, 0x0f, 0x9d, 0x57,
+ 0xc6, 0xf5, 0xa4, 0x14, 0xe3, 0xac, 0x58, 0x8b, 0xcf, 0x1b, 0xa9, 0xdc,
+ 0x48, 0x43, 0x14, 0xfd, 0xa7, 0x8b, 0x23, 0xb1, 0x92, 0xbc, 0x2e, 0x82,
+ 0x5f, 0xdb, 0xca, 0xdd,
+};
+static const unsigned char kat2438_addinreseed[] = {0};
+static const unsigned char kat2438_addin0[] = {0};
+static const unsigned char kat2438_addin1[] = {0};
+static const unsigned char kat2438_retbits[] = {
+ 0x0c, 0x87, 0xb0, 0x59, 0x08, 0x83, 0x3c, 0xfa, 0xe5, 0x62, 0xdb, 0x9b,
+ 0xf9, 0x90, 0x75, 0xa2, 0xfb, 0xbd, 0x10, 0xae, 0xe3, 0xee, 0x18, 0xe8,
+ 0x70, 0x47, 0x1b, 0xfa, 0x9b, 0x48, 0xac, 0x3b, 0xd9, 0x5a, 0xcf, 0x7a,
+ 0xb3, 0x03, 0x7a, 0x8a, 0x7b, 0x6a, 0x69, 0x01, 0xbd, 0xcc, 0xe9, 0x97,
+ 0x42, 0x94, 0xb0, 0x44, 0xf2, 0xb5, 0xc6, 0x00, 0x5c, 0xde, 0xaf, 0x8a,
+ 0xdc, 0xdd, 0xa9, 0x6d,
+};
+static const struct drbg_kat_pr_false kat2438_t = {
+ 7, kat2438_entropyin, kat2438_nonce, kat2438_persstr,
+ kat2438_entropyinreseed, kat2438_addinreseed, kat2438_addin0,
+ kat2438_addin1, kat2438_retbits
+};
+static const struct drbg_kat kat2438 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2438_t
+};
+
+static const unsigned char kat2439_entropyin[] = {
+ 0xf0, 0x2c, 0x4a, 0xc2, 0x29, 0x27, 0x54, 0x80, 0x10, 0x0f, 0xa1, 0xb9,
+ 0xff, 0xc6, 0xbc, 0xf8, 0x2e, 0xeb, 0xe4, 0x6a, 0xab, 0xd8, 0x91, 0xaf,
+ 0x11, 0x25, 0x0e, 0x4f, 0x5f, 0x44, 0xac, 0xb2, 0xff, 0xfd, 0x9a, 0xc0,
+ 0x83, 0x30, 0x60, 0xb9,
+};
+static const unsigned char kat2439_nonce[] = {0};
+static const unsigned char kat2439_persstr[] = {
+ 0x27, 0xd5, 0xd5, 0x2d, 0xa3, 0x97, 0xc0, 0x5e, 0xa3, 0x5b, 0x82, 0x32,
+ 0x5a, 0x6a, 0xec, 0xd8, 0x99, 0x13, 0xbd, 0x72, 0x21, 0xb3, 0x86, 0x79,
+ 0xb9, 0x27, 0xd4, 0x55, 0x66, 0xf4, 0xe0, 0x63, 0x3e, 0xea, 0xbf, 0xea,
+ 0x4e, 0x54, 0x09, 0xc1,
+};
+static const unsigned char kat2439_entropyinreseed[] = {
+ 0x8c, 0x45, 0xaa, 0xb2, 0xb2, 0xfb, 0x11, 0xec, 0x21, 0x01, 0x0f, 0xd0,
+ 0x25, 0xb2, 0xa5, 0xac, 0x7a, 0xa4, 0xc1, 0xd6, 0xbb, 0x7e, 0xe3, 0x95,
+ 0x8d, 0x43, 0xb7, 0xea, 0x91, 0xa7, 0x64, 0x10, 0x23, 0x23, 0xac, 0x60,
+ 0xaa, 0x74, 0x6b, 0x29,
+};
+static const unsigned char kat2439_addinreseed[] = {0};
+static const unsigned char kat2439_addin0[] = {0};
+static const unsigned char kat2439_addin1[] = {0};
+static const unsigned char kat2439_retbits[] = {
+ 0x8e, 0xc2, 0x2e, 0x31, 0x0f, 0x0b, 0xa3, 0xc5, 0xc0, 0x86, 0x23, 0xa7,
+ 0xd7, 0x74, 0xd7, 0x9a, 0x98, 0x8e, 0xbc, 0x51, 0x21, 0xde, 0xed, 0x7a,
+ 0xc5, 0xbe, 0x26, 0xd0, 0xd1, 0x44, 0x69, 0xba, 0xe2, 0x78, 0x03, 0xd6,
+ 0xfd, 0x0b, 0x4e, 0x31, 0x28, 0x0d, 0x16, 0x9f, 0x5e, 0x16, 0x13, 0x58,
+ 0x88, 0x04, 0x70, 0x26, 0xf2, 0xae, 0xa7, 0x39, 0x99, 0x2d, 0xe1, 0x71,
+ 0xb2, 0x17, 0xba, 0xa9,
+};
+static const struct drbg_kat_pr_false kat2439_t = {
+ 8, kat2439_entropyin, kat2439_nonce, kat2439_persstr,
+ kat2439_entropyinreseed, kat2439_addinreseed, kat2439_addin0,
+ kat2439_addin1, kat2439_retbits
+};
+static const struct drbg_kat kat2439 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2439_t
+};
+
+static const unsigned char kat2440_entropyin[] = {
+ 0x45, 0x9d, 0x35, 0xa6, 0x65, 0x91, 0x10, 0x8a, 0x83, 0xd4, 0x28, 0xad,
+ 0x0a, 0x6a, 0x6f, 0x66, 0x9c, 0x6e, 0x4c, 0x00, 0x6a, 0x04, 0x53, 0x65,
+ 0x9a, 0x7b, 0xc4, 0x93, 0xc4, 0x4a, 0x26, 0xc6, 0x6f, 0xef, 0x24, 0x0c,
+ 0xa1, 0x3b, 0x00, 0x9f,
+};
+static const unsigned char kat2440_nonce[] = {0};
+static const unsigned char kat2440_persstr[] = {
+ 0x95, 0x39, 0xf4, 0x92, 0x93, 0x0d, 0x91, 0xf3, 0x94, 0x6d, 0x51, 0x79,
+ 0x3b, 0x9d, 0x27, 0x07, 0x72, 0x96, 0xde, 0x3e, 0x4c, 0x64, 0xf7, 0x43,
+ 0x1d, 0x60, 0x7b, 0xd1, 0x17, 0xbe, 0xca, 0x98, 0x3d, 0x34, 0x06, 0x9a,
+ 0xe6, 0xb7, 0x25, 0xa6,
+};
+static const unsigned char kat2440_entropyinreseed[] = {
+ 0x2b, 0x2d, 0xfb, 0xdf, 0x49, 0xc4, 0xd7, 0x95, 0x62, 0xbb, 0xd8, 0x00,
+ 0xbf, 0x93, 0x61, 0x39, 0xcd, 0x22, 0xa1, 0x0e, 0x8b, 0x20, 0x7a, 0x32,
+ 0xa5, 0x59, 0x72, 0x11, 0x78, 0xd9, 0xa3, 0xbf, 0x16, 0xcf, 0x24, 0x93,
+ 0x33, 0x2f, 0xe1, 0x95,
+};
+static const unsigned char kat2440_addinreseed[] = {0};
+static const unsigned char kat2440_addin0[] = {0};
+static const unsigned char kat2440_addin1[] = {0};
+static const unsigned char kat2440_retbits[] = {
+ 0x26, 0xb6, 0x50, 0x49, 0x5f, 0x87, 0x64, 0xe9, 0x84, 0xa5, 0x7a, 0x43,
+ 0xcd, 0xfe, 0x83, 0x42, 0x00, 0xa0, 0xc3, 0x83, 0x96, 0x47, 0xf7, 0xf7,
+ 0x3e, 0x8f, 0x90, 0xbe, 0xe6, 0x97, 0xc1, 0x17, 0xb6, 0x64, 0xfa, 0x9f,
+ 0x73, 0xb0, 0x49, 0x00, 0x21, 0x2b, 0xc5, 0x8e, 0x7d, 0x57, 0x4e, 0xb9,
+ 0x58, 0x30, 0xc4, 0x75, 0xe7, 0x75, 0xa5, 0x92, 0x6a, 0x3b, 0xeb, 0x53,
+ 0x78, 0x1d, 0xbd, 0x24,
+};
+static const struct drbg_kat_pr_false kat2440_t = {
+ 9, kat2440_entropyin, kat2440_nonce, kat2440_persstr,
+ kat2440_entropyinreseed, kat2440_addinreseed, kat2440_addin0,
+ kat2440_addin1, kat2440_retbits
+};
+static const struct drbg_kat kat2440 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2440_t
+};
+
+static const unsigned char kat2441_entropyin[] = {
+ 0xd1, 0xe8, 0x8f, 0xb1, 0x9a, 0xf8, 0x09, 0x0a, 0x56, 0x2b, 0x19, 0xa7,
+ 0xb9, 0x67, 0xae, 0x56, 0x3c, 0x00, 0x9f, 0x97, 0xbb, 0x24, 0x5e, 0xf6,
+ 0xcf, 0x67, 0x9b, 0x5f, 0x11, 0x5b, 0x5e, 0x2d, 0xbe, 0x7f, 0x28, 0x8d,
+ 0x19, 0x32, 0xa7, 0x64,
+};
+static const unsigned char kat2441_nonce[] = {0};
+static const unsigned char kat2441_persstr[] = {
+ 0x98, 0xdc, 0xbf, 0x39, 0xc3, 0xc5, 0x8c, 0x9d, 0x1d, 0xc6, 0x16, 0xa6,
+ 0xd9, 0x0b, 0xa8, 0x87, 0x71, 0x0e, 0x02, 0x1a, 0x38, 0x96, 0x75, 0x67,
+ 0x2f, 0x79, 0x8b, 0xfd, 0x56, 0xb2, 0xf2, 0x2c, 0x47, 0xbe, 0x31, 0xfd,
+ 0xcc, 0x1e, 0x94, 0x42,
+};
+static const unsigned char kat2441_entropyinreseed[] = {
+ 0x35, 0x73, 0x12, 0xab, 0x53, 0x16, 0x83, 0x86, 0x0d, 0x7a, 0x3c, 0x68,
+ 0x45, 0xfb, 0xed, 0xb9, 0xd4, 0x8c, 0x97, 0x70, 0xdd, 0x8c, 0x74, 0x5d,
+ 0xef, 0xa3, 0xed, 0xc8, 0xed, 0x52, 0x5f, 0xbf, 0xc1, 0x8b, 0x7c, 0xc2,
+ 0xf6, 0x4c, 0x4d, 0xab,
+};
+static const unsigned char kat2441_addinreseed[] = {0};
+static const unsigned char kat2441_addin0[] = {0};
+static const unsigned char kat2441_addin1[] = {0};
+static const unsigned char kat2441_retbits[] = {
+ 0x49, 0x7a, 0x71, 0x03, 0x3b, 0xfd, 0x1b, 0xb3, 0x2b, 0xcc, 0xc8, 0x94,
+ 0xf7, 0xdd, 0x53, 0x98, 0x0f, 0x6a, 0xe4, 0x84, 0xd6, 0xc1, 0x66, 0x6d,
+ 0x59, 0x5b, 0x55, 0x64, 0xa9, 0xca, 0x7e, 0x51, 0x36, 0xd1, 0xb1, 0x5b,
+ 0x20, 0xf7, 0x63, 0x08, 0x3d, 0x51, 0x3e, 0xc8, 0x51, 0xb5, 0x18, 0x3b,
+ 0xca, 0x15, 0x12, 0x03, 0xc6, 0xdf, 0x41, 0x6d, 0x0a, 0x92, 0xd5, 0xe7,
+ 0xad, 0xd1, 0x75, 0xbd,
+};
+static const struct drbg_kat_pr_false kat2441_t = {
+ 10, kat2441_entropyin, kat2441_nonce, kat2441_persstr,
+ kat2441_entropyinreseed, kat2441_addinreseed, kat2441_addin0,
+ kat2441_addin1, kat2441_retbits
+};
+static const struct drbg_kat kat2441 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2441_t
+};
+
+static const unsigned char kat2442_entropyin[] = {
+ 0xdb, 0x37, 0x58, 0x74, 0x00, 0xe2, 0xec, 0x6c, 0x97, 0x13, 0x1a, 0xbb,
+ 0xca, 0x13, 0x48, 0xb9, 0xe1, 0xcd, 0x4a, 0xdb, 0xfb, 0x01, 0xbe, 0x0c,
+ 0x85, 0x98, 0x30, 0xf5, 0xa4, 0x75, 0x6a, 0xac, 0x16, 0x20, 0x76, 0x22,
+ 0x90, 0x47, 0x31, 0x6b,
+};
+static const unsigned char kat2442_nonce[] = {0};
+static const unsigned char kat2442_persstr[] = {
+ 0x55, 0xb6, 0x84, 0x57, 0xf3, 0xcb, 0x70, 0xe2, 0x6a, 0xfa, 0xd6, 0x74,
+ 0xce, 0xb3, 0xf7, 0x10, 0xfc, 0xdf, 0xb1, 0x43, 0xd2, 0x37, 0x81, 0x8c,
+ 0xd3, 0x4c, 0x39, 0x37, 0x4f, 0xa1, 0xba, 0xd6, 0x8d, 0x53, 0xe9, 0x50,
+ 0x94, 0x59, 0xbf, 0x1e,
+};
+static const unsigned char kat2442_entropyinreseed[] = {
+ 0xe1, 0x6b, 0x64, 0x16, 0xa9, 0xb5, 0x57, 0x14, 0x1b, 0xcd, 0xa2, 0x08,
+ 0x13, 0x5c, 0xd3, 0xff, 0x00, 0x3c, 0x1d, 0x7e, 0x0a, 0xd4, 0x49, 0x5b,
+ 0x41, 0x60, 0xe5, 0x87, 0x5c, 0x3e, 0x01, 0x93, 0xca, 0xea, 0x6f, 0x17,
+ 0x70, 0xa9, 0x3d, 0x38,
+};
+static const unsigned char kat2442_addinreseed[] = {0};
+static const unsigned char kat2442_addin0[] = {0};
+static const unsigned char kat2442_addin1[] = {0};
+static const unsigned char kat2442_retbits[] = {
+ 0x4b, 0xe7, 0x44, 0x86, 0x29, 0x06, 0x4c, 0x37, 0xb9, 0xd2, 0x26, 0xbe,
+ 0xd1, 0x27, 0x95, 0x09, 0x96, 0xb6, 0x15, 0xeb, 0xec, 0x36, 0xf9, 0x8c,
+ 0x2d, 0x81, 0xbf, 0xd9, 0x7c, 0x2e, 0x51, 0xb6, 0x86, 0xb9, 0x8b, 0x80,
+ 0xf6, 0x9e, 0x80, 0x1f, 0xae, 0x6d, 0x8a, 0x6c, 0x40, 0xaa, 0xf8, 0x8e,
+ 0x95, 0x6d, 0x95, 0x3c, 0xea, 0x61, 0x96, 0x8d, 0x9c, 0xf8, 0x51, 0x90,
+ 0x84, 0x7e, 0xef, 0xd0,
+};
+static const struct drbg_kat_pr_false kat2442_t = {
+ 11, kat2442_entropyin, kat2442_nonce, kat2442_persstr,
+ kat2442_entropyinreseed, kat2442_addinreseed, kat2442_addin0,
+ kat2442_addin1, kat2442_retbits
+};
+static const struct drbg_kat kat2442 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2442_t
+};
+
+static const unsigned char kat2443_entropyin[] = {
+ 0x24, 0x12, 0xc2, 0xe2, 0xe0, 0x06, 0x4b, 0x2b, 0xb5, 0xca, 0x05, 0xc1,
+ 0xa1, 0x1c, 0x35, 0xef, 0xb1, 0xa5, 0x17, 0xbb, 0x00, 0x50, 0x33, 0x44,
+ 0x42, 0x06, 0x1e, 0xcf, 0xc4, 0xce, 0x55, 0x9e, 0xa6, 0xb5, 0xb3, 0x11,
+ 0x83, 0x91, 0x5f, 0xd6,
+};
+static const unsigned char kat2443_nonce[] = {0};
+static const unsigned char kat2443_persstr[] = {
+ 0x1f, 0x29, 0x2d, 0x3c, 0xeb, 0xc2, 0x59, 0x5c, 0x65, 0x6e, 0xaf, 0x30,
+ 0xd4, 0x6c, 0xf4, 0x85, 0x37, 0xf8, 0xad, 0x7f, 0xd6, 0x50, 0x73, 0x26,
+ 0x9d, 0x3f, 0x05, 0x7d, 0x22, 0xdc, 0xcd, 0xae, 0x9e, 0xed, 0xc8, 0x2d,
+ 0x9b, 0x29, 0x00, 0xe5,
+};
+static const unsigned char kat2443_entropyinreseed[] = {
+ 0x52, 0x04, 0x14, 0x66, 0x5d, 0x70, 0x42, 0x7d, 0x9a, 0x9f, 0x02, 0x6b,
+ 0xb4, 0x64, 0x8c, 0x52, 0xc9, 0xab, 0x3e, 0xcd, 0x31, 0x87, 0xf7, 0xd1,
+ 0x8f, 0xd3, 0x81, 0x32, 0x14, 0x52, 0x2b, 0x8f, 0xc8, 0x01, 0x7b, 0x18,
+ 0x9a, 0xeb, 0xc6, 0x94,
+};
+static const unsigned char kat2443_addinreseed[] = {0};
+static const unsigned char kat2443_addin0[] = {0};
+static const unsigned char kat2443_addin1[] = {0};
+static const unsigned char kat2443_retbits[] = {
+ 0xff, 0x1c, 0x4c, 0x73, 0x71, 0xa6, 0x55, 0x34, 0x2f, 0x41, 0xdc, 0x4d,
+ 0x41, 0x7c, 0x08, 0xd6, 0xbd, 0x55, 0x6a, 0xd2, 0xf6, 0x16, 0x49, 0x28,
+ 0x5e, 0xc4, 0xc0, 0xc4, 0x42, 0xce, 0xcf, 0x26, 0xbc, 0xf7, 0xa0, 0x97,
+ 0x5a, 0x9c, 0x41, 0x30, 0x5d, 0x61, 0x8d, 0x96, 0x16, 0xf1, 0x0d, 0x1f,
+ 0xaf, 0x5d, 0x37, 0x9f, 0xdb, 0xfc, 0x97, 0xd8, 0xef, 0xa6, 0xce, 0xfb,
+ 0x5a, 0xbe, 0x7c, 0x2b,
+};
+static const struct drbg_kat_pr_false kat2443_t = {
+ 12, kat2443_entropyin, kat2443_nonce, kat2443_persstr,
+ kat2443_entropyinreseed, kat2443_addinreseed, kat2443_addin0,
+ kat2443_addin1, kat2443_retbits
+};
+static const struct drbg_kat kat2443 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2443_t
+};
+
+static const unsigned char kat2444_entropyin[] = {
+ 0xba, 0x8d, 0x35, 0x29, 0xf6, 0x90, 0xf6, 0x09, 0x84, 0x92, 0x2f, 0xca,
+ 0x43, 0xdd, 0x02, 0x18, 0x0d, 0xb2, 0x88, 0xd1, 0xd4, 0x5d, 0xe9, 0x38,
+ 0x1f, 0xa8, 0x9a, 0x3d, 0x48, 0x65, 0x96, 0x3b, 0x4f, 0xd7, 0xb8, 0xbb,
+ 0xc8, 0xbe, 0x8e, 0x35,
+};
+static const unsigned char kat2444_nonce[] = {0};
+static const unsigned char kat2444_persstr[] = {
+ 0x57, 0x34, 0x8e, 0x59, 0x24, 0x4c, 0xfa, 0x19, 0x1d, 0x4e, 0x4d, 0x15,
+ 0x41, 0x35, 0x4e, 0x62, 0x28, 0x91, 0x01, 0xca, 0x38, 0xeb, 0xe7, 0xaa,
+ 0x98, 0x62, 0xca, 0xc5, 0x85, 0x8a, 0xf1, 0x25, 0xc8, 0x6c, 0xb0, 0x73,
+ 0x13, 0x04, 0xbc, 0x7d,
+};
+static const unsigned char kat2444_entropyinreseed[] = {
+ 0x15, 0x15, 0xd3, 0x2a, 0x6e, 0xb7, 0xbc, 0x8e, 0xdc, 0x5e, 0x8d, 0xc8,
+ 0x94, 0x4d, 0x3f, 0xf4, 0x5e, 0x12, 0x42, 0x6a, 0xe0, 0xae, 0xf4, 0x23,
+ 0xee, 0xe5, 0xa3, 0x54, 0xf7, 0xb5, 0x39, 0xd1, 0xea, 0xc3, 0xd9, 0xfb,
+ 0x71, 0x83, 0x7b, 0x53,
+};
+static const unsigned char kat2444_addinreseed[] = {0};
+static const unsigned char kat2444_addin0[] = {0};
+static const unsigned char kat2444_addin1[] = {0};
+static const unsigned char kat2444_retbits[] = {
+ 0xee, 0x7f, 0x2a, 0xcb, 0xe6, 0xa1, 0xf2, 0x76, 0xa0, 0x38, 0x51, 0x28,
+ 0x5d, 0x16, 0x13, 0xfa, 0x7e, 0xcb, 0xd2, 0x3f, 0x85, 0xea, 0x96, 0xe3,
+ 0x65, 0x00, 0x41, 0x68, 0x2f, 0x2f, 0x43, 0x76, 0x30, 0xf4, 0x17, 0x41,
+ 0x3d, 0xc2, 0x3f, 0x28, 0x06, 0xf4, 0x8e, 0xe4, 0x23, 0x65, 0xf4, 0x6f,
+ 0xb1, 0xcb, 0xba, 0x5c, 0x95, 0x34, 0x2c, 0x86, 0x49, 0x89, 0x7d, 0xc3,
+ 0xc8, 0x81, 0xcf, 0x20,
+};
+static const struct drbg_kat_pr_false kat2444_t = {
+ 13, kat2444_entropyin, kat2444_nonce, kat2444_persstr,
+ kat2444_entropyinreseed, kat2444_addinreseed, kat2444_addin0,
+ kat2444_addin1, kat2444_retbits
+};
+static const struct drbg_kat kat2444 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2444_t
+};
+
+static const unsigned char kat2445_entropyin[] = {
+ 0x44, 0x70, 0x64, 0x89, 0x49, 0x94, 0x87, 0x25, 0x32, 0x3a, 0xeb, 0x56,
+ 0x6d, 0xf1, 0x17, 0x65, 0xa1, 0xc5, 0x92, 0x21, 0xcd, 0x8a, 0xa4, 0x46,
+ 0x0e, 0x53, 0x4b, 0x21, 0xd8, 0xf2, 0xf1, 0xba, 0xce, 0x6e, 0x4c, 0x8a,
+ 0x9a, 0x78, 0x74, 0x54,
+};
+static const unsigned char kat2445_nonce[] = {0};
+static const unsigned char kat2445_persstr[] = {
+ 0xa3, 0x5f, 0x70, 0x6f, 0xe7, 0x8d, 0xab, 0x17, 0x9b, 0xdb, 0x83, 0x49,
+ 0x54, 0x08, 0x76, 0x48, 0x05, 0x17, 0x57, 0x44, 0xbc, 0x02, 0x03, 0x88,
+ 0xa8, 0xa6, 0x0c, 0x20, 0x1b, 0x64, 0x8c, 0xa5, 0x69, 0xb4, 0xc3, 0x19,
+ 0x7a, 0xe3, 0x89, 0x34,
+};
+static const unsigned char kat2445_entropyinreseed[] = {
+ 0x4d, 0x63, 0x2e, 0xf3, 0x04, 0x82, 0xe6, 0xd5, 0x94, 0x9c, 0xf5, 0x24,
+ 0x07, 0xd4, 0x2c, 0xae, 0xa7, 0xcd, 0x74, 0x5e, 0x70, 0xd7, 0x6d, 0x34,
+ 0x49, 0x85, 0x2a, 0x7d, 0xdb, 0x3f, 0x92, 0xe1, 0x98, 0x40, 0xcd, 0x02,
+ 0x17, 0xe1, 0x11, 0x2f,
+};
+static const unsigned char kat2445_addinreseed[] = {0};
+static const unsigned char kat2445_addin0[] = {0};
+static const unsigned char kat2445_addin1[] = {0};
+static const unsigned char kat2445_retbits[] = {
+ 0x33, 0x40, 0xcd, 0x5e, 0x74, 0xc5, 0x29, 0x18, 0xb3, 0x91, 0x15, 0x67,
+ 0x02, 0x85, 0x1b, 0x25, 0x32, 0x70, 0x72, 0xf0, 0x75, 0xe1, 0x6b, 0x8c,
+ 0x93, 0x78, 0x97, 0x2b, 0x08, 0x1b, 0x2c, 0xa8, 0xcf, 0xa7, 0x66, 0x5b,
+ 0x70, 0x52, 0xcc, 0x44, 0xf4, 0x80, 0xf0, 0xc1, 0x88, 0x34, 0x23, 0x57,
+ 0xcc, 0x6c, 0x8c, 0xb6, 0x16, 0xa0, 0xda, 0xde, 0xfc, 0x4e, 0x1e, 0xd4,
+ 0x0b, 0xa4, 0x2b, 0x0a,
+};
+static const struct drbg_kat_pr_false kat2445_t = {
+ 14, kat2445_entropyin, kat2445_nonce, kat2445_persstr,
+ kat2445_entropyinreseed, kat2445_addinreseed, kat2445_addin0,
+ kat2445_addin1, kat2445_retbits
+};
+static const struct drbg_kat kat2445 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2445_t
+};
+
+static const unsigned char kat2446_entropyin[] = {
+ 0x4b, 0x58, 0x27, 0x1b, 0x11, 0x62, 0x37, 0xee, 0xdd, 0x4e, 0x9f, 0xf9,
+ 0x36, 0x03, 0x82, 0xa5, 0x9f, 0x3e, 0x2a, 0x17, 0x3d, 0x86, 0x0f, 0x2b,
+ 0xbd, 0x8b, 0x2b, 0xac, 0xe1, 0x42, 0xb2, 0x39, 0x5c, 0x67, 0xcf, 0x5a,
+ 0x51, 0x3f, 0x06, 0xf3,
+};
+static const unsigned char kat2446_nonce[] = {0};
+static const unsigned char kat2446_persstr[] = {
+ 0xcf, 0x76, 0xc1, 0x6c, 0xd5, 0xd2, 0x70, 0x70, 0x7e, 0xa9, 0xac, 0xc3,
+ 0x97, 0x44, 0xdb, 0x69, 0xbf, 0xac, 0x63, 0xe5, 0x66, 0x25, 0x6f, 0xd6,
+ 0x91, 0x7b, 0xf9, 0x81, 0x96, 0x79, 0x84, 0x0f, 0x3f, 0xea, 0x2a, 0xa5,
+ 0x35, 0xd8, 0xdf, 0x01,
+};
+static const unsigned char kat2446_entropyinreseed[] = {
+ 0x18, 0x67, 0xf3, 0x71, 0xa3, 0x45, 0xee, 0xf9, 0x8b, 0x2d, 0x70, 0xfc,
+ 0x19, 0x60, 0x39, 0x78, 0x92, 0x64, 0x5b, 0x7b, 0x29, 0xa4, 0xea, 0xd2,
+ 0x52, 0xe8, 0x83, 0x5e, 0x0b, 0x60, 0x06, 0x18, 0xa9, 0xbd, 0x6f, 0xf9,
+ 0x97, 0x85, 0xd8, 0x90,
+};
+static const unsigned char kat2446_addinreseed[] = {
+ 0x6d, 0x44, 0x83, 0x9a, 0xff, 0x8b, 0x71, 0x65, 0xde, 0xeb, 0xd4, 0x89,
+ 0xad, 0x08, 0x8e, 0xcb, 0x7d, 0xce, 0xc1, 0x1c, 0x32, 0xb1, 0xe7, 0x47,
+ 0xdb, 0xa8, 0xf0, 0xe8, 0xa0, 0xb8, 0x9f, 0x74, 0xa8, 0x4e, 0xa8, 0xa0,
+ 0x55, 0x86, 0xfe, 0x9e,
+};
+static const unsigned char kat2446_addin0[] = {
+ 0x42, 0x24, 0x8f, 0xce, 0x09, 0x94, 0xe0, 0xe6, 0x35, 0x04, 0x20, 0x9d,
+ 0x62, 0x9a, 0x69, 0x43, 0xeb, 0x3e, 0x2a, 0xd5, 0x12, 0xf0, 0x3f, 0x79,
+ 0xcb, 0xd5, 0x10, 0x29, 0x28, 0x39, 0x2b, 0xce, 0x1c, 0xac, 0xbb, 0xa0,
+ 0x56, 0xac, 0x6c, 0xa9,
+};
+static const unsigned char kat2446_addin1[] = {
+ 0xbd, 0x52, 0x9b, 0x60, 0x02, 0x73, 0x32, 0x94, 0x23, 0xa5, 0x8d, 0x6f,
+ 0x8a, 0x12, 0xbe, 0x0f, 0x17, 0x98, 0x9a, 0x02, 0xe7, 0x3e, 0x34, 0x7b,
+ 0xc7, 0xd4, 0x9d, 0x91, 0x69, 0x33, 0x7a, 0x6c, 0xff, 0x7c, 0x07, 0xe8,
+ 0xa8, 0x07, 0xa8, 0x0a,
+};
+static const unsigned char kat2446_retbits[] = {
+ 0x02, 0x48, 0x6d, 0x32, 0xcd, 0x55, 0x95, 0x4f, 0x40, 0x6b, 0xa5, 0x57,
+ 0x05, 0xf1, 0x46, 0x0d, 0x38, 0x44, 0x39, 0x59, 0x2d, 0xed, 0xe8, 0x1a,
+ 0x84, 0xfd, 0xa2, 0x21, 0xfd, 0x45, 0xc0, 0xd6, 0x51, 0xd6, 0x7e, 0xc4,
+ 0xa8, 0x1a, 0x8b, 0x40, 0x41, 0x51, 0xa6, 0x43, 0xf3, 0x31, 0xad, 0x05,
+ 0x1c, 0xb0, 0x04, 0x35, 0x22, 0x89, 0xde, 0x37, 0xbc, 0xa7, 0x1e, 0x8c,
+ 0xc0, 0xa6, 0xae, 0xab,
+};
+static const struct drbg_kat_pr_false kat2446_t = {
+ 0, kat2446_entropyin, kat2446_nonce, kat2446_persstr,
+ kat2446_entropyinreseed, kat2446_addinreseed, kat2446_addin0,
+ kat2446_addin1, kat2446_retbits
+};
+static const struct drbg_kat kat2446 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2446_t
+};
+
+static const unsigned char kat2447_entropyin[] = {
+ 0x60, 0x2e, 0x53, 0xde, 0x42, 0x46, 0x91, 0x80, 0xc5, 0xde, 0x72, 0x2e,
+ 0x30, 0x0b, 0x1e, 0x59, 0xcf, 0x74, 0x0c, 0x1d, 0x06, 0xe8, 0x20, 0xa9,
+ 0xe8, 0x10, 0x1f, 0x01, 0x13, 0xaf, 0xa7, 0xb7, 0xd6, 0xf7, 0x64, 0xc0,
+ 0x18, 0x4a, 0xd9, 0xb4,
+};
+static const unsigned char kat2447_nonce[] = {0};
+static const unsigned char kat2447_persstr[] = {
+ 0x61, 0x83, 0xd3, 0x3b, 0x2a, 0x3a, 0xb3, 0x77, 0x8e, 0x35, 0x4b, 0x83,
+ 0x58, 0x6e, 0xba, 0x70, 0x1b, 0x79, 0xa5, 0x58, 0x2d, 0x57, 0x9a, 0x48,
+ 0x15, 0xfa, 0x34, 0x78, 0x73, 0xea, 0x7f, 0x21, 0x4b, 0xe0, 0xbd, 0x23,
+ 0xf7, 0x76, 0x96, 0xcf,
+};
+static const unsigned char kat2447_entropyinreseed[] = {
+ 0x44, 0xfd, 0x22, 0xd2, 0xb5, 0xae, 0x55, 0xdd, 0xf6, 0x22, 0xf0, 0xd2,
+ 0x3b, 0x87, 0x96, 0x7f, 0x6b, 0x60, 0xda, 0x26, 0x95, 0xd8, 0xc2, 0xdb,
+ 0xcc, 0xe2, 0xb3, 0x16, 0x5d, 0x40, 0x69, 0x46, 0x48, 0x0c, 0xb7, 0x0e,
+ 0x39, 0x21, 0x3e, 0xc1,
+};
+static const unsigned char kat2447_addinreseed[] = {
+ 0x74, 0x9c, 0x0d, 0x83, 0x80, 0x37, 0x11, 0x9f, 0x17, 0xda, 0xa6, 0x26,
+ 0x05, 0xfa, 0xc1, 0x96, 0xe7, 0x72, 0x76, 0x29, 0x96, 0x0f, 0x51, 0x39,
+ 0x62, 0x57, 0xf9, 0x1c, 0x4e, 0xdc, 0x19, 0xe1, 0x5c, 0x4e, 0xd2, 0x99,
+ 0x02, 0xae, 0xef, 0x6b,
+};
+static const unsigned char kat2447_addin0[] = {
+ 0x02, 0xa9, 0x47, 0xc1, 0x1f, 0x12, 0xf4, 0xe0, 0xd6, 0xa8, 0x2a, 0xc6,
+ 0x66, 0x7c, 0xd9, 0x36, 0xdd, 0xa2, 0xb4, 0x3d, 0xdb, 0x40, 0x52, 0xb6,
+ 0x8b, 0xa5, 0xc5, 0x17, 0xe7, 0xb3, 0x3a, 0xc2, 0x81, 0x08, 0x8a, 0x0d,
+ 0x6f, 0x4a, 0x22, 0xcb,
+};
+static const unsigned char kat2447_addin1[] = {
+ 0x40, 0x01, 0x83, 0x93, 0x95, 0x9e, 0x2b, 0x80, 0x98, 0x63, 0x16, 0x27,
+ 0x9e, 0x7c, 0x42, 0xd4, 0xbd, 0x67, 0x5a, 0x3f, 0xc2, 0x31, 0x21, 0x8d,
+ 0x79, 0x5a, 0x6e, 0xa4, 0x1a, 0x46, 0xca, 0x2c, 0x2c, 0xe2, 0xef, 0x87,
+ 0xc9, 0x1d, 0x52, 0x82,
+};
+static const unsigned char kat2447_retbits[] = {
+ 0xe7, 0x99, 0xf0, 0x17, 0x74, 0x01, 0x9d, 0x59, 0x2d, 0xcb, 0x8d, 0x8d,
+ 0xf9, 0x4e, 0xd6, 0x3c, 0xd3, 0x7e, 0x6d, 0xcb, 0x5a, 0x21, 0xf5, 0x8b,
+ 0xd1, 0x6a, 0x6b, 0x9a, 0x62, 0xb6, 0x7c, 0x26, 0x28, 0xb1, 0xfb, 0x95,
+ 0xc4, 0x0d, 0x92, 0x32, 0x12, 0x79, 0x39, 0x14, 0xa2, 0x30, 0x37, 0xa9,
+ 0x2c, 0xd1, 0x07, 0x8d, 0x88, 0x90, 0x7e, 0x3b, 0x77, 0x1f, 0x4d, 0xb5,
+ 0x43, 0xef, 0x58, 0xb3,
+};
+static const struct drbg_kat_pr_false kat2447_t = {
+ 1, kat2447_entropyin, kat2447_nonce, kat2447_persstr,
+ kat2447_entropyinreseed, kat2447_addinreseed, kat2447_addin0,
+ kat2447_addin1, kat2447_retbits
+};
+static const struct drbg_kat kat2447 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2447_t
+};
+
+static const unsigned char kat2448_entropyin[] = {
+ 0x96, 0xe0, 0x41, 0x25, 0xfc, 0xc3, 0x2a, 0xa5, 0xc5, 0xd1, 0x21, 0xe8,
+ 0xfb, 0x78, 0x2c, 0x0d, 0x7c, 0xbc, 0xd7, 0x76, 0x68, 0xa4, 0xc5, 0x20,
+ 0x5f, 0x31, 0x46, 0x4f, 0x8a, 0x69, 0x71, 0x19, 0x57, 0x59, 0xea, 0x60,
+ 0x89, 0xe4, 0x59, 0x98,
+};
+static const unsigned char kat2448_nonce[] = {0};
+static const unsigned char kat2448_persstr[] = {
+ 0xf9, 0x33, 0x18, 0x07, 0xdb, 0x0b, 0xf1, 0x66, 0x87, 0x00, 0x65, 0x1b,
+ 0xfc, 0xa0, 0x15, 0xe7, 0x17, 0x22, 0xc4, 0x67, 0x49, 0x82, 0x44, 0xf6,
+ 0xd6, 0x35, 0x04, 0x0a, 0x3e, 0xf6, 0xc1, 0x16, 0x63, 0xa9, 0x46, 0x42,
+ 0x82, 0xe6, 0x3b, 0x17,
+};
+static const unsigned char kat2448_entropyinreseed[] = {
+ 0x14, 0xcd, 0xe6, 0x4d, 0xd6, 0x87, 0x7b, 0x1d, 0x4e, 0xaf, 0x13, 0x47,
+ 0x88, 0x93, 0x56, 0x2e, 0xda, 0x08, 0x10, 0x38, 0xb4, 0x20, 0x94, 0x17,
+ 0x53, 0x4c, 0x17, 0x09, 0x7d, 0x7e, 0xc3, 0xb5, 0x98, 0xc6, 0xdf, 0x3b,
+ 0x89, 0x23, 0xbf, 0x73,
+};
+static const unsigned char kat2448_addinreseed[] = {
+ 0x84, 0x5b, 0x98, 0x21, 0x98, 0x57, 0xf5, 0x2b, 0x99, 0xfc, 0x75, 0x19,
+ 0xcd, 0x9f, 0x0d, 0x9c, 0x6f, 0xb3, 0x4f, 0x39, 0x31, 0xc2, 0x04, 0xef,
+ 0x4f, 0x30, 0x3d, 0x90, 0x8d, 0x3f, 0x1c, 0xd3, 0x11, 0x29, 0x10, 0xd0,
+ 0xe1, 0xa4, 0x1c, 0xa5,
+};
+static const unsigned char kat2448_addin0[] = {
+ 0xf2, 0x88, 0x5e, 0x8a, 0x18, 0x0e, 0x39, 0x5d, 0xf0, 0xcc, 0x77, 0x0a,
+ 0x83, 0x06, 0x2b, 0x96, 0x31, 0x78, 0x3a, 0x99, 0x62, 0xf3, 0x6c, 0xe0,
+ 0x5e, 0xf1, 0x97, 0xf9, 0x89, 0xf1, 0xaa, 0xdb, 0xe8, 0xdb, 0x54, 0x9d,
+ 0x9b, 0x79, 0x13, 0x40,
+};
+static const unsigned char kat2448_addin1[] = {
+ 0xbd, 0xee, 0x38, 0xf9, 0xb3, 0x52, 0x6d, 0x82, 0x4f, 0xbb, 0x08, 0x56,
+ 0x20, 0x29, 0x9d, 0x5b, 0xca, 0x0c, 0x07, 0xba, 0xd4, 0x88, 0xcc, 0x8e,
+ 0x61, 0x36, 0xc7, 0x72, 0x3d, 0x44, 0x13, 0xe3, 0xe7, 0x38, 0xc3, 0x11,
+ 0xfb, 0xbb, 0x39, 0x77,
+};
+static const unsigned char kat2448_retbits[] = {
+ 0xcf, 0x3e, 0x3d, 0xcb, 0x4c, 0x20, 0x91, 0xb3, 0xeb, 0xe7, 0xe1, 0xc0,
+ 0x5b, 0x83, 0x9d, 0x3a, 0x90, 0x14, 0x84, 0x1c, 0x08, 0x5b, 0x35, 0x58,
+ 0x92, 0x03, 0x8f, 0x7f, 0xc2, 0xbb, 0x32, 0xc6, 0x87, 0x30, 0x6c, 0xed,
+ 0xf0, 0x53, 0xfb, 0xae, 0xa1, 0x64, 0x29, 0x24, 0x60, 0x69, 0xbf, 0xd0,
+ 0xf0, 0xcd, 0xf6, 0xcc, 0xd8, 0x2c, 0xcb, 0x0f, 0x79, 0x2a, 0xcb, 0x87,
+ 0x75, 0xa5, 0xc6, 0x78,
+};
+static const struct drbg_kat_pr_false kat2448_t = {
+ 2, kat2448_entropyin, kat2448_nonce, kat2448_persstr,
+ kat2448_entropyinreseed, kat2448_addinreseed, kat2448_addin0,
+ kat2448_addin1, kat2448_retbits
+};
+static const struct drbg_kat kat2448 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2448_t
+};
+
+static const unsigned char kat2449_entropyin[] = {
+ 0x42, 0x3c, 0xc9, 0x8b, 0xbe, 0xc9, 0x06, 0x51, 0x6c, 0xf0, 0x77, 0x2f,
+ 0xf8, 0x96, 0x1e, 0xb3, 0xed, 0xd1, 0x3c, 0xa9, 0x29, 0x29, 0x5d, 0x4c,
+ 0xdb, 0xa3, 0x2a, 0xbb, 0xb6, 0x01, 0xa2, 0x20, 0xe0, 0xa4, 0x46, 0x0b,
+ 0xea, 0x6a, 0x6d, 0xff,
+};
+static const unsigned char kat2449_nonce[] = {0};
+static const unsigned char kat2449_persstr[] = {
+ 0x08, 0xdc, 0x21, 0x52, 0xa1, 0x4c, 0x81, 0x87, 0x21, 0xe4, 0xe8, 0x3e,
+ 0x16, 0x85, 0xdd, 0x0c, 0x38, 0xf2, 0x33, 0xb5, 0xae, 0xdb, 0x6c, 0x69,
+ 0xc5, 0x74, 0xc8, 0x23, 0xbe, 0xb0, 0xec, 0x6f, 0x19, 0x2d, 0x4d, 0x99,
+ 0x1d, 0xe6, 0x94, 0x01,
+};
+static const unsigned char kat2449_entropyinreseed[] = {
+ 0x44, 0x13, 0xd5, 0xae, 0x82, 0x12, 0xf0, 0xfe, 0xe0, 0xd2, 0xe6, 0xdc,
+ 0x99, 0x43, 0x7b, 0x54, 0x09, 0x43, 0xa9, 0xaf, 0x33, 0xad, 0x68, 0x63,
+ 0xba, 0xc4, 0x27, 0xec, 0xf7, 0x3d, 0xfb, 0x8f, 0x09, 0xa1, 0x00, 0x88,
+ 0xfa, 0x1a, 0xe1, 0x09,
+};
+static const unsigned char kat2449_addinreseed[] = {
+ 0x5f, 0xc5, 0xfe, 0xe3, 0x50, 0x4e, 0x98, 0x34, 0xa6, 0x95, 0x94, 0x18,
+ 0xdb, 0x6b, 0x10, 0x66, 0x12, 0x6f, 0x86, 0xd0, 0x8e, 0xab, 0x76, 0x0f,
+ 0xeb, 0x12, 0xfd, 0x56, 0xaa, 0xbb, 0x79, 0x7e, 0x21, 0x25, 0xb0, 0x6a,
+ 0x27, 0x6a, 0x9b, 0xef,
+};
+static const unsigned char kat2449_addin0[] = {
+ 0x48, 0x1c, 0x40, 0x7b, 0xdf, 0x31, 0x4c, 0x99, 0x1e, 0x3b, 0x37, 0x89,
+ 0x36, 0xf8, 0x14, 0x51, 0x20, 0xa3, 0x1d, 0xaf, 0xde, 0xe2, 0x1e, 0x1e,
+ 0x3a, 0xf5, 0xaa, 0x61, 0x7a, 0x9a, 0xd5, 0x59, 0xca, 0x1e, 0x5b, 0xfb,
+ 0xa3, 0x8b, 0x29, 0xd0,
+};
+static const unsigned char kat2449_addin1[] = {
+ 0xa2, 0x6e, 0x6c, 0x49, 0x23, 0x54, 0xd6, 0x04, 0xdc, 0xa5, 0x37, 0x3f,
+ 0xf6, 0x47, 0xf2, 0x06, 0xed, 0x19, 0x07, 0x02, 0x5c, 0x03, 0x2c, 0x28,
+ 0xd5, 0x65, 0xc8, 0x11, 0x7d, 0xc9, 0x96, 0x55, 0x5c, 0x9c, 0x2a, 0xe8,
+ 0x30, 0x93, 0x86, 0x3b,
+};
+static const unsigned char kat2449_retbits[] = {
+ 0x41, 0x26, 0x49, 0xdd, 0x98, 0x39, 0xe7, 0xc1, 0x85, 0x41, 0x56, 0xef,
+ 0x02, 0x96, 0xb1, 0x24, 0x52, 0x29, 0x95, 0x5f, 0xb1, 0x96, 0x02, 0x78,
+ 0x79, 0x0a, 0xf7, 0xf7, 0x98, 0xc7, 0xee, 0xd1, 0x71, 0xf4, 0xed, 0xc9,
+ 0x4c, 0x7e, 0x86, 0xab, 0xba, 0x14, 0xcf, 0x30, 0x19, 0x75, 0x51, 0x6d,
+ 0x7b, 0x68, 0xf6, 0x1b, 0x6e, 0xe4, 0x57, 0x9e, 0x61, 0x1b, 0xdd, 0x57,
+ 0xdd, 0xdb, 0x9d, 0x9c,
+};
+static const struct drbg_kat_pr_false kat2449_t = {
+ 3, kat2449_entropyin, kat2449_nonce, kat2449_persstr,
+ kat2449_entropyinreseed, kat2449_addinreseed, kat2449_addin0,
+ kat2449_addin1, kat2449_retbits
+};
+static const struct drbg_kat kat2449 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2449_t
+};
+
+static const unsigned char kat2450_entropyin[] = {
+ 0xe8, 0xfd, 0x14, 0x50, 0xe4, 0x21, 0x36, 0x7a, 0x2b, 0xfc, 0x0f, 0x36,
+ 0x00, 0xab, 0xc7, 0x83, 0xa1, 0x8e, 0x87, 0xb9, 0x81, 0xee, 0x98, 0x1d,
+ 0xa5, 0x48, 0x9f, 0x45, 0x2f, 0x31, 0x16, 0x23, 0x50, 0x53, 0x6d, 0x03,
+ 0xc2, 0x99, 0x9f, 0x0d,
+};
+static const unsigned char kat2450_nonce[] = {0};
+static const unsigned char kat2450_persstr[] = {
+ 0xcf, 0xcd, 0x45, 0x14, 0x87, 0x75, 0x99, 0xe0, 0xa9, 0x8a, 0xb9, 0xf2,
+ 0x55, 0x82, 0xcf, 0xb5, 0xef, 0x7b, 0x31, 0xe0, 0xed, 0xe9, 0x26, 0xdd,
+ 0x23, 0x0c, 0x4a, 0x73, 0x85, 0x33, 0xf3, 0x8f, 0x53, 0x9f, 0xec, 0xe0,
+ 0x1c, 0xd8, 0xfd, 0xd5,
+};
+static const unsigned char kat2450_entropyinreseed[] = {
+ 0x75, 0x12, 0xe4, 0xc5, 0x0c, 0xdf, 0x8d, 0xdb, 0xc7, 0x98, 0x17, 0x82,
+ 0x2f, 0xbb, 0x19, 0x33, 0x04, 0x61, 0xca, 0xf8, 0xe9, 0x9e, 0xf8, 0x86,
+ 0xc3, 0x76, 0xfc, 0x3f, 0xa0, 0x40, 0x90, 0x15, 0x9c, 0x9d, 0xc7, 0x29,
+ 0x5e, 0xaf, 0xd4, 0xeb,
+};
+static const unsigned char kat2450_addinreseed[] = {
+ 0x3e, 0xe3, 0xfd, 0x20, 0x7c, 0x04, 0xc3, 0xaa, 0xf3, 0xb0, 0xd9, 0x27,
+ 0x77, 0xf2, 0xbb, 0xa9, 0xd9, 0xdd, 0x20, 0x08, 0x8b, 0xb6, 0x4a, 0x5e,
+ 0xab, 0x7b, 0xcd, 0xd4, 0x54, 0xf7, 0xc5, 0xdd, 0x14, 0xeb, 0xe9, 0x1e,
+ 0xbe, 0xc7, 0x5c, 0xdf,
+};
+static const unsigned char kat2450_addin0[] = {
+ 0x92, 0x76, 0x00, 0x3a, 0x3b, 0x8c, 0x57, 0xc5, 0x69, 0xee, 0xa7, 0x3c,
+ 0x8f, 0x03, 0x99, 0x1f, 0x16, 0xec, 0x57, 0xb8, 0xd7, 0x4c, 0xb9, 0x07,
+ 0x74, 0x7e, 0x69, 0x95, 0x4d, 0x4d, 0x23, 0x3f, 0x97, 0xe1, 0x6e, 0xd8,
+ 0x2f, 0x52, 0x50, 0xd7,
+};
+static const unsigned char kat2450_addin1[] = {
+ 0x34, 0xf7, 0x64, 0x89, 0xdb, 0x8f, 0xd0, 0xec, 0xc0, 0xa8, 0xc9, 0xf4,
+ 0x57, 0xdf, 0x0a, 0x75, 0x7f, 0xe0, 0x93, 0x4a, 0xdb, 0x1c, 0x92, 0xbb,
+ 0x32, 0x3f, 0xcd, 0x97, 0xf8, 0x24, 0x69, 0x83, 0xe1, 0xe0, 0x7d, 0xde,
+ 0x71, 0x27, 0x3e, 0x45,
+};
+static const unsigned char kat2450_retbits[] = {
+ 0x3d, 0x3f, 0x89, 0x95, 0x4b, 0x4e, 0x81, 0x99, 0xd5, 0xbe, 0x84, 0x86,
+ 0x0c, 0xfb, 0x70, 0xfb, 0x8f, 0x00, 0xfb, 0x6b, 0xb9, 0x61, 0x9d, 0x27,
+ 0x4b, 0x9c, 0x8c, 0xa9, 0xb6, 0xc5, 0x24, 0x23, 0x5e, 0xca, 0x9c, 0x01,
+ 0x15, 0x28, 0x4e, 0x8b, 0xbd, 0xb3, 0x96, 0xc6, 0x38, 0x38, 0xba, 0x8e,
+ 0x6a, 0xf7, 0x45, 0xbb, 0x5d, 0xd1, 0xda, 0xff, 0x21, 0x45, 0x81, 0x39,
+ 0x80, 0x16, 0xb4, 0x13,
+};
+static const struct drbg_kat_pr_false kat2450_t = {
+ 4, kat2450_entropyin, kat2450_nonce, kat2450_persstr,
+ kat2450_entropyinreseed, kat2450_addinreseed, kat2450_addin0,
+ kat2450_addin1, kat2450_retbits
+};
+static const struct drbg_kat kat2450 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2450_t
+};
+
+static const unsigned char kat2451_entropyin[] = {
+ 0x67, 0x62, 0x8a, 0x4e, 0x76, 0x3b, 0x14, 0xee, 0x13, 0x33, 0x5e, 0x07,
+ 0x0e, 0xa4, 0x61, 0x13, 0x09, 0x0a, 0xba, 0xdf, 0x52, 0xa1, 0x70, 0x17,
+ 0xc4, 0xf9, 0xb9, 0xef, 0xf7, 0x83, 0x50, 0xd5, 0x88, 0x17, 0xcb, 0x35,
+ 0x3d, 0xd6, 0xa3, 0x98,
+};
+static const unsigned char kat2451_nonce[] = {0};
+static const unsigned char kat2451_persstr[] = {
+ 0xba, 0x22, 0x3e, 0x2e, 0xb4, 0xf8, 0x0d, 0x1a, 0xff, 0x56, 0x23, 0xe1,
+ 0xc7, 0xa6, 0x3c, 0x9f, 0xc4, 0x7b, 0x63, 0xa2, 0xdb, 0x56, 0xa9, 0xea,
+ 0xaa, 0x83, 0x00, 0x7f, 0x51, 0x40, 0xf7, 0xed, 0xc8, 0x02, 0xf1, 0xf9,
+ 0x7c, 0x6f, 0xb5, 0x32,
+};
+static const unsigned char kat2451_entropyinreseed[] = {
+ 0xae, 0xd4, 0x2a, 0x16, 0xe0, 0x35, 0x7c, 0x38, 0xa9, 0x34, 0x4f, 0xed,
+ 0x60, 0xbc, 0xac, 0x6f, 0xc0, 0xac, 0x02, 0xcc, 0xc3, 0x33, 0x6c, 0xf1,
+ 0x46, 0x4c, 0xda, 0x26, 0x35, 0x1a, 0x3b, 0xdf, 0x9d, 0x7c, 0x62, 0x26,
+ 0x62, 0x16, 0xeb, 0x44,
+};
+static const unsigned char kat2451_addinreseed[] = {
+ 0x9d, 0x01, 0xea, 0x58, 0x50, 0x5d, 0x40, 0xb3, 0xf0, 0x3c, 0xeb, 0x40,
+ 0xad, 0xaa, 0x64, 0x01, 0xc9, 0x1e, 0xb0, 0xc1, 0xe3, 0xd7, 0x22, 0xef,
+ 0x02, 0x6c, 0xac, 0x66, 0xa0, 0x00, 0x68, 0xc9, 0xcd, 0x1b, 0xd1, 0x2f,
+ 0xc8, 0x6b, 0x6e, 0x7d,
+};
+static const unsigned char kat2451_addin0[] = {
+ 0xf3, 0x7a, 0xfe, 0xe2, 0x28, 0xcc, 0xa5, 0x46, 0x9d, 0x9e, 0x77, 0x4f,
+ 0xf3, 0x3a, 0xb2, 0xe4, 0x77, 0x82, 0xf6, 0x5f, 0x1c, 0xb0, 0x68, 0xfe,
+ 0x48, 0xe1, 0xf1, 0x51, 0x9d, 0x06, 0xe0, 0x0d, 0x58, 0xf5, 0x26, 0xf7,
+ 0x2c, 0x22, 0xbb, 0x9d,
+};
+static const unsigned char kat2451_addin1[] = {
+ 0xa3, 0x6c, 0xa3, 0xab, 0x10, 0xc8, 0x3d, 0x6e, 0x58, 0x9b, 0x2d, 0x94,
+ 0x83, 0x0a, 0x17, 0x45, 0x75, 0xca, 0x65, 0x05, 0xce, 0x46, 0xbf, 0x23,
+ 0xe0, 0x10, 0x22, 0x15, 0x1f, 0x9f, 0x7a, 0x35, 0x4a, 0xa5, 0xf1, 0xc0,
+ 0xd7, 0x6a, 0xab, 0x48,
+};
+static const unsigned char kat2451_retbits[] = {
+ 0x3b, 0xee, 0x8d, 0xa2, 0x15, 0x71, 0x0e, 0x0b, 0x60, 0x39, 0xa7, 0x68,
+ 0x21, 0x2e, 0x62, 0x6d, 0xaf, 0xdd, 0x37, 0x76, 0xcf, 0x71, 0xb6, 0x85,
+ 0x6d, 0x6c, 0x0e, 0x54, 0x2f, 0x94, 0x2a, 0x33, 0x64, 0x86, 0xe7, 0x58,
+ 0x91, 0x24, 0x1e, 0x4b, 0x74, 0x1f, 0xba, 0xb2, 0x3a, 0x7b, 0xbe, 0x57,
+ 0x08, 0x04, 0x1b, 0xb9, 0x75, 0x08, 0xec, 0x4e, 0x60, 0xea, 0x3e, 0x2b,
+ 0x74, 0x63, 0xb9, 0xd2,
+};
+static const struct drbg_kat_pr_false kat2451_t = {
+ 5, kat2451_entropyin, kat2451_nonce, kat2451_persstr,
+ kat2451_entropyinreseed, kat2451_addinreseed, kat2451_addin0,
+ kat2451_addin1, kat2451_retbits
+};
+static const struct drbg_kat kat2451 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2451_t
+};
+
+static const unsigned char kat2452_entropyin[] = {
+ 0x48, 0xe6, 0x0a, 0x52, 0xa8, 0x71, 0x8c, 0xa1, 0x8b, 0x3e, 0xfd, 0x01,
+ 0xcb, 0x0e, 0xfe, 0xef, 0xaf, 0x33, 0xb5, 0xbf, 0x24, 0x4a, 0x6f, 0x78,
+ 0xf3, 0xd8, 0x67, 0x7f, 0x57, 0x3f, 0x33, 0x98, 0xea, 0x28, 0xfd, 0x4b,
+ 0x91, 0x78, 0x17, 0x2e,
+};
+static const unsigned char kat2452_nonce[] = {0};
+static const unsigned char kat2452_persstr[] = {
+ 0x0c, 0xc9, 0x5d, 0x75, 0xc1, 0x82, 0xc6, 0xb4, 0x1e, 0x4e, 0x0e, 0x58,
+ 0x31, 0x8f, 0x9a, 0x76, 0x41, 0x79, 0x5b, 0x63, 0x6f, 0x9b, 0xf8, 0x25,
+ 0x01, 0x35, 0x2d, 0x1e, 0x38, 0x86, 0x75, 0x9e, 0xb1, 0x6f, 0x4e, 0x20,
+ 0x20, 0x6e, 0x4d, 0xe0,
+};
+static const unsigned char kat2452_entropyinreseed[] = {
+ 0x3d, 0x7f, 0xa5, 0xc5, 0xe0, 0xfd, 0x6d, 0x01, 0x9c, 0xdd, 0xa0, 0xac,
+ 0x27, 0xd0, 0x7e, 0x88, 0xd1, 0x49, 0x72, 0xba, 0x2e, 0xcc, 0xee, 0xb9,
+ 0xa2, 0x39, 0x54, 0xc8, 0x38, 0x81, 0xe3, 0x7c, 0x23, 0x18, 0x0e, 0x6f,
+ 0xdb, 0x4f, 0x7b, 0xab,
+};
+static const unsigned char kat2452_addinreseed[] = {
+ 0x3c, 0x37, 0xa2, 0x14, 0xd0, 0xd1, 0xc2, 0xab, 0xa6, 0x75, 0x25, 0xaa,
+ 0xcb, 0xa4, 0x07, 0x7b, 0xd1, 0x6a, 0x77, 0xc8, 0xdc, 0x1c, 0x06, 0x9d,
+ 0x4b, 0x10, 0x18, 0xca, 0x61, 0x53, 0xff, 0x98, 0x3f, 0xbb, 0xbf, 0xa1,
+ 0xe1, 0x06, 0x4d, 0x19,
+};
+static const unsigned char kat2452_addin0[] = {
+ 0x1b, 0xdf, 0x68, 0x47, 0x94, 0x60, 0x27, 0x0d, 0x0b, 0x05, 0x81, 0x8d,
+ 0x80, 0xb4, 0xc6, 0x0f, 0x9b, 0xf3, 0xa5, 0xe6, 0x28, 0x56, 0x27, 0xc8,
+ 0xaf, 0x68, 0x9e, 0x67, 0xc7, 0x18, 0x83, 0xac, 0x2c, 0xcf, 0xe7, 0x2a,
+ 0xc5, 0x5e, 0x86, 0xaa,
+};
+static const unsigned char kat2452_addin1[] = {
+ 0x66, 0xb2, 0x50, 0xdd, 0xc3, 0xee, 0x23, 0xb9, 0x79, 0x6a, 0x83, 0x33,
+ 0xcc, 0xa6, 0x8b, 0xf5, 0xab, 0xa4, 0x11, 0x64, 0xc0, 0xd3, 0xd3, 0x9a,
+ 0x08, 0x25, 0x63, 0xb1, 0x5f, 0xdf, 0x28, 0xf6, 0x35, 0xfa, 0x1e, 0x19,
+ 0xbd, 0x88, 0x6b, 0xf9,
+};
+static const unsigned char kat2452_retbits[] = {
+ 0x9a, 0xd0, 0xe2, 0x44, 0x3c, 0x2c, 0xa9, 0x28, 0xe2, 0x4f, 0x1a, 0xd4,
+ 0xf7, 0x30, 0x39, 0x34, 0x04, 0x3a, 0xcc, 0x4e, 0x6e, 0x9f, 0x03, 0xeb,
+ 0x8c, 0xe3, 0x71, 0xe4, 0xe1, 0x2c, 0xee, 0x3c, 0x7c, 0xb9, 0x79, 0x13,
+ 0x20, 0x90, 0xc7, 0xd2, 0x30, 0xaf, 0x21, 0xf9, 0xb5, 0x13, 0x47, 0x98,
+ 0x36, 0x3e, 0x6e, 0x4c, 0xc8, 0x97, 0x27, 0xac, 0x75, 0xce, 0x29, 0x60,
+ 0x18, 0x0d, 0xb4, 0x30,
+};
+static const struct drbg_kat_pr_false kat2452_t = {
+ 6, kat2452_entropyin, kat2452_nonce, kat2452_persstr,
+ kat2452_entropyinreseed, kat2452_addinreseed, kat2452_addin0,
+ kat2452_addin1, kat2452_retbits
+};
+static const struct drbg_kat kat2452 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2452_t
+};
+
+static const unsigned char kat2453_entropyin[] = {
+ 0xc6, 0x6f, 0x6c, 0xde, 0x3d, 0x83, 0x77, 0xa8, 0x03, 0xca, 0x22, 0xf3,
+ 0x8e, 0xf3, 0x37, 0x9b, 0xfa, 0x3a, 0x8a, 0xb7, 0x7e, 0xdd, 0x2c, 0xf3,
+ 0x8a, 0xe0, 0x54, 0x06, 0xed, 0x94, 0x8d, 0xf9, 0xe0, 0xc1, 0xbf, 0xdd,
+ 0x5d, 0x6d, 0x99, 0xcf,
+};
+static const unsigned char kat2453_nonce[] = {0};
+static const unsigned char kat2453_persstr[] = {
+ 0xd0, 0x82, 0x24, 0xbe, 0x28, 0xfd, 0x1f, 0xdb, 0x5c, 0x6e, 0x3a, 0x65,
+ 0xeb, 0xd1, 0x9f, 0x4f, 0x0e, 0xba, 0x13, 0x3f, 0x7f, 0x86, 0x18, 0xaf,
+ 0x0e, 0xcb, 0xa9, 0xdf, 0x84, 0x98, 0xd3, 0x87, 0xaf, 0x7a, 0xf9, 0x0b,
+ 0xd3, 0x56, 0x83, 0x3d,
+};
+static const unsigned char kat2453_entropyinreseed[] = {
+ 0xfe, 0xa8, 0x71, 0x6f, 0xf0, 0x25, 0x40, 0xdd, 0x2e, 0xa3, 0x95, 0xe0,
+ 0xce, 0x19, 0xb7, 0x62, 0x35, 0x5f, 0xbb, 0x5e, 0x7f, 0x39, 0xd5, 0x25,
+ 0x02, 0x24, 0x07, 0xa6, 0x28, 0x96, 0xb3, 0xa0, 0x94, 0xfc, 0x0e, 0xca,
+ 0xcc, 0xb7, 0x7f, 0x21,
+};
+static const unsigned char kat2453_addinreseed[] = {
+ 0x64, 0xe1, 0x6c, 0x0a, 0x34, 0x98, 0xb2, 0x69, 0x3e, 0x35, 0x9a, 0x27,
+ 0x23, 0x46, 0xef, 0xd1, 0x28, 0xbe, 0x5a, 0x5a, 0xe7, 0x38, 0x06, 0x8a,
+ 0x9e, 0x9f, 0x26, 0x7c, 0xe9, 0xdd, 0x7e, 0x8b, 0xcb, 0x36, 0xdd, 0x2e,
+ 0x54, 0x27, 0xe3, 0x6d,
+};
+static const unsigned char kat2453_addin0[] = {
+ 0xc4, 0x7f, 0xa9, 0x27, 0x55, 0x84, 0xbc, 0xcd, 0x85, 0xd5, 0xa8, 0x4c,
+ 0x0a, 0xb3, 0xa1, 0x3a, 0x76, 0x30, 0x56, 0x7d, 0xc9, 0x69, 0xe0, 0x4c,
+ 0xdf, 0x3c, 0xb2, 0xa1, 0xb3, 0xd9, 0xcc, 0x79, 0xd4, 0x5b, 0x83, 0x20,
+ 0x26, 0x9a, 0x38, 0x0a,
+};
+static const unsigned char kat2453_addin1[] = {
+ 0xad, 0x2e, 0x79, 0x88, 0x66, 0x4c, 0x31, 0xd1, 0xe5, 0xf9, 0xc0, 0x3d,
+ 0x8b, 0x5b, 0xa6, 0xaf, 0xd3, 0xbb, 0x4e, 0x23, 0x9d, 0x63, 0xfc, 0xe8,
+ 0xe6, 0x7a, 0x59, 0xad, 0x92, 0xee, 0x79, 0x56, 0x9e, 0x7c, 0x40, 0x9b,
+ 0xbf, 0xaf, 0x3d, 0x0c,
+};
+static const unsigned char kat2453_retbits[] = {
+ 0xbd, 0xd9, 0xf5, 0xde, 0x8f, 0xdf, 0xa1, 0x11, 0x27, 0x1b, 0xf4, 0x04,
+ 0x44, 0x57, 0xdb, 0xd2, 0xa7, 0x30, 0xf8, 0x74, 0xb6, 0x87, 0x81, 0x59,
+ 0xac, 0xf1, 0xe7, 0xcd, 0x87, 0x96, 0x0c, 0xbe, 0x3a, 0x43, 0x7b, 0x0d,
+ 0x76, 0xdf, 0x37, 0x80, 0x1b, 0x02, 0x34, 0x6a, 0xcc, 0x0e, 0x25, 0xd0,
+ 0x2f, 0x7e, 0xd3, 0x6e, 0xc6, 0x12, 0x5b, 0xc3, 0xc4, 0x00, 0x15, 0xea,
+ 0x87, 0xcc, 0x41, 0x57,
+};
+static const struct drbg_kat_pr_false kat2453_t = {
+ 7, kat2453_entropyin, kat2453_nonce, kat2453_persstr,
+ kat2453_entropyinreseed, kat2453_addinreseed, kat2453_addin0,
+ kat2453_addin1, kat2453_retbits
+};
+static const struct drbg_kat kat2453 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2453_t
+};
+
+static const unsigned char kat2454_entropyin[] = {
+ 0x16, 0x39, 0x23, 0x81, 0x80, 0x97, 0x28, 0x1f, 0x32, 0x6f, 0x1e, 0x6a,
+ 0xea, 0x73, 0x19, 0x46, 0xbe, 0xd5, 0x96, 0xaf, 0x7d, 0x27, 0xf0, 0x5b,
+ 0x1e, 0x10, 0xbb, 0x99, 0x9d, 0xaa, 0xf6, 0xb8, 0xaa, 0x3b, 0x68, 0x2c,
+ 0x01, 0xa0, 0xda, 0x22,
+};
+static const unsigned char kat2454_nonce[] = {0};
+static const unsigned char kat2454_persstr[] = {
+ 0x09, 0xbe, 0x1a, 0xef, 0x56, 0x1a, 0x95, 0x72, 0x27, 0x4d, 0x5f, 0xf4,
+ 0xa0, 0x11, 0xf1, 0x39, 0x8f, 0xb8, 0x9c, 0x41, 0x7c, 0xc6, 0x97, 0xfe,
+ 0x40, 0x26, 0xee, 0xec, 0x87, 0xcf, 0x2b, 0x91, 0x86, 0xaf, 0x54, 0x7a,
+ 0xd5, 0xf5, 0x64, 0xba,
+};
+static const unsigned char kat2454_entropyinreseed[] = {
+ 0x6b, 0x16, 0x09, 0x4e, 0x75, 0x28, 0xee, 0xc7, 0x10, 0x2b, 0x66, 0xb3,
+ 0xc2, 0x4d, 0xc8, 0xfd, 0xa3, 0xf0, 0x8d, 0x50, 0x4c, 0x60, 0xec, 0x68,
+ 0x9a, 0x9e, 0x1d, 0x2b, 0x6c, 0xf1, 0xa0, 0x01, 0x5b, 0x9b, 0x91, 0x40,
+ 0xd1, 0xbc, 0x6d, 0x0b,
+};
+static const unsigned char kat2454_addinreseed[] = {
+ 0xdc, 0x0c, 0x5a, 0x4f, 0x38, 0xc5, 0x72, 0x7a, 0x3f, 0xaa, 0x66, 0xde,
+ 0xe8, 0x37, 0xd0, 0xa7, 0xb8, 0xa5, 0x17, 0x53, 0x22, 0xf5, 0x09, 0xe3,
+ 0x92, 0x0b, 0xf8, 0xe3, 0xc3, 0x98, 0x06, 0xf1, 0xd9, 0x98, 0x42, 0xdd,
+ 0xfa, 0x44, 0x0e, 0x93,
+};
+static const unsigned char kat2454_addin0[] = {
+ 0x74, 0x32, 0xee, 0x11, 0x67, 0x53, 0x1c, 0x70, 0x91, 0x0f, 0x8c, 0xae,
+ 0x72, 0xb9, 0xb0, 0x9a, 0xf1, 0x91, 0x85, 0x77, 0x6e, 0x58, 0x8a, 0x1b,
+ 0xa5, 0x02, 0x65, 0x6e, 0xf9, 0xd7, 0x52, 0xe8, 0x4a, 0x97, 0x7f, 0x24,
+ 0xee, 0x2e, 0x86, 0x25,
+};
+static const unsigned char kat2454_addin1[] = {
+ 0x0c, 0x66, 0x93, 0x06, 0x44, 0xc2, 0xd3, 0x68, 0x0c, 0x10, 0x98, 0x79,
+ 0x93, 0x04, 0xd1, 0x23, 0x6c, 0xa4, 0x00, 0x6b, 0xa0, 0x60, 0xa8, 0x39,
+ 0x83, 0x7e, 0x68, 0x42, 0x3e, 0x62, 0x46, 0xe4, 0xd3, 0xf8, 0x51, 0x25,
+ 0x9c, 0xbb, 0x20, 0x6b,
+};
+static const unsigned char kat2454_retbits[] = {
+ 0x8b, 0xca, 0xc9, 0x3f, 0x84, 0x51, 0x68, 0x91, 0xe6, 0x60, 0xe8, 0xe8,
+ 0x3f, 0x55, 0x2e, 0x38, 0xce, 0xa2, 0x04, 0xf6, 0xb5, 0xc4, 0xaa, 0x17,
+ 0x9d, 0x04, 0x83, 0xac, 0xae, 0xd2, 0x0e, 0x8c, 0x13, 0x5b, 0xf8, 0xdf,
+ 0x32, 0x57, 0xc3, 0xdf, 0xda, 0xd3, 0x47, 0x59, 0x86, 0xcd, 0x58, 0xb0,
+ 0x59, 0x29, 0xaa, 0xc0, 0xe4, 0x02, 0xc3, 0xab, 0xcc, 0xcf, 0x0c, 0x1d,
+ 0xe2, 0x2b, 0x97, 0x30,
+};
+static const struct drbg_kat_pr_false kat2454_t = {
+ 8, kat2454_entropyin, kat2454_nonce, kat2454_persstr,
+ kat2454_entropyinreseed, kat2454_addinreseed, kat2454_addin0,
+ kat2454_addin1, kat2454_retbits
+};
+static const struct drbg_kat kat2454 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2454_t
+};
+
+static const unsigned char kat2455_entropyin[] = {
+ 0x0f, 0x91, 0x06, 0x80, 0x19, 0x6d, 0x5d, 0x1c, 0x45, 0x7d, 0xd0, 0x1e,
+ 0xfa, 0xcf, 0xbe, 0x4d, 0xa9, 0x82, 0x6c, 0xe9, 0x44, 0x01, 0xda, 0x10,
+ 0x95, 0x19, 0x24, 0x4f, 0xcb, 0xc9, 0xec, 0x0b, 0x84, 0x78, 0x53, 0x81,
+ 0x9d, 0xd7, 0x75, 0x54,
+};
+static const unsigned char kat2455_nonce[] = {0};
+static const unsigned char kat2455_persstr[] = {
+ 0xcf, 0x32, 0xcc, 0xd9, 0xf9, 0x2a, 0xc3, 0xb3, 0xc0, 0x38, 0x70, 0xec,
+ 0x3b, 0xfb, 0xbc, 0xf7, 0xaf, 0xab, 0xb9, 0xab, 0x77, 0x78, 0x76, 0xa8,
+ 0xc0, 0xc9, 0xa7, 0xfe, 0x52, 0x8e, 0xde, 0x33, 0x38, 0x24, 0x41, 0xf3,
+ 0xe4, 0x77, 0xc9, 0x49,
+};
+static const unsigned char kat2455_entropyinreseed[] = {
+ 0x94, 0x9a, 0x91, 0x9f, 0x13, 0x61, 0xf4, 0x6d, 0x0b, 0xc5, 0x6e, 0xe5,
+ 0x41, 0x77, 0xff, 0x6f, 0xb0, 0xa2, 0x7b, 0xe6, 0x27, 0xdb, 0xc0, 0x25,
+ 0xee, 0x6b, 0xf2, 0xee, 0x35, 0xc9, 0x2f, 0x87, 0x15, 0xfb, 0xdd, 0xb4,
+ 0x55, 0x7c, 0x31, 0x70,
+};
+static const unsigned char kat2455_addinreseed[] = {
+ 0x00, 0x05, 0xd3, 0xa7, 0x45, 0x01, 0xde, 0x95, 0x77, 0x3c, 0x1c, 0xaa,
+ 0x76, 0x0b, 0xa1, 0x53, 0x40, 0x2e, 0xa7, 0xb0, 0xb6, 0xcb, 0x42, 0xdb,
+ 0xc4, 0x53, 0x30, 0x0c, 0x5e, 0xa6, 0x18, 0xc0, 0x9a, 0x6c, 0x57, 0x26,
+ 0x43, 0x1a, 0xa5, 0x25,
+};
+static const unsigned char kat2455_addin0[] = {
+ 0x5e, 0xbd, 0xa5, 0x99, 0x1f, 0x11, 0x54, 0x0e, 0xf4, 0x7a, 0xbc, 0x3e,
+ 0x85, 0x3c, 0x74, 0x70, 0x7a, 0x06, 0xf5, 0x6c, 0x07, 0xd1, 0x9e, 0x9d,
+ 0x72, 0x59, 0xef, 0xb4, 0xac, 0x2c, 0x3c, 0x74, 0x0d, 0x7b, 0x4f, 0x17,
+ 0xc5, 0x76, 0x9b, 0x51,
+};
+static const unsigned char kat2455_addin1[] = {
+ 0x0b, 0xc4, 0x1c, 0x70, 0x5c, 0x7a, 0xc0, 0x13, 0xfe, 0x21, 0xae, 0xbb,
+ 0xf9, 0x4c, 0x05, 0xad, 0xe1, 0x29, 0xcf, 0x93, 0x58, 0xd6, 0x18, 0x13,
+ 0x0e, 0xf8, 0xe3, 0x81, 0x99, 0x70, 0xbc, 0xbf, 0x62, 0x36, 0x86, 0x38,
+ 0xc5, 0xb3, 0xb5, 0x38,
+};
+static const unsigned char kat2455_retbits[] = {
+ 0x01, 0x71, 0x2c, 0x87, 0x08, 0xde, 0xb1, 0x0b, 0x96, 0x04, 0x39, 0xa4,
+ 0x77, 0x79, 0x72, 0xe6, 0x4b, 0x99, 0xe1, 0x88, 0x9f, 0x9b, 0xc1, 0xec,
+ 0x90, 0xac, 0xad, 0x50, 0x90, 0xb8, 0x3d, 0x85, 0x50, 0x7d, 0x99, 0x83,
+ 0x91, 0x50, 0x14, 0x25, 0x52, 0x4b, 0x77, 0xcc, 0xbb, 0x08, 0xd6, 0x26,
+ 0x73, 0x63, 0x1b, 0x16, 0x18, 0x08, 0xad, 0x02, 0x1d, 0xdb, 0xab, 0x2d,
+ 0x8f, 0x9e, 0x2e, 0xe9,
+};
+static const struct drbg_kat_pr_false kat2455_t = {
+ 9, kat2455_entropyin, kat2455_nonce, kat2455_persstr,
+ kat2455_entropyinreseed, kat2455_addinreseed, kat2455_addin0,
+ kat2455_addin1, kat2455_retbits
+};
+static const struct drbg_kat kat2455 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2455_t
+};
+
+static const unsigned char kat2456_entropyin[] = {
+ 0xc9, 0x4f, 0xdd, 0x11, 0x91, 0x06, 0xb1, 0x10, 0xa2, 0xa5, 0x78, 0xec,
+ 0x24, 0xc2, 0x4a, 0xc4, 0x1b, 0x75, 0x55, 0x81, 0xcd, 0x53, 0xd8, 0xe1,
+ 0x94, 0x18, 0x68, 0x42, 0x94, 0x48, 0xfe, 0xc7, 0xf5, 0xf1, 0xc8, 0x96,
+ 0x8b, 0xe6, 0x52, 0x7a,
+};
+static const unsigned char kat2456_nonce[] = {0};
+static const unsigned char kat2456_persstr[] = {
+ 0x37, 0x4a, 0xd5, 0xf2, 0xf7, 0x4a, 0xc5, 0x6c, 0x6f, 0x6f, 0x83, 0x6e,
+ 0xc2, 0x1a, 0xf9, 0x6f, 0xf2, 0x48, 0x34, 0x01, 0x46, 0x44, 0x44, 0x3a,
+ 0xbf, 0x9c, 0x8a, 0x84, 0xa2, 0x84, 0xf8, 0x05, 0x00, 0x1a, 0x6f, 0x11,
+ 0x41, 0x23, 0x77, 0x37,
+};
+static const unsigned char kat2456_entropyinreseed[] = {
+ 0x3a, 0x1c, 0xb7, 0x2d, 0xc5, 0x4d, 0xac, 0xa4, 0x8c, 0x75, 0xb7, 0x06,
+ 0x45, 0x52, 0xe3, 0x7a, 0x6f, 0xc0, 0xa7, 0x01, 0xd1, 0x45, 0x79, 0x2f,
+ 0x56, 0xe0, 0xbf, 0x2b, 0x3a, 0xda, 0xe7, 0xed, 0x8a, 0x29, 0x8f, 0x3b,
+ 0x65, 0x7f, 0x22, 0xca,
+};
+static const unsigned char kat2456_addinreseed[] = {
+ 0xed, 0xce, 0xbf, 0x4d, 0x5f, 0x42, 0xa5, 0x93, 0xf3, 0x35, 0x96, 0x0f,
+ 0x77, 0x85, 0x3b, 0x1e, 0x83, 0x3b, 0xa9, 0xc2, 0x45, 0xa1, 0x3f, 0xe9,
+ 0xa6, 0x40, 0xb7, 0x8f, 0x1d, 0x83, 0x25, 0xe9, 0x20, 0x4c, 0xe7, 0xcb,
+ 0x48, 0x70, 0x3d, 0x2c,
+};
+static const unsigned char kat2456_addin0[] = {
+ 0x07, 0x84, 0xb4, 0xe8, 0x3a, 0x6a, 0xd2, 0x27, 0xb7, 0x9a, 0xfa, 0x86,
+ 0xc2, 0xf3, 0x9b, 0x98, 0xe9, 0x2d, 0x50, 0xfb, 0x68, 0x56, 0xf1, 0x27,
+ 0x44, 0xc4, 0xdc, 0xa7, 0x1b, 0xb3, 0x32, 0xdd, 0x15, 0x9d, 0x6a, 0x00,
+ 0x05, 0x07, 0xf4, 0x5d,
+};
+static const unsigned char kat2456_addin1[] = {
+ 0x83, 0xeb, 0x92, 0xe0, 0xdb, 0x4a, 0x25, 0x38, 0xff, 0x8b, 0x1d, 0x89,
+ 0x0c, 0xd9, 0x0f, 0x17, 0xb3, 0xa8, 0x8a, 0xb4, 0x05, 0x62, 0x9c, 0x3c,
+ 0x36, 0x31, 0xa6, 0xc3, 0xaf, 0xc5, 0xb7, 0x1d, 0x17, 0x20, 0x37, 0xe9,
+ 0xc3, 0x71, 0x1d, 0x9f,
+};
+static const unsigned char kat2456_retbits[] = {
+ 0xac, 0xf4, 0x83, 0x56, 0x72, 0x35, 0xea, 0x35, 0x44, 0xa0, 0x9a, 0xab,
+ 0x42, 0x3d, 0x74, 0x7f, 0x84, 0x15, 0xf0, 0xc9, 0x0e, 0x76, 0x2a, 0x6a,
+ 0x28, 0x55, 0x1c, 0xa9, 0x36, 0xf3, 0x28, 0x5c, 0xb3, 0x19, 0x0e, 0x10,
+ 0x11, 0xea, 0x43, 0xb8, 0xe5, 0xd1, 0x7d, 0x02, 0x26, 0x87, 0xf9, 0xd0,
+ 0x39, 0xd7, 0x7b, 0x0a, 0x11, 0x39, 0x62, 0xef, 0x3e, 0xb0, 0xe9, 0x1a,
+ 0x47, 0xdc, 0x21, 0x6c,
+};
+static const struct drbg_kat_pr_false kat2456_t = {
+ 10, kat2456_entropyin, kat2456_nonce, kat2456_persstr,
+ kat2456_entropyinreseed, kat2456_addinreseed, kat2456_addin0,
+ kat2456_addin1, kat2456_retbits
+};
+static const struct drbg_kat kat2456 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2456_t
+};
+
+static const unsigned char kat2457_entropyin[] = {
+ 0x24, 0xd8, 0xf5, 0xdc, 0x4c, 0x68, 0x1c, 0x12, 0x55, 0xc1, 0x6b, 0x27,
+ 0xa4, 0x51, 0x1e, 0x26, 0xcd, 0x1a, 0x8f, 0x32, 0xec, 0xb8, 0x31, 0xcb,
+ 0x01, 0x23, 0xbe, 0x09, 0x01, 0xe9, 0xed, 0x65, 0x30, 0xdc, 0xd7, 0x24,
+ 0xa0, 0x2d, 0x5e, 0x35,
+};
+static const unsigned char kat2457_nonce[] = {0};
+static const unsigned char kat2457_persstr[] = {
+ 0x29, 0x9a, 0x25, 0x05, 0x55, 0xe2, 0x82, 0x0b, 0xe1, 0xbc, 0xfb, 0xb5,
+ 0xd6, 0x38, 0x5f, 0xab, 0x29, 0x4a, 0x4a, 0xbd, 0x31, 0xc5, 0x50, 0xdf,
+ 0x88, 0x05, 0x38, 0x8e, 0x23, 0x8f, 0xe3, 0x06, 0xfa, 0xa0, 0x1e, 0xf1,
+ 0xe7, 0xbd, 0xf0, 0xfa,
+};
+static const unsigned char kat2457_entropyinreseed[] = {
+ 0x02, 0x6e, 0xa6, 0xd7, 0xcb, 0x2a, 0x3d, 0x49, 0xd4, 0xe4, 0xcd, 0xbe,
+ 0x0b, 0x80, 0x5a, 0xd7, 0xb4, 0xe8, 0xbc, 0xf6, 0xc5, 0x5d, 0x53, 0xf3,
+ 0x4e, 0x07, 0x72, 0x1a, 0xc2, 0xf5, 0xd5, 0x91, 0xa3, 0xe3, 0xf4, 0x6f,
+ 0xe3, 0x9d, 0x99, 0xb6,
+};
+static const unsigned char kat2457_addinreseed[] = {
+ 0x08, 0xc7, 0xc8, 0x45, 0x8c, 0x03, 0xd2, 0x28, 0xfc, 0x83, 0x27, 0x67,
+ 0x22, 0xc0, 0xd6, 0x00, 0x4f, 0xf7, 0x57, 0x0b, 0x63, 0x40, 0xe5, 0x18,
+ 0x37, 0xb8, 0x06, 0xc0, 0xa1, 0x2c, 0x0b, 0x56, 0x3f, 0x40, 0x7b, 0xa0,
+ 0xae, 0x45, 0xc5, 0xa7,
+};
+static const unsigned char kat2457_addin0[] = {
+ 0xaf, 0x51, 0x6e, 0x36, 0xcf, 0x50, 0x75, 0x00, 0x48, 0x7e, 0x92, 0x49,
+ 0x5b, 0x67, 0x4e, 0x4d, 0x8c, 0xf0, 0x8c, 0xb1, 0x97, 0xf5, 0xdb, 0x36,
+ 0x23, 0x23, 0x8c, 0xa6, 0x3e, 0x4c, 0xcf, 0x74, 0x6d, 0xb5, 0x69, 0x49,
+ 0x4d, 0x02, 0x91, 0xa5,
+};
+static const unsigned char kat2457_addin1[] = {
+ 0xec, 0xaf, 0x4f, 0x7f, 0x2c, 0x57, 0x3e, 0xb3, 0xad, 0xde, 0x25, 0x9c,
+ 0x25, 0xed, 0x2e, 0x8d, 0xc3, 0xaa, 0x08, 0x86, 0x3c, 0x78, 0x96, 0x5c,
+ 0xaa, 0x26, 0xbc, 0x86, 0x6f, 0xad, 0x1f, 0x2f, 0x3d, 0x4d, 0x0a, 0x72,
+ 0xea, 0xf0, 0x17, 0x26,
+};
+static const unsigned char kat2457_retbits[] = {
+ 0x70, 0x80, 0x20, 0x5a, 0x64, 0x37, 0x89, 0x75, 0xcf, 0x2d, 0x81, 0x15,
+ 0x9c, 0x2f, 0x48, 0xac, 0x7e, 0xd3, 0xec, 0xf3, 0x66, 0xe4, 0xef, 0x42,
+ 0xe2, 0x64, 0x7a, 0x1b, 0xc0, 0x59, 0x8c, 0x9e, 0xe4, 0xa4, 0x09, 0x68,
+ 0xf3, 0xd3, 0x4c, 0xcf, 0xc5, 0x53, 0xb9, 0x74, 0x82, 0xcc, 0x27, 0x66,
+ 0x87, 0x60, 0xd5, 0x21, 0xd0, 0x9b, 0xf4, 0x0d, 0xbb, 0x4e, 0xd8, 0xdb,
+ 0x80, 0xf0, 0xc6, 0x40,
+};
+static const struct drbg_kat_pr_false kat2457_t = {
+ 11, kat2457_entropyin, kat2457_nonce, kat2457_persstr,
+ kat2457_entropyinreseed, kat2457_addinreseed, kat2457_addin0,
+ kat2457_addin1, kat2457_retbits
+};
+static const struct drbg_kat kat2457 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2457_t
+};
+
+static const unsigned char kat2458_entropyin[] = {
+ 0xce, 0xfa, 0xe9, 0xa6, 0x1b, 0xaa, 0x69, 0xa4, 0xd4, 0xc7, 0x0b, 0xa1,
+ 0x21, 0x67, 0x0b, 0x16, 0x45, 0x46, 0xe3, 0xcf, 0xe2, 0x62, 0x4f, 0x70,
+ 0xa2, 0xe7, 0x7e, 0x00, 0xf6, 0x2d, 0x44, 0x31, 0xa2, 0x69, 0xf5, 0x72,
+ 0x69, 0xb8, 0x73, 0x37,
+};
+static const unsigned char kat2458_nonce[] = {0};
+static const unsigned char kat2458_persstr[] = {
+ 0x15, 0xb7, 0xe8, 0xe9, 0x11, 0xb2, 0x24, 0x1a, 0x9d, 0x30, 0x01, 0xc7,
+ 0xf6, 0x49, 0xca, 0x0a, 0xce, 0x3b, 0x62, 0xdd, 0x0e, 0xc2, 0x6a, 0x11,
+ 0xad, 0x86, 0x76, 0xf6, 0x13, 0xb2, 0xf6, 0x88, 0x2e, 0x46, 0x57, 0x89,
+ 0x34, 0x30, 0xbd, 0x5a,
+};
+static const unsigned char kat2458_entropyinreseed[] = {
+ 0xec, 0x20, 0x18, 0x3b, 0x60, 0x3a, 0xac, 0xe2, 0x0a, 0x57, 0xe7, 0x04,
+ 0xea, 0x5f, 0x8e, 0xfe, 0x06, 0xbb, 0xb0, 0x94, 0x77, 0xca, 0x30, 0x5f,
+ 0x3c, 0xd8, 0x5d, 0xfe, 0x30, 0xcb, 0xd2, 0xec, 0x81, 0x72, 0xb7, 0xd5,
+ 0x20, 0x85, 0x79, 0xcb,
+};
+static const unsigned char kat2458_addinreseed[] = {
+ 0x3c, 0xab, 0xd3, 0x7c, 0x7b, 0xf1, 0x02, 0x1b, 0xbc, 0x0b, 0x83, 0xce,
+ 0xa5, 0x6e, 0x18, 0xf6, 0xb5, 0xf9, 0x9f, 0x95, 0x57, 0xd4, 0x8b, 0x62,
+ 0x6f, 0x0a, 0xb7, 0x10, 0x34, 0xd7, 0x47, 0x8e, 0x08, 0xa6, 0x8b, 0x72,
+ 0x1d, 0xae, 0xc8, 0x58,
+};
+static const unsigned char kat2458_addin0[] = {
+ 0x82, 0x34, 0xdf, 0x65, 0x89, 0x76, 0x31, 0xff, 0x8c, 0x13, 0x93, 0x78,
+ 0xd8, 0x02, 0xd8, 0x4a, 0x1d, 0xb7, 0x3c, 0x1a, 0x2f, 0x2e, 0x1b, 0xb5,
+ 0xe6, 0xbf, 0x05, 0x62, 0xaa, 0x2c, 0x1e, 0x91, 0xd2, 0x0d, 0xa9, 0x7e,
+ 0x63, 0x8d, 0x78, 0x20,
+};
+static const unsigned char kat2458_addin1[] = {
+ 0x14, 0xeb, 0x87, 0xa5, 0xbb, 0xae, 0x31, 0x9b, 0x63, 0xd7, 0xf4, 0x60,
+ 0x19, 0x45, 0x76, 0x3e, 0x47, 0xdf, 0x63, 0xdb, 0x18, 0xa0, 0xd8, 0x7d,
+ 0x7f, 0xf3, 0xfc, 0x6c, 0xba, 0x87, 0xf2, 0x6c, 0xaa, 0x7f, 0x7d, 0x5f,
+ 0xeb, 0xee, 0xfe, 0x15,
+};
+static const unsigned char kat2458_retbits[] = {
+ 0x7b, 0x0e, 0xaf, 0x29, 0x74, 0x50, 0x90, 0x82, 0x00, 0x07, 0x31, 0xe2,
+ 0x5a, 0xa4, 0x42, 0x74, 0x5b, 0x88, 0xe4, 0x1b, 0xb5, 0x54, 0xc9, 0xe8,
+ 0x4c, 0xf8, 0xf9, 0xbf, 0x63, 0x71, 0x7e, 0xa5, 0x56, 0x87, 0x6f, 0x74,
+ 0x66, 0x6c, 0xe5, 0x36, 0x8a, 0x2f, 0x30, 0x24, 0x14, 0x9e, 0x7c, 0x55,
+ 0x74, 0xcf, 0xfc, 0xb6, 0xcd, 0xf8, 0x98, 0x2d, 0x11, 0xc6, 0xd7, 0xc2,
+ 0xa1, 0x3d, 0x7e, 0xe9,
+};
+static const struct drbg_kat_pr_false kat2458_t = {
+ 12, kat2458_entropyin, kat2458_nonce, kat2458_persstr,
+ kat2458_entropyinreseed, kat2458_addinreseed, kat2458_addin0,
+ kat2458_addin1, kat2458_retbits
+};
+static const struct drbg_kat kat2458 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2458_t
+};
+
+static const unsigned char kat2459_entropyin[] = {
+ 0xc8, 0x77, 0xab, 0x5d, 0x00, 0x72, 0x91, 0x81, 0x81, 0x94, 0x2d, 0x3c,
+ 0xf1, 0xb3, 0x2d, 0x2f, 0x62, 0x14, 0xb5, 0x9a, 0x35, 0xa7, 0x20, 0xa0,
+ 0x9c, 0xf6, 0x9a, 0xc1, 0xd9, 0xdb, 0xa8, 0xca, 0x4b, 0x0d, 0x14, 0xda,
+ 0x8e, 0xf7, 0xbe, 0x2c,
+};
+static const unsigned char kat2459_nonce[] = {0};
+static const unsigned char kat2459_persstr[] = {
+ 0xce, 0x31, 0x8e, 0x6f, 0x05, 0xb2, 0xb1, 0x03, 0x1f, 0x2f, 0x90, 0x82,
+ 0x82, 0xcf, 0x36, 0x10, 0xe6, 0x06, 0x6e, 0xb0, 0xac, 0x86, 0xa2, 0x92,
+ 0x9d, 0xd4, 0xc0, 0xd3, 0xdb, 0x47, 0xeb, 0xa8, 0xfe, 0xce, 0xc9, 0x0f,
+ 0xfa, 0x69, 0x3b, 0xfc,
+};
+static const unsigned char kat2459_entropyinreseed[] = {
+ 0x11, 0x2a, 0xbc, 0x16, 0x8f, 0x5b, 0xe2, 0xfb, 0x04, 0x4c, 0x7e, 0x4f,
+ 0x01, 0x4c, 0xd5, 0x8d, 0xd3, 0xa6, 0xc7, 0xbf, 0x21, 0xfb, 0x9d, 0x41,
+ 0xe0, 0x09, 0x2d, 0x39, 0x01, 0x57, 0xcd, 0x04, 0x98, 0xe5, 0x40, 0x0d,
+ 0xcd, 0x6c, 0x28, 0x16,
+};
+static const unsigned char kat2459_addinreseed[] = {
+ 0x4c, 0x7f, 0xe1, 0xb1, 0xf1, 0xb8, 0x96, 0xfe, 0xfb, 0x2d, 0xb8, 0xcd,
+ 0xb3, 0x31, 0xf8, 0xe9, 0x12, 0x55, 0x47, 0x4c, 0xcc, 0x25, 0x11, 0xa3,
+ 0x0d, 0x04, 0x6c, 0x2d, 0xe3, 0x58, 0x14, 0x42, 0xe6, 0xd1, 0x79, 0x33,
+ 0x81, 0xc1, 0xb1, 0xe6,
+};
+static const unsigned char kat2459_addin0[] = {
+ 0xfe, 0xc1, 0xce, 0x62, 0xc8, 0xf8, 0xbf, 0x13, 0xe2, 0x1c, 0x20, 0xfd,
+ 0x64, 0x52, 0x66, 0x34, 0x98, 0xf8, 0xf8, 0x08, 0x13, 0xb0, 0xf8, 0xf5,
+ 0xf6, 0xbd, 0xd1, 0xdf, 0x3f, 0xc1, 0xad, 0x89, 0x4c, 0x86, 0xfa, 0x98,
+ 0x7a, 0x58, 0xbf, 0x2c,
+};
+static const unsigned char kat2459_addin1[] = {
+ 0xcd, 0x07, 0x70, 0xca, 0x92, 0x4a, 0x00, 0xf7, 0xe1, 0x03, 0xab, 0x07,
+ 0xdf, 0xd3, 0xd0, 0x4d, 0xc1, 0xa8, 0x8a, 0x7a, 0x2e, 0x43, 0x43, 0x86,
+ 0xf7, 0x9d, 0x77, 0x29, 0x78, 0x1f, 0xb1, 0x97, 0x84, 0x50, 0xdc, 0x37,
+ 0x1a, 0x0b, 0x00, 0xf1,
+};
+static const unsigned char kat2459_retbits[] = {
+ 0x74, 0x18, 0xbd, 0xcb, 0x44, 0xc4, 0x5c, 0xbe, 0x14, 0xc2, 0xb3, 0xa4,
+ 0x00, 0x91, 0x99, 0xb5, 0xa8, 0x69, 0x42, 0x62, 0x41, 0xc5, 0xe9, 0xb3,
+ 0xa2, 0x82, 0xd6, 0x19, 0x6c, 0xd6, 0x67, 0x1f, 0x0b, 0x4c, 0x32, 0x01,
+ 0x13, 0x59, 0x36, 0xeb, 0xfb, 0x79, 0x30, 0xa3, 0xfb, 0x54, 0xfb, 0x6a,
+ 0xf1, 0x5c, 0x2d, 0x15, 0x26, 0x8e, 0x25, 0x35, 0xd7, 0xe0, 0x15, 0x7b,
+ 0x7a, 0x7e, 0x34, 0xde,
+};
+static const struct drbg_kat_pr_false kat2459_t = {
+ 13, kat2459_entropyin, kat2459_nonce, kat2459_persstr,
+ kat2459_entropyinreseed, kat2459_addinreseed, kat2459_addin0,
+ kat2459_addin1, kat2459_retbits
+};
+static const struct drbg_kat kat2459 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2459_t
+};
+
+static const unsigned char kat2460_entropyin[] = {
+ 0x59, 0xc1, 0xec, 0x4d, 0x0a, 0xbe, 0x87, 0xcc, 0x1f, 0x1c, 0x0c, 0xad,
+ 0xdd, 0x94, 0xb0, 0x66, 0x97, 0xb1, 0x70, 0xd0, 0x6b, 0x2c, 0x15, 0x75,
+ 0x62, 0xc4, 0x3a, 0xd1, 0x0a, 0x3c, 0xbd, 0x5c, 0x3b, 0x4b, 0xe3, 0x35,
+ 0xbc, 0x2b, 0x50, 0xcc,
+};
+static const unsigned char kat2460_nonce[] = {0};
+static const unsigned char kat2460_persstr[] = {
+ 0xfb, 0xec, 0x1b, 0x40, 0x89, 0x78, 0xe6, 0x7e, 0xe0, 0x75, 0xa7, 0xb7,
+ 0x7b, 0x9f, 0x36, 0xd0, 0xe6, 0x22, 0xae, 0x3e, 0x65, 0x8a, 0xd0, 0x9e,
+ 0x09, 0xad, 0x2d, 0x48, 0x1e, 0xf3, 0x1e, 0x47, 0x27, 0xa3, 0xbf, 0xc8,
+ 0xe2, 0x25, 0x66, 0x4a,
+};
+static const unsigned char kat2460_entropyinreseed[] = {
+ 0xae, 0xfc, 0xc4, 0x7d, 0x5e, 0x11, 0x9e, 0x32, 0x81, 0x95, 0xa1, 0xf3,
+ 0x22, 0x65, 0x4e, 0xc0, 0xff, 0x4c, 0x9a, 0x74, 0xe2, 0xdb, 0xd3, 0x03,
+ 0x18, 0x16, 0xfc, 0xa0, 0x11, 0x8b, 0xf2, 0x20, 0x98, 0xdb, 0x30, 0x93,
+ 0x3b, 0x9c, 0x09, 0xa7,
+};
+static const unsigned char kat2460_addinreseed[] = {
+ 0x13, 0x80, 0xe2, 0x0a, 0x63, 0x9d, 0x38, 0xf2, 0xf7, 0x2b, 0x7b, 0x00,
+ 0x40, 0x0f, 0x24, 0xfb, 0xc2, 0x71, 0x59, 0xfb, 0x52, 0xf8, 0x90, 0x23,
+ 0x42, 0x9b, 0x45, 0xc3, 0xd8, 0x22, 0xc3, 0x36, 0x34, 0xb1, 0x9d, 0x4b,
+ 0xa9, 0xb6, 0x20, 0x4c,
+};
+static const unsigned char kat2460_addin0[] = {
+ 0x5f, 0x72, 0x05, 0xd8, 0x7d, 0x0a, 0x98, 0x68, 0x23, 0x4e, 0xeb, 0x8c,
+ 0x4a, 0xe4, 0x2c, 0xd4, 0x7c, 0x03, 0x98, 0x3b, 0x77, 0xdf, 0xaa, 0x84,
+ 0x63, 0x7b, 0x40, 0x80, 0xdf, 0x13, 0x44, 0x43, 0x88, 0x9a, 0xa0, 0x42,
+ 0xc7, 0x7b, 0x7f, 0x78,
+};
+static const unsigned char kat2460_addin1[] = {
+ 0xfb, 0x6d, 0x48, 0x6f, 0xd7, 0x58, 0x60, 0x36, 0x00, 0x3f, 0xfc, 0xe8,
+ 0x86, 0x5e, 0x47, 0x94, 0x98, 0xfe, 0x53, 0x0f, 0x9a, 0xe2, 0x9e, 0x01,
+ 0xf9, 0x8d, 0x4a, 0x2f, 0x7b, 0x66, 0x5b, 0x6a, 0x93, 0x29, 0x45, 0x0b,
+ 0x0f, 0xb6, 0xff, 0xb1,
+};
+static const unsigned char kat2460_retbits[] = {
+ 0x0d, 0x3d, 0x8c, 0x9f, 0xf8, 0x6f, 0xb5, 0x6b, 0xf3, 0x62, 0x78, 0x7f,
+ 0x47, 0x4f, 0x83, 0x80, 0x66, 0xfa, 0x74, 0x83, 0xa9, 0x58, 0xc2, 0x3f,
+ 0x75, 0x2b, 0xe6, 0xe2, 0x1c, 0xb4, 0x2f, 0xee, 0x11, 0xd8, 0xdc, 0x53,
+ 0x39, 0x65, 0x08, 0xf9, 0xfd, 0x51, 0x22, 0xd0, 0x4e, 0x41, 0xd0, 0xe0,
+ 0xc9, 0x49, 0xd5, 0x0c, 0x46, 0xd5, 0x1d, 0x0a, 0xc8, 0x24, 0xb6, 0xf4,
+ 0x6b, 0x5d, 0xf0, 0x88,
+};
+static const struct drbg_kat_pr_false kat2460_t = {
+ 14, kat2460_entropyin, kat2460_nonce, kat2460_persstr,
+ kat2460_entropyinreseed, kat2460_addinreseed, kat2460_addin0,
+ kat2460_addin1, kat2460_retbits
+};
+static const struct drbg_kat kat2460 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2460_t
+};
+
+static const unsigned char kat2461_entropyin[] = {
+ 0x21, 0xa5, 0x3c, 0x17, 0x66, 0x1a, 0xed, 0x92, 0x95, 0x0f, 0xf4, 0xfd,
+ 0xf4, 0xab, 0x8f, 0xa5, 0xdc, 0x44, 0xe9, 0x9f, 0x88, 0xaa, 0x95, 0x3e,
+ 0x19, 0xb4, 0xbe, 0x78, 0xba, 0x75, 0xf2, 0x67, 0xf6, 0x70, 0x34, 0xa1,
+ 0x56, 0x6e, 0x83, 0x3e,
+};
+static const unsigned char kat2461_nonce[] = {0};
+static const unsigned char kat2461_persstr[] = {0};
+static const unsigned char kat2461_entropyinreseed[] = {
+ 0x1e, 0xcb, 0x61, 0xa5, 0xdd, 0x70, 0xb1, 0x67, 0xd6, 0x55, 0x77, 0x41,
+ 0x5c, 0x2f, 0xb8, 0x12, 0xea, 0x20, 0xb3, 0x25, 0xd2, 0xb5, 0x31, 0x58,
+ 0x69, 0x7c, 0xf9, 0x7c, 0x81, 0xd7, 0x9e, 0x84, 0x99, 0xf7, 0x45, 0x40,
+ 0x13, 0x7f, 0xd1, 0xe1,
+};
+static const unsigned char kat2461_addinreseed[] = {0};
+static const unsigned char kat2461_addin0[] = {0};
+static const unsigned char kat2461_addin1[] = {0};
+static const unsigned char kat2461_retbits[] = {
+ 0x11, 0xa0, 0x7b, 0x22, 0x31, 0x91, 0x6f, 0x99, 0xc3, 0xf7, 0xa0, 0x7d,
+ 0x14, 0x51, 0xab, 0x94, 0x0d, 0x2d, 0x66, 0x3c, 0x97, 0x29, 0xc1, 0x85,
+ 0x71, 0x70, 0xa3, 0x16, 0x55, 0x07, 0x8a, 0x82, 0x74, 0xec, 0x4a, 0x90,
+ 0x31, 0xbc, 0xfd, 0x2a, 0xbb, 0x1a, 0xe5, 0x81, 0x3f, 0x49, 0x70, 0xa7,
+ 0x16, 0xe3, 0xd1, 0x42, 0x87, 0xe4, 0xf2, 0x1e, 0x01, 0x32, 0x3f, 0xdf,
+ 0xff, 0xb7, 0x61, 0x87,
+};
+static const struct drbg_kat_pr_false kat2461_t = {
+ 0, kat2461_entropyin, kat2461_nonce, kat2461_persstr,
+ kat2461_entropyinreseed, kat2461_addinreseed, kat2461_addin0,
+ kat2461_addin1, kat2461_retbits
+};
+static const struct drbg_kat kat2461 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2461_t
+};
+
+static const unsigned char kat2462_entropyin[] = {
+ 0x85, 0x1a, 0x84, 0x9e, 0x0a, 0xb6, 0xc0, 0x0d, 0x14, 0x71, 0x88, 0xd2,
+ 0xe8, 0xcf, 0x01, 0xbc, 0x50, 0xd3, 0x4a, 0xdf, 0x22, 0xec, 0x81, 0x0c,
+ 0xa9, 0x68, 0x06, 0x02, 0x81, 0xf8, 0xfa, 0xa6, 0x43, 0x06, 0x42, 0x81,
+ 0xe3, 0xfa, 0x97, 0xcb,
+};
+static const unsigned char kat2462_nonce[] = {0};
+static const unsigned char kat2462_persstr[] = {0};
+static const unsigned char kat2462_entropyinreseed[] = {
+ 0x9b, 0xf4, 0xc8, 0xd0, 0xa8, 0x98, 0x86, 0x5c, 0xc1, 0xcb, 0x0d, 0xe2,
+ 0x78, 0xfc, 0xcb, 0x75, 0x62, 0x83, 0xe6, 0xab, 0xa0, 0x20, 0xa4, 0x84,
+ 0x87, 0x6d, 0x27, 0x9e, 0x41, 0x31, 0x05, 0x58, 0x15, 0x9f, 0xdb, 0x0a,
+ 0x3c, 0x88, 0xf7, 0xac,
+};
+static const unsigned char kat2462_addinreseed[] = {0};
+static const unsigned char kat2462_addin0[] = {0};
+static const unsigned char kat2462_addin1[] = {0};
+static const unsigned char kat2462_retbits[] = {
+ 0xf7, 0xd7, 0x0a, 0xd6, 0x77, 0x67, 0x85, 0x49, 0x7f, 0x7d, 0xf3, 0xac,
+ 0xfc, 0x24, 0x21, 0xb1, 0x4e, 0x4e, 0x76, 0xb6, 0x45, 0x85, 0xaf, 0xdd,
+ 0xef, 0xf3, 0xdc, 0x73, 0x9b, 0x85, 0x1c, 0xaf, 0x73, 0xb8, 0x55, 0x03,
+ 0x39, 0x9b, 0x08, 0x15, 0x3e, 0x6d, 0xf7, 0x3b, 0xdb, 0x0a, 0xa3, 0xa8,
+ 0x45, 0xe2, 0xcd, 0xfe, 0xdd, 0x72, 0x40, 0x93, 0xb9, 0x47, 0x8f, 0x54,
+ 0xaf, 0xd1, 0xad, 0xfb,
+};
+static const struct drbg_kat_pr_false kat2462_t = {
+ 1, kat2462_entropyin, kat2462_nonce, kat2462_persstr,
+ kat2462_entropyinreseed, kat2462_addinreseed, kat2462_addin0,
+ kat2462_addin1, kat2462_retbits
+};
+static const struct drbg_kat kat2462 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2462_t
+};
+
+static const unsigned char kat2463_entropyin[] = {
+ 0x64, 0x8f, 0x7e, 0xff, 0xb3, 0x31, 0xec, 0x30, 0xce, 0xd4, 0x03, 0x98,
+ 0xcc, 0xf2, 0x34, 0x3e, 0xaa, 0xc8, 0x85, 0xc4, 0x58, 0xba, 0x7a, 0xb7,
+ 0x0b, 0x9f, 0x0f, 0xaa, 0x91, 0x80, 0xa9, 0xa0, 0xe3, 0x4a, 0x13, 0x0b,
+ 0x42, 0x2c, 0x56, 0x97,
+};
+static const unsigned char kat2463_nonce[] = {0};
+static const unsigned char kat2463_persstr[] = {0};
+static const unsigned char kat2463_entropyinreseed[] = {
+ 0xcd, 0x13, 0xb1, 0xc9, 0xd9, 0x5f, 0x25, 0x84, 0xf8, 0x55, 0x01, 0xad,
+ 0xbf, 0x5d, 0xcf, 0x1e, 0x78, 0xc2, 0xd3, 0x43, 0x4a, 0xd6, 0x24, 0x5d,
+ 0x3b, 0xae, 0x2a, 0xa4, 0xd1, 0x52, 0x00, 0xe6, 0xf3, 0x4b, 0xab, 0xe7,
+ 0x63, 0x41, 0x58, 0x49,
+};
+static const unsigned char kat2463_addinreseed[] = {0};
+static const unsigned char kat2463_addin0[] = {0};
+static const unsigned char kat2463_addin1[] = {0};
+static const unsigned char kat2463_retbits[] = {
+ 0x67, 0x82, 0x3e, 0x4a, 0x9f, 0xc6, 0xff, 0x5f, 0x2a, 0x79, 0x85, 0x34,
+ 0x1b, 0xae, 0xf1, 0x6d, 0xa4, 0x6e, 0xc3, 0x35, 0x44, 0x5d, 0xa1, 0x9f,
+ 0xce, 0xe9, 0x65, 0x0f, 0xc0, 0x2c, 0xb7, 0x51, 0x2e, 0xcf, 0x47, 0xf8,
+ 0x91, 0x19, 0x75, 0xa4, 0xa9, 0xd3, 0x9f, 0xe8, 0x49, 0x98, 0x38, 0x86,
+ 0x23, 0x05, 0xf1, 0xe5, 0x54, 0xff, 0x80, 0x21, 0xab, 0xe5, 0x0d, 0x9b,
+ 0x66, 0x08, 0x8c, 0x9b,
+};
+static const struct drbg_kat_pr_false kat2463_t = {
+ 2, kat2463_entropyin, kat2463_nonce, kat2463_persstr,
+ kat2463_entropyinreseed, kat2463_addinreseed, kat2463_addin0,
+ kat2463_addin1, kat2463_retbits
+};
+static const struct drbg_kat kat2463 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2463_t
+};
+
+static const unsigned char kat2464_entropyin[] = {
+ 0x97, 0x45, 0x70, 0x0e, 0x52, 0x2a, 0xca, 0xc8, 0x00, 0x2f, 0x7d, 0x18,
+ 0x30, 0x84, 0x2a, 0xee, 0x78, 0x8d, 0xe5, 0xf1, 0x61, 0x2d, 0xcf, 0x2b,
+ 0xf8, 0xff, 0xe9, 0x4e, 0x02, 0xb1, 0xd8, 0xa3, 0x54, 0xa5, 0x52, 0x8f,
+ 0x7e, 0x01, 0x14, 0x07,
+};
+static const unsigned char kat2464_nonce[] = {0};
+static const unsigned char kat2464_persstr[] = {0};
+static const unsigned char kat2464_entropyinreseed[] = {
+ 0x59, 0xc8, 0xa3, 0xcf, 0x8e, 0x09, 0xb4, 0x7f, 0x6e, 0xdb, 0xae, 0x25,
+ 0x19, 0x72, 0xfd, 0x22, 0x58, 0x62, 0x67, 0x27, 0x32, 0xd1, 0xa7, 0xc0,
+ 0x67, 0x85, 0xc5, 0x84, 0xf7, 0x39, 0x54, 0x5f, 0xfb, 0x65, 0xfb, 0xd3,
+ 0x93, 0x65, 0xcc, 0x4e,
+};
+static const unsigned char kat2464_addinreseed[] = {0};
+static const unsigned char kat2464_addin0[] = {0};
+static const unsigned char kat2464_addin1[] = {0};
+static const unsigned char kat2464_retbits[] = {
+ 0x92, 0x59, 0xed, 0x9b, 0xd8, 0x44, 0xcb, 0x40, 0x1c, 0x8e, 0x55, 0x45,
+ 0x9e, 0x51, 0xe1, 0x60, 0x12, 0x6d, 0xd2, 0xdb, 0xe6, 0x4a, 0x07, 0x60,
+ 0x61, 0x01, 0x86, 0x1f, 0x1d, 0xc9, 0xff, 0x20, 0xbe, 0x87, 0xeb, 0xc6,
+ 0x3a, 0x0d, 0xf0, 0x88, 0x4f, 0x4b, 0x39, 0xcb, 0x1d, 0x4a, 0xc6, 0xba,
+ 0x26, 0xdf, 0x50, 0xd9, 0x83, 0x86, 0x2e, 0x4d, 0x27, 0xe5, 0x70, 0xb2,
+ 0xd5, 0x03, 0xbe, 0xcf,
+};
+static const struct drbg_kat_pr_false kat2464_t = {
+ 3, kat2464_entropyin, kat2464_nonce, kat2464_persstr,
+ kat2464_entropyinreseed, kat2464_addinreseed, kat2464_addin0,
+ kat2464_addin1, kat2464_retbits
+};
+static const struct drbg_kat kat2464 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2464_t
+};
+
+static const unsigned char kat2465_entropyin[] = {
+ 0x4a, 0xa7, 0xe8, 0x2f, 0x47, 0xfe, 0xb4, 0x9a, 0x46, 0x4f, 0x68, 0x97,
+ 0x8c, 0x8f, 0x0a, 0x8c, 0x2f, 0xc4, 0x08, 0x49, 0x6b, 0xa9, 0xff, 0x60,
+ 0xb2, 0xa2, 0x30, 0xab, 0xea, 0x8b, 0x90, 0xb9, 0x4e, 0x55, 0x17, 0x9b,
+ 0x73, 0xd9, 0xe2, 0x35,
+};
+static const unsigned char kat2465_nonce[] = {0};
+static const unsigned char kat2465_persstr[] = {0};
+static const unsigned char kat2465_entropyinreseed[] = {
+ 0x42, 0x9a, 0x77, 0xd1, 0x5c, 0x18, 0x41, 0xb8, 0xe6, 0xd6, 0x51, 0x07,
+ 0x99, 0xc4, 0x11, 0x89, 0x53, 0x1b, 0x74, 0x9f, 0xff, 0xc4, 0xc1, 0x1e,
+ 0x90, 0xef, 0xb8, 0xf3, 0x7b, 0x71, 0x8e, 0x25, 0xe3, 0x46, 0x0c, 0x4b,
+ 0xda, 0xc6, 0xe2, 0xc9,
+};
+static const unsigned char kat2465_addinreseed[] = {0};
+static const unsigned char kat2465_addin0[] = {0};
+static const unsigned char kat2465_addin1[] = {0};
+static const unsigned char kat2465_retbits[] = {
+ 0xe4, 0xd5, 0x8c, 0x5c, 0xaa, 0x32, 0xfd, 0x90, 0xd1, 0xd6, 0xc2, 0x5a,
+ 0xe1, 0x4f, 0x3e, 0x56, 0x8c, 0x51, 0xa6, 0xea, 0x6f, 0x05, 0x0c, 0x1e,
+ 0x57, 0x50, 0x89, 0x69, 0x4d, 0xc3, 0x2d, 0x7a, 0xe6, 0x9f, 0xc0, 0x27,
+ 0xa1, 0xf3, 0xd4, 0x6e, 0x18, 0x80, 0xec, 0xc9, 0xaa, 0xae, 0x57, 0x22,
+ 0xda, 0x47, 0x96, 0x9d, 0xfc, 0x67, 0xd4, 0xe0, 0x2d, 0xc2, 0x50, 0xad,
+ 0xf2, 0xa3, 0xfc, 0x2b,
+};
+static const struct drbg_kat_pr_false kat2465_t = {
+ 4, kat2465_entropyin, kat2465_nonce, kat2465_persstr,
+ kat2465_entropyinreseed, kat2465_addinreseed, kat2465_addin0,
+ kat2465_addin1, kat2465_retbits
+};
+static const struct drbg_kat kat2465 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2465_t
+};
+
+static const unsigned char kat2466_entropyin[] = {
+ 0x7d, 0x69, 0xa7, 0x9f, 0x3c, 0xca, 0x61, 0x9d, 0x46, 0x79, 0xe7, 0x3f,
+ 0x6e, 0xc7, 0x6a, 0x72, 0x84, 0x58, 0xee, 0x24, 0xbd, 0xce, 0xad, 0x4f,
+ 0x26, 0x73, 0x20, 0x67, 0x70, 0x39, 0x30, 0x45, 0xdf, 0xb1, 0x32, 0x58,
+ 0x2d, 0x51, 0x7d, 0xa4,
+};
+static const unsigned char kat2466_nonce[] = {0};
+static const unsigned char kat2466_persstr[] = {0};
+static const unsigned char kat2466_entropyinreseed[] = {
+ 0xf7, 0xa7, 0x62, 0x4e, 0xb8, 0xf9, 0xa1, 0x71, 0x47, 0xb6, 0x61, 0x64,
+ 0x42, 0xf3, 0x5c, 0x55, 0xba, 0x3b, 0x1e, 0xca, 0xcc, 0x4a, 0x9a, 0x51,
+ 0x67, 0xeb, 0xa1, 0xe7, 0x2c, 0xa7, 0xdf, 0xcb, 0x43, 0xcd, 0xb3, 0xe1,
+ 0x45, 0x8f, 0x40, 0x63,
+};
+static const unsigned char kat2466_addinreseed[] = {0};
+static const unsigned char kat2466_addin0[] = {0};
+static const unsigned char kat2466_addin1[] = {0};
+static const unsigned char kat2466_retbits[] = {
+ 0x20, 0xd6, 0x90, 0x4e, 0x05, 0x0e, 0xcc, 0x44, 0xbf, 0x9b, 0x76, 0xf1,
+ 0x2c, 0x20, 0x38, 0xc5, 0x7a, 0xe8, 0xb4, 0x04, 0x16, 0x8b, 0x51, 0x19,
+ 0xfc, 0x72, 0xad, 0xe0, 0xe8, 0x2a, 0x0c, 0x97, 0xa6, 0xc1, 0x7c, 0xda,
+ 0x3a, 0x3d, 0x5c, 0x3e, 0xf8, 0x54, 0x0c, 0x17, 0xdf, 0x5e, 0x41, 0xa9,
+ 0x80, 0x57, 0x05, 0x5f, 0xea, 0x22, 0x10, 0x60, 0x9d, 0x48, 0xe1, 0xa8,
+ 0x05, 0xc0, 0xc1, 0x1a,
+};
+static const struct drbg_kat_pr_false kat2466_t = {
+ 5, kat2466_entropyin, kat2466_nonce, kat2466_persstr,
+ kat2466_entropyinreseed, kat2466_addinreseed, kat2466_addin0,
+ kat2466_addin1, kat2466_retbits
+};
+static const struct drbg_kat kat2466 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2466_t
+};
+
+static const unsigned char kat2467_entropyin[] = {
+ 0x1f, 0xce, 0x32, 0xe3, 0xbb, 0xf1, 0xbd, 0x9e, 0xdc, 0x5a, 0x8e, 0x2e,
+ 0x6f, 0x6e, 0xfb, 0xe6, 0xb5, 0x52, 0xad, 0xee, 0x98, 0xfe, 0xad, 0x05,
+ 0x00, 0xf3, 0x1b, 0xe8, 0x5a, 0x0a, 0x04, 0xeb, 0x9f, 0x52, 0x21, 0x35,
+ 0x8e, 0xcf, 0xcc, 0xeb,
+};
+static const unsigned char kat2467_nonce[] = {0};
+static const unsigned char kat2467_persstr[] = {0};
+static const unsigned char kat2467_entropyinreseed[] = {
+ 0x4c, 0xd4, 0xd5, 0xfc, 0x1a, 0x9a, 0x91, 0x33, 0xc4, 0x60, 0x04, 0xc1,
+ 0xae, 0xc7, 0xd8, 0x8e, 0x70, 0x26, 0x73, 0xef, 0xf0, 0x7b, 0x68, 0x19,
+ 0x07, 0xbf, 0xa6, 0x43, 0x73, 0x6d, 0xd0, 0x2e, 0x63, 0x09, 0xfb, 0xca,
+ 0x1d, 0xc7, 0x61, 0x1a,
+};
+static const unsigned char kat2467_addinreseed[] = {0};
+static const unsigned char kat2467_addin0[] = {0};
+static const unsigned char kat2467_addin1[] = {0};
+static const unsigned char kat2467_retbits[] = {
+ 0xc5, 0x33, 0x3e, 0x4b, 0x92, 0xd9, 0x70, 0x0a, 0x44, 0x54, 0x8a, 0x02,
+ 0xdc, 0x83, 0x93, 0xb3, 0xeb, 0x65, 0xd7, 0xf7, 0x68, 0xb3, 0x29, 0x9f,
+ 0xa0, 0x37, 0x8b, 0x74, 0x62, 0x08, 0x6f, 0x64, 0x78, 0x04, 0x9d, 0x92,
+ 0x47, 0x53, 0xc6, 0xc1, 0x66, 0xde, 0x60, 0x11, 0xa7, 0xfe, 0x1a, 0x2d,
+ 0x84, 0xbc, 0xf3, 0xd0, 0x57, 0x9f, 0x98, 0x65, 0x2b, 0x96, 0xc8, 0x4c,
+ 0x57, 0x20, 0x9d, 0x44,
+};
+static const struct drbg_kat_pr_false kat2467_t = {
+ 6, kat2467_entropyin, kat2467_nonce, kat2467_persstr,
+ kat2467_entropyinreseed, kat2467_addinreseed, kat2467_addin0,
+ kat2467_addin1, kat2467_retbits
+};
+static const struct drbg_kat kat2467 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2467_t
+};
+
+static const unsigned char kat2468_entropyin[] = {
+ 0xca, 0xa6, 0x0c, 0x6a, 0xb9, 0x65, 0xd1, 0x77, 0x1f, 0xdd, 0x26, 0xbe,
+ 0x45, 0x4a, 0x9a, 0x32, 0xf7, 0x6f, 0xe3, 0x8f, 0xdd, 0x8f, 0xe4, 0xdd,
+ 0xe8, 0x78, 0xe9, 0x4e, 0xc2, 0xa3, 0x89, 0xe7, 0x20, 0x01, 0x38, 0xd4,
+ 0x0a, 0x2a, 0xb4, 0xb7,
+};
+static const unsigned char kat2468_nonce[] = {0};
+static const unsigned char kat2468_persstr[] = {0};
+static const unsigned char kat2468_entropyinreseed[] = {
+ 0x94, 0x00, 0x9a, 0x73, 0x62, 0x3f, 0xd0, 0xb5, 0x31, 0x28, 0x58, 0xbb,
+ 0xbd, 0x30, 0xba, 0xab, 0xfc, 0x4f, 0x1f, 0xc1, 0x15, 0xba, 0xe0, 0xe8,
+ 0xef, 0x2c, 0xb7, 0xba, 0x82, 0xb3, 0x1a, 0xfd, 0xb7, 0x3d, 0x1e, 0xa2,
+ 0xf6, 0x35, 0xa4, 0xdf,
+};
+static const unsigned char kat2468_addinreseed[] = {0};
+static const unsigned char kat2468_addin0[] = {0};
+static const unsigned char kat2468_addin1[] = {0};
+static const unsigned char kat2468_retbits[] = {
+ 0xf9, 0xbf, 0x2c, 0xcc, 0x84, 0x2c, 0x05, 0x72, 0xd4, 0x18, 0xe8, 0x38,
+ 0xf9, 0x8a, 0x98, 0x98, 0xf9, 0x26, 0xa1, 0x7d, 0x6a, 0x90, 0x70, 0x3e,
+ 0x01, 0x10, 0x92, 0x51, 0xb5, 0x64, 0xef, 0x86, 0x92, 0xfd, 0x33, 0x9f,
+ 0x78, 0x97, 0x86, 0x7a, 0xbb, 0x23, 0x6d, 0x86, 0x94, 0xb2, 0x40, 0x4a,
+ 0x56, 0xc8, 0x12, 0xd8, 0x22, 0x63, 0x2a, 0x7f, 0x4d, 0x53, 0x86, 0x75,
+ 0x24, 0xe8, 0x4f, 0x13,
+};
+static const struct drbg_kat_pr_false kat2468_t = {
+ 7, kat2468_entropyin, kat2468_nonce, kat2468_persstr,
+ kat2468_entropyinreseed, kat2468_addinreseed, kat2468_addin0,
+ kat2468_addin1, kat2468_retbits
+};
+static const struct drbg_kat kat2468 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2468_t
+};
+
+static const unsigned char kat2469_entropyin[] = {
+ 0x81, 0x5d, 0xe1, 0x65, 0xea, 0x4d, 0x09, 0x0b, 0xc2, 0x66, 0x85, 0x16,
+ 0xa0, 0x2a, 0x55, 0xcb, 0xf7, 0xde, 0x82, 0xfc, 0x24, 0x15, 0xed, 0xb6,
+ 0x96, 0x1f, 0x44, 0x70, 0xbf, 0xd2, 0x8c, 0xed, 0xf6, 0xce, 0x29, 0x3b,
+ 0xf9, 0x3b, 0x99, 0x29,
+};
+static const unsigned char kat2469_nonce[] = {0};
+static const unsigned char kat2469_persstr[] = {0};
+static const unsigned char kat2469_entropyinreseed[] = {
+ 0xbd, 0xde, 0x9f, 0x2a, 0xeb, 0x37, 0x52, 0x9e, 0x95, 0x31, 0x79, 0x2f,
+ 0x75, 0x00, 0xf4, 0xc0, 0x24, 0x60, 0x0d, 0x5a, 0xee, 0x8d, 0x11, 0xf9,
+ 0xa0, 0x7e, 0xb6, 0x4c, 0x3c, 0xfe, 0x51, 0xb8, 0x76, 0xdd, 0xd6, 0x8c,
+ 0x17, 0x64, 0x9c, 0x82,
+};
+static const unsigned char kat2469_addinreseed[] = {0};
+static const unsigned char kat2469_addin0[] = {0};
+static const unsigned char kat2469_addin1[] = {0};
+static const unsigned char kat2469_retbits[] = {
+ 0x84, 0x0d, 0x9c, 0x6f, 0x29, 0x00, 0x36, 0xc7, 0xc5, 0xfb, 0xc5, 0xa6,
+ 0x35, 0xfd, 0x47, 0x8e, 0x00, 0x9d, 0x0c, 0x36, 0x65, 0x09, 0xf4, 0xf5,
+ 0x16, 0xc7, 0x8c, 0x03, 0x6e, 0x47, 0xcb, 0x4f, 0x8f, 0xab, 0x4b, 0xb3,
+ 0xf8, 0x65, 0x97, 0xde, 0x66, 0x9b, 0xd1, 0xc9, 0x11, 0x2d, 0x34, 0xf3,
+ 0x34, 0xe6, 0x10, 0x8c, 0x3f, 0xc8, 0xec, 0x5f, 0x99, 0x74, 0xfe, 0x28,
+ 0x1a, 0xce, 0xea, 0x76,
+};
+static const struct drbg_kat_pr_false kat2469_t = {
+ 8, kat2469_entropyin, kat2469_nonce, kat2469_persstr,
+ kat2469_entropyinreseed, kat2469_addinreseed, kat2469_addin0,
+ kat2469_addin1, kat2469_retbits
+};
+static const struct drbg_kat kat2469 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2469_t
+};
+
+static const unsigned char kat2470_entropyin[] = {
+ 0x1b, 0x4d, 0xd0, 0xa2, 0x5e, 0xba, 0x83, 0x7f, 0x1c, 0xfe, 0x03, 0x2d,
+ 0x7f, 0xe6, 0x9e, 0x76, 0x90, 0xb2, 0xa6, 0xf5, 0xa7, 0x72, 0xff, 0xb7,
+ 0x2d, 0xca, 0x9f, 0x3d, 0x36, 0x44, 0x4e, 0xfc, 0xca, 0xd4, 0x36, 0x3c,
+ 0xad, 0xff, 0x43, 0x9d,
+};
+static const unsigned char kat2470_nonce[] = {0};
+static const unsigned char kat2470_persstr[] = {0};
+static const unsigned char kat2470_entropyinreseed[] = {
+ 0xfe, 0x05, 0x86, 0x83, 0x58, 0x62, 0x0c, 0x88, 0x24, 0x76, 0x81, 0xef,
+ 0x9e, 0xa9, 0xd1, 0x7f, 0xfc, 0xc8, 0xa7, 0xf9, 0xb6, 0xf6, 0xe1, 0x9f,
+ 0xb3, 0xf5, 0x34, 0x69, 0x20, 0xeb, 0x40, 0x15, 0x73, 0xd9, 0xa8, 0xd3,
+ 0x12, 0x01, 0xfc, 0x5c,
+};
+static const unsigned char kat2470_addinreseed[] = {0};
+static const unsigned char kat2470_addin0[] = {0};
+static const unsigned char kat2470_addin1[] = {0};
+static const unsigned char kat2470_retbits[] = {
+ 0x9e, 0x4b, 0x60, 0xa3, 0xa3, 0x51, 0xd2, 0x2d, 0x20, 0xcb, 0x9b, 0x11,
+ 0xe6, 0x3c, 0x84, 0xb1, 0x3a, 0xcb, 0x11, 0x84, 0xc9, 0x3d, 0xba, 0x63,
+ 0x0f, 0x1e, 0xc7, 0x1d, 0xaf, 0xe7, 0x2f, 0xa5, 0x05, 0xb9, 0x10, 0xe7,
+ 0x2b, 0x52, 0x10, 0x90, 0xb4, 0xfc, 0xc4, 0x69, 0x35, 0x29, 0x87, 0xb3,
+ 0x0f, 0x47, 0x9d, 0x08, 0x80, 0x7d, 0x55, 0xb2, 0xf2, 0x0a, 0xed, 0x6f,
+ 0x91, 0xd9, 0xd3, 0xcd,
+};
+static const struct drbg_kat_pr_false kat2470_t = {
+ 9, kat2470_entropyin, kat2470_nonce, kat2470_persstr,
+ kat2470_entropyinreseed, kat2470_addinreseed, kat2470_addin0,
+ kat2470_addin1, kat2470_retbits
+};
+static const struct drbg_kat kat2470 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2470_t
+};
+
+static const unsigned char kat2471_entropyin[] = {
+ 0x6d, 0xab, 0x72, 0x2a, 0x73, 0xb7, 0x97, 0xc2, 0xd5, 0x3f, 0x40, 0xda,
+ 0x0e, 0x76, 0xe6, 0xf6, 0x76, 0xb9, 0x50, 0xc2, 0xde, 0x82, 0x29, 0x1a,
+ 0x6f, 0x57, 0x0b, 0xcf, 0xe8, 0xb6, 0x20, 0x14, 0x52, 0x42, 0x30, 0x2d,
+ 0xa3, 0xec, 0x43, 0x2e,
+};
+static const unsigned char kat2471_nonce[] = {0};
+static const unsigned char kat2471_persstr[] = {0};
+static const unsigned char kat2471_entropyinreseed[] = {
+ 0xef, 0x7e, 0xd5, 0x60, 0x31, 0x19, 0x46, 0xce, 0x55, 0x7d, 0xe3, 0x9b,
+ 0x5f, 0xd4, 0x90, 0x25, 0x3f, 0x43, 0x07, 0x8c, 0x3f, 0x82, 0x6e, 0x19,
+ 0x1d, 0x97, 0x9e, 0xec, 0x82, 0xbb, 0xfe, 0x0e, 0x5c, 0xf2, 0x07, 0x2f,
+ 0x90, 0xe3, 0xad, 0xd9,
+};
+static const unsigned char kat2471_addinreseed[] = {0};
+static const unsigned char kat2471_addin0[] = {0};
+static const unsigned char kat2471_addin1[] = {0};
+static const unsigned char kat2471_retbits[] = {
+ 0x0b, 0x55, 0xe6, 0x39, 0x07, 0x05, 0x62, 0x0d, 0x4e, 0x1d, 0x18, 0x20,
+ 0x55, 0x9e, 0x73, 0x9a, 0xd5, 0x4c, 0xf4, 0xf0, 0xae, 0x7b, 0x3b, 0xed,
+ 0x52, 0xf3, 0x95, 0x00, 0xe0, 0x6a, 0x69, 0x3a, 0xd5, 0x5e, 0x42, 0xd3,
+ 0xe1, 0x79, 0xbc, 0x67, 0x0c, 0xcb, 0xbc, 0xfd, 0xfa, 0x2f, 0xbb, 0x3f,
+ 0x21, 0x74, 0x32, 0x19, 0x99, 0xbf, 0xdc, 0x8e, 0x43, 0x94, 0x8a, 0x25,
+ 0x01, 0x53, 0x38, 0xbb,
+};
+static const struct drbg_kat_pr_false kat2471_t = {
+ 10, kat2471_entropyin, kat2471_nonce, kat2471_persstr,
+ kat2471_entropyinreseed, kat2471_addinreseed, kat2471_addin0,
+ kat2471_addin1, kat2471_retbits
+};
+static const struct drbg_kat kat2471 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2471_t
+};
+
+static const unsigned char kat2472_entropyin[] = {
+ 0xab, 0xd7, 0x24, 0x32, 0x43, 0x25, 0xa1, 0xe0, 0xc2, 0xec, 0x0f, 0xb6,
+ 0x53, 0x98, 0x6c, 0x0c, 0x8f, 0x92, 0xef, 0x22, 0x0d, 0xe5, 0x6d, 0xb4,
+ 0xf8, 0x92, 0x58, 0xe1, 0x58, 0x92, 0xfd, 0x6f, 0x2c, 0xc1, 0xbd, 0xf3,
+ 0xb9, 0xff, 0x8a, 0xa2,
+};
+static const unsigned char kat2472_nonce[] = {0};
+static const unsigned char kat2472_persstr[] = {0};
+static const unsigned char kat2472_entropyinreseed[] = {
+ 0xd3, 0x9a, 0x84, 0x84, 0xcf, 0xec, 0x43, 0x69, 0xbf, 0x82, 0x3a, 0x6b,
+ 0x46, 0x1e, 0xa0, 0xfd, 0x18, 0x00, 0x22, 0x11, 0xac, 0x00, 0x1f, 0xf0,
+ 0x91, 0x24, 0xe9, 0xe8, 0x2c, 0xaf, 0xd5, 0x54, 0x3a, 0xd1, 0x3c, 0xcc,
+ 0x14, 0x03, 0xa3, 0x9d,
+};
+static const unsigned char kat2472_addinreseed[] = {0};
+static const unsigned char kat2472_addin0[] = {0};
+static const unsigned char kat2472_addin1[] = {0};
+static const unsigned char kat2472_retbits[] = {
+ 0x28, 0xa8, 0x7f, 0xc2, 0x16, 0x1c, 0x6d, 0xfa, 0xf9, 0x82, 0xaa, 0x5e,
+ 0x3e, 0x88, 0xbd, 0x4c, 0x1e, 0x18, 0x99, 0x37, 0x19, 0xdc, 0x3e, 0x62,
+ 0x91, 0x05, 0xd0, 0xb8, 0x53, 0x0e, 0xc3, 0xa2, 0xa2, 0x93, 0x58, 0x31,
+ 0x6d, 0xfe, 0x2d, 0xc1, 0x5b, 0x2c, 0x46, 0xc1, 0x20, 0xdc, 0x3b, 0x85,
+ 0x70, 0xa2, 0x85, 0x67, 0xd4, 0xad, 0x33, 0x97, 0x44, 0xfa, 0x4c, 0x06,
+ 0x61, 0x60, 0x2d, 0x06,
+};
+static const struct drbg_kat_pr_false kat2472_t = {
+ 11, kat2472_entropyin, kat2472_nonce, kat2472_persstr,
+ kat2472_entropyinreseed, kat2472_addinreseed, kat2472_addin0,
+ kat2472_addin1, kat2472_retbits
+};
+static const struct drbg_kat kat2472 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2472_t
+};
+
+static const unsigned char kat2473_entropyin[] = {
+ 0x57, 0x5a, 0xd8, 0x24, 0x9e, 0x98, 0x11, 0x49, 0x7f, 0xe8, 0x06, 0x34,
+ 0x14, 0x69, 0x30, 0x81, 0x12, 0x6b, 0x1a, 0xfe, 0x23, 0x17, 0xae, 0x22,
+ 0xd1, 0x5b, 0x9d, 0x73, 0x2c, 0x9e, 0x14, 0x71, 0x32, 0xb1, 0x98, 0xef,
+ 0x23, 0xed, 0x5b, 0x21,
+};
+static const unsigned char kat2473_nonce[] = {0};
+static const unsigned char kat2473_persstr[] = {0};
+static const unsigned char kat2473_entropyinreseed[] = {
+ 0xb3, 0xa1, 0xf6, 0xcd, 0xe3, 0xcf, 0xb6, 0x32, 0x8e, 0x17, 0x21, 0x21,
+ 0xfd, 0x43, 0x1c, 0xdc, 0x3e, 0x0e, 0x80, 0xaa, 0x63, 0x7c, 0xee, 0x20,
+ 0x8c, 0x7e, 0x45, 0xc9, 0xef, 0x65, 0x26, 0x5a, 0x81, 0x81, 0xea, 0x42,
+ 0xb2, 0x66, 0x7a, 0xd0,
+};
+static const unsigned char kat2473_addinreseed[] = {0};
+static const unsigned char kat2473_addin0[] = {0};
+static const unsigned char kat2473_addin1[] = {0};
+static const unsigned char kat2473_retbits[] = {
+ 0x12, 0x31, 0x5f, 0xec, 0x26, 0x6a, 0x4b, 0xb2, 0x55, 0xe7, 0x59, 0x19,
+ 0x3b, 0x95, 0x23, 0x3a, 0xb1, 0x80, 0xee, 0x06, 0xd2, 0xe9, 0x5a, 0xbd,
+ 0x8d, 0x51, 0x42, 0x1d, 0x61, 0x4e, 0xed, 0x6a, 0x9c, 0x0f, 0x34, 0xd1,
+ 0x40, 0x02, 0x04, 0x39, 0xb9, 0xcb, 0x1c, 0x84, 0x4c, 0xf9, 0xc2, 0x8a,
+ 0xb3, 0x24, 0x58, 0xa9, 0xf0, 0x96, 0x85, 0x90, 0x6a, 0xc9, 0xc9, 0x98,
+ 0x83, 0xca, 0x36, 0x05,
+};
+static const struct drbg_kat_pr_false kat2473_t = {
+ 12, kat2473_entropyin, kat2473_nonce, kat2473_persstr,
+ kat2473_entropyinreseed, kat2473_addinreseed, kat2473_addin0,
+ kat2473_addin1, kat2473_retbits
+};
+static const struct drbg_kat kat2473 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2473_t
+};
+
+static const unsigned char kat2474_entropyin[] = {
+ 0x55, 0xe7, 0x77, 0x25, 0xc4, 0x55, 0x1d, 0x5c, 0x54, 0xce, 0x56, 0x76,
+ 0xba, 0x03, 0xe8, 0x22, 0x1a, 0x84, 0x0d, 0xb8, 0xbe, 0x56, 0x8c, 0x50,
+ 0x8a, 0xd3, 0x68, 0x99, 0xce, 0x8f, 0x56, 0x8d, 0x78, 0x1f, 0x65, 0xd0,
+ 0xc0, 0xbf, 0x6e, 0x8d,
+};
+static const unsigned char kat2474_nonce[] = {0};
+static const unsigned char kat2474_persstr[] = {0};
+static const unsigned char kat2474_entropyinreseed[] = {
+ 0x93, 0x33, 0xb0, 0x7c, 0xa2, 0xc1, 0xb8, 0xf2, 0xaa, 0x0d, 0xa6, 0x2b,
+ 0xc5, 0x14, 0xce, 0xf0, 0xd5, 0x36, 0xcd, 0x11, 0x8c, 0x83, 0x7c, 0xc4,
+ 0x09, 0x2d, 0x9a, 0x95, 0xf2, 0xbd, 0x6d, 0x5b, 0x69, 0x8b, 0x93, 0x8d,
+ 0x53, 0xd1, 0xb2, 0x0d,
+};
+static const unsigned char kat2474_addinreseed[] = {0};
+static const unsigned char kat2474_addin0[] = {0};
+static const unsigned char kat2474_addin1[] = {0};
+static const unsigned char kat2474_retbits[] = {
+ 0x03, 0x0d, 0xd4, 0xde, 0xd2, 0xb2, 0x34, 0x08, 0x52, 0xe7, 0xdc, 0xa1,
+ 0xaa, 0x5a, 0xa1, 0x8e, 0xc0, 0x47, 0x96, 0x2c, 0xba, 0x9d, 0x86, 0x64,
+ 0x28, 0x0e, 0x82, 0xe6, 0x6f, 0x25, 0x93, 0x6e, 0x54, 0xf7, 0xc2, 0xed,
+ 0xb5, 0xe8, 0x01, 0xdc, 0xfe, 0x60, 0xe7, 0x7b, 0x55, 0x2e, 0x96, 0xdf,
+ 0xd1, 0x67, 0x53, 0xd8, 0x54, 0x16, 0xc1, 0x1b, 0x83, 0x7f, 0x7e, 0x38,
+ 0x8f, 0x01, 0x19, 0x2e,
+};
+static const struct drbg_kat_pr_false kat2474_t = {
+ 13, kat2474_entropyin, kat2474_nonce, kat2474_persstr,
+ kat2474_entropyinreseed, kat2474_addinreseed, kat2474_addin0,
+ kat2474_addin1, kat2474_retbits
+};
+static const struct drbg_kat kat2474 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2474_t
+};
+
+static const unsigned char kat2475_entropyin[] = {
+ 0x0e, 0x68, 0x1f, 0x88, 0x1a, 0xfa, 0x24, 0x3f, 0x5d, 0xe7, 0x5a, 0x04,
+ 0x62, 0x05, 0xf7, 0x33, 0xa3, 0x2a, 0x1b, 0xb3, 0x9e, 0x2a, 0xbd, 0x05,
+ 0x7c, 0x07, 0xd8, 0xd5, 0xe8, 0x15, 0x89, 0xd5, 0x37, 0xe1, 0x2d, 0x71,
+ 0x98, 0x1b, 0x57, 0xa3,
+};
+static const unsigned char kat2475_nonce[] = {0};
+static const unsigned char kat2475_persstr[] = {0};
+static const unsigned char kat2475_entropyinreseed[] = {
+ 0xcb, 0x16, 0xa4, 0x90, 0x7b, 0x39, 0xf6, 0x47, 0xee, 0xc2, 0xb3, 0x88,
+ 0x70, 0x4d, 0x6a, 0x2b, 0x89, 0x83, 0x6c, 0xdd, 0x8d, 0x1c, 0x0c, 0x7f,
+ 0xf2, 0x7c, 0xdd, 0xbb, 0xb0, 0xd0, 0x1e, 0x30, 0x6d, 0xbd, 0x01, 0xec,
+ 0x58, 0x33, 0x47, 0x00,
+};
+static const unsigned char kat2475_addinreseed[] = {0};
+static const unsigned char kat2475_addin0[] = {0};
+static const unsigned char kat2475_addin1[] = {0};
+static const unsigned char kat2475_retbits[] = {
+ 0xe4, 0x8a, 0xab, 0x2c, 0x01, 0x33, 0x5b, 0xa4, 0xf6, 0xd3, 0x77, 0xc3,
+ 0xc9, 0x93, 0x93, 0x2d, 0x4f, 0xe2, 0xef, 0x60, 0x25, 0x4e, 0xff, 0x31,
+ 0x54, 0x91, 0xb8, 0x1a, 0xcd, 0x1c, 0x22, 0xb3, 0xa3, 0x3c, 0x59, 0xb8,
+ 0xb7, 0x8c, 0x47, 0x9b, 0x7c, 0xd4, 0xfd, 0xd3, 0x1f, 0x7d, 0x15, 0x86,
+ 0x4a, 0x48, 0xac, 0x70, 0x6e, 0x32, 0x17, 0x4d, 0xe3, 0x6f, 0x92, 0x39,
+ 0xab, 0xa4, 0xb6, 0xad,
+};
+static const struct drbg_kat_pr_false kat2475_t = {
+ 14, kat2475_entropyin, kat2475_nonce, kat2475_persstr,
+ kat2475_entropyinreseed, kat2475_addinreseed, kat2475_addin0,
+ kat2475_addin1, kat2475_retbits
+};
+static const struct drbg_kat kat2475 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2475_t
+};
+
+static const unsigned char kat2476_entropyin[] = {
+ 0x6d, 0xa6, 0x70, 0xb6, 0xda, 0x13, 0x5f, 0x77, 0xb7, 0xfb, 0x54, 0x8e,
+ 0x79, 0x64, 0x71, 0x57, 0x31, 0x46, 0xee, 0x58, 0xc2, 0x07, 0xb3, 0x87,
+ 0x9f, 0x8d, 0x9f, 0x50, 0x33, 0x23, 0x46, 0xcb, 0x00, 0x8a, 0x18, 0xaf,
+ 0xec, 0x30, 0xe4, 0xd5,
+};
+static const unsigned char kat2476_nonce[] = {0};
+static const unsigned char kat2476_persstr[] = {0};
+static const unsigned char kat2476_entropyinreseed[] = {
+ 0x63, 0x59, 0xab, 0x87, 0x27, 0x78, 0x4f, 0xe1, 0x33, 0x55, 0x4b, 0xe8,
+ 0x7b, 0x36, 0x4e, 0x9e, 0x26, 0x18, 0x42, 0x50, 0xfe, 0xe2, 0xd9, 0x96,
+ 0x62, 0xc4, 0x5b, 0x41, 0xb6, 0xda, 0x27, 0x29, 0xca, 0xa6, 0x1a, 0x1f,
+ 0x7b, 0x1f, 0x4a, 0xe2,
+};
+static const unsigned char kat2476_addinreseed[] = {
+ 0x1a, 0x19, 0x4e, 0x6f, 0x49, 0x95, 0x5f, 0x01, 0x84, 0x47, 0x88, 0x2a,
+ 0x48, 0xbc, 0xb2, 0x0b, 0xeb, 0x41, 0x1f, 0x88, 0x6a, 0x9b, 0xc3, 0xc5,
+ 0xa8, 0x83, 0x3c, 0xe6, 0xf8, 0x8c, 0x37, 0x39, 0xd7, 0x9f, 0x54, 0xa4,
+ 0xcf, 0x4c, 0x62, 0x0a,
+};
+static const unsigned char kat2476_addin0[] = {
+ 0x0c, 0x88, 0x78, 0x48, 0xa4, 0x6c, 0x45, 0x71, 0x9b, 0x03, 0x65, 0xca,
+ 0x6f, 0x2b, 0x1b, 0x80, 0x0c, 0x39, 0xa7, 0xd8, 0xab, 0x15, 0xf4, 0x61,
+ 0x3f, 0xc5, 0xa9, 0x14, 0x3e, 0x42, 0x5a, 0x33, 0x1f, 0xec, 0x68, 0x6e,
+ 0xca, 0xac, 0xe5, 0xe8,
+};
+static const unsigned char kat2476_addin1[] = {
+ 0xca, 0x9c, 0x53, 0xa0, 0xee, 0xb5, 0x21, 0xe8, 0x38, 0x9b, 0x9e, 0x95,
+ 0xcc, 0x17, 0x32, 0x1d, 0x3d, 0xf1, 0xff, 0x77, 0x4a, 0xae, 0x6a, 0x11,
+ 0x2b, 0xbe, 0xb7, 0x0b, 0xbd, 0x41, 0x11, 0x25, 0x2b, 0x65, 0x38, 0x7d,
+ 0x20, 0x38, 0x09, 0x71,
+};
+static const unsigned char kat2476_retbits[] = {
+ 0x3a, 0xe8, 0x01, 0x30, 0x21, 0x49, 0x71, 0xbc, 0x72, 0x90, 0x44, 0x0e,
+ 0xf0, 0x52, 0x78, 0xff, 0xc6, 0xf0, 0x12, 0x34, 0xba, 0x93, 0x5a, 0x74,
+ 0x2a, 0x48, 0xc6, 0xe7, 0x10, 0xa7, 0x55, 0x78, 0x2a, 0x1c, 0xeb, 0x34,
+ 0x7e, 0x0a, 0x14, 0xa2, 0xa3, 0x91, 0xb5, 0xe3, 0x7a, 0xa7, 0xc1, 0x4c,
+ 0x20, 0xe6, 0xd1, 0xba, 0xf1, 0x44, 0x1f, 0xa5, 0x03, 0x46, 0xe3, 0x3f,
+ 0x7a, 0x2d, 0x09, 0x41,
+};
+static const struct drbg_kat_pr_false kat2476_t = {
+ 0, kat2476_entropyin, kat2476_nonce, kat2476_persstr,
+ kat2476_entropyinreseed, kat2476_addinreseed, kat2476_addin0,
+ kat2476_addin1, kat2476_retbits
+};
+static const struct drbg_kat kat2476 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2476_t
+};
+
+static const unsigned char kat2477_entropyin[] = {
+ 0x0c, 0xcc, 0x21, 0x28, 0x0b, 0x7c, 0x13, 0x98, 0x43, 0x5f, 0x6a, 0xac,
+ 0xe9, 0x9a, 0xdd, 0xae, 0xc7, 0xf8, 0x7a, 0x92, 0x7b, 0xca, 0x44, 0x17,
+ 0x89, 0x3e, 0xd8, 0x05, 0x4e, 0x76, 0xef, 0xe3, 0x50, 0x55, 0xb2, 0xb5,
+ 0x38, 0x7d, 0xb5, 0x2f,
+};
+static const unsigned char kat2477_nonce[] = {0};
+static const unsigned char kat2477_persstr[] = {0};
+static const unsigned char kat2477_entropyinreseed[] = {
+ 0x3e, 0x85, 0x27, 0xc8, 0xd7, 0x7e, 0xd8, 0xa4, 0xf5, 0x2f, 0x31, 0xbf,
+ 0x0e, 0xdc, 0xf9, 0xa3, 0x1c, 0x4f, 0x1d, 0xe5, 0xe4, 0xe3, 0xcb, 0x5c,
+ 0x78, 0xab, 0x8d, 0x63, 0x6d, 0x0d, 0xd8, 0xbc, 0xbf, 0xd2, 0xb6, 0x41,
+ 0x26, 0xf8, 0x3f, 0xeb,
+};
+static const unsigned char kat2477_addinreseed[] = {
+ 0xc3, 0xbb, 0x4b, 0x5e, 0x8f, 0x2d, 0xf5, 0xcc, 0x88, 0xb1, 0x38, 0xb1,
+ 0x78, 0xf9, 0x35, 0xa1, 0xbd, 0xca, 0xbd, 0x64, 0xb4, 0x6e, 0xda, 0x01,
+ 0xdc, 0x00, 0x9b, 0x13, 0xd0, 0x58, 0xf6, 0x14, 0xe0, 0x3b, 0x4f, 0x70,
+ 0xd7, 0x2c, 0x13, 0x45,
+};
+static const unsigned char kat2477_addin0[] = {
+ 0xda, 0x26, 0x87, 0x24, 0xb0, 0x24, 0x42, 0x9a, 0xe2, 0x28, 0x1b, 0x5f,
+ 0x18, 0xb0, 0x40, 0x39, 0x8d, 0x09, 0xc8, 0x50, 0xe2, 0x2b, 0x2a, 0xb1,
+ 0xea, 0x75, 0x9b, 0x4c, 0xcf, 0x5d, 0x5b, 0x62, 0x46, 0xf3, 0xf8, 0xb7,
+ 0x85, 0x7e, 0x2e, 0x14,
+};
+static const unsigned char kat2477_addin1[] = {
+ 0x02, 0x7b, 0xfb, 0x02, 0x31, 0x9d, 0x2b, 0xd0, 0x33, 0x34, 0xe0, 0xda,
+ 0x36, 0xe1, 0x16, 0x77, 0x36, 0xb6, 0xd9, 0x44, 0x05, 0xa5, 0xd5, 0x68,
+ 0x65, 0xdc, 0x95, 0xca, 0xe9, 0xbf, 0x93, 0x0b, 0xa2, 0xda, 0x12, 0x92,
+ 0x5b, 0xdd, 0xb8, 0x2e,
+};
+static const unsigned char kat2477_retbits[] = {
+ 0x9d, 0xac, 0x78, 0xad, 0x7e, 0xcf, 0x99, 0x05, 0x87, 0xd7, 0x05, 0x04,
+ 0xca, 0x5a, 0xc2, 0xff, 0xbc, 0x48, 0x72, 0x6c, 0xb8, 0x16, 0xa7, 0x07,
+ 0x25, 0x75, 0xe7, 0xa8, 0x81, 0x46, 0x9a, 0xbc, 0x70, 0x43, 0x12, 0x3b,
+ 0x7b, 0xe1, 0xe7, 0x87, 0xe1, 0x95, 0x5b, 0x1d, 0x7e, 0x56, 0xac, 0x76,
+ 0x6f, 0x25, 0xd4, 0xef, 0xee, 0xc2, 0x18, 0xa5, 0x2f, 0x5c, 0xfd, 0xcb,
+ 0xc6, 0x6b, 0x7a, 0x02,
+};
+static const struct drbg_kat_pr_false kat2477_t = {
+ 1, kat2477_entropyin, kat2477_nonce, kat2477_persstr,
+ kat2477_entropyinreseed, kat2477_addinreseed, kat2477_addin0,
+ kat2477_addin1, kat2477_retbits
+};
+static const struct drbg_kat kat2477 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2477_t
+};
+
+static const unsigned char kat2478_entropyin[] = {
+ 0x5c, 0xf7, 0xea, 0x69, 0x73, 0x9d, 0x54, 0x0c, 0xce, 0xde, 0x07, 0x71,
+ 0xc9, 0x7c, 0x6c, 0xf8, 0xe1, 0xab, 0xb9, 0x6a, 0xd3, 0x90, 0xf3, 0x07,
+ 0xd9, 0x83, 0xb0, 0x38, 0x8e, 0x8f, 0x69, 0x26, 0x08, 0xf1, 0x51, 0x22,
+ 0xa8, 0x12, 0xc0, 0x65,
+};
+static const unsigned char kat2478_nonce[] = {0};
+static const unsigned char kat2478_persstr[] = {0};
+static const unsigned char kat2478_entropyinreseed[] = {
+ 0x25, 0x26, 0x94, 0x69, 0x02, 0x0e, 0x6a, 0x83, 0x8b, 0x86, 0x5d, 0xa5,
+ 0xd5, 0xe7, 0x76, 0x64, 0xb0, 0xcf, 0xa3, 0x59, 0xc5, 0xab, 0xc4, 0xfa,
+ 0x4d, 0x85, 0xc1, 0x1e, 0x80, 0x6c, 0x94, 0xc2, 0x3b, 0xaa, 0xa1, 0x6f,
+ 0x10, 0x57, 0x1c, 0x38,
+};
+static const unsigned char kat2478_addinreseed[] = {
+ 0xa6, 0x34, 0x98, 0xbb, 0xe0, 0x99, 0x05, 0x69, 0xff, 0x43, 0x96, 0x52,
+ 0xd7, 0xe2, 0xf8, 0xa3, 0x8b, 0x09, 0xcf, 0x71, 0x7d, 0x75, 0x05, 0xaa,
+ 0x2b, 0x26, 0x24, 0x26, 0x4e, 0x81, 0x41, 0x9f, 0x19, 0x57, 0x2d, 0x77,
+ 0xc1, 0x79, 0x4e, 0x84,
+};
+static const unsigned char kat2478_addin0[] = {
+ 0x97, 0xe7, 0x5e, 0x12, 0x3e, 0xa3, 0x7f, 0x72, 0x5a, 0x19, 0x81, 0xc8,
+ 0x11, 0x38, 0x45, 0xcc, 0x6c, 0xa8, 0x5e, 0x00, 0xe0, 0x50, 0x76, 0x3d,
+ 0x9d, 0x81, 0xa7, 0x74, 0x06, 0x8a, 0x02, 0xd7, 0x91, 0xba, 0xe7, 0xbf,
+ 0x65, 0x61, 0xe6, 0x02,
+};
+static const unsigned char kat2478_addin1[] = {
+ 0xbe, 0xee, 0xb3, 0xfa, 0x55, 0x54, 0x60, 0x9e, 0xb4, 0x82, 0xb8, 0x5e,
+ 0xf5, 0xc7, 0x12, 0x47, 0xe2, 0xe5, 0xaf, 0x2d, 0xb4, 0x4f, 0x51, 0x51,
+ 0x94, 0x55, 0xa9, 0x4f, 0x35, 0x41, 0x21, 0x5e, 0x65, 0xcf, 0x1a, 0x75,
+ 0x24, 0x36, 0x24, 0x1b,
+};
+static const unsigned char kat2478_retbits[] = {
+ 0xac, 0xb4, 0x95, 0x38, 0x37, 0x85, 0x4a, 0xc4, 0x06, 0x5c, 0xbc, 0xb7,
+ 0x3c, 0xfd, 0xc1, 0x04, 0x85, 0x38, 0x2d, 0xae, 0xa4, 0x91, 0xdc, 0xa8,
+ 0xe8, 0x61, 0xdc, 0x03, 0x3a, 0xb9, 0xcd, 0xaf, 0x83, 0x2c, 0xa6, 0x57,
+ 0x60, 0x8a, 0x2a, 0x7c, 0xa6, 0xac, 0x00, 0x9a, 0x4a, 0x12, 0x30, 0x8e,
+ 0x42, 0xa0, 0x65, 0x91, 0x10, 0x0d, 0x98, 0x1d, 0x56, 0x65, 0x71, 0x67,
+ 0x12, 0x4c, 0xa5, 0x9f,
+};
+static const struct drbg_kat_pr_false kat2478_t = {
+ 2, kat2478_entropyin, kat2478_nonce, kat2478_persstr,
+ kat2478_entropyinreseed, kat2478_addinreseed, kat2478_addin0,
+ kat2478_addin1, kat2478_retbits
+};
+static const struct drbg_kat kat2478 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2478_t
+};
+
+static const unsigned char kat2479_entropyin[] = {
+ 0xc8, 0x08, 0x18, 0x8a, 0x67, 0x3f, 0xef, 0xb0, 0x4b, 0x5b, 0xd6, 0x34,
+ 0x5d, 0xcc, 0x64, 0x5f, 0x1e, 0xa9, 0x8f, 0xbc, 0xa5, 0xbb, 0xd7, 0xe4,
+ 0xc9, 0x30, 0x10, 0x21, 0x0a, 0x24, 0x8d, 0xc1, 0x38, 0xbb, 0xb9, 0x93,
+ 0x81, 0x18, 0x70, 0x0d,
+};
+static const unsigned char kat2479_nonce[] = {0};
+static const unsigned char kat2479_persstr[] = {0};
+static const unsigned char kat2479_entropyinreseed[] = {
+ 0xad, 0x1d, 0x2d, 0x49, 0xf4, 0x5a, 0x70, 0xa1, 0xa5, 0xb9, 0xb3, 0x64,
+ 0xdd, 0xdc, 0x1c, 0xda, 0xed, 0xfa, 0x1b, 0x33, 0x1e, 0xc9, 0x20, 0x6d,
+ 0x12, 0xfe, 0x33, 0xef, 0xc3, 0x13, 0xab, 0xc6, 0x80, 0xa9, 0x4e, 0x40,
+ 0x4c, 0xaf, 0x36, 0x5e,
+};
+static const unsigned char kat2479_addinreseed[] = {
+ 0xae, 0xb5, 0xd9, 0x58, 0x88, 0xd3, 0x6b, 0xe6, 0x9e, 0xc8, 0xca, 0xf8,
+ 0x30, 0x58, 0xf2, 0x89, 0xd4, 0x87, 0x7d, 0x54, 0xea, 0x29, 0x10, 0xdc,
+ 0x77, 0x7a, 0xd5, 0x8a, 0xbc, 0x29, 0x82, 0xd6, 0x34, 0xf2, 0x05, 0x45,
+ 0xc4, 0xbf, 0x45, 0x3e,
+};
+static const unsigned char kat2479_addin0[] = {
+ 0xb1, 0xc9, 0xb5, 0xd0, 0x4a, 0xa6, 0x92, 0xf3, 0xe0, 0x1e, 0x14, 0xf3,
+ 0x18, 0x88, 0x06, 0x1e, 0x04, 0x0a, 0xf0, 0x39, 0x91, 0x92, 0x36, 0x83,
+ 0x92, 0x3a, 0xcc, 0x1a, 0x2d, 0x71, 0x84, 0x34, 0xe2, 0x45, 0xc1, 0x1d,
+ 0x3a, 0xf2, 0xfc, 0x7d,
+};
+static const unsigned char kat2479_addin1[] = {
+ 0x3f, 0x6f, 0x59, 0x9e, 0x76, 0xfe, 0x68, 0xcc, 0x20, 0x62, 0x29, 0x73,
+ 0x87, 0x3a, 0x07, 0x68, 0xcb, 0x81, 0x36, 0x3b, 0xcd, 0x15, 0x54, 0xac,
+ 0xf5, 0xb1, 0xe2, 0xd3, 0xbf, 0x9e, 0xda, 0x3e, 0xfc, 0x5d, 0xb3, 0xbc,
+ 0xa1, 0x20, 0xf8, 0x9c,
+};
+static const unsigned char kat2479_retbits[] = {
+ 0x44, 0x7e, 0x79, 0x8b, 0x8b, 0x16, 0x65, 0x8e, 0x07, 0xca, 0x04, 0xde,
+ 0xf6, 0x3a, 0x72, 0xa2, 0xbb, 0x27, 0x92, 0x6c, 0x8e, 0x49, 0xe4, 0x46,
+ 0x4d, 0x82, 0x78, 0x3c, 0x69, 0xca, 0x44, 0x67, 0xd1, 0xf5, 0x99, 0xa9,
+ 0x82, 0xa7, 0xbb, 0x36, 0x98, 0xc0, 0xa0, 0x24, 0x46, 0xbd, 0x3a, 0xb4,
+ 0x2e, 0x1f, 0x97, 0xdc, 0x28, 0x76, 0x41, 0xb1, 0xcb, 0x61, 0x4d, 0xed,
+ 0x2b, 0xf9, 0x7f, 0x83,
+};
+static const struct drbg_kat_pr_false kat2479_t = {
+ 3, kat2479_entropyin, kat2479_nonce, kat2479_persstr,
+ kat2479_entropyinreseed, kat2479_addinreseed, kat2479_addin0,
+ kat2479_addin1, kat2479_retbits
+};
+static const struct drbg_kat kat2479 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2479_t
+};
+
+static const unsigned char kat2480_entropyin[] = {
+ 0x71, 0xf9, 0x6f, 0x32, 0x21, 0xee, 0xa6, 0xf0, 0x28, 0x8f, 0x78, 0x30,
+ 0x8a, 0x14, 0x2c, 0xa2, 0xd8, 0x4d, 0xa6, 0xdd, 0x9f, 0x9f, 0x4a, 0xf7,
+ 0x2b, 0x22, 0xbf, 0xd7, 0x2e, 0x19, 0x02, 0x86, 0x66, 0x25, 0xa8, 0x8b,
+ 0x49, 0x3e, 0xdf, 0x0d,
+};
+static const unsigned char kat2480_nonce[] = {0};
+static const unsigned char kat2480_persstr[] = {0};
+static const unsigned char kat2480_entropyinreseed[] = {
+ 0x3a, 0xb0, 0x12, 0x99, 0x55, 0xb5, 0xfa, 0x5b, 0xa4, 0x36, 0x94, 0x87,
+ 0xd1, 0xca, 0xd5, 0x0b, 0x2b, 0xef, 0x64, 0x60, 0x00, 0xe4, 0xe8, 0xac,
+ 0x5b, 0xf8, 0x3f, 0xd8, 0xdf, 0x54, 0xc5, 0x72, 0xf7, 0xa8, 0x90, 0x1e,
+ 0x7a, 0xea, 0xd7, 0x63,
+};
+static const unsigned char kat2480_addinreseed[] = {
+ 0x8a, 0xde, 0x69, 0x4e, 0x5c, 0x68, 0xc1, 0x3f, 0xe0, 0x62, 0x82, 0xa8,
+ 0x98, 0x31, 0xbd, 0x77, 0xbb, 0x68, 0xcd, 0x55, 0xb6, 0xcf, 0x03, 0xdd,
+ 0x13, 0x38, 0x36, 0xbc, 0xec, 0x4a, 0x4d, 0xe8, 0xec, 0xf7, 0xb8, 0xf9,
+ 0x43, 0xe7, 0x55, 0xbe,
+};
+static const unsigned char kat2480_addin0[] = {
+ 0x9c, 0x42, 0xe9, 0x18, 0x1d, 0xf5, 0xf1, 0xff, 0x0b, 0x51, 0xf0, 0x3a,
+ 0x56, 0xca, 0x3b, 0xf6, 0x97, 0xa6, 0xe2, 0xbd, 0x15, 0xf2, 0xc3, 0x42,
+ 0x1f, 0x82, 0x44, 0xc8, 0x21, 0xa5, 0x5a, 0x17, 0xfb, 0xd4, 0x52, 0x60,
+ 0x83, 0x6c, 0xf4, 0xd7,
+};
+static const unsigned char kat2480_addin1[] = {
+ 0xaa, 0xe4, 0xb0, 0xed, 0xcd, 0xe2, 0xfe, 0x4e, 0x31, 0xb4, 0x26, 0xab,
+ 0xaa, 0xde, 0xb3, 0xe6, 0xcb, 0x5d, 0x55, 0xbf, 0xb1, 0x27, 0x44, 0x24,
+ 0x3c, 0xaa, 0xca, 0xc7, 0xce, 0x50, 0xca, 0xdc, 0x84, 0xd9, 0x60, 0x5c,
+ 0xe4, 0x3a, 0x7f, 0x2b,
+};
+static const unsigned char kat2480_retbits[] = {
+ 0x57, 0x31, 0x2a, 0x0f, 0x7d, 0x0a, 0x6f, 0xc8, 0x9f, 0x9b, 0xc2, 0xef,
+ 0xac, 0xa3, 0xf5, 0x8d, 0x71, 0x8b, 0xeb, 0x77, 0x91, 0x60, 0xb5, 0xd5,
+ 0xed, 0xda, 0xd2, 0x3a, 0x13, 0x76, 0x5f, 0xb3, 0x68, 0x50, 0x28, 0xda,
+ 0x92, 0xb1, 0xeb, 0xa7, 0x3a, 0x2e, 0x71, 0x55, 0xcb, 0x7b, 0x35, 0xfb,
+ 0x12, 0x4a, 0x90, 0x8a, 0xbd, 0x28, 0x61, 0x76, 0x13, 0x15, 0xcd, 0x38,
+ 0xe8, 0x3a, 0xb9, 0x1f,
+};
+static const struct drbg_kat_pr_false kat2480_t = {
+ 4, kat2480_entropyin, kat2480_nonce, kat2480_persstr,
+ kat2480_entropyinreseed, kat2480_addinreseed, kat2480_addin0,
+ kat2480_addin1, kat2480_retbits
+};
+static const struct drbg_kat kat2480 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2480_t
+};
+
+static const unsigned char kat2481_entropyin[] = {
+ 0xb3, 0x0a, 0xe4, 0x4c, 0xf6, 0x77, 0x2c, 0xb8, 0xfb, 0xc5, 0x7d, 0x04,
+ 0x03, 0x31, 0x1f, 0xd0, 0x25, 0x84, 0x8c, 0x78, 0xa0, 0x75, 0x7b, 0x19,
+ 0x3c, 0xa6, 0x77, 0x45, 0xe3, 0x31, 0x82, 0x3e, 0xd8, 0x0e, 0xac, 0xe3,
+ 0xef, 0x87, 0x89, 0xb1,
+};
+static const unsigned char kat2481_nonce[] = {0};
+static const unsigned char kat2481_persstr[] = {0};
+static const unsigned char kat2481_entropyinreseed[] = {
+ 0x9e, 0x02, 0x4c, 0x5f, 0xb9, 0x16, 0x25, 0x12, 0x35, 0xab, 0xfc, 0x41,
+ 0xc0, 0xce, 0xa7, 0x9f, 0x86, 0xc1, 0xa8, 0xe1, 0xca, 0xa8, 0x4b, 0xe8,
+ 0x67, 0xa2, 0x4b, 0x8e, 0xcb, 0xe2, 0xfa, 0x6f, 0xdd, 0x51, 0xfd, 0xaa,
+ 0xac, 0x29, 0x56, 0x86,
+};
+static const unsigned char kat2481_addinreseed[] = {
+ 0xb8, 0x7c, 0x08, 0xdd, 0xa7, 0xd6, 0xfa, 0xe6, 0x5a, 0xdf, 0x87, 0x3d,
+ 0x9e, 0x57, 0x07, 0x40, 0x55, 0x1f, 0xe1, 0xb9, 0x92, 0x58, 0x88, 0xf3,
+ 0xeb, 0xc1, 0xce, 0x09, 0xfa, 0x82, 0xd4, 0x06, 0x49, 0xf9, 0x79, 0x1f,
+ 0x34, 0xb2, 0xf1, 0xef,
+};
+static const unsigned char kat2481_addin0[] = {
+ 0x5d, 0x05, 0x24, 0xe9, 0xf0, 0x03, 0xb2, 0xdd, 0x45, 0x06, 0x47, 0xab,
+ 0x1b, 0x1f, 0xea, 0x66, 0x71, 0x79, 0x2e, 0xa2, 0xd1, 0xd4, 0xd2, 0xa9,
+ 0xef, 0xf9, 0x01, 0x03, 0x1b, 0x84, 0x6c, 0x46, 0x5e, 0x9d, 0x97, 0xc5,
+ 0xa2, 0xe5, 0xee, 0xf0,
+};
+static const unsigned char kat2481_addin1[] = {
+ 0xd6, 0x22, 0x55, 0xcd, 0x5e, 0xb0, 0x99, 0x11, 0xa1, 0xba, 0x2c, 0xa7,
+ 0x74, 0xc4, 0x5f, 0x96, 0xbb, 0x4c, 0xfb, 0x98, 0x2c, 0xd0, 0xf1, 0xe9,
+ 0x88, 0x36, 0x2e, 0x3f, 0x2e, 0xb9, 0x81, 0x18, 0xcf, 0x0b, 0x32, 0x90,
+ 0xe3, 0x71, 0x70, 0xdf,
+};
+static const unsigned char kat2481_retbits[] = {
+ 0x66, 0xb4, 0xa2, 0xd9, 0x81, 0x4d, 0x75, 0xe5, 0x77, 0x82, 0xf2, 0x37,
+ 0x88, 0x06, 0xdd, 0x5d, 0xde, 0x79, 0x9f, 0xfd, 0xa4, 0xe3, 0xe8, 0x21,
+ 0x48, 0x89, 0xc5, 0xc5, 0x1c, 0xc6, 0x7a, 0x35, 0x7c, 0xfa, 0x07, 0xc3,
+ 0x47, 0xdb, 0x51, 0x18, 0x11, 0x09, 0x41, 0xaa, 0x0a, 0x66, 0x33, 0xb6,
+ 0xa3, 0xf2, 0x2b, 0xa6, 0xf4, 0xe8, 0x3f, 0x34, 0x44, 0x08, 0x1e, 0x03,
+ 0x7f, 0x21, 0x6a, 0xed,
+};
+static const struct drbg_kat_pr_false kat2481_t = {
+ 5, kat2481_entropyin, kat2481_nonce, kat2481_persstr,
+ kat2481_entropyinreseed, kat2481_addinreseed, kat2481_addin0,
+ kat2481_addin1, kat2481_retbits
+};
+static const struct drbg_kat kat2481 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2481_t
+};
+
+static const unsigned char kat2482_entropyin[] = {
+ 0xaf, 0x19, 0x5e, 0x63, 0xfc, 0x06, 0xb0, 0x1a, 0x27, 0x37, 0x2b, 0x7c,
+ 0x66, 0x8f, 0xeb, 0x67, 0x8d, 0x54, 0xd1, 0xff, 0x09, 0x21, 0x9d, 0x15,
+ 0x45, 0xf9, 0xf0, 0x55, 0x57, 0xaa, 0xb2, 0xc6, 0xc8, 0x1d, 0xd8, 0x7a,
+ 0x3f, 0xc8, 0x6b, 0x5a,
+};
+static const unsigned char kat2482_nonce[] = {0};
+static const unsigned char kat2482_persstr[] = {0};
+static const unsigned char kat2482_entropyinreseed[] = {
+ 0x56, 0x01, 0x10, 0xc7, 0xb0, 0x3a, 0xa0, 0x7d, 0x86, 0x35, 0xab, 0xfe,
+ 0x69, 0xf0, 0xee, 0xd6, 0x7f, 0x58, 0x18, 0xc5, 0x49, 0x57, 0x43, 0x84,
+ 0x44, 0x4c, 0x91, 0x9c, 0xf8, 0x42, 0x61, 0x57, 0x50, 0x37, 0xa7, 0xc7,
+ 0x03, 0x68, 0x1b, 0x19,
+};
+static const unsigned char kat2482_addinreseed[] = {
+ 0x65, 0x71, 0xc5, 0x35, 0xb3, 0x17, 0x20, 0xe9, 0x08, 0xba, 0x48, 0x84,
+ 0x56, 0x62, 0xc7, 0x3a, 0xb3, 0x35, 0x90, 0x2c, 0xb4, 0xd2, 0x00, 0x03,
+ 0xd5, 0x6a, 0x32, 0x88, 0xb9, 0x8b, 0x55, 0xe4, 0xee, 0x63, 0xff, 0x38,
+ 0x6d, 0x55, 0x7c, 0xe8,
+};
+static const unsigned char kat2482_addin0[] = {
+ 0xb0, 0xc4, 0xf8, 0xc3, 0x31, 0x3e, 0xf8, 0x06, 0x23, 0xfe, 0x21, 0x99,
+ 0x18, 0x0e, 0xdc, 0xcc, 0x7d, 0x0b, 0x15, 0xb3, 0x04, 0x22, 0xfa, 0xf3,
+ 0x09, 0xfd, 0x29, 0x1d, 0xb6, 0x67, 0xf3, 0x6a, 0x22, 0x64, 0x2e, 0x14,
+ 0x5a, 0x21, 0x39, 0xd3,
+};
+static const unsigned char kat2482_addin1[] = {
+ 0x44, 0xba, 0x05, 0x84, 0xf5, 0x1d, 0xd4, 0xc4, 0x93, 0xdd, 0x22, 0x0f,
+ 0xe0, 0x2d, 0x9c, 0x87, 0x56, 0xd3, 0x96, 0xf6, 0x5d, 0xb2, 0xf5, 0x6c,
+ 0x2f, 0x2a, 0xd2, 0x34, 0x35, 0x74, 0x6e, 0x08, 0xc2, 0xe8, 0x86, 0x9c,
+ 0xb7, 0x6c, 0xf8, 0x79,
+};
+static const unsigned char kat2482_retbits[] = {
+ 0x6e, 0xdb, 0xc8, 0x7a, 0x9d, 0xa4, 0xa0, 0x0e, 0x81, 0xd7, 0x4c, 0xba,
+ 0xcf, 0xaa, 0x1d, 0xeb, 0xd1, 0x22, 0x2c, 0x53, 0x0d, 0x39, 0x16, 0xf0,
+ 0x42, 0xe1, 0x94, 0x67, 0xd2, 0xd5, 0x27, 0xcc, 0x90, 0x8e, 0x74, 0xc8,
+ 0x76, 0x29, 0x06, 0xac, 0x5b, 0xa5, 0xbf, 0x5d, 0x75, 0x73, 0x91, 0xa9,
+ 0x21, 0x43, 0x3f, 0x08, 0x0b, 0x61, 0xc4, 0xda, 0x6a, 0xb3, 0xab, 0xb6,
+ 0x2f, 0x3b, 0xd5, 0x9c,
+};
+static const struct drbg_kat_pr_false kat2482_t = {
+ 6, kat2482_entropyin, kat2482_nonce, kat2482_persstr,
+ kat2482_entropyinreseed, kat2482_addinreseed, kat2482_addin0,
+ kat2482_addin1, kat2482_retbits
+};
+static const struct drbg_kat kat2482 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2482_t
+};
+
+static const unsigned char kat2483_entropyin[] = {
+ 0x29, 0xc8, 0xcb, 0x54, 0x46, 0x58, 0x7d, 0x84, 0xe6, 0x72, 0x1f, 0x13,
+ 0xa1, 0x26, 0x09, 0xd4, 0x97, 0xbc, 0xa6, 0x86, 0x98, 0x2e, 0x58, 0x5e,
+ 0xee, 0x82, 0x4d, 0x16, 0x01, 0x52, 0xa3, 0xec, 0xf6, 0x7a, 0x57, 0x8e,
+ 0xb3, 0x70, 0x02, 0x17,
+};
+static const unsigned char kat2483_nonce[] = {0};
+static const unsigned char kat2483_persstr[] = {0};
+static const unsigned char kat2483_entropyinreseed[] = {
+ 0xa8, 0xd4, 0xe8, 0x1e, 0x5f, 0x8a, 0x5e, 0x47, 0x92, 0x0f, 0x67, 0xf5,
+ 0xdf, 0x34, 0x7e, 0xb3, 0xb8, 0xe9, 0x3b, 0x67, 0x38, 0x1b, 0x28, 0x16,
+ 0xd3, 0x04, 0xb9, 0x19, 0xa8, 0xd5, 0xb6, 0x1e, 0x1e, 0x2b, 0xc7, 0x55,
+ 0x52, 0x01, 0x85, 0xc4,
+};
+static const unsigned char kat2483_addinreseed[] = {
+ 0x13, 0xde, 0xb0, 0x0b, 0xbe, 0x24, 0xd3, 0x97, 0x5b, 0xf0, 0xc5, 0xb1,
+ 0x9a, 0x16, 0x02, 0x96, 0xb7, 0xfc, 0xde, 0xaf, 0x80, 0x4c, 0x78, 0x4f,
+ 0x62, 0x3f, 0x17, 0x2c, 0x0d, 0xbf, 0xe6, 0x80, 0xea, 0xc6, 0xcd, 0xde,
+ 0xc5, 0xf6, 0xb3, 0x2b,
+};
+static const unsigned char kat2483_addin0[] = {
+ 0x60, 0xd9, 0x21, 0xa3, 0xa3, 0x53, 0x23, 0xb8, 0xe2, 0xcd, 0xf1, 0x1a,
+ 0x30, 0xec, 0xc6, 0x20, 0xd5, 0xac, 0x92, 0xee, 0x03, 0x6d, 0x37, 0xfd,
+ 0xa8, 0x3a, 0xc6, 0x21, 0x5c, 0xae, 0x58, 0x47, 0xce, 0xcd, 0x46, 0x34,
+ 0x25, 0xbc, 0x7e, 0xf9,
+};
+static const unsigned char kat2483_addin1[] = {
+ 0x3b, 0x46, 0xae, 0xea, 0x56, 0x79, 0x5e, 0x27, 0x05, 0x24, 0xfa, 0x9b,
+ 0x2f, 0x52, 0xaa, 0x4a, 0x5a, 0xd7, 0xcd, 0xde, 0x18, 0x27, 0x9f, 0xeb,
+ 0x6c, 0xde, 0xc9, 0xe3, 0x88, 0xa7, 0x4f, 0x8e, 0x9f, 0x06, 0x9e, 0x67,
+ 0x39, 0x93, 0x33, 0x16,
+};
+static const unsigned char kat2483_retbits[] = {
+ 0x84, 0xfe, 0xaf, 0x90, 0xf9, 0xf0, 0x32, 0x99, 0x38, 0xad, 0x17, 0xe6,
+ 0x7d, 0x87, 0x6c, 0xf9, 0xcd, 0x7e, 0x83, 0xc0, 0xca, 0xc7, 0x95, 0xaa,
+ 0xbf, 0x31, 0x1f, 0xbd, 0x09, 0x0e, 0x37, 0x65, 0x4d, 0x50, 0x3a, 0xe3,
+ 0x8b, 0x8f, 0x5a, 0x47, 0x98, 0x1b, 0xf7, 0x8d, 0xaa, 0xbb, 0xa0, 0x75,
+ 0x05, 0xae, 0x87, 0x8b, 0x3d, 0x5e, 0x61, 0x53, 0xfa, 0xdb, 0xda, 0xd8,
+ 0x2a, 0x3f, 0xbe, 0x46,
+};
+static const struct drbg_kat_pr_false kat2483_t = {
+ 7, kat2483_entropyin, kat2483_nonce, kat2483_persstr,
+ kat2483_entropyinreseed, kat2483_addinreseed, kat2483_addin0,
+ kat2483_addin1, kat2483_retbits
+};
+static const struct drbg_kat kat2483 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2483_t
+};
+
+static const unsigned char kat2484_entropyin[] = {
+ 0xfe, 0xde, 0x3d, 0xd7, 0x49, 0xe6, 0xa4, 0x3e, 0xbe, 0xf0, 0x37, 0xc4,
+ 0x72, 0x41, 0xf6, 0xbb, 0xdc, 0xf8, 0xf5, 0xbd, 0xa6, 0xf8, 0x1b, 0x2f,
+ 0xe9, 0x88, 0xe1, 0xcf, 0x7b, 0x1c, 0x46, 0x6a, 0x9f, 0x94, 0x45, 0x03,
+ 0xd2, 0xab, 0x4c, 0x70,
+};
+static const unsigned char kat2484_nonce[] = {0};
+static const unsigned char kat2484_persstr[] = {0};
+static const unsigned char kat2484_entropyinreseed[] = {
+ 0x5a, 0xe4, 0x95, 0x63, 0x20, 0xd7, 0x42, 0xcb, 0x5b, 0x73, 0x3a, 0xe1,
+ 0x3d, 0xcf, 0xcb, 0xcb, 0xaf, 0xee, 0x30, 0x46, 0xf7, 0xbb, 0x9f, 0xe2,
+ 0x09, 0x61, 0xfc, 0xf3, 0xa3, 0x7e, 0x9b, 0x40, 0xf2, 0x11, 0xc6, 0x18,
+ 0xc7, 0xf7, 0xf4, 0xc9,
+};
+static const unsigned char kat2484_addinreseed[] = {
+ 0x96, 0xa2, 0x7b, 0x07, 0x59, 0xa3, 0xb8, 0xa9, 0x8c, 0x17, 0x23, 0xde,
+ 0xce, 0xd5, 0xeb, 0xb7, 0x5b, 0x3d, 0xea, 0x78, 0xbb, 0xd4, 0x56, 0x65,
+ 0x54, 0x38, 0x07, 0x45, 0x1d, 0x60, 0xa3, 0x03, 0x8d, 0xd3, 0xa6, 0x4b,
+ 0xbb, 0x15, 0x57, 0x0d,
+};
+static const unsigned char kat2484_addin0[] = {
+ 0x25, 0x1f, 0xd8, 0x47, 0x99, 0x6a, 0xdf, 0x57, 0x65, 0x73, 0x97, 0x6a,
+ 0x95, 0x9e, 0x7e, 0xc2, 0xb2, 0x7c, 0x43, 0xa6, 0x4f, 0x02, 0x29, 0x6a,
+ 0xf5, 0x95, 0xd0, 0x67, 0x4f, 0xc4, 0xcd, 0xce, 0xfe, 0x9d, 0x2b, 0x99,
+ 0xe9, 0xed, 0x79, 0x4a,
+};
+static const unsigned char kat2484_addin1[] = {
+ 0x79, 0xbd, 0x72, 0xd9, 0x61, 0xcd, 0x47, 0xbd, 0xa4, 0x36, 0x0b, 0x07,
+ 0x10, 0x1c, 0x11, 0xdf, 0xff, 0xef, 0xf5, 0xf7, 0xed, 0x98, 0xaf, 0x23,
+ 0xc0, 0x7a, 0x4a, 0x1b, 0x52, 0x8a, 0x5b, 0x5f, 0x63, 0x06, 0x4c, 0x16,
+ 0xe2, 0xfd, 0x29, 0x9c,
+};
+static const unsigned char kat2484_retbits[] = {
+ 0x37, 0x17, 0x2d, 0x13, 0x63, 0xef, 0x96, 0xf0, 0xab, 0x42, 0x2e, 0x6d,
+ 0xf0, 0xe3, 0x16, 0x0f, 0x6c, 0xfb, 0x20, 0x2c, 0x98, 0x2d, 0x5f, 0x1f,
+ 0x14, 0x38, 0xb6, 0x99, 0xf2, 0x52, 0x96, 0x10, 0xc2, 0x32, 0xcb, 0xbc,
+ 0x26, 0xfc, 0xe9, 0xd1, 0xfd, 0x53, 0x4e, 0x24, 0x67, 0xff, 0x79, 0xbc,
+ 0x16, 0x20, 0x3a, 0xd5, 0x1b, 0x88, 0x51, 0xe3, 0x7c, 0x54, 0xfe, 0xb3,
+ 0xec, 0x47, 0x1c, 0x02,
+};
+static const struct drbg_kat_pr_false kat2484_t = {
+ 8, kat2484_entropyin, kat2484_nonce, kat2484_persstr,
+ kat2484_entropyinreseed, kat2484_addinreseed, kat2484_addin0,
+ kat2484_addin1, kat2484_retbits
+};
+static const struct drbg_kat kat2484 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2484_t
+};
+
+static const unsigned char kat2485_entropyin[] = {
+ 0x43, 0xfe, 0xbb, 0xb0, 0xe2, 0x55, 0xfc, 0x22, 0x48, 0x7e, 0x42, 0xe9,
+ 0xc8, 0xe9, 0x9f, 0x39, 0xa1, 0x26, 0x47, 0x12, 0x2a, 0x6b, 0xcc, 0xac,
+ 0x8a, 0x1f, 0x9c, 0x13, 0x92, 0xd0, 0xc1, 0x31, 0x8a, 0x3c, 0x88, 0x07,
+ 0x5d, 0xb9, 0x0c, 0x5f,
+};
+static const unsigned char kat2485_nonce[] = {0};
+static const unsigned char kat2485_persstr[] = {0};
+static const unsigned char kat2485_entropyinreseed[] = {
+ 0x94, 0x9f, 0xe1, 0x25, 0x48, 0xe2, 0x23, 0x81, 0x11, 0x66, 0x4f, 0x87,
+ 0xbc, 0x82, 0xf0, 0x59, 0xc4, 0xb4, 0x4d, 0x89, 0xc4, 0x52, 0x6f, 0x7b,
+ 0x4d, 0xc4, 0x33, 0xaa, 0x7d, 0xae, 0xde, 0x68, 0x01, 0x92, 0xe6, 0xf0,
+ 0xe7, 0xe5, 0xe4, 0xa5,
+};
+static const unsigned char kat2485_addinreseed[] = {
+ 0x5d, 0x63, 0x7e, 0x1b, 0x0b, 0xfd, 0x8c, 0xe1, 0x44, 0xb8, 0xa2, 0xab,
+ 0xb7, 0x7f, 0x23, 0x75, 0x69, 0x6c, 0xd8, 0x49, 0xd9, 0x95, 0x8a, 0xc3,
+ 0x20, 0xe9, 0xf3, 0xb8, 0x82, 0x1d, 0x7f, 0x82, 0x66, 0x0a, 0x17, 0x9d,
+ 0xa2, 0x3d, 0x78, 0xdc,
+};
+static const unsigned char kat2485_addin0[] = {
+ 0x72, 0xb5, 0x4b, 0xe0, 0x8e, 0xf3, 0xf2, 0xb6, 0x69, 0xb1, 0x6a, 0xf3,
+ 0x5f, 0x78, 0x03, 0x2f, 0x9b, 0xac, 0x62, 0xea, 0x9e, 0xe8, 0x14, 0x69,
+ 0x57, 0x4c, 0xaa, 0x78, 0x5b, 0xb1, 0x72, 0xe4, 0xa6, 0xc0, 0x42, 0x63,
+ 0x00, 0xac, 0xec, 0xbb,
+};
+static const unsigned char kat2485_addin1[] = {
+ 0x89, 0x46, 0xbe, 0x1f, 0x45, 0x66, 0xff, 0x64, 0x9e, 0x72, 0xe7, 0x58,
+ 0x59, 0x9b, 0xcc, 0x93, 0xb0, 0x82, 0x8d, 0xc0, 0x85, 0x66, 0xf4, 0x69,
+ 0x74, 0xef, 0xe3, 0xff, 0x16, 0xe8, 0x1e, 0x17, 0x96, 0x31, 0xf5, 0x8f,
+ 0xea, 0x17, 0x6f, 0x76,
+};
+static const unsigned char kat2485_retbits[] = {
+ 0x6c, 0xe8, 0x17, 0xa6, 0xda, 0x4f, 0x99, 0x3e, 0xe6, 0x82, 0xca, 0x8b,
+ 0x5b, 0x7a, 0x3a, 0xcf, 0x92, 0xad, 0x26, 0x0c, 0xf7, 0xc6, 0x5c, 0x3a,
+ 0x49, 0xa8, 0x87, 0x71, 0x64, 0xfe, 0x6a, 0x3f, 0xda, 0x64, 0x26, 0x00,
+ 0xe4, 0x6d, 0x11, 0x41, 0x49, 0x85, 0x0c, 0x69, 0x05, 0xbb, 0x88, 0xe9,
+ 0xc2, 0x16, 0xd9, 0x04, 0xfc, 0xb4, 0xcc, 0x81, 0xe0, 0xec, 0xc3, 0x41,
+ 0xfc, 0x8c, 0xa1, 0x4c,
+};
+static const struct drbg_kat_pr_false kat2485_t = {
+ 9, kat2485_entropyin, kat2485_nonce, kat2485_persstr,
+ kat2485_entropyinreseed, kat2485_addinreseed, kat2485_addin0,
+ kat2485_addin1, kat2485_retbits
+};
+static const struct drbg_kat kat2485 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2485_t
+};
+
+static const unsigned char kat2486_entropyin[] = {
+ 0x3c, 0x80, 0xfd, 0x7d, 0x57, 0xdd, 0x2f, 0x47, 0x74, 0x48, 0x95, 0x18,
+ 0x93, 0xd2, 0xda, 0x13, 0x1f, 0x69, 0x91, 0x3f, 0x3b, 0x8f, 0xb9, 0xbe,
+ 0xc9, 0x94, 0x88, 0x4f, 0x3b, 0xb1, 0xb2, 0xa6, 0x41, 0x41, 0x2c, 0x39,
+ 0xf6, 0xf9, 0x62, 0x20,
+};
+static const unsigned char kat2486_nonce[] = {0};
+static const unsigned char kat2486_persstr[] = {0};
+static const unsigned char kat2486_entropyinreseed[] = {
+ 0x19, 0xc1, 0x21, 0xd7, 0x34, 0x5b, 0x62, 0x41, 0x63, 0x48, 0x71, 0x56,
+ 0x8f, 0xc5, 0x5a, 0x89, 0x6d, 0xef, 0x1a, 0x49, 0x48, 0xa6, 0xd5, 0x96,
+ 0xaa, 0xc4, 0xef, 0x87, 0x48, 0xb0, 0x3f, 0x29, 0x6f, 0xab, 0xff, 0x7b,
+ 0xc9, 0x88, 0x84, 0xaf,
+};
+static const unsigned char kat2486_addinreseed[] = {
+ 0x8b, 0xf2, 0xdb, 0xbe, 0x53, 0xf2, 0x29, 0x30, 0x42, 0xa4, 0xd1, 0x2b,
+ 0x58, 0x4b, 0xcc, 0xee, 0x01, 0xa8, 0x38, 0xf4, 0xdd, 0x56, 0xea, 0xfb,
+ 0x14, 0x27, 0xed, 0x3e, 0xa5, 0x90, 0xe7, 0x08, 0xa8, 0x4e, 0x70, 0x78,
+ 0x7c, 0xe0, 0x91, 0xb2,
+};
+static const unsigned char kat2486_addin0[] = {
+ 0xa8, 0x9d, 0x02, 0x9b, 0x51, 0xae, 0xc5, 0x64, 0x63, 0xe1, 0xba, 0x11,
+ 0x74, 0x0c, 0x19, 0x2b, 0x1d, 0x6f, 0xa6, 0x9e, 0xbc, 0x49, 0x06, 0x8f,
+ 0x5b, 0xeb, 0xc6, 0x44, 0x72, 0x19, 0x70, 0xb9, 0xbf, 0x05, 0x4f, 0x9d,
+ 0xbf, 0xbb, 0xa4, 0x42,
+};
+static const unsigned char kat2486_addin1[] = {
+ 0x11, 0xcb, 0xb1, 0x2b, 0x24, 0x66, 0xd2, 0x4f, 0x5c, 0x17, 0x12, 0x6e,
+ 0xb8, 0x11, 0x0e, 0x99, 0xef, 0xc6, 0x63, 0xbf, 0xde, 0x92, 0x0e, 0x51,
+ 0x8b, 0xcb, 0xf8, 0xd5, 0x8f, 0x21, 0x8d, 0xb8, 0xe9, 0xb2, 0xf3, 0xc0,
+ 0x7e, 0x9d, 0xbb, 0x35,
+};
+static const unsigned char kat2486_retbits[] = {
+ 0x95, 0x32, 0x35, 0x19, 0x3f, 0x7d, 0x3a, 0xe1, 0x76, 0x72, 0xa8, 0x59,
+ 0x60, 0x51, 0xa4, 0xe3, 0xc3, 0xaf, 0x54, 0x29, 0x89, 0xa4, 0x87, 0x87,
+ 0x96, 0xbd, 0x5c, 0xbe, 0xd7, 0xab, 0xfc, 0x6b, 0x7b, 0x67, 0x68, 0x3d,
+ 0x3b, 0x92, 0x34, 0xe2, 0xd7, 0x24, 0x73, 0x27, 0x65, 0x63, 0x5b, 0x0e,
+ 0x3c, 0x35, 0xf0, 0xf0, 0xba, 0x06, 0x7b, 0xa4, 0x42, 0xd6, 0x73, 0x4d,
+ 0x3b, 0xf7, 0x81, 0xcb,
+};
+static const struct drbg_kat_pr_false kat2486_t = {
+ 10, kat2486_entropyin, kat2486_nonce, kat2486_persstr,
+ kat2486_entropyinreseed, kat2486_addinreseed, kat2486_addin0,
+ kat2486_addin1, kat2486_retbits
+};
+static const struct drbg_kat kat2486 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2486_t
+};
+
+static const unsigned char kat2487_entropyin[] = {
+ 0xae, 0x21, 0x08, 0xea, 0x13, 0x17, 0x3d, 0xb8, 0x4e, 0x13, 0x35, 0x23,
+ 0x73, 0x44, 0x8d, 0xa4, 0xbb, 0xa9, 0xfc, 0xdd, 0x9c, 0x2f, 0x87, 0x73,
+ 0x16, 0xad, 0x6f, 0x29, 0x25, 0x96, 0x85, 0x0a, 0x15, 0x36, 0xa0, 0x4c,
+ 0x3d, 0xe9, 0x63, 0x7b,
+};
+static const unsigned char kat2487_nonce[] = {0};
+static const unsigned char kat2487_persstr[] = {0};
+static const unsigned char kat2487_entropyinreseed[] = {
+ 0xc7, 0xf3, 0x73, 0x42, 0xa1, 0x0e, 0x3d, 0xea, 0x83, 0xec, 0xa4, 0x9f,
+ 0x46, 0x05, 0x81, 0x13, 0x1a, 0xaf, 0x26, 0x09, 0x49, 0xa6, 0x88, 0x41,
+ 0xa7, 0x90, 0xec, 0x82, 0x73, 0x86, 0xac, 0x0c, 0xf9, 0x4e, 0x75, 0xda,
+ 0xcd, 0x38, 0xc2, 0x01,
+};
+static const unsigned char kat2487_addinreseed[] = {
+ 0x7e, 0xc1, 0x69, 0x3f, 0xd6, 0x6e, 0xd9, 0xf7, 0x4f, 0xfd, 0xcc, 0x62,
+ 0x3d, 0xa0, 0x8c, 0xfb, 0x17, 0x86, 0x1f, 0xbd, 0xed, 0x97, 0x68, 0x20,
+ 0x8e, 0x91, 0x4a, 0x9f, 0xa6, 0xfc, 0xa7, 0x9e, 0xc8, 0x74, 0x3a, 0x6e,
+ 0xa3, 0x3f, 0x3f, 0x17,
+};
+static const unsigned char kat2487_addin0[] = {
+ 0xb0, 0x1f, 0x35, 0xa9, 0xc7, 0xe4, 0xd4, 0x61, 0x77, 0x42, 0x62, 0x9d,
+ 0xb6, 0x9b, 0xff, 0xc3, 0xe2, 0x36, 0x56, 0x04, 0xf0, 0xba, 0xd4, 0x98,
+ 0x46, 0x2b, 0x25, 0xff, 0x2d, 0x10, 0x87, 0x8e, 0xdc, 0x15, 0xe2, 0x6a,
+ 0x71, 0x51, 0xbb, 0x89,
+};
+static const unsigned char kat2487_addin1[] = {
+ 0x3d, 0xd2, 0x10, 0xdb, 0xb4, 0x83, 0x13, 0x4a, 0xdf, 0x41, 0x40, 0x74,
+ 0x9e, 0x1c, 0x62, 0x2d, 0xcc, 0x7b, 0x56, 0x4f, 0x54, 0xb9, 0x82, 0x0c,
+ 0xe8, 0x63, 0xbf, 0x3f, 0x24, 0x80, 0x49, 0x0b, 0x71, 0xa5, 0xa8, 0x1f,
+ 0x52, 0x6c, 0x14, 0x32,
+};
+static const unsigned char kat2487_retbits[] = {
+ 0x32, 0xf8, 0x00, 0xf4, 0xe5, 0xcc, 0xb8, 0x30, 0xa9, 0x39, 0xad, 0x74,
+ 0xb5, 0x90, 0xd9, 0xb6, 0x18, 0xba, 0x89, 0xa5, 0xac, 0x42, 0xa6, 0x92,
+ 0x3a, 0x02, 0xbc, 0x24, 0x79, 0xd6, 0x1b, 0x7e, 0x47, 0x31, 0xe8, 0x2c,
+ 0xf0, 0x91, 0x4f, 0x42, 0x8b, 0x2d, 0x77, 0x59, 0xd9, 0x10, 0x97, 0xaf,
+ 0x70, 0xb1, 0xf8, 0x9d, 0xca, 0xb5, 0xa0, 0x65, 0x2b, 0xa6, 0xea, 0xd5,
+ 0xaf, 0x8b, 0x88, 0x3a,
+};
+static const struct drbg_kat_pr_false kat2487_t = {
+ 11, kat2487_entropyin, kat2487_nonce, kat2487_persstr,
+ kat2487_entropyinreseed, kat2487_addinreseed, kat2487_addin0,
+ kat2487_addin1, kat2487_retbits
+};
+static const struct drbg_kat kat2487 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2487_t
+};
+
+static const unsigned char kat2488_entropyin[] = {
+ 0x7a, 0x16, 0xdf, 0x57, 0x89, 0x3d, 0xba, 0x05, 0x8d, 0x86, 0x6d, 0x2b,
+ 0xaf, 0xa9, 0x8f, 0x60, 0x46, 0x34, 0x25, 0x80, 0xdf, 0x4a, 0x9c, 0xac,
+ 0x9d, 0x32, 0xae, 0x57, 0x44, 0x5f, 0x7b, 0x74, 0xd6, 0x9a, 0x95, 0x9c,
+ 0x2b, 0x08, 0xba, 0xf9,
+};
+static const unsigned char kat2488_nonce[] = {0};
+static const unsigned char kat2488_persstr[] = {0};
+static const unsigned char kat2488_entropyinreseed[] = {
+ 0x26, 0x5f, 0xbd, 0x8c, 0xc9, 0x8d, 0xee, 0x9b, 0x51, 0x3b, 0xb0, 0xa2,
+ 0x13, 0x3e, 0x1e, 0x1a, 0x25, 0xa2, 0xb2, 0x02, 0x4a, 0x71, 0x7d, 0x67,
+ 0xb8, 0x62, 0xde, 0x2a, 0xb6, 0xc1, 0x3a, 0x0f, 0x2a, 0x18, 0x00, 0x22,
+ 0xc3, 0xbc, 0x67, 0xf2,
+};
+static const unsigned char kat2488_addinreseed[] = {
+ 0x6c, 0x91, 0xd5, 0x7b, 0xef, 0x42, 0x9c, 0xc9, 0x55, 0xa6, 0xe0, 0x2c,
+ 0x27, 0xe7, 0xcc, 0x3b, 0x0a, 0x3b, 0xdc, 0x74, 0x75, 0x7a, 0x65, 0xb8,
+ 0xdd, 0xb0, 0xd7, 0x3e, 0xba, 0x21, 0x74, 0x1c, 0x63, 0xd2, 0x44, 0xf6,
+ 0x2c, 0xf6, 0x7d, 0x31,
+};
+static const unsigned char kat2488_addin0[] = {
+ 0x0d, 0xe0, 0xff, 0x92, 0xfe, 0x53, 0x6a, 0x52, 0x7b, 0x7a, 0x47, 0x52,
+ 0x75, 0x62, 0xf5, 0x7f, 0xfe, 0x6b, 0xaf, 0x68, 0xd3, 0xd1, 0x98, 0x0e,
+ 0x83, 0xc6, 0xd4, 0x4f, 0x36, 0x59, 0xba, 0x86, 0xa4, 0xd4, 0xe2, 0xea,
+ 0x84, 0xa0, 0x22, 0x81,
+};
+static const unsigned char kat2488_addin1[] = {
+ 0x50, 0x46, 0x71, 0x35, 0x41, 0xdd, 0x47, 0xbe, 0x93, 0xb2, 0x04, 0x0e,
+ 0x2b, 0xc8, 0x34, 0x5e, 0x27, 0xde, 0xe5, 0x6d, 0x1e, 0xe6, 0x03, 0x61,
+ 0xf7, 0x35, 0xb5, 0x5d, 0x52, 0xfc, 0xcf, 0x3b, 0xa2, 0xbc, 0x9e, 0xa6,
+ 0xdf, 0xbb, 0x57, 0x1b,
+};
+static const unsigned char kat2488_retbits[] = {
+ 0x81, 0x21, 0xa5, 0xfc, 0x3c, 0x26, 0xd1, 0x13, 0xd6, 0xa6, 0x1b, 0xad,
+ 0xb4, 0x6a, 0xe1, 0x4c, 0x72, 0xbf, 0xd9, 0xc9, 0x89, 0xef, 0xc7, 0xe6,
+ 0x32, 0xd0, 0x5d, 0x56, 0xbc, 0xfe, 0xb0, 0xb3, 0xf5, 0x93, 0x98, 0x26,
+ 0xf8, 0x44, 0x46, 0x01, 0x52, 0x93, 0x3b, 0xf5, 0x95, 0xf3, 0xc6, 0xc5,
+ 0xd4, 0x6d, 0xc3, 0xce, 0xaf, 0x88, 0xfd, 0x72, 0x72, 0xfd, 0x1f, 0x85,
+ 0x07, 0xf4, 0x7f, 0x1f,
+};
+static const struct drbg_kat_pr_false kat2488_t = {
+ 12, kat2488_entropyin, kat2488_nonce, kat2488_persstr,
+ kat2488_entropyinreseed, kat2488_addinreseed, kat2488_addin0,
+ kat2488_addin1, kat2488_retbits
+};
+static const struct drbg_kat kat2488 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2488_t
+};
+
+static const unsigned char kat2489_entropyin[] = {
+ 0x90, 0x6c, 0x6a, 0x9a, 0x68, 0x01, 0x8b, 0xc1, 0x79, 0x56, 0x09, 0x92,
+ 0xfa, 0x9a, 0x34, 0xaa, 0x6e, 0x09, 0x8f, 0xad, 0x1f, 0xd1, 0x5b, 0x76,
+ 0x29, 0x87, 0xa7, 0xde, 0x36, 0xb7, 0x83, 0x6f, 0x3e, 0xe9, 0xe3, 0xbc,
+ 0xe9, 0x90, 0xfa, 0x6f,
+};
+static const unsigned char kat2489_nonce[] = {0};
+static const unsigned char kat2489_persstr[] = {0};
+static const unsigned char kat2489_entropyinreseed[] = {
+ 0xc8, 0xc2, 0xe1, 0x29, 0x12, 0x3a, 0x91, 0xa7, 0xa2, 0x1b, 0x4c, 0xcb,
+ 0xde, 0x61, 0xd7, 0x69, 0x8f, 0xaa, 0xd2, 0x63, 0x78, 0xe4, 0x2d, 0xd7,
+ 0xba, 0x5f, 0x52, 0x52, 0xde, 0xbe, 0x43, 0xb2, 0xf9, 0x40, 0x71, 0x8f,
+ 0xbb, 0xc0, 0xd6, 0x5e,
+};
+static const unsigned char kat2489_addinreseed[] = {
+ 0x58, 0xa7, 0xa4, 0xcd, 0x2b, 0x1f, 0x08, 0x76, 0x1a, 0x99, 0xf3, 0x84,
+ 0x32, 0x63, 0x69, 0x3b, 0xab, 0x12, 0xc1, 0x76, 0x44, 0x2f, 0x73, 0x59,
+ 0x07, 0x0d, 0x07, 0xb8, 0xad, 0xf1, 0x47, 0xea, 0x41, 0xd3, 0x33, 0x93,
+ 0xc1, 0x97, 0x24, 0xf6,
+};
+static const unsigned char kat2489_addin0[] = {
+ 0xe1, 0x4a, 0x9e, 0x16, 0xf1, 0x55, 0x08, 0x17, 0xb7, 0x52, 0x13, 0x3e,
+ 0x0d, 0x97, 0xe1, 0x63, 0xd2, 0x27, 0xac, 0x50, 0x3b, 0x0e, 0xec, 0xe5,
+ 0xba, 0xa1, 0xed, 0xf2, 0x81, 0xd1, 0xca, 0x1f, 0xec, 0x18, 0xe7, 0xca,
+ 0x9c, 0xf9, 0xda, 0x18,
+};
+static const unsigned char kat2489_addin1[] = {
+ 0xe4, 0xaf, 0x55, 0xe5, 0x80, 0x95, 0xb6, 0x90, 0xfe, 0xc8, 0x7b, 0x17,
+ 0x8f, 0x50, 0xb7, 0x7a, 0xc6, 0x87, 0x6e, 0x82, 0xe6, 0xca, 0xd2, 0x12,
+ 0x6d, 0x94, 0x82, 0x55, 0x82, 0xb1, 0x72, 0xa8, 0x68, 0xe1, 0x43, 0x9e,
+ 0x03, 0x43, 0xfa, 0xc6,
+};
+static const unsigned char kat2489_retbits[] = {
+ 0xcb, 0x7b, 0xf7, 0x1d, 0xd3, 0x98, 0x7f, 0xb0, 0xd9, 0x74, 0x30, 0xca,
+ 0x48, 0x4c, 0x8b, 0x00, 0x73, 0x5a, 0xa5, 0x93, 0x13, 0x40, 0x9c, 0xc4,
+ 0x1e, 0x81, 0x8f, 0xf8, 0xbb, 0x4a, 0x17, 0xc9, 0x02, 0x42, 0xee, 0xcf,
+ 0xf3, 0x3f, 0x30, 0xf0, 0x2c, 0xb3, 0x1d, 0x5d, 0x06, 0x67, 0x8b, 0x1a,
+ 0x0d, 0xc5, 0xb7, 0x21, 0xcd, 0x5f, 0x18, 0xc9, 0x3b, 0x92, 0x5a, 0x4f,
+ 0x84, 0x62, 0x5f, 0x6e,
+};
+static const struct drbg_kat_pr_false kat2489_t = {
+ 13, kat2489_entropyin, kat2489_nonce, kat2489_persstr,
+ kat2489_entropyinreseed, kat2489_addinreseed, kat2489_addin0,
+ kat2489_addin1, kat2489_retbits
+};
+static const struct drbg_kat kat2489 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2489_t
+};
+
+static const unsigned char kat2490_entropyin[] = {
+ 0xa0, 0x9f, 0x67, 0x98, 0x86, 0x1a, 0x55, 0x12, 0x2b, 0xa4, 0xc8, 0xca,
+ 0xb0, 0x18, 0x42, 0x32, 0x33, 0x18, 0x1e, 0x32, 0xb5, 0x33, 0x42, 0x98,
+ 0x42, 0x8b, 0x01, 0xaa, 0xe3, 0x05, 0x5a, 0x71, 0x3c, 0x31, 0x1f, 0x6d,
+ 0xa3, 0x49, 0xc4, 0xb0,
+};
+static const unsigned char kat2490_nonce[] = {0};
+static const unsigned char kat2490_persstr[] = {0};
+static const unsigned char kat2490_entropyinreseed[] = {
+ 0x68, 0x37, 0x24, 0x05, 0x40, 0x5f, 0x21, 0xaf, 0x3d, 0xd7, 0x81, 0xf1,
+ 0x9b, 0xd5, 0x4d, 0x5e, 0x27, 0x5c, 0xc8, 0x65, 0xe6, 0xbb, 0x01, 0x4c,
+ 0x7c, 0x50, 0x94, 0x50, 0xdb, 0x56, 0x90, 0xe2, 0x87, 0x3c, 0xe6, 0x31,
+ 0x75, 0xc4, 0x4f, 0x3b,
+};
+static const unsigned char kat2490_addinreseed[] = {
+ 0x35, 0x00, 0x1a, 0x8f, 0xf2, 0x45, 0x7d, 0xe5, 0x31, 0x3f, 0x05, 0x8e,
+ 0x85, 0x19, 0x29, 0x68, 0x4f, 0x04, 0x02, 0x36, 0x91, 0x77, 0x7b, 0x73,
+ 0xaa, 0xc7, 0x7f, 0x72, 0x4a, 0x8a, 0x18, 0x58, 0xc0, 0x77, 0x14, 0xc6,
+ 0xc3, 0xe3, 0x00, 0x75,
+};
+static const unsigned char kat2490_addin0[] = {
+ 0x37, 0xab, 0x67, 0x83, 0x01, 0xab, 0x45, 0xde, 0xca, 0x79, 0x1b, 0x4c,
+ 0x5b, 0x1a, 0x79, 0x2c, 0x54, 0x22, 0xf2, 0xe3, 0xbe, 0x57, 0xbc, 0xf7,
+ 0x7d, 0x92, 0x46, 0x8e, 0x25, 0x4d, 0x2d, 0x51, 0x04, 0xfc, 0x76, 0x2c,
+ 0xfa, 0x34, 0x22, 0x69,
+};
+static const unsigned char kat2490_addin1[] = {
+ 0xcb, 0x7a, 0x66, 0x11, 0xc7, 0xfd, 0x8f, 0xfb, 0x88, 0x4a, 0xb4, 0x17,
+ 0x66, 0xbf, 0x4a, 0x57, 0x87, 0x8f, 0x18, 0x7d, 0xbb, 0x09, 0xd7, 0xb0,
+ 0xe7, 0x7d, 0xb4, 0xed, 0x2c, 0xcf, 0xbc, 0xf3, 0xc6, 0x40, 0xa9, 0x34,
+ 0x8d, 0xec, 0x4e, 0x1f,
+};
+static const unsigned char kat2490_retbits[] = {
+ 0xb1, 0x94, 0xfd, 0x78, 0x6c, 0xfa, 0xb6, 0x68, 0x85, 0xcf, 0xe7, 0xb0,
+ 0x3d, 0xaf, 0x64, 0x2d, 0xc6, 0x0e, 0xfd, 0x73, 0x99, 0xf6, 0xc4, 0x8d,
+ 0x3d, 0xf5, 0x03, 0x37, 0xb4, 0x0c, 0x40, 0x34, 0x9b, 0x94, 0xca, 0x50,
+ 0x90, 0x53, 0x45, 0x1c, 0x34, 0xd6, 0xb8, 0x38, 0xce, 0x19, 0x05, 0xb5,
+ 0xcd, 0xdb, 0xcf, 0x5d, 0xf1, 0xbe, 0x2a, 0x97, 0x83, 0x40, 0x4b, 0xd0,
+ 0xb7, 0x2b, 0x52, 0x3d,
+};
+static const struct drbg_kat_pr_false kat2490_t = {
+ 14, kat2490_entropyin, kat2490_nonce, kat2490_persstr,
+ kat2490_entropyinreseed, kat2490_addinreseed, kat2490_addin0,
+ kat2490_addin1, kat2490_retbits
+};
+static const struct drbg_kat kat2490 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2490_t
+};
+
+static const unsigned char kat2491_entropyin[] = {
+ 0x9d, 0xda, 0x17, 0x5d, 0x9f, 0x26, 0xe5, 0x6b, 0x94, 0x49, 0xbb, 0x0c,
+ 0x9d, 0x02, 0x2c, 0x47, 0x13, 0x8a, 0xe7, 0x8b, 0xa3, 0x8c, 0x35, 0xd1,
+ 0x5f, 0x2d, 0x2c, 0x55, 0x5d, 0x69, 0xd4, 0xd6, 0x94, 0x5a, 0x57, 0xae,
+ 0x39, 0x69, 0x62, 0x52,
+};
+static const unsigned char kat2491_nonce[] = {0};
+static const unsigned char kat2491_persstr[] = {
+ 0x08, 0x94, 0x30, 0xcf, 0x99, 0x6e, 0x06, 0xa0, 0xdc, 0x31, 0x32, 0xc8,
+ 0xaa, 0x6e, 0x3e, 0xdc, 0x76, 0x51, 0xff, 0x4f, 0x01, 0xe7, 0x11, 0x3c,
+ 0xa3, 0xce, 0x2a, 0x21, 0x5e, 0x10, 0xec, 0x88, 0xad, 0x72, 0x36, 0xb8,
+ 0x30, 0x7c, 0x85, 0x69,
+};
+static const unsigned char kat2491_entropyinreseed[] = {
+ 0xd7, 0x5a, 0xae, 0x1b, 0x7b, 0xb4, 0x9b, 0x81, 0xff, 0x43, 0xa8, 0xe8,
+ 0x9f, 0x7b, 0x0c, 0xcb, 0xf6, 0xf6, 0xaf, 0x46, 0x47, 0xa5, 0x57, 0xf7,
+ 0x6e, 0xd7, 0x3f, 0x09, 0x25, 0x4d, 0x67, 0xff, 0xd7, 0xe3, 0x56, 0x29,
+ 0x86, 0x86, 0x23, 0x00,
+};
+static const unsigned char kat2491_addinreseed[] = {0};
+static const unsigned char kat2491_addin0[] = {0};
+static const unsigned char kat2491_addin1[] = {0};
+static const unsigned char kat2491_retbits[] = {
+ 0xbc, 0x80, 0x62, 0x76, 0x71, 0xbc, 0xa2, 0x67, 0xba, 0xe1, 0xa0, 0xde,
+ 0x9e, 0xb9, 0xe4, 0x81, 0xd8, 0x3b, 0x5c, 0xad, 0xe6, 0xe3, 0xc5, 0x08,
+ 0x24, 0x34, 0xb0, 0xb7, 0x00, 0xf3, 0x15, 0x43, 0x9c, 0x2c, 0xa2, 0xe9,
+ 0xde, 0xf4, 0x3b, 0x1b, 0xf2, 0x05, 0x84, 0x57, 0x7c, 0xef, 0x5b, 0x61,
+ 0xc0, 0x68, 0x1e, 0x4b, 0xd4, 0x40, 0xe8, 0x8d, 0xa3, 0x79, 0xa0, 0x21,
+ 0x4c, 0xf5, 0xf5, 0xcf,
+};
+static const struct drbg_kat_pr_false kat2491_t = {
+ 0, kat2491_entropyin, kat2491_nonce, kat2491_persstr,
+ kat2491_entropyinreseed, kat2491_addinreseed, kat2491_addin0,
+ kat2491_addin1, kat2491_retbits
+};
+static const struct drbg_kat kat2491 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2491_t
+};
+
+static const unsigned char kat2492_entropyin[] = {
+ 0x17, 0x3c, 0x24, 0xd2, 0xf5, 0xc4, 0x19, 0x57, 0xe4, 0x16, 0xb6, 0xc0,
+ 0x66, 0xa5, 0xad, 0xd4, 0xac, 0xd1, 0xfa, 0xc3, 0xa9, 0xb5, 0x5d, 0x94,
+ 0x52, 0x60, 0xf5, 0x90, 0x8c, 0xd5, 0xa1, 0x36, 0x48, 0x63, 0x92, 0xb6,
+ 0x90, 0x37, 0xcb, 0x48,
+};
+static const unsigned char kat2492_nonce[] = {0};
+static const unsigned char kat2492_persstr[] = {
+ 0xe6, 0x24, 0x31, 0xee, 0xfc, 0xd2, 0xb5, 0x7c, 0x74, 0x39, 0xe4, 0xdb,
+ 0x4d, 0x3d, 0x64, 0x4d, 0xe7, 0x9e, 0x56, 0xc5, 0x2a, 0x7f, 0xa9, 0xff,
+ 0x1d, 0xc0, 0x90, 0x10, 0x90, 0xa4, 0xc4, 0xa3, 0x7f, 0xa8, 0x2f, 0xae,
+ 0x4e, 0x32, 0x00, 0xed,
+};
+static const unsigned char kat2492_entropyinreseed[] = {
+ 0xd0, 0x7d, 0xb8, 0x0b, 0x04, 0x64, 0x95, 0xce, 0x43, 0x6c, 0x4a, 0xba,
+ 0x6c, 0x6a, 0xaa, 0xbb, 0x47, 0xe7, 0x61, 0x09, 0x63, 0x93, 0x0a, 0x18,
+ 0x47, 0x7f, 0x4f, 0x5d, 0x26, 0xcd, 0xcf, 0xf8, 0x21, 0x3b, 0x7f, 0xec,
+ 0x69, 0xcb, 0xea, 0x2b,
+};
+static const unsigned char kat2492_addinreseed[] = {0};
+static const unsigned char kat2492_addin0[] = {0};
+static const unsigned char kat2492_addin1[] = {0};
+static const unsigned char kat2492_retbits[] = {
+ 0x09, 0x73, 0x2d, 0xff, 0x5d, 0x83, 0x54, 0xe5, 0x8b, 0x87, 0x78, 0xfe,
+ 0x1b, 0xa1, 0x32, 0x82, 0x99, 0xb1, 0x06, 0xeb, 0x7d, 0x9f, 0x36, 0x3d,
+ 0xc1, 0xf6, 0xf1, 0x30, 0x30, 0xdf, 0xcc, 0x06, 0x8b, 0x90, 0x0a, 0xab,
+ 0xbe, 0x4f, 0x0e, 0xef, 0xfa, 0xfd, 0x14, 0xf8, 0x3a, 0x18, 0x33, 0x3e,
+ 0x61, 0xcb, 0xac, 0xba, 0x33, 0x87, 0x42, 0xe4, 0xe6, 0x81, 0x4e, 0x92,
+ 0x0b, 0x87, 0x5d, 0xf4,
+};
+static const struct drbg_kat_pr_false kat2492_t = {
+ 1, kat2492_entropyin, kat2492_nonce, kat2492_persstr,
+ kat2492_entropyinreseed, kat2492_addinreseed, kat2492_addin0,
+ kat2492_addin1, kat2492_retbits
+};
+static const struct drbg_kat kat2492 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2492_t
+};
+
+static const unsigned char kat2493_entropyin[] = {
+ 0x68, 0x4b, 0x47, 0xf0, 0x3f, 0x35, 0x7a, 0xad, 0x28, 0xb3, 0x05, 0xfc,
+ 0x9e, 0xa1, 0x90, 0x2b, 0x45, 0x01, 0x6e, 0x39, 0x70, 0x89, 0x7d, 0x5e,
+ 0xab, 0x8d, 0xd1, 0xcc, 0x3e, 0x9d, 0x49, 0xd7, 0xb8, 0xd6, 0xfd, 0xc3,
+ 0xa1, 0x07, 0x4c, 0x2e,
+};
+static const unsigned char kat2493_nonce[] = {0};
+static const unsigned char kat2493_persstr[] = {
+ 0x3b, 0x2b, 0xc5, 0x55, 0x28, 0x1c, 0x7e, 0x4c, 0x9b, 0x9c, 0xc6, 0x1b,
+ 0x46, 0x8f, 0x27, 0x95, 0xa6, 0x70, 0x48, 0xc4, 0x4e, 0x07, 0x8b, 0x90,
+ 0xba, 0xb8, 0x25, 0x20, 0x77, 0x08, 0x7f, 0xa2, 0xd2, 0xab, 0x61, 0xa4,
+ 0x46, 0xae, 0x3d, 0x8c,
+};
+static const unsigned char kat2493_entropyinreseed[] = {
+ 0x48, 0x1b, 0xa2, 0xf9, 0x64, 0x65, 0x23, 0x47, 0x2b, 0x75, 0x75, 0xbb,
+ 0x81, 0x43, 0xeb, 0xcf, 0x87, 0xdd, 0xa9, 0x7e, 0x68, 0xc0, 0x37, 0x7e,
+ 0xdf, 0x24, 0xbf, 0x6f, 0xfc, 0x7d, 0x93, 0x37, 0xa1, 0xa3, 0x3c, 0x74,
+ 0xb6, 0x5a, 0x44, 0x39,
+};
+static const unsigned char kat2493_addinreseed[] = {0};
+static const unsigned char kat2493_addin0[] = {0};
+static const unsigned char kat2493_addin1[] = {0};
+static const unsigned char kat2493_retbits[] = {
+ 0x84, 0xe4, 0x24, 0x79, 0xf3, 0x96, 0xb3, 0x9a, 0xd3, 0xb9, 0xc9, 0x1b,
+ 0x5c, 0xe5, 0x91, 0xd3, 0x4c, 0x61, 0x79, 0xf0, 0x6e, 0xf3, 0xe7, 0xd4,
+ 0x02, 0x2d, 0x64, 0x68, 0xf4, 0xc4, 0xb6, 0xc8, 0x0c, 0xa6, 0xf8, 0xd2,
+ 0x0d, 0xfc, 0x2c, 0x74, 0x47, 0x44, 0x45, 0xec, 0xc1, 0x4f, 0x99, 0x5b,
+ 0x08, 0x03, 0x21, 0xfd, 0x24, 0x06, 0x90, 0x9a, 0x6e, 0xc5, 0x60, 0x8c,
+ 0x21, 0x86, 0x78, 0x52,
+};
+static const struct drbg_kat_pr_false kat2493_t = {
+ 2, kat2493_entropyin, kat2493_nonce, kat2493_persstr,
+ kat2493_entropyinreseed, kat2493_addinreseed, kat2493_addin0,
+ kat2493_addin1, kat2493_retbits
+};
+static const struct drbg_kat kat2493 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2493_t
+};
+
+static const unsigned char kat2494_entropyin[] = {
+ 0x10, 0x56, 0xee, 0xb9, 0xa8, 0xea, 0x89, 0x1a, 0xb8, 0x63, 0x4d, 0x85,
+ 0x9e, 0x59, 0xa0, 0x32, 0x32, 0x23, 0x6e, 0xa4, 0x0a, 0x6f, 0x42, 0x4b,
+ 0xaa, 0x47, 0xd0, 0x40, 0xe9, 0x5e, 0xab, 0x9c, 0x2f, 0xc7, 0xad, 0xf7,
+ 0x39, 0x89, 0xaf, 0xc6,
+};
+static const unsigned char kat2494_nonce[] = {0};
+static const unsigned char kat2494_persstr[] = {
+ 0x9f, 0x02, 0x80, 0xdb, 0x13, 0xa8, 0x03, 0xc1, 0x1c, 0xac, 0x66, 0x48,
+ 0x4e, 0xb5, 0xe7, 0x31, 0x2b, 0xfa, 0xbe, 0xcc, 0x0b, 0x80, 0xec, 0xe7,
+ 0x31, 0x8a, 0xb4, 0x93, 0x9e, 0x76, 0x9f, 0xf0, 0xdc, 0x15, 0xf2, 0x67,
+ 0xad, 0x2b, 0x4a, 0x20,
+};
+static const unsigned char kat2494_entropyinreseed[] = {
+ 0x83, 0x13, 0xd7, 0xe7, 0xde, 0xe9, 0x50, 0x47, 0xd7, 0xcc, 0x78, 0xbe,
+ 0xa6, 0x83, 0x5a, 0x5f, 0xd8, 0x34, 0xf6, 0x6a, 0x5c, 0x75, 0xfa, 0xba,
+ 0x80, 0xb5, 0xa7, 0x55, 0x23, 0x3b, 0x03, 0xf7, 0xf6, 0x8e, 0x35, 0xd4,
+ 0xa2, 0x09, 0xc8, 0xd0,
+};
+static const unsigned char kat2494_addinreseed[] = {0};
+static const unsigned char kat2494_addin0[] = {0};
+static const unsigned char kat2494_addin1[] = {0};
+static const unsigned char kat2494_retbits[] = {
+ 0x33, 0xd5, 0x4c, 0x4f, 0x5b, 0x50, 0x45, 0x43, 0x8d, 0xfb, 0x1e, 0xa6,
+ 0x01, 0x6f, 0x39, 0x67, 0xef, 0x1f, 0x62, 0xdf, 0x2b, 0x41, 0x71, 0xad,
+ 0x74, 0x55, 0x98, 0xea, 0x13, 0x38, 0x6c, 0xa2, 0xf1, 0xe7, 0xb1, 0x55,
+ 0xc4, 0x92, 0xc9, 0xae, 0x78, 0x24, 0x7c, 0xd0, 0xbc, 0x1c, 0xa8, 0xfc,
+ 0x3b, 0xdc, 0x18, 0xb7, 0xa3, 0xd8, 0x2a, 0x60, 0xf2, 0x77, 0x9e, 0x56,
+ 0x9c, 0x99, 0x88, 0x26,
+};
+static const struct drbg_kat_pr_false kat2494_t = {
+ 3, kat2494_entropyin, kat2494_nonce, kat2494_persstr,
+ kat2494_entropyinreseed, kat2494_addinreseed, kat2494_addin0,
+ kat2494_addin1, kat2494_retbits
+};
+static const struct drbg_kat kat2494 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2494_t
+};
+
+static const unsigned char kat2495_entropyin[] = {
+ 0x3b, 0xeb, 0x2f, 0x46, 0x28, 0xab, 0x56, 0x99, 0x80, 0xe2, 0x27, 0x43,
+ 0x2f, 0x6d, 0x08, 0x99, 0x83, 0x6d, 0xdc, 0x27, 0x6a, 0x67, 0xbd, 0xd4,
+ 0xc7, 0x40, 0x92, 0xf6, 0x14, 0x68, 0xc0, 0x9a, 0x82, 0xc8, 0x2a, 0x79,
+ 0xb6, 0x1f, 0xb7, 0x24,
+};
+static const unsigned char kat2495_nonce[] = {0};
+static const unsigned char kat2495_persstr[] = {
+ 0xfd, 0xdd, 0x8a, 0x67, 0x8c, 0xff, 0xad, 0x03, 0xc6, 0x88, 0x5c, 0x33,
+ 0x87, 0x3c, 0xc4, 0xf6, 0xd0, 0xfc, 0x83, 0xee, 0x45, 0x36, 0xca, 0x87,
+ 0x3f, 0xa3, 0x1d, 0xc1, 0x0a, 0x1a, 0xef, 0x8f, 0x95, 0xf2, 0x0e, 0x05,
+ 0xcd, 0x25, 0xfd, 0x2a,
+};
+static const unsigned char kat2495_entropyinreseed[] = {
+ 0xb7, 0x72, 0xd2, 0x64, 0x70, 0x18, 0x57, 0x4d, 0x88, 0x33, 0xb4, 0xfe,
+ 0xb2, 0xec, 0xb6, 0xd3, 0x8d, 0x09, 0xe4, 0x55, 0x71, 0x8b, 0xf6, 0xcd,
+ 0xa8, 0x30, 0xeb, 0x19, 0xba, 0x6b, 0xc0, 0xe7, 0x51, 0x67, 0x33, 0xdc,
+ 0x2c, 0xa6, 0x49, 0x29,
+};
+static const unsigned char kat2495_addinreseed[] = {0};
+static const unsigned char kat2495_addin0[] = {0};
+static const unsigned char kat2495_addin1[] = {0};
+static const unsigned char kat2495_retbits[] = {
+ 0x94, 0x36, 0xc3, 0x4b, 0xcb, 0xd7, 0x4f, 0xe3, 0xd6, 0xa8, 0x9b, 0x35,
+ 0x51, 0xcf, 0x56, 0x9c, 0xd8, 0x34, 0x79, 0xeb, 0x10, 0xaf, 0x31, 0x92,
+ 0xa3, 0x14, 0xf8, 0x38, 0xfa, 0x77, 0x3c, 0xc5, 0x7e, 0xa0, 0x42, 0xfd,
+ 0x9c, 0xec, 0xb2, 0x92, 0x3d, 0x74, 0xb4, 0xd0, 0xec, 0x20, 0xb0, 0xa9,
+ 0xd4, 0x0a, 0x2a, 0xc1, 0xd7, 0x3a, 0xc1, 0x41, 0xf5, 0x65, 0x1d, 0x10,
+ 0x2b, 0x4b, 0x92, 0xfe,
+};
+static const struct drbg_kat_pr_false kat2495_t = {
+ 4, kat2495_entropyin, kat2495_nonce, kat2495_persstr,
+ kat2495_entropyinreseed, kat2495_addinreseed, kat2495_addin0,
+ kat2495_addin1, kat2495_retbits
+};
+static const struct drbg_kat kat2495 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2495_t
+};
+
+static const unsigned char kat2496_entropyin[] = {
+ 0x97, 0x5f, 0x1b, 0x28, 0x29, 0x53, 0x2c, 0xe3, 0x72, 0xf1, 0x94, 0x4a,
+ 0x94, 0xe6, 0x48, 0x47, 0x4c, 0x42, 0x4d, 0x36, 0x61, 0x28, 0xd6, 0xbb,
+ 0x68, 0x3c, 0x7e, 0x80, 0xce, 0xa8, 0xca, 0x48, 0x9c, 0xfb, 0x60, 0x6e,
+ 0xef, 0x28, 0x2b, 0xcc,
+};
+static const unsigned char kat2496_nonce[] = {0};
+static const unsigned char kat2496_persstr[] = {
+ 0xec, 0x22, 0x05, 0xda, 0xb4, 0x4c, 0xf2, 0x21, 0x01, 0x80, 0xb1, 0xa1,
+ 0xea, 0xd9, 0x9f, 0xbf, 0x4d, 0x50, 0x0a, 0x61, 0xad, 0x64, 0x78, 0x1c,
+ 0x1a, 0x7f, 0x46, 0xe0, 0xa3, 0xab, 0xe9, 0x09, 0xd3, 0xcf, 0x5a, 0x11,
+ 0xb0, 0xd7, 0xf7, 0x62,
+};
+static const unsigned char kat2496_entropyinreseed[] = {
+ 0xb2, 0x86, 0xfe, 0x71, 0x32, 0x3e, 0xf2, 0x8f, 0x92, 0x8a, 0x99, 0x68,
+ 0x52, 0x21, 0xf8, 0x21, 0x7d, 0x89, 0xe8, 0x0a, 0x38, 0x36, 0xc7, 0x40,
+ 0xae, 0x03, 0xa7, 0x5d, 0xb8, 0x16, 0xe9, 0x76, 0x1f, 0xc3, 0x76, 0xfc,
+ 0xe5, 0xe9, 0x98, 0x40,
+};
+static const unsigned char kat2496_addinreseed[] = {0};
+static const unsigned char kat2496_addin0[] = {0};
+static const unsigned char kat2496_addin1[] = {0};
+static const unsigned char kat2496_retbits[] = {
+ 0xf8, 0xb9, 0x85, 0xb4, 0x83, 0xc9, 0xf8, 0x96, 0x93, 0x6d, 0xae, 0x05,
+ 0x82, 0x2f, 0x99, 0x60, 0x5b, 0xd4, 0x85, 0xfe, 0x36, 0xd4, 0x06, 0xea,
+ 0x4a, 0x5f, 0x00, 0x1b, 0x1b, 0x67, 0xbe, 0x08, 0x3e, 0x92, 0x50, 0x0a,
+ 0xf1, 0x89, 0xa4, 0x06, 0x72, 0x0e, 0xa8, 0x72, 0x75, 0x4e, 0x2e, 0xdb,
+ 0xbc, 0xbf, 0x95, 0x5e, 0x48, 0xa6, 0xf0, 0x57, 0xbe, 0x54, 0xb7, 0x76,
+ 0x10, 0x0e, 0xdd, 0x07,
+};
+static const struct drbg_kat_pr_false kat2496_t = {
+ 5, kat2496_entropyin, kat2496_nonce, kat2496_persstr,
+ kat2496_entropyinreseed, kat2496_addinreseed, kat2496_addin0,
+ kat2496_addin1, kat2496_retbits
+};
+static const struct drbg_kat kat2496 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2496_t
+};
+
+static const unsigned char kat2497_entropyin[] = {
+ 0x8a, 0x67, 0x74, 0x1d, 0x38, 0xa3, 0xe7, 0x66, 0xf5, 0x61, 0x4d, 0x2f,
+ 0x70, 0xdc, 0x0b, 0x6a, 0x0e, 0x65, 0xbc, 0x26, 0x13, 0xdc, 0x5b, 0xc7,
+ 0xc0, 0x95, 0x37, 0x2e, 0x3f, 0x1b, 0xec, 0x55, 0x58, 0xb9, 0x49, 0x7b,
+ 0x5b, 0x0b, 0x1b, 0xf5,
+};
+static const unsigned char kat2497_nonce[] = {0};
+static const unsigned char kat2497_persstr[] = {
+ 0x0a, 0xcc, 0x8a, 0x38, 0xbf, 0xe2, 0x18, 0x4d, 0x00, 0x2f, 0xe5, 0xb2,
+ 0x11, 0x90, 0x05, 0xb0, 0xca, 0x43, 0x40, 0xa1, 0x36, 0x9f, 0x05, 0xd6,
+ 0xf6, 0x46, 0xda, 0xca, 0x0c, 0xaf, 0x72, 0xc7, 0x53, 0xce, 0x7e, 0x90,
+ 0xce, 0x7c, 0x30, 0xca,
+};
+static const unsigned char kat2497_entropyinreseed[] = {
+ 0xcf, 0x92, 0x8d, 0xa0, 0xeb, 0x64, 0xe5, 0x27, 0x3f, 0x2e, 0x1e, 0x44,
+ 0x3b, 0x3d, 0x55, 0x17, 0x3e, 0xf0, 0x9b, 0x96, 0x08, 0x48, 0x7d, 0x30,
+ 0x45, 0xf5, 0xe4, 0xda, 0x5e, 0x2d, 0x51, 0x5a, 0x5b, 0xc2, 0xc2, 0x4e,
+ 0x3e, 0x76, 0xe6, 0x73,
+};
+static const unsigned char kat2497_addinreseed[] = {0};
+static const unsigned char kat2497_addin0[] = {0};
+static const unsigned char kat2497_addin1[] = {0};
+static const unsigned char kat2497_retbits[] = {
+ 0xaa, 0xd6, 0x7f, 0x68, 0x44, 0x68, 0x10, 0x5b, 0x48, 0xbd, 0xa1, 0x0e,
+ 0x34, 0xd8, 0x6c, 0x90, 0xc8, 0x53, 0xf3, 0x4c, 0xd5, 0x93, 0xf9, 0xd8,
+ 0x7b, 0x3b, 0x7b, 0x61, 0x2a, 0x56, 0x7d, 0x87, 0x12, 0xf0, 0x6a, 0xa3,
+ 0xf7, 0xa5, 0x0d, 0x4e, 0xb6, 0xec, 0x39, 0x9a, 0x70, 0x37, 0xe5, 0x74,
+ 0x93, 0x38, 0xda, 0xdc, 0x74, 0x36, 0x4b, 0x0a, 0xe7, 0x39, 0x8b, 0x3d,
+ 0xd4, 0x08, 0x8f, 0x37,
+};
+static const struct drbg_kat_pr_false kat2497_t = {
+ 6, kat2497_entropyin, kat2497_nonce, kat2497_persstr,
+ kat2497_entropyinreseed, kat2497_addinreseed, kat2497_addin0,
+ kat2497_addin1, kat2497_retbits
+};
+static const struct drbg_kat kat2497 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2497_t
+};
+
+static const unsigned char kat2498_entropyin[] = {
+ 0x38, 0xe4, 0xf9, 0xd3, 0x95, 0x66, 0x7a, 0x3e, 0xb1, 0xf8, 0x67, 0xd7,
+ 0xfd, 0x2d, 0x59, 0x58, 0xe5, 0x7d, 0x04, 0x90, 0x3f, 0xc5, 0x2a, 0x26,
+ 0x0a, 0x1d, 0xc5, 0xe1, 0x6c, 0x09, 0xfd, 0x33, 0x37, 0x45, 0x49, 0x41,
+ 0xf3, 0x8b, 0x68, 0xc9,
+};
+static const unsigned char kat2498_nonce[] = {0};
+static const unsigned char kat2498_persstr[] = {
+ 0xd5, 0xc7, 0x16, 0xa6, 0x7c, 0x4c, 0x41, 0xd5, 0x32, 0xde, 0x02, 0x6d,
+ 0xb3, 0xe6, 0x48, 0x51, 0x2a, 0x8a, 0x53, 0xae, 0x77, 0x54, 0xb2, 0x2e,
+ 0x7b, 0xb9, 0x0f, 0x86, 0xa4, 0x99, 0xde, 0xe4, 0x2e, 0x6e, 0x3c, 0xd4,
+ 0x18, 0x4f, 0xda, 0x7a,
+};
+static const unsigned char kat2498_entropyinreseed[] = {
+ 0x8f, 0xf8, 0x9c, 0xf9, 0xb4, 0xb5, 0x3f, 0x12, 0x27, 0xee, 0xeb, 0xba,
+ 0xa2, 0xbf, 0x7b, 0x65, 0x88, 0x0a, 0x10, 0x40, 0x5d, 0x86, 0x75, 0x8a,
+ 0x5a, 0x15, 0xf3, 0x9a, 0x98, 0xc0, 0x80, 0x92, 0x79, 0xc2, 0x9a, 0x15,
+ 0xaa, 0xef, 0x83, 0x5c,
+};
+static const unsigned char kat2498_addinreseed[] = {0};
+static const unsigned char kat2498_addin0[] = {0};
+static const unsigned char kat2498_addin1[] = {0};
+static const unsigned char kat2498_retbits[] = {
+ 0x0c, 0xd2, 0xa6, 0xd0, 0x81, 0xcb, 0x81, 0x9b, 0xb3, 0xb7, 0xb4, 0xee,
+ 0x5c, 0xce, 0x2f, 0xcb, 0xbd, 0x6e, 0x2d, 0x0b, 0xc2, 0xac, 0x7d, 0xdf,
+ 0x1b, 0x74, 0xeb, 0x51, 0x54, 0x13, 0xfb, 0xdb, 0x6b, 0x97, 0xeb, 0x03,
+ 0xf7, 0x1f, 0x2f, 0x10, 0x79, 0xa5, 0x9f, 0x15, 0x8d, 0x0c, 0x05, 0x83,
+ 0x2f, 0xde, 0xcd, 0xf4, 0x09, 0x48, 0xfe, 0x2f, 0xd7, 0x24, 0xe2, 0xc2,
+ 0x90, 0xd6, 0x0f, 0x3b,
+};
+static const struct drbg_kat_pr_false kat2498_t = {
+ 7, kat2498_entropyin, kat2498_nonce, kat2498_persstr,
+ kat2498_entropyinreseed, kat2498_addinreseed, kat2498_addin0,
+ kat2498_addin1, kat2498_retbits
+};
+static const struct drbg_kat kat2498 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2498_t
+};
+
+static const unsigned char kat2499_entropyin[] = {
+ 0xf9, 0x5d, 0x71, 0x4d, 0x5d, 0xa5, 0x1e, 0x99, 0x4f, 0x71, 0x8f, 0x4b,
+ 0x43, 0x4b, 0xe5, 0xc5, 0xa2, 0x65, 0x80, 0x98, 0x8e, 0xcb, 0xf1, 0x57,
+ 0xbc, 0x2f, 0x21, 0xb8, 0x87, 0xee, 0xf9, 0x69, 0xd8, 0x62, 0x8d, 0x13,
+ 0xfc, 0xb5, 0x37, 0x32,
+};
+static const unsigned char kat2499_nonce[] = {0};
+static const unsigned char kat2499_persstr[] = {
+ 0x2d, 0xb9, 0xc5, 0xf6, 0xa1, 0x2c, 0xfa, 0xf1, 0x69, 0x40, 0x65, 0x8a,
+ 0x99, 0x57, 0x2f, 0x9c, 0x6f, 0x68, 0x70, 0x60, 0xa1, 0x44, 0x0a, 0xa5,
+ 0xcd, 0x31, 0xbf, 0x6f, 0x21, 0x9f, 0x69, 0x80, 0xce, 0xab, 0xce, 0xd2,
+ 0xf3, 0x62, 0x13, 0x31,
+};
+static const unsigned char kat2499_entropyinreseed[] = {
+ 0x57, 0x7f, 0x4b, 0xf6, 0x80, 0xc0, 0xb0, 0xf4, 0x44, 0xfc, 0xf2, 0x7d,
+ 0x49, 0x93, 0x20, 0x4c, 0xd1, 0x6a, 0x07, 0x26, 0x91, 0x28, 0x8f, 0x7f,
+ 0x5c, 0xbf, 0x32, 0x47, 0xdb, 0x32, 0xd1, 0xc4, 0x3e, 0x8a, 0xa1, 0xd5,
+ 0x5d, 0x15, 0x9e, 0xd1,
+};
+static const unsigned char kat2499_addinreseed[] = {0};
+static const unsigned char kat2499_addin0[] = {0};
+static const unsigned char kat2499_addin1[] = {0};
+static const unsigned char kat2499_retbits[] = {
+ 0x15, 0xb7, 0x56, 0x28, 0x47, 0x08, 0x3e, 0xe8, 0xf4, 0x29, 0xf1, 0x7a,
+ 0xc8, 0x07, 0xc6, 0x00, 0x43, 0x68, 0x9d, 0xd9, 0x00, 0x82, 0x88, 0xba,
+ 0xb1, 0xbc, 0x3b, 0x00, 0xd9, 0x6a, 0x6f, 0x77, 0xf3, 0xcd, 0x69, 0x6c,
+ 0xfe, 0x1c, 0x42, 0x28, 0xd0, 0xda, 0x63, 0x19, 0x45, 0xa0, 0x65, 0xd8,
+ 0x92, 0x5f, 0x05, 0x19, 0xdd, 0x41, 0x08, 0x25, 0x6f, 0xa7, 0x51, 0x58,
+ 0x35, 0xaa, 0x98, 0xbc,
+};
+static const struct drbg_kat_pr_false kat2499_t = {
+ 8, kat2499_entropyin, kat2499_nonce, kat2499_persstr,
+ kat2499_entropyinreseed, kat2499_addinreseed, kat2499_addin0,
+ kat2499_addin1, kat2499_retbits
+};
+static const struct drbg_kat kat2499 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2499_t
+};
+
+static const unsigned char kat2500_entropyin[] = {
+ 0xe8, 0xa7, 0x84, 0xd9, 0x51, 0xdd, 0x71, 0xaf, 0x6d, 0xb0, 0xc2, 0xb9,
+ 0xae, 0xcc, 0x11, 0x88, 0x32, 0x34, 0x91, 0x9e, 0xd8, 0xfe, 0xe7, 0xe9,
+ 0xcb, 0x45, 0x48, 0xe2, 0xcc, 0x38, 0xe4, 0x75, 0x53, 0x65, 0x5f, 0x7b,
+ 0x3e, 0x0a, 0x09, 0x6a,
+};
+static const unsigned char kat2500_nonce[] = {0};
+static const unsigned char kat2500_persstr[] = {
+ 0x01, 0xc1, 0xa2, 0xdc, 0x29, 0xf8, 0x7e, 0x6e, 0x57, 0xca, 0xe5, 0xec,
+ 0xf5, 0x38, 0x00, 0x4a, 0xc0, 0x84, 0x2c, 0x63, 0x50, 0xba, 0x6b, 0x5f,
+ 0x84, 0x58, 0x42, 0x72, 0xfe, 0x75, 0x50, 0xde, 0x11, 0xda, 0x08, 0xdf,
+ 0xd5, 0xc5, 0x49, 0xeb,
+};
+static const unsigned char kat2500_entropyinreseed[] = {
+ 0x34, 0xb2, 0xe8, 0x96, 0x26, 0x51, 0x3d, 0x37, 0x0b, 0x80, 0x9f, 0x97,
+ 0x2e, 0x08, 0xf6, 0x61, 0x03, 0x6e, 0x19, 0xb0, 0x60, 0x24, 0xa4, 0x0b,
+ 0x66, 0x7f, 0xaf, 0xe5, 0xa5, 0xdd, 0xa8, 0xd6, 0x55, 0x59, 0xb9, 0xa0,
+ 0x56, 0x15, 0xf7, 0x50,
+};
+static const unsigned char kat2500_addinreseed[] = {0};
+static const unsigned char kat2500_addin0[] = {0};
+static const unsigned char kat2500_addin1[] = {0};
+static const unsigned char kat2500_retbits[] = {
+ 0x62, 0x14, 0x55, 0x2b, 0x58, 0x45, 0x58, 0x76, 0xa5, 0x87, 0x24, 0x55,
+ 0x81, 0x14, 0xc5, 0x54, 0x4f, 0xe0, 0x47, 0x58, 0x60, 0xe1, 0x6a, 0x01,
+ 0x51, 0x31, 0x59, 0x00, 0x58, 0xf2, 0x2d, 0x6c, 0xd5, 0x6a, 0xe9, 0x81,
+ 0x7a, 0x53, 0x84, 0x37, 0x0b, 0x86, 0xcf, 0xcc, 0x24, 0xa3, 0x88, 0xb6,
+ 0xf2, 0x48, 0xd1, 0x08, 0x4b, 0xc7, 0x65, 0x50, 0x81, 0x93, 0x52, 0x91,
+ 0x52, 0x33, 0x18, 0x2c,
+};
+static const struct drbg_kat_pr_false kat2500_t = {
+ 9, kat2500_entropyin, kat2500_nonce, kat2500_persstr,
+ kat2500_entropyinreseed, kat2500_addinreseed, kat2500_addin0,
+ kat2500_addin1, kat2500_retbits
+};
+static const struct drbg_kat kat2500 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2500_t
+};
+
+static const unsigned char kat2501_entropyin[] = {
+ 0x6a, 0x43, 0xed, 0xcc, 0x64, 0x80, 0x5d, 0xc7, 0x8e, 0x49, 0x74, 0x9c,
+ 0x85, 0x7f, 0x1f, 0x56, 0x9e, 0xb9, 0x8f, 0xf3, 0xbe, 0x7a, 0x6e, 0x3f,
+ 0xe9, 0x07, 0xb9, 0x52, 0x77, 0x03, 0x2f, 0xa8, 0xc1, 0x37, 0x7a, 0x6e,
+ 0x91, 0xf3, 0xc3, 0x3f,
+};
+static const unsigned char kat2501_nonce[] = {0};
+static const unsigned char kat2501_persstr[] = {
+ 0x34, 0x43, 0x1d, 0xbe, 0x6e, 0x8f, 0x42, 0xf0, 0xe6, 0x82, 0x67, 0x15,
+ 0xd3, 0x01, 0x6d, 0xdb, 0x58, 0x26, 0x6a, 0xe7, 0x86, 0xf4, 0xaf, 0x60,
+ 0xed, 0xd1, 0xc9, 0xa2, 0x1e, 0x3e, 0x69, 0xfc, 0xf0, 0x11, 0x1e, 0x2f,
+ 0x7c, 0x8d, 0x46, 0x06,
+};
+static const unsigned char kat2501_entropyinreseed[] = {
+ 0x94, 0x44, 0x16, 0x05, 0x69, 0xd4, 0xe6, 0xa3, 0xd4, 0x32, 0x11, 0x69,
+ 0x28, 0xa9, 0x43, 0x8b, 0x7f, 0xdc, 0x7a, 0xba, 0xbe, 0x36, 0xa2, 0x34,
+ 0x45, 0xfe, 0xe9, 0x60, 0x32, 0x77, 0xf0, 0x7f, 0xaf, 0xee, 0x45, 0xf6,
+ 0xde, 0x6e, 0xda, 0x78,
+};
+static const unsigned char kat2501_addinreseed[] = {0};
+static const unsigned char kat2501_addin0[] = {0};
+static const unsigned char kat2501_addin1[] = {0};
+static const unsigned char kat2501_retbits[] = {
+ 0x97, 0x6e, 0x6e, 0x5b, 0x4e, 0x57, 0xd2, 0x05, 0xcb, 0x06, 0x00, 0xf6,
+ 0xad, 0xaa, 0xc5, 0x13, 0xb8, 0x03, 0x30, 0x33, 0x4d, 0x55, 0x38, 0xa2,
+ 0xe0, 0xc4, 0x7a, 0xc4, 0x24, 0x00, 0x7d, 0xc5, 0xd4, 0x46, 0xf1, 0x09,
+ 0xda, 0xae, 0x0d, 0xa7, 0x5e, 0xb7, 0x24, 0xe5, 0xcb, 0x59, 0x5e, 0xc8,
+ 0x0f, 0x50, 0x60, 0x9f, 0x8c, 0x6a, 0x93, 0xbe, 0xe5, 0x61, 0xbd, 0x16,
+ 0xaa, 0xa3, 0xf5, 0xff,
+};
+static const struct drbg_kat_pr_false kat2501_t = {
+ 10, kat2501_entropyin, kat2501_nonce, kat2501_persstr,
+ kat2501_entropyinreseed, kat2501_addinreseed, kat2501_addin0,
+ kat2501_addin1, kat2501_retbits
+};
+static const struct drbg_kat kat2501 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2501_t
+};
+
+static const unsigned char kat2502_entropyin[] = {
+ 0xf2, 0xbd, 0xb4, 0x01, 0xef, 0xe8, 0xc3, 0x01, 0x61, 0xcf, 0x1c, 0xeb,
+ 0x6a, 0xaf, 0x40, 0x67, 0x2e, 0x37, 0x83, 0x6d, 0x05, 0xca, 0x4a, 0xa5,
+ 0xeb, 0x38, 0x93, 0xf0, 0x70, 0x36, 0x73, 0x8f, 0x2a, 0x94, 0x94, 0x6d,
+ 0x82, 0x9f, 0x04, 0x3a,
+};
+static const unsigned char kat2502_nonce[] = {0};
+static const unsigned char kat2502_persstr[] = {
+ 0x2d, 0xfa, 0x04, 0xbc, 0x88, 0xeb, 0x80, 0x16, 0xb8, 0x41, 0xc6, 0xb5,
+ 0xb4, 0xf0, 0x2e, 0x6d, 0x68, 0x0c, 0x0f, 0x94, 0x46, 0xca, 0x23, 0x8d,
+ 0xa1, 0xde, 0x96, 0xf5, 0x8a, 0x1e, 0x77, 0x9f, 0xbd, 0xf2, 0xf0, 0xa9,
+ 0x98, 0x33, 0x4c, 0xcf,
+};
+static const unsigned char kat2502_entropyinreseed[] = {
+ 0xe2, 0x7e, 0x0d, 0x99, 0xe3, 0x84, 0xee, 0xf6, 0x46, 0x9b, 0xc3, 0x4f,
+ 0x74, 0x2e, 0xf9, 0x7b, 0xbc, 0x62, 0xa0, 0x3a, 0x2e, 0x1b, 0x4a, 0x02,
+ 0xf8, 0x83, 0x83, 0xf0, 0x38, 0x0f, 0xdb, 0x77, 0xe6, 0xfd, 0xb5, 0x4c,
+ 0x9f, 0x3e, 0x6f, 0x0e,
+};
+static const unsigned char kat2502_addinreseed[] = {0};
+static const unsigned char kat2502_addin0[] = {0};
+static const unsigned char kat2502_addin1[] = {0};
+static const unsigned char kat2502_retbits[] = {
+ 0x34, 0xc7, 0x3a, 0x18, 0xc7, 0x82, 0x58, 0xab, 0xc4, 0x54, 0x14, 0xf0,
+ 0x6d, 0x8c, 0x2f, 0xd6, 0xf6, 0xf2, 0x7c, 0x20, 0xa0, 0x1f, 0x40, 0xc5,
+ 0x3a, 0xc7, 0xc1, 0xc7, 0x02, 0xf2, 0x08, 0xc6, 0x8f, 0x35, 0x3f, 0xae,
+ 0xad, 0x3b, 0xc5, 0x85, 0xca, 0x18, 0xf9, 0x34, 0xf6, 0x81, 0x94, 0x19,
+ 0xdb, 0xa0, 0x9c, 0xa7, 0x17, 0xef, 0x10, 0xee, 0x5a, 0xfd, 0xb4, 0xc9,
+ 0xa9, 0x94, 0xab, 0x09,
+};
+static const struct drbg_kat_pr_false kat2502_t = {
+ 11, kat2502_entropyin, kat2502_nonce, kat2502_persstr,
+ kat2502_entropyinreseed, kat2502_addinreseed, kat2502_addin0,
+ kat2502_addin1, kat2502_retbits
+};
+static const struct drbg_kat kat2502 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2502_t
+};
+
+static const unsigned char kat2503_entropyin[] = {
+ 0x51, 0x35, 0xd6, 0xb3, 0x75, 0x76, 0x64, 0xbd, 0x62, 0xed, 0x61, 0x5e,
+ 0x89, 0xd5, 0x5c, 0x31, 0xcb, 0xc7, 0xc0, 0x2d, 0x80, 0x2c, 0x69, 0x76,
+ 0x04, 0x25, 0x57, 0x2b, 0xdd, 0x10, 0x9a, 0xde, 0x87, 0xfe, 0x92, 0xc4,
+ 0x30, 0x69, 0xb1, 0x05,
+};
+static const unsigned char kat2503_nonce[] = {0};
+static const unsigned char kat2503_persstr[] = {
+ 0xb1, 0x84, 0xcb, 0x39, 0x10, 0xca, 0x93, 0x76, 0x78, 0xca, 0x32, 0xb7,
+ 0x17, 0x8b, 0xe8, 0xff, 0x51, 0x48, 0xe3, 0xd9, 0x05, 0xb2, 0x19, 0xde,
+ 0x72, 0x09, 0x32, 0x6d, 0xe1, 0xc4, 0x29, 0xd9, 0xb7, 0x0d, 0xfb, 0xa5,
+ 0x07, 0x92, 0xe1, 0xdb,
+};
+static const unsigned char kat2503_entropyinreseed[] = {
+ 0x2e, 0x1c, 0x3a, 0x0c, 0x36, 0x32, 0x84, 0x83, 0xdd, 0xd0, 0x70, 0xd2,
+ 0x3f, 0xbe, 0x27, 0x77, 0x98, 0xf1, 0xdb, 0x75, 0x25, 0x36, 0x8a, 0x93,
+ 0xae, 0x91, 0x99, 0xad, 0xc8, 0xab, 0xfb, 0x99, 0x69, 0x2d, 0x99, 0xb7,
+ 0x04, 0x5e, 0x1b, 0x36,
+};
+static const unsigned char kat2503_addinreseed[] = {0};
+static const unsigned char kat2503_addin0[] = {0};
+static const unsigned char kat2503_addin1[] = {0};
+static const unsigned char kat2503_retbits[] = {
+ 0xc2, 0x5f, 0x24, 0x2a, 0xa9, 0xca, 0x3c, 0x3a, 0x49, 0x02, 0x53, 0xc5,
+ 0x27, 0xc9, 0x1d, 0x13, 0x94, 0x24, 0xe7, 0x10, 0x45, 0x23, 0x9f, 0x63,
+ 0x85, 0x8b, 0x0a, 0x92, 0xf4, 0x4c, 0xad, 0x54, 0x74, 0x58, 0xd5, 0x40,
+ 0x72, 0x93, 0x4c, 0xab, 0xf0, 0x4e, 0x8c, 0x3b, 0xfe, 0xfe, 0x67, 0xf9,
+ 0x8a, 0xed, 0xa7, 0x1a, 0xd6, 0x52, 0x18, 0x11, 0x4c, 0xcf, 0x68, 0xd8,
+ 0x6f, 0xba, 0x8f, 0xc3,
+};
+static const struct drbg_kat_pr_false kat2503_t = {
+ 12, kat2503_entropyin, kat2503_nonce, kat2503_persstr,
+ kat2503_entropyinreseed, kat2503_addinreseed, kat2503_addin0,
+ kat2503_addin1, kat2503_retbits
+};
+static const struct drbg_kat kat2503 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2503_t
+};
+
+static const unsigned char kat2504_entropyin[] = {
+ 0xe3, 0xbd, 0x62, 0x69, 0x49, 0xde, 0x14, 0x72, 0xb1, 0xda, 0x81, 0x17,
+ 0xe9, 0x2e, 0xb5, 0x2b, 0x4f, 0xa0, 0x5b, 0x05, 0x0d, 0xac, 0x40, 0xcd,
+ 0xdf, 0xc9, 0x3d, 0x85, 0x3f, 0x5e, 0x50, 0x03, 0xe4, 0xb6, 0xc9, 0xa8,
+ 0xbe, 0x72, 0x79, 0xcb,
+};
+static const unsigned char kat2504_nonce[] = {0};
+static const unsigned char kat2504_persstr[] = {
+ 0xaa, 0xc3, 0x43, 0x45, 0xed, 0x2f, 0x46, 0x8b, 0x62, 0xe1, 0x65, 0x96,
+ 0x2b, 0xa3, 0x93, 0x1d, 0x7b, 0x82, 0x15, 0x52, 0x6e, 0x41, 0x32, 0xc0,
+ 0x28, 0x35, 0xaa, 0xd2, 0x20, 0xd3, 0x40, 0xf3, 0x18, 0x83, 0x6a, 0xc4,
+ 0xf5, 0x28, 0x57, 0xea,
+};
+static const unsigned char kat2504_entropyinreseed[] = {
+ 0x1f, 0x06, 0x4f, 0xe5, 0x9c, 0xd2, 0x68, 0xab, 0x33, 0x32, 0x3b, 0x30,
+ 0x6a, 0xa9, 0x15, 0x6e, 0x13, 0xf6, 0x3e, 0xc1, 0x95, 0x94, 0x22, 0xb0,
+ 0x0d, 0xcb, 0xb5, 0x52, 0x22, 0xf0, 0xa2, 0x8c, 0x70, 0x2b, 0x2a, 0xcc,
+ 0x13, 0x44, 0x3a, 0x94,
+};
+static const unsigned char kat2504_addinreseed[] = {0};
+static const unsigned char kat2504_addin0[] = {0};
+static const unsigned char kat2504_addin1[] = {0};
+static const unsigned char kat2504_retbits[] = {
+ 0xbc, 0xf7, 0xf7, 0x56, 0x37, 0x1b, 0x9a, 0x4e, 0xaf, 0x9a, 0x64, 0x4d,
+ 0x9c, 0x67, 0xdb, 0x2e, 0x18, 0x8c, 0xf7, 0x0a, 0x12, 0x87, 0x1c, 0xf9,
+ 0xcc, 0x54, 0xea, 0xda, 0x5c, 0xd5, 0x30, 0xe6, 0x0b, 0x01, 0x5b, 0x4d,
+ 0x8c, 0x28, 0x11, 0xf7, 0xb0, 0x09, 0x9a, 0xac, 0x10, 0x26, 0x58, 0xb9,
+ 0xce, 0xef, 0x3d, 0x89, 0x6c, 0x6d, 0xb1, 0x1e, 0xa5, 0xbf, 0xc7, 0xd0,
+ 0xdc, 0x1a, 0x26, 0x3c,
+};
+static const struct drbg_kat_pr_false kat2504_t = {
+ 13, kat2504_entropyin, kat2504_nonce, kat2504_persstr,
+ kat2504_entropyinreseed, kat2504_addinreseed, kat2504_addin0,
+ kat2504_addin1, kat2504_retbits
+};
+static const struct drbg_kat kat2504 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2504_t
+};
+
+static const unsigned char kat2505_entropyin[] = {
+ 0xe4, 0xff, 0xff, 0x5c, 0x4c, 0x2e, 0x1e, 0x03, 0x72, 0x5a, 0x9b, 0xe4,
+ 0xa9, 0x10, 0x09, 0x57, 0xd1, 0x01, 0x03, 0xd0, 0x29, 0x01, 0xbf, 0xea,
+ 0xba, 0x3e, 0x26, 0x85, 0x1d, 0x1b, 0x40, 0x37, 0x07, 0x19, 0x86, 0xc0,
+ 0x49, 0x28, 0x30, 0x84,
+};
+static const unsigned char kat2505_nonce[] = {0};
+static const unsigned char kat2505_persstr[] = {
+ 0x00, 0x3b, 0x5e, 0x53, 0x4b, 0xb5, 0x65, 0xf4, 0xe1, 0xea, 0xcb, 0x22,
+ 0xf2, 0xa2, 0xa6, 0x50, 0x93, 0xdd, 0x0c, 0x78, 0x2a, 0x27, 0x80, 0x5f,
+ 0x0c, 0x4c, 0x4b, 0x46, 0xc7, 0x27, 0x91, 0x98, 0x7f, 0xc0, 0x7b, 0xd2,
+ 0x48, 0x13, 0x88, 0x08,
+};
+static const unsigned char kat2505_entropyinreseed[] = {
+ 0xf2, 0xc1, 0x67, 0x13, 0xda, 0x96, 0xef, 0x43, 0x5d, 0x96, 0xc6, 0x3f,
+ 0xbb, 0xc5, 0x7d, 0x49, 0xc4, 0x4d, 0x99, 0xc6, 0x79, 0xc1, 0xaf, 0x53,
+ 0xa1, 0x2c, 0xad, 0xea, 0x98, 0xd3, 0x19, 0x81, 0xa7, 0xd0, 0x69, 0x91,
+ 0xef, 0xee, 0xc7, 0x3f,
+};
+static const unsigned char kat2505_addinreseed[] = {0};
+static const unsigned char kat2505_addin0[] = {0};
+static const unsigned char kat2505_addin1[] = {0};
+static const unsigned char kat2505_retbits[] = {
+ 0x67, 0xc4, 0x09, 0x15, 0x7d, 0x60, 0xf8, 0x70, 0x3d, 0xa2, 0x37, 0xc4,
+ 0xc8, 0xb4, 0xf1, 0x24, 0x29, 0x8b, 0xc9, 0x5f, 0x68, 0xcd, 0x55, 0x10,
+ 0x30, 0x4c, 0x21, 0x67, 0x14, 0x5f, 0xb7, 0xc4, 0xbe, 0xea, 0xdb, 0xc6,
+ 0xd7, 0xff, 0x9b, 0x26, 0x1b, 0x42, 0x0e, 0x93, 0xcf, 0x9f, 0xb1, 0x35,
+ 0xd9, 0x94, 0x6d, 0x5f, 0x4c, 0x48, 0x29, 0x55, 0x7e, 0x7d, 0xcd, 0x71,
+ 0x31, 0x43, 0x11, 0x5b,
+};
+static const struct drbg_kat_pr_false kat2505_t = {
+ 14, kat2505_entropyin, kat2505_nonce, kat2505_persstr,
+ kat2505_entropyinreseed, kat2505_addinreseed, kat2505_addin0,
+ kat2505_addin1, kat2505_retbits
+};
+static const struct drbg_kat kat2505 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2505_t
+};
+
+static const unsigned char kat2506_entropyin[] = {
+ 0x53, 0x48, 0x16, 0x6b, 0xb5, 0x11, 0xaf, 0x51, 0xda, 0x93, 0xa4, 0x22,
+ 0x1d, 0x87, 0x07, 0x1c, 0xd3, 0x44, 0x2b, 0x7e, 0x95, 0x91, 0x44, 0x36,
+ 0x23, 0xc7, 0xa7, 0x49, 0x1c, 0x13, 0xea, 0x64, 0x7f, 0x20, 0x83, 0xba,
+ 0x85, 0x51, 0x8b, 0xc2,
+};
+static const unsigned char kat2506_nonce[] = {0};
+static const unsigned char kat2506_persstr[] = {
+ 0xc7, 0xb9, 0xfc, 0x16, 0x7f, 0x76, 0x55, 0xdd, 0xce, 0x82, 0xfc, 0xfa,
+ 0x91, 0x07, 0x3f, 0x83, 0x90, 0x01, 0xbb, 0x8b, 0xf0, 0x8f, 0x5b, 0xeb,
+ 0xec, 0xa5, 0x77, 0xe6, 0xbc, 0x1b, 0xd8, 0x83, 0x82, 0xd3, 0x0e, 0x0c,
+ 0xd9, 0x38, 0x4e, 0xc1,
+};
+static const unsigned char kat2506_entropyinreseed[] = {
+ 0xcd, 0xbb, 0x99, 0x33, 0x5a, 0x94, 0x7e, 0x0a, 0x6f, 0xc4, 0x35, 0xf3,
+ 0x4b, 0x1a, 0x72, 0xee, 0x2e, 0xa0, 0x30, 0x1f, 0x0c, 0x57, 0x9c, 0xc8,
+ 0x3c, 0xd2, 0x20, 0x0d, 0xac, 0x54, 0x05, 0xf5, 0x4a, 0x32, 0xd9, 0xd0,
+ 0x53, 0xb4, 0x1a, 0x25,
+};
+static const unsigned char kat2506_addinreseed[] = {
+ 0x1b, 0x38, 0x31, 0x91, 0x6e, 0xe5, 0x61, 0x32, 0x2a, 0xcf, 0x6e, 0x1f,
+ 0xc5, 0x20, 0x4c, 0xf7, 0x0c, 0x77, 0x58, 0x98, 0x9d, 0xf5, 0x08, 0x14,
+ 0x8b, 0xc3, 0xce, 0x03, 0x11, 0x31, 0x67, 0x23, 0xd8, 0xfc, 0x50, 0xcb,
+ 0xdd, 0x4e, 0x36, 0x51,
+};
+static const unsigned char kat2506_addin0[] = {
+ 0xb0, 0xbe, 0xfc, 0xcf, 0xfd, 0x69, 0xf9, 0x0b, 0x7c, 0x99, 0x71, 0xf5,
+ 0x9a, 0x6d, 0xa1, 0x8c, 0xad, 0x4b, 0x92, 0x23, 0xd7, 0x8c, 0x07, 0x57,
+ 0xd2, 0xed, 0xcb, 0xc4, 0xc1, 0x0e, 0x4b, 0xf5, 0x99, 0x74, 0x49, 0x90,
+ 0x69, 0x2f, 0x8e, 0x4c,
+};
+static const unsigned char kat2506_addin1[] = {
+ 0xb8, 0xe0, 0x23, 0xe9, 0x64, 0xb4, 0x28, 0x7c, 0xfe, 0x96, 0xd0, 0x66,
+ 0x6d, 0xb1, 0xae, 0x60, 0xb3, 0x95, 0xf8, 0x69, 0xed, 0xc8, 0x92, 0x05,
+ 0x60, 0xad, 0xfc, 0xb4, 0x5d, 0x44, 0x2c, 0x03, 0x5d, 0x75, 0xa0, 0x15,
+ 0x62, 0x21, 0x1d, 0x17,
+};
+static const unsigned char kat2506_retbits[] = {
+ 0xec, 0xff, 0x7d, 0x89, 0xfb, 0xeb, 0xfd, 0xb1, 0x0b, 0xaa, 0x84, 0x99,
+ 0x77, 0xa9, 0xe5, 0x51, 0xb9, 0x0a, 0x70, 0xc4, 0x6d, 0xd3, 0xf1, 0x68,
+ 0x6e, 0xb3, 0xf1, 0xc7, 0x67, 0x88, 0x2a, 0x5e, 0xf6, 0x8d, 0x38, 0x50,
+ 0x18, 0xf0, 0x7d, 0x84, 0xf7, 0x6b, 0x69, 0xfa, 0x27, 0x24, 0xc4, 0xb3,
+ 0xf1, 0x34, 0xb6, 0xc0, 0x42, 0x93, 0xf2, 0x57, 0x3f, 0x3e, 0x9b, 0x28,
+ 0xc9, 0x1c, 0x46, 0x2f,
+};
+static const struct drbg_kat_pr_false kat2506_t = {
+ 0, kat2506_entropyin, kat2506_nonce, kat2506_persstr,
+ kat2506_entropyinreseed, kat2506_addinreseed, kat2506_addin0,
+ kat2506_addin1, kat2506_retbits
+};
+static const struct drbg_kat kat2506 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2506_t
+};
+
+static const unsigned char kat2507_entropyin[] = {
+ 0x1d, 0x9a, 0xa6, 0x38, 0x2d, 0xba, 0x76, 0x30, 0xa8, 0x8c, 0xfb, 0x64,
+ 0x2f, 0x4b, 0xb9, 0x91, 0x82, 0xa3, 0xb5, 0xab, 0x09, 0x94, 0xfb, 0xc1,
+ 0x51, 0xc3, 0x77, 0xd9, 0x98, 0x25, 0x2b, 0x54, 0x6d, 0xca, 0x18, 0x35,
+ 0x69, 0xce, 0x39, 0x74,
+};
+static const unsigned char kat2507_nonce[] = {0};
+static const unsigned char kat2507_persstr[] = {
+ 0xc8, 0x4f, 0xa8, 0x35, 0x58, 0xcd, 0xba, 0xcd, 0x6d, 0xdb, 0x6c, 0xb0,
+ 0x1e, 0xf4, 0x9a, 0x8c, 0x52, 0x77, 0xac, 0x47, 0xcf, 0x53, 0xbe, 0x9e,
+ 0x0c, 0xe8, 0x1a, 0x80, 0x9e, 0x0f, 0x28, 0x13, 0x70, 0x44, 0xc0, 0x5d,
+ 0x48, 0xeb, 0x0f, 0xac,
+};
+static const unsigned char kat2507_entropyinreseed[] = {
+ 0xda, 0x5c, 0x24, 0xc1, 0x8f, 0x59, 0x50, 0x01, 0xc3, 0xe9, 0xcc, 0x4e,
+ 0x4d, 0xcf, 0xe9, 0xef, 0xd1, 0xf3, 0x9c, 0x7a, 0xc5, 0x40, 0x2f, 0xca,
+ 0xc5, 0x49, 0x20, 0x04, 0x82, 0xa0, 0x90, 0x41, 0xa4, 0x23, 0x9e, 0xc9,
+ 0x68, 0x1a, 0xeb, 0x15,
+};
+static const unsigned char kat2507_addinreseed[] = {
+ 0xa6, 0x0c, 0xb6, 0x44, 0x25, 0x85, 0xc8, 0x7a, 0x61, 0x5e, 0xbc, 0x3c,
+ 0xe8, 0xd0, 0x45, 0x0c, 0xd1, 0x4c, 0xa7, 0x50, 0xd3, 0x41, 0x96, 0xc3,
+ 0x91, 0x2b, 0xdf, 0x56, 0xf5, 0x5e, 0x5b, 0x10, 0xfe, 0xe0, 0x10, 0x08,
+ 0xdc, 0x60, 0x71, 0x76,
+};
+static const unsigned char kat2507_addin0[] = {
+ 0x41, 0xa2, 0x39, 0x66, 0x31, 0x57, 0x51, 0xdf, 0x80, 0x47, 0x0e, 0xe1,
+ 0xd9, 0x52, 0x8a, 0x77, 0x5c, 0xbe, 0xd5, 0x2e, 0x15, 0xb2, 0x79, 0x70,
+ 0x95, 0x48, 0x04, 0x9b, 0x02, 0x51, 0x6d, 0x6a, 0xdc, 0x67, 0xe3, 0x19,
+ 0xf6, 0x2c, 0xb4, 0x8a,
+};
+static const unsigned char kat2507_addin1[] = {
+ 0x9d, 0xab, 0x1d, 0x10, 0xfe, 0x9c, 0xe9, 0x6e, 0x9a, 0x0c, 0x25, 0x4f,
+ 0x49, 0x58, 0xa1, 0x5f, 0x7d, 0x3b, 0x68, 0x8a, 0x44, 0x06, 0xf5, 0xb4,
+ 0x66, 0x14, 0x8b, 0x6a, 0xfb, 0x1c, 0xb4, 0x1e, 0x94, 0x78, 0xc9, 0x17,
+ 0x52, 0x6c, 0xc2, 0x2a,
+};
+static const unsigned char kat2507_retbits[] = {
+ 0xc7, 0xd5, 0x0e, 0xc6, 0x2d, 0x1f, 0x4c, 0xbd, 0x32, 0x65, 0xec, 0xe8,
+ 0xcf, 0x9f, 0x4e, 0x07, 0x86, 0xef, 0x73, 0x6c, 0x57, 0x74, 0xb5, 0x8c,
+ 0xd6, 0x0a, 0x2e, 0x8c, 0x64, 0xee, 0x9c, 0x91, 0xb2, 0xdb, 0xfb, 0xfa,
+ 0x6e, 0x68, 0x56, 0xc8, 0x7a, 0x52, 0x91, 0x30, 0x59, 0xc5, 0x21, 0xec,
+ 0xf4, 0x8f, 0xb6, 0x9d, 0xc3, 0x6a, 0xe2, 0x17, 0x04, 0xaa, 0xeb, 0xd8,
+ 0x38, 0xf5, 0x05, 0x0e,
+};
+static const struct drbg_kat_pr_false kat2507_t = {
+ 1, kat2507_entropyin, kat2507_nonce, kat2507_persstr,
+ kat2507_entropyinreseed, kat2507_addinreseed, kat2507_addin0,
+ kat2507_addin1, kat2507_retbits
+};
+static const struct drbg_kat kat2507 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2507_t
+};
+
+static const unsigned char kat2508_entropyin[] = {
+ 0xc6, 0x36, 0xc3, 0xde, 0xea, 0xfc, 0x9d, 0x56, 0x33, 0x8f, 0x71, 0xa2,
+ 0x28, 0xfd, 0xab, 0x53, 0x7d, 0x5a, 0xa7, 0x80, 0x34, 0x30, 0x9b, 0x71,
+ 0xee, 0xcf, 0x05, 0x74, 0xab, 0x09, 0xa5, 0x79, 0x08, 0x73, 0x6b, 0xfa,
+ 0x1e, 0x6b, 0xab, 0x48,
+};
+static const unsigned char kat2508_nonce[] = {0};
+static const unsigned char kat2508_persstr[] = {
+ 0x2a, 0xaf, 0x5e, 0x25, 0x94, 0x2f, 0x15, 0x52, 0xfb, 0x01, 0xa6, 0x91,
+ 0xde, 0xd6, 0x79, 0x05, 0xd6, 0xe3, 0x43, 0x8a, 0x1e, 0x21, 0xe5, 0x25,
+ 0x08, 0xf7, 0xc5, 0x55, 0x85, 0xa9, 0xbb, 0x6c, 0x65, 0x0b, 0xa8, 0xf9,
+ 0x77, 0x7d, 0x2f, 0x59,
+};
+static const unsigned char kat2508_entropyinreseed[] = {
+ 0xf7, 0xd1, 0xbc, 0x0a, 0x3f, 0x71, 0x80, 0xce, 0x72, 0x71, 0x06, 0x4f,
+ 0xf7, 0xc4, 0xcd, 0xa8, 0x9d, 0x76, 0xde, 0x04, 0x9a, 0x98, 0x06, 0x25,
+ 0x83, 0xc3, 0x9a, 0x6d, 0xea, 0x6e, 0x88, 0xb5, 0xb1, 0x2c, 0xfb, 0x91,
+ 0xb0, 0xc1, 0xea, 0x42,
+};
+static const unsigned char kat2508_addinreseed[] = {
+ 0x2c, 0xdd, 0xda, 0xa6, 0x45, 0x9d, 0x90, 0x4a, 0xf7, 0x4c, 0xe0, 0x43,
+ 0xdf, 0x41, 0x13, 0x7c, 0x37, 0x0c, 0xea, 0xce, 0xeb, 0xb1, 0xbb, 0x33,
+ 0xca, 0x7a, 0xb2, 0x89, 0xfa, 0x87, 0xd3, 0x0f, 0x0a, 0xe6, 0xe1, 0x2f,
+ 0xfa, 0x7f, 0x4f, 0xfc,
+};
+static const unsigned char kat2508_addin0[] = {
+ 0xf9, 0xf4, 0x70, 0x1c, 0xd3, 0xb0, 0x06, 0x9f, 0xa8, 0x71, 0x6a, 0x5f,
+ 0x9d, 0x13, 0xb8, 0xa7, 0x6c, 0xd6, 0x5d, 0x7a, 0x32, 0xdd, 0xbf, 0xe5,
+ 0xa6, 0x6d, 0x62, 0x69, 0xe1, 0x7b, 0x5a, 0x0b, 0x4f, 0x48, 0x47, 0x22,
+ 0x7d, 0x29, 0xe5, 0x59,
+};
+static const unsigned char kat2508_addin1[] = {
+ 0x23, 0xeb, 0x8b, 0xa9, 0x25, 0x88, 0x0e, 0x28, 0x04, 0xd8, 0x99, 0x75,
+ 0xf1, 0xa7, 0x7a, 0xef, 0x4b, 0xa6, 0x16, 0xe3, 0x66, 0xf4, 0x8e, 0x37,
+ 0x51, 0xf2, 0x80, 0x41, 0xa3, 0xc0, 0x97, 0x08, 0xa4, 0xf7, 0x11, 0xef,
+ 0x77, 0x62, 0xb9, 0x07,
+};
+static const unsigned char kat2508_retbits[] = {
+ 0xa9, 0xb4, 0x83, 0xf3, 0x0f, 0x61, 0x4a, 0xfb, 0x40, 0xb0, 0x4a, 0x80,
+ 0xaa, 0x31, 0xf0, 0x49, 0x7b, 0x46, 0x64, 0xa2, 0x52, 0xed, 0xf5, 0xdf,
+ 0x6b, 0xb4, 0x2a, 0x4f, 0xc4, 0xa8, 0xb9, 0xf4, 0x0c, 0x20, 0x16, 0x10,
+ 0x59, 0x0a, 0x78, 0x1c, 0xf5, 0x6b, 0x82, 0xf5, 0xf1, 0x7d, 0xed, 0x2d,
+ 0x18, 0x40, 0xd2, 0x1d, 0x32, 0xa6, 0x98, 0x01, 0xa4, 0xa4, 0xbc, 0x51,
+ 0xf4, 0x9e, 0x5a, 0xa3,
+};
+static const struct drbg_kat_pr_false kat2508_t = {
+ 2, kat2508_entropyin, kat2508_nonce, kat2508_persstr,
+ kat2508_entropyinreseed, kat2508_addinreseed, kat2508_addin0,
+ kat2508_addin1, kat2508_retbits
+};
+static const struct drbg_kat kat2508 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2508_t
+};
+
+static const unsigned char kat2509_entropyin[] = {
+ 0x5b, 0x05, 0xde, 0x11, 0x1c, 0x19, 0xc4, 0x61, 0x3d, 0x0d, 0xd3, 0xcf,
+ 0x35, 0x81, 0x3a, 0xbb, 0x86, 0x6c, 0x4d, 0x47, 0x0c, 0x53, 0xf2, 0xe9,
+ 0x2e, 0x45, 0xfc, 0x73, 0x7c, 0xa5, 0xa5, 0xa3, 0x38, 0x0f, 0x6c, 0x9a,
+ 0x81, 0xe0, 0xa1, 0xd9,
+};
+static const unsigned char kat2509_nonce[] = {0};
+static const unsigned char kat2509_persstr[] = {
+ 0xcf, 0xd1, 0xf4, 0x22, 0x26, 0x1e, 0x47, 0xd5, 0x92, 0x9f, 0xb4, 0xb7,
+ 0x35, 0x6a, 0xd3, 0x21, 0xdd, 0xad, 0x2d, 0x5d, 0x34, 0x3b, 0x4f, 0xb4,
+ 0x94, 0xe8, 0xa9, 0x07, 0x48, 0x4f, 0x2c, 0x2a, 0x96, 0x2d, 0xa7, 0x99,
+ 0x09, 0x14, 0x38, 0xc9,
+};
+static const unsigned char kat2509_entropyinreseed[] = {
+ 0x8a, 0x71, 0x8b, 0x9d, 0xc3, 0x25, 0x54, 0x50, 0xfe, 0x29, 0xf8, 0xc3,
+ 0x64, 0xbd, 0xd1, 0x95, 0x4d, 0x64, 0x21, 0x26, 0xb8, 0x64, 0xb3, 0x87,
+ 0x7c, 0x17, 0xdc, 0x18, 0xe3, 0x58, 0xd0, 0xb9, 0x20, 0x75, 0xef, 0x0f,
+ 0xbb, 0x16, 0x5c, 0xe3,
+};
+static const unsigned char kat2509_addinreseed[] = {
+ 0x8d, 0xa8, 0xed, 0xf9, 0x28, 0xf1, 0x17, 0x62, 0x2b, 0xa7, 0xc6, 0xc5,
+ 0x8e, 0x2e, 0x5e, 0x5d, 0x30, 0x18, 0x4f, 0xa1, 0x11, 0xcf, 0x02, 0xb3,
+ 0x61, 0x46, 0x33, 0xfa, 0x6c, 0x18, 0x64, 0x40, 0x03, 0xa6, 0x1e, 0x4f,
+ 0x49, 0x11, 0x0c, 0xeb,
+};
+static const unsigned char kat2509_addin0[] = {
+ 0x57, 0xc8, 0xc6, 0xfa, 0x5b, 0x4a, 0xfe, 0x59, 0x2a, 0xd0, 0x15, 0x7a,
+ 0x8b, 0x39, 0xa8, 0x36, 0x5c, 0xe7, 0xf3, 0x6f, 0x79, 0x54, 0xe9, 0xa4,
+ 0xde, 0xaf, 0xcc, 0xd5, 0x21, 0x2a, 0x44, 0xc7, 0x31, 0xdf, 0x15, 0x2b,
+ 0x6e, 0xac, 0xd3, 0x32,
+};
+static const unsigned char kat2509_addin1[] = {
+ 0x34, 0xf1, 0x34, 0xfc, 0x42, 0xf4, 0x0c, 0xe8, 0x01, 0x39, 0xca, 0xa3,
+ 0xaf, 0x6b, 0x32, 0xdb, 0xeb, 0x50, 0x34, 0xd2, 0x1b, 0xfd, 0xd0, 0x66,
+ 0xaf, 0x11, 0x05, 0xe5, 0x5a, 0x71, 0x4c, 0xde, 0xfb, 0x76, 0x05, 0x32,
+ 0xf5, 0x4a, 0xe3, 0x51,
+};
+static const unsigned char kat2509_retbits[] = {
+ 0x4c, 0x04, 0x46, 0x01, 0xc9, 0x70, 0x13, 0x1b, 0x2e, 0xcb, 0xb3, 0x29,
+ 0xea, 0x41, 0x19, 0x8e, 0xa5, 0xf0, 0xf8, 0xc9, 0x14, 0xa7, 0xac, 0x55,
+ 0xaa, 0x18, 0xba, 0x04, 0x14, 0x21, 0x7f, 0xcc, 0x11, 0xd0, 0xf7, 0xcf,
+ 0x9b, 0x67, 0x1c, 0xf7, 0x5d, 0x48, 0x98, 0x31, 0x59, 0x9c, 0xb2, 0xe6,
+ 0x28, 0xb8, 0x2d, 0x46, 0x77, 0x11, 0xec, 0xbb, 0x22, 0x71, 0x32, 0x0e,
+ 0x4a, 0x6b, 0xeb, 0x25,
+};
+static const struct drbg_kat_pr_false kat2509_t = {
+ 3, kat2509_entropyin, kat2509_nonce, kat2509_persstr,
+ kat2509_entropyinreseed, kat2509_addinreseed, kat2509_addin0,
+ kat2509_addin1, kat2509_retbits
+};
+static const struct drbg_kat kat2509 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2509_t
+};
+
+static const unsigned char kat2510_entropyin[] = {
+ 0xe7, 0xde, 0x2c, 0x5a, 0x3d, 0x5b, 0x92, 0x9f, 0xd7, 0x7f, 0x37, 0x77,
+ 0x75, 0x66, 0x90, 0x52, 0x52, 0x56, 0x35, 0x59, 0x66, 0x3b, 0xd7, 0xb4,
+ 0xfa, 0xb2, 0x21, 0x97, 0x58, 0x61, 0xcf, 0x0d, 0x2c, 0x11, 0xb0, 0xeb,
+ 0x46, 0x0a, 0x58, 0xaf,
+};
+static const unsigned char kat2510_nonce[] = {0};
+static const unsigned char kat2510_persstr[] = {
+ 0xb0, 0x5b, 0xec, 0x0e, 0x2d, 0x43, 0x02, 0x62, 0xc8, 0x26, 0x25, 0xcb,
+ 0x74, 0x5b, 0xfc, 0xe1, 0x00, 0x8b, 0xe4, 0xd2, 0x63, 0xc3, 0x2b, 0x50,
+ 0x6d, 0x04, 0xaf, 0x6c, 0x46, 0xf0, 0x83, 0x4c, 0xbe, 0x53, 0x6e, 0xa7,
+ 0xb0, 0xa0, 0xf1, 0xa7,
+};
+static const unsigned char kat2510_entropyinreseed[] = {
+ 0x18, 0xe3, 0x4d, 0xe9, 0x9a, 0x3a, 0xd1, 0xb4, 0xea, 0xeb, 0xc1, 0x4a,
+ 0x72, 0x68, 0xcb, 0xab, 0xdd, 0xc8, 0xe2, 0x24, 0xb7, 0xec, 0xa6, 0x2c,
+ 0xcd, 0x3c, 0x1e, 0x00, 0x65, 0x53, 0x6e, 0xd6, 0x26, 0xa8, 0x65, 0x24,
+ 0xab, 0x7a, 0x65, 0x8d,
+};
+static const unsigned char kat2510_addinreseed[] = {
+ 0x29, 0xc9, 0x7f, 0x38, 0xa8, 0x51, 0x49, 0xb7, 0x23, 0x11, 0x71, 0x75,
+ 0x7c, 0x64, 0x66, 0x00, 0xd7, 0x25, 0xb9, 0xf7, 0xfe, 0xca, 0x30, 0x38,
+ 0x6a, 0x91, 0x3b, 0xb3, 0x7b, 0x11, 0xce, 0xcb, 0xa6, 0x45, 0x69, 0x65,
+ 0xaf, 0xb8, 0x1c, 0x22,
+};
+static const unsigned char kat2510_addin0[] = {
+ 0xfd, 0x25, 0x67, 0x83, 0xb0, 0x9a, 0x66, 0x65, 0x76, 0x36, 0xaf, 0x53,
+ 0xea, 0x30, 0x16, 0xaf, 0x6c, 0xec, 0xf8, 0x5a, 0x13, 0x09, 0x60, 0x59,
+ 0xa8, 0x75, 0xd9, 0x03, 0xbb, 0x24, 0xa1, 0x18, 0xe6, 0x6a, 0xd5, 0xe7,
+ 0xd0, 0x30, 0xc4, 0x65,
+};
+static const unsigned char kat2510_addin1[] = {
+ 0x1b, 0x22, 0x7f, 0xe8, 0x9d, 0xff, 0x88, 0xc2, 0x70, 0xc0, 0x1e, 0x9f,
+ 0x5b, 0x33, 0x2d, 0x90, 0x62, 0xfa, 0x42, 0x02, 0x30, 0xa0, 0xab, 0xcf,
+ 0x4c, 0xa7, 0x17, 0x2c, 0xa2, 0xa0, 0x1e, 0x95, 0x9f, 0xef, 0x54, 0xbd,
+ 0x98, 0xee, 0xab, 0xac,
+};
+static const unsigned char kat2510_retbits[] = {
+ 0x05, 0x2a, 0xbd, 0x8f, 0xff, 0xb5, 0x1d, 0x8f, 0xbd, 0x69, 0xc0, 0x0a,
+ 0xa2, 0x1c, 0x19, 0x4b, 0xf6, 0xbf, 0x43, 0xa0, 0x21, 0x38, 0xce, 0x35,
+ 0x2e, 0xb9, 0x3c, 0xa9, 0xc9, 0xe5, 0x98, 0x6d, 0xf3, 0xe8, 0x62, 0x68,
+ 0x82, 0xa4, 0x06, 0x66, 0x60, 0xf4, 0x9d, 0xd3, 0x8d, 0x07, 0x82, 0xb8,
+ 0x68, 0xd1, 0xb2, 0xa9, 0x8e, 0x84, 0x97, 0x5d, 0xbd, 0x53, 0xb6, 0x9a,
+ 0x8e, 0x76, 0xc8, 0x79,
+};
+static const struct drbg_kat_pr_false kat2510_t = {
+ 4, kat2510_entropyin, kat2510_nonce, kat2510_persstr,
+ kat2510_entropyinreseed, kat2510_addinreseed, kat2510_addin0,
+ kat2510_addin1, kat2510_retbits
+};
+static const struct drbg_kat kat2510 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2510_t
+};
+
+static const unsigned char kat2511_entropyin[] = {
+ 0x12, 0x88, 0x17, 0x33, 0x14, 0xf7, 0x52, 0xd0, 0x2b, 0x4f, 0xc6, 0x44,
+ 0x22, 0xf1, 0xc2, 0x9c, 0x0e, 0x60, 0x68, 0xd3, 0x4d, 0x10, 0x8e, 0xa2,
+ 0x22, 0xb7, 0xee, 0xc3, 0xbb, 0x65, 0xa8, 0xca, 0xe5, 0x14, 0xb9, 0x8b,
+ 0x13, 0x0f, 0xc5, 0x84,
+};
+static const unsigned char kat2511_nonce[] = {0};
+static const unsigned char kat2511_persstr[] = {
+ 0xaf, 0xc1, 0xa8, 0xba, 0x27, 0xc9, 0xb9, 0x27, 0x97, 0x94, 0xca, 0xbe,
+ 0x5b, 0x2e, 0xe7, 0x2b, 0x24, 0x37, 0x3a, 0x2c, 0x99, 0x49, 0x9e, 0x14,
+ 0x97, 0xc2, 0xde, 0x23, 0xa0, 0xcb, 0x9b, 0x5f, 0xd9, 0x01, 0xdf, 0xe0,
+ 0x35, 0xe6, 0x97, 0xff,
+};
+static const unsigned char kat2511_entropyinreseed[] = {
+ 0x86, 0xdd, 0x99, 0x85, 0x61, 0x76, 0xeb, 0x38, 0x9c, 0xe1, 0x65, 0x92,
+ 0xac, 0x3d, 0xee, 0xd3, 0x7a, 0x05, 0xf2, 0x3a, 0xfa, 0x15, 0xd5, 0xe7,
+ 0x96, 0xc3, 0xcd, 0x38, 0xaf, 0x33, 0x02, 0x1f, 0x94, 0xa1, 0x30, 0x30,
+ 0xdd, 0x75, 0x50, 0x30,
+};
+static const unsigned char kat2511_addinreseed[] = {
+ 0xe4, 0x3f, 0x44, 0x4e, 0x8e, 0x88, 0xee, 0x4a, 0x4f, 0x5c, 0x12, 0x98,
+ 0x2c, 0x1d, 0x8e, 0x8d, 0x1b, 0x11, 0xbe, 0x78, 0xc0, 0xce, 0xbc, 0x5a,
+ 0x5f, 0xf6, 0x7e, 0xcf, 0xd4, 0x80, 0xdd, 0x9a, 0xd2, 0xdc, 0x73, 0x1d,
+ 0x20, 0x98, 0xfe, 0xa2,
+};
+static const unsigned char kat2511_addin0[] = {
+ 0x44, 0xfb, 0x69, 0x13, 0xc1, 0xf7, 0x9b, 0x34, 0x8a, 0xf5, 0xb3, 0x94,
+ 0x83, 0xb6, 0x8d, 0x9b, 0x9d, 0xfc, 0x3b, 0xe8, 0x86, 0xd8, 0x45, 0x87,
+ 0x2a, 0x36, 0x9a, 0x8a, 0x16, 0x37, 0x5b, 0xa3, 0x6c, 0xed, 0x34, 0xb9,
+ 0x0c, 0x37, 0x5d, 0x54,
+};
+static const unsigned char kat2511_addin1[] = {
+ 0x98, 0x39, 0x45, 0x87, 0x0b, 0x05, 0xee, 0x4a, 0x48, 0x87, 0x9b, 0x5c,
+ 0x16, 0x25, 0x6f, 0x78, 0x88, 0x14, 0x8b, 0x74, 0xaa, 0x3c, 0x89, 0xf1,
+ 0xf5, 0x8c, 0x1a, 0xaf, 0xcf, 0xba, 0x2a, 0xff, 0x69, 0x7c, 0x82, 0x16,
+ 0x88, 0x9b, 0xbf, 0xd5,
+};
+static const unsigned char kat2511_retbits[] = {
+ 0xe0, 0xef, 0xd2, 0xe8, 0x42, 0xc3, 0xff, 0x7c, 0x81, 0x34, 0xc5, 0xdd,
+ 0xf1, 0xb1, 0x6a, 0xcf, 0xa4, 0xc3, 0x8b, 0x9f, 0x4f, 0x48, 0xd7, 0x23,
+ 0x3e, 0x2e, 0x9e, 0x8d, 0x9a, 0xb0, 0x2c, 0xaa, 0x2e, 0x8e, 0x5a, 0x3e,
+ 0xd9, 0xdd, 0x26, 0x7f, 0xb0, 0x71, 0x01, 0x5e, 0x04, 0xab, 0xe1, 0x6f,
+ 0x1c, 0x56, 0xa2, 0x1c, 0x88, 0x38, 0x19, 0x16, 0x55, 0x6c, 0x9c, 0x43,
+ 0xdc, 0xd0, 0x19, 0xd1,
+};
+static const struct drbg_kat_pr_false kat2511_t = {
+ 5, kat2511_entropyin, kat2511_nonce, kat2511_persstr,
+ kat2511_entropyinreseed, kat2511_addinreseed, kat2511_addin0,
+ kat2511_addin1, kat2511_retbits
+};
+static const struct drbg_kat kat2511 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2511_t
+};
+
+static const unsigned char kat2512_entropyin[] = {
+ 0xee, 0x58, 0x8c, 0x71, 0x41, 0x6f, 0x57, 0x98, 0x13, 0x22, 0x90, 0xcb,
+ 0x88, 0x47, 0x9c, 0x3c, 0x29, 0x45, 0xe6, 0x28, 0x63, 0xf4, 0x43, 0xa8,
+ 0x78, 0x96, 0x37, 0xee, 0x45, 0xd7, 0x63, 0x98, 0x34, 0x45, 0xeb, 0x78,
+ 0xa8, 0x03, 0x67, 0x0f,
+};
+static const unsigned char kat2512_nonce[] = {0};
+static const unsigned char kat2512_persstr[] = {
+ 0xb4, 0x0c, 0xc9, 0x6e, 0x4b, 0x92, 0x39, 0xc1, 0x39, 0xe8, 0x40, 0xfb,
+ 0x7a, 0x17, 0xa4, 0x39, 0x6b, 0x24, 0x26, 0x53, 0xe0, 0xf8, 0xa1, 0x58,
+ 0xd2, 0x83, 0xaa, 0x7b, 0x20, 0x01, 0x30, 0x85, 0xf1, 0x0b, 0x90, 0x9b,
+ 0x04, 0xd1, 0xc2, 0x8d,
+};
+static const unsigned char kat2512_entropyinreseed[] = {
+ 0x6d, 0x70, 0xa1, 0x27, 0x75, 0xfd, 0x33, 0x57, 0x57, 0x32, 0xbb, 0x66,
+ 0x8f, 0x34, 0xf9, 0x03, 0xa3, 0x0a, 0x5c, 0x1c, 0x33, 0xb9, 0x1b, 0x50,
+ 0x7d, 0x75, 0x06, 0x7e, 0x86, 0x24, 0xc5, 0x90, 0xc6, 0xee, 0x24, 0xf4,
+ 0xc7, 0xa2, 0x28, 0x14,
+};
+static const unsigned char kat2512_addinreseed[] = {
+ 0xdf, 0x50, 0x03, 0x13, 0xa4, 0x4f, 0x3f, 0xb2, 0x22, 0x31, 0x68, 0xe0,
+ 0x0d, 0xd9, 0xe0, 0xed, 0xf0, 0x19, 0x47, 0xe6, 0xff, 0x63, 0x55, 0x07,
+ 0x24, 0x5d, 0xf0, 0x9d, 0x76, 0xcd, 0x62, 0x6f, 0x02, 0xd0, 0xc2, 0x1f,
+ 0xe4, 0x88, 0x62, 0x00,
+};
+static const unsigned char kat2512_addin0[] = {
+ 0xac, 0x3e, 0x89, 0x42, 0x6f, 0x3d, 0x7a, 0x2b, 0x3b, 0xf3, 0xf2, 0x8a,
+ 0xc4, 0x47, 0x0e, 0xef, 0xb9, 0x26, 0xc0, 0x14, 0x06, 0x93, 0xd2, 0xb8,
+ 0x19, 0x2d, 0x67, 0xa3, 0x3a, 0xe3, 0xfc, 0x89, 0x50, 0x7c, 0xc1, 0x9c,
+ 0xc1, 0xc9, 0xc1, 0xf3,
+};
+static const unsigned char kat2512_addin1[] = {
+ 0xfd, 0xeb, 0x21, 0x05, 0xda, 0x79, 0xe4, 0xa4, 0xf8, 0x01, 0x1e, 0xa6,
+ 0x2a, 0x3e, 0x51, 0x74, 0xff, 0xac, 0x30, 0xe5, 0x9c, 0xd1, 0x7a, 0xb7,
+ 0x4c, 0x56, 0xd5, 0xc8, 0x50, 0x55, 0x78, 0xe7, 0x3c, 0x9e, 0x2e, 0x23,
+ 0xb7, 0x4a, 0x6a, 0x42,
+};
+static const unsigned char kat2512_retbits[] = {
+ 0x3d, 0x5f, 0x8c, 0x8f, 0xce, 0xa3, 0xb7, 0xf6, 0x79, 0xe1, 0x84, 0x06,
+ 0x5d, 0xb7, 0x4f, 0xc9, 0xcb, 0x2d, 0xeb, 0x92, 0xc6, 0xb8, 0x8c, 0xb9,
+ 0xb5, 0x44, 0x95, 0x76, 0x31, 0xef, 0xad, 0x44, 0x59, 0x2a, 0x69, 0x9a,
+ 0xb4, 0xa5, 0x81, 0xad, 0x9d, 0xa8, 0x11, 0xfd, 0xfc, 0x53, 0xde, 0x35,
+ 0x26, 0x8d, 0x7f, 0x94, 0xb9, 0xcd, 0x4a, 0x08, 0x26, 0x26, 0x16, 0x99,
+ 0xb0, 0xb8, 0xad, 0x9c,
+};
+static const struct drbg_kat_pr_false kat2512_t = {
+ 6, kat2512_entropyin, kat2512_nonce, kat2512_persstr,
+ kat2512_entropyinreseed, kat2512_addinreseed, kat2512_addin0,
+ kat2512_addin1, kat2512_retbits
+};
+static const struct drbg_kat kat2512 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2512_t
+};
+
+static const unsigned char kat2513_entropyin[] = {
+ 0x4c, 0x5b, 0xc6, 0x2a, 0xe8, 0x6e, 0x49, 0x66, 0xb3, 0x0a, 0xf2, 0x41,
+ 0x22, 0x71, 0xb0, 0x6a, 0x73, 0xd8, 0x0c, 0xd5, 0xa3, 0xfe, 0xee, 0x49,
+ 0x89, 0x6d, 0x7a, 0xe7, 0xa8, 0x3f, 0x02, 0x14, 0xf9, 0x70, 0x86, 0x37,
+ 0x06, 0xd9, 0x1b, 0x39,
+};
+static const unsigned char kat2513_nonce[] = {0};
+static const unsigned char kat2513_persstr[] = {
+ 0x6c, 0xaf, 0x8b, 0x70, 0x57, 0xad, 0xb4, 0x7a, 0x2a, 0x29, 0x0c, 0xb6,
+ 0x39, 0x30, 0xb9, 0x8f, 0xff, 0x5f, 0xae, 0x62, 0x11, 0x6a, 0x2a, 0xc6,
+ 0x6e, 0x25, 0x9b, 0x79, 0x72, 0xe8, 0xfc, 0xc3, 0xf8, 0xae, 0xc7, 0x1e,
+ 0xb6, 0xa8, 0x11, 0xd0,
+};
+static const unsigned char kat2513_entropyinreseed[] = {
+ 0xc7, 0x3e, 0x75, 0x08, 0xa1, 0xf1, 0x01, 0x69, 0x69, 0x02, 0x16, 0xac,
+ 0xb7, 0x68, 0x48, 0xb4, 0xf2, 0x8c, 0x03, 0xaf, 0x9a, 0xa1, 0x82, 0x63,
+ 0xb6, 0x34, 0x1b, 0x1f, 0xa7, 0x2a, 0x61, 0x3a, 0x4f, 0x82, 0x77, 0x8d,
+ 0xaf, 0xed, 0x54, 0xa7,
+};
+static const unsigned char kat2513_addinreseed[] = {
+ 0x1f, 0xad, 0xbf, 0x63, 0x8e, 0x29, 0xef, 0xf1, 0xca, 0x40, 0x57, 0xbc,
+ 0x76, 0x13, 0x0b, 0x3c, 0x11, 0x3b, 0xe3, 0x4f, 0xbd, 0x81, 0xcf, 0x73,
+ 0x1d, 0x07, 0x5c, 0x97, 0x86, 0xc0, 0xb4, 0x28, 0x01, 0x09, 0x4e, 0xad,
+ 0xff, 0x13, 0x17, 0x43,
+};
+static const unsigned char kat2513_addin0[] = {
+ 0x68, 0xb0, 0xc9, 0x76, 0x4d, 0xe8, 0x64, 0x62, 0xb6, 0xd3, 0xf5, 0xab,
+ 0xc2, 0xce, 0xb6, 0xf8, 0xad, 0xea, 0x42, 0xba, 0x47, 0x2c, 0x4d, 0xb7,
+ 0x94, 0xbc, 0xe2, 0xcd, 0x95, 0x2b, 0x77, 0xda, 0xbd, 0xe1, 0x54, 0x1c,
+ 0x95, 0xd3, 0xe7, 0xe9,
+};
+static const unsigned char kat2513_addin1[] = {
+ 0xc5, 0x2e, 0x8a, 0x37, 0x4c, 0x05, 0xb1, 0x23, 0xf1, 0x7f, 0x7b, 0xfc,
+ 0xa5, 0x10, 0xf3, 0x2a, 0xd5, 0xaa, 0xc1, 0x2a, 0xc4, 0xc5, 0x66, 0xf1,
+ 0xd2, 0xa8, 0x1d, 0x55, 0xc2, 0x8f, 0x1b, 0xc3, 0xe9, 0xe0, 0x6a, 0xfe,
+ 0x41, 0x0b, 0x4f, 0x15,
+};
+static const unsigned char kat2513_retbits[] = {
+ 0xef, 0x4a, 0x87, 0x74, 0x28, 0x2d, 0x18, 0x03, 0xb8, 0xfb, 0xce, 0x90,
+ 0xa2, 0x17, 0xeb, 0x26, 0xa2, 0xc4, 0x6d, 0xe2, 0x3e, 0xc8, 0xbc, 0x0c,
+ 0xcd, 0xa7, 0x95, 0xb3, 0xf2, 0x61, 0x12, 0x98, 0x24, 0xf3, 0x63, 0x36,
+ 0x39, 0x07, 0x3c, 0x39, 0xc3, 0x9c, 0xa4, 0x69, 0x0d, 0x46, 0x76, 0xad,
+ 0xc2, 0x16, 0x28, 0x43, 0x1e, 0xc5, 0x36, 0xab, 0x6d, 0x4f, 0x78, 0x80,
+ 0x9f, 0xc8, 0xce, 0xb8,
+};
+static const struct drbg_kat_pr_false kat2513_t = {
+ 7, kat2513_entropyin, kat2513_nonce, kat2513_persstr,
+ kat2513_entropyinreseed, kat2513_addinreseed, kat2513_addin0,
+ kat2513_addin1, kat2513_retbits
+};
+static const struct drbg_kat kat2513 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2513_t
+};
+
+static const unsigned char kat2514_entropyin[] = {
+ 0xac, 0xa4, 0xfb, 0x3f, 0x4c, 0x6f, 0x56, 0xa4, 0x12, 0x6d, 0x4f, 0xc7,
+ 0xa8, 0x79, 0xb4, 0x83, 0xa7, 0x2e, 0x49, 0xbf, 0x7f, 0x35, 0x38, 0xe2,
+ 0xb5, 0xa5, 0xa0, 0x2f, 0x35, 0x84, 0xa9, 0xf7, 0x1a, 0x77, 0x3c, 0xf0,
+ 0x92, 0x7c, 0x0f, 0x33,
+};
+static const unsigned char kat2514_nonce[] = {0};
+static const unsigned char kat2514_persstr[] = {
+ 0x6a, 0x62, 0xf1, 0x2a, 0x35, 0x2a, 0x35, 0xcc, 0xd1, 0xa5, 0x3e, 0x3d,
+ 0xd9, 0x9c, 0x74, 0xf2, 0xe5, 0xeb, 0xf0, 0xd4, 0x57, 0x94, 0x16, 0x32,
+ 0x2f, 0x4b, 0xa7, 0xb9, 0x95, 0x57, 0xb5, 0x56, 0x59, 0xe0, 0xbe, 0x67,
+ 0x0f, 0x62, 0xf8, 0xdc,
+};
+static const unsigned char kat2514_entropyinreseed[] = {
+ 0x89, 0x5d, 0xf4, 0x20, 0x82, 0xa5, 0xf6, 0x4b, 0xae, 0xdc, 0xeb, 0xd5,
+ 0xe0, 0x0b, 0x9a, 0x93, 0x9a, 0xc8, 0xfa, 0xc4, 0x3e, 0x13, 0x21, 0x0d,
+ 0x54, 0x32, 0x17, 0x8f, 0xf4, 0xd0, 0x9f, 0x6a, 0xd6, 0x25, 0xab, 0x0b,
+ 0xe0, 0x17, 0x39, 0x1e,
+};
+static const unsigned char kat2514_addinreseed[] = {
+ 0x57, 0x85, 0xee, 0x0f, 0xd8, 0x9a, 0xe5, 0xbf, 0xa8, 0x76, 0xfc, 0xa1,
+ 0x86, 0x11, 0xd2, 0x02, 0xbd, 0x10, 0xac, 0xfe, 0x18, 0x61, 0x1b, 0xa8,
+ 0x4d, 0x98, 0xb6, 0x1c, 0xec, 0xd0, 0x7c, 0xd0, 0xe4, 0x09, 0x12, 0x39,
+ 0x7b, 0x08, 0x87, 0x5b,
+};
+static const unsigned char kat2514_addin0[] = {
+ 0x62, 0xdc, 0x52, 0x91, 0x98, 0xb9, 0xe8, 0x3f, 0x76, 0x78, 0xab, 0x67,
+ 0xb8, 0x41, 0x59, 0x50, 0x4e, 0xac, 0xde, 0x8d, 0xbd, 0xbc, 0x78, 0x50,
+ 0x35, 0x79, 0x23, 0xda, 0x63, 0x72, 0x70, 0x1e, 0xc9, 0xb4, 0x81, 0x67,
+ 0x3d, 0xa9, 0x34, 0xc2,
+};
+static const unsigned char kat2514_addin1[] = {
+ 0x8c, 0x46, 0xe8, 0xc6, 0x94, 0x89, 0xbd, 0x57, 0x6a, 0x52, 0x7c, 0x0f,
+ 0x4e, 0x07, 0xdc, 0xb1, 0xe7, 0xf0, 0x80, 0x2d, 0x0b, 0x2c, 0xdf, 0x3b,
+ 0xc9, 0xe2, 0xf8, 0x2f, 0x95, 0x7e, 0x5f, 0x23, 0x55, 0x16, 0xc0, 0xdf,
+ 0xeb, 0xc6, 0x62, 0x6f,
+};
+static const unsigned char kat2514_retbits[] = {
+ 0xdd, 0x13, 0x43, 0x2a, 0x9b, 0x4e, 0x96, 0xee, 0x15, 0x35, 0xdc, 0x9b,
+ 0x57, 0x20, 0x7e, 0x1c, 0xf3, 0x18, 0x3f, 0x03, 0x4e, 0x90, 0xb4, 0x5a,
+ 0xee, 0xf5, 0x15, 0xf4, 0xf4, 0x61, 0x17, 0xed, 0x09, 0x0e, 0x26, 0x38,
+ 0xbe, 0x66, 0x2c, 0xa8, 0x5c, 0xc7, 0x3a, 0x16, 0x44, 0xf7, 0x1f, 0x12,
+ 0xcb, 0x38, 0x05, 0x04, 0xe3, 0x3e, 0x07, 0x51, 0x47, 0xf9, 0x52, 0xdc,
+ 0xda, 0xe6, 0xb5, 0xe0,
+};
+static const struct drbg_kat_pr_false kat2514_t = {
+ 8, kat2514_entropyin, kat2514_nonce, kat2514_persstr,
+ kat2514_entropyinreseed, kat2514_addinreseed, kat2514_addin0,
+ kat2514_addin1, kat2514_retbits
+};
+static const struct drbg_kat kat2514 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2514_t
+};
+
+static const unsigned char kat2515_entropyin[] = {
+ 0xd8, 0xa5, 0xa1, 0xca, 0x80, 0x1d, 0xb7, 0xf7, 0xdf, 0x8f, 0xd8, 0xf0,
+ 0x70, 0x34, 0x2c, 0xb9, 0x66, 0x14, 0xfe, 0x6f, 0xf3, 0xf0, 0x06, 0x6b,
+ 0x47, 0x18, 0xbf, 0xc7, 0x82, 0x3d, 0xbf, 0x60, 0xa6, 0x14, 0x3c, 0x12,
+ 0x21, 0xa5, 0xb8, 0xce,
+};
+static const unsigned char kat2515_nonce[] = {0};
+static const unsigned char kat2515_persstr[] = {
+ 0xdb, 0xea, 0x8c, 0x71, 0xa4, 0x1b, 0xfc, 0xac, 0x5d, 0xa7, 0x59, 0xa1,
+ 0xc6, 0x9c, 0x1a, 0x1a, 0x1a, 0xf5, 0x97, 0x75, 0x39, 0x3a, 0xbf, 0x0f,
+ 0xe9, 0xcb, 0x78, 0x09, 0x43, 0x66, 0x2e, 0xc3, 0xce, 0x06, 0x64, 0xef,
+ 0x6e, 0xe7, 0xec, 0x05,
+};
+static const unsigned char kat2515_entropyinreseed[] = {
+ 0x9d, 0x7a, 0x88, 0xfb, 0x58, 0xd5, 0x92, 0x47, 0x7b, 0xef, 0x88, 0x0a,
+ 0x4e, 0xc1, 0x73, 0x72, 0xaf, 0xfb, 0x6d, 0x90, 0x12, 0xa8, 0x6b, 0xfd,
+ 0xae, 0x3f, 0xc9, 0xa8, 0xd7, 0xc5, 0xa8, 0xcb, 0xfd, 0x83, 0x1b, 0x26,
+ 0xe1, 0x15, 0xd9, 0x61,
+};
+static const unsigned char kat2515_addinreseed[] = {
+ 0x7b, 0xd9, 0xaa, 0x01, 0x43, 0x85, 0x9b, 0x16, 0xcb, 0x7b, 0xad, 0x10,
+ 0x7b, 0xd4, 0x35, 0x3a, 0x95, 0x93, 0x4d, 0xeb, 0xc0, 0xf8, 0x8b, 0x08,
+ 0x19, 0x42, 0x79, 0x3b, 0x66, 0xce, 0x09, 0x76, 0x75, 0x6c, 0x6d, 0xbe,
+ 0x76, 0x3c, 0x1e, 0xa9,
+};
+static const unsigned char kat2515_addin0[] = {
+ 0xba, 0xf3, 0x4d, 0xf3, 0xc4, 0x2e, 0x3a, 0x63, 0xe3, 0x87, 0xdb, 0xf9,
+ 0xad, 0x35, 0x82, 0x7a, 0x77, 0x44, 0xc2, 0x95, 0xb0, 0xb5, 0xb0, 0x55,
+ 0x04, 0x1d, 0xca, 0x13, 0x00, 0xc2, 0xb2, 0x6a, 0x03, 0xc2, 0x35, 0xfb,
+ 0x9e, 0x37, 0x01, 0xd7,
+};
+static const unsigned char kat2515_addin1[] = {
+ 0x27, 0xa3, 0xae, 0x0b, 0xc3, 0x7c, 0x1e, 0x8a, 0xad, 0xde, 0x39, 0x34,
+ 0x2c, 0x5b, 0xdc, 0x5c, 0xab, 0x21, 0xdd, 0xf6, 0x3d, 0x2d, 0x2d, 0xc2,
+ 0x07, 0xc6, 0x27, 0xb9, 0x64, 0xbb, 0xab, 0x9e, 0xd5, 0x67, 0xc5, 0xb0,
+ 0x0c, 0x75, 0x9b, 0xed,
+};
+static const unsigned char kat2515_retbits[] = {
+ 0xc7, 0xf0, 0xfb, 0xfb, 0x04, 0x40, 0x86, 0xb4, 0xde, 0x21, 0x26, 0xe2,
+ 0x10, 0x58, 0x15, 0x5a, 0x38, 0xca, 0x2b, 0x3a, 0x53, 0x7a, 0x83, 0x2a,
+ 0x40, 0xf6, 0x95, 0x9a, 0x9d, 0xb0, 0xd1, 0xd2, 0xe0, 0xea, 0x58, 0xf1,
+ 0x11, 0x17, 0x91, 0x99, 0xaf, 0x21, 0x25, 0xf3, 0x1b, 0xb6, 0x30, 0x53,
+ 0x5f, 0xf5, 0x1a, 0x6a, 0x08, 0xda, 0xa8, 0x21, 0x3a, 0x94, 0x25, 0xd0,
+ 0xa9, 0x62, 0x8c, 0x9e,
+};
+static const struct drbg_kat_pr_false kat2515_t = {
+ 9, kat2515_entropyin, kat2515_nonce, kat2515_persstr,
+ kat2515_entropyinreseed, kat2515_addinreseed, kat2515_addin0,
+ kat2515_addin1, kat2515_retbits
+};
+static const struct drbg_kat kat2515 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2515_t
+};
+
+static const unsigned char kat2516_entropyin[] = {
+ 0xc1, 0x8c, 0x5c, 0xb0, 0x7f, 0xac, 0x06, 0x40, 0x7a, 0xa9, 0xdd, 0xf3,
+ 0xb1, 0x2e, 0xe2, 0x6a, 0x19, 0xf1, 0x8a, 0x9e, 0xbb, 0xc2, 0x41, 0xf7,
+ 0x29, 0xbe, 0x30, 0xa1, 0x27, 0x39, 0xa5, 0x61, 0x17, 0x35, 0xa7, 0xca,
+ 0x8e, 0x3a, 0x3d, 0x2a,
+};
+static const unsigned char kat2516_nonce[] = {0};
+static const unsigned char kat2516_persstr[] = {
+ 0xff, 0xbc, 0x0d, 0xd0, 0x99, 0xfe, 0x14, 0xa2, 0xb0, 0xc6, 0xfd, 0x46,
+ 0x00, 0x04, 0x41, 0xc2, 0x01, 0x62, 0x8e, 0x10, 0x6c, 0x4d, 0xbc, 0x29,
+ 0x49, 0x83, 0xe4, 0x04, 0x04, 0x3c, 0x73, 0xc7, 0x96, 0x4a, 0x22, 0x4f,
+ 0x55, 0x29, 0x38, 0xb8,
+};
+static const unsigned char kat2516_entropyinreseed[] = {
+ 0xad, 0x17, 0xf7, 0x99, 0x13, 0x22, 0x3c, 0xf2, 0xf7, 0xf7, 0x75, 0xb2,
+ 0xaf, 0xb3, 0x0b, 0x24, 0xe6, 0x77, 0x4c, 0x03, 0xc6, 0xf6, 0x31, 0xb9,
+ 0xaf, 0x19, 0xdd, 0x75, 0x1e, 0xa9, 0x90, 0xf4, 0xe7, 0x22, 0x42, 0x44,
+ 0x58, 0x63, 0xd6, 0x64,
+};
+static const unsigned char kat2516_addinreseed[] = {
+ 0x2f, 0xd2, 0x88, 0x26, 0xc4, 0xe0, 0x23, 0xf5, 0x6e, 0xe4, 0xc8, 0x72,
+ 0xc6, 0x8f, 0x7c, 0xa6, 0x2b, 0x92, 0x23, 0xac, 0xfe, 0x9c, 0xee, 0x92,
+ 0x3a, 0xb0, 0xfe, 0x6f, 0x4b, 0x27, 0x17, 0x28, 0xe5, 0x88, 0xa1, 0xd4,
+ 0x1b, 0x89, 0xa5, 0x6e,
+};
+static const unsigned char kat2516_addin0[] = {
+ 0x89, 0x90, 0xd5, 0x75, 0xda, 0xee, 0xb3, 0x08, 0xff, 0xcd, 0xd1, 0xc8,
+ 0x62, 0xcd, 0x23, 0x42, 0x39, 0x9d, 0xd3, 0x44, 0x04, 0xff, 0x8e, 0xbc,
+ 0xfb, 0x49, 0x0d, 0x5b, 0x37, 0x2d, 0x90, 0xa5, 0x97, 0x12, 0x0d, 0x2b,
+ 0xd9, 0x1c, 0x7f, 0x19,
+};
+static const unsigned char kat2516_addin1[] = {
+ 0x35, 0x75, 0x57, 0xd8, 0x97, 0x4d, 0x5f, 0xa3, 0x0d, 0x91, 0x54, 0xc8,
+ 0x5a, 0x5c, 0xa8, 0xe1, 0x45, 0x7e, 0x24, 0xc1, 0x48, 0x45, 0x90, 0xa4,
+ 0x59, 0x44, 0xbb, 0x8f, 0x4a, 0xac, 0xd1, 0x68, 0xca, 0xc4, 0x53, 0x7d,
+ 0xce, 0x99, 0xe6, 0x4c,
+};
+static const unsigned char kat2516_retbits[] = {
+ 0x07, 0xe4, 0x15, 0x37, 0x40, 0x54, 0xf9, 0x55, 0xa1, 0x5f, 0x24, 0xa2,
+ 0x37, 0x6b, 0x34, 0x5c, 0x77, 0x47, 0x9a, 0x72, 0x63, 0x8e, 0x48, 0x46,
+ 0xed, 0x22, 0x48, 0x23, 0x49, 0x84, 0x32, 0x0e, 0xc8, 0x89, 0x76, 0x8e,
+ 0x6a, 0xb1, 0x68, 0x6d, 0x70, 0xd6, 0x74, 0x0b, 0x50, 0xb8, 0xc1, 0xdb,
+ 0x6e, 0x92, 0x26, 0xb8, 0x33, 0x49, 0x58, 0x50, 0xc6, 0x3f, 0xc6, 0x90,
+ 0x9d, 0x19, 0xb3, 0xea,
+};
+static const struct drbg_kat_pr_false kat2516_t = {
+ 10, kat2516_entropyin, kat2516_nonce, kat2516_persstr,
+ kat2516_entropyinreseed, kat2516_addinreseed, kat2516_addin0,
+ kat2516_addin1, kat2516_retbits
+};
+static const struct drbg_kat kat2516 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2516_t
+};
+
+static const unsigned char kat2517_entropyin[] = {
+ 0xd8, 0x47, 0x20, 0x66, 0x9e, 0x4f, 0x05, 0xc2, 0x6d, 0x09, 0x2f, 0x69,
+ 0x44, 0x60, 0x8f, 0x03, 0x9a, 0x9c, 0x7d, 0x74, 0x1d, 0xc3, 0xcc, 0xa5,
+ 0x73, 0xc1, 0x79, 0xf8, 0x01, 0xf1, 0xa0, 0xd9, 0x74, 0x9e, 0x4c, 0xfe,
+ 0x04, 0xc0, 0x8b, 0x3c,
+};
+static const unsigned char kat2517_nonce[] = {0};
+static const unsigned char kat2517_persstr[] = {
+ 0xe3, 0x09, 0xd3, 0x7d, 0xe7, 0xda, 0x0a, 0xbe, 0xff, 0x54, 0x0b, 0x5b,
+ 0x64, 0x73, 0x64, 0x07, 0xf1, 0x68, 0x35, 0xb8, 0x8b, 0x4b, 0xdd, 0xcc,
+ 0x41, 0xd8, 0x8a, 0x55, 0xc9, 0xb1, 0x8f, 0xfd, 0xb1, 0x8a, 0x75, 0x4d,
+ 0xd0, 0x96, 0xe8, 0x5c,
+};
+static const unsigned char kat2517_entropyinreseed[] = {
+ 0xc4, 0x0c, 0xe5, 0x4b, 0xbc, 0xab, 0x56, 0xaf, 0xaa, 0x50, 0x3c, 0x55,
+ 0x00, 0xdb, 0xa4, 0xf3, 0x0a, 0x92, 0x18, 0x11, 0xa2, 0x4e, 0xfe, 0x46,
+ 0xcf, 0x4d, 0xb2, 0xf3, 0xc2, 0x1c, 0x25, 0x60, 0x06, 0x32, 0xdd, 0xf6,
+ 0x65, 0xb0, 0x7f, 0xfa,
+};
+static const unsigned char kat2517_addinreseed[] = {
+ 0x1c, 0x04, 0xb4, 0x70, 0x4d, 0x86, 0x98, 0xc1, 0x73, 0x16, 0x21, 0xaa,
+ 0x87, 0x51, 0x9f, 0x39, 0x2f, 0x13, 0x91, 0xd3, 0x6d, 0x2a, 0x40, 0xf1,
+ 0x58, 0x94, 0xec, 0x50, 0x35, 0xb5, 0x37, 0xb7, 0xec, 0x0d, 0x4a, 0xdf,
+ 0x6d, 0x1b, 0xb4, 0xa0,
+};
+static const unsigned char kat2517_addin0[] = {
+ 0xbb, 0xb4, 0x2b, 0x0b, 0x02, 0x98, 0x05, 0x03, 0x93, 0x55, 0x6e, 0x41,
+ 0x09, 0x8d, 0x14, 0x0a, 0x69, 0x76, 0x5c, 0x85, 0xbc, 0x27, 0x94, 0x19,
+ 0x49, 0x20, 0xfa, 0xbc, 0x91, 0xad, 0x5f, 0xb7, 0x7e, 0x84, 0x22, 0xc6,
+ 0x2b, 0xc3, 0xc2, 0x5d,
+};
+static const unsigned char kat2517_addin1[] = {
+ 0x20, 0x6c, 0xad, 0x3c, 0x4b, 0xa7, 0xb5, 0xdf, 0xfb, 0x17, 0xd6, 0xa9,
+ 0x39, 0xb6, 0xf3, 0xb0, 0x9b, 0x29, 0x65, 0xd5, 0xb4, 0x0d, 0x2e, 0x13,
+ 0xa6, 0x6e, 0xd8, 0x9f, 0xea, 0x6a, 0xde, 0x43, 0x5b, 0x54, 0x43, 0xa4,
+ 0x2b, 0x3a, 0x1e, 0xb5,
+};
+static const unsigned char kat2517_retbits[] = {
+ 0x9d, 0x71, 0x15, 0x4b, 0x79, 0xda, 0x6c, 0x91, 0x20, 0x97, 0x2a, 0x4d,
+ 0x25, 0x16, 0x91, 0xc1, 0x05, 0x34, 0x42, 0xdf, 0x43, 0x57, 0x64, 0x58,
+ 0x7c, 0x89, 0x2b, 0xc1, 0x1c, 0x80, 0x08, 0x58, 0xed, 0xd4, 0xdd, 0x19,
+ 0xc3, 0x6d, 0x1b, 0x99, 0x7d, 0x70, 0x36, 0x6f, 0x0b, 0x0c, 0x5c, 0xe5,
+ 0x9c, 0x56, 0x34, 0xeb, 0x8c, 0xba, 0x50, 0xe5, 0x46, 0xe0, 0x7d, 0xa0,
+ 0x1d, 0x9e, 0x7b, 0x96,
+};
+static const struct drbg_kat_pr_false kat2517_t = {
+ 11, kat2517_entropyin, kat2517_nonce, kat2517_persstr,
+ kat2517_entropyinreseed, kat2517_addinreseed, kat2517_addin0,
+ kat2517_addin1, kat2517_retbits
+};
+static const struct drbg_kat kat2517 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2517_t
+};
+
+static const unsigned char kat2518_entropyin[] = {
+ 0x5d, 0xcb, 0x4b, 0xe4, 0x94, 0x38, 0x21, 0x0a, 0xa2, 0x68, 0x2f, 0x7d,
+ 0x78, 0x4a, 0xae, 0xe5, 0x0d, 0x29, 0xef, 0xaa, 0x63, 0xfa, 0x63, 0xad,
+ 0xc8, 0x9e, 0x3c, 0xd7, 0xd7, 0x01, 0x71, 0x0f, 0x8f, 0xd2, 0xd4, 0x4c,
+ 0xd5, 0x1a, 0x2d, 0x7f,
+};
+static const unsigned char kat2518_nonce[] = {0};
+static const unsigned char kat2518_persstr[] = {
+ 0xf8, 0xf7, 0x9c, 0xf6, 0x95, 0x1e, 0x84, 0x0f, 0x22, 0x8d, 0x9d, 0x28,
+ 0x77, 0x11, 0x85, 0xbc, 0xde, 0x72, 0x92, 0x3a, 0xce, 0x20, 0xc3, 0x07,
+ 0x9f, 0x85, 0x5a, 0xfa, 0x0a, 0x1e, 0x61, 0xa5, 0x7e, 0xaa, 0x23, 0x23,
+ 0xf3, 0x4c, 0xcd, 0x61,
+};
+static const unsigned char kat2518_entropyinreseed[] = {
+ 0xbd, 0x59, 0x60, 0x16, 0x28, 0x8a, 0x02, 0xfd, 0xae, 0x29, 0x12, 0x16,
+ 0xf8, 0xb5, 0xc3, 0x13, 0x5b, 0x96, 0xee, 0xdd, 0xed, 0xe6, 0x9c, 0xd1,
+ 0xc5, 0xf3, 0x07, 0xd7, 0x58, 0x98, 0x1f, 0x16, 0x4b, 0x5b, 0x63, 0x1a,
+ 0xe1, 0x55, 0x23, 0xf3,
+};
+static const unsigned char kat2518_addinreseed[] = {
+ 0x3e, 0x2c, 0xd8, 0xc5, 0x97, 0x3b, 0x30, 0x2f, 0x75, 0x36, 0x63, 0x6d,
+ 0xa1, 0x7f, 0x5b, 0xb2, 0xa5, 0x93, 0xe5, 0x91, 0xc3, 0xec, 0xc8, 0xec,
+ 0x37, 0x1f, 0x72, 0x76, 0x52, 0x04, 0x61, 0x8c, 0x0d, 0x65, 0x90, 0xe9,
+ 0xf6, 0x2b, 0x2d, 0xed,
+};
+static const unsigned char kat2518_addin0[] = {
+ 0x9b, 0x74, 0xbf, 0x20, 0x98, 0xce, 0xfd, 0xef, 0x3a, 0xe1, 0x6c, 0x4c,
+ 0x7a, 0x76, 0x4c, 0xa8, 0x9c, 0x72, 0xb6, 0xd5, 0xe8, 0x3e, 0x85, 0x17,
+ 0xbe, 0x76, 0x1a, 0xcd, 0x4c, 0x1a, 0xdd, 0x40, 0x30, 0x6c, 0x3c, 0xaf,
+ 0x41, 0xe2, 0x1c, 0x51,
+};
+static const unsigned char kat2518_addin1[] = {
+ 0x94, 0x87, 0xa6, 0xa1, 0xac, 0x80, 0x0a, 0x07, 0xae, 0x94, 0x8c, 0xcb,
+ 0x40, 0xef, 0x71, 0x2c, 0x8b, 0x23, 0x79, 0x48, 0x64, 0xc9, 0x24, 0xb4,
+ 0xf4, 0xe7, 0x9c, 0xe0, 0xe5, 0xb4, 0x76, 0xa3, 0x6f, 0x60, 0x96, 0x74,
+ 0xfe, 0x53, 0x03, 0xfe,
+};
+static const unsigned char kat2518_retbits[] = {
+ 0x4e, 0xf2, 0x28, 0x01, 0xd1, 0x5c, 0x14, 0x7a, 0x26, 0x71, 0x72, 0x04,
+ 0x89, 0x44, 0x35, 0x34, 0x93, 0x56, 0x7f, 0xb9, 0xfe, 0xe8, 0x54, 0xde,
+ 0x3e, 0xe1, 0x8f, 0xe4, 0x64, 0x55, 0xe1, 0x41, 0xad, 0x52, 0x66, 0x32,
+ 0xc4, 0xaf, 0xbc, 0x14, 0x64, 0xd6, 0x37, 0xe5, 0x94, 0x21, 0xe9, 0x6d,
+ 0x8a, 0x3e, 0x09, 0x83, 0x58, 0x3f, 0xe4, 0x15, 0x2a, 0xcc, 0x7f, 0xb2,
+ 0xdc, 0x0d, 0xbd, 0x89,
+};
+static const struct drbg_kat_pr_false kat2518_t = {
+ 12, kat2518_entropyin, kat2518_nonce, kat2518_persstr,
+ kat2518_entropyinreseed, kat2518_addinreseed, kat2518_addin0,
+ kat2518_addin1, kat2518_retbits
+};
+static const struct drbg_kat kat2518 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2518_t
+};
+
+static const unsigned char kat2519_entropyin[] = {
+ 0x15, 0xd9, 0xb2, 0xac, 0x39, 0x83, 0x55, 0x3e, 0x16, 0x70, 0x33, 0x7d,
+ 0x7c, 0x8a, 0x2d, 0x03, 0xa7, 0xa7, 0x0c, 0x65, 0x11, 0xce, 0x55, 0xd4,
+ 0x62, 0xaf, 0xe1, 0x47, 0x92, 0xf8, 0x52, 0xa1, 0x13, 0x86, 0x2e, 0xb5,
+ 0xed, 0x39, 0x80, 0x65,
+};
+static const unsigned char kat2519_nonce[] = {0};
+static const unsigned char kat2519_persstr[] = {
+ 0xed, 0xbd, 0x08, 0xe6, 0xca, 0x63, 0x83, 0x1e, 0x69, 0x07, 0xf4, 0xa6,
+ 0x9f, 0x4b, 0x95, 0x43, 0x70, 0xe5, 0xa4, 0x45, 0x36, 0x7d, 0x92, 0xb4,
+ 0xaa, 0xcb, 0xae, 0x1c, 0x0a, 0x0c, 0x48, 0x3e, 0x1c, 0x97, 0xee, 0x0c,
+ 0x7f, 0x2f, 0x40, 0x84,
+};
+static const unsigned char kat2519_entropyinreseed[] = {
+ 0xa9, 0x15, 0x8b, 0x76, 0x02, 0xda, 0x31, 0x26, 0xbb, 0x42, 0x94, 0xcd,
+ 0xcb, 0x47, 0x19, 0x8e, 0x36, 0x6d, 0x7b, 0x71, 0xf7, 0xd1, 0x14, 0x4d,
+ 0x99, 0x05, 0x64, 0x9a, 0xaf, 0x56, 0x71, 0xac, 0x7c, 0x3b, 0x77, 0x77,
+ 0xe1, 0x74, 0xf0, 0x4b,
+};
+static const unsigned char kat2519_addinreseed[] = {
+ 0xd7, 0xe0, 0x7d, 0xb7, 0x68, 0xfc, 0x0e, 0x49, 0x9e, 0x9a, 0x6f, 0x31,
+ 0x50, 0xa3, 0xff, 0x9f, 0x46, 0x63, 0xbd, 0x4b, 0xb8, 0x6f, 0xf7, 0x5a,
+ 0xc7, 0x87, 0x71, 0x6a, 0x72, 0x88, 0xc3, 0x11, 0x33, 0xca, 0xd9, 0xdc,
+ 0x26, 0xdb, 0x2c, 0xe1,
+};
+static const unsigned char kat2519_addin0[] = {
+ 0x76, 0xe6, 0xa1, 0x87, 0x64, 0xfa, 0x75, 0xda, 0x82, 0x16, 0x3a, 0x59,
+ 0xed, 0xb8, 0xcc, 0x04, 0x61, 0x50, 0x44, 0x06, 0xeb, 0x9b, 0xe3, 0x71,
+ 0x2a, 0x21, 0xad, 0x24, 0xe4, 0x95, 0xd7, 0x89, 0x02, 0x46, 0xc4, 0x4d,
+ 0x96, 0x84, 0xb0, 0x64,
+};
+static const unsigned char kat2519_addin1[] = {
+ 0x82, 0xd8, 0xa3, 0x97, 0x06, 0x0e, 0x1a, 0x94, 0x8e, 0xf2, 0xa7, 0x0f,
+ 0x48, 0xc3, 0x2c, 0xd5, 0x6e, 0xc9, 0x35, 0x80, 0x1a, 0x5a, 0x65, 0x42,
+ 0x2a, 0xae, 0x18, 0x5e, 0xe0, 0x57, 0xcf, 0xd5, 0x87, 0xa3, 0xfa, 0xcf,
+ 0xc0, 0xfe, 0xac, 0x4b,
+};
+static const unsigned char kat2519_retbits[] = {
+ 0x18, 0xf5, 0x3b, 0x7b, 0x2f, 0x17, 0xdc, 0x14, 0x28, 0x85, 0x1d, 0x36,
+ 0x58, 0xf9, 0xcc, 0x3e, 0x85, 0x9b, 0xf6, 0xc9, 0x1a, 0xc9, 0x4e, 0x44,
+ 0x9d, 0x03, 0xb8, 0x8f, 0x92, 0xd2, 0xf0, 0x6c, 0x8f, 0xa1, 0x15, 0x09,
+ 0x98, 0x8a, 0xa2, 0x8a, 0x32, 0x2c, 0x3f, 0x8e, 0x1d, 0x82, 0x6d, 0x7c,
+ 0xc3, 0x7e, 0x2c, 0xff, 0x8c, 0xea, 0x20, 0x34, 0x0a, 0x09, 0xf4, 0xa3,
+ 0x5f, 0xc4, 0x89, 0x0f,
+};
+static const struct drbg_kat_pr_false kat2519_t = {
+ 13, kat2519_entropyin, kat2519_nonce, kat2519_persstr,
+ kat2519_entropyinreseed, kat2519_addinreseed, kat2519_addin0,
+ kat2519_addin1, kat2519_retbits
+};
+static const struct drbg_kat kat2519 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2519_t
+};
+
+static const unsigned char kat2520_entropyin[] = {
+ 0xa4, 0x5e, 0x35, 0xe0, 0xad, 0x03, 0x06, 0x22, 0x5c, 0xf6, 0xe6, 0x8d,
+ 0xb1, 0xad, 0xa9, 0xfd, 0xc5, 0xbe, 0x20, 0xf9, 0x67, 0xed, 0x74, 0xe0,
+ 0xfa, 0x42, 0xb1, 0x84, 0xbe, 0xed, 0x56, 0xfa, 0xa3, 0x47, 0xed, 0x4c,
+ 0x6a, 0x17, 0xc9, 0xf2,
+};
+static const unsigned char kat2520_nonce[] = {0};
+static const unsigned char kat2520_persstr[] = {
+ 0x56, 0x29, 0x19, 0x28, 0x11, 0x26, 0xb7, 0x0b, 0x46, 0xe6, 0xf4, 0x2f,
+ 0x92, 0xc8, 0xfa, 0x1e, 0xcc, 0x1c, 0xe9, 0xe3, 0xb3, 0xd5, 0x5d, 0x1d,
+ 0x77, 0x13, 0x8e, 0x4b, 0x81, 0x72, 0x78, 0x00, 0xe7, 0xcc, 0x0f, 0xea,
+ 0x5a, 0xb9, 0xf1, 0x85,
+};
+static const unsigned char kat2520_entropyinreseed[] = {
+ 0x59, 0xae, 0x2e, 0x14, 0x61, 0x4a, 0x27, 0xea, 0xa3, 0xb8, 0xde, 0x7f,
+ 0x37, 0x77, 0x21, 0x4c, 0xa4, 0xfa, 0x20, 0x6e, 0xb8, 0x68, 0xf0, 0x2d,
+ 0x72, 0x4c, 0x18, 0x54, 0x9f, 0xe7, 0x7d, 0xc8, 0xd9, 0xa4, 0x65, 0xf1,
+ 0xcf, 0x56, 0x84, 0x9a,
+};
+static const unsigned char kat2520_addinreseed[] = {
+ 0x04, 0x84, 0x64, 0x4b, 0x35, 0x07, 0x33, 0x0e, 0x45, 0xe3, 0x93, 0x3e,
+ 0xc3, 0x42, 0xd5, 0xee, 0x4a, 0xf1, 0xf7, 0x84, 0xa5, 0x3c, 0x4e, 0xf6,
+ 0x38, 0xc6, 0x8f, 0x7f, 0xab, 0x03, 0xaa, 0xeb, 0x41, 0x1f, 0xeb, 0xf9,
+ 0xdc, 0x51, 0x94, 0xc5,
+};
+static const unsigned char kat2520_addin0[] = {
+ 0x6f, 0x6d, 0x6a, 0xb0, 0xd0, 0xc0, 0x2e, 0xcf, 0xba, 0xa3, 0xba, 0x6d,
+ 0x8f, 0x38, 0xa8, 0xac, 0xb0, 0x86, 0x99, 0xd0, 0x8f, 0x30, 0x35, 0xce,
+ 0x7f, 0xd0, 0x33, 0x43, 0xb7, 0xef, 0x2d, 0x96, 0x1d, 0xde, 0xc5, 0x81,
+ 0x2a, 0x30, 0xa0, 0x45,
+};
+static const unsigned char kat2520_addin1[] = {
+ 0xfb, 0xa0, 0xd6, 0xf6, 0xca, 0x8f, 0x1a, 0x58, 0x77, 0x82, 0xc5, 0x31,
+ 0x97, 0x66, 0x20, 0x90, 0x59, 0xa2, 0x3c, 0xb3, 0xe7, 0x47, 0x6b, 0x2d,
+ 0x06, 0x0a, 0xd0, 0x6f, 0x2d, 0xb9, 0xe0, 0x97, 0x28, 0xcd, 0xbe, 0x0f,
+ 0x8a, 0x86, 0xc1, 0x4c,
+};
+static const unsigned char kat2520_retbits[] = {
+ 0x9e, 0x88, 0x54, 0x4b, 0x84, 0x86, 0xd3, 0x44, 0x5c, 0x0b, 0xf4, 0x7d,
+ 0x0f, 0x55, 0xbb, 0x8d, 0x3f, 0x2a, 0xbf, 0x5d, 0x5b, 0x28, 0x16, 0xdf,
+ 0x7a, 0xbc, 0xf3, 0xf4, 0x19, 0xdc, 0x37, 0xca, 0x33, 0x2b, 0xc0, 0x0f,
+ 0xb8, 0xc4, 0x01, 0x52, 0x75, 0x0b, 0x4c, 0x46, 0x05, 0x4e, 0x8a, 0x28,
+ 0x11, 0x90, 0xf6, 0xe3, 0x00, 0x7b, 0x84, 0x4c, 0x63, 0xf6, 0xcb, 0xd1,
+ 0xdd, 0x9a, 0xcb, 0x01,
+};
+static const struct drbg_kat_pr_false kat2520_t = {
+ 14, kat2520_entropyin, kat2520_nonce, kat2520_persstr,
+ kat2520_entropyinreseed, kat2520_addinreseed, kat2520_addin0,
+ kat2520_addin1, kat2520_retbits
+};
+static const struct drbg_kat kat2520 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2520_t
+};
+
+static const unsigned char kat2521_entropyin[] = {
+ 0x3b, 0xb9, 0xb2, 0x66, 0x2a, 0x25, 0x5d, 0xf8, 0xf8, 0x80, 0x88, 0x47,
+ 0x18, 0x84, 0x06, 0x96, 0x0e, 0xc0, 0x03, 0x35, 0x1c, 0xab, 0x3a, 0xd2,
+ 0x02, 0x78, 0x71, 0xf1, 0x30, 0x29, 0x56, 0xaa, 0x31, 0xab, 0xc8, 0xd3,
+ 0x9c, 0x36, 0x29, 0xd9,
+};
+static const unsigned char kat2521_nonce[] = {0};
+static const unsigned char kat2521_persstr[] = {0};
+static const unsigned char kat2521_entropyinreseed[] = {
+ 0x7b, 0xc8, 0x63, 0xda, 0x2b, 0x9f, 0xde, 0x00, 0x8b, 0x61, 0x00, 0x79,
+ 0xf8, 0xbd, 0x80, 0x41, 0x80, 0xa7, 0xe8, 0x65, 0x3c, 0xa6, 0xe9, 0x1a,
+ 0x5a, 0x90, 0x61, 0x9c, 0x23, 0xe0, 0x2c, 0xe4, 0xd6, 0x07, 0xb0, 0x0c,
+ 0x79, 0x24, 0x36, 0xfe,
+};
+static const unsigned char kat2521_addinreseed[] = {0};
+static const unsigned char kat2521_addin0[] = {0};
+static const unsigned char kat2521_addin1[] = {0};
+static const unsigned char kat2521_retbits[] = {
+ 0x50, 0x6c, 0x74, 0x51, 0xe5, 0xee, 0x0f, 0xdc, 0xa4, 0x86, 0x32, 0x94,
+ 0x2f, 0x2b, 0xa4, 0x73, 0x04, 0xeb, 0x02, 0x10, 0xf1, 0xfa, 0xc6, 0x6c,
+ 0x62, 0x03, 0x65, 0xf7, 0x53, 0xef, 0x70, 0x98, 0x9c, 0x40, 0xfe, 0x9f,
+ 0xd5, 0x4d, 0x54, 0xa9, 0xe4, 0xaa, 0x0b, 0x3f, 0x1a, 0xb7, 0x00, 0xaa,
+ 0x6e, 0x9d, 0x45, 0xbc, 0x7c, 0xe3, 0x2b, 0x88, 0xbb, 0xed, 0x53, 0x7e,
+ 0xcb, 0xc4, 0xf3, 0x77,
+};
+static const struct drbg_kat_pr_false kat2521_t = {
+ 0, kat2521_entropyin, kat2521_nonce, kat2521_persstr,
+ kat2521_entropyinreseed, kat2521_addinreseed, kat2521_addin0,
+ kat2521_addin1, kat2521_retbits
+};
+static const struct drbg_kat kat2521 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2521_t
+};
+
+static const unsigned char kat2522_entropyin[] = {
+ 0xab, 0x12, 0xf3, 0xf9, 0x41, 0x0c, 0x55, 0xc7, 0x60, 0xae, 0x88, 0xce,
+ 0x17, 0x3d, 0x7c, 0x78, 0xa6, 0xb1, 0x0a, 0xea, 0x55, 0x96, 0x70, 0x76,
+ 0xaf, 0xfc, 0xe3, 0x67, 0x65, 0xf0, 0x46, 0xa6, 0x1d, 0xdc, 0x3b, 0x51,
+ 0x43, 0xa3, 0x9f, 0x65,
+};
+static const unsigned char kat2522_nonce[] = {0};
+static const unsigned char kat2522_persstr[] = {0};
+static const unsigned char kat2522_entropyinreseed[] = {
+ 0x48, 0x2a, 0x31, 0x95, 0x73, 0xd0, 0x92, 0x6a, 0x2e, 0xba, 0x77, 0x0f,
+ 0x98, 0x85, 0x67, 0xe1, 0x6a, 0xa1, 0x77, 0x9a, 0x31, 0x38, 0x26, 0xfe,
+ 0xd4, 0x66, 0x78, 0x3c, 0xa7, 0x9e, 0xe3, 0xb5, 0xf8, 0x2b, 0x1d, 0xf0,
+ 0x05, 0xe0, 0xbe, 0xb8,
+};
+static const unsigned char kat2522_addinreseed[] = {0};
+static const unsigned char kat2522_addin0[] = {0};
+static const unsigned char kat2522_addin1[] = {0};
+static const unsigned char kat2522_retbits[] = {
+ 0x05, 0x1b, 0x4c, 0xa1, 0x40, 0xf4, 0x5e, 0xde, 0x15, 0x3a, 0x74, 0xa6,
+ 0x6b, 0xd9, 0x04, 0xa0, 0x0d, 0xa6, 0x31, 0xae, 0xb0, 0xd9, 0x2d, 0x23,
+ 0x82, 0xe3, 0x51, 0xb1, 0x3d, 0x63, 0xad, 0xbe, 0x4a, 0xe7, 0xa2, 0x8f,
+ 0x83, 0xa1, 0x24, 0xfb, 0x07, 0x7b, 0x12, 0xad, 0x55, 0xe2, 0xf9, 0x94,
+ 0xad, 0xe2, 0x21, 0x03, 0x20, 0x9f, 0xcd, 0x97, 0x67, 0xef, 0x9a, 0xc6,
+ 0x16, 0xad, 0x53, 0x7c,
+};
+static const struct drbg_kat_pr_false kat2522_t = {
+ 1, kat2522_entropyin, kat2522_nonce, kat2522_persstr,
+ kat2522_entropyinreseed, kat2522_addinreseed, kat2522_addin0,
+ kat2522_addin1, kat2522_retbits
+};
+static const struct drbg_kat kat2522 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2522_t
+};
+
+static const unsigned char kat2523_entropyin[] = {
+ 0x79, 0xae, 0x74, 0xb9, 0xd0, 0xe5, 0x5f, 0x2f, 0xfb, 0xfa, 0xef, 0x21,
+ 0xf2, 0x7e, 0xb0, 0x51, 0xf1, 0xcc, 0x5c, 0x49, 0xed, 0x19, 0xa1, 0xff,
+ 0x29, 0xc4, 0xfe, 0x63, 0x7c, 0x7a, 0xbd, 0x8c, 0x34, 0x2e, 0xe2, 0xec,
+ 0x7c, 0x8c, 0x4d, 0x1c,
+};
+static const unsigned char kat2523_nonce[] = {0};
+static const unsigned char kat2523_persstr[] = {0};
+static const unsigned char kat2523_entropyinreseed[] = {
+ 0xee, 0xbc, 0x7f, 0x67, 0x50, 0x77, 0x51, 0x20, 0x4d, 0xf3, 0x0d, 0xa3,
+ 0x50, 0x4f, 0x27, 0xef, 0x2d, 0xe8, 0x90, 0xcd, 0x50, 0x9d, 0xcc, 0xc6,
+ 0xe7, 0xe8, 0xb8, 0x5d, 0xd0, 0x9b, 0x85, 0x1b, 0xc4, 0x2a, 0x72, 0x96,
+ 0x9c, 0x50, 0x21, 0xde,
+};
+static const unsigned char kat2523_addinreseed[] = {0};
+static const unsigned char kat2523_addin0[] = {0};
+static const unsigned char kat2523_addin1[] = {0};
+static const unsigned char kat2523_retbits[] = {
+ 0xa2, 0xc6, 0x06, 0x38, 0x64, 0xc2, 0x63, 0xe0, 0x07, 0x3f, 0xa8, 0x5e,
+ 0x36, 0xb0, 0x9c, 0xe7, 0x1a, 0xc6, 0xba, 0x3e, 0x96, 0x7c, 0xb7, 0x39,
+ 0x1f, 0xb0, 0x43, 0x46, 0x9b, 0xab, 0x85, 0x80, 0x7b, 0x58, 0xaf, 0x53,
+ 0x02, 0x71, 0x87, 0xac, 0x99, 0x3f, 0xea, 0x5b, 0xc5, 0xc6, 0x4e, 0x4f,
+ 0xfc, 0x4f, 0x08, 0x70, 0xb2, 0xc3, 0x38, 0xf8, 0xdf, 0xbb, 0x7a, 0xc8,
+ 0x35, 0x0a, 0xb1, 0x8b,
+};
+static const struct drbg_kat_pr_false kat2523_t = {
+ 2, kat2523_entropyin, kat2523_nonce, kat2523_persstr,
+ kat2523_entropyinreseed, kat2523_addinreseed, kat2523_addin0,
+ kat2523_addin1, kat2523_retbits
+};
+static const struct drbg_kat kat2523 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2523_t
+};
+
+static const unsigned char kat2524_entropyin[] = {
+ 0x06, 0x2d, 0x77, 0xe6, 0x8e, 0x01, 0x74, 0x75, 0x53, 0xe5, 0x54, 0x34,
+ 0x75, 0x6e, 0xa3, 0xd5, 0x1a, 0xf3, 0x99, 0xb4, 0xf3, 0xf5, 0x8b, 0xa8,
+ 0xbd, 0x8e, 0xa9, 0xbf, 0x7e, 0xa4, 0xde, 0xcb, 0xad, 0xc3, 0xea, 0x2f,
+ 0xf5, 0x3f, 0x6c, 0x0f,
+};
+static const unsigned char kat2524_nonce[] = {0};
+static const unsigned char kat2524_persstr[] = {0};
+static const unsigned char kat2524_entropyinreseed[] = {
+ 0xba, 0x11, 0x1e, 0x60, 0x0a, 0x45, 0xf2, 0x33, 0x67, 0x6e, 0x72, 0x04,
+ 0x96, 0xef, 0xcd, 0x0d, 0x56, 0x6e, 0xc6, 0xc1, 0x82, 0x60, 0xf4, 0xd3,
+ 0x9e, 0xed, 0x3f, 0x7e, 0xc1, 0x54, 0xeb, 0xdf, 0xd9, 0x94, 0x8e, 0xcb,
+ 0x16, 0xa0, 0xb1, 0xe6,
+};
+static const unsigned char kat2524_addinreseed[] = {0};
+static const unsigned char kat2524_addin0[] = {0};
+static const unsigned char kat2524_addin1[] = {0};
+static const unsigned char kat2524_retbits[] = {
+ 0xc8, 0x4e, 0x51, 0x83, 0x79, 0x69, 0xbb, 0xfb, 0x16, 0x0f, 0x63, 0x9e,
+ 0x62, 0xcc, 0xf3, 0xda, 0x56, 0xdc, 0xd6, 0xe3, 0x7f, 0xfa, 0x46, 0x23,
+ 0xc4, 0x03, 0x33, 0x9c, 0xca, 0x2d, 0xa3, 0x74, 0x2f, 0xb9, 0x33, 0xb4,
+ 0xaf, 0x7b, 0x64, 0x9c, 0x39, 0x27, 0x6a, 0xd2, 0x7c, 0x37, 0x6c, 0x8f,
+ 0x13, 0x4d, 0x57, 0x8a, 0x16, 0x43, 0xd5, 0x50, 0x15, 0xf9, 0x95, 0xf9,
+ 0xea, 0x82, 0xd2, 0x9a,
+};
+static const struct drbg_kat_pr_false kat2524_t = {
+ 3, kat2524_entropyin, kat2524_nonce, kat2524_persstr,
+ kat2524_entropyinreseed, kat2524_addinreseed, kat2524_addin0,
+ kat2524_addin1, kat2524_retbits
+};
+static const struct drbg_kat kat2524 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2524_t
+};
+
+static const unsigned char kat2525_entropyin[] = {
+ 0x8b, 0x46, 0x93, 0x44, 0x07, 0x3c, 0xe6, 0xb3, 0x6f, 0xff, 0x0c, 0x14,
+ 0xfe, 0xf1, 0xcb, 0x49, 0xb6, 0xe8, 0x72, 0x80, 0xc2, 0x7c, 0xe9, 0x1c,
+ 0xdd, 0xef, 0x8e, 0x3f, 0x91, 0xde, 0xa3, 0xb9, 0x14, 0x77, 0xe4, 0x46,
+ 0x71, 0x25, 0xca, 0x95,
+};
+static const unsigned char kat2525_nonce[] = {0};
+static const unsigned char kat2525_persstr[] = {0};
+static const unsigned char kat2525_entropyinreseed[] = {
+ 0x07, 0x8e, 0x4c, 0x46, 0xcc, 0xe4, 0x28, 0x9a, 0x5b, 0xcf, 0xc0, 0x39,
+ 0x49, 0xb0, 0x88, 0xdd, 0x1e, 0xda, 0x9e, 0xe8, 0xb7, 0x34, 0xdf, 0x78,
+ 0x3a, 0x13, 0xee, 0xb2, 0x7a, 0xee, 0xa9, 0x5d, 0xab, 0x3a, 0xa5, 0x18,
+ 0x56, 0xcc, 0xbb, 0x7e,
+};
+static const unsigned char kat2525_addinreseed[] = {0};
+static const unsigned char kat2525_addin0[] = {0};
+static const unsigned char kat2525_addin1[] = {0};
+static const unsigned char kat2525_retbits[] = {
+ 0x1f, 0xe8, 0x5a, 0x0f, 0x69, 0x9c, 0x95, 0x7e, 0x6a, 0xcf, 0x10, 0x6a,
+ 0x28, 0xb3, 0xc7, 0x6a, 0x00, 0x10, 0xb7, 0xe3, 0x3e, 0x7f, 0x03, 0x20,
+ 0x0b, 0xf9, 0xb3, 0x86, 0xeb, 0x8a, 0xe4, 0xe7, 0xae, 0x94, 0x15, 0x9e,
+ 0xc4, 0xcc, 0xc0, 0xdc, 0xb3, 0x23, 0xd9, 0xd6, 0x1b, 0xe0, 0xb0, 0xb1,
+ 0x9b, 0xd1, 0x2b, 0x2f, 0xe5, 0x71, 0xff, 0xe5, 0x54, 0x90, 0xd9, 0x19,
+ 0x8d, 0x9e, 0xbc, 0x20,
+};
+static const struct drbg_kat_pr_false kat2525_t = {
+ 4, kat2525_entropyin, kat2525_nonce, kat2525_persstr,
+ kat2525_entropyinreseed, kat2525_addinreseed, kat2525_addin0,
+ kat2525_addin1, kat2525_retbits
+};
+static const struct drbg_kat kat2525 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2525_t
+};
+
+static const unsigned char kat2526_entropyin[] = {
+ 0x47, 0x44, 0xc9, 0xd1, 0x52, 0xda, 0x9e, 0x98, 0xe1, 0x5a, 0xa6, 0xf9,
+ 0xae, 0x20, 0xa6, 0xc3, 0x0a, 0x20, 0x4b, 0x9f, 0xbe, 0x09, 0xad, 0xe5,
+ 0x15, 0x60, 0x26, 0x15, 0x1c, 0x7a, 0x0a, 0x60, 0x89, 0xe1, 0xc7, 0xd7,
+ 0x44, 0xd7, 0xba, 0x6d,
+};
+static const unsigned char kat2526_nonce[] = {0};
+static const unsigned char kat2526_persstr[] = {0};
+static const unsigned char kat2526_entropyinreseed[] = {
+ 0xdd, 0x06, 0x43, 0x3c, 0x12, 0x81, 0x92, 0xc9, 0x7a, 0xf2, 0x49, 0x61,
+ 0x39, 0x15, 0xe9, 0xac, 0xc7, 0xdb, 0x69, 0x4b, 0xb4, 0xe8, 0xcc, 0xa7,
+ 0x4c, 0x21, 0x61, 0xfd, 0x9e, 0x17, 0x3f, 0x73, 0x4e, 0x96, 0x25, 0x2a,
+ 0x47, 0xb2, 0xe2, 0x99,
+};
+static const unsigned char kat2526_addinreseed[] = {0};
+static const unsigned char kat2526_addin0[] = {0};
+static const unsigned char kat2526_addin1[] = {0};
+static const unsigned char kat2526_retbits[] = {
+ 0x1f, 0x87, 0x3b, 0x28, 0x81, 0x70, 0x01, 0x08, 0xbd, 0xa3, 0xf5, 0x88,
+ 0xb3, 0x44, 0x1e, 0x6f, 0x7b, 0x3b, 0xd5, 0xea, 0xc9, 0x3a, 0x16, 0xf6,
+ 0xc6, 0xe4, 0x9b, 0x92, 0x47, 0x75, 0xd1, 0x19, 0xb0, 0x67, 0x3b, 0xb3,
+ 0x05, 0xcb, 0x72, 0x88, 0x2d, 0xd0, 0x20, 0x83, 0xe1, 0x61, 0xb0, 0x6a,
+ 0xde, 0xc9, 0xf2, 0xbf, 0x9d, 0x0b, 0x63, 0x5c, 0x80, 0x28, 0x9a, 0xc6,
+ 0xe6, 0xf7, 0x7e, 0xeb,
+};
+static const struct drbg_kat_pr_false kat2526_t = {
+ 5, kat2526_entropyin, kat2526_nonce, kat2526_persstr,
+ kat2526_entropyinreseed, kat2526_addinreseed, kat2526_addin0,
+ kat2526_addin1, kat2526_retbits
+};
+static const struct drbg_kat kat2526 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2526_t
+};
+
+static const unsigned char kat2527_entropyin[] = {
+ 0xb2, 0xfe, 0x59, 0xbe, 0xe0, 0x9d, 0xb9, 0x9b, 0x5f, 0xfa, 0xec, 0xe5,
+ 0xcc, 0xae, 0x91, 0x47, 0x9d, 0x21, 0x47, 0xad, 0xf5, 0x88, 0x47, 0xe4,
+ 0x62, 0x23, 0xc2, 0x79, 0x91, 0x3d, 0xfe, 0x25, 0x3b, 0x0e, 0x44, 0xf3,
+ 0x30, 0x5e, 0xd3, 0x2d,
+};
+static const unsigned char kat2527_nonce[] = {0};
+static const unsigned char kat2527_persstr[] = {0};
+static const unsigned char kat2527_entropyinreseed[] = {
+ 0xca, 0x34, 0xab, 0xc2, 0x77, 0xf3, 0x8b, 0x0f, 0x72, 0x61, 0x4b, 0x4e,
+ 0x1d, 0x17, 0x9b, 0x1a, 0x12, 0x13, 0x5a, 0x0b, 0x0d, 0x07, 0xda, 0x18,
+ 0x62, 0xd4, 0xd9, 0x09, 0x5b, 0xc2, 0x01, 0x4b, 0x5a, 0x0f, 0x20, 0x6b,
+ 0x1c, 0x2f, 0xca, 0x9a,
+};
+static const unsigned char kat2527_addinreseed[] = {0};
+static const unsigned char kat2527_addin0[] = {0};
+static const unsigned char kat2527_addin1[] = {0};
+static const unsigned char kat2527_retbits[] = {
+ 0x41, 0x49, 0xf8, 0xbe, 0x52, 0xcf, 0xb5, 0x1e, 0x2b, 0xee, 0x05, 0xe0,
+ 0x7b, 0xa3, 0x05, 0x81, 0xca, 0x20, 0xef, 0x1b, 0xcc, 0xe8, 0xcf, 0xac,
+ 0xe8, 0xbb, 0x4d, 0x91, 0xda, 0x3b, 0x19, 0x3e, 0xc0, 0xa8, 0x05, 0xd9,
+ 0x1e, 0x77, 0x9a, 0xf4, 0xc7, 0xe4, 0xdb, 0x99, 0x83, 0xf1, 0x25, 0x50,
+ 0xf3, 0x74, 0x0f, 0x4f, 0x55, 0x65, 0x8c, 0x1c, 0xa2, 0x4e, 0x36, 0xd8,
+ 0x4f, 0x73, 0x10, 0xb6,
+};
+static const struct drbg_kat_pr_false kat2527_t = {
+ 6, kat2527_entropyin, kat2527_nonce, kat2527_persstr,
+ kat2527_entropyinreseed, kat2527_addinreseed, kat2527_addin0,
+ kat2527_addin1, kat2527_retbits
+};
+static const struct drbg_kat kat2527 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2527_t
+};
+
+static const unsigned char kat2528_entropyin[] = {
+ 0x0d, 0x1b, 0x44, 0xff, 0x12, 0xce, 0x16, 0x11, 0x24, 0xd0, 0xe8, 0x7f,
+ 0x82, 0x32, 0x70, 0x33, 0xd2, 0x28, 0x83, 0xc7, 0x9c, 0xc5, 0x2c, 0xc3,
+ 0x43, 0x2a, 0x98, 0x84, 0xdb, 0xd6, 0xc9, 0xca, 0x88, 0xae, 0x35, 0x9f,
+ 0x14, 0x1c, 0xbd, 0x72,
+};
+static const unsigned char kat2528_nonce[] = {0};
+static const unsigned char kat2528_persstr[] = {0};
+static const unsigned char kat2528_entropyinreseed[] = {
+ 0x90, 0xb7, 0xf7, 0x8b, 0x37, 0xb6, 0x39, 0xc9, 0x57, 0x06, 0xed, 0xeb,
+ 0x18, 0x93, 0xd1, 0xf8, 0x1e, 0x08, 0x54, 0x89, 0x12, 0x53, 0x2a, 0x46,
+ 0xef, 0x8c, 0x1b, 0x90, 0x86, 0x8b, 0x89, 0x4b, 0x95, 0x48, 0x1b, 0x2a,
+ 0xe4, 0xc1, 0x7e, 0x66,
+};
+static const unsigned char kat2528_addinreseed[] = {0};
+static const unsigned char kat2528_addin0[] = {0};
+static const unsigned char kat2528_addin1[] = {0};
+static const unsigned char kat2528_retbits[] = {
+ 0x29, 0x5d, 0x3a, 0x4b, 0x7a, 0x0d, 0xbc, 0x36, 0x16, 0x59, 0x8a, 0x14,
+ 0x03, 0x48, 0x85, 0x44, 0x33, 0xe1, 0x2f, 0xb0, 0x69, 0x13, 0x29, 0x5d,
+ 0xb3, 0xa4, 0x20, 0x44, 0x5b, 0x3a, 0xba, 0x87, 0x6c, 0x93, 0x94, 0xbc,
+ 0x2e, 0x8c, 0xb2, 0x93, 0x4e, 0xfc, 0x02, 0x8b, 0x78, 0x99, 0xa7, 0x18,
+ 0x7c, 0x36, 0x40, 0x44, 0xd2, 0xde, 0x48, 0x67, 0x0b, 0x3c, 0xd0, 0xa3,
+ 0x58, 0x75, 0x56, 0xc4,
+};
+static const struct drbg_kat_pr_false kat2528_t = {
+ 7, kat2528_entropyin, kat2528_nonce, kat2528_persstr,
+ kat2528_entropyinreseed, kat2528_addinreseed, kat2528_addin0,
+ kat2528_addin1, kat2528_retbits
+};
+static const struct drbg_kat kat2528 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2528_t
+};
+
+static const unsigned char kat2529_entropyin[] = {
+ 0xca, 0x34, 0x8b, 0xed, 0x64, 0xf8, 0xad, 0xbf, 0xc3, 0xe2, 0x75, 0xef,
+ 0x91, 0x39, 0xb6, 0xf3, 0x59, 0xe4, 0x20, 0x9b, 0x35, 0x6e, 0x14, 0x9f,
+ 0x53, 0xbb, 0xe2, 0x5d, 0xd6, 0x8f, 0x1b, 0x63, 0xe6, 0x55, 0x08, 0x25,
+ 0xf8, 0xa0, 0x87, 0x2a,
+};
+static const unsigned char kat2529_nonce[] = {0};
+static const unsigned char kat2529_persstr[] = {0};
+static const unsigned char kat2529_entropyinreseed[] = {
+ 0x76, 0x2f, 0x85, 0x4a, 0x61, 0x4b, 0x2a, 0xf6, 0x74, 0xf2, 0x25, 0x63,
+ 0x52, 0x8c, 0x84, 0x29, 0x52, 0xd6, 0x33, 0xda, 0xb3, 0xfc, 0x44, 0x33,
+ 0x1d, 0xc3, 0x35, 0x11, 0xa7, 0xf7, 0x69, 0xe2, 0x95, 0x88, 0xed, 0x64,
+ 0x0b, 0x25, 0x70, 0xc7,
+};
+static const unsigned char kat2529_addinreseed[] = {0};
+static const unsigned char kat2529_addin0[] = {0};
+static const unsigned char kat2529_addin1[] = {0};
+static const unsigned char kat2529_retbits[] = {
+ 0x4b, 0x7e, 0x86, 0x96, 0x16, 0xde, 0xb8, 0x05, 0x89, 0xe1, 0x18, 0xac,
+ 0x06, 0xe2, 0x7e, 0x40, 0xe4, 0x45, 0x35, 0x1f, 0x93, 0xfc, 0xc8, 0x45,
+ 0x02, 0xb1, 0x70, 0xff, 0x83, 0xa0, 0x0f, 0xba, 0xd0, 0x03, 0xe5, 0x49,
+ 0xd6, 0xf7, 0xd0, 0x7e, 0x0e, 0xd8, 0x2d, 0xe6, 0x64, 0x92, 0x93, 0x93,
+ 0x3e, 0xb2, 0xeb, 0xcf, 0x08, 0x99, 0xcc, 0x27, 0xc9, 0x14, 0xc2, 0x39,
+ 0xad, 0x1e, 0xbf, 0x12,
+};
+static const struct drbg_kat_pr_false kat2529_t = {
+ 8, kat2529_entropyin, kat2529_nonce, kat2529_persstr,
+ kat2529_entropyinreseed, kat2529_addinreseed, kat2529_addin0,
+ kat2529_addin1, kat2529_retbits
+};
+static const struct drbg_kat kat2529 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2529_t
+};
+
+static const unsigned char kat2530_entropyin[] = {
+ 0x04, 0xd3, 0xc8, 0x45, 0x28, 0xef, 0x14, 0xf0, 0x37, 0x76, 0x89, 0x51,
+ 0xad, 0x8c, 0x11, 0xfd, 0x57, 0x67, 0x32, 0x14, 0x5d, 0x94, 0x6f, 0x9a,
+ 0xc7, 0x3c, 0xfc, 0xcf, 0x7b, 0x49, 0x8c, 0x9a, 0x1d, 0xfc, 0x8b, 0x21,
+ 0x6d, 0x32, 0x82, 0x27,
+};
+static const unsigned char kat2530_nonce[] = {0};
+static const unsigned char kat2530_persstr[] = {0};
+static const unsigned char kat2530_entropyinreseed[] = {
+ 0x63, 0xa8, 0xe9, 0x19, 0x6b, 0xa0, 0x1b, 0x6e, 0x60, 0xcc, 0x01, 0x8f,
+ 0x77, 0x56, 0x9c, 0x42, 0xf2, 0x43, 0x4b, 0xcd, 0xbb, 0xef, 0xf1, 0x9f,
+ 0x44, 0x1b, 0xf0, 0x24, 0x07, 0x5c, 0x27, 0x3e, 0xf8, 0x60, 0xfd, 0xf2,
+ 0x3a, 0x31, 0x0b, 0x3e,
+};
+static const unsigned char kat2530_addinreseed[] = {0};
+static const unsigned char kat2530_addin0[] = {0};
+static const unsigned char kat2530_addin1[] = {0};
+static const unsigned char kat2530_retbits[] = {
+ 0x2a, 0xa2, 0xa6, 0x5b, 0x1c, 0xe5, 0x7c, 0xb3, 0xc7, 0x80, 0x1d, 0x2e,
+ 0x67, 0x5e, 0xff, 0xdb, 0x54, 0x6f, 0x61, 0x2f, 0xb7, 0x34, 0x83, 0x62,
+ 0x2a, 0x8d, 0xbe, 0x4b, 0x1d, 0x31, 0x63, 0xbc, 0x93, 0x03, 0xbc, 0x9e,
+ 0x9b, 0x7f, 0xe6, 0xd8, 0x66, 0xc1, 0x90, 0x6b, 0x1e, 0xbb, 0xa5, 0x41,
+ 0x8b, 0x00, 0x69, 0x11, 0x85, 0x17, 0x58, 0x7d, 0xdc, 0xff, 0x48, 0x0f,
+ 0x04, 0xb9, 0x32, 0xe9,
+};
+static const struct drbg_kat_pr_false kat2530_t = {
+ 9, kat2530_entropyin, kat2530_nonce, kat2530_persstr,
+ kat2530_entropyinreseed, kat2530_addinreseed, kat2530_addin0,
+ kat2530_addin1, kat2530_retbits
+};
+static const struct drbg_kat kat2530 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2530_t
+};
+
+static const unsigned char kat2531_entropyin[] = {
+ 0x05, 0x1d, 0x3d, 0xe5, 0x14, 0x8c, 0x91, 0x7c, 0xf1, 0x9d, 0xa7, 0xd6,
+ 0xb9, 0xb4, 0xa5, 0x0b, 0xe6, 0x15, 0xce, 0x35, 0x74, 0xe7, 0x44, 0x88,
+ 0xd6, 0x07, 0x5d, 0x6a, 0xd5, 0x6c, 0x05, 0x67, 0x2f, 0xc4, 0xa2, 0xfe,
+ 0xcc, 0x1a, 0xe9, 0x0d,
+};
+static const unsigned char kat2531_nonce[] = {0};
+static const unsigned char kat2531_persstr[] = {0};
+static const unsigned char kat2531_entropyinreseed[] = {
+ 0xb8, 0xc4, 0x18, 0x30, 0xf3, 0xbf, 0xf0, 0x77, 0x35, 0x81, 0xf8, 0x8c,
+ 0x4e, 0x68, 0x6a, 0xb2, 0x56, 0x81, 0xac, 0x0b, 0x82, 0x18, 0xb1, 0xb9,
+ 0x00, 0xbc, 0x01, 0x2f, 0xe6, 0xc4, 0x3c, 0xbd, 0x88, 0xe6, 0x81, 0xbf,
+ 0x85, 0xaf, 0xa6, 0xd9,
+};
+static const unsigned char kat2531_addinreseed[] = {0};
+static const unsigned char kat2531_addin0[] = {0};
+static const unsigned char kat2531_addin1[] = {0};
+static const unsigned char kat2531_retbits[] = {
+ 0x3d, 0x01, 0x3e, 0xcd, 0xe7, 0xfe, 0xa9, 0x99, 0x99, 0x7c, 0x89, 0xd4,
+ 0xe6, 0x75, 0xd6, 0xf4, 0x84, 0x1f, 0x61, 0x29, 0x3e, 0x21, 0xc6, 0xa2,
+ 0x52, 0xae, 0xdf, 0x04, 0xb5, 0x78, 0x09, 0xd4, 0x7b, 0xd8, 0x71, 0x6e,
+ 0x77, 0x94, 0x79, 0x05, 0x59, 0xa4, 0xd7, 0xba, 0x5c, 0x68, 0x68, 0xe3,
+ 0x59, 0x4b, 0x3d, 0xb8, 0x08, 0x0d, 0x50, 0x6c, 0xf4, 0xf6, 0x3f, 0xe7,
+ 0x02, 0x8f, 0x6f, 0xac,
+};
+static const struct drbg_kat_pr_false kat2531_t = {
+ 10, kat2531_entropyin, kat2531_nonce, kat2531_persstr,
+ kat2531_entropyinreseed, kat2531_addinreseed, kat2531_addin0,
+ kat2531_addin1, kat2531_retbits
+};
+static const struct drbg_kat kat2531 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2531_t
+};
+
+static const unsigned char kat2532_entropyin[] = {
+ 0x7a, 0x06, 0x77, 0x84, 0xb0, 0xc4, 0xe2, 0x41, 0x78, 0xbf, 0x7d, 0xe6,
+ 0x73, 0x2e, 0x2f, 0x2c, 0x34, 0x5f, 0x9e, 0x93, 0x8c, 0xcb, 0xfb, 0x7c,
+ 0x80, 0x40, 0x7b, 0x26, 0x7a, 0x30, 0x54, 0x69, 0xac, 0x08, 0xf7, 0x37,
+ 0x02, 0x8c, 0x0f, 0x83,
+};
+static const unsigned char kat2532_nonce[] = {0};
+static const unsigned char kat2532_persstr[] = {0};
+static const unsigned char kat2532_entropyinreseed[] = {
+ 0x45, 0x2e, 0xf0, 0xdc, 0xad, 0xe2, 0x81, 0x6f, 0x27, 0xaa, 0x2e, 0xcf,
+ 0x99, 0x12, 0x37, 0xec, 0x95, 0x26, 0xd4, 0x15, 0x64, 0x92, 0xea, 0x10,
+ 0xe3, 0x7a, 0x3e, 0x89, 0xcd, 0x94, 0xd2, 0x76, 0xab, 0x1a, 0xee, 0x87,
+ 0x8c, 0xcf, 0xe1, 0xfd,
+};
+static const unsigned char kat2532_addinreseed[] = {0};
+static const unsigned char kat2532_addin0[] = {0};
+static const unsigned char kat2532_addin1[] = {0};
+static const unsigned char kat2532_retbits[] = {
+ 0x78, 0x13, 0x24, 0xc8, 0x89, 0x48, 0x07, 0x04, 0x64, 0x8c, 0xb8, 0x65,
+ 0x89, 0x6d, 0x4f, 0x3b, 0x45, 0x23, 0x2a, 0xde, 0x00, 0x49, 0x69, 0xd4,
+ 0x6c, 0x71, 0xe2, 0x54, 0x28, 0x56, 0xab, 0x41, 0x2e, 0x35, 0xff, 0x11,
+ 0x28, 0x03, 0xd1, 0x32, 0x27, 0xce, 0x03, 0x79, 0x41, 0xd1, 0xf7, 0xf1,
+ 0xfb, 0xcb, 0xd0, 0x93, 0xd1, 0xf2, 0xca, 0x90, 0x63, 0x5c, 0x0f, 0x32,
+ 0x0a, 0x90, 0x80, 0x99,
+};
+static const struct drbg_kat_pr_false kat2532_t = {
+ 11, kat2532_entropyin, kat2532_nonce, kat2532_persstr,
+ kat2532_entropyinreseed, kat2532_addinreseed, kat2532_addin0,
+ kat2532_addin1, kat2532_retbits
+};
+static const struct drbg_kat kat2532 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2532_t
+};
+
+static const unsigned char kat2533_entropyin[] = {
+ 0x03, 0xc2, 0x3f, 0x20, 0x18, 0xe6, 0x8d, 0xa9, 0x64, 0xae, 0x77, 0xbd,
+ 0xb6, 0x31, 0xee, 0xa2, 0x94, 0x73, 0xea, 0x76, 0x2c, 0x8a, 0xbf, 0x8f,
+ 0xb5, 0x41, 0x8f, 0xe2, 0x68, 0x1f, 0x62, 0xc9, 0x90, 0xd3, 0x9d, 0x2e,
+ 0x58, 0xc6, 0x13, 0x7e,
+};
+static const unsigned char kat2533_nonce[] = {0};
+static const unsigned char kat2533_persstr[] = {0};
+static const unsigned char kat2533_entropyinreseed[] = {
+ 0x2c, 0x17, 0xc1, 0xdf, 0xe4, 0xba, 0x63, 0x5d, 0x4c, 0x36, 0x1f, 0x21,
+ 0x7c, 0x25, 0xaf, 0x20, 0x61, 0x91, 0x2e, 0xf6, 0xc7, 0x81, 0xf1, 0x52,
+ 0x8a, 0x8d, 0xa2, 0xbd, 0x21, 0xb0, 0x83, 0xc4, 0x35, 0x33, 0x2f, 0x30,
+ 0x62, 0xbb, 0x4f, 0x8c,
+};
+static const unsigned char kat2533_addinreseed[] = {0};
+static const unsigned char kat2533_addin0[] = {0};
+static const unsigned char kat2533_addin1[] = {0};
+static const unsigned char kat2533_retbits[] = {
+ 0xa5, 0x2d, 0x85, 0x42, 0x03, 0xc3, 0xda, 0xd0, 0x7a, 0x3c, 0xaf, 0x08,
+ 0x91, 0x31, 0xca, 0xa0, 0x1f, 0x4a, 0x19, 0xe0, 0xf6, 0x8b, 0xd7, 0x0c,
+ 0x4a, 0x11, 0xca, 0xc4, 0xb4, 0x76, 0xec, 0x64, 0x64, 0x7a, 0x5b, 0x3a,
+ 0xfe, 0xfa, 0x37, 0x7d, 0x3d, 0x16, 0x52, 0x5a, 0xb5, 0xc6, 0x39, 0xc9,
+ 0x70, 0x2d, 0xdb, 0x14, 0x40, 0xb5, 0x0d, 0xd2, 0xa8, 0x05, 0x97, 0xaa,
+ 0xe3, 0xbf, 0xce, 0xd0,
+};
+static const struct drbg_kat_pr_false kat2533_t = {
+ 12, kat2533_entropyin, kat2533_nonce, kat2533_persstr,
+ kat2533_entropyinreseed, kat2533_addinreseed, kat2533_addin0,
+ kat2533_addin1, kat2533_retbits
+};
+static const struct drbg_kat kat2533 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2533_t
+};
+
+static const unsigned char kat2534_entropyin[] = {
+ 0xc5, 0x34, 0xc4, 0x4f, 0x2c, 0x40, 0xf3, 0xab, 0x41, 0x14, 0x31, 0x02,
+ 0xd9, 0x73, 0xb7, 0xe9, 0x88, 0x90, 0xf1, 0x0d, 0x63, 0x3a, 0xaf, 0x53,
+ 0x54, 0xaf, 0x6b, 0xb6, 0x3a, 0x01, 0xc2, 0x9b, 0x51, 0x46, 0x6a, 0x21,
+ 0x29, 0x2e, 0xb3, 0xaa,
+};
+static const unsigned char kat2534_nonce[] = {0};
+static const unsigned char kat2534_persstr[] = {0};
+static const unsigned char kat2534_entropyinreseed[] = {
+ 0x27, 0xa3, 0x43, 0x42, 0x65, 0xa1, 0xd4, 0xff, 0x62, 0x04, 0x6b, 0xbb,
+ 0x29, 0x40, 0x95, 0xca, 0xc6, 0x42, 0x4a, 0xa1, 0x2d, 0x2c, 0x20, 0x89,
+ 0x5c, 0x69, 0xee, 0xde, 0x91, 0x2d, 0xf0, 0xe6, 0xc5, 0xb4, 0x88, 0x64,
+ 0x84, 0x90, 0xeb, 0xf2,
+};
+static const unsigned char kat2534_addinreseed[] = {0};
+static const unsigned char kat2534_addin0[] = {0};
+static const unsigned char kat2534_addin1[] = {0};
+static const unsigned char kat2534_retbits[] = {
+ 0x01, 0xb4, 0x05, 0xcb, 0x89, 0xa3, 0x14, 0x03, 0xf0, 0x1a, 0xdd, 0x2a,
+ 0x4f, 0x85, 0x4f, 0xd2, 0x6d, 0xfd, 0xd8, 0x42, 0xd0, 0xde, 0xc8, 0x5d,
+ 0x94, 0x9f, 0x46, 0xa0, 0xfc, 0x80, 0x80, 0x70, 0xc7, 0x5a, 0xc9, 0xe9,
+ 0x71, 0x6e, 0xba, 0x34, 0x1d, 0x44, 0x76, 0xb9, 0xef, 0x2c, 0xaa, 0x32,
+ 0xe8, 0x37, 0xf6, 0x73, 0x89, 0x00, 0xf1, 0x83, 0x22, 0xdd, 0x5b, 0x84,
+ 0xa3, 0x86, 0x65, 0x7b,
+};
+static const struct drbg_kat_pr_false kat2534_t = {
+ 13, kat2534_entropyin, kat2534_nonce, kat2534_persstr,
+ kat2534_entropyinreseed, kat2534_addinreseed, kat2534_addin0,
+ kat2534_addin1, kat2534_retbits
+};
+static const struct drbg_kat kat2534 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2534_t
+};
+
+static const unsigned char kat2535_entropyin[] = {
+ 0x8f, 0x52, 0x35, 0xda, 0x70, 0x8c, 0xb1, 0x57, 0x81, 0xdb, 0x85, 0xdd,
+ 0xc1, 0x41, 0xea, 0xcc, 0x65, 0x4d, 0x93, 0xf8, 0xc2, 0x11, 0xae, 0x71,
+ 0x8d, 0xf2, 0x2e, 0xd7, 0xba, 0xe7, 0xba, 0x5f, 0x2d, 0x5e, 0x9b, 0x00,
+ 0x6e, 0xc3, 0x6a, 0x21,
+};
+static const unsigned char kat2535_nonce[] = {0};
+static const unsigned char kat2535_persstr[] = {0};
+static const unsigned char kat2535_entropyinreseed[] = {
+ 0xe6, 0xcf, 0x01, 0xb0, 0xcf, 0x99, 0x31, 0xde, 0xd0, 0xae, 0x50, 0xbd,
+ 0x0e, 0x10, 0x92, 0xcf, 0x79, 0x22, 0x13, 0x97, 0xf2, 0x85, 0x0d, 0x31,
+ 0x39, 0x0d, 0xb3, 0x3a, 0xe0, 0x50, 0x72, 0xad, 0x0e, 0x67, 0xcd, 0xe6,
+ 0xf3, 0xc4, 0x38, 0xba,
+};
+static const unsigned char kat2535_addinreseed[] = {0};
+static const unsigned char kat2535_addin0[] = {0};
+static const unsigned char kat2535_addin1[] = {0};
+static const unsigned char kat2535_retbits[] = {
+ 0x7a, 0x00, 0x67, 0x5e, 0x1a, 0x9b, 0x52, 0x4d, 0xad, 0xc1, 0xb3, 0x56,
+ 0xb2, 0x2c, 0x46, 0xc6, 0x74, 0x71, 0x47, 0xed, 0x73, 0x66, 0x39, 0x73,
+ 0x9b, 0xbf, 0x76, 0x1e, 0xd9, 0xb9, 0x17, 0x67, 0x02, 0x38, 0xec, 0x00,
+ 0x13, 0x87, 0xb7, 0xcf, 0x3c, 0x91, 0xa5, 0x8a, 0x81, 0xec, 0x09, 0xc1,
+ 0x48, 0x73, 0x13, 0x05, 0x8b, 0x6c, 0x26, 0xce, 0x61, 0xd5, 0x78, 0x52,
+ 0x69, 0xa1, 0xd8, 0xe3,
+};
+static const struct drbg_kat_pr_false kat2535_t = {
+ 14, kat2535_entropyin, kat2535_nonce, kat2535_persstr,
+ kat2535_entropyinreseed, kat2535_addinreseed, kat2535_addin0,
+ kat2535_addin1, kat2535_retbits
+};
+static const struct drbg_kat kat2535 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2535_t
+};
+
+static const unsigned char kat2536_entropyin[] = {
+ 0x46, 0x8f, 0x1a, 0xab, 0x11, 0x00, 0x44, 0x62, 0xb9, 0xb1, 0x0a, 0xe9,
+ 0xac, 0x99, 0xfd, 0x61, 0x1c, 0xaf, 0x27, 0x89, 0xb6, 0xf8, 0x2f, 0x4b,
+ 0x60, 0x79, 0x46, 0x7c, 0x01, 0xe5, 0x70, 0x28, 0x80, 0x37, 0x1a, 0x30,
+ 0x71, 0x4e, 0x49, 0xdb,
+};
+static const unsigned char kat2536_nonce[] = {0};
+static const unsigned char kat2536_persstr[] = {0};
+static const unsigned char kat2536_entropyinreseed[] = {
+ 0x35, 0xd0, 0x7a, 0x1b, 0x48, 0x7c, 0x5a, 0xae, 0x93, 0x90, 0xe9, 0x22,
+ 0x17, 0x9e, 0xac, 0x60, 0x2a, 0xf2, 0x0b, 0x97, 0x66, 0xcc, 0x7f, 0xdf,
+ 0x9c, 0x11, 0x25, 0x6a, 0x6f, 0xbb, 0xc6, 0xe9, 0x8e, 0x50, 0xe7, 0x81,
+ 0xda, 0x06, 0x3f, 0x08,
+};
+static const unsigned char kat2536_addinreseed[] = {
+ 0xaf, 0xf8, 0xf3, 0x26, 0xa7, 0x72, 0xbd, 0xa7, 0xa2, 0xbc, 0x3d, 0x94,
+ 0xc0, 0x58, 0xd0, 0xee, 0xdf, 0x94, 0x5a, 0x9a, 0xe2, 0xd9, 0x09, 0x28,
+ 0x0b, 0xa4, 0x11, 0xc3, 0x16, 0x40, 0x31, 0x54, 0x67, 0xdb, 0x60, 0x19,
+ 0xbb, 0x06, 0xe0, 0x46,
+};
+static const unsigned char kat2536_addin0[] = {
+ 0xd6, 0x0c, 0x0e, 0xc8, 0x39, 0x5b, 0x7a, 0xe9, 0x4f, 0xd3, 0x61, 0xf8,
+ 0x89, 0x53, 0xed, 0xe3, 0xae, 0xfc, 0xeb, 0xc3, 0xaa, 0x6a, 0xb7, 0x03,
+ 0xb8, 0xe6, 0xdf, 0x2b, 0x8b, 0xbd, 0xa5, 0x41, 0x93, 0x13, 0x7b, 0xd3,
+ 0xcb, 0x45, 0xa2, 0x27,
+};
+static const unsigned char kat2536_addin1[] = {
+ 0xc0, 0x29, 0xd1, 0x4e, 0x0d, 0x0b, 0x58, 0x0b, 0x96, 0x7c, 0x99, 0x43,
+ 0xb5, 0xd7, 0x02, 0x2d, 0x56, 0x45, 0x14, 0xbc, 0x57, 0xed, 0x64, 0x1e,
+ 0x49, 0x41, 0x95, 0x93, 0xa9, 0xcc, 0x02, 0xf7, 0xf0, 0x9c, 0x32, 0xd4,
+ 0x41, 0x10, 0x51, 0xb3,
+};
+static const unsigned char kat2536_retbits[] = {
+ 0x87, 0x73, 0x86, 0xa5, 0x26, 0x4c, 0x46, 0xd3, 0xd5, 0xbe, 0x4a, 0x47,
+ 0xd9, 0xc2, 0x2d, 0x72, 0x22, 0xce, 0x46, 0xd2, 0xd6, 0xf4, 0xe9, 0x59,
+ 0x99, 0xce, 0x35, 0xa1, 0x8a, 0x1a, 0x03, 0x11, 0x3b, 0x7b, 0x36, 0xc5,
+ 0x29, 0xd7, 0x4c, 0x57, 0x7b, 0xde, 0x27, 0xc7, 0x00, 0xd7, 0x51, 0x48,
+ 0xaf, 0x99, 0xa4, 0x88, 0xf7, 0x1e, 0x40, 0x00, 0x9b, 0x94, 0x4c, 0x95,
+ 0xb8, 0x87, 0x1c, 0x4a,
+};
+static const struct drbg_kat_pr_false kat2536_t = {
+ 0, kat2536_entropyin, kat2536_nonce, kat2536_persstr,
+ kat2536_entropyinreseed, kat2536_addinreseed, kat2536_addin0,
+ kat2536_addin1, kat2536_retbits
+};
+static const struct drbg_kat kat2536 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2536_t
+};
+
+static const unsigned char kat2537_entropyin[] = {
+ 0xef, 0x79, 0x6a, 0x2f, 0x0f, 0x8c, 0x53, 0xfb, 0x7f, 0x47, 0x48, 0x4b,
+ 0xf2, 0x5f, 0x47, 0x78, 0x40, 0x25, 0x0c, 0xf1, 0xcd, 0xf0, 0xe9, 0x4e,
+ 0xde, 0xf3, 0x41, 0xef, 0xec, 0xc9, 0xd9, 0xa6, 0xfc, 0x7d, 0x7c, 0xa9,
+ 0x3b, 0x4b, 0xda, 0x22,
+};
+static const unsigned char kat2537_nonce[] = {0};
+static const unsigned char kat2537_persstr[] = {0};
+static const unsigned char kat2537_entropyinreseed[] = {
+ 0x35, 0x41, 0x57, 0x51, 0xf3, 0xd0, 0x57, 0x0d, 0xac, 0x1e, 0x12, 0xd8,
+ 0x37, 0x0c, 0xaa, 0xb6, 0x8e, 0x07, 0x9e, 0x7d, 0xaa, 0xe5, 0x5f, 0x17,
+ 0x43, 0xd0, 0x37, 0xc7, 0xe3, 0xf3, 0xf7, 0x17, 0xd4, 0x42, 0x36, 0x4e,
+ 0xeb, 0x0f, 0xec, 0xfa,
+};
+static const unsigned char kat2537_addinreseed[] = {
+ 0xcf, 0x4e, 0x41, 0x81, 0x19, 0x10, 0x3b, 0xbc, 0xec, 0x94, 0x01, 0xd6,
+ 0xd4, 0x85, 0xc4, 0xfb, 0xe4, 0x60, 0x0c, 0xa5, 0xca, 0x09, 0xbb, 0x19,
+ 0x63, 0xdb, 0xcb, 0x69, 0x98, 0x14, 0x0e, 0x6a, 0xcb, 0x48, 0x39, 0x6e,
+ 0x41, 0x26, 0x2b, 0xc0,
+};
+static const unsigned char kat2537_addin0[] = {
+ 0xb1, 0xa8, 0x16, 0xa6, 0xf1, 0xea, 0x50, 0xe4, 0xf1, 0xcf, 0xe8, 0xe4,
+ 0xb0, 0x32, 0xa9, 0xe2, 0xfa, 0x8a, 0x6d, 0x13, 0x5b, 0x68, 0x9f, 0x9a,
+ 0x2f, 0x2e, 0x62, 0x3c, 0x35, 0x7a, 0x2d, 0xe4, 0x44, 0xbc, 0xc6, 0xb8,
+ 0xac, 0xb1, 0xcd, 0x46,
+};
+static const unsigned char kat2537_addin1[] = {
+ 0xba, 0xd2, 0xba, 0x37, 0x2d, 0x51, 0x1b, 0x85, 0x0c, 0x44, 0x9b, 0xf3,
+ 0xbe, 0x9d, 0x43, 0xe2, 0xe7, 0x48, 0xab, 0x08, 0x38, 0x5a, 0x03, 0x89,
+ 0x8e, 0x3c, 0x44, 0x83, 0x1b, 0xf1, 0x8c, 0x56, 0x78, 0xc0, 0x76, 0x98,
+ 0xae, 0x9f, 0xea, 0x33,
+};
+static const unsigned char kat2537_retbits[] = {
+ 0x68, 0x12, 0xcb, 0x6a, 0x73, 0x4d, 0x0a, 0x0e, 0xf5, 0x57, 0x1a, 0x28,
+ 0xb2, 0xe0, 0x1e, 0xca, 0xb0, 0xf6, 0x5a, 0x18, 0x7f, 0x9e, 0x25, 0x1e,
+ 0x16, 0x20, 0x89, 0x0e, 0x43, 0xff, 0x04, 0x75, 0x1e, 0xd5, 0xb3, 0x2e,
+ 0xbb, 0x5b, 0xb6, 0x5e, 0xf0, 0x93, 0xfe, 0xe9, 0xa0, 0x8b, 0x45, 0x58,
+ 0xaf, 0x1b, 0xef, 0x86, 0x2a, 0xba, 0xba, 0x69, 0x0f, 0x41, 0x10, 0x26,
+ 0x23, 0x51, 0x10, 0xa1,
+};
+static const struct drbg_kat_pr_false kat2537_t = {
+ 1, kat2537_entropyin, kat2537_nonce, kat2537_persstr,
+ kat2537_entropyinreseed, kat2537_addinreseed, kat2537_addin0,
+ kat2537_addin1, kat2537_retbits
+};
+static const struct drbg_kat kat2537 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2537_t
+};
+
+static const unsigned char kat2538_entropyin[] = {
+ 0x0d, 0x3d, 0xcd, 0x91, 0x32, 0x93, 0x69, 0x27, 0x86, 0x1f, 0xa0, 0x11,
+ 0xf4, 0x1e, 0x96, 0x55, 0x35, 0x4e, 0xcf, 0xd4, 0xb0, 0x8f, 0xb7, 0xa9,
+ 0x19, 0xa9, 0xeb, 0x68, 0xd8, 0x05, 0x70, 0xd2, 0x92, 0xcb, 0x68, 0xc9,
+ 0x9b, 0xdd, 0xf3, 0x93,
+};
+static const unsigned char kat2538_nonce[] = {0};
+static const unsigned char kat2538_persstr[] = {0};
+static const unsigned char kat2538_entropyinreseed[] = {
+ 0x52, 0x9b, 0x66, 0xc2, 0xb3, 0x04, 0x49, 0xda, 0xc1, 0x47, 0x6f, 0xc1,
+ 0x71, 0xe1, 0xe8, 0xa7, 0x41, 0xe9, 0x19, 0x1d, 0x26, 0x58, 0xa9, 0x29,
+ 0x11, 0xb6, 0x78, 0xf2, 0x4e, 0x01, 0x04, 0x3a, 0x6e, 0xbd, 0x47, 0x99,
+ 0x7f, 0xd3, 0x6d, 0xfb,
+};
+static const unsigned char kat2538_addinreseed[] = {
+ 0x9d, 0x11, 0x75, 0xe0, 0x05, 0xd6, 0x36, 0xe9, 0x98, 0x84, 0x49, 0xf5,
+ 0x63, 0x87, 0x3c, 0x0e, 0x74, 0x65, 0x59, 0x0c, 0x83, 0xa3, 0x60, 0xd2,
+ 0xb1, 0xb7, 0xe4, 0xd5, 0x53, 0xef, 0x8d, 0xec, 0x11, 0x22, 0x9f, 0xb0,
+ 0x20, 0x74, 0xad, 0x54,
+};
+static const unsigned char kat2538_addin0[] = {
+ 0xf2, 0xc1, 0x1e, 0x04, 0x77, 0x9d, 0x4f, 0x0d, 0x0c, 0x1e, 0xdf, 0x71,
+ 0xb6, 0xf5, 0xb3, 0x5c, 0xbe, 0x60, 0x8e, 0xb0, 0x22, 0x73, 0x11, 0xb7,
+ 0x78, 0x55, 0x9a, 0x0f, 0x4f, 0x8d, 0x78, 0x7f, 0xfa, 0x30, 0x29, 0x74,
+ 0x42, 0x72, 0x6e, 0x8e,
+};
+static const unsigned char kat2538_addin1[] = {
+ 0x95, 0x98, 0xfd, 0xe7, 0x86, 0xf3, 0x83, 0x15, 0xf8, 0xa4, 0xe7, 0xb0,
+ 0x73, 0xed, 0x5d, 0x9f, 0xa5, 0xde, 0x96, 0xea, 0xd5, 0xc5, 0x81, 0xa2,
+ 0x16, 0x14, 0xad, 0x99, 0x02, 0x87, 0x8f, 0x3c, 0xe2, 0x9e, 0xc1, 0xa8,
+ 0x01, 0x80, 0xb7, 0x06,
+};
+static const unsigned char kat2538_retbits[] = {
+ 0xfa, 0x69, 0x9f, 0x7b, 0xc4, 0xc8, 0x0f, 0x3a, 0xe3, 0x0e, 0xde, 0x84,
+ 0x23, 0xdd, 0x1b, 0x8e, 0x51, 0xac, 0x64, 0x37, 0x7b, 0x78, 0x0c, 0x57,
+ 0x5e, 0xc6, 0x04, 0x22, 0xed, 0x69, 0x62, 0xfa, 0x28, 0xf5, 0x9d, 0x3d,
+ 0x76, 0xd7, 0xc9, 0x9c, 0xd5, 0xa4, 0xe1, 0xc8, 0xf9, 0x81, 0x08, 0x90,
+ 0x6f, 0x0e, 0x18, 0xa7, 0xd3, 0x22, 0xda, 0x94, 0xc3, 0x27, 0x8f, 0xfd,
+ 0xc9, 0x38, 0x80, 0x65,
+};
+static const struct drbg_kat_pr_false kat2538_t = {
+ 2, kat2538_entropyin, kat2538_nonce, kat2538_persstr,
+ kat2538_entropyinreseed, kat2538_addinreseed, kat2538_addin0,
+ kat2538_addin1, kat2538_retbits
+};
+static const struct drbg_kat kat2538 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2538_t
+};
+
+static const unsigned char kat2539_entropyin[] = {
+ 0x10, 0x16, 0xb7, 0x94, 0x81, 0x1a, 0xd9, 0x11, 0x52, 0x3e, 0xcf, 0x67,
+ 0x87, 0xbc, 0x73, 0x2e, 0x07, 0x6d, 0x28, 0x2f, 0x24, 0xfd, 0xa4, 0x3f,
+ 0x3e, 0x55, 0x5a, 0x52, 0x2c, 0x83, 0x09, 0xf3, 0x33, 0x18, 0xee, 0x7f,
+ 0x8e, 0xb1, 0x7b, 0xf1,
+};
+static const unsigned char kat2539_nonce[] = {0};
+static const unsigned char kat2539_persstr[] = {0};
+static const unsigned char kat2539_entropyinreseed[] = {
+ 0x17, 0xb2, 0x57, 0xde, 0x3a, 0x39, 0xed, 0x8f, 0xf9, 0xee, 0xe5, 0x1d,
+ 0x82, 0x16, 0x7c, 0x59, 0x79, 0xaf, 0xa6, 0x11, 0xc9, 0xe6, 0x87, 0x66,
+ 0xaf, 0x09, 0x58, 0xe4, 0x0b, 0x0a, 0x68, 0x3b, 0x82, 0x0d, 0x86, 0xbb,
+ 0x7d, 0xb0, 0x6e, 0xc7,
+};
+static const unsigned char kat2539_addinreseed[] = {
+ 0xc6, 0xa4, 0xbc, 0x11, 0x70, 0x9c, 0x17, 0x0a, 0xe1, 0x38, 0xfd, 0x20,
+ 0xaf, 0xd8, 0x17, 0x09, 0x60, 0x45, 0xdf, 0x3b, 0x27, 0xe6, 0x70, 0x61,
+ 0x51, 0xcf, 0x28, 0x35, 0x3c, 0x52, 0x59, 0x89, 0xf8, 0xee, 0xc4, 0xb5,
+ 0x93, 0xac, 0x02, 0xc0,
+};
+static const unsigned char kat2539_addin0[] = {
+ 0x22, 0xff, 0x28, 0xb8, 0x30, 0x4f, 0xd7, 0x22, 0x24, 0x17, 0xab, 0x5e,
+ 0x77, 0xf3, 0x19, 0x36, 0x4c, 0x12, 0x32, 0xb8, 0x1f, 0x73, 0x37, 0x42,
+ 0x2e, 0x7e, 0x34, 0x6a, 0x47, 0xa8, 0x12, 0xe7, 0xa4, 0xdd, 0xde, 0xe7,
+ 0xc9, 0x54, 0x0c, 0x3b,
+};
+static const unsigned char kat2539_addin1[] = {
+ 0xae, 0x68, 0xf6, 0x46, 0x69, 0xbb, 0xf6, 0x90, 0xc5, 0x2f, 0xbf, 0xdf,
+ 0x00, 0xb9, 0x4b, 0xec, 0x7c, 0xd5, 0x6d, 0x34, 0x7c, 0x12, 0xb1, 0x95,
+ 0x62, 0x05, 0x15, 0xee, 0x28, 0x66, 0x24, 0x4f, 0xc2, 0x7b, 0x77, 0x72,
+ 0x8c, 0xc5, 0x5d, 0x0c,
+};
+static const unsigned char kat2539_retbits[] = {
+ 0x6d, 0x26, 0xa7, 0xc1, 0xf5, 0xc9, 0x57, 0x96, 0xb5, 0x55, 0x87, 0x31,
+ 0x49, 0x11, 0xaf, 0x73, 0xf3, 0x8d, 0x04, 0x1d, 0xd2, 0xfa, 0xcb, 0x6c,
+ 0xb1, 0x0b, 0x9a, 0xf6, 0x55, 0xfa, 0x32, 0x66, 0xd3, 0x1b, 0xaa, 0xf9,
+ 0x67, 0xa3, 0x81, 0x0b, 0x7b, 0xbe, 0xbb, 0xbc, 0x55, 0x31, 0x3c, 0x9b,
+ 0x15, 0xdf, 0x81, 0xd6, 0xf2, 0xd6, 0x36, 0x24, 0xa8, 0x50, 0x1f, 0xb9,
+ 0x36, 0xa8, 0x40, 0x23,
+};
+static const struct drbg_kat_pr_false kat2539_t = {
+ 3, kat2539_entropyin, kat2539_nonce, kat2539_persstr,
+ kat2539_entropyinreseed, kat2539_addinreseed, kat2539_addin0,
+ kat2539_addin1, kat2539_retbits
+};
+static const struct drbg_kat kat2539 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2539_t
+};
+
+static const unsigned char kat2540_entropyin[] = {
+ 0x05, 0xf7, 0x73, 0x72, 0x3c, 0xb3, 0x0a, 0x2f, 0xa2, 0x14, 0xaa, 0x5f,
+ 0x33, 0xe7, 0xb8, 0xfa, 0x20, 0xd7, 0x33, 0x05, 0x4c, 0x41, 0xdd, 0xea,
+ 0xb3, 0xf3, 0xda, 0x99, 0x42, 0x87, 0x21, 0xab, 0x06, 0x72, 0x6d, 0xf0,
+ 0x7c, 0x49, 0x96, 0x13,
+};
+static const unsigned char kat2540_nonce[] = {0};
+static const unsigned char kat2540_persstr[] = {0};
+static const unsigned char kat2540_entropyinreseed[] = {
+ 0x71, 0x84, 0xc3, 0xb9, 0x24, 0xa3, 0x48, 0x72, 0x32, 0xf7, 0x1d, 0x03,
+ 0xdc, 0x93, 0x34, 0xde, 0xee, 0x5c, 0x3b, 0xe7, 0x09, 0x13, 0x17, 0x3e,
+ 0x20, 0x8d, 0x07, 0xe2, 0xe0, 0x26, 0xc3, 0x72, 0xb8, 0x77, 0x0e, 0xcd,
+ 0x79, 0xf4, 0xa5, 0x41,
+};
+static const unsigned char kat2540_addinreseed[] = {
+ 0x3d, 0x1b, 0x6f, 0xc6, 0xa8, 0x2f, 0x36, 0x92, 0xab, 0xd4, 0xfb, 0xaa,
+ 0xde, 0x89, 0xdc, 0x3d, 0xe9, 0xa8, 0xb5, 0xa6, 0x11, 0x67, 0xbe, 0xe1,
+ 0x4c, 0x9a, 0xb0, 0x1b, 0x3c, 0x2c, 0x36, 0x2c, 0x9d, 0xe5, 0xd8, 0x30,
+ 0xb8, 0xcc, 0xe7, 0xcc,
+};
+static const unsigned char kat2540_addin0[] = {
+ 0x3d, 0x48, 0xd2, 0x96, 0x78, 0x3d, 0x12, 0x3b, 0xdb, 0x96, 0xee, 0x19,
+ 0xfe, 0x31, 0x35, 0xc9, 0xf9, 0x92, 0x35, 0xe5, 0x6c, 0x49, 0xbc, 0x6a,
+ 0xab, 0x29, 0x05, 0xd8, 0x1f, 0x53, 0x96, 0xb4, 0x62, 0x06, 0x63, 0x9d,
+ 0xb1, 0x29, 0x44, 0xba,
+};
+static const unsigned char kat2540_addin1[] = {
+ 0x43, 0x0c, 0xb5, 0x33, 0x07, 0x55, 0x94, 0x07, 0xed, 0x1b, 0x3c, 0xc2,
+ 0x84, 0x97, 0xb7, 0xf4, 0x0c, 0x36, 0x34, 0x95, 0xff, 0xd7, 0x05, 0x6d,
+ 0xc5, 0xd8, 0x54, 0x43, 0x21, 0xa7, 0x95, 0xca, 0x30, 0x13, 0x84, 0xd8,
+ 0xea, 0x28, 0x3d, 0x66,
+};
+static const unsigned char kat2540_retbits[] = {
+ 0xe8, 0x43, 0xf8, 0x86, 0x22, 0x06, 0xb6, 0x2e, 0xdd, 0x51, 0xeb, 0xf2,
+ 0x80, 0x17, 0x88, 0x70, 0x1c, 0xf8, 0x47, 0x0a, 0x95, 0xce, 0x46, 0x93,
+ 0x90, 0x15, 0x4c, 0xb0, 0x4e, 0x25, 0xa0, 0x43, 0x14, 0xa8, 0x23, 0x27,
+ 0xa6, 0xf6, 0x53, 0x99, 0x30, 0x96, 0xd6, 0xd2, 0x4b, 0x5d, 0x5e, 0xdf,
+ 0x8e, 0x17, 0x01, 0x31, 0xc7, 0xb4, 0xe7, 0xe0, 0x5e, 0x5d, 0x4c, 0x6b,
+ 0x29, 0xac, 0xe3, 0x5a,
+};
+static const struct drbg_kat_pr_false kat2540_t = {
+ 4, kat2540_entropyin, kat2540_nonce, kat2540_persstr,
+ kat2540_entropyinreseed, kat2540_addinreseed, kat2540_addin0,
+ kat2540_addin1, kat2540_retbits
+};
+static const struct drbg_kat kat2540 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2540_t
+};
+
+static const unsigned char kat2541_entropyin[] = {
+ 0x8a, 0x94, 0x5a, 0x85, 0x07, 0xc3, 0xd6, 0x12, 0x7b, 0x48, 0x78, 0x7d,
+ 0x1a, 0x6d, 0x89, 0x90, 0x5c, 0x7c, 0x26, 0x25, 0xb5, 0x7e, 0xed, 0x6c,
+ 0x92, 0xc6, 0x8d, 0x31, 0x52, 0xa9, 0x33, 0xe0, 0x29, 0x64, 0x9b, 0xb6,
+ 0xd5, 0xbf, 0x6e, 0xee,
+};
+static const unsigned char kat2541_nonce[] = {0};
+static const unsigned char kat2541_persstr[] = {0};
+static const unsigned char kat2541_entropyinreseed[] = {
+ 0xcf, 0x62, 0xae, 0x91, 0x13, 0xdc, 0x68, 0x53, 0x7f, 0x61, 0x72, 0xdc,
+ 0x2c, 0xc2, 0x2a, 0x1c, 0xb9, 0xfc, 0xaa, 0x43, 0x29, 0x13, 0xb3, 0xf6,
+ 0x8b, 0xce, 0x25, 0xaa, 0x97, 0x02, 0x72, 0x4b, 0xf2, 0x90, 0xc1, 0x1a,
+ 0x0c, 0x5a, 0x01, 0xea,
+};
+static const unsigned char kat2541_addinreseed[] = {
+ 0x7a, 0xa4, 0xbf, 0x30, 0x66, 0x1f, 0x50, 0xbd, 0xe8, 0x86, 0x2e, 0x59,
+ 0x8f, 0xbe, 0x74, 0xd0, 0x97, 0x16, 0x21, 0x2a, 0x13, 0x2d, 0xbb, 0x9f,
+ 0x79, 0x70, 0x39, 0x0d, 0xce, 0x60, 0x0e, 0x77, 0xe5, 0x21, 0x58, 0x0c,
+ 0x63, 0x0a, 0x2a, 0xa2,
+};
+static const unsigned char kat2541_addin0[] = {
+ 0x21, 0xb1, 0x24, 0x46, 0x95, 0x92, 0xfa, 0xe1, 0x3e, 0x87, 0xca, 0xa4,
+ 0x2d, 0x51, 0xb5, 0xc5, 0xd5, 0x46, 0x79, 0x49, 0x27, 0x20, 0xc1, 0x9a,
+ 0xa4, 0x65, 0xc3, 0x88, 0xc0, 0xe2, 0x11, 0x2e, 0x3d, 0xee, 0x53, 0xb1,
+ 0xe8, 0x2e, 0xae, 0x1c,
+};
+static const unsigned char kat2541_addin1[] = {
+ 0x74, 0x5a, 0xa1, 0xcd, 0x0f, 0xbd, 0x66, 0x7d, 0xa2, 0x1b, 0x57, 0xed,
+ 0xcc, 0x4b, 0x09, 0x10, 0x3a, 0x90, 0xa9, 0x10, 0x12, 0x04, 0x03, 0x84,
+ 0x10, 0x3c, 0xe7, 0x40, 0x88, 0xc3, 0x02, 0x02, 0x22, 0x70, 0xdf, 0xd9,
+ 0x5e, 0x4d, 0x4b, 0x66,
+};
+static const unsigned char kat2541_retbits[] = {
+ 0xe7, 0xd4, 0xbc, 0x9a, 0xa5, 0x25, 0x47, 0x91, 0x9b, 0x2c, 0x5b, 0xc2,
+ 0x4e, 0x5a, 0xca, 0xb3, 0xa3, 0x6d, 0x0e, 0xa0, 0x8b, 0xc6, 0x44, 0x33,
+ 0xea, 0xbb, 0x7d, 0xd9, 0x7d, 0xf9, 0xb7, 0x63, 0x4d, 0x6f, 0xd0, 0x0a,
+ 0xb4, 0x1f, 0x39, 0x21, 0x11, 0xc8, 0xb9, 0xda, 0x20, 0x11, 0xda, 0x3e,
+ 0x56, 0x87, 0x2b, 0x4b, 0xc2, 0x69, 0x32, 0x78, 0x37, 0xd4, 0xac, 0x1f,
+ 0x55, 0xc7, 0x58, 0xf7,
+};
+static const struct drbg_kat_pr_false kat2541_t = {
+ 5, kat2541_entropyin, kat2541_nonce, kat2541_persstr,
+ kat2541_entropyinreseed, kat2541_addinreseed, kat2541_addin0,
+ kat2541_addin1, kat2541_retbits
+};
+static const struct drbg_kat kat2541 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2541_t
+};
+
+static const unsigned char kat2542_entropyin[] = {
+ 0xe0, 0xe5, 0x2e, 0x67, 0x81, 0xd1, 0x29, 0xe5, 0x35, 0x8f, 0x86, 0xae,
+ 0x7e, 0x50, 0x87, 0x9b, 0x61, 0xac, 0xba, 0xc8, 0xbe, 0xbd, 0xf3, 0xab,
+ 0x33, 0x1c, 0xe4, 0x94, 0x91, 0xf3, 0xb9, 0x59, 0xcf, 0xb4, 0x54, 0xc1,
+ 0xdb, 0x95, 0x02, 0xca,
+};
+static const unsigned char kat2542_nonce[] = {0};
+static const unsigned char kat2542_persstr[] = {0};
+static const unsigned char kat2542_entropyinreseed[] = {
+ 0x81, 0xa9, 0x94, 0x77, 0x16, 0xd5, 0x45, 0x5a, 0x30, 0xd8, 0x1a, 0x99,
+ 0x06, 0x9f, 0xb2, 0xa2, 0x90, 0x5d, 0xdc, 0x21, 0x04, 0x4e, 0x05, 0xd6,
+ 0xbd, 0x42, 0x93, 0x1a, 0x93, 0x80, 0x96, 0x86, 0x3a, 0x3b, 0x4a, 0x4e,
+ 0xdd, 0x0e, 0xbd, 0xa0,
+};
+static const unsigned char kat2542_addinreseed[] = {
+ 0xed, 0x14, 0x3d, 0xf9, 0x37, 0xfa, 0x1a, 0x74, 0xe1, 0x15, 0xcb, 0x8d,
+ 0x5c, 0x7e, 0xfe, 0x02, 0x98, 0x95, 0x2a, 0xc0, 0xa4, 0x45, 0xb7, 0xb4,
+ 0x49, 0x03, 0x1d, 0x63, 0xa1, 0x41, 0x17, 0x52, 0x59, 0xcf, 0x70, 0xb0,
+ 0xc7, 0xac, 0x06, 0x58,
+};
+static const unsigned char kat2542_addin0[] = {
+ 0x1e, 0x05, 0x57, 0x6b, 0x2d, 0x63, 0xe1, 0x5f, 0x77, 0x5b, 0xb8, 0x26,
+ 0xd4, 0x61, 0x2c, 0x52, 0x22, 0x11, 0xb3, 0x84, 0xf8, 0x14, 0xd1, 0x4e,
+ 0xe2, 0x1e, 0xa3, 0x39, 0x94, 0x18, 0x3b, 0x64, 0xa6, 0xab, 0x1e, 0xe9,
+ 0x21, 0xd5, 0xa6, 0x98,
+};
+static const unsigned char kat2542_addin1[] = {
+ 0x39, 0xc5, 0xcd, 0xa1, 0xb9, 0x99, 0xff, 0xb6, 0x39, 0x29, 0x59, 0xd1,
+ 0xb9, 0x40, 0x3a, 0xb5, 0xef, 0x65, 0x84, 0x14, 0xac, 0x3e, 0xfc, 0xce,
+ 0x70, 0x7f, 0x95, 0x7c, 0x5e, 0x75, 0xfe, 0x6d, 0x4b, 0x69, 0x56, 0xf4,
+ 0x4d, 0x01, 0x26, 0x66,
+};
+static const unsigned char kat2542_retbits[] = {
+ 0x59, 0xad, 0xda, 0x5d, 0x2d, 0x89, 0x42, 0x3a, 0x00, 0xcd, 0x77, 0xbd,
+ 0x85, 0x4c, 0x72, 0x48, 0x53, 0xe3, 0xff, 0xe6, 0xe2, 0xf6, 0x66, 0x17,
+ 0x5f, 0x30, 0xab, 0xa7, 0x8d, 0x24, 0x05, 0x99, 0xad, 0xe7, 0x7a, 0x02,
+ 0x5a, 0x3f, 0x57, 0x09, 0x28, 0x2c, 0xdf, 0xf9, 0x5a, 0xf7, 0x39, 0xe4,
+ 0x2e, 0x4d, 0x35, 0xaa, 0xb0, 0xab, 0x00, 0x23, 0xd1, 0xf2, 0x90, 0x82,
+ 0x06, 0xb8, 0xa9, 0x9b,
+};
+static const struct drbg_kat_pr_false kat2542_t = {
+ 6, kat2542_entropyin, kat2542_nonce, kat2542_persstr,
+ kat2542_entropyinreseed, kat2542_addinreseed, kat2542_addin0,
+ kat2542_addin1, kat2542_retbits
+};
+static const struct drbg_kat kat2542 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2542_t
+};
+
+static const unsigned char kat2543_entropyin[] = {
+ 0x86, 0x65, 0x5d, 0x0b, 0x84, 0xc7, 0x1f, 0x32, 0x3e, 0x20, 0x1b, 0xe6,
+ 0xfa, 0x8f, 0x10, 0xa0, 0x01, 0x79, 0xa4, 0xf8, 0xb6, 0x83, 0x8a, 0x58,
+ 0xb1, 0x56, 0x88, 0x75, 0x95, 0x42, 0x81, 0x18, 0x97, 0x08, 0xac, 0xdc,
+ 0xb1, 0x6f, 0xe2, 0x1d,
+};
+static const unsigned char kat2543_nonce[] = {0};
+static const unsigned char kat2543_persstr[] = {0};
+static const unsigned char kat2543_entropyinreseed[] = {
+ 0x75, 0x80, 0xa8, 0x1a, 0xa2, 0xe8, 0xb2, 0xdf, 0xde, 0x70, 0xd2, 0x69,
+ 0x01, 0x30, 0x9b, 0x02, 0x3b, 0xc3, 0x0d, 0x94, 0xd7, 0xad, 0x81, 0x2a,
+ 0x1f, 0xf7, 0x3a, 0x5c, 0xc0, 0xf5, 0x2f, 0xed, 0x35, 0x58, 0xd0, 0x37,
+ 0x9b, 0x76, 0x16, 0xf4,
+};
+static const unsigned char kat2543_addinreseed[] = {
+ 0x53, 0xb0, 0x51, 0xca, 0x5d, 0x01, 0x50, 0xed, 0xdb, 0x14, 0x18, 0x23,
+ 0x10, 0x58, 0x0f, 0x97, 0x5e, 0x46, 0x2c, 0xd7, 0xce, 0xdf, 0xb2, 0x41,
+ 0x40, 0xef, 0x2d, 0xb0, 0xa3, 0xe6, 0x89, 0x70, 0xcc, 0x63, 0xe6, 0xa9,
+ 0x6a, 0x61, 0x95, 0x09,
+};
+static const unsigned char kat2543_addin0[] = {
+ 0xd6, 0x29, 0x03, 0x84, 0xce, 0xf6, 0xbe, 0x6c, 0xf1, 0x7e, 0x22, 0x02,
+ 0xa6, 0xf1, 0x87, 0xec, 0x77, 0x40, 0xa3, 0x90, 0x6b, 0xe9, 0xad, 0x4b,
+ 0xbd, 0xcb, 0x04, 0xc1, 0xbd, 0xf6, 0x12, 0x73, 0xee, 0xed, 0x9a, 0x07,
+ 0xc2, 0x02, 0x06, 0x78,
+};
+static const unsigned char kat2543_addin1[] = {
+ 0x88, 0xf3, 0xe8, 0x4a, 0xfb, 0xf4, 0xb9, 0xf0, 0x44, 0xb6, 0xdd, 0xbe,
+ 0xa7, 0xb7, 0x76, 0xc1, 0x65, 0xaf, 0xa5, 0x54, 0x79, 0xc3, 0xd0, 0x73,
+ 0xed, 0xc4, 0x23, 0x00, 0x8b, 0x9b, 0x1b, 0xfe, 0x87, 0x59, 0xc9, 0x51,
+ 0x18, 0x59, 0xf0, 0xe2,
+};
+static const unsigned char kat2543_retbits[] = {
+ 0x17, 0xf1, 0x45, 0xe8, 0xb0, 0x7d, 0x9f, 0x61, 0xe9, 0x0c, 0xc5, 0x97,
+ 0xb1, 0x3b, 0xe8, 0x4b, 0x1a, 0x4e, 0x3b, 0x78, 0x85, 0x33, 0x1a, 0x40,
+ 0x52, 0x57, 0x7d, 0x23, 0x33, 0xca, 0xca, 0x76, 0x1e, 0x8e, 0xeb, 0x6a,
+ 0xb5, 0x5c, 0xc0, 0x3f, 0x2b, 0xac, 0x94, 0xa2, 0x3c, 0x94, 0x4d, 0x2f,
+ 0x6e, 0xba, 0xc2, 0x48, 0x65, 0x1f, 0x92, 0xb1, 0x6f, 0x9e, 0x0f, 0x7a,
+ 0x78, 0x55, 0xa7, 0x23,
+};
+static const struct drbg_kat_pr_false kat2543_t = {
+ 7, kat2543_entropyin, kat2543_nonce, kat2543_persstr,
+ kat2543_entropyinreseed, kat2543_addinreseed, kat2543_addin0,
+ kat2543_addin1, kat2543_retbits
+};
+static const struct drbg_kat kat2543 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2543_t
+};
+
+static const unsigned char kat2544_entropyin[] = {
+ 0x84, 0xa7, 0x48, 0x1b, 0xf6, 0x78, 0xbe, 0xac, 0x12, 0x15, 0x4c, 0x61,
+ 0x5d, 0xb0, 0xf5, 0x74, 0xeb, 0xc3, 0x9a, 0x5e, 0xa8, 0x3a, 0xbf, 0x9a,
+ 0x77, 0xf7, 0xb8, 0xe1, 0xfa, 0xb2, 0x7a, 0x9f, 0xbc, 0x6a, 0x9d, 0x5f,
+ 0x5a, 0x4f, 0x21, 0x99,
+};
+static const unsigned char kat2544_nonce[] = {0};
+static const unsigned char kat2544_persstr[] = {0};
+static const unsigned char kat2544_entropyinreseed[] = {
+ 0xea, 0x22, 0x90, 0x4a, 0x82, 0xae, 0x99, 0x28, 0xe1, 0x91, 0x06, 0xc4,
+ 0x8c, 0xe4, 0x79, 0xb1, 0xa8, 0x23, 0x95, 0xf3, 0x10, 0xd1, 0xb2, 0xaa,
+ 0xa2, 0xcf, 0x56, 0x35, 0x9d, 0x82, 0x2d, 0x79, 0xb5, 0x4d, 0x82, 0xcd,
+ 0x6c, 0xd5, 0x5b, 0x90,
+};
+static const unsigned char kat2544_addinreseed[] = {
+ 0xf4, 0x37, 0xea, 0xed, 0x6e, 0x0f, 0x8b, 0x46, 0x9d, 0xe0, 0xe2, 0x55,
+ 0xb4, 0x95, 0xfc, 0xfe, 0x6c, 0x6d, 0x61, 0x04, 0x00, 0x2f, 0x10, 0x35,
+ 0x62, 0xb7, 0x87, 0xd2, 0xb9, 0x9a, 0xf6, 0xf0, 0x8d, 0x73, 0x64, 0x6c,
+ 0x23, 0x0c, 0x14, 0x21,
+};
+static const unsigned char kat2544_addin0[] = {
+ 0x09, 0xdb, 0x7d, 0xb6, 0x30, 0x9c, 0xdd, 0x4e, 0xf2, 0xfe, 0xac, 0xf5,
+ 0x70, 0x2f, 0xc6, 0x8a, 0x79, 0x27, 0x1a, 0xee, 0xfe, 0x91, 0x00, 0x43,
+ 0xb8, 0xf4, 0xb6, 0xda, 0x46, 0x43, 0x75, 0x41, 0x1b, 0xe6, 0x0b, 0xb4,
+ 0xae, 0xfa, 0xc8, 0x52,
+};
+static const unsigned char kat2544_addin1[] = {
+ 0x55, 0xf0, 0x55, 0xf0, 0xbc, 0xe7, 0x4d, 0xee, 0x2d, 0x92, 0x89, 0x76,
+ 0x75, 0xe3, 0x52, 0x27, 0xdb, 0xcd, 0x90, 0xad, 0x02, 0xdf, 0xbb, 0x3f,
+ 0xdd, 0x53, 0x29, 0x3d, 0x13, 0x50, 0xd6, 0xf3, 0x8e, 0x5d, 0x0f, 0x61,
+ 0x3f, 0x95, 0x78, 0x13,
+};
+static const unsigned char kat2544_retbits[] = {
+ 0xe7, 0x89, 0xf0, 0x9f, 0x37, 0x9e, 0x05, 0x6a, 0x9b, 0x29, 0xf2, 0x63,
+ 0xe6, 0x07, 0xb2, 0x20, 0x14, 0xc1, 0xda, 0x00, 0x0c, 0x55, 0xd2, 0x3a,
+ 0x2b, 0x4a, 0x32, 0x87, 0x3b, 0x09, 0x9e, 0x9e, 0xe8, 0xd5, 0x8a, 0xf6,
+ 0x4c, 0x11, 0x5a, 0x75, 0xc8, 0x64, 0xa8, 0x9b, 0x22, 0xed, 0xff, 0xde,
+ 0x9f, 0x8a, 0x88, 0xc1, 0x53, 0xe0, 0x57, 0x3f, 0xa7, 0x95, 0x93, 0x2c,
+ 0x6e, 0x59, 0xcd, 0x5e,
+};
+static const struct drbg_kat_pr_false kat2544_t = {
+ 8, kat2544_entropyin, kat2544_nonce, kat2544_persstr,
+ kat2544_entropyinreseed, kat2544_addinreseed, kat2544_addin0,
+ kat2544_addin1, kat2544_retbits
+};
+static const struct drbg_kat kat2544 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2544_t
+};
+
+static const unsigned char kat2545_entropyin[] = {
+ 0xd1, 0x05, 0x83, 0x27, 0x96, 0x22, 0x35, 0x25, 0x3d, 0x58, 0x1b, 0xc9,
+ 0xbc, 0x68, 0x17, 0x60, 0x84, 0x77, 0x8c, 0x0d, 0xb2, 0x20, 0xc5, 0xa4,
+ 0xa9, 0xf7, 0x37, 0x04, 0x26, 0x04, 0x31, 0x08, 0x7b, 0x13, 0x8a, 0x15,
+ 0x43, 0xd4, 0x3c, 0x13,
+};
+static const unsigned char kat2545_nonce[] = {0};
+static const unsigned char kat2545_persstr[] = {0};
+static const unsigned char kat2545_entropyinreseed[] = {
+ 0x9b, 0xdc, 0x0e, 0x51, 0xe8, 0x82, 0x1c, 0xcb, 0xf8, 0xe1, 0x44, 0x94,
+ 0xe7, 0x51, 0xb5, 0x1b, 0x5b, 0x1c, 0x3d, 0x3f, 0xd0, 0xd0, 0xb7, 0x19,
+ 0x35, 0x3e, 0xa9, 0xc4, 0x6a, 0x0b, 0xd0, 0x40, 0x8e, 0x00, 0x81, 0xbe,
+ 0x26, 0x7e, 0xd3, 0x1b,
+};
+static const unsigned char kat2545_addinreseed[] = {
+ 0xaf, 0x01, 0x4e, 0xf2, 0xdd, 0xa2, 0x3c, 0x2a, 0xcd, 0x2d, 0x08, 0x85,
+ 0x5b, 0x3a, 0x17, 0xb3, 0xfa, 0xd8, 0x4b, 0x32, 0x91, 0xe5, 0x30, 0xa1,
+ 0x92, 0x0b, 0xc4, 0x9d, 0x00, 0x52, 0x27, 0x37, 0x84, 0x6c, 0x3f, 0xcb,
+ 0x4c, 0x92, 0xd6, 0xab,
+};
+static const unsigned char kat2545_addin0[] = {
+ 0x61, 0x7b, 0xf0, 0x52, 0x67, 0x24, 0x90, 0xfa, 0x69, 0x0c, 0xfe, 0xcd,
+ 0x8a, 0x18, 0xa4, 0xf9, 0x5a, 0x98, 0x08, 0x24, 0xb7, 0x3d, 0x92, 0x29,
+ 0xb1, 0x4f, 0xa0, 0xba, 0x77, 0xe5, 0x5d, 0xf9, 0x84, 0x35, 0x8b, 0x3f,
+ 0xfe, 0xd6, 0x35, 0x5e,
+};
+static const unsigned char kat2545_addin1[] = {
+ 0x2c, 0xb3, 0x90, 0x95, 0x72, 0xca, 0xe9, 0x89, 0x00, 0xd1, 0xf2, 0x96,
+ 0x33, 0xb2, 0x91, 0xea, 0x02, 0xdb, 0x9a, 0x2e, 0x75, 0x22, 0x6e, 0x0d,
+ 0x68, 0xff, 0x9b, 0x59, 0x23, 0xf3, 0x11, 0x22, 0x7a, 0xa8, 0x85, 0x1a,
+ 0xbd, 0xdf, 0x22, 0x54,
+};
+static const unsigned char kat2545_retbits[] = {
+ 0x05, 0xbf, 0xd8, 0xa3, 0xa1, 0x0e, 0x6d, 0x9b, 0xa9, 0xf5, 0x41, 0x38,
+ 0x8d, 0x6c, 0xfc, 0x31, 0x25, 0x6b, 0x9c, 0xaa, 0x5a, 0xc2, 0xfd, 0x45,
+ 0xc2, 0xe8, 0x96, 0xf3, 0xfc, 0x7c, 0x95, 0x37, 0xb4, 0xba, 0xc4, 0x64,
+ 0xff, 0xa5, 0xf6, 0x2d, 0xe5, 0x66, 0xff, 0x1f, 0x47, 0xab, 0xbb, 0x0e,
+ 0xb5, 0x0f, 0xb5, 0x22, 0xfd, 0xfd, 0xa9, 0xea, 0x48, 0x45, 0xa0, 0xee,
+ 0x2e, 0x01, 0x08, 0x5d,
+};
+static const struct drbg_kat_pr_false kat2545_t = {
+ 9, kat2545_entropyin, kat2545_nonce, kat2545_persstr,
+ kat2545_entropyinreseed, kat2545_addinreseed, kat2545_addin0,
+ kat2545_addin1, kat2545_retbits
+};
+static const struct drbg_kat kat2545 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2545_t
+};
+
+static const unsigned char kat2546_entropyin[] = {
+ 0x93, 0x1f, 0xc7, 0xc1, 0xfc, 0x6f, 0x64, 0x8e, 0xc8, 0x53, 0xaf, 0xad,
+ 0x8c, 0x16, 0x0b, 0xa8, 0xe0, 0x0c, 0xc3, 0x78, 0xfd, 0x46, 0xc5, 0xd8,
+ 0xa0, 0x54, 0x13, 0xea, 0xd5, 0xa3, 0x56, 0x0b, 0x74, 0xb2, 0xa4, 0x5a,
+ 0x4f, 0x02, 0x3e, 0x67,
+};
+static const unsigned char kat2546_nonce[] = {0};
+static const unsigned char kat2546_persstr[] = {0};
+static const unsigned char kat2546_entropyinreseed[] = {
+ 0x9a, 0x77, 0xec, 0x80, 0x31, 0xc2, 0xb2, 0xe6, 0xce, 0x1f, 0xae, 0x26,
+ 0x34, 0xd0, 0xe6, 0x9c, 0x5c, 0x7a, 0x7b, 0xd7, 0x31, 0xdb, 0x54, 0x5c,
+ 0x12, 0x31, 0x1e, 0x52, 0x05, 0x4e, 0x73, 0x8a, 0x81, 0xcb, 0xff, 0xf8,
+ 0xfe, 0x06, 0x9b, 0xd0,
+};
+static const unsigned char kat2546_addinreseed[] = {
+ 0x1b, 0x1b, 0xb1, 0xa9, 0x5c, 0xb5, 0x38, 0x2d, 0x96, 0x79, 0xbc, 0x2c,
+ 0x1a, 0x2e, 0x7b, 0x50, 0xcb, 0x2a, 0x88, 0x52, 0x3c, 0x67, 0x24, 0x37,
+ 0x0b, 0x22, 0xe1, 0x84, 0xc9, 0xbc, 0xc6, 0x2e, 0x63, 0x57, 0x27, 0xbb,
+ 0x0e, 0x97, 0x6f, 0x4d,
+};
+static const unsigned char kat2546_addin0[] = {
+ 0xc9, 0x6f, 0x85, 0xd0, 0x75, 0x07, 0xaf, 0x3b, 0x07, 0x20, 0xc1, 0x70,
+ 0x81, 0x43, 0x5f, 0x57, 0xe7, 0x26, 0x82, 0x93, 0x85, 0x5d, 0xe4, 0xe8,
+ 0xa3, 0xff, 0xad, 0x92, 0x5e, 0xeb, 0x72, 0x89, 0xd2, 0x07, 0xf8, 0x58,
+ 0x0b, 0x06, 0x9f, 0xbb,
+};
+static const unsigned char kat2546_addin1[] = {
+ 0x4f, 0x95, 0xdb, 0x08, 0x45, 0x4f, 0x55, 0xc8, 0x1c, 0x79, 0x85, 0x4b,
+ 0x2f, 0x39, 0x45, 0x9a, 0x08, 0xdf, 0xdb, 0xb2, 0x33, 0xe3, 0xd4, 0xc2,
+ 0xbf, 0xf5, 0xd7, 0xe3, 0x5c, 0x93, 0xa4, 0x64, 0xd9, 0x16, 0xb3, 0x2b,
+ 0xc5, 0x7f, 0xc7, 0xe9,
+};
+static const unsigned char kat2546_retbits[] = {
+ 0x27, 0x0b, 0xc7, 0xcb, 0x3a, 0xb1, 0x7b, 0x52, 0xe6, 0x35, 0x33, 0x0c,
+ 0xc1, 0x84, 0x2d, 0xa6, 0x29, 0x6c, 0xf5, 0x43, 0x2d, 0x11, 0xd6, 0xab,
+ 0xc3, 0x7e, 0xdd, 0xca, 0x99, 0x6f, 0x74, 0x9e, 0x8e, 0x97, 0xce, 0xaf,
+ 0xdd, 0x84, 0x2f, 0x14, 0x74, 0xf6, 0x66, 0x4d, 0x87, 0xa8, 0x20, 0xc9,
+ 0x16, 0x2e, 0xa7, 0xcf, 0xe9, 0xb6, 0xb8, 0xc0, 0x98, 0xef, 0x51, 0xfe,
+ 0x4c, 0x26, 0xd7, 0xe2,
+};
+static const struct drbg_kat_pr_false kat2546_t = {
+ 10, kat2546_entropyin, kat2546_nonce, kat2546_persstr,
+ kat2546_entropyinreseed, kat2546_addinreseed, kat2546_addin0,
+ kat2546_addin1, kat2546_retbits
+};
+static const struct drbg_kat kat2546 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2546_t
+};
+
+static const unsigned char kat2547_entropyin[] = {
+ 0x14, 0xb6, 0x1e, 0x3c, 0xa2, 0xf9, 0x30, 0x1e, 0xa2, 0x43, 0x05, 0x50,
+ 0x23, 0x91, 0x78, 0x52, 0xad, 0xbd, 0xce, 0x4e, 0xcc, 0xd0, 0x97, 0x43,
+ 0xd2, 0xab, 0xa0, 0x6e, 0x26, 0x28, 0x88, 0x3e, 0xd8, 0x60, 0x0e, 0x4a,
+ 0x09, 0x97, 0x3d, 0x59,
+};
+static const unsigned char kat2547_nonce[] = {0};
+static const unsigned char kat2547_persstr[] = {0};
+static const unsigned char kat2547_entropyinreseed[] = {
+ 0x1a, 0x66, 0xc3, 0x98, 0x5d, 0x3c, 0xff, 0x2d, 0x14, 0x93, 0xae, 0xe8,
+ 0x92, 0xd8, 0xde, 0xc8, 0xa9, 0x66, 0xfb, 0x4b, 0x72, 0x12, 0xd2, 0x56,
+ 0xc2, 0x99, 0x23, 0xbb, 0x0f, 0x29, 0xcd, 0xf8, 0x22, 0x24, 0x0e, 0x7d,
+ 0xda, 0xf6, 0xac, 0xe6,
+};
+static const unsigned char kat2547_addinreseed[] = {
+ 0x97, 0x47, 0xaf, 0x46, 0xff, 0x6b, 0xf6, 0x95, 0x9c, 0x26, 0x6b, 0xe2,
+ 0xdc, 0xb0, 0x08, 0x7c, 0x7e, 0x70, 0x90, 0xee, 0x4d, 0x7a, 0xe8, 0x11,
+ 0xc4, 0xb8, 0xce, 0x73, 0x91, 0xda, 0xb5, 0x57, 0x17, 0x8d, 0x85, 0x42,
+ 0x0f, 0xd4, 0x17, 0x76,
+};
+static const unsigned char kat2547_addin0[] = {
+ 0x8f, 0x9a, 0x93, 0xdf, 0xf9, 0xed, 0x76, 0xf5, 0x93, 0x92, 0xa6, 0x9f,
+ 0x4d, 0xb6, 0x09, 0x97, 0xd6, 0xbb, 0x12, 0xcd, 0x67, 0x6c, 0x5f, 0xe5,
+ 0xeb, 0x5c, 0xca, 0x4e, 0x1f, 0xe7, 0xbd, 0xea, 0x31, 0x31, 0x39, 0x1e,
+ 0x0c, 0xd2, 0xb2, 0xbc,
+};
+static const unsigned char kat2547_addin1[] = {
+ 0x1b, 0x1e, 0x87, 0xc1, 0xb9, 0xea, 0x94, 0x45, 0x3b, 0x36, 0xca, 0x07,
+ 0x4a, 0x56, 0x9d, 0x95, 0xb3, 0x00, 0x0d, 0xa3, 0xb7, 0x10, 0x80, 0x71,
+ 0x33, 0xb4, 0x6d, 0x3c, 0x77, 0xbb, 0xe9, 0x97, 0xc9, 0xdf, 0x24, 0x39,
+ 0xd5, 0x1d, 0x14, 0x69,
+};
+static const unsigned char kat2547_retbits[] = {
+ 0x6a, 0x89, 0xdf, 0x0b, 0x01, 0xc8, 0x5d, 0x86, 0x2d, 0xe9, 0xf5, 0xa3,
+ 0xd3, 0xa0, 0xc7, 0x4d, 0xb6, 0xf9, 0xb4, 0xf9, 0x9c, 0x33, 0x07, 0xf5,
+ 0xc4, 0x91, 0x5a, 0x2d, 0xaf, 0xef, 0x4d, 0x1e, 0x72, 0xbf, 0x14, 0x17,
+ 0x1a, 0xb4, 0x0c, 0x42, 0x7a, 0xf6, 0x00, 0x72, 0x26, 0xe3, 0x6f, 0x3b,
+ 0x48, 0x20, 0xe4, 0xf0, 0xf7, 0x4d, 0x72, 0x48, 0xcc, 0x8e, 0x70, 0x9b,
+ 0x2a, 0x7d, 0x81, 0x4e,
+};
+static const struct drbg_kat_pr_false kat2547_t = {
+ 11, kat2547_entropyin, kat2547_nonce, kat2547_persstr,
+ kat2547_entropyinreseed, kat2547_addinreseed, kat2547_addin0,
+ kat2547_addin1, kat2547_retbits
+};
+static const struct drbg_kat kat2547 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2547_t
+};
+
+static const unsigned char kat2548_entropyin[] = {
+ 0x84, 0xfd, 0xb0, 0xe4, 0x40, 0x57, 0xe5, 0xf5, 0xda, 0x02, 0xbd, 0x4a,
+ 0xce, 0x0e, 0xcd, 0x54, 0x45, 0xe3, 0x72, 0xe8, 0x43, 0x8f, 0xcc, 0xff,
+ 0x77, 0x40, 0x9e, 0xca, 0xeb, 0x29, 0x21, 0x7a, 0xd7, 0x58, 0x56, 0xe3,
+ 0xfc, 0x2c, 0x8f, 0x4c,
+};
+static const unsigned char kat2548_nonce[] = {0};
+static const unsigned char kat2548_persstr[] = {0};
+static const unsigned char kat2548_entropyinreseed[] = {
+ 0x66, 0x59, 0x42, 0xd0, 0xd1, 0x5f, 0x76, 0x53, 0x83, 0xbc, 0x7a, 0x4b,
+ 0xc5, 0x29, 0xe4, 0xb5, 0x7d, 0x0f, 0x0c, 0x23, 0x52, 0x49, 0x23, 0xe0,
+ 0x2e, 0x32, 0x34, 0x00, 0xf8, 0x11, 0x9d, 0x1f, 0x1e, 0x4e, 0x49, 0x5f,
+ 0x83, 0xaf, 0xd5, 0xdb,
+};
+static const unsigned char kat2548_addinreseed[] = {
+ 0x03, 0xb0, 0x1e, 0x1a, 0xcb, 0x74, 0x13, 0xc3, 0xab, 0x97, 0x8f, 0x0f,
+ 0xdd, 0xa1, 0x51, 0x52, 0x24, 0xd7, 0x02, 0x55, 0x8b, 0xf1, 0xc6, 0x7f,
+ 0xf0, 0xd6, 0xc0, 0xad, 0x47, 0x09, 0x75, 0xf8, 0x2d, 0xc5, 0x3f, 0x75,
+ 0x33, 0x8b, 0x03, 0x96,
+};
+static const unsigned char kat2548_addin0[] = {
+ 0xfc, 0x55, 0x35, 0x18, 0x8a, 0xf0, 0x43, 0x5e, 0x52, 0x88, 0xdf, 0x5d,
+ 0xa0, 0x6a, 0xa2, 0xdf, 0xe1, 0x6d, 0x93, 0xb3, 0x10, 0xa6, 0xb1, 0x8f,
+ 0x20, 0xe3, 0xba, 0x81, 0x64, 0x73, 0x59, 0xdd, 0xc4, 0x4d, 0x52, 0xe3,
+ 0x09, 0x3b, 0xb7, 0xf3,
+};
+static const unsigned char kat2548_addin1[] = {
+ 0x37, 0xf8, 0x53, 0xf9, 0x88, 0x49, 0xad, 0x63, 0x6e, 0x57, 0xa6, 0xdc,
+ 0xf7, 0xab, 0x22, 0x3d, 0x50, 0xed, 0x10, 0x3f, 0x43, 0x4b, 0x49, 0xde,
+ 0x36, 0xbf, 0x87, 0x6d, 0xd9, 0xb2, 0x1e, 0xf3, 0x38, 0x61, 0x2c, 0xc3,
+ 0x7b, 0x9e, 0x01, 0xa8,
+};
+static const unsigned char kat2548_retbits[] = {
+ 0xdc, 0x61, 0x4f, 0x10, 0x4b, 0xc9, 0x9b, 0x4b, 0xa4, 0x59, 0xd2, 0x80,
+ 0xc9, 0x8c, 0x6e, 0xe6, 0x9a, 0xc6, 0x2b, 0xcd, 0x0c, 0x37, 0xca, 0x48,
+ 0x8f, 0x5b, 0xd3, 0x0b, 0x20, 0x68, 0x93, 0x2a, 0x9f, 0x76, 0x52, 0xb3,
+ 0xfe, 0xa9, 0x26, 0x49, 0x87, 0x5f, 0xc9, 0x5b, 0xe0, 0xff, 0xb4, 0x5e,
+ 0x23, 0x61, 0x8b, 0x34, 0xb4, 0x00, 0x3b, 0x73, 0x23, 0xdf, 0x4d, 0xff,
+ 0xe9, 0xcf, 0x6f, 0xf9,
+};
+static const struct drbg_kat_pr_false kat2548_t = {
+ 12, kat2548_entropyin, kat2548_nonce, kat2548_persstr,
+ kat2548_entropyinreseed, kat2548_addinreseed, kat2548_addin0,
+ kat2548_addin1, kat2548_retbits
+};
+static const struct drbg_kat kat2548 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2548_t
+};
+
+static const unsigned char kat2549_entropyin[] = {
+ 0xa5, 0x8a, 0x67, 0xd9, 0x18, 0x19, 0xea, 0xce, 0xb3, 0x44, 0x0c, 0x5e,
+ 0x8b, 0x81, 0x16, 0x23, 0xec, 0x42, 0x3b, 0x8e, 0xf3, 0x06, 0xe6, 0x52,
+ 0xda, 0x28, 0xa1, 0x70, 0x05, 0x67, 0xeb, 0xde, 0xd4, 0x23, 0x6f, 0x11,
+ 0xd4, 0xe0, 0x67, 0x4c,
+};
+static const unsigned char kat2549_nonce[] = {0};
+static const unsigned char kat2549_persstr[] = {0};
+static const unsigned char kat2549_entropyinreseed[] = {
+ 0x48, 0x33, 0x67, 0x2b, 0x97, 0x39, 0xd4, 0x47, 0x0b, 0x5d, 0x7a, 0x5a,
+ 0x43, 0xf6, 0xfa, 0x30, 0xec, 0xc6, 0x6a, 0xe6, 0x96, 0x53, 0x33, 0x87,
+ 0xba, 0xfa, 0xdd, 0xd6, 0x2f, 0xae, 0xe1, 0x37, 0xf9, 0x61, 0xaf, 0x96,
+ 0x5b, 0x47, 0x3c, 0x1a,
+};
+static const unsigned char kat2549_addinreseed[] = {
+ 0xb2, 0xc2, 0xab, 0x06, 0x58, 0x2c, 0x20, 0xa7, 0x48, 0x73, 0x7f, 0x83,
+ 0x90, 0xc0, 0x13, 0xa0, 0x3d, 0x8d, 0x62, 0x00, 0xe6, 0x30, 0xe2, 0xa2,
+ 0xf0, 0x59, 0xeb, 0x7d, 0x3f, 0x8f, 0x89, 0xb0, 0x8c, 0xe9, 0x7f, 0xd3,
+ 0x60, 0x3e, 0xe3, 0x1d,
+};
+static const unsigned char kat2549_addin0[] = {
+ 0x30, 0x50, 0x93, 0xf3, 0x99, 0x4d, 0x3e, 0x3c, 0x41, 0xc0, 0x01, 0x4c,
+ 0xca, 0x4d, 0x70, 0x74, 0x80, 0x66, 0x7c, 0x2a, 0xef, 0x1e, 0xf0, 0x3a,
+ 0xfa, 0xe1, 0xf0, 0x27, 0x2e, 0x73, 0xd0, 0xae, 0xe4, 0x3d, 0xae, 0xf1,
+ 0xc1, 0xe0, 0xbd, 0xfe,
+};
+static const unsigned char kat2549_addin1[] = {
+ 0x82, 0x50, 0xd9, 0x8f, 0x0f, 0x93, 0x72, 0xb7, 0x4c, 0x6c, 0x57, 0x7c,
+ 0x5e, 0x66, 0x3f, 0x12, 0x21, 0x36, 0x9a, 0xc6, 0x7e, 0x18, 0x30, 0xae,
+ 0x91, 0x04, 0x3e, 0x58, 0x3f, 0x9a, 0x85, 0x0c, 0xa1, 0x6b, 0x0e, 0xfc,
+ 0x66, 0x13, 0xd5, 0xa8,
+};
+static const unsigned char kat2549_retbits[] = {
+ 0x74, 0x7a, 0x67, 0xe6, 0x85, 0xbe, 0xbc, 0xc4, 0x25, 0x71, 0x7d, 0xaa,
+ 0x75, 0x5b, 0xe9, 0xc3, 0x04, 0x21, 0x36, 0x23, 0x7b, 0x1d, 0x0a, 0xe9,
+ 0xa2, 0x2c, 0x90, 0xb9, 0x67, 0x4e, 0xaa, 0xf9, 0x89, 0x04, 0x4d, 0x1b,
+ 0xb4, 0x70, 0xbc, 0xb3, 0x63, 0x78, 0xa9, 0xc6, 0x51, 0xb6, 0x2d, 0xb3,
+ 0xf7, 0x53, 0x6b, 0x51, 0x84, 0x01, 0x82, 0xa1, 0x0f, 0x9b, 0xd7, 0x6c,
+ 0xf1, 0x3a, 0x55, 0xce,
+};
+static const struct drbg_kat_pr_false kat2549_t = {
+ 13, kat2549_entropyin, kat2549_nonce, kat2549_persstr,
+ kat2549_entropyinreseed, kat2549_addinreseed, kat2549_addin0,
+ kat2549_addin1, kat2549_retbits
+};
+static const struct drbg_kat kat2549 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2549_t
+};
+
+static const unsigned char kat2550_entropyin[] = {
+ 0x4a, 0x78, 0xcb, 0xbb, 0x0f, 0x88, 0xa4, 0xdc, 0xe7, 0xaa, 0xfb, 0xda,
+ 0xb0, 0xd6, 0x50, 0xe8, 0x08, 0xf9, 0x99, 0x02, 0x2f, 0x2a, 0xf1, 0x62,
+ 0x01, 0x1e, 0x21, 0xaf, 0xf6, 0x59, 0x68, 0xf7, 0x8f, 0x0f, 0x61, 0x09,
+ 0x6f, 0x8a, 0x16, 0x0e,
+};
+static const unsigned char kat2550_nonce[] = {0};
+static const unsigned char kat2550_persstr[] = {0};
+static const unsigned char kat2550_entropyinreseed[] = {
+ 0xfd, 0x5e, 0x4e, 0x50, 0xa7, 0xc0, 0x0b, 0x45, 0xbe, 0x31, 0xf4, 0x0f,
+ 0x5a, 0xe5, 0xdc, 0x0a, 0x54, 0x40, 0xa2, 0x98, 0x67, 0x6b, 0x4a, 0xa9,
+ 0x10, 0x01, 0xfb, 0x5e, 0x5c, 0x2c, 0x7f, 0x37, 0x95, 0x34, 0xf0, 0x57,
+ 0xdd, 0x72, 0x9b, 0x35,
+};
+static const unsigned char kat2550_addinreseed[] = {
+ 0xb5, 0x52, 0xdc, 0xd9, 0x8e, 0xf2, 0x32, 0x98, 0xed, 0x3a, 0x25, 0x93,
+ 0x56, 0x8d, 0x3f, 0xa3, 0xcb, 0x96, 0x1d, 0x89, 0x66, 0x0b, 0xbd, 0x93,
+ 0x30, 0x1f, 0x82, 0x1b, 0xda, 0xd7, 0xef, 0x0b, 0x9c, 0xd0, 0x71, 0xab,
+ 0xc1, 0xe1, 0x82, 0xe3,
+};
+static const unsigned char kat2550_addin0[] = {
+ 0x18, 0xa0, 0x98, 0x94, 0xed, 0x82, 0x48, 0x09, 0xe6, 0x6e, 0xe4, 0x47,
+ 0xf9, 0x41, 0x35, 0x05, 0x03, 0x5c, 0x8e, 0x85, 0xdb, 0x5b, 0x9c, 0x6e,
+ 0x59, 0x7b, 0xf6, 0xa2, 0xe3, 0x83, 0x86, 0xd8, 0xaf, 0x26, 0x78, 0x4f,
+ 0x8f, 0x29, 0x78, 0x0c,
+};
+static const unsigned char kat2550_addin1[] = {
+ 0x75, 0xec, 0x32, 0x9e, 0x54, 0x63, 0x93, 0x06, 0xdc, 0x85, 0x3b, 0x73,
+ 0x49, 0x8d, 0xbc, 0x00, 0x2a, 0xbc, 0xea, 0xdb, 0x35, 0x5e, 0x12, 0xae,
+ 0x69, 0xfe, 0xa1, 0x6c, 0xc3, 0xae, 0x89, 0x22, 0x72, 0x54, 0x49, 0x90,
+ 0xd2, 0x93, 0x8b, 0xe9,
+};
+static const unsigned char kat2550_retbits[] = {
+ 0x4c, 0x08, 0x12, 0x6a, 0x7f, 0xe9, 0x78, 0xf2, 0x59, 0x82, 0x67, 0x2e,
+ 0xe2, 0x04, 0x4a, 0x9d, 0xfe, 0x31, 0x91, 0x9a, 0x20, 0x03, 0x85, 0x3a,
+ 0x74, 0xd9, 0x13, 0x2b, 0x46, 0xa2, 0x27, 0x85, 0x47, 0xaf, 0x59, 0x80,
+ 0xd0, 0x37, 0x40, 0x12, 0x75, 0xff, 0x86, 0x52, 0x8b, 0xff, 0x41, 0xfa,
+ 0x80, 0x18, 0x0e, 0x82, 0x3b, 0xb8, 0x8c, 0xda, 0x60, 0x29, 0xe0, 0x6d,
+ 0x2b, 0x00, 0x9e, 0x81,
+};
+static const struct drbg_kat_pr_false kat2550_t = {
+ 14, kat2550_entropyin, kat2550_nonce, kat2550_persstr,
+ kat2550_entropyinreseed, kat2550_addinreseed, kat2550_addin0,
+ kat2550_addin1, kat2550_retbits
+};
+static const struct drbg_kat kat2550 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2550_t
+};
+
+static const unsigned char kat2551_entropyin[] = {
+ 0x7a, 0xa6, 0x0c, 0x5a, 0x25, 0x36, 0x0d, 0x8a, 0x0a, 0x9d, 0x41, 0xe3,
+ 0x4c, 0x76, 0xc4, 0xf1, 0x80, 0x71, 0xb5, 0x6a, 0xc6, 0x73, 0xd4, 0xba,
+ 0xac, 0xbe, 0xe7, 0x75, 0x49, 0xdd, 0x36, 0x1d, 0xb6, 0x49, 0x6f, 0x90,
+ 0x34, 0x51, 0x38, 0x88,
+};
+static const unsigned char kat2551_nonce[] = {0};
+static const unsigned char kat2551_persstr[] = {
+ 0xe7, 0xb5, 0xcc, 0x99, 0xdd, 0xe3, 0x12, 0x31, 0x8e, 0xcb, 0x2a, 0x3b,
+ 0xc4, 0xee, 0x8c, 0x14, 0x76, 0x34, 0x5a, 0xd3, 0xe8, 0x1b, 0x5d, 0x6d,
+ 0xc0, 0xb7, 0x47, 0xb5, 0x90, 0xc0, 0xd2, 0x1b, 0xe7, 0x31, 0x39, 0x8f,
+ 0x82, 0x3a, 0xad, 0x02,
+};
+static const unsigned char kat2551_entropyinreseed[] = {
+ 0x31, 0x0e, 0x8e, 0x8d, 0xbc, 0x6a, 0xe5, 0x86, 0x62, 0x5d, 0x75, 0x0f,
+ 0x5a, 0x1c, 0xee, 0x76, 0x4a, 0x7e, 0x47, 0xa2, 0xeb, 0x35, 0x5c, 0x5c,
+ 0x94, 0xdd, 0xe9, 0x50, 0x06, 0x5f, 0xb7, 0x55, 0x46, 0xff, 0x34, 0x7f,
+ 0x7f, 0x17, 0x24, 0xeb,
+};
+static const unsigned char kat2551_addinreseed[] = {0};
+static const unsigned char kat2551_addin0[] = {0};
+static const unsigned char kat2551_addin1[] = {0};
+static const unsigned char kat2551_retbits[] = {
+ 0x21, 0x46, 0x0b, 0xda, 0x25, 0xdc, 0xad, 0x96, 0xd2, 0x91, 0x44, 0xc9,
+ 0x12, 0xc6, 0x54, 0xe3, 0x07, 0xa0, 0xb5, 0x59, 0xd7, 0x26, 0xc0, 0x51,
+ 0x3e, 0x2f, 0x07, 0xa4, 0xe6, 0xca, 0x0c, 0x44, 0x4e, 0xcb, 0x4f, 0xf6,
+ 0xa9, 0x77, 0x88, 0x0c, 0xba, 0x4b, 0xb9, 0x93, 0xb2, 0xd2, 0x87, 0x3d,
+ 0xab, 0xd3, 0x59, 0xa8, 0xc4, 0x93, 0xdc, 0x28, 0x38, 0xab, 0xb1, 0x0f,
+ 0x63, 0xd3, 0xa8, 0xe7,
+};
+static const struct drbg_kat_pr_false kat2551_t = {
+ 0, kat2551_entropyin, kat2551_nonce, kat2551_persstr,
+ kat2551_entropyinreseed, kat2551_addinreseed, kat2551_addin0,
+ kat2551_addin1, kat2551_retbits
+};
+static const struct drbg_kat kat2551 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2551_t
+};
+
+static const unsigned char kat2552_entropyin[] = {
+ 0x9f, 0x5c, 0x41, 0x61, 0x87, 0x2a, 0x8e, 0xed, 0x8d, 0xe0, 0xd7, 0xa4,
+ 0x0e, 0x4c, 0x83, 0x30, 0xa0, 0x6d, 0x44, 0x4b, 0xe6, 0x7a, 0xec, 0xdc,
+ 0x22, 0x14, 0x1b, 0x16, 0x8c, 0x5e, 0x56, 0x07, 0xe3, 0xd7, 0xf2, 0xf0,
+ 0xb2, 0x06, 0xdc, 0xd7,
+};
+static const unsigned char kat2552_nonce[] = {0};
+static const unsigned char kat2552_persstr[] = {
+ 0xab, 0x9e, 0xe1, 0xb4, 0x97, 0x4e, 0x9e, 0x62, 0x8a, 0x75, 0xc3, 0x5f,
+ 0x59, 0xa9, 0x05, 0xec, 0x1c, 0xf6, 0xcd, 0x8b, 0x29, 0x27, 0xcf, 0x5e,
+ 0xeb, 0x4b, 0xf3, 0x52, 0x9c, 0x40, 0xe2, 0xb4, 0xf6, 0x47, 0xa3, 0xe5,
+ 0x2d, 0xa3, 0x66, 0xce,
+};
+static const unsigned char kat2552_entropyinreseed[] = {
+ 0x59, 0x67, 0xee, 0xee, 0x36, 0xac, 0xfe, 0xfa, 0x19, 0x1d, 0x33, 0x5c,
+ 0x62, 0x5a, 0x43, 0x3b, 0x1a, 0x93, 0x52, 0x98, 0x99, 0x13, 0x84, 0xcd,
+ 0x67, 0xa4, 0x21, 0x2f, 0xad, 0xed, 0xfb, 0xdd, 0x0c, 0xe0, 0x84, 0x61,
+ 0x74, 0xc2, 0x26, 0xe7,
+};
+static const unsigned char kat2552_addinreseed[] = {0};
+static const unsigned char kat2552_addin0[] = {0};
+static const unsigned char kat2552_addin1[] = {0};
+static const unsigned char kat2552_retbits[] = {
+ 0x16, 0x6a, 0x0a, 0x73, 0xab, 0xab, 0x05, 0xa9, 0x4c, 0x5e, 0xf7, 0x8c,
+ 0xee, 0x8e, 0x21, 0x1f, 0x6b, 0x79, 0xa7, 0x7a, 0xa4, 0xd4, 0x6d, 0x9a,
+ 0x13, 0xec, 0x97, 0xad, 0x3b, 0x64, 0xbf, 0xa3, 0x0f, 0xcb, 0x2a, 0x3c,
+ 0x25, 0xc1, 0xa4, 0x2a, 0xb5, 0x2f, 0xa6, 0x30, 0x5d, 0xfc, 0x05, 0x9c,
+ 0xbe, 0x45, 0x9a, 0x67, 0x49, 0x14, 0xc2, 0x25, 0x8e, 0xc6, 0x84, 0x30,
+ 0x94, 0x41, 0x69, 0x2e,
+};
+static const struct drbg_kat_pr_false kat2552_t = {
+ 1, kat2552_entropyin, kat2552_nonce, kat2552_persstr,
+ kat2552_entropyinreseed, kat2552_addinreseed, kat2552_addin0,
+ kat2552_addin1, kat2552_retbits
+};
+static const struct drbg_kat kat2552 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2552_t
+};
+
+static const unsigned char kat2553_entropyin[] = {
+ 0x5d, 0x93, 0x35, 0x4c, 0x4a, 0x62, 0x0e, 0x82, 0x9a, 0x7c, 0xc5, 0xde,
+ 0x8c, 0x0c, 0xcd, 0x0b, 0xb0, 0xaf, 0x65, 0x5a, 0xea, 0x62, 0x29, 0x43,
+ 0xc2, 0x17, 0x68, 0x35, 0xad, 0xd5, 0xce, 0xe5, 0xbc, 0xe9, 0x2a, 0x6a,
+ 0x3c, 0x97, 0x29, 0x03,
+};
+static const unsigned char kat2553_nonce[] = {0};
+static const unsigned char kat2553_persstr[] = {
+ 0x86, 0x4e, 0x83, 0xc6, 0xe5, 0x17, 0x2a, 0xd9, 0xa6, 0x4f, 0x2d, 0x3c,
+ 0x8c, 0x50, 0x27, 0x8c, 0x18, 0x59, 0x99, 0x6d, 0x65, 0x13, 0xfc, 0x40,
+ 0xac, 0xe1, 0x99, 0x92, 0xa0, 0xdd, 0xa0, 0x10, 0xcf, 0x37, 0x1d, 0x66,
+ 0x07, 0x21, 0xb2, 0x6f,
+};
+static const unsigned char kat2553_entropyinreseed[] = {
+ 0x39, 0x0d, 0x5e, 0x0d, 0xbe, 0x18, 0x4f, 0x93, 0x9b, 0xef, 0x7c, 0x64,
+ 0xb6, 0xe6, 0x8a, 0x35, 0x30, 0xf9, 0x26, 0xd4, 0x3e, 0xbf, 0x64, 0x4d,
+ 0x6c, 0xbf, 0x77, 0x6c, 0x6d, 0x26, 0x89, 0xa5, 0x9f, 0xec, 0xd9, 0x51,
+ 0x6b, 0xc6, 0x1f, 0xb5,
+};
+static const unsigned char kat2553_addinreseed[] = {0};
+static const unsigned char kat2553_addin0[] = {0};
+static const unsigned char kat2553_addin1[] = {0};
+static const unsigned char kat2553_retbits[] = {
+ 0x35, 0xdd, 0x52, 0x55, 0x94, 0x60, 0x04, 0xc9, 0x86, 0xca, 0x03, 0x58,
+ 0xe9, 0xc3, 0xad, 0xc7, 0xfe, 0xfd, 0x15, 0x19, 0x6f, 0x4a, 0xda, 0xa2,
+ 0xdb, 0x14, 0x72, 0x90, 0x82, 0x9c, 0xf4, 0x4c, 0xfb, 0x0d, 0x53, 0x6e,
+ 0xf1, 0x34, 0x09, 0x62, 0x48, 0x0d, 0x96, 0x60, 0x7b, 0x2d, 0x53, 0x3d,
+ 0xc6, 0xc0, 0xc7, 0xa9, 0xca, 0xe6, 0xaf, 0x07, 0xf2, 0x55, 0x56, 0x84,
+ 0xce, 0x6a, 0x23, 0x17,
+};
+static const struct drbg_kat_pr_false kat2553_t = {
+ 2, kat2553_entropyin, kat2553_nonce, kat2553_persstr,
+ kat2553_entropyinreseed, kat2553_addinreseed, kat2553_addin0,
+ kat2553_addin1, kat2553_retbits
+};
+static const struct drbg_kat kat2553 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2553_t
+};
+
+static const unsigned char kat2554_entropyin[] = {
+ 0xfa, 0xf4, 0xe0, 0xb0, 0x2e, 0xe9, 0xd6, 0xbc, 0xd3, 0x07, 0x1d, 0x08,
+ 0xaa, 0x09, 0xfd, 0xac, 0xf1, 0x65, 0xa1, 0x06, 0x41, 0x2f, 0xb6, 0x28,
+ 0xa3, 0xaf, 0x5d, 0x96, 0x81, 0xa6, 0x94, 0x11, 0xdc, 0xf5, 0x75, 0x32,
+ 0xd8, 0x9e, 0xb7, 0x72,
+};
+static const unsigned char kat2554_nonce[] = {0};
+static const unsigned char kat2554_persstr[] = {
+ 0x29, 0x26, 0x20, 0x27, 0x40, 0xb7, 0xd5, 0xff, 0xcb, 0xdb, 0x22, 0xf8,
+ 0x23, 0xd3, 0xe4, 0x7f, 0x3b, 0x92, 0x24, 0x38, 0x22, 0x77, 0xf0, 0x7c,
+ 0x95, 0x6d, 0x25, 0xfa, 0x0b, 0x18, 0x12, 0x4c, 0x28, 0xe9, 0x6f, 0x04,
+ 0xdc, 0x1b, 0xaa, 0x43,
+};
+static const unsigned char kat2554_entropyinreseed[] = {
+ 0x63, 0x2a, 0x9e, 0xe7, 0x1f, 0xc6, 0xbe, 0x34, 0xcc, 0x0a, 0x4f, 0xf2,
+ 0x12, 0xd1, 0x5f, 0x48, 0x27, 0xd1, 0x74, 0x48, 0x9f, 0x2d, 0x4c, 0x93,
+ 0x63, 0xe0, 0x55, 0x62, 0x5a, 0xa3, 0x68, 0xbd, 0x72, 0x58, 0x78, 0x25,
+ 0x17, 0x45, 0x8f, 0x3d,
+};
+static const unsigned char kat2554_addinreseed[] = {0};
+static const unsigned char kat2554_addin0[] = {0};
+static const unsigned char kat2554_addin1[] = {0};
+static const unsigned char kat2554_retbits[] = {
+ 0x91, 0x73, 0xe1, 0xa6, 0x8a, 0x70, 0x8f, 0x14, 0x56, 0xfd, 0x19, 0xd3,
+ 0x4c, 0x53, 0x97, 0x87, 0xb8, 0xca, 0x9c, 0x8e, 0x2c, 0x3c, 0x0a, 0xb7,
+ 0xad, 0x73, 0xac, 0x06, 0xa1, 0x31, 0xa5, 0xf1, 0xc1, 0xb0, 0xbd, 0x64,
+ 0xaa, 0x28, 0xe1, 0xdd, 0xb8, 0xf7, 0x11, 0xb4, 0xc0, 0x13, 0xf3, 0x25,
+ 0x47, 0xc8, 0xa6, 0x37, 0x01, 0xb8, 0x35, 0xd3, 0x85, 0x18, 0x2a, 0x69,
+ 0x76, 0x1b, 0xf8, 0x53,
+};
+static const struct drbg_kat_pr_false kat2554_t = {
+ 3, kat2554_entropyin, kat2554_nonce, kat2554_persstr,
+ kat2554_entropyinreseed, kat2554_addinreseed, kat2554_addin0,
+ kat2554_addin1, kat2554_retbits
+};
+static const struct drbg_kat kat2554 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2554_t
+};
+
+static const unsigned char kat2555_entropyin[] = {
+ 0x07, 0xc5, 0x3c, 0x6c, 0x51, 0x1c, 0xe7, 0xad, 0x81, 0xa0, 0x9d, 0x3b,
+ 0x12, 0x54, 0x5b, 0x59, 0x20, 0x4b, 0x02, 0x87, 0x8e, 0xa4, 0x81, 0xe0,
+ 0xc1, 0x6e, 0xa5, 0x1f, 0x16, 0x9b, 0x1c, 0xd7, 0x82, 0x43, 0x03, 0x7a,
+ 0xea, 0xf9, 0xdb, 0xef,
+};
+static const unsigned char kat2555_nonce[] = {0};
+static const unsigned char kat2555_persstr[] = {
+ 0xa9, 0x06, 0xff, 0x51, 0xad, 0x03, 0x43, 0x24, 0x26, 0xd0, 0x26, 0xc3,
+ 0xeb, 0x57, 0x3f, 0xf6, 0x68, 0xc9, 0xb4, 0x6f, 0x1d, 0x48, 0xac, 0x2d,
+ 0x51, 0xb2, 0x1a, 0xfe, 0x65, 0x02, 0x25, 0x0d, 0xa0, 0xcc, 0x2e, 0x1e,
+ 0x9f, 0xb4, 0x68, 0x72,
+};
+static const unsigned char kat2555_entropyinreseed[] = {
+ 0xe1, 0x05, 0xc2, 0x9c, 0x72, 0x59, 0xe6, 0xc4, 0xf4, 0xad, 0x2e, 0xd9,
+ 0x32, 0xd0, 0xe1, 0x24, 0x75, 0x1d, 0xd6, 0x92, 0x70, 0xd3, 0xf0, 0xea,
+ 0x3d, 0x82, 0x66, 0x73, 0xb8, 0x06, 0xbc, 0x52, 0x67, 0x38, 0x66, 0xb7,
+ 0x26, 0x8e, 0x91, 0xbf,
+};
+static const unsigned char kat2555_addinreseed[] = {0};
+static const unsigned char kat2555_addin0[] = {0};
+static const unsigned char kat2555_addin1[] = {0};
+static const unsigned char kat2555_retbits[] = {
+ 0xf0, 0x18, 0x75, 0x11, 0x33, 0x52, 0xca, 0x1c, 0xc7, 0x5f, 0x61, 0x78,
+ 0x67, 0xf9, 0x2a, 0x14, 0xa9, 0x64, 0xfa, 0x2e, 0x2a, 0x07, 0xc4, 0x3a,
+ 0xdc, 0xc0, 0x49, 0x63, 0x5b, 0x78, 0xc9, 0x2e, 0x5c, 0x71, 0x74, 0x70,
+ 0x18, 0x6b, 0x94, 0x67, 0x39, 0x0d, 0xb9, 0x81, 0x0d, 0xc3, 0xc3, 0xf7,
+ 0x66, 0x71, 0x27, 0xe8, 0x26, 0x31, 0x4f, 0xda, 0x7a, 0x01, 0xb8, 0x89,
+ 0x7b, 0x05, 0xd2, 0x74,
+};
+static const struct drbg_kat_pr_false kat2555_t = {
+ 4, kat2555_entropyin, kat2555_nonce, kat2555_persstr,
+ kat2555_entropyinreseed, kat2555_addinreseed, kat2555_addin0,
+ kat2555_addin1, kat2555_retbits
+};
+static const struct drbg_kat kat2555 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2555_t
+};
+
+static const unsigned char kat2556_entropyin[] = {
+ 0xc7, 0x58, 0x43, 0x26, 0xf2, 0x95, 0xce, 0x20, 0xc6, 0xff, 0xc9, 0xa5,
+ 0x31, 0x9e, 0x70, 0x55, 0x4f, 0x96, 0xcc, 0x24, 0xab, 0x23, 0xd8, 0x44,
+ 0xd1, 0x4b, 0xfa, 0xf5, 0x32, 0xb2, 0xb9, 0x5d, 0xf7, 0x7c, 0x5f, 0x4e,
+ 0x57, 0x1b, 0x75, 0x5c,
+};
+static const unsigned char kat2556_nonce[] = {0};
+static const unsigned char kat2556_persstr[] = {
+ 0xd9, 0x1b, 0xa3, 0xbd, 0x00, 0x97, 0xcc, 0x53, 0x25, 0x3a, 0xa1, 0x67,
+ 0x49, 0xd4, 0xd2, 0xb9, 0xfd, 0xd3, 0x25, 0xf4, 0xd9, 0x89, 0xe3, 0x5b,
+ 0x42, 0x8e, 0x16, 0x45, 0x6b, 0xe3, 0x23, 0x08, 0x64, 0xcb, 0x2e, 0xd1,
+ 0x3d, 0xf5, 0xf1, 0xfd,
+};
+static const unsigned char kat2556_entropyinreseed[] = {
+ 0xa4, 0xab, 0x7c, 0xba, 0x17, 0xcc, 0x5a, 0x21, 0x1e, 0x75, 0xcf, 0x6e,
+ 0xdf, 0x5f, 0x42, 0xf2, 0xe6, 0xad, 0xb2, 0x97, 0xc8, 0xa8, 0xa7, 0x1b,
+ 0x0b, 0x10, 0xd4, 0x79, 0x45, 0x4e, 0xc9, 0xe5, 0x1a, 0xb1, 0x4c, 0x67,
+ 0x94, 0x68, 0xf5, 0xa6,
+};
+static const unsigned char kat2556_addinreseed[] = {0};
+static const unsigned char kat2556_addin0[] = {0};
+static const unsigned char kat2556_addin1[] = {0};
+static const unsigned char kat2556_retbits[] = {
+ 0x12, 0x23, 0x2f, 0x1f, 0x47, 0xa8, 0xfd, 0xc6, 0xaf, 0x93, 0x11, 0x15,
+ 0x70, 0xb9, 0x2a, 0x30, 0x5f, 0x69, 0x94, 0xbb, 0xa3, 0xdb, 0x06, 0xea,
+ 0x1c, 0x61, 0x7e, 0x4a, 0x2f, 0x45, 0xf0, 0xb9, 0x5c, 0x3f, 0x3f, 0x4a,
+ 0x81, 0x1b, 0x97, 0x77, 0x02, 0x31, 0xf2, 0xed, 0xcc, 0x14, 0x9b, 0x0e,
+ 0x6b, 0x13, 0x65, 0x7c, 0x75, 0x4b, 0x69, 0xf9, 0xd7, 0x82, 0x82, 0x49,
+ 0x1b, 0xd0, 0x30, 0xf7,
+};
+static const struct drbg_kat_pr_false kat2556_t = {
+ 5, kat2556_entropyin, kat2556_nonce, kat2556_persstr,
+ kat2556_entropyinreseed, kat2556_addinreseed, kat2556_addin0,
+ kat2556_addin1, kat2556_retbits
+};
+static const struct drbg_kat kat2556 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2556_t
+};
+
+static const unsigned char kat2557_entropyin[] = {
+ 0xfd, 0x86, 0xc7, 0x7c, 0x64, 0xfc, 0x5b, 0x21, 0x93, 0x1a, 0x98, 0xf3,
+ 0x4a, 0xe2, 0x30, 0x3f, 0x64, 0xf4, 0x9c, 0xc6, 0xa5, 0x82, 0xff, 0x8e,
+ 0x44, 0xb8, 0xec, 0xa0, 0xac, 0xd7, 0xc2, 0xee, 0x7b, 0x15, 0x18, 0x14,
+ 0xc7, 0x46, 0x88, 0x23,
+};
+static const unsigned char kat2557_nonce[] = {0};
+static const unsigned char kat2557_persstr[] = {
+ 0x07, 0x25, 0x86, 0x68, 0xa7, 0x49, 0x22, 0xc6, 0x58, 0x3b, 0x88, 0xf5,
+ 0xe8, 0xdf, 0xa5, 0xc6, 0x28, 0x10, 0x0a, 0xcd, 0x2f, 0x7e, 0x8a, 0xaf,
+ 0x81, 0x00, 0x27, 0xf6, 0xb0, 0xfc, 0xbe, 0x89, 0xd8, 0xde, 0x16, 0xfa,
+ 0xb6, 0x55, 0x98, 0x92,
+};
+static const unsigned char kat2557_entropyinreseed[] = {
+ 0x6d, 0x8c, 0x53, 0xd3, 0xaf, 0xfe, 0xad, 0x61, 0xe6, 0xdd, 0xfc, 0x26,
+ 0xd4, 0xb8, 0x91, 0x74, 0x2f, 0x9a, 0x7e, 0x5d, 0x59, 0xef, 0x51, 0x1a,
+ 0xb8, 0x8a, 0x44, 0xaa, 0xc3, 0x42, 0x1d, 0x03, 0x55, 0xd3, 0x73, 0x98,
+ 0x32, 0xe3, 0x4c, 0x4e,
+};
+static const unsigned char kat2557_addinreseed[] = {0};
+static const unsigned char kat2557_addin0[] = {0};
+static const unsigned char kat2557_addin1[] = {0};
+static const unsigned char kat2557_retbits[] = {
+ 0xfa, 0xa3, 0xd6, 0x5e, 0xda, 0xac, 0x98, 0xd3, 0x31, 0x6d, 0xcb, 0x13,
+ 0x44, 0x5e, 0xaa, 0xd0, 0xcd, 0xfc, 0x69, 0xa4, 0xa5, 0x78, 0xb8, 0x1a,
+ 0x79, 0x2a, 0x49, 0x47, 0x9f, 0x15, 0xed, 0x0a, 0xb3, 0xc6, 0x06, 0x13,
+ 0xa6, 0x89, 0xbc, 0x79, 0xac, 0x38, 0x08, 0x07, 0xb1, 0xb7, 0xd5, 0x02,
+ 0xba, 0x88, 0x74, 0x57, 0x96, 0x8e, 0xbb, 0x22, 0x10, 0xb8, 0xd2, 0xe9,
+ 0x7b, 0xdf, 0xdc, 0xb1,
+};
+static const struct drbg_kat_pr_false kat2557_t = {
+ 6, kat2557_entropyin, kat2557_nonce, kat2557_persstr,
+ kat2557_entropyinreseed, kat2557_addinreseed, kat2557_addin0,
+ kat2557_addin1, kat2557_retbits
+};
+static const struct drbg_kat kat2557 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2557_t
+};
+
+static const unsigned char kat2558_entropyin[] = {
+ 0x6c, 0xac, 0x4b, 0x31, 0x28, 0x61, 0x8c, 0x27, 0xc2, 0xa3, 0xa2, 0x73,
+ 0x54, 0xab, 0x6a, 0x62, 0x99, 0x94, 0xf6, 0x79, 0xdb, 0x20, 0x15, 0x21,
+ 0xd8, 0x67, 0x9c, 0xd0, 0x3a, 0xfd, 0xbb, 0x71, 0x7e, 0xd9, 0x2e, 0xfb,
+ 0x02, 0x5f, 0x8c, 0x45,
+};
+static const unsigned char kat2558_nonce[] = {0};
+static const unsigned char kat2558_persstr[] = {
+ 0xd0, 0xef, 0x6a, 0xb5, 0xc7, 0x14, 0x75, 0x47, 0x83, 0x4b, 0x52, 0x97,
+ 0xc5, 0x1e, 0x45, 0xb6, 0x11, 0x30, 0xac, 0x0d, 0x7d, 0x8d, 0x7d, 0xa9,
+ 0xfb, 0xee, 0x0a, 0x2a, 0xe5, 0x9a, 0x09, 0x3f, 0xe9, 0x34, 0xab, 0xc7,
+ 0x19, 0x4e, 0x57, 0x23,
+};
+static const unsigned char kat2558_entropyinreseed[] = {
+ 0x09, 0x76, 0x36, 0x46, 0x41, 0x11, 0x8f, 0x8f, 0x1f, 0x02, 0x20, 0x56,
+ 0xa8, 0x45, 0x41, 0x73, 0x1c, 0xb4, 0xa6, 0x16, 0xbe, 0x61, 0x76, 0x07,
+ 0x60, 0x06, 0x64, 0x23, 0x04, 0x49, 0xbb, 0xb0, 0x3b, 0xe3, 0x4d, 0x2d,
+ 0x31, 0xc8, 0x29, 0xf8,
+};
+static const unsigned char kat2558_addinreseed[] = {0};
+static const unsigned char kat2558_addin0[] = {0};
+static const unsigned char kat2558_addin1[] = {0};
+static const unsigned char kat2558_retbits[] = {
+ 0x87, 0x48, 0xf9, 0x0e, 0xef, 0xe8, 0x4f, 0xdf, 0xd8, 0xc2, 0x33, 0x8a,
+ 0x5f, 0x7c, 0xd7, 0xdf, 0xa0, 0x60, 0x97, 0xe7, 0x7d, 0xf9, 0x9e, 0x7e,
+ 0x5e, 0x7d, 0x17, 0x02, 0x85, 0xd1, 0xce, 0x6a, 0x77, 0x09, 0x9d, 0xf7,
+ 0x5e, 0x47, 0xbf, 0xe0, 0x9e, 0xa5, 0xcb, 0xc6, 0x89, 0xef, 0xc7, 0x9a,
+ 0xb4, 0x12, 0x55, 0x11, 0x58, 0x9e, 0xd2, 0x6c, 0x1e, 0x67, 0xa7, 0xa3,
+ 0xc6, 0x67, 0x36, 0x98,
+};
+static const struct drbg_kat_pr_false kat2558_t = {
+ 7, kat2558_entropyin, kat2558_nonce, kat2558_persstr,
+ kat2558_entropyinreseed, kat2558_addinreseed, kat2558_addin0,
+ kat2558_addin1, kat2558_retbits
+};
+static const struct drbg_kat kat2558 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2558_t
+};
+
+static const unsigned char kat2559_entropyin[] = {
+ 0x78, 0xbc, 0xfe, 0x65, 0xd4, 0x36, 0x52, 0xcb, 0xc1, 0x76, 0xc1, 0x1d,
+ 0xf1, 0x2d, 0x80, 0xd0, 0x85, 0x86, 0xcd, 0xff, 0x69, 0x4a, 0xff, 0x78,
+ 0x2b, 0x72, 0xe2, 0x9b, 0x73, 0x7d, 0x38, 0xa7, 0x10, 0x94, 0x92, 0x27,
+ 0x89, 0x8e, 0x98, 0xab,
+};
+static const unsigned char kat2559_nonce[] = {0};
+static const unsigned char kat2559_persstr[] = {
+ 0xaa, 0xd3, 0xca, 0xca, 0x9f, 0x6e, 0x34, 0xcb, 0xf1, 0x50, 0x92, 0xdd,
+ 0x29, 0x85, 0x48, 0x93, 0xf6, 0x33, 0x8d, 0xf7, 0x7c, 0x79, 0x65, 0x99,
+ 0x20, 0xec, 0x9f, 0xa8, 0xcb, 0x9a, 0x92, 0xc2, 0xa5, 0x8c, 0x4d, 0x1e,
+ 0x0e, 0x19, 0x9c, 0x41,
+};
+static const unsigned char kat2559_entropyinreseed[] = {
+ 0x55, 0xeb, 0x2d, 0x71, 0x01, 0x6d, 0xf0, 0x60, 0x28, 0x6e, 0x20, 0x31,
+ 0x3d, 0xe6, 0x6a, 0xde, 0xee, 0x61, 0x21, 0x58, 0xfd, 0x57, 0xa6, 0x85,
+ 0x18, 0x1c, 0x82, 0xd0, 0xb9, 0x11, 0x31, 0xdf, 0xb2, 0xae, 0xb0, 0xed,
+ 0xff, 0x73, 0xda, 0x20,
+};
+static const unsigned char kat2559_addinreseed[] = {0};
+static const unsigned char kat2559_addin0[] = {0};
+static const unsigned char kat2559_addin1[] = {0};
+static const unsigned char kat2559_retbits[] = {
+ 0xa3, 0x43, 0x4d, 0x9e, 0xb1, 0xaf, 0x5e, 0x68, 0xc5, 0xfe, 0x25, 0xa5,
+ 0x36, 0x5f, 0x8d, 0x67, 0x21, 0xbf, 0x61, 0x49, 0x5e, 0x81, 0x74, 0xaa,
+ 0x01, 0x8c, 0xe7, 0x35, 0x4d, 0xae, 0xc8, 0xda, 0xaa, 0x55, 0x91, 0x12,
+ 0xad, 0x6c, 0x8e, 0x6e, 0x40, 0x29, 0x04, 0x04, 0xce, 0xa2, 0x24, 0xe2,
+ 0xf6, 0x60, 0xf1, 0xc2, 0x45, 0xe2, 0x5f, 0x17, 0x5b, 0xdb, 0x18, 0x24,
+ 0x9a, 0xb0, 0xcc, 0x54,
+};
+static const struct drbg_kat_pr_false kat2559_t = {
+ 8, kat2559_entropyin, kat2559_nonce, kat2559_persstr,
+ kat2559_entropyinreseed, kat2559_addinreseed, kat2559_addin0,
+ kat2559_addin1, kat2559_retbits
+};
+static const struct drbg_kat kat2559 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2559_t
+};
+
+static const unsigned char kat2560_entropyin[] = {
+ 0xb8, 0xa8, 0x84, 0xe0, 0x48, 0x94, 0x51, 0x55, 0x10, 0x4e, 0x51, 0xc1,
+ 0xac, 0x9e, 0xd5, 0x24, 0x5f, 0xc0, 0xdd, 0x69, 0x22, 0x08, 0xf3, 0x25,
+ 0xaa, 0xda, 0x39, 0x01, 0x27, 0x54, 0xb4, 0xcb, 0x8a, 0x0e, 0x57, 0xed,
+ 0x0f, 0xae, 0x1f, 0xb9,
+};
+static const unsigned char kat2560_nonce[] = {0};
+static const unsigned char kat2560_persstr[] = {
+ 0xb9, 0x45, 0x4b, 0x50, 0xab, 0xd7, 0x77, 0x57, 0xea, 0x0c, 0xc8, 0x69,
+ 0x2b, 0xc6, 0x4d, 0x3d, 0x8b, 0xf5, 0x56, 0xc9, 0xd6, 0x2f, 0x7a, 0x6f,
+ 0xc0, 0x61, 0x92, 0x2b, 0x4d, 0x15, 0xe5, 0xc3, 0xad, 0xa7, 0x14, 0x0c,
+ 0xe8, 0x56, 0x82, 0x76,
+};
+static const unsigned char kat2560_entropyinreseed[] = {
+ 0x0f, 0x36, 0xab, 0x0c, 0x37, 0x57, 0xe9, 0xe5, 0x3f, 0x07, 0x1b, 0x23,
+ 0xf8, 0x6a, 0x3f, 0x98, 0xaf, 0x4c, 0x81, 0x53, 0x87, 0x0d, 0x3c, 0x7d,
+ 0x3f, 0x34, 0x54, 0x59, 0xc2, 0x88, 0xab, 0x65, 0xc1, 0x68, 0x20, 0xf6,
+ 0x62, 0xa1, 0x57, 0x69,
+};
+static const unsigned char kat2560_addinreseed[] = {0};
+static const unsigned char kat2560_addin0[] = {0};
+static const unsigned char kat2560_addin1[] = {0};
+static const unsigned char kat2560_retbits[] = {
+ 0x96, 0x83, 0xb2, 0x63, 0x52, 0x2d, 0x8d, 0xb7, 0xcb, 0xb0, 0x32, 0xb1,
+ 0x94, 0x1b, 0x9d, 0x2f, 0x91, 0x83, 0xe5, 0x01, 0x21, 0xe8, 0xf7, 0x00,
+ 0x1c, 0x53, 0x76, 0xbb, 0x8b, 0xfc, 0xf7, 0x6b, 0x7d, 0x4e, 0x44, 0x93,
+ 0xa9, 0x79, 0x9d, 0xbf, 0x87, 0xd1, 0x7c, 0x12, 0x7b, 0x77, 0xa3, 0x59,
+ 0x64, 0x58, 0x35, 0x97, 0x89, 0x80, 0xd0, 0xfa, 0xcb, 0xed, 0xfd, 0xfb,
+ 0xa8, 0xc4, 0x18, 0x8e,
+};
+static const struct drbg_kat_pr_false kat2560_t = {
+ 9, kat2560_entropyin, kat2560_nonce, kat2560_persstr,
+ kat2560_entropyinreseed, kat2560_addinreseed, kat2560_addin0,
+ kat2560_addin1, kat2560_retbits
+};
+static const struct drbg_kat kat2560 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2560_t
+};
+
+static const unsigned char kat2561_entropyin[] = {
+ 0x26, 0x93, 0x65, 0xf7, 0xdf, 0x50, 0x8e, 0x36, 0x31, 0x45, 0x53, 0xee,
+ 0x04, 0x35, 0xb2, 0x42, 0x37, 0x23, 0xe5, 0xaf, 0x6a, 0xe2, 0x80, 0x34,
+ 0x10, 0xb0, 0x18, 0x82, 0xed, 0x86, 0xb4, 0xb0, 0x75, 0x17, 0x05, 0xb0,
+ 0x12, 0x98, 0xc7, 0x45,
+};
+static const unsigned char kat2561_nonce[] = {0};
+static const unsigned char kat2561_persstr[] = {
+ 0x33, 0x27, 0x95, 0x85, 0x05, 0x16, 0xf0, 0xa8, 0xfa, 0xfc, 0x2d, 0xb0,
+ 0x6f, 0x26, 0x35, 0x22, 0xa4, 0x74, 0xb2, 0x1e, 0xbb, 0xd5, 0xde, 0xef,
+ 0x68, 0xc7, 0xdb, 0xbe, 0x89, 0x8b, 0xce, 0x1d, 0xd0, 0xbf, 0x9c, 0x58,
+ 0x89, 0x17, 0x96, 0x6d,
+};
+static const unsigned char kat2561_entropyinreseed[] = {
+ 0x18, 0x85, 0x46, 0x4a, 0xba, 0x81, 0xf8, 0xb6, 0xa0, 0x1d, 0x71, 0x15,
+ 0x52, 0x71, 0xad, 0xcd, 0x2c, 0x0b, 0x30, 0xa6, 0x33, 0x4d, 0x1d, 0x0c,
+ 0xd7, 0x36, 0x7c, 0xd1, 0xfd, 0x14, 0x29, 0x28, 0x40, 0xa9, 0xd7, 0x13,
+ 0x24, 0xd0, 0x56, 0x7d,
+};
+static const unsigned char kat2561_addinreseed[] = {0};
+static const unsigned char kat2561_addin0[] = {0};
+static const unsigned char kat2561_addin1[] = {0};
+static const unsigned char kat2561_retbits[] = {
+ 0xb3, 0x87, 0x97, 0x50, 0xb4, 0x88, 0x16, 0xbd, 0x71, 0xbf, 0x8d, 0x31,
+ 0x21, 0xfb, 0x97, 0x78, 0x58, 0xef, 0x81, 0xf2, 0xa9, 0x15, 0xfe, 0x09,
+ 0x28, 0x4d, 0x89, 0xe9, 0x33, 0x2c, 0xe4, 0x37, 0x4d, 0x5b, 0xf6, 0x52,
+ 0x9c, 0x9f, 0xf8, 0xb2, 0x93, 0xb2, 0x4e, 0x67, 0xed, 0x5e, 0x47, 0x92,
+ 0x34, 0xdb, 0xad, 0x73, 0x77, 0x89, 0xed, 0x3d, 0xfd, 0xed, 0x64, 0x1b,
+ 0xe6, 0x4c, 0x0f, 0xe7,
+};
+static const struct drbg_kat_pr_false kat2561_t = {
+ 10, kat2561_entropyin, kat2561_nonce, kat2561_persstr,
+ kat2561_entropyinreseed, kat2561_addinreseed, kat2561_addin0,
+ kat2561_addin1, kat2561_retbits
+};
+static const struct drbg_kat kat2561 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2561_t
+};
+
+static const unsigned char kat2562_entropyin[] = {
+ 0x93, 0x77, 0xfe, 0xbe, 0x57, 0x7b, 0xf5, 0x63, 0x01, 0x2f, 0x09, 0x68,
+ 0xae, 0x6d, 0x85, 0x56, 0xf5, 0x04, 0xb5, 0x6d, 0x29, 0xb0, 0xad, 0x1e,
+ 0x78, 0x5f, 0x82, 0xeb, 0x6a, 0x78, 0x84, 0x08, 0xd1, 0xc4, 0x69, 0xac,
+ 0xbe, 0x57, 0xc5, 0xe1,
+};
+static const unsigned char kat2562_nonce[] = {0};
+static const unsigned char kat2562_persstr[] = {
+ 0x98, 0xeb, 0x22, 0x15, 0xfd, 0x93, 0x1f, 0xea, 0x2c, 0xdf, 0x97, 0xa7,
+ 0xdc, 0xfd, 0x08, 0x5c, 0x01, 0x23, 0xea, 0x75, 0x85, 0xa9, 0x1c, 0x70,
+ 0x4e, 0x2f, 0x44, 0x04, 0xd8, 0x96, 0x77, 0x4e, 0x7a, 0xcd, 0xe9, 0x55,
+ 0x8e, 0x26, 0x44, 0x20,
+};
+static const unsigned char kat2562_entropyinreseed[] = {
+ 0x0b, 0xda, 0x0c, 0x7b, 0xb2, 0x3a, 0x45, 0xb1, 0x06, 0x6d, 0x83, 0x81,
+ 0xee, 0x56, 0xa6, 0x9b, 0xe9, 0x96, 0x75, 0x6c, 0x18, 0x46, 0x98, 0x6c,
+ 0x4c, 0x25, 0xcc, 0xf0, 0x90, 0x8a, 0xda, 0xcc, 0xfe, 0xf6, 0xe3, 0xa5,
+ 0x02, 0xc0, 0xb8, 0x67,
+};
+static const unsigned char kat2562_addinreseed[] = {0};
+static const unsigned char kat2562_addin0[] = {0};
+static const unsigned char kat2562_addin1[] = {0};
+static const unsigned char kat2562_retbits[] = {
+ 0xca, 0xe3, 0x9e, 0x0f, 0x3e, 0xca, 0x42, 0x10, 0x19, 0x60, 0xb3, 0x6c,
+ 0x20, 0x8b, 0xf4, 0x22, 0xc0, 0xf3, 0xb4, 0xe8, 0x35, 0x19, 0xe8, 0x8c,
+ 0x10, 0x2c, 0x70, 0x5e, 0x28, 0xa6, 0x60, 0xff, 0x8f, 0x86, 0x1b, 0x12,
+ 0xff, 0xdc, 0x9a, 0xe5, 0x1e, 0xe5, 0x6e, 0xb9, 0x28, 0x7e, 0xa2, 0xa3,
+ 0x0e, 0x35, 0x15, 0xd7, 0xf2, 0x11, 0x92, 0x18, 0xa7, 0x99, 0x5f, 0x6b,
+ 0x67, 0x0d, 0x31, 0xf2,
+};
+static const struct drbg_kat_pr_false kat2562_t = {
+ 11, kat2562_entropyin, kat2562_nonce, kat2562_persstr,
+ kat2562_entropyinreseed, kat2562_addinreseed, kat2562_addin0,
+ kat2562_addin1, kat2562_retbits
+};
+static const struct drbg_kat kat2562 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2562_t
+};
+
+static const unsigned char kat2563_entropyin[] = {
+ 0x45, 0x32, 0xbd, 0x9e, 0xd2, 0x8c, 0xf9, 0x91, 0xf0, 0x74, 0x21, 0x37,
+ 0xd9, 0xe3, 0x6a, 0x61, 0x82, 0x35, 0xe6, 0x12, 0xc6, 0x98, 0xf0, 0x3a,
+ 0xff, 0x47, 0x78, 0xb9, 0x17, 0xd1, 0x1a, 0x3d, 0x61, 0xc2, 0x98, 0x14,
+ 0x25, 0x27, 0x9b, 0xb8,
+};
+static const unsigned char kat2563_nonce[] = {0};
+static const unsigned char kat2563_persstr[] = {
+ 0xd6, 0x8a, 0x3d, 0x3a, 0x5b, 0x4b, 0x09, 0xf6, 0xaf, 0xac, 0xcf, 0xc7,
+ 0xda, 0x34, 0x85, 0x92, 0x9a, 0x60, 0xb7, 0xb2, 0xc1, 0x0b, 0xa0, 0x4d,
+ 0x7b, 0x82, 0xab, 0xbc, 0x56, 0xa8, 0xfe, 0x88, 0x74, 0xd7, 0x87, 0x4d,
+ 0xca, 0x35, 0xdb, 0x30,
+};
+static const unsigned char kat2563_entropyinreseed[] = {
+ 0x91, 0xdc, 0x2e, 0x07, 0x9b, 0xc1, 0x26, 0x10, 0x67, 0x04, 0x95, 0x72,
+ 0x51, 0x99, 0xbe, 0xf1, 0x2f, 0xff, 0x85, 0xa2, 0x68, 0x86, 0x11, 0x0d,
+ 0x11, 0x92, 0x5b, 0xc9, 0xf1, 0x4e, 0x2c, 0x08, 0x19, 0x18, 0x17, 0x33,
+ 0x7a, 0x7b, 0xd6, 0x47,
+};
+static const unsigned char kat2563_addinreseed[] = {0};
+static const unsigned char kat2563_addin0[] = {0};
+static const unsigned char kat2563_addin1[] = {0};
+static const unsigned char kat2563_retbits[] = {
+ 0xe7, 0x9f, 0x16, 0xb3, 0x20, 0x13, 0xd7, 0x43, 0x3c, 0xcb, 0x41, 0xdc,
+ 0xde, 0x09, 0x56, 0xc6, 0xe7, 0xfd, 0x85, 0x25, 0xc7, 0x46, 0x6c, 0x6d,
+ 0xfe, 0x8c, 0x28, 0xa1, 0x6b, 0xe0, 0x70, 0x00, 0x6c, 0x98, 0xcf, 0x0c,
+ 0x07, 0xe8, 0x21, 0x1a, 0x5d, 0xaa, 0xdc, 0xf8, 0xba, 0x5c, 0x36, 0xcb,
+ 0x14, 0x75, 0x3f, 0x34, 0x4f, 0x34, 0x67, 0x56, 0x4d, 0x64, 0xe5, 0x0b,
+ 0x7f, 0xe6, 0xb7, 0xbb,
+};
+static const struct drbg_kat_pr_false kat2563_t = {
+ 12, kat2563_entropyin, kat2563_nonce, kat2563_persstr,
+ kat2563_entropyinreseed, kat2563_addinreseed, kat2563_addin0,
+ kat2563_addin1, kat2563_retbits
+};
+static const struct drbg_kat kat2563 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2563_t
+};
+
+static const unsigned char kat2564_entropyin[] = {
+ 0x38, 0xf6, 0x89, 0xcb, 0xa9, 0x01, 0x7b, 0xe3, 0x72, 0x6a, 0xcc, 0x5a,
+ 0xb4, 0xa1, 0x49, 0xa8, 0x56, 0x2b, 0x44, 0xdf, 0xb7, 0x44, 0xeb, 0xd8,
+ 0x03, 0xc1, 0xf9, 0x97, 0x2a, 0xf7, 0x4e, 0x42, 0x1e, 0x5a, 0x7d, 0x26,
+ 0x8a, 0x2f, 0x58, 0xfb,
+};
+static const unsigned char kat2564_nonce[] = {0};
+static const unsigned char kat2564_persstr[] = {
+ 0x6b, 0x43, 0x3b, 0x63, 0xaf, 0xe6, 0x29, 0x4f, 0x63, 0x40, 0x26, 0x20,
+ 0xeb, 0xd8, 0x6d, 0x35, 0x09, 0xba, 0x6c, 0x62, 0xd6, 0xab, 0x9d, 0x84,
+ 0x4f, 0x59, 0x90, 0x6d, 0x19, 0xd6, 0x24, 0xd9, 0x12, 0xc1, 0x1f, 0x9b,
+ 0x0a, 0x5c, 0x9f, 0xae,
+};
+static const unsigned char kat2564_entropyinreseed[] = {
+ 0x2c, 0xa0, 0xb3, 0x02, 0xb2, 0xe2, 0x91, 0xb6, 0xa3, 0xfb, 0x6d, 0x78,
+ 0xd5, 0xb9, 0x58, 0x13, 0xed, 0x25, 0x49, 0x05, 0x25, 0x3a, 0x99, 0xf9,
+ 0xfd, 0xa2, 0x56, 0x15, 0x7a, 0xbb, 0x68, 0x47, 0x5c, 0xf4, 0x40, 0xd8,
+ 0x0f, 0xb8, 0xfb, 0x2b,
+};
+static const unsigned char kat2564_addinreseed[] = {0};
+static const unsigned char kat2564_addin0[] = {0};
+static const unsigned char kat2564_addin1[] = {0};
+static const unsigned char kat2564_retbits[] = {
+ 0xac, 0x6f, 0x9e, 0xb6, 0x9b, 0xaa, 0xe9, 0xd3, 0x31, 0xcb, 0x8a, 0x7c,
+ 0xa7, 0x6f, 0x88, 0x9e, 0xd3, 0x37, 0xd6, 0xf3, 0xdb, 0xb5, 0xe3, 0xb9,
+ 0xe4, 0xb6, 0x84, 0x62, 0x3d, 0xf6, 0xc7, 0x97, 0xc5, 0xb5, 0xbc, 0x2a,
+ 0x14, 0x17, 0xa3, 0x75, 0xef, 0xdc, 0xfb, 0x02, 0x26, 0xf5, 0x51, 0xfd,
+ 0x93, 0x01, 0xf0, 0xaa, 0x54, 0xf0, 0xd4, 0x3c, 0x92, 0x4b, 0xa2, 0xc8,
+ 0xdc, 0x2f, 0x09, 0x5d,
+};
+static const struct drbg_kat_pr_false kat2564_t = {
+ 13, kat2564_entropyin, kat2564_nonce, kat2564_persstr,
+ kat2564_entropyinreseed, kat2564_addinreseed, kat2564_addin0,
+ kat2564_addin1, kat2564_retbits
+};
+static const struct drbg_kat kat2564 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2564_t
+};
+
+static const unsigned char kat2565_entropyin[] = {
+ 0x8f, 0x00, 0x1f, 0x32, 0x77, 0xb7, 0x15, 0x5d, 0x21, 0xe6, 0xab, 0x80,
+ 0x38, 0xb5, 0xce, 0xd7, 0x62, 0x73, 0x7e, 0x2d, 0xe8, 0x4d, 0xcf, 0x07,
+ 0xa8, 0xf4, 0xbb, 0xe0, 0xf0, 0x28, 0x14, 0xe8, 0xa6, 0x08, 0x43, 0xa1,
+ 0x43, 0xee, 0xef, 0x1d,
+};
+static const unsigned char kat2565_nonce[] = {0};
+static const unsigned char kat2565_persstr[] = {
+ 0xd8, 0x11, 0xd4, 0x76, 0x96, 0x0f, 0x2d, 0x50, 0x32, 0xcc, 0x3f, 0xb7,
+ 0x00, 0x2b, 0xe1, 0x55, 0xc6, 0x31, 0x4e, 0x03, 0xae, 0x77, 0x88, 0xdc,
+ 0x88, 0x6d, 0x0e, 0x18, 0xc7, 0x6e, 0xe4, 0xff, 0xf3, 0x00, 0x89, 0x82,
+ 0xce, 0xa4, 0x3e, 0xa2,
+};
+static const unsigned char kat2565_entropyinreseed[] = {
+ 0x8f, 0xad, 0x4a, 0xec, 0x11, 0x50, 0x7a, 0x39, 0x4b, 0xe8, 0xbf, 0x8c,
+ 0xf2, 0x4c, 0x4f, 0x24, 0x42, 0xc4, 0x59, 0x48, 0xb5, 0xdd, 0xf2, 0x8e,
+ 0xbe, 0x33, 0xf9, 0x64, 0x3a, 0xe5, 0xd2, 0x13, 0x37, 0xec, 0x8d, 0xed,
+ 0xc9, 0xb2, 0x3e, 0x1a,
+};
+static const unsigned char kat2565_addinreseed[] = {0};
+static const unsigned char kat2565_addin0[] = {0};
+static const unsigned char kat2565_addin1[] = {0};
+static const unsigned char kat2565_retbits[] = {
+ 0x6d, 0x35, 0x3a, 0x66, 0xb4, 0xcd, 0x16, 0xff, 0xc5, 0x46, 0x9b, 0x1c,
+ 0x16, 0x95, 0x1b, 0xa0, 0x0b, 0x07, 0x5d, 0xb4, 0xf1, 0x28, 0x2d, 0xf1,
+ 0xcb, 0xa7, 0x26, 0x7b, 0x9e, 0x19, 0x1e, 0x21, 0xf6, 0x04, 0xdd, 0xa9,
+ 0xeb, 0x48, 0x92, 0x1f, 0x92, 0x7f, 0x1d, 0x7b, 0x45, 0x48, 0xd5, 0xbc,
+ 0xc5, 0x80, 0x82, 0x9c, 0x42, 0x2e, 0xf0, 0xd5, 0xb2, 0x12, 0x7d, 0x5e,
+ 0xff, 0x4b, 0x02, 0x0c,
+};
+static const struct drbg_kat_pr_false kat2565_t = {
+ 14, kat2565_entropyin, kat2565_nonce, kat2565_persstr,
+ kat2565_entropyinreseed, kat2565_addinreseed, kat2565_addin0,
+ kat2565_addin1, kat2565_retbits
+};
+static const struct drbg_kat kat2565 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2565_t
+};
+
+static const unsigned char kat2566_entropyin[] = {
+ 0xff, 0x9e, 0x27, 0x5e, 0xd0, 0xed, 0x21, 0xe8, 0xd9, 0x08, 0x7a, 0x2a,
+ 0xe0, 0xab, 0x2b, 0x26, 0xfd, 0x6e, 0x3e, 0x22, 0xc3, 0x66, 0x1d, 0x16,
+ 0xdd, 0xcb, 0xfd, 0x10, 0x96, 0x09, 0x92, 0x0e, 0xd2, 0x49, 0x31, 0xb8,
+ 0xe4, 0xc9, 0x13, 0xd9,
+};
+static const unsigned char kat2566_nonce[] = {0};
+static const unsigned char kat2566_persstr[] = {
+ 0xc2, 0xaf, 0x00, 0xb6, 0xfd, 0xea, 0xe0, 0x15, 0x39, 0x19, 0x54, 0x96,
+ 0x30, 0x75, 0xfb, 0xde, 0xdc, 0x67, 0xf6, 0x74, 0x98, 0xdc, 0xf1, 0xe2,
+ 0x17, 0x32, 0x5c, 0xd0, 0x2d, 0x6c, 0xd9, 0x42, 0x35, 0x06, 0x7a, 0xaf,
+ 0xef, 0xbd, 0x65, 0xfd,
+};
+static const unsigned char kat2566_entropyinreseed[] = {
+ 0x58, 0xbb, 0x40, 0xbd, 0xe2, 0xd0, 0xb5, 0x46, 0x48, 0xb0, 0xe6, 0x49,
+ 0x73, 0xa8, 0x53, 0x1f, 0x64, 0x3e, 0xd1, 0x71, 0xaf, 0x3a, 0xb2, 0x65,
+ 0xd3, 0x82, 0xfe, 0x52, 0x77, 0xc6, 0xa3, 0x3d, 0x33, 0x90, 0xbe, 0x15,
+ 0x27, 0x26, 0x36, 0xf6,
+};
+static const unsigned char kat2566_addinreseed[] = {
+ 0x46, 0x1b, 0xdf, 0xba, 0x36, 0x3d, 0x12, 0x75, 0xad, 0xe5, 0x9e, 0x9b,
+ 0x9b, 0x73, 0xd4, 0x5a, 0x4d, 0x9a, 0xbf, 0xad, 0xcc, 0x73, 0x31, 0x06,
+ 0xbc, 0x2f, 0xa4, 0x69, 0x74, 0xc4, 0x02, 0x47, 0x65, 0xcd, 0x40, 0xdf,
+ 0xf1, 0xff, 0x94, 0x91,
+};
+static const unsigned char kat2566_addin0[] = {
+ 0x38, 0x9c, 0x8b, 0x0d, 0x7a, 0x43, 0x45, 0xcb, 0xfa, 0x60, 0x23, 0x63,
+ 0xbe, 0x3d, 0x3e, 0x31, 0x06, 0xf4, 0xe5, 0xfd, 0x4b, 0xd7, 0xbd, 0x8b,
+ 0xd9, 0xf9, 0x12, 0x1d, 0x12, 0xe5, 0x3a, 0x09, 0xab, 0x4a, 0x00, 0xc5,
+ 0x45, 0xfa, 0x18, 0xa4,
+};
+static const unsigned char kat2566_addin1[] = {
+ 0xe0, 0x68, 0x2c, 0xcd, 0xf0, 0xda, 0x0f, 0x4b, 0x9c, 0x03, 0x9e, 0x6e,
+ 0xd4, 0xff, 0x27, 0x8f, 0xd1, 0xa2, 0x9a, 0xb8, 0x0a, 0x32, 0xb2, 0x07,
+ 0x2a, 0x02, 0x81, 0xf3, 0xe9, 0xb5, 0x28, 0x29, 0x3a, 0xdf, 0xfd, 0x60,
+ 0x64, 0x67, 0xd2, 0x14,
+};
+static const unsigned char kat2566_retbits[] = {
+ 0x70, 0x1b, 0x1b, 0x9a, 0x14, 0x04, 0x28, 0x37, 0x96, 0x0d, 0x4f, 0x42,
+ 0x8a, 0x56, 0x58, 0x61, 0xc8, 0xf7, 0x20, 0xdd, 0xce, 0x6a, 0x53, 0xab,
+ 0x82, 0x59, 0xe3, 0xdc, 0xba, 0xc4, 0x59, 0x8b, 0xfd, 0xc0, 0xa5, 0xad,
+ 0x95, 0x50, 0xde, 0x31, 0x0b, 0x10, 0xfa, 0x5c, 0x39, 0xfe, 0xef, 0x74,
+ 0xe9, 0x57, 0x4e, 0x20, 0x80, 0x47, 0x7b, 0x5b, 0x82, 0xb9, 0xee, 0xf0,
+ 0xbb, 0xd5, 0xc3, 0x4d,
+};
+static const struct drbg_kat_pr_false kat2566_t = {
+ 0, kat2566_entropyin, kat2566_nonce, kat2566_persstr,
+ kat2566_entropyinreseed, kat2566_addinreseed, kat2566_addin0,
+ kat2566_addin1, kat2566_retbits
+};
+static const struct drbg_kat kat2566 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2566_t
+};
+
+static const unsigned char kat2567_entropyin[] = {
+ 0x0a, 0xe8, 0x3c, 0x3e, 0x1f, 0xc9, 0x74, 0x71, 0x8b, 0x83, 0xa1, 0xa8,
+ 0x49, 0x37, 0x1f, 0x4f, 0x98, 0x3c, 0xdb, 0xb8, 0x7f, 0xec, 0x82, 0x2a,
+ 0xde, 0x85, 0x6f, 0xb1, 0x27, 0xba, 0x91, 0xe8, 0xde, 0x71, 0xd1, 0xd9,
+ 0x57, 0x86, 0x19, 0xf9,
+};
+static const unsigned char kat2567_nonce[] = {0};
+static const unsigned char kat2567_persstr[] = {
+ 0x31, 0x55, 0x5b, 0x81, 0x5b, 0x91, 0xe2, 0x9e, 0xb3, 0x0b, 0x9c, 0x72,
+ 0x75, 0xdf, 0x4f, 0x14, 0xd2, 0xe3, 0x1c, 0x5e, 0x0a, 0x39, 0x4d, 0x44,
+ 0x33, 0xb3, 0xa4, 0x48, 0x34, 0xdb, 0x27, 0x35, 0xc6, 0xe1, 0x59, 0x01,
+ 0xf2, 0xa2, 0x5e, 0x9f,
+};
+static const unsigned char kat2567_entropyinreseed[] = {
+ 0x86, 0x5a, 0xda, 0xc3, 0xce, 0x8e, 0xd5, 0x6b, 0xfe, 0x19, 0x02, 0xc6,
+ 0xa7, 0x75, 0x2e, 0x3b, 0xf0, 0xb6, 0x37, 0x2b, 0x9c, 0xdb, 0x31, 0xf7,
+ 0xe2, 0x23, 0x67, 0x7b, 0xf8, 0x78, 0xa1, 0x71, 0xb7, 0x17, 0x1c, 0x66,
+ 0x6c, 0x28, 0xcb, 0x77,
+};
+static const unsigned char kat2567_addinreseed[] = {
+ 0xb4, 0x4f, 0x2a, 0x10, 0xdd, 0x22, 0x33, 0x5a, 0x48, 0xf8, 0x07, 0x75,
+ 0xbe, 0x2f, 0x5e, 0x71, 0x0a, 0x92, 0x12, 0x8b, 0x07, 0xd8, 0x44, 0xb0,
+ 0xf3, 0xc9, 0xf7, 0x80, 0xaf, 0xe4, 0x0d, 0x88, 0x57, 0xce, 0x35, 0xee,
+ 0xb7, 0x0f, 0x7d, 0x5a,
+};
+static const unsigned char kat2567_addin0[] = {
+ 0x06, 0x44, 0x33, 0xef, 0xd9, 0xe7, 0x9e, 0xb0, 0x6c, 0xa4, 0x98, 0xa9,
+ 0xff, 0x36, 0x35, 0xb0, 0x1e, 0x27, 0x79, 0x7e, 0x16, 0xcf, 0x55, 0x94,
+ 0xd5, 0x5b, 0x90, 0xd5, 0x8a, 0x2b, 0x2c, 0x58, 0x1c, 0xd8, 0x4c, 0x2d,
+ 0x93, 0xc5, 0xf6, 0xa9,
+};
+static const unsigned char kat2567_addin1[] = {
+ 0x66, 0x30, 0x4e, 0xc5, 0x79, 0x76, 0x35, 0x6b, 0x51, 0xb9, 0x27, 0xf9,
+ 0x29, 0xab, 0xfa, 0xcf, 0x80, 0x1b, 0x52, 0x59, 0xd6, 0xaa, 0xd2, 0xc6,
+ 0x98, 0xcc, 0x53, 0x18, 0xf0, 0x5f, 0xaf, 0x7d, 0xa5, 0x28, 0xea, 0xde,
+ 0x5e, 0x36, 0xe8, 0x59,
+};
+static const unsigned char kat2567_retbits[] = {
+ 0x66, 0x42, 0xb9, 0x5b, 0x92, 0xb4, 0xb7, 0x58, 0xac, 0x06, 0x9d, 0x5e,
+ 0x0a, 0xfc, 0xd2, 0xa2, 0x0a, 0x36, 0x59, 0x63, 0xf1, 0xb7, 0xc4, 0xcd,
+ 0x54, 0xa2, 0xa3, 0x67, 0xe9, 0x81, 0xa2, 0xeb, 0x32, 0x5b, 0x47, 0x1a,
+ 0xd8, 0x35, 0x85, 0xe1, 0x2a, 0xa5, 0x16, 0x6d, 0xb1, 0xf7, 0x2e, 0x76,
+ 0xe0, 0xdb, 0x26, 0xbc, 0x30, 0x58, 0x0e, 0xd3, 0x4a, 0x2d, 0xaa, 0xf6,
+ 0xb0, 0x84, 0xb7, 0x83,
+};
+static const struct drbg_kat_pr_false kat2567_t = {
+ 1, kat2567_entropyin, kat2567_nonce, kat2567_persstr,
+ kat2567_entropyinreseed, kat2567_addinreseed, kat2567_addin0,
+ kat2567_addin1, kat2567_retbits
+};
+static const struct drbg_kat kat2567 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2567_t
+};
+
+static const unsigned char kat2568_entropyin[] = {
+ 0xb1, 0xa8, 0xbb, 0x8d, 0x2d, 0xcf, 0xdf, 0xd8, 0x1a, 0xc5, 0x4d, 0x71,
+ 0x44, 0x89, 0x1c, 0x37, 0x73, 0x47, 0xdc, 0xa9, 0x64, 0x1e, 0xff, 0x74,
+ 0x86, 0x99, 0xf8, 0x06, 0xdc, 0x78, 0xe7, 0x5b, 0xb7, 0xc9, 0xcf, 0xfd,
+ 0x38, 0xaf, 0xa8, 0xd2,
+};
+static const unsigned char kat2568_nonce[] = {0};
+static const unsigned char kat2568_persstr[] = {
+ 0x82, 0xff, 0xbd, 0x38, 0xfb, 0x7e, 0x75, 0x62, 0x0d, 0x75, 0x31, 0x02,
+ 0x6b, 0xcf, 0xee, 0xde, 0x58, 0xf2, 0xa7, 0xc7, 0x31, 0x6c, 0xd3, 0xad,
+ 0xcf, 0xd5, 0x76, 0xe5, 0x3e, 0x26, 0x7a, 0x79, 0xe3, 0x87, 0xed, 0x31,
+ 0x10, 0x1a, 0xb8, 0x49,
+};
+static const unsigned char kat2568_entropyinreseed[] = {
+ 0xac, 0x91, 0x39, 0x95, 0x0d, 0x56, 0x4e, 0x0c, 0x4e, 0xb3, 0x3e, 0x21,
+ 0x31, 0x5a, 0x4c, 0xf5, 0xa2, 0x67, 0x53, 0x46, 0x37, 0x11, 0xe9, 0xbd,
+ 0x41, 0x24, 0x4d, 0xfa, 0x90, 0xb0, 0x9d, 0x6b, 0x57, 0x54, 0x93, 0xa3,
+ 0x29, 0xc6, 0xa5, 0x4c,
+};
+static const unsigned char kat2568_addinreseed[] = {
+ 0x12, 0x16, 0x7b, 0x09, 0x9d, 0xfa, 0xa3, 0x57, 0xac, 0xf4, 0x9c, 0x76,
+ 0x09, 0xeb, 0xee, 0xe2, 0xc4, 0xea, 0x25, 0x02, 0x0d, 0xc4, 0x8b, 0x06,
+ 0xce, 0x99, 0x47, 0x40, 0x77, 0x8e, 0xa8, 0xff, 0xff, 0x1f, 0xc7, 0x30,
+ 0xae, 0x92, 0x95, 0x20,
+};
+static const unsigned char kat2568_addin0[] = {
+ 0x87, 0xe3, 0x06, 0x50, 0x67, 0x60, 0xf2, 0x57, 0x1e, 0x07, 0xf0, 0x49,
+ 0x74, 0x75, 0x86, 0xdd, 0x91, 0x3b, 0x36, 0x56, 0x12, 0x1d, 0xf1, 0xf5,
+ 0xae, 0x2e, 0xe2, 0x88, 0x85, 0xb8, 0xd6, 0x5d, 0xb4, 0xf1, 0x8e, 0x9e,
+ 0x8a, 0x5b, 0xa8, 0x71,
+};
+static const unsigned char kat2568_addin1[] = {
+ 0xa3, 0xb3, 0x00, 0x69, 0x6d, 0x04, 0x85, 0x3e, 0x83, 0x39, 0xed, 0x0e,
+ 0xd0, 0x5b, 0xbe, 0x23, 0xd0, 0x44, 0x3b, 0xf9, 0x63, 0x91, 0x5b, 0x62,
+ 0x23, 0xf2, 0xa5, 0x0b, 0x0e, 0x79, 0xe6, 0xb0, 0x18, 0xa9, 0x4b, 0x9b,
+ 0x51, 0x25, 0x83, 0x1c,
+};
+static const unsigned char kat2568_retbits[] = {
+ 0x9f, 0x3e, 0x34, 0x9e, 0xc7, 0x94, 0xfa, 0xfa, 0xad, 0xcb, 0x09, 0xe3,
+ 0x72, 0xfd, 0x39, 0x94, 0x8a, 0x85, 0xaa, 0x7e, 0xb5, 0x81, 0x4f, 0x8c,
+ 0xf4, 0xcf, 0xa2, 0xdf, 0x59, 0xea, 0x2f, 0x69, 0x8a, 0xa9, 0x9d, 0x8f,
+ 0xb2, 0xcd, 0x1c, 0xef, 0xc4, 0xb8, 0x9d, 0x4d, 0x61, 0x02, 0xb2, 0x87,
+ 0x41, 0x3b, 0x6a, 0x69, 0xd8, 0x1e, 0x13, 0xe4, 0x88, 0x78, 0xda, 0x82,
+ 0x90, 0x82, 0xfe, 0xf2,
+};
+static const struct drbg_kat_pr_false kat2568_t = {
+ 2, kat2568_entropyin, kat2568_nonce, kat2568_persstr,
+ kat2568_entropyinreseed, kat2568_addinreseed, kat2568_addin0,
+ kat2568_addin1, kat2568_retbits
+};
+static const struct drbg_kat kat2568 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2568_t
+};
+
+static const unsigned char kat2569_entropyin[] = {
+ 0x5c, 0x49, 0xaf, 0xdf, 0x8b, 0xf5, 0x96, 0x66, 0x9e, 0x8a, 0xed, 0x62,
+ 0x1b, 0xea, 0x0f, 0xd3, 0x78, 0x4b, 0x67, 0x0c, 0xa4, 0x2f, 0x85, 0x0d,
+ 0x41, 0xa2, 0x29, 0xac, 0x9f, 0x77, 0x24, 0x25, 0x51, 0xd6, 0xb0, 0xe0,
+ 0x67, 0xa1, 0xd4, 0x60,
+};
+static const unsigned char kat2569_nonce[] = {0};
+static const unsigned char kat2569_persstr[] = {
+ 0x48, 0x1b, 0xf6, 0xc7, 0xb6, 0x69, 0x07, 0xba, 0x48, 0x5c, 0x7b, 0xba,
+ 0x4d, 0x66, 0x8a, 0x0d, 0xea, 0xea, 0x5d, 0xdb, 0xb8, 0x41, 0x6b, 0xc5,
+ 0xa8, 0x53, 0xd7, 0xa5, 0xdb, 0x41, 0xd4, 0x8a, 0x94, 0xc6, 0x35, 0xb1,
+ 0xb2, 0xe0, 0x08, 0x4e,
+};
+static const unsigned char kat2569_entropyinreseed[] = {
+ 0x2b, 0x7c, 0xec, 0x04, 0x6f, 0x5e, 0x14, 0xdb, 0xb1, 0x59, 0x89, 0x91,
+ 0x02, 0xfc, 0x9b, 0x53, 0x86, 0x11, 0x56, 0xa2, 0x52, 0x8a, 0x89, 0x1f,
+ 0xa2, 0x9b, 0x6e, 0x82, 0x4b, 0x5f, 0x54, 0x03, 0xb2, 0x5c, 0x9f, 0x10,
+ 0x3a, 0x58, 0x4c, 0x91,
+};
+static const unsigned char kat2569_addinreseed[] = {
+ 0xd3, 0x10, 0x33, 0x5b, 0x06, 0x55, 0xac, 0xf8, 0x5d, 0x3f, 0x0d, 0x75,
+ 0xb1, 0x00, 0x52, 0x73, 0x9f, 0xac, 0x96, 0x6a, 0xb3, 0xe7, 0xbb, 0xd0,
+ 0x01, 0x54, 0xcf, 0xa1, 0x45, 0xc4, 0x5d, 0xe0, 0xa7, 0x4e, 0x29, 0x9a,
+ 0x2d, 0xf7, 0xd8, 0x52,
+};
+static const unsigned char kat2569_addin0[] = {
+ 0x3f, 0x2f, 0x29, 0x25, 0xeb, 0xfc, 0x44, 0x7e, 0x7a, 0x29, 0xf8, 0x42,
+ 0xb0, 0x9b, 0x02, 0x2e, 0xa6, 0xa7, 0xce, 0x7d, 0x69, 0xa8, 0x23, 0x18,
+ 0xfa, 0x5a, 0xa1, 0xbc, 0x87, 0xe6, 0x08, 0x7d, 0x15, 0xa0, 0xbc, 0x22,
+ 0x6f, 0xee, 0x32, 0x8c,
+};
+static const unsigned char kat2569_addin1[] = {
+ 0xc8, 0x4b, 0xe9, 0x10, 0x08, 0xf1, 0x5b, 0x18, 0x30, 0x87, 0x8a, 0xc7,
+ 0xbe, 0xe7, 0x85, 0xb0, 0x4d, 0x38, 0xc1, 0x21, 0x1b, 0x6e, 0xcd, 0x72,
+ 0x3a, 0xc1, 0x3b, 0xd2, 0xaf, 0xee, 0x49, 0x67, 0x23, 0xe4, 0x57, 0x8c,
+ 0x2c, 0xf2, 0x70, 0xd4,
+};
+static const unsigned char kat2569_retbits[] = {
+ 0x6a, 0xc8, 0x8e, 0xe2, 0x8b, 0x60, 0xec, 0xef, 0xc8, 0x87, 0xc9, 0xdc,
+ 0x49, 0x79, 0x99, 0x3a, 0x21, 0x09, 0xb8, 0xec, 0xcc, 0x37, 0x09, 0xaf,
+ 0x70, 0xb9, 0x4f, 0xd2, 0x47, 0x2f, 0x7e, 0x4c, 0x17, 0x29, 0xd8, 0xbe,
+ 0x4a, 0x46, 0xaa, 0x23, 0x60, 0x84, 0x0a, 0xda, 0xbd, 0xce, 0xda, 0x31,
+ 0x25, 0x19, 0x03, 0xc7, 0x38, 0x9d, 0x89, 0x43, 0x7a, 0xfd, 0x07, 0xdf,
+ 0x2c, 0xed, 0xb7, 0x09,
+};
+static const struct drbg_kat_pr_false kat2569_t = {
+ 3, kat2569_entropyin, kat2569_nonce, kat2569_persstr,
+ kat2569_entropyinreseed, kat2569_addinreseed, kat2569_addin0,
+ kat2569_addin1, kat2569_retbits
+};
+static const struct drbg_kat kat2569 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2569_t
+};
+
+static const unsigned char kat2570_entropyin[] = {
+ 0xc8, 0xf2, 0xec, 0x6b, 0x16, 0xb4, 0xb2, 0x7c, 0xad, 0x06, 0x7c, 0x22,
+ 0xa4, 0xbd, 0xc8, 0xd9, 0x7a, 0xae, 0xba, 0xf4, 0x19, 0x91, 0x36, 0xc0,
+ 0x7e, 0x43, 0x39, 0x26, 0x82, 0x7f, 0x66, 0x84, 0x2b, 0xe0, 0xbe, 0x1b,
+ 0x4b, 0xbb, 0xf4, 0xb2,
+};
+static const unsigned char kat2570_nonce[] = {0};
+static const unsigned char kat2570_persstr[] = {
+ 0x61, 0x00, 0x39, 0xfb, 0x01, 0x00, 0xc1, 0x70, 0xc6, 0x28, 0x93, 0xeb,
+ 0x6e, 0xdb, 0x0b, 0xc2, 0xd6, 0xc3, 0xdf, 0xe7, 0x88, 0xd9, 0x98, 0x93,
+ 0x8e, 0x46, 0x26, 0x41, 0xe0, 0xe2, 0x3c, 0x07, 0x68, 0xc7, 0x4f, 0xc5,
+ 0xab, 0xe1, 0x3c, 0x16,
+};
+static const unsigned char kat2570_entropyinreseed[] = {
+ 0x3c, 0x39, 0x9a, 0xa0, 0x6c, 0xee, 0x38, 0xb6, 0x5d, 0x83, 0x49, 0xa1,
+ 0x82, 0x22, 0x7a, 0x57, 0xa0, 0xc2, 0x99, 0xc7, 0x4a, 0x63, 0x5f, 0xe0,
+ 0xad, 0xda, 0x89, 0x92, 0x90, 0xe5, 0xba, 0x0c, 0xc3, 0x3c, 0x59, 0x69,
+ 0x6e, 0xc4, 0xc8, 0xe2,
+};
+static const unsigned char kat2570_addinreseed[] = {
+ 0x13, 0xa3, 0x13, 0x31, 0x8a, 0x44, 0xc7, 0x41, 0x11, 0x79, 0x0a, 0xec,
+ 0x45, 0x40, 0xa3, 0xaa, 0x66, 0xcd, 0xcc, 0xd1, 0xb4, 0x91, 0x23, 0x80,
+ 0xdd, 0xb1, 0x67, 0x0c, 0x34, 0x24, 0x35, 0x30, 0x1d, 0x7c, 0xea, 0xcc,
+ 0x24, 0x0a, 0xd9, 0x03,
+};
+static const unsigned char kat2570_addin0[] = {
+ 0x31, 0x87, 0x78, 0x75, 0xf4, 0xb6, 0x71, 0x3c, 0x13, 0x82, 0x39, 0x05,
+ 0x01, 0x2e, 0xe4, 0x09, 0x90, 0x9c, 0xcc, 0x9d, 0xc5, 0x37, 0x51, 0xb8,
+ 0x97, 0x1c, 0x09, 0x3d, 0xca, 0x78, 0xc5, 0x23, 0xdb, 0xaa, 0x61, 0x9e,
+ 0x7a, 0x5d, 0x46, 0xe2,
+};
+static const unsigned char kat2570_addin1[] = {
+ 0x76, 0xb5, 0x1b, 0x2c, 0x5e, 0xe0, 0x3e, 0x8f, 0xba, 0x8e, 0xef, 0x27,
+ 0x61, 0x73, 0xff, 0xc3, 0x54, 0xb1, 0x84, 0x14, 0x43, 0x45, 0x95, 0x99,
+ 0x63, 0xfc, 0x2f, 0x0e, 0xbd, 0xa9, 0x24, 0x6a, 0x8a, 0x1a, 0xfb, 0x7a,
+ 0x45, 0x73, 0xe3, 0xca,
+};
+static const unsigned char kat2570_retbits[] = {
+ 0x4a, 0x8b, 0xa9, 0x45, 0x02, 0x01, 0xfd, 0x42, 0x5b, 0x7a, 0x7b, 0xbc,
+ 0xee, 0x08, 0x41, 0x93, 0x55, 0x4d, 0x39, 0xaf, 0x87, 0x77, 0x56, 0x92,
+ 0x13, 0x58, 0x40, 0x10, 0x6a, 0x1d, 0x64, 0xc7, 0xf1, 0x74, 0x3d, 0x40,
+ 0x97, 0x87, 0x4c, 0x6f, 0x30, 0xd8, 0x01, 0xab, 0x62, 0xa6, 0xb7, 0x2b,
+ 0x34, 0x15, 0x37, 0x42, 0xe9, 0x0c, 0xa4, 0x52, 0x91, 0x1f, 0x47, 0x9a,
+ 0x12, 0xc2, 0x38, 0x61,
+};
+static const struct drbg_kat_pr_false kat2570_t = {
+ 4, kat2570_entropyin, kat2570_nonce, kat2570_persstr,
+ kat2570_entropyinreseed, kat2570_addinreseed, kat2570_addin0,
+ kat2570_addin1, kat2570_retbits
+};
+static const struct drbg_kat kat2570 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2570_t
+};
+
+static const unsigned char kat2571_entropyin[] = {
+ 0x60, 0xac, 0x94, 0x6f, 0x4b, 0xe9, 0xdf, 0x8d, 0xdb, 0xce, 0x3c, 0x77,
+ 0x64, 0x43, 0x5f, 0x6f, 0xaa, 0x99, 0x98, 0x56, 0x02, 0x80, 0xdd, 0x91,
+ 0xe2, 0x36, 0x66, 0xa9, 0x27, 0x43, 0x5c, 0x9c, 0x8f, 0xad, 0x49, 0x62,
+ 0x5b, 0xd4, 0x22, 0xd5,
+};
+static const unsigned char kat2571_nonce[] = {0};
+static const unsigned char kat2571_persstr[] = {
+ 0x37, 0xfb, 0x24, 0xe8, 0xfd, 0x6a, 0x8c, 0x3c, 0xa8, 0xc0, 0xd9, 0x4c,
+ 0x36, 0x58, 0x4f, 0x8b, 0x70, 0x65, 0xb4, 0x01, 0x9a, 0xcf, 0xdc, 0x33,
+ 0x5f, 0x98, 0xb5, 0x86, 0x65, 0xff, 0x39, 0xcc, 0x92, 0x55, 0xe7, 0xae,
+ 0x34, 0x2c, 0xe6, 0x28,
+};
+static const unsigned char kat2571_entropyinreseed[] = {
+ 0xfa, 0xe9, 0x37, 0x1c, 0xcc, 0x51, 0x7e, 0x02, 0x4c, 0x66, 0x38, 0xeb,
+ 0x17, 0x70, 0x19, 0x21, 0x7a, 0x8a, 0xbf, 0x83, 0x3f, 0xc6, 0x1c, 0x29,
+ 0xb6, 0x91, 0xc0, 0x94, 0x3e, 0x20, 0x27, 0xb3, 0xdb, 0xbd, 0x67, 0x8c,
+ 0xbb, 0xe1, 0x78, 0xe1,
+};
+static const unsigned char kat2571_addinreseed[] = {
+ 0xd6, 0xd5, 0xe3, 0xf4, 0x3b, 0x2b, 0x6c, 0x86, 0x61, 0xe9, 0xc8, 0xe2,
+ 0xd9, 0x1a, 0xe8, 0x10, 0x2f, 0x61, 0x83, 0x54, 0x24, 0xe3, 0x47, 0xd4,
+ 0x9b, 0x14, 0x84, 0xd1, 0x1d, 0x3f, 0x5f, 0x31, 0x55, 0x99, 0x57, 0x8d,
+ 0x57, 0xca, 0x53, 0x8b,
+};
+static const unsigned char kat2571_addin0[] = {
+ 0x47, 0x4b, 0xef, 0x43, 0xe9, 0xe2, 0xba, 0x2f, 0xda, 0xc4, 0x70, 0xf8,
+ 0x16, 0xba, 0x49, 0xc8, 0x33, 0x5e, 0x71, 0x20, 0xba, 0x38, 0x9e, 0x22,
+ 0x33, 0x82, 0xd0, 0x91, 0xa4, 0x7d, 0x2d, 0x87, 0xe1, 0xcb, 0x99, 0x13,
+ 0xfd, 0xcb, 0x29, 0xad,
+};
+static const unsigned char kat2571_addin1[] = {
+ 0xb8, 0x91, 0xdd, 0xc1, 0x6d, 0x98, 0x89, 0x7b, 0xcb, 0x8d, 0x3d, 0xb9,
+ 0x31, 0xd7, 0xab, 0xe2, 0x17, 0xdb, 0xb9, 0x14, 0x95, 0x73, 0x64, 0x77,
+ 0xbe, 0xb6, 0xb9, 0x71, 0xc5, 0xc8, 0xdf, 0x2e, 0x46, 0x80, 0x04, 0x15,
+ 0xc5, 0x2e, 0x7c, 0x28,
+};
+static const unsigned char kat2571_retbits[] = {
+ 0x1a, 0x40, 0x20, 0xce, 0xa2, 0xde, 0x8a, 0x1d, 0x3b, 0x3f, 0xa9, 0xa2,
+ 0xf6, 0x81, 0xb9, 0x66, 0xa3, 0xf7, 0xb8, 0x41, 0x9e, 0x0d, 0x9f, 0xc0,
+ 0x33, 0x46, 0x7e, 0xa1, 0x67, 0x82, 0x81, 0xa4, 0xf4, 0xe3, 0x68, 0xc6,
+ 0x4b, 0xd1, 0xce, 0xfe, 0xfa, 0xa5, 0x1b, 0x26, 0x0d, 0x11, 0xca, 0x2d,
+ 0xf9, 0xf8, 0x0d, 0x99, 0x12, 0x44, 0x18, 0x5f, 0x59, 0x20, 0x18, 0x4a,
+ 0x75, 0x21, 0x5a, 0x68,
+};
+static const struct drbg_kat_pr_false kat2571_t = {
+ 5, kat2571_entropyin, kat2571_nonce, kat2571_persstr,
+ kat2571_entropyinreseed, kat2571_addinreseed, kat2571_addin0,
+ kat2571_addin1, kat2571_retbits
+};
+static const struct drbg_kat kat2571 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2571_t
+};
+
+static const unsigned char kat2572_entropyin[] = {
+ 0xdd, 0xc9, 0x92, 0x97, 0xbe, 0xb0, 0x79, 0x33, 0xc1, 0xad, 0x17, 0xab,
+ 0x65, 0x74, 0xd3, 0xe2, 0x76, 0xd5, 0xe1, 0x83, 0xe8, 0xa8, 0x65, 0x8f,
+ 0x95, 0xc6, 0x9d, 0x73, 0x89, 0x45, 0xce, 0x95, 0x42, 0xf8, 0xc8, 0xac,
+ 0x79, 0xf9, 0xfd, 0xc6,
+};
+static const unsigned char kat2572_nonce[] = {0};
+static const unsigned char kat2572_persstr[] = {
+ 0x1d, 0xbd, 0x1d, 0xfb, 0x7e, 0xfe, 0xa7, 0xa6, 0x23, 0x79, 0xba, 0x1f,
+ 0xf1, 0x17, 0x1e, 0x51, 0xdb, 0x2e, 0xd4, 0x9d, 0x54, 0xff, 0xbb, 0xf5,
+ 0x50, 0x88, 0x79, 0x01, 0xd5, 0x04, 0x62, 0xd9, 0x8f, 0xeb, 0x78, 0x6e,
+ 0x1f, 0x09, 0x69, 0xbb,
+};
+static const unsigned char kat2572_entropyinreseed[] = {
+ 0xd2, 0x61, 0x80, 0x44, 0x8a, 0x8c, 0x34, 0xd0, 0x55, 0x2d, 0x9f, 0x3b,
+ 0x16, 0xaf, 0xb0, 0x8f, 0xb9, 0xc9, 0x05, 0x9b, 0xd6, 0x2b, 0x6b, 0x87,
+ 0x4e, 0xc6, 0x2a, 0xda, 0x23, 0x2c, 0x7f, 0x50, 0x02, 0x7d, 0xd3, 0x59,
+ 0xf9, 0x40, 0x7d, 0xb2,
+};
+static const unsigned char kat2572_addinreseed[] = {
+ 0x16, 0x41, 0x92, 0x5c, 0x63, 0xc2, 0xc6, 0xd6, 0xb0, 0x6f, 0xf2, 0x64,
+ 0x83, 0xc7, 0xec, 0xa3, 0x40, 0xff, 0xed, 0x1f, 0xb7, 0xf6, 0x54, 0x24,
+ 0x34, 0x77, 0x5b, 0xaf, 0xa2, 0xc8, 0xed, 0x86, 0x2d, 0xa6, 0x73, 0xd8,
+ 0xf0, 0xfd, 0x15, 0x7f,
+};
+static const unsigned char kat2572_addin0[] = {
+ 0x35, 0x99, 0x6d, 0xc4, 0x3b, 0xc4, 0x46, 0x96, 0xab, 0xed, 0x94, 0xef,
+ 0x74, 0xc0, 0x97, 0xf1, 0xb0, 0xe8, 0xd1, 0x4f, 0xfa, 0x84, 0x12, 0xd6,
+ 0xf7, 0x7d, 0xba, 0x98, 0xfe, 0x9f, 0xab, 0x88, 0x57, 0xae, 0xf8, 0x2f,
+ 0xb8, 0x23, 0x2b, 0xb1,
+};
+static const unsigned char kat2572_addin1[] = {
+ 0x71, 0x24, 0x85, 0xb7, 0x86, 0xce, 0x3b, 0x47, 0xca, 0x6b, 0xb4, 0x34,
+ 0x85, 0xa4, 0x83, 0xa1, 0xe8, 0xd7, 0x45, 0xb8, 0xae, 0xbc, 0x13, 0x02,
+ 0xd1, 0xfe, 0x84, 0xc4, 0xa3, 0x11, 0x5b, 0xc7, 0x0b, 0x76, 0xc2, 0xa1,
+ 0x78, 0xc8, 0xf6, 0xcc,
+};
+static const unsigned char kat2572_retbits[] = {
+ 0x26, 0xb5, 0xf2, 0x50, 0x09, 0x30, 0x4e, 0x6b, 0xbe, 0x83, 0x67, 0xc5,
+ 0xbf, 0xb5, 0x87, 0xd4, 0x63, 0xdf, 0x6a, 0x27, 0xe3, 0xde, 0x30, 0xb6,
+ 0xdd, 0xc1, 0x09, 0x0e, 0x5b, 0x8c, 0xed, 0x13, 0xa0, 0xf0, 0x1d, 0xfe,
+ 0x4c, 0x81, 0x0d, 0x6e, 0x5e, 0xc2, 0x4d, 0x6e, 0x0b, 0xc8, 0xb4, 0xed,
+ 0xc2, 0x90, 0xa4, 0xf7, 0xbb, 0xc2, 0x32, 0x78, 0x36, 0xb7, 0x76, 0x8a,
+ 0x3d, 0xf5, 0xed, 0x3c,
+};
+static const struct drbg_kat_pr_false kat2572_t = {
+ 6, kat2572_entropyin, kat2572_nonce, kat2572_persstr,
+ kat2572_entropyinreseed, kat2572_addinreseed, kat2572_addin0,
+ kat2572_addin1, kat2572_retbits
+};
+static const struct drbg_kat kat2572 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2572_t
+};
+
+static const unsigned char kat2573_entropyin[] = {
+ 0xa9, 0x04, 0x5a, 0xfa, 0x9d, 0xee, 0x70, 0x73, 0xc8, 0x14, 0xd6, 0x0e,
+ 0x26, 0x9c, 0xb0, 0x19, 0x65, 0x64, 0xb6, 0x26, 0x0c, 0xa3, 0x68, 0x98,
+ 0x4b, 0xfb, 0xda, 0x40, 0xfc, 0xf6, 0x78, 0x7f, 0xa0, 0x13, 0x82, 0xfd,
+ 0x1b, 0xcd, 0x5c, 0xb0,
+};
+static const unsigned char kat2573_nonce[] = {0};
+static const unsigned char kat2573_persstr[] = {
+ 0xfe, 0x7b, 0xfd, 0x09, 0x0b, 0xb1, 0xe4, 0x93, 0x26, 0xef, 0xc3, 0x8c,
+ 0x28, 0x1e, 0x4e, 0x36, 0xe2, 0x06, 0x14, 0x4c, 0x4a, 0x6d, 0xc3, 0x4f,
+ 0x21, 0x5a, 0x2d, 0x58, 0x52, 0x2b, 0x17, 0x2f, 0x33, 0x7e, 0xb7, 0x74,
+ 0x5f, 0xa6, 0x3b, 0xec,
+};
+static const unsigned char kat2573_entropyinreseed[] = {
+ 0x6e, 0x79, 0x9f, 0x65, 0xd9, 0x41, 0x2b, 0x40, 0x76, 0x72, 0x29, 0xe8,
+ 0x3d, 0x53, 0xe8, 0x86, 0x77, 0x59, 0x84, 0xd4, 0xe9, 0xe9, 0x00, 0x58,
+ 0xa3, 0x1c, 0x88, 0xa0, 0xa2, 0x77, 0x14, 0x26, 0x96, 0x53, 0xb5, 0x75,
+ 0x03, 0x48, 0x7c, 0x3c,
+};
+static const unsigned char kat2573_addinreseed[] = {
+ 0x8a, 0x2d, 0xc5, 0xfe, 0x64, 0x37, 0xe2, 0x5c, 0x20, 0x72, 0x6f, 0xc4,
+ 0x3f, 0x88, 0x6c, 0xb0, 0x19, 0x46, 0x32, 0xbe, 0xb4, 0x85, 0x5e, 0xc5,
+ 0xdb, 0xf3, 0xb3, 0x81, 0x5c, 0x90, 0x0d, 0x1a, 0x38, 0xa3, 0x11, 0xe7,
+ 0x5b, 0x21, 0x35, 0x99,
+};
+static const unsigned char kat2573_addin0[] = {
+ 0x08, 0x44, 0x55, 0x98, 0x20, 0x31, 0xbd, 0x46, 0x74, 0x80, 0x22, 0x52,
+ 0x25, 0xc4, 0x50, 0xc2, 0x7a, 0x62, 0x9d, 0x77, 0x1b, 0xbe, 0x07, 0xd9,
+ 0xa7, 0x8a, 0xf0, 0x6e, 0x4b, 0x40, 0xff, 0x8e, 0xd7, 0x12, 0x9e, 0x2c,
+ 0x0e, 0xe7, 0xf6, 0x9a,
+};
+static const unsigned char kat2573_addin1[] = {
+ 0x9f, 0x3d, 0xee, 0x85, 0x62, 0x3e, 0x81, 0xce, 0x86, 0x8e, 0x97, 0xc5,
+ 0x4f, 0x36, 0xd0, 0x5e, 0x3e, 0x76, 0x5a, 0xc9, 0x4a, 0xd1, 0x92, 0xf6,
+ 0x3d, 0xf9, 0xad, 0x0a, 0xf3, 0x77, 0x7e, 0xfd, 0x1f, 0x3d, 0xfe, 0xe2,
+ 0xa1, 0x80, 0xa9, 0xa6,
+};
+static const unsigned char kat2573_retbits[] = {
+ 0xaa, 0xde, 0x92, 0xa4, 0xf7, 0x8b, 0xd4, 0xb6, 0x63, 0x22, 0xe3, 0x41,
+ 0xc6, 0x41, 0xeb, 0x4a, 0x57, 0x5c, 0xf2, 0xe9, 0xf9, 0x6c, 0x46, 0x24,
+ 0x3c, 0x5d, 0xe5, 0xec, 0xab, 0x0e, 0x04, 0x7c, 0x9c, 0x32, 0x54, 0xa1,
+ 0x11, 0x5b, 0xac, 0x0c, 0x9e, 0x80, 0xae, 0x6e, 0xe5, 0xdf, 0xf2, 0x4e,
+ 0x81, 0x6a, 0x0a, 0x78, 0xc5, 0x92, 0x49, 0x0b, 0xe8, 0xc0, 0xb2, 0xb5,
+ 0xeb, 0xcc, 0x4b, 0x65,
+};
+static const struct drbg_kat_pr_false kat2573_t = {
+ 7, kat2573_entropyin, kat2573_nonce, kat2573_persstr,
+ kat2573_entropyinreseed, kat2573_addinreseed, kat2573_addin0,
+ kat2573_addin1, kat2573_retbits
+};
+static const struct drbg_kat kat2573 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2573_t
+};
+
+static const unsigned char kat2574_entropyin[] = {
+ 0x44, 0x2a, 0x81, 0x56, 0x37, 0x4c, 0x2f, 0x82, 0x77, 0x9c, 0xb3, 0x16,
+ 0xb0, 0x91, 0xaa, 0xfd, 0x42, 0x95, 0x27, 0x13, 0x65, 0x92, 0x52, 0x48,
+ 0xc6, 0xbb, 0xe5, 0xae, 0x4d, 0xd7, 0x55, 0x52, 0xe1, 0x04, 0x93, 0xc4,
+ 0x5b, 0xea, 0xd8, 0xa0,
+};
+static const unsigned char kat2574_nonce[] = {0};
+static const unsigned char kat2574_persstr[] = {
+ 0x84, 0x4a, 0x79, 0xa6, 0xdb, 0xfc, 0x60, 0x8b, 0x89, 0x9b, 0x40, 0xe8,
+ 0xef, 0x73, 0x3d, 0x3e, 0xee, 0x9b, 0x63, 0x85, 0x60, 0x4d, 0x73, 0x3c,
+ 0x46, 0x7c, 0xfb, 0x0c, 0x3b, 0x61, 0xc1, 0xf7, 0xad, 0x7b, 0xd5, 0xb1,
+ 0x78, 0x01, 0xa2, 0x59,
+};
+static const unsigned char kat2574_entropyinreseed[] = {
+ 0xf2, 0x90, 0x47, 0x95, 0x0b, 0x53, 0xca, 0x74, 0x0a, 0x81, 0x20, 0x4c,
+ 0x89, 0x0a, 0x4a, 0x82, 0x5b, 0x70, 0x9e, 0xd0, 0x5c, 0xe7, 0x9d, 0x09,
+ 0xd4, 0x3d, 0x5d, 0x2f, 0x11, 0x62, 0x63, 0x05, 0x39, 0xde, 0xc2, 0x3b,
+ 0xfe, 0xb0, 0x9e, 0x7d,
+};
+static const unsigned char kat2574_addinreseed[] = {
+ 0x02, 0x62, 0x6c, 0xa7, 0x3b, 0x24, 0x3b, 0x5b, 0x20, 0xa3, 0x20, 0xe6,
+ 0x85, 0x07, 0xd5, 0xcd, 0x91, 0x71, 0x55, 0x6b, 0x3d, 0x33, 0x7e, 0xb4,
+ 0x08, 0xa2, 0xe6, 0xb4, 0x12, 0x12, 0xb2, 0x70, 0x32, 0x42, 0xea, 0xdd,
+ 0x9e, 0x27, 0xe7, 0x8c,
+};
+static const unsigned char kat2574_addin0[] = {
+ 0xa8, 0x77, 0x0a, 0xc0, 0xe4, 0x65, 0xb0, 0xe1, 0x56, 0x25, 0x4f, 0x5c,
+ 0x1a, 0x96, 0x5c, 0x05, 0xfe, 0xf6, 0x76, 0x53, 0x14, 0xd3, 0x96, 0x87,
+ 0x11, 0xea, 0xee, 0x70, 0x06, 0x73, 0x9f, 0x9f, 0x00, 0x91, 0xf0, 0x16,
+ 0xca, 0x42, 0x0a, 0x79,
+};
+static const unsigned char kat2574_addin1[] = {
+ 0xd3, 0x03, 0xb3, 0x02, 0xb5, 0x1d, 0xfe, 0xee, 0x5f, 0x55, 0x50, 0x5c,
+ 0x15, 0x5a, 0xfb, 0x79, 0xcf, 0x8f, 0x0a, 0x36, 0xaa, 0xb3, 0x02, 0x23,
+ 0x14, 0x92, 0x46, 0x1a, 0xe5, 0x3d, 0x15, 0x98, 0x2a, 0xd4, 0x52, 0xfd,
+ 0x2e, 0xfd, 0x7d, 0xc7,
+};
+static const unsigned char kat2574_retbits[] = {
+ 0xd6, 0xa1, 0x31, 0xb2, 0xbb, 0x36, 0xf7, 0x01, 0x55, 0xb9, 0xca, 0x85,
+ 0xab, 0x35, 0x80, 0x1e, 0x4a, 0x00, 0x49, 0x85, 0xfe, 0x80, 0xbb, 0xfb,
+ 0x5a, 0x20, 0xf7, 0x7a, 0x1f, 0x73, 0x7d, 0xc1, 0x8d, 0xb7, 0x02, 0xf2,
+ 0x4f, 0x22, 0x87, 0xb3, 0x33, 0x6e, 0xcd, 0x6a, 0x21, 0x64, 0x24, 0xa3,
+ 0x20, 0xce, 0x46, 0x8d, 0x2d, 0xc3, 0x44, 0xf4, 0x8a, 0x45, 0x76, 0x7e,
+ 0xa2, 0xab, 0xd1, 0xcd,
+};
+static const struct drbg_kat_pr_false kat2574_t = {
+ 8, kat2574_entropyin, kat2574_nonce, kat2574_persstr,
+ kat2574_entropyinreseed, kat2574_addinreseed, kat2574_addin0,
+ kat2574_addin1, kat2574_retbits
+};
+static const struct drbg_kat kat2574 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2574_t
+};
+
+static const unsigned char kat2575_entropyin[] = {
+ 0xc9, 0x6f, 0x5d, 0x16, 0x6c, 0x80, 0x8c, 0xa6, 0xa1, 0xae, 0x90, 0x14,
+ 0x77, 0xad, 0x03, 0xde, 0x00, 0x72, 0x23, 0x97, 0xb3, 0x0b, 0x52, 0xaa,
+ 0xce, 0x06, 0x25, 0x88, 0x26, 0xc9, 0xd6, 0xf8, 0x90, 0x97, 0x83, 0xff,
+ 0x52, 0xe3, 0x1a, 0xf5,
+};
+static const unsigned char kat2575_nonce[] = {0};
+static const unsigned char kat2575_persstr[] = {
+ 0x47, 0x25, 0xb7, 0x91, 0xd3, 0xf6, 0xd0, 0x3f, 0xcd, 0x07, 0x4b, 0xba,
+ 0x54, 0xab, 0x7c, 0x92, 0xa7, 0x81, 0x66, 0xe7, 0xcb, 0xbd, 0x73, 0xd0,
+ 0x27, 0xa3, 0x90, 0xf7, 0x49, 0x0d, 0x2b, 0x37, 0x16, 0x2f, 0x1a, 0x95,
+ 0x18, 0x2b, 0xe4, 0x31,
+};
+static const unsigned char kat2575_entropyinreseed[] = {
+ 0xee, 0xd3, 0xc4, 0xc7, 0x8f, 0x96, 0xb2, 0xce, 0x75, 0xc0, 0x08, 0xc1,
+ 0x0c, 0xf1, 0x53, 0x34, 0x6f, 0x11, 0x77, 0xe2, 0xde, 0xd8, 0xd6, 0xca,
+ 0x85, 0x68, 0x9b, 0x04, 0xe1, 0xa3, 0x05, 0xff, 0x9e, 0xa9, 0xaa, 0xcc,
+ 0x84, 0xd7, 0xe4, 0x45,
+};
+static const unsigned char kat2575_addinreseed[] = {
+ 0xb8, 0x8b, 0x89, 0x01, 0xe3, 0x98, 0xd5, 0xe1, 0x76, 0x9f, 0x62, 0xd2,
+ 0x08, 0xe7, 0x7a, 0xe6, 0x99, 0xc7, 0x22, 0xe5, 0x5f, 0x7d, 0x86, 0xa0,
+ 0x1b, 0xa9, 0x99, 0x6c, 0x6c, 0xe5, 0x5a, 0xf4, 0xc0, 0xac, 0xc2, 0x0d,
+ 0x10, 0x21, 0x7d, 0x97,
+};
+static const unsigned char kat2575_addin0[] = {
+ 0x1a, 0xa0, 0x71, 0xaf, 0xa4, 0x0d, 0xdd, 0xb3, 0xad, 0x66, 0x55, 0x43,
+ 0x5a, 0xb0, 0x5a, 0xed, 0x18, 0x58, 0xbd, 0xb8, 0xa2, 0x65, 0xb7, 0xda,
+ 0x29, 0x98, 0x93, 0xed, 0xf9, 0xc9, 0x1e, 0x87, 0xa2, 0x40, 0x1b, 0xc0,
+ 0x52, 0x33, 0x87, 0xb5,
+};
+static const unsigned char kat2575_addin1[] = {
+ 0x02, 0xf6, 0xda, 0xf6, 0xb8, 0x48, 0xc3, 0x3e, 0xcf, 0x63, 0xd3, 0x0d,
+ 0x50, 0xaa, 0x22, 0x83, 0xe9, 0x50, 0xb0, 0xf8, 0x48, 0x6c, 0xd6, 0x04,
+ 0x3f, 0x62, 0x62, 0x91, 0x00, 0xde, 0x8e, 0x25, 0x3c, 0x69, 0x00, 0x35,
+ 0x0b, 0xff, 0x1f, 0x3d,
+};
+static const unsigned char kat2575_retbits[] = {
+ 0x88, 0xcc, 0x64, 0x5b, 0x03, 0x80, 0x09, 0xfc, 0xcd, 0xf0, 0xa1, 0x76,
+ 0xf8, 0x7b, 0x86, 0xc4, 0xd6, 0x7a, 0x95, 0x8b, 0x30, 0x83, 0x30, 0x80,
+ 0xe5, 0x84, 0x1c, 0x84, 0x4b, 0x08, 0xaf, 0x07, 0xd3, 0xe2, 0xca, 0x10,
+ 0xfd, 0x2e, 0x2a, 0x29, 0x52, 0x13, 0x04, 0xde, 0x70, 0x25, 0x6c, 0xf9,
+ 0x59, 0x82, 0x96, 0xac, 0xdd, 0xd3, 0x2c, 0x8f, 0x06, 0x55, 0x2d, 0xae,
+ 0xc7, 0x48, 0xb4, 0x4f,
+};
+static const struct drbg_kat_pr_false kat2575_t = {
+ 9, kat2575_entropyin, kat2575_nonce, kat2575_persstr,
+ kat2575_entropyinreseed, kat2575_addinreseed, kat2575_addin0,
+ kat2575_addin1, kat2575_retbits
+};
+static const struct drbg_kat kat2575 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2575_t
+};
+
+static const unsigned char kat2576_entropyin[] = {
+ 0xfe, 0x88, 0xca, 0x22, 0xf5, 0x68, 0xe9, 0x59, 0xe3, 0xe9, 0x39, 0xe3,
+ 0x9c, 0x7c, 0x81, 0x17, 0x60, 0x38, 0x5e, 0x49, 0x99, 0x95, 0xd8, 0x7f,
+ 0x39, 0x3f, 0x14, 0x81, 0xbd, 0x35, 0x78, 0xa6, 0xf1, 0x67, 0x30, 0xa8,
+ 0xc3, 0x34, 0xe1, 0xe4,
+};
+static const unsigned char kat2576_nonce[] = {0};
+static const unsigned char kat2576_persstr[] = {
+ 0xe4, 0xa4, 0x7e, 0x7f, 0x8b, 0x55, 0x17, 0xbb, 0xe3, 0xdf, 0xe4, 0xee,
+ 0xb8, 0xaa, 0x01, 0x83, 0x20, 0xde, 0x95, 0xfe, 0x8d, 0xbd, 0x74, 0x55,
+ 0x1f, 0x49, 0x8e, 0x4a, 0xe3, 0x35, 0x62, 0xeb, 0xb7, 0x9b, 0xe4, 0x48,
+ 0xaf, 0xdd, 0x11, 0xf9,
+};
+static const unsigned char kat2576_entropyinreseed[] = {
+ 0xcb, 0xc8, 0xf6, 0x72, 0x51, 0x3e, 0xd1, 0x36, 0x6b, 0xa3, 0xdf, 0x0a,
+ 0xfd, 0xba, 0x62, 0x6f, 0xe8, 0x4f, 0x4f, 0xaa, 0xc9, 0x4d, 0x13, 0x5f,
+ 0x0f, 0x71, 0xbd, 0x38, 0x59, 0x0c, 0x2a, 0x16, 0x4a, 0xa3, 0x03, 0x44,
+ 0xeb, 0xb0, 0xda, 0x68,
+};
+static const unsigned char kat2576_addinreseed[] = {
+ 0x88, 0xcd, 0x4b, 0x98, 0xc5, 0xea, 0xe5, 0x1b, 0x07, 0x84, 0x33, 0x20,
+ 0x50, 0x61, 0xdf, 0xbe, 0x7e, 0xca, 0x1e, 0x0f, 0x0e, 0x52, 0xb1, 0x67,
+ 0xd6, 0x98, 0x51, 0x68, 0x25, 0x04, 0x90, 0xa1, 0x50, 0x82, 0xc0, 0xc1,
+ 0x6b, 0x8f, 0xf2, 0xeb,
+};
+static const unsigned char kat2576_addin0[] = {
+ 0xfb, 0x8f, 0x52, 0xd8, 0x1c, 0xad, 0x18, 0x6e, 0x7b, 0x9e, 0x97, 0x44,
+ 0x00, 0xfc, 0xeb, 0x4b, 0x1b, 0x78, 0xbf, 0xd8, 0xb5, 0xa6, 0xb0, 0xb1,
+ 0x1c, 0x83, 0x65, 0xb8, 0xdd, 0x40, 0xa2, 0xb1, 0x35, 0xda, 0x72, 0x08,
+ 0xd3, 0xa4, 0xa3, 0x83,
+};
+static const unsigned char kat2576_addin1[] = {
+ 0x3d, 0x3f, 0xd6, 0x66, 0x02, 0x0d, 0xc1, 0x27, 0x12, 0x6c, 0x46, 0x2b,
+ 0xe2, 0xd6, 0x28, 0xf2, 0x77, 0x37, 0x3d, 0x24, 0x0b, 0xcd, 0x46, 0xd4,
+ 0x8f, 0x16, 0x7d, 0x33, 0x32, 0xb6, 0x32, 0x98, 0x63, 0x08, 0x28, 0xb5,
+ 0x19, 0x6e, 0x6f, 0x5e,
+};
+static const unsigned char kat2576_retbits[] = {
+ 0x31, 0x62, 0xda, 0x5c, 0x34, 0x5c, 0xa3, 0xf8, 0x6d, 0xeb, 0x34, 0x5f,
+ 0x62, 0x7c, 0xb2, 0xc8, 0xd8, 0xaa, 0x03, 0x47, 0x5b, 0x5a, 0xe2, 0x7e,
+ 0x11, 0x4c, 0x56, 0x7e, 0x7a, 0x1a, 0xb9, 0x26, 0x7c, 0xc7, 0x1e, 0x1f,
+ 0xa8, 0x26, 0xcc, 0x4d, 0xf8, 0xb7, 0x98, 0x4d, 0x72, 0x13, 0xeb, 0x21,
+ 0x8f, 0xd5, 0xab, 0x73, 0xfe, 0x6c, 0x2c, 0x75, 0x26, 0xe2, 0x04, 0x1f,
+ 0xbf, 0x45, 0x6f, 0x96,
+};
+static const struct drbg_kat_pr_false kat2576_t = {
+ 10, kat2576_entropyin, kat2576_nonce, kat2576_persstr,
+ kat2576_entropyinreseed, kat2576_addinreseed, kat2576_addin0,
+ kat2576_addin1, kat2576_retbits
+};
+static const struct drbg_kat kat2576 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2576_t
+};
+
+static const unsigned char kat2577_entropyin[] = {
+ 0x39, 0x66, 0x5a, 0xc9, 0xd8, 0x96, 0x61, 0x1e, 0x0e, 0x4c, 0xfe, 0x2d,
+ 0x5f, 0x0d, 0xb8, 0x2a, 0x5c, 0x16, 0x0d, 0x1b, 0xf4, 0x66, 0xa6, 0xaa,
+ 0x21, 0x1b, 0x87, 0x69, 0x08, 0xee, 0x09, 0x37, 0x14, 0x56, 0xb8, 0x49,
+ 0x80, 0x84, 0xef, 0xc1,
+};
+static const unsigned char kat2577_nonce[] = {0};
+static const unsigned char kat2577_persstr[] = {
+ 0x7b, 0x08, 0x36, 0xc9, 0xa0, 0x5b, 0xd3, 0x4e, 0x2f, 0x92, 0x5c, 0x48,
+ 0x8f, 0xb4, 0x9d, 0xa7, 0xa4, 0x48, 0x99, 0x63, 0x64, 0x20, 0x1f, 0x07,
+ 0xef, 0xa9, 0x04, 0xfd, 0xd4, 0xf9, 0x13, 0xde, 0x97, 0x1f, 0x04, 0xa2,
+ 0x58, 0x79, 0x7f, 0xd0,
+};
+static const unsigned char kat2577_entropyinreseed[] = {
+ 0xfe, 0xdd, 0xd0, 0x72, 0x64, 0xc3, 0xbc, 0x84, 0x0e, 0x3f, 0x97, 0x4e,
+ 0x37, 0xb5, 0xfd, 0x4c, 0xc5, 0x70, 0x5a, 0x9a, 0x6c, 0xdd, 0x40, 0x6e,
+ 0x92, 0x01, 0x1b, 0xfe, 0xc6, 0x11, 0x0f, 0xed, 0x47, 0x64, 0x46, 0xe8,
+ 0x9e, 0x28, 0xac, 0xa2,
+};
+static const unsigned char kat2577_addinreseed[] = {
+ 0x6e, 0x53, 0x31, 0x0d, 0xf1, 0xf2, 0xc7, 0x98, 0x11, 0x6b, 0x1e, 0xca,
+ 0x82, 0xe4, 0xa1, 0xb5, 0x25, 0xf5, 0x99, 0x6b, 0xf6, 0x9b, 0x71, 0x69,
+ 0x3d, 0xf2, 0x3b, 0x59, 0x83, 0xcb, 0xb2, 0x23, 0x0f, 0x4b, 0x03, 0xbd,
+ 0x98, 0xb6, 0xe7, 0x19,
+};
+static const unsigned char kat2577_addin0[] = {
+ 0xee, 0xa9, 0x98, 0x7d, 0xa8, 0xe7, 0x62, 0x75, 0xed, 0x48, 0x87, 0xf1,
+ 0x47, 0xb8, 0xfa, 0x15, 0xcb, 0x59, 0xcb, 0x26, 0xc6, 0x0a, 0x39, 0x79,
+ 0xb0, 0xb3, 0x35, 0xfc, 0xdb, 0xd3, 0x5a, 0x0c, 0x8e, 0x1d, 0x83, 0x74,
+ 0x2c, 0xc3, 0xf0, 0xbf,
+};
+static const unsigned char kat2577_addin1[] = {
+ 0x1f, 0xe4, 0xbd, 0x9c, 0x1b, 0xbc, 0x03, 0x1e, 0xde, 0xd4, 0x8a, 0x0d,
+ 0x43, 0xa4, 0x14, 0x10, 0xa1, 0xb4, 0x04, 0x2b, 0x59, 0xd2, 0x12, 0x67,
+ 0x11, 0x24, 0xd1, 0x8d, 0xf5, 0xd8, 0xb1, 0x2b, 0xd8, 0x55, 0xa1, 0x68,
+ 0x0e, 0x6a, 0x49, 0xd5,
+};
+static const unsigned char kat2577_retbits[] = {
+ 0xfe, 0x63, 0x9a, 0xeb, 0x66, 0x70, 0x32, 0x09, 0x27, 0x9c, 0x40, 0x5d,
+ 0x99, 0x16, 0x9e, 0x57, 0x0d, 0x96, 0xe5, 0x7d, 0xfe, 0x94, 0x0d, 0x12,
+ 0x6c, 0xfc, 0x42, 0xe7, 0x3c, 0x3b, 0x1c, 0x65, 0xb7, 0x80, 0x3b, 0x7f,
+ 0x66, 0xbc, 0x74, 0x35, 0xf3, 0xa5, 0xcc, 0xc7, 0x0c, 0x94, 0x67, 0xc4,
+ 0x35, 0x2c, 0x89, 0x56, 0x86, 0x5a, 0x3e, 0x5a, 0xee, 0x36, 0x14, 0x61,
+ 0x83, 0xc9, 0x59, 0x2b,
+};
+static const struct drbg_kat_pr_false kat2577_t = {
+ 11, kat2577_entropyin, kat2577_nonce, kat2577_persstr,
+ kat2577_entropyinreseed, kat2577_addinreseed, kat2577_addin0,
+ kat2577_addin1, kat2577_retbits
+};
+static const struct drbg_kat kat2577 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2577_t
+};
+
+static const unsigned char kat2578_entropyin[] = {
+ 0x37, 0x49, 0x86, 0xac, 0xbb, 0xfa, 0xf7, 0x62, 0xad, 0xbd, 0xd8, 0x2c,
+ 0x84, 0x20, 0x30, 0xa3, 0x1d, 0xc7, 0xe6, 0x55, 0x54, 0xd8, 0xcd, 0xf3,
+ 0xa5, 0x31, 0x97, 0x95, 0x21, 0x8c, 0xbc, 0x1b, 0xf2, 0x95, 0xc2, 0x59,
+ 0xb8, 0x8e, 0xcd, 0x16,
+};
+static const unsigned char kat2578_nonce[] = {0};
+static const unsigned char kat2578_persstr[] = {
+ 0x9a, 0xc0, 0xbc, 0x5c, 0x87, 0xe1, 0x1e, 0x44, 0x02, 0xb7, 0xb2, 0xdc,
+ 0x59, 0xe5, 0x26, 0x31, 0x4f, 0x27, 0xb4, 0x1e, 0xa0, 0x28, 0x98, 0x38,
+ 0xe7, 0x50, 0x37, 0x2a, 0x0f, 0x38, 0xc3, 0x40, 0x6a, 0xb3, 0xc5, 0x7a,
+ 0xb8, 0xa8, 0xed, 0x58,
+};
+static const unsigned char kat2578_entropyinreseed[] = {
+ 0xf9, 0xd9, 0x38, 0x2b, 0xa0, 0x19, 0xff, 0xd3, 0xe3, 0xa9, 0xd8, 0x63,
+ 0x00, 0x9c, 0xec, 0x19, 0x41, 0xfd, 0x7a, 0x26, 0x6f, 0x24, 0xd3, 0xa5,
+ 0x7e, 0x19, 0x03, 0x76, 0x68, 0x5a, 0x93, 0x9c, 0x04, 0x8c, 0xdb, 0x7d,
+ 0x7e, 0xd1, 0x95, 0x6b,
+};
+static const unsigned char kat2578_addinreseed[] = {
+ 0xff, 0x60, 0xd2, 0xa4, 0x9e, 0x1c, 0xa1, 0x78, 0xb4, 0x42, 0xa4, 0x26,
+ 0x7d, 0x03, 0xf2, 0x58, 0x3f, 0xa0, 0x83, 0x45, 0xb5, 0xf2, 0xee, 0x51,
+ 0x53, 0x95, 0x99, 0xac, 0x94, 0x5e, 0x13, 0x3b, 0xaf, 0xf2, 0x56, 0x93,
+ 0xa6, 0x09, 0xd8, 0x24,
+};
+static const unsigned char kat2578_addin0[] = {
+ 0xd5, 0xe5, 0x05, 0xaa, 0xdb, 0xde, 0x83, 0xfe, 0x2d, 0xff, 0x00, 0x9c,
+ 0xb1, 0xf5, 0xa3, 0xeb, 0x60, 0x6e, 0x4f, 0xe1, 0x4c, 0x6d, 0x34, 0xc5,
+ 0x93, 0x55, 0xfe, 0xc1, 0x57, 0x9b, 0x3e, 0xf2, 0xfb, 0xa8, 0x67, 0x46,
+ 0x9a, 0x92, 0xaf, 0xb9,
+};
+static const unsigned char kat2578_addin1[] = {
+ 0x16, 0x21, 0x6b, 0xae, 0xc7, 0x93, 0xac, 0x9b, 0x8b, 0xbc, 0x69, 0x28,
+ 0xd6, 0xf8, 0x04, 0xcf, 0xac, 0x63, 0x11, 0x36, 0xc3, 0xb1, 0x2e, 0xee,
+ 0xc6, 0x4e, 0xe4, 0x78, 0x4f, 0xfc, 0xee, 0x57, 0x64, 0xef, 0x66, 0x37,
+ 0x8e, 0x7d, 0xd1, 0x7e,
+};
+static const unsigned char kat2578_retbits[] = {
+ 0xf9, 0xa7, 0x5e, 0x5a, 0xf1, 0x26, 0xf6, 0x10, 0x96, 0xb3, 0x69, 0x1d,
+ 0xd1, 0x4b, 0x05, 0x38, 0x51, 0x21, 0x5b, 0x2b, 0xa3, 0x3d, 0x59, 0xbf,
+ 0x4c, 0x6f, 0x2f, 0xbd, 0xcd, 0x3e, 0xea, 0x28, 0x1e, 0x74, 0x87, 0x06,
+ 0x39, 0x8c, 0xf7, 0xed, 0xf0, 0x93, 0x8e, 0xd8, 0x92, 0x4d, 0x8f, 0x93,
+ 0x5c, 0xd7, 0x0c, 0x13, 0x2a, 0xcc, 0x6c, 0x66, 0x6e, 0xde, 0x6b, 0xd6,
+ 0xd4, 0xd7, 0x11, 0xe7,
+};
+static const struct drbg_kat_pr_false kat2578_t = {
+ 12, kat2578_entropyin, kat2578_nonce, kat2578_persstr,
+ kat2578_entropyinreseed, kat2578_addinreseed, kat2578_addin0,
+ kat2578_addin1, kat2578_retbits
+};
+static const struct drbg_kat kat2578 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2578_t
+};
+
+static const unsigned char kat2579_entropyin[] = {
+ 0x3d, 0x5a, 0x03, 0xf6, 0xd1, 0x25, 0x04, 0xb0, 0x9e, 0x9e, 0x47, 0x48,
+ 0x22, 0xe5, 0x4a, 0x60, 0x8c, 0xc6, 0x25, 0x58, 0x9d, 0x9f, 0xf2, 0xfc,
+ 0xee, 0x96, 0xf3, 0xb6, 0x19, 0x14, 0xaf, 0x68, 0xd8, 0x2e, 0x36, 0x7f,
+ 0x15, 0x1b, 0x13, 0xb1,
+};
+static const unsigned char kat2579_nonce[] = {0};
+static const unsigned char kat2579_persstr[] = {
+ 0x20, 0x5f, 0x01, 0x55, 0xcd, 0x5c, 0x00, 0x31, 0x0b, 0xa1, 0x0f, 0x93,
+ 0x07, 0xf4, 0xac, 0x9f, 0x95, 0x6d, 0x07, 0x31, 0x2f, 0x04, 0x7b, 0xf1,
+ 0xde, 0x46, 0x40, 0xc8, 0x0b, 0xf7, 0x85, 0xc6, 0x2f, 0x60, 0x1d, 0xae,
+ 0x65, 0x2c, 0x44, 0xc1,
+};
+static const unsigned char kat2579_entropyinreseed[] = {
+ 0x80, 0xdc, 0x2a, 0xad, 0x56, 0x7a, 0x43, 0x45, 0x00, 0xa2, 0x9c, 0xff,
+ 0x1c, 0x5e, 0xf3, 0xea, 0x01, 0xd2, 0x6d, 0x54, 0x1d, 0xe2, 0xee, 0xa1,
+ 0x6b, 0x65, 0xc3, 0x3e, 0x94, 0xf4, 0x03, 0x83, 0x61, 0x83, 0x28, 0x77,
+ 0x1e, 0x27, 0x44, 0x42,
+};
+static const unsigned char kat2579_addinreseed[] = {
+ 0x79, 0x7d, 0x7e, 0xf2, 0x6e, 0x18, 0xb7, 0x8d, 0x0f, 0xf2, 0x14, 0x04,
+ 0xa2, 0xe8, 0x85, 0x88, 0x82, 0xe2, 0x0c, 0x97, 0x7b, 0xbe, 0x04, 0x62,
+ 0x97, 0x51, 0x82, 0x73, 0x66, 0x13, 0x84, 0xe4, 0xda, 0x22, 0xe0, 0x6e,
+ 0x6f, 0x91, 0xfa, 0x2d,
+};
+static const unsigned char kat2579_addin0[] = {
+ 0xb6, 0x7c, 0xac, 0xea, 0x64, 0xcb, 0xb3, 0x5c, 0xe4, 0xcc, 0xe0, 0x9b,
+ 0xfe, 0xe1, 0x95, 0xf5, 0x16, 0x90, 0x73, 0x5a, 0x18, 0x81, 0xd9, 0x69,
+ 0xd0, 0x4a, 0xd8, 0xa3, 0xe7, 0x99, 0x5f, 0x9c, 0x80, 0x08, 0xa7, 0x63,
+ 0x03, 0xc6, 0x28, 0x48,
+};
+static const unsigned char kat2579_addin1[] = {
+ 0x4d, 0x8b, 0x9c, 0xad, 0x9c, 0x93, 0x32, 0x53, 0x31, 0x6d, 0x46, 0xe1,
+ 0xd2, 0xb9, 0x97, 0xcf, 0xd7, 0xd5, 0x48, 0x09, 0x19, 0xb5, 0xbe, 0x40,
+ 0xba, 0x0d, 0xa2, 0xbf, 0xe1, 0xc7, 0xec, 0x1e, 0xf2, 0x29, 0xb2, 0x13,
+ 0xb5, 0xa2, 0x03, 0x9a,
+};
+static const unsigned char kat2579_retbits[] = {
+ 0xfe, 0x7e, 0x78, 0x75, 0x09, 0x9f, 0xac, 0x19, 0xd4, 0xcf, 0xd0, 0x5f,
+ 0x2f, 0x79, 0x19, 0x5f, 0x95, 0x29, 0xdf, 0x6c, 0xd1, 0x7d, 0xe0, 0xdd,
+ 0xa6, 0xf7, 0xd2, 0x19, 0xcd, 0x4c, 0x8d, 0x11, 0xa2, 0x7a, 0x6a, 0xfe,
+ 0x25, 0x2c, 0x50, 0x8a, 0xa9, 0x05, 0xa3, 0x94, 0x58, 0x58, 0xb1, 0x12,
+ 0x2b, 0xec, 0x2a, 0x4b, 0xc3, 0x30, 0xcf, 0x97, 0x51, 0x4b, 0x97, 0x92,
+ 0x36, 0x9e, 0xda, 0x0d,
+};
+static const struct drbg_kat_pr_false kat2579_t = {
+ 13, kat2579_entropyin, kat2579_nonce, kat2579_persstr,
+ kat2579_entropyinreseed, kat2579_addinreseed, kat2579_addin0,
+ kat2579_addin1, kat2579_retbits
+};
+static const struct drbg_kat kat2579 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2579_t
+};
+
+static const unsigned char kat2580_entropyin[] = {
+ 0x04, 0xaf, 0x41, 0x0c, 0xe3, 0x90, 0xf2, 0x9b, 0x89, 0xaf, 0x36, 0xbf,
+ 0x87, 0xbe, 0x36, 0x5c, 0xff, 0x56, 0x9f, 0x24, 0x06, 0x7f, 0x24, 0x2d,
+ 0x15, 0xa8, 0x16, 0x78, 0x37, 0x8d, 0x43, 0x16, 0x08, 0x1c, 0x34, 0xe0,
+ 0x92, 0x00, 0xca, 0x52,
+};
+static const unsigned char kat2580_nonce[] = {0};
+static const unsigned char kat2580_persstr[] = {
+ 0xcd, 0x05, 0x96, 0xaa, 0x89, 0x6d, 0x5e, 0xb9, 0x9b, 0x3f, 0x57, 0xdf,
+ 0x89, 0xd7, 0xcd, 0xa6, 0x50, 0xc6, 0xe6, 0xeb, 0xc1, 0x39, 0x1e, 0x16,
+ 0x86, 0x74, 0x44, 0x98, 0xad, 0xee, 0x30, 0xaa, 0xbb, 0xfc, 0xad, 0x86,
+ 0x18, 0x8e, 0x72, 0x5f,
+};
+static const unsigned char kat2580_entropyinreseed[] = {
+ 0x72, 0x6b, 0xce, 0x25, 0x18, 0x38, 0x7a, 0xa2, 0x52, 0x1e, 0x1e, 0x89,
+ 0x61, 0x23, 0x4b, 0xd4, 0x8b, 0xc5, 0xaf, 0xf9, 0x70, 0xe4, 0xdb, 0x3d,
+ 0xe5, 0x1c, 0x67, 0x05, 0xaf, 0x42, 0x8e, 0x82, 0x03, 0x51, 0xf0, 0x84,
+ 0xce, 0x64, 0x54, 0xbf,
+};
+static const unsigned char kat2580_addinreseed[] = {
+ 0x4f, 0x42, 0x0a, 0x15, 0x95, 0xc8, 0x89, 0x87, 0xaf, 0xee, 0x6f, 0x70,
+ 0x51, 0xec, 0xea, 0xd3, 0xf2, 0xe1, 0x74, 0x14, 0xbe, 0x73, 0xa9, 0xda,
+ 0x10, 0x7d, 0xfc, 0x0b, 0xe8, 0x18, 0x2d, 0x41, 0xa3, 0x1d, 0x7a, 0x17,
+ 0x5c, 0x45, 0x74, 0xf3,
+};
+static const unsigned char kat2580_addin0[] = {
+ 0xeb, 0x4f, 0xa0, 0xae, 0x2b, 0xd5, 0xff, 0x9a, 0xb1, 0x95, 0x45, 0xd3,
+ 0x03, 0x50, 0xfa, 0xb0, 0x97, 0x19, 0xdb, 0x12, 0xf4, 0x28, 0xcc, 0xc3,
+ 0xfe, 0xa3, 0x6d, 0xa4, 0xa0, 0x2e, 0x8b, 0xec, 0x1f, 0x9d, 0x94, 0x0e,
+ 0x2e, 0x62, 0xd4, 0xc3,
+};
+static const unsigned char kat2580_addin1[] = {
+ 0xf1, 0xd0, 0x85, 0x3f, 0xc6, 0xfe, 0xcc, 0xa6, 0x73, 0x00, 0x79, 0xb5,
+ 0xe6, 0x48, 0x40, 0xbd, 0xcb, 0xc2, 0xcc, 0xf4, 0xa9, 0xe2, 0x0a, 0xa0,
+ 0x8e, 0x8e, 0xe2, 0xe4, 0x8c, 0x78, 0x58, 0x38, 0xb1, 0x54, 0xc6, 0x68,
+ 0x45, 0xe2, 0x42, 0x3b,
+};
+static const unsigned char kat2580_retbits[] = {
+ 0xa2, 0x99, 0x49, 0xeb, 0x92, 0x71, 0x6b, 0x06, 0x82, 0xcd, 0x27, 0xf6,
+ 0x2c, 0xa0, 0x0c, 0xfb, 0xad, 0x71, 0x7f, 0xc9, 0x76, 0xc5, 0x5d, 0xdd,
+ 0xd8, 0x54, 0xde, 0xd4, 0x4a, 0x53, 0xea, 0x2c, 0xd0, 0xdc, 0x0a, 0x97,
+ 0xdb, 0x8b, 0x60, 0x11, 0xd5, 0x83, 0xf8, 0xfc, 0xb5, 0x22, 0xb7, 0xf8,
+ 0xc3, 0xd2, 0xfd, 0xd6, 0x8e, 0xbd, 0xc0, 0x83, 0xe2, 0x3d, 0x5f, 0x57,
+ 0x37, 0xdf, 0xb5, 0x72,
+};
+static const struct drbg_kat_pr_false kat2580_t = {
+ 14, kat2580_entropyin, kat2580_nonce, kat2580_persstr,
+ kat2580_entropyinreseed, kat2580_addinreseed, kat2580_addin0,
+ kat2580_addin1, kat2580_retbits
+};
+static const struct drbg_kat kat2580 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2580_t
+};
+
+static const unsigned char kat2581_entropyin[] = {
+ 0x41, 0x43, 0xf1, 0x49, 0x49, 0xa4, 0xc1, 0x02, 0xed, 0x08, 0xe4, 0xe2,
+ 0x43, 0x88, 0xd0, 0xef, 0x7f, 0x66, 0xba, 0xac, 0x16, 0x1a, 0x6e, 0x6a,
+ 0xf1, 0xa3, 0x58, 0xd4, 0x78, 0x74, 0x5b, 0x6e, 0xe7, 0x96, 0x34, 0xb8,
+ 0xfb, 0x7a, 0x94, 0xe4,
+};
+static const unsigned char kat2581_nonce[] = {0};
+static const unsigned char kat2581_persstr[] = {0};
+static const unsigned char kat2581_entropyinreseed[] = {
+ 0x43, 0x81, 0x0b, 0xb8, 0xf9, 0x4e, 0x76, 0xcf, 0xe7, 0xf6, 0xf9, 0x83,
+ 0xbd, 0x83, 0xe3, 0xe2, 0x16, 0xb6, 0x30, 0x43, 0x17, 0x57, 0xe2, 0xbf,
+ 0x64, 0xa7, 0x83, 0x31, 0x80, 0x2f, 0x62, 0x76, 0xdd, 0x8d, 0x8f, 0x3d,
+ 0x76, 0x88, 0xc3, 0x0d,
+};
+static const unsigned char kat2581_addinreseed[] = {0};
+static const unsigned char kat2581_addin0[] = {0};
+static const unsigned char kat2581_addin1[] = {0};
+static const unsigned char kat2581_retbits[] = {
+ 0xa5, 0xe6, 0xfd, 0xc2, 0xb9, 0xee, 0xcf, 0x4d, 0xd7, 0x8a, 0x31, 0xf2,
+ 0x64, 0x85, 0xbb, 0xd5, 0xb1, 0x7b, 0xad, 0x6c, 0xd3, 0x15, 0xfd, 0x44,
+ 0x89, 0x70, 0xf3, 0x74, 0xb4, 0xf1, 0xc3, 0xa6, 0x05, 0x4f, 0xee, 0x54,
+ 0x50, 0x73, 0x5f, 0xba, 0x04, 0x97, 0x45, 0xa7, 0xa6, 0x67, 0x52, 0x73,
+ 0x58, 0x02, 0xb1, 0x95, 0x69, 0xde, 0x2a, 0x01, 0x7c, 0x54, 0x75, 0xa2,
+ 0x5a, 0xe9, 0x9d, 0x2b,
+};
+static const struct drbg_kat_pr_false kat2581_t = {
+ 0, kat2581_entropyin, kat2581_nonce, kat2581_persstr,
+ kat2581_entropyinreseed, kat2581_addinreseed, kat2581_addin0,
+ kat2581_addin1, kat2581_retbits
+};
+static const struct drbg_kat kat2581 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2581_t
+};
+
+static const unsigned char kat2582_entropyin[] = {
+ 0xa1, 0xe8, 0x12, 0x7d, 0x48, 0x5c, 0x22, 0xc2, 0x69, 0x1b, 0x34, 0x2a,
+ 0x42, 0x9d, 0x05, 0xdb, 0xed, 0x20, 0x0f, 0x41, 0x11, 0xde, 0xc8, 0xc1,
+ 0x90, 0x6e, 0xd3, 0x3f, 0xd0, 0x57, 0xea, 0xb3, 0x6c, 0xff, 0xb0, 0x95,
+ 0xf7, 0xe7, 0x64, 0xfb,
+};
+static const unsigned char kat2582_nonce[] = {0};
+static const unsigned char kat2582_persstr[] = {0};
+static const unsigned char kat2582_entropyinreseed[] = {
+ 0x12, 0xa7, 0xe9, 0x46, 0x4f, 0x47, 0x58, 0xb7, 0x89, 0xcb, 0x32, 0xf2,
+ 0xb0, 0x25, 0xba, 0x12, 0x06, 0x79, 0x43, 0x24, 0x63, 0x6b, 0x2e, 0xa1,
+ 0xda, 0x3e, 0x12, 0x0f, 0x97, 0xc2, 0x16, 0xee, 0x14, 0xbf, 0x33, 0x2f,
+ 0x79, 0xd3, 0x39, 0x5c,
+};
+static const unsigned char kat2582_addinreseed[] = {0};
+static const unsigned char kat2582_addin0[] = {0};
+static const unsigned char kat2582_addin1[] = {0};
+static const unsigned char kat2582_retbits[] = {
+ 0x09, 0xa3, 0x7b, 0x3d, 0x31, 0x46, 0xe0, 0xd4, 0x1b, 0x93, 0xbf, 0x0d,
+ 0xec, 0xf4, 0x51, 0x21, 0xaf, 0xd3, 0x0d, 0x30, 0x7b, 0x8a, 0xfb, 0x4b,
+ 0x1a, 0x6e, 0x4a, 0xf9, 0x18, 0x36, 0x9c, 0x80, 0xd3, 0x04, 0x9f, 0x75,
+ 0x70, 0x83, 0xfb, 0xac, 0xb3, 0xb6, 0xbf, 0xf8, 0x5e, 0x01, 0xe3, 0x93,
+ 0x62, 0xfe, 0xca, 0xb5, 0x42, 0x7d, 0x33, 0x00, 0x5b, 0xd8, 0x3e, 0xac,
+ 0x1a, 0xba, 0x6d, 0xba,
+};
+static const struct drbg_kat_pr_false kat2582_t = {
+ 1, kat2582_entropyin, kat2582_nonce, kat2582_persstr,
+ kat2582_entropyinreseed, kat2582_addinreseed, kat2582_addin0,
+ kat2582_addin1, kat2582_retbits
+};
+static const struct drbg_kat kat2582 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2582_t
+};
+
+static const unsigned char kat2583_entropyin[] = {
+ 0xe9, 0xbb, 0x16, 0x37, 0x2a, 0xb0, 0x2b, 0x3d, 0x0c, 0x12, 0x44, 0xa5,
+ 0xf3, 0xa6, 0xfa, 0x6e, 0x76, 0x0c, 0x9a, 0xd5, 0x99, 0xcb, 0xcd, 0x17,
+ 0x01, 0x1d, 0xdf, 0xc6, 0xcb, 0x85, 0x1f, 0x01, 0x85, 0x43, 0xa4, 0xe8,
+ 0x2c, 0x3c, 0xd1, 0xc6,
+};
+static const unsigned char kat2583_nonce[] = {0};
+static const unsigned char kat2583_persstr[] = {0};
+static const unsigned char kat2583_entropyinreseed[] = {
+ 0x24, 0x31, 0x20, 0x89, 0x77, 0x4e, 0x11, 0x8f, 0xfb, 0x3e, 0xca, 0x0d,
+ 0x28, 0x18, 0x14, 0x1f, 0x17, 0x18, 0xc1, 0x02, 0xc9, 0x98, 0xb7, 0x59,
+ 0x4a, 0xa5, 0x57, 0x8a, 0xf9, 0x6b, 0xc5, 0x89, 0x95, 0x20, 0xab, 0x36,
+ 0x46, 0x67, 0xa9, 0xef,
+};
+static const unsigned char kat2583_addinreseed[] = {0};
+static const unsigned char kat2583_addin0[] = {0};
+static const unsigned char kat2583_addin1[] = {0};
+static const unsigned char kat2583_retbits[] = {
+ 0x71, 0xe3, 0x05, 0xd9, 0x1a, 0x09, 0x74, 0xf3, 0xf4, 0xf9, 0x2f, 0x3a,
+ 0x49, 0x8e, 0xc1, 0xf3, 0xa5, 0x80, 0x24, 0xc9, 0x99, 0x7f, 0x73, 0x70,
+ 0x70, 0x18, 0x38, 0x29, 0xa0, 0x48, 0x50, 0x25, 0x8d, 0x94, 0xf8, 0xfb,
+ 0x53, 0x14, 0x69, 0xb9, 0x31, 0x17, 0x7e, 0x84, 0x7d, 0xed, 0x10, 0x9f,
+ 0x0f, 0x54, 0x23, 0x9e, 0x8e, 0x98, 0x4f, 0xe9, 0x6d, 0xf3, 0x53, 0xc4,
+ 0x48, 0x6d, 0x15, 0x50,
+};
+static const struct drbg_kat_pr_false kat2583_t = {
+ 2, kat2583_entropyin, kat2583_nonce, kat2583_persstr,
+ kat2583_entropyinreseed, kat2583_addinreseed, kat2583_addin0,
+ kat2583_addin1, kat2583_retbits
+};
+static const struct drbg_kat kat2583 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2583_t
+};
+
+static const unsigned char kat2584_entropyin[] = {
+ 0x25, 0xab, 0x26, 0x7f, 0xba, 0xcb, 0x41, 0x1e, 0x5f, 0x2d, 0x38, 0x9e,
+ 0x84, 0x2b, 0x4e, 0x66, 0x5c, 0x06, 0x44, 0x6e, 0x65, 0x7b, 0x00, 0xed,
+ 0x37, 0x7f, 0x75, 0x34, 0xe5, 0x6a, 0xfe, 0x92, 0xee, 0x3f, 0x07, 0xc1,
+ 0xd3, 0xaa, 0x02, 0xe2,
+};
+static const unsigned char kat2584_nonce[] = {0};
+static const unsigned char kat2584_persstr[] = {0};
+static const unsigned char kat2584_entropyinreseed[] = {
+ 0x18, 0x68, 0xbe, 0x40, 0x8b, 0xbd, 0x4c, 0xdf, 0x90, 0x37, 0x98, 0xeb,
+ 0xe4, 0xc8, 0x9b, 0x9b, 0x5a, 0xec, 0xc3, 0xc8, 0x8e, 0x01, 0x8d, 0x77,
+ 0xb2, 0xcf, 0x58, 0x13, 0x37, 0x88, 0xe9, 0x29, 0xae, 0x90, 0x54, 0x5a,
+ 0x3d, 0xc7, 0x6a, 0xf8,
+};
+static const unsigned char kat2584_addinreseed[] = {0};
+static const unsigned char kat2584_addin0[] = {0};
+static const unsigned char kat2584_addin1[] = {0};
+static const unsigned char kat2584_retbits[] = {
+ 0x35, 0x25, 0x63, 0xf9, 0x30, 0x73, 0x69, 0x7e, 0xab, 0x3c, 0xfb, 0x4d,
+ 0x97, 0xbc, 0xca, 0x1f, 0x27, 0xda, 0x4f, 0xd8, 0x71, 0x77, 0x16, 0x54,
+ 0xee, 0x47, 0x90, 0x28, 0x6a, 0xd7, 0x03, 0x2c, 0x77, 0x35, 0xe8, 0x7a,
+ 0x3f, 0xe4, 0x80, 0x89, 0x94, 0x92, 0xf6, 0x8a, 0x73, 0xea, 0x3b, 0xe3,
+ 0xbc, 0xa3, 0x6b, 0xb0, 0x99, 0x7f, 0xf0, 0x8b, 0x2c, 0x72, 0x42, 0x15,
+ 0x67, 0xc8, 0x87, 0x1c,
+};
+static const struct drbg_kat_pr_false kat2584_t = {
+ 3, kat2584_entropyin, kat2584_nonce, kat2584_persstr,
+ kat2584_entropyinreseed, kat2584_addinreseed, kat2584_addin0,
+ kat2584_addin1, kat2584_retbits
+};
+static const struct drbg_kat kat2584 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2584_t
+};
+
+static const unsigned char kat2585_entropyin[] = {
+ 0x7b, 0xf7, 0x76, 0x38, 0x91, 0x09, 0xd7, 0x52, 0xd7, 0xca, 0x8d, 0x29,
+ 0xf1, 0x51, 0x91, 0xda, 0x3c, 0x43, 0x77, 0x58, 0xba, 0xb4, 0xa8, 0x90,
+ 0x0d, 0x39, 0xd2, 0x63, 0xf4, 0xa8, 0x78, 0xd4, 0xbc, 0x19, 0x15, 0xf6,
+ 0x30, 0x46, 0xed, 0xfe,
+};
+static const unsigned char kat2585_nonce[] = {0};
+static const unsigned char kat2585_persstr[] = {0};
+static const unsigned char kat2585_entropyinreseed[] = {
+ 0xd9, 0xfa, 0x77, 0x1d, 0x12, 0x1f, 0xda, 0x64, 0x8c, 0x98, 0x02, 0xfe,
+ 0xd5, 0x8b, 0x25, 0x9b, 0x57, 0xff, 0x99, 0xb0, 0x1d, 0x45, 0x21, 0x8f,
+ 0x22, 0x6d, 0x89, 0x68, 0x5d, 0xda, 0x4f, 0x4d, 0xee, 0x0e, 0x54, 0x3a,
+ 0xda, 0x9b, 0x18, 0x1f,
+};
+static const unsigned char kat2585_addinreseed[] = {0};
+static const unsigned char kat2585_addin0[] = {0};
+static const unsigned char kat2585_addin1[] = {0};
+static const unsigned char kat2585_retbits[] = {
+ 0x9b, 0xe5, 0x53, 0xc2, 0x94, 0xa5, 0xc8, 0x93, 0x94, 0xd9, 0xeb, 0x0b,
+ 0x43, 0x0d, 0x05, 0xc9, 0xbe, 0xc0, 0xf7, 0xb7, 0x5c, 0xe1, 0x83, 0xef,
+ 0x06, 0x04, 0x85, 0x95, 0x19, 0xa7, 0xe5, 0x05, 0xaa, 0xe4, 0x41, 0x6c,
+ 0x98, 0x72, 0x98, 0x28, 0x58, 0xdd, 0x27, 0x51, 0x67, 0x3c, 0x31, 0xaa,
+ 0xeb, 0x15, 0x15, 0xcd, 0x95, 0x7c, 0x11, 0xf4, 0xe0, 0x1d, 0x49, 0x31,
+ 0x8a, 0x94, 0x81, 0x7e,
+};
+static const struct drbg_kat_pr_false kat2585_t = {
+ 4, kat2585_entropyin, kat2585_nonce, kat2585_persstr,
+ kat2585_entropyinreseed, kat2585_addinreseed, kat2585_addin0,
+ kat2585_addin1, kat2585_retbits
+};
+static const struct drbg_kat kat2585 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2585_t
+};
+
+static const unsigned char kat2586_entropyin[] = {
+ 0x8e, 0xfb, 0x09, 0xa2, 0x5e, 0x68, 0x51, 0x78, 0x1e, 0x61, 0x44, 0x98,
+ 0x7c, 0x57, 0xc8, 0x18, 0x46, 0x81, 0xf7, 0x32, 0x0a, 0x86, 0xd4, 0x95,
+ 0x2c, 0x18, 0xda, 0xaa, 0x7b, 0x96, 0xb3, 0x8b, 0x2c, 0x1e, 0x13, 0x88,
+ 0x1a, 0x89, 0x95, 0xa3,
+};
+static const unsigned char kat2586_nonce[] = {0};
+static const unsigned char kat2586_persstr[] = {0};
+static const unsigned char kat2586_entropyinreseed[] = {
+ 0x5f, 0x41, 0x3a, 0x40, 0x76, 0x92, 0xd8, 0xe5, 0x31, 0x76, 0xb1, 0x90,
+ 0xaf, 0x27, 0xda, 0xe1, 0x7b, 0x08, 0xb3, 0xf7, 0x08, 0xb6, 0xac, 0x3c,
+ 0x57, 0x22, 0xe4, 0x35, 0xfe, 0x00, 0x89, 0x7e, 0x25, 0x6d, 0xc7, 0xeb,
+ 0xe5, 0xcf, 0x38, 0x00,
+};
+static const unsigned char kat2586_addinreseed[] = {0};
+static const unsigned char kat2586_addin0[] = {0};
+static const unsigned char kat2586_addin1[] = {0};
+static const unsigned char kat2586_retbits[] = {
+ 0xe8, 0x46, 0x62, 0x22, 0x36, 0xeb, 0x1e, 0x51, 0xee, 0xe5, 0x8a, 0x3f,
+ 0xae, 0x3d, 0x65, 0x3c, 0x05, 0x82, 0x0d, 0xcb, 0x32, 0x88, 0xa5, 0x58,
+ 0xcd, 0x69, 0x8c, 0x44, 0x9a, 0x9b, 0xc4, 0x02, 0xc7, 0x99, 0x6c, 0xf0,
+ 0xe0, 0xb2, 0x4c, 0x00, 0x15, 0x86, 0x20, 0x9e, 0x8a, 0x57, 0xc4, 0x54,
+ 0xf7, 0x27, 0xaf, 0x38, 0x17, 0x22, 0xe4, 0x8b, 0x4c, 0xed, 0xf2, 0x7e,
+ 0x23, 0xb0, 0x86, 0xa6,
+};
+static const struct drbg_kat_pr_false kat2586_t = {
+ 5, kat2586_entropyin, kat2586_nonce, kat2586_persstr,
+ kat2586_entropyinreseed, kat2586_addinreseed, kat2586_addin0,
+ kat2586_addin1, kat2586_retbits
+};
+static const struct drbg_kat kat2586 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2586_t
+};
+
+static const unsigned char kat2587_entropyin[] = {
+ 0x43, 0x59, 0x7c, 0x42, 0xcd, 0xb2, 0xec, 0x6c, 0xcd, 0xd3, 0x7c, 0xaa,
+ 0xa2, 0x67, 0x34, 0x1b, 0x51, 0x5b, 0x7d, 0x50, 0xd7, 0x7f, 0xba, 0x14,
+ 0x59, 0xe9, 0x10, 0x71, 0x8f, 0x76, 0xbc, 0x11, 0x00, 0xd6, 0x87, 0x43,
+ 0x35, 0xf3, 0x3e, 0x67,
+};
+static const unsigned char kat2587_nonce[] = {0};
+static const unsigned char kat2587_persstr[] = {0};
+static const unsigned char kat2587_entropyinreseed[] = {
+ 0x3a, 0x1b, 0x97, 0xd4, 0xb6, 0xa2, 0xe9, 0xb5, 0x84, 0xee, 0xeb, 0x90,
+ 0xa3, 0x49, 0xe7, 0xb2, 0x11, 0x71, 0xe6, 0xa7, 0x0d, 0xf3, 0x53, 0xf0,
+ 0xeb, 0x8e, 0x3a, 0xd4, 0x1a, 0x4c, 0x15, 0x7c, 0x0c, 0x4f, 0xe5, 0x1b,
+ 0x17, 0x31, 0xb3, 0xd0,
+};
+static const unsigned char kat2587_addinreseed[] = {0};
+static const unsigned char kat2587_addin0[] = {0};
+static const unsigned char kat2587_addin1[] = {0};
+static const unsigned char kat2587_retbits[] = {
+ 0x3d, 0x67, 0xc0, 0xf1, 0x42, 0x51, 0xb7, 0xc1, 0x82, 0x28, 0xcb, 0x1e,
+ 0xde, 0x24, 0x75, 0xa3, 0x57, 0x13, 0x5a, 0xf2, 0x7a, 0x17, 0x88, 0x18,
+ 0xe6, 0x1f, 0xf8, 0xc0, 0x6c, 0x0a, 0x59, 0xfa, 0xd9, 0xba, 0x12, 0xcc,
+ 0x2f, 0x2d, 0xcd, 0xed, 0xb6, 0x1a, 0xf5, 0x64, 0x97, 0x22, 0x5b, 0x1a,
+ 0xdb, 0x1b, 0xd1, 0x5a, 0x81, 0x37, 0x96, 0x4a, 0x43, 0xa7, 0x5d, 0x52,
+ 0x5f, 0x2c, 0xbf, 0x6b,
+};
+static const struct drbg_kat_pr_false kat2587_t = {
+ 6, kat2587_entropyin, kat2587_nonce, kat2587_persstr,
+ kat2587_entropyinreseed, kat2587_addinreseed, kat2587_addin0,
+ kat2587_addin1, kat2587_retbits
+};
+static const struct drbg_kat kat2587 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2587_t
+};
+
+static const unsigned char kat2588_entropyin[] = {
+ 0x8b, 0xcc, 0x87, 0xf4, 0xd6, 0x3d, 0x0e, 0xc1, 0x78, 0x44, 0x2d, 0xd3,
+ 0x5e, 0xd2, 0x5f, 0xc0, 0x64, 0x40, 0x48, 0x21, 0x47, 0x7f, 0xb4, 0x9e,
+ 0xf2, 0x16, 0x8b, 0xc7, 0x30, 0x25, 0x5d, 0x97, 0x9a, 0x5d, 0x59, 0x9a,
+ 0x42, 0xb3, 0x76, 0x3d,
+};
+static const unsigned char kat2588_nonce[] = {0};
+static const unsigned char kat2588_persstr[] = {0};
+static const unsigned char kat2588_entropyinreseed[] = {
+ 0x7d, 0x4f, 0xfe, 0xae, 0xd0, 0x3a, 0xc4, 0x06, 0x37, 0x7b, 0x87, 0xa1,
+ 0x3f, 0x35, 0x16, 0xac, 0x6e, 0xff, 0x95, 0xf2, 0x19, 0x2f, 0x37, 0x97,
+ 0x3f, 0xf2, 0x30, 0xa8, 0x79, 0xd3, 0x5f, 0xb2, 0x42, 0x4f, 0x3f, 0xf8,
+ 0x6f, 0x1c, 0xfa, 0x77,
+};
+static const unsigned char kat2588_addinreseed[] = {0};
+static const unsigned char kat2588_addin0[] = {0};
+static const unsigned char kat2588_addin1[] = {0};
+static const unsigned char kat2588_retbits[] = {
+ 0x6a, 0x02, 0x8d, 0x7e, 0x73, 0xd1, 0x1b, 0x35, 0x72, 0x46, 0x49, 0x98,
+ 0x0a, 0xa8, 0xf5, 0xa6, 0x81, 0x37, 0x20, 0x9b, 0xd2, 0xc9, 0x88, 0x65,
+ 0x65, 0x66, 0x50, 0xff, 0x4f, 0x10, 0xc0, 0x74, 0x55, 0x23, 0x22, 0x46,
+ 0x32, 0xbb, 0x02, 0x44, 0x2e, 0x75, 0x77, 0x7d, 0x1e, 0xd8, 0x82, 0xb2,
+ 0x5f, 0x18, 0x37, 0x21, 0x97, 0x72, 0x72, 0x9b, 0x22, 0x85, 0x93, 0x5c,
+ 0x6f, 0x53, 0x5e, 0xa9,
+};
+static const struct drbg_kat_pr_false kat2588_t = {
+ 7, kat2588_entropyin, kat2588_nonce, kat2588_persstr,
+ kat2588_entropyinreseed, kat2588_addinreseed, kat2588_addin0,
+ kat2588_addin1, kat2588_retbits
+};
+static const struct drbg_kat kat2588 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2588_t
+};
+
+static const unsigned char kat2589_entropyin[] = {
+ 0x0b, 0x0b, 0xa1, 0x33, 0x61, 0xb6, 0xb3, 0x6e, 0x93, 0x28, 0x69, 0xc3,
+ 0x0b, 0x9e, 0x88, 0xe7, 0xf9, 0xdc, 0x2b, 0xdf, 0x9d, 0x9e, 0x0d, 0xac,
+ 0x48, 0x7b, 0x0c, 0x1c, 0x89, 0x25, 0xe1, 0xdf, 0xc4, 0xec, 0x4e, 0xbb,
+ 0xca, 0x50, 0xa6, 0x4f,
+};
+static const unsigned char kat2589_nonce[] = {0};
+static const unsigned char kat2589_persstr[] = {0};
+static const unsigned char kat2589_entropyinreseed[] = {
+ 0x8e, 0xeb, 0x7d, 0x77, 0x3e, 0xa5, 0xa5, 0xe1, 0xba, 0x66, 0xee, 0x64,
+ 0xfb, 0x4f, 0x80, 0x47, 0xd9, 0x5f, 0x3a, 0x20, 0x86, 0x07, 0x9f, 0xd6,
+ 0x31, 0xb2, 0xa1, 0x7b, 0xe8, 0xb9, 0x28, 0xb4, 0xe0, 0xdb, 0xd5, 0x0a,
+ 0x7e, 0x6e, 0xb2, 0xa1,
+};
+static const unsigned char kat2589_addinreseed[] = {0};
+static const unsigned char kat2589_addin0[] = {0};
+static const unsigned char kat2589_addin1[] = {0};
+static const unsigned char kat2589_retbits[] = {
+ 0x0e, 0xe5, 0x63, 0x1c, 0xff, 0x99, 0xaa, 0xf7, 0xbb, 0xa4, 0xe1, 0x71,
+ 0x8d, 0x3c, 0x3d, 0x87, 0x3e, 0xe8, 0xe7, 0xc4, 0x1c, 0x6c, 0x1c, 0x55,
+ 0x32, 0x01, 0xc7, 0x82, 0x99, 0x67, 0x7b, 0xca, 0x17, 0x2f, 0x85, 0xab,
+ 0x7c, 0x6c, 0xb5, 0x26, 0x58, 0x62, 0xd8, 0xa6, 0xaf, 0xa8, 0x23, 0xf5,
+ 0xbb, 0xef, 0xf1, 0x41, 0xd6, 0x89, 0xf6, 0x23, 0x12, 0x8c, 0x15, 0x9f,
+ 0xb5, 0xd4, 0xde, 0x7d,
+};
+static const struct drbg_kat_pr_false kat2589_t = {
+ 8, kat2589_entropyin, kat2589_nonce, kat2589_persstr,
+ kat2589_entropyinreseed, kat2589_addinreseed, kat2589_addin0,
+ kat2589_addin1, kat2589_retbits
+};
+static const struct drbg_kat kat2589 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2589_t
+};
+
+static const unsigned char kat2590_entropyin[] = {
+ 0xc9, 0xbb, 0xd2, 0x7e, 0x20, 0x7f, 0x1b, 0x22, 0x9c, 0x25, 0xa2, 0xbb,
+ 0x37, 0xfd, 0xff, 0x34, 0xd8, 0xc5, 0x65, 0xd1, 0x7a, 0xcb, 0xad, 0xd9,
+ 0xdf, 0xe4, 0x61, 0x18, 0xb2, 0xaf, 0xd9, 0x72, 0x36, 0xf3, 0x0e, 0x12,
+ 0x93, 0x4a, 0x24, 0xea,
+};
+static const unsigned char kat2590_nonce[] = {0};
+static const unsigned char kat2590_persstr[] = {0};
+static const unsigned char kat2590_entropyinreseed[] = {
+ 0xef, 0xca, 0xa4, 0x52, 0x74, 0x30, 0xb8, 0xc5, 0xc2, 0x6b, 0x8b, 0x11,
+ 0xda, 0x23, 0xd5, 0xca, 0x05, 0xc4, 0xdb, 0x14, 0xb1, 0xc8, 0x2c, 0xdb,
+ 0x7d, 0x20, 0x04, 0xfc, 0x9b, 0xd0, 0xfd, 0xa1, 0xb8, 0xf3, 0x23, 0x42,
+ 0x4d, 0x03, 0x53, 0x47,
+};
+static const unsigned char kat2590_addinreseed[] = {0};
+static const unsigned char kat2590_addin0[] = {0};
+static const unsigned char kat2590_addin1[] = {0};
+static const unsigned char kat2590_retbits[] = {
+ 0x14, 0x0c, 0x02, 0x0b, 0xb4, 0x13, 0x91, 0xff, 0x2d, 0xdc, 0x1b, 0x48,
+ 0xe7, 0x73, 0x55, 0x4a, 0x61, 0x66, 0x51, 0xa5, 0xe0, 0x38, 0x23, 0xe3,
+ 0xa6, 0xfa, 0x53, 0x12, 0xdd, 0x65, 0x27, 0x79, 0x24, 0x57, 0x38, 0xf4,
+ 0xe0, 0xd4, 0xcf, 0xb4, 0x63, 0x1e, 0x7e, 0x70, 0xbb, 0xba, 0x90, 0x8f,
+ 0xde, 0x87, 0xf9, 0x5c, 0x00, 0x55, 0xbd, 0x7f, 0xd0, 0xae, 0xd9, 0x5f,
+ 0xf7, 0xeb, 0x99, 0x0b,
+};
+static const struct drbg_kat_pr_false kat2590_t = {
+ 9, kat2590_entropyin, kat2590_nonce, kat2590_persstr,
+ kat2590_entropyinreseed, kat2590_addinreseed, kat2590_addin0,
+ kat2590_addin1, kat2590_retbits
+};
+static const struct drbg_kat kat2590 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2590_t
+};
+
+static const unsigned char kat2591_entropyin[] = {
+ 0xa3, 0xca, 0x9f, 0xb8, 0x97, 0x07, 0xf0, 0xd5, 0x62, 0xf1, 0xd0, 0xf7,
+ 0x07, 0xb7, 0x70, 0xcc, 0x2b, 0x2d, 0x5d, 0x03, 0x8e, 0x89, 0x05, 0xdd,
+ 0x02, 0xb0, 0xe2, 0x86, 0xdc, 0x95, 0x4e, 0xc2, 0xa9, 0xe0, 0x4b, 0x12,
+ 0x83, 0x72, 0xe5, 0x67,
+};
+static const unsigned char kat2591_nonce[] = {0};
+static const unsigned char kat2591_persstr[] = {0};
+static const unsigned char kat2591_entropyinreseed[] = {
+ 0x70, 0xf0, 0xd7, 0x52, 0x8b, 0x59, 0x85, 0x3b, 0xbb, 0x04, 0x65, 0xf2,
+ 0xe5, 0xe0, 0xbe, 0xef, 0xd7, 0xfa, 0x33, 0x35, 0xf8, 0xe6, 0x56, 0xc3,
+ 0x11, 0xcc, 0x07, 0x4b, 0x8c, 0x15, 0xa8, 0xa5, 0xed, 0x3e, 0xce, 0xd8,
+ 0xc4, 0x8a, 0x2f, 0x25,
+};
+static const unsigned char kat2591_addinreseed[] = {0};
+static const unsigned char kat2591_addin0[] = {0};
+static const unsigned char kat2591_addin1[] = {0};
+static const unsigned char kat2591_retbits[] = {
+ 0x1b, 0xb0, 0xe5, 0x0a, 0x0c, 0x13, 0x81, 0xce, 0x3a, 0x72, 0x2b, 0xb4,
+ 0xf7, 0xa0, 0xda, 0x28, 0x00, 0x9a, 0x4c, 0x24, 0x06, 0x35, 0x03, 0xb9,
+ 0x1b, 0x4b, 0x7b, 0x87, 0x71, 0xce, 0xa3, 0xf8, 0x88, 0xae, 0xfa, 0x14,
+ 0xe9, 0x56, 0xcc, 0x43, 0xb8, 0xa7, 0xdd, 0x38, 0xd2, 0x1a, 0x2b, 0x88,
+ 0xfc, 0x0b, 0x3a, 0x11, 0xca, 0x3a, 0x4b, 0x0e, 0xa5, 0x2b, 0x53, 0xbb,
+ 0x3a, 0xd3, 0xe2, 0x62,
+};
+static const struct drbg_kat_pr_false kat2591_t = {
+ 10, kat2591_entropyin, kat2591_nonce, kat2591_persstr,
+ kat2591_entropyinreseed, kat2591_addinreseed, kat2591_addin0,
+ kat2591_addin1, kat2591_retbits
+};
+static const struct drbg_kat kat2591 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2591_t
+};
+
+static const unsigned char kat2592_entropyin[] = {
+ 0xb9, 0x21, 0x08, 0xb6, 0xea, 0x0c, 0x1a, 0x24, 0x14, 0xc2, 0x04, 0x90,
+ 0x3e, 0x7c, 0x80, 0x71, 0xf5, 0xdd, 0xc8, 0xf7, 0xe3, 0x22, 0x1d, 0x6d,
+ 0x0b, 0x4c, 0xbc, 0x2f, 0xb5, 0x61, 0x7b, 0xe6, 0xc1, 0xda, 0x96, 0x00,
+ 0x63, 0xf9, 0xa2, 0x1a,
+};
+static const unsigned char kat2592_nonce[] = {0};
+static const unsigned char kat2592_persstr[] = {0};
+static const unsigned char kat2592_entropyinreseed[] = {
+ 0xed, 0xc9, 0x6d, 0xf8, 0xa7, 0x0d, 0x2e, 0xe1, 0xab, 0x5f, 0xc7, 0xdc,
+ 0x11, 0x00, 0x8a, 0xa3, 0xc6, 0xdf, 0xd2, 0x40, 0x48, 0xeb, 0xeb, 0x89,
+ 0x95, 0x14, 0x49, 0x40, 0x44, 0x4a, 0x89, 0xd5, 0x03, 0x94, 0x0f, 0xb3,
+ 0x69, 0x6b, 0xec, 0x29,
+};
+static const unsigned char kat2592_addinreseed[] = {0};
+static const unsigned char kat2592_addin0[] = {0};
+static const unsigned char kat2592_addin1[] = {0};
+static const unsigned char kat2592_retbits[] = {
+ 0xf1, 0xb0, 0xc1, 0x0a, 0x67, 0x36, 0x76, 0x0a, 0xd8, 0x17, 0x11, 0xfa,
+ 0x1e, 0x84, 0xb1, 0x08, 0x4a, 0x06, 0xf7, 0x0e, 0xed, 0x3f, 0x08, 0x07,
+ 0xb5, 0x99, 0x2b, 0xfb, 0x59, 0x5f, 0xef, 0xa2, 0x77, 0x41, 0xbb, 0xc6,
+ 0x38, 0xbe, 0x1c, 0xf1, 0xd4, 0x57, 0x6e, 0xec, 0xf2, 0xef, 0x82, 0xf1,
+ 0x2e, 0xe2, 0x49, 0xa2, 0x47, 0x91, 0x03, 0x30, 0xd9, 0x59, 0x3e, 0x37,
+ 0x41, 0x92, 0xf9, 0xf5,
+};
+static const struct drbg_kat_pr_false kat2592_t = {
+ 11, kat2592_entropyin, kat2592_nonce, kat2592_persstr,
+ kat2592_entropyinreseed, kat2592_addinreseed, kat2592_addin0,
+ kat2592_addin1, kat2592_retbits
+};
+static const struct drbg_kat kat2592 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2592_t
+};
+
+static const unsigned char kat2593_entropyin[] = {
+ 0x54, 0x4d, 0x73, 0x39, 0x09, 0x07, 0x42, 0x47, 0x6c, 0xa8, 0xa3, 0x26,
+ 0x57, 0x4e, 0x52, 0x02, 0x9b, 0xd5, 0xe9, 0x30, 0x9c, 0xc9, 0x13, 0x38,
+ 0x60, 0x1e, 0x24, 0xd4, 0x64, 0xe0, 0xcf, 0xcb, 0xa3, 0xe7, 0x2e, 0x36,
+ 0x78, 0xa2, 0xa8, 0xa4,
+};
+static const unsigned char kat2593_nonce[] = {0};
+static const unsigned char kat2593_persstr[] = {0};
+static const unsigned char kat2593_entropyinreseed[] = {
+ 0x41, 0xfa, 0x1a, 0xdd, 0x1c, 0xa9, 0x1b, 0x3d, 0x4d, 0x2d, 0xf9, 0xdf,
+ 0x78, 0xbc, 0x7d, 0xe4, 0x1b, 0x00, 0xfb, 0xcb, 0xdf, 0x79, 0x32, 0xdd,
+ 0xa0, 0x95, 0x2a, 0x41, 0x15, 0x13, 0x79, 0xb7, 0xc0, 0x98, 0x01, 0x2f,
+ 0x86, 0x0f, 0x0a, 0xf7,
+};
+static const unsigned char kat2593_addinreseed[] = {0};
+static const unsigned char kat2593_addin0[] = {0};
+static const unsigned char kat2593_addin1[] = {0};
+static const unsigned char kat2593_retbits[] = {
+ 0x28, 0xbb, 0x3f, 0x53, 0x51, 0x4a, 0xa1, 0xac, 0xc1, 0x58, 0x1a, 0xf7,
+ 0xcc, 0x31, 0x7b, 0x00, 0xa4, 0xd6, 0xa0, 0x3f, 0x4a, 0x66, 0x9f, 0x78,
+ 0x48, 0x91, 0xef, 0x21, 0xa0, 0x7f, 0xfe, 0xcd, 0x3d, 0x7a, 0x40, 0xf9,
+ 0xdb, 0x60, 0x59, 0xd6, 0xbf, 0x90, 0xe6, 0x95, 0x44, 0x5b, 0xd5, 0xe2,
+ 0x4f, 0x2e, 0xfa, 0xc0, 0xaf, 0x49, 0xe7, 0x52, 0xc0, 0xdf, 0x8c, 0x98,
+ 0xc8, 0x0b, 0x39, 0x85,
+};
+static const struct drbg_kat_pr_false kat2593_t = {
+ 12, kat2593_entropyin, kat2593_nonce, kat2593_persstr,
+ kat2593_entropyinreseed, kat2593_addinreseed, kat2593_addin0,
+ kat2593_addin1, kat2593_retbits
+};
+static const struct drbg_kat kat2593 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2593_t
+};
+
+static const unsigned char kat2594_entropyin[] = {
+ 0x85, 0x06, 0xb2, 0x22, 0x0b, 0xc2, 0xf4, 0x52, 0xd6, 0x40, 0x68, 0x5d,
+ 0x06, 0x8a, 0xea, 0xb3, 0x1d, 0x5c, 0x66, 0x57, 0x02, 0xa5, 0xf4, 0x2d,
+ 0xa6, 0x85, 0x6a, 0xa8, 0x25, 0x88, 0x4a, 0x08, 0xb6, 0x13, 0xb2, 0x7b,
+ 0xe4, 0xe8, 0x57, 0x17,
+};
+static const unsigned char kat2594_nonce[] = {0};
+static const unsigned char kat2594_persstr[] = {0};
+static const unsigned char kat2594_entropyinreseed[] = {
+ 0xab, 0x28, 0x9b, 0xac, 0x2c, 0x6a, 0xea, 0xb3, 0x74, 0x41, 0x89, 0x45,
+ 0x71, 0xed, 0xf9, 0x1e, 0x87, 0xe4, 0x3b, 0x9d, 0xd3, 0xa5, 0x02, 0xe7,
+ 0xa5, 0x3c, 0xb0, 0x6b, 0x08, 0x23, 0x74, 0x04, 0x4f, 0x11, 0xb9, 0x00,
+ 0x9c, 0xd1, 0x95, 0x92,
+};
+static const unsigned char kat2594_addinreseed[] = {0};
+static const unsigned char kat2594_addin0[] = {0};
+static const unsigned char kat2594_addin1[] = {0};
+static const unsigned char kat2594_retbits[] = {
+ 0xe1, 0xa7, 0xd5, 0xc1, 0x27, 0x74, 0x1b, 0x90, 0x3e, 0x56, 0xcb, 0xd0,
+ 0x3f, 0xe9, 0x20, 0x79, 0x53, 0xe2, 0x1d, 0xd1, 0xa9, 0x75, 0x0b, 0x0e,
+ 0xc5, 0x48, 0x43, 0xd2, 0x12, 0xfb, 0xb2, 0xae, 0x02, 0x08, 0xcb, 0xeb,
+ 0x1d, 0x6c, 0x7b, 0x34, 0x8c, 0xc0, 0x26, 0x20, 0xf0, 0x43, 0x0d, 0x24,
+ 0x2b, 0xff, 0x65, 0xf7, 0x5b, 0x8a, 0x1a, 0xd4, 0x36, 0x24, 0x09, 0xb5,
+ 0xae, 0xa0, 0xe3, 0x8d,
+};
+static const struct drbg_kat_pr_false kat2594_t = {
+ 13, kat2594_entropyin, kat2594_nonce, kat2594_persstr,
+ kat2594_entropyinreseed, kat2594_addinreseed, kat2594_addin0,
+ kat2594_addin1, kat2594_retbits
+};
+static const struct drbg_kat kat2594 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2594_t
+};
+
+static const unsigned char kat2595_entropyin[] = {
+ 0x96, 0x3f, 0xe5, 0x75, 0xc9, 0x6b, 0x31, 0x9a, 0x34, 0x18, 0xcc, 0x75,
+ 0x48, 0x48, 0x4a, 0xb8, 0x27, 0xdf, 0x1f, 0x7b, 0xa5, 0x6b, 0x0d, 0xa8,
+ 0x13, 0x1f, 0xd1, 0x9f, 0x77, 0x12, 0xad, 0xd1, 0xd2, 0x9a, 0x03, 0xed,
+ 0x0a, 0x20, 0xcc, 0x90,
+};
+static const unsigned char kat2595_nonce[] = {0};
+static const unsigned char kat2595_persstr[] = {0};
+static const unsigned char kat2595_entropyinreseed[] = {
+ 0xe1, 0x47, 0x0e, 0xe3, 0x67, 0xe5, 0x5b, 0xd8, 0xdd, 0x82, 0xde, 0xa6,
+ 0xf7, 0xfb, 0xd9, 0x05, 0xb9, 0x8d, 0x59, 0x63, 0x06, 0x80, 0x7f, 0x8a,
+ 0xae, 0x52, 0x98, 0x07, 0xb3, 0x6a, 0xa0, 0x65, 0x5b, 0xd2, 0x60, 0xe1,
+ 0xe2, 0xba, 0xb7, 0x5c,
+};
+static const unsigned char kat2595_addinreseed[] = {0};
+static const unsigned char kat2595_addin0[] = {0};
+static const unsigned char kat2595_addin1[] = {0};
+static const unsigned char kat2595_retbits[] = {
+ 0xa1, 0xe6, 0x28, 0x65, 0x29, 0xfa, 0xb4, 0x0e, 0x3d, 0xb9, 0xb5, 0x77,
+ 0x41, 0xbf, 0x6e, 0x5b, 0x49, 0x04, 0x59, 0x0d, 0x05, 0x56, 0x9a, 0x7d,
+ 0x57, 0x1b, 0xaf, 0x77, 0x84, 0x20, 0x65, 0xbe, 0x74, 0x2e, 0x2c, 0x26,
+ 0xc1, 0x4e, 0x85, 0x99, 0xe4, 0x6a, 0x52, 0x0f, 0xa3, 0x9b, 0x81, 0xeb,
+ 0xe3, 0x2d, 0xd8, 0x57, 0x55, 0x6d, 0x9f, 0x55, 0xe4, 0xbd, 0x37, 0xc1,
+ 0x95, 0x2a, 0xfc, 0x0d,
+};
+static const struct drbg_kat_pr_false kat2595_t = {
+ 14, kat2595_entropyin, kat2595_nonce, kat2595_persstr,
+ kat2595_entropyinreseed, kat2595_addinreseed, kat2595_addin0,
+ kat2595_addin1, kat2595_retbits
+};
+static const struct drbg_kat kat2595 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat2595_t
+};
+
+static const unsigned char kat2596_entropyin[] = {
+ 0xf5, 0x76, 0x2c, 0x0a, 0x6d, 0x0a, 0x2f, 0xf4, 0xda, 0x58, 0xa9, 0x68,
+ 0x5a, 0xea, 0xb4, 0xe6, 0x0c, 0xc1, 0xaf, 0xfc, 0xa6, 0x29, 0x93, 0x6f,
+ 0x91, 0xdc, 0xc2, 0xb6, 0x53, 0x2b, 0xb1, 0x53, 0x21, 0x1c, 0xa1, 0x46,
+ 0x78, 0xe3, 0xab, 0x82,
+};
+static const unsigned char kat2596_nonce[] = {0};
+static const unsigned char kat2596_persstr[] = {0};
+static const unsigned char kat2596_entropyinreseed[] = {
+ 0xfd, 0xf0, 0x03, 0xb1, 0x38, 0x86, 0xec, 0x04, 0x24, 0x0a, 0x4d, 0x2f,
+ 0x94, 0x48, 0xf7, 0x73, 0xe0, 0x0f, 0x2b, 0x5b, 0x9e, 0x21, 0x03, 0x4b,
+ 0x72, 0x3d, 0x9b, 0xdd, 0xc2, 0xf0, 0x79, 0x65, 0x49, 0x47, 0xa1, 0x12,
+ 0x2c, 0x7d, 0x9a, 0xdb,
+};
+static const unsigned char kat2596_addinreseed[] = {
+ 0x39, 0x51, 0x73, 0x6b, 0xad, 0xd2, 0xa4, 0x3d, 0xc2, 0xe8, 0xa8, 0x47,
+ 0xc3, 0xe1, 0x63, 0xcb, 0xc0, 0xf3, 0x52, 0x32, 0x7e, 0x88, 0x89, 0xbf,
+ 0x40, 0x07, 0x15, 0xc7, 0x24, 0x9b, 0xc7, 0x21, 0xf0, 0x8a, 0xbf, 0x85,
+ 0x82, 0xb2, 0x9d, 0x9c,
+};
+static const unsigned char kat2596_addin0[] = {
+ 0xce, 0x6b, 0x78, 0x5c, 0x04, 0xac, 0x27, 0x5c, 0xd4, 0x7d, 0x25, 0x17,
+ 0xb0, 0x86, 0xf2, 0x09, 0xc1, 0x5c, 0x79, 0x63, 0x8c, 0x31, 0xb4, 0x0d,
+ 0xb8, 0x58, 0x23, 0xf6, 0xc9, 0xf9, 0xf7, 0x7a, 0x63, 0x33, 0xdd, 0xad,
+ 0xc5, 0x79, 0x24, 0xf8,
+};
+static const unsigned char kat2596_addin1[] = {
+ 0x44, 0x70, 0x0e, 0xf1, 0x6d, 0x91, 0x4b, 0x3b, 0x92, 0x97, 0x8c, 0xf4,
+ 0xca, 0x2d, 0xd4, 0xae, 0x79, 0xa9, 0x14, 0xee, 0x55, 0x64, 0x97, 0x75,
+ 0xb3, 0x20, 0xee, 0x70, 0x0e, 0xb1, 0x40, 0x33, 0xab, 0xb8, 0xba, 0x73,
+ 0x06, 0xce, 0x75, 0xd6,
+};
+static const unsigned char kat2596_retbits[] = {
+ 0x17, 0xa3, 0x92, 0xa8, 0xa5, 0x8d, 0x2b, 0x65, 0x09, 0x03, 0x12, 0xeb,
+ 0x9f, 0x0f, 0xf7, 0xf3, 0x00, 0xa1, 0x05, 0xa3, 0x42, 0xae, 0x7b, 0x53,
+ 0x75, 0x1b, 0xa6, 0x56, 0xd1, 0x12, 0x7a, 0x02, 0xf9, 0xda, 0x4a, 0xc3,
+ 0xb4, 0xbb, 0x7b, 0x29, 0x54, 0xad, 0xda, 0x54, 0xa4, 0xad, 0xd6, 0xc9,
+ 0x5b, 0x5a, 0x09, 0xb0, 0x10, 0x87, 0x8b, 0x04, 0x57, 0x8b, 0x60, 0x95,
+ 0xd7, 0x01, 0xe2, 0x25,
+};
+static const struct drbg_kat_pr_false kat2596_t = {
+ 0, kat2596_entropyin, kat2596_nonce, kat2596_persstr,
+ kat2596_entropyinreseed, kat2596_addinreseed, kat2596_addin0,
+ kat2596_addin1, kat2596_retbits
+};
+static const struct drbg_kat kat2596 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2596_t
+};
+
+static const unsigned char kat2597_entropyin[] = {
+ 0xad, 0xe7, 0x3a, 0x2f, 0xd5, 0x9b, 0x21, 0x94, 0xe7, 0x80, 0x97, 0xe2,
+ 0xbe, 0x43, 0xc9, 0xa6, 0xaf, 0x65, 0x98, 0xa6, 0x3c, 0x51, 0x07, 0x7d,
+ 0x8a, 0x4c, 0xd8, 0xe3, 0xb3, 0xa5, 0xe9, 0x08, 0x6b, 0xc4, 0xe3, 0x69,
+ 0x99, 0x0d, 0x7d, 0xc2,
+};
+static const unsigned char kat2597_nonce[] = {0};
+static const unsigned char kat2597_persstr[] = {0};
+static const unsigned char kat2597_entropyinreseed[] = {
+ 0x38, 0xac, 0xf4, 0xbc, 0x97, 0xc1, 0xcc, 0xcc, 0x25, 0x2c, 0xa5, 0x0e,
+ 0xb2, 0x33, 0x8d, 0x81, 0x54, 0x68, 0x84, 0x96, 0xee, 0x06, 0xb9, 0xca,
+ 0x48, 0x25, 0xa5, 0x9f, 0x63, 0xbc, 0x57, 0x83, 0xe8, 0xb7, 0x36, 0xe8,
+ 0xee, 0x5c, 0x74, 0xa2,
+};
+static const unsigned char kat2597_addinreseed[] = {
+ 0x3c, 0x37, 0xfe, 0x0d, 0x99, 0x6d, 0x26, 0xbd, 0x93, 0xc5, 0x90, 0xae,
+ 0x89, 0xa8, 0x89, 0x00, 0x46, 0xfa, 0x61, 0x6d, 0xed, 0xef, 0xe2, 0x7b,
+ 0xcd, 0xbf, 0x9c, 0x41, 0x80, 0x13, 0x5e, 0xa4, 0x29, 0xd6, 0x50, 0x48,
+ 0x03, 0x9b, 0x80, 0xeb,
+};
+static const unsigned char kat2597_addin0[] = {
+ 0xdc, 0x28, 0x42, 0x3f, 0x45, 0x79, 0xb9, 0x1b, 0x40, 0x97, 0x7a, 0xa1,
+ 0x24, 0xc3, 0xe5, 0xd4, 0x3d, 0xfa, 0x7e, 0xa5, 0xb0, 0xff, 0x1f, 0x62,
+ 0xd6, 0x6b, 0xf8, 0x9a, 0x22, 0x63, 0xdc, 0xba, 0x28, 0xd9, 0xd3, 0xa9,
+ 0x82, 0x6b, 0xd4, 0x81,
+};
+static const unsigned char kat2597_addin1[] = {
+ 0x19, 0x16, 0xea, 0x19, 0xd6, 0x83, 0xac, 0xa2, 0xd0, 0x68, 0x41, 0xc7,
+ 0x7f, 0x30, 0xfe, 0x83, 0x27, 0x61, 0x12, 0x29, 0xa2, 0xf4, 0x03, 0xc7,
+ 0xce, 0x63, 0xde, 0xa6, 0xb9, 0x7e, 0xeb, 0x1a, 0x85, 0x55, 0x13, 0x1c,
+ 0xa7, 0x0b, 0xa5, 0x4d,
+};
+static const unsigned char kat2597_retbits[] = {
+ 0x20, 0x57, 0x20, 0x91, 0x4b, 0xda, 0x38, 0x42, 0x8b, 0x81, 0x85, 0x3d,
+ 0xec, 0x06, 0x02, 0xf1, 0x2a, 0xe3, 0xf3, 0x20, 0x0a, 0xaf, 0x6e, 0xd1,
+ 0xe7, 0xbf, 0x32, 0xc7, 0xc6, 0x9e, 0x5b, 0x2d, 0x8f, 0x3f, 0x75, 0x3e,
+ 0x08, 0x87, 0xa4, 0x9b, 0x19, 0x33, 0xe1, 0x53, 0xf6, 0x51, 0xa2, 0xc9,
+ 0x1e, 0x08, 0x1d, 0xe6, 0xc2, 0x5c, 0x24, 0x8c, 0x21, 0xb3, 0x17, 0x42,
+ 0x33, 0xed, 0x9c, 0xf8,
+};
+static const struct drbg_kat_pr_false kat2597_t = {
+ 1, kat2597_entropyin, kat2597_nonce, kat2597_persstr,
+ kat2597_entropyinreseed, kat2597_addinreseed, kat2597_addin0,
+ kat2597_addin1, kat2597_retbits
+};
+static const struct drbg_kat kat2597 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2597_t
+};
+
+static const unsigned char kat2598_entropyin[] = {
+ 0x24, 0x3d, 0x21, 0x6d, 0x2d, 0xb2, 0x6e, 0xd1, 0xb3, 0xc6, 0xd1, 0xd2,
+ 0x97, 0xb4, 0x7d, 0xfa, 0x5a, 0x37, 0xa3, 0xa8, 0xba, 0xd0, 0x0a, 0xbe,
+ 0xfc, 0x67, 0xe9, 0x2a, 0x93, 0xcd, 0x00, 0x87, 0x33, 0xc9, 0x26, 0x53,
+ 0xf8, 0xe6, 0xfb, 0xe2,
+};
+static const unsigned char kat2598_nonce[] = {0};
+static const unsigned char kat2598_persstr[] = {0};
+static const unsigned char kat2598_entropyinreseed[] = {
+ 0x93, 0xd9, 0x40, 0x6f, 0x16, 0xed, 0x0f, 0x1d, 0x8f, 0x61, 0x4a, 0xc8,
+ 0x89, 0xd3, 0x3d, 0x42, 0x78, 0x74, 0xe0, 0x07, 0x20, 0xab, 0x77, 0x33,
+ 0x37, 0x8a, 0x13, 0x60, 0x08, 0x8f, 0xb8, 0x13, 0x47, 0x39, 0x2b, 0x97,
+ 0xb0, 0x9c, 0x56, 0xc6,
+};
+static const unsigned char kat2598_addinreseed[] = {
+ 0x47, 0x0b, 0x4d, 0xed, 0xa8, 0xe7, 0x11, 0xc0, 0x23, 0xd4, 0x35, 0x42,
+ 0x10, 0x71, 0x24, 0x80, 0xaf, 0x04, 0x2c, 0xa5, 0xa5, 0xa2, 0x0d, 0xf7,
+ 0xef, 0x30, 0x75, 0x0a, 0x45, 0xf6, 0x59, 0xef, 0x13, 0x87, 0x95, 0xb1,
+ 0x2f, 0xc5, 0x59, 0x65,
+};
+static const unsigned char kat2598_addin0[] = {
+ 0x28, 0x48, 0x50, 0xe5, 0x88, 0x5b, 0x28, 0x00, 0x09, 0x3b, 0x07, 0x6e,
+ 0xab, 0x54, 0x8d, 0x7a, 0x23, 0xab, 0x42, 0x1e, 0x19, 0xb1, 0x3d, 0x53,
+ 0x5f, 0x33, 0x5f, 0xaf, 0xc8, 0x57, 0xf1, 0x07, 0x3b, 0x38, 0x49, 0x85,
+ 0x7f, 0x06, 0x1f, 0x24,
+};
+static const unsigned char kat2598_addin1[] = {
+ 0x4a, 0xba, 0xd0, 0xb3, 0xc4, 0xe7, 0xf2, 0x6c, 0x43, 0xb8, 0xbd, 0x91,
+ 0x4a, 0x08, 0x77, 0xfb, 0xfd, 0x0d, 0xa4, 0x55, 0x19, 0x2d, 0x6d, 0x1f,
+ 0x82, 0x1a, 0xed, 0xca, 0x5e, 0xf6, 0x17, 0xca, 0x7e, 0xaa, 0x4d, 0x05,
+ 0x6a, 0xec, 0x65, 0xa2,
+};
+static const unsigned char kat2598_retbits[] = {
+ 0x59, 0xa2, 0xa3, 0x7a, 0x6c, 0x42, 0xd3, 0x5c, 0x32, 0xb3, 0x93, 0xca,
+ 0x0a, 0xdd, 0xa3, 0x6f, 0x2b, 0xea, 0xe8, 0x85, 0xd7, 0x52, 0x32, 0xe1,
+ 0xc3, 0x69, 0x77, 0x57, 0x09, 0xf8, 0x73, 0xb4, 0x9a, 0xf8, 0x3a, 0x3b,
+ 0x0e, 0x2c, 0xf7, 0x9a, 0xbb, 0xcf, 0x4e, 0x16, 0xd4, 0x6d, 0x6d, 0xd2,
+ 0x6f, 0xec, 0x8b, 0xbe, 0x65, 0xdd, 0x72, 0xe8, 0x2f, 0x70, 0x56, 0x55,
+ 0xd8, 0x8e, 0x21, 0x49,
+};
+static const struct drbg_kat_pr_false kat2598_t = {
+ 2, kat2598_entropyin, kat2598_nonce, kat2598_persstr,
+ kat2598_entropyinreseed, kat2598_addinreseed, kat2598_addin0,
+ kat2598_addin1, kat2598_retbits
+};
+static const struct drbg_kat kat2598 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2598_t
+};
+
+static const unsigned char kat2599_entropyin[] = {
+ 0xe1, 0xd7, 0xb3, 0xf4, 0xe8, 0xbf, 0x14, 0x8f, 0x77, 0x42, 0x95, 0x19,
+ 0x87, 0xc5, 0xef, 0x32, 0x48, 0x0b, 0xdf, 0x4f, 0x34, 0x7d, 0xe6, 0x70,
+ 0x43, 0x11, 0xda, 0x8f, 0x1c, 0x96, 0x31, 0x35, 0x91, 0x37, 0x24, 0x0b,
+ 0xa5, 0xa9, 0xed, 0x8f,
+};
+static const unsigned char kat2599_nonce[] = {0};
+static const unsigned char kat2599_persstr[] = {0};
+static const unsigned char kat2599_entropyinreseed[] = {
+ 0x01, 0x8e, 0xea, 0x7b, 0x45, 0xbd, 0x7a, 0x39, 0xa6, 0x39, 0xa1, 0x16,
+ 0x4b, 0xf3, 0xf4, 0x75, 0x38, 0x2c, 0x9f, 0x2d, 0xc8, 0x4f, 0xc0, 0x68,
+ 0xf0, 0x4a, 0x6f, 0x71, 0x71, 0x0c, 0x58, 0x93, 0x09, 0xe9, 0x75, 0xc0,
+ 0x8a, 0xc1, 0x52, 0xfa,
+};
+static const unsigned char kat2599_addinreseed[] = {
+ 0x63, 0x52, 0x43, 0x2e, 0x6c, 0x58, 0x26, 0x32, 0x33, 0xad, 0x95, 0x87,
+ 0xe1, 0xea, 0x76, 0x43, 0xf8, 0xaf, 0x17, 0xa2, 0x8f, 0x15, 0x31, 0x37,
+ 0xbe, 0x03, 0x05, 0x6c, 0x6a, 0x98, 0xc8, 0x09, 0x20, 0xe4, 0x8c, 0x05,
+ 0xa0, 0x57, 0x4f, 0x87,
+};
+static const unsigned char kat2599_addin0[] = {
+ 0x14, 0xf9, 0xdf, 0x22, 0xe9, 0x50, 0xe4, 0xf0, 0xcd, 0x57, 0xc5, 0x9a,
+ 0x0e, 0xc7, 0x8c, 0x1f, 0x5c, 0x1d, 0x8b, 0x78, 0xa3, 0x9b, 0x6e, 0x7a,
+ 0xbf, 0x5a, 0x66, 0xb6, 0x1e, 0x5d, 0x74, 0xff, 0xe7, 0xe0, 0x46, 0xfe,
+ 0xc4, 0xcb, 0x83, 0x4f,
+};
+static const unsigned char kat2599_addin1[] = {
+ 0x32, 0xd0, 0xff, 0x81, 0x2a, 0x6f, 0x6e, 0xa9, 0x3c, 0x9b, 0x34, 0x89,
+ 0xcb, 0xae, 0xfd, 0x1e, 0x25, 0x69, 0x2b, 0x11, 0x3d, 0xac, 0x79, 0xc4,
+ 0x8e, 0xd5, 0x12, 0x9b, 0xf1, 0x44, 0x20, 0xad, 0x52, 0xc3, 0xae, 0xf2,
+ 0xb2, 0x3f, 0x9c, 0x0b,
+};
+static const unsigned char kat2599_retbits[] = {
+ 0x10, 0x16, 0xd5, 0x3d, 0xcb, 0x2f, 0x29, 0x1f, 0xd0, 0x42, 0xc7, 0xeb,
+ 0xb7, 0x92, 0x5a, 0xe9, 0xb9, 0x38, 0xcd, 0x59, 0xd2, 0xc3, 0xb3, 0x72,
+ 0xf4, 0xb2, 0xaa, 0x6c, 0xbf, 0xcd, 0x47, 0x17, 0x1a, 0xc9, 0x52, 0xfd,
+ 0xc1, 0x16, 0xa6, 0x30, 0xeb, 0x37, 0x90, 0x58, 0xbc, 0x6c, 0x90, 0xc4,
+ 0xc9, 0x60, 0x42, 0x69, 0x72, 0x38, 0x52, 0xe8, 0x21, 0x1e, 0xbb, 0x26,
+ 0x16, 0x69, 0x50, 0x4a,
+};
+static const struct drbg_kat_pr_false kat2599_t = {
+ 3, kat2599_entropyin, kat2599_nonce, kat2599_persstr,
+ kat2599_entropyinreseed, kat2599_addinreseed, kat2599_addin0,
+ kat2599_addin1, kat2599_retbits
+};
+static const struct drbg_kat kat2599 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2599_t
+};
+
+static const unsigned char kat2600_entropyin[] = {
+ 0xfc, 0xa6, 0x39, 0x84, 0x2d, 0xfa, 0x24, 0x5a, 0xff, 0xe0, 0x2a, 0xed,
+ 0x08, 0xc0, 0x88, 0x46, 0x34, 0x08, 0x2c, 0x40, 0xaf, 0x9e, 0x29, 0x60,
+ 0x8b, 0x28, 0x29, 0x11, 0x32, 0xec, 0x48, 0x7c, 0x6b, 0x5c, 0x76, 0x0f,
+ 0x8f, 0x1e, 0x4c, 0x92,
+};
+static const unsigned char kat2600_nonce[] = {0};
+static const unsigned char kat2600_persstr[] = {0};
+static const unsigned char kat2600_entropyinreseed[] = {
+ 0x2d, 0x56, 0x5b, 0x40, 0x1f, 0xc0, 0xb0, 0x77, 0x2f, 0x62, 0x97, 0xf3,
+ 0xfc, 0x17, 0x8b, 0xb9, 0x81, 0x60, 0xc9, 0x8b, 0xcb, 0x43, 0x21, 0x56,
+ 0xc0, 0xa2, 0x0c, 0x2e, 0xbc, 0x2c, 0xe4, 0x78, 0x84, 0xc5, 0x21, 0xf2,
+ 0x4f, 0x6b, 0x3a, 0x61,
+};
+static const unsigned char kat2600_addinreseed[] = {
+ 0xdd, 0x7f, 0xa0, 0xed, 0x97, 0x98, 0x3c, 0x64, 0xe0, 0x5f, 0x45, 0x03,
+ 0xbf, 0xb3, 0x85, 0xe0, 0x7a, 0xa3, 0xf9, 0xd7, 0x73, 0x87, 0x02, 0x99,
+ 0xb9, 0x3c, 0x46, 0x33, 0x0b, 0xac, 0x7a, 0xb4, 0x31, 0x2e, 0xd2, 0xb8,
+ 0x00, 0xf7, 0x1a, 0x99,
+};
+static const unsigned char kat2600_addin0[] = {
+ 0x8a, 0x55, 0xe7, 0x2d, 0xe7, 0x27, 0x49, 0xf9, 0x04, 0xfa, 0x99, 0x2e,
+ 0xaa, 0x6f, 0x4f, 0xd2, 0x86, 0xe3, 0x07, 0x5c, 0xe7, 0x34, 0xf4, 0x13,
+ 0x27, 0xaf, 0xeb, 0xde, 0xfb, 0x18, 0xa9, 0x3b, 0xc0, 0x43, 0x7f, 0xf4,
+ 0xa6, 0x0e, 0x0b, 0x46,
+};
+static const unsigned char kat2600_addin1[] = {
+ 0xf1, 0xe4, 0x03, 0xdb, 0x1f, 0x19, 0x98, 0x6a, 0xd5, 0xef, 0xd4, 0x5e,
+ 0x95, 0xfe, 0x4e, 0xb8, 0x72, 0xe1, 0x97, 0x4e, 0xbb, 0x55, 0xca, 0x98,
+ 0x1f, 0x97, 0xe6, 0x88, 0x45, 0x58, 0x6e, 0x50, 0x9b, 0xc4, 0x80, 0x5f,
+ 0xa0, 0x5e, 0xb3, 0xa3,
+};
+static const unsigned char kat2600_retbits[] = {
+ 0x79, 0x90, 0xfa, 0x66, 0xca, 0x6a, 0x81, 0xcf, 0x9a, 0x49, 0xb5, 0x8b,
+ 0x33, 0xbe, 0x63, 0xa7, 0x79, 0xc7, 0x04, 0x20, 0xb0, 0xbc, 0x8a, 0xd7,
+ 0x8f, 0x4b, 0xd1, 0x89, 0x40, 0xbe, 0xd0, 0x90, 0x6b, 0x52, 0x0e, 0xc5,
+ 0xa5, 0xe7, 0x70, 0x5c, 0x0b, 0x89, 0xba, 0x20, 0x6a, 0x71, 0x8c, 0x37,
+ 0x60, 0x3c, 0x78, 0x1b, 0xea, 0x51, 0x05, 0x64, 0x2f, 0x4e, 0x75, 0x0f,
+ 0x7b, 0xec, 0x63, 0x7f,
+};
+static const struct drbg_kat_pr_false kat2600_t = {
+ 4, kat2600_entropyin, kat2600_nonce, kat2600_persstr,
+ kat2600_entropyinreseed, kat2600_addinreseed, kat2600_addin0,
+ kat2600_addin1, kat2600_retbits
+};
+static const struct drbg_kat kat2600 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2600_t
+};
+
+static const unsigned char kat2601_entropyin[] = {
+ 0x92, 0x21, 0xef, 0x9d, 0xda, 0x3e, 0x34, 0xaa, 0x94, 0xa7, 0x34, 0x8e,
+ 0x6c, 0x85, 0x20, 0x6c, 0xfb, 0xf4, 0xba, 0x5f, 0x0c, 0xa7, 0xd8, 0x7f,
+ 0xf0, 0xe9, 0x0d, 0x9c, 0xf0, 0xe9, 0xaa, 0xfe, 0x31, 0x0e, 0xdc, 0x48,
+ 0xfe, 0x16, 0x23, 0x14,
+};
+static const unsigned char kat2601_nonce[] = {0};
+static const unsigned char kat2601_persstr[] = {0};
+static const unsigned char kat2601_entropyinreseed[] = {
+ 0xda, 0x4b, 0xd5, 0x1e, 0xd4, 0xae, 0xef, 0x2f, 0x54, 0xc6, 0x18, 0xa8,
+ 0x76, 0x4b, 0x28, 0xd3, 0xef, 0x43, 0x73, 0x0d, 0x5b, 0x52, 0xc0, 0xe1,
+ 0xfc, 0xa7, 0x44, 0x12, 0xc4, 0x7d, 0xcf, 0xd7, 0x6c, 0x64, 0xfc, 0x04,
+ 0xb6, 0xb2, 0x5a, 0xeb,
+};
+static const unsigned char kat2601_addinreseed[] = {
+ 0x88, 0x90, 0xd7, 0x60, 0x4e, 0x2c, 0x7b, 0x52, 0x20, 0xec, 0xf9, 0x4d,
+ 0x0e, 0x01, 0xc4, 0x7a, 0x57, 0x46, 0x7d, 0x67, 0x98, 0xd4, 0xba, 0x37,
+ 0x7b, 0xf0, 0xde, 0x20, 0x31, 0x65, 0xe2, 0x66, 0x0e, 0xc1, 0x2e, 0x79,
+ 0xe2, 0x91, 0x4e, 0xb2,
+};
+static const unsigned char kat2601_addin0[] = {
+ 0xf7, 0x81, 0x28, 0x07, 0x3c, 0x68, 0x1f, 0x1b, 0x27, 0xb7, 0x54, 0x00,
+ 0x12, 0x9a, 0xf2, 0xce, 0x42, 0xfc, 0x10, 0xe1, 0x79, 0xf0, 0xd4, 0x04,
+ 0x53, 0x08, 0xce, 0x43, 0xf5, 0xbc, 0x29, 0xb5, 0x9e, 0x17, 0xc8, 0xca,
+ 0xe0, 0xce, 0xbd, 0xad,
+};
+static const unsigned char kat2601_addin1[] = {
+ 0x06, 0xf7, 0x5c, 0x13, 0xe4, 0xa9, 0x0c, 0x56, 0x99, 0xa6, 0x53, 0xb4,
+ 0x2d, 0xc2, 0x5a, 0x03, 0x51, 0x81, 0x85, 0xf6, 0x36, 0x12, 0x44, 0xc1,
+ 0x80, 0x34, 0x56, 0x3b, 0x96, 0x9c, 0x9b, 0xa0, 0x79, 0xe0, 0x2f, 0xf0,
+ 0x00, 0xce, 0x32, 0x09,
+};
+static const unsigned char kat2601_retbits[] = {
+ 0x61, 0x01, 0x0d, 0xf7, 0xcb, 0x9d, 0x72, 0x26, 0xa3, 0x31, 0x28, 0x30,
+ 0x07, 0xfb, 0x31, 0x04, 0x56, 0x9a, 0xe1, 0x3d, 0xa8, 0x27, 0xb0, 0xe1,
+ 0x55, 0x91, 0xde, 0x91, 0x24, 0xb5, 0x5f, 0x8e, 0xe0, 0xc8, 0xfd, 0xc0,
+ 0xf3, 0x4b, 0x9b, 0x81, 0x7e, 0x26, 0x17, 0x64, 0xfe, 0x1a, 0x17, 0x94,
+ 0xbe, 0xe1, 0x38, 0x04, 0xe6, 0x11, 0xba, 0x54, 0x6e, 0x62, 0x35, 0x95,
+ 0x50, 0xd0, 0x80, 0x07,
+};
+static const struct drbg_kat_pr_false kat2601_t = {
+ 5, kat2601_entropyin, kat2601_nonce, kat2601_persstr,
+ kat2601_entropyinreseed, kat2601_addinreseed, kat2601_addin0,
+ kat2601_addin1, kat2601_retbits
+};
+static const struct drbg_kat kat2601 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2601_t
+};
+
+static const unsigned char kat2602_entropyin[] = {
+ 0x20, 0xd8, 0xaf, 0x17, 0xf8, 0xaa, 0x4a, 0x79, 0x48, 0x37, 0x8b, 0x42,
+ 0x3f, 0x10, 0xdf, 0xd0, 0x16, 0x8e, 0x21, 0x74, 0xb0, 0xdd, 0x23, 0xd3,
+ 0x79, 0x4e, 0xf2, 0xad, 0x5a, 0x28, 0x42, 0x9e, 0x6f, 0xa4, 0xec, 0xc8,
+ 0xea, 0x71, 0x86, 0xf9,
+};
+static const unsigned char kat2602_nonce[] = {0};
+static const unsigned char kat2602_persstr[] = {0};
+static const unsigned char kat2602_entropyinreseed[] = {
+ 0xe5, 0x72, 0x55, 0xab, 0x59, 0x55, 0xf1, 0xae, 0xa4, 0xf5, 0x57, 0x98,
+ 0xf5, 0x46, 0xee, 0xc2, 0x00, 0x99, 0x6f, 0x5c, 0xa3, 0x7c, 0x50, 0xf8,
+ 0x07, 0x6c, 0x38, 0xff, 0x2b, 0x8b, 0x8d, 0x93, 0xf1, 0x5a, 0x38, 0xb4,
+ 0x39, 0x1b, 0x34, 0x9e,
+};
+static const unsigned char kat2602_addinreseed[] = {
+ 0x4b, 0xfd, 0xb3, 0x40, 0xfb, 0xc9, 0x72, 0x6c, 0xf4, 0x42, 0x2c, 0x0a,
+ 0x3b, 0xf6, 0x99, 0x4c, 0x4b, 0xe3, 0x99, 0x69, 0x5c, 0x1b, 0x97, 0x22,
+ 0x6c, 0x9c, 0xc0, 0x15, 0xc0, 0x68, 0xc5, 0x9d, 0x94, 0x49, 0xcc, 0x1b,
+ 0x26, 0x87, 0x19, 0x77,
+};
+static const unsigned char kat2602_addin0[] = {
+ 0x66, 0x25, 0xa9, 0x16, 0x84, 0xd4, 0x97, 0x61, 0x0e, 0xdd, 0xc2, 0x3c,
+ 0xdd, 0x29, 0x37, 0x03, 0x20, 0x92, 0x1b, 0x57, 0x2c, 0xaa, 0x38, 0xdb,
+ 0x38, 0x3f, 0xaf, 0xeb, 0x6d, 0xdb, 0xb9, 0xca, 0xdd, 0xfd, 0xdb, 0x9d,
+ 0xa1, 0x3c, 0x59, 0x5b,
+};
+static const unsigned char kat2602_addin1[] = {
+ 0xe8, 0xbd, 0xd1, 0x1c, 0x96, 0x68, 0xd1, 0x5e, 0x6c, 0x51, 0xed, 0xd9,
+ 0x2e, 0x0c, 0xcb, 0xe8, 0x0b, 0xd1, 0x74, 0xa6, 0xd4, 0xe0, 0x0a, 0x9c,
+ 0x47, 0x57, 0x03, 0xff, 0xa8, 0x82, 0xe7, 0x13, 0x7e, 0xa9, 0x83, 0xbf,
+ 0x94, 0x1c, 0xe7, 0x2f,
+};
+static const unsigned char kat2602_retbits[] = {
+ 0xe6, 0xf9, 0xda, 0xdc, 0x5e, 0x12, 0x7b, 0x4f, 0x96, 0xe2, 0x91, 0x84,
+ 0x17, 0xce, 0xc9, 0xc3, 0x5e, 0x0c, 0x75, 0xb6, 0xbb, 0xe6, 0xf3, 0xd9,
+ 0x5c, 0x52, 0x72, 0x63, 0x1e, 0x99, 0xea, 0x20, 0x89, 0xea, 0xf6, 0xc1,
+ 0x4d, 0x20, 0xf7, 0x7f, 0x80, 0x70, 0xa9, 0x3a, 0x75, 0x49, 0x59, 0x9e,
+ 0x11, 0x11, 0x9a, 0xaa, 0x1e, 0x04, 0x43, 0x80, 0x05, 0x65, 0x9c, 0x02,
+ 0xc4, 0x04, 0xd8, 0x70,
+};
+static const struct drbg_kat_pr_false kat2602_t = {
+ 6, kat2602_entropyin, kat2602_nonce, kat2602_persstr,
+ kat2602_entropyinreseed, kat2602_addinreseed, kat2602_addin0,
+ kat2602_addin1, kat2602_retbits
+};
+static const struct drbg_kat kat2602 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2602_t
+};
+
+static const unsigned char kat2603_entropyin[] = {
+ 0xee, 0x30, 0x04, 0x9f, 0xc1, 0x1a, 0xe1, 0x5c, 0xe0, 0x97, 0x61, 0x64,
+ 0x89, 0x74, 0xf0, 0xaa, 0x4f, 0xa6, 0xe6, 0xc7, 0xdb, 0x37, 0x2c, 0x1d,
+ 0x83, 0x20, 0x96, 0xbb, 0x24, 0xe4, 0x02, 0xdd, 0x6a, 0x68, 0x30, 0x23,
+ 0x3a, 0xb9, 0xb4, 0xbb,
+};
+static const unsigned char kat2603_nonce[] = {0};
+static const unsigned char kat2603_persstr[] = {0};
+static const unsigned char kat2603_entropyinreseed[] = {
+ 0x45, 0x9c, 0xd0, 0xf4, 0x9f, 0x8a, 0x4e, 0x8b, 0x65, 0x21, 0x10, 0xc0,
+ 0xb1, 0x48, 0x53, 0x94, 0x61, 0xe6, 0xe7, 0xd9, 0x66, 0xd1, 0xba, 0x68,
+ 0xfe, 0x11, 0x17, 0x5b, 0x77, 0x8e, 0x18, 0x9b, 0xd1, 0xbc, 0xb0, 0x84,
+ 0x03, 0x09, 0x87, 0x49,
+};
+static const unsigned char kat2603_addinreseed[] = {
+ 0xb2, 0xf3, 0xfe, 0x99, 0x85, 0x57, 0x25, 0x70, 0x29, 0x41, 0x43, 0x6c,
+ 0x2a, 0xf8, 0x76, 0x6c, 0x39, 0x7c, 0xaa, 0xad, 0xe7, 0x09, 0x58, 0xf5,
+ 0x6e, 0x9a, 0xc5, 0xd7, 0xf2, 0x82, 0xff, 0x92, 0x64, 0x45, 0x3b, 0x13,
+ 0x4d, 0x21, 0xfe, 0x03,
+};
+static const unsigned char kat2603_addin0[] = {
+ 0x2f, 0xb4, 0x6f, 0xa2, 0x0e, 0x0e, 0xc2, 0xe4, 0x55, 0x00, 0x24, 0x7a,
+ 0x91, 0x65, 0x75, 0xab, 0x27, 0x12, 0xf3, 0x52, 0x0b, 0x76, 0x34, 0xdd,
+ 0x29, 0x30, 0x7f, 0x17, 0x60, 0xcf, 0x10, 0x2b, 0x9a, 0xff, 0x9a, 0x48,
+ 0x15, 0x09, 0x72, 0xf4,
+};
+static const unsigned char kat2603_addin1[] = {
+ 0x99, 0x6e, 0x03, 0xa4, 0xd7, 0xc6, 0xaf, 0xda, 0x5d, 0xbb, 0x7f, 0x52,
+ 0xf6, 0xe0, 0x16, 0x61, 0x2b, 0xc5, 0xe8, 0x81, 0xe0, 0xe1, 0xab, 0x09,
+ 0x38, 0x29, 0x5c, 0x66, 0x3e, 0x4b, 0xc2, 0x84, 0x68, 0xbf, 0xcf, 0xdf,
+ 0xef, 0xb9, 0x0d, 0xed,
+};
+static const unsigned char kat2603_retbits[] = {
+ 0x07, 0xf5, 0x2d, 0xbc, 0x71, 0x8c, 0x6e, 0x8b, 0xd8, 0x4c, 0x6b, 0x7d,
+ 0xa4, 0x8a, 0x22, 0x5f, 0xd1, 0xeb, 0xaa, 0x7e, 0xc3, 0x91, 0x60, 0x3e,
+ 0x9f, 0xed, 0xea, 0xd9, 0x22, 0x34, 0x86, 0x54, 0x70, 0xe5, 0x61, 0x11,
+ 0x2a, 0xe3, 0x22, 0xa1, 0xe1, 0xaa, 0xc6, 0x61, 0xbb, 0xb1, 0xba, 0x6b,
+ 0xf0, 0x65, 0x69, 0x15, 0x69, 0x6b, 0x9b, 0x1a, 0x08, 0x44, 0x98, 0x34,
+ 0xb2, 0x6c, 0xe7, 0x35,
+};
+static const struct drbg_kat_pr_false kat2603_t = {
+ 7, kat2603_entropyin, kat2603_nonce, kat2603_persstr,
+ kat2603_entropyinreseed, kat2603_addinreseed, kat2603_addin0,
+ kat2603_addin1, kat2603_retbits
+};
+static const struct drbg_kat kat2603 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2603_t
+};
+
+static const unsigned char kat2604_entropyin[] = {
+ 0xf0, 0xf5, 0xbf, 0xcb, 0x50, 0xce, 0xc0, 0x05, 0xda, 0x11, 0x8f, 0xed,
+ 0x88, 0x37, 0xa0, 0x2d, 0xb1, 0xec, 0xc0, 0x41, 0x7e, 0x88, 0xec, 0x45,
+ 0x85, 0x77, 0x3f, 0x3c, 0x20, 0xb9, 0xf9, 0x0d, 0x5e, 0x5a, 0x9e, 0x03,
+ 0xd0, 0x5d, 0x0d, 0x11,
+};
+static const unsigned char kat2604_nonce[] = {0};
+static const unsigned char kat2604_persstr[] = {0};
+static const unsigned char kat2604_entropyinreseed[] = {
+ 0xb1, 0x73, 0xa1, 0x55, 0xe3, 0x25, 0xee, 0x68, 0x11, 0xec, 0xf9, 0x5b,
+ 0xd1, 0xb6, 0x7f, 0x3c, 0xed, 0xc7, 0x26, 0x56, 0x1e, 0x08, 0x14, 0x46,
+ 0xd9, 0xb4, 0xa6, 0x7e, 0x92, 0x75, 0x40, 0x7c, 0xeb, 0x07, 0x68, 0x5c,
+ 0x03, 0x2f, 0xf7, 0x0e,
+};
+static const unsigned char kat2604_addinreseed[] = {
+ 0xe9, 0xbc, 0xdb, 0x16, 0x02, 0x94, 0x03, 0xb1, 0x52, 0x34, 0xdf, 0xbb,
+ 0x5d, 0x28, 0x0c, 0x50, 0xb0, 0x1f, 0x10, 0x53, 0x9e, 0x76, 0x7c, 0xfe,
+ 0x22, 0x72, 0x02, 0xce, 0x06, 0x60, 0xca, 0xa5, 0x84, 0xc3, 0x59, 0xd0,
+ 0x72, 0x58, 0x97, 0x1b,
+};
+static const unsigned char kat2604_addin0[] = {
+ 0xe8, 0x47, 0xc8, 0xff, 0xa1, 0x53, 0xfb, 0x9b, 0x00, 0xfb, 0xb2, 0xc6,
+ 0x8e, 0x9f, 0x67, 0x7e, 0xe4, 0x81, 0xd2, 0x63, 0x42, 0xc1, 0xd4, 0x01,
+ 0xd2, 0x46, 0x24, 0x4c, 0x70, 0xba, 0x04, 0x96, 0x18, 0xf5, 0x16, 0x48,
+ 0xac, 0x98, 0xcf, 0xcc,
+};
+static const unsigned char kat2604_addin1[] = {
+ 0xb4, 0xa4, 0x6d, 0x6a, 0x5a, 0x66, 0xc7, 0x22, 0xef, 0x75, 0xa5, 0xec,
+ 0x0f, 0x46, 0xdb, 0xf2, 0x6d, 0xb7, 0x90, 0x6a, 0x50, 0x01, 0x31, 0xbf,
+ 0xca, 0xb6, 0x62, 0x2e, 0xd3, 0xb6, 0x54, 0x01, 0xd6, 0xcd, 0x35, 0x67,
+ 0x2d, 0xb0, 0xf0, 0xe1,
+};
+static const unsigned char kat2604_retbits[] = {
+ 0x2d, 0x65, 0x00, 0x76, 0x14, 0xef, 0x03, 0xd5, 0x98, 0xdb, 0xf0, 0xf7,
+ 0x8f, 0xd5, 0x5d, 0x56, 0x52, 0x86, 0x12, 0xd7, 0xc2, 0x12, 0x46, 0xf0,
+ 0xdd, 0xd4, 0xa9, 0x0d, 0x4f, 0x66, 0x61, 0xe2, 0x87, 0xd7, 0xaa, 0x90,
+ 0x94, 0x88, 0xe2, 0xf6, 0xb9, 0x14, 0xbf, 0x28, 0x47, 0xbd, 0x83, 0xdb,
+ 0x4c, 0x0a, 0xf5, 0x64, 0xb7, 0x35, 0x3e, 0xba, 0x35, 0x42, 0xf7, 0x8f,
+ 0x36, 0xc6, 0x9c, 0xf4,
+};
+static const struct drbg_kat_pr_false kat2604_t = {
+ 8, kat2604_entropyin, kat2604_nonce, kat2604_persstr,
+ kat2604_entropyinreseed, kat2604_addinreseed, kat2604_addin0,
+ kat2604_addin1, kat2604_retbits
+};
+static const struct drbg_kat kat2604 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2604_t
+};
+
+static const unsigned char kat2605_entropyin[] = {
+ 0xa3, 0x13, 0xf8, 0x6d, 0x26, 0xe3, 0x7d, 0x1c, 0xd1, 0x2b, 0xbb, 0x29,
+ 0x80, 0x18, 0xd5, 0x11, 0x3e, 0x77, 0x28, 0x1c, 0x94, 0x41, 0xb5, 0x81,
+ 0xf1, 0x7d, 0x82, 0xf8, 0x5b, 0x58, 0xca, 0x9d, 0x53, 0x06, 0xed, 0x8a,
+ 0xf6, 0xa8, 0x70, 0xfe,
+};
+static const unsigned char kat2605_nonce[] = {0};
+static const unsigned char kat2605_persstr[] = {0};
+static const unsigned char kat2605_entropyinreseed[] = {
+ 0x99, 0x26, 0x60, 0x7c, 0xdb, 0xa5, 0x25, 0xe7, 0x90, 0xb4, 0xa3, 0xc7,
+ 0xd0, 0xa4, 0x99, 0xf1, 0x9c, 0x63, 0xa8, 0x25, 0x72, 0x2c, 0x64, 0x42,
+ 0xa8, 0x8c, 0xf8, 0x40, 0x14, 0x1d, 0xb1, 0xd8, 0x5c, 0x9d, 0x8e, 0x2c,
+ 0x0d, 0xb8, 0xd9, 0x81,
+};
+static const unsigned char kat2605_addinreseed[] = {
+ 0xf0, 0x29, 0x80, 0x3f, 0x4d, 0x5c, 0xda, 0x3c, 0xe6, 0x18, 0xb1, 0x7a,
+ 0xfe, 0xa1, 0x2f, 0x14, 0x8e, 0xa3, 0x48, 0xe6, 0xb2, 0x6d, 0xc0, 0x47,
+ 0xee, 0x42, 0x78, 0xe4, 0x0e, 0x39, 0xa3, 0x9f, 0x27, 0xf1, 0x3d, 0x03,
+ 0x06, 0xe7, 0x0d, 0x1b,
+};
+static const unsigned char kat2605_addin0[] = {
+ 0xd1, 0xdd, 0x47, 0xba, 0x88, 0x6d, 0x21, 0x5d, 0x8d, 0xc4, 0x44, 0xb4,
+ 0x51, 0xf1, 0x54, 0xf5, 0xa6, 0x6f, 0x38, 0x3f, 0x6c, 0xe1, 0xe3, 0x58,
+ 0x86, 0x68, 0xf8, 0xbb, 0x8c, 0xd4, 0xfe, 0xae, 0x96, 0x95, 0xc0, 0x1a,
+ 0x37, 0x56, 0x65, 0x60,
+};
+static const unsigned char kat2605_addin1[] = {
+ 0xf6, 0xa8, 0xb5, 0x23, 0x9d, 0x85, 0x4c, 0x59, 0xb1, 0x44, 0x36, 0x5f,
+ 0x89, 0xd4, 0x73, 0x74, 0xb3, 0x80, 0xc8, 0x5c, 0x3b, 0xcb, 0x43, 0xfc,
+ 0x34, 0xbd, 0x4a, 0xd5, 0x58, 0xb5, 0xd4, 0xda, 0xc9, 0xe4, 0x9b, 0x31,
+ 0xdc, 0xee, 0x36, 0x3a,
+};
+static const unsigned char kat2605_retbits[] = {
+ 0xb2, 0x47, 0x72, 0x53, 0xda, 0x7f, 0x7f, 0x36, 0x4b, 0x14, 0x41, 0x0a,
+ 0x6e, 0xe6, 0xc1, 0xcd, 0x78, 0x41, 0xf4, 0x7e, 0xf1, 0x52, 0xd9, 0x0e,
+ 0x4b, 0x81, 0x1e, 0xcb, 0xbf, 0x5f, 0x60, 0x82, 0xbc, 0x67, 0xa0, 0x7c,
+ 0xf0, 0xa0, 0x0f, 0x30, 0x4a, 0x15, 0x7e, 0x4b, 0x95, 0x57, 0x53, 0x1b,
+ 0x4b, 0xf4, 0xf2, 0xf9, 0x4f, 0xd7, 0x53, 0x7e, 0x00, 0x0c, 0x8d, 0x53,
+ 0x79, 0x43, 0x24, 0x69,
+};
+static const struct drbg_kat_pr_false kat2605_t = {
+ 9, kat2605_entropyin, kat2605_nonce, kat2605_persstr,
+ kat2605_entropyinreseed, kat2605_addinreseed, kat2605_addin0,
+ kat2605_addin1, kat2605_retbits
+};
+static const struct drbg_kat kat2605 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2605_t
+};
+
+static const unsigned char kat2606_entropyin[] = {
+ 0xbe, 0xa7, 0xd6, 0x35, 0x77, 0x5b, 0xad, 0xfc, 0xef, 0x7d, 0xa7, 0x0c,
+ 0xa4, 0xe4, 0x4f, 0xc1, 0x7c, 0xe8, 0x30, 0x87, 0x91, 0xee, 0x1a, 0x89,
+ 0xd1, 0xa6, 0x0d, 0x90, 0xf2, 0x9a, 0x59, 0xdc, 0xb7, 0xe3, 0xe2, 0x56,
+ 0x2d, 0x92, 0xc7, 0xd2,
+};
+static const unsigned char kat2606_nonce[] = {0};
+static const unsigned char kat2606_persstr[] = {0};
+static const unsigned char kat2606_entropyinreseed[] = {
+ 0x3b, 0xed, 0x52, 0x54, 0x29, 0x6e, 0x8a, 0xf2, 0x39, 0xa9, 0x5f, 0x9d,
+ 0x3c, 0x2b, 0xbb, 0xa7, 0x52, 0x00, 0xd1, 0x9c, 0x5d, 0x84, 0x82, 0x3a,
+ 0x3d, 0x5c, 0x9d, 0xcd, 0x8b, 0x59, 0x61, 0x52, 0xac, 0xf2, 0x2c, 0xe4,
+ 0xc3, 0xa8, 0xb6, 0xa8,
+};
+static const unsigned char kat2606_addinreseed[] = {
+ 0x8b, 0x3b, 0xf1, 0xb6, 0x60, 0x68, 0x5e, 0x08, 0xcd, 0xb3, 0xee, 0x0d,
+ 0x90, 0x2c, 0x0f, 0x80, 0x69, 0x36, 0x3c, 0x5d, 0xac, 0x0c, 0x3d, 0x32,
+ 0x2b, 0x68, 0x93, 0x5c, 0xd2, 0x6b, 0x99, 0xa0, 0x28, 0x0b, 0xf2, 0x43,
+ 0x26, 0x07, 0x85, 0x9e,
+};
+static const unsigned char kat2606_addin0[] = {
+ 0x71, 0x18, 0xc9, 0xcd, 0x79, 0xda, 0x67, 0x52, 0xb7, 0x4a, 0x7c, 0xfc,
+ 0x33, 0x90, 0xce, 0x94, 0x9b, 0xfb, 0xf1, 0x39, 0x80, 0x36, 0x38, 0x79,
+ 0x9b, 0xe9, 0xbc, 0x69, 0x15, 0x5f, 0x2c, 0x4c, 0xa0, 0x98, 0xd9, 0xd8,
+ 0xaa, 0x13, 0x25, 0x82,
+};
+static const unsigned char kat2606_addin1[] = {
+ 0xd5, 0x27, 0xbb, 0x22, 0x91, 0x87, 0x3b, 0x58, 0xe2, 0x3a, 0x9f, 0xde,
+ 0x22, 0xb1, 0x7b, 0x42, 0xc7, 0x48, 0xd3, 0x5e, 0x1e, 0x82, 0x78, 0xef,
+ 0x6f, 0xd5, 0xf3, 0xc5, 0x6f, 0x40, 0x64, 0xe9, 0x9b, 0x3a, 0x57, 0xc8,
+ 0xd2, 0xcb, 0x01, 0x66,
+};
+static const unsigned char kat2606_retbits[] = {
+ 0x6e, 0xd8, 0xc3, 0xe8, 0x6f, 0x9c, 0xb1, 0x62, 0xdc, 0xe0, 0xd4, 0xad,
+ 0x8d, 0x5f, 0xa8, 0xe2, 0xef, 0x53, 0x23, 0xb8, 0xe7, 0x0d, 0x5d, 0x54,
+ 0x73, 0x91, 0xc8, 0x46, 0x63, 0xe3, 0x0e, 0x1f, 0xc3, 0xe7, 0x89, 0x93,
+ 0xfa, 0xbd, 0xaa, 0x6c, 0xa5, 0x44, 0x9e, 0x37, 0x96, 0x4c, 0x87, 0xc2,
+ 0xf7, 0x94, 0x4e, 0xf9, 0x47, 0x11, 0x61, 0x26, 0x04, 0xc5, 0x76, 0xe6,
+ 0xc3, 0xd7, 0x1a, 0x19,
+};
+static const struct drbg_kat_pr_false kat2606_t = {
+ 10, kat2606_entropyin, kat2606_nonce, kat2606_persstr,
+ kat2606_entropyinreseed, kat2606_addinreseed, kat2606_addin0,
+ kat2606_addin1, kat2606_retbits
+};
+static const struct drbg_kat kat2606 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2606_t
+};
+
+static const unsigned char kat2607_entropyin[] = {
+ 0x15, 0x0f, 0x8c, 0x56, 0x56, 0xd4, 0x72, 0x69, 0x28, 0x95, 0xca, 0x10,
+ 0x8e, 0x68, 0x77, 0xaf, 0xab, 0x5c, 0x8e, 0x37, 0xf4, 0xc4, 0xd9, 0xfc,
+ 0xcc, 0x6e, 0xe6, 0xe9, 0x46, 0x53, 0x71, 0xe3, 0x29, 0xa1, 0x71, 0xd0,
+ 0x1b, 0x6d, 0x7e, 0x71,
+};
+static const unsigned char kat2607_nonce[] = {0};
+static const unsigned char kat2607_persstr[] = {0};
+static const unsigned char kat2607_entropyinreseed[] = {
+ 0x4f, 0x63, 0xc5, 0x0e, 0x65, 0x3e, 0xbf, 0x1c, 0x98, 0xc0, 0x33, 0xbc,
+ 0x22, 0xf2, 0xab, 0xab, 0xca, 0x5c, 0x85, 0xa7, 0xf3, 0xbc, 0xe0, 0x0f,
+ 0x67, 0x36, 0xeb, 0x20, 0xe1, 0x1a, 0x8c, 0x52, 0x03, 0x82, 0x09, 0xc3,
+ 0x3a, 0xd2, 0xff, 0x67,
+};
+static const unsigned char kat2607_addinreseed[] = {
+ 0xad, 0x4b, 0x09, 0xc5, 0x82, 0x5c, 0x4c, 0x44, 0x90, 0x95, 0x58, 0xae,
+ 0x12, 0x62, 0x7d, 0x52, 0x82, 0x87, 0xf9, 0x19, 0x52, 0xf3, 0x89, 0x88,
+ 0x2e, 0x62, 0x0c, 0xa8, 0xd4, 0x20, 0x57, 0xe7, 0x94, 0xce, 0x5c, 0x19,
+ 0x49, 0x8e, 0x08, 0x76,
+};
+static const unsigned char kat2607_addin0[] = {
+ 0xe8, 0xed, 0x80, 0x77, 0x46, 0x51, 0x50, 0xb5, 0xae, 0x54, 0x20, 0x9c,
+ 0xa2, 0x30, 0xc5, 0x4a, 0x79, 0xfe, 0x03, 0x96, 0xe3, 0x8d, 0x4a, 0x27,
+ 0x17, 0xd6, 0xbe, 0xf9, 0x59, 0x99, 0x5b, 0xf6, 0x90, 0xb9, 0xb4, 0xc5,
+ 0x11, 0x93, 0xc7, 0x9c,
+};
+static const unsigned char kat2607_addin1[] = {
+ 0x9c, 0xce, 0xac, 0x68, 0xa4, 0xa4, 0xc6, 0xe1, 0x11, 0x5d, 0xad, 0xff,
+ 0x7a, 0xa7, 0x77, 0x29, 0x6a, 0xf2, 0x2f, 0xde, 0x48, 0xc8, 0xd7, 0x25,
+ 0xa0, 0x70, 0x56, 0xee, 0xcc, 0x22, 0x0c, 0x3a, 0x40, 0x7e, 0x2c, 0xd8,
+ 0xf4, 0x01, 0x93, 0x47,
+};
+static const unsigned char kat2607_retbits[] = {
+ 0x2c, 0x71, 0xcb, 0xdf, 0x0c, 0x7c, 0xf3, 0xc4, 0x77, 0x13, 0xab, 0xe5,
+ 0x93, 0x22, 0x8c, 0x42, 0x33, 0xe3, 0x80, 0x58, 0x0f, 0x05, 0x80, 0x76,
+ 0x31, 0xec, 0x1e, 0x49, 0x72, 0x95, 0xc2, 0x8a, 0x55, 0x3f, 0xe5, 0x5b,
+ 0xc4, 0x34, 0xcd, 0x76, 0xd9, 0xdb, 0x10, 0xc3, 0x07, 0xca, 0xa4, 0xc2,
+ 0xa4, 0x82, 0x55, 0xb2, 0xe8, 0xd7, 0xbf, 0x30, 0x13, 0x66, 0xab, 0x40,
+ 0xeb, 0x95, 0x73, 0xef,
+};
+static const struct drbg_kat_pr_false kat2607_t = {
+ 11, kat2607_entropyin, kat2607_nonce, kat2607_persstr,
+ kat2607_entropyinreseed, kat2607_addinreseed, kat2607_addin0,
+ kat2607_addin1, kat2607_retbits
+};
+static const struct drbg_kat kat2607 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2607_t
+};
+
+static const unsigned char kat2608_entropyin[] = {
+ 0xfa, 0x5e, 0xa6, 0xbd, 0x7f, 0x8a, 0x4d, 0x05, 0x90, 0x57, 0x82, 0x2c,
+ 0xb6, 0xda, 0xdb, 0xfb, 0x51, 0xed, 0x0a, 0xdc, 0x92, 0x77, 0x71, 0xe0,
+ 0x13, 0x0e, 0xff, 0xa6, 0xdc, 0x63, 0x83, 0xba, 0x04, 0x8e, 0xa5, 0x22,
+ 0xbc, 0x38, 0xeb, 0x6c,
+};
+static const unsigned char kat2608_nonce[] = {0};
+static const unsigned char kat2608_persstr[] = {0};
+static const unsigned char kat2608_entropyinreseed[] = {
+ 0x32, 0xbf, 0x4f, 0xf5, 0xd9, 0x6f, 0x2e, 0x73, 0x8e, 0x1d, 0xca, 0x1f,
+ 0xa6, 0xfd, 0xc6, 0x84, 0x1b, 0x08, 0x57, 0x60, 0xb2, 0x33, 0x0c, 0x44,
+ 0xa5, 0x10, 0x31, 0x7c, 0x33, 0xa3, 0x0c, 0xd0, 0xea, 0x67, 0x49, 0x12,
+ 0x59, 0xc0, 0xec, 0xb3,
+};
+static const unsigned char kat2608_addinreseed[] = {
+ 0xb1, 0xbc, 0x3a, 0xde, 0x5f, 0x8e, 0x28, 0xee, 0xd4, 0x1f, 0xca, 0x48,
+ 0xb5, 0xf3, 0xc1, 0xed, 0xe5, 0x7b, 0x1e, 0x87, 0x95, 0x5e, 0x10, 0xf4,
+ 0x71, 0xc6, 0x44, 0xc4, 0x7a, 0xb1, 0xdb, 0xf5, 0xd9, 0x20, 0x98, 0xcc,
+ 0x23, 0x71, 0x68, 0x29,
+};
+static const unsigned char kat2608_addin0[] = {
+ 0x78, 0xe9, 0xb9, 0x91, 0x89, 0xe3, 0x60, 0x46, 0x99, 0x2b, 0xf8, 0x2f,
+ 0x58, 0x8b, 0xb8, 0x14, 0x5b, 0x16, 0xf3, 0x5e, 0x65, 0x37, 0xf7, 0x62,
+ 0x05, 0xf1, 0xb9, 0x9b, 0x9a, 0xe9, 0x2a, 0x84, 0xc2, 0x9b, 0x65, 0xb9,
+ 0xd0, 0x7c, 0x1c, 0x4c,
+};
+static const unsigned char kat2608_addin1[] = {
+ 0x5c, 0xff, 0xda, 0x30, 0xab, 0x0d, 0x71, 0xfe, 0x82, 0x11, 0x99, 0xae,
+ 0x88, 0x21, 0x8b, 0x82, 0x30, 0x34, 0x5c, 0x94, 0xf6, 0x67, 0xb6, 0x64,
+ 0x2d, 0xb6, 0x54, 0x21, 0x4f, 0x3a, 0x15, 0xa7, 0xc6, 0xf1, 0x60, 0x95,
+ 0x33, 0xbc, 0x6e, 0x52,
+};
+static const unsigned char kat2608_retbits[] = {
+ 0x3e, 0x32, 0x63, 0xc6, 0xff, 0x3f, 0x28, 0x61, 0xfe, 0x59, 0xfa, 0x76,
+ 0x4d, 0xd2, 0x03, 0x48, 0x99, 0x17, 0xdd, 0x55, 0xe0, 0x07, 0xe1, 0xac,
+ 0x28, 0xed, 0xa8, 0x50, 0x05, 0x3a, 0x94, 0xef, 0x3c, 0x54, 0x00, 0x8d,
+ 0x06, 0xd9, 0xdc, 0xd2, 0x78, 0x17, 0x1c, 0xe6, 0x92, 0x69, 0xb4, 0x7e,
+ 0x7e, 0xf8, 0xc0, 0x4d, 0x5a, 0xd1, 0x7c, 0xda, 0xf5, 0xaf, 0xec, 0x02,
+ 0x1a, 0xca, 0xe1, 0x6e,
+};
+static const struct drbg_kat_pr_false kat2608_t = {
+ 12, kat2608_entropyin, kat2608_nonce, kat2608_persstr,
+ kat2608_entropyinreseed, kat2608_addinreseed, kat2608_addin0,
+ kat2608_addin1, kat2608_retbits
+};
+static const struct drbg_kat kat2608 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2608_t
+};
+
+static const unsigned char kat2609_entropyin[] = {
+ 0x8d, 0xe5, 0x81, 0x4b, 0x66, 0x83, 0x87, 0x41, 0x88, 0x09, 0xcc, 0xee,
+ 0xc4, 0x66, 0x7f, 0x7b, 0x67, 0xdb, 0x3c, 0x87, 0x55, 0xd7, 0xf0, 0x45,
+ 0x0b, 0x65, 0x06, 0x8f, 0x84, 0x6c, 0x34, 0x1c, 0xd1, 0xc4, 0x5a, 0xfa,
+ 0x4a, 0xcb, 0x39, 0x64,
+};
+static const unsigned char kat2609_nonce[] = {0};
+static const unsigned char kat2609_persstr[] = {0};
+static const unsigned char kat2609_entropyinreseed[] = {
+ 0x48, 0x64, 0x00, 0xe9, 0x61, 0x34, 0xc7, 0xfc, 0x67, 0x8a, 0x9d, 0x5d,
+ 0x7b, 0xd2, 0x2e, 0x8a, 0xf0, 0x92, 0x7a, 0x09, 0x06, 0x36, 0x02, 0x9b,
+ 0x61, 0x3a, 0xfd, 0x1b, 0x1b, 0x8c, 0x6b, 0x97, 0xdd, 0xf5, 0x7e, 0xef,
+ 0xba, 0xf4, 0x1a, 0xe8,
+};
+static const unsigned char kat2609_addinreseed[] = {
+ 0x77, 0x30, 0x6a, 0xb1, 0x97, 0xaa, 0x94, 0x6c, 0xaf, 0x00, 0x04, 0x46,
+ 0x85, 0x4d, 0x9a, 0x0b, 0x44, 0xbf, 0x6d, 0x48, 0x22, 0xb2, 0x27, 0xc4,
+ 0x27, 0x56, 0xe3, 0xb7, 0x35, 0x1e, 0xd6, 0x28, 0x4c, 0xa1, 0x4b, 0x07,
+ 0xb1, 0x64, 0x81, 0x38,
+};
+static const unsigned char kat2609_addin0[] = {
+ 0x44, 0x0b, 0xe6, 0x64, 0x8f, 0xb2, 0x53, 0xca, 0xc8, 0xb4, 0xfa, 0x2f,
+ 0xf0, 0x64, 0x4c, 0x30, 0x54, 0x15, 0xc7, 0x17, 0x53, 0x10, 0x8e, 0xae,
+ 0x20, 0x07, 0x34, 0x83, 0x89, 0xf5, 0xba, 0x83, 0xa8, 0x71, 0x28, 0x79,
+ 0xf5, 0xd9, 0x02, 0x15,
+};
+static const unsigned char kat2609_addin1[] = {
+ 0xbc, 0x00, 0x5a, 0x5a, 0xb1, 0x1b, 0x11, 0x44, 0x1c, 0x1d, 0x7b, 0x69,
+ 0x6e, 0x23, 0x1d, 0xfe, 0x74, 0xfc, 0x4c, 0xa0, 0x68, 0x9d, 0xe4, 0xa4,
+ 0xc2, 0x6c, 0x65, 0x55, 0xcd, 0x19, 0xc1, 0xd9, 0x8d, 0x88, 0xa8, 0xae,
+ 0xc4, 0x78, 0x49, 0x8b,
+};
+static const unsigned char kat2609_retbits[] = {
+ 0x00, 0x34, 0x9b, 0xcd, 0xf0, 0xc4, 0xdb, 0x17, 0x34, 0x2f, 0xdb, 0xa2,
+ 0xdf, 0x34, 0x51, 0xdc, 0x07, 0x95, 0x8a, 0x23, 0xdf, 0x82, 0xc8, 0x90,
+ 0x73, 0x96, 0xa3, 0x2b, 0xd5, 0x4e, 0x8b, 0xb2, 0xcb, 0x24, 0x6e, 0x31,
+ 0xe0, 0xa2, 0xfb, 0xfe, 0x80, 0xd1, 0xad, 0x43, 0x86, 0x92, 0xdb, 0x16,
+ 0x2d, 0xe9, 0x4d, 0xf7, 0xbc, 0x49, 0x39, 0xbf, 0xf7, 0x34, 0x36, 0x13,
+ 0xcf, 0x40, 0x06, 0xb2,
+};
+static const struct drbg_kat_pr_false kat2609_t = {
+ 13, kat2609_entropyin, kat2609_nonce, kat2609_persstr,
+ kat2609_entropyinreseed, kat2609_addinreseed, kat2609_addin0,
+ kat2609_addin1, kat2609_retbits
+};
+static const struct drbg_kat kat2609 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2609_t
+};
+
+static const unsigned char kat2610_entropyin[] = {
+ 0xc4, 0x76, 0x3f, 0x91, 0x72, 0x8f, 0x95, 0x70, 0x06, 0xda, 0x20, 0xa8,
+ 0x1f, 0xae, 0x7d, 0xfc, 0xda, 0x64, 0x9b, 0xe1, 0xa6, 0x41, 0xdf, 0x44,
+ 0xd7, 0xce, 0x12, 0x6f, 0xdc, 0x0d, 0x13, 0xd9, 0xee, 0xe6, 0x4e, 0xcc,
+ 0x1e, 0x0e, 0xea, 0xf0,
+};
+static const unsigned char kat2610_nonce[] = {0};
+static const unsigned char kat2610_persstr[] = {0};
+static const unsigned char kat2610_entropyinreseed[] = {
+ 0xc5, 0xd8, 0xfe, 0x8f, 0x0e, 0x54, 0xc5, 0x23, 0x86, 0x1e, 0x80, 0x14,
+ 0x6a, 0x0d, 0x44, 0x5a, 0x4f, 0xa0, 0xe9, 0xaa, 0x55, 0x67, 0x5e, 0x7c,
+ 0x94, 0x2c, 0x06, 0x60, 0x1e, 0xb9, 0x82, 0x58, 0xfa, 0x54, 0x9f, 0xf4,
+ 0x1e, 0xa6, 0xaf, 0x38,
+};
+static const unsigned char kat2610_addinreseed[] = {
+ 0x96, 0x25, 0x6e, 0xc3, 0x2a, 0x07, 0x6f, 0x5c, 0xc0, 0x35, 0xc6, 0x3d,
+ 0x9d, 0x2d, 0x62, 0x32, 0x69, 0x9d, 0x3c, 0x9a, 0x2b, 0xfc, 0xbe, 0x8d,
+ 0x7d, 0x11, 0x01, 0xb9, 0x2c, 0x87, 0x58, 0xe7, 0x51, 0xfb, 0xb9, 0xc9,
+ 0x44, 0xf2, 0x4c, 0x57,
+};
+static const unsigned char kat2610_addin0[] = {
+ 0xbf, 0x76, 0x97, 0x37, 0x91, 0xb5, 0x2d, 0x93, 0x87, 0xe2, 0xa3, 0x6f,
+ 0x3a, 0xb3, 0x62, 0x0b, 0xb9, 0x83, 0xdc, 0xd2, 0x39, 0x9f, 0xef, 0x3c,
+ 0xc6, 0xbf, 0x4c, 0xf8, 0x6c, 0xf7, 0x88, 0x99, 0x64, 0x30, 0x0f, 0xd4,
+ 0xf9, 0x85, 0x1a, 0xa6,
+};
+static const unsigned char kat2610_addin1[] = {
+ 0x20, 0x89, 0xac, 0xf7, 0xac, 0xa4, 0x3a, 0x77, 0xd8, 0x45, 0x9d, 0x4f,
+ 0x38, 0x49, 0x19, 0x57, 0x5e, 0xd8, 0x8c, 0x7c, 0x47, 0x59, 0xb9, 0xdd,
+ 0x70, 0x33, 0xa1, 0x32, 0xa8, 0x5c, 0x2e, 0xc6, 0xc7, 0x10, 0x25, 0xc1,
+ 0x66, 0x08, 0x3b, 0xc7,
+};
+static const unsigned char kat2610_retbits[] = {
+ 0x81, 0x30, 0x9a, 0x10, 0xac, 0x3f, 0x02, 0xd3, 0xfe, 0xe0, 0x49, 0xa5,
+ 0xdd, 0xb9, 0xf0, 0x2f, 0x64, 0xdf, 0xf3, 0xd6, 0xb7, 0x52, 0x59, 0xd5,
+ 0x61, 0x92, 0x1a, 0x83, 0x49, 0xb3, 0x00, 0x54, 0x05, 0x9b, 0x2a, 0xf8,
+ 0x1c, 0x6f, 0x7d, 0x50, 0x18, 0x9a, 0x0b, 0xb6, 0xd3, 0x60, 0xda, 0x06,
+ 0xbc, 0xbd, 0xc9, 0x44, 0x99, 0x7d, 0x6f, 0x8b, 0x05, 0x1f, 0x23, 0x99,
+ 0x8c, 0x8c, 0x36, 0xae,
+};
+static const struct drbg_kat_pr_false kat2610_t = {
+ 14, kat2610_entropyin, kat2610_nonce, kat2610_persstr,
+ kat2610_entropyinreseed, kat2610_addinreseed, kat2610_addin0,
+ kat2610_addin1, kat2610_retbits
+};
+static const struct drbg_kat kat2610 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat2610_t
+};
+
+static const unsigned char kat2611_entropyin[] = {
+ 0xc1, 0x80, 0x5a, 0xcd, 0x7f, 0xbd, 0x1a, 0x8e, 0x59, 0x8a, 0x5d, 0x6b,
+ 0x71, 0x8e, 0x62, 0xa9, 0xa8, 0x04, 0x01, 0x7b, 0xea, 0x21, 0x56, 0xa5,
+ 0x76, 0xd0, 0xc7, 0x9a, 0xc1, 0xb6, 0x5d, 0xe8, 0xb9, 0xa9, 0xf1, 0x6b,
+ 0x2d, 0x39, 0xf5, 0x17,
+};
+static const unsigned char kat2611_nonce[] = {0};
+static const unsigned char kat2611_persstr[] = {
+ 0x36, 0x4a, 0x2d, 0x14, 0xae, 0xaa, 0x9e, 0xff, 0xa3, 0xda, 0x10, 0x8d,
+ 0x88, 0x6c, 0x8b, 0xb1, 0x27, 0x7d, 0x3c, 0x79, 0xe4, 0x7d, 0x44, 0x4e,
+ 0xd9, 0x3c, 0xb6, 0x7f, 0xe2, 0x82, 0xf8, 0xd0, 0x16, 0x2b, 0xe2, 0x62,
+ 0xec, 0x43, 0x5c, 0x24,
+};
+static const unsigned char kat2611_entropyinreseed[] = {
+ 0x6b, 0xd4, 0x3a, 0xf1, 0x8c, 0x45, 0x58, 0xa4, 0x3d, 0x85, 0x50, 0x12,
+ 0x74, 0xfb, 0x96, 0xb0, 0x97, 0x08, 0xe1, 0x21, 0xa7, 0x4d, 0x44, 0x4a,
+ 0x14, 0x88, 0x6c, 0x47, 0x1f, 0x8d, 0xd0, 0xe1, 0xb6, 0x0c, 0xdf, 0xd6,
+ 0xcd, 0xcb, 0xa9, 0x9f,
+};
+static const unsigned char kat2611_addinreseed[] = {0};
+static const unsigned char kat2611_addin0[] = {0};
+static const unsigned char kat2611_addin1[] = {0};
+static const unsigned char kat2611_retbits[] = {
+ 0x59, 0x93, 0x40, 0x2f, 0x0e, 0x1f, 0xbc, 0xef, 0x2b, 0x31, 0x59, 0x28,
+ 0xe2, 0x6e, 0x14, 0xae, 0x8d, 0x9e, 0x6d, 0xc4, 0x18, 0xe9, 0xcb, 0xc9,
+ 0x86, 0x62, 0x3e, 0x13, 0x00, 0xd2, 0xcc, 0x78, 0x98, 0x54, 0xed, 0x7c,
+ 0x5d, 0xf9, 0x3e, 0xbd, 0x42, 0xde, 0xdc, 0xde, 0xc7, 0x03, 0x15, 0x3f,
+ 0x12, 0x78, 0x32, 0x43, 0xa2, 0x34, 0x46, 0x4c, 0x00, 0x36, 0x0c, 0xe5,
+ 0x40, 0x51, 0x00, 0xaa,
+};
+static const struct drbg_kat_pr_false kat2611_t = {
+ 0, kat2611_entropyin, kat2611_nonce, kat2611_persstr,
+ kat2611_entropyinreseed, kat2611_addinreseed, kat2611_addin0,
+ kat2611_addin1, kat2611_retbits
+};
+static const struct drbg_kat kat2611 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2611_t
+};
+
+static const unsigned char kat2612_entropyin[] = {
+ 0xfb, 0xe6, 0x2f, 0x35, 0x35, 0x19, 0xed, 0xa7, 0x41, 0xda, 0x26, 0x0c,
+ 0x97, 0x28, 0x9c, 0xa5, 0x66, 0xe5, 0x42, 0x44, 0x95, 0xcc, 0x65, 0x91,
+ 0xb9, 0xbe, 0x7d, 0xed, 0x77, 0xd4, 0x90, 0x74, 0x76, 0x6b, 0x64, 0x39,
+ 0x4e, 0xda, 0xe2, 0xff,
+};
+static const unsigned char kat2612_nonce[] = {0};
+static const unsigned char kat2612_persstr[] = {
+ 0x6e, 0x47, 0x56, 0x68, 0xd4, 0xd7, 0x19, 0x44, 0xd8, 0xe7, 0x3e, 0xe2,
+ 0x93, 0xb1, 0xc5, 0x8f, 0xe4, 0x7a, 0x73, 0x03, 0xd8, 0x1c, 0xce, 0x68,
+ 0x65, 0x5d, 0xa8, 0x5b, 0x59, 0x42, 0x3f, 0xb7, 0xcb, 0xdc, 0xb2, 0xdd,
+ 0x71, 0x9f, 0x48, 0xb6,
+};
+static const unsigned char kat2612_entropyinreseed[] = {
+ 0x4b, 0x25, 0xa9, 0x6e, 0x85, 0x4b, 0xde, 0x02, 0x3e, 0x1b, 0x9c, 0xee,
+ 0x72, 0xab, 0xc1, 0xd6, 0x39, 0xa8, 0x4e, 0xfa, 0x87, 0x6b, 0xd7, 0x63,
+ 0xb0, 0x92, 0xcb, 0x93, 0x60, 0x37, 0x41, 0x5e, 0x16, 0xac, 0xa4, 0x5d,
+ 0x22, 0xae, 0x82, 0x2b,
+};
+static const unsigned char kat2612_addinreseed[] = {0};
+static const unsigned char kat2612_addin0[] = {0};
+static const unsigned char kat2612_addin1[] = {0};
+static const unsigned char kat2612_retbits[] = {
+ 0x25, 0x8a, 0x9a, 0xb1, 0x4b, 0x16, 0xcb, 0x18, 0xeb, 0xe8, 0x0b, 0x4f,
+ 0x4a, 0x74, 0x9e, 0x4f, 0xa1, 0x89, 0x4a, 0x43, 0xd8, 0xb6, 0xab, 0x62,
+ 0x46, 0x27, 0xaf, 0x1d, 0xb8, 0x57, 0xc1, 0xfd, 0xd0, 0xf6, 0x0f, 0xc3,
+ 0x45, 0x50, 0x72, 0x2d, 0xbe, 0xcc, 0xad, 0x4d, 0xe7, 0xb0, 0x63, 0x16,
+ 0x1b, 0xaa, 0x45, 0x04, 0x9b, 0xe3, 0xab, 0xdf, 0x28, 0x68, 0x92, 0xc2,
+ 0x72, 0x87, 0xb6, 0x7a,
+};
+static const struct drbg_kat_pr_false kat2612_t = {
+ 1, kat2612_entropyin, kat2612_nonce, kat2612_persstr,
+ kat2612_entropyinreseed, kat2612_addinreseed, kat2612_addin0,
+ kat2612_addin1, kat2612_retbits
+};
+static const struct drbg_kat kat2612 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2612_t
+};
+
+static const unsigned char kat2613_entropyin[] = {
+ 0xe3, 0xd0, 0x30, 0x44, 0x40, 0x10, 0x5d, 0xe3, 0x61, 0x77, 0x44, 0x6d,
+ 0x97, 0xe3, 0x7c, 0x2e, 0xb2, 0x9b, 0xd0, 0xd0, 0xd4, 0x07, 0x0e, 0xe1,
+ 0x8f, 0x3a, 0xf1, 0x42, 0x43, 0x49, 0xd8, 0x60, 0xa9, 0xc4, 0xba, 0x9f,
+ 0x32, 0xe2, 0xbc, 0x1d,
+};
+static const unsigned char kat2613_nonce[] = {0};
+static const unsigned char kat2613_persstr[] = {
+ 0x7b, 0x7b, 0xbe, 0x07, 0xf3, 0x67, 0x2a, 0x3b, 0xf2, 0x66, 0xae, 0x2d,
+ 0xcd, 0x50, 0x3b, 0x94, 0x2a, 0xbb, 0xd6, 0xd6, 0x37, 0x9d, 0x59, 0xca,
+ 0xac, 0x34, 0xee, 0xd9, 0x6b, 0xea, 0xb8, 0xcc, 0x2e, 0x51, 0xc5, 0x31,
+ 0xf4, 0x77, 0xee, 0x1c,
+};
+static const unsigned char kat2613_entropyinreseed[] = {
+ 0x2a, 0x62, 0xd0, 0x6d, 0xfb, 0x47, 0xb2, 0x83, 0x4e, 0x09, 0x9f, 0xc6,
+ 0x6e, 0xf5, 0x0c, 0x34, 0x90, 0xe7, 0x34, 0x24, 0x25, 0x45, 0xe5, 0x0a,
+ 0xd8, 0xc6, 0x52, 0x74, 0x87, 0xfc, 0xa4, 0xb7, 0xbc, 0x15, 0x20, 0x93,
+ 0x6d, 0xd3, 0x6d, 0x0b,
+};
+static const unsigned char kat2613_addinreseed[] = {0};
+static const unsigned char kat2613_addin0[] = {0};
+static const unsigned char kat2613_addin1[] = {0};
+static const unsigned char kat2613_retbits[] = {
+ 0xed, 0xa9, 0xfd, 0xa6, 0xad, 0xe2, 0x28, 0x13, 0x32, 0x44, 0xb5, 0x91,
+ 0xfc, 0x63, 0xa7, 0xf9, 0xab, 0xf0, 0xb6, 0x85, 0x79, 0xaf, 0x45, 0xd4,
+ 0x45, 0x6b, 0x00, 0xa3, 0x90, 0x82, 0xdc, 0xf6, 0xd3, 0x02, 0x98, 0x65,
+ 0xb2, 0x03, 0xf1, 0xd0, 0x44, 0xf4, 0xb3, 0x0f, 0x4f, 0x67, 0x39, 0x47,
+ 0x66, 0xc1, 0xad, 0xd5, 0x70, 0x48, 0xba, 0x45, 0x74, 0x8e, 0x9d, 0xfc,
+ 0x6e, 0x59, 0x01, 0xda,
+};
+static const struct drbg_kat_pr_false kat2613_t = {
+ 2, kat2613_entropyin, kat2613_nonce, kat2613_persstr,
+ kat2613_entropyinreseed, kat2613_addinreseed, kat2613_addin0,
+ kat2613_addin1, kat2613_retbits
+};
+static const struct drbg_kat kat2613 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2613_t
+};
+
+static const unsigned char kat2614_entropyin[] = {
+ 0x64, 0x08, 0x28, 0x7f, 0x33, 0x97, 0xcb, 0x4e, 0xbc, 0xa2, 0xb5, 0x31,
+ 0xef, 0x99, 0xb1, 0xfc, 0x18, 0x7a, 0x68, 0xa4, 0x04, 0x7e, 0xe9, 0x07,
+ 0x56, 0x12, 0x04, 0x68, 0x2c, 0x71, 0x47, 0xe9, 0xb5, 0x63, 0xb1, 0x0a,
+ 0xff, 0x89, 0x88, 0xb5,
+};
+static const unsigned char kat2614_nonce[] = {0};
+static const unsigned char kat2614_persstr[] = {
+ 0xea, 0x02, 0xe2, 0x32, 0x6b, 0x5e, 0x8e, 0x3f, 0x2c, 0x80, 0xe3, 0xcd,
+ 0xd0, 0x1b, 0x78, 0x98, 0x47, 0x31, 0xae, 0x13, 0x80, 0x2a, 0xd0, 0xbd,
+ 0x72, 0xea, 0x5e, 0xe3, 0xd3, 0x52, 0xd7, 0x31, 0x82, 0xcf, 0x4a, 0x9f,
+ 0x5b, 0x45, 0x9d, 0x81,
+};
+static const unsigned char kat2614_entropyinreseed[] = {
+ 0x84, 0xa9, 0x5e, 0xe2, 0xd3, 0x59, 0x74, 0x71, 0x0a, 0x7f, 0xc6, 0xc4,
+ 0x83, 0x3c, 0x83, 0x1c, 0x06, 0x00, 0x01, 0x9f, 0x25, 0xcb, 0x62, 0x54,
+ 0xfe, 0x88, 0x69, 0x10, 0x9e, 0x81, 0xe0, 0x86, 0x67, 0x51, 0x7b, 0xbf,
+ 0xa9, 0xe8, 0x1a, 0xf0,
+};
+static const unsigned char kat2614_addinreseed[] = {0};
+static const unsigned char kat2614_addin0[] = {0};
+static const unsigned char kat2614_addin1[] = {0};
+static const unsigned char kat2614_retbits[] = {
+ 0xeb, 0xab, 0x51, 0xb0, 0x46, 0xcc, 0x15, 0x77, 0xd0, 0xe9, 0x32, 0xe5,
+ 0x68, 0x3a, 0x06, 0x9b, 0x07, 0xbe, 0x28, 0x6f, 0xee, 0x08, 0x64, 0x43,
+ 0xd0, 0x1f, 0xd3, 0x00, 0x02, 0x5a, 0x62, 0xb7, 0x06, 0x34, 0x95, 0x6e,
+ 0x8c, 0x37, 0xa7, 0xbd, 0x18, 0x09, 0xdb, 0xa4, 0x9e, 0x11, 0x44, 0x21,
+ 0x75, 0x91, 0xf2, 0x8c, 0x9d, 0xa9, 0xc3, 0xfd, 0x21, 0x41, 0xbd, 0xdc,
+ 0xe4, 0x2a, 0xc8, 0xb4,
+};
+static const struct drbg_kat_pr_false kat2614_t = {
+ 3, kat2614_entropyin, kat2614_nonce, kat2614_persstr,
+ kat2614_entropyinreseed, kat2614_addinreseed, kat2614_addin0,
+ kat2614_addin1, kat2614_retbits
+};
+static const struct drbg_kat kat2614 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2614_t
+};
+
+static const unsigned char kat2615_entropyin[] = {
+ 0x89, 0x9a, 0xca, 0x60, 0xa3, 0x07, 0x62, 0x11, 0xe2, 0xe2, 0x98, 0x7b,
+ 0x55, 0xb9, 0x0a, 0xa0, 0x01, 0xfb, 0xae, 0x82, 0x48, 0x7a, 0xa1, 0x1f,
+ 0x3c, 0xbc, 0xad, 0xdd, 0x49, 0xbb, 0xd1, 0x32, 0xc7, 0x46, 0xdd, 0xde,
+ 0x61, 0xd4, 0x32, 0x1d,
+};
+static const unsigned char kat2615_nonce[] = {0};
+static const unsigned char kat2615_persstr[] = {
+ 0xb1, 0x79, 0x7f, 0xf6, 0x84, 0xcc, 0x5e, 0x4c, 0x7e, 0xb4, 0xa7, 0x79,
+ 0xc8, 0x59, 0xe3, 0xf1, 0xde, 0x79, 0xf8, 0xa5, 0x67, 0xef, 0xe1, 0xe8,
+ 0x68, 0x94, 0x5c, 0x67, 0xdc, 0x6f, 0xdb, 0x91, 0xfc, 0xfb, 0x98, 0xe3,
+ 0x40, 0xe6, 0x98, 0x57,
+};
+static const unsigned char kat2615_entropyinreseed[] = {
+ 0xaf, 0x9d, 0x3c, 0x7d, 0x7a, 0x4d, 0x23, 0xba, 0xe1, 0xe2, 0xea, 0x1d,
+ 0x38, 0x28, 0x4d, 0x1b, 0xa9, 0xc8, 0x7f, 0xb9, 0x1f, 0x16, 0xf2, 0x24,
+ 0x99, 0xdd, 0x61, 0x31, 0x63, 0x6c, 0xcb, 0x84, 0xe8, 0x5b, 0x20, 0x26,
+ 0x95, 0x5c, 0xba, 0x4a,
+};
+static const unsigned char kat2615_addinreseed[] = {0};
+static const unsigned char kat2615_addin0[] = {0};
+static const unsigned char kat2615_addin1[] = {0};
+static const unsigned char kat2615_retbits[] = {
+ 0x32, 0x0d, 0x59, 0xb9, 0x33, 0x62, 0x81, 0xa3, 0xec, 0x59, 0x25, 0x3f,
+ 0x36, 0xde, 0xc4, 0x8c, 0x1c, 0x68, 0x68, 0x95, 0xe8, 0xba, 0xd8, 0xf7,
+ 0x01, 0xd7, 0x67, 0x21, 0x85, 0x27, 0x48, 0xcf, 0x70, 0xb3, 0x38, 0x56,
+ 0x3c, 0x7f, 0x4f, 0xb8, 0x19, 0x98, 0x96, 0xaa, 0x2d, 0x37, 0xcb, 0x2a,
+ 0xf3, 0xe4, 0x14, 0x02, 0x90, 0xe4, 0x75, 0x28, 0x52, 0xc6, 0x42, 0xe0,
+ 0x7d, 0x5a, 0x60, 0x96,
+};
+static const struct drbg_kat_pr_false kat2615_t = {
+ 4, kat2615_entropyin, kat2615_nonce, kat2615_persstr,
+ kat2615_entropyinreseed, kat2615_addinreseed, kat2615_addin0,
+ kat2615_addin1, kat2615_retbits
+};
+static const struct drbg_kat kat2615 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2615_t
+};
+
+static const unsigned char kat2616_entropyin[] = {
+ 0x35, 0x52, 0xd6, 0xad, 0x42, 0x44, 0x0b, 0x56, 0x46, 0x27, 0xfb, 0x40,
+ 0xf8, 0xe5, 0xba, 0x60, 0xfb, 0x95, 0x5d, 0x33, 0x40, 0xc4, 0x23, 0x09,
+ 0xd4, 0xb2, 0xf5, 0x2e, 0xe9, 0xc5, 0x16, 0xf2, 0x6d, 0x94, 0x6a, 0x35,
+ 0x33, 0x52, 0xba, 0x82,
+};
+static const unsigned char kat2616_nonce[] = {0};
+static const unsigned char kat2616_persstr[] = {
+ 0xeb, 0x5c, 0x00, 0xd6, 0xce, 0x44, 0xff, 0x83, 0x75, 0x9f, 0x5c, 0x65,
+ 0x7c, 0x55, 0x81, 0x0a, 0xc1, 0x3c, 0x8d, 0xf1, 0x75, 0x60, 0x33, 0xc0,
+ 0x20, 0x9f, 0xb6, 0xbe, 0xaa, 0x7e, 0x1c, 0xb0, 0x86, 0x23, 0x1d, 0xbd,
+ 0x75, 0xc0, 0xde, 0x3d,
+};
+static const unsigned char kat2616_entropyinreseed[] = {
+ 0x30, 0x0d, 0x3e, 0xf9, 0x95, 0x24, 0x61, 0x72, 0x3e, 0xc0, 0x9e, 0xa5,
+ 0x0e, 0x41, 0x7c, 0x13, 0x3f, 0x6d, 0x00, 0x32, 0x94, 0x19, 0x9a, 0x69,
+ 0x92, 0xd5, 0x0d, 0x55, 0xd3, 0xca, 0x27, 0x3e, 0x7b, 0x1d, 0x05, 0x4f,
+ 0x18, 0xc5, 0x35, 0x7b,
+};
+static const unsigned char kat2616_addinreseed[] = {0};
+static const unsigned char kat2616_addin0[] = {0};
+static const unsigned char kat2616_addin1[] = {0};
+static const unsigned char kat2616_retbits[] = {
+ 0xba, 0x59, 0xeb, 0x9f, 0x44, 0x4d, 0xef, 0x7b, 0x22, 0x8f, 0xcf, 0x04,
+ 0x86, 0xba, 0x25, 0xa6, 0xb2, 0x6d, 0xc6, 0x34, 0x02, 0xc6, 0xae, 0x7c,
+ 0xfc, 0x80, 0xf4, 0x61, 0x4d, 0x33, 0x1e, 0xf4, 0x78, 0x21, 0x94, 0xa7,
+ 0xd6, 0xc5, 0x81, 0x88, 0x69, 0xcd, 0x5b, 0x63, 0xbc, 0x27, 0x77, 0xbe,
+ 0x77, 0xe7, 0xde, 0x8e, 0xf3, 0x79, 0x5e, 0xa8, 0x6f, 0xb3, 0x63, 0xd8,
+ 0x09, 0x94, 0xb0, 0x04,
+};
+static const struct drbg_kat_pr_false kat2616_t = {
+ 5, kat2616_entropyin, kat2616_nonce, kat2616_persstr,
+ kat2616_entropyinreseed, kat2616_addinreseed, kat2616_addin0,
+ kat2616_addin1, kat2616_retbits
+};
+static const struct drbg_kat kat2616 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2616_t
+};
+
+static const unsigned char kat2617_entropyin[] = {
+ 0xc3, 0xd2, 0x9d, 0xfa, 0x16, 0xf9, 0xa0, 0x60, 0x91, 0x02, 0xf0, 0xbc,
+ 0xcf, 0x17, 0xe6, 0x2d, 0x02, 0xc2, 0x62, 0x6f, 0x7b, 0x31, 0x53, 0x86,
+ 0x97, 0x35, 0x0c, 0xe3, 0x16, 0x03, 0x92, 0xf7, 0x7c, 0x0d, 0x30, 0x1e,
+ 0x89, 0xcc, 0x22, 0x81,
+};
+static const unsigned char kat2617_nonce[] = {0};
+static const unsigned char kat2617_persstr[] = {
+ 0xb2, 0x41, 0xd4, 0x9b, 0xca, 0xaa, 0xd0, 0xc4, 0x28, 0xe0, 0x6d, 0x3a,
+ 0x28, 0x20, 0x1b, 0x7b, 0x7e, 0xc8, 0x06, 0xe6, 0x03, 0x0c, 0xe4, 0x3d,
+ 0x6d, 0x6b, 0x55, 0xb8, 0x2e, 0x83, 0x99, 0xb7, 0x5d, 0x8f, 0x9c, 0x0e,
+ 0x77, 0x08, 0x6d, 0x84,
+};
+static const unsigned char kat2617_entropyinreseed[] = {
+ 0xff, 0x76, 0x6d, 0x8b, 0xb9, 0xe8, 0x1f, 0xf8, 0xf6, 0x5c, 0xc6, 0x90,
+ 0xa0, 0x04, 0xda, 0xad, 0x66, 0xb1, 0x0c, 0x13, 0x77, 0x76, 0x8e, 0x7b,
+ 0x91, 0x5a, 0x59, 0x8f, 0x1c, 0x62, 0x0c, 0xa8, 0xa3, 0x9a, 0x5b, 0x89,
+ 0x14, 0x05, 0x1a, 0x80,
+};
+static const unsigned char kat2617_addinreseed[] = {0};
+static const unsigned char kat2617_addin0[] = {0};
+static const unsigned char kat2617_addin1[] = {0};
+static const unsigned char kat2617_retbits[] = {
+ 0x28, 0x4d, 0xde, 0x49, 0xfc, 0xef, 0xfe, 0x95, 0xcd, 0x55, 0x1a, 0x73,
+ 0x53, 0x35, 0xd1, 0x07, 0x67, 0x7f, 0xcf, 0xb3, 0x37, 0xe4, 0x9f, 0x58,
+ 0xc8, 0xeb, 0xd4, 0x54, 0x99, 0x7a, 0xdb, 0x80, 0x9f, 0x66, 0x62, 0x3f,
+ 0xc3, 0xaf, 0x1c, 0xd2, 0x16, 0xf2, 0x88, 0x48, 0xe2, 0xd2, 0xf8, 0xd6,
+ 0x14, 0xee, 0xf5, 0x5b, 0x3f, 0xa9, 0xb7, 0x21, 0xbf, 0xf6, 0x03, 0xf6,
+ 0x6d, 0x70, 0x8f, 0xab,
+};
+static const struct drbg_kat_pr_false kat2617_t = {
+ 6, kat2617_entropyin, kat2617_nonce, kat2617_persstr,
+ kat2617_entropyinreseed, kat2617_addinreseed, kat2617_addin0,
+ kat2617_addin1, kat2617_retbits
+};
+static const struct drbg_kat kat2617 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2617_t
+};
+
+static const unsigned char kat2618_entropyin[] = {
+ 0x4d, 0x78, 0x8b, 0xd9, 0x26, 0xd7, 0x83, 0xb1, 0x04, 0x9e, 0x24, 0x9f,
+ 0x6b, 0x59, 0x93, 0xd6, 0xe8, 0x45, 0x16, 0x32, 0xfa, 0xfe, 0xe2, 0x97,
+ 0x4e, 0xdc, 0x14, 0x3b, 0xe0, 0x9c, 0x3c, 0x51, 0xdd, 0xd6, 0xb6, 0x0a,
+ 0xb3, 0x08, 0x48, 0x6e,
+};
+static const unsigned char kat2618_nonce[] = {0};
+static const unsigned char kat2618_persstr[] = {
+ 0x4c, 0xaf, 0x47, 0xff, 0xe9, 0x22, 0x6c, 0x25, 0xa2, 0x08, 0x43, 0x1e,
+ 0x93, 0xa8, 0xb7, 0xa9, 0xa6, 0x4b, 0x3d, 0x8d, 0xee, 0x8d, 0x21, 0x0c,
+ 0x9a, 0xde, 0x32, 0x56, 0x47, 0x2f, 0xd0, 0xb4, 0xe2, 0xf2, 0x2c, 0xac,
+ 0x21, 0x45, 0x5f, 0xea,
+};
+static const unsigned char kat2618_entropyinreseed[] = {
+ 0xab, 0x80, 0x0d, 0xc2, 0xed, 0x83, 0xff, 0x77, 0x52, 0xf6, 0x5c, 0xec,
+ 0xce, 0xb3, 0xf8, 0xe5, 0xee, 0x69, 0xe3, 0x4b, 0xca, 0x6c, 0x52, 0xc0,
+ 0xbf, 0xe0, 0xb5, 0xbe, 0xa5, 0x9b, 0xcb, 0xee, 0x38, 0x0c, 0xab, 0x83,
+ 0x10, 0x36, 0x00, 0x04,
+};
+static const unsigned char kat2618_addinreseed[] = {0};
+static const unsigned char kat2618_addin0[] = {0};
+static const unsigned char kat2618_addin1[] = {0};
+static const unsigned char kat2618_retbits[] = {
+ 0xab, 0xa5, 0xd0, 0xbc, 0x19, 0xa2, 0x8a, 0xbb, 0xf4, 0x67, 0x4f, 0x3d,
+ 0xff, 0x8f, 0xc6, 0x38, 0xa4, 0x79, 0x91, 0x8a, 0xfb, 0xa6, 0xa1, 0x9c,
+ 0xa1, 0x7b, 0xfe, 0x57, 0xf2, 0x22, 0xe1, 0xb9, 0x0b, 0xfa, 0xf2, 0x77,
+ 0x8e, 0x33, 0xa4, 0xad, 0xe1, 0x47, 0x38, 0x9e, 0xf5, 0xad, 0xa4, 0x8d,
+ 0x48, 0x32, 0x36, 0xa1, 0x2b, 0x40, 0x36, 0xc7, 0xf7, 0x7f, 0xbc, 0xae,
+ 0xa0, 0xf9, 0x1c, 0xd8,
+};
+static const struct drbg_kat_pr_false kat2618_t = {
+ 7, kat2618_entropyin, kat2618_nonce, kat2618_persstr,
+ kat2618_entropyinreseed, kat2618_addinreseed, kat2618_addin0,
+ kat2618_addin1, kat2618_retbits
+};
+static const struct drbg_kat kat2618 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2618_t
+};
+
+static const unsigned char kat2619_entropyin[] = {
+ 0x65, 0xbb, 0xf5, 0x44, 0x09, 0x53, 0xce, 0x0a, 0x76, 0xb8, 0xdd, 0x2e,
+ 0x8c, 0xd4, 0x2d, 0x6d, 0x89, 0x71, 0x3d, 0x70, 0xaa, 0xa8, 0x06, 0xb6,
+ 0x16, 0x2e, 0x52, 0x4b, 0xfc, 0xbc, 0x5d, 0xfe, 0x36, 0x12, 0xfc, 0x75,
+ 0xdb, 0x35, 0x9e, 0x30,
+};
+static const unsigned char kat2619_nonce[] = {0};
+static const unsigned char kat2619_persstr[] = {
+ 0x0d, 0xd3, 0x45, 0x1d, 0xbe, 0xa7, 0x4e, 0x0c, 0xbe, 0xbd, 0x2a, 0xac,
+ 0x22, 0xf5, 0x93, 0xa1, 0x62, 0x7e, 0x70, 0xd9, 0xd1, 0xda, 0x58, 0xc7,
+ 0x3d, 0x24, 0x28, 0x59, 0xa2, 0x40, 0xe2, 0x78, 0x20, 0x92, 0x3f, 0x33,
+ 0x27, 0x09, 0xf2, 0x74,
+};
+static const unsigned char kat2619_entropyinreseed[] = {
+ 0xbc, 0x1d, 0x06, 0xc0, 0xb2, 0xa5, 0x36, 0x76, 0x96, 0x41, 0x6b, 0x45,
+ 0x6a, 0x64, 0xaf, 0x7b, 0xbf, 0xdc, 0x22, 0x32, 0x09, 0x00, 0x33, 0x81,
+ 0x65, 0x1c, 0x41, 0x98, 0xf8, 0x1f, 0xe1, 0x20, 0xe5, 0x70, 0x39, 0xbb,
+ 0x53, 0x86, 0x9a, 0x79,
+};
+static const unsigned char kat2619_addinreseed[] = {0};
+static const unsigned char kat2619_addin0[] = {0};
+static const unsigned char kat2619_addin1[] = {0};
+static const unsigned char kat2619_retbits[] = {
+ 0x3a, 0x0d, 0x62, 0x0e, 0x3e, 0xc9, 0xef, 0x17, 0x9e, 0x87, 0x80, 0xae,
+ 0x42, 0x9c, 0xb2, 0x18, 0xab, 0xe7, 0x92, 0x3b, 0xf8, 0x08, 0xda, 0x98,
+ 0xe1, 0x72, 0xfe, 0xf7, 0x2f, 0x79, 0xf7, 0xcb, 0x0e, 0xc4, 0x7a, 0x61,
+ 0x62, 0x7a, 0x5b, 0x7d, 0x60, 0xa1, 0x29, 0xc8, 0x44, 0x92, 0xbe, 0xf4,
+ 0x33, 0xf1, 0xf4, 0x4c, 0x4e, 0xa3, 0xef, 0x4c, 0x53, 0xe0, 0x99, 0xed,
+ 0xa5, 0xb0, 0x66, 0x28,
+};
+static const struct drbg_kat_pr_false kat2619_t = {
+ 8, kat2619_entropyin, kat2619_nonce, kat2619_persstr,
+ kat2619_entropyinreseed, kat2619_addinreseed, kat2619_addin0,
+ kat2619_addin1, kat2619_retbits
+};
+static const struct drbg_kat kat2619 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2619_t
+};
+
+static const unsigned char kat2620_entropyin[] = {
+ 0x53, 0x42, 0x6e, 0xd4, 0x6b, 0x9b, 0x56, 0x8c, 0x69, 0x2f, 0x2c, 0xb3,
+ 0xff, 0xdf, 0x49, 0x19, 0xc8, 0x0e, 0x41, 0xbd, 0x15, 0xcb, 0x54, 0xa0,
+ 0x1f, 0x64, 0x0b, 0x0f, 0x0d, 0xa6, 0x4e, 0xea, 0x22, 0x03, 0x11, 0x2b,
+ 0xe9, 0xfe, 0x4d, 0xd0,
+};
+static const unsigned char kat2620_nonce[] = {0};
+static const unsigned char kat2620_persstr[] = {
+ 0x86, 0xa2, 0x43, 0xea, 0xbc, 0x00, 0x39, 0xf6, 0xc4, 0x7d, 0x85, 0xed,
+ 0x07, 0xc6, 0x4b, 0xae, 0x29, 0xf9, 0x82, 0x1b, 0x86, 0x65, 0x4a, 0x5e,
+ 0x1d, 0xfe, 0x7b, 0xff, 0x2f, 0x92, 0xeb, 0x4a, 0x8f, 0x99, 0x45, 0xbf,
+ 0x64, 0xbd, 0xba, 0x29,
+};
+static const unsigned char kat2620_entropyinreseed[] = {
+ 0x5c, 0x8b, 0xd6, 0x15, 0xdc, 0xa2, 0xe8, 0x24, 0x9c, 0x82, 0x71, 0xcc,
+ 0x02, 0x4f, 0x91, 0xb0, 0x69, 0x41, 0xe3, 0xcc, 0x89, 0x71, 0x5e, 0x7d,
+ 0xa3, 0xb9, 0x3f, 0x70, 0xbf, 0xb8, 0xac, 0xbf, 0x6c, 0xca, 0x92, 0x43,
+ 0x42, 0xc9, 0x02, 0xe3,
+};
+static const unsigned char kat2620_addinreseed[] = {0};
+static const unsigned char kat2620_addin0[] = {0};
+static const unsigned char kat2620_addin1[] = {0};
+static const unsigned char kat2620_retbits[] = {
+ 0xf8, 0xef, 0x77, 0x4f, 0xbe, 0xc5, 0x05, 0x1d, 0x3f, 0x6b, 0xf9, 0xcb,
+ 0xa3, 0xdf, 0x3c, 0xb5, 0x45, 0x74, 0x2a, 0xbe, 0xc4, 0xa4, 0xce, 0xeb,
+ 0xcd, 0x94, 0x60, 0xd6, 0x4b, 0x6b, 0xfc, 0x19, 0xa8, 0x4a, 0x07, 0x0a,
+ 0x6b, 0x8e, 0x7b, 0x56, 0x3e, 0x88, 0x2b, 0x1d, 0xa0, 0x1a, 0xe5, 0x0b,
+ 0xda, 0xa0, 0x13, 0xdc, 0xd6, 0xbb, 0x2a, 0x25, 0xa3, 0x83, 0xac, 0xb3,
+ 0xeb, 0x23, 0xbd, 0xea,
+};
+static const struct drbg_kat_pr_false kat2620_t = {
+ 9, kat2620_entropyin, kat2620_nonce, kat2620_persstr,
+ kat2620_entropyinreseed, kat2620_addinreseed, kat2620_addin0,
+ kat2620_addin1, kat2620_retbits
+};
+static const struct drbg_kat kat2620 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2620_t
+};
+
+static const unsigned char kat2621_entropyin[] = {
+ 0x2e, 0x04, 0x57, 0x30, 0xc9, 0x18, 0x78, 0x2f, 0xb7, 0x48, 0xdc, 0x80,
+ 0xba, 0xa7, 0x73, 0x40, 0x7c, 0xab, 0xec, 0x74, 0xd7, 0x8c, 0x30, 0xb3,
+ 0x02, 0x6f, 0x46, 0x82, 0xd6, 0xa9, 0xd1, 0x27, 0x16, 0x8e, 0x77, 0x91,
+ 0x42, 0xf9, 0xc6, 0xd9,
+};
+static const unsigned char kat2621_nonce[] = {0};
+static const unsigned char kat2621_persstr[] = {
+ 0xf3, 0x07, 0x14, 0x75, 0x9a, 0x27, 0x4b, 0xd7, 0x51, 0x4c, 0xb1, 0x91,
+ 0x42, 0xfa, 0x42, 0x07, 0x6e, 0x25, 0x19, 0x7f, 0x68, 0x45, 0xb0, 0xb9,
+ 0xa9, 0x96, 0x15, 0x0d, 0xff, 0x24, 0x9e, 0x79, 0x0c, 0xa2, 0x7a, 0x9e,
+ 0x8c, 0x46, 0xf4, 0x0e,
+};
+static const unsigned char kat2621_entropyinreseed[] = {
+ 0xa3, 0x61, 0xa7, 0x34, 0x46, 0xe8, 0xf9, 0x53, 0x91, 0x0e, 0xb6, 0x81,
+ 0x0a, 0x13, 0x0d, 0x9f, 0x9b, 0x2b, 0xf4, 0x63, 0x1c, 0x53, 0x9c, 0x5c,
+ 0x0c, 0xdb, 0xf1, 0xf2, 0x47, 0xbb, 0x85, 0xda, 0x23, 0x09, 0x9e, 0x04,
+ 0x4d, 0x11, 0x91, 0x36,
+};
+static const unsigned char kat2621_addinreseed[] = {0};
+static const unsigned char kat2621_addin0[] = {0};
+static const unsigned char kat2621_addin1[] = {0};
+static const unsigned char kat2621_retbits[] = {
+ 0x6b, 0x94, 0xd7, 0xe3, 0xb4, 0x29, 0x99, 0xa2, 0x5b, 0xe4, 0xe4, 0x9e,
+ 0x1e, 0x6b, 0xc3, 0xaf, 0x0d, 0xea, 0xdb, 0x9d, 0xbd, 0x05, 0xd0, 0xcb,
+ 0x3b, 0xae, 0x65, 0x28, 0xf9, 0x9d, 0x79, 0x56, 0xd0, 0x01, 0x8f, 0x98,
+ 0xf4, 0x42, 0xb9, 0xe1, 0xcd, 0x5c, 0xcc, 0xd7, 0x80, 0x54, 0x15, 0x1e,
+ 0x58, 0xef, 0xe6, 0xe4, 0xc9, 0x7b, 0xe9, 0x47, 0xbe, 0x08, 0x11, 0xcf,
+ 0xd9, 0xde, 0x08, 0x94,
+};
+static const struct drbg_kat_pr_false kat2621_t = {
+ 10, kat2621_entropyin, kat2621_nonce, kat2621_persstr,
+ kat2621_entropyinreseed, kat2621_addinreseed, kat2621_addin0,
+ kat2621_addin1, kat2621_retbits
+};
+static const struct drbg_kat kat2621 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2621_t
+};
+
+static const unsigned char kat2622_entropyin[] = {
+ 0x63, 0x32, 0x56, 0x51, 0x04, 0x4c, 0xb9, 0xb4, 0x28, 0x83, 0x6e, 0x03,
+ 0x4f, 0x3e, 0x6a, 0x27, 0x14, 0x4e, 0x35, 0xc1, 0x84, 0x6a, 0xfb, 0xbd,
+ 0x49, 0xbd, 0xa1, 0xfb, 0x42, 0xf3, 0xc4, 0xe5, 0x53, 0x37, 0x28, 0x54,
+ 0x98, 0xb4, 0x47, 0x80,
+};
+static const unsigned char kat2622_nonce[] = {0};
+static const unsigned char kat2622_persstr[] = {
+ 0xed, 0x9d, 0xaf, 0x17, 0xf4, 0x85, 0xf6, 0xd5, 0x6a, 0xab, 0x27, 0xe9,
+ 0x9a, 0xf0, 0xf6, 0xba, 0xc4, 0x5a, 0xc4, 0xa4, 0x23, 0x4a, 0xd7, 0x08,
+ 0xd3, 0xd3, 0xe3, 0xdb, 0x48, 0x90, 0xf6, 0xac, 0xec, 0x7f, 0x3f, 0xc1,
+ 0x5e, 0x06, 0xb5, 0x83,
+};
+static const unsigned char kat2622_entropyinreseed[] = {
+ 0x87, 0xb8, 0x0a, 0x16, 0xec, 0x61, 0x93, 0x4f, 0x60, 0xa5, 0xc7, 0xa9,
+ 0x37, 0xf2, 0xf7, 0x63, 0x6f, 0xde, 0x1e, 0x06, 0xbf, 0x1b, 0x89, 0xe2,
+ 0x39, 0x76, 0xa6, 0x7d, 0xae, 0x4d, 0x3e, 0x31, 0xa2, 0xda, 0x6d, 0xb4,
+ 0x4d, 0x50, 0x20, 0x66,
+};
+static const unsigned char kat2622_addinreseed[] = {0};
+static const unsigned char kat2622_addin0[] = {0};
+static const unsigned char kat2622_addin1[] = {0};
+static const unsigned char kat2622_retbits[] = {
+ 0x73, 0xd2, 0xf3, 0x53, 0x75, 0xf1, 0x72, 0xd8, 0xf9, 0x87, 0xb8, 0xa2,
+ 0x6e, 0xde, 0x87, 0x00, 0x6f, 0xd5, 0x18, 0x72, 0xf6, 0xb5, 0xd1, 0xe4,
+ 0xae, 0x1e, 0x9b, 0xf2, 0xee, 0xdf, 0x75, 0x6d, 0x59, 0x7e, 0xfc, 0x1f,
+ 0x93, 0x2f, 0x8c, 0xdc, 0x4c, 0x1a, 0x5d, 0xf6, 0xc6, 0x7e, 0x66, 0xaf,
+ 0x1b, 0x72, 0x5c, 0x0b, 0x63, 0x8d, 0x91, 0xe7, 0x17, 0x29, 0xb1, 0xca,
+ 0xac, 0x47, 0x3b, 0x43,
+};
+static const struct drbg_kat_pr_false kat2622_t = {
+ 11, kat2622_entropyin, kat2622_nonce, kat2622_persstr,
+ kat2622_entropyinreseed, kat2622_addinreseed, kat2622_addin0,
+ kat2622_addin1, kat2622_retbits
+};
+static const struct drbg_kat kat2622 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2622_t
+};
+
+static const unsigned char kat2623_entropyin[] = {
+ 0x7d, 0x39, 0x0f, 0xbf, 0xa7, 0xd5, 0x25, 0xc8, 0x4a, 0xb7, 0x41, 0xc3,
+ 0x9c, 0x31, 0xbf, 0xd6, 0xd1, 0x05, 0x90, 0x95, 0x1f, 0xbb, 0x8b, 0xba,
+ 0xb8, 0x5e, 0x93, 0x9b, 0x3d, 0x65, 0x55, 0x27, 0x76, 0x5b, 0x76, 0x6b,
+ 0x0f, 0x19, 0x3a, 0x7f,
+};
+static const unsigned char kat2623_nonce[] = {0};
+static const unsigned char kat2623_persstr[] = {
+ 0xb0, 0x72, 0x1b, 0x93, 0x5d, 0x8c, 0xc6, 0x0e, 0xb1, 0xdf, 0x04, 0x1c,
+ 0x8a, 0x08, 0x49, 0xb0, 0xe1, 0xf2, 0xf1, 0x18, 0x0a, 0xee, 0xbc, 0x7b,
+ 0x03, 0x5c, 0x18, 0x0e, 0x9e, 0x02, 0xc4, 0x44, 0x1b, 0x7e, 0xaa, 0x0d,
+ 0xb9, 0x00, 0x08, 0x3e,
+};
+static const unsigned char kat2623_entropyinreseed[] = {
+ 0x0b, 0x29, 0x49, 0xd4, 0x08, 0x5f, 0x74, 0x80, 0x02, 0xa5, 0x1f, 0x2f,
+ 0xed, 0x76, 0x7f, 0x76, 0xfd, 0x20, 0xf2, 0xae, 0x11, 0x99, 0xfc, 0xe6,
+ 0x2b, 0x0f, 0xce, 0x5a, 0x88, 0xbd, 0x9b, 0x7e, 0xc4, 0xf1, 0xd5, 0x53,
+ 0xd0, 0x9a, 0x48, 0x58,
+};
+static const unsigned char kat2623_addinreseed[] = {0};
+static const unsigned char kat2623_addin0[] = {0};
+static const unsigned char kat2623_addin1[] = {0};
+static const unsigned char kat2623_retbits[] = {
+ 0xf4, 0xb5, 0xb7, 0x6b, 0xbb, 0xa4, 0x96, 0x24, 0x6a, 0x6a, 0xb0, 0xa0,
+ 0xd6, 0x7b, 0x6f, 0x63, 0xc4, 0x75, 0xd7, 0x2c, 0xf6, 0x02, 0x87, 0x61,
+ 0xf2, 0x56, 0xc2, 0xfb, 0xac, 0x40, 0x5f, 0xee, 0x4a, 0xcb, 0x22, 0x6b,
+ 0x6d, 0x6d, 0x6d, 0x81, 0x65, 0x00, 0xed, 0x37, 0x3e, 0xa3, 0x55, 0x60,
+ 0xe7, 0x32, 0x42, 0x21, 0x73, 0x3c, 0x4a, 0x05, 0xb2, 0x87, 0x1f, 0x10,
+ 0xfc, 0xf5, 0x04, 0xef,
+};
+static const struct drbg_kat_pr_false kat2623_t = {
+ 12, kat2623_entropyin, kat2623_nonce, kat2623_persstr,
+ kat2623_entropyinreseed, kat2623_addinreseed, kat2623_addin0,
+ kat2623_addin1, kat2623_retbits
+};
+static const struct drbg_kat kat2623 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2623_t
+};
+
+static const unsigned char kat2624_entropyin[] = {
+ 0xea, 0x33, 0x1f, 0xa8, 0x99, 0x0c, 0xdc, 0xdb, 0x98, 0xab, 0x3e, 0x5b,
+ 0xde, 0xdf, 0xe6, 0x9b, 0x97, 0x76, 0x78, 0x4d, 0xef, 0x61, 0x4b, 0x55,
+ 0x62, 0xf4, 0x3a, 0x4a, 0x5c, 0xfe, 0xdb, 0xd3, 0x15, 0x7e, 0xa0, 0xbd,
+ 0x11, 0x94, 0xa9, 0x9e,
+};
+static const unsigned char kat2624_nonce[] = {0};
+static const unsigned char kat2624_persstr[] = {
+ 0xc0, 0x16, 0xb0, 0xd6, 0x5d, 0x68, 0xcd, 0x0a, 0x81, 0xee, 0xe6, 0x56,
+ 0x2e, 0x20, 0xb9, 0xf5, 0x9e, 0xf6, 0x84, 0x27, 0x67, 0x9b, 0x72, 0xae,
+ 0x46, 0x1d, 0x29, 0x6f, 0xcd, 0xac, 0x55, 0x10, 0x47, 0x1d, 0xfb, 0xaf,
+ 0x0d, 0x43, 0xe3, 0xc7,
+};
+static const unsigned char kat2624_entropyinreseed[] = {
+ 0x8f, 0xfe, 0x2e, 0x9f, 0x2b, 0x23, 0xa0, 0x97, 0x49, 0xfc, 0x29, 0x07,
+ 0x62, 0x63, 0x75, 0x65, 0x9a, 0xd0, 0x04, 0x80, 0xa0, 0x02, 0x7f, 0x7d,
+ 0x6b, 0xaf, 0x5a, 0x75, 0x0d, 0xeb, 0x8a, 0xed, 0x3d, 0x19, 0x28, 0xf6,
+ 0xa5, 0x33, 0x41, 0xd8,
+};
+static const unsigned char kat2624_addinreseed[] = {0};
+static const unsigned char kat2624_addin0[] = {0};
+static const unsigned char kat2624_addin1[] = {0};
+static const unsigned char kat2624_retbits[] = {
+ 0x38, 0xed, 0xd9, 0xf3, 0xa4, 0x21, 0x92, 0x43, 0x2a, 0xc7, 0x04, 0xf4,
+ 0x84, 0xf3, 0x32, 0x71, 0x0a, 0x48, 0xac, 0x5c, 0x65, 0xa2, 0xe9, 0x9d,
+ 0xf2, 0x80, 0x3f, 0xbd, 0x81, 0xc9, 0xa5, 0x78, 0xbd, 0xb7, 0x9f, 0xf9,
+ 0x41, 0x19, 0x72, 0x9e, 0x6a, 0xe1, 0x0f, 0x3c, 0x36, 0xc8, 0x4f, 0x3c,
+ 0x76, 0xaa, 0xbe, 0x37, 0xf4, 0x75, 0x12, 0xdc, 0x8d, 0x03, 0xc0, 0x24,
+ 0xd7, 0x47, 0x7b, 0xf8,
+};
+static const struct drbg_kat_pr_false kat2624_t = {
+ 13, kat2624_entropyin, kat2624_nonce, kat2624_persstr,
+ kat2624_entropyinreseed, kat2624_addinreseed, kat2624_addin0,
+ kat2624_addin1, kat2624_retbits
+};
+static const struct drbg_kat kat2624 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2624_t
+};
+
+static const unsigned char kat2625_entropyin[] = {
+ 0xd1, 0x49, 0x7e, 0x39, 0x6a, 0x2e, 0x1b, 0x48, 0x22, 0x46, 0xca, 0x8a,
+ 0xa7, 0x78, 0xcb, 0xc9, 0x8a, 0x20, 0x08, 0x62, 0x7f, 0xfd, 0x01, 0x4c,
+ 0x10, 0x77, 0x2d, 0xf3, 0x8f, 0x9a, 0xc3, 0x89, 0x08, 0x2e, 0x04, 0x27,
+ 0x77, 0x9e, 0x1f, 0x6b,
+};
+static const unsigned char kat2625_nonce[] = {0};
+static const unsigned char kat2625_persstr[] = {
+ 0xa4, 0x77, 0xa4, 0x2a, 0x22, 0x1c, 0xd2, 0xcb, 0xcf, 0x79, 0x0c, 0xa7,
+ 0x0f, 0xb6, 0xa5, 0xf1, 0x8a, 0x91, 0xc2, 0x97, 0x61, 0x75, 0x61, 0xac,
+ 0xd1, 0xbc, 0x50, 0x90, 0x57, 0x35, 0x40, 0xb3, 0xfa, 0x41, 0x0f, 0xf5,
+ 0xab, 0x41, 0xae, 0xc7,
+};
+static const unsigned char kat2625_entropyinreseed[] = {
+ 0x10, 0x8f, 0x6f, 0x37, 0x62, 0x1a, 0xce, 0x41, 0x8e, 0x21, 0x55, 0xf7,
+ 0x0d, 0xda, 0x4c, 0x2b, 0x5d, 0x6a, 0xaf, 0xa9, 0x26, 0x9f, 0x6a, 0xa9,
+ 0x8a, 0x54, 0x55, 0xe3, 0xa1, 0xd1, 0x88, 0xe6, 0x4e, 0xc0, 0x22, 0xc4,
+ 0x54, 0xc6, 0x86, 0x20,
+};
+static const unsigned char kat2625_addinreseed[] = {0};
+static const unsigned char kat2625_addin0[] = {0};
+static const unsigned char kat2625_addin1[] = {0};
+static const unsigned char kat2625_retbits[] = {
+ 0x05, 0xe4, 0x89, 0x64, 0x94, 0xb0, 0x28, 0x61, 0xa5, 0x13, 0x57, 0x46,
+ 0x3f, 0x70, 0x5e, 0x81, 0x2a, 0x14, 0xf5, 0x7e, 0xb8, 0x63, 0x0c, 0xf1,
+ 0xfb, 0x02, 0x5c, 0x42, 0xec, 0x9d, 0xd5, 0x4d, 0xe3, 0xf5, 0xfa, 0x1b,
+ 0x38, 0xd1, 0xf3, 0xd8, 0x90, 0xaa, 0xd7, 0x4d, 0x5a, 0xd1, 0x68, 0x3d,
+ 0x0b, 0x59, 0x81, 0xda, 0x4d, 0x3a, 0x93, 0x9d, 0x05, 0xfd, 0x54, 0x35,
+ 0xb1, 0xd5, 0x0f, 0x38,
+};
+static const struct drbg_kat_pr_false kat2625_t = {
+ 14, kat2625_entropyin, kat2625_nonce, kat2625_persstr,
+ kat2625_entropyinreseed, kat2625_addinreseed, kat2625_addin0,
+ kat2625_addin1, kat2625_retbits
+};
+static const struct drbg_kat kat2625 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat2625_t
+};
+
+static const unsigned char kat2626_entropyin[] = {
+ 0xde, 0xc0, 0x8a, 0x9e, 0xaf, 0xc4, 0xa8, 0x38, 0x11, 0x25, 0x54, 0x73,
+ 0x0e, 0x4f, 0xc4, 0xc6, 0x71, 0x98, 0x02, 0xaa, 0x3c, 0x42, 0xf9, 0x83,
+ 0x56, 0x2d, 0x07, 0x91, 0x5f, 0xad, 0x7e, 0x31, 0x91, 0xe6, 0x45, 0xab,
+ 0x5a, 0x61, 0x08, 0x45,
+};
+static const unsigned char kat2626_nonce[] = {0};
+static const unsigned char kat2626_persstr[] = {
+ 0x56, 0x95, 0x8b, 0xd4, 0x8e, 0xd6, 0xbb, 0x27, 0x08, 0xe5, 0x77, 0xfd,
+ 0xdd, 0x00, 0x9e, 0x83, 0x71, 0xad, 0x33, 0x4b, 0x67, 0x4f, 0x8b, 0x85,
+ 0x9e, 0x7a, 0x23, 0xbe, 0xa4, 0x6a, 0xea, 0x53, 0x90, 0xd9, 0x2a, 0xe0,
+ 0x80, 0x9a, 0x29, 0x44,
+};
+static const unsigned char kat2626_entropyinreseed[] = {
+ 0x96, 0x8d, 0x72, 0xe4, 0x2d, 0x8e, 0x95, 0xf1, 0x10, 0x65, 0x74, 0xc5,
+ 0xdd, 0x03, 0x52, 0x8d, 0x9e, 0x89, 0xb8, 0xee, 0x7d, 0x22, 0xbd, 0xa6,
+ 0x21, 0xd0, 0x6d, 0x05, 0xfb, 0x2d, 0x67, 0xd9, 0x94, 0x52, 0x34, 0x38,
+ 0x1f, 0xde, 0x49, 0xee,
+};
+static const unsigned char kat2626_addinreseed[] = {
+ 0xac, 0xa4, 0x7c, 0x2b, 0x4f, 0x33, 0xfd, 0xfc, 0x24, 0xcf, 0xc5, 0x4f,
+ 0xeb, 0x9c, 0xd2, 0xb4, 0x7e, 0x77, 0x6f, 0x59, 0xaa, 0x9f, 0xe1, 0xa0,
+ 0x24, 0x67, 0xa4, 0x58, 0xab, 0xd2, 0x1d, 0x34, 0x0b, 0x3c, 0xf4, 0xbd,
+ 0xf8, 0xb4, 0x6b, 0x66,
+};
+static const unsigned char kat2626_addin0[] = {
+ 0x98, 0x79, 0x1e, 0x95, 0x24, 0x9c, 0x6a, 0x06, 0xbe, 0x4e, 0xf0, 0xae,
+ 0xbf, 0xb8, 0xaf, 0x3f, 0x0f, 0xce, 0x39, 0xeb, 0x9d, 0x95, 0xc4, 0xec,
+ 0x53, 0x6c, 0xe7, 0x86, 0x7c, 0xa6, 0xfb, 0x26, 0xec, 0x28, 0x86, 0xa5,
+ 0x7a, 0xed, 0x80, 0x85,
+};
+static const unsigned char kat2626_addin1[] = {
+ 0xa7, 0xc2, 0x76, 0xe8, 0x4e, 0x52, 0x91, 0xe9, 0x60, 0x3d, 0x2c, 0x7e,
+ 0x55, 0x2a, 0x2c, 0xe2, 0x9a, 0x74, 0xb9, 0x05, 0x46, 0x05, 0x70, 0x4a,
+ 0xe5, 0x87, 0x3b, 0x0d, 0x09, 0x31, 0xe2, 0x76, 0x11, 0xe3, 0xe7, 0x92,
+ 0x62, 0xed, 0xcb, 0x89,
+};
+static const unsigned char kat2626_retbits[] = {
+ 0x34, 0xac, 0x66, 0xe2, 0x36, 0xda, 0x0f, 0xac, 0x76, 0x53, 0xf0, 0xe0,
+ 0x1d, 0x5e, 0xa5, 0x35, 0xb8, 0xb1, 0xf5, 0xf5, 0xb0, 0x92, 0xae, 0x27,
+ 0xfa, 0xa8, 0xa3, 0xb3, 0x33, 0xc8, 0xe5, 0x86, 0x6e, 0xc3, 0xb3, 0x1c,
+ 0xef, 0x92, 0x90, 0xab, 0x52, 0xcc, 0xfe, 0xe6, 0x30, 0x09, 0x4d, 0xaf,
+ 0x23, 0xf8, 0x24, 0x7d, 0x98, 0xba, 0x20, 0x21, 0x7d, 0x74, 0x70, 0xde,
+ 0x77, 0x5f, 0x95, 0x41,
+};
+static const struct drbg_kat_pr_false kat2626_t = {
+ 0, kat2626_entropyin, kat2626_nonce, kat2626_persstr,
+ kat2626_entropyinreseed, kat2626_addinreseed, kat2626_addin0,
+ kat2626_addin1, kat2626_retbits
+};
+static const struct drbg_kat kat2626 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2626_t
+};
+
+static const unsigned char kat2627_entropyin[] = {
+ 0xfd, 0x0b, 0xe4, 0xd7, 0xb3, 0xa7, 0x53, 0x1d, 0x01, 0xb7, 0x86, 0xf3,
+ 0x49, 0xef, 0x93, 0x87, 0xb9, 0x84, 0xf3, 0x8e, 0xb5, 0x32, 0x6a, 0x1e,
+ 0x09, 0xc3, 0x7e, 0x95, 0x5a, 0x3b, 0x88, 0x0f, 0xff, 0x1d, 0xe8, 0xc3,
+ 0xd1, 0x13, 0xb8, 0xc2,
+};
+static const unsigned char kat2627_nonce[] = {0};
+static const unsigned char kat2627_persstr[] = {
+ 0x1d, 0xde, 0xad, 0x5b, 0x3a, 0x39, 0xdf, 0x02, 0xc6, 0x0d, 0x1e, 0x9f,
+ 0x93, 0xa7, 0xe2, 0x4b, 0x75, 0x13, 0xec, 0x4e, 0x47, 0x0d, 0xe5, 0x68,
+ 0x80, 0xf6, 0xf7, 0xab, 0xbc, 0x96, 0xea, 0x7e, 0x99, 0x67, 0x96, 0x01,
+ 0x76, 0x23, 0x42, 0x37,
+};
+static const unsigned char kat2627_entropyinreseed[] = {
+ 0xac, 0x53, 0xb1, 0x9d, 0xff, 0xbf, 0xd0, 0xef, 0x02, 0x45, 0x5c, 0xd9,
+ 0xbb, 0x19, 0x8e, 0xad, 0x37, 0x8c, 0x02, 0x56, 0xe7, 0xcb, 0xe4, 0x07,
+ 0x82, 0xe0, 0x1a, 0xff, 0x52, 0x90, 0xf5, 0xd0, 0x40, 0xfe, 0xa2, 0x36,
+ 0x7c, 0x58, 0xfb, 0x34,
+};
+static const unsigned char kat2627_addinreseed[] = {
+ 0x89, 0x9f, 0xfc, 0x01, 0x0b, 0xbd, 0x6c, 0x1e, 0x0e, 0x07, 0x0b, 0x81,
+ 0xc9, 0xe9, 0x62, 0x60, 0x28, 0x20, 0x2a, 0xb2, 0xb9, 0x83, 0x67, 0x0f,
+ 0x31, 0xff, 0x0f, 0x79, 0x75, 0xc6, 0x3d, 0x11, 0x34, 0xf6, 0x9a, 0x49,
+ 0x86, 0xea, 0xbc, 0x99,
+};
+static const unsigned char kat2627_addin0[] = {
+ 0x1a, 0x92, 0x00, 0x3e, 0x60, 0xf5, 0xd5, 0xf7, 0x22, 0x79, 0xf0, 0x23,
+ 0xe7, 0x2e, 0x5d, 0xc5, 0xf9, 0x5b, 0x2b, 0xc7, 0x54, 0xbf, 0x88, 0x4a,
+ 0xf8, 0xd0, 0x82, 0xd0, 0x1d, 0xc3, 0x97, 0xc4, 0xc5, 0xcd, 0x96, 0x4b,
+ 0x31, 0x76, 0xc5, 0x1a,
+};
+static const unsigned char kat2627_addin1[] = {
+ 0x9f, 0xf2, 0x67, 0xa1, 0xc9, 0x6c, 0xe4, 0x3a, 0x7c, 0x8a, 0xf9, 0xe9,
+ 0xdb, 0xd3, 0xb8, 0x76, 0x64, 0xbb, 0x57, 0xd2, 0x4e, 0x4d, 0x71, 0xff,
+ 0x4b, 0x43, 0x61, 0xda, 0x9c, 0x80, 0x84, 0x85, 0xe1, 0x78, 0x0f, 0xb2,
+ 0x1b, 0x42, 0x52, 0x04,
+};
+static const unsigned char kat2627_retbits[] = {
+ 0x50, 0x3e, 0x4d, 0x5e, 0xbf, 0xa7, 0x67, 0x1c, 0x3f, 0xf3, 0x70, 0x97,
+ 0x58, 0x88, 0xab, 0x38, 0xcb, 0xb5, 0x8a, 0xb2, 0xb7, 0x1f, 0x20, 0xb3,
+ 0xa6, 0xf2, 0x84, 0x83, 0x1a, 0x84, 0xe0, 0xe8, 0xdf, 0xc3, 0x9f, 0x8f,
+ 0xeb, 0x11, 0x4b, 0xfc, 0x83, 0xa5, 0xf0, 0x65, 0xc4, 0xbb, 0xe5, 0xaf,
+ 0x8b, 0x4a, 0x7c, 0x5b, 0x4c, 0x13, 0x50, 0xbe, 0x9c, 0x3c, 0xc9, 0xb3,
+ 0x4e, 0xca, 0x4a, 0x7e,
+};
+static const struct drbg_kat_pr_false kat2627_t = {
+ 1, kat2627_entropyin, kat2627_nonce, kat2627_persstr,
+ kat2627_entropyinreseed, kat2627_addinreseed, kat2627_addin0,
+ kat2627_addin1, kat2627_retbits
+};
+static const struct drbg_kat kat2627 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2627_t
+};
+
+static const unsigned char kat2628_entropyin[] = {
+ 0xae, 0xdd, 0xee, 0x12, 0xc0, 0x1a, 0x13, 0x43, 0x42, 0x42, 0xd7, 0x37,
+ 0x8c, 0x8b, 0x26, 0xe8, 0x3e, 0x67, 0xca, 0x4c, 0xa9, 0x24, 0xe2, 0xba,
+ 0x47, 0x26, 0x32, 0x94, 0x42, 0x7f, 0x16, 0x04, 0x80, 0x20, 0x4d, 0xa3,
+ 0x3a, 0xd8, 0x35, 0x4c,
+};
+static const unsigned char kat2628_nonce[] = {0};
+static const unsigned char kat2628_persstr[] = {
+ 0x39, 0x41, 0x12, 0x7a, 0x2d, 0x8b, 0x43, 0xe9, 0xc4, 0x29, 0x9b, 0xbb,
+ 0xdb, 0x90, 0x17, 0x2e, 0x93, 0x6e, 0x0e, 0x7a, 0x18, 0x5c, 0xca, 0xdf,
+ 0x1b, 0xc5, 0x0a, 0x34, 0xd2, 0xe2, 0xe0, 0x14, 0xcd, 0x05, 0x15, 0x2a,
+ 0xb2, 0xe7, 0x09, 0x54,
+};
+static const unsigned char kat2628_entropyinreseed[] = {
+ 0x5f, 0x1d, 0x6f, 0xf5, 0x92, 0x94, 0xda, 0x89, 0x4d, 0x8d, 0x21, 0x76,
+ 0xd4, 0x19, 0x8d, 0x6c, 0x25, 0xa7, 0x22, 0xfc, 0x57, 0x1a, 0x6f, 0x63,
+ 0x38, 0x65, 0x48, 0x98, 0xed, 0x41, 0x9a, 0xfe, 0xb9, 0x5d, 0x48, 0xff,
+ 0x82, 0x26, 0x40, 0x89,
+};
+static const unsigned char kat2628_addinreseed[] = {
+ 0x05, 0x8e, 0xff, 0xdc, 0xd3, 0xb8, 0xab, 0x7c, 0x75, 0xe1, 0x38, 0xa2,
+ 0xf2, 0x7d, 0x2b, 0x7a, 0x61, 0x65, 0x14, 0x4d, 0xa9, 0x65, 0xc4, 0xaa,
+ 0x80, 0x50, 0x4d, 0x48, 0xa2, 0xee, 0x83, 0x5b, 0xc5, 0x3f, 0x5a, 0xf3,
+ 0x72, 0x27, 0xd9, 0x5b,
+};
+static const unsigned char kat2628_addin0[] = {
+ 0x5b, 0x20, 0x86, 0xec, 0x74, 0xff, 0x24, 0x8d, 0xf7, 0xe1, 0x72, 0x6b,
+ 0x93, 0xcc, 0x91, 0x5a, 0xd1, 0x27, 0x6a, 0x13, 0x87, 0xef, 0xeb, 0x58,
+ 0x5f, 0xe6, 0x15, 0x7b, 0xc8, 0x20, 0xdd, 0x93, 0xf5, 0x07, 0x69, 0x4a,
+ 0xa2, 0xab, 0xfd, 0x53,
+};
+static const unsigned char kat2628_addin1[] = {
+ 0x1f, 0x2b, 0x47, 0x99, 0xf4, 0x93, 0x23, 0xae, 0xf8, 0x96, 0x49, 0xd6,
+ 0x2f, 0x22, 0xa3, 0x93, 0x74, 0x52, 0xee, 0xa1, 0x0c, 0x1d, 0x29, 0x65,
+ 0x49, 0xa2, 0x05, 0x62, 0xd5, 0x22, 0xf1, 0xab, 0x91, 0xcf, 0x8a, 0x41,
+ 0x81, 0xea, 0x00, 0x8e,
+};
+static const unsigned char kat2628_retbits[] = {
+ 0x11, 0xf2, 0xcf, 0xdb, 0x29, 0x54, 0x9a, 0x0f, 0xa2, 0x69, 0x54, 0xbf,
+ 0xf5, 0xc3, 0x6a, 0x4d, 0x50, 0xba, 0x39, 0xec, 0x1d, 0xcc, 0x85, 0x43,
+ 0xb0, 0x9c, 0x18, 0x0b, 0x16, 0x8c, 0x85, 0xa4, 0xb4, 0x17, 0x72, 0x5b,
+ 0x54, 0x13, 0x2c, 0xda, 0xda, 0xe8, 0x8d, 0x3c, 0xdf, 0xf8, 0x41, 0xda,
+ 0x81, 0x9b, 0x11, 0x7c, 0x03, 0x6b, 0xdb, 0xb7, 0xed, 0x59, 0x5f, 0xe7,
+ 0x9e, 0x48, 0xd9, 0xd2,
+};
+static const struct drbg_kat_pr_false kat2628_t = {
+ 2, kat2628_entropyin, kat2628_nonce, kat2628_persstr,
+ kat2628_entropyinreseed, kat2628_addinreseed, kat2628_addin0,
+ kat2628_addin1, kat2628_retbits
+};
+static const struct drbg_kat kat2628 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2628_t
+};
+
+static const unsigned char kat2629_entropyin[] = {
+ 0xd0, 0x69, 0xdf, 0x59, 0x75, 0xaa, 0x84, 0xa8, 0x6a, 0xbf, 0x8e, 0xf3,
+ 0x3e, 0xba, 0xc6, 0x12, 0x82, 0xc0, 0xb5, 0xd7, 0xf4, 0xa9, 0x4e, 0xb1,
+ 0x2e, 0x9e, 0x87, 0x15, 0x56, 0x16, 0x55, 0x54, 0xfc, 0x1b, 0x75, 0x2b,
+ 0x17, 0xd6, 0xef, 0x6e,
+};
+static const unsigned char kat2629_nonce[] = {0};
+static const unsigned char kat2629_persstr[] = {
+ 0x63, 0x21, 0x4e, 0xa6, 0x27, 0xd8, 0xf6, 0xcb, 0xb6, 0x85, 0x37, 0x00,
+ 0xb9, 0xad, 0x43, 0xde, 0x72, 0x48, 0xc1, 0x68, 0xe1, 0x5e, 0xd0, 0x84,
+ 0x76, 0x4f, 0x4d, 0x24, 0x4b, 0xf5, 0x1f, 0x08, 0x61, 0xe9, 0x43, 0x5a,
+ 0x17, 0x40, 0x6c, 0x96,
+};
+static const unsigned char kat2629_entropyinreseed[] = {
+ 0x09, 0xf9, 0x8d, 0x5f, 0xbf, 0xda, 0x0c, 0xeb, 0x76, 0xf7, 0x84, 0xa5,
+ 0x4c, 0x84, 0x99, 0xeb, 0x79, 0x3a, 0xba, 0x71, 0x80, 0x6b, 0x31, 0x21,
+ 0x6e, 0x77, 0xeb, 0x25, 0x20, 0xe7, 0x97, 0xc9, 0x31, 0xac, 0xf0, 0x59,
+ 0x18, 0x0e, 0x1e, 0xc8,
+};
+static const unsigned char kat2629_addinreseed[] = {
+ 0x0f, 0x99, 0x14, 0x99, 0x0f, 0xba, 0x6d, 0x69, 0x10, 0xca, 0x7c, 0xa9,
+ 0xd0, 0xe5, 0xc2, 0xca, 0x1e, 0x3c, 0x62, 0xf3, 0x9c, 0x5d, 0x71, 0xfe,
+ 0xd4, 0x6d, 0x69, 0x9f, 0x40, 0x8b, 0x1c, 0x2c, 0x1e, 0xfd, 0x45, 0x7d,
+ 0xc3, 0xe0, 0xd3, 0x8d,
+};
+static const unsigned char kat2629_addin0[] = {
+ 0x20, 0x48, 0xce, 0x70, 0xca, 0x50, 0x3c, 0x1c, 0x97, 0x75, 0x60, 0x4b,
+ 0x84, 0x5f, 0xf2, 0x2f, 0x91, 0xb9, 0xa8, 0x37, 0x6c, 0xd1, 0xc0, 0x14,
+ 0x68, 0xc6, 0xb1, 0x1e, 0x47, 0xfa, 0x62, 0x20, 0x1c, 0xab, 0x40, 0xa5,
+ 0x51, 0xf3, 0x9e, 0x0e,
+};
+static const unsigned char kat2629_addin1[] = {
+ 0x96, 0xca, 0xc7, 0x30, 0x37, 0x7d, 0xc4, 0x5f, 0x55, 0x16, 0xe8, 0x55,
+ 0x31, 0x02, 0x30, 0xee, 0xf1, 0xd5, 0xc1, 0x56, 0x92, 0xbb, 0x9f, 0xe5,
+ 0x56, 0xd4, 0xdb, 0x53, 0xcb, 0xce, 0xa8, 0x10, 0xeb, 0xe2, 0xec, 0xfd,
+ 0x7d, 0x64, 0x8b, 0x1c,
+};
+static const unsigned char kat2629_retbits[] = {
+ 0x71, 0x20, 0x53, 0xf9, 0x02, 0x71, 0x10, 0xa9, 0xb4, 0x8c, 0x68, 0x5a,
+ 0x60, 0x8c, 0x16, 0x91, 0xe1, 0x24, 0x65, 0x6d, 0xe8, 0xb9, 0xcf, 0xe9,
+ 0x45, 0x46, 0x87, 0xc3, 0x90, 0x43, 0x2d, 0x3c, 0x81, 0xcb, 0xba, 0xdd,
+ 0x9b, 0x66, 0xa5, 0xdc, 0xd2, 0x22, 0x22, 0x5c, 0x65, 0xc8, 0x19, 0x66,
+ 0x7d, 0xba, 0xf3, 0xdf, 0xfa, 0x9f, 0xca, 0x2a, 0x09, 0x8c, 0xa7, 0x6c,
+ 0xac, 0x82, 0x35, 0x4e,
+};
+static const struct drbg_kat_pr_false kat2629_t = {
+ 3, kat2629_entropyin, kat2629_nonce, kat2629_persstr,
+ kat2629_entropyinreseed, kat2629_addinreseed, kat2629_addin0,
+ kat2629_addin1, kat2629_retbits
+};
+static const struct drbg_kat kat2629 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2629_t
+};
+
+static const unsigned char kat2630_entropyin[] = {
+ 0x11, 0xc6, 0x50, 0x00, 0xd9, 0x6b, 0xb2, 0xe1, 0xdb, 0x99, 0xf0, 0x7b,
+ 0xdc, 0x7b, 0x62, 0x0e, 0x02, 0x98, 0xa0, 0x35, 0x83, 0x30, 0x7b, 0xd1,
+ 0x52, 0x91, 0x6d, 0xe1, 0x95, 0x7e, 0x43, 0xaf, 0x1b, 0xff, 0xde, 0xca,
+ 0x1c, 0x38, 0x36, 0x4a,
+};
+static const unsigned char kat2630_nonce[] = {0};
+static const unsigned char kat2630_persstr[] = {
+ 0xa9, 0x07, 0x30, 0x71, 0xbf, 0xc1, 0x8d, 0x38, 0x55, 0x0a, 0x16, 0x88,
+ 0x4b, 0x26, 0x7c, 0xc1, 0x4a, 0xb6, 0x2e, 0xb7, 0x06, 0x4e, 0x29, 0xc2,
+ 0xba, 0x9e, 0x44, 0x03, 0x98, 0xcf, 0x84, 0xaf, 0x30, 0xdb, 0x57, 0x78,
+ 0x3f, 0xca, 0x0e, 0x90,
+};
+static const unsigned char kat2630_entropyinreseed[] = {
+ 0x14, 0x47, 0x34, 0xce, 0x49, 0x7c, 0xf2, 0x78, 0xcf, 0x58, 0x0c, 0x72,
+ 0xb3, 0xa5, 0x8e, 0xd8, 0xdd, 0x47, 0xa3, 0x24, 0x3d, 0x4a, 0x1c, 0xd4,
+ 0x4b, 0xc1, 0x5c, 0x94, 0x4a, 0xf3, 0xb0, 0xd4, 0x11, 0x13, 0x65, 0xf0,
+ 0x8c, 0x48, 0xf3, 0xea,
+};
+static const unsigned char kat2630_addinreseed[] = {
+ 0x4a, 0xa6, 0x03, 0x76, 0xbc, 0x60, 0x69, 0x57, 0xdb, 0xbc, 0xba, 0x31,
+ 0x93, 0xd5, 0x0b, 0x8d, 0xd5, 0x71, 0x9c, 0x0f, 0x88, 0xa1, 0x8d, 0x5f,
+ 0xac, 0x29, 0x19, 0x60, 0x0f, 0xbb, 0xce, 0xc6, 0x48, 0xc8, 0x2c, 0xff,
+ 0x65, 0x40, 0xef, 0xfe,
+};
+static const unsigned char kat2630_addin0[] = {
+ 0xf9, 0x70, 0x02, 0xf0, 0x3a, 0x25, 0xeb, 0x4f, 0x3b, 0x8f, 0x82, 0x90,
+ 0x76, 0xe6, 0x65, 0xe2, 0x0e, 0xbb, 0x79, 0x04, 0x62, 0xa6, 0x5d, 0xa7,
+ 0xdc, 0xac, 0xb8, 0xa5, 0xe6, 0xe1, 0x4e, 0xa9, 0x8e, 0xb5, 0x6f, 0xf3,
+ 0xeb, 0x97, 0x48, 0x08,
+};
+static const unsigned char kat2630_addin1[] = {
+ 0xf2, 0x23, 0x8e, 0xcb, 0x9b, 0x3d, 0x0c, 0x32, 0x18, 0xd9, 0x2f, 0x9a,
+ 0x50, 0x20, 0x56, 0x86, 0xeb, 0xd1, 0x5d, 0x38, 0x28, 0xb3, 0xc9, 0xc6,
+ 0x38, 0x12, 0xe3, 0xc2, 0x78, 0xf7, 0x45, 0x06, 0x94, 0x3b, 0x05, 0xa5,
+ 0xcc, 0xed, 0x5b, 0x2b,
+};
+static const unsigned char kat2630_retbits[] = {
+ 0x45, 0xb9, 0x57, 0x05, 0x5b, 0x89, 0x7b, 0xc7, 0xf8, 0x30, 0x6b, 0x93,
+ 0x84, 0xb4, 0x7f, 0x23, 0xfa, 0xc5, 0x7d, 0xb9, 0x36, 0x43, 0x71, 0x6c,
+ 0x7f, 0x9d, 0x44, 0x70, 0x1e, 0x7d, 0xd5, 0x87, 0x71, 0x38, 0xc2, 0x05,
+ 0xed, 0x61, 0x99, 0x2d, 0x6e, 0x7b, 0xd6, 0xad, 0x60, 0x1b, 0xc7, 0x2b,
+ 0x7b, 0xaf, 0x65, 0xde, 0xef, 0x83, 0x9d, 0x28, 0xb4, 0x34, 0xe1, 0x8d,
+ 0x7c, 0xf8, 0xcb, 0xfd,
+};
+static const struct drbg_kat_pr_false kat2630_t = {
+ 4, kat2630_entropyin, kat2630_nonce, kat2630_persstr,
+ kat2630_entropyinreseed, kat2630_addinreseed, kat2630_addin0,
+ kat2630_addin1, kat2630_retbits
+};
+static const struct drbg_kat kat2630 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2630_t
+};
+
+static const unsigned char kat2631_entropyin[] = {
+ 0x55, 0x51, 0x56, 0x0c, 0xbc, 0xef, 0x99, 0x84, 0xd7, 0x0e, 0x62, 0x73,
+ 0x2b, 0xb5, 0xeb, 0xca, 0xc0, 0x53, 0x28, 0xda, 0x6c, 0x70, 0x18, 0x9a,
+ 0xc4, 0x49, 0xbc, 0xb8, 0x12, 0x99, 0x15, 0xbc, 0x15, 0xd5, 0x8c, 0x9c,
+ 0xf3, 0x26, 0x5c, 0x9b,
+};
+static const unsigned char kat2631_nonce[] = {0};
+static const unsigned char kat2631_persstr[] = {
+ 0xac, 0x69, 0xee, 0x98, 0xa3, 0xbc, 0xb0, 0x19, 0xc1, 0x86, 0xc1, 0x0d,
+ 0x8d, 0xd8, 0xb1, 0x1e, 0xc8, 0xb7, 0x90, 0x8a, 0x20, 0xe1, 0x5d, 0x77,
+ 0xdc, 0xa8, 0xea, 0x51, 0xe2, 0xcc, 0x27, 0xd7, 0x39, 0xfe, 0x8f, 0x42,
+ 0xec, 0x4b, 0x4c, 0x7f,
+};
+static const unsigned char kat2631_entropyinreseed[] = {
+ 0xf6, 0x80, 0xda, 0x37, 0xce, 0x8d, 0xba, 0xde, 0x3d, 0x41, 0x48, 0x9f,
+ 0x8e, 0xbe, 0x5a, 0xce, 0x49, 0xf7, 0x6d, 0x99, 0x5a, 0x2a, 0xbf, 0x4b,
+ 0x23, 0xb1, 0x64, 0xca, 0x35, 0x7a, 0x07, 0xd5, 0x5c, 0x77, 0x2a, 0x46,
+ 0x41, 0xa1, 0x03, 0x7b,
+};
+static const unsigned char kat2631_addinreseed[] = {
+ 0x0c, 0xc6, 0xab, 0x5b, 0x55, 0x79, 0xb6, 0xc3, 0x46, 0x53, 0xc4, 0xa3,
+ 0x2a, 0x6a, 0xdf, 0x43, 0x75, 0x72, 0x3e, 0xb2, 0xd9, 0xa8, 0x40, 0x78,
+ 0xb4, 0x83, 0xff, 0x5d, 0x68, 0xc5, 0xf3, 0x6f, 0xa8, 0xab, 0x1a, 0x04,
+ 0x68, 0x91, 0xaf, 0xf7,
+};
+static const unsigned char kat2631_addin0[] = {
+ 0x05, 0xcb, 0xe8, 0x10, 0x16, 0xed, 0x81, 0xdf, 0xc5, 0xf2, 0x56, 0x6f,
+ 0xb7, 0xcd, 0xad, 0x39, 0xf5, 0xf1, 0x33, 0x83, 0xfc, 0xf4, 0xa7, 0x6d,
+ 0x65, 0x2d, 0xff, 0x36, 0x24, 0x65, 0x5c, 0xaa, 0xa8, 0x4c, 0xaa, 0x5a,
+ 0xc8, 0x18, 0x0a, 0xa3,
+};
+static const unsigned char kat2631_addin1[] = {
+ 0xff, 0x51, 0xb1, 0x92, 0xf7, 0x3e, 0x0e, 0x5c, 0xe5, 0x8b, 0x79, 0xb0,
+ 0xe1, 0x1b, 0x6e, 0xa5, 0x2e, 0x4d, 0xfd, 0xcd, 0xc8, 0x14, 0x9d, 0xa5,
+ 0xee, 0xf1, 0x46, 0xe5, 0x7a, 0x15, 0xb0, 0x9b, 0xcd, 0x1f, 0x39, 0xd8,
+ 0xda, 0x07, 0x37, 0x8a,
+};
+static const unsigned char kat2631_retbits[] = {
+ 0x63, 0xe7, 0x3b, 0x6b, 0xc6, 0xab, 0xcc, 0x44, 0xf2, 0xd2, 0x81, 0xa2,
+ 0x89, 0xec, 0x1c, 0xe2, 0x2c, 0x49, 0xec, 0x39, 0x31, 0x13, 0xb6, 0x6a,
+ 0xb5, 0x9d, 0x21, 0xb2, 0xec, 0xe0, 0xfd, 0x89, 0x2f, 0x09, 0x1b, 0xd8,
+ 0xb1, 0x06, 0x3e, 0x78, 0xb5, 0x94, 0x59, 0x30, 0xe9, 0x1c, 0x74, 0xf4,
+ 0x8b, 0x5b, 0xec, 0x7e, 0xac, 0xa9, 0xcc, 0xac, 0xeb, 0xeb, 0xeb, 0x78,
+ 0x41, 0x10, 0x3c, 0x23,
+};
+static const struct drbg_kat_pr_false kat2631_t = {
+ 5, kat2631_entropyin, kat2631_nonce, kat2631_persstr,
+ kat2631_entropyinreseed, kat2631_addinreseed, kat2631_addin0,
+ kat2631_addin1, kat2631_retbits
+};
+static const struct drbg_kat kat2631 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2631_t
+};
+
+static const unsigned char kat2632_entropyin[] = {
+ 0x48, 0x29, 0x60, 0x09, 0xfd, 0x60, 0xd6, 0x04, 0x00, 0x23, 0x01, 0x4c,
+ 0xce, 0x63, 0xc6, 0xbc, 0x00, 0x10, 0xc7, 0x9d, 0x15, 0x2c, 0x77, 0x76,
+ 0xad, 0x53, 0x5c, 0x2c, 0x75, 0x81, 0x75, 0x4e, 0xf6, 0x66, 0x35, 0x55,
+ 0x50, 0x52, 0xd2, 0x37,
+};
+static const unsigned char kat2632_nonce[] = {0};
+static const unsigned char kat2632_persstr[] = {
+ 0xf8, 0x06, 0x94, 0x59, 0x92, 0x1f, 0x69, 0x19, 0x11, 0x3c, 0x48, 0x76,
+ 0x3e, 0x2c, 0x1c, 0x3c, 0xf8, 0x92, 0x3b, 0xc6, 0x9a, 0x19, 0x2d, 0xcd,
+ 0x07, 0xd0, 0x6b, 0x51, 0xe0, 0x70, 0xb4, 0x64, 0x78, 0x1f, 0x19, 0x7c,
+ 0x77, 0x76, 0x78, 0x81,
+};
+static const unsigned char kat2632_entropyinreseed[] = {
+ 0x48, 0x0e, 0x60, 0x2e, 0x1a, 0x30, 0x42, 0x56, 0x2c, 0x06, 0x80, 0xf1,
+ 0x31, 0xaa, 0x61, 0xcb, 0xe0, 0x1b, 0x11, 0x7b, 0x58, 0x2d, 0x8f, 0x98,
+ 0x12, 0x1a, 0x50, 0x57, 0xc7, 0xad, 0x13, 0x60, 0xe5, 0x1d, 0xf6, 0x4f,
+ 0x8c, 0xc7, 0x90, 0x6d,
+};
+static const unsigned char kat2632_addinreseed[] = {
+ 0xf0, 0xde, 0x8c, 0xf5, 0x49, 0x1b, 0xd8, 0x3d, 0x20, 0x01, 0x03, 0x1c,
+ 0x34, 0x9f, 0x88, 0x71, 0xa3, 0xdd, 0xd0, 0xdc, 0x6a, 0x6f, 0x3c, 0xc1,
+ 0xe3, 0x74, 0x91, 0xaa, 0x2b, 0xfe, 0x76, 0xe9, 0xf5, 0x53, 0x65, 0x03,
+ 0x10, 0xfd, 0xf1, 0x6a,
+};
+static const unsigned char kat2632_addin0[] = {
+ 0x32, 0xd4, 0x4d, 0x8b, 0xe9, 0xe9, 0xc2, 0x30, 0xbf, 0x1a, 0x19, 0x51,
+ 0x1f, 0x6e, 0xab, 0x4b, 0xb2, 0xb1, 0xae, 0xad, 0xba, 0xaa, 0xa6, 0x5c,
+ 0x6c, 0x82, 0x60, 0x4d, 0xba, 0x9d, 0xf5, 0x90, 0x20, 0xd1, 0xb7, 0x00,
+ 0x0a, 0xf7, 0x7f, 0x62,
+};
+static const unsigned char kat2632_addin1[] = {
+ 0x07, 0x4d, 0x03, 0xe6, 0x1a, 0x8b, 0xff, 0xa9, 0xe0, 0xda, 0x64, 0x81,
+ 0x4d, 0xa2, 0x23, 0x9e, 0x6e, 0xd3, 0x56, 0xa9, 0x40, 0xcf, 0x9a, 0xca,
+ 0xba, 0x2a, 0x4a, 0x36, 0xac, 0xf2, 0x33, 0xd2, 0xdf, 0xf1, 0x83, 0xf4,
+ 0xe4, 0xfe, 0x0f, 0x32,
+};
+static const unsigned char kat2632_retbits[] = {
+ 0x0b, 0x58, 0xfd, 0xf2, 0x1d, 0xbe, 0x6e, 0xe8, 0xa3, 0xc9, 0xb6, 0xf2,
+ 0x9b, 0xf5, 0xbe, 0x0f, 0x50, 0x45, 0x52, 0x7f, 0x9c, 0x27, 0x28, 0x8b,
+ 0x65, 0x6d, 0xb4, 0xe4, 0x9c, 0x89, 0x5c, 0xf8, 0xaa, 0xe3, 0x5a, 0x6f,
+ 0xc9, 0x33, 0x94, 0xca, 0x54, 0xa5, 0x33, 0xaf, 0x35, 0x97, 0xec, 0xe7,
+ 0xad, 0x62, 0xd2, 0xe2, 0x9f, 0x31, 0x3e, 0x1a, 0xfb, 0x3f, 0x81, 0xcf,
+ 0x6d, 0xff, 0x5c, 0x6b,
+};
+static const struct drbg_kat_pr_false kat2632_t = {
+ 6, kat2632_entropyin, kat2632_nonce, kat2632_persstr,
+ kat2632_entropyinreseed, kat2632_addinreseed, kat2632_addin0,
+ kat2632_addin1, kat2632_retbits
+};
+static const struct drbg_kat kat2632 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2632_t
+};
+
+static const unsigned char kat2633_entropyin[] = {
+ 0xa0, 0x7f, 0xdd, 0x2a, 0x4e, 0x21, 0xd9, 0x13, 0xbb, 0xa2, 0xa6, 0xeb,
+ 0x10, 0xb3, 0x58, 0x36, 0xed, 0x80, 0xf4, 0x88, 0x25, 0xcb, 0x76, 0x61,
+ 0x87, 0x46, 0x06, 0x3a, 0xcd, 0xb2, 0x65, 0xb7, 0x16, 0xcb, 0x91, 0x68,
+ 0x9b, 0x58, 0x0c, 0x41,
+};
+static const unsigned char kat2633_nonce[] = {0};
+static const unsigned char kat2633_persstr[] = {
+ 0xa9, 0x9c, 0x67, 0x1e, 0x4a, 0x72, 0x6a, 0xe0, 0x7f, 0xa7, 0x08, 0xdf,
+ 0x80, 0x23, 0xbd, 0x20, 0x76, 0x53, 0x97, 0xd8, 0xae, 0xcb, 0x85, 0xec,
+ 0x56, 0x9e, 0x99, 0x01, 0xdb, 0xa6, 0xde, 0x3e, 0x4d, 0xf1, 0xc8, 0xee,
+ 0x46, 0x4c, 0x96, 0xd6,
+};
+static const unsigned char kat2633_entropyinreseed[] = {
+ 0xb5, 0x1b, 0x3c, 0x5b, 0x27, 0x16, 0x99, 0xa0, 0xb9, 0x1e, 0xe1, 0x95,
+ 0x6e, 0x99, 0x4e, 0x4a, 0x6a, 0x63, 0xbe, 0x4c, 0x66, 0xa3, 0x6b, 0x20,
+ 0x79, 0x9e, 0x75, 0xbb, 0x3f, 0x11, 0xcb, 0xdb, 0x9c, 0x54, 0xe6, 0x4a,
+ 0x97, 0x77, 0x02, 0x99,
+};
+static const unsigned char kat2633_addinreseed[] = {
+ 0xc3, 0x59, 0x51, 0x43, 0x06, 0x97, 0x71, 0x7b, 0xa1, 0xe1, 0x2b, 0x05,
+ 0x7f, 0x2a, 0x2a, 0x2a, 0x5f, 0x87, 0xcb, 0x15, 0x78, 0x28, 0x89, 0x40,
+ 0x68, 0xb0, 0xd1, 0xf4, 0x36, 0x40, 0xdd, 0x86, 0x74, 0xd6, 0x9b, 0x13,
+ 0x42, 0x14, 0x2f, 0xec,
+};
+static const unsigned char kat2633_addin0[] = {
+ 0xe8, 0xa8, 0x3c, 0x91, 0x42, 0xee, 0x88, 0x47, 0x9f, 0xa1, 0x65, 0x56,
+ 0xb9, 0x70, 0x26, 0xfb, 0x35, 0x74, 0x39, 0x0b, 0xc0, 0x3b, 0x18, 0x23,
+ 0xce, 0x0e, 0x91, 0x60, 0xce, 0xd7, 0xe1, 0x4b, 0xdb, 0x43, 0x28, 0x2a,
+ 0xfc, 0xb3, 0x86, 0x9b,
+};
+static const unsigned char kat2633_addin1[] = {
+ 0x9d, 0xf3, 0xa7, 0x7e, 0xec, 0x55, 0x17, 0x62, 0x44, 0x2f, 0x08, 0xd5,
+ 0x15, 0x29, 0xc1, 0xf5, 0x02, 0x50, 0x7f, 0xaa, 0xf3, 0xd3, 0xf9, 0x48,
+ 0x5c, 0x75, 0xbf, 0x1e, 0x02, 0x79, 0xea, 0x7e, 0x05, 0x5f, 0x51, 0xf6,
+ 0xc4, 0x1a, 0x39, 0xf6,
+};
+static const unsigned char kat2633_retbits[] = {
+ 0xc7, 0x21, 0xcb, 0x5c, 0x65, 0x4b, 0xaf, 0xbe, 0xee, 0x5f, 0x61, 0x1c,
+ 0x73, 0xcf, 0xa2, 0x6a, 0x3b, 0x8f, 0x10, 0xc0, 0x62, 0x5f, 0x5a, 0x89,
+ 0xf9, 0x28, 0x55, 0x66, 0xc9, 0x5a, 0x12, 0xc9, 0x5a, 0xd2, 0x97, 0x9e,
+ 0x04, 0x37, 0x6f, 0x25, 0xb0, 0x47, 0xce, 0x42, 0xeb, 0xdc, 0xa0, 0xca,
+ 0x15, 0x2b, 0xcd, 0x6c, 0xa8, 0x0f, 0xe9, 0x3e, 0xd3, 0x50, 0x47, 0xe2,
+ 0x30, 0x75, 0x81, 0x90,
+};
+static const struct drbg_kat_pr_false kat2633_t = {
+ 7, kat2633_entropyin, kat2633_nonce, kat2633_persstr,
+ kat2633_entropyinreseed, kat2633_addinreseed, kat2633_addin0,
+ kat2633_addin1, kat2633_retbits
+};
+static const struct drbg_kat kat2633 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2633_t
+};
+
+static const unsigned char kat2634_entropyin[] = {
+ 0x35, 0x2d, 0xe6, 0xd4, 0x70, 0x17, 0xde, 0x06, 0x65, 0x9b, 0x13, 0x44,
+ 0x85, 0xa1, 0x54, 0x1e, 0xb3, 0x34, 0xc8, 0x7f, 0x1f, 0x74, 0xc0, 0x94,
+ 0xe5, 0xef, 0x9d, 0xa5, 0x31, 0xcf, 0x7a, 0x70, 0x1c, 0x57, 0x73, 0xe3,
+ 0x43, 0xa6, 0xf9, 0x2f,
+};
+static const unsigned char kat2634_nonce[] = {0};
+static const unsigned char kat2634_persstr[] = {
+ 0xb6, 0x0a, 0x38, 0x23, 0x1d, 0x74, 0x96, 0xf4, 0x71, 0x61, 0xa5, 0xcc,
+ 0x86, 0xff, 0x7d, 0xbe, 0x3f, 0xa9, 0x1e, 0xe8, 0x8f, 0x2d, 0x23, 0x01,
+ 0x8f, 0xe2, 0x1e, 0xd8, 0x5b, 0x08, 0x4c, 0x81, 0xff, 0xf6, 0x52, 0x4b,
+ 0xec, 0xba, 0x40, 0xea,
+};
+static const unsigned char kat2634_entropyinreseed[] = {
+ 0x07, 0x8a, 0xeb, 0xf7, 0x6d, 0x37, 0xb3, 0x7d, 0x7b, 0x24, 0xce, 0x4f,
+ 0xc3, 0xbe, 0x77, 0x0e, 0x27, 0xb6, 0xc6, 0xb6, 0x14, 0x14, 0x5f, 0xf5,
+ 0x85, 0x58, 0xd8, 0x6e, 0xea, 0x6c, 0x46, 0xec, 0x43, 0x51, 0x28, 0xe1,
+ 0xd5, 0x69, 0x59, 0x62,
+};
+static const unsigned char kat2634_addinreseed[] = {
+ 0xc4, 0x42, 0x45, 0x51, 0x56, 0x62, 0xc7, 0x2c, 0xbe, 0x1a, 0x50, 0xd3,
+ 0xed, 0x3e, 0x78, 0xcd, 0xce, 0x96, 0x6b, 0x11, 0x93, 0x28, 0x00, 0x22,
+ 0x54, 0xad, 0xc2, 0x89, 0xee, 0xda, 0x35, 0x1c, 0xcb, 0x86, 0x7f, 0x75,
+ 0x29, 0xea, 0xf9, 0xd5,
+};
+static const unsigned char kat2634_addin0[] = {
+ 0x23, 0x10, 0x20, 0x5e, 0x41, 0x47, 0x4d, 0xc7, 0x14, 0xe0, 0x2c, 0x5b,
+ 0x67, 0x4b, 0x2d, 0x25, 0xf8, 0x50, 0x37, 0x20, 0x31, 0xcf, 0x1a, 0x10,
+ 0x95, 0x8c, 0x2d, 0x14, 0x10, 0xaf, 0xa3, 0xa2, 0xfd, 0xca, 0x47, 0xa0,
+ 0xb3, 0xb3, 0xc8, 0x18,
+};
+static const unsigned char kat2634_addin1[] = {
+ 0xb5, 0xa3, 0xa8, 0x59, 0x30, 0x38, 0xaa, 0x26, 0x49, 0x91, 0x71, 0x4e,
+ 0xa9, 0x84, 0xdb, 0xa9, 0xff, 0x76, 0xa4, 0x9f, 0x69, 0xc7, 0x5f, 0xa9,
+ 0xd2, 0x16, 0x4b, 0xc1, 0x7a, 0x0b, 0xa4, 0x12, 0x73, 0x99, 0x03, 0x67,
+ 0xbc, 0xd6, 0xa4, 0x9d,
+};
+static const unsigned char kat2634_retbits[] = {
+ 0x34, 0x8a, 0x41, 0xb2, 0x31, 0xb3, 0x3c, 0x4e, 0x45, 0x96, 0x4f, 0xa8,
+ 0x90, 0x6c, 0xc9, 0xf7, 0x6d, 0xe3, 0x23, 0x25, 0x7d, 0xbb, 0x9d, 0x68,
+ 0x3f, 0x6c, 0xb4, 0xb8, 0xa6, 0x7b, 0x5d, 0xcf, 0x59, 0x8a, 0x2e, 0x15,
+ 0xbf, 0x49, 0x82, 0xc8, 0x3f, 0x61, 0x36, 0xe5, 0xff, 0xb0, 0x6d, 0x52,
+ 0x90, 0x92, 0x78, 0xb6, 0x83, 0x69, 0x5f, 0x94, 0x5a, 0x9a, 0xc3, 0xc7,
+ 0xac, 0x00, 0x3b, 0xb6,
+};
+static const struct drbg_kat_pr_false kat2634_t = {
+ 8, kat2634_entropyin, kat2634_nonce, kat2634_persstr,
+ kat2634_entropyinreseed, kat2634_addinreseed, kat2634_addin0,
+ kat2634_addin1, kat2634_retbits
+};
+static const struct drbg_kat kat2634 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2634_t
+};
+
+static const unsigned char kat2635_entropyin[] = {
+ 0x92, 0x61, 0xac, 0x19, 0x64, 0xa0, 0xf1, 0x1a, 0x47, 0x9e, 0x9f, 0x8b,
+ 0x23, 0x6f, 0x4a, 0x0d, 0x1b, 0xc6, 0x92, 0x4b, 0x0f, 0xd3, 0xb3, 0x89,
+ 0x87, 0xef, 0xa4, 0x19, 0x25, 0xc4, 0x79, 0xc3, 0x7c, 0xdd, 0x63, 0xdd,
+ 0x86, 0x67, 0x88, 0x4e,
+};
+static const unsigned char kat2635_nonce[] = {0};
+static const unsigned char kat2635_persstr[] = {
+ 0x73, 0x61, 0x0e, 0x5f, 0xb9, 0x90, 0x69, 0xd7, 0xe9, 0xdc, 0xd6, 0x14,
+ 0xa6, 0x3f, 0x53, 0x11, 0x3e, 0x8d, 0x8f, 0xea, 0x7b, 0x68, 0x86, 0x6c,
+ 0x4a, 0x18, 0x44, 0xe8, 0x68, 0xf0, 0xa5, 0x65, 0x5e, 0xd7, 0xdb, 0x74,
+ 0xb8, 0x61, 0x28, 0xc3,
+};
+static const unsigned char kat2635_entropyinreseed[] = {
+ 0x75, 0x74, 0x4d, 0x63, 0x5a, 0x71, 0xd5, 0xb6, 0x3f, 0x1b, 0x39, 0x61,
+ 0x34, 0x36, 0x9b, 0x03, 0xc9, 0x69, 0x1d, 0x07, 0x1f, 0xf2, 0xa7, 0x16,
+ 0xef, 0x8d, 0x09, 0x3a, 0xc2, 0xda, 0xb2, 0x3b, 0x2b, 0xd5, 0xdc, 0x1b,
+ 0x97, 0x29, 0x47, 0xf1,
+};
+static const unsigned char kat2635_addinreseed[] = {
+ 0xe5, 0x3b, 0xf2, 0x52, 0x21, 0x8a, 0x02, 0xed, 0xad, 0x67, 0x5a, 0x22,
+ 0x77, 0xa2, 0x79, 0xcb, 0xab, 0xc9, 0x51, 0x88, 0xe9, 0xe1, 0xb0, 0x16,
+ 0xa3, 0x93, 0xc2, 0xad, 0x37, 0xf8, 0x9c, 0xad, 0xb0, 0x30, 0x3a, 0x58,
+ 0xf4, 0x85, 0xb5, 0x94,
+};
+static const unsigned char kat2635_addin0[] = {
+ 0xcb, 0xe3, 0xcd, 0x60, 0xa4, 0x2c, 0x24, 0x68, 0x45, 0xa6, 0x1f, 0x8f,
+ 0x69, 0xa7, 0xb3, 0x9e, 0x16, 0xad, 0x67, 0x77, 0xb7, 0x2d, 0xc7, 0xea,
+ 0x96, 0xf6, 0xf7, 0x69, 0x30, 0xa4, 0x7e, 0xc1, 0xf2, 0xc0, 0x5b, 0xc4,
+ 0xc6, 0xe1, 0xb5, 0xba,
+};
+static const unsigned char kat2635_addin1[] = {
+ 0xd0, 0xba, 0x14, 0x96, 0xae, 0x38, 0x2a, 0xb4, 0xcc, 0x47, 0xfd, 0x82,
+ 0xb5, 0xcf, 0x30, 0xb8, 0x8a, 0xb8, 0xf3, 0xc9, 0xd7, 0x2d, 0x68, 0xc1,
+ 0x3f, 0xe5, 0xe5, 0x13, 0x35, 0xa6, 0x2f, 0xc5, 0x50, 0x3a, 0x52, 0x19,
+ 0x87, 0x4e, 0x64, 0x7d,
+};
+static const unsigned char kat2635_retbits[] = {
+ 0xdf, 0xb6, 0xa0, 0x27, 0x59, 0x4c, 0xfe, 0xab, 0x6d, 0x5a, 0xa8, 0x52,
+ 0x50, 0xd7, 0x97, 0xc6, 0xc7, 0x2f, 0x55, 0x29, 0x77, 0xe3, 0xd3, 0x08,
+ 0x75, 0x8a, 0xc6, 0xef, 0xa4, 0x17, 0x9d, 0x65, 0x1f, 0x63, 0x57, 0xdf,
+ 0xf7, 0xbe, 0x90, 0x09, 0x56, 0x6b, 0x04, 0x1c, 0xbf, 0x22, 0x9f, 0x4e,
+ 0x9f, 0x26, 0xa3, 0x82, 0x35, 0x55, 0x9a, 0xac, 0x35, 0xb2, 0x64, 0xda,
+ 0xa3, 0x77, 0x63, 0xe2,
+};
+static const struct drbg_kat_pr_false kat2635_t = {
+ 9, kat2635_entropyin, kat2635_nonce, kat2635_persstr,
+ kat2635_entropyinreseed, kat2635_addinreseed, kat2635_addin0,
+ kat2635_addin1, kat2635_retbits
+};
+static const struct drbg_kat kat2635 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2635_t
+};
+
+static const unsigned char kat2636_entropyin[] = {
+ 0xbe, 0x5a, 0x99, 0x78, 0x97, 0x45, 0x43, 0x2f, 0x37, 0xef, 0xf1, 0x53,
+ 0x2d, 0x2f, 0x08, 0xed, 0xbb, 0xac, 0x01, 0x9e, 0x9f, 0xd2, 0xa6, 0x88,
+ 0xd9, 0xca, 0x48, 0x92, 0xac, 0x4c, 0x92, 0x8f, 0xae, 0x2a, 0x4d, 0xdf,
+ 0x95, 0x95, 0xd4, 0x49,
+};
+static const unsigned char kat2636_nonce[] = {0};
+static const unsigned char kat2636_persstr[] = {
+ 0x01, 0x26, 0xc2, 0x47, 0x8d, 0x7b, 0x41, 0x94, 0xe1, 0xfd, 0x66, 0xe1,
+ 0xff, 0x66, 0x32, 0xf4, 0x2b, 0x82, 0x01, 0x36, 0xc3, 0xa6, 0x87, 0x15,
+ 0x24, 0xda, 0x7d, 0xcf, 0x0b, 0xa2, 0x73, 0x32, 0x29, 0x3f, 0x25, 0x7e,
+ 0x52, 0xda, 0xe1, 0xf3,
+};
+static const unsigned char kat2636_entropyinreseed[] = {
+ 0xbf, 0xd5, 0x03, 0xa5, 0x82, 0xd6, 0xec, 0x5a, 0x7f, 0x84, 0x3a, 0x97,
+ 0x22, 0xed, 0xf6, 0xf9, 0x9d, 0xe2, 0x69, 0x7f, 0xd5, 0x14, 0xd1, 0x0b,
+ 0x78, 0x69, 0x1d, 0xd8, 0x03, 0xc3, 0x8c, 0xc6, 0x29, 0xe1, 0x16, 0x1b,
+ 0x93, 0x3d, 0x42, 0xdd,
+};
+static const unsigned char kat2636_addinreseed[] = {
+ 0x00, 0x9e, 0x0b, 0x92, 0x63, 0x1c, 0x7d, 0x3a, 0x13, 0xd9, 0xaf, 0x5e,
+ 0x91, 0x7e, 0x5b, 0xbb, 0x92, 0xd0, 0x1d, 0x52, 0xb7, 0x1b, 0x76, 0x7b,
+ 0x8e, 0x16, 0xf4, 0xc0, 0x90, 0x6c, 0x96, 0x43, 0xfe, 0x0e, 0xda, 0x52,
+ 0x91, 0x26, 0xcc, 0xed,
+};
+static const unsigned char kat2636_addin0[] = {
+ 0x51, 0xdc, 0xff, 0x3b, 0x18, 0xbb, 0xc6, 0xbe, 0xb0, 0xf2, 0xd4, 0x5b,
+ 0x09, 0x90, 0x48, 0x01, 0xb5, 0x48, 0x88, 0x25, 0x14, 0x03, 0x7a, 0x30,
+ 0x44, 0x5d, 0x88, 0x86, 0x95, 0xc6, 0x13, 0x69, 0x2a, 0x5a, 0xef, 0xff,
+ 0x5d, 0x95, 0xdd, 0xde,
+};
+static const unsigned char kat2636_addin1[] = {
+ 0x22, 0x82, 0x9c, 0x4e, 0x7c, 0x1b, 0x3c, 0xe2, 0x0c, 0xe9, 0x85, 0x89,
+ 0xff, 0x98, 0xbe, 0x88, 0xee, 0x98, 0x3e, 0x50, 0x2b, 0x0a, 0x90, 0xa3,
+ 0x58, 0x26, 0x20, 0x18, 0x43, 0xea, 0x82, 0xdf, 0xf5, 0x70, 0xda, 0x7e,
+ 0x9a, 0x74, 0x12, 0x67,
+};
+static const unsigned char kat2636_retbits[] = {
+ 0x5c, 0x66, 0xca, 0x9b, 0x13, 0xdf, 0xd3, 0xf6, 0xdf, 0xb5, 0x04, 0x7c,
+ 0x5a, 0xb4, 0x79, 0x27, 0x7c, 0x04, 0x04, 0x92, 0xa0, 0xe7, 0xea, 0x65,
+ 0x82, 0xf1, 0x6b, 0xab, 0xe6, 0x42, 0x78, 0xd1, 0x8c, 0x37, 0x3b, 0xf9,
+ 0x17, 0x26, 0x59, 0x71, 0x43, 0xb0, 0x10, 0x84, 0x41, 0x7b, 0x05, 0x7e,
+ 0xbf, 0xb6, 0x10, 0xdd, 0x86, 0xee, 0x56, 0xff, 0x3d, 0xbb, 0xad, 0xd2,
+ 0x58, 0x70, 0x8e, 0xc7,
+};
+static const struct drbg_kat_pr_false kat2636_t = {
+ 10, kat2636_entropyin, kat2636_nonce, kat2636_persstr,
+ kat2636_entropyinreseed, kat2636_addinreseed, kat2636_addin0,
+ kat2636_addin1, kat2636_retbits
+};
+static const struct drbg_kat kat2636 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2636_t
+};
+
+static const unsigned char kat2637_entropyin[] = {
+ 0x1f, 0xaf, 0xe7, 0x02, 0x35, 0x97, 0xe0, 0x29, 0x75, 0xea, 0x23, 0x23,
+ 0x41, 0x93, 0x1b, 0xbd, 0xa0, 0xdd, 0xf1, 0x18, 0x06, 0xf5, 0x76, 0x67,
+ 0x98, 0x25, 0xdd, 0xaf, 0xf6, 0x9f, 0x21, 0xdc, 0x3e, 0xe7, 0x71, 0xfe,
+ 0x37, 0x98, 0x65, 0xdf,
+};
+static const unsigned char kat2637_nonce[] = {0};
+static const unsigned char kat2637_persstr[] = {
+ 0x74, 0x67, 0x83, 0xd0, 0x0a, 0xc7, 0x78, 0xc1, 0x06, 0xef, 0x72, 0xf9,
+ 0x96, 0x1a, 0x78, 0x82, 0x97, 0x99, 0xe7, 0x5e, 0x42, 0xf6, 0xa7, 0x27,
+ 0x0b, 0xc4, 0xad, 0x33, 0x09, 0xa9, 0x1a, 0x50, 0x58, 0x25, 0x18, 0x99,
+ 0x6a, 0x60, 0xec, 0xf4,
+};
+static const unsigned char kat2637_entropyinreseed[] = {
+ 0x62, 0x63, 0x1b, 0x75, 0x60, 0x52, 0xc4, 0x81, 0x86, 0xa8, 0x8d, 0xb3,
+ 0x5f, 0xb1, 0xfe, 0xf9, 0xc6, 0x58, 0x72, 0x1c, 0x51, 0x65, 0x18, 0x84,
+ 0x17, 0x56, 0x52, 0xed, 0x66, 0xd2, 0x4a, 0xa1, 0xb2, 0x04, 0x23, 0xfa,
+ 0xe2, 0xb5, 0x58, 0xf4,
+};
+static const unsigned char kat2637_addinreseed[] = {
+ 0x66, 0xea, 0x5c, 0x41, 0x08, 0x99, 0x63, 0x57, 0x7a, 0xe0, 0x4d, 0x1c,
+ 0xd1, 0xe4, 0xc5, 0xdc, 0xd2, 0x01, 0xa5, 0xa1, 0xc6, 0x52, 0xbd, 0xed,
+ 0x83, 0x7b, 0x06, 0x62, 0x6a, 0x55, 0x70, 0x5c, 0x10, 0xb5, 0xbe, 0x03,
+ 0x23, 0x73, 0x58, 0xfd,
+};
+static const unsigned char kat2637_addin0[] = {
+ 0x6b, 0xf8, 0x10, 0x0c, 0xeb, 0x82, 0x80, 0x76, 0xed, 0x58, 0x3d, 0x56,
+ 0xa2, 0xd2, 0x33, 0x3a, 0x75, 0xff, 0x9a, 0xf9, 0x9e, 0x87, 0xaf, 0x15,
+ 0xe4, 0x5e, 0x46, 0x31, 0x6b, 0x2c, 0x8f, 0xe1, 0x55, 0x18, 0x1f, 0x2f,
+ 0x63, 0xcc, 0xd7, 0xf6,
+};
+static const unsigned char kat2637_addin1[] = {
+ 0x39, 0x3b, 0xd4, 0xcc, 0x23, 0x4c, 0x4b, 0x88, 0xfa, 0xfd, 0x48, 0x5a,
+ 0x81, 0xb3, 0x4e, 0xa5, 0x30, 0xc5, 0x1d, 0xc5, 0xcc, 0x87, 0x85, 0x46,
+ 0x5d, 0xda, 0xd6, 0xc4, 0x89, 0x7b, 0x71, 0x43, 0x17, 0x9a, 0x03, 0xff,
+ 0x30, 0x68, 0xb2, 0xb9,
+};
+static const unsigned char kat2637_retbits[] = {
+ 0x14, 0x97, 0xda, 0x85, 0x00, 0x1b, 0xf9, 0x5b, 0x2a, 0x08, 0xac, 0x16,
+ 0x11, 0x65, 0xb1, 0x17, 0x70, 0xe3, 0x06, 0x53, 0xc6, 0x8a, 0x88, 0x48,
+ 0xd5, 0xe0, 0xa0, 0x55, 0x78, 0x9f, 0x02, 0x9e, 0x2f, 0x9b, 0x80, 0xb5,
+ 0xf8, 0x09, 0xdd, 0x8b, 0x75, 0xaa, 0xaf, 0xd8, 0xfe, 0x50, 0x95, 0xba,
+ 0x08, 0xcf, 0x7e, 0x40, 0x9b, 0x20, 0xa1, 0x37, 0xab, 0x3f, 0x88, 0x95,
+ 0x0d, 0x7a, 0x05, 0xa3,
+};
+static const struct drbg_kat_pr_false kat2637_t = {
+ 11, kat2637_entropyin, kat2637_nonce, kat2637_persstr,
+ kat2637_entropyinreseed, kat2637_addinreseed, kat2637_addin0,
+ kat2637_addin1, kat2637_retbits
+};
+static const struct drbg_kat kat2637 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2637_t
+};
+
+static const unsigned char kat2638_entropyin[] = {
+ 0xf3, 0x37, 0x05, 0x56, 0x46, 0x06, 0x14, 0xe6, 0x6b, 0xc8, 0xe2, 0x89,
+ 0xf5, 0xf0, 0xd9, 0x8e, 0x8b, 0x06, 0x29, 0x0f, 0x82, 0x2d, 0xef, 0x77,
+ 0x73, 0x8a, 0xaa, 0x33, 0x3d, 0x0d, 0xfe, 0x68, 0x89, 0x08, 0x46, 0xe0,
+ 0x69, 0x34, 0x93, 0x87,
+};
+static const unsigned char kat2638_nonce[] = {0};
+static const unsigned char kat2638_persstr[] = {
+ 0xe2, 0x56, 0x37, 0xdc, 0xc4, 0xae, 0x0e, 0x8d, 0x9b, 0xbd, 0x40, 0x23,
+ 0x45, 0x74, 0xfc, 0x76, 0xe5, 0x4e, 0x02, 0xe1, 0x66, 0x4f, 0xb4, 0x64,
+ 0x55, 0xc8, 0x66, 0x0e, 0x33, 0xb4, 0x96, 0xcb, 0xbb, 0xa1, 0xbb, 0x98,
+ 0xdb, 0x1e, 0xc3, 0xf8,
+};
+static const unsigned char kat2638_entropyinreseed[] = {
+ 0xb9, 0xc1, 0xe0, 0x34, 0xa0, 0x0b, 0xe6, 0x50, 0xba, 0x3f, 0x22, 0x51,
+ 0x7c, 0xa7, 0xba, 0x34, 0x9e, 0xf4, 0x6f, 0x7f, 0xdd, 0xdb, 0x5c, 0x49,
+ 0xe1, 0x9b, 0xbe, 0x2a, 0x97, 0x45, 0x97, 0xd0, 0x6d, 0x5f, 0xd1, 0xc9,
+ 0x99, 0xdc, 0x31, 0x21,
+};
+static const unsigned char kat2638_addinreseed[] = {
+ 0x91, 0xd0, 0x9c, 0xb6, 0xbf, 0x47, 0x33, 0x0c, 0xa7, 0x1d, 0xad, 0xd6,
+ 0x8b, 0x28, 0x3b, 0x6b, 0xc2, 0x3c, 0xbe, 0x8b, 0x63, 0xe3, 0x71, 0x7c,
+ 0x3f, 0x57, 0xe6, 0x9a, 0x06, 0xf8, 0xcf, 0x23, 0x65, 0xaa, 0xbd, 0xf1,
+ 0x82, 0x60, 0xb9, 0xeb,
+};
+static const unsigned char kat2638_addin0[] = {
+ 0x77, 0x99, 0xf7, 0x48, 0x6f, 0x88, 0x08, 0xfe, 0x8f, 0x77, 0xee, 0xb6,
+ 0x22, 0x16, 0xc3, 0x47, 0x69, 0xfd, 0x66, 0x00, 0x5f, 0x32, 0x80, 0x16,
+ 0xd6, 0x71, 0x5c, 0x2f, 0x53, 0x87, 0x95, 0x26, 0x7a, 0x71, 0xde, 0x47,
+ 0xc9, 0x7e, 0x91, 0x87,
+};
+static const unsigned char kat2638_addin1[] = {
+ 0x1f, 0x8e, 0x44, 0xe8, 0x29, 0x65, 0x6f, 0x5d, 0xe2, 0xbf, 0x98, 0x8d,
+ 0xcf, 0xf0, 0xaa, 0xc9, 0x87, 0xae, 0x67, 0x61, 0x8c, 0x49, 0x76, 0x82,
+ 0x4d, 0xba, 0x40, 0x1a, 0x83, 0x0e, 0x94, 0x5a, 0x32, 0x1d, 0x9d, 0x5c,
+ 0x2f, 0x07, 0x66, 0xad,
+};
+static const unsigned char kat2638_retbits[] = {
+ 0xa4, 0x5b, 0x6c, 0x0d, 0xca, 0x56, 0xb0, 0x4b, 0x03, 0x9e, 0x5e, 0x97,
+ 0xb3, 0x22, 0x1f, 0x9f, 0x1c, 0xda, 0xe5, 0xde, 0x69, 0x54, 0x71, 0x53,
+ 0x43, 0x0f, 0xee, 0xa9, 0x39, 0x5e, 0x2c, 0x31, 0x35, 0x5e, 0x60, 0x52,
+ 0xca, 0xb0, 0x89, 0xb3, 0x39, 0xd0, 0x8d, 0xba, 0x26, 0xad, 0x3d, 0x53,
+ 0x49, 0xc5, 0xfc, 0x8e, 0x92, 0x68, 0xf1, 0x13, 0xd0, 0xab, 0x00, 0xb5,
+ 0x96, 0x22, 0xb1, 0xbd,
+};
+static const struct drbg_kat_pr_false kat2638_t = {
+ 12, kat2638_entropyin, kat2638_nonce, kat2638_persstr,
+ kat2638_entropyinreseed, kat2638_addinreseed, kat2638_addin0,
+ kat2638_addin1, kat2638_retbits
+};
+static const struct drbg_kat kat2638 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2638_t
+};
+
+static const unsigned char kat2639_entropyin[] = {
+ 0x82, 0x97, 0x7d, 0x0f, 0xcd, 0xf8, 0x37, 0x2a, 0xc1, 0xc5, 0x4b, 0xbd,
+ 0x56, 0x2d, 0xb0, 0x4a, 0x93, 0xf9, 0x97, 0x11, 0xf9, 0x7b, 0x68, 0x50,
+ 0x3f, 0xd2, 0x83, 0x33, 0xf6, 0x7e, 0xaa, 0x65, 0x71, 0x0e, 0xb9, 0xad,
+ 0xb8, 0x85, 0xad, 0xeb,
+};
+static const unsigned char kat2639_nonce[] = {0};
+static const unsigned char kat2639_persstr[] = {
+ 0xe6, 0x48, 0x95, 0xf0, 0x5e, 0xee, 0x65, 0x5d, 0x18, 0x5f, 0x72, 0xae,
+ 0xa7, 0x9b, 0xdc, 0x33, 0x23, 0x72, 0xe5, 0xba, 0xe7, 0xe4, 0xf0, 0xae,
+ 0xaf, 0x80, 0xd9, 0x06, 0x70, 0x8b, 0x6e, 0x14, 0xe9, 0x8e, 0xf7, 0xb6,
+ 0xd9, 0xce, 0x63, 0x57,
+};
+static const unsigned char kat2639_entropyinreseed[] = {
+ 0x06, 0x2b, 0x41, 0xab, 0x5c, 0xf7, 0xdc, 0xdc, 0xac, 0x34, 0x31, 0x3d,
+ 0x60, 0xf0, 0x06, 0x9d, 0x3f, 0x48, 0x61, 0xe9, 0x7b, 0x92, 0xa1, 0x21,
+ 0x87, 0x9b, 0xa3, 0x06, 0x77, 0x0a, 0x61, 0x31, 0x00, 0x11, 0x28, 0x6d,
+ 0x91, 0x1c, 0x0f, 0x13,
+};
+static const unsigned char kat2639_addinreseed[] = {
+ 0xb1, 0x88, 0x3f, 0x92, 0x30, 0x7c, 0x92, 0x43, 0xd0, 0xbd, 0x86, 0x8f,
+ 0xb2, 0x47, 0xc3, 0xfa, 0x0e, 0x21, 0xc8, 0xba, 0x43, 0x2b, 0x00, 0x3a,
+ 0xfe, 0x9f, 0x3c, 0x00, 0x10, 0x46, 0xde, 0x43, 0x28, 0x0b, 0x69, 0x65,
+ 0x47, 0xd1, 0xf7, 0xf3,
+};
+static const unsigned char kat2639_addin0[] = {
+ 0xe9, 0x4c, 0xa9, 0x02, 0x43, 0x3a, 0x4d, 0xf3, 0x81, 0x6c, 0xae, 0x0a,
+ 0xe6, 0xd4, 0x3f, 0xec, 0xc2, 0x4d, 0x3c, 0x6f, 0x6e, 0x14, 0x36, 0xc7,
+ 0x88, 0xba, 0xe6, 0x53, 0x4d, 0xa0, 0xf1, 0xaf, 0xe0, 0xa8, 0x71, 0x42,
+ 0xa0, 0x84, 0xd9, 0x56,
+};
+static const unsigned char kat2639_addin1[] = {
+ 0xe2, 0x78, 0xd1, 0x5e, 0x1d, 0x5d, 0xb2, 0x44, 0xf7, 0x26, 0xf7, 0x20,
+ 0x9e, 0xca, 0x4c, 0x95, 0x58, 0x94, 0x18, 0x54, 0x9b, 0xb0, 0x2c, 0x6e,
+ 0x7f, 0xb5, 0x0f, 0xb3, 0xa6, 0xa1, 0x76, 0x03, 0x26, 0x62, 0x41, 0x4b,
+ 0x23, 0x1f, 0xe4, 0x2f,
+};
+static const unsigned char kat2639_retbits[] = {
+ 0x4c, 0x30, 0xaf, 0x81, 0x2c, 0x12, 0xe9, 0xbb, 0x12, 0xb6, 0xb2, 0x26,
+ 0x35, 0x32, 0xcf, 0x2e, 0xe5, 0x0b, 0x94, 0x07, 0x5b, 0xc7, 0x43, 0x38,
+ 0xb0, 0xbf, 0x7b, 0xda, 0xbf, 0xd3, 0x4d, 0x08, 0xb5, 0x6f, 0xc2, 0x71,
+ 0x68, 0xdd, 0x77, 0x5b, 0x9d, 0x37, 0x71, 0x8e, 0xb2, 0x1b, 0xbe, 0x60,
+ 0xc8, 0xe2, 0xf9, 0x07, 0xcf, 0xdb, 0xc6, 0xca, 0x26, 0xe7, 0xa5, 0x85,
+ 0x1b, 0x0a, 0xb8, 0x33,
+};
+static const struct drbg_kat_pr_false kat2639_t = {
+ 13, kat2639_entropyin, kat2639_nonce, kat2639_persstr,
+ kat2639_entropyinreseed, kat2639_addinreseed, kat2639_addin0,
+ kat2639_addin1, kat2639_retbits
+};
+static const struct drbg_kat kat2639 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2639_t
+};
+
+static const unsigned char kat2640_entropyin[] = {
+ 0x6a, 0x93, 0x39, 0x1a, 0x44, 0xc3, 0x0d, 0xb3, 0x86, 0xa0, 0x73, 0x57,
+ 0x1b, 0x0e, 0x5b, 0xb3, 0x6a, 0x6d, 0x73, 0x69, 0xb6, 0xb5, 0xcd, 0x7d,
+ 0xd0, 0xf3, 0x84, 0xde, 0xb9, 0xbf, 0xc6, 0x95, 0x87, 0x86, 0x7b, 0xd7,
+ 0xe1, 0x98, 0x2f, 0xa7,
+};
+static const unsigned char kat2640_nonce[] = {0};
+static const unsigned char kat2640_persstr[] = {
+ 0x09, 0x96, 0x08, 0xcd, 0xb2, 0xce, 0xae, 0xd0, 0xd0, 0x74, 0xfe, 0x92,
+ 0x4b, 0x48, 0x3f, 0x8b, 0x7b, 0x74, 0xb1, 0x65, 0x4e, 0xd8, 0xea, 0xd4,
+ 0xf4, 0xd4, 0x90, 0x08, 0xe6, 0xd8, 0x52, 0xce, 0xbc, 0xac, 0xf7, 0x48,
+ 0x51, 0xe4, 0x8a, 0x5b,
+};
+static const unsigned char kat2640_entropyinreseed[] = {
+ 0x3b, 0x95, 0x4a, 0x58, 0xd7, 0xcb, 0xfc, 0xb0, 0xb5, 0xad, 0x0b, 0x58,
+ 0x51, 0x5c, 0xe9, 0x3f, 0x52, 0x38, 0x02, 0xfe, 0x94, 0x72, 0x5e, 0x25,
+ 0xfd, 0xa9, 0x7b, 0x26, 0xcf, 0x16, 0x2e, 0x00, 0x03, 0xb1, 0xd0, 0x88,
+ 0xd8, 0xea, 0xc3, 0x9f,
+};
+static const unsigned char kat2640_addinreseed[] = {
+ 0x24, 0x7d, 0xa8, 0xb5, 0xd0, 0xe1, 0x61, 0xf1, 0x59, 0x44, 0x35, 0x6a,
+ 0x46, 0x56, 0x23, 0x85, 0xcd, 0xf9, 0x8d, 0xe3, 0x32, 0xae, 0xd8, 0xce,
+ 0x25, 0x0b, 0xbc, 0xe3, 0x7f, 0xd3, 0xc2, 0x7c, 0x53, 0xb1, 0xae, 0xc2,
+ 0x64, 0x73, 0x4a, 0x1a,
+};
+static const unsigned char kat2640_addin0[] = {
+ 0x6a, 0xec, 0x5f, 0x8c, 0x3d, 0xc5, 0x49, 0x24, 0x10, 0x4e, 0x04, 0x63,
+ 0x5a, 0xb8, 0x0b, 0x1f, 0x78, 0x28, 0x69, 0xbc, 0x5c, 0x15, 0x57, 0xf7,
+ 0xd8, 0x9d, 0xaa, 0x1e, 0x1b, 0x3b, 0xfb, 0x3c, 0xab, 0x96, 0x33, 0x89,
+ 0x22, 0x70, 0x5a, 0x78,
+};
+static const unsigned char kat2640_addin1[] = {
+ 0x66, 0x8d, 0x73, 0x2a, 0x98, 0xf7, 0xae, 0x8c, 0xdc, 0x92, 0x35, 0xd6,
+ 0x3e, 0x70, 0x59, 0x55, 0xc0, 0x96, 0x00, 0xa4, 0x90, 0x02, 0x1a, 0x19,
+ 0xa3, 0x4c, 0x1b, 0xef, 0xba, 0x8c, 0xb6, 0x13, 0xee, 0x7d, 0x8e, 0x4c,
+ 0x57, 0x74, 0xab, 0xa4,
+};
+static const unsigned char kat2640_retbits[] = {
+ 0x1d, 0xfb, 0x0a, 0x6b, 0xf4, 0x11, 0x58, 0x0a, 0xa5, 0x50, 0x44, 0xf2,
+ 0x6c, 0x59, 0x8d, 0x26, 0x20, 0x96, 0x5f, 0xc9, 0x4a, 0x76, 0x90, 0x01,
+ 0xf1, 0x0b, 0x19, 0x09, 0x22, 0x86, 0x16, 0x14, 0x6b, 0xc9, 0xd0, 0x2f,
+ 0x74, 0x9d, 0x09, 0x47, 0x86, 0x80, 0x5e, 0x3d, 0xb8, 0x59, 0xda, 0x9e,
+ 0x6a, 0x57, 0x28, 0x33, 0xaf, 0x5c, 0xef, 0xdb, 0x14, 0x78, 0x73, 0xec,
+ 0x60, 0x23, 0xb0, 0x28,
+};
+static const struct drbg_kat_pr_false kat2640_t = {
+ 14, kat2640_entropyin, kat2640_nonce, kat2640_persstr,
+ kat2640_entropyinreseed, kat2640_addinreseed, kat2640_addin0,
+ kat2640_addin1, kat2640_retbits
+};
+static const struct drbg_kat kat2640 = {
+ PR_FALSE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat2640_t
+};
+
+static const unsigned char kat2641_entropyin[] = {
+ 0xe4, 0xbc, 0x23, 0xc5, 0x08, 0x9a, 0x19, 0xd8, 0x6f, 0x41, 0x19, 0xcb,
+ 0x3f, 0xa0, 0x8c, 0x0a, 0x49, 0x91, 0xe0, 0xa1, 0xde, 0xf1, 0x7e, 0x10,
+ 0x1e, 0x4c, 0x14, 0xd9, 0xc3, 0x23, 0x46, 0x0a, 0x7c, 0x2f, 0xb5, 0x8e,
+ 0x0b, 0x08, 0x6c, 0x6c, 0x57, 0xb5, 0x5f, 0x56, 0xca, 0xe2, 0x5b, 0xad,
+};
+static const unsigned char kat2641_nonce[] = {0};
+static const unsigned char kat2641_persstr[] = {0};
+static const unsigned char kat2641_entropyinreseed[] = {
+ 0xfd, 0x85, 0xa8, 0x36, 0xbb, 0xa8, 0x50, 0x19, 0x88, 0x1e, 0x8c, 0x6b,
+ 0xad, 0x23, 0xc9, 0x06, 0x1a, 0xdc, 0x75, 0x47, 0x76, 0x59, 0xac, 0xae,
+ 0xa8, 0xe4, 0xa0, 0x1d, 0xfe, 0x07, 0xa1, 0x83, 0x2d, 0xad, 0x1c, 0x13,
+ 0x6f, 0x59, 0xd7, 0x0f, 0x86, 0x53, 0xa5, 0xdc, 0x11, 0x86, 0x63, 0xd6,
+};
+static const unsigned char kat2641_addinreseed[] = {0};
+static const unsigned char kat2641_addin0[] = {0};
+static const unsigned char kat2641_addin1[] = {0};
+static const unsigned char kat2641_retbits[] = {
+ 0xb2, 0xcb, 0x89, 0x05, 0xc0, 0x5e, 0x59, 0x50, 0xca, 0x31, 0x89, 0x50,
+ 0x96, 0xbe, 0x29, 0xea, 0x3d, 0x5a, 0x3b, 0x82, 0xb2, 0x69, 0x49, 0x55,
+ 0x54, 0xeb, 0x80, 0xfe, 0x07, 0xde, 0x43, 0xe1, 0x93, 0xb9, 0xe7, 0xc3,
+ 0xec, 0xe7, 0x3b, 0x80, 0xe0, 0x62, 0xb1, 0xc1, 0xf6, 0x82, 0x02, 0xfb,
+ 0xb1, 0xc5, 0x2a, 0x04, 0x0e, 0xa2, 0x47, 0x88, 0x64, 0x29, 0x52, 0x82,
+ 0x23, 0x4a, 0xaa, 0xda,
+};
+static const struct drbg_kat_pr_false kat2641_t = {
+ 0, kat2641_entropyin, kat2641_nonce, kat2641_persstr,
+ kat2641_entropyinreseed, kat2641_addinreseed, kat2641_addin0,
+ kat2641_addin1, kat2641_retbits
+};
+static const struct drbg_kat kat2641 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2641_t
+};
+
+static const unsigned char kat2642_entropyin[] = {
+ 0xed, 0xfd, 0xb5, 0x5e, 0x77, 0xd4, 0x18, 0xa6, 0x3e, 0x44, 0x14, 0xdf,
+ 0xd4, 0x22, 0x25, 0xed, 0x25, 0x7c, 0xf7, 0x4e, 0x99, 0x32, 0x5f, 0xba,
+ 0x26, 0xe8, 0xf3, 0xa4, 0x52, 0x4a, 0x71, 0xbc, 0x80, 0xa7, 0x31, 0xaf,
+ 0x23, 0x25, 0x69, 0x08, 0xcb, 0x46, 0x75, 0xa9, 0xc2, 0x53, 0xea, 0x6f,
+};
+static const unsigned char kat2642_nonce[] = {0};
+static const unsigned char kat2642_persstr[] = {0};
+static const unsigned char kat2642_entropyinreseed[] = {
+ 0xa9, 0x37, 0x2f, 0xea, 0x93, 0xd6, 0x07, 0xfb, 0xbc, 0x75, 0xa9, 0x7b,
+ 0x7f, 0x65, 0xf2, 0xd4, 0xae, 0x8c, 0x06, 0xbd, 0x18, 0x49, 0x81, 0x57,
+ 0x2e, 0x88, 0x8a, 0x35, 0xc5, 0x79, 0x4d, 0x2b, 0xb3, 0x80, 0xa4, 0xae,
+ 0x04, 0xbb, 0xa2, 0x7f, 0x2e, 0xfc, 0xc9, 0xe7, 0x91, 0x4b, 0x96, 0xdc,
+};
+static const unsigned char kat2642_addinreseed[] = {0};
+static const unsigned char kat2642_addin0[] = {0};
+static const unsigned char kat2642_addin1[] = {0};
+static const unsigned char kat2642_retbits[] = {
+ 0x11, 0xb1, 0xa0, 0xf0, 0xbb, 0x93, 0x5e, 0xc0, 0xc5, 0x4e, 0x08, 0x9e,
+ 0x0c, 0xd2, 0x08, 0x32, 0xd1, 0xf0, 0x0e, 0x70, 0x69, 0xf3, 0x0e, 0x9e,
+ 0xa2, 0xe3, 0x5b, 0x7f, 0x15, 0xec, 0xf0, 0x57, 0x7d, 0x0e, 0x90, 0x03,
+ 0x5b, 0xf0, 0xf9, 0x1f, 0xfd, 0x9e, 0x8a, 0x1f, 0xa8, 0xa5, 0x07, 0x50,
+ 0x37, 0x39, 0xaf, 0xbe, 0xc1, 0x93, 0x93, 0xe0, 0x2c, 0x9b, 0x7c, 0x23,
+ 0x0c, 0xde, 0xa3, 0x6f,
+};
+static const struct drbg_kat_pr_false kat2642_t = {
+ 1, kat2642_entropyin, kat2642_nonce, kat2642_persstr,
+ kat2642_entropyinreseed, kat2642_addinreseed, kat2642_addin0,
+ kat2642_addin1, kat2642_retbits
+};
+static const struct drbg_kat kat2642 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2642_t
+};
+
+static const unsigned char kat2643_entropyin[] = {
+ 0xf2, 0x53, 0xfd, 0x44, 0x2b, 0x10, 0x54, 0x34, 0xc0, 0xf4, 0x7b, 0xa9,
+ 0xb6, 0x79, 0x8b, 0xc2, 0x0c, 0x88, 0x32, 0xa1, 0x42, 0xa2, 0xa6, 0xd9,
+ 0x65, 0x67, 0x84, 0x85, 0xa3, 0xac, 0x52, 0x39, 0x35, 0x28, 0xa5, 0xe0,
+ 0x92, 0x34, 0x1d, 0x60, 0xad, 0x74, 0x42, 0x9f, 0x40, 0x05, 0xf8, 0xbb,
+};
+static const unsigned char kat2643_nonce[] = {0};
+static const unsigned char kat2643_persstr[] = {0};
+static const unsigned char kat2643_entropyinreseed[] = {
+ 0x60, 0x0c, 0x82, 0x2b, 0x19, 0x8d, 0xbd, 0xcd, 0x9d, 0x13, 0xee, 0x25,
+ 0xbd, 0x4b, 0x84, 0x6e, 0x5d, 0x86, 0x65, 0x72, 0x5e, 0xac, 0x53, 0x47,
+ 0xb4, 0xcf, 0xe7, 0x51, 0x2c, 0x1f, 0x3f, 0xbd, 0xc4, 0xc5, 0x1c, 0x85,
+ 0xd9, 0x77, 0xca, 0x58, 0xe9, 0xe6, 0x48, 0x5a, 0x17, 0xc5, 0x33, 0xbb,
+};
+static const unsigned char kat2643_addinreseed[] = {0};
+static const unsigned char kat2643_addin0[] = {0};
+static const unsigned char kat2643_addin1[] = {0};
+static const unsigned char kat2643_retbits[] = {
+ 0x07, 0x64, 0x19, 0xbd, 0xd3, 0x54, 0xd6, 0xa1, 0xf1, 0x41, 0x5a, 0x0a,
+ 0x71, 0xbe, 0xd9, 0x4d, 0xb2, 0x9c, 0xad, 0x22, 0xf0, 0x20, 0x5d, 0x98,
+ 0x3c, 0x84, 0x18, 0x74, 0x49, 0x78, 0x75, 0xa4, 0x85, 0x74, 0x04, 0xe5,
+ 0x73, 0x54, 0x53, 0x66, 0x85, 0x0f, 0xe6, 0xeb, 0x52, 0x86, 0xe0, 0xde,
+ 0xb8, 0x7d, 0xdd, 0x63, 0xbb, 0x33, 0x17, 0xb4, 0x55, 0x6a, 0x82, 0x92,
+ 0x04, 0x12, 0xae, 0xef,
+};
+static const struct drbg_kat_pr_false kat2643_t = {
+ 2, kat2643_entropyin, kat2643_nonce, kat2643_persstr,
+ kat2643_entropyinreseed, kat2643_addinreseed, kat2643_addin0,
+ kat2643_addin1, kat2643_retbits
+};
+static const struct drbg_kat kat2643 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2643_t
+};
+
+static const unsigned char kat2644_entropyin[] = {
+ 0x8d, 0xbf, 0x2c, 0x37, 0xdb, 0xbf, 0x38, 0x62, 0xf0, 0x5a, 0xf4, 0xb3,
+ 0x2e, 0x98, 0xed, 0xd3, 0xd8, 0xcd, 0x7b, 0xd3, 0x4d, 0x8a, 0x23, 0xda,
+ 0xa2, 0xd1, 0x52, 0x00, 0xda, 0xed, 0x6e, 0x9d, 0x23, 0x83, 0x87, 0xba,
+ 0x85, 0xdd, 0xfd, 0x35, 0xa2, 0x98, 0x6b, 0xdf, 0x57, 0x90, 0xe1, 0xa7,
+};
+static const unsigned char kat2644_nonce[] = {0};
+static const unsigned char kat2644_persstr[] = {0};
+static const unsigned char kat2644_entropyinreseed[] = {
+ 0xf6, 0x7a, 0xed, 0x05, 0xde, 0xa0, 0x8b, 0xaa, 0x16, 0xcb, 0xb6, 0x69,
+ 0xae, 0x31, 0x0a, 0x0b, 0x8e, 0x01, 0x9d, 0xa0, 0xa7, 0xfe, 0x27, 0x62,
+ 0xab, 0xf6, 0x84, 0x12, 0x12, 0x92, 0x18, 0x6a, 0x50, 0xbc, 0x13, 0xd5,
+ 0x68, 0x57, 0x6c, 0xe5, 0xd7, 0xae, 0xb0, 0x80, 0xe4, 0x60, 0x4a, 0x1e,
+};
+static const unsigned char kat2644_addinreseed[] = {0};
+static const unsigned char kat2644_addin0[] = {0};
+static const unsigned char kat2644_addin1[] = {0};
+static const unsigned char kat2644_retbits[] = {
+ 0x69, 0x66, 0x6e, 0x65, 0xc5, 0x62, 0x31, 0x40, 0xda, 0x35, 0x92, 0x7e,
+ 0xc3, 0x91, 0x89, 0xfc, 0xfd, 0xa0, 0x89, 0x16, 0x74, 0xef, 0xdc, 0xd2,
+ 0xa7, 0xd6, 0xf2, 0x62, 0x89, 0x21, 0xa3, 0x7b, 0xd4, 0x9a, 0x16, 0x45,
+ 0x90, 0x41, 0x3c, 0x04, 0xf6, 0x09, 0x0a, 0x50, 0x33, 0x6f, 0x04, 0x0b,
+ 0x01, 0x5d, 0xd8, 0xc4, 0x54, 0x52, 0x99, 0x1b, 0xcd, 0xd9, 0x69, 0x94,
+ 0xc5, 0xec, 0xc6, 0xbd,
+};
+static const struct drbg_kat_pr_false kat2644_t = {
+ 3, kat2644_entropyin, kat2644_nonce, kat2644_persstr,
+ kat2644_entropyinreseed, kat2644_addinreseed, kat2644_addin0,
+ kat2644_addin1, kat2644_retbits
+};
+static const struct drbg_kat kat2644 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2644_t
+};
+
+static const unsigned char kat2645_entropyin[] = {
+ 0x2f, 0xac, 0x25, 0xdc, 0xea, 0x52, 0x74, 0xa7, 0xdb, 0xd6, 0xaf, 0x11,
+ 0x2d, 0x75, 0x7b, 0x59, 0xa4, 0x44, 0x7f, 0x5d, 0xcb, 0xda, 0x97, 0x26,
+ 0x66, 0xaf, 0x07, 0x1c, 0x5d, 0x8f, 0x71, 0x58, 0x3e, 0xc6, 0x91, 0x4a,
+ 0x1e, 0x68, 0x5f, 0x61, 0x0b, 0x8a, 0x43, 0xff, 0xad, 0xa0, 0xb4, 0x11,
+};
+static const unsigned char kat2645_nonce[] = {0};
+static const unsigned char kat2645_persstr[] = {0};
+static const unsigned char kat2645_entropyinreseed[] = {
+ 0x52, 0xf5, 0xb1, 0xf9, 0x27, 0xc0, 0x87, 0x3a, 0xe3, 0x75, 0xd6, 0xa6,
+ 0xe1, 0x40, 0xfe, 0x59, 0x4f, 0xd4, 0x74, 0xa6, 0x3b, 0xcd, 0xcd, 0x6a,
+ 0x98, 0x10, 0x9e, 0x32, 0xad, 0x98, 0x0c, 0xe5, 0x34, 0x71, 0x4e, 0xc6,
+ 0x26, 0xda, 0xd7, 0xac, 0xd4, 0x31, 0x01, 0x41, 0x5e, 0x58, 0x17, 0xd2,
+};
+static const unsigned char kat2645_addinreseed[] = {0};
+static const unsigned char kat2645_addin0[] = {0};
+static const unsigned char kat2645_addin1[] = {0};
+static const unsigned char kat2645_retbits[] = {
+ 0x30, 0x96, 0xcf, 0x20, 0x13, 0x7e, 0xb6, 0xf9, 0x4d, 0x9d, 0x26, 0xa4,
+ 0x87, 0x1e, 0xdd, 0xf1, 0x02, 0x85, 0xc6, 0x98, 0x47, 0x76, 0x84, 0x71,
+ 0x05, 0xca, 0x92, 0x94, 0xaa, 0xfc, 0x68, 0x92, 0x5a, 0xd8, 0xbd, 0x7f,
+ 0x36, 0xbb, 0x68, 0xfe, 0x37, 0x14, 0x76, 0x11, 0x46, 0x49, 0xea, 0xd1,
+ 0x1b, 0x92, 0x6f, 0x9f, 0x0f, 0xc1, 0xd2, 0x1c, 0x74, 0x43, 0x42, 0xff,
+ 0x5c, 0x44, 0xc8, 0xe3,
+};
+static const struct drbg_kat_pr_false kat2645_t = {
+ 4, kat2645_entropyin, kat2645_nonce, kat2645_persstr,
+ kat2645_entropyinreseed, kat2645_addinreseed, kat2645_addin0,
+ kat2645_addin1, kat2645_retbits
+};
+static const struct drbg_kat kat2645 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2645_t
+};
+
+static const unsigned char kat2646_entropyin[] = {
+ 0x41, 0x33, 0xa0, 0xe6, 0xce, 0x83, 0x71, 0x25, 0xf4, 0x6f, 0x2a, 0x44,
+ 0xe0, 0x5c, 0x4f, 0x64, 0xd7, 0x68, 0x79, 0x15, 0x6e, 0xa1, 0x6a, 0x1d,
+ 0x16, 0xdb, 0x1d, 0x3e, 0xc4, 0x60, 0xcc, 0x53, 0x60, 0x9f, 0xa9, 0xe4,
+ 0xb3, 0x08, 0x1f, 0x9d, 0xde, 0x0b, 0x79, 0xf0, 0x0c, 0x93, 0xac, 0x5a,
+};
+static const unsigned char kat2646_nonce[] = {0};
+static const unsigned char kat2646_persstr[] = {0};
+static const unsigned char kat2646_entropyinreseed[] = {
+ 0x46, 0x13, 0xb2, 0x32, 0x7d, 0xc9, 0x05, 0x4f, 0x34, 0xfa, 0xf9, 0x33,
+ 0xd6, 0x2b, 0xf7, 0xb1, 0x2e, 0xc8, 0xb3, 0x46, 0x26, 0xc0, 0x7e, 0xf7,
+ 0x51, 0x2c, 0xec, 0xd8, 0xae, 0xdc, 0xbd, 0x40, 0x23, 0xf2, 0x6b, 0x85,
+ 0x9a, 0x94, 0x1c, 0x5a, 0xf7, 0x7e, 0xc1, 0xe2, 0xe0, 0x2a, 0x1d, 0x9c,
+};
+static const unsigned char kat2646_addinreseed[] = {0};
+static const unsigned char kat2646_addin0[] = {0};
+static const unsigned char kat2646_addin1[] = {0};
+static const unsigned char kat2646_retbits[] = {
+ 0xbe, 0x02, 0xe9, 0x4f, 0xd1, 0x8c, 0x48, 0x87, 0x41, 0xfd, 0x90, 0xb6,
+ 0x98, 0x01, 0x18, 0xdf, 0xfb, 0xa1, 0xcd, 0xa5, 0xbd, 0x25, 0xaa, 0x23,
+ 0xd4, 0x44, 0x14, 0x39, 0x22, 0x01, 0xc5, 0xa7, 0x8c, 0x3e, 0xa6, 0x82,
+ 0x52, 0xf9, 0x2a, 0xfa, 0xaf, 0x54, 0x0b, 0x29, 0x8d, 0x3f, 0x80, 0xa9,
+ 0x48, 0x18, 0xf1, 0xd1, 0xca, 0x84, 0xc2, 0xbe, 0x5f, 0x66, 0xa4, 0x61,
+ 0x91, 0xa7, 0x54, 0x8b,
+};
+static const struct drbg_kat_pr_false kat2646_t = {
+ 5, kat2646_entropyin, kat2646_nonce, kat2646_persstr,
+ kat2646_entropyinreseed, kat2646_addinreseed, kat2646_addin0,
+ kat2646_addin1, kat2646_retbits
+};
+static const struct drbg_kat kat2646 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2646_t
+};
+
+static const unsigned char kat2647_entropyin[] = {
+ 0xe3, 0x12, 0xfd, 0x67, 0xb5, 0x00, 0x9a, 0xb1, 0xc8, 0x96, 0xba, 0x8f,
+ 0x85, 0xd5, 0x3f, 0xb2, 0x95, 0x17, 0xed, 0x2a, 0x26, 0xd2, 0x0a, 0x4b,
+ 0x9d, 0x09, 0x50, 0x5e, 0xc0, 0x04, 0xbe, 0xf5, 0x73, 0x9c, 0xc9, 0x4e,
+ 0x7f, 0x36, 0x89, 0x89, 0xc6, 0x75, 0xee, 0xe1, 0xf4, 0x05, 0x01, 0xa2,
+};
+static const unsigned char kat2647_nonce[] = {0};
+static const unsigned char kat2647_persstr[] = {0};
+static const unsigned char kat2647_entropyinreseed[] = {
+ 0x17, 0x6e, 0xc1, 0x1c, 0x0d, 0x44, 0x62, 0xea, 0x26, 0xb1, 0xbd, 0xee,
+ 0x41, 0x20, 0x8e, 0x3f, 0xf3, 0xb4, 0x30, 0xde, 0x11, 0xf1, 0x25, 0x67,
+ 0xeb, 0xe9, 0x82, 0xc1, 0x6d, 0x70, 0x9f, 0x68, 0x1f, 0xcd, 0x9f, 0x5b,
+ 0xd5, 0x30, 0x9f, 0x3f, 0x2a, 0x9d, 0x80, 0xb3, 0xa4, 0x26, 0x92, 0x9a,
+};
+static const unsigned char kat2647_addinreseed[] = {0};
+static const unsigned char kat2647_addin0[] = {0};
+static const unsigned char kat2647_addin1[] = {0};
+static const unsigned char kat2647_retbits[] = {
+ 0x07, 0xcb, 0x9f, 0x51, 0xe3, 0x4b, 0xe3, 0x8f, 0xe1, 0xd1, 0xc1, 0x88,
+ 0x58, 0xee, 0x44, 0xdb, 0x22, 0x7c, 0x1e, 0x6a, 0x6c, 0x2f, 0x7d, 0x09,
+ 0xe9, 0x14, 0x3e, 0x87, 0xe9, 0xe0, 0x9d, 0xf0, 0xaf, 0x9a, 0x5c, 0xb7,
+ 0xa1, 0x83, 0xe5, 0xd2, 0x63, 0x59, 0x50, 0x9f, 0xe6, 0x19, 0xe5, 0x2e,
+ 0x59, 0xe3, 0x33, 0x3d, 0x36, 0x20, 0x37, 0x3d, 0x3a, 0xe5, 0xa0, 0x08,
+ 0xb5, 0x1e, 0xf7, 0x86,
+};
+static const struct drbg_kat_pr_false kat2647_t = {
+ 6, kat2647_entropyin, kat2647_nonce, kat2647_persstr,
+ kat2647_entropyinreseed, kat2647_addinreseed, kat2647_addin0,
+ kat2647_addin1, kat2647_retbits
+};
+static const struct drbg_kat kat2647 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2647_t
+};
+
+static const unsigned char kat2648_entropyin[] = {
+ 0x3e, 0xaf, 0x30, 0x11, 0x71, 0x35, 0xd9, 0x16, 0x7c, 0x82, 0x9e, 0x35,
+ 0xbd, 0x8d, 0xa2, 0x27, 0xa6, 0x30, 0x24, 0x71, 0xb6, 0x49, 0x38, 0x18,
+ 0x58, 0x08, 0x5e, 0x67, 0xc6, 0x54, 0x96, 0x05, 0x8d, 0xed, 0x0a, 0xb1,
+ 0x76, 0xa3, 0x8b, 0x38, 0x88, 0xf4, 0xe3, 0xc2, 0xe6, 0x52, 0x69, 0xdd,
+};
+static const unsigned char kat2648_nonce[] = {0};
+static const unsigned char kat2648_persstr[] = {0};
+static const unsigned char kat2648_entropyinreseed[] = {
+ 0xdf, 0x60, 0xa1, 0xb9, 0xfb, 0x2f, 0x85, 0x01, 0x75, 0x6e, 0xdd, 0x09,
+ 0xe4, 0x89, 0xfc, 0x98, 0xa6, 0x0e, 0xd0, 0x86, 0x46, 0xf5, 0xa2, 0xe0,
+ 0x18, 0xf5, 0x5b, 0x71, 0xc7, 0x6b, 0x9b, 0x77, 0x18, 0xac, 0x4a, 0xe6,
+ 0x1b, 0x41, 0x24, 0x15, 0x93, 0x82, 0x91, 0x08, 0xdd, 0xeb, 0x0e, 0xf0,
+};
+static const unsigned char kat2648_addinreseed[] = {0};
+static const unsigned char kat2648_addin0[] = {0};
+static const unsigned char kat2648_addin1[] = {0};
+static const unsigned char kat2648_retbits[] = {
+ 0x29, 0xc4, 0xd5, 0x40, 0x35, 0x4e, 0x97, 0xf5, 0x0f, 0x3f, 0xb1, 0xde,
+ 0x84, 0xee, 0xf4, 0x71, 0x19, 0x2c, 0xd7, 0x6a, 0x67, 0x0d, 0xe3, 0x41,
+ 0x76, 0xc6, 0x46, 0x55, 0x23, 0xff, 0x24, 0x9e, 0xd5, 0xea, 0xfe, 0x2c,
+ 0x09, 0xf0, 0x91, 0xf5, 0xed, 0x10, 0x1c, 0xf8, 0xa9, 0x71, 0xd7, 0x82,
+ 0xf1, 0x50, 0xa2, 0x64, 0x2e, 0xd2, 0x91, 0xe8, 0x50, 0x90, 0x6e, 0x29,
+ 0x32, 0x8d, 0x6b, 0x8a,
+};
+static const struct drbg_kat_pr_false kat2648_t = {
+ 7, kat2648_entropyin, kat2648_nonce, kat2648_persstr,
+ kat2648_entropyinreseed, kat2648_addinreseed, kat2648_addin0,
+ kat2648_addin1, kat2648_retbits
+};
+static const struct drbg_kat kat2648 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2648_t
+};
+
+static const unsigned char kat2649_entropyin[] = {
+ 0x99, 0xd5, 0x54, 0x3c, 0x19, 0x2c, 0x6a, 0x10, 0x69, 0xbf, 0x54, 0x8d,
+ 0x80, 0xd6, 0x78, 0xbc, 0x42, 0xc1, 0xf0, 0x20, 0xf0, 0xb2, 0x9a, 0x0c,
+ 0xee, 0xba, 0x42, 0x4c, 0x03, 0xf8, 0xa8, 0xaa, 0x38, 0xdf, 0x1c, 0x0f,
+ 0xe1, 0x00, 0xee, 0x4c, 0x1b, 0x0b, 0xc8, 0x70, 0xb4, 0xaf, 0xa3, 0xd2,
+};
+static const unsigned char kat2649_nonce[] = {0};
+static const unsigned char kat2649_persstr[] = {0};
+static const unsigned char kat2649_entropyinreseed[] = {
+ 0xa0, 0xfd, 0xdd, 0x29, 0xc7, 0x92, 0xf6, 0xf4, 0x11, 0xb5, 0xd5, 0x32,
+ 0xff, 0xf2, 0x56, 0x4d, 0x49, 0x2c, 0xa1, 0x5a, 0xc8, 0xb7, 0xfe, 0x1b,
+ 0x45, 0x75, 0xe9, 0xb5, 0x98, 0x06, 0x82, 0x36, 0x65, 0xad, 0x7a, 0xc4,
+ 0xe2, 0xad, 0xcd, 0x28, 0x03, 0xcc, 0xaa, 0xbe, 0x87, 0xab, 0x75, 0xed,
+};
+static const unsigned char kat2649_addinreseed[] = {0};
+static const unsigned char kat2649_addin0[] = {0};
+static const unsigned char kat2649_addin1[] = {0};
+static const unsigned char kat2649_retbits[] = {
+ 0x3d, 0x58, 0xe9, 0x8a, 0x1f, 0x4b, 0xed, 0xa5, 0x0f, 0x84, 0xf7, 0x73,
+ 0xc4, 0x05, 0xd1, 0x06, 0xb2, 0x8f, 0x4b, 0xe6, 0xda, 0x2a, 0x29, 0x42,
+ 0x09, 0x84, 0x03, 0x84, 0x3b, 0xff, 0xa3, 0x32, 0x3c, 0x53, 0x66, 0x1a,
+ 0x7f, 0x07, 0x2a, 0x02, 0x0c, 0x68, 0xf5, 0x5e, 0xa2, 0xb3, 0xa9, 0xcf,
+ 0x91, 0x57, 0xb7, 0xc4, 0xcd, 0xff, 0x5e, 0x64, 0x2e, 0xe9, 0xbe, 0x1f,
+ 0x43, 0x6f, 0x9c, 0x18,
+};
+static const struct drbg_kat_pr_false kat2649_t = {
+ 8, kat2649_entropyin, kat2649_nonce, kat2649_persstr,
+ kat2649_entropyinreseed, kat2649_addinreseed, kat2649_addin0,
+ kat2649_addin1, kat2649_retbits
+};
+static const struct drbg_kat kat2649 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2649_t
+};
+
+static const unsigned char kat2650_entropyin[] = {
+ 0x21, 0x51, 0xba, 0x6c, 0xf2, 0xed, 0x6a, 0x73, 0x66, 0x99, 0x1e, 0x51,
+ 0x64, 0x43, 0x16, 0x2b, 0x6e, 0xd4, 0xe7, 0xf8, 0xef, 0x2d, 0x6c, 0x81,
+ 0xec, 0x5e, 0x5f, 0xeb, 0x00, 0x61, 0xe2, 0x0c, 0xed, 0x65, 0xda, 0x27,
+ 0x84, 0x79, 0x56, 0x19, 0x4d, 0xc6, 0x17, 0x7b, 0x5e, 0x0b, 0xef, 0xa9,
+};
+static const unsigned char kat2650_nonce[] = {0};
+static const unsigned char kat2650_persstr[] = {0};
+static const unsigned char kat2650_entropyinreseed[] = {
+ 0x73, 0x41, 0x8e, 0xfa, 0xb1, 0xc6, 0x03, 0x91, 0x45, 0xdc, 0x6c, 0xe0,
+ 0x9b, 0x84, 0xab, 0xde, 0x4e, 0xf4, 0xf8, 0xea, 0xcc, 0xba, 0xc2, 0x50,
+ 0x21, 0x3b, 0xdd, 0x75, 0xe2, 0xa5, 0xe8, 0xb4, 0x2f, 0xfb, 0x13, 0x67,
+ 0xbd, 0x8d, 0x12, 0x81, 0xe3, 0xb0, 0x05, 0x16, 0x51, 0xf7, 0x8a, 0x05,
+};
+static const unsigned char kat2650_addinreseed[] = {0};
+static const unsigned char kat2650_addin0[] = {0};
+static const unsigned char kat2650_addin1[] = {0};
+static const unsigned char kat2650_retbits[] = {
+ 0x5b, 0x21, 0x9c, 0xb2, 0x85, 0xc8, 0x20, 0xf3, 0xbc, 0xe5, 0x2b, 0x9e,
+ 0xff, 0x15, 0xaf, 0xa0, 0x42, 0xde, 0x30, 0x36, 0xf1, 0xa5, 0x28, 0x96,
+ 0xea, 0xb3, 0x4e, 0x44, 0x76, 0xc2, 0x8c, 0x60, 0x12, 0x7c, 0xf8, 0xda,
+ 0xdd, 0xce, 0x08, 0x09, 0xef, 0xaf, 0xab, 0x03, 0xc9, 0x26, 0x9c, 0xd2,
+ 0x20, 0xa4, 0x9f, 0x79, 0x22, 0x0e, 0x14, 0xdb, 0x9d, 0x20, 0x83, 0x11,
+ 0xd2, 0xa2, 0x2a, 0x1b,
+};
+static const struct drbg_kat_pr_false kat2650_t = {
+ 9, kat2650_entropyin, kat2650_nonce, kat2650_persstr,
+ kat2650_entropyinreseed, kat2650_addinreseed, kat2650_addin0,
+ kat2650_addin1, kat2650_retbits
+};
+static const struct drbg_kat kat2650 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2650_t
+};
+
+static const unsigned char kat2651_entropyin[] = {
+ 0x7c, 0x73, 0x21, 0xb6, 0x9f, 0xde, 0xfd, 0xec, 0xe3, 0x2c, 0x45, 0xe4,
+ 0x7c, 0xce, 0x07, 0xa0, 0xd5, 0x99, 0xe8, 0x3e, 0xa8, 0xee, 0x57, 0x81,
+ 0xe2, 0xf2, 0xff, 0x34, 0x1f, 0x29, 0x2c, 0x0b, 0xdb, 0x84, 0x8e, 0x5a,
+ 0xb3, 0x79, 0x77, 0x16, 0x39, 0xe8, 0x11, 0xfe, 0xd4, 0x5f, 0x63, 0xd7,
+};
+static const unsigned char kat2651_nonce[] = {0};
+static const unsigned char kat2651_persstr[] = {0};
+static const unsigned char kat2651_entropyinreseed[] = {
+ 0x4b, 0x04, 0x65, 0x2d, 0x3d, 0x05, 0x15, 0xb3, 0x05, 0xf4, 0xda, 0x34,
+ 0x67, 0x54, 0xc0, 0xd3, 0x98, 0xc8, 0xcf, 0xef, 0xe8, 0xe5, 0xc1, 0xed,
+ 0xac, 0xb7, 0x9c, 0xb8, 0x39, 0x60, 0x18, 0xbd, 0xa1, 0x2a, 0xd7, 0xd4,
+ 0x2b, 0xf8, 0x6e, 0x80, 0x11, 0x59, 0xbb, 0x62, 0xc3, 0x4f, 0xff, 0x68,
+};
+static const unsigned char kat2651_addinreseed[] = {0};
+static const unsigned char kat2651_addin0[] = {0};
+static const unsigned char kat2651_addin1[] = {0};
+static const unsigned char kat2651_retbits[] = {
+ 0x37, 0x9c, 0x12, 0xdc, 0x2c, 0x8a, 0x88, 0x4c, 0x6f, 0x40, 0xdf, 0x53,
+ 0x53, 0x04, 0x7d, 0x74, 0xef, 0xbd, 0x9c, 0x62, 0x67, 0x95, 0xb8, 0x62,
+ 0x56, 0xab, 0xec, 0x4a, 0x6f, 0x42, 0xba, 0x26, 0x52, 0x9f, 0x19, 0xe4,
+ 0xb0, 0x43, 0xf5, 0x37, 0x76, 0x18, 0x0c, 0x7a, 0xb1, 0x6a, 0x38, 0x17,
+ 0xb4, 0xa5, 0x0c, 0x09, 0xbb, 0x33, 0x55, 0x23, 0x47, 0x86, 0xe7, 0x14,
+ 0xed, 0xb9, 0xe2, 0xb4,
+};
+static const struct drbg_kat_pr_false kat2651_t = {
+ 10, kat2651_entropyin, kat2651_nonce, kat2651_persstr,
+ kat2651_entropyinreseed, kat2651_addinreseed, kat2651_addin0,
+ kat2651_addin1, kat2651_retbits
+};
+static const struct drbg_kat kat2651 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2651_t
+};
+
+static const unsigned char kat2652_entropyin[] = {
+ 0x3a, 0x56, 0x32, 0x9b, 0x07, 0xdf, 0xfb, 0x8b, 0xc7, 0x76, 0x1c, 0x0c,
+ 0x2b, 0x4e, 0xc4, 0xec, 0x3b, 0x7e, 0xd2, 0x51, 0x3f, 0x0c, 0xc3, 0xd9,
+ 0xbe, 0x3e, 0xb9, 0xa1, 0x53, 0xe8, 0xe1, 0x60, 0x5d, 0x93, 0x92, 0xdb,
+ 0xb9, 0x51, 0xe4, 0xb0, 0x98, 0x9e, 0xf4, 0x73, 0x30, 0x1f, 0x6f, 0x57,
+};
+static const unsigned char kat2652_nonce[] = {0};
+static const unsigned char kat2652_persstr[] = {0};
+static const unsigned char kat2652_entropyinreseed[] = {
+ 0xff, 0x6e, 0xfb, 0x9b, 0x94, 0x67, 0x48, 0xaf, 0x09, 0x92, 0xbd, 0xc3,
+ 0x8e, 0xeb, 0x15, 0xd4, 0x99, 0x1b, 0xb6, 0x10, 0x69, 0x2e, 0x1f, 0xe5,
+ 0x3f, 0xf8, 0x28, 0x40, 0x59, 0x24, 0xa5, 0x44, 0xee, 0x0e, 0x4d, 0xa7,
+ 0x0a, 0xa1, 0xd0, 0xae, 0x55, 0xe7, 0x92, 0x5a, 0x58, 0xcf, 0x55, 0x97,
+};
+static const unsigned char kat2652_addinreseed[] = {0};
+static const unsigned char kat2652_addin0[] = {0};
+static const unsigned char kat2652_addin1[] = {0};
+static const unsigned char kat2652_retbits[] = {
+ 0x9f, 0x32, 0xe4, 0x03, 0x91, 0x21, 0x78, 0x33, 0x17, 0x6c, 0xa7, 0x68,
+ 0xbe, 0xed, 0xd2, 0x83, 0x98, 0x92, 0xc6, 0xfc, 0x17, 0xde, 0xc5, 0xc2,
+ 0x50, 0xf0, 0x82, 0x0c, 0x57, 0x6e, 0x4e, 0xd6, 0x15, 0x72, 0x96, 0x53,
+ 0x51, 0x5a, 0xe1, 0x32, 0x92, 0xa2, 0xe4, 0xae, 0xda, 0xa2, 0xdf, 0x74,
+ 0xc6, 0x53, 0x5d, 0x8c, 0x62, 0x5d, 0xd1, 0xca, 0xb4, 0x79, 0xd3, 0xc5,
+ 0xae, 0x7b, 0xf9, 0x55,
+};
+static const struct drbg_kat_pr_false kat2652_t = {
+ 11, kat2652_entropyin, kat2652_nonce, kat2652_persstr,
+ kat2652_entropyinreseed, kat2652_addinreseed, kat2652_addin0,
+ kat2652_addin1, kat2652_retbits
+};
+static const struct drbg_kat kat2652 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2652_t
+};
+
+static const unsigned char kat2653_entropyin[] = {
+ 0xd5, 0x50, 0xf4, 0x8a, 0xf4, 0x36, 0xae, 0x42, 0xea, 0x48, 0xa8, 0xcb,
+ 0x0c, 0xd6, 0x15, 0xbe, 0x8d, 0xb5, 0x16, 0x91, 0xb3, 0x65, 0xef, 0x20,
+ 0xed, 0x82, 0x6b, 0x28, 0x56, 0x1f, 0xba, 0xcc, 0x9d, 0xeb, 0x28, 0xcd,
+ 0x3d, 0x83, 0x65, 0x50, 0x33, 0x06, 0x89, 0x48, 0xc5, 0x56, 0x83, 0xda,
+};
+static const unsigned char kat2653_nonce[] = {0};
+static const unsigned char kat2653_persstr[] = {0};
+static const unsigned char kat2653_entropyinreseed[] = {
+ 0x76, 0xea, 0x2e, 0x73, 0x2f, 0x77, 0xb3, 0x37, 0xdd, 0xd4, 0x02, 0xe3,
+ 0x67, 0xc1, 0x58, 0xda, 0xcc, 0x34, 0x33, 0xfe, 0xb4, 0x0d, 0x7b, 0x43,
+ 0x76, 0xfb, 0x8d, 0xc4, 0x49, 0x89, 0x13, 0x36, 0xb0, 0x08, 0x41, 0x58,
+ 0x0e, 0xa1, 0x89, 0x58, 0x3a, 0xda, 0x95, 0xce, 0xf7, 0x83, 0xd5, 0x40,
+};
+static const unsigned char kat2653_addinreseed[] = {0};
+static const unsigned char kat2653_addin0[] = {0};
+static const unsigned char kat2653_addin1[] = {0};
+static const unsigned char kat2653_retbits[] = {
+ 0x84, 0x33, 0xb2, 0xac, 0x45, 0xda, 0x6f, 0xdc, 0xbe, 0xaf, 0x3e, 0x6f,
+ 0x76, 0xe6, 0x6b, 0xeb, 0x5b, 0x90, 0xa8, 0x9a, 0x9c, 0xb1, 0x97, 0xcf,
+ 0xbe, 0x40, 0x5e, 0xd5, 0x3b, 0x1d, 0xd5, 0x1a, 0x42, 0xcf, 0xc9, 0xae,
+ 0xc5, 0xfe, 0x7c, 0xf7, 0x78, 0xf8, 0x80, 0x31, 0xfb, 0x7b, 0x15, 0xb0,
+ 0x87, 0x4d, 0x4d, 0x1e, 0xa8, 0x7e, 0xf3, 0x89, 0x58, 0x48, 0x72, 0x1b,
+ 0x34, 0xfb, 0x1a, 0x35,
+};
+static const struct drbg_kat_pr_false kat2653_t = {
+ 12, kat2653_entropyin, kat2653_nonce, kat2653_persstr,
+ kat2653_entropyinreseed, kat2653_addinreseed, kat2653_addin0,
+ kat2653_addin1, kat2653_retbits
+};
+static const struct drbg_kat kat2653 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2653_t
+};
+
+static const unsigned char kat2654_entropyin[] = {
+ 0xce, 0x61, 0x37, 0xf7, 0x20, 0xaf, 0xfd, 0x10, 0x63, 0x96, 0xd9, 0xb6,
+ 0x65, 0x40, 0x58, 0x0a, 0xe2, 0x16, 0xd5, 0xd7, 0xda, 0xb4, 0x8e, 0xd2,
+ 0x72, 0x9c, 0xdb, 0x3e, 0x58, 0x7c, 0x7d, 0x8d, 0xa1, 0x3c, 0xe3, 0x9e,
+ 0xa8, 0xd9, 0xd8, 0xc2, 0x22, 0x20, 0xa9, 0x6b, 0x74, 0xe7, 0xee, 0x9d,
+};
+static const unsigned char kat2654_nonce[] = {0};
+static const unsigned char kat2654_persstr[] = {0};
+static const unsigned char kat2654_entropyinreseed[] = {
+ 0xaf, 0x9f, 0x12, 0xfd, 0xde, 0xef, 0x00, 0x1b, 0x08, 0xa5, 0x99, 0x3f,
+ 0x62, 0xda, 0x5e, 0x7c, 0x3a, 0xff, 0x23, 0xf8, 0x82, 0xae, 0x87, 0x4b,
+ 0x9f, 0x66, 0xf2, 0x8e, 0xca, 0x11, 0x06, 0xe6, 0x38, 0x6d, 0xd8, 0x2f,
+ 0x07, 0xae, 0x1f, 0xb6, 0x86, 0x8f, 0x18, 0x6e, 0x2e, 0xc4, 0xf4, 0x49,
+};
+static const unsigned char kat2654_addinreseed[] = {0};
+static const unsigned char kat2654_addin0[] = {0};
+static const unsigned char kat2654_addin1[] = {0};
+static const unsigned char kat2654_retbits[] = {
+ 0x21, 0x9f, 0xc1, 0x60, 0xdb, 0xc1, 0x36, 0xcd, 0xc9, 0xa7, 0xc3, 0x40,
+ 0x7e, 0xaf, 0xde, 0x46, 0x39, 0x60, 0x2c, 0xc5, 0x81, 0x01, 0xc5, 0x12,
+ 0xdf, 0xbd, 0x85, 0xcc, 0x26, 0xb6, 0x1f, 0xc9, 0xa9, 0x4c, 0xdf, 0x76,
+ 0xf1, 0x5a, 0x1d, 0xe7, 0xa4, 0x6e, 0x36, 0xab, 0x64, 0xac, 0xa3, 0xee,
+ 0xae, 0x36, 0xac, 0xd6, 0xe3, 0xd0, 0xb3, 0xfe, 0x59, 0xb7, 0x59, 0x58,
+ 0xb3, 0xed, 0xdd, 0x24,
+};
+static const struct drbg_kat_pr_false kat2654_t = {
+ 13, kat2654_entropyin, kat2654_nonce, kat2654_persstr,
+ kat2654_entropyinreseed, kat2654_addinreseed, kat2654_addin0,
+ kat2654_addin1, kat2654_retbits
+};
+static const struct drbg_kat kat2654 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2654_t
+};
+
+static const unsigned char kat2655_entropyin[] = {
+ 0x1a, 0xcc, 0xff, 0x5a, 0x19, 0x86, 0x11, 0x64, 0xc5, 0xd2, 0xcf, 0x54,
+ 0x2c, 0xf4, 0x1a, 0x78, 0x9f, 0x14, 0x3c, 0x79, 0x56, 0x51, 0x8a, 0xe1,
+ 0x58, 0xd4, 0x44, 0x9f, 0xf0, 0xc2, 0x57, 0xa0, 0x09, 0x66, 0xfa, 0xa8,
+ 0x62, 0xcc, 0xbb, 0x36, 0x3b, 0xcf, 0x4a, 0xeb, 0x31, 0x08, 0x91, 0x34,
+};
+static const unsigned char kat2655_nonce[] = {0};
+static const unsigned char kat2655_persstr[] = {0};
+static const unsigned char kat2655_entropyinreseed[] = {
+ 0xf2, 0xfa, 0x58, 0x20, 0x97, 0x59, 0xd8, 0x4b, 0xf3, 0x8a, 0x16, 0x56,
+ 0xba, 0xe6, 0x55, 0x66, 0x97, 0x67, 0xa9, 0x02, 0xad, 0xe2, 0x2a, 0x83,
+ 0x0d, 0xf5, 0x6b, 0x32, 0xef, 0x9e, 0x1c, 0x99, 0x23, 0x35, 0xeb, 0x4c,
+ 0xb2, 0x7e, 0xeb, 0x14, 0x2b, 0xfd, 0x21, 0xb5, 0xd3, 0x14, 0x51, 0xde,
+};
+static const unsigned char kat2655_addinreseed[] = {0};
+static const unsigned char kat2655_addin0[] = {0};
+static const unsigned char kat2655_addin1[] = {0};
+static const unsigned char kat2655_retbits[] = {
+ 0xf2, 0x14, 0xb4, 0x05, 0x5d, 0x18, 0x2c, 0xb2, 0x58, 0xd9, 0xe9, 0xb6,
+ 0x12, 0x51, 0xbe, 0xbc, 0x9b, 0xf0, 0x90, 0xdb, 0x66, 0x2c, 0x4e, 0x36,
+ 0x02, 0x3c, 0xc1, 0x56, 0x96, 0x4f, 0xbb, 0xe1, 0xce, 0xdf, 0x69, 0x1c,
+ 0xd0, 0xc3, 0xd7, 0xdb, 0x42, 0x62, 0xfb, 0x65, 0xa5, 0xd3, 0x4b, 0x94,
+ 0x2f, 0x90, 0x9b, 0x0f, 0x31, 0xfc, 0x18, 0x00, 0x97, 0x66, 0x41, 0x35,
+ 0x23, 0xdc, 0xaf, 0x40,
+};
+static const struct drbg_kat_pr_false kat2655_t = {
+ 14, kat2655_entropyin, kat2655_nonce, kat2655_persstr,
+ kat2655_entropyinreseed, kat2655_addinreseed, kat2655_addin0,
+ kat2655_addin1, kat2655_retbits
+};
+static const struct drbg_kat kat2655 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2655_t
+};
+
+static const unsigned char kat2656_entropyin[] = {
+ 0x99, 0x90, 0x31, 0x65, 0x90, 0x3f, 0xea, 0x49, 0xc2, 0xdb, 0x26, 0xed,
+ 0x67, 0x5e, 0x44, 0xcc, 0x14, 0xcb, 0x2c, 0x1f, 0x28, 0xb8, 0x36, 0xb2,
+ 0x03, 0x24, 0x0b, 0x02, 0x77, 0x1e, 0x83, 0x11, 0x46, 0xff, 0xc4, 0x33,
+ 0x53, 0x73, 0xbb, 0x34, 0x46, 0x88, 0xc5, 0xc9, 0x50, 0x67, 0x02, 0x91,
+};
+static const unsigned char kat2656_nonce[] = {0};
+static const unsigned char kat2656_persstr[] = {0};
+static const unsigned char kat2656_entropyinreseed[] = {
+ 0xb4, 0xee, 0x99, 0xfa, 0x9e, 0x0e, 0xdd, 0xaf, 0x4a, 0x36, 0x12, 0x01,
+ 0x3c, 0xd6, 0x36, 0xc4, 0xaf, 0x69, 0x17, 0x7b, 0x43, 0xee, 0xbb, 0x3c,
+ 0x58, 0xa3, 0x05, 0xb9, 0x97, 0x9b, 0x68, 0xb5, 0xcc, 0x82, 0x05, 0x04,
+ 0xf6, 0xc0, 0x29, 0xaa, 0xd7, 0x8a, 0x5d, 0x29, 0xc6, 0x6e, 0x84, 0xa0,
+};
+static const unsigned char kat2656_addinreseed[] = {
+ 0x2d, 0x8c, 0x5c, 0x28, 0xb0, 0x56, 0x96, 0xe7, 0x47, 0x74, 0xeb, 0x69,
+ 0xa1, 0x0f, 0x01, 0xc5, 0xfa, 0xbc, 0x62, 0x69, 0x1d, 0xdf, 0x78, 0x48,
+ 0xa8, 0x00, 0x4b, 0xb5, 0xee, 0xb4, 0xd2, 0xc5, 0xfe, 0xbe, 0x1a, 0xa0,
+ 0x1f, 0x4d, 0x55, 0x7b, 0x23, 0xd7, 0xe9, 0xa0, 0xe4, 0xe9, 0x06, 0x55,
+};
+static const unsigned char kat2656_addin0[] = {
+ 0x0d, 0xc9, 0xcd, 0xe4, 0x2a, 0xc6, 0xe8, 0x56, 0xf0, 0x1a, 0x55, 0xf2,
+ 0x19, 0xc6, 0x14, 0xde, 0x90, 0xc6, 0x59, 0x26, 0x09, 0x48, 0xdb, 0x50,
+ 0x53, 0xd4, 0x14, 0xba, 0xb0, 0xec, 0x2e, 0x13, 0xe9, 0x95, 0x12, 0x0c,
+ 0x3e, 0xb5, 0xaa, 0xfc, 0x25, 0xdc, 0x4b, 0xdc, 0xef, 0x8a, 0xce, 0x24,
+};
+static const unsigned char kat2656_addin1[] = {
+ 0x71, 0x1b, 0xe6, 0xc0, 0x35, 0x01, 0x31, 0x89, 0xf3, 0x62, 0x21, 0x18,
+ 0x89, 0x24, 0x8c, 0xa8, 0xa3, 0x26, 0x8e, 0x63, 0xa7, 0xeb, 0x26, 0x83,
+ 0x6d, 0x91, 0x58, 0x10, 0xa6, 0x80, 0xac, 0x4a, 0x33, 0xcd, 0x11, 0x80,
+ 0x81, 0x1a, 0x31, 0xa0, 0xf4, 0x4f, 0x08, 0xdb, 0x3d, 0xd6, 0x4f, 0x91,
+};
+static const unsigned char kat2656_retbits[] = {
+ 0x11, 0xc7, 0xa0, 0x32, 0x6e, 0xa7, 0x37, 0xba, 0xa7, 0xa9, 0x93, 0xd5,
+ 0x10, 0xfa, 0xfe, 0xe5, 0x37, 0x4e, 0x7b, 0xbe, 0x17, 0xef, 0x0e, 0x3e,
+ 0x29, 0xf5, 0x0f, 0xa6, 0x8a, 0xac, 0x21, 0x24, 0xb0, 0x17, 0xd4, 0x49,
+ 0x76, 0x84, 0x91, 0xca, 0xc0, 0x6d, 0x13, 0x6d, 0x69, 0x1a, 0x4e, 0x80,
+ 0x78, 0x57, 0x39, 0xf9, 0xaa, 0xed, 0xf3, 0x11, 0xbb, 0xa7, 0x52, 0xa3,
+ 0x26, 0x8c, 0xc5, 0x31,
+};
+static const struct drbg_kat_pr_false kat2656_t = {
+ 0, kat2656_entropyin, kat2656_nonce, kat2656_persstr,
+ kat2656_entropyinreseed, kat2656_addinreseed, kat2656_addin0,
+ kat2656_addin1, kat2656_retbits
+};
+static const struct drbg_kat kat2656 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2656_t
+};
+
+static const unsigned char kat2657_entropyin[] = {
+ 0xf9, 0x63, 0x09, 0x65, 0x40, 0xd0, 0x02, 0x3d, 0x67, 0x03, 0xe1, 0x82,
+ 0x48, 0x75, 0x5a, 0xd1, 0x6a, 0xea, 0x91, 0x85, 0x2a, 0x2d, 0xb0, 0xdd,
+ 0x0f, 0x6a, 0x41, 0x4d, 0x2a, 0x58, 0x22, 0xf3, 0x22, 0x4a, 0xc8, 0xb1,
+ 0xd4, 0x7b, 0x01, 0xaa, 0xec, 0xc9, 0x3a, 0xe2, 0x99, 0x08, 0x1d, 0x7d,
+};
+static const unsigned char kat2657_nonce[] = {0};
+static const unsigned char kat2657_persstr[] = {0};
+static const unsigned char kat2657_entropyinreseed[] = {
+ 0x39, 0x9e, 0xd5, 0x4b, 0xd8, 0x46, 0xde, 0x00, 0xd4, 0x2f, 0xb1, 0xf9,
+ 0x2d, 0x1a, 0xde, 0x93, 0xe8, 0x1e, 0x32, 0xcd, 0x6c, 0xe7, 0x38, 0x25,
+ 0xf0, 0xbf, 0x86, 0x17, 0x9d, 0xd4, 0x6f, 0xd7, 0x9b, 0xc8, 0xcb, 0xbd,
+ 0x3b, 0x88, 0x34, 0xe5, 0x8c, 0xc8, 0x66, 0x19, 0xe1, 0x9b, 0x08, 0xb4,
+};
+static const unsigned char kat2657_addinreseed[] = {
+ 0xee, 0x07, 0x3f, 0x9f, 0x61, 0x45, 0xd0, 0xa7, 0xc0, 0x9a, 0x5e, 0x4a,
+ 0x12, 0xd6, 0x5b, 0xae, 0xba, 0x36, 0x0b, 0xc9, 0xb5, 0xd7, 0xca, 0xdf,
+ 0x93, 0xe7, 0xd2, 0x45, 0x4d, 0xfd, 0xe5, 0x07, 0xaf, 0x37, 0xe4, 0x97,
+ 0x82, 0xcf, 0x85, 0x50, 0xdd, 0x3a, 0x54, 0x8e, 0x8c, 0xf9, 0x85, 0x63,
+};
+static const unsigned char kat2657_addin0[] = {
+ 0x6a, 0x42, 0xff, 0xe5, 0x6d, 0xac, 0x0b, 0x4d, 0xc5, 0xd8, 0x4b, 0x49,
+ 0x69, 0x88, 0x59, 0xb3, 0x64, 0x5c, 0x92, 0x01, 0x51, 0x56, 0x5b, 0xf2,
+ 0x9f, 0x56, 0xb6, 0x32, 0x22, 0x44, 0xbc, 0xaa, 0x7c, 0xd1, 0xeb, 0xb8,
+ 0xee, 0x99, 0x36, 0xd8, 0xee, 0x1d, 0x28, 0x0f, 0x54, 0x7a, 0xe2, 0x45,
+};
+static const unsigned char kat2657_addin1[] = {
+ 0xd0, 0x57, 0xc4, 0x18, 0xa7, 0x58, 0xd9, 0x9a, 0x8e, 0xe8, 0x55, 0x09,
+ 0x3d, 0xa9, 0xbc, 0x17, 0x34, 0xa5, 0x16, 0x8a, 0x6d, 0xf9, 0xd9, 0xc9,
+ 0x92, 0x4e, 0x8b, 0xb4, 0x72, 0xb5, 0x94, 0x55, 0x63, 0xd8, 0x63, 0x50,
+ 0xdc, 0xf3, 0xe1, 0x1a, 0xeb, 0xcb, 0xd0, 0x6a, 0x22, 0xb9, 0xef, 0x78,
+};
+static const unsigned char kat2657_retbits[] = {
+ 0xa0, 0xcd, 0x72, 0xe6, 0x3f, 0x49, 0xce, 0x4c, 0x1d, 0x64, 0xe2, 0x1e,
+ 0x92, 0x54, 0x6a, 0xfc, 0xed, 0x2a, 0xf2, 0x68, 0x54, 0x9e, 0xf4, 0x8d,
+ 0x3c, 0xa8, 0x8a, 0xfe, 0x4d, 0x40, 0x97, 0xf9, 0x1a, 0x52, 0xec, 0xd0,
+ 0xe7, 0xad, 0x12, 0xec, 0x0a, 0x1f, 0x67, 0xdd, 0x8c, 0x53, 0x25, 0xb7,
+ 0x8e, 0xe5, 0x07, 0xc0, 0xa6, 0x3c, 0xf9, 0x0d, 0x64, 0xe9, 0xc4, 0x78,
+ 0x62, 0xac, 0xed, 0xf3,
+};
+static const struct drbg_kat_pr_false kat2657_t = {
+ 1, kat2657_entropyin, kat2657_nonce, kat2657_persstr,
+ kat2657_entropyinreseed, kat2657_addinreseed, kat2657_addin0,
+ kat2657_addin1, kat2657_retbits
+};
+static const struct drbg_kat kat2657 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2657_t
+};
+
+static const unsigned char kat2658_entropyin[] = {
+ 0x33, 0x3a, 0x02, 0x69, 0xeb, 0x0f, 0xb1, 0xd9, 0xd1, 0xe9, 0x2f, 0x55,
+ 0xde, 0x9e, 0x13, 0xcd, 0x7e, 0x24, 0xde, 0x64, 0xf5, 0xf2, 0x76, 0x38,
+ 0x2d, 0x3e, 0xb2, 0xff, 0x35, 0x6a, 0x66, 0x67, 0x9a, 0x9a, 0x75, 0xd2,
+ 0xda, 0x31, 0xd3, 0x9a, 0x94, 0x0a, 0x09, 0xcc, 0x85, 0xd9, 0xd5, 0x31,
+};
+static const unsigned char kat2658_nonce[] = {0};
+static const unsigned char kat2658_persstr[] = {0};
+static const unsigned char kat2658_entropyinreseed[] = {
+ 0xcb, 0xf5, 0x04, 0xcc, 0x47, 0x3c, 0x9a, 0x6e, 0x66, 0x49, 0x3b, 0x71,
+ 0xb9, 0x68, 0x4e, 0x8d, 0xf4, 0x58, 0xe6, 0x5d, 0x2c, 0xc6, 0x76, 0xe4,
+ 0xe6, 0xad, 0x43, 0xeb, 0x59, 0x17, 0x29, 0x32, 0xc0, 0x95, 0x6d, 0x06,
+ 0x23, 0x13, 0x4a, 0x6a, 0x3b, 0xba, 0x23, 0x90, 0x6e, 0xc9, 0xda, 0x0a,
+};
+static const unsigned char kat2658_addinreseed[] = {
+ 0xab, 0xc8, 0x6c, 0x71, 0xae, 0x05, 0x85, 0x82, 0x7f, 0xfe, 0x0d, 0x19,
+ 0xa9, 0xfe, 0x97, 0xf2, 0x3c, 0xdc, 0x4a, 0xfd, 0x67, 0x97, 0x8e, 0x55,
+ 0x3e, 0x06, 0x69, 0xd4, 0x63, 0x5c, 0xa1, 0xdf, 0x30, 0x25, 0x08, 0x43,
+ 0xfe, 0xfd, 0x4d, 0x12, 0x88, 0xf6, 0xfb, 0xc3, 0xbf, 0xe0, 0x4a, 0x72,
+};
+static const unsigned char kat2658_addin0[] = {
+ 0x15, 0xd1, 0x5f, 0xbe, 0x7c, 0x06, 0x0e, 0x68, 0x11, 0xbf, 0x47, 0xc2,
+ 0x1e, 0x93, 0x63, 0x9c, 0x00, 0xcd, 0xcc, 0x56, 0x2f, 0x4e, 0x02, 0xc8,
+ 0x8f, 0x7e, 0x34, 0x7e, 0xc1, 0x4a, 0x2c, 0x84, 0x10, 0xfd, 0xb2, 0xdd,
+ 0xc3, 0xdf, 0xa6, 0x2b, 0xa9, 0xed, 0x17, 0x58, 0xf1, 0x20, 0x17, 0xdf,
+};
+static const unsigned char kat2658_addin1[] = {
+ 0xff, 0xf3, 0x11, 0xea, 0x4c, 0x5c, 0xbd, 0x8c, 0xe5, 0x3c, 0x45, 0xfe,
+ 0x8d, 0x81, 0x06, 0xc2, 0x8e, 0xb0, 0x6d, 0x01, 0xec, 0x9d, 0x82, 0x45,
+ 0xc2, 0x9f, 0x95, 0xb5, 0x0b, 0x13, 0x08, 0x5a, 0x0e, 0xc2, 0x88, 0x03,
+ 0xd7, 0x33, 0xbd, 0x0d, 0x8a, 0x75, 0x19, 0x3e, 0x63, 0xe2, 0x1d, 0x5d,
+};
+static const unsigned char kat2658_retbits[] = {
+ 0xfc, 0xdb, 0x52, 0xbb, 0x6e, 0x2b, 0xa8, 0xd8, 0x96, 0x97, 0x3b, 0x92,
+ 0x84, 0xb3, 0x2a, 0xf6, 0x36, 0x4a, 0x34, 0xa2, 0xb8, 0x0b, 0x3e, 0x3c,
+ 0x76, 0x84, 0xc2, 0x00, 0xc9, 0xe0, 0xa0, 0x2f, 0x7b, 0xc6, 0xc3, 0xcd,
+ 0x32, 0xb1, 0x59, 0xdf, 0x9b, 0x98, 0xda, 0x07, 0xa1, 0x7b, 0xaa, 0xb9,
+ 0xb0, 0xb0, 0x7e, 0xab, 0x21, 0x45, 0x44, 0xd5, 0xc5, 0x62, 0xe4, 0x54,
+ 0xec, 0x64, 0x3d, 0xe1,
+};
+static const struct drbg_kat_pr_false kat2658_t = {
+ 2, kat2658_entropyin, kat2658_nonce, kat2658_persstr,
+ kat2658_entropyinreseed, kat2658_addinreseed, kat2658_addin0,
+ kat2658_addin1, kat2658_retbits
+};
+static const struct drbg_kat kat2658 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2658_t
+};
+
+static const unsigned char kat2659_entropyin[] = {
+ 0x86, 0xe4, 0xc3, 0x0c, 0x5a, 0x7d, 0xfc, 0xca, 0x86, 0xed, 0xa7, 0x72,
+ 0x39, 0x30, 0xab, 0x32, 0x72, 0x63, 0x5f, 0x0a, 0xd9, 0xe2, 0xfd, 0x70,
+ 0xa2, 0xd7, 0xa6, 0x9b, 0x6a, 0x07, 0xdc, 0x0c, 0xdd, 0xea, 0xbf, 0xfa,
+ 0x9c, 0x41, 0x11, 0x98, 0xe3, 0xcb, 0x75, 0x89, 0xcb, 0x29, 0xd3, 0xf2,
+};
+static const unsigned char kat2659_nonce[] = {0};
+static const unsigned char kat2659_persstr[] = {0};
+static const unsigned char kat2659_entropyinreseed[] = {
+ 0xe1, 0xaf, 0x1c, 0x42, 0xcd, 0x29, 0xdd, 0x00, 0x2e, 0x10, 0xe5, 0x83,
+ 0x9e, 0x8b, 0x67, 0x9d, 0x3c, 0x51, 0x92, 0xda, 0x5e, 0x1b, 0x65, 0x51,
+ 0x23, 0x13, 0x2f, 0xf1, 0xad, 0xe2, 0x2b, 0x35, 0x65, 0x1a, 0xc6, 0xdf,
+ 0x66, 0xfa, 0x14, 0xf3, 0x6e, 0x18, 0x32, 0xbe, 0x7a, 0x17, 0x68, 0x95,
+};
+static const unsigned char kat2659_addinreseed[] = {
+ 0x5f, 0x61, 0x90, 0x73, 0xfa, 0x2e, 0x98, 0xb9, 0xf0, 0x6b, 0xb4, 0x67,
+ 0x6b, 0xb9, 0x72, 0x37, 0x9c, 0xeb, 0x72, 0x7e, 0x1e, 0x87, 0x68, 0xef,
+ 0x09, 0xe5, 0x32, 0xcf, 0x3d, 0x8f, 0xed, 0x5c, 0xe9, 0x2a, 0x75, 0x28,
+ 0xeb, 0x55, 0xae, 0x55, 0x29, 0x59, 0xd7, 0x4f, 0x75, 0xdd, 0x03, 0x24,
+};
+static const unsigned char kat2659_addin0[] = {
+ 0x33, 0x0e, 0x31, 0x6b, 0xec, 0x49, 0x55, 0xd9, 0x07, 0xd7, 0xd7, 0xbf,
+ 0x2b, 0x71, 0x49, 0xf0, 0xaa, 0xf4, 0x28, 0x5e, 0xd1, 0xa2, 0xb7, 0xe3,
+ 0x87, 0x37, 0x6e, 0xa1, 0xa4, 0xe0, 0x85, 0x8c, 0x11, 0x4e, 0xc3, 0xdd,
+ 0xdd, 0xf7, 0xa1, 0xed, 0xd7, 0xc8, 0xa2, 0x9b, 0x1f, 0x12, 0xb9, 0x98,
+};
+static const unsigned char kat2659_addin1[] = {
+ 0x40, 0x59, 0x11, 0xcf, 0x7c, 0x67, 0x79, 0xe0, 0x2e, 0x47, 0x40, 0xfa,
+ 0x97, 0x37, 0xf1, 0x89, 0x37, 0x02, 0x92, 0x49, 0x4c, 0x80, 0x62, 0x1c,
+ 0xfa, 0xa9, 0xf7, 0xd1, 0x6d, 0x68, 0x21, 0x9e, 0x72, 0xd4, 0x74, 0xf8,
+ 0xd5, 0xa5, 0x4a, 0xa8, 0xea, 0x80, 0x20, 0xdf, 0xf9, 0xc3, 0x66, 0x50,
+};
+static const unsigned char kat2659_retbits[] = {
+ 0xe3, 0x59, 0xc3, 0xe2, 0x33, 0x15, 0xc9, 0xc1, 0xd6, 0x9a, 0xb2, 0xec,
+ 0x96, 0xec, 0x3c, 0x6c, 0x5a, 0xad, 0x86, 0x8e, 0x58, 0x70, 0x9e, 0x10,
+ 0x1b, 0x0f, 0xa0, 0x8c, 0x40, 0x41, 0x24, 0x8e, 0x4d, 0x53, 0x8d, 0x03,
+ 0x89, 0x93, 0x25, 0x0d, 0x39, 0x5d, 0x96, 0x51, 0x51, 0x35, 0x14, 0xfc,
+ 0xa5, 0x76, 0x0d, 0xcb, 0x99, 0x70, 0xdc, 0xe5, 0x3d, 0x2d, 0x1c, 0x27,
+ 0x12, 0xbc, 0x56, 0xd0,
+};
+static const struct drbg_kat_pr_false kat2659_t = {
+ 3, kat2659_entropyin, kat2659_nonce, kat2659_persstr,
+ kat2659_entropyinreseed, kat2659_addinreseed, kat2659_addin0,
+ kat2659_addin1, kat2659_retbits
+};
+static const struct drbg_kat kat2659 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2659_t
+};
+
+static const unsigned char kat2660_entropyin[] = {
+ 0xd8, 0xcc, 0x5d, 0x13, 0xba, 0xde, 0xdb, 0xdc, 0x2f, 0xd4, 0x18, 0x52,
+ 0x24, 0x7a, 0x9f, 0x28, 0x79, 0xb0, 0x10, 0x3b, 0x4a, 0x81, 0x86, 0xf0,
+ 0xa0, 0x8d, 0xa7, 0xd5, 0x54, 0x53, 0xb7, 0x48, 0x4f, 0x64, 0x2a, 0x9e,
+ 0x5a, 0x51, 0x82, 0x34, 0x05, 0x84, 0xd2, 0xca, 0x7c, 0xd5, 0xed, 0x10,
+};
+static const unsigned char kat2660_nonce[] = {0};
+static const unsigned char kat2660_persstr[] = {0};
+static const unsigned char kat2660_entropyinreseed[] = {
+ 0x35, 0x78, 0x8b, 0x83, 0x69, 0xfd, 0xc3, 0xdf, 0xd2, 0x06, 0xef, 0xb8,
+ 0x73, 0xb5, 0xc5, 0x21, 0x5f, 0x5b, 0x8e, 0xcb, 0x05, 0x41, 0xfc, 0x0a,
+ 0x0e, 0x02, 0x7e, 0x86, 0x8a, 0x91, 0x05, 0x3b, 0x5d, 0x58, 0xcc, 0x8c,
+ 0xa0, 0x75, 0x1e, 0x0c, 0x08, 0x93, 0xc8, 0x68, 0xe2, 0x32, 0x24, 0x71,
+};
+static const unsigned char kat2660_addinreseed[] = {
+ 0x6a, 0xfc, 0xdc, 0x76, 0x0f, 0xe6, 0x2b, 0x08, 0x0f, 0x14, 0x18, 0x86,
+ 0xb5, 0x16, 0x62, 0x39, 0x71, 0xf8, 0x01, 0x4e, 0xde, 0x86, 0xe5, 0x0d,
+ 0x62, 0xd3, 0x07, 0xa9, 0x0c, 0xf3, 0x51, 0x2d, 0xa5, 0xfe, 0xfd, 0x37,
+ 0xb3, 0x93, 0x2d, 0x3d, 0x9d, 0x86, 0xad, 0x0c, 0x03, 0x44, 0x7b, 0xe4,
+};
+static const unsigned char kat2660_addin0[] = {
+ 0x72, 0x10, 0x57, 0x02, 0xfb, 0xf1, 0xda, 0x4c, 0x10, 0xff, 0x08, 0x7b,
+ 0x02, 0xdb, 0x76, 0x48, 0x04, 0x96, 0x3f, 0xd9, 0x86, 0xde, 0x93, 0x3b,
+ 0x75, 0x7b, 0x8f, 0xe5, 0xa6, 0x01, 0x6e, 0x0f, 0x27, 0x00, 0x57, 0x39,
+ 0x25, 0xac, 0xed, 0x85, 0xc0, 0x9e, 0x2a, 0xd9, 0xf9, 0xf7, 0xb2, 0xc2,
+};
+static const unsigned char kat2660_addin1[] = {
+ 0x65, 0xf9, 0xa3, 0xfe, 0x4e, 0x19, 0x53, 0xb7, 0xd5, 0x38, 0xf6, 0xd6,
+ 0xca, 0x3c, 0x0a, 0x73, 0xbd, 0xa2, 0x27, 0x6f, 0xe8, 0xf8, 0x08, 0x60,
+ 0xc0, 0x7b, 0x7e, 0xd1, 0x39, 0xd7, 0x48, 0xc3, 0xc4, 0x5d, 0xb5, 0xd9,
+ 0x65, 0x98, 0xf7, 0x7f, 0xf8, 0x63, 0xa4, 0x39, 0x77, 0xba, 0x39, 0x0c,
+};
+static const unsigned char kat2660_retbits[] = {
+ 0x7c, 0x2b, 0x60, 0x0c, 0x3f, 0x55, 0x06, 0x71, 0x21, 0x5b, 0x03, 0xad,
+ 0x7a, 0xeb, 0xf7, 0x10, 0x86, 0xec, 0x59, 0xaa, 0x4f, 0x45, 0xcf, 0x6b,
+ 0x3b, 0xac, 0x9b, 0xba, 0x2e, 0x10, 0x8f, 0x80, 0x1f, 0x64, 0x78, 0xb0,
+ 0x98, 0xfc, 0xc4, 0xe0, 0x63, 0x45, 0x4c, 0xd3, 0xf6, 0x4a, 0x95, 0x1e,
+ 0xd7, 0x0f, 0x61, 0x98, 0x66, 0xc1, 0xa4, 0xe7, 0x0b, 0x5c, 0x47, 0x45,
+ 0x8c, 0x09, 0xe0, 0x83,
+};
+static const struct drbg_kat_pr_false kat2660_t = {
+ 4, kat2660_entropyin, kat2660_nonce, kat2660_persstr,
+ kat2660_entropyinreseed, kat2660_addinreseed, kat2660_addin0,
+ kat2660_addin1, kat2660_retbits
+};
+static const struct drbg_kat kat2660 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2660_t
+};
+
+static const unsigned char kat2661_entropyin[] = {
+ 0x07, 0xd1, 0x4a, 0x0d, 0x9f, 0xbc, 0x76, 0xa1, 0x55, 0x04, 0x7a, 0x93,
+ 0xbc, 0x0b, 0xb2, 0xb5, 0x78, 0xfa, 0x7d, 0xd7, 0x5c, 0xfe, 0x9a, 0x44,
+ 0xbb, 0x87, 0x09, 0xfe, 0x3c, 0xc2, 0x30, 0x2f, 0xdc, 0xc0, 0x6a, 0x9c,
+ 0x67, 0x51, 0xf4, 0x60, 0x2a, 0x3a, 0x49, 0x55, 0xc0, 0xf3, 0x8c, 0x7e,
+};
+static const unsigned char kat2661_nonce[] = {0};
+static const unsigned char kat2661_persstr[] = {0};
+static const unsigned char kat2661_entropyinreseed[] = {
+ 0x8b, 0xab, 0xab, 0x6b, 0x9f, 0x84, 0x29, 0xf5, 0x54, 0x15, 0x6d, 0xa3,
+ 0x90, 0x51, 0x22, 0xcb, 0x48, 0xc0, 0xb9, 0x01, 0xfb, 0x6e, 0xaa, 0xd8,
+ 0xdf, 0x77, 0x1e, 0x8d, 0x58, 0x3b, 0xa8, 0x85, 0xdf, 0xba, 0xd0, 0x2e,
+ 0x47, 0x52, 0x4b, 0x19, 0x81, 0x76, 0x85, 0x93, 0xbd, 0xe8, 0x82, 0x60,
+};
+static const unsigned char kat2661_addinreseed[] = {
+ 0xc1, 0x85, 0xc4, 0x5c, 0xb0, 0x7e, 0x8c, 0x8b, 0xa8, 0xeb, 0x31, 0xd3,
+ 0xbd, 0x48, 0xa7, 0xc8, 0x64, 0x13, 0x7c, 0x68, 0x92, 0x14, 0xc2, 0xfb,
+ 0x3b, 0x1d, 0x6d, 0x6a, 0xbc, 0xda, 0x84, 0xf2, 0x92, 0x2a, 0x86, 0x2a,
+ 0x09, 0x55, 0xe6, 0x76, 0x95, 0x39, 0x1d, 0x60, 0xd6, 0xf2, 0xd1, 0xbf,
+};
+static const unsigned char kat2661_addin0[] = {
+ 0x32, 0x6a, 0x5c, 0x9c, 0x4a, 0x1a, 0x2b, 0x6f, 0xdc, 0x36, 0x9f, 0xe2,
+ 0xa1, 0x71, 0xbf, 0x62, 0x5d, 0xc2, 0x6e, 0x23, 0xd1, 0xa3, 0x4f, 0xaa,
+ 0xcf, 0x59, 0xbd, 0x33, 0xbe, 0x98, 0xff, 0x7a, 0xc7, 0xf1, 0x6e, 0x48,
+ 0x5b, 0x6d, 0xa3, 0x14, 0x5e, 0xa4, 0xdb, 0x37, 0xee, 0x4f, 0xfe, 0xfa,
+};
+static const unsigned char kat2661_addin1[] = {
+ 0xde, 0x09, 0x6a, 0xd1, 0x3d, 0xcc, 0x1e, 0xe1, 0x44, 0x9c, 0x3a, 0x06,
+ 0x61, 0xed, 0xee, 0x02, 0x86, 0x03, 0x59, 0x0f, 0x08, 0x74, 0x74, 0x16,
+ 0x1a, 0x7a, 0xb8, 0xfc, 0xfa, 0xc8, 0x96, 0xa9, 0x24, 0xe1, 0x4b, 0x0a,
+ 0x57, 0xae, 0xac, 0x17, 0xfe, 0xd6, 0x76, 0xf4, 0xb9, 0xc7, 0x16, 0x8c,
+};
+static const unsigned char kat2661_retbits[] = {
+ 0x60, 0x91, 0x1e, 0x6e, 0x64, 0x55, 0xbf, 0x4d, 0x85, 0xa4, 0xf7, 0x63,
+ 0x78, 0x39, 0x0f, 0x6c, 0xd5, 0x37, 0xd7, 0xcc, 0xe8, 0x82, 0x28, 0xcf,
+ 0x34, 0xe4, 0xa4, 0x88, 0x9a, 0xdf, 0x62, 0xa9, 0xcc, 0x10, 0x70, 0xdf,
+ 0xc3, 0x9c, 0x25, 0x4e, 0x81, 0xa8, 0x55, 0x7b, 0xb2, 0xc3, 0x50, 0xfe,
+ 0x3f, 0x46, 0x21, 0x99, 0xe3, 0x77, 0xd3, 0x79, 0x6e, 0xd1, 0x39, 0x11,
+ 0x7b, 0x6b, 0x0f, 0x45,
+};
+static const struct drbg_kat_pr_false kat2661_t = {
+ 5, kat2661_entropyin, kat2661_nonce, kat2661_persstr,
+ kat2661_entropyinreseed, kat2661_addinreseed, kat2661_addin0,
+ kat2661_addin1, kat2661_retbits
+};
+static const struct drbg_kat kat2661 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2661_t
+};
+
+static const unsigned char kat2662_entropyin[] = {
+ 0xb3, 0x45, 0x8c, 0x6b, 0x38, 0xca, 0x70, 0xc4, 0x4f, 0xc6, 0xc6, 0x01,
+ 0xe0, 0x88, 0x86, 0x3f, 0xaf, 0xc9, 0x53, 0xc6, 0xb5, 0xd3, 0xee, 0x57,
+ 0xfb, 0x1a, 0x07, 0xf3, 0xf6, 0x5d, 0xd5, 0xe6, 0xdc, 0x19, 0xae, 0xd1,
+ 0x7a, 0xa5, 0x53, 0x09, 0x13, 0xac, 0xa5, 0x98, 0xb2, 0x6a, 0x40, 0xc0,
+};
+static const unsigned char kat2662_nonce[] = {0};
+static const unsigned char kat2662_persstr[] = {0};
+static const unsigned char kat2662_entropyinreseed[] = {
+ 0xfa, 0xa8, 0xd3, 0xfe, 0xab, 0xf9, 0x72, 0xe4, 0x82, 0xe5, 0xa0, 0xb3,
+ 0x82, 0x1c, 0x23, 0xba, 0x06, 0x7c, 0x45, 0x26, 0x7e, 0x37, 0x15, 0xa4,
+ 0xc1, 0x0f, 0x65, 0x71, 0x6a, 0x34, 0x80, 0x30, 0xd7, 0xfa, 0x56, 0x37,
+ 0xe9, 0xf0, 0x00, 0xb3, 0xe4, 0x7d, 0x78, 0x6c, 0x01, 0x3f, 0xc0, 0x35,
+};
+static const unsigned char kat2662_addinreseed[] = {
+ 0x90, 0x1e, 0xf8, 0x9e, 0xa3, 0x82, 0x03, 0xb8, 0x32, 0x49, 0xa3, 0x4a,
+ 0x1a, 0x8c, 0xbd, 0x0d, 0xa4, 0x77, 0x3c, 0xcd, 0x50, 0x3d, 0x60, 0xa3,
+ 0x95, 0xbe, 0x3a, 0x3d, 0xb1, 0x13, 0x61, 0x3e, 0x6c, 0x57, 0x1a, 0x49,
+ 0x96, 0x0a, 0x4e, 0x99, 0xd3, 0x02, 0xb6, 0xf2, 0x37, 0xf6, 0x4d, 0x54,
+};
+static const unsigned char kat2662_addin0[] = {
+ 0xf2, 0xf8, 0x76, 0x93, 0xd1, 0xf2, 0x8f, 0x95, 0xb0, 0xa6, 0x45, 0x9c,
+ 0x53, 0x8e, 0x82, 0xbe, 0x99, 0xa8, 0xce, 0xfe, 0x8a, 0x2c, 0x7c, 0xa0,
+ 0x37, 0x82, 0x20, 0x72, 0xe6, 0x36, 0x70, 0xdd, 0x14, 0x18, 0x73, 0xf3,
+ 0xdc, 0x9e, 0x30, 0x9c, 0x6e, 0xad, 0x40, 0x78, 0x3f, 0x46, 0x79, 0x4e,
+};
+static const unsigned char kat2662_addin1[] = {
+ 0x93, 0xcf, 0xef, 0xbb, 0x76, 0x24, 0xa1, 0x37, 0xcb, 0xd7, 0xb1, 0x77,
+ 0x91, 0x88, 0x23, 0x89, 0x3e, 0x77, 0x25, 0x1f, 0xc5, 0x66, 0x0a, 0x76,
+ 0xab, 0x0c, 0xfa, 0xa3, 0xb3, 0x40, 0xae, 0x82, 0x2a, 0x8a, 0x75, 0x36,
+ 0x50, 0x56, 0xf0, 0x6b, 0x0a, 0x7e, 0x76, 0xaf, 0xc3, 0x9f, 0x68, 0x19,
+};
+static const unsigned char kat2662_retbits[] = {
+ 0x5b, 0xbc, 0xde, 0xb5, 0xd7, 0xd1, 0xae, 0x19, 0xe4, 0xef, 0x78, 0x78,
+ 0xab, 0xd1, 0xca, 0x4f, 0x26, 0x41, 0xd4, 0x2c, 0x76, 0x5b, 0x94, 0xa7,
+ 0x68, 0x91, 0x72, 0xa4, 0xe9, 0x0b, 0xaa, 0xe4, 0x6e, 0xbc, 0xfa, 0x54,
+ 0x27, 0xa8, 0x82, 0xc1, 0x61, 0x4c, 0xab, 0x36, 0xf1, 0x86, 0xa9, 0x8d,
+ 0xd3, 0xa1, 0x5f, 0xeb, 0xc4, 0xb2, 0x3a, 0xdd, 0x95, 0x5f, 0x69, 0xdb,
+ 0xfd, 0x5e, 0x5d, 0x2e,
+};
+static const struct drbg_kat_pr_false kat2662_t = {
+ 6, kat2662_entropyin, kat2662_nonce, kat2662_persstr,
+ kat2662_entropyinreseed, kat2662_addinreseed, kat2662_addin0,
+ kat2662_addin1, kat2662_retbits
+};
+static const struct drbg_kat kat2662 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2662_t
+};
+
+static const unsigned char kat2663_entropyin[] = {
+ 0x6d, 0xbc, 0xf6, 0xf2, 0xf3, 0x99, 0x7e, 0xd5, 0x54, 0x71, 0xf7, 0x79,
+ 0x03, 0x99, 0x82, 0xbc, 0x84, 0xa1, 0xc0, 0x52, 0xfb, 0xf5, 0x88, 0x3d,
+ 0x6f, 0x62, 0xc0, 0xa6, 0x1d, 0xb1, 0x08, 0x38, 0x6e, 0x74, 0x75, 0x9d,
+ 0x72, 0x37, 0xbb, 0x0e, 0xfc, 0xa0, 0x30, 0xaa, 0xc7, 0x6b, 0xc7, 0xe6,
+};
+static const unsigned char kat2663_nonce[] = {0};
+static const unsigned char kat2663_persstr[] = {0};
+static const unsigned char kat2663_entropyinreseed[] = {
+ 0x1a, 0x16, 0x75, 0x3c, 0x19, 0x5f, 0xed, 0x27, 0xa1, 0xab, 0xbe, 0x06,
+ 0x7b, 0x2b, 0x22, 0xaf, 0xf4, 0xc4, 0x9a, 0xe7, 0x83, 0x2d, 0x18, 0xd0,
+ 0x1c, 0xef, 0x5e, 0xa5, 0xc7, 0xd5, 0x83, 0x30, 0x08, 0x03, 0x6f, 0x71,
+ 0xe9, 0xc7, 0x7c, 0x16, 0x29, 0xb6, 0xf6, 0x13, 0x70, 0xb5, 0x7f, 0x7b,
+};
+static const unsigned char kat2663_addinreseed[] = {
+ 0xec, 0x54, 0x39, 0x59, 0x31, 0xac, 0x0a, 0xea, 0x2a, 0x87, 0x39, 0xd4,
+ 0xc5, 0x1e, 0x33, 0xc8, 0x42, 0x59, 0x06, 0x00, 0x5c, 0x34, 0x1d, 0xb3,
+ 0x73, 0x24, 0x7e, 0x73, 0xb9, 0x68, 0xc2, 0xc7, 0x92, 0x57, 0xcf, 0x7a,
+ 0xc7, 0x43, 0x53, 0xc0, 0x0f, 0xd8, 0x1a, 0x80, 0xf4, 0xc9, 0x5b, 0x8c,
+};
+static const unsigned char kat2663_addin0[] = {
+ 0xdb, 0xd6, 0xbb, 0x55, 0x79, 0xa1, 0x0e, 0x39, 0x5b, 0x53, 0x44, 0x31,
+ 0xf3, 0xab, 0x7c, 0x80, 0x25, 0x52, 0x7b, 0xf9, 0x9e, 0x4f, 0x7c, 0x16,
+ 0x2d, 0x68, 0x1f, 0x8d, 0x35, 0xa5, 0x6f, 0x6a, 0x03, 0x72, 0x9f, 0x07,
+ 0xab, 0x43, 0x89, 0x7a, 0xd0, 0xe8, 0x01, 0x46, 0x04, 0x4b, 0x16, 0x14,
+};
+static const unsigned char kat2663_addin1[] = {
+ 0x5d, 0x35, 0x74, 0x2c, 0x25, 0x62, 0x0b, 0xb7, 0x95, 0xea, 0xe4, 0x11,
+ 0x78, 0xd7, 0xfc, 0x86, 0xd9, 0xcb, 0xe0, 0x50, 0xea, 0x70, 0x25, 0x73,
+ 0xae, 0x6a, 0xdb, 0x61, 0xe1, 0x6c, 0x41, 0x1b, 0x74, 0x45, 0x54, 0x8d,
+ 0xc5, 0x35, 0xd5, 0x73, 0x71, 0xbb, 0x11, 0xe2, 0xcd, 0xd5, 0x95, 0x97,
+};
+static const unsigned char kat2663_retbits[] = {
+ 0xba, 0x39, 0x05, 0xbf, 0xdd, 0xca, 0xbf, 0x6d, 0xae, 0x31, 0x1d, 0x1f,
+ 0xc1, 0x9f, 0xff, 0x1f, 0x6f, 0xc1, 0xce, 0x77, 0x9e, 0x38, 0xf8, 0x64,
+ 0xb7, 0xcc, 0xd2, 0xae, 0xb1, 0xb3, 0xd6, 0xec, 0x18, 0x45, 0x30, 0x5c,
+ 0x29, 0xd3, 0x9b, 0x87, 0x36, 0xb3, 0x97, 0x72, 0x77, 0xec, 0xaf, 0x57,
+ 0x35, 0xd0, 0xe4, 0xac, 0xef, 0xcc, 0xf7, 0x77, 0x8a, 0xc3, 0x54, 0x2a,
+ 0xf8, 0x15, 0xfd, 0x41,
+};
+static const struct drbg_kat_pr_false kat2663_t = {
+ 7, kat2663_entropyin, kat2663_nonce, kat2663_persstr,
+ kat2663_entropyinreseed, kat2663_addinreseed, kat2663_addin0,
+ kat2663_addin1, kat2663_retbits
+};
+static const struct drbg_kat kat2663 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2663_t
+};
+
+static const unsigned char kat2664_entropyin[] = {
+ 0x3a, 0x9e, 0x80, 0x99, 0x00, 0x7c, 0x67, 0xf6, 0xe5, 0xf9, 0x85, 0x25,
+ 0xcc, 0x42, 0x95, 0xa6, 0x8c, 0x5d, 0x51, 0x35, 0xd0, 0x1f, 0x5f, 0x66,
+ 0x30, 0x5c, 0x70, 0x48, 0xca, 0x02, 0x52, 0x5c, 0xaa, 0x3f, 0x79, 0x0b,
+ 0x2d, 0x12, 0xa8, 0x52, 0x0e, 0x99, 0x63, 0xa9, 0xcd, 0xd5, 0x97, 0xa8,
+};
+static const unsigned char kat2664_nonce[] = {0};
+static const unsigned char kat2664_persstr[] = {0};
+static const unsigned char kat2664_entropyinreseed[] = {
+ 0x15, 0x99, 0x3d, 0xba, 0x97, 0x75, 0xdb, 0x8a, 0x5b, 0xf7, 0x97, 0x78,
+ 0xa3, 0x16, 0xf2, 0x91, 0x0d, 0x4d, 0xc0, 0xbe, 0x59, 0xc3, 0xb2, 0x1c,
+ 0x65, 0x0e, 0x3a, 0xa8, 0x9c, 0x8c, 0x89, 0xb3, 0x3f, 0xc6, 0x9e, 0x9e,
+ 0x5d, 0x64, 0x2e, 0x7f, 0xee, 0x16, 0xd6, 0x1b, 0x69, 0x1d, 0xe2, 0xbf,
+};
+static const unsigned char kat2664_addinreseed[] = {
+ 0x94, 0x61, 0x21, 0xba, 0xe2, 0x7e, 0x58, 0x04, 0xda, 0xeb, 0xa0, 0xd7,
+ 0xdc, 0x7a, 0xe0, 0xc1, 0xc3, 0x97, 0xbf, 0xab, 0x10, 0x6e, 0x13, 0xb8,
+ 0xb7, 0xc5, 0x46, 0x2b, 0x54, 0x0d, 0x14, 0x71, 0x19, 0xaf, 0x5b, 0x7c,
+ 0x4f, 0x9c, 0x19, 0x81, 0x61, 0xe5, 0xaa, 0x9b, 0xe3, 0x4e, 0x2d, 0x28,
+};
+static const unsigned char kat2664_addin0[] = {
+ 0xe9, 0x79, 0x94, 0x21, 0xe7, 0x5b, 0xae, 0x70, 0x86, 0x73, 0x1a, 0x21,
+ 0x24, 0x2d, 0xc1, 0x01, 0xc9, 0x3b, 0x76, 0x8f, 0xc7, 0x47, 0x73, 0x4a,
+ 0x35, 0x74, 0x54, 0xfc, 0x0f, 0x7c, 0x08, 0x2c, 0xfd, 0xb7, 0x9b, 0x8b,
+ 0xbc, 0xea, 0x2d, 0x11, 0x22, 0xd8, 0x93, 0x16, 0xa7, 0xbf, 0xbd, 0x3d,
+};
+static const unsigned char kat2664_addin1[] = {
+ 0xca, 0xa0, 0x4f, 0x94, 0xb4, 0xb9, 0xd6, 0x94, 0xe2, 0xc4, 0xbf, 0xa1,
+ 0xe8, 0xe7, 0x08, 0xb9, 0xc0, 0x0d, 0x9c, 0x3d, 0x64, 0x52, 0x43, 0xac,
+ 0xfc, 0xb8, 0x79, 0xd2, 0xe2, 0xba, 0x72, 0x3d, 0x9e, 0x48, 0x90, 0x87,
+ 0x38, 0x11, 0x4e, 0xab, 0x7d, 0x15, 0xf8, 0xcf, 0x36, 0xb0, 0x43, 0xae,
+};
+static const unsigned char kat2664_retbits[] = {
+ 0x9b, 0xd5, 0x0f, 0x3c, 0x53, 0x84, 0xeb, 0x28, 0xd9, 0x31, 0xf0, 0x3a,
+ 0x64, 0xeb, 0x97, 0xef, 0x14, 0x0e, 0x1e, 0x81, 0xf4, 0xc1, 0xd9, 0xc9,
+ 0x10, 0xcd, 0x7d, 0x79, 0xa4, 0x04, 0x94, 0xe1, 0xfc, 0xc5, 0x3d, 0x82,
+ 0xcd, 0x32, 0xdf, 0x35, 0xd5, 0x3b, 0x05, 0xa4, 0x50, 0xe5, 0x4b, 0x7e,
+ 0xc7, 0x1e, 0x28, 0x35, 0x9c, 0x12, 0x73, 0x84, 0x8e, 0x5a, 0xb1, 0x17,
+ 0xd5, 0xde, 0xd8, 0x8f,
+};
+static const struct drbg_kat_pr_false kat2664_t = {
+ 8, kat2664_entropyin, kat2664_nonce, kat2664_persstr,
+ kat2664_entropyinreseed, kat2664_addinreseed, kat2664_addin0,
+ kat2664_addin1, kat2664_retbits
+};
+static const struct drbg_kat kat2664 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2664_t
+};
+
+static const unsigned char kat2665_entropyin[] = {
+ 0x7f, 0x2a, 0x02, 0x13, 0xde, 0x67, 0x38, 0xec, 0x62, 0xbe, 0xda, 0xb7,
+ 0x69, 0xa5, 0xf0, 0x17, 0x32, 0xda, 0xd2, 0xd3, 0x5d, 0xd4, 0xca, 0xd7,
+ 0xa7, 0x65, 0xdb, 0xbb, 0x6f, 0x91, 0x01, 0xf5, 0x7b, 0x65, 0xec, 0x8f,
+ 0xc4, 0xe2, 0x3f, 0xb3, 0x47, 0x9c, 0xe6, 0x21, 0x1c, 0xa3, 0xd8, 0x4e,
+};
+static const unsigned char kat2665_nonce[] = {0};
+static const unsigned char kat2665_persstr[] = {0};
+static const unsigned char kat2665_entropyinreseed[] = {
+ 0xae, 0xb0, 0x97, 0xe9, 0xdd, 0xc4, 0xdf, 0xe8, 0x78, 0x74, 0xdd, 0xb1,
+ 0xa8, 0x56, 0xec, 0x3d, 0x00, 0xff, 0xf1, 0xb3, 0x8c, 0x8f, 0x95, 0x46,
+ 0x81, 0xc1, 0x1e, 0x61, 0xba, 0xc8, 0xb6, 0xb2, 0xe2, 0xd8, 0xd0, 0x10,
+ 0xe6, 0x82, 0x0f, 0x9c, 0x4d, 0x80, 0x7b, 0x29, 0x5a, 0xcb, 0x8a, 0xb0,
+};
+static const unsigned char kat2665_addinreseed[] = {
+ 0xb3, 0x3a, 0xd3, 0xde, 0xc7, 0xd5, 0x29, 0xb7, 0x1e, 0x39, 0xd5, 0x91,
+ 0x47, 0xf7, 0x9b, 0x48, 0x84, 0x03, 0x9d, 0x11, 0x12, 0x80, 0x4f, 0xe8,
+ 0xc7, 0x0e, 0x17, 0x4f, 0xdd, 0x98, 0x28, 0xc0, 0x6a, 0x4d, 0x44, 0xd2,
+ 0x0a, 0xa5, 0xfc, 0x19, 0x18, 0xc3, 0xee, 0x80, 0x82, 0xa2, 0xbf, 0x93,
+};
+static const unsigned char kat2665_addin0[] = {
+ 0x86, 0x32, 0xd2, 0x21, 0x75, 0x71, 0x32, 0xbb, 0x7b, 0x88, 0x3b, 0x7d,
+ 0xc2, 0x67, 0x55, 0xf6, 0x2e, 0xc2, 0xff, 0xab, 0x08, 0x76, 0x16, 0x8d,
+ 0x11, 0xea, 0x7b, 0x92, 0x77, 0x4c, 0x15, 0xc5, 0x53, 0xb1, 0x13, 0x20,
+ 0x39, 0x3d, 0x64, 0xa2, 0x26, 0x21, 0x33, 0x60, 0x8c, 0xa9, 0x2a, 0x18,
+};
+static const unsigned char kat2665_addin1[] = {
+ 0xcc, 0xaf, 0x3b, 0xc3, 0xae, 0x9c, 0xdb, 0xfa, 0x88, 0x5a, 0xa8, 0x41,
+ 0x4c, 0x1f, 0x82, 0x3c, 0x6a, 0x3e, 0xcc, 0x02, 0x0b, 0x61, 0x92, 0x01,
+ 0xa5, 0x2c, 0xe0, 0xb7, 0x51, 0x6b, 0xa1, 0xf4, 0x97, 0x55, 0xc4, 0x50,
+ 0xc5, 0x32, 0xbf, 0xe1, 0x1c, 0x06, 0xb9, 0xd0, 0xe0, 0x49, 0xcc, 0xae,
+};
+static const unsigned char kat2665_retbits[] = {
+ 0x4b, 0x1c, 0x06, 0x5a, 0x28, 0x8e, 0x5e, 0xec, 0x56, 0xb6, 0x7f, 0xb3,
+ 0x41, 0xe2, 0x5f, 0xc7, 0x52, 0x1b, 0x79, 0x4b, 0x52, 0xb9, 0x4f, 0x95,
+ 0x70, 0xbd, 0xb1, 0x65, 0x83, 0xbb, 0x6f, 0x7a, 0x78, 0x0a, 0xea, 0x52,
+ 0x97, 0x49, 0x63, 0x55, 0xff, 0xb4, 0xbf, 0x5a, 0x44, 0x4c, 0x27, 0x7c,
+ 0x96, 0x39, 0x46, 0x19, 0xcc, 0x33, 0xcb, 0xb5, 0xa3, 0xb2, 0xa9, 0xf4,
+ 0x9b, 0x00, 0xf9, 0xdf,
+};
+static const struct drbg_kat_pr_false kat2665_t = {
+ 9, kat2665_entropyin, kat2665_nonce, kat2665_persstr,
+ kat2665_entropyinreseed, kat2665_addinreseed, kat2665_addin0,
+ kat2665_addin1, kat2665_retbits
+};
+static const struct drbg_kat kat2665 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2665_t
+};
+
+static const unsigned char kat2666_entropyin[] = {
+ 0x80, 0x77, 0x3d, 0x02, 0x72, 0xff, 0x48, 0xba, 0x84, 0xb9, 0x8c, 0x81,
+ 0x73, 0x65, 0xb0, 0x97, 0xf2, 0x12, 0x58, 0x62, 0x4d, 0x0d, 0xe8, 0x52,
+ 0x93, 0x81, 0x97, 0x79, 0x50, 0xa5, 0xe4, 0x9f, 0xf2, 0xb7, 0x9d, 0x0f,
+ 0x25, 0x22, 0x26, 0x99, 0x70, 0xea, 0x6d, 0x48, 0x41, 0x98, 0x92, 0x2c,
+};
+static const unsigned char kat2666_nonce[] = {0};
+static const unsigned char kat2666_persstr[] = {0};
+static const unsigned char kat2666_entropyinreseed[] = {
+ 0x9b, 0x10, 0x1a, 0xc0, 0x18, 0xbe, 0x88, 0xda, 0x36, 0x11, 0xa2, 0x36,
+ 0xdf, 0xb1, 0x30, 0x0c, 0x00, 0x49, 0x94, 0x7e, 0x9f, 0x6e, 0xbe, 0xf7,
+ 0xa3, 0xad, 0x6e, 0x14, 0x99, 0xef, 0xec, 0xa0, 0xb1, 0x42, 0x82, 0x6f,
+ 0xa0, 0x6f, 0x42, 0x7e, 0x27, 0x18, 0x65, 0x23, 0x2a, 0x18, 0xdd, 0x29,
+};
+static const unsigned char kat2666_addinreseed[] = {
+ 0xa6, 0x7e, 0xe2, 0x24, 0x53, 0xdc, 0xaa, 0x5e, 0x47, 0x26, 0xe3, 0x08,
+ 0x48, 0x72, 0x14, 0x5a, 0xb6, 0x04, 0x89, 0xbc, 0xb6, 0xe8, 0x33, 0x46,
+ 0xc1, 0x08, 0xf3, 0xef, 0xcc, 0xe5, 0xb3, 0xd9, 0x88, 0xb8, 0x4d, 0x58,
+ 0x78, 0x66, 0x58, 0xd8, 0x7c, 0x2d, 0xc3, 0xb9, 0x03, 0x5e, 0x9d, 0x88,
+};
+static const unsigned char kat2666_addin0[] = {
+ 0x54, 0x65, 0x15, 0xbf, 0x86, 0xe4, 0x8d, 0xfb, 0x2b, 0x4d, 0xd2, 0x1c,
+ 0x2b, 0x46, 0xf1, 0x0c, 0x1e, 0x79, 0x7a, 0xb7, 0x99, 0xb5, 0x18, 0x22,
+ 0xe8, 0xe7, 0xcd, 0x99, 0xcc, 0xeb, 0xcc, 0xa0, 0x0b, 0x88, 0x99, 0xef,
+ 0x6a, 0xf5, 0xcb, 0x39, 0x51, 0x68, 0xaa, 0xda, 0x90, 0x56, 0xa6, 0xc9,
+};
+static const unsigned char kat2666_addin1[] = {
+ 0x57, 0xbe, 0xdd, 0xa6, 0x3f, 0xc5, 0xf7, 0x92, 0xa6, 0x08, 0xbe, 0x11,
+ 0x11, 0x41, 0xa1, 0x2e, 0x52, 0x24, 0x96, 0xc0, 0x86, 0x19, 0x45, 0x15,
+ 0x90, 0x9b, 0xdd, 0xcd, 0x86, 0x8b, 0xe9, 0x97, 0xe7, 0x18, 0xe7, 0xc5,
+ 0x89, 0x9e, 0x28, 0xdd, 0x6b, 0x12, 0x3c, 0xbc, 0xc3, 0xf2, 0xa8, 0xf2,
+};
+static const unsigned char kat2666_retbits[] = {
+ 0x40, 0x75, 0x46, 0x1e, 0x45, 0x9f, 0x15, 0xcd, 0x32, 0x03, 0x05, 0x51,
+ 0xbe, 0x47, 0x52, 0x82, 0x23, 0x69, 0x3c, 0x2f, 0x44, 0xe3, 0x24, 0x43,
+ 0xcb, 0xe9, 0x27, 0x1e, 0xef, 0xe7, 0x4f, 0xa0, 0xa6, 0xe1, 0xec, 0x04,
+ 0xf4, 0xb8, 0xf4, 0x1d, 0x7e, 0xd6, 0xc5, 0xf4, 0x55, 0x28, 0x1a, 0x3c,
+ 0xba, 0x56, 0xd9, 0x52, 0xb0, 0x8b, 0x77, 0x53, 0xf6, 0xa3, 0xd7, 0xda,
+ 0x35, 0x17, 0x31, 0x7a,
+};
+static const struct drbg_kat_pr_false kat2666_t = {
+ 10, kat2666_entropyin, kat2666_nonce, kat2666_persstr,
+ kat2666_entropyinreseed, kat2666_addinreseed, kat2666_addin0,
+ kat2666_addin1, kat2666_retbits
+};
+static const struct drbg_kat kat2666 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2666_t
+};
+
+static const unsigned char kat2667_entropyin[] = {
+ 0xdc, 0x13, 0x2c, 0x15, 0xaf, 0x0e, 0x21, 0x4d, 0x1b, 0x56, 0xeb, 0x88,
+ 0x84, 0x9e, 0x96, 0xb8, 0x1d, 0xc1, 0x7f, 0x23, 0x8e, 0xb3, 0xd1, 0xbb,
+ 0x9a, 0x65, 0x92, 0x19, 0xdb, 0xd7, 0x7e, 0xba, 0x38, 0xca, 0x27, 0x96,
+ 0xa8, 0x01, 0x1e, 0x29, 0xcf, 0xad, 0x76, 0xf8, 0xcb, 0xbf, 0x09, 0x9d,
+};
+static const unsigned char kat2667_nonce[] = {0};
+static const unsigned char kat2667_persstr[] = {0};
+static const unsigned char kat2667_entropyinreseed[] = {
+ 0xcb, 0xa2, 0x3d, 0x4f, 0xdb, 0xb6, 0xc1, 0x1e, 0x38, 0x01, 0x2b, 0x71,
+ 0xca, 0x26, 0x4b, 0xff, 0x9d, 0x12, 0x64, 0xbb, 0x20, 0xa3, 0x9b, 0xb2,
+ 0x7d, 0x86, 0xdc, 0xdf, 0x7d, 0x72, 0xce, 0x7a, 0x4f, 0x5c, 0x12, 0x4c,
+ 0xdf, 0x2a, 0xca, 0x6a, 0xae, 0xe2, 0x08, 0x32, 0x49, 0x51, 0x81, 0xe6,
+};
+static const unsigned char kat2667_addinreseed[] = {
+ 0x07, 0xe0, 0x43, 0xad, 0xd7, 0xcc, 0x14, 0x61, 0x2a, 0x82, 0x92, 0x6c,
+ 0x09, 0x93, 0x4d, 0xea, 0x09, 0x2f, 0x46, 0x18, 0xcc, 0xe2, 0x56, 0x74,
+ 0x97, 0x2b, 0x1f, 0x50, 0xb2, 0x90, 0x7c, 0x7e, 0x3d, 0x40, 0xa2, 0x57,
+ 0x22, 0xea, 0x49, 0xb0, 0xc7, 0xce, 0xb6, 0xb5, 0x7f, 0xf2, 0xd8, 0x70,
+};
+static const unsigned char kat2667_addin0[] = {
+ 0x00, 0x17, 0xff, 0x83, 0x49, 0x67, 0xcf, 0xf8, 0x82, 0x75, 0x98, 0xff,
+ 0x6c, 0x00, 0xa9, 0xc9, 0x7f, 0x03, 0x47, 0xc3, 0x4f, 0x25, 0x23, 0xa8,
+ 0x5d, 0xd7, 0xd1, 0x8f, 0xf5, 0x57, 0x57, 0x56, 0xc1, 0xf5, 0x38, 0x3d,
+ 0xe5, 0x03, 0x38, 0xd0, 0xab, 0x05, 0x05, 0x84, 0x1d, 0x70, 0xa1, 0x93,
+};
+static const unsigned char kat2667_addin1[] = {
+ 0xc4, 0x04, 0xdb, 0xc3, 0xcb, 0x08, 0x51, 0xb0, 0x85, 0x30, 0xf9, 0x65,
+ 0x00, 0xf5, 0xa2, 0xc1, 0x0d, 0x89, 0x85, 0xc8, 0x2d, 0xec, 0x2b, 0xa3,
+ 0x1d, 0x41, 0x99, 0xfd, 0x07, 0x68, 0x7c, 0xcf, 0x12, 0x43, 0x82, 0xfb,
+ 0xee, 0x3f, 0xa1, 0x19, 0x93, 0x8f, 0x0c, 0x72, 0xac, 0x58, 0x61, 0x02,
+};
+static const unsigned char kat2667_retbits[] = {
+ 0x19, 0x35, 0xcc, 0xe8, 0x6b, 0xde, 0x70, 0x87, 0xfc, 0xab, 0x30, 0xb5,
+ 0xdc, 0xe0, 0xe0, 0x72, 0xad, 0x74, 0x1c, 0x2f, 0x28, 0x19, 0x02, 0xe1,
+ 0x80, 0x1e, 0x56, 0xc0, 0x8a, 0xe8, 0xb2, 0x56, 0xd2, 0x75, 0x14, 0xde,
+ 0x92, 0xdd, 0x48, 0xa8, 0x38, 0xca, 0x42, 0x68, 0x20, 0x00, 0x2c, 0x12,
+ 0x06, 0xf8, 0x6c, 0xad, 0x37, 0xcf, 0xd9, 0x9d, 0x3a, 0x93, 0x5e, 0x05,
+ 0xf5, 0x6a, 0x75, 0x07,
+};
+static const struct drbg_kat_pr_false kat2667_t = {
+ 11, kat2667_entropyin, kat2667_nonce, kat2667_persstr,
+ kat2667_entropyinreseed, kat2667_addinreseed, kat2667_addin0,
+ kat2667_addin1, kat2667_retbits
+};
+static const struct drbg_kat kat2667 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2667_t
+};
+
+static const unsigned char kat2668_entropyin[] = {
+ 0xe4, 0x84, 0x95, 0x93, 0x0a, 0x7f, 0xc8, 0x6e, 0xcb, 0xfa, 0xd8, 0x07,
+ 0xd4, 0x0c, 0xa8, 0x4b, 0xa3, 0x5e, 0x34, 0x6c, 0x81, 0x20, 0x90, 0xde,
+ 0xf8, 0xf4, 0x4d, 0x9e, 0x48, 0xb0, 0xa4, 0x07, 0x04, 0xac, 0x67, 0xec,
+ 0x80, 0xae, 0x15, 0xb1, 0x2e, 0x85, 0x8a, 0xe8, 0x5a, 0x7e, 0xd9, 0xcf,
+};
+static const unsigned char kat2668_nonce[] = {0};
+static const unsigned char kat2668_persstr[] = {0};
+static const unsigned char kat2668_entropyinreseed[] = {
+ 0xf4, 0x73, 0x59, 0x54, 0xd1, 0x7e, 0x99, 0x07, 0x70, 0x61, 0xc9, 0x60,
+ 0x4e, 0x8f, 0x17, 0x34, 0xd6, 0x1d, 0xd6, 0x62, 0xe5, 0x4e, 0x37, 0x25,
+ 0x6c, 0x0f, 0x8b, 0xf2, 0x76, 0xe0, 0x25, 0xd5, 0x9d, 0x21, 0xca, 0xcc,
+ 0x08, 0x69, 0xed, 0xed, 0xb4, 0x4a, 0x2a, 0xac, 0x9f, 0xcf, 0x2c, 0xcc,
+};
+static const unsigned char kat2668_addinreseed[] = {
+ 0xe7, 0x96, 0x32, 0x2f, 0xc0, 0xef, 0x50, 0x32, 0x51, 0xf6, 0xd4, 0xbd,
+ 0x72, 0xdc, 0x5e, 0xa8, 0x10, 0x0c, 0x5a, 0x59, 0xf1, 0xa4, 0xfe, 0x48,
+ 0x37, 0xfa, 0x8e, 0xb2, 0x62, 0x3b, 0xc6, 0x50, 0xa0, 0xcd, 0x48, 0xc3,
+ 0x06, 0xf1, 0x39, 0xe0, 0xec, 0xd1, 0x69, 0xa5, 0x1d, 0xeb, 0x2c, 0xd0,
+};
+static const unsigned char kat2668_addin0[] = {
+ 0x1c, 0x84, 0x4d, 0x24, 0xb7, 0xcd, 0x95, 0x12, 0xe5, 0x03, 0x5b, 0xc4,
+ 0x57, 0x61, 0x2e, 0xbf, 0x6d, 0x3d, 0xf6, 0x86, 0x7a, 0xa9, 0x09, 0x03,
+ 0x8b, 0xcb, 0xc1, 0xf4, 0x74, 0xf7, 0xd0, 0x78, 0x3e, 0xd4, 0x74, 0xe3,
+ 0x45, 0x25, 0xa8, 0x17, 0xbe, 0xa1, 0xfb, 0xc8, 0x83, 0x96, 0x1e, 0x31,
+};
+static const unsigned char kat2668_addin1[] = {
+ 0x5c, 0x56, 0x71, 0xba, 0x79, 0xbd, 0x0b, 0x83, 0xf7, 0x4d, 0x0e, 0xd9,
+ 0x8e, 0x9c, 0x8b, 0x36, 0x9a, 0x2d, 0xe3, 0x41, 0x88, 0xd8, 0xb7, 0xca,
+ 0xda, 0x20, 0xb3, 0x36, 0x37, 0x38, 0xd1, 0x25, 0x2e, 0xce, 0x1e, 0x6a,
+ 0x26, 0xd0, 0x07, 0xac, 0xdf, 0xc5, 0xb6, 0x10, 0x84, 0x12, 0x76, 0x6a,
+};
+static const unsigned char kat2668_retbits[] = {
+ 0x40, 0xf1, 0x7e, 0x2b, 0xf6, 0x08, 0x4a, 0x64, 0x47, 0xf2, 0xc4, 0x0d,
+ 0x60, 0x1e, 0x16, 0xa4, 0x30, 0x98, 0xda, 0xdd, 0x9f, 0x96, 0x14, 0xd5,
+ 0x18, 0x87, 0x46, 0x23, 0xe8, 0xe6, 0x84, 0x43, 0x8c, 0x02, 0xe1, 0x27,
+ 0xe5, 0x82, 0xb0, 0x00, 0xdf, 0xd4, 0x6d, 0xf0, 0x3d, 0xd5, 0x43, 0x5e,
+ 0xdc, 0x4f, 0x0f, 0x47, 0x09, 0x83, 0x20, 0xfd, 0x31, 0x1a, 0xfd, 0xbb,
+ 0x85, 0x42, 0xc4, 0xdb,
+};
+static const struct drbg_kat_pr_false kat2668_t = {
+ 12, kat2668_entropyin, kat2668_nonce, kat2668_persstr,
+ kat2668_entropyinreseed, kat2668_addinreseed, kat2668_addin0,
+ kat2668_addin1, kat2668_retbits
+};
+static const struct drbg_kat kat2668 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2668_t
+};
+
+static const unsigned char kat2669_entropyin[] = {
+ 0xdf, 0x4a, 0x88, 0x8e, 0xc7, 0x36, 0x3f, 0xad, 0xd9, 0x9c, 0xe2, 0x22,
+ 0x3e, 0xd3, 0x95, 0x77, 0xa4, 0x1b, 0xc2, 0x20, 0xd2, 0x0b, 0x25, 0x3f,
+ 0x98, 0xdb, 0xfc, 0x61, 0x7a, 0xff, 0x8f, 0xe4, 0xac, 0x66, 0xe5, 0xda,
+ 0x1b, 0x50, 0x97, 0x22, 0x84, 0x22, 0xcf, 0x82, 0x42, 0xba, 0xaf, 0x53,
+};
+static const unsigned char kat2669_nonce[] = {0};
+static const unsigned char kat2669_persstr[] = {0};
+static const unsigned char kat2669_entropyinreseed[] = {
+ 0xe1, 0x6d, 0xca, 0x80, 0xb2, 0x06, 0x17, 0x06, 0xe8, 0x18, 0x0d, 0xce,
+ 0x8f, 0x59, 0xe8, 0x88, 0xf1, 0x50, 0x83, 0x6a, 0x0b, 0xbc, 0xea, 0xc1,
+ 0x79, 0xa4, 0xb8, 0xd8, 0x82, 0xee, 0xad, 0x78, 0x70, 0x9e, 0xd9, 0x95,
+ 0x11, 0x02, 0x72, 0x8a, 0xbb, 0xbb, 0xf9, 0x22, 0x6a, 0x2d, 0x91, 0x3e,
+};
+static const unsigned char kat2669_addinreseed[] = {
+ 0xfe, 0xbc, 0x9f, 0x6b, 0x9f, 0x2b, 0x90, 0xb4, 0x32, 0x0d, 0x5d, 0x41,
+ 0xe5, 0xc5, 0x50, 0x6f, 0xa3, 0x2b, 0x16, 0x4d, 0x86, 0xd5, 0xe7, 0xf9,
+ 0x1d, 0x4a, 0x36, 0x0f, 0xe1, 0x79, 0xc1, 0x27, 0xbd, 0x2b, 0xde, 0xb7,
+ 0x8f, 0xe7, 0x60, 0x17, 0x4e, 0x85, 0x6a, 0x5e, 0x04, 0xed, 0x89, 0x8b,
+};
+static const unsigned char kat2669_addin0[] = {
+ 0x0a, 0xba, 0x74, 0xcd, 0x29, 0x9e, 0x75, 0x88, 0x6c, 0x9e, 0x7e, 0x52,
+ 0x93, 0xe5, 0x91, 0x5d, 0x72, 0x0d, 0xa2, 0xc8, 0xc1, 0xcc, 0xa7, 0xf0,
+ 0xe1, 0xd6, 0xf2, 0xb6, 0x72, 0xb4, 0x01, 0x4e, 0xb4, 0x58, 0x2e, 0x97,
+ 0xa8, 0x77, 0x12, 0x1c, 0x87, 0x95, 0x61, 0x85, 0x73, 0x6b, 0xa0, 0xe9,
+};
+static const unsigned char kat2669_addin1[] = {
+ 0xe4, 0x51, 0xea, 0xc8, 0x02, 0x66, 0x0a, 0xc8, 0x43, 0xfc, 0x72, 0xb6,
+ 0x6d, 0x59, 0xf1, 0xe1, 0xca, 0x83, 0x1f, 0x22, 0xd6, 0xa3, 0x61, 0x92,
+ 0x90, 0x43, 0xf7, 0x62, 0x6f, 0x1d, 0x82, 0x13, 0x3f, 0x51, 0x2f, 0xb1,
+ 0xf2, 0xd8, 0xca, 0x51, 0x00, 0x4f, 0x80, 0xed, 0x60, 0x06, 0x09, 0xe4,
+};
+static const unsigned char kat2669_retbits[] = {
+ 0x96, 0x8b, 0x70, 0x8e, 0xd6, 0xb5, 0x4d, 0x2e, 0x5a, 0x66, 0xd4, 0x6f,
+ 0x22, 0x99, 0x87, 0x48, 0xdf, 0xb5, 0xcf, 0x47, 0xe8, 0x17, 0x73, 0x2a,
+ 0x40, 0x93, 0x8b, 0xf3, 0x59, 0x3f, 0xb2, 0x51, 0xcc, 0xf8, 0xf2, 0x07,
+ 0x68, 0x37, 0x71, 0x5d, 0x14, 0xb3, 0x16, 0xbf, 0xb5, 0x25, 0x60, 0x13,
+ 0x56, 0x02, 0xff, 0x98, 0x33, 0x85, 0x93, 0x69, 0x6b, 0xf8, 0x0a, 0x46,
+ 0x2b, 0x21, 0x4c, 0x4b,
+};
+static const struct drbg_kat_pr_false kat2669_t = {
+ 13, kat2669_entropyin, kat2669_nonce, kat2669_persstr,
+ kat2669_entropyinreseed, kat2669_addinreseed, kat2669_addin0,
+ kat2669_addin1, kat2669_retbits
+};
+static const struct drbg_kat kat2669 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2669_t
+};
+
+static const unsigned char kat2670_entropyin[] = {
+ 0x43, 0xbc, 0x56, 0x1c, 0x4d, 0xd1, 0xb9, 0x04, 0xa5, 0x33, 0x3a, 0x09,
+ 0x2a, 0x67, 0x0d, 0x0d, 0x1b, 0x61, 0x12, 0x8a, 0x13, 0xbe, 0x2e, 0x53,
+ 0x8a, 0x32, 0x90, 0x94, 0x57, 0x48, 0x19, 0x28, 0x4e, 0x41, 0x4b, 0x93,
+ 0x8d, 0xc8, 0xb1, 0x86, 0x0b, 0x38, 0x5c, 0x29, 0x3c, 0x03, 0x01, 0x0d,
+};
+static const unsigned char kat2670_nonce[] = {0};
+static const unsigned char kat2670_persstr[] = {0};
+static const unsigned char kat2670_entropyinreseed[] = {
+ 0xeb, 0x36, 0x21, 0x36, 0xf4, 0xcc, 0xc9, 0xe3, 0x02, 0x50, 0x5d, 0x52,
+ 0x5b, 0xef, 0xbf, 0xa9, 0x9d, 0x8c, 0x33, 0x36, 0x18, 0x7d, 0x59, 0x02,
+ 0xb0, 0x3e, 0xd7, 0x56, 0x41, 0x91, 0x3c, 0xe9, 0x73, 0x74, 0x37, 0x57,
+ 0xf9, 0x7d, 0xae, 0x93, 0x66, 0x87, 0x4b, 0xa6, 0x2b, 0xd8, 0x70, 0x13,
+};
+static const unsigned char kat2670_addinreseed[] = {
+ 0xa9, 0x01, 0xf4, 0xda, 0xaa, 0x63, 0x88, 0x04, 0x17, 0x7a, 0x0b, 0x26,
+ 0x3e, 0x8c, 0xbc, 0x81, 0x68, 0x8d, 0xf3, 0xbe, 0xb2, 0x18, 0xb0, 0x23,
+ 0x16, 0xda, 0x83, 0xb7, 0x29, 0x23, 0x0a, 0x9e, 0x51, 0x12, 0xfb, 0x38,
+ 0x96, 0xb7, 0x27, 0x29, 0x87, 0x55, 0xbb, 0x9a, 0xc6, 0xb6, 0x25, 0x0a,
+};
+static const unsigned char kat2670_addin0[] = {
+ 0xe3, 0x3d, 0x18, 0x1f, 0x31, 0x59, 0xfb, 0x08, 0x74, 0xef, 0xf5, 0xef,
+ 0x8d, 0xdd, 0x2b, 0x51, 0xa6, 0x0b, 0x13, 0xcc, 0xf0, 0x46, 0xf7, 0xe6,
+ 0x37, 0xed, 0x27, 0xbe, 0xd8, 0x1b, 0xb6, 0x04, 0x27, 0x7f, 0x73, 0x45,
+ 0xe6, 0xb8, 0xf0, 0xe0, 0x9f, 0x92, 0x57, 0x93, 0xce, 0x41, 0x7f, 0xff,
+};
+static const unsigned char kat2670_addin1[] = {
+ 0x3e, 0xcf, 0x62, 0x33, 0x82, 0x0e, 0x6c, 0xce, 0xdd, 0xac, 0x7b, 0x02,
+ 0x4c, 0x49, 0x0c, 0x5e, 0xe1, 0x4c, 0x73, 0xd5, 0xb5, 0x98, 0xc9, 0x2c,
+ 0xda, 0x30, 0x94, 0x04, 0x71, 0xb6, 0xed, 0x45, 0x00, 0x19, 0x12, 0x06,
+ 0x89, 0xaa, 0xf1, 0x57, 0xfd, 0x87, 0xb7, 0x1b, 0x13, 0xaf, 0xea, 0x25,
+};
+static const unsigned char kat2670_retbits[] = {
+ 0x9d, 0x79, 0x3d, 0xd9, 0x6b, 0x87, 0x0d, 0xfa, 0x02, 0x67, 0x62, 0x3b,
+ 0xd1, 0xc2, 0xd8, 0xbd, 0x3e, 0x2c, 0x63, 0xe9, 0xf2, 0x11, 0x34, 0x0f,
+ 0x63, 0x0f, 0xea, 0x01, 0x35, 0x80, 0x11, 0x39, 0x41, 0x54, 0x14, 0x5a,
+ 0x10, 0x65, 0x9c, 0x4d, 0x98, 0x27, 0x4a, 0x52, 0x5c, 0x48, 0xa9, 0x0d,
+ 0xa0, 0x12, 0x6a, 0x99, 0xb8, 0x5e, 0xd5, 0xb4, 0xb9, 0x03, 0x19, 0x5f,
+ 0x0d, 0xdd, 0xc7, 0x62,
+};
+static const struct drbg_kat_pr_false kat2670_t = {
+ 14, kat2670_entropyin, kat2670_nonce, kat2670_persstr,
+ kat2670_entropyinreseed, kat2670_addinreseed, kat2670_addin0,
+ kat2670_addin1, kat2670_retbits
+};
+static const struct drbg_kat kat2670 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2670_t
+};
+
+static const unsigned char kat2671_entropyin[] = {
+ 0xff, 0xad, 0x10, 0x10, 0x00, 0x25, 0xa8, 0x79, 0x67, 0x2f, 0xf5, 0x03,
+ 0x74, 0xb2, 0x86, 0x71, 0x2f, 0x45, 0x7d, 0xd0, 0x14, 0x41, 0xd7, 0x6a,
+ 0xc1, 0xa1, 0xcd, 0x15, 0xc7, 0x39, 0x0d, 0xd9, 0x31, 0x79, 0xa2, 0xf5,
+ 0x92, 0x0d, 0x19, 0x8b, 0xf3, 0x4a, 0x1b, 0x76, 0xfb, 0xc2, 0x12, 0x89,
+};
+static const unsigned char kat2671_nonce[] = {0};
+static const unsigned char kat2671_persstr[] = {
+ 0x1d, 0x2b, 0xe6, 0xf2, 0x5e, 0x88, 0xfa, 0x30, 0xc4, 0xef, 0x42, 0xe4,
+ 0xd5, 0x4e, 0xfd, 0x95, 0x7d, 0xec, 0x23, 0x1f, 0xa0, 0x01, 0x43, 0xca,
+ 0x47, 0x58, 0x0b, 0xe6, 0x66, 0xa8, 0xc1, 0x43, 0xa9, 0x16, 0xc9, 0x0b,
+ 0x38, 0x19, 0xa0, 0xa7, 0xea, 0x91, 0x4e, 0x3c, 0x9a, 0x2e, 0x7a, 0x3f,
+};
+static const unsigned char kat2671_entropyinreseed[] = {
+ 0x6c, 0x1a, 0x08, 0x9c, 0xae, 0x31, 0x33, 0x63, 0xbc, 0x76, 0xa7, 0x80,
+ 0x13, 0x9e, 0xb4, 0xf2, 0xf2, 0x04, 0x8b, 0x1f, 0x6b, 0x07, 0x89, 0x6c,
+ 0x5c, 0x41, 0x2b, 0xff, 0x03, 0x85, 0x44, 0x0f, 0xc4, 0x3b, 0x73, 0xfa,
+ 0xcb, 0xb7, 0x9e, 0x3a, 0x25, 0x2f, 0xa0, 0x1f, 0xe1, 0x7a, 0xb3, 0x91,
+};
+static const unsigned char kat2671_addinreseed[] = {0};
+static const unsigned char kat2671_addin0[] = {0};
+static const unsigned char kat2671_addin1[] = {0};
+static const unsigned char kat2671_retbits[] = {
+ 0xe0, 0x53, 0xc7, 0xd4, 0xbd, 0x90, 0x99, 0xef, 0x6a, 0x99, 0xf1, 0x90,
+ 0xa5, 0xfd, 0x80, 0x21, 0x94, 0x37, 0xd6, 0x42, 0x00, 0x66, 0x72, 0x33,
+ 0x8d, 0xa6, 0xe0, 0xfe, 0x73, 0xca, 0x4d, 0x24, 0xff, 0xa5, 0x11, 0x51,
+ 0xbf, 0xbd, 0xac, 0x78, 0xd8, 0xa2, 0xf6, 0x25, 0x50, 0x46, 0xed, 0xf5,
+ 0x7a, 0x04, 0x62, 0x6e, 0x99, 0x77, 0x13, 0x9c, 0x69, 0x33, 0x27, 0x42,
+ 0x99, 0xf3, 0xbd, 0xff,
+};
+static const struct drbg_kat_pr_false kat2671_t = {
+ 0, kat2671_entropyin, kat2671_nonce, kat2671_persstr,
+ kat2671_entropyinreseed, kat2671_addinreseed, kat2671_addin0,
+ kat2671_addin1, kat2671_retbits
+};
+static const struct drbg_kat kat2671 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2671_t
+};
+
+static const unsigned char kat2672_entropyin[] = {
+ 0xf1, 0xe0, 0xd7, 0xb1, 0xac, 0x7e, 0x4e, 0x15, 0x5b, 0xb5, 0x88, 0x50,
+ 0x0f, 0x57, 0xd0, 0xc5, 0x99, 0x69, 0x26, 0x7e, 0xa5, 0x42, 0x7e, 0x2d,
+ 0x7f, 0xde, 0x1f, 0x9c, 0x54, 0xe6, 0x7b, 0x7f, 0x65, 0x62, 0xbf, 0xc1,
+ 0x01, 0x9b, 0x8b, 0x57, 0x99, 0xd2, 0xa8, 0x33, 0xfd, 0xcc, 0xac, 0x79,
+};
+static const unsigned char kat2672_nonce[] = {0};
+static const unsigned char kat2672_persstr[] = {
+ 0x86, 0xda, 0x37, 0x24, 0x5d, 0x9b, 0xd1, 0xfb, 0x59, 0xa4, 0xbc, 0x7a,
+ 0xbd, 0x28, 0x9e, 0xa2, 0x99, 0x92, 0x58, 0x04, 0x2c, 0x5f, 0xa6, 0x96,
+ 0xf2, 0xda, 0x73, 0x44, 0xbb, 0x6e, 0xbc, 0x5b, 0x77, 0x0c, 0xa2, 0x84,
+ 0xbf, 0xe6, 0x42, 0x57, 0x0b, 0x52, 0xef, 0x47, 0xb7, 0x80, 0xd5, 0xc9,
+};
+static const unsigned char kat2672_entropyinreseed[] = {
+ 0x9c, 0x2c, 0x9c, 0x07, 0xca, 0xb1, 0x2c, 0xf5, 0x0f, 0x88, 0x46, 0x14,
+ 0x80, 0x34, 0xa4, 0x16, 0xc8, 0x33, 0x66, 0xc1, 0xe2, 0x07, 0x76, 0x07,
+ 0x37, 0x51, 0x55, 0x3c, 0xae, 0x69, 0xda, 0x8d, 0x1f, 0x6b, 0xce, 0x6b,
+ 0xde, 0x27, 0x08, 0x76, 0x59, 0xd6, 0x9a, 0x62, 0xe2, 0xba, 0x7c, 0x3c,
+};
+static const unsigned char kat2672_addinreseed[] = {0};
+static const unsigned char kat2672_addin0[] = {0};
+static const unsigned char kat2672_addin1[] = {0};
+static const unsigned char kat2672_retbits[] = {
+ 0xe0, 0xac, 0x06, 0xd7, 0xea, 0xe8, 0x94, 0x69, 0xb6, 0xc1, 0x4a, 0x31,
+ 0xe7, 0xf0, 0x46, 0x4e, 0xe2, 0x1f, 0x7b, 0x30, 0xd2, 0x26, 0x4c, 0x2d,
+ 0xe3, 0xe4, 0x35, 0xcb, 0x40, 0xd0, 0xe5, 0x04, 0x3e, 0xe1, 0x3d, 0xfb,
+ 0xc0, 0x34, 0x21, 0x56, 0x75, 0x08, 0x80, 0xb2, 0xd5, 0xdd, 0xdb, 0x3b,
+ 0xeb, 0xb4, 0x3b, 0x16, 0x2a, 0x84, 0x78, 0x23, 0x5c, 0x8b, 0x87, 0xf9,
+ 0x6d, 0x02, 0x84, 0xfd,
+};
+static const struct drbg_kat_pr_false kat2672_t = {
+ 1, kat2672_entropyin, kat2672_nonce, kat2672_persstr,
+ kat2672_entropyinreseed, kat2672_addinreseed, kat2672_addin0,
+ kat2672_addin1, kat2672_retbits
+};
+static const struct drbg_kat kat2672 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2672_t
+};
+
+static const unsigned char kat2673_entropyin[] = {
+ 0x1d, 0xbe, 0xe7, 0x67, 0xe9, 0x91, 0x6a, 0xb3, 0x22, 0xba, 0x46, 0x1f,
+ 0xbf, 0x9f, 0x75, 0x15, 0xcf, 0xbc, 0xb4, 0x59, 0x44, 0xa7, 0xb4, 0x71,
+ 0x57, 0x7d, 0xa0, 0x87, 0x69, 0x0d, 0x94, 0xd9, 0x67, 0x01, 0x8b, 0x63,
+ 0x1e, 0x0c, 0x1f, 0x64, 0xda, 0x3c, 0x80, 0x5d, 0x04, 0x9f, 0x44, 0x9a,
+};
+static const unsigned char kat2673_nonce[] = {0};
+static const unsigned char kat2673_persstr[] = {
+ 0x96, 0x6b, 0x5c, 0xd9, 0x40, 0x19, 0xd4, 0xd9, 0x0b, 0x48, 0xea, 0x7f,
+ 0x54, 0x0a, 0x69, 0x8c, 0xfe, 0x30, 0xd7, 0xeb, 0x25, 0xf5, 0xf7, 0xe5,
+ 0xfe, 0x42, 0xd9, 0xf5, 0x3e, 0xbe, 0xd6, 0xe9, 0x4e, 0x73, 0x3b, 0x07,
+ 0x94, 0xfc, 0x6b, 0xf3, 0x06, 0x27, 0x91, 0x1e, 0x20, 0xcc, 0x18, 0xe8,
+};
+static const unsigned char kat2673_entropyinreseed[] = {
+ 0x96, 0xe8, 0x28, 0x12, 0x8f, 0x18, 0x3c, 0x76, 0xc9, 0x0e, 0xc8, 0x34,
+ 0x1a, 0x43, 0x56, 0x13, 0x68, 0xb7, 0x71, 0x14, 0x04, 0x8c, 0xcb, 0x05,
+ 0xdb, 0x66, 0x12, 0x8d, 0x54, 0xc9, 0x53, 0x9d, 0x1a, 0xdc, 0x1d, 0x72,
+ 0xf7, 0xfb, 0x09, 0x50, 0xe4, 0x1b, 0x13, 0x43, 0xa9, 0xe4, 0xdf, 0x76,
+};
+static const unsigned char kat2673_addinreseed[] = {0};
+static const unsigned char kat2673_addin0[] = {0};
+static const unsigned char kat2673_addin1[] = {0};
+static const unsigned char kat2673_retbits[] = {
+ 0xc4, 0xd3, 0xf5, 0xc5, 0x5d, 0x39, 0x79, 0xb1, 0x74, 0x02, 0x06, 0x50,
+ 0xad, 0x7a, 0x46, 0xb4, 0x23, 0xec, 0x44, 0x6d, 0xff, 0x2a, 0x9e, 0x9f,
+ 0xe0, 0xa7, 0x82, 0xbf, 0x65, 0xa7, 0x2d, 0x5f, 0xcb, 0x18, 0x96, 0xbc,
+ 0x10, 0x92, 0xa8, 0xc7, 0x3f, 0x41, 0x29, 0x5e, 0x2e, 0x70, 0x44, 0x43,
+ 0x4f, 0x88, 0xaa, 0x0a, 0xca, 0x78, 0xf7, 0xea, 0xc4, 0x0e, 0x32, 0x2c,
+ 0xb7, 0xc2, 0x55, 0x63,
+};
+static const struct drbg_kat_pr_false kat2673_t = {
+ 2, kat2673_entropyin, kat2673_nonce, kat2673_persstr,
+ kat2673_entropyinreseed, kat2673_addinreseed, kat2673_addin0,
+ kat2673_addin1, kat2673_retbits
+};
+static const struct drbg_kat kat2673 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2673_t
+};
+
+static const unsigned char kat2674_entropyin[] = {
+ 0xdf, 0x58, 0x8b, 0xff, 0x3a, 0x1f, 0xc9, 0x7a, 0x90, 0x80, 0x67, 0xda,
+ 0x6a, 0x7f, 0xef, 0x08, 0xc8, 0x89, 0xac, 0x29, 0xad, 0x7d, 0x63, 0x9b,
+ 0xd0, 0x47, 0x15, 0x7b, 0xac, 0xab, 0x4d, 0xbd, 0xee, 0x3d, 0xff, 0xe5,
+ 0x75, 0xf3, 0x7d, 0x07, 0x1a, 0xf9, 0x4c, 0xbd, 0x76, 0x28, 0xd3, 0x98,
+};
+static const unsigned char kat2674_nonce[] = {0};
+static const unsigned char kat2674_persstr[] = {
+ 0x54, 0x87, 0x15, 0xcf, 0xb2, 0x8c, 0x1b, 0xc5, 0x64, 0x53, 0xb8, 0xc3,
+ 0x9e, 0x24, 0xcf, 0xd6, 0x40, 0x77, 0xc0, 0xf6, 0xe9, 0xd9, 0x59, 0xd5,
+ 0x1b, 0x9f, 0x06, 0x67, 0xb9, 0x7d, 0x3c, 0x4e, 0x1a, 0x17, 0x9d, 0x1a,
+ 0x55, 0x4d, 0xf8, 0x45, 0xb2, 0x4c, 0x26, 0xda, 0xec, 0x85, 0x84, 0x5a,
+};
+static const unsigned char kat2674_entropyinreseed[] = {
+ 0xf8, 0xc1, 0x65, 0xb5, 0xeb, 0xd8, 0x34, 0x7a, 0x2f, 0xfe, 0xf2, 0x21,
+ 0x8f, 0x99, 0x38, 0x77, 0x02, 0x7e, 0x97, 0x75, 0x98, 0xb4, 0xfd, 0xac,
+ 0x2f, 0x65, 0xd8, 0xd9, 0x94, 0xc7, 0x43, 0x29, 0x00, 0xf8, 0x40, 0x7a,
+ 0xb5, 0xae, 0xd1, 0x88, 0x5d, 0xee, 0x5a, 0xa2, 0x45, 0x8f, 0x59, 0x98,
+};
+static const unsigned char kat2674_addinreseed[] = {0};
+static const unsigned char kat2674_addin0[] = {0};
+static const unsigned char kat2674_addin1[] = {0};
+static const unsigned char kat2674_retbits[] = {
+ 0xde, 0xed, 0x18, 0x22, 0x0b, 0xd8, 0xf7, 0x2a, 0x34, 0x55, 0x99, 0x24,
+ 0xf3, 0xca, 0xd9, 0x25, 0xee, 0x71, 0x76, 0x90, 0xf7, 0x6b, 0xc2, 0x23,
+ 0xd5, 0xff, 0xee, 0xbb, 0xb5, 0x54, 0xb6, 0x1b, 0x9d, 0x9e, 0xb6, 0xac,
+ 0x56, 0x97, 0xb0, 0x63, 0x31, 0xe2, 0x36, 0x67, 0x26, 0x77, 0xe2, 0xe0,
+ 0x1d, 0x6e, 0x3f, 0xd5, 0x81, 0xa4, 0xfa, 0x1e, 0xba, 0xd2, 0x89, 0x79,
+ 0x7b, 0x68, 0x95, 0x5f,
+};
+static const struct drbg_kat_pr_false kat2674_t = {
+ 3, kat2674_entropyin, kat2674_nonce, kat2674_persstr,
+ kat2674_entropyinreseed, kat2674_addinreseed, kat2674_addin0,
+ kat2674_addin1, kat2674_retbits
+};
+static const struct drbg_kat kat2674 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2674_t
+};
+
+static const unsigned char kat2675_entropyin[] = {
+ 0x98, 0x55, 0x50, 0x93, 0xe4, 0x43, 0xfe, 0x8e, 0x2b, 0xc8, 0xd2, 0xeb,
+ 0x4d, 0x3a, 0x7a, 0xbb, 0x8e, 0xba, 0x00, 0xb2, 0x56, 0x83, 0xa6, 0xb3,
+ 0x11, 0x91, 0xff, 0xf7, 0xc0, 0x43, 0x66, 0x5e, 0xc2, 0xca, 0xd3, 0xe9,
+ 0x9e, 0x55, 0xbb, 0xc2, 0x41, 0xb8, 0xed, 0xc6, 0x99, 0xdb, 0xc9, 0xed,
+};
+static const unsigned char kat2675_nonce[] = {0};
+static const unsigned char kat2675_persstr[] = {
+ 0x56, 0x27, 0xa0, 0xa5, 0x54, 0x57, 0xdb, 0x05, 0xe3, 0x90, 0x3d, 0x4b,
+ 0x69, 0xce, 0x15, 0xf5, 0x5f, 0x93, 0x31, 0x68, 0xd6, 0xeb, 0x37, 0x4c,
+ 0x04, 0x4e, 0x8f, 0x10, 0x40, 0xf6, 0x1e, 0xd7, 0xeb, 0x24, 0xf8, 0x7f,
+ 0x91, 0xc6, 0x8c, 0xde, 0x05, 0x0f, 0x50, 0x4b, 0x89, 0x65, 0xdd, 0x81,
+};
+static const unsigned char kat2675_entropyinreseed[] = {
+ 0x18, 0xd1, 0x7e, 0x1b, 0x68, 0x37, 0x88, 0x01, 0xf8, 0x3e, 0x7a, 0xa9,
+ 0xa6, 0xd4, 0xb8, 0x4d, 0x39, 0x60, 0x02, 0x2c, 0x74, 0x0e, 0x6c, 0x84,
+ 0x58, 0x69, 0xa5, 0xdb, 0x55, 0x3d, 0x2e, 0x02, 0x47, 0x9c, 0xd9, 0x2f,
+ 0x3c, 0x0d, 0x8a, 0xbd, 0x3e, 0x92, 0xfc, 0x9c, 0x9f, 0xbc, 0x6a, 0x3f,
+};
+static const unsigned char kat2675_addinreseed[] = {0};
+static const unsigned char kat2675_addin0[] = {0};
+static const unsigned char kat2675_addin1[] = {0};
+static const unsigned char kat2675_retbits[] = {
+ 0x7a, 0x7f, 0x0a, 0xb0, 0x7a, 0x54, 0x0b, 0x4e, 0x9a, 0x3e, 0xda, 0x3f,
+ 0x8b, 0xd1, 0x26, 0x20, 0x15, 0xd8, 0xea, 0x6d, 0x51, 0x2d, 0xbe, 0xa0,
+ 0x59, 0x42, 0x42, 0x1f, 0x5a, 0x73, 0x24, 0x2a, 0xc2, 0x36, 0x00, 0x9e,
+ 0xf0, 0x83, 0xbf, 0x2e, 0x51, 0xb1, 0x9c, 0x40, 0xd1, 0xa0, 0x19, 0x36,
+ 0x7a, 0x6b, 0x96, 0xfb, 0x52, 0xd2, 0x54, 0xe4, 0xd8, 0x81, 0x55, 0x0a,
+ 0xef, 0x05, 0x49, 0xed,
+};
+static const struct drbg_kat_pr_false kat2675_t = {
+ 4, kat2675_entropyin, kat2675_nonce, kat2675_persstr,
+ kat2675_entropyinreseed, kat2675_addinreseed, kat2675_addin0,
+ kat2675_addin1, kat2675_retbits
+};
+static const struct drbg_kat kat2675 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2675_t
+};
+
+static const unsigned char kat2676_entropyin[] = {
+ 0x07, 0x79, 0x3b, 0xac, 0x64, 0x61, 0xf2, 0x3e, 0x5e, 0xb0, 0xd1, 0xbc,
+ 0x60, 0xb5, 0xf7, 0x35, 0x51, 0x54, 0x58, 0xd1, 0x53, 0x05, 0x40, 0xdf,
+ 0x1c, 0x8e, 0x6f, 0xc5, 0xc3, 0xeb, 0xfb, 0x06, 0xb9, 0xdb, 0x60, 0xa8,
+ 0x94, 0x7e, 0xb6, 0x29, 0xff, 0x7a, 0x37, 0x5f, 0xe6, 0x80, 0xd6, 0x96,
+};
+static const unsigned char kat2676_nonce[] = {0};
+static const unsigned char kat2676_persstr[] = {
+ 0xc1, 0xe2, 0x13, 0x2b, 0x77, 0xb6, 0xc1, 0x57, 0x42, 0xe0, 0x6e, 0x85,
+ 0x6c, 0x15, 0x49, 0xc4, 0xcc, 0xeb, 0xd1, 0xb2, 0xed, 0xa9, 0x3e, 0x2c,
+ 0x43, 0x39, 0x1b, 0x52, 0xca, 0xd5, 0x14, 0x90, 0xfe, 0x34, 0x15, 0x7f,
+ 0x57, 0xbe, 0x9e, 0xb4, 0xef, 0xf4, 0x63, 0xb0, 0x59, 0x98, 0x66, 0x80,
+};
+static const unsigned char kat2676_entropyinreseed[] = {
+ 0x23, 0xe4, 0x7e, 0x0c, 0x41, 0x46, 0x2f, 0x7c, 0x61, 0x9b, 0xbc, 0xd5,
+ 0xb7, 0x3f, 0x9a, 0xb1, 0xc6, 0x8c, 0x7c, 0xdf, 0x1e, 0xc9, 0x2c, 0x4c,
+ 0x37, 0x12, 0x64, 0x02, 0x95, 0x8e, 0x11, 0x0e, 0x32, 0x91, 0x07, 0x74,
+ 0x2e, 0x70, 0xdb, 0x61, 0x1b, 0x93, 0x97, 0x4c, 0x39, 0x39, 0x36, 0xa6,
+};
+static const unsigned char kat2676_addinreseed[] = {0};
+static const unsigned char kat2676_addin0[] = {0};
+static const unsigned char kat2676_addin1[] = {0};
+static const unsigned char kat2676_retbits[] = {
+ 0xe6, 0xda, 0xb4, 0xa8, 0x87, 0xf4, 0x8e, 0xc3, 0x3c, 0xb2, 0x93, 0xff,
+ 0xda, 0xb5, 0xfc, 0x69, 0x59, 0x5f, 0x94, 0xc7, 0x2c, 0x5a, 0x9b, 0xb4,
+ 0x3f, 0x46, 0x8f, 0x75, 0x49, 0x01, 0x90, 0xb7, 0xe0, 0xf1, 0x4f, 0x5c,
+ 0x04, 0x55, 0x0c, 0xb6, 0x2a, 0x6d, 0x0e, 0xe0, 0xc3, 0xd8, 0x34, 0xbe,
+ 0x34, 0x34, 0xc8, 0x22, 0x9c, 0x12, 0x40, 0x87, 0xbb, 0x98, 0x5a, 0x06,
+ 0xb9, 0xa3, 0x72, 0x67,
+};
+static const struct drbg_kat_pr_false kat2676_t = {
+ 5, kat2676_entropyin, kat2676_nonce, kat2676_persstr,
+ kat2676_entropyinreseed, kat2676_addinreseed, kat2676_addin0,
+ kat2676_addin1, kat2676_retbits
+};
+static const struct drbg_kat kat2676 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2676_t
+};
+
+static const unsigned char kat2677_entropyin[] = {
+ 0x25, 0xce, 0xfa, 0x05, 0x12, 0x92, 0x1f, 0xd4, 0xa3, 0xa4, 0xe5, 0xe7,
+ 0xc4, 0x8c, 0x62, 0x01, 0x18, 0x5a, 0x69, 0x68, 0x41, 0x9a, 0xe5, 0xbc,
+ 0xc6, 0x66, 0x7b, 0xb7, 0x4c, 0x35, 0xde, 0x4f, 0x91, 0x98, 0x8a, 0x33,
+ 0xf2, 0x5e, 0xa8, 0x8a, 0x84, 0x43, 0xc6, 0x56, 0x43, 0xcc, 0x73, 0xdd,
+};
+static const unsigned char kat2677_nonce[] = {0};
+static const unsigned char kat2677_persstr[] = {
+ 0x07, 0xdd, 0xf1, 0x25, 0x96, 0x0c, 0x34, 0x66, 0x80, 0xb4, 0xb3, 0x61,
+ 0xc0, 0xa9, 0xc6, 0xdc, 0x10, 0x08, 0xa8, 0x5c, 0xe1, 0x86, 0x1b, 0x45,
+ 0xff, 0x18, 0x90, 0x7e, 0x6e, 0x7d, 0xb4, 0x1b, 0x04, 0x6e, 0x5f, 0x01,
+ 0x66, 0x17, 0xe6, 0xc5, 0xb0, 0xce, 0xb5, 0x57, 0x5a, 0xc2, 0x78, 0xa8,
+};
+static const unsigned char kat2677_entropyinreseed[] = {
+ 0x8c, 0xf4, 0x1e, 0x54, 0x13, 0xb0, 0xc8, 0xff, 0xac, 0xbc, 0x4d, 0xfc,
+ 0x11, 0x9f, 0x10, 0xb4, 0x75, 0x69, 0x35, 0x9b, 0x91, 0x14, 0x48, 0xf4,
+ 0x5c, 0x7a, 0xd6, 0x3d, 0xd5, 0x8e, 0x87, 0x24, 0x10, 0xc2, 0x51, 0x76,
+ 0xb9, 0x86, 0xfe, 0xe8, 0xb8, 0x39, 0x66, 0xd0, 0x09, 0x8d, 0x99, 0x6a,
+};
+static const unsigned char kat2677_addinreseed[] = {0};
+static const unsigned char kat2677_addin0[] = {0};
+static const unsigned char kat2677_addin1[] = {0};
+static const unsigned char kat2677_retbits[] = {
+ 0xab, 0x58, 0xec, 0x5c, 0x35, 0x60, 0x05, 0x66, 0xdd, 0x2e, 0xe1, 0x87,
+ 0xa5, 0xb6, 0x7d, 0xfa, 0x65, 0xbe, 0xbe, 0x13, 0x33, 0x36, 0x70, 0xd2,
+ 0xa1, 0x98, 0xfa, 0x5a, 0xf0, 0xc2, 0x02, 0x94, 0xc6, 0xcb, 0x69, 0xd3,
+ 0x75, 0x64, 0xd2, 0xb2, 0x58, 0x7e, 0xa5, 0x58, 0x7e, 0x12, 0x34, 0x1e,
+ 0x77, 0xf4, 0x7f, 0x17, 0x3d, 0x6c, 0xc9, 0xf9, 0xb9, 0xe5, 0xde, 0xdf,
+ 0x0e, 0xe1, 0xa8, 0xd0,
+};
+static const struct drbg_kat_pr_false kat2677_t = {
+ 6, kat2677_entropyin, kat2677_nonce, kat2677_persstr,
+ kat2677_entropyinreseed, kat2677_addinreseed, kat2677_addin0,
+ kat2677_addin1, kat2677_retbits
+};
+static const struct drbg_kat kat2677 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2677_t
+};
+
+static const unsigned char kat2678_entropyin[] = {
+ 0x92, 0x9f, 0x1d, 0xec, 0x0a, 0x6d, 0x14, 0xde, 0x48, 0x3a, 0x2f, 0xe1,
+ 0x14, 0xa4, 0x30, 0x79, 0x6d, 0x0b, 0x44, 0x9f, 0xca, 0x56, 0xa4, 0xdd,
+ 0xbb, 0xe6, 0x61, 0xbd, 0xc2, 0x6a, 0x8d, 0xf8, 0x5c, 0xaf, 0xad, 0x7b,
+ 0x67, 0x7c, 0xcb, 0xf1, 0xfe, 0x4c, 0xb0, 0xd5, 0xe8, 0xcb, 0x57, 0xa9,
+};
+static const unsigned char kat2678_nonce[] = {0};
+static const unsigned char kat2678_persstr[] = {
+ 0x0b, 0xf8, 0xc5, 0x90, 0xa6, 0x66, 0x53, 0xc0, 0x49, 0x47, 0x50, 0xd1,
+ 0x02, 0x74, 0xb5, 0x83, 0xd8, 0x6e, 0x54, 0x0b, 0x51, 0x7b, 0xfc, 0x23,
+ 0xbb, 0x3b, 0x0c, 0x9f, 0xde, 0x37, 0x3e, 0x45, 0x65, 0x58, 0x46, 0x86,
+ 0x03, 0xc2, 0x11, 0x5c, 0x97, 0xd3, 0x66, 0x2e, 0x68, 0x25, 0xf4, 0xf2,
+};
+static const unsigned char kat2678_entropyinreseed[] = {
+ 0x84, 0x03, 0x06, 0x28, 0x53, 0x4b, 0x75, 0x25, 0xdb, 0xd4, 0x02, 0x3a,
+ 0xed, 0x1a, 0xb0, 0x8c, 0x4f, 0x2b, 0x86, 0xa7, 0xc2, 0xfa, 0x3b, 0xc9,
+ 0x55, 0x9b, 0x42, 0x5c, 0xce, 0x07, 0xc3, 0x4f, 0xac, 0x14, 0xe9, 0x63,
+ 0x25, 0x6a, 0xea, 0x03, 0xf7, 0x4f, 0x11, 0x22, 0xa7, 0xa3, 0x04, 0x83,
+};
+static const unsigned char kat2678_addinreseed[] = {0};
+static const unsigned char kat2678_addin0[] = {0};
+static const unsigned char kat2678_addin1[] = {0};
+static const unsigned char kat2678_retbits[] = {
+ 0x19, 0x9f, 0x2d, 0xce, 0x5b, 0xbe, 0x32, 0xc6, 0x93, 0x15, 0x1a, 0x21,
+ 0x6f, 0xb3, 0x6c, 0xce, 0xa7, 0x99, 0x6c, 0x31, 0x3f, 0x6b, 0x78, 0xfa,
+ 0x30, 0xad, 0x81, 0x2a, 0x0e, 0x60, 0x39, 0x65, 0x02, 0x3f, 0xc2, 0x97,
+ 0x06, 0xa7, 0x1b, 0x75, 0x3d, 0x79, 0x24, 0x4c, 0xb9, 0xe8, 0xfd, 0xaf,
+ 0xf4, 0x67, 0xe0, 0xf9, 0x63, 0x42, 0x6b, 0x10, 0xad, 0x89, 0xa9, 0x8e,
+ 0x98, 0x7a, 0xf3, 0x16,
+};
+static const struct drbg_kat_pr_false kat2678_t = {
+ 7, kat2678_entropyin, kat2678_nonce, kat2678_persstr,
+ kat2678_entropyinreseed, kat2678_addinreseed, kat2678_addin0,
+ kat2678_addin1, kat2678_retbits
+};
+static const struct drbg_kat kat2678 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2678_t
+};
+
+static const unsigned char kat2679_entropyin[] = {
+ 0x7b, 0xc5, 0xd9, 0x70, 0x18, 0x6b, 0x9e, 0x1b, 0x00, 0x52, 0xb7, 0x56,
+ 0x4d, 0xba, 0xbf, 0x61, 0xc8, 0x9c, 0xb3, 0xd6, 0x4f, 0xf4, 0x2f, 0x9a,
+ 0x62, 0xd6, 0x25, 0x11, 0x2a, 0xca, 0x04, 0x86, 0xcd, 0xf0, 0x33, 0x6c,
+ 0x36, 0x12, 0x25, 0x4b, 0x40, 0xcb, 0xfb, 0xa8, 0x3a, 0xb6, 0x5b, 0x42,
+};
+static const unsigned char kat2679_nonce[] = {0};
+static const unsigned char kat2679_persstr[] = {
+ 0xa2, 0x53, 0x26, 0xfe, 0xf3, 0x0f, 0x9c, 0x94, 0x42, 0x3d, 0x99, 0x75,
+ 0x9a, 0x1e, 0xe5, 0x75, 0x53, 0x6a, 0x97, 0x15, 0xdf, 0x95, 0x26, 0xde,
+ 0x9a, 0x0b, 0x8d, 0xbc, 0xc3, 0xa2, 0x23, 0x4c, 0xd8, 0x35, 0x61, 0x5f,
+ 0x5d, 0xfe, 0x78, 0x23, 0x92, 0x73, 0x55, 0xf5, 0x69, 0xec, 0x6f, 0x02,
+};
+static const unsigned char kat2679_entropyinreseed[] = {
+ 0xef, 0x8a, 0x01, 0x37, 0x01, 0x3b, 0xe2, 0x12, 0x40, 0x2e, 0x42, 0xb2,
+ 0x8c, 0x03, 0xed, 0x64, 0x20, 0x88, 0x1a, 0xa3, 0x8b, 0x3a, 0x3e, 0x6e,
+ 0x90, 0xa8, 0x61, 0x11, 0x65, 0x16, 0xdf, 0x1e, 0xf7, 0x32, 0xa1, 0x9e,
+ 0x89, 0x35, 0xff, 0xcd, 0x9b, 0xe7, 0xa2, 0xfc, 0x23, 0x67, 0x83, 0xb7,
+};
+static const unsigned char kat2679_addinreseed[] = {0};
+static const unsigned char kat2679_addin0[] = {0};
+static const unsigned char kat2679_addin1[] = {0};
+static const unsigned char kat2679_retbits[] = {
+ 0x29, 0xf8, 0x1e, 0xcf, 0x3f, 0x41, 0xd2, 0x78, 0xc0, 0x1b, 0xba, 0x9a,
+ 0xf9, 0xbc, 0x0f, 0xe6, 0x00, 0x95, 0x39, 0x68, 0x2f, 0x46, 0x72, 0x3c,
+ 0xe5, 0xb0, 0xff, 0x75, 0xfe, 0xd2, 0x17, 0xad, 0x71, 0x58, 0x0b, 0x5d,
+ 0xac, 0x46, 0x28, 0x9e, 0x32, 0x4d, 0x82, 0x40, 0x94, 0xc3, 0x32, 0xc3,
+ 0x95, 0x5c, 0x52, 0x82, 0x57, 0x70, 0x1a, 0x14, 0xec, 0x2b, 0xfe, 0xcc,
+ 0xe4, 0xf6, 0x2a, 0x6c,
+};
+static const struct drbg_kat_pr_false kat2679_t = {
+ 8, kat2679_entropyin, kat2679_nonce, kat2679_persstr,
+ kat2679_entropyinreseed, kat2679_addinreseed, kat2679_addin0,
+ kat2679_addin1, kat2679_retbits
+};
+static const struct drbg_kat kat2679 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2679_t
+};
+
+static const unsigned char kat2680_entropyin[] = {
+ 0x0c, 0x84, 0x1a, 0x24, 0x5a, 0x19, 0x29, 0x52, 0x81, 0x16, 0x3b, 0x07,
+ 0x54, 0x15, 0x90, 0x37, 0x6d, 0x31, 0xd8, 0x6a, 0x9b, 0xe9, 0x9e, 0x66,
+ 0xcc, 0x22, 0x35, 0x2d, 0xab, 0xb2, 0x9f, 0x95, 0xe1, 0x13, 0xee, 0x23,
+ 0x3d, 0x74, 0xd3, 0xf2, 0xb7, 0xf2, 0xf6, 0x08, 0x83, 0x05, 0x25, 0xf0,
+};
+static const unsigned char kat2680_nonce[] = {0};
+static const unsigned char kat2680_persstr[] = {
+ 0x28, 0xd3, 0x58, 0x10, 0x54, 0xd8, 0x7f, 0x15, 0x3a, 0xee, 0x12, 0xed,
+ 0xca, 0x47, 0xba, 0xd8, 0x0b, 0xfc, 0x9b, 0x06, 0x6a, 0xd1, 0xe8, 0xb9,
+ 0xd9, 0x6c, 0x85, 0x1d, 0xc7, 0xb8, 0xed, 0x76, 0x8c, 0xad, 0x00, 0x7b,
+ 0x89, 0x1d, 0x1c, 0x94, 0x47, 0xd4, 0x30, 0x65, 0xb4, 0x83, 0xd0, 0x85,
+};
+static const unsigned char kat2680_entropyinreseed[] = {
+ 0x58, 0x7a, 0x1d, 0xae, 0x75, 0xc2, 0xa1, 0xf2, 0xde, 0xa7, 0xfb, 0x42,
+ 0xef, 0x7b, 0xf3, 0x86, 0x46, 0xb7, 0x6a, 0x96, 0x4e, 0xcd, 0x70, 0x43,
+ 0xd8, 0xb6, 0x2f, 0xdd, 0x9e, 0x6a, 0x5c, 0x00, 0x78, 0x82, 0xf0, 0x2f,
+ 0x78, 0xfd, 0x04, 0x05, 0x61, 0xd1, 0x5a, 0x33, 0x7e, 0x59, 0xf2, 0x57,
+};
+static const unsigned char kat2680_addinreseed[] = {0};
+static const unsigned char kat2680_addin0[] = {0};
+static const unsigned char kat2680_addin1[] = {0};
+static const unsigned char kat2680_retbits[] = {
+ 0xba, 0x7b, 0xce, 0x08, 0x09, 0x63, 0xfe, 0x2b, 0x4e, 0x8f, 0x0e, 0x1a,
+ 0xa7, 0x00, 0xe9, 0x2b, 0x39, 0x08, 0xe1, 0x8d, 0xc7, 0x87, 0x28, 0x66,
+ 0x69, 0x04, 0xb0, 0x22, 0x0e, 0x40, 0x77, 0xfe, 0xf2, 0xcd, 0x18, 0xbb,
+ 0xea, 0x29, 0xa2, 0x75, 0x5a, 0x34, 0x99, 0x79, 0x8c, 0xca, 0x44, 0x5b,
+ 0xb7, 0x52, 0x69, 0xa5, 0xad, 0xca, 0x2f, 0x29, 0x1d, 0xd3, 0x87, 0x54,
+ 0x57, 0xc6, 0x9a, 0x89,
+};
+static const struct drbg_kat_pr_false kat2680_t = {
+ 9, kat2680_entropyin, kat2680_nonce, kat2680_persstr,
+ kat2680_entropyinreseed, kat2680_addinreseed, kat2680_addin0,
+ kat2680_addin1, kat2680_retbits
+};
+static const struct drbg_kat kat2680 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2680_t
+};
+
+static const unsigned char kat2681_entropyin[] = {
+ 0xf4, 0xaf, 0xdd, 0xab, 0xe5, 0x15, 0xca, 0x3e, 0x77, 0x67, 0x30, 0xe7,
+ 0xd4, 0x44, 0x61, 0xb2, 0x7e, 0x8f, 0x72, 0x40, 0x7c, 0xa3, 0x98, 0xd3,
+ 0xfb, 0x57, 0x83, 0x65, 0xe0, 0x9e, 0xa8, 0xc2, 0x4d, 0x6c, 0x4b, 0x09,
+ 0x72, 0x49, 0x07, 0xa6, 0x10, 0xd7, 0x55, 0x40, 0x7d, 0x38, 0x66, 0x7f,
+};
+static const unsigned char kat2681_nonce[] = {0};
+static const unsigned char kat2681_persstr[] = {
+ 0x84, 0x6b, 0xcb, 0xc7, 0x01, 0x4c, 0xa8, 0xc6, 0xfb, 0x04, 0x2a, 0x80,
+ 0xd4, 0xa8, 0xc3, 0xaa, 0x50, 0xb6, 0xc5, 0xef, 0xf1, 0x5e, 0x4b, 0x12,
+ 0xf9, 0x66, 0xab, 0x17, 0xe6, 0x51, 0x4c, 0xbb, 0x22, 0xfb, 0x2e, 0xed,
+ 0x62, 0x8e, 0xe5, 0xc2, 0xa8, 0xac, 0xde, 0x82, 0x1a, 0x95, 0x60, 0x78,
+};
+static const unsigned char kat2681_entropyinreseed[] = {
+ 0xb2, 0xae, 0xab, 0x11, 0x65, 0xb1, 0x50, 0x90, 0x8c, 0x9b, 0xb5, 0x2c,
+ 0x2b, 0x71, 0x67, 0xc1, 0x49, 0xea, 0x4f, 0xb4, 0x71, 0x0e, 0xdc, 0x8a,
+ 0xcf, 0xbc, 0x63, 0xf7, 0x65, 0x2b, 0xb5, 0x52, 0xd6, 0x36, 0xa7, 0xe6,
+ 0xfc, 0x3d, 0x1e, 0x74, 0xd3, 0xf6, 0x54, 0x61, 0xba, 0xaa, 0xc0, 0x87,
+};
+static const unsigned char kat2681_addinreseed[] = {0};
+static const unsigned char kat2681_addin0[] = {0};
+static const unsigned char kat2681_addin1[] = {0};
+static const unsigned char kat2681_retbits[] = {
+ 0x2a, 0x03, 0x35, 0xc3, 0xca, 0xee, 0xec, 0x7c, 0x79, 0x7f, 0x99, 0xfb,
+ 0xc1, 0x45, 0x65, 0x4d, 0x39, 0x85, 0xc3, 0xc7, 0x10, 0x25, 0xc8, 0xe4,
+ 0xbd, 0x4b, 0x09, 0x88, 0x01, 0xf1, 0x5d, 0x21, 0xc2, 0x72, 0x42, 0x04,
+ 0x17, 0xd8, 0x05, 0xb0, 0xad, 0x1c, 0xe6, 0x8f, 0x90, 0x45, 0x02, 0xa4,
+ 0x61, 0x30, 0x24, 0x63, 0x15, 0x95, 0x7b, 0xc0, 0x7a, 0x5d, 0xb4, 0xf3,
+ 0x44, 0x7a, 0x84, 0xe7,
+};
+static const struct drbg_kat_pr_false kat2681_t = {
+ 10, kat2681_entropyin, kat2681_nonce, kat2681_persstr,
+ kat2681_entropyinreseed, kat2681_addinreseed, kat2681_addin0,
+ kat2681_addin1, kat2681_retbits
+};
+static const struct drbg_kat kat2681 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2681_t
+};
+
+static const unsigned char kat2682_entropyin[] = {
+ 0x69, 0x42, 0x41, 0x3e, 0x05, 0xac, 0x48, 0x7c, 0xf5, 0x39, 0xbc, 0x61,
+ 0xaa, 0x68, 0x66, 0xef, 0x8c, 0xbd, 0x9d, 0x0f, 0x15, 0xe1, 0x38, 0x5f,
+ 0x37, 0xbb, 0xa5, 0xa9, 0x51, 0xa2, 0x9f, 0xc9, 0x56, 0xd4, 0x6f, 0x87,
+ 0x40, 0x60, 0x3a, 0xf7, 0xc7, 0x18, 0x00, 0x04, 0x8c, 0x83, 0x12, 0xad,
+};
+static const unsigned char kat2682_nonce[] = {0};
+static const unsigned char kat2682_persstr[] = {
+ 0x47, 0xeb, 0xb1, 0x6c, 0x24, 0xbc, 0x17, 0xad, 0x17, 0x9e, 0x67, 0x30,
+ 0x40, 0x75, 0x26, 0x18, 0x7c, 0xf9, 0x33, 0x2c, 0x17, 0x2a, 0xe5, 0x60,
+ 0x37, 0xae, 0xe4, 0x71, 0xa0, 0xdc, 0xfa, 0x76, 0x6f, 0xe5, 0x18, 0x08,
+ 0xc0, 0xa4, 0x7f, 0xd0, 0x6b, 0x9e, 0x34, 0xbd, 0xed, 0x00, 0x6c, 0x8b,
+};
+static const unsigned char kat2682_entropyinreseed[] = {
+ 0xd8, 0x27, 0x5a, 0xd1, 0x54, 0x5b, 0xc2, 0x4e, 0x77, 0x21, 0x3c, 0xe1,
+ 0xdf, 0xa4, 0x80, 0xd3, 0xb7, 0xa5, 0x6a, 0x2d, 0x5f, 0x26, 0xc1, 0xab,
+ 0x34, 0x5f, 0x9f, 0x0a, 0xc7, 0x12, 0xad, 0x00, 0x4b, 0x0f, 0x6f, 0x03,
+ 0x3b, 0x60, 0x14, 0xc0, 0xf7, 0x80, 0x69, 0xf9, 0x28, 0x40, 0xf6, 0x2b,
+};
+static const unsigned char kat2682_addinreseed[] = {0};
+static const unsigned char kat2682_addin0[] = {0};
+static const unsigned char kat2682_addin1[] = {0};
+static const unsigned char kat2682_retbits[] = {
+ 0x1b, 0x74, 0xcf, 0xa6, 0x34, 0x4d, 0x29, 0x4e, 0xc3, 0xac, 0x80, 0x02,
+ 0xc5, 0x10, 0xb8, 0x6c, 0x0b, 0x45, 0x9c, 0xf7, 0x82, 0x3a, 0xeb, 0x05,
+ 0x33, 0x6a, 0x20, 0xc1, 0x35, 0x5a, 0x31, 0x93, 0x96, 0x6f, 0xdc, 0x8b,
+ 0xa8, 0xf7, 0xcc, 0x13, 0x71, 0xc9, 0xc7, 0x0a, 0x9f, 0x7f, 0xf5, 0x53,
+ 0xc4, 0xc6, 0xda, 0xdf, 0x23, 0xf2, 0xcb, 0x08, 0xe4, 0x04, 0x0a, 0xf5,
+ 0x1f, 0x17, 0x2a, 0xc0,
+};
+static const struct drbg_kat_pr_false kat2682_t = {
+ 11, kat2682_entropyin, kat2682_nonce, kat2682_persstr,
+ kat2682_entropyinreseed, kat2682_addinreseed, kat2682_addin0,
+ kat2682_addin1, kat2682_retbits
+};
+static const struct drbg_kat kat2682 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2682_t
+};
+
+static const unsigned char kat2683_entropyin[] = {
+ 0x9c, 0x14, 0x64, 0x6d, 0x10, 0x47, 0x85, 0x54, 0x6c, 0x4c, 0xf4, 0x73,
+ 0x96, 0xff, 0x1c, 0xcd, 0xd2, 0x6c, 0xc0, 0xcd, 0xe8, 0xc2, 0x0b, 0x5a,
+ 0xa6, 0x4a, 0xa0, 0xba, 0xea, 0xe8, 0x7b, 0x58, 0xf3, 0x48, 0x91, 0x40,
+ 0x81, 0xa1, 0xb3, 0x1d, 0x9a, 0xe0, 0x83, 0xa0, 0xb3, 0x58, 0x8a, 0xa2,
+};
+static const unsigned char kat2683_nonce[] = {0};
+static const unsigned char kat2683_persstr[] = {
+ 0x24, 0x76, 0xed, 0xda, 0x75, 0x43, 0xed, 0xfd, 0xd3, 0x97, 0x0a, 0xe9,
+ 0xb2, 0x79, 0x24, 0x42, 0x49, 0x55, 0xb9, 0x58, 0x80, 0x11, 0xbf, 0x7e,
+ 0xab, 0xd9, 0x64, 0x56, 0xff, 0xff, 0xc4, 0xc9, 0xa0, 0x8e, 0x6b, 0x81,
+ 0x4b, 0x7d, 0xa3, 0x2d, 0x68, 0x0c, 0x25, 0x75, 0xf9, 0xb8, 0x9e, 0x66,
+};
+static const unsigned char kat2683_entropyinreseed[] = {
+ 0x04, 0x15, 0x41, 0x28, 0x28, 0x48, 0x36, 0x62, 0x1b, 0xbe, 0x44, 0x51,
+ 0x48, 0xf7, 0x1e, 0x60, 0xdd, 0x84, 0x21, 0x32, 0x7a, 0x0f, 0xbf, 0x7f,
+ 0xce, 0x07, 0xd6, 0xf4, 0x0a, 0x88, 0xcf, 0x09, 0x8d, 0x4f, 0x77, 0x5f,
+ 0xb7, 0x81, 0x55, 0xe7, 0xe9, 0x09, 0x5a, 0x1f, 0x63, 0x5d, 0x26, 0x5f,
+};
+static const unsigned char kat2683_addinreseed[] = {0};
+static const unsigned char kat2683_addin0[] = {0};
+static const unsigned char kat2683_addin1[] = {0};
+static const unsigned char kat2683_retbits[] = {
+ 0xdf, 0x70, 0xff, 0x84, 0xc4, 0x16, 0x96, 0x4c, 0xec, 0x92, 0x31, 0xc3,
+ 0x08, 0x65, 0x7f, 0x91, 0x81, 0x24, 0xb7, 0x5a, 0xc9, 0x3e, 0xec, 0x80,
+ 0x83, 0xe7, 0x6a, 0xca, 0x89, 0xf9, 0x2a, 0x1c, 0x6b, 0x54, 0xdf, 0x39,
+ 0x77, 0x00, 0x31, 0x75, 0x48, 0x4b, 0xcd, 0x6f, 0xd5, 0xab, 0x5b, 0x4a,
+ 0x90, 0x2d, 0x77, 0x5c, 0x32, 0xdd, 0xd8, 0xbc, 0xf2, 0x35, 0x9b, 0x66,
+ 0x0d, 0xf1, 0x69, 0x1f,
+};
+static const struct drbg_kat_pr_false kat2683_t = {
+ 12, kat2683_entropyin, kat2683_nonce, kat2683_persstr,
+ kat2683_entropyinreseed, kat2683_addinreseed, kat2683_addin0,
+ kat2683_addin1, kat2683_retbits
+};
+static const struct drbg_kat kat2683 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2683_t
+};
+
+static const unsigned char kat2684_entropyin[] = {
+ 0xd2, 0x04, 0x64, 0xfa, 0xf4, 0x11, 0xc7, 0xd8, 0x4e, 0x67, 0x3c, 0xdb,
+ 0x70, 0x58, 0xd0, 0x45, 0x1b, 0xe6, 0x0a, 0x4c, 0x54, 0xb4, 0x19, 0xec,
+ 0x60, 0xcc, 0xec, 0xa7, 0x57, 0xfb, 0x97, 0xdf, 0xc4, 0xf0, 0xb9, 0x1e,
+ 0x66, 0xb3, 0x52, 0x95, 0xd6, 0x8e, 0x86, 0x74, 0x63, 0x49, 0x69, 0x44,
+};
+static const unsigned char kat2684_nonce[] = {0};
+static const unsigned char kat2684_persstr[] = {
+ 0xbd, 0xd2, 0x84, 0x25, 0x55, 0xcb, 0x7a, 0x3f, 0xf2, 0xce, 0x27, 0x43,
+ 0xb6, 0xc7, 0xe3, 0xcb, 0x46, 0x5c, 0xcb, 0xbc, 0x04, 0x4f, 0xc5, 0xc2,
+ 0xfa, 0xf3, 0x5e, 0xe9, 0x94, 0x13, 0xfd, 0x1f, 0x87, 0x91, 0x57, 0x04,
+ 0xcb, 0x82, 0xfc, 0xd6, 0x2c, 0x50, 0x0c, 0xf4, 0xfd, 0x5a, 0x43, 0x0c,
+};
+static const unsigned char kat2684_entropyinreseed[] = {
+ 0xce, 0x02, 0xee, 0x2c, 0x64, 0x7d, 0xc9, 0xa4, 0x55, 0x32, 0x2a, 0x14,
+ 0x2b, 0x92, 0x26, 0xf9, 0x6e, 0xb5, 0x3c, 0x2a, 0x99, 0x51, 0x3a, 0x7a,
+ 0xb3, 0x49, 0xdb, 0x70, 0x2c, 0xdc, 0x55, 0xc8, 0x81, 0x25, 0xf4, 0xee,
+ 0x5a, 0xa8, 0x2a, 0x21, 0x47, 0x96, 0xb2, 0xda, 0xe6, 0x20, 0x91, 0x38,
+};
+static const unsigned char kat2684_addinreseed[] = {0};
+static const unsigned char kat2684_addin0[] = {0};
+static const unsigned char kat2684_addin1[] = {0};
+static const unsigned char kat2684_retbits[] = {
+ 0xac, 0xc5, 0xfd, 0x67, 0x2f, 0xa8, 0x3b, 0x2d, 0xaa, 0xe7, 0x03, 0xba,
+ 0xcf, 0x21, 0x8c, 0x98, 0xac, 0x29, 0xd0, 0x75, 0x1d, 0x9d, 0x5c, 0x9b,
+ 0x7b, 0xc6, 0x85, 0x82, 0xfb, 0xd5, 0x93, 0xb1, 0xa6, 0x91, 0xac, 0xb1,
+ 0x25, 0xbe, 0xf3, 0xc2, 0xed, 0xc1, 0x25, 0xf9, 0xb7, 0x3c, 0xa3, 0x39,
+ 0x19, 0x58, 0xb3, 0xbd, 0xd8, 0x00, 0x7f, 0xc5, 0x04, 0x22, 0xcb, 0xf8,
+ 0x9b, 0x00, 0xca, 0x05,
+};
+static const struct drbg_kat_pr_false kat2684_t = {
+ 13, kat2684_entropyin, kat2684_nonce, kat2684_persstr,
+ kat2684_entropyinreseed, kat2684_addinreseed, kat2684_addin0,
+ kat2684_addin1, kat2684_retbits
+};
+static const struct drbg_kat kat2684 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2684_t
+};
+
+static const unsigned char kat2685_entropyin[] = {
+ 0x44, 0x92, 0x7d, 0x98, 0xe9, 0xc2, 0x75, 0xad, 0x4d, 0x07, 0xbd, 0xa6,
+ 0xb4, 0xc6, 0x2b, 0x29, 0xfe, 0x56, 0x29, 0x27, 0xfb, 0x1e, 0xe7, 0x18,
+ 0x47, 0x3b, 0x3c, 0x74, 0xb9, 0xb2, 0x18, 0x9a, 0x13, 0x3c, 0x11, 0xae,
+ 0xc3, 0x60, 0x7d, 0x39, 0xd6, 0x23, 0xef, 0x35, 0x09, 0x6a, 0x05, 0x5f,
+};
+static const unsigned char kat2685_nonce[] = {0};
+static const unsigned char kat2685_persstr[] = {
+ 0x8c, 0x40, 0xc5, 0x31, 0x7f, 0x29, 0xb6, 0x4d, 0xa7, 0xf4, 0x02, 0x5c,
+ 0xda, 0x90, 0xae, 0x3e, 0x99, 0xba, 0x1e, 0xd3, 0x50, 0x48, 0x20, 0x48,
+ 0xf8, 0x41, 0x1a, 0xf8, 0xb6, 0x94, 0xa9, 0x92, 0x72, 0x62, 0x50, 0x31,
+ 0x71, 0x6c, 0x09, 0x0f, 0x68, 0xc0, 0xfd, 0xdc, 0x7a, 0x70, 0x1e, 0x0d,
+};
+static const unsigned char kat2685_entropyinreseed[] = {
+ 0xcb, 0x79, 0x33, 0xc3, 0xc8, 0x03, 0x64, 0x4d, 0x4a, 0xb7, 0xc3, 0x5b,
+ 0x94, 0x13, 0x19, 0xbe, 0xbf, 0x67, 0x84, 0xf9, 0x8c, 0x04, 0x75, 0x4c,
+ 0x69, 0x35, 0x9e, 0x10, 0xc9, 0x69, 0x3b, 0x57, 0xae, 0x12, 0xe3, 0x8b,
+ 0x08, 0xca, 0x8a, 0x9f, 0x0f, 0x15, 0x14, 0x2c, 0x44, 0x76, 0xf0, 0xbc,
+};
+static const unsigned char kat2685_addinreseed[] = {0};
+static const unsigned char kat2685_addin0[] = {0};
+static const unsigned char kat2685_addin1[] = {0};
+static const unsigned char kat2685_retbits[] = {
+ 0xe9, 0x5d, 0x37, 0x5c, 0x7b, 0x33, 0x54, 0x19, 0x07, 0x21, 0xd5, 0x98,
+ 0xe8, 0xfd, 0xe7, 0xae, 0xf1, 0x6f, 0xb2, 0xa9, 0xdc, 0x96, 0x3e, 0xd7,
+ 0x6e, 0xef, 0x6a, 0x12, 0xab, 0xe2, 0x00, 0x16, 0x22, 0x72, 0x5a, 0x8e,
+ 0x15, 0x45, 0xc7, 0x3c, 0x9a, 0x85, 0x99, 0x5e, 0x6b, 0x07, 0x80, 0x6e,
+ 0x2a, 0xc3, 0x9b, 0x17, 0x9b, 0x59, 0x5b, 0xcf, 0xd9, 0x6b, 0x21, 0x89,
+ 0xb5, 0xd1, 0x04, 0x97,
+};
+static const struct drbg_kat_pr_false kat2685_t = {
+ 14, kat2685_entropyin, kat2685_nonce, kat2685_persstr,
+ kat2685_entropyinreseed, kat2685_addinreseed, kat2685_addin0,
+ kat2685_addin1, kat2685_retbits
+};
+static const struct drbg_kat kat2685 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2685_t
+};
+
+static const unsigned char kat2686_entropyin[] = {
+ 0xae, 0x7e, 0xbe, 0x06, 0x29, 0x71, 0xf5, 0xeb, 0x32, 0xe5, 0xb2, 0x14,
+ 0x44, 0x75, 0x07, 0x85, 0xde, 0x81, 0x65, 0x95, 0xad, 0x2c, 0xbe, 0x80,
+ 0xa2, 0x09, 0xc8, 0xf8, 0xab, 0x04, 0xb5, 0x46, 0x81, 0x66, 0xde, 0x8c,
+ 0x6a, 0xe5, 0x22, 0xd8, 0xf1, 0x0b, 0x56, 0x38, 0x6a, 0x3b, 0x42, 0x4f,
+};
+static const unsigned char kat2686_nonce[] = {0};
+static const unsigned char kat2686_persstr[] = {
+ 0x55, 0x86, 0x0d, 0xae, 0x57, 0xfc, 0xac, 0x29, 0x70, 0x87, 0xc1, 0x37,
+ 0xef, 0xb7, 0x96, 0x87, 0x8a, 0x75, 0x86, 0x8f, 0x6e, 0x76, 0x81, 0x11,
+ 0x4e, 0x9b, 0x73, 0xed, 0x0c, 0x67, 0xe3, 0xc6, 0x2b, 0xfc, 0x9f, 0x5d,
+ 0x77, 0xe8, 0xca, 0xa5, 0x9b, 0xcd, 0xb2, 0x23, 0xf4, 0xff, 0xd2, 0x47,
+};
+static const unsigned char kat2686_entropyinreseed[] = {
+ 0xa4, 0x24, 0x07, 0x93, 0x1b, 0xfe, 0xca, 0x70, 0xe6, 0xee, 0x5d, 0xd1,
+ 0x97, 0x02, 0x1a, 0x12, 0x95, 0x25, 0x05, 0x1c, 0x07, 0x46, 0x8e, 0x8b,
+ 0x25, 0x58, 0x7c, 0x5a, 0xd5, 0x0a, 0xbe, 0x92, 0x04, 0xe8, 0x82, 0xfe,
+ 0x84, 0x7b, 0x8f, 0xd4, 0x7c, 0xf7, 0xb4, 0x36, 0x0e, 0x5a, 0xa0, 0x34,
+};
+static const unsigned char kat2686_addinreseed[] = {
+ 0xee, 0x4c, 0x88, 0xd1, 0xeb, 0x05, 0xf4, 0x85, 0x36, 0x63, 0xea, 0xda,
+ 0x50, 0x1d, 0x2f, 0xc4, 0xb4, 0x98, 0x4b, 0x28, 0x3a, 0x88, 0xdb, 0x57,
+ 0x9a, 0xf2, 0x11, 0x30, 0x31, 0xe0, 0x3d, 0x9b, 0xc5, 0x70, 0xde, 0x94,
+ 0x3d, 0xd1, 0x68, 0x91, 0x8f, 0x3b, 0xa8, 0x06, 0x55, 0x81, 0xfe, 0xa7,
+};
+static const unsigned char kat2686_addin0[] = {
+ 0x4b, 0x4b, 0x03, 0xef, 0x19, 0xb0, 0xf2, 0x59, 0xdc, 0xa2, 0xb3, 0xee,
+ 0x3a, 0xe4, 0xcd, 0x86, 0xc3, 0x89, 0x5a, 0x78, 0x4b, 0x3d, 0x8e, 0xee,
+ 0x04, 0x3a, 0x20, 0x03, 0xc0, 0x82, 0x89, 0xf8, 0xff, 0xfd, 0xad, 0x14,
+ 0x1e, 0x6b, 0x1a, 0xb2, 0x17, 0x4d, 0x8d, 0x5d, 0x79, 0xc1, 0xe5, 0x81,
+};
+static const unsigned char kat2686_addin1[] = {
+ 0x30, 0x62, 0xb3, 0x3f, 0x11, 0x6b, 0x46, 0xe2, 0x0f, 0xe3, 0xc3, 0x54,
+ 0x72, 0x6a, 0xe9, 0xb2, 0xa3, 0xa4, 0xc5, 0x19, 0x22, 0xc8, 0x10, 0x78,
+ 0x63, 0xcb, 0x86, 0xf1, 0xf0, 0xbd, 0xad, 0x75, 0x54, 0x07, 0x56, 0x59,
+ 0xd9, 0x1c, 0x37, 0x1e, 0x2b, 0x11, 0xb1, 0xe8, 0x10, 0x6a, 0x1e, 0xd5,
+};
+static const unsigned char kat2686_retbits[] = {
+ 0x0d, 0x27, 0x05, 0x18, 0xba, 0xea, 0xfa, 0xc1, 0x60, 0xff, 0x1c, 0xb2,
+ 0x8c, 0x11, 0xef, 0x68, 0x71, 0x2c, 0x76, 0x4c, 0x0c, 0x01, 0x67, 0x4e,
+ 0x6c, 0x9c, 0xa2, 0xcc, 0x9c, 0x7e, 0x0e, 0x8a, 0xcc, 0xfd, 0x3c, 0x75,
+ 0x36, 0x35, 0xee, 0x07, 0x00, 0x81, 0xee, 0xe7, 0x62, 0x8a, 0xf6, 0x18,
+ 0x7f, 0xbc, 0x28, 0x54, 0xb3, 0xc2, 0x04, 0x46, 0x1a, 0x79, 0x6c, 0xf3,
+ 0xf3, 0xfc, 0xb0, 0x92,
+};
+static const struct drbg_kat_pr_false kat2686_t = {
+ 0, kat2686_entropyin, kat2686_nonce, kat2686_persstr,
+ kat2686_entropyinreseed, kat2686_addinreseed, kat2686_addin0,
+ kat2686_addin1, kat2686_retbits
+};
+static const struct drbg_kat kat2686 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2686_t
+};
+
+static const unsigned char kat2687_entropyin[] = {
+ 0xcc, 0x1f, 0x1e, 0x4f, 0x22, 0xc7, 0xd7, 0x8b, 0xc7, 0xa4, 0x59, 0x83,
+ 0x45, 0x22, 0xe8, 0x5a, 0x09, 0xbb, 0xf6, 0xcd, 0xdc, 0xd3, 0x73, 0x7e,
+ 0xf9, 0x8f, 0xf0, 0xde, 0x95, 0x0b, 0xf2, 0x89, 0x9f, 0x6c, 0x27, 0xb5,
+ 0x5a, 0x05, 0x0b, 0xaa, 0xb0, 0x30, 0x2c, 0x01, 0x44, 0xc4, 0x32, 0xf4,
+};
+static const unsigned char kat2687_nonce[] = {0};
+static const unsigned char kat2687_persstr[] = {
+ 0x49, 0xd8, 0x95, 0xca, 0x0d, 0xb6, 0x83, 0x7a, 0xf2, 0xfa, 0xa6, 0x50,
+ 0x88, 0x44, 0x75, 0xe8, 0x00, 0xe7, 0x20, 0x05, 0x36, 0x5d, 0xd8, 0xc9,
+ 0x7a, 0xc5, 0x5b, 0xbb, 0x82, 0x4c, 0x42, 0x09, 0x90, 0x3b, 0xa4, 0x40,
+ 0xb0, 0x12, 0x9c, 0x9e, 0xfc, 0x42, 0x0b, 0x4d, 0xd7, 0x4e, 0x56, 0xcb,
+};
+static const unsigned char kat2687_entropyinreseed[] = {
+ 0x00, 0x1c, 0xdf, 0x14, 0x83, 0xbf, 0x3f, 0xa1, 0x7d, 0xca, 0xb3, 0x0e,
+ 0x40, 0xfa, 0x90, 0x0a, 0x4d, 0xdd, 0x78, 0x01, 0x2a, 0x62, 0xc6, 0x9d,
+ 0x84, 0x7c, 0x51, 0x09, 0x0e, 0x08, 0x98, 0xf1, 0x5f, 0x9a, 0x3e, 0x7e,
+ 0xfd, 0x5f, 0x5f, 0xbf, 0x38, 0x0c, 0x95, 0x79, 0x1d, 0xb9, 0xfc, 0xce,
+};
+static const unsigned char kat2687_addinreseed[] = {
+ 0xf8, 0x7d, 0x37, 0x59, 0x9c, 0xc7, 0x94, 0x60, 0x55, 0x4a, 0xff, 0xb5,
+ 0x32, 0xdf, 0xad, 0x33, 0x93, 0xa3, 0xf9, 0x25, 0xcc, 0x11, 0x9e, 0xc3,
+ 0xc7, 0xfe, 0xf1, 0x78, 0xb4, 0x9a, 0xdc, 0x83, 0x8a, 0x38, 0xf3, 0x95,
+ 0x09, 0x1a, 0xdd, 0x5e, 0x78, 0xa9, 0x73, 0x3b, 0x38, 0x34, 0x71, 0x68,
+};
+static const unsigned char kat2687_addin0[] = {
+ 0x9f, 0x0d, 0xb4, 0x8e, 0x5a, 0x14, 0x85, 0x70, 0xd1, 0x52, 0x32, 0xf5,
+ 0x68, 0x21, 0x62, 0x16, 0xeb, 0xa4, 0xfc, 0xcc, 0x1c, 0x52, 0xa1, 0xe7,
+ 0x3f, 0x19, 0x7a, 0x5e, 0x16, 0x25, 0xe4, 0x5d, 0xa8, 0x36, 0x9b, 0xb2,
+ 0x9a, 0xfc, 0xdb, 0xb6, 0xcb, 0x31, 0x88, 0xa9, 0x00, 0x4b, 0xb4, 0x7b,
+};
+static const unsigned char kat2687_addin1[] = {
+ 0xe7, 0xbb, 0x50, 0x5a, 0x81, 0x96, 0x42, 0x8f, 0xaa, 0x5c, 0x40, 0xc6,
+ 0xdd, 0x9b, 0x87, 0x40, 0xc2, 0x46, 0x9e, 0xa5, 0xeb, 0xa1, 0xb5, 0x07,
+ 0x22, 0x78, 0x33, 0xa1, 0x6e, 0x96, 0xfb, 0x2e, 0x8d, 0x2e, 0xb2, 0x27,
+ 0x36, 0x8c, 0x81, 0x7c, 0xcf, 0x3c, 0xe7, 0x85, 0xed, 0x32, 0x75, 0xf0,
+};
+static const unsigned char kat2687_retbits[] = {
+ 0xa3, 0xec, 0xa2, 0xad, 0xeb, 0x14, 0xd3, 0x06, 0xdf, 0x13, 0x9f, 0x28,
+ 0x06, 0x04, 0x98, 0x02, 0x07, 0x22, 0x9f, 0x7d, 0x72, 0x80, 0x6e, 0x9e,
+ 0x2f, 0x7b, 0x91, 0x60, 0x78, 0xde, 0x0e, 0x09, 0xf1, 0xa7, 0xb2, 0xca,
+ 0xc4, 0x1b, 0xf0, 0x18, 0x12, 0xbf, 0x80, 0xc1, 0xb1, 0x3c, 0xd2, 0x27,
+ 0x44, 0xad, 0xce, 0x23, 0xe1, 0xe2, 0x00, 0x01, 0x46, 0xc6, 0x23, 0x6f,
+ 0xb6, 0x7a, 0x92, 0x3c,
+};
+static const struct drbg_kat_pr_false kat2687_t = {
+ 1, kat2687_entropyin, kat2687_nonce, kat2687_persstr,
+ kat2687_entropyinreseed, kat2687_addinreseed, kat2687_addin0,
+ kat2687_addin1, kat2687_retbits
+};
+static const struct drbg_kat kat2687 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2687_t
+};
+
+static const unsigned char kat2688_entropyin[] = {
+ 0xe4, 0x39, 0x43, 0xdf, 0x12, 0xf8, 0x99, 0xfe, 0x7f, 0xbe, 0x1e, 0x65,
+ 0x7d, 0x1b, 0x3d, 0x22, 0xf6, 0x37, 0x1b, 0x96, 0xe0, 0x7a, 0xc8, 0x9a,
+ 0x82, 0xc1, 0x56, 0xc1, 0xe2, 0x8b, 0xf3, 0x39, 0x22, 0xf8, 0xd1, 0x31,
+ 0x6d, 0x52, 0x4c, 0xdc, 0xb9, 0xaf, 0x34, 0x9c, 0x14, 0xfa, 0x23, 0x08,
+};
+static const unsigned char kat2688_nonce[] = {0};
+static const unsigned char kat2688_persstr[] = {
+ 0x0e, 0x2c, 0x55, 0xb0, 0x23, 0xd4, 0x53, 0x61, 0xc4, 0xe7, 0xc5, 0x0a,
+ 0xad, 0x6b, 0x0b, 0x97, 0xa1, 0x9f, 0xe7, 0x03, 0x66, 0x1c, 0xbc, 0xe3,
+ 0xa7, 0x4d, 0x29, 0xf1, 0x31, 0x9f, 0x04, 0x8d, 0xdf, 0x00, 0xe0, 0x1b,
+ 0x66, 0x17, 0xa3, 0xab, 0x64, 0x3c, 0x1c, 0x6e, 0x39, 0xd7, 0x42, 0x0e,
+};
+static const unsigned char kat2688_entropyinreseed[] = {
+ 0x35, 0xb7, 0xf4, 0x79, 0x07, 0x12, 0x71, 0xb6, 0x1d, 0x07, 0x5b, 0x0c,
+ 0x0b, 0xe3, 0xe0, 0xd1, 0x0c, 0xff, 0x77, 0xd9, 0x75, 0x49, 0x2a, 0x93,
+ 0xa5, 0x3c, 0xac, 0x28, 0xc5, 0xdd, 0x6e, 0x9f, 0xfd, 0x39, 0x0a, 0x1e,
+ 0x65, 0x1f, 0x0b, 0xb3, 0xee, 0x68, 0x8b, 0x77, 0xb8, 0x20, 0x35, 0x53,
+};
+static const unsigned char kat2688_addinreseed[] = {
+ 0x45, 0x04, 0x5c, 0x97, 0xd7, 0x11, 0x8f, 0x75, 0x42, 0x9c, 0x14, 0x26,
+ 0xa4, 0xe1, 0x6a, 0x43, 0x59, 0x88, 0xe3, 0x34, 0xe4, 0xe0, 0x66, 0xbd,
+ 0x8e, 0x2f, 0xdb, 0x8b, 0xfc, 0xfc, 0x78, 0x3e, 0x32, 0xf7, 0xce, 0x81,
+ 0x97, 0x29, 0x26, 0xb3, 0xe1, 0xb4, 0x2e, 0x5b, 0x7d, 0xfe, 0x8e, 0xb9,
+};
+static const unsigned char kat2688_addin0[] = {
+ 0x56, 0xbf, 0xee, 0x26, 0x28, 0x51, 0x52, 0xa1, 0x14, 0x83, 0xf7, 0xae,
+ 0x95, 0x1c, 0xae, 0x3b, 0x80, 0xeb, 0x11, 0xa1, 0x3a, 0x13, 0x70, 0xfd,
+ 0x10, 0xd6, 0xa5, 0xe2, 0x59, 0xd8, 0x4b, 0xac, 0x37, 0xaa, 0x2c, 0xbb,
+ 0x3c, 0x75, 0x77, 0xf3, 0x92, 0xd3, 0x18, 0x76, 0xc3, 0xea, 0x10, 0x51,
+};
+static const unsigned char kat2688_addin1[] = {
+ 0x8f, 0xf6, 0x9a, 0xcb, 0x96, 0x8b, 0x1b, 0xc3, 0xbe, 0xbb, 0x71, 0xfa,
+ 0xc8, 0x20, 0xb0, 0xed, 0x44, 0x51, 0x30, 0x22, 0xa3, 0x0a, 0xf4, 0x64,
+ 0x65, 0xdb, 0xd0, 0x28, 0x5a, 0xab, 0xf1, 0xc5, 0x1f, 0x9d, 0x80, 0xac,
+ 0xeb, 0xd3, 0x46, 0x79, 0x89, 0xdd, 0xdc, 0x9b, 0xa3, 0xc1, 0xc4, 0x91,
+};
+static const unsigned char kat2688_retbits[] = {
+ 0x1e, 0x77, 0xb4, 0xcc, 0xd6, 0x1c, 0x11, 0x73, 0x2f, 0x2c, 0x6f, 0x0f,
+ 0x06, 0x0e, 0x0f, 0xd0, 0x3c, 0x9e, 0x17, 0x34, 0xc1, 0xea, 0x1e, 0xc9,
+ 0x80, 0x49, 0x0a, 0x1d, 0x9f, 0x5b, 0x00, 0x36, 0x29, 0xaa, 0xaf, 0x05,
+ 0x40, 0x52, 0x07, 0x39, 0x47, 0x65, 0xba, 0x42, 0x09, 0x94, 0xea, 0x69,
+ 0x4f, 0xfb, 0x3f, 0xb1, 0xe5, 0xd1, 0x19, 0x4f, 0x5e, 0x2c, 0xea, 0xfa,
+ 0x3f, 0xc4, 0xe3, 0xbd,
+};
+static const struct drbg_kat_pr_false kat2688_t = {
+ 2, kat2688_entropyin, kat2688_nonce, kat2688_persstr,
+ kat2688_entropyinreseed, kat2688_addinreseed, kat2688_addin0,
+ kat2688_addin1, kat2688_retbits
+};
+static const struct drbg_kat kat2688 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2688_t
+};
+
+static const unsigned char kat2689_entropyin[] = {
+ 0x0d, 0x94, 0xc5, 0x62, 0x43, 0x52, 0xe4, 0x4f, 0x84, 0x26, 0xc7, 0x7a,
+ 0x96, 0xaa, 0xe9, 0x40, 0x94, 0xad, 0x14, 0x98, 0xc4, 0x3a, 0x50, 0x11,
+ 0x21, 0xf7, 0x78, 0x8a, 0x35, 0x6b, 0x1b, 0x02, 0xa1, 0x6a, 0xbc, 0x92,
+ 0x48, 0x37, 0x5a, 0x99, 0x74, 0xeb, 0x7b, 0x3c, 0xaf, 0x3c, 0xb3, 0x09,
+};
+static const unsigned char kat2689_nonce[] = {0};
+static const unsigned char kat2689_persstr[] = {
+ 0xb6, 0x65, 0xeb, 0x6b, 0x67, 0xf2, 0x13, 0x96, 0x8a, 0x35, 0xb2, 0xc0,
+ 0x06, 0xec, 0x99, 0xa4, 0xfd, 0x93, 0x5c, 0x79, 0xbc, 0xf5, 0xa7, 0xe0,
+ 0x28, 0x67, 0x93, 0xc1, 0x13, 0xed, 0x18, 0xd4, 0x75, 0xe2, 0x90, 0x46,
+ 0x72, 0xff, 0x70, 0x9a, 0x42, 0x26, 0xf2, 0xab, 0x45, 0x1f, 0x20, 0xd6,
+};
+static const unsigned char kat2689_entropyinreseed[] = {
+ 0x38, 0x47, 0xe8, 0x37, 0x34, 0xd3, 0xba, 0x20, 0xb9, 0x03, 0x6c, 0xed,
+ 0x96, 0x82, 0x67, 0xc9, 0x19, 0x65, 0xe3, 0xb4, 0xbf, 0x6a, 0x95, 0x29,
+ 0x8a, 0xea, 0xfc, 0x77, 0x1c, 0xd7, 0x20, 0x40, 0xba, 0x5f, 0xa8, 0xde,
+ 0x47, 0xe1, 0x70, 0x37, 0x4e, 0xed, 0xea, 0xc3, 0x61, 0x9e, 0x39, 0x70,
+};
+static const unsigned char kat2689_addinreseed[] = {
+ 0x8a, 0xab, 0x05, 0x54, 0xd3, 0x9c, 0x30, 0xdd, 0xbe, 0x84, 0x21, 0xc0,
+ 0xcb, 0xbd, 0x29, 0x24, 0xe5, 0xc5, 0x84, 0x1e, 0x91, 0x94, 0xdc, 0xb4,
+ 0x12, 0x97, 0xea, 0x54, 0xab, 0xbc, 0x49, 0x15, 0x3f, 0x10, 0xa7, 0xae,
+ 0xeb, 0x87, 0x8c, 0x01, 0x65, 0x9f, 0x40, 0x73, 0x12, 0x4b, 0xae, 0x25,
+};
+static const unsigned char kat2689_addin0[] = {
+ 0x4a, 0x6b, 0x0e, 0x63, 0xf6, 0xcb, 0xeb, 0xf0, 0x63, 0x61, 0x45, 0xc9,
+ 0x42, 0x4a, 0xf0, 0x7d, 0x1b, 0x36, 0x27, 0x6d, 0x21, 0x45, 0x92, 0xf8,
+ 0x25, 0x96, 0x5c, 0xe8, 0x05, 0x21, 0x96, 0x6a, 0x8a, 0x6a, 0x7d, 0x1a,
+ 0x58, 0x07, 0x47, 0x72, 0x13, 0x1d, 0x6b, 0x52, 0x8a, 0x74, 0x54, 0xd0,
+};
+static const unsigned char kat2689_addin1[] = {
+ 0x25, 0xcf, 0xf5, 0x5c, 0x77, 0x60, 0x47, 0x58, 0x35, 0x86, 0x90, 0x1c,
+ 0x1f, 0x73, 0x0d, 0xe3, 0xd8, 0x6f, 0xb9, 0x12, 0xc4, 0x06, 0x94, 0xb0,
+ 0x92, 0x6c, 0xfb, 0x6e, 0xce, 0x19, 0x96, 0x57, 0x8a, 0xf6, 0xf1, 0x5c,
+ 0x35, 0xf6, 0xb2, 0xcf, 0x82, 0xad, 0xbd, 0x4b, 0xf6, 0xe0, 0xb3, 0xab,
+};
+static const unsigned char kat2689_retbits[] = {
+ 0xec, 0x7d, 0x74, 0x07, 0x4d, 0x81, 0x83, 0xa0, 0xdf, 0x88, 0x5c, 0x28,
+ 0xc1, 0x00, 0x1f, 0x80, 0xfe, 0x00, 0x97, 0x75, 0x84, 0xc8, 0x66, 0x7d,
+ 0xed, 0x0b, 0xd3, 0x63, 0x0f, 0x55, 0x44, 0x89, 0x99, 0x0a, 0x94, 0xab,
+ 0x40, 0xee, 0x2f, 0x01, 0xd9, 0xfd, 0xb4, 0xe2, 0xd0, 0xf7, 0xbb, 0x0e,
+ 0x00, 0xd4, 0x1c, 0x6b, 0x6c, 0x56, 0x8a, 0xde, 0x2c, 0x23, 0x94, 0xa2,
+ 0xb3, 0x2a, 0x1f, 0x14,
+};
+static const struct drbg_kat_pr_false kat2689_t = {
+ 3, kat2689_entropyin, kat2689_nonce, kat2689_persstr,
+ kat2689_entropyinreseed, kat2689_addinreseed, kat2689_addin0,
+ kat2689_addin1, kat2689_retbits
+};
+static const struct drbg_kat kat2689 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2689_t
+};
+
+static const unsigned char kat2690_entropyin[] = {
+ 0x86, 0xb4, 0x43, 0x70, 0x92, 0xcd, 0x13, 0xf4, 0x27, 0x43, 0x1f, 0xf7,
+ 0xb5, 0x5d, 0x3b, 0x9f, 0xd8, 0x73, 0x26, 0x41, 0x5f, 0xba, 0xcb, 0xd6,
+ 0x6e, 0xeb, 0x6c, 0x43, 0xa4, 0x90, 0xc0, 0xfe, 0x33, 0x98, 0x83, 0x77,
+ 0x76, 0x78, 0x8f, 0x67, 0x72, 0x7d, 0x63, 0x2a, 0x60, 0x3b, 0xdf, 0x2a,
+};
+static const unsigned char kat2690_nonce[] = {0};
+static const unsigned char kat2690_persstr[] = {
+ 0xe2, 0x36, 0xba, 0x93, 0x93, 0x70, 0x34, 0xae, 0x24, 0xf1, 0x8f, 0x4e,
+ 0xbd, 0x13, 0x41, 0x79, 0xa3, 0x5d, 0x25, 0x69, 0xcf, 0x2b, 0xaf, 0x0a,
+ 0xf4, 0x30, 0x54, 0x7b, 0xc5, 0xe2, 0xec, 0x4f, 0x6d, 0xb3, 0x36, 0xbf,
+ 0xa8, 0x8d, 0x18, 0x19, 0x70, 0x67, 0x58, 0x75, 0xe5, 0xfb, 0xe1, 0xab,
+};
+static const unsigned char kat2690_entropyinreseed[] = {
+ 0x16, 0x40, 0x84, 0xc7, 0x0f, 0x3b, 0xbb, 0x15, 0x9b, 0x82, 0xf1, 0x3e,
+ 0xd3, 0xd8, 0x13, 0xfa, 0x7a, 0x07, 0x75, 0x6a, 0x96, 0x03, 0x7b, 0xe0,
+ 0x6b, 0x55, 0x61, 0x1d, 0x98, 0xfc, 0xe6, 0x09, 0x87, 0x2e, 0x65, 0x50,
+ 0x7b, 0x99, 0xb5, 0x03, 0xb0, 0x95, 0x9c, 0xad, 0x84, 0x37, 0x2a, 0xa9,
+};
+static const unsigned char kat2690_addinreseed[] = {
+ 0xaa, 0x7e, 0xe7, 0xfe, 0xc7, 0x42, 0x23, 0xdd, 0xa7, 0x30, 0x4e, 0x43,
+ 0xae, 0xfa, 0x8c, 0xeb, 0x51, 0x44, 0xdb, 0x04, 0xd9, 0x8b, 0x73, 0x92,
+ 0xab, 0x09, 0x70, 0x05, 0xa3, 0xa1, 0x23, 0x87, 0xee, 0x1b, 0xbe, 0x36,
+ 0x62, 0xa0, 0xbd, 0x27, 0x78, 0x78, 0x85, 0x5a, 0xc8, 0x92, 0xdc, 0x94,
+};
+static const unsigned char kat2690_addin0[] = {
+ 0xec, 0x19, 0xa5, 0xd7, 0xd6, 0x6a, 0x60, 0x34, 0xef, 0x83, 0xff, 0xdb,
+ 0x24, 0xac, 0x54, 0xe9, 0xd3, 0xd3, 0x8f, 0x05, 0x17, 0xed, 0x7e, 0xdb,
+ 0xb9, 0xa3, 0xac, 0xb6, 0x48, 0xe4, 0xc4, 0xb0, 0x2f, 0x97, 0x48, 0x75,
+ 0xcd, 0x31, 0x49, 0xb3, 0x74, 0x32, 0xae, 0x5d, 0x3b, 0x0d, 0x90, 0xee,
+};
+static const unsigned char kat2690_addin1[] = {
+ 0x98, 0xea, 0x06, 0x24, 0xbf, 0xc9, 0x5d, 0x0c, 0x0f, 0x7b, 0x81, 0x0c,
+ 0x46, 0x4e, 0xf2, 0x2e, 0x94, 0xc1, 0x23, 0x92, 0xdf, 0x54, 0x14, 0xcf,
+ 0x6e, 0x62, 0x01, 0xc2, 0xd7, 0xdb, 0x2e, 0x85, 0x70, 0xf0, 0x95, 0x41,
+ 0x33, 0x4d, 0xb0, 0xf1, 0x35, 0x8b, 0x5c, 0x0f, 0xa2, 0xcf, 0x6d, 0x77,
+};
+static const unsigned char kat2690_retbits[] = {
+ 0xa2, 0x7f, 0xac, 0xdb, 0xdb, 0xf4, 0x9e, 0x64, 0xb5, 0x53, 0x90, 0xbe,
+ 0xb3, 0x52, 0x60, 0xa0, 0x71, 0x3a, 0xb9, 0x13, 0xd7, 0xe5, 0xa0, 0x8a,
+ 0xaf, 0x01, 0xe8, 0x3c, 0xc9, 0x45, 0x03, 0xe3, 0x2d, 0x6a, 0x44, 0xa7,
+ 0x70, 0xf7, 0xa9, 0xef, 0x6d, 0x3a, 0x9f, 0x96, 0xd3, 0xa3, 0x38, 0x59,
+ 0xd5, 0x68, 0xdb, 0xf3, 0xe8, 0x56, 0xfd, 0x91, 0x17, 0x7a, 0x05, 0xfb,
+ 0xf9, 0x9d, 0xc4, 0xfb,
+};
+static const struct drbg_kat_pr_false kat2690_t = {
+ 4, kat2690_entropyin, kat2690_nonce, kat2690_persstr,
+ kat2690_entropyinreseed, kat2690_addinreseed, kat2690_addin0,
+ kat2690_addin1, kat2690_retbits
+};
+static const struct drbg_kat kat2690 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2690_t
+};
+
+static const unsigned char kat2691_entropyin[] = {
+ 0x1a, 0x77, 0xf3, 0x3b, 0xfc, 0xee, 0xad, 0xf6, 0x8b, 0x79, 0xdd, 0x40,
+ 0xee, 0x85, 0x6e, 0x9e, 0x06, 0x68, 0x05, 0x91, 0x79, 0x78, 0x3f, 0xa7,
+ 0x3d, 0x91, 0xf5, 0x88, 0xef, 0xf2, 0x42, 0xbc, 0xe1, 0x1d, 0xc6, 0x6c,
+ 0xcb, 0x90, 0x31, 0x0b, 0x29, 0x1f, 0x4a, 0x96, 0x3f, 0x2a, 0x96, 0xb4,
+};
+static const unsigned char kat2691_nonce[] = {0};
+static const unsigned char kat2691_persstr[] = {
+ 0x98, 0x43, 0x5f, 0xc8, 0x21, 0x60, 0x67, 0x72, 0x89, 0x4e, 0x46, 0xc5,
+ 0x53, 0x56, 0xfa, 0x88, 0x3f, 0x0a, 0xfb, 0x1b, 0x1f, 0x4e, 0xe4, 0x0f,
+ 0xa5, 0x6c, 0xac, 0x09, 0xcc, 0xbd, 0xc3, 0x8b, 0x7d, 0x3a, 0x3f, 0xb2,
+ 0x57, 0x1d, 0x2f, 0xcb, 0x9e, 0xb5, 0x91, 0x8b, 0x60, 0xc0, 0xba, 0x3e,
+};
+static const unsigned char kat2691_entropyinreseed[] = {
+ 0x6b, 0x0a, 0x37, 0x51, 0x52, 0x49, 0xab, 0x5e, 0x26, 0x60, 0x5b, 0xd0,
+ 0x8c, 0xbc, 0x7f, 0x55, 0x23, 0xf4, 0xe5, 0x52, 0xf0, 0x06, 0xfa, 0xa7,
+ 0xc2, 0x43, 0x31, 0x32, 0xc0, 0xa4, 0x5f, 0xeb, 0x87, 0x5c, 0x88, 0x01,
+ 0xec, 0x35, 0x45, 0x4a, 0x1e, 0xb1, 0x36, 0x04, 0xef, 0xdb, 0x33, 0x25,
+};
+static const unsigned char kat2691_addinreseed[] = {
+ 0xc6, 0xba, 0x05, 0xb7, 0x19, 0x7e, 0x06, 0xf1, 0x1b, 0x35, 0xa7, 0x82,
+ 0x4f, 0x6b, 0x8f, 0x51, 0xaf, 0xe1, 0xd6, 0xcd, 0x80, 0x64, 0x06, 0x97,
+ 0x56, 0x7b, 0x93, 0x4d, 0xaa, 0x62, 0xac, 0xbe, 0x73, 0x1a, 0xd8, 0xba,
+ 0x2f, 0xc7, 0x82, 0x17, 0xde, 0xce, 0xc4, 0xce, 0xbd, 0x46, 0xd5, 0x22,
+};
+static const unsigned char kat2691_addin0[] = {
+ 0x2e, 0xba, 0x46, 0x3e, 0x52, 0xff, 0x2a, 0x18, 0x0a, 0xad, 0x34, 0x93,
+ 0xe9, 0x47, 0x6a, 0x4b, 0x97, 0x2b, 0xf3, 0x2c, 0x9c, 0xcb, 0x13, 0xef,
+ 0xab, 0xf0, 0x62, 0x4f, 0x1c, 0x44, 0xdf, 0x80, 0x48, 0xc8, 0xc6, 0x47,
+ 0x2f, 0x73, 0xfd, 0xaa, 0x60, 0x12, 0x7e, 0x66, 0x9a, 0x43, 0x22, 0x94,
+};
+static const unsigned char kat2691_addin1[] = {
+ 0x25, 0x11, 0x07, 0x98, 0xe0, 0x6a, 0xf4, 0x73, 0x01, 0x3a, 0x2a, 0x04,
+ 0xf3, 0x59, 0xe1, 0x5f, 0xdf, 0xdd, 0x03, 0x06, 0xb8, 0xb9, 0x28, 0x98,
+ 0x5f, 0x67, 0x87, 0x2b, 0xba, 0xa4, 0x4c, 0xef, 0x57, 0x93, 0xac, 0x14,
+ 0xd6, 0xa9, 0x9d, 0x05, 0xd2, 0xc2, 0x69, 0x2d, 0x08, 0xd5, 0xe3, 0x96,
+};
+static const unsigned char kat2691_retbits[] = {
+ 0x92, 0x79, 0x02, 0xf7, 0x5f, 0x10, 0xc5, 0x88, 0x0f, 0x0d, 0x93, 0x0c,
+ 0xa6, 0xc3, 0x6a, 0x20, 0xc7, 0xe4, 0xf2, 0x53, 0x56, 0x72, 0x71, 0x4f,
+ 0x96, 0xbe, 0xf7, 0x2d, 0x77, 0xb0, 0xf8, 0x71, 0x8e, 0x45, 0x46, 0xe4,
+ 0xe3, 0xfa, 0x2e, 0x7b, 0x24, 0x5e, 0x4d, 0xed, 0xb7, 0x42, 0x5e, 0xa6,
+ 0x78, 0xa1, 0x8e, 0xda, 0xdc, 0x90, 0xad, 0xe8, 0x6b, 0xc2, 0x61, 0x99,
+ 0x2b, 0x02, 0xbd, 0x9a,
+};
+static const struct drbg_kat_pr_false kat2691_t = {
+ 5, kat2691_entropyin, kat2691_nonce, kat2691_persstr,
+ kat2691_entropyinreseed, kat2691_addinreseed, kat2691_addin0,
+ kat2691_addin1, kat2691_retbits
+};
+static const struct drbg_kat kat2691 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2691_t
+};
+
+static const unsigned char kat2692_entropyin[] = {
+ 0x4f, 0xad, 0xa5, 0x8a, 0x9f, 0xca, 0x48, 0xa9, 0x57, 0x2c, 0xb9, 0xfd,
+ 0x1d, 0xe3, 0x80, 0xa2, 0xd9, 0xe0, 0x39, 0x97, 0x14, 0x87, 0xad, 0x53,
+ 0xa5, 0xf8, 0xc8, 0x64, 0x13, 0x50, 0xd0, 0x54, 0x32, 0xdc, 0xfb, 0x68,
+ 0x31, 0x31, 0x38, 0x0d, 0x35, 0xcf, 0x1c, 0x6d, 0x47, 0x4e, 0x4f, 0x3d,
+};
+static const unsigned char kat2692_nonce[] = {0};
+static const unsigned char kat2692_persstr[] = {
+ 0xa0, 0xb4, 0x53, 0xb3, 0xf8, 0x6b, 0x45, 0x5c, 0x02, 0xd2, 0x7d, 0xf3,
+ 0x47, 0x77, 0x53, 0x66, 0xae, 0x01, 0x46, 0x6c, 0x9a, 0xba, 0x27, 0xd5,
+ 0x1c, 0x75, 0x92, 0x8a, 0xd1, 0xf3, 0x1b, 0x27, 0x8b, 0xc0, 0xe4, 0x05,
+ 0x2e, 0xf7, 0x02, 0xd9, 0x95, 0xf3, 0x02, 0xc3, 0x13, 0x94, 0xf9, 0x43,
+};
+static const unsigned char kat2692_entropyinreseed[] = {
+ 0x6c, 0xd3, 0xb9, 0xec, 0x6e, 0x0d, 0xfc, 0xfc, 0x3c, 0xaa, 0x90, 0xad,
+ 0x28, 0x12, 0xd0, 0x95, 0x13, 0x31, 0x0e, 0xbd, 0x95, 0x06, 0x06, 0x4d,
+ 0x05, 0xa5, 0x9d, 0x68, 0xa9, 0x44, 0x05, 0x38, 0x8a, 0xfa, 0x31, 0x35,
+ 0x18, 0xa7, 0x05, 0x5e, 0x29, 0xb2, 0xe2, 0xfc, 0x52, 0xa9, 0xa9, 0x88,
+};
+static const unsigned char kat2692_addinreseed[] = {
+ 0x39, 0xaa, 0x04, 0x1c, 0x27, 0xcd, 0x50, 0xf6, 0xd4, 0x35, 0x6d, 0x7b,
+ 0xf9, 0x02, 0x43, 0xba, 0x4f, 0x69, 0x64, 0x34, 0x8a, 0x88, 0x2c, 0xa5,
+ 0x03, 0x30, 0xc6, 0xf3, 0x98, 0xf0, 0xb8, 0x99, 0x2b, 0xc3, 0xc6, 0xda,
+ 0x90, 0xe0, 0xcd, 0x57, 0x07, 0x7a, 0xa0, 0xa9, 0xda, 0x48, 0x01, 0x6b,
+};
+static const unsigned char kat2692_addin0[] = {
+ 0xc6, 0xe3, 0x42, 0xa2, 0x36, 0x5a, 0xfa, 0xf6, 0x1d, 0xa4, 0x0a, 0x91,
+ 0xfe, 0x6b, 0xa9, 0x50, 0xb0, 0xa1, 0x0a, 0x05, 0xcc, 0x68, 0xf5, 0xff,
+ 0xde, 0x7c, 0xb1, 0x2c, 0xa4, 0x65, 0x0f, 0xfa, 0xb8, 0x17, 0x8b, 0x1f,
+ 0xd6, 0xeb, 0x07, 0xc6, 0xe3, 0x69, 0xb2, 0xea, 0x41, 0xdc, 0x2a, 0xdb,
+};
+static const unsigned char kat2692_addin1[] = {
+ 0x75, 0x5c, 0x62, 0x10, 0x63, 0x60, 0x79, 0xab, 0x96, 0x6f, 0xa2, 0x95,
+ 0x68, 0x97, 0x5d, 0xe9, 0x80, 0xb0, 0xe5, 0xdb, 0xe4, 0xea, 0x1f, 0xc1,
+ 0xd3, 0xa8, 0x6e, 0x21, 0x7f, 0xf6, 0xb5, 0x7d, 0xc0, 0x4d, 0x7a, 0x71,
+ 0x37, 0x79, 0xe9, 0x29, 0xd4, 0x22, 0x77, 0x57, 0x16, 0x1e, 0x1d, 0xfd,
+};
+static const unsigned char kat2692_retbits[] = {
+ 0x02, 0xa6, 0x00, 0xe0, 0x72, 0x87, 0x3e, 0x39, 0x6a, 0xe4, 0xdf, 0x5d,
+ 0x71, 0x19, 0xdc, 0xf0, 0x0c, 0x25, 0x6b, 0xdb, 0xa7, 0x68, 0x08, 0x41,
+ 0x9a, 0x50, 0xd4, 0x10, 0x36, 0xbe, 0xe1, 0x5f, 0xcd, 0x3d, 0x6f, 0xbe,
+ 0x03, 0xf2, 0x25, 0xa4, 0x87, 0x03, 0x86, 0xd4, 0x4e, 0x73, 0x5a, 0xf5,
+ 0x1c, 0xe4, 0x14, 0xf5, 0xc7, 0x03, 0xee, 0x9d, 0xb5, 0x16, 0xb5, 0x62,
+ 0xb4, 0x12, 0xbb, 0xc9,
+};
+static const struct drbg_kat_pr_false kat2692_t = {
+ 6, kat2692_entropyin, kat2692_nonce, kat2692_persstr,
+ kat2692_entropyinreseed, kat2692_addinreseed, kat2692_addin0,
+ kat2692_addin1, kat2692_retbits
+};
+static const struct drbg_kat kat2692 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2692_t
+};
+
+static const unsigned char kat2693_entropyin[] = {
+ 0x85, 0x98, 0x99, 0x6f, 0x8b, 0x6a, 0xdc, 0xb8, 0xac, 0x64, 0x4d, 0x73,
+ 0x84, 0xeb, 0x95, 0xbf, 0x6f, 0x95, 0x29, 0xac, 0x0f, 0x3d, 0xab, 0xd2,
+ 0x38, 0x85, 0x5e, 0x6d, 0x45, 0x45, 0xc4, 0x3b, 0x85, 0xbf, 0xf2, 0x99,
+ 0x76, 0xd6, 0x7c, 0xf1, 0xc9, 0x7b, 0x4b, 0x33, 0x30, 0x17, 0x67, 0xb1,
+};
+static const unsigned char kat2693_nonce[] = {0};
+static const unsigned char kat2693_persstr[] = {
+ 0xff, 0x20, 0x7a, 0x4f, 0x36, 0xeb, 0x9d, 0xae, 0xdc, 0xe0, 0xac, 0xd9,
+ 0x9e, 0x63, 0x91, 0x3c, 0x16, 0xc3, 0x68, 0xb4, 0x67, 0x56, 0x2a, 0x92,
+ 0xea, 0x2c, 0x47, 0xcc, 0x4d, 0xd6, 0xb5, 0xc9, 0xb6, 0x37, 0x69, 0x1d,
+ 0x6d, 0x07, 0xf6, 0x1c, 0x05, 0xf4, 0xb8, 0x69, 0x54, 0xa2, 0xbd, 0x26,
+};
+static const unsigned char kat2693_entropyinreseed[] = {
+ 0x5a, 0x74, 0x8c, 0x44, 0xbe, 0xe4, 0x75, 0x86, 0x2d, 0xb1, 0xe0, 0xd1,
+ 0xd4, 0x96, 0x79, 0xe9, 0x34, 0xb0, 0x3a, 0x5a, 0x4b, 0x19, 0x9d, 0xdd,
+ 0xcb, 0x5e, 0x6a, 0x91, 0xac, 0xc0, 0x12, 0x63, 0xfd, 0xc8, 0xea, 0xab,
+ 0xdf, 0x7a, 0xe0, 0xfb, 0x7b, 0x75, 0x2b, 0x20, 0x73, 0x1b, 0x03, 0xd1,
+};
+static const unsigned char kat2693_addinreseed[] = {
+ 0x94, 0x98, 0xd3, 0xa6, 0x65, 0xf7, 0x87, 0x45, 0xd6, 0x5a, 0x04, 0x14,
+ 0x14, 0x20, 0xcb, 0x5c, 0xa1, 0x38, 0x9c, 0x15, 0x47, 0x82, 0xfa, 0x10,
+ 0x17, 0x4e, 0x48, 0x4c, 0xf7, 0xbf, 0x27, 0xf8, 0x29, 0x2b, 0xad, 0x48,
+ 0x95, 0x6e, 0x2a, 0x16, 0xdc, 0x80, 0xad, 0x13, 0x53, 0x79, 0xc2, 0xa8,
+};
+static const unsigned char kat2693_addin0[] = {
+ 0xa1, 0xf1, 0xb6, 0x81, 0x57, 0x99, 0xed, 0x98, 0xf3, 0x05, 0x62, 0x47,
+ 0xc7, 0x1c, 0x17, 0x48, 0x5e, 0xc6, 0x15, 0x83, 0x92, 0x21, 0x16, 0xcd,
+ 0xf4, 0xce, 0xb8, 0xfb, 0xa2, 0x4b, 0x80, 0xf0, 0x87, 0xcf, 0x91, 0x9f,
+ 0x3a, 0xae, 0x69, 0x62, 0xae, 0x2a, 0x35, 0x33, 0x05, 0x46, 0x91, 0x51,
+};
+static const unsigned char kat2693_addin1[] = {
+ 0xb6, 0xf2, 0x56, 0xef, 0x1c, 0x62, 0xd4, 0xd7, 0xb0, 0x60, 0x57, 0xcc,
+ 0x93, 0x96, 0x8e, 0xeb, 0x18, 0xc5, 0x47, 0x4d, 0x0b, 0xb8, 0xc2, 0x18,
+ 0xd3, 0x6d, 0x89, 0x09, 0x7a, 0x89, 0xd7, 0x59, 0x91, 0xad, 0x80, 0xc9,
+ 0xe3, 0x95, 0x37, 0x51, 0x5c, 0x5a, 0xec, 0x3e, 0x55, 0xb3, 0x20, 0x51,
+};
+static const unsigned char kat2693_retbits[] = {
+ 0x2b, 0x69, 0xdf, 0xb0, 0xeb, 0x74, 0x3e, 0xaf, 0x89, 0x26, 0x89, 0x11,
+ 0x7a, 0x30, 0x17, 0xa6, 0x2d, 0xe6, 0x3f, 0x65, 0x3e, 0xa7, 0x44, 0x0f,
+ 0xb2, 0x9c, 0x47, 0x3d, 0x0b, 0x72, 0x9e, 0x64, 0x9a, 0x41, 0x6f, 0xee,
+ 0x20, 0x2b, 0x2d, 0xe9, 0x4e, 0x19, 0xe0, 0x91, 0x5c, 0x38, 0xfc, 0xbb,
+ 0x81, 0x39, 0xda, 0x40, 0x76, 0xca, 0xca, 0x86, 0x5f, 0x01, 0x24, 0xae,
+ 0x8b, 0x6b, 0xac, 0xd2,
+};
+static const struct drbg_kat_pr_false kat2693_t = {
+ 7, kat2693_entropyin, kat2693_nonce, kat2693_persstr,
+ kat2693_entropyinreseed, kat2693_addinreseed, kat2693_addin0,
+ kat2693_addin1, kat2693_retbits
+};
+static const struct drbg_kat kat2693 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2693_t
+};
+
+static const unsigned char kat2694_entropyin[] = {
+ 0x77, 0xa9, 0x54, 0x9d, 0x33, 0xe3, 0x50, 0xa7, 0x18, 0x39, 0x56, 0xbb,
+ 0x94, 0x74, 0x6d, 0x32, 0xd3, 0x64, 0x9c, 0xcd, 0xe8, 0xa5, 0x8f, 0x7b,
+ 0x8e, 0x78, 0xd5, 0x4d, 0xc2, 0x0c, 0xb1, 0x8a, 0x67, 0x58, 0xf4, 0x54,
+ 0xb8, 0x72, 0x7c, 0xb3, 0x47, 0xeb, 0xfb, 0x54, 0x30, 0x56, 0xf9, 0x51,
+};
+static const unsigned char kat2694_nonce[] = {0};
+static const unsigned char kat2694_persstr[] = {
+ 0xf4, 0x49, 0x33, 0x9c, 0x1e, 0xae, 0xf6, 0xe6, 0x56, 0x32, 0x50, 0x39,
+ 0xba, 0xaf, 0x4b, 0xec, 0x9e, 0x12, 0x54, 0x17, 0x77, 0xe9, 0x9b, 0x2b,
+ 0xf3, 0xb3, 0xc8, 0x07, 0x7d, 0x8f, 0x95, 0x70, 0xf9, 0x59, 0xcc, 0x18,
+ 0xe5, 0x0b, 0xcc, 0x01, 0xda, 0xfa, 0x91, 0xf8, 0x0a, 0x8f, 0x9d, 0x6e,
+};
+static const unsigned char kat2694_entropyinreseed[] = {
+ 0x08, 0x12, 0xe9, 0xb4, 0x71, 0x13, 0x6b, 0x0b, 0x11, 0xda, 0xbe, 0x90,
+ 0x2e, 0x76, 0xf6, 0xef, 0x07, 0x82, 0xfa, 0xf0, 0x65, 0x50, 0x6f, 0x2d,
+ 0x21, 0xef, 0x7d, 0x4b, 0xba, 0x85, 0xc9, 0x53, 0x6a, 0x10, 0xdf, 0xbf,
+ 0xbf, 0x0d, 0x4f, 0xb0, 0x5c, 0x67, 0x47, 0xe9, 0xa6, 0x32, 0xae, 0xba,
+};
+static const unsigned char kat2694_addinreseed[] = {
+ 0x56, 0xf2, 0x78, 0x37, 0x73, 0xf8, 0xeb, 0xcb, 0x04, 0x28, 0xd1, 0x25,
+ 0x2b, 0x6a, 0x46, 0x72, 0x49, 0xcf, 0x9a, 0x2f, 0xab, 0xc5, 0xef, 0x08,
+ 0x4a, 0x35, 0x62, 0xac, 0x57, 0x66, 0x5c, 0x05, 0xf8, 0x21, 0x4e, 0xb6,
+ 0xa1, 0xaf, 0x29, 0xa2, 0xab, 0x67, 0x3f, 0xc1, 0xa7, 0x0d, 0xe1, 0x77,
+};
+static const unsigned char kat2694_addin0[] = {
+ 0x36, 0x8c, 0x30, 0x91, 0xd7, 0x0d, 0x55, 0xcf, 0xb0, 0x9a, 0x97, 0xa6,
+ 0xc7, 0x9c, 0xae, 0x15, 0x6a, 0x45, 0xfb, 0x1d, 0x53, 0xa1, 0x26, 0x15,
+ 0xf0, 0xf1, 0xf4, 0x63, 0xbe, 0x07, 0x52, 0x73, 0xa3, 0x11, 0xad, 0x9e,
+ 0x41, 0x42, 0x91, 0xcd, 0x51, 0xcf, 0x82, 0xaa, 0x81, 0xa2, 0xdb, 0x42,
+};
+static const unsigned char kat2694_addin1[] = {
+ 0x31, 0xa6, 0xb7, 0x34, 0xe6, 0xf9, 0xb1, 0x2e, 0xaf, 0xb2, 0xea, 0x23,
+ 0xd0, 0xd8, 0xdf, 0xcf, 0x74, 0x67, 0x7f, 0xd3, 0x7f, 0x83, 0xc9, 0xe9,
+ 0x49, 0xf4, 0xb4, 0x6d, 0xf5, 0x6f, 0x5c, 0x1e, 0x15, 0xde, 0x91, 0x30,
+ 0x8c, 0x43, 0x84, 0x8f, 0xb0, 0xe1, 0x2b, 0xda, 0x36, 0xbe, 0x13, 0xfd,
+};
+static const unsigned char kat2694_retbits[] = {
+ 0xc4, 0x68, 0x57, 0x92, 0x91, 0xe3, 0x90, 0x6a, 0x13, 0xad, 0x74, 0x75,
+ 0xa0, 0x56, 0xee, 0xbe, 0x94, 0x0a, 0xdc, 0x2f, 0x06, 0xd1, 0x95, 0xcc,
+ 0x68, 0x6b, 0xc4, 0x25, 0x20, 0x6e, 0xba, 0x21, 0x71, 0x7c, 0xdf, 0xc7,
+ 0x9f, 0xb6, 0x3f, 0x6b, 0x0f, 0x1b, 0x78, 0x20, 0x5d, 0x99, 0x42, 0x9b,
+ 0x55, 0x74, 0x63, 0x06, 0x70, 0xf9, 0xab, 0xda, 0xc1, 0x52, 0x7e, 0xde,
+ 0x9e, 0xfe, 0xb0, 0xed,
+};
+static const struct drbg_kat_pr_false kat2694_t = {
+ 8, kat2694_entropyin, kat2694_nonce, kat2694_persstr,
+ kat2694_entropyinreseed, kat2694_addinreseed, kat2694_addin0,
+ kat2694_addin1, kat2694_retbits
+};
+static const struct drbg_kat kat2694 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2694_t
+};
+
+static const unsigned char kat2695_entropyin[] = {
+ 0x61, 0x4d, 0x94, 0x22, 0x69, 0x48, 0x51, 0x64, 0x73, 0x9e, 0xb1, 0x9b,
+ 0x28, 0xef, 0x16, 0x30, 0xc6, 0x9d, 0x0e, 0xf4, 0xe9, 0xa4, 0x32, 0xbd,
+ 0x82, 0x24, 0x0c, 0x07, 0x60, 0xf2, 0xfd, 0x08, 0x12, 0xa6, 0x6e, 0xac,
+ 0x75, 0xf0, 0xbd, 0x71, 0xf1, 0x85, 0xad, 0x06, 0xd0, 0x6c, 0xab, 0x4e,
+};
+static const unsigned char kat2695_nonce[] = {0};
+static const unsigned char kat2695_persstr[] = {
+ 0xc2, 0x5d, 0x67, 0x67, 0x6e, 0x29, 0x38, 0xfb, 0x26, 0x14, 0x06, 0xbd,
+ 0x65, 0xf1, 0xfb, 0xe7, 0xf9, 0x92, 0x97, 0x9a, 0x65, 0x5b, 0xda, 0xba,
+ 0x40, 0xfd, 0xd8, 0xfe, 0x78, 0x87, 0x17, 0x32, 0x8c, 0xf4, 0xfd, 0xaa,
+ 0x22, 0xf3, 0x86, 0xe5, 0x34, 0x16, 0x77, 0x31, 0x3b, 0xac, 0xed, 0x1f,
+};
+static const unsigned char kat2695_entropyinreseed[] = {
+ 0x53, 0x4d, 0xba, 0x01, 0xad, 0xbf, 0x78, 0xe6, 0x7c, 0xbc, 0x50, 0x82,
+ 0xab, 0x0c, 0x08, 0x95, 0xd2, 0x2a, 0x7c, 0x96, 0x34, 0x48, 0x3a, 0xfb,
+ 0xb9, 0x49, 0xc0, 0x9a, 0x46, 0x38, 0xfa, 0x28, 0xe3, 0x3b, 0x4a, 0xd7,
+ 0x8b, 0x02, 0x4b, 0xc6, 0x39, 0xf3, 0x8f, 0x77, 0x10, 0xff, 0x00, 0x4f,
+};
+static const unsigned char kat2695_addinreseed[] = {
+ 0xaa, 0x83, 0xad, 0x17, 0xb8, 0xca, 0x4c, 0x98, 0x26, 0xae, 0xba, 0x8b,
+ 0x34, 0xe2, 0x5e, 0x98, 0x8c, 0x33, 0x35, 0xd6, 0x53, 0xf1, 0x27, 0x49,
+ 0xb2, 0x19, 0x5e, 0x73, 0x43, 0xfd, 0x66, 0x83, 0x13, 0x43, 0x20, 0x3a,
+ 0x7f, 0x45, 0xbe, 0x2b, 0x54, 0xc4, 0xb2, 0xe6, 0xd9, 0x4f, 0x6f, 0x09,
+};
+static const unsigned char kat2695_addin0[] = {
+ 0x6b, 0x8e, 0x07, 0xfe, 0x59, 0xf9, 0x11, 0xce, 0x5e, 0x34, 0x2b, 0xce,
+ 0xc2, 0xea, 0x7e, 0x3f, 0xa8, 0x9b, 0x21, 0xb8, 0x3f, 0xf7, 0x55, 0x14,
+ 0xa8, 0xbf, 0x17, 0x8b, 0x36, 0x28, 0xa8, 0x83, 0xb8, 0x28, 0x2b, 0xc4,
+ 0xe1, 0xfc, 0xcb, 0x63, 0xd6, 0xdb, 0x0b, 0x0a, 0x2d, 0x46, 0x2d, 0x5a,
+};
+static const unsigned char kat2695_addin1[] = {
+ 0x56, 0xc2, 0x58, 0x35, 0x92, 0x7f, 0x85, 0xa3, 0x6a, 0x9a, 0xd5, 0xce,
+ 0x31, 0x19, 0x99, 0x97, 0x6d, 0x64, 0x9b, 0x25, 0x42, 0x42, 0x6f, 0x10,
+ 0x3b, 0x9c, 0x43, 0x96, 0x28, 0x4d, 0x0f, 0xb8, 0x5c, 0x62, 0xa2, 0x52,
+ 0x06, 0xd2, 0x0b, 0xc4, 0x85, 0xf7, 0x6a, 0x63, 0x96, 0x2d, 0x2a, 0x98,
+};
+static const unsigned char kat2695_retbits[] = {
+ 0x67, 0xc6, 0x75, 0xcd, 0x16, 0x6d, 0x68, 0xba, 0x4a, 0x9e, 0xd0, 0x7a,
+ 0xc6, 0xec, 0xde, 0x44, 0xd9, 0x8f, 0x80, 0xca, 0x9b, 0x6d, 0x58, 0xdc,
+ 0xb2, 0xe8, 0xcf, 0x4a, 0x6c, 0x92, 0xd9, 0x48, 0xb7, 0x05, 0xc4, 0x48,
+ 0xc8, 0x24, 0x05, 0x99, 0x24, 0x5a, 0xc8, 0x76, 0x74, 0xb6, 0xbe, 0xee,
+ 0x01, 0xf2, 0x0b, 0x93, 0xb7, 0x21, 0xea, 0xf0, 0x17, 0x94, 0xc5, 0x9d,
+ 0x66, 0x30, 0xdd, 0xab,
+};
+static const struct drbg_kat_pr_false kat2695_t = {
+ 9, kat2695_entropyin, kat2695_nonce, kat2695_persstr,
+ kat2695_entropyinreseed, kat2695_addinreseed, kat2695_addin0,
+ kat2695_addin1, kat2695_retbits
+};
+static const struct drbg_kat kat2695 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2695_t
+};
+
+static const unsigned char kat2696_entropyin[] = {
+ 0x73, 0xa0, 0xa9, 0xe3, 0xa1, 0x87, 0xcf, 0x98, 0x0a, 0xf3, 0x97, 0x0b,
+ 0x40, 0x4c, 0x85, 0x85, 0xd7, 0x8c, 0x4e, 0x1c, 0x06, 0xf8, 0x8b, 0x91,
+ 0x10, 0xd4, 0xb1, 0xf2, 0x7f, 0xed, 0xfe, 0xab, 0x5c, 0x94, 0x58, 0xbb,
+ 0x5d, 0x22, 0x7d, 0xe5, 0x8e, 0x70, 0x3a, 0x8d, 0x40, 0xae, 0xcd, 0xfa,
+};
+static const unsigned char kat2696_nonce[] = {0};
+static const unsigned char kat2696_persstr[] = {
+ 0xbe, 0xf4, 0xbe, 0xac, 0x0a, 0x3b, 0x08, 0x5c, 0x62, 0x60, 0x14, 0xd3,
+ 0x68, 0xfa, 0x53, 0x1b, 0x42, 0xd7, 0x81, 0x87, 0x36, 0x56, 0xec, 0x38,
+ 0x4f, 0xb1, 0x96, 0x74, 0xf8, 0x8a, 0x9e, 0xa4, 0xab, 0x34, 0x9a, 0x5a,
+ 0x8c, 0x06, 0x85, 0xab, 0x23, 0xec, 0x89, 0xb4, 0xab, 0x35, 0x71, 0x8b,
+};
+static const unsigned char kat2696_entropyinreseed[] = {
+ 0x41, 0x6e, 0xf8, 0x5f, 0x8f, 0x20, 0x1b, 0x2b, 0x00, 0xb9, 0x5f, 0x2e,
+ 0xd8, 0x47, 0x7c, 0x1b, 0x61, 0xe6, 0x04, 0x3b, 0xfc, 0x4a, 0x07, 0x5a,
+ 0x47, 0x9d, 0xa6, 0x38, 0x14, 0x13, 0xcc, 0xb2, 0x48, 0xc6, 0x67, 0xaf,
+ 0x2e, 0x2b, 0xbc, 0x77, 0x6a, 0xf3, 0x8a, 0x61, 0xc9, 0xe4, 0xef, 0x56,
+};
+static const unsigned char kat2696_addinreseed[] = {
+ 0x43, 0x32, 0x65, 0x92, 0xd4, 0xd6, 0x74, 0xde, 0xc7, 0xd7, 0xc1, 0x8f,
+ 0x76, 0xe1, 0x00, 0x6a, 0xf1, 0x8e, 0x46, 0x10, 0x00, 0xc4, 0x95, 0xc5,
+ 0x6d, 0x25, 0xf4, 0x0b, 0x18, 0x0a, 0x6c, 0xc5, 0x12, 0xb9, 0x91, 0xcb,
+ 0x7a, 0x5b, 0x8e, 0x81, 0xad, 0x53, 0xa1, 0xa3, 0x30, 0x7a, 0x2f, 0x32,
+};
+static const unsigned char kat2696_addin0[] = {
+ 0xf8, 0x77, 0x6c, 0x1d, 0x1a, 0x26, 0x00, 0xee, 0x34, 0x38, 0x6c, 0x29,
+ 0x3d, 0xa3, 0x83, 0x1c, 0xd0, 0xfa, 0x37, 0xdf, 0x3e, 0xf3, 0x7a, 0xb8,
+ 0xd8, 0xf8, 0x4b, 0xbd, 0xc1, 0x55, 0x95, 0xb5, 0xe7, 0x33, 0xad, 0xb6,
+ 0xa8, 0x63, 0x26, 0xe8, 0xa4, 0xdc, 0x77, 0xcf, 0x03, 0xc3, 0xbe, 0x97,
+};
+static const unsigned char kat2696_addin1[] = {
+ 0x2b, 0x36, 0x9b, 0x92, 0x16, 0x53, 0xe1, 0xaa, 0xf6, 0x6a, 0xf6, 0x5b,
+ 0x06, 0x6f, 0x71, 0x0d, 0x6c, 0x5d, 0xa4, 0xab, 0xd1, 0x91, 0x84, 0xef,
+ 0x84, 0x95, 0x62, 0x60, 0xdb, 0x34, 0x36, 0x15, 0x84, 0x6e, 0xdd, 0x85,
+ 0x6f, 0x7f, 0xa5, 0xa1, 0x72, 0x66, 0x43, 0x20, 0x3b, 0x8a, 0x8c, 0xd3,
+};
+static const unsigned char kat2696_retbits[] = {
+ 0xbe, 0x59, 0x8f, 0x18, 0x1c, 0xc3, 0xef, 0x73, 0xf9, 0xdc, 0xa4, 0x1b,
+ 0xae, 0x4e, 0x9a, 0xb7, 0x76, 0xd8, 0x44, 0x73, 0xc1, 0x6c, 0xed, 0x60,
+ 0x5d, 0x4e, 0x1a, 0xae, 0xbc, 0x58, 0xca, 0x1b, 0x86, 0x8b, 0xbc, 0xd1,
+ 0x39, 0xa1, 0xd4, 0xe6, 0x5c, 0xa1, 0x62, 0x8e, 0x41, 0x3b, 0x7f, 0x1d,
+ 0x06, 0x1e, 0x56, 0x90, 0x28, 0xf1, 0xeb, 0xbc, 0xfe, 0xba, 0xf2, 0x79,
+ 0x82, 0x0f, 0x09, 0x00,
+};
+static const struct drbg_kat_pr_false kat2696_t = {
+ 10, kat2696_entropyin, kat2696_nonce, kat2696_persstr,
+ kat2696_entropyinreseed, kat2696_addinreseed, kat2696_addin0,
+ kat2696_addin1, kat2696_retbits
+};
+static const struct drbg_kat kat2696 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2696_t
+};
+
+static const unsigned char kat2697_entropyin[] = {
+ 0x7c, 0xaf, 0xce, 0xd4, 0x29, 0x93, 0x0e, 0x19, 0x7f, 0x8e, 0x09, 0x2e,
+ 0xb7, 0x19, 0x08, 0x98, 0x6b, 0xfa, 0xfd, 0x7f, 0x07, 0xc5, 0x29, 0x8e,
+ 0x6f, 0x4f, 0x88, 0xed, 0x94, 0x08, 0x5e, 0xd9, 0x2f, 0x6a, 0xf7, 0x68,
+ 0x43, 0x7f, 0xf8, 0xbd, 0xc8, 0xf4, 0x4e, 0x17, 0xcc, 0xbb, 0x83, 0xe9,
+};
+static const unsigned char kat2697_nonce[] = {0};
+static const unsigned char kat2697_persstr[] = {
+ 0xc0, 0xb4, 0x35, 0xa5, 0x1c, 0x08, 0x53, 0x2b, 0xeb, 0x12, 0x64, 0xdc,
+ 0x51, 0xc3, 0x27, 0x1a, 0x51, 0x20, 0xe0, 0x05, 0xca, 0x1f, 0xf2, 0x09,
+ 0x03, 0x19, 0x05, 0xd3, 0x70, 0xc9, 0x50, 0x92, 0x13, 0xb9, 0x0c, 0x7e,
+ 0x62, 0x0c, 0xf0, 0xad, 0x55, 0xfd, 0xbf, 0x15, 0xb2, 0xff, 0x34, 0x1f,
+};
+static const unsigned char kat2697_entropyinreseed[] = {
+ 0xf5, 0x9e, 0xfd, 0x8d, 0x25, 0x31, 0x42, 0xa0, 0x34, 0x63, 0x10, 0xb1,
+ 0x46, 0x7e, 0xea, 0x0f, 0x49, 0xf9, 0xe0, 0x39, 0xcb, 0x0c, 0x69, 0x54,
+ 0x51, 0x6a, 0x52, 0x28, 0x89, 0x6c, 0xb0, 0xed, 0xb5, 0xe4, 0x6c, 0x86,
+ 0x35, 0x75, 0x84, 0x2c, 0xdc, 0xcf, 0x55, 0x6a, 0xc1, 0xba, 0x3e, 0xde,
+};
+static const unsigned char kat2697_addinreseed[] = {
+ 0xb6, 0x4c, 0x2d, 0xc0, 0x57, 0x3f, 0x0d, 0x87, 0x40, 0xa5, 0xf9, 0x34,
+ 0xe3, 0xcc, 0xc2, 0xe3, 0xbb, 0x1d, 0xd0, 0x1a, 0x9a, 0x50, 0xef, 0xb5,
+ 0x16, 0xdb, 0xbe, 0x58, 0x15, 0x66, 0xcf, 0xad, 0xe2, 0xb5, 0x21, 0xb8,
+ 0x85, 0x29, 0x5b, 0x53, 0x5a, 0xad, 0xb0, 0x5a, 0x76, 0xb7, 0xcc, 0xec,
+};
+static const unsigned char kat2697_addin0[] = {
+ 0x41, 0x8a, 0x23, 0x29, 0x34, 0x12, 0x0f, 0x0f, 0xd3, 0x4f, 0xb4, 0xa8,
+ 0x4e, 0x82, 0x0f, 0xb6, 0x24, 0x08, 0x92, 0x16, 0x77, 0xe9, 0x71, 0xd7,
+ 0xf3, 0x39, 0x49, 0x73, 0x62, 0xe3, 0xea, 0xa1, 0xde, 0xad, 0x14, 0xd2,
+ 0xcd, 0xf1, 0xe2, 0xf0, 0xe3, 0xfc, 0xcb, 0xce, 0xc3, 0xe7, 0x40, 0xb2,
+};
+static const unsigned char kat2697_addin1[] = {
+ 0xc4, 0xce, 0x8b, 0x89, 0xa8, 0xd9, 0x96, 0x14, 0xfc, 0x94, 0x42, 0xbc,
+ 0x64, 0x7f, 0x53, 0x98, 0xea, 0x20, 0xc0, 0x2d, 0x5b, 0x7e, 0xae, 0xa6,
+ 0xce, 0x26, 0xbd, 0xa4, 0xa9, 0x57, 0xb2, 0x89, 0xd8, 0xee, 0x4a, 0x77,
+ 0x1a, 0xc2, 0xed, 0xe6, 0x1a, 0xea, 0x9a, 0x9b, 0xe5, 0xb6, 0x85, 0xcf,
+};
+static const unsigned char kat2697_retbits[] = {
+ 0x1b, 0xed, 0x88, 0xce, 0x25, 0xc4, 0xbd, 0x7c, 0xcc, 0x2a, 0xc9, 0x81,
+ 0x3c, 0x32, 0xee, 0x7f, 0x12, 0x8f, 0x56, 0x09, 0x71, 0x94, 0x4c, 0xe9,
+ 0xa0, 0xd0, 0x28, 0xc4, 0x70, 0x68, 0x75, 0x48, 0x2d, 0x3f, 0x64, 0x8e,
+ 0x5b, 0xc5, 0x8e, 0xdf, 0xc4, 0xe4, 0x90, 0xff, 0x75, 0x45, 0x75, 0x50,
+ 0x1f, 0x60, 0x5d, 0x5e, 0xfc, 0x71, 0x6f, 0xcc, 0x44, 0xbc, 0x5c, 0x69,
+ 0x05, 0xa8, 0x3d, 0x93,
+};
+static const struct drbg_kat_pr_false kat2697_t = {
+ 11, kat2697_entropyin, kat2697_nonce, kat2697_persstr,
+ kat2697_entropyinreseed, kat2697_addinreseed, kat2697_addin0,
+ kat2697_addin1, kat2697_retbits
+};
+static const struct drbg_kat kat2697 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2697_t
+};
+
+static const unsigned char kat2698_entropyin[] = {
+ 0x16, 0xfa, 0x70, 0x55, 0x91, 0x4d, 0xeb, 0xfd, 0xe6, 0x43, 0xda, 0x69,
+ 0x38, 0xa9, 0x27, 0x00, 0x4b, 0x2d, 0x77, 0x3f, 0x99, 0x50, 0x7c, 0x6d,
+ 0xe1, 0xbc, 0x66, 0x1d, 0x91, 0x4b, 0xc2, 0xd6, 0x33, 0xd3, 0xc2, 0x74,
+ 0xfc, 0x62, 0x39, 0xb3, 0xe4, 0x84, 0x40, 0xc0, 0x3d, 0x80, 0x85, 0x21,
+};
+static const unsigned char kat2698_nonce[] = {0};
+static const unsigned char kat2698_persstr[] = {
+ 0xe2, 0x95, 0xe1, 0x6a, 0xf5, 0xd4, 0x1f, 0x8f, 0xf3, 0xac, 0x89, 0xcf,
+ 0x3b, 0x8b, 0xb5, 0xbb, 0x54, 0x2f, 0x6b, 0x34, 0x73, 0x64, 0x2c, 0xc9,
+ 0x34, 0x48, 0xfa, 0x3a, 0xb7, 0x8e, 0x20, 0x67, 0x7f, 0x88, 0xdd, 0xe2,
+ 0x26, 0x95, 0x58, 0x52, 0xf0, 0x7e, 0x3f, 0x32, 0xe0, 0x81, 0x2c, 0xbc,
+};
+static const unsigned char kat2698_entropyinreseed[] = {
+ 0x00, 0x71, 0xbc, 0xc9, 0xe4, 0x40, 0xb1, 0x77, 0xaa, 0x6d, 0xdc, 0xef,
+ 0x17, 0x8e, 0x72, 0x8f, 0x49, 0x23, 0x9e, 0x58, 0xc7, 0x62, 0xa1, 0x44,
+ 0x81, 0x68, 0xfe, 0xc7, 0x15, 0x6b, 0xed, 0xf1, 0x06, 0xf7, 0x97, 0x90,
+ 0xcc, 0x69, 0x61, 0x64, 0x84, 0xa4, 0x8f, 0x93, 0xac, 0x08, 0x68, 0x82,
+};
+static const unsigned char kat2698_addinreseed[] = {
+ 0x0b, 0x50, 0x8c, 0xcf, 0x33, 0x1f, 0x0d, 0xc6, 0x9e, 0x63, 0xb5, 0x48,
+ 0xa9, 0x09, 0x70, 0xd6, 0xa1, 0xd5, 0xd0, 0xe4, 0x94, 0x1a, 0x70, 0x57,
+ 0x1a, 0xc1, 0x3d, 0xc9, 0x04, 0xed, 0x19, 0xe6, 0xe0, 0xa3, 0xa5, 0x82,
+ 0xbd, 0x6d, 0x97, 0x9d, 0x45, 0x93, 0x4d, 0xe9, 0x29, 0x87, 0xeb, 0x53,
+};
+static const unsigned char kat2698_addin0[] = {
+ 0xb4, 0x96, 0x74, 0x97, 0x10, 0xef, 0xa7, 0x1e, 0x6a, 0xb4, 0xe3, 0xed,
+ 0x2f, 0x37, 0x55, 0xfd, 0xec, 0x00, 0xec, 0x51, 0xe8, 0x5b, 0xbd, 0xb9,
+ 0xf6, 0x2f, 0xa5, 0xc6, 0x7f, 0xe3, 0x88, 0x2e, 0xe9, 0x1f, 0x40, 0x4f,
+ 0xf0, 0x03, 0xe0, 0xe1, 0x62, 0x28, 0x0d, 0xeb, 0x6b, 0xf6, 0x48, 0xaf,
+};
+static const unsigned char kat2698_addin1[] = {
+ 0x75, 0x53, 0x41, 0xc4, 0x62, 0x8a, 0x60, 0xb7, 0xaf, 0x20, 0xe4, 0x84,
+ 0x2b, 0x29, 0x12, 0xd0, 0x83, 0xb5, 0xdb, 0x8b, 0xb0, 0xb1, 0x4d, 0xdf,
+ 0x3c, 0xde, 0x54, 0xf6, 0xfa, 0x10, 0xf1, 0x38, 0x1b, 0x0d, 0x07, 0xe6,
+ 0x9a, 0x87, 0xa6, 0xf0, 0x15, 0x61, 0x6b, 0xed, 0x96, 0x6e, 0xdd, 0x49,
+};
+static const unsigned char kat2698_retbits[] = {
+ 0x5f, 0xda, 0x95, 0x4f, 0x37, 0xf7, 0xf0, 0x2e, 0x37, 0x80, 0x5c, 0x78,
+ 0x88, 0xf9, 0xcf, 0x46, 0xae, 0x8f, 0x3a, 0xca, 0x98, 0x43, 0xd0, 0xe8,
+ 0xfd, 0xc7, 0x61, 0x4b, 0xc8, 0x89, 0xa2, 0x06, 0x59, 0xb3, 0xeb, 0x28,
+ 0x84, 0x28, 0x6c, 0xe0, 0xe4, 0xb7, 0xed, 0xff, 0x91, 0x14, 0xee, 0x4b,
+ 0xd8, 0xcf, 0xa1, 0x73, 0xb3, 0x1b, 0x2d, 0xff, 0x3d, 0xae, 0xdd, 0xf1,
+ 0x9f, 0xbf, 0x88, 0xe4,
+};
+static const struct drbg_kat_pr_false kat2698_t = {
+ 12, kat2698_entropyin, kat2698_nonce, kat2698_persstr,
+ kat2698_entropyinreseed, kat2698_addinreseed, kat2698_addin0,
+ kat2698_addin1, kat2698_retbits
+};
+static const struct drbg_kat kat2698 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2698_t
+};
+
+static const unsigned char kat2699_entropyin[] = {
+ 0x44, 0x99, 0x77, 0x06, 0x17, 0x47, 0x6f, 0xe6, 0xb1, 0xc4, 0x8a, 0x31,
+ 0x43, 0x1a, 0x30, 0x49, 0xf4, 0x2a, 0xf9, 0x31, 0xc2, 0x8b, 0x48, 0x60,
+ 0xfe, 0x0d, 0xae, 0x13, 0x8e, 0x70, 0xb5, 0xd2, 0xf6, 0x43, 0xff, 0x92,
+ 0x71, 0x93, 0x4f, 0xb1, 0xc9, 0xd6, 0xcc, 0xde, 0x83, 0x9f, 0xd5, 0x5f,
+};
+static const unsigned char kat2699_nonce[] = {0};
+static const unsigned char kat2699_persstr[] = {
+ 0x16, 0x4a, 0xab, 0x76, 0xbf, 0x81, 0x33, 0x13, 0x93, 0x6e, 0x2a, 0x02,
+ 0x2c, 0x07, 0xfd, 0x74, 0x90, 0x8e, 0x57, 0x90, 0xf0, 0xbd, 0xb9, 0x2a,
+ 0xdd, 0xf0, 0x29, 0xde, 0x6e, 0x5f, 0x7d, 0x09, 0xb0, 0x10, 0x80, 0xa4,
+ 0xab, 0xc9, 0x54, 0x2e, 0xa4, 0x9f, 0xc8, 0x85, 0x45, 0xd1, 0x53, 0x34,
+};
+static const unsigned char kat2699_entropyinreseed[] = {
+ 0x0d, 0x6e, 0xc2, 0xb8, 0x1f, 0xa5, 0x6f, 0x5b, 0x0d, 0x0b, 0xab, 0x64,
+ 0x8a, 0x8b, 0x7b, 0x68, 0x6e, 0x0b, 0x6f, 0xef, 0xb4, 0xa5, 0x17, 0xf8,
+ 0x72, 0x66, 0x38, 0xa1, 0xc9, 0xda, 0xc7, 0xd3, 0x33, 0xeb, 0xdd, 0x7d,
+ 0x71, 0xc0, 0x6d, 0xb5, 0x13, 0x6b, 0x93, 0x0e, 0x5c, 0x77, 0x6e, 0xf9,
+};
+static const unsigned char kat2699_addinreseed[] = {
+ 0x78, 0x08, 0x85, 0x87, 0x92, 0x6a, 0xec, 0xfa, 0x25, 0x08, 0x1c, 0xd8,
+ 0x11, 0xf9, 0x17, 0x95, 0xc6, 0x0f, 0xc1, 0x88, 0x62, 0xee, 0xc5, 0xa9,
+ 0x0b, 0x0b, 0x38, 0xe8, 0x19, 0x76, 0x84, 0x62, 0x34, 0x50, 0xce, 0xc1,
+ 0xb4, 0x44, 0xdd, 0x2a, 0xfb, 0xbb, 0x1e, 0x52, 0xee, 0x18, 0x4f, 0x4e,
+};
+static const unsigned char kat2699_addin0[] = {
+ 0x3c, 0x32, 0xbb, 0x43, 0xf8, 0x0b, 0xde, 0xce, 0xaf, 0xdb, 0xc4, 0x6a,
+ 0x6f, 0xd4, 0x33, 0x00, 0xbf, 0x99, 0xf2, 0x6e, 0x87, 0x75, 0xff, 0x31,
+ 0x28, 0x1e, 0x0a, 0xb0, 0xb3, 0x59, 0x2e, 0xab, 0xe7, 0xeb, 0x2e, 0xbf,
+ 0xe7, 0x5c, 0xc4, 0x61, 0xb2, 0xd8, 0x04, 0xed, 0xb4, 0x09, 0xb2, 0xf6,
+};
+static const unsigned char kat2699_addin1[] = {
+ 0x2a, 0xe5, 0x4d, 0x1e, 0x99, 0x3b, 0xbc, 0xad, 0xee, 0xf2, 0xe8, 0x34,
+ 0x9f, 0xb7, 0xe6, 0x4f, 0x19, 0xe0, 0x42, 0xba, 0x3a, 0xb4, 0xe9, 0x58,
+ 0x2b, 0xfd, 0x87, 0xc9, 0xe1, 0x88, 0x46, 0x9f, 0xf3, 0xa9, 0xcc, 0xe3,
+ 0xab, 0x91, 0x4a, 0x59, 0xdc, 0x46, 0x69, 0x62, 0xf0, 0xfd, 0x9a, 0x52,
+};
+static const unsigned char kat2699_retbits[] = {
+ 0xb2, 0x39, 0x31, 0x43, 0xe2, 0xf7, 0xc8, 0x6a, 0x6b, 0xb8, 0x2b, 0x5c,
+ 0x40, 0x94, 0x5f, 0x94, 0x9e, 0x6e, 0xcc, 0xc0, 0x5f, 0x8a, 0xe5, 0x3c,
+ 0xd5, 0xc6, 0xd8, 0x32, 0x1c, 0x01, 0xdf, 0x71, 0x5a, 0x29, 0x4f, 0x2f,
+ 0x78, 0x71, 0xc0, 0xe4, 0x18, 0xf0, 0x47, 0x57, 0x93, 0x27, 0xdb, 0x15,
+ 0x1d, 0x3c, 0xb0, 0xb0, 0xd3, 0x86, 0x8a, 0xc9, 0x62, 0x01, 0x2c, 0x2b,
+ 0x06, 0xf5, 0x94, 0xa3,
+};
+static const struct drbg_kat_pr_false kat2699_t = {
+ 13, kat2699_entropyin, kat2699_nonce, kat2699_persstr,
+ kat2699_entropyinreseed, kat2699_addinreseed, kat2699_addin0,
+ kat2699_addin1, kat2699_retbits
+};
+static const struct drbg_kat kat2699 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2699_t
+};
+
+static const unsigned char kat2700_entropyin[] = {
+ 0x70, 0x83, 0x27, 0x5a, 0x4e, 0x52, 0xde, 0x2a, 0x4a, 0x96, 0xb2, 0xbf,
+ 0xf5, 0xe9, 0xab, 0xd9, 0x76, 0x81, 0x0e, 0xd6, 0xbc, 0x0e, 0xcd, 0xae,
+ 0xed, 0xac, 0xeb, 0x90, 0xe0, 0x7e, 0xef, 0xdd, 0xfa, 0x52, 0xef, 0x32,
+ 0x6e, 0x22, 0xb5, 0x08, 0x80, 0x60, 0x44, 0x19, 0x9b, 0x27, 0x40, 0x27,
+};
+static const unsigned char kat2700_nonce[] = {0};
+static const unsigned char kat2700_persstr[] = {
+ 0x3b, 0x9f, 0xb5, 0x93, 0x26, 0x6f, 0xc5, 0x48, 0x42, 0x17, 0x52, 0xa7,
+ 0x05, 0xdf, 0xe1, 0x1d, 0xe5, 0xcf, 0x1e, 0x1a, 0x3f, 0x6d, 0x17, 0xc2,
+ 0xa9, 0xa8, 0x79, 0xbc, 0x9d, 0xbe, 0x2e, 0x25, 0x4f, 0x79, 0xe7, 0x3d,
+ 0xde, 0xa4, 0x46, 0x99, 0x4f, 0x68, 0xb3, 0x18, 0xbf, 0xaa, 0xb9, 0x79,
+};
+static const unsigned char kat2700_entropyinreseed[] = {
+ 0xbc, 0xbf, 0x9b, 0x7a, 0xf0, 0x8c, 0xe5, 0x04, 0xaa, 0x7c, 0x08, 0x7d,
+ 0x6f, 0x22, 0xb9, 0xe4, 0x7b, 0x40, 0xcf, 0x7b, 0xdc, 0x81, 0xf3, 0x32,
+ 0xbe, 0xb9, 0x44, 0x6c, 0x33, 0xd2, 0x6b, 0xf4, 0x74, 0x60, 0xcf, 0x70,
+ 0xff, 0x16, 0x25, 0x12, 0x8c, 0xa9, 0x2f, 0x5b, 0x0a, 0xf7, 0x3a, 0x9a,
+};
+static const unsigned char kat2700_addinreseed[] = {
+ 0xf9, 0xc0, 0x16, 0xd2, 0xa0, 0x0c, 0x57, 0x2f, 0x8c, 0x0c, 0x9d, 0xea,
+ 0xa2, 0x3d, 0xb1, 0x35, 0xe7, 0x38, 0xed, 0x70, 0x4c, 0xc6, 0x37, 0xbf,
+ 0x49, 0x91, 0xc1, 0x25, 0xaf, 0xe7, 0x32, 0x8a, 0x6a, 0x74, 0xe6, 0x7c,
+ 0x0b, 0xf3, 0x65, 0x44, 0x6b, 0x58, 0x3b, 0x3a, 0x64, 0x51, 0xc2, 0xbc,
+};
+static const unsigned char kat2700_addin0[] = {
+ 0x58, 0x8e, 0xb7, 0x22, 0xd4, 0x06, 0x6c, 0xe1, 0xe9, 0x14, 0x8d, 0x2e,
+ 0x7a, 0x6d, 0x43, 0xd1, 0xd8, 0xb4, 0x88, 0x6b, 0xd9, 0x7f, 0x36, 0xf2,
+ 0x45, 0x99, 0xdc, 0xde, 0xdb, 0x63, 0x8d, 0x2e, 0x7c, 0xfc, 0x4b, 0x5e,
+ 0xa4, 0x6a, 0x45, 0xe1, 0x47, 0x4b, 0xc1, 0x8b, 0x21, 0xb0, 0x7f, 0x14,
+};
+static const unsigned char kat2700_addin1[] = {
+ 0x1b, 0x4e, 0x90, 0x4a, 0x6b, 0x86, 0x12, 0x01, 0x02, 0x85, 0x06, 0x07,
+ 0x5d, 0x7d, 0x7f, 0xec, 0xb8, 0x11, 0x58, 0xea, 0x37, 0x49, 0x42, 0x1d,
+ 0x4d, 0x47, 0x10, 0xba, 0x0f, 0xcb, 0x15, 0x7b, 0x50, 0x19, 0xdb, 0xca,
+ 0x19, 0x9c, 0x83, 0x02, 0xd3, 0x47, 0x45, 0xcb, 0x0c, 0x23, 0x30, 0xb1,
+};
+static const unsigned char kat2700_retbits[] = {
+ 0xd1, 0x55, 0x94, 0x1b, 0x54, 0xab, 0x48, 0xdc, 0x18, 0x66, 0x64, 0x1c,
+ 0x03, 0x4b, 0x11, 0x7d, 0x6d, 0xd8, 0xa7, 0xd0, 0x68, 0xd2, 0x92, 0x01,
+ 0x10, 0x5d, 0x84, 0x53, 0x15, 0xdb, 0xc7, 0x47, 0xaf, 0xd8, 0xfb, 0x1f,
+ 0x9b, 0xa5, 0xc9, 0x76, 0xc7, 0x5f, 0xf8, 0xc7, 0x05, 0x2a, 0xff, 0x7b,
+ 0x34, 0x2c, 0x14, 0x89, 0xbc, 0x0c, 0x9f, 0x8a, 0x7d, 0x89, 0x8b, 0x88,
+ 0xed, 0x0d, 0x57, 0x46,
+};
+static const struct drbg_kat_pr_false kat2700_t = {
+ 14, kat2700_entropyin, kat2700_nonce, kat2700_persstr,
+ kat2700_entropyinreseed, kat2700_addinreseed, kat2700_addin0,
+ kat2700_addin1, kat2700_retbits
+};
+static const struct drbg_kat kat2700 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2700_t
+};
+
+static const unsigned char kat2701_entropyin[] = {
+ 0xfc, 0xa0, 0xb6, 0xe5, 0x57, 0xf5, 0x14, 0x30, 0xdd, 0x78, 0x7a, 0xb4,
+ 0xd3, 0x3f, 0x18, 0xd9, 0xae, 0xc2, 0x19, 0x62, 0x9d, 0x1b, 0x83, 0x9a,
+ 0x35, 0xca, 0xaf, 0xc8, 0x25, 0xab, 0x55, 0xbe, 0x6a, 0x88, 0x03, 0x21,
+ 0xbe, 0x58, 0xc1, 0x6e, 0xac, 0xb9, 0x45, 0xb7, 0xbb, 0x7c, 0xad, 0xb7,
+};
+static const unsigned char kat2701_nonce[] = {0};
+static const unsigned char kat2701_persstr[] = {0};
+static const unsigned char kat2701_entropyinreseed[] = {
+ 0x7b, 0x68, 0x49, 0x23, 0xae, 0x50, 0x86, 0x6f, 0x71, 0x0d, 0x3b, 0x5b,
+ 0x2e, 0xdf, 0x24, 0x45, 0x59, 0x3f, 0xe6, 0x6d, 0x15, 0xf2, 0xdc, 0x73,
+ 0x5e, 0x2b, 0x0c, 0x27, 0x8f, 0x1c, 0xc9, 0x73, 0x50, 0x75, 0xdd, 0x26,
+ 0x8b, 0x91, 0x40, 0x8e, 0xf7, 0x3d, 0x55, 0x04, 0x23, 0x54, 0x5a, 0xdc,
+};
+static const unsigned char kat2701_addinreseed[] = {0};
+static const unsigned char kat2701_addin0[] = {0};
+static const unsigned char kat2701_addin1[] = {0};
+static const unsigned char kat2701_retbits[] = {
+ 0x29, 0x37, 0x56, 0x71, 0x40, 0x7b, 0x1a, 0x45, 0xb9, 0xfd, 0x8b, 0x4f,
+ 0x50, 0x7d, 0xda, 0x23, 0x48, 0x22, 0xd5, 0x57, 0xe4, 0x8b, 0x9a, 0x52,
+ 0x99, 0x7b, 0x13, 0x75, 0x7e, 0x0c, 0x2f, 0x79, 0x6c, 0x87, 0x41, 0xf9,
+ 0x4b, 0xc2, 0xbd, 0x0d, 0x8c, 0x98, 0xe5, 0xe2, 0x5e, 0x4c, 0xee, 0x65,
+ 0xe4, 0xdd, 0x63, 0x4c, 0x98, 0xbc, 0x3b, 0x66, 0xfb, 0x62, 0x79, 0xf9,
+ 0x46, 0x8a, 0xc8, 0x41,
+};
+static const struct drbg_kat_pr_false kat2701_t = {
+ 0, kat2701_entropyin, kat2701_nonce, kat2701_persstr,
+ kat2701_entropyinreseed, kat2701_addinreseed, kat2701_addin0,
+ kat2701_addin1, kat2701_retbits
+};
+static const struct drbg_kat kat2701 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2701_t
+};
+
+static const unsigned char kat2702_entropyin[] = {
+ 0xf6, 0x0f, 0x77, 0x73, 0xf2, 0x1a, 0x71, 0x9e, 0x98, 0xc1, 0x0d, 0x19,
+ 0x63, 0xf4, 0x06, 0x90, 0xaf, 0x58, 0xc3, 0x8c, 0x81, 0x5b, 0xa6, 0x50,
+ 0x7f, 0x76, 0x83, 0x46, 0xf8, 0x95, 0x7e, 0x4c, 0x2e, 0x9c, 0x94, 0x93,
+ 0x2c, 0xb8, 0xae, 0xc5, 0x44, 0xc1, 0xdc, 0x77, 0x65, 0x91, 0x2f, 0x7a,
+};
+static const unsigned char kat2702_nonce[] = {0};
+static const unsigned char kat2702_persstr[] = {0};
+static const unsigned char kat2702_entropyinreseed[] = {
+ 0x3a, 0x4f, 0x75, 0xac, 0x9b, 0x19, 0xc4, 0x5f, 0xba, 0x3e, 0xad, 0x79,
+ 0x16, 0x5a, 0xde, 0x8c, 0xa5, 0x6d, 0x33, 0xd0, 0xbf, 0xb2, 0xd9, 0xe0,
+ 0xbc, 0x2e, 0x4a, 0x9f, 0xaa, 0x2d, 0x86, 0xa7, 0x74, 0xc7, 0x37, 0xd2,
+ 0x3a, 0x33, 0xa8, 0x60, 0xbd, 0x4b, 0xc4, 0x2c, 0x15, 0x71, 0xc1, 0x60,
+};
+static const unsigned char kat2702_addinreseed[] = {0};
+static const unsigned char kat2702_addin0[] = {0};
+static const unsigned char kat2702_addin1[] = {0};
+static const unsigned char kat2702_retbits[] = {
+ 0x10, 0xf3, 0x86, 0x26, 0x7b, 0xdb, 0x88, 0x5d, 0xdb, 0x55, 0xfc, 0xb5,
+ 0x06, 0x85, 0x1e, 0xf1, 0x4f, 0x59, 0x8d, 0xac, 0xf1, 0x5b, 0xc8, 0x11,
+ 0x95, 0xe3, 0x7f, 0x3f, 0xac, 0xde, 0x8b, 0x65, 0x29, 0x1d, 0x03, 0x55,
+ 0x81, 0x8a, 0x75, 0xd9, 0x6d, 0x4a, 0x65, 0x05, 0x78, 0x97, 0x29, 0xcc,
+ 0x2c, 0x5d, 0x19, 0x9a, 0x23, 0x2c, 0xb9, 0xd1, 0x17, 0x3e, 0x90, 0xda,
+ 0x71, 0xcc, 0xb8, 0xac,
+};
+static const struct drbg_kat_pr_false kat2702_t = {
+ 1, kat2702_entropyin, kat2702_nonce, kat2702_persstr,
+ kat2702_entropyinreseed, kat2702_addinreseed, kat2702_addin0,
+ kat2702_addin1, kat2702_retbits
+};
+static const struct drbg_kat kat2702 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2702_t
+};
+
+static const unsigned char kat2703_entropyin[] = {
+ 0xf3, 0x75, 0xd3, 0xd9, 0xf8, 0x56, 0xf3, 0x31, 0x3f, 0xbb, 0xb2, 0xec,
+ 0xda, 0x79, 0x72, 0xe7, 0xcf, 0xe2, 0x47, 0x66, 0x18, 0x00, 0x53, 0x95,
+ 0xa3, 0x65, 0x16, 0x5a, 0x2d, 0x75, 0x5a, 0x26, 0xd0, 0x44, 0x52, 0xd4,
+ 0xf9, 0xab, 0x1b, 0x6f, 0xb4, 0xd4, 0xe3, 0x13, 0x56, 0x05, 0x70, 0x36,
+};
+static const unsigned char kat2703_nonce[] = {0};
+static const unsigned char kat2703_persstr[] = {0};
+static const unsigned char kat2703_entropyinreseed[] = {
+ 0xff, 0xb9, 0xbb, 0x89, 0x2f, 0x95, 0xfe, 0x3c, 0x95, 0xcc, 0x78, 0x99,
+ 0x0e, 0x8d, 0x9c, 0xab, 0xa0, 0x4d, 0x61, 0x3f, 0xa5, 0xf3, 0x48, 0x99,
+ 0xa5, 0x92, 0xbd, 0xf5, 0xde, 0x19, 0x70, 0x98, 0xca, 0x4b, 0x6e, 0xfd,
+ 0xcb, 0xbc, 0x23, 0x7a, 0x34, 0x4c, 0x66, 0x52, 0x0c, 0x11, 0x11, 0x2e,
+};
+static const unsigned char kat2703_addinreseed[] = {0};
+static const unsigned char kat2703_addin0[] = {0};
+static const unsigned char kat2703_addin1[] = {0};
+static const unsigned char kat2703_retbits[] = {
+ 0xf8, 0xf6, 0x92, 0x1d, 0x96, 0xdf, 0xb6, 0x5f, 0x03, 0x8c, 0xa9, 0x93,
+ 0xc0, 0x17, 0xb2, 0x28, 0xa2, 0x28, 0x3b, 0x3b, 0x8f, 0xcb, 0x5b, 0x22,
+ 0xa3, 0xd6, 0xc0, 0xf8, 0x2d, 0x7c, 0xf2, 0xa6, 0x8b, 0xc7, 0x21, 0xf1,
+ 0x13, 0xbf, 0x37, 0x6b, 0x25, 0x6b, 0xf7, 0x38, 0x9f, 0x31, 0xa1, 0x97,
+ 0x5b, 0x30, 0x40, 0xcd, 0xea, 0x9e, 0x11, 0xb8, 0x3b, 0x23, 0xcc, 0x26,
+ 0xed, 0x15, 0xa7, 0x81,
+};
+static const struct drbg_kat_pr_false kat2703_t = {
+ 2, kat2703_entropyin, kat2703_nonce, kat2703_persstr,
+ kat2703_entropyinreseed, kat2703_addinreseed, kat2703_addin0,
+ kat2703_addin1, kat2703_retbits
+};
+static const struct drbg_kat kat2703 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2703_t
+};
+
+static const unsigned char kat2704_entropyin[] = {
+ 0x40, 0x1d, 0xd5, 0x0c, 0x95, 0x96, 0xe9, 0x2d, 0xb4, 0x11, 0x65, 0xba,
+ 0x0e, 0xdd, 0x63, 0x89, 0x77, 0x3d, 0x80, 0x96, 0xcc, 0xa1, 0xfc, 0x59,
+ 0x6e, 0x4a, 0x58, 0xb7, 0x8f, 0x0c, 0xcf, 0x72, 0x16, 0x96, 0xf2, 0xba,
+ 0xf2, 0xad, 0x87, 0x46, 0x87, 0xb5, 0xd6, 0xb1, 0xd9, 0x60, 0xbf, 0x15,
+};
+static const unsigned char kat2704_nonce[] = {0};
+static const unsigned char kat2704_persstr[] = {0};
+static const unsigned char kat2704_entropyinreseed[] = {
+ 0x8c, 0x4d, 0xf6, 0xfc, 0x9b, 0x35, 0x81, 0x5d, 0x9d, 0x5a, 0x2d, 0xdd,
+ 0x8a, 0x62, 0x43, 0x4c, 0x89, 0x92, 0xce, 0x1c, 0x21, 0xad, 0xd1, 0xb9,
+ 0x6f, 0xe1, 0xe1, 0x74, 0x86, 0xb7, 0x7a, 0xe3, 0x38, 0xfc, 0x65, 0x5b,
+ 0x32, 0x76, 0x86, 0xbb, 0xa0, 0x11, 0x99, 0x1b, 0x85, 0xb2, 0xfa, 0x0d,
+};
+static const unsigned char kat2704_addinreseed[] = {0};
+static const unsigned char kat2704_addin0[] = {0};
+static const unsigned char kat2704_addin1[] = {0};
+static const unsigned char kat2704_retbits[] = {
+ 0x29, 0xb9, 0xb2, 0x12, 0x7d, 0x14, 0x16, 0x5b, 0xbf, 0xbd, 0x07, 0x55,
+ 0xa9, 0x65, 0x06, 0xb8, 0xcb, 0xdf, 0x94, 0x16, 0xf3, 0x76, 0x16, 0xbe,
+ 0xec, 0xa4, 0x4d, 0x94, 0xd5, 0x2f, 0x13, 0x21, 0x18, 0xdc, 0x5a, 0x93,
+ 0xa9, 0x49, 0x4b, 0x05, 0x82, 0x75, 0x78, 0x8e, 0xd2, 0x08, 0x35, 0x37,
+ 0x41, 0x81, 0x12, 0x8a, 0xf6, 0x2e, 0x0d, 0x86, 0x20, 0x51, 0x11, 0x5f,
+ 0x03, 0x99, 0x63, 0x6e,
+};
+static const struct drbg_kat_pr_false kat2704_t = {
+ 3, kat2704_entropyin, kat2704_nonce, kat2704_persstr,
+ kat2704_entropyinreseed, kat2704_addinreseed, kat2704_addin0,
+ kat2704_addin1, kat2704_retbits
+};
+static const struct drbg_kat kat2704 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2704_t
+};
+
+static const unsigned char kat2705_entropyin[] = {
+ 0xd3, 0xff, 0x8f, 0x55, 0x90, 0xec, 0xc6, 0x3f, 0x1d, 0xad, 0x8a, 0x15,
+ 0xa5, 0xd2, 0x45, 0xdb, 0x51, 0x38, 0xa4, 0x9d, 0x2a, 0xf8, 0xef, 0x89,
+ 0x01, 0xdf, 0xaa, 0x3a, 0x6a, 0xed, 0xe3, 0xb3, 0xc8, 0xb8, 0x05, 0xdf,
+ 0xda, 0xe7, 0x3f, 0x62, 0x2e, 0xf6, 0x08, 0xde, 0x43, 0x3c, 0x41, 0x7c,
+};
+static const unsigned char kat2705_nonce[] = {0};
+static const unsigned char kat2705_persstr[] = {0};
+static const unsigned char kat2705_entropyinreseed[] = {
+ 0xd7, 0x90, 0x8a, 0xc9, 0xd3, 0xb4, 0xb7, 0xc4, 0x66, 0x00, 0xc4, 0x7f,
+ 0x16, 0x47, 0xdd, 0xcc, 0x62, 0x1b, 0x71, 0xb7, 0x55, 0x30, 0xfd, 0x9b,
+ 0xcf, 0xe0, 0x5e, 0x26, 0xf8, 0x2d, 0xbf, 0xa6, 0x5a, 0x60, 0xa9, 0x61,
+ 0x4f, 0x0a, 0x09, 0xd0, 0x36, 0x64, 0x19, 0x02, 0x3e, 0xd9, 0xf4, 0xdb,
+};
+static const unsigned char kat2705_addinreseed[] = {0};
+static const unsigned char kat2705_addin0[] = {0};
+static const unsigned char kat2705_addin1[] = {0};
+static const unsigned char kat2705_retbits[] = {
+ 0xb8, 0x3d, 0x06, 0xfc, 0x0e, 0x5b, 0xd3, 0x39, 0x9d, 0x71, 0x6c, 0x7e,
+ 0x3c, 0xd8, 0x02, 0x9f, 0x79, 0xda, 0x4e, 0x03, 0xa1, 0x77, 0xdd, 0xf4,
+ 0x25, 0x0c, 0x40, 0x0a, 0xa4, 0xf4, 0xf9, 0x40, 0x83, 0x33, 0x81, 0x3c,
+ 0x9c, 0xee, 0x37, 0x1a, 0x4d, 0x9f, 0x42, 0x46, 0xaa, 0x7f, 0xe4, 0xb2,
+ 0x0f, 0xa9, 0x36, 0xa9, 0x16, 0xb3, 0xe1, 0xfa, 0x73, 0x90, 0x1c, 0xe2,
+ 0x8d, 0xf5, 0x67, 0xcc,
+};
+static const struct drbg_kat_pr_false kat2705_t = {
+ 4, kat2705_entropyin, kat2705_nonce, kat2705_persstr,
+ kat2705_entropyinreseed, kat2705_addinreseed, kat2705_addin0,
+ kat2705_addin1, kat2705_retbits
+};
+static const struct drbg_kat kat2705 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2705_t
+};
+
+static const unsigned char kat2706_entropyin[] = {
+ 0x11, 0x4b, 0xb3, 0x46, 0xcf, 0x39, 0xf2, 0xb1, 0x9a, 0x0c, 0x00, 0x3e,
+ 0x97, 0x80, 0x95, 0xb6, 0xa5, 0x44, 0x8b, 0x73, 0x9b, 0x6b, 0xed, 0xba,
+ 0x1d, 0x41, 0x05, 0x3f, 0x79, 0x2d, 0x0a, 0x34, 0xc6, 0x2e, 0xb9, 0xff,
+ 0x08, 0xc0, 0xd1, 0x61, 0xd3, 0x69, 0xe8, 0xae, 0xa9, 0xf6, 0x81, 0x82,
+};
+static const unsigned char kat2706_nonce[] = {0};
+static const unsigned char kat2706_persstr[] = {0};
+static const unsigned char kat2706_entropyinreseed[] = {
+ 0x73, 0x59, 0xd2, 0x3f, 0xf0, 0x81, 0xa7, 0x76, 0xc2, 0xc9, 0xc3, 0xbc,
+ 0xed, 0x8e, 0x01, 0xb2, 0xc2, 0xc6, 0xdc, 0xb4, 0x12, 0xa3, 0x37, 0x06,
+ 0x6f, 0x4c, 0xf5, 0xc6, 0xc3, 0x49, 0x94, 0xfc, 0x0f, 0x6d, 0xa9, 0x70,
+ 0x12, 0xc9, 0x82, 0xb1, 0x54, 0x40, 0xea, 0x0d, 0x6a, 0xc3, 0x21, 0xff,
+};
+static const unsigned char kat2706_addinreseed[] = {0};
+static const unsigned char kat2706_addin0[] = {0};
+static const unsigned char kat2706_addin1[] = {0};
+static const unsigned char kat2706_retbits[] = {
+ 0x84, 0x84, 0x0c, 0x71, 0x2b, 0xa0, 0x18, 0x24, 0xf8, 0x5c, 0x23, 0x52,
+ 0x40, 0x24, 0xc2, 0x27, 0x7e, 0xe6, 0x9f, 0xe9, 0x7e, 0xeb, 0x44, 0x29,
+ 0x94, 0x7c, 0xce, 0xdb, 0x3d, 0x29, 0xcc, 0x20, 0x41, 0x77, 0x57, 0x62,
+ 0x54, 0x10, 0xf4, 0xf3, 0x0a, 0x68, 0x9b, 0xad, 0xab, 0x50, 0x37, 0x66,
+ 0x87, 0x36, 0xf8, 0xbe, 0x50, 0xf1, 0x3a, 0xdb, 0x7b, 0x8c, 0xd2, 0xe2,
+ 0xb9, 0x76, 0x1f, 0x39,
+};
+static const struct drbg_kat_pr_false kat2706_t = {
+ 5, kat2706_entropyin, kat2706_nonce, kat2706_persstr,
+ kat2706_entropyinreseed, kat2706_addinreseed, kat2706_addin0,
+ kat2706_addin1, kat2706_retbits
+};
+static const struct drbg_kat kat2706 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2706_t
+};
+
+static const unsigned char kat2707_entropyin[] = {
+ 0x1d, 0x7a, 0xe2, 0xfe, 0xdc, 0x12, 0xd7, 0xe7, 0x46, 0xd2, 0x59, 0xfd,
+ 0x17, 0x86, 0x59, 0x22, 0x20, 0xd5, 0x29, 0x3d, 0x97, 0x4b, 0xd8, 0xf0,
+ 0xc3, 0x95, 0x29, 0xc8, 0x41, 0x7e, 0x04, 0xde, 0x1e, 0x44, 0xf8, 0x07,
+ 0x4f, 0xcb, 0x90, 0x73, 0x4a, 0x5c, 0x64, 0x8f, 0x5f, 0xba, 0xb7, 0x87,
+};
+static const unsigned char kat2707_nonce[] = {0};
+static const unsigned char kat2707_persstr[] = {0};
+static const unsigned char kat2707_entropyinreseed[] = {
+ 0x82, 0x73, 0xc6, 0xee, 0x3a, 0x82, 0x13, 0x14, 0x64, 0xee, 0x67, 0x59,
+ 0x13, 0x19, 0xf4, 0x60, 0xef, 0x13, 0x30, 0x3a, 0x36, 0x31, 0x67, 0xfb,
+ 0x7b, 0x6c, 0x2b, 0x54, 0x89, 0xc7, 0xcd, 0x34, 0x36, 0xbb, 0x11, 0x7b,
+ 0xfd, 0x92, 0xa9, 0xe4, 0x51, 0xcc, 0x30, 0x19, 0xad, 0xbe, 0x8f, 0xe4,
+};
+static const unsigned char kat2707_addinreseed[] = {0};
+static const unsigned char kat2707_addin0[] = {0};
+static const unsigned char kat2707_addin1[] = {0};
+static const unsigned char kat2707_retbits[] = {
+ 0x05, 0xad, 0xa0, 0xce, 0x82, 0x20, 0x6c, 0x9d, 0x97, 0xf6, 0x60, 0xf3,
+ 0x3e, 0x6b, 0x0c, 0x22, 0xbd, 0x26, 0x3d, 0xab, 0x58, 0xc4, 0x38, 0xf3,
+ 0xa9, 0x00, 0xf9, 0xb3, 0x06, 0x29, 0x15, 0xed, 0x2f, 0x27, 0x2c, 0xe5,
+ 0x11, 0x0d, 0x85, 0xa7, 0xe5, 0x54, 0xbe, 0x35, 0x95, 0xe0, 0xad, 0x0c,
+ 0x05, 0x84, 0x6f, 0xc3, 0xf0, 0x7f, 0x35, 0xaa, 0xfd, 0x32, 0x42, 0x7f,
+ 0x1b, 0x96, 0xb4, 0x66,
+};
+static const struct drbg_kat_pr_false kat2707_t = {
+ 6, kat2707_entropyin, kat2707_nonce, kat2707_persstr,
+ kat2707_entropyinreseed, kat2707_addinreseed, kat2707_addin0,
+ kat2707_addin1, kat2707_retbits
+};
+static const struct drbg_kat kat2707 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2707_t
+};
+
+static const unsigned char kat2708_entropyin[] = {
+ 0x10, 0xe7, 0x5f, 0xc1, 0x6a, 0xa8, 0x60, 0xcc, 0x85, 0xb4, 0x4e, 0x1d,
+ 0x62, 0xbf, 0x05, 0xdd, 0x19, 0x54, 0x16, 0x59, 0x44, 0xf5, 0xaf, 0xce,
+ 0xe8, 0xb7, 0x14, 0x77, 0x8f, 0x0e, 0x2c, 0x46, 0xe6, 0x70, 0x9c, 0xb9,
+ 0xee, 0x7d, 0xca, 0x65, 0xd2, 0x7c, 0x58, 0xdb, 0x32, 0x2d, 0x85, 0x56,
+};
+static const unsigned char kat2708_nonce[] = {0};
+static const unsigned char kat2708_persstr[] = {0};
+static const unsigned char kat2708_entropyinreseed[] = {
+ 0x67, 0x7c, 0x91, 0x81, 0xaa, 0x6c, 0x59, 0x61, 0x17, 0x25, 0x5f, 0x46,
+ 0xb6, 0x9f, 0xbc, 0x2d, 0x64, 0x45, 0x57, 0xbb, 0x8c, 0xf7, 0x27, 0x5e,
+ 0xcf, 0x15, 0xd2, 0x58, 0xe0, 0x55, 0x9b, 0x6a, 0x55, 0xe3, 0x16, 0xf7,
+ 0x7c, 0x88, 0xd4, 0x47, 0x0e, 0xf5, 0x5d, 0x9b, 0x4d, 0x01, 0x5f, 0x9e,
+};
+static const unsigned char kat2708_addinreseed[] = {0};
+static const unsigned char kat2708_addin0[] = {0};
+static const unsigned char kat2708_addin1[] = {0};
+static const unsigned char kat2708_retbits[] = {
+ 0x6d, 0xab, 0xd2, 0xc4, 0x1d, 0x07, 0x3e, 0x32, 0xbd, 0xc2, 0x6a, 0xf0,
+ 0x59, 0x64, 0x61, 0x94, 0x50, 0x48, 0x2d, 0x74, 0xc6, 0xa5, 0x3b, 0x5f,
+ 0x29, 0xe5, 0x66, 0x9b, 0x03, 0x79, 0xde, 0x22, 0x1f, 0x31, 0x72, 0x7d,
+ 0x53, 0x03, 0x65, 0xdb, 0x27, 0x16, 0x06, 0x6b, 0xde, 0x88, 0x3e, 0x07,
+ 0xaa, 0x67, 0x9e, 0x80, 0x11, 0xbe, 0x1d, 0x50, 0x13, 0x14, 0x0a, 0x7f,
+ 0x97, 0xd7, 0x3f, 0xfc,
+};
+static const struct drbg_kat_pr_false kat2708_t = {
+ 7, kat2708_entropyin, kat2708_nonce, kat2708_persstr,
+ kat2708_entropyinreseed, kat2708_addinreseed, kat2708_addin0,
+ kat2708_addin1, kat2708_retbits
+};
+static const struct drbg_kat kat2708 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2708_t
+};
+
+static const unsigned char kat2709_entropyin[] = {
+ 0x00, 0xe4, 0x87, 0x17, 0xe8, 0xea, 0x0f, 0x20, 0x3d, 0xcc, 0x3a, 0x60,
+ 0xac, 0xa9, 0x8f, 0x1a, 0xf8, 0xbb, 0xde, 0x96, 0x13, 0x11, 0xdd, 0xa2,
+ 0x4b, 0xb8, 0xc4, 0x14, 0x51, 0x2c, 0x26, 0x98, 0xfe, 0x08, 0x59, 0x54,
+ 0x97, 0x9d, 0x76, 0x15, 0xbf, 0x20, 0xa7, 0xbc, 0xb7, 0x3e, 0xa7, 0xa5,
+};
+static const unsigned char kat2709_nonce[] = {0};
+static const unsigned char kat2709_persstr[] = {0};
+static const unsigned char kat2709_entropyinreseed[] = {
+ 0x41, 0xb3, 0xbd, 0x28, 0x2d, 0xc0, 0xd9, 0x6a, 0xbc, 0x61, 0xdb, 0xdd,
+ 0x1e, 0x3d, 0x61, 0x4b, 0x66, 0x4c, 0x93, 0x63, 0xfd, 0x0a, 0x54, 0x44,
+ 0x08, 0x4f, 0x46, 0xeb, 0x10, 0xd8, 0xf7, 0x6c, 0x02, 0xa0, 0xc6, 0x0c,
+ 0xb8, 0x21, 0x70, 0x6b, 0x65, 0x33, 0x5f, 0x04, 0xc5, 0x5f, 0x24, 0xd7,
+};
+static const unsigned char kat2709_addinreseed[] = {0};
+static const unsigned char kat2709_addin0[] = {0};
+static const unsigned char kat2709_addin1[] = {0};
+static const unsigned char kat2709_retbits[] = {
+ 0x21, 0x6b, 0x0b, 0xb7, 0x3f, 0xa6, 0x30, 0x40, 0xc4, 0x4b, 0x45, 0x1f,
+ 0x8b, 0x8d, 0xd7, 0x9d, 0x2e, 0x6e, 0x9b, 0x27, 0xaa, 0x51, 0xbe, 0x43,
+ 0xa6, 0x31, 0x96, 0x41, 0xe5, 0x53, 0x01, 0x95, 0x6d, 0xd7, 0xfe, 0xb1,
+ 0x45, 0xa8, 0xe5, 0x05, 0x8e, 0x83, 0xa5, 0x54, 0x45, 0xcd, 0xb4, 0x8e,
+ 0x50, 0xa7, 0x09, 0xd0, 0xd2, 0xf7, 0xf1, 0xf3, 0x4e, 0xa1, 0x64, 0x6b,
+ 0x66, 0x21, 0x84, 0x81,
+};
+static const struct drbg_kat_pr_false kat2709_t = {
+ 8, kat2709_entropyin, kat2709_nonce, kat2709_persstr,
+ kat2709_entropyinreseed, kat2709_addinreseed, kat2709_addin0,
+ kat2709_addin1, kat2709_retbits
+};
+static const struct drbg_kat kat2709 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2709_t
+};
+
+static const unsigned char kat2710_entropyin[] = {
+ 0x52, 0x74, 0x0d, 0x90, 0x61, 0xb0, 0x96, 0x0f, 0x62, 0x7f, 0xc8, 0xc6,
+ 0x98, 0xb7, 0xbb, 0xdb, 0x80, 0xd5, 0x99, 0xbc, 0x32, 0xb6, 0xb8, 0xc5,
+ 0x07, 0x45, 0xc9, 0xbf, 0x19, 0x41, 0x5e, 0x8f, 0xf7, 0xec, 0x79, 0x2d,
+ 0x41, 0x65, 0x89, 0x32, 0x2e, 0x50, 0xea, 0x01, 0x42, 0x60, 0x1f, 0xd7,
+};
+static const unsigned char kat2710_nonce[] = {0};
+static const unsigned char kat2710_persstr[] = {0};
+static const unsigned char kat2710_entropyinreseed[] = {
+ 0xbb, 0x23, 0x2b, 0xa5, 0xa3, 0x58, 0x48, 0xd3, 0x24, 0xdf, 0xe2, 0x95,
+ 0x69, 0x74, 0x21, 0x25, 0x04, 0x69, 0x18, 0x55, 0x08, 0xcc, 0x79, 0xfc,
+ 0xbc, 0x79, 0x53, 0x5d, 0x0a, 0x43, 0xdd, 0x4f, 0x16, 0x40, 0xc4, 0x32,
+ 0x51, 0xa2, 0xb2, 0xc2, 0x90, 0xf0, 0xae, 0x82, 0xe5, 0xf4, 0xe7, 0xbc,
+};
+static const unsigned char kat2710_addinreseed[] = {0};
+static const unsigned char kat2710_addin0[] = {0};
+static const unsigned char kat2710_addin1[] = {0};
+static const unsigned char kat2710_retbits[] = {
+ 0x1c, 0x93, 0xd4, 0xdb, 0xd9, 0x72, 0x54, 0xee, 0xda, 0x5b, 0xc2, 0x5a,
+ 0x36, 0x2d, 0xb4, 0xb8, 0xb6, 0x78, 0xaf, 0xb0, 0x17, 0x00, 0xe3, 0x7d,
+ 0xf5, 0x32, 0xfd, 0x39, 0x4d, 0x9b, 0x79, 0x55, 0x36, 0x8a, 0x28, 0x6b,
+ 0xd2, 0x83, 0x28, 0x73, 0xbb, 0x01, 0xec, 0x1c, 0xc3, 0x09, 0x3a, 0x10,
+ 0xc1, 0xc2, 0x23, 0xfb, 0x0b, 0xf2, 0x04, 0x72, 0x34, 0x27, 0x07, 0x24,
+ 0x7c, 0xa4, 0xe3, 0xc8,
+};
+static const struct drbg_kat_pr_false kat2710_t = {
+ 9, kat2710_entropyin, kat2710_nonce, kat2710_persstr,
+ kat2710_entropyinreseed, kat2710_addinreseed, kat2710_addin0,
+ kat2710_addin1, kat2710_retbits
+};
+static const struct drbg_kat kat2710 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2710_t
+};
+
+static const unsigned char kat2711_entropyin[] = {
+ 0x00, 0xa9, 0x48, 0x9b, 0x6e, 0xaa, 0xa9, 0xd7, 0x81, 0xe5, 0xb3, 0xa6,
+ 0xaa, 0x7a, 0x87, 0x79, 0x80, 0xcd, 0xcd, 0x43, 0xf9, 0x98, 0x9d, 0xa4,
+ 0xde, 0xd7, 0xed, 0xca, 0x9a, 0x70, 0x55, 0xdb, 0xde, 0xb4, 0x53, 0x66,
+ 0x8e, 0x9b, 0x2a, 0xff, 0x3d, 0xf6, 0x27, 0x9a, 0xbf, 0x2f, 0x41, 0xd1,
+};
+static const unsigned char kat2711_nonce[] = {0};
+static const unsigned char kat2711_persstr[] = {0};
+static const unsigned char kat2711_entropyinreseed[] = {
+ 0x49, 0x1a, 0xd6, 0x3b, 0xbd, 0xaf, 0x1a, 0x3c, 0xec, 0xc2, 0x0a, 0x94,
+ 0xa0, 0x23, 0x54, 0xd3, 0xf9, 0xe0, 0x5d, 0xba, 0xb9, 0xbe, 0x9b, 0x9f,
+ 0xab, 0x21, 0xb7, 0x4b, 0x44, 0xc1, 0xd7, 0x49, 0x03, 0x31, 0xc3, 0x6b,
+ 0xb8, 0x53, 0x25, 0x11, 0x7c, 0x9f, 0xa9, 0x88, 0x02, 0xa5, 0x8f, 0x77,
+};
+static const unsigned char kat2711_addinreseed[] = {0};
+static const unsigned char kat2711_addin0[] = {0};
+static const unsigned char kat2711_addin1[] = {0};
+static const unsigned char kat2711_retbits[] = {
+ 0xec, 0x0e, 0x9b, 0xf5, 0xc3, 0xd2, 0x0c, 0xab, 0xfe, 0xff, 0x79, 0x48,
+ 0x85, 0x1f, 0x5d, 0x51, 0xff, 0xae, 0xe6, 0x34, 0x5d, 0x90, 0x48, 0x0e,
+ 0x56, 0x01, 0xea, 0x1c, 0xf7, 0xdc, 0x4d, 0x04, 0xbd, 0xa3, 0xea, 0x0c,
+ 0xee, 0x43, 0x87, 0xcf, 0x92, 0x2c, 0x07, 0xdf, 0x82, 0x0f, 0xc8, 0x2b,
+ 0x8d, 0x03, 0x85, 0xa7, 0xdf, 0x53, 0x0c, 0x97, 0x77, 0x97, 0x83, 0x1f,
+ 0x6b, 0xc3, 0x65, 0x83,
+};
+static const struct drbg_kat_pr_false kat2711_t = {
+ 10, kat2711_entropyin, kat2711_nonce, kat2711_persstr,
+ kat2711_entropyinreseed, kat2711_addinreseed, kat2711_addin0,
+ kat2711_addin1, kat2711_retbits
+};
+static const struct drbg_kat kat2711 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2711_t
+};
+
+static const unsigned char kat2712_entropyin[] = {
+ 0x16, 0x94, 0xab, 0xa5, 0x88, 0x7e, 0x90, 0xe8, 0x62, 0x13, 0x94, 0x22,
+ 0x9c, 0x3d, 0x58, 0xec, 0x20, 0xb6, 0xfe, 0x24, 0x89, 0x6d, 0x84, 0x39,
+ 0x72, 0x82, 0x84, 0x50, 0x41, 0xa5, 0x51, 0x9b, 0x32, 0xa8, 0xcb, 0xa4,
+ 0x05, 0x10, 0xd9, 0x7d, 0xb6, 0xea, 0x33, 0xeb, 0x93, 0x4f, 0x11, 0xc2,
+};
+static const unsigned char kat2712_nonce[] = {0};
+static const unsigned char kat2712_persstr[] = {0};
+static const unsigned char kat2712_entropyinreseed[] = {
+ 0x6b, 0x01, 0xbb, 0xcf, 0xc8, 0x32, 0x29, 0x94, 0x8e, 0xf2, 0x47, 0x81,
+ 0x74, 0x10, 0xbe, 0xca, 0x2d, 0xe2, 0x37, 0xce, 0xdd, 0x56, 0x9e, 0x47,
+ 0xed, 0xd0, 0xe3, 0x0d, 0x57, 0xfb, 0x2a, 0xb1, 0xb7, 0xb4, 0xe0, 0xeb,
+ 0xac, 0xe0, 0x91, 0x6f, 0x72, 0x66, 0x0e, 0x9d, 0x45, 0x8f, 0x1d, 0xb6,
+};
+static const unsigned char kat2712_addinreseed[] = {0};
+static const unsigned char kat2712_addin0[] = {0};
+static const unsigned char kat2712_addin1[] = {0};
+static const unsigned char kat2712_retbits[] = {
+ 0x8d, 0xd4, 0x64, 0x00, 0xda, 0xe3, 0x5d, 0xaa, 0x5f, 0x89, 0x4d, 0xf7,
+ 0xa7, 0x2d, 0x6f, 0x54, 0x5a, 0xbd, 0x1b, 0x6a, 0x56, 0x41, 0x87, 0x19,
+ 0xc9, 0xef, 0x87, 0x69, 0x2d, 0xec, 0xc2, 0x0e, 0x2c, 0x7b, 0xd9, 0x2f,
+ 0x2c, 0xe5, 0xac, 0xf5, 0xa6, 0x2c, 0xd0, 0xdb, 0xed, 0x86, 0x1a, 0x88,
+ 0x4c, 0xc2, 0xd3, 0x0d, 0xd2, 0xb5, 0x22, 0x73, 0x93, 0xce, 0x14, 0x76,
+ 0xa2, 0xc4, 0x22, 0x4b,
+};
+static const struct drbg_kat_pr_false kat2712_t = {
+ 11, kat2712_entropyin, kat2712_nonce, kat2712_persstr,
+ kat2712_entropyinreseed, kat2712_addinreseed, kat2712_addin0,
+ kat2712_addin1, kat2712_retbits
+};
+static const struct drbg_kat kat2712 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2712_t
+};
+
+static const unsigned char kat2713_entropyin[] = {
+ 0x43, 0xf4, 0x70, 0x88, 0x76, 0xba, 0x02, 0x94, 0xd2, 0x2b, 0xd1, 0xbf,
+ 0xc9, 0xa5, 0xe5, 0xc2, 0x50, 0x69, 0xbc, 0xc0, 0xf4, 0x64, 0x79, 0xb0,
+ 0x41, 0xce, 0x1a, 0xf4, 0x9b, 0xce, 0x5c, 0xdc, 0x24, 0x55, 0x84, 0x9b,
+ 0xc3, 0x4e, 0x64, 0x12, 0xc1, 0x03, 0x69, 0x21, 0xab, 0x43, 0x0a, 0x05,
+};
+static const unsigned char kat2713_nonce[] = {0};
+static const unsigned char kat2713_persstr[] = {0};
+static const unsigned char kat2713_entropyinreseed[] = {
+ 0x53, 0xf2, 0x0c, 0x82, 0xd1, 0xc0, 0x33, 0x48, 0x45, 0x19, 0x0d, 0x28,
+ 0xf9, 0xf7, 0xca, 0xea, 0x76, 0x83, 0xef, 0x4c, 0x6f, 0x76, 0x02, 0x8b,
+ 0xd6, 0x8d, 0x1e, 0xef, 0xa1, 0x74, 0x59, 0xa6, 0xf2, 0x41, 0xc8, 0xf1,
+ 0x81, 0x90, 0x7c, 0x12, 0x23, 0xc8, 0x1d, 0x5f, 0x82, 0x97, 0x51, 0xca,
+};
+static const unsigned char kat2713_addinreseed[] = {0};
+static const unsigned char kat2713_addin0[] = {0};
+static const unsigned char kat2713_addin1[] = {0};
+static const unsigned char kat2713_retbits[] = {
+ 0xdb, 0xae, 0xd5, 0x92, 0xb1, 0x08, 0x53, 0xda, 0x9f, 0xe8, 0x16, 0xd2,
+ 0xc7, 0x01, 0x07, 0xef, 0x55, 0xb6, 0x78, 0xdb, 0xf1, 0x45, 0xb2, 0xb3,
+ 0x74, 0x99, 0x74, 0x0d, 0x56, 0xf1, 0x88, 0xe1, 0xd0, 0xb7, 0xc8, 0x61,
+ 0x35, 0x03, 0x53, 0x9a, 0x62, 0x2c, 0xc0, 0x66, 0x74, 0xbc, 0xd1, 0x0c,
+ 0x18, 0xf4, 0x09, 0x69, 0x27, 0x3b, 0xd3, 0x39, 0x7d, 0xb8, 0x68, 0x9b,
+ 0x7f, 0xaf, 0xca, 0xd6,
+};
+static const struct drbg_kat_pr_false kat2713_t = {
+ 12, kat2713_entropyin, kat2713_nonce, kat2713_persstr,
+ kat2713_entropyinreseed, kat2713_addinreseed, kat2713_addin0,
+ kat2713_addin1, kat2713_retbits
+};
+static const struct drbg_kat kat2713 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2713_t
+};
+
+static const unsigned char kat2714_entropyin[] = {
+ 0xd3, 0x87, 0x08, 0x57, 0xb4, 0x86, 0xc2, 0x84, 0x40, 0x51, 0xe9, 0xe5,
+ 0xd9, 0x37, 0xb1, 0xff, 0x7c, 0x8c, 0x90, 0xa3, 0x78, 0xa9, 0xed, 0x76,
+ 0x6e, 0xc5, 0xe0, 0xa8, 0x3e, 0x43, 0x11, 0xb8, 0x3b, 0x92, 0xa8, 0xe8,
+ 0xbd, 0x59, 0x1d, 0x5b, 0x9a, 0xf5, 0x37, 0x15, 0x8e, 0x34, 0xb3, 0xd7,
+};
+static const unsigned char kat2714_nonce[] = {0};
+static const unsigned char kat2714_persstr[] = {0};
+static const unsigned char kat2714_entropyinreseed[] = {
+ 0xf4, 0x8c, 0x35, 0x51, 0x24, 0xc3, 0x4e, 0x02, 0x0f, 0xde, 0x83, 0x53,
+ 0x2c, 0x62, 0x67, 0x66, 0xc7, 0x1b, 0x85, 0xe3, 0x21, 0x4d, 0x37, 0xaa,
+ 0x63, 0xb4, 0xf3, 0x00, 0x15, 0x96, 0x95, 0x24, 0x28, 0x18, 0x73, 0xa6,
+ 0xec, 0x9e, 0x47, 0xc2, 0xb0, 0xa6, 0x1e, 0x23, 0xd7, 0x82, 0x3a, 0xc1,
+};
+static const unsigned char kat2714_addinreseed[] = {0};
+static const unsigned char kat2714_addin0[] = {0};
+static const unsigned char kat2714_addin1[] = {0};
+static const unsigned char kat2714_retbits[] = {
+ 0x62, 0xfe, 0x61, 0xcc, 0x6b, 0xe7, 0x13, 0x29, 0x32, 0x31, 0x97, 0x9d,
+ 0xf1, 0x24, 0x25, 0x80, 0x66, 0xdd, 0x3b, 0xc5, 0x6f, 0x44, 0x33, 0x38,
+ 0x89, 0x78, 0x3d, 0xa7, 0xfd, 0x80, 0x75, 0xd8, 0xbe, 0x62, 0x39, 0xbe,
+ 0xd1, 0xbe, 0xcd, 0xfb, 0xe6, 0xbd, 0x71, 0x35, 0x2b, 0xc7, 0x7c, 0x38,
+ 0xd9, 0x51, 0x1b, 0xe5, 0xdf, 0x7a, 0x7d, 0xbd, 0xc4, 0x0d, 0x7f, 0x23,
+ 0x6d, 0x0e, 0x8d, 0x20,
+};
+static const struct drbg_kat_pr_false kat2714_t = {
+ 13, kat2714_entropyin, kat2714_nonce, kat2714_persstr,
+ kat2714_entropyinreseed, kat2714_addinreseed, kat2714_addin0,
+ kat2714_addin1, kat2714_retbits
+};
+static const struct drbg_kat kat2714 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2714_t
+};
+
+static const unsigned char kat2715_entropyin[] = {
+ 0x68, 0xe9, 0x1e, 0x73, 0x62, 0x3f, 0xa6, 0xa3, 0xce, 0x22, 0xf4, 0x24,
+ 0xe9, 0xdb, 0x97, 0x14, 0x59, 0xdf, 0xbe, 0x06, 0x60, 0x1c, 0xcf, 0xf9,
+ 0x6f, 0x17, 0x26, 0xfa, 0x18, 0xe6, 0x1d, 0x5c, 0xdc, 0x1d, 0xf9, 0x75,
+ 0x19, 0xc8, 0xe7, 0x19, 0x0a, 0xb6, 0xaa, 0xbf, 0x95, 0xbd, 0x1e, 0xe8,
+};
+static const unsigned char kat2715_nonce[] = {0};
+static const unsigned char kat2715_persstr[] = {0};
+static const unsigned char kat2715_entropyinreseed[] = {
+ 0x24, 0x9b, 0x56, 0xdc, 0xdc, 0x4c, 0x5c, 0x8e, 0xaf, 0x79, 0x6c, 0x86,
+ 0x85, 0xa7, 0x40, 0xfd, 0x4e, 0xa2, 0x45, 0x5c, 0x13, 0x5e, 0x0d, 0x7b,
+ 0x8e, 0x50, 0x53, 0x2f, 0xd8, 0x7c, 0x95, 0xb7, 0x81, 0xc8, 0xf3, 0x77,
+ 0x5c, 0x21, 0x3c, 0x27, 0x14, 0xee, 0xce, 0xf1, 0x40, 0x12, 0x5b, 0x78,
+};
+static const unsigned char kat2715_addinreseed[] = {0};
+static const unsigned char kat2715_addin0[] = {0};
+static const unsigned char kat2715_addin1[] = {0};
+static const unsigned char kat2715_retbits[] = {
+ 0xa1, 0x5d, 0x3d, 0x61, 0x40, 0x8d, 0xde, 0xa3, 0xb9, 0x75, 0x3c, 0x85,
+ 0x4c, 0x69, 0x3c, 0xa1, 0xa9, 0x1c, 0xf4, 0x9d, 0x17, 0x21, 0x60, 0xbf,
+ 0x15, 0xf5, 0x12, 0xf3, 0x45, 0xbb, 0x1b, 0xda, 0x9a, 0xa7, 0xbc, 0x4f,
+ 0xcc, 0xe1, 0x77, 0xfd, 0xfe, 0xbb, 0x3f, 0xea, 0x4c, 0xc6, 0x40, 0x4c,
+ 0x60, 0x24, 0x52, 0x7e, 0xa6, 0x62, 0x66, 0x9a, 0x5e, 0xb7, 0x87, 0x53,
+ 0x82, 0x2b, 0xfd, 0xd3,
+};
+static const struct drbg_kat_pr_false kat2715_t = {
+ 14, kat2715_entropyin, kat2715_nonce, kat2715_persstr,
+ kat2715_entropyinreseed, kat2715_addinreseed, kat2715_addin0,
+ kat2715_addin1, kat2715_retbits
+};
+static const struct drbg_kat kat2715 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2715_t
+};
+
+static const unsigned char kat2716_entropyin[] = {
+ 0x79, 0x1f, 0xa5, 0xe8, 0x1f, 0x80, 0xe8, 0xb1, 0x41, 0xe2, 0x28, 0xa0,
+ 0xd6, 0x23, 0x43, 0x6f, 0x3b, 0xb5, 0x23, 0xd8, 0xa0, 0x3e, 0x98, 0xb0,
+ 0x23, 0x47, 0x05, 0xcd, 0x8b, 0x9d, 0x94, 0xbe, 0x97, 0x94, 0xa2, 0xf6,
+ 0xff, 0xe0, 0x29, 0xa8, 0x53, 0xa6, 0x27, 0xf9, 0x26, 0x0f, 0xbc, 0x7e,
+};
+static const unsigned char kat2716_nonce[] = {0};
+static const unsigned char kat2716_persstr[] = {0};
+static const unsigned char kat2716_entropyinreseed[] = {
+ 0xfe, 0x04, 0x24, 0x55, 0x37, 0x63, 0x7c, 0xef, 0x4c, 0x8c, 0x5c, 0xd3,
+ 0x3b, 0xa9, 0x41, 0xd5, 0xaa, 0x03, 0xca, 0x9f, 0x1d, 0xeb, 0x58, 0x69,
+ 0x79, 0x12, 0x35, 0x21, 0xaa, 0x81, 0x15, 0x98, 0xf8, 0x1c, 0x0c, 0x44,
+ 0x34, 0x69, 0xb0, 0x29, 0xba, 0xd0, 0xbb, 0x7f, 0xb0, 0xc9, 0x9f, 0x82,
+};
+static const unsigned char kat2716_addinreseed[] = {
+ 0xef, 0xc1, 0x27, 0xb0, 0x13, 0xc3, 0x4b, 0x70, 0xa9, 0xf2, 0x84, 0xfd,
+ 0x1d, 0xf3, 0xbe, 0x0f, 0x28, 0x85, 0xd3, 0xca, 0xbe, 0x06, 0x67, 0x76,
+ 0x2f, 0x0e, 0xa8, 0x07, 0x34, 0x0e, 0x29, 0xd6, 0x5c, 0xc2, 0xc0, 0xf9,
+ 0x62, 0xf5, 0x43, 0x57, 0x70, 0x6c, 0xa0, 0xb6, 0xfc, 0x1f, 0x2e, 0x22,
+};
+static const unsigned char kat2716_addin0[] = {
+ 0x6c, 0x68, 0xa2, 0xf1, 0xe5, 0x95, 0x5d, 0xc8, 0x38, 0x29, 0xa7, 0xe5,
+ 0xac, 0xbb, 0x9e, 0x11, 0x02, 0x87, 0x52, 0x40, 0x32, 0xf0, 0xee, 0x91,
+ 0x4a, 0x78, 0x3c, 0x56, 0x1a, 0x1f, 0x44, 0x4a, 0xea, 0xe6, 0x8a, 0x35,
+ 0x56, 0x7d, 0x44, 0x3c, 0x0c, 0x91, 0x8e, 0x38, 0xc5, 0x65, 0x06, 0x7a,
+};
+static const unsigned char kat2716_addin1[] = {
+ 0x8a, 0x68, 0x25, 0x42, 0x05, 0x31, 0xf9, 0x24, 0x93, 0x5c, 0xf3, 0x38,
+ 0xd6, 0x8d, 0xf9, 0x9f, 0x0f, 0x7c, 0xfa, 0x32, 0xeb, 0x9d, 0x00, 0x24,
+ 0x68, 0xe6, 0xb2, 0x62, 0x1f, 0x09, 0x55, 0xa8, 0x2b, 0x2c, 0x4a, 0xc7,
+ 0x54, 0xba, 0x0c, 0x8e, 0xed, 0x24, 0xc5, 0xd8, 0xe9, 0x03, 0x63, 0xc6,
+};
+static const unsigned char kat2716_retbits[] = {
+ 0x65, 0x8d, 0xd9, 0x7b, 0x30, 0xa6, 0x43, 0x26, 0x90, 0xc6, 0x23, 0x22,
+ 0xee, 0x93, 0x3b, 0x44, 0xdb, 0xe5, 0x4d, 0x64, 0x64, 0x4a, 0x59, 0xd9,
+ 0xb9, 0x44, 0xbf, 0xf4, 0x7c, 0x3d, 0xbc, 0x1c, 0x9f, 0x12, 0x3a, 0x53,
+ 0xb8, 0x99, 0xd9, 0xb8, 0x6d, 0xcf, 0xa1, 0xed, 0x1d, 0x5f, 0xbf, 0xee,
+ 0xb9, 0x03, 0x3d, 0xfd, 0xf2, 0x91, 0xf9, 0xe8, 0x43, 0x56, 0x83, 0x09,
+ 0x46, 0x4d, 0x23, 0xd1,
+};
+static const struct drbg_kat_pr_false kat2716_t = {
+ 0, kat2716_entropyin, kat2716_nonce, kat2716_persstr,
+ kat2716_entropyinreseed, kat2716_addinreseed, kat2716_addin0,
+ kat2716_addin1, kat2716_retbits
+};
+static const struct drbg_kat kat2716 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2716_t
+};
+
+static const unsigned char kat2717_entropyin[] = {
+ 0x67, 0x93, 0x8e, 0x50, 0xe2, 0xd6, 0x90, 0xcb, 0xd3, 0xb6, 0xe1, 0x57,
+ 0xf7, 0xd5, 0xee, 0x7f, 0x0d, 0x54, 0x00, 0x95, 0xc5, 0x58, 0xe0, 0x56,
+ 0x0b, 0xef, 0x48, 0x4a, 0xbd, 0x67, 0xd7, 0xb0, 0x98, 0x5a, 0xdc, 0xa7,
+ 0x83, 0x89, 0xaa, 0x46, 0x7c, 0x63, 0x06, 0x6f, 0x5f, 0x83, 0x05, 0x3d,
+};
+static const unsigned char kat2717_nonce[] = {0};
+static const unsigned char kat2717_persstr[] = {0};
+static const unsigned char kat2717_entropyinreseed[] = {
+ 0x3d, 0xbf, 0x9a, 0xaa, 0xdd, 0x0d, 0xc4, 0xdb, 0x5d, 0x5e, 0x36, 0xfa,
+ 0x77, 0x03, 0x17, 0xc4, 0xec, 0x2e, 0x57, 0x3a, 0xb9, 0x0f, 0x09, 0xdc,
+ 0x10, 0x27, 0xa7, 0xea, 0x24, 0x1a, 0x9b, 0x23, 0xb7, 0x08, 0x48, 0xe6,
+ 0x92, 0xff, 0x31, 0x17, 0xd6, 0x51, 0x9c, 0x25, 0x8d, 0x58, 0xea, 0x73,
+};
+static const unsigned char kat2717_addinreseed[] = {
+ 0x04, 0x6a, 0xdc, 0x95, 0x42, 0x97, 0x65, 0x9c, 0x95, 0x28, 0x85, 0xff,
+ 0xe5, 0x68, 0xc0, 0xad, 0x2b, 0x7b, 0x16, 0x04, 0x16, 0x58, 0x84, 0x16,
+ 0x51, 0xb8, 0x08, 0x16, 0x7d, 0x99, 0x63, 0x9f, 0x4e, 0xa3, 0x24, 0x41,
+ 0x84, 0x8d, 0x03, 0xe1, 0x48, 0xc4, 0xaf, 0xfc, 0x4b, 0xec, 0xed, 0x13,
+};
+static const unsigned char kat2717_addin0[] = {
+ 0xc3, 0x62, 0x2c, 0xa8, 0x49, 0xdc, 0x70, 0x93, 0xdc, 0xea, 0x24, 0xa1,
+ 0x46, 0xae, 0x23, 0x1d, 0x8a, 0x03, 0xf9, 0x04, 0xa5, 0x0c, 0x21, 0x87,
+ 0x08, 0x5b, 0xb7, 0x65, 0x57, 0xb5, 0xe5, 0xba, 0xbb, 0xb7, 0x8f, 0x50,
+ 0x2e, 0x24, 0x0c, 0x03, 0x79, 0xf4, 0xe6, 0xc7, 0x2e, 0xaf, 0x33, 0x82,
+};
+static const unsigned char kat2717_addin1[] = {
+ 0xf4, 0x37, 0x85, 0x36, 0x10, 0x12, 0xa3, 0xb7, 0xc6, 0xf0, 0x86, 0x4a,
+ 0x3c, 0xd3, 0x82, 0x80, 0x0c, 0x45, 0x0b, 0xe0, 0xe2, 0xf0, 0x9c, 0x77,
+ 0x37, 0xf5, 0xa4, 0xc3, 0xa1, 0x98, 0xaa, 0xac, 0xc7, 0x87, 0x9f, 0x92,
+ 0x42, 0xe1, 0x83, 0x34, 0xc9, 0x43, 0x66, 0x05, 0x1a, 0xa5, 0xf7, 0x4f,
+};
+static const unsigned char kat2717_retbits[] = {
+ 0x2e, 0x95, 0x8a, 0xbb, 0xee, 0x0a, 0x85, 0x57, 0x9b, 0x35, 0xb0, 0x8a,
+ 0x07, 0xe6, 0x0b, 0xea, 0x67, 0xa4, 0x72, 0x34, 0x0b, 0x78, 0xdc, 0x3c,
+ 0x3f, 0x5a, 0x27, 0x31, 0x82, 0x8c, 0x3f, 0x4d, 0x8a, 0xef, 0x3f, 0xbb,
+ 0x6f, 0xe6, 0x22, 0x13, 0x3c, 0x15, 0x04, 0x84, 0x9d, 0xfa, 0x8f, 0x04,
+ 0x62, 0x1b, 0x5b, 0x3f, 0xe5, 0xd9, 0xea, 0x64, 0xdb, 0x70, 0x93, 0x1d,
+ 0xfd, 0xd6, 0x22, 0xe3,
+};
+static const struct drbg_kat_pr_false kat2717_t = {
+ 1, kat2717_entropyin, kat2717_nonce, kat2717_persstr,
+ kat2717_entropyinreseed, kat2717_addinreseed, kat2717_addin0,
+ kat2717_addin1, kat2717_retbits
+};
+static const struct drbg_kat kat2717 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2717_t
+};
+
+static const unsigned char kat2718_entropyin[] = {
+ 0x39, 0xc4, 0x02, 0x6c, 0x12, 0x99, 0x11, 0x58, 0x60, 0x04, 0xfb, 0x5b,
+ 0x48, 0xcb, 0x3d, 0x0e, 0xab, 0x46, 0x5d, 0x1a, 0xed, 0x16, 0xa4, 0x71,
+ 0x99, 0xd7, 0x40, 0x51, 0x37, 0xff, 0x14, 0x28, 0x29, 0xc5, 0x07, 0xa6,
+ 0x6e, 0x70, 0x23, 0xf9, 0x38, 0xd5, 0xcf, 0x03, 0x64, 0x6f, 0x55, 0xc0,
+};
+static const unsigned char kat2718_nonce[] = {0};
+static const unsigned char kat2718_persstr[] = {0};
+static const unsigned char kat2718_entropyinreseed[] = {
+ 0x84, 0x76, 0x30, 0x08, 0x35, 0x43, 0xd0, 0xb3, 0x31, 0xff, 0xbd, 0xdf,
+ 0x05, 0x99, 0x53, 0x0d, 0xb9, 0x4e, 0x37, 0x8f, 0xdc, 0x17, 0x2d, 0xe2,
+ 0x78, 0x1a, 0x28, 0xf7, 0x4d, 0x94, 0x37, 0xbe, 0x2c, 0xb4, 0x52, 0x32,
+ 0xd9, 0xc6, 0x89, 0x23, 0x92, 0x27, 0x42, 0xdc, 0xf2, 0xac, 0xef, 0xd5,
+};
+static const unsigned char kat2718_addinreseed[] = {
+ 0xfc, 0x5a, 0x55, 0xd8, 0x28, 0xaf, 0x7e, 0xc6, 0xe6, 0xce, 0x68, 0xd6,
+ 0x60, 0xc8, 0xfa, 0x2b, 0x85, 0x21, 0x01, 0x67, 0xe0, 0x12, 0x31, 0x6b,
+ 0x7c, 0x41, 0x58, 0x80, 0x52, 0xb6, 0xd3, 0x24, 0x41, 0x4d, 0xb3, 0xc4,
+ 0x77, 0xc0, 0x7d, 0xdf, 0xb7, 0xe0, 0xb7, 0xfc, 0x76, 0xc5, 0x93, 0x54,
+};
+static const unsigned char kat2718_addin0[] = {
+ 0x01, 0x9d, 0xb1, 0x90, 0xc9, 0xb3, 0x5f, 0xb0, 0xd3, 0x5e, 0x2a, 0x92,
+ 0x1f, 0x2b, 0xf3, 0x57, 0x6f, 0x1a, 0x1f, 0xf2, 0xc5, 0x89, 0x57, 0xdd,
+ 0x2a, 0xc4, 0xc7, 0x45, 0x28, 0x3b, 0xa9, 0x17, 0xed, 0xdb, 0x5d, 0xea,
+ 0x40, 0x79, 0xef, 0x9a, 0x43, 0xad, 0x0c, 0x5e, 0xa9, 0xfb, 0xdd, 0xc2,
+};
+static const unsigned char kat2718_addin1[] = {
+ 0x51, 0xf1, 0x49, 0x3e, 0xaf, 0x56, 0x47, 0xc3, 0xda, 0x74, 0x31, 0x4d,
+ 0xff, 0xa1, 0xf0, 0xaf, 0x27, 0x9b, 0x3b, 0x93, 0x1a, 0xa0, 0x40, 0x35,
+ 0x33, 0x31, 0xd9, 0x0e, 0xc7, 0x9d, 0x1c, 0x01, 0xeb, 0xd2, 0xf2, 0x01,
+ 0x45, 0x7b, 0x7b, 0xb0, 0x96, 0xef, 0x80, 0xc7, 0xc9, 0x4e, 0xf9, 0x7a,
+};
+static const unsigned char kat2718_retbits[] = {
+ 0xe8, 0xe2, 0x21, 0xed, 0xb4, 0x41, 0x47, 0x0c, 0x5f, 0x00, 0x20, 0xf9,
+ 0x16, 0xb9, 0x5b, 0x9e, 0xa8, 0x18, 0xc8, 0x28, 0xe3, 0xd3, 0x6e, 0x67,
+ 0xd4, 0x63, 0xdd, 0xd1, 0x35, 0xbe, 0xf9, 0x13, 0x87, 0xf5, 0x69, 0xf2,
+ 0xf2, 0xd7, 0xd0, 0xd9, 0x1e, 0x49, 0x28, 0x69, 0x6e, 0xc2, 0xfa, 0x9f,
+ 0x55, 0x55, 0xbf, 0x9d, 0xbd, 0x02, 0x2d, 0x17, 0x97, 0xa6, 0x2f, 0x3e,
+ 0x0b, 0x12, 0x92, 0x6d,
+};
+static const struct drbg_kat_pr_false kat2718_t = {
+ 2, kat2718_entropyin, kat2718_nonce, kat2718_persstr,
+ kat2718_entropyinreseed, kat2718_addinreseed, kat2718_addin0,
+ kat2718_addin1, kat2718_retbits
+};
+static const struct drbg_kat kat2718 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2718_t
+};
+
+static const unsigned char kat2719_entropyin[] = {
+ 0xd4, 0x4d, 0x6e, 0x6b, 0xc7, 0x42, 0xc9, 0x94, 0x60, 0x03, 0x3a, 0x10,
+ 0x28, 0xf5, 0x1d, 0xa3, 0x82, 0x84, 0xa3, 0xa4, 0x22, 0x44, 0x90, 0x3d,
+ 0xb3, 0x83, 0xcb, 0x2c, 0xe7, 0x54, 0xdf, 0x46, 0x8e, 0xd0, 0x7c, 0xfa,
+ 0x40, 0x96, 0xd2, 0x95, 0x32, 0xd1, 0x34, 0x14, 0xde, 0x81, 0x01, 0xb3,
+};
+static const unsigned char kat2719_nonce[] = {0};
+static const unsigned char kat2719_persstr[] = {0};
+static const unsigned char kat2719_entropyinreseed[] = {
+ 0x90, 0xc6, 0x3b, 0x62, 0x4e, 0x22, 0xbe, 0x43, 0xa5, 0x99, 0xf5, 0xc5,
+ 0xb0, 0x66, 0x52, 0x5b, 0x3d, 0xbc, 0xf1, 0x6a, 0xe7, 0x4b, 0xaa, 0x9c,
+ 0x84, 0xd0, 0xe5, 0x6a, 0x6b, 0xa0, 0x4b, 0x71, 0x3f, 0x9d, 0x1b, 0x34,
+ 0x52, 0x92, 0x52, 0x6f, 0xc8, 0xe8, 0xf6, 0xd8, 0x2f, 0x49, 0x34, 0xd1,
+};
+static const unsigned char kat2719_addinreseed[] = {
+ 0x91, 0xb2, 0x1d, 0xc2, 0x3b, 0x63, 0x99, 0x2e, 0xe4, 0x6d, 0xd0, 0x9e,
+ 0x35, 0xad, 0xf4, 0x17, 0xbc, 0x36, 0x92, 0xaa, 0xa6, 0x05, 0xae, 0x0d,
+ 0xb0, 0x00, 0x1f, 0x9e, 0x8b, 0x3c, 0xa3, 0x35, 0x3d, 0xa3, 0x83, 0x08,
+ 0xde, 0x5a, 0xd3, 0x28, 0xf1, 0x36, 0x3a, 0x33, 0x4e, 0x88, 0x0e, 0x09,
+};
+static const unsigned char kat2719_addin0[] = {
+ 0x96, 0x9d, 0x80, 0x70, 0xe5, 0xa5, 0x35, 0x51, 0xcb, 0xaa, 0x6c, 0x86,
+ 0x92, 0x4f, 0xf5, 0x8c, 0x72, 0x0f, 0xa4, 0xee, 0x5a, 0x81, 0xf0, 0x22,
+ 0x4b, 0x64, 0xb0, 0xa0, 0xa1, 0xe4, 0xa6, 0x4a, 0x3c, 0xdc, 0x69, 0x52,
+ 0x22, 0xc6, 0xf3, 0x84, 0xe0, 0xbc, 0x5e, 0x3d, 0xf1, 0xd7, 0x61, 0x22,
+};
+static const unsigned char kat2719_addin1[] = {
+ 0x1e, 0x88, 0x89, 0x83, 0xb3, 0x98, 0xd0, 0xa5, 0xff, 0x8f, 0x25, 0xb8,
+ 0xdc, 0x69, 0x2a, 0x8a, 0x62, 0x15, 0xa4, 0x90, 0xb0, 0x42, 0xc2, 0x6e,
+ 0xc1, 0xd6, 0xcb, 0xd0, 0xbe, 0x24, 0xe7, 0xdb, 0xfb, 0x3f, 0xd9, 0x10,
+ 0xbf, 0x22, 0xa9, 0xfb, 0x78, 0x15, 0x6d, 0xfa, 0x94, 0x2d, 0x0a, 0xd8,
+};
+static const unsigned char kat2719_retbits[] = {
+ 0x0e, 0xed, 0x7d, 0x0b, 0x13, 0xb0, 0x86, 0x94, 0x55, 0x9d, 0x74, 0x38,
+ 0xa7, 0x77, 0x1c, 0x31, 0x27, 0xbf, 0xc0, 0xa3, 0x51, 0xcf, 0xfc, 0x1f,
+ 0x5b, 0x32, 0x8b, 0xdf, 0x7f, 0x6f, 0xfb, 0xde, 0xc6, 0x6b, 0xfa, 0xa3,
+ 0xd3, 0xf0, 0x60, 0x39, 0x90, 0x99, 0x12, 0x6d, 0x4b, 0xf5, 0x88, 0xb8,
+ 0xc6, 0x7b, 0x9f, 0x2e, 0xc5, 0x09, 0xcf, 0x11, 0x1b, 0xef, 0xed, 0xa7,
+ 0xeb, 0xfc, 0x5a, 0xd8,
+};
+static const struct drbg_kat_pr_false kat2719_t = {
+ 3, kat2719_entropyin, kat2719_nonce, kat2719_persstr,
+ kat2719_entropyinreseed, kat2719_addinreseed, kat2719_addin0,
+ kat2719_addin1, kat2719_retbits
+};
+static const struct drbg_kat kat2719 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2719_t
+};
+
+static const unsigned char kat2720_entropyin[] = {
+ 0xa5, 0x26, 0xf4, 0x71, 0x4b, 0x36, 0x83, 0x03, 0xb4, 0x6f, 0x21, 0x3c,
+ 0xa0, 0x3f, 0x43, 0x1c, 0x6d, 0x3f, 0x7a, 0xe0, 0xb0, 0xc6, 0xba, 0xe4,
+ 0x0a, 0xce, 0x63, 0xf2, 0x70, 0x23, 0xfd, 0x6a, 0x89, 0x63, 0xb7, 0x40,
+ 0xde, 0xb4, 0xd1, 0x2e, 0x92, 0x4f, 0x8b, 0xde, 0x93, 0x19, 0x1e, 0x1f,
+};
+static const unsigned char kat2720_nonce[] = {0};
+static const unsigned char kat2720_persstr[] = {0};
+static const unsigned char kat2720_entropyinreseed[] = {
+ 0xb8, 0xf1, 0x45, 0x4e, 0x83, 0x53, 0xe2, 0x3f, 0xf3, 0x61, 0x4f, 0xd8,
+ 0x55, 0xcb, 0xcc, 0x17, 0x8b, 0x3c, 0x95, 0x34, 0x55, 0xe7, 0x0a, 0x98,
+ 0x16, 0x85, 0xe4, 0x7b, 0xce, 0xe9, 0xb1, 0xb6, 0xd4, 0x46, 0x2a, 0x4b,
+ 0x1c, 0x49, 0x07, 0x03, 0x27, 0x3e, 0xe1, 0xa7, 0x33, 0xe9, 0xa3, 0x44,
+};
+static const unsigned char kat2720_addinreseed[] = {
+ 0x4b, 0x51, 0xf0, 0xaf, 0x14, 0x42, 0xcd, 0xab, 0x24, 0x97, 0xf3, 0x5b,
+ 0x58, 0x17, 0x96, 0xdd, 0x5b, 0xf7, 0x69, 0x97, 0xc3, 0x28, 0x2f, 0x84,
+ 0x2f, 0xe2, 0x88, 0x40, 0x7e, 0xc9, 0x83, 0x81, 0x8e, 0x52, 0xd1, 0x8d,
+ 0xdc, 0x27, 0xd5, 0xa0, 0xef, 0x16, 0x14, 0x1c, 0x28, 0x9b, 0x8f, 0x44,
+};
+static const unsigned char kat2720_addin0[] = {
+ 0x6c, 0x37, 0xcd, 0x5a, 0xa6, 0xdb, 0x94, 0xa1, 0x7b, 0xa3, 0x98, 0x00,
+ 0x67, 0xf2, 0x5e, 0x03, 0xf6, 0x54, 0x73, 0xb8, 0xf2, 0xdb, 0xe5, 0x6a,
+ 0x0f, 0x12, 0x45, 0x2a, 0xc2, 0x70, 0x99, 0x90, 0x9e, 0x20, 0x33, 0x2b,
+ 0x39, 0x4a, 0xb2, 0x36, 0x4d, 0x5e, 0x80, 0x3c, 0x9b, 0x05, 0xce, 0xea,
+};
+static const unsigned char kat2720_addin1[] = {
+ 0x16, 0x2a, 0x95, 0xc2, 0xb7, 0x7e, 0xe5, 0xbb, 0x30, 0x12, 0xcf, 0x0c,
+ 0x18, 0x31, 0xa7, 0xee, 0x2e, 0xd3, 0xe0, 0x7a, 0x35, 0x0f, 0x3b, 0x06,
+ 0x55, 0x77, 0x79, 0x1c, 0xef, 0x78, 0xc1, 0xaf, 0xd4, 0x9b, 0xa1, 0x17,
+ 0x80, 0xaa, 0xa1, 0xc4, 0x49, 0x43, 0xd6, 0x2d, 0x0f, 0xcd, 0x5b, 0xc9,
+};
+static const unsigned char kat2720_retbits[] = {
+ 0xdf, 0x89, 0x48, 0x35, 0xe0, 0x70, 0x73, 0xba, 0x4f, 0x0f, 0x75, 0xc4,
+ 0x80, 0xf8, 0x68, 0x78, 0xd1, 0xfb, 0xca, 0x27, 0xf7, 0xb4, 0xf9, 0xa8,
+ 0x26, 0x83, 0x9d, 0x76, 0xef, 0x17, 0x29, 0x91, 0xdf, 0x4f, 0xcc, 0x86,
+ 0x8b, 0x75, 0x40, 0x8e, 0xca, 0x2a, 0x6e, 0xaf, 0xb6, 0x2f, 0x9c, 0xa6,
+ 0xad, 0x9a, 0x93, 0x35, 0xe3, 0x63, 0xc6, 0x27, 0xdf, 0xc8, 0xf2, 0x32,
+ 0xcf, 0x25, 0x4a, 0x1e,
+};
+static const struct drbg_kat_pr_false kat2720_t = {
+ 4, kat2720_entropyin, kat2720_nonce, kat2720_persstr,
+ kat2720_entropyinreseed, kat2720_addinreseed, kat2720_addin0,
+ kat2720_addin1, kat2720_retbits
+};
+static const struct drbg_kat kat2720 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2720_t
+};
+
+static const unsigned char kat2721_entropyin[] = {
+ 0xe7, 0xcf, 0x17, 0x41, 0x47, 0x8a, 0x81, 0xe4, 0x09, 0x0c, 0xe2, 0x08,
+ 0xc5, 0xb8, 0x30, 0x0c, 0xeb, 0x54, 0x87, 0xe0, 0x6c, 0x83, 0xde, 0xe0,
+ 0x86, 0x05, 0x10, 0x9c, 0xb0, 0x0c, 0xb5, 0x2d, 0x1c, 0x3a, 0x72, 0x18,
+ 0x71, 0x22, 0xc9, 0x65, 0xf6, 0x8c, 0x5e, 0x7e, 0x54, 0xa8, 0xea, 0x10,
+};
+static const unsigned char kat2721_nonce[] = {0};
+static const unsigned char kat2721_persstr[] = {0};
+static const unsigned char kat2721_entropyinreseed[] = {
+ 0x08, 0x09, 0xaa, 0x01, 0x31, 0x10, 0xfc, 0xd6, 0xe7, 0x03, 0xcd, 0x5f,
+ 0x47, 0x40, 0x36, 0xf7, 0xee, 0x4c, 0xd1, 0x91, 0xc5, 0x22, 0x7c, 0xee,
+ 0x6c, 0x50, 0x9e, 0x86, 0x32, 0x4e, 0x7b, 0x2f, 0x96, 0x68, 0xbd, 0xb4,
+ 0x06, 0x29, 0xe5, 0x17, 0x04, 0xed, 0x16, 0x64, 0x26, 0xbe, 0x48, 0x3e,
+};
+static const unsigned char kat2721_addinreseed[] = {
+ 0xd6, 0x53, 0xea, 0xed, 0x49, 0x3f, 0xf4, 0xc2, 0x79, 0x1d, 0x5f, 0x18,
+ 0x6c, 0x44, 0x2d, 0xd4, 0x8b, 0x7e, 0xe4, 0x66, 0x6c, 0x90, 0x42, 0x6b,
+ 0x82, 0x93, 0xf8, 0x21, 0x30, 0xb2, 0x46, 0xf5, 0x90, 0x85, 0xfa, 0x2b,
+ 0x82, 0xc2, 0x59, 0x7d, 0x90, 0x7b, 0x35, 0xcd, 0x3f, 0x29, 0x00, 0xe5,
+};
+static const unsigned char kat2721_addin0[] = {
+ 0x43, 0x90, 0x64, 0x99, 0x73, 0xc3, 0x4e, 0x1a, 0x36, 0x8b, 0x55, 0x4d,
+ 0x91, 0x23, 0x97, 0xf4, 0x25, 0xad, 0xb3, 0xd9, 0x6a, 0xe7, 0x98, 0x29,
+ 0xeb, 0x64, 0xf3, 0xc3, 0xfb, 0x27, 0x56, 0x69, 0x2e, 0x66, 0x12, 0xdb,
+ 0xcc, 0xed, 0x4b, 0x3c, 0xd3, 0x34, 0xbb, 0x78, 0x80, 0xc3, 0x4c, 0xb9,
+};
+static const unsigned char kat2721_addin1[] = {
+ 0xb0, 0x9e, 0x0d, 0xfd, 0x27, 0x06, 0x72, 0xea, 0x55, 0x37, 0x90, 0x16,
+ 0x37, 0x50, 0xd0, 0x07, 0x3f, 0xe1, 0x56, 0x79, 0x9d, 0x23, 0xbe, 0x5d,
+ 0xcf, 0x78, 0xd7, 0x84, 0xc7, 0xec, 0xb4, 0xd4, 0xec, 0x05, 0x4f, 0x30,
+ 0x9c, 0x70, 0x4b, 0xa4, 0xe1, 0x53, 0xae, 0x3f, 0xcc, 0x60, 0xd3, 0xb5,
+};
+static const unsigned char kat2721_retbits[] = {
+ 0x9e, 0x2f, 0xb5, 0xe6, 0x69, 0xc4, 0x9f, 0x12, 0xab, 0x98, 0x9a, 0xae,
+ 0x82, 0x2e, 0x12, 0x91, 0x34, 0xbf, 0x5b, 0x11, 0x19, 0xc6, 0x9c, 0x92,
+ 0xda, 0xfc, 0xf5, 0x3a, 0x7d, 0xd1, 0xf7, 0x05, 0x5c, 0x6b, 0x2e, 0x57,
+ 0xbb, 0x59, 0x25, 0x9d, 0x2c, 0x48, 0x6e, 0x33, 0xa2, 0xec, 0x41, 0xbe,
+ 0x3f, 0xd9, 0x67, 0x99, 0x7b, 0xe9, 0xb0, 0xc7, 0xb1, 0x1c, 0xd7, 0x90,
+ 0xf3, 0xb3, 0x0c, 0x7c,
+};
+static const struct drbg_kat_pr_false kat2721_t = {
+ 5, kat2721_entropyin, kat2721_nonce, kat2721_persstr,
+ kat2721_entropyinreseed, kat2721_addinreseed, kat2721_addin0,
+ kat2721_addin1, kat2721_retbits
+};
+static const struct drbg_kat kat2721 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2721_t
+};
+
+static const unsigned char kat2722_entropyin[] = {
+ 0x80, 0x9f, 0x1f, 0x12, 0x37, 0x46, 0x09, 0xf0, 0x11, 0x1c, 0x34, 0x7f,
+ 0xb8, 0x89, 0x35, 0xac, 0x53, 0xd4, 0x73, 0xf5, 0xf7, 0xe0, 0x93, 0x89,
+ 0x80, 0x01, 0xe9, 0xc4, 0xa8, 0x1e, 0xd0, 0x78, 0xcd, 0xf5, 0xee, 0xfa,
+ 0x0b, 0x16, 0x68, 0x26, 0xc6, 0x32, 0xd1, 0x3b, 0x1a, 0x0d, 0x93, 0x7c,
+};
+static const unsigned char kat2722_nonce[] = {0};
+static const unsigned char kat2722_persstr[] = {0};
+static const unsigned char kat2722_entropyinreseed[] = {
+ 0xf2, 0xd0, 0x18, 0x28, 0xe4, 0xae, 0x75, 0x7d, 0x90, 0xc3, 0x6f, 0xe5,
+ 0xad, 0x18, 0x33, 0x78, 0xac, 0x44, 0x2c, 0x07, 0xb4, 0x74, 0x1c, 0x85,
+ 0xcc, 0x34, 0x0c, 0x86, 0x26, 0xf5, 0x64, 0x72, 0xf0, 0xea, 0xc7, 0xbf,
+ 0x48, 0x48, 0xfa, 0x18, 0xef, 0xba, 0x8d, 0x37, 0xd1, 0x99, 0x8c, 0x4a,
+};
+static const unsigned char kat2722_addinreseed[] = {
+ 0x80, 0xa3, 0x46, 0xbd, 0x1c, 0x05, 0xf0, 0x0c, 0x08, 0xd9, 0xe6, 0xc1,
+ 0x0a, 0xc0, 0xfc, 0x38, 0x68, 0x06, 0xcc, 0x22, 0xd6, 0x2e, 0xc9, 0xdb,
+ 0xc2, 0xeb, 0x30, 0x13, 0x1a, 0xe7, 0xd8, 0x9a, 0xa9, 0x1a, 0x67, 0xa8,
+ 0x48, 0xd0, 0x1b, 0xb8, 0xd9, 0xeb, 0x8a, 0x93, 0x26, 0xc4, 0xcc, 0x81,
+};
+static const unsigned char kat2722_addin0[] = {
+ 0x0f, 0xc7, 0xcb, 0x58, 0x9c, 0xbc, 0x14, 0x11, 0x11, 0xf5, 0x57, 0xd8,
+ 0x52, 0xc5, 0xcf, 0x47, 0x63, 0x3f, 0x44, 0x30, 0xba, 0xfd, 0xe1, 0x47,
+ 0x25, 0x42, 0x06, 0x10, 0xf6, 0xc2, 0x27, 0x77, 0xca, 0x93, 0x94, 0xd4,
+ 0x4d, 0xc1, 0x70, 0x1a, 0xaa, 0xe0, 0xa6, 0xf2, 0x36, 0x27, 0x89, 0xb9,
+};
+static const unsigned char kat2722_addin1[] = {
+ 0xed, 0x60, 0xa2, 0xa9, 0x6c, 0xef, 0x44, 0x2e, 0xcb, 0x1b, 0x0b, 0x83,
+ 0x11, 0xd5, 0x47, 0x0f, 0x42, 0x5f, 0xb6, 0x0c, 0xd1, 0xca, 0x81, 0xd4,
+ 0x84, 0x6b, 0xe2, 0xd4, 0x5e, 0xbb, 0xf8, 0x57, 0xcd, 0xd5, 0x8c, 0xb2,
+ 0x2a, 0x72, 0x57, 0x87, 0x03, 0x75, 0x9f, 0xcf, 0xe6, 0x97, 0xa3, 0xcc,
+};
+static const unsigned char kat2722_retbits[] = {
+ 0xa0, 0xa7, 0xd1, 0x6b, 0xd8, 0x3e, 0x64, 0xaf, 0xaf, 0x0a, 0xd5, 0xc1,
+ 0x37, 0x8f, 0x34, 0x1a, 0x6a, 0xce, 0xfd, 0xdb, 0x15, 0xa1, 0x05, 0x66,
+ 0xbd, 0x23, 0x1e, 0xd7, 0x43, 0x79, 0x61, 0xc5, 0x0a, 0x47, 0xef, 0x8b,
+ 0x03, 0x23, 0x89, 0xfd, 0x8a, 0x52, 0x73, 0xcf, 0x92, 0x6c, 0x70, 0xb1,
+ 0xce, 0xbf, 0xcf, 0xb9, 0x31, 0x76, 0xfe, 0xc6, 0x4d, 0xa8, 0x81, 0x0e,
+ 0x93, 0xee, 0xc5, 0x3c,
+};
+static const struct drbg_kat_pr_false kat2722_t = {
+ 6, kat2722_entropyin, kat2722_nonce, kat2722_persstr,
+ kat2722_entropyinreseed, kat2722_addinreseed, kat2722_addin0,
+ kat2722_addin1, kat2722_retbits
+};
+static const struct drbg_kat kat2722 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2722_t
+};
+
+static const unsigned char kat2723_entropyin[] = {
+ 0xb8, 0x9c, 0x72, 0x42, 0x62, 0xf8, 0xeb, 0xe3, 0xc2, 0x9e, 0x8c, 0x8b,
+ 0xf9, 0x92, 0x95, 0x9e, 0x3b, 0x7f, 0x42, 0xa5, 0xab, 0xf0, 0xd3, 0x36,
+ 0xb8, 0x27, 0xf6, 0xb6, 0x84, 0x82, 0xbf, 0x9a, 0x75, 0xb5, 0xf1, 0x15,
+ 0x74, 0xaf, 0xfe, 0x92, 0x9b, 0xae, 0x0c, 0xfd, 0xf2, 0x13, 0xbd, 0x3d,
+};
+static const unsigned char kat2723_nonce[] = {0};
+static const unsigned char kat2723_persstr[] = {0};
+static const unsigned char kat2723_entropyinreseed[] = {
+ 0x7a, 0x13, 0x1f, 0xe4, 0x12, 0xb2, 0x5a, 0x66, 0xd4, 0x0e, 0xcb, 0x9e,
+ 0xd7, 0xc5, 0xcd, 0x5d, 0x0e, 0x85, 0xc3, 0x3c, 0x72, 0xec, 0x77, 0x96,
+ 0xfd, 0x63, 0x20, 0xf3, 0xfd, 0xfe, 0x9c, 0x71, 0x09, 0x96, 0x97, 0x3d,
+ 0x7a, 0xf3, 0xaf, 0x53, 0x9a, 0xeb, 0xb4, 0xe6, 0x87, 0xd1, 0x6a, 0xf6,
+};
+static const unsigned char kat2723_addinreseed[] = {
+ 0x3a, 0x3b, 0x2a, 0x07, 0xc5, 0x87, 0x70, 0xef, 0x94, 0xcd, 0x0f, 0xa6,
+ 0x34, 0x8a, 0xcd, 0x06, 0x0d, 0xf2, 0xfd, 0xe2, 0x6e, 0x67, 0x47, 0x3d,
+ 0x43, 0xde, 0x7a, 0x92, 0x9b, 0x0d, 0xf7, 0xae, 0x35, 0x9e, 0xe3, 0xb3,
+ 0x6a, 0x37, 0x07, 0xd2, 0x7d, 0x29, 0x36, 0xa5, 0x6e, 0x53, 0xf7, 0xe0,
+};
+static const unsigned char kat2723_addin0[] = {
+ 0x5f, 0x9b, 0xe2, 0x1e, 0xe1, 0x24, 0x77, 0x6b, 0x93, 0x1c, 0x18, 0x84,
+ 0xf4, 0x76, 0x03, 0x96, 0xcd, 0x04, 0x16, 0x04, 0x80, 0x3a, 0xc8, 0x63,
+ 0x14, 0x79, 0xe0, 0xb0, 0xdd, 0x90, 0x0d, 0x18, 0x66, 0xd8, 0xb0, 0xb4,
+ 0x41, 0xdb, 0x82, 0xbc, 0x66, 0xd5, 0xc0, 0xda, 0x79, 0xb4, 0xf8, 0xa7,
+};
+static const unsigned char kat2723_addin1[] = {
+ 0x68, 0x20, 0xab, 0xa2, 0x5b, 0x1a, 0xf7, 0xfd, 0x7a, 0x08, 0x79, 0xdf,
+ 0xdd, 0x6e, 0xd1, 0x32, 0xee, 0x5d, 0x0b, 0xa8, 0x92, 0xf7, 0x5e, 0x31,
+ 0xff, 0xb0, 0xad, 0x0e, 0xea, 0x6f, 0x3e, 0xa3, 0x7a, 0x42, 0x1e, 0x06,
+ 0xbb, 0x74, 0x65, 0xc3, 0x25, 0x9e, 0x59, 0xc4, 0xa7, 0xe0, 0x78, 0x33,
+};
+static const unsigned char kat2723_retbits[] = {
+ 0x2a, 0x44, 0xd6, 0x85, 0x4e, 0xbe, 0x70, 0x9e, 0x26, 0x4b, 0x25, 0x3f,
+ 0xf1, 0xe0, 0xa7, 0xe4, 0x5e, 0x6c, 0x99, 0x6f, 0x5e, 0xe5, 0xc3, 0x71,
+ 0xec, 0xe0, 0xac, 0xc7, 0xbc, 0xfd, 0x55, 0x93, 0xfc, 0x2a, 0x0d, 0xcd,
+ 0x4f, 0xad, 0x29, 0x82, 0x0d, 0xdb, 0x9d, 0x61, 0x05, 0x57, 0xb4, 0xe3,
+ 0x61, 0x90, 0x09, 0xa1, 0x5c, 0x85, 0x3a, 0x5e, 0x46, 0xf0, 0x66, 0x1b,
+ 0x72, 0x7d, 0x41, 0xe8,
+};
+static const struct drbg_kat_pr_false kat2723_t = {
+ 7, kat2723_entropyin, kat2723_nonce, kat2723_persstr,
+ kat2723_entropyinreseed, kat2723_addinreseed, kat2723_addin0,
+ kat2723_addin1, kat2723_retbits
+};
+static const struct drbg_kat kat2723 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2723_t
+};
+
+static const unsigned char kat2724_entropyin[] = {
+ 0x2b, 0x1f, 0xe5, 0xb6, 0xd4, 0x2a, 0x71, 0x2a, 0xe6, 0x59, 0xaa, 0x1b,
+ 0x62, 0x23, 0x33, 0x92, 0x0e, 0x3b, 0x08, 0x25, 0x5a, 0xd4, 0x08, 0x80,
+ 0x33, 0x01, 0xf8, 0xcb, 0x9f, 0x82, 0xb9, 0x5a, 0x69, 0x1f, 0x66, 0x92,
+ 0x21, 0x73, 0xaf, 0xfb, 0xeb, 0x9d, 0xa3, 0x5d, 0x40, 0xcf, 0x2d, 0x1c,
+};
+static const unsigned char kat2724_nonce[] = {0};
+static const unsigned char kat2724_persstr[] = {0};
+static const unsigned char kat2724_entropyinreseed[] = {
+ 0x2f, 0xf2, 0x97, 0x76, 0xef, 0x48, 0xc0, 0xd2, 0x03, 0x08, 0xd0, 0x7f,
+ 0xa0, 0x26, 0x95, 0x13, 0x86, 0x6a, 0x59, 0xdb, 0x42, 0xa1, 0xda, 0xf8,
+ 0xee, 0x75, 0xd8, 0xf5, 0x63, 0x38, 0x8c, 0xb5, 0x7c, 0xc6, 0x63, 0xff,
+ 0x25, 0x70, 0xc2, 0xfe, 0x4a, 0x40, 0x75, 0x25, 0x31, 0xe0, 0xc7, 0x79,
+};
+static const unsigned char kat2724_addinreseed[] = {
+ 0xa2, 0xc6, 0xd3, 0x44, 0xde, 0xcb, 0xbe, 0xfa, 0xb1, 0x76, 0x4c, 0x42,
+ 0x40, 0x01, 0x44, 0x24, 0x55, 0xc9, 0xe8, 0x7c, 0x06, 0xd6, 0x2b, 0xee,
+ 0x63, 0xd6, 0xd1, 0x8b, 0x87, 0xce, 0xd4, 0xec, 0xe2, 0x8d, 0x6c, 0x0f,
+ 0xec, 0x41, 0x40, 0x40, 0x99, 0x22, 0x91, 0x5f, 0x07, 0x44, 0xd3, 0xae,
+};
+static const unsigned char kat2724_addin0[] = {
+ 0x01, 0xcc, 0x14, 0x2d, 0x20, 0xa2, 0x01, 0x87, 0xc3, 0xc7, 0x2c, 0xdf,
+ 0xc3, 0x00, 0x2e, 0x4d, 0xa9, 0x9a, 0x09, 0x96, 0x4a, 0xf9, 0xa0, 0x0d,
+ 0x00, 0x01, 0xf3, 0x48, 0x38, 0x33, 0x73, 0xc4, 0x3f, 0xbe, 0xce, 0x59,
+ 0x46, 0xa9, 0xda, 0x9e, 0x50, 0x83, 0x32, 0x1d, 0xb9, 0x05, 0xe0, 0xef,
+};
+static const unsigned char kat2724_addin1[] = {
+ 0x38, 0xa6, 0x08, 0x06, 0xc0, 0x8f, 0x0d, 0x0a, 0xff, 0xcf, 0x1d, 0x30,
+ 0x45, 0xa2, 0x09, 0xcd, 0xe9, 0x7c, 0x89, 0xaf, 0x7d, 0xc7, 0xc0, 0xbb,
+ 0x1e, 0x16, 0x0e, 0x47, 0x83, 0xce, 0x5d, 0xef, 0xd6, 0x51, 0x76, 0x74,
+ 0x06, 0xfa, 0xf6, 0x5f, 0x15, 0xb0, 0xc5, 0xf6, 0xea, 0x19, 0x1a, 0x6e,
+};
+static const unsigned char kat2724_retbits[] = {
+ 0x33, 0x5d, 0xad, 0xa2, 0x0a, 0xd6, 0x87, 0x46, 0x08, 0x82, 0xb6, 0x40,
+ 0x61, 0x99, 0x4b, 0x86, 0x0e, 0x74, 0xd0, 0x53, 0xf5, 0x39, 0x7e, 0x0b,
+ 0x70, 0x0c, 0x9d, 0xb6, 0x10, 0xf9, 0xb4, 0x65, 0x01, 0x41, 0xf2, 0x5d,
+ 0xc2, 0x4e, 0x69, 0xff, 0x1e, 0xb6, 0x36, 0x12, 0xcb, 0x2b, 0x3b, 0x90,
+ 0x5d, 0x29, 0x22, 0xac, 0x88, 0xb0, 0x91, 0xcc, 0xce, 0x52, 0x3b, 0x1c,
+ 0x62, 0xcd, 0x14, 0xf3,
+};
+static const struct drbg_kat_pr_false kat2724_t = {
+ 8, kat2724_entropyin, kat2724_nonce, kat2724_persstr,
+ kat2724_entropyinreseed, kat2724_addinreseed, kat2724_addin0,
+ kat2724_addin1, kat2724_retbits
+};
+static const struct drbg_kat kat2724 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2724_t
+};
+
+static const unsigned char kat2725_entropyin[] = {
+ 0x54, 0x53, 0x00, 0x87, 0x43, 0xd1, 0xd5, 0xda, 0x6a, 0xcf, 0x27, 0xe8,
+ 0xc3, 0x61, 0x64, 0xb2, 0xfc, 0x13, 0xfc, 0xa4, 0xe2, 0x83, 0xbd, 0x87,
+ 0x34, 0xf0, 0xf5, 0xb2, 0x7f, 0xcb, 0xbc, 0x4d, 0x62, 0x2a, 0x8f, 0xa2,
+ 0x1a, 0xdd, 0x04, 0x03, 0xfb, 0x70, 0xe1, 0x5f, 0x8d, 0x7a, 0xd2, 0x28,
+};
+static const unsigned char kat2725_nonce[] = {0};
+static const unsigned char kat2725_persstr[] = {0};
+static const unsigned char kat2725_entropyinreseed[] = {
+ 0xd6, 0xf8, 0xce, 0x10, 0xdd, 0x87, 0xf3, 0x1b, 0x35, 0xd2, 0xa0, 0x80,
+ 0xcb, 0x1a, 0xd3, 0x48, 0x2d, 0x1b, 0x3b, 0xf5, 0x94, 0xd5, 0xfa, 0x70,
+ 0x50, 0xdc, 0xcd, 0xfe, 0x78, 0x67, 0x97, 0x50, 0x8a, 0x83, 0xb2, 0xae,
+ 0xe1, 0x85, 0x12, 0x0f, 0x9a, 0x4c, 0x83, 0x93, 0xaf, 0x87, 0xc9, 0x7e,
+};
+static const unsigned char kat2725_addinreseed[] = {
+ 0x41, 0x13, 0xbe, 0x07, 0x17, 0x59, 0x1b, 0xec, 0x73, 0xcb, 0xfd, 0x3c,
+ 0x4c, 0x3c, 0x57, 0x42, 0xd2, 0x0c, 0x5e, 0x9b, 0x48, 0xb6, 0xec, 0x70,
+ 0x00, 0xf1, 0x12, 0xce, 0xc4, 0x69, 0x3d, 0xcf, 0xc1, 0x93, 0xbb, 0x94,
+ 0x9d, 0xca, 0x2f, 0xd1, 0xac, 0x9d, 0x67, 0xf0, 0x8b, 0xa7, 0x14, 0x07,
+};
+static const unsigned char kat2725_addin0[] = {
+ 0x87, 0xc9, 0x49, 0xf5, 0x9d, 0x22, 0x5b, 0x25, 0x3e, 0xc6, 0x16, 0xa2,
+ 0x82, 0x7c, 0x28, 0x19, 0x7f, 0xff, 0x51, 0x05, 0xa1, 0x23, 0xd9, 0x6e,
+ 0x8b, 0xac, 0xdd, 0x28, 0x83, 0xb8, 0xcd, 0x57, 0x0f, 0x20, 0xf6, 0xd5,
+ 0xd6, 0x4b, 0x3f, 0xdd, 0x6b, 0xc8, 0x8e, 0xe2, 0x27, 0xe2, 0x8b, 0xab,
+};
+static const unsigned char kat2725_addin1[] = {
+ 0x5e, 0x8a, 0x1a, 0xab, 0x2c, 0xf9, 0x72, 0x44, 0x66, 0xd2, 0x98, 0x94,
+ 0x3c, 0xbb, 0xbc, 0xc0, 0xf2, 0x76, 0x39, 0x29, 0xff, 0x7c, 0xbf, 0xb4,
+ 0x21, 0x5f, 0xf6, 0x7c, 0xb5, 0x4c, 0x05, 0x81, 0xd9, 0x3c, 0x95, 0x2c,
+ 0x82, 0x01, 0x2b, 0xd7, 0x04, 0xbf, 0x66, 0xe7, 0x6a, 0x9b, 0x78, 0xe6,
+};
+static const unsigned char kat2725_retbits[] = {
+ 0xde, 0x38, 0xc1, 0x73, 0x13, 0x75, 0x20, 0x04, 0x47, 0x13, 0x37, 0x7c,
+ 0xe2, 0xb4, 0xe6, 0x72, 0xab, 0x7f, 0x1a, 0xae, 0x1a, 0x88, 0xc4, 0xa3,
+ 0xb7, 0x8a, 0x2a, 0xdf, 0x76, 0xd9, 0x58, 0xb5, 0xaa, 0x6c, 0x93, 0x45,
+ 0xcd, 0xeb, 0x00, 0xc3, 0x5f, 0x09, 0x9c, 0xf0, 0x5a, 0xe8, 0x5f, 0x7a,
+ 0xff, 0xb3, 0x2a, 0xa4, 0xe5, 0xbe, 0x43, 0xec, 0xc4, 0x06, 0xf7, 0x1c,
+ 0x77, 0x9e, 0x02, 0x07,
+};
+static const struct drbg_kat_pr_false kat2725_t = {
+ 9, kat2725_entropyin, kat2725_nonce, kat2725_persstr,
+ kat2725_entropyinreseed, kat2725_addinreseed, kat2725_addin0,
+ kat2725_addin1, kat2725_retbits
+};
+static const struct drbg_kat kat2725 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2725_t
+};
+
+static const unsigned char kat2726_entropyin[] = {
+ 0x1d, 0xb1, 0x47, 0xaf, 0xfb, 0x57, 0xd3, 0xee, 0x43, 0x1f, 0x17, 0x99,
+ 0xec, 0xd2, 0xa1, 0x8b, 0xc4, 0x5a, 0xd7, 0x35, 0xd1, 0x40, 0x9c, 0x9b,
+ 0x70, 0x9e, 0x1f, 0x2a, 0x2b, 0x20, 0x75, 0x2d, 0x04, 0x16, 0x7d, 0x79,
+ 0x39, 0xd9, 0x15, 0x36, 0x76, 0x9b, 0x61, 0xc2, 0x29, 0x9b, 0x4a, 0xeb,
+};
+static const unsigned char kat2726_nonce[] = {0};
+static const unsigned char kat2726_persstr[] = {0};
+static const unsigned char kat2726_entropyinreseed[] = {
+ 0x44, 0x9a, 0x75, 0x36, 0x19, 0x7b, 0x23, 0x56, 0x38, 0x0b, 0xb4, 0x42,
+ 0xfe, 0x26, 0xfb, 0x84, 0x6f, 0xdd, 0xea, 0x8b, 0xe7, 0x6e, 0xc6, 0xde,
+ 0xe4, 0x63, 0x83, 0x7d, 0x2e, 0x2b, 0x55, 0x11, 0x83, 0x09, 0x07, 0x15,
+ 0x8d, 0x4f, 0x84, 0xde, 0x5b, 0xba, 0xc1, 0x37, 0x4d, 0x13, 0x20, 0xc8,
+};
+static const unsigned char kat2726_addinreseed[] = {
+ 0xce, 0x21, 0x77, 0x55, 0x55, 0x60, 0xa5, 0x43, 0x93, 0x81, 0xe0, 0x87,
+ 0xf5, 0xab, 0xef, 0x9a, 0x1b, 0xce, 0xf2, 0x8d, 0x62, 0xd1, 0xb5, 0xbb,
+ 0x80, 0x17, 0x61, 0xd9, 0xdb, 0x9a, 0x81, 0xc6, 0x27, 0x0b, 0x9e, 0xed,
+ 0x79, 0x3f, 0xe5, 0xb8, 0x83, 0x65, 0xf9, 0x35, 0x41, 0x9c, 0xe4, 0x85,
+};
+static const unsigned char kat2726_addin0[] = {
+ 0x4d, 0x3c, 0x0b, 0x97, 0x0f, 0x3f, 0x33, 0x74, 0x56, 0x40, 0x07, 0x31,
+ 0xe8, 0xac, 0x66, 0x7a, 0xb5, 0x17, 0x34, 0x3f, 0x0b, 0xd0, 0x32, 0x60,
+ 0x06, 0x6a, 0x73, 0xaf, 0xde, 0x92, 0xc9, 0xd5, 0x67, 0x6a, 0x59, 0x5d,
+ 0xd9, 0x43, 0x83, 0x7e, 0x12, 0xe9, 0xcb, 0x5c, 0x9b, 0xa1, 0x9b, 0xf8,
+};
+static const unsigned char kat2726_addin1[] = {
+ 0xe0, 0x69, 0x0e, 0xe6, 0xa3, 0xda, 0xb9, 0xa0, 0x06, 0x4b, 0x9f, 0x66,
+ 0x24, 0x65, 0xf3, 0xbd, 0x64, 0xef, 0x58, 0x17, 0xe1, 0x57, 0x6d, 0x1a,
+ 0x03, 0x14, 0xcd, 0x53, 0x10, 0x05, 0x0e, 0x9e, 0xec, 0xce, 0x9a, 0xf2,
+ 0xab, 0x25, 0xd0, 0xbc, 0x75, 0xd5, 0x2a, 0x7f, 0xe5, 0xc8, 0xb8, 0x3d,
+};
+static const unsigned char kat2726_retbits[] = {
+ 0xe2, 0xb0, 0xd8, 0xa4, 0x4e, 0x3f, 0x8b, 0xa7, 0xfa, 0x4d, 0xfe, 0xbd,
+ 0x53, 0x45, 0xa9, 0x09, 0x96, 0xce, 0xa8, 0xdf, 0x80, 0xce, 0xc9, 0xa7,
+ 0x28, 0x91, 0x0d, 0x7f, 0xc5, 0xc0, 0x94, 0xf5, 0x32, 0x68, 0xfc, 0xee,
+ 0x40, 0x25, 0x1f, 0x6f, 0x47, 0xba, 0x66, 0x19, 0x2e, 0x3b, 0x8f, 0x3a,
+ 0x62, 0x70, 0x10, 0xea, 0x35, 0xf1, 0x11, 0x60, 0x7c, 0x44, 0x75, 0x82,
+ 0x03, 0xc8, 0x39, 0x5f,
+};
+static const struct drbg_kat_pr_false kat2726_t = {
+ 10, kat2726_entropyin, kat2726_nonce, kat2726_persstr,
+ kat2726_entropyinreseed, kat2726_addinreseed, kat2726_addin0,
+ kat2726_addin1, kat2726_retbits
+};
+static const struct drbg_kat kat2726 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2726_t
+};
+
+static const unsigned char kat2727_entropyin[] = {
+ 0xa4, 0xf0, 0x60, 0x38, 0x5b, 0x08, 0x50, 0xd4, 0x7d, 0x0c, 0x0b, 0x0a,
+ 0xc0, 0xec, 0xda, 0x01, 0x4b, 0x1f, 0xc6, 0xf9, 0x37, 0xc2, 0x9a, 0x07,
+ 0x13, 0x1a, 0x06, 0x9a, 0x8e, 0x92, 0xc2, 0xcb, 0x6c, 0xcf, 0x7e, 0xc4,
+ 0x02, 0x0e, 0x66, 0xff, 0xd5, 0x43, 0x7c, 0x9e, 0x5d, 0x4c, 0xaf, 0xce,
+};
+static const unsigned char kat2727_nonce[] = {0};
+static const unsigned char kat2727_persstr[] = {0};
+static const unsigned char kat2727_entropyinreseed[] = {
+ 0xef, 0x46, 0x49, 0x80, 0xf1, 0xce, 0x99, 0x63, 0x0c, 0xdc, 0xbd, 0xcc,
+ 0x21, 0xe8, 0x11, 0x7e, 0x59, 0x2f, 0xd7, 0x40, 0x4d, 0x82, 0x32, 0xf6,
+ 0xcf, 0xbb, 0x2c, 0x85, 0x1b, 0x93, 0xc7, 0x7a, 0x0c, 0x59, 0x4b, 0x22,
+ 0xb8, 0xcd, 0xc5, 0xb0, 0xae, 0x94, 0xd4, 0x48, 0xe8, 0x21, 0x8c, 0x4f,
+};
+static const unsigned char kat2727_addinreseed[] = {
+ 0x4f, 0x2f, 0x1b, 0x15, 0x89, 0xf6, 0x13, 0xc2, 0x3c, 0xbc, 0x06, 0x6b,
+ 0x1c, 0xbc, 0x89, 0x14, 0x6c, 0x47, 0x09, 0x58, 0x0a, 0x76, 0xda, 0xce,
+ 0x35, 0x2e, 0x90, 0x56, 0xb9, 0x11, 0x06, 0x31, 0x37, 0xd4, 0x20, 0xf2,
+ 0x08, 0x18, 0xd1, 0x0f, 0x2c, 0x4a, 0xf5, 0xff, 0xe3, 0xfb, 0xf0, 0x13,
+};
+static const unsigned char kat2727_addin0[] = {
+ 0xa9, 0x8e, 0xd1, 0x98, 0x9a, 0x02, 0x26, 0xf8, 0xa2, 0xae, 0x30, 0xd0,
+ 0x3b, 0xb8, 0x27, 0x0d, 0x48, 0x68, 0x00, 0xfb, 0x7a, 0x3f, 0x92, 0x45,
+ 0xd8, 0xfa, 0x5e, 0xe3, 0xef, 0x7b, 0x73, 0x21, 0xcc, 0x1a, 0x7a, 0x4b,
+ 0xdf, 0xfb, 0x07, 0x6f, 0x67, 0xe3, 0xcc, 0xca, 0xaf, 0x55, 0xaf, 0x53,
+};
+static const unsigned char kat2727_addin1[] = {
+ 0x2c, 0xe1, 0x65, 0xd5, 0x6b, 0x27, 0x06, 0xb8, 0x4b, 0x8d, 0x3d, 0x85,
+ 0xba, 0xf9, 0xeb, 0x00, 0x31, 0x99, 0xbc, 0xf8, 0xd9, 0xb1, 0x62, 0x31,
+ 0x21, 0x82, 0xbc, 0x94, 0xe9, 0x6f, 0xbb, 0x23, 0x6e, 0x7a, 0x6c, 0xd2,
+ 0x5a, 0x1d, 0x67, 0x68, 0x98, 0x08, 0x5a, 0xad, 0x9e, 0xab, 0x53, 0x63,
+};
+static const unsigned char kat2727_retbits[] = {
+ 0xa3, 0x44, 0xfd, 0x1c, 0x8b, 0x3b, 0x8b, 0x31, 0x5c, 0xc7, 0x1f, 0x7e,
+ 0xa0, 0x8d, 0x7f, 0x7b, 0x67, 0x28, 0x51, 0x85, 0x6c, 0xce, 0x86, 0x3f,
+ 0x46, 0x8e, 0x22, 0xc7, 0x0f, 0x46, 0xff, 0x1e, 0x60, 0x54, 0xcb, 0xbd,
+ 0xdb, 0xb9, 0x11, 0x1c, 0x43, 0x6d, 0xf3, 0xdf, 0xf2, 0x10, 0x0b, 0x83,
+ 0x79, 0xca, 0xd9, 0xbd, 0x44, 0x95, 0x06, 0x7a, 0xb4, 0x8a, 0x0f, 0x3a,
+ 0x1b, 0x7b, 0x80, 0x13,
+};
+static const struct drbg_kat_pr_false kat2727_t = {
+ 11, kat2727_entropyin, kat2727_nonce, kat2727_persstr,
+ kat2727_entropyinreseed, kat2727_addinreseed, kat2727_addin0,
+ kat2727_addin1, kat2727_retbits
+};
+static const struct drbg_kat kat2727 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2727_t
+};
+
+static const unsigned char kat2728_entropyin[] = {
+ 0x87, 0xc9, 0xa6, 0x2e, 0xfa, 0x5b, 0x02, 0x10, 0x14, 0x8f, 0x21, 0x29,
+ 0x95, 0x8e, 0xb8, 0x48, 0x6e, 0x44, 0x4a, 0xb7, 0x99, 0xd8, 0x6c, 0x04,
+ 0x52, 0x62, 0xa0, 0x7c, 0xa0, 0x5f, 0x64, 0x40, 0x03, 0xb5, 0xce, 0x88,
+ 0xfa, 0x05, 0x17, 0x0f, 0x3b, 0x65, 0x3c, 0x9b, 0x3f, 0xc2, 0xfb, 0xfd,
+};
+static const unsigned char kat2728_nonce[] = {0};
+static const unsigned char kat2728_persstr[] = {0};
+static const unsigned char kat2728_entropyinreseed[] = {
+ 0xe8, 0x9f, 0x28, 0x27, 0xfe, 0x7b, 0x20, 0x0c, 0xa1, 0x76, 0x04, 0x35,
+ 0x27, 0xb2, 0xad, 0x8b, 0x31, 0x74, 0x34, 0x95, 0xbb, 0x61, 0xf5, 0xfc,
+ 0xd5, 0x9f, 0xdd, 0x54, 0xa5, 0x29, 0x80, 0x3b, 0xd3, 0x1e, 0xd3, 0x8f,
+ 0x51, 0x84, 0x9e, 0xa4, 0x22, 0x02, 0xd8, 0x40, 0xf5, 0xa5, 0xd8, 0x69,
+};
+static const unsigned char kat2728_addinreseed[] = {
+ 0x21, 0x25, 0x4e, 0xc3, 0xb1, 0xad, 0x3a, 0xbf, 0xc3, 0xc2, 0x37, 0xbc,
+ 0x6e, 0xac, 0x8f, 0xb1, 0x73, 0xbb, 0xd9, 0x96, 0xd9, 0xab, 0xcb, 0xce,
+ 0x9c, 0x78, 0xda, 0xe6, 0x49, 0xce, 0x1c, 0x2a, 0xcd, 0x9e, 0xae, 0x88,
+ 0xa2, 0xe1, 0x17, 0xaa, 0xa7, 0x33, 0x76, 0x48, 0x37, 0x7b, 0x2d, 0xb7,
+};
+static const unsigned char kat2728_addin0[] = {
+ 0xd8, 0x13, 0x19, 0x28, 0x93, 0x26, 0x6c, 0xfd, 0xad, 0x9b, 0x9c, 0xd5,
+ 0x9a, 0xba, 0x0c, 0xc0, 0xd0, 0x7d, 0x2a, 0xc8, 0x84, 0x87, 0x7c, 0xf9,
+ 0x03, 0x3b, 0x08, 0xe4, 0xe9, 0x87, 0x7e, 0x70, 0x8d, 0x25, 0x33, 0xcd,
+ 0xeb, 0x60, 0x40, 0x73, 0xca, 0x1c, 0x92, 0x1b, 0x69, 0x63, 0x55, 0xc0,
+};
+static const unsigned char kat2728_addin1[] = {
+ 0xfe, 0x1e, 0x3c, 0x46, 0x0d, 0x88, 0x02, 0x74, 0x3a, 0xf6, 0xd8, 0x8b,
+ 0x1b, 0x2f, 0x0a, 0xac, 0xec, 0x84, 0x68, 0x03, 0x78, 0x35, 0xaf, 0x56,
+ 0xe2, 0x5a, 0x8a, 0x1c, 0xb4, 0x8f, 0x6c, 0x35, 0x17, 0xa9, 0xe4, 0xd4,
+ 0x04, 0xd3, 0x0c, 0x34, 0x18, 0x63, 0x95, 0xda, 0x17, 0x29, 0xa6, 0x7d,
+};
+static const unsigned char kat2728_retbits[] = {
+ 0x8e, 0x6d, 0x98, 0xa2, 0xf8, 0x64, 0xca, 0x79, 0x5f, 0x57, 0x50, 0xe1,
+ 0x40, 0x4e, 0xc2, 0x24, 0x14, 0xf8, 0xcb, 0xf2, 0x70, 0xfd, 0x65, 0x54,
+ 0x50, 0x42, 0x2c, 0x97, 0x95, 0x97, 0xb6, 0xea, 0x5d, 0xf9, 0x79, 0xd2,
+ 0x13, 0xda, 0x7e, 0x03, 0x8c, 0xab, 0x9e, 0x25, 0x00, 0xd4, 0xcc, 0x8c,
+ 0x4d, 0xec, 0x89, 0xbf, 0x77, 0x83, 0xab, 0xa6, 0xbc, 0x3b, 0x2b, 0xb2,
+ 0x80, 0xf4, 0xe1, 0x94,
+};
+static const struct drbg_kat_pr_false kat2728_t = {
+ 12, kat2728_entropyin, kat2728_nonce, kat2728_persstr,
+ kat2728_entropyinreseed, kat2728_addinreseed, kat2728_addin0,
+ kat2728_addin1, kat2728_retbits
+};
+static const struct drbg_kat kat2728 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2728_t
+};
+
+static const unsigned char kat2729_entropyin[] = {
+ 0xd9, 0x48, 0x60, 0x04, 0x71, 0x79, 0xb7, 0x5b, 0x27, 0xbf, 0xf1, 0x65,
+ 0x71, 0x64, 0xf4, 0x9e, 0x6d, 0xa6, 0x7d, 0x26, 0x5a, 0xeb, 0x48, 0x26,
+ 0xfe, 0xaa, 0xd5, 0x24, 0xea, 0x87, 0xac, 0xc5, 0xb8, 0x89, 0x5e, 0xee,
+ 0xe0, 0x08, 0xd0, 0x67, 0x23, 0x4c, 0x46, 0xda, 0x14, 0x72, 0x65, 0x44,
+};
+static const unsigned char kat2729_nonce[] = {0};
+static const unsigned char kat2729_persstr[] = {0};
+static const unsigned char kat2729_entropyinreseed[] = {
+ 0xc4, 0xa3, 0x47, 0x13, 0xf6, 0x7c, 0x2f, 0x97, 0x3b, 0xdd, 0x8f, 0x6e,
+ 0xd5, 0x82, 0x57, 0xaa, 0xa1, 0xca, 0x04, 0x9f, 0x41, 0x39, 0x37, 0x66,
+ 0x0c, 0xc1, 0xa9, 0x0d, 0xee, 0xf0, 0x75, 0xc7, 0x25, 0x3a, 0x08, 0x4d,
+ 0x33, 0x44, 0x23, 0xd5, 0xe8, 0xb8, 0x19, 0x9c, 0xfe, 0xba, 0xc2, 0xdd,
+};
+static const unsigned char kat2729_addinreseed[] = {
+ 0xcb, 0xa1, 0x20, 0xea, 0xbd, 0xe1, 0x83, 0x32, 0xc4, 0x7d, 0x02, 0x5b,
+ 0xe3, 0x55, 0x20, 0xe8, 0xaf, 0x7d, 0xfd, 0x95, 0x15, 0x99, 0x10, 0xbe,
+ 0x86, 0xca, 0xfb, 0x74, 0x7f, 0x17, 0xa9, 0x2a, 0x5e, 0x66, 0x77, 0x4c,
+ 0x4c, 0xdb, 0xd9, 0x05, 0xa2, 0x98, 0x4c, 0x40, 0xe8, 0x8f, 0xd7, 0xa5,
+};
+static const unsigned char kat2729_addin0[] = {
+ 0xef, 0xa2, 0xf6, 0xea, 0xb2, 0xbf, 0xcf, 0x05, 0x27, 0xb2, 0x05, 0x67,
+ 0x16, 0xfb, 0x0a, 0x45, 0xc7, 0xc5, 0xdf, 0x00, 0xf2, 0x0c, 0xaf, 0x0a,
+ 0xb7, 0xc8, 0x51, 0x51, 0x14, 0x45, 0xcd, 0x78, 0x40, 0x0d, 0xfa, 0x03,
+ 0x18, 0x56, 0x97, 0x8f, 0x43, 0x23, 0xa3, 0x77, 0xcf, 0xf0, 0xb4, 0x85,
+};
+static const unsigned char kat2729_addin1[] = {
+ 0x8a, 0xe9, 0xec, 0xde, 0xcf, 0x22, 0x43, 0xb8, 0x26, 0xbf, 0xb9, 0x52,
+ 0xc5, 0x5c, 0x2e, 0xae, 0x59, 0xa4, 0x49, 0x42, 0x0e, 0x7b, 0xb8, 0xc0,
+ 0x46, 0xa5, 0xb0, 0x3f, 0x76, 0xfd, 0xa9, 0x0c, 0xe5, 0xb1, 0x3d, 0x5a,
+ 0x21, 0xc7, 0x4b, 0x0d, 0x96, 0x1b, 0x2d, 0x1c, 0xb5, 0x0d, 0xf9, 0x0b,
+};
+static const unsigned char kat2729_retbits[] = {
+ 0xeb, 0xa9, 0x16, 0x5b, 0xc1, 0x9b, 0x83, 0x16, 0xd6, 0x15, 0x47, 0x56,
+ 0xf9, 0xa8, 0xd7, 0xae, 0xde, 0x3a, 0xa4, 0x24, 0xdf, 0x4d, 0x42, 0x5b,
+ 0x4b, 0x9a, 0x1d, 0xd9, 0xd6, 0x32, 0xf8, 0x3b, 0x94, 0x88, 0x16, 0x3b,
+ 0x73, 0xe0, 0xe0, 0x6a, 0x1f, 0xbc, 0xf9, 0xff, 0xef, 0x3b, 0x5c, 0x8f,
+ 0x6b, 0xa9, 0x91, 0xec, 0x94, 0xc5, 0x7e, 0xfc, 0x06, 0xb9, 0x48, 0xf1,
+ 0xe0, 0x72, 0x41, 0x20,
+};
+static const struct drbg_kat_pr_false kat2729_t = {
+ 13, kat2729_entropyin, kat2729_nonce, kat2729_persstr,
+ kat2729_entropyinreseed, kat2729_addinreseed, kat2729_addin0,
+ kat2729_addin1, kat2729_retbits
+};
+static const struct drbg_kat kat2729 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2729_t
+};
+
+static const unsigned char kat2730_entropyin[] = {
+ 0x2c, 0xb0, 0xd6, 0xe2, 0x7d, 0xe0, 0x4e, 0x6a, 0x6e, 0x95, 0xaf, 0x5c,
+ 0x5e, 0x4c, 0xbf, 0x3f, 0x99, 0x78, 0x85, 0x15, 0xa4, 0xe0, 0x86, 0xba,
+ 0xea, 0xf0, 0x94, 0x16, 0xee, 0xf5, 0xef, 0xcf, 0x04, 0xbd, 0x72, 0xe6,
+ 0x6f, 0x3b, 0x9b, 0x0f, 0x8c, 0xc0, 0x87, 0x58, 0x65, 0x95, 0x0e, 0x9d,
+};
+static const unsigned char kat2730_nonce[] = {0};
+static const unsigned char kat2730_persstr[] = {0};
+static const unsigned char kat2730_entropyinreseed[] = {
+ 0x70, 0x0d, 0x72, 0xc6, 0x78, 0x7e, 0xee, 0x74, 0x8c, 0xf3, 0x56, 0xe0,
+ 0x52, 0x95, 0x44, 0x39, 0xbd, 0xc4, 0x1e, 0x2c, 0x4e, 0x51, 0xf1, 0xef,
+ 0x3b, 0x7b, 0xf3, 0x7c, 0x21, 0x9f, 0x11, 0x1e, 0x7c, 0x21, 0xf7, 0x07,
+ 0x2e, 0xed, 0xe6, 0x17, 0xc2, 0x12, 0xcb, 0xcf, 0x54, 0x1a, 0x33, 0xba,
+};
+static const unsigned char kat2730_addinreseed[] = {
+ 0x45, 0x94, 0x32, 0x63, 0x35, 0xf4, 0x7b, 0x93, 0x5b, 0x2b, 0x66, 0x96,
+ 0x67, 0xcd, 0xe0, 0x24, 0x49, 0xf7, 0x2b, 0x4d, 0xfd, 0x86, 0xd5, 0xa7,
+ 0xd1, 0xaa, 0xe3, 0xcc, 0x44, 0xb0, 0x8e, 0x94, 0x11, 0x82, 0x70, 0x66,
+ 0x02, 0x9d, 0xfe, 0x7d, 0x9c, 0x9e, 0x15, 0x4c, 0xe2, 0x14, 0x67, 0xd5,
+};
+static const unsigned char kat2730_addin0[] = {
+ 0xed, 0x3f, 0x47, 0xe5, 0x9a, 0x12, 0xb3, 0x6a, 0x42, 0x61, 0x6b, 0x33,
+ 0x8c, 0x7a, 0x77, 0xa1, 0x8e, 0x33, 0x3d, 0x38, 0xab, 0xb9, 0xda, 0x4e,
+ 0x36, 0x91, 0x4b, 0x69, 0xf3, 0xc3, 0x47, 0x68, 0x80, 0x70, 0x55, 0x25,
+ 0x17, 0x0a, 0x32, 0x0d, 0xa2, 0x6d, 0xc4, 0x02, 0xc6, 0xaf, 0xdf, 0x49,
+};
+static const unsigned char kat2730_addin1[] = {
+ 0x6e, 0x39, 0xb2, 0x49, 0xf1, 0xb8, 0x11, 0x1f, 0xf1, 0x2f, 0xa2, 0x4f,
+ 0x9f, 0x23, 0x20, 0xdf, 0x2d, 0xc8, 0x75, 0x2e, 0x15, 0x41, 0xf5, 0x56,
+ 0xb5, 0xce, 0xdf, 0xff, 0x40, 0x9b, 0x6a, 0x85, 0x84, 0x90, 0xc2, 0x7e,
+ 0x05, 0x2a, 0x63, 0x50, 0x4c, 0x71, 0x31, 0xb4, 0x38, 0xf4, 0x43, 0x56,
+};
+static const unsigned char kat2730_retbits[] = {
+ 0x65, 0x0b, 0xee, 0x69, 0x39, 0x3d, 0x5d, 0x77, 0x93, 0xc8, 0xa5, 0xa4,
+ 0x0c, 0xae, 0x79, 0xbd, 0x47, 0x0d, 0x15, 0xfd, 0xac, 0xab, 0x7b, 0x51,
+ 0xb2, 0x51, 0xf5, 0x1d, 0xc5, 0xd3, 0xe3, 0x83, 0xd2, 0x8d, 0x80, 0x8c,
+ 0x7f, 0x9e, 0x01, 0x8c, 0x71, 0xec, 0xcc, 0x80, 0x37, 0x1a, 0x9e, 0x02,
+ 0x67, 0xba, 0x40, 0x53, 0xec, 0x0e, 0x4c, 0x07, 0x1d, 0x11, 0x09, 0x42,
+ 0xc4, 0x31, 0x49, 0xc0,
+};
+static const struct drbg_kat_pr_false kat2730_t = {
+ 14, kat2730_entropyin, kat2730_nonce, kat2730_persstr,
+ kat2730_entropyinreseed, kat2730_addinreseed, kat2730_addin0,
+ kat2730_addin1, kat2730_retbits
+};
+static const struct drbg_kat kat2730 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2730_t
+};
+
+static const unsigned char kat2731_entropyin[] = {
+ 0x91, 0xe1, 0x5b, 0x57, 0x88, 0x61, 0x56, 0xd0, 0xea, 0xe2, 0xed, 0xa3,
+ 0x68, 0x7c, 0xc4, 0xb6, 0x17, 0x72, 0x56, 0x47, 0xfc, 0x34, 0x23, 0xfb,
+ 0x54, 0x8f, 0x18, 0x03, 0x38, 0x06, 0x4a, 0xb6, 0x68, 0x98, 0x00, 0x50,
+ 0x09, 0xc2, 0xc9, 0xc5, 0xf7, 0xc4, 0x20, 0xd9, 0x9e, 0x4f, 0x35, 0x1a,
+};
+static const unsigned char kat2731_nonce[] = {0};
+static const unsigned char kat2731_persstr[] = {
+ 0x71, 0x00, 0xbe, 0xe1, 0xf8, 0xca, 0x38, 0xf4, 0xf0, 0x7b, 0x99, 0x10,
+ 0xb1, 0x2b, 0xae, 0xce, 0x71, 0x52, 0x22, 0x66, 0x3a, 0x1d, 0x5c, 0x16,
+ 0x99, 0xb5, 0xd4, 0x02, 0x2c, 0x0e, 0x0b, 0x1a, 0x49, 0xc9, 0x4b, 0x89,
+ 0x8e, 0x53, 0x18, 0xf6, 0x86, 0x1b, 0x43, 0xa8, 0xf1, 0xa4, 0xa8, 0x82,
+};
+static const unsigned char kat2731_entropyinreseed[] = {
+ 0x25, 0xda, 0x97, 0x00, 0xe7, 0x98, 0x8a, 0x46, 0xb2, 0xfb, 0x44, 0x35,
+ 0x8f, 0xc3, 0xb1, 0x40, 0xaf, 0x96, 0xb9, 0xf8, 0x5c, 0xfc, 0x74, 0x79,
+ 0x78, 0xe8, 0x5a, 0xfc, 0xca, 0x0b, 0xcc, 0x02, 0xe8, 0x07, 0xaf, 0x83,
+ 0x0b, 0x3c, 0x0e, 0x69, 0x60, 0xa6, 0x0b, 0xbc, 0x2d, 0xed, 0x89, 0x1b,
+};
+static const unsigned char kat2731_addinreseed[] = {0};
+static const unsigned char kat2731_addin0[] = {0};
+static const unsigned char kat2731_addin1[] = {0};
+static const unsigned char kat2731_retbits[] = {
+ 0xea, 0xa8, 0x0c, 0x6f, 0x59, 0x0f, 0x28, 0xcc, 0x7b, 0x5e, 0xdb, 0xd3,
+ 0xd8, 0x64, 0x3a, 0x68, 0xf7, 0xe6, 0xde, 0x87, 0x3b, 0x0b, 0x9d, 0x83,
+ 0x9b, 0x0a, 0xb9, 0x6c, 0xa2, 0x48, 0xbb, 0x4b, 0x92, 0x34, 0xb1, 0xc0,
+ 0x65, 0x85, 0x7d, 0x93, 0x6c, 0xe6, 0xdd, 0x0f, 0xc9, 0x2d, 0x6b, 0x3c,
+ 0xf9, 0x8f, 0x3a, 0x29, 0xc1, 0x6b, 0xb5, 0x49, 0xf6, 0xde, 0xa4, 0x22,
+ 0x12, 0x26, 0xe5, 0x50,
+};
+static const struct drbg_kat_pr_false kat2731_t = {
+ 0, kat2731_entropyin, kat2731_nonce, kat2731_persstr,
+ kat2731_entropyinreseed, kat2731_addinreseed, kat2731_addin0,
+ kat2731_addin1, kat2731_retbits
+};
+static const struct drbg_kat kat2731 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2731_t
+};
+
+static const unsigned char kat2732_entropyin[] = {
+ 0x6e, 0x3b, 0x47, 0x2f, 0xea, 0x5f, 0x25, 0xa7, 0x9c, 0x5d, 0xe8, 0x59,
+ 0xc0, 0xff, 0x7e, 0x63, 0x7f, 0x4c, 0xfa, 0xc5, 0x75, 0x87, 0x8b, 0xf2,
+ 0x01, 0x6d, 0xa2, 0xdb, 0x6a, 0xff, 0x49, 0xde, 0x45, 0x89, 0xa5, 0x9b,
+ 0x26, 0x6d, 0x50, 0xf5, 0x43, 0x4f, 0x3e, 0xc4, 0xa3, 0xf2, 0x18, 0xd3,
+};
+static const unsigned char kat2732_nonce[] = {0};
+static const unsigned char kat2732_persstr[] = {
+ 0x74, 0x97, 0xe7, 0x6b, 0xdd, 0x5d, 0xf3, 0xdf, 0xec, 0xdf, 0xf6, 0x1a,
+ 0x13, 0x9b, 0xcd, 0xe7, 0xda, 0x45, 0xd8, 0xe8, 0x8f, 0x7b, 0xf1, 0x20,
+ 0xca, 0x78, 0xeb, 0xd1, 0xf6, 0x42, 0xb0, 0x9d, 0x6e, 0xac, 0x78, 0xce,
+ 0x16, 0xca, 0x05, 0x27, 0x5b, 0xfa, 0xda, 0xa2, 0xe1, 0x3c, 0xea, 0xec,
+};
+static const unsigned char kat2732_entropyinreseed[] = {
+ 0x2b, 0xe8, 0xa6, 0x57, 0xb7, 0xf5, 0xdf, 0xd9, 0x9e, 0x4c, 0x93, 0x78,
+ 0xc4, 0x19, 0x2e, 0x45, 0x0a, 0x48, 0xe9, 0x15, 0x2b, 0x5a, 0x6e, 0xd1,
+ 0x21, 0x94, 0x28, 0xa0, 0x5a, 0x69, 0x8f, 0x42, 0x29, 0xf5, 0x49, 0xb5,
+ 0x0f, 0x06, 0xbd, 0xc1, 0x08, 0x50, 0x06, 0xec, 0x69, 0x88, 0x26, 0xf7,
+};
+static const unsigned char kat2732_addinreseed[] = {0};
+static const unsigned char kat2732_addin0[] = {0};
+static const unsigned char kat2732_addin1[] = {0};
+static const unsigned char kat2732_retbits[] = {
+ 0xf8, 0xa1, 0x1f, 0xfd, 0xc1, 0xd3, 0xe0, 0x67, 0x80, 0x07, 0x10, 0x40,
+ 0xf6, 0x13, 0xbb, 0xbb, 0x40, 0xeb, 0x3d, 0xd4, 0x7a, 0x2e, 0x62, 0x78,
+ 0x77, 0x9d, 0x25, 0xed, 0x33, 0x56, 0x43, 0x8a, 0x44, 0xaa, 0x45, 0x10,
+ 0xbd, 0x2c, 0xd3, 0x86, 0xc7, 0x45, 0x99, 0x6e, 0x15, 0x69, 0x49, 0xbc,
+ 0x5d, 0x7a, 0x1f, 0x2d, 0x8a, 0xb7, 0x98, 0x92, 0xa6, 0x05, 0xff, 0x2c,
+ 0x8a, 0x80, 0x19, 0xcc,
+};
+static const struct drbg_kat_pr_false kat2732_t = {
+ 1, kat2732_entropyin, kat2732_nonce, kat2732_persstr,
+ kat2732_entropyinreseed, kat2732_addinreseed, kat2732_addin0,
+ kat2732_addin1, kat2732_retbits
+};
+static const struct drbg_kat kat2732 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2732_t
+};
+
+static const unsigned char kat2733_entropyin[] = {
+ 0x82, 0xf5, 0xdd, 0xd3, 0xa5, 0x42, 0x2d, 0x53, 0x66, 0x95, 0x19, 0x0a,
+ 0xb2, 0x14, 0x73, 0xff, 0x7c, 0x14, 0xa7, 0xf1, 0xf1, 0xa0, 0xce, 0xa9,
+ 0x02, 0x5b, 0x37, 0xbe, 0xdb, 0x05, 0x6a, 0xe9, 0xab, 0xd7, 0x1e, 0x55,
+ 0x9e, 0x6c, 0x5c, 0xf0, 0xaf, 0x69, 0xe6, 0xed, 0x4a, 0xf3, 0x98, 0x76,
+};
+static const unsigned char kat2733_nonce[] = {0};
+static const unsigned char kat2733_persstr[] = {
+ 0x56, 0x04, 0x27, 0x9f, 0x9d, 0x30, 0x62, 0xf2, 0xc6, 0x6f, 0x31, 0x14,
+ 0x8b, 0x2c, 0x14, 0x62, 0x24, 0x69, 0xb5, 0x95, 0xd0, 0x2d, 0xa1, 0xf1,
+ 0xad, 0x49, 0xa5, 0x73, 0xbb, 0xb7, 0xa3, 0xcd, 0x5d, 0x50, 0xdc, 0x4a,
+ 0xf9, 0xd0, 0xe0, 0xf1, 0xbd, 0xd7, 0x07, 0x90, 0x41, 0xb0, 0x0d, 0x46,
+};
+static const unsigned char kat2733_entropyinreseed[] = {
+ 0xc2, 0xab, 0x5c, 0x98, 0xa6, 0x77, 0x0b, 0xed, 0xff, 0x18, 0xba, 0xea,
+ 0xaf, 0xf9, 0xc4, 0x65, 0x6e, 0x9a, 0xfa, 0x23, 0xca, 0xf9, 0xbf, 0xca,
+ 0xdd, 0x98, 0x71, 0xc9, 0x9a, 0xb4, 0xf9, 0x33, 0xd4, 0xce, 0x81, 0xd0,
+ 0x5f, 0xd1, 0xe5, 0x8a, 0x90, 0x3a, 0xdd, 0x27, 0xc3, 0xb9, 0x93, 0x0f,
+};
+static const unsigned char kat2733_addinreseed[] = {0};
+static const unsigned char kat2733_addin0[] = {0};
+static const unsigned char kat2733_addin1[] = {0};
+static const unsigned char kat2733_retbits[] = {
+ 0x69, 0x8d, 0xb7, 0x10, 0x0c, 0x3d, 0xf5, 0x35, 0xc7, 0x55, 0x87, 0xca,
+ 0x23, 0x42, 0xc7, 0x05, 0x18, 0xf3, 0xa5, 0xec, 0xb6, 0x7a, 0x74, 0x2f,
+ 0x7c, 0x83, 0x5d, 0x59, 0x13, 0xe0, 0xca, 0x72, 0x8e, 0xe9, 0x49, 0x23,
+ 0xe8, 0x7f, 0xc9, 0xd5, 0xcc, 0x21, 0x60, 0xf7, 0x0e, 0x69, 0x9a, 0x32,
+ 0x87, 0xda, 0x42, 0x65, 0xdb, 0x0e, 0xde, 0xff, 0xf8, 0xb1, 0x9a, 0xe2,
+ 0x0e, 0x52, 0x7d, 0xe2,
+};
+static const struct drbg_kat_pr_false kat2733_t = {
+ 2, kat2733_entropyin, kat2733_nonce, kat2733_persstr,
+ kat2733_entropyinreseed, kat2733_addinreseed, kat2733_addin0,
+ kat2733_addin1, kat2733_retbits
+};
+static const struct drbg_kat kat2733 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2733_t
+};
+
+static const unsigned char kat2734_entropyin[] = {
+ 0x9f, 0x71, 0xab, 0x85, 0x37, 0xb7, 0xc4, 0x79, 0x3d, 0xde, 0x60, 0xc6,
+ 0xfe, 0xe3, 0xd4, 0x54, 0xf0, 0xe7, 0x06, 0x5f, 0xe6, 0xc2, 0xc0, 0x84,
+ 0x4f, 0xf6, 0xcd, 0x83, 0x8b, 0xa5, 0xae, 0x9e, 0x77, 0xe8, 0x72, 0x40,
+ 0xf4, 0x70, 0xf7, 0x25, 0x11, 0x65, 0xa3, 0x31, 0x60, 0x83, 0x08, 0x3d,
+};
+static const unsigned char kat2734_nonce[] = {0};
+static const unsigned char kat2734_persstr[] = {
+ 0x29, 0x77, 0xd0, 0xfd, 0xf3, 0x66, 0xff, 0xc1, 0x39, 0x18, 0x7b, 0xf7,
+ 0x43, 0x12, 0x45, 0x1d, 0xc0, 0xba, 0x01, 0x06, 0xef, 0xbc, 0xf2, 0x3d,
+ 0xb1, 0x46, 0x8d, 0xa3, 0x79, 0xed, 0xff, 0x5d, 0x2b, 0x06, 0xca, 0x01,
+ 0x7f, 0xdb, 0x7b, 0x1c, 0x1d, 0x3e, 0xdc, 0x0a, 0xa3, 0xcd, 0xe8, 0x48,
+};
+static const unsigned char kat2734_entropyinreseed[] = {
+ 0x12, 0x2c, 0xbf, 0x6b, 0xc8, 0xe2, 0xb5, 0xdd, 0x7e, 0xd3, 0x75, 0xe0,
+ 0xd5, 0x4f, 0x5f, 0x8d, 0x93, 0x91, 0x73, 0x4f, 0xc3, 0x48, 0x08, 0xaf,
+ 0x73, 0x67, 0xcb, 0x48, 0x6d, 0x02, 0x58, 0x22, 0xb8, 0xaa, 0xe7, 0x4d,
+ 0xe3, 0x76, 0xb4, 0x75, 0x86, 0xcd, 0xad, 0x37, 0x4f, 0x05, 0x99, 0xe6,
+};
+static const unsigned char kat2734_addinreseed[] = {0};
+static const unsigned char kat2734_addin0[] = {0};
+static const unsigned char kat2734_addin1[] = {0};
+static const unsigned char kat2734_retbits[] = {
+ 0x03, 0xde, 0x46, 0x36, 0x85, 0x03, 0x7a, 0xa9, 0x4a, 0x5b, 0x83, 0x52,
+ 0x1a, 0x36, 0x9e, 0x8c, 0xf7, 0xaf, 0x62, 0xec, 0x22, 0x8e, 0x7c, 0x96,
+ 0x15, 0xde, 0xf0, 0x82, 0x4a, 0x8e, 0x47, 0x11, 0x68, 0x66, 0x95, 0xe0,
+ 0x3e, 0x33, 0x90, 0x18, 0xcf, 0x70, 0xce, 0xa9, 0xc9, 0x59, 0x0a, 0xc4,
+ 0xe9, 0x56, 0x94, 0xf0, 0x9e, 0xe7, 0xd7, 0xd1, 0xb7, 0x0e, 0xab, 0x65,
+ 0xe1, 0xa0, 0x34, 0xc1,
+};
+static const struct drbg_kat_pr_false kat2734_t = {
+ 3, kat2734_entropyin, kat2734_nonce, kat2734_persstr,
+ kat2734_entropyinreseed, kat2734_addinreseed, kat2734_addin0,
+ kat2734_addin1, kat2734_retbits
+};
+static const struct drbg_kat kat2734 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2734_t
+};
+
+static const unsigned char kat2735_entropyin[] = {
+ 0xec, 0x2c, 0xb7, 0xfd, 0x16, 0x87, 0xee, 0xb7, 0x68, 0xe0, 0xaa, 0x90,
+ 0xe5, 0x02, 0x37, 0xf6, 0xf6, 0xb6, 0x94, 0x60, 0xbb, 0x90, 0x7a, 0x26,
+ 0xb0, 0x32, 0xf2, 0xe7, 0x2b, 0xc2, 0x0d, 0x9a, 0xe3, 0x1c, 0x39, 0x44,
+ 0x0f, 0xee, 0x46, 0x37, 0xb3, 0xb9, 0xc6, 0x09, 0xb0, 0x79, 0x3b, 0x8a,
+};
+static const unsigned char kat2735_nonce[] = {0};
+static const unsigned char kat2735_persstr[] = {
+ 0xe3, 0x6b, 0x7f, 0x06, 0x00, 0x48, 0x29, 0xa8, 0x9b, 0x97, 0xf8, 0x40,
+ 0xe4, 0x1a, 0x19, 0x03, 0xea, 0x85, 0x8c, 0xce, 0x5d, 0x4b, 0x5b, 0x5c,
+ 0x20, 0xf7, 0x2d, 0x61, 0x3b, 0x8b, 0xf3, 0x19, 0xbf, 0x47, 0x45, 0x34,
+ 0x3e, 0x2c, 0x51, 0xb4, 0xec, 0x07, 0x01, 0x93, 0x8a, 0xd7, 0xeb, 0xdb,
+};
+static const unsigned char kat2735_entropyinreseed[] = {
+ 0x1c, 0xed, 0x71, 0xaa, 0x0d, 0xb6, 0xa7, 0xdd, 0x04, 0xab, 0x97, 0x7a,
+ 0xb3, 0x3a, 0x9e, 0xc9, 0x7d, 0xe3, 0x93, 0x4b, 0x19, 0x94, 0x51, 0x6b,
+ 0x48, 0xb1, 0x93, 0x77, 0x77, 0xa9, 0x17, 0xae, 0x79, 0x3d, 0x83, 0xb3,
+ 0xdd, 0x50, 0x30, 0x5d, 0xd2, 0x36, 0xf2, 0x77, 0xbc, 0xab, 0x92, 0x2e,
+};
+static const unsigned char kat2735_addinreseed[] = {0};
+static const unsigned char kat2735_addin0[] = {0};
+static const unsigned char kat2735_addin1[] = {0};
+static const unsigned char kat2735_retbits[] = {
+ 0xb9, 0xc8, 0x3e, 0x1f, 0xf7, 0x79, 0xbd, 0x79, 0xd2, 0x96, 0xa5, 0xfa,
+ 0x5c, 0xca, 0xd5, 0x3c, 0x87, 0xdf, 0x26, 0xed, 0x36, 0x4b, 0xc8, 0xb5,
+ 0xc9, 0xf9, 0xa3, 0xee, 0xa5, 0x48, 0xfa, 0xa3, 0x41, 0x49, 0xb6, 0x8c,
+ 0xa6, 0x5f, 0x6f, 0x39, 0x47, 0x24, 0x6c, 0x93, 0xf0, 0xbb, 0x4e, 0x43,
+ 0x07, 0xe5, 0x3f, 0x86, 0x26, 0xf1, 0x76, 0x36, 0x08, 0x96, 0x60, 0x81,
+ 0x35, 0x73, 0x8f, 0x75,
+};
+static const struct drbg_kat_pr_false kat2735_t = {
+ 4, kat2735_entropyin, kat2735_nonce, kat2735_persstr,
+ kat2735_entropyinreseed, kat2735_addinreseed, kat2735_addin0,
+ kat2735_addin1, kat2735_retbits
+};
+static const struct drbg_kat kat2735 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2735_t
+};
+
+static const unsigned char kat2736_entropyin[] = {
+ 0x37, 0x62, 0x81, 0x9e, 0xb5, 0x55, 0x27, 0x7d, 0x06, 0xed, 0x93, 0x23,
+ 0xab, 0x98, 0x9c, 0xf5, 0x10, 0x18, 0x87, 0xf5, 0x94, 0xe8, 0x3e, 0x4e,
+ 0x6a, 0xcb, 0x79, 0xc6, 0xe9, 0x8f, 0x41, 0x4a, 0x99, 0xa7, 0x6e, 0x6d,
+ 0xe2, 0x44, 0xe3, 0xe6, 0x0c, 0xe0, 0xa2, 0xd7, 0xe8, 0xa9, 0x9a, 0xef,
+};
+static const unsigned char kat2736_nonce[] = {0};
+static const unsigned char kat2736_persstr[] = {
+ 0xdc, 0x31, 0xa8, 0x54, 0x91, 0x58, 0x5c, 0x0e, 0x1c, 0x6a, 0x7f, 0xa4,
+ 0x09, 0x45, 0x40, 0xf7, 0x7d, 0xee, 0xdd, 0x92, 0x45, 0x6e, 0x5e, 0x58,
+ 0xa3, 0x5f, 0x30, 0x66, 0x20, 0x6d, 0x7e, 0xbb, 0xd6, 0xb9, 0x35, 0x1d,
+ 0x4f, 0x7e, 0x0a, 0xe2, 0x38, 0x67, 0xc4, 0xd6, 0xe8, 0x9e, 0x3c, 0x50,
+};
+static const unsigned char kat2736_entropyinreseed[] = {
+ 0xaa, 0x86, 0xce, 0x83, 0x63, 0xce, 0xc6, 0x55, 0xcf, 0x3e, 0x61, 0x7b,
+ 0x5c, 0x1f, 0xf6, 0x83, 0x47, 0x8b, 0x15, 0x53, 0x4c, 0x43, 0xf2, 0x96,
+ 0x7e, 0x64, 0xb2, 0x5f, 0x97, 0x22, 0x0d, 0x0a, 0x55, 0x01, 0x02, 0xb9,
+ 0xc8, 0x1a, 0x24, 0x34, 0x69, 0xd7, 0xf6, 0xec, 0x36, 0x91, 0x58, 0x6f,
+};
+static const unsigned char kat2736_addinreseed[] = {0};
+static const unsigned char kat2736_addin0[] = {0};
+static const unsigned char kat2736_addin1[] = {0};
+static const unsigned char kat2736_retbits[] = {
+ 0x47, 0xf6, 0x78, 0xbe, 0x2f, 0x23, 0x06, 0x90, 0x2c, 0xc4, 0xd1, 0xc3,
+ 0xe6, 0x12, 0xaf, 0x02, 0x9b, 0xa7, 0x35, 0x10, 0x5f, 0x2d, 0x63, 0x1a,
+ 0xa5, 0x5e, 0x77, 0x4d, 0x71, 0x27, 0xb8, 0xd8, 0x63, 0x76, 0x72, 0x4e,
+ 0xb6, 0x7f, 0x3f, 0x19, 0x86, 0x7d, 0x6c, 0x57, 0xa6, 0x1a, 0x2b, 0xc7,
+ 0x2f, 0xd2, 0x17, 0x1d, 0xf2, 0xc3, 0xb9, 0xe0, 0x5e, 0x62, 0xfa, 0xa8,
+ 0xbc, 0xf6, 0xf5, 0xe2,
+};
+static const struct drbg_kat_pr_false kat2736_t = {
+ 5, kat2736_entropyin, kat2736_nonce, kat2736_persstr,
+ kat2736_entropyinreseed, kat2736_addinreseed, kat2736_addin0,
+ kat2736_addin1, kat2736_retbits
+};
+static const struct drbg_kat kat2736 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2736_t
+};
+
+static const unsigned char kat2737_entropyin[] = {
+ 0xae, 0x97, 0x8a, 0xfd, 0x23, 0x7a, 0x85, 0xe4, 0xde, 0x2c, 0xd3, 0x1a,
+ 0x18, 0xb9, 0xb3, 0x88, 0x17, 0xd7, 0xf9, 0x18, 0x82, 0x28, 0x5c, 0x94,
+ 0xdf, 0xc0, 0x90, 0x5f, 0x46, 0xe4, 0x84, 0x06, 0x3e, 0x7a, 0xab, 0x1f,
+ 0xde, 0x07, 0xeb, 0x63, 0x42, 0x4d, 0x07, 0x9a, 0x92, 0xb3, 0xc6, 0xd8,
+};
+static const unsigned char kat2737_nonce[] = {0};
+static const unsigned char kat2737_persstr[] = {
+ 0x48, 0xf6, 0xc7, 0x5b, 0x8b, 0x2d, 0xc0, 0x18, 0x64, 0xb2, 0xca, 0x28,
+ 0x83, 0x3a, 0x64, 0xa5, 0x46, 0x2a, 0x4a, 0x3b, 0x51, 0x62, 0xbb, 0xf6,
+ 0xd9, 0xbb, 0x48, 0xd4, 0x6e, 0x96, 0x52, 0x9b, 0x67, 0xf8, 0x65, 0x1c,
+ 0xd7, 0x82, 0xba, 0x7b, 0xbe, 0x2b, 0x5f, 0xf3, 0xfd, 0x8b, 0x20, 0x4a,
+};
+static const unsigned char kat2737_entropyinreseed[] = {
+ 0x5e, 0x3d, 0x63, 0xb5, 0x19, 0xf1, 0xed, 0x0d, 0xdf, 0x0f, 0x16, 0xdf,
+ 0x03, 0x40, 0x60, 0xe6, 0xc6, 0x53, 0x43, 0x6c, 0x79, 0xdf, 0xf1, 0xa6,
+ 0xe7, 0x83, 0x20, 0x07, 0x28, 0x7d, 0xb3, 0x94, 0xfb, 0xca, 0x52, 0x7b,
+ 0x57, 0x04, 0x8f, 0x00, 0x86, 0xf8, 0xae, 0xeb, 0x5c, 0x01, 0x6f, 0x70,
+};
+static const unsigned char kat2737_addinreseed[] = {0};
+static const unsigned char kat2737_addin0[] = {0};
+static const unsigned char kat2737_addin1[] = {0};
+static const unsigned char kat2737_retbits[] = {
+ 0xc3, 0xa5, 0xf9, 0xa7, 0xf2, 0x21, 0x9e, 0x8e, 0xde, 0x06, 0xf2, 0xe6,
+ 0x01, 0xb2, 0x92, 0x3e, 0x7c, 0x6b, 0x71, 0xc5, 0x6f, 0x02, 0x9e, 0x47,
+ 0xd0, 0x0d, 0x1d, 0xc1, 0x07, 0x67, 0x53, 0xf0, 0xa7, 0x25, 0x51, 0x1f,
+ 0x57, 0xd0, 0xf7, 0x2c, 0x8c, 0x1c, 0x71, 0x6f, 0x4e, 0xab, 0xcb, 0x8f,
+ 0x97, 0x8b, 0x23, 0xd3, 0xbe, 0x57, 0x2d, 0x86, 0x72, 0xa3, 0xeb, 0x58,
+ 0xe4, 0xdb, 0x4e, 0x54,
+};
+static const struct drbg_kat_pr_false kat2737_t = {
+ 6, kat2737_entropyin, kat2737_nonce, kat2737_persstr,
+ kat2737_entropyinreseed, kat2737_addinreseed, kat2737_addin0,
+ kat2737_addin1, kat2737_retbits
+};
+static const struct drbg_kat kat2737 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2737_t
+};
+
+static const unsigned char kat2738_entropyin[] = {
+ 0x0a, 0x57, 0xf0, 0x9c, 0x06, 0x23, 0x67, 0x3f, 0xc5, 0xca, 0x4d, 0xb9,
+ 0x81, 0x6c, 0xcb, 0x02, 0x1f, 0xfe, 0x39, 0xe7, 0xd8, 0x3b, 0x44, 0x48,
+ 0xc8, 0x94, 0xce, 0x8f, 0x48, 0x14, 0x90, 0x3a, 0x3d, 0x92, 0x11, 0x81,
+ 0x93, 0x84, 0x37, 0x4a, 0x2e, 0xfb, 0x7b, 0x2e, 0x53, 0xf4, 0xeb, 0x0a,
+};
+static const unsigned char kat2738_nonce[] = {0};
+static const unsigned char kat2738_persstr[] = {
+ 0xf1, 0xab, 0x27, 0xd8, 0xd7, 0xf7, 0xa4, 0xa4, 0x80, 0x2c, 0x0d, 0xba,
+ 0xe5, 0x16, 0x45, 0x4e, 0x38, 0x5d, 0x5e, 0xfb, 0xb8, 0x4b, 0x65, 0x2f,
+ 0xae, 0x49, 0xca, 0xeb, 0xc1, 0xf2, 0x8e, 0x5c, 0xd3, 0xde, 0x4f, 0x7e,
+ 0x9a, 0xb8, 0x59, 0xd7, 0x1e, 0x9d, 0xf5, 0x32, 0xce, 0x3f, 0xf5, 0xd9,
+};
+static const unsigned char kat2738_entropyinreseed[] = {
+ 0x1e, 0xcf, 0xb8, 0x01, 0x9f, 0xdf, 0xb9, 0x6f, 0xf4, 0x76, 0x33, 0x7c,
+ 0x1e, 0xd5, 0xb5, 0x3c, 0x58, 0xd5, 0x10, 0x1c, 0x0b, 0xd3, 0x81, 0xa9,
+ 0x15, 0xc3, 0x55, 0x3e, 0xe0, 0x0c, 0x52, 0xf1, 0x22, 0xb5, 0x94, 0xbb,
+ 0x2c, 0x60, 0x82, 0xfb, 0xc8, 0xb4, 0x74, 0xe0, 0xad, 0x87, 0x02, 0x33,
+};
+static const unsigned char kat2738_addinreseed[] = {0};
+static const unsigned char kat2738_addin0[] = {0};
+static const unsigned char kat2738_addin1[] = {0};
+static const unsigned char kat2738_retbits[] = {
+ 0xe3, 0xd7, 0xd1, 0x05, 0x74, 0x50, 0xf9, 0xd8, 0xc6, 0x7a, 0xed, 0x69,
+ 0xfd, 0x4d, 0x5a, 0x22, 0xc5, 0xe7, 0xa3, 0xfd, 0x0e, 0x67, 0x67, 0x9d,
+ 0xcb, 0xed, 0x90, 0xd6, 0xc4, 0x43, 0x51, 0x7f, 0xda, 0xe2, 0x0a, 0xa0,
+ 0x13, 0xcb, 0x9b, 0xff, 0x3f, 0x28, 0x06, 0xd4, 0x73, 0x14, 0x30, 0xc4,
+ 0x27, 0xf3, 0xd2, 0xb2, 0xf5, 0xf4, 0x64, 0x50, 0xaf, 0x8b, 0x04, 0x59,
+ 0x40, 0xa4, 0x59, 0xdc,
+};
+static const struct drbg_kat_pr_false kat2738_t = {
+ 7, kat2738_entropyin, kat2738_nonce, kat2738_persstr,
+ kat2738_entropyinreseed, kat2738_addinreseed, kat2738_addin0,
+ kat2738_addin1, kat2738_retbits
+};
+static const struct drbg_kat kat2738 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2738_t
+};
+
+static const unsigned char kat2739_entropyin[] = {
+ 0x42, 0x59, 0x55, 0xfd, 0xfa, 0x0f, 0x37, 0xf1, 0xef, 0x8f, 0xf3, 0x6c,
+ 0xa9, 0x01, 0x35, 0x20, 0xda, 0xee, 0x7f, 0xea, 0x30, 0xd7, 0x81, 0x0b,
+ 0x3f, 0xed, 0xce, 0xc3, 0x1b, 0xa3, 0x7f, 0x38, 0xfe, 0x51, 0x0c, 0x91,
+ 0xaa, 0x3a, 0x29, 0x79, 0x5e, 0x47, 0x4a, 0x85, 0x1d, 0x3a, 0x51, 0x5d,
+};
+static const unsigned char kat2739_nonce[] = {0};
+static const unsigned char kat2739_persstr[] = {
+ 0x72, 0x3d, 0x97, 0x3a, 0xee, 0xeb, 0x21, 0xbd, 0xb1, 0x45, 0x0a, 0x39,
+ 0x90, 0x33, 0x48, 0xbf, 0x22, 0x2e, 0x86, 0xd3, 0x23, 0xda, 0xe0, 0x43,
+ 0x5f, 0x5e, 0xb8, 0x2d, 0xf9, 0xa0, 0xce, 0xc5, 0x6c, 0x1a, 0xd4, 0x83,
+ 0xf9, 0xeb, 0xe9, 0xd1, 0x97, 0x64, 0xff, 0xe2, 0x55, 0x79, 0xc6, 0xe5,
+};
+static const unsigned char kat2739_entropyinreseed[] = {
+ 0x1a, 0xa4, 0x9c, 0xc9, 0xb8, 0xfc, 0x0c, 0xae, 0x63, 0xac, 0x66, 0x7a,
+ 0x5f, 0xcc, 0xc7, 0x77, 0x57, 0xee, 0xc0, 0x1b, 0xa2, 0xb6, 0xa9, 0x65,
+ 0x47, 0xdf, 0xba, 0xe1, 0xf0, 0xa7, 0x8b, 0x9a, 0xcc, 0xf0, 0xd5, 0x44,
+ 0x95, 0x47, 0x54, 0x76, 0xcb, 0xa4, 0x72, 0xd5, 0x06, 0x38, 0xe7, 0x18,
+};
+static const unsigned char kat2739_addinreseed[] = {0};
+static const unsigned char kat2739_addin0[] = {0};
+static const unsigned char kat2739_addin1[] = {0};
+static const unsigned char kat2739_retbits[] = {
+ 0x76, 0x72, 0x60, 0x6b, 0xa0, 0xe9, 0x4b, 0x33, 0x33, 0x43, 0x2a, 0x5b,
+ 0x6a, 0x3a, 0xe1, 0x60, 0x18, 0x48, 0xc1, 0x51, 0x45, 0x6b, 0xe3, 0xc9,
+ 0x86, 0x17, 0xf5, 0xc7, 0x37, 0x7a, 0xba, 0x1c, 0xfa, 0xbe, 0x23, 0x95,
+ 0x73, 0xfb, 0xbc, 0xcb, 0xf0, 0xa6, 0x3a, 0xf5, 0xb1, 0xf6, 0x7b, 0x15,
+ 0x2e, 0x7e, 0x84, 0xbf, 0xd7, 0x6e, 0x54, 0x83, 0xfd, 0x07, 0x99, 0xd8,
+ 0x79, 0xf1, 0xe3, 0xbb,
+};
+static const struct drbg_kat_pr_false kat2739_t = {
+ 8, kat2739_entropyin, kat2739_nonce, kat2739_persstr,
+ kat2739_entropyinreseed, kat2739_addinreseed, kat2739_addin0,
+ kat2739_addin1, kat2739_retbits
+};
+static const struct drbg_kat kat2739 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2739_t
+};
+
+static const unsigned char kat2740_entropyin[] = {
+ 0x8b, 0xce, 0x33, 0xcd, 0x43, 0x24, 0xfa, 0x53, 0xe5, 0xba, 0x97, 0x79,
+ 0x04, 0x9e, 0xc6, 0x8a, 0x58, 0xf6, 0xec, 0x84, 0x0d, 0x4e, 0x23, 0x61,
+ 0x76, 0x02, 0xa6, 0xca, 0x11, 0x25, 0xaa, 0x18, 0x4f, 0x6d, 0x6c, 0xc3,
+ 0x46, 0x1f, 0xd4, 0xb7, 0x3f, 0x53, 0x21, 0x3f, 0xff, 0x2a, 0x6d, 0xab,
+};
+static const unsigned char kat2740_nonce[] = {0};
+static const unsigned char kat2740_persstr[] = {
+ 0x4e, 0xec, 0x7d, 0xb6, 0xd4, 0x98, 0xef, 0x2d, 0x80, 0xc0, 0xfd, 0xab,
+ 0xe2, 0x86, 0xb4, 0xa7, 0xd2, 0x51, 0x74, 0x8b, 0x74, 0x0a, 0x45, 0x87,
+ 0x84, 0xc8, 0x34, 0xe3, 0x31, 0x1c, 0x89, 0x44, 0x14, 0x9d, 0xb6, 0xae,
+ 0x7c, 0x4b, 0x3c, 0xe0, 0x09, 0x82, 0xa9, 0x05, 0x82, 0x81, 0x21, 0x6b,
+};
+static const unsigned char kat2740_entropyinreseed[] = {
+ 0x05, 0x5a, 0xee, 0x66, 0x40, 0x88, 0x2c, 0x70, 0x0f, 0xac, 0xaa, 0x89,
+ 0x4e, 0xe6, 0x1a, 0x48, 0x7f, 0x82, 0x4e, 0xc6, 0x8c, 0x1f, 0xc0, 0xd8,
+ 0xfb, 0x10, 0x58, 0x48, 0x10, 0xf4, 0x4a, 0x5d, 0x82, 0x66, 0x55, 0x0d,
+ 0x93, 0x93, 0xc9, 0x14, 0x55, 0x53, 0xc3, 0x67, 0xca, 0x56, 0x81, 0x85,
+};
+static const unsigned char kat2740_addinreseed[] = {0};
+static const unsigned char kat2740_addin0[] = {0};
+static const unsigned char kat2740_addin1[] = {0};
+static const unsigned char kat2740_retbits[] = {
+ 0xa7, 0x08, 0x8e, 0x0b, 0x15, 0xc1, 0x2b, 0x18, 0x87, 0x18, 0x85, 0x55,
+ 0x50, 0xd0, 0x4a, 0xf7, 0x32, 0x78, 0x00, 0x2d, 0x63, 0x2d, 0x1a, 0x34,
+ 0x1a, 0xb6, 0xb3, 0xa5, 0x70, 0x0f, 0x04, 0xf8, 0x4d, 0x3c, 0x4c, 0xa6,
+ 0x49, 0x72, 0xce, 0xd4, 0x3e, 0x9f, 0x76, 0x14, 0x3e, 0xa2, 0x07, 0x46,
+ 0x44, 0xce, 0xef, 0x7f, 0x5c, 0x8a, 0xa5, 0x79, 0x5e, 0x8f, 0x69, 0x20,
+ 0x74, 0xac, 0x95, 0xc1,
+};
+static const struct drbg_kat_pr_false kat2740_t = {
+ 9, kat2740_entropyin, kat2740_nonce, kat2740_persstr,
+ kat2740_entropyinreseed, kat2740_addinreseed, kat2740_addin0,
+ kat2740_addin1, kat2740_retbits
+};
+static const struct drbg_kat kat2740 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2740_t
+};
+
+static const unsigned char kat2741_entropyin[] = {
+ 0x09, 0x74, 0x1d, 0xe4, 0x7f, 0x53, 0x77, 0xfb, 0x94, 0xf9, 0x9a, 0x0d,
+ 0xe8, 0x76, 0x12, 0x7a, 0xad, 0x00, 0xf8, 0x8e, 0x59, 0x89, 0xe5, 0xea,
+ 0xbc, 0xec, 0x2e, 0x75, 0xf3, 0xcf, 0x9e, 0x8c, 0x72, 0x65, 0xda, 0x02,
+ 0xc8, 0x02, 0x61, 0xdb, 0x4d, 0xbe, 0xea, 0x46, 0x6a, 0x80, 0xa6, 0xf4,
+};
+static const unsigned char kat2741_nonce[] = {0};
+static const unsigned char kat2741_persstr[] = {
+ 0xb6, 0x5b, 0xc8, 0xfd, 0x77, 0xe2, 0xe3, 0xe3, 0x44, 0x3d, 0x73, 0xa3,
+ 0x0c, 0x09, 0xdd, 0x08, 0x5c, 0x0b, 0xd6, 0x56, 0x4a, 0xc0, 0xec, 0xec,
+ 0xb4, 0xfd, 0xab, 0x5a, 0xcc, 0xb7, 0x22, 0x28, 0x6a, 0xd8, 0x40, 0x28,
+ 0x6c, 0x48, 0x22, 0x1a, 0xf5, 0xab, 0xd5, 0x55, 0x1b, 0x58, 0xe8, 0x3a,
+};
+static const unsigned char kat2741_entropyinreseed[] = {
+ 0x65, 0x90, 0x01, 0x06, 0x56, 0x7b, 0xe7, 0x90, 0xba, 0xba, 0xe0, 0xb8,
+ 0x1f, 0x28, 0x77, 0xa9, 0xc1, 0x64, 0x2a, 0xf3, 0xc5, 0x82, 0x82, 0xe1,
+ 0x34, 0xcd, 0xd3, 0xb0, 0x92, 0x00, 0x99, 0xf9, 0x36, 0xcb, 0xbf, 0x14,
+ 0x15, 0x02, 0xcc, 0xb5, 0x86, 0x0e, 0xa1, 0x0b, 0xce, 0x39, 0x4c, 0x0b,
+};
+static const unsigned char kat2741_addinreseed[] = {0};
+static const unsigned char kat2741_addin0[] = {0};
+static const unsigned char kat2741_addin1[] = {0};
+static const unsigned char kat2741_retbits[] = {
+ 0x1a, 0xce, 0x19, 0xb7, 0x25, 0xa9, 0xde, 0xb1, 0x3b, 0xcf, 0xcc, 0x1e,
+ 0x4d, 0x39, 0xb6, 0x04, 0xb2, 0x65, 0x56, 0x92, 0x7f, 0x60, 0xc3, 0x67,
+ 0x93, 0x6c, 0xbe, 0x0e, 0x76, 0x12, 0x7d, 0x3d, 0xde, 0xcb, 0x73, 0xf5,
+ 0x2e, 0xf3, 0x98, 0x83, 0xa9, 0xde, 0xf2, 0x35, 0x56, 0x6d, 0x01, 0xdd,
+ 0x4f, 0x73, 0x40, 0x28, 0xce, 0x82, 0xbc, 0x5f, 0xb9, 0xca, 0x30, 0x0f,
+ 0x3f, 0x5d, 0xd0, 0x80,
+};
+static const struct drbg_kat_pr_false kat2741_t = {
+ 10, kat2741_entropyin, kat2741_nonce, kat2741_persstr,
+ kat2741_entropyinreseed, kat2741_addinreseed, kat2741_addin0,
+ kat2741_addin1, kat2741_retbits
+};
+static const struct drbg_kat kat2741 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2741_t
+};
+
+static const unsigned char kat2742_entropyin[] = {
+ 0x5e, 0xd4, 0xb6, 0xe4, 0x53, 0xa3, 0x1c, 0x0b, 0x04, 0xf9, 0x60, 0xb7,
+ 0x39, 0xf4, 0xac, 0x06, 0x1c, 0xb7, 0x19, 0xa7, 0x09, 0x19, 0x70, 0x9b,
+ 0xd5, 0xdb, 0xfe, 0xa9, 0x10, 0xeb, 0x4e, 0x4d, 0xc3, 0x40, 0x31, 0xe0,
+ 0x29, 0x8a, 0x12, 0xc7, 0xd6, 0x8e, 0x65, 0xa3, 0x8e, 0x6e, 0xaa, 0xe9,
+};
+static const unsigned char kat2742_nonce[] = {0};
+static const unsigned char kat2742_persstr[] = {
+ 0x45, 0x8d, 0x21, 0x4a, 0x18, 0xfe, 0x1f, 0xd2, 0xc7, 0x62, 0xc7, 0x7c,
+ 0xb9, 0x8a, 0x56, 0x19, 0xd7, 0xe4, 0x8a, 0xaf, 0xa8, 0x31, 0x10, 0xc8,
+ 0x57, 0x8d, 0x10, 0x72, 0xd5, 0x77, 0xb9, 0x3e, 0x53, 0xa1, 0x3a, 0xc7,
+ 0x00, 0x61, 0x21, 0x01, 0xb7, 0x86, 0x2c, 0xa9, 0x4e, 0xb8, 0x7c, 0xa4,
+};
+static const unsigned char kat2742_entropyinreseed[] = {
+ 0xaa, 0x82, 0x9f, 0x4e, 0xa1, 0x5b, 0xec, 0x4a, 0x9d, 0xdd, 0x93, 0x3c,
+ 0xf6, 0xc4, 0x7d, 0xe6, 0x0f, 0x7e, 0x2c, 0xd1, 0x72, 0x28, 0x7e, 0xb5,
+ 0x02, 0xb9, 0xc7, 0xbe, 0xda, 0x32, 0x66, 0x1e, 0x1c, 0xa2, 0x7b, 0xe2,
+ 0x6c, 0x1f, 0xb2, 0xe7, 0xa6, 0x67, 0xca, 0x1e, 0x04, 0x66, 0xaa, 0xd4,
+};
+static const unsigned char kat2742_addinreseed[] = {0};
+static const unsigned char kat2742_addin0[] = {0};
+static const unsigned char kat2742_addin1[] = {0};
+static const unsigned char kat2742_retbits[] = {
+ 0xef, 0x40, 0x26, 0x14, 0x4d, 0x7d, 0xba, 0x42, 0xbc, 0xa2, 0x58, 0xa0,
+ 0xb0, 0xcf, 0xe8, 0x81, 0xe6, 0x21, 0xf6, 0x5e, 0x19, 0xc2, 0x67, 0x17,
+ 0x9c, 0x00, 0x88, 0xb7, 0x82, 0x9d, 0x9d, 0xdf, 0xee, 0x39, 0xfc, 0x8f,
+ 0x9c, 0xdf, 0xec, 0xf0, 0xd4, 0x51, 0xdc, 0x7d, 0xf1, 0x73, 0xd6, 0x79,
+ 0xbc, 0x50, 0x31, 0x90, 0x79, 0x5d, 0x4b, 0xe6, 0x79, 0x09, 0xac, 0xc1,
+ 0x7b, 0xb2, 0x04, 0x70,
+};
+static const struct drbg_kat_pr_false kat2742_t = {
+ 11, kat2742_entropyin, kat2742_nonce, kat2742_persstr,
+ kat2742_entropyinreseed, kat2742_addinreseed, kat2742_addin0,
+ kat2742_addin1, kat2742_retbits
+};
+static const struct drbg_kat kat2742 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2742_t
+};
+
+static const unsigned char kat2743_entropyin[] = {
+ 0x93, 0x86, 0x02, 0xd7, 0x5e, 0xa1, 0x1e, 0x8b, 0x1e, 0xb0, 0x37, 0x38,
+ 0x1b, 0x8e, 0x76, 0x43, 0xb1, 0x29, 0x67, 0xaa, 0xe4, 0x98, 0x2a, 0x4b,
+ 0x4e, 0xed, 0x05, 0x4b, 0xab, 0xc7, 0x8f, 0xe4, 0xdb, 0xfa, 0x83, 0x2a,
+ 0x0b, 0x3d, 0xde, 0x8d, 0x2d, 0x1e, 0xd4, 0x23, 0xd8, 0x07, 0xc1, 0x3a,
+};
+static const unsigned char kat2743_nonce[] = {0};
+static const unsigned char kat2743_persstr[] = {
+ 0xc0, 0x94, 0x24, 0xe7, 0x79, 0x01, 0xb1, 0xf0, 0x21, 0xc9, 0x61, 0x24,
+ 0xc8, 0xb2, 0xe8, 0x70, 0x8e, 0x3d, 0xea, 0x33, 0x9d, 0x15, 0xd7, 0x55,
+ 0x4d, 0xbe, 0x19, 0x76, 0x0a, 0x99, 0xa8, 0xc6, 0x0b, 0x2e, 0x8f, 0x20,
+ 0x88, 0x04, 0xeb, 0x6f, 0x6b, 0xef, 0x43, 0xd5, 0xb7, 0xdb, 0x62, 0x3f,
+};
+static const unsigned char kat2743_entropyinreseed[] = {
+ 0xef, 0x63, 0x64, 0xff, 0x1c, 0x3d, 0x9b, 0x0c, 0x24, 0x0e, 0xbf, 0x62,
+ 0xfc, 0x52, 0x76, 0x8b, 0x74, 0x8f, 0x16, 0x58, 0x10, 0x07, 0x64, 0x9a,
+ 0xd9, 0xef, 0x4b, 0x6c, 0x72, 0x17, 0x62, 0x55, 0x50, 0x8f, 0x6e, 0x20,
+ 0x15, 0xaa, 0xb2, 0xf9, 0x54, 0x21, 0xac, 0x7a, 0x58, 0x2c, 0x62, 0x05,
+};
+static const unsigned char kat2743_addinreseed[] = {0};
+static const unsigned char kat2743_addin0[] = {0};
+static const unsigned char kat2743_addin1[] = {0};
+static const unsigned char kat2743_retbits[] = {
+ 0xfa, 0xa4, 0x8f, 0x2f, 0xdb, 0xf3, 0x1e, 0xa2, 0x57, 0xe0, 0x10, 0xcc,
+ 0x74, 0xef, 0x2d, 0x50, 0xd3, 0x36, 0xb2, 0xaa, 0xfd, 0x4f, 0xe8, 0xb3,
+ 0xce, 0x8f, 0xcf, 0x80, 0x3a, 0x43, 0x5e, 0x57, 0xea, 0xfa, 0x18, 0x93,
+ 0x8e, 0x35, 0xfe, 0x9c, 0x3a, 0x01, 0xd9, 0x2f, 0x2b, 0x7b, 0x1b, 0xbe,
+ 0x7e, 0x05, 0x5d, 0xc6, 0x30, 0xc7, 0x01, 0xe2, 0x88, 0xc1, 0xfd, 0xed,
+ 0x75, 0xe5, 0xb0, 0xe0,
+};
+static const struct drbg_kat_pr_false kat2743_t = {
+ 12, kat2743_entropyin, kat2743_nonce, kat2743_persstr,
+ kat2743_entropyinreseed, kat2743_addinreseed, kat2743_addin0,
+ kat2743_addin1, kat2743_retbits
+};
+static const struct drbg_kat kat2743 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2743_t
+};
+
+static const unsigned char kat2744_entropyin[] = {
+ 0xb8, 0xf2, 0x02, 0x8c, 0xa7, 0x4f, 0x8a, 0x05, 0x92, 0xc9, 0x9d, 0x0a,
+ 0xe4, 0x97, 0x43, 0x85, 0x62, 0xce, 0x1b, 0x7a, 0x49, 0x1f, 0xb6, 0xdb,
+ 0x73, 0xc4, 0xf8, 0xcd, 0xa2, 0x85, 0xa9, 0x34, 0x77, 0x7b, 0x17, 0xe4,
+ 0x72, 0x70, 0x7f, 0x22, 0x17, 0x07, 0x9b, 0x9d, 0x8d, 0x65, 0x56, 0x2b,
+};
+static const unsigned char kat2744_nonce[] = {0};
+static const unsigned char kat2744_persstr[] = {
+ 0x21, 0xde, 0xf8, 0xc9, 0xfc, 0x10, 0xce, 0xe6, 0xfc, 0xe2, 0x24, 0x01,
+ 0xc4, 0xef, 0x13, 0xb1, 0x7d, 0x33, 0xa6, 0x04, 0xaa, 0xa7, 0x0f, 0x92,
+ 0x41, 0x36, 0xf6, 0x63, 0x5b, 0x2e, 0x59, 0xe0, 0x09, 0x9c, 0x77, 0x8e,
+ 0x4c, 0xb2, 0x7b, 0x09, 0x3b, 0xae, 0xf9, 0x4d, 0x5a, 0xc1, 0x07, 0x70,
+};
+static const unsigned char kat2744_entropyinreseed[] = {
+ 0x80, 0xe9, 0x6e, 0x6b, 0x97, 0x1d, 0x14, 0x36, 0x86, 0x1f, 0x85, 0xf1,
+ 0xb2, 0x3c, 0xd7, 0xf4, 0x79, 0x74, 0xa0, 0x6b, 0x17, 0x57, 0x0c, 0x33,
+ 0x7d, 0x6f, 0x5e, 0x98, 0xac, 0x42, 0xd0, 0xc3, 0x0e, 0x23, 0xf7, 0x4d,
+ 0x78, 0x97, 0x85, 0x01, 0xcd, 0x99, 0x0c, 0x93, 0x0a, 0xf4, 0xf8, 0xe8,
+};
+static const unsigned char kat2744_addinreseed[] = {0};
+static const unsigned char kat2744_addin0[] = {0};
+static const unsigned char kat2744_addin1[] = {0};
+static const unsigned char kat2744_retbits[] = {
+ 0x77, 0x20, 0x21, 0x2b, 0x01, 0x89, 0xce, 0x42, 0xe9, 0x69, 0xa9, 0xbc,
+ 0x59, 0x8a, 0x17, 0x94, 0x91, 0xd3, 0x93, 0x48, 0x3f, 0xd7, 0x45, 0x60,
+ 0x47, 0xf8, 0x1a, 0x70, 0x80, 0x76, 0xf8, 0x8d, 0x34, 0xa7, 0x15, 0x46,
+ 0xea, 0xfd, 0xc3, 0x55, 0x6e, 0x31, 0x21, 0x38, 0xa3, 0x31, 0x08, 0xc9,
+ 0x1f, 0xd8, 0xe8, 0x1a, 0x96, 0x3d, 0xd3, 0x7e, 0x03, 0xc8, 0x95, 0xb6,
+ 0x30, 0x44, 0x86, 0x98,
+};
+static const struct drbg_kat_pr_false kat2744_t = {
+ 13, kat2744_entropyin, kat2744_nonce, kat2744_persstr,
+ kat2744_entropyinreseed, kat2744_addinreseed, kat2744_addin0,
+ kat2744_addin1, kat2744_retbits
+};
+static const struct drbg_kat kat2744 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2744_t
+};
+
+static const unsigned char kat2745_entropyin[] = {
+ 0xd1, 0x75, 0x7e, 0x36, 0x87, 0xb5, 0x7a, 0xb3, 0xb1, 0x6e, 0xf6, 0xf4,
+ 0x3a, 0xb4, 0x56, 0xe7, 0xd2, 0xc6, 0xcc, 0x18, 0x2c, 0x0b, 0x83, 0x76,
+ 0xcf, 0x84, 0x77, 0x98, 0xa0, 0x21, 0x77, 0x07, 0xe5, 0x7b, 0xce, 0x5c,
+ 0xb3, 0x26, 0xcc, 0x7d, 0x1b, 0x5b, 0xb3, 0x6f, 0x21, 0x3c, 0xc6, 0x21,
+};
+static const unsigned char kat2745_nonce[] = {0};
+static const unsigned char kat2745_persstr[] = {
+ 0x53, 0x1b, 0x64, 0xbe, 0x5d, 0x25, 0x93, 0x7f, 0x30, 0xbe, 0xd8, 0x86,
+ 0xf2, 0x02, 0x18, 0x55, 0xdb, 0x1b, 0x63, 0x77, 0x7f, 0xeb, 0xe6, 0x69,
+ 0x5e, 0xb4, 0xf2, 0xa5, 0xe3, 0xbb, 0xfe, 0x6c, 0xe8, 0x0f, 0xaf, 0xeb,
+ 0x8e, 0x7f, 0x81, 0x1e, 0x06, 0xcb, 0x87, 0xe5, 0x20, 0xa7, 0x03, 0x6f,
+};
+static const unsigned char kat2745_entropyinreseed[] = {
+ 0x35, 0x01, 0x12, 0x07, 0x1b, 0x83, 0x15, 0xaf, 0xa2, 0x6f, 0xa3, 0xd9,
+ 0xbe, 0x6b, 0x6d, 0xec, 0x59, 0xba, 0x7f, 0xed, 0x23, 0x87, 0x55, 0x6c,
+ 0xde, 0xc4, 0x3a, 0xb8, 0xde, 0xf9, 0x20, 0x50, 0xd2, 0xf0, 0xfd, 0x34,
+ 0xef, 0x0c, 0x83, 0x7c, 0x02, 0x2c, 0x33, 0x7f, 0x22, 0x7b, 0x21, 0x69,
+};
+static const unsigned char kat2745_addinreseed[] = {0};
+static const unsigned char kat2745_addin0[] = {0};
+static const unsigned char kat2745_addin1[] = {0};
+static const unsigned char kat2745_retbits[] = {
+ 0x47, 0xad, 0x3d, 0x7e, 0xf4, 0xe7, 0xbc, 0x46, 0x96, 0xd0, 0x39, 0xb6,
+ 0xe4, 0x24, 0x66, 0x92, 0x00, 0xb5, 0xf6, 0xc6, 0x87, 0xf8, 0x13, 0xc2,
+ 0x70, 0x48, 0x37, 0x93, 0x51, 0x8a, 0xdf, 0x66, 0x98, 0xaa, 0x40, 0xa7,
+ 0x81, 0x20, 0x88, 0x78, 0x01, 0x7b, 0xf7, 0x7a, 0xfe, 0xb2, 0xf9, 0x87,
+ 0x94, 0xd2, 0x15, 0x78, 0x62, 0x38, 0x88, 0xeb, 0x98, 0x13, 0x5e, 0xf0,
+ 0xe5, 0x12, 0x1c, 0x57,
+};
+static const struct drbg_kat_pr_false kat2745_t = {
+ 14, kat2745_entropyin, kat2745_nonce, kat2745_persstr,
+ kat2745_entropyinreseed, kat2745_addinreseed, kat2745_addin0,
+ kat2745_addin1, kat2745_retbits
+};
+static const struct drbg_kat kat2745 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2745_t
+};
+
+static const unsigned char kat2746_entropyin[] = {
+ 0xee, 0xd2, 0xcf, 0x41, 0xef, 0x92, 0x0a, 0x29, 0x8a, 0xa7, 0x1c, 0x28,
+ 0xc4, 0x63, 0x77, 0x39, 0x2b, 0x95, 0xcf, 0x75, 0x18, 0x2c, 0xb4, 0x7f,
+ 0xf2, 0x53, 0x9a, 0xc9, 0xdf, 0x5d, 0xb7, 0xb2, 0xb1, 0x4c, 0x3c, 0x99,
+ 0x90, 0x0c, 0xc7, 0x38, 0x9e, 0xff, 0xb7, 0x19, 0xba, 0xcb, 0x58, 0x1f,
+};
+static const unsigned char kat2746_nonce[] = {0};
+static const unsigned char kat2746_persstr[] = {
+ 0x88, 0xcb, 0x73, 0x5f, 0x56, 0x98, 0x79, 0xf2, 0x4d, 0x95, 0x8b, 0x54,
+ 0xd4, 0xa5, 0x54, 0x4b, 0xd7, 0x28, 0x97, 0x1e, 0xc5, 0x31, 0xf8, 0x2e,
+ 0x02, 0xc1, 0x13, 0xb7, 0x83, 0x44, 0x6a, 0xfb, 0xec, 0x85, 0x7b, 0x50,
+ 0x5e, 0x00, 0xa1, 0xb5, 0xc8, 0xb2, 0x74, 0x9e, 0x1e, 0xb1, 0x9b, 0x03,
+};
+static const unsigned char kat2746_entropyinreseed[] = {
+ 0xf0, 0x33, 0x01, 0xf2, 0x7e, 0x7f, 0x95, 0x19, 0xad, 0x94, 0x7d, 0x8b,
+ 0x16, 0x86, 0x2b, 0x47, 0x00, 0x8b, 0xc0, 0x3e, 0x55, 0xd2, 0xf0, 0xce,
+ 0x9b, 0xf8, 0x32, 0x32, 0xd3, 0xb0, 0xc8, 0x16, 0x58, 0x0f, 0xa5, 0x8b,
+ 0x5b, 0xc3, 0xfe, 0x63, 0x01, 0xf2, 0xcc, 0x8d, 0x03, 0xc9, 0xf8, 0x5e,
+};
+static const unsigned char kat2746_addinreseed[] = {
+ 0xff, 0xc2, 0x3a, 0x43, 0xf8, 0x5a, 0xef, 0x5d, 0x29, 0xcf, 0xf5, 0xcd,
+ 0xf3, 0x27, 0x51, 0x77, 0x77, 0xf6, 0x8c, 0x01, 0x74, 0x22, 0x0f, 0xbc,
+ 0x82, 0x5c, 0x70, 0xeb, 0xa3, 0x52, 0x5f, 0x57, 0x9b, 0x10, 0xdd, 0x36,
+ 0x7d, 0x16, 0x3c, 0x74, 0x0c, 0x57, 0xdb, 0x0b, 0x6d, 0x88, 0xb3, 0x7c,
+};
+static const unsigned char kat2746_addin0[] = {
+ 0xc5, 0xf1, 0x08, 0xeb, 0x45, 0x0d, 0xd6, 0x28, 0x42, 0x9a, 0x32, 0x1a,
+ 0xf4, 0x3a, 0x9d, 0xfa, 0xae, 0xc6, 0xbe, 0xf2, 0xd1, 0xca, 0xad, 0x89,
+ 0xbc, 0xd8, 0x6c, 0xc3, 0x5c, 0xa9, 0x5e, 0xd8, 0x5f, 0x79, 0x6b, 0xb3,
+ 0xba, 0xfb, 0x07, 0x1a, 0xd2, 0xd7, 0x08, 0x23, 0x0b, 0xf1, 0xbe, 0x84,
+};
+static const unsigned char kat2746_addin1[] = {
+ 0xda, 0x2a, 0x98, 0xb2, 0x29, 0x8e, 0x3f, 0x4f, 0x69, 0x1e, 0x91, 0xfb,
+ 0x6c, 0x71, 0x9d, 0x67, 0xd3, 0xc3, 0x7a, 0x91, 0x6e, 0x50, 0xbd, 0x2a,
+ 0xec, 0x09, 0x26, 0x3c, 0x8e, 0x76, 0x16, 0xb7, 0x56, 0x19, 0x47, 0x2f,
+ 0x4d, 0xcf, 0xd9, 0x7b, 0xe1, 0x35, 0xc0, 0x9f, 0x0b, 0x82, 0x5f, 0x0a,
+};
+static const unsigned char kat2746_retbits[] = {
+ 0x4e, 0xb6, 0xca, 0xac, 0xcc, 0x31, 0x7d, 0xad, 0xc8, 0x90, 0x37, 0x64,
+ 0x2e, 0x62, 0x16, 0xfa, 0x3a, 0x48, 0x32, 0x91, 0x51, 0x33, 0xe7, 0x36,
+ 0xd6, 0xa5, 0xc1, 0x00, 0x61, 0x39, 0x07, 0x6b, 0x4d, 0x8b, 0xb4, 0x4b,
+ 0x60, 0x5e, 0x1d, 0x6b, 0xf4, 0x14, 0xe2, 0x00, 0x52, 0x9d, 0x5f, 0xd9,
+ 0xd9, 0x5c, 0x76, 0xa9, 0x71, 0x4f, 0xd9, 0x1d, 0x4e, 0x56, 0xfc, 0x7d,
+ 0x90, 0xd6, 0x60, 0xa3,
+};
+static const struct drbg_kat_pr_false kat2746_t = {
+ 0, kat2746_entropyin, kat2746_nonce, kat2746_persstr,
+ kat2746_entropyinreseed, kat2746_addinreseed, kat2746_addin0,
+ kat2746_addin1, kat2746_retbits
+};
+static const struct drbg_kat kat2746 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2746_t
+};
+
+static const unsigned char kat2747_entropyin[] = {
+ 0x7e, 0xee, 0x67, 0x1f, 0x99, 0x8a, 0xe5, 0xa3, 0xa3, 0xe1, 0xa4, 0x71,
+ 0xee, 0xfa, 0x10, 0x9b, 0x3b, 0x1a, 0xcc, 0xa3, 0x30, 0x71, 0xec, 0x20,
+ 0x71, 0xc6, 0xb0, 0xb7, 0x9e, 0xdd, 0x10, 0x0c, 0x4e, 0xc6, 0x6d, 0xb8,
+ 0x8e, 0x0f, 0xab, 0xcd, 0x63, 0x0d, 0x3b, 0x11, 0x29, 0xf5, 0x65, 0x2a,
+};
+static const unsigned char kat2747_nonce[] = {0};
+static const unsigned char kat2747_persstr[] = {
+ 0x24, 0x32, 0x97, 0x16, 0x12, 0x68, 0xc4, 0xdd, 0x27, 0x01, 0x2e, 0x77,
+ 0xe9, 0xe8, 0x0e, 0xe8, 0xaa, 0x3c, 0xd7, 0x2e, 0x02, 0x42, 0xe5, 0xc0,
+ 0xc3, 0xd2, 0x16, 0x68, 0x34, 0x49, 0x08, 0x61, 0x3a, 0x1e, 0x4e, 0x3b,
+ 0x65, 0x85, 0x85, 0xed, 0xa4, 0xde, 0x66, 0x39, 0x05, 0x80, 0xc5, 0xfc,
+};
+static const unsigned char kat2747_entropyinreseed[] = {
+ 0xe7, 0xba, 0x06, 0xcb, 0x5d, 0xad, 0x2c, 0xe7, 0x3d, 0xd0, 0x7c, 0x79,
+ 0x39, 0x58, 0x1b, 0x13, 0x62, 0x72, 0x7e, 0xcd, 0xe7, 0x56, 0x7e, 0xfb,
+ 0xb1, 0x48, 0x3f, 0xba, 0x1f, 0x8c, 0xc7, 0x02, 0xd4, 0x25, 0x54, 0x4a,
+ 0xd9, 0x52, 0xf3, 0x44, 0x2d, 0xe7, 0x0c, 0x8b, 0x5c, 0xce, 0x53, 0xfd,
+};
+static const unsigned char kat2747_addinreseed[] = {
+ 0x4a, 0x2c, 0xbe, 0xa0, 0x21, 0xae, 0xe0, 0xdb, 0xae, 0x40, 0xd7, 0x57,
+ 0x77, 0x83, 0xb8, 0xa7, 0x5c, 0xfd, 0x9d, 0x5f, 0x31, 0xc0, 0x46, 0x3e,
+ 0xbe, 0x98, 0x17, 0xc1, 0x1c, 0x6d, 0xe0, 0xdd, 0xa1, 0x54, 0x24, 0xa1,
+ 0x04, 0x55, 0xb3, 0xf4, 0xdc, 0x7f, 0x2b, 0xb1, 0xe2, 0xb7, 0xd9, 0x28,
+};
+static const unsigned char kat2747_addin0[] = {
+ 0x2d, 0xf7, 0x57, 0xdc, 0x57, 0x6c, 0x62, 0x63, 0xe7, 0x0c, 0x3c, 0x69,
+ 0x3a, 0x0f, 0x96, 0x3c, 0xe6, 0x14, 0x72, 0xf8, 0x2f, 0x7f, 0x4d, 0x9c,
+ 0x90, 0x51, 0xe5, 0xc4, 0x43, 0xbd, 0x63, 0xe1, 0x87, 0x0d, 0x83, 0x2d,
+ 0x41, 0xbb, 0x09, 0x1f, 0xe8, 0xf0, 0x1b, 0xde, 0x07, 0x08, 0x8c, 0x93,
+};
+static const unsigned char kat2747_addin1[] = {
+ 0x28, 0xeb, 0x9a, 0x03, 0xb4, 0xe9, 0x1d, 0x2f, 0xeb, 0x96, 0x03, 0x66,
+ 0xe7, 0xd8, 0xd5, 0x71, 0xe0, 0x23, 0x25, 0x73, 0x37, 0x86, 0x15, 0x32,
+ 0x51, 0x85, 0xc0, 0xea, 0xa6, 0x09, 0xf5, 0x52, 0x6b, 0x06, 0x37, 0x7e,
+ 0xac, 0x6b, 0x40, 0x94, 0x97, 0x3d, 0x01, 0x40, 0x4a, 0xda, 0xa4, 0x2c,
+};
+static const unsigned char kat2747_retbits[] = {
+ 0xd6, 0x77, 0xc5, 0xa7, 0x2c, 0x23, 0xb5, 0x89, 0xfd, 0x15, 0xa6, 0x55,
+ 0x16, 0xb4, 0xa5, 0xc3, 0xbf, 0xe4, 0xb0, 0x03, 0xe4, 0x24, 0xc6, 0xa9,
+ 0x10, 0x4f, 0x4a, 0x23, 0x37, 0xeb, 0x36, 0x11, 0x1e, 0xd6, 0xd1, 0x51,
+ 0x74, 0xf4, 0x97, 0xd0, 0x6b, 0x12, 0x98, 0x54, 0x29, 0xab, 0x01, 0x29,
+ 0x4f, 0x50, 0x8f, 0x69, 0x87, 0x95, 0x9f, 0x78, 0x4e, 0x4f, 0xef, 0xd7,
+ 0x3d, 0x5a, 0x37, 0xf5,
+};
+static const struct drbg_kat_pr_false kat2747_t = {
+ 1, kat2747_entropyin, kat2747_nonce, kat2747_persstr,
+ kat2747_entropyinreseed, kat2747_addinreseed, kat2747_addin0,
+ kat2747_addin1, kat2747_retbits
+};
+static const struct drbg_kat kat2747 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2747_t
+};
+
+static const unsigned char kat2748_entropyin[] = {
+ 0x14, 0x57, 0x9c, 0xe1, 0xa2, 0xb1, 0x09, 0x6f, 0xf9, 0x32, 0xdc, 0x3c,
+ 0x6e, 0x38, 0x29, 0x65, 0xf6, 0x12, 0xce, 0xda, 0xef, 0xf2, 0x7e, 0x90,
+ 0xc9, 0x6e, 0x32, 0xf8, 0x7a, 0x26, 0xa8, 0x61, 0x56, 0x5a, 0x1d, 0x4d,
+ 0x16, 0xfc, 0x8b, 0xc3, 0x51, 0xb5, 0x0b, 0xf1, 0x18, 0x86, 0xef, 0xa4,
+};
+static const unsigned char kat2748_nonce[] = {0};
+static const unsigned char kat2748_persstr[] = {
+ 0xc3, 0x59, 0xdc, 0x15, 0x74, 0x07, 0xa5, 0x7a, 0x3e, 0xab, 0x7b, 0x6e,
+ 0x9c, 0x96, 0xb1, 0xf0, 0xf6, 0x32, 0xd5, 0x33, 0xb2, 0xfc, 0xa8, 0x41,
+ 0x5f, 0x43, 0x42, 0x1d, 0xd1, 0x7f, 0xfb, 0x25, 0x37, 0x0f, 0x6d, 0x5b,
+ 0x64, 0x7f, 0x46, 0x0d, 0x78, 0x76, 0x1d, 0x54, 0xa5, 0x10, 0x03, 0x8e,
+};
+static const unsigned char kat2748_entropyinreseed[] = {
+ 0x27, 0xd3, 0xd9, 0x45, 0x01, 0x09, 0xd0, 0x2d, 0x52, 0xf0, 0x90, 0xb5,
+ 0x09, 0x50, 0x1f, 0x2a, 0x6d, 0x5c, 0xca, 0x3f, 0xec, 0xec, 0x1b, 0x8f,
+ 0x20, 0x17, 0x49, 0x4d, 0xc6, 0x14, 0x80, 0xa5, 0xb9, 0xfa, 0xae, 0x6a,
+ 0x3c, 0x66, 0x22, 0x90, 0xce, 0x80, 0xbc, 0xcb, 0x4b, 0x3c, 0x3a, 0x62,
+};
+static const unsigned char kat2748_addinreseed[] = {
+ 0x46, 0x9a, 0x5d, 0xa3, 0xa1, 0x44, 0x3d, 0x03, 0xf9, 0x2b, 0x37, 0xd0,
+ 0x69, 0x3a, 0xb7, 0x2f, 0x78, 0x57, 0xc5, 0xb8, 0x3b, 0x47, 0xcb, 0x57,
+ 0xc3, 0xab, 0x88, 0x01, 0x1a, 0x56, 0x26, 0x6e, 0x25, 0x13, 0xc3, 0x86,
+ 0xdf, 0x7f, 0x60, 0x4f, 0xba, 0x73, 0xc5, 0x4c, 0x2d, 0xcb, 0x8a, 0x9b,
+};
+static const unsigned char kat2748_addin0[] = {
+ 0xff, 0x25, 0x7f, 0x91, 0xed, 0xdd, 0xe2, 0x51, 0x01, 0xb2, 0x9f, 0x4f,
+ 0x77, 0x53, 0x70, 0x7e, 0xee, 0x7b, 0xfd, 0x33, 0xc9, 0xcc, 0x3d, 0x7c,
+ 0x2a, 0xc4, 0xf2, 0xfa, 0x44, 0x2e, 0x9e, 0xd8, 0x7d, 0xa4, 0x3e, 0x16,
+ 0x42, 0xd1, 0x60, 0x1c, 0xef, 0x6f, 0x62, 0x9a, 0xcd, 0xf1, 0x8f, 0x54,
+};
+static const unsigned char kat2748_addin1[] = {
+ 0x84, 0xdb, 0x1f, 0xcd, 0x48, 0x4c, 0x63, 0xe4, 0x91, 0x5b, 0xd5, 0x68,
+ 0x0d, 0x96, 0xb8, 0x31, 0x3c, 0xdf, 0x82, 0xeb, 0x1d, 0x04, 0xc1, 0x2b,
+ 0x1c, 0x40, 0xd8, 0xbb, 0xce, 0xeb, 0x23, 0xcb, 0xc4, 0xd0, 0x5c, 0x63,
+ 0x89, 0x12, 0xc7, 0xc7, 0x0b, 0x51, 0x43, 0xfc, 0x1e, 0xb7, 0x99, 0x70,
+};
+static const unsigned char kat2748_retbits[] = {
+ 0x26, 0x04, 0xc2, 0xef, 0x69, 0x14, 0xa3, 0x3e, 0x0f, 0xf7, 0xf4, 0xd4,
+ 0xe8, 0x1d, 0xa8, 0xb5, 0xac, 0xb7, 0x46, 0x01, 0xa5, 0x9d, 0xa1, 0x7d,
+ 0x64, 0x6a, 0x77, 0x93, 0x5f, 0x15, 0xbd, 0x34, 0x06, 0x14, 0x4c, 0x6b,
+ 0x98, 0x7b, 0xd8, 0xd4, 0x46, 0x96, 0x97, 0x91, 0x12, 0x8b, 0xf7, 0x20,
+ 0x34, 0x2e, 0x5a, 0x48, 0x9b, 0xf1, 0xf5, 0x49, 0x5b, 0x92, 0xc1, 0xdf,
+ 0x27, 0x5f, 0x77, 0xba,
+};
+static const struct drbg_kat_pr_false kat2748_t = {
+ 2, kat2748_entropyin, kat2748_nonce, kat2748_persstr,
+ kat2748_entropyinreseed, kat2748_addinreseed, kat2748_addin0,
+ kat2748_addin1, kat2748_retbits
+};
+static const struct drbg_kat kat2748 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2748_t
+};
+
+static const unsigned char kat2749_entropyin[] = {
+ 0x83, 0x83, 0x13, 0x70, 0xdb, 0xdb, 0xce, 0x5f, 0x2f, 0x08, 0x80, 0x5e,
+ 0xce, 0xe4, 0x8a, 0x56, 0xfe, 0xf7, 0xb8, 0x57, 0x37, 0x51, 0x22, 0x58,
+ 0xae, 0xf9, 0x78, 0x96, 0x57, 0x4e, 0x3b, 0xde, 0xd7, 0xa8, 0x76, 0xbb,
+ 0x70, 0xd2, 0x9d, 0x88, 0xaa, 0xdf, 0x15, 0xf9, 0x40, 0xff, 0x42, 0x41,
+};
+static const unsigned char kat2749_nonce[] = {0};
+static const unsigned char kat2749_persstr[] = {
+ 0xea, 0x51, 0x22, 0x7d, 0x77, 0x60, 0xff, 0xf9, 0xd8, 0x60, 0xa0, 0x02,
+ 0xf0, 0xde, 0x37, 0x3d, 0xc9, 0xb8, 0xab, 0x86, 0x22, 0x72, 0xc7, 0x1d,
+ 0x0a, 0x65, 0x56, 0xab, 0x6d, 0xb9, 0x9e, 0x90, 0x0b, 0x11, 0x3a, 0x79,
+ 0x24, 0x57, 0xb8, 0x90, 0x57, 0x60, 0xe3, 0x77, 0xdd, 0x15, 0x83, 0x46,
+};
+static const unsigned char kat2749_entropyinreseed[] = {
+ 0x86, 0x8b, 0x21, 0xad, 0xaa, 0xf5, 0x8a, 0x83, 0x91, 0x79, 0x4f, 0xd2,
+ 0x59, 0x98, 0x57, 0x42, 0x16, 0x9d, 0xb4, 0x7c, 0x27, 0x30, 0xeb, 0x78,
+ 0x6c, 0xa2, 0x8f, 0x80, 0xe3, 0xf1, 0x6a, 0x2e, 0xbb, 0xa6, 0xbf, 0xd0,
+ 0x0f, 0x37, 0x81, 0x4f, 0x93, 0x80, 0x00, 0xc6, 0xfa, 0x82, 0xaf, 0x1d,
+};
+static const unsigned char kat2749_addinreseed[] = {
+ 0xa1, 0xa3, 0x8c, 0xf2, 0x6e, 0x0c, 0x3f, 0x85, 0xa0, 0x42, 0x85, 0x6c,
+ 0x7c, 0xe9, 0xec, 0x2c, 0x11, 0x3b, 0x09, 0x4e, 0x5a, 0xd5, 0xe6, 0x62,
+ 0x25, 0x46, 0x92, 0xd2, 0x72, 0x43, 0x57, 0xc9, 0x2b, 0x17, 0x72, 0x29,
+ 0xb8, 0xfe, 0x25, 0x94, 0x45, 0x15, 0xdc, 0xcd, 0x46, 0x92, 0x78, 0xb1,
+};
+static const unsigned char kat2749_addin0[] = {
+ 0x02, 0x1a, 0xf3, 0x66, 0x50, 0xe7, 0xac, 0xc3, 0xc5, 0xf5, 0x26, 0xab,
+ 0xe7, 0x24, 0x32, 0x58, 0xc5, 0x18, 0x20, 0x01, 0xd6, 0x4c, 0xe8, 0x0d,
+ 0x4b, 0xf0, 0xa6, 0x33, 0x72, 0x5c, 0x1d, 0xcc, 0x38, 0xf3, 0xf2, 0xb7,
+ 0x06, 0x77, 0x11, 0x22, 0xbb, 0xa5, 0x02, 0x6c, 0x3d, 0xac, 0x60, 0x40,
+};
+static const unsigned char kat2749_addin1[] = {
+ 0x6b, 0xb5, 0x2d, 0xa3, 0x4c, 0x8a, 0x45, 0x28, 0xa2, 0x58, 0x5b, 0x9f,
+ 0x42, 0xc0, 0x4f, 0xc4, 0x48, 0x7f, 0xf3, 0x55, 0xe3, 0xb7, 0xa4, 0x2c,
+ 0x37, 0xc8, 0x33, 0xff, 0xac, 0x63, 0x6d, 0xe5, 0x45, 0xab, 0xa1, 0x56,
+ 0xf5, 0x16, 0xef, 0xa0, 0xbb, 0xa5, 0x2b, 0x91, 0x16, 0x98, 0x6f, 0x8e,
+};
+static const unsigned char kat2749_retbits[] = {
+ 0x77, 0x0c, 0xfb, 0xda, 0xe6, 0x52, 0xc3, 0xbc, 0xf5, 0x09, 0x6f, 0x4a,
+ 0x60, 0x04, 0xa2, 0x60, 0xcf, 0x61, 0xe8, 0x46, 0x06, 0xcf, 0xd6, 0x0a,
+ 0xc6, 0x71, 0x9d, 0x72, 0xea, 0xf4, 0x63, 0xda, 0x13, 0x5d, 0xea, 0x67,
+ 0x1c, 0x00, 0x25, 0x8e, 0x77, 0xd4, 0x9d, 0x72, 0xc3, 0x0c, 0xb2, 0xa5,
+ 0xb6, 0x6f, 0x79, 0xf3, 0x31, 0x72, 0x58, 0x1d, 0x95, 0xad, 0xe3, 0xf7,
+ 0xd6, 0x95, 0xcb, 0x61,
+};
+static const struct drbg_kat_pr_false kat2749_t = {
+ 3, kat2749_entropyin, kat2749_nonce, kat2749_persstr,
+ kat2749_entropyinreseed, kat2749_addinreseed, kat2749_addin0,
+ kat2749_addin1, kat2749_retbits
+};
+static const struct drbg_kat kat2749 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2749_t
+};
+
+static const unsigned char kat2750_entropyin[] = {
+ 0x3a, 0x56, 0xe4, 0x58, 0x5b, 0x56, 0xaf, 0x93, 0xb4, 0xa2, 0x05, 0xc3,
+ 0x01, 0x86, 0xc5, 0x8f, 0xe9, 0xed, 0x18, 0x58, 0x10, 0xd9, 0x26, 0x7f,
+ 0x73, 0x4f, 0x39, 0x90, 0xb9, 0x1e, 0x36, 0x61, 0x84, 0xe0, 0xb4, 0x6f,
+ 0x5f, 0x8b, 0xc7, 0xc3, 0x64, 0xcf, 0x8a, 0xc5, 0xdf, 0x64, 0x3c, 0xd7,
+};
+static const unsigned char kat2750_nonce[] = {0};
+static const unsigned char kat2750_persstr[] = {
+ 0xc8, 0x72, 0x5d, 0x49, 0xec, 0x89, 0xb7, 0x6b, 0x9c, 0x29, 0x2c, 0xee,
+ 0x1b, 0xfc, 0x22, 0xf7, 0xa6, 0x59, 0x3c, 0x7f, 0xd3, 0x7a, 0x96, 0x33,
+ 0xf0, 0x34, 0x1b, 0x68, 0x90, 0x5f, 0x16, 0xca, 0x25, 0xdd, 0x09, 0x6a,
+ 0xaf, 0xd3, 0x98, 0x84, 0xa2, 0x30, 0x1c, 0xfe, 0x17, 0x8c, 0x63, 0xb3,
+};
+static const unsigned char kat2750_entropyinreseed[] = {
+ 0x3e, 0x5a, 0x81, 0x4e, 0xe0, 0x9a, 0xaa, 0xd3, 0x66, 0xc2, 0x02, 0x12,
+ 0xd4, 0x9f, 0x18, 0x6e, 0x7e, 0x30, 0xd7, 0xbf, 0x7e, 0xb4, 0x70, 0x95,
+ 0x8b, 0x1b, 0x35, 0x6b, 0x6f, 0xdb, 0x11, 0x14, 0xc6, 0xec, 0xaa, 0x8b,
+ 0x18, 0xf3, 0x9e, 0x78, 0xca, 0xa9, 0xc2, 0x97, 0x26, 0x39, 0x42, 0x41,
+};
+static const unsigned char kat2750_addinreseed[] = {
+ 0xc1, 0x7a, 0x4f, 0xd0, 0x37, 0x1f, 0x50, 0x50, 0xc3, 0xff, 0x35, 0x79,
+ 0xd2, 0xe6, 0x80, 0x9a, 0x8e, 0x5d, 0xbe, 0x62, 0xf2, 0xbe, 0x35, 0x9f,
+ 0x91, 0xfa, 0xff, 0x57, 0x31, 0x03, 0x1c, 0x6c, 0x2a, 0xd9, 0xea, 0x8f,
+ 0xda, 0xb1, 0x05, 0x61, 0xf1, 0xfb, 0x9c, 0xb8, 0x5d, 0xcb, 0x9c, 0x91,
+};
+static const unsigned char kat2750_addin0[] = {
+ 0xb3, 0x42, 0x8e, 0xf3, 0x01, 0xe8, 0x91, 0x02, 0x2e, 0xab, 0xb4, 0xaf,
+ 0x05, 0x92, 0xd9, 0x18, 0xac, 0x6e, 0xe1, 0x5d, 0xe2, 0x9c, 0x12, 0xa0,
+ 0x50, 0x97, 0xe9, 0xf5, 0xc0, 0xec, 0x7f, 0x93, 0x6e, 0xf5, 0x33, 0x1c,
+ 0x63, 0x3a, 0x39, 0x9c, 0x3f, 0x90, 0xaa, 0x47, 0xf2, 0x4f, 0xd9, 0xad,
+};
+static const unsigned char kat2750_addin1[] = {
+ 0xbf, 0x0b, 0x17, 0xe6, 0x58, 0xcb, 0x49, 0xd2, 0xea, 0xb6, 0x81, 0xca,
+ 0x34, 0x8f, 0xfc, 0x76, 0x63, 0x57, 0x0a, 0x55, 0x96, 0xc8, 0x84, 0xd9,
+ 0x6d, 0x1d, 0x91, 0xd5, 0xcb, 0x85, 0x6c, 0xc9, 0xa7, 0x2a, 0x7c, 0xf8,
+ 0xc3, 0x59, 0x13, 0x52, 0x5b, 0x5e, 0x01, 0x94, 0xc5, 0xf8, 0x3d, 0x8d,
+};
+static const unsigned char kat2750_retbits[] = {
+ 0x93, 0x21, 0xa8, 0x46, 0x0a, 0xd4, 0x53, 0xd3, 0x46, 0x60, 0x6d, 0x0f,
+ 0xa8, 0x8e, 0x44, 0xe4, 0xc0, 0xa3, 0xa3, 0x2d, 0x43, 0xd8, 0x4d, 0x4c,
+ 0xbf, 0xa7, 0xad, 0xfe, 0x41, 0x1e, 0xd4, 0xda, 0x44, 0xe4, 0x58, 0xc1,
+ 0x68, 0x43, 0x92, 0x79, 0xc9, 0xac, 0xd7, 0x28, 0x7e, 0xf4, 0x20, 0x1e,
+ 0x7d, 0xcb, 0x60, 0x08, 0x7a, 0xa8, 0x0d, 0x05, 0x74, 0xcb, 0xad, 0xec,
+ 0x2f, 0xeb, 0x2e, 0x41,
+};
+static const struct drbg_kat_pr_false kat2750_t = {
+ 4, kat2750_entropyin, kat2750_nonce, kat2750_persstr,
+ kat2750_entropyinreseed, kat2750_addinreseed, kat2750_addin0,
+ kat2750_addin1, kat2750_retbits
+};
+static const struct drbg_kat kat2750 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2750_t
+};
+
+static const unsigned char kat2751_entropyin[] = {
+ 0x4f, 0xe6, 0x7b, 0xec, 0x0f, 0x34, 0x32, 0x00, 0x57, 0x0b, 0xe3, 0x1e,
+ 0x93, 0xbb, 0x93, 0xff, 0x5d, 0x1a, 0x29, 0x54, 0xd6, 0xee, 0x39, 0x54,
+ 0xfa, 0xd3, 0x1f, 0x22, 0x19, 0xe1, 0x81, 0x64, 0x5d, 0x95, 0x99, 0x1e,
+ 0xaa, 0xd9, 0x5c, 0xc2, 0x03, 0xc2, 0x97, 0x4b, 0x4f, 0x8f, 0x92, 0x99,
+};
+static const unsigned char kat2751_nonce[] = {0};
+static const unsigned char kat2751_persstr[] = {
+ 0x84, 0xeb, 0xb9, 0x99, 0x11, 0x4c, 0xd1, 0x0e, 0x2f, 0x3f, 0x9e, 0x8b,
+ 0x23, 0x16, 0x35, 0xcd, 0x9a, 0x5b, 0x1f, 0x89, 0x4e, 0x5a, 0xe7, 0x2e,
+ 0x88, 0x63, 0x67, 0xd1, 0xbc, 0x65, 0x30, 0x3f, 0xa0, 0x92, 0xf8, 0xaa,
+ 0xb9, 0x02, 0x30, 0x77, 0xfb, 0x60, 0xe9, 0x8f, 0x1a, 0x77, 0xbe, 0xb1,
+};
+static const unsigned char kat2751_entropyinreseed[] = {
+ 0xdc, 0x5e, 0xd2, 0x42, 0x12, 0xfc, 0xf4, 0x17, 0xb2, 0x64, 0x6e, 0x2a,
+ 0x23, 0xad, 0x21, 0x36, 0x3e, 0x78, 0xf7, 0xea, 0x28, 0x64, 0x17, 0x83,
+ 0x0b, 0x85, 0x3f, 0x4f, 0x69, 0x29, 0x8a, 0x26, 0x0f, 0xcd, 0x54, 0xfe,
+ 0xec, 0x55, 0x8d, 0x38, 0x47, 0xf1, 0x6a, 0x71, 0x39, 0x15, 0x1d, 0x42,
+};
+static const unsigned char kat2751_addinreseed[] = {
+ 0xa4, 0x8c, 0xbb, 0xa2, 0x16, 0x52, 0x42, 0xa8, 0x24, 0xb8, 0x81, 0x7c,
+ 0x71, 0x23, 0x15, 0xf6, 0xcc, 0x63, 0x64, 0x25, 0x49, 0xcb, 0x86, 0xf3,
+ 0x7a, 0xd5, 0x12, 0x10, 0x07, 0xc5, 0x71, 0x9b, 0x55, 0x85, 0x54, 0x35,
+ 0x2d, 0x51, 0xba, 0x44, 0x4d, 0xea, 0x5a, 0x58, 0xcc, 0xdf, 0x5f, 0x7f,
+};
+static const unsigned char kat2751_addin0[] = {
+ 0x2d, 0x01, 0x88, 0xea, 0x68, 0x5a, 0x72, 0xb1, 0x55, 0x55, 0xbf, 0xdd,
+ 0xa2, 0x61, 0x07, 0xda, 0xe1, 0x46, 0x65, 0xb2, 0xfb, 0xd9, 0x69, 0x4e,
+ 0xca, 0x5a, 0xee, 0x9f, 0x4c, 0x0b, 0x21, 0x22, 0xaf, 0x51, 0x81, 0x15,
+ 0xc3, 0x85, 0xb1, 0x66, 0xee, 0x21, 0xd6, 0x3d, 0x20, 0xd8, 0xf2, 0x80,
+};
+static const unsigned char kat2751_addin1[] = {
+ 0x31, 0x05, 0x6e, 0x76, 0xfa, 0xb1, 0x96, 0xd3, 0x4b, 0x79, 0x4e, 0x28,
+ 0x90, 0x53, 0x6f, 0xd2, 0x22, 0x7a, 0x49, 0x66, 0x1b, 0x59, 0xac, 0x24,
+ 0x0c, 0xcd, 0xe5, 0x97, 0xe4, 0x1b, 0x1d, 0x03, 0x8c, 0xb1, 0xbe, 0x27,
+ 0x1e, 0x18, 0xdc, 0xfe, 0x4a, 0x58, 0x58, 0x65, 0x32, 0xf6, 0xc7, 0xd0,
+};
+static const unsigned char kat2751_retbits[] = {
+ 0x51, 0x2a, 0x2c, 0x24, 0xc7, 0xb1, 0x70, 0x9c, 0xba, 0x34, 0xa7, 0xef,
+ 0x97, 0xcb, 0x16, 0x03, 0x2a, 0x99, 0x28, 0x2f, 0xfd, 0x3e, 0x80, 0xc3,
+ 0x07, 0x28, 0x21, 0xbb, 0xc8, 0x8d, 0x0d, 0x4e, 0x23, 0x6c, 0x17, 0xb9,
+ 0x9a, 0xff, 0x7b, 0xf5, 0x90, 0xe4, 0xdb, 0xaa, 0xba, 0x3c, 0xef, 0x0b,
+ 0xc4, 0x79, 0x6f, 0x20, 0x11, 0x76, 0x15, 0xc9, 0x73, 0x56, 0xf4, 0xa7,
+ 0x45, 0xd1, 0x2f, 0xa0,
+};
+static const struct drbg_kat_pr_false kat2751_t = {
+ 5, kat2751_entropyin, kat2751_nonce, kat2751_persstr,
+ kat2751_entropyinreseed, kat2751_addinreseed, kat2751_addin0,
+ kat2751_addin1, kat2751_retbits
+};
+static const struct drbg_kat kat2751 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2751_t
+};
+
+static const unsigned char kat2752_entropyin[] = {
+ 0xe1, 0xf2, 0xa3, 0x26, 0xf4, 0xf5, 0x9d, 0x68, 0x52, 0x72, 0xc4, 0x7f,
+ 0x1a, 0x18, 0xb7, 0x6c, 0x1e, 0x83, 0x1d, 0xa6, 0xae, 0xf5, 0x43, 0x2e,
+ 0x36, 0x3f, 0xdc, 0x7e, 0x1c, 0xce, 0xd7, 0xda, 0xfa, 0xcf, 0x44, 0xb7,
+ 0x76, 0x3e, 0x24, 0x66, 0x1b, 0xc9, 0x2a, 0x7d, 0xce, 0x8e, 0xf5, 0x13,
+};
+static const unsigned char kat2752_nonce[] = {0};
+static const unsigned char kat2752_persstr[] = {
+ 0xd1, 0xd0, 0xf2, 0x98, 0x53, 0x9e, 0xeb, 0xc0, 0xa4, 0x54, 0x32, 0xe4,
+ 0x0d, 0x3f, 0x82, 0xc0, 0xa4, 0x2d, 0xa5, 0xa9, 0xf7, 0x19, 0x86, 0xd1,
+ 0xe4, 0x6c, 0x0d, 0x8f, 0x02, 0xd0, 0x51, 0x8d, 0xb5, 0xf7, 0xd4, 0xc9,
+ 0xd4, 0xb7, 0x63, 0x7c, 0x08, 0x28, 0x37, 0x37, 0xf3, 0xd3, 0xde, 0x53,
+};
+static const unsigned char kat2752_entropyinreseed[] = {
+ 0xdc, 0xdc, 0x98, 0x36, 0xab, 0xc8, 0xcd, 0x43, 0x49, 0x89, 0xf3, 0x37,
+ 0xfc, 0x1e, 0xd1, 0xfc, 0x88, 0xe4, 0xb5, 0xc6, 0x7e, 0xea, 0xe3, 0x3c,
+ 0x15, 0x91, 0xb9, 0x56, 0xde, 0x15, 0x71, 0x0d, 0xda, 0xed, 0x7d, 0x5e,
+ 0xdb, 0x26, 0x86, 0x63, 0x79, 0x70, 0x13, 0x1d, 0xbd, 0x8f, 0x7e, 0xbf,
+};
+static const unsigned char kat2752_addinreseed[] = {
+ 0xa5, 0xb9, 0x65, 0x5d, 0x68, 0x8b, 0xe8, 0xff, 0x55, 0x61, 0x64, 0x61,
+ 0xb6, 0xdc, 0x7c, 0x8a, 0x63, 0xff, 0xfb, 0xe8, 0x50, 0x92, 0x69, 0xa3,
+ 0xbc, 0xdc, 0xf3, 0xd9, 0x62, 0x5b, 0x8a, 0x1e, 0xfd, 0x7f, 0x7e, 0x7e,
+ 0x19, 0x6c, 0x2d, 0xf0, 0x94, 0xcc, 0x27, 0xb6, 0xf4, 0x3d, 0x4c, 0xe4,
+};
+static const unsigned char kat2752_addin0[] = {
+ 0x87, 0xeb, 0xdd, 0xba, 0xd4, 0xcd, 0xc4, 0xc7, 0x3b, 0x06, 0x1e, 0x04,
+ 0x7a, 0xc0, 0xcf, 0xa7, 0x7b, 0x9c, 0x01, 0x99, 0x6a, 0x16, 0xca, 0xae,
+ 0xf1, 0xea, 0x9c, 0xd9, 0x57, 0x95, 0x37, 0x77, 0xaf, 0xa7, 0x81, 0xac,
+ 0x00, 0x5e, 0xb5, 0x85, 0x9d, 0x88, 0xcc, 0x87, 0x80, 0x56, 0xf1, 0xec,
+};
+static const unsigned char kat2752_addin1[] = {
+ 0x4f, 0x3d, 0x5b, 0x85, 0x6e, 0x15, 0x4f, 0xcc, 0x18, 0xba, 0x79, 0x89,
+ 0xf3, 0x62, 0xc5, 0xf1, 0x5c, 0x5f, 0xcc, 0x3d, 0x93, 0x3f, 0x3d, 0xe7,
+ 0xe0, 0xa7, 0x6a, 0x57, 0x56, 0x1b, 0xad, 0x23, 0x37, 0xe7, 0xba, 0x22,
+ 0x35, 0xc4, 0xe4, 0x4c, 0x5b, 0x83, 0x54, 0x32, 0x3f, 0x56, 0x0b, 0x02,
+};
+static const unsigned char kat2752_retbits[] = {
+ 0xf5, 0xdb, 0x63, 0x4b, 0x59, 0x06, 0xf3, 0xaa, 0x68, 0xef, 0x1a, 0xb7,
+ 0x8b, 0xdb, 0xa4, 0xdd, 0xfb, 0xd5, 0x3c, 0xc6, 0x04, 0x3f, 0xd3, 0xec,
+ 0xc6, 0xdf, 0x2e, 0x9c, 0x7a, 0x47, 0xbd, 0xf5, 0x40, 0x80, 0xa4, 0x6b,
+ 0x68, 0x9e, 0x9e, 0x5f, 0x96, 0xc8, 0x5f, 0xff, 0x5b, 0x78, 0xd1, 0x27,
+ 0x02, 0xd0, 0xa2, 0x05, 0x3b, 0xdf, 0x68, 0x39, 0xff, 0xbb, 0x1c, 0x92,
+ 0x07, 0x5d, 0xd1, 0x89,
+};
+static const struct drbg_kat_pr_false kat2752_t = {
+ 6, kat2752_entropyin, kat2752_nonce, kat2752_persstr,
+ kat2752_entropyinreseed, kat2752_addinreseed, kat2752_addin0,
+ kat2752_addin1, kat2752_retbits
+};
+static const struct drbg_kat kat2752 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2752_t
+};
+
+static const unsigned char kat2753_entropyin[] = {
+ 0xe2, 0x01, 0xfa, 0xec, 0x2d, 0x5f, 0x45, 0x30, 0xf1, 0xaf, 0xfa, 0x18,
+ 0x89, 0xf1, 0xea, 0xe9, 0x80, 0x9a, 0x8a, 0xe7, 0xd3, 0x2a, 0x04, 0x14,
+ 0xdc, 0xfd, 0xdf, 0xa3, 0x73, 0xeb, 0xf2, 0x42, 0xb8, 0xc1, 0x08, 0xcd,
+ 0x6c, 0xeb, 0x55, 0x5a, 0xd3, 0x12, 0x18, 0x8f, 0xb1, 0x65, 0x11, 0xb5,
+};
+static const unsigned char kat2753_nonce[] = {0};
+static const unsigned char kat2753_persstr[] = {
+ 0x3c, 0x33, 0xd1, 0x5c, 0x59, 0xa5, 0x9b, 0x0b, 0x3c, 0x39, 0xb0, 0x08,
+ 0xc1, 0x7d, 0xba, 0xa2, 0xe4, 0x13, 0x7a, 0xb4, 0x73, 0xca, 0xac, 0x6b,
+ 0x00, 0xfd, 0xfb, 0xaf, 0xa7, 0x3f, 0x68, 0xf2, 0xe2, 0x44, 0xa3, 0x15,
+ 0x1f, 0xe1, 0x29, 0xea, 0x47, 0x34, 0x5d, 0x1b, 0xcb, 0xba, 0x44, 0x07,
+};
+static const unsigned char kat2753_entropyinreseed[] = {
+ 0xaa, 0x3b, 0xec, 0x50, 0x4e, 0xd8, 0x83, 0x77, 0x79, 0x90, 0x3a, 0x62,
+ 0x5d, 0xab, 0x0f, 0x6b, 0x6e, 0x25, 0x08, 0xdf, 0x5c, 0x7a, 0xe5, 0x37,
+ 0x5a, 0x54, 0x25, 0x9a, 0x3d, 0x7f, 0x35, 0xa4, 0x15, 0x71, 0x66, 0x8f,
+ 0xe2, 0x7a, 0x36, 0x8d, 0x20, 0x11, 0x06, 0x51, 0x9f, 0xf4, 0x01, 0xbb,
+};
+static const unsigned char kat2753_addinreseed[] = {
+ 0xd7, 0x5b, 0xc7, 0x21, 0xd3, 0xb2, 0xef, 0x78, 0x8f, 0x2e, 0xe4, 0xca,
+ 0xdb, 0x77, 0x56, 0xe0, 0x61, 0xc6, 0xec, 0x78, 0x6f, 0x7c, 0x8e, 0x37,
+ 0x88, 0x87, 0x95, 0x66, 0x30, 0x98, 0x17, 0x6f, 0xc7, 0x4a, 0xff, 0xa4,
+ 0x9f, 0xfd, 0xcb, 0x22, 0xd0, 0x3e, 0x0b, 0xc5, 0x97, 0xda, 0xca, 0xef,
+};
+static const unsigned char kat2753_addin0[] = {
+ 0xa6, 0x24, 0xdb, 0x91, 0xdc, 0x18, 0x34, 0x9a, 0xef, 0x33, 0x96, 0x78,
+ 0xd7, 0x56, 0x40, 0xcb, 0x5f, 0x98, 0x68, 0xb1, 0xbc, 0x77, 0xf9, 0xc4,
+ 0x0b, 0xcf, 0xfd, 0xc7, 0x11, 0x9f, 0x51, 0x2f, 0xc9, 0xa9, 0xa4, 0xf5,
+ 0x3f, 0x88, 0xc1, 0xf2, 0xda, 0x76, 0x77, 0x7b, 0xab, 0x87, 0xf0, 0x73,
+};
+static const unsigned char kat2753_addin1[] = {
+ 0x4d, 0x94, 0x7e, 0xcc, 0x8f, 0x47, 0xbe, 0x6e, 0xe6, 0xfc, 0xab, 0x95,
+ 0x2b, 0xf3, 0xad, 0x0f, 0x8f, 0xcc, 0xd8, 0x7e, 0x84, 0x0b, 0xa9, 0x31,
+ 0xcd, 0x5a, 0x3b, 0x4c, 0xab, 0x65, 0x0a, 0x5d, 0x86, 0xf8, 0x4a, 0xbd,
+ 0x83, 0xe8, 0x86, 0x65, 0x87, 0xc6, 0x6f, 0xf9, 0x3f, 0x37, 0xec, 0xbc,
+};
+static const unsigned char kat2753_retbits[] = {
+ 0x78, 0x31, 0xe9, 0x53, 0xdd, 0xcc, 0xc1, 0x9d, 0x5d, 0x31, 0xca, 0xe3,
+ 0x2b, 0xb6, 0x37, 0x66, 0xb3, 0x12, 0x3f, 0x3d, 0xc7, 0xbf, 0xd2, 0x7f,
+ 0x0f, 0xa4, 0x9f, 0x9a, 0x61, 0x56, 0x01, 0xa8, 0x71, 0xb5, 0x71, 0x09,
+ 0xc2, 0x69, 0x23, 0x06, 0x66, 0x39, 0x05, 0x48, 0x1f, 0x9d, 0xf4, 0x6b,
+ 0x81, 0xa7, 0xad, 0xbe, 0xc5, 0xef, 0x14, 0xcc, 0x12, 0xfa, 0x68, 0xbd,
+ 0xef, 0xf5, 0x6a, 0x12,
+};
+static const struct drbg_kat_pr_false kat2753_t = {
+ 7, kat2753_entropyin, kat2753_nonce, kat2753_persstr,
+ kat2753_entropyinreseed, kat2753_addinreseed, kat2753_addin0,
+ kat2753_addin1, kat2753_retbits
+};
+static const struct drbg_kat kat2753 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2753_t
+};
+
+static const unsigned char kat2754_entropyin[] = {
+ 0xaa, 0x55, 0x93, 0x95, 0x54, 0x52, 0x31, 0x29, 0xc2, 0xce, 0x9f, 0xc4,
+ 0x31, 0x82, 0xcb, 0xcf, 0x2a, 0xd8, 0x8b, 0xb5, 0x10, 0xa0, 0xe6, 0x49,
+ 0x60, 0xa4, 0x99, 0x81, 0x87, 0xcd, 0x71, 0xe6, 0xb3, 0x59, 0x17, 0xde,
+ 0xa2, 0xfd, 0x1b, 0x1d, 0x77, 0xed, 0x21, 0x1b, 0x0b, 0xf4, 0x92, 0x80,
+};
+static const unsigned char kat2754_nonce[] = {0};
+static const unsigned char kat2754_persstr[] = {
+ 0x3f, 0x75, 0x1f, 0xcc, 0x46, 0x07, 0x60, 0xc6, 0x0a, 0x52, 0xe2, 0x09,
+ 0x3a, 0xb0, 0xa8, 0xa6, 0x50, 0x2e, 0x2f, 0x3e, 0x63, 0xb6, 0xac, 0x4f,
+ 0x0c, 0xf8, 0xc4, 0xbc, 0xf1, 0x1c, 0x05, 0x4c, 0x87, 0x8c, 0x50, 0x0c,
+ 0x7d, 0xa6, 0x40, 0x33, 0x3c, 0x36, 0x70, 0x5b, 0x33, 0xe8, 0x47, 0xe9,
+};
+static const unsigned char kat2754_entropyinreseed[] = {
+ 0xed, 0x41, 0x10, 0x72, 0x7a, 0x64, 0x38, 0x51, 0xe2, 0x26, 0xb7, 0xbb,
+ 0x0d, 0x07, 0xd3, 0x5e, 0x54, 0x56, 0x5d, 0x72, 0x6b, 0xeb, 0x61, 0x38,
+ 0xb5, 0x38, 0x22, 0x7d, 0x94, 0xf3, 0x21, 0x45, 0xf3, 0x2a, 0xef, 0xb7,
+ 0xa0, 0xa7, 0x5d, 0x21, 0x39, 0xcc, 0xae, 0x41, 0xc4, 0x81, 0x3d, 0xca,
+};
+static const unsigned char kat2754_addinreseed[] = {
+ 0xbd, 0xe5, 0x69, 0x05, 0x88, 0xc7, 0xf3, 0xa3, 0x43, 0xf7, 0x41, 0xf2,
+ 0xb8, 0x35, 0xed, 0xbe, 0xad, 0x44, 0x48, 0x59, 0xf4, 0x6c, 0x55, 0x04,
+ 0xfe, 0xac, 0xa0, 0x48, 0xeb, 0xff, 0x1b, 0x37, 0x86, 0x02, 0x77, 0x60,
+ 0xda, 0x9c, 0x21, 0xe5, 0xc1, 0xcb, 0x54, 0x36, 0x9e, 0xfa, 0x45, 0x00,
+};
+static const unsigned char kat2754_addin0[] = {
+ 0x2d, 0x44, 0x8f, 0x2d, 0x9c, 0xbe, 0x15, 0x33, 0xe4, 0xfd, 0x50, 0xfa,
+ 0xcc, 0xe3, 0xa1, 0x99, 0xf9, 0x1d, 0x88, 0x88, 0x24, 0xa0, 0xfe, 0xcd,
+ 0xa7, 0x4b, 0x16, 0x90, 0x0d, 0xa7, 0xb1, 0x25, 0x50, 0x7f, 0xca, 0x2e,
+ 0xb7, 0xb3, 0x9b, 0xdf, 0xd5, 0xa2, 0xed, 0x68, 0x08, 0x23, 0x27, 0x8f,
+};
+static const unsigned char kat2754_addin1[] = {
+ 0xad, 0x4d, 0x12, 0x7d, 0xb0, 0xe7, 0x8b, 0x80, 0xee, 0x18, 0xad, 0xef,
+ 0x40, 0xaa, 0x78, 0xae, 0xbe, 0x09, 0xf2, 0x02, 0xb5, 0xe7, 0x14, 0x96,
+ 0xd2, 0xe0, 0xac, 0x8d, 0x21, 0x4c, 0x01, 0xfa, 0x6e, 0x98, 0x61, 0x2c,
+ 0x03, 0xa0, 0x74, 0x1a, 0xe0, 0xd7, 0xb1, 0x8b, 0xb9, 0x0b, 0xa3, 0xef,
+};
+static const unsigned char kat2754_retbits[] = {
+ 0xcf, 0xba, 0x8d, 0xaa, 0xb4, 0xc9, 0x96, 0xc1, 0x25, 0x10, 0x2c, 0x46,
+ 0xfd, 0x1d, 0xe2, 0xaf, 0xb7, 0x5d, 0x89, 0xa3, 0xca, 0xa8, 0x3e, 0x96,
+ 0x52, 0x15, 0xd2, 0x32, 0x91, 0x92, 0x58, 0x73, 0xd7, 0xd5, 0x3a, 0x81,
+ 0x81, 0xa9, 0x2f, 0xea, 0x33, 0x47, 0xc2, 0x82, 0xda, 0x5f, 0xb1, 0xc0,
+ 0xf0, 0x01, 0x8a, 0xaf, 0xbe, 0x67, 0x2b, 0x9c, 0xd7, 0xc7, 0xa8, 0x1c,
+ 0xe0, 0xae, 0x49, 0x56,
+};
+static const struct drbg_kat_pr_false kat2754_t = {
+ 8, kat2754_entropyin, kat2754_nonce, kat2754_persstr,
+ kat2754_entropyinreseed, kat2754_addinreseed, kat2754_addin0,
+ kat2754_addin1, kat2754_retbits
+};
+static const struct drbg_kat kat2754 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2754_t
+};
+
+static const unsigned char kat2755_entropyin[] = {
+ 0x83, 0xff, 0xd3, 0x6b, 0x1d, 0x8c, 0x06, 0xa9, 0x89, 0xe9, 0x8c, 0xbe,
+ 0x90, 0x48, 0xd8, 0x06, 0x85, 0x50, 0xa5, 0x1a, 0x90, 0x3b, 0xe2, 0x88,
+ 0xef, 0x26, 0xb6, 0x06, 0x41, 0x34, 0x31, 0x60, 0xab, 0xf6, 0xad, 0xac,
+ 0x16, 0xe8, 0x9a, 0xb2, 0x52, 0x64, 0x7f, 0xf9, 0xe7, 0xe9, 0xfb, 0x00,
+};
+static const unsigned char kat2755_nonce[] = {0};
+static const unsigned char kat2755_persstr[] = {
+ 0x49, 0xb3, 0x78, 0x0b, 0xea, 0xdd, 0xd3, 0xd2, 0x56, 0x67, 0xc8, 0xe3,
+ 0x82, 0x5d, 0x49, 0xa4, 0x21, 0x1b, 0xc9, 0xa0, 0x5c, 0x18, 0xf8, 0xd4,
+ 0xed, 0x06, 0x1b, 0xe8, 0xbf, 0x52, 0x9d, 0xbe, 0xa6, 0x81, 0x93, 0xbd,
+ 0xbc, 0x7a, 0xdf, 0x92, 0x4e, 0x27, 0x96, 0x80, 0x5b, 0x97, 0x0f, 0x2c,
+};
+static const unsigned char kat2755_entropyinreseed[] = {
+ 0x7a, 0xbc, 0xd3, 0xb3, 0x64, 0x4f, 0xd4, 0x04, 0x0e, 0xae, 0x48, 0x19,
+ 0x68, 0xda, 0x7e, 0x71, 0x95, 0x33, 0x33, 0x4d, 0x43, 0xf0, 0x46, 0xe9,
+ 0x2f, 0x40, 0xce, 0xae, 0xb4, 0x7f, 0x78, 0x2b, 0xec, 0x6f, 0xb9, 0x3e,
+ 0xa8, 0xb8, 0x21, 0x23, 0x5a, 0x24, 0xc0, 0x7f, 0x4e, 0x4d, 0x23, 0x95,
+};
+static const unsigned char kat2755_addinreseed[] = {
+ 0x32, 0x5b, 0x2e, 0xa7, 0xcd, 0xf2, 0x2f, 0x96, 0x9b, 0x0e, 0xaa, 0xc5,
+ 0x70, 0xf9, 0xf3, 0x91, 0x36, 0x5a, 0x0c, 0xf6, 0xcf, 0x46, 0x7d, 0x5f,
+ 0x1e, 0xac, 0xc5, 0xc4, 0xf2, 0xf4, 0x2e, 0x11, 0x75, 0x38, 0x93, 0xef,
+ 0x92, 0xd9, 0x06, 0xe3, 0x59, 0x55, 0x43, 0x51, 0xdb, 0xc8, 0x70, 0x55,
+};
+static const unsigned char kat2755_addin0[] = {
+ 0xcb, 0xf5, 0x24, 0x67, 0x02, 0xdf, 0x6d, 0x97, 0xe2, 0xd8, 0xe7, 0x6b,
+ 0xad, 0x1c, 0x92, 0x89, 0x03, 0xab, 0xec, 0x59, 0x1c, 0x33, 0x93, 0xde,
+ 0xfe, 0x18, 0x46, 0xbb, 0xa0, 0x2a, 0x0d, 0x7f, 0x56, 0xc4, 0xaa, 0x0b,
+ 0xed, 0x78, 0x85, 0x0f, 0x94, 0x43, 0x22, 0xae, 0x1d, 0xe0, 0x39, 0x13,
+};
+static const unsigned char kat2755_addin1[] = {
+ 0x80, 0x96, 0xf5, 0x29, 0x62, 0xcb, 0x85, 0xca, 0x4d, 0x59, 0x77, 0x46,
+ 0x34, 0xb0, 0xec, 0x4d, 0xc9, 0x16, 0x56, 0xe1, 0x4c, 0x0c, 0x6f, 0x39,
+ 0xf1, 0xcf, 0x00, 0x3c, 0x04, 0xff, 0x4f, 0x1d, 0x96, 0x0a, 0x0c, 0x1e,
+ 0x75, 0xa2, 0xd4, 0xde, 0xe7, 0xac, 0xd3, 0x93, 0x85, 0x67, 0xc7, 0x6f,
+};
+static const unsigned char kat2755_retbits[] = {
+ 0x18, 0xba, 0x05, 0x71, 0xab, 0x63, 0x7e, 0x0d, 0x0b, 0xdb, 0x7d, 0x8c,
+ 0x2e, 0x4e, 0x4a, 0x7b, 0x35, 0x7a, 0x82, 0x64, 0x9a, 0x10, 0x16, 0xaa,
+ 0x0a, 0x10, 0x66, 0xc8, 0x91, 0xef, 0x54, 0xbd, 0xcf, 0xe3, 0x9d, 0x72,
+ 0xd0, 0xc4, 0xb9, 0xc1, 0xa8, 0x43, 0x03, 0x02, 0xa6, 0x6d, 0xf9, 0xaa,
+ 0x88, 0xc2, 0xd2, 0x91, 0xc5, 0x39, 0x05, 0x13, 0x47, 0x87, 0x80, 0x04,
+ 0x45, 0x37, 0xdc, 0xcf,
+};
+static const struct drbg_kat_pr_false kat2755_t = {
+ 9, kat2755_entropyin, kat2755_nonce, kat2755_persstr,
+ kat2755_entropyinreseed, kat2755_addinreseed, kat2755_addin0,
+ kat2755_addin1, kat2755_retbits
+};
+static const struct drbg_kat kat2755 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2755_t
+};
+
+static const unsigned char kat2756_entropyin[] = {
+ 0xc6, 0x77, 0xfd, 0x96, 0xfe, 0xf5, 0xcd, 0x09, 0x2e, 0x02, 0xf0, 0x65,
+ 0x3e, 0xc7, 0x26, 0xbf, 0x9c, 0x0e, 0x6b, 0x07, 0x9a, 0x00, 0x7e, 0x78,
+ 0xab, 0x7c, 0xe0, 0xcf, 0x76, 0xfe, 0xf5, 0xfd, 0xa2, 0xe9, 0x6e, 0xdf,
+ 0x7d, 0xbe, 0xee, 0xa7, 0x61, 0x4f, 0xc3, 0xe5, 0x97, 0x6e, 0x3a, 0x6d,
+};
+static const unsigned char kat2756_nonce[] = {0};
+static const unsigned char kat2756_persstr[] = {
+ 0x59, 0x52, 0xa6, 0x61, 0xc3, 0x80, 0x2d, 0x16, 0xe3, 0xe2, 0x44, 0x6a,
+ 0xcc, 0x89, 0x32, 0x4b, 0x3e, 0xab, 0x96, 0xa6, 0x32, 0xbf, 0x72, 0xc1,
+ 0xd1, 0x5b, 0xe7, 0x1b, 0xd1, 0x26, 0x9f, 0x03, 0x94, 0xcf, 0x10, 0x7c,
+ 0x28, 0x11, 0x8f, 0xb6, 0x07, 0x82, 0x27, 0xd6, 0x40, 0x41, 0x4e, 0x9d,
+};
+static const unsigned char kat2756_entropyinreseed[] = {
+ 0xbb, 0x24, 0xe6, 0xa5, 0x79, 0x96, 0xf7, 0x5f, 0x02, 0x10, 0x0c, 0x4f,
+ 0xc8, 0x8d, 0x2f, 0x63, 0x59, 0x48, 0xd4, 0x32, 0x2a, 0x77, 0x8f, 0x05,
+ 0xb9, 0x1a, 0xf4, 0x65, 0xa9, 0xd7, 0xf6, 0x5f, 0xe0, 0x47, 0x0f, 0x18,
+ 0x7f, 0x61, 0x92, 0xa6, 0x30, 0x32, 0x43, 0x8d, 0xa8, 0xf3, 0x44, 0xb2,
+};
+static const unsigned char kat2756_addinreseed[] = {
+ 0xd6, 0x95, 0x35, 0xeb, 0x84, 0xbe, 0xf4, 0xeb, 0xc5, 0x4b, 0xeb, 0xe8,
+ 0x37, 0x51, 0x2c, 0xa7, 0x36, 0xd1, 0x48, 0x51, 0xb0, 0x3a, 0xa9, 0x5a,
+ 0x52, 0x43, 0xff, 0x37, 0x0c, 0xa8, 0x22, 0x56, 0xd1, 0xa1, 0xbb, 0x40,
+ 0x50, 0xfd, 0xa6, 0x1e, 0x21, 0x59, 0x76, 0x9a, 0x0e, 0xac, 0x65, 0xef,
+};
+static const unsigned char kat2756_addin0[] = {
+ 0x3a, 0x1b, 0x3d, 0xfc, 0x0c, 0xf1, 0x9c, 0xa5, 0xf1, 0x9f, 0x0a, 0xed,
+ 0xbe, 0x44, 0x3b, 0x77, 0x48, 0xa1, 0x2a, 0x10, 0x4d, 0xf6, 0x65, 0x9a,
+ 0x46, 0x12, 0x00, 0x6d, 0xaa, 0xf1, 0xa3, 0xf5, 0x67, 0x77, 0x22, 0x49,
+ 0x59, 0x64, 0x87, 0xcc, 0x66, 0x55, 0x0c, 0xc9, 0xa5, 0xa7, 0xe4, 0x21,
+};
+static const unsigned char kat2756_addin1[] = {
+ 0xcc, 0x76, 0x40, 0x00, 0x32, 0x0f, 0x33, 0x71, 0x70, 0x9e, 0x92, 0x44,
+ 0x2b, 0xad, 0xbe, 0xe1, 0x2b, 0xeb, 0x7c, 0xaf, 0xf2, 0xef, 0xc7, 0x30,
+ 0x78, 0x0b, 0x3e, 0xca, 0x22, 0xaf, 0xe4, 0x3e, 0xe7, 0x0d, 0x5e, 0xc4,
+ 0xc7, 0x6c, 0x09, 0x1a, 0xf0, 0x89, 0x6f, 0x47, 0x16, 0x51, 0xdd, 0xed,
+};
+static const unsigned char kat2756_retbits[] = {
+ 0x09, 0x4d, 0x52, 0x99, 0xcf, 0x69, 0xee, 0x54, 0x62, 0x4b, 0x18, 0x08,
+ 0x64, 0x53, 0x79, 0x66, 0x7d, 0xa9, 0xd2, 0xcc, 0xf5, 0x17, 0x64, 0x4f,
+ 0x9b, 0xe0, 0x21, 0x37, 0x9b, 0x0b, 0xbf, 0xf8, 0x5f, 0x0e, 0x66, 0x1c,
+ 0xc4, 0x64, 0x9b, 0xfb, 0xaf, 0xe6, 0x7e, 0x20, 0xb9, 0x27, 0xb4, 0x34,
+ 0x6e, 0x5f, 0xa4, 0xab, 0x86, 0xbf, 0x9f, 0x1d, 0xd5, 0xef, 0x75, 0x97,
+ 0x1d, 0xf8, 0xdf, 0xba,
+};
+static const struct drbg_kat_pr_false kat2756_t = {
+ 10, kat2756_entropyin, kat2756_nonce, kat2756_persstr,
+ kat2756_entropyinreseed, kat2756_addinreseed, kat2756_addin0,
+ kat2756_addin1, kat2756_retbits
+};
+static const struct drbg_kat kat2756 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2756_t
+};
+
+static const unsigned char kat2757_entropyin[] = {
+ 0x4a, 0x07, 0x94, 0x72, 0x52, 0xaa, 0xb1, 0xa1, 0x41, 0xf9, 0x36, 0x01,
+ 0x50, 0x9b, 0x6a, 0x5f, 0x44, 0x2f, 0x5e, 0x0f, 0xd4, 0x55, 0xe6, 0xd6,
+ 0x9c, 0xf5, 0xd5, 0x82, 0xa3, 0x96, 0x15, 0x97, 0xc1, 0xf1, 0x01, 0xa2,
+ 0xbd, 0x25, 0xb3, 0xdc, 0xbb, 0x47, 0x1d, 0xdd, 0x70, 0x99, 0xf8, 0x43,
+};
+static const unsigned char kat2757_nonce[] = {0};
+static const unsigned char kat2757_persstr[] = {
+ 0xaf, 0x96, 0xf1, 0xec, 0x13, 0xd0, 0x5d, 0x57, 0x40, 0x9e, 0x9c, 0x06,
+ 0xfc, 0x7c, 0x1d, 0x30, 0x00, 0xed, 0x44, 0xb3, 0x54, 0x93, 0x22, 0x97,
+ 0x62, 0x9f, 0x28, 0x8d, 0xe2, 0x29, 0x42, 0x4a, 0xc3, 0xb0, 0x1e, 0xc8,
+ 0xaf, 0x7b, 0xca, 0xb4, 0x4a, 0x54, 0x50, 0xd7, 0x12, 0x5b, 0xa4, 0x7a,
+};
+static const unsigned char kat2757_entropyinreseed[] = {
+ 0x45, 0xa2, 0x83, 0x3a, 0x53, 0x6c, 0xec, 0xc4, 0xbb, 0x1f, 0x36, 0xa2,
+ 0xef, 0xa3, 0x69, 0xc4, 0x6f, 0x47, 0x1c, 0x70, 0x80, 0xc0, 0xd8, 0x23,
+ 0x0d, 0xa2, 0x1f, 0x61, 0x90, 0x8b, 0xb4, 0x03, 0xe1, 0x1a, 0x38, 0xef,
+ 0xcd, 0x77, 0x92, 0xbb, 0x81, 0xe1, 0xec, 0x64, 0xc6, 0x1a, 0x69, 0x73,
+};
+static const unsigned char kat2757_addinreseed[] = {
+ 0x86, 0xa6, 0xdb, 0x8b, 0x6f, 0x89, 0xc9, 0x2f, 0x33, 0xc2, 0x0d, 0x9c,
+ 0x7f, 0x1f, 0x35, 0xe6, 0xee, 0xa2, 0x5f, 0x3e, 0x62, 0xc7, 0xa7, 0xce,
+ 0xfa, 0xab, 0x07, 0x1b, 0x58, 0xe4, 0xdc, 0x72, 0xa9, 0x96, 0x60, 0x90,
+ 0x40, 0x23, 0x3c, 0xeb, 0xc0, 0x71, 0x21, 0x01, 0x36, 0x06, 0x41, 0x14,
+};
+static const unsigned char kat2757_addin0[] = {
+ 0x91, 0x95, 0x35, 0x2c, 0xcf, 0x0f, 0xa0, 0x04, 0xc3, 0xea, 0x45, 0xcc,
+ 0x3f, 0x36, 0x35, 0x51, 0x9d, 0xc8, 0xf5, 0xa7, 0x6f, 0x2a, 0x60, 0x08,
+ 0x63, 0xd8, 0x86, 0x45, 0x18, 0xcf, 0xc7, 0xe4, 0xad, 0xc7, 0x00, 0xaf,
+ 0x90, 0x50, 0x4e, 0x5c, 0xeb, 0x8e, 0xc2, 0xf9, 0x79, 0x5c, 0xa8, 0x45,
+};
+static const unsigned char kat2757_addin1[] = {
+ 0x9e, 0x3c, 0x66, 0x56, 0x44, 0x2c, 0x70, 0x97, 0x93, 0x62, 0xb9, 0xcb,
+ 0xc9, 0x76, 0x0c, 0x59, 0x58, 0x74, 0x49, 0x44, 0x3f, 0x53, 0xbf, 0x4e,
+ 0x8e, 0x7a, 0x52, 0x03, 0x8f, 0x3c, 0xd4, 0xba, 0xa2, 0x71, 0x57, 0x49,
+ 0xfa, 0x9f, 0x21, 0x46, 0x9c, 0x52, 0x76, 0x1f, 0x1b, 0xed, 0x4f, 0xe9,
+};
+static const unsigned char kat2757_retbits[] = {
+ 0x35, 0xd2, 0x6b, 0xf9, 0x4f, 0x67, 0xfc, 0xa7, 0x62, 0xa4, 0xf4, 0xe7,
+ 0xda, 0x4c, 0xd8, 0x7d, 0x12, 0x39, 0xd2, 0x45, 0x4b, 0x01, 0xdd, 0xc8,
+ 0xf7, 0xc5, 0xdb, 0x94, 0x49, 0xf5, 0x5c, 0x56, 0x87, 0xc4, 0x8c, 0x64,
+ 0x83, 0xde, 0xcc, 0xd2, 0x91, 0x10, 0xe6, 0x24, 0x21, 0x21, 0x21, 0x97,
+ 0x65, 0x90, 0x15, 0xd7, 0xa7, 0xf2, 0xf4, 0x8d, 0x6d, 0xdb, 0xff, 0x09,
+ 0x91, 0x6b, 0x64, 0x1d,
+};
+static const struct drbg_kat_pr_false kat2757_t = {
+ 11, kat2757_entropyin, kat2757_nonce, kat2757_persstr,
+ kat2757_entropyinreseed, kat2757_addinreseed, kat2757_addin0,
+ kat2757_addin1, kat2757_retbits
+};
+static const struct drbg_kat kat2757 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2757_t
+};
+
+static const unsigned char kat2758_entropyin[] = {
+ 0xcd, 0x03, 0xd0, 0xa5, 0x93, 0xcb, 0x60, 0x03, 0xe6, 0x00, 0x9a, 0x75,
+ 0x68, 0x9e, 0xa7, 0xc7, 0x1d, 0x28, 0xb7, 0xbe, 0xa6, 0xb7, 0x4b, 0x68,
+ 0xe9, 0x30, 0x92, 0xbc, 0x14, 0x0b, 0x37, 0xb3, 0x52, 0xca, 0x8b, 0x1c,
+ 0x39, 0x66, 0x94, 0x40, 0x5f, 0x94, 0xb0, 0xf6, 0xfe, 0x39, 0xa4, 0x6a,
+};
+static const unsigned char kat2758_nonce[] = {0};
+static const unsigned char kat2758_persstr[] = {
+ 0x26, 0x3d, 0x10, 0xef, 0x97, 0x3f, 0xc8, 0x77, 0xa3, 0xce, 0xbf, 0x51,
+ 0x2d, 0xc1, 0xab, 0xe5, 0xfd, 0x18, 0x9f, 0x1c, 0x42, 0xb7, 0x4f, 0x07,
+ 0x18, 0x43, 0xb6, 0xcd, 0xe7, 0xb0, 0x25, 0xbe, 0xf4, 0x26, 0x6f, 0x8f,
+ 0x31, 0x2b, 0x42, 0xf9, 0x25, 0x8a, 0xa7, 0x4f, 0xe0, 0xed, 0xe0, 0x89,
+};
+static const unsigned char kat2758_entropyinreseed[] = {
+ 0x9a, 0x01, 0xb2, 0x5f, 0x8d, 0x8b, 0xf3, 0xfd, 0xf0, 0x67, 0x3c, 0x3d,
+ 0x0b, 0x5a, 0x29, 0x9b, 0x18, 0x5f, 0xf4, 0x2e, 0x80, 0xd2, 0x23, 0x16,
+ 0x69, 0x08, 0xe4, 0xfa, 0x09, 0xc0, 0x63, 0xa3, 0xfe, 0x7d, 0x33, 0x5f,
+ 0x52, 0x6d, 0x2d, 0x7f, 0x7a, 0xa5, 0xfa, 0xc4, 0x4d, 0xac, 0x6d, 0x84,
+};
+static const unsigned char kat2758_addinreseed[] = {
+ 0xe7, 0x12, 0xaf, 0xbd, 0xac, 0x4f, 0xbd, 0x71, 0xde, 0x6f, 0x4f, 0xf5,
+ 0xab, 0x04, 0x4b, 0xae, 0xd9, 0xc7, 0xa0, 0x4f, 0x7b, 0xd4, 0xbb, 0x14,
+ 0x2d, 0xd1, 0xd3, 0x41, 0xcf, 0xd9, 0xc4, 0x11, 0xfa, 0x19, 0xda, 0x5c,
+ 0x19, 0xbf, 0xf2, 0x7d, 0x1b, 0x6e, 0xc2, 0x83, 0xdb, 0x0d, 0xe9, 0xd1,
+};
+static const unsigned char kat2758_addin0[] = {
+ 0xa4, 0xf3, 0xb9, 0xd8, 0xb8, 0x6f, 0xa4, 0x6d, 0x8c, 0x26, 0xf3, 0xea,
+ 0xd6, 0xf8, 0xeb, 0x47, 0xcf, 0xa6, 0xca, 0x44, 0x8f, 0x16, 0x59, 0xd6,
+ 0xd2, 0x25, 0x42, 0xc3, 0xdd, 0x98, 0x3c, 0xe2, 0xf2, 0x70, 0x70, 0x1c,
+ 0x06, 0x51, 0xb6, 0xc0, 0xa1, 0x07, 0x79, 0xcc, 0x62, 0x47, 0xa8, 0x1e,
+};
+static const unsigned char kat2758_addin1[] = {
+ 0x1a, 0xa9, 0x6f, 0x73, 0xfb, 0x1a, 0x85, 0x46, 0xdc, 0xbc, 0x30, 0x9d,
+ 0x32, 0x24, 0x98, 0x6e, 0x0a, 0x4a, 0xe3, 0x52, 0x0d, 0x2f, 0xe8, 0x4b,
+ 0x54, 0x95, 0x16, 0x2b, 0x1e, 0x9d, 0x23, 0xeb, 0x08, 0x50, 0x72, 0x06,
+ 0xdb, 0x36, 0x69, 0x16, 0x28, 0x86, 0xba, 0x48, 0xf7, 0xbf, 0x1f, 0x29,
+};
+static const unsigned char kat2758_retbits[] = {
+ 0x09, 0xd1, 0xeb, 0x9b, 0xac, 0x2b, 0x9e, 0xd7, 0x1f, 0x60, 0x96, 0xeb,
+ 0xc8, 0xd6, 0x58, 0xb2, 0x6f, 0x4a, 0x7f, 0x52, 0xed, 0xd4, 0x9c, 0x2a,
+ 0xd3, 0xbd, 0x9d, 0x00, 0xe5, 0x7b, 0x05, 0xbd, 0x96, 0x49, 0x6c, 0x0d,
+ 0x63, 0xf5, 0x32, 0x68, 0xa8, 0xf3, 0x4c, 0xd3, 0xc3, 0xfd, 0x75, 0x43,
+ 0x84, 0x6a, 0x9b, 0xb2, 0xd8, 0x5c, 0x37, 0x79, 0x81, 0xf6, 0xe9, 0xb4,
+ 0xc1, 0xe4, 0x40, 0x6d,
+};
+static const struct drbg_kat_pr_false kat2758_t = {
+ 12, kat2758_entropyin, kat2758_nonce, kat2758_persstr,
+ kat2758_entropyinreseed, kat2758_addinreseed, kat2758_addin0,
+ kat2758_addin1, kat2758_retbits
+};
+static const struct drbg_kat kat2758 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2758_t
+};
+
+static const unsigned char kat2759_entropyin[] = {
+ 0xe7, 0x10, 0x8a, 0x71, 0x40, 0x20, 0x32, 0xf8, 0xbe, 0x94, 0xfd, 0x18,
+ 0x28, 0x87, 0x76, 0x8b, 0x52, 0x34, 0xb8, 0x67, 0xe7, 0x2d, 0xbc, 0xb5,
+ 0x82, 0xa2, 0xbc, 0xd3, 0xe4, 0x80, 0x97, 0x4d, 0x9c, 0x87, 0x80, 0x92,
+ 0x20, 0xc9, 0xcb, 0xf1, 0x18, 0x67, 0xe9, 0x74, 0xa7, 0xc7, 0x5f, 0xdd,
+};
+static const unsigned char kat2759_nonce[] = {0};
+static const unsigned char kat2759_persstr[] = {
+ 0x69, 0x24, 0x14, 0x5a, 0x85, 0x1a, 0xd2, 0x2a, 0xb7, 0x3e, 0x66, 0x21,
+ 0x17, 0xe8, 0x67, 0xcb, 0x6a, 0x9f, 0x09, 0x15, 0xf2, 0x2c, 0xe8, 0x32,
+ 0x13, 0xa7, 0xb6, 0xce, 0xa6, 0xd1, 0xad, 0xe7, 0x9d, 0x67, 0xea, 0xe3,
+ 0x13, 0x52, 0xdc, 0xc1, 0x87, 0x4e, 0x1e, 0x3f, 0xb9, 0x28, 0xf0, 0xfb,
+};
+static const unsigned char kat2759_entropyinreseed[] = {
+ 0x44, 0x38, 0x1f, 0xbe, 0x2a, 0x5f, 0x25, 0x3a, 0xb0, 0xb3, 0x7c, 0xb7,
+ 0x98, 0x24, 0x01, 0xe2, 0xb6, 0x17, 0x44, 0x52, 0xea, 0x66, 0x67, 0x3c,
+ 0x12, 0x62, 0xd5, 0x98, 0x46, 0x05, 0xe5, 0xdb, 0x4f, 0xc2, 0x78, 0xe8,
+ 0x61, 0x10, 0xfd, 0xdd, 0xab, 0xeb, 0x6a, 0x39, 0x16, 0x86, 0x26, 0x74,
+};
+static const unsigned char kat2759_addinreseed[] = {
+ 0xe5, 0xd9, 0x4f, 0x80, 0x9a, 0x80, 0x5d, 0x04, 0x18, 0xc4, 0x4a, 0x84,
+ 0xbe, 0x93, 0xd9, 0x04, 0xf2, 0x4d, 0x0a, 0x57, 0xeb, 0xb4, 0x92, 0x4a,
+ 0xdc, 0x73, 0x59, 0x76, 0x1a, 0xb6, 0xd7, 0x3d, 0x5b, 0x17, 0x02, 0xde,
+ 0xa1, 0x7f, 0x8c, 0x01, 0x87, 0x7e, 0xe5, 0xf4, 0x4f, 0xb5, 0xc5, 0xfb,
+};
+static const unsigned char kat2759_addin0[] = {
+ 0x1d, 0x97, 0x1b, 0xf8, 0xb3, 0x64, 0x37, 0x93, 0x23, 0xd6, 0x97, 0x2b,
+ 0xf0, 0xdc, 0x86, 0x41, 0xa2, 0x29, 0x87, 0x59, 0x21, 0xb3, 0x97, 0x38,
+ 0xea, 0x8d, 0xad, 0xbd, 0xfa, 0x0a, 0xd3, 0x51, 0x18, 0x16, 0x9b, 0x4a,
+ 0x14, 0xb0, 0xca, 0xb6, 0x05, 0xbb, 0x18, 0xc5, 0x02, 0x65, 0xdb, 0x06,
+};
+static const unsigned char kat2759_addin1[] = {
+ 0xed, 0x85, 0x70, 0x59, 0x69, 0x09, 0x1f, 0x43, 0xe3, 0x23, 0xdb, 0xcc,
+ 0xac, 0xad, 0xf7, 0xa3, 0xec, 0x7d, 0x06, 0xd6, 0x9b, 0x2b, 0x50, 0x0e,
+ 0x33, 0x42, 0x95, 0xa6, 0x87, 0x4e, 0x41, 0x5d, 0xcf, 0x11, 0x5b, 0x99,
+ 0xe2, 0x2a, 0xba, 0xc7, 0x8b, 0x4a, 0xdf, 0xa1, 0x0c, 0x78, 0x06, 0x95,
+};
+static const unsigned char kat2759_retbits[] = {
+ 0x66, 0x3d, 0x9c, 0xa9, 0x85, 0x0d, 0x48, 0xdc, 0x4d, 0x95, 0x05, 0x05,
+ 0xb3, 0xcb, 0x2c, 0xc0, 0x68, 0x66, 0xd9, 0x33, 0xa8, 0xb8, 0x7b, 0xc5,
+ 0x89, 0x14, 0xf9, 0xb8, 0xe9, 0x59, 0xd4, 0x34, 0x06, 0x4b, 0xc6, 0x00,
+ 0x08, 0xb5, 0x7f, 0x7f, 0x19, 0x29, 0x63, 0x7a, 0x6f, 0xf7, 0x78, 0xbb,
+ 0x88, 0x28, 0xe5, 0x56, 0x31, 0xb4, 0xac, 0x28, 0x52, 0x22, 0x96, 0xd6,
+ 0x54, 0x96, 0x93, 0x4c,
+};
+static const struct drbg_kat_pr_false kat2759_t = {
+ 13, kat2759_entropyin, kat2759_nonce, kat2759_persstr,
+ kat2759_entropyinreseed, kat2759_addinreseed, kat2759_addin0,
+ kat2759_addin1, kat2759_retbits
+};
+static const struct drbg_kat kat2759 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2759_t
+};
+
+static const unsigned char kat2760_entropyin[] = {
+ 0x1f, 0xc3, 0x9d, 0x0e, 0x57, 0x52, 0x2b, 0x52, 0xd0, 0x50, 0x68, 0x17,
+ 0xc8, 0x24, 0x22, 0xcc, 0x7c, 0x15, 0xde, 0xc0, 0xd2, 0x75, 0xf8, 0xf9,
+ 0x4a, 0x41, 0x56, 0xc8, 0xec, 0x3b, 0x69, 0x8d, 0xbe, 0xde, 0x1e, 0x15,
+ 0x80, 0x4b, 0x82, 0x2d, 0xf6, 0x43, 0x3d, 0x0a, 0xfa, 0xdf, 0x1a, 0x50,
+};
+static const unsigned char kat2760_nonce[] = {0};
+static const unsigned char kat2760_persstr[] = {
+ 0xee, 0xbd, 0x8b, 0x07, 0x8b, 0x80, 0x04, 0xf1, 0x61, 0x7b, 0xff, 0x59,
+ 0x34, 0x17, 0x9f, 0x81, 0x46, 0x3f, 0x43, 0xfe, 0xe8, 0xd0, 0x43, 0x76,
+ 0x23, 0x45, 0xbc, 0x08, 0x4d, 0xa2, 0xb7, 0xe9, 0x70, 0x11, 0xca, 0xc6,
+ 0xf4, 0x88, 0xe3, 0x1d, 0xa5, 0xdc, 0x00, 0xa7, 0xaf, 0x5b, 0x97, 0xd7,
+};
+static const unsigned char kat2760_entropyinreseed[] = {
+ 0x60, 0xbf, 0xd2, 0x52, 0x9b, 0x39, 0x12, 0x04, 0xee, 0x81, 0x70, 0x55,
+ 0xc8, 0xba, 0xf5, 0xd4, 0xa4, 0x70, 0xf4, 0x33, 0x77, 0x39, 0x46, 0x40,
+ 0x14, 0x0e, 0xc1, 0x22, 0x65, 0x77, 0x87, 0x34, 0x4a, 0x9d, 0x5d, 0x2d,
+ 0x65, 0xd1, 0x12, 0xae, 0x20, 0x3f, 0xc7, 0x8e, 0x71, 0x09, 0x87, 0x2c,
+};
+static const unsigned char kat2760_addinreseed[] = {
+ 0x86, 0xff, 0x4f, 0x59, 0x42, 0xd3, 0x41, 0x17, 0x51, 0xef, 0x63, 0x75,
+ 0xf8, 0xc6, 0x50, 0x16, 0xd4, 0x3c, 0x13, 0x20, 0x07, 0xcc, 0x95, 0x83,
+ 0x5b, 0x10, 0x4b, 0x44, 0xf9, 0x73, 0x3d, 0xc5, 0xca, 0xae, 0x17, 0xd3,
+ 0xda, 0x66, 0x33, 0x69, 0xbf, 0x4f, 0xf8, 0x2a, 0xdb, 0x83, 0x04, 0x43,
+};
+static const unsigned char kat2760_addin0[] = {
+ 0x02, 0xa4, 0xbf, 0xd4, 0xa8, 0x25, 0xe4, 0xd8, 0x11, 0x77, 0x01, 0x27,
+ 0xc6, 0xf5, 0xa5, 0x68, 0xde, 0xff, 0x4d, 0x79, 0x89, 0x30, 0x0a, 0x0b,
+ 0xd2, 0x32, 0x20, 0xa5, 0x86, 0x31, 0xe0, 0x3e, 0x13, 0x8c, 0x55, 0xb5,
+ 0x65, 0x03, 0x2b, 0x8a, 0x7c, 0x6f, 0x3a, 0xbd, 0xd3, 0x4a, 0x0c, 0x30,
+};
+static const unsigned char kat2760_addin1[] = {
+ 0xf9, 0x77, 0x5f, 0x8f, 0xb1, 0xb7, 0x67, 0xc4, 0x63, 0x9e, 0x2c, 0x3f,
+ 0xe9, 0xf0, 0x82, 0x0e, 0x03, 0xe2, 0x87, 0x80, 0x64, 0x1e, 0xcb, 0xf8,
+ 0x32, 0x45, 0x1b, 0xae, 0xa5, 0xe1, 0xef, 0x83, 0xcf, 0x9e, 0x07, 0x8c,
+ 0xc3, 0x25, 0xb1, 0xfc, 0x7a, 0x8a, 0x14, 0xbf, 0x07, 0xcc, 0x4f, 0xf5,
+};
+static const unsigned char kat2760_retbits[] = {
+ 0xba, 0x47, 0x39, 0x79, 0xf2, 0x33, 0x58, 0xb9, 0x5f, 0xf4, 0x96, 0x10,
+ 0xa7, 0xb9, 0x19, 0x36, 0xb7, 0xd1, 0xda, 0x44, 0xbf, 0x88, 0x91, 0xcc,
+ 0x19, 0xac, 0x6c, 0xeb, 0x9f, 0x02, 0x41, 0xa8, 0xc3, 0x77, 0x1a, 0x2e,
+ 0xfb, 0x40, 0x32, 0x75, 0xbf, 0x59, 0x9a, 0xad, 0x30, 0xb9, 0xe4, 0x60,
+ 0x4e, 0x90, 0x72, 0x92, 0x41, 0x76, 0x38, 0x01, 0x38, 0x7a, 0xb2, 0x39,
+ 0xae, 0x54, 0x36, 0x25,
+};
+static const struct drbg_kat_pr_false kat2760_t = {
+ 14, kat2760_entropyin, kat2760_nonce, kat2760_persstr,
+ kat2760_entropyinreseed, kat2760_addinreseed, kat2760_addin0,
+ kat2760_addin1, kat2760_retbits
+};
+static const struct drbg_kat kat2760 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2760_t
+};
+
+static const unsigned char kat2761_entropyin[] = {
+ 0x3f, 0xa9, 0x04, 0x74, 0x70, 0x34, 0xcc, 0x30, 0x93, 0xde, 0xaa, 0xc4,
+ 0x97, 0xe3, 0xc1, 0x43, 0xfa, 0x44, 0x00, 0xac, 0xcf, 0xc5, 0x58, 0x85,
+ 0x71, 0x7f, 0xa9, 0x43, 0xf4, 0x3c, 0xba, 0xd1, 0xa8, 0x91, 0x68, 0xaa,
+ 0x76, 0x96, 0x1e, 0x15, 0x0e, 0x26, 0x49, 0xec, 0x1e, 0xd6, 0x73, 0x61,
+};
+static const unsigned char kat2761_nonce[] = {0};
+static const unsigned char kat2761_persstr[] = {0};
+static const unsigned char kat2761_entropyinreseed[] = {
+ 0xc6, 0x0c, 0x5b, 0x41, 0x5b, 0xad, 0x71, 0x54, 0x93, 0x48, 0x6b, 0x7a,
+ 0x12, 0x3b, 0xa6, 0xc0, 0x46, 0x08, 0x9e, 0x95, 0x49, 0xea, 0x8b, 0xb2,
+ 0x2a, 0x7a, 0xd4, 0x10, 0x8b, 0xec, 0x98, 0x11, 0x7f, 0x75, 0x1a, 0x2e,
+ 0x4c, 0xc2, 0x0b, 0x02, 0x51, 0x0d, 0x2a, 0x3d, 0x02, 0x60, 0x5b, 0x4d,
+};
+static const unsigned char kat2761_addinreseed[] = {0};
+static const unsigned char kat2761_addin0[] = {0};
+static const unsigned char kat2761_addin1[] = {0};
+static const unsigned char kat2761_retbits[] = {
+ 0xab, 0x2d, 0x70, 0x9d, 0xe8, 0x81, 0x16, 0x4b, 0x6c, 0x21, 0x49, 0xb2,
+ 0x1e, 0xae, 0x15, 0x17, 0xf8, 0x75, 0x61, 0x64, 0x9e, 0x0d, 0xd9, 0xca,
+ 0x5c, 0xe5, 0x51, 0xc5, 0xbd, 0x12, 0xfd, 0xf7, 0x09, 0x1e, 0x08, 0x1d,
+ 0x30, 0x71, 0x23, 0xae, 0xc5, 0xae, 0x7c, 0x30, 0xaf, 0xd2, 0xa6, 0x4c,
+ 0x8d, 0x13, 0x6e, 0xa0, 0x7f, 0x7e, 0xc5, 0xed, 0xb4, 0x40, 0x0b, 0x9a,
+ 0x64, 0x45, 0x66, 0x42,
+};
+static const struct drbg_kat_pr_false kat2761_t = {
+ 0, kat2761_entropyin, kat2761_nonce, kat2761_persstr,
+ kat2761_entropyinreseed, kat2761_addinreseed, kat2761_addin0,
+ kat2761_addin1, kat2761_retbits
+};
+static const struct drbg_kat kat2761 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2761_t
+};
+
+static const unsigned char kat2762_entropyin[] = {
+ 0x09, 0x12, 0xb0, 0xbd, 0xba, 0x55, 0xff, 0xab, 0x83, 0xd8, 0xe9, 0x32,
+ 0xb2, 0xc1, 0x43, 0x80, 0x03, 0x32, 0x4e, 0xcc, 0x2e, 0x59, 0x93, 0x3d,
+ 0x6e, 0x20, 0xbc, 0xca, 0x9b, 0x5c, 0x34, 0x2c, 0x07, 0x7e, 0x75, 0xf4,
+ 0x7e, 0x1d, 0x33, 0x59, 0xdc, 0x3c, 0xb6, 0x9b, 0xec, 0xe4, 0xa1, 0xc8,
+};
+static const unsigned char kat2762_nonce[] = {0};
+static const unsigned char kat2762_persstr[] = {0};
+static const unsigned char kat2762_entropyinreseed[] = {
+ 0x02, 0xe5, 0x03, 0xbd, 0x3f, 0x34, 0x85, 0x98, 0x8d, 0x5e, 0x0e, 0x6a,
+ 0xf4, 0x58, 0x9f, 0xff, 0xda, 0x79, 0x70, 0x93, 0xe6, 0xfa, 0x77, 0xa4,
+ 0xa8, 0x40, 0x21, 0x26, 0x9f, 0xb8, 0xe2, 0xb5, 0x8e, 0xf7, 0x0e, 0xe9,
+ 0xb6, 0x0f, 0x79, 0x45, 0x5b, 0xc9, 0xc3, 0x61, 0xb7, 0xe4, 0x30, 0x29,
+};
+static const unsigned char kat2762_addinreseed[] = {0};
+static const unsigned char kat2762_addin0[] = {0};
+static const unsigned char kat2762_addin1[] = {0};
+static const unsigned char kat2762_retbits[] = {
+ 0xb1, 0x6a, 0x7e, 0x86, 0xb1, 0x43, 0x6f, 0x13, 0xaa, 0xe4, 0x15, 0x76,
+ 0xdf, 0x30, 0x3a, 0xbd, 0x13, 0x1f, 0xd4, 0x58, 0x86, 0xf0, 0x2f, 0x48,
+ 0xef, 0x8e, 0x9f, 0x57, 0x06, 0x85, 0xff, 0xcd, 0x0d, 0xcc, 0x1f, 0x5f,
+ 0x1d, 0x3b, 0xed, 0xc2, 0xde, 0x37, 0x82, 0x29, 0x0f, 0x36, 0xbc, 0xfd,
+ 0x46, 0x84, 0xd7, 0x6e, 0x3e, 0x56, 0xa3, 0x2b, 0x75, 0x09, 0xf6, 0x7f,
+ 0x50, 0xdf, 0xb1, 0x4c,
+};
+static const struct drbg_kat_pr_false kat2762_t = {
+ 1, kat2762_entropyin, kat2762_nonce, kat2762_persstr,
+ kat2762_entropyinreseed, kat2762_addinreseed, kat2762_addin0,
+ kat2762_addin1, kat2762_retbits
+};
+static const struct drbg_kat kat2762 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2762_t
+};
+
+static const unsigned char kat2763_entropyin[] = {
+ 0xfd, 0x5e, 0xfc, 0xfa, 0x98, 0x60, 0x60, 0x50, 0x4d, 0xb9, 0x21, 0x09,
+ 0x56, 0x38, 0xcb, 0xf7, 0x0c, 0x78, 0xb7, 0xfd, 0xb1, 0xb3, 0x3d, 0x77,
+ 0xd4, 0xa5, 0x57, 0xef, 0x47, 0xa3, 0x65, 0x30, 0x85, 0x39, 0x84, 0x4b,
+ 0xe4, 0x16, 0x03, 0xe9, 0x7a, 0x78, 0xfa, 0x9f, 0x55, 0x04, 0xa4, 0x98,
+};
+static const unsigned char kat2763_nonce[] = {0};
+static const unsigned char kat2763_persstr[] = {0};
+static const unsigned char kat2763_entropyinreseed[] = {
+ 0xc9, 0x94, 0x89, 0x73, 0x87, 0x67, 0xca, 0x8b, 0x22, 0x02, 0x2e, 0x8f,
+ 0xf1, 0xaa, 0x5a, 0xa6, 0x28, 0x9f, 0x2a, 0x82, 0x2e, 0x4a, 0x8c, 0x93,
+ 0x37, 0xed, 0x39, 0x3d, 0xb4, 0xff, 0x58, 0x70, 0xb9, 0x95, 0x2a, 0xf5,
+ 0x3e, 0x88, 0xbd, 0xae, 0xdb, 0xbc, 0x00, 0x26, 0x25, 0x6f, 0x9f, 0x6d,
+};
+static const unsigned char kat2763_addinreseed[] = {0};
+static const unsigned char kat2763_addin0[] = {0};
+static const unsigned char kat2763_addin1[] = {0};
+static const unsigned char kat2763_retbits[] = {
+ 0x60, 0x7b, 0x45, 0x5e, 0xb3, 0x01, 0x93, 0x40, 0x02, 0x51, 0x61, 0x2d,
+ 0x1f, 0x96, 0x7a, 0xfb, 0x7a, 0x7d, 0x0f, 0x4e, 0xee, 0xfd, 0x69, 0x04,
+ 0x11, 0xb3, 0x2b, 0x56, 0x0b, 0xed, 0x69, 0xad, 0x74, 0x56, 0x90, 0xf9,
+ 0x8f, 0xa5, 0x8f, 0xb0, 0x99, 0x8c, 0x06, 0x3e, 0x52, 0x6d, 0x12, 0x4c,
+ 0x40, 0x35, 0xf5, 0x65, 0xee, 0x91, 0x33, 0xa8, 0x61, 0x84, 0xd6, 0xc0,
+ 0x13, 0x50, 0xa5, 0xd9,
+};
+static const struct drbg_kat_pr_false kat2763_t = {
+ 2, kat2763_entropyin, kat2763_nonce, kat2763_persstr,
+ kat2763_entropyinreseed, kat2763_addinreseed, kat2763_addin0,
+ kat2763_addin1, kat2763_retbits
+};
+static const struct drbg_kat kat2763 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2763_t
+};
+
+static const unsigned char kat2764_entropyin[] = {
+ 0xfd, 0xdf, 0x8a, 0x15, 0x12, 0x66, 0xa5, 0x50, 0xee, 0x2c, 0x72, 0x8f,
+ 0xa2, 0x5d, 0xc5, 0x92, 0xc6, 0xd5, 0x5c, 0x64, 0x4a, 0xb0, 0xd3, 0xcd,
+ 0x70, 0x47, 0x24, 0x8b, 0x31, 0xe2, 0xdf, 0xad, 0xe4, 0xac, 0xaa, 0x8c,
+ 0x40, 0xfa, 0x2c, 0xc5, 0xb7, 0x14, 0xbe, 0xd1, 0x77, 0x7b, 0x3d, 0x3d,
+};
+static const unsigned char kat2764_nonce[] = {0};
+static const unsigned char kat2764_persstr[] = {0};
+static const unsigned char kat2764_entropyinreseed[] = {
+ 0x50, 0x81, 0x8e, 0x85, 0xd8, 0x56, 0x05, 0x9a, 0x8c, 0xe2, 0x9e, 0xc9,
+ 0xc8, 0xc0, 0xb8, 0x54, 0xce, 0x04, 0x19, 0x9d, 0x12, 0x81, 0x65, 0x35,
+ 0x5d, 0xc9, 0x9c, 0x25, 0x80, 0x47, 0xce, 0x73, 0x3a, 0x32, 0x4e, 0xad,
+ 0x4d, 0x33, 0x4f, 0x07, 0xaa, 0x4c, 0xd3, 0x3e, 0x2f, 0xb5, 0xf2, 0x77,
+};
+static const unsigned char kat2764_addinreseed[] = {0};
+static const unsigned char kat2764_addin0[] = {0};
+static const unsigned char kat2764_addin1[] = {0};
+static const unsigned char kat2764_retbits[] = {
+ 0x3a, 0x4f, 0xe0, 0x79, 0x62, 0xac, 0x26, 0x9b, 0x4f, 0x40, 0xcf, 0x5e,
+ 0xc0, 0x21, 0x50, 0xc1, 0x5b, 0x07, 0x6e, 0x8d, 0xff, 0x34, 0x78, 0xdf,
+ 0xbe, 0xc9, 0xbc, 0xc7, 0x04, 0x9e, 0xb8, 0x46, 0xb8, 0x6b, 0x2e, 0x0d,
+ 0xbd, 0x2c, 0x1e, 0x4c, 0x38, 0x7b, 0x77, 0xc2, 0x19, 0x6a, 0xe1, 0xdf,
+ 0x79, 0x21, 0xef, 0x66, 0x55, 0x70, 0x0d, 0x9c, 0xff, 0xcd, 0x93, 0xdf,
+ 0x24, 0xee, 0xe4, 0xd0,
+};
+static const struct drbg_kat_pr_false kat2764_t = {
+ 3, kat2764_entropyin, kat2764_nonce, kat2764_persstr,
+ kat2764_entropyinreseed, kat2764_addinreseed, kat2764_addin0,
+ kat2764_addin1, kat2764_retbits
+};
+static const struct drbg_kat kat2764 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2764_t
+};
+
+static const unsigned char kat2765_entropyin[] = {
+ 0x9f, 0x9a, 0x52, 0x02, 0xa5, 0x42, 0x52, 0x5b, 0x10, 0x7b, 0xbb, 0xf2,
+ 0xad, 0x34, 0xed, 0x1f, 0x9a, 0x3d, 0x6a, 0x27, 0xf2, 0x06, 0x69, 0x5f,
+ 0x8d, 0xef, 0x3c, 0x21, 0x90, 0xb0, 0x37, 0xbf, 0x33, 0x2c, 0xe3, 0xe2,
+ 0xdf, 0xd6, 0x5c, 0xcf, 0x74, 0xef, 0xae, 0xbd, 0x51, 0x8f, 0xd3, 0x45,
+};
+static const unsigned char kat2765_nonce[] = {0};
+static const unsigned char kat2765_persstr[] = {0};
+static const unsigned char kat2765_entropyinreseed[] = {
+ 0x7e, 0x96, 0x2c, 0xc7, 0xca, 0xb2, 0x31, 0xcf, 0x76, 0xc2, 0x70, 0x22,
+ 0xc0, 0x1a, 0x79, 0x6b, 0x76, 0xcd, 0x97, 0x74, 0x81, 0x73, 0x55, 0x33,
+ 0x14, 0xfd, 0xb5, 0xbb, 0x67, 0xcf, 0x56, 0x34, 0x6e, 0x35, 0xbb, 0xbe,
+ 0x47, 0xf3, 0x6f, 0x98, 0x9a, 0xa1, 0x60, 0x74, 0x97, 0x5b, 0x6b, 0x5e,
+};
+static const unsigned char kat2765_addinreseed[] = {0};
+static const unsigned char kat2765_addin0[] = {0};
+static const unsigned char kat2765_addin1[] = {0};
+static const unsigned char kat2765_retbits[] = {
+ 0x41, 0x62, 0xfb, 0x10, 0xe2, 0x5b, 0x37, 0x54, 0xbd, 0xfb, 0x91, 0x3a,
+ 0x9e, 0xdd, 0x01, 0x56, 0x7e, 0x89, 0x7b, 0x2a, 0x1b, 0x37, 0xae, 0xa8,
+ 0xcb, 0x7a, 0xf0, 0x69, 0xf3, 0x33, 0xa5, 0x2a, 0xe1, 0x5b, 0xd2, 0xc8,
+ 0x97, 0x16, 0x0d, 0xb0, 0x34, 0xbf, 0xb5, 0x4d, 0x53, 0x48, 0x1e, 0xac,
+ 0x11, 0x51, 0x06, 0x4d, 0xaa, 0x3c, 0xe8, 0x85, 0x79, 0x83, 0x8e, 0xfb,
+ 0x1d, 0x36, 0xe0, 0x77,
+};
+static const struct drbg_kat_pr_false kat2765_t = {
+ 4, kat2765_entropyin, kat2765_nonce, kat2765_persstr,
+ kat2765_entropyinreseed, kat2765_addinreseed, kat2765_addin0,
+ kat2765_addin1, kat2765_retbits
+};
+static const struct drbg_kat kat2765 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2765_t
+};
+
+static const unsigned char kat2766_entropyin[] = {
+ 0x8f, 0x5f, 0xfa, 0x82, 0x01, 0x03, 0xb8, 0x54, 0x5c, 0x48, 0x12, 0xae,
+ 0x70, 0xcd, 0x77, 0xf5, 0x39, 0x17, 0xda, 0xf9, 0x7e, 0x79, 0xc1, 0x96,
+ 0x14, 0x92, 0xee, 0x1f, 0x6a, 0x72, 0xd6, 0x7f, 0x4f, 0x9c, 0x4b, 0xf8,
+ 0x48, 0xa3, 0xa0, 0xb0, 0x94, 0x18, 0x2a, 0xfd, 0xae, 0xb8, 0x3e, 0x78,
+};
+static const unsigned char kat2766_nonce[] = {0};
+static const unsigned char kat2766_persstr[] = {0};
+static const unsigned char kat2766_entropyinreseed[] = {
+ 0xfb, 0xb0, 0x8a, 0x78, 0xba, 0xb9, 0x92, 0xfc, 0x76, 0xa5, 0x70, 0x2c,
+ 0x20, 0xac, 0x27, 0x65, 0xa0, 0x90, 0xd2, 0xd4, 0xb8, 0xbe, 0x5a, 0x31,
+ 0x29, 0x12, 0xbb, 0x66, 0x57, 0x6b, 0xd1, 0x52, 0xe7, 0x06, 0xbf, 0x80,
+ 0x80, 0xd4, 0xf2, 0x39, 0x68, 0x0d, 0xf9, 0x1a, 0xc2, 0x20, 0x16, 0x08,
+};
+static const unsigned char kat2766_addinreseed[] = {0};
+static const unsigned char kat2766_addin0[] = {0};
+static const unsigned char kat2766_addin1[] = {0};
+static const unsigned char kat2766_retbits[] = {
+ 0x81, 0x1e, 0xc7, 0x25, 0xc9, 0xa7, 0xb3, 0xab, 0xff, 0x96, 0x2b, 0xf7,
+ 0xc2, 0x8b, 0x8f, 0xb8, 0x3b, 0xbf, 0x39, 0x4e, 0x10, 0x0a, 0x56, 0xa1,
+ 0xe4, 0x02, 0x81, 0xe3, 0x72, 0x21, 0xe8, 0xb0, 0x36, 0x61, 0x56, 0x7c,
+ 0xdb, 0x2e, 0xc5, 0x7b, 0x95, 0xbd, 0xd5, 0xf4, 0xce, 0x89, 0xad, 0xae,
+ 0x3d, 0x43, 0xe3, 0xba, 0x4a, 0xcc, 0x46, 0xfa, 0xab, 0x26, 0xa3, 0xd5,
+ 0xc7, 0xa9, 0x73, 0xa8,
+};
+static const struct drbg_kat_pr_false kat2766_t = {
+ 5, kat2766_entropyin, kat2766_nonce, kat2766_persstr,
+ kat2766_entropyinreseed, kat2766_addinreseed, kat2766_addin0,
+ kat2766_addin1, kat2766_retbits
+};
+static const struct drbg_kat kat2766 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2766_t
+};
+
+static const unsigned char kat2767_entropyin[] = {
+ 0x98, 0x1d, 0x97, 0xc7, 0x75, 0x0e, 0x5b, 0x75, 0x8d, 0x49, 0x0a, 0x76,
+ 0x8d, 0xc4, 0x49, 0xdd, 0x6e, 0x12, 0x21, 0x90, 0x3a, 0x70, 0x65, 0xac,
+ 0xb2, 0x9d, 0xd2, 0x4d, 0x63, 0xf5, 0x64, 0x42, 0xe8, 0x9d, 0xee, 0x90,
+ 0xa6, 0xf4, 0x76, 0xca, 0xd8, 0xe8, 0x2a, 0x12, 0x9b, 0x5e, 0x89, 0x4a,
+};
+static const unsigned char kat2767_nonce[] = {0};
+static const unsigned char kat2767_persstr[] = {0};
+static const unsigned char kat2767_entropyinreseed[] = {
+ 0x62, 0x39, 0x7c, 0x5d, 0x20, 0x3a, 0xfe, 0x8d, 0x29, 0xa2, 0x04, 0x4f,
+ 0x21, 0xdd, 0x8c, 0x10, 0x2b, 0xb8, 0x7d, 0x36, 0xfd, 0x67, 0xd5, 0xc3,
+ 0xc2, 0x2a, 0xd6, 0x11, 0x6f, 0xb3, 0xf3, 0xf8, 0x62, 0xd3, 0xca, 0xcf,
+ 0xe1, 0x8b, 0x85, 0x1e, 0x81, 0xb5, 0xbb, 0x3e, 0xb0, 0x74, 0xf9, 0x70,
+};
+static const unsigned char kat2767_addinreseed[] = {0};
+static const unsigned char kat2767_addin0[] = {0};
+static const unsigned char kat2767_addin1[] = {0};
+static const unsigned char kat2767_retbits[] = {
+ 0x0a, 0x58, 0xda, 0x0e, 0x42, 0xac, 0x11, 0x86, 0xef, 0x8e, 0x1c, 0xe6,
+ 0xf8, 0x51, 0xe2, 0x30, 0xed, 0xfb, 0x91, 0xae, 0x3e, 0xc0, 0x9f, 0xc3,
+ 0x74, 0x95, 0x54, 0x45, 0xaf, 0xc8, 0xfc, 0x59, 0x71, 0x3d, 0x05, 0x51,
+ 0x80, 0xbc, 0xd5, 0x6c, 0x3c, 0xa5, 0x1b, 0x71, 0xeb, 0x6e, 0xda, 0xf4,
+ 0x3e, 0xea, 0xd8, 0x09, 0x30, 0x36, 0x0d, 0x09, 0x30, 0x0e, 0x16, 0xb5,
+ 0x51, 0xc3, 0x01, 0x5d,
+};
+static const struct drbg_kat_pr_false kat2767_t = {
+ 6, kat2767_entropyin, kat2767_nonce, kat2767_persstr,
+ kat2767_entropyinreseed, kat2767_addinreseed, kat2767_addin0,
+ kat2767_addin1, kat2767_retbits
+};
+static const struct drbg_kat kat2767 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2767_t
+};
+
+static const unsigned char kat2768_entropyin[] = {
+ 0x31, 0xd5, 0x0c, 0xe8, 0xe9, 0x25, 0xa6, 0x83, 0x8f, 0x08, 0x34, 0xd7,
+ 0x5a, 0xd6, 0x1c, 0x21, 0xd2, 0x9d, 0xb4, 0x8a, 0x83, 0x39, 0xf1, 0x1a,
+ 0xdb, 0x2a, 0x29, 0xde, 0xb4, 0x60, 0xd2, 0xa3, 0xf6, 0xad, 0x86, 0xa2,
+ 0x7b, 0xb0, 0x08, 0xc8, 0x59, 0x25, 0xc5, 0x40, 0xfc, 0x9e, 0x33, 0x98,
+};
+static const unsigned char kat2768_nonce[] = {0};
+static const unsigned char kat2768_persstr[] = {0};
+static const unsigned char kat2768_entropyinreseed[] = {
+ 0x52, 0x0d, 0xa2, 0x53, 0xda, 0xaf, 0x68, 0x14, 0x09, 0xa8, 0x2a, 0xaa,
+ 0x2f, 0xe1, 0x6d, 0x6b, 0x10, 0xda, 0xc5, 0x64, 0x9d, 0xaf, 0x4f, 0x1d,
+ 0xe6, 0x73, 0xd1, 0xed, 0x7c, 0x6a, 0x6b, 0x8e, 0x45, 0xd0, 0x77, 0x52,
+ 0xf8, 0x17, 0x75, 0xc9, 0xd0, 0x03, 0x45, 0x45, 0xd6, 0x53, 0x5a, 0x8e,
+};
+static const unsigned char kat2768_addinreseed[] = {0};
+static const unsigned char kat2768_addin0[] = {0};
+static const unsigned char kat2768_addin1[] = {0};
+static const unsigned char kat2768_retbits[] = {
+ 0x72, 0x12, 0xda, 0x37, 0x07, 0xf4, 0xde, 0xa6, 0x82, 0x8a, 0x1e, 0x7e,
+ 0x84, 0xee, 0x7b, 0xba, 0x2b, 0x88, 0x16, 0xc1, 0x11, 0xa7, 0xf6, 0x64,
+ 0x3d, 0x49, 0x2b, 0xcf, 0xf5, 0xf4, 0xba, 0x5b, 0x10, 0xaf, 0x6b, 0x25,
+ 0xed, 0xc5, 0x67, 0xa8, 0x28, 0x0d, 0xad, 0x55, 0x7c, 0x42, 0x90, 0x85,
+ 0xf5, 0xbc, 0xe7, 0x6e, 0xcb, 0x8f, 0x7d, 0xef, 0x37, 0x6e, 0x85, 0xea,
+ 0x99, 0x9e, 0x81, 0x5b,
+};
+static const struct drbg_kat_pr_false kat2768_t = {
+ 7, kat2768_entropyin, kat2768_nonce, kat2768_persstr,
+ kat2768_entropyinreseed, kat2768_addinreseed, kat2768_addin0,
+ kat2768_addin1, kat2768_retbits
+};
+static const struct drbg_kat kat2768 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2768_t
+};
+
+static const unsigned char kat2769_entropyin[] = {
+ 0x10, 0x52, 0xe5, 0x2b, 0xcf, 0xfa, 0x8d, 0x9b, 0xcf, 0x24, 0x16, 0x62,
+ 0xaf, 0x4b, 0x28, 0x1c, 0x81, 0xdb, 0x5b, 0xaa, 0x8a, 0x49, 0x9c, 0x1a,
+ 0x11, 0x32, 0x55, 0xeb, 0xed, 0xaa, 0x29, 0x53, 0x88, 0x8d, 0x39, 0xc8,
+ 0x0e, 0x50, 0xcf, 0xb4, 0x77, 0xe8, 0xa2, 0xae, 0xb1, 0xb7, 0xe4, 0x32,
+};
+static const unsigned char kat2769_nonce[] = {0};
+static const unsigned char kat2769_persstr[] = {0};
+static const unsigned char kat2769_entropyinreseed[] = {
+ 0x23, 0xe2, 0xd6, 0xcc, 0x4e, 0xa0, 0x30, 0xe3, 0x34, 0xe1, 0xa1, 0xde,
+ 0x4f, 0xe7, 0x1e, 0x10, 0xed, 0x0a, 0xff, 0xe7, 0xac, 0xa2, 0xb4, 0x2e,
+ 0x97, 0xb9, 0x14, 0x99, 0x36, 0x91, 0x0b, 0x93, 0xd9, 0x50, 0x70, 0x60,
+ 0x83, 0xad, 0x26, 0x1d, 0x51, 0xa1, 0x7b, 0xdf, 0xcc, 0x7a, 0xac, 0x23,
+};
+static const unsigned char kat2769_addinreseed[] = {0};
+static const unsigned char kat2769_addin0[] = {0};
+static const unsigned char kat2769_addin1[] = {0};
+static const unsigned char kat2769_retbits[] = {
+ 0xec, 0x6f, 0x01, 0xe3, 0x9f, 0x26, 0xfa, 0x63, 0xd4, 0x38, 0xf1, 0xaa,
+ 0x82, 0x56, 0x4d, 0x7e, 0x0b, 0xfc, 0xd0, 0xc3, 0xc4, 0x67, 0x1e, 0xf1,
+ 0x07, 0x70, 0x4c, 0xfb, 0x6e, 0xc3, 0x2a, 0xf5, 0x25, 0x9c, 0xe1, 0x4f,
+ 0x36, 0x04, 0x93, 0x88, 0x89, 0x1d, 0xd2, 0xd2, 0x36, 0xb2, 0x07, 0x3d,
+ 0xea, 0xce, 0x8e, 0x55, 0xc3, 0xcf, 0x4b, 0x98, 0x49, 0x0a, 0x6f, 0xa4,
+ 0x34, 0x2e, 0x00, 0x4e,
+};
+static const struct drbg_kat_pr_false kat2769_t = {
+ 8, kat2769_entropyin, kat2769_nonce, kat2769_persstr,
+ kat2769_entropyinreseed, kat2769_addinreseed, kat2769_addin0,
+ kat2769_addin1, kat2769_retbits
+};
+static const struct drbg_kat kat2769 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2769_t
+};
+
+static const unsigned char kat2770_entropyin[] = {
+ 0xfc, 0x5b, 0xdb, 0x09, 0x53, 0xcb, 0x88, 0xe2, 0x40, 0xbc, 0xa5, 0x83,
+ 0xeb, 0x79, 0xa3, 0x9d, 0x61, 0xe7, 0x65, 0x68, 0x34, 0x49, 0xe1, 0x5e,
+ 0x7e, 0x6c, 0x3f, 0xe4, 0xf2, 0xe4, 0x6f, 0x02, 0x3d, 0x7c, 0x27, 0xf3,
+ 0x5c, 0xa9, 0xc4, 0x28, 0x8d, 0x2f, 0x1a, 0xf9, 0xa1, 0x16, 0x99, 0xcc,
+};
+static const unsigned char kat2770_nonce[] = {0};
+static const unsigned char kat2770_persstr[] = {0};
+static const unsigned char kat2770_entropyinreseed[] = {
+ 0x48, 0xf5, 0xd6, 0x52, 0x15, 0x8a, 0xa1, 0xb6, 0x31, 0x81, 0x65, 0x4a,
+ 0xae, 0x4f, 0xa3, 0x5e, 0x10, 0x78, 0x66, 0xb2, 0x74, 0x81, 0x47, 0xd6,
+ 0x66, 0x14, 0x1a, 0x60, 0x28, 0x71, 0x19, 0xef, 0x7e, 0xdf, 0x19, 0xc2,
+ 0xee, 0x52, 0x7a, 0x96, 0x10, 0xaf, 0x88, 0x54, 0x00, 0xe3, 0xf8, 0x3c,
+};
+static const unsigned char kat2770_addinreseed[] = {0};
+static const unsigned char kat2770_addin0[] = {0};
+static const unsigned char kat2770_addin1[] = {0};
+static const unsigned char kat2770_retbits[] = {
+ 0x2c, 0x03, 0x10, 0x6b, 0xa0, 0xd3, 0x9d, 0x44, 0xff, 0x6a, 0x45, 0xc3,
+ 0x12, 0xc5, 0x25, 0xe9, 0x9f, 0x1f, 0x96, 0x68, 0x0f, 0xac, 0xe8, 0x3e,
+ 0x12, 0x75, 0x5e, 0xc6, 0x0c, 0x22, 0x89, 0x55, 0x75, 0xa0, 0x98, 0x0b,
+ 0x33, 0x89, 0x67, 0xe6, 0xca, 0x39, 0x0a, 0xbf, 0x8b, 0xc3, 0xd4, 0xef,
+ 0xe2, 0x4d, 0x2f, 0xb7, 0xea, 0x83, 0xc2, 0x91, 0x9f, 0x98, 0x6e, 0xc7,
+ 0xeb, 0xfc, 0xe5, 0x2e,
+};
+static const struct drbg_kat_pr_false kat2770_t = {
+ 9, kat2770_entropyin, kat2770_nonce, kat2770_persstr,
+ kat2770_entropyinreseed, kat2770_addinreseed, kat2770_addin0,
+ kat2770_addin1, kat2770_retbits
+};
+static const struct drbg_kat kat2770 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2770_t
+};
+
+static const unsigned char kat2771_entropyin[] = {
+ 0xae, 0x2c, 0x5d, 0x1a, 0x8d, 0x8b, 0x81, 0x3f, 0x40, 0xd3, 0xe2, 0x65,
+ 0x63, 0xfe, 0xc0, 0xe4, 0x06, 0x20, 0x93, 0xdd, 0xb6, 0x3d, 0xf4, 0xbe,
+ 0xe7, 0xd1, 0x02, 0xc1, 0x3c, 0x10, 0x26, 0xf3, 0xcd, 0x0c, 0x81, 0x8e,
+ 0x2a, 0xf5, 0xc7, 0xdc, 0x3d, 0x3e, 0x3e, 0x1f, 0xa6, 0xd5, 0x66, 0xc2,
+};
+static const unsigned char kat2771_nonce[] = {0};
+static const unsigned char kat2771_persstr[] = {0};
+static const unsigned char kat2771_entropyinreseed[] = {
+ 0x6d, 0x8d, 0x60, 0xef, 0x2f, 0x87, 0xf9, 0x41, 0xb1, 0x00, 0xf3, 0xc1,
+ 0x21, 0x4a, 0x75, 0x1b, 0x23, 0xcf, 0x34, 0x1b, 0x30, 0xf7, 0xf7, 0xeb,
+ 0xb1, 0x83, 0x05, 0x0f, 0xd0, 0xaa, 0x5d, 0x22, 0x2e, 0x87, 0x62, 0x41,
+ 0x84, 0x02, 0x02, 0xa9, 0x33, 0x7a, 0xff, 0x17, 0xd7, 0x02, 0x68, 0x2e,
+};
+static const unsigned char kat2771_addinreseed[] = {0};
+static const unsigned char kat2771_addin0[] = {0};
+static const unsigned char kat2771_addin1[] = {0};
+static const unsigned char kat2771_retbits[] = {
+ 0xb7, 0xb9, 0xf0, 0xbd, 0x79, 0x54, 0xc0, 0xe0, 0x45, 0xbe, 0xd8, 0x6c,
+ 0x3c, 0x2e, 0x23, 0xce, 0x3a, 0xf1, 0x7d, 0xcc, 0x85, 0x5e, 0xc5, 0xaa,
+ 0x4f, 0x04, 0xf0, 0x92, 0x93, 0x51, 0xae, 0x66, 0x98, 0xbe, 0xa4, 0xf2,
+ 0x5e, 0xcf, 0xf4, 0xf5, 0x2c, 0x2f, 0x6d, 0x75, 0x8e, 0xeb, 0x94, 0x12,
+ 0xe5, 0x83, 0x91, 0x4d, 0x33, 0xe9, 0x14, 0x74, 0x4d, 0x49, 0xda, 0xfb,
+ 0x27, 0x40, 0x01, 0x0a,
+};
+static const struct drbg_kat_pr_false kat2771_t = {
+ 10, kat2771_entropyin, kat2771_nonce, kat2771_persstr,
+ kat2771_entropyinreseed, kat2771_addinreseed, kat2771_addin0,
+ kat2771_addin1, kat2771_retbits
+};
+static const struct drbg_kat kat2771 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2771_t
+};
+
+static const unsigned char kat2772_entropyin[] = {
+ 0x73, 0x06, 0x11, 0x58, 0x0f, 0xe7, 0xa0, 0x8d, 0xa6, 0x79, 0xf8, 0x64,
+ 0x65, 0x4f, 0xde, 0x5a, 0x8d, 0x56, 0x4d, 0x68, 0xdd, 0x41, 0xd2, 0xa1,
+ 0x88, 0xd7, 0x90, 0x02, 0xf8, 0x93, 0x95, 0x43, 0xfb, 0x7d, 0xfa, 0xc8,
+ 0xa6, 0x56, 0x76, 0x0f, 0xa0, 0xf6, 0x6d, 0xcc, 0x21, 0x16, 0x17, 0x6c,
+};
+static const unsigned char kat2772_nonce[] = {0};
+static const unsigned char kat2772_persstr[] = {0};
+static const unsigned char kat2772_entropyinreseed[] = {
+ 0xda, 0xc5, 0xd0, 0xbb, 0x45, 0x26, 0x21, 0x53, 0xd7, 0x1c, 0xd3, 0x30,
+ 0xdf, 0xf5, 0x22, 0x44, 0x68, 0x16, 0xad, 0x5e, 0x28, 0xe3, 0x86, 0x66,
+ 0x26, 0xf6, 0xe7, 0xfe, 0x5b, 0x6d, 0x31, 0x70, 0xd9, 0x44, 0x2e, 0x72,
+ 0x61, 0xa5, 0xce, 0x02, 0x99, 0x15, 0x5c, 0xae, 0x74, 0xea, 0x5e, 0x08,
+};
+static const unsigned char kat2772_addinreseed[] = {0};
+static const unsigned char kat2772_addin0[] = {0};
+static const unsigned char kat2772_addin1[] = {0};
+static const unsigned char kat2772_retbits[] = {
+ 0x47, 0x02, 0x12, 0xb1, 0x90, 0x0f, 0xb4, 0xb1, 0xf4, 0x9c, 0xea, 0xf8,
+ 0xc0, 0x33, 0x3f, 0xaf, 0xf0, 0xd2, 0xa7, 0x9f, 0xd5, 0xe9, 0x13, 0xd5,
+ 0x2d, 0x66, 0x97, 0x0a, 0xb3, 0x1f, 0x64, 0xc2, 0x97, 0xb5, 0x5e, 0xe8,
+ 0x12, 0x82, 0x6c, 0xe7, 0xad, 0x35, 0x8f, 0xe5, 0x5e, 0x48, 0xb8, 0x96,
+ 0xdc, 0x44, 0x42, 0x87, 0x7a, 0x05, 0xc2, 0x52, 0x6d, 0xa0, 0xe5, 0x18,
+ 0x8f, 0x6f, 0xd5, 0xee,
+};
+static const struct drbg_kat_pr_false kat2772_t = {
+ 11, kat2772_entropyin, kat2772_nonce, kat2772_persstr,
+ kat2772_entropyinreseed, kat2772_addinreseed, kat2772_addin0,
+ kat2772_addin1, kat2772_retbits
+};
+static const struct drbg_kat kat2772 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2772_t
+};
+
+static const unsigned char kat2773_entropyin[] = {
+ 0xcd, 0xd4, 0x63, 0x97, 0x7b, 0xc8, 0x8b, 0x0e, 0x66, 0x0f, 0x3c, 0xec,
+ 0xe4, 0xfc, 0xf4, 0x09, 0x7f, 0xc7, 0x9f, 0x1e, 0x20, 0xdb, 0xa9, 0x6c,
+ 0x81, 0x96, 0x44, 0xc3, 0x70, 0x04, 0x3a, 0xc3, 0x9d, 0x49, 0x97, 0xea,
+ 0x9f, 0x63, 0x49, 0x69, 0xa8, 0x0e, 0x6d, 0xa6, 0xd9, 0xdd, 0x9e, 0x9a,
+};
+static const unsigned char kat2773_nonce[] = {0};
+static const unsigned char kat2773_persstr[] = {0};
+static const unsigned char kat2773_entropyinreseed[] = {
+ 0xc7, 0xdb, 0xc9, 0x7c, 0x20, 0x90, 0x64, 0xa4, 0xa6, 0x63, 0xc8, 0x65,
+ 0xe9, 0xd4, 0xaf, 0x0d, 0xa3, 0xf7, 0x09, 0xb6, 0xc1, 0x7f, 0xdd, 0x66,
+ 0xa9, 0x69, 0x05, 0x48, 0x56, 0xaa, 0xdf, 0xaa, 0xa1, 0xb9, 0x73, 0x61,
+ 0xd5, 0xa6, 0xd2, 0xed, 0x8e, 0x68, 0xcc, 0xb2, 0x03, 0xab, 0xa8, 0xc9,
+};
+static const unsigned char kat2773_addinreseed[] = {0};
+static const unsigned char kat2773_addin0[] = {0};
+static const unsigned char kat2773_addin1[] = {0};
+static const unsigned char kat2773_retbits[] = {
+ 0x82, 0x62, 0xe7, 0x97, 0x52, 0xc9, 0xe3, 0x03, 0x6e, 0x00, 0xf3, 0x6c,
+ 0x5b, 0x3d, 0x06, 0xee, 0x49, 0x55, 0x5c, 0x59, 0x91, 0x93, 0xac, 0x35,
+ 0xae, 0x2a, 0x3a, 0x2a, 0x6b, 0xd0, 0x7c, 0x19, 0x67, 0xe7, 0xc0, 0xfb,
+ 0x4e, 0xbc, 0xb1, 0x4e, 0x42, 0x2f, 0x66, 0x2f, 0xe9, 0xce, 0xf0, 0x8b,
+ 0xe7, 0x46, 0xbf, 0x27, 0xf3, 0xce, 0xab, 0xb7, 0xff, 0x3d, 0x71, 0x68,
+ 0xeb, 0xa0, 0x47, 0x1b,
+};
+static const struct drbg_kat_pr_false kat2773_t = {
+ 12, kat2773_entropyin, kat2773_nonce, kat2773_persstr,
+ kat2773_entropyinreseed, kat2773_addinreseed, kat2773_addin0,
+ kat2773_addin1, kat2773_retbits
+};
+static const struct drbg_kat kat2773 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2773_t
+};
+
+static const unsigned char kat2774_entropyin[] = {
+ 0xf4, 0x7c, 0xe5, 0x66, 0x3e, 0xa7, 0x2c, 0xe3, 0xf4, 0x2b, 0x00, 0x83,
+ 0x8b, 0x0e, 0x8e, 0x90, 0xad, 0xf6, 0x74, 0x6d, 0x35, 0x5b, 0x5c, 0xdb,
+ 0xbf, 0xc0, 0xbb, 0x80, 0xe3, 0x35, 0xb0, 0x49, 0xed, 0x28, 0x01, 0x1c,
+ 0x7c, 0x0b, 0xe7, 0xac, 0xbe, 0xde, 0x87, 0xb5, 0x71, 0x92, 0xb1, 0xc3,
+};
+static const unsigned char kat2774_nonce[] = {0};
+static const unsigned char kat2774_persstr[] = {0};
+static const unsigned char kat2774_entropyinreseed[] = {
+ 0x61, 0xcf, 0x94, 0x47, 0xc7, 0xc0, 0x24, 0xe0, 0xa8, 0xee, 0x04, 0x63,
+ 0x55, 0xe3, 0x92, 0x43, 0x73, 0xe7, 0x9f, 0xea, 0x7e, 0xfe, 0x1c, 0x3c,
+ 0x8b, 0x1f, 0x7b, 0xf3, 0xae, 0xba, 0xe2, 0x46, 0x88, 0x79, 0x39, 0x89,
+ 0x43, 0x38, 0xe3, 0x04, 0xe5, 0x3d, 0x01, 0x41, 0xb4, 0xc2, 0x2c, 0x87,
+};
+static const unsigned char kat2774_addinreseed[] = {0};
+static const unsigned char kat2774_addin0[] = {0};
+static const unsigned char kat2774_addin1[] = {0};
+static const unsigned char kat2774_retbits[] = {
+ 0xd1, 0xac, 0x84, 0x90, 0x3a, 0x9b, 0xbd, 0xcd, 0xca, 0x45, 0xbb, 0x7c,
+ 0xee, 0x7a, 0x5f, 0x49, 0xe1, 0x4a, 0x68, 0xf0, 0xd8, 0x46, 0x7d, 0xa6,
+ 0x8a, 0xdc, 0xc2, 0x2c, 0x9d, 0x0b, 0xb0, 0x21, 0x18, 0xb3, 0xbb, 0x7f,
+ 0x2d, 0x4e, 0x11, 0xc6, 0x98, 0xbc, 0xf4, 0x21, 0xed, 0xca, 0x53, 0x38,
+ 0xad, 0xb0, 0xa2, 0x9b, 0x29, 0x1f, 0xea, 0x9f, 0x65, 0xa4, 0x80, 0xd4,
+ 0x51, 0x59, 0xda, 0x95,
+};
+static const struct drbg_kat_pr_false kat2774_t = {
+ 13, kat2774_entropyin, kat2774_nonce, kat2774_persstr,
+ kat2774_entropyinreseed, kat2774_addinreseed, kat2774_addin0,
+ kat2774_addin1, kat2774_retbits
+};
+static const struct drbg_kat kat2774 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2774_t
+};
+
+static const unsigned char kat2775_entropyin[] = {
+ 0xe2, 0x3a, 0x7f, 0x95, 0xc3, 0xcf, 0x3f, 0xdd, 0xdd, 0xec, 0x66, 0xcb,
+ 0x16, 0xe1, 0xfb, 0xc3, 0x84, 0x95, 0xeb, 0xe9, 0x8b, 0x3e, 0x14, 0xd8,
+ 0xf3, 0x51, 0xe5, 0x8b, 0xc4, 0x57, 0xcd, 0x38, 0xb7, 0x97, 0x59, 0x84,
+ 0x99, 0x8c, 0xa9, 0x9e, 0x9c, 0x2d, 0x14, 0xb3, 0x40, 0x68, 0xc3, 0xa4,
+};
+static const unsigned char kat2775_nonce[] = {0};
+static const unsigned char kat2775_persstr[] = {0};
+static const unsigned char kat2775_entropyinreseed[] = {
+ 0x36, 0x41, 0x0a, 0xbe, 0x45, 0x6d, 0x7a, 0x51, 0x94, 0x80, 0x98, 0x89,
+ 0x7e, 0xc2, 0x05, 0xf7, 0x5f, 0x22, 0xee, 0x09, 0xcf, 0xcc, 0x94, 0xca,
+ 0x88, 0xfb, 0xaf, 0xf8, 0xd1, 0x59, 0xfc, 0x77, 0x9a, 0x8e, 0x42, 0x0d,
+ 0x11, 0xfc, 0x1a, 0xc0, 0x95, 0x18, 0x23, 0x7b, 0xfd, 0xb7, 0x44, 0x62,
+};
+static const unsigned char kat2775_addinreseed[] = {0};
+static const unsigned char kat2775_addin0[] = {0};
+static const unsigned char kat2775_addin1[] = {0};
+static const unsigned char kat2775_retbits[] = {
+ 0x3c, 0x14, 0xa6, 0x3a, 0x9c, 0x74, 0xdd, 0x02, 0x05, 0x1c, 0x01, 0x47,
+ 0x63, 0x74, 0x01, 0x64, 0x9a, 0x68, 0x45, 0x2c, 0x28, 0xaf, 0x90, 0xe9,
+ 0x62, 0x8f, 0x1a, 0xc8, 0x7d, 0xf1, 0xd2, 0x76, 0x71, 0x39, 0x7b, 0xa3,
+ 0x4f, 0x49, 0x39, 0x97, 0xef, 0x63, 0x42, 0x84, 0xb7, 0x4b, 0x3b, 0x28,
+ 0xb2, 0xe7, 0xd4, 0x17, 0x1e, 0xb0, 0x25, 0xe4, 0x70, 0xf3, 0x9d, 0xfd,
+ 0x12, 0x63, 0x6a, 0x5f,
+};
+static const struct drbg_kat_pr_false kat2775_t = {
+ 14, kat2775_entropyin, kat2775_nonce, kat2775_persstr,
+ kat2775_entropyinreseed, kat2775_addinreseed, kat2775_addin0,
+ kat2775_addin1, kat2775_retbits
+};
+static const struct drbg_kat kat2775 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2775_t
+};
+
+static const unsigned char kat2776_entropyin[] = {
+ 0x69, 0x6c, 0xbd, 0x64, 0xf0, 0x7b, 0x11, 0x21, 0x55, 0xe7, 0xfd, 0xf5,
+ 0xc6, 0xf4, 0xf3, 0x05, 0xff, 0x0e, 0x82, 0xf9, 0xd9, 0x1c, 0xc0, 0x12,
+ 0xe2, 0x25, 0xf0, 0x5a, 0xfe, 0x8b, 0xce, 0x31, 0x14, 0x34, 0x76, 0x96,
+ 0xb6, 0x3c, 0x46, 0xca, 0x03, 0x08, 0xad, 0xec, 0xc0, 0xd6, 0xc9, 0x08,
+};
+static const unsigned char kat2776_nonce[] = {0};
+static const unsigned char kat2776_persstr[] = {0};
+static const unsigned char kat2776_entropyinreseed[] = {
+ 0x23, 0xf7, 0xa5, 0x5a, 0xe9, 0xbd, 0x6d, 0x13, 0xe4, 0x99, 0x9b, 0x1d,
+ 0xed, 0xf4, 0xc0, 0x88, 0x97, 0xc4, 0x1e, 0x12, 0xa5, 0x19, 0x91, 0xba,
+ 0x40, 0xa4, 0xf5, 0x3f, 0x19, 0xaf, 0xdf, 0x51, 0x4a, 0x77, 0xa5, 0x80,
+ 0x8c, 0x65, 0xab, 0xbd, 0xbb, 0x22, 0xcc, 0x70, 0xc2, 0xe4, 0x1b, 0xd9,
+};
+static const unsigned char kat2776_addinreseed[] = {
+ 0xbe, 0xb4, 0x21, 0x3e, 0xfc, 0x8b, 0x9f, 0x23, 0xb7, 0xe2, 0x07, 0x06,
+ 0x1b, 0xea, 0xc4, 0x0e, 0x00, 0x95, 0xe4, 0xd7, 0x63, 0x6d, 0x97, 0x50,
+ 0x4b, 0x16, 0xea, 0x97, 0x2e, 0xce, 0xa6, 0xfc, 0x07, 0x41, 0x45, 0xd3,
+ 0x18, 0x47, 0x44, 0x1a, 0x31, 0x0e, 0xa3, 0xd0, 0x9d, 0x2c, 0x2e, 0x86,
+};
+static const unsigned char kat2776_addin0[] = {
+ 0xaf, 0xe6, 0x82, 0x49, 0x56, 0x3b, 0x6d, 0xc7, 0xab, 0xe5, 0xa1, 0xf6,
+ 0x91, 0xd9, 0x2f, 0x37, 0x86, 0x78, 0x72, 0x14, 0x78, 0xbd, 0x45, 0x20,
+ 0x03, 0xa8, 0xf7, 0x2d, 0xb0, 0x26, 0x2e, 0x40, 0xc5, 0x5e, 0x9e, 0x56,
+ 0x56, 0x1a, 0x50, 0x91, 0x66, 0x75, 0x90, 0x3a, 0x31, 0x10, 0xca, 0x6e,
+};
+static const unsigned char kat2776_addin1[] = {
+ 0x5f, 0x21, 0xd7, 0x84, 0xfa, 0x33, 0x14, 0xbd, 0x38, 0x6f, 0xe0, 0x82,
+ 0x86, 0xc5, 0xc9, 0x03, 0xc3, 0xf7, 0x70, 0x05, 0x42, 0x5c, 0x63, 0x31,
+ 0xbf, 0x90, 0x32, 0x33, 0x83, 0x9a, 0xa2, 0x30, 0x6e, 0x34, 0x07, 0x7c,
+ 0x91, 0xdc, 0x57, 0x83, 0xb8, 0xb9, 0x46, 0x41, 0x0b, 0x17, 0x85, 0xfd,
+};
+static const unsigned char kat2776_retbits[] = {
+ 0x97, 0x5c, 0x38, 0xfb, 0x31, 0x91, 0xd3, 0xe1, 0x5a, 0x80, 0x84, 0x42,
+ 0xa6, 0xda, 0x6e, 0x27, 0x27, 0xc3, 0x73, 0xaa, 0x64, 0xa9, 0xb1, 0x6f,
+ 0xa4, 0x69, 0xc2, 0x3c, 0xc4, 0xc2, 0x2f, 0xf8, 0xc1, 0xc3, 0x39, 0x49,
+ 0xfa, 0x61, 0x88, 0xe3, 0x19, 0xd6, 0xd6, 0x6b, 0x0c, 0x3c, 0xaa, 0xab,
+ 0x73, 0x95, 0xb3, 0x8c, 0xd5, 0x49, 0x79, 0xaa, 0x18, 0xd5, 0x05, 0x25,
+ 0x9d, 0x8d, 0x23, 0x52,
+};
+static const struct drbg_kat_pr_false kat2776_t = {
+ 0, kat2776_entropyin, kat2776_nonce, kat2776_persstr,
+ kat2776_entropyinreseed, kat2776_addinreseed, kat2776_addin0,
+ kat2776_addin1, kat2776_retbits
+};
+static const struct drbg_kat kat2776 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2776_t
+};
+
+static const unsigned char kat2777_entropyin[] = {
+ 0xe6, 0xda, 0xfe, 0x8a, 0xd4, 0x62, 0x6d, 0xb2, 0x37, 0x4c, 0x09, 0xe9,
+ 0x86, 0x3d, 0x4e, 0x68, 0xbc, 0x5a, 0xce, 0x27, 0xa7, 0x8f, 0x1a, 0xdb,
+ 0x3d, 0xe7, 0x2b, 0xf6, 0x9d, 0x29, 0x16, 0x1f, 0x6f, 0x15, 0x36, 0x37,
+ 0xee, 0xdb, 0xa3, 0x5c, 0xbf, 0xc6, 0x78, 0xb4, 0xc4, 0x71, 0x54, 0xf7,
+};
+static const unsigned char kat2777_nonce[] = {0};
+static const unsigned char kat2777_persstr[] = {0};
+static const unsigned char kat2777_entropyinreseed[] = {
+ 0x59, 0x70, 0x9d, 0x21, 0x32, 0x5a, 0x5d, 0xe0, 0x9b, 0xe9, 0x08, 0xd3,
+ 0x30, 0xb7, 0x10, 0x1d, 0x17, 0x46, 0x69, 0x87, 0x17, 0xff, 0xcb, 0x53,
+ 0xc3, 0x1b, 0x44, 0xc2, 0xbd, 0x5e, 0x5f, 0xd2, 0x74, 0x7a, 0xb3, 0xd1,
+ 0x31, 0xd9, 0x00, 0x4d, 0x40, 0x28, 0x70, 0xc7, 0x79, 0xa3, 0xe3, 0x07,
+};
+static const unsigned char kat2777_addinreseed[] = {
+ 0x88, 0x2e, 0xa5, 0x8e, 0xb5, 0x03, 0x06, 0xa7, 0xfa, 0x61, 0x48, 0xc4,
+ 0x15, 0xe4, 0x02, 0x2d, 0x0a, 0x07, 0x78, 0x98, 0x7a, 0x35, 0xdc, 0xf0,
+ 0xf6, 0x70, 0xcc, 0xa8, 0xab, 0x52, 0x8f, 0xea, 0x2e, 0x97, 0x91, 0xe3,
+ 0x22, 0x39, 0x73, 0x12, 0xd7, 0xcd, 0xb6, 0xeb, 0xf0, 0x39, 0x0d, 0x7a,
+};
+static const unsigned char kat2777_addin0[] = {
+ 0x18, 0x00, 0xec, 0x46, 0x78, 0xb3, 0x13, 0x20, 0xa5, 0x92, 0xd8, 0xa7,
+ 0xcf, 0x8f, 0x4e, 0xf4, 0xf7, 0xab, 0xa3, 0xf5, 0x57, 0x16, 0x25, 0x24,
+ 0xba, 0x69, 0x63, 0xdf, 0xb1, 0x63, 0x2c, 0xae, 0x34, 0xe8, 0xd9, 0xf6,
+ 0xa1, 0x1e, 0x46, 0x20, 0x4a, 0x3b, 0x91, 0x2a, 0xec, 0x2a, 0x9e, 0x54,
+};
+static const unsigned char kat2777_addin1[] = {
+ 0x0f, 0xea, 0x4f, 0x0f, 0x32, 0x7d, 0xc8, 0x38, 0x4d, 0x51, 0xf3, 0x60,
+ 0x16, 0x01, 0x27, 0x7e, 0xff, 0x9d, 0xa6, 0xde, 0xdb, 0xa1, 0x77, 0x89,
+ 0xdc, 0xf6, 0xa0, 0x97, 0x93, 0x51, 0xff, 0xbf, 0x57, 0x64, 0xa6, 0x1e,
+ 0x5a, 0xd3, 0x4b, 0xcb, 0x12, 0xa2, 0x22, 0x86, 0x44, 0x34, 0x83, 0x57,
+};
+static const unsigned char kat2777_retbits[] = {
+ 0xa4, 0x63, 0xeb, 0x0c, 0xc9, 0xa7, 0xd2, 0x4f, 0x98, 0x6e, 0xab, 0x26,
+ 0xef, 0x86, 0xa5, 0x42, 0xd8, 0x29, 0x69, 0xf6, 0xac, 0x99, 0x3b, 0x8d,
+ 0xf0, 0xcb, 0x74, 0xae, 0x18, 0x57, 0xe7, 0x17, 0xb8, 0xbc, 0x36, 0x29,
+ 0x7f, 0x3f, 0xd4, 0xb5, 0x6d, 0xcc, 0x30, 0x54, 0x83, 0x88, 0x9e, 0xe1,
+ 0x14, 0x0f, 0x25, 0x43, 0xb7, 0x4f, 0x3b, 0x15, 0x2a, 0xdf, 0x1c, 0xcc,
+ 0x2b, 0x3f, 0x7d, 0xbf,
+};
+static const struct drbg_kat_pr_false kat2777_t = {
+ 1, kat2777_entropyin, kat2777_nonce, kat2777_persstr,
+ kat2777_entropyinreseed, kat2777_addinreseed, kat2777_addin0,
+ kat2777_addin1, kat2777_retbits
+};
+static const struct drbg_kat kat2777 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2777_t
+};
+
+static const unsigned char kat2778_entropyin[] = {
+ 0x24, 0xa5, 0xf6, 0xf9, 0x36, 0xa1, 0xf4, 0x33, 0xa7, 0x27, 0xff, 0xff,
+ 0x1d, 0x15, 0xcf, 0x44, 0x0d, 0xd0, 0x78, 0x1d, 0xa3, 0x6c, 0xa7, 0x91,
+ 0x8f, 0x0e, 0xee, 0x0c, 0x26, 0x99, 0xad, 0x82, 0x04, 0x88, 0xd9, 0x6c,
+ 0xf2, 0x7a, 0xc0, 0x68, 0x9c, 0x25, 0x8d, 0x37, 0xc7, 0xff, 0x34, 0x3b,
+};
+static const unsigned char kat2778_nonce[] = {0};
+static const unsigned char kat2778_persstr[] = {0};
+static const unsigned char kat2778_entropyinreseed[] = {
+ 0xda, 0x9c, 0xac, 0xae, 0x8a, 0x7c, 0x86, 0xa1, 0xbc, 0x55, 0x98, 0xcd,
+ 0x1e, 0x7e, 0x08, 0xf2, 0x5c, 0xfd, 0x69, 0xaa, 0x6f, 0x93, 0x1f, 0x7b,
+ 0x32, 0x07, 0xed, 0x00, 0x42, 0x03, 0xff, 0x7a, 0x6a, 0x67, 0x3d, 0xde,
+ 0x66, 0x24, 0xfb, 0x3f, 0x79, 0x05, 0x79, 0x75, 0xe0, 0x76, 0x7f, 0x50,
+};
+static const unsigned char kat2778_addinreseed[] = {
+ 0x69, 0x54, 0xe7, 0xa1, 0x70, 0x56, 0xb7, 0xbe, 0x8a, 0xd3, 0xe2, 0xb5,
+ 0x06, 0x0b, 0x1b, 0xd4, 0x7c, 0x51, 0x81, 0xbf, 0x15, 0xc5, 0x61, 0xa6,
+ 0x2e, 0x39, 0x17, 0xcc, 0x73, 0x9b, 0xef, 0x24, 0xc4, 0x00, 0x68, 0xa2,
+ 0x8a, 0xbd, 0xf0, 0xf1, 0x57, 0x70, 0xed, 0x6c, 0x26, 0xf4, 0x0e, 0x40,
+};
+static const unsigned char kat2778_addin0[] = {
+ 0x99, 0x7a, 0x08, 0x35, 0x08, 0x45, 0xe1, 0x0b, 0x25, 0x90, 0x76, 0xad,
+ 0xc7, 0xb6, 0x0a, 0x94, 0x09, 0x1b, 0x0a, 0xc7, 0x6f, 0x64, 0x3c, 0x43,
+ 0x2d, 0x9c, 0xfa, 0x70, 0x03, 0x35, 0xed, 0x5a, 0x6e, 0xbc, 0x40, 0x69,
+ 0xf8, 0x6d, 0xcf, 0xa1, 0xe8, 0xb7, 0x34, 0x8e, 0xb6, 0xa7, 0x73, 0x82,
+};
+static const unsigned char kat2778_addin1[] = {
+ 0x55, 0x22, 0xa7, 0xe0, 0xda, 0x07, 0x95, 0x50, 0x27, 0xd9, 0xb4, 0xf3,
+ 0x1c, 0x43, 0x49, 0x09, 0x87, 0x9a, 0xd3, 0x63, 0xac, 0x17, 0xa4, 0x6d,
+ 0xae, 0xb0, 0xa8, 0x1e, 0x6b, 0xa2, 0xe3, 0x82, 0x06, 0x99, 0x94, 0x47,
+ 0x58, 0xc4, 0x3f, 0xf1, 0x6b, 0xcd, 0x5f, 0x98, 0x58, 0xbe, 0xf9, 0xc9,
+};
+static const unsigned char kat2778_retbits[] = {
+ 0x7f, 0x7d, 0x10, 0xdb, 0xa2, 0x32, 0x4d, 0x25, 0x1c, 0x55, 0x54, 0x71,
+ 0x71, 0x39, 0xa6, 0x20, 0xf5, 0xeb, 0x78, 0x80, 0x97, 0xc1, 0x4d, 0x92,
+ 0x93, 0x29, 0xa0, 0xdb, 0xf0, 0x2a, 0x1d, 0x88, 0x57, 0x9c, 0xd0, 0x70,
+ 0xfa, 0xf7, 0x96, 0xd0, 0xb6, 0x89, 0xc9, 0xea, 0x7c, 0x57, 0x6c, 0xf8,
+ 0x27, 0x6b, 0x1b, 0x2a, 0xad, 0xf0, 0xe5, 0x60, 0xa7, 0xac, 0xdb, 0x30,
+ 0x69, 0xec, 0x4b, 0xec,
+};
+static const struct drbg_kat_pr_false kat2778_t = {
+ 2, kat2778_entropyin, kat2778_nonce, kat2778_persstr,
+ kat2778_entropyinreseed, kat2778_addinreseed, kat2778_addin0,
+ kat2778_addin1, kat2778_retbits
+};
+static const struct drbg_kat kat2778 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2778_t
+};
+
+static const unsigned char kat2779_entropyin[] = {
+ 0x9c, 0xef, 0xa1, 0xee, 0x09, 0x0d, 0xfb, 0xfd, 0xa9, 0x33, 0xec, 0xae,
+ 0xde, 0x9d, 0x86, 0x4b, 0x8d, 0x2f, 0x1e, 0x41, 0x76, 0xaf, 0xd5, 0x44,
+ 0x6e, 0x6e, 0x3e, 0x07, 0xb8, 0xae, 0xbd, 0xfb, 0xf1, 0xdf, 0xeb, 0x5c,
+ 0x30, 0xaf, 0xb0, 0x2c, 0x80, 0xf6, 0xd8, 0x44, 0xa0, 0x72, 0x1e, 0x16,
+};
+static const unsigned char kat2779_nonce[] = {0};
+static const unsigned char kat2779_persstr[] = {0};
+static const unsigned char kat2779_entropyinreseed[] = {
+ 0x24, 0xbe, 0x2a, 0x8e, 0x42, 0xf1, 0x70, 0xfd, 0x93, 0xde, 0x15, 0x97,
+ 0x75, 0x09, 0x86, 0x18, 0xf6, 0x51, 0x1f, 0x05, 0xb6, 0x77, 0xef, 0xd2,
+ 0x46, 0xdc, 0xe5, 0x8e, 0xee, 0x5e, 0xe9, 0x89, 0x4d, 0x68, 0x1a, 0xbe,
+ 0x5b, 0x71, 0x8f, 0x2d, 0xef, 0x41, 0xb5, 0x2f, 0xe3, 0x34, 0x73, 0x76,
+};
+static const unsigned char kat2779_addinreseed[] = {
+ 0x5e, 0xc6, 0x67, 0x39, 0xbb, 0x2d, 0x02, 0x90, 0x2c, 0xbe, 0x54, 0xdc,
+ 0xe7, 0x24, 0x7a, 0xdc, 0xd9, 0xa7, 0x13, 0x9a, 0x23, 0x0c, 0x7a, 0xaf,
+ 0x3e, 0xbe, 0x83, 0xdf, 0xe4, 0x70, 0x40, 0x84, 0x9f, 0x86, 0x35, 0x0e,
+ 0xc1, 0xf1, 0x2e, 0xfc, 0xfe, 0x31, 0x33, 0x21, 0x40, 0xb0, 0xfb, 0x49,
+};
+static const unsigned char kat2779_addin0[] = {
+ 0x82, 0xe9, 0x05, 0xcc, 0x9f, 0xc6, 0x1f, 0x33, 0xbd, 0x3b, 0x76, 0xd3,
+ 0x31, 0x32, 0x69, 0x2b, 0xb1, 0x82, 0xdc, 0xe8, 0xff, 0xda, 0x7b, 0x5f,
+ 0x9f, 0x13, 0xff, 0xec, 0x9e, 0x9e, 0xb1, 0x70, 0xde, 0x96, 0x7c, 0x4a,
+ 0x3b, 0xd6, 0x6d, 0xfb, 0xe6, 0x6c, 0x38, 0xfe, 0x2d, 0x63, 0x45, 0x4d,
+};
+static const unsigned char kat2779_addin1[] = {
+ 0xd6, 0x5c, 0x7a, 0xd4, 0x38, 0xb6, 0xb2, 0x7e, 0xdd, 0xc7, 0xb6, 0xb7,
+ 0x49, 0x7b, 0xe3, 0xf5, 0xf3, 0xe8, 0x88, 0xb0, 0x7c, 0xdd, 0x86, 0xfe,
+ 0x3d, 0x81, 0xac, 0x0a, 0xa0, 0xa2, 0xd5, 0x31, 0x97, 0xf3, 0xbe, 0xa5,
+ 0x96, 0x8b, 0x41, 0xad, 0x58, 0x70, 0x1f, 0xc4, 0x35, 0xf3, 0x4c, 0xad,
+};
+static const unsigned char kat2779_retbits[] = {
+ 0xba, 0x66, 0xe1, 0x63, 0xd3, 0x5c, 0xe7, 0xd2, 0xd2, 0x87, 0x8f, 0xbc,
+ 0x9e, 0x7b, 0x49, 0x32, 0x8e, 0xb7, 0x0a, 0x3b, 0x06, 0xdf, 0xe9, 0xaa,
+ 0x1e, 0x9d, 0x78, 0x9f, 0xd6, 0x7a, 0xaa, 0x56, 0x3c, 0x46, 0x92, 0xa9,
+ 0x86, 0x55, 0xb7, 0xae, 0x77, 0x04, 0x2f, 0x46, 0x05, 0xce, 0x99, 0x57,
+ 0x5d, 0xcd, 0xfa, 0x2c, 0x96, 0xd9, 0x3d, 0x76, 0xef, 0xf4, 0x4c, 0xff,
+ 0xf7, 0x9f, 0x34, 0xe8,
+};
+static const struct drbg_kat_pr_false kat2779_t = {
+ 3, kat2779_entropyin, kat2779_nonce, kat2779_persstr,
+ kat2779_entropyinreseed, kat2779_addinreseed, kat2779_addin0,
+ kat2779_addin1, kat2779_retbits
+};
+static const struct drbg_kat kat2779 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2779_t
+};
+
+static const unsigned char kat2780_entropyin[] = {
+ 0x53, 0x8d, 0xee, 0xe0, 0xc5, 0x9f, 0xe7, 0x1b, 0x6c, 0x67, 0xea, 0x8b,
+ 0x0f, 0xf5, 0xfd, 0xc1, 0xf3, 0xc9, 0x4a, 0xbd, 0xb1, 0x23, 0x7d, 0xaf,
+ 0xd6, 0xe9, 0xc9, 0x86, 0xa4, 0x45, 0x42, 0x9a, 0xa0, 0x98, 0xa6, 0xbc,
+ 0x55, 0x51, 0x90, 0x25, 0xc3, 0x6f, 0x25, 0x3a, 0xe1, 0xce, 0xdc, 0xce,
+};
+static const unsigned char kat2780_nonce[] = {0};
+static const unsigned char kat2780_persstr[] = {0};
+static const unsigned char kat2780_entropyinreseed[] = {
+ 0x9d, 0x16, 0x39, 0xbb, 0x40, 0xeb, 0xf0, 0x2a, 0x27, 0x0f, 0x49, 0x20,
+ 0x5a, 0x4f, 0x5d, 0xa3, 0xc1, 0x45, 0x83, 0xb4, 0x5d, 0x70, 0x64, 0xf9,
+ 0x7f, 0x55, 0x22, 0x82, 0x83, 0x3e, 0x73, 0x38, 0xfd, 0xdc, 0xee, 0x59,
+ 0xe9, 0x1f, 0xa8, 0x08, 0x9e, 0xa9, 0x5e, 0xb6, 0xda, 0x49, 0x3c, 0x31,
+};
+static const unsigned char kat2780_addinreseed[] = {
+ 0xe7, 0x02, 0xbb, 0x3d, 0x95, 0x9c, 0xc1, 0x68, 0x79, 0x6a, 0x8e, 0x21,
+ 0x0b, 0x80, 0x5e, 0x00, 0x16, 0x7d, 0x2f, 0x4d, 0x32, 0x82, 0xd4, 0x72,
+ 0x35, 0xd0, 0x29, 0x59, 0x7f, 0x8a, 0x90, 0x77, 0x2e, 0x90, 0x4e, 0x8a,
+ 0x58, 0x19, 0x99, 0xdb, 0x0c, 0xe0, 0x10, 0xb3, 0x00, 0x57, 0x90, 0xdd,
+};
+static const unsigned char kat2780_addin0[] = {
+ 0x31, 0x93, 0xb3, 0x78, 0x39, 0x03, 0x51, 0xa8, 0x39, 0x6e, 0xed, 0x93,
+ 0xbf, 0x1f, 0x41, 0xd7, 0x48, 0xbc, 0x3d, 0xb1, 0x78, 0x44, 0x2d, 0x7e,
+ 0x76, 0xf4, 0xaa, 0xe0, 0x57, 0x61, 0x28, 0x61, 0xae, 0x27, 0xa3, 0xcf,
+ 0x71, 0xb2, 0xa1, 0x78, 0x5d, 0x96, 0xd5, 0x9c, 0xe0, 0x2e, 0x1c, 0x6a,
+};
+static const unsigned char kat2780_addin1[] = {
+ 0x23, 0x89, 0x56, 0xe0, 0xd2, 0x06, 0xd4, 0xe9, 0x92, 0xab, 0x9c, 0x45,
+ 0x87, 0x7d, 0x99, 0x53, 0xc1, 0xe4, 0x8e, 0x76, 0xe0, 0xfb, 0x46, 0xd8,
+ 0x71, 0x7a, 0x0a, 0x64, 0x12, 0xcc, 0x9e, 0x9c, 0x16, 0x18, 0x94, 0x97,
+ 0x95, 0x06, 0x69, 0x4c, 0x63, 0xc8, 0xeb, 0x8c, 0x5d, 0x10, 0x67, 0x67,
+};
+static const unsigned char kat2780_retbits[] = {
+ 0x7a, 0x54, 0xf5, 0x0a, 0xf3, 0xa5, 0x92, 0x93, 0x78, 0x1a, 0xe8, 0x43,
+ 0x8c, 0x6f, 0xb0, 0xff, 0xdd, 0xde, 0x2a, 0x33, 0x00, 0xe6, 0x05, 0x54,
+ 0x5c, 0xf3, 0x02, 0xd9, 0x7b, 0x81, 0xfc, 0x5e, 0x49, 0x5c, 0xe3, 0x82,
+ 0x57, 0x2d, 0xc7, 0x6f, 0xc9, 0x87, 0x4c, 0xdf, 0xb3, 0x17, 0x22, 0x82,
+ 0x2b, 0xff, 0x15, 0xbf, 0xed, 0xcd, 0xce, 0x2f, 0x70, 0xe5, 0xf8, 0x9d,
+ 0xe5, 0xb4, 0x1c, 0x6c,
+};
+static const struct drbg_kat_pr_false kat2780_t = {
+ 4, kat2780_entropyin, kat2780_nonce, kat2780_persstr,
+ kat2780_entropyinreseed, kat2780_addinreseed, kat2780_addin0,
+ kat2780_addin1, kat2780_retbits
+};
+static const struct drbg_kat kat2780 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2780_t
+};
+
+static const unsigned char kat2781_entropyin[] = {
+ 0xc0, 0x87, 0xc7, 0x16, 0x56, 0x76, 0x83, 0xbc, 0x38, 0x80, 0xbe, 0x56,
+ 0xe3, 0x22, 0xbe, 0x85, 0xf6, 0xdf, 0xc2, 0x36, 0xd3, 0x4c, 0xc6, 0x27,
+ 0xf7, 0xe3, 0xcb, 0xc0, 0xf1, 0xee, 0x1f, 0x0b, 0xbd, 0x2a, 0xa7, 0x5b,
+ 0xab, 0x3f, 0x4a, 0x96, 0xd8, 0x5c, 0xd3, 0xd5, 0x97, 0xc4, 0xd2, 0x0b,
+};
+static const unsigned char kat2781_nonce[] = {0};
+static const unsigned char kat2781_persstr[] = {0};
+static const unsigned char kat2781_entropyinreseed[] = {
+ 0x46, 0x31, 0xd8, 0x7a, 0x5e, 0x5e, 0x86, 0x28, 0xfd, 0xfa, 0x55, 0xcf,
+ 0xfc, 0xb5, 0x86, 0x67, 0xef, 0x4c, 0xf8, 0xe4, 0xb1, 0xf5, 0xea, 0xf0,
+ 0xd5, 0xfd, 0xb7, 0xe2, 0xbf, 0xfc, 0xc8, 0x05, 0xb7, 0x4a, 0xa3, 0xc0,
+ 0xf1, 0xec, 0x95, 0xfd, 0x1a, 0xc0, 0xa0, 0xbe, 0x1c, 0x1f, 0x86, 0x69,
+};
+static const unsigned char kat2781_addinreseed[] = {
+ 0x6b, 0xe5, 0x8d, 0x52, 0x97, 0xf9, 0xc1, 0x87, 0xca, 0x97, 0xab, 0x5b,
+ 0x66, 0x2a, 0x29, 0x5f, 0xce, 0x4c, 0x27, 0x9b, 0xd6, 0x6f, 0x73, 0x7c,
+ 0x70, 0xb7, 0x60, 0xda, 0xd0, 0xdb, 0x4c, 0xd5, 0x9c, 0x27, 0x7a, 0xba,
+ 0x7f, 0xde, 0xd7, 0x80, 0xed, 0x87, 0x8a, 0x87, 0x1f, 0xb8, 0x65, 0x0e,
+};
+static const unsigned char kat2781_addin0[] = {
+ 0x65, 0x43, 0x69, 0xdc, 0xce, 0x04, 0x96, 0x48, 0x42, 0x55, 0x67, 0x27,
+ 0x9b, 0xf0, 0x80, 0x79, 0xa9, 0xa5, 0x5b, 0x17, 0x2b, 0x60, 0x95, 0x07,
+ 0x79, 0x9a, 0xee, 0x7d, 0x85, 0x99, 0x70, 0x75, 0x29, 0x2f, 0x8e, 0x98,
+ 0x8e, 0xd0, 0xca, 0x59, 0x65, 0x98, 0x82, 0x04, 0x95, 0x34, 0x63, 0x57,
+};
+static const unsigned char kat2781_addin1[] = {
+ 0x76, 0x1d, 0x17, 0xaa, 0x9e, 0xec, 0xfd, 0xf8, 0x73, 0xf0, 0x7f, 0xc2,
+ 0x16, 0xca, 0x0f, 0x78, 0x5f, 0x33, 0x4e, 0x4f, 0xdb, 0x87, 0x4f, 0xfe,
+ 0xa8, 0x7d, 0x60, 0x09, 0xef, 0x47, 0xe2, 0x33, 0xcd, 0xcf, 0x46, 0xd3,
+ 0xba, 0xf6, 0xec, 0x64, 0x56, 0x93, 0xf2, 0xc9, 0xcc, 0x4b, 0x6d, 0x2f,
+};
+static const unsigned char kat2781_retbits[] = {
+ 0xe2, 0x5a, 0x8b, 0x59, 0x18, 0xec, 0x0d, 0xb4, 0xdb, 0xf7, 0x21, 0x7a,
+ 0xbb, 0xd2, 0x26, 0x94, 0x64, 0x1a, 0x96, 0x96, 0xa0, 0x58, 0x5a, 0xcb,
+ 0x11, 0x77, 0x91, 0xea, 0x04, 0xe0, 0xae, 0xdf, 0xaa, 0x78, 0xa2, 0x4b,
+ 0x08, 0x6b, 0x2f, 0x7f, 0xcb, 0xce, 0xa2, 0xe4, 0xe7, 0xd8, 0xd1, 0xab,
+ 0x06, 0xa4, 0xa4, 0x83, 0x00, 0x8e, 0x19, 0xde, 0x51, 0xaa, 0x1e, 0xc0,
+ 0x07, 0xbf, 0x49, 0x57,
+};
+static const struct drbg_kat_pr_false kat2781_t = {
+ 5, kat2781_entropyin, kat2781_nonce, kat2781_persstr,
+ kat2781_entropyinreseed, kat2781_addinreseed, kat2781_addin0,
+ kat2781_addin1, kat2781_retbits
+};
+static const struct drbg_kat kat2781 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2781_t
+};
+
+static const unsigned char kat2782_entropyin[] = {
+ 0x23, 0x9f, 0x0a, 0x58, 0x3c, 0x5e, 0xa0, 0x2c, 0xd5, 0xed, 0xb9, 0x57,
+ 0x1a, 0x81, 0xdd, 0x47, 0xbf, 0x50, 0xe6, 0x14, 0x61, 0x54, 0x64, 0x52,
+ 0x2c, 0x1e, 0x6a, 0x05, 0x33, 0x61, 0xe7, 0x82, 0xb5, 0x48, 0xdb, 0x78,
+ 0xaa, 0x5b, 0x70, 0x64, 0xdd, 0xe3, 0xc1, 0x3f, 0xc4, 0x0f, 0x60, 0x99,
+};
+static const unsigned char kat2782_nonce[] = {0};
+static const unsigned char kat2782_persstr[] = {0};
+static const unsigned char kat2782_entropyinreseed[] = {
+ 0xa8, 0xb9, 0xf9, 0x94, 0xe2, 0x07, 0x45, 0x1b, 0x84, 0x21, 0xff, 0x55,
+ 0x59, 0xf7, 0x5a, 0x4a, 0x4f, 0xc2, 0x27, 0xbc, 0x86, 0x5b, 0x67, 0xfa,
+ 0xf1, 0xa0, 0x5f, 0x2e, 0x87, 0xdd, 0x5e, 0x05, 0x9b, 0x76, 0xd6, 0x7a,
+ 0x14, 0xf6, 0x84, 0x51, 0x14, 0x3f, 0x3b, 0x6e, 0x1d, 0xd7, 0xa4, 0xa4,
+};
+static const unsigned char kat2782_addinreseed[] = {
+ 0xec, 0xc9, 0x55, 0x99, 0x6b, 0x08, 0xc3, 0xa2, 0x7d, 0x1d, 0xd7, 0x7c,
+ 0x6a, 0xd2, 0x76, 0x2a, 0x00, 0x33, 0xac, 0x1d, 0x59, 0x86, 0xd5, 0x90,
+ 0xcc, 0x08, 0x70, 0x54, 0xe6, 0xad, 0x3b, 0xc6, 0x88, 0x41, 0xf3, 0x34,
+ 0xd3, 0xd2, 0x05, 0x1c, 0x40, 0x6c, 0x5c, 0x76, 0x87, 0xa3, 0x2b, 0xc1,
+};
+static const unsigned char kat2782_addin0[] = {
+ 0xad, 0x20, 0x55, 0xd4, 0x30, 0x42, 0x36, 0x81, 0x85, 0x20, 0xe1, 0xa9,
+ 0xd0, 0x86, 0xb3, 0x41, 0x76, 0x8b, 0xd9, 0xbe, 0xdc, 0x35, 0xd3, 0xb8,
+ 0x16, 0x57, 0x6e, 0xfd, 0xbd, 0x13, 0xaa, 0x2d, 0x5f, 0x3c, 0x34, 0xd5,
+ 0xbd, 0xad, 0x99, 0x34, 0x4e, 0xed, 0xf0, 0x48, 0x14, 0x93, 0xf5, 0x28,
+};
+static const unsigned char kat2782_addin1[] = {
+ 0x2a, 0xd6, 0x95, 0x0c, 0xc9, 0x33, 0x5b, 0x6c, 0xc3, 0x7e, 0x4f, 0xee,
+ 0x05, 0xa3, 0xdc, 0x6c, 0xcf, 0x8c, 0x72, 0xa7, 0xe6, 0xfe, 0xf9, 0xe9,
+ 0xbc, 0x7e, 0x5a, 0x24, 0xab, 0x82, 0x4e, 0x70, 0x72, 0xed, 0x8f, 0x0a,
+ 0x75, 0x13, 0xc5, 0x1c, 0x2c, 0xa3, 0x8d, 0x56, 0x26, 0x75, 0xe3, 0xfd,
+};
+static const unsigned char kat2782_retbits[] = {
+ 0x26, 0xc5, 0x55, 0xad, 0xbe, 0x8f, 0x15, 0x6f, 0x5c, 0x9e, 0xde, 0xd8,
+ 0x39, 0x7a, 0xa3, 0xee, 0xae, 0x2b, 0x43, 0xe3, 0x03, 0xff, 0x5f, 0x92,
+ 0x26, 0xf4, 0xf5, 0x91, 0x80, 0xcb, 0x4d, 0x56, 0x2b, 0xa2, 0xed, 0x48,
+ 0x27, 0xfc, 0x2b, 0xd9, 0x4d, 0xf6, 0xf5, 0xc6, 0x89, 0x28, 0x0f, 0x4c,
+ 0x7f, 0x3c, 0xd6, 0xf3, 0x6e, 0x40, 0x6e, 0xed, 0xdc, 0x38, 0x6d, 0xb6,
+ 0xc4, 0x74, 0xd9, 0xb9,
+};
+static const struct drbg_kat_pr_false kat2782_t = {
+ 6, kat2782_entropyin, kat2782_nonce, kat2782_persstr,
+ kat2782_entropyinreseed, kat2782_addinreseed, kat2782_addin0,
+ kat2782_addin1, kat2782_retbits
+};
+static const struct drbg_kat kat2782 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2782_t
+};
+
+static const unsigned char kat2783_entropyin[] = {
+ 0xba, 0xe4, 0xb7, 0x6b, 0xa2, 0x69, 0x1f, 0x2b, 0x94, 0x74, 0x89, 0xb4,
+ 0x63, 0xad, 0x9d, 0x95, 0x4e, 0x38, 0xdc, 0x48, 0xc9, 0x4b, 0x8a, 0xd1,
+ 0x17, 0xfb, 0x0c, 0x10, 0xe1, 0xa9, 0x14, 0x1b, 0x54, 0xbb, 0x49, 0x27,
+ 0x5e, 0x3b, 0xe6, 0xc8, 0x9c, 0x6c, 0xad, 0xe6, 0xc4, 0x4a, 0x17, 0x9b,
+};
+static const unsigned char kat2783_nonce[] = {0};
+static const unsigned char kat2783_persstr[] = {0};
+static const unsigned char kat2783_entropyinreseed[] = {
+ 0x09, 0xb4, 0x28, 0x0c, 0x60, 0xa3, 0xc1, 0x11, 0x6f, 0xe9, 0x26, 0x23,
+ 0xb5, 0xec, 0xd5, 0x9b, 0x2b, 0xf1, 0x48, 0xa2, 0x98, 0xb0, 0xda, 0xad,
+ 0x7c, 0x85, 0x44, 0x0d, 0xf9, 0x4c, 0x20, 0xed, 0xa1, 0x26, 0xbd, 0x52,
+ 0x36, 0x30, 0x06, 0xcc, 0xee, 0x2e, 0xa2, 0x2e, 0xa3, 0xe3, 0x69, 0x1a,
+};
+static const unsigned char kat2783_addinreseed[] = {
+ 0xa8, 0xfd, 0x5f, 0x95, 0xe6, 0x4d, 0xd4, 0x81, 0x1b, 0x97, 0x12, 0x3d,
+ 0x17, 0x08, 0xe9, 0x45, 0x0a, 0x76, 0x6c, 0xad, 0x88, 0xc3, 0x9e, 0xe0,
+ 0x63, 0xcf, 0xce, 0x64, 0xba, 0xb2, 0xa1, 0x7e, 0xee, 0xa6, 0x64, 0x0a,
+ 0xbd, 0x70, 0x1a, 0x34, 0x5a, 0x58, 0x85, 0x87, 0x04, 0x7d, 0xb9, 0xd1,
+};
+static const unsigned char kat2783_addin0[] = {
+ 0x9b, 0xd0, 0xc9, 0x29, 0x01, 0x4b, 0x8f, 0x03, 0x6e, 0x2b, 0xde, 0x99,
+ 0x35, 0xd6, 0xf8, 0xf9, 0x3c, 0xe6, 0xc5, 0x11, 0x40, 0x0e, 0x72, 0xa5,
+ 0xe2, 0x0c, 0x21, 0xee, 0xe7, 0xea, 0xcd, 0x6b, 0x8f, 0x22, 0xbb, 0x1c,
+ 0x12, 0xf5, 0x39, 0x2b, 0x47, 0x55, 0x03, 0xb0, 0x3b, 0xd0, 0xbc, 0x30,
+};
+static const unsigned char kat2783_addin1[] = {
+ 0xc5, 0x6f, 0x4b, 0x4b, 0x85, 0x85, 0x4d, 0x4e, 0xc3, 0xa1, 0x0f, 0x3f,
+ 0xf3, 0xe9, 0x00, 0x8f, 0x5b, 0xcd, 0x6d, 0x81, 0xf8, 0xd7, 0x93, 0x57,
+ 0xe6, 0x5f, 0x4c, 0x7e, 0xf1, 0xec, 0xe3, 0xdd, 0x76, 0x22, 0xcb, 0x4b,
+ 0xf6, 0x76, 0x1f, 0x18, 0x88, 0x8c, 0xd7, 0x9f, 0x1f, 0x8b, 0x7a, 0xff,
+};
+static const unsigned char kat2783_retbits[] = {
+ 0x29, 0x57, 0x9a, 0x8f, 0xe7, 0x54, 0xee, 0xaa, 0xfc, 0x6b, 0x62, 0x0a,
+ 0x2e, 0x50, 0xce, 0xb1, 0x83, 0x92, 0xd7, 0x57, 0xf2, 0x0b, 0xcc, 0x67,
+ 0x9a, 0xd0, 0xad, 0x61, 0x44, 0x1d, 0x54, 0x48, 0xeb, 0x15, 0xb3, 0xac,
+ 0xfc, 0x97, 0x2f, 0x99, 0xb5, 0xd0, 0xf8, 0x56, 0x09, 0x1c, 0x52, 0x17,
+ 0x4c, 0x5d, 0x6b, 0x2f, 0x39, 0x06, 0x25, 0x3d, 0x9f, 0x1a, 0x68, 0x65,
+ 0xaa, 0x06, 0xc8, 0xae,
+};
+static const struct drbg_kat_pr_false kat2783_t = {
+ 7, kat2783_entropyin, kat2783_nonce, kat2783_persstr,
+ kat2783_entropyinreseed, kat2783_addinreseed, kat2783_addin0,
+ kat2783_addin1, kat2783_retbits
+};
+static const struct drbg_kat kat2783 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2783_t
+};
+
+static const unsigned char kat2784_entropyin[] = {
+ 0x99, 0xeb, 0x1b, 0x06, 0xdd, 0x87, 0x7c, 0x31, 0x32, 0xf4, 0xf2, 0xa7,
+ 0x8d, 0xbd, 0x0c, 0xbd, 0x74, 0xf3, 0x65, 0x3a, 0xf0, 0xcd, 0x9e, 0x45,
+ 0xcb, 0xd2, 0x3c, 0x2f, 0x8b, 0x43, 0x1a, 0x68, 0xd9, 0x5b, 0x36, 0x59,
+ 0x77, 0x22, 0x5c, 0x35, 0x1b, 0x3b, 0xc1, 0xe9, 0x3d, 0xa8, 0xe7, 0x26,
+};
+static const unsigned char kat2784_nonce[] = {0};
+static const unsigned char kat2784_persstr[] = {0};
+static const unsigned char kat2784_entropyinreseed[] = {
+ 0xfa, 0x48, 0xfe, 0x93, 0x35, 0x27, 0xd7, 0x63, 0xca, 0xe6, 0x60, 0x5d,
+ 0x04, 0xcb, 0xa0, 0x2b, 0x5b, 0x4b, 0x0c, 0xe8, 0x51, 0x22, 0x01, 0x1a,
+ 0x28, 0x78, 0x9b, 0xee, 0x1f, 0x10, 0x50, 0x70, 0x44, 0xa0, 0x21, 0xcc,
+ 0xd9, 0x24, 0x60, 0x28, 0x4f, 0xbf, 0x14, 0x48, 0x6c, 0x33, 0x97, 0xc3,
+};
+static const unsigned char kat2784_addinreseed[] = {
+ 0xd9, 0x6d, 0x04, 0x3c, 0x93, 0x22, 0x9d, 0xcf, 0x3a, 0x93, 0x9e, 0xe2,
+ 0x48, 0x4b, 0xa9, 0xf9, 0xcd, 0xaa, 0x3c, 0x84, 0x88, 0xdf, 0xc1, 0xd3,
+ 0x71, 0x37, 0x53, 0x20, 0xbe, 0x95, 0x1c, 0xc3, 0x33, 0x6d, 0xa4, 0x8e,
+ 0xa2, 0xf5, 0xb2, 0xc0, 0x8f, 0x66, 0x64, 0x57, 0x91, 0x60, 0xbc, 0x01,
+};
+static const unsigned char kat2784_addin0[] = {
+ 0x68, 0xdc, 0x3b, 0x3c, 0xee, 0xa6, 0xf4, 0x70, 0x3f, 0x80, 0x03, 0x04,
+ 0x81, 0xaa, 0x81, 0xb9, 0xeb, 0xe8, 0xfa, 0x5d, 0x00, 0x37, 0x34, 0x71,
+ 0x9a, 0x04, 0x2d, 0x75, 0x5c, 0x14, 0x55, 0x4a, 0xf6, 0xde, 0x54, 0x7e,
+ 0x6b, 0xeb, 0x3d, 0x9e, 0x8a, 0x6e, 0x67, 0x5e, 0xd1, 0x51, 0x81, 0xa6,
+};
+static const unsigned char kat2784_addin1[] = {
+ 0x95, 0x78, 0x3a, 0xce, 0x4b, 0x7e, 0xa4, 0x50, 0xe0, 0x42, 0xd6, 0x5b,
+ 0x7a, 0x4d, 0xf3, 0xfa, 0x50, 0x58, 0xd5, 0xc9, 0xc2, 0xeb, 0x94, 0xff,
+ 0xf8, 0x8f, 0xb3, 0x0c, 0xb1, 0xb9, 0x13, 0x2b, 0xcd, 0x07, 0xab, 0xca,
+ 0x64, 0x26, 0xaa, 0xc4, 0x80, 0x47, 0xe7, 0x2b, 0xaa, 0xeb, 0x2b, 0x77,
+};
+static const unsigned char kat2784_retbits[] = {
+ 0xe4, 0x7c, 0x11, 0xf7, 0xbc, 0x38, 0x7b, 0xe3, 0xfe, 0x4b, 0x70, 0xec,
+ 0x35, 0x48, 0x70, 0xa1, 0xd7, 0x35, 0xc4, 0x56, 0x37, 0xba, 0xa1, 0x3d,
+ 0x27, 0x40, 0xfb, 0x4b, 0x26, 0x5e, 0x48, 0x5a, 0x6b, 0x5b, 0x2d, 0xeb,
+ 0xad, 0x2e, 0x35, 0xfb, 0x5c, 0xe8, 0x77, 0xb7, 0xc6, 0x08, 0xa7, 0xaf,
+ 0x0e, 0x76, 0x2a, 0x7d, 0xfe, 0x95, 0xee, 0x74, 0xdb, 0xb3, 0xeb, 0x67,
+ 0xb0, 0x1f, 0xa1, 0x25,
+};
+static const struct drbg_kat_pr_false kat2784_t = {
+ 8, kat2784_entropyin, kat2784_nonce, kat2784_persstr,
+ kat2784_entropyinreseed, kat2784_addinreseed, kat2784_addin0,
+ kat2784_addin1, kat2784_retbits
+};
+static const struct drbg_kat kat2784 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2784_t
+};
+
+static const unsigned char kat2785_entropyin[] = {
+ 0x3a, 0x31, 0x91, 0x50, 0xf3, 0xa6, 0x68, 0x31, 0x79, 0x06, 0x54, 0x96,
+ 0x1a, 0x61, 0x7e, 0xaa, 0xb9, 0xe5, 0x20, 0xaa, 0x43, 0x21, 0x4e, 0x2f,
+ 0xb7, 0x80, 0x79, 0x93, 0xc9, 0x05, 0x7e, 0x9f, 0x89, 0xa1, 0xa9, 0x4b,
+ 0x95, 0x40, 0xc8, 0x49, 0x75, 0x98, 0x89, 0xd8, 0x53, 0xae, 0x99, 0x15,
+};
+static const unsigned char kat2785_nonce[] = {0};
+static const unsigned char kat2785_persstr[] = {0};
+static const unsigned char kat2785_entropyinreseed[] = {
+ 0x92, 0x68, 0x44, 0x48, 0x8d, 0x83, 0x42, 0x09, 0xed, 0x83, 0x36, 0xf6,
+ 0x70, 0x27, 0x42, 0x4b, 0xd3, 0x85, 0x81, 0xc0, 0x74, 0x03, 0x54, 0x2e,
+ 0x70, 0x04, 0x99, 0x80, 0xf0, 0x81, 0xef, 0x05, 0x5f, 0x95, 0xa2, 0x0f,
+ 0x5a, 0x96, 0x88, 0xa2, 0xfa, 0x00, 0xb2, 0x13, 0xf4, 0x1f, 0xed, 0x1e,
+};
+static const unsigned char kat2785_addinreseed[] = {
+ 0x37, 0xa7, 0x30, 0xe1, 0xd3, 0xe6, 0xc0, 0xeb, 0xba, 0x1c, 0xea, 0x9d,
+ 0xdd, 0xac, 0xd3, 0x08, 0xd9, 0x5c, 0xee, 0x60, 0x45, 0xcf, 0x4b, 0xbc,
+ 0x8f, 0x82, 0x20, 0x13, 0x94, 0x2d, 0x22, 0xfb, 0xfc, 0x8f, 0xb0, 0x2b,
+ 0xfa, 0x90, 0xdc, 0xd0, 0xf6, 0x59, 0xa0, 0x0c, 0xac, 0x1f, 0x33, 0x67,
+};
+static const unsigned char kat2785_addin0[] = {
+ 0x11, 0xf3, 0x3a, 0x6b, 0x9d, 0x0e, 0x37, 0xfe, 0xfa, 0xc0, 0x4c, 0x43,
+ 0xf5, 0xfe, 0x1e, 0x05, 0x3d, 0xbb, 0xf3, 0xdd, 0xc6, 0x57, 0xfb, 0xe1,
+ 0xf4, 0xcf, 0x95, 0xf2, 0x8c, 0x62, 0xb1, 0x0f, 0x41, 0x88, 0x8a, 0x53,
+ 0x0b, 0x08, 0x3c, 0xbf, 0x3c, 0xa7, 0x83, 0xc8, 0x64, 0xee, 0x76, 0xc7,
+};
+static const unsigned char kat2785_addin1[] = {
+ 0xef, 0x83, 0x70, 0xee, 0xd1, 0xe2, 0x6d, 0x66, 0x8f, 0x8e, 0x13, 0x6e,
+ 0xc1, 0x15, 0x9b, 0x11, 0xbb, 0xbf, 0xd7, 0x71, 0xbc, 0x5b, 0xb7, 0x6a,
+ 0x37, 0xbe, 0xaf, 0xae, 0xe8, 0x7a, 0x07, 0x71, 0x40, 0xd8, 0xa4, 0xe4,
+ 0x0c, 0xc6, 0x21, 0x3e, 0x0e, 0xad, 0x81, 0xb5, 0x14, 0x71, 0xe6, 0x0c,
+};
+static const unsigned char kat2785_retbits[] = {
+ 0x45, 0x54, 0x99, 0xd1, 0x61, 0xa9, 0xe2, 0x6c, 0x8b, 0xb1, 0xb7, 0x0d,
+ 0xe5, 0x47, 0x58, 0xd0, 0x6a, 0x41, 0x64, 0x78, 0x58, 0xa0, 0xa6, 0x8f,
+ 0x3d, 0x06, 0x4d, 0xe6, 0x23, 0xd7, 0x0c, 0x4f, 0xf7, 0xc9, 0x2a, 0x5d,
+ 0xde, 0x29, 0x38, 0xa9, 0x76, 0x83, 0x45, 0xfe, 0xc9, 0x6b, 0x43, 0x39,
+ 0xb3, 0xfa, 0xff, 0x29, 0x28, 0xe2, 0x00, 0xf8, 0x89, 0xf8, 0x38, 0x57,
+ 0x6f, 0xe9, 0xe7, 0x95,
+};
+static const struct drbg_kat_pr_false kat2785_t = {
+ 9, kat2785_entropyin, kat2785_nonce, kat2785_persstr,
+ kat2785_entropyinreseed, kat2785_addinreseed, kat2785_addin0,
+ kat2785_addin1, kat2785_retbits
+};
+static const struct drbg_kat kat2785 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2785_t
+};
+
+static const unsigned char kat2786_entropyin[] = {
+ 0xe1, 0xa7, 0x8f, 0x06, 0x25, 0x15, 0x8b, 0xe3, 0x0c, 0xfb, 0xc2, 0x7c,
+ 0xe1, 0x59, 0x8f, 0x1e, 0xe8, 0xdf, 0xfd, 0x8e, 0x97, 0x47, 0xe9, 0xfd,
+ 0x05, 0x20, 0xa3, 0x72, 0xb0, 0xe3, 0x61, 0x06, 0xb7, 0x8f, 0x22, 0x10,
+ 0x85, 0xf6, 0xb6, 0x9d, 0x19, 0x14, 0x8a, 0xdc, 0xdd, 0x6b, 0xbc, 0xd0,
+};
+static const unsigned char kat2786_nonce[] = {0};
+static const unsigned char kat2786_persstr[] = {0};
+static const unsigned char kat2786_entropyinreseed[] = {
+ 0x0c, 0xff, 0xe9, 0xc0, 0xc0, 0x62, 0xf2, 0x4e, 0x8e, 0x67, 0x96, 0x58,
+ 0x95, 0x96, 0x0c, 0xd6, 0xd0, 0x9d, 0x35, 0x34, 0x2d, 0xf5, 0x19, 0x9b,
+ 0xf8, 0x45, 0xac, 0x06, 0x47, 0x95, 0x45, 0xf6, 0x3a, 0xd6, 0x2c, 0xea,
+ 0xe2, 0x7a, 0xd7, 0x33, 0x79, 0xcc, 0x15, 0xd1, 0x00, 0xd6, 0xc8, 0x87,
+};
+static const unsigned char kat2786_addinreseed[] = {
+ 0x2b, 0x82, 0xe6, 0x87, 0xab, 0x86, 0x69, 0x0a, 0x56, 0xe3, 0xae, 0x92,
+ 0xcf, 0x87, 0xaf, 0xf5, 0x18, 0xc2, 0x7e, 0x7b, 0x8c, 0xc2, 0x4e, 0x77,
+ 0xb5, 0x7e, 0xd4, 0x0b, 0xc4, 0x32, 0x25, 0x9c, 0x0b, 0x5f, 0x0a, 0x79,
+ 0x50, 0xb0, 0x28, 0xf6, 0x98, 0xad, 0x73, 0x84, 0xbe, 0x2e, 0x12, 0x29,
+};
+static const unsigned char kat2786_addin0[] = {
+ 0x46, 0x4b, 0x2b, 0xa2, 0x82, 0x3f, 0x1f, 0xef, 0x3e, 0xe8, 0xa6, 0x95,
+ 0x8a, 0xe1, 0xfd, 0x15, 0x89, 0xe5, 0x5d, 0x60, 0x89, 0x1e, 0x7b, 0xe6,
+ 0xc3, 0x6c, 0x66, 0xd2, 0x6c, 0x09, 0x0b, 0xf3, 0xd4, 0xec, 0x68, 0xf9,
+ 0x14, 0x85, 0xeb, 0x4c, 0x9b, 0x86, 0x89, 0x4f, 0x1d, 0xfe, 0xd9, 0x62,
+};
+static const unsigned char kat2786_addin1[] = {
+ 0xc9, 0x03, 0x9d, 0x29, 0x51, 0x76, 0x29, 0x42, 0x7d, 0xa7, 0x89, 0x38,
+ 0x83, 0x5f, 0x63, 0xb3, 0x70, 0xcd, 0x35, 0x02, 0xfa, 0x4f, 0x72, 0x51,
+ 0xe9, 0xca, 0x38, 0xd0, 0xaf, 0x24, 0x62, 0x85, 0xc4, 0xab, 0xd5, 0xe3,
+ 0xae, 0x18, 0xa3, 0xe7, 0x7e, 0xfe, 0x44, 0x64, 0x75, 0xb7, 0x5e, 0x0b,
+};
+static const unsigned char kat2786_retbits[] = {
+ 0xae, 0x71, 0x0c, 0x09, 0xcb, 0x0f, 0x56, 0x77, 0x51, 0xff, 0x11, 0xe6,
+ 0x52, 0x06, 0x03, 0xbe, 0xbc, 0x1f, 0xfb, 0x6c, 0x0a, 0x1f, 0x85, 0x15,
+ 0xf2, 0xbb, 0xee, 0x1a, 0xa9, 0xe1, 0xcc, 0x7f, 0x74, 0x67, 0x25, 0x61,
+ 0x51, 0xe1, 0xd8, 0x9a, 0x30, 0x5e, 0x0f, 0xd5, 0x82, 0xf2, 0xdf, 0x09,
+ 0x94, 0x71, 0x0d, 0xf1, 0x34, 0x1e, 0xee, 0x98, 0x7b, 0xfb, 0xeb, 0xa1,
+ 0x9e, 0xfc, 0xb0, 0xfc,
+};
+static const struct drbg_kat_pr_false kat2786_t = {
+ 10, kat2786_entropyin, kat2786_nonce, kat2786_persstr,
+ kat2786_entropyinreseed, kat2786_addinreseed, kat2786_addin0,
+ kat2786_addin1, kat2786_retbits
+};
+static const struct drbg_kat kat2786 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2786_t
+};
+
+static const unsigned char kat2787_entropyin[] = {
+ 0x6e, 0xe4, 0x1a, 0xc5, 0x96, 0xed, 0x7b, 0x33, 0x73, 0xb5, 0x41, 0x14,
+ 0x99, 0x10, 0xea, 0x49, 0xa4, 0xd3, 0xa9, 0x6c, 0xac, 0x50, 0x8e, 0xcb,
+ 0xff, 0xf7, 0x46, 0x8e, 0x60, 0x1d, 0x15, 0xdc, 0x52, 0x4c, 0xd1, 0xd7,
+ 0x36, 0xc7, 0xfa, 0x67, 0xe6, 0xcd, 0x8b, 0xf6, 0x73, 0xc4, 0xac, 0xc4,
+};
+static const unsigned char kat2787_nonce[] = {0};
+static const unsigned char kat2787_persstr[] = {0};
+static const unsigned char kat2787_entropyinreseed[] = {
+ 0xf5, 0x10, 0x6b, 0x8e, 0x7e, 0xae, 0x15, 0x72, 0x9f, 0xe7, 0x9d, 0xbc,
+ 0xdf, 0xc7, 0xc9, 0xa7, 0x0b, 0xd5, 0x01, 0x93, 0xe5, 0xeb, 0x96, 0x23,
+ 0x4d, 0x91, 0xe5, 0xef, 0xf4, 0xd3, 0x39, 0x08, 0x3f, 0x1e, 0x6a, 0x29,
+ 0xda, 0x9f, 0x8e, 0x49, 0x7c, 0xf2, 0x2b, 0x8b, 0xd6, 0x6c, 0xe6, 0x08,
+};
+static const unsigned char kat2787_addinreseed[] = {
+ 0x22, 0xb8, 0xe2, 0xd1, 0xf6, 0x5b, 0x7b, 0xf2, 0xee, 0xce, 0xc1, 0xe9,
+ 0x28, 0x69, 0x49, 0xa2, 0x6e, 0x51, 0xff, 0x12, 0xbb, 0x5a, 0x40, 0x86,
+ 0xe0, 0x21, 0x8f, 0x41, 0x42, 0x7e, 0xf3, 0x60, 0x9c, 0x47, 0x9f, 0x2f,
+ 0x20, 0x71, 0x7d, 0x01, 0x0b, 0x43, 0x1a, 0xdb, 0x53, 0xe1, 0xc6, 0x03,
+};
+static const unsigned char kat2787_addin0[] = {
+ 0xaf, 0x62, 0x07, 0x1a, 0x46, 0x9f, 0xc9, 0x14, 0x12, 0x5b, 0xdf, 0x01,
+ 0x31, 0xed, 0x54, 0x8d, 0xd1, 0x83, 0x74, 0x5d, 0xeb, 0x5e, 0x78, 0xba,
+ 0x70, 0xf5, 0x47, 0x5c, 0x3c, 0x63, 0xd2, 0x42, 0x16, 0xa0, 0x31, 0xb8,
+ 0x3d, 0x53, 0xeb, 0x2d, 0x62, 0xc9, 0x47, 0xfa, 0xb1, 0xd5, 0x19, 0xdc,
+};
+static const unsigned char kat2787_addin1[] = {
+ 0x8c, 0x5d, 0xb2, 0x58, 0xad, 0xb3, 0x4e, 0xeb, 0xf8, 0xd2, 0x1a, 0xf1,
+ 0xaa, 0x63, 0x08, 0x16, 0x51, 0xb3, 0xb4, 0xf7, 0x6c, 0x07, 0x9b, 0x07,
+ 0x5c, 0xc5, 0x6d, 0x78, 0x55, 0x05, 0xd4, 0xc6, 0xbb, 0x2b, 0x75, 0x64,
+ 0x60, 0x30, 0x90, 0x2c, 0x88, 0x08, 0x52, 0x14, 0xe5, 0xaf, 0x2e, 0x65,
+};
+static const unsigned char kat2787_retbits[] = {
+ 0x21, 0xdd, 0xfa, 0x80, 0x77, 0xfe, 0xfa, 0x53, 0x54, 0x53, 0xb7, 0xaa,
+ 0xfe, 0xb7, 0x3c, 0xa1, 0xad, 0xf3, 0x40, 0x91, 0x3a, 0xfa, 0xd5, 0x05,
+ 0x12, 0xb8, 0x15, 0x68, 0x86, 0x3f, 0xac, 0x63, 0x33, 0xfb, 0x77, 0x7a,
+ 0x21, 0x18, 0x09, 0x76, 0xa6, 0x9c, 0x42, 0xc3, 0x89, 0x70, 0x9c, 0x0a,
+ 0x98, 0xdb, 0xee, 0xa3, 0x3b, 0x74, 0xdd, 0x22, 0x59, 0x3b, 0xde, 0xc1,
+ 0xcb, 0xa8, 0x69, 0x6a,
+};
+static const struct drbg_kat_pr_false kat2787_t = {
+ 11, kat2787_entropyin, kat2787_nonce, kat2787_persstr,
+ kat2787_entropyinreseed, kat2787_addinreseed, kat2787_addin0,
+ kat2787_addin1, kat2787_retbits
+};
+static const struct drbg_kat kat2787 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2787_t
+};
+
+static const unsigned char kat2788_entropyin[] = {
+ 0x2e, 0xb1, 0xb2, 0xc3, 0xdb, 0xb0, 0xa6, 0x01, 0xb9, 0x70, 0x1d, 0xb0,
+ 0xf3, 0xf6, 0x34, 0xd3, 0x45, 0x5c, 0x81, 0x52, 0x8c, 0x55, 0x69, 0x65,
+ 0x3d, 0xf9, 0x2f, 0x77, 0x43, 0x4d, 0x47, 0x85, 0x61, 0xce, 0x88, 0x60,
+ 0xa1, 0xcc, 0xa6, 0x85, 0xa9, 0x5c, 0x82, 0x15, 0x4c, 0x05, 0x77, 0x4a,
+};
+static const unsigned char kat2788_nonce[] = {0};
+static const unsigned char kat2788_persstr[] = {0};
+static const unsigned char kat2788_entropyinreseed[] = {
+ 0xc3, 0xc6, 0x41, 0x1c, 0xb7, 0xca, 0xc3, 0xcf, 0xaa, 0x3a, 0xc6, 0x87,
+ 0xd1, 0x92, 0xfb, 0x7e, 0xdf, 0xdf, 0xfc, 0x61, 0x51, 0x19, 0xe0, 0xb3,
+ 0xd1, 0x07, 0x66, 0x93, 0xe7, 0x2f, 0xae, 0xe5, 0xdb, 0xb2, 0x48, 0xaf,
+ 0xcd, 0xd7, 0xd8, 0xe5, 0x09, 0x92, 0x0e, 0x69, 0x57, 0xfe, 0xfc, 0x55,
+};
+static const unsigned char kat2788_addinreseed[] = {
+ 0xd8, 0x3e, 0x03, 0xb9, 0x14, 0x8d, 0x44, 0x5e, 0xca, 0x62, 0x18, 0x16,
+ 0x92, 0xa3, 0x66, 0x22, 0xf1, 0xd1, 0x97, 0x2a, 0x5c, 0x98, 0x81, 0x81,
+ 0xd0, 0x3a, 0x93, 0xf7, 0x65, 0x54, 0xe9, 0xe7, 0xfe, 0xda, 0xee, 0xb0,
+ 0x26, 0x83, 0xd0, 0x0a, 0xc5, 0x39, 0x18, 0x9b, 0xcd, 0x06, 0x50, 0xb5,
+};
+static const unsigned char kat2788_addin0[] = {
+ 0x9e, 0x98, 0xf7, 0x15, 0x32, 0x6b, 0xe4, 0xbf, 0xec, 0x64, 0xda, 0x9c,
+ 0x7d, 0x6c, 0x58, 0x44, 0x40, 0x97, 0x6d, 0xca, 0x41, 0xc3, 0xf2, 0xaa,
+ 0xa3, 0xc5, 0x9c, 0xe3, 0xbe, 0x9c, 0x3c, 0x95, 0x8d, 0x16, 0x7b, 0x41,
+ 0x51, 0x6f, 0xc4, 0xc2, 0xdb, 0xdd, 0x0c, 0xe7, 0xf7, 0x01, 0x54, 0xda,
+};
+static const unsigned char kat2788_addin1[] = {
+ 0x24, 0xb6, 0xd4, 0x87, 0xa6, 0x9f, 0x1f, 0xd5, 0x51, 0xf3, 0xee, 0xe4,
+ 0xfc, 0xff, 0xf0, 0xd5, 0x2f, 0xe9, 0x63, 0xb9, 0x18, 0xaa, 0xd7, 0xa6,
+ 0x6c, 0x14, 0x6f, 0x92, 0x2b, 0x85, 0x1a, 0xd4, 0x64, 0x0b, 0xac, 0x35,
+ 0x88, 0xb4, 0x6a, 0x7e, 0x55, 0xc4, 0x1b, 0xcc, 0x27, 0xf7, 0xf1, 0x12,
+};
+static const unsigned char kat2788_retbits[] = {
+ 0xaa, 0x5f, 0x42, 0x04, 0x3d, 0x1e, 0x39, 0xc0, 0x39, 0xb6, 0xba, 0x8f,
+ 0xae, 0x24, 0x0e, 0xfb, 0x2a, 0xad, 0x26, 0xc5, 0x0d, 0xc7, 0x66, 0xb0,
+ 0x00, 0xe6, 0x4a, 0x08, 0x3c, 0xf4, 0x74, 0x05, 0x1d, 0xb2, 0xed, 0x49,
+ 0x7f, 0x3d, 0xb6, 0x8f, 0x9e, 0xa6, 0xa2, 0x96, 0x1a, 0x3e, 0xe1, 0x7b,
+ 0xe5, 0x81, 0x29, 0xde, 0x44, 0x3c, 0x08, 0x78, 0x67, 0x8a, 0x02, 0x1d,
+ 0xe0, 0xd2, 0x3e, 0x18,
+};
+static const struct drbg_kat_pr_false kat2788_t = {
+ 12, kat2788_entropyin, kat2788_nonce, kat2788_persstr,
+ kat2788_entropyinreseed, kat2788_addinreseed, kat2788_addin0,
+ kat2788_addin1, kat2788_retbits
+};
+static const struct drbg_kat kat2788 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2788_t
+};
+
+static const unsigned char kat2789_entropyin[] = {
+ 0x48, 0xa7, 0x73, 0x52, 0xe7, 0x02, 0x4e, 0xda, 0x47, 0xbf, 0x94, 0xeb,
+ 0xff, 0x6c, 0xb6, 0x1c, 0x78, 0x7e, 0x1e, 0x4a, 0xfa, 0x22, 0x3c, 0x25,
+ 0x4f, 0x1f, 0xdc, 0x8b, 0x71, 0x0b, 0x27, 0xb4, 0x4c, 0x2e, 0x8d, 0xbd,
+ 0x32, 0x1d, 0x12, 0xa6, 0xf5, 0x45, 0x9e, 0xd4, 0x95, 0x66, 0x76, 0x1b,
+};
+static const unsigned char kat2789_nonce[] = {0};
+static const unsigned char kat2789_persstr[] = {0};
+static const unsigned char kat2789_entropyinreseed[] = {
+ 0x4c, 0xec, 0x0a, 0xb2, 0x1a, 0x20, 0xc8, 0x19, 0x2c, 0x12, 0x97, 0xcf,
+ 0x64, 0x88, 0x09, 0x4e, 0x77, 0x93, 0x23, 0xcd, 0x78, 0xe1, 0x7f, 0x05,
+ 0xfc, 0xf0, 0xdb, 0x63, 0x72, 0x93, 0xfb, 0x81, 0xc8, 0xf2, 0x35, 0x25,
+ 0xe6, 0x7b, 0xae, 0xfe, 0xc9, 0x52, 0xc3, 0x4e, 0xa2, 0x3a, 0x7a, 0x6f,
+};
+static const unsigned char kat2789_addinreseed[] = {
+ 0xf7, 0xef, 0x5f, 0x55, 0x3b, 0xd3, 0x4d, 0x53, 0x15, 0x9b, 0x8a, 0x43,
+ 0x8b, 0x9a, 0xe4, 0x19, 0x47, 0xab, 0x4f, 0x45, 0x2f, 0x8e, 0xcf, 0xa6,
+ 0x1b, 0xc0, 0x9c, 0x7d, 0x97, 0x4b, 0x53, 0x93, 0x6a, 0x14, 0xb5, 0x00,
+ 0xbb, 0x90, 0xe8, 0xe9, 0xd3, 0xd5, 0xcf, 0x73, 0x41, 0xa6, 0x0d, 0xa0,
+};
+static const unsigned char kat2789_addin0[] = {
+ 0x5e, 0xc1, 0x77, 0x34, 0x85, 0x77, 0x9c, 0x3d, 0x62, 0x29, 0xf8, 0x9d,
+ 0xc6, 0xc1, 0x60, 0x99, 0xe7, 0x56, 0x1a, 0xd6, 0xb9, 0x82, 0x36, 0x59,
+ 0xc1, 0xbf, 0xe3, 0x95, 0x76, 0xa4, 0x6f, 0xe3, 0xbe, 0x91, 0x27, 0xcb,
+ 0xc4, 0xe7, 0x87, 0x82, 0xfb, 0x09, 0xdb, 0x28, 0x1b, 0x76, 0xbd, 0x1c,
+};
+static const unsigned char kat2789_addin1[] = {
+ 0x53, 0x99, 0x1f, 0x7e, 0x6e, 0xe6, 0xe7, 0x1b, 0x04, 0x50, 0xae, 0x2e,
+ 0x9a, 0xe7, 0xc2, 0x13, 0x0c, 0x89, 0x0a, 0x16, 0x7b, 0xd8, 0xb3, 0x5e,
+ 0x1f, 0x5f, 0x8b, 0xca, 0xf9, 0x9b, 0xf1, 0xd6, 0xcb, 0x1b, 0x35, 0x9b,
+ 0xf6, 0xeb, 0xe9, 0x3a, 0x32, 0xfb, 0xba, 0xb5, 0x81, 0x13, 0x9f, 0xb8,
+};
+static const unsigned char kat2789_retbits[] = {
+ 0x69, 0x7b, 0x34, 0xf5, 0x42, 0x77, 0x86, 0x21, 0xd1, 0x62, 0x11, 0x37,
+ 0x57, 0x15, 0x71, 0x61, 0x0a, 0xc5, 0x4c, 0x2e, 0x32, 0x52, 0x67, 0xc1,
+ 0x22, 0x43, 0x88, 0xdb, 0xa9, 0x95, 0x2b, 0xcf, 0x09, 0x84, 0xf6, 0x22,
+ 0x80, 0x02, 0xb8, 0xe1, 0xfe, 0xad, 0x00, 0x0a, 0x69, 0x76, 0x7b, 0x95,
+ 0x3c, 0x76, 0x22, 0x62, 0x03, 0x55, 0x06, 0x6f, 0x78, 0x8a, 0x79, 0x6f,
+ 0x0a, 0xde, 0xd6, 0x62,
+};
+static const struct drbg_kat_pr_false kat2789_t = {
+ 13, kat2789_entropyin, kat2789_nonce, kat2789_persstr,
+ kat2789_entropyinreseed, kat2789_addinreseed, kat2789_addin0,
+ kat2789_addin1, kat2789_retbits
+};
+static const struct drbg_kat kat2789 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2789_t
+};
+
+static const unsigned char kat2790_entropyin[] = {
+ 0xa2, 0x8d, 0x23, 0x15, 0x5b, 0x97, 0x25, 0x0a, 0x9b, 0xa1, 0x3c, 0x23,
+ 0xf2, 0xe9, 0x1c, 0xbd, 0x39, 0x94, 0xee, 0x89, 0x97, 0xd3, 0x05, 0xb1,
+ 0xb5, 0x7b, 0x2d, 0x91, 0x17, 0x55, 0xc6, 0x25, 0x84, 0xdb, 0xe2, 0x38,
+ 0x34, 0x8d, 0x75, 0xfd, 0x9a, 0xbe, 0x4a, 0x06, 0xae, 0x78, 0xb5, 0x9a,
+};
+static const unsigned char kat2790_nonce[] = {0};
+static const unsigned char kat2790_persstr[] = {0};
+static const unsigned char kat2790_entropyinreseed[] = {
+ 0x4b, 0x64, 0xfc, 0xe2, 0x16, 0x64, 0xdd, 0x54, 0xd0, 0x53, 0x2c, 0xe9,
+ 0x29, 0x58, 0xd2, 0x76, 0xd4, 0xca, 0xdf, 0xe5, 0x34, 0x94, 0x0a, 0x4c,
+ 0xaf, 0xcf, 0xf7, 0x11, 0xc3, 0x75, 0x8d, 0x23, 0xce, 0x1c, 0x14, 0x16,
+ 0x63, 0x08, 0x3b, 0x6f, 0x2a, 0x47, 0x7b, 0x9f, 0x25, 0xb7, 0x0f, 0x22,
+};
+static const unsigned char kat2790_addinreseed[] = {
+ 0xae, 0xea, 0x3d, 0x55, 0x69, 0xb1, 0x3e, 0xc4, 0x2c, 0x1f, 0x62, 0x46,
+ 0x73, 0x66, 0x5d, 0xed, 0x1f, 0x7d, 0x5d, 0xce, 0x6e, 0x71, 0x57, 0x95,
+ 0x4f, 0x7c, 0x51, 0x3e, 0x17, 0x9a, 0x92, 0xd4, 0xe4, 0xbc, 0x72, 0x27,
+ 0x8a, 0xb8, 0x61, 0x62, 0x06, 0xfb, 0x5b, 0x7f, 0xa1, 0xd3, 0x5a, 0x8c,
+};
+static const unsigned char kat2790_addin0[] = {
+ 0xaf, 0xf4, 0x06, 0xd3, 0xd5, 0x14, 0xec, 0x11, 0x8c, 0x9a, 0x8f, 0x47,
+ 0x0d, 0xb3, 0x49, 0x22, 0xb8, 0xbb, 0x26, 0x2f, 0x78, 0xc1, 0xee, 0x6e,
+ 0xcb, 0xc6, 0x47, 0xea, 0xa2, 0xc0, 0xe4, 0xd7, 0xfd, 0x33, 0xd8, 0x1b,
+ 0x3c, 0x90, 0x67, 0xee, 0x4c, 0x57, 0xdd, 0x36, 0xd4, 0x02, 0x38, 0x60,
+};
+static const unsigned char kat2790_addin1[] = {
+ 0x50, 0xd8, 0xe7, 0x88, 0x7d, 0xf0, 0x78, 0x5c, 0x33, 0x1a, 0x38, 0x1b,
+ 0x6f, 0x11, 0x05, 0x7e, 0xd7, 0x20, 0xab, 0xae, 0xce, 0x80, 0xb7, 0xf8,
+ 0x35, 0x83, 0x86, 0xfa, 0xbf, 0x5d, 0xa2, 0x4a, 0x91, 0x2b, 0x8f, 0x15,
+ 0x63, 0x30, 0x1f, 0xbc, 0xd7, 0xad, 0x24, 0x0c, 0x03, 0xa5, 0xe4, 0x44,
+};
+static const unsigned char kat2790_retbits[] = {
+ 0xbe, 0x00, 0x45, 0xc0, 0xbe, 0xe7, 0x0d, 0xaf, 0x5a, 0x57, 0xe5, 0xb4,
+ 0x49, 0xfd, 0xe2, 0xe9, 0x32, 0x0a, 0x0e, 0x0d, 0x42, 0x99, 0x50, 0xec,
+ 0x3b, 0x8e, 0xc1, 0x4c, 0xa2, 0xac, 0xdd, 0x7c, 0xa2, 0xa3, 0x65, 0xbe,
+ 0xbf, 0x11, 0xf4, 0x5f, 0x35, 0x6c, 0x34, 0xf7, 0xe5, 0x2a, 0x8c, 0x39,
+ 0xac, 0x2e, 0x14, 0x18, 0x15, 0x13, 0x4b, 0xab, 0x3b, 0x79, 0xce, 0x3d,
+ 0xc1, 0xd2, 0xa4, 0x4f,
+};
+static const struct drbg_kat_pr_false kat2790_t = {
+ 14, kat2790_entropyin, kat2790_nonce, kat2790_persstr,
+ kat2790_entropyinreseed, kat2790_addinreseed, kat2790_addin0,
+ kat2790_addin1, kat2790_retbits
+};
+static const struct drbg_kat kat2790 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2790_t
+};
+
+static const unsigned char kat2791_entropyin[] = {
+ 0xa3, 0x68, 0x73, 0x75, 0x12, 0x9c, 0x98, 0x86, 0xea, 0x48, 0xa2, 0xf4,
+ 0x9b, 0xe3, 0x28, 0xdd, 0x2b, 0xcf, 0x46, 0x68, 0x9a, 0x59, 0xde, 0x69,
+ 0xa9, 0x29, 0xdc, 0xb0, 0x1e, 0x6b, 0x79, 0xac, 0x96, 0xf9, 0x8d, 0xde,
+ 0xd9, 0xe1, 0x38, 0x11, 0xc2, 0x5c, 0x55, 0x59, 0x7b, 0xbd, 0x3f, 0x8b,
+};
+static const unsigned char kat2791_nonce[] = {0};
+static const unsigned char kat2791_persstr[] = {
+ 0xda, 0x7c, 0x74, 0x2b, 0x40, 0x8d, 0xeb, 0x1b, 0x02, 0x6e, 0xc5, 0xdf,
+ 0xeb, 0x00, 0xdd, 0x07, 0x5f, 0x48, 0x06, 0x9c, 0x18, 0x5e, 0x5d, 0x35,
+ 0x5b, 0x09, 0xef, 0xf8, 0x8f, 0xcc, 0xf2, 0x89, 0xef, 0x04, 0x52, 0x26,
+ 0xc2, 0xe2, 0x99, 0x1e, 0x20, 0xb0, 0x97, 0x64, 0x33, 0x99, 0x4c, 0x0d,
+};
+static const unsigned char kat2791_entropyinreseed[] = {
+ 0x40, 0xca, 0x11, 0x4f, 0x31, 0xa5, 0x45, 0xb9, 0x29, 0xc4, 0x22, 0x5d,
+ 0x0d, 0x21, 0x99, 0x74, 0x3a, 0x5d, 0xf3, 0x6a, 0x83, 0x61, 0x89, 0x2d,
+ 0x5c, 0xdf, 0x35, 0x21, 0x8e, 0xed, 0x63, 0x54, 0xa6, 0x5c, 0xaf, 0x04,
+ 0xd8, 0x61, 0xf6, 0x14, 0x75, 0x62, 0x5b, 0x21, 0x5a, 0xc6, 0x38, 0x3c,
+};
+static const unsigned char kat2791_addinreseed[] = {0};
+static const unsigned char kat2791_addin0[] = {0};
+static const unsigned char kat2791_addin1[] = {0};
+static const unsigned char kat2791_retbits[] = {
+ 0x47, 0xa4, 0x52, 0x1d, 0xd4, 0x5c, 0x7b, 0x72, 0xe3, 0x9b, 0x7b, 0xb6,
+ 0xbe, 0x14, 0xbf, 0xb4, 0x02, 0x9f, 0x33, 0xea, 0x87, 0xbf, 0x11, 0xf1,
+ 0x84, 0x1e, 0x01, 0xd3, 0x37, 0x2d, 0x7a, 0x0c, 0x6d, 0x12, 0x89, 0xe0,
+ 0xec, 0x60, 0x59, 0x9c, 0x28, 0xc4, 0x0f, 0x38, 0x2f, 0x7d, 0xce, 0x33,
+ 0xcf, 0x81, 0x57, 0x55, 0x20, 0xbf, 0xf5, 0x58, 0x00, 0x87, 0xf3, 0x01,
+ 0x08, 0x80, 0xbd, 0xbc,
+};
+static const struct drbg_kat_pr_false kat2791_t = {
+ 0, kat2791_entropyin, kat2791_nonce, kat2791_persstr,
+ kat2791_entropyinreseed, kat2791_addinreseed, kat2791_addin0,
+ kat2791_addin1, kat2791_retbits
+};
+static const struct drbg_kat kat2791 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2791_t
+};
+
+static const unsigned char kat2792_entropyin[] = {
+ 0xdc, 0xe0, 0xfd, 0x6c, 0x4a, 0xcf, 0xf8, 0xf5, 0x09, 0xf0, 0xde, 0xab,
+ 0x69, 0x06, 0xec, 0xd9, 0x22, 0x16, 0xd2, 0x6e, 0x24, 0xf8, 0x07, 0x50,
+ 0x61, 0x3f, 0x19, 0xa0, 0x57, 0x16, 0x83, 0xa6, 0x80, 0x81, 0x65, 0xe3,
+ 0x34, 0xb9, 0x12, 0x8f, 0x8b, 0x0c, 0xaa, 0x36, 0x5d, 0xd9, 0x25, 0x4c,
+};
+static const unsigned char kat2792_nonce[] = {0};
+static const unsigned char kat2792_persstr[] = {
+ 0x55, 0x0d, 0x79, 0xef, 0x80, 0x33, 0x16, 0x8c, 0xfe, 0xed, 0x31, 0x58,
+ 0xc8, 0x28, 0xb8, 0x8a, 0x09, 0xe9, 0x9b, 0x62, 0xed, 0x10, 0xac, 0x65,
+ 0xb3, 0x35, 0x34, 0x54, 0x77, 0x41, 0x37, 0xbb, 0xbb, 0x3d, 0x05, 0xda,
+ 0x17, 0x62, 0x82, 0x38, 0xb7, 0x20, 0x0b, 0x6b, 0x57, 0x65, 0xf9, 0xd8,
+};
+static const unsigned char kat2792_entropyinreseed[] = {
+ 0x73, 0x8c, 0x00, 0x37, 0x8b, 0x79, 0x8a, 0x8a, 0xe8, 0x20, 0x2f, 0xeb,
+ 0xd2, 0x3b, 0x03, 0x49, 0xfd, 0xb1, 0xb2, 0x7d, 0x0d, 0xac, 0x45, 0x8a,
+ 0x01, 0x7a, 0x56, 0xb3, 0x94, 0x03, 0x38, 0x18, 0xf9, 0xaa, 0x50, 0x67,
+ 0xcf, 0xf4, 0x9a, 0xf5, 0xe0, 0x3e, 0x26, 0x6c, 0x65, 0xfc, 0xfb, 0x5d,
+};
+static const unsigned char kat2792_addinreseed[] = {0};
+static const unsigned char kat2792_addin0[] = {0};
+static const unsigned char kat2792_addin1[] = {0};
+static const unsigned char kat2792_retbits[] = {
+ 0x6f, 0x06, 0xb1, 0xf8, 0x73, 0x6a, 0x25, 0x63, 0x90, 0x33, 0x52, 0x6a,
+ 0x84, 0xb1, 0x21, 0x5c, 0xfe, 0xf4, 0x9b, 0x1d, 0xa0, 0x48, 0xf4, 0x03,
+ 0xfa, 0x7b, 0x34, 0xa1, 0x47, 0xc6, 0x54, 0x69, 0xac, 0x39, 0x6f, 0x20,
+ 0xdd, 0x68, 0x92, 0x98, 0x04, 0x51, 0xda, 0xeb, 0xa1, 0xb8, 0x7c, 0x3d,
+ 0x47, 0x1f, 0x32, 0xf2, 0xd0, 0x9b, 0x4f, 0x34, 0x0c, 0x3e, 0x35, 0xfb,
+ 0xfc, 0x1b, 0x99, 0x69,
+};
+static const struct drbg_kat_pr_false kat2792_t = {
+ 1, kat2792_entropyin, kat2792_nonce, kat2792_persstr,
+ kat2792_entropyinreseed, kat2792_addinreseed, kat2792_addin0,
+ kat2792_addin1, kat2792_retbits
+};
+static const struct drbg_kat kat2792 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2792_t
+};
+
+static const unsigned char kat2793_entropyin[] = {
+ 0x18, 0x1c, 0x55, 0x91, 0x4e, 0x45, 0x72, 0x53, 0xd4, 0x66, 0xa5, 0x62,
+ 0x21, 0x16, 0x32, 0xeb, 0x16, 0x4c, 0x83, 0x2b, 0x61, 0x77, 0xf6, 0x14,
+ 0x1e, 0x46, 0xfa, 0x9f, 0x2c, 0x88, 0x31, 0x59, 0xfe, 0x23, 0x31, 0xf9,
+ 0xf3, 0x36, 0x7f, 0x30, 0xcd, 0x2d, 0x8b, 0xa1, 0xe8, 0x93, 0x50, 0x55,
+};
+static const unsigned char kat2793_nonce[] = {0};
+static const unsigned char kat2793_persstr[] = {
+ 0x15, 0x4b, 0x2a, 0xfe, 0x46, 0x2a, 0xf6, 0x5b, 0x12, 0xdb, 0xe2, 0x87,
+ 0x26, 0x5f, 0xa5, 0xa6, 0xc2, 0x56, 0xc0, 0x0d, 0x9b, 0x7e, 0x4c, 0x3e,
+ 0x22, 0x08, 0xcb, 0x69, 0x6a, 0x73, 0x61, 0xe9, 0xbf, 0xb6, 0x7c, 0x8a,
+ 0xd4, 0xe8, 0xa0, 0x62, 0xf9, 0xd1, 0xd4, 0xbc, 0x4a, 0x08, 0x3b, 0x47,
+};
+static const unsigned char kat2793_entropyinreseed[] = {
+ 0x03, 0xf7, 0xfb, 0xb8, 0xfa, 0x8e, 0x99, 0xd7, 0x35, 0xdf, 0xd0, 0x64,
+ 0x12, 0x65, 0xdb, 0x18, 0x89, 0x62, 0xa6, 0xd7, 0x23, 0x8c, 0xc8, 0x7a,
+ 0xc6, 0x25, 0x0f, 0x1a, 0x53, 0x89, 0x7d, 0x07, 0x41, 0xb1, 0xb0, 0x17,
+ 0x34, 0x0c, 0xba, 0x42, 0x67, 0xc5, 0x10, 0xa8, 0x12, 0xb2, 0x2a, 0x94,
+};
+static const unsigned char kat2793_addinreseed[] = {0};
+static const unsigned char kat2793_addin0[] = {0};
+static const unsigned char kat2793_addin1[] = {0};
+static const unsigned char kat2793_retbits[] = {
+ 0x0e, 0x8d, 0x00, 0x74, 0x97, 0x03, 0x39, 0x01, 0xb3, 0xbe, 0x46, 0x0d,
+ 0x6c, 0x54, 0x5b, 0x82, 0x0f, 0x51, 0x03, 0x5b, 0xa3, 0x3a, 0x47, 0x26,
+ 0xde, 0xed, 0x2d, 0xcd, 0x24, 0x05, 0xe3, 0x10, 0x6a, 0x8c, 0x79, 0xde,
+ 0x92, 0x9f, 0x79, 0xee, 0x92, 0xa5, 0x5e, 0x2e, 0x65, 0xc0, 0xdd, 0x63,
+ 0xb8, 0x2b, 0xcd, 0x19, 0xa0, 0x85, 0x99, 0x21, 0x53, 0x1e, 0x06, 0x3a,
+ 0x07, 0xdd, 0x0f, 0x8c,
+};
+static const struct drbg_kat_pr_false kat2793_t = {
+ 2, kat2793_entropyin, kat2793_nonce, kat2793_persstr,
+ kat2793_entropyinreseed, kat2793_addinreseed, kat2793_addin0,
+ kat2793_addin1, kat2793_retbits
+};
+static const struct drbg_kat kat2793 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2793_t
+};
+
+static const unsigned char kat2794_entropyin[] = {
+ 0x1f, 0xa7, 0x41, 0xe7, 0x3b, 0x3b, 0x75, 0xe9, 0x97, 0x7e, 0xec, 0x90,
+ 0x20, 0x5c, 0x34, 0xdc, 0x57, 0xb8, 0xcf, 0xc1, 0x70, 0x84, 0x07, 0x92,
+ 0xe0, 0xda, 0xf7, 0x0f, 0x3a, 0x11, 0x89, 0xb1, 0x7b, 0x68, 0x99, 0x23,
+ 0xc8, 0x48, 0x7c, 0x26, 0x84, 0x65, 0x95, 0x14, 0x87, 0x75, 0xa8, 0xa9,
+};
+static const unsigned char kat2794_nonce[] = {0};
+static const unsigned char kat2794_persstr[] = {
+ 0xd5, 0x97, 0x32, 0xb5, 0xa1, 0x5d, 0xcf, 0x62, 0xc8, 0x65, 0xb5, 0x2f,
+ 0xab, 0xce, 0x93, 0x06, 0xb2, 0xc1, 0x56, 0x88, 0x8f, 0x84, 0x30, 0xf8,
+ 0x16, 0xd0, 0x7a, 0x2c, 0x15, 0xf2, 0x15, 0xe7, 0xe9, 0x60, 0x89, 0x94,
+ 0x5c, 0x71, 0xa6, 0x0d, 0x11, 0x26, 0x0c, 0xf2, 0x99, 0x9a, 0x9b, 0xf7,
+};
+static const unsigned char kat2794_entropyinreseed[] = {
+ 0xe2, 0xaa, 0x12, 0x84, 0x2d, 0x2d, 0x5d, 0xad, 0xcb, 0xbc, 0x15, 0x01,
+ 0x17, 0x24, 0x47, 0xe0, 0x08, 0x62, 0x63, 0x04, 0x14, 0xcd, 0xb2, 0x21,
+ 0x17, 0xdc, 0xe2, 0xcd, 0x3d, 0xee, 0xfc, 0x0d, 0xa2, 0x18, 0xae, 0x26,
+ 0x74, 0x96, 0x66, 0x4e, 0x3b, 0x76, 0x01, 0xb4, 0xd6, 0xe7, 0xff, 0xa0,
+};
+static const unsigned char kat2794_addinreseed[] = {0};
+static const unsigned char kat2794_addin0[] = {0};
+static const unsigned char kat2794_addin1[] = {0};
+static const unsigned char kat2794_retbits[] = {
+ 0x9d, 0x63, 0xf1, 0x58, 0x4b, 0x41, 0xc0, 0xa3, 0x39, 0x3b, 0x88, 0xf1,
+ 0x44, 0xf2, 0x5e, 0x74, 0x49, 0x6f, 0x38, 0xa6, 0x2d, 0xc4, 0xc8, 0x70,
+ 0xb8, 0xa2, 0x85, 0xfa, 0x08, 0x19, 0x6c, 0x2d, 0x65, 0xf9, 0xd9, 0x2e,
+ 0xfc, 0xde, 0xdb, 0x4a, 0x41, 0x51, 0x89, 0x7d, 0x79, 0x98, 0xd4, 0x98,
+ 0xa0, 0x62, 0xc4, 0x53, 0x3d, 0xff, 0xa5, 0x70, 0x1c, 0x78, 0xdd, 0x57,
+ 0x46, 0x86, 0x4f, 0x42,
+};
+static const struct drbg_kat_pr_false kat2794_t = {
+ 3, kat2794_entropyin, kat2794_nonce, kat2794_persstr,
+ kat2794_entropyinreseed, kat2794_addinreseed, kat2794_addin0,
+ kat2794_addin1, kat2794_retbits
+};
+static const struct drbg_kat kat2794 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2794_t
+};
+
+static const unsigned char kat2795_entropyin[] = {
+ 0x1c, 0xd1, 0xa0, 0x73, 0x93, 0xd6, 0xfb, 0x0e, 0x28, 0xd1, 0x20, 0xa5,
+ 0x79, 0xd4, 0x9c, 0x62, 0x78, 0xce, 0x5f, 0x08, 0xa9, 0x52, 0xcb, 0xa8,
+ 0x6c, 0x58, 0xce, 0x71, 0x2c, 0x94, 0x48, 0x8e, 0xa8, 0x05, 0x85, 0xb8,
+ 0x04, 0x91, 0x09, 0xca, 0xf7, 0x91, 0x79, 0xc8, 0xee, 0x30, 0x7b, 0xa7,
+};
+static const unsigned char kat2795_nonce[] = {0};
+static const unsigned char kat2795_persstr[] = {
+ 0xcf, 0x7d, 0xc6, 0x09, 0xb1, 0x0c, 0xa1, 0x3d, 0xd9, 0xff, 0x5e, 0xeb,
+ 0xf4, 0x6c, 0x7b, 0x87, 0x77, 0x30, 0xba, 0x20, 0x01, 0x26, 0xd4, 0x66,
+ 0x84, 0x7a, 0x79, 0xe8, 0x5e, 0x09, 0x85, 0xce, 0x86, 0xec, 0x4d, 0x10,
+ 0x2f, 0xe5, 0x14, 0xd3, 0x25, 0x69, 0x50, 0xd0, 0x69, 0xb4, 0x0a, 0x43,
+};
+static const unsigned char kat2795_entropyinreseed[] = {
+ 0xa2, 0xa5, 0xfe, 0x34, 0x07, 0x51, 0x0e, 0xb8, 0x2d, 0xc9, 0xcb, 0xc3,
+ 0xa4, 0x81, 0x1f, 0x9c, 0x92, 0x83, 0x2b, 0x69, 0x95, 0xb6, 0x78, 0x41,
+ 0x1b, 0xae, 0xde, 0x9d, 0xea, 0xb6, 0x8c, 0x5d, 0x7b, 0x12, 0x13, 0xc1,
+ 0x39, 0xf2, 0xe0, 0x14, 0x39, 0xd7, 0x68, 0x53, 0xd0, 0x49, 0x64, 0x77,
+};
+static const unsigned char kat2795_addinreseed[] = {0};
+static const unsigned char kat2795_addin0[] = {0};
+static const unsigned char kat2795_addin1[] = {0};
+static const unsigned char kat2795_retbits[] = {
+ 0x14, 0x38, 0x2b, 0xdc, 0x4e, 0x43, 0x0b, 0x2c, 0x89, 0x6c, 0x2c, 0x59,
+ 0x7d, 0x2f, 0xe8, 0x5f, 0x52, 0x4e, 0x90, 0x8a, 0xb2, 0x35, 0x39, 0x15,
+ 0x8c, 0xfd, 0xef, 0x48, 0x1a, 0x69, 0x40, 0x91, 0x81, 0xf0, 0x59, 0x4f,
+ 0xe6, 0xc5, 0x4d, 0xb7, 0xa0, 0x52, 0xb0, 0x01, 0xc4, 0xcb, 0x03, 0xd6,
+ 0xa7, 0x07, 0xb5, 0x92, 0x39, 0xe7, 0xd5, 0xf1, 0xc6, 0xe0, 0x8a, 0xa6,
+ 0x25, 0x74, 0x0c, 0x2d,
+};
+static const struct drbg_kat_pr_false kat2795_t = {
+ 4, kat2795_entropyin, kat2795_nonce, kat2795_persstr,
+ kat2795_entropyinreseed, kat2795_addinreseed, kat2795_addin0,
+ kat2795_addin1, kat2795_retbits
+};
+static const struct drbg_kat kat2795 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2795_t
+};
+
+static const unsigned char kat2796_entropyin[] = {
+ 0x14, 0xf5, 0xc7, 0x7d, 0x7f, 0xc6, 0x4b, 0x04, 0xd3, 0xc7, 0x32, 0x68,
+ 0xbf, 0x93, 0x6e, 0x6c, 0x07, 0x5b, 0x32, 0x69, 0x46, 0x2d, 0xc6, 0x18,
+ 0x58, 0x84, 0x42, 0x13, 0x31, 0xb7, 0xa8, 0x40, 0xfb, 0xc7, 0xc3, 0xc3,
+ 0x1e, 0x26, 0x9b, 0x2b, 0xfc, 0x8c, 0xbc, 0xa5, 0x3f, 0x85, 0x4c, 0x98,
+};
+static const unsigned char kat2796_nonce[] = {0};
+static const unsigned char kat2796_persstr[] = {
+ 0xe4, 0xb3, 0x96, 0xca, 0x9f, 0xf4, 0xe4, 0x07, 0x90, 0x02, 0x84, 0x08,
+ 0x4a, 0xef, 0x7a, 0xa4, 0x79, 0xea, 0xd2, 0x2a, 0xa6, 0x72, 0x56, 0x5d,
+ 0x81, 0x01, 0x0f, 0x1d, 0x4a, 0x70, 0x28, 0x36, 0x76, 0xbd, 0xc2, 0x0c,
+ 0xba, 0x71, 0xf8, 0xf0, 0xab, 0x8d, 0x1e, 0x02, 0x4a, 0x0d, 0x2e, 0x66,
+};
+static const unsigned char kat2796_entropyinreseed[] = {
+ 0xb6, 0x32, 0xaf, 0xd8, 0x48, 0x1f, 0x67, 0x35, 0x2d, 0x53, 0x4e, 0x24,
+ 0x0c, 0xfa, 0x4f, 0x5e, 0x74, 0x05, 0x70, 0x7d, 0xf5, 0xba, 0x17, 0xa4,
+ 0x1c, 0xfa, 0x17, 0xc5, 0x74, 0xb7, 0x09, 0x75, 0x58, 0xb0, 0x8c, 0x36,
+ 0x1c, 0x6f, 0x04, 0x65, 0xc7, 0x35, 0x1b, 0xc2, 0xcb, 0x96, 0xd7, 0xd3,
+};
+static const unsigned char kat2796_addinreseed[] = {0};
+static const unsigned char kat2796_addin0[] = {0};
+static const unsigned char kat2796_addin1[] = {0};
+static const unsigned char kat2796_retbits[] = {
+ 0xdd, 0xbf, 0x4c, 0x5d, 0xc3, 0x22, 0x20, 0x27, 0x18, 0xd0, 0xb4, 0x8a,
+ 0x16, 0xf1, 0x8c, 0x14, 0xfc, 0xee, 0xb9, 0xd1, 0x78, 0xe0, 0xfb, 0x03,
+ 0x8b, 0x0a, 0xe6, 0xb0, 0x1d, 0x6b, 0x0d, 0x6d, 0xd0, 0x66, 0x49, 0xe8,
+ 0x18, 0x97, 0x26, 0xf1, 0x2b, 0x50, 0xf7, 0xec, 0x53, 0xf2, 0x50, 0xec,
+ 0x18, 0x07, 0x8d, 0xa6, 0x7b, 0x56, 0xfd, 0x7b, 0xa8, 0xcd, 0xb3, 0xca,
+ 0xd1, 0xa6, 0x02, 0xec,
+};
+static const struct drbg_kat_pr_false kat2796_t = {
+ 5, kat2796_entropyin, kat2796_nonce, kat2796_persstr,
+ kat2796_entropyinreseed, kat2796_addinreseed, kat2796_addin0,
+ kat2796_addin1, kat2796_retbits
+};
+static const struct drbg_kat kat2796 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2796_t
+};
+
+static const unsigned char kat2797_entropyin[] = {
+ 0x45, 0x32, 0x9b, 0xc7, 0x46, 0x85, 0xc7, 0xb2, 0x9a, 0x1e, 0x9b, 0xb9,
+ 0xe6, 0xc1, 0x9e, 0xac, 0xf9, 0xa1, 0xec, 0xd1, 0x68, 0xbe, 0x3b, 0x5a,
+ 0x2e, 0x2f, 0xf4, 0x37, 0xb5, 0xe6, 0xcd, 0xd5, 0x6e, 0x89, 0xa4, 0xb2,
+ 0xb8, 0xb6, 0xab, 0xb5, 0x27, 0x13, 0xa4, 0x8a, 0x51, 0xcc, 0xb3, 0x02,
+};
+static const unsigned char kat2797_nonce[] = {0};
+static const unsigned char kat2797_persstr[] = {
+ 0xd6, 0xb1, 0x95, 0x5d, 0x30, 0xdb, 0x95, 0x3a, 0x40, 0x09, 0xc7, 0x66,
+ 0x4b, 0x96, 0xae, 0xf4, 0x7c, 0xc3, 0x0d, 0x33, 0xdb, 0x74, 0x98, 0x6b,
+ 0x17, 0x1e, 0xb1, 0x99, 0xc3, 0x92, 0x25, 0xe0, 0xeb, 0xd2, 0x5c, 0x7a,
+ 0xba, 0xcc, 0x06, 0xed, 0x6c, 0x27, 0x92, 0x1c, 0x2f, 0x9d, 0x7e, 0x10,
+};
+static const unsigned char kat2797_entropyinreseed[] = {
+ 0x6e, 0x5c, 0x46, 0x4c, 0xc4, 0x65, 0x80, 0x18, 0x87, 0xc5, 0x72, 0x91,
+ 0xd4, 0x74, 0x75, 0xac, 0x48, 0x1c, 0x98, 0xd0, 0x33, 0xa8, 0x96, 0x30,
+ 0x53, 0xf2, 0xf6, 0x14, 0xe9, 0x95, 0xd1, 0x43, 0x5a, 0x4b, 0x2d, 0x52,
+ 0x49, 0xcb, 0xf8, 0x3f, 0x62, 0x0d, 0x74, 0x37, 0x0d, 0x48, 0xc5, 0x81,
+};
+static const unsigned char kat2797_addinreseed[] = {0};
+static const unsigned char kat2797_addin0[] = {0};
+static const unsigned char kat2797_addin1[] = {0};
+static const unsigned char kat2797_retbits[] = {
+ 0x96, 0xc6, 0x58, 0x3b, 0x98, 0xf2, 0xd7, 0x5c, 0x9b, 0x6c, 0x87, 0xaa,
+ 0xa7, 0x88, 0xca, 0x6d, 0xd9, 0xda, 0x10, 0xb0, 0x27, 0x32, 0x00, 0x1b,
+ 0x55, 0xab, 0x1c, 0xe7, 0x32, 0x3c, 0xb4, 0xd6, 0x0c, 0x60, 0x59, 0xe1,
+ 0xed, 0x95, 0xc0, 0x56, 0x13, 0x02, 0xd2, 0xce, 0x43, 0x81, 0xbf, 0xae,
+ 0x8c, 0x2b, 0x7c, 0x49, 0x18, 0x3a, 0xb7, 0x2b, 0x42, 0xf8, 0x0b, 0x7a,
+ 0xd1, 0x58, 0x7b, 0x75,
+};
+static const struct drbg_kat_pr_false kat2797_t = {
+ 6, kat2797_entropyin, kat2797_nonce, kat2797_persstr,
+ kat2797_entropyinreseed, kat2797_addinreseed, kat2797_addin0,
+ kat2797_addin1, kat2797_retbits
+};
+static const struct drbg_kat kat2797 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2797_t
+};
+
+static const unsigned char kat2798_entropyin[] = {
+ 0x63, 0x3a, 0xd6, 0xf4, 0xcf, 0x50, 0x3c, 0x71, 0x74, 0x6c, 0x19, 0xba,
+ 0x66, 0x3d, 0x33, 0xc4, 0x4b, 0x11, 0x7f, 0x5f, 0xe1, 0x82, 0x90, 0x40,
+ 0x59, 0xf1, 0x9e, 0xa9, 0x3a, 0x86, 0x95, 0xcf, 0x8d, 0x91, 0x9d, 0xa9,
+ 0xe2, 0x6f, 0x58, 0x85, 0x30, 0x52, 0x94, 0xea, 0x25, 0x1f, 0x81, 0x18,
+};
+static const unsigned char kat2798_nonce[] = {0};
+static const unsigned char kat2798_persstr[] = {
+ 0x2c, 0xb1, 0x47, 0x94, 0xde, 0x9e, 0xd7, 0x1b, 0x4c, 0x72, 0xab, 0x22,
+ 0x19, 0x0a, 0x18, 0x58, 0x1c, 0x1c, 0xe5, 0xdc, 0x4f, 0x29, 0x69, 0x0b,
+ 0xd5, 0x82, 0x5f, 0xaf, 0x8f, 0x06, 0x7b, 0x11, 0xa0, 0x65, 0x90, 0xdc,
+ 0xd7, 0x47, 0x6f, 0xff, 0xaf, 0x89, 0xc9, 0x7d, 0x86, 0xb4, 0x2d, 0x96,
+};
+static const unsigned char kat2798_entropyinreseed[] = {
+ 0x55, 0xc4, 0x9d, 0x46, 0xf1, 0x0d, 0x08, 0x54, 0xa8, 0x04, 0xbb, 0xf2,
+ 0xcc, 0x69, 0x91, 0x41, 0x95, 0xaf, 0x22, 0x7a, 0xfc, 0x5e, 0xa2, 0xb2,
+ 0x35, 0xf4, 0x9d, 0x75, 0x58, 0xf7, 0x4d, 0x02, 0x69, 0xc4, 0xfa, 0x96,
+ 0xe9, 0xe1, 0x62, 0x3c, 0xc8, 0x58, 0x13, 0xee, 0xa2, 0x28, 0xeb, 0x43,
+};
+static const unsigned char kat2798_addinreseed[] = {0};
+static const unsigned char kat2798_addin0[] = {0};
+static const unsigned char kat2798_addin1[] = {0};
+static const unsigned char kat2798_retbits[] = {
+ 0x47, 0x1f, 0xf7, 0x0d, 0xf1, 0x71, 0x53, 0x53, 0x68, 0xf1, 0x96, 0xbb,
+ 0x26, 0x61, 0x00, 0xdb, 0xe1, 0xbc, 0x3f, 0x2b, 0x1c, 0xe1, 0xe2, 0xd6,
+ 0x05, 0x5f, 0x40, 0x97, 0x67, 0x62, 0x18, 0x8a, 0xbd, 0xcf, 0xac, 0xb5,
+ 0x2b, 0x80, 0x80, 0xbd, 0x24, 0x1b, 0x88, 0xfe, 0xff, 0x2e, 0x1c, 0x16,
+ 0x74, 0xa1, 0xb7, 0xc4, 0x4a, 0x9f, 0x60, 0x28, 0xc9, 0xfd, 0x6a, 0x41,
+ 0x2f, 0xc4, 0x43, 0x18,
+};
+static const struct drbg_kat_pr_false kat2798_t = {
+ 7, kat2798_entropyin, kat2798_nonce, kat2798_persstr,
+ kat2798_entropyinreseed, kat2798_addinreseed, kat2798_addin0,
+ kat2798_addin1, kat2798_retbits
+};
+static const struct drbg_kat kat2798 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2798_t
+};
+
+static const unsigned char kat2799_entropyin[] = {
+ 0x75, 0x1e, 0x97, 0x7d, 0x77, 0x58, 0xc7, 0x50, 0x25, 0x28, 0xbb, 0xce,
+ 0x7a, 0xda, 0x64, 0xc1, 0xba, 0x33, 0x5a, 0x33, 0x9d, 0x94, 0x85, 0xfa,
+ 0x91, 0xc6, 0x5d, 0x4e, 0x66, 0x97, 0xee, 0xfa, 0x46, 0xeb, 0xd3, 0x83,
+ 0x4d, 0x80, 0xdb, 0x42, 0xbd, 0xf9, 0x50, 0xf6, 0xe0, 0x06, 0xa5, 0x5e,
+};
+static const unsigned char kat2799_nonce[] = {0};
+static const unsigned char kat2799_persstr[] = {
+ 0x5b, 0x42, 0xeb, 0x47, 0x91, 0x87, 0xfa, 0xc0, 0x97, 0x2e, 0x58, 0x28,
+ 0xf2, 0x7a, 0x5f, 0x73, 0xda, 0xec, 0x30, 0x6e, 0x06, 0xaa, 0x64, 0x9f,
+ 0x5d, 0x5b, 0xa5, 0x3b, 0xc1, 0xa6, 0x48, 0x4c, 0x2c, 0xa3, 0x5b, 0xed,
+ 0x94, 0x6f, 0xa1, 0xa4, 0x3e, 0xd3, 0x40, 0x65, 0x57, 0x9e, 0x3f, 0xc0,
+};
+static const unsigned char kat2799_entropyinreseed[] = {
+ 0xd5, 0x5d, 0x4a, 0x2f, 0xc2, 0x96, 0x4b, 0xa0, 0x3e, 0x0a, 0x30, 0x3a,
+ 0xba, 0xb5, 0xdd, 0x8f, 0x38, 0x10, 0x26, 0x06, 0xf0, 0x01, 0x92, 0x92,
+ 0x3a, 0xa3, 0x14, 0xde, 0x9f, 0xa4, 0x0f, 0x62, 0xa4, 0xa5, 0xd0, 0xd1,
+ 0x62, 0xe7, 0x17, 0x4e, 0xc5, 0xec, 0x6e, 0x4d, 0x2b, 0x24, 0xf0, 0xff,
+};
+static const unsigned char kat2799_addinreseed[] = {0};
+static const unsigned char kat2799_addin0[] = {0};
+static const unsigned char kat2799_addin1[] = {0};
+static const unsigned char kat2799_retbits[] = {
+ 0x3b, 0xb4, 0x7e, 0xdc, 0x5b, 0xe1, 0x04, 0x92, 0x28, 0x02, 0x2c, 0x59,
+ 0x3b, 0xdd, 0x6c, 0x84, 0xc6, 0x67, 0x96, 0xb5, 0xce, 0xaa, 0xba, 0x1d,
+ 0x91, 0x98, 0xa4, 0x7a, 0x4c, 0x35, 0xcf, 0x18, 0xe2, 0x6e, 0x33, 0xbf,
+ 0x46, 0x42, 0xe9, 0xcc, 0x2d, 0x91, 0x8a, 0x6b, 0x6f, 0x95, 0x7d, 0x18,
+ 0x3a, 0x56, 0x1a, 0xfd, 0x59, 0x5f, 0x38, 0xb7, 0x8d, 0xe0, 0x54, 0xc4,
+ 0x77, 0x63, 0x26, 0x91,
+};
+static const struct drbg_kat_pr_false kat2799_t = {
+ 8, kat2799_entropyin, kat2799_nonce, kat2799_persstr,
+ kat2799_entropyinreseed, kat2799_addinreseed, kat2799_addin0,
+ kat2799_addin1, kat2799_retbits
+};
+static const struct drbg_kat kat2799 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2799_t
+};
+
+static const unsigned char kat2800_entropyin[] = {
+ 0x0b, 0x51, 0x13, 0x5d, 0x3d, 0xa2, 0x43, 0x2f, 0xcf, 0x11, 0xdd, 0xa0,
+ 0x87, 0xf7, 0xd1, 0x6f, 0xa5, 0xeb, 0xa2, 0xeb, 0xa0, 0xe1, 0x64, 0x8d,
+ 0x20, 0xd9, 0xe9, 0x45, 0x4c, 0x20, 0xbf, 0xe7, 0xcf, 0x45, 0x20, 0x56,
+ 0x45, 0x39, 0xd6, 0xaf, 0x4c, 0x50, 0x8a, 0x3e, 0xff, 0x21, 0xa0, 0x7d,
+};
+static const unsigned char kat2800_nonce[] = {0};
+static const unsigned char kat2800_persstr[] = {
+ 0x1f, 0x16, 0x7d, 0xef, 0x62, 0xfd, 0x06, 0x15, 0x8b, 0x63, 0xe4, 0x6f,
+ 0x62, 0x70, 0x01, 0x2c, 0xa9, 0x8f, 0x5b, 0xee, 0x3f, 0x53, 0x46, 0x5e,
+ 0xc7, 0x54, 0x60, 0xe6, 0xf1, 0x46, 0x1c, 0x40, 0xa1, 0x7e, 0x06, 0xf9,
+ 0xa1, 0x98, 0xa5, 0x89, 0xb1, 0x76, 0xc5, 0x1b, 0xeb, 0x12, 0x95, 0x41,
+};
+static const unsigned char kat2800_entropyinreseed[] = {
+ 0xed, 0xd8, 0xa4, 0x70, 0xef, 0x55, 0xfe, 0x21, 0x68, 0xce, 0x55, 0x59,
+ 0xa6, 0xb4, 0x9b, 0x70, 0xf8, 0xc1, 0x03, 0xaf, 0xbc, 0xa8, 0xab, 0xff,
+ 0x76, 0x0c, 0xf7, 0x53, 0xdc, 0x54, 0xb9, 0xda, 0xdd, 0xc0, 0x10, 0x9d,
+ 0x33, 0xf7, 0x3b, 0x5c, 0xb4, 0x1a, 0xc3, 0x5a, 0xd1, 0x74, 0x97, 0xfe,
+};
+static const unsigned char kat2800_addinreseed[] = {0};
+static const unsigned char kat2800_addin0[] = {0};
+static const unsigned char kat2800_addin1[] = {0};
+static const unsigned char kat2800_retbits[] = {
+ 0x7f, 0x37, 0x30, 0xcd, 0x13, 0x39, 0x99, 0x22, 0x47, 0x64, 0x99, 0xcd,
+ 0x42, 0xa4, 0x75, 0x9a, 0xc2, 0x12, 0xd2, 0x86, 0x01, 0xa3, 0x49, 0x7b,
+ 0x22, 0x33, 0x3e, 0xbc, 0xc6, 0x78, 0xf6, 0xd8, 0x05, 0xf6, 0x6c, 0xd1,
+ 0xb9, 0x82, 0xbc, 0xbe, 0x9f, 0x4b, 0x36, 0x38, 0x48, 0x71, 0x89, 0x04,
+ 0x5e, 0xfe, 0x55, 0xba, 0x19, 0x06, 0x4c, 0x9f, 0x07, 0x5d, 0xec, 0x9e,
+ 0x55, 0x32, 0x00, 0x98,
+};
+static const struct drbg_kat_pr_false kat2800_t = {
+ 9, kat2800_entropyin, kat2800_nonce, kat2800_persstr,
+ kat2800_entropyinreseed, kat2800_addinreseed, kat2800_addin0,
+ kat2800_addin1, kat2800_retbits
+};
+static const struct drbg_kat kat2800 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2800_t
+};
+
+static const unsigned char kat2801_entropyin[] = {
+ 0x27, 0xd1, 0xb6, 0x59, 0xd8, 0x30, 0x06, 0xbd, 0xb2, 0x1f, 0x96, 0xe9,
+ 0x2b, 0x92, 0x80, 0x2a, 0x56, 0xcb, 0x96, 0xd8, 0x03, 0x19, 0x52, 0x8b,
+ 0x24, 0x3d, 0x1a, 0xa5, 0xdb, 0xb2, 0x6a, 0xbf, 0x66, 0xba, 0x9b, 0x60,
+ 0x35, 0xe0, 0xd9, 0xf1, 0x74, 0x62, 0x3a, 0xd0, 0x33, 0xdf, 0x2b, 0xa1,
+};
+static const unsigned char kat2801_nonce[] = {0};
+static const unsigned char kat2801_persstr[] = {
+ 0xe7, 0x53, 0x57, 0x03, 0xc1, 0x10, 0x48, 0xc4, 0xfd, 0x19, 0x31, 0x52,
+ 0x6b, 0x2d, 0xcc, 0x5f, 0x6f, 0x26, 0xaa, 0x97, 0x24, 0x7e, 0xa8, 0xbb,
+ 0x18, 0x31, 0xdc, 0xd7, 0xc3, 0xf5, 0xa4, 0xd6, 0x5b, 0xdd, 0xd5, 0x0f,
+ 0x4f, 0xa3, 0x59, 0x3a, 0xfd, 0x30, 0x58, 0x6e, 0x86, 0x3b, 0x90, 0x06,
+};
+static const unsigned char kat2801_entropyinreseed[] = {
+ 0x5c, 0xa1, 0x90, 0x8a, 0xe5, 0x27, 0x7c, 0x17, 0xf1, 0xb2, 0xff, 0xc4,
+ 0x01, 0x6e, 0x7b, 0x1c, 0x81, 0xbf, 0xb2, 0x3e, 0xb0, 0xfa, 0x9b, 0x1f,
+ 0xba, 0xba, 0xc1, 0xf5, 0x8d, 0xe6, 0x96, 0x91, 0x57, 0xc0, 0x69, 0x45,
+ 0x1d, 0x88, 0xcd, 0x41, 0x18, 0x3a, 0xe6, 0xbf, 0x9b, 0x09, 0x24, 0x66,
+};
+static const unsigned char kat2801_addinreseed[] = {0};
+static const unsigned char kat2801_addin0[] = {0};
+static const unsigned char kat2801_addin1[] = {0};
+static const unsigned char kat2801_retbits[] = {
+ 0x3d, 0x4e, 0x16, 0xcc, 0xe1, 0x6a, 0xb1, 0x6e, 0x81, 0x3a, 0xfe, 0x20,
+ 0x20, 0xbd, 0xfe, 0x9f, 0x48, 0xf2, 0x51, 0xe6, 0x93, 0x4f, 0x2d, 0xb3,
+ 0xd3, 0xd2, 0xd5, 0x20, 0x39, 0x0d, 0x78, 0xd2, 0xea, 0x84, 0xe3, 0xde,
+ 0x56, 0xe3, 0x8f, 0x44, 0x4f, 0xce, 0x89, 0xba, 0xa1, 0xc2, 0x12, 0xae,
+ 0x15, 0x97, 0x3b, 0xa1, 0xe9, 0xf5, 0xdb, 0x1a, 0xec, 0x06, 0xec, 0x4e,
+ 0x4b, 0x56, 0xf6, 0x44,
+};
+static const struct drbg_kat_pr_false kat2801_t = {
+ 10, kat2801_entropyin, kat2801_nonce, kat2801_persstr,
+ kat2801_entropyinreseed, kat2801_addinreseed, kat2801_addin0,
+ kat2801_addin1, kat2801_retbits
+};
+static const struct drbg_kat kat2801 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2801_t
+};
+
+static const unsigned char kat2802_entropyin[] = {
+ 0xd5, 0x71, 0x27, 0x11, 0x2c, 0x44, 0xd1, 0xf4, 0xe9, 0x4c, 0x0c, 0x78,
+ 0x5f, 0x5c, 0x66, 0xf9, 0x23, 0x4a, 0x80, 0x59, 0x10, 0xf8, 0x84, 0x5c,
+ 0x20, 0x86, 0x5a, 0x79, 0x03, 0x1b, 0x74, 0xed, 0xf0, 0xc8, 0xf1, 0x10,
+ 0x33, 0x3c, 0x39, 0x8f, 0xd3, 0x2f, 0x0e, 0xe1, 0x0a, 0x5a, 0x7a, 0x2a,
+};
+static const unsigned char kat2802_nonce[] = {0};
+static const unsigned char kat2802_persstr[] = {
+ 0xd1, 0xca, 0x7e, 0x7e, 0x07, 0x40, 0x39, 0x1c, 0x4a, 0x95, 0x15, 0x70,
+ 0xee, 0x05, 0x60, 0xe0, 0x38, 0xbb, 0xc2, 0xf5, 0x20, 0x75, 0x3f, 0x05,
+ 0x8e, 0xd9, 0x69, 0xe1, 0xbd, 0x0f, 0xd6, 0xd5, 0xa2, 0xa1, 0xb2, 0x4f,
+ 0xde, 0xe5, 0xe3, 0x73, 0x9e, 0xa2, 0xee, 0xb1, 0x24, 0x0f, 0x3e, 0x65,
+};
+static const unsigned char kat2802_entropyinreseed[] = {
+ 0x2a, 0x31, 0x90, 0x61, 0x61, 0x1e, 0x70, 0xdf, 0x56, 0x51, 0x65, 0x72,
+ 0xaf, 0x29, 0x05, 0x12, 0xb3, 0xdc, 0x1b, 0xee, 0x0a, 0x0f, 0xaf, 0x62,
+ 0xdf, 0xba, 0xe0, 0x3f, 0x26, 0x24, 0x89, 0x5e, 0x53, 0xd8, 0x9f, 0xd0,
+ 0xb8, 0x80, 0xc9, 0x7d, 0x82, 0xb4, 0xae, 0xc0, 0x88, 0x38, 0x28, 0xa3,
+};
+static const unsigned char kat2802_addinreseed[] = {0};
+static const unsigned char kat2802_addin0[] = {0};
+static const unsigned char kat2802_addin1[] = {0};
+static const unsigned char kat2802_retbits[] = {
+ 0x55, 0xac, 0x40, 0x8c, 0xea, 0x1f, 0xe3, 0xb1, 0xba, 0xd3, 0xe5, 0x12,
+ 0x7e, 0x42, 0xfc, 0xc8, 0x48, 0x9c, 0x19, 0x16, 0x6a, 0x86, 0xba, 0xb2,
+ 0x12, 0xbf, 0x06, 0x7b, 0x8b, 0x05, 0x82, 0x09, 0x99, 0x89, 0x9f, 0x42,
+ 0x2f, 0x7b, 0x37, 0x5b, 0x59, 0x5b, 0xeb, 0xbc, 0x78, 0x6a, 0x94, 0xec,
+ 0x14, 0xe3, 0xe3, 0x14, 0x9c, 0x9d, 0xf1, 0x67, 0xec, 0xdc, 0x63, 0x5d,
+ 0xb5, 0xbc, 0xfb, 0xbb,
+};
+static const struct drbg_kat_pr_false kat2802_t = {
+ 11, kat2802_entropyin, kat2802_nonce, kat2802_persstr,
+ kat2802_entropyinreseed, kat2802_addinreseed, kat2802_addin0,
+ kat2802_addin1, kat2802_retbits
+};
+static const struct drbg_kat kat2802 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2802_t
+};
+
+static const unsigned char kat2803_entropyin[] = {
+ 0x67, 0x2a, 0xaf, 0x34, 0x02, 0x38, 0x38, 0x1b, 0xa8, 0xd3, 0x1b, 0xeb,
+ 0x22, 0xbd, 0xc2, 0x63, 0xe8, 0x01, 0x8c, 0xfb, 0x94, 0x02, 0xab, 0xa7,
+ 0x69, 0xe4, 0x40, 0xaf, 0x29, 0xef, 0xe2, 0x7f, 0xa7, 0x9b, 0xcc, 0x91,
+ 0xcc, 0xcb, 0xae, 0x53, 0x10, 0x6a, 0x64, 0xd6, 0x5c, 0x07, 0x50, 0x5b,
+};
+static const unsigned char kat2803_nonce[] = {0};
+static const unsigned char kat2803_persstr[] = {
+ 0x65, 0x4f, 0xb5, 0x8b, 0x7c, 0xb2, 0x49, 0x61, 0x04, 0x61, 0xa4, 0x1c,
+ 0xce, 0x27, 0x40, 0x21, 0x42, 0x60, 0x3f, 0xf3, 0x87, 0x95, 0xec, 0x6b,
+ 0x1a, 0x98, 0x66, 0x6d, 0xbf, 0x95, 0x38, 0xeb, 0xe1, 0x56, 0x40, 0x13,
+ 0x03, 0x74, 0x51, 0xbd, 0x33, 0x7e, 0x81, 0x42, 0xdb, 0x56, 0x76, 0x7b,
+};
+static const unsigned char kat2803_entropyinreseed[] = {
+ 0x3a, 0x4f, 0x73, 0x1d, 0xe8, 0x29, 0xf0, 0x02, 0x9f, 0xa9, 0x9b, 0x24,
+ 0x99, 0x12, 0x2a, 0xb7, 0xb4, 0xb1, 0x59, 0x99, 0x93, 0x0b, 0xa3, 0x70,
+ 0x41, 0x7c, 0x87, 0x53, 0x96, 0x6e, 0x40, 0x27, 0x3f, 0x3d, 0x02, 0xa2,
+ 0xb1, 0x6a, 0x3b, 0xa5, 0xf4, 0x9b, 0xa2, 0xbf, 0xa0, 0xc1, 0xf6, 0x00,
+};
+static const unsigned char kat2803_addinreseed[] = {0};
+static const unsigned char kat2803_addin0[] = {0};
+static const unsigned char kat2803_addin1[] = {0};
+static const unsigned char kat2803_retbits[] = {
+ 0xb6, 0x64, 0x96, 0xd4, 0x11, 0xc2, 0xb2, 0x99, 0x3e, 0x6e, 0x47, 0xf1,
+ 0x51, 0x15, 0xe1, 0x58, 0xc9, 0x37, 0x27, 0x99, 0x68, 0xc7, 0xd7, 0xd9,
+ 0xef, 0xc0, 0xa6, 0xb1, 0x2d, 0xe6, 0x66, 0x00, 0xd0, 0x93, 0x08, 0xee,
+ 0xbb, 0x4c, 0xa3, 0x18, 0xa3, 0x8e, 0x49, 0xf0, 0x91, 0x23, 0x61, 0xf5,
+ 0xf8, 0x86, 0xf7, 0xff, 0x21, 0xee, 0x54, 0xff, 0x11, 0x2f, 0x83, 0x02,
+ 0xcb, 0x1a, 0xd6, 0x3f,
+};
+static const struct drbg_kat_pr_false kat2803_t = {
+ 12, kat2803_entropyin, kat2803_nonce, kat2803_persstr,
+ kat2803_entropyinreseed, kat2803_addinreseed, kat2803_addin0,
+ kat2803_addin1, kat2803_retbits
+};
+static const struct drbg_kat kat2803 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2803_t
+};
+
+static const unsigned char kat2804_entropyin[] = {
+ 0xf3, 0xbe, 0x4e, 0x37, 0x70, 0x15, 0x30, 0x10, 0x79, 0xd1, 0x80, 0xca,
+ 0x28, 0x04, 0x54, 0xe3, 0x4f, 0x60, 0x64, 0x04, 0x0e, 0x35, 0x9b, 0xdf,
+ 0x09, 0x83, 0xa0, 0x99, 0x39, 0x42, 0x9d, 0x52, 0x62, 0xe6, 0xe5, 0xd8,
+ 0x66, 0x64, 0xfe, 0x92, 0x94, 0x45, 0xfe, 0x34, 0xab, 0xd9, 0x79, 0x4d,
+};
+static const unsigned char kat2804_nonce[] = {0};
+static const unsigned char kat2804_persstr[] = {
+ 0x2a, 0xa1, 0xe4, 0x91, 0x95, 0x22, 0x32, 0xd3, 0x35, 0xc6, 0x73, 0x7f,
+ 0x47, 0x88, 0x71, 0xf5, 0xbf, 0x07, 0xf9, 0x67, 0xb8, 0x6f, 0x10, 0xa0,
+ 0x10, 0x3c, 0xfa, 0x2c, 0x31, 0xef, 0x5f, 0x5a, 0xd2, 0xe4, 0xdb, 0x48,
+ 0x24, 0xcb, 0x0a, 0xc3, 0xc2, 0x9a, 0xda, 0x3a, 0xb0, 0x28, 0xcb, 0x96,
+};
+static const unsigned char kat2804_entropyinreseed[] = {
+ 0x9a, 0x6b, 0xe2, 0x9c, 0x44, 0x11, 0xd7, 0xde, 0x2e, 0x93, 0x21, 0xb0,
+ 0xd8, 0xc1, 0xee, 0x06, 0xd7, 0x99, 0x8a, 0x19, 0x34, 0xec, 0xe5, 0x34,
+ 0x5e, 0xd3, 0xfb, 0x49, 0x69, 0xa6, 0x81, 0x12, 0xc0, 0x05, 0x1e, 0xde,
+ 0x82, 0xa1, 0x9a, 0xfd, 0x76, 0xc4, 0x19, 0xe4, 0x69, 0x60, 0x36, 0x79,
+};
+static const unsigned char kat2804_addinreseed[] = {0};
+static const unsigned char kat2804_addin0[] = {0};
+static const unsigned char kat2804_addin1[] = {0};
+static const unsigned char kat2804_retbits[] = {
+ 0x3c, 0x58, 0x55, 0x01, 0x51, 0xaa, 0x02, 0xfc, 0x55, 0x98, 0xef, 0xf9,
+ 0x21, 0xd2, 0xa0, 0x63, 0x63, 0x45, 0x95, 0x5b, 0xb0, 0x3e, 0x6c, 0x8a,
+ 0x39, 0xe7, 0xc9, 0xa9, 0x56, 0x55, 0xde, 0x29, 0x7c, 0x61, 0x99, 0xc0,
+ 0xf9, 0xe6, 0xc5, 0xe2, 0x28, 0x0e, 0x9e, 0x83, 0xe8, 0x53, 0x06, 0x95,
+ 0x8d, 0x5d, 0x37, 0xd7, 0x0b, 0xd8, 0x00, 0x91, 0xf0, 0xc5, 0x1f, 0x96,
+ 0xed, 0x74, 0xd4, 0x20,
+};
+static const struct drbg_kat_pr_false kat2804_t = {
+ 13, kat2804_entropyin, kat2804_nonce, kat2804_persstr,
+ kat2804_entropyinreseed, kat2804_addinreseed, kat2804_addin0,
+ kat2804_addin1, kat2804_retbits
+};
+static const struct drbg_kat kat2804 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2804_t
+};
+
+static const unsigned char kat2805_entropyin[] = {
+ 0xec, 0x97, 0x5b, 0x46, 0x29, 0x47, 0x11, 0xa8, 0xac, 0x5b, 0x1d, 0x19,
+ 0xb6, 0x0a, 0x69, 0x81, 0xbb, 0x06, 0x75, 0xc5, 0xe2, 0x02, 0xfa, 0xe9,
+ 0x3f, 0xb7, 0xca, 0x8a, 0xdf, 0xbc, 0x29, 0x07, 0xdb, 0x92, 0x3c, 0x78,
+ 0x6c, 0x40, 0x3f, 0xc5, 0x14, 0xf0, 0xdc, 0x46, 0xb0, 0x02, 0xfd, 0xfd,
+};
+static const unsigned char kat2805_nonce[] = {0};
+static const unsigned char kat2805_persstr[] = {
+ 0xcf, 0xbb, 0xe0, 0x1c, 0xda, 0x29, 0x0c, 0x89, 0xb2, 0x84, 0x1f, 0x37,
+ 0x95, 0x2c, 0xfc, 0x1d, 0x9a, 0x42, 0x22, 0xfb, 0x42, 0x5e, 0x94, 0x53,
+ 0xde, 0x30, 0x7b, 0xa9, 0xf8, 0x2b, 0xc5, 0x73, 0x82, 0x68, 0x44, 0x84,
+ 0x80, 0x1e, 0xd6, 0x8b, 0x61, 0x51, 0xfc, 0x7d, 0xbb, 0x7a, 0x17, 0xba,
+};
+static const unsigned char kat2805_entropyinreseed[] = {
+ 0xdc, 0x9c, 0x22, 0xb1, 0x00, 0x64, 0x62, 0xaf, 0x08, 0x61, 0x5e, 0xca,
+ 0x59, 0x98, 0xea, 0x81, 0xa8, 0x14, 0x11, 0xbe, 0x22, 0x6a, 0x24, 0x1c,
+ 0x38, 0xd4, 0x80, 0xe7, 0xae, 0x0a, 0xb5, 0xbb, 0x34, 0x72, 0x1f, 0x0a,
+ 0xb9, 0x22, 0x66, 0x33, 0xd6, 0x55, 0x67, 0x5f, 0xfd, 0x95, 0x34, 0x20,
+};
+static const unsigned char kat2805_addinreseed[] = {0};
+static const unsigned char kat2805_addin0[] = {0};
+static const unsigned char kat2805_addin1[] = {0};
+static const unsigned char kat2805_retbits[] = {
+ 0xe5, 0x44, 0x66, 0x8d, 0xbc, 0xa5, 0xb3, 0x5b, 0xb5, 0x9a, 0xb0, 0x49,
+ 0x45, 0x64, 0x9c, 0xea, 0xd8, 0xd8, 0x22, 0xa1, 0xd8, 0xce, 0x12, 0x5e,
+ 0x3a, 0xe5, 0xdb, 0x8b, 0x23, 0xe3, 0xbc, 0xc0, 0x5b, 0xf6, 0x92, 0x1c,
+ 0xe9, 0x5b, 0x85, 0x76, 0x6b, 0x92, 0xc1, 0x3c, 0x59, 0xae, 0x83, 0xd9,
+ 0x08, 0x47, 0x1e, 0x03, 0xe0, 0x20, 0xfd, 0xeb, 0x59, 0xe5, 0xce, 0xa8,
+ 0x17, 0xa4, 0x88, 0x02,
+};
+static const struct drbg_kat_pr_false kat2805_t = {
+ 14, kat2805_entropyin, kat2805_nonce, kat2805_persstr,
+ kat2805_entropyinreseed, kat2805_addinreseed, kat2805_addin0,
+ kat2805_addin1, kat2805_retbits
+};
+static const struct drbg_kat kat2805 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2805_t
+};
+
+static const unsigned char kat2806_entropyin[] = {
+ 0xed, 0x64, 0xcf, 0x25, 0xe9, 0xca, 0x81, 0xe5, 0x57, 0x2e, 0xbc, 0xcb,
+ 0xf8, 0x92, 0xc8, 0xac, 0x9d, 0x88, 0xc2, 0x56, 0xb7, 0xdd, 0xd3, 0xf7,
+ 0xf4, 0x77, 0x57, 0x9f, 0x80, 0xea, 0x8f, 0xec, 0x7c, 0x45, 0x21, 0x59,
+ 0xb1, 0xa6, 0xac, 0x9c, 0x59, 0x76, 0x75, 0x04, 0xc0, 0x57, 0x3b, 0x29,
+};
+static const unsigned char kat2806_nonce[] = {0};
+static const unsigned char kat2806_persstr[] = {
+ 0xf1, 0x9c, 0xf2, 0xf8, 0x21, 0x44, 0x0a, 0xdf, 0xa1, 0xf7, 0xf6, 0x34,
+ 0xa2, 0x69, 0x25, 0xdc, 0x63, 0xe2, 0x9b, 0x79, 0x93, 0xf7, 0x86, 0x05,
+ 0x58, 0xaf, 0xc4, 0xd7, 0xc6, 0x1f, 0x0d, 0x83, 0x14, 0x5c, 0xdb, 0x13,
+ 0x10, 0x2e, 0x51, 0x3e, 0xdd, 0xdf, 0xcf, 0x48, 0xbe, 0xf1, 0x74, 0x64,
+};
+static const unsigned char kat2806_entropyinreseed[] = {
+ 0xd9, 0x1c, 0x7a, 0x31, 0xdc, 0x11, 0xed, 0xf5, 0xc7, 0x78, 0xbb, 0x1b,
+ 0xc9, 0x20, 0x67, 0xb6, 0xdf, 0x2b, 0x5b, 0x5e, 0x90, 0xc0, 0x4d, 0xf5,
+ 0x17, 0x25, 0x62, 0xbb, 0xd3, 0x89, 0x37, 0xad, 0x62, 0x71, 0x5c, 0x28,
+ 0x76, 0x51, 0xce, 0x8a, 0xd4, 0xbf, 0x4c, 0x80, 0xb1, 0x4c, 0x8c, 0x1e,
+};
+static const unsigned char kat2806_addinreseed[] = {
+ 0x02, 0xba, 0xc9, 0x41, 0x71, 0xc1, 0x12, 0xc3, 0x77, 0x47, 0x69, 0x14,
+ 0x8f, 0x13, 0x7e, 0x6b, 0x72, 0xfd, 0x4b, 0xf9, 0xa7, 0x44, 0x64, 0xcd,
+ 0x24, 0xa7, 0xdf, 0xc6, 0xf7, 0x5c, 0xab, 0x82, 0xa1, 0x5e, 0x38, 0x47,
+ 0xaf, 0xe8, 0x69, 0x99, 0xd0, 0xf6, 0x65, 0x57, 0x7b, 0xba, 0x6c, 0x20,
+};
+static const unsigned char kat2806_addin0[] = {
+ 0xff, 0xb7, 0x38, 0xe9, 0x75, 0xf4, 0x8c, 0x5a, 0x5a, 0x7d, 0x8a, 0x63,
+ 0xc4, 0x18, 0xab, 0xb0, 0x60, 0x4e, 0xfe, 0x3c, 0xec, 0xac, 0x61, 0x1b,
+ 0xdf, 0x29, 0x2e, 0x2a, 0xb4, 0x7a, 0x4d, 0x33, 0x09, 0x9e, 0xbd, 0xcb,
+ 0x0d, 0x6c, 0x89, 0xc5, 0x84, 0x9c, 0x1e, 0xd9, 0x69, 0x3c, 0x43, 0x5e,
+};
+static const unsigned char kat2806_addin1[] = {
+ 0x45, 0x9f, 0x3d, 0x97, 0x9e, 0xda, 0x0f, 0x8f, 0x8c, 0x27, 0x37, 0x68,
+ 0xdf, 0x1f, 0x92, 0x34, 0x4a, 0xbf, 0xba, 0x4e, 0xae, 0xdf, 0x00, 0x35,
+ 0x6f, 0x02, 0x46, 0x1e, 0x44, 0x9d, 0xa1, 0x88, 0x43, 0xa4, 0x4b, 0x08,
+ 0xa4, 0x64, 0x13, 0xdd, 0x3a, 0x1e, 0xb1, 0xab, 0x5b, 0xd1, 0x46, 0xec,
+};
+static const unsigned char kat2806_retbits[] = {
+ 0x2a, 0x6a, 0x38, 0xfb, 0x65, 0x75, 0xf5, 0x5c, 0xdd, 0xb7, 0x74, 0xef,
+ 0x51, 0xca, 0x9d, 0xb7, 0x2e, 0x72, 0x90, 0x65, 0xd1, 0x02, 0xe8, 0x66,
+ 0x87, 0x77, 0x98, 0x65, 0x1f, 0x18, 0x50, 0xcf, 0x3b, 0xe8, 0x08, 0xf6,
+ 0x37, 0x8f, 0x86, 0x0f, 0xcd, 0xe6, 0xfc, 0x63, 0x1b, 0x95, 0x5f, 0xa0,
+ 0x7b, 0x5b, 0x7f, 0x5d, 0xd1, 0xad, 0x1d, 0x1f, 0x32, 0x83, 0x7f, 0xfa,
+ 0x07, 0x31, 0x13, 0x83,
+};
+static const struct drbg_kat_pr_false kat2806_t = {
+ 0, kat2806_entropyin, kat2806_nonce, kat2806_persstr,
+ kat2806_entropyinreseed, kat2806_addinreseed, kat2806_addin0,
+ kat2806_addin1, kat2806_retbits
+};
+static const struct drbg_kat kat2806 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2806_t
+};
+
+static const unsigned char kat2807_entropyin[] = {
+ 0xc4, 0xa8, 0x15, 0x68, 0x2b, 0x8e, 0xc7, 0x83, 0x97, 0x6c, 0x7a, 0xec,
+ 0xfb, 0x71, 0x20, 0x1e, 0x5c, 0x25, 0xab, 0x4d, 0x20, 0x99, 0xff, 0x7f,
+ 0x08, 0x00, 0xa9, 0x1e, 0xfd, 0xbd, 0x88, 0x46, 0x59, 0x25, 0x8b, 0x1d,
+ 0xb9, 0xa1, 0x0d, 0x51, 0x8b, 0x0e, 0x11, 0x28, 0x5e, 0xfb, 0x98, 0x66,
+};
+static const unsigned char kat2807_nonce[] = {0};
+static const unsigned char kat2807_persstr[] = {
+ 0x6d, 0x3b, 0x23, 0x47, 0xa6, 0x1b, 0x37, 0x35, 0x04, 0xd8, 0x55, 0x7a,
+ 0xcd, 0x1b, 0x86, 0xe8, 0xc4, 0x9d, 0x3c, 0x1c, 0x2f, 0x97, 0x59, 0x26,
+ 0x4a, 0x73, 0xf9, 0x64, 0xd1, 0x9b, 0xbe, 0xb7, 0xd5, 0x49, 0x0b, 0xd0,
+ 0x48, 0x64, 0x73, 0x3f, 0x9f, 0xd6, 0xc1, 0x40, 0xd0, 0x47, 0x5d, 0x9a,
+};
+static const unsigned char kat2807_entropyinreseed[] = {
+ 0xf7, 0x6c, 0x5b, 0xfb, 0xed, 0xfe, 0x08, 0xa0, 0x0a, 0x72, 0x74, 0xed,
+ 0x2a, 0x70, 0xcc, 0xd7, 0x9d, 0xf3, 0xa6, 0x2a, 0x1c, 0x3b, 0xbd, 0x89,
+ 0xea, 0x4e, 0xf8, 0x50, 0x5b, 0x95, 0x41, 0x0e, 0xb6, 0x77, 0x36, 0x9d,
+ 0x26, 0x33, 0xcf, 0x6c, 0x96, 0x43, 0x05, 0xc3, 0xa3, 0xe8, 0xf6, 0x2b,
+};
+static const unsigned char kat2807_addinreseed[] = {
+ 0xc8, 0x19, 0xd5, 0xec, 0x12, 0x6f, 0x00, 0xdf, 0x73, 0xef, 0x40, 0xc4,
+ 0xca, 0x1d, 0x1d, 0xe8, 0xb6, 0xe9, 0x38, 0x8b, 0x1b, 0xef, 0x50, 0x83,
+ 0x5b, 0xbe, 0x88, 0x0a, 0xe4, 0xa0, 0xf2, 0x01, 0xf2, 0xfe, 0xbf, 0xdd,
+ 0x41, 0x67, 0xbb, 0x47, 0xbf, 0x24, 0xb7, 0x82, 0xe0, 0x7b, 0xdc, 0x1b,
+};
+static const unsigned char kat2807_addin0[] = {
+ 0x89, 0x77, 0x0a, 0x03, 0xe8, 0xec, 0x7a, 0x8c, 0x39, 0xd4, 0xa1, 0x85,
+ 0xf5, 0xa4, 0x57, 0xa9, 0x1f, 0xdb, 0x14, 0x9f, 0xef, 0xc9, 0xe7, 0xda,
+ 0xf0, 0x41, 0xfe, 0xf3, 0xe2, 0x32, 0xe8, 0x10, 0x17, 0x41, 0xd8, 0x6c,
+ 0xab, 0xc0, 0xaf, 0x59, 0xab, 0x8c, 0x3e, 0x2c, 0xc3, 0xf7, 0x1a, 0x9f,
+};
+static const unsigned char kat2807_addin1[] = {
+ 0x6e, 0x24, 0x3b, 0x50, 0x6b, 0x47, 0x0c, 0xf3, 0x20, 0x9e, 0xc2, 0xf4,
+ 0x4f, 0x50, 0x5c, 0xc7, 0x4f, 0xf7, 0xa0, 0x14, 0x6d, 0x94, 0xf1, 0xb4,
+ 0xb0, 0xe6, 0x41, 0x9b, 0xb4, 0x19, 0xc4, 0xc1, 0x63, 0x4a, 0x82, 0xfc,
+ 0xd6, 0x22, 0xda, 0x52, 0x2b, 0x5d, 0x27, 0xc1, 0x61, 0x84, 0x66, 0x83,
+};
+static const unsigned char kat2807_retbits[] = {
+ 0x4b, 0x6b, 0xef, 0x57, 0x5a, 0x55, 0x52, 0x18, 0x46, 0x9c, 0x8f, 0x79,
+ 0x34, 0x56, 0x5e, 0xe8, 0x23, 0x2c, 0xdb, 0x51, 0x1e, 0x25, 0xe4, 0xcf,
+ 0xe4, 0xbe, 0xde, 0x0d, 0xe0, 0x25, 0x4a, 0xc8, 0x00, 0x5c, 0x06, 0x15,
+ 0x85, 0x4d, 0x5a, 0xad, 0x53, 0x05, 0xe0, 0xcd, 0x06, 0xb6, 0x1d, 0x27,
+ 0x69, 0x73, 0x90, 0x77, 0x41, 0xb4, 0xb1, 0xe4, 0xb4, 0x4e, 0xf9, 0x75,
+ 0x46, 0x8b, 0x2d, 0xc9,
+};
+static const struct drbg_kat_pr_false kat2807_t = {
+ 1, kat2807_entropyin, kat2807_nonce, kat2807_persstr,
+ kat2807_entropyinreseed, kat2807_addinreseed, kat2807_addin0,
+ kat2807_addin1, kat2807_retbits
+};
+static const struct drbg_kat kat2807 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2807_t
+};
+
+static const unsigned char kat2808_entropyin[] = {
+ 0x3e, 0xcd, 0x19, 0xf7, 0x9b, 0x77, 0x94, 0x2e, 0xf8, 0x2c, 0x12, 0x0b,
+ 0x5d, 0x6b, 0x3e, 0x7a, 0x84, 0x26, 0x22, 0x98, 0xd1, 0x8d, 0x35, 0x14,
+ 0x0b, 0x55, 0x92, 0x36, 0xe8, 0xd4, 0x65, 0x39, 0x43, 0x39, 0xe7, 0x93,
+ 0x7b, 0x60, 0xbf, 0x96, 0xd7, 0x5b, 0x15, 0x0b, 0x99, 0x7b, 0xe7, 0x06,
+};
+static const unsigned char kat2808_nonce[] = {0};
+static const unsigned char kat2808_persstr[] = {
+ 0xa2, 0x50, 0x19, 0x64, 0xf9, 0xb2, 0x33, 0x38, 0x4f, 0xa2, 0x83, 0x9e,
+ 0xe5, 0x95, 0x07, 0x38, 0xf0, 0xa3, 0x9d, 0x5e, 0xb9, 0x2b, 0x9f, 0x97,
+ 0x8c, 0x22, 0xcf, 0x02, 0x37, 0x14, 0x44, 0xb3, 0x11, 0x8f, 0x0d, 0x6d,
+ 0x2e, 0x36, 0x97, 0x08, 0x94, 0x2e, 0x63, 0xe0, 0xe4, 0x00, 0x61, 0xcc,
+};
+static const unsigned char kat2808_entropyinreseed[] = {
+ 0xab, 0x5e, 0xac, 0x95, 0x06, 0x38, 0x4a, 0xd8, 0xae, 0x49, 0xb1, 0x11,
+ 0x2e, 0xeb, 0x9a, 0x24, 0x83, 0x76, 0x8e, 0xe6, 0xb3, 0xf0, 0xc2, 0x23,
+ 0x1e, 0x45, 0x65, 0x54, 0x5b, 0xaa, 0x94, 0xd5, 0xd0, 0x2b, 0xc2, 0x8a,
+ 0x3e, 0xb3, 0x35, 0xee, 0xa3, 0x3c, 0xc1, 0x00, 0xe2, 0xe4, 0xa0, 0xd6,
+};
+static const unsigned char kat2808_addinreseed[] = {
+ 0x42, 0x5e, 0xb9, 0x6a, 0xf3, 0x5f, 0xb2, 0xfe, 0x78, 0x69, 0x93, 0xf0,
+ 0xb4, 0xdb, 0x33, 0x95, 0xfe, 0x08, 0xfd, 0x00, 0x2d, 0x8e, 0x29, 0x4b,
+ 0xd6, 0xd2, 0x42, 0x50, 0x91, 0x7c, 0x92, 0xfe, 0x45, 0x56, 0x86, 0xb5,
+ 0xa2, 0x9c, 0x44, 0x91, 0x0a, 0x85, 0xe3, 0xa3, 0x6c, 0xd7, 0xb0, 0x7c,
+};
+static const unsigned char kat2808_addin0[] = {
+ 0x18, 0xda, 0x79, 0x90, 0x4a, 0xcf, 0x7c, 0x74, 0xb2, 0xbb, 0x48, 0xe2,
+ 0xf1, 0x73, 0x00, 0x38, 0xba, 0xc5, 0xdf, 0x65, 0x48, 0x15, 0xfa, 0xc8,
+ 0x88, 0x82, 0x6c, 0xff, 0xc8, 0x58, 0x1e, 0x96, 0x34, 0x57, 0xe2, 0x6e,
+ 0x90, 0x6c, 0x86, 0xb6, 0xcb, 0x86, 0x21, 0x33, 0x24, 0x0f, 0x49, 0xe4,
+};
+static const unsigned char kat2808_addin1[] = {
+ 0x3e, 0xb1, 0xab, 0x2a, 0xf1, 0x8c, 0xad, 0xae, 0xab, 0x7b, 0x8e, 0x5c,
+ 0xa4, 0x54, 0xad, 0xc5, 0x5e, 0x67, 0xee, 0xd6, 0x8e, 0xb8, 0x60, 0xad,
+ 0xec, 0x3b, 0x9a, 0xbc, 0xaf, 0xda, 0xbb, 0x3b, 0xef, 0xe0, 0x22, 0x9a,
+ 0x61, 0x16, 0x98, 0x87, 0x3a, 0xdd, 0x42, 0x2e, 0x59, 0x6c, 0x84, 0x00,
+};
+static const unsigned char kat2808_retbits[] = {
+ 0xe5, 0x4b, 0x61, 0x08, 0x04, 0xa2, 0xf9, 0x41, 0x2f, 0xa1, 0x54, 0xb8,
+ 0x85, 0xfa, 0xba, 0x9b, 0xdd, 0xc1, 0xf4, 0xe3, 0x7e, 0x71, 0x4a, 0x50,
+ 0x19, 0x92, 0xb0, 0xb8, 0x93, 0x28, 0x92, 0x6b, 0xc5, 0x02, 0x17, 0xa7,
+ 0xf4, 0x7b, 0x14, 0x0d, 0x41, 0xdf, 0xfa, 0xd7, 0x4e, 0x34, 0x3e, 0x91,
+ 0x72, 0x91, 0xba, 0x5b, 0x89, 0xdc, 0xf0, 0x00, 0x70, 0xa1, 0x59, 0xfe,
+ 0x22, 0x2a, 0x68, 0x8b,
+};
+static const struct drbg_kat_pr_false kat2808_t = {
+ 2, kat2808_entropyin, kat2808_nonce, kat2808_persstr,
+ kat2808_entropyinreseed, kat2808_addinreseed, kat2808_addin0,
+ kat2808_addin1, kat2808_retbits
+};
+static const struct drbg_kat kat2808 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2808_t
+};
+
+static const unsigned char kat2809_entropyin[] = {
+ 0xac, 0x59, 0xf2, 0x62, 0x84, 0xb8, 0xe8, 0x02, 0xe1, 0xaf, 0xa6, 0xbb,
+ 0x7a, 0x2f, 0x97, 0x91, 0x59, 0xd2, 0xc3, 0xab, 0x90, 0x3b, 0x62, 0xec,
+ 0x90, 0x14, 0xc1, 0x2a, 0xdb, 0x3d, 0x1f, 0x12, 0x62, 0xa4, 0x35, 0xfc,
+ 0x16, 0xbf, 0xd3, 0x01, 0x48, 0x12, 0xee, 0xf8, 0xa4, 0x51, 0xc4, 0xe3,
+};
+static const unsigned char kat2809_nonce[] = {0};
+static const unsigned char kat2809_persstr[] = {
+ 0x5d, 0x49, 0x81, 0x23, 0x55, 0x6a, 0x05, 0x26, 0xc6, 0xaa, 0xfd, 0xc3,
+ 0x36, 0x16, 0xcd, 0xa0, 0x1e, 0xda, 0x9d, 0x8f, 0xd4, 0x2d, 0xa7, 0xda,
+ 0x4b, 0xe9, 0x87, 0x7f, 0x0b, 0x40, 0x43, 0x10, 0xde, 0x76, 0xdc, 0x48,
+ 0xb5, 0x44, 0x43, 0x8c, 0xae, 0xcf, 0x25, 0x63, 0x29, 0x78, 0x26, 0x1a,
+};
+static const unsigned char kat2809_entropyinreseed[] = {
+ 0xd5, 0x65, 0xbf, 0xf0, 0x3c, 0x61, 0x74, 0x97, 0xac, 0xb5, 0x8f, 0xbe,
+ 0x01, 0x24, 0x97, 0xcd, 0xbf, 0x6e, 0xc2, 0x77, 0xb2, 0x2e, 0x1c, 0x21,
+ 0xe6, 0x5a, 0xea, 0x0f, 0x68, 0x49, 0x62, 0x74, 0x70, 0x75, 0xbd, 0x2c,
+ 0x4a, 0x1b, 0x18, 0x4c, 0xe4, 0x23, 0xf1, 0xa5, 0xee, 0x9e, 0x76, 0x2f,
+};
+static const unsigned char kat2809_addinreseed[] = {
+ 0xb9, 0x57, 0x10, 0x00, 0x0d, 0x08, 0x55, 0x2f, 0xff, 0x16, 0x2f, 0xdf,
+ 0xf9, 0x05, 0xc3, 0x68, 0x24, 0x90, 0xbe, 0x38, 0x8a, 0xda, 0xed, 0xab,
+ 0xad, 0xe8, 0x82, 0x4b, 0x38, 0xbb, 0x47, 0x29, 0x12, 0x7b, 0x26, 0xf4,
+ 0x96, 0x86, 0xc7, 0x4c, 0x3e, 0x83, 0xd2, 0xf3, 0x7e, 0xe6, 0x70, 0xbf,
+};
+static const unsigned char kat2809_addin0[] = {
+ 0xd5, 0xc3, 0x01, 0x97, 0x6a, 0x5c, 0xe6, 0x34, 0x9f, 0xa2, 0x9b, 0x30,
+ 0xd5, 0xed, 0x76, 0x1d, 0x9f, 0xb2, 0xe5, 0xe9, 0xf7, 0x62, 0x4b, 0x61,
+ 0x3a, 0x19, 0x8b, 0x40, 0xcc, 0x10, 0x7e, 0xcf, 0xb3, 0xd7, 0x72, 0x11,
+ 0x31, 0xea, 0x19, 0xb4, 0x01, 0x75, 0x1d, 0x85, 0xfb, 0x11, 0xbe, 0x90,
+};
+static const unsigned char kat2809_addin1[] = {
+ 0x86, 0xa0, 0x0e, 0x4c, 0xa6, 0xe2, 0xc1, 0x93, 0x2d, 0xf0, 0x24, 0x8c,
+ 0x31, 0xcc, 0xb2, 0xab, 0x8d, 0x5f, 0xdd, 0x99, 0x1a, 0x2d, 0xb7, 0xcd,
+ 0x27, 0xe8, 0x24, 0xb2, 0x10, 0x7f, 0xf0, 0x0b, 0xf4, 0x6e, 0x5d, 0xf9,
+ 0x3d, 0x41, 0xd5, 0x78, 0xe6, 0x12, 0x36, 0xaa, 0x4f, 0x7b, 0x02, 0x74,
+};
+static const unsigned char kat2809_retbits[] = {
+ 0xdb, 0x29, 0xec, 0xef, 0xa8, 0x71, 0x69, 0xfd, 0x87, 0xb5, 0x33, 0xdd,
+ 0xea, 0x1e, 0xc0, 0x0f, 0x50, 0xd2, 0x88, 0xe7, 0xff, 0xf4, 0x72, 0x93,
+ 0x49, 0xa8, 0x12, 0xdd, 0x20, 0xb1, 0x92, 0x96, 0x9d, 0x1c, 0x3f, 0x3b,
+ 0x87, 0x11, 0xfd, 0xd0, 0xd2, 0x68, 0x12, 0xdf, 0xbc, 0xa6, 0xa9, 0x19,
+ 0x08, 0x9b, 0xe2, 0x83, 0xbb, 0xfc, 0x94, 0x66, 0xf0, 0x0e, 0x1d, 0x1a,
+ 0x63, 0x94, 0xfb, 0x72,
+};
+static const struct drbg_kat_pr_false kat2809_t = {
+ 3, kat2809_entropyin, kat2809_nonce, kat2809_persstr,
+ kat2809_entropyinreseed, kat2809_addinreseed, kat2809_addin0,
+ kat2809_addin1, kat2809_retbits
+};
+static const struct drbg_kat kat2809 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2809_t
+};
+
+static const unsigned char kat2810_entropyin[] = {
+ 0xbe, 0xef, 0x8f, 0x0e, 0xd9, 0xd7, 0x71, 0x61, 0xdc, 0xb7, 0xb2, 0xda,
+ 0x5f, 0x03, 0x3e, 0x54, 0x6e, 0x7c, 0x1d, 0x3d, 0x4c, 0x4e, 0xd5, 0xa4,
+ 0x23, 0xe9, 0xa6, 0xe7, 0x06, 0x97, 0xed, 0xc8, 0x42, 0x23, 0x5a, 0x08,
+ 0xf9, 0xf6, 0x8f, 0x27, 0x90, 0x7c, 0x97, 0x36, 0xf4, 0xef, 0xc4, 0xc6,
+};
+static const unsigned char kat2810_nonce[] = {0};
+static const unsigned char kat2810_persstr[] = {
+ 0x2d, 0x5e, 0xdc, 0xd6, 0x34, 0x50, 0x1c, 0x4b, 0x1d, 0x12, 0x36, 0xcf,
+ 0x9f, 0x86, 0x41, 0x93, 0xcf, 0x2c, 0xe7, 0xa7, 0x45, 0x7e, 0x6b, 0x9a,
+ 0xeb, 0xfb, 0xc8, 0xb6, 0x68, 0x5b, 0x79, 0xbc, 0x81, 0xb9, 0x43, 0x04,
+ 0x64, 0x0e, 0xc0, 0xaf, 0xa7, 0x01, 0xf6, 0xdb, 0x06, 0x85, 0x4a, 0x62,
+};
+static const unsigned char kat2810_entropyinreseed[] = {
+ 0xe5, 0x3e, 0x04, 0x42, 0x37, 0x71, 0xfe, 0xdf, 0x9e, 0xce, 0x3f, 0xdf,
+ 0x04, 0xee, 0x8b, 0x66, 0x76, 0x6c, 0x97, 0x9f, 0x7e, 0xa3, 0xaa, 0xe2,
+ 0x58, 0xeb, 0x94, 0x72, 0xe1, 0xaa, 0x99, 0xb8, 0x17, 0x84, 0x7f, 0xc0,
+ 0x22, 0xf6, 0xbb, 0x0c, 0xa2, 0x8c, 0x0d, 0x6e, 0x6c, 0x63, 0x81, 0xa5,
+};
+static const unsigned char kat2810_addinreseed[] = {
+ 0x38, 0x7f, 0xed, 0xd1, 0x27, 0x60, 0x0d, 0x3b, 0x9a, 0x1e, 0x40, 0xd4,
+ 0x7b, 0x61, 0xaa, 0x07, 0x25, 0xb8, 0x82, 0x9b, 0x81, 0x77, 0xee, 0x66,
+ 0x51, 0x08, 0x6d, 0x15, 0x01, 0x87, 0x8d, 0x59, 0x79, 0x3b, 0xee, 0x23,
+ 0xae, 0x21, 0x72, 0x03, 0xc2, 0xe2, 0x56, 0x5d, 0x83, 0xb8, 0xd6, 0x25,
+};
+static const unsigned char kat2810_addin0[] = {
+ 0x94, 0xc3, 0x43, 0x01, 0x4f, 0xff, 0x90, 0xb6, 0x68, 0xd7, 0xbf, 0xd0,
+ 0xd7, 0x2d, 0xfd, 0xe1, 0xad, 0xff, 0xef, 0x71, 0x59, 0x57, 0xe0, 0xae,
+ 0xab, 0xfa, 0xa9, 0xf3, 0x7c, 0xb8, 0x5f, 0x5d, 0x01, 0x08, 0xdf, 0xf0,
+ 0x94, 0xa0, 0x64, 0xbc, 0x6f, 0xac, 0x05, 0x25, 0x64, 0xf2, 0x61, 0x5d,
+};
+static const unsigned char kat2810_addin1[] = {
+ 0x46, 0x63, 0xff, 0x1f, 0x64, 0xbb, 0xc3, 0x51, 0xb1, 0x64, 0x6f, 0xcf,
+ 0x1c, 0xae, 0xef, 0xf5, 0xa2, 0xd5, 0x79, 0x6c, 0xe7, 0xbd, 0xbc, 0x39,
+ 0x3c, 0x1d, 0xf6, 0x2c, 0xa0, 0x44, 0x5f, 0xa3, 0x0d, 0xd0, 0x0f, 0x73,
+ 0x85, 0x56, 0x9b, 0x9e, 0x9b, 0xf6, 0x49, 0x02, 0x60, 0xb2, 0x34, 0x32,
+};
+static const unsigned char kat2810_retbits[] = {
+ 0x06, 0xd6, 0x04, 0x87, 0xa5, 0x31, 0x7b, 0x28, 0x9e, 0x68, 0xa1, 0x71,
+ 0xa0, 0x09, 0x7e, 0xd4, 0xa3, 0x0d, 0x69, 0x91, 0xc5, 0xe8, 0xf5, 0xaf,
+ 0x2e, 0x88, 0x2c, 0x11, 0x09, 0xea, 0x3e, 0x36, 0x2a, 0x6c, 0x11, 0x5d,
+ 0x1f, 0xfe, 0xa0, 0x69, 0xa0, 0x9f, 0x50, 0x1b, 0xd6, 0xf0, 0x3c, 0x66,
+ 0xe8, 0xaf, 0xd5, 0x2a, 0x11, 0x47, 0xfe, 0xcb, 0x21, 0x63, 0x36, 0xe2,
+ 0x38, 0x2e, 0x18, 0x05,
+};
+static const struct drbg_kat_pr_false kat2810_t = {
+ 4, kat2810_entropyin, kat2810_nonce, kat2810_persstr,
+ kat2810_entropyinreseed, kat2810_addinreseed, kat2810_addin0,
+ kat2810_addin1, kat2810_retbits
+};
+static const struct drbg_kat kat2810 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2810_t
+};
+
+static const unsigned char kat2811_entropyin[] = {
+ 0xa8, 0x15, 0x7b, 0x1d, 0xd2, 0x9f, 0x1e, 0xd9, 0x5a, 0x70, 0x92, 0x2a,
+ 0xcc, 0xbb, 0x14, 0xe6, 0x83, 0xa1, 0x0d, 0x5d, 0x22, 0xca, 0x23, 0x11,
+ 0x94, 0x8d, 0x4e, 0xf0, 0x91, 0xc3, 0x73, 0x38, 0xd6, 0x96, 0x5a, 0x08,
+ 0xf9, 0x42, 0xe3, 0x37, 0x30, 0xe6, 0x36, 0xdc, 0x04, 0xad, 0xe1, 0x18,
+};
+static const unsigned char kat2811_nonce[] = {0};
+static const unsigned char kat2811_persstr[] = {
+ 0x15, 0x06, 0x9f, 0xbb, 0x16, 0xc0, 0xd9, 0xca, 0xc6, 0x71, 0xc9, 0xef,
+ 0x23, 0x8c, 0x5e, 0x89, 0x66, 0xf9, 0xf2, 0x62, 0x75, 0x8d, 0x9a, 0x7c,
+ 0xb0, 0xc1, 0x96, 0xd9, 0x37, 0xc3, 0xc5, 0xa7, 0x90, 0x67, 0xb9, 0xe6,
+ 0x4e, 0x74, 0xd3, 0x06, 0x32, 0x1a, 0xd5, 0x8d, 0xda, 0x6d, 0x2b, 0xa8,
+};
+static const unsigned char kat2811_entropyinreseed[] = {
+ 0xcb, 0xd6, 0xf2, 0x59, 0x94, 0x16, 0x70, 0x2c, 0x18, 0x15, 0xfa, 0x82,
+ 0x70, 0xb5, 0x49, 0x05, 0x99, 0x83, 0x30, 0xe8, 0xb2, 0xdb, 0xa6, 0xf9,
+ 0xd2, 0x34, 0xb6, 0x51, 0x76, 0xdb, 0xfc, 0x85, 0x79, 0xfb, 0x89, 0x9a,
+ 0xeb, 0x4a, 0xbb, 0x7a, 0x9d, 0x19, 0xd3, 0x26, 0x8d, 0x7c, 0xa1, 0xc8,
+};
+static const unsigned char kat2811_addinreseed[] = {
+ 0x5c, 0x96, 0x08, 0x52, 0xe0, 0x5b, 0x9d, 0xee, 0x8a, 0xb4, 0xb4, 0x94,
+ 0x81, 0xde, 0xf6, 0x03, 0x67, 0x34, 0xb3, 0x9c, 0xb9, 0xbc, 0x99, 0x36,
+ 0x6c, 0x5c, 0x55, 0xa5, 0xd2, 0xea, 0x12, 0x79, 0xea, 0xdf, 0x73, 0xd3,
+ 0x10, 0x57, 0x84, 0x73, 0x6a, 0x30, 0xd8, 0xd0, 0x5d, 0xd5, 0x9a, 0xe5,
+};
+static const unsigned char kat2811_addin0[] = {
+ 0x75, 0x69, 0xe6, 0xdb, 0x52, 0xe1, 0x47, 0x8e, 0x3c, 0xbe, 0xd5, 0x41,
+ 0x71, 0xa4, 0x16, 0xef, 0x69, 0xb6, 0xe6, 0xdc, 0x9b, 0x88, 0xfb, 0x3f,
+ 0x52, 0xc9, 0x5e, 0x0b, 0x68, 0x2d, 0x44, 0xbf, 0x5d, 0xa2, 0x7f, 0x63,
+ 0x92, 0x9d, 0x4e, 0xc4, 0x67, 0xbb, 0x32, 0xaa, 0x1c, 0x1d, 0xbf, 0x4c,
+};
+static const unsigned char kat2811_addin1[] = {
+ 0xb3, 0xb9, 0xae, 0x19, 0xc3, 0x6e, 0xce, 0x86, 0x23, 0xfa, 0x47, 0xaa,
+ 0x82, 0x0f, 0x7c, 0x94, 0xbf, 0x20, 0x66, 0x4f, 0xea, 0x1e, 0x54, 0x4c,
+ 0x45, 0xcb, 0x55, 0x69, 0x5b, 0x21, 0xb3, 0x9c, 0x62, 0xe8, 0x51, 0xf7,
+ 0xa3, 0xe9, 0x17, 0x4e, 0x66, 0x2d, 0x8e, 0x97, 0x9a, 0x16, 0xf1, 0x19,
+};
+static const unsigned char kat2811_retbits[] = {
+ 0x0e, 0x45, 0x94, 0xb7, 0x34, 0xe7, 0xfa, 0x15, 0xff, 0x6c, 0x08, 0x03,
+ 0x2d, 0xe7, 0xce, 0x3d, 0xdc, 0x47, 0xef, 0x3a, 0x02, 0x0b, 0x76, 0xb3,
+ 0xc9, 0x5f, 0xda, 0x71, 0x49, 0x9d, 0xef, 0x81, 0x8a, 0xf8, 0xd6, 0x25,
+ 0xbb, 0x81, 0xeb, 0x89, 0x25, 0x7d, 0x28, 0xdc, 0x68, 0xdc, 0x4c, 0x95,
+ 0x50, 0xe3, 0x5c, 0x09, 0x0a, 0x49, 0xcf, 0xf1, 0x6a, 0x65, 0x94, 0x8e,
+ 0xa2, 0x05, 0x74, 0x97,
+};
+static const struct drbg_kat_pr_false kat2811_t = {
+ 5, kat2811_entropyin, kat2811_nonce, kat2811_persstr,
+ kat2811_entropyinreseed, kat2811_addinreseed, kat2811_addin0,
+ kat2811_addin1, kat2811_retbits
+};
+static const struct drbg_kat kat2811 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2811_t
+};
+
+static const unsigned char kat2812_entropyin[] = {
+ 0x2e, 0x28, 0xe4, 0x58, 0xa1, 0xd3, 0x35, 0xf7, 0x4a, 0x1f, 0xb2, 0xe2,
+ 0x2e, 0xa5, 0xbe, 0x77, 0x83, 0xf7, 0x8c, 0x72, 0x1e, 0x7e, 0x68, 0x7b,
+ 0xba, 0x6a, 0xb9, 0xa5, 0xc9, 0x3e, 0x41, 0x14, 0xb4, 0x25, 0xba, 0x74,
+ 0x97, 0x8c, 0x2e, 0x68, 0xb4, 0x98, 0xfb, 0x53, 0xa7, 0x60, 0xd4, 0xe0,
+};
+static const unsigned char kat2812_nonce[] = {0};
+static const unsigned char kat2812_persstr[] = {
+ 0x89, 0xcd, 0x5a, 0x82, 0x95, 0x3f, 0x88, 0x39, 0xb6, 0x13, 0x50, 0xa8,
+ 0x68, 0x4e, 0x92, 0x8c, 0x7d, 0xf7, 0x44, 0x93, 0x56, 0x2b, 0x5c, 0x7c,
+ 0x4b, 0x2f, 0x2f, 0x3e, 0xef, 0x74, 0xce, 0x5d, 0xb8, 0x8c, 0x2b, 0xc3,
+ 0xf0, 0xe5, 0xed, 0x03, 0xfa, 0x1b, 0xea, 0x84, 0x01, 0x4c, 0x3f, 0x9a,
+};
+static const unsigned char kat2812_entropyinreseed[] = {
+ 0xc1, 0x6a, 0x67, 0x69, 0x37, 0x24, 0x0e, 0x05, 0x23, 0xc5, 0x66, 0x4f,
+ 0xe3, 0x7d, 0xa9, 0x24, 0x3b, 0x6e, 0x91, 0x50, 0x42, 0x00, 0x7c, 0x5a,
+ 0xc5, 0xaf, 0x4c, 0x33, 0x45, 0x19, 0xa5, 0x19, 0x5d, 0xd6, 0x41, 0x9d,
+ 0x0e, 0x1f, 0xcc, 0x86, 0xc9, 0xb9, 0x6a, 0x27, 0x22, 0x11, 0xac, 0xcd,
+};
+static const unsigned char kat2812_addinreseed[] = {
+ 0xc3, 0x92, 0xdf, 0x2a, 0x33, 0x8e, 0x16, 0x81, 0xa0, 0x4d, 0xd1, 0x62,
+ 0x86, 0x0d, 0xdb, 0x3b, 0x2d, 0x55, 0x56, 0x6b, 0xa4, 0xe5, 0x14, 0xa3,
+ 0x71, 0xfc, 0x31, 0xa3, 0x56, 0xb9, 0xb5, 0xd4, 0x4f, 0x71, 0xa3, 0x94,
+ 0x9a, 0xbb, 0xfb, 0xc4, 0xb3, 0x33, 0x79, 0x39, 0xe2, 0xa9, 0x1d, 0xd6,
+};
+static const unsigned char kat2812_addin0[] = {
+ 0x03, 0x42, 0xc1, 0x22, 0xb8, 0x84, 0x73, 0xb9, 0x51, 0xa2, 0x7b, 0xa4,
+ 0x54, 0x4b, 0xc3, 0x0a, 0x10, 0x44, 0xcf, 0xa5, 0x22, 0xaf, 0xf3, 0x4e,
+ 0xa1, 0x27, 0xc0, 0x19, 0x50, 0xa0, 0x76, 0xed, 0xd9, 0x7a, 0x4a, 0x2e,
+ 0x0f, 0x19, 0x33, 0xa7, 0x43, 0xae, 0x7b, 0x9a, 0x17, 0xcc, 0x7e, 0xbd,
+};
+static const unsigned char kat2812_addin1[] = {
+ 0x21, 0x39, 0x80, 0x20, 0xe3, 0x72, 0x05, 0xc9, 0x6c, 0xc5, 0x95, 0x6e,
+ 0xb6, 0x2f, 0x28, 0x4b, 0x15, 0xea, 0x5e, 0x73, 0xc2, 0xc6, 0x5d, 0xf7,
+ 0x0f, 0xdd, 0xee, 0xcc, 0xa7, 0x9b, 0x85, 0x7b, 0x29, 0x8a, 0xa2, 0x1f,
+ 0x67, 0xfb, 0x20, 0x42, 0xa0, 0xb1, 0x8a, 0xb6, 0xca, 0x93, 0x69, 0xb6,
+};
+static const unsigned char kat2812_retbits[] = {
+ 0x6c, 0xd8, 0x2d, 0xac, 0xda, 0x43, 0xcc, 0x66, 0x38, 0xbf, 0x6b, 0x17,
+ 0xa5, 0x63, 0x51, 0xc0, 0x0c, 0x58, 0x0f, 0x5a, 0xb0, 0xf5, 0xb6, 0x52,
+ 0xc9, 0x0f, 0x3e, 0x77, 0xa6, 0x37, 0x53, 0xd7, 0x83, 0x75, 0x1a, 0x4c,
+ 0x29, 0xaf, 0xe8, 0x28, 0x6e, 0x48, 0xf3, 0xe5, 0x73, 0xd5, 0xfa, 0x50,
+ 0xb5, 0x12, 0x5b, 0x4c, 0x71, 0x89, 0x2e, 0x7f, 0x09, 0x78, 0x1e, 0x8b,
+ 0x9c, 0x0f, 0x45, 0xf7,
+};
+static const struct drbg_kat_pr_false kat2812_t = {
+ 6, kat2812_entropyin, kat2812_nonce, kat2812_persstr,
+ kat2812_entropyinreseed, kat2812_addinreseed, kat2812_addin0,
+ kat2812_addin1, kat2812_retbits
+};
+static const struct drbg_kat kat2812 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2812_t
+};
+
+static const unsigned char kat2813_entropyin[] = {
+ 0xcb, 0x05, 0xe1, 0xee, 0x85, 0xac, 0x6e, 0x9f, 0x6e, 0x20, 0x89, 0xd1,
+ 0x35, 0xc7, 0xd4, 0x3a, 0x6b, 0xb1, 0x58, 0x1b, 0x73, 0x73, 0x36, 0x6b,
+ 0xe8, 0x60, 0x19, 0xfc, 0xbf, 0x92, 0x78, 0xb7, 0x84, 0xe0, 0xed, 0x78,
+ 0x66, 0x61, 0x43, 0x07, 0x30, 0xe6, 0xb0, 0x20, 0x41, 0x03, 0x5e, 0xe0,
+};
+static const unsigned char kat2813_nonce[] = {0};
+static const unsigned char kat2813_persstr[] = {
+ 0x19, 0xa4, 0xf5, 0xce, 0x1e, 0x9a, 0x9f, 0x8a, 0x5a, 0x16, 0x18, 0xb2,
+ 0x35, 0x49, 0x0f, 0xf2, 0x2f, 0xc7, 0xb3, 0xa8, 0x11, 0x6d, 0x14, 0x43,
+ 0x59, 0x67, 0x6a, 0x43, 0x86, 0x06, 0x3b, 0x1b, 0xd0, 0x23, 0x09, 0x13,
+ 0x0b, 0x8d, 0x6c, 0x8a, 0x4b, 0xa3, 0xb4, 0x12, 0xf3, 0x6a, 0x48, 0x8b,
+};
+static const unsigned char kat2813_entropyinreseed[] = {
+ 0xec, 0xc2, 0x94, 0x02, 0xfb, 0xfb, 0x7e, 0x81, 0x94, 0xb1, 0xf4, 0x45,
+ 0x29, 0x73, 0xcf, 0x27, 0x48, 0x86, 0x19, 0xd3, 0xec, 0xc9, 0xad, 0x6c,
+ 0x25, 0xec, 0xe7, 0x5b, 0xd5, 0x97, 0xe0, 0xe8, 0x66, 0xcb, 0x53, 0x32,
+ 0x4b, 0xa5, 0xf9, 0xb7, 0x8f, 0xaf, 0xe5, 0x69, 0x8c, 0x56, 0x0a, 0xe9,
+};
+static const unsigned char kat2813_addinreseed[] = {
+ 0xf7, 0x54, 0xc6, 0x0d, 0x68, 0xce, 0x5f, 0xcd, 0xc7, 0xdf, 0x8c, 0xde,
+ 0x14, 0x7a, 0xf6, 0xd3, 0x19, 0x1b, 0xa4, 0x7f, 0x6a, 0x02, 0x92, 0x6d,
+ 0xee, 0xa2, 0xe5, 0xfc, 0x55, 0x88, 0xb0, 0xc2, 0x8d, 0x58, 0x06, 0x52,
+ 0x43, 0x8e, 0x18, 0xc7, 0xb8, 0xd5, 0x78, 0x37, 0xe8, 0x05, 0xf4, 0x39,
+};
+static const unsigned char kat2813_addin0[] = {
+ 0xc7, 0x09, 0xca, 0xd8, 0x78, 0x5e, 0x54, 0xf3, 0xde, 0xa0, 0xdd, 0xd4,
+ 0x4a, 0x46, 0x38, 0x4a, 0x1e, 0x59, 0x4a, 0xbf, 0x9d, 0x9d, 0xb7, 0xeb,
+ 0xa0, 0x13, 0x15, 0x3c, 0xb9, 0xc7, 0x77, 0x37, 0x01, 0x1f, 0xd1, 0x39,
+ 0x19, 0x7c, 0xf9, 0x67, 0xf5, 0x15, 0x44, 0x5c, 0xc0, 0x82, 0xe5, 0xe8,
+};
+static const unsigned char kat2813_addin1[] = {
+ 0x2d, 0x95, 0x86, 0x82, 0x85, 0xeb, 0xd3, 0x12, 0x4e, 0x8d, 0x40, 0xd5,
+ 0xba, 0x0f, 0x53, 0xd5, 0x31, 0x1a, 0xde, 0x0f, 0x70, 0x7f, 0x22, 0x5f,
+ 0xc4, 0x7a, 0x0a, 0x5f, 0x0e, 0x79, 0x48, 0x87, 0x8e, 0xb8, 0xab, 0x98,
+ 0x5d, 0xac, 0x3d, 0x3a, 0x37, 0x8b, 0x2c, 0xf9, 0x15, 0x52, 0x39, 0xc6,
+};
+static const unsigned char kat2813_retbits[] = {
+ 0x34, 0x51, 0x64, 0x22, 0xc3, 0x33, 0x15, 0xf6, 0xa5, 0x2c, 0x13, 0x19,
+ 0x65, 0xe3, 0x05, 0xe6, 0x97, 0x48, 0x8f, 0x01, 0x04, 0xdd, 0xb7, 0x19,
+ 0x36, 0xc2, 0x7d, 0xc6, 0x01, 0x2a, 0x6c, 0x41, 0x81, 0x33, 0x89, 0x79,
+ 0xc2, 0x38, 0xd9, 0x98, 0x20, 0xf4, 0xfb, 0xbc, 0x0b, 0xb1, 0x2f, 0x54,
+ 0xed, 0x39, 0x1a, 0x31, 0xd7, 0x4a, 0x4f, 0x1c, 0x89, 0x9c, 0xae, 0xb5,
+ 0xfa, 0x25, 0xde, 0x3e,
+};
+static const struct drbg_kat_pr_false kat2813_t = {
+ 7, kat2813_entropyin, kat2813_nonce, kat2813_persstr,
+ kat2813_entropyinreseed, kat2813_addinreseed, kat2813_addin0,
+ kat2813_addin1, kat2813_retbits
+};
+static const struct drbg_kat kat2813 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2813_t
+};
+
+static const unsigned char kat2814_entropyin[] = {
+ 0x85, 0x5a, 0xb5, 0x42, 0x14, 0xdc, 0x0a, 0x64, 0xf6, 0x69, 0x9f, 0x4f,
+ 0x3f, 0xc1, 0xbf, 0x1b, 0xa6, 0x4c, 0xbc, 0xe4, 0x2d, 0x32, 0x2b, 0x86,
+ 0xb4, 0x27, 0xd8, 0x86, 0x4e, 0x8f, 0x86, 0xef, 0x85, 0x43, 0x55, 0x78,
+ 0xfa, 0x20, 0x32, 0xce, 0x7c, 0x6b, 0x2d, 0xa4, 0x04, 0x4c, 0x78, 0x9f,
+};
+static const unsigned char kat2814_nonce[] = {0};
+static const unsigned char kat2814_persstr[] = {
+ 0x7b, 0x71, 0x25, 0x85, 0x9d, 0xaa, 0xe9, 0x64, 0x49, 0xa3, 0x99, 0x7b,
+ 0x49, 0x97, 0x11, 0x30, 0x17, 0x77, 0x5e, 0x6d, 0x48, 0x76, 0x7e, 0x2c,
+ 0x89, 0xba, 0xf9, 0x8e, 0x77, 0xd1, 0x89, 0x17, 0x34, 0x3f, 0x72, 0x2b,
+ 0x41, 0x0c, 0x62, 0xfb, 0x69, 0x4c, 0x2e, 0x5d, 0x24, 0xa2, 0x59, 0x09,
+};
+static const unsigned char kat2814_entropyinreseed[] = {
+ 0xda, 0xcf, 0xd6, 0x60, 0x33, 0xc7, 0x5f, 0x3d, 0x87, 0x5a, 0x23, 0xbe,
+ 0x63, 0x19, 0x8a, 0x67, 0x24, 0xfb, 0x14, 0x30, 0xb2, 0xc3, 0xb8, 0x8d,
+ 0x7b, 0xe8, 0xa9, 0x83, 0xa3, 0x18, 0xd0, 0x64, 0xb8, 0x0c, 0x63, 0x98,
+ 0xf1, 0xec, 0x35, 0x16, 0x85, 0x94, 0x55, 0x57, 0xcc, 0xad, 0x84, 0x71,
+};
+static const unsigned char kat2814_addinreseed[] = {
+ 0x1a, 0x1c, 0xa1, 0xdd, 0x4f, 0xa3, 0x0f, 0x58, 0x50, 0xd7, 0xbc, 0x7d,
+ 0xa7, 0xd8, 0x4a, 0x8e, 0x16, 0x0e, 0xba, 0x1b, 0xb8, 0xd7, 0xc7, 0x1f,
+ 0xdc, 0x0b, 0xf0, 0xe0, 0x4d, 0x99, 0x95, 0x3f, 0x30, 0xbc, 0x51, 0xc0,
+ 0xf4, 0x72, 0x0a, 0xad, 0x3d, 0x35, 0x96, 0x38, 0xc1, 0x35, 0x51, 0xac,
+};
+static const unsigned char kat2814_addin0[] = {
+ 0x93, 0x4b, 0x52, 0xe8, 0x6c, 0x93, 0x8f, 0x09, 0xc0, 0x05, 0x62, 0xac,
+ 0x21, 0x93, 0x47, 0xce, 0xa8, 0xb4, 0x89, 0x27, 0x76, 0xbf, 0x1b, 0x46,
+ 0x0b, 0x3d, 0x07, 0xe4, 0xaf, 0x2c, 0x13, 0xc6, 0x45, 0x8b, 0xe1, 0x08,
+ 0x07, 0xb5, 0xa6, 0xcb, 0xa2, 0xce, 0x00, 0x67, 0xd3, 0x94, 0x99, 0x48,
+};
+static const unsigned char kat2814_addin1[] = {
+ 0x2d, 0x99, 0x10, 0x38, 0xc3, 0xc8, 0x6a, 0x63, 0x3d, 0x42, 0xc1, 0x7d,
+ 0xb0, 0xad, 0x47, 0xac, 0x45, 0x37, 0x19, 0xfe, 0xc3, 0xe3, 0x19, 0x88,
+ 0x8b, 0x77, 0x7e, 0xb0, 0x3d, 0x43, 0x3d, 0xd3, 0x06, 0xe3, 0x87, 0x0a,
+ 0x32, 0x97, 0x2e, 0xf9, 0x2e, 0x0e, 0x05, 0xb7, 0xef, 0xe6, 0xe5, 0x54,
+};
+static const unsigned char kat2814_retbits[] = {
+ 0xf6, 0x22, 0xde, 0x89, 0x0e, 0xa3, 0x07, 0x89, 0x57, 0x4e, 0xf1, 0xbd,
+ 0xbe, 0x47, 0xb0, 0x11, 0xe8, 0xca, 0x53, 0x80, 0xc7, 0xc8, 0x6c, 0x8f,
+ 0xe8, 0x2a, 0xc0, 0x83, 0x1a, 0x00, 0x3b, 0x20, 0xaf, 0x8f, 0x39, 0x33,
+ 0x96, 0x97, 0x60, 0x0a, 0xc4, 0x75, 0xff, 0x97, 0xf4, 0x07, 0x36, 0x33,
+ 0x9a, 0xe3, 0x4d, 0xa7, 0xfa, 0x42, 0x18, 0x0d, 0x44, 0x4a, 0xfe, 0x8f,
+ 0xfd, 0x48, 0x62, 0x96,
+};
+static const struct drbg_kat_pr_false kat2814_t = {
+ 8, kat2814_entropyin, kat2814_nonce, kat2814_persstr,
+ kat2814_entropyinreseed, kat2814_addinreseed, kat2814_addin0,
+ kat2814_addin1, kat2814_retbits
+};
+static const struct drbg_kat kat2814 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2814_t
+};
+
+static const unsigned char kat2815_entropyin[] = {
+ 0x55, 0x4a, 0x4d, 0xbd, 0x10, 0xbd, 0x99, 0xcc, 0xaf, 0x1e, 0x95, 0x0e,
+ 0xac, 0xc0, 0x38, 0xef, 0x51, 0x82, 0x62, 0xc9, 0xd3, 0xc3, 0x0e, 0xaf,
+ 0x42, 0x1b, 0xee, 0x22, 0xe7, 0x83, 0x56, 0xf6, 0xc3, 0x45, 0x82, 0x2a,
+ 0xdb, 0x58, 0x89, 0xac, 0xd9, 0x60, 0xdb, 0xc6, 0x22, 0xe1, 0x30, 0x7b,
+};
+static const unsigned char kat2815_nonce[] = {0};
+static const unsigned char kat2815_persstr[] = {
+ 0xeb, 0x10, 0xac, 0x13, 0x6e, 0xd6, 0xbc, 0x91, 0x01, 0x81, 0x8b, 0xbc,
+ 0x1e, 0x27, 0xf6, 0xf4, 0x45, 0x3e, 0x90, 0x88, 0xcf, 0x5a, 0xa4, 0xa8,
+ 0x9d, 0xb9, 0x33, 0xea, 0x00, 0xc8, 0xce, 0x21, 0x55, 0xfc, 0x06, 0x09,
+ 0x38, 0xda, 0x0a, 0xa0, 0x68, 0xdd, 0xfb, 0x4e, 0x44, 0xb9, 0xae, 0x8e,
+};
+static const unsigned char kat2815_entropyinreseed[] = {
+ 0x5d, 0xca, 0xd8, 0x0c, 0x27, 0x49, 0x2f, 0x34, 0xf6, 0x87, 0x43, 0xbb,
+ 0x07, 0x69, 0x1b, 0x35, 0x2f, 0x53, 0x7f, 0x02, 0x2a, 0x1b, 0x63, 0xd9,
+ 0x6a, 0x91, 0xda, 0x39, 0x1d, 0xdc, 0x53, 0x08, 0x09, 0xd8, 0x74, 0xae,
+ 0x11, 0x88, 0x76, 0x98, 0x5a, 0xd2, 0xdc, 0xa9, 0x17, 0xad, 0x8b, 0x6d,
+};
+static const unsigned char kat2815_addinreseed[] = {
+ 0x63, 0x24, 0x2c, 0x7e, 0xf2, 0x23, 0x58, 0x12, 0x05, 0x6e, 0xd1, 0x5c,
+ 0xbf, 0x68, 0xbe, 0x91, 0x73, 0xdb, 0xe1, 0x1a, 0xc7, 0x33, 0x13, 0x1e,
+ 0xc7, 0xe3, 0x92, 0xda, 0x9d, 0x27, 0x5b, 0xe2, 0x59, 0x1c, 0x95, 0xf3,
+ 0xd8, 0xf6, 0x71, 0xab, 0x21, 0x50, 0x74, 0x74, 0xa5, 0x9e, 0xca, 0x18,
+};
+static const unsigned char kat2815_addin0[] = {
+ 0x25, 0x86, 0xa1, 0xaf, 0x83, 0x23, 0x76, 0xb5, 0x26, 0x67, 0x9c, 0xce,
+ 0x9d, 0x0d, 0xc5, 0x75, 0x10, 0x8d, 0x64, 0xcb, 0xf5, 0x40, 0x16, 0x7e,
+ 0xa3, 0x21, 0xd1, 0x4e, 0xc6, 0x72, 0xe4, 0xe9, 0xd9, 0x81, 0xf9, 0xf3,
+ 0xb3, 0x7a, 0x52, 0xb0, 0xbd, 0x42, 0xb6, 0x66, 0x69, 0xcc, 0xe1, 0x40,
+};
+static const unsigned char kat2815_addin1[] = {
+ 0x6b, 0xc0, 0x88, 0x87, 0x46, 0xc1, 0x2f, 0x94, 0x58, 0x12, 0xd5, 0xfa,
+ 0x38, 0x2b, 0x25, 0x2c, 0x4e, 0x5c, 0x89, 0x4a, 0x8f, 0x65, 0xad, 0xd7,
+ 0x1e, 0x9c, 0x9d, 0x0f, 0xfd, 0x5b, 0x22, 0xf5, 0x37, 0xc4, 0x40, 0x87,
+ 0x0f, 0x0a, 0x0b, 0x70, 0xfa, 0xa5, 0x1a, 0xf7, 0x71, 0xdb, 0x84, 0x9e,
+};
+static const unsigned char kat2815_retbits[] = {
+ 0xce, 0x62, 0x7e, 0xe4, 0xc9, 0xf2, 0x09, 0x61, 0x66, 0xaf, 0x58, 0xec,
+ 0x03, 0x29, 0x21, 0x84, 0x69, 0x12, 0x0f, 0x7f, 0x30, 0x3f, 0x7d, 0x12,
+ 0xb5, 0xd9, 0xb0, 0xee, 0xf3, 0x5c, 0x66, 0x48, 0x65, 0xfe, 0x85, 0x17,
+ 0x0f, 0xbb, 0xf5, 0x10, 0x60, 0xaa, 0xd0, 0xe6, 0xf7, 0xf6, 0x4f, 0xba,
+ 0x86, 0xfd, 0x4c, 0x71, 0xee, 0x57, 0xbb, 0x07, 0xb9, 0x61, 0x3a, 0x85,
+ 0x86, 0x11, 0xc8, 0xe3,
+};
+static const struct drbg_kat_pr_false kat2815_t = {
+ 9, kat2815_entropyin, kat2815_nonce, kat2815_persstr,
+ kat2815_entropyinreseed, kat2815_addinreseed, kat2815_addin0,
+ kat2815_addin1, kat2815_retbits
+};
+static const struct drbg_kat kat2815 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2815_t
+};
+
+static const unsigned char kat2816_entropyin[] = {
+ 0xd1, 0x99, 0xbb, 0xd5, 0x1c, 0xeb, 0xa0, 0x32, 0x3a, 0xc4, 0x91, 0xff,
+ 0x14, 0x52, 0x08, 0xef, 0xf3, 0xfb, 0x45, 0xf1, 0x7b, 0xd4, 0x99, 0xd0,
+ 0x0c, 0x79, 0xb5, 0xcd, 0x42, 0x92, 0x86, 0xad, 0x9e, 0x33, 0xd1, 0x00,
+ 0x59, 0x22, 0x34, 0x89, 0xac, 0xbc, 0x27, 0x96, 0x88, 0x04, 0x07, 0xee,
+};
+static const unsigned char kat2816_nonce[] = {0};
+static const unsigned char kat2816_persstr[] = {
+ 0x67, 0x0d, 0x10, 0x83, 0xe6, 0xe0, 0xa8, 0x3b, 0x8a, 0xc6, 0xf2, 0x58,
+ 0xa6, 0x00, 0x4a, 0xed, 0x9b, 0x91, 0x17, 0xb6, 0xf9, 0x90, 0x2b, 0x4f,
+ 0xa8, 0xa1, 0x4f, 0xc5, 0x58, 0x0f, 0x3e, 0x9d, 0x40, 0x41, 0x3c, 0x72,
+ 0xc8, 0xce, 0x8d, 0x7c, 0x53, 0x62, 0x84, 0x95, 0xce, 0x29, 0x24, 0xf4,
+};
+static const unsigned char kat2816_entropyinreseed[] = {
+ 0xd6, 0xa3, 0x3a, 0x4f, 0xba, 0x1e, 0x88, 0x39, 0xbc, 0x5f, 0xca, 0x6c,
+ 0x7b, 0xa6, 0x31, 0x71, 0x77, 0xc5, 0xc9, 0xa2, 0x98, 0x6b, 0x03, 0x97,
+ 0x8c, 0x9a, 0x43, 0xa8, 0x2f, 0x6b, 0x1f, 0x6c, 0xee, 0x44, 0x3e, 0x76,
+ 0x27, 0x28, 0x39, 0x93, 0x76, 0xdd, 0x86, 0x6d, 0x8a, 0x99, 0xba, 0x60,
+};
+static const unsigned char kat2816_addinreseed[] = {
+ 0x6f, 0xad, 0xa6, 0x6c, 0xce, 0xa9, 0xe9, 0x52, 0x77, 0xce, 0x1d, 0xe3,
+ 0x5f, 0xcb, 0x5d, 0x1b, 0x42, 0xea, 0x35, 0xa0, 0x0e, 0xb5, 0x88, 0xab,
+ 0xd4, 0x06, 0x2c, 0x23, 0x16, 0x56, 0x6d, 0x0e, 0xf6, 0xae, 0x9f, 0xe3,
+ 0xb4, 0xe4, 0x9d, 0xd1, 0xd8, 0x6f, 0x07, 0xc9, 0x69, 0x55, 0x05, 0xfc,
+};
+static const unsigned char kat2816_addin0[] = {
+ 0x2d, 0x78, 0xcb, 0x13, 0x16, 0x61, 0xc5, 0x5a, 0xee, 0xd6, 0x8c, 0x22,
+ 0x5e, 0x97, 0x10, 0x7a, 0xc6, 0x66, 0xc8, 0x4c, 0xca, 0xa7, 0x77, 0x0c,
+ 0x49, 0x8e, 0xa9, 0xed, 0xaf, 0x38, 0xe5, 0xc3, 0xe2, 0x41, 0xa5, 0x4f,
+ 0xa9, 0x31, 0x05, 0xef, 0xfc, 0xf8, 0x64, 0xdd, 0x0d, 0x74, 0xe3, 0x13,
+};
+static const unsigned char kat2816_addin1[] = {
+ 0x06, 0xb1, 0x6d, 0x02, 0x6a, 0xca, 0x61, 0x0a, 0xf5, 0xe0, 0x84, 0xf7,
+ 0x58, 0x9f, 0x8c, 0x29, 0x66, 0xf8, 0xce, 0xce, 0xed, 0x4d, 0x2d, 0x56,
+ 0x0e, 0xd6, 0xaa, 0x52, 0x94, 0x50, 0x35, 0x87, 0xc8, 0x99, 0xb0, 0xe2,
+ 0xef, 0x0f, 0x22, 0x2d, 0xf0, 0xe7, 0xab, 0xbe, 0x89, 0x37, 0x12, 0x82,
+};
+static const unsigned char kat2816_retbits[] = {
+ 0xd4, 0xf0, 0x44, 0x1b, 0x30, 0x3a, 0x63, 0x27, 0xc7, 0xfb, 0x75, 0x11,
+ 0x3e, 0xe6, 0x74, 0x6c, 0xff, 0xf5, 0xd2, 0xfe, 0xdf, 0x63, 0xe8, 0xc8,
+ 0xde, 0x8e, 0x2a, 0xf0, 0xf6, 0xa5, 0x94, 0x8a, 0x12, 0xa9, 0x4c, 0xa9,
+ 0x2e, 0x08, 0xbe, 0x8e, 0xb9, 0xbf, 0x5d, 0xa8, 0xfd, 0x4b, 0x45, 0xef,
+ 0xad, 0xc9, 0x32, 0x7f, 0x8e, 0x3a, 0x45, 0x8b, 0x0a, 0x3b, 0x74, 0xda,
+ 0xde, 0x4a, 0x33, 0x59,
+};
+static const struct drbg_kat_pr_false kat2816_t = {
+ 10, kat2816_entropyin, kat2816_nonce, kat2816_persstr,
+ kat2816_entropyinreseed, kat2816_addinreseed, kat2816_addin0,
+ kat2816_addin1, kat2816_retbits
+};
+static const struct drbg_kat kat2816 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2816_t
+};
+
+static const unsigned char kat2817_entropyin[] = {
+ 0xee, 0x95, 0x3e, 0xce, 0xfa, 0xb5, 0x55, 0x91, 0x3a, 0xef, 0xbf, 0xf2,
+ 0x4a, 0x58, 0x8b, 0xcc, 0x38, 0x06, 0x60, 0x75, 0x9e, 0x18, 0x91, 0xf6,
+ 0x8e, 0x60, 0x2e, 0xf7, 0xb0, 0x90, 0xbd, 0x33, 0x02, 0x6c, 0x2e, 0x34,
+ 0x6f, 0x67, 0xd3, 0x41, 0x51, 0xb6, 0xe6, 0x9a, 0x40, 0xd6, 0xd8, 0xd5,
+};
+static const unsigned char kat2817_nonce[] = {0};
+static const unsigned char kat2817_persstr[] = {
+ 0xe0, 0x77, 0xd4, 0x2d, 0xfe, 0x69, 0x76, 0x20, 0xf2, 0x1a, 0x9f, 0x8a,
+ 0xd5, 0xea, 0xe6, 0xc8, 0x75, 0x89, 0xd9, 0xc1, 0xc3, 0x7d, 0x30, 0xdd,
+ 0xde, 0xf2, 0xab, 0x81, 0xcf, 0xba, 0xe9, 0x79, 0x75, 0x00, 0x79, 0x5c,
+ 0xe5, 0xa0, 0x0d, 0x79, 0xb3, 0x51, 0x8f, 0xee, 0xcb, 0x1e, 0xd8, 0xeb,
+};
+static const unsigned char kat2817_entropyinreseed[] = {
+ 0x4e, 0xe2, 0xc4, 0x6c, 0xd9, 0x9e, 0x8b, 0x5d, 0x8f, 0xab, 0x2f, 0x0d,
+ 0x27, 0x20, 0x0e, 0x29, 0x92, 0xf1, 0x5a, 0xcb, 0xe2, 0xf1, 0x3a, 0x8f,
+ 0x40, 0x58, 0x77, 0xed, 0xf4, 0xff, 0x7e, 0xb2, 0x37, 0x3c, 0xca, 0xf4,
+ 0x02, 0xfa, 0x8a, 0xdf, 0x97, 0xe8, 0x06, 0xf5, 0x5f, 0xde, 0x21, 0x0c,
+};
+static const unsigned char kat2817_addinreseed[] = {
+ 0x94, 0x4a, 0x1e, 0xe0, 0x31, 0x96, 0x7b, 0xd9, 0xd3, 0x52, 0x60, 0x6f,
+ 0x97, 0x0a, 0x3e, 0x52, 0x2f, 0x03, 0xb9, 0x38, 0x5d, 0x73, 0x51, 0x88,
+ 0x7e, 0x74, 0x82, 0xc2, 0x62, 0xee, 0x88, 0x4b, 0xda, 0xb3, 0xc7, 0xcf,
+ 0xd0, 0x25, 0x90, 0x75, 0x93, 0x10, 0x33, 0xc4, 0xbc, 0x19, 0x9f, 0x80,
+};
+static const unsigned char kat2817_addin0[] = {
+ 0xc8, 0xfd, 0x47, 0x59, 0xc1, 0x27, 0x70, 0x51, 0xb6, 0x84, 0x1a, 0xe7,
+ 0x1e, 0xfc, 0xad, 0xc4, 0xf0, 0x97, 0x8c, 0x42, 0x26, 0x6d, 0x1f, 0xd4,
+ 0x87, 0x2b, 0x00, 0x51, 0xa4, 0x88, 0x45, 0xb8, 0xdf, 0xc5, 0xd2, 0xaa,
+ 0xba, 0x69, 0x2e, 0x08, 0xfe, 0x5f, 0x91, 0x81, 0xf0, 0xcd, 0xdd, 0x85,
+};
+static const unsigned char kat2817_addin1[] = {
+ 0x2d, 0xe6, 0xbe, 0x84, 0x8d, 0xe7, 0xa0, 0x3b, 0xef, 0xd8, 0xfa, 0xb5,
+ 0x22, 0x8f, 0x23, 0x54, 0xb5, 0x87, 0x62, 0xfd, 0x42, 0x43, 0x8c, 0xdb,
+ 0x7c, 0xe5, 0x50, 0xef, 0x06, 0x37, 0xee, 0x30, 0xd7, 0xaa, 0x13, 0xed,
+ 0x01, 0xa7, 0x90, 0xac, 0xd4, 0x2f, 0xeb, 0x84, 0xad, 0xc8, 0xfa, 0x09,
+};
+static const unsigned char kat2817_retbits[] = {
+ 0xa8, 0xed, 0x5b, 0xd8, 0x3c, 0x15, 0xec, 0xdb, 0x7d, 0xf0, 0xf6, 0xed,
+ 0x18, 0x6f, 0xb8, 0x99, 0xc9, 0x8a, 0x15, 0x4f, 0xee, 0x04, 0x75, 0x91,
+ 0x6f, 0xe1, 0x10, 0x89, 0xd4, 0x8f, 0x21, 0x74, 0x0f, 0x7c, 0xea, 0xa8,
+ 0x3f, 0xc5, 0x3f, 0x91, 0xc6, 0xb0, 0x3b, 0x16, 0x7b, 0x69, 0x7c, 0xf0,
+ 0x90, 0x53, 0x50, 0x9f, 0x10, 0x0f, 0x69, 0x98, 0xc9, 0x50, 0xec, 0xc6,
+ 0x34, 0xf2, 0x66, 0xee,
+};
+static const struct drbg_kat_pr_false kat2817_t = {
+ 11, kat2817_entropyin, kat2817_nonce, kat2817_persstr,
+ kat2817_entropyinreseed, kat2817_addinreseed, kat2817_addin0,
+ kat2817_addin1, kat2817_retbits
+};
+static const struct drbg_kat kat2817 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2817_t
+};
+
+static const unsigned char kat2818_entropyin[] = {
+ 0x0a, 0x34, 0xb8, 0x2b, 0x54, 0x64, 0x5f, 0x46, 0xe7, 0x4e, 0x41, 0x61,
+ 0x49, 0x8e, 0x75, 0xf5, 0xfe, 0x35, 0x53, 0x17, 0x38, 0xb9, 0xee, 0x00,
+ 0x2e, 0xec, 0xb3, 0xfd, 0x83, 0xc2, 0x17, 0xb1, 0xe0, 0xf9, 0x58, 0x89,
+ 0x7a, 0x3e, 0x88, 0x00, 0xd8, 0xc5, 0x88, 0x21, 0x89, 0xcf, 0x2f, 0x95,
+};
+static const unsigned char kat2818_nonce[] = {0};
+static const unsigned char kat2818_persstr[] = {
+ 0x9a, 0x25, 0x1b, 0x28, 0xcd, 0xfd, 0x57, 0xfa, 0x1f, 0x58, 0xa0, 0x0e,
+ 0xd4, 0x23, 0xd5, 0x21, 0xd6, 0xe0, 0xa4, 0x03, 0x6e, 0x5a, 0x54, 0x9a,
+ 0xbd, 0x81, 0xe5, 0x3f, 0x17, 0x93, 0xcf, 0xa3, 0x16, 0x2c, 0xec, 0xcf,
+ 0x01, 0x00, 0x49, 0xa5, 0xc9, 0xdd, 0x55, 0x50, 0xff, 0x3f, 0xdd, 0x80,
+};
+static const unsigned char kat2818_entropyinreseed[] = {
+ 0x9e, 0x4b, 0x5d, 0x5e, 0xc7, 0x03, 0x2c, 0x09, 0xde, 0x00, 0xc7, 0xfa,
+ 0xf6, 0x51, 0x5b, 0x05, 0xe5, 0x76, 0x46, 0x09, 0x2a, 0x3d, 0xf2, 0x08,
+ 0x3e, 0xd0, 0x6b, 0x61, 0xf9, 0x63, 0x2a, 0xa7, 0x02, 0x85, 0xa4, 0x3a,
+ 0xb0, 0xb5, 0x69, 0xfa, 0x42, 0x96, 0x84, 0xdf, 0xd2, 0x9b, 0xc4, 0x05,
+};
+static const unsigned char kat2818_addinreseed[] = {
+ 0xfd, 0x44, 0x06, 0x0a, 0x04, 0xdf, 0x78, 0xe5, 0x55, 0xb9, 0x45, 0x6f,
+ 0xbc, 0x84, 0x0a, 0x5f, 0x4a, 0x29, 0xd0, 0xed, 0xb3, 0x59, 0x6b, 0x79,
+ 0x3c, 0x39, 0xf1, 0xa7, 0xd7, 0xec, 0xd7, 0xb7, 0x55, 0xf6, 0x98, 0x67,
+ 0x2e, 0xee, 0xef, 0x14, 0xf4, 0x28, 0x25, 0x54, 0x0a, 0xa4, 0x55, 0x8c,
+};
+static const unsigned char kat2818_addin0[] = {
+ 0xdd, 0x06, 0x50, 0x94, 0xe4, 0x0c, 0x6c, 0xec, 0xe1, 0x9b, 0xa1, 0x2a,
+ 0xee, 0x2d, 0x37, 0xc6, 0x15, 0xa7, 0x89, 0xed, 0xbe, 0xca, 0xc7, 0x02,
+ 0x55, 0xd2, 0x60, 0x6a, 0xba, 0x6f, 0xff, 0xee, 0xae, 0x98, 0x27, 0x22,
+ 0x85, 0xcb, 0xb3, 0x75, 0xe7, 0xbb, 0x4d, 0x0b, 0x8c, 0x8b, 0x8c, 0xff,
+};
+static const unsigned char kat2818_addin1[] = {
+ 0xb4, 0x51, 0x66, 0xe7, 0xf7, 0x55, 0x57, 0x1c, 0x72, 0xd4, 0x06, 0xe7,
+ 0x3a, 0x4a, 0xe6, 0xb3, 0xd3, 0x75, 0x41, 0x17, 0x74, 0x10, 0xab, 0xf2,
+ 0xfa, 0xef, 0x93, 0xd3, 0x0b, 0x4c, 0x67, 0x9c, 0xc9, 0xb3, 0x46, 0xf1,
+ 0x00, 0x6b, 0x24, 0xcf, 0xc4, 0x67, 0xe3, 0x78, 0xf1, 0x76, 0x29, 0x6d,
+};
+static const unsigned char kat2818_retbits[] = {
+ 0xd7, 0xdd, 0xec, 0xf1, 0xcf, 0x61, 0x84, 0x1e, 0x65, 0xe6, 0x50, 0x84,
+ 0x3e, 0xb1, 0x57, 0xe2, 0xcb, 0xfc, 0x09, 0x9f, 0xae, 0x94, 0x36, 0x5a,
+ 0xb9, 0x50, 0x79, 0x4f, 0x91, 0x1a, 0x8f, 0x8b, 0x22, 0x7c, 0xf7, 0x34,
+ 0x89, 0xfd, 0x78, 0x31, 0xbf, 0x41, 0x0f, 0xab, 0x02, 0x6d, 0x90, 0xed,
+ 0x9d, 0x03, 0x12, 0x06, 0xa7, 0x59, 0xb1, 0x2c, 0x49, 0xa9, 0x58, 0x40,
+ 0x23, 0x63, 0xed, 0x7d,
+};
+static const struct drbg_kat_pr_false kat2818_t = {
+ 12, kat2818_entropyin, kat2818_nonce, kat2818_persstr,
+ kat2818_entropyinreseed, kat2818_addinreseed, kat2818_addin0,
+ kat2818_addin1, kat2818_retbits
+};
+static const struct drbg_kat kat2818 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2818_t
+};
+
+static const unsigned char kat2819_entropyin[] = {
+ 0xb5, 0x80, 0x99, 0x57, 0xb1, 0x79, 0xe5, 0x5b, 0x2b, 0xfe, 0x55, 0xf4,
+ 0x8d, 0x24, 0xf1, 0xfe, 0x81, 0x56, 0xa3, 0x6d, 0xf7, 0xa9, 0xed, 0x5f,
+ 0xec, 0xa0, 0x1c, 0x7a, 0xea, 0x01, 0x9b, 0xe7, 0x74, 0x82, 0x09, 0x33,
+ 0xb7, 0xec, 0x5e, 0x56, 0x91, 0x3d, 0x96, 0xeb, 0x67, 0x2f, 0xc0, 0x65,
+};
+static const unsigned char kat2819_nonce[] = {0};
+static const unsigned char kat2819_persstr[] = {
+ 0xa1, 0x5d, 0x7e, 0xe8, 0x3b, 0x11, 0x57, 0xb9, 0xa5, 0x19, 0x8d, 0x20,
+ 0x1e, 0xfc, 0x46, 0x60, 0x82, 0x07, 0x24, 0x30, 0xc4, 0x84, 0x37, 0x5a,
+ 0xef, 0xc8, 0x57, 0xec, 0x23, 0x5f, 0x98, 0x8c, 0xfb, 0x28, 0x73, 0xaa,
+ 0x6d, 0x43, 0x31, 0xf8, 0x10, 0xa0, 0xc3, 0x88, 0x35, 0x8b, 0xb5, 0x2f,
+};
+static const unsigned char kat2819_entropyinreseed[] = {
+ 0xd9, 0x89, 0xc2, 0xe2, 0xc3, 0x5a, 0x89, 0xca, 0x31, 0x42, 0x84, 0x4d,
+ 0x8a, 0x9b, 0xc0, 0x9d, 0xf2, 0xb1, 0xbc, 0x52, 0x5d, 0xec, 0x29, 0xe4,
+ 0x53, 0x8a, 0xfa, 0x6a, 0x7c, 0xae, 0x5a, 0xff, 0x97, 0xf9, 0x6d, 0x97,
+ 0x03, 0x11, 0x22, 0x60, 0x69, 0xed, 0x87, 0x68, 0x67, 0x9d, 0x2d, 0x1f,
+};
+static const unsigned char kat2819_addinreseed[] = {
+ 0x57, 0x7f, 0x1f, 0x48, 0x18, 0xbd, 0x6e, 0x4f, 0xe0, 0xaf, 0xcd, 0x83,
+ 0x48, 0xb9, 0xf3, 0x74, 0xc9, 0x8e, 0xec, 0xf4, 0xba, 0x4a, 0xf5, 0x5c,
+ 0x3d, 0x17, 0xed, 0xe2, 0xa6, 0x4b, 0xbf, 0xee, 0x67, 0x03, 0xff, 0xe6,
+ 0x8b, 0xdf, 0xd2, 0x3a, 0x78, 0xc0, 0xcd, 0x79, 0xa6, 0x3e, 0xcc, 0xca,
+};
+static const unsigned char kat2819_addin0[] = {
+ 0xdd, 0x6b, 0x7e, 0x68, 0xe8, 0x0c, 0x0b, 0xf3, 0x51, 0xe5, 0x0e, 0x4e,
+ 0xfc, 0x66, 0x15, 0x1e, 0x08, 0x43, 0xdf, 0x82, 0x1d, 0x11, 0xf5, 0xc2,
+ 0xae, 0xcd, 0xad, 0xe8, 0x28, 0x9d, 0x7a, 0x51, 0x75, 0xd4, 0x87, 0xa8,
+ 0xdd, 0x24, 0x81, 0x3c, 0x6b, 0xf9, 0x7c, 0xf7, 0x3a, 0xa1, 0x4f, 0x33,
+};
+static const unsigned char kat2819_addin1[] = {
+ 0x3a, 0x29, 0xc7, 0xbc, 0xd4, 0x38, 0x79, 0x03, 0x4f, 0xf0, 0x4a, 0x9b,
+ 0x19, 0x27, 0xd3, 0x8d, 0xcc, 0x17, 0x6f, 0xdb, 0xb5, 0x8e, 0x9c, 0xc2,
+ 0x3e, 0x00, 0xa1, 0x4c, 0xf5, 0x6f, 0xb2, 0x6c, 0x32, 0xa3, 0x38, 0x34,
+ 0x4e, 0xa9, 0x7a, 0xaf, 0x41, 0x01, 0x07, 0x80, 0x13, 0x93, 0xf0, 0x77,
+};
+static const unsigned char kat2819_retbits[] = {
+ 0xfe, 0x26, 0x30, 0x9d, 0xcc, 0x58, 0xcd, 0xb6, 0x41, 0xcd, 0xa5, 0x3f,
+ 0xe4, 0x43, 0x3c, 0x25, 0x06, 0x79, 0x19, 0xe5, 0x55, 0x25, 0xa4, 0xa2,
+ 0x6c, 0x74, 0x28, 0x30, 0xda, 0xe2, 0x2c, 0x1b, 0xe3, 0xe7, 0xe9, 0x6f,
+ 0x6f, 0xa5, 0x02, 0xa6, 0xca, 0xbf, 0x6c, 0x79, 0xf3, 0x43, 0x8d, 0xb8,
+ 0x0d, 0x58, 0x0c, 0x26, 0xe6, 0x75, 0xf9, 0x39, 0xa9, 0x51, 0x83, 0x27,
+ 0x2c, 0xc8, 0x16, 0xc9,
+};
+static const struct drbg_kat_pr_false kat2819_t = {
+ 13, kat2819_entropyin, kat2819_nonce, kat2819_persstr,
+ kat2819_entropyinreseed, kat2819_addinreseed, kat2819_addin0,
+ kat2819_addin1, kat2819_retbits
+};
+static const struct drbg_kat kat2819 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2819_t
+};
+
+static const unsigned char kat2820_entropyin[] = {
+ 0xa1, 0x9f, 0x8c, 0xfa, 0x22, 0x3a, 0xd1, 0xb2, 0x5d, 0x10, 0x9d, 0x90,
+ 0x1a, 0x10, 0x61, 0xe8, 0xfb, 0x02, 0x37, 0x59, 0x86, 0x90, 0x65, 0x4c,
+ 0x83, 0xf1, 0x27, 0x1c, 0xa7, 0xdb, 0x6a, 0x0c, 0x8a, 0x0e, 0x09, 0x3b,
+ 0x7e, 0x80, 0x31, 0x4f, 0xa6, 0x80, 0x14, 0x39, 0x7c, 0x12, 0xed, 0xea,
+};
+static const unsigned char kat2820_nonce[] = {0};
+static const unsigned char kat2820_persstr[] = {
+ 0xef, 0x6b, 0x17, 0xca, 0x95, 0xa7, 0x4a, 0x72, 0xf1, 0x03, 0x50, 0x06,
+ 0xc0, 0xb9, 0x94, 0x06, 0xf6, 0xe2, 0xe7, 0xdc, 0xc9, 0x08, 0x92, 0xd0,
+ 0xf3, 0x1e, 0xd0, 0xab, 0xa7, 0xfa, 0x36, 0x94, 0x45, 0x9c, 0xd3, 0xde,
+ 0x63, 0x2f, 0xef, 0x04, 0xaf, 0xdc, 0x31, 0xfa, 0x32, 0x6e, 0x42, 0x4a,
+};
+static const unsigned char kat2820_entropyinreseed[] = {
+ 0x12, 0x96, 0x22, 0x7f, 0xec, 0x4c, 0x2b, 0xac, 0x91, 0x44, 0x16, 0xdd,
+ 0x33, 0xe3, 0x0d, 0xcf, 0x3e, 0x96, 0x4d, 0x64, 0xd2, 0xea, 0x6c, 0x9d,
+ 0xd3, 0x97, 0xe8, 0x3c, 0x1c, 0x2d, 0xd1, 0x73, 0xbc, 0xea, 0xc9, 0x04,
+ 0xdf, 0x23, 0x30, 0x98, 0xff, 0x7b, 0x53, 0x19, 0xe8, 0x9b, 0x74, 0x8b,
+};
+static const unsigned char kat2820_addinreseed[] = {
+ 0xa4, 0xfa, 0x86, 0xd5, 0xd2, 0xdd, 0x13, 0x68, 0xa9, 0x3b, 0xdf, 0x19,
+ 0xe4, 0x07, 0x1e, 0xcf, 0x2d, 0x4f, 0xc3, 0xcb, 0xed, 0x04, 0xf5, 0x44,
+ 0xfd, 0xb9, 0x61, 0x83, 0xea, 0x5a, 0x55, 0xb9, 0xc2, 0x93, 0x63, 0x6f,
+ 0xe0, 0x98, 0xe2, 0x71, 0x0d, 0x95, 0x2a, 0x51, 0x1a, 0x36, 0xa6, 0x6d,
+};
+static const unsigned char kat2820_addin0[] = {
+ 0xbd, 0x20, 0x3c, 0xdd, 0x94, 0x30, 0x7b, 0xab, 0x1a, 0x53, 0x73, 0x4a,
+ 0x3a, 0x45, 0x1f, 0x0b, 0x03, 0x86, 0x14, 0x89, 0x21, 0x86, 0xb2, 0x68,
+ 0x77, 0xb2, 0xc1, 0xc8, 0x49, 0x2b, 0x03, 0x98, 0x6e, 0x2e, 0xc4, 0xae,
+ 0xeb, 0x09, 0xd2, 0xe9, 0x06, 0xe7, 0x8c, 0x1c, 0x23, 0x4f, 0xa6, 0x75,
+};
+static const unsigned char kat2820_addin1[] = {
+ 0x63, 0x1c, 0xf0, 0x31, 0x7b, 0x71, 0x3d, 0x07, 0xce, 0x74, 0xf7, 0xb0,
+ 0x5f, 0xf4, 0xe7, 0xa1, 0x58, 0xc7, 0x69, 0x99, 0x3d, 0x35, 0x73, 0x25,
+ 0xf8, 0xe9, 0xd1, 0x6b, 0x25, 0x07, 0x6b, 0xc9, 0xb0, 0xfe, 0xbb, 0xbd,
+ 0x66, 0xbf, 0x23, 0xfb, 0xc9, 0xc2, 0x72, 0x86, 0xdc, 0x16, 0x63, 0xe7,
+};
+static const unsigned char kat2820_retbits[] = {
+ 0x40, 0x11, 0x76, 0x18, 0x5d, 0x33, 0xef, 0x08, 0xd0, 0xb6, 0x5a, 0x5b,
+ 0x85, 0x3d, 0x57, 0x58, 0x32, 0x50, 0xdd, 0x2e, 0xfa, 0xf4, 0x4c, 0xa0,
+ 0xf9, 0x87, 0xb4, 0x5f, 0x89, 0xea, 0xfe, 0xb5, 0x2d, 0x2f, 0x43, 0x46,
+ 0xbf, 0x9b, 0x9d, 0x0b, 0x7d, 0xd4, 0xf7, 0x12, 0x6e, 0x7d, 0x89, 0xdd,
+ 0x32, 0xf5, 0x3b, 0x73, 0x7c, 0xef, 0x79, 0xab, 0x5d, 0xd0, 0x79, 0x4f,
+ 0xb8, 0xa4, 0xc8, 0x9d,
+};
+static const struct drbg_kat_pr_false kat2820_t = {
+ 14, kat2820_entropyin, kat2820_nonce, kat2820_persstr,
+ kat2820_entropyinreseed, kat2820_addinreseed, kat2820_addin0,
+ kat2820_addin1, kat2820_retbits
+};
+static const struct drbg_kat kat2820 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2820_t
+};
+
+static const unsigned char kat2821_entropyin[] = {
+ 0xf5, 0x2b, 0x9e, 0x21, 0x16, 0x05, 0x27, 0x7c, 0x77, 0x20, 0xc9, 0xa6,
+ 0xe2, 0x52, 0x84, 0x6e, 0x54, 0xd9, 0xf1, 0xce, 0x44, 0x2e, 0xd8, 0x91,
+ 0xc5, 0x8d, 0xba, 0x70, 0xc5, 0x8a, 0x8a, 0x3b, 0x59, 0xbb, 0xac, 0x22,
+ 0xfa, 0x78, 0xdc, 0x26, 0x83, 0xbe, 0x96, 0x4a, 0x7b, 0x33, 0x49, 0xf3,
+};
+static const unsigned char kat2821_nonce[] = {0};
+static const unsigned char kat2821_persstr[] = {0};
+static const unsigned char kat2821_entropyinreseed[] = {
+ 0xa1, 0x6a, 0xe5, 0x8c, 0x90, 0x0f, 0xd2, 0xc8, 0x94, 0x45, 0xd6, 0xb1,
+ 0x77, 0x5b, 0x4e, 0xd8, 0x79, 0xb9, 0x18, 0xa5, 0x77, 0x62, 0x26, 0x87,
+ 0xe5, 0xe7, 0x66, 0x85, 0xf0, 0x5d, 0x04, 0x26, 0x50, 0x58, 0x28, 0x6a,
+ 0x1a, 0x42, 0x79, 0x4a, 0xbe, 0x44, 0xca, 0x79, 0x8e, 0x32, 0xed, 0xa1,
+};
+static const unsigned char kat2821_addinreseed[] = {0};
+static const unsigned char kat2821_addin0[] = {0};
+static const unsigned char kat2821_addin1[] = {0};
+static const unsigned char kat2821_retbits[] = {
+ 0x5d, 0x25, 0x44, 0x95, 0x1b, 0x74, 0xe0, 0x9b, 0x86, 0x01, 0xc1, 0x9c,
+ 0x99, 0x30, 0x17, 0x84, 0x93, 0x8c, 0x59, 0x5b, 0x4d, 0xb3, 0xb2, 0xdf,
+ 0x47, 0x4b, 0x10, 0xca, 0xad, 0x9e, 0x49, 0x30, 0xe1, 0xf0, 0x10, 0x76,
+ 0x62, 0x40, 0x8e, 0xc3, 0x74, 0xdd, 0xee, 0x05, 0xd8, 0x45, 0x21, 0xe3,
+ 0xe9, 0xea, 0x7d, 0x21, 0x14, 0xf0, 0x3f, 0x9a, 0x9a, 0x92, 0xad, 0xa6,
+ 0x25, 0x3c, 0xc3, 0xe5,
+};
+static const struct drbg_kat_pr_false kat2821_t = {
+ 0, kat2821_entropyin, kat2821_nonce, kat2821_persstr,
+ kat2821_entropyinreseed, kat2821_addinreseed, kat2821_addin0,
+ kat2821_addin1, kat2821_retbits
+};
+static const struct drbg_kat kat2821 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2821_t
+};
+
+static const unsigned char kat2822_entropyin[] = {
+ 0xcf, 0x1d, 0xe6, 0x1c, 0xff, 0xd8, 0xed, 0x4e, 0x6e, 0xbe, 0x72, 0x46,
+ 0xef, 0x18, 0x55, 0x57, 0x03, 0x97, 0x92, 0xeb, 0xcb, 0x75, 0x08, 0x1b,
+ 0xa3, 0xf4, 0x7f, 0xe4, 0xee, 0x44, 0x2b, 0x73, 0x32, 0x74, 0xf4, 0x20,
+ 0x24, 0xd2, 0x4d, 0x2e, 0x19, 0x94, 0x0d, 0x88, 0xab, 0xcf, 0xfe, 0x40,
+};
+static const unsigned char kat2822_nonce[] = {0};
+static const unsigned char kat2822_persstr[] = {0};
+static const unsigned char kat2822_entropyinreseed[] = {
+ 0xa5, 0x4d, 0x64, 0x42, 0x1d, 0xab, 0x04, 0x66, 0x06, 0xe1, 0x67, 0xc8,
+ 0x62, 0xe5, 0x57, 0xa4, 0xd4, 0xa8, 0xd5, 0xb4, 0xe8, 0x6f, 0x2b, 0x26,
+ 0x9f, 0x83, 0x36, 0xaf, 0x20, 0xd3, 0x3d, 0x5a, 0xc5, 0x31, 0x22, 0x92,
+ 0x79, 0x04, 0x9e, 0x40, 0x4c, 0x74, 0x95, 0x6b, 0x75, 0x37, 0x47, 0xb0,
+};
+static const unsigned char kat2822_addinreseed[] = {0};
+static const unsigned char kat2822_addin0[] = {0};
+static const unsigned char kat2822_addin1[] = {0};
+static const unsigned char kat2822_retbits[] = {
+ 0x69, 0x21, 0x65, 0xd9, 0x93, 0x65, 0xee, 0x68, 0x3b, 0x71, 0x48, 0xf7,
+ 0x05, 0x0a, 0x0a, 0xbf, 0x2c, 0x36, 0x93, 0xb7, 0x77, 0x25, 0xd2, 0xba,
+ 0xbe, 0xa7, 0x1f, 0xb7, 0x16, 0x5b, 0xf7, 0x49, 0x8e, 0x03, 0xea, 0x82,
+ 0x00, 0xe5, 0xc5, 0x0f, 0xbc, 0x6b, 0xbc, 0xdc, 0x77, 0x49, 0x9f, 0x54,
+ 0x21, 0x38, 0x5a, 0x09, 0xbb, 0xc6, 0x92, 0x38, 0x27, 0xa3, 0x28, 0xee,
+ 0x49, 0x14, 0x31, 0xe6,
+};
+static const struct drbg_kat_pr_false kat2822_t = {
+ 1, kat2822_entropyin, kat2822_nonce, kat2822_persstr,
+ kat2822_entropyinreseed, kat2822_addinreseed, kat2822_addin0,
+ kat2822_addin1, kat2822_retbits
+};
+static const struct drbg_kat kat2822 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2822_t
+};
+
+static const unsigned char kat2823_entropyin[] = {
+ 0xbd, 0xf7, 0x42, 0x92, 0x60, 0xef, 0x6f, 0xc8, 0xa3, 0x81, 0x73, 0x68,
+ 0xfb, 0x72, 0xca, 0x1b, 0xcc, 0x05, 0x74, 0xbd, 0x53, 0x61, 0xd6, 0xf3,
+ 0x04, 0x31, 0x18, 0x7b, 0xec, 0x83, 0xc5, 0x2c, 0x66, 0x7f, 0x12, 0xfe,
+ 0xe1, 0x92, 0xc2, 0xfd, 0x91, 0x1b, 0x6f, 0x9d, 0xee, 0xe3, 0x8f, 0x30,
+};
+static const unsigned char kat2823_nonce[] = {0};
+static const unsigned char kat2823_persstr[] = {0};
+static const unsigned char kat2823_entropyinreseed[] = {
+ 0xb6, 0x69, 0x8f, 0x96, 0x46, 0x31, 0x2c, 0xca, 0xb3, 0x03, 0x44, 0xf8,
+ 0xb5, 0xe8, 0x35, 0xaa, 0x47, 0xab, 0xd8, 0x3b, 0xf1, 0xc4, 0x0c, 0x3e,
+ 0xc4, 0x88, 0x34, 0xeb, 0xa6, 0x8e, 0x50, 0xba, 0xf5, 0x2e, 0x41, 0x77,
+ 0xa2, 0x15, 0xdc, 0x90, 0xf9, 0xe8, 0x76, 0x15, 0x62, 0xbe, 0xfb, 0xac,
+};
+static const unsigned char kat2823_addinreseed[] = {0};
+static const unsigned char kat2823_addin0[] = {0};
+static const unsigned char kat2823_addin1[] = {0};
+static const unsigned char kat2823_retbits[] = {
+ 0x7d, 0xb8, 0x6c, 0x35, 0xf0, 0xa6, 0x94, 0xaa, 0xca, 0x6c, 0x09, 0x7b,
+ 0x18, 0x16, 0x42, 0x4d, 0x18, 0x33, 0xee, 0xc2, 0x00, 0xd1, 0x8a, 0x1e,
+ 0xf6, 0xcf, 0xc4, 0x9a, 0xb5, 0xff, 0x44, 0x4e, 0x3b, 0xb6, 0x06, 0x4f,
+ 0xf1, 0xcb, 0x6b, 0x1d, 0x63, 0xdd, 0xab, 0x2a, 0x2b, 0x8c, 0x18, 0xa1,
+ 0x1c, 0x4c, 0xcc, 0x3c, 0x41, 0x9e, 0x10, 0x6a, 0x03, 0xff, 0x57, 0xc9,
+ 0x07, 0xf7, 0xa7, 0x69,
+};
+static const struct drbg_kat_pr_false kat2823_t = {
+ 2, kat2823_entropyin, kat2823_nonce, kat2823_persstr,
+ kat2823_entropyinreseed, kat2823_addinreseed, kat2823_addin0,
+ kat2823_addin1, kat2823_retbits
+};
+static const struct drbg_kat kat2823 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2823_t
+};
+
+static const unsigned char kat2824_entropyin[] = {
+ 0xf1, 0xc7, 0x1c, 0x38, 0x5e, 0xf4, 0xc9, 0xb1, 0x55, 0xde, 0x46, 0xa8,
+ 0x85, 0x2a, 0xd8, 0x96, 0x22, 0x33, 0x72, 0xef, 0x8d, 0xb0, 0x6c, 0x1a,
+ 0x5a, 0xc4, 0xc8, 0x7a, 0x56, 0x13, 0x31, 0xe9, 0x23, 0x29, 0x96, 0xb5,
+ 0x48, 0xa7, 0xe7, 0x97, 0xe3, 0x4d, 0xfc, 0x0a, 0x06, 0x39, 0x83, 0x4a,
+};
+static const unsigned char kat2824_nonce[] = {0};
+static const unsigned char kat2824_persstr[] = {0};
+static const unsigned char kat2824_entropyinreseed[] = {
+ 0x4c, 0x27, 0x5f, 0xc8, 0xce, 0x30, 0x10, 0x4b, 0x6b, 0x4e, 0x4c, 0x16,
+ 0xe2, 0x11, 0x99, 0xd3, 0xcb, 0xbb, 0xf7, 0x39, 0x3c, 0x05, 0x4c, 0x89,
+ 0xcb, 0x9c, 0x3b, 0x85, 0xe5, 0xaf, 0x5a, 0xb2, 0x5a, 0x26, 0x50, 0x23,
+ 0x09, 0x20, 0x2e, 0x8d, 0x78, 0xc1, 0xd3, 0x07, 0x40, 0x97, 0x3d, 0x0a,
+};
+static const unsigned char kat2824_addinreseed[] = {0};
+static const unsigned char kat2824_addin0[] = {0};
+static const unsigned char kat2824_addin1[] = {0};
+static const unsigned char kat2824_retbits[] = {
+ 0xc7, 0xa9, 0x2d, 0xfd, 0x51, 0x94, 0x88, 0xb5, 0xf4, 0xaa, 0xcc, 0x42,
+ 0xd7, 0x04, 0x14, 0x6c, 0x72, 0x19, 0xf3, 0x3f, 0xf3, 0xb9, 0x30, 0xd4,
+ 0xfe, 0xd2, 0x28, 0x27, 0xef, 0x7d, 0xf2, 0x87, 0xe7, 0x1e, 0x0c, 0x72,
+ 0xca, 0xdd, 0x8f, 0xae, 0x20, 0xff, 0x0e, 0x05, 0x83, 0x08, 0xf4, 0x88,
+ 0xfc, 0x45, 0x1c, 0x3b, 0xec, 0x0d, 0x85, 0x48, 0x8d, 0x2b, 0x81, 0xf2,
+ 0xec, 0xd3, 0x2e, 0x2f,
+};
+static const struct drbg_kat_pr_false kat2824_t = {
+ 3, kat2824_entropyin, kat2824_nonce, kat2824_persstr,
+ kat2824_entropyinreseed, kat2824_addinreseed, kat2824_addin0,
+ kat2824_addin1, kat2824_retbits
+};
+static const struct drbg_kat kat2824 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2824_t
+};
+
+static const unsigned char kat2825_entropyin[] = {
+ 0x29, 0xa1, 0x00, 0xa2, 0x9a, 0x00, 0x2c, 0x98, 0xf3, 0xf5, 0xe8, 0x17,
+ 0x0d, 0x73, 0x1c, 0xc3, 0xfd, 0x2d, 0x8f, 0xdb, 0x4a, 0x3c, 0x68, 0x79,
+ 0x05, 0x7f, 0x88, 0xf9, 0x6f, 0xf7, 0xf6, 0x6f, 0x08, 0x5b, 0xb2, 0xd3,
+ 0x09, 0x57, 0xaa, 0x0d, 0xb7, 0x8a, 0x4e, 0xd2, 0x47, 0xa9, 0x39, 0xc9,
+};
+static const unsigned char kat2825_nonce[] = {0};
+static const unsigned char kat2825_persstr[] = {0};
+static const unsigned char kat2825_entropyinreseed[] = {
+ 0x5e, 0x98, 0xaf, 0x56, 0xd5, 0x06, 0x6c, 0x99, 0xf1, 0x85, 0x01, 0x5e,
+ 0xb8, 0xe3, 0x6c, 0xc4, 0x35, 0x69, 0x0e, 0x96, 0x5f, 0xea, 0x9d, 0x2e,
+ 0xca, 0x10, 0xbf, 0xf1, 0x47, 0xc1, 0x8a, 0x2c, 0x06, 0x75, 0x5d, 0x7e,
+ 0x0c, 0xeb, 0x9c, 0x22, 0x03, 0xd6, 0xd4, 0x8e, 0xe5, 0x3e, 0xc0, 0xc4,
+};
+static const unsigned char kat2825_addinreseed[] = {0};
+static const unsigned char kat2825_addin0[] = {0};
+static const unsigned char kat2825_addin1[] = {0};
+static const unsigned char kat2825_retbits[] = {
+ 0x92, 0x45, 0xcb, 0x55, 0x8f, 0x4d, 0xd7, 0xdd, 0x7c, 0xb4, 0x48, 0xfc,
+ 0x13, 0x10, 0xcf, 0x58, 0xcb, 0xd1, 0x8e, 0xa6, 0xd9, 0xc5, 0x89, 0x53,
+ 0xe3, 0xa8, 0x22, 0x21, 0xcb, 0x49, 0xa9, 0xa5, 0xaf, 0xd0, 0x2d, 0xfc,
+ 0xc8, 0x6f, 0xc4, 0x25, 0x84, 0xfb, 0x9c, 0xc1, 0xe2, 0x3c, 0x24, 0x83,
+ 0xbb, 0xc6, 0x1a, 0x4b, 0x14, 0x6b, 0x1c, 0x71, 0x93, 0x70, 0x5b, 0xfa,
+ 0x50, 0xfd, 0x67, 0xa0,
+};
+static const struct drbg_kat_pr_false kat2825_t = {
+ 4, kat2825_entropyin, kat2825_nonce, kat2825_persstr,
+ kat2825_entropyinreseed, kat2825_addinreseed, kat2825_addin0,
+ kat2825_addin1, kat2825_retbits
+};
+static const struct drbg_kat kat2825 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2825_t
+};
+
+static const unsigned char kat2826_entropyin[] = {
+ 0xa8, 0x07, 0x0c, 0xe6, 0xe7, 0x69, 0xff, 0x82, 0xe9, 0x0b, 0x9a, 0xe0,
+ 0xae, 0x91, 0x42, 0x0e, 0xf1, 0xc4, 0x61, 0x89, 0x37, 0xfe, 0x00, 0x6d,
+ 0x17, 0x99, 0x81, 0xff, 0xce, 0x04, 0xaf, 0xeb, 0x7f, 0x98, 0x82, 0x09,
+ 0x12, 0x51, 0x2a, 0xe4, 0x8d, 0x7e, 0x3c, 0xd2, 0xbe, 0x80, 0xda, 0x46,
+};
+static const unsigned char kat2826_nonce[] = {0};
+static const unsigned char kat2826_persstr[] = {0};
+static const unsigned char kat2826_entropyinreseed[] = {
+ 0x3b, 0x14, 0x19, 0x7c, 0x3e, 0xaf, 0x4f, 0x3c, 0x7f, 0xd1, 0xd7, 0x5c,
+ 0xac, 0xcf, 0xfc, 0xa2, 0x07, 0x08, 0x3d, 0xab, 0x30, 0xcf, 0x31, 0xe0,
+ 0x14, 0x05, 0x61, 0x74, 0x08, 0x3a, 0xe2, 0xbf, 0x3c, 0xa8, 0x31, 0x95,
+ 0xfd, 0xe7, 0xd2, 0xed, 0x47, 0xa4, 0xbc, 0x77, 0xe9, 0x0b, 0x42, 0x04,
+};
+static const unsigned char kat2826_addinreseed[] = {0};
+static const unsigned char kat2826_addin0[] = {0};
+static const unsigned char kat2826_addin1[] = {0};
+static const unsigned char kat2826_retbits[] = {
+ 0xbd, 0xc7, 0x46, 0x2f, 0x1b, 0xcd, 0x82, 0xe4, 0x05, 0x02, 0x2a, 0x5e,
+ 0xe5, 0x83, 0x45, 0xef, 0xfd, 0x90, 0xe4, 0x9a, 0x8f, 0x15, 0xbc, 0x1c,
+ 0xb1, 0xf7, 0xf5, 0x67, 0xab, 0x26, 0xdc, 0x05, 0x77, 0xce, 0xa1, 0xa9,
+ 0xc7, 0xe4, 0x63, 0xa8, 0x1a, 0xcd, 0xbf, 0x62, 0x90, 0x6b, 0x25, 0x65,
+ 0xe8, 0xbc, 0xb1, 0x6e, 0x19, 0x50, 0x30, 0xae, 0xf3, 0xd2, 0xcd, 0x60,
+ 0xfa, 0x98, 0x7a, 0x60,
+};
+static const struct drbg_kat_pr_false kat2826_t = {
+ 5, kat2826_entropyin, kat2826_nonce, kat2826_persstr,
+ kat2826_entropyinreseed, kat2826_addinreseed, kat2826_addin0,
+ kat2826_addin1, kat2826_retbits
+};
+static const struct drbg_kat kat2826 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2826_t
+};
+
+static const unsigned char kat2827_entropyin[] = {
+ 0x4c, 0x0d, 0x49, 0x89, 0xe2, 0x84, 0xff, 0xe3, 0x8f, 0x1a, 0x04, 0x58,
+ 0x18, 0x6e, 0x00, 0x78, 0x76, 0xda, 0xf4, 0x0c, 0x2e, 0xe7, 0x55, 0xec,
+ 0xcc, 0xb0, 0x9c, 0xb0, 0xdb, 0x7f, 0x49, 0x7f, 0x9b, 0x3a, 0x80, 0xba,
+ 0x78, 0x42, 0x6b, 0x04, 0x9c, 0x0c, 0xf7, 0x76, 0x6e, 0x1b, 0xd1, 0x29,
+};
+static const unsigned char kat2827_nonce[] = {0};
+static const unsigned char kat2827_persstr[] = {0};
+static const unsigned char kat2827_entropyinreseed[] = {
+ 0xf4, 0xcb, 0x57, 0x00, 0x14, 0x5e, 0x33, 0x70, 0x01, 0x1f, 0x5d, 0x1b,
+ 0x0c, 0x10, 0x4e, 0xc3, 0x6f, 0x12, 0x40, 0xab, 0x58, 0x71, 0x22, 0x6c,
+ 0xe4, 0xde, 0x0e, 0x38, 0x62, 0xd9, 0x43, 0x2c, 0x74, 0x9e, 0x6f, 0x04,
+ 0xb5, 0x70, 0x8c, 0xdf, 0x24, 0xc0, 0xca, 0xf4, 0x91, 0x9e, 0x15, 0x20,
+};
+static const unsigned char kat2827_addinreseed[] = {0};
+static const unsigned char kat2827_addin0[] = {0};
+static const unsigned char kat2827_addin1[] = {0};
+static const unsigned char kat2827_retbits[] = {
+ 0xa9, 0x36, 0xe1, 0x17, 0x9b, 0xa7, 0x5b, 0x2f, 0x3f, 0xab, 0x69, 0x03,
+ 0xec, 0x11, 0x61, 0xc8, 0x7b, 0x6e, 0x12, 0x44, 0x85, 0x2f, 0xb0, 0x61,
+ 0x32, 0x42, 0x99, 0x64, 0x51, 0x05, 0xbf, 0x5e, 0x38, 0xb6, 0x7c, 0x59,
+ 0x41, 0x20, 0x0e, 0xa5, 0xe6, 0xef, 0x29, 0x62, 0xec, 0xcc, 0xfe, 0x05,
+ 0x16, 0xe2, 0x03, 0x14, 0xf8, 0x3e, 0xe5, 0x81, 0x5a, 0x92, 0x5d, 0x70,
+ 0x26, 0x96, 0x5e, 0x00,
+};
+static const struct drbg_kat_pr_false kat2827_t = {
+ 6, kat2827_entropyin, kat2827_nonce, kat2827_persstr,
+ kat2827_entropyinreseed, kat2827_addinreseed, kat2827_addin0,
+ kat2827_addin1, kat2827_retbits
+};
+static const struct drbg_kat kat2827 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2827_t
+};
+
+static const unsigned char kat2828_entropyin[] = {
+ 0x62, 0x16, 0x63, 0xb9, 0xaa, 0x2f, 0x9f, 0x7f, 0xf6, 0x1e, 0x8d, 0xb0,
+ 0xd9, 0x90, 0x07, 0xea, 0x98, 0x19, 0xb5, 0x0a, 0xd4, 0x87, 0x64, 0x39,
+ 0xd6, 0x6f, 0xdf, 0xc5, 0x4b, 0xf1, 0x74, 0xfa, 0x74, 0x0f, 0xd6, 0xe1,
+ 0xd2, 0x29, 0x2b, 0x11, 0x95, 0xb3, 0x7d, 0x58, 0x4a, 0x7b, 0x46, 0x06,
+};
+static const unsigned char kat2828_nonce[] = {0};
+static const unsigned char kat2828_persstr[] = {0};
+static const unsigned char kat2828_entropyinreseed[] = {
+ 0xf2, 0x47, 0x3f, 0xd7, 0x41, 0x86, 0xf1, 0x3d, 0x6d, 0x59, 0x9b, 0xf2,
+ 0x32, 0x68, 0x0f, 0x4d, 0xae, 0x2e, 0x8c, 0xe6, 0x9d, 0xaf, 0xd2, 0xdd,
+ 0x2a, 0x6b, 0x2b, 0x2b, 0x13, 0xdd, 0x0b, 0x2f, 0x6d, 0xc8, 0xcd, 0x43,
+ 0x61, 0x36, 0x21, 0x5e, 0xfb, 0x27, 0xbd, 0xd5, 0x30, 0xf9, 0x28, 0x10,
+};
+static const unsigned char kat2828_addinreseed[] = {0};
+static const unsigned char kat2828_addin0[] = {0};
+static const unsigned char kat2828_addin1[] = {0};
+static const unsigned char kat2828_retbits[] = {
+ 0x9b, 0xbe, 0x30, 0x86, 0x8c, 0x8d, 0x86, 0xd0, 0x08, 0xc4, 0xf1, 0xbf,
+ 0x18, 0x05, 0x2c, 0x73, 0xa5, 0xc3, 0x6c, 0x06, 0x2c, 0x05, 0x57, 0xf6,
+ 0xee, 0x41, 0x76, 0xbc, 0xf3, 0x08, 0xb7, 0x74, 0x11, 0x42, 0x1c, 0xef,
+ 0x0c, 0x4c, 0x24, 0xa7, 0x40, 0xca, 0x31, 0xa4, 0x92, 0x1a, 0x86, 0x94,
+ 0x4d, 0xa2, 0xb5, 0x4d, 0x9d, 0x29, 0xc2, 0xd3, 0xb5, 0x3a, 0xd1, 0x7b,
+ 0xfa, 0x9c, 0x80, 0x8c,
+};
+static const struct drbg_kat_pr_false kat2828_t = {
+ 7, kat2828_entropyin, kat2828_nonce, kat2828_persstr,
+ kat2828_entropyinreseed, kat2828_addinreseed, kat2828_addin0,
+ kat2828_addin1, kat2828_retbits
+};
+static const struct drbg_kat kat2828 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2828_t
+};
+
+static const unsigned char kat2829_entropyin[] = {
+ 0x3e, 0x9c, 0x7a, 0xa2, 0xbb, 0x18, 0x21, 0x39, 0x33, 0xc7, 0xc6, 0xf2,
+ 0x23, 0x23, 0xbc, 0x29, 0xbb, 0x94, 0xae, 0xd2, 0x4f, 0xa2, 0xfa, 0xa7,
+ 0xca, 0xa5, 0x72, 0xc8, 0x6c, 0x10, 0x9f, 0x22, 0x47, 0xde, 0x31, 0x73,
+ 0x47, 0x98, 0x93, 0xfe, 0xa3, 0x25, 0xdc, 0x12, 0xc8, 0x36, 0x32, 0x44,
+};
+static const unsigned char kat2829_nonce[] = {0};
+static const unsigned char kat2829_persstr[] = {0};
+static const unsigned char kat2829_entropyinreseed[] = {
+ 0x43, 0x56, 0xac, 0xee, 0x8a, 0x2f, 0x6d, 0x5b, 0xae, 0x66, 0x2d, 0x5e,
+ 0xd8, 0x95, 0x7b, 0xae, 0x47, 0xde, 0x31, 0xa9, 0x06, 0x1c, 0xd9, 0x5e,
+ 0x8e, 0x56, 0x7b, 0x74, 0xe5, 0x86, 0x80, 0x62, 0x29, 0x86, 0x14, 0x2f,
+ 0xd2, 0x99, 0xbf, 0x15, 0xa5, 0x07, 0x6a, 0x07, 0x36, 0x5b, 0xfe, 0x00,
+};
+static const unsigned char kat2829_addinreseed[] = {0};
+static const unsigned char kat2829_addin0[] = {0};
+static const unsigned char kat2829_addin1[] = {0};
+static const unsigned char kat2829_retbits[] = {
+ 0x95, 0xa8, 0x5a, 0x17, 0x6a, 0xfa, 0xd0, 0x6e, 0x24, 0x5c, 0x50, 0xe5,
+ 0x96, 0x64, 0x1e, 0x15, 0xfd, 0x5d, 0x9d, 0xfa, 0x02, 0x42, 0x8b, 0xf8,
+ 0xdd, 0xb2, 0xa4, 0x49, 0x10, 0x6e, 0xe0, 0xf9, 0x28, 0x15, 0x53, 0x43,
+ 0xa6, 0xea, 0x69, 0xdc, 0xed, 0xe1, 0x4a, 0x71, 0x1c, 0x0c, 0x74, 0xb0,
+ 0xab, 0x23, 0x2d, 0xb7, 0xf4, 0xe6, 0x71, 0x14, 0x51, 0x4a, 0x2f, 0xbe,
+ 0x34, 0xa1, 0xce, 0x38,
+};
+static const struct drbg_kat_pr_false kat2829_t = {
+ 8, kat2829_entropyin, kat2829_nonce, kat2829_persstr,
+ kat2829_entropyinreseed, kat2829_addinreseed, kat2829_addin0,
+ kat2829_addin1, kat2829_retbits
+};
+static const struct drbg_kat kat2829 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2829_t
+};
+
+static const unsigned char kat2830_entropyin[] = {
+ 0xfa, 0x3c, 0xcd, 0xae, 0x46, 0x15, 0x78, 0xa2, 0x89, 0xed, 0xdb, 0x41,
+ 0x3c, 0xc8, 0x7a, 0x89, 0xdc, 0x67, 0x64, 0x8c, 0xd5, 0x24, 0x45, 0x56,
+ 0x3a, 0x7b, 0x3b, 0x47, 0xa8, 0x7c, 0x89, 0x33, 0x75, 0x03, 0x27, 0x15,
+ 0x11, 0xc7, 0x50, 0x35, 0xd9, 0x39, 0xbc, 0x50, 0x09, 0x8e, 0xd1, 0xcf,
+};
+static const unsigned char kat2830_nonce[] = {0};
+static const unsigned char kat2830_persstr[] = {0};
+static const unsigned char kat2830_entropyinreseed[] = {
+ 0x35, 0x7a, 0x52, 0x86, 0x74, 0x50, 0xca, 0xde, 0xde, 0xfc, 0xc9, 0x3b,
+ 0x2e, 0x73, 0x00, 0x34, 0xa6, 0x43, 0xb9, 0xfd, 0xd0, 0x99, 0xb9, 0x84,
+ 0x9e, 0x81, 0x5a, 0x74, 0x37, 0xdb, 0xe3, 0x3e, 0x19, 0xb6, 0xa2, 0x82,
+ 0x6f, 0xa7, 0xff, 0xb5, 0xd7, 0xb9, 0xe5, 0x12, 0x22, 0x48, 0x4e, 0x44,
+};
+static const unsigned char kat2830_addinreseed[] = {0};
+static const unsigned char kat2830_addin0[] = {0};
+static const unsigned char kat2830_addin1[] = {0};
+static const unsigned char kat2830_retbits[] = {
+ 0xd0, 0x97, 0x06, 0x2e, 0xe8, 0x06, 0xdc, 0xe8, 0xb2, 0x4c, 0xdb, 0x36,
+ 0xa1, 0x7e, 0x7c, 0x38, 0x7d, 0x4f, 0x78, 0x13, 0x39, 0xce, 0x87, 0xcb,
+ 0xb8, 0x91, 0x64, 0xaf, 0x15, 0xee, 0xd2, 0x20, 0x89, 0xf8, 0x3a, 0xe0,
+ 0xa3, 0x71, 0xd3, 0x66, 0x2e, 0xab, 0x2b, 0xdd, 0xca, 0x6b, 0xa0, 0x59,
+ 0x5d, 0xb1, 0x63, 0x32, 0x6d, 0x97, 0x1a, 0x36, 0x3d, 0xff, 0xef, 0x05,
+ 0x3b, 0x35, 0x7f, 0xcf,
+};
+static const struct drbg_kat_pr_false kat2830_t = {
+ 9, kat2830_entropyin, kat2830_nonce, kat2830_persstr,
+ kat2830_entropyinreseed, kat2830_addinreseed, kat2830_addin0,
+ kat2830_addin1, kat2830_retbits
+};
+static const struct drbg_kat kat2830 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2830_t
+};
+
+static const unsigned char kat2831_entropyin[] = {
+ 0xd5, 0x4e, 0x0e, 0x09, 0x6b, 0xff, 0xa6, 0x12, 0x1e, 0xec, 0xa0, 0xf8,
+ 0x15, 0x32, 0xea, 0xa0, 0xd3, 0xd1, 0xd9, 0x83, 0x61, 0x88, 0x3c, 0xcd,
+ 0x51, 0x6a, 0xb0, 0xdc, 0xcf, 0x7b, 0x0b, 0xfa, 0xa1, 0xb4, 0x38, 0x39,
+ 0xa1, 0x48, 0x4d, 0x15, 0xd2, 0x70, 0x62, 0x96, 0xe2, 0xad, 0x80, 0x36,
+};
+static const unsigned char kat2831_nonce[] = {0};
+static const unsigned char kat2831_persstr[] = {0};
+static const unsigned char kat2831_entropyinreseed[] = {
+ 0x43, 0x27, 0x6e, 0x93, 0xb3, 0xfc, 0x7c, 0xfb, 0x49, 0x62, 0xd7, 0xb6,
+ 0x46, 0x50, 0x96, 0xaf, 0xfd, 0x5c, 0x1f, 0xe1, 0x22, 0x8f, 0xbe, 0xcc,
+ 0xb3, 0x2e, 0x93, 0xc2, 0x70, 0x46, 0x24, 0xab, 0x7d, 0x4d, 0x88, 0xf8,
+ 0x0f, 0x04, 0xb8, 0x1d, 0x2e, 0x44, 0x82, 0xdf, 0x6d, 0x4f, 0x94, 0xbe,
+};
+static const unsigned char kat2831_addinreseed[] = {0};
+static const unsigned char kat2831_addin0[] = {0};
+static const unsigned char kat2831_addin1[] = {0};
+static const unsigned char kat2831_retbits[] = {
+ 0x54, 0xd2, 0x8f, 0xe0, 0x68, 0xbe, 0x42, 0xe8, 0x80, 0xfe, 0x2f, 0x0d,
+ 0x60, 0xa5, 0x2f, 0x9f, 0x9e, 0x6a, 0xb1, 0xd2, 0x2f, 0x11, 0x61, 0xea,
+ 0x55, 0x89, 0x27, 0x32, 0xe1, 0x92, 0x52, 0xe4, 0x8a, 0xec, 0x60, 0x0a,
+ 0x95, 0xaf, 0x17, 0xce, 0xed, 0x15, 0xaa, 0xf1, 0xc9, 0x93, 0x72, 0x6e,
+ 0x1a, 0xb0, 0x2d, 0x82, 0x15, 0x18, 0x4c, 0xe8, 0xde, 0x00, 0xc1, 0x38,
+ 0xa7, 0x9f, 0x67, 0x2c,
+};
+static const struct drbg_kat_pr_false kat2831_t = {
+ 10, kat2831_entropyin, kat2831_nonce, kat2831_persstr,
+ kat2831_entropyinreseed, kat2831_addinreseed, kat2831_addin0,
+ kat2831_addin1, kat2831_retbits
+};
+static const struct drbg_kat kat2831 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2831_t
+};
+
+static const unsigned char kat2832_entropyin[] = {
+ 0x05, 0x5e, 0xda, 0x65, 0x80, 0x19, 0xbe, 0x58, 0x47, 0xba, 0xaa, 0xd8,
+ 0x7f, 0xe2, 0x90, 0xc3, 0x7c, 0x05, 0x0b, 0xe4, 0xdb, 0xef, 0x1b, 0x07,
+ 0x08, 0x34, 0x49, 0xc9, 0xc8, 0x4d, 0xfd, 0x6d, 0xf4, 0xb6, 0x67, 0xea,
+ 0x92, 0x88, 0x3b, 0xe5, 0xe7, 0x16, 0x37, 0xa7, 0x24, 0x18, 0xc5, 0xb9,
+};
+static const unsigned char kat2832_nonce[] = {0};
+static const unsigned char kat2832_persstr[] = {0};
+static const unsigned char kat2832_entropyinreseed[] = {
+ 0xc8, 0xda, 0x53, 0x7f, 0xdc, 0x88, 0xc0, 0x20, 0x2c, 0x6d, 0x58, 0xd3,
+ 0xf7, 0xfc, 0x0f, 0x00, 0x5e, 0xf5, 0xa5, 0xb3, 0x51, 0x75, 0x82, 0x65,
+ 0xa5, 0x29, 0xc5, 0x50, 0x67, 0xcf, 0x0d, 0xd3, 0xd3, 0x30, 0x8e, 0x7a,
+ 0x5c, 0x43, 0xb6, 0x83, 0xee, 0xbf, 0xf0, 0x1f, 0xb9, 0x13, 0x47, 0xa7,
+};
+static const unsigned char kat2832_addinreseed[] = {0};
+static const unsigned char kat2832_addin0[] = {0};
+static const unsigned char kat2832_addin1[] = {0};
+static const unsigned char kat2832_retbits[] = {
+ 0xd9, 0x18, 0xe2, 0x05, 0x31, 0x86, 0x96, 0x62, 0x1a, 0x86, 0x71, 0xa8,
+ 0xf4, 0x22, 0x36, 0xa5, 0x23, 0x08, 0x30, 0xbb, 0x61, 0xfe, 0xb7, 0x14,
+ 0x6d, 0x22, 0xd8, 0xb8, 0x9d, 0x29, 0x71, 0x5a, 0x5a, 0xc1, 0x77, 0x45,
+ 0x37, 0xaa, 0x9a, 0x50, 0xe5, 0x70, 0x99, 0x14, 0xd1, 0x33, 0x42, 0xd7,
+ 0x68, 0xfe, 0x86, 0xa9, 0xbc, 0xef, 0x35, 0x3c, 0x30, 0xac, 0x88, 0xaa,
+ 0x16, 0xae, 0x19, 0x69,
+};
+static const struct drbg_kat_pr_false kat2832_t = {
+ 11, kat2832_entropyin, kat2832_nonce, kat2832_persstr,
+ kat2832_entropyinreseed, kat2832_addinreseed, kat2832_addin0,
+ kat2832_addin1, kat2832_retbits
+};
+static const struct drbg_kat kat2832 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2832_t
+};
+
+static const unsigned char kat2833_entropyin[] = {
+ 0x09, 0xa1, 0xd2, 0x88, 0x57, 0x22, 0x4e, 0x96, 0xd7, 0xb2, 0x2c, 0xab,
+ 0x8f, 0x18, 0x54, 0x38, 0xc0, 0xe8, 0x76, 0x47, 0x88, 0x58, 0x2a, 0x79,
+ 0xed, 0xe7, 0x0d, 0x78, 0xb2, 0x28, 0x7a, 0x9a, 0xea, 0x82, 0x9e, 0x25,
+ 0x40, 0x61, 0x72, 0xa9, 0x08, 0xdc, 0x5a, 0x15, 0xfb, 0x8a, 0x8e, 0x20,
+};
+static const unsigned char kat2833_nonce[] = {0};
+static const unsigned char kat2833_persstr[] = {0};
+static const unsigned char kat2833_entropyinreseed[] = {
+ 0x26, 0x85, 0x90, 0x27, 0xff, 0x5b, 0x50, 0x97, 0xf4, 0x1e, 0x66, 0xb5,
+ 0x2f, 0x36, 0x89, 0xdd, 0x82, 0x9f, 0x13, 0x9b, 0xf5, 0xed, 0x79, 0xa5,
+ 0xc4, 0x05, 0x27, 0x95, 0xd1, 0xb8, 0x67, 0x6d, 0x0b, 0xb7, 0x01, 0x9a,
+ 0x55, 0x1d, 0xd5, 0x9a, 0x65, 0xac, 0x02, 0x98, 0xe7, 0x1c, 0x1c, 0x1f,
+};
+static const unsigned char kat2833_addinreseed[] = {0};
+static const unsigned char kat2833_addin0[] = {0};
+static const unsigned char kat2833_addin1[] = {0};
+static const unsigned char kat2833_retbits[] = {
+ 0xe4, 0xda, 0x2f, 0x0a, 0xf6, 0x00, 0xc7, 0x86, 0x65, 0x26, 0x88, 0x82,
+ 0xea, 0x07, 0xed, 0x63, 0x22, 0xd7, 0x36, 0x9d, 0x04, 0x14, 0x8a, 0x7c,
+ 0xd7, 0x84, 0x79, 0x52, 0xed, 0x7e, 0x6a, 0x89, 0x4e, 0x3f, 0x1f, 0x4c,
+ 0x2d, 0x4d, 0x76, 0x8f, 0x5a, 0x7f, 0xd4, 0x03, 0x32, 0xda, 0xbd, 0xd8,
+ 0x8a, 0xfb, 0x23, 0x84, 0x57, 0x3a, 0xfb, 0xb6, 0xd7, 0x9e, 0x0b, 0x3c,
+ 0x3e, 0x8d, 0x4f, 0x9a,
+};
+static const struct drbg_kat_pr_false kat2833_t = {
+ 12, kat2833_entropyin, kat2833_nonce, kat2833_persstr,
+ kat2833_entropyinreseed, kat2833_addinreseed, kat2833_addin0,
+ kat2833_addin1, kat2833_retbits
+};
+static const struct drbg_kat kat2833 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2833_t
+};
+
+static const unsigned char kat2834_entropyin[] = {
+ 0xa4, 0x44, 0x67, 0x88, 0xf2, 0x43, 0x69, 0x1c, 0xda, 0x9a, 0xd6, 0x92,
+ 0x0e, 0x44, 0x30, 0xf9, 0x46, 0x9e, 0x58, 0xe8, 0x37, 0xb8, 0x01, 0xce,
+ 0xbe, 0x0f, 0x8d, 0x5c, 0x51, 0x8f, 0xac, 0x53, 0x50, 0x51, 0xf3, 0xeb,
+ 0xd3, 0x57, 0x9e, 0x1f, 0xcb, 0x90, 0x8d, 0xc9, 0x89, 0xa7, 0x90, 0xe2,
+};
+static const unsigned char kat2834_nonce[] = {0};
+static const unsigned char kat2834_persstr[] = {0};
+static const unsigned char kat2834_entropyinreseed[] = {
+ 0xc5, 0xbb, 0xc3, 0x3a, 0x3a, 0xbb, 0xe3, 0x55, 0xf3, 0x8d, 0xc8, 0xf0,
+ 0x30, 0x54, 0x0b, 0xd7, 0xe4, 0x23, 0xbc, 0x42, 0xc5, 0x26, 0xea, 0x76,
+ 0x6d, 0x9f, 0x10, 0xd1, 0x61, 0x3b, 0x00, 0x28, 0xb5, 0x5b, 0x99, 0xef,
+ 0xa5, 0x74, 0xd5, 0x09, 0xfd, 0xe9, 0x2a, 0x1e, 0xc3, 0x67, 0x86, 0x83,
+};
+static const unsigned char kat2834_addinreseed[] = {0};
+static const unsigned char kat2834_addin0[] = {0};
+static const unsigned char kat2834_addin1[] = {0};
+static const unsigned char kat2834_retbits[] = {
+ 0xa1, 0x31, 0xb5, 0x51, 0xc8, 0xf3, 0x1d, 0x4b, 0x4a, 0x9e, 0x33, 0xb0,
+ 0xe5, 0x4f, 0x7c, 0x6f, 0x14, 0x2d, 0x12, 0x6d, 0xa7, 0x38, 0xd7, 0x9d,
+ 0x31, 0x17, 0x6c, 0xf5, 0xae, 0x7c, 0x04, 0x0c, 0x23, 0x5f, 0x2c, 0xa0,
+ 0xfd, 0x7a, 0x69, 0x07, 0x7c, 0x09, 0x6a, 0xc3, 0x00, 0xf7, 0x44, 0x59,
+ 0x85, 0xf2, 0xed, 0x39, 0xcd, 0x22, 0xe2, 0xcf, 0x8d, 0x14, 0x66, 0x65,
+ 0xf6, 0xb8, 0x1e, 0x9e,
+};
+static const struct drbg_kat_pr_false kat2834_t = {
+ 13, kat2834_entropyin, kat2834_nonce, kat2834_persstr,
+ kat2834_entropyinreseed, kat2834_addinreseed, kat2834_addin0,
+ kat2834_addin1, kat2834_retbits
+};
+static const struct drbg_kat kat2834 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2834_t
+};
+
+static const unsigned char kat2835_entropyin[] = {
+ 0x91, 0xfa, 0x80, 0xb7, 0x27, 0x04, 0x02, 0x95, 0xb8, 0x50, 0x11, 0x9e,
+ 0x9f, 0xb7, 0xe4, 0xcc, 0xe4, 0x55, 0x1a, 0xe2, 0x34, 0xf2, 0x96, 0x16,
+ 0xaf, 0x15, 0x57, 0x25, 0x57, 0xd1, 0x55, 0x5d, 0xe0, 0x42, 0x4a, 0xc3,
+ 0x92, 0x8e, 0x39, 0xca, 0x0e, 0xe3, 0x97, 0x8d, 0x95, 0x6f, 0x32, 0x58,
+};
+static const unsigned char kat2835_nonce[] = {0};
+static const unsigned char kat2835_persstr[] = {0};
+static const unsigned char kat2835_entropyinreseed[] = {
+ 0x99, 0x37, 0xf7, 0x76, 0xdd, 0xae, 0x1d, 0xd4, 0xa6, 0xed, 0x76, 0xcc,
+ 0x17, 0x95, 0xd4, 0x50, 0xe1, 0x4d, 0x1e, 0x46, 0x2c, 0x30, 0xa9, 0xe1,
+ 0xa8, 0x53, 0x34, 0xb3, 0xca, 0x14, 0x84, 0x51, 0xb9, 0x4e, 0x00, 0x05,
+ 0x5b, 0x3e, 0xd2, 0x27, 0xf0, 0xa2, 0xfc, 0x24, 0x7d, 0xb4, 0xdb, 0x6d,
+};
+static const unsigned char kat2835_addinreseed[] = {0};
+static const unsigned char kat2835_addin0[] = {0};
+static const unsigned char kat2835_addin1[] = {0};
+static const unsigned char kat2835_retbits[] = {
+ 0xe6, 0x59, 0xa7, 0xde, 0x7a, 0x1b, 0x1b, 0x15, 0xa5, 0x61, 0x70, 0xa1,
+ 0xd6, 0x33, 0x4d, 0xec, 0x91, 0xb6, 0xff, 0xfc, 0x47, 0xfb, 0x7a, 0xe1,
+ 0xf2, 0xb3, 0xaf, 0x03, 0xcb, 0xc2, 0x5f, 0x7b, 0xec, 0x0c, 0xb6, 0xaf,
+ 0xad, 0xb7, 0x6a, 0xf9, 0xd3, 0x62, 0x16, 0x82, 0x5e, 0xe0, 0xe1, 0x3a,
+ 0xa3, 0x91, 0x5b, 0xc5, 0x15, 0x32, 0x5c, 0x27, 0x27, 0x08, 0x58, 0x65,
+ 0x41, 0x75, 0xa8, 0x1d,
+};
+static const struct drbg_kat_pr_false kat2835_t = {
+ 14, kat2835_entropyin, kat2835_nonce, kat2835_persstr,
+ kat2835_entropyinreseed, kat2835_addinreseed, kat2835_addin0,
+ kat2835_addin1, kat2835_retbits
+};
+static const struct drbg_kat kat2835 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat2835_t
+};
+
+static const unsigned char kat2836_entropyin[] = {
+ 0x20, 0xa8, 0xe7, 0xe4, 0x71, 0x08, 0xcd, 0x4f, 0x28, 0x3e, 0x5b, 0x16,
+ 0x98, 0x55, 0xbd, 0xa8, 0x38, 0x99, 0x51, 0x6e, 0x51, 0x82, 0x5b, 0xb5,
+ 0x22, 0x48, 0xba, 0x8c, 0x40, 0x5d, 0xa4, 0x49, 0x64, 0x50, 0x2c, 0x9f,
+ 0xc7, 0x4d, 0xa0, 0xe2, 0xad, 0x4c, 0xa1, 0xf4, 0x93, 0x13, 0x42, 0x43,
+};
+static const unsigned char kat2836_nonce[] = {0};
+static const unsigned char kat2836_persstr[] = {0};
+static const unsigned char kat2836_entropyinreseed[] = {
+ 0x98, 0xba, 0x67, 0xc7, 0xe0, 0x57, 0xa5, 0xa3, 0x28, 0xbc, 0x9b, 0x22,
+ 0x37, 0x96, 0xb3, 0x69, 0x47, 0xb1, 0xfc, 0xa1, 0xab, 0x6b, 0x20, 0xc1,
+ 0xdd, 0x25, 0x14, 0x2e, 0x94, 0x9d, 0xf2, 0x7e, 0x81, 0x22, 0xc8, 0xa6,
+ 0x79, 0x2d, 0x8a, 0x11, 0x56, 0xa6, 0x0b, 0x11, 0x70, 0xa3, 0xb5, 0xc4,
+};
+static const unsigned char kat2836_addinreseed[] = {
+ 0x64, 0x8f, 0xa2, 0x29, 0xf5, 0xea, 0x25, 0xee, 0x6c, 0x74, 0x53, 0xed,
+ 0x57, 0x7c, 0x70, 0xf7, 0x55, 0xa2, 0xcb, 0x90, 0xf8, 0x52, 0xb7, 0x2b,
+ 0x28, 0x2d, 0x30, 0xbe, 0xde, 0xba, 0xf7, 0x4a, 0xf4, 0x61, 0xa2, 0xa8,
+ 0xa3, 0x45, 0x6e, 0x65, 0x3e, 0x7d, 0xe9, 0xef, 0x37, 0x40, 0xbc, 0x44,
+};
+static const unsigned char kat2836_addin0[] = {
+ 0xda, 0xf5, 0xb6, 0x4b, 0xa4, 0x09, 0xb5, 0x24, 0xc2, 0x11, 0xa3, 0x00,
+ 0x46, 0x5c, 0x63, 0x1b, 0xd9, 0x00, 0x45, 0x32, 0x21, 0x02, 0x3a, 0x41,
+ 0x92, 0x7b, 0x3d, 0x14, 0x4d, 0xa0, 0x13, 0x1d, 0x89, 0xf7, 0x4c, 0x0f,
+ 0x18, 0xb0, 0x29, 0x99, 0x4c, 0xe8, 0x4e, 0xc9, 0xb3, 0x68, 0x42, 0x93,
+};
+static const unsigned char kat2836_addin1[] = {
+ 0x61, 0x38, 0x15, 0x6c, 0xcc, 0x58, 0xe7, 0x59, 0xd7, 0x62, 0xfb, 0x5d,
+ 0xb2, 0xc0, 0x92, 0x6a, 0xde, 0x76, 0x0f, 0xf5, 0x31, 0x58, 0x2f, 0x1b,
+ 0xd8, 0xef, 0x43, 0x0f, 0x7f, 0x7a, 0xb6, 0x23, 0xf8, 0x20, 0x82, 0xad,
+ 0x58, 0xc2, 0xd6, 0x29, 0x34, 0x09, 0x45, 0x54, 0x6b, 0xf9, 0x4e, 0x2d,
+};
+static const unsigned char kat2836_retbits[] = {
+ 0xdb, 0x51, 0xc6, 0x8e, 0x5d, 0xc6, 0xdc, 0x50, 0x0d, 0xaf, 0xa4, 0xd0,
+ 0x78, 0x36, 0x74, 0x9d, 0xf4, 0xfc, 0x54, 0xd0, 0xc8, 0xe7, 0x8a, 0x3a,
+ 0x01, 0xad, 0x31, 0x62, 0xc2, 0x43, 0x8d, 0x8a, 0xa1, 0x69, 0x8c, 0x4a,
+ 0xb6, 0xb4, 0x48, 0xc3, 0xeb, 0xd3, 0x7d, 0x23, 0xfa, 0xe3, 0xc9, 0xba,
+ 0x6a, 0xad, 0x09, 0x12, 0xcd, 0x15, 0x47, 0x5e, 0x94, 0x78, 0xd4, 0x79,
+ 0x36, 0x17, 0xa3, 0xce,
+};
+static const struct drbg_kat_pr_false kat2836_t = {
+ 0, kat2836_entropyin, kat2836_nonce, kat2836_persstr,
+ kat2836_entropyinreseed, kat2836_addinreseed, kat2836_addin0,
+ kat2836_addin1, kat2836_retbits
+};
+static const struct drbg_kat kat2836 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2836_t
+};
+
+static const unsigned char kat2837_entropyin[] = {
+ 0xa7, 0x81, 0x01, 0x5e, 0x06, 0x6e, 0xae, 0xe1, 0x8f, 0x30, 0x13, 0x5e,
+ 0x51, 0x8b, 0x87, 0xce, 0xbb, 0xb7, 0x9c, 0x5f, 0x0a, 0xfa, 0xa4, 0xab,
+ 0x21, 0xbb, 0x5a, 0xb8, 0x08, 0xf0, 0x9f, 0xfd, 0x8c, 0xcd, 0x2a, 0xd0,
+ 0x26, 0x06, 0xf8, 0xcd, 0xab, 0x95, 0xbf, 0x89, 0x7e, 0x2b, 0xbb, 0x1b,
+};
+static const unsigned char kat2837_nonce[] = {0};
+static const unsigned char kat2837_persstr[] = {0};
+static const unsigned char kat2837_entropyinreseed[] = {
+ 0x28, 0x7e, 0x14, 0xff, 0x54, 0x46, 0xa2, 0xee, 0xfd, 0x02, 0x3f, 0x20,
+ 0x8b, 0xc8, 0xf5, 0x83, 0xc8, 0x0d, 0xdf, 0x84, 0xfa, 0x88, 0xe0, 0xa5,
+ 0x5c, 0x5a, 0x41, 0x41, 0x4f, 0xfd, 0x1a, 0x72, 0x97, 0xd4, 0x10, 0x17,
+ 0xb3, 0xa3, 0x7e, 0xf1, 0x29, 0x0a, 0xed, 0x62, 0x9e, 0x74, 0x37, 0x6e,
+};
+static const unsigned char kat2837_addinreseed[] = {
+ 0xa7, 0xa3, 0xd0, 0x11, 0xfb, 0x2d, 0x74, 0x94, 0xe0, 0x23, 0xd5, 0xde,
+ 0x0c, 0x32, 0x64, 0x2e, 0x0e, 0xbb, 0x76, 0x5e, 0x0c, 0xe5, 0xe7, 0x9d,
+ 0xab, 0x2d, 0xcb, 0x76, 0x37, 0x48, 0x0b, 0xa6, 0x11, 0x0d, 0x7a, 0x07,
+ 0xa3, 0xad, 0x7c, 0x13, 0x01, 0x39, 0x04, 0x8f, 0x80, 0xa1, 0xc1, 0x6b,
+};
+static const unsigned char kat2837_addin0[] = {
+ 0x17, 0x86, 0xeb, 0x12, 0x5d, 0x51, 0xcf, 0xff, 0x91, 0x64, 0x44, 0x9b,
+ 0xa2, 0xba, 0xcf, 0x9a, 0x21, 0x6f, 0x4c, 0x45, 0xa6, 0x85, 0xc0, 0x75,
+ 0x02, 0xbf, 0x07, 0x4c, 0xe4, 0xa6, 0x1a, 0x6a, 0xc6, 0x40, 0xe2, 0xc1,
+ 0x83, 0x6f, 0x2e, 0x20, 0x45, 0x98, 0xd5, 0x14, 0x28, 0x83, 0x92, 0x69,
+};
+static const unsigned char kat2837_addin1[] = {
+ 0xd2, 0xfe, 0xe3, 0xf2, 0xe3, 0xa0, 0x0e, 0xe4, 0xbc, 0x3d, 0xbc, 0xd1,
+ 0x9c, 0x31, 0x3c, 0xf7, 0x4d, 0x5d, 0x34, 0xab, 0x62, 0x19, 0x40, 0x7e,
+ 0xfa, 0x16, 0xdb, 0x64, 0xf7, 0x26, 0xcd, 0xaa, 0x68, 0x69, 0x2f, 0x8e,
+ 0xdd, 0x2a, 0xbc, 0x87, 0x1b, 0x08, 0xa3, 0x3d, 0x2a, 0x9c, 0x92, 0x2d,
+};
+static const unsigned char kat2837_retbits[] = {
+ 0x94, 0xb2, 0xf1, 0x66, 0x10, 0xcb, 0x7e, 0x30, 0x0b, 0xd1, 0xbe, 0xa6,
+ 0xb4, 0xc3, 0xa8, 0xd6, 0x71, 0xf2, 0xb8, 0x7e, 0xf4, 0x19, 0xd7, 0x58,
+ 0xdf, 0xd0, 0x21, 0x7a, 0x3d, 0x3e, 0x46, 0x2b, 0x5e, 0x3f, 0x5e, 0xc0,
+ 0x54, 0xd0, 0x93, 0x4d, 0x70, 0x17, 0x48, 0xd7, 0x0f, 0xc8, 0x91, 0xc4,
+ 0x87, 0xf7, 0x15, 0xc8, 0x81, 0x41, 0x6a, 0x87, 0x24, 0x03, 0x71, 0xe9,
+ 0x53, 0x28, 0x48, 0xfe,
+};
+static const struct drbg_kat_pr_false kat2837_t = {
+ 1, kat2837_entropyin, kat2837_nonce, kat2837_persstr,
+ kat2837_entropyinreseed, kat2837_addinreseed, kat2837_addin0,
+ kat2837_addin1, kat2837_retbits
+};
+static const struct drbg_kat kat2837 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2837_t
+};
+
+static const unsigned char kat2838_entropyin[] = {
+ 0xe7, 0x44, 0xb4, 0x98, 0xe9, 0xa6, 0xf2, 0xf1, 0x84, 0x4f, 0xd2, 0x34,
+ 0xe0, 0x24, 0xd4, 0xfc, 0xe3, 0x4c, 0xac, 0x87, 0xbc, 0x71, 0x37, 0xb2,
+ 0x07, 0xcd, 0x29, 0xc9, 0x10, 0xc7, 0x7f, 0xb9, 0x49, 0xe2, 0xa7, 0x8a,
+ 0x39, 0x7f, 0xb0, 0x3e, 0x66, 0x55, 0x44, 0x09, 0x13, 0x85, 0xcd, 0xc5,
+};
+static const unsigned char kat2838_nonce[] = {0};
+static const unsigned char kat2838_persstr[] = {0};
+static const unsigned char kat2838_entropyinreseed[] = {
+ 0x80, 0x7d, 0xf3, 0x85, 0xe0, 0xb0, 0x25, 0x26, 0x30, 0x3a, 0xe2, 0x44,
+ 0x26, 0xcf, 0x4c, 0xa7, 0x7d, 0xf3, 0x19, 0xc6, 0x4a, 0x14, 0x5c, 0xdb,
+ 0xc8, 0x65, 0x40, 0x42, 0x2c, 0xca, 0x77, 0xed, 0xc5, 0x72, 0x71, 0x90,
+ 0x71, 0x9b, 0x5b, 0x22, 0x74, 0x3c, 0x44, 0x52, 0x43, 0x57, 0xe1, 0xa5,
+};
+static const unsigned char kat2838_addinreseed[] = {
+ 0xb0, 0xcf, 0xa6, 0x99, 0xd9, 0x08, 0xb0, 0x3f, 0x80, 0xb5, 0x35, 0x2f,
+ 0x5f, 0x92, 0x60, 0x13, 0xbb, 0x54, 0xfa, 0x95, 0x72, 0x42, 0x39, 0xf3,
+ 0x2b, 0x9f, 0xac, 0xf9, 0x4e, 0x80, 0xd0, 0xc6, 0x36, 0x12, 0x4c, 0xe0,
+ 0x42, 0xd7, 0xa2, 0xaf, 0x62, 0xf5, 0x5c, 0xa7, 0xa3, 0x20, 0xfc, 0x83,
+};
+static const unsigned char kat2838_addin0[] = {
+ 0xa4, 0x5e, 0xf1, 0x2d, 0xc1, 0x3e, 0xd4, 0xf8, 0x6e, 0xbb, 0x70, 0x81,
+ 0x13, 0x46, 0x17, 0x3c, 0xa4, 0x70, 0x9d, 0x6d, 0x22, 0x9b, 0xbb, 0x81,
+ 0x5c, 0x6d, 0x55, 0x38, 0x36, 0x67, 0x01, 0xae, 0xe3, 0x90, 0xe1, 0xe7,
+ 0x2d, 0xcc, 0x7b, 0x06, 0x4f, 0x52, 0x4a, 0x25, 0x37, 0xe1, 0xb4, 0x20,
+};
+static const unsigned char kat2838_addin1[] = {
+ 0xf8, 0x0f, 0x9e, 0xed, 0xc0, 0xc0, 0x63, 0x64, 0x77, 0x98, 0x50, 0x06,
+ 0xb3, 0xba, 0xee, 0x45, 0xa0, 0xf0, 0x8c, 0x36, 0x5b, 0x1c, 0xac, 0xfc,
+ 0x9d, 0x64, 0x98, 0x41, 0x7c, 0x3d, 0x51, 0xbf, 0xdd, 0xdf, 0xa8, 0x19,
+ 0xb7, 0xa8, 0x96, 0xf5, 0x69, 0xb1, 0x13, 0xac, 0x9b, 0xff, 0xf8, 0x44,
+};
+static const unsigned char kat2838_retbits[] = {
+ 0x12, 0xf5, 0x70, 0xa2, 0xd2, 0xa3, 0x41, 0xe5, 0xb3, 0x4b, 0xfc, 0x98,
+ 0xd1, 0xc7, 0x23, 0x61, 0xb8, 0x45, 0x4f, 0xe5, 0x57, 0x27, 0xa6, 0xa3,
+ 0x6d, 0x77, 0x16, 0xc8, 0xcb, 0xab, 0x2c, 0xa7, 0x85, 0xd3, 0x10, 0x06,
+ 0x5f, 0xcf, 0x88, 0x2d, 0xe2, 0x1a, 0x7b, 0xb5, 0x74, 0x9e, 0xe8, 0xaf,
+ 0xd3, 0x67, 0xaa, 0xbf, 0xf8, 0x98, 0xa3, 0x16, 0x21, 0xe0, 0x6e, 0xc5,
+ 0x13, 0x5f, 0x04, 0xe8,
+};
+static const struct drbg_kat_pr_false kat2838_t = {
+ 2, kat2838_entropyin, kat2838_nonce, kat2838_persstr,
+ kat2838_entropyinreseed, kat2838_addinreseed, kat2838_addin0,
+ kat2838_addin1, kat2838_retbits
+};
+static const struct drbg_kat kat2838 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2838_t
+};
+
+static const unsigned char kat2839_entropyin[] = {
+ 0x3c, 0x2d, 0x81, 0x1b, 0x1e, 0x8d, 0x2f, 0x13, 0x51, 0xd3, 0x5a, 0x4d,
+ 0xff, 0x67, 0x0f, 0xcc, 0xb2, 0x27, 0xfa, 0x44, 0xca, 0xcc, 0xc0, 0xd0,
+ 0xb7, 0x1c, 0x16, 0x54, 0xae, 0x09, 0x60, 0x19, 0x27, 0xf2, 0x71, 0xab,
+ 0x0c, 0x96, 0x83, 0xad, 0x5f, 0xaf, 0x4a, 0x3c, 0x3b, 0x80, 0xbe, 0xb3,
+};
+static const unsigned char kat2839_nonce[] = {0};
+static const unsigned char kat2839_persstr[] = {0};
+static const unsigned char kat2839_entropyinreseed[] = {
+ 0xbf, 0xd0, 0xa1, 0x3b, 0x0e, 0x2b, 0xb9, 0x04, 0x0b, 0xaf, 0xff, 0x29,
+ 0x5d, 0x0b, 0x08, 0xc4, 0x51, 0x71, 0x5e, 0xf0, 0xf9, 0xe3, 0x0d, 0xb5,
+ 0x0c, 0x38, 0xa1, 0x35, 0xc5, 0x6a, 0xd9, 0xf5, 0x87, 0x24, 0xbf, 0xaf,
+ 0x26, 0x80, 0x06, 0xf5, 0x57, 0x96, 0x9f, 0x14, 0x33, 0xb6, 0x34, 0x26,
+};
+static const unsigned char kat2839_addinreseed[] = {
+ 0x9b, 0xca, 0x5a, 0x77, 0xa8, 0x1b, 0xf9, 0x7d, 0x69, 0x9f, 0xbe, 0xe6,
+ 0xcb, 0x22, 0x22, 0xc4, 0x7b, 0xbe, 0xfc, 0xd8, 0x1b, 0x6e, 0x6c, 0x69,
+ 0x3b, 0x72, 0xac, 0xe0, 0xf4, 0x66, 0x8e, 0x5e, 0xf8, 0xd3, 0xaf, 0xa8,
+ 0x25, 0xb2, 0x14, 0x19, 0xf5, 0x01, 0xa6, 0xf7, 0xe3, 0x9c, 0x3f, 0xc1,
+};
+static const unsigned char kat2839_addin0[] = {
+ 0x4b, 0x9a, 0x7e, 0xb9, 0x41, 0xdf, 0xbe, 0xf0, 0x5d, 0xf2, 0x06, 0x35,
+ 0x43, 0x86, 0xa3, 0xc3, 0xb1, 0x36, 0xa9, 0xde, 0x21, 0xea, 0x30, 0x7a,
+ 0x96, 0xd8, 0x3b, 0xdf, 0xd1, 0xc2, 0xcc, 0xa8, 0xbd, 0xfd, 0x60, 0x8d,
+ 0x37, 0x65, 0x88, 0x0f, 0x0e, 0xb0, 0x5d, 0x6f, 0x88, 0x13, 0x68, 0x21,
+};
+static const unsigned char kat2839_addin1[] = {
+ 0xc2, 0x11, 0xfa, 0x5e, 0xca, 0xdc, 0xac, 0x40, 0xfe, 0xe7, 0x53, 0x3a,
+ 0xba, 0x6e, 0xf6, 0x5f, 0x93, 0xa2, 0x27, 0x6e, 0xc1, 0x02, 0x39, 0x51,
+ 0xc6, 0x74, 0xdf, 0xea, 0xca, 0xd3, 0x9a, 0xc0, 0xd3, 0x73, 0x6f, 0xb6,
+ 0xd9, 0x16, 0xe9, 0xd4, 0x6e, 0x6c, 0xaa, 0x78, 0x57, 0x53, 0x8f, 0x02,
+};
+static const unsigned char kat2839_retbits[] = {
+ 0x67, 0x3f, 0xde, 0xd4, 0xf9, 0x42, 0x8d, 0xd5, 0xfc, 0xc1, 0x6e, 0x8d,
+ 0xd1, 0x4c, 0x69, 0xcf, 0xbc, 0xc1, 0xa6, 0xab, 0x5a, 0x4c, 0xd4, 0x76,
+ 0x79, 0xba, 0x12, 0xd9, 0x6e, 0x4a, 0x06, 0x9d, 0x29, 0x22, 0x68, 0xc5,
+ 0xad, 0x6c, 0x43, 0x1c, 0x7e, 0x91, 0x19, 0x98, 0xb4, 0x19, 0xdd, 0x0e,
+ 0x99, 0x97, 0x75, 0x59, 0x40, 0xe6, 0xaa, 0xe0, 0x76, 0x8a, 0x86, 0xb7,
+ 0xfb, 0xf5, 0x57, 0xda,
+};
+static const struct drbg_kat_pr_false kat2839_t = {
+ 3, kat2839_entropyin, kat2839_nonce, kat2839_persstr,
+ kat2839_entropyinreseed, kat2839_addinreseed, kat2839_addin0,
+ kat2839_addin1, kat2839_retbits
+};
+static const struct drbg_kat kat2839 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2839_t
+};
+
+static const unsigned char kat2840_entropyin[] = {
+ 0x2b, 0x3f, 0xce, 0x2c, 0x05, 0x53, 0x3f, 0xa1, 0x34, 0x9a, 0x75, 0x44,
+ 0xa0, 0x80, 0xd1, 0xef, 0xf8, 0x4d, 0x78, 0x00, 0x8c, 0x69, 0xe4, 0x14,
+ 0x62, 0xc6, 0x59, 0xec, 0x3c, 0x13, 0x93, 0x13, 0xdc, 0x3e, 0xf2, 0x31,
+ 0x78, 0xc5, 0x76, 0x46, 0xce, 0x0e, 0x4c, 0xf6, 0xc3, 0x46, 0x5e, 0x22,
+};
+static const unsigned char kat2840_nonce[] = {0};
+static const unsigned char kat2840_persstr[] = {0};
+static const unsigned char kat2840_entropyinreseed[] = {
+ 0x73, 0x6c, 0x35, 0xc4, 0x6e, 0x6c, 0x8a, 0xcf, 0xe3, 0x01, 0xec, 0x58,
+ 0x07, 0x0c, 0x54, 0x8c, 0x55, 0x30, 0xfd, 0x84, 0x94, 0xf9, 0xc5, 0x86,
+ 0xf4, 0x51, 0xa1, 0x32, 0xc7, 0x0a, 0x91, 0x15, 0xfa, 0x28, 0x42, 0xf1,
+ 0x64, 0xe5, 0xc1, 0x0a, 0x0a, 0xe5, 0x28, 0xee, 0x20, 0x9a, 0x4f, 0x32,
+};
+static const unsigned char kat2840_addinreseed[] = {
+ 0x03, 0xc0, 0x28, 0xdf, 0xc0, 0x95, 0xeb, 0x49, 0xb4, 0xae, 0x76, 0x57,
+ 0x6e, 0xe7, 0xfc, 0x56, 0xb7, 0x6a, 0x1b, 0xaf, 0x14, 0xcf, 0x30, 0xa8,
+ 0x3d, 0x65, 0xd4, 0xc9, 0x71, 0x40, 0x00, 0x8a, 0x06, 0xf0, 0x3c, 0x1c,
+ 0xa3, 0x3c, 0x4b, 0x93, 0xd2, 0x4c, 0x36, 0x6c, 0x92, 0x2c, 0xd9, 0xbd,
+};
+static const unsigned char kat2840_addin0[] = {
+ 0xbf, 0x7d, 0x34, 0xc4, 0xcc, 0x7b, 0xed, 0x84, 0x55, 0x9e, 0xde, 0x04,
+ 0x2a, 0xb3, 0x99, 0x11, 0x02, 0x2a, 0x59, 0x88, 0x35, 0x0c, 0x55, 0xc3,
+ 0x82, 0xcc, 0x8d, 0x78, 0xdc, 0xa6, 0x57, 0xfc, 0x16, 0x3a, 0xba, 0x71,
+ 0x6b, 0x4f, 0xee, 0xfd, 0x2d, 0xd3, 0xa1, 0xeb, 0x88, 0x3b, 0xd0, 0xed,
+};
+static const unsigned char kat2840_addin1[] = {
+ 0xd3, 0xb7, 0xae, 0xa7, 0xfe, 0x27, 0xa1, 0x68, 0x76, 0x62, 0x79, 0x2f,
+ 0x8a, 0x2a, 0x62, 0x48, 0x75, 0x00, 0xb2, 0x73, 0xfb, 0xdf, 0xae, 0x74,
+ 0x21, 0x44, 0x78, 0x89, 0x1d, 0x3e, 0x06, 0x18, 0x70, 0x61, 0x5d, 0x9c,
+ 0xc0, 0x3f, 0x00, 0x73, 0xc7, 0x27, 0x48, 0xb4, 0x48, 0xbb, 0x7f, 0x82,
+};
+static const unsigned char kat2840_retbits[] = {
+ 0xd9, 0x5e, 0x14, 0xec, 0x18, 0x70, 0xb8, 0xf6, 0xe9, 0xeb, 0x9e, 0xf6,
+ 0xcc, 0xc0, 0xd6, 0xbe, 0x94, 0x3f, 0xed, 0x07, 0xc4, 0xcb, 0x96, 0x09,
+ 0x19, 0xe8, 0x2c, 0xba, 0xdb, 0x92, 0xb4, 0x3f, 0x11, 0x48, 0x11, 0x76,
+ 0x5b, 0xe1, 0xaa, 0xd7, 0x48, 0xf7, 0x36, 0x15, 0x15, 0xa9, 0x65, 0xdc,
+ 0x8e, 0x4a, 0xc2, 0x33, 0xfa, 0x02, 0x46, 0x53, 0x61, 0x21, 0x24, 0x03,
+ 0xc8, 0x0d, 0x3f, 0x67,
+};
+static const struct drbg_kat_pr_false kat2840_t = {
+ 4, kat2840_entropyin, kat2840_nonce, kat2840_persstr,
+ kat2840_entropyinreseed, kat2840_addinreseed, kat2840_addin0,
+ kat2840_addin1, kat2840_retbits
+};
+static const struct drbg_kat kat2840 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2840_t
+};
+
+static const unsigned char kat2841_entropyin[] = {
+ 0x81, 0xb0, 0xb1, 0xec, 0xfd, 0x3c, 0x19, 0x20, 0x02, 0x2c, 0x8a, 0x73,
+ 0xb7, 0x74, 0x65, 0xa7, 0x98, 0xbc, 0x4c, 0x29, 0xb4, 0x48, 0xd8, 0x83,
+ 0x53, 0x05, 0x44, 0x34, 0xab, 0xbd, 0x21, 0xc2, 0x85, 0xc4, 0x26, 0x9e,
+ 0x86, 0x21, 0xc7, 0xfc, 0xae, 0x18, 0x49, 0xe3, 0xd3, 0x4f, 0x93, 0xe2,
+};
+static const unsigned char kat2841_nonce[] = {0};
+static const unsigned char kat2841_persstr[] = {0};
+static const unsigned char kat2841_entropyinreseed[] = {
+ 0xfb, 0x80, 0x7f, 0xd0, 0x62, 0x2a, 0x62, 0x6f, 0x2c, 0x8f, 0x36, 0x49,
+ 0x67, 0x15, 0xa8, 0x90, 0x94, 0x4d, 0x50, 0x1c, 0x4b, 0x40, 0x22, 0xb4,
+ 0x87, 0x36, 0x34, 0x7a, 0x30, 0x18, 0xb0, 0xaa, 0x0f, 0x61, 0x57, 0xee,
+ 0x60, 0x18, 0xda, 0x87, 0x13, 0x95, 0x55, 0xa5, 0xcc, 0xcb, 0xe6, 0x79,
+};
+static const unsigned char kat2841_addinreseed[] = {
+ 0x27, 0x1f, 0x48, 0x2a, 0x81, 0x2e, 0x67, 0x9a, 0x2c, 0xc8, 0x75, 0x45,
+ 0x08, 0x22, 0xb9, 0xca, 0xf4, 0xd6, 0xdb, 0x61, 0xf3, 0xd2, 0x02, 0x63,
+ 0xe1, 0x90, 0x47, 0x65, 0x63, 0x48, 0xc7, 0xb0, 0x53, 0x9e, 0xe3, 0x42,
+ 0x87, 0x91, 0x1a, 0x0b, 0xf6, 0xa7, 0xa2, 0x7e, 0x63, 0x7a, 0xdb, 0xbb,
+};
+static const unsigned char kat2841_addin0[] = {
+ 0xcd, 0xa4, 0x74, 0x06, 0x7d, 0x78, 0xa3, 0x94, 0x31, 0x97, 0x05, 0xa6,
+ 0x17, 0x48, 0x23, 0xa2, 0x9b, 0x1b, 0xcc, 0xcb, 0x93, 0xe4, 0xf1, 0xc0,
+ 0x32, 0x77, 0x00, 0x1f, 0x4c, 0x52, 0xfe, 0x7c, 0x65, 0xe4, 0x6d, 0xa1,
+ 0x4b, 0x32, 0xa5, 0x18, 0x3b, 0x07, 0x57, 0x0d, 0xb8, 0xc9, 0x1d, 0x4a,
+};
+static const unsigned char kat2841_addin1[] = {
+ 0xcd, 0xb0, 0x48, 0xf3, 0x60, 0x7f, 0x31, 0xff, 0x5a, 0xab, 0x41, 0x9d,
+ 0x69, 0xf8, 0xcd, 0x25, 0x69, 0x88, 0x62, 0x82, 0xb2, 0x59, 0xfb, 0xd4,
+ 0x9a, 0x7c, 0xdd, 0x8e, 0x7d, 0x86, 0x1f, 0xc6, 0x62, 0x4d, 0x3f, 0x55,
+ 0xb4, 0xae, 0xaf, 0xbb, 0x85, 0x42, 0xeb, 0xce, 0x1c, 0xd8, 0x76, 0x18,
+};
+static const unsigned char kat2841_retbits[] = {
+ 0x4c, 0x0e, 0x55, 0x3a, 0xda, 0x4e, 0x6f, 0xe6, 0xf1, 0xd3, 0xdd, 0x84,
+ 0xa9, 0x91, 0x85, 0x6b, 0x55, 0x1f, 0xe7, 0x20, 0x98, 0xe3, 0xa0, 0x08,
+ 0xa7, 0x53, 0x71, 0x6a, 0xfe, 0x06, 0x28, 0x86, 0x1c, 0xd8, 0x3c, 0xe2,
+ 0xe0, 0xea, 0x64, 0x5b, 0x24, 0xb8, 0x40, 0x83, 0x60, 0xf6, 0xd9, 0xe1,
+ 0x10, 0x03, 0xee, 0x20, 0x3e, 0x01, 0xfb, 0x26, 0xaa, 0x4a, 0xfe, 0x21,
+ 0xcc, 0xfd, 0x03, 0x91,
+};
+static const struct drbg_kat_pr_false kat2841_t = {
+ 5, kat2841_entropyin, kat2841_nonce, kat2841_persstr,
+ kat2841_entropyinreseed, kat2841_addinreseed, kat2841_addin0,
+ kat2841_addin1, kat2841_retbits
+};
+static const struct drbg_kat kat2841 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2841_t
+};
+
+static const unsigned char kat2842_entropyin[] = {
+ 0xb5, 0x2d, 0xcf, 0xa7, 0xf8, 0x5a, 0x03, 0x83, 0x26, 0x65, 0x90, 0xb5,
+ 0x8f, 0xc2, 0xd1, 0x95, 0x25, 0xae, 0xcd, 0x9d, 0x22, 0x6f, 0xca, 0xd4,
+ 0xcf, 0x9e, 0x15, 0xc3, 0x75, 0x11, 0x98, 0xc4, 0xfe, 0xb9, 0x35, 0x59,
+ 0xdb, 0x7d, 0xd8, 0xac, 0x67, 0xa0, 0xc6, 0xb8, 0xd3, 0x71, 0x70, 0xc8,
+};
+static const unsigned char kat2842_nonce[] = {0};
+static const unsigned char kat2842_persstr[] = {0};
+static const unsigned char kat2842_entropyinreseed[] = {
+ 0x40, 0xd6, 0x41, 0x3d, 0xdb, 0x86, 0x24, 0xd9, 0x83, 0x73, 0x34, 0x1a,
+ 0x46, 0x39, 0x13, 0x51, 0xd8, 0x48, 0xc9, 0xd8, 0xe8, 0x06, 0x68, 0xd0,
+ 0x23, 0xe7, 0x35, 0x44, 0xcc, 0xd3, 0xf0, 0xbd, 0x34, 0x11, 0x45, 0xa5,
+ 0xd1, 0xc1, 0xa0, 0xc7, 0xd4, 0x09, 0xb8, 0x3d, 0x5a, 0xa3, 0x96, 0xb9,
+};
+static const unsigned char kat2842_addinreseed[] = {
+ 0x04, 0xe3, 0x40, 0xba, 0xb1, 0xe1, 0xe1, 0x8e, 0x96, 0xb5, 0xef, 0x84,
+ 0xf9, 0xcf, 0x3e, 0x40, 0xb5, 0x87, 0x37, 0xd9, 0xa9, 0xd0, 0xf8, 0xa4,
+ 0x48, 0xcd, 0xa6, 0xaf, 0xfa, 0xf4, 0x6f, 0xcb, 0x4c, 0x25, 0x10, 0x0e,
+ 0x5d, 0xe0, 0xf6, 0xd8, 0xd4, 0xb8, 0x72, 0xe3, 0xde, 0x77, 0xab, 0x77,
+};
+static const unsigned char kat2842_addin0[] = {
+ 0x0a, 0x70, 0xb0, 0xb0, 0xd9, 0xb3, 0xf1, 0xb1, 0x96, 0xf9, 0x2c, 0x68,
+ 0xe7, 0x92, 0x62, 0x97, 0x87, 0x3e, 0x98, 0x97, 0x3b, 0x2e, 0xee, 0x4f,
+ 0x2a, 0x48, 0xc3, 0x4c, 0x9a, 0x10, 0xa4, 0x7d, 0xa0, 0x66, 0xd4, 0xfa,
+ 0xf4, 0xa3, 0xf0, 0xa8, 0x0e, 0xa3, 0xf3, 0x4d, 0xc2, 0x9b, 0xcf, 0x67,
+};
+static const unsigned char kat2842_addin1[] = {
+ 0x17, 0x9b, 0x17, 0xe3, 0x06, 0xc2, 0x9e, 0x46, 0x00, 0x50, 0x6d, 0xed,
+ 0xeb, 0x94, 0x15, 0x09, 0xf7, 0x6e, 0x52, 0x8d, 0x88, 0x64, 0x62, 0xc5,
+ 0xee, 0x71, 0xf7, 0xfe, 0xa9, 0xe2, 0xbe, 0xdb, 0xb9, 0xaa, 0x31, 0x07,
+ 0xcb, 0xa5, 0x5a, 0x48, 0x4e, 0x36, 0x75, 0xf7, 0x75, 0xf7, 0x28, 0x63,
+};
+static const unsigned char kat2842_retbits[] = {
+ 0xf3, 0x90, 0xb9, 0x47, 0xe7, 0x83, 0x7c, 0x91, 0xfc, 0xb9, 0x77, 0x4b,
+ 0x1d, 0xfd, 0x4d, 0xda, 0x30, 0x59, 0x65, 0xa8, 0xa5, 0xbc, 0x06, 0xd6,
+ 0xa1, 0x08, 0x2d, 0x97, 0xa9, 0x05, 0x0d, 0x13, 0xae, 0x43, 0x33, 0xbe,
+ 0xad, 0x8e, 0x89, 0x07, 0xb5, 0x7c, 0x6d, 0xf0, 0xba, 0x65, 0x8a, 0xbb,
+ 0x35, 0xfd, 0xfd, 0x59, 0x5b, 0x6d, 0x68, 0xdd, 0x4b, 0x06, 0x93, 0x75,
+ 0x8e, 0x18, 0x6a, 0x65,
+};
+static const struct drbg_kat_pr_false kat2842_t = {
+ 6, kat2842_entropyin, kat2842_nonce, kat2842_persstr,
+ kat2842_entropyinreseed, kat2842_addinreseed, kat2842_addin0,
+ kat2842_addin1, kat2842_retbits
+};
+static const struct drbg_kat kat2842 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2842_t
+};
+
+static const unsigned char kat2843_entropyin[] = {
+ 0xc3, 0x37, 0xa3, 0xe7, 0x8d, 0x7d, 0x2e, 0x11, 0xc8, 0x49, 0x87, 0x00,
+ 0x06, 0xf2, 0xe7, 0x6e, 0x7f, 0xee, 0x30, 0xec, 0x07, 0x6d, 0x37, 0x7b,
+ 0xdc, 0x87, 0x9f, 0x25, 0x83, 0x24, 0x1e, 0x3b, 0x3b, 0x7b, 0x86, 0x3d,
+ 0xd9, 0xc2, 0xe1, 0x37, 0x9a, 0xed, 0x93, 0xf2, 0xf8, 0xda, 0xe5, 0x22,
+};
+static const unsigned char kat2843_nonce[] = {0};
+static const unsigned char kat2843_persstr[] = {0};
+static const unsigned char kat2843_entropyinreseed[] = {
+ 0xad, 0x41, 0x07, 0x91, 0xad, 0x78, 0x1f, 0x70, 0xd6, 0xbb, 0x8b, 0x88,
+ 0x3d, 0x17, 0x24, 0xf6, 0xce, 0xcb, 0x32, 0x45, 0x14, 0x1f, 0x78, 0x9c,
+ 0x1a, 0x8a, 0x9a, 0x1d, 0x45, 0x70, 0x64, 0x93, 0xba, 0xab, 0x5b, 0x2b,
+ 0x3d, 0x1c, 0xbe, 0x5d, 0x2b, 0xa4, 0x1e, 0x41, 0x23, 0xe0, 0x5b, 0x95,
+};
+static const unsigned char kat2843_addinreseed[] = {
+ 0x13, 0xd4, 0x25, 0xb3, 0x6b, 0xcd, 0x17, 0x80, 0x1b, 0x07, 0x7e, 0x71,
+ 0xb0, 0x0a, 0xe3, 0xc9, 0x0e, 0x8b, 0x6b, 0xf9, 0xb5, 0x20, 0xc0, 0x06,
+ 0xf6, 0x8c, 0xbc, 0x23, 0x8e, 0x5a, 0x95, 0x92, 0x22, 0x70, 0x13, 0x27,
+ 0x6e, 0x55, 0x9a, 0x72, 0xe1, 0xb9, 0x52, 0xf6, 0x1e, 0x8a, 0x4c, 0x62,
+};
+static const unsigned char kat2843_addin0[] = {
+ 0x9c, 0x49, 0x41, 0x9e, 0x86, 0x90, 0x18, 0x26, 0x8c, 0x9d, 0xb5, 0xfc,
+ 0xc0, 0xf7, 0xa9, 0x35, 0xd1, 0x7c, 0xb9, 0xff, 0x04, 0xea, 0x4d, 0x56,
+ 0xa6, 0x55, 0x5c, 0xeb, 0xb8, 0x9a, 0x6f, 0x4c, 0xd0, 0xd1, 0xeb, 0x83,
+ 0x23, 0x42, 0xc4, 0x22, 0x64, 0xdb, 0xae, 0x1d, 0x33, 0x52, 0x25, 0xb3,
+};
+static const unsigned char kat2843_addin1[] = {
+ 0xee, 0x20, 0x49, 0xb4, 0xc3, 0x62, 0x92, 0xa4, 0x51, 0xaa, 0xaa, 0x87,
+ 0xe7, 0xf7, 0xeb, 0x91, 0x8e, 0x8e, 0x0a, 0x49, 0x2e, 0xbe, 0x71, 0xfc,
+ 0x3b, 0x24, 0x49, 0x9f, 0x92, 0x1a, 0x23, 0xd2, 0xa0, 0x1b, 0x7b, 0xd8,
+ 0xe7, 0x58, 0x51, 0xc8, 0x92, 0xcc, 0xf1, 0x24, 0xcc, 0x29, 0x88, 0x76,
+};
+static const unsigned char kat2843_retbits[] = {
+ 0xfa, 0x1a, 0xc7, 0xad, 0x59, 0x92, 0x4d, 0x7a, 0xb5, 0x7c, 0x01, 0x86,
+ 0xde, 0xf6, 0x94, 0x64, 0x58, 0x05, 0xf8, 0x95, 0xf6, 0xb0, 0x45, 0xdd,
+ 0xe1, 0x29, 0x33, 0x37, 0x1f, 0x96, 0x01, 0xc6, 0xc9, 0x13, 0x32, 0x05,
+ 0x09, 0x34, 0x45, 0x62, 0x0d, 0x2a, 0xcf, 0xea, 0xb4, 0x4b, 0x13, 0x3b,
+ 0xf9, 0x3f, 0x27, 0xe5, 0xda, 0xaf, 0x74, 0x53, 0xe9, 0x8e, 0x6e, 0x47,
+ 0x78, 0x13, 0xd3, 0xca,
+};
+static const struct drbg_kat_pr_false kat2843_t = {
+ 7, kat2843_entropyin, kat2843_nonce, kat2843_persstr,
+ kat2843_entropyinreseed, kat2843_addinreseed, kat2843_addin0,
+ kat2843_addin1, kat2843_retbits
+};
+static const struct drbg_kat kat2843 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2843_t
+};
+
+static const unsigned char kat2844_entropyin[] = {
+ 0x7c, 0xd6, 0x8d, 0x97, 0x9a, 0x01, 0x24, 0x4c, 0x08, 0xea, 0xc6, 0xbd,
+ 0x20, 0xc0, 0x76, 0x91, 0x99, 0x18, 0xdb, 0xc7, 0xf0, 0x9e, 0xf5, 0x02,
+ 0x72, 0x7d, 0xbf, 0x50, 0xbb, 0xf2, 0x57, 0x62, 0xf6, 0xc0, 0x6e, 0x0e,
+ 0x6c, 0x55, 0x45, 0x5f, 0x54, 0x28, 0x91, 0x57, 0x2c, 0xc5, 0xd7, 0x5e,
+};
+static const unsigned char kat2844_nonce[] = {0};
+static const unsigned char kat2844_persstr[] = {0};
+static const unsigned char kat2844_entropyinreseed[] = {
+ 0xa0, 0xde, 0x6b, 0x1d, 0x84, 0x16, 0x31, 0xd3, 0x70, 0xc3, 0x5e, 0xd2,
+ 0x29, 0x76, 0x9e, 0xea, 0xb4, 0x25, 0xe1, 0x44, 0xce, 0x5b, 0xbe, 0x98,
+ 0x50, 0x5a, 0xf5, 0x38, 0x1f, 0xed, 0x45, 0xaa, 0xb7, 0x11, 0xaf, 0xa0,
+ 0x59, 0x62, 0x4d, 0x05, 0xf0, 0xf7, 0x32, 0xfc, 0xe3, 0x99, 0x7e, 0x71,
+};
+static const unsigned char kat2844_addinreseed[] = {
+ 0x92, 0xc2, 0x7d, 0x00, 0x5f, 0xc4, 0x97, 0x88, 0x69, 0x58, 0x08, 0x5a,
+ 0xe5, 0xa2, 0x43, 0xfe, 0x28, 0xcc, 0x6d, 0x31, 0x42, 0xb3, 0x81, 0x7b,
+ 0x20, 0x1a, 0x06, 0x7e, 0x45, 0xf6, 0xb8, 0x5b, 0x8a, 0x7d, 0x67, 0xd2,
+ 0xb5, 0x7b, 0xea, 0x16, 0x7c, 0xc7, 0xb5, 0x31, 0x53, 0xf9, 0x64, 0x56,
+};
+static const unsigned char kat2844_addin0[] = {
+ 0x50, 0x2b, 0xa3, 0x86, 0x88, 0x1f, 0xa8, 0x16, 0x7c, 0x9a, 0xc1, 0x44,
+ 0x27, 0x56, 0x30, 0xe7, 0xcb, 0x6b, 0x83, 0xf0, 0xb0, 0x9d, 0xbc, 0xa2,
+ 0x9b, 0x60, 0xf4, 0x34, 0xb6, 0x63, 0xaf, 0x1f, 0x3c, 0x73, 0xdc, 0x50,
+ 0xe6, 0x4e, 0xea, 0xa8, 0x6a, 0xa6, 0x6c, 0xb7, 0xab, 0xa3, 0x65, 0xe9,
+};
+static const unsigned char kat2844_addin1[] = {
+ 0x1d, 0x73, 0x7c, 0x09, 0x2b, 0xc0, 0x86, 0x7d, 0x93, 0x5c, 0x0a, 0x86,
+ 0x95, 0x39, 0x47, 0x63, 0x58, 0xf3, 0xcd, 0xe9, 0x32, 0xd0, 0x7d, 0x94,
+ 0x9b, 0x26, 0xcc, 0x19, 0x0d, 0x45, 0x0f, 0xa7, 0x59, 0x5f, 0x16, 0x2b,
+ 0x29, 0xc9, 0xc9, 0x6e, 0x9a, 0x84, 0x23, 0x91, 0x73, 0xc9, 0x39, 0x42,
+};
+static const unsigned char kat2844_retbits[] = {
+ 0x97, 0x9c, 0xb9, 0xeb, 0x1e, 0x30, 0xe4, 0x00, 0x85, 0xf0, 0x7c, 0x23,
+ 0xc2, 0x0f, 0x34, 0x93, 0x81, 0xff, 0xf8, 0x33, 0xd3, 0x86, 0x8a, 0xd9,
+ 0x8d, 0x36, 0xc7, 0xf8, 0x96, 0x1c, 0xe7, 0x3b, 0xb3, 0xdc, 0x99, 0x51,
+ 0x36, 0xeb, 0x47, 0x2e, 0x4b, 0xff, 0x71, 0xfa, 0x1c, 0x29, 0x38, 0xa7,
+ 0x8c, 0xbb, 0xde, 0x64, 0x27, 0xf2, 0x11, 0x0f, 0xb6, 0xd6, 0x4c, 0x6d,
+ 0x32, 0x77, 0xca, 0xdd,
+};
+static const struct drbg_kat_pr_false kat2844_t = {
+ 8, kat2844_entropyin, kat2844_nonce, kat2844_persstr,
+ kat2844_entropyinreseed, kat2844_addinreseed, kat2844_addin0,
+ kat2844_addin1, kat2844_retbits
+};
+static const struct drbg_kat kat2844 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2844_t
+};
+
+static const unsigned char kat2845_entropyin[] = {
+ 0x13, 0x87, 0xd5, 0x3e, 0xa4, 0x72, 0xd7, 0x01, 0x98, 0x69, 0x8e, 0xa5,
+ 0x97, 0xb1, 0x46, 0xb5, 0xb4, 0x01, 0x03, 0x34, 0xd1, 0x41, 0xf7, 0x45,
+ 0x43, 0x6c, 0xd4, 0xc1, 0xe0, 0xf6, 0x12, 0xb2, 0x0e, 0x66, 0x8a, 0x0a,
+ 0x7a, 0x6c, 0x8e, 0x7d, 0xd6, 0xe4, 0x7c, 0x0c, 0x0f, 0x02, 0xd4, 0x5a,
+};
+static const unsigned char kat2845_nonce[] = {0};
+static const unsigned char kat2845_persstr[] = {0};
+static const unsigned char kat2845_entropyinreseed[] = {
+ 0xa7, 0x9e, 0x5d, 0x18, 0x1f, 0x95, 0x5a, 0x46, 0x40, 0xf1, 0x5e, 0x7b,
+ 0xb5, 0xa3, 0x27, 0x88, 0xf5, 0x41, 0x5d, 0xea, 0xb9, 0x8c, 0x09, 0x52,
+ 0x4f, 0x63, 0x0b, 0xa7, 0x34, 0x59, 0xa5, 0xf7, 0x05, 0x04, 0x62, 0x67,
+ 0x02, 0x05, 0x4b, 0x3b, 0xca, 0xd3, 0x77, 0x39, 0xde, 0xc3, 0x3b, 0xb1,
+};
+static const unsigned char kat2845_addinreseed[] = {
+ 0x1f, 0x6a, 0xba, 0xa4, 0x24, 0xba, 0xde, 0x0d, 0x26, 0x19, 0x85, 0x44,
+ 0xae, 0xd6, 0x4e, 0xff, 0x7a, 0x37, 0x2d, 0x16, 0xad, 0xe1, 0x9c, 0x8f,
+ 0xdd, 0xe4, 0xd8, 0x33, 0x8d, 0xed, 0x29, 0xbb, 0x10, 0x76, 0x60, 0x49,
+ 0x2e, 0x0b, 0xfb, 0xbd, 0x0e, 0xec, 0x76, 0x79, 0xa6, 0x91, 0x84, 0xf9,
+};
+static const unsigned char kat2845_addin0[] = {
+ 0xc1, 0xca, 0x5c, 0xd0, 0xfb, 0x1b, 0x6a, 0x3f, 0x46, 0x8f, 0x9d, 0x9e,
+ 0xfe, 0xab, 0x54, 0x64, 0x18, 0x36, 0xae, 0xfa, 0xa4, 0xf6, 0xf2, 0xf6,
+ 0xd8, 0xcf, 0xca, 0x3e, 0xad, 0x7f, 0x73, 0x6f, 0xb2, 0xa0, 0x4b, 0xb1,
+ 0x7a, 0x9d, 0x64, 0xf2, 0xd1, 0xe8, 0xfb, 0x12, 0xef, 0x06, 0x91, 0x7b,
+};
+static const unsigned char kat2845_addin1[] = {
+ 0x5d, 0xc9, 0x49, 0x96, 0x90, 0xcb, 0x78, 0xfb, 0xf3, 0xdf, 0x33, 0x30,
+ 0x26, 0xab, 0x04, 0x77, 0xd8, 0x00, 0xee, 0xfe, 0x99, 0x73, 0xdc, 0x5f,
+ 0x33, 0xc4, 0x63, 0x47, 0x4b, 0x84, 0x46, 0x5a, 0x95, 0x56, 0xc8, 0xab,
+ 0xbd, 0xde, 0x3f, 0x7e, 0x86, 0xbe, 0x57, 0xf7, 0x36, 0x8e, 0x6d, 0x63,
+};
+static const unsigned char kat2845_retbits[] = {
+ 0x5c, 0xef, 0x6e, 0xc5, 0x3c, 0x22, 0x44, 0x8b, 0x52, 0x80, 0xad, 0xe0,
+ 0x51, 0xdb, 0xbe, 0x33, 0x23, 0x98, 0xa8, 0x58, 0x1c, 0x9f, 0x41, 0x88,
+ 0x58, 0x72, 0xa5, 0xdc, 0x54, 0xea, 0x95, 0xdf, 0x6c, 0x82, 0xfa, 0x8c,
+ 0x10, 0xc2, 0xf3, 0xe1, 0xf0, 0xdf, 0xd7, 0x88, 0xe4, 0x61, 0x6b, 0x97,
+ 0x38, 0x96, 0x03, 0xa7, 0x00, 0x09, 0x80, 0x29, 0xd0, 0x7d, 0xc6, 0xee,
+ 0x8c, 0x38, 0xdd, 0x41,
+};
+static const struct drbg_kat_pr_false kat2845_t = {
+ 9, kat2845_entropyin, kat2845_nonce, kat2845_persstr,
+ kat2845_entropyinreseed, kat2845_addinreseed, kat2845_addin0,
+ kat2845_addin1, kat2845_retbits
+};
+static const struct drbg_kat kat2845 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2845_t
+};
+
+static const unsigned char kat2846_entropyin[] = {
+ 0x30, 0xcc, 0xde, 0xa1, 0x31, 0xc4, 0x68, 0xd1, 0xc1, 0x80, 0xbd, 0x53,
+ 0x68, 0x99, 0xf6, 0xa5, 0x50, 0xd2, 0x5c, 0x31, 0xce, 0xe1, 0x0c, 0xe0,
+ 0xf8, 0x28, 0x59, 0x15, 0x8b, 0x5f, 0xfd, 0x3e, 0xe7, 0x71, 0xe4, 0x50,
+ 0x2d, 0x24, 0xb5, 0xe2, 0x69, 0xb5, 0x27, 0xba, 0x6d, 0x2e, 0xc5, 0x87,
+};
+static const unsigned char kat2846_nonce[] = {0};
+static const unsigned char kat2846_persstr[] = {0};
+static const unsigned char kat2846_entropyinreseed[] = {
+ 0x4b, 0xbe, 0x5f, 0xe0, 0xd0, 0xcf, 0x26, 0x68, 0xd1, 0xd2, 0xc6, 0x96,
+ 0x71, 0xe3, 0x8c, 0x32, 0x13, 0xe5, 0x9c, 0x74, 0xed, 0x06, 0xc8, 0xfe,
+ 0x5a, 0x53, 0x4e, 0xe8, 0x3a, 0x37, 0xf5, 0x49, 0xf1, 0xa6, 0x83, 0xd9,
+ 0x95, 0xb6, 0x07, 0x85, 0xbe, 0x71, 0x35, 0x63, 0x80, 0x82, 0xf7, 0x06,
+};
+static const unsigned char kat2846_addinreseed[] = {
+ 0x44, 0x71, 0x09, 0x2a, 0x77, 0x1a, 0x15, 0x0b, 0xcd, 0xe9, 0x90, 0x05,
+ 0xcb, 0x67, 0x6c, 0xdf, 0xf4, 0xd5, 0xb4, 0x78, 0xcc, 0xdd, 0x53, 0xb6,
+ 0x19, 0xe1, 0x9d, 0xfd, 0x4b, 0xec, 0x32, 0x5f, 0xe9, 0x8f, 0x72, 0xd0,
+ 0x32, 0x0a, 0x36, 0xa6, 0x4d, 0xb4, 0x0b, 0x53, 0x55, 0x8d, 0x13, 0x79,
+};
+static const unsigned char kat2846_addin0[] = {
+ 0x7d, 0x15, 0x98, 0x95, 0xec, 0xc2, 0x45, 0xe4, 0x91, 0x2d, 0xf0, 0xa2,
+ 0x17, 0x75, 0x34, 0x7e, 0x1c, 0x1a, 0x16, 0x60, 0x1b, 0xc7, 0xf0, 0xa1,
+ 0x5a, 0x75, 0x92, 0xa4, 0xe5, 0x7c, 0x2d, 0x6b, 0x9f, 0xed, 0xae, 0x13,
+ 0x65, 0x39, 0x06, 0x31, 0x6c, 0xca, 0x0d, 0x15, 0xe1, 0xa5, 0xeb, 0x65,
+};
+static const unsigned char kat2846_addin1[] = {
+ 0x5e, 0xba, 0xe3, 0x24, 0x49, 0x54, 0x6e, 0xcc, 0xe2, 0x03, 0xfc, 0xb5,
+ 0x8f, 0xeb, 0x40, 0x3e, 0x7b, 0xf8, 0x45, 0x94, 0xa7, 0xfd, 0xcb, 0xe9,
+ 0x76, 0x7b, 0xda, 0xe6, 0xcb, 0x09, 0x0d, 0xa3, 0x8b, 0x9f, 0xd2, 0xbd,
+ 0xa4, 0xb1, 0x01, 0x58, 0x31, 0x47, 0x9d, 0x83, 0x04, 0x23, 0x65, 0x2c,
+};
+static const unsigned char kat2846_retbits[] = {
+ 0x9b, 0xb5, 0x0d, 0x63, 0xfa, 0xfb, 0xc2, 0x65, 0x65, 0xe1, 0xd6, 0xd2,
+ 0x14, 0x7d, 0x99, 0xe5, 0xac, 0xb0, 0xa6, 0x23, 0x7e, 0x23, 0xa1, 0xbd,
+ 0xa0, 0x6d, 0xb8, 0xed, 0x35, 0xa5, 0xde, 0x9d, 0xb1, 0x04, 0x20, 0x60,
+ 0xcd, 0x46, 0xe4, 0x42, 0x0d, 0x40, 0x16, 0x33, 0xc3, 0x33, 0x1a, 0x6c,
+ 0xfd, 0x62, 0xdd, 0x20, 0xd4, 0xae, 0x8f, 0xc1, 0x50, 0x0f, 0x7e, 0x28,
+ 0xdd, 0x2e, 0xc4, 0x06,
+};
+static const struct drbg_kat_pr_false kat2846_t = {
+ 10, kat2846_entropyin, kat2846_nonce, kat2846_persstr,
+ kat2846_entropyinreseed, kat2846_addinreseed, kat2846_addin0,
+ kat2846_addin1, kat2846_retbits
+};
+static const struct drbg_kat kat2846 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2846_t
+};
+
+static const unsigned char kat2847_entropyin[] = {
+ 0x94, 0xb6, 0x35, 0xe2, 0x06, 0xc6, 0x21, 0xc4, 0x1d, 0x39, 0xe5, 0x04,
+ 0x83, 0x7a, 0xf3, 0x87, 0x57, 0xb9, 0xe0, 0x47, 0x47, 0xd1, 0x57, 0xf9,
+ 0x51, 0x52, 0x78, 0x21, 0x4f, 0xf2, 0x49, 0x9c, 0xae, 0xd1, 0x55, 0xc6,
+ 0xcd, 0x5c, 0xbe, 0x33, 0x3b, 0xd7, 0xfd, 0x3b, 0x95, 0x21, 0x68, 0xeb,
+};
+static const unsigned char kat2847_nonce[] = {0};
+static const unsigned char kat2847_persstr[] = {0};
+static const unsigned char kat2847_entropyinreseed[] = {
+ 0xd3, 0xc5, 0x9c, 0x86, 0xfd, 0xf1, 0xc0, 0xe6, 0x4c, 0x68, 0x73, 0x4b,
+ 0x0e, 0x79, 0x18, 0x3c, 0xb6, 0x96, 0x54, 0xe3, 0xea, 0x88, 0x4b, 0x92,
+ 0x75, 0xb1, 0x6e, 0x51, 0x34, 0xba, 0x88, 0xec, 0x68, 0x3c, 0xad, 0xa5,
+ 0xc7, 0xe0, 0xb8, 0x44, 0xcf, 0x56, 0x65, 0x52, 0x0d, 0x21, 0xd4, 0x95,
+};
+static const unsigned char kat2847_addinreseed[] = {
+ 0x3e, 0x0b, 0x17, 0xa8, 0x3a, 0x2e, 0x99, 0xe3, 0x31, 0x9b, 0x5e, 0x33,
+ 0xd0, 0x29, 0xaf, 0x66, 0x16, 0x9b, 0x83, 0x21, 0x40, 0x74, 0xf6, 0x22,
+ 0x07, 0x84, 0xed, 0xf6, 0x65, 0xeb, 0x3b, 0x22, 0x82, 0xa0, 0x22, 0xff,
+ 0x3b, 0xa1, 0x72, 0x7b, 0x0b, 0xe9, 0x8d, 0xc3, 0xa4, 0xab, 0xb7, 0xce,
+};
+static const unsigned char kat2847_addin0[] = {
+ 0xf6, 0xc2, 0x88, 0x42, 0x8d, 0xeb, 0x32, 0xde, 0x2f, 0xdf, 0x95, 0xc8,
+ 0x52, 0x22, 0xc5, 0xa9, 0x20, 0xd6, 0x2d, 0xee, 0x13, 0x21, 0xc6, 0xb3,
+ 0x26, 0x40, 0x04, 0x91, 0x7a, 0xe7, 0x65, 0x17, 0x00, 0x5b, 0xeb, 0x3e,
+ 0xbf, 0xbe, 0xab, 0xce, 0xca, 0x84, 0x4f, 0xe7, 0x89, 0xe3, 0xdc, 0x1b,
+};
+static const unsigned char kat2847_addin1[] = {
+ 0xc0, 0x8a, 0x89, 0x6f, 0xc0, 0xba, 0xe0, 0x5a, 0x44, 0xca, 0x97, 0x07,
+ 0x1e, 0xcc, 0x0b, 0x71, 0x75, 0x46, 0x87, 0xb0, 0x79, 0xbb, 0x95, 0x0d,
+ 0x7f, 0x7b, 0x9d, 0x3d, 0xcf, 0x20, 0x57, 0x04, 0x26, 0x8d, 0x0f, 0xa2,
+ 0xf9, 0xb0, 0x34, 0x30, 0x65, 0xc8, 0x9a, 0xa8, 0x59, 0x09, 0xa7, 0x60,
+};
+static const unsigned char kat2847_retbits[] = {
+ 0x57, 0x5a, 0x0d, 0xc1, 0x79, 0x0b, 0x09, 0xfd, 0x56, 0x2d, 0x88, 0xaf,
+ 0xba, 0x38, 0x5a, 0x20, 0xc1, 0x27, 0xad, 0xc4, 0x59, 0x48, 0x23, 0xeb,
+ 0x59, 0xcc, 0x08, 0x28, 0x21, 0x87, 0xfc, 0xae, 0x14, 0xc8, 0xc7, 0x83,
+ 0x49, 0x2b, 0x8d, 0xf1, 0x73, 0xfc, 0xc6, 0x10, 0x89, 0xc0, 0x8d, 0x0e,
+ 0x42, 0x1b, 0x6d, 0x7d, 0x15, 0xb0, 0xc0, 0x0a, 0x77, 0x1e, 0x9d, 0xac,
+ 0x8b, 0xb6, 0xbf, 0xf9,
+};
+static const struct drbg_kat_pr_false kat2847_t = {
+ 11, kat2847_entropyin, kat2847_nonce, kat2847_persstr,
+ kat2847_entropyinreseed, kat2847_addinreseed, kat2847_addin0,
+ kat2847_addin1, kat2847_retbits
+};
+static const struct drbg_kat kat2847 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2847_t
+};
+
+static const unsigned char kat2848_entropyin[] = {
+ 0x38, 0x40, 0xa4, 0xae, 0xc3, 0x52, 0xa6, 0x41, 0xa9, 0xfa, 0xc7, 0x7b,
+ 0xb2, 0x65, 0x03, 0x1f, 0x80, 0x7c, 0x26, 0xa5, 0x4a, 0x56, 0x1d, 0x5f,
+ 0x8a, 0x27, 0x53, 0x34, 0x52, 0xc3, 0x57, 0xf2, 0xb4, 0x51, 0xfb, 0x93,
+ 0x87, 0x2f, 0x4a, 0x03, 0xd8, 0x27, 0xfd, 0xc1, 0x79, 0x57, 0x3d, 0xb9,
+};
+static const unsigned char kat2848_nonce[] = {0};
+static const unsigned char kat2848_persstr[] = {0};
+static const unsigned char kat2848_entropyinreseed[] = {
+ 0xd5, 0x5d, 0x27, 0x76, 0x8a, 0xe2, 0xbe, 0xeb, 0x68, 0x01, 0xa1, 0xb1,
+ 0xd4, 0x40, 0xc9, 0x81, 0xc6, 0x03, 0xdf, 0x06, 0xfb, 0xe9, 0xbd, 0xee,
+ 0x32, 0xfe, 0x97, 0xa4, 0xb2, 0x04, 0x41, 0x78, 0x56, 0x48, 0x6b, 0x4a,
+ 0x34, 0x0f, 0x16, 0xc0, 0x2f, 0x67, 0x24, 0x5c, 0x29, 0x23, 0xdb, 0xc2,
+};
+static const unsigned char kat2848_addinreseed[] = {
+ 0x08, 0xae, 0xd0, 0xdf, 0xf1, 0xe1, 0x4c, 0x4f, 0x11, 0x90, 0xe9, 0x13,
+ 0x54, 0x9a, 0x95, 0x37, 0x00, 0x57, 0xc7, 0x9f, 0x9a, 0xb2, 0x00, 0x5e,
+ 0x1d, 0x9d, 0x01, 0xa3, 0xba, 0x1f, 0x0f, 0x43, 0x78, 0xca, 0xbd, 0xca,
+ 0x0b, 0x37, 0x93, 0x22, 0xb2, 0x86, 0x96, 0xdf, 0x4a, 0x2d, 0xd5, 0x03,
+};
+static const unsigned char kat2848_addin0[] = {
+ 0xc9, 0x62, 0x12, 0x8b, 0x63, 0xbe, 0x95, 0x94, 0x10, 0xf9, 0x98, 0x67,
+ 0xcf, 0xce, 0x8e, 0xf7, 0x8b, 0xed, 0xfd, 0x4a, 0xa3, 0xfc, 0x6b, 0xbe,
+ 0x92, 0xac, 0xe9, 0x50, 0xf6, 0x6a, 0x9d, 0xc1, 0x82, 0x35, 0x90, 0x8c,
+ 0xcf, 0x18, 0x9e, 0x58, 0x40, 0xf5, 0x84, 0x60, 0x34, 0x8f, 0xd5, 0xa3,
+};
+static const unsigned char kat2848_addin1[] = {
+ 0x04, 0xc1, 0x15, 0xc2, 0x87, 0x11, 0x65, 0xe9, 0x21, 0x35, 0x90, 0xc1,
+ 0x5c, 0x03, 0x45, 0x1c, 0x72, 0x8b, 0xb6, 0xe2, 0x81, 0x91, 0x8a, 0x37,
+ 0xce, 0xe3, 0x50, 0xd5, 0x9e, 0x06, 0x26, 0x6d, 0x65, 0xff, 0x8c, 0xee,
+ 0xa5, 0xf9, 0xb3, 0xc5, 0x79, 0x3b, 0x1c, 0x66, 0x45, 0xfb, 0x86, 0xd4,
+};
+static const unsigned char kat2848_retbits[] = {
+ 0xa8, 0x56, 0x1d, 0x30, 0xe2, 0xfb, 0x9e, 0xaa, 0x7e, 0x30, 0x81, 0x38,
+ 0x5c, 0x82, 0xb3, 0xba, 0x5a, 0xfe, 0x99, 0x18, 0x59, 0x5d, 0x55, 0xaf,
+ 0xc4, 0x40, 0x2e, 0x88, 0x6a, 0x6c, 0x2f, 0xe0, 0xa0, 0x04, 0xb0, 0xd9,
+ 0xad, 0x2b, 0x7b, 0x2a, 0xe3, 0xff, 0x75, 0xaf, 0x39, 0x61, 0xe6, 0x90,
+ 0xd7, 0xec, 0x94, 0x84, 0x7d, 0xc3, 0x2e, 0x2c, 0x4a, 0x89, 0x68, 0x51,
+ 0xe6, 0xdd, 0x06, 0x70,
+};
+static const struct drbg_kat_pr_false kat2848_t = {
+ 12, kat2848_entropyin, kat2848_nonce, kat2848_persstr,
+ kat2848_entropyinreseed, kat2848_addinreseed, kat2848_addin0,
+ kat2848_addin1, kat2848_retbits
+};
+static const struct drbg_kat kat2848 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2848_t
+};
+
+static const unsigned char kat2849_entropyin[] = {
+ 0x07, 0xf0, 0xe0, 0xd4, 0xb9, 0xcb, 0x7d, 0x6d, 0xdb, 0xde, 0x41, 0xc3,
+ 0xf2, 0xeb, 0x34, 0x25, 0x68, 0x22, 0x76, 0x85, 0x0d, 0xfa, 0x1a, 0xff,
+ 0xf6, 0x39, 0x0a, 0x58, 0xd0, 0x47, 0x1f, 0xd7, 0x56, 0xd0, 0xdd, 0xee,
+ 0x3b, 0x07, 0x9e, 0x0d, 0xdb, 0x59, 0xb5, 0x25, 0xca, 0x45, 0xbe, 0xae,
+};
+static const unsigned char kat2849_nonce[] = {0};
+static const unsigned char kat2849_persstr[] = {0};
+static const unsigned char kat2849_entropyinreseed[] = {
+ 0x05, 0x5c, 0xd0, 0x20, 0xdd, 0xd6, 0xf5, 0x32, 0x95, 0xbc, 0x19, 0x9a,
+ 0x63, 0x70, 0x21, 0xc0, 0x1f, 0x27, 0xe3, 0x23, 0xe6, 0x5d, 0x7b, 0xef,
+ 0x36, 0xec, 0xe3, 0xfb, 0x4e, 0x11, 0xa9, 0x17, 0xfd, 0x41, 0xe7, 0x3a,
+ 0xef, 0x00, 0xac, 0x38, 0xbd, 0x2b, 0x40, 0x75, 0x23, 0x6a, 0xdb, 0x7a,
+};
+static const unsigned char kat2849_addinreseed[] = {
+ 0x74, 0x8c, 0xbd, 0x4b, 0x23, 0xf1, 0xe7, 0x3b, 0xc1, 0x78, 0xb0, 0x90,
+ 0xa8, 0x8a, 0x70, 0x6e, 0xf4, 0x23, 0x7f, 0xd7, 0x0c, 0xb6, 0xbb, 0x2f,
+ 0x05, 0xba, 0x89, 0x06, 0x86, 0xfd, 0xb9, 0x86, 0x3e, 0xd4, 0x0a, 0x88,
+ 0x31, 0x89, 0x71, 0x9c, 0x12, 0xdf, 0x60, 0x71, 0xbd, 0xfd, 0x65, 0xed,
+};
+static const unsigned char kat2849_addin0[] = {
+ 0x43, 0x17, 0x1a, 0x09, 0x02, 0x19, 0x89, 0x1a, 0xc2, 0xde, 0xde, 0xc6,
+ 0x23, 0xb7, 0x22, 0x09, 0xbe, 0x58, 0xf6, 0xca, 0x36, 0x7d, 0xe9, 0xe2,
+ 0x3f, 0xe7, 0x1c, 0x43, 0x9d, 0x5c, 0x66, 0xd2, 0xfb, 0x5c, 0x3c, 0x9b,
+ 0x6d, 0xa5, 0xfe, 0xe4, 0xe7, 0xf5, 0xe0, 0x73, 0x7d, 0x21, 0x7f, 0x2f,
+};
+static const unsigned char kat2849_addin1[] = {
+ 0xd5, 0x3a, 0xc1, 0x18, 0xa6, 0xc1, 0xb8, 0x19, 0x46, 0xee, 0xd0, 0x5c,
+ 0xcc, 0x6f, 0xfa, 0xf9, 0x93, 0x46, 0x40, 0x72, 0xb8, 0x6b, 0x68, 0x95,
+ 0xf7, 0x34, 0xb6, 0x64, 0xf6, 0x82, 0x64, 0xbb, 0x35, 0x1a, 0x82, 0x4e,
+ 0x07, 0x52, 0xd1, 0xb1, 0x91, 0x61, 0xf7, 0x1c, 0xcf, 0xcf, 0x93, 0xfc,
+};
+static const unsigned char kat2849_retbits[] = {
+ 0xbd, 0xfe, 0xa3, 0x8e, 0x7f, 0xf3, 0x7e, 0xd4, 0x7d, 0x7a, 0x45, 0x0a,
+ 0xda, 0x63, 0xbe, 0x5f, 0xa2, 0x6e, 0xb1, 0xfe, 0x80, 0x32, 0x5e, 0x57,
+ 0xa3, 0xcd, 0x39, 0x1b, 0xda, 0xf0, 0x74, 0x02, 0x2b, 0xee, 0x4a, 0x0f,
+ 0x6c, 0x80, 0x6c, 0xf3, 0xb3, 0x64, 0x8a, 0x4e, 0xdd, 0x68, 0x22, 0x63,
+ 0x76, 0xa9, 0x55, 0x66, 0x82, 0x81, 0xeb, 0x3e, 0x0e, 0xdd, 0xfb, 0xa0,
+ 0x2d, 0xfe, 0xca, 0xe8,
+};
+static const struct drbg_kat_pr_false kat2849_t = {
+ 13, kat2849_entropyin, kat2849_nonce, kat2849_persstr,
+ kat2849_entropyinreseed, kat2849_addinreseed, kat2849_addin0,
+ kat2849_addin1, kat2849_retbits
+};
+static const struct drbg_kat kat2849 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2849_t
+};
+
+static const unsigned char kat2850_entropyin[] = {
+ 0x54, 0xd6, 0xfc, 0xcc, 0x17, 0x3c, 0x92, 0xe9, 0x39, 0xbf, 0xaa, 0xab,
+ 0xbf, 0x0b, 0x67, 0xb3, 0x62, 0xe5, 0xe2, 0x8e, 0xf1, 0x9b, 0xb2, 0x28,
+ 0x04, 0xdc, 0x4d, 0x08, 0x30, 0x78, 0x4c, 0x65, 0x34, 0x37, 0x6d, 0xb0,
+ 0xfb, 0x57, 0x95, 0x3d, 0xe7, 0x1d, 0xa4, 0x83, 0x94, 0x7f, 0x2f, 0x86,
+};
+static const unsigned char kat2850_nonce[] = {0};
+static const unsigned char kat2850_persstr[] = {0};
+static const unsigned char kat2850_entropyinreseed[] = {
+ 0xa9, 0x7d, 0xe5, 0x96, 0x24, 0xf1, 0x8f, 0x7a, 0x94, 0xa6, 0xd4, 0x81,
+ 0x29, 0xe1, 0x98, 0x8d, 0xe1, 0x24, 0x8b, 0x1b, 0xa6, 0xc8, 0x1e, 0xcd,
+ 0x38, 0x82, 0xda, 0xf0, 0x31, 0x33, 0x43, 0xd5, 0xbb, 0x74, 0xe1, 0x62,
+ 0xe2, 0xe4, 0x63, 0xa6, 0xc1, 0xe5, 0xde, 0xf3, 0x89, 0xe2, 0x4e, 0x10,
+};
+static const unsigned char kat2850_addinreseed[] = {
+ 0x86, 0x05, 0x0f, 0x8c, 0x9a, 0x0d, 0xf8, 0x12, 0xe6, 0xc4, 0x4d, 0x83,
+ 0xea, 0x9c, 0x9f, 0xfc, 0x47, 0x95, 0x34, 0xa6, 0xc4, 0x08, 0x7e, 0x91,
+ 0x2a, 0x63, 0x09, 0x2e, 0x18, 0x9c, 0xc1, 0x6e, 0xc0, 0x48, 0x93, 0x1e,
+ 0xb7, 0xaf, 0x64, 0x60, 0xd6, 0x7c, 0xc2, 0x74, 0x15, 0x4e, 0xe9, 0x14,
+};
+static const unsigned char kat2850_addin0[] = {
+ 0x54, 0xdd, 0x28, 0x54, 0x3c, 0x85, 0x9f, 0xd4, 0xdc, 0x1e, 0x4f, 0x0a,
+ 0x44, 0xec, 0x9a, 0xa2, 0xb7, 0x58, 0xd5, 0x13, 0x79, 0xc0, 0xa9, 0xc7,
+ 0x58, 0x05, 0x35, 0x67, 0x93, 0x9d, 0xb6, 0xa9, 0x06, 0x32, 0x0d, 0x83,
+ 0x69, 0x3a, 0x0a, 0x59, 0x1f, 0xe9, 0x9c, 0x3e, 0x24, 0xd1, 0x29, 0x3d,
+};
+static const unsigned char kat2850_addin1[] = {
+ 0x38, 0x03, 0xa5, 0x8e, 0x41, 0xfb, 0x76, 0x68, 0x47, 0xb9, 0xf5, 0x68,
+ 0xec, 0xd7, 0xf1, 0x99, 0x30, 0x91, 0xc4, 0x68, 0x9f, 0xcf, 0x70, 0xf7,
+ 0x54, 0xd3, 0x45, 0xec, 0x7a, 0x3f, 0x45, 0xd1, 0xfe, 0xcb, 0xfc, 0xc5,
+ 0x2c, 0xd6, 0x0b, 0x47, 0xb5, 0xa4, 0x86, 0xac, 0xb1, 0x55, 0xe2, 0x13,
+};
+static const unsigned char kat2850_retbits[] = {
+ 0x3c, 0xfb, 0x2e, 0xda, 0x22, 0xc4, 0xf0, 0x18, 0x93, 0xb4, 0x76, 0x0b,
+ 0x78, 0x5d, 0x33, 0x0c, 0xb7, 0x71, 0x93, 0x8e, 0xd6, 0xf2, 0xf9, 0x29,
+ 0x03, 0x0f, 0xe6, 0x25, 0x78, 0x0f, 0xb9, 0x1f, 0xc2, 0xf9, 0x95, 0x24,
+ 0x09, 0xb9, 0x9f, 0x01, 0x1c, 0xb5, 0xe7, 0xe0, 0xb4, 0xa7, 0xd4, 0x61,
+ 0xbe, 0x80, 0xe9, 0x4e, 0x91, 0x11, 0x1a, 0xce, 0x06, 0x04, 0xa7, 0xa4,
+ 0x17, 0x19, 0xf3, 0xb3,
+};
+static const struct drbg_kat_pr_false kat2850_t = {
+ 14, kat2850_entropyin, kat2850_nonce, kat2850_persstr,
+ kat2850_entropyinreseed, kat2850_addinreseed, kat2850_addin0,
+ kat2850_addin1, kat2850_retbits
+};
+static const struct drbg_kat kat2850 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat2850_t
+};
+
+static const unsigned char kat2851_entropyin[] = {
+ 0xb5, 0xe2, 0xaf, 0x38, 0x59, 0x1a, 0x97, 0x43, 0xe5, 0xd3, 0xe4, 0x58,
+ 0x84, 0x8a, 0x39, 0x98, 0x53, 0x6d, 0x3b, 0x62, 0x5e, 0x16, 0x94, 0xbe,
+ 0x84, 0x7f, 0x95, 0xc3, 0xbf, 0xbd, 0xa2, 0x67, 0xf0, 0x86, 0x24, 0xbe,
+ 0x4b, 0xb6, 0xaa, 0x49, 0x6e, 0x1b, 0x59, 0x6b, 0xe5, 0x23, 0xe7, 0xc4,
+};
+static const unsigned char kat2851_nonce[] = {0};
+static const unsigned char kat2851_persstr[] = {
+ 0x0a, 0x9a, 0x59, 0xe7, 0x60, 0x5c, 0x0e, 0x12, 0xfa, 0xe3, 0x17, 0xbb,
+ 0x00, 0x4a, 0xec, 0xf1, 0x42, 0x7b, 0xda, 0x4d, 0xca, 0x77, 0x18, 0x80,
+ 0x18, 0x95, 0xc3, 0x81, 0x79, 0xfd, 0x36, 0xcd, 0x92, 0x26, 0x34, 0xc3,
+ 0x78, 0x9a, 0x99, 0xb9, 0xd9, 0xc5, 0x56, 0xfe, 0x50, 0xa4, 0x1d, 0xe4,
+};
+static const unsigned char kat2851_entropyinreseed[] = {
+ 0x94, 0x2e, 0xe9, 0x72, 0xa5, 0x99, 0xf3, 0x46, 0xbe, 0x15, 0x29, 0x9d,
+ 0x34, 0x78, 0x23, 0x02, 0x84, 0x69, 0xfc, 0x88, 0x3c, 0x5e, 0x45, 0x47,
+ 0x9e, 0x92, 0x43, 0xdf, 0x87, 0x10, 0xd1, 0xdc, 0x5c, 0x30, 0x73, 0x03,
+ 0x1e, 0x62, 0xf6, 0x05, 0xf2, 0x97, 0x47, 0x9c, 0x5b, 0xcf, 0xf9, 0x93,
+};
+static const unsigned char kat2851_addinreseed[] = {0};
+static const unsigned char kat2851_addin0[] = {0};
+static const unsigned char kat2851_addin1[] = {0};
+static const unsigned char kat2851_retbits[] = {
+ 0x1f, 0x81, 0x82, 0x18, 0xf0, 0x6c, 0x98, 0x33, 0xf0, 0x84, 0xc2, 0xb0,
+ 0xec, 0xd0, 0x58, 0xd3, 0x77, 0xb2, 0xd0, 0x8c, 0x29, 0x43, 0xf4, 0xd2,
+ 0x4d, 0x2b, 0x5d, 0x7c, 0xad, 0x2b, 0xa4, 0x96, 0x97, 0xdc, 0x3a, 0xd8,
+ 0xd6, 0xc5, 0xc5, 0xaf, 0x63, 0x72, 0xf0, 0x2c, 0x18, 0x68, 0x75, 0x6c,
+ 0xa7, 0xb3, 0x9b, 0x54, 0x8c, 0xbf, 0x0d, 0x2b, 0xc5, 0xda, 0x2d, 0x11,
+ 0xed, 0x5c, 0x8f, 0x7f,
+};
+static const struct drbg_kat_pr_false kat2851_t = {
+ 0, kat2851_entropyin, kat2851_nonce, kat2851_persstr,
+ kat2851_entropyinreseed, kat2851_addinreseed, kat2851_addin0,
+ kat2851_addin1, kat2851_retbits
+};
+static const struct drbg_kat kat2851 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2851_t
+};
+
+static const unsigned char kat2852_entropyin[] = {
+ 0x60, 0xe9, 0x82, 0x30, 0x04, 0xe2, 0x95, 0x24, 0x13, 0x8c, 0x8f, 0x86,
+ 0x61, 0x65, 0x7d, 0x1f, 0x04, 0xcc, 0xc4, 0x18, 0xc5, 0xe2, 0xc6, 0x77,
+ 0xd2, 0x60, 0x78, 0xbe, 0xe0, 0x24, 0xe7, 0x16, 0x90, 0x63, 0xb1, 0x47,
+ 0xb7, 0xe0, 0x99, 0x46, 0x46, 0x8f, 0x4b, 0x9e, 0x34, 0x81, 0x97, 0x48,
+};
+static const unsigned char kat2852_nonce[] = {0};
+static const unsigned char kat2852_persstr[] = {
+ 0x13, 0xaa, 0x6b, 0x6c, 0xa5, 0xe9, 0x4d, 0x0f, 0x2a, 0x5b, 0x3f, 0x50,
+ 0x5f, 0x8e, 0xb3, 0xaa, 0xc2, 0x2f, 0xc3, 0x93, 0x71, 0x5c, 0xde, 0x10,
+ 0x19, 0x63, 0xec, 0x87, 0x20, 0x69, 0x12, 0x60, 0x7d, 0x74, 0xa1, 0x1f,
+ 0x3c, 0x09, 0xa5, 0x5a, 0xfa, 0x18, 0xc5, 0xcc, 0x8a, 0xe1, 0x19, 0x17,
+};
+static const unsigned char kat2852_entropyinreseed[] = {
+ 0x4a, 0x16, 0xf6, 0x7d, 0x28, 0x0b, 0x34, 0x62, 0x85, 0x97, 0xc6, 0x95,
+ 0x3a, 0xb5, 0xaf, 0x39, 0x02, 0xb9, 0x1b, 0x05, 0xc2, 0xc0, 0xc7, 0xc9,
+ 0x53, 0x66, 0xb9, 0x9c, 0x7e, 0x6a, 0x9c, 0x30, 0xe8, 0x76, 0xd1, 0xe3,
+ 0xc6, 0x34, 0xbd, 0x03, 0x77, 0xdc, 0x96, 0x9e, 0xa1, 0x19, 0x24, 0x7d,
+};
+static const unsigned char kat2852_addinreseed[] = {0};
+static const unsigned char kat2852_addin0[] = {0};
+static const unsigned char kat2852_addin1[] = {0};
+static const unsigned char kat2852_retbits[] = {
+ 0x1b, 0x80, 0x9b, 0xde, 0x83, 0x2e, 0x7a, 0xb5, 0xf3, 0x72, 0x73, 0xd7,
+ 0xf1, 0xcc, 0xb4, 0xd7, 0xbb, 0xb1, 0xa1, 0x10, 0x53, 0xcc, 0x72, 0x27,
+ 0x1c, 0x44, 0xf4, 0xd2, 0x1a, 0x3e, 0xfb, 0x9a, 0x06, 0xa5, 0x48, 0x13,
+ 0x91, 0x1d, 0xc9, 0x9e, 0xd0, 0x16, 0x11, 0xf7, 0x57, 0x57, 0x67, 0x7b,
+ 0xa8, 0x92, 0x71, 0x9c, 0xb6, 0xce, 0x9d, 0xde, 0x26, 0x22, 0x90, 0x45,
+ 0x3e, 0x4f, 0x00, 0xc3,
+};
+static const struct drbg_kat_pr_false kat2852_t = {
+ 1, kat2852_entropyin, kat2852_nonce, kat2852_persstr,
+ kat2852_entropyinreseed, kat2852_addinreseed, kat2852_addin0,
+ kat2852_addin1, kat2852_retbits
+};
+static const struct drbg_kat kat2852 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2852_t
+};
+
+static const unsigned char kat2853_entropyin[] = {
+ 0xf4, 0xd2, 0xdb, 0xd7, 0xc0, 0xf5, 0x21, 0x89, 0xe3, 0x29, 0x41, 0x5d,
+ 0x96, 0x90, 0xc8, 0x61, 0x56, 0x63, 0xc8, 0x6f, 0x5c, 0x09, 0x75, 0x29,
+ 0xe6, 0x8c, 0x9a, 0x7e, 0xca, 0x0a, 0xd0, 0xbc, 0x2e, 0xae, 0xcf, 0x91,
+ 0x18, 0x87, 0x62, 0x22, 0x04, 0xca, 0x9e, 0xdc, 0x1e, 0xae, 0x41, 0x0d,
+};
+static const unsigned char kat2853_nonce[] = {0};
+static const unsigned char kat2853_persstr[] = {
+ 0x99, 0x62, 0xca, 0xa3, 0x5f, 0x06, 0xbc, 0x27, 0x6a, 0x23, 0x61, 0xe4,
+ 0x02, 0x9b, 0x1b, 0xf0, 0x21, 0x84, 0x02, 0x4c, 0x52, 0xcb, 0xbf, 0xf2,
+ 0xd8, 0xfd, 0x1e, 0xeb, 0xfa, 0xa2, 0x31, 0xab, 0x49, 0x13, 0x68, 0x0c,
+ 0x2f, 0xca, 0x1a, 0xfd, 0xd2, 0x29, 0x79, 0x24, 0x1a, 0x29, 0x1d, 0xb2,
+};
+static const unsigned char kat2853_entropyinreseed[] = {
+ 0x43, 0x07, 0xea, 0x69, 0x5c, 0x2a, 0xd7, 0xd8, 0x0b, 0x36, 0x47, 0x6a,
+ 0x5e, 0x35, 0x27, 0xca, 0x13, 0xff, 0x8f, 0xdd, 0x7c, 0x5c, 0xc7, 0x12,
+ 0xbb, 0x0a, 0x40, 0x71, 0xc0, 0x08, 0xfd, 0x5a, 0xde, 0xff, 0x70, 0xe5,
+ 0xde, 0x94, 0x39, 0x0f, 0x58, 0xe1, 0xfe, 0x88, 0x4b, 0x41, 0x96, 0xeb,
+};
+static const unsigned char kat2853_addinreseed[] = {0};
+static const unsigned char kat2853_addin0[] = {0};
+static const unsigned char kat2853_addin1[] = {0};
+static const unsigned char kat2853_retbits[] = {
+ 0xd9, 0xd0, 0xde, 0xf9, 0x80, 0x0d, 0xde, 0x19, 0xe1, 0x24, 0x05, 0xb9,
+ 0x20, 0xa6, 0x80, 0x60, 0x27, 0x15, 0xcc, 0x91, 0xc7, 0x40, 0x88, 0xf4,
+ 0x19, 0x7b, 0x2c, 0x1d, 0x60, 0xf0, 0xb3, 0x3d, 0x34, 0xcd, 0x05, 0x01,
+ 0x6f, 0xcb, 0x69, 0x91, 0x39, 0x40, 0x2c, 0xf4, 0xfd, 0x5b, 0x7f, 0xa2,
+ 0xd3, 0xd7, 0x44, 0xad, 0x56, 0x75, 0xec, 0x06, 0x1a, 0xdb, 0xfc, 0x93,
+ 0x79, 0xa4, 0xca, 0xdb,
+};
+static const struct drbg_kat_pr_false kat2853_t = {
+ 2, kat2853_entropyin, kat2853_nonce, kat2853_persstr,
+ kat2853_entropyinreseed, kat2853_addinreseed, kat2853_addin0,
+ kat2853_addin1, kat2853_retbits
+};
+static const struct drbg_kat kat2853 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2853_t
+};
+
+static const unsigned char kat2854_entropyin[] = {
+ 0xd4, 0x42, 0x89, 0x5e, 0x5f, 0x7b, 0x2a, 0x33, 0xde, 0x8c, 0xab, 0xe3,
+ 0x0e, 0xa2, 0xaa, 0xca, 0x3b, 0xd4, 0x13, 0xe6, 0x2f, 0x65, 0x14, 0xd0,
+ 0xe6, 0x50, 0x9a, 0xba, 0x81, 0xaa, 0x58, 0xf9, 0xfc, 0x7f, 0xa9, 0xde,
+ 0xb5, 0xb1, 0x0d, 0xc2, 0x75, 0xdf, 0x63, 0x83, 0xfc, 0x54, 0x90, 0x24,
+};
+static const unsigned char kat2854_nonce[] = {0};
+static const unsigned char kat2854_persstr[] = {
+ 0xe4, 0x32, 0xbe, 0x1e, 0xa0, 0x4e, 0x11, 0xe5, 0xef, 0x9d, 0x39, 0x89,
+ 0x2b, 0xbd, 0x38, 0xae, 0x2e, 0xa8, 0x99, 0x14, 0x38, 0x18, 0x1a, 0x34,
+ 0x28, 0x34, 0x85, 0x30, 0xec, 0x37, 0x7f, 0xb0, 0xd8, 0xa8, 0x3f, 0xbf,
+ 0xe0, 0xfb, 0x34, 0xec, 0x0e, 0xb1, 0xe6, 0x94, 0xd9, 0x1a, 0x5d, 0xa2,
+};
+static const unsigned char kat2854_entropyinreseed[] = {
+ 0xb5, 0xc6, 0x20, 0x1a, 0xd5, 0x05, 0x9f, 0xf6, 0x61, 0xc2, 0x73, 0x67,
+ 0xc5, 0x60, 0x02, 0x9f, 0x06, 0xcb, 0x93, 0x6c, 0x97, 0x0a, 0x74, 0x4e,
+ 0xa1, 0xac, 0xa4, 0x64, 0xb9, 0x03, 0xc0, 0x69, 0x88, 0xb4, 0x80, 0x00,
+ 0x46, 0x20, 0x8c, 0xf3, 0x65, 0x94, 0xd0, 0x6c, 0xa3, 0x97, 0x77, 0x35,
+};
+static const unsigned char kat2854_addinreseed[] = {0};
+static const unsigned char kat2854_addin0[] = {0};
+static const unsigned char kat2854_addin1[] = {0};
+static const unsigned char kat2854_retbits[] = {
+ 0x8e, 0xdb, 0xaf, 0xd5, 0x51, 0xfd, 0x28, 0xea, 0x37, 0x19, 0x0c, 0x6a,
+ 0x99, 0xb5, 0x48, 0x31, 0x89, 0x4a, 0xc5, 0x4c, 0x93, 0x4d, 0x01, 0xb6,
+ 0xfc, 0x3e, 0x43, 0x48, 0x4c, 0x87, 0xcd, 0x78, 0x19, 0x54, 0x72, 0xab,
+ 0x30, 0x44, 0xec, 0x99, 0xcc, 0x19, 0x74, 0xbe, 0x04, 0xe9, 0x0c, 0x23,
+ 0x3e, 0x02, 0xc8, 0x37, 0xbc, 0x5e, 0xaf, 0x42, 0x7a, 0x0f, 0xc0, 0xfd,
+ 0x38, 0xd3, 0x5f, 0x5e,
+};
+static const struct drbg_kat_pr_false kat2854_t = {
+ 3, kat2854_entropyin, kat2854_nonce, kat2854_persstr,
+ kat2854_entropyinreseed, kat2854_addinreseed, kat2854_addin0,
+ kat2854_addin1, kat2854_retbits
+};
+static const struct drbg_kat kat2854 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2854_t
+};
+
+static const unsigned char kat2855_entropyin[] = {
+ 0xe1, 0x1e, 0x6a, 0x3f, 0x6a, 0x33, 0xe0, 0x20, 0xcf, 0x04, 0x96, 0x5a,
+ 0xa4, 0x29, 0x94, 0xdd, 0x9c, 0x6d, 0x30, 0xcd, 0xec, 0x75, 0x8a, 0x2e,
+ 0x02, 0xca, 0x01, 0x4a, 0x6c, 0x48, 0xd5, 0xb6, 0x5f, 0xc0, 0x3a, 0x0c,
+ 0x25, 0x54, 0xa0, 0x30, 0x3f, 0xd6, 0x08, 0x5d, 0xf7, 0x8d, 0x54, 0xde,
+};
+static const unsigned char kat2855_nonce[] = {0};
+static const unsigned char kat2855_persstr[] = {
+ 0x5a, 0x4c, 0xad, 0x89, 0xf2, 0xd9, 0xb4, 0x0d, 0xb9, 0xcf, 0xe1, 0x2d,
+ 0x45, 0xed, 0x7f, 0x4c, 0x63, 0xe7, 0x65, 0xe2, 0x6c, 0x84, 0xae, 0x3c,
+ 0xe5, 0xfa, 0xc8, 0x44, 0xfe, 0x6b, 0x03, 0xa7, 0x38, 0x89, 0x0f, 0x21,
+ 0xfb, 0xb7, 0xf2, 0xd0, 0x9a, 0x56, 0xe0, 0x25, 0x2f, 0x52, 0xc5, 0x99,
+};
+static const unsigned char kat2855_entropyinreseed[] = {
+ 0xb8, 0x96, 0x15, 0x21, 0xb6, 0x78, 0xc4, 0xe2, 0x73, 0x7c, 0x6c, 0x62,
+ 0xa3, 0x19, 0x51, 0x01, 0x90, 0xfe, 0xe1, 0x4b, 0x79, 0x3a, 0xdb, 0x0b,
+ 0x4f, 0xe1, 0x13, 0xca, 0x9b, 0xf8, 0xc8, 0x6d, 0x28, 0x36, 0x6d, 0xf0,
+ 0xfe, 0x5f, 0x36, 0x13, 0x1b, 0x7d, 0xc1, 0xb0, 0x63, 0x7a, 0x70, 0x46,
+};
+static const unsigned char kat2855_addinreseed[] = {0};
+static const unsigned char kat2855_addin0[] = {0};
+static const unsigned char kat2855_addin1[] = {0};
+static const unsigned char kat2855_retbits[] = {
+ 0x14, 0x04, 0xfb, 0xbe, 0x62, 0xe0, 0x34, 0x63, 0xc4, 0x35, 0xc2, 0xb6,
+ 0x75, 0xf7, 0x6d, 0xbd, 0x22, 0xaf, 0x1b, 0x2f, 0xce, 0x2b, 0x6e, 0x94,
+ 0x9e, 0x2d, 0xf9, 0xef, 0xb8, 0xa3, 0xff, 0xe7, 0x38, 0xc3, 0xf7, 0x8f,
+ 0x9c, 0x85, 0x2a, 0x3c, 0xb1, 0xf4, 0x13, 0x12, 0x2d, 0x42, 0x76, 0xd1,
+ 0x85, 0xf1, 0x59, 0x9e, 0xe6, 0xcb, 0x7f, 0x21, 0x8c, 0x23, 0xb1, 0xa9,
+ 0xc9, 0xe0, 0xe8, 0x0c,
+};
+static const struct drbg_kat_pr_false kat2855_t = {
+ 4, kat2855_entropyin, kat2855_nonce, kat2855_persstr,
+ kat2855_entropyinreseed, kat2855_addinreseed, kat2855_addin0,
+ kat2855_addin1, kat2855_retbits
+};
+static const struct drbg_kat kat2855 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2855_t
+};
+
+static const unsigned char kat2856_entropyin[] = {
+ 0x04, 0x30, 0xe1, 0x1d, 0x66, 0x4a, 0xd3, 0xcf, 0x63, 0xee, 0x3e, 0xbd,
+ 0xf5, 0x5c, 0x27, 0xe7, 0xb3, 0xde, 0xb7, 0xfb, 0xe7, 0xa9, 0x74, 0xe4,
+ 0x0e, 0x89, 0x43, 0x7b, 0x7f, 0xfd, 0x30, 0xc2, 0x3a, 0xe3, 0xe0, 0x04,
+ 0x5a, 0x53, 0x68, 0x1b, 0x82, 0x89, 0x91, 0xa6, 0x90, 0x48, 0x86, 0xfa,
+};
+static const unsigned char kat2856_nonce[] = {0};
+static const unsigned char kat2856_persstr[] = {
+ 0xec, 0x0f, 0xf9, 0x52, 0xdd, 0x69, 0x26, 0xa4, 0xe8, 0x58, 0xe8, 0x13,
+ 0xc4, 0x89, 0xc9, 0xcd, 0x13, 0xcd, 0xbc, 0xc3, 0x09, 0x2e, 0xcb, 0x30,
+ 0x05, 0x4a, 0xf7, 0x8c, 0x29, 0x74, 0xf3, 0xe8, 0xa1, 0x9a, 0x2d, 0x13,
+ 0xe8, 0x22, 0xde, 0xf7, 0xfa, 0x66, 0xdc, 0x77, 0x7b, 0x07, 0x2d, 0x2e,
+};
+static const unsigned char kat2856_entropyinreseed[] = {
+ 0x3a, 0x02, 0xe3, 0x81, 0xd3, 0x79, 0xc9, 0xde, 0x62, 0x4e, 0xb5, 0x3a,
+ 0x8b, 0xae, 0xd2, 0xd9, 0xfe, 0x00, 0xa5, 0xe0, 0xd0, 0xbf, 0xba, 0x5b,
+ 0x8d, 0x75, 0x43, 0x6e, 0xc7, 0x2c, 0x56, 0x36, 0xb0, 0x90, 0x0b, 0x52,
+ 0x50, 0x0c, 0xb2, 0x44, 0x08, 0x8c, 0x97, 0x75, 0x45, 0x10, 0xdd, 0x8a,
+};
+static const unsigned char kat2856_addinreseed[] = {0};
+static const unsigned char kat2856_addin0[] = {0};
+static const unsigned char kat2856_addin1[] = {0};
+static const unsigned char kat2856_retbits[] = {
+ 0x85, 0x16, 0x89, 0xef, 0x8c, 0xd6, 0x08, 0x00, 0xe5, 0x50, 0xc6, 0x9a,
+ 0x9f, 0x1a, 0xde, 0xc3, 0x1d, 0x75, 0x20, 0x8f, 0xf4, 0xb3, 0x95, 0x0a,
+ 0xa0, 0xfd, 0x8b, 0x49, 0x65, 0x6a, 0x54, 0xce, 0xef, 0xf9, 0x25, 0x07,
+ 0x52, 0xb5, 0x64, 0xcc, 0x8e, 0x92, 0x39, 0x75, 0xdb, 0x08, 0xeb, 0x04,
+ 0x79, 0xb1, 0x5d, 0x2a, 0xd7, 0x7e, 0xc9, 0x33, 0x1f, 0x89, 0xd7, 0xe7,
+ 0x62, 0x18, 0x51, 0xe9,
+};
+static const struct drbg_kat_pr_false kat2856_t = {
+ 5, kat2856_entropyin, kat2856_nonce, kat2856_persstr,
+ kat2856_entropyinreseed, kat2856_addinreseed, kat2856_addin0,
+ kat2856_addin1, kat2856_retbits
+};
+static const struct drbg_kat kat2856 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2856_t
+};
+
+static const unsigned char kat2857_entropyin[] = {
+ 0x55, 0x48, 0x8d, 0x38, 0x83, 0xe3, 0x7a, 0x2f, 0xd1, 0x16, 0xaf, 0x22,
+ 0x4b, 0xa4, 0xfb, 0xf5, 0x44, 0x89, 0x69, 0xac, 0x05, 0xe5, 0x56, 0xbb,
+ 0x87, 0x72, 0x30, 0x6d, 0xca, 0xea, 0x51, 0x84, 0xbe, 0x73, 0xdf, 0x55,
+ 0x45, 0xc2, 0x56, 0xc1, 0x77, 0x03, 0x8d, 0x9b, 0x72, 0x48, 0x92, 0x4a,
+};
+static const unsigned char kat2857_nonce[] = {0};
+static const unsigned char kat2857_persstr[] = {
+ 0x5f, 0x01, 0xf6, 0x6a, 0x7e, 0x69, 0x87, 0xf9, 0x01, 0x81, 0x97, 0x09,
+ 0x64, 0x04, 0xe7, 0x4e, 0x29, 0xa9, 0x28, 0x57, 0x31, 0xc3, 0x58, 0x6a,
+ 0xf4, 0xf3, 0x0e, 0xd5, 0xf1, 0x48, 0x8e, 0x6c, 0xa6, 0x1a, 0xf4, 0x9c,
+ 0x46, 0xb8, 0x00, 0xa6, 0x4a, 0xe0, 0xc4, 0x59, 0xb8, 0xff, 0xf5, 0x7a,
+};
+static const unsigned char kat2857_entropyinreseed[] = {
+ 0x6f, 0x41, 0x2c, 0x13, 0x8b, 0x00, 0x14, 0xb8, 0xbc, 0x93, 0xc2, 0x8e,
+ 0x28, 0x7a, 0x61, 0x11, 0x1b, 0xea, 0xa8, 0xbf, 0x0b, 0xc1, 0x87, 0xa3,
+ 0x40, 0x10, 0x22, 0x08, 0x3b, 0xa3, 0xd8, 0xc0, 0x1b, 0x87, 0x98, 0xda,
+ 0xac, 0xbd, 0x8d, 0xfd, 0xb1, 0xa6, 0xff, 0xc2, 0x2b, 0xf0, 0x52, 0xff,
+};
+static const unsigned char kat2857_addinreseed[] = {0};
+static const unsigned char kat2857_addin0[] = {0};
+static const unsigned char kat2857_addin1[] = {0};
+static const unsigned char kat2857_retbits[] = {
+ 0x19, 0x42, 0x51, 0xba, 0x61, 0x1a, 0x8c, 0x56, 0x7e, 0x1a, 0x1b, 0x1e,
+ 0xe5, 0xf9, 0x49, 0x84, 0xe2, 0xb1, 0xbd, 0x47, 0x58, 0xa6, 0x88, 0x17,
+ 0x53, 0x6b, 0x1c, 0x21, 0xae, 0xa3, 0x03, 0x55, 0x17, 0xca, 0x2b, 0x6f,
+ 0x61, 0xa0, 0x01, 0x86, 0xd3, 0xee, 0x3c, 0x72, 0x30, 0xfc, 0x39, 0x3a,
+ 0x8d, 0x40, 0x00, 0x52, 0x4b, 0x50, 0x85, 0x43, 0x12, 0x51, 0x98, 0xc9,
+ 0xe8, 0x46, 0x4b, 0xd4,
+};
+static const struct drbg_kat_pr_false kat2857_t = {
+ 6, kat2857_entropyin, kat2857_nonce, kat2857_persstr,
+ kat2857_entropyinreseed, kat2857_addinreseed, kat2857_addin0,
+ kat2857_addin1, kat2857_retbits
+};
+static const struct drbg_kat kat2857 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2857_t
+};
+
+static const unsigned char kat2858_entropyin[] = {
+ 0x90, 0x90, 0x58, 0xc5, 0x37, 0xb8, 0x6e, 0x34, 0x80, 0x39, 0x6e, 0x17,
+ 0x99, 0xfa, 0x9b, 0xdb, 0xb4, 0x27, 0x3b, 0x71, 0x23, 0xd6, 0xba, 0x3d,
+ 0x79, 0xc8, 0x5b, 0x98, 0x71, 0x95, 0x23, 0x68, 0x63, 0x1c, 0x85, 0xc9,
+ 0xb3, 0xd1, 0x7e, 0x75, 0xe3, 0xe6, 0xb2, 0x3b, 0xfa, 0xd6, 0x66, 0x58,
+};
+static const unsigned char kat2858_nonce[] = {0};
+static const unsigned char kat2858_persstr[] = {
+ 0xd0, 0x24, 0x48, 0xc0, 0x61, 0x18, 0xec, 0x9a, 0x2b, 0x0c, 0xc6, 0x86,
+ 0x11, 0x4a, 0xfd, 0xba, 0x9b, 0x30, 0x41, 0xe4, 0xb9, 0x2a, 0xb9, 0x79,
+ 0x64, 0xcb, 0x6d, 0x30, 0xf0, 0xbf, 0x8c, 0x13, 0xe2, 0xb7, 0x1d, 0x6a,
+ 0x04, 0x3e, 0x64, 0x6d, 0x41, 0x34, 0x44, 0x05, 0x69, 0x64, 0xff, 0x7a,
+};
+static const unsigned char kat2858_entropyinreseed[] = {
+ 0x96, 0x91, 0x9c, 0x4a, 0xef, 0x8d, 0x31, 0x81, 0xdc, 0x51, 0x84, 0x37,
+ 0x96, 0x91, 0x09, 0xa5, 0x0a, 0xd6, 0xe7, 0x61, 0xc8, 0x69, 0x30, 0x61,
+ 0xff, 0xa7, 0x1c, 0x45, 0xbc, 0x12, 0xbd, 0x96, 0x86, 0xd7, 0x84, 0x41,
+ 0x59, 0x8e, 0xd4, 0x54, 0x18, 0x3e, 0x5d, 0xe1, 0x2d, 0x9d, 0x23, 0x5a,
+};
+static const unsigned char kat2858_addinreseed[] = {0};
+static const unsigned char kat2858_addin0[] = {0};
+static const unsigned char kat2858_addin1[] = {0};
+static const unsigned char kat2858_retbits[] = {
+ 0x7b, 0x97, 0x74, 0x0b, 0xeb, 0xdd, 0x21, 0x6d, 0x43, 0x60, 0x34, 0x40,
+ 0xd0, 0xa3, 0x99, 0xf8, 0x36, 0xf5, 0x80, 0xcc, 0x8d, 0x13, 0x29, 0xcd,
+ 0x65, 0x3c, 0x5a, 0x7a, 0xc7, 0x87, 0x36, 0x6d, 0x98, 0x0d, 0x7a, 0xd5,
+ 0xb7, 0x36, 0xb8, 0x67, 0x32, 0x56, 0x80, 0xe2, 0xf8, 0xfa, 0x71, 0x35,
+ 0x30, 0x8e, 0x73, 0xe1, 0x85, 0xd4, 0x76, 0x23, 0xa3, 0xfc, 0x46, 0x83,
+ 0x55, 0x7b, 0xee, 0x8e,
+};
+static const struct drbg_kat_pr_false kat2858_t = {
+ 7, kat2858_entropyin, kat2858_nonce, kat2858_persstr,
+ kat2858_entropyinreseed, kat2858_addinreseed, kat2858_addin0,
+ kat2858_addin1, kat2858_retbits
+};
+static const struct drbg_kat kat2858 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2858_t
+};
+
+static const unsigned char kat2859_entropyin[] = {
+ 0x2b, 0xdb, 0x7d, 0x32, 0xeb, 0x81, 0xdb, 0x9d, 0x9c, 0xf1, 0xe4, 0xbd,
+ 0xc4, 0xe0, 0x2d, 0xe2, 0x77, 0xf7, 0x4e, 0xfd, 0xec, 0x24, 0x1b, 0x2f,
+ 0x28, 0x7b, 0xc8, 0x23, 0x62, 0xbe, 0x45, 0x33, 0xe4, 0x15, 0x17, 0x58,
+ 0xbd, 0x73, 0x7d, 0x57, 0x5a, 0x22, 0x68, 0x40, 0xfe, 0x48, 0xd8, 0x37,
+};
+static const unsigned char kat2859_nonce[] = {0};
+static const unsigned char kat2859_persstr[] = {
+ 0xad, 0x07, 0xfa, 0x56, 0xa9, 0xc3, 0x65, 0xbf, 0x4f, 0x16, 0xaa, 0x90,
+ 0x33, 0xf7, 0x1b, 0x4c, 0xf2, 0x10, 0xd7, 0xd8, 0x3c, 0xcf, 0xa7, 0x48,
+ 0x5d, 0x4c, 0xca, 0x10, 0x5a, 0xa0, 0x14, 0x62, 0x45, 0x06, 0x13, 0xa7,
+ 0xa9, 0xe2, 0x60, 0x0a, 0x18, 0x72, 0xb2, 0x92, 0xc0, 0xe6, 0xf4, 0xb3,
+};
+static const unsigned char kat2859_entropyinreseed[] = {
+ 0x07, 0x29, 0xf2, 0xa2, 0xf8, 0x4e, 0xa9, 0x02, 0xcb, 0x6e, 0x84, 0xa8,
+ 0xfa, 0x6a, 0xa4, 0x0e, 0x24, 0xc6, 0x4a, 0x1b, 0x67, 0xa0, 0x60, 0xdd,
+ 0x47, 0xa1, 0x17, 0xcc, 0x85, 0x4d, 0x5c, 0xa0, 0x06, 0xba, 0xd5, 0x21,
+ 0x8e, 0x64, 0x00, 0x5b, 0x1b, 0xcb, 0x88, 0x80, 0xa0, 0x20, 0x7d, 0x7c,
+};
+static const unsigned char kat2859_addinreseed[] = {0};
+static const unsigned char kat2859_addin0[] = {0};
+static const unsigned char kat2859_addin1[] = {0};
+static const unsigned char kat2859_retbits[] = {
+ 0x58, 0xf5, 0x6e, 0x07, 0x8b, 0x05, 0xae, 0x56, 0x56, 0x68, 0x00, 0x9e,
+ 0xc2, 0x71, 0x5b, 0x9a, 0x6f, 0x14, 0x53, 0x1c, 0x2b, 0x96, 0x5b, 0x7c,
+ 0xea, 0xbb, 0x44, 0x78, 0xcc, 0xe2, 0xdb, 0x9b, 0xbc, 0x86, 0x1e, 0x70,
+ 0xd0, 0xf8, 0x03, 0x73, 0xeb, 0xf3, 0xf0, 0xfa, 0x8a, 0x2e, 0x90, 0xea,
+ 0x63, 0x66, 0xb0, 0x25, 0xa1, 0x41, 0xd9, 0xc7, 0xbd, 0xfa, 0xed, 0xa1,
+ 0x09, 0xca, 0xbb, 0x90,
+};
+static const struct drbg_kat_pr_false kat2859_t = {
+ 8, kat2859_entropyin, kat2859_nonce, kat2859_persstr,
+ kat2859_entropyinreseed, kat2859_addinreseed, kat2859_addin0,
+ kat2859_addin1, kat2859_retbits
+};
+static const struct drbg_kat kat2859 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2859_t
+};
+
+static const unsigned char kat2860_entropyin[] = {
+ 0x5e, 0x42, 0xe2, 0x37, 0x5f, 0xc5, 0x72, 0xe1, 0x4f, 0x86, 0x30, 0x9c,
+ 0x72, 0x46, 0xa1, 0x7e, 0xea, 0xa5, 0xb7, 0x2c, 0xe0, 0x53, 0x87, 0xb0,
+ 0x42, 0x67, 0x3e, 0x75, 0xb5, 0x54, 0x06, 0x69, 0x62, 0x7a, 0xaa, 0x8f,
+ 0x43, 0x06, 0xd3, 0x05, 0x09, 0x30, 0xf8, 0xb0, 0xdc, 0x72, 0x7d, 0x55,
+};
+static const unsigned char kat2860_nonce[] = {0};
+static const unsigned char kat2860_persstr[] = {
+ 0x90, 0xb2, 0x48, 0x09, 0x69, 0xb1, 0xbf, 0x80, 0x5a, 0x2c, 0x8c, 0x75,
+ 0x1b, 0xd7, 0x62, 0x29, 0xca, 0xf5, 0xb6, 0x7b, 0xf0, 0x55, 0xf4, 0xa5,
+ 0x19, 0xba, 0xdc, 0xb8, 0xe8, 0x8e, 0xb0, 0x05, 0x8f, 0x67, 0x2f, 0x6c,
+ 0xd0, 0x7e, 0xed, 0x9d, 0x40, 0x6c, 0x17, 0x09, 0xf9, 0x3a, 0x8a, 0x4c,
+};
+static const unsigned char kat2860_entropyinreseed[] = {
+ 0x61, 0xb4, 0xfc, 0x67, 0xfc, 0xce, 0x7d, 0x68, 0xc4, 0xac, 0x4c, 0x5f,
+ 0x54, 0xea, 0x8c, 0xfa, 0x96, 0x67, 0xf5, 0x83, 0x75, 0xfd, 0xc4, 0x74,
+ 0xa0, 0xd7, 0x64, 0x0a, 0xc5, 0x38, 0xd6, 0xcb, 0xe2, 0x51, 0x7e, 0xc0,
+ 0x99, 0x7d, 0xec, 0x62, 0x66, 0x9c, 0x19, 0x85, 0xb8, 0x4c, 0x45, 0x78,
+};
+static const unsigned char kat2860_addinreseed[] = {0};
+static const unsigned char kat2860_addin0[] = {0};
+static const unsigned char kat2860_addin1[] = {0};
+static const unsigned char kat2860_retbits[] = {
+ 0x96, 0x05, 0xd5, 0x38, 0x01, 0x60, 0xc7, 0x54, 0xe4, 0x3e, 0xd8, 0xca,
+ 0xa5, 0xb5, 0xbd, 0x2d, 0x9c, 0xd9, 0x54, 0xea, 0x0c, 0x1c, 0x10, 0xeb,
+ 0x02, 0xc6, 0x49, 0xb0, 0xaa, 0x84, 0x63, 0xba, 0xda, 0xf3, 0x5a, 0x9e,
+ 0xf4, 0xb2, 0x34, 0x1b, 0x1a, 0x16, 0xd4, 0x13, 0x22, 0x4f, 0xe8, 0x03,
+ 0xfe, 0x99, 0x7d, 0x8b, 0xa4, 0xfc, 0x58, 0xea, 0x52, 0x54, 0xb4, 0xd2,
+ 0x8d, 0x11, 0x6e, 0x3f,
+};
+static const struct drbg_kat_pr_false kat2860_t = {
+ 9, kat2860_entropyin, kat2860_nonce, kat2860_persstr,
+ kat2860_entropyinreseed, kat2860_addinreseed, kat2860_addin0,
+ kat2860_addin1, kat2860_retbits
+};
+static const struct drbg_kat kat2860 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2860_t
+};
+
+static const unsigned char kat2861_entropyin[] = {
+ 0x3a, 0x51, 0xed, 0xf5, 0xf6, 0x90, 0xb0, 0x82, 0x4a, 0x0a, 0xb3, 0xb8,
+ 0x74, 0xb3, 0x84, 0x72, 0xdc, 0x72, 0x79, 0xaf, 0x5f, 0x54, 0x87, 0x5a,
+ 0x49, 0x73, 0x35, 0x5c, 0x1f, 0x37, 0xa9, 0x88, 0xe6, 0x7c, 0x26, 0xc6,
+ 0xda, 0xf2, 0x8e, 0xa4, 0x3e, 0x70, 0x01, 0x74, 0xfa, 0xe5, 0x4d, 0x2e,
+};
+static const unsigned char kat2861_nonce[] = {0};
+static const unsigned char kat2861_persstr[] = {
+ 0xfc, 0xa8, 0xe0, 0xf6, 0xe2, 0xab, 0x70, 0x68, 0x5c, 0xc0, 0xca, 0x05,
+ 0xa6, 0xfb, 0xa7, 0xe6, 0x66, 0x87, 0x0c, 0x98, 0x63, 0xac, 0xe0, 0xa5,
+ 0xd5, 0x01, 0x1a, 0x28, 0x7e, 0x92, 0x76, 0xc0, 0x72, 0xbb, 0x81, 0x0b,
+ 0xf3, 0xcd, 0x86, 0x53, 0xd2, 0xb5, 0xc8, 0x34, 0x5d, 0xf2, 0x2c, 0xfa,
+};
+static const unsigned char kat2861_entropyinreseed[] = {
+ 0x7d, 0x08, 0x03, 0x60, 0x7d, 0x7a, 0xd2, 0xbf, 0xda, 0xbc, 0xd8, 0x5f,
+ 0xa2, 0x65, 0x32, 0xa0, 0x9a, 0x15, 0xec, 0x34, 0xe7, 0xa4, 0x59, 0xcd,
+ 0x2e, 0x39, 0xb9, 0x45, 0x26, 0xa0, 0x90, 0x94, 0x93, 0xf2, 0xa6, 0xb1,
+ 0xcb, 0x5b, 0xde, 0xc6, 0xc8, 0xa8, 0xe2, 0x29, 0xac, 0x69, 0xd5, 0x91,
+};
+static const unsigned char kat2861_addinreseed[] = {0};
+static const unsigned char kat2861_addin0[] = {0};
+static const unsigned char kat2861_addin1[] = {0};
+static const unsigned char kat2861_retbits[] = {
+ 0x21, 0xb9, 0x35, 0x51, 0xa1, 0x27, 0x57, 0xb4, 0x3f, 0x38, 0x41, 0x92,
+ 0xd2, 0x4e, 0xe6, 0x4e, 0xb5, 0x99, 0x77, 0x9c, 0x29, 0x88, 0xa0, 0x0b,
+ 0xe9, 0x2e, 0x31, 0xde, 0x79, 0x86, 0x23, 0x43, 0xce, 0x1a, 0xa9, 0xcc,
+ 0x07, 0x4d, 0xe6, 0x2d, 0x43, 0x83, 0x84, 0x8b, 0xb5, 0x26, 0x1c, 0xcb,
+ 0x8d, 0x73, 0xa2, 0xf7, 0xba, 0x91, 0x4c, 0xbe, 0xfa, 0xd8, 0xf0, 0x92,
+ 0xa8, 0xdb, 0xf9, 0xdb,
+};
+static const struct drbg_kat_pr_false kat2861_t = {
+ 10, kat2861_entropyin, kat2861_nonce, kat2861_persstr,
+ kat2861_entropyinreseed, kat2861_addinreseed, kat2861_addin0,
+ kat2861_addin1, kat2861_retbits
+};
+static const struct drbg_kat kat2861 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2861_t
+};
+
+static const unsigned char kat2862_entropyin[] = {
+ 0xda, 0xb7, 0xa3, 0xaa, 0x53, 0xf8, 0x52, 0x73, 0xa9, 0x00, 0x15, 0xd3,
+ 0x2f, 0xb3, 0x99, 0x3f, 0xab, 0xd8, 0x24, 0x4f, 0x12, 0x35, 0x7f, 0x04,
+ 0xf2, 0xac, 0x16, 0xfc, 0xcc, 0xd3, 0x53, 0xc5, 0xe2, 0xd1, 0xc7, 0x02,
+ 0x8e, 0xff, 0x32, 0x2a, 0x8b, 0x80, 0x86, 0x34, 0xdb, 0xc6, 0x83, 0xb8,
+};
+static const unsigned char kat2862_nonce[] = {0};
+static const unsigned char kat2862_persstr[] = {
+ 0xb7, 0x4d, 0x00, 0xce, 0x34, 0x6d, 0x1a, 0xb7, 0x29, 0xd5, 0x43, 0xd8,
+ 0x2c, 0x33, 0x17, 0xf4, 0xdd, 0x3c, 0x6f, 0x6f, 0xee, 0x39, 0xd4, 0x74,
+ 0xe3, 0x9b, 0x79, 0xd6, 0xc1, 0xe0, 0xe1, 0x5f, 0xf2, 0x42, 0x1d, 0xf2,
+ 0x0f, 0x02, 0x67, 0x72, 0x9e, 0xed, 0x34, 0x1a, 0x8d, 0x06, 0x8d, 0x67,
+};
+static const unsigned char kat2862_entropyinreseed[] = {
+ 0x4d, 0xa7, 0x94, 0xec, 0x63, 0x5d, 0xbd, 0x72, 0xca, 0x89, 0x7c, 0x4a,
+ 0x5c, 0x3a, 0x4b, 0x08, 0xee, 0x0b, 0xdf, 0xed, 0x89, 0xfc, 0x6e, 0x52,
+ 0xb6, 0x95, 0xf3, 0x2f, 0x8a, 0xc5, 0xb9, 0x78, 0xc1, 0xed, 0xd4, 0xb0,
+ 0x43, 0x2b, 0x77, 0xa2, 0x0f, 0xb9, 0x12, 0x50, 0x32, 0x53, 0x04, 0x57,
+};
+static const unsigned char kat2862_addinreseed[] = {0};
+static const unsigned char kat2862_addin0[] = {0};
+static const unsigned char kat2862_addin1[] = {0};
+static const unsigned char kat2862_retbits[] = {
+ 0x22, 0x38, 0xad, 0xc1, 0x13, 0x63, 0xa4, 0xb0, 0x33, 0xed, 0x40, 0x3c,
+ 0xca, 0x99, 0x16, 0x29, 0x3d, 0xe6, 0x54, 0xa2, 0x0b, 0xfa, 0x29, 0xf6,
+ 0x3e, 0x14, 0x58, 0x24, 0x0b, 0xba, 0x62, 0x12, 0xff, 0x91, 0xc5, 0x0a,
+ 0x3f, 0xd0, 0x27, 0x53, 0x3f, 0x45, 0x24, 0x0c, 0xe3, 0x12, 0xd7, 0x5d,
+ 0x33, 0x5f, 0xaa, 0x2e, 0xba, 0x68, 0x77, 0x8c, 0xe9, 0x87, 0xd7, 0x8e,
+ 0x0d, 0xbe, 0x8c, 0xdc,
+};
+static const struct drbg_kat_pr_false kat2862_t = {
+ 11, kat2862_entropyin, kat2862_nonce, kat2862_persstr,
+ kat2862_entropyinreseed, kat2862_addinreseed, kat2862_addin0,
+ kat2862_addin1, kat2862_retbits
+};
+static const struct drbg_kat kat2862 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2862_t
+};
+
+static const unsigned char kat2863_entropyin[] = {
+ 0x56, 0xb2, 0xa2, 0xbc, 0x4c, 0xcd, 0x94, 0x2f, 0x9b, 0x73, 0x94, 0x21,
+ 0x5d, 0xbb, 0x64, 0x2b, 0x8d, 0x36, 0x37, 0xbf, 0x43, 0xfe, 0x9d, 0x44,
+ 0x29, 0xf8, 0xee, 0xe1, 0x29, 0x76, 0x89, 0xe1, 0x8a, 0x7d, 0x65, 0xff,
+ 0x1a, 0xed, 0x2a, 0xa5, 0x72, 0x9d, 0x0d, 0x7b, 0x3c, 0x25, 0x57, 0x41,
+};
+static const unsigned char kat2863_nonce[] = {0};
+static const unsigned char kat2863_persstr[] = {
+ 0x8f, 0xae, 0xe0, 0xac, 0xde, 0x0e, 0x51, 0xaa, 0x62, 0xfc, 0xa5, 0xae,
+ 0x4c, 0x1e, 0x13, 0x1e, 0x92, 0x8e, 0xd1, 0xdc, 0xc1, 0x83, 0xd0, 0x05,
+ 0x7e, 0x34, 0x05, 0x45, 0x56, 0xe5, 0x2d, 0x2d, 0xcc, 0x60, 0x9b, 0x3f,
+ 0x24, 0x30, 0x4e, 0xb8, 0xfb, 0x6d, 0x8a, 0x28, 0xd1, 0xb5, 0x1f, 0xb1,
+};
+static const unsigned char kat2863_entropyinreseed[] = {
+ 0x81, 0x0b, 0x74, 0x6a, 0xc7, 0x14, 0x45, 0xd2, 0x9f, 0xec, 0x21, 0x34,
+ 0x1f, 0x86, 0x8f, 0xa8, 0x3f, 0x77, 0xb4, 0xf2, 0x6a, 0xba, 0xf6, 0x0a,
+ 0xf4, 0x57, 0xca, 0x7a, 0x37, 0xb2, 0x39, 0xca, 0x7a, 0x71, 0xcf, 0x28,
+ 0x7c, 0xec, 0xbf, 0x2c, 0xc1, 0x46, 0x54, 0xcd, 0xf7, 0xae, 0x3e, 0xd2,
+};
+static const unsigned char kat2863_addinreseed[] = {0};
+static const unsigned char kat2863_addin0[] = {0};
+static const unsigned char kat2863_addin1[] = {0};
+static const unsigned char kat2863_retbits[] = {
+ 0x0b, 0xd2, 0x1c, 0x8d, 0xe7, 0xb4, 0x55, 0xc2, 0x29, 0x94, 0x2c, 0x5d,
+ 0x64, 0x76, 0x5c, 0x2e, 0x6d, 0x70, 0x43, 0x35, 0x9e, 0x06, 0x53, 0x24,
+ 0x33, 0x8d, 0xc7, 0x4b, 0x21, 0xa8, 0xbc, 0x16, 0x31, 0x10, 0xd9, 0xa7,
+ 0x1d, 0xb8, 0x71, 0xa1, 0xaa, 0x2e, 0xa1, 0xf3, 0x87, 0x37, 0xd0, 0x1a,
+ 0x39, 0x8b, 0x7c, 0x9b, 0xd7, 0x61, 0x2a, 0x5d, 0xd1, 0xc0, 0x65, 0x7c,
+ 0x21, 0xed, 0xe8, 0xe1,
+};
+static const struct drbg_kat_pr_false kat2863_t = {
+ 12, kat2863_entropyin, kat2863_nonce, kat2863_persstr,
+ kat2863_entropyinreseed, kat2863_addinreseed, kat2863_addin0,
+ kat2863_addin1, kat2863_retbits
+};
+static const struct drbg_kat kat2863 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2863_t
+};
+
+static const unsigned char kat2864_entropyin[] = {
+ 0x89, 0x12, 0xb0, 0xee, 0x4e, 0x8d, 0xca, 0x39, 0x70, 0x1f, 0x10, 0x66,
+ 0xe6, 0x8f, 0xdf, 0xaa, 0xb1, 0xbf, 0xe5, 0xe7, 0x66, 0x38, 0xc0, 0x79,
+ 0x12, 0x1c, 0x7a, 0x83, 0x3b, 0x4c, 0x38, 0x0e, 0x4f, 0xb9, 0x86, 0xa3,
+ 0xa6, 0x05, 0x1e, 0xe0, 0xd1, 0x1c, 0x6a, 0xfe, 0x85, 0x39, 0x7e, 0xae,
+};
+static const unsigned char kat2864_nonce[] = {0};
+static const unsigned char kat2864_persstr[] = {
+ 0xb3, 0xf9, 0x6e, 0x51, 0x88, 0x2e, 0xef, 0xcb, 0xec, 0x18, 0x4e, 0xf9,
+ 0xa4, 0x29, 0x7d, 0x5d, 0x5b, 0xb0, 0xa0, 0x0e, 0x87, 0x35, 0xb8, 0x63,
+ 0x30, 0x56, 0x59, 0xd5, 0x2d, 0x0e, 0x9d, 0x69, 0xc1, 0xc8, 0xf2, 0x89,
+ 0x4b, 0x3b, 0xce, 0x84, 0xbd, 0x99, 0x4b, 0x7a, 0x4d, 0xa1, 0xa7, 0x52,
+};
+static const unsigned char kat2864_entropyinreseed[] = {
+ 0x93, 0x5a, 0xa4, 0x5b, 0x8a, 0xb8, 0x30, 0xf6, 0xdb, 0x7b, 0x41, 0xe0,
+ 0xee, 0x81, 0x45, 0x54, 0x0c, 0x59, 0x4d, 0xc4, 0xc5, 0x0e, 0xfc, 0xdf,
+ 0xa0, 0x7f, 0xbe, 0x91, 0x58, 0x16, 0x2d, 0x77, 0xa5, 0xd3, 0xdd, 0xe9,
+ 0x28, 0x2d, 0x4a, 0x0f, 0x63, 0xc3, 0xcf, 0x5c, 0xbb, 0xb3, 0x9a, 0x4a,
+};
+static const unsigned char kat2864_addinreseed[] = {0};
+static const unsigned char kat2864_addin0[] = {0};
+static const unsigned char kat2864_addin1[] = {0};
+static const unsigned char kat2864_retbits[] = {
+ 0x2e, 0x19, 0x96, 0xd9, 0xe3, 0x32, 0xef, 0x87, 0x01, 0x72, 0xea, 0x59,
+ 0x80, 0xe0, 0x38, 0x20, 0x14, 0xbf, 0x01, 0x60, 0x05, 0xed, 0x5a, 0xb4,
+ 0x68, 0x96, 0x63, 0xcd, 0x01, 0x94, 0x09, 0xfd, 0xe4, 0xee, 0x4c, 0x80,
+ 0x26, 0xa0, 0xfd, 0x19, 0x07, 0x9f, 0xcb, 0xdb, 0xff, 0xd1, 0x2c, 0x21,
+ 0x35, 0x61, 0xdf, 0xce, 0xbb, 0x66, 0xe2, 0x47, 0xa9, 0xf3, 0xce, 0x1e,
+ 0xaf, 0xa9, 0xf4, 0xbb,
+};
+static const struct drbg_kat_pr_false kat2864_t = {
+ 13, kat2864_entropyin, kat2864_nonce, kat2864_persstr,
+ kat2864_entropyinreseed, kat2864_addinreseed, kat2864_addin0,
+ kat2864_addin1, kat2864_retbits
+};
+static const struct drbg_kat kat2864 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2864_t
+};
+
+static const unsigned char kat2865_entropyin[] = {
+ 0xde, 0x1e, 0x4d, 0xa1, 0xb1, 0x75, 0x5d, 0x0a, 0x9d, 0x4e, 0x8c, 0x9d,
+ 0x42, 0x71, 0xd0, 0xe2, 0x1c, 0x1e, 0x47, 0x30, 0xeb, 0xd4, 0x31, 0x67,
+ 0x6e, 0xf5, 0x75, 0x3e, 0x9e, 0x4d, 0x87, 0x79, 0x37, 0xc7, 0x89, 0x36,
+ 0xa6, 0xf0, 0xe0, 0xa9, 0xe5, 0xe8, 0x4d, 0x87, 0xf1, 0xac, 0x8f, 0xea,
+};
+static const unsigned char kat2865_nonce[] = {0};
+static const unsigned char kat2865_persstr[] = {
+ 0xe7, 0xa4, 0x92, 0xe0, 0x6f, 0x20, 0x79, 0xeb, 0x64, 0x28, 0xf4, 0xd3,
+ 0x9f, 0xb1, 0x8a, 0xa0, 0xec, 0xe5, 0xd1, 0xed, 0xc5, 0xf2, 0xe1, 0x40,
+ 0x37, 0x37, 0xbf, 0x6a, 0x13, 0x34, 0xff, 0x7f, 0x46, 0xcc, 0xb5, 0x76,
+ 0x90, 0xed, 0x5b, 0x06, 0xe0, 0x7b, 0x10, 0x90, 0xef, 0xde, 0x50, 0x5d,
+};
+static const unsigned char kat2865_entropyinreseed[] = {
+ 0x17, 0x83, 0x7f, 0xdc, 0x7d, 0x56, 0x00, 0xfa, 0x48, 0x7f, 0xa0, 0x73,
+ 0x31, 0xc4, 0xdb, 0x6e, 0x3d, 0x65, 0xd5, 0x22, 0x53, 0x7a, 0xae, 0x07,
+ 0x15, 0xa5, 0x93, 0x6f, 0x5c, 0xb8, 0x19, 0x53, 0x96, 0x5f, 0xdd, 0xa8,
+ 0x2e, 0x5f, 0x2b, 0x0a, 0x1f, 0x20, 0xdc, 0x8b, 0xeb, 0x76, 0xbe, 0xca,
+};
+static const unsigned char kat2865_addinreseed[] = {0};
+static const unsigned char kat2865_addin0[] = {0};
+static const unsigned char kat2865_addin1[] = {0};
+static const unsigned char kat2865_retbits[] = {
+ 0x2c, 0xf0, 0xd9, 0xcf, 0xb6, 0x02, 0x34, 0xb2, 0x30, 0x86, 0xdc, 0x16,
+ 0x49, 0xe6, 0xfa, 0x99, 0xc4, 0x10, 0x4d, 0xe9, 0x85, 0x3d, 0x19, 0x50,
+ 0x81, 0x05, 0x53, 0x5c, 0x96, 0x04, 0x68, 0x77, 0x7a, 0x93, 0x65, 0x43,
+ 0xf6, 0xb3, 0x1e, 0xd0, 0xd3, 0xc5, 0x2d, 0x13, 0x56, 0x71, 0xa2, 0x3d,
+ 0x3e, 0xa0, 0x8f, 0xb7, 0xf2, 0x9c, 0x9d, 0xcb, 0x3f, 0x15, 0x11, 0x63,
+ 0x58, 0x7c, 0x39, 0xdb,
+};
+static const struct drbg_kat_pr_false kat2865_t = {
+ 14, kat2865_entropyin, kat2865_nonce, kat2865_persstr,
+ kat2865_entropyinreseed, kat2865_addinreseed, kat2865_addin0,
+ kat2865_addin1, kat2865_retbits
+};
+static const struct drbg_kat kat2865 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat2865_t
+};
+
+static const unsigned char kat2866_entropyin[] = {
+ 0xfa, 0x20, 0x7b, 0x20, 0xec, 0xb0, 0xc6, 0x48, 0x51, 0x51, 0x6e, 0xe8,
+ 0x3e, 0xd3, 0x3c, 0xaa, 0xf8, 0x71, 0x31, 0x5d, 0x78, 0x1e, 0xb0, 0x4b,
+ 0xe4, 0xab, 0xde, 0x3b, 0xef, 0x91, 0xa3, 0xc1, 0xf8, 0x37, 0xcb, 0xe5,
+ 0xfb, 0x94, 0x94, 0xf4, 0x86, 0x53, 0x86, 0xfe, 0x53, 0xe8, 0x5f, 0x5f,
+};
+static const unsigned char kat2866_nonce[] = {0};
+static const unsigned char kat2866_persstr[] = {
+ 0x13, 0x6c, 0x23, 0xed, 0xa5, 0x22, 0x25, 0x16, 0x8b, 0x36, 0x17, 0x10,
+ 0x7a, 0xf5, 0x74, 0x67, 0xd1, 0x66, 0x1a, 0x5e, 0x3f, 0xf3, 0x0f, 0xd1,
+ 0x40, 0x48, 0x20, 0x2c, 0x53, 0x5d, 0xfb, 0x68, 0x1e, 0x8e, 0xb5, 0xcc,
+ 0xc4, 0x35, 0x3a, 0x91, 0x9d, 0x01, 0x49, 0xdf, 0x94, 0xab, 0xb1, 0xd3,
+};
+static const unsigned char kat2866_entropyinreseed[] = {
+ 0x3f, 0xa8, 0x12, 0xa3, 0xf8, 0xd9, 0x04, 0x25, 0x38, 0x11, 0x17, 0xa9,
+ 0x36, 0x0b, 0x7a, 0x3f, 0xc6, 0x7e, 0x34, 0x05, 0xe5, 0xa2, 0xb5, 0x84,
+ 0xdc, 0x7e, 0x86, 0x68, 0xda, 0x09, 0x84, 0x61, 0xb3, 0x03, 0x5c, 0x04,
+ 0x58, 0xfe, 0xd2, 0x5e, 0x29, 0x3a, 0x5a, 0x67, 0x66, 0x40, 0xcf, 0xe3,
+};
+static const unsigned char kat2866_addinreseed[] = {
+ 0x81, 0x47, 0x93, 0xc9, 0xa4, 0xd6, 0xe2, 0x7a, 0xe4, 0xb6, 0x61, 0x01,
+ 0x7f, 0x99, 0x4a, 0x79, 0x60, 0xbe, 0xc9, 0xb3, 0xef, 0x93, 0x90, 0xec,
+ 0xb2, 0x66, 0xa9, 0x3a, 0xcb, 0x09, 0x14, 0x45, 0xc9, 0x36, 0x8f, 0x94,
+ 0x2d, 0x51, 0xbd, 0xb0, 0x1b, 0x94, 0xbe, 0x1f, 0xc3, 0xf8, 0x9c, 0xdd,
+};
+static const unsigned char kat2866_addin0[] = {
+ 0x1f, 0x76, 0x4e, 0xf9, 0xd0, 0x91, 0xe6, 0x35, 0xf9, 0xe9, 0x19, 0x74,
+ 0x66, 0x83, 0xd2, 0xd6, 0xe9, 0xe0, 0x2d, 0x04, 0x75, 0x6b, 0x1c, 0x3b,
+ 0xa8, 0x86, 0x15, 0x31, 0xf8, 0x8e, 0xe8, 0x9c, 0x60, 0xaa, 0x34, 0x82,
+ 0xf9, 0xa1, 0xfc, 0xf6, 0x02, 0x93, 0xcd, 0xf5, 0xb6, 0x43, 0x28, 0xb9,
+};
+static const unsigned char kat2866_addin1[] = {
+ 0x35, 0x53, 0xe3, 0xca, 0x83, 0x4e, 0x2c, 0x25, 0xca, 0xa1, 0xf1, 0x43,
+ 0xd5, 0x95, 0x82, 0x59, 0xa4, 0x91, 0xd8, 0x3a, 0xf4, 0xef, 0x41, 0x70,
+ 0xb3, 0xbc, 0x2f, 0xe3, 0x6d, 0x25, 0x6a, 0x35, 0x56, 0x89, 0xd8, 0x4b,
+ 0x81, 0x14, 0xbc, 0x99, 0x3d, 0xc3, 0xbb, 0x3a, 0x92, 0x5f, 0x13, 0xae,
+};
+static const unsigned char kat2866_retbits[] = {
+ 0x50, 0x76, 0x28, 0xcb, 0xa7, 0xe3, 0xff, 0xfa, 0xf4, 0x93, 0x57, 0x13,
+ 0xf3, 0x2c, 0x09, 0xc3, 0x04, 0x7e, 0x90, 0x58, 0x83, 0x02, 0xc0, 0x38,
+ 0xad, 0xd8, 0x21, 0xb2, 0x4b, 0x76, 0x04, 0x7c, 0x72, 0xd4, 0x3d, 0xf0,
+ 0x31, 0x01, 0x80, 0x30, 0xcc, 0x0a, 0x4a, 0x53, 0xe7, 0xc8, 0xb0, 0x8b,
+ 0x03, 0x3f, 0x00, 0x77, 0xb1, 0x00, 0xae, 0x78, 0x39, 0x54, 0x3c, 0xff,
+ 0x96, 0x34, 0x8c, 0x99,
+};
+static const struct drbg_kat_pr_false kat2866_t = {
+ 0, kat2866_entropyin, kat2866_nonce, kat2866_persstr,
+ kat2866_entropyinreseed, kat2866_addinreseed, kat2866_addin0,
+ kat2866_addin1, kat2866_retbits
+};
+static const struct drbg_kat kat2866 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2866_t
+};
+
+static const unsigned char kat2867_entropyin[] = {
+ 0x36, 0xeb, 0x60, 0x8b, 0x1c, 0x34, 0xc0, 0xf1, 0xe3, 0x6a, 0x3b, 0xfd,
+ 0xae, 0xa8, 0x96, 0xcf, 0x81, 0xa2, 0xbb, 0x49, 0xb7, 0xc0, 0x06, 0x9e,
+ 0xb4, 0xfb, 0x65, 0x12, 0x9f, 0xe6, 0x37, 0x71, 0x04, 0xba, 0x90, 0x6a,
+ 0x91, 0xc7, 0x6f, 0xc7, 0xd8, 0x3d, 0x4d, 0x23, 0x3e, 0x73, 0xb5, 0x3e,
+};
+static const unsigned char kat2867_nonce[] = {0};
+static const unsigned char kat2867_persstr[] = {
+ 0xa1, 0x59, 0x4d, 0xdc, 0xa4, 0x0b, 0x36, 0x61, 0x98, 0x63, 0xba, 0x2b,
+ 0x10, 0x47, 0xfd, 0x8e, 0xdd, 0x35, 0x70, 0x30, 0x28, 0xa9, 0x3c, 0x83,
+ 0x3b, 0x74, 0xb4, 0x9e, 0xe7, 0x59, 0x8b, 0x6e, 0x7f, 0x89, 0x18, 0x86,
+ 0xcd, 0xcf, 0x60, 0xa6, 0x78, 0x80, 0x0a, 0x47, 0x8a, 0x01, 0x9c, 0x49,
+};
+static const unsigned char kat2867_entropyinreseed[] = {
+ 0x91, 0x4e, 0x91, 0xaf, 0x79, 0xff, 0x82, 0xa0, 0xce, 0x0b, 0x73, 0xfa,
+ 0x76, 0xb7, 0x6f, 0xde, 0x2e, 0x4a, 0x96, 0xe9, 0xde, 0x16, 0x48, 0x19,
+ 0xe5, 0xf2, 0x6b, 0x36, 0xe5, 0x4e, 0xeb, 0x0c, 0xfd, 0xe0, 0xad, 0x92,
+ 0x88, 0x98, 0x3e, 0x62, 0x25, 0xa7, 0x34, 0x29, 0x25, 0xac, 0x40, 0xff,
+};
+static const unsigned char kat2867_addinreseed[] = {
+ 0xc6, 0xdb, 0xf4, 0xd6, 0x73, 0x85, 0x0d, 0xc2, 0xc8, 0xf3, 0xe9, 0x2c,
+ 0x90, 0xf5, 0x72, 0x51, 0xb4, 0xed, 0xfa, 0xe9, 0x60, 0x82, 0xec, 0x3a,
+ 0x76, 0xff, 0x24, 0x07, 0x7a, 0xf4, 0xc1, 0xf9, 0x96, 0x4f, 0x51, 0xa1,
+ 0x41, 0x3f, 0x58, 0x42, 0x9e, 0x0a, 0x70, 0xff, 0x08, 0x79, 0x98, 0x0d,
+};
+static const unsigned char kat2867_addin0[] = {
+ 0xe8, 0xd1, 0x7e, 0xbf, 0xd2, 0x6b, 0xb4, 0x73, 0xaa, 0x50, 0x8a, 0xf6,
+ 0x59, 0x54, 0x6b, 0x00, 0x4f, 0x81, 0x6a, 0x3e, 0xe1, 0xb0, 0xd0, 0x58,
+ 0x75, 0x7d, 0x40, 0xc5, 0xb4, 0xc4, 0x5b, 0x85, 0xe9, 0xb5, 0x6e, 0xda,
+ 0x24, 0x38, 0x21, 0xce, 0xa4, 0xfc, 0xb6, 0xa9, 0xeb, 0x6a, 0xfc, 0xd7,
+};
+static const unsigned char kat2867_addin1[] = {
+ 0xa8, 0x5f, 0x5d, 0x80, 0x15, 0xf0, 0x14, 0x16, 0xbb, 0xfe, 0x83, 0xa0,
+ 0xdb, 0xe3, 0x7e, 0xb3, 0x7d, 0xc8, 0xe9, 0x0b, 0xe3, 0xaa, 0x72, 0x36,
+ 0x3a, 0xaf, 0x1f, 0xb6, 0x61, 0x2a, 0x7d, 0x1d, 0x2b, 0x83, 0x51, 0x49,
+ 0x40, 0x0c, 0xbe, 0xe6, 0x2d, 0x53, 0x31, 0x3c, 0x67, 0xab, 0xf3, 0xf9,
+};
+static const unsigned char kat2867_retbits[] = {
+ 0x89, 0x12, 0x7b, 0x8b, 0x99, 0xe1, 0xe4, 0x2f, 0xd7, 0x18, 0x97, 0x69,
+ 0x8f, 0x22, 0x83, 0x34, 0x09, 0xcb, 0x67, 0x49, 0x6c, 0x33, 0x97, 0x3c,
+ 0x83, 0x8b, 0x57, 0x08, 0x9e, 0x93, 0x75, 0xb1, 0xa3, 0xf6, 0x28, 0xfe,
+ 0x60, 0xe6, 0xb0, 0x5a, 0x4b, 0x97, 0x41, 0x7d, 0x68, 0x41, 0x8a, 0xdb,
+ 0x01, 0x31, 0xfc, 0x88, 0x2b, 0x73, 0x23, 0x2a, 0x01, 0x3e, 0x04, 0xbb,
+ 0x04, 0x05, 0x44, 0xf0,
+};
+static const struct drbg_kat_pr_false kat2867_t = {
+ 1, kat2867_entropyin, kat2867_nonce, kat2867_persstr,
+ kat2867_entropyinreseed, kat2867_addinreseed, kat2867_addin0,
+ kat2867_addin1, kat2867_retbits
+};
+static const struct drbg_kat kat2867 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2867_t
+};
+
+static const unsigned char kat2868_entropyin[] = {
+ 0xae, 0xad, 0x9c, 0x1f, 0x4f, 0x33, 0x84, 0x93, 0xb4, 0x63, 0x32, 0x63,
+ 0x5e, 0x81, 0x2f, 0xf9, 0x7a, 0x9c, 0x16, 0xf7, 0xdf, 0x09, 0xf3, 0x57,
+ 0x0b, 0x5f, 0xb5, 0x32, 0xde, 0x88, 0x3b, 0xf4, 0xf3, 0xee, 0xaa, 0x27,
+ 0x7b, 0xc5, 0xec, 0x14, 0xfb, 0x6b, 0xea, 0x84, 0x2c, 0xdb, 0xee, 0x88,
+};
+static const unsigned char kat2868_nonce[] = {0};
+static const unsigned char kat2868_persstr[] = {
+ 0x42, 0x6f, 0xe9, 0xac, 0xfc, 0x02, 0xf8, 0x18, 0x3f, 0x0e, 0xe8, 0xbb,
+ 0xed, 0xd8, 0xcb, 0x64, 0x60, 0x67, 0x71, 0x84, 0xa8, 0xcc, 0x42, 0x33,
+ 0xd6, 0x20, 0x8c, 0x38, 0xa7, 0xf3, 0x7b, 0xc5, 0x76, 0x47, 0x3a, 0x60,
+ 0xed, 0x3e, 0x93, 0x35, 0xb7, 0xf9, 0xe2, 0x5f, 0x48, 0x1b, 0x15, 0xcc,
+};
+static const unsigned char kat2868_entropyinreseed[] = {
+ 0x57, 0xa2, 0x58, 0x43, 0x9d, 0xd9, 0x72, 0xb6, 0xd5, 0x77, 0x0a, 0xac,
+ 0xe3, 0x77, 0x78, 0x4b, 0xf7, 0x85, 0x95, 0xcd, 0x23, 0x0e, 0x16, 0xe4,
+ 0xb1, 0x05, 0x55, 0x91, 0xc2, 0x9d, 0x3a, 0x7c, 0x32, 0xcb, 0xa6, 0xa8,
+ 0x35, 0x34, 0x6d, 0x70, 0xd3, 0x80, 0xc8, 0x4b, 0xe2, 0xdb, 0x99, 0xd0,
+};
+static const unsigned char kat2868_addinreseed[] = {
+ 0x50, 0x8d, 0xec, 0xa2, 0x57, 0x85, 0xf1, 0x19, 0x61, 0xad, 0x77, 0xce,
+ 0x62, 0xbe, 0x80, 0x6a, 0xea, 0xed, 0x80, 0xb7, 0x20, 0xc7, 0xd3, 0xa9,
+ 0x7d, 0x3f, 0x31, 0x47, 0x24, 0xaf, 0x76, 0xaa, 0xdb, 0x3b, 0xf1, 0x04,
+ 0x7c, 0x2f, 0x3a, 0x7c, 0xaf, 0xd2, 0xdd, 0x46, 0x96, 0x26, 0x41, 0x6f,
+};
+static const unsigned char kat2868_addin0[] = {
+ 0x4b, 0x93, 0x76, 0x0c, 0xfc, 0xd2, 0x72, 0x70, 0xee, 0xbe, 0x3c, 0xb8,
+ 0x89, 0x1b, 0x25, 0x14, 0x21, 0x51, 0xc4, 0x35, 0x62, 0xf0, 0x9d, 0xf8,
+ 0x1a, 0xaa, 0x60, 0xf0, 0xcf, 0x07, 0x28, 0x24, 0x6a, 0xec, 0x58, 0x01,
+ 0x77, 0xfe, 0x32, 0xae, 0xa1, 0xe6, 0x4c, 0x33, 0x03, 0xe1, 0x71, 0x7c,
+};
+static const unsigned char kat2868_addin1[] = {
+ 0x2f, 0x58, 0xd0, 0x36, 0x17, 0x3e, 0xfc, 0xf4, 0x07, 0x66, 0xbf, 0x41,
+ 0x73, 0x5e, 0x6d, 0x06, 0xff, 0xa9, 0x7e, 0x79, 0xbe, 0xc1, 0x38, 0xe0,
+ 0x5e, 0xc0, 0xf5, 0x5f, 0xbc, 0x44, 0xc7, 0x92, 0x23, 0x42, 0xa1, 0x0b,
+ 0x22, 0x95, 0xda, 0x7b, 0xa5, 0xb9, 0x1a, 0x3c, 0x42, 0x93, 0x6c, 0xb0,
+};
+static const unsigned char kat2868_retbits[] = {
+ 0x89, 0xbf, 0xd0, 0x7e, 0xb0, 0x0c, 0x32, 0x46, 0x26, 0xb4, 0x08, 0x94,
+ 0x64, 0xf1, 0xa2, 0xf4, 0x17, 0x5a, 0x06, 0x5a, 0xbb, 0xde, 0x95, 0x0a,
+ 0x3b, 0x58, 0x52, 0xf5, 0x31, 0x69, 0xc6, 0xa6, 0x4f, 0xa4, 0x2f, 0x17,
+ 0x41, 0x25, 0x20, 0xa5, 0x26, 0x2d, 0x64, 0xa7, 0xba, 0x13, 0xe8, 0x5c,
+ 0x52, 0xaa, 0xd7, 0x07, 0xf4, 0x6b, 0xcb, 0x81, 0xa4, 0x4e, 0xfb, 0x22,
+ 0x34, 0xd2, 0x6d, 0x9e,
+};
+static const struct drbg_kat_pr_false kat2868_t = {
+ 2, kat2868_entropyin, kat2868_nonce, kat2868_persstr,
+ kat2868_entropyinreseed, kat2868_addinreseed, kat2868_addin0,
+ kat2868_addin1, kat2868_retbits
+};
+static const struct drbg_kat kat2868 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2868_t
+};
+
+static const unsigned char kat2869_entropyin[] = {
+ 0x27, 0x2c, 0xb7, 0x9c, 0x57, 0x4f, 0xa7, 0x94, 0x1d, 0xa8, 0x17, 0xbc,
+ 0x5b, 0x96, 0x14, 0xc0, 0x03, 0xec, 0x0b, 0xe3, 0x0c, 0xdd, 0x38, 0x47,
+ 0x92, 0x29, 0x1b, 0x98, 0xc8, 0x81, 0x1d, 0x34, 0x23, 0xe1, 0x16, 0x79,
+ 0x64, 0x7f, 0x88, 0x7f, 0x42, 0x6e, 0x02, 0x5f, 0x09, 0x60, 0xa7, 0x70,
+};
+static const unsigned char kat2869_nonce[] = {0};
+static const unsigned char kat2869_persstr[] = {
+ 0xb7, 0x98, 0x9b, 0x25, 0x32, 0xd4, 0x6d, 0xec, 0x8a, 0x60, 0x22, 0xb2,
+ 0x68, 0x74, 0x43, 0x7b, 0xc8, 0x17, 0x6f, 0xd2, 0x19, 0x94, 0x8c, 0xb9,
+ 0x95, 0xcb, 0x00, 0x30, 0x64, 0xea, 0xcf, 0x12, 0x71, 0xef, 0x17, 0x26,
+ 0x9a, 0x07, 0xd2, 0xc2, 0xae, 0x99, 0xf3, 0xf8, 0x30, 0x87, 0x8a, 0x37,
+};
+static const unsigned char kat2869_entropyinreseed[] = {
+ 0x78, 0xaf, 0x0b, 0x8b, 0x0e, 0xb3, 0xca, 0xbd, 0x91, 0x9c, 0xaf, 0xd0,
+ 0x6b, 0x1f, 0xab, 0xfd, 0xcb, 0x63, 0xfe, 0x29, 0xf5, 0xb6, 0x8e, 0x67,
+ 0x53, 0x0b, 0x39, 0x62, 0x00, 0x88, 0x7d, 0x92, 0x41, 0x9e, 0x3c, 0x83,
+ 0x9b, 0x8b, 0x1d, 0xc4, 0x3c, 0x65, 0x07, 0x02, 0x6f, 0x1f, 0x85, 0x1e,
+};
+static const unsigned char kat2869_addinreseed[] = {
+ 0x85, 0x78, 0x48, 0xc6, 0x22, 0x03, 0x30, 0x7b, 0x39, 0x72, 0x8a, 0xcf,
+ 0x11, 0xac, 0x84, 0x62, 0x30, 0x2d, 0x3a, 0x41, 0xd1, 0x86, 0x77, 0x8b,
+ 0x3f, 0x11, 0x2a, 0x86, 0x27, 0x02, 0x52, 0xf0, 0x58, 0xfb, 0xe5, 0x76,
+ 0x74, 0x96, 0xe4, 0x76, 0x62, 0x18, 0x6b, 0x8d, 0x08, 0x17, 0xde, 0x02,
+};
+static const unsigned char kat2869_addin0[] = {
+ 0x9a, 0x08, 0xdf, 0x0d, 0xe7, 0x42, 0xfd, 0x2e, 0x2d, 0x55, 0x12, 0x1a,
+ 0x58, 0xb7, 0x00, 0xdf, 0xbf, 0xf2, 0x50, 0xa4, 0x88, 0x1b, 0x02, 0xfc,
+ 0x3b, 0x89, 0x52, 0xb4, 0x8e, 0xcd, 0x4d, 0x03, 0x4d, 0x6e, 0x7c, 0x75,
+ 0x7c, 0xdf, 0x91, 0xbf, 0x7c, 0x31, 0xdf, 0xaf, 0x70, 0xb1, 0xda, 0x22,
+};
+static const unsigned char kat2869_addin1[] = {
+ 0x3b, 0xf0, 0xe4, 0xf1, 0x29, 0x1a, 0x8b, 0xc2, 0x72, 0xcc, 0x98, 0x58,
+ 0x78, 0x33, 0x58, 0x82, 0xc7, 0x58, 0x31, 0x51, 0x0f, 0x27, 0x96, 0x3c,
+ 0x7c, 0x01, 0xa8, 0x79, 0xc6, 0x0c, 0x5b, 0x67, 0xa9, 0xa1, 0x4a, 0x65,
+ 0x6a, 0x74, 0x6a, 0x80, 0xa0, 0x91, 0xad, 0xf6, 0xff, 0xb1, 0xad, 0xf6,
+};
+static const unsigned char kat2869_retbits[] = {
+ 0x69, 0x36, 0x1d, 0x61, 0xf4, 0xcf, 0x5e, 0xd4, 0x89, 0x88, 0x89, 0x34,
+ 0xf3, 0x20, 0xa9, 0xac, 0xc5, 0x38, 0x3e, 0x71, 0x9f, 0x09, 0xa1, 0xe3,
+ 0x0b, 0x60, 0x29, 0xbf, 0x71, 0xd4, 0xb4, 0xcb, 0x54, 0x85, 0x97, 0x98,
+ 0xac, 0xe2, 0xd8, 0xee, 0x5e, 0x68, 0x1d, 0x4a, 0xcb, 0x22, 0x3b, 0x9c,
+ 0x11, 0x9d, 0xab, 0x2d, 0xd0, 0x7e, 0x6d, 0xb3, 0xf7, 0xf8, 0x44, 0xc2,
+ 0xb4, 0x6b, 0x9c, 0x47,
+};
+static const struct drbg_kat_pr_false kat2869_t = {
+ 3, kat2869_entropyin, kat2869_nonce, kat2869_persstr,
+ kat2869_entropyinreseed, kat2869_addinreseed, kat2869_addin0,
+ kat2869_addin1, kat2869_retbits
+};
+static const struct drbg_kat kat2869 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2869_t
+};
+
+static const unsigned char kat2870_entropyin[] = {
+ 0x6f, 0x45, 0xb5, 0x5a, 0xc6, 0x2d, 0x5f, 0xfd, 0x45, 0x2d, 0x36, 0xb1,
+ 0xe4, 0xb1, 0x8c, 0xc6, 0xab, 0xd6, 0xad, 0x93, 0xe8, 0x75, 0x58, 0xb7,
+ 0x9f, 0xbe, 0x99, 0xb4, 0xf4, 0xa9, 0x62, 0xb7, 0x4b, 0xad, 0x00, 0x82,
+ 0x10, 0x19, 0xbd, 0x12, 0x6d, 0x6f, 0x9d, 0xd7, 0x39, 0x12, 0xac, 0xf7,
+};
+static const unsigned char kat2870_nonce[] = {0};
+static const unsigned char kat2870_persstr[] = {
+ 0x91, 0x3a, 0x78, 0x30, 0x46, 0xba, 0xef, 0xe4, 0x28, 0x34, 0x60, 0x85,
+ 0xfd, 0x64, 0x0c, 0xaa, 0x18, 0x74, 0xd4, 0xaa, 0x69, 0x74, 0x83, 0x2c,
+ 0xac, 0xc5, 0xb5, 0x1e, 0x78, 0x51, 0x4b, 0xcf, 0xed, 0xd1, 0x74, 0x60,
+ 0x6b, 0xef, 0x17, 0x21, 0xdf, 0x7a, 0x11, 0x94, 0xa0, 0xcc, 0xd1, 0xe3,
+};
+static const unsigned char kat2870_entropyinreseed[] = {
+ 0xd9, 0xe1, 0x9c, 0xe3, 0x19, 0x70, 0x04, 0xab, 0x3a, 0x4b, 0xf9, 0x95,
+ 0xa4, 0x81, 0x14, 0x9b, 0x6d, 0x8e, 0x59, 0xa3, 0x97, 0x01, 0x61, 0xcb,
+ 0x0d, 0x39, 0x17, 0x37, 0x4c, 0x0c, 0x86, 0xbb, 0x5e, 0x9b, 0xc5, 0x09,
+ 0xbd, 0x01, 0xb6, 0x79, 0x6f, 0xa1, 0xe7, 0x7e, 0x5f, 0xdd, 0xdb, 0x16,
+};
+static const unsigned char kat2870_addinreseed[] = {
+ 0xfd, 0x31, 0x06, 0x8c, 0x90, 0x61, 0x4e, 0x04, 0x46, 0x3a, 0xcd, 0xf8,
+ 0x56, 0xb0, 0x34, 0x29, 0x3a, 0x07, 0x9a, 0x81, 0x6f, 0x1c, 0x5f, 0x3d,
+ 0xe6, 0x3b, 0x87, 0x0a, 0x98, 0x76, 0xf7, 0x39, 0x7d, 0x2f, 0x93, 0xbd,
+ 0x3f, 0x67, 0x76, 0xb5, 0x6a, 0x78, 0xf7, 0x17, 0x8e, 0x1f, 0xbb, 0x87,
+};
+static const unsigned char kat2870_addin0[] = {
+ 0x06, 0x8e, 0x37, 0x91, 0xb9, 0x1a, 0xdb, 0x82, 0x0b, 0x27, 0xc4, 0x5a,
+ 0x5d, 0x85, 0x44, 0xee, 0xd3, 0x13, 0x34, 0x86, 0xa7, 0xd2, 0xd0, 0xbc,
+ 0x50, 0x3d, 0x8a, 0xba, 0xd8, 0xb7, 0x09, 0x3f, 0x3d, 0xf2, 0x14, 0xf1,
+ 0xe0, 0xac, 0x4f, 0xf2, 0xd3, 0x47, 0xc7, 0x60, 0xb2, 0xa6, 0x05, 0xd5,
+};
+static const unsigned char kat2870_addin1[] = {
+ 0x6c, 0x55, 0x92, 0x7a, 0x34, 0x9d, 0x32, 0x1d, 0x1a, 0x21, 0x41, 0xae,
+ 0xcc, 0xc3, 0x54, 0x3e, 0x97, 0x26, 0xff, 0xcf, 0x3d, 0x8f, 0xdf, 0xe1,
+ 0xae, 0xd6, 0x3c, 0x61, 0x97, 0x2a, 0x21, 0x3c, 0x12, 0xea, 0x65, 0xd6,
+ 0x48, 0xe4, 0x76, 0x26, 0x86, 0x11, 0xe9, 0xb0, 0x84, 0x86, 0xa6, 0x48,
+};
+static const unsigned char kat2870_retbits[] = {
+ 0x55, 0x2b, 0x4c, 0x40, 0x35, 0xd9, 0x64, 0xb5, 0xeb, 0x26, 0xe3, 0x03,
+ 0x64, 0x45, 0x79, 0x3d, 0xf6, 0x7b, 0x73, 0x21, 0xd3, 0x6e, 0x8d, 0x23,
+ 0x62, 0xfe, 0x28, 0x45, 0x03, 0xb5, 0x87, 0xc9, 0x61, 0xa3, 0x3b, 0x81,
+ 0x6b, 0x40, 0xb9, 0x3d, 0x4b, 0x00, 0x67, 0x69, 0x17, 0x7c, 0x65, 0x93,
+ 0xc5, 0x53, 0xb6, 0xe6, 0x69, 0x07, 0x6f, 0x25, 0xa3, 0xe2, 0xa7, 0x21,
+ 0x41, 0x56, 0xc2, 0x49,
+};
+static const struct drbg_kat_pr_false kat2870_t = {
+ 4, kat2870_entropyin, kat2870_nonce, kat2870_persstr,
+ kat2870_entropyinreseed, kat2870_addinreseed, kat2870_addin0,
+ kat2870_addin1, kat2870_retbits
+};
+static const struct drbg_kat kat2870 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2870_t
+};
+
+static const unsigned char kat2871_entropyin[] = {
+ 0x8d, 0x49, 0x2d, 0xf4, 0x62, 0x57, 0xa6, 0x2e, 0x71, 0x73, 0x02, 0x99,
+ 0x26, 0x82, 0xe2, 0x84, 0x94, 0xf8, 0x4d, 0x0f, 0x32, 0x37, 0xc1, 0x64,
+ 0x39, 0xef, 0xbb, 0xd1, 0x6a, 0x94, 0xb3, 0x35, 0x6e, 0xb7, 0xf7, 0xc2,
+ 0xa0, 0x20, 0x68, 0x92, 0x04, 0x5a, 0x0d, 0x7d, 0x36, 0xd6, 0x9f, 0x03,
+};
+static const unsigned char kat2871_nonce[] = {0};
+static const unsigned char kat2871_persstr[] = {
+ 0xb9, 0x15, 0xf3, 0x31, 0x1f, 0xea, 0xdf, 0x66, 0x76, 0xdf, 0x23, 0x89,
+ 0xba, 0xac, 0xcc, 0xda, 0xfc, 0x74, 0xcf, 0x20, 0x0e, 0xd7, 0xb9, 0x91,
+ 0x67, 0xb3, 0x3d, 0xaf, 0xa8, 0x75, 0xce, 0x4a, 0xac, 0x1a, 0x61, 0xce,
+ 0x54, 0x97, 0x2e, 0xc5, 0x4f, 0x9b, 0x09, 0x01, 0xa3, 0xb0, 0x50, 0xee,
+};
+static const unsigned char kat2871_entropyinreseed[] = {
+ 0x2e, 0x34, 0x5f, 0xe3, 0xa4, 0x71, 0xc5, 0x06, 0x6b, 0x20, 0xf4, 0xaa,
+ 0xea, 0xaf, 0x73, 0x92, 0x14, 0x26, 0xac, 0x1b, 0xc0, 0x50, 0x9e, 0x93,
+ 0x67, 0x15, 0x35, 0xa8, 0xfb, 0xc0, 0x16, 0xf5, 0x96, 0x74, 0x03, 0xd6,
+ 0xd1, 0x3b, 0x47, 0x60, 0x49, 0x1b, 0xf9, 0x73, 0xc4, 0x7a, 0x8e, 0xd5,
+};
+static const unsigned char kat2871_addinreseed[] = {
+ 0x2e, 0x8f, 0x1f, 0x01, 0xa7, 0x66, 0x48, 0x90, 0xfe, 0xef, 0x93, 0x15,
+ 0x2f, 0x7b, 0x7f, 0x05, 0x03, 0x2b, 0x4c, 0x70, 0xc5, 0x8b, 0x5f, 0x26,
+ 0x1e, 0xf0, 0xa9, 0xc2, 0xae, 0xf2, 0x3f, 0x2a, 0x14, 0xee, 0x57, 0xc3,
+ 0xd3, 0x46, 0x5a, 0xf2, 0x42, 0x89, 0xb1, 0xc8, 0x50, 0xe5, 0x2e, 0xf8,
+};
+static const unsigned char kat2871_addin0[] = {
+ 0xf8, 0xc2, 0x18, 0xc9, 0x96, 0x28, 0x4f, 0x75, 0x7c, 0x49, 0x1c, 0xba,
+ 0x02, 0x5f, 0xd8, 0x4c, 0xc7, 0x01, 0xf9, 0xf8, 0x3a, 0x16, 0xf0, 0x3c,
+ 0x31, 0x47, 0x12, 0xc2, 0x35, 0x4f, 0xee, 0x39, 0x21, 0x4e, 0xd5, 0x99,
+ 0x4a, 0xb2, 0x46, 0x41, 0x82, 0x6b, 0xc1, 0x5e, 0xd1, 0xbb, 0x5f, 0x61,
+};
+static const unsigned char kat2871_addin1[] = {
+ 0x14, 0x6c, 0x53, 0xdc, 0x4a, 0xf9, 0x0f, 0x26, 0xd8, 0xc8, 0x58, 0x22,
+ 0x81, 0x0d, 0x9b, 0xde, 0x29, 0x49, 0x49, 0x5c, 0x23, 0xca, 0x2c, 0x7c,
+ 0x13, 0xce, 0xee, 0x82, 0x21, 0xcb, 0xe8, 0x10, 0x54, 0x91, 0xd5, 0x60,
+ 0xe0, 0x04, 0x4c, 0x8d, 0x50, 0xd7, 0xe3, 0x65, 0xda, 0x41, 0x89, 0x0b,
+};
+static const unsigned char kat2871_retbits[] = {
+ 0xb1, 0x9d, 0xd1, 0x84, 0x94, 0x23, 0x5a, 0xbd, 0xcb, 0x3b, 0x4e, 0x99,
+ 0xc9, 0x35, 0x5d, 0x19, 0xd5, 0x43, 0xc7, 0xfb, 0x7e, 0x10, 0x48, 0xd6,
+ 0x3d, 0x9e, 0x25, 0xab, 0xcc, 0x12, 0xdc, 0xb3, 0x15, 0x49, 0xce, 0xc2,
+ 0x81, 0x86, 0x67, 0x71, 0x3a, 0xd1, 0xdc, 0x35, 0x14, 0x20, 0x72, 0xca,
+ 0x8d, 0xaa, 0x51, 0x19, 0x27, 0xac, 0xa7, 0x13, 0x03, 0x49, 0x3e, 0x50,
+ 0x05, 0x03, 0xbe, 0x8b,
+};
+static const struct drbg_kat_pr_false kat2871_t = {
+ 5, kat2871_entropyin, kat2871_nonce, kat2871_persstr,
+ kat2871_entropyinreseed, kat2871_addinreseed, kat2871_addin0,
+ kat2871_addin1, kat2871_retbits
+};
+static const struct drbg_kat kat2871 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2871_t
+};
+
+static const unsigned char kat2872_entropyin[] = {
+ 0x2a, 0x59, 0x5f, 0x08, 0x94, 0x7d, 0x00, 0x56, 0xed, 0x19, 0xec, 0xc8,
+ 0xa5, 0x47, 0x86, 0x78, 0x34, 0xc1, 0x25, 0xcf, 0x17, 0x40, 0x23, 0x0a,
+ 0x13, 0x25, 0xb9, 0x3b, 0xf2, 0x99, 0x51, 0xcb, 0xed, 0xca, 0xa6, 0xa8,
+ 0xf5, 0xcb, 0xe6, 0x98, 0x01, 0xfb, 0x9a, 0x19, 0x7a, 0xd5, 0x76, 0xc6,
+};
+static const unsigned char kat2872_nonce[] = {0};
+static const unsigned char kat2872_persstr[] = {
+ 0xc0, 0xfb, 0x9d, 0xbe, 0xa1, 0x38, 0x63, 0xdf, 0xbf, 0xdb, 0x2c, 0x0d,
+ 0xd8, 0x64, 0x88, 0x74, 0x13, 0x79, 0x4a, 0x07, 0xa4, 0xdd, 0x22, 0x88,
+ 0x36, 0xf0, 0xf6, 0xaf, 0xab, 0x90, 0x14, 0x96, 0x48, 0x6a, 0x2d, 0x50,
+ 0x8a, 0x3f, 0x4b, 0x78, 0x4d, 0x83, 0x38, 0x26, 0x29, 0xcd, 0xdb, 0xc1,
+};
+static const unsigned char kat2872_entropyinreseed[] = {
+ 0xa3, 0xdd, 0xfc, 0x3a, 0xef, 0xc9, 0x4d, 0xca, 0xf6, 0x56, 0xf4, 0xd8,
+ 0xee, 0xf0, 0x06, 0x5a, 0x6d, 0x23, 0x3a, 0x76, 0xe0, 0xa4, 0xc2, 0x6e,
+ 0x2d, 0x8b, 0xbb, 0x86, 0x45, 0x9c, 0x9e, 0x4a, 0x17, 0x3f, 0xf8, 0xcb,
+ 0xec, 0x85, 0xeb, 0xc1, 0x47, 0x12, 0x64, 0x07, 0x41, 0x42, 0x76, 0x68,
+};
+static const unsigned char kat2872_addinreseed[] = {
+ 0xd4, 0xeb, 0x9b, 0x12, 0xfc, 0x2a, 0x6f, 0xc7, 0x5a, 0x69, 0x70, 0x1c,
+ 0x8b, 0x5e, 0xce, 0x02, 0xe4, 0x7f, 0x81, 0x3e, 0xff, 0xb7, 0x05, 0xdb,
+ 0xde, 0xf0, 0x29, 0x4e, 0x38, 0x90, 0x7f, 0x5a, 0xad, 0xf4, 0x0b, 0xdb,
+ 0xcc, 0x06, 0x7d, 0x0e, 0xbc, 0x0b, 0xf3, 0x66, 0x1a, 0x2e, 0x09, 0x90,
+};
+static const unsigned char kat2872_addin0[] = {
+ 0xd3, 0xc4, 0xbf, 0x4f, 0x8a, 0x3f, 0x61, 0x41, 0x3f, 0xe1, 0x95, 0x35,
+ 0x23, 0xba, 0x83, 0xbc, 0x02, 0xae, 0x6d, 0x7e, 0xea, 0x1c, 0x8b, 0xa2,
+ 0x88, 0xf8, 0xe0, 0x6f, 0x0d, 0x02, 0x76, 0xe6, 0x16, 0x67, 0xa4, 0x10,
+ 0xf9, 0x05, 0x48, 0xd2, 0x83, 0xc4, 0xf1, 0xae, 0x79, 0x48, 0x39, 0x61,
+};
+static const unsigned char kat2872_addin1[] = {
+ 0xe6, 0xfc, 0x29, 0x68, 0x0e, 0xef, 0x14, 0x1e, 0x13, 0x72, 0xe1, 0x77,
+ 0x29, 0xc9, 0xf4, 0x40, 0x7b, 0x3f, 0x7a, 0x57, 0x05, 0x7b, 0xe1, 0x08,
+ 0x1c, 0xe4, 0x6c, 0x78, 0x69, 0x33, 0x34, 0xbf, 0x56, 0x86, 0x77, 0x91,
+ 0x07, 0x2d, 0x9d, 0x18, 0xa7, 0xb4, 0x83, 0x5b, 0xf2, 0x51, 0x71, 0x2d,
+};
+static const unsigned char kat2872_retbits[] = {
+ 0x08, 0x47, 0x5b, 0xfb, 0x8e, 0x62, 0x1e, 0x12, 0xe2, 0x12, 0xf4, 0x96,
+ 0x0e, 0x73, 0x70, 0x23, 0xf7, 0xa3, 0xde, 0x3b, 0x20, 0x4b, 0x6f, 0xfe,
+ 0xeb, 0x92, 0x9f, 0x42, 0x4c, 0xa7, 0x8c, 0x6a, 0xe2, 0xe0, 0xd7, 0x26,
+ 0x23, 0x79, 0x15, 0xe5, 0xe2, 0x44, 0x61, 0x67, 0x13, 0xe8, 0x8a, 0x39,
+ 0xdf, 0x30, 0x22, 0x08, 0xe3, 0xa3, 0x24, 0xf5, 0x44, 0x42, 0x13, 0xb7,
+ 0x0b, 0x2e, 0x9c, 0x09,
+};
+static const struct drbg_kat_pr_false kat2872_t = {
+ 6, kat2872_entropyin, kat2872_nonce, kat2872_persstr,
+ kat2872_entropyinreseed, kat2872_addinreseed, kat2872_addin0,
+ kat2872_addin1, kat2872_retbits
+};
+static const struct drbg_kat kat2872 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2872_t
+};
+
+static const unsigned char kat2873_entropyin[] = {
+ 0x3d, 0x53, 0x32, 0xb9, 0x1d, 0xca, 0xad, 0x89, 0x3d, 0xf5, 0x04, 0xc7,
+ 0xc6, 0x75, 0xb6, 0x98, 0x90, 0xb2, 0x80, 0x55, 0xdf, 0xd3, 0xec, 0x7d,
+ 0x0b, 0xa5, 0x69, 0x90, 0xdc, 0xda, 0x17, 0x50, 0x96, 0xff, 0x8f, 0x8f,
+ 0x9f, 0x9e, 0xcd, 0x6d, 0xdd, 0xeb, 0x96, 0xb8, 0x29, 0xb9, 0x8c, 0x3e,
+};
+static const unsigned char kat2873_nonce[] = {0};
+static const unsigned char kat2873_persstr[] = {
+ 0x34, 0x75, 0x34, 0x32, 0xb3, 0xc6, 0xbe, 0xdc, 0x4d, 0x22, 0x96, 0xdf,
+ 0xfc, 0xe8, 0xa6, 0x65, 0x91, 0xb4, 0x00, 0x86, 0x7f, 0x7e, 0xdf, 0x10,
+ 0xce, 0xe4, 0x47, 0x04, 0x6f, 0x5f, 0x76, 0x70, 0x36, 0xda, 0x9f, 0x3f,
+ 0x4a, 0x02, 0xf7, 0xb8, 0xcb, 0xa7, 0xbd, 0xd4, 0x36, 0x5c, 0x1f, 0xef,
+};
+static const unsigned char kat2873_entropyinreseed[] = {
+ 0x1a, 0x69, 0xaf, 0x0f, 0xf6, 0x96, 0xf9, 0xa2, 0xfe, 0x0f, 0xdd, 0xd2,
+ 0x6c, 0xcf, 0x6f, 0xae, 0x21, 0x5f, 0xaf, 0x91, 0x80, 0x44, 0x61, 0x92,
+ 0x8c, 0x88, 0x4e, 0xec, 0x13, 0xb1, 0xdd, 0x15, 0x01, 0x86, 0x2a, 0x73,
+ 0x83, 0x73, 0x45, 0x4e, 0x1b, 0x44, 0x9c, 0x60, 0x26, 0xce, 0xbc, 0xeb,
+};
+static const unsigned char kat2873_addinreseed[] = {
+ 0xdc, 0x47, 0xe1, 0x04, 0x17, 0x5f, 0x3c, 0x98, 0x12, 0xfe, 0xed, 0x9e,
+ 0x14, 0x3d, 0xa5, 0xcd, 0x7e, 0x55, 0x3e, 0x34, 0x23, 0xdb, 0x5b, 0xc8,
+ 0xbe, 0x3b, 0x65, 0x2f, 0x57, 0x71, 0x00, 0x26, 0x7f, 0xf7, 0x95, 0x80,
+ 0x4a, 0xaf, 0x42, 0xc3, 0x99, 0x15, 0x89, 0xe7, 0x68, 0x8a, 0x97, 0x7b,
+};
+static const unsigned char kat2873_addin0[] = {
+ 0xe6, 0x4c, 0x0c, 0xad, 0x3d, 0xfc, 0x0b, 0xf0, 0xeb, 0xa3, 0x31, 0x7c,
+ 0xf3, 0x7b, 0x77, 0x79, 0xb9, 0x1b, 0xf3, 0xde, 0x3e, 0x0b, 0xa3, 0x6d,
+ 0x3e, 0x16, 0xfe, 0xb0, 0x01, 0x42, 0x86, 0x59, 0x6e, 0xdd, 0x36, 0x4c,
+ 0x19, 0x78, 0x47, 0xe8, 0x73, 0x29, 0x25, 0xf9, 0x71, 0x29, 0x4d, 0xfa,
+};
+static const unsigned char kat2873_addin1[] = {
+ 0x1f, 0xf3, 0xa6, 0xbd, 0xb7, 0xe3, 0x19, 0xa8, 0x6b, 0x35, 0xd0, 0x62,
+ 0xcf, 0x01, 0x7e, 0xd2, 0x70, 0xc6, 0xb5, 0x51, 0x1b, 0xc3, 0xd6, 0x30,
+ 0x83, 0x27, 0x2e, 0x76, 0xbf, 0x4d, 0xb9, 0xd9, 0x0e, 0x83, 0x6f, 0x18,
+ 0xd9, 0x8f, 0x1f, 0x79, 0xc2, 0xe9, 0x1e, 0xeb, 0x0b, 0xc6, 0x35, 0xe2,
+};
+static const unsigned char kat2873_retbits[] = {
+ 0xfd, 0xef, 0x7e, 0x67, 0xc3, 0xd1, 0x9f, 0x5f, 0x74, 0x78, 0x4b, 0xdc,
+ 0x64, 0xd2, 0xc2, 0x3d, 0x0a, 0x3f, 0x02, 0x78, 0x46, 0xda, 0x2b, 0x2a,
+ 0xfb, 0xa9, 0x40, 0xfd, 0xc2, 0xf0, 0x66, 0xd8, 0x9b, 0x63, 0xd2, 0x7e,
+ 0x55, 0xd3, 0xd0, 0xa8, 0x8b, 0xdd, 0xb9, 0x7e, 0x29, 0x67, 0x68, 0x94,
+ 0xec, 0x8a, 0x18, 0x26, 0x8e, 0x4b, 0xc2, 0x7d, 0x18, 0x1a, 0x86, 0x7c,
+ 0x5a, 0x80, 0xfe, 0x2c,
+};
+static const struct drbg_kat_pr_false kat2873_t = {
+ 7, kat2873_entropyin, kat2873_nonce, kat2873_persstr,
+ kat2873_entropyinreseed, kat2873_addinreseed, kat2873_addin0,
+ kat2873_addin1, kat2873_retbits
+};
+static const struct drbg_kat kat2873 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2873_t
+};
+
+static const unsigned char kat2874_entropyin[] = {
+ 0x15, 0x6c, 0x8c, 0x0f, 0x44, 0xf4, 0xa8, 0xf1, 0x70, 0x44, 0x95, 0x7b,
+ 0x57, 0x2e, 0xd1, 0x6d, 0x54, 0xb7, 0x3a, 0x95, 0x10, 0xd2, 0xb2, 0x60,
+ 0xa0, 0x36, 0xad, 0x6e, 0xf2, 0x23, 0xf4, 0x5e, 0x12, 0x4c, 0x4a, 0xe9,
+ 0xda, 0xe0, 0xfd, 0xf5, 0x68, 0x47, 0x92, 0xda, 0x0f, 0xf5, 0xea, 0x0a,
+};
+static const unsigned char kat2874_nonce[] = {0};
+static const unsigned char kat2874_persstr[] = {
+ 0x14, 0x72, 0xf5, 0x6d, 0x54, 0x98, 0x56, 0x4a, 0x5b, 0x53, 0xd2, 0xea,
+ 0xe2, 0x71, 0x03, 0xf4, 0x1f, 0x56, 0x5d, 0x78, 0x73, 0xb3, 0x7c, 0x37,
+ 0xc3, 0x04, 0x72, 0x07, 0x5f, 0x1d, 0x84, 0xd6, 0x9a, 0x8d, 0x68, 0xc9,
+ 0x26, 0x36, 0xae, 0x06, 0xaa, 0x61, 0x67, 0x83, 0x58, 0xcc, 0x47, 0xd4,
+};
+static const unsigned char kat2874_entropyinreseed[] = {
+ 0x6b, 0xc2, 0xbf, 0xd4, 0x4f, 0x72, 0x98, 0x2b, 0x23, 0xb6, 0xd2, 0x2c,
+ 0x85, 0xf7, 0xd6, 0x01, 0xd5, 0x94, 0x1e, 0xbe, 0x6e, 0x9e, 0xe9, 0xd0,
+ 0x6a, 0x8e, 0xfe, 0x65, 0x25, 0x39, 0xec, 0x00, 0xb1, 0x13, 0x6a, 0xdb,
+ 0xc4, 0xe4, 0x3a, 0xaa, 0xb7, 0x6c, 0x3a, 0xd6, 0xa5, 0x7a, 0x26, 0x7e,
+};
+static const unsigned char kat2874_addinreseed[] = {
+ 0xa8, 0x3b, 0x15, 0x47, 0xfa, 0xdb, 0x97, 0xe4, 0x91, 0xef, 0x0b, 0xdb,
+ 0x8b, 0x0d, 0x00, 0x6a, 0xb1, 0x66, 0x38, 0xfd, 0xb2, 0x11, 0x61, 0x30,
+ 0x51, 0xf0, 0xf5, 0x75, 0x86, 0xc1, 0x46, 0x88, 0x2f, 0x10, 0x62, 0xb7,
+ 0xf7, 0x1a, 0x8c, 0x15, 0xbb, 0x27, 0x20, 0x0f, 0xa8, 0x3f, 0xfc, 0xaf,
+};
+static const unsigned char kat2874_addin0[] = {
+ 0xac, 0x18, 0x8d, 0xa8, 0xa8, 0x95, 0xe0, 0x80, 0x7b, 0xab, 0x61, 0xb1,
+ 0xeb, 0xd7, 0x3a, 0xcb, 0xe4, 0x3f, 0x99, 0xf3, 0x75, 0xc7, 0xd2, 0x91,
+ 0x74, 0xf6, 0x75, 0xe1, 0x66, 0x72, 0x37, 0xce, 0xdf, 0x1d, 0x41, 0xfc,
+ 0x50, 0xda, 0x27, 0x7a, 0x0d, 0xb2, 0x1e, 0xe2, 0x89, 0x1a, 0x5a, 0xbf,
+};
+static const unsigned char kat2874_addin1[] = {
+ 0xad, 0xf9, 0xa3, 0x0b, 0x6c, 0xd9, 0xda, 0xc2, 0x3f, 0x19, 0x3f, 0x66,
+ 0xdf, 0x9d, 0x60, 0x6a, 0x57, 0x65, 0xb9, 0x6c, 0xc4, 0x2c, 0x09, 0x95,
+ 0x30, 0xc5, 0x3c, 0x26, 0xa6, 0xd6, 0xbc, 0xf0, 0x77, 0x9a, 0xe0, 0x60,
+ 0xd1, 0x88, 0xe1, 0xcc, 0x5b, 0xda, 0xb6, 0xc3, 0x12, 0x89, 0x22, 0x67,
+};
+static const unsigned char kat2874_retbits[] = {
+ 0xfc, 0xc7, 0x98, 0x28, 0xbf, 0x2c, 0x9d, 0x3d, 0x79, 0x9d, 0x7a, 0x0e,
+ 0x83, 0x58, 0x3c, 0x70, 0xae, 0xb1, 0x56, 0xe2, 0x5d, 0xf0, 0xb2, 0xfd,
+ 0xe0, 0x30, 0xc2, 0x77, 0x5c, 0x99, 0x86, 0xc8, 0x05, 0x4e, 0x84, 0x81,
+ 0x28, 0xba, 0x38, 0xff, 0x5e, 0x5b, 0x0b, 0x1e, 0x5b, 0x72, 0xf9, 0xe4,
+ 0x17, 0x26, 0xb9, 0x60, 0x00, 0x84, 0x08, 0xf5, 0x15, 0x2b, 0x1a, 0x47,
+ 0x07, 0x2f, 0xbd, 0xf7,
+};
+static const struct drbg_kat_pr_false kat2874_t = {
+ 8, kat2874_entropyin, kat2874_nonce, kat2874_persstr,
+ kat2874_entropyinreseed, kat2874_addinreseed, kat2874_addin0,
+ kat2874_addin1, kat2874_retbits
+};
+static const struct drbg_kat kat2874 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2874_t
+};
+
+static const unsigned char kat2875_entropyin[] = {
+ 0x5e, 0x0d, 0xd8, 0xe3, 0x7a, 0xa2, 0x3d, 0x0f, 0xe7, 0x9e, 0xfc, 0xb8,
+ 0xe5, 0x53, 0x8e, 0xe9, 0x0f, 0xfb, 0x57, 0x33, 0xde, 0xcc, 0x83, 0xf7,
+ 0x67, 0x74, 0x88, 0xc4, 0xf6, 0x4c, 0x2e, 0x0d, 0x2a, 0x91, 0x89, 0x68,
+ 0xa5, 0xc7, 0x35, 0x1d, 0xe9, 0x36, 0x0f, 0x23, 0xfe, 0x60, 0x6a, 0x4a,
+};
+static const unsigned char kat2875_nonce[] = {0};
+static const unsigned char kat2875_persstr[] = {
+ 0x51, 0x61, 0xb7, 0x94, 0xe4, 0xa1, 0x33, 0x71, 0xb3, 0x20, 0xae, 0x4b,
+ 0x2b, 0x6b, 0x69, 0x8e, 0x4d, 0xf5, 0x07, 0x40, 0x2a, 0x75, 0x82, 0x55,
+ 0x55, 0x98, 0x08, 0x9d, 0xd9, 0x48, 0x43, 0x58, 0xd3, 0x7f, 0x89, 0x12,
+ 0x94, 0x94, 0x85, 0x12, 0xe4, 0x19, 0x8a, 0x79, 0xde, 0x8c, 0xa3, 0xd9,
+};
+static const unsigned char kat2875_entropyinreseed[] = {
+ 0x85, 0x0f, 0xfb, 0x89, 0xbc, 0x23, 0x56, 0x2f, 0x3e, 0xa0, 0x39, 0x47,
+ 0xc1, 0xaf, 0xa7, 0x30, 0x9a, 0x0c, 0xcd, 0xc0, 0xb7, 0x14, 0xbc, 0x94,
+ 0xff, 0x45, 0xd6, 0x68, 0x84, 0xb7, 0x4f, 0xba, 0x0b, 0xff, 0xce, 0x97,
+ 0x88, 0x7f, 0x2e, 0xfc, 0x17, 0x83, 0x88, 0xf3, 0x6f, 0x0e, 0xa9, 0x5e,
+};
+static const unsigned char kat2875_addinreseed[] = {
+ 0x50, 0xf6, 0x05, 0xcb, 0x94, 0x0f, 0x57, 0x3c, 0x4e, 0xf3, 0xdd, 0xff,
+ 0x8c, 0xaa, 0x9a, 0x3f, 0x54, 0x4f, 0x40, 0xfd, 0xf5, 0x83, 0xb8, 0x2c,
+ 0xd7, 0x93, 0x38, 0x52, 0x3d, 0x89, 0x6f, 0x72, 0xf8, 0x6b, 0xe1, 0xf9,
+ 0xbb, 0x37, 0xd9, 0xac, 0xa0, 0x2a, 0x28, 0x56, 0xf7, 0x13, 0xc8, 0x12,
+};
+static const unsigned char kat2875_addin0[] = {
+ 0xda, 0x7b, 0xcf, 0x68, 0x10, 0xa6, 0xb3, 0x82, 0x05, 0x48, 0x06, 0x5e,
+ 0xdb, 0xec, 0x0f, 0xa2, 0xfd, 0x4b, 0xc0, 0x3e, 0x5d, 0x50, 0x66, 0x6f,
+ 0x98, 0xa8, 0xbe, 0xa6, 0xb7, 0x44, 0xe0, 0x4a, 0xaf, 0xa0, 0x71, 0x45,
+ 0x82, 0xf1, 0x1b, 0x66, 0x08, 0x85, 0x2c, 0x45, 0xee, 0x51, 0xdf, 0x6b,
+};
+static const unsigned char kat2875_addin1[] = {
+ 0x4e, 0x9c, 0x0c, 0x77, 0x06, 0x99, 0x65, 0x62, 0x17, 0xa0, 0xb2, 0xdb,
+ 0xb4, 0x66, 0xa0, 0xfc, 0xb0, 0xcd, 0xb5, 0xd4, 0xa4, 0xa0, 0x5d, 0xa4,
+ 0x0f, 0xa2, 0xeb, 0x54, 0x6f, 0x2f, 0x0f, 0x28, 0xae, 0xa5, 0x75, 0xa0,
+ 0xbd, 0xf6, 0xe8, 0x93, 0x52, 0xd5, 0x19, 0xdb, 0x44, 0xf4, 0x7d, 0xc5,
+};
+static const unsigned char kat2875_retbits[] = {
+ 0x40, 0xec, 0x0e, 0x8e, 0x3e, 0x54, 0xcd, 0x4f, 0xd7, 0x8f, 0x5e, 0x00,
+ 0x6b, 0xf3, 0x13, 0x4c, 0x37, 0x8b, 0xa6, 0x19, 0xcc, 0xf9, 0xe7, 0x53,
+ 0x0c, 0x79, 0x21, 0x7d, 0xa6, 0x31, 0x45, 0x8b, 0x5f, 0x91, 0x35, 0xbc,
+ 0x8b, 0x0d, 0x6f, 0x2e, 0x74, 0x2c, 0x53, 0xb5, 0x8d, 0x0e, 0xbc, 0x18,
+ 0x26, 0x3f, 0x9d, 0x2e, 0xf3, 0x7a, 0x2f, 0xa0, 0xfb, 0x08, 0x6d, 0x21,
+ 0x93, 0x85, 0x78, 0x63,
+};
+static const struct drbg_kat_pr_false kat2875_t = {
+ 9, kat2875_entropyin, kat2875_nonce, kat2875_persstr,
+ kat2875_entropyinreseed, kat2875_addinreseed, kat2875_addin0,
+ kat2875_addin1, kat2875_retbits
+};
+static const struct drbg_kat kat2875 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2875_t
+};
+
+static const unsigned char kat2876_entropyin[] = {
+ 0x21, 0x9a, 0x36, 0x4a, 0xd3, 0x62, 0xfd, 0x8a, 0x1d, 0x69, 0xc1, 0x28,
+ 0x4f, 0xd6, 0x4c, 0xc9, 0xec, 0x05, 0xe6, 0xbf, 0xbd, 0xd1, 0x33, 0xac,
+ 0x91, 0x70, 0x59, 0x4b, 0x5d, 0x95, 0x94, 0x6d, 0x3d, 0xda, 0x2e, 0xbc,
+ 0xc5, 0x8d, 0xee, 0xac, 0xe8, 0x6f, 0x9d, 0xca, 0x5a, 0xd9, 0x9c, 0x18,
+};
+static const unsigned char kat2876_nonce[] = {0};
+static const unsigned char kat2876_persstr[] = {
+ 0xb0, 0xb2, 0x7b, 0x03, 0xfc, 0x65, 0xef, 0xfe, 0x46, 0x10, 0xe6, 0x19,
+ 0x16, 0xf2, 0xe9, 0xbd, 0x25, 0x2d, 0x47, 0xef, 0xcc, 0x08, 0xb8, 0x4a,
+ 0xa5, 0x05, 0xb1, 0xbe, 0xfd, 0x3a, 0x7e, 0x92, 0x95, 0xca, 0x76, 0x4a,
+ 0xc8, 0x8f, 0x09, 0x9b, 0xbe, 0xcc, 0x28, 0x30, 0x1f, 0x0f, 0x29, 0x8e,
+};
+static const unsigned char kat2876_entropyinreseed[] = {
+ 0x1b, 0xcc, 0xdb, 0x4b, 0x2c, 0xe8, 0x63, 0xfb, 0xee, 0x10, 0x4d, 0x7a,
+ 0x56, 0xf2, 0xcd, 0x88, 0xa4, 0x4a, 0x08, 0x83, 0x92, 0x88, 0x3a, 0x6d,
+ 0xb3, 0x0e, 0x6f, 0xc7, 0xbf, 0x56, 0x11, 0x75, 0x9c, 0x71, 0xd5, 0x3a,
+ 0x61, 0xfe, 0x62, 0xb6, 0x31, 0x4d, 0x74, 0x26, 0xe5, 0x10, 0xa7, 0x22,
+};
+static const unsigned char kat2876_addinreseed[] = {
+ 0xa0, 0x6e, 0xab, 0x3b, 0x05, 0xeb, 0x36, 0x49, 0xa0, 0x1b, 0xe8, 0x2a,
+ 0x35, 0x60, 0x30, 0xef, 0xfd, 0xbf, 0x45, 0xfd, 0x71, 0xf4, 0x9b, 0x18,
+ 0x62, 0xec, 0xf3, 0x3f, 0xdb, 0x28, 0xa7, 0x19, 0x1a, 0x34, 0xf1, 0x04,
+ 0xb9, 0xed, 0xa1, 0xda, 0x4b, 0xa4, 0x8d, 0xaf, 0x9d, 0xa3, 0x81, 0xb6,
+};
+static const unsigned char kat2876_addin0[] = {
+ 0x88, 0xb1, 0x7e, 0x13, 0xe0, 0x2a, 0x7e, 0x9a, 0x3f, 0x82, 0x63, 0x94,
+ 0x6f, 0xae, 0x0b, 0x6a, 0x90, 0x52, 0x69, 0x2c, 0x3c, 0x5c, 0xbe, 0x85,
+ 0x83, 0x69, 0xc4, 0xd0, 0xb1, 0x98, 0xb9, 0xc6, 0xa8, 0xf4, 0xc8, 0x7f,
+ 0xf5, 0xe6, 0xb2, 0x83, 0x5a, 0x79, 0x44, 0xb9, 0x11, 0x26, 0x6a, 0xa9,
+};
+static const unsigned char kat2876_addin1[] = {
+ 0x82, 0x82, 0x22, 0xc8, 0xa2, 0x75, 0x42, 0x7a, 0x5f, 0x8a, 0x96, 0x3d,
+ 0x0d, 0x65, 0xe9, 0x2f, 0x61, 0x70, 0xd5, 0x08, 0x9c, 0x9a, 0x16, 0x24,
+ 0x29, 0xc0, 0x93, 0xa2, 0x8d, 0xd6, 0x9f, 0x71, 0x13, 0x53, 0x42, 0xf1,
+ 0x6b, 0x3b, 0xae, 0xa9, 0xa4, 0x76, 0x4e, 0x2c, 0xc3, 0x76, 0x22, 0x67,
+};
+static const unsigned char kat2876_retbits[] = {
+ 0xa7, 0x39, 0xf9, 0xfe, 0xe9, 0xa4, 0x00, 0x49, 0xe4, 0x2b, 0x00, 0xb3,
+ 0x81, 0xa1, 0xf6, 0x63, 0x87, 0x7a, 0xbb, 0x77, 0x6e, 0xc6, 0x55, 0xe3,
+ 0xa7, 0x87, 0x0b, 0xd9, 0x4b, 0xea, 0x1a, 0x25, 0xd3, 0xc6, 0xd3, 0x80,
+ 0xec, 0xed, 0x43, 0x5e, 0x49, 0x80, 0x44, 0xda, 0xf7, 0x8b, 0x34, 0x9b,
+ 0xc1, 0x86, 0x8e, 0x4b, 0xff, 0x62, 0x57, 0xcf, 0x27, 0x11, 0xed, 0x08,
+ 0xe2, 0x35, 0x72, 0x01,
+};
+static const struct drbg_kat_pr_false kat2876_t = {
+ 10, kat2876_entropyin, kat2876_nonce, kat2876_persstr,
+ kat2876_entropyinreseed, kat2876_addinreseed, kat2876_addin0,
+ kat2876_addin1, kat2876_retbits
+};
+static const struct drbg_kat kat2876 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2876_t
+};
+
+static const unsigned char kat2877_entropyin[] = {
+ 0xf8, 0x51, 0x3c, 0x2f, 0x6e, 0x46, 0xf7, 0x5f, 0xce, 0x36, 0x71, 0xcc,
+ 0xb3, 0xc6, 0x91, 0x58, 0x58, 0x3a, 0x87, 0x3b, 0x0d, 0xda, 0x83, 0xd8,
+ 0xb1, 0xcd, 0x54, 0x8f, 0x4e, 0x5e, 0xfd, 0x75, 0x64, 0x2f, 0x2c, 0x23,
+ 0xcf, 0x87, 0x92, 0xd5, 0x10, 0x23, 0xf3, 0x1d, 0x79, 0x5f, 0x6f, 0x5b,
+};
+static const unsigned char kat2877_nonce[] = {0};
+static const unsigned char kat2877_persstr[] = {
+ 0xe9, 0x4f, 0x72, 0x12, 0x25, 0x78, 0x85, 0x51, 0x1b, 0x15, 0xa8, 0x73,
+ 0xd0, 0x15, 0x8f, 0xa5, 0xea, 0x64, 0x88, 0x46, 0xaf, 0xbc, 0xf9, 0xd6,
+ 0x2a, 0x7a, 0xbc, 0x4e, 0x69, 0x09, 0xdd, 0x43, 0xc6, 0x71, 0xfa, 0x18,
+ 0xbc, 0x28, 0x9f, 0x47, 0xe2, 0x30, 0x1e, 0x9a, 0xa6, 0x9c, 0x3e, 0x88,
+};
+static const unsigned char kat2877_entropyinreseed[] = {
+ 0x48, 0x7b, 0x9c, 0x18, 0x66, 0xff, 0xda, 0xaf, 0x67, 0x60, 0xcd, 0xee,
+ 0x3d, 0xf5, 0xa9, 0x30, 0x19, 0x6d, 0x30, 0xb0, 0xac, 0x8d, 0xb7, 0x80,
+ 0x65, 0x65, 0x77, 0xdd, 0xfc, 0x1f, 0xf3, 0x50, 0x8c, 0x45, 0x1e, 0xf2,
+ 0xb0, 0xb4, 0x78, 0xa2, 0xcf, 0x0c, 0x73, 0x02, 0x75, 0x97, 0xb2, 0xae,
+};
+static const unsigned char kat2877_addinreseed[] = {
+ 0x73, 0x87, 0xb5, 0x9f, 0x8c, 0x78, 0xe7, 0x9d, 0x36, 0xed, 0xac, 0xbb,
+ 0x42, 0x8f, 0xd5, 0x15, 0xef, 0x9e, 0x58, 0x08, 0x60, 0x59, 0xbf, 0x7f,
+ 0xd6, 0x42, 0x05, 0x3b, 0x0f, 0x57, 0x06, 0xcf, 0xe8, 0x6e, 0xb3, 0xc3,
+ 0x5c, 0xa0, 0xb6, 0xf0, 0x2e, 0x5d, 0x13, 0x04, 0xe4, 0x76, 0xe3, 0xcf,
+};
+static const unsigned char kat2877_addin0[] = {
+ 0xba, 0xfc, 0x59, 0xef, 0x40, 0xe5, 0x9d, 0x8c, 0x28, 0x85, 0x12, 0x12,
+ 0xe1, 0xc3, 0x57, 0xcc, 0xe0, 0xd0, 0x6f, 0x02, 0xc6, 0x9d, 0x14, 0x58,
+ 0x51, 0x70, 0xca, 0x8e, 0xb1, 0x83, 0x96, 0xa3, 0x31, 0xd6, 0x35, 0xcf,
+ 0x06, 0x51, 0x31, 0x98, 0x42, 0xce, 0xe2, 0xf7, 0xc8, 0x72, 0x85, 0xc2,
+};
+static const unsigned char kat2877_addin1[] = {
+ 0x82, 0xd9, 0x05, 0xba, 0x69, 0xb6, 0xc4, 0x5c, 0xa2, 0x81, 0x07, 0xbe,
+ 0xb6, 0x69, 0x8a, 0x15, 0x26, 0x31, 0xab, 0x48, 0x61, 0x42, 0x35, 0xf6,
+ 0xa9, 0xf1, 0x2e, 0x01, 0x9f, 0x66, 0xbf, 0x32, 0x61, 0x51, 0xd9, 0xee,
+ 0x84, 0xe0, 0xcd, 0x42, 0xb6, 0x56, 0x6d, 0xbf, 0xfb, 0x46, 0xec, 0x35,
+};
+static const unsigned char kat2877_retbits[] = {
+ 0x16, 0x3f, 0x48, 0xd0, 0x9f, 0x3e, 0x9e, 0xbf, 0x9f, 0x86, 0x47, 0x76,
+ 0x6a, 0x0b, 0x2e, 0x18, 0x9a, 0x2f, 0x3a, 0x21, 0xa5, 0xa4, 0xe3, 0x1c,
+ 0x8a, 0x4f, 0x3b, 0xd1, 0x38, 0xcc, 0x50, 0x03, 0x0a, 0xc8, 0xbe, 0xa1,
+ 0xc4, 0xd9, 0xe9, 0xaa, 0x0b, 0x67, 0xf3, 0x49, 0x26, 0x23, 0x9f, 0xbc,
+ 0xed, 0xfd, 0x19, 0x92, 0xda, 0x16, 0x5b, 0x94, 0x1c, 0xf0, 0x3b, 0x56,
+ 0x73, 0x77, 0x37, 0xb2,
+};
+static const struct drbg_kat_pr_false kat2877_t = {
+ 11, kat2877_entropyin, kat2877_nonce, kat2877_persstr,
+ kat2877_entropyinreseed, kat2877_addinreseed, kat2877_addin0,
+ kat2877_addin1, kat2877_retbits
+};
+static const struct drbg_kat kat2877 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2877_t
+};
+
+static const unsigned char kat2878_entropyin[] = {
+ 0x0a, 0x8f, 0x09, 0x27, 0x64, 0xd4, 0x73, 0xd4, 0x82, 0x15, 0xe9, 0x47,
+ 0xea, 0x8a, 0x32, 0xb5, 0xda, 0x8e, 0xa8, 0x6d, 0x8e, 0xd0, 0xd8, 0x3b,
+ 0xce, 0x31, 0xb1, 0xb5, 0xa2, 0x1e, 0x7c, 0x5f, 0x1a, 0xf2, 0x18, 0x6a,
+ 0x39, 0xca, 0xf9, 0xaf, 0xa6, 0x16, 0x44, 0xca, 0xef, 0x02, 0xef, 0x9b,
+};
+static const unsigned char kat2878_nonce[] = {0};
+static const unsigned char kat2878_persstr[] = {
+ 0x84, 0x63, 0x7f, 0xab, 0xa7, 0x56, 0x91, 0x7b, 0x0f, 0x44, 0xba, 0x2e,
+ 0x0e, 0x26, 0x54, 0x6f, 0x52, 0x39, 0x78, 0x2e, 0x4d, 0x9f, 0x95, 0x2e,
+ 0xe2, 0x51, 0x36, 0x70, 0x81, 0x62, 0x9e, 0x71, 0xc2, 0x0a, 0x74, 0x59,
+ 0x99, 0x5a, 0x75, 0x63, 0x81, 0x0d, 0xae, 0xab, 0x74, 0x22, 0x06, 0x64,
+};
+static const unsigned char kat2878_entropyinreseed[] = {
+ 0xea, 0xca, 0xde, 0xd3, 0xd8, 0x9a, 0x63, 0xb9, 0x4a, 0x5c, 0x14, 0xc3,
+ 0x08, 0x73, 0x06, 0xe6, 0x70, 0xfc, 0x4e, 0xe7, 0xd5, 0x6c, 0xaf, 0xef,
+ 0x4c, 0x5a, 0xa7, 0xd5, 0x53, 0xca, 0x89, 0xed, 0x34, 0x41, 0x80, 0x56,
+ 0xa4, 0x4f, 0x54, 0x47, 0xe2, 0xb0, 0x7d, 0xd5, 0x41, 0xac, 0x46, 0x45,
+};
+static const unsigned char kat2878_addinreseed[] = {
+ 0x10, 0x4a, 0x15, 0x41, 0x31, 0x3f, 0xc4, 0xbe, 0x9d, 0x34, 0xbc, 0xed,
+ 0x28, 0x8c, 0x1c, 0x1b, 0x6f, 0xa7, 0x93, 0xe9, 0x09, 0x6f, 0x8b, 0xe5,
+ 0x67, 0x3a, 0x2c, 0x68, 0x25, 0xda, 0xbe, 0xf9, 0x1f, 0xd8, 0x8e, 0x45,
+ 0xa0, 0x61, 0xb2, 0xd8, 0x97, 0xf9, 0xb5, 0xe8, 0xa8, 0xae, 0x0a, 0xd3,
+};
+static const unsigned char kat2878_addin0[] = {
+ 0xe3, 0x0c, 0x9d, 0x8a, 0xba, 0x0b, 0xd5, 0xdc, 0x63, 0xd9, 0x11, 0x89,
+ 0x7e, 0x4d, 0xca, 0xdb, 0xea, 0xcc, 0x3e, 0xd9, 0x39, 0x2d, 0x8e, 0x36,
+ 0x1b, 0x35, 0x6e, 0x02, 0xa8, 0x1d, 0x65, 0xbd, 0xab, 0x91, 0xf7, 0xe9,
+ 0xf8, 0xdd, 0x2b, 0x2b, 0xf9, 0xaf, 0x0d, 0xa5, 0x10, 0x0e, 0x77, 0xd4,
+};
+static const unsigned char kat2878_addin1[] = {
+ 0x2b, 0xed, 0x42, 0xb8, 0xc0, 0x54, 0x61, 0xba, 0x27, 0x56, 0xa5, 0xf3,
+ 0x83, 0x93, 0xd5, 0x53, 0x8d, 0x20, 0xeb, 0x9c, 0xf1, 0xc0, 0x67, 0x75,
+ 0xe7, 0xfe, 0xf7, 0x28, 0x43, 0x41, 0xf6, 0x1c, 0xcd, 0x34, 0xb0, 0x14,
+ 0x8d, 0x1e, 0x87, 0x0c, 0x19, 0x92, 0xdf, 0xd0, 0x65, 0x56, 0x0e, 0xd6,
+};
+static const unsigned char kat2878_retbits[] = {
+ 0x85, 0x5a, 0x6a, 0xf3, 0xe6, 0xdd, 0xdf, 0x19, 0x4c, 0xea, 0xaf, 0xce,
+ 0xf6, 0xf7, 0xee, 0x91, 0xf4, 0x89, 0xa6, 0x1a, 0x73, 0xb7, 0x59, 0xd4,
+ 0x1b, 0xe4, 0xd5, 0x29, 0x85, 0x10, 0xb9, 0x90, 0x2f, 0x5b, 0x78, 0xb1,
+ 0x16, 0x2c, 0xba, 0x41, 0x76, 0x84, 0x51, 0x96, 0x34, 0xb5, 0x78, 0xaf,
+ 0xda, 0x98, 0x02, 0xbd, 0x78, 0x2f, 0x04, 0xb3, 0xa2, 0x51, 0x06, 0xf3,
+ 0x58, 0x6a, 0xd8, 0xa4,
+};
+static const struct drbg_kat_pr_false kat2878_t = {
+ 12, kat2878_entropyin, kat2878_nonce, kat2878_persstr,
+ kat2878_entropyinreseed, kat2878_addinreseed, kat2878_addin0,
+ kat2878_addin1, kat2878_retbits
+};
+static const struct drbg_kat kat2878 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2878_t
+};
+
+static const unsigned char kat2879_entropyin[] = {
+ 0xed, 0x63, 0xe3, 0xb8, 0x8a, 0x2f, 0x0d, 0x6a, 0x40, 0xb7, 0xb3, 0x6a,
+ 0x06, 0xcd, 0x8d, 0x40, 0xec, 0x10, 0x15, 0x8a, 0xb6, 0xc4, 0xf8, 0xda,
+ 0xbd, 0xb8, 0x79, 0xe4, 0x5d, 0x22, 0xdb, 0x57, 0x33, 0x20, 0xd2, 0x64,
+ 0x1b, 0xfd, 0x7d, 0xb3, 0x1e, 0xb6, 0xbb, 0xf4, 0xc6, 0x33, 0x0b, 0x9f,
+};
+static const unsigned char kat2879_nonce[] = {0};
+static const unsigned char kat2879_persstr[] = {
+ 0xf8, 0x2a, 0x5e, 0xe8, 0x1f, 0x34, 0x9a, 0x69, 0xdf, 0xa6, 0xa6, 0xe5,
+ 0x3b, 0x40, 0x6b, 0xb5, 0x60, 0xcb, 0x03, 0x39, 0xf6, 0x1b, 0x38, 0x86,
+ 0x23, 0x70, 0x23, 0xae, 0x45, 0x82, 0xb9, 0x72, 0x5b, 0x87, 0x74, 0xa8,
+ 0x04, 0x4e, 0xc5, 0x13, 0x4e, 0xbd, 0x4d, 0x76, 0x06, 0xf1, 0x81, 0x88,
+};
+static const unsigned char kat2879_entropyinreseed[] = {
+ 0x71, 0x04, 0x52, 0x2c, 0x2a, 0x69, 0xbe, 0xc7, 0xe0, 0x10, 0xd9, 0x67,
+ 0x0d, 0x7a, 0xb9, 0x2d, 0xd8, 0x17, 0xac, 0x7f, 0xf0, 0x5d, 0x63, 0xab,
+ 0x0e, 0x12, 0xd4, 0x31, 0xd4, 0xc9, 0xae, 0xf4, 0xd7, 0x15, 0x42, 0x1c,
+ 0x1f, 0xb5, 0xd0, 0x5d, 0x3a, 0xec, 0xba, 0x36, 0x85, 0x9a, 0x60, 0x38,
+};
+static const unsigned char kat2879_addinreseed[] = {
+ 0x3b, 0x83, 0x03, 0x4e, 0xa4, 0x40, 0x60, 0x4d, 0x0b, 0x7d, 0x04, 0x85,
+ 0x76, 0x23, 0xe9, 0xad, 0xc0, 0xeb, 0x9a, 0xad, 0x4a, 0x45, 0xb2, 0x07,
+ 0x98, 0x63, 0xee, 0xd3, 0xd7, 0x2e, 0x65, 0xab, 0xf6, 0x7d, 0x25, 0x56,
+ 0x73, 0xe7, 0x69, 0xa2, 0xe2, 0x58, 0x4e, 0xea, 0x59, 0xf1, 0xeb, 0xaa,
+};
+static const unsigned char kat2879_addin0[] = {
+ 0x86, 0x78, 0xe4, 0xf8, 0x31, 0x88, 0x7e, 0x96, 0xa2, 0x7c, 0x3a, 0x8c,
+ 0xe0, 0x96, 0x3f, 0x4b, 0x34, 0xbb, 0xca, 0x25, 0x79, 0x1b, 0x06, 0x52,
+ 0x6c, 0xb6, 0xc5, 0x56, 0x24, 0xc3, 0x3d, 0x98, 0xa0, 0x35, 0x6b, 0xe6,
+ 0x24, 0x23, 0x8c, 0xec, 0xac, 0xba, 0x35, 0x35, 0xe8, 0x72, 0xc4, 0xc7,
+};
+static const unsigned char kat2879_addin1[] = {
+ 0xec, 0x34, 0x52, 0xea, 0x27, 0x22, 0x98, 0x4b, 0xbe, 0x6a, 0x5b, 0x7c,
+ 0x22, 0xad, 0x58, 0xdf, 0x37, 0xa8, 0x54, 0xab, 0xc8, 0x63, 0x0b, 0x9e,
+ 0x21, 0xbc, 0xd0, 0x46, 0x9e, 0xb2, 0x07, 0xe5, 0xf4, 0x4e, 0x04, 0x4f,
+ 0x5f, 0x66, 0x69, 0x20, 0xdd, 0x55, 0xe8, 0x1a, 0x39, 0x35, 0x00, 0xde,
+};
+static const unsigned char kat2879_retbits[] = {
+ 0xc3, 0x40, 0x76, 0x5f, 0xe7, 0xa3, 0x47, 0x9b, 0xef, 0x2d, 0x7d, 0x59,
+ 0xe3, 0x21, 0x06, 0x6f, 0x8a, 0xd0, 0xdb, 0x53, 0xae, 0xd4, 0xc5, 0x17,
+ 0xbf, 0x83, 0x39, 0x56, 0x6b, 0xf8, 0x77, 0xd5, 0x39, 0x21, 0xe6, 0xde,
+ 0x26, 0x50, 0xd0, 0x08, 0x05, 0x29, 0x00, 0x4a, 0x5f, 0xd3, 0x21, 0x24,
+ 0xce, 0x8e, 0x58, 0xa0, 0x40, 0xe2, 0xd5, 0x56, 0x56, 0xb3, 0x7d, 0x9e,
+ 0xa8, 0x27, 0xcb, 0x91,
+};
+static const struct drbg_kat_pr_false kat2879_t = {
+ 13, kat2879_entropyin, kat2879_nonce, kat2879_persstr,
+ kat2879_entropyinreseed, kat2879_addinreseed, kat2879_addin0,
+ kat2879_addin1, kat2879_retbits
+};
+static const struct drbg_kat kat2879 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2879_t
+};
+
+static const unsigned char kat2880_entropyin[] = {
+ 0x88, 0x2e, 0xd0, 0x54, 0x87, 0xdc, 0xe4, 0xb4, 0xf9, 0xe5, 0x8e, 0xc4,
+ 0xf2, 0xda, 0x1f, 0xa5, 0xd8, 0xeb, 0xb4, 0xef, 0x9f, 0xcb, 0xf7, 0xb0,
+ 0xa0, 0xe1, 0x5c, 0x4d, 0xcc, 0xb8, 0xe1, 0x97, 0x88, 0xf8, 0x6d, 0xcf,
+ 0x28, 0x85, 0xe7, 0x1a, 0x20, 0xcb, 0xd9, 0xac, 0x10, 0xa6, 0x64, 0x8e,
+};
+static const unsigned char kat2880_nonce[] = {0};
+static const unsigned char kat2880_persstr[] = {
+ 0x05, 0xf5, 0xbc, 0x41, 0x68, 0x7e, 0xa1, 0xe4, 0xc3, 0x4a, 0x69, 0x94,
+ 0x4f, 0xba, 0xe2, 0x83, 0xcf, 0xee, 0x4c, 0x42, 0xb1, 0xbb, 0xd7, 0x8f,
+ 0xdd, 0xb0, 0x97, 0x3d, 0x0f, 0xca, 0x94, 0x85, 0x39, 0xb6, 0x84, 0x36,
+ 0x58, 0xb6, 0x7c, 0x30, 0xb7, 0x31, 0x91, 0xb9, 0xa0, 0xbf, 0x29, 0x21,
+};
+static const unsigned char kat2880_entropyinreseed[] = {
+ 0xca, 0x16, 0x03, 0xd4, 0xc8, 0x71, 0x14, 0x04, 0xc7, 0xbd, 0xc1, 0x2c,
+ 0x7c, 0x75, 0xb2, 0x94, 0x3a, 0x4b, 0x04, 0x2e, 0xa1, 0xd2, 0xeb, 0x54,
+ 0x50, 0x6a, 0x68, 0x76, 0x95, 0x21, 0x57, 0xca, 0xf3, 0xb1, 0x52, 0xdc,
+ 0x75, 0xf2, 0x7f, 0x22, 0x13, 0x64, 0x5a, 0x14, 0x15, 0x77, 0xe8, 0xba,
+};
+static const unsigned char kat2880_addinreseed[] = {
+ 0x83, 0xcd, 0xa5, 0x33, 0x80, 0x88, 0x8d, 0x53, 0x51, 0x5e, 0x58, 0x15,
+ 0x4f, 0x89, 0xd5, 0x52, 0x8a, 0xb6, 0x9f, 0x31, 0xfb, 0xcf, 0xca, 0x34,
+ 0x98, 0x8c, 0xf0, 0x3c, 0x4c, 0xae, 0x5f, 0x60, 0xaa, 0x62, 0x91, 0xf3,
+ 0x2d, 0x99, 0xab, 0x2a, 0x72, 0x6b, 0x6e, 0x08, 0xd2, 0x50, 0x2c, 0xf5,
+};
+static const unsigned char kat2880_addin0[] = {
+ 0x5b, 0xf5, 0xca, 0x9f, 0x96, 0x4e, 0xdd, 0x91, 0xe8, 0xef, 0x49, 0x1f,
+ 0xd3, 0xcd, 0x32, 0xfa, 0xf9, 0xcb, 0x9d, 0x19, 0x93, 0xd8, 0x22, 0x19,
+ 0x14, 0xd1, 0x75, 0x1f, 0xb0, 0xd4, 0x25, 0x2a, 0x5c, 0xa9, 0x50, 0xe2,
+ 0x13, 0xf0, 0x88, 0x05, 0x09, 0x00, 0xb2, 0xbd, 0x74, 0xf5, 0xe3, 0x36,
+};
+static const unsigned char kat2880_addin1[] = {
+ 0xdb, 0xa2, 0x8d, 0xc1, 0xd8, 0xd6, 0x15, 0x65, 0x15, 0x47, 0x86, 0x7d,
+ 0x4e, 0xf4, 0x25, 0x19, 0x04, 0x5e, 0xe1, 0x63, 0x78, 0x14, 0x36, 0x85,
+ 0x10, 0x1d, 0xa4, 0x7a, 0x27, 0xb5, 0x54, 0x98, 0x07, 0x8e, 0x8a, 0x8f,
+ 0x48, 0x54, 0x05, 0x2f, 0x7c, 0xc6, 0xf5, 0xb0, 0x2e, 0x57, 0x1a, 0xe8,
+};
+static const unsigned char kat2880_retbits[] = {
+ 0x01, 0xf1, 0x19, 0x71, 0x83, 0x58, 0x19, 0xc1, 0x14, 0x8a, 0xa0, 0x79,
+ 0xee, 0xa0, 0x9f, 0xd5, 0xb1, 0xaa, 0x3a, 0xc6, 0xba, 0x55, 0x7a, 0xe3,
+ 0x31, 0x7b, 0x1a, 0x33, 0xf4, 0x50, 0x51, 0x74, 0xcf, 0x9d, 0x7e, 0x94,
+ 0x08, 0x21, 0xc9, 0xb0, 0xe5, 0x52, 0x7a, 0x1d, 0x3e, 0x18, 0x6a, 0x7a,
+ 0x83, 0xf1, 0x87, 0xc6, 0x2d, 0x32, 0x23, 0xcf, 0x59, 0x64, 0xff, 0x95,
+ 0x26, 0xd8, 0x48, 0x4c,
+};
+static const struct drbg_kat_pr_false kat2880_t = {
+ 14, kat2880_entropyin, kat2880_nonce, kat2880_persstr,
+ kat2880_entropyinreseed, kat2880_addinreseed, kat2880_addin0,
+ kat2880_addin1, kat2880_retbits
+};
+static const struct drbg_kat kat2880 = {
+ PR_FALSE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat2880_t
+};
+
+static const unsigned char kat2881_entropyin[] = {
+ 0x5d, 0x40, 0x41, 0x94, 0x2b, 0xcf, 0x68, 0x86, 0x4a, 0x49, 0x97, 0xd8,
+ 0x17, 0x1f, 0x1f, 0x9f,
+};
+static const unsigned char kat2881_nonce[] = {
+ 0xd4, 0xf1, 0xf4, 0xae, 0x08, 0xbc, 0xb3, 0xe1,
+};
+static const unsigned char kat2881_persstr[] = {0};
+static const unsigned char kat2881_entropyinpr1[] = {
+ 0xef, 0x55, 0xa7, 0x69, 0xb7, 0xea, 0xf0, 0x3f, 0xe0, 0x82, 0x02, 0x9b,
+ 0xb3, 0x2a, 0x2b, 0x9d,
+};
+static const unsigned char kat2881_addinpr1[] = {0};
+static const unsigned char kat2881_entropyinpr2[] = {
+ 0x82, 0x39, 0xe8, 0x65, 0xc0, 0xa4, 0x2e, 0x14, 0xb9, 0x64, 0xb9, 0xc0,
+ 0x9d, 0xe8, 0x5a, 0x20,
+};
+static const unsigned char kat2881_addinpr2[] = {0};
+static const unsigned char kat2881_retbits[] = {
+ 0x41, 0x55, 0x32, 0x02, 0x87, 0xee, 0xdc, 0xf7, 0xd4, 0x84, 0xc2, 0xc2,
+ 0xa1, 0xe2, 0xeb, 0x64, 0xb9, 0xc9, 0xce, 0x77, 0xc8, 0x72, 0x02, 0xa1,
+ 0xae, 0x16, 0x16, 0xc7, 0xa5, 0xcf, 0xd1, 0xc6, 0x87, 0xc7, 0xa0, 0xbf,
+ 0xcc, 0x85, 0xbd, 0xa4, 0x8f, 0xdd, 0x46, 0x29, 0xfd, 0x33, 0x0c, 0x22,
+ 0xd0, 0xa7, 0x60, 0x76, 0xf8, 0x8f, 0xc7, 0xcd, 0x04, 0x03, 0x7e, 0xe0,
+ 0x6b, 0x7a, 0xf6, 0x02,
+};
+static const struct drbg_kat_pr_true kat2881_t = {
+ 0, kat2881_entropyin, kat2881_nonce, kat2881_persstr,
+ kat2881_entropyinpr1, kat2881_addinpr1, kat2881_entropyinpr2,
+ kat2881_addinpr2, kat2881_retbits
+};
+static const struct drbg_kat kat2881 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2881_t
+};
+
+static const unsigned char kat2882_entropyin[] = {
+ 0xd1, 0x44, 0xc6, 0x61, 0x81, 0x6d, 0xca, 0x9d, 0x15, 0x28, 0x8a, 0x42,
+ 0x94, 0xd7, 0x28, 0x9c,
+};
+static const unsigned char kat2882_nonce[] = {
+ 0x43, 0x77, 0x19, 0x29, 0x1a, 0x6d, 0xc3, 0xa2,
+};
+static const unsigned char kat2882_persstr[] = {0};
+static const unsigned char kat2882_entropyinpr1[] = {
+ 0x96, 0xd8, 0x9e, 0x45, 0x32, 0xc9, 0xd2, 0x08, 0x7a, 0x6d, 0x97, 0x15,
+ 0xb4, 0xec, 0x80, 0xb1,
+};
+static const unsigned char kat2882_addinpr1[] = {0};
+static const unsigned char kat2882_entropyinpr2[] = {
+ 0x8b, 0xb6, 0x72, 0xb5, 0x24, 0x0b, 0x98, 0x65, 0x95, 0x95, 0xe9, 0xc9,
+ 0x28, 0x07, 0xeb, 0xc2,
+};
+static const unsigned char kat2882_addinpr2[] = {0};
+static const unsigned char kat2882_retbits[] = {
+ 0x70, 0x19, 0xd0, 0x4c, 0x45, 0x78, 0xd6, 0x68, 0xa9, 0x9a, 0xaa, 0xfe,
+ 0xc1, 0xdf, 0x27, 0x9a, 0x1c, 0x0d, 0x0d, 0xf7, 0x24, 0x75, 0x46, 0xcc,
+ 0x77, 0x6b, 0xdf, 0x89, 0xc6, 0x94, 0xdc, 0x74, 0x50, 0x10, 0x70, 0x18,
+ 0x9b, 0xdc, 0x96, 0xb4, 0x89, 0x23, 0x40, 0x1a, 0xce, 0x09, 0x87, 0xce,
+ 0xd2, 0xf3, 0xd5, 0xe4, 0x51, 0x67, 0x74, 0x11, 0x5a, 0xcc, 0x8b, 0x3b,
+ 0x8a, 0xf1, 0x23, 0xa8,
+};
+static const struct drbg_kat_pr_true kat2882_t = {
+ 1, kat2882_entropyin, kat2882_nonce, kat2882_persstr,
+ kat2882_entropyinpr1, kat2882_addinpr1, kat2882_entropyinpr2,
+ kat2882_addinpr2, kat2882_retbits
+};
+static const struct drbg_kat kat2882 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2882_t
+};
+
+static const unsigned char kat2883_entropyin[] = {
+ 0xfe, 0x76, 0x50, 0xb8, 0xb1, 0xae, 0xcf, 0xfc, 0xc9, 0x00, 0x14, 0x35,
+ 0xdc, 0xa0, 0x87, 0x6b,
+};
+static const unsigned char kat2883_nonce[] = {
+ 0x40, 0x59, 0xcb, 0x4f, 0x32, 0xe2, 0x1e, 0x3a,
+};
+static const unsigned char kat2883_persstr[] = {0};
+static const unsigned char kat2883_entropyinpr1[] = {
+ 0xf2, 0xab, 0xd9, 0x86, 0xdd, 0x1f, 0x32, 0x20, 0x6a, 0x97, 0x77, 0x1c,
+ 0x81, 0x3e, 0x45, 0xef,
+};
+static const unsigned char kat2883_addinpr1[] = {0};
+static const unsigned char kat2883_entropyinpr2[] = {
+ 0x85, 0x11, 0xb1, 0x49, 0xf9, 0xa0, 0xd2, 0x9d, 0x58, 0x75, 0x2d, 0xce,
+ 0x26, 0x14, 0xbb, 0xa8,
+};
+static const unsigned char kat2883_addinpr2[] = {0};
+static const unsigned char kat2883_retbits[] = {
+ 0x23, 0x38, 0x9f, 0xdd, 0xea, 0xeb, 0xf3, 0x7f, 0xc6, 0xc3, 0x77, 0x56,
+ 0x8d, 0x76, 0x59, 0x8a, 0xc9, 0x7c, 0xf6, 0x1f, 0xbb, 0x3e, 0x9a, 0xfa,
+ 0xc7, 0x23, 0x21, 0x1b, 0x4b, 0xfc, 0xeb, 0x6f, 0x8a, 0x4e, 0xc6, 0x47,
+ 0x76, 0x65, 0x57, 0xb2, 0x42, 0x6b, 0xab, 0xf1, 0xd8, 0x45, 0xd2, 0xb1,
+ 0xea, 0xe6, 0x7d, 0xa5, 0xea, 0xb0, 0xce, 0x91, 0x13, 0xe3, 0x8b, 0x43,
+ 0x85, 0x27, 0xe7, 0x71,
+};
+static const struct drbg_kat_pr_true kat2883_t = {
+ 2, kat2883_entropyin, kat2883_nonce, kat2883_persstr,
+ kat2883_entropyinpr1, kat2883_addinpr1, kat2883_entropyinpr2,
+ kat2883_addinpr2, kat2883_retbits
+};
+static const struct drbg_kat kat2883 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2883_t
+};
+
+static const unsigned char kat2884_entropyin[] = {
+ 0xb0, 0x36, 0xdc, 0x82, 0x56, 0x8e, 0x4e, 0x6a, 0xfa, 0xa0, 0x8c, 0xf8,
+ 0xd0, 0x42, 0x13, 0xa1,
+};
+static const unsigned char kat2884_nonce[] = {
+ 0x53, 0x0c, 0xa6, 0x60, 0x01, 0xf8, 0x64, 0xf5,
+};
+static const unsigned char kat2884_persstr[] = {0};
+static const unsigned char kat2884_entropyinpr1[] = {
+ 0xf3, 0x44, 0x16, 0xb1, 0xda, 0xa3, 0xa5, 0xc2, 0x6c, 0x15, 0x53, 0x49,
+ 0x17, 0xc3, 0x37, 0x66,
+};
+static const unsigned char kat2884_addinpr1[] = {0};
+static const unsigned char kat2884_entropyinpr2[] = {
+ 0x6f, 0xe6, 0x23, 0x19, 0x85, 0x3b, 0xfd, 0x7c, 0x25, 0x0e, 0x59, 0x8e,
+ 0xd6, 0x2a, 0x5c, 0xf4,
+};
+static const unsigned char kat2884_addinpr2[] = {0};
+static const unsigned char kat2884_retbits[] = {
+ 0xb6, 0x3c, 0x1b, 0x91, 0x2a, 0x06, 0xf6, 0x0c, 0x17, 0xab, 0x0c, 0x4f,
+ 0x04, 0x2c, 0x9a, 0x54, 0xcb, 0x16, 0x27, 0x52, 0x22, 0xa8, 0x3e, 0x64,
+ 0x83, 0xa2, 0xf6, 0xb7, 0x2f, 0x32, 0xd1, 0xd0, 0x67, 0xca, 0xaa, 0xda,
+ 0x8d, 0xb6, 0x57, 0x93, 0x70, 0xab, 0xa1, 0x3a, 0x76, 0x9e, 0x7b, 0x6d,
+ 0x24, 0xfb, 0xff, 0x9f, 0x4e, 0xd2, 0x56, 0xa5, 0x39, 0xa4, 0x70, 0x6c,
+ 0xb1, 0xf2, 0x60, 0x54,
+};
+static const struct drbg_kat_pr_true kat2884_t = {
+ 3, kat2884_entropyin, kat2884_nonce, kat2884_persstr,
+ kat2884_entropyinpr1, kat2884_addinpr1, kat2884_entropyinpr2,
+ kat2884_addinpr2, kat2884_retbits
+};
+static const struct drbg_kat kat2884 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2884_t
+};
+
+static const unsigned char kat2885_entropyin[] = {
+ 0x41, 0x85, 0xba, 0xe8, 0x4c, 0x49, 0xe7, 0xfd, 0xe3, 0x19, 0x87, 0xa9,
+ 0x2d, 0xd9, 0x57, 0x8d,
+};
+static const unsigned char kat2885_nonce[] = {
+ 0x32, 0x21, 0x70, 0x95, 0x5f, 0x5a, 0x3a, 0x66,
+};
+static const unsigned char kat2885_persstr[] = {0};
+static const unsigned char kat2885_entropyinpr1[] = {
+ 0xe1, 0xf0, 0xc5, 0xa7, 0x91, 0x87, 0x79, 0x97, 0x3f, 0xc7, 0xa3, 0xb0,
+ 0x2a, 0xa1, 0xcf, 0x80,
+};
+static const unsigned char kat2885_addinpr1[] = {0};
+static const unsigned char kat2885_entropyinpr2[] = {
+ 0x8e, 0x52, 0x41, 0xd3, 0x10, 0xce, 0x99, 0x93, 0x8a, 0x55, 0x27, 0x5f,
+ 0xa8, 0x1f, 0x45, 0xfc,
+};
+static const unsigned char kat2885_addinpr2[] = {0};
+static const unsigned char kat2885_retbits[] = {
+ 0x1e, 0x25, 0x95, 0x26, 0x9c, 0x41, 0x92, 0x40, 0x29, 0x81, 0xdd, 0x09,
+ 0x7f, 0xd7, 0x4a, 0x02, 0x09, 0x03, 0xe9, 0xc9, 0x4b, 0x86, 0x3d, 0x24,
+ 0x70, 0x40, 0x05, 0x40, 0x1a, 0xd4, 0x86, 0x93, 0xc8, 0xad, 0x2f, 0x64,
+ 0x6e, 0xc8, 0xb2, 0x50, 0xee, 0xb2, 0xf2, 0x33, 0x47, 0x63, 0x98, 0x05,
+ 0x73, 0xab, 0x55, 0x04, 0x80, 0xf6, 0x54, 0x5d, 0xad, 0x25, 0x09, 0xa5,
+ 0xb3, 0xa4, 0xec, 0xda,
+};
+static const struct drbg_kat_pr_true kat2885_t = {
+ 4, kat2885_entropyin, kat2885_nonce, kat2885_persstr,
+ kat2885_entropyinpr1, kat2885_addinpr1, kat2885_entropyinpr2,
+ kat2885_addinpr2, kat2885_retbits
+};
+static const struct drbg_kat kat2885 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2885_t
+};
+
+static const unsigned char kat2886_entropyin[] = {
+ 0xfb, 0x65, 0x9d, 0x94, 0xd8, 0x08, 0x14, 0x4d, 0xfc, 0xad, 0x29, 0xa3,
+ 0x65, 0x52, 0x0d, 0xc7,
+};
+static const unsigned char kat2886_nonce[] = {
+ 0xc6, 0x5a, 0xf6, 0x5e, 0x00, 0x45, 0xb5, 0xa3,
+};
+static const unsigned char kat2886_persstr[] = {0};
+static const unsigned char kat2886_entropyinpr1[] = {
+ 0xa2, 0x10, 0x10, 0x0b, 0x8e, 0x68, 0x62, 0x1a, 0xd7, 0xd1, 0xe2, 0x38,
+ 0x52, 0xe4, 0xd9, 0x6f,
+};
+static const unsigned char kat2886_addinpr1[] = {0};
+static const unsigned char kat2886_entropyinpr2[] = {
+ 0xc6, 0x59, 0x8b, 0x54, 0xa8, 0x77, 0xb8, 0x58, 0xfd, 0x29, 0x50, 0x6a,
+ 0xe8, 0xfb, 0xc0, 0x8e,
+};
+static const unsigned char kat2886_addinpr2[] = {0};
+static const unsigned char kat2886_retbits[] = {
+ 0x9e, 0xee, 0xab, 0x86, 0xc0, 0x7f, 0x66, 0x82, 0xeb, 0x26, 0x62, 0x2e,
+ 0xf5, 0xcd, 0x72, 0xef, 0x92, 0xf0, 0xac, 0x93, 0x79, 0xde, 0x4d, 0xfc,
+ 0x73, 0x8a, 0x4e, 0x6e, 0x57, 0x46, 0x1c, 0x95, 0x3a, 0x69, 0x78, 0xc2,
+ 0x38, 0xa8, 0x8c, 0x23, 0xa7, 0x9c, 0x7b, 0x81, 0xf9, 0x7a, 0x7b, 0xdd,
+ 0x59, 0xb7, 0xd7, 0x66, 0xce, 0x65, 0xe8, 0x0c, 0x40, 0x97, 0xfe, 0x27,
+ 0x78, 0x78, 0xc5, 0x2b,
+};
+static const struct drbg_kat_pr_true kat2886_t = {
+ 5, kat2886_entropyin, kat2886_nonce, kat2886_persstr,
+ kat2886_entropyinpr1, kat2886_addinpr1, kat2886_entropyinpr2,
+ kat2886_addinpr2, kat2886_retbits
+};
+static const struct drbg_kat kat2886 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2886_t
+};
+
+static const unsigned char kat2887_entropyin[] = {
+ 0x0d, 0x46, 0x3a, 0x89, 0x7f, 0x38, 0x32, 0xdd, 0xde, 0x83, 0xaa, 0x86,
+ 0xb6, 0xc0, 0x91, 0x4a,
+};
+static const unsigned char kat2887_nonce[] = {
+ 0x67, 0x21, 0x04, 0xdc, 0xb1, 0x84, 0xbb, 0xfd,
+};
+static const unsigned char kat2887_persstr[] = {0};
+static const unsigned char kat2887_entropyinpr1[] = {
+ 0xb4, 0x02, 0x07, 0x2e, 0xcb, 0x60, 0x60, 0x69, 0xe0, 0xb2, 0xd4, 0x3c,
+ 0xfc, 0xba, 0xa5, 0x50,
+};
+static const unsigned char kat2887_addinpr1[] = {0};
+static const unsigned char kat2887_entropyinpr2[] = {
+ 0x3b, 0x06, 0x9a, 0x1c, 0x25, 0x29, 0x93, 0x78, 0xbe, 0x3c, 0xe1, 0x65,
+ 0x5f, 0x9f, 0x79, 0x3a,
+};
+static const unsigned char kat2887_addinpr2[] = {0};
+static const unsigned char kat2887_retbits[] = {
+ 0xa8, 0x02, 0x9a, 0xa1, 0xda, 0x28, 0x79, 0xd4, 0x55, 0x61, 0xca, 0x8e,
+ 0xa1, 0x5c, 0xde, 0x65, 0xa7, 0x2d, 0x85, 0xfa, 0x15, 0x72, 0x64, 0x81,
+ 0x0e, 0xf2, 0x75, 0x05, 0x37, 0xd9, 0xb7, 0x0b, 0xc0, 0xa2, 0x1d, 0xea,
+ 0x85, 0x42, 0x6e, 0x89, 0x71, 0x2e, 0x4d, 0x96, 0xe8, 0x5c, 0xf3, 0x73,
+ 0x79, 0x29, 0xbd, 0xf6, 0x59, 0xd0, 0xcb, 0xf5, 0x5d, 0x2d, 0x28, 0x75,
+ 0x8a, 0xbc, 0x36, 0xbe,
+};
+static const struct drbg_kat_pr_true kat2887_t = {
+ 6, kat2887_entropyin, kat2887_nonce, kat2887_persstr,
+ kat2887_entropyinpr1, kat2887_addinpr1, kat2887_entropyinpr2,
+ kat2887_addinpr2, kat2887_retbits
+};
+static const struct drbg_kat kat2887 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2887_t
+};
+
+static const unsigned char kat2888_entropyin[] = {
+ 0x77, 0x66, 0x33, 0x90, 0xe4, 0x37, 0x28, 0x70, 0x8f, 0x9f, 0x31, 0x0f,
+ 0x19, 0x27, 0xca, 0x7a,
+};
+static const unsigned char kat2888_nonce[] = {
+ 0xdd, 0x56, 0xf5, 0x18, 0x5d, 0x49, 0xb3, 0xd9,
+};
+static const unsigned char kat2888_persstr[] = {0};
+static const unsigned char kat2888_entropyinpr1[] = {
+ 0x14, 0x2c, 0x5f, 0xc3, 0x93, 0x7b, 0xf7, 0xd3, 0x00, 0xa8, 0xff, 0xe4,
+ 0xc3, 0x56, 0xfb, 0xe1,
+};
+static const unsigned char kat2888_addinpr1[] = {0};
+static const unsigned char kat2888_entropyinpr2[] = {
+ 0xeb, 0x80, 0x19, 0xd0, 0x87, 0x9c, 0x9e, 0x2f, 0x12, 0xed, 0x9a, 0x2c,
+ 0x2b, 0x18, 0xec, 0x76,
+};
+static const unsigned char kat2888_addinpr2[] = {0};
+static const unsigned char kat2888_retbits[] = {
+ 0x6f, 0x12, 0x96, 0x54, 0x5b, 0xcb, 0x43, 0xe5, 0x7b, 0x86, 0x20, 0xa5,
+ 0xd1, 0x2c, 0xf5, 0xcd, 0xe6, 0xe2, 0xfa, 0x4c, 0xf9, 0x3b, 0x91, 0x32,
+ 0xb3, 0xf0, 0x9f, 0x34, 0x0a, 0x1d, 0x5a, 0x6d, 0x82, 0x79, 0x23, 0x6d,
+ 0xec, 0x38, 0x0b, 0xb1, 0x1b, 0x32, 0xb6, 0x53, 0xe5, 0x83, 0xa4, 0x85,
+ 0x2b, 0x13, 0x04, 0xa2, 0xfe, 0x5f, 0x31, 0x34, 0xc3, 0x45, 0x18, 0x4c,
+ 0xee, 0x07, 0xb1, 0xad,
+};
+static const struct drbg_kat_pr_true kat2888_t = {
+ 7, kat2888_entropyin, kat2888_nonce, kat2888_persstr,
+ kat2888_entropyinpr1, kat2888_addinpr1, kat2888_entropyinpr2,
+ kat2888_addinpr2, kat2888_retbits
+};
+static const struct drbg_kat kat2888 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2888_t
+};
+
+static const unsigned char kat2889_entropyin[] = {
+ 0x48, 0x6a, 0x33, 0xe1, 0x4c, 0xdc, 0x8c, 0x66, 0x12, 0x9f, 0xb8, 0x6a,
+ 0x8f, 0xce, 0xfd, 0xba,
+};
+static const unsigned char kat2889_nonce[] = {
+ 0x3a, 0xe7, 0x4c, 0x55, 0x99, 0xf8, 0x54, 0xd6,
+};
+static const unsigned char kat2889_persstr[] = {0};
+static const unsigned char kat2889_entropyinpr1[] = {
+ 0x12, 0x92, 0x2f, 0x09, 0xd7, 0x64, 0x6c, 0x92, 0xab, 0x28, 0x71, 0xa5,
+ 0x49, 0xec, 0xdf, 0xdd,
+};
+static const unsigned char kat2889_addinpr1[] = {0};
+static const unsigned char kat2889_entropyinpr2[] = {
+ 0xff, 0x24, 0x66, 0x77, 0x2a, 0x23, 0x3e, 0x04, 0xc0, 0xa4, 0xc6, 0x13,
+ 0x16, 0x3c, 0xf7, 0x69,
+};
+static const unsigned char kat2889_addinpr2[] = {0};
+static const unsigned char kat2889_retbits[] = {
+ 0x69, 0x80, 0x52, 0x27, 0xed, 0x7c, 0xd3, 0x5b, 0xc9, 0x26, 0x29, 0x7a,
+ 0x55, 0x72, 0xf7, 0xf8, 0x3c, 0x34, 0x60, 0xab, 0x8e, 0x0c, 0xda, 0x6b,
+ 0xb5, 0xed, 0x42, 0x13, 0x09, 0x3c, 0x9a, 0xc6, 0xbf, 0x10, 0xd2, 0x28,
+ 0x73, 0x16, 0x1d, 0x3e, 0x9e, 0xfc, 0x71, 0x49, 0x45, 0x69, 0x60, 0x56,
+ 0x4b, 0xc8, 0x20, 0xc7, 0x60, 0xba, 0x03, 0x27, 0xdd, 0xf8, 0xf7, 0xa5,
+ 0x46, 0x09, 0x8b, 0x12,
+};
+static const struct drbg_kat_pr_true kat2889_t = {
+ 8, kat2889_entropyin, kat2889_nonce, kat2889_persstr,
+ kat2889_entropyinpr1, kat2889_addinpr1, kat2889_entropyinpr2,
+ kat2889_addinpr2, kat2889_retbits
+};
+static const struct drbg_kat kat2889 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2889_t
+};
+
+static const unsigned char kat2890_entropyin[] = {
+ 0xf1, 0xbf, 0xed, 0xaf, 0x61, 0x94, 0xc0, 0x4c, 0xa5, 0x3d, 0xc5, 0xd2,
+ 0xa7, 0xc9, 0xdd, 0x74,
+};
+static const unsigned char kat2890_nonce[] = {
+ 0x72, 0x23, 0x29, 0xa4, 0x46, 0xba, 0x64, 0x02,
+};
+static const unsigned char kat2890_persstr[] = {0};
+static const unsigned char kat2890_entropyinpr1[] = {
+ 0xbd, 0xc6, 0x44, 0xf1, 0xf5, 0x10, 0x3d, 0x48, 0x69, 0x4d, 0x65, 0xdf,
+ 0xa5, 0x7d, 0x6c, 0x0e,
+};
+static const unsigned char kat2890_addinpr1[] = {0};
+static const unsigned char kat2890_entropyinpr2[] = {
+ 0x9e, 0x33, 0x1c, 0x47, 0x03, 0xf1, 0x44, 0x7f, 0x21, 0xd6, 0xb7, 0x78,
+ 0x55, 0x7a, 0x83, 0x86,
+};
+static const unsigned char kat2890_addinpr2[] = {0};
+static const unsigned char kat2890_retbits[] = {
+ 0x36, 0x2e, 0xb6, 0xde, 0xae, 0x3a, 0xbe, 0x13, 0x6d, 0x61, 0x01, 0xd0,
+ 0xe7, 0xfa, 0x96, 0x73, 0x5c, 0x83, 0x7d, 0xfa, 0x5d, 0x11, 0x3d, 0x19,
+ 0xbc, 0xcc, 0x21, 0xc2, 0xb5, 0xc1, 0xc3, 0x0d, 0x1e, 0x8a, 0xdc, 0xca,
+ 0x36, 0x3e, 0x6a, 0xe8, 0xa9, 0xc7, 0x86, 0x73, 0xc8, 0x1f, 0xbe, 0x81,
+ 0x2a, 0xdc, 0x87, 0x5e, 0x95, 0x41, 0x74, 0x48, 0xae, 0xf0, 0x21, 0x23,
+ 0xd2, 0xe6, 0x2d, 0xc9,
+};
+static const struct drbg_kat_pr_true kat2890_t = {
+ 9, kat2890_entropyin, kat2890_nonce, kat2890_persstr,
+ kat2890_entropyinpr1, kat2890_addinpr1, kat2890_entropyinpr2,
+ kat2890_addinpr2, kat2890_retbits
+};
+static const struct drbg_kat kat2890 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2890_t
+};
+
+static const unsigned char kat2891_entropyin[] = {
+ 0x35, 0xc8, 0xa3, 0x02, 0x19, 0x9b, 0x4b, 0xcb, 0xf6, 0x7c, 0x7c, 0x25,
+ 0xb4, 0xe4, 0x77, 0x95,
+};
+static const unsigned char kat2891_nonce[] = {
+ 0x9a, 0x28, 0xe5, 0x75, 0x09, 0x5e, 0x30, 0x67,
+};
+static const unsigned char kat2891_persstr[] = {0};
+static const unsigned char kat2891_entropyinpr1[] = {
+ 0xca, 0x79, 0x31, 0x38, 0x95, 0x39, 0x2d, 0x4f, 0x83, 0xf7, 0x65, 0xc6,
+ 0xa0, 0x62, 0xc0, 0xbf,
+};
+static const unsigned char kat2891_addinpr1[] = {0};
+static const unsigned char kat2891_entropyinpr2[] = {
+ 0xc0, 0x34, 0xfb, 0xf9, 0x32, 0xac, 0x63, 0x88, 0x57, 0xa1, 0x4d, 0xb6,
+ 0xdf, 0xc9, 0x53, 0xb2,
+};
+static const unsigned char kat2891_addinpr2[] = {0};
+static const unsigned char kat2891_retbits[] = {
+ 0x6e, 0xc9, 0x18, 0x06, 0x55, 0x56, 0xc1, 0x5a, 0x68, 0xa7, 0x37, 0x14,
+ 0xe8, 0xa3, 0x84, 0x2b, 0x8f, 0x48, 0xc4, 0xd7, 0xe1, 0x1e, 0x60, 0xe2,
+ 0xb8, 0xb0, 0xaf, 0x2a, 0xbf, 0x06, 0xfe, 0x58, 0xec, 0x06, 0xd5, 0x11,
+ 0x9b, 0x6b, 0x66, 0x3a, 0x24, 0xec, 0x7a, 0xd8, 0x55, 0x03, 0xea, 0xe2,
+ 0x93, 0x64, 0xac, 0x34, 0x64, 0x66, 0xf8, 0xbc, 0xf5, 0x14, 0xac, 0x07,
+ 0xdb, 0x99, 0xff, 0x9c,
+};
+static const struct drbg_kat_pr_true kat2891_t = {
+ 10, kat2891_entropyin, kat2891_nonce, kat2891_persstr,
+ kat2891_entropyinpr1, kat2891_addinpr1, kat2891_entropyinpr2,
+ kat2891_addinpr2, kat2891_retbits
+};
+static const struct drbg_kat kat2891 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2891_t
+};
+
+static const unsigned char kat2892_entropyin[] = {
+ 0x7d, 0xc6, 0xc0, 0x15, 0x86, 0x02, 0xb8, 0xe4, 0x0c, 0x13, 0x3b, 0x91,
+ 0x5f, 0xf1, 0x9d, 0xe0,
+};
+static const unsigned char kat2892_nonce[] = {
+ 0x98, 0xa4, 0x71, 0x79, 0xf5, 0x24, 0x97, 0x21,
+};
+static const unsigned char kat2892_persstr[] = {0};
+static const unsigned char kat2892_entropyinpr1[] = {
+ 0xfd, 0x07, 0xcb, 0xf1, 0x51, 0x77, 0x4f, 0xca, 0x5f, 0xdd, 0xd8, 0xae,
+ 0x01, 0xe3, 0x41, 0xd7,
+};
+static const unsigned char kat2892_addinpr1[] = {0};
+static const unsigned char kat2892_entropyinpr2[] = {
+ 0x5c, 0xc1, 0xac, 0x9b, 0xa1, 0xbe, 0x18, 0x56, 0x6d, 0x56, 0x58, 0xf0,
+ 0x38, 0x8d, 0xec, 0xf0,
+};
+static const unsigned char kat2892_addinpr2[] = {0};
+static const unsigned char kat2892_retbits[] = {
+ 0x65, 0x16, 0x15, 0x84, 0x03, 0xb4, 0xbe, 0x14, 0xc5, 0xf4, 0x4d, 0x0a,
+ 0x5f, 0xe6, 0x62, 0x34, 0x53, 0xb1, 0x34, 0xd2, 0x23, 0x48, 0xcf, 0x42,
+ 0x33, 0x65, 0x15, 0x01, 0x3f, 0xb3, 0x28, 0xb5, 0xe9, 0x3a, 0xc6, 0x45,
+ 0x67, 0xa3, 0xae, 0x4a, 0x3a, 0xd6, 0x53, 0xbf, 0x83, 0xf7, 0x4e, 0x4d,
+ 0x04, 0xc0, 0x37, 0xbe, 0xa0, 0x9a, 0x67, 0xa7, 0xc0, 0x63, 0x75, 0xf7,
+ 0xb4, 0xc2, 0x1c, 0x78,
+};
+static const struct drbg_kat_pr_true kat2892_t = {
+ 11, kat2892_entropyin, kat2892_nonce, kat2892_persstr,
+ kat2892_entropyinpr1, kat2892_addinpr1, kat2892_entropyinpr2,
+ kat2892_addinpr2, kat2892_retbits
+};
+static const struct drbg_kat kat2892 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2892_t
+};
+
+static const unsigned char kat2893_entropyin[] = {
+ 0xca, 0xa0, 0x25, 0x4b, 0xdc, 0x44, 0x78, 0x35, 0x33, 0x53, 0xb8, 0xd9,
+ 0x72, 0xec, 0x68, 0xa2,
+};
+static const unsigned char kat2893_nonce[] = {
+ 0xef, 0x76, 0xf6, 0x06, 0x27, 0x34, 0x9e, 0x5e,
+};
+static const unsigned char kat2893_persstr[] = {0};
+static const unsigned char kat2893_entropyinpr1[] = {
+ 0x3f, 0x6b, 0x0d, 0x2f, 0x25, 0x41, 0x01, 0xa3, 0xf4, 0xdf, 0xed, 0x0c,
+ 0x13, 0xdb, 0xcd, 0x8c,
+};
+static const unsigned char kat2893_addinpr1[] = {0};
+static const unsigned char kat2893_entropyinpr2[] = {
+ 0x2d, 0xa1, 0xf9, 0xfc, 0x9f, 0x09, 0xee, 0x00, 0x6a, 0x1e, 0x35, 0x04,
+ 0x7e, 0x27, 0x6b, 0x83,
+};
+static const unsigned char kat2893_addinpr2[] = {0};
+static const unsigned char kat2893_retbits[] = {
+ 0x88, 0x8f, 0xc6, 0xba, 0x66, 0xc0, 0x9a, 0x82, 0x81, 0x69, 0x74, 0xbb,
+ 0x18, 0x5a, 0x8e, 0x04, 0xf1, 0x14, 0x0c, 0xd2, 0x93, 0xe3, 0x98, 0xfb,
+ 0x1a, 0xa5, 0xc5, 0x8a, 0xf9, 0xc2, 0x8e, 0x88, 0xd7, 0xb3, 0xdd, 0x33,
+ 0x02, 0xd0, 0xd7, 0x8e, 0x9b, 0x29, 0x45, 0x67, 0xe2, 0x93, 0xaa, 0x8b,
+ 0x93, 0x00, 0x56, 0x61, 0xb4, 0x59, 0xc3, 0x62, 0xa0, 0xea, 0x48, 0x4c,
+ 0x99, 0x1f, 0x23, 0xfa,
+};
+static const struct drbg_kat_pr_true kat2893_t = {
+ 12, kat2893_entropyin, kat2893_nonce, kat2893_persstr,
+ kat2893_entropyinpr1, kat2893_addinpr1, kat2893_entropyinpr2,
+ kat2893_addinpr2, kat2893_retbits
+};
+static const struct drbg_kat kat2893 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2893_t
+};
+
+static const unsigned char kat2894_entropyin[] = {
+ 0x9c, 0xc2, 0x69, 0x98, 0x89, 0xec, 0xad, 0xd5, 0x9d, 0xa6, 0xea, 0xe3,
+ 0x9b, 0xaf, 0x1b, 0x27,
+};
+static const unsigned char kat2894_nonce[] = {
+ 0x6d, 0x7c, 0x96, 0x19, 0xf9, 0x2e, 0x51, 0xe3,
+};
+static const unsigned char kat2894_persstr[] = {0};
+static const unsigned char kat2894_entropyinpr1[] = {
+ 0x85, 0x2e, 0x84, 0x7d, 0xfd, 0xde, 0xec, 0x32, 0x5f, 0x52, 0x74, 0x68,
+ 0x7c, 0x81, 0xe8, 0xac,
+};
+static const unsigned char kat2894_addinpr1[] = {0};
+static const unsigned char kat2894_entropyinpr2[] = {
+ 0x5b, 0x6b, 0x1a, 0x88, 0x4d, 0xf2, 0xa2, 0x30, 0x28, 0x11, 0x00, 0x4f,
+ 0x82, 0x7e, 0x9d, 0x1e,
+};
+static const unsigned char kat2894_addinpr2[] = {0};
+static const unsigned char kat2894_retbits[] = {
+ 0x9f, 0x35, 0x11, 0xb2, 0xae, 0x19, 0xf2, 0xa9, 0xb5, 0xa8, 0xb7, 0x6d,
+ 0x6c, 0xee, 0xa0, 0x6f, 0x3a, 0xc9, 0x51, 0xc1, 0x0d, 0x47, 0x16, 0xf3,
+ 0x56, 0x11, 0x15, 0xc3, 0x3c, 0x01, 0xfc, 0xd3, 0x42, 0x3b, 0x26, 0x55,
+ 0xa1, 0x24, 0x3f, 0xe4, 0x1c, 0xe3, 0xb3, 0x78, 0x89, 0xc5, 0xf8, 0xa6,
+ 0xf3, 0xe9, 0x85, 0x6a, 0x60, 0x40, 0x80, 0x2a, 0x29, 0x73, 0x02, 0x33,
+ 0x73, 0xdf, 0x24, 0x1e,
+};
+static const struct drbg_kat_pr_true kat2894_t = {
+ 13, kat2894_entropyin, kat2894_nonce, kat2894_persstr,
+ kat2894_entropyinpr1, kat2894_addinpr1, kat2894_entropyinpr2,
+ kat2894_addinpr2, kat2894_retbits
+};
+static const struct drbg_kat kat2894 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2894_t
+};
+
+static const unsigned char kat2895_entropyin[] = {
+ 0xd4, 0xc2, 0xfc, 0x7c, 0xd9, 0x46, 0x08, 0x2e, 0x00, 0x93, 0xfd, 0x89,
+ 0x18, 0xbc, 0x80, 0xce,
+};
+static const unsigned char kat2895_nonce[] = {
+ 0x48, 0x8e, 0xba, 0x5e, 0x5f, 0xf2, 0x96, 0x06,
+};
+static const unsigned char kat2895_persstr[] = {0};
+static const unsigned char kat2895_entropyinpr1[] = {
+ 0xaa, 0x21, 0x13, 0x2b, 0x96, 0x9c, 0x7b, 0xd0, 0x71, 0x10, 0x3a, 0xd1,
+ 0x56, 0x63, 0x69, 0xc4,
+};
+static const unsigned char kat2895_addinpr1[] = {0};
+static const unsigned char kat2895_entropyinpr2[] = {
+ 0x66, 0x34, 0xe2, 0x17, 0x1d, 0x30, 0x89, 0x51, 0x07, 0x68, 0xc8, 0xd9,
+ 0x39, 0x07, 0xaa, 0x12,
+};
+static const unsigned char kat2895_addinpr2[] = {0};
+static const unsigned char kat2895_retbits[] = {
+ 0x6d, 0x10, 0x16, 0x41, 0x9b, 0xc3, 0x33, 0xab, 0xc2, 0xa9, 0x10, 0x59,
+ 0x84, 0x6e, 0xc3, 0x76, 0x4b, 0x72, 0x98, 0x74, 0xa1, 0x50, 0x69, 0x0a,
+ 0x50, 0xe8, 0xa3, 0x76, 0x3f, 0xb0, 0x75, 0x3b, 0x45, 0x2f, 0x75, 0xa4,
+ 0x54, 0x0e, 0x34, 0xb5, 0xdf, 0x3b, 0x0a, 0x43, 0x5a, 0xa5, 0xb1, 0x37,
+ 0x92, 0x6a, 0xa2, 0xfa, 0xda, 0x15, 0xdd, 0x05, 0x4c, 0xcb, 0x09, 0xb3,
+ 0x47, 0x4c, 0xce, 0x4b,
+};
+static const struct drbg_kat_pr_true kat2895_t = {
+ 14, kat2895_entropyin, kat2895_nonce, kat2895_persstr,
+ kat2895_entropyinpr1, kat2895_addinpr1, kat2895_entropyinpr2,
+ kat2895_addinpr2, kat2895_retbits
+};
+static const struct drbg_kat kat2895 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2895_t
+};
+
+static const unsigned char kat2896_entropyin[] = {
+ 0x8e, 0x83, 0xe0, 0xeb, 0x37, 0xea, 0x3e, 0x53, 0x5e, 0x17, 0x6e, 0x77,
+ 0xbd, 0xb1, 0x53, 0x90,
+};
+static const unsigned char kat2896_nonce[] = {
+ 0xfc, 0xdc, 0xc1, 0x3c, 0x9a, 0x88, 0x22, 0x94,
+};
+static const unsigned char kat2896_persstr[] = {0};
+static const unsigned char kat2896_entropyinpr1[] = {
+ 0x6a, 0x85, 0xe7, 0x37, 0xc8, 0xf1, 0x04, 0x31, 0x98, 0x4f, 0xc8, 0x73,
+ 0x67, 0xd1, 0x08, 0xf8,
+};
+static const unsigned char kat2896_addinpr1[] = {
+ 0xa2, 0xd9, 0x38, 0xcf, 0x8b, 0x29, 0x67, 0x5b, 0x65, 0x62, 0x6f, 0xe8,
+ 0xeb, 0xb3, 0x01, 0x76,
+};
+static const unsigned char kat2896_entropyinpr2[] = {
+ 0xd7, 0xa4, 0x68, 0xe2, 0x12, 0x74, 0xc3, 0xd9, 0xf1, 0xb7, 0x05, 0xbc,
+ 0xd4, 0xba, 0x04, 0x58,
+};
+static const unsigned char kat2896_addinpr2[] = {
+ 0x59, 0x63, 0x1e, 0x81, 0x8a, 0x14, 0xa8, 0xbb, 0xa1, 0xb8, 0x41, 0x25,
+ 0xd0, 0x7f, 0xcc, 0x43,
+};
+static const unsigned char kat2896_retbits[] = {
+ 0x78, 0xd6, 0xa6, 0x70, 0xff, 0xd1, 0x82, 0xf5, 0xa2, 0x88, 0x7f, 0x6d,
+ 0x3d, 0x8c, 0x39, 0xb1, 0xa8, 0xcb, 0x2c, 0x91, 0xab, 0x14, 0x7e, 0xbc,
+ 0x95, 0x45, 0x9f, 0x24, 0xb8, 0x20, 0xac, 0x21, 0x23, 0xdb, 0x72, 0xd7,
+ 0x12, 0x8d, 0x48, 0x95, 0xf3, 0x19, 0x0c, 0x43, 0xc6, 0x19, 0x45, 0xfc,
+ 0x8b, 0xac, 0x40, 0x29, 0x73, 0x00, 0x03, 0x45, 0x5e, 0x12, 0xff, 0x0c,
+ 0xc1, 0x02, 0x41, 0x82,
+};
+static const struct drbg_kat_pr_true kat2896_t = {
+ 0, kat2896_entropyin, kat2896_nonce, kat2896_persstr,
+ kat2896_entropyinpr1, kat2896_addinpr1, kat2896_entropyinpr2,
+ kat2896_addinpr2, kat2896_retbits
+};
+static const struct drbg_kat kat2896 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2896_t
+};
+
+static const unsigned char kat2897_entropyin[] = {
+ 0x91, 0xcf, 0x7f, 0x4f, 0x5a, 0x2d, 0xd7, 0x51, 0x9b, 0xf9, 0x10, 0xf2,
+ 0x16, 0x8b, 0x70, 0x19,
+};
+static const unsigned char kat2897_nonce[] = {
+ 0xed, 0x97, 0x8a, 0xef, 0xf4, 0x89, 0x99, 0x3f,
+};
+static const unsigned char kat2897_persstr[] = {0};
+static const unsigned char kat2897_entropyinpr1[] = {
+ 0x5f, 0xf7, 0x96, 0x69, 0x8e, 0x19, 0x8d, 0x68, 0xab, 0xac, 0x26, 0xea,
+ 0x2f, 0xa3, 0x21, 0xe6,
+};
+static const unsigned char kat2897_addinpr1[] = {
+ 0xd9, 0xbd, 0x7f, 0x0e, 0x62, 0x1e, 0x15, 0xa6, 0x43, 0x9d, 0x9b, 0x94,
+ 0xc4, 0x29, 0x85, 0xca,
+};
+static const unsigned char kat2897_entropyinpr2[] = {
+ 0xc1, 0x97, 0xaa, 0x6f, 0x40, 0x22, 0xc2, 0x90, 0xa4, 0x07, 0xa6, 0xa5,
+ 0x37, 0x81, 0x15, 0x0e,
+};
+static const unsigned char kat2897_addinpr2[] = {
+ 0x03, 0x6b, 0x4f, 0x6a, 0x11, 0x8b, 0x45, 0x25, 0xfc, 0xdf, 0xe7, 0xe8,
+ 0x6c, 0x3b, 0xd0, 0xef,
+};
+static const unsigned char kat2897_retbits[] = {
+ 0xc4, 0xee, 0x42, 0x06, 0x82, 0x57, 0x26, 0x47, 0x1a, 0x59, 0x2b, 0x9b,
+ 0xb8, 0xb6, 0x61, 0x15, 0xeb, 0xdf, 0x01, 0x47, 0x76, 0xc5, 0xe4, 0x17,
+ 0x0a, 0xd9, 0x60, 0xd6, 0x97, 0x6b, 0xb3, 0x54, 0x09, 0xae, 0xed, 0x2e,
+ 0xf2, 0xd1, 0xd6, 0x53, 0xa1, 0xb6, 0xe2, 0xbf, 0x28, 0xc7, 0xb2, 0xf2,
+ 0xf7, 0x3f, 0x33, 0x48, 0x48, 0x8b, 0x4c, 0x46, 0xdc, 0x12, 0xdd, 0x0b,
+ 0x5a, 0x90, 0x6e, 0x42,
+};
+static const struct drbg_kat_pr_true kat2897_t = {
+ 1, kat2897_entropyin, kat2897_nonce, kat2897_persstr,
+ kat2897_entropyinpr1, kat2897_addinpr1, kat2897_entropyinpr2,
+ kat2897_addinpr2, kat2897_retbits
+};
+static const struct drbg_kat kat2897 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2897_t
+};
+
+static const unsigned char kat2898_entropyin[] = {
+ 0x7e, 0xec, 0x9d, 0x6d, 0x0e, 0xdf, 0x0e, 0x2c, 0xe0, 0xd5, 0x21, 0xc8,
+ 0x85, 0x6e, 0xd5, 0x85,
+};
+static const unsigned char kat2898_nonce[] = {
+ 0x77, 0xc6, 0x2d, 0xd8, 0x37, 0x0c, 0x28, 0x12,
+};
+static const unsigned char kat2898_persstr[] = {0};
+static const unsigned char kat2898_entropyinpr1[] = {
+ 0x7d, 0xb9, 0x8b, 0xed, 0x90, 0x68, 0x51, 0x6c, 0xbb, 0x42, 0xcc, 0xee,
+ 0xff, 0xd0, 0x05, 0xc5,
+};
+static const unsigned char kat2898_addinpr1[] = {
+ 0x3e, 0x03, 0x49, 0x93, 0x7f, 0xe2, 0x70, 0x0b, 0x84, 0x63, 0xb9, 0xf6,
+ 0x37, 0x9a, 0xe1, 0x9f,
+};
+static const unsigned char kat2898_entropyinpr2[] = {
+ 0xf2, 0x67, 0x70, 0x6d, 0xd4, 0x57, 0x44, 0x23, 0xee, 0xce, 0x34, 0x5c,
+ 0x76, 0xe1, 0x88, 0x8e,
+};
+static const unsigned char kat2898_addinpr2[] = {
+ 0xcc, 0xcc, 0xd1, 0x74, 0xce, 0xfe, 0xc2, 0x48, 0x61, 0xfc, 0xa5, 0x21,
+ 0xf9, 0x6d, 0xe0, 0xf2,
+};
+static const unsigned char kat2898_retbits[] = {
+ 0xa0, 0x64, 0xad, 0x8f, 0x1a, 0x8b, 0xbc, 0xa0, 0x95, 0x38, 0x3a, 0x9f,
+ 0xaf, 0x4d, 0x34, 0x56, 0xee, 0x4b, 0xb3, 0xc8, 0x81, 0x30, 0xe1, 0xb7,
+ 0x54, 0x36, 0x03, 0xc3, 0x2f, 0x65, 0xe0, 0x0a, 0xdd, 0x55, 0xcc, 0x58,
+ 0x3c, 0xd4, 0x95, 0xad, 0xf6, 0xe6, 0xd8, 0xc1, 0xc6, 0x39, 0x2f, 0x56,
+ 0x98, 0x41, 0x39, 0xd5, 0xbd, 0x90, 0xd7, 0xc0, 0x06, 0x77, 0x7c, 0xc6,
+ 0x42, 0x6c, 0x99, 0x9f,
+};
+static const struct drbg_kat_pr_true kat2898_t = {
+ 2, kat2898_entropyin, kat2898_nonce, kat2898_persstr,
+ kat2898_entropyinpr1, kat2898_addinpr1, kat2898_entropyinpr2,
+ kat2898_addinpr2, kat2898_retbits
+};
+static const struct drbg_kat kat2898 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2898_t
+};
+
+static const unsigned char kat2899_entropyin[] = {
+ 0x92, 0x40, 0x99, 0xab, 0xb2, 0x06, 0x02, 0xbf, 0xdf, 0xb6, 0x82, 0xbc,
+ 0x88, 0xc7, 0x09, 0x25,
+};
+static const unsigned char kat2899_nonce[] = {
+ 0xe3, 0xc5, 0x10, 0xef, 0xc6, 0x0c, 0x11, 0x68,
+};
+static const unsigned char kat2899_persstr[] = {0};
+static const unsigned char kat2899_entropyinpr1[] = {
+ 0x8b, 0xa8, 0x2f, 0xb8, 0xf2, 0x37, 0xac, 0x02, 0xd5, 0xdd, 0x87, 0x26,
+ 0xc5, 0xd4, 0x22, 0x2c,
+};
+static const unsigned char kat2899_addinpr1[] = {
+ 0x91, 0xb6, 0x30, 0x6d, 0x3f, 0xa3, 0xc2, 0x5e, 0x20, 0xbd, 0xa4, 0x9f,
+ 0x38, 0x40, 0xd2, 0xe1,
+};
+static const unsigned char kat2899_entropyinpr2[] = {
+ 0x77, 0x48, 0xd5, 0x6b, 0x9a, 0x0d, 0xb3, 0xc3, 0x13, 0xf6, 0x17, 0x7d,
+ 0x65, 0x8e, 0xa8, 0x7f,
+};
+static const unsigned char kat2899_addinpr2[] = {
+ 0x75, 0x9e, 0x1a, 0xd2, 0x66, 0x64, 0xb0, 0x0c, 0xd7, 0xd1, 0x87, 0x82,
+ 0x58, 0x6a, 0x88, 0x1e,
+};
+static const unsigned char kat2899_retbits[] = {
+ 0xef, 0xc7, 0xd1, 0x33, 0x9a, 0xcd, 0xd6, 0x66, 0xd6, 0xa8, 0x14, 0xfd,
+ 0x1d, 0xc9, 0x23, 0x17, 0xa3, 0x60, 0xf3, 0xef, 0x07, 0x43, 0x54, 0x4c,
+ 0x48, 0x7b, 0x29, 0x10, 0xcc, 0x4f, 0xa9, 0x61, 0x3e, 0xdb, 0x50, 0x55,
+ 0x00, 0x44, 0x6b, 0x6a, 0x62, 0x99, 0xb8, 0xcd, 0x36, 0x13, 0x7d, 0xe8,
+ 0x6b, 0xe3, 0x2d, 0x0f, 0x1b, 0xcf, 0xae, 0xef, 0xd3, 0xa8, 0x7d, 0x8c,
+ 0x8d, 0xfa, 0x13, 0xb1,
+};
+static const struct drbg_kat_pr_true kat2899_t = {
+ 3, kat2899_entropyin, kat2899_nonce, kat2899_persstr,
+ kat2899_entropyinpr1, kat2899_addinpr1, kat2899_entropyinpr2,
+ kat2899_addinpr2, kat2899_retbits
+};
+static const struct drbg_kat kat2899 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2899_t
+};
+
+static const unsigned char kat2900_entropyin[] = {
+ 0xbb, 0x1d, 0xf8, 0xd2, 0x1b, 0x17, 0x49, 0x6e, 0x87, 0x4d, 0x17, 0x7c,
+ 0xf7, 0x6a, 0xe8, 0x29,
+};
+static const unsigned char kat2900_nonce[] = {
+ 0x68, 0x8e, 0x44, 0x0c, 0x16, 0x2d, 0x8c, 0x91,
+};
+static const unsigned char kat2900_persstr[] = {0};
+static const unsigned char kat2900_entropyinpr1[] = {
+ 0xbb, 0x9e, 0xc5, 0xed, 0x06, 0xe6, 0x82, 0xe9, 0x81, 0x60, 0x9a, 0x6b,
+ 0x6f, 0x0e, 0xb2, 0x3f,
+};
+static const unsigned char kat2900_addinpr1[] = {
+ 0x35, 0xb0, 0xad, 0x01, 0xda, 0x8a, 0xb0, 0xb7, 0xa6, 0x29, 0x6b, 0xa1,
+ 0xa7, 0x4d, 0xe5, 0x94,
+};
+static const unsigned char kat2900_entropyinpr2[] = {
+ 0x23, 0x78, 0xa1, 0xa1, 0x7e, 0x17, 0x9e, 0x8d, 0xe8, 0xc7, 0xf3, 0x22,
+ 0xf6, 0x2d, 0xdc, 0x9a,
+};
+static const unsigned char kat2900_addinpr2[] = {
+ 0x15, 0xfe, 0x51, 0x06, 0xc4, 0xf2, 0xee, 0x9b, 0x7b, 0x96, 0x9d, 0xf5,
+ 0xb4, 0xf6, 0x63, 0xfc,
+};
+static const unsigned char kat2900_retbits[] = {
+ 0xf4, 0x5b, 0x22, 0xec, 0x3b, 0x8b, 0xe2, 0x4b, 0x81, 0x2c, 0x94, 0xd6,
+ 0xa3, 0xf8, 0x9e, 0xe6, 0x91, 0x64, 0x2b, 0x52, 0xd7, 0x35, 0xcd, 0x06,
+ 0xe9, 0x5a, 0xbd, 0x5f, 0x99, 0xd2, 0x2c, 0x80, 0x2c, 0xa5, 0x22, 0x60,
+ 0x40, 0x84, 0xa7, 0xe7, 0x2e, 0xd0, 0x03, 0x7f, 0x3e, 0x2a, 0x4a, 0x4d,
+ 0x2f, 0x5c, 0x0a, 0x4f, 0x11, 0x54, 0xb6, 0x9c, 0x5c, 0x2e, 0xdd, 0x8a,
+ 0x0b, 0xce, 0x06, 0x9a,
+};
+static const struct drbg_kat_pr_true kat2900_t = {
+ 4, kat2900_entropyin, kat2900_nonce, kat2900_persstr,
+ kat2900_entropyinpr1, kat2900_addinpr1, kat2900_entropyinpr2,
+ kat2900_addinpr2, kat2900_retbits
+};
+static const struct drbg_kat kat2900 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2900_t
+};
+
+static const unsigned char kat2901_entropyin[] = {
+ 0x97, 0x90, 0x8c, 0xc2, 0xb0, 0x4c, 0x5a, 0x27, 0xcf, 0x05, 0xba, 0xb2,
+ 0x99, 0x9f, 0xe6, 0x93,
+};
+static const unsigned char kat2901_nonce[] = {
+ 0x7b, 0x8e, 0xae, 0xf7, 0x4d, 0x09, 0xfb, 0x69,
+};
+static const unsigned char kat2901_persstr[] = {0};
+static const unsigned char kat2901_entropyinpr1[] = {
+ 0x6e, 0xf1, 0x34, 0x74, 0x42, 0x8f, 0x5e, 0x51, 0xf8, 0x81, 0xc1, 0x79,
+ 0x07, 0x6c, 0x42, 0x09,
+};
+static const unsigned char kat2901_addinpr1[] = {
+ 0xd7, 0xb4, 0x23, 0x28, 0x85, 0x0b, 0x0a, 0xfd, 0xea, 0xd4, 0x10, 0x9d,
+ 0x43, 0x7a, 0x71, 0x7d,
+};
+static const unsigned char kat2901_entropyinpr2[] = {
+ 0xa0, 0x40, 0x78, 0x54, 0x5d, 0xb5, 0x14, 0x40, 0xdd, 0xaa, 0xe4, 0x79,
+ 0x0b, 0x75, 0xc8, 0xe9,
+};
+static const unsigned char kat2901_addinpr2[] = {
+ 0xc1, 0x50, 0x0f, 0xb1, 0x15, 0x61, 0xec, 0xfe, 0xd4, 0x3e, 0x3d, 0x8b,
+ 0xff, 0x96, 0x40, 0xe3,
+};
+static const unsigned char kat2901_retbits[] = {
+ 0xaf, 0x01, 0x06, 0x13, 0x49, 0x87, 0xec, 0xf5, 0xcc, 0x27, 0xf3, 0x37,
+ 0x3f, 0x73, 0x40, 0x2a, 0x95, 0x30, 0xf9, 0x4d, 0x81, 0xa3, 0x52, 0xb4,
+ 0x82, 0x8e, 0xf0, 0xb7, 0x14, 0x6a, 0xd8, 0x71, 0xf9, 0xa1, 0x9a, 0x81,
+ 0xa0, 0x65, 0x18, 0x22, 0x88, 0xe5, 0x60, 0x08, 0x7e, 0xe0, 0xcf, 0x66,
+ 0x29, 0x32, 0xd4, 0xfc, 0x02, 0x7a, 0xac, 0x91, 0x58, 0x07, 0x8a, 0xa3,
+ 0x29, 0x87, 0x6b, 0xab,
+};
+static const struct drbg_kat_pr_true kat2901_t = {
+ 5, kat2901_entropyin, kat2901_nonce, kat2901_persstr,
+ kat2901_entropyinpr1, kat2901_addinpr1, kat2901_entropyinpr2,
+ kat2901_addinpr2, kat2901_retbits
+};
+static const struct drbg_kat kat2901 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2901_t
+};
+
+static const unsigned char kat2902_entropyin[] = {
+ 0x93, 0xfe, 0x54, 0x2e, 0xac, 0x66, 0xd5, 0xd4, 0x11, 0x47, 0x8e, 0x3c,
+ 0xff, 0x4b, 0x7e, 0x44,
+};
+static const unsigned char kat2902_nonce[] = {
+ 0x59, 0x11, 0xd3, 0x5e, 0x24, 0x84, 0xf3, 0x49,
+};
+static const unsigned char kat2902_persstr[] = {0};
+static const unsigned char kat2902_entropyinpr1[] = {
+ 0x2e, 0x34, 0xe9, 0x4b, 0xb2, 0x1a, 0x95, 0xf9, 0x6a, 0x4d, 0x4b, 0x2a,
+ 0xa6, 0xcf, 0x86, 0xfd,
+};
+static const unsigned char kat2902_addinpr1[] = {
+ 0x5a, 0xad, 0xd8, 0x03, 0x4e, 0x1d, 0x59, 0x38, 0xb0, 0x65, 0x75, 0x2b,
+ 0x02, 0x68, 0x84, 0xa9,
+};
+static const unsigned char kat2902_entropyinpr2[] = {
+ 0xf4, 0x32, 0x1d, 0x86, 0xf9, 0x97, 0x30, 0x5d, 0x88, 0xf1, 0x9e, 0x56,
+ 0xd6, 0x23, 0x7b, 0x88,
+};
+static const unsigned char kat2902_addinpr2[] = {
+ 0xc7, 0xdf, 0x14, 0xe0, 0x19, 0x7d, 0x2f, 0xc8, 0xb3, 0x94, 0xbe, 0x35,
+ 0x2a, 0xad, 0x12, 0xa8,
+};
+static const unsigned char kat2902_retbits[] = {
+ 0x53, 0x66, 0x9f, 0x9b, 0x2e, 0xd3, 0x10, 0x0e, 0xa8, 0x43, 0x21, 0xc2,
+ 0x37, 0x03, 0x02, 0x2b, 0xc2, 0x66, 0xab, 0x47, 0x13, 0xd5, 0xef, 0x39,
+ 0x5c, 0xe2, 0xc6, 0x0e, 0x47, 0x32, 0x5f, 0x88, 0x2d, 0x43, 0x16, 0x70,
+ 0x82, 0xe6, 0xd0, 0x7f, 0x11, 0xfc, 0xa5, 0x78, 0xee, 0x74, 0x2b, 0xc7,
+ 0x76, 0x03, 0xdc, 0x1e, 0xf7, 0xaa, 0xa1, 0x41, 0xf5, 0x14, 0x62, 0xf8,
+ 0xdf, 0x51, 0x89, 0x81,
+};
+static const struct drbg_kat_pr_true kat2902_t = {
+ 6, kat2902_entropyin, kat2902_nonce, kat2902_persstr,
+ kat2902_entropyinpr1, kat2902_addinpr1, kat2902_entropyinpr2,
+ kat2902_addinpr2, kat2902_retbits
+};
+static const struct drbg_kat kat2902 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2902_t
+};
+
+static const unsigned char kat2903_entropyin[] = {
+ 0x04, 0x8a, 0x5c, 0x66, 0x2d, 0xf9, 0x08, 0xf6, 0x28, 0x13, 0x22, 0xa7,
+ 0x98, 0x3e, 0xa2, 0xa1,
+};
+static const unsigned char kat2903_nonce[] = {
+ 0x6e, 0xb0, 0x24, 0x6b, 0x37, 0xb4, 0x51, 0x2f,
+};
+static const unsigned char kat2903_persstr[] = {0};
+static const unsigned char kat2903_entropyinpr1[] = {
+ 0x0a, 0xe5, 0xfb, 0xa1, 0x45, 0x55, 0x64, 0x3c, 0x51, 0x95, 0x9d, 0x2d,
+ 0xa3, 0xdb, 0xe1, 0x07,
+};
+static const unsigned char kat2903_addinpr1[] = {
+ 0x59, 0x7f, 0x84, 0x05, 0xe4, 0xea, 0xb4, 0x65, 0x65, 0xa7, 0x75, 0x7b,
+ 0xba, 0x30, 0x9d, 0x4d,
+};
+static const unsigned char kat2903_entropyinpr2[] = {
+ 0xe2, 0x0c, 0xd1, 0x5f, 0x73, 0x63, 0x00, 0xc3, 0x18, 0x0a, 0xda, 0x5d,
+ 0x71, 0x55, 0xf0, 0xa7,
+};
+static const unsigned char kat2903_addinpr2[] = {
+ 0x36, 0x78, 0x8a, 0x9e, 0x39, 0x2a, 0x85, 0x51, 0x37, 0x1b, 0x7b, 0xe9,
+ 0xaf, 0xf0, 0x0d, 0x43,
+};
+static const unsigned char kat2903_retbits[] = {
+ 0xb1, 0x12, 0x30, 0x05, 0xe2, 0x1f, 0x1f, 0x95, 0x78, 0xa7, 0xc6, 0x24,
+ 0xd6, 0x4d, 0x3b, 0x06, 0x45, 0x1f, 0x49, 0x9e, 0x37, 0x62, 0xb5, 0x14,
+ 0x8f, 0x80, 0xef, 0xf2, 0x63, 0x04, 0x63, 0x33, 0x84, 0x16, 0x57, 0x1a,
+ 0x39, 0xad, 0x4f, 0x9f, 0x2e, 0xf3, 0x1e, 0x11, 0x31, 0x28, 0x40, 0xa5,
+ 0x4a, 0xf4, 0x5e, 0xa6, 0x25, 0x07, 0x54, 0xdd, 0x78, 0xda, 0xc3, 0xb0,
+ 0xa0, 0x70, 0x92, 0xae,
+};
+static const struct drbg_kat_pr_true kat2903_t = {
+ 7, kat2903_entropyin, kat2903_nonce, kat2903_persstr,
+ kat2903_entropyinpr1, kat2903_addinpr1, kat2903_entropyinpr2,
+ kat2903_addinpr2, kat2903_retbits
+};
+static const struct drbg_kat kat2903 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2903_t
+};
+
+static const unsigned char kat2904_entropyin[] = {
+ 0xd4, 0xb9, 0x48, 0xbc, 0xc0, 0xc5, 0x62, 0x28, 0x20, 0xee, 0x56, 0x10,
+ 0x27, 0xdf, 0x0c, 0x3c,
+};
+static const unsigned char kat2904_nonce[] = {
+ 0xb1, 0x49, 0xe3, 0x33, 0x73, 0xa0, 0xcb, 0x77,
+};
+static const unsigned char kat2904_persstr[] = {0};
+static const unsigned char kat2904_entropyinpr1[] = {
+ 0x5e, 0xda, 0x94, 0x58, 0x47, 0x4f, 0x55, 0x40, 0x1e, 0x96, 0x99, 0xa9,
+ 0xec, 0x45, 0xfd, 0xaf,
+};
+static const unsigned char kat2904_addinpr1[] = {
+ 0xb5, 0xa8, 0x79, 0x5a, 0x72, 0xc1, 0xad, 0xcb, 0x97, 0x2e, 0xa9, 0x91,
+ 0x3f, 0x25, 0x5a, 0x8a,
+};
+static const unsigned char kat2904_entropyinpr2[] = {
+ 0xa2, 0xba, 0x96, 0x23, 0x9c, 0x89, 0xfc, 0xc6, 0xc8, 0x1f, 0x56, 0x84,
+ 0x5d, 0x03, 0xc3, 0x79,
+};
+static const unsigned char kat2904_addinpr2[] = {
+ 0xc0, 0xc8, 0x89, 0xba, 0x22, 0x20, 0xff, 0x8f, 0x91, 0x2d, 0x0a, 0xcb,
+ 0x56, 0xa6, 0x98, 0xad,
+};
+static const unsigned char kat2904_retbits[] = {
+ 0x20, 0x41, 0xcb, 0x71, 0x68, 0xf0, 0x1f, 0x92, 0xa9, 0x41, 0x38, 0x9e,
+ 0x1b, 0x8d, 0xbb, 0xb9, 0x87, 0x0c, 0x54, 0x7f, 0xdb, 0x98, 0x80, 0xf0,
+ 0x5d, 0xaa, 0x93, 0x9c, 0xc0, 0x7a, 0x36, 0xa2, 0xee, 0xf8, 0x01, 0x37,
+ 0x90, 0x53, 0xef, 0x57, 0x2c, 0xd9, 0xbe, 0xf4, 0x97, 0xe7, 0x26, 0x7f,
+ 0x79, 0x90, 0x50, 0x6d, 0xaf, 0xaa, 0xd4, 0x3f, 0x6e, 0xc3, 0xba, 0xf4,
+ 0x4f, 0xd1, 0x96, 0xb2,
+};
+static const struct drbg_kat_pr_true kat2904_t = {
+ 8, kat2904_entropyin, kat2904_nonce, kat2904_persstr,
+ kat2904_entropyinpr1, kat2904_addinpr1, kat2904_entropyinpr2,
+ kat2904_addinpr2, kat2904_retbits
+};
+static const struct drbg_kat kat2904 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2904_t
+};
+
+static const unsigned char kat2905_entropyin[] = {
+ 0xe3, 0xb1, 0xa4, 0xd6, 0x8c, 0xed, 0x15, 0x24, 0x1e, 0x5f, 0xbe, 0xe6,
+ 0x19, 0x12, 0x25, 0xd3,
+};
+static const unsigned char kat2905_nonce[] = {
+ 0xee, 0x45, 0x1b, 0xc3, 0x39, 0x6d, 0xab, 0x4f,
+};
+static const unsigned char kat2905_persstr[] = {0};
+static const unsigned char kat2905_entropyinpr1[] = {
+ 0xb3, 0x2e, 0x30, 0xf2, 0x12, 0x90, 0x34, 0xcf, 0x4a, 0x73, 0x54, 0x1c,
+ 0xc9, 0x85, 0xf0, 0xf9,
+};
+static const unsigned char kat2905_addinpr1[] = {
+ 0xd4, 0x81, 0x2a, 0xbd, 0x91, 0x3f, 0xdf, 0xda, 0x6c, 0xac, 0xa2, 0xea,
+ 0x0d, 0x24, 0x2f, 0x6f,
+};
+static const unsigned char kat2905_entropyinpr2[] = {
+ 0x1b, 0xea, 0xd9, 0x88, 0xc7, 0x30, 0x24, 0xb6, 0xe0, 0xc6, 0xdf, 0xbd,
+ 0x1b, 0x13, 0xf2, 0x10,
+};
+static const unsigned char kat2905_addinpr2[] = {
+ 0xcd, 0x7a, 0xa7, 0x3f, 0x0e, 0xce, 0xc3, 0xf9, 0x37, 0x59, 0xca, 0x37,
+ 0x77, 0xc4, 0x7d, 0x62,
+};
+static const unsigned char kat2905_retbits[] = {
+ 0xb3, 0x04, 0x7f, 0xf5, 0x9f, 0xb3, 0x12, 0xea, 0xb2, 0x0f, 0x4e, 0xf8,
+ 0x3f, 0xf3, 0x3a, 0x93, 0x2c, 0x7d, 0x2e, 0x39, 0x22, 0xb7, 0xba, 0xa8,
+ 0x1b, 0xe0, 0x07, 0xd7, 0x98, 0x40, 0x93, 0xf3, 0x56, 0x02, 0xf8, 0xc2,
+ 0x57, 0x5b, 0xb0, 0x4c, 0xb5, 0x4d, 0xb8, 0xd0, 0x43, 0xec, 0x59, 0x74,
+ 0xd3, 0xb7, 0xd6, 0x34, 0x00, 0x9d, 0x04, 0x1b, 0x4b, 0xc1, 0x1e, 0x14,
+ 0x9d, 0x05, 0x38, 0x5b,
+};
+static const struct drbg_kat_pr_true kat2905_t = {
+ 9, kat2905_entropyin, kat2905_nonce, kat2905_persstr,
+ kat2905_entropyinpr1, kat2905_addinpr1, kat2905_entropyinpr2,
+ kat2905_addinpr2, kat2905_retbits
+};
+static const struct drbg_kat kat2905 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2905_t
+};
+
+static const unsigned char kat2906_entropyin[] = {
+ 0x6c, 0x3b, 0xb1, 0x77, 0x23, 0x84, 0xc8, 0x76, 0xa7, 0x13, 0x2a, 0x19,
+ 0x45, 0xfb, 0xce, 0x71,
+};
+static const unsigned char kat2906_nonce[] = {
+ 0x20, 0xae, 0x47, 0x1e, 0xb9, 0x6c, 0x4c, 0xb9,
+};
+static const unsigned char kat2906_persstr[] = {0};
+static const unsigned char kat2906_entropyinpr1[] = {
+ 0x47, 0x0a, 0x9f, 0x56, 0x79, 0xe7, 0x10, 0xb0, 0x65, 0x81, 0x0a, 0x34,
+ 0xdd, 0x36, 0x8c, 0x70,
+};
+static const unsigned char kat2906_addinpr1[] = {
+ 0x24, 0x4b, 0xce, 0xe8, 0xf2, 0x04, 0x81, 0xb8, 0x8c, 0x66, 0xa1, 0xca,
+ 0xc7, 0x45, 0xe6, 0x7b,
+};
+static const unsigned char kat2906_entropyinpr2[] = {
+ 0x29, 0x19, 0x5a, 0xc3, 0x1c, 0x99, 0x15, 0xf2, 0x75, 0xba, 0x82, 0x89,
+ 0xec, 0xd5, 0xf5, 0xb6,
+};
+static const unsigned char kat2906_addinpr2[] = {
+ 0x93, 0x81, 0xf0, 0x73, 0x97, 0xc7, 0x83, 0xf1, 0xcc, 0x9c, 0x1f, 0x95,
+ 0x21, 0xc8, 0xce, 0x11,
+};
+static const unsigned char kat2906_retbits[] = {
+ 0x6d, 0xe0, 0xf8, 0xc2, 0x8e, 0x29, 0x08, 0xae, 0x38, 0xb3, 0xa9, 0x86,
+ 0xf6, 0xde, 0xd1, 0x32, 0xdf, 0x2c, 0x48, 0xa9, 0x63, 0xce, 0x70, 0xef,
+ 0xac, 0x26, 0x93, 0xe1, 0x7b, 0x0a, 0xb5, 0x78, 0x90, 0xf8, 0x42, 0x3c,
+ 0xca, 0x25, 0x88, 0xa4, 0xd7, 0xfc, 0xbf, 0xc6, 0x23, 0x76, 0x6c, 0xf9,
+ 0xfb, 0x06, 0xbf, 0x8d, 0x06, 0xd1, 0x45, 0x95, 0xe4, 0xf6, 0x8e, 0x8f,
+ 0x0c, 0x5d, 0xe5, 0x9b,
+};
+static const struct drbg_kat_pr_true kat2906_t = {
+ 10, kat2906_entropyin, kat2906_nonce, kat2906_persstr,
+ kat2906_entropyinpr1, kat2906_addinpr1, kat2906_entropyinpr2,
+ kat2906_addinpr2, kat2906_retbits
+};
+static const struct drbg_kat kat2906 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2906_t
+};
+
+static const unsigned char kat2907_entropyin[] = {
+ 0x58, 0xac, 0xe8, 0x3a, 0xa5, 0xbd, 0x85, 0xda, 0x7d, 0xc4, 0xf1, 0x89,
+ 0x5e, 0x19, 0x0d, 0xda,
+};
+static const unsigned char kat2907_nonce[] = {
+ 0x61, 0xc2, 0x4b, 0x22, 0x81, 0x34, 0x09, 0xb5,
+};
+static const unsigned char kat2907_persstr[] = {0};
+static const unsigned char kat2907_entropyinpr1[] = {
+ 0x93, 0x53, 0xc9, 0x72, 0x3b, 0xb4, 0xeb, 0x6d, 0xaf, 0x52, 0xc3, 0x76,
+ 0x9a, 0x5c, 0x02, 0x5f,
+};
+static const unsigned char kat2907_addinpr1[] = {
+ 0x57, 0x4e, 0x48, 0x82, 0x0b, 0x53, 0x50, 0x65, 0xf8, 0x34, 0x64, 0xa4,
+ 0x89, 0x1c, 0x51, 0xb3,
+};
+static const unsigned char kat2907_entropyinpr2[] = {
+ 0x02, 0x5b, 0xe1, 0x77, 0xfe, 0x03, 0xe3, 0x18, 0x64, 0x84, 0xa4, 0xb4,
+ 0x0c, 0xea, 0x2e, 0xda,
+};
+static const unsigned char kat2907_addinpr2[] = {
+ 0xb8, 0xdd, 0x1f, 0xea, 0x89, 0x0a, 0x95, 0x0c, 0x82, 0x49, 0xf6, 0x6c,
+ 0xbc, 0xa5, 0xd7, 0x7d,
+};
+static const unsigned char kat2907_retbits[] = {
+ 0x1d, 0x6c, 0xb9, 0x3f, 0x73, 0x5b, 0x52, 0x83, 0xa7, 0x47, 0xdb, 0x21,
+ 0xb8, 0x62, 0x61, 0x28, 0x5c, 0xe6, 0xfd, 0x72, 0x79, 0x28, 0xe1, 0x35,
+ 0x7b, 0xdc, 0x89, 0x04, 0xcc, 0x90, 0xff, 0xc2, 0xe8, 0xf0, 0xdc, 0x93,
+ 0xd0, 0xae, 0x1c, 0xad, 0xdf, 0xc3, 0x8e, 0x28, 0xbb, 0x32, 0x33, 0x1e,
+ 0x85, 0x41, 0xec, 0xde, 0x60, 0x34, 0xcf, 0x31, 0xa3, 0xda, 0x0f, 0x1e,
+ 0x5a, 0x2c, 0x4d, 0xa6,
+};
+static const struct drbg_kat_pr_true kat2907_t = {
+ 11, kat2907_entropyin, kat2907_nonce, kat2907_persstr,
+ kat2907_entropyinpr1, kat2907_addinpr1, kat2907_entropyinpr2,
+ kat2907_addinpr2, kat2907_retbits
+};
+static const struct drbg_kat kat2907 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2907_t
+};
+
+static const unsigned char kat2908_entropyin[] = {
+ 0x00, 0x16, 0x1c, 0x5b, 0x23, 0xcf, 0x62, 0xc5, 0xca, 0xf0, 0xe0, 0x05,
+ 0x00, 0xc0, 0xcd, 0xd1,
+};
+static const unsigned char kat2908_nonce[] = {
+ 0x97, 0x86, 0x06, 0x40, 0x96, 0x3f, 0xd2, 0x56,
+};
+static const unsigned char kat2908_persstr[] = {0};
+static const unsigned char kat2908_entropyinpr1[] = {
+ 0xc3, 0x0c, 0x9f, 0xd6, 0x0a, 0x63, 0x7c, 0x08, 0x6d, 0x26, 0xac, 0x34,
+ 0x9d, 0xf4, 0x78, 0x8a,
+};
+static const unsigned char kat2908_addinpr1[] = {
+ 0xea, 0x85, 0x1d, 0xb2, 0x83, 0xce, 0xd4, 0x56, 0x13, 0xca, 0x93, 0x15,
+ 0x54, 0x6b, 0x76, 0x8d,
+};
+static const unsigned char kat2908_entropyinpr2[] = {
+ 0xbe, 0x2a, 0xbc, 0x4f, 0xb9, 0xbe, 0xc6, 0x87, 0x99, 0xc0, 0xc4, 0x7e,
+ 0x1d, 0x30, 0x78, 0xe0,
+};
+static const unsigned char kat2908_addinpr2[] = {
+ 0xce, 0x7e, 0x9f, 0x4f, 0x35, 0xe4, 0xdc, 0x74, 0x3a, 0x22, 0xd5, 0x55,
+ 0x03, 0xa3, 0xd5, 0x30,
+};
+static const unsigned char kat2908_retbits[] = {
+ 0x5f, 0x8a, 0xe3, 0xe3, 0x36, 0xd8, 0xd8, 0xa2, 0x6b, 0xf7, 0x20, 0x4f,
+ 0xda, 0x4d, 0xc1, 0xfd, 0xd7, 0xa5, 0x06, 0x32, 0x3c, 0x04, 0xc6, 0x51,
+ 0x09, 0x63, 0xd5, 0xb1, 0x66, 0x2a, 0x95, 0xcd, 0xf4, 0xc9, 0xba, 0x6a,
+ 0xd3, 0x12, 0x65, 0xe9, 0x56, 0x28, 0x6c, 0x7c, 0xb6, 0x26, 0x4f, 0x90,
+ 0x17, 0xbd, 0xfe, 0x87, 0x0e, 0x0a, 0x15, 0x20, 0x13, 0x78, 0x99, 0xdc,
+ 0x31, 0x65, 0x65, 0x80,
+};
+static const struct drbg_kat_pr_true kat2908_t = {
+ 12, kat2908_entropyin, kat2908_nonce, kat2908_persstr,
+ kat2908_entropyinpr1, kat2908_addinpr1, kat2908_entropyinpr2,
+ kat2908_addinpr2, kat2908_retbits
+};
+static const struct drbg_kat kat2908 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2908_t
+};
+
+static const unsigned char kat2909_entropyin[] = {
+ 0x92, 0x96, 0x8a, 0x0c, 0xeb, 0xff, 0xf2, 0x65, 0x1b, 0x01, 0xfa, 0x9a,
+ 0x3d, 0xf7, 0x22, 0x03,
+};
+static const unsigned char kat2909_nonce[] = {
+ 0xf9, 0x7e, 0xbf, 0xf2, 0x8a, 0x9c, 0x19, 0xc0,
+};
+static const unsigned char kat2909_persstr[] = {0};
+static const unsigned char kat2909_entropyinpr1[] = {
+ 0xf1, 0xb2, 0xa3, 0xab, 0x86, 0xe5, 0x55, 0x67, 0xef, 0x10, 0x90, 0x82,
+ 0x2b, 0xc8, 0xc8, 0x6d,
+};
+static const unsigned char kat2909_addinpr1[] = {
+ 0x90, 0x66, 0x3d, 0x5d, 0xdf, 0xa7, 0x74, 0x67, 0x64, 0x53, 0x71, 0x51,
+ 0xef, 0x75, 0xc4, 0x71,
+};
+static const unsigned char kat2909_entropyinpr2[] = {
+ 0x70, 0xa0, 0x46, 0xe1, 0x5a, 0xe0, 0x8e, 0x00, 0xc9, 0x46, 0xfe, 0x2e,
+ 0xb1, 0x93, 0x95, 0x9c,
+};
+static const unsigned char kat2909_addinpr2[] = {
+ 0x6a, 0x5b, 0x2c, 0x85, 0x34, 0x9c, 0x37, 0x13, 0x7d, 0x76, 0x6a, 0xb8,
+ 0x64, 0xe7, 0xa9, 0x45,
+};
+static const unsigned char kat2909_retbits[] = {
+ 0x1b, 0x74, 0xfb, 0x9a, 0x7c, 0x1c, 0x8b, 0xb8, 0x42, 0x21, 0x21, 0xb9,
+ 0x06, 0xe1, 0x3f, 0x77, 0x6e, 0xf0, 0xfb, 0x65, 0x07, 0x82, 0xeb, 0x20,
+ 0x13, 0xf3, 0xa8, 0x71, 0xb3, 0x40, 0x3b, 0xfe, 0x95, 0xa5, 0x6d, 0x23,
+ 0x2a, 0x21, 0x4d, 0x4c, 0x99, 0x13, 0x5a, 0xe0, 0x67, 0x67, 0xec, 0x39,
+ 0x07, 0xaa, 0x4d, 0xff, 0xc5, 0xff, 0x5f, 0x6b, 0x9b, 0x4c, 0x76, 0xe5,
+ 0x8e, 0xd0, 0x4b, 0x9d,
+};
+static const struct drbg_kat_pr_true kat2909_t = {
+ 13, kat2909_entropyin, kat2909_nonce, kat2909_persstr,
+ kat2909_entropyinpr1, kat2909_addinpr1, kat2909_entropyinpr2,
+ kat2909_addinpr2, kat2909_retbits
+};
+static const struct drbg_kat kat2909 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2909_t
+};
+
+static const unsigned char kat2910_entropyin[] = {
+ 0xe2, 0xf6, 0xbe, 0x79, 0xaf, 0xbb, 0x3d, 0xce, 0x28, 0xa3, 0xdd, 0x7d,
+ 0x50, 0xee, 0x99, 0x31,
+};
+static const unsigned char kat2910_nonce[] = {
+ 0x53, 0xf5, 0xc4, 0xd2, 0x2f, 0x0e, 0x44, 0xc4,
+};
+static const unsigned char kat2910_persstr[] = {0};
+static const unsigned char kat2910_entropyinpr1[] = {
+ 0xa7, 0x72, 0x08, 0x75, 0xb1, 0xab, 0xfe, 0x13, 0x7e, 0x4b, 0x2f, 0x5c,
+ 0x34, 0x3a, 0xd8, 0x10,
+};
+static const unsigned char kat2910_addinpr1[] = {
+ 0x9c, 0xfa, 0x82, 0xf0, 0xb5, 0x58, 0x1d, 0x6b, 0x15, 0xd8, 0x1d, 0xd5,
+ 0x34, 0xf3, 0x30, 0xc6,
+};
+static const unsigned char kat2910_entropyinpr2[] = {
+ 0x2d, 0x52, 0xac, 0xe6, 0x92, 0xb7, 0xc9, 0x1a, 0x23, 0x1a, 0x54, 0x60,
+ 0x80, 0x18, 0x3c, 0xdd,
+};
+static const unsigned char kat2910_addinpr2[] = {
+ 0x56, 0x69, 0x6f, 0x0e, 0x9c, 0xeb, 0x27, 0xbb, 0x60, 0xca, 0xde, 0x9d,
+ 0x6d, 0x1a, 0x45, 0x0a,
+};
+static const unsigned char kat2910_retbits[] = {
+ 0x1a, 0x98, 0x27, 0x54, 0x69, 0xa3, 0x0c, 0x9e, 0x92, 0x13, 0x2f, 0x20,
+ 0x09, 0x1f, 0xae, 0x46, 0xca, 0xb2, 0xc3, 0xf5, 0xb3, 0xff, 0x5a, 0x22,
+ 0xb6, 0x7d, 0x0f, 0x8a, 0xb3, 0xb1, 0xe3, 0x80, 0x0a, 0xd8, 0x49, 0xc7,
+ 0x39, 0x09, 0xc3, 0x31, 0xf3, 0x40, 0xfa, 0xdd, 0x3d, 0xc6, 0x35, 0x8c,
+ 0xc1, 0x2c, 0xb4, 0xf7, 0x3e, 0x23, 0x99, 0x7a, 0x31, 0x09, 0xa4, 0x79,
+ 0x23, 0x17, 0xfd, 0x50,
+};
+static const struct drbg_kat_pr_true kat2910_t = {
+ 14, kat2910_entropyin, kat2910_nonce, kat2910_persstr,
+ kat2910_entropyinpr1, kat2910_addinpr1, kat2910_entropyinpr2,
+ kat2910_addinpr2, kat2910_retbits
+};
+static const struct drbg_kat kat2910 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2910_t
+};
+
+static const unsigned char kat2911_entropyin[] = {
+ 0x04, 0xd9, 0x49, 0xa6, 0xdc, 0xe8, 0x6e, 0xbb, 0xf1, 0x08, 0x77, 0x2b,
+ 0x9e, 0x08, 0xca, 0x92,
+};
+static const unsigned char kat2911_nonce[] = {
+ 0x65, 0x16, 0xda, 0x99, 0xa2, 0x59, 0xf3, 0xe8,
+};
+static const unsigned char kat2911_persstr[] = {
+ 0xbf, 0xa4, 0x9a, 0x8f, 0x7b, 0xd8, 0xb1, 0x7a, 0x9d, 0xfa, 0x45, 0xed,
+ 0x21, 0x52, 0xb3, 0xad,
+};
+static const unsigned char kat2911_entropyinpr1[] = {
+ 0x38, 0x7e, 0x3f, 0x6b, 0x51, 0x70, 0x7b, 0x20, 0xec, 0x53, 0xd0, 0x66,
+ 0xc3, 0x0f, 0xe3, 0xb0,
+};
+static const unsigned char kat2911_addinpr1[] = {0};
+static const unsigned char kat2911_entropyinpr2[] = {
+ 0xe0, 0x86, 0xa6, 0xaa, 0x5f, 0x72, 0x2f, 0xad, 0xf7, 0xef, 0x06, 0xb8,
+ 0xd6, 0x9c, 0x9d, 0xe8,
+};
+static const unsigned char kat2911_addinpr2[] = {0};
+static const unsigned char kat2911_retbits[] = {
+ 0xc9, 0x0a, 0xaf, 0x85, 0x89, 0x71, 0x44, 0x66, 0x4f, 0x25, 0x0b, 0x2b,
+ 0xde, 0xd8, 0xfa, 0xff, 0x52, 0x5a, 0x1b, 0x32, 0x5e, 0x41, 0x7a, 0x10,
+ 0x1f, 0xef, 0x1e, 0x62, 0x23, 0xe9, 0x20, 0x30, 0xc9, 0x0d, 0xad, 0x69,
+ 0xb4, 0x9c, 0x5b, 0xf4, 0x87, 0x42, 0xd5, 0xae, 0x5e, 0x5e, 0x43, 0xcc,
+ 0xd9, 0xfd, 0x0b, 0x93, 0x4a, 0xe3, 0xd4, 0x06, 0x37, 0x36, 0x0f, 0x3f,
+ 0x72, 0x82, 0x0c, 0xcf,
+};
+static const struct drbg_kat_pr_true kat2911_t = {
+ 0, kat2911_entropyin, kat2911_nonce, kat2911_persstr,
+ kat2911_entropyinpr1, kat2911_addinpr1, kat2911_entropyinpr2,
+ kat2911_addinpr2, kat2911_retbits
+};
+static const struct drbg_kat kat2911 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2911_t
+};
+
+static const unsigned char kat2912_entropyin[] = {
+ 0x95, 0xb4, 0x8c, 0x92, 0x25, 0xed, 0xf6, 0xde, 0x0c, 0x7a, 0xc8, 0x46,
+ 0x27, 0x87, 0x49, 0xeb,
+};
+static const unsigned char kat2912_nonce[] = {
+ 0x63, 0x49, 0xc6, 0x54, 0x3f, 0xbf, 0x1d, 0xdc,
+};
+static const unsigned char kat2912_persstr[] = {
+ 0xee, 0x6b, 0xb2, 0x95, 0x88, 0xcb, 0xc5, 0x09, 0x5c, 0x44, 0xce, 0x57,
+ 0x56, 0x57, 0xee, 0x11,
+};
+static const unsigned char kat2912_entropyinpr1[] = {
+ 0x4d, 0x2f, 0x8a, 0x6d, 0x71, 0xb2, 0xdc, 0x2d, 0x94, 0x93, 0x8a, 0xc7,
+ 0x29, 0xe1, 0xbe, 0xdf,
+};
+static const unsigned char kat2912_addinpr1[] = {0};
+static const unsigned char kat2912_entropyinpr2[] = {
+ 0xad, 0x3e, 0x14, 0x07, 0x27, 0xec, 0x0f, 0xad, 0xfd, 0x1d, 0x1c, 0xc4,
+ 0x5c, 0x49, 0x2d, 0x25,
+};
+static const unsigned char kat2912_addinpr2[] = {0};
+static const unsigned char kat2912_retbits[] = {
+ 0xc4, 0x62, 0x4a, 0xfc, 0x97, 0x86, 0x62, 0x13, 0xc9, 0x1f, 0xa1, 0x90,
+ 0x67, 0x30, 0x0f, 0x36, 0xed, 0xda, 0xdf, 0x00, 0x8e, 0xee, 0xd5, 0xcf,
+ 0x25, 0x02, 0x42, 0x24, 0x87, 0x94, 0xd9, 0xb6, 0x3f, 0xa5, 0x8c, 0x6e,
+ 0x66, 0xa5, 0x7e, 0x9f, 0x07, 0x2e, 0x71, 0xec, 0x28, 0x7a, 0x1e, 0xd8,
+ 0xd8, 0x3b, 0xd5, 0xa5, 0x26, 0x9c, 0x99, 0x47, 0x04, 0x99, 0xde, 0xe3,
+ 0xc8, 0x6a, 0x01, 0x73,
+};
+static const struct drbg_kat_pr_true kat2912_t = {
+ 1, kat2912_entropyin, kat2912_nonce, kat2912_persstr,
+ kat2912_entropyinpr1, kat2912_addinpr1, kat2912_entropyinpr2,
+ kat2912_addinpr2, kat2912_retbits
+};
+static const struct drbg_kat kat2912 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2912_t
+};
+
+static const unsigned char kat2913_entropyin[] = {
+ 0x24, 0x8f, 0x81, 0x46, 0xb5, 0xf4, 0xcd, 0xa4, 0xaa, 0x50, 0x2b, 0xa1,
+ 0xed, 0xdf, 0x2b, 0x92,
+};
+static const unsigned char kat2913_nonce[] = {
+ 0x49, 0x7d, 0x5f, 0x20, 0x85, 0xef, 0xbd, 0xd5,
+};
+static const unsigned char kat2913_persstr[] = {
+ 0xda, 0x50, 0x1e, 0xd7, 0xfa, 0x9b, 0xf4, 0x43, 0xf8, 0xde, 0xfe, 0x72,
+ 0x62, 0xff, 0x86, 0x2c,
+};
+static const unsigned char kat2913_entropyinpr1[] = {
+ 0xc1, 0xbb, 0xb7, 0x97, 0xa5, 0xec, 0x44, 0xdc, 0x99, 0x87, 0x89, 0x1d,
+ 0x02, 0x20, 0x07, 0x2f,
+};
+static const unsigned char kat2913_addinpr1[] = {0};
+static const unsigned char kat2913_entropyinpr2[] = {
+ 0x01, 0x56, 0xa9, 0x65, 0x59, 0xf4, 0xdb, 0xe8, 0xa3, 0x07, 0x75, 0x41,
+ 0xc4, 0x89, 0xff, 0x1b,
+};
+static const unsigned char kat2913_addinpr2[] = {0};
+static const unsigned char kat2913_retbits[] = {
+ 0x14, 0x51, 0x67, 0x5a, 0x22, 0x45, 0xcb, 0xd9, 0x56, 0x44, 0x47, 0x4b,
+ 0x82, 0x81, 0x70, 0x74, 0xc8, 0x5e, 0x99, 0x5a, 0xc0, 0x5b, 0x45, 0x91,
+ 0x24, 0x79, 0xbc, 0x0d, 0x96, 0x0f, 0xd6, 0x32, 0x34, 0x2a, 0x7e, 0xac,
+ 0xcf, 0xc1, 0x30, 0x47, 0xa1, 0x98, 0x61, 0xb9, 0xa3, 0xf3, 0xaa, 0x0a,
+ 0xc2, 0xea, 0x48, 0xb4, 0xc4, 0xd1, 0xee, 0xdf, 0xc9, 0x59, 0xa7, 0x7e,
+ 0xb7, 0xdf, 0x19, 0xec,
+};
+static const struct drbg_kat_pr_true kat2913_t = {
+ 2, kat2913_entropyin, kat2913_nonce, kat2913_persstr,
+ kat2913_entropyinpr1, kat2913_addinpr1, kat2913_entropyinpr2,
+ kat2913_addinpr2, kat2913_retbits
+};
+static const struct drbg_kat kat2913 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2913_t
+};
+
+static const unsigned char kat2914_entropyin[] = {
+ 0x43, 0x24, 0xeb, 0x5e, 0x5d, 0x3b, 0x15, 0xaa, 0x28, 0x37, 0x7d, 0x80,
+ 0x9d, 0xaa, 0x85, 0x79,
+};
+static const unsigned char kat2914_nonce[] = {
+ 0x08, 0x87, 0x50, 0x03, 0x8f, 0x51, 0x75, 0xf0,
+};
+static const unsigned char kat2914_persstr[] = {
+ 0xd2, 0x7c, 0x75, 0x83, 0x6f, 0x0a, 0x21, 0x73, 0xa3, 0x08, 0xf5, 0x8a,
+ 0xd0, 0x7c, 0x52, 0x3e,
+};
+static const unsigned char kat2914_entropyinpr1[] = {
+ 0xa9, 0x93, 0xd4, 0xc9, 0x74, 0x93, 0xa1, 0xe7, 0x82, 0xaa, 0xd9, 0xc0,
+ 0x1f, 0x9a, 0x7e, 0x5c,
+};
+static const unsigned char kat2914_addinpr1[] = {0};
+static const unsigned char kat2914_entropyinpr2[] = {
+ 0xd9, 0x6a, 0x76, 0x78, 0x37, 0xaf, 0xb4, 0xb8, 0x54, 0x4a, 0xe5, 0x82,
+ 0x7a, 0x0f, 0x6b, 0x71,
+};
+static const unsigned char kat2914_addinpr2[] = {0};
+static const unsigned char kat2914_retbits[] = {
+ 0x54, 0x44, 0x98, 0xbd, 0x43, 0x31, 0x35, 0xc2, 0xd5, 0xb8, 0x05, 0xb4,
+ 0x5e, 0x88, 0x73, 0x3e, 0x71, 0x23, 0x5e, 0xb6, 0xad, 0x25, 0xee, 0x89,
+ 0xf2, 0x1b, 0x24, 0xa4, 0x18, 0xe0, 0xfa, 0xfe, 0x25, 0x5a, 0xdc, 0xc2,
+ 0x3e, 0xdc, 0xcf, 0x11, 0xe6, 0x79, 0x90, 0x7c, 0x74, 0x25, 0xe8, 0xb1,
+ 0xf5, 0x3d, 0x0a, 0x16, 0x19, 0xe7, 0xdc, 0x3e, 0xcb, 0x20, 0x97, 0xcc,
+ 0x18, 0x13, 0x37, 0x36,
+};
+static const struct drbg_kat_pr_true kat2914_t = {
+ 3, kat2914_entropyin, kat2914_nonce, kat2914_persstr,
+ kat2914_entropyinpr1, kat2914_addinpr1, kat2914_entropyinpr2,
+ kat2914_addinpr2, kat2914_retbits
+};
+static const struct drbg_kat kat2914 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2914_t
+};
+
+static const unsigned char kat2915_entropyin[] = {
+ 0xb2, 0x13, 0xf7, 0xce, 0x19, 0x3c, 0xd4, 0xa6, 0x6e, 0x97, 0x92, 0x66,
+ 0xf4, 0x88, 0xe1, 0x81,
+};
+static const unsigned char kat2915_nonce[] = {
+ 0x19, 0x19, 0x1a, 0x55, 0x7f, 0x54, 0x4e, 0xf9,
+};
+static const unsigned char kat2915_persstr[] = {
+ 0x1c, 0xed, 0x83, 0x18, 0xf6, 0x40, 0x43, 0x90, 0xc4, 0xa4, 0xee, 0x34,
+ 0x3c, 0xf5, 0x3c, 0x43,
+};
+static const unsigned char kat2915_entropyinpr1[] = {
+ 0x20, 0xa8, 0x83, 0xfa, 0x38, 0x02, 0xf2, 0xd4, 0xb8, 0x35, 0x9f, 0x04,
+ 0x43, 0x55, 0xaa, 0x80,
+};
+static const unsigned char kat2915_addinpr1[] = {0};
+static const unsigned char kat2915_entropyinpr2[] = {
+ 0x0f, 0x8f, 0x65, 0xe2, 0x19, 0x2a, 0x8a, 0x44, 0x5b, 0xae, 0xd6, 0x65,
+ 0x27, 0xb8, 0xa0, 0xfc,
+};
+static const unsigned char kat2915_addinpr2[] = {0};
+static const unsigned char kat2915_retbits[] = {
+ 0xd3, 0xf1, 0xcc, 0xc7, 0x7e, 0x04, 0x1c, 0xed, 0xd5, 0xb8, 0x05, 0xca,
+ 0xe6, 0x57, 0x89, 0x46, 0x03, 0x02, 0x19, 0x0f, 0x3c, 0x74, 0x78, 0x8f,
+ 0xa5, 0x0b, 0x86, 0x3c, 0xb4, 0xd3, 0x4a, 0x96, 0xe2, 0xf0, 0x2b, 0xec,
+ 0xd7, 0x21, 0x8a, 0xd2, 0xc9, 0x34, 0x72, 0xdc, 0xd9, 0xc2, 0x3c, 0xc6,
+ 0xdd, 0x74, 0xc3, 0x9d, 0xb6, 0xea, 0xa3, 0x7c, 0xd9, 0x85, 0xb0, 0x15,
+ 0x31, 0x4b, 0x71, 0x9d,
+};
+static const struct drbg_kat_pr_true kat2915_t = {
+ 4, kat2915_entropyin, kat2915_nonce, kat2915_persstr,
+ kat2915_entropyinpr1, kat2915_addinpr1, kat2915_entropyinpr2,
+ kat2915_addinpr2, kat2915_retbits
+};
+static const struct drbg_kat kat2915 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2915_t
+};
+
+static const unsigned char kat2916_entropyin[] = {
+ 0x01, 0xab, 0x54, 0x2d, 0xce, 0xdb, 0x7e, 0xba, 0x62, 0xe1, 0x7c, 0x6d,
+ 0x0c, 0x2a, 0x2e, 0x42,
+};
+static const unsigned char kat2916_nonce[] = {
+ 0x70, 0xe3, 0x68, 0x41, 0x6f, 0xc1, 0x06, 0xea,
+};
+static const unsigned char kat2916_persstr[] = {
+ 0xd0, 0xff, 0x40, 0xe6, 0x89, 0x73, 0x01, 0x1a, 0x40, 0x50, 0x12, 0x73,
+ 0xa0, 0x17, 0xa4, 0x4e,
+};
+static const unsigned char kat2916_entropyinpr1[] = {
+ 0xa7, 0x08, 0x23, 0xf0, 0xf5, 0xcb, 0x86, 0xe5, 0x3c, 0x6e, 0x6c, 0xf3,
+ 0x7f, 0x2f, 0xac, 0xa9,
+};
+static const unsigned char kat2916_addinpr1[] = {0};
+static const unsigned char kat2916_entropyinpr2[] = {
+ 0x54, 0x30, 0x81, 0x75, 0x54, 0xb4, 0x28, 0xa3, 0x98, 0x9b, 0x1c, 0xe4,
+ 0x6c, 0x0d, 0xf5, 0x1f,
+};
+static const unsigned char kat2916_addinpr2[] = {0};
+static const unsigned char kat2916_retbits[] = {
+ 0x60, 0xcc, 0xee, 0x8a, 0xd4, 0x86, 0x4e, 0x0a, 0xf4, 0x10, 0x83, 0x06,
+ 0xd3, 0x71, 0x2f, 0xac, 0x21, 0x58, 0xc7, 0xc6, 0x8f, 0xf6, 0x2f, 0xaa,
+ 0x41, 0x23, 0x2f, 0x38, 0xf7, 0x1a, 0x88, 0xb8, 0xec, 0x25, 0x34, 0xc2,
+ 0x38, 0xdc, 0xf5, 0xa8, 0x40, 0xf3, 0xfa, 0x17, 0x65, 0x98, 0x62, 0x48,
+ 0xca, 0x7e, 0x5b, 0xdf, 0x75, 0x94, 0x28, 0x43, 0xde, 0x9a, 0x90, 0x7d,
+ 0xe8, 0x7b, 0x18, 0x20,
+};
+static const struct drbg_kat_pr_true kat2916_t = {
+ 5, kat2916_entropyin, kat2916_nonce, kat2916_persstr,
+ kat2916_entropyinpr1, kat2916_addinpr1, kat2916_entropyinpr2,
+ kat2916_addinpr2, kat2916_retbits
+};
+static const struct drbg_kat kat2916 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2916_t
+};
+
+static const unsigned char kat2917_entropyin[] = {
+ 0xb6, 0x3b, 0x39, 0xf9, 0x04, 0xc7, 0xe7, 0x6d, 0x8d, 0x79, 0xfa, 0x6d,
+ 0xd2, 0x5a, 0x69, 0x62,
+};
+static const unsigned char kat2917_nonce[] = {
+ 0x6d, 0x52, 0x52, 0xac, 0x2a, 0xdf, 0xc7, 0xb1,
+};
+static const unsigned char kat2917_persstr[] = {
+ 0xc3, 0xa1, 0xb3, 0x85, 0x1a, 0x77, 0x09, 0xc4, 0x67, 0xc9, 0xef, 0x32,
+ 0x84, 0xef, 0xa0, 0x1c,
+};
+static const unsigned char kat2917_entropyinpr1[] = {
+ 0x7e, 0xfc, 0x7d, 0x32, 0xa4, 0x7b, 0x09, 0x71, 0x7c, 0x4d, 0x02, 0xfa,
+ 0x54, 0x0b, 0xfb, 0x0c,
+};
+static const unsigned char kat2917_addinpr1[] = {0};
+static const unsigned char kat2917_entropyinpr2[] = {
+ 0x55, 0x90, 0x32, 0x09, 0x58, 0x42, 0xd1, 0x59, 0x29, 0x1c, 0x08, 0xd5,
+ 0x21, 0x58, 0x80, 0x31,
+};
+static const unsigned char kat2917_addinpr2[] = {0};
+static const unsigned char kat2917_retbits[] = {
+ 0xb1, 0x52, 0x1f, 0x1f, 0x1c, 0xae, 0xc7, 0x40, 0x48, 0xb5, 0xbb, 0x97,
+ 0x79, 0x4e, 0x3f, 0x46, 0x77, 0xe4, 0xea, 0x38, 0xa6, 0x4d, 0x74, 0xcd,
+ 0x41, 0xc8, 0x37, 0xab, 0x0f, 0x62, 0x59, 0xda, 0x42, 0x42, 0xa1, 0x7d,
+ 0xc6, 0xb9, 0x44, 0x7f, 0x56, 0x03, 0xa4, 0x4b, 0x39, 0x76, 0x36, 0x32,
+ 0xc7, 0x50, 0x20, 0xf2, 0xbe, 0x76, 0x0b, 0xdd, 0x2e, 0x11, 0xc8, 0x6d,
+ 0xe9, 0xd0, 0xf4, 0xb3,
+};
+static const struct drbg_kat_pr_true kat2917_t = {
+ 6, kat2917_entropyin, kat2917_nonce, kat2917_persstr,
+ kat2917_entropyinpr1, kat2917_addinpr1, kat2917_entropyinpr2,
+ kat2917_addinpr2, kat2917_retbits
+};
+static const struct drbg_kat kat2917 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2917_t
+};
+
+static const unsigned char kat2918_entropyin[] = {
+ 0xf9, 0xa3, 0x9f, 0x97, 0x29, 0xe2, 0x2d, 0x49, 0xec, 0xf6, 0x6f, 0x4f,
+ 0x25, 0x4b, 0xb2, 0xbe,
+};
+static const unsigned char kat2918_nonce[] = {
+ 0x75, 0x96, 0x75, 0xe6, 0xad, 0x5b, 0x46, 0x5c,
+};
+static const unsigned char kat2918_persstr[] = {
+ 0x07, 0xe5, 0xab, 0xca, 0x6b, 0xb5, 0xbb, 0xcc, 0xf7, 0x0a, 0x62, 0x04,
+ 0x18, 0x37, 0x25, 0x66,
+};
+static const unsigned char kat2918_entropyinpr1[] = {
+ 0x37, 0xae, 0xab, 0xc9, 0x74, 0xcc, 0x63, 0x09, 0x47, 0x8d, 0xc8, 0x58,
+ 0x87, 0xdb, 0x77, 0x7f,
+};
+static const unsigned char kat2918_addinpr1[] = {0};
+static const unsigned char kat2918_entropyinpr2[] = {
+ 0xef, 0x59, 0x90, 0xc3, 0x26, 0xc4, 0x5b, 0x03, 0xad, 0xbe, 0x1d, 0xe0,
+ 0x93, 0x61, 0x9f, 0x84,
+};
+static const unsigned char kat2918_addinpr2[] = {0};
+static const unsigned char kat2918_retbits[] = {
+ 0x36, 0x6a, 0x38, 0x08, 0x7a, 0xbd, 0x19, 0x9d, 0x6c, 0xb3, 0xa3, 0xb9,
+ 0xa6, 0x14, 0x7c, 0x0f, 0x30, 0x6c, 0xc3, 0xdd, 0xd4, 0x12, 0x20, 0x74,
+ 0xde, 0x28, 0x1f, 0x3f, 0xc5, 0x6f, 0x5d, 0x3f, 0x74, 0xc6, 0xdd, 0x28,
+ 0x9a, 0x93, 0x79, 0x1c, 0xa2, 0xdb, 0x3d, 0xd6, 0xb4, 0xbc, 0x98, 0x4e,
+ 0x80, 0xca, 0x77, 0xfa, 0x49, 0x98, 0x71, 0x45, 0xeb, 0x06, 0xfa, 0xbe,
+ 0xe7, 0x8e, 0xbb, 0xf6,
+};
+static const struct drbg_kat_pr_true kat2918_t = {
+ 7, kat2918_entropyin, kat2918_nonce, kat2918_persstr,
+ kat2918_entropyinpr1, kat2918_addinpr1, kat2918_entropyinpr2,
+ kat2918_addinpr2, kat2918_retbits
+};
+static const struct drbg_kat kat2918 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2918_t
+};
+
+static const unsigned char kat2919_entropyin[] = {
+ 0x3a, 0x2b, 0xdf, 0x56, 0x32, 0x7d, 0x3f, 0xd9, 0x4d, 0x80, 0xd8, 0x3f,
+ 0x95, 0x0e, 0x0b, 0x5c,
+};
+static const unsigned char kat2919_nonce[] = {
+ 0x5f, 0x6c, 0xbe, 0xc4, 0x9d, 0x02, 0x2d, 0xf2,
+};
+static const unsigned char kat2919_persstr[] = {
+ 0x45, 0xfc, 0x17, 0x6f, 0xfb, 0xea, 0xaa, 0xa9, 0xa1, 0xc8, 0xeb, 0xbf,
+ 0xb0, 0x51, 0x2c, 0xba,
+};
+static const unsigned char kat2919_entropyinpr1[] = {
+ 0x44, 0xc3, 0x68, 0x62, 0x22, 0x54, 0x7f, 0xf4, 0x21, 0x19, 0x83, 0x72,
+ 0x07, 0x9a, 0x94, 0x2a,
+};
+static const unsigned char kat2919_addinpr1[] = {0};
+static const unsigned char kat2919_entropyinpr2[] = {
+ 0x95, 0xd4, 0xf2, 0x55, 0xce, 0x0e, 0xef, 0x14, 0xb5, 0x6b, 0xe4, 0x86,
+ 0x41, 0xb5, 0x15, 0xb5,
+};
+static const unsigned char kat2919_addinpr2[] = {0};
+static const unsigned char kat2919_retbits[] = {
+ 0xf6, 0xa4, 0x4d, 0xf4, 0x45, 0x79, 0x21, 0xf7, 0x15, 0x59, 0xf0, 0x38,
+ 0xdf, 0x0b, 0xf5, 0x10, 0x68, 0x93, 0xf5, 0xbe, 0x1b, 0x30, 0xe6, 0x47,
+ 0x4b, 0x91, 0x42, 0xae, 0xea, 0xe1, 0xcf, 0x0f, 0x36, 0x61, 0xda, 0x0b,
+ 0xed, 0xfd, 0xd9, 0x33, 0x16, 0x36, 0x4c, 0x2b, 0x21, 0xc8, 0xc6, 0x97,
+ 0x4a, 0xa0, 0x0f, 0xb1, 0x6d, 0x6d, 0xfd, 0xbe, 0xf6, 0x1b, 0xa0, 0x5b,
+ 0x7f, 0x70, 0x08, 0xf4,
+};
+static const struct drbg_kat_pr_true kat2919_t = {
+ 8, kat2919_entropyin, kat2919_nonce, kat2919_persstr,
+ kat2919_entropyinpr1, kat2919_addinpr1, kat2919_entropyinpr2,
+ kat2919_addinpr2, kat2919_retbits
+};
+static const struct drbg_kat kat2919 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2919_t
+};
+
+static const unsigned char kat2920_entropyin[] = {
+ 0x65, 0xbd, 0x77, 0x12, 0x78, 0x97, 0xf6, 0xc7, 0x06, 0xac, 0xbd, 0x40,
+ 0x62, 0xef, 0x96, 0xb9,
+};
+static const unsigned char kat2920_nonce[] = {
+ 0xa8, 0x63, 0x02, 0xb2, 0xaa, 0x4f, 0x80, 0x6f,
+};
+static const unsigned char kat2920_persstr[] = {
+ 0x0e, 0x4b, 0xbf, 0x8a, 0xa7, 0x0d, 0x2a, 0x3c, 0xad, 0xa5, 0x25, 0x3b,
+ 0x54, 0xb9, 0x15, 0xae,
+};
+static const unsigned char kat2920_entropyinpr1[] = {
+ 0x64, 0xb6, 0xe1, 0x24, 0xe0, 0xe1, 0x51, 0xaa, 0x00, 0x50, 0x44, 0xf3,
+ 0x5a, 0x49, 0xef, 0xba,
+};
+static const unsigned char kat2920_addinpr1[] = {0};
+static const unsigned char kat2920_entropyinpr2[] = {
+ 0xf5, 0xe7, 0x97, 0x1b, 0x5a, 0xd1, 0x8a, 0x91, 0xcd, 0x42, 0x5d, 0x87,
+ 0x4e, 0xc3, 0x04, 0x1e,
+};
+static const unsigned char kat2920_addinpr2[] = {0};
+static const unsigned char kat2920_retbits[] = {
+ 0xe0, 0x1e, 0x53, 0xda, 0x0d, 0x47, 0xc2, 0xd1, 0xbe, 0x09, 0x6f, 0xa3,
+ 0x47, 0x3e, 0x0d, 0x4e, 0xaf, 0xc0, 0xef, 0x50, 0xbe, 0xba, 0xdf, 0x38,
+ 0xdd, 0x02, 0xea, 0xce, 0xac, 0xf8, 0x4c, 0x38, 0x47, 0xaf, 0x7d, 0x6e,
+ 0xfa, 0xc8, 0x61, 0x90, 0xbe, 0xa1, 0x86, 0xe5, 0xcc, 0x9d, 0xc8, 0xf1,
+ 0x85, 0xe9, 0x7a, 0x85, 0xff, 0x36, 0x1a, 0x2b, 0xdf, 0x88, 0x43, 0xe2,
+ 0x91, 0x5f, 0x49, 0xf6,
+};
+static const struct drbg_kat_pr_true kat2920_t = {
+ 9, kat2920_entropyin, kat2920_nonce, kat2920_persstr,
+ kat2920_entropyinpr1, kat2920_addinpr1, kat2920_entropyinpr2,
+ kat2920_addinpr2, kat2920_retbits
+};
+static const struct drbg_kat kat2920 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2920_t
+};
+
+static const unsigned char kat2921_entropyin[] = {
+ 0x65, 0xf5, 0xac, 0x10, 0xd9, 0xaf, 0xe7, 0xdd, 0x73, 0x39, 0x58, 0xb9,
+ 0x81, 0x0f, 0x4b, 0x88,
+};
+static const unsigned char kat2921_nonce[] = {
+ 0xc5, 0xe0, 0x17, 0x28, 0x79, 0xdc, 0x34, 0x4a,
+};
+static const unsigned char kat2921_persstr[] = {
+ 0x83, 0xb4, 0x11, 0x92, 0x13, 0x3c, 0x9d, 0xc7, 0x12, 0x19, 0xe0, 0x7a,
+ 0x15, 0xf8, 0x26, 0xfa,
+};
+static const unsigned char kat2921_entropyinpr1[] = {
+ 0x64, 0x7d, 0xbd, 0xe6, 0xb3, 0xa1, 0x1a, 0x58, 0x5f, 0x44, 0x28, 0xb3,
+ 0x21, 0x0e, 0xb5, 0x4e,
+};
+static const unsigned char kat2921_addinpr1[] = {0};
+static const unsigned char kat2921_entropyinpr2[] = {
+ 0xbb, 0x5c, 0xc9, 0x6e, 0x43, 0x13, 0x45, 0xb5, 0xee, 0x09, 0xbf, 0xcd,
+ 0x9d, 0x38, 0xa7, 0x51,
+};
+static const unsigned char kat2921_addinpr2[] = {0};
+static const unsigned char kat2921_retbits[] = {
+ 0x8c, 0xdf, 0x9e, 0x26, 0x72, 0x94, 0xeb, 0xb9, 0x05, 0x26, 0xf3, 0x47,
+ 0xd7, 0x67, 0x3c, 0xf8, 0x7f, 0x43, 0x6d, 0x3b, 0x90, 0x65, 0xbe, 0xf5,
+ 0x26, 0x28, 0xa7, 0x2b, 0x4e, 0x04, 0xc8, 0x31, 0xb0, 0x5d, 0x5d, 0x49,
+ 0xfe, 0x93, 0xbd, 0x53, 0x91, 0xca, 0x5c, 0x1e, 0xeb, 0x93, 0x39, 0x51,
+ 0x56, 0x6a, 0xb0, 0x1e, 0x05, 0xdb, 0x28, 0x9e, 0x67, 0x71, 0x20, 0x55,
+ 0x9a, 0x0d, 0x67, 0xdd,
+};
+static const struct drbg_kat_pr_true kat2921_t = {
+ 10, kat2921_entropyin, kat2921_nonce, kat2921_persstr,
+ kat2921_entropyinpr1, kat2921_addinpr1, kat2921_entropyinpr2,
+ kat2921_addinpr2, kat2921_retbits
+};
+static const struct drbg_kat kat2921 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2921_t
+};
+
+static const unsigned char kat2922_entropyin[] = {
+ 0xff, 0x0b, 0xc5, 0xb4, 0x4a, 0x5c, 0x0b, 0x58, 0x00, 0x17, 0x54, 0x57,
+ 0x39, 0xd0, 0x57, 0xe1,
+};
+static const unsigned char kat2922_nonce[] = {
+ 0xe4, 0x8e, 0x23, 0xfa, 0x66, 0x8c, 0xc6, 0xdf,
+};
+static const unsigned char kat2922_persstr[] = {
+ 0xce, 0xb2, 0x54, 0xbf, 0x57, 0x7b, 0xdc, 0x23, 0xdb, 0x2b, 0x1f, 0x67,
+ 0xef, 0x1b, 0xa2, 0xcb,
+};
+static const unsigned char kat2922_entropyinpr1[] = {
+ 0x62, 0xef, 0xff, 0x8f, 0x4a, 0x23, 0xef, 0x09, 0x46, 0xb0, 0x0a, 0xab,
+ 0x1c, 0xf5, 0xca, 0x54,
+};
+static const unsigned char kat2922_addinpr1[] = {0};
+static const unsigned char kat2922_entropyinpr2[] = {
+ 0x1e, 0xb3, 0xdf, 0xf0, 0x64, 0x43, 0x5a, 0x07, 0x50, 0x0f, 0x59, 0x9b,
+ 0xb7, 0x74, 0x4e, 0xf3,
+};
+static const unsigned char kat2922_addinpr2[] = {0};
+static const unsigned char kat2922_retbits[] = {
+ 0xfe, 0x32, 0xda, 0x0e, 0xc0, 0xf4, 0x45, 0x0d, 0x59, 0x09, 0x82, 0x23,
+ 0x38, 0x83, 0x11, 0x55, 0xb8, 0xe3, 0x17, 0xaf, 0xa6, 0xab, 0x3f, 0xc1,
+ 0x94, 0xf6, 0x50, 0x48, 0xbc, 0x33, 0xc4, 0xb1, 0x73, 0xc6, 0xe2, 0x3b,
+ 0x3c, 0xba, 0x0f, 0x11, 0x06, 0xb3, 0x6f, 0xb9, 0xd5, 0xae, 0x97, 0x43,
+ 0x80, 0x09, 0xb0, 0x22, 0x8e, 0xae, 0xa4, 0xa4, 0x6b, 0x52, 0x1d, 0x19,
+ 0xf9, 0x1c, 0xc9, 0xae,
+};
+static const struct drbg_kat_pr_true kat2922_t = {
+ 11, kat2922_entropyin, kat2922_nonce, kat2922_persstr,
+ kat2922_entropyinpr1, kat2922_addinpr1, kat2922_entropyinpr2,
+ kat2922_addinpr2, kat2922_retbits
+};
+static const struct drbg_kat kat2922 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2922_t
+};
+
+static const unsigned char kat2923_entropyin[] = {
+ 0xe1, 0xdb, 0x4e, 0x81, 0xe7, 0x3c, 0xef, 0xff, 0xf7, 0x3d, 0xf5, 0x95,
+ 0x87, 0xfd, 0x18, 0x03,
+};
+static const unsigned char kat2923_nonce[] = {
+ 0xe3, 0xb0, 0x24, 0x42, 0x4c, 0x6c, 0xc6, 0x78,
+};
+static const unsigned char kat2923_persstr[] = {
+ 0x75, 0xfd, 0x2b, 0x61, 0xbc, 0x63, 0x18, 0xa5, 0xba, 0xf9, 0x31, 0x2e,
+ 0x47, 0x8b, 0x04, 0xfd,
+};
+static const unsigned char kat2923_entropyinpr1[] = {
+ 0xd5, 0x35, 0xde, 0xa7, 0x2d, 0x20, 0xdb, 0xd5, 0x40, 0xcd, 0xe8, 0x56,
+ 0xcf, 0x05, 0x4e, 0xae,
+};
+static const unsigned char kat2923_addinpr1[] = {0};
+static const unsigned char kat2923_entropyinpr2[] = {
+ 0xbd, 0xda, 0x47, 0x0e, 0xa6, 0xee, 0x45, 0x75, 0x56, 0xa8, 0xdd, 0x29,
+ 0xb6, 0x20, 0x39, 0x81,
+};
+static const unsigned char kat2923_addinpr2[] = {0};
+static const unsigned char kat2923_retbits[] = {
+ 0x6d, 0x33, 0xf5, 0x2f, 0x8a, 0xd7, 0x8a, 0xcb, 0xd8, 0xfe, 0xed, 0xb1,
+ 0x2c, 0x38, 0x41, 0xea, 0x9e, 0x1a, 0xca, 0x03, 0xd5, 0x05, 0xb6, 0xf0,
+ 0xc1, 0x6e, 0xcb, 0xe2, 0x01, 0x65, 0x09, 0x54, 0x08, 0x5a, 0x6a, 0x21,
+ 0x81, 0x97, 0xde, 0x7f, 0x40, 0x77, 0xa9, 0x38, 0x87, 0xb9, 0x80, 0x5a,
+ 0xeb, 0xf6, 0x6c, 0xf0, 0x63, 0xd6, 0xd8, 0x98, 0xd8, 0xbe, 0x6a, 0xd0,
+ 0x11, 0xa5, 0x99, 0x29,
+};
+static const struct drbg_kat_pr_true kat2923_t = {
+ 12, kat2923_entropyin, kat2923_nonce, kat2923_persstr,
+ kat2923_entropyinpr1, kat2923_addinpr1, kat2923_entropyinpr2,
+ kat2923_addinpr2, kat2923_retbits
+};
+static const struct drbg_kat kat2923 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2923_t
+};
+
+static const unsigned char kat2924_entropyin[] = {
+ 0x7b, 0x2d, 0x0a, 0xf7, 0x17, 0xe1, 0x0c, 0x54, 0x75, 0xaf, 0x5b, 0xdd,
+ 0xeb, 0xd6, 0x9e, 0xcc,
+};
+static const unsigned char kat2924_nonce[] = {
+ 0x70, 0x89, 0x12, 0x34, 0x65, 0x88, 0xfd, 0x18,
+};
+static const unsigned char kat2924_persstr[] = {
+ 0x69, 0xe0, 0xf3, 0xe9, 0xfd, 0xc2, 0x80, 0xcc, 0xf3, 0xfc, 0xe3, 0xfd,
+ 0xf8, 0xa1, 0x5c, 0x38,
+};
+static const unsigned char kat2924_entropyinpr1[] = {
+ 0x78, 0xdd, 0xc5, 0x74, 0x59, 0x06, 0x39, 0x1c, 0x8d, 0x70, 0xed, 0x86,
+ 0xa5, 0xba, 0xdb, 0x02,
+};
+static const unsigned char kat2924_addinpr1[] = {0};
+static const unsigned char kat2924_entropyinpr2[] = {
+ 0x58, 0xf3, 0x5f, 0x3a, 0x03, 0xf1, 0xf4, 0x12, 0x6b, 0x6e, 0x5c, 0x87,
+ 0xa5, 0x03, 0x2a, 0xde,
+};
+static const unsigned char kat2924_addinpr2[] = {0};
+static const unsigned char kat2924_retbits[] = {
+ 0xbb, 0x48, 0xab, 0x47, 0xd5, 0x1e, 0x67, 0xe4, 0xa7, 0x4c, 0x1c, 0xd5,
+ 0x2c, 0xf1, 0x08, 0xde, 0x5a, 0x2c, 0x6b, 0x70, 0x10, 0x7c, 0xa4, 0x7c,
+ 0x56, 0x81, 0xc6, 0xee, 0xe1, 0x9b, 0x88, 0x3b, 0x6e, 0x4d, 0x3b, 0x40,
+ 0x2d, 0xd6, 0xee, 0x77, 0xb9, 0x5a, 0xee, 0x02, 0x8d, 0x0e, 0x15, 0xa5,
+ 0x7d, 0x2e, 0xe2, 0xad, 0x94, 0x88, 0x58, 0x0a, 0x0c, 0x4f, 0xee, 0x37,
+ 0xf3, 0x2c, 0xf4, 0x52,
+};
+static const struct drbg_kat_pr_true kat2924_t = {
+ 13, kat2924_entropyin, kat2924_nonce, kat2924_persstr,
+ kat2924_entropyinpr1, kat2924_addinpr1, kat2924_entropyinpr2,
+ kat2924_addinpr2, kat2924_retbits
+};
+static const struct drbg_kat kat2924 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2924_t
+};
+
+static const unsigned char kat2925_entropyin[] = {
+ 0x26, 0x17, 0x29, 0x56, 0xbc, 0xde, 0x00, 0xd0, 0xc8, 0x4c, 0x17, 0xb6,
+ 0x7a, 0x24, 0x69, 0xa4,
+};
+static const unsigned char kat2925_nonce[] = {
+ 0x1e, 0x2f, 0x11, 0x47, 0xe2, 0xcb, 0x87, 0x09,
+};
+static const unsigned char kat2925_persstr[] = {
+ 0xa1, 0x24, 0xb1, 0xe8, 0x12, 0xe5, 0xe5, 0xd7, 0x65, 0x80, 0x75, 0x67,
+ 0xbd, 0x8c, 0x02, 0x38,
+};
+static const unsigned char kat2925_entropyinpr1[] = {
+ 0x06, 0xfc, 0x13, 0xe6, 0x52, 0xea, 0x5c, 0xe0, 0x26, 0xbb, 0xc4, 0x65,
+ 0xb7, 0xbe, 0x6f, 0x6d,
+};
+static const unsigned char kat2925_addinpr1[] = {0};
+static const unsigned char kat2925_entropyinpr2[] = {
+ 0xe8, 0x3a, 0x61, 0x80, 0x94, 0xad, 0x08, 0xef, 0x8c, 0xc4, 0x98, 0xa8,
+ 0xcc, 0xc9, 0x8e, 0xcf,
+};
+static const unsigned char kat2925_addinpr2[] = {0};
+static const unsigned char kat2925_retbits[] = {
+ 0x9c, 0x98, 0x7f, 0x10, 0x64, 0x54, 0x53, 0x44, 0x11, 0x55, 0xa2, 0x3a,
+ 0xaf, 0x36, 0xda, 0xae, 0x90, 0x0b, 0xfa, 0x2c, 0x25, 0xe5, 0x71, 0xe6,
+ 0x8e, 0x2b, 0x93, 0x76, 0x5c, 0xf5, 0x53, 0x64, 0xf1, 0xaf, 0xca, 0xbf,
+ 0x49, 0x6a, 0x96, 0x2e, 0x57, 0xf7, 0xee, 0xf8, 0x41, 0x73, 0xed, 0xc9,
+ 0x5f, 0xdb, 0x1d, 0x8b, 0xbd, 0xed, 0x88, 0x19, 0x32, 0xdf, 0xa5, 0xa6,
+ 0xa8, 0x7e, 0x30, 0xdc,
+};
+static const struct drbg_kat_pr_true kat2925_t = {
+ 14, kat2925_entropyin, kat2925_nonce, kat2925_persstr,
+ kat2925_entropyinpr1, kat2925_addinpr1, kat2925_entropyinpr2,
+ kat2925_addinpr2, kat2925_retbits
+};
+static const struct drbg_kat kat2925 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2925_t
+};
+
+static const unsigned char kat2926_entropyin[] = {
+ 0x92, 0x89, 0x8f, 0x31, 0xfa, 0x1c, 0xff, 0x6d, 0x18, 0x2f, 0x26, 0x06,
+ 0x43, 0xdf, 0xf8, 0x18,
+};
+static const unsigned char kat2926_nonce[] = {
+ 0xc2, 0xa4, 0xd9, 0x72, 0xc3, 0xb9, 0xb6, 0x97,
+};
+static const unsigned char kat2926_persstr[] = {
+ 0xea, 0x65, 0xee, 0x60, 0x26, 0x4e, 0x7e, 0xb6, 0x0e, 0x82, 0x68, 0xc4,
+ 0x37, 0x3c, 0x5c, 0x0b,
+};
+static const unsigned char kat2926_entropyinpr1[] = {
+ 0x20, 0x72, 0x8a, 0x06, 0xf8, 0x6f, 0x8d, 0xd4, 0x41, 0xe2, 0x72, 0xb7,
+ 0xc4, 0x2c, 0xe8, 0x10,
+};
+static const unsigned char kat2926_addinpr1[] = {
+ 0x1a, 0x40, 0xfa, 0xe3, 0xcc, 0x6c, 0x7c, 0xa0, 0xf8, 0xda, 0xba, 0x59,
+ 0x23, 0x6d, 0xad, 0x1d,
+};
+static const unsigned char kat2926_entropyinpr2[] = {
+ 0x3d, 0xb0, 0xf0, 0x94, 0xf3, 0x05, 0x50, 0x33, 0x17, 0x86, 0x3e, 0x22,
+ 0x08, 0xf7, 0xa5, 0x01,
+};
+static const unsigned char kat2926_addinpr2[] = {
+ 0x9f, 0x72, 0x76, 0x6c, 0xc7, 0x46, 0xe5, 0xed, 0x2e, 0x53, 0x20, 0x12,
+ 0xbc, 0x59, 0x31, 0x8c,
+};
+static const unsigned char kat2926_retbits[] = {
+ 0x5a, 0x35, 0x39, 0x87, 0x0f, 0x4d, 0x22, 0xa4, 0x09, 0x24, 0xee, 0x71,
+ 0xc9, 0x6f, 0xac, 0x72, 0x0a, 0xd6, 0xf0, 0x88, 0x82, 0xd0, 0x83, 0x28,
+ 0x73, 0xec, 0x3f, 0x93, 0xd8, 0xab, 0x45, 0x23, 0xf0, 0x7e, 0xac, 0x45,
+ 0x14, 0x5e, 0x93, 0x9f, 0xb1, 0xd6, 0x76, 0x43, 0x3d, 0xb6, 0xe8, 0x08,
+ 0x88, 0xf6, 0xda, 0x89, 0x08, 0x77, 0x42, 0xfe, 0x1a, 0xf4, 0x3f, 0xc4,
+ 0x23, 0xc5, 0x1f, 0x68,
+};
+static const struct drbg_kat_pr_true kat2926_t = {
+ 0, kat2926_entropyin, kat2926_nonce, kat2926_persstr,
+ kat2926_entropyinpr1, kat2926_addinpr1, kat2926_entropyinpr2,
+ kat2926_addinpr2, kat2926_retbits
+};
+static const struct drbg_kat kat2926 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2926_t
+};
+
+static const unsigned char kat2927_entropyin[] = {
+ 0xd7, 0x98, 0xba, 0xda, 0x1e, 0xf8, 0xc5, 0x00, 0xc0, 0xb8, 0xab, 0x01,
+ 0x9d, 0x9e, 0xf4, 0xc4,
+};
+static const unsigned char kat2927_nonce[] = {
+ 0x94, 0xa9, 0x5f, 0xab, 0x75, 0x19, 0x75, 0x1e,
+};
+static const unsigned char kat2927_persstr[] = {
+ 0x02, 0xdb, 0xf0, 0xd4, 0x25, 0x9d, 0x61, 0xd1, 0x3d, 0x02, 0xfd, 0xa3,
+ 0x8b, 0xa7, 0x08, 0x47,
+};
+static const unsigned char kat2927_entropyinpr1[] = {
+ 0x43, 0xf6, 0x11, 0x98, 0x29, 0x9a, 0xed, 0xa5, 0x78, 0x44, 0xc6, 0x6a,
+ 0x06, 0xa3, 0x8d, 0xd5,
+};
+static const unsigned char kat2927_addinpr1[] = {
+ 0x0e, 0x7c, 0x24, 0x7c, 0xa7, 0x04, 0xa4, 0xbe, 0x33, 0x68, 0x1b, 0xa2,
+ 0xe9, 0x25, 0xd8, 0x5f,
+};
+static const unsigned char kat2927_entropyinpr2[] = {
+ 0x16, 0x1d, 0xda, 0xf0, 0x06, 0xc4, 0x8a, 0x7d, 0x2b, 0x57, 0xf6, 0x02,
+ 0x3a, 0x8b, 0x9c, 0x49,
+};
+static const unsigned char kat2927_addinpr2[] = {
+ 0xf8, 0x99, 0x40, 0xb5, 0x44, 0xce, 0xcc, 0xf4, 0xb4, 0xd5, 0x20, 0xab,
+ 0x07, 0x13, 0x2e, 0xda,
+};
+static const unsigned char kat2927_retbits[] = {
+ 0x2e, 0x9a, 0x75, 0xc3, 0xc6, 0x37, 0xc5, 0x7d, 0x8f, 0xdf, 0x66, 0x85,
+ 0xd5, 0xe3, 0x18, 0x97, 0x0d, 0x1e, 0xd0, 0x19, 0xf2, 0xd5, 0x1b, 0xdf,
+ 0x02, 0x42, 0xed, 0xe5, 0x58, 0x75, 0x11, 0xfd, 0xc0, 0x07, 0xfd, 0xe6,
+ 0x22, 0xe4, 0xa4, 0x7f, 0xb8, 0xab, 0x45, 0x84, 0xad, 0x26, 0xe4, 0x59,
+ 0x77, 0x6e, 0xab, 0x32, 0xa7, 0xc4, 0x85, 0x59, 0x8d, 0xc6, 0xc0, 0x30,
+ 0x43, 0x2f, 0xe1, 0xc5,
+};
+static const struct drbg_kat_pr_true kat2927_t = {
+ 1, kat2927_entropyin, kat2927_nonce, kat2927_persstr,
+ kat2927_entropyinpr1, kat2927_addinpr1, kat2927_entropyinpr2,
+ kat2927_addinpr2, kat2927_retbits
+};
+static const struct drbg_kat kat2927 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2927_t
+};
+
+static const unsigned char kat2928_entropyin[] = {
+ 0xbf, 0xc1, 0x0a, 0x9b, 0x7f, 0x1c, 0xe1, 0xcd, 0x72, 0x9f, 0x28, 0x50,
+ 0x5a, 0x3f, 0x6e, 0xf7,
+};
+static const unsigned char kat2928_nonce[] = {
+ 0x2b, 0xaa, 0xd6, 0xb7, 0xb4, 0xb8, 0xae, 0xec,
+};
+static const unsigned char kat2928_persstr[] = {
+ 0xfe, 0xbb, 0x0d, 0x7c, 0x74, 0xb2, 0x06, 0xba, 0xc7, 0xc8, 0xd2, 0x4f,
+ 0x29, 0x67, 0x1c, 0xf8,
+};
+static const unsigned char kat2928_entropyinpr1[] = {
+ 0x91, 0x7f, 0xa1, 0xf6, 0xef, 0x83, 0x1f, 0x6c, 0x42, 0x5f, 0x95, 0xb0,
+ 0xed, 0x98, 0xe3, 0x56,
+};
+static const unsigned char kat2928_addinpr1[] = {
+ 0x6d, 0x49, 0x7d, 0x06, 0x54, 0x30, 0xf1, 0x27, 0x14, 0xb2, 0xe0, 0xec,
+ 0x7e, 0xa5, 0x38, 0x70,
+};
+static const unsigned char kat2928_entropyinpr2[] = {
+ 0x51, 0xcd, 0x65, 0xbd, 0x38, 0x1b, 0x24, 0x66, 0x32, 0x5a, 0x76, 0xc3,
+ 0x26, 0x34, 0x53, 0xcf,
+};
+static const unsigned char kat2928_addinpr2[] = {
+ 0x46, 0xf4, 0xee, 0x11, 0x7e, 0xc6, 0x87, 0xa1, 0x19, 0x79, 0xe1, 0xee,
+ 0xf1, 0xb1, 0x44, 0xea,
+};
+static const unsigned char kat2928_retbits[] = {
+ 0xa4, 0x00, 0x90, 0xe5, 0x85, 0x8a, 0x36, 0xfa, 0xed, 0x24, 0xbf, 0x97,
+ 0x42, 0x8f, 0x47, 0x52, 0x9b, 0x56, 0xe9, 0x47, 0xdc, 0xb6, 0x8d, 0xe9,
+ 0x8d, 0x48, 0xa0, 0xe3, 0x50, 0x8c, 0xbe, 0x13, 0x67, 0xd9, 0x7d, 0x3c,
+ 0x91, 0xd4, 0x92, 0x23, 0xe5, 0x7d, 0x1d, 0x2e, 0x95, 0x84, 0x89, 0x1c,
+ 0x76, 0xed, 0xae, 0x83, 0x79, 0x0a, 0xdd, 0xa6, 0x3c, 0x0f, 0x9f, 0x8f,
+ 0x3d, 0xb5, 0xd6, 0x1e,
+};
+static const struct drbg_kat_pr_true kat2928_t = {
+ 2, kat2928_entropyin, kat2928_nonce, kat2928_persstr,
+ kat2928_entropyinpr1, kat2928_addinpr1, kat2928_entropyinpr2,
+ kat2928_addinpr2, kat2928_retbits
+};
+static const struct drbg_kat kat2928 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2928_t
+};
+
+static const unsigned char kat2929_entropyin[] = {
+ 0x3e, 0xbc, 0xed, 0xe0, 0x8f, 0x00, 0x7d, 0xb7, 0x58, 0x3f, 0xbe, 0x3d,
+ 0xf9, 0x62, 0x1b, 0x5c,
+};
+static const unsigned char kat2929_nonce[] = {
+ 0x99, 0xda, 0xf9, 0xd8, 0x75, 0x67, 0x13, 0x0b,
+};
+static const unsigned char kat2929_persstr[] = {
+ 0x00, 0xb2, 0xd9, 0xd8, 0x0e, 0x93, 0xf1, 0xdf, 0x46, 0x46, 0x58, 0x2b,
+ 0x5c, 0x4f, 0xec, 0x6e,
+};
+static const unsigned char kat2929_entropyinpr1[] = {
+ 0xc5, 0xfd, 0x08, 0x1b, 0xdd, 0xb9, 0x00, 0x64, 0x25, 0xea, 0xfc, 0xa4,
+ 0xb4, 0x58, 0xc9, 0xb5,
+};
+static const unsigned char kat2929_addinpr1[] = {
+ 0x31, 0x81, 0xbb, 0x37, 0xdd, 0xef, 0xdf, 0xe6, 0x0f, 0x4c, 0x1c, 0xbf,
+ 0x4e, 0xfa, 0xfa, 0x81,
+};
+static const unsigned char kat2929_entropyinpr2[] = {
+ 0x14, 0xae, 0x7a, 0x97, 0xa0, 0x68, 0xfe, 0x4c, 0xb2, 0xcb, 0x2d, 0xf0,
+ 0x31, 0x71, 0xcb, 0x6c,
+};
+static const unsigned char kat2929_addinpr2[] = {
+ 0x06, 0xc5, 0xcb, 0xb3, 0x1b, 0xb4, 0xbc, 0xbc, 0xa6, 0x45, 0x1d, 0x1c,
+ 0xd0, 0xf3, 0x7c, 0x2e,
+};
+static const unsigned char kat2929_retbits[] = {
+ 0xda, 0x93, 0xe6, 0xb8, 0x5d, 0xa8, 0x70, 0xd3, 0x47, 0xba, 0x80, 0xcd,
+ 0x3a, 0x71, 0x2e, 0xec, 0x9c, 0xa2, 0xed, 0xfc, 0x4e, 0xa3, 0x44, 0x4d,
+ 0x43, 0x6d, 0x82, 0x67, 0x7d, 0x5e, 0xa3, 0x5b, 0x6f, 0x41, 0x28, 0x35,
+ 0x2b, 0xbc, 0x85, 0x59, 0x9d, 0x12, 0x1b, 0xc4, 0xfd, 0xe6, 0xd0, 0x73,
+ 0x09, 0xa8, 0x04, 0x09, 0x89, 0xc0, 0xbf, 0x52, 0xbe, 0x39, 0x05, 0xb3,
+ 0x38, 0x70, 0x80, 0x51,
+};
+static const struct drbg_kat_pr_true kat2929_t = {
+ 3, kat2929_entropyin, kat2929_nonce, kat2929_persstr,
+ kat2929_entropyinpr1, kat2929_addinpr1, kat2929_entropyinpr2,
+ kat2929_addinpr2, kat2929_retbits
+};
+static const struct drbg_kat kat2929 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2929_t
+};
+
+static const unsigned char kat2930_entropyin[] = {
+ 0xb8, 0x37, 0xc0, 0x34, 0x01, 0xdf, 0x5e, 0xda, 0x47, 0xbc, 0x00, 0x4e,
+ 0xc7, 0xf5, 0x52, 0x94,
+};
+static const unsigned char kat2930_nonce[] = {
+ 0xc0, 0x96, 0x98, 0xc3, 0x84, 0x2e, 0x88, 0xe2,
+};
+static const unsigned char kat2930_persstr[] = {
+ 0x85, 0x5b, 0x6a, 0x93, 0xe7, 0xa7, 0x56, 0xe5, 0x0d, 0x2a, 0x84, 0xb2,
+ 0x2d, 0x79, 0xe4, 0xa6,
+};
+static const unsigned char kat2930_entropyinpr1[] = {
+ 0xb3, 0x0d, 0xe7, 0xab, 0x1b, 0x17, 0x63, 0x69, 0xc6, 0x8e, 0x6a, 0x82,
+ 0x51, 0x6c, 0x6d, 0xe2,
+};
+static const unsigned char kat2930_addinpr1[] = {
+ 0x71, 0xfe, 0xc9, 0x38, 0xfa, 0x84, 0x6d, 0x48, 0x93, 0x21, 0x1c, 0xd5,
+ 0x24, 0x79, 0x05, 0x5a,
+};
+static const unsigned char kat2930_entropyinpr2[] = {
+ 0x54, 0x82, 0x37, 0x0c, 0x31, 0xde, 0xdb, 0x1a, 0x20, 0x05, 0x00, 0xeb,
+ 0xaf, 0x10, 0x38, 0x05,
+};
+static const unsigned char kat2930_addinpr2[] = {
+ 0xba, 0x15, 0x1a, 0xbb, 0xe0, 0xc0, 0x19, 0x67, 0x71, 0xf1, 0x27, 0xb3,
+ 0xeb, 0xec, 0x43, 0x4d,
+};
+static const unsigned char kat2930_retbits[] = {
+ 0x1c, 0x6f, 0x5f, 0xbd, 0xec, 0x55, 0x2d, 0xa3, 0xc7, 0xc9, 0x8a, 0x98,
+ 0xe2, 0x06, 0x8e, 0x99, 0x15, 0x07, 0xa8, 0x7d, 0x33, 0xa8, 0x3d, 0x7b,
+ 0x2b, 0xfc, 0x82, 0xac, 0xb3, 0x11, 0x28, 0x4c, 0xab, 0xdc, 0x87, 0xf4,
+ 0xe0, 0xf1, 0x9e, 0x2d, 0xef, 0x7d, 0x9c, 0xbe, 0x93, 0x5a, 0x97, 0x68,
+ 0xec, 0xb9, 0x8b, 0x32, 0x2c, 0x25, 0x6a, 0x14, 0x36, 0xe4, 0xd4, 0x19,
+ 0xeb, 0xea, 0x25, 0x90,
+};
+static const struct drbg_kat_pr_true kat2930_t = {
+ 4, kat2930_entropyin, kat2930_nonce, kat2930_persstr,
+ kat2930_entropyinpr1, kat2930_addinpr1, kat2930_entropyinpr2,
+ kat2930_addinpr2, kat2930_retbits
+};
+static const struct drbg_kat kat2930 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2930_t
+};
+
+static const unsigned char kat2931_entropyin[] = {
+ 0x97, 0x40, 0x23, 0x07, 0x30, 0x5f, 0xa9, 0x5c, 0x74, 0x2c, 0x4c, 0x73,
+ 0x93, 0xc7, 0x0c, 0x4e,
+};
+static const unsigned char kat2931_nonce[] = {
+ 0x9e, 0x46, 0x08, 0x0e, 0x8a, 0xc6, 0x22, 0x0f,
+};
+static const unsigned char kat2931_persstr[] = {
+ 0x1c, 0x11, 0x5b, 0xbc, 0x23, 0xe9, 0xe6, 0xf4, 0xe4, 0xd6, 0xc3, 0x4b,
+ 0xdd, 0xc1, 0x84, 0xfa,
+};
+static const unsigned char kat2931_entropyinpr1[] = {
+ 0x02, 0x9d, 0x2c, 0xc1, 0x45, 0xbd, 0x93, 0xa5, 0x46, 0xe6, 0x3f, 0xc2,
+ 0x07, 0xad, 0xc5, 0x69,
+};
+static const unsigned char kat2931_addinpr1[] = {
+ 0x0a, 0x3e, 0x01, 0xdc, 0x20, 0xfd, 0x04, 0xcc, 0x3d, 0xd4, 0xe5, 0x71,
+ 0x47, 0xcd, 0x28, 0x39,
+};
+static const unsigned char kat2931_entropyinpr2[] = {
+ 0x0a, 0x2f, 0xc0, 0x5a, 0xb0, 0xea, 0x87, 0x56, 0xbb, 0x30, 0x8c, 0xfb,
+ 0x62, 0xc5, 0x6f, 0x11,
+};
+static const unsigned char kat2931_addinpr2[] = {
+ 0x62, 0x3e, 0x7b, 0x7d, 0x01, 0xf8, 0x63, 0x40, 0x83, 0xa1, 0xa3, 0xac,
+ 0xb4, 0x12, 0xef, 0x36,
+};
+static const unsigned char kat2931_retbits[] = {
+ 0xcf, 0xbf, 0x8a, 0x5d, 0xfd, 0xce, 0x0e, 0x29, 0x68, 0x5c, 0xc9, 0x51,
+ 0xad, 0x9b, 0x84, 0xbe, 0xbe, 0x6e, 0xff, 0x31, 0xb9, 0xce, 0xeb, 0xf1,
+ 0x8d, 0x17, 0x0d, 0x38, 0x22, 0x96, 0xf1, 0xaa, 0x65, 0x33, 0x24, 0x0f,
+ 0x6d, 0x5c, 0x7f, 0xeb, 0x7d, 0xdf, 0xc2, 0x63, 0x1d, 0xf5, 0xcc, 0xeb,
+ 0x58, 0x30, 0x06, 0xe5, 0x03, 0x5f, 0x21, 0xb9, 0x77, 0x7a, 0x0a, 0x8f,
+ 0xe5, 0x77, 0x59, 0x8b,
+};
+static const struct drbg_kat_pr_true kat2931_t = {
+ 5, kat2931_entropyin, kat2931_nonce, kat2931_persstr,
+ kat2931_entropyinpr1, kat2931_addinpr1, kat2931_entropyinpr2,
+ kat2931_addinpr2, kat2931_retbits
+};
+static const struct drbg_kat kat2931 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2931_t
+};
+
+static const unsigned char kat2932_entropyin[] = {
+ 0x79, 0x3c, 0xa4, 0x25, 0x3b, 0x56, 0x1a, 0x1e, 0xfe, 0x47, 0xae, 0xb9,
+ 0xcf, 0x04, 0xc7, 0x70,
+};
+static const unsigned char kat2932_nonce[] = {
+ 0x2a, 0x34, 0x40, 0x43, 0xfb, 0xfd, 0x57, 0x21,
+};
+static const unsigned char kat2932_persstr[] = {
+ 0x58, 0x8f, 0xd7, 0xcf, 0xcc, 0x02, 0x6e, 0x2b, 0x92, 0x12, 0xb4, 0xfb,
+ 0xa2, 0x1b, 0xe6, 0x2e,
+};
+static const unsigned char kat2932_entropyinpr1[] = {
+ 0xe4, 0xe5, 0x79, 0x4c, 0xce, 0x72, 0x14, 0xe0, 0x30, 0x63, 0x4e, 0xec,
+ 0x14, 0x69, 0x0d, 0x2d,
+};
+static const unsigned char kat2932_addinpr1[] = {
+ 0xf5, 0xd8, 0xdc, 0xd7, 0x62, 0x29, 0x63, 0xc1, 0xe8, 0xe1, 0x7d, 0xab,
+ 0xfa, 0xdc, 0x96, 0x56,
+};
+static const unsigned char kat2932_entropyinpr2[] = {
+ 0x9f, 0xe6, 0xa7, 0xc0, 0xde, 0xbc, 0x3e, 0xe9, 0xec, 0x7b, 0x99, 0xf7,
+ 0xe4, 0xa7, 0x5e, 0x10,
+};
+static const unsigned char kat2932_addinpr2[] = {
+ 0x81, 0x35, 0x32, 0xe1, 0x7d, 0xe6, 0x27, 0x57, 0xa5, 0x4c, 0x38, 0x17,
+ 0x86, 0xf0, 0xd7, 0xd1,
+};
+static const unsigned char kat2932_retbits[] = {
+ 0x0c, 0xf1, 0xe8, 0x2c, 0xaa, 0x3f, 0x61, 0xee, 0xda, 0xeb, 0x97, 0xf8,
+ 0x49, 0xe1, 0x45, 0xa0, 0x28, 0x55, 0x60, 0x8e, 0x5b, 0x25, 0xfd, 0x29,
+ 0xf4, 0xe7, 0xa6, 0x41, 0xeb, 0x88, 0x7c, 0xa2, 0xcf, 0x11, 0xb1, 0x44,
+ 0xbc, 0x43, 0x20, 0xf2, 0x01, 0x6c, 0xdd, 0xda, 0x03, 0x8a, 0x5d, 0xb4,
+ 0xad, 0xb7, 0x70, 0xb1, 0x9d, 0xff, 0x0d, 0x2c, 0x5c, 0x4d, 0xb8, 0x87,
+ 0xce, 0x4b, 0x2a, 0xa6,
+};
+static const struct drbg_kat_pr_true kat2932_t = {
+ 6, kat2932_entropyin, kat2932_nonce, kat2932_persstr,
+ kat2932_entropyinpr1, kat2932_addinpr1, kat2932_entropyinpr2,
+ kat2932_addinpr2, kat2932_retbits
+};
+static const struct drbg_kat kat2932 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2932_t
+};
+
+static const unsigned char kat2933_entropyin[] = {
+ 0xd6, 0xfd, 0x7d, 0xfa, 0xbe, 0xc3, 0x2e, 0x0f, 0x4a, 0x03, 0x4d, 0x4e,
+ 0xdf, 0x98, 0xf4, 0xea,
+};
+static const unsigned char kat2933_nonce[] = {
+ 0x5a, 0xe8, 0x7e, 0xd2, 0x44, 0x4c, 0xbb, 0x3c,
+};
+static const unsigned char kat2933_persstr[] = {
+ 0x4e, 0x8c, 0xa8, 0xe9, 0x50, 0x72, 0x19, 0x9f, 0xd5, 0xe4, 0xa5, 0xe2,
+ 0x1d, 0x27, 0xfa, 0x16,
+};
+static const unsigned char kat2933_entropyinpr1[] = {
+ 0xf0, 0x67, 0x7b, 0x3d, 0x14, 0x9a, 0x16, 0x8a, 0xa3, 0x7b, 0xf7, 0xf1,
+ 0xd9, 0x71, 0xb9, 0xb9,
+};
+static const unsigned char kat2933_addinpr1[] = {
+ 0x41, 0xc2, 0xd5, 0x12, 0x54, 0xf3, 0xc3, 0x6d, 0x4b, 0xdb, 0x73, 0xbb,
+ 0x58, 0x58, 0x32, 0x88,
+};
+static const unsigned char kat2933_entropyinpr2[] = {
+ 0xb3, 0x8a, 0xa0, 0x38, 0xe0, 0x8a, 0xf3, 0x62, 0x2f, 0x2b, 0x64, 0x9c,
+ 0xc0, 0x96, 0xbe, 0xb6,
+};
+static const unsigned char kat2933_addinpr2[] = {
+ 0x24, 0xed, 0x03, 0x32, 0x2c, 0x8a, 0x88, 0x0c, 0x43, 0xa4, 0x18, 0xe0,
+ 0xcb, 0x01, 0x60, 0x3f,
+};
+static const unsigned char kat2933_retbits[] = {
+ 0xcf, 0xa3, 0xaf, 0xd3, 0x4a, 0x95, 0xbd, 0x2c, 0x7a, 0x52, 0x86, 0x1c,
+ 0xb4, 0xa5, 0x87, 0x75, 0x05, 0xba, 0x62, 0x65, 0xf4, 0xe4, 0xea, 0xc9,
+ 0xce, 0x84, 0xc5, 0xa1, 0x91, 0xce, 0x61, 0x69, 0xa6, 0xaf, 0x5b, 0x17,
+ 0x49, 0x79, 0x71, 0x67, 0xe1, 0xb9, 0x09, 0x5b, 0x2b, 0xd2, 0x16, 0xc2,
+ 0xab, 0xfd, 0xb6, 0x04, 0x79, 0x78, 0xd6, 0xef, 0x59, 0x05, 0xe8, 0xa1,
+ 0x52, 0x71, 0x1c, 0x45,
+};
+static const struct drbg_kat_pr_true kat2933_t = {
+ 7, kat2933_entropyin, kat2933_nonce, kat2933_persstr,
+ kat2933_entropyinpr1, kat2933_addinpr1, kat2933_entropyinpr2,
+ kat2933_addinpr2, kat2933_retbits
+};
+static const struct drbg_kat kat2933 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2933_t
+};
+
+static const unsigned char kat2934_entropyin[] = {
+ 0x84, 0x89, 0xfb, 0xc6, 0xce, 0x65, 0xe2, 0x34, 0x48, 0x00, 0x30, 0x8d,
+ 0x71, 0xee, 0xa1, 0x1e,
+};
+static const unsigned char kat2934_nonce[] = {
+ 0xc3, 0xda, 0xd8, 0x78, 0x9d, 0xe4, 0x36, 0xad,
+};
+static const unsigned char kat2934_persstr[] = {
+ 0xce, 0x6e, 0xed, 0xf8, 0x29, 0xc5, 0x2b, 0xe3, 0x31, 0x2b, 0x1b, 0xcd,
+ 0x6d, 0x73, 0xe6, 0xce,
+};
+static const unsigned char kat2934_entropyinpr1[] = {
+ 0x74, 0x02, 0x68, 0x14, 0x20, 0x55, 0x8e, 0x72, 0x0d, 0x14, 0xdc, 0xfa,
+ 0x55, 0x79, 0xc1, 0x92,
+};
+static const unsigned char kat2934_addinpr1[] = {
+ 0x55, 0x06, 0x42, 0x96, 0x41, 0xa8, 0x13, 0x29, 0xa0, 0x45, 0xd7, 0x31,
+ 0x81, 0x08, 0xfe, 0x21,
+};
+static const unsigned char kat2934_entropyinpr2[] = {
+ 0xf9, 0xc4, 0xdf, 0xac, 0x5a, 0x0d, 0xc1, 0x10, 0x0d, 0xe5, 0x12, 0x1f,
+ 0xb7, 0x15, 0x4e, 0x64,
+};
+static const unsigned char kat2934_addinpr2[] = {
+ 0xc4, 0xd8, 0xda, 0x70, 0x5d, 0x11, 0x4b, 0x39, 0x15, 0x3d, 0xf8, 0x0e,
+ 0xcc, 0x47, 0xf9, 0x14,
+};
+static const unsigned char kat2934_retbits[] = {
+ 0x53, 0xc4, 0x7c, 0xc3, 0x67, 0x18, 0x6a, 0x97, 0x57, 0x4b, 0xfb, 0xc6,
+ 0xa4, 0x20, 0xfc, 0xb8, 0x77, 0x5f, 0xa6, 0x27, 0x6e, 0x57, 0x31, 0x7e,
+ 0x87, 0x3f, 0x8b, 0x21, 0xac, 0x35, 0x02, 0xb2, 0xbe, 0x7a, 0x88, 0x28,
+ 0x8d, 0x6f, 0x47, 0xae, 0xbb, 0xe6, 0xce, 0xba, 0x89, 0xb0, 0xcd, 0xf5,
+ 0x4d, 0x74, 0x08, 0xf7, 0x0d, 0xa5, 0xb6, 0x49, 0x33, 0x8c, 0x6c, 0x18,
+ 0x8c, 0xa5, 0xe4, 0xe1,
+};
+static const struct drbg_kat_pr_true kat2934_t = {
+ 8, kat2934_entropyin, kat2934_nonce, kat2934_persstr,
+ kat2934_entropyinpr1, kat2934_addinpr1, kat2934_entropyinpr2,
+ kat2934_addinpr2, kat2934_retbits
+};
+static const struct drbg_kat kat2934 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2934_t
+};
+
+static const unsigned char kat2935_entropyin[] = {
+ 0xf2, 0xc5, 0x10, 0x40, 0x48, 0x38, 0x16, 0x37, 0xb0, 0x4d, 0x7d, 0xb6,
+ 0x79, 0x1c, 0xf4, 0x65,
+};
+static const unsigned char kat2935_nonce[] = {
+ 0xd1, 0xf5, 0x74, 0x24, 0x91, 0x84, 0x4e, 0x0d,
+};
+static const unsigned char kat2935_persstr[] = {
+ 0xa7, 0x5c, 0xbd, 0xb4, 0xa3, 0xe4, 0xf8, 0x0b, 0x12, 0x71, 0xb6, 0xb1,
+ 0x83, 0xa3, 0x22, 0x25,
+};
+static const unsigned char kat2935_entropyinpr1[] = {
+ 0x49, 0xed, 0x0c, 0x1b, 0x03, 0x94, 0x25, 0xab, 0x7c, 0xf4, 0xd5, 0x4f,
+ 0xf0, 0xa4, 0xfc, 0x2f,
+};
+static const unsigned char kat2935_addinpr1[] = {
+ 0xe2, 0xb6, 0x67, 0x05, 0xce, 0x58, 0x33, 0xb5, 0x7d, 0x0f, 0xec, 0x8b,
+ 0x31, 0x6e, 0x26, 0x8c,
+};
+static const unsigned char kat2935_entropyinpr2[] = {
+ 0x87, 0x66, 0xc2, 0x8f, 0xb8, 0x69, 0x24, 0x58, 0x5d, 0xa5, 0xd0, 0xa3,
+ 0x9d, 0xa6, 0x82, 0x4e,
+};
+static const unsigned char kat2935_addinpr2[] = {
+ 0xa6, 0xe7, 0x05, 0x70, 0x79, 0x36, 0xb4, 0x3f, 0x4c, 0xdb, 0x2b, 0x66,
+ 0x13, 0xb6, 0x67, 0x82,
+};
+static const unsigned char kat2935_retbits[] = {
+ 0x24, 0xd4, 0x87, 0xd2, 0x5b, 0x16, 0x80, 0x45, 0xcd, 0x4d, 0x16, 0x16,
+ 0xd6, 0xed, 0xef, 0x64, 0x93, 0x56, 0x09, 0x15, 0xa7, 0xf2, 0x8c, 0x77,
+ 0x25, 0x28, 0x82, 0x87, 0xa1, 0xef, 0xb8, 0xa2, 0x98, 0xf1, 0xc5, 0x6d,
+ 0x7f, 0x15, 0xa6, 0x09, 0xd7, 0xc1, 0xb3, 0x83, 0xe6, 0xf0, 0x0b, 0xb0,
+ 0xf1, 0x0f, 0xa9, 0x5b, 0xc4, 0xd9, 0xd8, 0x4c, 0x14, 0x07, 0x09, 0xd2,
+ 0xf2, 0xbf, 0x28, 0x52,
+};
+static const struct drbg_kat_pr_true kat2935_t = {
+ 9, kat2935_entropyin, kat2935_nonce, kat2935_persstr,
+ kat2935_entropyinpr1, kat2935_addinpr1, kat2935_entropyinpr2,
+ kat2935_addinpr2, kat2935_retbits
+};
+static const struct drbg_kat kat2935 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2935_t
+};
+
+static const unsigned char kat2936_entropyin[] = {
+ 0xb9, 0xc9, 0x43, 0x58, 0x3a, 0xac, 0x7c, 0xf5, 0x60, 0x3f, 0xd5, 0x51,
+ 0xe3, 0x95, 0x67, 0x5a,
+};
+static const unsigned char kat2936_nonce[] = {
+ 0x05, 0x89, 0x6f, 0x44, 0x8f, 0xc7, 0x46, 0x6d,
+};
+static const unsigned char kat2936_persstr[] = {
+ 0x8f, 0xe1, 0x7f, 0x91, 0xa5, 0x3c, 0x3e, 0x4f, 0xce, 0x93, 0xcb, 0xf9,
+ 0x9a, 0x94, 0xf5, 0x70,
+};
+static const unsigned char kat2936_entropyinpr1[] = {
+ 0xe8, 0xa3, 0xbb, 0xc5, 0xfa, 0x85, 0x94, 0x5d, 0x42, 0xa6, 0xe2, 0x9d,
+ 0x67, 0x0a, 0xf7, 0xe5,
+};
+static const unsigned char kat2936_addinpr1[] = {
+ 0x74, 0x63, 0x79, 0xe0, 0xce, 0xe0, 0x2b, 0xd1, 0xc0, 0x93, 0x78, 0x9d,
+ 0xea, 0x8b, 0x95, 0x05,
+};
+static const unsigned char kat2936_entropyinpr2[] = {
+ 0x7a, 0x17, 0x23, 0x53, 0x0a, 0xfa, 0x33, 0xf3, 0x0e, 0xc6, 0xf6, 0xf2,
+ 0xe7, 0x45, 0xa6, 0x59,
+};
+static const unsigned char kat2936_addinpr2[] = {
+ 0xd5, 0x14, 0xc3, 0x9c, 0x34, 0xd2, 0x8a, 0x48, 0xf2, 0x64, 0x3f, 0xc0,
+ 0x4d, 0xfe, 0x6c, 0xff,
+};
+static const unsigned char kat2936_retbits[] = {
+ 0xf6, 0x69, 0x34, 0xeb, 0x5a, 0x86, 0x52, 0xa4, 0x4f, 0x65, 0x0e, 0xf8,
+ 0xd0, 0xc1, 0x16, 0x76, 0xa8, 0x02, 0x50, 0xc9, 0xaf, 0xc8, 0xa0, 0xa8,
+ 0xea, 0xfb, 0x88, 0xbb, 0xa9, 0x37, 0x65, 0xce, 0xb3, 0xd7, 0x1f, 0xc6,
+ 0xc4, 0x00, 0xde, 0x14, 0xa2, 0xe6, 0xee, 0x8e, 0x99, 0x20, 0xe1, 0xce,
+ 0x4a, 0xfc, 0x19, 0xbb, 0xa3, 0xaf, 0xdf, 0x46, 0x21, 0x0d, 0xae, 0x73,
+ 0xa7, 0x06, 0x42, 0xc6,
+};
+static const struct drbg_kat_pr_true kat2936_t = {
+ 10, kat2936_entropyin, kat2936_nonce, kat2936_persstr,
+ kat2936_entropyinpr1, kat2936_addinpr1, kat2936_entropyinpr2,
+ kat2936_addinpr2, kat2936_retbits
+};
+static const struct drbg_kat kat2936 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2936_t
+};
+
+static const unsigned char kat2937_entropyin[] = {
+ 0x42, 0xec, 0x11, 0x52, 0x2a, 0x7b, 0xcb, 0x36, 0x91, 0x77, 0x34, 0xf9,
+ 0x02, 0x01, 0xe9, 0xe7,
+};
+static const unsigned char kat2937_nonce[] = {
+ 0x57, 0x1b, 0xb2, 0x0d, 0xc9, 0xeb, 0xd2, 0xdf,
+};
+static const unsigned char kat2937_persstr[] = {
+ 0x36, 0x10, 0xa7, 0xd5, 0xa5, 0x77, 0x2b, 0x33, 0x78, 0x8e, 0x24, 0xbb,
+ 0x32, 0xec, 0x1b, 0x9c,
+};
+static const unsigned char kat2937_entropyinpr1[] = {
+ 0xba, 0x13, 0xd5, 0x08, 0xda, 0x95, 0xd9, 0x81, 0x2d, 0xbe, 0x03, 0x31,
+ 0xba, 0x7a, 0xf7, 0x05,
+};
+static const unsigned char kat2937_addinpr1[] = {
+ 0xd5, 0x6e, 0x9d, 0x8f, 0xad, 0xc1, 0x8b, 0x16, 0x30, 0x87, 0x69, 0xef,
+ 0x68, 0x6a, 0xbd, 0x8a,
+};
+static const unsigned char kat2937_entropyinpr2[] = {
+ 0x69, 0x5c, 0xd3, 0xa5, 0xdd, 0x18, 0x96, 0x43, 0x4a, 0xc5, 0xbc, 0xa8,
+ 0xbc, 0x2a, 0x0b, 0xbf,
+};
+static const unsigned char kat2937_addinpr2[] = {
+ 0x1e, 0xd7, 0x50, 0x6e, 0xa1, 0x36, 0xda, 0x45, 0x64, 0x9f, 0xb8, 0xc8,
+ 0xcc, 0x39, 0x28, 0xd6,
+};
+static const unsigned char kat2937_retbits[] = {
+ 0x50, 0xee, 0x3e, 0x35, 0xfe, 0x18, 0x23, 0x22, 0x59, 0x71, 0x46, 0xbd,
+ 0x8b, 0xb4, 0x84, 0xe5, 0xdc, 0xc0, 0xd2, 0x06, 0x32, 0x7a, 0x65, 0x32,
+ 0xdf, 0x40, 0x02, 0xfa, 0xb0, 0xe6, 0x3e, 0x37, 0x99, 0x27, 0x79, 0x76,
+ 0xca, 0x71, 0x8b, 0xd0, 0x2e, 0x7a, 0x81, 0x5f, 0xb6, 0x4f, 0x19, 0xa3,
+ 0x84, 0x4c, 0x3e, 0x0d, 0x09, 0x10, 0x35, 0xc7, 0xfc, 0x08, 0x9b, 0x85,
+ 0x1e, 0x14, 0x20, 0x0e,
+};
+static const struct drbg_kat_pr_true kat2937_t = {
+ 11, kat2937_entropyin, kat2937_nonce, kat2937_persstr,
+ kat2937_entropyinpr1, kat2937_addinpr1, kat2937_entropyinpr2,
+ kat2937_addinpr2, kat2937_retbits
+};
+static const struct drbg_kat kat2937 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2937_t
+};
+
+static const unsigned char kat2938_entropyin[] = {
+ 0xd7, 0xfa, 0x8b, 0xef, 0x68, 0x1e, 0x5a, 0xeb, 0xc6, 0x0c, 0x11, 0xf9,
+ 0xd2, 0x69, 0x8c, 0x9d,
+};
+static const unsigned char kat2938_nonce[] = {
+ 0xef, 0xa0, 0x1a, 0xcd, 0xf0, 0xfc, 0xfa, 0x2a,
+};
+static const unsigned char kat2938_persstr[] = {
+ 0x13, 0x0c, 0x39, 0x7b, 0x6b, 0x53, 0x26, 0x84, 0xbb, 0xd4, 0x20, 0xb0,
+ 0xee, 0x3d, 0xc9, 0x13,
+};
+static const unsigned char kat2938_entropyinpr1[] = {
+ 0x04, 0x2d, 0x40, 0x1c, 0xff, 0xd7, 0x3c, 0x96, 0xe3, 0xdd, 0x75, 0x90,
+ 0x45, 0x23, 0x08, 0x77,
+};
+static const unsigned char kat2938_addinpr1[] = {
+ 0x81, 0xed, 0xbd, 0x6b, 0xa4, 0x1d, 0x76, 0x94, 0x72, 0xf9, 0x10, 0x6c,
+ 0xd4, 0xea, 0x1a, 0x00,
+};
+static const unsigned char kat2938_entropyinpr2[] = {
+ 0x3c, 0xb0, 0x20, 0x52, 0x39, 0x5d, 0xd4, 0x05, 0x78, 0x71, 0x36, 0x86,
+ 0x97, 0x1f, 0x3a, 0x0e,
+};
+static const unsigned char kat2938_addinpr2[] = {
+ 0xe3, 0x5f, 0xa9, 0x18, 0x9b, 0x83, 0x59, 0x2e, 0xaf, 0xa0, 0x59, 0x93,
+ 0x47, 0x78, 0x92, 0xe9,
+};
+static const unsigned char kat2938_retbits[] = {
+ 0x80, 0xc7, 0xc3, 0x91, 0xfe, 0x17, 0x07, 0x80, 0xda, 0xbb, 0x3e, 0xff,
+ 0x1c, 0x58, 0x51, 0x0c, 0x4a, 0xd5, 0x1f, 0xe6, 0x53, 0xa5, 0x24, 0xc6,
+ 0x60, 0x05, 0x3d, 0x79, 0xb7, 0xc4, 0x36, 0xa3, 0x9f, 0x5f, 0xfb, 0x39,
+ 0x5b, 0xf1, 0x45, 0x52, 0x4b, 0x67, 0x77, 0xa8, 0x05, 0xea, 0x55, 0xd0,
+ 0x57, 0xd6, 0x78, 0x64, 0x4d, 0x3a, 0xb8, 0xc1, 0xbd, 0xef, 0xa8, 0x82,
+ 0xb0, 0x28, 0x92, 0x2f,
+};
+static const struct drbg_kat_pr_true kat2938_t = {
+ 12, kat2938_entropyin, kat2938_nonce, kat2938_persstr,
+ kat2938_entropyinpr1, kat2938_addinpr1, kat2938_entropyinpr2,
+ kat2938_addinpr2, kat2938_retbits
+};
+static const struct drbg_kat kat2938 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2938_t
+};
+
+static const unsigned char kat2939_entropyin[] = {
+ 0xe0, 0xb6, 0xfd, 0x09, 0xb0, 0xd6, 0x28, 0x25, 0xa4, 0x50, 0x8a, 0x64,
+ 0x47, 0x03, 0x58, 0xd7,
+};
+static const unsigned char kat2939_nonce[] = {
+ 0x82, 0xba, 0x18, 0xb2, 0x81, 0x61, 0xe8, 0xf2,
+};
+static const unsigned char kat2939_persstr[] = {
+ 0x89, 0x12, 0x7e, 0xce, 0xcf, 0xb4, 0x31, 0x75, 0xed, 0x8c, 0x34, 0x07,
+ 0xc2, 0x45, 0x65, 0xb1,
+};
+static const unsigned char kat2939_entropyinpr1[] = {
+ 0x9c, 0xbc, 0x7f, 0xbe, 0x7a, 0xa1, 0xe4, 0x06, 0xd1, 0x3a, 0x73, 0x65,
+ 0xfb, 0x6a, 0xcb, 0x2e,
+};
+static const unsigned char kat2939_addinpr1[] = {
+ 0xac, 0xe8, 0xe6, 0x4b, 0x3f, 0xcc, 0x68, 0x4b, 0x40, 0x47, 0x12, 0x19,
+ 0x3b, 0x12, 0xdd, 0xb2,
+};
+static const unsigned char kat2939_entropyinpr2[] = {
+ 0xce, 0xa2, 0xe7, 0x8c, 0x5a, 0xd1, 0x7c, 0x21, 0x5a, 0xf5, 0x2c, 0x88,
+ 0xdd, 0xf3, 0xe1, 0xc1,
+};
+static const unsigned char kat2939_addinpr2[] = {
+ 0x8c, 0x71, 0x17, 0x6b, 0xb6, 0x18, 0x52, 0x9d, 0xaf, 0xce, 0x7d, 0xeb,
+ 0xe7, 0x5d, 0x2c, 0x50,
+};
+static const unsigned char kat2939_retbits[] = {
+ 0x0a, 0xd6, 0x1a, 0xf4, 0x15, 0xf0, 0x85, 0xae, 0xb2, 0xa6, 0x02, 0xdf,
+ 0x71, 0xbb, 0x16, 0xd9, 0xa4, 0x71, 0x4f, 0xa0, 0xd2, 0xe8, 0x06, 0xd0,
+ 0xec, 0x79, 0xdf, 0x0b, 0xac, 0xc5, 0xb4, 0xd7, 0xad, 0xbc, 0x78, 0xeb,
+ 0x8c, 0xf1, 0x35, 0x2b, 0xa4, 0xa8, 0xc7, 0xef, 0x29, 0x3b, 0x32, 0x1d,
+ 0x61, 0x0b, 0x34, 0xf7, 0x00, 0xcf, 0x43, 0x42, 0x2e, 0x2f, 0x61, 0x84,
+ 0x81, 0x61, 0x3f, 0xfb,
+};
+static const struct drbg_kat_pr_true kat2939_t = {
+ 13, kat2939_entropyin, kat2939_nonce, kat2939_persstr,
+ kat2939_entropyinpr1, kat2939_addinpr1, kat2939_entropyinpr2,
+ kat2939_addinpr2, kat2939_retbits
+};
+static const struct drbg_kat kat2939 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2939_t
+};
+
+static const unsigned char kat2940_entropyin[] = {
+ 0x8d, 0x53, 0xf0, 0xc2, 0xd6, 0x75, 0x55, 0x8b, 0xa8, 0x78, 0xb4, 0x69,
+ 0xc3, 0xce, 0x18, 0x6f,
+};
+static const unsigned char kat2940_nonce[] = {
+ 0xf5, 0x88, 0xbf, 0xb8, 0x64, 0x95, 0xa5, 0xd1,
+};
+static const unsigned char kat2940_persstr[] = {
+ 0xb2, 0x93, 0xd5, 0x7c, 0xde, 0x9b, 0x4b, 0x29, 0x77, 0x40, 0xbd, 0x81,
+ 0xfa, 0xb7, 0xa3, 0x8f,
+};
+static const unsigned char kat2940_entropyinpr1[] = {
+ 0x5f, 0x5e, 0x92, 0x38, 0x11, 0xd6, 0xf6, 0x0d, 0x65, 0x06, 0x93, 0xcc,
+ 0xb3, 0x86, 0x21, 0x0d,
+};
+static const unsigned char kat2940_addinpr1[] = {
+ 0x85, 0xae, 0x16, 0xbb, 0x0e, 0x44, 0x7a, 0xd6, 0xd1, 0x40, 0x32, 0x37,
+ 0x6e, 0xf4, 0x2c, 0x74,
+};
+static const unsigned char kat2940_entropyinpr2[] = {
+ 0xd6, 0xac, 0x26, 0x45, 0x11, 0x58, 0x6e, 0x8e, 0xb4, 0x8f, 0x42, 0x87,
+ 0xa1, 0x2a, 0x36, 0x20,
+};
+static const unsigned char kat2940_addinpr2[] = {
+ 0x8d, 0xb4, 0x2a, 0x45, 0xd6, 0xfe, 0xaf, 0xc0, 0x79, 0xae, 0xf7, 0x01,
+ 0x54, 0x1c, 0x27, 0xdd,
+};
+static const unsigned char kat2940_retbits[] = {
+ 0x15, 0xb8, 0xe7, 0xe6, 0xa8, 0x0c, 0x0f, 0xbb, 0x23, 0xe7, 0x4f, 0x4b,
+ 0x70, 0xb8, 0xa1, 0xd6, 0xdc, 0x22, 0x47, 0x2b, 0x6c, 0x38, 0x94, 0x85,
+ 0xee, 0x25, 0x2e, 0xc2, 0xf2, 0x4d, 0x85, 0x6f, 0xd0, 0x79, 0xa7, 0x52,
+ 0xf4, 0x73, 0xc0, 0x50, 0x48, 0xc1, 0x2c, 0x74, 0x90, 0x80, 0x9c, 0x99,
+ 0x43, 0xe2, 0x1a, 0x74, 0x36, 0xe7, 0x56, 0xf4, 0x4c, 0x9d, 0x6d, 0x41,
+ 0xe1, 0xcc, 0x9c, 0xa9,
+};
+static const struct drbg_kat_pr_true kat2940_t = {
+ 14, kat2940_entropyin, kat2940_nonce, kat2940_persstr,
+ kat2940_entropyinpr1, kat2940_addinpr1, kat2940_entropyinpr2,
+ kat2940_addinpr2, kat2940_retbits
+};
+static const struct drbg_kat kat2940 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2940_t
+};
+
+static const unsigned char kat2941_entropyin[] = {
+ 0x20, 0x6e, 0x2b, 0x3b, 0xc5, 0x9f, 0xe3, 0xc1, 0x0b, 0xf9, 0xb8, 0x71,
+ 0xee, 0x21, 0xa2, 0x01,
+};
+static const unsigned char kat2941_nonce[] = {
+ 0x76, 0x7b, 0x5f, 0x7d, 0xea, 0xc6, 0x2a, 0x6a,
+};
+static const unsigned char kat2941_persstr[] = {0};
+static const unsigned char kat2941_entropyinpr1[] = {
+ 0x78, 0x9e, 0xe8, 0xab, 0x34, 0x3d, 0x47, 0x77, 0x8c, 0x85, 0x52, 0x6b,
+ 0x58, 0x8f, 0xc6, 0x9a,
+};
+static const unsigned char kat2941_addinpr1[] = {0};
+static const unsigned char kat2941_entropyinpr2[] = {
+ 0x7b, 0x24, 0x9b, 0x36, 0x29, 0x5f, 0x64, 0x6b, 0x91, 0x1a, 0x9f, 0xf4,
+ 0x1f, 0x5f, 0xb6, 0x79,
+};
+static const unsigned char kat2941_addinpr2[] = {0};
+static const unsigned char kat2941_retbits[] = {
+ 0xad, 0x2a, 0xd2, 0x81, 0x7b, 0xb0, 0xcd, 0xa5, 0xb6, 0x45, 0x72, 0x07,
+ 0x85, 0xc5, 0xb6, 0x74, 0x93, 0xca, 0xe2, 0x99, 0x19, 0xec, 0x7d, 0x84,
+ 0x54, 0x2d, 0x6b, 0x48, 0xe8, 0xad, 0xb8, 0x9c, 0x9d, 0x82, 0xd0, 0xe8,
+ 0x55, 0x94, 0xa3, 0x5b, 0xad, 0x9f, 0xda, 0x8b, 0x15, 0x78, 0x09, 0x57,
+ 0x4e, 0x74, 0xbf, 0x4b, 0x49, 0xf3, 0x86, 0x4c, 0x70, 0xd5, 0xd4, 0x9c,
+ 0x5a, 0x88, 0xcb, 0x17,
+};
+static const struct drbg_kat_pr_true kat2941_t = {
+ 0, kat2941_entropyin, kat2941_nonce, kat2941_persstr,
+ kat2941_entropyinpr1, kat2941_addinpr1, kat2941_entropyinpr2,
+ kat2941_addinpr2, kat2941_retbits
+};
+static const struct drbg_kat kat2941 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2941_t
+};
+
+static const unsigned char kat2942_entropyin[] = {
+ 0x62, 0xe7, 0x7e, 0x2f, 0x81, 0x75, 0x7d, 0x2a, 0xeb, 0xee, 0xd6, 0x13,
+ 0xa5, 0x73, 0xce, 0x6a,
+};
+static const unsigned char kat2942_nonce[] = {
+ 0xe8, 0x8c, 0x08, 0x44, 0x82, 0x35, 0x97, 0xef,
+};
+static const unsigned char kat2942_persstr[] = {0};
+static const unsigned char kat2942_entropyinpr1[] = {
+ 0x54, 0x56, 0xfc, 0x92, 0xb1, 0x5d, 0xbb, 0x26, 0x99, 0xe4, 0x37, 0xc0,
+ 0xe4, 0x90, 0x83, 0xe1,
+};
+static const unsigned char kat2942_addinpr1[] = {0};
+static const unsigned char kat2942_entropyinpr2[] = {
+ 0x9f, 0xa1, 0x0b, 0x21, 0x21, 0x40, 0xb4, 0xef, 0x18, 0xee, 0xe4, 0x42,
+ 0x2c, 0x6f, 0x50, 0xe7,
+};
+static const unsigned char kat2942_addinpr2[] = {0};
+static const unsigned char kat2942_retbits[] = {
+ 0x5c, 0x2e, 0xdf, 0xba, 0x23, 0x79, 0xdd, 0xaf, 0x2c, 0x14, 0x35, 0x27,
+ 0xe8, 0x52, 0x8e, 0xf5, 0x04, 0xee, 0x6e, 0x33, 0x91, 0x33, 0x75, 0x20,
+ 0xf8, 0x6d, 0xe2, 0xfb, 0x07, 0x7b, 0x71, 0xc7, 0xe0, 0x4a, 0x9b, 0x84,
+ 0xbe, 0x68, 0x49, 0x69, 0xed, 0x97, 0xac, 0xf3, 0xb5, 0x0a, 0x01, 0xa0,
+ 0x59, 0xd0, 0xa1, 0xe3, 0x4a, 0x58, 0x4b, 0xaa, 0x26, 0x0a, 0x07, 0x9a,
+ 0x6b, 0xd3, 0x31, 0xd2,
+};
+static const struct drbg_kat_pr_true kat2942_t = {
+ 1, kat2942_entropyin, kat2942_nonce, kat2942_persstr,
+ kat2942_entropyinpr1, kat2942_addinpr1, kat2942_entropyinpr2,
+ kat2942_addinpr2, kat2942_retbits
+};
+static const struct drbg_kat kat2942 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2942_t
+};
+
+static const unsigned char kat2943_entropyin[] = {
+ 0xc1, 0x9e, 0xc3, 0xec, 0x81, 0x86, 0xaf, 0x49, 0xe0, 0xa1, 0x1c, 0x24,
+ 0x5a, 0x95, 0x07, 0x4e,
+};
+static const unsigned char kat2943_nonce[] = {
+ 0xcb, 0x8d, 0xd8, 0x9f, 0x52, 0xe9, 0x69, 0x1a,
+};
+static const unsigned char kat2943_persstr[] = {0};
+static const unsigned char kat2943_entropyinpr1[] = {
+ 0xf3, 0xb4, 0xe3, 0x11, 0xf9, 0x0b, 0x1c, 0xe8, 0x17, 0x1c, 0x0f, 0xa6,
+ 0x86, 0x1e, 0xc7, 0xa6,
+};
+static const unsigned char kat2943_addinpr1[] = {0};
+static const unsigned char kat2943_entropyinpr2[] = {
+ 0x5a, 0x39, 0x23, 0x1c, 0x9e, 0x0a, 0xe1, 0x03, 0xa6, 0xe3, 0x89, 0xe9,
+ 0x15, 0x44, 0xae, 0x05,
+};
+static const unsigned char kat2943_addinpr2[] = {0};
+static const unsigned char kat2943_retbits[] = {
+ 0x9e, 0x66, 0x47, 0xab, 0x96, 0x2f, 0x11, 0xce, 0xec, 0x89, 0xe1, 0x88,
+ 0x30, 0xc9, 0xc2, 0x40, 0x48, 0x75, 0xbb, 0xc4, 0xdb, 0x50, 0x09, 0x34,
+ 0x61, 0xc9, 0x55, 0x69, 0x73, 0xce, 0xd0, 0x20, 0xd9, 0x57, 0x4a, 0x03,
+ 0x91, 0x46, 0x89, 0x6d, 0xf2, 0xaf, 0xc5, 0x36, 0x38, 0x90, 0x40, 0xe8,
+ 0x12, 0xab, 0x14, 0xa2, 0xdb, 0x2b, 0x3f, 0xf8, 0xfa, 0x28, 0xda, 0x75,
+ 0xc1, 0xd6, 0xcb, 0x04,
+};
+static const struct drbg_kat_pr_true kat2943_t = {
+ 2, kat2943_entropyin, kat2943_nonce, kat2943_persstr,
+ kat2943_entropyinpr1, kat2943_addinpr1, kat2943_entropyinpr2,
+ kat2943_addinpr2, kat2943_retbits
+};
+static const struct drbg_kat kat2943 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2943_t
+};
+
+static const unsigned char kat2944_entropyin[] = {
+ 0x04, 0x9b, 0x1d, 0x88, 0xcc, 0xe0, 0x6f, 0xe7, 0xe5, 0xd3, 0x15, 0x24,
+ 0xc2, 0xb2, 0x5a, 0xcd,
+};
+static const unsigned char kat2944_nonce[] = {
+ 0xe9, 0x6e, 0x1e, 0x12, 0xd2, 0xaa, 0xec, 0xe0,
+};
+static const unsigned char kat2944_persstr[] = {0};
+static const unsigned char kat2944_entropyinpr1[] = {
+ 0xc1, 0xc8, 0xc6, 0x9c, 0xd7, 0xc2, 0x8e, 0xbb, 0xdf, 0x81, 0x11, 0x0f,
+ 0xc3, 0xe5, 0x4a, 0x78,
+};
+static const unsigned char kat2944_addinpr1[] = {0};
+static const unsigned char kat2944_entropyinpr2[] = {
+ 0x9b, 0xed, 0xc5, 0x92, 0x4a, 0x7e, 0xec, 0x9b, 0x60, 0xc5, 0x60, 0x64,
+ 0xaa, 0x51, 0x27, 0x89,
+};
+static const unsigned char kat2944_addinpr2[] = {0};
+static const unsigned char kat2944_retbits[] = {
+ 0x95, 0x8f, 0x4e, 0xd1, 0x73, 0x26, 0xec, 0x30, 0xb8, 0x09, 0x15, 0x42,
+ 0xa2, 0x07, 0x18, 0x12, 0xd5, 0x51, 0x0a, 0x87, 0xe2, 0x86, 0x85, 0x80,
+ 0xb8, 0xbd, 0xc2, 0x22, 0xe1, 0xf6, 0xba, 0xce, 0xab, 0x77, 0x4b, 0xf9,
+ 0xa1, 0xd0, 0x15, 0x6b, 0x6a, 0x87, 0xb7, 0x95, 0xaf, 0x99, 0xb3, 0x43,
+ 0x04, 0x3f, 0x7e, 0xdf, 0xd9, 0xe5, 0x25, 0xe3, 0x60, 0x41, 0x73, 0x65,
+ 0xfe, 0x7b, 0x02, 0xa8,
+};
+static const struct drbg_kat_pr_true kat2944_t = {
+ 3, kat2944_entropyin, kat2944_nonce, kat2944_persstr,
+ kat2944_entropyinpr1, kat2944_addinpr1, kat2944_entropyinpr2,
+ kat2944_addinpr2, kat2944_retbits
+};
+static const struct drbg_kat kat2944 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2944_t
+};
+
+static const unsigned char kat2945_entropyin[] = {
+ 0x9f, 0x5f, 0x83, 0x2e, 0xf1, 0x5d, 0xfd, 0xc3, 0xb4, 0x13, 0x3c, 0x60,
+ 0x69, 0x6d, 0x46, 0x1f,
+};
+static const unsigned char kat2945_nonce[] = {
+ 0x5e, 0x23, 0x33, 0x35, 0x18, 0xa2, 0xbf, 0x08,
+};
+static const unsigned char kat2945_persstr[] = {0};
+static const unsigned char kat2945_entropyinpr1[] = {
+ 0xc2, 0x53, 0x37, 0xeb, 0xd9, 0xf7, 0x13, 0x28, 0xbe, 0x76, 0x87, 0x81,
+ 0xdc, 0xd1, 0x07, 0xb2,
+};
+static const unsigned char kat2945_addinpr1[] = {0};
+static const unsigned char kat2945_entropyinpr2[] = {
+ 0x98, 0x39, 0x5a, 0xd8, 0x97, 0x06, 0xdb, 0xf5, 0x07, 0xa7, 0x0f, 0xc2,
+ 0xe8, 0x34, 0xc3, 0xd8,
+};
+static const unsigned char kat2945_addinpr2[] = {0};
+static const unsigned char kat2945_retbits[] = {
+ 0xb9, 0x4a, 0x16, 0x22, 0x03, 0x9b, 0x23, 0xc3, 0xb5, 0x67, 0xce, 0x9d,
+ 0xd9, 0x8b, 0x20, 0xd4, 0xdd, 0x57, 0xb7, 0x35, 0x57, 0xa8, 0xac, 0xc5,
+ 0x29, 0x2a, 0x49, 0x8c, 0xb7, 0x1a, 0x46, 0xcb, 0x62, 0xe2, 0x6d, 0x7e,
+ 0xe6, 0x09, 0xf5, 0xd6, 0x68, 0x2a, 0xbf, 0x62, 0xdd, 0x54, 0x7f, 0x80,
+ 0xc2, 0x62, 0x6a, 0x8c, 0x79, 0xdf, 0x65, 0x9b, 0x18, 0x6a, 0xf0, 0x36,
+ 0x0b, 0xcb, 0xd8, 0xe6,
+};
+static const struct drbg_kat_pr_true kat2945_t = {
+ 4, kat2945_entropyin, kat2945_nonce, kat2945_persstr,
+ kat2945_entropyinpr1, kat2945_addinpr1, kat2945_entropyinpr2,
+ kat2945_addinpr2, kat2945_retbits
+};
+static const struct drbg_kat kat2945 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2945_t
+};
+
+static const unsigned char kat2946_entropyin[] = {
+ 0x1f, 0xb1, 0x24, 0x90, 0x1b, 0xee, 0xd5, 0xae, 0xd2, 0x22, 0x74, 0x09,
+ 0x40, 0x20, 0x6e, 0xa2,
+};
+static const unsigned char kat2946_nonce[] = {
+ 0x87, 0x76, 0xc2, 0xc0, 0x7e, 0xa6, 0x0b, 0xa1,
+};
+static const unsigned char kat2946_persstr[] = {0};
+static const unsigned char kat2946_entropyinpr1[] = {
+ 0xc1, 0x9f, 0x86, 0xb3, 0x4f, 0x11, 0x47, 0xd0, 0xf5, 0x70, 0x36, 0x36,
+ 0x64, 0x54, 0xeb, 0x78,
+};
+static const unsigned char kat2946_addinpr1[] = {0};
+static const unsigned char kat2946_entropyinpr2[] = {
+ 0x43, 0x1a, 0x44, 0xa9, 0xba, 0x8c, 0x98, 0x21, 0xf7, 0xd2, 0x1f, 0x36,
+ 0x5e, 0xad, 0x8b, 0x3e,
+};
+static const unsigned char kat2946_addinpr2[] = {0};
+static const unsigned char kat2946_retbits[] = {
+ 0x3f, 0x3b, 0xe1, 0xb0, 0xbf, 0xa2, 0x78, 0x7e, 0x62, 0x77, 0x9c, 0x3e,
+ 0x73, 0xe4, 0xd3, 0x49, 0xed, 0xdf, 0x1f, 0x2f, 0x8c, 0x01, 0xf7, 0x9f,
+ 0x0c, 0xdc, 0xe6, 0x1e, 0xa7, 0x85, 0xe2, 0x9a, 0xec, 0x57, 0x96, 0xfa,
+ 0x76, 0xb7, 0x9a, 0x21, 0xa2, 0x50, 0x88, 0xc2, 0x9e, 0x37, 0x6f, 0x6f,
+ 0x3a, 0xbe, 0xb8, 0xfd, 0xcf, 0x06, 0x69, 0x03, 0xe6, 0x2e, 0xf7, 0x87,
+ 0x98, 0x16, 0x92, 0x66,
+};
+static const struct drbg_kat_pr_true kat2946_t = {
+ 5, kat2946_entropyin, kat2946_nonce, kat2946_persstr,
+ kat2946_entropyinpr1, kat2946_addinpr1, kat2946_entropyinpr2,
+ kat2946_addinpr2, kat2946_retbits
+};
+static const struct drbg_kat kat2946 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2946_t
+};
+
+static const unsigned char kat2947_entropyin[] = {
+ 0xaf, 0x4f, 0x46, 0xb2, 0x9d, 0xc8, 0xae, 0xbf, 0x62, 0xc1, 0x6c, 0xec,
+ 0x52, 0x55, 0xaa, 0xe4,
+};
+static const unsigned char kat2947_nonce[] = {
+ 0x7d, 0x46, 0x41, 0x4a, 0xc4, 0xa5, 0x6d, 0x06,
+};
+static const unsigned char kat2947_persstr[] = {0};
+static const unsigned char kat2947_entropyinpr1[] = {
+ 0xdb, 0x09, 0xfb, 0x07, 0x9e, 0x2a, 0x1c, 0x56, 0x80, 0x59, 0x0b, 0xed,
+ 0x98, 0xbb, 0x20, 0xc9,
+};
+static const unsigned char kat2947_addinpr1[] = {0};
+static const unsigned char kat2947_entropyinpr2[] = {
+ 0x60, 0x3c, 0x8e, 0x5b, 0x5f, 0x93, 0x1f, 0x4d, 0x46, 0xb6, 0x55, 0x6d,
+ 0xca, 0xfc, 0xaf, 0x95,
+};
+static const unsigned char kat2947_addinpr2[] = {0};
+static const unsigned char kat2947_retbits[] = {
+ 0xc6, 0x83, 0x73, 0xf5, 0x88, 0xa2, 0xcf, 0xa6, 0xec, 0x48, 0x61, 0x6f,
+ 0x3a, 0x7c, 0xc6, 0x13, 0x0f, 0xb7, 0x66, 0xad, 0xa3, 0xf9, 0xbe, 0xf8,
+ 0x6b, 0x8c, 0xeb, 0xd2, 0x3c, 0xf6, 0x10, 0x1c, 0xad, 0x34, 0x04, 0x49,
+ 0x1c, 0x6c, 0x87, 0x41, 0xd8, 0x33, 0x31, 0x50, 0xcc, 0x5e, 0x81, 0x31,
+ 0x92, 0x86, 0x4b, 0xfa, 0x51, 0xdb, 0x5f, 0x17, 0xc4, 0x6c, 0xac, 0xb7,
+ 0x60, 0x64, 0x1a, 0x7e,
+};
+static const struct drbg_kat_pr_true kat2947_t = {
+ 6, kat2947_entropyin, kat2947_nonce, kat2947_persstr,
+ kat2947_entropyinpr1, kat2947_addinpr1, kat2947_entropyinpr2,
+ kat2947_addinpr2, kat2947_retbits
+};
+static const struct drbg_kat kat2947 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2947_t
+};
+
+static const unsigned char kat2948_entropyin[] = {
+ 0x5e, 0x75, 0x31, 0xa2, 0x70, 0xb9, 0xad, 0xf1, 0x5b, 0x3d, 0x47, 0x20,
+ 0xa9, 0x2c, 0xec, 0x2a,
+};
+static const unsigned char kat2948_nonce[] = {
+ 0x97, 0xc0, 0x50, 0x95, 0xac, 0xa0, 0x03, 0xa9,
+};
+static const unsigned char kat2948_persstr[] = {0};
+static const unsigned char kat2948_entropyinpr1[] = {
+ 0x79, 0xa0, 0x7c, 0x70, 0x46, 0x6c, 0x2a, 0xd7, 0x85, 0x6d, 0xb1, 0x26,
+ 0x8f, 0x29, 0x47, 0xef,
+};
+static const unsigned char kat2948_addinpr1[] = {0};
+static const unsigned char kat2948_entropyinpr2[] = {
+ 0x05, 0x89, 0x85, 0xcf, 0x11, 0x59, 0x85, 0x49, 0x51, 0x31, 0xcc, 0x4b,
+ 0x50, 0x7f, 0x1d, 0x28,
+};
+static const unsigned char kat2948_addinpr2[] = {0};
+static const unsigned char kat2948_retbits[] = {
+ 0x96, 0x05, 0x31, 0x22, 0x6c, 0xdd, 0xd1, 0xd2, 0x98, 0xdd, 0xb4, 0x10,
+ 0x60, 0x80, 0xcb, 0xd1, 0x1c, 0x8a, 0xba, 0xf4, 0x99, 0xc4, 0x4a, 0x04,
+ 0xce, 0x70, 0x07, 0xb4, 0x7b, 0x39, 0x34, 0x98, 0xc9, 0x70, 0x3d, 0xc5,
+ 0x72, 0x89, 0xf0, 0xc7, 0x49, 0x8d, 0x7e, 0x4d, 0xfb, 0xa0, 0xdd, 0xec,
+ 0x9d, 0x87, 0x9d, 0x3f, 0x80, 0x5a, 0xa6, 0xdb, 0xcf, 0xb3, 0x85, 0x27,
+ 0x92, 0x36, 0x18, 0xa3,
+};
+static const struct drbg_kat_pr_true kat2948_t = {
+ 7, kat2948_entropyin, kat2948_nonce, kat2948_persstr,
+ kat2948_entropyinpr1, kat2948_addinpr1, kat2948_entropyinpr2,
+ kat2948_addinpr2, kat2948_retbits
+};
+static const struct drbg_kat kat2948 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2948_t
+};
+
+static const unsigned char kat2949_entropyin[] = {
+ 0x20, 0x2f, 0x25, 0x7c, 0x23, 0x7a, 0x5c, 0xe6, 0xe4, 0x4b, 0x06, 0xc7,
+ 0x07, 0x0f, 0x5c, 0x90,
+};
+static const unsigned char kat2949_nonce[] = {
+ 0x40, 0x1a, 0x16, 0x7c, 0x65, 0x77, 0x2e, 0x9e,
+};
+static const unsigned char kat2949_persstr[] = {0};
+static const unsigned char kat2949_entropyinpr1[] = {
+ 0xf7, 0xf1, 0x0b, 0x65, 0x9e, 0x27, 0xfa, 0x7f, 0xc4, 0x7d, 0x9b, 0x48,
+ 0xa9, 0x0f, 0x26, 0x88,
+};
+static const unsigned char kat2949_addinpr1[] = {0};
+static const unsigned char kat2949_entropyinpr2[] = {
+ 0x83, 0xe7, 0x34, 0x62, 0xb0, 0x95, 0x86, 0x6f, 0x31, 0x7b, 0xcb, 0xa2,
+ 0x46, 0x52, 0x29, 0xf3,
+};
+static const unsigned char kat2949_addinpr2[] = {0};
+static const unsigned char kat2949_retbits[] = {
+ 0xb0, 0xe4, 0x05, 0xc4, 0x99, 0x09, 0xe5, 0xdc, 0x0e, 0x09, 0x61, 0xa5,
+ 0xc6, 0xe6, 0xcf, 0x66, 0xff, 0x5a, 0x5c, 0x68, 0x68, 0x13, 0xdf, 0x2a,
+ 0xe3, 0xd0, 0xdb, 0x72, 0xfc, 0x0f, 0xa3, 0x59, 0x98, 0x39, 0x1e, 0x86,
+ 0x5c, 0x61, 0x43, 0x54, 0xb3, 0xf1, 0xdd, 0xca, 0x10, 0xaf, 0xc1, 0x59,
+ 0x91, 0x50, 0x0b, 0x2b, 0xfc, 0x9d, 0x76, 0x99, 0x0a, 0x28, 0x08, 0x0d,
+ 0x9e, 0xe6, 0x3d, 0x41,
+};
+static const struct drbg_kat_pr_true kat2949_t = {
+ 8, kat2949_entropyin, kat2949_nonce, kat2949_persstr,
+ kat2949_entropyinpr1, kat2949_addinpr1, kat2949_entropyinpr2,
+ kat2949_addinpr2, kat2949_retbits
+};
+static const struct drbg_kat kat2949 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2949_t
+};
+
+static const unsigned char kat2950_entropyin[] = {
+ 0x1f, 0x72, 0xb7, 0x55, 0x9f, 0x91, 0x70, 0x80, 0x7f, 0x1e, 0xe7, 0xdb,
+ 0xf9, 0xff, 0x75, 0x18,
+};
+static const unsigned char kat2950_nonce[] = {
+ 0xa8, 0x6e, 0x96, 0x56, 0xc9, 0xec, 0xfa, 0x98,
+};
+static const unsigned char kat2950_persstr[] = {0};
+static const unsigned char kat2950_entropyinpr1[] = {
+ 0x40, 0x1e, 0xfd, 0xbf, 0xc0, 0x35, 0x87, 0xd5, 0x9f, 0x16, 0x70, 0xc6,
+ 0x27, 0xc0, 0x9c, 0xdf,
+};
+static const unsigned char kat2950_addinpr1[] = {0};
+static const unsigned char kat2950_entropyinpr2[] = {
+ 0x84, 0x9d, 0x12, 0x53, 0xad, 0xdb, 0x8d, 0x0b, 0x76, 0x9a, 0x96, 0x1f,
+ 0x99, 0x59, 0xf0, 0xaa,
+};
+static const unsigned char kat2950_addinpr2[] = {0};
+static const unsigned char kat2950_retbits[] = {
+ 0xd8, 0xc4, 0x7e, 0xac, 0xb9, 0x5b, 0xe3, 0x9d, 0x7f, 0xc7, 0x32, 0xc6,
+ 0x0e, 0xaa, 0xb0, 0x15, 0x13, 0xb6, 0x62, 0xf6, 0x4c, 0x7b, 0xd4, 0xd7,
+ 0xcd, 0x9a, 0x0d, 0xf2, 0x27, 0xad, 0xc9, 0xab, 0xe7, 0xe7, 0xda, 0x4c,
+ 0xc0, 0xed, 0x9a, 0xc9, 0xfc, 0x9b, 0x81, 0x49, 0xca, 0x85, 0x9b, 0x3a,
+ 0x97, 0x04, 0xc7, 0xcd, 0x74, 0x8e, 0x05, 0x58, 0x5d, 0x44, 0xb5, 0x4f,
+ 0x10, 0x64, 0xc5, 0x68,
+};
+static const struct drbg_kat_pr_true kat2950_t = {
+ 9, kat2950_entropyin, kat2950_nonce, kat2950_persstr,
+ kat2950_entropyinpr1, kat2950_addinpr1, kat2950_entropyinpr2,
+ kat2950_addinpr2, kat2950_retbits
+};
+static const struct drbg_kat kat2950 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2950_t
+};
+
+static const unsigned char kat2951_entropyin[] = {
+ 0xbb, 0x0d, 0xc9, 0xc0, 0x8c, 0x25, 0x22, 0xf0, 0x4d, 0x5c, 0x2c, 0xf1,
+ 0xb9, 0x6a, 0x6d, 0x19,
+};
+static const unsigned char kat2951_nonce[] = {
+ 0xa9, 0xee, 0xcc, 0x8d, 0x65, 0x69, 0x6e, 0x6a,
+};
+static const unsigned char kat2951_persstr[] = {0};
+static const unsigned char kat2951_entropyinpr1[] = {
+ 0x78, 0x54, 0xf1, 0xb2, 0x69, 0xc5, 0x10, 0xe7, 0x74, 0x4b, 0xd8, 0x55,
+ 0x5f, 0x8c, 0x5b, 0x6d,
+};
+static const unsigned char kat2951_addinpr1[] = {0};
+static const unsigned char kat2951_entropyinpr2[] = {
+ 0x76, 0xe7, 0x71, 0x68, 0xb5, 0x82, 0x2c, 0x08, 0xd6, 0xc5, 0xa6, 0x73,
+ 0xac, 0x15, 0xe6, 0x22,
+};
+static const unsigned char kat2951_addinpr2[] = {0};
+static const unsigned char kat2951_retbits[] = {
+ 0x15, 0x00, 0x46, 0xda, 0xeb, 0xff, 0x8b, 0xf6, 0xff, 0x64, 0x97, 0xa5,
+ 0xde, 0xcf, 0x73, 0xd3, 0xe6, 0x7e, 0x80, 0xc0, 0x61, 0xe3, 0x9d, 0x3b,
+ 0xc1, 0x70, 0x5d, 0x26, 0xf2, 0x4b, 0xf3, 0xd0, 0x8f, 0x91, 0x2f, 0xcf,
+ 0x24, 0xfa, 0x40, 0x7f, 0xfe, 0xac, 0x4b, 0x6e, 0xfc, 0xb1, 0x11, 0xb1,
+ 0xc3, 0xbc, 0xe3, 0x8c, 0x49, 0xec, 0x8e, 0x59, 0x46, 0xc8, 0x14, 0xf3,
+ 0x59, 0x83, 0x94, 0x52,
+};
+static const struct drbg_kat_pr_true kat2951_t = {
+ 10, kat2951_entropyin, kat2951_nonce, kat2951_persstr,
+ kat2951_entropyinpr1, kat2951_addinpr1, kat2951_entropyinpr2,
+ kat2951_addinpr2, kat2951_retbits
+};
+static const struct drbg_kat kat2951 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2951_t
+};
+
+static const unsigned char kat2952_entropyin[] = {
+ 0x49, 0xe8, 0xd0, 0x0b, 0x3f, 0xbe, 0x7f, 0x0c, 0x17, 0x09, 0x07, 0x2a,
+ 0x06, 0x08, 0x8d, 0xc8,
+};
+static const unsigned char kat2952_nonce[] = {
+ 0x73, 0xe5, 0x4b, 0xd9, 0x46, 0x69, 0xc0, 0x8a,
+};
+static const unsigned char kat2952_persstr[] = {0};
+static const unsigned char kat2952_entropyinpr1[] = {
+ 0x52, 0xda, 0x14, 0x0a, 0x25, 0x8d, 0x24, 0x3e, 0xab, 0x40, 0x9c, 0xeb,
+ 0xec, 0xd5, 0x73, 0xfc,
+};
+static const unsigned char kat2952_addinpr1[] = {0};
+static const unsigned char kat2952_entropyinpr2[] = {
+ 0x22, 0xfc, 0xb6, 0xa7, 0x78, 0xa9, 0xeb, 0xec, 0x02, 0x30, 0xfc, 0x34,
+ 0x8d, 0x31, 0x7e, 0x74,
+};
+static const unsigned char kat2952_addinpr2[] = {0};
+static const unsigned char kat2952_retbits[] = {
+ 0xbc, 0xd4, 0x51, 0xc1, 0xe1, 0x17, 0xbc, 0x6a, 0xee, 0x43, 0x7b, 0x61,
+ 0xd7, 0x08, 0xa8, 0xc8, 0x43, 0x72, 0xb0, 0x3f, 0x26, 0xc0, 0xc8, 0x10,
+ 0x81, 0x03, 0x14, 0x22, 0xd2, 0x1b, 0x08, 0x01, 0xab, 0xc5, 0xf1, 0xe9,
+ 0xec, 0x37, 0xd0, 0xac, 0x5b, 0xb2, 0x24, 0x5e, 0xa0, 0x11, 0xee, 0xeb,
+ 0x10, 0x5a, 0x93, 0xaa, 0x7d, 0x9b, 0x57, 0xeb, 0x1b, 0x62, 0xdd, 0x2c,
+ 0x1d, 0xf6, 0x95, 0xee,
+};
+static const struct drbg_kat_pr_true kat2952_t = {
+ 11, kat2952_entropyin, kat2952_nonce, kat2952_persstr,
+ kat2952_entropyinpr1, kat2952_addinpr1, kat2952_entropyinpr2,
+ kat2952_addinpr2, kat2952_retbits
+};
+static const struct drbg_kat kat2952 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2952_t
+};
+
+static const unsigned char kat2953_entropyin[] = {
+ 0x82, 0x12, 0x0d, 0xfa, 0x28, 0xa8, 0x01, 0x96, 0x99, 0x59, 0x0a, 0x00,
+ 0x3c, 0x9f, 0xb2, 0xed,
+};
+static const unsigned char kat2953_nonce[] = {
+ 0xf9, 0xac, 0x67, 0x1b, 0x62, 0xcb, 0x5f, 0xd0,
+};
+static const unsigned char kat2953_persstr[] = {0};
+static const unsigned char kat2953_entropyinpr1[] = {
+ 0xbf, 0x9a, 0x6e, 0xe0, 0x41, 0xdb, 0xde, 0xe1, 0x99, 0xc1, 0x83, 0x7d,
+ 0xe0, 0x46, 0xbb, 0x14,
+};
+static const unsigned char kat2953_addinpr1[] = {0};
+static const unsigned char kat2953_entropyinpr2[] = {
+ 0x4f, 0x77, 0xfd, 0x93, 0x4f, 0xaa, 0x04, 0x0d, 0x17, 0xa5, 0xa0, 0x2c,
+ 0x18, 0x11, 0xb5, 0xef,
+};
+static const unsigned char kat2953_addinpr2[] = {0};
+static const unsigned char kat2953_retbits[] = {
+ 0x7b, 0x87, 0x44, 0x2f, 0xd2, 0x11, 0x1a, 0x5f, 0x79, 0x36, 0xaf, 0xc3,
+ 0xbe, 0xce, 0xe1, 0x35, 0x7a, 0xc6, 0x6f, 0xee, 0x94, 0x3a, 0xd7, 0x72,
+ 0x66, 0x2a, 0x0c, 0x19, 0x99, 0x46, 0xc6, 0x86, 0x29, 0xd3, 0xc8, 0x62,
+ 0xb9, 0x62, 0xa7, 0x29, 0xa0, 0xfc, 0x15, 0xeb, 0x2e, 0x6b, 0xe9, 0x0e,
+ 0x96, 0xf8, 0xc6, 0x77, 0xa1, 0x8b, 0x7b, 0x49, 0xad, 0x79, 0x43, 0xcc,
+ 0xea, 0xd2, 0xd4, 0xa3,
+};
+static const struct drbg_kat_pr_true kat2953_t = {
+ 12, kat2953_entropyin, kat2953_nonce, kat2953_persstr,
+ kat2953_entropyinpr1, kat2953_addinpr1, kat2953_entropyinpr2,
+ kat2953_addinpr2, kat2953_retbits
+};
+static const struct drbg_kat kat2953 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2953_t
+};
+
+static const unsigned char kat2954_entropyin[] = {
+ 0x0e, 0xb6, 0x41, 0xc2, 0xdd, 0x16, 0x10, 0x45, 0xa6, 0xdf, 0xdc, 0xd8,
+ 0xa1, 0xd9, 0x2a, 0x90,
+};
+static const unsigned char kat2954_nonce[] = {
+ 0xd2, 0x5d, 0xe7, 0xdf, 0xdd, 0x6c, 0x33, 0xca,
+};
+static const unsigned char kat2954_persstr[] = {0};
+static const unsigned char kat2954_entropyinpr1[] = {
+ 0x79, 0x4f, 0x61, 0x0e, 0xce, 0xbc, 0x61, 0x84, 0x27, 0xd7, 0xe2, 0x54,
+ 0x69, 0xb9, 0x04, 0x4c,
+};
+static const unsigned char kat2954_addinpr1[] = {0};
+static const unsigned char kat2954_entropyinpr2[] = {
+ 0x56, 0x4d, 0xef, 0x6e, 0x8f, 0x23, 0xc0, 0x2c, 0x90, 0xa7, 0xf4, 0xaa,
+ 0x06, 0x26, 0x5b, 0x67,
+};
+static const unsigned char kat2954_addinpr2[] = {0};
+static const unsigned char kat2954_retbits[] = {
+ 0xce, 0xa3, 0x9c, 0x80, 0x77, 0x33, 0xb8, 0x83, 0xc7, 0x93, 0xc8, 0xc2,
+ 0xed, 0xc9, 0xf7, 0xd5, 0x92, 0xf8, 0x18, 0xad, 0xb6, 0xdb, 0x19, 0x86,
+ 0x3a, 0x49, 0xde, 0x03, 0x0a, 0xb8, 0xd2, 0xff, 0x79, 0xfb, 0x67, 0xd6,
+ 0x32, 0x95, 0x0d, 0x53, 0x7c, 0xae, 0x0b, 0x1d, 0x23, 0x4c, 0x2a, 0x3f,
+ 0x89, 0xb0, 0xc4, 0xcc, 0xfa, 0x68, 0xae, 0x46, 0xcc, 0x4c, 0xad, 0x88,
+ 0x20, 0x5e, 0x80, 0x3d,
+};
+static const struct drbg_kat_pr_true kat2954_t = {
+ 13, kat2954_entropyin, kat2954_nonce, kat2954_persstr,
+ kat2954_entropyinpr1, kat2954_addinpr1, kat2954_entropyinpr2,
+ kat2954_addinpr2, kat2954_retbits
+};
+static const struct drbg_kat kat2954 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2954_t
+};
+
+static const unsigned char kat2955_entropyin[] = {
+ 0x6d, 0x63, 0x0b, 0x43, 0x6d, 0x5b, 0x1b, 0xe2, 0x8c, 0x3f, 0xeb, 0x0c,
+ 0x7c, 0xc2, 0x84, 0x5a,
+};
+static const unsigned char kat2955_nonce[] = {
+ 0xe7, 0x50, 0xee, 0xee, 0xcf, 0xca, 0x45, 0x9f,
+};
+static const unsigned char kat2955_persstr[] = {0};
+static const unsigned char kat2955_entropyinpr1[] = {
+ 0x59, 0x76, 0xb8, 0xa4, 0x93, 0x4d, 0x01, 0x22, 0x23, 0x2b, 0x58, 0xf0,
+ 0xed, 0x1c, 0x72, 0xcc,
+};
+static const unsigned char kat2955_addinpr1[] = {0};
+static const unsigned char kat2955_entropyinpr2[] = {
+ 0xc0, 0xcd, 0x1c, 0x9c, 0xd8, 0xc9, 0x62, 0xf1, 0xba, 0xcb, 0xbb, 0xd4,
+ 0x08, 0x31, 0x69, 0x0c,
+};
+static const unsigned char kat2955_addinpr2[] = {0};
+static const unsigned char kat2955_retbits[] = {
+ 0xf3, 0xd6, 0x85, 0x98, 0x9e, 0xe9, 0x32, 0xc1, 0x10, 0x66, 0x7f, 0x61,
+ 0x30, 0xd3, 0xad, 0xf1, 0xdf, 0x86, 0xdc, 0x72, 0xb1, 0xf1, 0x52, 0xfd,
+ 0xce, 0xa1, 0xb1, 0x58, 0x0d, 0xca, 0xff, 0x8e, 0x28, 0xe6, 0xea, 0xb6,
+ 0x07, 0xc4, 0x3d, 0xba, 0x73, 0xe0, 0x36, 0x72, 0xa6, 0x41, 0x1c, 0x84,
+ 0x73, 0x00, 0x8a, 0xe2, 0x3a, 0xc3, 0x38, 0x0a, 0x3c, 0xa9, 0x5f, 0xb2,
+ 0x70, 0xd1, 0x39, 0x15,
+};
+static const struct drbg_kat_pr_true kat2955_t = {
+ 14, kat2955_entropyin, kat2955_nonce, kat2955_persstr,
+ kat2955_entropyinpr1, kat2955_addinpr1, kat2955_entropyinpr2,
+ kat2955_addinpr2, kat2955_retbits
+};
+static const struct drbg_kat kat2955 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat2955_t
+};
+
+static const unsigned char kat2956_entropyin[] = {
+ 0x93, 0xc8, 0x99, 0xde, 0x3b, 0x7d, 0x72, 0xa6, 0x83, 0x89, 0xe4, 0x4b,
+ 0xf8, 0x24, 0x96, 0x98,
+};
+static const unsigned char kat2956_nonce[] = {
+ 0x96, 0x0e, 0x9a, 0x34, 0x32, 0x5a, 0x5b, 0x49,
+};
+static const unsigned char kat2956_persstr[] = {0};
+static const unsigned char kat2956_entropyinpr1[] = {
+ 0xb6, 0x8b, 0xef, 0x79, 0xaa, 0xad, 0x62, 0xe8, 0x55, 0xee, 0x14, 0x51,
+ 0x79, 0x95, 0x1d, 0x87,
+};
+static const unsigned char kat2956_addinpr1[] = {
+ 0x94, 0x2e, 0x65, 0x65, 0x95, 0xb0, 0x7e, 0x98, 0xb5, 0x9f, 0x39, 0xf9,
+ 0xd3, 0x65, 0x8c, 0xf5,
+};
+static const unsigned char kat2956_entropyinpr2[] = {
+ 0x14, 0x1d, 0xad, 0x5a, 0x5d, 0x5b, 0x71, 0x74, 0xf5, 0xfa, 0x97, 0x43,
+ 0x33, 0xdb, 0xb6, 0x4d,
+};
+static const unsigned char kat2956_addinpr2[] = {
+ 0x03, 0x38, 0xa2, 0xb0, 0x70, 0x92, 0x7c, 0xa2, 0xeb, 0x55, 0x1d, 0xc3,
+ 0xdb, 0x4f, 0x1d, 0x62,
+};
+static const unsigned char kat2956_retbits[] = {
+ 0x00, 0x33, 0xae, 0x03, 0x80, 0x78, 0x48, 0x7f, 0x7d, 0xea, 0x1e, 0xf6,
+ 0x4b, 0xec, 0x58, 0xae, 0x75, 0x1f, 0xb8, 0x86, 0x4f, 0x8b, 0xff, 0x4e,
+ 0x8c, 0x1b, 0x41, 0x2b, 0xa2, 0x47, 0x7d, 0x2f, 0xf1, 0xba, 0x88, 0x7a,
+ 0x1a, 0xe6, 0x60, 0xbd, 0x48, 0xce, 0x7b, 0x76, 0x28, 0xa8, 0xd1, 0x76,
+ 0x9a, 0x46, 0xd3, 0x75, 0x38, 0x26, 0x66, 0x2c, 0xb2, 0x6a, 0x75, 0xdf,
+ 0x87, 0xf0, 0xd3, 0xf0,
+};
+static const struct drbg_kat_pr_true kat2956_t = {
+ 0, kat2956_entropyin, kat2956_nonce, kat2956_persstr,
+ kat2956_entropyinpr1, kat2956_addinpr1, kat2956_entropyinpr2,
+ kat2956_addinpr2, kat2956_retbits
+};
+static const struct drbg_kat kat2956 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2956_t
+};
+
+static const unsigned char kat2957_entropyin[] = {
+ 0x94, 0xba, 0x8b, 0x14, 0xff, 0x07, 0x43, 0x55, 0x36, 0x25, 0x1f, 0xf5,
+ 0x39, 0xbf, 0x5c, 0x59,
+};
+static const unsigned char kat2957_nonce[] = {
+ 0xc8, 0x44, 0x50, 0x71, 0x0a, 0xf4, 0xac, 0x40,
+};
+static const unsigned char kat2957_persstr[] = {0};
+static const unsigned char kat2957_entropyinpr1[] = {
+ 0x53, 0xc3, 0xe8, 0xba, 0x0a, 0x56, 0x0c, 0x32, 0x89, 0xf6, 0x61, 0x9b,
+ 0x1b, 0x3b, 0x3a, 0x5d,
+};
+static const unsigned char kat2957_addinpr1[] = {
+ 0x28, 0x7e, 0x98, 0x8a, 0x1c, 0x58, 0xea, 0xcb, 0x6a, 0x18, 0xf8, 0xe3,
+ 0xb6, 0xe4, 0x6f, 0xd1,
+};
+static const unsigned char kat2957_entropyinpr2[] = {
+ 0x85, 0x4e, 0xaa, 0x96, 0xfb, 0x6d, 0x1e, 0x0a, 0x9a, 0xf5, 0xd5, 0xed,
+ 0x61, 0x77, 0xe4, 0x54,
+};
+static const unsigned char kat2957_addinpr2[] = {
+ 0x12, 0x6a, 0x8c, 0xcf, 0x5e, 0x6c, 0xbc, 0xc6, 0x4f, 0x12, 0x3e, 0x98,
+ 0x66, 0xc4, 0x36, 0xec,
+};
+static const unsigned char kat2957_retbits[] = {
+ 0x44, 0xa8, 0xb0, 0x7b, 0x97, 0x40, 0x08, 0x69, 0x37, 0xbd, 0x56, 0x78,
+ 0xce, 0xa5, 0x9c, 0x89, 0x93, 0xf3, 0x26, 0xf7, 0x10, 0xd7, 0xe1, 0x3d,
+ 0x18, 0x30, 0x95, 0x8b, 0xc3, 0x4d, 0x74, 0xae, 0xfd, 0x78, 0x57, 0x8d,
+ 0x4c, 0x15, 0x91, 0x19, 0x27, 0x46, 0xc4, 0x16, 0x49, 0xf5, 0x97, 0x34,
+ 0x9b, 0xb4, 0xf5, 0x56, 0xe5, 0x53, 0x7f, 0x10, 0x84, 0x57, 0xfc, 0x3d,
+ 0xb6, 0xbd, 0x4f, 0x25,
+};
+static const struct drbg_kat_pr_true kat2957_t = {
+ 1, kat2957_entropyin, kat2957_nonce, kat2957_persstr,
+ kat2957_entropyinpr1, kat2957_addinpr1, kat2957_entropyinpr2,
+ kat2957_addinpr2, kat2957_retbits
+};
+static const struct drbg_kat kat2957 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2957_t
+};
+
+static const unsigned char kat2958_entropyin[] = {
+ 0x11, 0x77, 0xf9, 0xe8, 0xba, 0x73, 0xfa, 0x11, 0x27, 0x3b, 0xb1, 0xf2,
+ 0x60, 0x4d, 0xb8, 0xb6,
+};
+static const unsigned char kat2958_nonce[] = {
+ 0x96, 0x25, 0xf1, 0x89, 0xb3, 0x44, 0x51, 0xf0,
+};
+static const unsigned char kat2958_persstr[] = {0};
+static const unsigned char kat2958_entropyinpr1[] = {
+ 0x48, 0x97, 0xd1, 0x91, 0xc4, 0xe1, 0x05, 0xca, 0x95, 0xcf, 0xad, 0x7d,
+ 0xfb, 0xa5, 0xed, 0x84,
+};
+static const unsigned char kat2958_addinpr1[] = {
+ 0x5b, 0x59, 0x3a, 0x44, 0x07, 0x5c, 0x5a, 0x6c, 0x80, 0xd4, 0x5d, 0xae,
+ 0xa3, 0x76, 0x03, 0x11,
+};
+static const unsigned char kat2958_entropyinpr2[] = {
+ 0xce, 0x38, 0xa5, 0x6b, 0xc7, 0x12, 0xc1, 0xc1, 0x41, 0x90, 0x17, 0x95,
+ 0x2e, 0x9f, 0x30, 0xd0,
+};
+static const unsigned char kat2958_addinpr2[] = {
+ 0x0d, 0xb6, 0x7b, 0x8d, 0x74, 0x66, 0x2d, 0x11, 0x8e, 0xde, 0xe8, 0x56,
+ 0xe2, 0xc2, 0x32, 0x21,
+};
+static const unsigned char kat2958_retbits[] = {
+ 0x44, 0x5f, 0xe4, 0x73, 0x65, 0x1f, 0xab, 0x5b, 0xd9, 0xd1, 0x5e, 0x82,
+ 0xea, 0x81, 0xac, 0x54, 0xda, 0x37, 0xab, 0x49, 0x1c, 0xb4, 0xa9, 0x6b,
+ 0x64, 0xf1, 0x63, 0xad, 0x98, 0xa6, 0x4f, 0x28, 0xf6, 0x65, 0xb6, 0xd4,
+ 0xaf, 0x52, 0xe2, 0xc6, 0xe2, 0x24, 0xc1, 0x40, 0xb7, 0x8b, 0xa8, 0x43,
+ 0xb5, 0x21, 0x46, 0xaf, 0xd3, 0xc6, 0xe0, 0x77, 0x10, 0xbd, 0x79, 0xb8,
+ 0x58, 0x7c, 0x81, 0xcd,
+};
+static const struct drbg_kat_pr_true kat2958_t = {
+ 2, kat2958_entropyin, kat2958_nonce, kat2958_persstr,
+ kat2958_entropyinpr1, kat2958_addinpr1, kat2958_entropyinpr2,
+ kat2958_addinpr2, kat2958_retbits
+};
+static const struct drbg_kat kat2958 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2958_t
+};
+
+static const unsigned char kat2959_entropyin[] = {
+ 0xff, 0x24, 0x4d, 0xf5, 0x17, 0xd5, 0xa9, 0x20, 0xe9, 0x1b, 0x43, 0xb6,
+ 0x02, 0x8f, 0x1c, 0x56,
+};
+static const unsigned char kat2959_nonce[] = {
+ 0x4e, 0xc1, 0x2d, 0x98, 0x01, 0x54, 0x75, 0xbd,
+};
+static const unsigned char kat2959_persstr[] = {0};
+static const unsigned char kat2959_entropyinpr1[] = {
+ 0x19, 0x04, 0x82, 0x71, 0x56, 0x9e, 0x3d, 0x6c, 0xdc, 0x97, 0x49, 0x23,
+ 0x47, 0xb1, 0x33, 0x6d,
+};
+static const unsigned char kat2959_addinpr1[] = {
+ 0xd6, 0x71, 0xe4, 0x5f, 0xe6, 0x12, 0xbc, 0x7b, 0x60, 0x2e, 0xb7, 0x79,
+ 0xc3, 0xc8, 0xce, 0x63,
+};
+static const unsigned char kat2959_entropyinpr2[] = {
+ 0x07, 0xcf, 0x24, 0xf3, 0x14, 0x38, 0x30, 0xeb, 0x2c, 0xa0, 0x4e, 0x68,
+ 0xc5, 0x01, 0x8b, 0x69,
+};
+static const unsigned char kat2959_addinpr2[] = {
+ 0xd0, 0x1f, 0x40, 0xed, 0xe7, 0x26, 0x11, 0xf0, 0x00, 0xc2, 0xb5, 0x3f,
+ 0xdb, 0xde, 0x79, 0x4f,
+};
+static const unsigned char kat2959_retbits[] = {
+ 0x59, 0xaf, 0x1b, 0x23, 0xd7, 0x06, 0x8a, 0xb5, 0xde, 0x76, 0x30, 0xf0,
+ 0x58, 0x80, 0x8d, 0xf8, 0xda, 0x74, 0x20, 0x30, 0xd6, 0x47, 0x3f, 0x14,
+ 0x1f, 0xd1, 0xfb, 0x8a, 0xd0, 0x67, 0xd3, 0x51, 0xdb, 0x03, 0xb4, 0x3c,
+ 0x37, 0x92, 0xb6, 0xf1, 0x85, 0x7b, 0x90, 0x0f, 0x25, 0x58, 0xb6, 0xbe,
+ 0xc2, 0xd1, 0x61, 0x83, 0x88, 0x3e, 0x22, 0xe4, 0x7c, 0xf7, 0xa6, 0x5c,
+ 0xb3, 0x36, 0x97, 0xf1,
+};
+static const struct drbg_kat_pr_true kat2959_t = {
+ 3, kat2959_entropyin, kat2959_nonce, kat2959_persstr,
+ kat2959_entropyinpr1, kat2959_addinpr1, kat2959_entropyinpr2,
+ kat2959_addinpr2, kat2959_retbits
+};
+static const struct drbg_kat kat2959 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2959_t
+};
+
+static const unsigned char kat2960_entropyin[] = {
+ 0x4e, 0xc0, 0x7b, 0xfb, 0x64, 0xa9, 0x02, 0xb7, 0xda, 0x67, 0x35, 0xf0,
+ 0x2a, 0x06, 0x1e, 0x6e,
+};
+static const unsigned char kat2960_nonce[] = {
+ 0x32, 0x96, 0x0e, 0xbb, 0xa4, 0xe0, 0x15, 0xf6,
+};
+static const unsigned char kat2960_persstr[] = {0};
+static const unsigned char kat2960_entropyinpr1[] = {
+ 0xad, 0xaa, 0x8d, 0x11, 0x9f, 0x4c, 0xc1, 0x98, 0xf2, 0xff, 0xfc, 0xbd,
+ 0x95, 0xa7, 0x0c, 0x2f,
+};
+static const unsigned char kat2960_addinpr1[] = {
+ 0xb7, 0xdb, 0x17, 0x70, 0xcd, 0xbc, 0xfb, 0x12, 0x87, 0xc9, 0x09, 0xa5,
+ 0xca, 0xa4, 0x89, 0x98,
+};
+static const unsigned char kat2960_entropyinpr2[] = {
+ 0xba, 0xd1, 0x5a, 0xee, 0x78, 0x60, 0x08, 0x21, 0x1b, 0xd6, 0xd9, 0x37,
+ 0x8a, 0x01, 0xe4, 0xd9,
+};
+static const unsigned char kat2960_addinpr2[] = {
+ 0x8f, 0x0e, 0x7b, 0x71, 0x64, 0x5a, 0x25, 0x2a, 0x1a, 0xce, 0x19, 0x6a,
+ 0x79, 0xd6, 0xe5, 0x51,
+};
+static const unsigned char kat2960_retbits[] = {
+ 0x43, 0xef, 0x27, 0xed, 0xae, 0x3c, 0x48, 0x04, 0x11, 0x8a, 0x1c, 0x8c,
+ 0x90, 0x52, 0xcd, 0x92, 0x66, 0x98, 0x17, 0xeb, 0x20, 0x0b, 0x7c, 0x5a,
+ 0x3d, 0x08, 0x80, 0x1c, 0x39, 0x8f, 0xa0, 0x4a, 0x0a, 0xf5, 0x73, 0x7b,
+ 0x8d, 0x8a, 0x97, 0xb2, 0x21, 0x16, 0x5e, 0x7d, 0xf5, 0x1a, 0x07, 0xbe,
+ 0xfb, 0x74, 0xef, 0xe1, 0xc3, 0xa9, 0x54, 0x4f, 0x89, 0x19, 0x33, 0x69,
+ 0x2e, 0x12, 0x15, 0xc2,
+};
+static const struct drbg_kat_pr_true kat2960_t = {
+ 4, kat2960_entropyin, kat2960_nonce, kat2960_persstr,
+ kat2960_entropyinpr1, kat2960_addinpr1, kat2960_entropyinpr2,
+ kat2960_addinpr2, kat2960_retbits
+};
+static const struct drbg_kat kat2960 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2960_t
+};
+
+static const unsigned char kat2961_entropyin[] = {
+ 0x30, 0x0a, 0xa1, 0x77, 0x3d, 0xf7, 0xd1, 0x65, 0x47, 0x5e, 0x13, 0xca,
+ 0x4c, 0xe7, 0x37, 0x50,
+};
+static const unsigned char kat2961_nonce[] = {
+ 0x42, 0xc0, 0x6d, 0x17, 0xfe, 0xea, 0x25, 0xca,
+};
+static const unsigned char kat2961_persstr[] = {0};
+static const unsigned char kat2961_entropyinpr1[] = {
+ 0x96, 0x64, 0xcf, 0x2d, 0x71, 0x1e, 0xda, 0x5f, 0x8a, 0xea, 0x02, 0xa4,
+ 0x95, 0x5d, 0x4a, 0x80,
+};
+static const unsigned char kat2961_addinpr1[] = {
+ 0x91, 0xe4, 0x15, 0xb0, 0x4e, 0xda, 0xc4, 0x45, 0x3a, 0x59, 0x26, 0x0f,
+ 0x58, 0x9f, 0xb7, 0x34,
+};
+static const unsigned char kat2961_entropyinpr2[] = {
+ 0x9a, 0x54, 0xe3, 0x25, 0x07, 0x6c, 0xe3, 0xf7, 0x5c, 0x02, 0x0f, 0xa0,
+ 0x4e, 0xce, 0xc9, 0x6f,
+};
+static const unsigned char kat2961_addinpr2[] = {
+ 0x3d, 0x67, 0x84, 0xd9, 0x08, 0x3b, 0xfc, 0xba, 0x3b, 0x80, 0x49, 0x93,
+ 0x08, 0x3d, 0x04, 0x8b,
+};
+static const unsigned char kat2961_retbits[] = {
+ 0x92, 0x1d, 0xfb, 0x3b, 0x77, 0x1a, 0xa7, 0x8d, 0x0a, 0xf1, 0x11, 0xdb,
+ 0xb1, 0xba, 0xf2, 0xab, 0x54, 0x69, 0x58, 0x6b, 0x7c, 0xae, 0x25, 0xa7,
+ 0x35, 0x0d, 0x64, 0x66, 0xc8, 0x22, 0xb9, 0x00, 0x81, 0x4c, 0xa3, 0x54,
+ 0x26, 0x36, 0x35, 0x63, 0xb0, 0x81, 0x77, 0x75, 0xa0, 0x13, 0x13, 0x6a,
+ 0xe7, 0x5f, 0xe8, 0x85, 0xf9, 0x04, 0xf0, 0x8f, 0xbe, 0xb5, 0xc0, 0xbb,
+ 0x5b, 0xef, 0x50, 0x6b,
+};
+static const struct drbg_kat_pr_true kat2961_t = {
+ 5, kat2961_entropyin, kat2961_nonce, kat2961_persstr,
+ kat2961_entropyinpr1, kat2961_addinpr1, kat2961_entropyinpr2,
+ kat2961_addinpr2, kat2961_retbits
+};
+static const struct drbg_kat kat2961 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2961_t
+};
+
+static const unsigned char kat2962_entropyin[] = {
+ 0x98, 0x85, 0x55, 0x7b, 0x3c, 0xc8, 0xa1, 0xb7, 0x6e, 0x7c, 0xbd, 0xa2,
+ 0x45, 0x3e, 0x45, 0x84,
+};
+static const unsigned char kat2962_nonce[] = {
+ 0xdb, 0x09, 0xbd, 0x64, 0x57, 0xde, 0x87, 0x08,
+};
+static const unsigned char kat2962_persstr[] = {0};
+static const unsigned char kat2962_entropyinpr1[] = {
+ 0x86, 0xb7, 0x44, 0xf4, 0x14, 0x49, 0x56, 0xb9, 0x02, 0xd0, 0xc0, 0x6e,
+ 0xd8, 0x9c, 0x9e, 0x23,
+};
+static const unsigned char kat2962_addinpr1[] = {
+ 0x36, 0xb4, 0x6e, 0xb8, 0xd0, 0x3e, 0xca, 0xc9, 0xe4, 0x69, 0x50, 0x69,
+ 0x15, 0x54, 0x72, 0x37,
+};
+static const unsigned char kat2962_entropyinpr2[] = {
+ 0xaf, 0x41, 0x63, 0xac, 0x9f, 0x14, 0xf4, 0x7f, 0x6c, 0x49, 0x6e, 0x60,
+ 0xb1, 0x01, 0xe5, 0xa7,
+};
+static const unsigned char kat2962_addinpr2[] = {
+ 0x5b, 0x26, 0xac, 0x13, 0x87, 0xf1, 0x61, 0x04, 0xd7, 0xd2, 0xb3, 0xfc,
+ 0xea, 0xde, 0x5e, 0x8e,
+};
+static const unsigned char kat2962_retbits[] = {
+ 0x38, 0x35, 0x5a, 0xce, 0x49, 0x5b, 0x5e, 0x24, 0x35, 0xb7, 0xd8, 0x19,
+ 0xea, 0x32, 0xa3, 0x4e, 0x43, 0xa8, 0x9c, 0xb1, 0x53, 0x9a, 0x44, 0xe0,
+ 0xbc, 0xe1, 0xb3, 0xa6, 0xe2, 0xf6, 0x4e, 0x5a, 0x11, 0x13, 0x8b, 0xe8,
+ 0x8e, 0xfd, 0x76, 0x3d, 0xf0, 0x61, 0x14, 0x5d, 0x43, 0x39, 0x74, 0x63,
+ 0xa4, 0x0c, 0xfe, 0x44, 0x10, 0x91, 0xc7, 0x47, 0x76, 0xb5, 0xcd, 0x29,
+ 0xce, 0x20, 0x40, 0xc5,
+};
+static const struct drbg_kat_pr_true kat2962_t = {
+ 6, kat2962_entropyin, kat2962_nonce, kat2962_persstr,
+ kat2962_entropyinpr1, kat2962_addinpr1, kat2962_entropyinpr2,
+ kat2962_addinpr2, kat2962_retbits
+};
+static const struct drbg_kat kat2962 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2962_t
+};
+
+static const unsigned char kat2963_entropyin[] = {
+ 0xd1, 0x56, 0x33, 0xb7, 0x78, 0x90, 0xfa, 0x24, 0x0c, 0xa9, 0x6f, 0x08,
+ 0xd0, 0x52, 0xb9, 0x8b,
+};
+static const unsigned char kat2963_nonce[] = {
+ 0xf4, 0xb4, 0xff, 0xe6, 0x60, 0xe8, 0xa3, 0x19,
+};
+static const unsigned char kat2963_persstr[] = {0};
+static const unsigned char kat2963_entropyinpr1[] = {
+ 0xf1, 0x40, 0xb0, 0xef, 0x7a, 0x8e, 0x42, 0x74, 0xd4, 0x17, 0x0c, 0x6f,
+ 0xd8, 0xc0, 0xf5, 0xea,
+};
+static const unsigned char kat2963_addinpr1[] = {
+ 0xa9, 0x3e, 0x8b, 0xe0, 0xef, 0x0e, 0x80, 0x3b, 0xab, 0xe0, 0xab, 0xb5,
+ 0xf7, 0xbe, 0xa6, 0xad,
+};
+static const unsigned char kat2963_entropyinpr2[] = {
+ 0xf7, 0x87, 0x2c, 0x58, 0x48, 0x86, 0x50, 0x33, 0x36, 0xfc, 0xf4, 0xaf,
+ 0x57, 0xd3, 0x1f, 0x89,
+};
+static const unsigned char kat2963_addinpr2[] = {
+ 0xfd, 0x92, 0x67, 0x82, 0xf9, 0xf6, 0x8a, 0xd2, 0x11, 0xcd, 0xf3, 0x2d,
+ 0xa9, 0xaa, 0x3a, 0x2f,
+};
+static const unsigned char kat2963_retbits[] = {
+ 0xd4, 0xdc, 0xa4, 0x59, 0x73, 0xe9, 0x9d, 0xd7, 0x11, 0x27, 0x64, 0xfd,
+ 0x8d, 0x50, 0xf5, 0xd0, 0xe6, 0x7c, 0x23, 0x3e, 0x22, 0x7b, 0xae, 0xb6,
+ 0xc0, 0x3b, 0xf2, 0x1e, 0xc6, 0x01, 0x3f, 0xfc, 0xd3, 0x3f, 0x39, 0xfe,
+ 0x0d, 0xc1, 0xa0, 0x89, 0xcd, 0xc7, 0x07, 0x6d, 0x8b, 0x9c, 0x8e, 0x9f,
+ 0xdd, 0x3c, 0x35, 0xe1, 0x2e, 0xed, 0x9f, 0x9a, 0x70, 0xfe, 0xc1, 0x0e,
+ 0xa0, 0x3f, 0x4b, 0xb5,
+};
+static const struct drbg_kat_pr_true kat2963_t = {
+ 7, kat2963_entropyin, kat2963_nonce, kat2963_persstr,
+ kat2963_entropyinpr1, kat2963_addinpr1, kat2963_entropyinpr2,
+ kat2963_addinpr2, kat2963_retbits
+};
+static const struct drbg_kat kat2963 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2963_t
+};
+
+static const unsigned char kat2964_entropyin[] = {
+ 0x38, 0x87, 0x76, 0xbc, 0x84, 0x28, 0x5c, 0x9c, 0x4a, 0xd3, 0x98, 0x2b,
+ 0xd5, 0x46, 0x1a, 0xe8,
+};
+static const unsigned char kat2964_nonce[] = {
+ 0xe7, 0x9a, 0xa6, 0x0f, 0xc9, 0x17, 0x98, 0x73,
+};
+static const unsigned char kat2964_persstr[] = {0};
+static const unsigned char kat2964_entropyinpr1[] = {
+ 0x95, 0xba, 0x3e, 0x9b, 0x23, 0x1c, 0x0a, 0x66, 0xad, 0xf9, 0x80, 0xe7,
+ 0xaf, 0x57, 0x7c, 0xe5,
+};
+static const unsigned char kat2964_addinpr1[] = {
+ 0xa9, 0x28, 0x55, 0x44, 0x7a, 0x17, 0xb4, 0xc0, 0x60, 0x47, 0x44, 0xe9,
+ 0x0e, 0xff, 0x64, 0x03,
+};
+static const unsigned char kat2964_entropyinpr2[] = {
+ 0x24, 0xe8, 0x8b, 0xae, 0x2b, 0x4b, 0x8d, 0xf2, 0x24, 0x35, 0x15, 0xef,
+ 0x93, 0xcb, 0xf8, 0xe8,
+};
+static const unsigned char kat2964_addinpr2[] = {
+ 0x1a, 0x3b, 0xbd, 0x06, 0xc6, 0x2f, 0x0c, 0xda, 0xfc, 0x4f, 0x8a, 0xcd,
+ 0x32, 0x66, 0x82, 0xd4,
+};
+static const unsigned char kat2964_retbits[] = {
+ 0x16, 0x51, 0xec, 0x3c, 0x26, 0x32, 0x37, 0x46, 0xbc, 0x8e, 0x5d, 0x64,
+ 0x63, 0x08, 0xd1, 0xbd, 0xd6, 0x72, 0x75, 0x21, 0x35, 0x46, 0xfb, 0xfc,
+ 0xdb, 0xa4, 0x77, 0x2f, 0x24, 0x5c, 0x4e, 0x1c, 0x12, 0x79, 0x87, 0x4b,
+ 0xab, 0x75, 0xd5, 0xfe, 0xf5, 0xeb, 0xc1, 0x31, 0xfb, 0xb1, 0xbd, 0xb1,
+ 0xcf, 0x54, 0xc8, 0xe0, 0x1e, 0xfc, 0xf5, 0x06, 0x6a, 0x03, 0x38, 0xa9,
+ 0x5b, 0x2e, 0xbe, 0x34,
+};
+static const struct drbg_kat_pr_true kat2964_t = {
+ 8, kat2964_entropyin, kat2964_nonce, kat2964_persstr,
+ kat2964_entropyinpr1, kat2964_addinpr1, kat2964_entropyinpr2,
+ kat2964_addinpr2, kat2964_retbits
+};
+static const struct drbg_kat kat2964 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2964_t
+};
+
+static const unsigned char kat2965_entropyin[] = {
+ 0xd1, 0xa8, 0x97, 0xfe, 0xae, 0x8f, 0xfb, 0xbb, 0xa8, 0xb2, 0xee, 0x86,
+ 0x22, 0x7c, 0xc2, 0x08,
+};
+static const unsigned char kat2965_nonce[] = {
+ 0xa7, 0x60, 0x1a, 0x77, 0x7c, 0x0b, 0x13, 0x22,
+};
+static const unsigned char kat2965_persstr[] = {0};
+static const unsigned char kat2965_entropyinpr1[] = {
+ 0x48, 0xec, 0x22, 0xbc, 0xd5, 0xf7, 0xcc, 0xbb, 0x23, 0x76, 0xc2, 0x0f,
+ 0xc9, 0x1e, 0x36, 0xc5,
+};
+static const unsigned char kat2965_addinpr1[] = {
+ 0xfd, 0xe2, 0x9b, 0x85, 0x90, 0x20, 0x0a, 0xc0, 0xd3, 0xda, 0x27, 0x75,
+ 0xd5, 0x64, 0xed, 0x30,
+};
+static const unsigned char kat2965_entropyinpr2[] = {
+ 0xbb, 0xce, 0xbc, 0x0c, 0xd3, 0x98, 0x0f, 0xd0, 0x92, 0x02, 0x03, 0xd2,
+ 0xb5, 0x1d, 0x08, 0x92,
+};
+static const unsigned char kat2965_addinpr2[] = {
+ 0xe9, 0xe7, 0xfe, 0x35, 0xe0, 0xc2, 0x11, 0x44, 0x3c, 0xf0, 0x7e, 0x6d,
+ 0x0d, 0xbf, 0x0a, 0x7c,
+};
+static const unsigned char kat2965_retbits[] = {
+ 0x04, 0xad, 0x36, 0x05, 0x41, 0x20, 0xec, 0x41, 0x24, 0x7b, 0x90, 0xaf,
+ 0xc9, 0x4f, 0xa8, 0x35, 0xa8, 0x98, 0x83, 0x23, 0xe8, 0xa2, 0x25, 0x61,
+ 0xb0, 0x2a, 0x0b, 0x65, 0xf6, 0x8d, 0xc7, 0xe8, 0xd6, 0x77, 0x22, 0x50,
+ 0x84, 0x2f, 0xa8, 0x06, 0xdc, 0xa9, 0x2f, 0xce, 0x86, 0x5b, 0x6b, 0x46,
+ 0xe5, 0xb4, 0x0e, 0xbb, 0xb8, 0x0e, 0x5a, 0x71, 0xcb, 0xf5, 0x77, 0x51,
+ 0xdf, 0x5d, 0x34, 0xca,
+};
+static const struct drbg_kat_pr_true kat2965_t = {
+ 9, kat2965_entropyin, kat2965_nonce, kat2965_persstr,
+ kat2965_entropyinpr1, kat2965_addinpr1, kat2965_entropyinpr2,
+ kat2965_addinpr2, kat2965_retbits
+};
+static const struct drbg_kat kat2965 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2965_t
+};
+
+static const unsigned char kat2966_entropyin[] = {
+ 0x27, 0x19, 0x44, 0x7c, 0xb9, 0xb1, 0x98, 0xca, 0x3c, 0x52, 0xed, 0x2d,
+ 0xb2, 0xba, 0x29, 0xe1,
+};
+static const unsigned char kat2966_nonce[] = {
+ 0x13, 0x94, 0x9c, 0xee, 0x0f, 0xd5, 0x28, 0xc9,
+};
+static const unsigned char kat2966_persstr[] = {0};
+static const unsigned char kat2966_entropyinpr1[] = {
+ 0xab, 0x38, 0x8c, 0x4c, 0xe9, 0xc1, 0x84, 0x38, 0x1a, 0x8b, 0x21, 0x6d,
+ 0xc0, 0xc1, 0xfc, 0x3a,
+};
+static const unsigned char kat2966_addinpr1[] = {
+ 0xba, 0xf6, 0x3a, 0x6d, 0x98, 0x04, 0x28, 0xc4, 0x8b, 0x06, 0x2b, 0xdd,
+ 0x36, 0x78, 0xcc, 0xc3,
+};
+static const unsigned char kat2966_entropyinpr2[] = {
+ 0x9b, 0x9c, 0xbd, 0xcc, 0x5b, 0xe7, 0x75, 0x55, 0x6c, 0x5c, 0x8d, 0xf9,
+ 0xa4, 0xd2, 0xbf, 0x64,
+};
+static const unsigned char kat2966_addinpr2[] = {
+ 0x8a, 0x3a, 0xff, 0x90, 0xd3, 0x58, 0x86, 0x7c, 0xaf, 0x75, 0xc7, 0xc2,
+ 0x8a, 0x14, 0x04, 0x31,
+};
+static const unsigned char kat2966_retbits[] = {
+ 0x7d, 0x94, 0x5d, 0xdf, 0x55, 0x31, 0xea, 0x29, 0xa8, 0x9f, 0x1d, 0x81,
+ 0x70, 0x13, 0x2d, 0x7c, 0xf5, 0x6d, 0x36, 0xd5, 0x62, 0xe3, 0x48, 0x52,
+ 0x91, 0xfc, 0xe2, 0x9a, 0x8b, 0xa2, 0x2a, 0x85, 0x30, 0x78, 0xa3, 0x46,
+ 0x1e, 0x41, 0x55, 0x4b, 0xea, 0x15, 0xb8, 0xe4, 0x37, 0x5a, 0x43, 0xe0,
+ 0x03, 0x3c, 0x77, 0x8e, 0x2e, 0xc6, 0x3c, 0xfc, 0x1b, 0xc7, 0x10, 0xcf,
+ 0xaa, 0x21, 0x83, 0x3f,
+};
+static const struct drbg_kat_pr_true kat2966_t = {
+ 10, kat2966_entropyin, kat2966_nonce, kat2966_persstr,
+ kat2966_entropyinpr1, kat2966_addinpr1, kat2966_entropyinpr2,
+ kat2966_addinpr2, kat2966_retbits
+};
+static const struct drbg_kat kat2966 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2966_t
+};
+
+static const unsigned char kat2967_entropyin[] = {
+ 0xfe, 0x37, 0x61, 0x2c, 0x9b, 0x8c, 0x65, 0x72, 0xb7, 0x35, 0x3e, 0x4c,
+ 0xc0, 0xf4, 0xff, 0x5c,
+};
+static const unsigned char kat2967_nonce[] = {
+ 0x51, 0x6c, 0x27, 0x0b, 0x8c, 0x70, 0x8f, 0x74,
+};
+static const unsigned char kat2967_persstr[] = {0};
+static const unsigned char kat2967_entropyinpr1[] = {
+ 0x2c, 0x47, 0x3d, 0x7c, 0x28, 0xfe, 0x4e, 0x9c, 0xdc, 0x08, 0x8b, 0x70,
+ 0xcb, 0x88, 0x39, 0x90,
+};
+static const unsigned char kat2967_addinpr1[] = {
+ 0x14, 0xea, 0x75, 0x12, 0xce, 0x4f, 0xb6, 0x24, 0xcb, 0x94, 0xed, 0xd5,
+ 0x7f, 0xc4, 0x82, 0x33,
+};
+static const unsigned char kat2967_entropyinpr2[] = {
+ 0x8e, 0x3f, 0x57, 0xc8, 0x31, 0x48, 0x35, 0x69, 0x79, 0xf7, 0x72, 0x10,
+ 0xbd, 0xff, 0xba, 0xfb,
+};
+static const unsigned char kat2967_addinpr2[] = {
+ 0xcc, 0xc7, 0x8b, 0x32, 0x72, 0x5c, 0x85, 0xfe, 0x04, 0xa7, 0x44, 0xfb,
+ 0x83, 0x3c, 0xcf, 0x0a,
+};
+static const unsigned char kat2967_retbits[] = {
+ 0x58, 0x89, 0x74, 0x93, 0xa3, 0xbb, 0x74, 0xe2, 0x82, 0xf9, 0x67, 0x03,
+ 0x3d, 0x95, 0x0b, 0x3e, 0xb5, 0x7f, 0x46, 0x85, 0x9f, 0xc5, 0xa1, 0xc5,
+ 0x2a, 0x94, 0xea, 0xe8, 0x5f, 0xa3, 0x2d, 0xbf, 0xc8, 0x0b, 0xe7, 0x49,
+ 0xe0, 0x95, 0xcd, 0x1c, 0xdd, 0xaa, 0x43, 0x84, 0x22, 0xd0, 0xf3, 0x73,
+ 0x4f, 0xb7, 0xa3, 0x01, 0x50, 0xbe, 0x53, 0x89, 0x5a, 0x61, 0x4d, 0x0f,
+ 0xc4, 0x72, 0x7c, 0x91,
+};
+static const struct drbg_kat_pr_true kat2967_t = {
+ 11, kat2967_entropyin, kat2967_nonce, kat2967_persstr,
+ kat2967_entropyinpr1, kat2967_addinpr1, kat2967_entropyinpr2,
+ kat2967_addinpr2, kat2967_retbits
+};
+static const struct drbg_kat kat2967 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2967_t
+};
+
+static const unsigned char kat2968_entropyin[] = {
+ 0x9d, 0x49, 0x14, 0xa3, 0x61, 0x03, 0xdd, 0x43, 0x5f, 0x62, 0x5f, 0x24,
+ 0x3b, 0xf1, 0x19, 0x92,
+};
+static const unsigned char kat2968_nonce[] = {
+ 0xab, 0x5c, 0x8a, 0xcb, 0xf0, 0x21, 0x92, 0x2c,
+};
+static const unsigned char kat2968_persstr[] = {0};
+static const unsigned char kat2968_entropyinpr1[] = {
+ 0x65, 0x6a, 0x4b, 0x81, 0xb3, 0xfe, 0x65, 0xb3, 0xee, 0xdd, 0xec, 0x0a,
+ 0x19, 0x8e, 0x3a, 0xf8,
+};
+static const unsigned char kat2968_addinpr1[] = {
+ 0xc9, 0xae, 0xf1, 0x3a, 0xe0, 0xfc, 0xcc, 0xe7, 0x68, 0xed, 0xae, 0xb4,
+ 0xa0, 0xc9, 0x41, 0x67,
+};
+static const unsigned char kat2968_entropyinpr2[] = {
+ 0xbd, 0x7b, 0x43, 0x9e, 0x15, 0xa4, 0xd1, 0x58, 0xd3, 0x9e, 0x78, 0x1a,
+ 0xb9, 0x30, 0x0d, 0x7a,
+};
+static const unsigned char kat2968_addinpr2[] = {
+ 0x78, 0xcc, 0x00, 0x69, 0xc5, 0xb5, 0x91, 0x8b, 0x69, 0xaf, 0x77, 0x3d,
+ 0xc7, 0xe5, 0x48, 0x89,
+};
+static const unsigned char kat2968_retbits[] = {
+ 0xb4, 0xc7, 0x9a, 0x91, 0x62, 0xcc, 0x10, 0xd5, 0x52, 0x2c, 0x1f, 0xfd,
+ 0x32, 0xa2, 0x6b, 0x3f, 0xaf, 0xab, 0xd8, 0xd3, 0x7c, 0x87, 0xb6, 0xba,
+ 0xa2, 0x7c, 0xdf, 0xea, 0x56, 0x31, 0x23, 0x18, 0xa6, 0x58, 0x81, 0x9e,
+ 0x70, 0xd9, 0x5b, 0xbe, 0xcc, 0xc6, 0x91, 0x9b, 0x70, 0x0c, 0x88, 0xd5,
+ 0x3c, 0x10, 0xee, 0x5c, 0x95, 0x49, 0x09, 0x5c, 0xab, 0x30, 0x42, 0x00,
+ 0x5e, 0xce, 0xa5, 0x96,
+};
+static const struct drbg_kat_pr_true kat2968_t = {
+ 12, kat2968_entropyin, kat2968_nonce, kat2968_persstr,
+ kat2968_entropyinpr1, kat2968_addinpr1, kat2968_entropyinpr2,
+ kat2968_addinpr2, kat2968_retbits
+};
+static const struct drbg_kat kat2968 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2968_t
+};
+
+static const unsigned char kat2969_entropyin[] = {
+ 0x42, 0x58, 0x6d, 0xb7, 0x3f, 0x86, 0x56, 0xea, 0x70, 0xe5, 0xad, 0x27,
+ 0x84, 0x0e, 0x1b, 0x67,
+};
+static const unsigned char kat2969_nonce[] = {
+ 0x40, 0xc9, 0xfd, 0xa1, 0x83, 0x21, 0x27, 0x37,
+};
+static const unsigned char kat2969_persstr[] = {0};
+static const unsigned char kat2969_entropyinpr1[] = {
+ 0x15, 0xd6, 0x3c, 0x43, 0x76, 0x9f, 0x16, 0xe5, 0x16, 0x68, 0xd7, 0xfa,
+ 0x50, 0x9f, 0x0d, 0xb5,
+};
+static const unsigned char kat2969_addinpr1[] = {
+ 0xab, 0xb3, 0xe3, 0x4c, 0x36, 0x07, 0x68, 0xb1, 0xbe, 0xcb, 0x80, 0x57,
+ 0x10, 0x6e, 0x97, 0x1d,
+};
+static const unsigned char kat2969_entropyinpr2[] = {
+ 0x98, 0x97, 0xe6, 0x3b, 0xb4, 0x06, 0x0b, 0x72, 0xd3, 0x75, 0xd0, 0x38,
+ 0xd8, 0x2e, 0xae, 0x03,
+};
+static const unsigned char kat2969_addinpr2[] = {
+ 0x7f, 0xe8, 0x32, 0xa8, 0xc4, 0x7c, 0x9e, 0x87, 0x3c, 0xf1, 0xd1, 0xad,
+ 0x8c, 0xf6, 0x37, 0xd4,
+};
+static const unsigned char kat2969_retbits[] = {
+ 0x0a, 0xec, 0xfd, 0xf5, 0xf5, 0x18, 0x42, 0x46, 0xe7, 0xcc, 0x26, 0x4f,
+ 0x65, 0xcb, 0x68, 0x15, 0x8e, 0x94, 0x6c, 0x0f, 0x21, 0x79, 0x76, 0xea,
+ 0xd0, 0xa9, 0x20, 0x65, 0xf1, 0xf1, 0x89, 0xe4, 0x4c, 0xd8, 0x6c, 0x8a,
+ 0x4d, 0xe9, 0x1d, 0xb1, 0x4a, 0xc2, 0x35, 0xd6, 0xa9, 0x40, 0xa6, 0x40,
+ 0x4a, 0x3b, 0xc3, 0xb1, 0xd9, 0xe4, 0xc1, 0x96, 0xdf, 0x4a, 0x6f, 0x3d,
+ 0x3c, 0x6a, 0xe4, 0x14,
+};
+static const struct drbg_kat_pr_true kat2969_t = {
+ 13, kat2969_entropyin, kat2969_nonce, kat2969_persstr,
+ kat2969_entropyinpr1, kat2969_addinpr1, kat2969_entropyinpr2,
+ kat2969_addinpr2, kat2969_retbits
+};
+static const struct drbg_kat kat2969 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2969_t
+};
+
+static const unsigned char kat2970_entropyin[] = {
+ 0xc3, 0x43, 0x03, 0x16, 0xd2, 0x71, 0xb5, 0x8a, 0x7b, 0xfa, 0x40, 0xc2,
+ 0x96, 0x69, 0xba, 0xba,
+};
+static const unsigned char kat2970_nonce[] = {
+ 0xbe, 0x4b, 0x5e, 0x27, 0x65, 0xec, 0x1f, 0x03,
+};
+static const unsigned char kat2970_persstr[] = {0};
+static const unsigned char kat2970_entropyinpr1[] = {
+ 0xa8, 0x27, 0x0e, 0xdf, 0xe3, 0x0f, 0xe5, 0x8b, 0xcc, 0x47, 0x67, 0x7a,
+ 0x14, 0x88, 0xd1, 0x5f,
+};
+static const unsigned char kat2970_addinpr1[] = {
+ 0x14, 0x78, 0x4a, 0x87, 0xe4, 0xf9, 0x70, 0xfa, 0xf8, 0x69, 0x5d, 0xd4,
+ 0x91, 0xb2, 0xd0, 0x65,
+};
+static const unsigned char kat2970_entropyinpr2[] = {
+ 0x65, 0x63, 0xbc, 0x22, 0x9e, 0x14, 0xc3, 0xa5, 0x92, 0x5d, 0x99, 0x93,
+ 0xf9, 0x3f, 0x8e, 0x00,
+};
+static const unsigned char kat2970_addinpr2[] = {
+ 0x06, 0x1f, 0x8c, 0xfd, 0x6b, 0xbe, 0x66, 0x98, 0x14, 0x09, 0xdd, 0xe8,
+ 0x45, 0x23, 0x66, 0xd0,
+};
+static const unsigned char kat2970_retbits[] = {
+ 0xb9, 0x0c, 0xf4, 0xc5, 0xfd, 0x85, 0x15, 0x09, 0x05, 0x96, 0xbe, 0x71,
+ 0xd9, 0x68, 0x63, 0xdb, 0xb5, 0xfc, 0x0a, 0xc9, 0x15, 0x8c, 0x9d, 0x90,
+ 0x95, 0xdc, 0xde, 0x0e, 0xe3, 0xb8, 0x9d, 0x8d, 0x7c, 0x5d, 0xfb, 0x1c,
+ 0x8b, 0xa7, 0x5e, 0x5d, 0xea, 0x91, 0x94, 0xd8, 0x65, 0x50, 0x22, 0xbf,
+ 0xa9, 0xd7, 0xaa, 0x8a, 0x95, 0x1e, 0x2f, 0x31, 0xcf, 0xfd, 0x83, 0x0a,
+ 0xf2, 0x04, 0xd7, 0xd7,
+};
+static const struct drbg_kat_pr_true kat2970_t = {
+ 14, kat2970_entropyin, kat2970_nonce, kat2970_persstr,
+ kat2970_entropyinpr1, kat2970_addinpr1, kat2970_entropyinpr2,
+ kat2970_addinpr2, kat2970_retbits
+};
+static const struct drbg_kat kat2970 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat2970_t
+};
+
+static const unsigned char kat2971_entropyin[] = {
+ 0xd7, 0x05, 0xaa, 0xf4, 0x8f, 0x69, 0x6a, 0x5a, 0xb5, 0xdd, 0xdd, 0xc6,
+ 0xef, 0xb7, 0xd5, 0x94,
+};
+static const unsigned char kat2971_nonce[] = {
+ 0x11, 0x6a, 0x95, 0xcd, 0x47, 0x2a, 0x9c, 0xb0,
+};
+static const unsigned char kat2971_persstr[] = {
+ 0x73, 0xce, 0xff, 0x34, 0x8b, 0x52, 0x60, 0xde, 0x7e, 0x87, 0xdd, 0xb2,
+ 0x2b, 0xfd, 0xc7, 0xd7,
+};
+static const unsigned char kat2971_entropyinpr1[] = {
+ 0x7e, 0xa6, 0x57, 0x24, 0x58, 0x47, 0xdd, 0x4c, 0x01, 0x17, 0x8d, 0x80,
+ 0xf0, 0xb5, 0xb1, 0xd5,
+};
+static const unsigned char kat2971_addinpr1[] = {0};
+static const unsigned char kat2971_entropyinpr2[] = {
+ 0xe0, 0xdf, 0xa3, 0xa2, 0x31, 0xa8, 0xae, 0x55, 0x0f, 0x85, 0x83, 0x49,
+ 0x06, 0xe4, 0xa2, 0xf6,
+};
+static const unsigned char kat2971_addinpr2[] = {0};
+static const unsigned char kat2971_retbits[] = {
+ 0x0d, 0x1e, 0x63, 0xad, 0x35, 0xa0, 0x20, 0xbd, 0x81, 0x91, 0xb6, 0xca,
+ 0x8a, 0x1a, 0x1f, 0x75, 0x8e, 0x6f, 0x1d, 0x68, 0x93, 0xc2, 0xc8, 0x48,
+ 0xb9, 0xf1, 0x4b, 0x4e, 0xae, 0x86, 0xd4, 0xb2, 0x03, 0xdf, 0x8e, 0xa4,
+ 0xb4, 0x7d, 0x0b, 0x86, 0x8c, 0x0a, 0xd7, 0x8c, 0xe6, 0xf4, 0xa6, 0x38,
+ 0x63, 0x8c, 0xfe, 0x6d, 0x5a, 0x62, 0xc6, 0xe2, 0x4e, 0x95, 0x50, 0xaa,
+ 0x82, 0xa2, 0x6c, 0x47,
+};
+static const struct drbg_kat_pr_true kat2971_t = {
+ 0, kat2971_entropyin, kat2971_nonce, kat2971_persstr,
+ kat2971_entropyinpr1, kat2971_addinpr1, kat2971_entropyinpr2,
+ kat2971_addinpr2, kat2971_retbits
+};
+static const struct drbg_kat kat2971 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2971_t
+};
+
+static const unsigned char kat2972_entropyin[] = {
+ 0x18, 0xc2, 0x7d, 0xf5, 0x1d, 0x57, 0x0d, 0xe0, 0x44, 0xe1, 0xc2, 0x91,
+ 0xf1, 0xda, 0xd8, 0x1d,
+};
+static const unsigned char kat2972_nonce[] = {
+ 0x31, 0x19, 0x12, 0xfb, 0xa9, 0x7e, 0x43, 0x33,
+};
+static const unsigned char kat2972_persstr[] = {
+ 0x30, 0x07, 0xed, 0xe2, 0x05, 0xa7, 0x40, 0xf0, 0x5e, 0x46, 0x00, 0x21,
+ 0xe0, 0x86, 0xe7, 0xda,
+};
+static const unsigned char kat2972_entropyinpr1[] = {
+ 0x31, 0xba, 0x77, 0x25, 0x92, 0xf8, 0x6b, 0xf2, 0xb3, 0xeb, 0x9b, 0x9c,
+ 0x79, 0x2b, 0xac, 0xd2,
+};
+static const unsigned char kat2972_addinpr1[] = {0};
+static const unsigned char kat2972_entropyinpr2[] = {
+ 0x41, 0x83, 0x2c, 0x5d, 0xe9, 0xb2, 0xad, 0xa2, 0xef, 0xb0, 0x1b, 0x15,
+ 0x74, 0x0e, 0x75, 0x19,
+};
+static const unsigned char kat2972_addinpr2[] = {0};
+static const unsigned char kat2972_retbits[] = {
+ 0xda, 0x11, 0xfb, 0xcf, 0x2c, 0xae, 0x28, 0xd1, 0x9d, 0x9a, 0xb6, 0xcd,
+ 0x8c, 0xc8, 0x65, 0x96, 0x8f, 0xc0, 0x9a, 0x61, 0x6d, 0xce, 0xad, 0x57,
+ 0x72, 0xbf, 0x05, 0xbb, 0x8c, 0x16, 0x64, 0x26, 0x9b, 0xcd, 0x8b, 0xb2,
+ 0x01, 0x16, 0x51, 0x82, 0x48, 0x1c, 0x65, 0x03, 0x29, 0xa8, 0x7a, 0x27,
+ 0x38, 0x72, 0x36, 0x36, 0x44, 0x6f, 0x4b, 0x38, 0x1c, 0x78, 0x7e, 0xbe,
+ 0xcc, 0x89, 0xfb, 0x68,
+};
+static const struct drbg_kat_pr_true kat2972_t = {
+ 1, kat2972_entropyin, kat2972_nonce, kat2972_persstr,
+ kat2972_entropyinpr1, kat2972_addinpr1, kat2972_entropyinpr2,
+ kat2972_addinpr2, kat2972_retbits
+};
+static const struct drbg_kat kat2972 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2972_t
+};
+
+static const unsigned char kat2973_entropyin[] = {
+ 0xa2, 0x95, 0xd5, 0x57, 0x06, 0x7c, 0xcb, 0x87, 0xd1, 0xe8, 0xfc, 0x74,
+ 0xb6, 0x11, 0x85, 0x95,
+};
+static const unsigned char kat2973_nonce[] = {
+ 0x36, 0x49, 0xf0, 0x4e, 0xf9, 0x94, 0x1f, 0x5a,
+};
+static const unsigned char kat2973_persstr[] = {
+ 0xac, 0xe6, 0x73, 0x0e, 0x9f, 0xdd, 0x8d, 0xc4, 0xad, 0xfa, 0xd6, 0x04,
+ 0x26, 0xe2, 0x60, 0x7b,
+};
+static const unsigned char kat2973_entropyinpr1[] = {
+ 0x9d, 0xe9, 0x5f, 0x6e, 0x86, 0x7c, 0xc0, 0xc3, 0x4e, 0x6c, 0xb3, 0xe4,
+ 0x52, 0x6f, 0x89, 0x7a,
+};
+static const unsigned char kat2973_addinpr1[] = {0};
+static const unsigned char kat2973_entropyinpr2[] = {
+ 0xa0, 0x72, 0x01, 0x8d, 0xe3, 0x90, 0xbf, 0x38, 0x90, 0x72, 0xa1, 0xad,
+ 0x80, 0xce, 0x93, 0x5d,
+};
+static const unsigned char kat2973_addinpr2[] = {0};
+static const unsigned char kat2973_retbits[] = {
+ 0x60, 0x56, 0x2b, 0x95, 0x09, 0x80, 0x77, 0xb9, 0x05, 0x4f, 0x4c, 0xf5,
+ 0xb5, 0x11, 0x7b, 0xc9, 0xfe, 0x10, 0x42, 0xa2, 0x2f, 0xda, 0x50, 0xdc,
+ 0x9f, 0x95, 0xde, 0x8f, 0x2c, 0x19, 0x21, 0x6b, 0x30, 0x12, 0x50, 0x82,
+ 0xbe, 0x8e, 0x89, 0x95, 0x24, 0xf0, 0xac, 0x49, 0x92, 0xeb, 0xb7, 0xdf,
+ 0xce, 0x36, 0xe8, 0x15, 0x2a, 0x71, 0x10, 0xc9, 0x54, 0x29, 0x39, 0xb7,
+ 0x8a, 0xce, 0x1b, 0xac,
+};
+static const struct drbg_kat_pr_true kat2973_t = {
+ 2, kat2973_entropyin, kat2973_nonce, kat2973_persstr,
+ kat2973_entropyinpr1, kat2973_addinpr1, kat2973_entropyinpr2,
+ kat2973_addinpr2, kat2973_retbits
+};
+static const struct drbg_kat kat2973 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2973_t
+};
+
+static const unsigned char kat2974_entropyin[] = {
+ 0x8c, 0x4e, 0x18, 0x30, 0xb5, 0xb7, 0x24, 0x02, 0x86, 0xc6, 0xb2, 0xd2,
+ 0x08, 0x43, 0x34, 0x12,
+};
+static const unsigned char kat2974_nonce[] = {
+ 0x00, 0x1c, 0xa8, 0xce, 0xd8, 0x94, 0xae, 0x12,
+};
+static const unsigned char kat2974_persstr[] = {
+ 0x2b, 0x54, 0x34, 0x40, 0x29, 0x76, 0x3f, 0x73, 0xc4, 0x0e, 0xf8, 0x98,
+ 0xa6, 0xe7, 0xa9, 0x6c,
+};
+static const unsigned char kat2974_entropyinpr1[] = {
+ 0xc5, 0xa1, 0x75, 0x32, 0x88, 0x28, 0xff, 0x3e, 0x62, 0x4a, 0x06, 0x56,
+ 0xb4, 0x08, 0xe5, 0x16,
+};
+static const unsigned char kat2974_addinpr1[] = {0};
+static const unsigned char kat2974_entropyinpr2[] = {
+ 0x8d, 0x6e, 0x95, 0x00, 0x6f, 0x5b, 0x29, 0x91, 0xae, 0x4d, 0xcf, 0xaa,
+ 0x3f, 0x74, 0xaa, 0x77,
+};
+static const unsigned char kat2974_addinpr2[] = {0};
+static const unsigned char kat2974_retbits[] = {
+ 0xb2, 0x1a, 0xaf, 0xc7, 0xc0, 0x90, 0xa8, 0x16, 0xcb, 0x85, 0xcc, 0x94,
+ 0x34, 0x79, 0x1c, 0x81, 0x0f, 0xc8, 0x04, 0x41, 0x56, 0xf1, 0xb3, 0xea,
+ 0x35, 0x87, 0xb2, 0x70, 0x1b, 0x6d, 0x23, 0x5f, 0xc2, 0xd5, 0xa5, 0xed,
+ 0x48, 0x40, 0xf5, 0xf8, 0xf6, 0x49, 0x4f, 0x12, 0x9e, 0xa6, 0x0d, 0x64,
+ 0x05, 0xf4, 0xec, 0x76, 0xaa, 0x10, 0x18, 0xd9, 0xb9, 0x7f, 0x0a, 0x3c,
+ 0xa1, 0x32, 0x50, 0xbf,
+};
+static const struct drbg_kat_pr_true kat2974_t = {
+ 3, kat2974_entropyin, kat2974_nonce, kat2974_persstr,
+ kat2974_entropyinpr1, kat2974_addinpr1, kat2974_entropyinpr2,
+ kat2974_addinpr2, kat2974_retbits
+};
+static const struct drbg_kat kat2974 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2974_t
+};
+
+static const unsigned char kat2975_entropyin[] = {
+ 0xb3, 0x59, 0x5b, 0x6a, 0x90, 0x1c, 0xc9, 0xe8, 0x64, 0xbf, 0x3f, 0x9a,
+ 0xc4, 0x9c, 0x53, 0x72,
+};
+static const unsigned char kat2975_nonce[] = {
+ 0x75, 0x9f, 0x07, 0x6d, 0xf8, 0x7b, 0xb9, 0xce,
+};
+static const unsigned char kat2975_persstr[] = {
+ 0x58, 0x1a, 0xa6, 0x3b, 0xa4, 0xe9, 0x73, 0x45, 0x92, 0xa9, 0x1f, 0xd7,
+ 0x26, 0x4b, 0x14, 0x24,
+};
+static const unsigned char kat2975_entropyinpr1[] = {
+ 0x67, 0xd6, 0xef, 0x6b, 0x68, 0x2a, 0x92, 0x3e, 0x9f, 0x0c, 0xad, 0x08,
+ 0xec, 0x71, 0x58, 0x8c,
+};
+static const unsigned char kat2975_addinpr1[] = {0};
+static const unsigned char kat2975_entropyinpr2[] = {
+ 0xd1, 0x2b, 0x19, 0xf2, 0x6a, 0x69, 0xe6, 0x26, 0x1b, 0x8e, 0x5b, 0x6d,
+ 0xd7, 0x9a, 0xb0, 0xee,
+};
+static const unsigned char kat2975_addinpr2[] = {0};
+static const unsigned char kat2975_retbits[] = {
+ 0xe1, 0x32, 0x97, 0x6f, 0x83, 0x49, 0xd4, 0x8b, 0xc5, 0x33, 0x27, 0xdc,
+ 0xd4, 0x9f, 0x31, 0x41, 0x76, 0x00, 0x67, 0x24, 0x23, 0x85, 0xf6, 0xe1,
+ 0x80, 0xa4, 0xdc, 0xdb, 0x28, 0xe4, 0x09, 0xeb, 0x5c, 0x88, 0x12, 0x55,
+ 0x4d, 0xb1, 0x1d, 0xc4, 0xdf, 0x0b, 0x9e, 0x05, 0x35, 0x23, 0x28, 0x31,
+ 0xf3, 0x70, 0x60, 0xfd, 0xcb, 0x0f, 0xc5, 0x55, 0x4a, 0xfd, 0x7c, 0xe2,
+ 0x29, 0x5d, 0x65, 0xc9,
+};
+static const struct drbg_kat_pr_true kat2975_t = {
+ 4, kat2975_entropyin, kat2975_nonce, kat2975_persstr,
+ kat2975_entropyinpr1, kat2975_addinpr1, kat2975_entropyinpr2,
+ kat2975_addinpr2, kat2975_retbits
+};
+static const struct drbg_kat kat2975 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2975_t
+};
+
+static const unsigned char kat2976_entropyin[] = {
+ 0x4b, 0xaa, 0xb6, 0xe2, 0x1d, 0x40, 0x4f, 0x94, 0xe8, 0xce, 0xa6, 0x4d,
+ 0xb4, 0xd6, 0x0f, 0x32,
+};
+static const unsigned char kat2976_nonce[] = {
+ 0xa9, 0xab, 0x4a, 0x57, 0x01, 0xac, 0x32, 0x2f,
+};
+static const unsigned char kat2976_persstr[] = {
+ 0xc2, 0x34, 0x28, 0x9d, 0x97, 0x80, 0xa9, 0x72, 0x41, 0x42, 0x7a, 0x6e,
+ 0x83, 0x01, 0xcd, 0xb3,
+};
+static const unsigned char kat2976_entropyinpr1[] = {
+ 0x1a, 0xa1, 0xd7, 0x3e, 0xb6, 0xd3, 0x8c, 0x67, 0xa3, 0x54, 0x1b, 0x44,
+ 0xc5, 0x2c, 0x84, 0x32,
+};
+static const unsigned char kat2976_addinpr1[] = {0};
+static const unsigned char kat2976_entropyinpr2[] = {
+ 0x87, 0x7a, 0xb4, 0xcd, 0x2f, 0xa1, 0xc6, 0xd8, 0xe3, 0x1b, 0xc8, 0x7f,
+ 0xdf, 0x26, 0x81, 0xe5,
+};
+static const unsigned char kat2976_addinpr2[] = {0};
+static const unsigned char kat2976_retbits[] = {
+ 0xc4, 0x48, 0x70, 0xff, 0x58, 0xe4, 0xa2, 0x5d, 0xfc, 0xd1, 0x4e, 0x73,
+ 0x08, 0x4b, 0x88, 0x40, 0xf5, 0x96, 0x69, 0x9c, 0xce, 0x0f, 0x51, 0x94,
+ 0x3a, 0x4e, 0xfe, 0x6c, 0x1f, 0x2e, 0x4e, 0x61, 0xc8, 0x2f, 0x4d, 0xb5,
+ 0xe2, 0x75, 0xa9, 0x6e, 0x03, 0x5a, 0xfc, 0x35, 0x02, 0xec, 0x2e, 0xd1,
+ 0x52, 0xf4, 0x53, 0x16, 0x2d, 0x97, 0xc0, 0xc9, 0x02, 0x52, 0x58, 0xdc,
+ 0x80, 0x21, 0xef, 0x2c,
+};
+static const struct drbg_kat_pr_true kat2976_t = {
+ 5, kat2976_entropyin, kat2976_nonce, kat2976_persstr,
+ kat2976_entropyinpr1, kat2976_addinpr1, kat2976_entropyinpr2,
+ kat2976_addinpr2, kat2976_retbits
+};
+static const struct drbg_kat kat2976 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2976_t
+};
+
+static const unsigned char kat2977_entropyin[] = {
+ 0xf7, 0x9a, 0x4a, 0xa7, 0xb3, 0x81, 0x5e, 0x5c, 0x1a, 0xeb, 0x17, 0x65,
+ 0x20, 0x01, 0x63, 0xba,
+};
+static const unsigned char kat2977_nonce[] = {
+ 0xbe, 0x93, 0xad, 0x06, 0x47, 0xe1, 0xdb, 0x26,
+};
+static const unsigned char kat2977_persstr[] = {
+ 0xd1, 0xc3, 0x44, 0x51, 0x8f, 0x33, 0x12, 0x30, 0x40, 0x00, 0x61, 0xfc,
+ 0xe2, 0xf1, 0x88, 0xed,
+};
+static const unsigned char kat2977_entropyinpr1[] = {
+ 0xb3, 0x55, 0x4b, 0xf0, 0xc6, 0x2d, 0x76, 0x03, 0xc0, 0xf8, 0x95, 0xdf,
+ 0xa7, 0x3a, 0x75, 0x5c,
+};
+static const unsigned char kat2977_addinpr1[] = {0};
+static const unsigned char kat2977_entropyinpr2[] = {
+ 0xf6, 0xbf, 0x07, 0xe1, 0x42, 0x35, 0x55, 0xbc, 0x53, 0x23, 0x8e, 0xe3,
+ 0xd6, 0x9b, 0x9e, 0x3e,
+};
+static const unsigned char kat2977_addinpr2[] = {0};
+static const unsigned char kat2977_retbits[] = {
+ 0xdf, 0xf6, 0x6e, 0x02, 0x5a, 0xc4, 0x77, 0xe5, 0x56, 0x7b, 0x53, 0xa0,
+ 0xc2, 0x72, 0x44, 0xf6, 0x27, 0xc1, 0xd3, 0xe6, 0xdd, 0x15, 0xb2, 0x39,
+ 0xea, 0x97, 0x12, 0x38, 0x5e, 0xd3, 0x06, 0xad, 0xc3, 0xcf, 0x2d, 0xe9,
+ 0x9f, 0x5e, 0x8a, 0xe4, 0xa4, 0xed, 0x47, 0xf7, 0x19, 0xfc, 0x2f, 0xfe,
+ 0xd2, 0x2c, 0x74, 0x8b, 0x09, 0x1a, 0x16, 0xb5, 0xa6, 0x43, 0xb1, 0xbf,
+ 0x18, 0x03, 0xa2, 0x9d,
+};
+static const struct drbg_kat_pr_true kat2977_t = {
+ 6, kat2977_entropyin, kat2977_nonce, kat2977_persstr,
+ kat2977_entropyinpr1, kat2977_addinpr1, kat2977_entropyinpr2,
+ kat2977_addinpr2, kat2977_retbits
+};
+static const struct drbg_kat kat2977 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2977_t
+};
+
+static const unsigned char kat2978_entropyin[] = {
+ 0x7e, 0x20, 0xa3, 0x5f, 0x3e, 0xf9, 0x33, 0xf8, 0x95, 0xf9, 0x09, 0x47,
+ 0x65, 0x80, 0x89, 0xfc,
+};
+static const unsigned char kat2978_nonce[] = {
+ 0x12, 0xd3, 0xdd, 0xca, 0xca, 0xc3, 0x13, 0x26,
+};
+static const unsigned char kat2978_persstr[] = {
+ 0xd5, 0x65, 0xcd, 0x19, 0xa9, 0x94, 0x5f, 0xe2, 0x85, 0xa7, 0xdd, 0x3a,
+ 0xd0, 0xed, 0x69, 0x82,
+};
+static const unsigned char kat2978_entropyinpr1[] = {
+ 0xd2, 0x8b, 0xdd, 0xcc, 0xeb, 0x0f, 0x9e, 0x04, 0x77, 0xee, 0xa7, 0x02,
+ 0xaf, 0xdf, 0x21, 0x25,
+};
+static const unsigned char kat2978_addinpr1[] = {0};
+static const unsigned char kat2978_entropyinpr2[] = {
+ 0x4f, 0x62, 0xa1, 0x26, 0x49, 0x28, 0x3d, 0x74, 0xdd, 0x30, 0x25, 0xc1,
+ 0x8f, 0x4a, 0xc1, 0x00,
+};
+static const unsigned char kat2978_addinpr2[] = {0};
+static const unsigned char kat2978_retbits[] = {
+ 0xe2, 0xbf, 0xab, 0x30, 0x13, 0xc4, 0xbc, 0xf8, 0xa1, 0x21, 0x7d, 0x72,
+ 0xf2, 0xf7, 0x03, 0x83, 0xb6, 0xc7, 0x51, 0x42, 0x58, 0xb0, 0x02, 0x68,
+ 0x8b, 0x9c, 0xd0, 0xde, 0x5d, 0x8e, 0x7c, 0xec, 0x72, 0xb8, 0x2e, 0x64,
+ 0x2a, 0x48, 0x13, 0x92, 0x1c, 0xce, 0x94, 0x50, 0x61, 0x90, 0xed, 0x45,
+ 0xe7, 0xe3, 0xf8, 0x2d, 0x87, 0xb1, 0x68, 0x7c, 0xa7, 0xcd, 0x3d, 0x82,
+ 0xa3, 0xf9, 0x64, 0x80,
+};
+static const struct drbg_kat_pr_true kat2978_t = {
+ 7, kat2978_entropyin, kat2978_nonce, kat2978_persstr,
+ kat2978_entropyinpr1, kat2978_addinpr1, kat2978_entropyinpr2,
+ kat2978_addinpr2, kat2978_retbits
+};
+static const struct drbg_kat kat2978 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2978_t
+};
+
+static const unsigned char kat2979_entropyin[] = {
+ 0xc0, 0xac, 0xa4, 0x25, 0x76, 0x84, 0x20, 0xdd, 0xec, 0x4c, 0xc0, 0x3a,
+ 0x33, 0x80, 0x8f, 0x77,
+};
+static const unsigned char kat2979_nonce[] = {
+ 0x22, 0x56, 0x8a, 0x86, 0xba, 0x8c, 0x83, 0xe7,
+};
+static const unsigned char kat2979_persstr[] = {
+ 0x92, 0xf9, 0xc7, 0xb6, 0x2d, 0x4c, 0xe2, 0xec, 0x14, 0x96, 0xfd, 0x16,
+ 0xfb, 0xdc, 0xd7, 0xf6,
+};
+static const unsigned char kat2979_entropyinpr1[] = {
+ 0x3f, 0xbf, 0xc6, 0xda, 0xe2, 0x8b, 0x73, 0xc0, 0xa2, 0x64, 0x62, 0xa1,
+ 0xf1, 0xac, 0x0c, 0xa3,
+};
+static const unsigned char kat2979_addinpr1[] = {0};
+static const unsigned char kat2979_entropyinpr2[] = {
+ 0xdb, 0x25, 0x6a, 0xc7, 0x32, 0xf8, 0x12, 0x89, 0x34, 0xcb, 0x9a, 0x97,
+ 0xc8, 0xbe, 0xa3, 0x5e,
+};
+static const unsigned char kat2979_addinpr2[] = {0};
+static const unsigned char kat2979_retbits[] = {
+ 0xaa, 0xf9, 0xfa, 0xed, 0x83, 0xa8, 0x5f, 0xc9, 0xf1, 0x29, 0xc7, 0x81,
+ 0x80, 0xcd, 0xa0, 0x0e, 0x44, 0xf5, 0x46, 0xc1, 0xf2, 0x86, 0x20, 0x99,
+ 0xd8, 0x01, 0x9e, 0xcd, 0x32, 0x1c, 0xc5, 0x1e, 0x64, 0xe1, 0x3c, 0x9d,
+ 0x30, 0x53, 0x18, 0xbf, 0xf4, 0x47, 0x20, 0xcb, 0x5b, 0x7e, 0xf7, 0x94,
+ 0xd2, 0xe0, 0xca, 0x81, 0xaf, 0x91, 0xda, 0x65, 0x43, 0xa3, 0x7e, 0xca,
+ 0x62, 0x6b, 0xfd, 0x01,
+};
+static const struct drbg_kat_pr_true kat2979_t = {
+ 8, kat2979_entropyin, kat2979_nonce, kat2979_persstr,
+ kat2979_entropyinpr1, kat2979_addinpr1, kat2979_entropyinpr2,
+ kat2979_addinpr2, kat2979_retbits
+};
+static const struct drbg_kat kat2979 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2979_t
+};
+
+static const unsigned char kat2980_entropyin[] = {
+ 0xc3, 0xdf, 0x98, 0xf5, 0xa0, 0xa3, 0x8a, 0xd1, 0xd1, 0x5f, 0xc3, 0x95,
+ 0xfe, 0x8a, 0x08, 0xcb,
+};
+static const unsigned char kat2980_nonce[] = {
+ 0xcc, 0x9b, 0xa4, 0x20, 0xa2, 0x1a, 0x1f, 0x11,
+};
+static const unsigned char kat2980_persstr[] = {
+ 0x81, 0x32, 0x18, 0x5d, 0x85, 0x60, 0x86, 0x3c, 0x09, 0xdc, 0xf4, 0x15,
+ 0xea, 0x51, 0xd2, 0x7e,
+};
+static const unsigned char kat2980_entropyinpr1[] = {
+ 0x96, 0xdd, 0x30, 0xf3, 0x3a, 0xea, 0xe0, 0xfd, 0x50, 0xe2, 0xe3, 0xa8,
+ 0x1d, 0x96, 0xf5, 0xd0,
+};
+static const unsigned char kat2980_addinpr1[] = {0};
+static const unsigned char kat2980_entropyinpr2[] = {
+ 0x10, 0x6d, 0x12, 0xcb, 0xf1, 0x24, 0xfe, 0x5c, 0x26, 0x62, 0x89, 0x1c,
+ 0x01, 0xd5, 0x45, 0xce,
+};
+static const unsigned char kat2980_addinpr2[] = {0};
+static const unsigned char kat2980_retbits[] = {
+ 0x51, 0x33, 0x27, 0x8a, 0x9e, 0xd3, 0x0d, 0x18, 0x84, 0xe1, 0x09, 0x64,
+ 0x10, 0x01, 0x98, 0x17, 0x50, 0x9e, 0x82, 0x60, 0x65, 0xf5, 0xeb, 0x91,
+ 0x27, 0x47, 0x12, 0x9b, 0x3c, 0x93, 0xb1, 0x26, 0x97, 0x21, 0xba, 0xce,
+ 0xc4, 0xd1, 0xaf, 0x9b, 0x5e, 0xe2, 0x2f, 0x23, 0x2a, 0x3a, 0x01, 0xe1,
+ 0x1c, 0xe3, 0x93, 0xf1, 0x0e, 0xff, 0xb1, 0x31, 0xb8, 0xcd, 0xda, 0x3c,
+ 0x51, 0x33, 0x50, 0xb5,
+};
+static const struct drbg_kat_pr_true kat2980_t = {
+ 9, kat2980_entropyin, kat2980_nonce, kat2980_persstr,
+ kat2980_entropyinpr1, kat2980_addinpr1, kat2980_entropyinpr2,
+ kat2980_addinpr2, kat2980_retbits
+};
+static const struct drbg_kat kat2980 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2980_t
+};
+
+static const unsigned char kat2981_entropyin[] = {
+ 0xb8, 0x74, 0x18, 0x9f, 0xb6, 0xae, 0x40, 0xfc, 0x45, 0xa7, 0xbe, 0xac,
+ 0x7e, 0x1d, 0xf9, 0xcc,
+};
+static const unsigned char kat2981_nonce[] = {
+ 0x11, 0x93, 0x12, 0xb7, 0x77, 0x0a, 0x49, 0x6b,
+};
+static const unsigned char kat2981_persstr[] = {
+ 0xad, 0xe1, 0x14, 0x92, 0xaa, 0x18, 0x86, 0xed, 0xd9, 0x1c, 0x1a, 0xb5,
+ 0xa3, 0xbe, 0x71, 0xdd,
+};
+static const unsigned char kat2981_entropyinpr1[] = {
+ 0xb6, 0x04, 0x48, 0x99, 0x05, 0x6b, 0xb0, 0x4c, 0x27, 0x47, 0xd0, 0x37,
+ 0xeb, 0xf8, 0x03, 0xda,
+};
+static const unsigned char kat2981_addinpr1[] = {0};
+static const unsigned char kat2981_entropyinpr2[] = {
+ 0x0d, 0x70, 0x4a, 0x06, 0x77, 0xd8, 0xac, 0xb6, 0xcb, 0xff, 0x42, 0xa2,
+ 0xca, 0x64, 0xec, 0x13,
+};
+static const unsigned char kat2981_addinpr2[] = {0};
+static const unsigned char kat2981_retbits[] = {
+ 0x43, 0x30, 0x80, 0x68, 0x08, 0xe0, 0xa1, 0x82, 0x18, 0x1f, 0x6f, 0x0f,
+ 0x95, 0xf5, 0x1a, 0x75, 0x4e, 0x6c, 0x1a, 0x6b, 0x1d, 0xeb, 0x3d, 0x49,
+ 0x0f, 0xd0, 0xad, 0xc0, 0x42, 0xe3, 0xf7, 0xe1, 0x99, 0xf7, 0xa0, 0x85,
+ 0x84, 0xa0, 0x62, 0x2b, 0xd3, 0x87, 0xa2, 0x6c, 0x89, 0xa8, 0x62, 0x5b,
+ 0x76, 0xdd, 0x3d, 0xe8, 0x63, 0x04, 0x0a, 0xd6, 0x17, 0x96, 0xaf, 0x87,
+ 0x31, 0xd9, 0x51, 0xa9,
+};
+static const struct drbg_kat_pr_true kat2981_t = {
+ 10, kat2981_entropyin, kat2981_nonce, kat2981_persstr,
+ kat2981_entropyinpr1, kat2981_addinpr1, kat2981_entropyinpr2,
+ kat2981_addinpr2, kat2981_retbits
+};
+static const struct drbg_kat kat2981 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2981_t
+};
+
+static const unsigned char kat2982_entropyin[] = {
+ 0xea, 0x9d, 0x32, 0x6c, 0xb9, 0xe2, 0xac, 0x1e, 0x84, 0x12, 0xb2, 0xb8,
+ 0xb2, 0x3f, 0x00, 0x2f,
+};
+static const unsigned char kat2982_nonce[] = {
+ 0x03, 0xc0, 0x90, 0x65, 0x4d, 0xfa, 0xcb, 0x54,
+};
+static const unsigned char kat2982_persstr[] = {
+ 0xb8, 0xab, 0x56, 0x45, 0x28, 0x82, 0xab, 0xc8, 0xc4, 0xbf, 0x7c, 0xe7,
+ 0x91, 0x2b, 0x14, 0x33,
+};
+static const unsigned char kat2982_entropyinpr1[] = {
+ 0xdc, 0xcd, 0x0e, 0xf1, 0x93, 0xde, 0x23, 0xbb, 0x1a, 0x2d, 0x86, 0x34,
+ 0x42, 0x0e, 0x64, 0x8b,
+};
+static const unsigned char kat2982_addinpr1[] = {0};
+static const unsigned char kat2982_entropyinpr2[] = {
+ 0xc1, 0x74, 0x11, 0x7b, 0x03, 0x34, 0x0d, 0xf1, 0x7f, 0x2f, 0xc8, 0x7e,
+ 0x24, 0xfd, 0x7c, 0xca,
+};
+static const unsigned char kat2982_addinpr2[] = {0};
+static const unsigned char kat2982_retbits[] = {
+ 0xd4, 0x0e, 0x95, 0x35, 0xd3, 0xd7, 0x03, 0x5d, 0xff, 0x7a, 0x5b, 0xbe,
+ 0x59, 0x18, 0x50, 0x96, 0x4e, 0xdf, 0xeb, 0x98, 0xb0, 0x6c, 0x12, 0x56,
+ 0x26, 0x05, 0xd7, 0x76, 0x62, 0xe5, 0x10, 0x17, 0x65, 0xf7, 0xf7, 0x20,
+ 0x86, 0x05, 0x7a, 0x07, 0xc6, 0x8e, 0xb0, 0xf1, 0x38, 0xbb, 0x48, 0x11,
+ 0xa3, 0x33, 0xa8, 0x49, 0xf2, 0x16, 0x38, 0x30, 0xc7, 0x1f, 0xe3, 0xcb,
+ 0x3f, 0x63, 0xc8, 0xab,
+};
+static const struct drbg_kat_pr_true kat2982_t = {
+ 11, kat2982_entropyin, kat2982_nonce, kat2982_persstr,
+ kat2982_entropyinpr1, kat2982_addinpr1, kat2982_entropyinpr2,
+ kat2982_addinpr2, kat2982_retbits
+};
+static const struct drbg_kat kat2982 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2982_t
+};
+
+static const unsigned char kat2983_entropyin[] = {
+ 0xdf, 0xf4, 0xc5, 0x37, 0x6b, 0xe3, 0x36, 0xf1, 0xa8, 0x61, 0xab, 0x58,
+ 0xf9, 0xca, 0x6f, 0xf5,
+};
+static const unsigned char kat2983_nonce[] = {
+ 0xf7, 0x86, 0x90, 0xf5, 0x07, 0xfd, 0x71, 0xa5,
+};
+static const unsigned char kat2983_persstr[] = {
+ 0xb1, 0xf9, 0xc1, 0x0b, 0xfd, 0x1f, 0xc5, 0x0e, 0xd7, 0x0b, 0x37, 0x0e,
+ 0xd8, 0xfc, 0x9c, 0x8c,
+};
+static const unsigned char kat2983_entropyinpr1[] = {
+ 0xf2, 0x3a, 0xab, 0x61, 0xe6, 0x79, 0xe3, 0xec, 0x8e, 0xe0, 0x83, 0x07,
+ 0x27, 0x62, 0x2d, 0x38,
+};
+static const unsigned char kat2983_addinpr1[] = {0};
+static const unsigned char kat2983_entropyinpr2[] = {
+ 0x09, 0x6d, 0xdb, 0x8a, 0xae, 0x13, 0x0c, 0x15, 0x37, 0x93, 0x73, 0xfd,
+ 0xb4, 0x9e, 0xed, 0xe4,
+};
+static const unsigned char kat2983_addinpr2[] = {0};
+static const unsigned char kat2983_retbits[] = {
+ 0x95, 0x69, 0x83, 0xf9, 0x65, 0x39, 0x31, 0x59, 0x5c, 0x04, 0x59, 0x02,
+ 0x51, 0x08, 0xa7, 0xae, 0xf1, 0x3f, 0x1d, 0xde, 0xce, 0x8a, 0x46, 0xb5,
+ 0x0f, 0x4f, 0x22, 0xb7, 0x5f, 0x62, 0x8e, 0x74, 0xc7, 0x64, 0x21, 0x19,
+ 0x19, 0xff, 0x06, 0xc9, 0xd1, 0xf1, 0xf8, 0xd5, 0x10, 0x7d, 0x68, 0x42,
+ 0xaa, 0x37, 0x4a, 0x47, 0xca, 0x03, 0x3a, 0xd9, 0x02, 0xac, 0x2c, 0xe7,
+ 0x8f, 0xe8, 0x94, 0xa2,
+};
+static const struct drbg_kat_pr_true kat2983_t = {
+ 12, kat2983_entropyin, kat2983_nonce, kat2983_persstr,
+ kat2983_entropyinpr1, kat2983_addinpr1, kat2983_entropyinpr2,
+ kat2983_addinpr2, kat2983_retbits
+};
+static const struct drbg_kat kat2983 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2983_t
+};
+
+static const unsigned char kat2984_entropyin[] = {
+ 0x07, 0x29, 0x97, 0xea, 0x02, 0x39, 0xb0, 0x77, 0x60, 0x26, 0x18, 0x7e,
+ 0xb7, 0x58, 0xa5, 0x38,
+};
+static const unsigned char kat2984_nonce[] = {
+ 0x2a, 0x54, 0x74, 0x75, 0xc2, 0x35, 0xe4, 0x3f,
+};
+static const unsigned char kat2984_persstr[] = {
+ 0x37, 0xb2, 0xf8, 0x18, 0xc8, 0x0e, 0x77, 0x6e, 0xe8, 0xea, 0xe4, 0x93,
+ 0xc0, 0xdf, 0xf1, 0x80,
+};
+static const unsigned char kat2984_entropyinpr1[] = {
+ 0x10, 0xf8, 0xa9, 0x83, 0x83, 0xa4, 0x5a, 0x3d, 0x76, 0xc8, 0x7c, 0xb6,
+ 0x1f, 0xec, 0x82, 0x7e,
+};
+static const unsigned char kat2984_addinpr1[] = {0};
+static const unsigned char kat2984_entropyinpr2[] = {
+ 0x77, 0xa9, 0x54, 0x71, 0x3b, 0xa0, 0x44, 0x85, 0x15, 0x64, 0xbf, 0x96,
+ 0xd6, 0x64, 0x0f, 0xe8,
+};
+static const unsigned char kat2984_addinpr2[] = {0};
+static const unsigned char kat2984_retbits[] = {
+ 0x40, 0x9a, 0x70, 0x34, 0x36, 0x2e, 0x74, 0x26, 0x9b, 0xcd, 0x91, 0x8a,
+ 0xec, 0x93, 0xa4, 0xf1, 0xf1, 0xeb, 0x23, 0xb2, 0xb4, 0x97, 0xff, 0x0a,
+ 0xd1, 0xc9, 0x60, 0x68, 0x48, 0x44, 0xda, 0x2a, 0x18, 0x6e, 0x47, 0x3a,
+ 0x8f, 0xbe, 0xc3, 0xfe, 0xef, 0x80, 0x03, 0x29, 0x9b, 0x8c, 0xaf, 0xf7,
+ 0x23, 0xe1, 0xb3, 0x21, 0x2d, 0xf7, 0x9a, 0x71, 0xdc, 0xa5, 0xaf, 0x97,
+ 0xe3, 0x2c, 0x05, 0xaf,
+};
+static const struct drbg_kat_pr_true kat2984_t = {
+ 13, kat2984_entropyin, kat2984_nonce, kat2984_persstr,
+ kat2984_entropyinpr1, kat2984_addinpr1, kat2984_entropyinpr2,
+ kat2984_addinpr2, kat2984_retbits
+};
+static const struct drbg_kat kat2984 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2984_t
+};
+
+static const unsigned char kat2985_entropyin[] = {
+ 0x0c, 0x45, 0xd7, 0x4b, 0xd2, 0x62, 0x6a, 0x07, 0xb4, 0x79, 0x38, 0x77,
+ 0x92, 0xa8, 0xab, 0x83,
+};
+static const unsigned char kat2985_nonce[] = {
+ 0x07, 0xb5, 0x0e, 0xcd, 0x33, 0x70, 0x86, 0x0d,
+};
+static const unsigned char kat2985_persstr[] = {
+ 0xcb, 0x3f, 0x39, 0x79, 0x0f, 0xe2, 0x9e, 0xb8, 0x62, 0x62, 0x2b, 0x5a,
+ 0xe4, 0xc0, 0xf0, 0xd7,
+};
+static const unsigned char kat2985_entropyinpr1[] = {
+ 0xa3, 0xf5, 0x05, 0xe0, 0x07, 0x3a, 0xe4, 0x8d, 0xda, 0xe9, 0x40, 0x19,
+ 0x8f, 0x72, 0x3d, 0x5c,
+};
+static const unsigned char kat2985_addinpr1[] = {0};
+static const unsigned char kat2985_entropyinpr2[] = {
+ 0xc7, 0x4e, 0xe2, 0x8f, 0xdb, 0x81, 0x39, 0x59, 0xa7, 0xb8, 0x36, 0xfb,
+ 0x02, 0x4f, 0xa7, 0x95,
+};
+static const unsigned char kat2985_addinpr2[] = {0};
+static const unsigned char kat2985_retbits[] = {
+ 0x2a, 0x68, 0x87, 0x12, 0x36, 0x00, 0x1a, 0xf9, 0xd1, 0x15, 0x49, 0x84,
+ 0xfd, 0xa1, 0xa9, 0xfc, 0x3d, 0x80, 0x80, 0x5f, 0xd3, 0x97, 0x24, 0x09,
+ 0x27, 0xc5, 0xae, 0xdf, 0xf5, 0xdf, 0xe0, 0x53, 0xfc, 0x26, 0x91, 0xe8,
+ 0x9d, 0x53, 0x7b, 0x6f, 0xd2, 0xd8, 0x3b, 0x54, 0x21, 0xd5, 0x34, 0x53,
+ 0x9f, 0xf5, 0x6b, 0x48, 0xfa, 0x39, 0xdd, 0xc0, 0x90, 0xf6, 0x58, 0xf6,
+ 0xc1, 0xab, 0x88, 0xad,
+};
+static const struct drbg_kat_pr_true kat2985_t = {
+ 14, kat2985_entropyin, kat2985_nonce, kat2985_persstr,
+ kat2985_entropyinpr1, kat2985_addinpr1, kat2985_entropyinpr2,
+ kat2985_addinpr2, kat2985_retbits
+};
+static const struct drbg_kat kat2985 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat2985_t
+};
+
+static const unsigned char kat2986_entropyin[] = {
+ 0x0b, 0x02, 0x60, 0xd0, 0x2c, 0xb7, 0x9f, 0xb2, 0xad, 0xa4, 0xd0, 0xdf,
+ 0x88, 0xcb, 0x32, 0x48,
+};
+static const unsigned char kat2986_nonce[] = {
+ 0xde, 0x13, 0xd8, 0x59, 0x66, 0x8e, 0x49, 0xb3,
+};
+static const unsigned char kat2986_persstr[] = {
+ 0x91, 0x2b, 0x15, 0x12, 0xe6, 0x4d, 0xbd, 0xac, 0x5d, 0xa9, 0x80, 0x08,
+ 0xfa, 0x77, 0x1b, 0xc5,
+};
+static const unsigned char kat2986_entropyinpr1[] = {
+ 0x5e, 0x2c, 0x67, 0xc9, 0x0d, 0x83, 0x12, 0xfd, 0xc5, 0x19, 0xa6, 0x25,
+ 0xa0, 0xb7, 0xed, 0x7b,
+};
+static const unsigned char kat2986_addinpr1[] = {
+ 0x69, 0xc8, 0x5a, 0x47, 0x12, 0x6f, 0xf9, 0x30, 0x68, 0x5c, 0x8c, 0xaf,
+ 0x6c, 0x56, 0xb9, 0x17,
+};
+static const unsigned char kat2986_entropyinpr2[] = {
+ 0x10, 0xdd, 0x71, 0xab, 0x4e, 0x03, 0x7f, 0xc2, 0x92, 0xeb, 0x23, 0xe1,
+ 0xb3, 0xc0, 0x0b, 0xf1,
+};
+static const unsigned char kat2986_addinpr2[] = {
+ 0x51, 0xe9, 0xd4, 0xae, 0x6b, 0xfa, 0xc0, 0x2f, 0x97, 0x02, 0x39, 0x54,
+ 0x54, 0x5b, 0x6e, 0x36,
+};
+static const unsigned char kat2986_retbits[] = {
+ 0x2c, 0x06, 0xee, 0x22, 0xf7, 0xcf, 0x62, 0xcf, 0x70, 0x9c, 0x12, 0x3e,
+ 0xa0, 0xc2, 0x52, 0x59, 0x17, 0x2f, 0x0c, 0xd8, 0x30, 0x7a, 0xfd, 0xb8,
+ 0xb3, 0xbb, 0xc2, 0x81, 0xac, 0xc8, 0x5a, 0xed, 0x7a, 0xff, 0x8e, 0xd9,
+ 0xfa, 0xb6, 0x32, 0xf4, 0xd0, 0x78, 0x36, 0x6d, 0x55, 0x74, 0x80, 0xb9,
+ 0xb8, 0xc9, 0xb7, 0xae, 0xa1, 0xb0, 0x92, 0x0d, 0x6c, 0x2a, 0x78, 0x4c,
+ 0xfe, 0x72, 0xc7, 0x57,
+};
+static const struct drbg_kat_pr_true kat2986_t = {
+ 0, kat2986_entropyin, kat2986_nonce, kat2986_persstr,
+ kat2986_entropyinpr1, kat2986_addinpr1, kat2986_entropyinpr2,
+ kat2986_addinpr2, kat2986_retbits
+};
+static const struct drbg_kat kat2986 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2986_t
+};
+
+static const unsigned char kat2987_entropyin[] = {
+ 0xde, 0x37, 0x31, 0xfb, 0xc0, 0x96, 0x22, 0x7d, 0x77, 0xda, 0xd8, 0x08,
+ 0xe1, 0x09, 0xb8, 0x46,
+};
+static const unsigned char kat2987_nonce[] = {
+ 0xf0, 0xd3, 0x1b, 0x93, 0x89, 0x1f, 0xce, 0xb7,
+};
+static const unsigned char kat2987_persstr[] = {
+ 0x3a, 0x1e, 0x1d, 0x3d, 0xac, 0x88, 0xa6, 0xee, 0x5b, 0xb1, 0x66, 0x1e,
+ 0xb7, 0x27, 0xb7, 0xd3,
+};
+static const unsigned char kat2987_entropyinpr1[] = {
+ 0x69, 0xb4, 0xa2, 0x02, 0x9c, 0x25, 0xbd, 0x21, 0x73, 0x84, 0xf7, 0x5a,
+ 0xe0, 0x39, 0xf2, 0xab,
+};
+static const unsigned char kat2987_addinpr1[] = {
+ 0x18, 0x9d, 0x25, 0x8d, 0xbc, 0x1c, 0xb1, 0x7c, 0x94, 0xaa, 0xf6, 0x36,
+ 0xcb, 0xf4, 0x36, 0xe8,
+};
+static const unsigned char kat2987_entropyinpr2[] = {
+ 0x76, 0xce, 0x34, 0x3d, 0x17, 0x34, 0x73, 0xe4, 0xd4, 0xcc, 0xa8, 0xf4,
+ 0x9d, 0xbb, 0x22, 0xb1,
+};
+static const unsigned char kat2987_addinpr2[] = {
+ 0x84, 0x47, 0xc2, 0x5b, 0x7f, 0x4e, 0xea, 0xe3, 0xd8, 0x1b, 0x45, 0x77,
+ 0x44, 0x2c, 0xd7, 0x9a,
+};
+static const unsigned char kat2987_retbits[] = {
+ 0x3c, 0x61, 0xfd, 0x32, 0xf5, 0xde, 0xc3, 0xd3, 0x74, 0x30, 0x45, 0x34,
+ 0x55, 0x8c, 0x96, 0xd6, 0x41, 0xb1, 0x17, 0x5d, 0xfb, 0x92, 0x43, 0x17,
+ 0xfc, 0x2d, 0xb7, 0xc1, 0xd9, 0xfb, 0x74, 0x6c, 0xee, 0xba, 0xc4, 0x99,
+ 0x69, 0x59, 0x0f, 0x6b, 0x53, 0xb8, 0xc6, 0x84, 0xe9, 0xce, 0x5b, 0xc7,
+ 0x62, 0x88, 0xd3, 0xa1, 0x4b, 0xcb, 0x3d, 0xa1, 0xad, 0x62, 0x11, 0xa3,
+ 0x84, 0xd9, 0x55, 0xc9,
+};
+static const struct drbg_kat_pr_true kat2987_t = {
+ 1, kat2987_entropyin, kat2987_nonce, kat2987_persstr,
+ kat2987_entropyinpr1, kat2987_addinpr1, kat2987_entropyinpr2,
+ kat2987_addinpr2, kat2987_retbits
+};
+static const struct drbg_kat kat2987 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2987_t
+};
+
+static const unsigned char kat2988_entropyin[] = {
+ 0xdf, 0xc2, 0x39, 0x59, 0x2a, 0x01, 0xf0, 0x5b, 0x60, 0xdd, 0x86, 0x2b,
+ 0x2b, 0xb2, 0xaf, 0x90,
+};
+static const unsigned char kat2988_nonce[] = {
+ 0xbb, 0x96, 0xba, 0xc6, 0xe5, 0xb0, 0x9d, 0xfe,
+};
+static const unsigned char kat2988_persstr[] = {
+ 0xa9, 0xb1, 0x47, 0xb7, 0x3b, 0x0c, 0xe8, 0xbb, 0xec, 0x43, 0x9c, 0x47,
+ 0x51, 0xa9, 0x20, 0x9b,
+};
+static const unsigned char kat2988_entropyinpr1[] = {
+ 0xcc, 0xed, 0x1e, 0x29, 0x6e, 0x4b, 0x59, 0xc1, 0x5c, 0xc9, 0xc8, 0xd9,
+ 0xe9, 0xcb, 0x23, 0x7f,
+};
+static const unsigned char kat2988_addinpr1[] = {
+ 0x6b, 0xee, 0x10, 0xee, 0x0f, 0x37, 0xe9, 0xc4, 0x9c, 0x0c, 0x58, 0x01,
+ 0x77, 0x49, 0x3a, 0xdc,
+};
+static const unsigned char kat2988_entropyinpr2[] = {
+ 0x0c, 0x0c, 0xe8, 0xf4, 0x7b, 0xbd, 0x84, 0x8d, 0xa0, 0xef, 0x22, 0x06,
+ 0x42, 0x69, 0x08, 0xc8,
+};
+static const unsigned char kat2988_addinpr2[] = {
+ 0x58, 0xf8, 0x51, 0x30, 0x26, 0x52, 0x65, 0xbd, 0xc4, 0x15, 0x44, 0x6a,
+ 0x3a, 0x27, 0xfe, 0x39,
+};
+static const unsigned char kat2988_retbits[] = {
+ 0xa1, 0x88, 0x3b, 0xef, 0x8a, 0xd9, 0x24, 0x40, 0xd9, 0x54, 0x5d, 0xe9,
+ 0x14, 0x69, 0x1a, 0x25, 0x27, 0xab, 0x5e, 0x6b, 0xc9, 0xe8, 0xdb, 0xa6,
+ 0xeb, 0xc7, 0x3e, 0xbc, 0x2e, 0xf2, 0x65, 0xa3, 0x01, 0x1b, 0x71, 0xd4,
+ 0x76, 0x36, 0x69, 0x12, 0x36, 0x95, 0x3d, 0xbd, 0xb3, 0xfe, 0xb2, 0x63,
+ 0x25, 0x88, 0x4b, 0xa5, 0xc8, 0x11, 0x51, 0xe4, 0xf4, 0x10, 0xe4, 0x1f,
+ 0x5e, 0x23, 0xb4, 0x59,
+};
+static const struct drbg_kat_pr_true kat2988_t = {
+ 2, kat2988_entropyin, kat2988_nonce, kat2988_persstr,
+ kat2988_entropyinpr1, kat2988_addinpr1, kat2988_entropyinpr2,
+ kat2988_addinpr2, kat2988_retbits
+};
+static const struct drbg_kat kat2988 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2988_t
+};
+
+static const unsigned char kat2989_entropyin[] = {
+ 0x75, 0xc5, 0x92, 0xeb, 0xad, 0x8a, 0x80, 0x41, 0x3a, 0x37, 0x6b, 0x03,
+ 0x67, 0xce, 0x42, 0x42,
+};
+static const unsigned char kat2989_nonce[] = {
+ 0x8a, 0x8c, 0x68, 0xac, 0xf8, 0xc1, 0x6e, 0x64,
+};
+static const unsigned char kat2989_persstr[] = {
+ 0xc3, 0x2d, 0xaa, 0x40, 0xd0, 0x3e, 0xbc, 0x4e, 0x3f, 0xea, 0x25, 0xdf,
+ 0xac, 0x4a, 0xc2, 0xdd,
+};
+static const unsigned char kat2989_entropyinpr1[] = {
+ 0xd7, 0xc1, 0x16, 0xd7, 0x4a, 0xb6, 0x68, 0xbd, 0x84, 0x46, 0x30, 0xf3,
+ 0x0d, 0x54, 0x5a, 0x51,
+};
+static const unsigned char kat2989_addinpr1[] = {
+ 0xf3, 0xac, 0x8b, 0x16, 0xe5, 0x4c, 0x64, 0xda, 0xe3, 0x33, 0x43, 0x06,
+ 0x05, 0x79, 0x42, 0x4e,
+};
+static const unsigned char kat2989_entropyinpr2[] = {
+ 0x0a, 0xe6, 0xc4, 0x14, 0x2e, 0xf8, 0xaf, 0xf5, 0x52, 0x67, 0x75, 0xbf,
+ 0x36, 0x3b, 0x92, 0xce,
+};
+static const unsigned char kat2989_addinpr2[] = {
+ 0xc1, 0xdb, 0x51, 0x8d, 0x0e, 0x4d, 0x53, 0x9c, 0x78, 0xb4, 0x41, 0x30,
+ 0x04, 0x4f, 0xc4, 0x7a,
+};
+static const unsigned char kat2989_retbits[] = {
+ 0x84, 0x69, 0x2d, 0xef, 0x2f, 0x71, 0xd5, 0x34, 0x19, 0xdb, 0x38, 0xf9,
+ 0xf3, 0x67, 0x90, 0xfb, 0x1e, 0xfa, 0x31, 0xb9, 0x60, 0x7c, 0x5d, 0x94,
+ 0xe0, 0x49, 0x76, 0x38, 0xd7, 0x9f, 0xde, 0xae, 0xa2, 0x5f, 0xe6, 0x60,
+ 0xdf, 0xff, 0x95, 0xa9, 0x4e, 0x00, 0x94, 0x4c, 0x53, 0xa1, 0x8f, 0x3c,
+ 0xe5, 0x57, 0xca, 0x1b, 0xd7, 0x1c, 0x77, 0xca, 0xa4, 0xda, 0xcf, 0x3c,
+ 0x18, 0x38, 0xb9, 0x4a,
+};
+static const struct drbg_kat_pr_true kat2989_t = {
+ 3, kat2989_entropyin, kat2989_nonce, kat2989_persstr,
+ kat2989_entropyinpr1, kat2989_addinpr1, kat2989_entropyinpr2,
+ kat2989_addinpr2, kat2989_retbits
+};
+static const struct drbg_kat kat2989 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2989_t
+};
+
+static const unsigned char kat2990_entropyin[] = {
+ 0x1a, 0x61, 0xe0, 0xac, 0x82, 0xb5, 0x35, 0xee, 0x84, 0x41, 0x2c, 0xee,
+ 0x08, 0x4e, 0x4c, 0xca,
+};
+static const unsigned char kat2990_nonce[] = {
+ 0xa4, 0xd0, 0xf9, 0xcc, 0x0c, 0xc8, 0xdf, 0x48,
+};
+static const unsigned char kat2990_persstr[] = {
+ 0xf5, 0x70, 0x93, 0xd4, 0x37, 0x32, 0x92, 0xb3, 0xc3, 0x4a, 0x74, 0xdc,
+ 0xb7, 0x2e, 0x5a, 0x10,
+};
+static const unsigned char kat2990_entropyinpr1[] = {
+ 0xb9, 0xe9, 0x15, 0x3e, 0xa2, 0x53, 0x7a, 0x91, 0x4d, 0xb3, 0x5b, 0xd1,
+ 0x1d, 0x0d, 0xc5, 0x04,
+};
+static const unsigned char kat2990_addinpr1[] = {
+ 0x91, 0xc7, 0x8c, 0x51, 0xa9, 0x6f, 0xed, 0x59, 0xeb, 0x9d, 0xd5, 0x99,
+ 0x85, 0x02, 0x06, 0xa8,
+};
+static const unsigned char kat2990_entropyinpr2[] = {
+ 0xfb, 0x50, 0x2d, 0xa3, 0xc8, 0xb0, 0x97, 0xf2, 0xe6, 0xfc, 0x22, 0x5b,
+ 0x6a, 0x71, 0xa2, 0x39,
+};
+static const unsigned char kat2990_addinpr2[] = {
+ 0x1e, 0x60, 0x4b, 0x04, 0xb1, 0xd8, 0x3b, 0xda, 0x4f, 0x06, 0x8f, 0xa2,
+ 0x95, 0xcb, 0xbf, 0xbf,
+};
+static const unsigned char kat2990_retbits[] = {
+ 0x27, 0xd1, 0x6d, 0xbc, 0x60, 0xd5, 0xf0, 0xb9, 0xe5, 0x9c, 0x99, 0xa1,
+ 0x11, 0x78, 0x32, 0x4f, 0xfc, 0xa9, 0x14, 0x54, 0x88, 0x69, 0x21, 0x72,
+ 0x95, 0xe8, 0xd0, 0x01, 0xba, 0x62, 0xcd, 0xed, 0xd7, 0xed, 0x93, 0x3d,
+ 0x1d, 0xdc, 0xa2, 0x1e, 0x5b, 0x59, 0x2d, 0x0a, 0xb6, 0x92, 0xdf, 0xa0,
+ 0x7e, 0x5b, 0xf3, 0x89, 0x5a, 0x3b, 0x36, 0x88, 0xab, 0x1e, 0xbd, 0xfa,
+ 0xbd, 0x3e, 0xb1, 0xf5,
+};
+static const struct drbg_kat_pr_true kat2990_t = {
+ 4, kat2990_entropyin, kat2990_nonce, kat2990_persstr,
+ kat2990_entropyinpr1, kat2990_addinpr1, kat2990_entropyinpr2,
+ kat2990_addinpr2, kat2990_retbits
+};
+static const struct drbg_kat kat2990 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2990_t
+};
+
+static const unsigned char kat2991_entropyin[] = {
+ 0x4c, 0x8f, 0x65, 0x7c, 0xca, 0xff, 0x6c, 0x95, 0xbb, 0xfd, 0x4f, 0xc8,
+ 0x76, 0x17, 0x13, 0x96,
+};
+static const unsigned char kat2991_nonce[] = {
+ 0x1c, 0xab, 0xfe, 0xf9, 0xb1, 0x47, 0xe3, 0xa2,
+};
+static const unsigned char kat2991_persstr[] = {
+ 0x78, 0x1f, 0x0a, 0x06, 0xc0, 0x13, 0xff, 0x3a, 0x3f, 0x59, 0x19, 0xda,
+ 0xa4, 0xa1, 0x86, 0x52,
+};
+static const unsigned char kat2991_entropyinpr1[] = {
+ 0xe2, 0xf4, 0xf9, 0x76, 0x2d, 0x34, 0x0b, 0xae, 0x6d, 0xc0, 0xea, 0x4f,
+ 0xa3, 0x19, 0xb7, 0x54,
+};
+static const unsigned char kat2991_addinpr1[] = {
+ 0xa7, 0x0b, 0xbe, 0xf8, 0xf0, 0xb3, 0xcb, 0xf3, 0xde, 0xf0, 0x63, 0xf9,
+ 0x17, 0x29, 0x02, 0x6f,
+};
+static const unsigned char kat2991_entropyinpr2[] = {
+ 0xb9, 0xb7, 0xd9, 0x3b, 0xa0, 0x89, 0xe7, 0x1c, 0xa5, 0x97, 0x09, 0x0b,
+ 0x60, 0x38, 0xb6, 0x0f,
+};
+static const unsigned char kat2991_addinpr2[] = {
+ 0x9b, 0x3c, 0x8e, 0xce, 0xbe, 0x74, 0xa3, 0x84, 0x6f, 0x6e, 0xb4, 0x3c,
+ 0x1c, 0xfc, 0x51, 0xdf,
+};
+static const unsigned char kat2991_retbits[] = {
+ 0xc4, 0x58, 0x8e, 0xfb, 0x82, 0xc2, 0xce, 0x59, 0x13, 0x58, 0xab, 0xbe,
+ 0x2a, 0xab, 0x71, 0xd9, 0xf2, 0xad, 0x3c, 0xfa, 0x32, 0x77, 0x82, 0xed,
+ 0x94, 0xcf, 0x36, 0x67, 0xce, 0xf2, 0xa5, 0x21, 0x4d, 0x74, 0x43, 0x38,
+ 0xd3, 0xf4, 0x0b, 0x21, 0x90, 0x64, 0x7f, 0x49, 0xe4, 0x82, 0x38, 0x6d,
+ 0x79, 0x78, 0x92, 0x55, 0x93, 0x58, 0x16, 0x7b, 0x51, 0x74, 0x27, 0x14,
+ 0xc2, 0x7c, 0xf6, 0x09,
+};
+static const struct drbg_kat_pr_true kat2991_t = {
+ 5, kat2991_entropyin, kat2991_nonce, kat2991_persstr,
+ kat2991_entropyinpr1, kat2991_addinpr1, kat2991_entropyinpr2,
+ kat2991_addinpr2, kat2991_retbits
+};
+static const struct drbg_kat kat2991 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2991_t
+};
+
+static const unsigned char kat2992_entropyin[] = {
+ 0x89, 0x16, 0xda, 0x70, 0x5a, 0x02, 0x2c, 0x84, 0xec, 0x5e, 0xb2, 0x4e,
+ 0x8f, 0xe9, 0x9d, 0x33,
+};
+static const unsigned char kat2992_nonce[] = {
+ 0xa7, 0x96, 0xce, 0x9d, 0xf2, 0x7e, 0x0b, 0xae,
+};
+static const unsigned char kat2992_persstr[] = {
+ 0x29, 0x74, 0x64, 0x1b, 0x85, 0x1c, 0x4b, 0x9d, 0x09, 0xb1, 0x85, 0xd5,
+ 0xa7, 0x97, 0x8d, 0x84,
+};
+static const unsigned char kat2992_entropyinpr1[] = {
+ 0xad, 0x12, 0xf9, 0xfb, 0xdf, 0x24, 0xff, 0x6a, 0x8d, 0x1b, 0x26, 0xc7,
+ 0xbf, 0x14, 0x00, 0xdf,
+};
+static const unsigned char kat2992_addinpr1[] = {
+ 0x0b, 0x8c, 0x49, 0x39, 0x14, 0x16, 0x6a, 0xa7, 0x6d, 0xc4, 0x84, 0xea,
+ 0x45, 0x41, 0x48, 0xc6,
+};
+static const unsigned char kat2992_entropyinpr2[] = {
+ 0xf2, 0xa7, 0x58, 0xe5, 0x00, 0xaf, 0xd3, 0xd4, 0xb6, 0x05, 0x7f, 0x50,
+ 0x6c, 0x24, 0x4c, 0xfa,
+};
+static const unsigned char kat2992_addinpr2[] = {
+ 0xda, 0xfb, 0x20, 0x7d, 0xf9, 0xec, 0xf4, 0x8f, 0x15, 0x9e, 0xe8, 0x65,
+ 0xe0, 0x4d, 0x17, 0xce,
+};
+static const unsigned char kat2992_retbits[] = {
+ 0x9e, 0xec, 0x1d, 0x1b, 0x47, 0x1a, 0x68, 0x14, 0x60, 0xd3, 0x40, 0xf3,
+ 0x59, 0x05, 0xab, 0x0f, 0x72, 0xa2, 0xb6, 0x0c, 0x7d, 0x14, 0x68, 0x3a,
+ 0xd6, 0x60, 0xd8, 0x4f, 0xf9, 0xc8, 0x48, 0x06, 0x57, 0xe1, 0xbd, 0xd8,
+ 0x99, 0x62, 0xc5, 0xdf, 0x90, 0x43, 0x62, 0xc2, 0xd0, 0xc4, 0xd9, 0xc1,
+ 0x19, 0x84, 0x20, 0x69, 0xef, 0x9d, 0x6a, 0x27, 0x43, 0xf0, 0x37, 0x9f,
+ 0xc8, 0x62, 0x78, 0x24,
+};
+static const struct drbg_kat_pr_true kat2992_t = {
+ 6, kat2992_entropyin, kat2992_nonce, kat2992_persstr,
+ kat2992_entropyinpr1, kat2992_addinpr1, kat2992_entropyinpr2,
+ kat2992_addinpr2, kat2992_retbits
+};
+static const struct drbg_kat kat2992 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2992_t
+};
+
+static const unsigned char kat2993_entropyin[] = {
+ 0xde, 0xc3, 0xf5, 0x1b, 0x89, 0x7a, 0x45, 0xbf, 0x0c, 0x81, 0xac, 0x31,
+ 0xda, 0x38, 0xe7, 0xab,
+};
+static const unsigned char kat2993_nonce[] = {
+ 0x91, 0x49, 0x7f, 0xe7, 0x89, 0xc7, 0x07, 0xa0,
+};
+static const unsigned char kat2993_persstr[] = {
+ 0x2a, 0x2c, 0x90, 0x88, 0xea, 0x5d, 0x70, 0xc3, 0x3e, 0x48, 0x8f, 0x67,
+ 0x6d, 0xfd, 0x7c, 0xd2,
+};
+static const unsigned char kat2993_entropyinpr1[] = {
+ 0x1c, 0x0c, 0xe6, 0xe3, 0x70, 0x23, 0x5b, 0xf5, 0x08, 0x7d, 0x5b, 0x17,
+ 0xcc, 0x5b, 0x57, 0x40,
+};
+static const unsigned char kat2993_addinpr1[] = {
+ 0xd8, 0xb1, 0x4a, 0x81, 0x95, 0xd9, 0xf8, 0x49, 0x73, 0x75, 0xfa, 0x5e,
+ 0xdd, 0x84, 0x27, 0x3d,
+};
+static const unsigned char kat2993_entropyinpr2[] = {
+ 0xda, 0xaf, 0x3c, 0xb9, 0x1a, 0x7b, 0xf4, 0x31, 0xd7, 0x41, 0x97, 0x68,
+ 0x3a, 0x6d, 0x56, 0x43,
+};
+static const unsigned char kat2993_addinpr2[] = {
+ 0x20, 0xb1, 0x6a, 0x87, 0x16, 0xae, 0x26, 0xb3, 0x55, 0x4c, 0xc0, 0x31,
+ 0xdc, 0xa3, 0xbd, 0xe6,
+};
+static const unsigned char kat2993_retbits[] = {
+ 0xc4, 0xbf, 0xd4, 0x53, 0xc3, 0xa9, 0x98, 0x4c, 0x1d, 0x9c, 0xde, 0xa2,
+ 0xfd, 0x7c, 0x18, 0xae, 0x45, 0x25, 0xa7, 0xf6, 0xc3, 0x26, 0xf6, 0x6e,
+ 0x84, 0xab, 0x9c, 0xae, 0x05, 0x59, 0x9f, 0xdb, 0xda, 0xef, 0x31, 0x5a,
+ 0x72, 0xed, 0x6c, 0xa4, 0x4e, 0x6c, 0xfe, 0x45, 0x56, 0x2f, 0x84, 0x21,
+ 0x0f, 0x4b, 0x65, 0x12, 0x81, 0x24, 0x4f, 0x6d, 0x01, 0x35, 0xb8, 0xe7,
+ 0xe7, 0x21, 0xf7, 0x04,
+};
+static const struct drbg_kat_pr_true kat2993_t = {
+ 7, kat2993_entropyin, kat2993_nonce, kat2993_persstr,
+ kat2993_entropyinpr1, kat2993_addinpr1, kat2993_entropyinpr2,
+ kat2993_addinpr2, kat2993_retbits
+};
+static const struct drbg_kat kat2993 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2993_t
+};
+
+static const unsigned char kat2994_entropyin[] = {
+ 0x98, 0xba, 0x06, 0x2d, 0x3e, 0x5d, 0x89, 0x74, 0x18, 0x55, 0xe7, 0xaa,
+ 0xc3, 0xe2, 0x98, 0xa5,
+};
+static const unsigned char kat2994_nonce[] = {
+ 0x98, 0x58, 0x20, 0x9b, 0x17, 0x65, 0xcf, 0x81,
+};
+static const unsigned char kat2994_persstr[] = {
+ 0x68, 0x6b, 0x1b, 0xe2, 0xc9, 0xbc, 0x57, 0x21, 0xbc, 0x2f, 0xa8, 0xfc,
+ 0x07, 0x12, 0x05, 0x10,
+};
+static const unsigned char kat2994_entropyinpr1[] = {
+ 0x74, 0xdd, 0x28, 0x23, 0xe0, 0x34, 0xdd, 0xce, 0x4b, 0xd3, 0x22, 0xfd,
+ 0x3f, 0x77, 0x9a, 0x83,
+};
+static const unsigned char kat2994_addinpr1[] = {
+ 0xe4, 0xe2, 0xd0, 0x19, 0xa1, 0xd5, 0xf8, 0x0f, 0x67, 0x22, 0x38, 0x53,
+ 0x78, 0x2f, 0x57, 0xde,
+};
+static const unsigned char kat2994_entropyinpr2[] = {
+ 0x11, 0x8a, 0x96, 0xeb, 0xa9, 0x19, 0x06, 0x16, 0x7d, 0xd3, 0xd6, 0x31,
+ 0xe2, 0x91, 0x10, 0x0c,
+};
+static const unsigned char kat2994_addinpr2[] = {
+ 0x73, 0xf8, 0x3a, 0xa5, 0xf7, 0x81, 0x4e, 0x5f, 0x61, 0xe1, 0xc4, 0xaa,
+ 0xb1, 0xa4, 0x51, 0x6e,
+};
+static const unsigned char kat2994_retbits[] = {
+ 0xca, 0x5b, 0x2a, 0x08, 0xe4, 0xd1, 0xec, 0x0e, 0x70, 0x49, 0x7e, 0x49,
+ 0x24, 0xbf, 0x83, 0xd1, 0x1d, 0xf7, 0xe2, 0xf8, 0xbb, 0x65, 0x19, 0xf2,
+ 0x20, 0xee, 0x0b, 0xe7, 0xec, 0x90, 0xdf, 0xe8, 0x8f, 0xaf, 0x0e, 0x48,
+ 0x90, 0x9d, 0xe1, 0x81, 0x0d, 0x45, 0xb1, 0x62, 0xdb, 0x5a, 0x6d, 0x17,
+ 0x19, 0x37, 0x94, 0x3e, 0xd3, 0x90, 0x65, 0x5c, 0x1f, 0xf0, 0x58, 0x0b,
+ 0x55, 0xea, 0x39, 0xc0,
+};
+static const struct drbg_kat_pr_true kat2994_t = {
+ 8, kat2994_entropyin, kat2994_nonce, kat2994_persstr,
+ kat2994_entropyinpr1, kat2994_addinpr1, kat2994_entropyinpr2,
+ kat2994_addinpr2, kat2994_retbits
+};
+static const struct drbg_kat kat2994 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2994_t
+};
+
+static const unsigned char kat2995_entropyin[] = {
+ 0xd2, 0x4a, 0x7a, 0x21, 0xb2, 0xca, 0xf9, 0x84, 0x71, 0x79, 0xb9, 0xe5,
+ 0x1e, 0x4e, 0x95, 0xcc,
+};
+static const unsigned char kat2995_nonce[] = {
+ 0xb9, 0xda, 0x48, 0xd1, 0x3c, 0xbf, 0xa0, 0x7a,
+};
+static const unsigned char kat2995_persstr[] = {
+ 0x72, 0x03, 0x29, 0x31, 0x1f, 0xc5, 0x35, 0x00, 0x26, 0xd6, 0x2f, 0x89,
+ 0xd7, 0x78, 0xf5, 0xa9,
+};
+static const unsigned char kat2995_entropyinpr1[] = {
+ 0x6d, 0xdd, 0xdf, 0xc2, 0x22, 0x08, 0x46, 0x30, 0x53, 0x9b, 0x99, 0xe2,
+ 0xa6, 0xa3, 0x9f, 0x26,
+};
+static const unsigned char kat2995_addinpr1[] = {
+ 0x94, 0x47, 0x19, 0xbf, 0x67, 0xa3, 0x9b, 0xc8, 0xbd, 0xd6, 0xa8, 0x5b,
+ 0xd5, 0x3a, 0x1e, 0x06,
+};
+static const unsigned char kat2995_entropyinpr2[] = {
+ 0x37, 0xc4, 0x8f, 0x65, 0x17, 0xe2, 0xf5, 0x65, 0x89, 0xef, 0x41, 0x9e,
+ 0xc2, 0x3a, 0xa9, 0xf9,
+};
+static const unsigned char kat2995_addinpr2[] = {
+ 0x87, 0x01, 0x08, 0x1d, 0xbc, 0x92, 0x45, 0xed, 0x07, 0xa1, 0xd8, 0x3c,
+ 0x70, 0xd3, 0xf6, 0x26,
+};
+static const unsigned char kat2995_retbits[] = {
+ 0x05, 0x66, 0x06, 0x99, 0x2d, 0x6c, 0x25, 0x3c, 0x7d, 0xa1, 0xe9, 0xf7,
+ 0xca, 0x1a, 0x5b, 0x5e, 0x8d, 0xb4, 0xd8, 0xdb, 0x68, 0xa5, 0x48, 0x20,
+ 0x73, 0x26, 0xd1, 0x1f, 0x33, 0x00, 0xeb, 0x09, 0x20, 0xa6, 0x51, 0x71,
+ 0x75, 0xa3, 0x39, 0xdb, 0xf6, 0x47, 0xc1, 0x1a, 0xd3, 0xe6, 0x6a, 0xbd,
+ 0x16, 0xba, 0x0f, 0x26, 0x3e, 0xba, 0xe9, 0xd4, 0x32, 0x71, 0xa2, 0xab,
+ 0x6d, 0x87, 0x45, 0x33,
+};
+static const struct drbg_kat_pr_true kat2995_t = {
+ 9, kat2995_entropyin, kat2995_nonce, kat2995_persstr,
+ kat2995_entropyinpr1, kat2995_addinpr1, kat2995_entropyinpr2,
+ kat2995_addinpr2, kat2995_retbits
+};
+static const struct drbg_kat kat2995 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2995_t
+};
+
+static const unsigned char kat2996_entropyin[] = {
+ 0xbb, 0x1f, 0xdc, 0x7a, 0xd9, 0x14, 0x71, 0xf7, 0x1b, 0x2f, 0x67, 0xa4,
+ 0xec, 0xdf, 0x55, 0x71,
+};
+static const unsigned char kat2996_nonce[] = {
+ 0x7b, 0x74, 0x1b, 0x9d, 0x60, 0x5c, 0x81, 0xb8,
+};
+static const unsigned char kat2996_persstr[] = {
+ 0x39, 0xbd, 0x5a, 0xa7, 0xa4, 0x67, 0xac, 0x15, 0xba, 0xad, 0x39, 0x00,
+ 0x8c, 0xb3, 0x3a, 0x25,
+};
+static const unsigned char kat2996_entropyinpr1[] = {
+ 0x48, 0x9b, 0x63, 0x88, 0xed, 0x66, 0x7a, 0xaa, 0xdd, 0xec, 0x0f, 0x08,
+ 0x61, 0xdf, 0xe3, 0x92,
+};
+static const unsigned char kat2996_addinpr1[] = {
+ 0xe7, 0xc2, 0xff, 0x31, 0x7f, 0xa7, 0x60, 0x4e, 0x66, 0x67, 0x44, 0xf7,
+ 0x8f, 0x77, 0x78, 0xb3,
+};
+static const unsigned char kat2996_entropyinpr2[] = {
+ 0x60, 0x01, 0x4d, 0x2b, 0x01, 0xd8, 0x22, 0xc9, 0xc6, 0x1c, 0x14, 0x65,
+ 0xd9, 0x3a, 0xc7, 0xee,
+};
+static const unsigned char kat2996_addinpr2[] = {
+ 0x12, 0xe3, 0x8f, 0x51, 0xc0, 0x04, 0x84, 0x2c, 0x79, 0x8a, 0x54, 0xcb,
+ 0xf6, 0xc5, 0xc9, 0x0e,
+};
+static const unsigned char kat2996_retbits[] = {
+ 0xf0, 0xd4, 0xdd, 0xae, 0x27, 0x82, 0x13, 0xbe, 0x83, 0xfb, 0x6d, 0x01,
+ 0x43, 0x73, 0x32, 0xf2, 0xb3, 0xae, 0xc2, 0xc6, 0x65, 0xe7, 0x0b, 0x56,
+ 0x9b, 0xdf, 0xf1, 0x72, 0x49, 0x49, 0xd3, 0x2b, 0xb6, 0x72, 0xce, 0x58,
+ 0xaa, 0x43, 0xbf, 0x92, 0x69, 0xd4, 0x51, 0x28, 0x5a, 0x31, 0xfc, 0x98,
+ 0x4d, 0x87, 0xc0, 0xc2, 0x1c, 0x1c, 0x6a, 0x0d, 0xdb, 0x50, 0x10, 0x84,
+ 0x9c, 0xf6, 0xc1, 0x1a,
+};
+static const struct drbg_kat_pr_true kat2996_t = {
+ 10, kat2996_entropyin, kat2996_nonce, kat2996_persstr,
+ kat2996_entropyinpr1, kat2996_addinpr1, kat2996_entropyinpr2,
+ kat2996_addinpr2, kat2996_retbits
+};
+static const struct drbg_kat kat2996 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2996_t
+};
+
+static const unsigned char kat2997_entropyin[] = {
+ 0x21, 0x78, 0x5f, 0xa0, 0x1f, 0x3a, 0xcc, 0xb5, 0xbb, 0xe4, 0xa2, 0xd0,
+ 0xb8, 0xbe, 0x26, 0xea,
+};
+static const unsigned char kat2997_nonce[] = {
+ 0x86, 0x57, 0x01, 0x66, 0x1a, 0x10, 0x8f, 0xbe,
+};
+static const unsigned char kat2997_persstr[] = {
+ 0x89, 0xa5, 0x3d, 0x1b, 0xd5, 0x9a, 0x6c, 0x14, 0x5f, 0xbe, 0xcf, 0xc4,
+ 0xcf, 0x92, 0xc2, 0x08,
+};
+static const unsigned char kat2997_entropyinpr1[] = {
+ 0x77, 0x0b, 0x4d, 0xd5, 0x80, 0x23, 0xc7, 0xa5, 0x05, 0x5b, 0x5c, 0x6f,
+ 0x34, 0x9c, 0xd9, 0x81,
+};
+static const unsigned char kat2997_addinpr1[] = {
+ 0x4d, 0x0b, 0xa9, 0x4b, 0xaa, 0x36, 0x73, 0xda, 0x58, 0xa8, 0xbb, 0xc7,
+ 0xcc, 0xa2, 0xbd, 0x2a,
+};
+static const unsigned char kat2997_entropyinpr2[] = {
+ 0x8c, 0x42, 0xcf, 0xce, 0x94, 0x8c, 0x41, 0x90, 0xbd, 0x41, 0xf0, 0x07,
+ 0xb4, 0xe6, 0xc8, 0xfe,
+};
+static const unsigned char kat2997_addinpr2[] = {
+ 0xfb, 0xf6, 0xf8, 0xf8, 0xca, 0x62, 0x10, 0x85, 0xf3, 0x41, 0x57, 0xf5,
+ 0x29, 0xaf, 0xf1, 0x0b,
+};
+static const unsigned char kat2997_retbits[] = {
+ 0x3a, 0x50, 0x17, 0x18, 0x68, 0x9c, 0x61, 0x30, 0x6a, 0x35, 0xa8, 0xf0,
+ 0xec, 0x53, 0xe1, 0xf8, 0xe2, 0xb2, 0xb7, 0x0b, 0x0c, 0x01, 0xba, 0x5a,
+ 0xc4, 0x21, 0x20, 0x41, 0xa6, 0x4e, 0x2d, 0xc7, 0xbe, 0x4c, 0x3e, 0xdd,
+ 0x66, 0x33, 0x6e, 0x0e, 0x33, 0xe5, 0x00, 0x31, 0xb8, 0x38, 0xa4, 0x77,
+ 0x46, 0x7d, 0xc5, 0x41, 0xb6, 0x35, 0xc5, 0x94, 0x17, 0x79, 0xee, 0x89,
+ 0x90, 0x14, 0x87, 0x80,
+};
+static const struct drbg_kat_pr_true kat2997_t = {
+ 11, kat2997_entropyin, kat2997_nonce, kat2997_persstr,
+ kat2997_entropyinpr1, kat2997_addinpr1, kat2997_entropyinpr2,
+ kat2997_addinpr2, kat2997_retbits
+};
+static const struct drbg_kat kat2997 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2997_t
+};
+
+static const unsigned char kat2998_entropyin[] = {
+ 0xe8, 0xd1, 0x09, 0xcc, 0xee, 0x57, 0x94, 0x59, 0x54, 0x64, 0xd7, 0xd2,
+ 0x7a, 0xf1, 0x70, 0xf6,
+};
+static const unsigned char kat2998_nonce[] = {
+ 0x77, 0x32, 0xc8, 0x1c, 0x90, 0x71, 0xc7, 0x91,
+};
+static const unsigned char kat2998_persstr[] = {
+ 0x82, 0xc2, 0x1a, 0x03, 0x21, 0x77, 0x1f, 0x90, 0x5f, 0x9c, 0x60, 0xec,
+ 0xed, 0x79, 0x20, 0x0d,
+};
+static const unsigned char kat2998_entropyinpr1[] = {
+ 0xbe, 0xc9, 0x39, 0x02, 0x07, 0xbf, 0xa4, 0x05, 0xa4, 0x0e, 0x41, 0xf3,
+ 0xfd, 0xca, 0x9f, 0xc7,
+};
+static const unsigned char kat2998_addinpr1[] = {
+ 0x25, 0x5b, 0xd7, 0x03, 0x01, 0xba, 0xb0, 0xcd, 0x43, 0x09, 0xfe, 0x51,
+ 0xf9, 0x8f, 0x86, 0x90,
+};
+static const unsigned char kat2998_entropyinpr2[] = {
+ 0xfb, 0xff, 0x4f, 0xa2, 0x20, 0x3d, 0xa3, 0x6a, 0x41, 0x7d, 0xcd, 0x2e,
+ 0xd7, 0x63, 0x8c, 0x2b,
+};
+static const unsigned char kat2998_addinpr2[] = {
+ 0x86, 0x46, 0x19, 0xa7, 0x8a, 0xac, 0xa3, 0x5e, 0xec, 0xcd, 0x65, 0x39,
+ 0xc1, 0x64, 0x8a, 0xc3,
+};
+static const unsigned char kat2998_retbits[] = {
+ 0x6d, 0xbc, 0xc3, 0xc1, 0xac, 0xc6, 0xf2, 0x15, 0x93, 0x2f, 0x1c, 0x91,
+ 0x45, 0x26, 0x0a, 0x21, 0x09, 0x19, 0xad, 0x4d, 0xc0, 0x17, 0xe2, 0xb2,
+ 0x9a, 0xb5, 0xe1, 0x0a, 0x33, 0x3b, 0x9b, 0x5b, 0x4f, 0xb9, 0x93, 0x8b,
+ 0x6c, 0x3a, 0x4e, 0x8f, 0xb1, 0x33, 0x6b, 0xc6, 0xa7, 0x84, 0x61, 0x8e,
+ 0x14, 0x18, 0x85, 0x82, 0x85, 0x48, 0x16, 0x43, 0x2e, 0x63, 0x55, 0xe6,
+ 0xdc, 0x5a, 0xb6, 0xee,
+};
+static const struct drbg_kat_pr_true kat2998_t = {
+ 12, kat2998_entropyin, kat2998_nonce, kat2998_persstr,
+ kat2998_entropyinpr1, kat2998_addinpr1, kat2998_entropyinpr2,
+ kat2998_addinpr2, kat2998_retbits
+};
+static const struct drbg_kat kat2998 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2998_t
+};
+
+static const unsigned char kat2999_entropyin[] = {
+ 0xc5, 0x50, 0xc5, 0x2b, 0x94, 0x7b, 0x33, 0x4d, 0x62, 0x44, 0xd9, 0x41,
+ 0x1b, 0x80, 0xbf, 0x0a,
+};
+static const unsigned char kat2999_nonce[] = {
+ 0xec, 0x8a, 0x23, 0x0c, 0x20, 0xbd, 0xb3, 0x85,
+};
+static const unsigned char kat2999_persstr[] = {
+ 0x59, 0xa2, 0x2a, 0x75, 0x7b, 0x92, 0xbb, 0x09, 0xd1, 0x48, 0xc7, 0xd8,
+ 0xde, 0x58, 0x82, 0x03,
+};
+static const unsigned char kat2999_entropyinpr1[] = {
+ 0x46, 0xc1, 0xe5, 0xf5, 0xb5, 0x07, 0x95, 0xb2, 0x7c, 0x7d, 0xe2, 0x85,
+ 0x1f, 0xdf, 0xb9, 0xca,
+};
+static const unsigned char kat2999_addinpr1[] = {
+ 0x5c, 0x32, 0x42, 0x88, 0x5c, 0xff, 0xf1, 0xbf, 0xab, 0x07, 0x1c, 0x95,
+ 0xbb, 0x74, 0xc5, 0xc4,
+};
+static const unsigned char kat2999_entropyinpr2[] = {
+ 0x99, 0x80, 0x56, 0x24, 0x6c, 0xef, 0xfe, 0x14, 0x1f, 0x90, 0xb2, 0x07,
+ 0xd7, 0xad, 0x9b, 0x59,
+};
+static const unsigned char kat2999_addinpr2[] = {
+ 0x2c, 0x80, 0xc3, 0xa0, 0x31, 0xf2, 0xa7, 0x2f, 0x1f, 0x8e, 0x52, 0xcb,
+ 0x90, 0x25, 0x6c, 0xf9,
+};
+static const unsigned char kat2999_retbits[] = {
+ 0x2a, 0xaa, 0xb2, 0x6e, 0xcd, 0x47, 0x0c, 0x12, 0x9e, 0xec, 0xa1, 0x86,
+ 0xb8, 0x38, 0xbb, 0xc7, 0x58, 0x9f, 0xd8, 0x27, 0x55, 0x3c, 0x8c, 0x2f,
+ 0xa7, 0x22, 0x9b, 0x05, 0x06, 0x30, 0x09, 0x40, 0x41, 0x82, 0xdf, 0xfc,
+ 0xaa, 0x23, 0x98, 0x42, 0xc9, 0x77, 0x96, 0xfb, 0xf1, 0xe3, 0x6e, 0x20,
+ 0xf6, 0x35, 0x5f, 0xad, 0x22, 0xb2, 0x41, 0x2e, 0x63, 0xf3, 0xda, 0x3d,
+ 0x67, 0x1c, 0x9c, 0x30,
+};
+static const struct drbg_kat_pr_true kat2999_t = {
+ 13, kat2999_entropyin, kat2999_nonce, kat2999_persstr,
+ kat2999_entropyinpr1, kat2999_addinpr1, kat2999_entropyinpr2,
+ kat2999_addinpr2, kat2999_retbits
+};
+static const struct drbg_kat kat2999 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat2999_t
+};
+
+static const unsigned char kat3000_entropyin[] = {
+ 0x3c, 0xf6, 0x3f, 0xe7, 0x9a, 0x2a, 0x38, 0x07, 0xa4, 0x1f, 0xc3, 0x7b,
+ 0x8c, 0xf6, 0x40, 0xad,
+};
+static const unsigned char kat3000_nonce[] = {
+ 0x18, 0xf8, 0xbe, 0x87, 0x23, 0x2b, 0x9b, 0xa5,
+};
+static const unsigned char kat3000_persstr[] = {
+ 0x92, 0x6a, 0x2d, 0x6a, 0xc8, 0x8a, 0x6d, 0x68, 0xa6, 0xb2, 0xe9, 0x39,
+ 0xe3, 0x59, 0x18, 0x0e,
+};
+static const unsigned char kat3000_entropyinpr1[] = {
+ 0x94, 0xf2, 0x46, 0x40, 0xd4, 0x3a, 0xd1, 0xc9, 0xc0, 0x5a, 0x8f, 0xca,
+ 0x3f, 0x0a, 0x3e, 0x26,
+};
+static const unsigned char kat3000_addinpr1[] = {
+ 0x06, 0x45, 0x39, 0xb2, 0xa2, 0x97, 0xe6, 0x27, 0x0f, 0xb1, 0x56, 0xd1,
+ 0x42, 0xc1, 0x38, 0xf5,
+};
+static const unsigned char kat3000_entropyinpr2[] = {
+ 0x66, 0x62, 0x6b, 0x94, 0x72, 0x12, 0x92, 0xed, 0x9c, 0x31, 0xf9, 0x84,
+ 0x4f, 0x31, 0x64, 0x79,
+};
+static const unsigned char kat3000_addinpr2[] = {
+ 0x86, 0x7a, 0xa3, 0xa2, 0x36, 0xf5, 0x27, 0x19, 0xf0, 0x80, 0xbc, 0x09,
+ 0xc4, 0xd9, 0x49, 0x72,
+};
+static const unsigned char kat3000_retbits[] = {
+ 0x0f, 0x82, 0x9f, 0x01, 0x0f, 0x60, 0x54, 0x70, 0x53, 0x41, 0x8a, 0x7c,
+ 0xb6, 0xa6, 0x40, 0x50, 0x6a, 0x1e, 0x96, 0x40, 0xbf, 0xe0, 0x93, 0x55,
+ 0xc0, 0x83, 0x5a, 0xb5, 0xfd, 0xed, 0x11, 0x10, 0x71, 0x54, 0x75, 0xdc,
+ 0x8d, 0x3a, 0x29, 0xad, 0xe1, 0xfa, 0x0f, 0x1b, 0xe4, 0x25, 0xad, 0x05,
+ 0x98, 0x9c, 0x27, 0xc1, 0x49, 0x19, 0x84, 0xb4, 0xb3, 0xda, 0xf5, 0x3f,
+ 0x72, 0x4f, 0x16, 0xcf,
+};
+static const struct drbg_kat_pr_true kat3000_t = {
+ 14, kat3000_entropyin, kat3000_nonce, kat3000_persstr,
+ kat3000_entropyinpr1, kat3000_addinpr1, kat3000_entropyinpr2,
+ kat3000_addinpr2, kat3000_retbits
+};
+static const struct drbg_kat kat3000 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3000_t
+};
+
+static const unsigned char kat3001_entropyin[] = {
+ 0xa2, 0xb3, 0x60, 0x0a, 0x72, 0xc5, 0x5c, 0x48, 0x95, 0xf5, 0xe7, 0xdc,
+ 0xf1, 0xc2, 0x8c, 0x31,
+};
+static const unsigned char kat3001_nonce[] = {
+ 0x05, 0x48, 0x5a, 0xc0, 0xd0, 0x16, 0x2e, 0x09,
+};
+static const unsigned char kat3001_persstr[] = {0};
+static const unsigned char kat3001_entropyinpr1[] = {
+ 0x84, 0xe3, 0x83, 0xef, 0xaa, 0xf0, 0x18, 0x60, 0x1e, 0xff, 0x0b, 0xe3,
+ 0xa2, 0xb4, 0x0b, 0x91,
+};
+static const unsigned char kat3001_addinpr1[] = {0};
+static const unsigned char kat3001_entropyinpr2[] = {
+ 0x91, 0x45, 0x94, 0x41, 0x1a, 0x95, 0xa9, 0x01, 0x77, 0x6a, 0xe9, 0x88,
+ 0x74, 0xe1, 0xba, 0x7c,
+};
+static const unsigned char kat3001_addinpr2[] = {0};
+static const unsigned char kat3001_retbits[] = {
+ 0x54, 0x58, 0xbb, 0xdf, 0xbd, 0x72, 0x2c, 0x0b, 0xa1, 0x3e, 0xa2, 0x1b,
+ 0x88, 0xa0, 0x90, 0x7c, 0x83, 0xed, 0xf2, 0xc5, 0xb2, 0x3d, 0xba, 0xa2,
+ 0xb3, 0x0e, 0xbb, 0xad, 0xaa, 0x21, 0xf2, 0x52, 0x56, 0x39, 0x7e, 0x8e,
+ 0x49, 0xe2, 0x0e, 0x6d, 0x37, 0x6f, 0xb3, 0x74, 0xf7, 0x7b, 0xed, 0x84,
+ 0x70, 0x38, 0xf0, 0x6b, 0x85, 0xf5, 0x3b, 0xad, 0xd6, 0xab, 0x0a, 0x9f,
+ 0x48, 0xe7, 0xb3, 0x3c,
+};
+static const struct drbg_kat_pr_true kat3001_t = {
+ 0, kat3001_entropyin, kat3001_nonce, kat3001_persstr,
+ kat3001_entropyinpr1, kat3001_addinpr1, kat3001_entropyinpr2,
+ kat3001_addinpr2, kat3001_retbits
+};
+static const struct drbg_kat kat3001 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3001_t
+};
+
+static const unsigned char kat3002_entropyin[] = {
+ 0xf5, 0xfd, 0x13, 0x28, 0xa7, 0x41, 0xfa, 0x56, 0x4d, 0x5b, 0x4a, 0xb9,
+ 0x8f, 0x15, 0x36, 0x7c,
+};
+static const unsigned char kat3002_nonce[] = {
+ 0x36, 0x98, 0x87, 0x8e, 0x22, 0x34, 0x56, 0x75,
+};
+static const unsigned char kat3002_persstr[] = {0};
+static const unsigned char kat3002_entropyinpr1[] = {
+ 0xc7, 0x06, 0xe9, 0xec, 0xa7, 0xeb, 0xc0, 0xcd, 0x14, 0x44, 0x80, 0xf6,
+ 0x2c, 0xd1, 0xcd, 0xa9,
+};
+static const unsigned char kat3002_addinpr1[] = {0};
+static const unsigned char kat3002_entropyinpr2[] = {
+ 0xc6, 0x99, 0x8e, 0x51, 0x15, 0xc8, 0x1f, 0x88, 0x70, 0xc4, 0xe9, 0x44,
+ 0xcb, 0xd2, 0x48, 0x82,
+};
+static const unsigned char kat3002_addinpr2[] = {0};
+static const unsigned char kat3002_retbits[] = {
+ 0x33, 0xcd, 0x39, 0x2c, 0xef, 0x06, 0xf0, 0xf7, 0x6b, 0xc5, 0xd0, 0xe7,
+ 0xb7, 0xa3, 0xbf, 0x1b, 0x3d, 0x07, 0xf0, 0x03, 0xaa, 0xf5, 0x7d, 0xc5,
+ 0xe9, 0x03, 0xe1, 0xa8, 0xb7, 0x74, 0x69, 0x46, 0x01, 0x03, 0x5b, 0x14,
+ 0xd7, 0x79, 0xde, 0xe1, 0x63, 0xea, 0x1c, 0xfa, 0x0f, 0xc8, 0x1c, 0x7a,
+ 0x7b, 0xcf, 0x62, 0xdd, 0x78, 0xcf, 0xe0, 0xae, 0x28, 0x58, 0xa2, 0x9d,
+ 0x77, 0xa6, 0xdc, 0x95,
+};
+static const struct drbg_kat_pr_true kat3002_t = {
+ 1, kat3002_entropyin, kat3002_nonce, kat3002_persstr,
+ kat3002_entropyinpr1, kat3002_addinpr1, kat3002_entropyinpr2,
+ kat3002_addinpr2, kat3002_retbits
+};
+static const struct drbg_kat kat3002 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3002_t
+};
+
+static const unsigned char kat3003_entropyin[] = {
+ 0x49, 0x3f, 0xef, 0xd3, 0x4c, 0x1c, 0x7a, 0x06, 0xd0, 0x94, 0x7b, 0x89,
+ 0x11, 0x0f, 0xdd, 0xaa,
+};
+static const unsigned char kat3003_nonce[] = {
+ 0x17, 0xbf, 0x7f, 0x91, 0xe6, 0x06, 0x2e, 0xd0,
+};
+static const unsigned char kat3003_persstr[] = {0};
+static const unsigned char kat3003_entropyinpr1[] = {
+ 0x13, 0xd9, 0x7b, 0xd3, 0xb5, 0x38, 0x35, 0x6f, 0x17, 0x9c, 0x53, 0x0c,
+ 0xf3, 0xe3, 0x24, 0x88,
+};
+static const unsigned char kat3003_addinpr1[] = {0};
+static const unsigned char kat3003_entropyinpr2[] = {
+ 0xc9, 0x1e, 0x3f, 0x9b, 0x02, 0x28, 0xf3, 0x96, 0x2b, 0x3a, 0xe0, 0x44,
+ 0x02, 0xae, 0xc5, 0x49,
+};
+static const unsigned char kat3003_addinpr2[] = {0};
+static const unsigned char kat3003_retbits[] = {
+ 0x47, 0x03, 0x52, 0x7f, 0x48, 0x59, 0x26, 0x6a, 0x50, 0x34, 0x2b, 0x02,
+ 0x58, 0x07, 0x91, 0x09, 0x20, 0x13, 0x2c, 0x77, 0x6c, 0xbe, 0xb2, 0xef,
+ 0xe8, 0x63, 0xb1, 0x56, 0x52, 0xbc, 0xc7, 0x9e, 0xff, 0x26, 0x65, 0x52,
+ 0x40, 0x6d, 0x6e, 0xb3, 0x14, 0x0a, 0x35, 0x51, 0x6c, 0x98, 0x0f, 0x87,
+ 0x94, 0x7a, 0x9f, 0xb3, 0xf3, 0x06, 0xe7, 0x85, 0x29, 0x5c, 0xc2, 0xc9,
+ 0x6a, 0x07, 0xfa, 0xb1,
+};
+static const struct drbg_kat_pr_true kat3003_t = {
+ 2, kat3003_entropyin, kat3003_nonce, kat3003_persstr,
+ kat3003_entropyinpr1, kat3003_addinpr1, kat3003_entropyinpr2,
+ kat3003_addinpr2, kat3003_retbits
+};
+static const struct drbg_kat kat3003 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3003_t
+};
+
+static const unsigned char kat3004_entropyin[] = {
+ 0x3c, 0xa2, 0x6b, 0xcc, 0x6f, 0x2e, 0x9f, 0xba, 0x5d, 0xef, 0xa9, 0xd7,
+ 0x9f, 0x6f, 0x01, 0x54,
+};
+static const unsigned char kat3004_nonce[] = {
+ 0xc3, 0x94, 0x5d, 0xb7, 0xcd, 0x5e, 0x34, 0x21,
+};
+static const unsigned char kat3004_persstr[] = {0};
+static const unsigned char kat3004_entropyinpr1[] = {
+ 0xfc, 0x83, 0x61, 0xf8, 0xd0, 0xf9, 0x3b, 0xf7, 0xe6, 0x90, 0xe6, 0x39,
+ 0x68, 0x7b, 0x36, 0x6f,
+};
+static const unsigned char kat3004_addinpr1[] = {0};
+static const unsigned char kat3004_entropyinpr2[] = {
+ 0xb1, 0x21, 0x13, 0x07, 0xb1, 0x05, 0x2c, 0xb5, 0xa4, 0xb0, 0x40, 0x05,
+ 0x93, 0xb8, 0x02, 0xc1,
+};
+static const unsigned char kat3004_addinpr2[] = {0};
+static const unsigned char kat3004_retbits[] = {
+ 0xe1, 0xea, 0xf8, 0x72, 0x14, 0xc9, 0xc7, 0xa1, 0x10, 0x6b, 0x86, 0x3b,
+ 0x73, 0x91, 0x39, 0x24, 0x52, 0xa2, 0xef, 0xe8, 0xfe, 0x6d, 0x75, 0x6e,
+ 0x49, 0x01, 0x9c, 0x66, 0x85, 0x0e, 0x0f, 0x02, 0xf3, 0x69, 0xdb, 0x9a,
+ 0x0f, 0x9d, 0x94, 0x5c, 0xb7, 0x35, 0xf3, 0xa0, 0x07, 0xe3, 0xf1, 0xbc,
+ 0x4b, 0xde, 0x44, 0x87, 0xfb, 0x29, 0x47, 0xbc, 0xbb, 0xbd, 0xa1, 0x78,
+ 0x1d, 0x0d, 0x16, 0x1e,
+};
+static const struct drbg_kat_pr_true kat3004_t = {
+ 3, kat3004_entropyin, kat3004_nonce, kat3004_persstr,
+ kat3004_entropyinpr1, kat3004_addinpr1, kat3004_entropyinpr2,
+ kat3004_addinpr2, kat3004_retbits
+};
+static const struct drbg_kat kat3004 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3004_t
+};
+
+static const unsigned char kat3005_entropyin[] = {
+ 0x21, 0x5e, 0x59, 0xba, 0xe2, 0x20, 0x08, 0xb5, 0x10, 0x13, 0x44, 0x6c,
+ 0x84, 0x37, 0x1b, 0x93,
+};
+static const unsigned char kat3005_nonce[] = {
+ 0x0f, 0x7e, 0x67, 0xaa, 0xb9, 0xec, 0xd7, 0xbb,
+};
+static const unsigned char kat3005_persstr[] = {0};
+static const unsigned char kat3005_entropyinpr1[] = {
+ 0xa6, 0x1f, 0x34, 0xa7, 0x5e, 0x41, 0x93, 0x7c, 0x96, 0xab, 0xec, 0x51,
+ 0x0a, 0x19, 0xbb, 0xf8,
+};
+static const unsigned char kat3005_addinpr1[] = {0};
+static const unsigned char kat3005_entropyinpr2[] = {
+ 0x10, 0x0b, 0xdf, 0x1e, 0xd0, 0xc7, 0x3a, 0x7f, 0xa3, 0xf6, 0x47, 0x5e,
+ 0x71, 0xb9, 0x0d, 0x98,
+};
+static const unsigned char kat3005_addinpr2[] = {0};
+static const unsigned char kat3005_retbits[] = {
+ 0xbe, 0x34, 0x30, 0x6c, 0x7b, 0x31, 0xd1, 0x80, 0x59, 0xd4, 0xb9, 0xef,
+ 0x2a, 0x36, 0x3f, 0xdf, 0x8a, 0xae, 0x2d, 0x2e, 0x15, 0xc0, 0x3d, 0xb3,
+ 0x68, 0xf4, 0x1d, 0xba, 0x60, 0x3a, 0x40, 0x13, 0xcb, 0x25, 0xc6, 0x4e,
+ 0xa9, 0xc5, 0xb0, 0x2b, 0xd8, 0xb7, 0x02, 0x12, 0x99, 0x5b, 0x21, 0x03,
+ 0x51, 0xb0, 0xeb, 0xf8, 0x8b, 0xc9, 0x9f, 0xd0, 0x55, 0xb3, 0xc2, 0xc3,
+ 0x1b, 0x30, 0x81, 0xc7,
+};
+static const struct drbg_kat_pr_true kat3005_t = {
+ 4, kat3005_entropyin, kat3005_nonce, kat3005_persstr,
+ kat3005_entropyinpr1, kat3005_addinpr1, kat3005_entropyinpr2,
+ kat3005_addinpr2, kat3005_retbits
+};
+static const struct drbg_kat kat3005 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3005_t
+};
+
+static const unsigned char kat3006_entropyin[] = {
+ 0x61, 0xd8, 0x89, 0xd1, 0x58, 0xf2, 0xc3, 0x9d, 0x17, 0x65, 0xd6, 0xe4,
+ 0x72, 0x9a, 0x19, 0xe9,
+};
+static const unsigned char kat3006_nonce[] = {
+ 0xed, 0x12, 0xce, 0xab, 0x19, 0x94, 0x16, 0x25,
+};
+static const unsigned char kat3006_persstr[] = {0};
+static const unsigned char kat3006_entropyinpr1[] = {
+ 0x53, 0x23, 0xd9, 0x5a, 0x4a, 0x0a, 0x46, 0x71, 0x60, 0xe5, 0x72, 0x91,
+ 0x24, 0xa2, 0x6e, 0x69,
+};
+static const unsigned char kat3006_addinpr1[] = {0};
+static const unsigned char kat3006_entropyinpr2[] = {
+ 0xea, 0xb0, 0x25, 0xac, 0xfa, 0x2e, 0xb1, 0xa2, 0x1c, 0xf4, 0xd9, 0x43,
+ 0x43, 0x54, 0x77, 0x0f,
+};
+static const unsigned char kat3006_addinpr2[] = {0};
+static const unsigned char kat3006_retbits[] = {
+ 0x62, 0xfb, 0x4a, 0x31, 0xbf, 0x23, 0x32, 0xac, 0xc5, 0x47, 0x4e, 0x22,
+ 0xc9, 0x16, 0xf5, 0x73, 0x6d, 0x21, 0xea, 0x6c, 0xfd, 0x1e, 0xb9, 0x38,
+ 0x31, 0x5a, 0xdf, 0x16, 0x9a, 0x18, 0x29, 0xe1, 0xd7, 0x9c, 0x77, 0x36,
+ 0xb7, 0xc1, 0x90, 0x5e, 0xaf, 0x20, 0xd7, 0xe1, 0xc3, 0x52, 0xa7, 0x87,
+ 0x69, 0xd2, 0x10, 0x01, 0xa2, 0x5f, 0x45, 0x30, 0x96, 0xfc, 0xfc, 0x41,
+ 0x54, 0x41, 0xb3, 0x4d,
+};
+static const struct drbg_kat_pr_true kat3006_t = {
+ 5, kat3006_entropyin, kat3006_nonce, kat3006_persstr,
+ kat3006_entropyinpr1, kat3006_addinpr1, kat3006_entropyinpr2,
+ kat3006_addinpr2, kat3006_retbits
+};
+static const struct drbg_kat kat3006 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3006_t
+};
+
+static const unsigned char kat3007_entropyin[] = {
+ 0xf9, 0x46, 0xe5, 0x90, 0xca, 0x3e, 0xa3, 0x77, 0x0c, 0x08, 0xe8, 0xe9,
+ 0x17, 0x30, 0x11, 0xaa,
+};
+static const unsigned char kat3007_nonce[] = {
+ 0x76, 0xa1, 0x91, 0x64, 0x6a, 0x57, 0x31, 0xdf,
+};
+static const unsigned char kat3007_persstr[] = {0};
+static const unsigned char kat3007_entropyinpr1[] = {
+ 0xfd, 0xb2, 0x3e, 0xf9, 0xb6, 0xbb, 0x42, 0xaa, 0x6f, 0x25, 0x1d, 0x4a,
+ 0xc0, 0xd2, 0x6c, 0x0f,
+};
+static const unsigned char kat3007_addinpr1[] = {0};
+static const unsigned char kat3007_entropyinpr2[] = {
+ 0x72, 0x4b, 0x19, 0x44, 0x13, 0x23, 0x5a, 0x09, 0x01, 0xf1, 0xa4, 0xac,
+ 0xdf, 0x8e, 0x37, 0xe3,
+};
+static const unsigned char kat3007_addinpr2[] = {0};
+static const unsigned char kat3007_retbits[] = {
+ 0x33, 0x52, 0xc7, 0xda, 0xbe, 0x9d, 0x34, 0x65, 0xce, 0x10, 0xab, 0x95,
+ 0xd3, 0xf2, 0x4f, 0x33, 0xb2, 0x13, 0xe7, 0x99, 0xc9, 0x4d, 0xe1, 0x20,
+ 0xd7, 0xd6, 0xeb, 0x11, 0xf7, 0x32, 0x22, 0x20, 0xe2, 0x8f, 0xf5, 0xc0,
+ 0xfa, 0xcb, 0x5d, 0xdb, 0x04, 0xde, 0xc6, 0x8f, 0xd4, 0x3e, 0x7e, 0xb0,
+ 0xbf, 0xe1, 0x33, 0x6c, 0x2e, 0x8c, 0x7f, 0x92, 0xef, 0x3c, 0x03, 0xff,
+ 0x29, 0xa2, 0x1f, 0x40,
+};
+static const struct drbg_kat_pr_true kat3007_t = {
+ 6, kat3007_entropyin, kat3007_nonce, kat3007_persstr,
+ kat3007_entropyinpr1, kat3007_addinpr1, kat3007_entropyinpr2,
+ kat3007_addinpr2, kat3007_retbits
+};
+static const struct drbg_kat kat3007 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3007_t
+};
+
+static const unsigned char kat3008_entropyin[] = {
+ 0x92, 0x42, 0xa7, 0x1d, 0x6f, 0x8d, 0x3c, 0xf8, 0xcb, 0x86, 0x85, 0x5e,
+ 0x6c, 0x84, 0xc0, 0x71,
+};
+static const unsigned char kat3008_nonce[] = {
+ 0x56, 0x19, 0x62, 0xf3, 0xc4, 0x09, 0xa3, 0xa0,
+};
+static const unsigned char kat3008_persstr[] = {0};
+static const unsigned char kat3008_entropyinpr1[] = {
+ 0x90, 0x35, 0xe0, 0xf2, 0xe7, 0x24, 0x2f, 0x30, 0xb4, 0xbd, 0x78, 0x19,
+ 0xf7, 0xd5, 0x48, 0x55,
+};
+static const unsigned char kat3008_addinpr1[] = {0};
+static const unsigned char kat3008_entropyinpr2[] = {
+ 0xe5, 0x00, 0x2e, 0xed, 0x42, 0x8b, 0x17, 0x21, 0xe2, 0xef, 0xf2, 0xc7,
+ 0x56, 0x32, 0x82, 0x92,
+};
+static const unsigned char kat3008_addinpr2[] = {0};
+static const unsigned char kat3008_retbits[] = {
+ 0x95, 0xca, 0x1c, 0xb4, 0xaa, 0xba, 0x60, 0xae, 0x93, 0x36, 0x24, 0xf5,
+ 0x4f, 0xb8, 0x2b, 0xe3, 0x22, 0x44, 0xbe, 0x56, 0x87, 0x59, 0xe4, 0xdc,
+ 0xf7, 0x32, 0x74, 0xa7, 0x50, 0x21, 0x4b, 0x34, 0x35, 0x5d, 0x09, 0x87,
+ 0x7b, 0xc6, 0xca, 0x68, 0x54, 0x4a, 0x37, 0xad, 0x25, 0x0b, 0xcd, 0xf2,
+ 0xed, 0xc8, 0xfd, 0x9f, 0xbd, 0x7b, 0x5b, 0xc4, 0x99, 0xe3, 0xfc, 0x6e,
+ 0xc7, 0xe7, 0x9a, 0xf3,
+};
+static const struct drbg_kat_pr_true kat3008_t = {
+ 7, kat3008_entropyin, kat3008_nonce, kat3008_persstr,
+ kat3008_entropyinpr1, kat3008_addinpr1, kat3008_entropyinpr2,
+ kat3008_addinpr2, kat3008_retbits
+};
+static const struct drbg_kat kat3008 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3008_t
+};
+
+static const unsigned char kat3009_entropyin[] = {
+ 0x54, 0x24, 0x0e, 0xd9, 0x82, 0xa1, 0x73, 0x5a, 0x58, 0x97, 0x6c, 0x3c,
+ 0x8b, 0x1d, 0x12, 0xb6,
+};
+static const unsigned char kat3009_nonce[] = {
+ 0x6a, 0xaa, 0xd0, 0x72, 0x24, 0x68, 0x82, 0xe3,
+};
+static const unsigned char kat3009_persstr[] = {0};
+static const unsigned char kat3009_entropyinpr1[] = {
+ 0xfc, 0x59, 0x42, 0xfb, 0xfb, 0x12, 0xf3, 0xd1, 0x9b, 0x30, 0xfe, 0x22,
+ 0x3e, 0xd2, 0x78, 0xde,
+};
+static const unsigned char kat3009_addinpr1[] = {0};
+static const unsigned char kat3009_entropyinpr2[] = {
+ 0x67, 0x46, 0x6a, 0xf8, 0xdd, 0xde, 0x83, 0x7d, 0xd2, 0x85, 0x68, 0x3e,
+ 0x2c, 0x85, 0x0c, 0xd2,
+};
+static const unsigned char kat3009_addinpr2[] = {0};
+static const unsigned char kat3009_retbits[] = {
+ 0xc4, 0x4f, 0x8b, 0x22, 0xab, 0x9f, 0x75, 0xc1, 0xf7, 0xa9, 0x4a, 0x50,
+ 0xc1, 0xce, 0x2f, 0x41, 0x2b, 0xbc, 0x4c, 0xc9, 0xee, 0x8c, 0xcb, 0x83,
+ 0xf2, 0xb4, 0xf2, 0x00, 0x02, 0x40, 0x8f, 0xe7, 0xc5, 0x8f, 0x1a, 0xc3,
+ 0x55, 0x66, 0x86, 0x25, 0x7e, 0xcf, 0xd1, 0xf3, 0x65, 0xa0, 0x8e, 0xa3,
+ 0xee, 0x04, 0x58, 0xa5, 0x0d, 0xc2, 0x29, 0xbb, 0x37, 0xa6, 0x77, 0x0f,
+ 0x44, 0xb9, 0xd6, 0x61,
+};
+static const struct drbg_kat_pr_true kat3009_t = {
+ 8, kat3009_entropyin, kat3009_nonce, kat3009_persstr,
+ kat3009_entropyinpr1, kat3009_addinpr1, kat3009_entropyinpr2,
+ kat3009_addinpr2, kat3009_retbits
+};
+static const struct drbg_kat kat3009 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3009_t
+};
+
+static const unsigned char kat3010_entropyin[] = {
+ 0xc2, 0xba, 0x12, 0x99, 0x63, 0x94, 0xa9, 0xec, 0x1a, 0x37, 0x13, 0x22,
+ 0x77, 0x77, 0x93, 0x46,
+};
+static const unsigned char kat3010_nonce[] = {
+ 0x9c, 0x8e, 0x8a, 0x83, 0x6d, 0xa2, 0x59, 0x23,
+};
+static const unsigned char kat3010_persstr[] = {0};
+static const unsigned char kat3010_entropyinpr1[] = {
+ 0x76, 0xb7, 0x8d, 0xdb, 0x61, 0x4e, 0x6d, 0xd2, 0x8b, 0x32, 0x30, 0xc6,
+ 0xee, 0x66, 0xea, 0x4f,
+};
+static const unsigned char kat3010_addinpr1[] = {0};
+static const unsigned char kat3010_entropyinpr2[] = {
+ 0x92, 0x4f, 0x3b, 0x62, 0xf6, 0xb1, 0x7c, 0xbe, 0x99, 0xed, 0x21, 0xe6,
+ 0x0f, 0x14, 0x6e, 0xe6,
+};
+static const unsigned char kat3010_addinpr2[] = {0};
+static const unsigned char kat3010_retbits[] = {
+ 0xd0, 0x82, 0x03, 0xe4, 0x09, 0xce, 0x7c, 0xb0, 0x6a, 0xf8, 0x8b, 0x0a,
+ 0x13, 0x6e, 0x58, 0x71, 0xe3, 0x07, 0x8d, 0x6c, 0xf2, 0xb3, 0x7c, 0xcd,
+ 0x15, 0xaf, 0xaf, 0x91, 0x87, 0x72, 0x32, 0xfb, 0x3a, 0x13, 0x3f, 0xcd,
+ 0xcc, 0x9d, 0xfe, 0xf7, 0xb5, 0x56, 0x21, 0xe1, 0x50, 0x3c, 0xe7, 0x43,
+ 0xbe, 0x8b, 0x26, 0x03, 0x2e, 0x92, 0xdb, 0x46, 0x36, 0xd9, 0xa1, 0x24,
+ 0x38, 0xe2, 0x75, 0xbf,
+};
+static const struct drbg_kat_pr_true kat3010_t = {
+ 9, kat3010_entropyin, kat3010_nonce, kat3010_persstr,
+ kat3010_entropyinpr1, kat3010_addinpr1, kat3010_entropyinpr2,
+ kat3010_addinpr2, kat3010_retbits
+};
+static const struct drbg_kat kat3010 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3010_t
+};
+
+static const unsigned char kat3011_entropyin[] = {
+ 0x47, 0xba, 0x37, 0x10, 0xf3, 0x4d, 0x85, 0xa3, 0x95, 0xdc, 0x07, 0x63,
+ 0x73, 0xd6, 0x7a, 0x69,
+};
+static const unsigned char kat3011_nonce[] = {
+ 0x67, 0x4e, 0x3f, 0xc0, 0x87, 0x43, 0x52, 0xe8,
+};
+static const unsigned char kat3011_persstr[] = {0};
+static const unsigned char kat3011_entropyinpr1[] = {
+ 0xac, 0x76, 0x1b, 0x26, 0x82, 0x9d, 0xaa, 0x9a, 0x5a, 0x99, 0x0c, 0x2a,
+ 0xf4, 0xd3, 0x6d, 0xaa,
+};
+static const unsigned char kat3011_addinpr1[] = {0};
+static const unsigned char kat3011_entropyinpr2[] = {
+ 0x26, 0xac, 0x3f, 0xd6, 0x01, 0xd5, 0xce, 0xc3, 0xf5, 0x62, 0xa3, 0xbe,
+ 0x5b, 0x3f, 0x7d, 0x4a,
+};
+static const unsigned char kat3011_addinpr2[] = {0};
+static const unsigned char kat3011_retbits[] = {
+ 0x22, 0xf7, 0xca, 0x05, 0xe4, 0xe1, 0xf8, 0xab, 0xbd, 0x13, 0xe2, 0x6c,
+ 0x70, 0x2c, 0x22, 0x07, 0xb8, 0xdc, 0x24, 0xb3, 0x85, 0x4b, 0x19, 0xd3,
+ 0x7e, 0x50, 0x2b, 0x2b, 0x3d, 0x47, 0xec, 0x80, 0xb7, 0x89, 0xc7, 0xc2,
+ 0x05, 0x59, 0xdd, 0x71, 0x26, 0xc3, 0x86, 0x54, 0x1b, 0x28, 0x14, 0x19,
+ 0xef, 0x60, 0x24, 0xba, 0x5a, 0xc7, 0xd1, 0x61, 0x7d, 0x46, 0xf7, 0x54,
+ 0x9b, 0xe8, 0x16, 0x38,
+};
+static const struct drbg_kat_pr_true kat3011_t = {
+ 10, kat3011_entropyin, kat3011_nonce, kat3011_persstr,
+ kat3011_entropyinpr1, kat3011_addinpr1, kat3011_entropyinpr2,
+ kat3011_addinpr2, kat3011_retbits
+};
+static const struct drbg_kat kat3011 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3011_t
+};
+
+static const unsigned char kat3012_entropyin[] = {
+ 0x10, 0x32, 0x02, 0x10, 0xea, 0x3a, 0x13, 0xd7, 0x09, 0x85, 0x66, 0x9a,
+ 0x5f, 0xbb, 0x54, 0xd4,
+};
+static const unsigned char kat3012_nonce[] = {
+ 0x52, 0xf5, 0x69, 0x9e, 0x91, 0xb6, 0x14, 0x89,
+};
+static const unsigned char kat3012_persstr[] = {0};
+static const unsigned char kat3012_entropyinpr1[] = {
+ 0x45, 0x67, 0x77, 0xaf, 0x4f, 0x51, 0x56, 0xcd, 0xc2, 0xd0, 0xee, 0x51,
+ 0x46, 0x71, 0x46, 0x57,
+};
+static const unsigned char kat3012_addinpr1[] = {0};
+static const unsigned char kat3012_entropyinpr2[] = {
+ 0x00, 0xc7, 0x48, 0x72, 0x53, 0x60, 0xc2, 0x75, 0x9d, 0xc8, 0x92, 0xe9,
+ 0x34, 0xb8, 0x16, 0x6e,
+};
+static const unsigned char kat3012_addinpr2[] = {0};
+static const unsigned char kat3012_retbits[] = {
+ 0x68, 0x79, 0x43, 0xbd, 0x14, 0x1d, 0xb1, 0x02, 0x64, 0x14, 0x24, 0x04,
+ 0x8b, 0xde, 0x43, 0x94, 0xfa, 0xcf, 0x1d, 0xb0, 0x92, 0x66, 0x74, 0x95,
+ 0x4f, 0x06, 0x01, 0x20, 0x26, 0xfc, 0x65, 0xf6, 0x89, 0x7a, 0x36, 0x8e,
+ 0x6c, 0x65, 0x99, 0x7d, 0xaf, 0x33, 0x78, 0x06, 0xbb, 0x58, 0xff, 0x3a,
+ 0x3d, 0x71, 0x1d, 0xb8, 0x9b, 0xba, 0xb1, 0xd0, 0xa5, 0x34, 0xe5, 0xa6,
+ 0xc3, 0x1d, 0x8b, 0x3c,
+};
+static const struct drbg_kat_pr_true kat3012_t = {
+ 11, kat3012_entropyin, kat3012_nonce, kat3012_persstr,
+ kat3012_entropyinpr1, kat3012_addinpr1, kat3012_entropyinpr2,
+ kat3012_addinpr2, kat3012_retbits
+};
+static const struct drbg_kat kat3012 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3012_t
+};
+
+static const unsigned char kat3013_entropyin[] = {
+ 0x3f, 0x7a, 0x8c, 0xfb, 0x5c, 0x56, 0x0d, 0x18, 0xb5, 0xe5, 0xe6, 0x2c,
+ 0x55, 0xe9, 0x9c, 0x63,
+};
+static const unsigned char kat3013_nonce[] = {
+ 0x85, 0xab, 0x12, 0x43, 0x91, 0xfc, 0xad, 0xc4,
+};
+static const unsigned char kat3013_persstr[] = {0};
+static const unsigned char kat3013_entropyinpr1[] = {
+ 0x3b, 0x84, 0xba, 0xfe, 0x46, 0x3d, 0x42, 0xd6, 0xa3, 0xe3, 0x4a, 0xe9,
+ 0x73, 0x5e, 0xac, 0xf5,
+};
+static const unsigned char kat3013_addinpr1[] = {0};
+static const unsigned char kat3013_entropyinpr2[] = {
+ 0xb6, 0x9a, 0x84, 0x16, 0x7d, 0x8f, 0xe0, 0xec, 0x1d, 0x80, 0x0c, 0xde,
+ 0x7f, 0xa3, 0xbd, 0x6a,
+};
+static const unsigned char kat3013_addinpr2[] = {0};
+static const unsigned char kat3013_retbits[] = {
+ 0xe5, 0x51, 0x1a, 0xf0, 0x94, 0xe6, 0xb8, 0xe2, 0xf1, 0x85, 0x57, 0xc4,
+ 0x6c, 0x56, 0xe0, 0xbe, 0xbe, 0x7c, 0x45, 0x74, 0x6a, 0x3a, 0xb4, 0xa2,
+ 0xfd, 0x0b, 0xcf, 0x2f, 0x24, 0x3b, 0x1a, 0x18, 0xc9, 0x7d, 0x40, 0x16,
+ 0xba, 0x79, 0xb5, 0x6b, 0xfe, 0x97, 0x3e, 0xe0, 0x55, 0xd8, 0xb7, 0x0c,
+ 0xdc, 0x5e, 0x62, 0xe6, 0x8d, 0x29, 0x9a, 0xb7, 0x7b, 0x80, 0x96, 0xf0,
+ 0x5c, 0x9f, 0xcb, 0xea,
+};
+static const struct drbg_kat_pr_true kat3013_t = {
+ 12, kat3013_entropyin, kat3013_nonce, kat3013_persstr,
+ kat3013_entropyinpr1, kat3013_addinpr1, kat3013_entropyinpr2,
+ kat3013_addinpr2, kat3013_retbits
+};
+static const struct drbg_kat kat3013 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3013_t
+};
+
+static const unsigned char kat3014_entropyin[] = {
+ 0x59, 0xa3, 0xc9, 0x43, 0xf9, 0xf3, 0x5c, 0xfc, 0xb1, 0x2e, 0xf9, 0xf9,
+ 0xc0, 0xea, 0x53, 0xf6,
+};
+static const unsigned char kat3014_nonce[] = {
+ 0x00, 0x02, 0x22, 0xb9, 0xe8, 0x9a, 0xdd, 0x42,
+};
+static const unsigned char kat3014_persstr[] = {0};
+static const unsigned char kat3014_entropyinpr1[] = {
+ 0xbc, 0x8c, 0xf5, 0x3f, 0xdf, 0x32, 0x57, 0xad, 0xc5, 0x56, 0x07, 0xfa,
+ 0xf1, 0xad, 0x44, 0x96,
+};
+static const unsigned char kat3014_addinpr1[] = {0};
+static const unsigned char kat3014_entropyinpr2[] = {
+ 0x55, 0xdd, 0x5c, 0x48, 0x60, 0xe7, 0x92, 0x43, 0x50, 0xa3, 0x7f, 0x9c,
+ 0xb5, 0x18, 0xb1, 0x6a,
+};
+static const unsigned char kat3014_addinpr2[] = {0};
+static const unsigned char kat3014_retbits[] = {
+ 0xaf, 0x6b, 0xd2, 0xf7, 0x77, 0x87, 0x41, 0x3e, 0x29, 0xef, 0x04, 0xbc,
+ 0xbc, 0xaa, 0x82, 0xc0, 0xb8, 0x86, 0x38, 0xa9, 0xe0, 0xa2, 0xf4, 0xa5,
+ 0x72, 0xf9, 0xd7, 0x17, 0xd7, 0x57, 0x30, 0x14, 0x81, 0x22, 0x81, 0x9e,
+ 0x9b, 0x3e, 0x0e, 0xd5, 0x97, 0xc8, 0x4a, 0x0b, 0x3c, 0x35, 0x6d, 0x00,
+ 0x98, 0xaf, 0x74, 0x34, 0x42, 0x30, 0x37, 0xff, 0xa8, 0x9a, 0x01, 0x91,
+ 0xfd, 0xd2, 0x93, 0x72,
+};
+static const struct drbg_kat_pr_true kat3014_t = {
+ 13, kat3014_entropyin, kat3014_nonce, kat3014_persstr,
+ kat3014_entropyinpr1, kat3014_addinpr1, kat3014_entropyinpr2,
+ kat3014_addinpr2, kat3014_retbits
+};
+static const struct drbg_kat kat3014 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3014_t
+};
+
+static const unsigned char kat3015_entropyin[] = {
+ 0x36, 0x51, 0x57, 0x8d, 0x1c, 0x0e, 0x56, 0x7c, 0x80, 0x6f, 0x7c, 0x95,
+ 0xb3, 0xa4, 0x55, 0x22,
+};
+static const unsigned char kat3015_nonce[] = {
+ 0xd6, 0x42, 0xa4, 0xd4, 0xe7, 0x52, 0x81, 0xd1,
+};
+static const unsigned char kat3015_persstr[] = {0};
+static const unsigned char kat3015_entropyinpr1[] = {
+ 0xa9, 0x88, 0x98, 0xa3, 0xa1, 0x8b, 0x44, 0x83, 0x27, 0x7f, 0x80, 0x9f,
+ 0x1e, 0x61, 0xce, 0x8a,
+};
+static const unsigned char kat3015_addinpr1[] = {0};
+static const unsigned char kat3015_entropyinpr2[] = {
+ 0x2a, 0x8c, 0x04, 0xd6, 0x91, 0x35, 0x83, 0xc0, 0xd4, 0x6c, 0xbb, 0xa3,
+ 0x69, 0xd7, 0xde, 0x8b,
+};
+static const unsigned char kat3015_addinpr2[] = {0};
+static const unsigned char kat3015_retbits[] = {
+ 0x21, 0x36, 0x6c, 0xea, 0x6a, 0x66, 0x9f, 0x19, 0x36, 0x59, 0xe6, 0xc5,
+ 0xf7, 0x7c, 0xd8, 0x23, 0xe6, 0xd2, 0x1d, 0x0e, 0x4c, 0x7d, 0x6a, 0xeb,
+ 0x9a, 0xdf, 0x20, 0x88, 0x95, 0x69, 0x1f, 0xf5, 0xb3, 0xc0, 0x49, 0x2d,
+ 0x86, 0x0c, 0xd2, 0xac, 0x5b, 0xe1, 0x03, 0x51, 0x6c, 0x0d, 0x36, 0xfd,
+ 0x2d, 0x8a, 0xd8, 0x00, 0x0d, 0x7a, 0xf2, 0xf7, 0x24, 0x9f, 0xfe, 0x58,
+ 0x46, 0x17, 0xe6, 0xc6,
+};
+static const struct drbg_kat_pr_true kat3015_t = {
+ 14, kat3015_entropyin, kat3015_nonce, kat3015_persstr,
+ kat3015_entropyinpr1, kat3015_addinpr1, kat3015_entropyinpr2,
+ kat3015_addinpr2, kat3015_retbits
+};
+static const struct drbg_kat kat3015 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3015_t
+};
+
+static const unsigned char kat3016_entropyin[] = {
+ 0xc4, 0xe0, 0xe5, 0x1d, 0x45, 0x89, 0x1a, 0xa9, 0xb3, 0x1f, 0x78, 0x63,
+ 0x48, 0x59, 0xb0, 0x06,
+};
+static const unsigned char kat3016_nonce[] = {
+ 0xa0, 0x46, 0xfc, 0x4c, 0xc9, 0x69, 0xc0, 0xd9,
+};
+static const unsigned char kat3016_persstr[] = {0};
+static const unsigned char kat3016_entropyinpr1[] = {
+ 0xdc, 0x1a, 0xc4, 0x51, 0xef, 0xe4, 0x17, 0xe7, 0x11, 0xec, 0xf6, 0x95,
+ 0x69, 0xb1, 0xb7, 0x16,
+};
+static const unsigned char kat3016_addinpr1[] = {
+ 0xac, 0x3d, 0x13, 0x13, 0x25, 0x19, 0xb2, 0xe7, 0x0b, 0x41, 0x89, 0x36,
+ 0x45, 0xc7, 0x7b, 0xb3,
+};
+static const unsigned char kat3016_entropyinpr2[] = {
+ 0x1b, 0x60, 0x3b, 0x8c, 0xe1, 0x53, 0xff, 0x78, 0x9d, 0x74, 0x50, 0x8b,
+ 0xbd, 0xdb, 0x3d, 0x13,
+};
+static const unsigned char kat3016_addinpr2[] = {
+ 0x97, 0x58, 0xaf, 0x20, 0x41, 0x52, 0xeb, 0x66, 0x9e, 0x5f, 0xc1, 0x20,
+ 0x03, 0x95, 0x14, 0xbe,
+};
+static const unsigned char kat3016_retbits[] = {
+ 0xd7, 0x0c, 0x5a, 0xd5, 0x67, 0x2a, 0x6e, 0x30, 0x80, 0xd6, 0x26, 0xd0,
+ 0xb9, 0x75, 0x79, 0x1d, 0xe5, 0x99, 0x93, 0xb9, 0x52, 0xa8, 0x1a, 0xc6,
+ 0xb7, 0x28, 0xc3, 0x50, 0x95, 0x8b, 0x27, 0x09, 0x80, 0xaa, 0xea, 0x53,
+ 0x8e, 0xd5, 0xe6, 0x94, 0x88, 0xa7, 0x7f, 0xda, 0x33, 0x64, 0x67, 0xa1,
+ 0xa9, 0x59, 0x3d, 0x8a, 0x66, 0xad, 0x30, 0x91, 0xe0, 0x5e, 0x17, 0xa7,
+ 0x5e, 0xd7, 0xfc, 0xe6,
+};
+static const struct drbg_kat_pr_true kat3016_t = {
+ 0, kat3016_entropyin, kat3016_nonce, kat3016_persstr,
+ kat3016_entropyinpr1, kat3016_addinpr1, kat3016_entropyinpr2,
+ kat3016_addinpr2, kat3016_retbits
+};
+static const struct drbg_kat kat3016 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3016_t
+};
+
+static const unsigned char kat3017_entropyin[] = {
+ 0x17, 0x35, 0xe2, 0x7b, 0x04, 0x2d, 0xd1, 0xb5, 0x76, 0x8e, 0x6a, 0xd7,
+ 0x72, 0x0b, 0x71, 0x1d,
+};
+static const unsigned char kat3017_nonce[] = {
+ 0xca, 0x47, 0x3c, 0x14, 0x0a, 0x8e, 0xdb, 0xe0,
+};
+static const unsigned char kat3017_persstr[] = {0};
+static const unsigned char kat3017_entropyinpr1[] = {
+ 0xe5, 0x35, 0x42, 0xcb, 0x32, 0xcf, 0x20, 0x60, 0x39, 0x40, 0x15, 0x8e,
+ 0x47, 0xf7, 0x2e, 0xa2,
+};
+static const unsigned char kat3017_addinpr1[] = {
+ 0x38, 0x79, 0xe0, 0x88, 0x44, 0xfc, 0xfc, 0xbf, 0x21, 0xe3, 0x06, 0xe9,
+ 0xef, 0xd7, 0xeb, 0x82,
+};
+static const unsigned char kat3017_entropyinpr2[] = {
+ 0x82, 0xc0, 0x47, 0xfc, 0xe9, 0xa4, 0x32, 0xb4, 0xe3, 0xed, 0x29, 0x16,
+ 0xef, 0x57, 0x07, 0x48,
+};
+static const unsigned char kat3017_addinpr2[] = {
+ 0xec, 0x04, 0x30, 0x07, 0x39, 0x95, 0x32, 0xd1, 0xaf, 0x00, 0xd7, 0x3f,
+ 0x9a, 0x4f, 0x1b, 0x56,
+};
+static const unsigned char kat3017_retbits[] = {
+ 0xba, 0x1a, 0xa8, 0xe4, 0xcb, 0xbb, 0x8b, 0xd0, 0x23, 0x2c, 0xe3, 0x3e,
+ 0xed, 0xf8, 0x1d, 0x56, 0xff, 0xa0, 0x96, 0xf1, 0xf8, 0xe3, 0x61, 0x7e,
+ 0x34, 0x55, 0xe7, 0x1d, 0x8a, 0x24, 0xbe, 0xbc, 0xf2, 0x7a, 0xee, 0xcf,
+ 0xa9, 0x90, 0x5e, 0x00, 0x60, 0x06, 0xdc, 0xbd, 0x33, 0x4e, 0xec, 0x4b,
+ 0x99, 0x31, 0x6b, 0xc6, 0xa1, 0xef, 0x92, 0xdc, 0x69, 0x37, 0x93, 0x4b,
+ 0x4e, 0x89, 0x26, 0xd2,
+};
+static const struct drbg_kat_pr_true kat3017_t = {
+ 1, kat3017_entropyin, kat3017_nonce, kat3017_persstr,
+ kat3017_entropyinpr1, kat3017_addinpr1, kat3017_entropyinpr2,
+ kat3017_addinpr2, kat3017_retbits
+};
+static const struct drbg_kat kat3017 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3017_t
+};
+
+static const unsigned char kat3018_entropyin[] = {
+ 0x6a, 0x8f, 0xe1, 0xd7, 0xf9, 0xc3, 0xae, 0xaa, 0x77, 0x45, 0xda, 0x25,
+ 0x24, 0xd6, 0x6c, 0x3e,
+};
+static const unsigned char kat3018_nonce[] = {
+ 0x10, 0x3f, 0x02, 0x62, 0x2a, 0x44, 0xe5, 0x6f,
+};
+static const unsigned char kat3018_persstr[] = {0};
+static const unsigned char kat3018_entropyinpr1[] = {
+ 0xa5, 0xf3, 0x62, 0xb2, 0xf2, 0xfe, 0x26, 0xe4, 0x71, 0x81, 0x20, 0xa1,
+ 0x3f, 0x47, 0x47, 0xc4,
+};
+static const unsigned char kat3018_addinpr1[] = {
+ 0x29, 0x9f, 0x97, 0x39, 0x93, 0x0f, 0x54, 0x4e, 0x6c, 0x1f, 0xeb, 0xb8,
+ 0x7f, 0x21, 0x4c, 0x71,
+};
+static const unsigned char kat3018_entropyinpr2[] = {
+ 0x37, 0x43, 0x60, 0x47, 0x12, 0x62, 0x51, 0xda, 0x75, 0xc3, 0xef, 0xf7,
+ 0x49, 0xd1, 0x56, 0x33,
+};
+static const unsigned char kat3018_addinpr2[] = {
+ 0xc0, 0x3f, 0xe2, 0x39, 0xf0, 0x44, 0x5a, 0x76, 0x00, 0xcc, 0x07, 0xce,
+ 0xcb, 0x86, 0x46, 0xf8,
+};
+static const unsigned char kat3018_retbits[] = {
+ 0xb4, 0x80, 0xe9, 0x4a, 0xb2, 0x1f, 0x13, 0x71, 0x0b, 0x9f, 0xcb, 0x96,
+ 0x94, 0xd6, 0x35, 0xcb, 0xee, 0x32, 0x26, 0xbb, 0x88, 0xd6, 0x41, 0xc3,
+ 0x61, 0x7f, 0xa4, 0xfc, 0x94, 0x47, 0x7b, 0xbd, 0xda, 0x49, 0xe1, 0xe9,
+ 0x2f, 0x8c, 0x29, 0x89, 0xdd, 0xbb, 0x2a, 0xd0, 0x71, 0x9a, 0xe8, 0xe3,
+ 0x51, 0x5f, 0x4b, 0x20, 0x5c, 0xf6, 0x46, 0x08, 0x6d, 0x64, 0x5c, 0x4a,
+ 0x45, 0xe6, 0x41, 0x35,
+};
+static const struct drbg_kat_pr_true kat3018_t = {
+ 2, kat3018_entropyin, kat3018_nonce, kat3018_persstr,
+ kat3018_entropyinpr1, kat3018_addinpr1, kat3018_entropyinpr2,
+ kat3018_addinpr2, kat3018_retbits
+};
+static const struct drbg_kat kat3018 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3018_t
+};
+
+static const unsigned char kat3019_entropyin[] = {
+ 0xa3, 0x67, 0xc9, 0x42, 0xf9, 0x8b, 0xd9, 0x8c, 0xd2, 0x13, 0x2e, 0x69,
+ 0x16, 0xae, 0x26, 0x44,
+};
+static const unsigned char kat3019_nonce[] = {
+ 0xf1, 0x2f, 0x3e, 0x04, 0x14, 0x3a, 0xd9, 0x17,
+};
+static const unsigned char kat3019_persstr[] = {0};
+static const unsigned char kat3019_entropyinpr1[] = {
+ 0xaa, 0x0d, 0x43, 0x50, 0xf2, 0x99, 0xdc, 0x82, 0x18, 0x80, 0x80, 0x66,
+ 0x68, 0x46, 0x73, 0x14,
+};
+static const unsigned char kat3019_addinpr1[] = {
+ 0x3c, 0x75, 0x36, 0x49, 0xe0, 0xc7, 0x37, 0xac, 0xa4, 0x5e, 0xc2, 0x07,
+ 0xf0, 0x74, 0x72, 0xc3,
+};
+static const unsigned char kat3019_entropyinpr2[] = {
+ 0x45, 0x59, 0x37, 0xc0, 0x25, 0x03, 0x68, 0x23, 0xde, 0x50, 0xe0, 0x9f,
+ 0x15, 0xd5, 0x6e, 0x5e,
+};
+static const unsigned char kat3019_addinpr2[] = {
+ 0x4e, 0x74, 0x6e, 0xfb, 0x72, 0xf0, 0x15, 0x25, 0x0d, 0x5e, 0x4a, 0xdc,
+ 0xf5, 0x22, 0xff, 0x7b,
+};
+static const unsigned char kat3019_retbits[] = {
+ 0x9b, 0xfb, 0x87, 0x65, 0x90, 0x59, 0x2f, 0xb9, 0x2f, 0x1b, 0x53, 0x04,
+ 0x4e, 0xe0, 0x8a, 0x66, 0xec, 0x01, 0x08, 0x6f, 0x76, 0xcb, 0x83, 0xa6,
+ 0x8b, 0x7e, 0xe3, 0xbb, 0xb4, 0xbb, 0x7d, 0x15, 0x31, 0x57, 0x4b, 0x77,
+ 0xca, 0x41, 0x8f, 0x28, 0xde, 0xb8, 0xfd, 0xf7, 0xec, 0x54, 0xe5, 0x6a,
+ 0x33, 0x32, 0x09, 0x9b, 0xdb, 0x6c, 0x12, 0x57, 0xcf, 0x2e, 0xb0, 0x5a,
+ 0xd0, 0x4e, 0x98, 0x9d,
+};
+static const struct drbg_kat_pr_true kat3019_t = {
+ 3, kat3019_entropyin, kat3019_nonce, kat3019_persstr,
+ kat3019_entropyinpr1, kat3019_addinpr1, kat3019_entropyinpr2,
+ kat3019_addinpr2, kat3019_retbits
+};
+static const struct drbg_kat kat3019 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3019_t
+};
+
+static const unsigned char kat3020_entropyin[] = {
+ 0x7a, 0x52, 0x41, 0x62, 0x05, 0x84, 0xf8, 0x52, 0x33, 0xee, 0xc9, 0x3f,
+ 0x98, 0x9b, 0xd0, 0xd9,
+};
+static const unsigned char kat3020_nonce[] = {
+ 0x95, 0xab, 0x8f, 0x25, 0xd2, 0x08, 0x15, 0xf0,
+};
+static const unsigned char kat3020_persstr[] = {0};
+static const unsigned char kat3020_entropyinpr1[] = {
+ 0x81, 0x6e, 0xad, 0x1b, 0xf6, 0x19, 0x80, 0xda, 0xd6, 0xdd, 0xf8, 0x08,
+ 0x8c, 0x32, 0x41, 0x59,
+};
+static const unsigned char kat3020_addinpr1[] = {
+ 0xf2, 0xe2, 0x23, 0xcf, 0x11, 0x0b, 0x62, 0xde, 0xc9, 0x77, 0x22, 0x07,
+ 0x10, 0x94, 0xdd, 0x00,
+};
+static const unsigned char kat3020_entropyinpr2[] = {
+ 0xe4, 0xe6, 0x01, 0x4c, 0xa0, 0x63, 0x69, 0xec, 0x80, 0x6c, 0x6c, 0x5d,
+ 0x70, 0xb4, 0x9e, 0x31,
+};
+static const unsigned char kat3020_addinpr2[] = {
+ 0x43, 0xba, 0x19, 0x6d, 0xdc, 0xc9, 0x90, 0x56, 0xb0, 0x42, 0x4e, 0x03,
+ 0x42, 0x9e, 0xd6, 0x39,
+};
+static const unsigned char kat3020_retbits[] = {
+ 0x0e, 0x8e, 0x57, 0x60, 0x9f, 0x9f, 0xd1, 0xea, 0x5c, 0x25, 0x75, 0xd0,
+ 0x47, 0xfc, 0x11, 0x66, 0xef, 0xb8, 0x62, 0xc6, 0x26, 0x49, 0xcf, 0xe0,
+ 0x71, 0x04, 0x84, 0x96, 0x7c, 0x03, 0x1a, 0x5f, 0xf3, 0x94, 0x05, 0xdd,
+ 0x92, 0x61, 0xc9, 0x52, 0xa0, 0xdc, 0xca, 0x20, 0xa8, 0x10, 0x7b, 0xb5,
+ 0xdf, 0x60, 0x37, 0x62, 0x75, 0x12, 0xd5, 0xa6, 0x21, 0x99, 0x10, 0x5b,
+ 0x46, 0x85, 0xb0, 0xc9,
+};
+static const struct drbg_kat_pr_true kat3020_t = {
+ 4, kat3020_entropyin, kat3020_nonce, kat3020_persstr,
+ kat3020_entropyinpr1, kat3020_addinpr1, kat3020_entropyinpr2,
+ kat3020_addinpr2, kat3020_retbits
+};
+static const struct drbg_kat kat3020 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3020_t
+};
+
+static const unsigned char kat3021_entropyin[] = {
+ 0xfe, 0xb2, 0x89, 0xcf, 0x79, 0x1b, 0xeb, 0x7d, 0xd4, 0xb0, 0xd8, 0x7f,
+ 0x5c, 0x80, 0x5e, 0xa0,
+};
+static const unsigned char kat3021_nonce[] = {
+ 0x78, 0x39, 0x61, 0xe0, 0x68, 0x1a, 0x1f, 0xca,
+};
+static const unsigned char kat3021_persstr[] = {0};
+static const unsigned char kat3021_entropyinpr1[] = {
+ 0x84, 0xce, 0x98, 0x21, 0xb3, 0x5f, 0x7f, 0xe9, 0x8c, 0xba, 0xef, 0xb3,
+ 0x08, 0x0c, 0x92, 0xdb,
+};
+static const unsigned char kat3021_addinpr1[] = {
+ 0x55, 0x06, 0x3e, 0x0b, 0x56, 0xee, 0x6a, 0xdb, 0xbf, 0x00, 0xe6, 0xc1,
+ 0xc7, 0x75, 0xc8, 0x03,
+};
+static const unsigned char kat3021_entropyinpr2[] = {
+ 0x1d, 0x32, 0x86, 0x23, 0x4a, 0xe8, 0x06, 0xed, 0xa3, 0x3b, 0x27, 0x55,
+ 0x38, 0xe7, 0xfc, 0x0d,
+};
+static const unsigned char kat3021_addinpr2[] = {
+ 0xd3, 0x58, 0x0e, 0xb4, 0xfb, 0x45, 0xa9, 0x4a, 0xf6, 0x07, 0x94, 0x69,
+ 0x3d, 0xf7, 0x07, 0xcd,
+};
+static const unsigned char kat3021_retbits[] = {
+ 0x70, 0x09, 0x46, 0x79, 0x52, 0x74, 0x8c, 0x11, 0xb4, 0x5a, 0xb8, 0xc1,
+ 0xbf, 0xe9, 0x92, 0xc9, 0x77, 0x5c, 0x71, 0x52, 0x89, 0x3f, 0x66, 0xc6,
+ 0x8a, 0xd7, 0xf3, 0x68, 0x86, 0xee, 0x25, 0xcb, 0x8f, 0x2e, 0x6d, 0x86,
+ 0x45, 0x30, 0x10, 0x85, 0x4a, 0xc9, 0x51, 0x62, 0x9f, 0x18, 0x28, 0xfe,
+ 0x5c, 0x85, 0xba, 0x7c, 0x86, 0x8d, 0x3d, 0xd4, 0x5c, 0x2b, 0x13, 0xc0,
+ 0xa0, 0xaa, 0x7c, 0xbf,
+};
+static const struct drbg_kat_pr_true kat3021_t = {
+ 5, kat3021_entropyin, kat3021_nonce, kat3021_persstr,
+ kat3021_entropyinpr1, kat3021_addinpr1, kat3021_entropyinpr2,
+ kat3021_addinpr2, kat3021_retbits
+};
+static const struct drbg_kat kat3021 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3021_t
+};
+
+static const unsigned char kat3022_entropyin[] = {
+ 0x2a, 0xc1, 0x06, 0x67, 0x4e, 0xfa, 0xb4, 0x11, 0xf5, 0x1d, 0x52, 0xe5,
+ 0xd6, 0x5e, 0x99, 0x3a,
+};
+static const unsigned char kat3022_nonce[] = {
+ 0x79, 0x79, 0x01, 0x82, 0xb2, 0xc3, 0xd7, 0x6a,
+};
+static const unsigned char kat3022_persstr[] = {0};
+static const unsigned char kat3022_entropyinpr1[] = {
+ 0x3e, 0xa4, 0x23, 0x88, 0xd2, 0x90, 0x5b, 0xa5, 0xa6, 0x9c, 0xd6, 0x2e,
+ 0x2f, 0xde, 0xec, 0x66,
+};
+static const unsigned char kat3022_addinpr1[] = {
+ 0x20, 0xb9, 0x44, 0x42, 0x4d, 0x65, 0x4b, 0x50, 0x38, 0x6d, 0x0d, 0x80,
+ 0xec, 0x3a, 0x0c, 0xad,
+};
+static const unsigned char kat3022_entropyinpr2[] = {
+ 0xe5, 0xdc, 0x83, 0xb1, 0x30, 0x3d, 0xbf, 0x5c, 0x83, 0xfc, 0xab, 0x48,
+ 0xe2, 0xae, 0x6a, 0x70,
+};
+static const unsigned char kat3022_addinpr2[] = {
+ 0x3f, 0x16, 0xb2, 0x19, 0xcd, 0xa6, 0xe9, 0x2f, 0x90, 0x85, 0x76, 0x7c,
+ 0x78, 0xfa, 0x50, 0x56,
+};
+static const unsigned char kat3022_retbits[] = {
+ 0xd4, 0x8a, 0x95, 0x39, 0x0a, 0x20, 0xf0, 0xf7, 0x5b, 0xd9, 0xe2, 0xe5,
+ 0x88, 0xe1, 0x4a, 0xb0, 0xc8, 0x8e, 0xfd, 0x70, 0x01, 0x61, 0x95, 0xe0,
+ 0x33, 0x87, 0x46, 0xb2, 0x46, 0x48, 0xa9, 0x2f, 0x32, 0xca, 0x86, 0x0f,
+ 0xf1, 0x0c, 0x50, 0x76, 0x43, 0x64, 0xb8, 0x14, 0x64, 0x65, 0xe1, 0xea,
+ 0xdc, 0x72, 0x41, 0xb0, 0x30, 0x9b, 0x2a, 0xca, 0x6a, 0x01, 0x30, 0xfa,
+ 0xfe, 0x56, 0x73, 0x50,
+};
+static const struct drbg_kat_pr_true kat3022_t = {
+ 6, kat3022_entropyin, kat3022_nonce, kat3022_persstr,
+ kat3022_entropyinpr1, kat3022_addinpr1, kat3022_entropyinpr2,
+ kat3022_addinpr2, kat3022_retbits
+};
+static const struct drbg_kat kat3022 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3022_t
+};
+
+static const unsigned char kat3023_entropyin[] = {
+ 0x31, 0xf5, 0x8d, 0xd3, 0x68, 0xc2, 0x82, 0x4e, 0x6e, 0x80, 0xa7, 0xc0,
+ 0x2d, 0xbc, 0x36, 0x7b,
+};
+static const unsigned char kat3023_nonce[] = {
+ 0x0e, 0x71, 0xa8, 0xc1, 0x1c, 0xe8, 0x10, 0x6f,
+};
+static const unsigned char kat3023_persstr[] = {0};
+static const unsigned char kat3023_entropyinpr1[] = {
+ 0x12, 0x7d, 0x6a, 0x9f, 0xdd, 0xae, 0x3b, 0xe1, 0xb6, 0x62, 0xf6, 0x43,
+ 0xa5, 0x4e, 0xcc, 0x05,
+};
+static const unsigned char kat3023_addinpr1[] = {
+ 0x99, 0x94, 0x99, 0x7e, 0xd4, 0x32, 0x43, 0x76, 0xcb, 0xeb, 0xe9, 0x8d,
+ 0x60, 0x1f, 0x13, 0xb5,
+};
+static const unsigned char kat3023_entropyinpr2[] = {
+ 0x9f, 0xe8, 0xc7, 0x5b, 0xd8, 0xfe, 0xdf, 0xb3, 0xb2, 0xd1, 0xa5, 0x2c,
+ 0xca, 0x13, 0x3d, 0xde,
+};
+static const unsigned char kat3023_addinpr2[] = {
+ 0xbc, 0xf5, 0xb4, 0xca, 0x25, 0x5a, 0x31, 0x28, 0xce, 0x84, 0x36, 0x49,
+ 0x85, 0x31, 0x94, 0x81,
+};
+static const unsigned char kat3023_retbits[] = {
+ 0x1f, 0xb4, 0xf4, 0x3f, 0x89, 0x37, 0xc1, 0xb8, 0xb4, 0x4e, 0x23, 0x49,
+ 0xd8, 0x1d, 0xaf, 0x57, 0x37, 0xb4, 0x12, 0x53, 0x29, 0x58, 0x35, 0x13,
+ 0xd9, 0x57, 0x64, 0x1c, 0xc1, 0x6b, 0xc9, 0xa5, 0x22, 0x8b, 0x4e, 0x2c,
+ 0x2f, 0xc9, 0x8a, 0x0b, 0x5f, 0x2d, 0xf6, 0xdd, 0x61, 0x00, 0x58, 0xd4,
+ 0x53, 0x9f, 0x0f, 0x50, 0x7e, 0x74, 0x06, 0xef, 0xb8, 0x93, 0x60, 0x5b,
+ 0x29, 0x1d, 0x84, 0xfb,
+};
+static const struct drbg_kat_pr_true kat3023_t = {
+ 7, kat3023_entropyin, kat3023_nonce, kat3023_persstr,
+ kat3023_entropyinpr1, kat3023_addinpr1, kat3023_entropyinpr2,
+ kat3023_addinpr2, kat3023_retbits
+};
+static const struct drbg_kat kat3023 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3023_t
+};
+
+static const unsigned char kat3024_entropyin[] = {
+ 0xd2, 0xde, 0xdd, 0x97, 0xeb, 0x0b, 0x45, 0xc5, 0x90, 0xe1, 0x86, 0x61,
+ 0x43, 0xd1, 0x36, 0x06,
+};
+static const unsigned char kat3024_nonce[] = {
+ 0x30, 0xac, 0xa6, 0xcb, 0x2f, 0x69, 0x10, 0x09,
+};
+static const unsigned char kat3024_persstr[] = {0};
+static const unsigned char kat3024_entropyinpr1[] = {
+ 0xc6, 0xb6, 0x83, 0x4f, 0xe4, 0x0e, 0x95, 0x95, 0xb0, 0x37, 0x23, 0x89,
+ 0x4a, 0x3e, 0xa7, 0x23,
+};
+static const unsigned char kat3024_addinpr1[] = {
+ 0x8d, 0x89, 0xb8, 0xa9, 0x14, 0x05, 0x84, 0x48, 0x00, 0x94, 0xeb, 0x88,
+ 0xaf, 0x6e, 0xcf, 0xae,
+};
+static const unsigned char kat3024_entropyinpr2[] = {
+ 0xce, 0xab, 0x7c, 0x1f, 0x7c, 0xe2, 0x99, 0x70, 0x21, 0xa7, 0x59, 0xdc,
+ 0xae, 0x06, 0xac, 0x14,
+};
+static const unsigned char kat3024_addinpr2[] = {
+ 0x31, 0x6a, 0x84, 0x82, 0x50, 0x59, 0x7e, 0x51, 0xe7, 0x31, 0x43, 0xbc,
+ 0x36, 0xe3, 0xd3, 0xb7,
+};
+static const unsigned char kat3024_retbits[] = {
+ 0x69, 0x5a, 0x28, 0x33, 0xb7, 0xf7, 0x2f, 0x5b, 0x2b, 0x00, 0x5f, 0xe3,
+ 0x23, 0x7b, 0x74, 0xad, 0x56, 0x2f, 0xca, 0x3b, 0x8d, 0x13, 0x9c, 0x15,
+ 0x0c, 0x9f, 0x09, 0x4c, 0x67, 0x54, 0x02, 0x27, 0x9e, 0xda, 0x56, 0xa7,
+ 0x94, 0x15, 0x48, 0x6f, 0x20, 0x34, 0x1b, 0x1a, 0xf8, 0x9c, 0x27, 0xf8,
+ 0x7e, 0xed, 0xd8, 0xaa, 0xaa, 0x77, 0x3f, 0x02, 0x5e, 0x4b, 0xe3, 0xf0,
+ 0xb8, 0x38, 0x00, 0xea,
+};
+static const struct drbg_kat_pr_true kat3024_t = {
+ 8, kat3024_entropyin, kat3024_nonce, kat3024_persstr,
+ kat3024_entropyinpr1, kat3024_addinpr1, kat3024_entropyinpr2,
+ kat3024_addinpr2, kat3024_retbits
+};
+static const struct drbg_kat kat3024 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3024_t
+};
+
+static const unsigned char kat3025_entropyin[] = {
+ 0xf9, 0xbe, 0xcd, 0x9f, 0x99, 0x72, 0xd8, 0x91, 0xa2, 0x86, 0x3b, 0xa8,
+ 0x6c, 0x78, 0x83, 0x9c,
+};
+static const unsigned char kat3025_nonce[] = {
+ 0x8e, 0x2f, 0x8a, 0x50, 0x8e, 0x1d, 0x0e, 0x56,
+};
+static const unsigned char kat3025_persstr[] = {0};
+static const unsigned char kat3025_entropyinpr1[] = {
+ 0x38, 0x60, 0x74, 0xc4, 0xca, 0xe9, 0xb5, 0x50, 0x26, 0xdc, 0x65, 0x7d,
+ 0x0c, 0x5a, 0xbd, 0x58,
+};
+static const unsigned char kat3025_addinpr1[] = {
+ 0x6b, 0x7a, 0x9e, 0xe4, 0x19, 0x0d, 0x9e, 0xbe, 0xe2, 0xd2, 0x57, 0xe9,
+ 0xb2, 0x12, 0x8c, 0xcb,
+};
+static const unsigned char kat3025_entropyinpr2[] = {
+ 0xf8, 0xca, 0x55, 0xa4, 0x7a, 0x5d, 0x7e, 0x4e, 0x90, 0xaa, 0x4a, 0xb7,
+ 0x18, 0x5d, 0x46, 0x92,
+};
+static const unsigned char kat3025_addinpr2[] = {
+ 0xd3, 0x0b, 0x83, 0x56, 0x5c, 0x6a, 0xe1, 0xfd, 0x54, 0x20, 0x34, 0x1c,
+ 0x91, 0xb7, 0x2c, 0xca,
+};
+static const unsigned char kat3025_retbits[] = {
+ 0xb4, 0x75, 0x15, 0x5b, 0x6c, 0x5a, 0x8f, 0xf4, 0xd6, 0x6e, 0x7e, 0xe2,
+ 0xf9, 0xe4, 0x8d, 0x3c, 0xd9, 0x04, 0x5a, 0x60, 0x40, 0xf7, 0x1f, 0x83,
+ 0x1b, 0x39, 0xce, 0xa4, 0x90, 0xbe, 0x03, 0x5b, 0x76, 0xef, 0x80, 0xc7,
+ 0xf0, 0x55, 0x89, 0xf4, 0xde, 0x02, 0xc7, 0xb4, 0xfc, 0xb1, 0xba, 0x64,
+ 0xf3, 0x84, 0x13, 0x2d, 0x2b, 0x12, 0x45, 0x99, 0x25, 0x85, 0xc1, 0xd7,
+ 0xcc, 0x91, 0xab, 0x66,
+};
+static const struct drbg_kat_pr_true kat3025_t = {
+ 9, kat3025_entropyin, kat3025_nonce, kat3025_persstr,
+ kat3025_entropyinpr1, kat3025_addinpr1, kat3025_entropyinpr2,
+ kat3025_addinpr2, kat3025_retbits
+};
+static const struct drbg_kat kat3025 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3025_t
+};
+
+static const unsigned char kat3026_entropyin[] = {
+ 0x20, 0x1e, 0xac, 0x70, 0x17, 0x5e, 0x22, 0x6b, 0x29, 0x65, 0xd0, 0x64,
+ 0x65, 0x87, 0x99, 0x87,
+};
+static const unsigned char kat3026_nonce[] = {
+ 0xa9, 0xd7, 0x90, 0x6e, 0xd8, 0x5f, 0x62, 0x0a,
+};
+static const unsigned char kat3026_persstr[] = {0};
+static const unsigned char kat3026_entropyinpr1[] = {
+ 0xb5, 0x8c, 0xa8, 0x7d, 0x15, 0x7b, 0x8c, 0x2d, 0xc3, 0x95, 0xda, 0xd5,
+ 0x5f, 0x80, 0x5b, 0x2b,
+};
+static const unsigned char kat3026_addinpr1[] = {
+ 0xab, 0x79, 0x61, 0xfd, 0x74, 0x2b, 0xba, 0x79, 0xfe, 0x58, 0xd7, 0x45,
+ 0x5c, 0xf8, 0x65, 0xad,
+};
+static const unsigned char kat3026_entropyinpr2[] = {
+ 0x2e, 0xaa, 0x52, 0xd5, 0x56, 0x34, 0x29, 0xdc, 0x47, 0xf2, 0xd6, 0x97,
+ 0x04, 0x61, 0xa4, 0xf2,
+};
+static const unsigned char kat3026_addinpr2[] = {
+ 0xd4, 0xfa, 0x5d, 0xca, 0x9e, 0xbd, 0xc6, 0x01, 0xb0, 0x90, 0x25, 0x28,
+ 0x56, 0x13, 0x39, 0xe0,
+};
+static const unsigned char kat3026_retbits[] = {
+ 0x48, 0x02, 0xba, 0xba, 0xf4, 0x30, 0x54, 0x36, 0x3b, 0xe9, 0x30, 0xea,
+ 0x6d, 0x1e, 0x6f, 0x3d, 0xbe, 0x73, 0xe5, 0x20, 0xee, 0xc7, 0xc9, 0x70,
+ 0x7a, 0x01, 0x60, 0x99, 0xd1, 0x88, 0x1b, 0x1b, 0xf2, 0x8b, 0xaf, 0xaf,
+ 0xaa, 0xde, 0xb1, 0xdb, 0xc6, 0x86, 0x17, 0x73, 0x95, 0xb6, 0xb3, 0xcc,
+ 0x4f, 0xcc, 0x60, 0x5e, 0xdd, 0xec, 0x7d, 0x57, 0x18, 0x44, 0x07, 0x22,
+ 0x0b, 0xf5, 0xc8, 0x9c,
+};
+static const struct drbg_kat_pr_true kat3026_t = {
+ 10, kat3026_entropyin, kat3026_nonce, kat3026_persstr,
+ kat3026_entropyinpr1, kat3026_addinpr1, kat3026_entropyinpr2,
+ kat3026_addinpr2, kat3026_retbits
+};
+static const struct drbg_kat kat3026 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3026_t
+};
+
+static const unsigned char kat3027_entropyin[] = {
+ 0xdf, 0xc2, 0xe3, 0xb3, 0xb1, 0x4f, 0x3a, 0xaf, 0x15, 0x1b, 0x2f, 0x17,
+ 0x74, 0x9c, 0xfb, 0x5f,
+};
+static const unsigned char kat3027_nonce[] = {
+ 0x0d, 0xd8, 0xea, 0xe1, 0x34, 0x4a, 0xcd, 0x0c,
+};
+static const unsigned char kat3027_persstr[] = {0};
+static const unsigned char kat3027_entropyinpr1[] = {
+ 0xb2, 0xbd, 0x8b, 0xe7, 0xbf, 0xa0, 0xee, 0x9f, 0x32, 0x9a, 0xf5, 0x11,
+ 0xc8, 0xab, 0x63, 0x1c,
+};
+static const unsigned char kat3027_addinpr1[] = {
+ 0xab, 0xa5, 0x5a, 0xf2, 0x66, 0xc8, 0xeb, 0x91, 0x53, 0xfc, 0xc1, 0x45,
+ 0xcc, 0x06, 0x9e, 0x6e,
+};
+static const unsigned char kat3027_entropyinpr2[] = {
+ 0x42, 0xe2, 0xf3, 0x84, 0xfb, 0x5a, 0xc8, 0x67, 0xc6, 0x4d, 0x40, 0x37,
+ 0x5e, 0x96, 0x30, 0x9e,
+};
+static const unsigned char kat3027_addinpr2[] = {
+ 0xd6, 0x2a, 0x2a, 0x87, 0xd5, 0xd5, 0x8a, 0x0f, 0x82, 0x24, 0x63, 0x2e,
+ 0x9a, 0x2d, 0x9d, 0xa0,
+};
+static const unsigned char kat3027_retbits[] = {
+ 0xa5, 0xd6, 0x41, 0x31, 0xc4, 0x46, 0xbc, 0x39, 0xba, 0xeb, 0x01, 0x69,
+ 0xd7, 0xc2, 0x5d, 0x10, 0x73, 0x21, 0x24, 0x0e, 0x7e, 0x6a, 0xf0, 0xb4,
+ 0x05, 0xd8, 0xfc, 0xdb, 0x51, 0xb1, 0x31, 0x71, 0x95, 0x6c, 0xbd, 0x30,
+ 0x89, 0x8e, 0x55, 0x9b, 0x9c, 0x04, 0xe9, 0x04, 0x9d, 0x9f, 0x91, 0xc7,
+ 0x40, 0xbc, 0x65, 0xfd, 0xfc, 0xc6, 0xc1, 0xae, 0xde, 0x1c, 0x19, 0xbe,
+ 0x7c, 0x71, 0x4b, 0x2e,
+};
+static const struct drbg_kat_pr_true kat3027_t = {
+ 11, kat3027_entropyin, kat3027_nonce, kat3027_persstr,
+ kat3027_entropyinpr1, kat3027_addinpr1, kat3027_entropyinpr2,
+ kat3027_addinpr2, kat3027_retbits
+};
+static const struct drbg_kat kat3027 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3027_t
+};
+
+static const unsigned char kat3028_entropyin[] = {
+ 0x9d, 0x32, 0xa9, 0x36, 0x55, 0xad, 0x56, 0x50, 0x99, 0x4b, 0x23, 0x0f,
+ 0xb5, 0x9f, 0xf6, 0x42,
+};
+static const unsigned char kat3028_nonce[] = {
+ 0xf7, 0x06, 0xa7, 0xde, 0x48, 0xc3, 0xee, 0xf0,
+};
+static const unsigned char kat3028_persstr[] = {0};
+static const unsigned char kat3028_entropyinpr1[] = {
+ 0x1b, 0x2a, 0xdf, 0x4b, 0x38, 0x64, 0x32, 0xd6, 0x0a, 0xa7, 0xfb, 0x76,
+ 0x4b, 0x06, 0xdb, 0xa6,
+};
+static const unsigned char kat3028_addinpr1[] = {
+ 0xfa, 0xf6, 0x38, 0x77, 0xf7, 0x47, 0xe7, 0x08, 0x0a, 0x2e, 0x71, 0x84,
+ 0x2b, 0x63, 0xf1, 0x04,
+};
+static const unsigned char kat3028_entropyinpr2[] = {
+ 0xa6, 0xaf, 0xd3, 0x41, 0x7d, 0x2d, 0x04, 0xa5, 0x45, 0x4a, 0xa4, 0x85,
+ 0xd1, 0x5c, 0xe0, 0x19,
+};
+static const unsigned char kat3028_addinpr2[] = {
+ 0x4e, 0x50, 0xbb, 0x0c, 0x18, 0xfb, 0xca, 0x49, 0x24, 0x82, 0xc1, 0xa7,
+ 0xa0, 0xb6, 0x60, 0x19,
+};
+static const unsigned char kat3028_retbits[] = {
+ 0x26, 0x78, 0x47, 0x48, 0x4c, 0xf6, 0x88, 0x33, 0x47, 0xa4, 0x75, 0x25,
+ 0x7a, 0x62, 0x12, 0x67, 0xd9, 0x75, 0x93, 0x8d, 0x29, 0x2c, 0x35, 0xdd,
+ 0xe4, 0xa7, 0x8b, 0x56, 0x49, 0x02, 0x4d, 0xdf, 0xb5, 0xc7, 0x3a, 0x71,
+ 0x52, 0x3a, 0x4d, 0x9d, 0xeb, 0x66, 0xf2, 0xd8, 0x3f, 0xad, 0x2c, 0x2f,
+ 0x85, 0x8e, 0xd5, 0xab, 0x2e, 0x5f, 0xfa, 0xab, 0x6a, 0xa8, 0x73, 0x97,
+ 0x73, 0x8a, 0x4e, 0x66,
+};
+static const struct drbg_kat_pr_true kat3028_t = {
+ 12, kat3028_entropyin, kat3028_nonce, kat3028_persstr,
+ kat3028_entropyinpr1, kat3028_addinpr1, kat3028_entropyinpr2,
+ kat3028_addinpr2, kat3028_retbits
+};
+static const struct drbg_kat kat3028 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3028_t
+};
+
+static const unsigned char kat3029_entropyin[] = {
+ 0xcc, 0x17, 0xb2, 0x7a, 0xfb, 0x86, 0x98, 0x3a, 0x77, 0x5c, 0xa4, 0x2a,
+ 0x2f, 0x55, 0x82, 0xbe,
+};
+static const unsigned char kat3029_nonce[] = {
+ 0x96, 0xb3, 0x19, 0x43, 0x66, 0xd7, 0x8c, 0xfd,
+};
+static const unsigned char kat3029_persstr[] = {0};
+static const unsigned char kat3029_entropyinpr1[] = {
+ 0xa0, 0x68, 0x97, 0x9b, 0xe5, 0x1f, 0x41, 0xf5, 0xec, 0xf8, 0xb2, 0x98,
+ 0xcf, 0x50, 0x7c, 0xec,
+};
+static const unsigned char kat3029_addinpr1[] = {
+ 0xf6, 0xc9, 0x4f, 0x8c, 0x76, 0xb4, 0xac, 0x64, 0x79, 0x07, 0x93, 0x32,
+ 0x25, 0x0d, 0x1a, 0x25,
+};
+static const unsigned char kat3029_entropyinpr2[] = {
+ 0xfa, 0xcb, 0xf3, 0x90, 0xa4, 0xe5, 0x97, 0x66, 0x3e, 0xcb, 0x80, 0xd5,
+ 0xae, 0x05, 0x32, 0xc6,
+};
+static const unsigned char kat3029_addinpr2[] = {
+ 0x16, 0xb6, 0x47, 0x03, 0xf8, 0x7f, 0xbb, 0xef, 0xba, 0x19, 0x81, 0xf4,
+ 0x73, 0xc4, 0x6c, 0xb0,
+};
+static const unsigned char kat3029_retbits[] = {
+ 0xf7, 0xbe, 0xa9, 0x4f, 0x8e, 0xf3, 0x45, 0x67, 0xfc, 0x1e, 0x37, 0x29,
+ 0x91, 0xc4, 0xbc, 0xca, 0x00, 0x8c, 0x0c, 0x6e, 0x60, 0x7e, 0xed, 0xe9,
+ 0x15, 0xb0, 0xe6, 0x52, 0x53, 0xba, 0xf1, 0x87, 0x79, 0x7c, 0x80, 0x17,
+ 0xf6, 0xe6, 0x6f, 0xbb, 0x94, 0xc2, 0x65, 0xfb, 0x15, 0x42, 0xac, 0x91,
+ 0x9d, 0xe5, 0xa6, 0xd1, 0xa1, 0xd6, 0x4e, 0x13, 0x1b, 0xf2, 0x46, 0xc8,
+ 0x33, 0xf8, 0xab, 0x21,
+};
+static const struct drbg_kat_pr_true kat3029_t = {
+ 13, kat3029_entropyin, kat3029_nonce, kat3029_persstr,
+ kat3029_entropyinpr1, kat3029_addinpr1, kat3029_entropyinpr2,
+ kat3029_addinpr2, kat3029_retbits
+};
+static const struct drbg_kat kat3029 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3029_t
+};
+
+static const unsigned char kat3030_entropyin[] = {
+ 0x8f, 0x9f, 0x23, 0xe0, 0x5c, 0xf4, 0x1f, 0x23, 0x7f, 0xe8, 0x54, 0x2d,
+ 0x02, 0x4d, 0x8f, 0xea,
+};
+static const unsigned char kat3030_nonce[] = {
+ 0xbf, 0x92, 0xdb, 0xde, 0x6c, 0xb6, 0x20, 0xda,
+};
+static const unsigned char kat3030_persstr[] = {0};
+static const unsigned char kat3030_entropyinpr1[] = {
+ 0x1e, 0x4b, 0x4f, 0x23, 0x49, 0x04, 0x86, 0x8b, 0xb6, 0xa6, 0x36, 0xa5,
+ 0xca, 0x4f, 0xdd, 0x27,
+};
+static const unsigned char kat3030_addinpr1[] = {
+ 0x2b, 0xd8, 0x95, 0xb6, 0xdc, 0x12, 0x24, 0x87, 0x6b, 0xe8, 0xca, 0x9e,
+ 0xfe, 0x77, 0x2e, 0xf3,
+};
+static const unsigned char kat3030_entropyinpr2[] = {
+ 0xd4, 0xb1, 0xf7, 0x64, 0xe5, 0x48, 0x98, 0x59, 0x02, 0xc4, 0x76, 0xbf,
+ 0x83, 0x19, 0xc9, 0x35,
+};
+static const unsigned char kat3030_addinpr2[] = {
+ 0xea, 0xb6, 0x2c, 0x59, 0xcf, 0x96, 0x60, 0x79, 0x0b, 0xf9, 0x32, 0xa8,
+ 0xfb, 0xb5, 0xcb, 0x63,
+};
+static const unsigned char kat3030_retbits[] = {
+ 0x9d, 0xc3, 0x68, 0x0f, 0x2b, 0x1e, 0x78, 0xc0, 0x74, 0x5e, 0x29, 0xdd,
+ 0x72, 0xf4, 0x0e, 0x0f, 0x1e, 0xd1, 0xea, 0x4e, 0x2e, 0x09, 0x64, 0x9d,
+ 0xb1, 0x64, 0x03, 0xbe, 0x15, 0xe6, 0x2f, 0x58, 0xde, 0x1a, 0xa6, 0xe3,
+ 0x2b, 0xe5, 0x82, 0x7d, 0x34, 0x78, 0x49, 0x89, 0x5e, 0x70, 0x0c, 0x2a,
+ 0xb1, 0x6f, 0x4b, 0x4c, 0x0f, 0x2e, 0x85, 0xe6, 0xd1, 0xc0, 0xf3, 0xf6,
+ 0x1d, 0x12, 0xe1, 0x12,
+};
+static const struct drbg_kat_pr_true kat3030_t = {
+ 14, kat3030_entropyin, kat3030_nonce, kat3030_persstr,
+ kat3030_entropyinpr1, kat3030_addinpr1, kat3030_entropyinpr2,
+ kat3030_addinpr2, kat3030_retbits
+};
+static const struct drbg_kat kat3030 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3030_t
+};
+
+static const unsigned char kat3031_entropyin[] = {
+ 0xbe, 0x8e, 0x54, 0x45, 0x90, 0xea, 0xa4, 0x52, 0x17, 0xb0, 0x71, 0x1a,
+ 0x1c, 0x66, 0xaf, 0x8f,
+};
+static const unsigned char kat3031_nonce[] = {
+ 0x1f, 0xd5, 0x42, 0xb1, 0xf3, 0x6b, 0x6f, 0xa3,
+};
+static const unsigned char kat3031_persstr[] = {
+ 0x78, 0x4e, 0x78, 0x54, 0x28, 0x5c, 0x86, 0xa8, 0xff, 0x26, 0x65, 0xfd,
+ 0x2d, 0xc0, 0x71, 0x20,
+};
+static const unsigned char kat3031_entropyinpr1[] = {
+ 0xc6, 0xf1, 0x00, 0x5e, 0xea, 0x05, 0x93, 0x45, 0xec, 0xdb, 0xe4, 0x09,
+ 0x92, 0xaa, 0x07, 0xd7,
+};
+static const unsigned char kat3031_addinpr1[] = {0};
+static const unsigned char kat3031_entropyinpr2[] = {
+ 0xd2, 0xf1, 0x49, 0x5c, 0xf0, 0x03, 0xfa, 0x79, 0xac, 0xc3, 0xc6, 0xfc,
+ 0xac, 0x45, 0xf6, 0x1e,
+};
+static const unsigned char kat3031_addinpr2[] = {0};
+static const unsigned char kat3031_retbits[] = {
+ 0xd6, 0x16, 0x60, 0xe2, 0x45, 0x71, 0x18, 0x2e, 0x4e, 0x8c, 0x03, 0x88,
+ 0xbd, 0xc1, 0x85, 0x6d, 0x97, 0x11, 0xc4, 0x8b, 0xad, 0x23, 0x56, 0xa7,
+ 0x51, 0x02, 0x60, 0xa3, 0xd9, 0x06, 0x02, 0xf9, 0x87, 0x57, 0xe0, 0xb9,
+ 0xb9, 0x2b, 0x03, 0x5b, 0x47, 0xf5, 0x33, 0x16, 0x2e, 0xd9, 0xc4, 0x78,
+ 0x05, 0x99, 0x0b, 0x29, 0xdc, 0x9d, 0xa1, 0x38, 0x30, 0xb1, 0x59, 0x24,
+ 0x6e, 0x7a, 0xf5, 0x7e,
+};
+static const struct drbg_kat_pr_true kat3031_t = {
+ 0, kat3031_entropyin, kat3031_nonce, kat3031_persstr,
+ kat3031_entropyinpr1, kat3031_addinpr1, kat3031_entropyinpr2,
+ kat3031_addinpr2, kat3031_retbits
+};
+static const struct drbg_kat kat3031 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3031_t
+};
+
+static const unsigned char kat3032_entropyin[] = {
+ 0xe0, 0x01, 0xdb, 0xb1, 0xde, 0x3e, 0x78, 0x77, 0xd9, 0x1e, 0x97, 0x21,
+ 0x53, 0x4a, 0x59, 0x57,
+};
+static const unsigned char kat3032_nonce[] = {
+ 0xbd, 0xb8, 0x61, 0x6c, 0xa2, 0x96, 0x50, 0x7f,
+};
+static const unsigned char kat3032_persstr[] = {
+ 0x2a, 0xfc, 0xb4, 0xa7, 0x2f, 0xbe, 0x43, 0xb8, 0xa3, 0x53, 0xb7, 0x12,
+ 0x38, 0xb2, 0x19, 0x23,
+};
+static const unsigned char kat3032_entropyinpr1[] = {
+ 0x37, 0xc3, 0xb5, 0x17, 0xe2, 0x4f, 0x85, 0xaf, 0x2b, 0x89, 0x20, 0xbb,
+ 0x7f, 0xba, 0x59, 0x7a,
+};
+static const unsigned char kat3032_addinpr1[] = {0};
+static const unsigned char kat3032_entropyinpr2[] = {
+ 0x24, 0xa5, 0xfe, 0x5b, 0x5e, 0xa0, 0x1c, 0xc0, 0x05, 0x85, 0xfa, 0x2c,
+ 0x76, 0xa3, 0x59, 0xb7,
+};
+static const unsigned char kat3032_addinpr2[] = {0};
+static const unsigned char kat3032_retbits[] = {
+ 0x44, 0x86, 0xad, 0xe7, 0xb5, 0x39, 0xef, 0x6c, 0x45, 0x9c, 0x8e, 0x26,
+ 0xcf, 0x84, 0xd9, 0x7c, 0xe6, 0x4c, 0x1a, 0xf2, 0xd1, 0x45, 0x70, 0x69,
+ 0x8e, 0x54, 0xfe, 0xab, 0x99, 0x9e, 0x0a, 0xf1, 0x53, 0x3b, 0x73, 0xe7,
+ 0x7f, 0x69, 0xfc, 0x55, 0xaf, 0xb7, 0x26, 0xfe, 0xd0, 0x01, 0xdf, 0xaa,
+ 0x36, 0xad, 0xd4, 0x7a, 0xa8, 0x72, 0x4f, 0xd3, 0x31, 0x66, 0x76, 0xe7,
+ 0x53, 0x1f, 0x52, 0x64,
+};
+static const struct drbg_kat_pr_true kat3032_t = {
+ 1, kat3032_entropyin, kat3032_nonce, kat3032_persstr,
+ kat3032_entropyinpr1, kat3032_addinpr1, kat3032_entropyinpr2,
+ kat3032_addinpr2, kat3032_retbits
+};
+static const struct drbg_kat kat3032 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3032_t
+};
+
+static const unsigned char kat3033_entropyin[] = {
+ 0xec, 0x90, 0xeb, 0xdb, 0xa5, 0x84, 0xdd, 0x53, 0x30, 0xf5, 0xca, 0x15,
+ 0xd8, 0x2a, 0x7c, 0xc1,
+};
+static const unsigned char kat3033_nonce[] = {
+ 0x70, 0xc6, 0x00, 0xd5, 0xe1, 0xa2, 0xf7, 0xe5,
+};
+static const unsigned char kat3033_persstr[] = {
+ 0xac, 0x25, 0xfe, 0xf9, 0x23, 0x1e, 0x94, 0x80, 0x24, 0x53, 0x58, 0xc4,
+ 0x08, 0xfa, 0xe6, 0xde,
+};
+static const unsigned char kat3033_entropyinpr1[] = {
+ 0x21, 0x18, 0xfa, 0xdf, 0xad, 0x20, 0x64, 0x2c, 0x42, 0x51, 0x6b, 0x36,
+ 0xc5, 0xee, 0x0e, 0xb3,
+};
+static const unsigned char kat3033_addinpr1[] = {0};
+static const unsigned char kat3033_entropyinpr2[] = {
+ 0x0b, 0xee, 0x2a, 0xf7, 0x97, 0xc9, 0xfc, 0x61, 0xdc, 0x40, 0xbe, 0x9e,
+ 0xba, 0x2c, 0xee, 0xff,
+};
+static const unsigned char kat3033_addinpr2[] = {0};
+static const unsigned char kat3033_retbits[] = {
+ 0x94, 0x65, 0xbd, 0xc7, 0x66, 0xa8, 0x04, 0xee, 0x55, 0x1b, 0x74, 0xad,
+ 0x5a, 0xf0, 0xac, 0x19, 0xc4, 0x84, 0x28, 0x98, 0x46, 0x54, 0xeb, 0xa9,
+ 0xd7, 0xec, 0xd8, 0xb4, 0x3d, 0x71, 0x64, 0x70, 0xa8, 0x56, 0x84, 0x67,
+ 0xf3, 0x62, 0x14, 0x01, 0x0b, 0x67, 0x6b, 0x1a, 0xb3, 0xd8, 0x81, 0x87,
+ 0x34, 0xe0, 0xdd, 0xe2, 0x6d, 0x57, 0x0f, 0x5a, 0x88, 0x56, 0x20, 0x4e,
+ 0x74, 0x4d, 0x71, 0x67,
+};
+static const struct drbg_kat_pr_true kat3033_t = {
+ 2, kat3033_entropyin, kat3033_nonce, kat3033_persstr,
+ kat3033_entropyinpr1, kat3033_addinpr1, kat3033_entropyinpr2,
+ kat3033_addinpr2, kat3033_retbits
+};
+static const struct drbg_kat kat3033 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3033_t
+};
+
+static const unsigned char kat3034_entropyin[] = {
+ 0x70, 0xd5, 0x75, 0x87, 0x1d, 0x6d, 0x38, 0xf5, 0x61, 0xd3, 0xe0, 0xd6,
+ 0xbb, 0x45, 0x0b, 0x41,
+};
+static const unsigned char kat3034_nonce[] = {
+ 0x10, 0x73, 0xee, 0x1a, 0x8f, 0x25, 0x58, 0x74,
+};
+static const unsigned char kat3034_persstr[] = {
+ 0x5b, 0x71, 0x01, 0x59, 0x02, 0x39, 0x65, 0x36, 0xa9, 0x0b, 0x1f, 0x9f,
+ 0x86, 0xf6, 0xef, 0x4a,
+};
+static const unsigned char kat3034_entropyinpr1[] = {
+ 0x8d, 0xf6, 0x64, 0x21, 0x44, 0xf0, 0xaa, 0xb4, 0xd6, 0x2e, 0x86, 0x3a,
+ 0x60, 0xd0, 0xec, 0x57,
+};
+static const unsigned char kat3034_addinpr1[] = {0};
+static const unsigned char kat3034_entropyinpr2[] = {
+ 0x81, 0x9b, 0xfb, 0x6d, 0xa4, 0x2f, 0xfe, 0x7d, 0xc1, 0x8a, 0x23, 0x18,
+ 0x97, 0xdf, 0xed, 0x1d,
+};
+static const unsigned char kat3034_addinpr2[] = {0};
+static const unsigned char kat3034_retbits[] = {
+ 0xfe, 0xed, 0x5a, 0xd2, 0x51, 0x77, 0xd2, 0x9f, 0x2d, 0x67, 0x0f, 0xb2,
+ 0x5f, 0x21, 0x50, 0x85, 0xa0, 0x59, 0x6d, 0xa9, 0x3c, 0xc9, 0x0f, 0x65,
+ 0x42, 0xff, 0x14, 0xe3, 0xbb, 0xf8, 0xbb, 0xc5, 0x14, 0xe6, 0x18, 0x47,
+ 0xc6, 0xce, 0xda, 0x1b, 0xb4, 0xf1, 0x52, 0x4e, 0x59, 0xcb, 0x6e, 0x7e,
+ 0x81, 0xd9, 0x79, 0x16, 0xa8, 0xe6, 0xc0, 0x00, 0xa7, 0x1e, 0xc1, 0xf2,
+ 0xc4, 0x5c, 0x8c, 0xb2,
+};
+static const struct drbg_kat_pr_true kat3034_t = {
+ 3, kat3034_entropyin, kat3034_nonce, kat3034_persstr,
+ kat3034_entropyinpr1, kat3034_addinpr1, kat3034_entropyinpr2,
+ kat3034_addinpr2, kat3034_retbits
+};
+static const struct drbg_kat kat3034 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3034_t
+};
+
+static const unsigned char kat3035_entropyin[] = {
+ 0x17, 0x8b, 0xb5, 0xd9, 0xf4, 0xba, 0x49, 0xd7, 0xdf, 0xed, 0x71, 0xce,
+ 0xe1, 0x04, 0xec, 0x47,
+};
+static const unsigned char kat3035_nonce[] = {
+ 0xa3, 0xf5, 0xa9, 0xa3, 0x49, 0xea, 0xf2, 0x6a,
+};
+static const unsigned char kat3035_persstr[] = {
+ 0xb2, 0xf6, 0x00, 0xe9, 0x5d, 0x10, 0xc6, 0xf0, 0x1b, 0x41, 0xb9, 0x93,
+ 0x35, 0xa1, 0x1e, 0x29,
+};
+static const unsigned char kat3035_entropyinpr1[] = {
+ 0xfc, 0x4d, 0xd0, 0x35, 0xe1, 0xfe, 0xfb, 0x4d, 0xb5, 0x5b, 0x21, 0x34,
+ 0x3f, 0x7e, 0xe4, 0x72,
+};
+static const unsigned char kat3035_addinpr1[] = {0};
+static const unsigned char kat3035_entropyinpr2[] = {
+ 0x5a, 0x0c, 0x9b, 0xd0, 0x20, 0x1c, 0xfc, 0x9a, 0x98, 0x3c, 0x01, 0xbb,
+ 0x96, 0x2d, 0xe7, 0x73,
+};
+static const unsigned char kat3035_addinpr2[] = {0};
+static const unsigned char kat3035_retbits[] = {
+ 0x30, 0x50, 0x3e, 0x23, 0x18, 0xb1, 0xc6, 0x71, 0x23, 0x80, 0x2c, 0xc5,
+ 0x30, 0x2d, 0xf8, 0xd5, 0xdd, 0x5f, 0x09, 0x7c, 0x80, 0x44, 0x86, 0x07,
+ 0x05, 0x9b, 0x15, 0xbe, 0xde, 0x38, 0xfe, 0x5f, 0xc4, 0x49, 0xb7, 0x43,
+ 0xbe, 0xd2, 0x22, 0x92, 0x62, 0x20, 0xfd, 0x74, 0x70, 0xd4, 0xc6, 0x22,
+ 0x3a, 0x22, 0x42, 0xac, 0x4c, 0x60, 0x3b, 0x9c, 0xcc, 0xa8, 0x00, 0xa7,
+ 0x25, 0x37, 0xb0, 0xfa,
+};
+static const struct drbg_kat_pr_true kat3035_t = {
+ 4, kat3035_entropyin, kat3035_nonce, kat3035_persstr,
+ kat3035_entropyinpr1, kat3035_addinpr1, kat3035_entropyinpr2,
+ kat3035_addinpr2, kat3035_retbits
+};
+static const struct drbg_kat kat3035 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3035_t
+};
+
+static const unsigned char kat3036_entropyin[] = {
+ 0x8c, 0xfb, 0xce, 0xfe, 0xb6, 0x6e, 0x2b, 0x1f, 0x36, 0xa0, 0xb7, 0xe9,
+ 0x0a, 0xe5, 0x56, 0x10,
+};
+static const unsigned char kat3036_nonce[] = {
+ 0xd0, 0x0b, 0xa4, 0x06, 0x5b, 0xe0, 0xb6, 0x0d,
+};
+static const unsigned char kat3036_persstr[] = {
+ 0x64, 0x5d, 0x21, 0x21, 0xdc, 0xf0, 0xfe, 0x6d, 0xa8, 0x7a, 0xf3, 0xb0,
+ 0xbc, 0x8b, 0xba, 0x2a,
+};
+static const unsigned char kat3036_entropyinpr1[] = {
+ 0xac, 0x39, 0xdc, 0x73, 0xed, 0x83, 0x51, 0x63, 0x19, 0xce, 0xa2, 0x1d,
+ 0xd2, 0xc2, 0xb3, 0xf9,
+};
+static const unsigned char kat3036_addinpr1[] = {0};
+static const unsigned char kat3036_entropyinpr2[] = {
+ 0xa2, 0x12, 0x50, 0x4a, 0x89, 0xb7, 0x59, 0xfd, 0x17, 0xe6, 0x46, 0xa4,
+ 0x43, 0x0b, 0x8d, 0xb7,
+};
+static const unsigned char kat3036_addinpr2[] = {0};
+static const unsigned char kat3036_retbits[] = {
+ 0x11, 0x77, 0x85, 0xb3, 0x83, 0x3d, 0x41, 0x8c, 0x82, 0xd4, 0xbd, 0x82,
+ 0x1b, 0xf9, 0xb6, 0xab, 0xd8, 0xa4, 0x24, 0x35, 0xf6, 0xbd, 0x4a, 0x04,
+ 0xfc, 0x2d, 0x2c, 0x25, 0x0a, 0xae, 0xd5, 0x04, 0x1b, 0x74, 0xd5, 0xbf,
+ 0xd3, 0x98, 0x09, 0x7f, 0x81, 0x83, 0x7b, 0x9a, 0x10, 0xc7, 0xae, 0x5b,
+ 0xa7, 0x93, 0x6a, 0x9c, 0xeb, 0xad, 0x31, 0xe2, 0xe0, 0xac, 0x4d, 0xfc,
+ 0x3f, 0x35, 0x1b, 0xfc,
+};
+static const struct drbg_kat_pr_true kat3036_t = {
+ 5, kat3036_entropyin, kat3036_nonce, kat3036_persstr,
+ kat3036_entropyinpr1, kat3036_addinpr1, kat3036_entropyinpr2,
+ kat3036_addinpr2, kat3036_retbits
+};
+static const struct drbg_kat kat3036 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3036_t
+};
+
+static const unsigned char kat3037_entropyin[] = {
+ 0xe1, 0x84, 0xdb, 0x5a, 0x90, 0xa0, 0x6b, 0x62, 0xd3, 0xad, 0xa7, 0x6b,
+ 0xf1, 0x22, 0x9c, 0xaf,
+};
+static const unsigned char kat3037_nonce[] = {
+ 0xcd, 0xc7, 0x1c, 0x1b, 0x05, 0x3e, 0xe2, 0x9b,
+};
+static const unsigned char kat3037_persstr[] = {
+ 0xa6, 0x6b, 0xd4, 0x57, 0x45, 0x4d, 0x34, 0x08, 0x7c, 0x10, 0x69, 0x18,
+ 0x8c, 0x91, 0xc8, 0xb4,
+};
+static const unsigned char kat3037_entropyinpr1[] = {
+ 0x94, 0x13, 0x7a, 0x4a, 0xe0, 0x4f, 0x44, 0x70, 0xd9, 0x41, 0xd9, 0xe6,
+ 0x3e, 0x4c, 0xe8, 0xca,
+};
+static const unsigned char kat3037_addinpr1[] = {0};
+static const unsigned char kat3037_entropyinpr2[] = {
+ 0x48, 0x35, 0x63, 0xbd, 0x70, 0x4a, 0xa7, 0xa1, 0x4c, 0xc1, 0x1e, 0x04,
+ 0xd0, 0x2f, 0xac, 0x3a,
+};
+static const unsigned char kat3037_addinpr2[] = {0};
+static const unsigned char kat3037_retbits[] = {
+ 0xec, 0x2c, 0x75, 0x83, 0x0a, 0x9a, 0x09, 0x7c, 0x67, 0x31, 0x61, 0x3b,
+ 0x98, 0x9e, 0x36, 0xe5, 0x16, 0x00, 0xae, 0x1a, 0xc8, 0x44, 0x74, 0x09,
+ 0x87, 0x50, 0x48, 0x00, 0x23, 0x16, 0x54, 0xbf, 0x79, 0x3b, 0x8a, 0x25,
+ 0xc7, 0xec, 0x69, 0xae, 0x36, 0xf1, 0x19, 0xeb, 0xd7, 0xb5, 0x9c, 0xcc,
+ 0x84, 0xc0, 0xeb, 0x55, 0x65, 0x18, 0x4a, 0xbe, 0x83, 0x31, 0xca, 0x11,
+ 0xe4, 0x3f, 0x63, 0x8a,
+};
+static const struct drbg_kat_pr_true kat3037_t = {
+ 6, kat3037_entropyin, kat3037_nonce, kat3037_persstr,
+ kat3037_entropyinpr1, kat3037_addinpr1, kat3037_entropyinpr2,
+ kat3037_addinpr2, kat3037_retbits
+};
+static const struct drbg_kat kat3037 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3037_t
+};
+
+static const unsigned char kat3038_entropyin[] = {
+ 0x22, 0xc5, 0xc4, 0x89, 0x36, 0xce, 0xbb, 0xcf, 0xe0, 0x18, 0x4f, 0xa1,
+ 0x7a, 0x93, 0x0c, 0x0e,
+};
+static const unsigned char kat3038_nonce[] = {
+ 0xc3, 0xf1, 0x78, 0x4b, 0x31, 0x77, 0xf6, 0xac,
+};
+static const unsigned char kat3038_persstr[] = {
+ 0x47, 0x18, 0x87, 0xff, 0xed, 0xf5, 0xe8, 0xc7, 0x1a, 0x40, 0x7d, 0x8c,
+ 0x8c, 0xff, 0x7f, 0xd5,
+};
+static const unsigned char kat3038_entropyinpr1[] = {
+ 0x2b, 0x23, 0x6d, 0x1a, 0xb6, 0x8f, 0xb5, 0x97, 0xa7, 0xa5, 0x89, 0x97,
+ 0x98, 0x91, 0x94, 0x94,
+};
+static const unsigned char kat3038_addinpr1[] = {0};
+static const unsigned char kat3038_entropyinpr2[] = {
+ 0xab, 0xd5, 0x61, 0x5b, 0x4e, 0x56, 0x58, 0xa3, 0xa6, 0x42, 0xbc, 0x90,
+ 0xc7, 0x53, 0x55, 0xc6,
+};
+static const unsigned char kat3038_addinpr2[] = {0};
+static const unsigned char kat3038_retbits[] = {
+ 0x73, 0x03, 0xeb, 0xb9, 0xd0, 0xad, 0x52, 0x05, 0xa6, 0x3e, 0x0a, 0xf4,
+ 0x82, 0xaa, 0x10, 0x78, 0xc7, 0x43, 0xae, 0x4a, 0x99, 0xe5, 0x6f, 0xd9,
+ 0x0d, 0x6d, 0xb4, 0xd8, 0xf5, 0x8e, 0xbc, 0xd2, 0x95, 0x08, 0x4f, 0xcc,
+ 0x15, 0x96, 0x61, 0xa0, 0xbd, 0x71, 0x88, 0xcd, 0x0c, 0x7d, 0x96, 0xf9,
+ 0xfb, 0x76, 0x86, 0x21, 0xfa, 0x87, 0xe5, 0xfb, 0x3d, 0xa3, 0x9f, 0xc0,
+ 0x97, 0x6a, 0x2e, 0x0b,
+};
+static const struct drbg_kat_pr_true kat3038_t = {
+ 7, kat3038_entropyin, kat3038_nonce, kat3038_persstr,
+ kat3038_entropyinpr1, kat3038_addinpr1, kat3038_entropyinpr2,
+ kat3038_addinpr2, kat3038_retbits
+};
+static const struct drbg_kat kat3038 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3038_t
+};
+
+static const unsigned char kat3039_entropyin[] = {
+ 0x28, 0xaf, 0x30, 0x57, 0xc2, 0xe2, 0x01, 0xb6, 0x31, 0x85, 0x28, 0x7d,
+ 0x2a, 0x0f, 0x45, 0xb8,
+};
+static const unsigned char kat3039_nonce[] = {
+ 0x43, 0x93, 0x3b, 0x8f, 0x98, 0x66, 0x7b, 0xdb,
+};
+static const unsigned char kat3039_persstr[] = {
+ 0x39, 0x94, 0x57, 0xf9, 0x24, 0xf0, 0x99, 0x7f, 0xbb, 0xe5, 0x22, 0x1e,
+ 0xb3, 0x98, 0x30, 0xfd,
+};
+static const unsigned char kat3039_entropyinpr1[] = {
+ 0x13, 0x21, 0xab, 0xfb, 0xb1, 0x12, 0xbd, 0xfb, 0xda, 0x02, 0xad, 0xc4,
+ 0x76, 0x28, 0xc6, 0xfc,
+};
+static const unsigned char kat3039_addinpr1[] = {0};
+static const unsigned char kat3039_entropyinpr2[] = {
+ 0xe4, 0xac, 0xef, 0x97, 0xc8, 0xef, 0x8f, 0xa4, 0xdc, 0x05, 0x10, 0x20,
+ 0xeb, 0xde, 0x8c, 0x30,
+};
+static const unsigned char kat3039_addinpr2[] = {0};
+static const unsigned char kat3039_retbits[] = {
+ 0x81, 0x73, 0xf6, 0x81, 0x26, 0x2e, 0x67, 0xe0, 0xf0, 0xa5, 0x51, 0xdf,
+ 0xee, 0x63, 0x9f, 0x0f, 0xf3, 0x35, 0xd3, 0x3f, 0x70, 0x24, 0x32, 0xc9,
+ 0x89, 0xf4, 0x52, 0x27, 0x7d, 0x1b, 0x47, 0xc8, 0xf8, 0xcb, 0xf0, 0x51,
+ 0x73, 0x55, 0xa2, 0x40, 0x73, 0x9c, 0xbd, 0xea, 0x20, 0x05, 0xf8, 0xeb,
+ 0x11, 0x96, 0xf1, 0x05, 0x12, 0xd7, 0xd2, 0x91, 0x60, 0x11, 0xd3, 0xad,
+ 0x52, 0x7b, 0x5c, 0xab,
+};
+static const struct drbg_kat_pr_true kat3039_t = {
+ 8, kat3039_entropyin, kat3039_nonce, kat3039_persstr,
+ kat3039_entropyinpr1, kat3039_addinpr1, kat3039_entropyinpr2,
+ kat3039_addinpr2, kat3039_retbits
+};
+static const struct drbg_kat kat3039 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3039_t
+};
+
+static const unsigned char kat3040_entropyin[] = {
+ 0x18, 0xd0, 0x9a, 0xda, 0xb3, 0xf0, 0x1a, 0x50, 0xfc, 0x83, 0x4e, 0xbf,
+ 0x07, 0x42, 0xbc, 0xc3,
+};
+static const unsigned char kat3040_nonce[] = {
+ 0x8a, 0x98, 0xd7, 0xc7, 0xc2, 0x4b, 0x70, 0xde,
+};
+static const unsigned char kat3040_persstr[] = {
+ 0xa2, 0x6f, 0x4d, 0x07, 0x8b, 0xcf, 0x3b, 0xd2, 0xb2, 0x7e, 0xc9, 0xb2,
+ 0x7c, 0x8b, 0xda, 0x82,
+};
+static const unsigned char kat3040_entropyinpr1[] = {
+ 0x60, 0x10, 0x00, 0x3a, 0x62, 0x2d, 0xd4, 0x07, 0x51, 0x68, 0x8c, 0xad,
+ 0xb7, 0xdd, 0xfb, 0x3b,
+};
+static const unsigned char kat3040_addinpr1[] = {0};
+static const unsigned char kat3040_entropyinpr2[] = {
+ 0x71, 0xc2, 0x06, 0x8c, 0x51, 0xa2, 0xe7, 0x5d, 0xcb, 0x16, 0xba, 0x87,
+ 0x13, 0xe1, 0x9d, 0xcc,
+};
+static const unsigned char kat3040_addinpr2[] = {0};
+static const unsigned char kat3040_retbits[] = {
+ 0x7e, 0x01, 0x5c, 0xc3, 0xc1, 0x51, 0xe9, 0xa3, 0xb2, 0xfc, 0x3a, 0xcf,
+ 0x40, 0xe6, 0xbd, 0x5d, 0xca, 0x1c, 0xfa, 0xe3, 0xf0, 0xf5, 0x82, 0x5c,
+ 0xc8, 0x66, 0xb0, 0x52, 0x45, 0x7e, 0x6e, 0x63, 0xcc, 0x10, 0x95, 0x98,
+ 0x6e, 0xc8, 0xfe, 0x69, 0x8a, 0x11, 0x93, 0x63, 0x0f, 0xe6, 0xba, 0x3e,
+ 0x4e, 0x84, 0x06, 0xdf, 0x0e, 0x27, 0x4c, 0xc6, 0x99, 0x4e, 0x1c, 0xf9,
+ 0xc0, 0x3f, 0xbe, 0x1f,
+};
+static const struct drbg_kat_pr_true kat3040_t = {
+ 9, kat3040_entropyin, kat3040_nonce, kat3040_persstr,
+ kat3040_entropyinpr1, kat3040_addinpr1, kat3040_entropyinpr2,
+ kat3040_addinpr2, kat3040_retbits
+};
+static const struct drbg_kat kat3040 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3040_t
+};
+
+static const unsigned char kat3041_entropyin[] = {
+ 0xf5, 0x10, 0xcc, 0xda, 0xb1, 0x72, 0x42, 0xbe, 0xcc, 0x65, 0xb7, 0x76,
+ 0x75, 0x0e, 0xed, 0xfa,
+};
+static const unsigned char kat3041_nonce[] = {
+ 0x45, 0x05, 0xb3, 0x38, 0x8c, 0xb0, 0x31, 0x78,
+};
+static const unsigned char kat3041_persstr[] = {
+ 0xb6, 0x10, 0x86, 0x91, 0xaf, 0x07, 0x3f, 0xf4, 0xb5, 0xbc, 0x52, 0x2e,
+ 0x4c, 0x5f, 0x72, 0xf4,
+};
+static const unsigned char kat3041_entropyinpr1[] = {
+ 0x40, 0x85, 0x4b, 0x6d, 0x7a, 0x74, 0xd1, 0xe7, 0xc5, 0x9c, 0xf6, 0x2e,
+ 0x88, 0x26, 0x3c, 0x6a,
+};
+static const unsigned char kat3041_addinpr1[] = {0};
+static const unsigned char kat3041_entropyinpr2[] = {
+ 0x9c, 0xbf, 0xd2, 0x51, 0x70, 0x72, 0x4d, 0xed, 0xc0, 0x34, 0x9a, 0xac,
+ 0x03, 0x62, 0x84, 0xcc,
+};
+static const unsigned char kat3041_addinpr2[] = {0};
+static const unsigned char kat3041_retbits[] = {
+ 0xfe, 0x77, 0xc9, 0x42, 0xe7, 0x1a, 0xc3, 0xe9, 0x24, 0xf5, 0xe5, 0xf2,
+ 0x0e, 0xbc, 0x66, 0x94, 0x1c, 0x79, 0x3f, 0x02, 0x18, 0x2a, 0x41, 0xeb,
+ 0x25, 0xf2, 0x8e, 0xeb, 0xe9, 0x99, 0xf6, 0xaf, 0x25, 0x29, 0x15, 0xe1,
+ 0x60, 0x5f, 0xd5, 0x9d, 0x82, 0x9e, 0x76, 0x9b, 0x78, 0xd6, 0x13, 0x7d,
+ 0xe2, 0x5d, 0x77, 0x7d, 0x48, 0xd1, 0xb6, 0x66, 0x90, 0x41, 0xdb, 0xe4,
+ 0x06, 0xc2, 0xfd, 0x4e,
+};
+static const struct drbg_kat_pr_true kat3041_t = {
+ 10, kat3041_entropyin, kat3041_nonce, kat3041_persstr,
+ kat3041_entropyinpr1, kat3041_addinpr1, kat3041_entropyinpr2,
+ kat3041_addinpr2, kat3041_retbits
+};
+static const struct drbg_kat kat3041 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3041_t
+};
+
+static const unsigned char kat3042_entropyin[] = {
+ 0x1b, 0x4b, 0xc2, 0xac, 0x12, 0x39, 0x16, 0xbf, 0xbb, 0xb8, 0x7a, 0x50,
+ 0x14, 0x3a, 0x10, 0x4e,
+};
+static const unsigned char kat3042_nonce[] = {
+ 0xb8, 0xef, 0x32, 0xcb, 0x3d, 0x4d, 0x3a, 0xaa,
+};
+static const unsigned char kat3042_persstr[] = {
+ 0x7c, 0xa4, 0x61, 0xab, 0xd1, 0x53, 0xce, 0x27, 0x53, 0x7a, 0x9a, 0x81,
+ 0xcc, 0x9a, 0xac, 0x4d,
+};
+static const unsigned char kat3042_entropyinpr1[] = {
+ 0x68, 0x7d, 0x7d, 0x7e, 0xe0, 0x22, 0x27, 0x00, 0xaf, 0xb1, 0xe0, 0x5b,
+ 0xcc, 0xb0, 0x8b, 0x2e,
+};
+static const unsigned char kat3042_addinpr1[] = {0};
+static const unsigned char kat3042_entropyinpr2[] = {
+ 0x3b, 0xe0, 0x09, 0x0c, 0xba, 0x74, 0xa0, 0x7d, 0xb6, 0xcd, 0x49, 0x45,
+ 0x0d, 0x6f, 0x84, 0x8c,
+};
+static const unsigned char kat3042_addinpr2[] = {0};
+static const unsigned char kat3042_retbits[] = {
+ 0x25, 0xd6, 0x24, 0xe1, 0xaa, 0x14, 0xbc, 0x00, 0x06, 0x93, 0xb2, 0x5f,
+ 0x7d, 0x6d, 0x15, 0x3c, 0xa5, 0x83, 0x33, 0x79, 0x5c, 0x40, 0xc4, 0xfd,
+ 0x2e, 0x60, 0x9a, 0xa1, 0x12, 0x1c, 0xd6, 0xb6, 0xee, 0xd2, 0x65, 0xcb,
+ 0x2c, 0x6c, 0x15, 0x49, 0x83, 0xfa, 0x79, 0xe8, 0x8f, 0xf6, 0x2e, 0xb4,
+ 0x64, 0x67, 0x17, 0x9c, 0x33, 0xff, 0x8c, 0x3d, 0xbe, 0xc1, 0xa4, 0x0d,
+ 0x30, 0xac, 0x50, 0xdc,
+};
+static const struct drbg_kat_pr_true kat3042_t = {
+ 11, kat3042_entropyin, kat3042_nonce, kat3042_persstr,
+ kat3042_entropyinpr1, kat3042_addinpr1, kat3042_entropyinpr2,
+ kat3042_addinpr2, kat3042_retbits
+};
+static const struct drbg_kat kat3042 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3042_t
+};
+
+static const unsigned char kat3043_entropyin[] = {
+ 0x3c, 0x8b, 0xa8, 0x2a, 0x16, 0x3a, 0xd8, 0x5a, 0x99, 0x5e, 0xdb, 0x69,
+ 0xd2, 0xce, 0x89, 0x92,
+};
+static const unsigned char kat3043_nonce[] = {
+ 0xeb, 0x06, 0xb6, 0xba, 0xe0, 0x03, 0xf1, 0x97,
+};
+static const unsigned char kat3043_persstr[] = {
+ 0x83, 0xea, 0xf9, 0x31, 0x28, 0x36, 0x52, 0x1d, 0x4d, 0xd4, 0x23, 0x6e,
+ 0x24, 0xfc, 0xe8, 0x80,
+};
+static const unsigned char kat3043_entropyinpr1[] = {
+ 0x6f, 0x71, 0xe8, 0x03, 0x12, 0x69, 0xe6, 0x5f, 0x0c, 0x31, 0x61, 0x09,
+ 0xd3, 0x18, 0x02, 0x19,
+};
+static const unsigned char kat3043_addinpr1[] = {0};
+static const unsigned char kat3043_entropyinpr2[] = {
+ 0x9b, 0x2c, 0xf7, 0x84, 0xc3, 0xb3, 0xb1, 0xe3, 0xf1, 0xe6, 0xa8, 0x3f,
+ 0x6e, 0x83, 0x5f, 0x6e,
+};
+static const unsigned char kat3043_addinpr2[] = {0};
+static const unsigned char kat3043_retbits[] = {
+ 0x51, 0xe8, 0xe5, 0x69, 0x63, 0x42, 0x19, 0x3b, 0xc9, 0xad, 0x70, 0xde,
+ 0xd9, 0xb9, 0x5d, 0x53, 0x25, 0x91, 0xac, 0xa8, 0x3a, 0x6a, 0x0c, 0xe9,
+ 0x94, 0x36, 0x10, 0x8c, 0x23, 0x1d, 0xa8, 0xab, 0x83, 0x4e, 0x4d, 0x47,
+ 0x70, 0xfd, 0x5a, 0xdb, 0x08, 0x32, 0x9d, 0x6a, 0x6a, 0xeb, 0x82, 0x04,
+ 0x4e, 0x54, 0x06, 0x54, 0x76, 0xc5, 0x18, 0x45, 0xf5, 0xc8, 0xbe, 0x3f,
+ 0x0a, 0xa1, 0x62, 0x93,
+};
+static const struct drbg_kat_pr_true kat3043_t = {
+ 12, kat3043_entropyin, kat3043_nonce, kat3043_persstr,
+ kat3043_entropyinpr1, kat3043_addinpr1, kat3043_entropyinpr2,
+ kat3043_addinpr2, kat3043_retbits
+};
+static const struct drbg_kat kat3043 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3043_t
+};
+
+static const unsigned char kat3044_entropyin[] = {
+ 0xa2, 0x1d, 0x14, 0x74, 0xc5, 0xec, 0x0a, 0xaa, 0x04, 0x29, 0x29, 0xf9,
+ 0x31, 0xca, 0xd9, 0x67,
+};
+static const unsigned char kat3044_nonce[] = {
+ 0x52, 0xee, 0x53, 0xf4, 0x0a, 0xb7, 0xe5, 0xa8,
+};
+static const unsigned char kat3044_persstr[] = {
+ 0xd7, 0x23, 0x4c, 0x43, 0x39, 0x65, 0x1e, 0x7b, 0x6b, 0x4b, 0xfa, 0xc6,
+ 0x47, 0x2e, 0x7c, 0x25,
+};
+static const unsigned char kat3044_entropyinpr1[] = {
+ 0xa3, 0x1b, 0x96, 0xf7, 0x84, 0xa5, 0xe2, 0x24, 0xdb, 0xd5, 0x7b, 0x35,
+ 0xff, 0x14, 0xda, 0x22,
+};
+static const unsigned char kat3044_addinpr1[] = {0};
+static const unsigned char kat3044_entropyinpr2[] = {
+ 0x2c, 0x78, 0x70, 0x65, 0x08, 0x05, 0x7e, 0x95, 0x21, 0xed, 0xa9, 0xc3,
+ 0x76, 0x4b, 0x17, 0xe5,
+};
+static const unsigned char kat3044_addinpr2[] = {0};
+static const unsigned char kat3044_retbits[] = {
+ 0x93, 0x98, 0x9c, 0x71, 0xde, 0x4b, 0x19, 0x79, 0x7f, 0xa6, 0x71, 0x5e,
+ 0x69, 0x35, 0xa9, 0xad, 0xa5, 0x8b, 0x68, 0x5f, 0xb2, 0x6c, 0xbf, 0x24,
+ 0xae, 0xa7, 0x2e, 0x17, 0x51, 0xcd, 0xcf, 0x34, 0x75, 0x10, 0x39, 0xf9,
+ 0xde, 0xc1, 0xc6, 0x0f, 0x0b, 0xbe, 0x7f, 0x79, 0x39, 0xd0, 0x7c, 0x5d,
+ 0xe3, 0x71, 0x07, 0xf2, 0x80, 0x62, 0xa1, 0x2c, 0x0d, 0xc1, 0xaa, 0x0f,
+ 0x08, 0x0e, 0x45, 0x7d,
+};
+static const struct drbg_kat_pr_true kat3044_t = {
+ 13, kat3044_entropyin, kat3044_nonce, kat3044_persstr,
+ kat3044_entropyinpr1, kat3044_addinpr1, kat3044_entropyinpr2,
+ kat3044_addinpr2, kat3044_retbits
+};
+static const struct drbg_kat kat3044 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3044_t
+};
+
+static const unsigned char kat3045_entropyin[] = {
+ 0xdc, 0x30, 0xe1, 0xdb, 0x5c, 0x9a, 0x1b, 0x17, 0x18, 0x6f, 0x7f, 0xca,
+ 0x1f, 0xa7, 0x9c, 0x92,
+};
+static const unsigned char kat3045_nonce[] = {
+ 0xe1, 0x38, 0xc3, 0xce, 0xcc, 0xca, 0x8e, 0x59,
+};
+static const unsigned char kat3045_persstr[] = {
+ 0x4d, 0x43, 0x17, 0x76, 0x37, 0xd3, 0x38, 0xac, 0x74, 0x18, 0x88, 0x0c,
+ 0x7e, 0x15, 0xb5, 0x6c,
+};
+static const unsigned char kat3045_entropyinpr1[] = {
+ 0xa3, 0xa6, 0x53, 0x94, 0x12, 0x45, 0x1c, 0x4c, 0x50, 0xb2, 0xb3, 0x73,
+ 0x10, 0x50, 0xb7, 0x7e,
+};
+static const unsigned char kat3045_addinpr1[] = {0};
+static const unsigned char kat3045_entropyinpr2[] = {
+ 0x78, 0xaf, 0x61, 0x91, 0xe4, 0x7e, 0xe4, 0xb5, 0xae, 0xbc, 0x9b, 0x89,
+ 0xd2, 0xaa, 0x7d, 0x61,
+};
+static const unsigned char kat3045_addinpr2[] = {0};
+static const unsigned char kat3045_retbits[] = {
+ 0x22, 0x87, 0x6b, 0x47, 0xab, 0xc2, 0x2b, 0x83, 0x58, 0xec, 0xe9, 0xe6,
+ 0xaf, 0x25, 0xd6, 0x7a, 0x89, 0x7e, 0x54, 0xf6, 0x07, 0x60, 0xf0, 0x79,
+ 0x81, 0x11, 0xb8, 0xdf, 0x65, 0x49, 0xe6, 0x14, 0xf2, 0x21, 0x05, 0xd1,
+ 0x55, 0xe1, 0xcd, 0x23, 0xf9, 0x02, 0x9d, 0xa5, 0x52, 0x6a, 0xaf, 0xae,
+ 0x9e, 0xea, 0x16, 0xc6, 0x48, 0x2c, 0x36, 0xcc, 0x1a, 0x2e, 0x48, 0xb3,
+ 0xb0, 0x5e, 0x98, 0xf6,
+};
+static const struct drbg_kat_pr_true kat3045_t = {
+ 14, kat3045_entropyin, kat3045_nonce, kat3045_persstr,
+ kat3045_entropyinpr1, kat3045_addinpr1, kat3045_entropyinpr2,
+ kat3045_addinpr2, kat3045_retbits
+};
+static const struct drbg_kat kat3045 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3045_t
+};
+
+static const unsigned char kat3046_entropyin[] = {
+ 0x41, 0xad, 0x5d, 0xba, 0xd2, 0xb7, 0xdc, 0x53, 0xa5, 0x9d, 0x55, 0xc4,
+ 0x72, 0xc4, 0xc3, 0x8b,
+};
+static const unsigned char kat3046_nonce[] = {
+ 0xe7, 0x12, 0x33, 0xae, 0x7d, 0x69, 0x8a, 0x0d,
+};
+static const unsigned char kat3046_persstr[] = {
+ 0xe8, 0x9c, 0x3c, 0xe6, 0xa0, 0x33, 0x1d, 0x1d, 0x88, 0xb5, 0x75, 0x20,
+ 0x5f, 0xed, 0x91, 0x38,
+};
+static const unsigned char kat3046_entropyinpr1[] = {
+ 0xa0, 0x2c, 0x4e, 0x06, 0xed, 0xda, 0xb9, 0x1a, 0x06, 0x37, 0xea, 0xb1,
+ 0x53, 0x2f, 0x72, 0xfc,
+};
+static const unsigned char kat3046_addinpr1[] = {
+ 0x9e, 0x2f, 0x64, 0xfd, 0x75, 0x4f, 0x91, 0x94, 0x3a, 0x05, 0x0e, 0x1e,
+ 0xf1, 0xe5, 0x5e, 0xf3,
+};
+static const unsigned char kat3046_entropyinpr2[] = {
+ 0xff, 0x80, 0x99, 0x50, 0xea, 0x8a, 0xa9, 0x40, 0xd4, 0xfd, 0x71, 0x4c,
+ 0x02, 0x04, 0x78, 0x52,
+};
+static const unsigned char kat3046_addinpr2[] = {
+ 0x3e, 0x18, 0x72, 0xf3, 0x11, 0xdd, 0xd7, 0xe7, 0x1e, 0xed, 0xda, 0xf2,
+ 0xc4, 0xa1, 0xcc, 0xef,
+};
+static const unsigned char kat3046_retbits[] = {
+ 0x5a, 0x80, 0x08, 0x3c, 0x48, 0x94, 0xea, 0xf1, 0x74, 0xea, 0x22, 0x47,
+ 0xd1, 0x1c, 0x82, 0x96, 0x99, 0xf7, 0x27, 0x86, 0x8f, 0x90, 0x55, 0xf2,
+ 0x57, 0xb2, 0xd1, 0xe9, 0x9e, 0x85, 0x90, 0x57, 0xb5, 0xa8, 0x19, 0x63,
+ 0x56, 0x4d, 0x80, 0xf3, 0xc8, 0xd4, 0x67, 0x71, 0xd1, 0x28, 0x5a, 0xec,
+ 0x24, 0x75, 0xfc, 0xbf, 0x36, 0x90, 0x2a, 0x13, 0xa1, 0xf2, 0xcc, 0x86,
+ 0xc7, 0xbb, 0xfa, 0xed,
+};
+static const struct drbg_kat_pr_true kat3046_t = {
+ 0, kat3046_entropyin, kat3046_nonce, kat3046_persstr,
+ kat3046_entropyinpr1, kat3046_addinpr1, kat3046_entropyinpr2,
+ kat3046_addinpr2, kat3046_retbits
+};
+static const struct drbg_kat kat3046 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3046_t
+};
+
+static const unsigned char kat3047_entropyin[] = {
+ 0x8a, 0xfc, 0x14, 0x0c, 0xc1, 0x07, 0xe5, 0xed, 0x01, 0x6f, 0x45, 0x42,
+ 0xe0, 0xa2, 0x75, 0x22,
+};
+static const unsigned char kat3047_nonce[] = {
+ 0xb4, 0x68, 0x8b, 0x46, 0xb7, 0xa3, 0x34, 0x19,
+};
+static const unsigned char kat3047_persstr[] = {
+ 0xef, 0x7f, 0xde, 0xe6, 0x8d, 0x37, 0x86, 0x1c, 0x04, 0x10, 0x5a, 0x8c,
+ 0x4a, 0xfb, 0x30, 0x3e,
+};
+static const unsigned char kat3047_entropyinpr1[] = {
+ 0xfb, 0xb9, 0x88, 0x90, 0x24, 0x98, 0x94, 0xae, 0x58, 0x08, 0x5c, 0x86,
+ 0x88, 0xd4, 0xb0, 0x36,
+};
+static const unsigned char kat3047_addinpr1[] = {
+ 0x21, 0x8f, 0x0c, 0xc8, 0x8c, 0x46, 0xe9, 0x17, 0x8e, 0xc2, 0x5d, 0x81,
+ 0x4e, 0x30, 0x6f, 0x1b,
+};
+static const unsigned char kat3047_entropyinpr2[] = {
+ 0x79, 0x88, 0xa7, 0xb0, 0xff, 0x93, 0xf4, 0x2f, 0x98, 0x8a, 0x47, 0x1c,
+ 0x66, 0x05, 0x68, 0xf8,
+};
+static const unsigned char kat3047_addinpr2[] = {
+ 0xba, 0xe9, 0x16, 0xf0, 0xc7, 0xb9, 0xc1, 0xd7, 0x85, 0x81, 0x5f, 0xc3,
+ 0xcc, 0x16, 0x3d, 0x6f,
+};
+static const unsigned char kat3047_retbits[] = {
+ 0x8d, 0x1e, 0x4f, 0x11, 0x12, 0xf3, 0x16, 0x84, 0x50, 0xd8, 0x18, 0x1d,
+ 0xbf, 0x9b, 0xd6, 0xc2, 0xf4, 0xd8, 0x7c, 0x89, 0x31, 0x87, 0x60, 0x48,
+ 0x1c, 0xa2, 0x8e, 0x46, 0x26, 0x9e, 0x30, 0xcb, 0x2a, 0x6c, 0x86, 0x84,
+ 0x61, 0x41, 0x22, 0xca, 0xeb, 0x8e, 0xc8, 0x87, 0x04, 0x87, 0xa9, 0x9d,
+ 0x3f, 0x2e, 0x55, 0xc5, 0x5e, 0x58, 0x37, 0xe6, 0x1d, 0x81, 0xf6, 0x29,
+ 0x85, 0xb0, 0xac, 0x8e,
+};
+static const struct drbg_kat_pr_true kat3047_t = {
+ 1, kat3047_entropyin, kat3047_nonce, kat3047_persstr,
+ kat3047_entropyinpr1, kat3047_addinpr1, kat3047_entropyinpr2,
+ kat3047_addinpr2, kat3047_retbits
+};
+static const struct drbg_kat kat3047 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3047_t
+};
+
+static const unsigned char kat3048_entropyin[] = {
+ 0x4d, 0x27, 0x35, 0x3e, 0x4f, 0x1a, 0xd0, 0x8e, 0xbb, 0xa5, 0x7f, 0x10,
+ 0xf2, 0x65, 0xc2, 0x27,
+};
+static const unsigned char kat3048_nonce[] = {
+ 0x5c, 0x48, 0x36, 0x60, 0x4f, 0xec, 0x04, 0xb8,
+};
+static const unsigned char kat3048_persstr[] = {
+ 0xe3, 0xeb, 0xed, 0x6c, 0x0b, 0x09, 0x9e, 0xd5, 0x2c, 0xcf, 0x5b, 0x86,
+ 0x63, 0x10, 0x13, 0x34,
+};
+static const unsigned char kat3048_entropyinpr1[] = {
+ 0x6a, 0x8d, 0x62, 0x56, 0x8c, 0x8c, 0x8a, 0xa7, 0x6d, 0x73, 0x3b, 0xc2,
+ 0xd2, 0x29, 0xe3, 0x26,
+};
+static const unsigned char kat3048_addinpr1[] = {
+ 0xd5, 0x64, 0x0c, 0x2b, 0x50, 0xd5, 0xba, 0x01, 0x96, 0x1f, 0xa5, 0xb3,
+ 0x93, 0xc5, 0x13, 0xac,
+};
+static const unsigned char kat3048_entropyinpr2[] = {
+ 0x00, 0x91, 0x8b, 0xa4, 0xff, 0x9b, 0x14, 0x65, 0xab, 0xe3, 0x68, 0x82,
+ 0x9f, 0xe6, 0x21, 0xc8,
+};
+static const unsigned char kat3048_addinpr2[] = {
+ 0xd6, 0xef, 0xd8, 0x2e, 0x22, 0xeb, 0xd7, 0xec, 0x65, 0x1a, 0x57, 0x69,
+ 0xc7, 0x59, 0x78, 0x01,
+};
+static const unsigned char kat3048_retbits[] = {
+ 0xcd, 0xfa, 0x1f, 0x0b, 0x3f, 0x9b, 0x96, 0x14, 0x25, 0x7d, 0xbb, 0xfe,
+ 0x38, 0x92, 0xef, 0xe2, 0x33, 0x78, 0x01, 0x31, 0x52, 0xae, 0xe6, 0x1f,
+ 0x12, 0x27, 0xdf, 0x8b, 0x10, 0xd9, 0x10, 0xbb, 0xf1, 0x9c, 0x1a, 0xe7,
+ 0xdd, 0xc2, 0xfd, 0x02, 0x9d, 0xc3, 0xdd, 0x03, 0xdd, 0xca, 0x30, 0xca,
+ 0x3f, 0x91, 0xf5, 0x76, 0x75, 0x81, 0x0e, 0xc5, 0x31, 0x56, 0xe4, 0x1d,
+ 0xc1, 0xc6, 0x14, 0x65,
+};
+static const struct drbg_kat_pr_true kat3048_t = {
+ 2, kat3048_entropyin, kat3048_nonce, kat3048_persstr,
+ kat3048_entropyinpr1, kat3048_addinpr1, kat3048_entropyinpr2,
+ kat3048_addinpr2, kat3048_retbits
+};
+static const struct drbg_kat kat3048 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3048_t
+};
+
+static const unsigned char kat3049_entropyin[] = {
+ 0xca, 0x84, 0x6c, 0x2b, 0xe9, 0x3f, 0x95, 0x40, 0x53, 0x96, 0xbb, 0x59,
+ 0x26, 0xa0, 0x57, 0x53,
+};
+static const unsigned char kat3049_nonce[] = {
+ 0x0f, 0x7b, 0xc5, 0x60, 0x2e, 0x6b, 0x36, 0x15,
+};
+static const unsigned char kat3049_persstr[] = {
+ 0x75, 0xb6, 0x71, 0xe0, 0xa9, 0x7c, 0xbd, 0xfc, 0x42, 0xe6, 0x2c, 0x5d,
+ 0xbf, 0xe8, 0x16, 0xec,
+};
+static const unsigned char kat3049_entropyinpr1[] = {
+ 0xe5, 0xd5, 0xfe, 0x4b, 0x2b, 0x09, 0x51, 0xd1, 0xd5, 0xde, 0x10, 0x2f,
+ 0x5c, 0xa5, 0x91, 0xb0,
+};
+static const unsigned char kat3049_addinpr1[] = {
+ 0x9d, 0x72, 0xc4, 0x56, 0xd6, 0x08, 0xe2, 0x52, 0xb2, 0x77, 0xc8, 0x4d,
+ 0x31, 0x78, 0x94, 0x7d,
+};
+static const unsigned char kat3049_entropyinpr2[] = {
+ 0x51, 0x91, 0xf9, 0x73, 0x0c, 0xad, 0xe8, 0x56, 0x33, 0x74, 0xd8, 0x35,
+ 0x0e, 0xcb, 0x77, 0xa3,
+};
+static const unsigned char kat3049_addinpr2[] = {
+ 0x95, 0x5a, 0xa6, 0xbf, 0xc6, 0x7e, 0xb4, 0x5c, 0x84, 0xbf, 0xb0, 0x07,
+ 0xb6, 0xa7, 0xec, 0x81,
+};
+static const unsigned char kat3049_retbits[] = {
+ 0xce, 0x7f, 0xad, 0x45, 0xb0, 0x09, 0x1a, 0x32, 0x18, 0xbe, 0x9e, 0xdb,
+ 0xf1, 0xa7, 0x3f, 0xf3, 0xab, 0x85, 0x76, 0x31, 0x51, 0x14, 0xda, 0xe4,
+ 0x98, 0x93, 0x6e, 0x85, 0x34, 0x5a, 0xec, 0x01, 0xbc, 0x7b, 0xef, 0xbe,
+ 0x70, 0xfb, 0xd1, 0x28, 0x3a, 0x3a, 0x55, 0x4c, 0x05, 0xbb, 0x60, 0x11,
+ 0xee, 0x88, 0x59, 0xdd, 0xff, 0xa2, 0xd9, 0x99, 0x5c, 0x7e, 0xec, 0x98,
+ 0xf3, 0xc8, 0xfb, 0x90,
+};
+static const struct drbg_kat_pr_true kat3049_t = {
+ 3, kat3049_entropyin, kat3049_nonce, kat3049_persstr,
+ kat3049_entropyinpr1, kat3049_addinpr1, kat3049_entropyinpr2,
+ kat3049_addinpr2, kat3049_retbits
+};
+static const struct drbg_kat kat3049 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3049_t
+};
+
+static const unsigned char kat3050_entropyin[] = {
+ 0x25, 0xa7, 0x3d, 0xfb, 0x00, 0xa6, 0x58, 0x3b, 0x0b, 0x62, 0xb9, 0x68,
+ 0x0d, 0xbd, 0x88, 0x81,
+};
+static const unsigned char kat3050_nonce[] = {
+ 0x87, 0x3a, 0x6b, 0xb8, 0xa3, 0x6d, 0x2b, 0x40,
+};
+static const unsigned char kat3050_persstr[] = {
+ 0x94, 0x27, 0x9a, 0x74, 0xd7, 0x30, 0xd2, 0x36, 0x33, 0x1d, 0xe8, 0xd2,
+ 0xc3, 0xb8, 0xa1, 0x08,
+};
+static const unsigned char kat3050_entropyinpr1[] = {
+ 0xf1, 0x27, 0x9f, 0x16, 0x54, 0xcd, 0xd6, 0x8f, 0x5a, 0xbb, 0x40, 0x59,
+ 0x64, 0x61, 0x04, 0x60,
+};
+static const unsigned char kat3050_addinpr1[] = {
+ 0x76, 0x04, 0xee, 0x17, 0x8b, 0xf7, 0x8d, 0x73, 0x2b, 0xc1, 0xb8, 0xf8,
+ 0x86, 0xab, 0xec, 0x70,
+};
+static const unsigned char kat3050_entropyinpr2[] = {
+ 0xe7, 0x68, 0x57, 0x82, 0xbf, 0x0e, 0x85, 0xf7, 0x09, 0x43, 0x5e, 0x18,
+ 0x4d, 0x32, 0x49, 0x8a,
+};
+static const unsigned char kat3050_addinpr2[] = {
+ 0x8b, 0x84, 0x3c, 0xa9, 0x1d, 0x79, 0x18, 0x06, 0xc0, 0xd3, 0xe4, 0xd9,
+ 0x22, 0x31, 0x4e, 0xaf,
+};
+static const unsigned char kat3050_retbits[] = {
+ 0x62, 0xb7, 0x28, 0xed, 0x9e, 0x0e, 0x70, 0x91, 0x0e, 0x8f, 0x5e, 0x04,
+ 0x3c, 0x6b, 0x98, 0x38, 0xcf, 0x59, 0xbc, 0x6a, 0x69, 0xb8, 0x9d, 0x8e,
+ 0xe8, 0xf0, 0xb7, 0x33, 0xea, 0xc2, 0x1b, 0xcd, 0x70, 0x16, 0xc2, 0x77,
+ 0xcf, 0x7c, 0x1d, 0xc4, 0x23, 0x30, 0x47, 0x08, 0xa0, 0x74, 0x38, 0xfc,
+ 0x06, 0x0e, 0x7a, 0xb7, 0x40, 0x61, 0x27, 0x24, 0x83, 0x90, 0xd8, 0xdb,
+ 0x88, 0x4f, 0xa7, 0x9d,
+};
+static const struct drbg_kat_pr_true kat3050_t = {
+ 4, kat3050_entropyin, kat3050_nonce, kat3050_persstr,
+ kat3050_entropyinpr1, kat3050_addinpr1, kat3050_entropyinpr2,
+ kat3050_addinpr2, kat3050_retbits
+};
+static const struct drbg_kat kat3050 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3050_t
+};
+
+static const unsigned char kat3051_entropyin[] = {
+ 0xa7, 0xe7, 0x21, 0x0e, 0x20, 0x72, 0xd8, 0x4b, 0x3e, 0xcb, 0xbb, 0x2f,
+ 0x49, 0x05, 0x2f, 0x4f,
+};
+static const unsigned char kat3051_nonce[] = {
+ 0x79, 0xb9, 0x8f, 0x53, 0xbf, 0xf2, 0xdb, 0xa7,
+};
+static const unsigned char kat3051_persstr[] = {
+ 0x37, 0xec, 0xd0, 0x0b, 0x09, 0x1d, 0xde, 0xab, 0xe2, 0x4d, 0x61, 0x2a,
+ 0xe0, 0x81, 0xfa, 0x11,
+};
+static const unsigned char kat3051_entropyinpr1[] = {
+ 0xb5, 0xa9, 0x6a, 0x45, 0xf4, 0xb6, 0x61, 0x98, 0x58, 0x42, 0x4a, 0x50,
+ 0x4c, 0x51, 0xd4, 0x22,
+};
+static const unsigned char kat3051_addinpr1[] = {
+ 0x59, 0x01, 0x04, 0x1e, 0x59, 0x53, 0xda, 0x7e, 0x69, 0xc7, 0x94, 0xb8,
+ 0x23, 0x71, 0x04, 0x4f,
+};
+static const unsigned char kat3051_entropyinpr2[] = {
+ 0xa1, 0x25, 0x89, 0x1a, 0x24, 0xe1, 0xc5, 0xfc, 0xd0, 0xfe, 0x9b, 0xd1,
+ 0xbe, 0x1c, 0x34, 0xdb,
+};
+static const unsigned char kat3051_addinpr2[] = {
+ 0xb6, 0x23, 0xb3, 0xc5, 0x44, 0x86, 0xdd, 0x5d, 0x92, 0x42, 0xe1, 0x08,
+ 0xa5, 0x85, 0x61, 0x60,
+};
+static const unsigned char kat3051_retbits[] = {
+ 0xbb, 0xb5, 0x55, 0x21, 0xe1, 0x99, 0x34, 0xaf, 0x05, 0x2b, 0x42, 0xb5,
+ 0x26, 0xf9, 0xc9, 0xa4, 0x9e, 0xf8, 0x9c, 0x71, 0x61, 0x1f, 0x95, 0x9c,
+ 0xe2, 0x14, 0xce, 0xf3, 0xe2, 0x29, 0x18, 0x70, 0x0a, 0xcf, 0xf9, 0x9d,
+ 0x9e, 0xce, 0x91, 0x3e, 0x49, 0x8b, 0xad, 0xe9, 0xe3, 0x07, 0x66, 0xc4,
+ 0xfc, 0x33, 0xe1, 0x3a, 0x55, 0x15, 0x02, 0x09, 0xcf, 0xdb, 0xff, 0xb3,
+ 0x67, 0xbf, 0x6f, 0x2c,
+};
+static const struct drbg_kat_pr_true kat3051_t = {
+ 5, kat3051_entropyin, kat3051_nonce, kat3051_persstr,
+ kat3051_entropyinpr1, kat3051_addinpr1, kat3051_entropyinpr2,
+ kat3051_addinpr2, kat3051_retbits
+};
+static const struct drbg_kat kat3051 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3051_t
+};
+
+static const unsigned char kat3052_entropyin[] = {
+ 0x94, 0x7c, 0x95, 0xdd, 0x71, 0x8e, 0xdc, 0xf2, 0x64, 0x6e, 0xe2, 0x7d,
+ 0x6e, 0x5c, 0x2f, 0x3e,
+};
+static const unsigned char kat3052_nonce[] = {
+ 0xd9, 0xd9, 0xb2, 0x26, 0xf8, 0x76, 0x47, 0xc4,
+};
+static const unsigned char kat3052_persstr[] = {
+ 0xdf, 0x10, 0x45, 0xff, 0x8b, 0xc9, 0x95, 0x8c, 0x9a, 0x6b, 0x07, 0xfa,
+ 0x4a, 0x1d, 0xed, 0xe0,
+};
+static const unsigned char kat3052_entropyinpr1[] = {
+ 0x94, 0x2f, 0xcf, 0xe5, 0xed, 0xed, 0x12, 0x35, 0x40, 0x88, 0x49, 0xcf,
+ 0x58, 0x0a, 0x10, 0xae,
+};
+static const unsigned char kat3052_addinpr1[] = {
+ 0xea, 0xb8, 0xaa, 0x70, 0xd2, 0xb1, 0x33, 0x91, 0x3b, 0x86, 0x39, 0xa3,
+ 0x2d, 0x8e, 0x59, 0xfc,
+};
+static const unsigned char kat3052_entropyinpr2[] = {
+ 0x6b, 0x6c, 0xef, 0x1a, 0x92, 0x93, 0x2e, 0xa4, 0xc0, 0xc1, 0xce, 0x53,
+ 0x52, 0x04, 0x38, 0x25,
+};
+static const unsigned char kat3052_addinpr2[] = {
+ 0x23, 0x62, 0x43, 0x3a, 0x55, 0x07, 0x1a, 0x82, 0xa5, 0x6c, 0x68, 0xe5,
+ 0x83, 0xf3, 0xd9, 0xbc,
+};
+static const unsigned char kat3052_retbits[] = {
+ 0x40, 0x2a, 0x68, 0x49, 0xdd, 0xac, 0x82, 0x7b, 0x56, 0x91, 0x7c, 0xa9,
+ 0x8e, 0xf2, 0x49, 0x77, 0x7c, 0x87, 0x4c, 0x98, 0x6f, 0x8e, 0xee, 0x08,
+ 0xdc, 0x6d, 0x99, 0x2d, 0xb4, 0x00, 0xa4, 0x05, 0x15, 0xae, 0x0d, 0xf9,
+ 0x06, 0xcf, 0xb0, 0xc1, 0x08, 0xd9, 0x2d, 0xbb, 0x60, 0x69, 0xb9, 0x42,
+ 0xb0, 0x0d, 0x39, 0x9f, 0x8e, 0x4d, 0x4f, 0x59, 0xb7, 0x10, 0x6a, 0xe0,
+ 0xeb, 0x7e, 0x51, 0xd1,
+};
+static const struct drbg_kat_pr_true kat3052_t = {
+ 6, kat3052_entropyin, kat3052_nonce, kat3052_persstr,
+ kat3052_entropyinpr1, kat3052_addinpr1, kat3052_entropyinpr2,
+ kat3052_addinpr2, kat3052_retbits
+};
+static const struct drbg_kat kat3052 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3052_t
+};
+
+static const unsigned char kat3053_entropyin[] = {
+ 0x61, 0x5e, 0xf2, 0xa3, 0xb1, 0x1b, 0x4d, 0x42, 0xb3, 0x3a, 0x60, 0x0f,
+ 0xc5, 0xd1, 0x9e, 0xb6,
+};
+static const unsigned char kat3053_nonce[] = {
+ 0xed, 0x64, 0x99, 0x40, 0x28, 0xc9, 0xbd, 0x16,
+};
+static const unsigned char kat3053_persstr[] = {
+ 0x7e, 0xea, 0x81, 0xf2, 0x01, 0x58, 0xc3, 0x32, 0xa8, 0x12, 0x82, 0x48,
+ 0x2f, 0x4f, 0xc6, 0x92,
+};
+static const unsigned char kat3053_entropyinpr1[] = {
+ 0xeb, 0x31, 0x41, 0x60, 0xbf, 0x4f, 0x05, 0xb4, 0x67, 0x75, 0x40, 0x88,
+ 0x28, 0x9d, 0x55, 0x98,
+};
+static const unsigned char kat3053_addinpr1[] = {
+ 0xe2, 0xfa, 0xfd, 0x00, 0x5a, 0xf0, 0x5d, 0x47, 0xd5, 0xfa, 0xd6, 0x5f,
+ 0xf2, 0x4a, 0x30, 0xbd,
+};
+static const unsigned char kat3053_entropyinpr2[] = {
+ 0x46, 0x14, 0x22, 0xe3, 0x6a, 0x0a, 0x5c, 0x72, 0xcf, 0x80, 0x88, 0xbf,
+ 0x4e, 0x25, 0x48, 0x56,
+};
+static const unsigned char kat3053_addinpr2[] = {
+ 0x1a, 0x5a, 0xa4, 0x5e, 0x12, 0x6f, 0x11, 0xc0, 0xc1, 0x9e, 0xbf, 0xbc,
+ 0x57, 0x4d, 0xea, 0x86,
+};
+static const unsigned char kat3053_retbits[] = {
+ 0xae, 0x1b, 0x5a, 0x45, 0x76, 0x9b, 0xca, 0x07, 0xfc, 0x0a, 0xb2, 0x63,
+ 0x1f, 0x72, 0x72, 0xe8, 0x67, 0x9b, 0x97, 0x1e, 0x71, 0x11, 0x6c, 0xb2,
+ 0xdb, 0x01, 0xcf, 0x7c, 0xfd, 0x02, 0x55, 0x30, 0xf9, 0xad, 0xe0, 0x13,
+ 0x5a, 0x4d, 0xa1, 0x65, 0x76, 0x74, 0xc7, 0xe1, 0xaf, 0xa1, 0x37, 0x02,
+ 0xd7, 0x0c, 0x43, 0xc4, 0xe9, 0x9d, 0x6a, 0x8f, 0x0f, 0xe8, 0xaf, 0xca,
+ 0x5c, 0xcf, 0xf5, 0x35,
+};
+static const struct drbg_kat_pr_true kat3053_t = {
+ 7, kat3053_entropyin, kat3053_nonce, kat3053_persstr,
+ kat3053_entropyinpr1, kat3053_addinpr1, kat3053_entropyinpr2,
+ kat3053_addinpr2, kat3053_retbits
+};
+static const struct drbg_kat kat3053 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3053_t
+};
+
+static const unsigned char kat3054_entropyin[] = {
+ 0x4c, 0x9d, 0x79, 0x56, 0xbe, 0x59, 0xa0, 0x30, 0xe6, 0x48, 0x14, 0x65,
+ 0xf8, 0x9e, 0xfc, 0x49,
+};
+static const unsigned char kat3054_nonce[] = {
+ 0xae, 0x79, 0x64, 0x11, 0xe8, 0xe1, 0x57, 0x3e,
+};
+static const unsigned char kat3054_persstr[] = {
+ 0x60, 0xdc, 0x49, 0xfc, 0xd6, 0x33, 0x63, 0xc9, 0xf5, 0x03, 0x74, 0x38,
+ 0x0b, 0x6a, 0xf2, 0xef,
+};
+static const unsigned char kat3054_entropyinpr1[] = {
+ 0x84, 0x9e, 0xbf, 0xf2, 0x35, 0xce, 0xf6, 0xbb, 0xf4, 0x4a, 0x43, 0xd8,
+ 0xdb, 0x9a, 0x8c, 0x19,
+};
+static const unsigned char kat3054_addinpr1[] = {
+ 0x21, 0xf4, 0x93, 0xc7, 0xa5, 0x01, 0x5f, 0xdf, 0x82, 0x20, 0x76, 0x7a,
+ 0x67, 0x00, 0x73, 0xd6,
+};
+static const unsigned char kat3054_entropyinpr2[] = {
+ 0x5f, 0x8e, 0x9f, 0x77, 0x48, 0xf3, 0xf6, 0xd0, 0x09, 0x99, 0xdc, 0x06,
+ 0xe1, 0x68, 0x2e, 0x2d,
+};
+static const unsigned char kat3054_addinpr2[] = {
+ 0x6e, 0x00, 0x98, 0xbc, 0x17, 0x5a, 0xf2, 0x80, 0x9e, 0xc7, 0x1c, 0x33,
+ 0x72, 0xf7, 0x09, 0x4e,
+};
+static const unsigned char kat3054_retbits[] = {
+ 0x70, 0x71, 0x66, 0x60, 0xe6, 0xe5, 0xb4, 0x6d, 0x6f, 0x77, 0xf0, 0x2b,
+ 0x81, 0xcc, 0xd1, 0x47, 0xf9, 0x22, 0x96, 0x1a, 0xd7, 0x5d, 0xa7, 0x08,
+ 0x30, 0x57, 0x58, 0x8b, 0xad, 0xd2, 0xb1, 0x53, 0xeb, 0x8d, 0x3d, 0xdb,
+ 0x72, 0x1a, 0x76, 0x90, 0xde, 0xf3, 0x5c, 0xca, 0x01, 0xf1, 0x1b, 0xa8,
+ 0xba, 0x8f, 0x57, 0xeb, 0xf0, 0x7e, 0xe1, 0xf1, 0x0d, 0x9d, 0xa1, 0xe7,
+ 0x80, 0x56, 0xee, 0xad,
+};
+static const struct drbg_kat_pr_true kat3054_t = {
+ 8, kat3054_entropyin, kat3054_nonce, kat3054_persstr,
+ kat3054_entropyinpr1, kat3054_addinpr1, kat3054_entropyinpr2,
+ kat3054_addinpr2, kat3054_retbits
+};
+static const struct drbg_kat kat3054 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3054_t
+};
+
+static const unsigned char kat3055_entropyin[] = {
+ 0x88, 0x7f, 0x97, 0x39, 0x03, 0xfc, 0xf2, 0xac, 0x5d, 0x2c, 0x69, 0x16,
+ 0x84, 0x7a, 0xfb, 0x4a,
+};
+static const unsigned char kat3055_nonce[] = {
+ 0x8e, 0x1d, 0x94, 0x6b, 0x87, 0xdc, 0xfd, 0x56,
+};
+static const unsigned char kat3055_persstr[] = {
+ 0x96, 0x8c, 0x2f, 0x7d, 0x2c, 0x88, 0xc4, 0xac, 0x26, 0x61, 0xc7, 0xb1,
+ 0xf8, 0xee, 0xb4, 0xf6,
+};
+static const unsigned char kat3055_entropyinpr1[] = {
+ 0x3f, 0xbd, 0x42, 0x84, 0x55, 0x3c, 0x9c, 0xad, 0x01, 0xf3, 0xcf, 0x5f,
+ 0x9f, 0xe1, 0x6a, 0x45,
+};
+static const unsigned char kat3055_addinpr1[] = {
+ 0x76, 0xce, 0xfb, 0xa8, 0xa1, 0x52, 0xba, 0x5e, 0x56, 0x7c, 0x5f, 0xe9,
+ 0x62, 0xe5, 0x9d, 0x12,
+};
+static const unsigned char kat3055_entropyinpr2[] = {
+ 0xc1, 0xaa, 0x57, 0x55, 0xc0, 0x5e, 0xa3, 0x5f, 0xc0, 0xc3, 0x92, 0x3a,
+ 0xf4, 0x4b, 0x5a, 0xc7,
+};
+static const unsigned char kat3055_addinpr2[] = {
+ 0x6a, 0x38, 0xac, 0x40, 0xcb, 0x5c, 0x30, 0x24, 0x0b, 0xe9, 0xe7, 0xb0,
+ 0x7c, 0x62, 0xd6, 0xfa,
+};
+static const unsigned char kat3055_retbits[] = {
+ 0x65, 0xd3, 0xfc, 0x22, 0x41, 0x1f, 0xa4, 0xa1, 0xb9, 0x27, 0x8b, 0x42,
+ 0x85, 0xa5, 0xc3, 0x2f, 0x26, 0x75, 0xe1, 0x23, 0x05, 0xb9, 0x00, 0xfa,
+ 0xb8, 0xfd, 0x68, 0xe8, 0x34, 0xde, 0xb3, 0x94, 0x37, 0x2c, 0x6b, 0x80,
+ 0xec, 0x56, 0xb9, 0x2e, 0x74, 0x2d, 0xbd, 0x85, 0x41, 0x44, 0x77, 0x29,
+ 0x21, 0xbd, 0x5d, 0x4d, 0x8e, 0x86, 0xea, 0x3a, 0xc2, 0xaa, 0xfb, 0x17,
+ 0xe5, 0xac, 0xc0, 0x17,
+};
+static const struct drbg_kat_pr_true kat3055_t = {
+ 9, kat3055_entropyin, kat3055_nonce, kat3055_persstr,
+ kat3055_entropyinpr1, kat3055_addinpr1, kat3055_entropyinpr2,
+ kat3055_addinpr2, kat3055_retbits
+};
+static const struct drbg_kat kat3055 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3055_t
+};
+
+static const unsigned char kat3056_entropyin[] = {
+ 0x7c, 0x64, 0xbe, 0x1d, 0x48, 0x4b, 0xa4, 0x33, 0xcb, 0x1d, 0x64, 0x69,
+ 0xdc, 0x68, 0xd4, 0xf3,
+};
+static const unsigned char kat3056_nonce[] = {
+ 0x66, 0xec, 0x35, 0xea, 0xf4, 0x9d, 0xf5, 0xbc,
+};
+static const unsigned char kat3056_persstr[] = {
+ 0x59, 0xaa, 0x04, 0x17, 0x5d, 0x04, 0x47, 0x92, 0x7b, 0xba, 0xb1, 0x36,
+ 0x2f, 0x40, 0xaf, 0xc8,
+};
+static const unsigned char kat3056_entropyinpr1[] = {
+ 0x36, 0xa9, 0x01, 0x13, 0xff, 0x86, 0x49, 0xf0, 0x98, 0x9c, 0x1a, 0xab,
+ 0xdd, 0x3a, 0x2a, 0x07,
+};
+static const unsigned char kat3056_addinpr1[] = {
+ 0x8b, 0x32, 0x01, 0x08, 0x40, 0x75, 0xa3, 0x82, 0x79, 0x3e, 0x49, 0x1d,
+ 0x5c, 0xb5, 0x96, 0x19,
+};
+static const unsigned char kat3056_entropyinpr2[] = {
+ 0x53, 0xb4, 0xfe, 0xe4, 0x98, 0xd7, 0xdb, 0x2f, 0xaa, 0xf9, 0xb1, 0x05,
+ 0xbe, 0x36, 0x21, 0x13,
+};
+static const unsigned char kat3056_addinpr2[] = {
+ 0x84, 0x9a, 0x9b, 0x4d, 0xaf, 0xb8, 0x2c, 0x92, 0x4c, 0x9b, 0x24, 0xb9,
+ 0xaf, 0xdb, 0x5c, 0x80,
+};
+static const unsigned char kat3056_retbits[] = {
+ 0x0e, 0xdf, 0x79, 0x6f, 0x1a, 0xca, 0x9f, 0x22, 0x33, 0x6e, 0x1e, 0x93,
+ 0x10, 0x21, 0xa6, 0xf9, 0x99, 0xf0, 0x49, 0xdc, 0x43, 0xbe, 0xec, 0xf4,
+ 0x7d, 0xbe, 0x15, 0x4b, 0x58, 0x14, 0xe0, 0xa2, 0x64, 0x07, 0x73, 0xfe,
+ 0x7f, 0xf7, 0x7b, 0xc2, 0x77, 0x1c, 0x5a, 0xcd, 0xe9, 0x5d, 0x2b, 0xf3,
+ 0x22, 0x16, 0xfa, 0x1d, 0x6a, 0xe2, 0xb1, 0x68, 0xc0, 0x58, 0x81, 0x9e,
+ 0x5a, 0x81, 0xcc, 0x29,
+};
+static const struct drbg_kat_pr_true kat3056_t = {
+ 10, kat3056_entropyin, kat3056_nonce, kat3056_persstr,
+ kat3056_entropyinpr1, kat3056_addinpr1, kat3056_entropyinpr2,
+ kat3056_addinpr2, kat3056_retbits
+};
+static const struct drbg_kat kat3056 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3056_t
+};
+
+static const unsigned char kat3057_entropyin[] = {
+ 0x17, 0x22, 0xe3, 0x02, 0x13, 0x89, 0xca, 0xb7, 0x79, 0x22, 0xc6, 0xde,
+ 0xad, 0x86, 0x6a, 0x62,
+};
+static const unsigned char kat3057_nonce[] = {
+ 0xf9, 0x1f, 0x9d, 0x42, 0x49, 0x80, 0xbe, 0xde,
+};
+static const unsigned char kat3057_persstr[] = {
+ 0x11, 0x6c, 0x94, 0x4f, 0xb1, 0xbd, 0x58, 0xc3, 0x2c, 0xd8, 0xfd, 0x41,
+ 0xd5, 0x38, 0xe9, 0x0e,
+};
+static const unsigned char kat3057_entropyinpr1[] = {
+ 0x8d, 0xcf, 0x57, 0x26, 0xc7, 0x12, 0x9b, 0x60, 0xa2, 0x30, 0xea, 0x28,
+ 0x76, 0xe4, 0x6b, 0x8e,
+};
+static const unsigned char kat3057_addinpr1[] = {
+ 0x46, 0xa3, 0x10, 0xe8, 0xfd, 0xff, 0xb1, 0x49, 0x8d, 0x4c, 0x1a, 0x82,
+ 0x22, 0xdc, 0x45, 0x2b,
+};
+static const unsigned char kat3057_entropyinpr2[] = {
+ 0xeb, 0x69, 0xc3, 0x24, 0x6d, 0x92, 0xd4, 0xdb, 0x47, 0x09, 0xb8, 0x85,
+ 0x7e, 0xc7, 0x57, 0xab,
+};
+static const unsigned char kat3057_addinpr2[] = {
+ 0xc7, 0x6a, 0x8d, 0xcc, 0xa6, 0xdc, 0x6b, 0x1f, 0xac, 0xf4, 0x22, 0xeb,
+ 0xc6, 0x28, 0xde, 0xd1,
+};
+static const unsigned char kat3057_retbits[] = {
+ 0xce, 0x94, 0xeb, 0x33, 0x8f, 0x13, 0xb3, 0xcd, 0xc6, 0x3d, 0xff, 0xeb,
+ 0x87, 0xac, 0x4f, 0x5b, 0x40, 0x3f, 0x9c, 0x9b, 0x4f, 0x92, 0x7b, 0xa1,
+ 0x98, 0x14, 0x03, 0xdd, 0x2d, 0x7c, 0xa3, 0x4b, 0x53, 0x25, 0xf4, 0x9b,
+ 0xf0, 0x08, 0x8d, 0xf9, 0x6a, 0x22, 0xa3, 0x85, 0x5f, 0x87, 0x07, 0xf1,
+ 0xb8, 0xe9, 0x8f, 0xf7, 0x7f, 0x6b, 0x22, 0xb9, 0xf5, 0x8a, 0xdd, 0xc3,
+ 0xd5, 0x83, 0xa9, 0x75,
+};
+static const struct drbg_kat_pr_true kat3057_t = {
+ 11, kat3057_entropyin, kat3057_nonce, kat3057_persstr,
+ kat3057_entropyinpr1, kat3057_addinpr1, kat3057_entropyinpr2,
+ kat3057_addinpr2, kat3057_retbits
+};
+static const struct drbg_kat kat3057 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3057_t
+};
+
+static const unsigned char kat3058_entropyin[] = {
+ 0xe0, 0x18, 0xbc, 0x1a, 0x81, 0x3e, 0xd2, 0x9e, 0xa8, 0xa9, 0x2a, 0x04,
+ 0x79, 0x6a, 0x16, 0xe0,
+};
+static const unsigned char kat3058_nonce[] = {
+ 0xbb, 0xfb, 0x6b, 0x8f, 0xe0, 0xbc, 0xb2, 0xb0,
+};
+static const unsigned char kat3058_persstr[] = {
+ 0xff, 0x3f, 0xd2, 0x82, 0x15, 0x1d, 0x8b, 0x16, 0x33, 0x28, 0xe5, 0x63,
+ 0x5f, 0x4e, 0xf5, 0xc0,
+};
+static const unsigned char kat3058_entropyinpr1[] = {
+ 0x3f, 0x15, 0xdd, 0xc8, 0x61, 0x87, 0x88, 0x07, 0xd4, 0x3a, 0x6d, 0x77,
+ 0xac, 0xc4, 0x08, 0x93,
+};
+static const unsigned char kat3058_addinpr1[] = {
+ 0xed, 0xee, 0x73, 0xe8, 0x6d, 0x0e, 0x24, 0xf5, 0xd0, 0x37, 0x52, 0xd7,
+ 0xc6, 0x54, 0xdf, 0x2f,
+};
+static const unsigned char kat3058_entropyinpr2[] = {
+ 0x2f, 0xb8, 0xeb, 0x4b, 0xd5, 0xf1, 0x5b, 0x2a, 0xfa, 0x6e, 0x58, 0xc3,
+ 0xa8, 0x33, 0x04, 0xc5,
+};
+static const unsigned char kat3058_addinpr2[] = {
+ 0xe0, 0xe6, 0x52, 0x62, 0x70, 0x47, 0xbb, 0x56, 0x4b, 0x46, 0x56, 0xa7,
+ 0x32, 0x7c, 0x38, 0x97,
+};
+static const unsigned char kat3058_retbits[] = {
+ 0xb3, 0x0d, 0x49, 0x7e, 0x81, 0xe5, 0x26, 0xbd, 0x5f, 0x04, 0x15, 0x4a,
+ 0x09, 0x40, 0x70, 0x4e, 0x2b, 0x2e, 0x1f, 0xbe, 0x54, 0x03, 0xa8, 0xdc,
+ 0xf2, 0x90, 0x27, 0x57, 0x55, 0xff, 0x17, 0xaa, 0xa7, 0x5e, 0xc8, 0xce,
+ 0x2a, 0x5a, 0xb7, 0x40, 0xa3, 0x80, 0x02, 0x83, 0x26, 0xa2, 0x8d, 0xd3,
+ 0x35, 0xb3, 0xc6, 0x20, 0x5b, 0xe2, 0xed, 0xce, 0xc3, 0x87, 0x9e, 0x55,
+ 0x47, 0xf9, 0x10, 0xa6,
+};
+static const struct drbg_kat_pr_true kat3058_t = {
+ 12, kat3058_entropyin, kat3058_nonce, kat3058_persstr,
+ kat3058_entropyinpr1, kat3058_addinpr1, kat3058_entropyinpr2,
+ kat3058_addinpr2, kat3058_retbits
+};
+static const struct drbg_kat kat3058 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3058_t
+};
+
+static const unsigned char kat3059_entropyin[] = {
+ 0xf8, 0xf9, 0xbf, 0x29, 0xa8, 0x07, 0xc1, 0xd4, 0xa3, 0x0f, 0x94, 0xfd,
+ 0x5d, 0x51, 0xe3, 0xcb,
+};
+static const unsigned char kat3059_nonce[] = {
+ 0x57, 0xa2, 0xf7, 0x43, 0xe6, 0x54, 0xe5, 0x97,
+};
+static const unsigned char kat3059_persstr[] = {
+ 0x02, 0x35, 0x8b, 0x1a, 0xb3, 0x7e, 0xd1, 0x25, 0xd4, 0x4a, 0x30, 0xe3,
+ 0x28, 0xca, 0x2f, 0xbc,
+};
+static const unsigned char kat3059_entropyinpr1[] = {
+ 0x59, 0xa7, 0x2d, 0x03, 0xca, 0x97, 0xd7, 0x72, 0xd0, 0xb5, 0x34, 0xa6,
+ 0x97, 0x0c, 0xfc, 0x79,
+};
+static const unsigned char kat3059_addinpr1[] = {
+ 0xdc, 0x0c, 0xf9, 0x53, 0xb9, 0xe4, 0x69, 0x28, 0x2d, 0x31, 0x0b, 0xdb,
+ 0x41, 0x6c, 0x1e, 0xd0,
+};
+static const unsigned char kat3059_entropyinpr2[] = {
+ 0x83, 0x71, 0x08, 0x15, 0xec, 0xc6, 0x54, 0x95, 0xa1, 0x27, 0x33, 0x71,
+ 0xc2, 0x4d, 0x84, 0xa9,
+};
+static const unsigned char kat3059_addinpr2[] = {
+ 0x40, 0x9e, 0xfe, 0xfb, 0x3b, 0xe8, 0x41, 0x33, 0x37, 0x02, 0xa0, 0x7d,
+ 0xa0, 0x2f, 0x2c, 0xca,
+};
+static const unsigned char kat3059_retbits[] = {
+ 0x16, 0x58, 0x9f, 0x10, 0x60, 0xdc, 0xbe, 0x61, 0x73, 0xb3, 0x7c, 0xde,
+ 0x88, 0xc5, 0x18, 0x87, 0xe1, 0x83, 0xba, 0xd7, 0xc8, 0x08, 0x90, 0x9f,
+ 0x41, 0xd7, 0x40, 0x1b, 0x41, 0xd0, 0xe5, 0x92, 0x71, 0xbc, 0x82, 0xfe,
+ 0x66, 0x34, 0xd9, 0x02, 0x45, 0xfd, 0x46, 0x98, 0x04, 0x41, 0xbe, 0x1f,
+ 0x84, 0x57, 0x91, 0xdd, 0x29, 0x93, 0x2a, 0xc4, 0x38, 0x07, 0x31, 0x3a,
+ 0x0d, 0x2f, 0xa4, 0x3d,
+};
+static const struct drbg_kat_pr_true kat3059_t = {
+ 13, kat3059_entropyin, kat3059_nonce, kat3059_persstr,
+ kat3059_entropyinpr1, kat3059_addinpr1, kat3059_entropyinpr2,
+ kat3059_addinpr2, kat3059_retbits
+};
+static const struct drbg_kat kat3059 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3059_t
+};
+
+static const unsigned char kat3060_entropyin[] = {
+ 0x2c, 0xb0, 0xc6, 0x28, 0x31, 0x9c, 0xb4, 0x27, 0x98, 0x3b, 0x64, 0x29,
+ 0xde, 0x1e, 0x3d, 0x52,
+};
+static const unsigned char kat3060_nonce[] = {
+ 0x6d, 0xb6, 0xa3, 0xee, 0x43, 0x04, 0xb5, 0xf1,
+};
+static const unsigned char kat3060_persstr[] = {
+ 0xc5, 0x08, 0xf2, 0x33, 0xd0, 0x61, 0x9f, 0xe0, 0x31, 0x5b, 0xcd, 0x94,
+ 0x95, 0xad, 0xa9, 0x21,
+};
+static const unsigned char kat3060_entropyinpr1[] = {
+ 0x3e, 0xb4, 0x64, 0x91, 0xb8, 0xde, 0x63, 0x32, 0xa4, 0x09, 0xc7, 0x64,
+ 0xd5, 0x1d, 0x51, 0x63,
+};
+static const unsigned char kat3060_addinpr1[] = {
+ 0xdf, 0xd9, 0xf9, 0x3e, 0x4d, 0xe3, 0x88, 0xbf, 0x76, 0x33, 0x59, 0x7c,
+ 0xc5, 0xf6, 0xfe, 0x68,
+};
+static const unsigned char kat3060_entropyinpr2[] = {
+ 0x44, 0xea, 0x21, 0xec, 0xf1, 0xe6, 0x33, 0xd1, 0x94, 0xc6, 0x64, 0x2a,
+ 0x7f, 0x58, 0xa6, 0xc0,
+};
+static const unsigned char kat3060_addinpr2[] = {
+ 0x30, 0xc8, 0x2d, 0x5b, 0xa6, 0x14, 0x49, 0xc3, 0xf0, 0x82, 0x35, 0xf4,
+ 0xae, 0x3e, 0xfb, 0xd2,
+};
+static const unsigned char kat3060_retbits[] = {
+ 0xb3, 0xb7, 0x05, 0xb0, 0xab, 0x3f, 0x47, 0x83, 0x64, 0x47, 0xbb, 0x43,
+ 0xe2, 0xc3, 0xb2, 0xee, 0x67, 0x15, 0x6e, 0x93, 0x47, 0x8a, 0x62, 0x20,
+ 0xeb, 0x7d, 0x84, 0x77, 0x35, 0x65, 0x31, 0x58, 0x1f, 0xec, 0x66, 0x35,
+ 0x60, 0x9a, 0xe8, 0x67, 0x42, 0xd3, 0xb9, 0x28, 0xad, 0x58, 0x03, 0x0d,
+ 0x0c, 0x0d, 0xc9, 0xe2, 0x4a, 0x5f, 0x07, 0x7a, 0x3f, 0x7b, 0x36, 0xd6,
+ 0x62, 0xbd, 0xb2, 0x56,
+};
+static const struct drbg_kat_pr_true kat3060_t = {
+ 14, kat3060_entropyin, kat3060_nonce, kat3060_persstr,
+ kat3060_entropyinpr1, kat3060_addinpr1, kat3060_entropyinpr2,
+ kat3060_addinpr2, kat3060_retbits
+};
+static const struct drbg_kat kat3060 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3060_t
+};
+
+static const unsigned char kat3061_entropyin[] = {
+ 0x96, 0xc0, 0xb1, 0x63, 0xba, 0x84, 0x80, 0x2f, 0xbd, 0xe4, 0x01, 0xbc,
+ 0x58, 0x43, 0x9e, 0xd9,
+};
+static const unsigned char kat3061_nonce[] = {
+ 0x91, 0x22, 0x45, 0x5f, 0x72, 0x4a, 0x3d, 0xcf,
+};
+static const unsigned char kat3061_persstr[] = {0};
+static const unsigned char kat3061_entropyinpr1[] = {
+ 0xdc, 0xbd, 0x4c, 0xfb, 0xf6, 0x58, 0xc3, 0xc8, 0xa4, 0xac, 0x81, 0x3c,
+ 0x39, 0x81, 0xe7, 0xd9,
+};
+static const unsigned char kat3061_addinpr1[] = {0};
+static const unsigned char kat3061_entropyinpr2[] = {
+ 0xb5, 0x45, 0x86, 0xb4, 0xd8, 0xf6, 0x75, 0x21, 0x2d, 0x56, 0x26, 0x1b,
+ 0x4f, 0x2e, 0xb1, 0x5b,
+};
+static const unsigned char kat3061_addinpr2[] = {0};
+static const unsigned char kat3061_retbits[] = {
+ 0x7d, 0xf5, 0x80, 0x0c, 0x74, 0x2e, 0xce, 0x36, 0x30, 0x89, 0xa0, 0x09,
+ 0xb9, 0x4d, 0x86, 0x4b, 0x0d, 0x0d, 0x91, 0xa3, 0xee, 0x8d, 0xa7, 0xaf,
+ 0x8b, 0x0f, 0x30, 0x79, 0x54, 0xaa, 0xe5, 0x64, 0x52, 0x6a, 0x3e, 0x67,
+ 0x21, 0x58, 0x4d, 0x2d, 0xc7, 0x03, 0xeb, 0xb1, 0xbc, 0x7b, 0xc7, 0xb7,
+ 0xfb, 0x4a, 0x38, 0xfc, 0xea, 0x91, 0x48, 0x2f, 0x71, 0x41, 0x9c, 0xc4,
+ 0x1d, 0x31, 0xc4, 0x37,
+};
+static const struct drbg_kat_pr_true kat3061_t = {
+ 0, kat3061_entropyin, kat3061_nonce, kat3061_persstr,
+ kat3061_entropyinpr1, kat3061_addinpr1, kat3061_entropyinpr2,
+ kat3061_addinpr2, kat3061_retbits
+};
+static const struct drbg_kat kat3061 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3061_t
+};
+
+static const unsigned char kat3062_entropyin[] = {
+ 0x2c, 0x90, 0x3a, 0x58, 0x4d, 0x80, 0x9c, 0x67, 0x53, 0x4a, 0xd1, 0x9d,
+ 0xbc, 0xf1, 0x51, 0xba,
+};
+static const unsigned char kat3062_nonce[] = {
+ 0x37, 0xcf, 0x55, 0x50, 0xf2, 0x4c, 0x2f, 0xff,
+};
+static const unsigned char kat3062_persstr[] = {0};
+static const unsigned char kat3062_entropyinpr1[] = {
+ 0xad, 0x81, 0x97, 0xfc, 0xa9, 0x5f, 0x16, 0x82, 0xc2, 0xe1, 0x00, 0xd7,
+ 0x31, 0xba, 0xe1, 0xbd,
+};
+static const unsigned char kat3062_addinpr1[] = {0};
+static const unsigned char kat3062_entropyinpr2[] = {
+ 0xa7, 0x89, 0xd8, 0x04, 0x60, 0x82, 0xbc, 0x0a, 0x8f, 0x6c, 0xf4, 0x65,
+ 0xb8, 0x73, 0x26, 0x11,
+};
+static const unsigned char kat3062_addinpr2[] = {0};
+static const unsigned char kat3062_retbits[] = {
+ 0xf1, 0xab, 0x89, 0x1f, 0xe1, 0xf3, 0x25, 0xd9, 0x77, 0x4c, 0xe2, 0x5a,
+ 0x6c, 0x1e, 0x8c, 0xbf, 0xad, 0xe0, 0xd7, 0xa0, 0xf4, 0x34, 0xae, 0x69,
+ 0xa5, 0xa4, 0xea, 0x38, 0xdb, 0x9b, 0x01, 0x9a, 0xd8, 0x8c, 0x8b, 0xfd,
+ 0xc4, 0x32, 0x30, 0x6b, 0x52, 0x3a, 0xd3, 0x95, 0x26, 0xc2, 0x8c, 0x9a,
+ 0xec, 0x33, 0x51, 0x18, 0x34, 0xa0, 0xbe, 0x33, 0x9d, 0x51, 0x21, 0xc8,
+ 0x8f, 0x56, 0x84, 0x31,
+};
+static const struct drbg_kat_pr_true kat3062_t = {
+ 1, kat3062_entropyin, kat3062_nonce, kat3062_persstr,
+ kat3062_entropyinpr1, kat3062_addinpr1, kat3062_entropyinpr2,
+ kat3062_addinpr2, kat3062_retbits
+};
+static const struct drbg_kat kat3062 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3062_t
+};
+
+static const unsigned char kat3063_entropyin[] = {
+ 0xa1, 0x0a, 0x44, 0xb8, 0xd7, 0xde, 0x35, 0x31, 0x8b, 0xa3, 0x34, 0x26,
+ 0x7a, 0x62, 0xc4, 0xc5,
+};
+static const unsigned char kat3063_nonce[] = {
+ 0xf4, 0x48, 0x27, 0x72, 0x71, 0xd0, 0xf0, 0x37,
+};
+static const unsigned char kat3063_persstr[] = {0};
+static const unsigned char kat3063_entropyinpr1[] = {
+ 0x17, 0x4a, 0xc8, 0xac, 0x31, 0xe3, 0x31, 0xaf, 0xb8, 0x95, 0x8a, 0x03,
+ 0xc9, 0xee, 0x15, 0xa1,
+};
+static const unsigned char kat3063_addinpr1[] = {0};
+static const unsigned char kat3063_entropyinpr2[] = {
+ 0x50, 0x1b, 0xbc, 0x9a, 0xc3, 0xb1, 0xef, 0x43, 0x17, 0xfc, 0xf0, 0x88,
+ 0x6e, 0x5a, 0x2d, 0xc8,
+};
+static const unsigned char kat3063_addinpr2[] = {0};
+static const unsigned char kat3063_retbits[] = {
+ 0x51, 0x8a, 0xe8, 0x44, 0x9c, 0xe3, 0x94, 0x4c, 0xa3, 0x61, 0x11, 0xfc,
+ 0xf2, 0x78, 0x66, 0xe6, 0x4a, 0x21, 0x78, 0x8e, 0x28, 0xdd, 0xf1, 0x4a,
+ 0x35, 0x36, 0x6a, 0x71, 0x27, 0x3d, 0x53, 0xfb, 0x7f, 0x49, 0xed, 0x7d,
+ 0xc1, 0x1e, 0xf0, 0xac, 0xa2, 0x47, 0xf6, 0x12, 0x53, 0xdd, 0xbe, 0x26,
+ 0xf0, 0x41, 0xec, 0x4f, 0xe5, 0x67, 0x7b, 0x5f, 0x62, 0xb9, 0xcf, 0xfb,
+ 0xa1, 0xa0, 0x6c, 0xf4,
+};
+static const struct drbg_kat_pr_true kat3063_t = {
+ 2, kat3063_entropyin, kat3063_nonce, kat3063_persstr,
+ kat3063_entropyinpr1, kat3063_addinpr1, kat3063_entropyinpr2,
+ kat3063_addinpr2, kat3063_retbits
+};
+static const struct drbg_kat kat3063 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3063_t
+};
+
+static const unsigned char kat3064_entropyin[] = {
+ 0x98, 0x4b, 0x69, 0xbf, 0x0f, 0x56, 0x1b, 0xc0, 0xf5, 0x01, 0xff, 0x45,
+ 0xbf, 0x0d, 0xda, 0x82,
+};
+static const unsigned char kat3064_nonce[] = {
+ 0x18, 0xec, 0xe7, 0x3a, 0x78, 0x3a, 0x37, 0xde,
+};
+static const unsigned char kat3064_persstr[] = {0};
+static const unsigned char kat3064_entropyinpr1[] = {
+ 0x69, 0x65, 0x58, 0x7c, 0xab, 0xdd, 0x23, 0x0d, 0xa5, 0x9b, 0x50, 0x44,
+ 0xc1, 0x00, 0x25, 0xd7,
+};
+static const unsigned char kat3064_addinpr1[] = {0};
+static const unsigned char kat3064_entropyinpr2[] = {
+ 0xff, 0xd7, 0x93, 0xd2, 0x29, 0x03, 0x52, 0xb8, 0xa3, 0x37, 0x2b, 0xaa,
+ 0x32, 0xf2, 0xec, 0x2b,
+};
+static const unsigned char kat3064_addinpr2[] = {0};
+static const unsigned char kat3064_retbits[] = {
+ 0x38, 0xec, 0x41, 0xbc, 0x34, 0x84, 0xde, 0xa0, 0x64, 0xce, 0x15, 0xa1,
+ 0x3d, 0xd9, 0xd9, 0x31, 0x4a, 0x5d, 0x23, 0x79, 0x65, 0xe7, 0x64, 0xf0,
+ 0xf3, 0xc7, 0x8d, 0x47, 0xac, 0x59, 0xa6, 0x8f, 0x54, 0xf0, 0xe4, 0xa9,
+ 0x48, 0x90, 0x09, 0xf5, 0x5e, 0xbb, 0x5a, 0xb0, 0x85, 0x94, 0x53, 0xb7,
+ 0xcb, 0xb1, 0x48, 0xc0, 0xcc, 0x7a, 0x97, 0x50, 0xe6, 0xa9, 0xf2, 0xfa,
+ 0x05, 0xe2, 0xee, 0x13,
+};
+static const struct drbg_kat_pr_true kat3064_t = {
+ 3, kat3064_entropyin, kat3064_nonce, kat3064_persstr,
+ kat3064_entropyinpr1, kat3064_addinpr1, kat3064_entropyinpr2,
+ kat3064_addinpr2, kat3064_retbits
+};
+static const struct drbg_kat kat3064 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3064_t
+};
+
+static const unsigned char kat3065_entropyin[] = {
+ 0xe4, 0x15, 0x92, 0xb0, 0x2d, 0x67, 0xa0, 0x14, 0xa0, 0xa3, 0x9e, 0xa4,
+ 0x82, 0x2f, 0x21, 0x00,
+};
+static const unsigned char kat3065_nonce[] = {
+ 0x57, 0x75, 0x45, 0x4f, 0xbb, 0x79, 0x37, 0x1f,
+};
+static const unsigned char kat3065_persstr[] = {0};
+static const unsigned char kat3065_entropyinpr1[] = {
+ 0xa8, 0x14, 0xfc, 0xc9, 0x32, 0xd8, 0xc7, 0x6f, 0x63, 0x02, 0xc9, 0xf1,
+ 0x14, 0x17, 0x80, 0x86,
+};
+static const unsigned char kat3065_addinpr1[] = {0};
+static const unsigned char kat3065_entropyinpr2[] = {
+ 0x4a, 0x16, 0x1c, 0x9f, 0xff, 0x6f, 0xdf, 0xb5, 0x9a, 0x23, 0x5d, 0x8b,
+ 0xe5, 0x90, 0xd1, 0x24,
+};
+static const unsigned char kat3065_addinpr2[] = {0};
+static const unsigned char kat3065_retbits[] = {
+ 0xb8, 0x43, 0x87, 0x91, 0xeb, 0xd1, 0x51, 0xc8, 0xe7, 0x85, 0xbc, 0x36,
+ 0x83, 0xb0, 0x83, 0xb8, 0xa5, 0xf7, 0xc4, 0x48, 0x43, 0xf9, 0x57, 0xae,
+ 0xf6, 0x69, 0xc1, 0x11, 0x17, 0x31, 0xea, 0xf7, 0x27, 0x16, 0x48, 0x3e,
+ 0x84, 0x82, 0x24, 0xfa, 0x7c, 0xaa, 0x9b, 0x79, 0x0e, 0xae, 0x8c, 0xef,
+ 0x81, 0x2c, 0xf7, 0x13, 0x1c, 0x71, 0xbd, 0x4f, 0x72, 0x37, 0x21, 0xf9,
+ 0xe9, 0x22, 0xab, 0xe7,
+};
+static const struct drbg_kat_pr_true kat3065_t = {
+ 4, kat3065_entropyin, kat3065_nonce, kat3065_persstr,
+ kat3065_entropyinpr1, kat3065_addinpr1, kat3065_entropyinpr2,
+ kat3065_addinpr2, kat3065_retbits
+};
+static const struct drbg_kat kat3065 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3065_t
+};
+
+static const unsigned char kat3066_entropyin[] = {
+ 0x44, 0x70, 0x5e, 0x16, 0xce, 0x1e, 0x70, 0xc2, 0xfb, 0xeb, 0x43, 0xc0,
+ 0x47, 0x37, 0x41, 0xf1,
+};
+static const unsigned char kat3066_nonce[] = {
+ 0x9b, 0xa3, 0x2c, 0x15, 0x59, 0xe1, 0xe9, 0x07,
+};
+static const unsigned char kat3066_persstr[] = {0};
+static const unsigned char kat3066_entropyinpr1[] = {
+ 0xe5, 0x93, 0x20, 0xb3, 0x5d, 0x24, 0xd1, 0x5f, 0x30, 0x45, 0xb1, 0xc7,
+ 0xa7, 0x71, 0x93, 0x80,
+};
+static const unsigned char kat3066_addinpr1[] = {0};
+static const unsigned char kat3066_entropyinpr2[] = {
+ 0xcf, 0xbe, 0xcf, 0x64, 0xe8, 0x01, 0x5c, 0x1d, 0xeb, 0xdb, 0x85, 0xbb,
+ 0xca, 0x96, 0x1c, 0x35,
+};
+static const unsigned char kat3066_addinpr2[] = {0};
+static const unsigned char kat3066_retbits[] = {
+ 0xe2, 0xc9, 0x30, 0xe4, 0x26, 0x9b, 0x41, 0x97, 0x48, 0xb6, 0xde, 0xd5,
+ 0xd1, 0x38, 0xec, 0x5f, 0x04, 0x92, 0xaa, 0x49, 0x57, 0x47, 0x01, 0x0a,
+ 0x21, 0x76, 0x64, 0x55, 0xcc, 0x5c, 0xb2, 0xf9, 0xf7, 0x7e, 0x39, 0x46,
+ 0x5a, 0x73, 0x4f, 0x2c, 0xb9, 0x9f, 0xc5, 0x50, 0x63, 0x71, 0x07, 0x00,
+ 0x22, 0x38, 0xe0, 0x56, 0x04, 0x6f, 0xc9, 0xb9, 0x95, 0x8f, 0x4c, 0x29,
+ 0xd1, 0x9c, 0xf7, 0x39,
+};
+static const struct drbg_kat_pr_true kat3066_t = {
+ 5, kat3066_entropyin, kat3066_nonce, kat3066_persstr,
+ kat3066_entropyinpr1, kat3066_addinpr1, kat3066_entropyinpr2,
+ kat3066_addinpr2, kat3066_retbits
+};
+static const struct drbg_kat kat3066 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3066_t
+};
+
+static const unsigned char kat3067_entropyin[] = {
+ 0x4c, 0x2c, 0x72, 0x14, 0x64, 0xe3, 0x8d, 0x41, 0xea, 0x24, 0xaf, 0x4e,
+ 0x74, 0xb2, 0x88, 0x86,
+};
+static const unsigned char kat3067_nonce[] = {
+ 0x8a, 0xc5, 0xc7, 0x12, 0x91, 0x9c, 0xa5, 0xe2,
+};
+static const unsigned char kat3067_persstr[] = {0};
+static const unsigned char kat3067_entropyinpr1[] = {
+ 0x78, 0x6d, 0x6d, 0xc8, 0x30, 0x30, 0x25, 0xf1, 0xfd, 0x6c, 0x9a, 0x3a,
+ 0xc4, 0x1a, 0x22, 0xf4,
+};
+static const unsigned char kat3067_addinpr1[] = {0};
+static const unsigned char kat3067_entropyinpr2[] = {
+ 0x1b, 0xb8, 0x7c, 0xe5, 0x5b, 0xc2, 0x4b, 0x41, 0x11, 0x46, 0x4a, 0x72,
+ 0x12, 0xbb, 0x28, 0xef,
+};
+static const unsigned char kat3067_addinpr2[] = {0};
+static const unsigned char kat3067_retbits[] = {
+ 0x93, 0xac, 0x42, 0xd6, 0x9e, 0xb0, 0xdf, 0xfb, 0xe6, 0x8b, 0xc0, 0x0d,
+ 0xdf, 0xfb, 0xa5, 0x57, 0xf8, 0xf4, 0x03, 0xfe, 0x56, 0xa9, 0x57, 0x90,
+ 0x5b, 0x09, 0x45, 0xeb, 0x21, 0x27, 0x70, 0x4d, 0x5a, 0xca, 0x09, 0x89,
+ 0x14, 0xa1, 0xc3, 0x94, 0xb0, 0x6b, 0xfe, 0xba, 0xc2, 0x44, 0xc1, 0x5a,
+ 0x49, 0x33, 0x65, 0xa0, 0x49, 0x17, 0x70, 0xcd, 0xd5, 0xaf, 0x21, 0x11,
+ 0xc9, 0x49, 0xae, 0x57,
+};
+static const struct drbg_kat_pr_true kat3067_t = {
+ 6, kat3067_entropyin, kat3067_nonce, kat3067_persstr,
+ kat3067_entropyinpr1, kat3067_addinpr1, kat3067_entropyinpr2,
+ kat3067_addinpr2, kat3067_retbits
+};
+static const struct drbg_kat kat3067 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3067_t
+};
+
+static const unsigned char kat3068_entropyin[] = {
+ 0xec, 0x9f, 0xcf, 0x35, 0xa8, 0xef, 0x18, 0x54, 0x0f, 0xea, 0xa9, 0xa7,
+ 0xa4, 0x67, 0xb8, 0x1c,
+};
+static const unsigned char kat3068_nonce[] = {
+ 0xa1, 0x6e, 0x4c, 0x1a, 0x13, 0xc2, 0x2b, 0x4c,
+};
+static const unsigned char kat3068_persstr[] = {0};
+static const unsigned char kat3068_entropyinpr1[] = {
+ 0x6f, 0x9b, 0x4f, 0x30, 0x15, 0x0f, 0x4e, 0xa7, 0x93, 0x57, 0x32, 0xf2,
+ 0x7b, 0x06, 0xa7, 0xcd,
+};
+static const unsigned char kat3068_addinpr1[] = {0};
+static const unsigned char kat3068_entropyinpr2[] = {
+ 0x81, 0xda, 0x45, 0x03, 0xf1, 0x76, 0xd3, 0x0c, 0x6c, 0xc1, 0x65, 0x65,
+ 0xd3, 0x74, 0x5f, 0xe6,
+};
+static const unsigned char kat3068_addinpr2[] = {0};
+static const unsigned char kat3068_retbits[] = {
+ 0x70, 0x81, 0x81, 0x47, 0x98, 0x53, 0xb6, 0x4b, 0x5c, 0x95, 0x0f, 0xca,
+ 0xb8, 0x97, 0x0e, 0xf2, 0x6d, 0xb6, 0x63, 0xc7, 0x46, 0xd9, 0x12, 0x53,
+ 0x5a, 0xe1, 0x73, 0x6b, 0x74, 0xdd, 0xe2, 0x51, 0x53, 0xe5, 0x92, 0xd6,
+ 0x65, 0xbc, 0xcf, 0xc9, 0xa2, 0x90, 0xa7, 0x37, 0x35, 0x19, 0x84, 0x82,
+ 0x33, 0x4d, 0xa6, 0x72, 0x33, 0x97, 0x9c, 0x4a, 0xa0, 0xb3, 0x1f, 0x69,
+ 0x86, 0x0c, 0xfb, 0xc4,
+};
+static const struct drbg_kat_pr_true kat3068_t = {
+ 7, kat3068_entropyin, kat3068_nonce, kat3068_persstr,
+ kat3068_entropyinpr1, kat3068_addinpr1, kat3068_entropyinpr2,
+ kat3068_addinpr2, kat3068_retbits
+};
+static const struct drbg_kat kat3068 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3068_t
+};
+
+static const unsigned char kat3069_entropyin[] = {
+ 0x65, 0xf6, 0xbe, 0xee, 0xfe, 0xd4, 0x08, 0x41, 0xe2, 0x27, 0xb4, 0x44,
+ 0xea, 0x24, 0xeb, 0x58,
+};
+static const unsigned char kat3069_nonce[] = {
+ 0x29, 0x5e, 0xee, 0x1e, 0x6e, 0xf2, 0xd5, 0x23,
+};
+static const unsigned char kat3069_persstr[] = {0};
+static const unsigned char kat3069_entropyinpr1[] = {
+ 0xf6, 0xeb, 0xd5, 0x3a, 0x92, 0xaf, 0x22, 0x7b, 0x0e, 0xf2, 0xf7, 0xaf,
+ 0xa4, 0x6e, 0x84, 0xc5,
+};
+static const unsigned char kat3069_addinpr1[] = {0};
+static const unsigned char kat3069_entropyinpr2[] = {
+ 0x9e, 0xea, 0xe2, 0x44, 0xfc, 0x53, 0x7b, 0x4d, 0xf0, 0xb3, 0x40, 0x02,
+ 0x0f, 0x44, 0xc2, 0x70,
+};
+static const unsigned char kat3069_addinpr2[] = {0};
+static const unsigned char kat3069_retbits[] = {
+ 0x82, 0x1c, 0xf9, 0xf6, 0xeb, 0xa8, 0xcf, 0xe9, 0xe2, 0x8f, 0xba, 0xb3,
+ 0x00, 0xeb, 0x77, 0xde, 0xda, 0xa3, 0xc4, 0x0a, 0xf0, 0x89, 0x6c, 0x43,
+ 0x60, 0xdd, 0x4c, 0x17, 0xcd, 0xfb, 0x72, 0x6d, 0x13, 0xf0, 0x8e, 0xa8,
+ 0x5f, 0x20, 0xf9, 0x0b, 0x2e, 0x42, 0x75, 0xcc, 0xe0, 0xff, 0x63, 0x80,
+ 0x7d, 0xc4, 0x1c, 0xf2, 0xb2, 0x0d, 0x08, 0xe0, 0x1c, 0xb7, 0x36, 0xae,
+ 0xa2, 0xa4, 0xb5, 0xc0,
+};
+static const struct drbg_kat_pr_true kat3069_t = {
+ 8, kat3069_entropyin, kat3069_nonce, kat3069_persstr,
+ kat3069_entropyinpr1, kat3069_addinpr1, kat3069_entropyinpr2,
+ kat3069_addinpr2, kat3069_retbits
+};
+static const struct drbg_kat kat3069 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3069_t
+};
+
+static const unsigned char kat3070_entropyin[] = {
+ 0xc9, 0xec, 0x3e, 0xb2, 0x0e, 0xce, 0xd3, 0xd7, 0x7e, 0x32, 0xe4, 0x39,
+ 0xb4, 0xa2, 0xca, 0x42,
+};
+static const unsigned char kat3070_nonce[] = {
+ 0x98, 0xc4, 0xae, 0xaa, 0xa2, 0xb4, 0x44, 0xbb,
+};
+static const unsigned char kat3070_persstr[] = {0};
+static const unsigned char kat3070_entropyinpr1[] = {
+ 0xe4, 0x1b, 0x08, 0x1f, 0x39, 0xe8, 0xfb, 0x53, 0x0c, 0x3b, 0x24, 0x5c,
+ 0xaf, 0x6c, 0xf0, 0x6b,
+};
+static const unsigned char kat3070_addinpr1[] = {0};
+static const unsigned char kat3070_entropyinpr2[] = {
+ 0x0f, 0x5d, 0x12, 0xd0, 0x12, 0x7e, 0x8f, 0xa6, 0x72, 0x3a, 0xab, 0x9f,
+ 0xe9, 0x0f, 0xc7, 0x70,
+};
+static const unsigned char kat3070_addinpr2[] = {0};
+static const unsigned char kat3070_retbits[] = {
+ 0xdc, 0x99, 0x61, 0xbf, 0x94, 0xe1, 0x09, 0xa3, 0x8f, 0xf4, 0xc3, 0x36,
+ 0x02, 0xb3, 0xd5, 0x96, 0xac, 0x6d, 0x32, 0x3c, 0x1d, 0x30, 0x6d, 0x9e,
+ 0x19, 0x49, 0xb3, 0x25, 0x9a, 0x1c, 0xdc, 0xda, 0xe7, 0x68, 0xae, 0x7d,
+ 0xd6, 0x20, 0x91, 0x31, 0x84, 0x67, 0xfb, 0xc1, 0xcf, 0xe4, 0x33, 0xfe,
+ 0xf3, 0x95, 0xad, 0xa7, 0x72, 0x91, 0xb0, 0x8e, 0x69, 0x56, 0xad, 0x61,
+ 0xb3, 0x84, 0x07, 0x43,
+};
+static const struct drbg_kat_pr_true kat3070_t = {
+ 9, kat3070_entropyin, kat3070_nonce, kat3070_persstr,
+ kat3070_entropyinpr1, kat3070_addinpr1, kat3070_entropyinpr2,
+ kat3070_addinpr2, kat3070_retbits
+};
+static const struct drbg_kat kat3070 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3070_t
+};
+
+static const unsigned char kat3071_entropyin[] = {
+ 0x7f, 0xa7, 0x4d, 0x5d, 0xb4, 0x8c, 0xb3, 0x3b, 0x80, 0xa2, 0xad, 0x3b,
+ 0x9f, 0x81, 0x4d, 0x53,
+};
+static const unsigned char kat3071_nonce[] = {
+ 0x0f, 0x7b, 0xae, 0xcc, 0xa1, 0x77, 0x19, 0xe9,
+};
+static const unsigned char kat3071_persstr[] = {0};
+static const unsigned char kat3071_entropyinpr1[] = {
+ 0x4f, 0xbd, 0x9f, 0x7f, 0x73, 0x71, 0x36, 0x8d, 0xc6, 0xf9, 0x79, 0x69,
+ 0x69, 0xde, 0x23, 0x15,
+};
+static const unsigned char kat3071_addinpr1[] = {0};
+static const unsigned char kat3071_entropyinpr2[] = {
+ 0x1b, 0xc1, 0x46, 0xf4, 0x43, 0x11, 0x66, 0xae, 0xbb, 0xff, 0xbb, 0x92,
+ 0xd6, 0x81, 0x4e, 0x52,
+};
+static const unsigned char kat3071_addinpr2[] = {0};
+static const unsigned char kat3071_retbits[] = {
+ 0xb9, 0xf4, 0x8d, 0x30, 0xaf, 0x10, 0xe9, 0x73, 0x77, 0x4e, 0x8f, 0x76,
+ 0xf1, 0x36, 0x32, 0x97, 0x0e, 0x29, 0xa3, 0x5c, 0xc3, 0x52, 0x63, 0x44,
+ 0xbd, 0x27, 0xfd, 0x03, 0x02, 0xcc, 0x12, 0xc3, 0xbc, 0x54, 0xab, 0x3d,
+ 0xf7, 0x3e, 0x54, 0xba, 0xde, 0xad, 0x0e, 0xdf, 0x05, 0x87, 0x0d, 0x5d,
+ 0x07, 0x26, 0x20, 0x04, 0x22, 0x5b, 0x59, 0x65, 0x23, 0x49, 0x24, 0x59,
+ 0x8a, 0x8a, 0x86, 0x02,
+};
+static const struct drbg_kat_pr_true kat3071_t = {
+ 10, kat3071_entropyin, kat3071_nonce, kat3071_persstr,
+ kat3071_entropyinpr1, kat3071_addinpr1, kat3071_entropyinpr2,
+ kat3071_addinpr2, kat3071_retbits
+};
+static const struct drbg_kat kat3071 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3071_t
+};
+
+static const unsigned char kat3072_entropyin[] = {
+ 0x78, 0x6e, 0x01, 0xcd, 0xd8, 0xf4, 0x26, 0x6d, 0xa0, 0xb8, 0x9f, 0xee,
+ 0xe9, 0x0b, 0x59, 0x40,
+};
+static const unsigned char kat3072_nonce[] = {
+ 0xf0, 0xc2, 0xa6, 0xe8, 0xb1, 0xc6, 0x52, 0x60,
+};
+static const unsigned char kat3072_persstr[] = {0};
+static const unsigned char kat3072_entropyinpr1[] = {
+ 0xff, 0xd1, 0x43, 0x28, 0x17, 0x61, 0xbf, 0xbb, 0xbd, 0x58, 0x2d, 0x66,
+ 0xfb, 0x4f, 0x6f, 0x70,
+};
+static const unsigned char kat3072_addinpr1[] = {0};
+static const unsigned char kat3072_entropyinpr2[] = {
+ 0x41, 0x36, 0xec, 0xf5, 0xfa, 0x60, 0xa6, 0xe4, 0x42, 0xec, 0xd0, 0x39,
+ 0x8a, 0x0b, 0x3f, 0x2f,
+};
+static const unsigned char kat3072_addinpr2[] = {0};
+static const unsigned char kat3072_retbits[] = {
+ 0xf2, 0x48, 0x87, 0xa9, 0x5c, 0x06, 0x6c, 0x25, 0x87, 0x32, 0xf6, 0xa1,
+ 0x84, 0x47, 0x98, 0xf9, 0x2d, 0xcb, 0xee, 0xe8, 0xa1, 0xe8, 0x6f, 0xf1,
+ 0x25, 0xd7, 0xb0, 0x7a, 0xbd, 0x41, 0xf4, 0x52, 0x38, 0x8c, 0x44, 0x68,
+ 0xd1, 0x34, 0xa0, 0x96, 0xc3, 0x25, 0x58, 0x64, 0x4f, 0xc3, 0x31, 0x27,
+ 0x69, 0xf6, 0xae, 0x5d, 0x96, 0x1a, 0x73, 0x21, 0x01, 0x46, 0x0a, 0xc4,
+ 0x76, 0xd6, 0x6e, 0xa6,
+};
+static const struct drbg_kat_pr_true kat3072_t = {
+ 11, kat3072_entropyin, kat3072_nonce, kat3072_persstr,
+ kat3072_entropyinpr1, kat3072_addinpr1, kat3072_entropyinpr2,
+ kat3072_addinpr2, kat3072_retbits
+};
+static const struct drbg_kat kat3072 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3072_t
+};
+
+static const unsigned char kat3073_entropyin[] = {
+ 0x83, 0x36, 0x5a, 0x3a, 0xf6, 0x45, 0x00, 0xf4, 0x0e, 0xd9, 0x57, 0xcf,
+ 0xbe, 0x9a, 0x23, 0xad,
+};
+static const unsigned char kat3073_nonce[] = {
+ 0xa4, 0xb8, 0x4e, 0x38, 0xf6, 0xda, 0xd5, 0xbb,
+};
+static const unsigned char kat3073_persstr[] = {0};
+static const unsigned char kat3073_entropyinpr1[] = {
+ 0xbf, 0xf1, 0x5a, 0xef, 0xf6, 0x2a, 0x1e, 0x12, 0xde, 0x37, 0x30, 0xd0,
+ 0x15, 0xf4, 0xdd, 0xda,
+};
+static const unsigned char kat3073_addinpr1[] = {0};
+static const unsigned char kat3073_entropyinpr2[] = {
+ 0xf1, 0x3c, 0xae, 0xa1, 0x37, 0xb7, 0xd1, 0xfe, 0x10, 0xa9, 0x8f, 0x27,
+ 0x94, 0x74, 0xf3, 0x3a,
+};
+static const unsigned char kat3073_addinpr2[] = {0};
+static const unsigned char kat3073_retbits[] = {
+ 0x85, 0x93, 0x00, 0xc9, 0xa6, 0xb2, 0xa7, 0xf2, 0x36, 0xcc, 0xde, 0x7b,
+ 0x75, 0xb9, 0xf0, 0xfa, 0xaa, 0x2d, 0x6f, 0xea, 0x6e, 0x4a, 0x2f, 0xaf,
+ 0xa2, 0x50, 0x28, 0x34, 0x3a, 0xdf, 0xdd, 0x5a, 0x26, 0xf1, 0x03, 0x8b,
+ 0x3b, 0x99, 0x91, 0x3a, 0xa1, 0x00, 0x39, 0xcb, 0x6f, 0x80, 0xc2, 0x51,
+ 0xb8, 0x48, 0x07, 0x45, 0x93, 0x3b, 0x27, 0x8e, 0x61, 0xbb, 0xce, 0x00,
+ 0xc6, 0x10, 0x1a, 0x49,
+};
+static const struct drbg_kat_pr_true kat3073_t = {
+ 12, kat3073_entropyin, kat3073_nonce, kat3073_persstr,
+ kat3073_entropyinpr1, kat3073_addinpr1, kat3073_entropyinpr2,
+ kat3073_addinpr2, kat3073_retbits
+};
+static const struct drbg_kat kat3073 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3073_t
+};
+
+static const unsigned char kat3074_entropyin[] = {
+ 0x1d, 0x2a, 0xc9, 0x54, 0x04, 0x2e, 0xfc, 0xae, 0xad, 0xca, 0x1b, 0x9b,
+ 0x5b, 0x05, 0x12, 0xdf,
+};
+static const unsigned char kat3074_nonce[] = {
+ 0x01, 0xb4, 0x00, 0x4f, 0x07, 0x9a, 0x97, 0x56,
+};
+static const unsigned char kat3074_persstr[] = {0};
+static const unsigned char kat3074_entropyinpr1[] = {
+ 0x5b, 0x6e, 0x76, 0x0e, 0xcb, 0xff, 0x69, 0x14, 0x99, 0xf8, 0xc5, 0x58,
+ 0xfb, 0x30, 0xc9, 0xdf,
+};
+static const unsigned char kat3074_addinpr1[] = {0};
+static const unsigned char kat3074_entropyinpr2[] = {
+ 0x19, 0x08, 0x2c, 0x17, 0xcb, 0x8c, 0x5b, 0x8a, 0x68, 0xe9, 0xaa, 0x9d,
+ 0xd5, 0xdc, 0xbe, 0x86,
+};
+static const unsigned char kat3074_addinpr2[] = {0};
+static const unsigned char kat3074_retbits[] = {
+ 0x3f, 0xd5, 0x9d, 0x71, 0x24, 0x2b, 0x36, 0xc8, 0x4c, 0x1a, 0xf8, 0x08,
+ 0x7a, 0xce, 0xaa, 0x4c, 0xd1, 0x4e, 0xa0, 0xb4, 0xb7, 0x62, 0xda, 0xdc,
+ 0xfa, 0x2a, 0x4f, 0x8a, 0x88, 0x20, 0xcf, 0x32, 0xc6, 0x7d, 0x7c, 0x67,
+ 0x97, 0x92, 0x74, 0x30, 0x2e, 0x79, 0xbf, 0x01, 0xd6, 0xf8, 0xdb, 0x4f,
+ 0x14, 0x8d, 0xff, 0xf0, 0xc6, 0x63, 0xb6, 0x4f, 0x3b, 0x92, 0x62, 0x0a,
+ 0x0b, 0x16, 0x79, 0xb7,
+};
+static const struct drbg_kat_pr_true kat3074_t = {
+ 13, kat3074_entropyin, kat3074_nonce, kat3074_persstr,
+ kat3074_entropyinpr1, kat3074_addinpr1, kat3074_entropyinpr2,
+ kat3074_addinpr2, kat3074_retbits
+};
+static const struct drbg_kat kat3074 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3074_t
+};
+
+static const unsigned char kat3075_entropyin[] = {
+ 0xe3, 0xf0, 0x98, 0xbb, 0x88, 0xdd, 0xf4, 0x2f, 0xe9, 0x86, 0x97, 0x48,
+ 0x75, 0x2e, 0x83, 0x50,
+};
+static const unsigned char kat3075_nonce[] = {
+ 0x7f, 0x5c, 0x85, 0xf0, 0x34, 0xfb, 0x21, 0xd3,
+};
+static const unsigned char kat3075_persstr[] = {0};
+static const unsigned char kat3075_entropyinpr1[] = {
+ 0xed, 0xc0, 0xc4, 0x4a, 0x85, 0xe3, 0x93, 0x46, 0x65, 0x86, 0x29, 0x62,
+ 0x06, 0xc4, 0x1c, 0xa7,
+};
+static const unsigned char kat3075_addinpr1[] = {0};
+static const unsigned char kat3075_entropyinpr2[] = {
+ 0x40, 0x57, 0x09, 0x83, 0x7e, 0x50, 0x2c, 0x58, 0x38, 0x89, 0x82, 0x99,
+ 0x4f, 0xf5, 0x04, 0xb6,
+};
+static const unsigned char kat3075_addinpr2[] = {0};
+static const unsigned char kat3075_retbits[] = {
+ 0x38, 0x3e, 0x46, 0xb8, 0x67, 0x81, 0xf0, 0xc8, 0xc8, 0x3b, 0x7a, 0x78,
+ 0x69, 0x4f, 0xff, 0x5f, 0xdc, 0x6d, 0xe2, 0x51, 0x47, 0xe9, 0xdf, 0x25,
+ 0x0f, 0x99, 0x6b, 0xdc, 0x6a, 0x34, 0x18, 0xd4, 0x09, 0x66, 0x95, 0x4e,
+ 0x2a, 0x10, 0xcb, 0x87, 0xdc, 0xaf, 0xf1, 0xbe, 0x61, 0x3b, 0x03, 0xaf,
+ 0xd8, 0x9f, 0xef, 0x8b, 0x06, 0x7c, 0x99, 0xaa, 0xbf, 0x40, 0x12, 0xdb,
+ 0xef, 0xe2, 0x6f, 0x22,
+};
+static const struct drbg_kat_pr_true kat3075_t = {
+ 14, kat3075_entropyin, kat3075_nonce, kat3075_persstr,
+ kat3075_entropyinpr1, kat3075_addinpr1, kat3075_entropyinpr2,
+ kat3075_addinpr2, kat3075_retbits
+};
+static const struct drbg_kat kat3075 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 0, 64, &kat3075_t
+};
+
+static const unsigned char kat3076_entropyin[] = {
+ 0x52, 0xfb, 0xa9, 0x1f, 0xc9, 0x6f, 0xba, 0x39, 0x15, 0xb1, 0x15, 0xce,
+ 0xa9, 0x26, 0x3a, 0x8e,
+};
+static const unsigned char kat3076_nonce[] = {
+ 0x64, 0x24, 0x0c, 0xc3, 0x1e, 0xf9, 0x93, 0xcf,
+};
+static const unsigned char kat3076_persstr[] = {0};
+static const unsigned char kat3076_entropyinpr1[] = {
+ 0xac, 0xf1, 0x2f, 0xb3, 0xf6, 0x00, 0xc1, 0x09, 0x76, 0x47, 0x7d, 0x58,
+ 0xbd, 0x86, 0x5c, 0x8e,
+};
+static const unsigned char kat3076_addinpr1[] = {
+ 0x71, 0x37, 0x19, 0x55, 0xa3, 0x71, 0xa1, 0xe4, 0x05, 0xa4, 0xb3, 0xc5,
+ 0x29, 0x45, 0xa6, 0x19,
+};
+static const unsigned char kat3076_entropyinpr2[] = {
+ 0xcb, 0xd9, 0x8c, 0xb0, 0xac, 0x61, 0x54, 0x48, 0x7d, 0xbc, 0x83, 0xe4,
+ 0xfb, 0x63, 0x3c, 0x5b,
+};
+static const unsigned char kat3076_addinpr2[] = {
+ 0x43, 0xec, 0xaa, 0xf4, 0x15, 0x45, 0xde, 0xab, 0x15, 0xda, 0x0f, 0x48,
+ 0xcf, 0x7c, 0x9c, 0x7e,
+};
+static const unsigned char kat3076_retbits[] = {
+ 0x88, 0x42, 0x7b, 0xcf, 0x8c, 0xc6, 0xbd, 0x31, 0xfe, 0xfa, 0x97, 0xa6,
+ 0x17, 0x8b, 0x50, 0x90, 0xd3, 0x95, 0x4a, 0x76, 0x57, 0x94, 0x14, 0xe7,
+ 0x97, 0xeb, 0xac, 0x99, 0x38, 0x40, 0x8e, 0x60, 0x0f, 0xce, 0xef, 0x88,
+ 0x4a, 0x79, 0x2c, 0x6c, 0x7c, 0xf6, 0x3e, 0x76, 0xfd, 0xde, 0x05, 0xac,
+ 0xf9, 0x05, 0xa7, 0x7c, 0x2c, 0x31, 0xbc, 0xbf, 0x7c, 0x86, 0xe0, 0xc5,
+ 0xb5, 0x9b, 0x68, 0x87,
+};
+static const struct drbg_kat_pr_true kat3076_t = {
+ 0, kat3076_entropyin, kat3076_nonce, kat3076_persstr,
+ kat3076_entropyinpr1, kat3076_addinpr1, kat3076_entropyinpr2,
+ kat3076_addinpr2, kat3076_retbits
+};
+static const struct drbg_kat kat3076 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3076_t
+};
+
+static const unsigned char kat3077_entropyin[] = {
+ 0x78, 0x45, 0xd9, 0x6b, 0x3f, 0x43, 0xbd, 0xe5, 0xdf, 0x61, 0x43, 0x54,
+ 0x06, 0xe1, 0x87, 0x26,
+};
+static const unsigned char kat3077_nonce[] = {
+ 0x82, 0xce, 0xbe, 0x5b, 0x45, 0x45, 0x89, 0x27,
+};
+static const unsigned char kat3077_persstr[] = {0};
+static const unsigned char kat3077_entropyinpr1[] = {
+ 0x84, 0xdf, 0xae, 0x2a, 0xf8, 0x9b, 0x22, 0x04, 0x14, 0xf5, 0x94, 0x50,
+ 0xf6, 0xcb, 0x00, 0x71,
+};
+static const unsigned char kat3077_addinpr1[] = {
+ 0xb6, 0xd9, 0xbd, 0xb4, 0x77, 0xbc, 0xf7, 0x6b, 0xc4, 0xde, 0xce, 0x11,
+ 0x10, 0x49, 0xec, 0xc8,
+};
+static const unsigned char kat3077_entropyinpr2[] = {
+ 0x0b, 0x9c, 0x98, 0x78, 0x1c, 0x42, 0xa6, 0x06, 0x30, 0x2b, 0xb2, 0xc5,
+ 0xdd, 0xa6, 0x20, 0x93,
+};
+static const unsigned char kat3077_addinpr2[] = {
+ 0xca, 0x80, 0x05, 0xe7, 0x63, 0x1f, 0x2f, 0x30, 0x1b, 0x76, 0x79, 0xf6,
+ 0x88, 0x64, 0xbc, 0xc3,
+};
+static const unsigned char kat3077_retbits[] = {
+ 0xff, 0x60, 0x32, 0x51, 0xc6, 0x2c, 0x99, 0xf9, 0xb2, 0xde, 0x77, 0xe6,
+ 0xfe, 0x61, 0xa9, 0x6f, 0x83, 0xd3, 0x22, 0xe8, 0x2e, 0x1b, 0xed, 0xb1,
+ 0x4d, 0x5a, 0xb7, 0x74, 0x71, 0x86, 0x74, 0x5f, 0xef, 0x1f, 0x61, 0x72,
+ 0x70, 0x16, 0x89, 0x5f, 0x56, 0xec, 0x26, 0x51, 0xc9, 0x39, 0x28, 0x1e,
+ 0x72, 0xd8, 0xcc, 0x50, 0x4c, 0x68, 0xf8, 0xb7, 0x45, 0x94, 0xf3, 0xf8,
+ 0x04, 0x0a, 0xb5, 0x29,
+};
+static const struct drbg_kat_pr_true kat3077_t = {
+ 1, kat3077_entropyin, kat3077_nonce, kat3077_persstr,
+ kat3077_entropyinpr1, kat3077_addinpr1, kat3077_entropyinpr2,
+ kat3077_addinpr2, kat3077_retbits
+};
+static const struct drbg_kat kat3077 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3077_t
+};
+
+static const unsigned char kat3078_entropyin[] = {
+ 0xdf, 0x55, 0x3a, 0x75, 0x0e, 0xcc, 0xeb, 0xd0, 0x30, 0xc9, 0xd3, 0x17,
+ 0xe6, 0xe8, 0xf0, 0x05,
+};
+static const unsigned char kat3078_nonce[] = {
+ 0x07, 0xca, 0x4e, 0xe0, 0x3c, 0x5f, 0x66, 0x27,
+};
+static const unsigned char kat3078_persstr[] = {0};
+static const unsigned char kat3078_entropyinpr1[] = {
+ 0x0b, 0x40, 0x33, 0x04, 0xdf, 0xb9, 0xa6, 0xf1, 0x05, 0x18, 0xa9, 0x0e,
+ 0x4a, 0x94, 0x49, 0x86,
+};
+static const unsigned char kat3078_addinpr1[] = {
+ 0x8b, 0x0d, 0xb1, 0xfb, 0xeb, 0x17, 0x25, 0xce, 0x21, 0x24, 0x86, 0xff,
+ 0x44, 0x58, 0xc7, 0xb0,
+};
+static const unsigned char kat3078_entropyinpr2[] = {
+ 0x14, 0xe1, 0xc1, 0xc9, 0x4f, 0xad, 0x18, 0x8e, 0x89, 0x91, 0x16, 0x8b,
+ 0x96, 0x63, 0xf8, 0xa9,
+};
+static const unsigned char kat3078_addinpr2[] = {
+ 0x68, 0x25, 0xbf, 0xd9, 0xe5, 0x8c, 0xad, 0x4b, 0xf5, 0xd8, 0x08, 0xd8,
+ 0xf6, 0x7c, 0xa5, 0x2f,
+};
+static const unsigned char kat3078_retbits[] = {
+ 0xbb, 0x09, 0x62, 0x5c, 0xd8, 0xec, 0x66, 0x07, 0x37, 0x20, 0x1c, 0x56,
+ 0xc1, 0xe8, 0xd1, 0x5b, 0x25, 0x10, 0x67, 0x4b, 0xe1, 0x24, 0x44, 0xce,
+ 0xd6, 0x88, 0x15, 0xcc, 0x68, 0x04, 0x82, 0xb1, 0x3f, 0x9c, 0x25, 0xce,
+ 0xfb, 0xcf, 0x9d, 0x8a, 0x64, 0xba, 0xe8, 0x5a, 0xb8, 0x32, 0xb5, 0x10,
+ 0x11, 0xcd, 0x9f, 0x9c, 0x5a, 0x2a, 0x7b, 0xfd, 0xc1, 0xfe, 0x20, 0x54,
+ 0x1c, 0xff, 0x03, 0x03,
+};
+static const struct drbg_kat_pr_true kat3078_t = {
+ 2, kat3078_entropyin, kat3078_nonce, kat3078_persstr,
+ kat3078_entropyinpr1, kat3078_addinpr1, kat3078_entropyinpr2,
+ kat3078_addinpr2, kat3078_retbits
+};
+static const struct drbg_kat kat3078 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3078_t
+};
+
+static const unsigned char kat3079_entropyin[] = {
+ 0x82, 0xa2, 0xdf, 0x7c, 0x78, 0xfb, 0x57, 0x3d, 0x99, 0x6e, 0x41, 0x2a,
+ 0x61, 0xee, 0x9b, 0x5e,
+};
+static const unsigned char kat3079_nonce[] = {
+ 0x06, 0xc4, 0x6a, 0x31, 0x2d, 0xcb, 0x55, 0xbe,
+};
+static const unsigned char kat3079_persstr[] = {0};
+static const unsigned char kat3079_entropyinpr1[] = {
+ 0x38, 0x58, 0x53, 0xa0, 0x1c, 0x8f, 0xd4, 0x0b, 0xa0, 0x0a, 0xc6, 0x4b,
+ 0xb8, 0xb4, 0x5a, 0x78,
+};
+static const unsigned char kat3079_addinpr1[] = {
+ 0x66, 0xc1, 0xa8, 0xca, 0xb3, 0xfa, 0x3e, 0xdc, 0x47, 0x8d, 0xb0, 0x71,
+ 0xb8, 0xe9, 0x46, 0xa0,
+};
+static const unsigned char kat3079_entropyinpr2[] = {
+ 0x66, 0x94, 0x18, 0xdf, 0x72, 0x06, 0xb6, 0x4b, 0xd6, 0xd0, 0x08, 0xcd,
+ 0x4d, 0xbf, 0xae, 0x89,
+};
+static const unsigned char kat3079_addinpr2[] = {
+ 0xea, 0xc6, 0xad, 0xa5, 0x43, 0x9d, 0x48, 0x80, 0xd5, 0xb3, 0x5b, 0x10,
+ 0x43, 0x4b, 0x29, 0xf3,
+};
+static const unsigned char kat3079_retbits[] = {
+ 0x3b, 0x17, 0x07, 0xad, 0x87, 0xf9, 0xb6, 0xd5, 0xef, 0xc3, 0x62, 0xc5,
+ 0x52, 0xf2, 0xd0, 0xd9, 0x5e, 0xcc, 0x84, 0x1c, 0xb4, 0xee, 0xf3, 0x03,
+ 0x0c, 0xd6, 0x82, 0x42, 0xef, 0xec, 0xac, 0xc6, 0xcd, 0xea, 0x6b, 0x64,
+ 0x1c, 0x0a, 0x1c, 0xfc, 0x06, 0xd1, 0x00, 0xce, 0x54, 0x29, 0x76, 0xcf,
+ 0xc3, 0x84, 0x0f, 0xef, 0x3d, 0x0e, 0x61, 0xc9, 0x3e, 0x7e, 0xc0, 0x28,
+ 0xc4, 0xf4, 0x69, 0x42,
+};
+static const struct drbg_kat_pr_true kat3079_t = {
+ 3, kat3079_entropyin, kat3079_nonce, kat3079_persstr,
+ kat3079_entropyinpr1, kat3079_addinpr1, kat3079_entropyinpr2,
+ kat3079_addinpr2, kat3079_retbits
+};
+static const struct drbg_kat kat3079 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3079_t
+};
+
+static const unsigned char kat3080_entropyin[] = {
+ 0xf4, 0xf4, 0x91, 0xfc, 0x1f, 0x81, 0xcb, 0x62, 0xf9, 0x54, 0x9b, 0x63,
+ 0x81, 0xf6, 0x8e, 0x3b,
+};
+static const unsigned char kat3080_nonce[] = {
+ 0x16, 0x9a, 0x0b, 0x73, 0x71, 0xfd, 0x56, 0xa7,
+};
+static const unsigned char kat3080_persstr[] = {0};
+static const unsigned char kat3080_entropyinpr1[] = {
+ 0xa7, 0xd4, 0x4f, 0x40, 0x0d, 0x62, 0x02, 0x19, 0x13, 0xd3, 0x96, 0xb3,
+ 0x76, 0x0a, 0x96, 0x7a,
+};
+static const unsigned char kat3080_addinpr1[] = {
+ 0x04, 0x4c, 0x34, 0x2f, 0xda, 0xa5, 0x08, 0x8a, 0xf9, 0x91, 0x0c, 0x87,
+ 0x00, 0x50, 0x24, 0xe8,
+};
+static const unsigned char kat3080_entropyinpr2[] = {
+ 0x7a, 0xc3, 0x94, 0x3f, 0x4c, 0x7e, 0xa0, 0x3d, 0xfa, 0x21, 0x0a, 0x74,
+ 0x56, 0xa9, 0x58, 0x36,
+};
+static const unsigned char kat3080_addinpr2[] = {
+ 0xf7, 0x7b, 0x5c, 0xd8, 0x80, 0x61, 0x32, 0x51, 0x2f, 0x18, 0x3d, 0xff,
+ 0xcc, 0x80, 0xfe, 0xf6,
+};
+static const unsigned char kat3080_retbits[] = {
+ 0x32, 0xef, 0xdd, 0x57, 0x29, 0x7a, 0x08, 0xc2, 0xe6, 0x3a, 0x36, 0x4b,
+ 0x46, 0x3c, 0xda, 0x3b, 0x0e, 0x64, 0xc9, 0x43, 0x1e, 0xb7, 0x05, 0xe5,
+ 0x4e, 0xce, 0x5e, 0x1e, 0x28, 0xbb, 0xbb, 0xe3, 0x4e, 0xac, 0xd3, 0x60,
+ 0x24, 0x0b, 0xf8, 0x11, 0x33, 0x55, 0x13, 0x01, 0x9f, 0xc6, 0x93, 0xdb,
+ 0xf4, 0x88, 0x89, 0x7d, 0x52, 0x40, 0xfe, 0xf5, 0xb9, 0x50, 0x43, 0x35,
+ 0x54, 0xc3, 0x7b, 0x06,
+};
+static const struct drbg_kat_pr_true kat3080_t = {
+ 4, kat3080_entropyin, kat3080_nonce, kat3080_persstr,
+ kat3080_entropyinpr1, kat3080_addinpr1, kat3080_entropyinpr2,
+ kat3080_addinpr2, kat3080_retbits
+};
+static const struct drbg_kat kat3080 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3080_t
+};
+
+static const unsigned char kat3081_entropyin[] = {
+ 0x6b, 0x43, 0xcb, 0x03, 0x28, 0x64, 0x72, 0x54, 0xde, 0x7e, 0x1f, 0x9b,
+ 0xde, 0x7c, 0x9c, 0xc0,
+};
+static const unsigned char kat3081_nonce[] = {
+ 0xab, 0xe8, 0x34, 0xf8, 0x32, 0x20, 0x2b, 0x26,
+};
+static const unsigned char kat3081_persstr[] = {0};
+static const unsigned char kat3081_entropyinpr1[] = {
+ 0x94, 0xe4, 0x43, 0x2d, 0x5c, 0xb7, 0xf8, 0xdf, 0xbc, 0x2d, 0x46, 0x80,
+ 0x69, 0xd5, 0x20, 0x87,
+};
+static const unsigned char kat3081_addinpr1[] = {
+ 0x1e, 0x15, 0xff, 0xf4, 0xd8, 0x4a, 0x41, 0xba, 0xd2, 0x7e, 0xbc, 0xb3,
+ 0x14, 0x67, 0x5d, 0x37,
+};
+static const unsigned char kat3081_entropyinpr2[] = {
+ 0x44, 0x5c, 0x35, 0xfa, 0x6d, 0xdf, 0x6b, 0x22, 0xc8, 0x9b, 0x55, 0x39,
+ 0x4b, 0x94, 0xe3, 0xa7,
+};
+static const unsigned char kat3081_addinpr2[] = {
+ 0x90, 0xfe, 0x06, 0x93, 0x8e, 0x6c, 0x03, 0x62, 0x71, 0xb3, 0x7f, 0x8c,
+ 0xc0, 0xb0, 0x5f, 0x34,
+};
+static const unsigned char kat3081_retbits[] = {
+ 0x79, 0x9c, 0xfb, 0x0c, 0x75, 0x48, 0x01, 0x39, 0x8e, 0x60, 0x34, 0x19,
+ 0x9a, 0x9c, 0xf8, 0x2b, 0x73, 0xc9, 0x1c, 0x13, 0x99, 0x18, 0xdc, 0xd4,
+ 0xb0, 0x4a, 0x1d, 0x1e, 0x75, 0xfd, 0x9a, 0x61, 0x6e, 0x7e, 0x72, 0x3d,
+ 0x37, 0x5b, 0xf2, 0xea, 0x1d, 0x6d, 0x56, 0x73, 0x1d, 0x76, 0x78, 0x11,
+ 0x83, 0x8f, 0xf5, 0x58, 0x36, 0xbf, 0xd7, 0x6d, 0x66, 0xc6, 0x87, 0xd0,
+ 0x37, 0xe3, 0x6f, 0xcd,
+};
+static const struct drbg_kat_pr_true kat3081_t = {
+ 5, kat3081_entropyin, kat3081_nonce, kat3081_persstr,
+ kat3081_entropyinpr1, kat3081_addinpr1, kat3081_entropyinpr2,
+ kat3081_addinpr2, kat3081_retbits
+};
+static const struct drbg_kat kat3081 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3081_t
+};
+
+static const unsigned char kat3082_entropyin[] = {
+ 0xa9, 0x73, 0x19, 0x04, 0x46, 0xba, 0xe0, 0x9e, 0x8c, 0x11, 0x3e, 0x75,
+ 0x84, 0x1b, 0x61, 0x80,
+};
+static const unsigned char kat3082_nonce[] = {
+ 0x36, 0xa0, 0x5e, 0xad, 0x56, 0xca, 0xb9, 0x97,
+};
+static const unsigned char kat3082_persstr[] = {0};
+static const unsigned char kat3082_entropyinpr1[] = {
+ 0xd8, 0xc8, 0x74, 0x14, 0x48, 0xd7, 0xb0, 0x1a, 0xca, 0xa6, 0xdd, 0x1b,
+ 0x93, 0xb9, 0x5b, 0xd3,
+};
+static const unsigned char kat3082_addinpr1[] = {
+ 0x8c, 0xa0, 0x78, 0x3d, 0x6a, 0xd6, 0xe8, 0xe5, 0x13, 0x54, 0x35, 0xbf,
+ 0xaf, 0x18, 0x64, 0xec,
+};
+static const unsigned char kat3082_entropyinpr2[] = {
+ 0xcb, 0x2d, 0xc1, 0x33, 0x76, 0x98, 0x44, 0xc6, 0x12, 0xf1, 0x6e, 0x08,
+ 0xa3, 0xfe, 0x56, 0x3b,
+};
+static const unsigned char kat3082_addinpr2[] = {
+ 0xe4, 0x7c, 0xd6, 0x4e, 0xc0, 0x35, 0x43, 0x1d, 0x6b, 0x26, 0x1d, 0x08,
+ 0x08, 0x34, 0x96, 0x4f,
+};
+static const unsigned char kat3082_retbits[] = {
+ 0xac, 0x1a, 0x7b, 0xbb, 0xf5, 0xa4, 0x76, 0xe9, 0x46, 0x92, 0x31, 0x40,
+ 0xdd, 0x89, 0x7d, 0xab, 0x7a, 0xe4, 0xee, 0xd5, 0x24, 0xcc, 0xcf, 0x26,
+ 0xb1, 0x11, 0xe4, 0x3b, 0xaa, 0x1c, 0x69, 0xd4, 0xf0, 0x25, 0x9d, 0x5e,
+ 0x2c, 0x0f, 0x70, 0x13, 0xc2, 0x16, 0xd2, 0x85, 0xfc, 0xbf, 0x31, 0xa7,
+ 0x1f, 0xc9, 0xed, 0x63, 0x69, 0xbc, 0xe4, 0xb1, 0x8d, 0x6e, 0x6d, 0xce,
+ 0x93, 0x90, 0x00, 0xe2,
+};
+static const struct drbg_kat_pr_true kat3082_t = {
+ 6, kat3082_entropyin, kat3082_nonce, kat3082_persstr,
+ kat3082_entropyinpr1, kat3082_addinpr1, kat3082_entropyinpr2,
+ kat3082_addinpr2, kat3082_retbits
+};
+static const struct drbg_kat kat3082 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3082_t
+};
+
+static const unsigned char kat3083_entropyin[] = {
+ 0xbc, 0xea, 0x9d, 0x57, 0x17, 0xa6, 0xc2, 0x77, 0x8f, 0x26, 0x0d, 0x25,
+ 0xd3, 0x58, 0xa1, 0xab,
+};
+static const unsigned char kat3083_nonce[] = {
+ 0x1b, 0x31, 0x0e, 0x8e, 0xd5, 0x5a, 0xc9, 0xf6,
+};
+static const unsigned char kat3083_persstr[] = {0};
+static const unsigned char kat3083_entropyinpr1[] = {
+ 0x51, 0x09, 0x37, 0xdf, 0xfc, 0x8f, 0x41, 0xf0, 0x56, 0xcc, 0x56, 0xde,
+ 0xb8, 0xcf, 0xcd, 0xf9,
+};
+static const unsigned char kat3083_addinpr1[] = {
+ 0x5c, 0xb3, 0xbc, 0x94, 0x91, 0x0d, 0xbb, 0xae, 0x3a, 0x4c, 0x84, 0xa3,
+ 0xf3, 0x41, 0x6f, 0x4f,
+};
+static const unsigned char kat3083_entropyinpr2[] = {
+ 0x2e, 0x55, 0x38, 0xca, 0x28, 0x98, 0xa5, 0xc1, 0x8c, 0x39, 0xa9, 0x5d,
+ 0xa0, 0x16, 0xa3, 0x08,
+};
+static const unsigned char kat3083_addinpr2[] = {
+ 0x6d, 0xb0, 0x2e, 0x96, 0xbb, 0x28, 0xe0, 0x30, 0x28, 0x36, 0x7d, 0x0e,
+ 0x04, 0x1b, 0x10, 0x9d,
+};
+static const unsigned char kat3083_retbits[] = {
+ 0x9d, 0x98, 0x97, 0xf0, 0xe3, 0x80, 0xdc, 0x65, 0x51, 0xde, 0x1d, 0xe0,
+ 0x0a, 0xd9, 0xba, 0x99, 0x49, 0x68, 0xd7, 0x51, 0x9f, 0x09, 0xb6, 0x68,
+ 0xcd, 0xeb, 0xdc, 0x20, 0x83, 0xb7, 0x48, 0x3b, 0x9a, 0xd5, 0x3e, 0x88,
+ 0x37, 0x38, 0xec, 0x23, 0x9e, 0x3a, 0x8e, 0x53, 0x4f, 0x76, 0xe4, 0x95,
+ 0xec, 0x7c, 0x6c, 0xdb, 0xa5, 0x90, 0x6a, 0x08, 0x48, 0xdc, 0x53, 0xa3,
+ 0xb5, 0x35, 0x1f, 0x3c,
+};
+static const struct drbg_kat_pr_true kat3083_t = {
+ 7, kat3083_entropyin, kat3083_nonce, kat3083_persstr,
+ kat3083_entropyinpr1, kat3083_addinpr1, kat3083_entropyinpr2,
+ kat3083_addinpr2, kat3083_retbits
+};
+static const struct drbg_kat kat3083 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3083_t
+};
+
+static const unsigned char kat3084_entropyin[] = {
+ 0xf9, 0x09, 0x2d, 0x9e, 0x68, 0x9f, 0x95, 0xdb, 0x71, 0xcd, 0x4e, 0xb0,
+ 0x03, 0x60, 0xc0, 0xa0,
+};
+static const unsigned char kat3084_nonce[] = {
+ 0x65, 0xed, 0xbb, 0x2a, 0xf5, 0x31, 0x4e, 0x12,
+};
+static const unsigned char kat3084_persstr[] = {0};
+static const unsigned char kat3084_entropyinpr1[] = {
+ 0xac, 0xb7, 0x21, 0x39, 0x82, 0x29, 0x7c, 0x67, 0x74, 0x96, 0x81, 0xbd,
+ 0x60, 0x1a, 0x46, 0x67,
+};
+static const unsigned char kat3084_addinpr1[] = {
+ 0xd5, 0x33, 0x3e, 0x5b, 0x67, 0xf1, 0xe0, 0xfd, 0x90, 0xd0, 0x03, 0x41,
+ 0x97, 0xe2, 0x96, 0x40,
+};
+static const unsigned char kat3084_entropyinpr2[] = {
+ 0xaa, 0x3a, 0xec, 0xb1, 0xb0, 0xdd, 0xa2, 0x83, 0xa2, 0xf9, 0xc7, 0xc0,
+ 0x7e, 0x58, 0x21, 0xce,
+};
+static const unsigned char kat3084_addinpr2[] = {
+ 0xaf, 0x52, 0xa0, 0x61, 0x7b, 0xf9, 0xcf, 0xa9, 0x7b, 0x98, 0x41, 0xb7,
+ 0x52, 0x38, 0x2d, 0x86,
+};
+static const unsigned char kat3084_retbits[] = {
+ 0x21, 0xb1, 0x3b, 0xc7, 0xa5, 0x2f, 0x3f, 0xa9, 0x5e, 0xd4, 0x76, 0x9c,
+ 0xc1, 0xb9, 0xd4, 0x0a, 0x30, 0x2f, 0x17, 0x6f, 0xac, 0x49, 0x6b, 0x3b,
+ 0x92, 0x3c, 0x1f, 0x12, 0x6d, 0xdb, 0x5e, 0xfe, 0xee, 0xf4, 0xa1, 0x01,
+ 0x86, 0xd6, 0x01, 0x63, 0x1d, 0xab, 0x8e, 0xb6, 0x3a, 0x5d, 0x9a, 0xf6,
+ 0xe3, 0x7a, 0xeb, 0xce, 0xaf, 0x61, 0xcb, 0x28, 0x8b, 0x3a, 0x74, 0xc6,
+ 0xf4, 0x64, 0xf6, 0x9a,
+};
+static const struct drbg_kat_pr_true kat3084_t = {
+ 8, kat3084_entropyin, kat3084_nonce, kat3084_persstr,
+ kat3084_entropyinpr1, kat3084_addinpr1, kat3084_entropyinpr2,
+ kat3084_addinpr2, kat3084_retbits
+};
+static const struct drbg_kat kat3084 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3084_t
+};
+
+static const unsigned char kat3085_entropyin[] = {
+ 0x95, 0x69, 0xa6, 0x9b, 0xbc, 0x7c, 0x64, 0x13, 0xa4, 0x13, 0x68, 0x99,
+ 0xc6, 0x0b, 0x93, 0x3a,
+};
+static const unsigned char kat3085_nonce[] = {
+ 0x1a, 0x96, 0xa5, 0x62, 0xc1, 0x69, 0x28, 0xbe,
+};
+static const unsigned char kat3085_persstr[] = {0};
+static const unsigned char kat3085_entropyinpr1[] = {
+ 0x42, 0x26, 0xa2, 0xef, 0x74, 0x1d, 0xc8, 0xac, 0x1a, 0xc6, 0x34, 0x1a,
+ 0x6f, 0x10, 0x0b, 0x0d,
+};
+static const unsigned char kat3085_addinpr1[] = {
+ 0x24, 0x2e, 0x30, 0x28, 0x93, 0xe8, 0x06, 0xb6, 0xeb, 0x45, 0x12, 0x83,
+ 0x58, 0x05, 0xcc, 0x42,
+};
+static const unsigned char kat3085_entropyinpr2[] = {
+ 0x53, 0xf4, 0xfe, 0x65, 0x4c, 0x99, 0x21, 0x41, 0x49, 0x62, 0x58, 0x09,
+ 0x40, 0xf7, 0xaa, 0xc4,
+};
+static const unsigned char kat3085_addinpr2[] = {
+ 0x7e, 0x93, 0xbd, 0x34, 0xa3, 0x14, 0xed, 0x36, 0x91, 0x5c, 0x0d, 0x49,
+ 0x24, 0x1f, 0x0b, 0x45,
+};
+static const unsigned char kat3085_retbits[] = {
+ 0xa1, 0x5e, 0x7d, 0xdd, 0x25, 0x20, 0xa4, 0xff, 0xf9, 0x35, 0xaf, 0x8e,
+ 0xef, 0x53, 0xc9, 0x0a, 0xf9, 0x7b, 0xde, 0x09, 0xc7, 0x27, 0xb0, 0xee,
+ 0x14, 0x8f, 0x21, 0xf8, 0x47, 0x6e, 0xd0, 0x11, 0x03, 0xc5, 0x9a, 0x16,
+ 0x74, 0x3b, 0x69, 0xa2, 0x24, 0xd6, 0xdb, 0xfe, 0x18, 0x64, 0xef, 0xaf,
+ 0xae, 0x0e, 0x7f, 0x0a, 0x52, 0xab, 0xf3, 0x09, 0x54, 0x37, 0x0f, 0x8d,
+ 0x9a, 0xea, 0x87, 0x47,
+};
+static const struct drbg_kat_pr_true kat3085_t = {
+ 9, kat3085_entropyin, kat3085_nonce, kat3085_persstr,
+ kat3085_entropyinpr1, kat3085_addinpr1, kat3085_entropyinpr2,
+ kat3085_addinpr2, kat3085_retbits
+};
+static const struct drbg_kat kat3085 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3085_t
+};
+
+static const unsigned char kat3086_entropyin[] = {
+ 0x14, 0x2e, 0xf7, 0xb5, 0x19, 0x20, 0xcf, 0xec, 0xde, 0x35, 0x3f, 0xc9,
+ 0x08, 0xcc, 0x11, 0x54,
+};
+static const unsigned char kat3086_nonce[] = {
+ 0x6b, 0x9b, 0x6a, 0x97, 0x0f, 0xd7, 0xe2, 0x99,
+};
+static const unsigned char kat3086_persstr[] = {0};
+static const unsigned char kat3086_entropyinpr1[] = {
+ 0xbc, 0x4f, 0x9f, 0x44, 0x6f, 0xe5, 0xf7, 0x1d, 0x6d, 0x5d, 0xc9, 0xa4,
+ 0xd2, 0x91, 0xce, 0x3e,
+};
+static const unsigned char kat3086_addinpr1[] = {
+ 0xcd, 0x7e, 0xb2, 0xbe, 0x47, 0x19, 0x32, 0xf9, 0x8f, 0xb8, 0xe9, 0x7e,
+ 0xc3, 0x9c, 0xb1, 0xc4,
+};
+static const unsigned char kat3086_entropyinpr2[] = {
+ 0xb4, 0x73, 0xf3, 0xdc, 0x32, 0x76, 0xa6, 0x77, 0x2c, 0xde, 0x05, 0x8c,
+ 0x56, 0xc4, 0x08, 0x25,
+};
+static const unsigned char kat3086_addinpr2[] = {
+ 0xdd, 0xa7, 0x37, 0xbe, 0xd3, 0x2f, 0x2a, 0xd1, 0x45, 0x8c, 0x65, 0x51,
+ 0x58, 0x1d, 0x39, 0x41,
+};
+static const unsigned char kat3086_retbits[] = {
+ 0x05, 0x4a, 0xf9, 0x5c, 0xc8, 0xc1, 0xb7, 0x56, 0x2d, 0xef, 0xaa, 0x3f,
+ 0xd0, 0xc3, 0xec, 0x34, 0x58, 0x9a, 0xbb, 0x2a, 0xb9, 0xc8, 0x28, 0xed,
+ 0x1e, 0xe9, 0xe5, 0x17, 0x97, 0xf7, 0x8a, 0xe2, 0xea, 0xf2, 0xcf, 0xe2,
+ 0x27, 0x44, 0x90, 0x1b, 0x44, 0x46, 0xde, 0x92, 0x10, 0x6b, 0x0a, 0x1e,
+ 0xc4, 0x4a, 0x8d, 0x19, 0x54, 0x54, 0x2d, 0x9d, 0x74, 0xdb, 0xf6, 0x0e,
+ 0x70, 0xad, 0x5a, 0xa8,
+};
+static const struct drbg_kat_pr_true kat3086_t = {
+ 10, kat3086_entropyin, kat3086_nonce, kat3086_persstr,
+ kat3086_entropyinpr1, kat3086_addinpr1, kat3086_entropyinpr2,
+ kat3086_addinpr2, kat3086_retbits
+};
+static const struct drbg_kat kat3086 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3086_t
+};
+
+static const unsigned char kat3087_entropyin[] = {
+ 0xaa, 0x1d, 0x39, 0x38, 0xd4, 0x9a, 0x4d, 0x1c, 0x15, 0x70, 0xe3, 0x83,
+ 0xd3, 0x16, 0x7a, 0x4b,
+};
+static const unsigned char kat3087_nonce[] = {
+ 0xec, 0xd5, 0x7b, 0x78, 0x63, 0x6f, 0x27, 0xc6,
+};
+static const unsigned char kat3087_persstr[] = {0};
+static const unsigned char kat3087_entropyinpr1[] = {
+ 0x9a, 0xc3, 0x37, 0xae, 0xfd, 0x3f, 0x6b, 0x58, 0x4d, 0xe4, 0xa4, 0xf1,
+ 0xfd, 0x6a, 0x18, 0x12,
+};
+static const unsigned char kat3087_addinpr1[] = {
+ 0xa9, 0x9e, 0xab, 0x88, 0xcc, 0x2a, 0x23, 0xd1, 0x4e, 0x50, 0x43, 0xe2,
+ 0xda, 0x6d, 0x20, 0x23,
+};
+static const unsigned char kat3087_entropyinpr2[] = {
+ 0x35, 0x0a, 0xcd, 0xec, 0xd5, 0x82, 0x7b, 0xe2, 0x8b, 0x99, 0xf0, 0x16,
+ 0x2a, 0x04, 0x40, 0x31,
+};
+static const unsigned char kat3087_addinpr2[] = {
+ 0x15, 0x3a, 0xe9, 0x7c, 0xd9, 0x74, 0xb6, 0x45, 0xb3, 0x82, 0x97, 0x59,
+ 0x2c, 0x42, 0xd0, 0xdd,
+};
+static const unsigned char kat3087_retbits[] = {
+ 0xb9, 0xfc, 0x98, 0xcc, 0x81, 0xea, 0x19, 0x45, 0xa2, 0xb0, 0x11, 0x1f,
+ 0xa9, 0xc9, 0x8f, 0xb5, 0xac, 0xab, 0xa3, 0x7c, 0x69, 0x58, 0xf8, 0x35,
+ 0x7b, 0x58, 0xb1, 0x18, 0xba, 0x84, 0xc6, 0x89, 0x63, 0x07, 0xfd, 0xcb,
+ 0x94, 0xa4, 0x0f, 0xcf, 0x61, 0x60, 0x23, 0x06, 0x2c, 0x9f, 0x15, 0xb5,
+ 0xd5, 0x81, 0x85, 0x8a, 0x35, 0x5f, 0x8c, 0x8e, 0x99, 0x43, 0xfd, 0xc2,
+ 0x74, 0xa6, 0xb2, 0x93,
+};
+static const struct drbg_kat_pr_true kat3087_t = {
+ 11, kat3087_entropyin, kat3087_nonce, kat3087_persstr,
+ kat3087_entropyinpr1, kat3087_addinpr1, kat3087_entropyinpr2,
+ kat3087_addinpr2, kat3087_retbits
+};
+static const struct drbg_kat kat3087 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3087_t
+};
+
+static const unsigned char kat3088_entropyin[] = {
+ 0xb3, 0x66, 0x02, 0xa0, 0x61, 0xb1, 0x78, 0x7f, 0x54, 0x34, 0xf1, 0xa6,
+ 0x51, 0x70, 0xae, 0xa0,
+};
+static const unsigned char kat3088_nonce[] = {
+ 0xf1, 0x13, 0xef, 0xa8, 0xfa, 0xae, 0xb2, 0xd2,
+};
+static const unsigned char kat3088_persstr[] = {0};
+static const unsigned char kat3088_entropyinpr1[] = {
+ 0xdd, 0xb9, 0x09, 0xc0, 0xe2, 0x5c, 0x45, 0x1f, 0xcf, 0x7f, 0x8c, 0x02,
+ 0xbf, 0x66, 0x65, 0xee,
+};
+static const unsigned char kat3088_addinpr1[] = {
+ 0xe2, 0xee, 0x88, 0x11, 0x79, 0xeb, 0xda, 0x78, 0x02, 0xe4, 0xdb, 0x37,
+ 0x09, 0xb4, 0x7d, 0x71,
+};
+static const unsigned char kat3088_entropyinpr2[] = {
+ 0x84, 0xaa, 0xee, 0x4a, 0x4e, 0xe9, 0x56, 0x50, 0x0e, 0x06, 0x88, 0x41,
+ 0xeb, 0x48, 0x3f, 0xc7,
+};
+static const unsigned char kat3088_addinpr2[] = {
+ 0xef, 0x02, 0x2a, 0x6e, 0x11, 0x14, 0xbc, 0x2b, 0xfd, 0x75, 0xd9, 0x45,
+ 0x61, 0xf3, 0x4a, 0xc2,
+};
+static const unsigned char kat3088_retbits[] = {
+ 0x8a, 0xca, 0x3d, 0x22, 0x9e, 0xeb, 0xe7, 0x8e, 0x01, 0xd2, 0x04, 0x48,
+ 0x37, 0x20, 0xc0, 0xb4, 0x7e, 0x35, 0xe5, 0xe0, 0x07, 0xe9, 0xea, 0xfc,
+ 0x0f, 0xb0, 0xd1, 0xa2, 0x27, 0x20, 0x8c, 0xad, 0xf8, 0x0e, 0xc4, 0xb3,
+ 0x18, 0xd6, 0x86, 0x61, 0x8c, 0xfd, 0x99, 0x79, 0x62, 0x22, 0x79, 0xb7,
+ 0xa1, 0x76, 0x60, 0xee, 0x5b, 0xe8, 0xf6, 0xce, 0xe1, 0x86, 0x8c, 0xa9,
+ 0x04, 0xa7, 0x50, 0x60,
+};
+static const struct drbg_kat_pr_true kat3088_t = {
+ 12, kat3088_entropyin, kat3088_nonce, kat3088_persstr,
+ kat3088_entropyinpr1, kat3088_addinpr1, kat3088_entropyinpr2,
+ kat3088_addinpr2, kat3088_retbits
+};
+static const struct drbg_kat kat3088 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3088_t
+};
+
+static const unsigned char kat3089_entropyin[] = {
+ 0xec, 0x2c, 0x7f, 0xc4, 0x96, 0x59, 0x21, 0xf6, 0x91, 0xa0, 0xd4, 0xe6,
+ 0x15, 0xdb, 0xbd, 0x50,
+};
+static const unsigned char kat3089_nonce[] = {
+ 0x2a, 0x6f, 0x5e, 0xf1, 0xc6, 0xb5, 0x69, 0x3b,
+};
+static const unsigned char kat3089_persstr[] = {0};
+static const unsigned char kat3089_entropyinpr1[] = {
+ 0x73, 0x90, 0xfb, 0xe0, 0x95, 0xf4, 0xf5, 0x52, 0xdb, 0xe2, 0x51, 0x69,
+ 0xc5, 0x6f, 0x31, 0x9f,
+};
+static const unsigned char kat3089_addinpr1[] = {
+ 0x46, 0xc9, 0x2e, 0x32, 0x67, 0xca, 0xfe, 0x83, 0x22, 0x60, 0x7b, 0x68,
+ 0x6a, 0xc6, 0x36, 0x5e,
+};
+static const unsigned char kat3089_entropyinpr2[] = {
+ 0x2c, 0x57, 0xea, 0x41, 0xe4, 0x3a, 0x64, 0x51, 0xb8, 0x7a, 0x93, 0x4f,
+ 0xe8, 0x6d, 0x63, 0x2d,
+};
+static const unsigned char kat3089_addinpr2[] = {
+ 0x55, 0xbd, 0x66, 0xad, 0xce, 0x61, 0x26, 0x51, 0x33, 0x91, 0x4d, 0xea,
+ 0xa2, 0xf4, 0x70, 0x69,
+};
+static const unsigned char kat3089_retbits[] = {
+ 0x49, 0xd6, 0x6c, 0xbf, 0x96, 0x55, 0x0e, 0x64, 0xb4, 0x86, 0xcf, 0x99,
+ 0x1e, 0xa6, 0x64, 0x34, 0x7b, 0xe9, 0x75, 0xd4, 0x37, 0x73, 0xeb, 0x84,
+ 0x22, 0x64, 0x8c, 0x1a, 0x61, 0xc1, 0x53, 0x37, 0xe1, 0x42, 0x29, 0x1e,
+ 0xf9, 0x32, 0x5a, 0x70, 0x5a, 0x35, 0xea, 0xb4, 0xaf, 0x85, 0x9d, 0x1d,
+ 0x21, 0x9a, 0x2b, 0xb9, 0x10, 0xe4, 0x11, 0x59, 0x1b, 0x88, 0x15, 0xee,
+ 0x35, 0xc5, 0x8f, 0xba,
+};
+static const struct drbg_kat_pr_true kat3089_t = {
+ 13, kat3089_entropyin, kat3089_nonce, kat3089_persstr,
+ kat3089_entropyinpr1, kat3089_addinpr1, kat3089_entropyinpr2,
+ kat3089_addinpr2, kat3089_retbits
+};
+static const struct drbg_kat kat3089 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3089_t
+};
+
+static const unsigned char kat3090_entropyin[] = {
+ 0x5d, 0xa8, 0x0b, 0x60, 0x6d, 0x8a, 0xc1, 0x4f, 0xa0, 0x70, 0x78, 0xbf,
+ 0xc8, 0xf9, 0x44, 0x5c,
+};
+static const unsigned char kat3090_nonce[] = {
+ 0x77, 0xf4, 0xaf, 0xf7, 0x09, 0x3f, 0x19, 0x8c,
+};
+static const unsigned char kat3090_persstr[] = {0};
+static const unsigned char kat3090_entropyinpr1[] = {
+ 0xba, 0x7f, 0xa9, 0xb3, 0xec, 0x4c, 0x55, 0x8c, 0xbf, 0xfe, 0x4c, 0x42,
+ 0x2c, 0x2a, 0x99, 0x13,
+};
+static const unsigned char kat3090_addinpr1[] = {
+ 0x82, 0x1f, 0x95, 0xa4, 0xcc, 0x4c, 0xa7, 0x6a, 0xb7, 0x26, 0xcd, 0x7a,
+ 0x35, 0x57, 0xa2, 0x6c,
+};
+static const unsigned char kat3090_entropyinpr2[] = {
+ 0x18, 0x7a, 0xee, 0xbc, 0x91, 0x50, 0x35, 0x95, 0x87, 0xe6, 0x03, 0xe2,
+ 0x3c, 0x17, 0x34, 0xff,
+};
+static const unsigned char kat3090_addinpr2[] = {
+ 0x79, 0x36, 0x68, 0x54, 0x0d, 0x09, 0xb1, 0x92, 0x00, 0xf8, 0x72, 0x20,
+ 0x35, 0x39, 0xb8, 0x1a,
+};
+static const unsigned char kat3090_retbits[] = {
+ 0x5a, 0xb8, 0xad, 0xff, 0x77, 0xfe, 0xf9, 0xd4, 0x4c, 0xbe, 0x73, 0x47,
+ 0x14, 0x58, 0xde, 0xc6, 0xfe, 0x6a, 0x83, 0x05, 0x05, 0x89, 0x11, 0x93,
+ 0xfc, 0x6a, 0x83, 0x8e, 0xb2, 0x89, 0x9e, 0x86, 0xb9, 0x1a, 0x41, 0xaf,
+ 0xf6, 0x2b, 0xdb, 0x3c, 0xaf, 0x74, 0xe4, 0x59, 0x40, 0x5b, 0x66, 0xba,
+ 0xb3, 0x7b, 0x31, 0xd5, 0xe4, 0x79, 0xe7, 0xfe, 0x27, 0xdd, 0xaa, 0x9e,
+ 0xb4, 0x66, 0x52, 0x5b,
+};
+static const struct drbg_kat_pr_true kat3090_t = {
+ 14, kat3090_entropyin, kat3090_nonce, kat3090_persstr,
+ kat3090_entropyinpr1, kat3090_addinpr1, kat3090_entropyinpr2,
+ kat3090_addinpr2, kat3090_retbits
+};
+static const struct drbg_kat kat3090 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 0, 16, 64, &kat3090_t
+};
+
+static const unsigned char kat3091_entropyin[] = {
+ 0xa7, 0x28, 0x4a, 0x6e, 0x7c, 0xa8, 0x3f, 0xa8, 0xfa, 0xb4, 0xe4, 0x1c,
+ 0x53, 0xe7, 0x71, 0x1f,
+};
+static const unsigned char kat3091_nonce[] = {
+ 0x50, 0x60, 0xcb, 0xb8, 0x67, 0x33, 0x1a, 0x29,
+};
+static const unsigned char kat3091_persstr[] = {
+ 0x98, 0x63, 0xd8, 0xda, 0xc7, 0x13, 0xdf, 0xeb, 0x66, 0xa2, 0xa7, 0x98,
+ 0xa0, 0x75, 0x60, 0x68,
+};
+static const unsigned char kat3091_entropyinpr1[] = {
+ 0xb2, 0xa4, 0x82, 0x78, 0xab, 0x12, 0x15, 0x17, 0x57, 0xf6, 0xe6, 0xa9,
+ 0xfc, 0x79, 0x89, 0xa3,
+};
+static const unsigned char kat3091_addinpr1[] = {0};
+static const unsigned char kat3091_entropyinpr2[] = {
+ 0x36, 0xef, 0x9d, 0x02, 0xa9, 0xaa, 0x89, 0xe7, 0x19, 0x01, 0x1d, 0x10,
+ 0x36, 0xa5, 0x12, 0x83,
+};
+static const unsigned char kat3091_addinpr2[] = {0};
+static const unsigned char kat3091_retbits[] = {
+ 0xd3, 0x20, 0xfe, 0x5b, 0x05, 0x5a, 0x3e, 0xc0, 0xa4, 0x8c, 0x92, 0x74,
+ 0xa3, 0x79, 0xd8, 0x0e, 0xe0, 0x0a, 0xdc, 0x04, 0x0b, 0x40, 0xbb, 0xbb,
+ 0xf1, 0x24, 0x48, 0x24, 0x08, 0x97, 0x03, 0xd3, 0x2a, 0xea, 0xcd, 0xc8,
+ 0x63, 0xf7, 0x35, 0x7c, 0xef, 0x0a, 0x05, 0x82, 0xc4, 0xda, 0xb3, 0xb2,
+ 0x29, 0x24, 0xcc, 0x95, 0x37, 0x3c, 0x21, 0x2d, 0x85, 0xea, 0x1a, 0x80,
+ 0x25, 0xab, 0x3c, 0x5c,
+};
+static const struct drbg_kat_pr_true kat3091_t = {
+ 0, kat3091_entropyin, kat3091_nonce, kat3091_persstr,
+ kat3091_entropyinpr1, kat3091_addinpr1, kat3091_entropyinpr2,
+ kat3091_addinpr2, kat3091_retbits
+};
+static const struct drbg_kat kat3091 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3091_t
+};
+
+static const unsigned char kat3092_entropyin[] = {
+ 0x6a, 0x54, 0x86, 0x46, 0x93, 0x3e, 0x4f, 0x7f, 0x53, 0x7b, 0x5e, 0xfc,
+ 0x4c, 0xad, 0x0a, 0x4e,
+};
+static const unsigned char kat3092_nonce[] = {
+ 0x1f, 0x56, 0xc1, 0xb5, 0xbb, 0x3f, 0xb6, 0x4d,
+};
+static const unsigned char kat3092_persstr[] = {
+ 0xca, 0x18, 0xf2, 0x6a, 0xda, 0xbd, 0x47, 0xe8, 0x20, 0x9b, 0x55, 0xab,
+ 0x9d, 0x11, 0x3c, 0xd7,
+};
+static const unsigned char kat3092_entropyinpr1[] = {
+ 0x56, 0x5b, 0x81, 0xf0, 0xc9, 0x10, 0xc8, 0x17, 0x4c, 0x9b, 0x97, 0x04,
+ 0x7f, 0x33, 0x43, 0x28,
+};
+static const unsigned char kat3092_addinpr1[] = {0};
+static const unsigned char kat3092_entropyinpr2[] = {
+ 0xff, 0xee, 0x0d, 0xc5, 0xe8, 0x63, 0xaa, 0x16, 0x3e, 0x69, 0xff, 0xe4,
+ 0x05, 0x55, 0xbc, 0x83,
+};
+static const unsigned char kat3092_addinpr2[] = {0};
+static const unsigned char kat3092_retbits[] = {
+ 0x1c, 0xfb, 0x07, 0x4d, 0x69, 0x41, 0x68, 0xf2, 0x55, 0x31, 0x85, 0x6a,
+ 0xdc, 0xd3, 0xf3, 0x2d, 0x6e, 0x7b, 0x03, 0x5d, 0xa6, 0x84, 0x85, 0x01,
+ 0xc8, 0xed, 0x6f, 0x53, 0xc8, 0x0c, 0x7d, 0x08, 0xbd, 0xc3, 0x49, 0x9a,
+ 0x64, 0xc2, 0xfa, 0x53, 0x14, 0xaf, 0xf3, 0xbd, 0x71, 0x57, 0x41, 0x1e,
+ 0x15, 0x38, 0x94, 0x4b, 0xc1, 0x7f, 0x18, 0x91, 0xf0, 0xc4, 0x09, 0x18,
+ 0x05, 0x32, 0x40, 0x81,
+};
+static const struct drbg_kat_pr_true kat3092_t = {
+ 1, kat3092_entropyin, kat3092_nonce, kat3092_persstr,
+ kat3092_entropyinpr1, kat3092_addinpr1, kat3092_entropyinpr2,
+ kat3092_addinpr2, kat3092_retbits
+};
+static const struct drbg_kat kat3092 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3092_t
+};
+
+static const unsigned char kat3093_entropyin[] = {
+ 0x74, 0x8a, 0xe8, 0xca, 0xfd, 0x0a, 0x36, 0x79, 0x9c, 0x76, 0xaa, 0xcf,
+ 0x31, 0x3d, 0x17, 0xf9,
+};
+static const unsigned char kat3093_nonce[] = {
+ 0xf2, 0x28, 0x8c, 0x1a, 0x93, 0xb4, 0x3d, 0x84,
+};
+static const unsigned char kat3093_persstr[] = {
+ 0x34, 0x44, 0x19, 0x1e, 0x25, 0x64, 0xa3, 0x25, 0x7c, 0x33, 0x12, 0xd9,
+ 0x21, 0x52, 0x00, 0x55,
+};
+static const unsigned char kat3093_entropyinpr1[] = {
+ 0x8f, 0xdf, 0xa2, 0x91, 0x59, 0x65, 0xf6, 0xc4, 0x43, 0xcc, 0xcb, 0x7f,
+ 0xd4, 0x06, 0x49, 0xbc,
+};
+static const unsigned char kat3093_addinpr1[] = {0};
+static const unsigned char kat3093_entropyinpr2[] = {
+ 0x04, 0x64, 0xa7, 0xb3, 0x8d, 0x4c, 0x50, 0xdf, 0xf8, 0x5a, 0x10, 0xc4,
+ 0x90, 0xb0, 0x8c, 0x9f,
+};
+static const unsigned char kat3093_addinpr2[] = {0};
+static const unsigned char kat3093_retbits[] = {
+ 0x04, 0x7c, 0x54, 0x11, 0xa4, 0xc1, 0xf1, 0x2a, 0x39, 0x64, 0xdf, 0xee,
+ 0x81, 0xec, 0xe1, 0xa5, 0x63, 0x8d, 0x21, 0x17, 0xe4, 0xd4, 0x71, 0x60,
+ 0x2a, 0xa8, 0x3a, 0x77, 0xec, 0x3c, 0x04, 0xba, 0x59, 0x3e, 0x39, 0xba,
+ 0x39, 0x74, 0xeb, 0x6f, 0xfb, 0x98, 0xc7, 0x94, 0x43, 0xd6, 0x0e, 0xa0,
+ 0x47, 0xd3, 0xd9, 0x93, 0x96, 0x84, 0x45, 0x42, 0xa7, 0xab, 0xc9, 0xac,
+ 0xaf, 0xb0, 0x70, 0x03,
+};
+static const struct drbg_kat_pr_true kat3093_t = {
+ 2, kat3093_entropyin, kat3093_nonce, kat3093_persstr,
+ kat3093_entropyinpr1, kat3093_addinpr1, kat3093_entropyinpr2,
+ kat3093_addinpr2, kat3093_retbits
+};
+static const struct drbg_kat kat3093 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3093_t
+};
+
+static const unsigned char kat3094_entropyin[] = {
+ 0xb8, 0xcf, 0x19, 0xaa, 0xf1, 0x24, 0xcc, 0xc6, 0x55, 0xf1, 0x83, 0x8b,
+ 0xbc, 0xfc, 0x70, 0xbf,
+};
+static const unsigned char kat3094_nonce[] = {
+ 0x96, 0xe8, 0x71, 0x0f, 0xf3, 0x67, 0x6e, 0x69,
+};
+static const unsigned char kat3094_persstr[] = {
+ 0x4b, 0xb5, 0xa8, 0x2a, 0x03, 0x86, 0x59, 0x91, 0x87, 0x3e, 0xb6, 0x6b,
+ 0x20, 0xf6, 0xeb, 0x4b,
+};
+static const unsigned char kat3094_entropyinpr1[] = {
+ 0x48, 0x57, 0x33, 0x45, 0x20, 0xab, 0x3e, 0x19, 0x2a, 0xa4, 0x66, 0xd7,
+ 0xd5, 0xf5, 0x22, 0xd2,
+};
+static const unsigned char kat3094_addinpr1[] = {0};
+static const unsigned char kat3094_entropyinpr2[] = {
+ 0x56, 0x54, 0x8e, 0x12, 0xef, 0xc2, 0x79, 0xf7, 0x90, 0x4c, 0x84, 0xba,
+ 0x04, 0x95, 0x94, 0xc1,
+};
+static const unsigned char kat3094_addinpr2[] = {0};
+static const unsigned char kat3094_retbits[] = {
+ 0xc7, 0x76, 0xd7, 0xd8, 0xb3, 0x34, 0xe2, 0x87, 0x7b, 0x8a, 0x96, 0x33,
+ 0x41, 0x8a, 0x60, 0x51, 0x74, 0xd8, 0xf7, 0x9a, 0x48, 0xd4, 0xcc, 0x8c,
+ 0xd6, 0x6a, 0x9d, 0x37, 0x8c, 0x6f, 0x83, 0x6f, 0xa0, 0xea, 0xef, 0xd0,
+ 0xb6, 0xf6, 0x25, 0xaf, 0x20, 0xdf, 0xe8, 0xa4, 0xaf, 0xd3, 0xbe, 0x82,
+ 0x0a, 0xa1, 0x54, 0x9c, 0x83, 0x2b, 0x5a, 0xf3, 0x68, 0xa1, 0x5d, 0x22,
+ 0x37, 0xb9, 0xd8, 0x87,
+};
+static const struct drbg_kat_pr_true kat3094_t = {
+ 3, kat3094_entropyin, kat3094_nonce, kat3094_persstr,
+ kat3094_entropyinpr1, kat3094_addinpr1, kat3094_entropyinpr2,
+ kat3094_addinpr2, kat3094_retbits
+};
+static const struct drbg_kat kat3094 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3094_t
+};
+
+static const unsigned char kat3095_entropyin[] = {
+ 0xee, 0x04, 0x18, 0xdf, 0xb8, 0xac, 0x3b, 0xa3, 0xf0, 0x23, 0x95, 0xdd,
+ 0x53, 0xe2, 0x0b, 0x0b,
+};
+static const unsigned char kat3095_nonce[] = {
+ 0x39, 0x12, 0xf2, 0x88, 0x48, 0x44, 0xed, 0x67,
+};
+static const unsigned char kat3095_persstr[] = {
+ 0x6a, 0x14, 0x1a, 0xd9, 0xf5, 0xa3, 0x5e, 0x26, 0x57, 0x1f, 0x03, 0xbb,
+ 0xa9, 0x78, 0x69, 0x47,
+};
+static const unsigned char kat3095_entropyinpr1[] = {
+ 0xee, 0xfa, 0xb2, 0xd1, 0x9a, 0xac, 0xcf, 0x00, 0xfd, 0xe6, 0x3b, 0x61,
+ 0x3b, 0x6b, 0x01, 0x99,
+};
+static const unsigned char kat3095_addinpr1[] = {0};
+static const unsigned char kat3095_entropyinpr2[] = {
+ 0xc3, 0xfe, 0xc0, 0xd3, 0x0f, 0x86, 0xca, 0xc4, 0x7d, 0x3d, 0xca, 0xa9,
+ 0xd0, 0x32, 0x77, 0x97,
+};
+static const unsigned char kat3095_addinpr2[] = {0};
+static const unsigned char kat3095_retbits[] = {
+ 0xe0, 0x51, 0x65, 0xdc, 0xc2, 0x26, 0xb1, 0x69, 0xca, 0x2a, 0xd8, 0xa5,
+ 0x06, 0x0f, 0xdd, 0x59, 0xf6, 0x59, 0xe0, 0x58, 0x30, 0xb3, 0x21, 0x5b,
+ 0xc5, 0x32, 0x48, 0x4e, 0x3a, 0xd0, 0xff, 0x13, 0x88, 0x1f, 0x1b, 0x3a,
+ 0x09, 0xbc, 0x7b, 0x05, 0x41, 0xd2, 0x9d, 0x18, 0x69, 0x2f, 0xfd, 0x75,
+ 0x0c, 0xa3, 0xca, 0xd4, 0xc4, 0x61, 0x8a, 0xf0, 0xe6, 0x99, 0x89, 0x25,
+ 0xdc, 0xe5, 0xb2, 0xf3,
+};
+static const struct drbg_kat_pr_true kat3095_t = {
+ 4, kat3095_entropyin, kat3095_nonce, kat3095_persstr,
+ kat3095_entropyinpr1, kat3095_addinpr1, kat3095_entropyinpr2,
+ kat3095_addinpr2, kat3095_retbits
+};
+static const struct drbg_kat kat3095 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3095_t
+};
+
+static const unsigned char kat3096_entropyin[] = {
+ 0xe6, 0xb9, 0x0d, 0xb6, 0x5e, 0x98, 0xed, 0xf8, 0x97, 0x54, 0xe1, 0xd4,
+ 0x0c, 0x24, 0xef, 0x04,
+};
+static const unsigned char kat3096_nonce[] = {
+ 0x82, 0x55, 0xcb, 0xcd, 0x21, 0x4f, 0x4b, 0x8e,
+};
+static const unsigned char kat3096_persstr[] = {
+ 0x97, 0x5c, 0x3f, 0xf7, 0x6b, 0xff, 0x8d, 0x9b, 0xb9, 0x58, 0x0d, 0x6e,
+ 0x74, 0xbd, 0xcb, 0xce,
+};
+static const unsigned char kat3096_entropyinpr1[] = {
+ 0xf5, 0x55, 0xa2, 0x61, 0x73, 0x77, 0x36, 0x68, 0x4e, 0x8e, 0x72, 0xa6,
+ 0xd5, 0x9a, 0x76, 0x97,
+};
+static const unsigned char kat3096_addinpr1[] = {0};
+static const unsigned char kat3096_entropyinpr2[] = {
+ 0xee, 0x4c, 0xe9, 0xca, 0x18, 0x1b, 0xcc, 0xf1, 0xd3, 0xd8, 0x1a, 0xc8,
+ 0xdf, 0xeb, 0x2a, 0xad,
+};
+static const unsigned char kat3096_addinpr2[] = {0};
+static const unsigned char kat3096_retbits[] = {
+ 0x43, 0x5a, 0x51, 0x34, 0x4c, 0xa9, 0xcf, 0x00, 0x1d, 0x7a, 0xa1, 0xdc,
+ 0x5e, 0x89, 0x3b, 0x2c, 0x99, 0x5b, 0x71, 0x0e, 0x39, 0x5a, 0xfb, 0x3e,
+ 0xc2, 0x0f, 0xd5, 0x66, 0x15, 0x1e, 0xe4, 0x62, 0xa5, 0xf5, 0x06, 0x19,
+ 0x8f, 0xf6, 0x24, 0x9f, 0xf0, 0xcc, 0x4d, 0x65, 0xff, 0x3b, 0xc0, 0xd6,
+ 0x7b, 0xc4, 0x11, 0xe7, 0x0a, 0xb2, 0x08, 0x77, 0x0d, 0xe4, 0x8e, 0x40,
+ 0xd6, 0x76, 0x5f, 0x4e,
+};
+static const struct drbg_kat_pr_true kat3096_t = {
+ 5, kat3096_entropyin, kat3096_nonce, kat3096_persstr,
+ kat3096_entropyinpr1, kat3096_addinpr1, kat3096_entropyinpr2,
+ kat3096_addinpr2, kat3096_retbits
+};
+static const struct drbg_kat kat3096 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3096_t
+};
+
+static const unsigned char kat3097_entropyin[] = {
+ 0x97, 0x56, 0xa8, 0x84, 0xa7, 0x97, 0x7a, 0x4f, 0x72, 0xb4, 0xc1, 0x25,
+ 0xb2, 0x18, 0x8d, 0xca,
+};
+static const unsigned char kat3097_nonce[] = {
+ 0xae, 0x7b, 0x70, 0x43, 0x0c, 0x5e, 0x35, 0xb9,
+};
+static const unsigned char kat3097_persstr[] = {
+ 0x1f, 0xb6, 0xab, 0x91, 0xf4, 0x46, 0x22, 0x06, 0xa9, 0x5f, 0x11, 0xae,
+ 0xb8, 0x8e, 0x56, 0xd7,
+};
+static const unsigned char kat3097_entropyinpr1[] = {
+ 0x0b, 0x37, 0x1e, 0xea, 0x8d, 0xfd, 0x13, 0x7f, 0x2a, 0x06, 0xec, 0x47,
+ 0x2c, 0x0a, 0x80, 0xca,
+};
+static const unsigned char kat3097_addinpr1[] = {0};
+static const unsigned char kat3097_entropyinpr2[] = {
+ 0x88, 0x23, 0x69, 0x86, 0x84, 0x69, 0x46, 0x15, 0x65, 0x3a, 0xbe, 0x49,
+ 0x7e, 0x71, 0x2a, 0x20,
+};
+static const unsigned char kat3097_addinpr2[] = {0};
+static const unsigned char kat3097_retbits[] = {
+ 0xb1, 0x0f, 0x2e, 0xa4, 0x1c, 0x54, 0xd6, 0x0f, 0x21, 0xed, 0x87, 0x90,
+ 0xa7, 0x7a, 0x9b, 0xfc, 0x4e, 0x89, 0x23, 0x96, 0x41, 0x62, 0x53, 0xd7,
+ 0x04, 0x7c, 0x82, 0x45, 0xa4, 0x39, 0xc4, 0x66, 0x28, 0x47, 0x3e, 0x10,
+ 0x4a, 0x9b, 0x9e, 0x4d, 0xff, 0x65, 0x76, 0xdd, 0xfa, 0x74, 0x00, 0x87,
+ 0xf1, 0x07, 0x66, 0xe8, 0x72, 0xd1, 0x47, 0x9a, 0xba, 0xe7, 0x77, 0x11,
+ 0xaa, 0x83, 0x24, 0x2a,
+};
+static const struct drbg_kat_pr_true kat3097_t = {
+ 6, kat3097_entropyin, kat3097_nonce, kat3097_persstr,
+ kat3097_entropyinpr1, kat3097_addinpr1, kat3097_entropyinpr2,
+ kat3097_addinpr2, kat3097_retbits
+};
+static const struct drbg_kat kat3097 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3097_t
+};
+
+static const unsigned char kat3098_entropyin[] = {
+ 0xce, 0x51, 0x47, 0x8a, 0xfc, 0x2d, 0xd1, 0x92, 0x2a, 0x31, 0x23, 0xc1,
+ 0x74, 0x5d, 0x5c, 0xc9,
+};
+static const unsigned char kat3098_nonce[] = {
+ 0xb5, 0x09, 0x3d, 0x81, 0x56, 0xf9, 0x4d, 0x7e,
+};
+static const unsigned char kat3098_persstr[] = {
+ 0xf4, 0xdf, 0xbd, 0xd6, 0x16, 0xdd, 0xa5, 0x7e, 0xea, 0x89, 0x74, 0x8d,
+ 0xbe, 0xb0, 0x75, 0x38,
+};
+static const unsigned char kat3098_entropyinpr1[] = {
+ 0x73, 0x46, 0x8a, 0x12, 0x53, 0x43, 0x26, 0x1d, 0x66, 0x6f, 0x3c, 0xfe,
+ 0x33, 0x19, 0xc8, 0x15,
+};
+static const unsigned char kat3098_addinpr1[] = {0};
+static const unsigned char kat3098_entropyinpr2[] = {
+ 0x20, 0xa4, 0x81, 0x6a, 0x12, 0x33, 0x28, 0xd3, 0xc2, 0xed, 0xa2, 0x89,
+ 0x6a, 0x40, 0xcc, 0xbf,
+};
+static const unsigned char kat3098_addinpr2[] = {0};
+static const unsigned char kat3098_retbits[] = {
+ 0x0f, 0x89, 0x56, 0x36, 0xc5, 0x2b, 0x85, 0x10, 0xe3, 0x01, 0xbb, 0x8d,
+ 0x3c, 0x28, 0xb8, 0xab, 0x4c, 0x82, 0xf1, 0x75, 0x5a, 0x20, 0xb7, 0x4b,
+ 0x8d, 0x0d, 0x46, 0xb8, 0x58, 0x5e, 0xd1, 0x6e, 0xe2, 0x68, 0xef, 0xb2,
+ 0xd9, 0x90, 0x31, 0x41, 0x6e, 0x95, 0x1e, 0x24, 0x3f, 0xf0, 0xb9, 0x5c,
+ 0xaa, 0x02, 0x1a, 0x90, 0xf5, 0xca, 0x5d, 0x69, 0xa5, 0xd7, 0x10, 0x45,
+ 0xfb, 0xcb, 0xa8, 0x4f,
+};
+static const struct drbg_kat_pr_true kat3098_t = {
+ 7, kat3098_entropyin, kat3098_nonce, kat3098_persstr,
+ kat3098_entropyinpr1, kat3098_addinpr1, kat3098_entropyinpr2,
+ kat3098_addinpr2, kat3098_retbits
+};
+static const struct drbg_kat kat3098 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3098_t
+};
+
+static const unsigned char kat3099_entropyin[] = {
+ 0x0d, 0x85, 0xf9, 0x27, 0x1f, 0xb8, 0xef, 0x4a, 0x38, 0x7c, 0x86, 0xb2,
+ 0xdd, 0x0c, 0x11, 0x28,
+};
+static const unsigned char kat3099_nonce[] = {
+ 0xad, 0x7f, 0xb7, 0x16, 0x3c, 0xa4, 0xa6, 0x28,
+};
+static const unsigned char kat3099_persstr[] = {
+ 0x21, 0x46, 0x63, 0xf4, 0xec, 0x37, 0xde, 0x76, 0x6c, 0xa7, 0xf8, 0x09,
+ 0x1e, 0x84, 0x6f, 0x60,
+};
+static const unsigned char kat3099_entropyinpr1[] = {
+ 0x90, 0xe4, 0x4d, 0x04, 0xdb, 0xa4, 0xd0, 0x5b, 0x3b, 0xd6, 0x1b, 0x50,
+ 0xd6, 0xe3, 0x94, 0x96,
+};
+static const unsigned char kat3099_addinpr1[] = {0};
+static const unsigned char kat3099_entropyinpr2[] = {
+ 0xd9, 0xfe, 0x49, 0x5f, 0xf6, 0xaf, 0xa4, 0x28, 0x5a, 0x0e, 0xa6, 0x6d,
+ 0xbe, 0xde, 0xcb, 0x6c,
+};
+static const unsigned char kat3099_addinpr2[] = {0};
+static const unsigned char kat3099_retbits[] = {
+ 0x2f, 0x34, 0x8e, 0x58, 0x87, 0x2c, 0xf1, 0x65, 0xab, 0xbc, 0x5c, 0xaf,
+ 0xd2, 0x8d, 0x49, 0x36, 0xeb, 0x3b, 0xa9, 0x28, 0x9d, 0x1e, 0xa0, 0x8d,
+ 0xec, 0xb1, 0x13, 0xc9, 0x55, 0x72, 0x7a, 0x2e, 0xcd, 0x09, 0x64, 0xff,
+ 0x8c, 0x29, 0xd4, 0xd9, 0x1f, 0xb1, 0x22, 0x30, 0x60, 0x29, 0xd4, 0xb0,
+ 0x91, 0xb5, 0x31, 0x79, 0x1a, 0xb8, 0x1c, 0xfc, 0x19, 0xcf, 0x61, 0x32,
+ 0x94, 0x82, 0x4a, 0x04,
+};
+static const struct drbg_kat_pr_true kat3099_t = {
+ 8, kat3099_entropyin, kat3099_nonce, kat3099_persstr,
+ kat3099_entropyinpr1, kat3099_addinpr1, kat3099_entropyinpr2,
+ kat3099_addinpr2, kat3099_retbits
+};
+static const struct drbg_kat kat3099 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3099_t
+};
+
+static const unsigned char kat3100_entropyin[] = {
+ 0x0b, 0x45, 0x10, 0x84, 0xb3, 0x47, 0x13, 0x9b, 0xf4, 0xf9, 0xe8, 0x53,
+ 0xdb, 0xb5, 0x8d, 0x5c,
+};
+static const unsigned char kat3100_nonce[] = {
+ 0x1c, 0x73, 0x52, 0x09, 0x66, 0xab, 0xfb, 0x35,
+};
+static const unsigned char kat3100_persstr[] = {
+ 0xb1, 0x4d, 0xce, 0x43, 0x9f, 0x5f, 0x43, 0xd7, 0x6a, 0x4f, 0xe6, 0x0d,
+ 0xa8, 0x9c, 0x44, 0xb3,
+};
+static const unsigned char kat3100_entropyinpr1[] = {
+ 0xba, 0x4d, 0x8e, 0xca, 0x83, 0x4f, 0xcd, 0x3d, 0x1f, 0xe8, 0x0e, 0x93,
+ 0x8f, 0x11, 0xfa, 0x7b,
+};
+static const unsigned char kat3100_addinpr1[] = {0};
+static const unsigned char kat3100_entropyinpr2[] = {
+ 0x06, 0xac, 0x26, 0x7e, 0xed, 0x6d, 0x8f, 0x47, 0xc5, 0x96, 0xc7, 0xb5,
+ 0x32, 0x57, 0xa3, 0x05,
+};
+static const unsigned char kat3100_addinpr2[] = {0};
+static const unsigned char kat3100_retbits[] = {
+ 0xc7, 0xe1, 0x21, 0x75, 0x5b, 0xc9, 0x6d, 0x37, 0x75, 0x00, 0xac, 0x88,
+ 0xdc, 0xf4, 0xf4, 0x54, 0x65, 0x9c, 0xc5, 0x39, 0x51, 0xcc, 0xb1, 0x7f,
+ 0x97, 0xfe, 0xaa, 0x26, 0x9f, 0xee, 0x42, 0x90, 0xcb, 0x42, 0xf1, 0x74,
+ 0xa8, 0x1b, 0xfa, 0xa1, 0x34, 0x1b, 0x97, 0x6d, 0x30, 0x9e, 0xb4, 0x6c,
+ 0xb2, 0x2b, 0xea, 0x1b, 0x62, 0xd4, 0x34, 0x2c, 0x52, 0x2c, 0x76, 0xb1,
+ 0x09, 0x53, 0xb9, 0xd4,
+};
+static const struct drbg_kat_pr_true kat3100_t = {
+ 9, kat3100_entropyin, kat3100_nonce, kat3100_persstr,
+ kat3100_entropyinpr1, kat3100_addinpr1, kat3100_entropyinpr2,
+ kat3100_addinpr2, kat3100_retbits
+};
+static const struct drbg_kat kat3100 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3100_t
+};
+
+static const unsigned char kat3101_entropyin[] = {
+ 0x07, 0xd9, 0x92, 0xc8, 0xa7, 0x29, 0xd9, 0x70, 0x0d, 0xdf, 0x64, 0x9a,
+ 0x8d, 0x61, 0xdf, 0xfc,
+};
+static const unsigned char kat3101_nonce[] = {
+ 0xf6, 0x69, 0x76, 0x7f, 0x4c, 0xce, 0x26, 0xcd,
+};
+static const unsigned char kat3101_persstr[] = {
+ 0xde, 0x30, 0x3d, 0xfd, 0xd9, 0x2a, 0x0a, 0xf6, 0x56, 0xc2, 0xfa, 0x07,
+ 0xb9, 0x5c, 0x3c, 0xa1,
+};
+static const unsigned char kat3101_entropyinpr1[] = {
+ 0x9e, 0xce, 0xe5, 0x52, 0xdc, 0x77, 0xbe, 0x87, 0xa5, 0x06, 0x9b, 0xdb,
+ 0x7d, 0xfa, 0xea, 0x3a,
+};
+static const unsigned char kat3101_addinpr1[] = {0};
+static const unsigned char kat3101_entropyinpr2[] = {
+ 0x86, 0xd8, 0xab, 0xa3, 0x0e, 0xa8, 0x01, 0x83, 0xfc, 0x3f, 0x4b, 0xd7,
+ 0x59, 0x74, 0xb4, 0x1b,
+};
+static const unsigned char kat3101_addinpr2[] = {0};
+static const unsigned char kat3101_retbits[] = {
+ 0x68, 0xfc, 0x68, 0x9f, 0x42, 0xd6, 0xd2, 0x8d, 0x33, 0x7f, 0x8e, 0x4b,
+ 0xf7, 0xbd, 0x6b, 0x58, 0xa1, 0x80, 0x72, 0xd9, 0xa4, 0x5b, 0x58, 0x03,
+ 0xf7, 0x5a, 0x94, 0x4a, 0x8b, 0x4f, 0xd6, 0x2e, 0xee, 0xe2, 0x7d, 0xe9,
+ 0x38, 0xa8, 0x64, 0x7b, 0xdd, 0x40, 0x99, 0xb0, 0x46, 0xdc, 0x51, 0x1d,
+ 0xbf, 0xc1, 0xb4, 0x68, 0x48, 0x51, 0xe1, 0x7e, 0x66, 0x3b, 0xfb, 0xad,
+ 0x3c, 0x8c, 0x1a, 0xd6,
+};
+static const struct drbg_kat_pr_true kat3101_t = {
+ 10, kat3101_entropyin, kat3101_nonce, kat3101_persstr,
+ kat3101_entropyinpr1, kat3101_addinpr1, kat3101_entropyinpr2,
+ kat3101_addinpr2, kat3101_retbits
+};
+static const struct drbg_kat kat3101 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3101_t
+};
+
+static const unsigned char kat3102_entropyin[] = {
+ 0x6c, 0xc1, 0x6f, 0xd9, 0x8a, 0x46, 0x0b, 0xf7, 0x89, 0x34, 0x92, 0xc5,
+ 0x44, 0x83, 0x60, 0xa1,
+};
+static const unsigned char kat3102_nonce[] = {
+ 0xac, 0x23, 0x48, 0xc5, 0x9e, 0xca, 0xed, 0x06,
+};
+static const unsigned char kat3102_persstr[] = {
+ 0xe3, 0x60, 0x61, 0x88, 0x67, 0x90, 0x41, 0x30, 0x88, 0x87, 0x59, 0x6d,
+ 0xe0, 0xa8, 0x47, 0x03,
+};
+static const unsigned char kat3102_entropyinpr1[] = {
+ 0xf7, 0x19, 0xf9, 0x2f, 0x53, 0x31, 0x05, 0x81, 0x88, 0x64, 0x64, 0xae,
+ 0x48, 0xc8, 0x69, 0x52,
+};
+static const unsigned char kat3102_addinpr1[] = {0};
+static const unsigned char kat3102_entropyinpr2[] = {
+ 0xae, 0xbb, 0x99, 0xad, 0x1c, 0x3c, 0x6d, 0x8e, 0xf9, 0xf6, 0x5e, 0x4e,
+ 0x40, 0xca, 0xba, 0xb0,
+};
+static const unsigned char kat3102_addinpr2[] = {0};
+static const unsigned char kat3102_retbits[] = {
+ 0xbe, 0xb8, 0x9a, 0xd8, 0x1f, 0x87, 0xce, 0xb8, 0x06, 0x49, 0xe8, 0x86,
+ 0xa9, 0xf4, 0x37, 0x6a, 0xd3, 0x3f, 0xc3, 0x29, 0x21, 0x3f, 0x66, 0x21,
+ 0xd7, 0x42, 0x47, 0x20, 0x23, 0x43, 0x78, 0x44, 0xfe, 0x6b, 0x79, 0x3d,
+ 0x20, 0x76, 0xfe, 0x94, 0x52, 0xdc, 0x77, 0x1f, 0xa6, 0xe5, 0x9a, 0xe4,
+ 0x6a, 0x57, 0x64, 0x2c, 0xdb, 0x24, 0x68, 0x20, 0xab, 0xe0, 0x8d, 0x62,
+ 0x26, 0x9b, 0x84, 0x69,
+};
+static const struct drbg_kat_pr_true kat3102_t = {
+ 11, kat3102_entropyin, kat3102_nonce, kat3102_persstr,
+ kat3102_entropyinpr1, kat3102_addinpr1, kat3102_entropyinpr2,
+ kat3102_addinpr2, kat3102_retbits
+};
+static const struct drbg_kat kat3102 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3102_t
+};
+
+static const unsigned char kat3103_entropyin[] = {
+ 0x59, 0xcd, 0x16, 0x85, 0x4c, 0x0e, 0xb7, 0xf2, 0x33, 0xc3, 0x0f, 0xcc,
+ 0x41, 0x38, 0xb0, 0x49,
+};
+static const unsigned char kat3103_nonce[] = {
+ 0x81, 0xdc, 0xe7, 0xed, 0x37, 0xd6, 0xe2, 0x51,
+};
+static const unsigned char kat3103_persstr[] = {
+ 0x60, 0xdd, 0x02, 0x9e, 0x96, 0x74, 0x33, 0x29, 0x07, 0x98, 0xb5, 0x71,
+ 0x74, 0xf8, 0x07, 0x0e,
+};
+static const unsigned char kat3103_entropyinpr1[] = {
+ 0x65, 0x67, 0xce, 0x08, 0x37, 0xeb, 0x8c, 0x4e, 0x10, 0x72, 0x9d, 0x67,
+ 0x51, 0x5f, 0xdf, 0x5f,
+};
+static const unsigned char kat3103_addinpr1[] = {0};
+static const unsigned char kat3103_entropyinpr2[] = {
+ 0x3c, 0x73, 0xa5, 0x78, 0xf3, 0x6b, 0xe6, 0x83, 0x31, 0xb9, 0x67, 0x0c,
+ 0xb2, 0x5b, 0x98, 0x9e,
+};
+static const unsigned char kat3103_addinpr2[] = {0};
+static const unsigned char kat3103_retbits[] = {
+ 0x8c, 0xd6, 0xbe, 0x88, 0xd2, 0x4f, 0xfa, 0x12, 0x7d, 0x72, 0x89, 0x7b,
+ 0xa7, 0xfa, 0x91, 0x22, 0xe8, 0x51, 0x8b, 0x38, 0xba, 0x69, 0x3d, 0xaf,
+ 0xb0, 0x64, 0x7f, 0x09, 0x10, 0x9f, 0x17, 0x66, 0x5c, 0x48, 0xec, 0x58,
+ 0x46, 0xb8, 0x93, 0xab, 0x80, 0xff, 0x72, 0x60, 0x23, 0xa3, 0x4c, 0xad,
+ 0x67, 0x69, 0xb7, 0xd7, 0xa9, 0xa4, 0x6a, 0x1a, 0x43, 0x93, 0xad, 0x1f,
+ 0xbe, 0x43, 0xb0, 0x87,
+};
+static const struct drbg_kat_pr_true kat3103_t = {
+ 12, kat3103_entropyin, kat3103_nonce, kat3103_persstr,
+ kat3103_entropyinpr1, kat3103_addinpr1, kat3103_entropyinpr2,
+ kat3103_addinpr2, kat3103_retbits
+};
+static const struct drbg_kat kat3103 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3103_t
+};
+
+static const unsigned char kat3104_entropyin[] = {
+ 0x34, 0xaf, 0x5f, 0xf0, 0xff, 0x1e, 0x17, 0xdc, 0xc8, 0x69, 0x07, 0xf3,
+ 0x15, 0x1c, 0x4d, 0xd1,
+};
+static const unsigned char kat3104_nonce[] = {
+ 0x89, 0x88, 0xd9, 0xa4, 0x75, 0xfb, 0x40, 0x42,
+};
+static const unsigned char kat3104_persstr[] = {
+ 0xa5, 0x39, 0x81, 0xc9, 0x0e, 0xf8, 0xc7, 0x7f, 0xae, 0x3f, 0x59, 0xbf,
+ 0x27, 0x7c, 0x26, 0x41,
+};
+static const unsigned char kat3104_entropyinpr1[] = {
+ 0x97, 0x0b, 0x7e, 0xa4, 0xbc, 0x3d, 0x13, 0x47, 0xc1, 0xff, 0x46, 0x61,
+ 0x5d, 0xaa, 0x05, 0xcd,
+};
+static const unsigned char kat3104_addinpr1[] = {0};
+static const unsigned char kat3104_entropyinpr2[] = {
+ 0xc0, 0x96, 0xdc, 0x01, 0x46, 0x55, 0xbe, 0xfc, 0x7b, 0x4f, 0xc5, 0x95,
+ 0x5b, 0x97, 0x54, 0x28,
+};
+static const unsigned char kat3104_addinpr2[] = {0};
+static const unsigned char kat3104_retbits[] = {
+ 0xbe, 0x56, 0xa7, 0x88, 0xec, 0x75, 0x92, 0xe4, 0x9e, 0x83, 0x1b, 0xa4,
+ 0xa4, 0xde, 0xc7, 0x57, 0x75, 0xf6, 0xa5, 0x7f, 0xfd, 0x36, 0x8e, 0x66,
+ 0xc9, 0x8f, 0xa3, 0x6b, 0x83, 0xbe, 0xdd, 0xe7, 0x12, 0xb7, 0x68, 0xd7,
+ 0x57, 0x81, 0xbe, 0xd0, 0x6e, 0x04, 0x9d, 0xc7, 0xdc, 0xab, 0x36, 0xc6,
+ 0xcc, 0x20, 0xe0, 0x91, 0xe7, 0x68, 0xc7, 0xc3, 0x2d, 0x16, 0x8a, 0xb9,
+ 0xad, 0xc0, 0x48, 0xe1,
+};
+static const struct drbg_kat_pr_true kat3104_t = {
+ 13, kat3104_entropyin, kat3104_nonce, kat3104_persstr,
+ kat3104_entropyinpr1, kat3104_addinpr1, kat3104_entropyinpr2,
+ kat3104_addinpr2, kat3104_retbits
+};
+static const struct drbg_kat kat3104 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3104_t
+};
+
+static const unsigned char kat3105_entropyin[] = {
+ 0xf5, 0x11, 0xfd, 0x27, 0x91, 0x27, 0xd2, 0xf0, 0x80, 0xc2, 0x64, 0x09,
+ 0x46, 0xa8, 0xad, 0xef,
+};
+static const unsigned char kat3105_nonce[] = {
+ 0xb9, 0x88, 0xd1, 0x4a, 0x72, 0xbe, 0x7c, 0x9c,
+};
+static const unsigned char kat3105_persstr[] = {
+ 0x6f, 0xae, 0xdb, 0x45, 0xc4, 0x57, 0x8b, 0x51, 0x87, 0x7f, 0xc4, 0xc8,
+ 0x12, 0xef, 0xff, 0x33,
+};
+static const unsigned char kat3105_entropyinpr1[] = {
+ 0xca, 0x4d, 0x2e, 0x40, 0xf1, 0x66, 0xeb, 0x66, 0xa1, 0x46, 0xc2, 0xfb,
+ 0xda, 0x86, 0xaa, 0xfa,
+};
+static const unsigned char kat3105_addinpr1[] = {0};
+static const unsigned char kat3105_entropyinpr2[] = {
+ 0x64, 0x3c, 0xeb, 0x41, 0xff, 0x41, 0xd0, 0x06, 0xcf, 0xf5, 0x4d, 0x99,
+ 0x96, 0x46, 0xf3, 0xe6,
+};
+static const unsigned char kat3105_addinpr2[] = {0};
+static const unsigned char kat3105_retbits[] = {
+ 0x92, 0x84, 0x04, 0xb3, 0xdc, 0x10, 0x69, 0xbb, 0xc4, 0x07, 0xdc, 0x95,
+ 0xc9, 0x79, 0x0f, 0x0b, 0xa9, 0xf3, 0xc6, 0x81, 0x26, 0x66, 0x16, 0x33,
+ 0x7e, 0x2e, 0x40, 0xcb, 0x38, 0x79, 0x1a, 0x29, 0x56, 0xcc, 0xab, 0x3b,
+ 0x0f, 0xdc, 0x1f, 0xf7, 0x5e, 0x64, 0x96, 0x20, 0x40, 0xa3, 0x29, 0xa0,
+ 0xa0, 0x92, 0xd6, 0xfa, 0xee, 0x9a, 0xd3, 0x54, 0x48, 0xe3, 0xe7, 0xa4,
+ 0x15, 0x8c, 0x8a, 0x79,
+};
+static const struct drbg_kat_pr_true kat3105_t = {
+ 14, kat3105_entropyin, kat3105_nonce, kat3105_persstr,
+ kat3105_entropyinpr1, kat3105_addinpr1, kat3105_entropyinpr2,
+ kat3105_addinpr2, kat3105_retbits
+};
+static const struct drbg_kat kat3105 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 0, 64, &kat3105_t
+};
+
+static const unsigned char kat3106_entropyin[] = {
+ 0xd3, 0x45, 0x4b, 0x25, 0x7e, 0xcd, 0x83, 0xc3, 0xbe, 0x96, 0xb8, 0xf5,
+ 0x84, 0x7b, 0xe6, 0xeb,
+};
+static const unsigned char kat3106_nonce[] = {
+ 0xb2, 0x41, 0xf1, 0x29, 0x5d, 0xf4, 0xd9, 0x99,
+};
+static const unsigned char kat3106_persstr[] = {
+ 0x6e, 0x8d, 0x9b, 0x4d, 0xd8, 0xd1, 0x7e, 0xc9, 0x11, 0x11, 0xa4, 0xcb,
+ 0x93, 0xba, 0x4f, 0x25,
+};
+static const unsigned char kat3106_entropyinpr1[] = {
+ 0x66, 0xd5, 0x78, 0x53, 0x5e, 0x2b, 0x4b, 0x41, 0x56, 0x02, 0x98, 0xfe,
+ 0x7f, 0xd9, 0xe2, 0x40,
+};
+static const unsigned char kat3106_addinpr1[] = {
+ 0x0b, 0xde, 0xb8, 0x88, 0x60, 0x4d, 0xb3, 0xa7, 0xb6, 0x15, 0xb5, 0xba,
+ 0xcb, 0xe4, 0x25, 0x00,
+};
+static const unsigned char kat3106_entropyinpr2[] = {
+ 0x1d, 0x97, 0xe8, 0x9c, 0x60, 0x39, 0x15, 0x20, 0x7a, 0x65, 0x60, 0x52,
+ 0x0c, 0x4f, 0xeb, 0x00,
+};
+static const unsigned char kat3106_addinpr2[] = {
+ 0x79, 0xf3, 0x8d, 0xd5, 0x8d, 0x83, 0x5f, 0x1a, 0xe5, 0x89, 0x55, 0xbb,
+ 0xdb, 0x50, 0x0c, 0xfc,
+};
+static const unsigned char kat3106_retbits[] = {
+ 0x26, 0x75, 0x49, 0x07, 0x9e, 0x94, 0x6a, 0x1e, 0xa7, 0x24, 0x16, 0xab,
+ 0x4f, 0x57, 0xbc, 0x9c, 0x7e, 0xcd, 0xe7, 0x3e, 0x8c, 0x5c, 0x79, 0x93,
+ 0xe2, 0xcc, 0xde, 0x38, 0xf8, 0x54, 0xed, 0xb4, 0xc4, 0x3d, 0x57, 0x66,
+ 0xda, 0x71, 0xda, 0x70, 0x13, 0xae, 0x71, 0xf4, 0x36, 0x6b, 0x8d, 0x1c,
+ 0xfa, 0x19, 0x6d, 0x3f, 0x0f, 0xaa, 0xd2, 0xac, 0x98, 0xc4, 0x25, 0xc5,
+ 0x6a, 0xdb, 0xf3, 0x12,
+};
+static const struct drbg_kat_pr_true kat3106_t = {
+ 0, kat3106_entropyin, kat3106_nonce, kat3106_persstr,
+ kat3106_entropyinpr1, kat3106_addinpr1, kat3106_entropyinpr2,
+ kat3106_addinpr2, kat3106_retbits
+};
+static const struct drbg_kat kat3106 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3106_t
+};
+
+static const unsigned char kat3107_entropyin[] = {
+ 0x47, 0x7f, 0x90, 0x3f, 0xec, 0x82, 0x34, 0x93, 0x36, 0x8a, 0xdf, 0xc4,
+ 0x8b, 0x47, 0x42, 0x81,
+};
+static const unsigned char kat3107_nonce[] = {
+ 0xfc, 0x51, 0xc6, 0xbb, 0x4a, 0x96, 0xd8, 0x21,
+};
+static const unsigned char kat3107_persstr[] = {
+ 0x8d, 0xbd, 0x64, 0x13, 0xae, 0xec, 0x56, 0xc5, 0x7d, 0xdf, 0xc1, 0x52,
+ 0xa0, 0x92, 0x17, 0x4f,
+};
+static const unsigned char kat3107_entropyinpr1[] = {
+ 0xc4, 0x70, 0x0c, 0x54, 0xd6, 0xdf, 0x86, 0x4f, 0x50, 0x99, 0x12, 0xfc,
+ 0x88, 0x36, 0xb0, 0x99,
+};
+static const unsigned char kat3107_addinpr1[] = {
+ 0x0b, 0xe0, 0x48, 0xc9, 0x48, 0x31, 0xbb, 0x7e, 0xbc, 0xb6, 0x69, 0x13,
+ 0xee, 0x1c, 0x8d, 0x22,
+};
+static const unsigned char kat3107_entropyinpr2[] = {
+ 0x1c, 0x21, 0x05, 0xc6, 0x08, 0xad, 0x7b, 0xf0, 0x39, 0xde, 0x80, 0xcf,
+ 0x71, 0xbe, 0xfa, 0xdb,
+};
+static const unsigned char kat3107_addinpr2[] = {
+ 0xdb, 0xf7, 0x00, 0x48, 0x7f, 0xc4, 0xe0, 0x20, 0x14, 0x8c, 0xae, 0xa0,
+ 0x11, 0x56, 0x55, 0x01,
+};
+static const unsigned char kat3107_retbits[] = {
+ 0x3d, 0xee, 0x6e, 0x08, 0x4e, 0x75, 0x5a, 0x74, 0xca, 0x61, 0x72, 0x59,
+ 0x47, 0xe3, 0x62, 0x76, 0xb0, 0x58, 0x7d, 0xdd, 0xb1, 0xee, 0xee, 0x12,
+ 0x18, 0xaf, 0xef, 0x72, 0xe9, 0xcb, 0x0a, 0xcd, 0xbd, 0x15, 0x8e, 0x8d,
+ 0xd5, 0x9d, 0x19, 0x7c, 0x40, 0x29, 0x1d, 0x8c, 0x93, 0x0f, 0x27, 0x8a,
+ 0xe4, 0x83, 0x26, 0x89, 0x62, 0x59, 0x4d, 0x37, 0x5b, 0x84, 0x95, 0x17,
+ 0x28, 0x79, 0x09, 0xfc,
+};
+static const struct drbg_kat_pr_true kat3107_t = {
+ 1, kat3107_entropyin, kat3107_nonce, kat3107_persstr,
+ kat3107_entropyinpr1, kat3107_addinpr1, kat3107_entropyinpr2,
+ kat3107_addinpr2, kat3107_retbits
+};
+static const struct drbg_kat kat3107 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3107_t
+};
+
+static const unsigned char kat3108_entropyin[] = {
+ 0x8d, 0x2e, 0x8b, 0x6e, 0x09, 0xa4, 0xf9, 0xed, 0xb2, 0xa3, 0x0a, 0xb0,
+ 0x16, 0x4e, 0xd2, 0x32,
+};
+static const unsigned char kat3108_nonce[] = {
+ 0x6a, 0x8a, 0xe5, 0xf1, 0x5c, 0x0b, 0x4c, 0x21,
+};
+static const unsigned char kat3108_persstr[] = {
+ 0x9b, 0x46, 0x3f, 0x43, 0xb2, 0x0d, 0x3e, 0xc3, 0xf7, 0x8d, 0x28, 0x23,
+ 0xab, 0xfa, 0x9a, 0x96,
+};
+static const unsigned char kat3108_entropyinpr1[] = {
+ 0xae, 0x78, 0x67, 0xfd, 0xde, 0x84, 0x53, 0xb4, 0x91, 0x3a, 0xcc, 0x8d,
+ 0x9b, 0xd8, 0x3b, 0x5a,
+};
+static const unsigned char kat3108_addinpr1[] = {
+ 0xaf, 0x24, 0x93, 0x2b, 0x03, 0xd6, 0xbc, 0xb8, 0xe9, 0xa4, 0xc6, 0xb6,
+ 0x26, 0x72, 0x69, 0x22,
+};
+static const unsigned char kat3108_entropyinpr2[] = {
+ 0xd1, 0x87, 0xf1, 0xa3, 0x19, 0xf8, 0xb0, 0xc5, 0x7d, 0xda, 0x74, 0x37,
+ 0x96, 0xce, 0x19, 0x72,
+};
+static const unsigned char kat3108_addinpr2[] = {
+ 0x9f, 0x25, 0x72, 0x89, 0x69, 0xa8, 0xd9, 0x0d, 0x68, 0xc6, 0x75, 0x7f,
+ 0x83, 0x23, 0x12, 0x4e,
+};
+static const unsigned char kat3108_retbits[] = {
+ 0x6e, 0x6f, 0x11, 0x4b, 0xfb, 0xa3, 0x44, 0x8f, 0xa4, 0x71, 0x49, 0xca,
+ 0x4b, 0x4b, 0x33, 0x44, 0x25, 0x05, 0x4d, 0x5c, 0x52, 0x13, 0xd6, 0xf1,
+ 0xa5, 0x0b, 0xe0, 0xbd, 0x9c, 0x7b, 0x3a, 0xca, 0xfa, 0x3d, 0xab, 0xe0,
+ 0x63, 0x3b, 0xe1, 0xb5, 0xa4, 0xbf, 0xea, 0xd8, 0x39, 0xba, 0x7e, 0x5f,
+ 0x9b, 0x85, 0xe7, 0x09, 0x7d, 0x40, 0x6a, 0x5a, 0xe0, 0x18, 0x02, 0x27,
+ 0x6b, 0x7b, 0x50, 0x4e,
+};
+static const struct drbg_kat_pr_true kat3108_t = {
+ 2, kat3108_entropyin, kat3108_nonce, kat3108_persstr,
+ kat3108_entropyinpr1, kat3108_addinpr1, kat3108_entropyinpr2,
+ kat3108_addinpr2, kat3108_retbits
+};
+static const struct drbg_kat kat3108 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3108_t
+};
+
+static const unsigned char kat3109_entropyin[] = {
+ 0x67, 0x30, 0x70, 0x48, 0xf5, 0xd5, 0xf8, 0xd6, 0xae, 0x46, 0x50, 0xa8,
+ 0x62, 0xa4, 0xda, 0xd7,
+};
+static const unsigned char kat3109_nonce[] = {
+ 0xba, 0x44, 0x37, 0xad, 0xab, 0x2d, 0x35, 0x13,
+};
+static const unsigned char kat3109_persstr[] = {
+ 0xfa, 0x94, 0xf6, 0xda, 0x8c, 0x14, 0x98, 0x59, 0xe9, 0xc1, 0x25, 0xd4,
+ 0x16, 0x1f, 0x22, 0x5f,
+};
+static const unsigned char kat3109_entropyinpr1[] = {
+ 0x78, 0xb6, 0x34, 0x2e, 0x3f, 0x9e, 0xde, 0x53, 0xc2, 0xe1, 0x38, 0xc6,
+ 0x13, 0xed, 0x6d, 0x7e,
+};
+static const unsigned char kat3109_addinpr1[] = {
+ 0x33, 0x22, 0x64, 0xc6, 0x45, 0x68, 0xea, 0x0f, 0x7a, 0x99, 0xde, 0x15,
+ 0xdc, 0x7d, 0xa9, 0x84,
+};
+static const unsigned char kat3109_entropyinpr2[] = {
+ 0x48, 0xc6, 0xaa, 0x9c, 0x70, 0x89, 0x2c, 0x56, 0x2d, 0xf5, 0xb2, 0x22,
+ 0xf2, 0x8d, 0xc0, 0x58,
+};
+static const unsigned char kat3109_addinpr2[] = {
+ 0xa1, 0xba, 0xaf, 0xed, 0xf3, 0xad, 0xce, 0x4b, 0x0d, 0xd9, 0x7a, 0x23,
+ 0xaa, 0xec, 0x5d, 0xca,
+};
+static const unsigned char kat3109_retbits[] = {
+ 0x73, 0x74, 0xed, 0x4e, 0x08, 0x63, 0x4f, 0x8c, 0xc1, 0x17, 0xe9, 0x05,
+ 0xb5, 0xc5, 0xb9, 0xbf, 0xe4, 0x9a, 0xc5, 0xc1, 0x47, 0xe5, 0x38, 0x9c,
+ 0xa1, 0x8f, 0x0a, 0x4c, 0x95, 0x0c, 0x00, 0xd0, 0x39, 0x7d, 0x73, 0xb1,
+ 0x6d, 0x3d, 0x27, 0xe1, 0x81, 0x6c, 0x1b, 0xf4, 0xd7, 0x25, 0xab, 0xba,
+ 0x35, 0x61, 0x99, 0x05, 0x99, 0x72, 0x99, 0x83, 0x22, 0x4d, 0x1b, 0x0f,
+ 0x8f, 0xff, 0x1b, 0x7f,
+};
+static const struct drbg_kat_pr_true kat3109_t = {
+ 3, kat3109_entropyin, kat3109_nonce, kat3109_persstr,
+ kat3109_entropyinpr1, kat3109_addinpr1, kat3109_entropyinpr2,
+ kat3109_addinpr2, kat3109_retbits
+};
+static const struct drbg_kat kat3109 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3109_t
+};
+
+static const unsigned char kat3110_entropyin[] = {
+ 0xa0, 0x10, 0xe8, 0xb9, 0xc4, 0xff, 0x38, 0x0c, 0x65, 0xa7, 0x63, 0x13,
+ 0x69, 0x4e, 0x40, 0x87,
+};
+static const unsigned char kat3110_nonce[] = {
+ 0xde, 0x80, 0x0f, 0x31, 0xe8, 0x01, 0xd0, 0xbf,
+};
+static const unsigned char kat3110_persstr[] = {
+ 0x79, 0x96, 0x0b, 0x78, 0x57, 0xc8, 0x0e, 0xb3, 0x71, 0x13, 0xd5, 0xdf,
+ 0x7a, 0x2f, 0x9d, 0x34,
+};
+static const unsigned char kat3110_entropyinpr1[] = {
+ 0x0b, 0xb7, 0xe4, 0x0a, 0xeb, 0xec, 0xad, 0x3e, 0x23, 0x8d, 0x5e, 0xc1,
+ 0x65, 0x7b, 0x06, 0x71,
+};
+static const unsigned char kat3110_addinpr1[] = {
+ 0x81, 0x10, 0x91, 0x2e, 0x9a, 0x54, 0x55, 0x7b, 0xcb, 0xf4, 0xe6, 0x9c,
+ 0xdf, 0x89, 0x51, 0x35,
+};
+static const unsigned char kat3110_entropyinpr2[] = {
+ 0xd2, 0x42, 0xc9, 0x6f, 0x8d, 0x8b, 0x3b, 0x18, 0xf6, 0x9d, 0xec, 0xd1,
+ 0xf0, 0x08, 0xb4, 0xc5,
+};
+static const unsigned char kat3110_addinpr2[] = {
+ 0x7a, 0x87, 0xc1, 0xa2, 0xde, 0x26, 0xd4, 0xd8, 0x35, 0x8a, 0x07, 0x59,
+ 0xd7, 0xa2, 0xe2, 0x04,
+};
+static const unsigned char kat3110_retbits[] = {
+ 0x1d, 0x29, 0x69, 0xb2, 0xe3, 0xee, 0x29, 0x29, 0x04, 0x0c, 0xd4, 0xf4,
+ 0x03, 0x1f, 0x4f, 0x96, 0xda, 0x23, 0x18, 0xee, 0x10, 0x81, 0xdc, 0x43,
+ 0x5f, 0x76, 0x55, 0x4d, 0x0f, 0xf7, 0x19, 0xdd, 0x6f, 0x5a, 0x92, 0xb3,
+ 0xde, 0x94, 0xb0, 0x9f, 0xf5, 0x77, 0x8c, 0x25, 0xe3, 0xdb, 0xca, 0xee,
+ 0x51, 0xd9, 0x33, 0xa3, 0xa6, 0xa4, 0x06, 0xd1, 0x2e, 0x3a, 0xb3, 0xc3,
+ 0xd9, 0x17, 0x40, 0x3e,
+};
+static const struct drbg_kat_pr_true kat3110_t = {
+ 4, kat3110_entropyin, kat3110_nonce, kat3110_persstr,
+ kat3110_entropyinpr1, kat3110_addinpr1, kat3110_entropyinpr2,
+ kat3110_addinpr2, kat3110_retbits
+};
+static const struct drbg_kat kat3110 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3110_t
+};
+
+static const unsigned char kat3111_entropyin[] = {
+ 0x55, 0xff, 0x77, 0xe5, 0x59, 0x6f, 0x57, 0xa0, 0xe7, 0xa0, 0x01, 0x71,
+ 0x6c, 0xd7, 0xa5, 0x4e,
+};
+static const unsigned char kat3111_nonce[] = {
+ 0x9e, 0x2a, 0x85, 0xe9, 0xdf, 0x7c, 0xc2, 0xe0,
+};
+static const unsigned char kat3111_persstr[] = {
+ 0x8d, 0xa4, 0x5c, 0xb7, 0xdb, 0x5d, 0x84, 0xb7, 0x52, 0x1b, 0x38, 0x39,
+ 0xfb, 0x33, 0x99, 0x82,
+};
+static const unsigned char kat3111_entropyinpr1[] = {
+ 0x3d, 0xce, 0x58, 0xc8, 0x8c, 0x83, 0xa5, 0x95, 0x39, 0xff, 0xb3, 0x8a,
+ 0x7a, 0x44, 0xf3, 0x07,
+};
+static const unsigned char kat3111_addinpr1[] = {
+ 0x4b, 0xe5, 0xde, 0xe6, 0x7a, 0x76, 0xb7, 0x31, 0x16, 0xa3, 0xfd, 0x87,
+ 0x6f, 0x5d, 0x23, 0x54,
+};
+static const unsigned char kat3111_entropyinpr2[] = {
+ 0x97, 0xa7, 0x19, 0x0a, 0xf9, 0x68, 0x91, 0x9e, 0x57, 0xea, 0x16, 0x7a,
+ 0x26, 0xff, 0xab, 0xbc,
+};
+static const unsigned char kat3111_addinpr2[] = {
+ 0x9e, 0x74, 0x4a, 0x9b, 0xed, 0x67, 0xb5, 0x0c, 0x8f, 0x2e, 0x45, 0x81,
+ 0x57, 0x42, 0xd1, 0x1d,
+};
+static const unsigned char kat3111_retbits[] = {
+ 0x36, 0x80, 0xcc, 0x48, 0x19, 0x50, 0xe2, 0x95, 0x12, 0xaf, 0xab, 0x38,
+ 0x8b, 0x5a, 0x9b, 0xbb, 0xa7, 0xff, 0x80, 0x0c, 0xa7, 0xbf, 0x3b, 0x2d,
+ 0x90, 0x1a, 0x4e, 0xce, 0xf7, 0xea, 0xdb, 0xa0, 0x78, 0xcf, 0xa0, 0x3a,
+ 0xa0, 0xd5, 0xbb, 0x13, 0x3c, 0x09, 0xcb, 0xd3, 0x0a, 0xd7, 0x8b, 0x99,
+ 0x9d, 0x27, 0x49, 0x05, 0x14, 0xb9, 0x5e, 0x4b, 0x8b, 0xdd, 0x75, 0xc9,
+ 0x86, 0xc4, 0x2f, 0x8d,
+};
+static const struct drbg_kat_pr_true kat3111_t = {
+ 5, kat3111_entropyin, kat3111_nonce, kat3111_persstr,
+ kat3111_entropyinpr1, kat3111_addinpr1, kat3111_entropyinpr2,
+ kat3111_addinpr2, kat3111_retbits
+};
+static const struct drbg_kat kat3111 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3111_t
+};
+
+static const unsigned char kat3112_entropyin[] = {
+ 0x24, 0x13, 0x80, 0xaf, 0xe3, 0x1b, 0x6b, 0x2a, 0xc7, 0xb2, 0xb2, 0xf5,
+ 0x3f, 0x6f, 0xc6, 0xc6,
+};
+static const unsigned char kat3112_nonce[] = {
+ 0xd8, 0xaf, 0x32, 0xbe, 0x1c, 0x92, 0x04, 0x99,
+};
+static const unsigned char kat3112_persstr[] = {
+ 0x2e, 0x4c, 0x73, 0x20, 0x34, 0x26, 0x95, 0xba, 0x11, 0x91, 0x20, 0x2e,
+ 0x9e, 0x9f, 0x48, 0xca,
+};
+static const unsigned char kat3112_entropyinpr1[] = {
+ 0x22, 0x52, 0xd6, 0x95, 0xc1, 0xc4, 0xb0, 0x4d, 0x58, 0x00, 0x91, 0x45,
+ 0x1d, 0xc0, 0xf2, 0x0c,
+};
+static const unsigned char kat3112_addinpr1[] = {
+ 0xe5, 0x4b, 0x05, 0xe1, 0x31, 0xe9, 0x44, 0x76, 0xb7, 0x07, 0xed, 0xdf,
+ 0xb3, 0xb0, 0xfe, 0x54,
+};
+static const unsigned char kat3112_entropyinpr2[] = {
+ 0x0a, 0x7a, 0x85, 0xc1, 0x6b, 0xfa, 0x0f, 0xc8, 0x3e, 0x2f, 0x2a, 0xfb,
+ 0x74, 0xde, 0x87, 0x69,
+};
+static const unsigned char kat3112_addinpr2[] = {
+ 0x0f, 0xbe, 0x36, 0xbd, 0x84, 0x8c, 0x75, 0x21, 0x87, 0x22, 0xb4, 0x20,
+ 0x48, 0xc7, 0xc8, 0x14,
+};
+static const unsigned char kat3112_retbits[] = {
+ 0x01, 0x29, 0x72, 0x26, 0x12, 0xd6, 0xcf, 0xda, 0x1b, 0x46, 0x4d, 0x31,
+ 0x8f, 0x1e, 0x90, 0x9a, 0xd1, 0x7b, 0x97, 0x88, 0x2f, 0xb7, 0xa5, 0x0e,
+ 0x08, 0x9d, 0x47, 0x16, 0x31, 0x6f, 0x6c, 0xb9, 0x46, 0x13, 0x99, 0x20,
+ 0xb6, 0xa8, 0x3e, 0x17, 0x2b, 0x9e, 0x53, 0x1c, 0xc9, 0x29, 0x8b, 0x9d,
+ 0x31, 0x1e, 0x3b, 0x00, 0xb7, 0x6c, 0xfa, 0xc0, 0x80, 0x22, 0x04, 0x90,
+ 0x26, 0x51, 0x6c, 0x12,
+};
+static const struct drbg_kat_pr_true kat3112_t = {
+ 6, kat3112_entropyin, kat3112_nonce, kat3112_persstr,
+ kat3112_entropyinpr1, kat3112_addinpr1, kat3112_entropyinpr2,
+ kat3112_addinpr2, kat3112_retbits
+};
+static const struct drbg_kat kat3112 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3112_t
+};
+
+static const unsigned char kat3113_entropyin[] = {
+ 0xcb, 0x56, 0x95, 0xc6, 0xbb, 0xe3, 0x72, 0x9a, 0x61, 0xcc, 0x6f, 0xca,
+ 0xed, 0x75, 0x3f, 0xb2,
+};
+static const unsigned char kat3113_nonce[] = {
+ 0x7f, 0xaa, 0x98, 0x34, 0x14, 0x9b, 0xba, 0x80,
+};
+static const unsigned char kat3113_persstr[] = {
+ 0xcd, 0xfb, 0x8f, 0x29, 0x35, 0xcc, 0x92, 0x39, 0xc5, 0x8d, 0x60, 0xbb,
+ 0x18, 0x03, 0x26, 0x45,
+};
+static const unsigned char kat3113_entropyinpr1[] = {
+ 0x8e, 0x55, 0xaa, 0xfc, 0x86, 0xdd, 0x45, 0x2e, 0x10, 0x2a, 0x58, 0xee,
+ 0xac, 0xbb, 0xde, 0xa1,
+};
+static const unsigned char kat3113_addinpr1[] = {
+ 0x72, 0xaf, 0x1a, 0xdc, 0x55, 0x2d, 0xbb, 0x13, 0x10, 0x2d, 0x7c, 0x4c,
+ 0x73, 0x82, 0x55, 0x87,
+};
+static const unsigned char kat3113_entropyinpr2[] = {
+ 0x25, 0x5c, 0x04, 0x48, 0x27, 0xcf, 0x7c, 0xd9, 0xf6, 0x3f, 0x41, 0xb5,
+ 0x86, 0x27, 0x87, 0x5e,
+};
+static const unsigned char kat3113_addinpr2[] = {
+ 0x24, 0xb9, 0xb7, 0x3e, 0x54, 0x48, 0xcf, 0x2f, 0x7c, 0xa4, 0x77, 0xce,
+ 0x81, 0x2a, 0xc3, 0x20,
+};
+static const unsigned char kat3113_retbits[] = {
+ 0x65, 0xc2, 0xa9, 0x05, 0x48, 0x6e, 0xa8, 0x03, 0x4d, 0xf6, 0xbe, 0xe8,
+ 0x0f, 0xb8, 0x31, 0xbb, 0x23, 0x72, 0x62, 0xaa, 0x40, 0x57, 0x45, 0x08,
+ 0xdd, 0x83, 0x33, 0x3f, 0x6a, 0xcd, 0x12, 0x93, 0x65, 0xf1, 0xbf, 0x4c,
+ 0xd7, 0x94, 0x5e, 0xb8, 0xbf, 0xe2, 0x23, 0x94, 0xea, 0x44, 0xaf, 0x2d,
+ 0x10, 0x1f, 0xc1, 0x5a, 0xc2, 0x2d, 0x32, 0xc4, 0x14, 0xe2, 0x0a, 0x1a,
+ 0x9c, 0x4f, 0xfa, 0x9a,
+};
+static const struct drbg_kat_pr_true kat3113_t = {
+ 7, kat3113_entropyin, kat3113_nonce, kat3113_persstr,
+ kat3113_entropyinpr1, kat3113_addinpr1, kat3113_entropyinpr2,
+ kat3113_addinpr2, kat3113_retbits
+};
+static const struct drbg_kat kat3113 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3113_t
+};
+
+static const unsigned char kat3114_entropyin[] = {
+ 0x59, 0xd4, 0x08, 0xad, 0x23, 0x4d, 0x63, 0x58, 0x6e, 0x58, 0xe4, 0x14,
+ 0x7e, 0xbc, 0xa3, 0x73,
+};
+static const unsigned char kat3114_nonce[] = {
+ 0x02, 0xe0, 0x30, 0xc3, 0xab, 0xa4, 0x43, 0x2c,
+};
+static const unsigned char kat3114_persstr[] = {
+ 0x39, 0x54, 0xd0, 0xdf, 0x1a, 0xdb, 0x67, 0xda, 0x76, 0x96, 0xe9, 0x5e,
+ 0x57, 0x26, 0x06, 0xd2,
+};
+static const unsigned char kat3114_entropyinpr1[] = {
+ 0xc0, 0x9d, 0x05, 0x93, 0x8e, 0xba, 0x84, 0x50, 0x1c, 0xa0, 0x77, 0xaa,
+ 0xfd, 0xb3, 0x62, 0xc7,
+};
+static const unsigned char kat3114_addinpr1[] = {
+ 0xcf, 0x72, 0x65, 0x64, 0x45, 0xad, 0x7d, 0xb0, 0x6e, 0x39, 0x25, 0x7a,
+ 0x99, 0xba, 0x62, 0xaf,
+};
+static const unsigned char kat3114_entropyinpr2[] = {
+ 0x93, 0xdf, 0x31, 0xc4, 0x3c, 0x5c, 0xef, 0xb2, 0xda, 0xb7, 0xb3, 0xa7,
+ 0xce, 0xe5, 0x27, 0xb8,
+};
+static const unsigned char kat3114_addinpr2[] = {
+ 0x3e, 0x0b, 0xac, 0x93, 0x6e, 0xf5, 0x2a, 0xe7, 0xcd, 0x74, 0x22, 0xf0,
+ 0x96, 0x48, 0xb9, 0x7b,
+};
+static const unsigned char kat3114_retbits[] = {
+ 0xbd, 0xe7, 0x9b, 0x68, 0x63, 0x1e, 0x05, 0xe4, 0xbc, 0x40, 0x4b, 0x29,
+ 0x50, 0x82, 0xe8, 0xf3, 0x21, 0x06, 0x80, 0xfb, 0xb3, 0x30, 0x0f, 0xe7,
+ 0xc0, 0xda, 0xc7, 0x89, 0xe1, 0xb0, 0x75, 0x10, 0x58, 0xec, 0xfe, 0x5b,
+ 0xc0, 0xde, 0xe6, 0x50, 0x08, 0x18, 0xd1, 0xac, 0x8b, 0xf3, 0x0e, 0x9d,
+ 0x0b, 0xc0, 0x71, 0xc9, 0x15, 0xf4, 0xbe, 0x4e, 0x12, 0x49, 0xee, 0xcb,
+ 0xb0, 0x3d, 0xd5, 0xf5,
+};
+static const struct drbg_kat_pr_true kat3114_t = {
+ 8, kat3114_entropyin, kat3114_nonce, kat3114_persstr,
+ kat3114_entropyinpr1, kat3114_addinpr1, kat3114_entropyinpr2,
+ kat3114_addinpr2, kat3114_retbits
+};
+static const struct drbg_kat kat3114 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3114_t
+};
+
+static const unsigned char kat3115_entropyin[] = {
+ 0xf5, 0x43, 0xf7, 0x25, 0x21, 0x37, 0xe0, 0x9c, 0x92, 0xf2, 0xaa, 0xff,
+ 0x79, 0x5f, 0xb4, 0x3a,
+};
+static const unsigned char kat3115_nonce[] = {
+ 0xe4, 0xfa, 0x00, 0x7f, 0xfb, 0x7e, 0x72, 0xf7,
+};
+static const unsigned char kat3115_persstr[] = {
+ 0xfd, 0xbe, 0xcc, 0x9d, 0xe4, 0x01, 0x0f, 0xb7, 0x6e, 0xa9, 0x65, 0x0e,
+ 0x32, 0x62, 0xa2, 0x2e,
+};
+static const unsigned char kat3115_entropyinpr1[] = {
+ 0xad, 0x2a, 0xce, 0x18, 0x3e, 0x9a, 0x14, 0xa0, 0x76, 0x91, 0x56, 0x1d,
+ 0x29, 0x26, 0x87, 0x8d,
+};
+static const unsigned char kat3115_addinpr1[] = {
+ 0x2d, 0x94, 0x1a, 0x3a, 0x24, 0x9c, 0x8c, 0x41, 0xcc, 0x2e, 0x1f, 0x70,
+ 0x28, 0x43, 0xc5, 0x79,
+};
+static const unsigned char kat3115_entropyinpr2[] = {
+ 0x3c, 0xf3, 0xd7, 0xcf, 0x44, 0x2d, 0x2e, 0x58, 0x35, 0x48, 0x7a, 0x41,
+ 0xb7, 0xb8, 0x71, 0x6c,
+};
+static const unsigned char kat3115_addinpr2[] = {
+ 0x45, 0x22, 0xba, 0xa1, 0x30, 0xcc, 0xa0, 0x56, 0x42, 0x51, 0xee, 0xd3,
+ 0x32, 0xbf, 0x28, 0xeb,
+};
+static const unsigned char kat3115_retbits[] = {
+ 0xa9, 0x5e, 0xf0, 0x89, 0xa7, 0xe6, 0xda, 0xdc, 0x1b, 0xdd, 0xe1, 0xd0,
+ 0x0a, 0x73, 0x22, 0xca, 0xb2, 0x27, 0x9b, 0xdb, 0x0e, 0x96, 0xe1, 0xf5,
+ 0x16, 0x75, 0x93, 0x00, 0x2f, 0x18, 0x4f, 0xb9, 0x2d, 0x9a, 0xcd, 0x23,
+ 0x64, 0x3e, 0x76, 0x67, 0xa5, 0x0f, 0xc3, 0xee, 0xe7, 0xf8, 0x8f, 0xd7,
+ 0xda, 0xd9, 0xd8, 0xe4, 0xa2, 0x1e, 0x82, 0xd9, 0xe3, 0xfe, 0xdf, 0x89,
+ 0xd7, 0x29, 0xee, 0x07,
+};
+static const struct drbg_kat_pr_true kat3115_t = {
+ 9, kat3115_entropyin, kat3115_nonce, kat3115_persstr,
+ kat3115_entropyinpr1, kat3115_addinpr1, kat3115_entropyinpr2,
+ kat3115_addinpr2, kat3115_retbits
+};
+static const struct drbg_kat kat3115 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3115_t
+};
+
+static const unsigned char kat3116_entropyin[] = {
+ 0x00, 0xe0, 0x56, 0xe4, 0xcb, 0x14, 0x4d, 0x2b, 0x97, 0x8a, 0xdc, 0x69,
+ 0xe3, 0xba, 0x32, 0x03,
+};
+static const unsigned char kat3116_nonce[] = {
+ 0xbc, 0xb5, 0x11, 0x2e, 0xaf, 0x9a, 0xf9, 0xc0,
+};
+static const unsigned char kat3116_persstr[] = {
+ 0x42, 0xb7, 0xe8, 0x69, 0x7e, 0x91, 0xec, 0x6d, 0xb8, 0x46, 0x31, 0xcf,
+ 0xcb, 0xf8, 0x3e, 0x07,
+};
+static const unsigned char kat3116_entropyinpr1[] = {
+ 0x86, 0xf6, 0xfb, 0x16, 0x93, 0x9e, 0x2d, 0x32, 0xc1, 0xef, 0x6b, 0x93,
+ 0xbc, 0x41, 0x8a, 0x7d,
+};
+static const unsigned char kat3116_addinpr1[] = {
+ 0x29, 0x59, 0xc2, 0x00, 0xc5, 0x2c, 0x0c, 0x4d, 0x94, 0xba, 0xd6, 0x13,
+ 0x11, 0xc1, 0x0e, 0x32,
+};
+static const unsigned char kat3116_entropyinpr2[] = {
+ 0x88, 0x8f, 0x04, 0xe4, 0x1f, 0x79, 0x4a, 0x4b, 0x0c, 0x9e, 0xa8, 0x05,
+ 0x38, 0xcb, 0x3e, 0x89,
+};
+static const unsigned char kat3116_addinpr2[] = {
+ 0x96, 0xf8, 0x12, 0xe9, 0xcb, 0xd5, 0x60, 0xd1, 0x16, 0xd3, 0x1d, 0x27,
+ 0xfb, 0x85, 0xbc, 0xa0,
+};
+static const unsigned char kat3116_retbits[] = {
+ 0xc8, 0x5d, 0xad, 0x45, 0xfa, 0x30, 0xc3, 0xb0, 0x62, 0x09, 0x19, 0x66,
+ 0x95, 0x4b, 0x07, 0xcc, 0xd8, 0xd5, 0x5b, 0xd6, 0xf1, 0x63, 0x31, 0x2b,
+ 0x1c, 0xe7, 0xa7, 0x2d, 0x81, 0x92, 0x60, 0x1c, 0x5b, 0x4d, 0x82, 0x71,
+ 0x75, 0xbc, 0x82, 0x6e, 0x92, 0x30, 0x45, 0x9e, 0xf2, 0x12, 0x6a, 0xf6,
+ 0x11, 0xe9, 0x27, 0x96, 0x66, 0xa3, 0xeb, 0xf0, 0x38, 0x28, 0x1a, 0xd2,
+ 0xab, 0x32, 0x5d, 0xab,
+};
+static const struct drbg_kat_pr_true kat3116_t = {
+ 10, kat3116_entropyin, kat3116_nonce, kat3116_persstr,
+ kat3116_entropyinpr1, kat3116_addinpr1, kat3116_entropyinpr2,
+ kat3116_addinpr2, kat3116_retbits
+};
+static const struct drbg_kat kat3116 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3116_t
+};
+
+static const unsigned char kat3117_entropyin[] = {
+ 0x32, 0x18, 0x75, 0x4e, 0x66, 0xd9, 0x9b, 0x53, 0x99, 0xd4, 0x78, 0x7e,
+ 0x71, 0x95, 0xe0, 0x4d,
+};
+static const unsigned char kat3117_nonce[] = {
+ 0xd9, 0x2c, 0x5a, 0xd8, 0x98, 0xde, 0xb2, 0x23,
+};
+static const unsigned char kat3117_persstr[] = {
+ 0x7a, 0xfc, 0xf9, 0x15, 0x48, 0xe9, 0x46, 0x3a, 0x2a, 0x65, 0xfe, 0xa9,
+ 0x84, 0x1c, 0xa6, 0x57,
+};
+static const unsigned char kat3117_entropyinpr1[] = {
+ 0x5a, 0x74, 0xc6, 0x78, 0xe0, 0x5b, 0xee, 0xb3, 0x15, 0x1f, 0x7f, 0x67,
+ 0x73, 0x69, 0x45, 0x81,
+};
+static const unsigned char kat3117_addinpr1[] = {
+ 0xfc, 0xf7, 0x2d, 0xbc, 0x3a, 0xb5, 0x84, 0xe4, 0x9d, 0x3b, 0x51, 0xfb,
+ 0x04, 0xa5, 0x14, 0xad,
+};
+static const unsigned char kat3117_entropyinpr2[] = {
+ 0xc9, 0x9f, 0x69, 0xa0, 0x50, 0xde, 0x0d, 0x9b, 0x1b, 0x5d, 0xc4, 0xb5,
+ 0xed, 0x78, 0xa3, 0x91,
+};
+static const unsigned char kat3117_addinpr2[] = {
+ 0xf0, 0x77, 0x86, 0x45, 0xb1, 0x69, 0x85, 0x73, 0xad, 0x80, 0xcf, 0x03,
+ 0xf2, 0x27, 0x47, 0x00,
+};
+static const unsigned char kat3117_retbits[] = {
+ 0x59, 0x47, 0xef, 0xb9, 0x9b, 0xf6, 0xfa, 0x94, 0xc2, 0x68, 0x17, 0x92,
+ 0xb0, 0x4e, 0x3c, 0x71, 0xe2, 0x12, 0x45, 0x41, 0xff, 0x94, 0x7a, 0x8d,
+ 0x1a, 0x97, 0x5e, 0xbc, 0x96, 0xc4, 0x8d, 0x3d, 0x41, 0x62, 0x52, 0x39,
+ 0x4c, 0x1e, 0x3b, 0x0b, 0x88, 0x7e, 0x8e, 0xee, 0x5e, 0x98, 0xa8, 0xab,
+ 0x37, 0x8a, 0x06, 0x54, 0xe3, 0xf8, 0xbd, 0x39, 0xcc, 0x95, 0x53, 0xda,
+ 0x78, 0xfa, 0x8f, 0x30,
+};
+static const struct drbg_kat_pr_true kat3117_t = {
+ 11, kat3117_entropyin, kat3117_nonce, kat3117_persstr,
+ kat3117_entropyinpr1, kat3117_addinpr1, kat3117_entropyinpr2,
+ kat3117_addinpr2, kat3117_retbits
+};
+static const struct drbg_kat kat3117 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3117_t
+};
+
+static const unsigned char kat3118_entropyin[] = {
+ 0x20, 0x3d, 0x5b, 0xfd, 0x37, 0x1a, 0x09, 0x6f, 0xca, 0x57, 0x4c, 0x80,
+ 0x7e, 0x0d, 0x65, 0xc6,
+};
+static const unsigned char kat3118_nonce[] = {
+ 0xe0, 0xc5, 0xf9, 0xd1, 0x4a, 0x7a, 0x63, 0x51,
+};
+static const unsigned char kat3118_persstr[] = {
+ 0x24, 0x69, 0xb3, 0xbc, 0xbd, 0xb5, 0x72, 0x21, 0xbe, 0x63, 0xaf, 0x19,
+ 0x41, 0xcd, 0xa3, 0x12,
+};
+static const unsigned char kat3118_entropyinpr1[] = {
+ 0xa9, 0x76, 0xcb, 0x0b, 0x5b, 0xa5, 0x57, 0xcb, 0x5a, 0xac, 0x80, 0x63,
+ 0xe9, 0x88, 0x41, 0xb4,
+};
+static const unsigned char kat3118_addinpr1[] = {
+ 0xf1, 0x7f, 0x6e, 0x4e, 0xe9, 0xfd, 0xd8, 0x27, 0x60, 0x62, 0xd0, 0x82,
+ 0x3d, 0x2a, 0x74, 0x69,
+};
+static const unsigned char kat3118_entropyinpr2[] = {
+ 0xf5, 0x01, 0xc8, 0xfb, 0x64, 0x53, 0xeb, 0xcd, 0xe6, 0x32, 0xf8, 0x26,
+ 0x44, 0x18, 0x89, 0xc5,
+};
+static const unsigned char kat3118_addinpr2[] = {
+ 0x27, 0xa9, 0x98, 0xbd, 0xcc, 0x1d, 0x39, 0xbd, 0x28, 0x3e, 0x70, 0xca,
+ 0x53, 0x44, 0xc7, 0x1e,
+};
+static const unsigned char kat3118_retbits[] = {
+ 0x24, 0x29, 0x7f, 0x68, 0x97, 0xb4, 0x4c, 0x93, 0x74, 0x45, 0x0a, 0xd5,
+ 0x8c, 0x6d, 0x2c, 0xfb, 0xed, 0x7c, 0x41, 0x23, 0x2f, 0x7e, 0x34, 0x1a,
+ 0xc8, 0xcc, 0x39, 0xef, 0xa6, 0x76, 0x34, 0xb4, 0xeb, 0x69, 0xcc, 0x33,
+ 0x97, 0xd6, 0xb7, 0x63, 0x72, 0x10, 0xc9, 0xa6, 0xb4, 0x9e, 0x68, 0xee,
+ 0xe2, 0xb8, 0x73, 0x45, 0x26, 0x97, 0xc1, 0x27, 0xfd, 0xc1, 0x6a, 0xf4,
+ 0x34, 0x92, 0xe4, 0xd7,
+};
+static const struct drbg_kat_pr_true kat3118_t = {
+ 12, kat3118_entropyin, kat3118_nonce, kat3118_persstr,
+ kat3118_entropyinpr1, kat3118_addinpr1, kat3118_entropyinpr2,
+ kat3118_addinpr2, kat3118_retbits
+};
+static const struct drbg_kat kat3118 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3118_t
+};
+
+static const unsigned char kat3119_entropyin[] = {
+ 0x41, 0x5a, 0xf3, 0x56, 0x5e, 0xd0, 0x24, 0x8d, 0x47, 0x9c, 0x05, 0x73,
+ 0xff, 0xc7, 0x87, 0x12,
+};
+static const unsigned char kat3119_nonce[] = {
+ 0xc3, 0x58, 0xaf, 0x5d, 0x8f, 0x88, 0x31, 0x0f,
+};
+static const unsigned char kat3119_persstr[] = {
+ 0x87, 0x2d, 0xe4, 0x75, 0x34, 0x55, 0xc2, 0x5b, 0xca, 0x99, 0xf4, 0x44,
+ 0x01, 0xfa, 0x54, 0xf6,
+};
+static const unsigned char kat3119_entropyinpr1[] = {
+ 0x9c, 0x56, 0xbe, 0x08, 0xb8, 0x0d, 0x57, 0x2b, 0xbf, 0x54, 0xc8, 0x7c,
+ 0x37, 0x7f, 0x7c, 0xca,
+};
+static const unsigned char kat3119_addinpr1[] = {
+ 0xa9, 0x8a, 0xbd, 0xf5, 0xf6, 0xf3, 0xca, 0x8a, 0xa0, 0x6c, 0xa3, 0x1f,
+ 0xcd, 0xda, 0x3b, 0xc0,
+};
+static const unsigned char kat3119_entropyinpr2[] = {
+ 0x46, 0x76, 0x2d, 0x59, 0xdc, 0xda, 0x4b, 0x00, 0x6e, 0x23, 0x22, 0x04,
+ 0x1c, 0xdd, 0x82, 0x13,
+};
+static const unsigned char kat3119_addinpr2[] = {
+ 0xb1, 0x52, 0x49, 0x0c, 0x64, 0x4a, 0xac, 0x09, 0x07, 0x24, 0x9a, 0xe3,
+ 0x72, 0xb5, 0x47, 0x06,
+};
+static const unsigned char kat3119_retbits[] = {
+ 0x61, 0x85, 0xd9, 0xdb, 0x80, 0x31, 0x7f, 0xc9, 0x18, 0xca, 0xdb, 0x6b,
+ 0x0d, 0x60, 0xf0, 0x18, 0x46, 0xfb, 0xbf, 0xe2, 0x61, 0x3b, 0x2b, 0xef,
+ 0xb5, 0x11, 0xc0, 0xa3, 0x62, 0xcc, 0x5a, 0x89, 0xe7, 0xd0, 0xd7, 0x9f,
+ 0xaa, 0xec, 0xe3, 0x73, 0xbc, 0x7f, 0xc4, 0x3b, 0x52, 0xda, 0x15, 0x85,
+ 0xfa, 0xef, 0xcf, 0x93, 0xe9, 0x65, 0xbf, 0x3d, 0xd3, 0x53, 0xf0, 0x88,
+ 0x69, 0x38, 0xd7, 0x93,
+};
+static const struct drbg_kat_pr_true kat3119_t = {
+ 13, kat3119_entropyin, kat3119_nonce, kat3119_persstr,
+ kat3119_entropyinpr1, kat3119_addinpr1, kat3119_entropyinpr2,
+ kat3119_addinpr2, kat3119_retbits
+};
+static const struct drbg_kat kat3119 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3119_t
+};
+
+static const unsigned char kat3120_entropyin[] = {
+ 0xa4, 0xfc, 0x2e, 0xde, 0x2f, 0xe7, 0x20, 0xdc, 0xe6, 0x44, 0xd1, 0x5d,
+ 0x3f, 0xbf, 0x2e, 0x68,
+};
+static const unsigned char kat3120_nonce[] = {
+ 0x43, 0x80, 0xd3, 0xc2, 0x72, 0x61, 0x2f, 0xf3,
+};
+static const unsigned char kat3120_persstr[] = {
+ 0x69, 0x33, 0x1b, 0x36, 0x74, 0x33, 0x09, 0xd3, 0x24, 0x06, 0x69, 0xd2,
+ 0x50, 0x4c, 0x21, 0x0f,
+};
+static const unsigned char kat3120_entropyinpr1[] = {
+ 0x3e, 0xac, 0xb6, 0x2d, 0x89, 0x27, 0x9b, 0x1e, 0x4c, 0x3d, 0xdd, 0xba,
+ 0x05, 0xb2, 0xf0, 0xef,
+};
+static const unsigned char kat3120_addinpr1[] = {
+ 0x01, 0xb7, 0x5e, 0x68, 0xb2, 0x86, 0xe0, 0x9c, 0x19, 0xaa, 0xea, 0x8b,
+ 0x35, 0x4f, 0x97, 0xb4,
+};
+static const unsigned char kat3120_entropyinpr2[] = {
+ 0x68, 0x4d, 0x8b, 0x39, 0xe8, 0xbd, 0x42, 0xbe, 0x60, 0xb4, 0x37, 0x8e,
+ 0xd2, 0xc7, 0xca, 0x77,
+};
+static const unsigned char kat3120_addinpr2[] = {
+ 0x83, 0x2f, 0x01, 0xeb, 0x65, 0x16, 0xae, 0x5c, 0x19, 0x42, 0x21, 0x0a,
+ 0x95, 0xa2, 0x41, 0xee,
+};
+static const unsigned char kat3120_retbits[] = {
+ 0x45, 0x08, 0xa1, 0xc4, 0xb1, 0xb2, 0x19, 0xa6, 0x64, 0x75, 0xf6, 0x94,
+ 0xcc, 0xe1, 0xea, 0x04, 0xa8, 0x98, 0x59, 0x9b, 0x2d, 0xbc, 0xca, 0xf7,
+ 0xb8, 0xdc, 0x00, 0xd5, 0x53, 0xe1, 0x35, 0x5d, 0x59, 0x1f, 0xd9, 0x9c,
+ 0x5a, 0x57, 0x5b, 0x40, 0xd1, 0x84, 0x7e, 0xaf, 0x99, 0x90, 0x6d, 0x52,
+ 0xd3, 0xc8, 0xcc, 0xef, 0xea, 0x0d, 0x17, 0x5e, 0x58, 0x65, 0x05, 0x94,
+ 0xb2, 0x08, 0xaa, 0xa4,
+};
+static const struct drbg_kat_pr_true kat3120_t = {
+ 14, kat3120_entropyin, kat3120_nonce, kat3120_persstr,
+ kat3120_entropyinpr1, kat3120_addinpr1, kat3120_entropyinpr2,
+ kat3120_addinpr2, kat3120_retbits
+};
+static const struct drbg_kat kat3120 = {
+ PR_TRUE, USE_DF, NID_aes_128_ctr, 16, 8, 16, 16, 64, &kat3120_t
+};
+
+static const unsigned char kat3121_entropyin[] = {
+ 0x96, 0x5f, 0xa6, 0xa2, 0xc4, 0x00, 0x9c, 0x04, 0x5c, 0xff, 0x72, 0x8f,
+ 0x24, 0x42, 0x38, 0x26, 0x25, 0x08, 0xbf, 0x00, 0x8d, 0xcc, 0xef, 0x30,
+};
+static const unsigned char kat3121_nonce[] = {
+ 0x1d, 0x22, 0x59, 0x1b, 0x09, 0x78, 0x73, 0xd1, 0x24, 0xc3, 0xf8, 0xc4,
+ 0x08, 0xf8, 0x91, 0x61,
+};
+static const unsigned char kat3121_persstr[] = {0};
+static const unsigned char kat3121_entropyinpr1[] = {
+ 0x97, 0x18, 0xb8, 0x80, 0x42, 0xa4, 0xb6, 0x07, 0x67, 0xca, 0xe0, 0xff,
+ 0xc7, 0x97, 0xe6, 0x88, 0xb0, 0xfe, 0x38, 0x19, 0xdb, 0x2a, 0x4b, 0xcb,
+};
+static const unsigned char kat3121_addinpr1[] = {0};
+static const unsigned char kat3121_entropyinpr2[] = {
+ 0x73, 0xe3, 0xf0, 0xfd, 0xf3, 0x80, 0xe5, 0xe6, 0x12, 0x6f, 0xf9, 0xf3,
+ 0xad, 0xb3, 0x4f, 0xf5, 0xbc, 0xc4, 0x5f, 0xba, 0x0c, 0xe1, 0xd2, 0x48,
+};
+static const unsigned char kat3121_addinpr2[] = {0};
+static const unsigned char kat3121_retbits[] = {
+ 0x90, 0x9f, 0xd2, 0xc9, 0x71, 0x92, 0x1c, 0x77, 0x32, 0x2e, 0x1d, 0xf2,
+ 0x73, 0xa0, 0x7d, 0x19, 0xf5, 0x27, 0x13, 0x3e, 0x56, 0xa9, 0xbe, 0x38,
+ 0x8c, 0x29, 0x8c, 0xa6, 0x83, 0x08, 0x73, 0xd1, 0xe8, 0x47, 0xb8, 0xcc,
+ 0x65, 0x4d, 0xd3, 0xc5, 0x7c, 0x1c, 0x8b, 0x25, 0xfd, 0x39, 0x09, 0xbe,
+ 0x84, 0x7c, 0x1a, 0x28, 0x11, 0x08, 0x94, 0x0f, 0xe7, 0xf0, 0x6d, 0x9d,
+ 0xb6, 0x0a, 0xd7, 0xb4,
+};
+static const struct drbg_kat_pr_true kat3121_t = {
+ 0, kat3121_entropyin, kat3121_nonce, kat3121_persstr,
+ kat3121_entropyinpr1, kat3121_addinpr1, kat3121_entropyinpr2,
+ kat3121_addinpr2, kat3121_retbits
+};
+static const struct drbg_kat kat3121 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3121_t
+};
+
+static const unsigned char kat3122_entropyin[] = {
+ 0x83, 0x50, 0x65, 0xd5, 0x87, 0x3f, 0xd0, 0x6b, 0x45, 0x03, 0x14, 0x3a,
+ 0xba, 0xe0, 0x5a, 0x3e, 0xde, 0x86, 0xec, 0xa3, 0x22, 0xe9, 0xc4, 0x32,
+};
+static const unsigned char kat3122_nonce[] = {
+ 0xc1, 0x18, 0x31, 0x67, 0x10, 0x41, 0x13, 0x76, 0xe3, 0xa3, 0x4c, 0x97,
+ 0x15, 0x60, 0x8a, 0xf3,
+};
+static const unsigned char kat3122_persstr[] = {0};
+static const unsigned char kat3122_entropyinpr1[] = {
+ 0xc4, 0xff, 0x67, 0xa7, 0x4c, 0xe7, 0xb1, 0xab, 0xb6, 0x87, 0x41, 0xfa,
+ 0xc6, 0x0f, 0x38, 0x18, 0x3a, 0xed, 0x11, 0x12, 0xc8, 0xe8, 0x59, 0xc0,
+};
+static const unsigned char kat3122_addinpr1[] = {0};
+static const unsigned char kat3122_entropyinpr2[] = {
+ 0xfa, 0xc1, 0x82, 0x6b, 0x05, 0x4b, 0xab, 0xc2, 0xd7, 0xe1, 0xe6, 0x47,
+ 0xe0, 0x6c, 0x81, 0xb8, 0x02, 0x3f, 0x04, 0x01, 0xc2, 0xac, 0x39, 0x6e,
+};
+static const unsigned char kat3122_addinpr2[] = {0};
+static const unsigned char kat3122_retbits[] = {
+ 0x0c, 0xbf, 0x94, 0x97, 0xff, 0x1e, 0x9e, 0x68, 0x1e, 0xeb, 0x97, 0x29,
+ 0x0a, 0xe5, 0x52, 0x4d, 0xac, 0x82, 0xdb, 0x79, 0x74, 0x98, 0xb5, 0x0a,
+ 0xd3, 0x1e, 0x2c, 0x25, 0x7f, 0x51, 0x66, 0xc3, 0xb9, 0x83, 0xbc, 0x95,
+ 0xe0, 0xd2, 0x6d, 0x24, 0xa0, 0xd6, 0x13, 0xfb, 0xfb, 0x41, 0x03, 0xb4,
+ 0x49, 0x83, 0xa6, 0xfd, 0xf2, 0x96, 0x4b, 0x42, 0x07, 0xd5, 0xf8, 0xc7,
+ 0x53, 0xb7, 0xc9, 0xf3,
+};
+static const struct drbg_kat_pr_true kat3122_t = {
+ 1, kat3122_entropyin, kat3122_nonce, kat3122_persstr,
+ kat3122_entropyinpr1, kat3122_addinpr1, kat3122_entropyinpr2,
+ kat3122_addinpr2, kat3122_retbits
+};
+static const struct drbg_kat kat3122 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3122_t
+};
+
+static const unsigned char kat3123_entropyin[] = {
+ 0x83, 0xa0, 0x4c, 0xca, 0x97, 0x9e, 0x16, 0x25, 0x9d, 0xac, 0x2a, 0xa2,
+ 0xe6, 0x80, 0x79, 0xc0, 0xe8, 0xeb, 0xea, 0x8e, 0x90, 0x67, 0x72, 0xe3,
+};
+static const unsigned char kat3123_nonce[] = {
+ 0xf4, 0xef, 0xc8, 0xb0, 0xa9, 0x19, 0x55, 0x91, 0x6d, 0x82, 0x03, 0x1a,
+ 0x24, 0x03, 0x25, 0xe4,
+};
+static const unsigned char kat3123_persstr[] = {0};
+static const unsigned char kat3123_entropyinpr1[] = {
+ 0x05, 0xb3, 0xfe, 0x96, 0xa7, 0x35, 0x81, 0x79, 0xd8, 0x32, 0x86, 0x1e,
+ 0xac, 0xbe, 0x25, 0xef, 0x66, 0x23, 0xf4, 0x09, 0xef, 0x8c, 0x63, 0xb8,
+};
+static const unsigned char kat3123_addinpr1[] = {0};
+static const unsigned char kat3123_entropyinpr2[] = {
+ 0xc4, 0xd8, 0x68, 0xd2, 0x92, 0x7a, 0x9f, 0xf5, 0xa4, 0xd8, 0x4f, 0x4f,
+ 0xf4, 0x6f, 0x5d, 0x2c, 0xf0, 0x4b, 0xa8, 0x45, 0x00, 0xe1, 0x54, 0x08,
+};
+static const unsigned char kat3123_addinpr2[] = {0};
+static const unsigned char kat3123_retbits[] = {
+ 0xed, 0xc9, 0xee, 0x06, 0x8c, 0x28, 0x23, 0xdf, 0x26, 0xd6, 0xef, 0x14,
+ 0xcc, 0x33, 0xf4, 0x02, 0x6c, 0x5c, 0x8d, 0x89, 0x92, 0xb7, 0xe1, 0xfd,
+ 0x30, 0x06, 0x31, 0x9e, 0x60, 0x65, 0x8e, 0x77, 0x77, 0xdd, 0xf3, 0xf4,
+ 0x6f, 0x38, 0xf5, 0xdf, 0xd2, 0x24, 0x15, 0xdc, 0x19, 0x57, 0xd1, 0x96,
+ 0x3f, 0x33, 0x19, 0x67, 0x24, 0x32, 0x4c, 0x96, 0xab, 0xc0, 0x39, 0x44,
+ 0xbc, 0xc1, 0x63, 0xfa,
+};
+static const struct drbg_kat_pr_true kat3123_t = {
+ 2, kat3123_entropyin, kat3123_nonce, kat3123_persstr,
+ kat3123_entropyinpr1, kat3123_addinpr1, kat3123_entropyinpr2,
+ kat3123_addinpr2, kat3123_retbits
+};
+static const struct drbg_kat kat3123 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3123_t
+};
+
+static const unsigned char kat3124_entropyin[] = {
+ 0x50, 0xcf, 0x55, 0x2e, 0x0e, 0x6c, 0x3f, 0xca, 0x00, 0xda, 0x03, 0xb3,
+ 0x1b, 0xdd, 0x77, 0xbe, 0xa1, 0x59, 0x93, 0x17, 0x51, 0xe5, 0x88, 0x4c,
+};
+static const unsigned char kat3124_nonce[] = {
+ 0xfd, 0xb2, 0x81, 0x10, 0x4e, 0xc0, 0xbf, 0xbe, 0xbf, 0xd4, 0xce, 0x65,
+ 0x93, 0xa7, 0x5e, 0x3e,
+};
+static const unsigned char kat3124_persstr[] = {0};
+static const unsigned char kat3124_entropyinpr1[] = {
+ 0x0f, 0x6c, 0xee, 0x4c, 0x34, 0xdc, 0xff, 0x9d, 0x1f, 0x7c, 0x7c, 0x93,
+ 0xba, 0xe9, 0x5a, 0x16, 0xce, 0x69, 0x37, 0x98, 0x30, 0x2c, 0xa7, 0x94,
+};
+static const unsigned char kat3124_addinpr1[] = {0};
+static const unsigned char kat3124_entropyinpr2[] = {
+ 0x79, 0x62, 0x90, 0xd6, 0xbe, 0xc0, 0x70, 0x13, 0xfa, 0xe5, 0x62, 0xa2,
+ 0xf6, 0x18, 0x7b, 0x4b, 0x2b, 0x3f, 0x4c, 0x6d, 0xd8, 0xd4, 0xfd, 0x47,
+};
+static const unsigned char kat3124_addinpr2[] = {0};
+static const unsigned char kat3124_retbits[] = {
+ 0xa6, 0xf1, 0x26, 0x34, 0x73, 0x5a, 0x89, 0x4b, 0xbb, 0x14, 0xfa, 0x36,
+ 0x8a, 0xbd, 0x15, 0xb2, 0x19, 0x81, 0xf4, 0x3d, 0x72, 0xdd, 0x4d, 0xa8,
+ 0x00, 0xf6, 0x17, 0x3c, 0x2c, 0x8d, 0xcc, 0x2e, 0xcd, 0x1a, 0xb4, 0xae,
+ 0xc4, 0x9a, 0xba, 0x40, 0xd5, 0x08, 0xf9, 0x6d, 0xba, 0x6e, 0xe1, 0x0d,
+ 0x88, 0x6b, 0x8b, 0xb4, 0x17, 0x72, 0x2e, 0x52, 0x82, 0x3f, 0x41, 0x52,
+ 0x27, 0xbe, 0x7b, 0x3e,
+};
+static const struct drbg_kat_pr_true kat3124_t = {
+ 3, kat3124_entropyin, kat3124_nonce, kat3124_persstr,
+ kat3124_entropyinpr1, kat3124_addinpr1, kat3124_entropyinpr2,
+ kat3124_addinpr2, kat3124_retbits
+};
+static const struct drbg_kat kat3124 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3124_t
+};
+
+static const unsigned char kat3125_entropyin[] = {
+ 0x42, 0xf3, 0xc7, 0x30, 0x4f, 0x6c, 0x48, 0x0a, 0xb8, 0xef, 0xe5, 0xe1,
+ 0xca, 0x17, 0xf8, 0xdc, 0x2b, 0xaf, 0xc9, 0xe0, 0x27, 0x0c, 0xe3, 0x10,
+};
+static const unsigned char kat3125_nonce[] = {
+ 0x68, 0x61, 0x22, 0xe3, 0xdf, 0x7a, 0x4f, 0x5b, 0xb7, 0x52, 0xc6, 0x06,
+ 0x28, 0xfd, 0xed, 0x56,
+};
+static const unsigned char kat3125_persstr[] = {0};
+static const unsigned char kat3125_entropyinpr1[] = {
+ 0x2b, 0x97, 0x22, 0xb9, 0x34, 0x3b, 0xc5, 0xe1, 0xa7, 0x84, 0x37, 0x11,
+ 0x48, 0x31, 0xb6, 0x77, 0xbe, 0x5a, 0x0d, 0x64, 0x37, 0xda, 0x4b, 0x2f,
+};
+static const unsigned char kat3125_addinpr1[] = {0};
+static const unsigned char kat3125_entropyinpr2[] = {
+ 0x92, 0x25, 0xb4, 0xc1, 0x27, 0x7c, 0xb6, 0xfc, 0x3f, 0x0e, 0x48, 0x90,
+ 0x4f, 0x15, 0x94, 0x47, 0x44, 0xe0, 0xb0, 0x51, 0xf8, 0xe5, 0x4b, 0x7e,
+};
+static const unsigned char kat3125_addinpr2[] = {0};
+static const unsigned char kat3125_retbits[] = {
+ 0x90, 0x42, 0xd3, 0x19, 0x0a, 0xe3, 0x63, 0x77, 0x5c, 0x8e, 0xa7, 0x83,
+ 0x7d, 0xc1, 0x72, 0xad, 0x9a, 0xee, 0xc6, 0xd0, 0xc5, 0xee, 0x29, 0x11,
+ 0x5b, 0xba, 0x14, 0x1c, 0x7b, 0x2c, 0x1b, 0x03, 0x4c, 0x2a, 0x9b, 0x69,
+ 0x71, 0xd6, 0x78, 0x35, 0xbe, 0xf2, 0x95, 0x35, 0x13, 0xdf, 0x6d, 0x92,
+ 0x35, 0x36, 0x82, 0x51, 0x5d, 0xee, 0xf4, 0x15, 0xca, 0x76, 0xf4, 0x5e,
+ 0xc7, 0xa6, 0x17, 0x63,
+};
+static const struct drbg_kat_pr_true kat3125_t = {
+ 4, kat3125_entropyin, kat3125_nonce, kat3125_persstr,
+ kat3125_entropyinpr1, kat3125_addinpr1, kat3125_entropyinpr2,
+ kat3125_addinpr2, kat3125_retbits
+};
+static const struct drbg_kat kat3125 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3125_t
+};
+
+static const unsigned char kat3126_entropyin[] = {
+ 0x6a, 0x0d, 0x63, 0x4e, 0x66, 0x18, 0xcc, 0x38, 0xc3, 0xfb, 0x2e, 0xd9,
+ 0x9c, 0xef, 0x84, 0x90, 0x57, 0x0d, 0x9a, 0xa8, 0x79, 0x12, 0xbf, 0x2d,
+};
+static const unsigned char kat3126_nonce[] = {
+ 0xab, 0x31, 0x48, 0xf4, 0x06, 0x09, 0x29, 0x0e, 0xcc, 0x08, 0x61, 0xaf,
+ 0xf1, 0xc5, 0xd2, 0x09,
+};
+static const unsigned char kat3126_persstr[] = {0};
+static const unsigned char kat3126_entropyinpr1[] = {
+ 0x0e, 0x32, 0x2c, 0x93, 0x43, 0x1c, 0x32, 0x4b, 0x37, 0xf8, 0x39, 0xc9,
+ 0x60, 0x93, 0xb0, 0xd8, 0xb8, 0xdb, 0xc3, 0x22, 0xa0, 0xab, 0x4f, 0x92,
+};
+static const unsigned char kat3126_addinpr1[] = {0};
+static const unsigned char kat3126_entropyinpr2[] = {
+ 0x0c, 0x45, 0x00, 0xf0, 0xc9, 0x37, 0xf6, 0x7f, 0x3e, 0xe6, 0xf8, 0x17,
+ 0xfe, 0x8b, 0xdc, 0x02, 0xce, 0x4c, 0x97, 0xe6, 0x97, 0xb0, 0xc9, 0x89,
+};
+static const unsigned char kat3126_addinpr2[] = {0};
+static const unsigned char kat3126_retbits[] = {
+ 0xc2, 0xf1, 0xb3, 0xdc, 0xd5, 0x2d, 0x68, 0x65, 0x10, 0x60, 0x06, 0xfc,
+ 0x67, 0x5b, 0x52, 0x88, 0x14, 0x90, 0x64, 0x94, 0xdb, 0xa2, 0xa0, 0xc1,
+ 0x66, 0x36, 0xec, 0x5f, 0xd6, 0xa8, 0x98, 0x1e, 0xeb, 0x6b, 0xfe, 0x64,
+ 0x0c, 0xf7, 0x85, 0xd4, 0x79, 0x81, 0x35, 0x2c, 0x51, 0x0c, 0xc1, 0x81,
+ 0xea, 0x71, 0xaa, 0x24, 0x70, 0xf8, 0xa9, 0x7a, 0xdd, 0xd4, 0x59, 0x39,
+ 0x08, 0x1c, 0x3b, 0x84,
+};
+static const struct drbg_kat_pr_true kat3126_t = {
+ 5, kat3126_entropyin, kat3126_nonce, kat3126_persstr,
+ kat3126_entropyinpr1, kat3126_addinpr1, kat3126_entropyinpr2,
+ kat3126_addinpr2, kat3126_retbits
+};
+static const struct drbg_kat kat3126 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3126_t
+};
+
+static const unsigned char kat3127_entropyin[] = {
+ 0x30, 0xde, 0x9e, 0xc0, 0x35, 0x03, 0xeb, 0x2c, 0x60, 0x46, 0xdf, 0x9c,
+ 0x50, 0x24, 0xef, 0x24, 0x8e, 0x53, 0x85, 0x1f, 0x2e, 0x2f, 0x5e, 0x82,
+};
+static const unsigned char kat3127_nonce[] = {
+ 0xc2, 0x1e, 0x8e, 0x13, 0x54, 0xc0, 0xbf, 0x00, 0x7d, 0x50, 0x76, 0xcd,
+ 0x57, 0x1f, 0xae, 0x51,
+};
+static const unsigned char kat3127_persstr[] = {0};
+static const unsigned char kat3127_entropyinpr1[] = {
+ 0x7c, 0xa2, 0x88, 0x95, 0xe4, 0xb2, 0x09, 0x67, 0x04, 0x22, 0x7a, 0x2a,
+ 0x1d, 0xea, 0xb7, 0xef, 0xbb, 0x48, 0x10, 0xc4, 0x85, 0x41, 0x12, 0xe4,
+};
+static const unsigned char kat3127_addinpr1[] = {0};
+static const unsigned char kat3127_entropyinpr2[] = {
+ 0x41, 0xbe, 0x84, 0x2e, 0x22, 0x90, 0x40, 0x59, 0xd8, 0x38, 0x78, 0xc9,
+ 0x49, 0x59, 0x79, 0x89, 0xdb, 0xb0, 0x28, 0xbd, 0xc7, 0xe4, 0xe2, 0x1c,
+};
+static const unsigned char kat3127_addinpr2[] = {0};
+static const unsigned char kat3127_retbits[] = {
+ 0x18, 0x21, 0x96, 0x4d, 0xe8, 0xbc, 0xf0, 0x57, 0x3d, 0x96, 0x53, 0x5c,
+ 0x25, 0xed, 0x6c, 0x02, 0x22, 0xcd, 0x06, 0x60, 0xb5, 0x51, 0x68, 0x3e,
+ 0x05, 0x00, 0x46, 0x12, 0x01, 0xde, 0x72, 0xba, 0xe7, 0x3c, 0xb2, 0x0b,
+ 0x60, 0x8d, 0x27, 0x6b, 0xc7, 0xd8, 0x01, 0x39, 0x27, 0xaf, 0x35, 0x8e,
+ 0xab, 0x60, 0xbc, 0x96, 0x2b, 0x28, 0x87, 0xd3, 0x27, 0x67, 0x2e, 0xc0,
+ 0xdb, 0x0d, 0x1b, 0x41,
+};
+static const struct drbg_kat_pr_true kat3127_t = {
+ 6, kat3127_entropyin, kat3127_nonce, kat3127_persstr,
+ kat3127_entropyinpr1, kat3127_addinpr1, kat3127_entropyinpr2,
+ kat3127_addinpr2, kat3127_retbits
+};
+static const struct drbg_kat kat3127 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3127_t
+};
+
+static const unsigned char kat3128_entropyin[] = {
+ 0x5d, 0xd9, 0x07, 0x4e, 0x42, 0x45, 0x90, 0xbe, 0x33, 0x3d, 0xd8, 0x9a,
+ 0xd2, 0x46, 0xa7, 0x83, 0xf5, 0xe4, 0x8e, 0x5d, 0xaf, 0xcb, 0x92, 0x38,
+};
+static const unsigned char kat3128_nonce[] = {
+ 0x1b, 0x6d, 0x12, 0x99, 0xe9, 0xe7, 0x80, 0x22, 0x35, 0x48, 0xda, 0x3a,
+ 0x1e, 0x92, 0x47, 0x13,
+};
+static const unsigned char kat3128_persstr[] = {0};
+static const unsigned char kat3128_entropyinpr1[] = {
+ 0xb3, 0xe4, 0x36, 0x77, 0x94, 0x7c, 0x92, 0x56, 0x3e, 0xe7, 0x26, 0x03,
+ 0x14, 0x97, 0xe5, 0x2b, 0xe5, 0x4e, 0x83, 0x9c, 0x17, 0xdc, 0xdf, 0x1e,
+};
+static const unsigned char kat3128_addinpr1[] = {0};
+static const unsigned char kat3128_entropyinpr2[] = {
+ 0x35, 0x09, 0x37, 0x9b, 0x91, 0xa5, 0x3a, 0xd5, 0x36, 0x4e, 0x90, 0x83,
+ 0x3f, 0xcf, 0xfa, 0xd7, 0x66, 0x49, 0x8a, 0xdd, 0x2d, 0xd9, 0xac, 0xdb,
+};
+static const unsigned char kat3128_addinpr2[] = {0};
+static const unsigned char kat3128_retbits[] = {
+ 0x7b, 0x6b, 0xe6, 0x05, 0x17, 0x97, 0xb3, 0x22, 0x8e, 0x25, 0x77, 0x71,
+ 0xf3, 0x44, 0x29, 0x18, 0x4c, 0xd8, 0x04, 0x4f, 0xb1, 0xd3, 0xee, 0x6d,
+ 0x1e, 0x9c, 0x6c, 0xc2, 0x6a, 0xde, 0x4f, 0xae, 0x6d, 0x5d, 0xb9, 0x18,
+ 0x33, 0xd6, 0xdd, 0x56, 0xcf, 0x37, 0x2a, 0xf7, 0x66, 0xdd, 0x6f, 0x0b,
+ 0x4e, 0x40, 0xb9, 0x21, 0x96, 0xdf, 0xcc, 0x15, 0xcd, 0xfc, 0x8b, 0xfa,
+ 0xfd, 0x30, 0x34, 0x95,
+};
+static const struct drbg_kat_pr_true kat3128_t = {
+ 7, kat3128_entropyin, kat3128_nonce, kat3128_persstr,
+ kat3128_entropyinpr1, kat3128_addinpr1, kat3128_entropyinpr2,
+ kat3128_addinpr2, kat3128_retbits
+};
+static const struct drbg_kat kat3128 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3128_t
+};
+
+static const unsigned char kat3129_entropyin[] = {
+ 0xd1, 0xbb, 0x4c, 0xcc, 0x03, 0x5f, 0xdd, 0x73, 0x40, 0x67, 0xd0, 0x78,
+ 0x99, 0xfd, 0xce, 0xc2, 0x4a, 0x52, 0x54, 0x6a, 0x3d, 0x6e, 0x14, 0xf4,
+};
+static const unsigned char kat3129_nonce[] = {
+ 0x5d, 0x7b, 0x4a, 0x17, 0x6d, 0x22, 0x2e, 0x41, 0xbe, 0x64, 0xf6, 0x2d,
+ 0xde, 0x1a, 0x62, 0x44,
+};
+static const unsigned char kat3129_persstr[] = {0};
+static const unsigned char kat3129_entropyinpr1[] = {
+ 0x98, 0x01, 0x76, 0xb5, 0xd3, 0x91, 0xf4, 0xa0, 0x42, 0x2f, 0x09, 0x08,
+ 0xc6, 0x9b, 0x20, 0xbc, 0xb9, 0xdc, 0xb9, 0xb3, 0xa1, 0x93, 0xfb, 0x29,
+};
+static const unsigned char kat3129_addinpr1[] = {0};
+static const unsigned char kat3129_entropyinpr2[] = {
+ 0x7b, 0x3e, 0xbe, 0x6c, 0x6b, 0xcc, 0x59, 0x54, 0x2a, 0xea, 0x08, 0x60,
+ 0x11, 0x0b, 0xde, 0xac, 0x7a, 0x20, 0xf9, 0xa4, 0x30, 0xb7, 0xfb, 0x2b,
+};
+static const unsigned char kat3129_addinpr2[] = {0};
+static const unsigned char kat3129_retbits[] = {
+ 0xc6, 0x45, 0xdd, 0xba, 0x51, 0x97, 0x0f, 0xee, 0xac, 0x96, 0x15, 0x95,
+ 0xc5, 0xd6, 0xb2, 0xde, 0x1e, 0xfc, 0xe6, 0x95, 0x1a, 0x09, 0xe4, 0xa1,
+ 0x4c, 0x81, 0x74, 0x1d, 0x63, 0x1f, 0x8e, 0x19, 0x39, 0xac, 0x25, 0xe0,
+ 0xae, 0xb1, 0xf5, 0x9c, 0x28, 0x07, 0x91, 0xa2, 0x26, 0xe7, 0x38, 0xa9,
+ 0x8e, 0x6d, 0x13, 0x40, 0x03, 0xe5, 0x19, 0xd8, 0xdd, 0x9b, 0x9a, 0x4f,
+ 0xf2, 0x2e, 0x6e, 0x00,
+};
+static const struct drbg_kat_pr_true kat3129_t = {
+ 8, kat3129_entropyin, kat3129_nonce, kat3129_persstr,
+ kat3129_entropyinpr1, kat3129_addinpr1, kat3129_entropyinpr2,
+ kat3129_addinpr2, kat3129_retbits
+};
+static const struct drbg_kat kat3129 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3129_t
+};
+
+static const unsigned char kat3130_entropyin[] = {
+ 0xf0, 0xb2, 0x4a, 0x7c, 0x6c, 0x0a, 0x56, 0xec, 0x47, 0x36, 0x19, 0xda,
+ 0x51, 0x91, 0xe1, 0xfc, 0x40, 0x36, 0x1e, 0x43, 0xab, 0xd0, 0xb8, 0x79,
+};
+static const unsigned char kat3130_nonce[] = {
+ 0xd9, 0xe2, 0xfc, 0xad, 0xbb, 0x83, 0xfe, 0x67, 0x7b, 0x1f, 0x9a, 0x6f,
+ 0xf5, 0xa7, 0xf3, 0xef,
+};
+static const unsigned char kat3130_persstr[] = {0};
+static const unsigned char kat3130_entropyinpr1[] = {
+ 0x71, 0xe6, 0x34, 0xbf, 0x65, 0xdd, 0x8a, 0xc7, 0xe3, 0x5e, 0x0a, 0x38,
+ 0x89, 0xa9, 0x3a, 0xea, 0x06, 0x1c, 0x27, 0x64, 0xd5, 0x7a, 0xb6, 0xcc,
+};
+static const unsigned char kat3130_addinpr1[] = {0};
+static const unsigned char kat3130_entropyinpr2[] = {
+ 0x66, 0x7d, 0xb2, 0xa2, 0x64, 0x36, 0x89, 0xfa, 0x9f, 0x60, 0x2d, 0x28,
+ 0x83, 0xb5, 0xb7, 0x45, 0x62, 0x5e, 0xc3, 0xa7, 0x5b, 0xd5, 0xd7, 0xcd,
+};
+static const unsigned char kat3130_addinpr2[] = {0};
+static const unsigned char kat3130_retbits[] = {
+ 0x2f, 0xe5, 0x5e, 0x3c, 0xed, 0x73, 0x18, 0xef, 0xb6, 0x58, 0x48, 0xe6,
+ 0xd7, 0xd0, 0x02, 0x50, 0x2f, 0x18, 0xd4, 0x00, 0x81, 0xfc, 0xff, 0x6d,
+ 0x06, 0x13, 0xac, 0xa1, 0x17, 0x80, 0xcb, 0x27, 0x1b, 0x1d, 0x8a, 0x7d,
+ 0x3e, 0x31, 0x51, 0x8c, 0xf3, 0xfa, 0xf9, 0xf3, 0x99, 0x3b, 0x7f, 0x9f,
+ 0x89, 0x7c, 0x11, 0xc0, 0x7d, 0x67, 0xa5, 0x18, 0x45, 0xf1, 0xb0, 0xfe,
+ 0x58, 0x55, 0x35, 0xd4,
+};
+static const struct drbg_kat_pr_true kat3130_t = {
+ 9, kat3130_entropyin, kat3130_nonce, kat3130_persstr,
+ kat3130_entropyinpr1, kat3130_addinpr1, kat3130_entropyinpr2,
+ kat3130_addinpr2, kat3130_retbits
+};
+static const struct drbg_kat kat3130 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3130_t
+};
+
+static const unsigned char kat3131_entropyin[] = {
+ 0x2a, 0x2f, 0x9e, 0x86, 0x82, 0x39, 0xac, 0x23, 0xbe, 0x4c, 0x8d, 0x18,
+ 0x41, 0x57, 0xd4, 0x4f, 0x86, 0xf1, 0xc2, 0x76, 0x99, 0x4c, 0x1d, 0x02,
+};
+static const unsigned char kat3131_nonce[] = {
+ 0x78, 0x4d, 0xc9, 0x0d, 0x95, 0x2a, 0x9d, 0xec, 0xab, 0x76, 0x05, 0x51,
+ 0x05, 0x09, 0x43, 0x62,
+};
+static const unsigned char kat3131_persstr[] = {0};
+static const unsigned char kat3131_entropyinpr1[] = {
+ 0xc4, 0x19, 0x55, 0xe8, 0xd5, 0x2d, 0x31, 0x4d, 0x4c, 0x57, 0x9a, 0xa7,
+ 0x0d, 0x31, 0xd1, 0xf6, 0xf4, 0x8b, 0xfa, 0x9a, 0xa0, 0x4d, 0x64, 0xbe,
+};
+static const unsigned char kat3131_addinpr1[] = {0};
+static const unsigned char kat3131_entropyinpr2[] = {
+ 0x27, 0x64, 0xc2, 0x28, 0xb0, 0x35, 0x07, 0xbe, 0x6c, 0x37, 0x31, 0x50,
+ 0x8a, 0x57, 0x4d, 0x3e, 0x1b, 0xe6, 0xf3, 0x3e, 0x42, 0x2f, 0x81, 0xb6,
+};
+static const unsigned char kat3131_addinpr2[] = {0};
+static const unsigned char kat3131_retbits[] = {
+ 0xee, 0x25, 0xf5, 0xe5, 0x53, 0xca, 0x17, 0x95, 0xe4, 0xd8, 0xbe, 0xba,
+ 0x5d, 0xcb, 0xd9, 0x59, 0xa0, 0x46, 0x8e, 0x82, 0x86, 0x02, 0xbc, 0x11,
+ 0x03, 0xd8, 0x76, 0x5f, 0xd6, 0xf2, 0x81, 0xfb, 0x96, 0xa2, 0xee, 0xbf,
+ 0xdf, 0x1f, 0x38, 0x30, 0x13, 0x2a, 0xd9, 0x0f, 0x38, 0x1c, 0xff, 0x7e,
+ 0xd7, 0x09, 0x00, 0x10, 0x70, 0xf7, 0x74, 0xa5, 0x7b, 0x6d, 0x34, 0x88,
+ 0xe5, 0xb8, 0x42, 0xe5,
+};
+static const struct drbg_kat_pr_true kat3131_t = {
+ 10, kat3131_entropyin, kat3131_nonce, kat3131_persstr,
+ kat3131_entropyinpr1, kat3131_addinpr1, kat3131_entropyinpr2,
+ kat3131_addinpr2, kat3131_retbits
+};
+static const struct drbg_kat kat3131 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3131_t
+};
+
+static const unsigned char kat3132_entropyin[] = {
+ 0x3b, 0xda, 0xe8, 0x11, 0x9d, 0x89, 0x16, 0x10, 0x0b, 0x52, 0xfe, 0x32,
+ 0x44, 0x8b, 0x95, 0xb5, 0xc2, 0x30, 0x39, 0x82, 0x87, 0x4d, 0x7a, 0x95,
+};
+static const unsigned char kat3132_nonce[] = {
+ 0x92, 0x91, 0xf9, 0xfe, 0xe1, 0x05, 0xf7, 0xe1, 0x48, 0xa1, 0x3f, 0x2f,
+ 0xf5, 0x93, 0xb6, 0x19,
+};
+static const unsigned char kat3132_persstr[] = {0};
+static const unsigned char kat3132_entropyinpr1[] = {
+ 0xda, 0x37, 0xce, 0x63, 0x92, 0x9e, 0x1a, 0x9f, 0x00, 0xe0, 0x16, 0x18,
+ 0x3e, 0x28, 0x0f, 0x27, 0xed, 0x94, 0xd9, 0xcd, 0xe4, 0xae, 0x7a, 0x7c,
+};
+static const unsigned char kat3132_addinpr1[] = {0};
+static const unsigned char kat3132_entropyinpr2[] = {
+ 0x88, 0xab, 0x02, 0x9e, 0xdb, 0xda, 0x4c, 0x8c, 0x79, 0x2d, 0xe3, 0x04,
+ 0xaf, 0x53, 0xce, 0x5c, 0xb4, 0xb1, 0xca, 0x2d, 0x76, 0x4f, 0xcf, 0xc1,
+};
+static const unsigned char kat3132_addinpr2[] = {0};
+static const unsigned char kat3132_retbits[] = {
+ 0xbb, 0x37, 0xf2, 0x96, 0xc6, 0xbd, 0xfb, 0x05, 0x9c, 0x35, 0x35, 0x39,
+ 0x52, 0xf8, 0x39, 0x72, 0xad, 0x9e, 0x9f, 0xfa, 0x51, 0xab, 0x72, 0x62,
+ 0xc1, 0x07, 0xe8, 0x17, 0xa7, 0x42, 0x57, 0xeb, 0xe6, 0x9e, 0x53, 0x91,
+ 0x2c, 0xf8, 0x3b, 0xd9, 0xbb, 0xc0, 0x9a, 0xf7, 0xe9, 0x69, 0xab, 0x08,
+ 0x4a, 0xc0, 0x84, 0x31, 0x7d, 0x5e, 0xc6, 0xc0, 0x15, 0x17, 0x54, 0xc8,
+ 0xc5, 0x42, 0xc6, 0x5d,
+};
+static const struct drbg_kat_pr_true kat3132_t = {
+ 11, kat3132_entropyin, kat3132_nonce, kat3132_persstr,
+ kat3132_entropyinpr1, kat3132_addinpr1, kat3132_entropyinpr2,
+ kat3132_addinpr2, kat3132_retbits
+};
+static const struct drbg_kat kat3132 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3132_t
+};
+
+static const unsigned char kat3133_entropyin[] = {
+ 0x28, 0x9c, 0xa3, 0xd9, 0x02, 0x03, 0x70, 0x97, 0x1c, 0x24, 0xed, 0x23,
+ 0xc6, 0x43, 0xaa, 0x63, 0xb0, 0x0a, 0xbf, 0x55, 0x6a, 0x6a, 0x1a, 0x67,
+};
+static const unsigned char kat3133_nonce[] = {
+ 0x96, 0x5f, 0x82, 0x54, 0xfe, 0x96, 0x53, 0x7e, 0x68, 0x7c, 0x26, 0xc1,
+ 0x63, 0x91, 0x5a, 0x64,
+};
+static const unsigned char kat3133_persstr[] = {0};
+static const unsigned char kat3133_entropyinpr1[] = {
+ 0x1d, 0xa4, 0x91, 0x99, 0x30, 0x96, 0x42, 0x7b, 0x20, 0x55, 0xcf, 0x24,
+ 0xf9, 0x05, 0xa2, 0xb3, 0xdc, 0x2b, 0xc8, 0x2b, 0x57, 0xc4, 0xac, 0xb6,
+};
+static const unsigned char kat3133_addinpr1[] = {0};
+static const unsigned char kat3133_entropyinpr2[] = {
+ 0xef, 0x59, 0x4f, 0xbf, 0xd7, 0x30, 0x02, 0x32, 0x3f, 0xc0, 0xd5, 0xa3,
+ 0x46, 0x48, 0xf9, 0x35, 0xb6, 0xe5, 0xe6, 0x5b, 0xea, 0x3e, 0xe2, 0x57,
+};
+static const unsigned char kat3133_addinpr2[] = {0};
+static const unsigned char kat3133_retbits[] = {
+ 0x2e, 0xad, 0x91, 0xe5, 0x63, 0x41, 0xe1, 0x57, 0x20, 0x30, 0x2e, 0xb6,
+ 0x49, 0xcd, 0xfe, 0x25, 0xad, 0x9e, 0x87, 0xef, 0xf5, 0x11, 0x0c, 0xef,
+ 0xb4, 0x87, 0x41, 0x01, 0xe8, 0x1f, 0x8c, 0x02, 0x48, 0x11, 0xb4, 0x2c,
+ 0xe7, 0x27, 0x63, 0x63, 0x8e, 0x49, 0x1b, 0x07, 0x75, 0x52, 0xf3, 0x47,
+ 0xef, 0xf6, 0x97, 0x2e, 0x9b, 0xe2, 0xbd, 0xd3, 0xb4, 0x2b, 0x0b, 0x6f,
+ 0xb7, 0x3e, 0x70, 0x27,
+};
+static const struct drbg_kat_pr_true kat3133_t = {
+ 12, kat3133_entropyin, kat3133_nonce, kat3133_persstr,
+ kat3133_entropyinpr1, kat3133_addinpr1, kat3133_entropyinpr2,
+ kat3133_addinpr2, kat3133_retbits
+};
+static const struct drbg_kat kat3133 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3133_t
+};
+
+static const unsigned char kat3134_entropyin[] = {
+ 0xc4, 0x3a, 0x65, 0x0f, 0x01, 0xf3, 0xee, 0xc4, 0x1b, 0x5f, 0x25, 0x45,
+ 0x50, 0x9a, 0x1c, 0x47, 0x80, 0x8c, 0xce, 0xad, 0x72, 0x90, 0xa0, 0xeb,
+};
+static const unsigned char kat3134_nonce[] = {
+ 0xb2, 0x42, 0xa3, 0x6d, 0x72, 0x80, 0x4e, 0xd2, 0xca, 0x78, 0x64, 0xf3,
+ 0xf3, 0xd2, 0x3e, 0x1a,
+};
+static const unsigned char kat3134_persstr[] = {0};
+static const unsigned char kat3134_entropyinpr1[] = {
+ 0x80, 0x21, 0x41, 0x7b, 0xaf, 0xe1, 0x17, 0xfe, 0x68, 0x0b, 0x5f, 0x5d,
+ 0xe7, 0xe2, 0x93, 0xac, 0xf1, 0x04, 0x34, 0x8d, 0x09, 0x0b, 0x59, 0x5e,
+};
+static const unsigned char kat3134_addinpr1[] = {0};
+static const unsigned char kat3134_entropyinpr2[] = {
+ 0x40, 0xc2, 0xf1, 0x8f, 0xc4, 0x0b, 0xce, 0xac, 0xde, 0x2d, 0xa3, 0x22,
+ 0xea, 0x99, 0x68, 0xa4, 0x0c, 0x32, 0x89, 0xef, 0x2d, 0xb8, 0x4f, 0x4e,
+};
+static const unsigned char kat3134_addinpr2[] = {0};
+static const unsigned char kat3134_retbits[] = {
+ 0x99, 0xf4, 0x8c, 0x2c, 0xe5, 0x5a, 0x2b, 0x79, 0xf2, 0xde, 0x20, 0xcc,
+ 0xd0, 0x80, 0x20, 0xff, 0x61, 0xac, 0xf4, 0x24, 0x51, 0xed, 0xcb, 0x12,
+ 0xe0, 0x1a, 0x63, 0xb6, 0x82, 0xcc, 0xc3, 0xda, 0x3b, 0xb6, 0xe5, 0x53,
+ 0x36, 0x92, 0x97, 0xef, 0x88, 0x2f, 0x59, 0xe5, 0xca, 0x1e, 0xc2, 0x1c,
+ 0x60, 0x6b, 0x17, 0xcb, 0x18, 0x27, 0x50, 0xff, 0x67, 0xe0, 0x14, 0xad,
+ 0x97, 0x83, 0x23, 0xfe,
+};
+static const struct drbg_kat_pr_true kat3134_t = {
+ 13, kat3134_entropyin, kat3134_nonce, kat3134_persstr,
+ kat3134_entropyinpr1, kat3134_addinpr1, kat3134_entropyinpr2,
+ kat3134_addinpr2, kat3134_retbits
+};
+static const struct drbg_kat kat3134 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3134_t
+};
+
+static const unsigned char kat3135_entropyin[] = {
+ 0x7c, 0x0c, 0x25, 0xf8, 0x48, 0xb4, 0x59, 0x62, 0x5c, 0x79, 0x6c, 0xe4,
+ 0x77, 0xda, 0x9f, 0xb0, 0x04, 0x26, 0x2e, 0xc6, 0x08, 0xd3, 0xf0, 0xcb,
+};
+static const unsigned char kat3135_nonce[] = {
+ 0xb8, 0x7a, 0x69, 0x7c, 0xac, 0xd8, 0x22, 0xe3, 0xa3, 0xa2, 0xb9, 0x29,
+ 0xa2, 0x0d, 0x70, 0x72,
+};
+static const unsigned char kat3135_persstr[] = {0};
+static const unsigned char kat3135_entropyinpr1[] = {
+ 0xc1, 0xcb, 0xe2, 0x26, 0xf2, 0xc3, 0x52, 0xba, 0xbe, 0x71, 0xff, 0x61,
+ 0x43, 0xd1, 0x8e, 0x45, 0xab, 0x17, 0x4b, 0xb2, 0x2d, 0x79, 0x3c, 0xae,
+};
+static const unsigned char kat3135_addinpr1[] = {0};
+static const unsigned char kat3135_entropyinpr2[] = {
+ 0x45, 0x90, 0x72, 0x15, 0xe8, 0xc2, 0x59, 0x27, 0xdd, 0x8f, 0x5e, 0x03,
+ 0xf1, 0x7d, 0x9e, 0x56, 0x15, 0xe5, 0x6f, 0xb8, 0xf9, 0x01, 0x70, 0x7c,
+};
+static const unsigned char kat3135_addinpr2[] = {0};
+static const unsigned char kat3135_retbits[] = {
+ 0x40, 0x30, 0x1a, 0x7b, 0x48, 0x93, 0x10, 0x52, 0x04, 0xe3, 0x5e, 0x41,
+ 0xa0, 0xca, 0xe5, 0x4f, 0x42, 0x8b, 0x23, 0x9a, 0x80, 0xc5, 0x61, 0x95,
+ 0xdd, 0x36, 0x0d, 0x5f, 0x2b, 0x47, 0x87, 0xd1, 0xf7, 0xd1, 0x7f, 0x28,
+ 0xce, 0x32, 0xc8, 0x72, 0xa3, 0x9d, 0x28, 0xd2, 0x4b, 0xf1, 0xea, 0x95,
+ 0x11, 0xc4, 0x01, 0x2a, 0xa9, 0x83, 0x65, 0xf0, 0x55, 0xf3, 0x06, 0xa0,
+ 0x26, 0x4f, 0xde, 0x55,
+};
+static const struct drbg_kat_pr_true kat3135_t = {
+ 14, kat3135_entropyin, kat3135_nonce, kat3135_persstr,
+ kat3135_entropyinpr1, kat3135_addinpr1, kat3135_entropyinpr2,
+ kat3135_addinpr2, kat3135_retbits
+};
+static const struct drbg_kat kat3135 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3135_t
+};
+
+static const unsigned char kat3136_entropyin[] = {
+ 0x4c, 0x41, 0x37, 0x53, 0x49, 0x0a, 0x93, 0xcd, 0x43, 0x16, 0x6f, 0xa3,
+ 0x80, 0x9d, 0xef, 0xf6, 0x1b, 0x63, 0x2e, 0x2c, 0x22, 0xa7, 0xf9, 0x74,
+};
+static const unsigned char kat3136_nonce[] = {
+ 0xfd, 0x2a, 0x99, 0xc8, 0x47, 0xea, 0x9f, 0x96, 0x42, 0xd2, 0x6d, 0xbf,
+ 0x54, 0x99, 0x79, 0x7d,
+};
+static const unsigned char kat3136_persstr[] = {0};
+static const unsigned char kat3136_entropyinpr1[] = {
+ 0x7d, 0xa8, 0xda, 0xed, 0xbe, 0xd6, 0x6e, 0x45, 0x29, 0x3e, 0x1a, 0x1c,
+ 0x87, 0x7a, 0x34, 0x34, 0x8b, 0x53, 0x4a, 0x4a, 0x25, 0xde, 0xc2, 0x58,
+};
+static const unsigned char kat3136_addinpr1[] = {
+ 0xf6, 0x36, 0x8d, 0xbd, 0x19, 0x59, 0x7f, 0xf2, 0x5a, 0xcf, 0x50, 0xc8,
+ 0x65, 0x5a, 0x74, 0xbf, 0x6e, 0xe0, 0x6d, 0x6e, 0xc2, 0xb5, 0x37, 0x18,
+ 0x3a, 0xd0, 0x67, 0xed, 0x4b, 0xe0, 0xae, 0x2a,
+};
+static const unsigned char kat3136_entropyinpr2[] = {
+ 0x37, 0xe8, 0x73, 0x56, 0xba, 0x12, 0x74, 0xac, 0xfa, 0x3b, 0x1e, 0xb6,
+ 0x54, 0xe5, 0x96, 0xf5, 0xef, 0xdc, 0xa5, 0x2b, 0x4c, 0x33, 0x31, 0x87,
+};
+static const unsigned char kat3136_addinpr2[] = {
+ 0x5b, 0x43, 0xa0, 0x41, 0x3e, 0x3a, 0x07, 0x5a, 0x7c, 0x3c, 0x77, 0x20,
+ 0xc0, 0x6b, 0x96, 0x46, 0x1f, 0x66, 0xac, 0x97, 0xea, 0x4d, 0x13, 0xef,
+ 0x36, 0x61, 0x14, 0x08, 0x86, 0x68, 0x16, 0x68,
+};
+static const unsigned char kat3136_retbits[] = {
+ 0x7f, 0x7b, 0x60, 0x37, 0xb0, 0xf2, 0xa2, 0x0c, 0x04, 0xe9, 0xeb, 0x28,
+ 0x85, 0x9b, 0xba, 0xb4, 0xe6, 0x86, 0xa1, 0xe3, 0x4d, 0x67, 0xad, 0x43,
+ 0x54, 0x4e, 0xe3, 0x63, 0x7b, 0xf1, 0x18, 0x61, 0x5a, 0x49, 0x8a, 0x71,
+ 0x4a, 0x6f, 0x19, 0xed, 0x45, 0x3d, 0x78, 0xf3, 0x9f, 0x9e, 0xa2, 0xed,
+ 0x2c, 0x3d, 0xe6, 0xe2, 0x2d, 0x76, 0xe3, 0x28, 0xc3, 0x96, 0xb2, 0xe1,
+ 0xbe, 0x63, 0x83, 0x9b,
+};
+static const struct drbg_kat_pr_true kat3136_t = {
+ 0, kat3136_entropyin, kat3136_nonce, kat3136_persstr,
+ kat3136_entropyinpr1, kat3136_addinpr1, kat3136_entropyinpr2,
+ kat3136_addinpr2, kat3136_retbits
+};
+static const struct drbg_kat kat3136 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3136_t
+};
+
+static const unsigned char kat3137_entropyin[] = {
+ 0x58, 0x2a, 0xb4, 0xab, 0xb2, 0x16, 0x99, 0x48, 0x78, 0xf0, 0x5a, 0xd5,
+ 0xbb, 0x14, 0x59, 0x3c, 0x05, 0x4b, 0xee, 0xad, 0x4c, 0x7b, 0xbd, 0x1b,
+};
+static const unsigned char kat3137_nonce[] = {
+ 0x1a, 0xc0, 0xf7, 0x47, 0x54, 0xb6, 0xef, 0xc5, 0xfb, 0xd5, 0xa7, 0x3f,
+ 0xb8, 0x3b, 0xb5, 0x56,
+};
+static const unsigned char kat3137_persstr[] = {0};
+static const unsigned char kat3137_entropyinpr1[] = {
+ 0x04, 0x96, 0x2f, 0xb6, 0x8b, 0xe5, 0x6d, 0xef, 0x7c, 0xa9, 0x64, 0x8f,
+ 0x30, 0x87, 0xae, 0x55, 0xba, 0xad, 0x09, 0xc8, 0x24, 0xd0, 0xa5, 0x38,
+};
+static const unsigned char kat3137_addinpr1[] = {
+ 0x39, 0x12, 0x12, 0x4b, 0xac, 0x03, 0xf4, 0x67, 0xd4, 0x24, 0xbd, 0x7e,
+ 0x4b, 0x30, 0x53, 0x69, 0xe5, 0x6d, 0x92, 0x78, 0xaf, 0x82, 0xd0, 0x9b,
+ 0x1b, 0x9b, 0x69, 0x78, 0x60, 0xa6, 0x25, 0x97,
+};
+static const unsigned char kat3137_entropyinpr2[] = {
+ 0x41, 0x5d, 0x4d, 0x6a, 0x65, 0xef, 0xd8, 0xac, 0x87, 0x0f, 0x57, 0x8a,
+ 0x41, 0xa5, 0xc4, 0xdf, 0x90, 0x2f, 0x05, 0x64, 0xd8, 0xe1, 0xfd, 0x1b,
+};
+static const unsigned char kat3137_addinpr2[] = {
+ 0xa2, 0x0c, 0xab, 0x1b, 0xb5, 0xc2, 0x7d, 0xd7, 0x1e, 0x59, 0x54, 0x66,
+ 0x47, 0x90, 0x67, 0x37, 0x02, 0x54, 0x4f, 0x6b, 0x04, 0x91, 0xb8, 0x55,
+ 0x5e, 0xf1, 0x9f, 0x5d, 0x1a, 0x53, 0x47, 0xfb,
+};
+static const unsigned char kat3137_retbits[] = {
+ 0xad, 0x22, 0x1d, 0x21, 0xff, 0xca, 0x8b, 0xae, 0xc0, 0x79, 0x13, 0xc2,
+ 0x6f, 0x38, 0x49, 0x37, 0xc1, 0xbc, 0xee, 0x73, 0x7a, 0x1a, 0x02, 0xfd,
+ 0x13, 0xe7, 0x00, 0x64, 0x9e, 0xca, 0xd9, 0xf1, 0xd7, 0x51, 0xfa, 0x18,
+ 0x9f, 0x1e, 0xfc, 0x9d, 0xf6, 0x19, 0x4e, 0xb8, 0xb4, 0x95, 0x90, 0x0d,
+ 0x04, 0xf3, 0xe6, 0x51, 0x52, 0xe8, 0x1c, 0x2d, 0x83, 0xe9, 0xba, 0xf9,
+ 0xe7, 0x68, 0xb0, 0x37,
+};
+static const struct drbg_kat_pr_true kat3137_t = {
+ 1, kat3137_entropyin, kat3137_nonce, kat3137_persstr,
+ kat3137_entropyinpr1, kat3137_addinpr1, kat3137_entropyinpr2,
+ kat3137_addinpr2, kat3137_retbits
+};
+static const struct drbg_kat kat3137 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3137_t
+};
+
+static const unsigned char kat3138_entropyin[] = {
+ 0xbc, 0x71, 0x10, 0x1f, 0x21, 0xce, 0xa7, 0xc8, 0x14, 0x6f, 0x06, 0x08,
+ 0x9f, 0xe8, 0xe7, 0xd0, 0x65, 0x63, 0xdd, 0xe0, 0x20, 0x1d, 0x61, 0x96,
+};
+static const unsigned char kat3138_nonce[] = {
+ 0x84, 0xcf, 0x94, 0x35, 0xdc, 0xd0, 0xa1, 0xc9, 0x93, 0xee, 0xac, 0x18,
+ 0x50, 0xf4, 0xf0, 0xda,
+};
+static const unsigned char kat3138_persstr[] = {0};
+static const unsigned char kat3138_entropyinpr1[] = {
+ 0x08, 0x6c, 0xeb, 0xc0, 0xd0, 0x28, 0x54, 0xe3, 0x4f, 0x51, 0x66, 0x4f,
+ 0x0a, 0xd6, 0xf6, 0x0f, 0xa2, 0x1e, 0xa6, 0x8b, 0x41, 0xf7, 0x28, 0x49,
+};
+static const unsigned char kat3138_addinpr1[] = {
+ 0x95, 0xc0, 0x3a, 0x84, 0xad, 0x64, 0xd8, 0x34, 0xc9, 0xa4, 0x64, 0x46,
+ 0xd6, 0xa4, 0xec, 0xc9, 0xc2, 0x58, 0xcd, 0xee, 0x8d, 0xd2, 0x80, 0x18,
+ 0x65, 0x66, 0x73, 0x99, 0x3e, 0x0a, 0x9a, 0x87,
+};
+static const unsigned char kat3138_entropyinpr2[] = {
+ 0x57, 0x1e, 0x54, 0xa3, 0xe9, 0x2c, 0x4c, 0xdb, 0xb4, 0x47, 0xcb, 0x0e,
+ 0x1b, 0x43, 0xdd, 0xb3, 0x21, 0xb6, 0x25, 0x4a, 0xb3, 0x7c, 0x11, 0xc1,
+};
+static const unsigned char kat3138_addinpr2[] = {
+ 0x8f, 0xec, 0x79, 0x4c, 0x50, 0xf3, 0x32, 0x0a, 0xe1, 0x82, 0x63, 0x77,
+ 0xcd, 0xd5, 0xfb, 0x23, 0x3e, 0x70, 0xaa, 0xae, 0x90, 0xcc, 0x2c, 0xa6,
+ 0x7b, 0x86, 0x2f, 0x6e, 0xf0, 0xa6, 0xfa, 0xfc,
+};
+static const unsigned char kat3138_retbits[] = {
+ 0xc5, 0x01, 0xd2, 0x4a, 0x34, 0x23, 0xdf, 0x05, 0xf0, 0xd6, 0x48, 0x67,
+ 0xc9, 0x32, 0x2c, 0xff, 0x72, 0x2c, 0xf4, 0x0c, 0x20, 0x2c, 0x08, 0xad,
+ 0x88, 0x82, 0x5d, 0x95, 0xdc, 0x7d, 0x46, 0x35, 0xb8, 0xf1, 0x95, 0x88,
+ 0x6a, 0x1a, 0xa7, 0xa6, 0x4b, 0x73, 0xd3, 0x4c, 0x04, 0x03, 0x33, 0xfe,
+ 0xb5, 0xae, 0x0b, 0xae, 0x28, 0x42, 0x7c, 0x66, 0xb8, 0x1b, 0x6d, 0xc0,
+ 0xd9, 0x1e, 0x1f, 0x1a,
+};
+static const struct drbg_kat_pr_true kat3138_t = {
+ 2, kat3138_entropyin, kat3138_nonce, kat3138_persstr,
+ kat3138_entropyinpr1, kat3138_addinpr1, kat3138_entropyinpr2,
+ kat3138_addinpr2, kat3138_retbits
+};
+static const struct drbg_kat kat3138 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3138_t
+};
+
+static const unsigned char kat3139_entropyin[] = {
+ 0xb7, 0xf8, 0x00, 0x1f, 0xde, 0xf0, 0x64, 0xa0, 0x2b, 0x01, 0x12, 0x63,
+ 0xa8, 0x70, 0xfd, 0xb7, 0x8e, 0x58, 0x38, 0xb2, 0xb0, 0x1f, 0x0d, 0x55,
+};
+static const unsigned char kat3139_nonce[] = {
+ 0xe6, 0x5f, 0x13, 0x32, 0x35, 0xa8, 0xb7, 0xa0, 0x08, 0x5a, 0xe6, 0xa4,
+ 0x45, 0xd4, 0x08, 0x0e,
+};
+static const unsigned char kat3139_persstr[] = {0};
+static const unsigned char kat3139_entropyinpr1[] = {
+ 0xb4, 0x8a, 0x23, 0x7c, 0x0d, 0x81, 0xa7, 0xee, 0x2b, 0xd3, 0x8c, 0xf4,
+ 0xde, 0xa8, 0x4a, 0x0c, 0x56, 0xb4, 0x59, 0x5a, 0xa2, 0xa6, 0xd6, 0x7f,
+};
+static const unsigned char kat3139_addinpr1[] = {
+ 0x2d, 0xa3, 0xf9, 0x5a, 0x95, 0x24, 0x44, 0xd5, 0x6a, 0xd5, 0xdf, 0xf3,
+ 0x34, 0x8a, 0x5a, 0x31, 0xc7, 0x2e, 0xc9, 0x79, 0xa1, 0xad, 0x0b, 0xa8,
+ 0x0a, 0xc1, 0x75, 0x1a, 0x4f, 0x7c, 0xe0, 0xc5,
+};
+static const unsigned char kat3139_entropyinpr2[] = {
+ 0x10, 0x81, 0xa9, 0x78, 0xb6, 0x1f, 0x37, 0x03, 0xf3, 0x59, 0xd7, 0x3a,
+ 0xfc, 0x80, 0xb6, 0x05, 0x38, 0x37, 0x6d, 0xef, 0x2d, 0x79, 0xf1, 0x58,
+};
+static const unsigned char kat3139_addinpr2[] = {
+ 0x19, 0x95, 0xbb, 0xff, 0x2f, 0x26, 0xe7, 0x6a, 0x0b, 0x57, 0x6e, 0x92,
+ 0xbc, 0x45, 0x30, 0x54, 0xd3, 0xfd, 0x9d, 0x03, 0x3b, 0xec, 0x84, 0x81,
+ 0x18, 0x22, 0xe3, 0xcd, 0x56, 0x04, 0x5e, 0xd6,
+};
+static const unsigned char kat3139_retbits[] = {
+ 0xf9, 0x71, 0x36, 0x73, 0x8d, 0x53, 0x1c, 0xed, 0x37, 0x99, 0x7a, 0x2b,
+ 0xf4, 0x01, 0xef, 0x00, 0xc2, 0x52, 0xc0, 0x76, 0xa4, 0x31, 0xee, 0xfd,
+ 0x00, 0xda, 0x35, 0xab, 0x7a, 0x42, 0xf8, 0x86, 0xfb, 0xd7, 0x47, 0x1d,
+ 0x6a, 0xfd, 0x3b, 0xae, 0xa2, 0xbe, 0xb5, 0x88, 0x7f, 0x8b, 0x6f, 0xb8,
+ 0x36, 0x63, 0x97, 0x9f, 0xef, 0x6f, 0xd2, 0x35, 0x18, 0xce, 0x26, 0x17,
+ 0xd2, 0xdb, 0x8e, 0x3e,
+};
+static const struct drbg_kat_pr_true kat3139_t = {
+ 3, kat3139_entropyin, kat3139_nonce, kat3139_persstr,
+ kat3139_entropyinpr1, kat3139_addinpr1, kat3139_entropyinpr2,
+ kat3139_addinpr2, kat3139_retbits
+};
+static const struct drbg_kat kat3139 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3139_t
+};
+
+static const unsigned char kat3140_entropyin[] = {
+ 0xe9, 0xba, 0x01, 0x32, 0x2b, 0x24, 0xb5, 0xb2, 0xd1, 0x37, 0xd2, 0xe3,
+ 0x31, 0x50, 0xc6, 0xa1, 0x49, 0x95, 0x8f, 0x8f, 0x4d, 0xc8, 0x6c, 0xe5,
+};
+static const unsigned char kat3140_nonce[] = {
+ 0x4c, 0x72, 0x1a, 0xb7, 0xc6, 0x20, 0xd8, 0x9c, 0x4e, 0x19, 0x64, 0x1d,
+ 0xcf, 0xab, 0x02, 0x58,
+};
+static const unsigned char kat3140_persstr[] = {0};
+static const unsigned char kat3140_entropyinpr1[] = {
+ 0x13, 0x63, 0x3b, 0xf1, 0x64, 0xe6, 0xbe, 0x0d, 0x5e, 0xa1, 0x1d, 0xd3,
+ 0xad, 0x39, 0x00, 0xf6, 0x4e, 0xfe, 0x0e, 0xeb, 0x24, 0xaf, 0x07, 0x86,
+};
+static const unsigned char kat3140_addinpr1[] = {
+ 0xa4, 0x8d, 0x4e, 0x7b, 0xfe, 0x2c, 0xef, 0x8d, 0x20, 0xd1, 0x4b, 0x51,
+ 0xe9, 0x5b, 0xa8, 0xb9, 0x74, 0xa8, 0x36, 0x92, 0x74, 0x82, 0x21, 0xc9,
+ 0x95, 0x5f, 0xce, 0x99, 0x56, 0xe8, 0x3f, 0x37,
+};
+static const unsigned char kat3140_entropyinpr2[] = {
+ 0x67, 0x82, 0xc9, 0x80, 0x76, 0x98, 0x4b, 0x3a, 0x52, 0xf9, 0xad, 0x3a,
+ 0x22, 0x7e, 0x2a, 0xb8, 0x82, 0x1b, 0xf6, 0x64, 0x3d, 0x4f, 0x87, 0x32,
+};
+static const unsigned char kat3140_addinpr2[] = {
+ 0x46, 0xe0, 0x09, 0x42, 0xaa, 0x45, 0xe5, 0x46, 0xd6, 0x63, 0x38, 0x2c,
+ 0xa2, 0x95, 0xa2, 0x74, 0x3a, 0x5b, 0x2c, 0x9d, 0xc9, 0x68, 0x8b, 0x6a,
+ 0x0f, 0x5c, 0x92, 0x99, 0x5f, 0x78, 0x2b, 0x78,
+};
+static const unsigned char kat3140_retbits[] = {
+ 0xcd, 0x21, 0xc2, 0x92, 0xee, 0x22, 0xaa, 0xea, 0xee, 0x15, 0x48, 0x6d,
+ 0x05, 0xf4, 0x0e, 0x97, 0xab, 0xd2, 0x01, 0x23, 0xb7, 0x7e, 0xc6, 0xed,
+ 0xea, 0xdb, 0x4d, 0x1c, 0x7a, 0xf0, 0x72, 0x77, 0xb5, 0xb1, 0xe1, 0x91,
+ 0xaf, 0x54, 0xdb, 0x56, 0x22, 0x26, 0x98, 0x45, 0x14, 0x63, 0xa1, 0xda,
+ 0xef, 0x51, 0x0b, 0x7b, 0x25, 0x9c, 0x34, 0x87, 0x48, 0xbe, 0x3b, 0xd9,
+ 0xfe, 0x5f, 0x65, 0xdd,
+};
+static const struct drbg_kat_pr_true kat3140_t = {
+ 4, kat3140_entropyin, kat3140_nonce, kat3140_persstr,
+ kat3140_entropyinpr1, kat3140_addinpr1, kat3140_entropyinpr2,
+ kat3140_addinpr2, kat3140_retbits
+};
+static const struct drbg_kat kat3140 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3140_t
+};
+
+static const unsigned char kat3141_entropyin[] = {
+ 0xf4, 0x84, 0x33, 0x1f, 0x15, 0x67, 0xcd, 0xf4, 0xf7, 0xb7, 0x92, 0x8b,
+ 0x6c, 0x20, 0x91, 0x4c, 0xb4, 0x74, 0x73, 0x85, 0xe3, 0x3a, 0xff, 0xdb,
+};
+static const unsigned char kat3141_nonce[] = {
+ 0xb7, 0xbd, 0xbe, 0x04, 0x3a, 0x0d, 0x7a, 0x39, 0xa2, 0x02, 0xbc, 0x34,
+ 0x1b, 0xda, 0x24, 0x95,
+};
+static const unsigned char kat3141_persstr[] = {0};
+static const unsigned char kat3141_entropyinpr1[] = {
+ 0xaf, 0x60, 0xb7, 0x3f, 0x09, 0x6c, 0x05, 0xa9, 0x77, 0xea, 0xc9, 0xdc,
+ 0x2b, 0x38, 0xc4, 0x52, 0x4a, 0x5e, 0xf8, 0x14, 0x71, 0x6e, 0x9a, 0x10,
+};
+static const unsigned char kat3141_addinpr1[] = {
+ 0x07, 0x17, 0x5c, 0x3a, 0x18, 0xb4, 0x86, 0x1b, 0x16, 0x9c, 0x3d, 0x80,
+ 0x2e, 0x71, 0x47, 0x55, 0x90, 0x19, 0xf9, 0xf4, 0x30, 0x8a, 0xc0, 0x46,
+ 0x7a, 0x9c, 0x1d, 0x6a, 0xd9, 0x54, 0x3f, 0x62,
+};
+static const unsigned char kat3141_entropyinpr2[] = {
+ 0x23, 0x66, 0xf5, 0x1e, 0x74, 0x8c, 0x35, 0xa0, 0x11, 0xd9, 0x22, 0x48,
+ 0x31, 0x49, 0xd2, 0x65, 0x1a, 0x24, 0xf7, 0x1c, 0x88, 0x12, 0x33, 0xd5,
+};
+static const unsigned char kat3141_addinpr2[] = {
+ 0x0b, 0xff, 0x39, 0xf2, 0xd2, 0xc0, 0xff, 0xbf, 0xde, 0x16, 0x97, 0x38,
+ 0x4a, 0x88, 0xe4, 0x78, 0x5a, 0x2f, 0xd1, 0x25, 0xd0, 0x88, 0x63, 0x49,
+ 0x17, 0xbb, 0x70, 0xe8, 0x50, 0x58, 0x2a, 0x7c,
+};
+static const unsigned char kat3141_retbits[] = {
+ 0xb3, 0xd2, 0x85, 0xbf, 0xb8, 0x55, 0x5b, 0x38, 0x7a, 0x40, 0x9e, 0x30,
+ 0xc3, 0xdd, 0x2b, 0x13, 0x1a, 0xbf, 0x5c, 0x46, 0xe7, 0x95, 0x10, 0xf0,
+ 0x77, 0xd8, 0x52, 0x1a, 0x4c, 0x4f, 0x27, 0xe7, 0xb3, 0x2a, 0xe0, 0xc3,
+ 0xdd, 0x35, 0xfb, 0xa7, 0xfd, 0x60, 0x34, 0xbf, 0x92, 0xc8, 0x26, 0x02,
+ 0x22, 0x69, 0xe8, 0x6d, 0x85, 0x0b, 0xaf, 0x30, 0x88, 0x8d, 0x6d, 0xe3,
+ 0x5c, 0x74, 0x34, 0xe7,
+};
+static const struct drbg_kat_pr_true kat3141_t = {
+ 5, kat3141_entropyin, kat3141_nonce, kat3141_persstr,
+ kat3141_entropyinpr1, kat3141_addinpr1, kat3141_entropyinpr2,
+ kat3141_addinpr2, kat3141_retbits
+};
+static const struct drbg_kat kat3141 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3141_t
+};
+
+static const unsigned char kat3142_entropyin[] = {
+ 0x8c, 0x6d, 0xee, 0x14, 0x56, 0x44, 0x3b, 0x47, 0xfa, 0xf2, 0xba, 0x73,
+ 0x78, 0x02, 0x40, 0xb2, 0xf4, 0x30, 0x20, 0x70, 0x6e, 0xe8, 0x46, 0x5d,
+};
+static const unsigned char kat3142_nonce[] = {
+ 0x15, 0xa1, 0x39, 0xb7, 0x5c, 0x75, 0x52, 0x3f, 0x9b, 0x6f, 0x39, 0xc0,
+ 0x77, 0x58, 0x3e, 0xd6,
+};
+static const unsigned char kat3142_persstr[] = {0};
+static const unsigned char kat3142_entropyinpr1[] = {
+ 0x4c, 0xad, 0x98, 0xf5, 0x4c, 0xae, 0x3e, 0x2c, 0x0c, 0xce, 0xf2, 0xbd,
+ 0x77, 0x2e, 0x97, 0x77, 0x34, 0x49, 0x71, 0xf1, 0xd3, 0xa9, 0x4e, 0xe8,
+};
+static const unsigned char kat3142_addinpr1[] = {
+ 0x5d, 0x68, 0x41, 0x4e, 0xc3, 0x88, 0xaf, 0x07, 0x4c, 0x29, 0x87, 0xe0,
+ 0x52, 0x1a, 0x01, 0x2a, 0xae, 0xd0, 0x1d, 0x4f, 0x88, 0x51, 0x0f, 0xf6,
+ 0x97, 0x16, 0x18, 0x61, 0x43, 0x39, 0x42, 0x31,
+};
+static const unsigned char kat3142_entropyinpr2[] = {
+ 0xdb, 0xf0, 0x04, 0xf6, 0xa3, 0x94, 0x44, 0xbf, 0xd1, 0xf6, 0x18, 0x30,
+ 0xf7, 0x1d, 0xc2, 0xcc, 0x13, 0x82, 0xfd, 0x3e, 0x21, 0xf6, 0x54, 0xe1,
+};
+static const unsigned char kat3142_addinpr2[] = {
+ 0x08, 0x66, 0x75, 0xfd, 0x33, 0x06, 0x01, 0x73, 0xa2, 0xfa, 0xb6, 0xe8,
+ 0x75, 0x1c, 0x8c, 0xcd, 0x89, 0xec, 0x39, 0x75, 0xd2, 0xc4, 0x97, 0x96,
+ 0x17, 0xab, 0xfd, 0xbb, 0xa6, 0x03, 0xc1, 0x20,
+};
+static const unsigned char kat3142_retbits[] = {
+ 0xbb, 0x29, 0x8c, 0x31, 0xae, 0x69, 0xa3, 0x03, 0x51, 0x54, 0x9e, 0x1c,
+ 0x14, 0x24, 0x92, 0x5b, 0x26, 0xc9, 0x82, 0xfc, 0x94, 0x24, 0xc1, 0x43,
+ 0x6c, 0x16, 0xa2, 0xa3, 0x2c, 0xf1, 0xc3, 0x96, 0xe8, 0x5b, 0x7b, 0xac,
+ 0x05, 0xea, 0xa7, 0xc4, 0x9f, 0x8a, 0x5d, 0x67, 0xac, 0xa5, 0x34, 0x6c,
+ 0x57, 0x4d, 0x3f, 0x74, 0x97, 0xb2, 0xbf, 0x32, 0x9d, 0xaf, 0x23, 0xbf,
+ 0xf7, 0x8d, 0xae, 0x66,
+};
+static const struct drbg_kat_pr_true kat3142_t = {
+ 6, kat3142_entropyin, kat3142_nonce, kat3142_persstr,
+ kat3142_entropyinpr1, kat3142_addinpr1, kat3142_entropyinpr2,
+ kat3142_addinpr2, kat3142_retbits
+};
+static const struct drbg_kat kat3142 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3142_t
+};
+
+static const unsigned char kat3143_entropyin[] = {
+ 0xab, 0xa4, 0xe6, 0xae, 0x82, 0x60, 0x59, 0x9a, 0xee, 0x1a, 0x2f, 0x91,
+ 0xdc, 0x92, 0x92, 0x9b, 0x97, 0x45, 0x13, 0xba, 0xaa, 0x59, 0xc9, 0xc8,
+};
+static const unsigned char kat3143_nonce[] = {
+ 0xec, 0xa1, 0xe2, 0x84, 0x3c, 0x70, 0x74, 0xfb, 0x21, 0xb7, 0x91, 0x6f,
+ 0x8c, 0x99, 0x1a, 0x87,
+};
+static const unsigned char kat3143_persstr[] = {0};
+static const unsigned char kat3143_entropyinpr1[] = {
+ 0x2e, 0xfc, 0xc9, 0x6a, 0x3c, 0x53, 0xba, 0x91, 0x53, 0xdf, 0xbc, 0x34,
+ 0xec, 0xf3, 0xa7, 0x16, 0x09, 0x1d, 0x75, 0x92, 0xb8, 0x7f, 0xce, 0x2b,
+};
+static const unsigned char kat3143_addinpr1[] = {
+ 0x8b, 0x79, 0x19, 0xf1, 0x0f, 0xac, 0x64, 0x1a, 0x83, 0x6e, 0x0f, 0xc0,
+ 0xc8, 0xbf, 0xe7, 0x72, 0x60, 0xf6, 0x04, 0xe7, 0x2e, 0x7a, 0xd5, 0x95,
+ 0xb7, 0xdf, 0x58, 0xef, 0x91, 0xb9, 0x04, 0x4b,
+};
+static const unsigned char kat3143_entropyinpr2[] = {
+ 0x82, 0x78, 0x89, 0xaf, 0x9c, 0x41, 0x08, 0x19, 0x77, 0x5b, 0x6e, 0xff,
+ 0xd0, 0x0e, 0x30, 0xa4, 0xcb, 0xe5, 0xe5, 0x36, 0x8b, 0x07, 0x77, 0xd6,
+};
+static const unsigned char kat3143_addinpr2[] = {
+ 0xdc, 0x3b, 0x27, 0xa4, 0xe5, 0x8c, 0xb7, 0x16, 0xfd, 0x69, 0x76, 0x21,
+ 0x8b, 0xa6, 0xe8, 0x4c, 0x06, 0x0d, 0xc6, 0xf2, 0x7f, 0x7a, 0x16, 0x8b,
+ 0xfc, 0xb6, 0xf8, 0x7e, 0x1c, 0x5f, 0x1b, 0x4b,
+};
+static const unsigned char kat3143_retbits[] = {
+ 0xad, 0xbf, 0x0d, 0xe3, 0x15, 0xb0, 0x39, 0xbc, 0x14, 0x4e, 0x30, 0x1c,
+ 0xbf, 0x87, 0x03, 0xc8, 0x85, 0x9f, 0x36, 0x82, 0x6e, 0x66, 0x21, 0x24,
+ 0xaa, 0xcd, 0x80, 0xdc, 0x05, 0x94, 0x25, 0xde, 0x57, 0x55, 0x7d, 0x18,
+ 0x8d, 0x68, 0xc3, 0x4b, 0x6c, 0x64, 0x87, 0xb6, 0x14, 0x19, 0x14, 0x3e,
+ 0x17, 0xae, 0xad, 0x8e, 0x3b, 0xc8, 0xf2, 0x08, 0xd3, 0x3c, 0x7d, 0x08,
+ 0xee, 0x8c, 0x75, 0x0b,
+};
+static const struct drbg_kat_pr_true kat3143_t = {
+ 7, kat3143_entropyin, kat3143_nonce, kat3143_persstr,
+ kat3143_entropyinpr1, kat3143_addinpr1, kat3143_entropyinpr2,
+ kat3143_addinpr2, kat3143_retbits
+};
+static const struct drbg_kat kat3143 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3143_t
+};
+
+static const unsigned char kat3144_entropyin[] = {
+ 0x78, 0xb8, 0x33, 0x33, 0x2d, 0xdf, 0x85, 0x35, 0x61, 0x25, 0x46, 0x2e,
+ 0x4b, 0x40, 0xa5, 0xba, 0xd9, 0x99, 0x2c, 0x11, 0x5a, 0xfe, 0xf8, 0x82,
+};
+static const unsigned char kat3144_nonce[] = {
+ 0x36, 0x03, 0x43, 0x8e, 0x10, 0x40, 0x5c, 0x98, 0x30, 0xcd, 0xab, 0xe0,
+ 0x8c, 0x0b, 0xf3, 0x2e,
+};
+static const unsigned char kat3144_persstr[] = {0};
+static const unsigned char kat3144_entropyinpr1[] = {
+ 0x88, 0xb0, 0x95, 0xad, 0xe0, 0x30, 0x29, 0xc9, 0x1d, 0x85, 0x80, 0xb2,
+ 0x04, 0xb9, 0xbc, 0xa6, 0x09, 0xcb, 0x7a, 0xc4, 0xd5, 0x4b, 0xc0, 0xbc,
+};
+static const unsigned char kat3144_addinpr1[] = {
+ 0xbd, 0xdb, 0x82, 0x3d, 0xac, 0x65, 0x45, 0x37, 0xd0, 0x2c, 0xfc, 0x50,
+ 0x4f, 0xfe, 0x3f, 0x08, 0xf2, 0x9d, 0xee, 0x57, 0xcb, 0xc1, 0x4f, 0x0b,
+ 0xf3, 0x13, 0x96, 0x5c, 0x95, 0x38, 0x3c, 0x58,
+};
+static const unsigned char kat3144_entropyinpr2[] = {
+ 0x80, 0x14, 0x9d, 0xf3, 0x54, 0xfc, 0x9d, 0x21, 0xe5, 0x10, 0x9a, 0x48,
+ 0x7d, 0x9a, 0xe5, 0xce, 0x5c, 0x6a, 0xf4, 0x55, 0xe7, 0x5b, 0xa6, 0x87,
+};
+static const unsigned char kat3144_addinpr2[] = {
+ 0x11, 0xe6, 0x0b, 0x35, 0x2f, 0x30, 0x79, 0xf1, 0xc0, 0x7c, 0x91, 0x43,
+ 0x06, 0x0b, 0xa7, 0x82, 0x70, 0x3b, 0x24, 0x7e, 0x1a, 0xac, 0xa1, 0x91,
+ 0x5e, 0x70, 0x52, 0xfd, 0xd1, 0xf6, 0x7f, 0xbe,
+};
+static const unsigned char kat3144_retbits[] = {
+ 0x42, 0xb2, 0x32, 0x07, 0x7c, 0x5b, 0xec, 0xe8, 0x65, 0x6d, 0xad, 0x73,
+ 0x54, 0x5d, 0xc3, 0x4d, 0xed, 0x73, 0x05, 0xeb, 0x4a, 0xcb, 0xce, 0x0f,
+ 0x66, 0x5e, 0x6b, 0x35, 0x57, 0x07, 0xd1, 0x98, 0x74, 0x65, 0x01, 0x74,
+ 0x1a, 0xf2, 0xa6, 0x1e, 0x70, 0x07, 0x24, 0xf1, 0xe0, 0xcf, 0xf4, 0x76,
+ 0xa0, 0x53, 0x36, 0xc7, 0x1c, 0xcb, 0x2e, 0xf9, 0xea, 0x34, 0xf7, 0x4c,
+ 0x30, 0x05, 0xc0, 0x37,
+};
+static const struct drbg_kat_pr_true kat3144_t = {
+ 8, kat3144_entropyin, kat3144_nonce, kat3144_persstr,
+ kat3144_entropyinpr1, kat3144_addinpr1, kat3144_entropyinpr2,
+ kat3144_addinpr2, kat3144_retbits
+};
+static const struct drbg_kat kat3144 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3144_t
+};
+
+static const unsigned char kat3145_entropyin[] = {
+ 0x2b, 0xd9, 0xbd, 0xe8, 0x69, 0x4e, 0x97, 0xcd, 0x8a, 0x31, 0xfa, 0xeb,
+ 0xd2, 0x55, 0xd2, 0x24, 0xd4, 0x7d, 0x4c, 0x75, 0x6d, 0x46, 0x99, 0x38,
+};
+static const unsigned char kat3145_nonce[] = {
+ 0xec, 0x60, 0xe5, 0x01, 0xba, 0xfd, 0x72, 0x22, 0x1d, 0xf3, 0x57, 0x50,
+ 0x01, 0xc8, 0xb5, 0x94,
+};
+static const unsigned char kat3145_persstr[] = {0};
+static const unsigned char kat3145_entropyinpr1[] = {
+ 0xbd, 0xd5, 0x1d, 0x85, 0x6e, 0xaf, 0x5a, 0x0c, 0xd5, 0xd5, 0xc4, 0xcd,
+ 0x48, 0xb7, 0xd3, 0x8e, 0x58, 0xe3, 0xb1, 0x6a, 0xfc, 0xf7, 0xf9, 0xa3,
+};
+static const unsigned char kat3145_addinpr1[] = {
+ 0x46, 0x91, 0x96, 0x8a, 0x71, 0x30, 0x71, 0x0e, 0x06, 0xf6, 0xe2, 0x18,
+ 0xaf, 0x1f, 0xc7, 0xd9, 0xd1, 0x23, 0x76, 0x4e, 0x6b, 0xc7, 0x72, 0xfe,
+ 0x72, 0x6d, 0x9b, 0x0c, 0x48, 0xf9, 0x1d, 0xde,
+};
+static const unsigned char kat3145_entropyinpr2[] = {
+ 0xf5, 0x2b, 0x17, 0x64, 0x1b, 0x86, 0x1a, 0x4e, 0x0e, 0xcd, 0x65, 0x03,
+ 0x48, 0x5f, 0x4f, 0x44, 0xa9, 0xb3, 0xa8, 0xa8, 0xde, 0xa6, 0x1c, 0x51,
+};
+static const unsigned char kat3145_addinpr2[] = {
+ 0xf1, 0xa1, 0x86, 0x1e, 0x7d, 0x9c, 0xfa, 0x11, 0xff, 0x7d, 0xad, 0xd7,
+ 0xf1, 0xbe, 0xe5, 0xe7, 0x70, 0x0f, 0x41, 0x99, 0xc1, 0x94, 0x98, 0x46,
+ 0x71, 0xea, 0x1a, 0xa0, 0xb9, 0x98, 0xa6, 0x23,
+};
+static const unsigned char kat3145_retbits[] = {
+ 0xce, 0xb5, 0x48, 0x0c, 0x76, 0x99, 0xdb, 0xf6, 0xc5, 0x79, 0xc4, 0xf4,
+ 0x8c, 0xaf, 0x81, 0x23, 0xc0, 0x8c, 0xe4, 0xd8, 0x67, 0x3e, 0xb3, 0x24,
+ 0x14, 0x0f, 0x29, 0xdc, 0x35, 0x83, 0x89, 0x91, 0xd3, 0xca, 0x99, 0xda,
+ 0x2f, 0xdd, 0x6b, 0x0f, 0x74, 0x4e, 0x93, 0x86, 0xf1, 0xb9, 0x77, 0xdf,
+ 0x4c, 0x06, 0x62, 0x9f, 0x16, 0x74, 0x91, 0x60, 0x3d, 0x41, 0xc2, 0x1a,
+ 0xb0, 0xe6, 0x0a, 0xab,
+};
+static const struct drbg_kat_pr_true kat3145_t = {
+ 9, kat3145_entropyin, kat3145_nonce, kat3145_persstr,
+ kat3145_entropyinpr1, kat3145_addinpr1, kat3145_entropyinpr2,
+ kat3145_addinpr2, kat3145_retbits
+};
+static const struct drbg_kat kat3145 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3145_t
+};
+
+static const unsigned char kat3146_entropyin[] = {
+ 0xd7, 0x08, 0x42, 0x82, 0xc2, 0xd2, 0xd1, 0xde, 0x01, 0xb4, 0x36, 0xb3,
+ 0x7f, 0xbd, 0xd3, 0xdd, 0xb3, 0xc4, 0x31, 0x4f, 0x8f, 0xa7, 0x10, 0xf4,
+};
+static const unsigned char kat3146_nonce[] = {
+ 0x7b, 0x9e, 0xcd, 0x49, 0x4f, 0x46, 0xa0, 0x08, 0x32, 0xff, 0x2e, 0xc3,
+ 0x50, 0x86, 0xca, 0xca,
+};
+static const unsigned char kat3146_persstr[] = {0};
+static const unsigned char kat3146_entropyinpr1[] = {
+ 0x68, 0xd0, 0x7b, 0xa4, 0xe7, 0x22, 0x19, 0xe6, 0xb6, 0x46, 0x6a, 0xda,
+ 0x8e, 0x67, 0xea, 0x63, 0x3f, 0xaf, 0x2f, 0x6c, 0x9d, 0x5e, 0x48, 0x15,
+};
+static const unsigned char kat3146_addinpr1[] = {
+ 0x70, 0x0f, 0x54, 0xf4, 0x53, 0xde, 0xca, 0x61, 0x5c, 0x49, 0x51, 0xd1,
+ 0x41, 0xc4, 0xf1, 0x2f, 0x65, 0xfb, 0x7e, 0xbc, 0x9b, 0x14, 0xba, 0x90,
+ 0x05, 0x33, 0x7e, 0x64, 0xb7, 0x2b, 0xaf, 0x99,
+};
+static const unsigned char kat3146_entropyinpr2[] = {
+ 0xeb, 0x77, 0xb0, 0xe9, 0x2d, 0x31, 0xc8, 0x66, 0xc5, 0xc4, 0xa7, 0xf7,
+ 0x6c, 0xb2, 0x74, 0x36, 0x4b, 0x25, 0x78, 0x04, 0xd8, 0xd7, 0xd2, 0x34,
+};
+static const unsigned char kat3146_addinpr2[] = {
+ 0x05, 0xcd, 0x2a, 0x97, 0x5a, 0x5d, 0xfb, 0x98, 0xc1, 0xf1, 0x00, 0x0c,
+ 0xed, 0xe6, 0x2a, 0xba, 0xf0, 0x89, 0x1f, 0x5a, 0x4f, 0xd7, 0x48, 0xb3,
+ 0x24, 0xc0, 0x8a, 0x3d, 0x60, 0x59, 0x5d, 0xb6,
+};
+static const unsigned char kat3146_retbits[] = {
+ 0x29, 0x94, 0xa4, 0xa8, 0x17, 0x3e, 0x62, 0x2f, 0x94, 0xdd, 0x40, 0x1f,
+ 0xe3, 0x7e, 0x77, 0xd4, 0x38, 0xbc, 0x0e, 0x49, 0x46, 0xf6, 0x0e, 0x28,
+ 0x91, 0xc6, 0x9c, 0xc4, 0xa6, 0xa1, 0xf8, 0x9a, 0x64, 0x5e, 0x99, 0x76,
+ 0xd0, 0x2d, 0xee, 0xde, 0xe1, 0x2c, 0x93, 0x29, 0x4b, 0x12, 0xcf, 0x87,
+ 0x03, 0x98, 0xb9, 0x74, 0x41, 0xdb, 0x3a, 0x49, 0x9f, 0x92, 0xd0, 0x45,
+ 0xd4, 0x30, 0x73, 0xbb,
+};
+static const struct drbg_kat_pr_true kat3146_t = {
+ 10, kat3146_entropyin, kat3146_nonce, kat3146_persstr,
+ kat3146_entropyinpr1, kat3146_addinpr1, kat3146_entropyinpr2,
+ kat3146_addinpr2, kat3146_retbits
+};
+static const struct drbg_kat kat3146 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3146_t
+};
+
+static const unsigned char kat3147_entropyin[] = {
+ 0x45, 0x33, 0x48, 0x45, 0x32, 0x45, 0xcc, 0x0a, 0xbd, 0x99, 0x65, 0x94,
+ 0xc2, 0x7e, 0x85, 0xdc, 0x99, 0x61, 0xe0, 0xd2, 0x59, 0x49, 0x68, 0xad,
+};
+static const unsigned char kat3147_nonce[] = {
+ 0x55, 0xca, 0xf8, 0x7a, 0xe6, 0x57, 0x40, 0x8e, 0x15, 0x9b, 0x33, 0xeb,
+ 0xe1, 0x61, 0x8b, 0xcb,
+};
+static const unsigned char kat3147_persstr[] = {0};
+static const unsigned char kat3147_entropyinpr1[] = {
+ 0xd4, 0x67, 0xc3, 0xf4, 0xd7, 0x32, 0x09, 0x7a, 0xd2, 0x27, 0x20, 0xa8,
+ 0x99, 0x9f, 0x4c, 0x50, 0xa6, 0x15, 0xd7, 0x93, 0x6b, 0xab, 0x20, 0x49,
+};
+static const unsigned char kat3147_addinpr1[] = {
+ 0x4b, 0x2a, 0xd8, 0x8f, 0x79, 0x6d, 0x63, 0x8a, 0x0c, 0x0c, 0x39, 0x1a,
+ 0xcb, 0x43, 0xd0, 0xb7, 0x1b, 0xae, 0x91, 0x44, 0xc7, 0x7b, 0x9f, 0xa5,
+ 0xac, 0xa9, 0x4f, 0x5b, 0x3a, 0x56, 0x62, 0x6e,
+};
+static const unsigned char kat3147_entropyinpr2[] = {
+ 0x40, 0xd4, 0x75, 0xa5, 0xf8, 0x81, 0xf8, 0x6d, 0x05, 0xa8, 0xa0, 0x84,
+ 0xeb, 0xb0, 0x6d, 0x34, 0xf0, 0xec, 0xd4, 0xf7, 0x2a, 0x06, 0xa5, 0x1e,
+};
+static const unsigned char kat3147_addinpr2[] = {
+ 0x93, 0x81, 0x7c, 0x69, 0xeb, 0xc2, 0x25, 0xbc, 0x50, 0x3d, 0x95, 0xb1,
+ 0x29, 0x89, 0x97, 0x30, 0xe7, 0x1e, 0x55, 0x91, 0x3c, 0xb0, 0x72, 0x34,
+ 0xa0, 0x7e, 0x9f, 0xec, 0x76, 0x2e, 0x3a, 0x86,
+};
+static const unsigned char kat3147_retbits[] = {
+ 0x70, 0xea, 0x9e, 0xb8, 0xd4, 0x89, 0x8f, 0x21, 0xe0, 0xd0, 0x1b, 0x5c,
+ 0xf3, 0xd1, 0xb9, 0xab, 0x6f, 0xee, 0x03, 0x5f, 0x1b, 0x3a, 0x55, 0x83,
+ 0xb1, 0x10, 0xce, 0xf0, 0x37, 0xbc, 0x2d, 0x69, 0xd5, 0x07, 0x33, 0x23,
+ 0x57, 0x52, 0x30, 0x49, 0x14, 0xa4, 0x50, 0xa5, 0x51, 0x31, 0x8c, 0x05,
+ 0xa3, 0xc0, 0x8b, 0xc5, 0x3b, 0x08, 0xde, 0x82, 0x64, 0xfb, 0x77, 0xdf,
+ 0xe4, 0x1f, 0x2f, 0xce,
+};
+static const struct drbg_kat_pr_true kat3147_t = {
+ 11, kat3147_entropyin, kat3147_nonce, kat3147_persstr,
+ kat3147_entropyinpr1, kat3147_addinpr1, kat3147_entropyinpr2,
+ kat3147_addinpr2, kat3147_retbits
+};
+static const struct drbg_kat kat3147 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3147_t
+};
+
+static const unsigned char kat3148_entropyin[] = {
+ 0xb6, 0x76, 0xfe, 0xab, 0x77, 0x52, 0x4b, 0x0b, 0xc1, 0xed, 0xaa, 0xb1,
+ 0xe4, 0x50, 0x57, 0x40, 0xe1, 0x31, 0x38, 0x15, 0x79, 0xea, 0x0b, 0xb6,
+};
+static const unsigned char kat3148_nonce[] = {
+ 0x05, 0x2a, 0x28, 0xdf, 0xfb, 0xd5, 0xa9, 0x8a, 0x9e, 0xe0, 0xc4, 0xf6,
+ 0xbc, 0xaf, 0xca, 0x9a,
+};
+static const unsigned char kat3148_persstr[] = {0};
+static const unsigned char kat3148_entropyinpr1[] = {
+ 0x9c, 0x5e, 0xe2, 0x91, 0x9c, 0xac, 0xbe, 0x5d, 0x76, 0x3b, 0x8b, 0x94,
+ 0xa3, 0x6b, 0x7c, 0x90, 0x8e, 0x62, 0xe1, 0x35, 0x20, 0x7b, 0x95, 0x1a,
+};
+static const unsigned char kat3148_addinpr1[] = {
+ 0x3e, 0x33, 0x51, 0x71, 0x48, 0xe6, 0x75, 0x40, 0xc1, 0x65, 0x3b, 0x6b,
+ 0x2d, 0x5d, 0x49, 0x62, 0x37, 0xaa, 0xa0, 0xfc, 0x31, 0x55, 0xe8, 0xc6,
+ 0x03, 0xab, 0x82, 0x0b, 0x86, 0xea, 0xae, 0x68,
+};
+static const unsigned char kat3148_entropyinpr2[] = {
+ 0xbd, 0xa0, 0xbf, 0x5b, 0xd5, 0x5c, 0x9a, 0xf0, 0x1d, 0xa9, 0x8b, 0x3c,
+ 0xd5, 0x44, 0x39, 0x03, 0xa7, 0x9a, 0x95, 0x73, 0x5a, 0x09, 0xdc, 0x6b,
+};
+static const unsigned char kat3148_addinpr2[] = {
+ 0x48, 0x1e, 0x5b, 0x69, 0xb3, 0xcb, 0x22, 0x8b, 0x8f, 0xb1, 0xf6, 0x3d,
+ 0x2f, 0x54, 0xbd, 0xbe, 0x44, 0x11, 0xf5, 0x94, 0x40, 0xfc, 0xef, 0xdb,
+ 0xe7, 0x8f, 0xdb, 0xa9, 0x2b, 0xa8, 0x4d, 0xc1,
+};
+static const unsigned char kat3148_retbits[] = {
+ 0xa2, 0x3f, 0xbd, 0x78, 0x56, 0x91, 0x25, 0x04, 0xb4, 0xe8, 0x3f, 0xfc,
+ 0x0d, 0x44, 0x0b, 0x08, 0x27, 0x68, 0x84, 0x37, 0x85, 0x4c, 0x64, 0x6f,
+ 0x54, 0x78, 0x92, 0x48, 0x71, 0xfa, 0x2f, 0xa5, 0x09, 0x1a, 0xea, 0x56,
+ 0xf0, 0x49, 0x18, 0x2b, 0x5c, 0x32, 0x80, 0x57, 0x96, 0x7d, 0xdd, 0x82,
+ 0xe7, 0xc6, 0x53, 0x22, 0xa8, 0x9a, 0x51, 0x99, 0xb3, 0xb2, 0x94, 0xe0,
+ 0xe9, 0x1c, 0x34, 0xd9,
+};
+static const struct drbg_kat_pr_true kat3148_t = {
+ 12, kat3148_entropyin, kat3148_nonce, kat3148_persstr,
+ kat3148_entropyinpr1, kat3148_addinpr1, kat3148_entropyinpr2,
+ kat3148_addinpr2, kat3148_retbits
+};
+static const struct drbg_kat kat3148 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3148_t
+};
+
+static const unsigned char kat3149_entropyin[] = {
+ 0x28, 0x10, 0xc0, 0x46, 0xde, 0x02, 0xc1, 0x58, 0x29, 0x90, 0x27, 0xb5,
+ 0x83, 0xdd, 0x8d, 0x48, 0x77, 0x6f, 0xec, 0xa8, 0x17, 0x7d, 0xbf, 0x2a,
+};
+static const unsigned char kat3149_nonce[] = {
+ 0x7c, 0xa3, 0x17, 0x00, 0xe8, 0xa2, 0x2a, 0xcf, 0x1b, 0x2d, 0x03, 0x29,
+ 0xb8, 0xe9, 0x8b, 0xc5,
+};
+static const unsigned char kat3149_persstr[] = {0};
+static const unsigned char kat3149_entropyinpr1[] = {
+ 0x24, 0x44, 0xb0, 0x96, 0xfe, 0x74, 0x54, 0x08, 0x53, 0x2a, 0x37, 0xc9,
+ 0x91, 0x36, 0x57, 0xa7, 0xe4, 0x9a, 0x8a, 0x94, 0x90, 0xc9, 0xd4, 0x12,
+};
+static const unsigned char kat3149_addinpr1[] = {
+ 0x6f, 0x30, 0xad, 0xaa, 0xeb, 0x31, 0xfc, 0xd3, 0x3a, 0x2f, 0xc9, 0x3e,
+ 0x70, 0x30, 0x30, 0x01, 0xb5, 0xc4, 0xbe, 0x95, 0x91, 0xd7, 0x5d, 0x65,
+ 0xf0, 0xd4, 0x7c, 0xf3, 0x15, 0xf0, 0x7f, 0xd4,
+};
+static const unsigned char kat3149_entropyinpr2[] = {
+ 0x76, 0xb6, 0x29, 0x51, 0x7d, 0xda, 0xe4, 0x5e, 0x1b, 0xac, 0xde, 0x01,
+ 0xdc, 0x77, 0x36, 0xd7, 0xf8, 0x72, 0x72, 0xb0, 0x37, 0x17, 0xb2, 0xd4,
+};
+static const unsigned char kat3149_addinpr2[] = {
+ 0x5a, 0xd9, 0x44, 0x81, 0x59, 0xaf, 0xbf, 0xc0, 0xf6, 0x3f, 0x94, 0x45,
+ 0x48, 0x6f, 0xd7, 0x29, 0xcd, 0x33, 0xc2, 0x00, 0xf8, 0xd5, 0x0f, 0xf1,
+ 0x68, 0x29, 0xc1, 0x6f, 0x69, 0x89, 0x9a, 0x86,
+};
+static const unsigned char kat3149_retbits[] = {
+ 0xde, 0x22, 0xd5, 0x6b, 0x74, 0x54, 0xc3, 0x22, 0x4f, 0x4f, 0x63, 0x4a,
+ 0x6c, 0x62, 0xca, 0x87, 0x62, 0x58, 0x8b, 0x92, 0x72, 0x2f, 0xce, 0x67,
+ 0xfc, 0xbb, 0x60, 0xa9, 0xe7, 0xd6, 0x86, 0x28, 0x7c, 0x5b, 0xe1, 0x7a,
+ 0x91, 0xac, 0xdb, 0x9f, 0x79, 0x58, 0x6b, 0xe3, 0x80, 0x49, 0x3f, 0x0e,
+ 0x9a, 0x5a, 0xff, 0x81, 0x5d, 0x62, 0x47, 0xb3, 0xea, 0x9f, 0xc4, 0x08,
+ 0x79, 0xdc, 0x3f, 0x1c,
+};
+static const struct drbg_kat_pr_true kat3149_t = {
+ 13, kat3149_entropyin, kat3149_nonce, kat3149_persstr,
+ kat3149_entropyinpr1, kat3149_addinpr1, kat3149_entropyinpr2,
+ kat3149_addinpr2, kat3149_retbits
+};
+static const struct drbg_kat kat3149 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3149_t
+};
+
+static const unsigned char kat3150_entropyin[] = {
+ 0x66, 0x0e, 0x1a, 0x8d, 0xbd, 0x89, 0xea, 0xad, 0x59, 0xd7, 0xf4, 0xf5,
+ 0x7d, 0x17, 0x1a, 0x29, 0x4b, 0x00, 0x28, 0x0e, 0x2e, 0xff, 0x9f, 0x76,
+};
+static const unsigned char kat3150_nonce[] = {
+ 0xed, 0xc8, 0xe1, 0x49, 0x3f, 0xb4, 0x7c, 0x47, 0xb0, 0x10, 0x0c, 0xa3,
+ 0xff, 0x26, 0x49, 0xe9,
+};
+static const unsigned char kat3150_persstr[] = {0};
+static const unsigned char kat3150_entropyinpr1[] = {
+ 0x00, 0x60, 0x8b, 0x02, 0x01, 0x99, 0x25, 0x87, 0xfb, 0x46, 0x76, 0x1f,
+ 0x02, 0x99, 0x16, 0x4b, 0x6f, 0xa0, 0xee, 0x50, 0x4c, 0x45, 0x34, 0x5a,
+};
+static const unsigned char kat3150_addinpr1[] = {
+ 0x26, 0xd6, 0x26, 0x6a, 0x6c, 0x28, 0xe7, 0x15, 0x9f, 0xe1, 0x7f, 0xcc,
+ 0x79, 0x06, 0x7c, 0xe5, 0xf1, 0x67, 0xe7, 0xd1, 0xb2, 0x8e, 0x17, 0xa8,
+ 0xbe, 0x96, 0x0d, 0x3e, 0x86, 0x2d, 0x42, 0x95,
+};
+static const unsigned char kat3150_entropyinpr2[] = {
+ 0x22, 0x9a, 0x06, 0x20, 0xa0, 0x4c, 0x7f, 0xca, 0x11, 0x1a, 0xe3, 0xc5,
+ 0x3c, 0xa7, 0xcf, 0xd5, 0x04, 0x5a, 0x34, 0x9c, 0x14, 0xcb, 0xa7, 0x0f,
+};
+static const unsigned char kat3150_addinpr2[] = {
+ 0x2c, 0xbb, 0xdf, 0x8c, 0x85, 0x57, 0x77, 0x0e, 0x58, 0x9c, 0x59, 0x3c,
+ 0x05, 0x10, 0xe5, 0x37, 0x26, 0x40, 0x72, 0x04, 0x39, 0x8a, 0x24, 0x65,
+ 0x93, 0xe3, 0x91, 0xc4, 0x55, 0xd0, 0x7b, 0xf7,
+};
+static const unsigned char kat3150_retbits[] = {
+ 0x22, 0xe1, 0xce, 0x9b, 0xd3, 0xa8, 0x58, 0xae, 0xf3, 0x0b, 0x06, 0x86,
+ 0x72, 0xee, 0x66, 0x51, 0x10, 0x39, 0x63, 0x79, 0x4f, 0x37, 0xd6, 0x4c,
+ 0x1f, 0xa7, 0x63, 0x8c, 0x7c, 0x92, 0x3a, 0x0b, 0x97, 0x58, 0xd1, 0x05,
+ 0x8a, 0xc5, 0x8a, 0xf9, 0xa1, 0x1b, 0xf1, 0x4b, 0xe6, 0x4e, 0xeb, 0x1e,
+ 0xc6, 0x63, 0xdf, 0x57, 0x2a, 0xf4, 0xb0, 0xe1, 0xce, 0x02, 0x18, 0xdc,
+ 0x7c, 0x75, 0x7e, 0xec,
+};
+static const struct drbg_kat_pr_true kat3150_t = {
+ 14, kat3150_entropyin, kat3150_nonce, kat3150_persstr,
+ kat3150_entropyinpr1, kat3150_addinpr1, kat3150_entropyinpr2,
+ kat3150_addinpr2, kat3150_retbits
+};
+static const struct drbg_kat kat3150 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3150_t
+};
+
+static const unsigned char kat3151_entropyin[] = {
+ 0x85, 0x77, 0xcb, 0xf8, 0xbd, 0xaa, 0x31, 0xa1, 0xae, 0x5e, 0x32, 0xea,
+ 0x09, 0xd0, 0xbe, 0xf7, 0x10, 0xea, 0x74, 0x37, 0xe6, 0x7b, 0x68, 0x25,
+};
+static const unsigned char kat3151_nonce[] = {
+ 0x3f, 0x9b, 0xde, 0xb5, 0x6b, 0x6e, 0x5d, 0x0f, 0xba, 0x56, 0x49, 0x40,
+ 0x01, 0xfe, 0x30, 0x7e,
+};
+static const unsigned char kat3151_persstr[] = {
+ 0x4b, 0x5c, 0xd4, 0x97, 0xa4, 0x17, 0xa2, 0x98, 0x7d, 0xed, 0xf2, 0x36,
+ 0xea, 0xff, 0xd2, 0xc3, 0x15, 0xa6, 0x5b, 0x76, 0x1b, 0x2b, 0x68, 0xc3,
+ 0xf4, 0xb1, 0x9e, 0x40, 0x93, 0xb4, 0xc8, 0xc2,
+};
+static const unsigned char kat3151_entropyinpr1[] = {
+ 0x31, 0xd4, 0xba, 0xaf, 0x6c, 0x27, 0xd9, 0x67, 0xe8, 0xef, 0xc8, 0x54,
+ 0x79, 0xdb, 0x4d, 0x01, 0x28, 0x55, 0xca, 0x68, 0x0f, 0x87, 0x59, 0x80,
+};
+static const unsigned char kat3151_addinpr1[] = {0};
+static const unsigned char kat3151_entropyinpr2[] = {
+ 0x37, 0x74, 0x91, 0x2d, 0x4c, 0x79, 0xfa, 0xa6, 0xd3, 0xc9, 0x80, 0xa1,
+ 0x0d, 0xff, 0x18, 0xec, 0xf6, 0xa0, 0x68, 0xe6, 0x83, 0xe1, 0x9b, 0x1f,
+};
+static const unsigned char kat3151_addinpr2[] = {0};
+static const unsigned char kat3151_retbits[] = {
+ 0xa3, 0x91, 0x52, 0x5b, 0x20, 0x34, 0x0e, 0x0f, 0x0f, 0xcc, 0xf0, 0x37,
+ 0x60, 0xbb, 0x50, 0x95, 0xc2, 0x7a, 0x13, 0x0c, 0x6a, 0x3e, 0x13, 0x4c,
+ 0x2c, 0x10, 0xd5, 0x9e, 0xfe, 0xc1, 0xa4, 0xa6, 0xcb, 0x75, 0x3f, 0x07,
+ 0x22, 0xa5, 0x3b, 0x71, 0x69, 0x85, 0x71, 0x2d, 0xb2, 0x92, 0xb8, 0xeb,
+ 0x8b, 0x03, 0x9c, 0x11, 0xd2, 0x7c, 0x1f, 0xfc, 0x70, 0x9c, 0xa9, 0x9f,
+ 0x81, 0xb7, 0x96, 0xc5,
+};
+static const struct drbg_kat_pr_true kat3151_t = {
+ 0, kat3151_entropyin, kat3151_nonce, kat3151_persstr,
+ kat3151_entropyinpr1, kat3151_addinpr1, kat3151_entropyinpr2,
+ kat3151_addinpr2, kat3151_retbits
+};
+static const struct drbg_kat kat3151 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3151_t
+};
+
+static const unsigned char kat3152_entropyin[] = {
+ 0x63, 0x1e, 0xdc, 0xa8, 0x7f, 0x0f, 0x7f, 0x1a, 0x13, 0xf1, 0xa3, 0xfc,
+ 0xab, 0xb2, 0xc6, 0x66, 0x12, 0xda, 0x94, 0x4d, 0x7b, 0x88, 0x1d, 0x76,
+};
+static const unsigned char kat3152_nonce[] = {
+ 0x0b, 0xba, 0x44, 0xa2, 0xf1, 0xde, 0x09, 0x54, 0x05, 0x66, 0x91, 0xb5,
+ 0x56, 0x57, 0xf3, 0xbf,
+};
+static const unsigned char kat3152_persstr[] = {
+ 0x3a, 0xc5, 0xdc, 0x2d, 0x6a, 0xe2, 0xdd, 0x88, 0xc4, 0x44, 0x14, 0x79,
+ 0x3f, 0x01, 0xba, 0x33, 0x33, 0x79, 0x03, 0x37, 0x01, 0xec, 0xc7, 0x8a,
+ 0xf3, 0xa7, 0x93, 0x65, 0xee, 0xf6, 0x20, 0xbf,
+};
+static const unsigned char kat3152_entropyinpr1[] = {
+ 0xfd, 0x04, 0x77, 0x83, 0x3a, 0xdb, 0xc3, 0x2d, 0x04, 0xe2, 0xea, 0x66,
+ 0x2e, 0xed, 0x88, 0x58, 0xb5, 0xf2, 0xca, 0xd0, 0xb5, 0xc3, 0x89, 0xcc,
+};
+static const unsigned char kat3152_addinpr1[] = {0};
+static const unsigned char kat3152_entropyinpr2[] = {
+ 0x9b, 0x0e, 0x46, 0x39, 0x71, 0x86, 0x21, 0x07, 0x9a, 0xb2, 0x40, 0xfe,
+ 0xc8, 0x26, 0xde, 0x3e, 0x49, 0x8f, 0x7e, 0xcb, 0x3c, 0x12, 0xb0, 0x00,
+};
+static const unsigned char kat3152_addinpr2[] = {0};
+static const unsigned char kat3152_retbits[] = {
+ 0xa0, 0xf2, 0xde, 0xdb, 0x49, 0x76, 0x73, 0xc4, 0xe3, 0xda, 0x0a, 0x7c,
+ 0xb2, 0x1b, 0xe0, 0x02, 0x69, 0xbb, 0xe0, 0x37, 0xd7, 0xd6, 0xd7, 0xf4,
+ 0xad, 0x87, 0xf6, 0xd6, 0x2c, 0xe6, 0x1f, 0x36, 0x5e, 0xdb, 0xec, 0xc3,
+ 0x6b, 0xed, 0xb8, 0xc3, 0xcd, 0xbd, 0xf8, 0x32, 0x85, 0x7c, 0x5f, 0xd6,
+ 0xef, 0xd7, 0x0f, 0x1e, 0x6e, 0xc2, 0xe5, 0xd2, 0xda, 0xc2, 0x5b, 0x01,
+ 0xb6, 0x7e, 0xdc, 0x15,
+};
+static const struct drbg_kat_pr_true kat3152_t = {
+ 1, kat3152_entropyin, kat3152_nonce, kat3152_persstr,
+ kat3152_entropyinpr1, kat3152_addinpr1, kat3152_entropyinpr2,
+ kat3152_addinpr2, kat3152_retbits
+};
+static const struct drbg_kat kat3152 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3152_t
+};
+
+static const unsigned char kat3153_entropyin[] = {
+ 0x42, 0xe3, 0x9a, 0xb9, 0x8f, 0x36, 0x8b, 0xd2, 0xfc, 0x9d, 0xa9, 0xff,
+ 0x93, 0x56, 0xde, 0xe1, 0x71, 0x8f, 0xd2, 0x72, 0xd7, 0xf1, 0xce, 0xc3,
+};
+static const unsigned char kat3153_nonce[] = {
+ 0x80, 0xa2, 0x8d, 0x7b, 0x28, 0xd2, 0xb7, 0xca, 0xd5, 0x96, 0xdd, 0xe7,
+ 0x31, 0x9b, 0x72, 0x81,
+};
+static const unsigned char kat3153_persstr[] = {
+ 0xb1, 0x9e, 0x3d, 0x3b, 0x5b, 0xaf, 0x80, 0x77, 0xc6, 0x21, 0x39, 0xd9,
+ 0x5f, 0x66, 0xa8, 0x66, 0x22, 0xb1, 0xa1, 0x53, 0xf3, 0x7b, 0x77, 0xb0,
+ 0x5b, 0x50, 0x93, 0x0f, 0xf7, 0xa0, 0x0e, 0xcc,
+};
+static const unsigned char kat3153_entropyinpr1[] = {
+ 0x3a, 0xa0, 0xb5, 0x75, 0x27, 0x4a, 0x4e, 0x9d, 0xc1, 0x64, 0x2d, 0xc8,
+ 0x67, 0xef, 0x31, 0x6b, 0xe8, 0x00, 0x07, 0x89, 0x72, 0x86, 0x28, 0xeb,
+};
+static const unsigned char kat3153_addinpr1[] = {0};
+static const unsigned char kat3153_entropyinpr2[] = {
+ 0x72, 0x88, 0xf8, 0xb6, 0xb0, 0xc1, 0xd3, 0xcd, 0x02, 0x0d, 0x1a, 0x13,
+ 0x34, 0xbb, 0x09, 0x38, 0xaf, 0xce, 0x11, 0xb2, 0xd7, 0x7b, 0xc9, 0x96,
+};
+static const unsigned char kat3153_addinpr2[] = {0};
+static const unsigned char kat3153_retbits[] = {
+ 0x12, 0x8f, 0x86, 0x53, 0xfc, 0x4d, 0xf7, 0x8c, 0x0d, 0x4a, 0x73, 0x96,
+ 0x32, 0x73, 0xfa, 0x52, 0xa6, 0x05, 0xe6, 0xd7, 0x3f, 0xe8, 0x91, 0xd4,
+ 0x94, 0x1f, 0xfb, 0x0d, 0x5c, 0x79, 0x9a, 0xab, 0x9b, 0x68, 0x77, 0x26,
+ 0x4c, 0xf9, 0xc0, 0xce, 0xf0, 0x78, 0xc3, 0xf9, 0x84, 0xa3, 0x80, 0x8d,
+ 0xca, 0x42, 0x3c, 0xce, 0xa4, 0x31, 0x60, 0x60, 0x0c, 0xa2, 0x4c, 0xed,
+ 0x56, 0x91, 0xc7, 0x84,
+};
+static const struct drbg_kat_pr_true kat3153_t = {
+ 2, kat3153_entropyin, kat3153_nonce, kat3153_persstr,
+ kat3153_entropyinpr1, kat3153_addinpr1, kat3153_entropyinpr2,
+ kat3153_addinpr2, kat3153_retbits
+};
+static const struct drbg_kat kat3153 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3153_t
+};
+
+static const unsigned char kat3154_entropyin[] = {
+ 0x35, 0xe1, 0x14, 0x4e, 0x6f, 0x14, 0xdb, 0xbb, 0x8e, 0x8f, 0x6e, 0x9f,
+ 0x63, 0x4e, 0xbd, 0xd3, 0x26, 0x42, 0xfb, 0xcb, 0x60, 0xe8, 0xd6, 0x6e,
+};
+static const unsigned char kat3154_nonce[] = {
+ 0x95, 0xe6, 0xd0, 0x42, 0x7f, 0x29, 0x35, 0x69, 0x11, 0x03, 0xf6, 0x0b,
+ 0x6e, 0xad, 0xa8, 0x0d,
+};
+static const unsigned char kat3154_persstr[] = {
+ 0x60, 0x1a, 0xc6, 0x65, 0xd1, 0x0d, 0x79, 0xec, 0x7c, 0xd3, 0x14, 0x40,
+ 0xc8, 0x2c, 0x35, 0x44, 0x36, 0x3f, 0xc5, 0xd1, 0x51, 0x51, 0x25, 0x6b,
+ 0x4e, 0xae, 0xdf, 0xf8, 0x63, 0x70, 0x95, 0xf3,
+};
+static const unsigned char kat3154_entropyinpr1[] = {
+ 0x78, 0xa0, 0x20, 0x2b, 0x12, 0x07, 0x7e, 0x05, 0x9b, 0xd8, 0x5c, 0x58,
+ 0x38, 0x94, 0xfd, 0x50, 0xf1, 0xd0, 0xc8, 0x75, 0xce, 0x1a, 0x5e, 0x03,
+};
+static const unsigned char kat3154_addinpr1[] = {0};
+static const unsigned char kat3154_entropyinpr2[] = {
+ 0x91, 0x60, 0x4e, 0xf1, 0x77, 0x20, 0x1b, 0x01, 0x55, 0x47, 0xbe, 0xfd,
+ 0xf6, 0xf2, 0xe8, 0xe7, 0xe9, 0xdf, 0xad, 0x46, 0x08, 0x62, 0x71, 0x5e,
+};
+static const unsigned char kat3154_addinpr2[] = {0};
+static const unsigned char kat3154_retbits[] = {
+ 0x0d, 0x70, 0xef, 0x58, 0x3a, 0x6c, 0xff, 0x74, 0x73, 0x93, 0x70, 0x37,
+ 0x08, 0x9a, 0x6e, 0xa2, 0x06, 0x03, 0x36, 0xd7, 0xc4, 0x89, 0x90, 0x8b,
+ 0xb6, 0x6d, 0xb0, 0xbf, 0xd5, 0x89, 0x58, 0x15, 0x07, 0x27, 0x71, 0x29,
+ 0xbd, 0x12, 0x86, 0x71, 0xcb, 0x92, 0x8b, 0x5d, 0xb7, 0x76, 0x3d, 0x0c,
+ 0x9f, 0x77, 0xeb, 0x49, 0xd3, 0xfa, 0x3f, 0xef, 0xbc, 0x70, 0xd3, 0x0d,
+ 0xeb, 0x5f, 0xf5, 0x83,
+};
+static const struct drbg_kat_pr_true kat3154_t = {
+ 3, kat3154_entropyin, kat3154_nonce, kat3154_persstr,
+ kat3154_entropyinpr1, kat3154_addinpr1, kat3154_entropyinpr2,
+ kat3154_addinpr2, kat3154_retbits
+};
+static const struct drbg_kat kat3154 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3154_t
+};
+
+static const unsigned char kat3155_entropyin[] = {
+ 0xf0, 0xed, 0x69, 0x95, 0x2a, 0x86, 0x64, 0x57, 0xec, 0x0f, 0x4d, 0x07,
+ 0x54, 0xf1, 0x94, 0x10, 0x1d, 0xfb, 0xff, 0xa0, 0x9f, 0x83, 0x64, 0x8a,
+};
+static const unsigned char kat3155_nonce[] = {
+ 0xf6, 0x46, 0x8d, 0x45, 0x89, 0x86, 0x36, 0x12, 0x3a, 0xe3, 0x41, 0x2b,
+ 0x61, 0x40, 0x9e, 0xad,
+};
+static const unsigned char kat3155_persstr[] = {
+ 0x3b, 0x58, 0xb5, 0xac, 0x95, 0xd8, 0x1b, 0xad, 0x39, 0xcf, 0x14, 0x78,
+ 0x92, 0x0d, 0xa5, 0x01, 0xb6, 0x27, 0x68, 0x54, 0xca, 0x8f, 0x66, 0x83,
+ 0xae, 0x40, 0x0f, 0x56, 0x72, 0xe1, 0xbd, 0x21,
+};
+static const unsigned char kat3155_entropyinpr1[] = {
+ 0xe6, 0x9e, 0xda, 0x2f, 0xf1, 0x12, 0xfe, 0xab, 0x3e, 0xc4, 0x31, 0xcd,
+ 0x1f, 0xfe, 0x82, 0x38, 0xa2, 0x89, 0xd2, 0xb5, 0x21, 0x53, 0x98, 0x55,
+};
+static const unsigned char kat3155_addinpr1[] = {0};
+static const unsigned char kat3155_entropyinpr2[] = {
+ 0x0a, 0x02, 0x4c, 0xe7, 0xe6, 0xb4, 0x31, 0x80, 0x77, 0x9d, 0xdf, 0x09,
+ 0x67, 0x40, 0xd4, 0xd4, 0x0d, 0x79, 0x44, 0x7c, 0xf9, 0xe6, 0xd8, 0xcb,
+};
+static const unsigned char kat3155_addinpr2[] = {0};
+static const unsigned char kat3155_retbits[] = {
+ 0x64, 0x1c, 0xc7, 0xa7, 0x60, 0x6d, 0x1d, 0xf8, 0xc1, 0x47, 0xc7, 0x8d,
+ 0x08, 0x42, 0x06, 0x3a, 0x60, 0xd9, 0x3b, 0x6b, 0x07, 0x13, 0xbd, 0xff,
+ 0xfe, 0xdb, 0x11, 0x04, 0xc1, 0xe2, 0xd8, 0x25, 0x13, 0x61, 0x80, 0xf5,
+ 0xc2, 0xa7, 0x2c, 0xf5, 0xf3, 0x45, 0xbd, 0x79, 0x0b, 0xde, 0xa1, 0xd1,
+ 0x57, 0x36, 0x4c, 0x8a, 0xab, 0x5a, 0x88, 0xa9, 0x49, 0xbd, 0x4d, 0x97,
+ 0xd3, 0x64, 0xd8, 0x0f,
+};
+static const struct drbg_kat_pr_true kat3155_t = {
+ 4, kat3155_entropyin, kat3155_nonce, kat3155_persstr,
+ kat3155_entropyinpr1, kat3155_addinpr1, kat3155_entropyinpr2,
+ kat3155_addinpr2, kat3155_retbits
+};
+static const struct drbg_kat kat3155 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3155_t
+};
+
+static const unsigned char kat3156_entropyin[] = {
+ 0x58, 0x0d, 0x3c, 0xc4, 0x4c, 0xa4, 0xb7, 0x22, 0xd8, 0xe3, 0xf8, 0x30,
+ 0x66, 0xb8, 0x62, 0x0f, 0x24, 0xaf, 0x31, 0x59, 0x7b, 0x3a, 0xfb, 0xa7,
+};
+static const unsigned char kat3156_nonce[] = {
+ 0xca, 0x1e, 0xa0, 0xdb, 0xeb, 0x9c, 0x9e, 0x15, 0xdd, 0xb2, 0x7a, 0x50,
+ 0x9e, 0xe6, 0xb2, 0x08,
+};
+static const unsigned char kat3156_persstr[] = {
+ 0x5b, 0x13, 0xba, 0xc6, 0xda, 0xe5, 0x71, 0x8b, 0xf0, 0x63, 0xcd, 0x3d,
+ 0x81, 0xc8, 0x8b, 0x5e, 0x85, 0x71, 0x8c, 0x36, 0x36, 0x13, 0x39, 0xf2,
+ 0x0d, 0xfc, 0x4b, 0xb1, 0x7f, 0xfa, 0x91, 0x4f,
+};
+static const unsigned char kat3156_entropyinpr1[] = {
+ 0xda, 0x6f, 0xda, 0x3e, 0xe2, 0x82, 0x99, 0xe7, 0xcd, 0xf4, 0xee, 0xa6,
+ 0xd1, 0xd4, 0x30, 0x59, 0xac, 0x7a, 0x8b, 0xb4, 0x94, 0xfc, 0x37, 0xb7,
+};
+static const unsigned char kat3156_addinpr1[] = {0};
+static const unsigned char kat3156_entropyinpr2[] = {
+ 0x3b, 0x78, 0xc7, 0x65, 0xbf, 0x55, 0x73, 0xed, 0x7b, 0x1c, 0xe9, 0x9c,
+ 0xe8, 0x05, 0xa1, 0x3e, 0xf5, 0xe3, 0x0b, 0x2d, 0x09, 0x49, 0x79, 0xf9,
+};
+static const unsigned char kat3156_addinpr2[] = {0};
+static const unsigned char kat3156_retbits[] = {
+ 0xcb, 0x7e, 0x9f, 0x67, 0xec, 0xc9, 0xc5, 0xbf, 0x01, 0xd7, 0x80, 0xf6,
+ 0xf1, 0x8a, 0x34, 0xdb, 0x2d, 0xba, 0x7f, 0x7c, 0x41, 0xb9, 0xbb, 0xb5,
+ 0xe5, 0xd8, 0x26, 0x6a, 0x60, 0xf8, 0x2b, 0x97, 0x57, 0xe7, 0x94, 0x34,
+ 0xfe, 0x74, 0xca, 0x0c, 0x1d, 0x84, 0x80, 0x1e, 0xcd, 0xc0, 0x97, 0x7f,
+ 0x6e, 0x25, 0x5f, 0x22, 0xa9, 0x21, 0x72, 0xa8, 0x62, 0x8b, 0x1b, 0x0c,
+ 0x10, 0xdd, 0x1b, 0xd9,
+};
+static const struct drbg_kat_pr_true kat3156_t = {
+ 5, kat3156_entropyin, kat3156_nonce, kat3156_persstr,
+ kat3156_entropyinpr1, kat3156_addinpr1, kat3156_entropyinpr2,
+ kat3156_addinpr2, kat3156_retbits
+};
+static const struct drbg_kat kat3156 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3156_t
+};
+
+static const unsigned char kat3157_entropyin[] = {
+ 0x9e, 0x89, 0x32, 0xb9, 0xe0, 0x2e, 0xa1, 0x92, 0x7a, 0xf8, 0xca, 0xb7,
+ 0x34, 0x7d, 0x6f, 0x6e, 0x82, 0xfc, 0x0e, 0xbc, 0x26, 0x71, 0x61, 0xf5,
+};
+static const unsigned char kat3157_nonce[] = {
+ 0xd3, 0x3d, 0xd3, 0x6f, 0xc5, 0x58, 0x8c, 0x28, 0x5a, 0x29, 0x35, 0x75,
+ 0xdb, 0x2f, 0xcd, 0x33,
+};
+static const unsigned char kat3157_persstr[] = {
+ 0xb0, 0x65, 0xdc, 0x51, 0x1b, 0x6e, 0x1c, 0xc6, 0x8e, 0x04, 0x79, 0x30,
+ 0xe4, 0xea, 0x2f, 0xc8, 0x6a, 0x31, 0x11, 0x57, 0x7e, 0xe0, 0x51, 0x71,
+ 0x8d, 0x8b, 0xd0, 0x58, 0x81, 0xf1, 0x46, 0xbf,
+};
+static const unsigned char kat3157_entropyinpr1[] = {
+ 0xa3, 0xd3, 0x40, 0xa8, 0x64, 0xbb, 0x16, 0x19, 0x3c, 0x1d, 0x2e, 0x4b,
+ 0xe4, 0x63, 0xf5, 0xee, 0xb8, 0x08, 0x9b, 0x70, 0x9a, 0xc6, 0x8b, 0xd3,
+};
+static const unsigned char kat3157_addinpr1[] = {0};
+static const unsigned char kat3157_entropyinpr2[] = {
+ 0xc2, 0x38, 0xbc, 0xb1, 0x97, 0x19, 0x88, 0x09, 0xda, 0x03, 0x46, 0x4e,
+ 0xfd, 0xe1, 0xdd, 0xa1, 0x53, 0x4b, 0x21, 0x57, 0x19, 0x85, 0xa4, 0x4e,
+};
+static const unsigned char kat3157_addinpr2[] = {0};
+static const unsigned char kat3157_retbits[] = {
+ 0x62, 0xdd, 0x89, 0xe4, 0xda, 0xb9, 0x23, 0x4f, 0xff, 0xbe, 0xaa, 0x6d,
+ 0x60, 0x6e, 0xb1, 0x2a, 0x27, 0x24, 0x7e, 0x88, 0xdb, 0xe6, 0x70, 0x48,
+ 0xdd, 0xa1, 0x57, 0xe5, 0x43, 0x4a, 0xce, 0xad, 0xe4, 0xc2, 0xcd, 0x72,
+ 0x00, 0xd2, 0x7f, 0xd6, 0x33, 0x34, 0xbf, 0x7e, 0xc2, 0x83, 0x84, 0xe8,
+ 0xee, 0xbf, 0xea, 0xce, 0x5c, 0x06, 0xe6, 0x26, 0x01, 0x8a, 0xa3, 0x5d,
+ 0x64, 0xce, 0x90, 0xc6,
+};
+static const struct drbg_kat_pr_true kat3157_t = {
+ 6, kat3157_entropyin, kat3157_nonce, kat3157_persstr,
+ kat3157_entropyinpr1, kat3157_addinpr1, kat3157_entropyinpr2,
+ kat3157_addinpr2, kat3157_retbits
+};
+static const struct drbg_kat kat3157 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3157_t
+};
+
+static const unsigned char kat3158_entropyin[] = {
+ 0x30, 0x77, 0xf7, 0x2e, 0xf5, 0x82, 0x77, 0x4d, 0xf1, 0xb1, 0x64, 0x63,
+ 0x1c, 0xb1, 0x2e, 0x0e, 0x12, 0xae, 0x0d, 0x6b, 0xc1, 0xc6, 0x85, 0x04,
+};
+static const unsigned char kat3158_nonce[] = {
+ 0x6c, 0x75, 0x0f, 0xcb, 0x3c, 0xb7, 0xae, 0xa5, 0xfe, 0x3c, 0xb2, 0xd2,
+ 0xd2, 0x25, 0x0f, 0x30,
+};
+static const unsigned char kat3158_persstr[] = {
+ 0x5d, 0x39, 0x28, 0x2e, 0xcd, 0x47, 0x8c, 0x7f, 0xfd, 0xa5, 0x7e, 0x06,
+ 0x96, 0x57, 0xa3, 0x19, 0xfc, 0x17, 0xb9, 0xef, 0x6c, 0xdc, 0x97, 0xce,
+ 0x8b, 0x0c, 0x95, 0x01, 0x4c, 0xe5, 0xee, 0x40,
+};
+static const unsigned char kat3158_entropyinpr1[] = {
+ 0x07, 0x8b, 0xff, 0x85, 0xe8, 0xd7, 0x09, 0x60, 0xec, 0x59, 0x37, 0x98,
+ 0xf7, 0xc0, 0x2b, 0xee, 0x4f, 0xe0, 0x63, 0xa6, 0xfc, 0x12, 0xbb, 0xf2,
+};
+static const unsigned char kat3158_addinpr1[] = {0};
+static const unsigned char kat3158_entropyinpr2[] = {
+ 0xcf, 0xf2, 0xf9, 0xcf, 0x0d, 0xad, 0x17, 0x32, 0x27, 0xaf, 0x8f, 0xc4,
+ 0xca, 0x71, 0xec, 0xe1, 0xdb, 0x5f, 0x66, 0x52, 0x87, 0x19, 0x85, 0xb7,
+};
+static const unsigned char kat3158_addinpr2[] = {0};
+static const unsigned char kat3158_retbits[] = {
+ 0xf8, 0xb5, 0x5d, 0x0b, 0x76, 0xce, 0x33, 0xfd, 0xce, 0x49, 0x5a, 0xab,
+ 0x1f, 0x1b, 0x28, 0xe8, 0xd0, 0x2a, 0xe1, 0x0d, 0x3d, 0x66, 0x82, 0xf8,
+ 0x44, 0xef, 0xb9, 0xa2, 0xda, 0x62, 0x59, 0xb3, 0x01, 0x1f, 0x82, 0xd0,
+ 0x4f, 0x33, 0xda, 0x53, 0x7e, 0x29, 0xa9, 0xa7, 0x13, 0x58, 0x6f, 0xb9,
+ 0xe9, 0x9d, 0x9e, 0x22, 0x0f, 0x87, 0xf7, 0xb0, 0xd5, 0x0e, 0x5c, 0x78,
+ 0xc9, 0x12, 0x0b, 0x9a,
+};
+static const struct drbg_kat_pr_true kat3158_t = {
+ 7, kat3158_entropyin, kat3158_nonce, kat3158_persstr,
+ kat3158_entropyinpr1, kat3158_addinpr1, kat3158_entropyinpr2,
+ kat3158_addinpr2, kat3158_retbits
+};
+static const struct drbg_kat kat3158 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3158_t
+};
+
+static const unsigned char kat3159_entropyin[] = {
+ 0x36, 0x70, 0x2c, 0x7b, 0x79, 0x44, 0xd5, 0xf1, 0x4a, 0x2c, 0x81, 0x41,
+ 0x00, 0x4d, 0x7f, 0x96, 0x50, 0xff, 0x82, 0xc3, 0xd3, 0x03, 0x0c, 0x89,
+};
+static const unsigned char kat3159_nonce[] = {
+ 0x24, 0x77, 0x3e, 0xf4, 0x4a, 0xbf, 0x07, 0xab, 0x1c, 0x92, 0x3a, 0xe3,
+ 0xde, 0x47, 0x84, 0x90,
+};
+static const unsigned char kat3159_persstr[] = {
+ 0x02, 0x1d, 0x48, 0x18, 0xd5, 0xb1, 0x71, 0x7f, 0xa6, 0xd0, 0x8e, 0xc6,
+ 0x7f, 0x77, 0xec, 0xb0, 0xe6, 0xf4, 0x6c, 0x42, 0xc0, 0x32, 0x80, 0xa2,
+ 0xd8, 0x57, 0x68, 0x1c, 0xbf, 0x6a, 0xd3, 0x56,
+};
+static const unsigned char kat3159_entropyinpr1[] = {
+ 0xa1, 0x56, 0x10, 0xd6, 0xf3, 0xa7, 0x1c, 0x2e, 0x70, 0x73, 0x68, 0x99,
+ 0x50, 0x3e, 0xa6, 0x2f, 0xea, 0x2b, 0x78, 0xeb, 0x64, 0x9d, 0xc4, 0xa0,
+};
+static const unsigned char kat3159_addinpr1[] = {0};
+static const unsigned char kat3159_entropyinpr2[] = {
+ 0xb6, 0xdc, 0x27, 0x0c, 0xc1, 0xca, 0x29, 0xc0, 0xff, 0xb6, 0x87, 0x99,
+ 0xaa, 0x36, 0x05, 0x0f, 0x38, 0xd9, 0xf9, 0x4c, 0x65, 0xe3, 0x24, 0x7a,
+};
+static const unsigned char kat3159_addinpr2[] = {0};
+static const unsigned char kat3159_retbits[] = {
+ 0x68, 0xc2, 0x1f, 0xa9, 0x0b, 0x85, 0x95, 0x63, 0x61, 0xae, 0x9a, 0xc6,
+ 0xdf, 0xbc, 0xae, 0xc0, 0x22, 0x12, 0x1a, 0x45, 0xa5, 0x68, 0x61, 0x90,
+ 0x49, 0x6b, 0x98, 0x36, 0xed, 0xdd, 0x8e, 0xcd, 0x8b, 0xfb, 0xe0, 0xab,
+ 0x68, 0xb1, 0x2b, 0xee, 0x0e, 0x5b, 0x2c, 0x4d, 0x08, 0xaf, 0x57, 0xf2,
+ 0xbe, 0x97, 0xf8, 0x12, 0xe1, 0x97, 0xb2, 0xb0, 0xcc, 0x05, 0x8c, 0x56,
+ 0x29, 0x66, 0x0c, 0x9e,
+};
+static const struct drbg_kat_pr_true kat3159_t = {
+ 8, kat3159_entropyin, kat3159_nonce, kat3159_persstr,
+ kat3159_entropyinpr1, kat3159_addinpr1, kat3159_entropyinpr2,
+ kat3159_addinpr2, kat3159_retbits
+};
+static const struct drbg_kat kat3159 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3159_t
+};
+
+static const unsigned char kat3160_entropyin[] = {
+ 0x9a, 0x29, 0x52, 0xe4, 0xdc, 0xd6, 0x89, 0x29, 0xea, 0x72, 0xad, 0x0e,
+ 0xc6, 0x1f, 0x4d, 0xe1, 0x86, 0xd6, 0x3e, 0xd3, 0x72, 0xc6, 0xce, 0x3b,
+};
+static const unsigned char kat3160_nonce[] = {
+ 0x16, 0x9d, 0x88, 0x1e, 0xaa, 0x5c, 0xfc, 0xec, 0xf1, 0x1f, 0x0d, 0x46,
+ 0xf7, 0x7b, 0x8c, 0x2a,
+};
+static const unsigned char kat3160_persstr[] = {
+ 0xd1, 0x9f, 0x78, 0x0c, 0x95, 0xbf, 0xa5, 0x8c, 0x41, 0x06, 0xb9, 0x77,
+ 0x36, 0x29, 0x2d, 0x83, 0x39, 0x9d, 0x5d, 0x6c, 0x13, 0x3b, 0x9a, 0x45,
+ 0xa4, 0xf7, 0x0f, 0x44, 0x92, 0x79, 0xea, 0x52,
+};
+static const unsigned char kat3160_entropyinpr1[] = {
+ 0xce, 0xeb, 0xf0, 0x72, 0xcb, 0xd7, 0x2a, 0x0b, 0x5c, 0x78, 0x44, 0x00,
+ 0xa6, 0x8a, 0x90, 0x71, 0xb4, 0x11, 0x20, 0x0a, 0x9c, 0x39, 0x13, 0x0a,
+};
+static const unsigned char kat3160_addinpr1[] = {0};
+static const unsigned char kat3160_entropyinpr2[] = {
+ 0x48, 0x00, 0x52, 0xba, 0xb4, 0x7b, 0xe0, 0x91, 0x50, 0xe4, 0x88, 0xb9,
+ 0x8d, 0x61, 0xea, 0x9b, 0xee, 0x55, 0xc4, 0x50, 0xa1, 0x6b, 0x88, 0x40,
+};
+static const unsigned char kat3160_addinpr2[] = {0};
+static const unsigned char kat3160_retbits[] = {
+ 0x61, 0x88, 0xd6, 0xbd, 0x14, 0x57, 0x8b, 0xb1, 0xfe, 0x75, 0xbd, 0x19,
+ 0x6e, 0x91, 0x2f, 0x02, 0x16, 0x06, 0xc9, 0x8c, 0x01, 0x19, 0x25, 0x9f,
+ 0xdc, 0x84, 0xe3, 0x60, 0xdd, 0x18, 0x1b, 0x2b, 0xd2, 0x61, 0x60, 0xc7,
+ 0x84, 0x1c, 0x80, 0xa2, 0x76, 0x6a, 0x0c, 0xf0, 0x6f, 0xcc, 0xc6, 0x9e,
+ 0xd1, 0xe3, 0x4a, 0xf3, 0xe3, 0x42, 0x70, 0x85, 0x76, 0xf2, 0xb2, 0x81,
+ 0x02, 0xf0, 0x81, 0xf0,
+};
+static const struct drbg_kat_pr_true kat3160_t = {
+ 9, kat3160_entropyin, kat3160_nonce, kat3160_persstr,
+ kat3160_entropyinpr1, kat3160_addinpr1, kat3160_entropyinpr2,
+ kat3160_addinpr2, kat3160_retbits
+};
+static const struct drbg_kat kat3160 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3160_t
+};
+
+static const unsigned char kat3161_entropyin[] = {
+ 0x3e, 0x8c, 0x45, 0xe0, 0x4c, 0x62, 0x36, 0x7f, 0xeb, 0xa4, 0xd1, 0xed,
+ 0xdd, 0xaf, 0xe5, 0x33, 0xd7, 0xac, 0xc3, 0x4f, 0xc3, 0xcb, 0xc4, 0x99,
+};
+static const unsigned char kat3161_nonce[] = {
+ 0x3a, 0xca, 0x2c, 0xa6, 0x97, 0x0e, 0x00, 0xea, 0xce, 0x90, 0xda, 0x41,
+ 0x37, 0x1c, 0x0f, 0x78,
+};
+static const unsigned char kat3161_persstr[] = {
+ 0x95, 0x16, 0xf4, 0xc3, 0x83, 0xd4, 0x55, 0x1c, 0x71, 0x9c, 0x8a, 0x0f,
+ 0xe4, 0xb0, 0x4e, 0xe1, 0x17, 0x40, 0x1e, 0xe2, 0x74, 0x6f, 0xae, 0x80,
+ 0xed, 0x3d, 0x5a, 0xd3, 0x81, 0xf2, 0xc2, 0x14,
+};
+static const unsigned char kat3161_entropyinpr1[] = {
+ 0xc8, 0x5b, 0xee, 0x8b, 0x48, 0x0a, 0xe6, 0xde, 0xbf, 0xdb, 0xd3, 0x93,
+ 0xb0, 0x48, 0xdf, 0x8c, 0x47, 0x29, 0xe1, 0xd4, 0x77, 0x4c, 0x52, 0x35,
+};
+static const unsigned char kat3161_addinpr1[] = {0};
+static const unsigned char kat3161_entropyinpr2[] = {
+ 0x5a, 0x6a, 0x0d, 0x2b, 0xab, 0x63, 0xf9, 0x8f, 0xe4, 0x26, 0x04, 0xcb,
+ 0xe7, 0xb5, 0x0a, 0x44, 0x3c, 0x0c, 0xd0, 0x83, 0xf6, 0xd9, 0x92, 0x9e,
+};
+static const unsigned char kat3161_addinpr2[] = {0};
+static const unsigned char kat3161_retbits[] = {
+ 0x5b, 0x17, 0x2d, 0xa2, 0x61, 0x37, 0x0f, 0xa0, 0xde, 0xb4, 0xdb, 0x52,
+ 0x1b, 0x56, 0xf3, 0xe2, 0xf0, 0xd6, 0x89, 0x6a, 0x68, 0x71, 0xcc, 0xeb,
+ 0x7d, 0xdb, 0xb4, 0xa6, 0x9d, 0xea, 0x55, 0x2e, 0x9d, 0xda, 0xf7, 0x57,
+ 0x22, 0x5b, 0x19, 0x81, 0xf6, 0x9b, 0x1d, 0xfa, 0x62, 0x54, 0xf3, 0x53,
+ 0xdf, 0x4f, 0x7d, 0x05, 0xb8, 0x5c, 0x60, 0x7b, 0x4a, 0x9d, 0xf0, 0x51,
+ 0x1d, 0x06, 0x44, 0xeb,
+};
+static const struct drbg_kat_pr_true kat3161_t = {
+ 10, kat3161_entropyin, kat3161_nonce, kat3161_persstr,
+ kat3161_entropyinpr1, kat3161_addinpr1, kat3161_entropyinpr2,
+ kat3161_addinpr2, kat3161_retbits
+};
+static const struct drbg_kat kat3161 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3161_t
+};
+
+static const unsigned char kat3162_entropyin[] = {
+ 0x09, 0x0f, 0x64, 0x0a, 0x9b, 0x0d, 0x3e, 0x62, 0x48, 0x11, 0xab, 0x26,
+ 0x30, 0xed, 0xd8, 0xc1, 0x0c, 0xa4, 0x78, 0xfd, 0x1b, 0xfc, 0x5f, 0xe3,
+};
+static const unsigned char kat3162_nonce[] = {
+ 0xa9, 0x42, 0x4c, 0xba, 0x21, 0xd2, 0xa2, 0x65, 0x76, 0xf8, 0x7d, 0xf7,
+ 0x5b, 0xfc, 0xd5, 0x61,
+};
+static const unsigned char kat3162_persstr[] = {
+ 0xd9, 0xfe, 0x77, 0x14, 0x7a, 0x81, 0x0b, 0x26, 0xef, 0xb9, 0xc4, 0x74,
+ 0xc8, 0xfb, 0xd7, 0x67, 0x9f, 0x7d, 0xc5, 0x35, 0x0e, 0x77, 0xc7, 0x2d,
+ 0x89, 0x08, 0x3e, 0x33, 0x18, 0x98, 0xdf, 0x22,
+};
+static const unsigned char kat3162_entropyinpr1[] = {
+ 0xac, 0x25, 0xdf, 0xe0, 0x6d, 0x14, 0x31, 0x67, 0x59, 0x0b, 0xfa, 0x76,
+ 0x21, 0x15, 0x4f, 0x15, 0xd7, 0x32, 0xcb, 0xb2, 0x7b, 0x3a, 0xc6, 0x3d,
+};
+static const unsigned char kat3162_addinpr1[] = {0};
+static const unsigned char kat3162_entropyinpr2[] = {
+ 0x45, 0xe2, 0x31, 0x4a, 0xbe, 0xea, 0xee, 0xfa, 0x30, 0x61, 0x28, 0x59,
+ 0x8b, 0xf7, 0xa5, 0xe1, 0x81, 0x73, 0xa0, 0x3c, 0xc7, 0x3a, 0x08, 0x1c,
+};
+static const unsigned char kat3162_addinpr2[] = {0};
+static const unsigned char kat3162_retbits[] = {
+ 0x78, 0xec, 0xea, 0x0a, 0x35, 0xee, 0x35, 0x3b, 0xb6, 0x79, 0xd9, 0x47,
+ 0x4c, 0xd6, 0xdb, 0x7e, 0xb8, 0xd0, 0x1d, 0x1a, 0x91, 0x1b, 0xa8, 0xd1,
+ 0x1e, 0x01, 0xc4, 0x7f, 0xe2, 0x95, 0xe1, 0x61, 0xda, 0x59, 0xce, 0x4c,
+ 0xc1, 0xca, 0x48, 0xde, 0x88, 0x93, 0x01, 0x04, 0x8d, 0xe5, 0x01, 0x82,
+ 0x7d, 0x0f, 0xc6, 0xe9, 0x31, 0x07, 0x15, 0x62, 0xb8, 0x57, 0xc7, 0x34,
+ 0xa5, 0xf8, 0xde, 0xe4,
+};
+static const struct drbg_kat_pr_true kat3162_t = {
+ 11, kat3162_entropyin, kat3162_nonce, kat3162_persstr,
+ kat3162_entropyinpr1, kat3162_addinpr1, kat3162_entropyinpr2,
+ kat3162_addinpr2, kat3162_retbits
+};
+static const struct drbg_kat kat3162 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3162_t
+};
+
+static const unsigned char kat3163_entropyin[] = {
+ 0xb9, 0x87, 0x40, 0x54, 0x7d, 0xff, 0x13, 0x97, 0x15, 0x1c, 0x16, 0x5f,
+ 0x37, 0x28, 0x49, 0xf1, 0x17, 0x75, 0x69, 0x65, 0xac, 0x75, 0x28, 0x10,
+};
+static const unsigned char kat3163_nonce[] = {
+ 0x94, 0xab, 0xae, 0x19, 0xd3, 0x6c, 0x2d, 0x83, 0x80, 0x1f, 0x06, 0x0f,
+ 0x39, 0x2d, 0x70, 0x72,
+};
+static const unsigned char kat3163_persstr[] = {
+ 0xbf, 0x82, 0x6e, 0x1e, 0xfc, 0x49, 0x72, 0x21, 0x17, 0x09, 0x47, 0xee,
+ 0xda, 0x1c, 0x1b, 0x3b, 0x91, 0xaa, 0x31, 0x8d, 0x9e, 0x5c, 0xfc, 0x29,
+ 0x22, 0x6b, 0x2b, 0xe2, 0xd7, 0x4e, 0x5f, 0x29,
+};
+static const unsigned char kat3163_entropyinpr1[] = {
+ 0xeb, 0x43, 0xb1, 0x51, 0x5c, 0xc6, 0x1a, 0xe2, 0xf7, 0x0a, 0xb1, 0xed,
+ 0x71, 0xef, 0x62, 0x2a, 0xba, 0x9c, 0x8a, 0x97, 0x7d, 0x0a, 0x02, 0xc3,
+};
+static const unsigned char kat3163_addinpr1[] = {0};
+static const unsigned char kat3163_entropyinpr2[] = {
+ 0x39, 0x3c, 0xdf, 0x4d, 0xc8, 0x3c, 0x36, 0xe9, 0xd7, 0xd0, 0x48, 0x7a,
+ 0x16, 0xd4, 0x2d, 0x76, 0xfc, 0x8b, 0xe5, 0xf4, 0x1c, 0xf9, 0x85, 0x57,
+};
+static const unsigned char kat3163_addinpr2[] = {0};
+static const unsigned char kat3163_retbits[] = {
+ 0x62, 0xd7, 0xff, 0xc0, 0xba, 0x63, 0x26, 0x0b, 0x05, 0x3d, 0x45, 0xc6,
+ 0xce, 0x50, 0xb1, 0x1e, 0xca, 0x61, 0x43, 0x84, 0xb5, 0xb5, 0x74, 0x6b,
+ 0x77, 0xcf, 0x42, 0xa9, 0x38, 0xb0, 0x3a, 0xa8, 0xd5, 0xf1, 0x83, 0xd6,
+ 0xc0, 0xf8, 0x15, 0x14, 0x9c, 0x98, 0xa5, 0xc8, 0x51, 0xe3, 0xa3, 0x60,
+ 0x25, 0xf4, 0xbf, 0x64, 0x00, 0xce, 0xab, 0x92, 0x04, 0x95, 0x5d, 0xdb,
+ 0xeb, 0xe1, 0x3e, 0xd4,
+};
+static const struct drbg_kat_pr_true kat3163_t = {
+ 12, kat3163_entropyin, kat3163_nonce, kat3163_persstr,
+ kat3163_entropyinpr1, kat3163_addinpr1, kat3163_entropyinpr2,
+ kat3163_addinpr2, kat3163_retbits
+};
+static const struct drbg_kat kat3163 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3163_t
+};
+
+static const unsigned char kat3164_entropyin[] = {
+ 0x36, 0x4f, 0xb7, 0xde, 0x5e, 0x00, 0x73, 0xca, 0x1f, 0x49, 0x36, 0x85,
+ 0x2a, 0x08, 0x34, 0x9e, 0x0b, 0x78, 0x54, 0xc5, 0xc9, 0x10, 0x63, 0x04,
+};
+static const unsigned char kat3164_nonce[] = {
+ 0x1c, 0x46, 0x2b, 0xbb, 0x27, 0x96, 0xa5, 0xb6, 0x6b, 0x1c, 0xa9, 0xf6,
+ 0xd5, 0xfc, 0x68, 0xd2,
+};
+static const unsigned char kat3164_persstr[] = {
+ 0x84, 0x66, 0x01, 0xe3, 0xec, 0x64, 0x27, 0x50, 0xad, 0xc5, 0x43, 0xbe,
+ 0x6a, 0x5d, 0x56, 0x74, 0x17, 0x18, 0xed, 0xc3, 0x74, 0x0c, 0xdb, 0xc3,
+ 0x54, 0x59, 0xa8, 0xc7, 0xe8, 0x8b, 0x62, 0x88,
+};
+static const unsigned char kat3164_entropyinpr1[] = {
+ 0xda, 0xcd, 0x11, 0x94, 0x6f, 0xc4, 0x2c, 0x12, 0x92, 0x18, 0x48, 0x6e,
+ 0x17, 0xe4, 0xe5, 0xf3, 0x18, 0xa9, 0x42, 0xbb, 0x58, 0x9f, 0x9f, 0x20,
+};
+static const unsigned char kat3164_addinpr1[] = {0};
+static const unsigned char kat3164_entropyinpr2[] = {
+ 0x3a, 0xab, 0xa8, 0x4e, 0x01, 0xfa, 0xa9, 0x2d, 0xf1, 0x9b, 0xd0, 0x2d,
+ 0xbe, 0x03, 0xf3, 0x03, 0x94, 0x90, 0x0a, 0x6b, 0x7d, 0x23, 0x35, 0x16,
+};
+static const unsigned char kat3164_addinpr2[] = {0};
+static const unsigned char kat3164_retbits[] = {
+ 0xb2, 0x20, 0x73, 0x40, 0x23, 0x61, 0x00, 0x46, 0x83, 0x20, 0x59, 0x98,
+ 0x79, 0x67, 0xa8, 0xbf, 0x94, 0x60, 0x05, 0x34, 0x34, 0xd1, 0x4e, 0xc7,
+ 0xf6, 0xe8, 0x14, 0x18, 0x5a, 0x1d, 0xd1, 0x99, 0x36, 0x97, 0x77, 0x6f,
+ 0x36, 0xef, 0xb5, 0x57, 0x06, 0x09, 0xb8, 0xd6, 0xbb, 0x04, 0x57, 0x4b,
+ 0xbd, 0x1e, 0xc3, 0x16, 0xcb, 0xb6, 0x05, 0xf0, 0x55, 0xd8, 0x3b, 0x7d,
+ 0xa8, 0xea, 0xad, 0xd9,
+};
+static const struct drbg_kat_pr_true kat3164_t = {
+ 13, kat3164_entropyin, kat3164_nonce, kat3164_persstr,
+ kat3164_entropyinpr1, kat3164_addinpr1, kat3164_entropyinpr2,
+ kat3164_addinpr2, kat3164_retbits
+};
+static const struct drbg_kat kat3164 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3164_t
+};
+
+static const unsigned char kat3165_entropyin[] = {
+ 0xa5, 0xfb, 0x66, 0x93, 0xc4, 0x1e, 0xa3, 0x32, 0x4d, 0x14, 0x18, 0x81,
+ 0xd8, 0xe4, 0x7c, 0x2e, 0x61, 0xcd, 0xf4, 0x51, 0xee, 0x13, 0x8e, 0xb7,
+};
+static const unsigned char kat3165_nonce[] = {
+ 0x2d, 0x8c, 0x24, 0xfb, 0xa2, 0xa7, 0xac, 0x7f, 0x33, 0x94, 0x84, 0x13,
+ 0xa6, 0xb5, 0x3a, 0x3e,
+};
+static const unsigned char kat3165_persstr[] = {
+ 0xf9, 0xf2, 0x0e, 0x40, 0xb7, 0xa2, 0x8b, 0x1b, 0xd1, 0x4e, 0x9b, 0x24,
+ 0x39, 0x54, 0x37, 0xa7, 0x5b, 0xa9, 0x3d, 0x40, 0x81, 0xbf, 0xfb, 0x34,
+ 0xa4, 0x2c, 0x85, 0x94, 0xec, 0x5e, 0xd9, 0xc8,
+};
+static const unsigned char kat3165_entropyinpr1[] = {
+ 0xeb, 0x70, 0x05, 0x26, 0x02, 0x06, 0xa8, 0xf7, 0x2f, 0x15, 0xd0, 0x33,
+ 0x54, 0xfb, 0x02, 0x51, 0x0e, 0x0e, 0x38, 0xa3, 0x40, 0xdc, 0xab, 0xb6,
+};
+static const unsigned char kat3165_addinpr1[] = {0};
+static const unsigned char kat3165_entropyinpr2[] = {
+ 0xf5, 0x61, 0xbe, 0x91, 0xf8, 0x7e, 0xff, 0x50, 0xf0, 0x63, 0xf6, 0x1f,
+ 0x90, 0x1b, 0x4a, 0x28, 0x00, 0x11, 0x54, 0x56, 0x07, 0xf7, 0xa5, 0x5e,
+};
+static const unsigned char kat3165_addinpr2[] = {0};
+static const unsigned char kat3165_retbits[] = {
+ 0xaa, 0x31, 0xb3, 0xd6, 0x9e, 0x66, 0x38, 0xde, 0xfc, 0x02, 0x69, 0x89,
+ 0x8b, 0xac, 0x9e, 0x58, 0x42, 0x45, 0xff, 0x06, 0x94, 0x97, 0x78, 0x85,
+ 0x12, 0x53, 0x30, 0xe4, 0xf5, 0xb4, 0x11, 0xd1, 0x51, 0x42, 0x3c, 0xf3,
+ 0x2e, 0x6e, 0x22, 0x56, 0x0c, 0xa5, 0x76, 0xe2, 0xf7, 0x51, 0x0e, 0x5d,
+ 0x88, 0xa8, 0xe3, 0x35, 0xc1, 0x0e, 0xa6, 0x82, 0x4a, 0x6a, 0x72, 0x9a,
+ 0x71, 0x97, 0x24, 0x9c,
+};
+static const struct drbg_kat_pr_true kat3165_t = {
+ 14, kat3165_entropyin, kat3165_nonce, kat3165_persstr,
+ kat3165_entropyinpr1, kat3165_addinpr1, kat3165_entropyinpr2,
+ kat3165_addinpr2, kat3165_retbits
+};
+static const struct drbg_kat kat3165 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3165_t
+};
+
+static const unsigned char kat3166_entropyin[] = {
+ 0x79, 0x38, 0x97, 0x57, 0x62, 0xfd, 0x99, 0xad, 0x03, 0x8b, 0xa9, 0xe3,
+ 0x8f, 0x3e, 0xee, 0x4d, 0xf2, 0x39, 0xd8, 0x97, 0xce, 0x96, 0xea, 0x01,
+};
+static const unsigned char kat3166_nonce[] = {
+ 0xe1, 0xfe, 0x2b, 0xde, 0xba, 0xa8, 0x1a, 0x17, 0x5d, 0x92, 0xe6, 0xff,
+ 0xae, 0xb5, 0x99, 0x1c,
+};
+static const unsigned char kat3166_persstr[] = {
+ 0x82, 0x72, 0xd8, 0x10, 0x6d, 0x76, 0xd0, 0xeb, 0xcc, 0x22, 0xdd, 0x0a,
+ 0xdc, 0x7f, 0x4b, 0x7e, 0xc9, 0x32, 0x68, 0xd0, 0x1a, 0x16, 0x19, 0xfe,
+ 0xf0, 0x33, 0x07, 0x1c, 0x41, 0x4a, 0x1b, 0x4a,
+};
+static const unsigned char kat3166_entropyinpr1[] = {
+ 0xad, 0xfb, 0xf7, 0xb5, 0x16, 0xad, 0x09, 0xf1, 0x9c, 0x6a, 0x00, 0xc1,
+ 0x4f, 0x0f, 0x1a, 0xff, 0xfc, 0xa2, 0xb7, 0x24, 0x87, 0x04, 0x86, 0x57,
+};
+static const unsigned char kat3166_addinpr1[] = {
+ 0x0f, 0x80, 0x06, 0x44, 0x3b, 0xea, 0xeb, 0xa5, 0xde, 0x4a, 0x02, 0xb4,
+ 0xd8, 0xeb, 0xca, 0x11, 0x50, 0x73, 0x32, 0x8b, 0x88, 0xde, 0x74, 0xec,
+ 0x4d, 0x00, 0x60, 0x50, 0x9f, 0x5c, 0x43, 0x05,
+};
+static const unsigned char kat3166_entropyinpr2[] = {
+ 0x36, 0x79, 0x44, 0x2d, 0x0f, 0xc4, 0x6a, 0x1a, 0x48, 0x25, 0x0a, 0x99,
+ 0xec, 0xc1, 0x13, 0xc8, 0x72, 0xa8, 0x58, 0x32, 0x98, 0xcd, 0xa4, 0xb5,
+};
+static const unsigned char kat3166_addinpr2[] = {
+ 0x2b, 0xaf, 0xaa, 0x03, 0x8d, 0x8e, 0xad, 0xf0, 0x18, 0x12, 0x56, 0xd6,
+ 0xe0, 0xba, 0xba, 0x75, 0x64, 0x30, 0x7a, 0x19, 0x6c, 0x00, 0xe8, 0x93,
+ 0x8f, 0x9b, 0x1c, 0xea, 0x96, 0x00, 0xde, 0xc9,
+};
+static const unsigned char kat3166_retbits[] = {
+ 0x1f, 0x57, 0x60, 0xe9, 0xde, 0x0f, 0x89, 0x28, 0x77, 0x52, 0x2f, 0x89,
+ 0x63, 0x41, 0xa1, 0x54, 0x45, 0xff, 0xeb, 0x8d, 0x5d, 0x58, 0x73, 0xc6,
+ 0xd5, 0xa0, 0x05, 0x41, 0x77, 0x9d, 0x9f, 0x4e, 0x4f, 0x27, 0x06, 0xaf,
+ 0xee, 0x4e, 0x00, 0xf0, 0xf6, 0x8c, 0xde, 0x67, 0xa0, 0x22, 0xb3, 0x8f,
+ 0x7b, 0x63, 0xfa, 0x27, 0x12, 0x3c, 0x0c, 0xa7, 0x30, 0xea, 0xb0, 0x2b,
+ 0x7b, 0x05, 0x6d, 0x18,
+};
+static const struct drbg_kat_pr_true kat3166_t = {
+ 0, kat3166_entropyin, kat3166_nonce, kat3166_persstr,
+ kat3166_entropyinpr1, kat3166_addinpr1, kat3166_entropyinpr2,
+ kat3166_addinpr2, kat3166_retbits
+};
+static const struct drbg_kat kat3166 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3166_t
+};
+
+static const unsigned char kat3167_entropyin[] = {
+ 0xd9, 0xf4, 0xfb, 0x5d, 0x5a, 0x2a, 0x6a, 0xc8, 0xc9, 0x9a, 0x54, 0x3b,
+ 0x78, 0x5a, 0x3f, 0xbf, 0x6e, 0x5f, 0x48, 0xd5, 0x3e, 0x5c, 0x01, 0x6e,
+};
+static const unsigned char kat3167_nonce[] = {
+ 0x58, 0x1a, 0xaf, 0x6f, 0x0a, 0x7c, 0xa6, 0xb8, 0xb6, 0x67, 0x64, 0xb8,
+ 0xab, 0x1b, 0x9d, 0x3b,
+};
+static const unsigned char kat3167_persstr[] = {
+ 0xf6, 0xa4, 0x70, 0x54, 0x67, 0xe3, 0x72, 0x89, 0xb8, 0xa7, 0xc4, 0xc4,
+ 0xec, 0x0c, 0x58, 0x5f, 0x8d, 0xa5, 0xdc, 0x52, 0x41, 0x85, 0x82, 0x95,
+ 0x3d, 0xfe, 0x8e, 0x63, 0x64, 0xfc, 0xbe, 0xa1,
+};
+static const unsigned char kat3167_entropyinpr1[] = {
+ 0x7d, 0x02, 0x64, 0x98, 0x26, 0x84, 0xe5, 0xfd, 0x9d, 0xe2, 0x83, 0x50,
+ 0xbc, 0x9c, 0x06, 0x38, 0x2c, 0x50, 0x79, 0xb2, 0x59, 0x0e, 0x89, 0x49,
+};
+static const unsigned char kat3167_addinpr1[] = {
+ 0xc6, 0x3a, 0xc5, 0x02, 0x41, 0x43, 0x47, 0xdf, 0xfa, 0xff, 0xf6, 0xf2,
+ 0x58, 0x77, 0x4b, 0xea, 0xdd, 0xb6, 0x44, 0x86, 0xd0, 0x24, 0x96, 0x31,
+ 0xc2, 0x37, 0x66, 0x8d, 0x3d, 0x9d, 0x50, 0x04,
+};
+static const unsigned char kat3167_entropyinpr2[] = {
+ 0xea, 0x49, 0x68, 0x0d, 0xe7, 0x9d, 0x23, 0x96, 0xbb, 0x68, 0x79, 0xcb,
+ 0xd6, 0xb2, 0x41, 0x69, 0x08, 0x38, 0x78, 0x1a, 0x1b, 0x16, 0xbb, 0x2a,
+};
+static const unsigned char kat3167_addinpr2[] = {
+ 0xba, 0x74, 0x1b, 0x1c, 0x17, 0xbf, 0xc7, 0x38, 0xf6, 0xd2, 0xf8, 0x84,
+ 0x3a, 0x3b, 0x1d, 0x9c, 0xc4, 0x99, 0x5f, 0x01, 0x1f, 0x08, 0x98, 0xd2,
+ 0x4a, 0xd3, 0x40, 0x21, 0x59, 0x2f, 0x09, 0xb7,
+};
+static const unsigned char kat3167_retbits[] = {
+ 0x8e, 0xd6, 0xc7, 0x46, 0x5f, 0xf7, 0x10, 0xa4, 0x13, 0xb3, 0xd0, 0x0d,
+ 0x0d, 0x67, 0x0a, 0xb6, 0xd2, 0xbc, 0x91, 0x86, 0x49, 0x27, 0x58, 0x74,
+ 0x71, 0xa6, 0x58, 0xaf, 0xd4, 0xdc, 0x21, 0x1b, 0x6d, 0x8e, 0x34, 0x34,
+ 0x26, 0xbe, 0x59, 0x13, 0xab, 0xb2, 0x5e, 0x63, 0xef, 0x2f, 0x35, 0x43,
+ 0xac, 0x31, 0x2b, 0x4e, 0x0a, 0xc5, 0xa1, 0xa7, 0xde, 0x7f, 0x28, 0x47,
+ 0xfd, 0x40, 0xc6, 0xe0,
+};
+static const struct drbg_kat_pr_true kat3167_t = {
+ 1, kat3167_entropyin, kat3167_nonce, kat3167_persstr,
+ kat3167_entropyinpr1, kat3167_addinpr1, kat3167_entropyinpr2,
+ kat3167_addinpr2, kat3167_retbits
+};
+static const struct drbg_kat kat3167 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3167_t
+};
+
+static const unsigned char kat3168_entropyin[] = {
+ 0x6a, 0xe4, 0xc9, 0xe7, 0xcd, 0x37, 0x25, 0xeb, 0xb1, 0xc7, 0xe6, 0xd7,
+ 0x78, 0x68, 0xb6, 0xa1, 0x8b, 0xd0, 0x5e, 0x30, 0x67, 0x47, 0x1f, 0xc8,
+};
+static const unsigned char kat3168_nonce[] = {
+ 0x84, 0xa5, 0x79, 0xfd, 0x45, 0x9c, 0x19, 0xea, 0x42, 0xd2, 0xa5, 0x55,
+ 0xb9, 0x84, 0x4f, 0x08,
+};
+static const unsigned char kat3168_persstr[] = {
+ 0x50, 0x6b, 0x3c, 0x8e, 0x53, 0x00, 0xe1, 0x6b, 0xa3, 0x7a, 0xbf, 0xf9,
+ 0x67, 0xb9, 0x78, 0x9e, 0x97, 0x74, 0xe8, 0x0e, 0xe2, 0xbc, 0xa4, 0x97,
+ 0x84, 0x99, 0xb4, 0xd9, 0x58, 0xd3, 0xdd, 0x8f,
+};
+static const unsigned char kat3168_entropyinpr1[] = {
+ 0x6a, 0x96, 0x00, 0x8f, 0x29, 0x63, 0x10, 0xa0, 0x5e, 0x7f, 0xdd, 0x68,
+ 0xa1, 0xd1, 0x1c, 0xd0, 0x38, 0x9b, 0x56, 0x57, 0xdb, 0x95, 0xf2, 0xa6,
+};
+static const unsigned char kat3168_addinpr1[] = {
+ 0x59, 0x1f, 0x29, 0x27, 0x7b, 0x49, 0x4a, 0x3d, 0xdf, 0x2e, 0xd4, 0x9c,
+ 0x3b, 0xca, 0xd8, 0xed, 0x67, 0x35, 0x8a, 0xb5, 0xec, 0x4d, 0x52, 0x7b,
+ 0xaa, 0x6d, 0x38, 0xaf, 0xb3, 0x24, 0xe8, 0x60,
+};
+static const unsigned char kat3168_entropyinpr2[] = {
+ 0x78, 0x0b, 0xe1, 0x22, 0x17, 0xee, 0xb3, 0x50, 0x38, 0x55, 0x9a, 0x42,
+ 0xf0, 0xfe, 0x90, 0xd5, 0xb6, 0x53, 0x67, 0x5e, 0x99, 0x27, 0x50, 0xc7,
+};
+static const unsigned char kat3168_addinpr2[] = {
+ 0xe7, 0x89, 0xda, 0x83, 0xa4, 0x19, 0x4f, 0xfe, 0x94, 0x21, 0x09, 0x33,
+ 0xac, 0x1b, 0x6c, 0x18, 0x64, 0x13, 0xc5, 0xff, 0x5b, 0xdc, 0xb9, 0xec,
+ 0x7d, 0x7b, 0xf5, 0xd5, 0x1f, 0x47, 0x86, 0x9f,
+};
+static const unsigned char kat3168_retbits[] = {
+ 0x49, 0xcc, 0xd3, 0xab, 0x12, 0xb0, 0x49, 0x6f, 0x9d, 0x85, 0xd8, 0xc7,
+ 0x46, 0x0c, 0x64, 0x8c, 0xd0, 0x1b, 0xc0, 0xbf, 0x8b, 0x2c, 0xdb, 0xf5,
+ 0xa8, 0x64, 0x5c, 0xae, 0xf9, 0x00, 0xa7, 0x87, 0xc1, 0xa1, 0xe0, 0xfe,
+ 0x0f, 0x48, 0x01, 0x1e, 0x1d, 0x09, 0x4c, 0x34, 0xde, 0x5c, 0xa8, 0x42,
+ 0x23, 0xf8, 0x47, 0xd0, 0x7e, 0xb7, 0x7a, 0xf5, 0xa4, 0x60, 0x69, 0x06,
+ 0x68, 0xa1, 0xc6, 0xc8,
+};
+static const struct drbg_kat_pr_true kat3168_t = {
+ 2, kat3168_entropyin, kat3168_nonce, kat3168_persstr,
+ kat3168_entropyinpr1, kat3168_addinpr1, kat3168_entropyinpr2,
+ kat3168_addinpr2, kat3168_retbits
+};
+static const struct drbg_kat kat3168 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3168_t
+};
+
+static const unsigned char kat3169_entropyin[] = {
+ 0xb2, 0x46, 0x76, 0xe5, 0xdb, 0x27, 0x5c, 0xf0, 0x18, 0x91, 0x95, 0x20,
+ 0x76, 0x62, 0xcc, 0xa9, 0xef, 0x13, 0xed, 0xf8, 0xcb, 0x9b, 0x2a, 0x8d,
+};
+static const unsigned char kat3169_nonce[] = {
+ 0x12, 0x2c, 0xfd, 0x8c, 0x74, 0x15, 0x29, 0x13, 0x8b, 0x86, 0xdc, 0xb1,
+ 0x92, 0x2b, 0x03, 0x5d,
+};
+static const unsigned char kat3169_persstr[] = {
+ 0xc4, 0x4c, 0xd8, 0x81, 0xb4, 0xad, 0x2e, 0xc1, 0x0e, 0x13, 0xe7, 0x8b,
+ 0xde, 0x91, 0x84, 0x93, 0x3b, 0xd6, 0x92, 0xc6, 0x09, 0xe9, 0x40, 0xe0,
+ 0x2d, 0xe4, 0x1c, 0x6a, 0xff, 0x5a, 0x48, 0x22,
+};
+static const unsigned char kat3169_entropyinpr1[] = {
+ 0x82, 0x59, 0x73, 0xec, 0x8e, 0xee, 0x4e, 0x88, 0xda, 0xf3, 0x86, 0x1a,
+ 0x84, 0x38, 0xd6, 0x08, 0xdc, 0x83, 0x50, 0x66, 0x88, 0xd1, 0x6e, 0x0b,
+};
+static const unsigned char kat3169_addinpr1[] = {
+ 0xd4, 0x89, 0xd1, 0x6d, 0x0b, 0x65, 0xb5, 0xc6, 0x79, 0xaa, 0x45, 0x50,
+ 0xcf, 0xad, 0x14, 0x59, 0xd4, 0xbb, 0xec, 0x3c, 0x0a, 0xad, 0x36, 0x67,
+ 0xfc, 0x55, 0x15, 0xa5, 0x04, 0x16, 0x4e, 0x19,
+};
+static const unsigned char kat3169_entropyinpr2[] = {
+ 0xce, 0x68, 0x47, 0x03, 0x85, 0x6a, 0xfb, 0x96, 0x00, 0xf3, 0x8d, 0x95,
+ 0xe4, 0xbd, 0xdb, 0x2f, 0x0e, 0x14, 0x9f, 0x77, 0x4a, 0xaa, 0xb5, 0xaa,
+};
+static const unsigned char kat3169_addinpr2[] = {
+ 0x0f, 0x8a, 0x84, 0xf7, 0x55, 0xde, 0xaa, 0x01, 0x0e, 0xf9, 0x0c, 0x8b,
+ 0xe8, 0x54, 0xae, 0xd6, 0x93, 0x25, 0xce, 0x72, 0x48, 0xad, 0x4a, 0x96,
+ 0xcb, 0xe0, 0x3f, 0xae, 0x0b, 0xcc, 0x85, 0x94,
+};
+static const unsigned char kat3169_retbits[] = {
+ 0x8f, 0xe1, 0x34, 0x02, 0x1f, 0x85, 0xda, 0xb9, 0xc8, 0x91, 0x00, 0x19,
+ 0x33, 0xdd, 0x16, 0x6a, 0x8d, 0x72, 0x5f, 0x4c, 0xdb, 0xa7, 0x75, 0x54,
+ 0x0e, 0x3f, 0xe7, 0x0c, 0x92, 0xe1, 0xcd, 0x1a, 0xd8, 0xec, 0xa6, 0x09,
+ 0xf1, 0x2b, 0xd5, 0xa8, 0xa6, 0xb8, 0xc8, 0xd6, 0x0c, 0xb3, 0x7b, 0x1d,
+ 0x1a, 0x51, 0xd0, 0x16, 0x38, 0x3c, 0x5d, 0x95, 0xc0, 0xd6, 0xdf, 0x1e,
+ 0x98, 0x3f, 0x31, 0x3b,
+};
+static const struct drbg_kat_pr_true kat3169_t = {
+ 3, kat3169_entropyin, kat3169_nonce, kat3169_persstr,
+ kat3169_entropyinpr1, kat3169_addinpr1, kat3169_entropyinpr2,
+ kat3169_addinpr2, kat3169_retbits
+};
+static const struct drbg_kat kat3169 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3169_t
+};
+
+static const unsigned char kat3170_entropyin[] = {
+ 0xa9, 0xe0, 0x74, 0xbe, 0x4b, 0x41, 0x84, 0x83, 0x33, 0xc1, 0xa9, 0x19,
+ 0x40, 0x2a, 0x52, 0x66, 0x01, 0x67, 0x41, 0xbe, 0xb1, 0x68, 0x9a, 0xf7,
+};
+static const unsigned char kat3170_nonce[] = {
+ 0x40, 0x6f, 0xc4, 0xe4, 0xe5, 0xb2, 0xab, 0xb6, 0xb2, 0xdc, 0x55, 0xba,
+ 0x4b, 0x8d, 0x35, 0x57,
+};
+static const unsigned char kat3170_persstr[] = {
+ 0xe6, 0x03, 0xe3, 0xe1, 0xe9, 0x8c, 0xb5, 0x5c, 0xe2, 0xa0, 0xee, 0xd2,
+ 0x13, 0xb6, 0x03, 0xd6, 0xb4, 0xd6, 0xaa, 0xad, 0x26, 0xb9, 0x06, 0xcc,
+ 0xed, 0xc1, 0x69, 0x68, 0x0d, 0x57, 0xe1, 0xcb,
+};
+static const unsigned char kat3170_entropyinpr1[] = {
+ 0x7b, 0x00, 0x08, 0xd1, 0x3c, 0x8a, 0x15, 0xd1, 0xbc, 0x8f, 0xde, 0x0f,
+ 0xc6, 0xff, 0x67, 0x1d, 0xc1, 0x28, 0x23, 0x92, 0xdc, 0x07, 0x57, 0x64,
+};
+static const unsigned char kat3170_addinpr1[] = {
+ 0x98, 0x03, 0xa9, 0x70, 0x30, 0x3c, 0x00, 0xc9, 0x36, 0xf6, 0x91, 0x7b,
+ 0x27, 0xd7, 0xd7, 0xe9, 0x6a, 0x99, 0xf5, 0x69, 0x44, 0x46, 0x75, 0xe4,
+ 0x53, 0xd9, 0x35, 0x77, 0x08, 0xe7, 0x9b, 0xe0,
+};
+static const unsigned char kat3170_entropyinpr2[] = {
+ 0x6a, 0xb1, 0x27, 0x64, 0x04, 0xe4, 0x90, 0x34, 0xc8, 0x7b, 0x98, 0xf1,
+ 0xba, 0xab, 0x88, 0x2e, 0xa2, 0xc1, 0x53, 0x83, 0xab, 0x33, 0xa1, 0x70,
+};
+static const unsigned char kat3170_addinpr2[] = {
+ 0x35, 0xa9, 0xbe, 0x04, 0x80, 0x39, 0x9d, 0xa9, 0xb1, 0x6f, 0xa8, 0x54,
+ 0x6f, 0xcf, 0x65, 0x30, 0x16, 0xeb, 0x51, 0x42, 0x47, 0x58, 0xba, 0x3e,
+ 0x56, 0xe0, 0xa2, 0x0c, 0xec, 0x88, 0x09, 0x41,
+};
+static const unsigned char kat3170_retbits[] = {
+ 0x5a, 0xb2, 0xd8, 0x9f, 0x4f, 0x85, 0xc8, 0x4a, 0xc0, 0x83, 0xc7, 0xdc,
+ 0x7a, 0x32, 0x34, 0x12, 0x74, 0x7d, 0x26, 0xae, 0xcc, 0xfc, 0x14, 0x86,
+ 0x37, 0x7c, 0x4f, 0xa5, 0xd1, 0xfd, 0x24, 0x46, 0x05, 0xec, 0x8c, 0x77,
+ 0x9c, 0x14, 0xae, 0x4a, 0x7c, 0xc1, 0x80, 0xb3, 0xcd, 0xe6, 0x28, 0x49,
+ 0x7e, 0x4b, 0x12, 0xb3, 0xbc, 0x2d, 0xba, 0xd3, 0xfc, 0xf4, 0x1a, 0xa2,
+ 0x69, 0x96, 0xe7, 0x52,
+};
+static const struct drbg_kat_pr_true kat3170_t = {
+ 4, kat3170_entropyin, kat3170_nonce, kat3170_persstr,
+ kat3170_entropyinpr1, kat3170_addinpr1, kat3170_entropyinpr2,
+ kat3170_addinpr2, kat3170_retbits
+};
+static const struct drbg_kat kat3170 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3170_t
+};
+
+static const unsigned char kat3171_entropyin[] = {
+ 0x07, 0x9f, 0xf1, 0xfb, 0x2e, 0x77, 0x60, 0xee, 0xa5, 0x9e, 0x86, 0xbe,
+ 0x95, 0xd9, 0x2f, 0x18, 0xc4, 0x5a, 0x96, 0xee, 0xf7, 0x0a, 0x14, 0x30,
+};
+static const unsigned char kat3171_nonce[] = {
+ 0xf5, 0xf8, 0xaa, 0xa1, 0xd4, 0xe9, 0xa2, 0xa3, 0x6e, 0x36, 0x86, 0xcb,
+ 0xb7, 0xe8, 0x9a, 0x13,
+};
+static const unsigned char kat3171_persstr[] = {
+ 0x14, 0x3f, 0x35, 0xc9, 0x93, 0x40, 0x80, 0xcd, 0xfd, 0x26, 0x5f, 0xd9,
+ 0xc5, 0x8c, 0x44, 0x6d, 0xfb, 0xa0, 0x18, 0xc8, 0x04, 0x63, 0xb9, 0x00,
+ 0xdc, 0xec, 0x95, 0x9b, 0xfe, 0xc2, 0xd8, 0x86,
+};
+static const unsigned char kat3171_entropyinpr1[] = {
+ 0x97, 0x3f, 0x79, 0xe3, 0x89, 0x5e, 0xb2, 0x95, 0xcf, 0xf5, 0x73, 0xcf,
+ 0x39, 0x68, 0xdc, 0x70, 0x4b, 0xef, 0xf7, 0x0b, 0x4c, 0x3c, 0x6a, 0x63,
+};
+static const unsigned char kat3171_addinpr1[] = {
+ 0x40, 0x74, 0x64, 0x80, 0x85, 0x0f, 0xdd, 0x97, 0x81, 0x86, 0x9d, 0x14,
+ 0x67, 0x59, 0xbb, 0xd0, 0x35, 0x68, 0x11, 0x65, 0xfe, 0xae, 0xeb, 0xd8,
+ 0x9f, 0xe4, 0xd8, 0x19, 0x45, 0x4f, 0xf9, 0x0f,
+};
+static const unsigned char kat3171_entropyinpr2[] = {
+ 0x6c, 0xbf, 0xd9, 0x14, 0xc6, 0x54, 0x82, 0x6f, 0xd6, 0x56, 0xc6, 0x12,
+ 0xaa, 0xe7, 0x0b, 0xd7, 0x98, 0xd3, 0x27, 0x27, 0x88, 0xdb, 0x23, 0xdf,
+};
+static const unsigned char kat3171_addinpr2[] = {
+ 0x5f, 0xf6, 0x4c, 0x8f, 0x27, 0x86, 0x8b, 0xc2, 0x77, 0x56, 0x1e, 0xcc,
+ 0x86, 0x3d, 0x87, 0xef, 0xe7, 0xdd, 0x46, 0x0c, 0x98, 0xf2, 0x71, 0x4c,
+ 0x18, 0x56, 0x9d, 0x0b, 0xcc, 0xa5, 0x22, 0xc7,
+};
+static const unsigned char kat3171_retbits[] = {
+ 0x57, 0x8a, 0x80, 0x55, 0x09, 0x10, 0xb3, 0x25, 0x34, 0x09, 0x1a, 0xaf,
+ 0xac, 0x06, 0xc4, 0x4d, 0x01, 0xad, 0xa8, 0x5a, 0x1e, 0x26, 0xe6, 0xb5,
+ 0xa5, 0xf9, 0x4d, 0x4a, 0xe4, 0x05, 0xce, 0x02, 0xba, 0xb5, 0x8d, 0x81,
+ 0x85, 0x4c, 0xdf, 0x15, 0xc7, 0x3e, 0xf7, 0x94, 0xf9, 0xa5, 0x3e, 0x7b,
+ 0x28, 0x82, 0xf6, 0x07, 0x81, 0xe3, 0x70, 0x6b, 0x85, 0xac, 0xb4, 0x1f,
+ 0xe0, 0xa6, 0x16, 0x80,
+};
+static const struct drbg_kat_pr_true kat3171_t = {
+ 5, kat3171_entropyin, kat3171_nonce, kat3171_persstr,
+ kat3171_entropyinpr1, kat3171_addinpr1, kat3171_entropyinpr2,
+ kat3171_addinpr2, kat3171_retbits
+};
+static const struct drbg_kat kat3171 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3171_t
+};
+
+static const unsigned char kat3172_entropyin[] = {
+ 0x71, 0xcb, 0x85, 0x9b, 0x4e, 0xe9, 0x17, 0x8a, 0xf2, 0xef, 0x9d, 0xad,
+ 0x09, 0xea, 0x0e, 0x27, 0xd0, 0xf6, 0xdf, 0x3f, 0x40, 0xb4, 0x14, 0x8a,
+};
+static const unsigned char kat3172_nonce[] = {
+ 0x51, 0x36, 0x47, 0xae, 0x88, 0x70, 0x99, 0x4b, 0xad, 0x3e, 0xda, 0x20,
+ 0x66, 0x32, 0xf1, 0x4b,
+};
+static const unsigned char kat3172_persstr[] = {
+ 0x8d, 0x57, 0x2a, 0x48, 0xa4, 0x8f, 0x35, 0xde, 0xba, 0x84, 0x52, 0x74,
+ 0x31, 0xd8, 0xb4, 0xf8, 0x09, 0x8e, 0xed, 0x38, 0xd6, 0xfd, 0x61, 0x9d,
+ 0x9e, 0x39, 0xd1, 0x16, 0x09, 0x43, 0x78, 0x25,
+};
+static const unsigned char kat3172_entropyinpr1[] = {
+ 0x94, 0xe2, 0x48, 0xa5, 0xce, 0x51, 0x9f, 0xa7, 0x61, 0x06, 0xc9, 0x60,
+ 0x02, 0x27, 0xa1, 0xed, 0xce, 0x11, 0x33, 0x89, 0xab, 0x33, 0x32, 0x1a,
+};
+static const unsigned char kat3172_addinpr1[] = {
+ 0x04, 0xda, 0xf3, 0x83, 0xb8, 0xff, 0xd9, 0xac, 0x14, 0x30, 0x56, 0x3a,
+ 0x40, 0xce, 0x7c, 0xb4, 0x46, 0x82, 0xc5, 0x41, 0x5f, 0xbd, 0x4c, 0x3f,
+ 0x89, 0x1c, 0x24, 0x2b, 0x2d, 0xd4, 0xb1, 0xc5,
+};
+static const unsigned char kat3172_entropyinpr2[] = {
+ 0x84, 0x99, 0x64, 0x9d, 0x9e, 0x97, 0x5c, 0x6e, 0xea, 0x6f, 0x6f, 0x23,
+ 0xe5, 0x15, 0x91, 0xfc, 0x62, 0xfd, 0xa8, 0xdb, 0x8a, 0xfe, 0x00, 0x0b,
+};
+static const unsigned char kat3172_addinpr2[] = {
+ 0x44, 0x7b, 0x57, 0x24, 0xda, 0xb4, 0x69, 0x4d, 0x9d, 0xcf, 0xd9, 0xbb,
+ 0x5f, 0x2c, 0x89, 0x19, 0x24, 0xb1, 0xba, 0xfa, 0x3b, 0xa1, 0x39, 0xb6,
+ 0x20, 0x93, 0x6d, 0xee, 0x76, 0x43, 0xb9, 0xe6,
+};
+static const unsigned char kat3172_retbits[] = {
+ 0x43, 0x8b, 0x8c, 0xde, 0xe8, 0x66, 0x0f, 0x5c, 0x95, 0x4f, 0x35, 0x9c,
+ 0xa2, 0x03, 0xb4, 0x3d, 0xf5, 0x84, 0x31, 0x6e, 0x8a, 0xec, 0x66, 0xd1,
+ 0x87, 0x1a, 0xbe, 0x16, 0x9c, 0xe6, 0xd2, 0x4a, 0x16, 0x61, 0x56, 0x1a,
+ 0xfe, 0x83, 0x73, 0x36, 0xa6, 0x5e, 0x34, 0x79, 0x55, 0x75, 0xc8, 0x9a,
+ 0x74, 0xde, 0xcc, 0x3e, 0x5a, 0x9b, 0x15, 0x8a, 0xd3, 0x91, 0x2c, 0xb5,
+ 0x08, 0x46, 0x31, 0x98,
+};
+static const struct drbg_kat_pr_true kat3172_t = {
+ 6, kat3172_entropyin, kat3172_nonce, kat3172_persstr,
+ kat3172_entropyinpr1, kat3172_addinpr1, kat3172_entropyinpr2,
+ kat3172_addinpr2, kat3172_retbits
+};
+static const struct drbg_kat kat3172 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3172_t
+};
+
+static const unsigned char kat3173_entropyin[] = {
+ 0xe5, 0x2c, 0x92, 0xff, 0x0a, 0x21, 0x43, 0x06, 0xc9, 0x08, 0xee, 0x6f,
+ 0x4c, 0x76, 0x7d, 0xbb, 0x7e, 0x61, 0x5a, 0x78, 0x2b, 0x19, 0x5e, 0x7f,
+};
+static const unsigned char kat3173_nonce[] = {
+ 0xf6, 0x51, 0x98, 0x0a, 0x2c, 0x43, 0x63, 0xa2, 0xcb, 0x5e, 0xc5, 0x40,
+ 0x79, 0x70, 0xd8, 0x61,
+};
+static const unsigned char kat3173_persstr[] = {
+ 0xa9, 0xd0, 0x9a, 0xef, 0x83, 0x3b, 0x6c, 0x61, 0x2e, 0x0d, 0x9b, 0x54,
+ 0x72, 0x9d, 0x8c, 0x59, 0x27, 0x03, 0x23, 0x77, 0x86, 0xef, 0xaf, 0x1a,
+ 0x1e, 0x54, 0xe7, 0x2c, 0x6b, 0x42, 0x01, 0xc4,
+};
+static const unsigned char kat3173_entropyinpr1[] = {
+ 0x4d, 0xac, 0xb6, 0x9c, 0x50, 0x75, 0xb8, 0xd1, 0x07, 0x76, 0x37, 0xe2,
+ 0x3f, 0xe9, 0xfb, 0x27, 0xe8, 0x0b, 0x8e, 0xe4, 0x35, 0xfe, 0x73, 0xc0,
+};
+static const unsigned char kat3173_addinpr1[] = {
+ 0xb3, 0xa3, 0xe8, 0x4f, 0xba, 0x81, 0x0a, 0x10, 0x3e, 0x97, 0x79, 0x0e,
+ 0x22, 0xc3, 0x7b, 0xd8, 0x5d, 0x51, 0x90, 0x3b, 0x8a, 0x4a, 0xc9, 0xc3,
+ 0x62, 0x71, 0x55, 0xb4, 0x74, 0x0f, 0x66, 0x29,
+};
+static const unsigned char kat3173_entropyinpr2[] = {
+ 0x36, 0x40, 0x71, 0x5f, 0x90, 0xef, 0xb9, 0xaf, 0xd3, 0x68, 0x81, 0x62,
+ 0x9f, 0xe1, 0x15, 0x1c, 0x6f, 0xd2, 0x5a, 0x20, 0xb2, 0xab, 0x78, 0x5e,
+};
+static const unsigned char kat3173_addinpr2[] = {
+ 0x75, 0x88, 0x57, 0x7c, 0xd6, 0x78, 0x2b, 0x65, 0xf0, 0xd5, 0x52, 0x9f,
+ 0x3d, 0xb7, 0x78, 0x23, 0x46, 0x72, 0xc0, 0x56, 0x37, 0x07, 0xed, 0x73,
+ 0x90, 0xef, 0xe0, 0x1c, 0xe6, 0x7c, 0x73, 0x36,
+};
+static const unsigned char kat3173_retbits[] = {
+ 0xc6, 0xa3, 0xa4, 0x46, 0x7d, 0x96, 0x55, 0x35, 0x62, 0x5a, 0x3c, 0x6c,
+ 0x35, 0xcb, 0x7c, 0x97, 0xf5, 0xdb, 0x04, 0x0f, 0xac, 0x19, 0xa1, 0x64,
+ 0xc4, 0x0e, 0x4d, 0x94, 0x46, 0x9f, 0xca, 0x72, 0x92, 0x22, 0x39, 0x52,
+ 0x7a, 0x1f, 0xd8, 0x18, 0x5e, 0x8c, 0xd6, 0x45, 0x75, 0xd2, 0x12, 0xa3,
+ 0xce, 0x95, 0xeb, 0x5f, 0x86, 0xa6, 0x78, 0x30, 0x93, 0xb6, 0xe1, 0x62,
+ 0x59, 0xe4, 0x23, 0x52,
+};
+static const struct drbg_kat_pr_true kat3173_t = {
+ 7, kat3173_entropyin, kat3173_nonce, kat3173_persstr,
+ kat3173_entropyinpr1, kat3173_addinpr1, kat3173_entropyinpr2,
+ kat3173_addinpr2, kat3173_retbits
+};
+static const struct drbg_kat kat3173 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3173_t
+};
+
+static const unsigned char kat3174_entropyin[] = {
+ 0x52, 0x64, 0xe3, 0x0e, 0xfe, 0xf5, 0xf5, 0xc9, 0x59, 0x9d, 0xa0, 0x28,
+ 0x01, 0xef, 0xeb, 0x19, 0x24, 0x64, 0x25, 0xe3, 0xba, 0x51, 0x5f, 0x32,
+};
+static const unsigned char kat3174_nonce[] = {
+ 0xc8, 0xa2, 0x45, 0x34, 0xb7, 0x7d, 0xef, 0x98, 0xee, 0xa3, 0x34, 0xa9,
+ 0xa9, 0x61, 0xe5, 0x56,
+};
+static const unsigned char kat3174_persstr[] = {
+ 0x2a, 0x12, 0x43, 0x9a, 0x4b, 0xd4, 0x56, 0xd8, 0x05, 0xb8, 0x54, 0xb8,
+ 0xe4, 0x1b, 0xf4, 0x08, 0xc3, 0x37, 0xf0, 0x68, 0xf8, 0x43, 0xaf, 0xb4,
+ 0x39, 0x2b, 0xb2, 0x62, 0xdc, 0x7b, 0x20, 0xb4,
+};
+static const unsigned char kat3174_entropyinpr1[] = {
+ 0x7b, 0xc8, 0xd1, 0x0d, 0x01, 0x58, 0x06, 0xea, 0xe4, 0x78, 0x62, 0x58,
+ 0x5b, 0x53, 0xac, 0xc5, 0x85, 0x28, 0xf0, 0x66, 0x49, 0x99, 0x45, 0xd7,
+};
+static const unsigned char kat3174_addinpr1[] = {
+ 0x96, 0xfc, 0x2f, 0x2b, 0xbe, 0xb8, 0x2a, 0xb2, 0x01, 0xab, 0x3c, 0x48,
+ 0x4d, 0x5d, 0xe7, 0xfc, 0x78, 0x46, 0xa5, 0xce, 0xd7, 0x6f, 0xbc, 0x29,
+ 0x56, 0x54, 0x01, 0x19, 0x54, 0xda, 0xcc, 0x59,
+};
+static const unsigned char kat3174_entropyinpr2[] = {
+ 0xbe, 0x8a, 0x8e, 0x17, 0x29, 0x3d, 0xe6, 0x33, 0x18, 0x20, 0x5d, 0x77,
+ 0x49, 0x85, 0x1c, 0x7e, 0x39, 0x51, 0xca, 0xe6, 0xbe, 0x4a, 0x0d, 0x1f,
+};
+static const unsigned char kat3174_addinpr2[] = {
+ 0x43, 0x91, 0x2f, 0x08, 0xae, 0xd8, 0x30, 0x54, 0xc8, 0x7b, 0x63, 0x15,
+ 0x8f, 0xc4, 0x89, 0xbc, 0x8d, 0x1c, 0x2b, 0x5f, 0x31, 0xf3, 0xb3, 0x73,
+ 0x54, 0xde, 0x8e, 0x42, 0xae, 0x2e, 0x69, 0xf3,
+};
+static const unsigned char kat3174_retbits[] = {
+ 0x04, 0xb9, 0x61, 0x81, 0xfe, 0x4d, 0xc0, 0x4a, 0x42, 0x52, 0x56, 0x0a,
+ 0x3b, 0x90, 0x51, 0x1d, 0x55, 0x8a, 0x74, 0x24, 0x84, 0x23, 0xb5, 0x79,
+ 0x62, 0x72, 0x61, 0xda, 0x7b, 0x53, 0x2f, 0x0f, 0x77, 0x5f, 0x49, 0x56,
+ 0x1f, 0x08, 0x76, 0xbf, 0x5c, 0x85, 0xa5, 0x88, 0x12, 0xaa, 0x92, 0x1e,
+ 0xe8, 0x3e, 0x2b, 0xae, 0xb0, 0x62, 0xf3, 0x18, 0x2d, 0x2b, 0xae, 0xb5,
+ 0x62, 0xe0, 0x11, 0x81,
+};
+static const struct drbg_kat_pr_true kat3174_t = {
+ 8, kat3174_entropyin, kat3174_nonce, kat3174_persstr,
+ kat3174_entropyinpr1, kat3174_addinpr1, kat3174_entropyinpr2,
+ kat3174_addinpr2, kat3174_retbits
+};
+static const struct drbg_kat kat3174 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3174_t
+};
+
+static const unsigned char kat3175_entropyin[] = {
+ 0x85, 0xa5, 0xeb, 0x65, 0xed, 0x68, 0x3f, 0xd8, 0x4d, 0xee, 0x16, 0xf0,
+ 0x70, 0x5d, 0xbb, 0xb3, 0xae, 0x25, 0xa3, 0x49, 0x10, 0xfb, 0x1a, 0x7d,
+};
+static const unsigned char kat3175_nonce[] = {
+ 0xe2, 0xac, 0x0c, 0xf8, 0x45, 0x8e, 0x27, 0x8b, 0x80, 0x75, 0x8e, 0x6f,
+ 0xc2, 0x15, 0x1a, 0x45,
+};
+static const unsigned char kat3175_persstr[] = {
+ 0xb9, 0x7a, 0x44, 0xe6, 0x8c, 0x75, 0xc0, 0x9d, 0xa7, 0x9b, 0x33, 0xa0,
+ 0x2b, 0x07, 0x40, 0x16, 0xf8, 0xc1, 0x51, 0x7b, 0x48, 0xe5, 0xc7, 0x90,
+ 0xee, 0xad, 0xd5, 0xbf, 0xe2, 0xc3, 0x6a, 0x5a,
+};
+static const unsigned char kat3175_entropyinpr1[] = {
+ 0x87, 0xa9, 0x74, 0xef, 0x33, 0x49, 0x78, 0xfa, 0xa4, 0xde, 0x23, 0x8f,
+ 0x4f, 0x87, 0x6a, 0x27, 0x86, 0xa8, 0x9a, 0x4a, 0x4b, 0xc5, 0x97, 0x6b,
+};
+static const unsigned char kat3175_addinpr1[] = {
+ 0xba, 0x33, 0x32, 0xc2, 0x58, 0x37, 0x8b, 0xba, 0x15, 0x11, 0xb9, 0x3e,
+ 0x84, 0xd6, 0xf8, 0x6b, 0xbe, 0xba, 0xc4, 0x80, 0xd0, 0x01, 0x93, 0x3b,
+ 0x3d, 0x90, 0xca, 0xc6, 0x75, 0xfe, 0x72, 0xa6,
+};
+static const unsigned char kat3175_entropyinpr2[] = {
+ 0xbe, 0x06, 0xf3, 0x7c, 0xe2, 0x48, 0x0e, 0xa6, 0x0f, 0x74, 0x3a, 0x36,
+ 0x0a, 0x6d, 0x01, 0x98, 0x1d, 0x6e, 0x31, 0x94, 0x90, 0xd5, 0x6a, 0x88,
+};
+static const unsigned char kat3175_addinpr2[] = {
+ 0xd0, 0xf0, 0xf6, 0xf2, 0x43, 0xf9, 0x23, 0xfe, 0xa7, 0x1f, 0xc9, 0x33,
+ 0x8a, 0xc0, 0x0b, 0x14, 0x7c, 0xb3, 0x72, 0x09, 0x14, 0xb4, 0x31, 0xe2,
+ 0xda, 0xa6, 0x38, 0x15, 0x57, 0x8a, 0xed, 0x4a,
+};
+static const unsigned char kat3175_retbits[] = {
+ 0x23, 0x8a, 0xd5, 0xb7, 0xf7, 0xce, 0x2f, 0x26, 0xf9, 0xa9, 0x4f, 0xf7,
+ 0x87, 0x5e, 0x52, 0x68, 0xa0, 0x46, 0x1e, 0x5e, 0x4a, 0xa5, 0xc7, 0x9d,
+ 0x39, 0x4c, 0x3e, 0x6b, 0xa2, 0x27, 0x8e, 0x68, 0x59, 0x10, 0xc3, 0xbc,
+ 0x8b, 0x7c, 0xd1, 0x65, 0x62, 0x01, 0xd0, 0x1a, 0x32, 0x3e, 0xd8, 0x37,
+ 0x7c, 0xa9, 0xc4, 0x3f, 0x29, 0xd8, 0x67, 0x12, 0x77, 0x9f, 0x34, 0x4c,
+ 0x5b, 0xf3, 0x64, 0xd9,
+};
+static const struct drbg_kat_pr_true kat3175_t = {
+ 9, kat3175_entropyin, kat3175_nonce, kat3175_persstr,
+ kat3175_entropyinpr1, kat3175_addinpr1, kat3175_entropyinpr2,
+ kat3175_addinpr2, kat3175_retbits
+};
+static const struct drbg_kat kat3175 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3175_t
+};
+
+static const unsigned char kat3176_entropyin[] = {
+ 0x1c, 0xce, 0x9b, 0x05, 0x45, 0x3d, 0x1e, 0x3c, 0x40, 0xe4, 0x3a, 0x9e,
+ 0x8b, 0x11, 0x97, 0x88, 0x53, 0x1f, 0x4c, 0x60, 0x5d, 0xfd, 0xc5, 0x59,
+};
+static const unsigned char kat3176_nonce[] = {
+ 0xb6, 0xe7, 0x0b, 0xd0, 0x9a, 0x56, 0xc5, 0x62, 0x6f, 0x71, 0x2b, 0xe7,
+ 0x75, 0x81, 0x76, 0xd2,
+};
+static const unsigned char kat3176_persstr[] = {
+ 0x87, 0x01, 0x89, 0x78, 0x02, 0x33, 0x90, 0xa0, 0x79, 0xd1, 0x40, 0x95,
+ 0x4b, 0xc0, 0xae, 0xa4, 0x75, 0xec, 0x63, 0xee, 0x92, 0x7f, 0x85, 0x58,
+ 0x9a, 0x4b, 0x8f, 0x76, 0xbf, 0xaa, 0xce, 0x34,
+};
+static const unsigned char kat3176_entropyinpr1[] = {
+ 0xcc, 0x58, 0x25, 0x7c, 0xd6, 0x17, 0x27, 0x2a, 0x1a, 0x9e, 0xf8, 0x93,
+ 0xdb, 0xc2, 0xf8, 0x16, 0xaf, 0x39, 0xdf, 0x60, 0xda, 0xf4, 0xc1, 0x95,
+};
+static const unsigned char kat3176_addinpr1[] = {
+ 0x00, 0xfe, 0x5a, 0x07, 0x96, 0x6b, 0x04, 0x5c, 0xec, 0x2d, 0x12, 0x5d,
+ 0x35, 0x5b, 0xdb, 0xe7, 0xc3, 0xa0, 0x33, 0xff, 0x8e, 0x41, 0x79, 0x77,
+ 0x74, 0xc8, 0xbd, 0x2f, 0xcf, 0x1f, 0x80, 0xd2,
+};
+static const unsigned char kat3176_entropyinpr2[] = {
+ 0x37, 0x8a, 0x80, 0x77, 0xd2, 0x75, 0x39, 0x7e, 0x36, 0x19, 0xb3, 0xe2,
+ 0xda, 0x5b, 0xe3, 0x04, 0xe3, 0x23, 0x01, 0x92, 0x55, 0x36, 0xb3, 0x84,
+};
+static const unsigned char kat3176_addinpr2[] = {
+ 0xa9, 0xd5, 0x73, 0xfc, 0x30, 0x39, 0x2a, 0x00, 0x0f, 0xb3, 0x12, 0xa0,
+ 0x69, 0xec, 0x25, 0x38, 0x61, 0x4c, 0x47, 0xa1, 0xd4, 0x7b, 0x03, 0x4c,
+ 0xa8, 0x42, 0xc2, 0xb9, 0x1d, 0x9d, 0xe6, 0x8f,
+};
+static const unsigned char kat3176_retbits[] = {
+ 0x4c, 0xbe, 0x32, 0x92, 0x2b, 0x8a, 0x5c, 0x02, 0x96, 0xd6, 0x22, 0x5d,
+ 0x23, 0x8d, 0x50, 0x15, 0x3f, 0x59, 0x04, 0x53, 0x87, 0xd8, 0x4a, 0x96,
+ 0x06, 0x69, 0x69, 0xb6, 0x10, 0x34, 0x42, 0x02, 0xfc, 0xcd, 0x9c, 0x3a,
+ 0x5f, 0xfc, 0x59, 0x84, 0x50, 0x01, 0xec, 0x04, 0x16, 0x59, 0x08, 0xeb,
+ 0x40, 0xe3, 0xa8, 0x38, 0xfa, 0xc1, 0x9e, 0x7b, 0x2d, 0xe1, 0x3e, 0x34,
+ 0x55, 0xf3, 0x86, 0xa1,
+};
+static const struct drbg_kat_pr_true kat3176_t = {
+ 10, kat3176_entropyin, kat3176_nonce, kat3176_persstr,
+ kat3176_entropyinpr1, kat3176_addinpr1, kat3176_entropyinpr2,
+ kat3176_addinpr2, kat3176_retbits
+};
+static const struct drbg_kat kat3176 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3176_t
+};
+
+static const unsigned char kat3177_entropyin[] = {
+ 0x25, 0xc4, 0x47, 0x8a, 0x5d, 0xa9, 0x93, 0xae, 0xe1, 0x1f, 0xcd, 0x21,
+ 0x0c, 0x6e, 0xa2, 0x95, 0x3e, 0x4f, 0x4e, 0x07, 0x19, 0xa9, 0xf2, 0xc4,
+};
+static const unsigned char kat3177_nonce[] = {
+ 0xbf, 0xb7, 0x47, 0xf4, 0xfc, 0xf2, 0x9b, 0x12, 0xb1, 0xf8, 0x74, 0x49,
+ 0x8e, 0xd8, 0x78, 0x20,
+};
+static const unsigned char kat3177_persstr[] = {
+ 0x94, 0xb2, 0xb2, 0x79, 0x9f, 0xa8, 0x9b, 0xea, 0x02, 0x94, 0x2a, 0x93,
+ 0x8a, 0xa3, 0x14, 0x17, 0x32, 0x1c, 0x9f, 0xbd, 0xcb, 0x93, 0x8d, 0x45,
+ 0xae, 0x1a, 0xa7, 0x9c, 0x2b, 0x7e, 0x0d, 0xf7,
+};
+static const unsigned char kat3177_entropyinpr1[] = {
+ 0x29, 0x1f, 0xa6, 0xed, 0x11, 0x9a, 0x19, 0x4b, 0x24, 0x8e, 0xf9, 0x0b,
+ 0xbb, 0x32, 0xbf, 0x10, 0xb6, 0x6e, 0x15, 0x0b, 0xd8, 0x73, 0x42, 0x82,
+};
+static const unsigned char kat3177_addinpr1[] = {
+ 0xdd, 0x2a, 0xd4, 0xcd, 0xd6, 0xf4, 0x02, 0x28, 0x64, 0x45, 0x05, 0xd4,
+ 0x00, 0x70, 0x74, 0x09, 0x52, 0x66, 0x5e, 0xb9, 0xbb, 0xb6, 0xc5, 0x25,
+ 0x9f, 0x5f, 0xeb, 0xf3, 0xe8, 0xfa, 0x15, 0xa6,
+};
+static const unsigned char kat3177_entropyinpr2[] = {
+ 0x0e, 0xec, 0xb9, 0x82, 0x83, 0x1e, 0x47, 0xa6, 0xcf, 0x5f, 0x28, 0xc1,
+ 0xab, 0xbc, 0x42, 0xd0, 0x49, 0x06, 0xef, 0x3e, 0x64, 0xc5, 0x7c, 0xbc,
+};
+static const unsigned char kat3177_addinpr2[] = {
+ 0xbf, 0xd3, 0xe1, 0xff, 0x15, 0x30, 0x66, 0x7c, 0xcb, 0x44, 0xd4, 0x1f,
+ 0x8c, 0x82, 0x70, 0x3c, 0x22, 0x59, 0x8d, 0xbf, 0x93, 0x30, 0x46, 0x42,
+ 0x6c, 0xc1, 0xfa, 0xad, 0xdf, 0x6a, 0x2f, 0xaf,
+};
+static const unsigned char kat3177_retbits[] = {
+ 0x11, 0x7b, 0x34, 0xd0, 0x1e, 0xe0, 0xa6, 0xb9, 0x72, 0x0d, 0x77, 0xad,
+ 0xcf, 0x8f, 0xa8, 0x45, 0x0d, 0xe0, 0x8a, 0x81, 0xac, 0x62, 0xcc, 0xde,
+ 0x36, 0x44, 0xd5, 0x81, 0x4b, 0xd6, 0xea, 0xb9, 0x67, 0x92, 0x82, 0x9b,
+ 0x1f, 0x0c, 0x56, 0xdf, 0x87, 0xb8, 0xec, 0xf0, 0x23, 0x1e, 0x1b, 0x76,
+ 0x80, 0x36, 0x74, 0x42, 0xa8, 0xdd, 0xcb, 0x3b, 0x5a, 0x12, 0xf1, 0xd5,
+ 0xf7, 0x17, 0xea, 0x13,
+};
+static const struct drbg_kat_pr_true kat3177_t = {
+ 11, kat3177_entropyin, kat3177_nonce, kat3177_persstr,
+ kat3177_entropyinpr1, kat3177_addinpr1, kat3177_entropyinpr2,
+ kat3177_addinpr2, kat3177_retbits
+};
+static const struct drbg_kat kat3177 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3177_t
+};
+
+static const unsigned char kat3178_entropyin[] = {
+ 0xec, 0xbc, 0x26, 0x4c, 0xf6, 0x6c, 0x64, 0x73, 0x7f, 0xe1, 0x4d, 0x89,
+ 0xc1, 0x70, 0xb0, 0x7e, 0x9c, 0x11, 0x5e, 0x1c, 0xcf, 0x12, 0x8f, 0x29,
+};
+static const unsigned char kat3178_nonce[] = {
+ 0x52, 0x85, 0xcf, 0x4c, 0x6c, 0xe8, 0x65, 0x64, 0xa8, 0x82, 0xc8, 0x50,
+ 0x83, 0x81, 0x83, 0xb1,
+};
+static const unsigned char kat3178_persstr[] = {
+ 0xe7, 0xfd, 0xde, 0x2b, 0xda, 0xcd, 0xc4, 0x7e, 0xbf, 0x2f, 0x95, 0x67,
+ 0x45, 0xad, 0x62, 0xde, 0xae, 0x58, 0xac, 0xa3, 0xbe, 0x9f, 0x87, 0x5d,
+ 0x13, 0xe7, 0xac, 0xa9, 0xbb, 0x79, 0xee, 0xe3,
+};
+static const unsigned char kat3178_entropyinpr1[] = {
+ 0xec, 0xa9, 0xee, 0x54, 0xef, 0x82, 0x95, 0xd5, 0x36, 0x83, 0x0c, 0x9e,
+ 0x17, 0x8e, 0x95, 0x81, 0x25, 0x7d, 0xc4, 0xe1, 0xcb, 0x7b, 0xed, 0x06,
+};
+static const unsigned char kat3178_addinpr1[] = {
+ 0x79, 0xa5, 0x8a, 0x26, 0xef, 0x4b, 0xa3, 0x2f, 0xb6, 0x57, 0x64, 0xf2,
+ 0xed, 0x12, 0x3b, 0xb6, 0x9d, 0x96, 0x95, 0x6b, 0x72, 0x94, 0x71, 0x30,
+ 0x08, 0xce, 0x82, 0x82, 0x6b, 0xe2, 0x35, 0x82,
+};
+static const unsigned char kat3178_entropyinpr2[] = {
+ 0x6a, 0x2a, 0xb4, 0x6a, 0x06, 0xb3, 0x19, 0x5f, 0xad, 0x95, 0x42, 0xe3,
+ 0xb0, 0x93, 0x51, 0xee, 0x4c, 0x47, 0x01, 0x7e, 0x29, 0x85, 0x76, 0x1d,
+};
+static const unsigned char kat3178_addinpr2[] = {
+ 0xd0, 0x01, 0xe9, 0x02, 0x99, 0xa2, 0x74, 0x36, 0x5e, 0x42, 0x90, 0xca,
+ 0x57, 0x7c, 0x51, 0x71, 0x3e, 0xd4, 0xaf, 0xa3, 0x15, 0x01, 0xe3, 0x8d,
+ 0x1a, 0x5a, 0xf1, 0x4c, 0x4f, 0x4b, 0x6f, 0xfb,
+};
+static const unsigned char kat3178_retbits[] = {
+ 0xce, 0x4f, 0x86, 0x1a, 0x93, 0xa2, 0x02, 0x88, 0xc3, 0x98, 0x61, 0xc8,
+ 0xe4, 0xcc, 0x39, 0xa8, 0xbf, 0x36, 0xae, 0x74, 0x07, 0x11, 0xd6, 0xbe,
+ 0x53, 0x51, 0x2f, 0xda, 0x9c, 0x12, 0x58, 0xff, 0x18, 0x76, 0x99, 0x37,
+ 0xa9, 0x2e, 0x3d, 0x31, 0x73, 0xb6, 0xf0, 0x5c, 0xd7, 0x5c, 0x66, 0xc2,
+ 0xaf, 0xb9, 0x36, 0x0e, 0xab, 0x82, 0x9a, 0x3c, 0xa0, 0x30, 0xe8, 0x50,
+ 0xed, 0x67, 0xde, 0xd7,
+};
+static const struct drbg_kat_pr_true kat3178_t = {
+ 12, kat3178_entropyin, kat3178_nonce, kat3178_persstr,
+ kat3178_entropyinpr1, kat3178_addinpr1, kat3178_entropyinpr2,
+ kat3178_addinpr2, kat3178_retbits
+};
+static const struct drbg_kat kat3178 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3178_t
+};
+
+static const unsigned char kat3179_entropyin[] = {
+ 0xde, 0xa6, 0xaa, 0x6f, 0x6e, 0xac, 0x44, 0x74, 0xf2, 0x8b, 0x99, 0x28,
+ 0xc5, 0xa1, 0x13, 0xf2, 0x5f, 0xc1, 0x36, 0x92, 0x96, 0x78, 0xcf, 0xb5,
+};
+static const unsigned char kat3179_nonce[] = {
+ 0xd4, 0x5d, 0x82, 0xc8, 0x55, 0x03, 0xb9, 0x68, 0xce, 0x9a, 0x99, 0xe6,
+ 0xfd, 0x4b, 0x4a, 0x18,
+};
+static const unsigned char kat3179_persstr[] = {
+ 0x13, 0x10, 0x36, 0xe0, 0xea, 0x67, 0xe8, 0xa2, 0x0d, 0x88, 0xbf, 0xf9,
+ 0xfe, 0x3b, 0x27, 0x3c, 0x15, 0x3a, 0x3d, 0x6d, 0xaa, 0x16, 0xdd, 0x3e,
+ 0xed, 0xab, 0xeb, 0x65, 0xa8, 0x42, 0xc4, 0xde,
+};
+static const unsigned char kat3179_entropyinpr1[] = {
+ 0x73, 0xed, 0xb4, 0x99, 0x39, 0x77, 0x26, 0x65, 0xfa, 0x69, 0x02, 0x68,
+ 0x94, 0x17, 0x51, 0xee, 0x2a, 0xec, 0x45, 0x0c, 0xcc, 0x37, 0xad, 0xa3,
+};
+static const unsigned char kat3179_addinpr1[] = {
+ 0x4b, 0xcc, 0x3c, 0xb9, 0x8c, 0x54, 0x72, 0x97, 0xb3, 0x62, 0x2c, 0x5a,
+ 0xc2, 0xae, 0xa0, 0x46, 0x38, 0xb3, 0x03, 0x7c, 0x06, 0x9b, 0x09, 0x29,
+ 0xa3, 0xfe, 0x00, 0xc4, 0xe2, 0x0e, 0x65, 0x4a,
+};
+static const unsigned char kat3179_entropyinpr2[] = {
+ 0x5b, 0x41, 0x5f, 0xd0, 0x08, 0x84, 0x04, 0xed, 0xbb, 0xda, 0xd4, 0x1f,
+ 0xe6, 0x37, 0x8b, 0xb5, 0x64, 0x7c, 0xeb, 0x84, 0x2b, 0xf9, 0xb3, 0x34,
+};
+static const unsigned char kat3179_addinpr2[] = {
+ 0xa2, 0xb3, 0x43, 0x26, 0x97, 0xa6, 0xa8, 0xd1, 0xe0, 0x15, 0xaa, 0xcc,
+ 0xbb, 0x70, 0x22, 0x1d, 0x87, 0x38, 0x25, 0x5f, 0xf4, 0x59, 0xa1, 0x27,
+ 0x0a, 0xef, 0x40, 0x85, 0xd9, 0xee, 0x7c, 0xc0,
+};
+static const unsigned char kat3179_retbits[] = {
+ 0xa5, 0xd9, 0xc0, 0xdf, 0xfd, 0xfa, 0xa1, 0xcc, 0x8d, 0x28, 0x44, 0xbc,
+ 0x31, 0x55, 0x31, 0xca, 0x79, 0x3b, 0x0b, 0x45, 0x93, 0x59, 0x61, 0xdf,
+ 0xcd, 0xc0, 0x02, 0xb8, 0x7d, 0xd5, 0x2c, 0x72, 0xe4, 0x52, 0xb3, 0x33,
+ 0x0f, 0xf5, 0x39, 0x7b, 0x0a, 0x2e, 0x0b, 0x6b, 0xb9, 0xf7, 0x18, 0xae,
+ 0xac, 0xb5, 0x1d, 0x4f, 0xe6, 0xa2, 0x2f, 0x9f, 0x1b, 0xbb, 0xa9, 0x1a,
+ 0x44, 0x9c, 0x08, 0xaa,
+};
+static const struct drbg_kat_pr_true kat3179_t = {
+ 13, kat3179_entropyin, kat3179_nonce, kat3179_persstr,
+ kat3179_entropyinpr1, kat3179_addinpr1, kat3179_entropyinpr2,
+ kat3179_addinpr2, kat3179_retbits
+};
+static const struct drbg_kat kat3179 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3179_t
+};
+
+static const unsigned char kat3180_entropyin[] = {
+ 0x6d, 0x78, 0x46, 0xfa, 0xe1, 0x60, 0xf3, 0xcb, 0xe1, 0x0c, 0xad, 0x6e,
+ 0x49, 0x64, 0xed, 0x11, 0x93, 0xb2, 0x43, 0x7f, 0x68, 0x8b, 0x13, 0x34,
+};
+static const unsigned char kat3180_nonce[] = {
+ 0x86, 0x8a, 0xeb, 0x39, 0xea, 0xfa, 0xa0, 0xff, 0xec, 0xc5, 0x15, 0xae,
+ 0xc7, 0x2b, 0xd0, 0x15,
+};
+static const unsigned char kat3180_persstr[] = {
+ 0x65, 0x98, 0x2c, 0x2a, 0x31, 0xe7, 0xba, 0xf2, 0xf9, 0xaa, 0x99, 0xc8,
+ 0x50, 0xd1, 0x48, 0x38, 0x69, 0xf5, 0xd8, 0x73, 0x08, 0xdb, 0x77, 0xb0,
+ 0x74, 0x47, 0xc4, 0x0b, 0x35, 0xaf, 0x36, 0xcf,
+};
+static const unsigned char kat3180_entropyinpr1[] = {
+ 0xac, 0xc7, 0xb2, 0xd4, 0x2e, 0xcd, 0x15, 0xbd, 0x12, 0xe7, 0xac, 0xc4,
+ 0x11, 0x47, 0x62, 0x2f, 0x42, 0x6b, 0x3b, 0x55, 0x41, 0x16, 0x05, 0x23,
+};
+static const unsigned char kat3180_addinpr1[] = {
+ 0x00, 0x2c, 0x0b, 0x6d, 0x4e, 0x02, 0xfd, 0xe6, 0x29, 0xc9, 0xc8, 0xde,
+ 0x23, 0xe6, 0x8e, 0x6c, 0xb8, 0xc9, 0x06, 0xc2, 0xff, 0x7c, 0x75, 0xb3,
+ 0xb8, 0x42, 0xa5, 0xa7, 0xb3, 0x0a, 0x42, 0x5f,
+};
+static const unsigned char kat3180_entropyinpr2[] = {
+ 0xb4, 0x60, 0x29, 0x9d, 0xd4, 0xe2, 0x9f, 0x27, 0x95, 0x88, 0x7b, 0x2e,
+ 0xd3, 0x98, 0x24, 0x6f, 0x81, 0x57, 0x01, 0x09, 0x5d, 0x55, 0x30, 0xac,
+};
+static const unsigned char kat3180_addinpr2[] = {
+ 0x55, 0x1d, 0xd2, 0xd3, 0xe9, 0xd6, 0xab, 0x9f, 0x06, 0xed, 0xa8, 0xec,
+ 0x44, 0x81, 0xde, 0xc7, 0xb4, 0xe9, 0xbc, 0x9d, 0x5a, 0x61, 0x3d, 0x03,
+ 0x6b, 0xe2, 0x8b, 0x36, 0x83, 0xb2, 0x5d, 0x9e,
+};
+static const unsigned char kat3180_retbits[] = {
+ 0xdd, 0x0e, 0x03, 0xed, 0xdb, 0x23, 0x20, 0xff, 0xb8, 0xc6, 0x4b, 0x61,
+ 0xf5, 0xdf, 0x41, 0x54, 0x5b, 0x80, 0xae, 0x74, 0xfe, 0x2d, 0x52, 0xc5,
+ 0xd5, 0xe7, 0x03, 0x24, 0x37, 0x49, 0xd8, 0x54, 0xaa, 0xe6, 0x85, 0xc5,
+ 0x54, 0xdd, 0x18, 0x36, 0x4c, 0x3e, 0xbc, 0x84, 0xab, 0x19, 0x96, 0xa9,
+ 0x9f, 0xa3, 0xb3, 0x76, 0xb1, 0x0a, 0x94, 0xe4, 0x10, 0xd7, 0xcd, 0x8e,
+ 0x56, 0xb6, 0x73, 0x88,
+};
+static const struct drbg_kat_pr_true kat3180_t = {
+ 14, kat3180_entropyin, kat3180_nonce, kat3180_persstr,
+ kat3180_entropyinpr1, kat3180_addinpr1, kat3180_entropyinpr2,
+ kat3180_addinpr2, kat3180_retbits
+};
+static const struct drbg_kat kat3180 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3180_t
+};
+
+static const unsigned char kat3181_entropyin[] = {
+ 0x65, 0xde, 0xd9, 0x3b, 0xaa, 0x63, 0xe6, 0x35, 0x18, 0xc3, 0x30, 0x3d,
+ 0x6c, 0xd9, 0xdf, 0x74, 0xa9, 0xc6, 0x46, 0x40, 0x86, 0x52, 0xa9, 0x41,
+};
+static const unsigned char kat3181_nonce[] = {
+ 0x5d, 0xfa, 0xf4, 0x84, 0x37, 0x92, 0xbf, 0x8c, 0x6a, 0xc9, 0x08, 0x39,
+ 0xba, 0xbe, 0x40, 0xd4,
+};
+static const unsigned char kat3181_persstr[] = {0};
+static const unsigned char kat3181_entropyinpr1[] = {
+ 0x24, 0xc2, 0x8d, 0xdb, 0xbd, 0x91, 0x6b, 0xfc, 0xc6, 0xd9, 0x6c, 0x00,
+ 0xe2, 0xc1, 0x0e, 0x1a, 0x0f, 0x0a, 0x02, 0x31, 0xc1, 0xb7, 0x46, 0x68,
+};
+static const unsigned char kat3181_addinpr1[] = {0};
+static const unsigned char kat3181_entropyinpr2[] = {
+ 0x03, 0x15, 0x50, 0x4c, 0xc3, 0xd7, 0x84, 0x18, 0xc7, 0x34, 0x6d, 0xaf,
+ 0xdb, 0xc0, 0xa4, 0x27, 0x6a, 0xe3, 0xa9, 0xc4, 0x7d, 0x5f, 0x55, 0x7a,
+};
+static const unsigned char kat3181_addinpr2[] = {0};
+static const unsigned char kat3181_retbits[] = {
+ 0x0c, 0x21, 0x98, 0xb8, 0x27, 0xd6, 0x66, 0x48, 0xca, 0xb1, 0xdc, 0x7d,
+ 0xd9, 0x28, 0x71, 0x25, 0xd4, 0x15, 0xf9, 0x33, 0xcf, 0xf7, 0x1c, 0x8d,
+ 0xa0, 0x11, 0xb8, 0xda, 0x7b, 0xeb, 0x19, 0x1d, 0x8e, 0x94, 0x3a, 0x6d,
+ 0xa1, 0x7d, 0x69, 0xa1, 0x6f, 0xc4, 0xbd, 0xa4, 0x22, 0x1e, 0xe6, 0xd5,
+ 0x51, 0x2f, 0xaf, 0x4c, 0x69, 0x27, 0x14, 0x1b, 0xe4, 0xd0, 0x60, 0x3c,
+ 0x9f, 0x69, 0xca, 0x7c,
+};
+static const struct drbg_kat_pr_true kat3181_t = {
+ 0, kat3181_entropyin, kat3181_nonce, kat3181_persstr,
+ kat3181_entropyinpr1, kat3181_addinpr1, kat3181_entropyinpr2,
+ kat3181_addinpr2, kat3181_retbits
+};
+static const struct drbg_kat kat3181 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3181_t
+};
+
+static const unsigned char kat3182_entropyin[] = {
+ 0x1c, 0x7d, 0xd8, 0x91, 0x38, 0xc3, 0x81, 0x04, 0x7b, 0x7e, 0x2d, 0x44,
+ 0x23, 0xe0, 0xc3, 0x2d, 0xc3, 0xa5, 0x9c, 0x1b, 0x65, 0xd5, 0x45, 0x47,
+};
+static const unsigned char kat3182_nonce[] = {
+ 0x4e, 0xfa, 0xc8, 0x73, 0xc9, 0xf3, 0x15, 0xd6, 0xf7, 0x72, 0x78, 0xbc,
+ 0x9c, 0xff, 0xa3, 0x48,
+};
+static const unsigned char kat3182_persstr[] = {0};
+static const unsigned char kat3182_entropyinpr1[] = {
+ 0x97, 0xc8, 0xb3, 0xa8, 0x31, 0x8b, 0x5c, 0xda, 0x25, 0xb2, 0x6e, 0xda,
+ 0x15, 0xfc, 0x87, 0x18, 0x3d, 0xda, 0x7f, 0x60, 0x51, 0xb2, 0x39, 0xcd,
+};
+static const unsigned char kat3182_addinpr1[] = {0};
+static const unsigned char kat3182_entropyinpr2[] = {
+ 0x80, 0xfd, 0x70, 0x57, 0xee, 0xff, 0xad, 0x66, 0x5f, 0x86, 0x1b, 0xd6,
+ 0xa0, 0x36, 0x61, 0x54, 0xb6, 0xd8, 0x73, 0x9d, 0x25, 0x9f, 0xce, 0xa6,
+};
+static const unsigned char kat3182_addinpr2[] = {0};
+static const unsigned char kat3182_retbits[] = {
+ 0x05, 0xc0, 0x5b, 0x9c, 0xb2, 0xdd, 0x98, 0xd5, 0x0f, 0xd1, 0xeb, 0x24,
+ 0x57, 0x97, 0xa0, 0x46, 0x3f, 0xa7, 0xfa, 0xd9, 0xca, 0x4f, 0xc4, 0xef,
+ 0x7e, 0x41, 0x14, 0x78, 0x94, 0x0f, 0x4c, 0xb2, 0xfb, 0x74, 0x33, 0x32,
+ 0x2a, 0xad, 0xb6, 0xc6, 0x03, 0x3f, 0x6b, 0xf2, 0xdd, 0xa9, 0xba, 0x53,
+ 0x4a, 0xff, 0x84, 0xae, 0x69, 0xa0, 0xf2, 0xed, 0x16, 0x8d, 0xee, 0x69,
+ 0x19, 0xeb, 0xae, 0x13,
+};
+static const struct drbg_kat_pr_true kat3182_t = {
+ 1, kat3182_entropyin, kat3182_nonce, kat3182_persstr,
+ kat3182_entropyinpr1, kat3182_addinpr1, kat3182_entropyinpr2,
+ kat3182_addinpr2, kat3182_retbits
+};
+static const struct drbg_kat kat3182 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3182_t
+};
+
+static const unsigned char kat3183_entropyin[] = {
+ 0xc0, 0x52, 0xcc, 0x8f, 0xf9, 0xb8, 0xc4, 0x16, 0x7d, 0x68, 0x81, 0x9f,
+ 0x49, 0x28, 0x50, 0x7a, 0x0b, 0xe7, 0x54, 0x9f, 0x30, 0x64, 0x77, 0xd2,
+};
+static const unsigned char kat3183_nonce[] = {
+ 0xa9, 0xa2, 0x5f, 0x2d, 0x3d, 0x0f, 0x6a, 0x57, 0xf9, 0x73, 0x10, 0xfd,
+ 0xef, 0x22, 0xb7, 0xbf,
+};
+static const unsigned char kat3183_persstr[] = {0};
+static const unsigned char kat3183_entropyinpr1[] = {
+ 0x0c, 0x49, 0x77, 0x76, 0x59, 0xac, 0xe8, 0x08, 0x54, 0x25, 0x0b, 0xac,
+ 0x32, 0xff, 0x61, 0x67, 0x0a, 0xaf, 0x9a, 0x1a, 0x48, 0x54, 0xc3, 0xfa,
+};
+static const unsigned char kat3183_addinpr1[] = {0};
+static const unsigned char kat3183_entropyinpr2[] = {
+ 0xdf, 0xa4, 0xba, 0x0f, 0xf9, 0xdf, 0xc9, 0xb9, 0xe7, 0xa2, 0xc8, 0xa7,
+ 0x0c, 0xc5, 0x1d, 0xc2, 0x2c, 0x43, 0xb2, 0xab, 0x06, 0x30, 0x1d, 0x3e,
+};
+static const unsigned char kat3183_addinpr2[] = {0};
+static const unsigned char kat3183_retbits[] = {
+ 0x5e, 0xbe, 0x20, 0xb6, 0xfd, 0xae, 0x03, 0x90, 0x0f, 0xa5, 0x0b, 0x22,
+ 0x7c, 0xee, 0x83, 0xea, 0x51, 0x45, 0x9d, 0xc7, 0xf8, 0x2e, 0x79, 0x88,
+ 0x71, 0x21, 0x73, 0xd9, 0xbe, 0xc1, 0x1b, 0x98, 0xaa, 0x29, 0xb0, 0x2d,
+ 0x01, 0xf9, 0x1a, 0xa2, 0x2d, 0xfe, 0x78, 0xc6, 0x34, 0xec, 0x50, 0x46,
+ 0x14, 0xb0, 0x92, 0xa5, 0x0b, 0x62, 0x87, 0x32, 0x01, 0xf4, 0x36, 0x1f,
+ 0xb6, 0xcd, 0xa7, 0xac,
+};
+static const struct drbg_kat_pr_true kat3183_t = {
+ 2, kat3183_entropyin, kat3183_nonce, kat3183_persstr,
+ kat3183_entropyinpr1, kat3183_addinpr1, kat3183_entropyinpr2,
+ kat3183_addinpr2, kat3183_retbits
+};
+static const struct drbg_kat kat3183 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3183_t
+};
+
+static const unsigned char kat3184_entropyin[] = {
+ 0xfe, 0x55, 0xdc, 0x8e, 0xc8, 0x54, 0xa9, 0xa1, 0x87, 0xe2, 0xa3, 0x65,
+ 0xbb, 0xfb, 0x45, 0xb4, 0xbf, 0xe6, 0x22, 0xfc, 0x4c, 0x78, 0xcf, 0xf0,
+};
+static const unsigned char kat3184_nonce[] = {
+ 0x5d, 0x14, 0x06, 0xf1, 0xc9, 0x39, 0x67, 0x7d, 0x63, 0x26, 0x5c, 0x28,
+ 0xdd, 0x7a, 0xd3, 0xd2,
+};
+static const unsigned char kat3184_persstr[] = {0};
+static const unsigned char kat3184_entropyinpr1[] = {
+ 0x99, 0x6e, 0xe0, 0xa0, 0x8d, 0x56, 0xd1, 0xb3, 0xd7, 0xc6, 0x5e, 0x5e,
+ 0xe5, 0x06, 0xc8, 0x6f, 0x05, 0x00, 0x11, 0x29, 0x92, 0x91, 0x25, 0x39,
+};
+static const unsigned char kat3184_addinpr1[] = {0};
+static const unsigned char kat3184_entropyinpr2[] = {
+ 0xed, 0x1b, 0x49, 0xe7, 0x73, 0x04, 0xe5, 0xbf, 0x32, 0x53, 0xd8, 0x5a,
+ 0xe3, 0x10, 0x25, 0x69, 0x40, 0x98, 0xb1, 0x8f, 0x22, 0x48, 0xe6, 0xa9,
+};
+static const unsigned char kat3184_addinpr2[] = {0};
+static const unsigned char kat3184_retbits[] = {
+ 0x60, 0xae, 0xe5, 0x65, 0x89, 0x83, 0x59, 0xcb, 0xd4, 0x75, 0x73, 0x97,
+ 0x91, 0x3a, 0x3a, 0x38, 0x74, 0x5b, 0x6b, 0x5e, 0xad, 0xbe, 0x70, 0x32,
+ 0x51, 0xa5, 0x3e, 0xb4, 0x8c, 0x6b, 0x5d, 0x7e, 0x3a, 0xbc, 0x08, 0x19,
+ 0xe4, 0x65, 0xad, 0xb7, 0xdd, 0xde, 0x57, 0xb8, 0x2c, 0x56, 0x8e, 0x5f,
+ 0x9c, 0x47, 0x4b, 0x07, 0x05, 0x5b, 0x8a, 0x82, 0x88, 0x06, 0x2c, 0xd9,
+ 0x34, 0x80, 0xf6, 0x47,
+};
+static const struct drbg_kat_pr_true kat3184_t = {
+ 3, kat3184_entropyin, kat3184_nonce, kat3184_persstr,
+ kat3184_entropyinpr1, kat3184_addinpr1, kat3184_entropyinpr2,
+ kat3184_addinpr2, kat3184_retbits
+};
+static const struct drbg_kat kat3184 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3184_t
+};
+
+static const unsigned char kat3185_entropyin[] = {
+ 0xbe, 0x86, 0xc9, 0xb0, 0xfb, 0x9b, 0xa5, 0x83, 0x40, 0xee, 0x37, 0xdc,
+ 0x73, 0x1a, 0xad, 0xfc, 0xcf, 0x42, 0x2b, 0x88, 0xe2, 0xdf, 0x4c, 0xd0,
+};
+static const unsigned char kat3185_nonce[] = {
+ 0x3b, 0x2e, 0x3f, 0x05, 0x99, 0x36, 0xf7, 0xe0, 0xb2, 0xdd, 0x19, 0x96,
+ 0x8a, 0xbe, 0x04, 0x8a,
+};
+static const unsigned char kat3185_persstr[] = {0};
+static const unsigned char kat3185_entropyinpr1[] = {
+ 0x8c, 0x5a, 0xe3, 0xfa, 0xf2, 0xc1, 0xc0, 0xad, 0xfb, 0x1d, 0xc7, 0x6e,
+ 0xaa, 0xf3, 0x2b, 0xa6, 0x2d, 0x94, 0x9b, 0x5c, 0x5b, 0x6f, 0x51, 0x1a,
+};
+static const unsigned char kat3185_addinpr1[] = {0};
+static const unsigned char kat3185_entropyinpr2[] = {
+ 0x9f, 0x80, 0xbc, 0xe2, 0xbb, 0x7f, 0x46, 0xb0, 0xd2, 0xca, 0xad, 0x51,
+ 0x51, 0xa8, 0x79, 0xf3, 0x55, 0xbc, 0x70, 0xb1, 0x1d, 0x4e, 0xf1, 0x75,
+};
+static const unsigned char kat3185_addinpr2[] = {0};
+static const unsigned char kat3185_retbits[] = {
+ 0x44, 0x0b, 0xd1, 0xa9, 0x45, 0xb5, 0xca, 0x33, 0xbe, 0xb3, 0x8d, 0xf0,
+ 0xfb, 0xf2, 0xef, 0x44, 0xe5, 0x7c, 0xa4, 0xd6, 0x11, 0x83, 0xcb, 0xc3,
+ 0xa1, 0x5a, 0xc9, 0x7a, 0x65, 0xf7, 0x58, 0x84, 0xb2, 0x58, 0xf0, 0x3a,
+ 0xca, 0x22, 0x43, 0x94, 0x55, 0xc3, 0xd7, 0x9c, 0xad, 0xf8, 0x21, 0x92,
+ 0x3b, 0x02, 0xf2, 0xc5, 0xd4, 0x2e, 0xcc, 0x01, 0xdf, 0x53, 0x8f, 0x46,
+ 0x0e, 0x0e, 0x38, 0x9b,
+};
+static const struct drbg_kat_pr_true kat3185_t = {
+ 4, kat3185_entropyin, kat3185_nonce, kat3185_persstr,
+ kat3185_entropyinpr1, kat3185_addinpr1, kat3185_entropyinpr2,
+ kat3185_addinpr2, kat3185_retbits
+};
+static const struct drbg_kat kat3185 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3185_t
+};
+
+static const unsigned char kat3186_entropyin[] = {
+ 0x44, 0x7a, 0xec, 0xb6, 0xf5, 0x19, 0xce, 0x2d, 0x74, 0x2e, 0x38, 0x13,
+ 0xc6, 0xf4, 0x26, 0x2c, 0xe0, 0x02, 0x12, 0x14, 0x09, 0x09, 0xbe, 0x44,
+};
+static const unsigned char kat3186_nonce[] = {
+ 0xca, 0x25, 0x86, 0x70, 0x52, 0x2e, 0x9f, 0xd5, 0xda, 0x81, 0x9c, 0xd1,
+ 0x7b, 0xea, 0xfc, 0x7f,
+};
+static const unsigned char kat3186_persstr[] = {0};
+static const unsigned char kat3186_entropyinpr1[] = {
+ 0x43, 0x9b, 0xbf, 0x49, 0xf0, 0x7b, 0x1a, 0xd6, 0x14, 0x76, 0x17, 0x43,
+ 0x8f, 0x9e, 0xd8, 0xac, 0x27, 0x8d, 0x79, 0xac, 0xaf, 0x97, 0x23, 0xee,
+};
+static const unsigned char kat3186_addinpr1[] = {0};
+static const unsigned char kat3186_entropyinpr2[] = {
+ 0x01, 0x05, 0xb9, 0x48, 0xce, 0xb8, 0x74, 0xec, 0x26, 0x60, 0xc8, 0xf0,
+ 0x90, 0xdc, 0x73, 0x18, 0x1a, 0x80, 0xc8, 0x56, 0x9b, 0xbf, 0xf0, 0x1c,
+};
+static const unsigned char kat3186_addinpr2[] = {0};
+static const unsigned char kat3186_retbits[] = {
+ 0x1d, 0x74, 0xf3, 0xe7, 0x71, 0x19, 0x14, 0x2e, 0x38, 0x6a, 0x8f, 0x32,
+ 0x42, 0x93, 0xc0, 0xc4, 0xcd, 0xc9, 0x37, 0x27, 0x72, 0x3b, 0x03, 0xae,
+ 0x3a, 0x2a, 0x65, 0x4d, 0x5d, 0xc1, 0x4f, 0x7f, 0x0f, 0x34, 0xf5, 0xdf,
+ 0xd3, 0x1f, 0x6a, 0x42, 0xb1, 0x92, 0x81, 0x0c, 0x4a, 0xf7, 0x49, 0x48,
+ 0x18, 0x1a, 0x6f, 0xb8, 0x6e, 0xf3, 0xd6, 0x82, 0xce, 0x40, 0x92, 0xf6,
+ 0x67, 0xc7, 0xf8, 0x4f,
+};
+static const struct drbg_kat_pr_true kat3186_t = {
+ 5, kat3186_entropyin, kat3186_nonce, kat3186_persstr,
+ kat3186_entropyinpr1, kat3186_addinpr1, kat3186_entropyinpr2,
+ kat3186_addinpr2, kat3186_retbits
+};
+static const struct drbg_kat kat3186 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3186_t
+};
+
+static const unsigned char kat3187_entropyin[] = {
+ 0xfc, 0xf0, 0x7a, 0x2f, 0x22, 0x1b, 0xc9, 0x9f, 0x7c, 0x06, 0x87, 0x39,
+ 0x4c, 0x3c, 0x54, 0xa3, 0xaa, 0x41, 0x14, 0x9f, 0x3b, 0xef, 0xe8, 0x2b,
+};
+static const unsigned char kat3187_nonce[] = {
+ 0xd7, 0x06, 0xc6, 0x39, 0x8e, 0xdd, 0x0b, 0x0f, 0x33, 0x48, 0x56, 0xe9,
+ 0x55, 0x3f, 0xca, 0x76,
+};
+static const unsigned char kat3187_persstr[] = {0};
+static const unsigned char kat3187_entropyinpr1[] = {
+ 0x52, 0x63, 0x48, 0x84, 0xc2, 0x5c, 0x75, 0x53, 0x2b, 0x3e, 0x69, 0x14,
+ 0x51, 0xa4, 0x50, 0xd0, 0x94, 0xf3, 0x43, 0xb0, 0x94, 0x60, 0xcb, 0x4f,
+};
+static const unsigned char kat3187_addinpr1[] = {0};
+static const unsigned char kat3187_entropyinpr2[] = {
+ 0x06, 0x84, 0x45, 0x6d, 0x99, 0x84, 0xb1, 0xee, 0x1b, 0x21, 0x06, 0x1a,
+ 0x52, 0x2f, 0x44, 0x55, 0x11, 0xf1, 0x52, 0x8d, 0xdd, 0xf6, 0x67, 0x2d,
+};
+static const unsigned char kat3187_addinpr2[] = {0};
+static const unsigned char kat3187_retbits[] = {
+ 0x94, 0xe1, 0x68, 0x55, 0xa8, 0x5d, 0x38, 0xb2, 0x24, 0x73, 0x77, 0x2e,
+ 0x77, 0xbc, 0x7a, 0x5e, 0xca, 0xfc, 0xe0, 0x6a, 0xa8, 0x40, 0xa6, 0x4e,
+ 0xf1, 0x68, 0x7a, 0x2b, 0xa1, 0xef, 0xe0, 0x83, 0xdb, 0x3c, 0x6e, 0xc1,
+ 0x1a, 0x81, 0x0d, 0xe6, 0x96, 0x27, 0x18, 0x84, 0x32, 0xac, 0xd7, 0x32,
+ 0x79, 0x8d, 0xa6, 0xf0, 0x91, 0x25, 0xf8, 0x47, 0x9e, 0x67, 0x79, 0x1a,
+ 0xdd, 0x5c, 0xf3, 0xaa,
+};
+static const struct drbg_kat_pr_true kat3187_t = {
+ 6, kat3187_entropyin, kat3187_nonce, kat3187_persstr,
+ kat3187_entropyinpr1, kat3187_addinpr1, kat3187_entropyinpr2,
+ kat3187_addinpr2, kat3187_retbits
+};
+static const struct drbg_kat kat3187 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3187_t
+};
+
+static const unsigned char kat3188_entropyin[] = {
+ 0xcc, 0xa1, 0x39, 0xd3, 0x64, 0xc5, 0x11, 0x34, 0xf8, 0x2b, 0x6b, 0xfe,
+ 0x56, 0x56, 0x63, 0xbc, 0x1d, 0x8e, 0xa8, 0x9a, 0x0d, 0x0c, 0x1f, 0xdf,
+};
+static const unsigned char kat3188_nonce[] = {
+ 0xe2, 0xb2, 0x34, 0xb0, 0x8f, 0x1f, 0xc8, 0xca, 0x26, 0xfd, 0x0e, 0x00,
+ 0xa1, 0x89, 0x87, 0xb1,
+};
+static const unsigned char kat3188_persstr[] = {0};
+static const unsigned char kat3188_entropyinpr1[] = {
+ 0x65, 0x42, 0x07, 0x2d, 0x3c, 0x6d, 0x16, 0xa3, 0xcc, 0x06, 0x3d, 0x1f,
+ 0x5c, 0xaf, 0x93, 0x27, 0xca, 0x27, 0xb7, 0xdd, 0x60, 0xaa, 0x09, 0x29,
+};
+static const unsigned char kat3188_addinpr1[] = {0};
+static const unsigned char kat3188_entropyinpr2[] = {
+ 0xd9, 0x71, 0xfd, 0xe0, 0x34, 0x5a, 0x91, 0x9a, 0xa9, 0x9f, 0xbb, 0x85,
+ 0x18, 0x4d, 0xc8, 0xc8, 0x51, 0xc7, 0x33, 0x24, 0xd9, 0x85, 0x22, 0x39,
+};
+static const unsigned char kat3188_addinpr2[] = {0};
+static const unsigned char kat3188_retbits[] = {
+ 0xd4, 0x5e, 0x78, 0x5a, 0x64, 0x3d, 0x57, 0xbf, 0x49, 0x21, 0xb5, 0xfb,
+ 0x4a, 0x5f, 0xbe, 0x90, 0x89, 0xe4, 0x09, 0xe9, 0x32, 0x65, 0x8a, 0xb4,
+ 0xf7, 0x98, 0x15, 0xc7, 0xe0, 0x3b, 0xfb, 0xe1, 0xf7, 0x99, 0x1d, 0x82,
+ 0x98, 0xa3, 0x7c, 0xb8, 0x8c, 0xfe, 0xad, 0xe0, 0x3f, 0x0a, 0xe4, 0xee,
+ 0x5c, 0x80, 0x96, 0xeb, 0xb5, 0x21, 0xd8, 0x05, 0xfa, 0xff, 0x5c, 0xf1,
+ 0x1e, 0xd2, 0x2d, 0xef,
+};
+static const struct drbg_kat_pr_true kat3188_t = {
+ 7, kat3188_entropyin, kat3188_nonce, kat3188_persstr,
+ kat3188_entropyinpr1, kat3188_addinpr1, kat3188_entropyinpr2,
+ kat3188_addinpr2, kat3188_retbits
+};
+static const struct drbg_kat kat3188 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3188_t
+};
+
+static const unsigned char kat3189_entropyin[] = {
+ 0x2c, 0x04, 0xb0, 0x32, 0xa3, 0x87, 0x4d, 0x1b, 0xad, 0xaa, 0xdf, 0xde,
+ 0x39, 0x90, 0xb7, 0x0e, 0xbd, 0xa2, 0x66, 0x1e, 0x65, 0x9f, 0x60, 0xc0,
+};
+static const unsigned char kat3189_nonce[] = {
+ 0x94, 0xa5, 0xc5, 0x88, 0xb6, 0x6b, 0xff, 0xd9, 0x0a, 0xe2, 0x07, 0x25,
+ 0x00, 0x3b, 0x39, 0x9c,
+};
+static const unsigned char kat3189_persstr[] = {0};
+static const unsigned char kat3189_entropyinpr1[] = {
+ 0x9c, 0xb0, 0x14, 0x84, 0x41, 0x2f, 0x53, 0x09, 0x67, 0x28, 0xe3, 0xe1,
+ 0x0f, 0xc9, 0x0b, 0xe6, 0xa4, 0x50, 0x81, 0xee, 0x04, 0x7c, 0x52, 0xf4,
+};
+static const unsigned char kat3189_addinpr1[] = {0};
+static const unsigned char kat3189_entropyinpr2[] = {
+ 0xa2, 0xe1, 0xea, 0x1c, 0x79, 0xde, 0xeb, 0x09, 0x5d, 0x54, 0x71, 0x62,
+ 0xe4, 0x54, 0x85, 0xdd, 0xb2, 0x65, 0x6a, 0x99, 0xbb, 0x3b, 0x67, 0x2e,
+};
+static const unsigned char kat3189_addinpr2[] = {0};
+static const unsigned char kat3189_retbits[] = {
+ 0x26, 0x98, 0x06, 0x65, 0xee, 0x2f, 0xa8, 0x15, 0xd7, 0x39, 0xb5, 0x1e,
+ 0x9a, 0x9a, 0x46, 0xd0, 0xe6, 0x9f, 0x64, 0x9b, 0xe4, 0xeb, 0x9d, 0xc4,
+ 0x58, 0x9e, 0x5d, 0xcf, 0x16, 0x29, 0x73, 0x35, 0xa6, 0x26, 0xa6, 0xd9,
+ 0x0c, 0x14, 0x4c, 0x66, 0x07, 0x64, 0xfe, 0xe4, 0xfc, 0x61, 0xe8, 0x12,
+ 0x0e, 0x1b, 0x4c, 0x0e, 0xe0, 0x0e, 0x5c, 0x1a, 0xe2, 0xe6, 0x46, 0x6c,
+ 0x5d, 0x19, 0xec, 0x47,
+};
+static const struct drbg_kat_pr_true kat3189_t = {
+ 8, kat3189_entropyin, kat3189_nonce, kat3189_persstr,
+ kat3189_entropyinpr1, kat3189_addinpr1, kat3189_entropyinpr2,
+ kat3189_addinpr2, kat3189_retbits
+};
+static const struct drbg_kat kat3189 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3189_t
+};
+
+static const unsigned char kat3190_entropyin[] = {
+ 0xc2, 0xd9, 0x1a, 0xe5, 0x38, 0xee, 0xff, 0xf2, 0x5a, 0xad, 0x99, 0x49,
+ 0x17, 0x3f, 0x0d, 0x94, 0x92, 0x7e, 0xd5, 0xff, 0x29, 0xa9, 0xca, 0x4f,
+};
+static const unsigned char kat3190_nonce[] = {
+ 0xb1, 0x58, 0x8d, 0xff, 0x4a, 0x1c, 0x49, 0xb6, 0x29, 0x1f, 0x8b, 0x14,
+ 0x1f, 0xef, 0x68, 0x1e,
+};
+static const unsigned char kat3190_persstr[] = {0};
+static const unsigned char kat3190_entropyinpr1[] = {
+ 0x9f, 0x0f, 0x6e, 0x89, 0x78, 0x0d, 0x1c, 0x1e, 0x8b, 0xd0, 0x97, 0xff,
+ 0x03, 0xbd, 0x4b, 0x03, 0x5c, 0x0d, 0x31, 0x0a, 0xc3, 0xd2, 0x78, 0x22,
+};
+static const unsigned char kat3190_addinpr1[] = {0};
+static const unsigned char kat3190_entropyinpr2[] = {
+ 0xa4, 0xc9, 0xa1, 0x4d, 0x3f, 0x84, 0x89, 0x66, 0x04, 0xe3, 0xfd, 0xc7,
+ 0x74, 0x40, 0x6b, 0xfe, 0x21, 0x24, 0x69, 0xec, 0x80, 0xb2, 0x66, 0x60,
+};
+static const unsigned char kat3190_addinpr2[] = {0};
+static const unsigned char kat3190_retbits[] = {
+ 0x67, 0xf8, 0x2b, 0x1f, 0x1a, 0x0b, 0x38, 0x5a, 0x4d, 0x47, 0x75, 0xc0,
+ 0xe0, 0x95, 0x2b, 0x24, 0x66, 0x75, 0x27, 0x23, 0x56, 0x65, 0x49, 0x31,
+ 0x67, 0x8c, 0x85, 0x9d, 0x9a, 0x9b, 0xae, 0x53, 0x7c, 0xbb, 0x94, 0xad,
+ 0xe8, 0x2a, 0x98, 0xa6, 0x22, 0x14, 0x2a, 0x29, 0x3f, 0xc9, 0x91, 0xc4,
+ 0xdc, 0x85, 0xf2, 0x20, 0xf4, 0x86, 0x0a, 0x6b, 0xf2, 0xe5, 0x6e, 0xde,
+ 0x23, 0x12, 0x5d, 0xe0,
+};
+static const struct drbg_kat_pr_true kat3190_t = {
+ 9, kat3190_entropyin, kat3190_nonce, kat3190_persstr,
+ kat3190_entropyinpr1, kat3190_addinpr1, kat3190_entropyinpr2,
+ kat3190_addinpr2, kat3190_retbits
+};
+static const struct drbg_kat kat3190 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3190_t
+};
+
+static const unsigned char kat3191_entropyin[] = {
+ 0xfb, 0xc5, 0x36, 0x75, 0x13, 0x50, 0x9a, 0x1f, 0x24, 0xc1, 0x28, 0xd6,
+ 0x0c, 0x9c, 0x19, 0xeb, 0x04, 0xe4, 0x8b, 0xa9, 0xef, 0x92, 0x99, 0x68,
+};
+static const unsigned char kat3191_nonce[] = {
+ 0x49, 0xa7, 0x82, 0x14, 0x70, 0x2b, 0x08, 0x17, 0x1b, 0x4e, 0xd9, 0x22,
+ 0x5f, 0xac, 0x5e, 0x71,
+};
+static const unsigned char kat3191_persstr[] = {0};
+static const unsigned char kat3191_entropyinpr1[] = {
+ 0xa6, 0xb9, 0xa2, 0x86, 0xc2, 0xb3, 0xfe, 0x90, 0x2b, 0xc3, 0x24, 0xb5,
+ 0x37, 0xed, 0x2e, 0x01, 0x9e, 0x06, 0x56, 0xd8, 0x2d, 0xf1, 0xa8, 0xec,
+};
+static const unsigned char kat3191_addinpr1[] = {0};
+static const unsigned char kat3191_entropyinpr2[] = {
+ 0xd3, 0x2f, 0xb0, 0x2f, 0xaf, 0xe6, 0x82, 0x3f, 0xd5, 0xdb, 0xff, 0x01,
+ 0xf1, 0x15, 0x45, 0x22, 0xde, 0x06, 0x6f, 0xfb, 0x39, 0x4b, 0x66, 0xbd,
+};
+static const unsigned char kat3191_addinpr2[] = {0};
+static const unsigned char kat3191_retbits[] = {
+ 0x57, 0x29, 0x38, 0x56, 0x16, 0x6e, 0xfb, 0x76, 0x73, 0xfd, 0x98, 0x5f,
+ 0x2d, 0xb5, 0xd8, 0x29, 0x35, 0x18, 0xc0, 0x02, 0xac, 0x56, 0xdf, 0x95,
+ 0x5b, 0xe3, 0x1a, 0x65, 0xfe, 0x2e, 0xd8, 0x59, 0x4f, 0x61, 0x4c, 0xe2,
+ 0xb6, 0x96, 0x9b, 0x97, 0x59, 0xb4, 0x03, 0x86, 0x76, 0xd0, 0x4f, 0xfe,
+ 0xb0, 0x88, 0xa2, 0xf9, 0x68, 0x1e, 0x17, 0x90, 0xa0, 0xc1, 0x99, 0xe9,
+ 0xdf, 0xf4, 0x55, 0x8a,
+};
+static const struct drbg_kat_pr_true kat3191_t = {
+ 10, kat3191_entropyin, kat3191_nonce, kat3191_persstr,
+ kat3191_entropyinpr1, kat3191_addinpr1, kat3191_entropyinpr2,
+ kat3191_addinpr2, kat3191_retbits
+};
+static const struct drbg_kat kat3191 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3191_t
+};
+
+static const unsigned char kat3192_entropyin[] = {
+ 0x0a, 0x63, 0xe3, 0x74, 0x4a, 0xb8, 0x97, 0xab, 0xa4, 0xad, 0x07, 0x20,
+ 0x12, 0xc9, 0x49, 0xeb, 0xed, 0xb9, 0x87, 0xf4, 0xdf, 0x1d, 0x0c, 0x4f,
+};
+static const unsigned char kat3192_nonce[] = {
+ 0xeb, 0xbf, 0x5c, 0xc1, 0x7b, 0xbd, 0x55, 0x62, 0xca, 0x15, 0xa9, 0x7d,
+ 0x3d, 0x7d, 0x8b, 0x45,
+};
+static const unsigned char kat3192_persstr[] = {0};
+static const unsigned char kat3192_entropyinpr1[] = {
+ 0x6b, 0x52, 0x85, 0x2c, 0x1a, 0x59, 0x1b, 0xb7, 0x91, 0x89, 0x9b, 0xef,
+ 0xa4, 0xb5, 0xff, 0x36, 0x3e, 0x28, 0x98, 0x81, 0xb8, 0x1d, 0x6a, 0xdc,
+};
+static const unsigned char kat3192_addinpr1[] = {0};
+static const unsigned char kat3192_entropyinpr2[] = {
+ 0x0b, 0xc3, 0x3b, 0xec, 0x70, 0x34, 0x76, 0xae, 0xc6, 0x8e, 0x65, 0x9c,
+ 0xa1, 0x13, 0xd0, 0x5d, 0x58, 0x0e, 0xb4, 0x46, 0x78, 0x9b, 0xc7, 0x8c,
+};
+static const unsigned char kat3192_addinpr2[] = {0};
+static const unsigned char kat3192_retbits[] = {
+ 0xf8, 0x07, 0xfa, 0x57, 0x7e, 0x83, 0xf0, 0xc1, 0xd9, 0x9d, 0x29, 0x00,
+ 0xec, 0xab, 0x19, 0x3b, 0xc7, 0x61, 0xb0, 0x3c, 0x6f, 0x3c, 0x69, 0x70,
+ 0x0a, 0xa0, 0x1b, 0x5b, 0x3b, 0x9d, 0x37, 0x84, 0x25, 0x2c, 0x13, 0x71,
+ 0xf5, 0xe7, 0xba, 0xe4, 0x89, 0xbe, 0xf9, 0x33, 0xfe, 0xb1, 0xed, 0x78,
+ 0x50, 0x9e, 0x1c, 0x67, 0x96, 0x81, 0xe3, 0xe1, 0xc7, 0x2e, 0x2a, 0x7b,
+ 0x47, 0x7d, 0xd8, 0x4c,
+};
+static const struct drbg_kat_pr_true kat3192_t = {
+ 11, kat3192_entropyin, kat3192_nonce, kat3192_persstr,
+ kat3192_entropyinpr1, kat3192_addinpr1, kat3192_entropyinpr2,
+ kat3192_addinpr2, kat3192_retbits
+};
+static const struct drbg_kat kat3192 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3192_t
+};
+
+static const unsigned char kat3193_entropyin[] = {
+ 0x45, 0xf8, 0x01, 0xb7, 0x5b, 0xa9, 0x4b, 0x2b, 0x3e, 0xa2, 0xcb, 0x6f,
+ 0x8f, 0x37, 0xcb, 0x8c, 0x3a, 0x85, 0x49, 0x89, 0xbd, 0xe7, 0xc6, 0x7c,
+};
+static const unsigned char kat3193_nonce[] = {
+ 0xd6, 0xdb, 0x6c, 0x7a, 0x04, 0xc1, 0x2e, 0x07, 0xa6, 0x17, 0x44, 0xcd,
+ 0x88, 0xbb, 0x61, 0xb6,
+};
+static const unsigned char kat3193_persstr[] = {0};
+static const unsigned char kat3193_entropyinpr1[] = {
+ 0x6d, 0x54, 0x93, 0xfa, 0x07, 0xf9, 0x35, 0x4a, 0x48, 0x6b, 0xdd, 0xdf,
+ 0x14, 0x1b, 0x9c, 0xdd, 0x34, 0x89, 0xef, 0xff, 0xa7, 0xdf, 0xcc, 0x1b,
+};
+static const unsigned char kat3193_addinpr1[] = {0};
+static const unsigned char kat3193_entropyinpr2[] = {
+ 0x5f, 0xc4, 0x0e, 0xfb, 0xd7, 0x9b, 0x54, 0xe1, 0xeb, 0x18, 0x40, 0x8a,
+ 0xc4, 0xfa, 0x1e, 0x1f, 0x42, 0x03, 0x07, 0xff, 0xd4, 0xfa, 0xbf, 0x7d,
+};
+static const unsigned char kat3193_addinpr2[] = {0};
+static const unsigned char kat3193_retbits[] = {
+ 0x28, 0x5f, 0xe2, 0xc7, 0x91, 0x73, 0x5a, 0xc4, 0x55, 0x76, 0xad, 0x0d,
+ 0x07, 0xed, 0xa2, 0x58, 0x26, 0x50, 0x87, 0x8e, 0xc5, 0x99, 0x92, 0xeb,
+ 0xa8, 0x61, 0x7a, 0x66, 0x98, 0x4d, 0xd6, 0x2d, 0xa0, 0x9e, 0xae, 0x7e,
+ 0x39, 0x10, 0x9a, 0x4a, 0x2a, 0xbe, 0xa3, 0xf5, 0x64, 0xc4, 0xb7, 0x41,
+ 0xbb, 0xed, 0xcb, 0xa4, 0xcb, 0x1e, 0x51, 0x9a, 0x44, 0x15, 0x1f, 0x14,
+ 0x4a, 0xaf, 0x24, 0x1c,
+};
+static const struct drbg_kat_pr_true kat3193_t = {
+ 12, kat3193_entropyin, kat3193_nonce, kat3193_persstr,
+ kat3193_entropyinpr1, kat3193_addinpr1, kat3193_entropyinpr2,
+ kat3193_addinpr2, kat3193_retbits
+};
+static const struct drbg_kat kat3193 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3193_t
+};
+
+static const unsigned char kat3194_entropyin[] = {
+ 0x30, 0xbd, 0x67, 0x5b, 0x4b, 0x07, 0x1c, 0xb3, 0xc7, 0x76, 0xc9, 0x0a,
+ 0x5f, 0xa9, 0x58, 0xe2, 0xb0, 0x04, 0xc5, 0xd8, 0x1a, 0xb1, 0xb0, 0x60,
+};
+static const unsigned char kat3194_nonce[] = {
+ 0x49, 0xc0, 0x30, 0xc9, 0x5d, 0xd3, 0xe5, 0xe8, 0x59, 0x29, 0xaf, 0x29,
+ 0xb2, 0x6a, 0xf8, 0x53,
+};
+static const unsigned char kat3194_persstr[] = {0};
+static const unsigned char kat3194_entropyinpr1[] = {
+ 0x45, 0x36, 0xe8, 0x6a, 0x83, 0x0c, 0xd5, 0xfa, 0xd0, 0x12, 0x36, 0xce,
+ 0xec, 0x0d, 0x9f, 0x49, 0xb8, 0xfc, 0x1d, 0x56, 0xd6, 0xf6, 0x62, 0x3b,
+};
+static const unsigned char kat3194_addinpr1[] = {0};
+static const unsigned char kat3194_entropyinpr2[] = {
+ 0xc2, 0xe1, 0x59, 0x58, 0x72, 0x23, 0xbd, 0x83, 0x15, 0xf7, 0x93, 0xc7,
+ 0x50, 0xe4, 0x2c, 0xd4, 0xcb, 0xa9, 0x85, 0xdf, 0xd7, 0x6a, 0xac, 0x7f,
+};
+static const unsigned char kat3194_addinpr2[] = {0};
+static const unsigned char kat3194_retbits[] = {
+ 0xf9, 0x44, 0xb1, 0xfd, 0x2c, 0x86, 0x3f, 0x6d, 0x16, 0xc1, 0x62, 0xa5,
+ 0x2f, 0xbe, 0xfa, 0x41, 0x79, 0x92, 0xa1, 0x49, 0x5c, 0x78, 0x6c, 0x39,
+ 0xfd, 0x6e, 0xdd, 0x78, 0x32, 0xc7, 0xb9, 0x91, 0x14, 0x75, 0x75, 0x7c,
+ 0x86, 0x85, 0xd4, 0x66, 0xbf, 0x74, 0x84, 0xe4, 0xbe, 0x39, 0x69, 0xe9,
+ 0x01, 0xe6, 0x3b, 0xaa, 0xc4, 0x90, 0x46, 0x5c, 0x72, 0x76, 0x82, 0x9a,
+ 0x86, 0x80, 0xb2, 0x31,
+};
+static const struct drbg_kat_pr_true kat3194_t = {
+ 13, kat3194_entropyin, kat3194_nonce, kat3194_persstr,
+ kat3194_entropyinpr1, kat3194_addinpr1, kat3194_entropyinpr2,
+ kat3194_addinpr2, kat3194_retbits
+};
+static const struct drbg_kat kat3194 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3194_t
+};
+
+static const unsigned char kat3195_entropyin[] = {
+ 0x1c, 0xda, 0x1f, 0xe4, 0x95, 0x3b, 0x84, 0xfe, 0x7e, 0xa3, 0xa1, 0x1e,
+ 0x6c, 0xb4, 0xd3, 0x42, 0xa6, 0x6e, 0x3f, 0xcc, 0x74, 0xb0, 0xb7, 0x78,
+};
+static const unsigned char kat3195_nonce[] = {
+ 0xaf, 0x9a, 0x5f, 0x72, 0x72, 0x01, 0x31, 0x13, 0xd4, 0x91, 0xd7, 0x7b,
+ 0xb8, 0x07, 0xdb, 0x34,
+};
+static const unsigned char kat3195_persstr[] = {0};
+static const unsigned char kat3195_entropyinpr1[] = {
+ 0x4b, 0xd0, 0xa5, 0x48, 0x10, 0xe5, 0x53, 0x71, 0x56, 0xdb, 0xc1, 0xd0,
+ 0xb3, 0x11, 0x86, 0xa7, 0xc8, 0xf2, 0xf1, 0x18, 0x95, 0xca, 0xb3, 0x7d,
+};
+static const unsigned char kat3195_addinpr1[] = {0};
+static const unsigned char kat3195_entropyinpr2[] = {
+ 0x1d, 0x12, 0xeb, 0x04, 0x12, 0xc1, 0x93, 0xd4, 0x68, 0xd0, 0x16, 0xad,
+ 0x05, 0x6c, 0xb2, 0xd9, 0xb8, 0x04, 0x04, 0x16, 0xa6, 0x3b, 0xe3, 0x9b,
+};
+static const unsigned char kat3195_addinpr2[] = {0};
+static const unsigned char kat3195_retbits[] = {
+ 0x86, 0x89, 0x6e, 0xa3, 0xec, 0x87, 0x55, 0x93, 0x91, 0xf6, 0xdd, 0x56,
+ 0x08, 0x59, 0xc8, 0xf9, 0x16, 0x02, 0x1c, 0x7a, 0xaa, 0xa9, 0xc8, 0x92,
+ 0x69, 0xcb, 0xc3, 0xa1, 0xae, 0x95, 0x4f, 0x77, 0x0a, 0x46, 0x18, 0x49,
+ 0x7c, 0x62, 0x83, 0x47, 0x94, 0x43, 0xfc, 0x31, 0xb7, 0xbb, 0x2f, 0x53,
+ 0x6b, 0xef, 0xbc, 0x0c, 0xe2, 0x09, 0x8e, 0x3a, 0xcf, 0x8e, 0x8a, 0x7e,
+ 0xe5, 0x2b, 0xd8, 0x7f,
+};
+static const struct drbg_kat_pr_true kat3195_t = {
+ 14, kat3195_entropyin, kat3195_nonce, kat3195_persstr,
+ kat3195_entropyinpr1, kat3195_addinpr1, kat3195_entropyinpr2,
+ kat3195_addinpr2, kat3195_retbits
+};
+static const struct drbg_kat kat3195 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3195_t
+};
+
+static const unsigned char kat3196_entropyin[] = {
+ 0x79, 0x93, 0x07, 0xf7, 0x67, 0xda, 0x25, 0xbd, 0xf4, 0x94, 0x92, 0x30,
+ 0x8b, 0x5b, 0xfd, 0x8b, 0x84, 0x9e, 0x00, 0x9a, 0x6a, 0xac, 0x51, 0xf9,
+};
+static const unsigned char kat3196_nonce[] = {
+ 0xb0, 0x17, 0xf3, 0xd9, 0x6f, 0xc3, 0x9f, 0x56, 0x36, 0xa6, 0xe8, 0x96,
+ 0xea, 0x2b, 0x7e, 0x30,
+};
+static const unsigned char kat3196_persstr[] = {0};
+static const unsigned char kat3196_entropyinpr1[] = {
+ 0x72, 0x7a, 0x6c, 0xea, 0xe6, 0x0f, 0x22, 0xe0, 0x15, 0x0c, 0x05, 0x1d,
+ 0xb3, 0x15, 0xcf, 0x83, 0x2e, 0x39, 0xb4, 0xa7, 0xe5, 0x54, 0x6a, 0xf4,
+};
+static const unsigned char kat3196_addinpr1[] = {
+ 0x47, 0x1f, 0x6c, 0x0c, 0xcc, 0xdc, 0x8a, 0xf9, 0x81, 0x06, 0xcd, 0x01,
+ 0x98, 0x35, 0xa2, 0x63, 0xc9, 0xc8, 0xb6, 0x36, 0xa1, 0xb2, 0x4d, 0x66,
+ 0xdb, 0x74, 0xe0, 0x06, 0x48, 0x3f, 0x96, 0xb1,
+};
+static const unsigned char kat3196_entropyinpr2[] = {
+ 0xfe, 0x01, 0x60, 0x12, 0x15, 0x0e, 0xda, 0x19, 0xca, 0xe9, 0x7d, 0x19,
+ 0x0c, 0xb0, 0xe0, 0x98, 0xed, 0x36, 0x62, 0xf2, 0x3b, 0x6f, 0x09, 0xfd,
+};
+static const unsigned char kat3196_addinpr2[] = {
+ 0xb5, 0x77, 0x6d, 0x5c, 0xc3, 0x44, 0x59, 0xf7, 0x3a, 0xf5, 0xc8, 0x20,
+ 0x8f, 0x1c, 0x83, 0xff, 0xe7, 0x58, 0x84, 0x07, 0x99, 0xae, 0x51, 0x62,
+ 0xe7, 0xbb, 0xa6, 0x96, 0xa4, 0x5f, 0x87, 0x6f,
+};
+static const unsigned char kat3196_retbits[] = {
+ 0xa2, 0x82, 0x7f, 0x89, 0x7a, 0x76, 0xa4, 0xbe, 0x69, 0xe2, 0x7d, 0xff,
+ 0x51, 0x1a, 0x38, 0x4e, 0xc7, 0x31, 0xec, 0xfc, 0x7b, 0x15, 0x94, 0xe3,
+ 0x81, 0x5d, 0x02, 0x4d, 0x96, 0x15, 0xf8, 0x6f, 0x58, 0xd8, 0x0d, 0x57,
+ 0x3d, 0xf8, 0xd6, 0xd1, 0x1a, 0x34, 0x59, 0x88, 0x4b, 0x22, 0x7d, 0xf7,
+ 0xa3, 0x3d, 0x8d, 0x3c, 0xe3, 0xf5, 0xd7, 0xa7, 0x5a, 0xa9, 0x93, 0xc5,
+ 0x3e, 0x7e, 0x0c, 0x0f,
+};
+static const struct drbg_kat_pr_true kat3196_t = {
+ 0, kat3196_entropyin, kat3196_nonce, kat3196_persstr,
+ kat3196_entropyinpr1, kat3196_addinpr1, kat3196_entropyinpr2,
+ kat3196_addinpr2, kat3196_retbits
+};
+static const struct drbg_kat kat3196 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3196_t
+};
+
+static const unsigned char kat3197_entropyin[] = {
+ 0x61, 0x0a, 0xc4, 0xad, 0xbf, 0x4a, 0xbf, 0xea, 0xaa, 0x64, 0x73, 0xd1,
+ 0x7a, 0x8b, 0xc2, 0xae, 0x84, 0x06, 0xb6, 0x16, 0xed, 0x35, 0xd0, 0x01,
+};
+static const unsigned char kat3197_nonce[] = {
+ 0x0f, 0xbe, 0xec, 0x6e, 0xc5, 0xdd, 0x02, 0x78, 0x43, 0x69, 0x2f, 0x78,
+ 0x30, 0x59, 0x3f, 0xec,
+};
+static const unsigned char kat3197_persstr[] = {0};
+static const unsigned char kat3197_entropyinpr1[] = {
+ 0xc6, 0x82, 0x61, 0xa6, 0x04, 0x8f, 0x1e, 0x30, 0x75, 0x64, 0x66, 0x5c,
+ 0xa4, 0xa0, 0x93, 0x14, 0x87, 0x7b, 0xed, 0xd1, 0xa8, 0xe4, 0x8b, 0xc6,
+};
+static const unsigned char kat3197_addinpr1[] = {
+ 0xe4, 0x0a, 0xb0, 0x9d, 0x92, 0xa1, 0x77, 0xef, 0xad, 0x23, 0x4e, 0xe9,
+ 0xa8, 0xef, 0x12, 0x04, 0x37, 0x73, 0x5e, 0x54, 0x7b, 0xcd, 0x8c, 0xcd,
+ 0x5c, 0x69, 0x02, 0x07, 0x35, 0xd0, 0x1c, 0xb3,
+};
+static const unsigned char kat3197_entropyinpr2[] = {
+ 0xcf, 0x84, 0xe3, 0xcc, 0x12, 0x73, 0x16, 0x39, 0x49, 0xdb, 0x23, 0xc8,
+ 0x98, 0xa3, 0xb3, 0x22, 0xfb, 0x11, 0xe7, 0x5d, 0xc3, 0x95, 0x99, 0xa3,
+};
+static const unsigned char kat3197_addinpr2[] = {
+ 0x75, 0x87, 0x50, 0x78, 0x69, 0x18, 0x48, 0x0d, 0xce, 0x2c, 0x3e, 0x3f,
+ 0xee, 0xee, 0xa0, 0x32, 0x4c, 0xb9, 0xb0, 0xb5, 0x07, 0x90, 0x67, 0xbd,
+ 0x3f, 0x9c, 0x45, 0xb9, 0xf0, 0xe7, 0x33, 0xec,
+};
+static const unsigned char kat3197_retbits[] = {
+ 0x10, 0x57, 0x47, 0x58, 0xda, 0xf5, 0x9f, 0xee, 0x6b, 0xf7, 0x60, 0xb9,
+ 0x7f, 0xea, 0xbf, 0x24, 0xc0, 0x58, 0xa9, 0x5e, 0x59, 0x4b, 0x1a, 0x2a,
+ 0x80, 0x16, 0x36, 0x35, 0x44, 0x59, 0x82, 0x1e, 0x06, 0x1c, 0x4b, 0xce,
+ 0x3d, 0xfb, 0x16, 0xfb, 0xae, 0xb1, 0x42, 0xcb, 0x20, 0xd8, 0xac, 0xc6,
+ 0x8b, 0x75, 0x56, 0x4a, 0xed, 0x23, 0x06, 0xaa, 0x9a, 0x7c, 0x11, 0xe9,
+ 0x67, 0xc0, 0x6d, 0x3d,
+};
+static const struct drbg_kat_pr_true kat3197_t = {
+ 1, kat3197_entropyin, kat3197_nonce, kat3197_persstr,
+ kat3197_entropyinpr1, kat3197_addinpr1, kat3197_entropyinpr2,
+ kat3197_addinpr2, kat3197_retbits
+};
+static const struct drbg_kat kat3197 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3197_t
+};
+
+static const unsigned char kat3198_entropyin[] = {
+ 0xfa, 0x45, 0xa6, 0x07, 0xc9, 0x3d, 0xa2, 0x05, 0x93, 0xe5, 0x10, 0x06,
+ 0x98, 0x49, 0x8c, 0x44, 0x07, 0x2b, 0x3a, 0xf7, 0xcd, 0x31, 0x36, 0x63,
+};
+static const unsigned char kat3198_nonce[] = {
+ 0x36, 0x95, 0xf3, 0x84, 0xde, 0x48, 0xb5, 0x8c, 0x1b, 0x4e, 0xc2, 0x30,
+ 0xcd, 0x16, 0xc4, 0x85,
+};
+static const unsigned char kat3198_persstr[] = {0};
+static const unsigned char kat3198_entropyinpr1[] = {
+ 0x70, 0xbd, 0x4e, 0x4c, 0xa0, 0x6f, 0x3d, 0xae, 0xae, 0x8b, 0xfd, 0x68,
+ 0x7a, 0x10, 0x31, 0xc0, 0x67, 0xf0, 0x00, 0xf8, 0xc1, 0x3d, 0x25, 0x64,
+};
+static const unsigned char kat3198_addinpr1[] = {
+ 0x9b, 0xe9, 0x78, 0x0a, 0xa7, 0xcc, 0xc9, 0x63, 0x36, 0x9b, 0xb7, 0xb6,
+ 0x41, 0x26, 0x66, 0x8c, 0xa2, 0x9f, 0x66, 0xad, 0x66, 0xbf, 0x3d, 0xef,
+ 0x3a, 0xb4, 0x3f, 0xe1, 0xd9, 0x18, 0x01, 0x54,
+};
+static const unsigned char kat3198_entropyinpr2[] = {
+ 0xac, 0xdd, 0xc6, 0xfe, 0x2c, 0x83, 0x7f, 0x63, 0x70, 0xbd, 0x88, 0x8a,
+ 0xb9, 0x68, 0x7a, 0x81, 0x92, 0x79, 0x81, 0x60, 0xcf, 0xf9, 0x3f, 0x4f,
+};
+static const unsigned char kat3198_addinpr2[] = {
+ 0x27, 0x07, 0x9d, 0x97, 0x67, 0xef, 0x5c, 0xbd, 0x1d, 0x13, 0xbe, 0xbb,
+ 0x94, 0x1c, 0x45, 0xe6, 0x65, 0x9f, 0x44, 0x05, 0xfe, 0x87, 0xfe, 0x17,
+ 0x8a, 0xf3, 0x3e, 0x3e, 0xc2, 0xb2, 0xf0, 0xcd,
+};
+static const unsigned char kat3198_retbits[] = {
+ 0x96, 0x11, 0x5c, 0xdd, 0xb0, 0x64, 0xba, 0xf4, 0x8d, 0x0b, 0xdd, 0x62,
+ 0x91, 0xd3, 0x4c, 0x3c, 0x93, 0x2a, 0x87, 0xf1, 0x1b, 0x32, 0xb5, 0x98,
+ 0x67, 0x74, 0xd0, 0x89, 0x39, 0xea, 0xe6, 0x35, 0x71, 0x9d, 0xc7, 0xea,
+ 0x02, 0x09, 0x2c, 0x81, 0x82, 0xcf, 0x01, 0xcb, 0xed, 0xa5, 0x9e, 0x90,
+ 0x28, 0xb3, 0x76, 0x45, 0xf0, 0x33, 0x65, 0x91, 0x4a, 0x18, 0xe0, 0x75,
+ 0xc3, 0x57, 0xb0, 0xc2,
+};
+static const struct drbg_kat_pr_true kat3198_t = {
+ 2, kat3198_entropyin, kat3198_nonce, kat3198_persstr,
+ kat3198_entropyinpr1, kat3198_addinpr1, kat3198_entropyinpr2,
+ kat3198_addinpr2, kat3198_retbits
+};
+static const struct drbg_kat kat3198 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3198_t
+};
+
+static const unsigned char kat3199_entropyin[] = {
+ 0x9d, 0x0c, 0xe2, 0x29, 0xeb, 0xd8, 0x63, 0x86, 0xff, 0x15, 0x01, 0x88,
+ 0xa9, 0x46, 0x6d, 0x56, 0xcf, 0x16, 0xb7, 0x06, 0xf9, 0x53, 0x3f, 0xd0,
+};
+static const unsigned char kat3199_nonce[] = {
+ 0xf8, 0x7c, 0x24, 0x5d, 0x50, 0xe2, 0x8f, 0xb6, 0xda, 0xbb, 0x96, 0x3a,
+ 0x2b, 0xf0, 0x4b, 0x29,
+};
+static const unsigned char kat3199_persstr[] = {0};
+static const unsigned char kat3199_entropyinpr1[] = {
+ 0x1f, 0x0d, 0xd0, 0x36, 0x34, 0xdc, 0xb2, 0xee, 0x91, 0x92, 0xd8, 0x4b,
+ 0x12, 0xd7, 0xcf, 0x5e, 0x4a, 0xc8, 0x52, 0x59, 0xf0, 0xab, 0xb5, 0xed,
+};
+static const unsigned char kat3199_addinpr1[] = {
+ 0xfa, 0xf3, 0xdc, 0x3a, 0xf3, 0xdf, 0xeb, 0x4e, 0x56, 0xbe, 0xd8, 0x77,
+ 0x5e, 0x4f, 0xbc, 0x32, 0x96, 0x1a, 0xee, 0xe0, 0x87, 0xe0, 0x14, 0xe5,
+ 0xd8, 0x52, 0xd6, 0xf4, 0x61, 0x93, 0xa4, 0x4f,
+};
+static const unsigned char kat3199_entropyinpr2[] = {
+ 0xd1, 0x72, 0x20, 0xc9, 0xd8, 0xff, 0x2d, 0xcc, 0x17, 0x5d, 0x74, 0x81,
+ 0x99, 0xc1, 0x72, 0x17, 0x33, 0xea, 0xa1, 0xca, 0xb5, 0x2a, 0xd3, 0x14,
+};
+static const unsigned char kat3199_addinpr2[] = {
+ 0xb4, 0xc2, 0x9c, 0x47, 0x6f, 0xd0, 0xdf, 0xf9, 0xf7, 0x7f, 0x41, 0xe7,
+ 0x5d, 0x48, 0x4e, 0x80, 0x46, 0x66, 0xdc, 0x30, 0xdc, 0x63, 0xce, 0x79,
+ 0xa3, 0xc2, 0xd0, 0xa8, 0x11, 0x5f, 0xf3, 0xff,
+};
+static const unsigned char kat3199_retbits[] = {
+ 0x56, 0xf5, 0x32, 0x25, 0x2e, 0xc3, 0x11, 0x27, 0xbd, 0x13, 0xbc, 0x1e,
+ 0x3e, 0xa0, 0xf6, 0x4d, 0x76, 0xfc, 0x0f, 0x5f, 0xfd, 0xa3, 0xd8, 0xfc,
+ 0x8b, 0xc8, 0x79, 0x1f, 0x81, 0x40, 0x98, 0xef, 0xb6, 0xf7, 0x24, 0xb9,
+ 0xd9, 0xd7, 0x15, 0xbc, 0x6d, 0x90, 0x1c, 0x71, 0x3a, 0x0b, 0x17, 0x79,
+ 0x18, 0x52, 0xb7, 0x5b, 0x61, 0xfa, 0x2f, 0x20, 0x41, 0x16, 0x67, 0x85,
+ 0x3c, 0xe6, 0xac, 0x9a,
+};
+static const struct drbg_kat_pr_true kat3199_t = {
+ 3, kat3199_entropyin, kat3199_nonce, kat3199_persstr,
+ kat3199_entropyinpr1, kat3199_addinpr1, kat3199_entropyinpr2,
+ kat3199_addinpr2, kat3199_retbits
+};
+static const struct drbg_kat kat3199 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3199_t
+};
+
+static const unsigned char kat3200_entropyin[] = {
+ 0xc3, 0xf9, 0xca, 0x8e, 0x42, 0xed, 0x21, 0xb5, 0xba, 0x54, 0x1e, 0x9d,
+ 0x55, 0xec, 0x2a, 0xf8, 0x4a, 0xa4, 0xd2, 0x04, 0x5a, 0x32, 0x23, 0x1b,
+};
+static const unsigned char kat3200_nonce[] = {
+ 0xa5, 0x8f, 0x38, 0x11, 0xc3, 0xf3, 0xc5, 0x97, 0xb8, 0xbb, 0xc5, 0x14,
+ 0x25, 0x2a, 0xc8, 0xd0,
+};
+static const unsigned char kat3200_persstr[] = {0};
+static const unsigned char kat3200_entropyinpr1[] = {
+ 0x69, 0x97, 0xc7, 0x60, 0x57, 0x50, 0x66, 0x8a, 0xc6, 0x0d, 0xb9, 0x92,
+ 0x7a, 0xb4, 0xd5, 0x96, 0x6b, 0x60, 0xa3, 0xe7, 0x65, 0xdf, 0xf9, 0x2a,
+};
+static const unsigned char kat3200_addinpr1[] = {
+ 0xd1, 0x80, 0xeb, 0x02, 0xd1, 0xb0, 0x87, 0x8e, 0x27, 0x2f, 0x76, 0x40,
+ 0xea, 0x6a, 0xb8, 0xb7, 0x4d, 0x8e, 0x45, 0x7c, 0x55, 0x4f, 0x8f, 0xa3,
+ 0x0a, 0x04, 0xe2, 0xbd, 0x5b, 0x89, 0x7d, 0x55,
+};
+static const unsigned char kat3200_entropyinpr2[] = {
+ 0x00, 0xbf, 0x99, 0xf0, 0xf6, 0x81, 0xd4, 0x6b, 0x97, 0x30, 0xf3, 0xec,
+ 0x5b, 0xe8, 0x8d, 0x3e, 0xa2, 0x22, 0xb2, 0x4b, 0xf4, 0x7f, 0x7c, 0x7e,
+};
+static const unsigned char kat3200_addinpr2[] = {
+ 0xf2, 0x1b, 0x77, 0x53, 0x6d, 0x48, 0x2f, 0x5c, 0xbd, 0xd7, 0x3f, 0x78,
+ 0xc8, 0x11, 0x15, 0xc5, 0x1b, 0xaa, 0x83, 0xd8, 0x3f, 0x3c, 0xf0, 0x5b,
+ 0x76, 0xf7, 0x9f, 0x09, 0x71, 0x05, 0x64, 0x24,
+};
+static const unsigned char kat3200_retbits[] = {
+ 0xe2, 0x57, 0xcc, 0x1a, 0x5f, 0xbd, 0x0d, 0xa1, 0x66, 0x67, 0x12, 0x0e,
+ 0x64, 0xa2, 0x86, 0xda, 0xd5, 0xb1, 0xa7, 0x62, 0x81, 0xac, 0xa2, 0xf5,
+ 0x53, 0x48, 0x7f, 0x08, 0x18, 0x2e, 0x85, 0xdc, 0xd3, 0xf3, 0xf2, 0x28,
+ 0x49, 0x6b, 0x9b, 0xca, 0x7c, 0x8c, 0x26, 0x39, 0x16, 0x90, 0x52, 0x52,
+ 0xcf, 0xcf, 0x16, 0xd7, 0x4e, 0x19, 0x64, 0x81, 0x98, 0xc8, 0xc3, 0x0f,
+ 0x20, 0x1e, 0x02, 0xcc,
+};
+static const struct drbg_kat_pr_true kat3200_t = {
+ 4, kat3200_entropyin, kat3200_nonce, kat3200_persstr,
+ kat3200_entropyinpr1, kat3200_addinpr1, kat3200_entropyinpr2,
+ kat3200_addinpr2, kat3200_retbits
+};
+static const struct drbg_kat kat3200 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3200_t
+};
+
+static const unsigned char kat3201_entropyin[] = {
+ 0x21, 0xe3, 0x0a, 0x59, 0x11, 0x68, 0x5d, 0x64, 0x64, 0x86, 0x88, 0x3f,
+ 0xef, 0x30, 0x7b, 0x6c, 0x1d, 0x1c, 0x70, 0xe2, 0x21, 0x1c, 0x5b, 0x09,
+};
+static const unsigned char kat3201_nonce[] = {
+ 0x9b, 0x27, 0xbc, 0x3f, 0x94, 0xd4, 0x3b, 0xf9, 0x27, 0x4c, 0xd7, 0xee,
+ 0x6c, 0xc4, 0x3f, 0xe3,
+};
+static const unsigned char kat3201_persstr[] = {0};
+static const unsigned char kat3201_entropyinpr1[] = {
+ 0x84, 0x24, 0xca, 0x5b, 0xd8, 0xda, 0x13, 0xc4, 0x88, 0xfd, 0x1a, 0xe4,
+ 0xa5, 0xde, 0xc6, 0x61, 0x63, 0xe1, 0x52, 0x8a, 0x5d, 0xf4, 0xc7, 0x4f,
+};
+static const unsigned char kat3201_addinpr1[] = {
+ 0xc5, 0xdf, 0xc8, 0xf7, 0xa3, 0x00, 0xa4, 0x89, 0xe7, 0x44, 0x00, 0x8e,
+ 0x71, 0x87, 0x5c, 0xce, 0xa0, 0x29, 0x3f, 0x1a, 0x41, 0x3a, 0xfc, 0x31,
+ 0x9c, 0x7b, 0x9d, 0x21, 0xd7, 0xfa, 0x99, 0x47,
+};
+static const unsigned char kat3201_entropyinpr2[] = {
+ 0x5c, 0x42, 0x67, 0x39, 0x9e, 0x19, 0x08, 0xe2, 0xac, 0xaf, 0x12, 0xc7,
+ 0x36, 0x4f, 0x09, 0x9b, 0xd8, 0xa2, 0x14, 0xe4, 0xdc, 0xa1, 0x4a, 0xb3,
+};
+static const unsigned char kat3201_addinpr2[] = {
+ 0x40, 0x10, 0x51, 0x1d, 0x82, 0xf1, 0x05, 0x1a, 0x7f, 0xf7, 0xf6, 0x39,
+ 0x85, 0xa8, 0xfa, 0xf4, 0xd4, 0xf9, 0x87, 0x06, 0x08, 0x5f, 0x89, 0x5f,
+ 0x05, 0x14, 0xe7, 0x8c, 0x6a, 0xb2, 0xc5, 0x45,
+};
+static const unsigned char kat3201_retbits[] = {
+ 0x66, 0x74, 0x40, 0xd6, 0x7d, 0x90, 0x27, 0x93, 0x1e, 0x16, 0xc6, 0xd0,
+ 0xa9, 0x14, 0x61, 0xf5, 0xaf, 0xed, 0x62, 0x02, 0xbb, 0x14, 0xdf, 0xf0,
+ 0xad, 0xff, 0x70, 0x15, 0x96, 0x89, 0x9d, 0x90, 0xe3, 0xd2, 0xd6, 0xa4,
+ 0xf1, 0x61, 0xc8, 0xc6, 0x3e, 0x18, 0x3d, 0x2e, 0xd9, 0x7a, 0x6e, 0xa8,
+ 0x4e, 0x62, 0x2b, 0xf1, 0xa0, 0x78, 0xa2, 0x80, 0xde, 0x38, 0xec, 0x8a,
+ 0x1b, 0xec, 0xf6, 0xa2,
+};
+static const struct drbg_kat_pr_true kat3201_t = {
+ 5, kat3201_entropyin, kat3201_nonce, kat3201_persstr,
+ kat3201_entropyinpr1, kat3201_addinpr1, kat3201_entropyinpr2,
+ kat3201_addinpr2, kat3201_retbits
+};
+static const struct drbg_kat kat3201 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3201_t
+};
+
+static const unsigned char kat3202_entropyin[] = {
+ 0x7d, 0x89, 0xc0, 0x96, 0xa9, 0x74, 0xca, 0x72, 0xbf, 0xfd, 0x0f, 0x16,
+ 0x75, 0xe8, 0x51, 0x9f, 0x66, 0x78, 0xad, 0x06, 0x49, 0xcd, 0x09, 0xd3,
+};
+static const unsigned char kat3202_nonce[] = {
+ 0xe6, 0x37, 0xe4, 0xb1, 0x75, 0x10, 0xff, 0x37, 0x9c, 0x1e, 0x63, 0x0c,
+ 0x99, 0x04, 0xc1, 0xe5,
+};
+static const unsigned char kat3202_persstr[] = {0};
+static const unsigned char kat3202_entropyinpr1[] = {
+ 0xa3, 0x8a, 0xca, 0x2b, 0x9f, 0xc8, 0x89, 0x0a, 0x79, 0xb0, 0xae, 0x27,
+ 0x2c, 0x8f, 0xe0, 0x06, 0xa9, 0x20, 0x23, 0xfb, 0xb5, 0xcf, 0xee, 0xb9,
+};
+static const unsigned char kat3202_addinpr1[] = {
+ 0xba, 0x42, 0xb4, 0x67, 0x25, 0xff, 0xa4, 0xe2, 0x4e, 0x08, 0x6c, 0xee,
+ 0x7c, 0x9d, 0x7b, 0x3d, 0xab, 0xe0, 0x05, 0xf2, 0x87, 0x85, 0x2a, 0x7f,
+ 0x12, 0x7a, 0x8e, 0xf7, 0x8f, 0x88, 0xce, 0x79,
+};
+static const unsigned char kat3202_entropyinpr2[] = {
+ 0xcd, 0x81, 0xa1, 0x76, 0x03, 0xeb, 0x54, 0x5b, 0x69, 0x63, 0x18, 0x4e,
+ 0x44, 0x91, 0x00, 0x8d, 0x19, 0x27, 0x47, 0x43, 0x74, 0xef, 0x7c, 0x49,
+};
+static const unsigned char kat3202_addinpr2[] = {
+ 0xd7, 0x4e, 0x9b, 0xfb, 0x7b, 0x66, 0xaa, 0x6e, 0xa8, 0x87, 0xd3, 0x8a,
+ 0xc5, 0x34, 0xb7, 0xed, 0x35, 0xce, 0x4c, 0xf5, 0xce, 0x4b, 0x0d, 0xe6,
+ 0x22, 0x24, 0x11, 0x96, 0x96, 0xec, 0xae, 0x15,
+};
+static const unsigned char kat3202_retbits[] = {
+ 0x88, 0x4c, 0x36, 0xfb, 0xa5, 0x7c, 0x1a, 0x35, 0xd9, 0xba, 0xab, 0xb9,
+ 0xc6, 0xeb, 0xf4, 0xea, 0xf8, 0xab, 0x70, 0x99, 0x7b, 0x4c, 0xa3, 0x11,
+ 0x64, 0x90, 0x7d, 0x2d, 0xc1, 0xf0, 0xf7, 0x4e, 0xda, 0x8d, 0xdb, 0x88,
+ 0xe6, 0xb4, 0x91, 0xad, 0x8a, 0x9d, 0x92, 0xd4, 0x4d, 0x78, 0xb0, 0xd0,
+ 0xe0, 0x0f, 0x27, 0x56, 0x0e, 0x28, 0xc6, 0xf9, 0x41, 0x8d, 0xfe, 0xe1,
+ 0x94, 0x85, 0x05, 0x25,
+};
+static const struct drbg_kat_pr_true kat3202_t = {
+ 6, kat3202_entropyin, kat3202_nonce, kat3202_persstr,
+ kat3202_entropyinpr1, kat3202_addinpr1, kat3202_entropyinpr2,
+ kat3202_addinpr2, kat3202_retbits
+};
+static const struct drbg_kat kat3202 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3202_t
+};
+
+static const unsigned char kat3203_entropyin[] = {
+ 0xb8, 0xb0, 0xbb, 0x2c, 0x41, 0xa5, 0x9c, 0x2d, 0x77, 0xec, 0xf5, 0xa2,
+ 0x59, 0x96, 0x77, 0x38, 0x2e, 0xf4, 0x3e, 0x6c, 0xea, 0x7b, 0x17, 0xa2,
+};
+static const unsigned char kat3203_nonce[] = {
+ 0xbf, 0x44, 0x6c, 0x79, 0xa7, 0xe2, 0x38, 0x98, 0x15, 0xfa, 0xc6, 0x30,
+ 0x73, 0x10, 0x0a, 0xf1,
+};
+static const unsigned char kat3203_persstr[] = {0};
+static const unsigned char kat3203_entropyinpr1[] = {
+ 0xaa, 0x5b, 0x73, 0x82, 0xf9, 0x66, 0xbe, 0xfe, 0x52, 0x44, 0x72, 0xc1,
+ 0xeb, 0xdb, 0x4c, 0x05, 0xd1, 0x73, 0xc3, 0xd1, 0x8b, 0x58, 0xf2, 0x58,
+};
+static const unsigned char kat3203_addinpr1[] = {
+ 0x82, 0xb5, 0x53, 0xa7, 0xb2, 0xf6, 0x33, 0xf2, 0x99, 0x9d, 0x25, 0xec,
+ 0xb2, 0x8b, 0x0f, 0x73, 0x58, 0xd4, 0x16, 0xd1, 0x37, 0x64, 0xed, 0xd3,
+ 0x60, 0x3b, 0x19, 0x09, 0x65, 0x8c, 0xce, 0xff,
+};
+static const unsigned char kat3203_entropyinpr2[] = {
+ 0xb9, 0x9a, 0x1f, 0x90, 0x66, 0x42, 0x94, 0x5a, 0xd1, 0xb8, 0x78, 0xd4,
+ 0xe2, 0x23, 0x80, 0xea, 0xb1, 0xf0, 0xfc, 0x49, 0x13, 0x6a, 0x99, 0xc7,
+};
+static const unsigned char kat3203_addinpr2[] = {
+ 0xf7, 0x41, 0xe2, 0x52, 0x34, 0xc3, 0x8b, 0x51, 0x54, 0x76, 0x9e, 0xac,
+ 0x96, 0x75, 0xe9, 0x4a, 0x77, 0x6d, 0x71, 0x8f, 0x40, 0xbb, 0x8f, 0x74,
+ 0x32, 0x33, 0x9c, 0x6a, 0x0f, 0xa6, 0x22, 0x5e,
+};
+static const unsigned char kat3203_retbits[] = {
+ 0xce, 0x9e, 0x56, 0xd6, 0x2b, 0xde, 0xa9, 0x23, 0x5b, 0x9e, 0x3f, 0x11,
+ 0x35, 0x15, 0x0a, 0x7e, 0xeb, 0x8d, 0x17, 0xdc, 0x9a, 0x9e, 0x07, 0x20,
+ 0xbe, 0xe5, 0x9a, 0x0c, 0xae, 0xcb, 0x93, 0x64, 0xd2, 0x8e, 0xe7, 0x51,
+ 0xe2, 0x04, 0xd4, 0x8e, 0xb0, 0x0d, 0xa7, 0xda, 0x8e, 0x9e, 0xd8, 0x37,
+ 0xa6, 0xf5, 0xc7, 0xa7, 0x2e, 0x60, 0xa2, 0x1c, 0x1c, 0x48, 0x3f, 0xac,
+ 0x19, 0x8e, 0xfc, 0x5b,
+};
+static const struct drbg_kat_pr_true kat3203_t = {
+ 7, kat3203_entropyin, kat3203_nonce, kat3203_persstr,
+ kat3203_entropyinpr1, kat3203_addinpr1, kat3203_entropyinpr2,
+ kat3203_addinpr2, kat3203_retbits
+};
+static const struct drbg_kat kat3203 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3203_t
+};
+
+static const unsigned char kat3204_entropyin[] = {
+ 0x4b, 0xbb, 0x9d, 0xea, 0xa8, 0x2d, 0x4a, 0x4b, 0x70, 0x07, 0xf3, 0xf4,
+ 0x01, 0x2a, 0x34, 0x45, 0x05, 0x21, 0x86, 0x81, 0xf9, 0x88, 0x85, 0x30,
+};
+static const unsigned char kat3204_nonce[] = {
+ 0x8e, 0x45, 0xeb, 0xbb, 0x2f, 0x30, 0xd1, 0xef, 0x28, 0x8e, 0x03, 0x43,
+ 0x9e, 0x08, 0xea, 0x2d,
+};
+static const unsigned char kat3204_persstr[] = {0};
+static const unsigned char kat3204_entropyinpr1[] = {
+ 0x81, 0x91, 0x3d, 0x1b, 0x46, 0x9b, 0x1f, 0x32, 0x09, 0x2b, 0x7a, 0x9b,
+ 0x5c, 0x36, 0x1b, 0x1e, 0xe4, 0x45, 0x5f, 0xfe, 0x25, 0x35, 0x67, 0x8d,
+};
+static const unsigned char kat3204_addinpr1[] = {
+ 0xa1, 0x28, 0xd1, 0x28, 0xa0, 0xad, 0x1b, 0x7a, 0x42, 0xaa, 0xfe, 0x64,
+ 0xf2, 0xa6, 0x1c, 0x62, 0x37, 0x8d, 0xe2, 0x83, 0x1d, 0x86, 0x6c, 0x80,
+ 0xe2, 0xff, 0x3b, 0x25, 0x81, 0x71, 0xd8, 0x33,
+};
+static const unsigned char kat3204_entropyinpr2[] = {
+ 0xfc, 0x10, 0x7a, 0x18, 0x10, 0xb0, 0x33, 0x9f, 0x3f, 0x3b, 0xb8, 0x17,
+ 0x21, 0x60, 0x76, 0x9f, 0x3c, 0xde, 0x58, 0x12, 0x95, 0x9a, 0x5c, 0x40,
+};
+static const unsigned char kat3204_addinpr2[] = {
+ 0x05, 0x1e, 0xc7, 0x97, 0xe3, 0xcc, 0xcd, 0x39, 0xc1, 0xce, 0xdf, 0x8d,
+ 0xfa, 0x84, 0xdd, 0x50, 0x50, 0x14, 0x2b, 0xa2, 0xe5, 0x0e, 0xef, 0x31,
+ 0x44, 0xcf, 0x08, 0x11, 0x84, 0x66, 0x34, 0xf1,
+};
+static const unsigned char kat3204_retbits[] = {
+ 0xdb, 0x5a, 0x02, 0x40, 0x7c, 0xa9, 0x77, 0xf9, 0xba, 0x2e, 0x96, 0x2a,
+ 0x68, 0xd2, 0xb0, 0x90, 0xe7, 0x71, 0xea, 0x95, 0x0e, 0xdb, 0xd4, 0xd5,
+ 0x59, 0xbc, 0x11, 0xd4, 0xd5, 0xf5, 0xd8, 0x55, 0x30, 0x85, 0x3e, 0xe8,
+ 0xdb, 0x97, 0xb0, 0x2a, 0xf5, 0x8e, 0xf7, 0x82, 0xe2, 0xfe, 0xba, 0x62,
+ 0x8c, 0x12, 0x38, 0x8d, 0xfb, 0xa2, 0x31, 0x3f, 0x92, 0xbd, 0x63, 0x2c,
+ 0xb6, 0xf5, 0x02, 0xf3,
+};
+static const struct drbg_kat_pr_true kat3204_t = {
+ 8, kat3204_entropyin, kat3204_nonce, kat3204_persstr,
+ kat3204_entropyinpr1, kat3204_addinpr1, kat3204_entropyinpr2,
+ kat3204_addinpr2, kat3204_retbits
+};
+static const struct drbg_kat kat3204 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3204_t
+};
+
+static const unsigned char kat3205_entropyin[] = {
+ 0x17, 0x8c, 0xa6, 0xc5, 0x33, 0xa0, 0xb3, 0x44, 0xe5, 0xdf, 0xbf, 0x5c,
+ 0x46, 0xce, 0x00, 0xa1, 0x38, 0xc7, 0x22, 0x40, 0x63, 0xf9, 0x8f, 0xc9,
+};
+static const unsigned char kat3205_nonce[] = {
+ 0x88, 0x27, 0x89, 0x88, 0x6b, 0xa4, 0x9b, 0x2a, 0x83, 0x34, 0xa6, 0xc1,
+ 0x12, 0x31, 0xdd, 0xe2,
+};
+static const unsigned char kat3205_persstr[] = {0};
+static const unsigned char kat3205_entropyinpr1[] = {
+ 0xf2, 0x68, 0xdb, 0x0c, 0xeb, 0x18, 0x33, 0x10, 0x98, 0x78, 0x77, 0x96,
+ 0x62, 0xe0, 0xc8, 0x96, 0x6d, 0x6f, 0x5b, 0x9b, 0x71, 0x80, 0x95, 0x19,
+};
+static const unsigned char kat3205_addinpr1[] = {
+ 0x7c, 0xb4, 0xe6, 0xf2, 0xd4, 0x47, 0x18, 0x8c, 0x91, 0x44, 0x5f, 0x35,
+ 0xe2, 0x26, 0xa4, 0x64, 0xfb, 0x71, 0x68, 0x73, 0xd7, 0x24, 0x29, 0x2c,
+ 0xe0, 0x08, 0x9f, 0x2c, 0xb5, 0x64, 0x36, 0xc7,
+};
+static const unsigned char kat3205_entropyinpr2[] = {
+ 0x10, 0xb6, 0x20, 0x03, 0x1e, 0xcb, 0xae, 0x42, 0x96, 0x45, 0x98, 0x7c,
+ 0x6b, 0xfc, 0x7e, 0x4e, 0x8d, 0xd4, 0x27, 0xb3, 0x3c, 0xbf, 0x6f, 0x57,
+};
+static const unsigned char kat3205_addinpr2[] = {
+ 0x06, 0xe0, 0x7b, 0x46, 0x99, 0x68, 0x78, 0x53, 0xfb, 0xfc, 0x41, 0xed,
+ 0xed, 0x2a, 0x00, 0x79, 0x08, 0x09, 0x30, 0x6a, 0xc0, 0xf0, 0xa0, 0xfa,
+ 0xd0, 0x1f, 0x64, 0xbd, 0x82, 0x93, 0x9e, 0xe1,
+};
+static const unsigned char kat3205_retbits[] = {
+ 0x73, 0x2d, 0x85, 0x88, 0x64, 0x1c, 0x2b, 0x19, 0x1d, 0x32, 0x8f, 0x95,
+ 0xfd, 0x6b, 0xe5, 0xff, 0xee, 0xbe, 0x06, 0x91, 0x26, 0x00, 0xfb, 0x27,
+ 0xf0, 0x16, 0x3c, 0x95, 0xb5, 0x51, 0xea, 0x22, 0x3d, 0xb3, 0x3f, 0x34,
+ 0x83, 0x78, 0x5a, 0xf0, 0x36, 0x5d, 0x3e, 0x6b, 0xd3, 0xa4, 0x1e, 0xf1,
+ 0x84, 0x1a, 0xd3, 0xc5, 0x1c, 0x20, 0xc4, 0x43, 0xe5, 0xdd, 0xdb, 0x0f,
+ 0xc6, 0x49, 0x1d, 0x61,
+};
+static const struct drbg_kat_pr_true kat3205_t = {
+ 9, kat3205_entropyin, kat3205_nonce, kat3205_persstr,
+ kat3205_entropyinpr1, kat3205_addinpr1, kat3205_entropyinpr2,
+ kat3205_addinpr2, kat3205_retbits
+};
+static const struct drbg_kat kat3205 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3205_t
+};
+
+static const unsigned char kat3206_entropyin[] = {
+ 0xdb, 0x1c, 0x80, 0x0f, 0x4b, 0x14, 0x62, 0x4c, 0x9b, 0x18, 0x87, 0xf3,
+ 0xef, 0x5e, 0x93, 0x56, 0x53, 0x72, 0x68, 0x11, 0xbd, 0x6a, 0x2d, 0x0f,
+};
+static const unsigned char kat3206_nonce[] = {
+ 0x3f, 0x72, 0xc3, 0x96, 0x11, 0xd2, 0xc8, 0x00, 0x82, 0x22, 0x14, 0x39,
+ 0x72, 0x61, 0xc4, 0x6b,
+};
+static const unsigned char kat3206_persstr[] = {0};
+static const unsigned char kat3206_entropyinpr1[] = {
+ 0x09, 0xc7, 0xae, 0xe6, 0x65, 0x7d, 0x5d, 0xae, 0xd2, 0xb3, 0xe2, 0x56,
+ 0xb1, 0x3a, 0xb4, 0x13, 0x68, 0x85, 0x77, 0xe2, 0x94, 0xaf, 0xef, 0x15,
+};
+static const unsigned char kat3206_addinpr1[] = {
+ 0xdf, 0xbe, 0x2a, 0x13, 0xee, 0x44, 0xba, 0x33, 0xc7, 0x66, 0xa4, 0xd4,
+ 0xb1, 0x6e, 0x4b, 0x0a, 0xfc, 0xae, 0xa8, 0xde, 0x65, 0x1a, 0x03, 0x2c,
+ 0xa1, 0x7e, 0xbe, 0x37, 0xde, 0x31, 0x34, 0x8c,
+};
+static const unsigned char kat3206_entropyinpr2[] = {
+ 0x12, 0x72, 0x3e, 0x2a, 0xcf, 0x5a, 0x09, 0xf2, 0x61, 0x4e, 0x33, 0x8f,
+ 0x71, 0x29, 0xbc, 0xad, 0xc5, 0x99, 0xbd, 0xea, 0x4e, 0x26, 0x45, 0x5e,
+};
+static const unsigned char kat3206_addinpr2[] = {
+ 0x11, 0xc6, 0x86, 0x42, 0x52, 0x2a, 0x3a, 0x3f, 0x13, 0xa3, 0x48, 0xad,
+ 0xbf, 0x5b, 0x1b, 0xcb, 0x9f, 0xeb, 0x29, 0x46, 0xe5, 0xd9, 0xee, 0x80,
+ 0x19, 0xb5, 0x95, 0x94, 0x2e, 0x93, 0x73, 0xa2,
+};
+static const unsigned char kat3206_retbits[] = {
+ 0xa3, 0x1b, 0xb7, 0x90, 0x53, 0xd5, 0xe4, 0x38, 0xa2, 0xdc, 0xdf, 0x64,
+ 0xb3, 0x47, 0x5a, 0x9b, 0xf7, 0xba, 0x0b, 0x10, 0xf8, 0x52, 0xd1, 0x87,
+ 0xd4, 0x58, 0x38, 0x96, 0xd1, 0xa1, 0x4e, 0xf2, 0x04, 0xa7, 0xc5, 0x21,
+ 0x09, 0x42, 0x4f, 0x52, 0x51, 0x45, 0x96, 0xfa, 0xe7, 0xc2, 0x72, 0x46,
+ 0x11, 0xb1, 0x8d, 0xb1, 0x1c, 0x85, 0xe9, 0xe6, 0x36, 0x02, 0xcc, 0xb5,
+ 0xcd, 0x9f, 0x53, 0xe6,
+};
+static const struct drbg_kat_pr_true kat3206_t = {
+ 10, kat3206_entropyin, kat3206_nonce, kat3206_persstr,
+ kat3206_entropyinpr1, kat3206_addinpr1, kat3206_entropyinpr2,
+ kat3206_addinpr2, kat3206_retbits
+};
+static const struct drbg_kat kat3206 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3206_t
+};
+
+static const unsigned char kat3207_entropyin[] = {
+ 0x7a, 0xe6, 0x83, 0x88, 0x60, 0x1e, 0xac, 0x16, 0x9b, 0xd0, 0xb3, 0xa8,
+ 0x5e, 0x3d, 0xa2, 0xf7, 0xf6, 0x88, 0xf2, 0xaf, 0xa6, 0xa2, 0xa4, 0x19,
+};
+static const unsigned char kat3207_nonce[] = {
+ 0x3b, 0x08, 0xfd, 0x77, 0x75, 0xeb, 0x82, 0x58, 0xd5, 0x6f, 0xb2, 0x83,
+ 0x35, 0xc2, 0x85, 0xc9,
+};
+static const unsigned char kat3207_persstr[] = {0};
+static const unsigned char kat3207_entropyinpr1[] = {
+ 0x9b, 0x9f, 0x11, 0x9e, 0x2d, 0xf3, 0x5f, 0x79, 0x1d, 0x22, 0xed, 0x4d,
+ 0x8f, 0x80, 0x16, 0x53, 0x03, 0x97, 0xe7, 0x40, 0xfe, 0x15, 0x2d, 0xed,
+};
+static const unsigned char kat3207_addinpr1[] = {
+ 0xdc, 0x80, 0x61, 0xdd, 0xa8, 0x3f, 0x1e, 0xfd, 0xfd, 0x63, 0x65, 0xb5,
+ 0xe5, 0x03, 0x73, 0x37, 0xbf, 0x3e, 0x9a, 0x2f, 0x74, 0xbd, 0x91, 0x45,
+ 0x3c, 0x0e, 0x35, 0xc0, 0xd7, 0xc6, 0xc1, 0x11,
+};
+static const unsigned char kat3207_entropyinpr2[] = {
+ 0x03, 0x4a, 0x60, 0x68, 0xf9, 0x16, 0x2e, 0x0d, 0xc0, 0x05, 0xd6, 0x21,
+ 0x4a, 0xd1, 0xcd, 0x4a, 0xa4, 0xab, 0x7f, 0x39, 0x03, 0xb5, 0x4d, 0xfe,
+};
+static const unsigned char kat3207_addinpr2[] = {
+ 0xe9, 0xc5, 0x69, 0x8c, 0xff, 0x00, 0xaa, 0x40, 0x4b, 0xce, 0x15, 0x20,
+ 0x57, 0xf7, 0x0e, 0xf4, 0x4a, 0x00, 0x2c, 0xaf, 0x0f, 0x39, 0xc3, 0xf1,
+ 0x5a, 0xed, 0xf0, 0xd4, 0x01, 0xfd, 0xbb, 0x5d,
+};
+static const unsigned char kat3207_retbits[] = {
+ 0x9f, 0xd4, 0xe2, 0xf7, 0x70, 0xd7, 0x07, 0xe5, 0x42, 0xcd, 0xea, 0x91,
+ 0xc1, 0x2e, 0x4f, 0xd1, 0x9f, 0x14, 0x72, 0xb4, 0x3f, 0xb5, 0xb7, 0x42,
+ 0x4f, 0x5b, 0x2c, 0xac, 0x20, 0x5c, 0xb3, 0x7f, 0xea, 0x45, 0x96, 0x41,
+ 0x5d, 0xee, 0xdd, 0x8b, 0xde, 0xcc, 0x52, 0xa8, 0xc1, 0xcd, 0xb8, 0xa9,
+ 0x58, 0x4f, 0x43, 0x83, 0x0f, 0x26, 0xda, 0xd8, 0xb6, 0x60, 0x87, 0xe0,
+ 0x68, 0xff, 0x58, 0x72,
+};
+static const struct drbg_kat_pr_true kat3207_t = {
+ 11, kat3207_entropyin, kat3207_nonce, kat3207_persstr,
+ kat3207_entropyinpr1, kat3207_addinpr1, kat3207_entropyinpr2,
+ kat3207_addinpr2, kat3207_retbits
+};
+static const struct drbg_kat kat3207 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3207_t
+};
+
+static const unsigned char kat3208_entropyin[] = {
+ 0xa8, 0xa2, 0x02, 0xef, 0x6a, 0x0d, 0x06, 0xbd, 0xb7, 0x06, 0x97, 0x00,
+ 0x9d, 0xf7, 0x05, 0xd7, 0x68, 0x2f, 0x68, 0x70, 0x71, 0xa1, 0xef, 0x4e,
+};
+static const unsigned char kat3208_nonce[] = {
+ 0xf1, 0x3c, 0x16, 0x57, 0xcb, 0x57, 0x6b, 0xd5, 0x09, 0xaf, 0xfe, 0xff,
+ 0xbf, 0x5d, 0xfd, 0x65,
+};
+static const unsigned char kat3208_persstr[] = {0};
+static const unsigned char kat3208_entropyinpr1[] = {
+ 0xe7, 0x31, 0x0b, 0xf0, 0xbb, 0xb1, 0x30, 0x56, 0x96, 0xb6, 0x90, 0xe1,
+ 0xa3, 0xb8, 0xab, 0xde, 0xb7, 0x91, 0xc3, 0x39, 0x6b, 0xbd, 0xea, 0x9a,
+};
+static const unsigned char kat3208_addinpr1[] = {
+ 0x5e, 0x80, 0x48, 0x4e, 0x0b, 0xc3, 0x7d, 0x6f, 0xf6, 0xcb, 0x20, 0x0f,
+ 0x6e, 0xb9, 0xa9, 0x4f, 0x7a, 0x94, 0x54, 0x07, 0xf9, 0x82, 0x24, 0x52,
+ 0xf7, 0x55, 0xa6, 0x76, 0x75, 0x7b, 0x01, 0x95,
+};
+static const unsigned char kat3208_entropyinpr2[] = {
+ 0x18, 0x32, 0x96, 0x37, 0x12, 0x57, 0x3a, 0x5c, 0xf4, 0x02, 0x2a, 0xc7,
+ 0x67, 0xa3, 0xbb, 0xc0, 0x1d, 0x4e, 0xd1, 0x06, 0x33, 0xdf, 0x0f, 0x3d,
+};
+static const unsigned char kat3208_addinpr2[] = {
+ 0x4c, 0x73, 0x41, 0x94, 0x76, 0x29, 0x28, 0xe9, 0x7a, 0xd6, 0x6c, 0x92,
+ 0xce, 0x0b, 0xe7, 0xca, 0x64, 0xc0, 0x30, 0xd8, 0x3c, 0x91, 0x5b, 0xf0,
+ 0xc1, 0x5c, 0xa6, 0x9f, 0xc5, 0xb8, 0x5f, 0x13,
+};
+static const unsigned char kat3208_retbits[] = {
+ 0xfd, 0xc5, 0xf1, 0x6e, 0x7b, 0xdf, 0x82, 0xdb, 0x39, 0xd8, 0x20, 0xfb,
+ 0x89, 0x77, 0x23, 0x34, 0xc9, 0x22, 0xfa, 0xc2, 0x6b, 0x42, 0x47, 0x89,
+ 0x25, 0x86, 0x73, 0xf5, 0xbf, 0xe5, 0x87, 0x47, 0x06, 0x2a, 0xd3, 0x9a,
+ 0x79, 0x9a, 0xc5, 0x8b, 0xe6, 0x46, 0xdd, 0x9a, 0xad, 0x8c, 0x28, 0xff,
+ 0x2c, 0xe4, 0xeb, 0xe6, 0xec, 0xfd, 0xe1, 0x4a, 0xea, 0xc5, 0x5d, 0xed,
+ 0x27, 0x58, 0x2e, 0x80,
+};
+static const struct drbg_kat_pr_true kat3208_t = {
+ 12, kat3208_entropyin, kat3208_nonce, kat3208_persstr,
+ kat3208_entropyinpr1, kat3208_addinpr1, kat3208_entropyinpr2,
+ kat3208_addinpr2, kat3208_retbits
+};
+static const struct drbg_kat kat3208 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3208_t
+};
+
+static const unsigned char kat3209_entropyin[] = {
+ 0x72, 0xd1, 0x41, 0xb8, 0x6e, 0x58, 0xc0, 0xaf, 0x83, 0x62, 0x66, 0x52,
+ 0xe1, 0x2e, 0x29, 0xcb, 0xb3, 0xc1, 0x07, 0x7b, 0x94, 0xd7, 0x76, 0x90,
+};
+static const unsigned char kat3209_nonce[] = {
+ 0x44, 0x57, 0x87, 0x67, 0x16, 0xf2, 0x91, 0x13, 0x09, 0x10, 0xdf, 0xa2,
+ 0x30, 0x79, 0xa4, 0x0d,
+};
+static const unsigned char kat3209_persstr[] = {0};
+static const unsigned char kat3209_entropyinpr1[] = {
+ 0xb0, 0x79, 0x22, 0x15, 0x0f, 0x47, 0x7e, 0x72, 0x0a, 0x72, 0x82, 0x5f,
+ 0xa4, 0x0c, 0x0e, 0xdb, 0x29, 0x49, 0xef, 0x93, 0x2e, 0x53, 0x36, 0x50,
+};
+static const unsigned char kat3209_addinpr1[] = {
+ 0xce, 0x29, 0xff, 0x13, 0x90, 0x4e, 0x59, 0x3e, 0xa2, 0x28, 0x29, 0x99,
+ 0xb2, 0xfc, 0xbc, 0xb5, 0xda, 0xae, 0x5e, 0x35, 0xff, 0x71, 0xf0, 0x27,
+ 0x3f, 0x6d, 0x85, 0x38, 0xc1, 0x81, 0xb0, 0x4b,
+};
+static const unsigned char kat3209_entropyinpr2[] = {
+ 0x3f, 0x21, 0xb3, 0xf2, 0x1b, 0x03, 0xe3, 0x76, 0xfc, 0x8b, 0xa4, 0x51,
+ 0xb4, 0x5e, 0xe8, 0x29, 0xaa, 0x37, 0xea, 0xf1, 0x2e, 0x1b, 0xf8, 0x81,
+};
+static const unsigned char kat3209_addinpr2[] = {
+ 0x15, 0x4f, 0x42, 0x00, 0x27, 0x7d, 0x19, 0x37, 0xb5, 0x61, 0xe4, 0xcd,
+ 0xf8, 0x56, 0x56, 0xab, 0x2e, 0x41, 0xa3, 0xa0, 0x05, 0x42, 0x39, 0x77,
+ 0xd5, 0x36, 0x1e, 0xaa, 0xd0, 0xbf, 0x18, 0x97,
+};
+static const unsigned char kat3209_retbits[] = {
+ 0x93, 0x23, 0x03, 0x4e, 0x0d, 0x9c, 0x4f, 0x53, 0xea, 0xf5, 0x0b, 0x36,
+ 0x79, 0x26, 0xcc, 0x69, 0x1e, 0x6e, 0xde, 0xd2, 0x07, 0x19, 0x0e, 0x36,
+ 0x9b, 0xdb, 0x2c, 0x7d, 0x8c, 0xf8, 0x59, 0x77, 0x06, 0x8d, 0xb7, 0x75,
+ 0x68, 0xa5, 0xf2, 0x9c, 0x0c, 0x19, 0x13, 0xc3, 0x62, 0xa6, 0x53, 0xcc,
+ 0x2a, 0x1c, 0xe1, 0x81, 0x0a, 0xaa, 0x8e, 0xc3, 0x76, 0xa6, 0x40, 0x0e,
+ 0x25, 0x67, 0xf6, 0x31,
+};
+static const struct drbg_kat_pr_true kat3209_t = {
+ 13, kat3209_entropyin, kat3209_nonce, kat3209_persstr,
+ kat3209_entropyinpr1, kat3209_addinpr1, kat3209_entropyinpr2,
+ kat3209_addinpr2, kat3209_retbits
+};
+static const struct drbg_kat kat3209 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3209_t
+};
+
+static const unsigned char kat3210_entropyin[] = {
+ 0x51, 0x4f, 0x73, 0xb1, 0x7f, 0xd8, 0x1a, 0x39, 0xdc, 0xe9, 0x80, 0x6a,
+ 0xd4, 0xd2, 0xe4, 0x4f, 0xbe, 0x23, 0x88, 0x99, 0x1e, 0x2c, 0x5f, 0xcc,
+};
+static const unsigned char kat3210_nonce[] = {
+ 0x25, 0x88, 0x89, 0x46, 0xbd, 0x90, 0x72, 0xbc, 0x14, 0x29, 0x88, 0x62,
+ 0x3b, 0xce, 0xb3, 0x81,
+};
+static const unsigned char kat3210_persstr[] = {0};
+static const unsigned char kat3210_entropyinpr1[] = {
+ 0x58, 0xff, 0x0f, 0x79, 0xbb, 0x4e, 0x5b, 0x63, 0x87, 0xbc, 0x0d, 0xc2,
+ 0xa4, 0x9b, 0x23, 0x31, 0xc0, 0xcc, 0x06, 0x55, 0x70, 0xf3, 0x8b, 0x22,
+};
+static const unsigned char kat3210_addinpr1[] = {
+ 0xe2, 0x95, 0xab, 0x17, 0x22, 0xe9, 0xd9, 0xba, 0xdc, 0x6c, 0xe8, 0x2a,
+ 0x2e, 0xa6, 0xc7, 0x40, 0x70, 0x22, 0x31, 0xe6, 0x12, 0xa3, 0x16, 0x69,
+ 0x3e, 0x1a, 0x08, 0xa1, 0x89, 0xeb, 0x3a, 0x29,
+};
+static const unsigned char kat3210_entropyinpr2[] = {
+ 0x7f, 0xdb, 0x1b, 0x16, 0x9a, 0xcc, 0xc8, 0xd6, 0x99, 0xa2, 0x5c, 0x52,
+ 0xac, 0xe7, 0x1a, 0x5b, 0x5a, 0x8c, 0xdd, 0x8a, 0x9b, 0x7b, 0xcb, 0x25,
+};
+static const unsigned char kat3210_addinpr2[] = {
+ 0x84, 0xf4, 0x0b, 0x0f, 0x3a, 0x2d, 0x5b, 0x73, 0x7b, 0x35, 0x28, 0xf4,
+ 0xb3, 0xf5, 0xb1, 0x4e, 0x80, 0xe2, 0x0e, 0xc0, 0xb9, 0x9a, 0xca, 0xfc,
+ 0x55, 0x8c, 0x8b, 0xb2, 0xa7, 0xc6, 0x96, 0xbb,
+};
+static const unsigned char kat3210_retbits[] = {
+ 0xc9, 0x72, 0x94, 0x16, 0xff, 0xad, 0x89, 0x44, 0xcc, 0x06, 0xc3, 0xf8,
+ 0xea, 0xeb, 0xfd, 0xd4, 0x42, 0x19, 0xcc, 0x5c, 0xe4, 0xe4, 0x08, 0xc3,
+ 0x22, 0x21, 0xa5, 0x13, 0xf2, 0x85, 0xa3, 0x0b, 0x19, 0xf4, 0xab, 0x45,
+ 0xa4, 0x30, 0xfb, 0x49, 0xbd, 0x68, 0xb7, 0x39, 0x8d, 0xee, 0xbe, 0xa5,
+ 0xa1, 0x94, 0xa4, 0xa2, 0x24, 0x8a, 0x05, 0x47, 0xdf, 0x2f, 0x76, 0x3e,
+ 0x40, 0xee, 0x70, 0x05,
+};
+static const struct drbg_kat_pr_true kat3210_t = {
+ 14, kat3210_entropyin, kat3210_nonce, kat3210_persstr,
+ kat3210_entropyinpr1, kat3210_addinpr1, kat3210_entropyinpr2,
+ kat3210_addinpr2, kat3210_retbits
+};
+static const struct drbg_kat kat3210 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3210_t
+};
+
+static const unsigned char kat3211_entropyin[] = {
+ 0x96, 0x31, 0xd3, 0xfe, 0xe5, 0xe8, 0xed, 0x7c, 0x6c, 0x19, 0x62, 0x18,
+ 0x51, 0x01, 0xbb, 0x20, 0x23, 0x04, 0x95, 0xbc, 0xb9, 0xde, 0xac, 0x3d,
+};
+static const unsigned char kat3211_nonce[] = {
+ 0x75, 0x50, 0x8c, 0xd6, 0xe5, 0xf3, 0x76, 0xf9, 0x0f, 0x80, 0xc6, 0x4e,
+ 0x77, 0xfe, 0xb1, 0xee,
+};
+static const unsigned char kat3211_persstr[] = {
+ 0x21, 0x31, 0xc8, 0x25, 0x72, 0xd1, 0x02, 0x7a, 0xb1, 0xbb, 0x86, 0x0f,
+ 0x7a, 0x8c, 0x54, 0xa1, 0xda, 0x20, 0xcb, 0x2d, 0xae, 0x5d, 0x25, 0x4a,
+ 0x79, 0xc1, 0x24, 0x07, 0x05, 0xd1, 0x47, 0x9f,
+};
+static const unsigned char kat3211_entropyinpr1[] = {
+ 0x86, 0x54, 0x06, 0xad, 0x56, 0xd8, 0x63, 0x16, 0x41, 0xfb, 0x2d, 0xcd,
+ 0xf9, 0xb8, 0x04, 0x8e, 0x4e, 0x82, 0xed, 0x50, 0x7d, 0x5c, 0xc9, 0xd9,
+};
+static const unsigned char kat3211_addinpr1[] = {0};
+static const unsigned char kat3211_entropyinpr2[] = {
+ 0xbb, 0x90, 0x4d, 0x8f, 0xb6, 0xb0, 0x25, 0xa5, 0x01, 0x35, 0x10, 0x26,
+ 0x36, 0x95, 0x68, 0x7a, 0xb2, 0x02, 0x95, 0x52, 0xeb, 0x99, 0xc5, 0x75,
+};
+static const unsigned char kat3211_addinpr2[] = {0};
+static const unsigned char kat3211_retbits[] = {
+ 0x4b, 0x3e, 0x8d, 0xe3, 0x3e, 0xdf, 0x7f, 0x4c, 0xa0, 0x46, 0x01, 0x43,
+ 0x8a, 0x85, 0x3d, 0x77, 0x94, 0x96, 0x3c, 0x77, 0xdd, 0xac, 0xd0, 0xde,
+ 0x3a, 0xd1, 0xab, 0x44, 0xc0, 0x47, 0xae, 0xcb, 0xb4, 0xb9, 0xa1, 0x1c,
+ 0x23, 0x5a, 0x3a, 0xe0, 0xb8, 0x26, 0x7d, 0x92, 0xc7, 0xe3, 0x00, 0x78,
+ 0xc4, 0xcf, 0x94, 0x9c, 0x2e, 0x21, 0xf2, 0xae, 0x65, 0x40, 0xb9, 0x18,
+ 0x97, 0x35, 0xf9, 0xdf,
+};
+static const struct drbg_kat_pr_true kat3211_t = {
+ 0, kat3211_entropyin, kat3211_nonce, kat3211_persstr,
+ kat3211_entropyinpr1, kat3211_addinpr1, kat3211_entropyinpr2,
+ kat3211_addinpr2, kat3211_retbits
+};
+static const struct drbg_kat kat3211 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3211_t
+};
+
+static const unsigned char kat3212_entropyin[] = {
+ 0x98, 0x43, 0xdc, 0x9d, 0x0e, 0x11, 0x2e, 0x50, 0xb5, 0xdc, 0x8c, 0x02,
+ 0x66, 0x0a, 0xf7, 0x5b, 0x0b, 0x05, 0x81, 0xee, 0xaa, 0xff, 0xef, 0x63,
+};
+static const unsigned char kat3212_nonce[] = {
+ 0xe8, 0x9d, 0x90, 0xd1, 0x71, 0x30, 0xed, 0xe9, 0xdf, 0x75, 0xd9, 0xb1,
+ 0x73, 0xa5, 0x62, 0xfe,
+};
+static const unsigned char kat3212_persstr[] = {
+ 0xab, 0x94, 0x74, 0x89, 0x21, 0x5a, 0x28, 0x22, 0x4e, 0xd9, 0x51, 0x5a,
+ 0x23, 0x79, 0x66, 0x32, 0x87, 0x80, 0xab, 0x3a, 0x6e, 0xac, 0x6f, 0x4b,
+ 0x20, 0x0e, 0xd3, 0xf7, 0x4d, 0xd8, 0xec, 0x8d,
+};
+static const unsigned char kat3212_entropyinpr1[] = {
+ 0xdd, 0x0a, 0xe1, 0x36, 0x18, 0x0c, 0x0b, 0x2d, 0x69, 0x6c, 0x69, 0x19,
+ 0xa5, 0x5e, 0x7e, 0xc1, 0xdf, 0x25, 0x9a, 0x50, 0x7f, 0x34, 0x5b, 0xd5,
+};
+static const unsigned char kat3212_addinpr1[] = {0};
+static const unsigned char kat3212_entropyinpr2[] = {
+ 0xa7, 0x30, 0xb0, 0x75, 0x68, 0xd8, 0x7e, 0xf7, 0x6b, 0xb3, 0x3b, 0xd2,
+ 0x3e, 0x6c, 0x9e, 0xc5, 0xd1, 0x70, 0x8b, 0x2f, 0x14, 0x73, 0xb3, 0x20,
+};
+static const unsigned char kat3212_addinpr2[] = {0};
+static const unsigned char kat3212_retbits[] = {
+ 0x7f, 0x81, 0x9a, 0x2d, 0xa0, 0x13, 0x72, 0x0a, 0x13, 0x59, 0xf2, 0xdc,
+ 0xf0, 0xd1, 0x11, 0xcd, 0x64, 0x72, 0xca, 0x97, 0x0e, 0x83, 0x53, 0xca,
+ 0xfb, 0x83, 0x47, 0x76, 0xcb, 0xa3, 0xd6, 0x89, 0x64, 0xe3, 0x2b, 0xce,
+ 0x96, 0x20, 0xfa, 0x40, 0x92, 0x1d, 0x40, 0x72, 0x0f, 0xb2, 0xa3, 0xbf,
+ 0xef, 0xb3, 0x46, 0xc7, 0x24, 0x8a, 0x1b, 0x4f, 0xb4, 0xfe, 0x90, 0xd5,
+ 0x24, 0xaa, 0x75, 0xcc,
+};
+static const struct drbg_kat_pr_true kat3212_t = {
+ 1, kat3212_entropyin, kat3212_nonce, kat3212_persstr,
+ kat3212_entropyinpr1, kat3212_addinpr1, kat3212_entropyinpr2,
+ kat3212_addinpr2, kat3212_retbits
+};
+static const struct drbg_kat kat3212 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3212_t
+};
+
+static const unsigned char kat3213_entropyin[] = {
+ 0x58, 0x34, 0xbb, 0xf1, 0x9e, 0x6a, 0x7b, 0xce, 0x04, 0x45, 0x1e, 0xbf,
+ 0x91, 0x22, 0x68, 0xc0, 0x42, 0x32, 0xad, 0x4b, 0x05, 0x17, 0xb4, 0xf8,
+};
+static const unsigned char kat3213_nonce[] = {
+ 0xe4, 0x97, 0xb8, 0x86, 0xe7, 0xa8, 0xaa, 0x96, 0x87, 0x62, 0x82, 0xcf,
+ 0xc3, 0xe3, 0xa0, 0x14,
+};
+static const unsigned char kat3213_persstr[] = {
+ 0xc1, 0x8b, 0x3d, 0xb2, 0x82, 0x4d, 0x5f, 0x01, 0xc4, 0xc2, 0x50, 0xb8,
+ 0x48, 0xdb, 0x27, 0xe0, 0xc6, 0x9a, 0x86, 0x4d, 0xa9, 0x5d, 0x0d, 0xfa,
+ 0xc1, 0x1b, 0xbe, 0x2f, 0x9d, 0x29, 0x8e, 0xa3,
+};
+static const unsigned char kat3213_entropyinpr1[] = {
+ 0x67, 0x6c, 0x49, 0xba, 0xe4, 0xd4, 0x31, 0xaa, 0xc0, 0x8f, 0x34, 0x48,
+ 0x4b, 0x11, 0xbd, 0x37, 0xc7, 0x9f, 0xf6, 0xc4, 0x70, 0x4e, 0xba, 0x4d,
+};
+static const unsigned char kat3213_addinpr1[] = {0};
+static const unsigned char kat3213_entropyinpr2[] = {
+ 0xe0, 0x04, 0x0f, 0x80, 0x81, 0xb1, 0xc9, 0x89, 0xf9, 0x9e, 0x1a, 0x3a,
+ 0x81, 0x38, 0xb7, 0xbe, 0x83, 0xba, 0x00, 0x7b, 0x5d, 0xbb, 0x81, 0x78,
+};
+static const unsigned char kat3213_addinpr2[] = {0};
+static const unsigned char kat3213_retbits[] = {
+ 0x4a, 0x29, 0x51, 0x9c, 0x0f, 0xa8, 0x3d, 0xd7, 0x13, 0x49, 0xbf, 0xf8,
+ 0xc8, 0xa4, 0x6f, 0x4a, 0x8c, 0xce, 0xa6, 0xb3, 0xd1, 0x1e, 0xf8, 0xdc,
+ 0xb1, 0x9f, 0x3c, 0xef, 0x6e, 0x2b, 0x01, 0x5d, 0x04, 0xc8, 0x2f, 0x44,
+ 0x36, 0xcb, 0xd1, 0x13, 0xc1, 0x30, 0xd7, 0x93, 0xda, 0x6e, 0x4e, 0x58,
+ 0x32, 0x4f, 0xae, 0x10, 0x6a, 0x48, 0x96, 0xff, 0x63, 0x42, 0x97, 0x38,
+ 0x16, 0x75, 0x62, 0xf3,
+};
+static const struct drbg_kat_pr_true kat3213_t = {
+ 2, kat3213_entropyin, kat3213_nonce, kat3213_persstr,
+ kat3213_entropyinpr1, kat3213_addinpr1, kat3213_entropyinpr2,
+ kat3213_addinpr2, kat3213_retbits
+};
+static const struct drbg_kat kat3213 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3213_t
+};
+
+static const unsigned char kat3214_entropyin[] = {
+ 0x74, 0xc4, 0x6e, 0x26, 0x06, 0xa8, 0x58, 0x99, 0x3a, 0x16, 0xa3, 0x8e,
+ 0x38, 0x41, 0x54, 0x0c, 0xf0, 0x31, 0xc1, 0x91, 0x7a, 0xa3, 0x5e, 0xd5,
+};
+static const unsigned char kat3214_nonce[] = {
+ 0xf7, 0x4d, 0x9a, 0x16, 0xbf, 0x6a, 0x0e, 0xbb, 0x70, 0xba, 0x14, 0x31,
+ 0xbe, 0xa9, 0xc6, 0xea,
+};
+static const unsigned char kat3214_persstr[] = {
+ 0x52, 0x0e, 0x60, 0x7c, 0x5c, 0x9b, 0xfd, 0xa9, 0x73, 0x2d, 0x1f, 0x71,
+ 0xb4, 0xef, 0xc1, 0xac, 0x7c, 0x2c, 0x38, 0x57, 0x14, 0xf5, 0x8d, 0x31,
+ 0xad, 0xcb, 0x4b, 0x06, 0x3d, 0x9f, 0x56, 0x69,
+};
+static const unsigned char kat3214_entropyinpr1[] = {
+ 0xa0, 0x12, 0x4b, 0x60, 0xd5, 0x8e, 0x1d, 0xa9, 0xf2, 0x8a, 0x68, 0xe9,
+ 0x85, 0x38, 0x83, 0xb4, 0xe6, 0x9e, 0x0f, 0xca, 0x8a, 0xbc, 0x0b, 0xf9,
+};
+static const unsigned char kat3214_addinpr1[] = {0};
+static const unsigned char kat3214_entropyinpr2[] = {
+ 0x29, 0xb6, 0x56, 0x90, 0x0a, 0x46, 0x65, 0xc3, 0xa8, 0x9b, 0xed, 0x7d,
+ 0x2e, 0x22, 0x68, 0xdd, 0xf0, 0xac, 0xf4, 0x62, 0x11, 0xd3, 0x3d, 0x80,
+};
+static const unsigned char kat3214_addinpr2[] = {0};
+static const unsigned char kat3214_retbits[] = {
+ 0xe1, 0xad, 0xc0, 0x2c, 0x6a, 0xb6, 0xff, 0xe2, 0x7a, 0xfa, 0xae, 0xa0,
+ 0xc4, 0x73, 0x21, 0x0b, 0xb8, 0x96, 0xb1, 0xab, 0xb3, 0xb0, 0x0d, 0x22,
+ 0x8e, 0xbe, 0x1a, 0x55, 0x10, 0x6c, 0x45, 0x1e, 0xa1, 0x5f, 0x51, 0x65,
+ 0xfa, 0x2f, 0x45, 0x62, 0xc0, 0x91, 0x45, 0x95, 0x98, 0xed, 0xe0, 0x5d,
+ 0xd1, 0x4d, 0xb1, 0x1d, 0x43, 0x05, 0x2c, 0x66, 0x9d, 0xfc, 0xfa, 0xba,
+ 0xa7, 0xbe, 0xe7, 0x65,
+};
+static const struct drbg_kat_pr_true kat3214_t = {
+ 3, kat3214_entropyin, kat3214_nonce, kat3214_persstr,
+ kat3214_entropyinpr1, kat3214_addinpr1, kat3214_entropyinpr2,
+ kat3214_addinpr2, kat3214_retbits
+};
+static const struct drbg_kat kat3214 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3214_t
+};
+
+static const unsigned char kat3215_entropyin[] = {
+ 0x4f, 0x08, 0xd8, 0x4e, 0xc7, 0x4b, 0xd6, 0xe3, 0xa6, 0xd8, 0x83, 0xbd,
+ 0xad, 0x0c, 0x78, 0x28, 0x15, 0x57, 0xfe, 0xba, 0xb5, 0x7a, 0xec, 0x6e,
+};
+static const unsigned char kat3215_nonce[] = {
+ 0x4b, 0xa9, 0xb6, 0x06, 0xfb, 0x2d, 0x2b, 0x5d, 0x9b, 0xef, 0x21, 0xc5,
+ 0x35, 0xf6, 0x2b, 0x12,
+};
+static const unsigned char kat3215_persstr[] = {
+ 0x4b, 0x33, 0x76, 0x27, 0x45, 0x3a, 0x95, 0x56, 0x3f, 0xbd, 0x3e, 0x08,
+ 0x6b, 0x80, 0x16, 0xf4, 0xe2, 0x51, 0x1d, 0x29, 0x28, 0x55, 0x40, 0x09,
+ 0xfa, 0x8d, 0xf6, 0xdd, 0x58, 0x53, 0x90, 0xdc,
+};
+static const unsigned char kat3215_entropyinpr1[] = {
+ 0xb7, 0xcb, 0xdf, 0xe2, 0x6c, 0x30, 0xc4, 0x2f, 0x6c, 0x49, 0x1b, 0x07,
+ 0x64, 0x77, 0xfd, 0xd1, 0xe3, 0x59, 0xe9, 0x13, 0x4d, 0x0f, 0xe1, 0xa2,
+};
+static const unsigned char kat3215_addinpr1[] = {0};
+static const unsigned char kat3215_entropyinpr2[] = {
+ 0x57, 0xdd, 0xe0, 0x01, 0x19, 0x6e, 0x62, 0x42, 0xce, 0xdb, 0xdb, 0xae,
+ 0x4d, 0xe2, 0xef, 0x2b, 0x67, 0x88, 0xcf, 0x40, 0xc6, 0x21, 0x1f, 0x19,
+};
+static const unsigned char kat3215_addinpr2[] = {0};
+static const unsigned char kat3215_retbits[] = {
+ 0x5a, 0xc5, 0x44, 0x61, 0xe3, 0x46, 0x26, 0xbd, 0x9c, 0x21, 0xa4, 0xca,
+ 0x8f, 0x30, 0xf2, 0x3d, 0x76, 0xce, 0x2a, 0x7a, 0x17, 0xc3, 0xe3, 0x49,
+ 0xd5, 0xe9, 0x0b, 0x67, 0xb5, 0xa7, 0x01, 0xad, 0xcb, 0x2d, 0x39, 0x9d,
+ 0x2c, 0x91, 0xc7, 0xa1, 0xcf, 0x08, 0x5d, 0x4c, 0x9b, 0x1c, 0x5c, 0xba,
+ 0xb9, 0x4e, 0xd5, 0xa0, 0x48, 0x6c, 0xee, 0x80, 0xf8, 0x3e, 0x4c, 0x1a,
+ 0x43, 0x02, 0xcc, 0x38,
+};
+static const struct drbg_kat_pr_true kat3215_t = {
+ 4, kat3215_entropyin, kat3215_nonce, kat3215_persstr,
+ kat3215_entropyinpr1, kat3215_addinpr1, kat3215_entropyinpr2,
+ kat3215_addinpr2, kat3215_retbits
+};
+static const struct drbg_kat kat3215 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3215_t
+};
+
+static const unsigned char kat3216_entropyin[] = {
+ 0x3d, 0xbb, 0x33, 0x88, 0xad, 0xa8, 0x03, 0xf0, 0xb0, 0x5c, 0xf5, 0x69,
+ 0xf2, 0x2e, 0x69, 0x4d, 0x9d, 0x56, 0x13, 0xef, 0x0f, 0xc4, 0x30, 0x7b,
+};
+static const unsigned char kat3216_nonce[] = {
+ 0xac, 0xbc, 0xf3, 0xfb, 0x5c, 0xf0, 0x7a, 0x0f, 0xeb, 0xe1, 0xef, 0xf4,
+ 0x4e, 0x1e, 0x8f, 0xf4,
+};
+static const unsigned char kat3216_persstr[] = {
+ 0xd7, 0x93, 0x63, 0x19, 0x48, 0x92, 0x1d, 0x4c, 0x5d, 0x62, 0x7e, 0x31,
+ 0xdb, 0xa1, 0xc5, 0x73, 0x50, 0x65, 0x1b, 0x63, 0xff, 0x09, 0x99, 0xb2,
+ 0xd1, 0x83, 0xb0, 0x9b, 0x8b, 0x00, 0x95, 0x4a,
+};
+static const unsigned char kat3216_entropyinpr1[] = {
+ 0xdc, 0x1f, 0xbb, 0x8c, 0xa0, 0x60, 0xe1, 0x66, 0x65, 0xba, 0x58, 0xb3,
+ 0xa9, 0x35, 0xdd, 0xa8, 0x78, 0xc4, 0x64, 0x20, 0xb0, 0x71, 0x74, 0xf4,
+};
+static const unsigned char kat3216_addinpr1[] = {0};
+static const unsigned char kat3216_entropyinpr2[] = {
+ 0xda, 0x5b, 0xf9, 0x7b, 0xe1, 0xf2, 0xc8, 0xbc, 0xfc, 0x0a, 0x07, 0x57,
+ 0x80, 0xb8, 0xdb, 0x98, 0xb8, 0xe7, 0xbc, 0xb0, 0x9b, 0x22, 0xa9, 0x56,
+};
+static const unsigned char kat3216_addinpr2[] = {0};
+static const unsigned char kat3216_retbits[] = {
+ 0xb9, 0x76, 0xd6, 0x80, 0xf5, 0xa6, 0x4f, 0xce, 0x15, 0xfc, 0x39, 0xf4,
+ 0x9e, 0x83, 0xf3, 0x2b, 0x32, 0x5b, 0xad, 0x21, 0x26, 0x71, 0xda, 0x20,
+ 0x86, 0xa8, 0x2a, 0x07, 0xb7, 0xb1, 0xff, 0xd3, 0x3b, 0x1b, 0x99, 0x02,
+ 0x25, 0x95, 0x50, 0x7c, 0x90, 0xf2, 0x6a, 0x3a, 0x21, 0xbf, 0x98, 0xec,
+ 0xbd, 0x5c, 0xea, 0x7d, 0x69, 0x7c, 0x6a, 0x16, 0x0e, 0xd1, 0x64, 0x79,
+ 0x02, 0xe3, 0x6a, 0xa2,
+};
+static const struct drbg_kat_pr_true kat3216_t = {
+ 5, kat3216_entropyin, kat3216_nonce, kat3216_persstr,
+ kat3216_entropyinpr1, kat3216_addinpr1, kat3216_entropyinpr2,
+ kat3216_addinpr2, kat3216_retbits
+};
+static const struct drbg_kat kat3216 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3216_t
+};
+
+static const unsigned char kat3217_entropyin[] = {
+ 0xec, 0x9d, 0x06, 0x54, 0xee, 0x12, 0xe8, 0xb2, 0xd9, 0x98, 0x35, 0xf6,
+ 0x40, 0xfb, 0x90, 0x26, 0x00, 0x6e, 0xcc, 0x32, 0x62, 0x22, 0x88, 0x50,
+};
+static const unsigned char kat3217_nonce[] = {
+ 0x4b, 0xdb, 0x7d, 0x3d, 0x02, 0x49, 0x49, 0x4f, 0x44, 0x08, 0xf5, 0xe3,
+ 0x15, 0x8f, 0xef, 0x00,
+};
+static const unsigned char kat3217_persstr[] = {
+ 0xf4, 0x3e, 0xc6, 0xab, 0xe6, 0x15, 0x14, 0x30, 0x3e, 0x93, 0xa8, 0xe3,
+ 0xb9, 0x62, 0xbb, 0x76, 0x45, 0x07, 0xc9, 0x5a, 0x36, 0x1d, 0x12, 0x65,
+ 0x0d, 0x7d, 0xdd, 0xf3, 0x4e, 0x52, 0x8a, 0x93,
+};
+static const unsigned char kat3217_entropyinpr1[] = {
+ 0x8c, 0xbf, 0x62, 0xef, 0x1d, 0xd5, 0xe0, 0x31, 0x57, 0x84, 0x47, 0x25,
+ 0x27, 0x20, 0x29, 0xbc, 0x93, 0x53, 0x13, 0xa5, 0x42, 0x1b, 0xd6, 0x4f,
+};
+static const unsigned char kat3217_addinpr1[] = {0};
+static const unsigned char kat3217_entropyinpr2[] = {
+ 0x5e, 0xd7, 0x6a, 0xbf, 0x5e, 0x86, 0x08, 0xa9, 0x75, 0x43, 0xb2, 0x80,
+ 0x95, 0x3c, 0xc0, 0x1f, 0x93, 0x32, 0x1b, 0x55, 0x4c, 0xd4, 0x6c, 0xc1,
+};
+static const unsigned char kat3217_addinpr2[] = {0};
+static const unsigned char kat3217_retbits[] = {
+ 0x43, 0x9c, 0x2f, 0xe9, 0x89, 0x22, 0x4a, 0x4b, 0xa5, 0xc9, 0x45, 0x23,
+ 0xd3, 0x50, 0x83, 0x76, 0x28, 0x45, 0xf2, 0xf8, 0x8c, 0x8a, 0x1b, 0xe3,
+ 0xf1, 0xa4, 0xf8, 0x9e, 0xe0, 0xa1, 0x3c, 0x92, 0x6a, 0x73, 0x71, 0x72,
+ 0x47, 0x18, 0xb2, 0xad, 0x3f, 0xcd, 0x68, 0x1e, 0x19, 0x94, 0xe6, 0x94,
+ 0x97, 0xc9, 0x4b, 0xa0, 0x8e, 0x67, 0xe5, 0x18, 0x9b, 0x16, 0x70, 0x99,
+ 0xe5, 0x4f, 0x07, 0x03,
+};
+static const struct drbg_kat_pr_true kat3217_t = {
+ 6, kat3217_entropyin, kat3217_nonce, kat3217_persstr,
+ kat3217_entropyinpr1, kat3217_addinpr1, kat3217_entropyinpr2,
+ kat3217_addinpr2, kat3217_retbits
+};
+static const struct drbg_kat kat3217 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3217_t
+};
+
+static const unsigned char kat3218_entropyin[] = {
+ 0x18, 0xde, 0xa6, 0xe0, 0xbd, 0xda, 0x95, 0x2b, 0xfd, 0x98, 0x38, 0x13,
+ 0xd5, 0xfa, 0x4f, 0xf8, 0xeb, 0xa3, 0x3d, 0x94, 0xba, 0x12, 0x1c, 0x50,
+};
+static const unsigned char kat3218_nonce[] = {
+ 0x2e, 0xcc, 0x42, 0x99, 0x87, 0x38, 0xe0, 0x3c, 0xc2, 0x7d, 0xdb, 0x96,
+ 0x14, 0x8c, 0x83, 0x4e,
+};
+static const unsigned char kat3218_persstr[] = {
+ 0xdb, 0xc8, 0xd6, 0x0b, 0x97, 0x7f, 0xff, 0x2e, 0x70, 0xac, 0x77, 0x02,
+ 0xf2, 0xde, 0x1b, 0x8f, 0xa8, 0x6b, 0x52, 0x7e, 0xb2, 0xac, 0xad, 0x5f,
+ 0x68, 0x8d, 0x89, 0xd9, 0x88, 0x4e, 0x51, 0xba,
+};
+static const unsigned char kat3218_entropyinpr1[] = {
+ 0xc9, 0x46, 0x20, 0x86, 0x7d, 0xbd, 0xa5, 0x04, 0xbd, 0xba, 0xf1, 0x83,
+ 0xa1, 0xe3, 0xea, 0x6f, 0xca, 0x52, 0x89, 0x8b, 0x07, 0xad, 0x48, 0xaf,
+};
+static const unsigned char kat3218_addinpr1[] = {0};
+static const unsigned char kat3218_entropyinpr2[] = {
+ 0x94, 0x40, 0x95, 0xb8, 0x6a, 0x9d, 0x01, 0xce, 0x27, 0x0f, 0x40, 0xc7,
+ 0xd2, 0x35, 0x9d, 0x62, 0x3a, 0x0f, 0xa6, 0x30, 0x39, 0xf8, 0x67, 0x42,
+};
+static const unsigned char kat3218_addinpr2[] = {0};
+static const unsigned char kat3218_retbits[] = {
+ 0xb9, 0xea, 0x99, 0x09, 0xd0, 0x00, 0x64, 0xea, 0xab, 0x8d, 0x0e, 0x28,
+ 0x8a, 0xdd, 0xd2, 0xcb, 0x0c, 0xf4, 0x43, 0x6d, 0xf6, 0xf5, 0x32, 0x86,
+ 0x12, 0xdb, 0xc9, 0xb8, 0x8e, 0x02, 0xb7, 0x33, 0xad, 0xe1, 0x33, 0xbb,
+ 0xc5, 0xe1, 0xd2, 0x43, 0x72, 0x7e, 0x98, 0x5a, 0x1d, 0xcc, 0x79, 0xb3,
+ 0x4a, 0x1d, 0x9e, 0x8d, 0x1d, 0x98, 0x30, 0xe3, 0xe0, 0x3f, 0x2b, 0x34,
+ 0x74, 0x26, 0xe2, 0xc7,
+};
+static const struct drbg_kat_pr_true kat3218_t = {
+ 7, kat3218_entropyin, kat3218_nonce, kat3218_persstr,
+ kat3218_entropyinpr1, kat3218_addinpr1, kat3218_entropyinpr2,
+ kat3218_addinpr2, kat3218_retbits
+};
+static const struct drbg_kat kat3218 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3218_t
+};
+
+static const unsigned char kat3219_entropyin[] = {
+ 0x83, 0x23, 0xd6, 0xfb, 0x62, 0xdc, 0x4d, 0x33, 0x31, 0xf5, 0xf7, 0x74,
+ 0x8f, 0xa9, 0x91, 0x87, 0xed, 0x01, 0xf5, 0x8f, 0x4f, 0xdc, 0x68, 0xf3,
+};
+static const unsigned char kat3219_nonce[] = {
+ 0x0e, 0xe1, 0xa6, 0x23, 0x2b, 0xf4, 0xce, 0x10, 0x34, 0xf6, 0xfc, 0xea,
+ 0x07, 0xb5, 0x29, 0x79,
+};
+static const unsigned char kat3219_persstr[] = {
+ 0xa5, 0xc5, 0x53, 0xdb, 0x9f, 0xca, 0xa8, 0xb1, 0xdf, 0x7f, 0xfb, 0x01,
+ 0x9e, 0xab, 0x1b, 0xb9, 0x80, 0x90, 0xb1, 0xfa, 0x95, 0x74, 0x32, 0x08,
+ 0x32, 0x65, 0x15, 0x7a, 0x57, 0x0a, 0xd6, 0x7e,
+};
+static const unsigned char kat3219_entropyinpr1[] = {
+ 0x06, 0x04, 0xf0, 0xeb, 0x6a, 0x2a, 0x75, 0x13, 0x55, 0x96, 0xce, 0x5a,
+ 0x2a, 0xf3, 0xd7, 0x71, 0xe1, 0x6d, 0xc0, 0x2a, 0x07, 0xa9, 0x0b, 0xf7,
+};
+static const unsigned char kat3219_addinpr1[] = {0};
+static const unsigned char kat3219_entropyinpr2[] = {
+ 0x45, 0xaa, 0x65, 0x61, 0x29, 0xef, 0xb8, 0x3f, 0xcb, 0x1f, 0x9f, 0x01,
+ 0x8d, 0x3d, 0x6c, 0x12, 0x24, 0x86, 0x06, 0xba, 0xc2, 0xe5, 0xe1, 0x4b,
+};
+static const unsigned char kat3219_addinpr2[] = {0};
+static const unsigned char kat3219_retbits[] = {
+ 0x40, 0x04, 0x00, 0x9a, 0x4f, 0xb2, 0x61, 0x4c, 0xc1, 0x97, 0xb3, 0xd0,
+ 0x52, 0xe6, 0x80, 0x79, 0xd4, 0x58, 0x38, 0x04, 0xb2, 0xbf, 0x03, 0x74,
+ 0x7e, 0x40, 0xee, 0x7f, 0x52, 0xab, 0xe2, 0x2c, 0x58, 0xc3, 0x05, 0x9a,
+ 0xac, 0xf1, 0xb1, 0x83, 0x8c, 0x8b, 0x3f, 0xfc, 0x4f, 0xdf, 0x47, 0xa1,
+ 0x94, 0xd7, 0x83, 0x6b, 0x81, 0x83, 0x6f, 0xcf, 0x1c, 0x7d, 0xe5, 0x65,
+ 0x26, 0x57, 0x57, 0x86,
+};
+static const struct drbg_kat_pr_true kat3219_t = {
+ 8, kat3219_entropyin, kat3219_nonce, kat3219_persstr,
+ kat3219_entropyinpr1, kat3219_addinpr1, kat3219_entropyinpr2,
+ kat3219_addinpr2, kat3219_retbits
+};
+static const struct drbg_kat kat3219 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3219_t
+};
+
+static const unsigned char kat3220_entropyin[] = {
+ 0x51, 0x49, 0x60, 0x9e, 0x75, 0x3f, 0x20, 0x74, 0x9f, 0xd0, 0x0b, 0x4b,
+ 0xcb, 0xce, 0x92, 0x61, 0xe5, 0x74, 0x6c, 0xfd, 0xf6, 0xe2, 0x37, 0xea,
+};
+static const unsigned char kat3220_nonce[] = {
+ 0xf8, 0xa7, 0x7e, 0x34, 0xd7, 0x7e, 0x0a, 0x9c, 0x4c, 0xb1, 0xc5, 0x0c,
+ 0x5f, 0x8b, 0x61, 0xb2,
+};
+static const unsigned char kat3220_persstr[] = {
+ 0x18, 0xeb, 0xa2, 0xee, 0xc8, 0x1a, 0xc9, 0xfc, 0x8e, 0x88, 0xce, 0x8f,
+ 0xed, 0xf2, 0x22, 0xaa, 0x4e, 0x37, 0x43, 0xf2, 0x7f, 0x9c, 0xbe, 0x5d,
+ 0x9e, 0x55, 0xd1, 0x63, 0x84, 0x3b, 0xd4, 0x61,
+};
+static const unsigned char kat3220_entropyinpr1[] = {
+ 0xbc, 0x4a, 0x35, 0x39, 0xa4, 0x6c, 0xa3, 0xd7, 0x4a, 0xf1, 0x8a, 0xe0,
+ 0x7f, 0xf0, 0xe1, 0x4a, 0x4d, 0x35, 0x3f, 0xd2, 0xb3, 0x33, 0x44, 0xe9,
+};
+static const unsigned char kat3220_addinpr1[] = {0};
+static const unsigned char kat3220_entropyinpr2[] = {
+ 0xe8, 0xeb, 0x4c, 0x78, 0x85, 0x25, 0x2d, 0xea, 0xea, 0xf4, 0xb7, 0xb5,
+ 0x76, 0x5b, 0x02, 0xa9, 0x2a, 0x68, 0xf0, 0xbd, 0xac, 0x93, 0x53, 0xad,
+};
+static const unsigned char kat3220_addinpr2[] = {0};
+static const unsigned char kat3220_retbits[] = {
+ 0x4b, 0x61, 0x0b, 0x6f, 0x96, 0xdc, 0x51, 0x7f, 0xd4, 0x38, 0x33, 0x2f,
+ 0x51, 0x33, 0xaa, 0xc9, 0x93, 0xdb, 0x66, 0x07, 0x8b, 0x6c, 0x55, 0xfb,
+ 0x8a, 0xa8, 0x78, 0x36, 0xdc, 0x2c, 0x69, 0xd8, 0x7b, 0xdf, 0x8b, 0x47,
+ 0xba, 0xc5, 0x06, 0x02, 0x68, 0x00, 0xde, 0x19, 0xea, 0x57, 0x32, 0xb2,
+ 0xf2, 0x22, 0xfc, 0x2b, 0xcf, 0x37, 0xd6, 0xc2, 0x05, 0x49, 0x79, 0xa7,
+ 0x80, 0x04, 0x68, 0x97,
+};
+static const struct drbg_kat_pr_true kat3220_t = {
+ 9, kat3220_entropyin, kat3220_nonce, kat3220_persstr,
+ kat3220_entropyinpr1, kat3220_addinpr1, kat3220_entropyinpr2,
+ kat3220_addinpr2, kat3220_retbits
+};
+static const struct drbg_kat kat3220 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3220_t
+};
+
+static const unsigned char kat3221_entropyin[] = {
+ 0x39, 0x70, 0x01, 0x40, 0x53, 0x78, 0x2e, 0x60, 0x80, 0xfb, 0x67, 0xd8,
+ 0xd3, 0x39, 0xef, 0x59, 0x0c, 0x49, 0x8d, 0x9d, 0x18, 0x2f, 0x76, 0x50,
+};
+static const unsigned char kat3221_nonce[] = {
+ 0xd9, 0x66, 0xa0, 0xa6, 0x90, 0x1e, 0x25, 0x07, 0x84, 0x40, 0x92, 0x09,
+ 0x73, 0xa5, 0xde, 0xd2,
+};
+static const unsigned char kat3221_persstr[] = {
+ 0xcd, 0x2b, 0x40, 0x74, 0x90, 0x56, 0x84, 0x27, 0x51, 0xa0, 0xde, 0x7d,
+ 0xd0, 0xd0, 0x9c, 0xab, 0xd3, 0x21, 0x16, 0xd9, 0xbf, 0x3b, 0xd0, 0x4c,
+ 0x62, 0x02, 0x2a, 0x38, 0xdd, 0x47, 0x8b, 0x25,
+};
+static const unsigned char kat3221_entropyinpr1[] = {
+ 0x6d, 0x79, 0xce, 0xf4, 0xad, 0x7b, 0x01, 0xff, 0x82, 0xf1, 0x86, 0xc9,
+ 0xe1, 0x7e, 0x37, 0x04, 0x55, 0xf1, 0x11, 0xc5, 0x3e, 0x67, 0xfe, 0x0e,
+};
+static const unsigned char kat3221_addinpr1[] = {0};
+static const unsigned char kat3221_entropyinpr2[] = {
+ 0xbe, 0xa3, 0x0f, 0x21, 0x32, 0x98, 0x7e, 0xa6, 0xbb, 0x0c, 0x69, 0xd6,
+ 0xb4, 0xba, 0x67, 0xf1, 0x3a, 0xcb, 0xc6, 0xac, 0x7f, 0xb6, 0x4d, 0x46,
+};
+static const unsigned char kat3221_addinpr2[] = {0};
+static const unsigned char kat3221_retbits[] = {
+ 0x64, 0x57, 0x25, 0x39, 0x7e, 0xbb, 0x9b, 0x18, 0x48, 0xcd, 0x89, 0xee,
+ 0x6f, 0x98, 0x59, 0x5d, 0x0a, 0x01, 0x90, 0xc3, 0x17, 0x6e, 0x15, 0xf9,
+ 0x14, 0x0f, 0xf3, 0x0c, 0xa5, 0x8e, 0xe4, 0xa7, 0x84, 0x89, 0xc1, 0x48,
+ 0x0a, 0x00, 0xce, 0xbf, 0x06, 0xc4, 0x03, 0xcc, 0x9e, 0xd8, 0x0f, 0x40,
+ 0x31, 0xf1, 0x6c, 0xf8, 0x79, 0xa1, 0x8f, 0x6c, 0x48, 0xb6, 0x39, 0xa8,
+ 0xfc, 0x7a, 0xc9, 0x06,
+};
+static const struct drbg_kat_pr_true kat3221_t = {
+ 10, kat3221_entropyin, kat3221_nonce, kat3221_persstr,
+ kat3221_entropyinpr1, kat3221_addinpr1, kat3221_entropyinpr2,
+ kat3221_addinpr2, kat3221_retbits
+};
+static const struct drbg_kat kat3221 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3221_t
+};
+
+static const unsigned char kat3222_entropyin[] = {
+ 0xc5, 0x8c, 0xef, 0xfd, 0xd2, 0xb4, 0x75, 0x14, 0x2f, 0x03, 0x4f, 0x8d,
+ 0x26, 0x65, 0xdb, 0xf0, 0xf4, 0xcd, 0x62, 0x13, 0x63, 0xa0, 0x14, 0x91,
+};
+static const unsigned char kat3222_nonce[] = {
+ 0x37, 0xc9, 0xc2, 0x4b, 0x7b, 0xf0, 0x45, 0x9f, 0x06, 0x3e, 0xfb, 0xe1,
+ 0x3b, 0xd5, 0xe6, 0x6d,
+};
+static const unsigned char kat3222_persstr[] = {
+ 0xe5, 0x14, 0xfa, 0xed, 0x1c, 0x02, 0x79, 0x17, 0xf5, 0xb8, 0x35, 0xc9,
+ 0xa8, 0xe7, 0x9c, 0x56, 0xdf, 0xba, 0x3f, 0x06, 0x02, 0x74, 0x36, 0x42,
+ 0x92, 0xc3, 0x03, 0x46, 0xeb, 0xe9, 0x96, 0xf1,
+};
+static const unsigned char kat3222_entropyinpr1[] = {
+ 0xbe, 0xaa, 0x01, 0x19, 0xcb, 0xbc, 0xde, 0xc5, 0xe7, 0x42, 0x83, 0x4c,
+ 0x4f, 0x91, 0x56, 0xf7, 0x8b, 0xee, 0x59, 0x93, 0x65, 0x7c, 0xe1, 0x42,
+};
+static const unsigned char kat3222_addinpr1[] = {0};
+static const unsigned char kat3222_entropyinpr2[] = {
+ 0x04, 0xde, 0xfb, 0x3e, 0x85, 0xd0, 0x88, 0xcf, 0xf4, 0x9f, 0x48, 0xac,
+ 0x03, 0xab, 0xcd, 0xd5, 0x89, 0xc7, 0x9f, 0x0f, 0x4f, 0xe3, 0xcd, 0x21,
+};
+static const unsigned char kat3222_addinpr2[] = {0};
+static const unsigned char kat3222_retbits[] = {
+ 0x25, 0x9a, 0x0c, 0x13, 0xa7, 0x53, 0xec, 0x22, 0xf2, 0x4a, 0xbf, 0xd1,
+ 0x1d, 0xad, 0x6c, 0xc2, 0xee, 0xef, 0x0e, 0xb7, 0x05, 0x28, 0xe5, 0xec,
+ 0xd5, 0x23, 0x1d, 0xd4, 0x8d, 0x5f, 0x5b, 0x2a, 0xc3, 0x06, 0x35, 0xa6,
+ 0x02, 0xdf, 0xb5, 0xc2, 0x5f, 0x47, 0xa4, 0x6f, 0x51, 0xa9, 0x5c, 0xa4,
+ 0xfa, 0x56, 0xc7, 0xc5, 0x2e, 0xb1, 0x51, 0x9d, 0x24, 0x5d, 0x6a, 0xa1,
+ 0x9f, 0x34, 0x26, 0x5f,
+};
+static const struct drbg_kat_pr_true kat3222_t = {
+ 11, kat3222_entropyin, kat3222_nonce, kat3222_persstr,
+ kat3222_entropyinpr1, kat3222_addinpr1, kat3222_entropyinpr2,
+ kat3222_addinpr2, kat3222_retbits
+};
+static const struct drbg_kat kat3222 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3222_t
+};
+
+static const unsigned char kat3223_entropyin[] = {
+ 0xf5, 0x20, 0x60, 0x18, 0x63, 0xa0, 0xd6, 0xd9, 0x69, 0x84, 0x6b, 0xed,
+ 0xe9, 0x2f, 0xa2, 0x96, 0x2c, 0xce, 0x5a, 0xff, 0x9f, 0xc5, 0x13, 0x73,
+};
+static const unsigned char kat3223_nonce[] = {
+ 0x10, 0xac, 0xf0, 0x84, 0xe4, 0x63, 0xdb, 0xa0, 0xfd, 0xf9, 0xf5, 0x3e,
+ 0xe6, 0xe5, 0x13, 0xff,
+};
+static const unsigned char kat3223_persstr[] = {
+ 0xb4, 0x4b, 0xa9, 0xb0, 0xad, 0x62, 0x21, 0xeb, 0x37, 0xf6, 0xc0, 0xa0,
+ 0xca, 0xdd, 0xd4, 0x6d, 0xa7, 0x7c, 0xc6, 0x1b, 0xbc, 0x06, 0xed, 0x40,
+ 0x83, 0xe6, 0xb2, 0xd8, 0xad, 0x53, 0x14, 0x62,
+};
+static const unsigned char kat3223_entropyinpr1[] = {
+ 0x40, 0x54, 0x81, 0x29, 0xd4, 0x61, 0xff, 0x0f, 0x04, 0xe8, 0x3b, 0x5b,
+ 0x7a, 0xe7, 0x9e, 0x00, 0x32, 0x9e, 0x16, 0x46, 0xe7, 0x47, 0x6c, 0xd4,
+};
+static const unsigned char kat3223_addinpr1[] = {0};
+static const unsigned char kat3223_entropyinpr2[] = {
+ 0x9a, 0xfe, 0xb6, 0x7a, 0xc7, 0x6e, 0x1e, 0x21, 0x25, 0xbf, 0x7b, 0xd1,
+ 0xcb, 0x3a, 0x20, 0x07, 0xc7, 0xbb, 0xc9, 0x92, 0xcb, 0xe4, 0x95, 0x63,
+};
+static const unsigned char kat3223_addinpr2[] = {0};
+static const unsigned char kat3223_retbits[] = {
+ 0xed, 0x03, 0xe8, 0x86, 0x1d, 0xfa, 0x64, 0xc4, 0xc0, 0x5d, 0x05, 0x5a,
+ 0xd6, 0x4d, 0xea, 0x42, 0x5a, 0x72, 0xaa, 0xc6, 0xfd, 0xf5, 0x25, 0x4b,
+ 0x09, 0x55, 0x1b, 0x07, 0xce, 0x29, 0x4c, 0x63, 0xa8, 0x2b, 0xcd, 0xf2,
+ 0x26, 0xd8, 0x67, 0x6e, 0x95, 0x23, 0x98, 0x86, 0x35, 0x6f, 0x67, 0x6d,
+ 0xe5, 0x39, 0xce, 0x67, 0xc9, 0x74, 0x2c, 0x34, 0x0f, 0x57, 0xf9, 0x39,
+ 0xec, 0xf8, 0x58, 0xb5,
+};
+static const struct drbg_kat_pr_true kat3223_t = {
+ 12, kat3223_entropyin, kat3223_nonce, kat3223_persstr,
+ kat3223_entropyinpr1, kat3223_addinpr1, kat3223_entropyinpr2,
+ kat3223_addinpr2, kat3223_retbits
+};
+static const struct drbg_kat kat3223 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3223_t
+};
+
+static const unsigned char kat3224_entropyin[] = {
+ 0xdc, 0x83, 0x1d, 0xc0, 0x8a, 0x45, 0x94, 0x81, 0xa0, 0xb3, 0x03, 0x25,
+ 0xd8, 0x28, 0xe6, 0x13, 0x48, 0x40, 0xd8, 0x41, 0xa6, 0xcc, 0xb2, 0x20,
+};
+static const unsigned char kat3224_nonce[] = {
+ 0x21, 0xc7, 0x1e, 0xf3, 0x62, 0x00, 0x2d, 0x2c, 0xc6, 0xfe, 0x58, 0x63,
+ 0x4c, 0x8c, 0xff, 0x95,
+};
+static const unsigned char kat3224_persstr[] = {
+ 0x15, 0x73, 0x81, 0x63, 0x28, 0xc9, 0xe1, 0x87, 0x7b, 0x50, 0x5c, 0x65,
+ 0x9e, 0xc6, 0xa1, 0xc1, 0x80, 0x39, 0x8b, 0x5f, 0xf0, 0x05, 0x13, 0xfd,
+ 0x2c, 0x20, 0x54, 0x5b, 0xda, 0x0a, 0x14, 0xec,
+};
+static const unsigned char kat3224_entropyinpr1[] = {
+ 0xda, 0x82, 0x58, 0x15, 0x78, 0x21, 0xbb, 0x87, 0x11, 0xcc, 0x10, 0x3c,
+ 0x48, 0xf2, 0x4b, 0xe5, 0x3f, 0xff, 0xd2, 0xf2, 0xf2, 0xbe, 0x9f, 0x3b,
+};
+static const unsigned char kat3224_addinpr1[] = {0};
+static const unsigned char kat3224_entropyinpr2[] = {
+ 0x29, 0xe7, 0x17, 0x27, 0xc5, 0xb1, 0x30, 0xb9, 0xbf, 0xbb, 0x92, 0x9d,
+ 0xe8, 0x90, 0x6a, 0xfb, 0x77, 0x57, 0x25, 0xc7, 0xb1, 0xac, 0xc6, 0x96,
+};
+static const unsigned char kat3224_addinpr2[] = {0};
+static const unsigned char kat3224_retbits[] = {
+ 0xbc, 0x56, 0xa9, 0x7f, 0x70, 0x64, 0x70, 0x5e, 0x23, 0xcc, 0x3e, 0x02,
+ 0x6c, 0x3f, 0x60, 0xa2, 0xc4, 0x68, 0xd4, 0x7d, 0x3d, 0x7c, 0x1f, 0x74,
+ 0x7a, 0x1a, 0x3f, 0x77, 0x2d, 0xf9, 0x9b, 0xfc, 0x2a, 0x2c, 0xad, 0x74,
+ 0x37, 0xdf, 0x01, 0x53, 0xa8, 0x9c, 0x05, 0xdf, 0xb2, 0x18, 0xbc, 0xb7,
+ 0x40, 0x3d, 0x92, 0x1f, 0xc3, 0x42, 0xe6, 0xc8, 0x58, 0xa7, 0xb7, 0x83,
+ 0x90, 0x56, 0x0d, 0x65,
+};
+static const struct drbg_kat_pr_true kat3224_t = {
+ 13, kat3224_entropyin, kat3224_nonce, kat3224_persstr,
+ kat3224_entropyinpr1, kat3224_addinpr1, kat3224_entropyinpr2,
+ kat3224_addinpr2, kat3224_retbits
+};
+static const struct drbg_kat kat3224 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3224_t
+};
+
+static const unsigned char kat3225_entropyin[] = {
+ 0xca, 0xea, 0xbd, 0x72, 0x0d, 0x43, 0x1b, 0x86, 0x3a, 0x95, 0x20, 0x92,
+ 0x62, 0x4e, 0x28, 0xeb, 0x5c, 0x5d, 0xc4, 0x15, 0x06, 0xd6, 0x30, 0xda,
+};
+static const unsigned char kat3225_nonce[] = {
+ 0x81, 0x05, 0x94, 0xc9, 0xcf, 0x55, 0x58, 0x7c, 0x09, 0x0f, 0xd7, 0x2d,
+ 0x4e, 0x77, 0x65, 0x97,
+};
+static const unsigned char kat3225_persstr[] = {
+ 0x02, 0x28, 0x9c, 0x34, 0xc2, 0xe6, 0xee, 0xf1, 0x56, 0xa4, 0xd9, 0xc2,
+ 0x22, 0x54, 0x15, 0x19, 0x11, 0x59, 0xfa, 0xe5, 0xf1, 0x67, 0xdd, 0xb4,
+ 0xce, 0xf7, 0x2e, 0xa4, 0xd0, 0xa5, 0x65, 0x96,
+};
+static const unsigned char kat3225_entropyinpr1[] = {
+ 0x50, 0xfb, 0x17, 0x9c, 0x0a, 0x00, 0x58, 0x04, 0x60, 0xe8, 0x2b, 0xa7,
+ 0x61, 0x8e, 0xbc, 0x1e, 0xbd, 0xdd, 0xfd, 0x22, 0x2e, 0x08, 0x5b, 0x8f,
+};
+static const unsigned char kat3225_addinpr1[] = {0};
+static const unsigned char kat3225_entropyinpr2[] = {
+ 0x57, 0xce, 0x45, 0xb5, 0xee, 0x35, 0xec, 0x9d, 0x35, 0x0c, 0xde, 0xfb,
+ 0xb5, 0x27, 0x4d, 0xd7, 0x45, 0x3a, 0x74, 0x07, 0x8b, 0x02, 0xf0, 0x10,
+};
+static const unsigned char kat3225_addinpr2[] = {0};
+static const unsigned char kat3225_retbits[] = {
+ 0x41, 0xcf, 0x2e, 0x27, 0x68, 0xd7, 0x9b, 0xbf, 0x16, 0x69, 0x3b, 0x2a,
+ 0xe6, 0xf3, 0x21, 0x3f, 0x6e, 0x45, 0xf0, 0xc3, 0x17, 0xa4, 0x1d, 0x5b,
+ 0xea, 0x78, 0xeb, 0x21, 0xde, 0xde, 0x2f, 0x3b, 0x5a, 0x4a, 0x99, 0x7d,
+ 0x1d, 0x89, 0x57, 0x88, 0x29, 0xe9, 0x84, 0x57, 0x38, 0x61, 0x41, 0xe3,
+ 0x78, 0x8b, 0xcf, 0xe7, 0x8a, 0x79, 0x77, 0x21, 0xdf, 0x5e, 0x2d, 0x35,
+ 0x67, 0xaf, 0x48, 0x94,
+};
+static const struct drbg_kat_pr_true kat3225_t = {
+ 14, kat3225_entropyin, kat3225_nonce, kat3225_persstr,
+ kat3225_entropyinpr1, kat3225_addinpr1, kat3225_entropyinpr2,
+ kat3225_addinpr2, kat3225_retbits
+};
+static const struct drbg_kat kat3225 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3225_t
+};
+
+static const unsigned char kat3226_entropyin[] = {
+ 0x43, 0xcb, 0x1e, 0xc2, 0x25, 0xc4, 0x8d, 0xfd, 0xd8, 0xc1, 0x78, 0x94,
+ 0xa8, 0x28, 0xda, 0x0a, 0x27, 0xe1, 0xc1, 0x8a, 0x51, 0x1f, 0x0c, 0xb5,
+};
+static const unsigned char kat3226_nonce[] = {
+ 0xca, 0xb1, 0xf0, 0xe4, 0x0b, 0x2b, 0xf2, 0x32, 0x6b, 0xbe, 0x6a, 0x3f,
+ 0xf3, 0x44, 0x68, 0x66,
+};
+static const unsigned char kat3226_persstr[] = {
+ 0x56, 0xec, 0x59, 0xe7, 0xbd, 0x36, 0x37, 0x2e, 0xdf, 0x0e, 0x49, 0x2c,
+ 0x2f, 0x6d, 0x88, 0xb8, 0xc9, 0x6a, 0x40, 0xe2, 0x55, 0x50, 0xb4, 0xab,
+ 0xc4, 0xa4, 0x5e, 0xe1, 0x16, 0x3d, 0xe0, 0xf0,
+};
+static const unsigned char kat3226_entropyinpr1[] = {
+ 0xf5, 0x26, 0x87, 0xcd, 0xcc, 0xd9, 0xe5, 0x09, 0xa7, 0x61, 0x4f, 0xd2,
+ 0x88, 0x3d, 0x99, 0x61, 0xe5, 0xc8, 0xf9, 0x49, 0x5b, 0xb6, 0x6f, 0x68,
+};
+static const unsigned char kat3226_addinpr1[] = {
+ 0x3f, 0x1a, 0xea, 0x69, 0xe6, 0x66, 0xc5, 0xc5, 0x2d, 0x36, 0xf6, 0x40,
+ 0x9f, 0x31, 0x29, 0xee, 0xcb, 0x0a, 0x97, 0x9d, 0xba, 0x48, 0xca, 0xa5,
+ 0x2c, 0x87, 0x76, 0x4d, 0xac, 0x63, 0x7f, 0x6e,
+};
+static const unsigned char kat3226_entropyinpr2[] = {
+ 0x5d, 0x86, 0x7f, 0xf7, 0x7d, 0x0f, 0x59, 0x00, 0x58, 0x73, 0xf0, 0x37,
+ 0x00, 0x04, 0xd4, 0xf8, 0xe7, 0x81, 0x98, 0xba, 0x68, 0x3c, 0x2b, 0xe3,
+};
+static const unsigned char kat3226_addinpr2[] = {
+ 0xbb, 0x0b, 0xc7, 0xdc, 0xb9, 0x81, 0xeb, 0x52, 0x16, 0x4f, 0xde, 0xb0,
+ 0x7c, 0xa5, 0xf9, 0xdc, 0x7b, 0x78, 0x90, 0x01, 0x73, 0x1f, 0xd9, 0x48,
+ 0x34, 0xe2, 0x86, 0x27, 0x54, 0x66, 0x32, 0x10,
+};
+static const unsigned char kat3226_retbits[] = {
+ 0x19, 0xc9, 0x1f, 0x55, 0x5d, 0x76, 0x83, 0xf8, 0x44, 0xd5, 0x7f, 0x9d,
+ 0xac, 0xfe, 0x1a, 0x72, 0xe1, 0xe0, 0x61, 0x67, 0x35, 0xae, 0x56, 0x9f,
+ 0x37, 0x0e, 0xf1, 0xe7, 0x70, 0xe1, 0xa6, 0x3b, 0x9d, 0x8e, 0x10, 0x46,
+ 0x1a, 0xcd, 0xcd, 0xe8, 0x5e, 0xf0, 0x3b, 0x1e, 0xf7, 0x40, 0x24, 0xc1,
+ 0x75, 0xb2, 0xa7, 0x15, 0x0d, 0xed, 0x03, 0xa1, 0xe3, 0x08, 0x2c, 0xd4,
+ 0x6a, 0x49, 0x90, 0x93,
+};
+static const struct drbg_kat_pr_true kat3226_t = {
+ 0, kat3226_entropyin, kat3226_nonce, kat3226_persstr,
+ kat3226_entropyinpr1, kat3226_addinpr1, kat3226_entropyinpr2,
+ kat3226_addinpr2, kat3226_retbits
+};
+static const struct drbg_kat kat3226 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3226_t
+};
+
+static const unsigned char kat3227_entropyin[] = {
+ 0x90, 0xc2, 0x13, 0x64, 0xed, 0xe7, 0x9f, 0x1a, 0xfd, 0xba, 0xa5, 0x32,
+ 0x18, 0x6f, 0x9d, 0xdf, 0xd6, 0x3d, 0xf3, 0xf3, 0x2f, 0x54, 0x08, 0xa5,
+};
+static const unsigned char kat3227_nonce[] = {
+ 0x33, 0xde, 0xa3, 0xaa, 0x07, 0x18, 0x70, 0x26, 0xa0, 0x3e, 0x5a, 0x29,
+ 0x2f, 0x02, 0x06, 0xd7,
+};
+static const unsigned char kat3227_persstr[] = {
+ 0x9f, 0x5a, 0xcd, 0xaa, 0x96, 0xb9, 0x81, 0xd3, 0x63, 0x35, 0xa3, 0xc1,
+ 0x68, 0xda, 0x06, 0xd2, 0xf4, 0x69, 0x50, 0x47, 0x16, 0x6d, 0x2d, 0x8f,
+ 0x92, 0xf7, 0xb2, 0x9f, 0xe9, 0x17, 0x55, 0x71,
+};
+static const unsigned char kat3227_entropyinpr1[] = {
+ 0xa6, 0xe3, 0x4e, 0x04, 0x5e, 0xe2, 0x58, 0x5b, 0xb7, 0x3b, 0x1f, 0x64,
+ 0x91, 0xe5, 0x44, 0x94, 0x14, 0x58, 0x57, 0xcf, 0xfa, 0x67, 0xbd, 0x12,
+};
+static const unsigned char kat3227_addinpr1[] = {
+ 0xbb, 0x84, 0x7b, 0x9a, 0xb8, 0x99, 0x76, 0x92, 0x61, 0x90, 0x83, 0xa4,
+ 0xc3, 0x74, 0xc8, 0xc6, 0x8a, 0x40, 0x35, 0xb4, 0x5f, 0x9f, 0x07, 0x28,
+ 0xbc, 0xec, 0xcb, 0x07, 0x23, 0xb0, 0xb3, 0xaf,
+};
+static const unsigned char kat3227_entropyinpr2[] = {
+ 0xcc, 0x7e, 0x98, 0x33, 0x97, 0x72, 0x22, 0xa5, 0x03, 0xde, 0xc2, 0x89,
+ 0xa7, 0xb8, 0xcd, 0xe7, 0xb4, 0x1a, 0x62, 0x7b, 0xec, 0x01, 0xab, 0xb3,
+};
+static const unsigned char kat3227_addinpr2[] = {
+ 0xac, 0xdf, 0x0c, 0x91, 0x7a, 0x43, 0x92, 0x97, 0x29, 0x85, 0xbb, 0x68,
+ 0x74, 0xf7, 0x1e, 0x5d, 0xa5, 0xfe, 0x78, 0x26, 0xf1, 0xe0, 0xd2, 0x8d,
+ 0x56, 0x12, 0xfb, 0xfa, 0x05, 0xa9, 0xc5, 0xc0,
+};
+static const unsigned char kat3227_retbits[] = {
+ 0x5f, 0x22, 0x6c, 0xf7, 0x5f, 0xe0, 0x5b, 0x27, 0x6d, 0xcb, 0xb3, 0x0a,
+ 0x6e, 0x33, 0x0f, 0x2c, 0x58, 0x3a, 0x9a, 0xa4, 0xc1, 0x97, 0x9d, 0x9c,
+ 0xeb, 0xca, 0x2c, 0xf3, 0x6d, 0x6b, 0x95, 0x9f, 0x10, 0xf0, 0x38, 0xf9,
+ 0xa0, 0x1e, 0xfc, 0xcf, 0xff, 0x0b, 0xa6, 0x11, 0xd0, 0x41, 0x81, 0xfd,
+ 0x4c, 0xdb, 0xeb, 0x3a, 0x7e, 0x62, 0x43, 0x4a, 0x4a, 0x13, 0x1d, 0xc9,
+ 0xe7, 0x94, 0x6c, 0x26,
+};
+static const struct drbg_kat_pr_true kat3227_t = {
+ 1, kat3227_entropyin, kat3227_nonce, kat3227_persstr,
+ kat3227_entropyinpr1, kat3227_addinpr1, kat3227_entropyinpr2,
+ kat3227_addinpr2, kat3227_retbits
+};
+static const struct drbg_kat kat3227 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3227_t
+};
+
+static const unsigned char kat3228_entropyin[] = {
+ 0x98, 0x5d, 0x12, 0xe6, 0xe4, 0xe2, 0xc8, 0xc6, 0xe0, 0x1e, 0xdc, 0xfa,
+ 0xca, 0x43, 0x92, 0xc4, 0xb1, 0x0f, 0xd3, 0x32, 0x44, 0x15, 0xac, 0x07,
+};
+static const unsigned char kat3228_nonce[] = {
+ 0x3f, 0x8f, 0x6c, 0xc3, 0x87, 0x53, 0xde, 0x1e, 0xfe, 0x4a, 0x98, 0x5c,
+ 0xfa, 0xc8, 0xb6, 0x68,
+};
+static const unsigned char kat3228_persstr[] = {
+ 0x4d, 0x33, 0x3e, 0xe0, 0xa5, 0x84, 0xa8, 0x14, 0xcf, 0x84, 0x6c, 0x35,
+ 0xba, 0x7c, 0x93, 0x0d, 0xe6, 0x93, 0x78, 0xae, 0x47, 0x95, 0x5e, 0x03,
+ 0x9e, 0xab, 0x17, 0x9b, 0x5b, 0x5e, 0xe2, 0xdb,
+};
+static const unsigned char kat3228_entropyinpr1[] = {
+ 0x7f, 0x97, 0x9d, 0xcb, 0xf2, 0xf7, 0xa4, 0x03, 0x45, 0xc3, 0xe4, 0x2e,
+ 0x1f, 0x4f, 0x44, 0xa8, 0xa9, 0x1f, 0x29, 0x70, 0x6d, 0x55, 0x32, 0xcf,
+};
+static const unsigned char kat3228_addinpr1[] = {
+ 0x68, 0xc2, 0xc1, 0xe9, 0x8c, 0x5a, 0x1e, 0x57, 0x4b, 0x70, 0x14, 0x31,
+ 0x6d, 0xaa, 0xcb, 0xf8, 0xc3, 0x63, 0x30, 0x27, 0x04, 0xe8, 0xa2, 0xfb,
+ 0x8b, 0xd1, 0x0f, 0x4b, 0xe2, 0x14, 0x6e, 0x9d,
+};
+static const unsigned char kat3228_entropyinpr2[] = {
+ 0x93, 0x5d, 0x0d, 0xb1, 0x55, 0x59, 0x77, 0x27, 0x86, 0xd2, 0x49, 0x4e,
+ 0xa0, 0x21, 0x17, 0x60, 0xcf, 0xf5, 0x0d, 0x21, 0xc3, 0x0e, 0x28, 0x00,
+};
+static const unsigned char kat3228_addinpr2[] = {
+ 0xd0, 0x6e, 0x09, 0xca, 0xe6, 0xbb, 0xce, 0x86, 0x17, 0xf5, 0xf4, 0x92,
+ 0xa3, 0x1c, 0x8b, 0xef, 0xcd, 0x69, 0x89, 0xf1, 0xca, 0x7d, 0x9c, 0xa1,
+ 0x43, 0xf5, 0x76, 0x33, 0x6d, 0x0c, 0x2a, 0x3a,
+};
+static const unsigned char kat3228_retbits[] = {
+ 0x94, 0x7f, 0x8b, 0x76, 0x16, 0x68, 0x63, 0xaf, 0x59, 0xaa, 0x5f, 0xfa,
+ 0x49, 0x59, 0xc3, 0x9e, 0x00, 0x3a, 0xcb, 0xc6, 0x54, 0x38, 0x7d, 0x73,
+ 0x92, 0x39, 0x76, 0x22, 0xbb, 0x14, 0x59, 0x59, 0xd6, 0xec, 0x1b, 0x57,
+ 0xcf, 0xd6, 0x75, 0x49, 0x77, 0xc4, 0xed, 0xf9, 0xda, 0x08, 0xef, 0xa6,
+ 0x3a, 0x15, 0xf2, 0x8a, 0x74, 0x13, 0xea, 0x90, 0xf7, 0x48, 0x66, 0xa8,
+ 0x4d, 0x82, 0x75, 0xc1,
+};
+static const struct drbg_kat_pr_true kat3228_t = {
+ 2, kat3228_entropyin, kat3228_nonce, kat3228_persstr,
+ kat3228_entropyinpr1, kat3228_addinpr1, kat3228_entropyinpr2,
+ kat3228_addinpr2, kat3228_retbits
+};
+static const struct drbg_kat kat3228 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3228_t
+};
+
+static const unsigned char kat3229_entropyin[] = {
+ 0x0b, 0xfa, 0xe1, 0xf6, 0x87, 0x1c, 0x42, 0x44, 0x14, 0x77, 0xd5, 0x6b,
+ 0x12, 0x61, 0x47, 0x8c, 0x2b, 0x17, 0xc8, 0xdc, 0x02, 0xdf, 0x95, 0x67,
+};
+static const unsigned char kat3229_nonce[] = {
+ 0x6e, 0x6a, 0x95, 0x20, 0x94, 0x45, 0x59, 0x62, 0x88, 0x68, 0xf7, 0xce,
+ 0x34, 0x55, 0x7c, 0xb1,
+};
+static const unsigned char kat3229_persstr[] = {
+ 0x12, 0x49, 0x79, 0x65, 0x36, 0xb6, 0xcc, 0xe1, 0x81, 0x92, 0x83, 0x89,
+ 0x41, 0x60, 0x91, 0xf9, 0xff, 0x7a, 0xca, 0x40, 0xe3, 0xdc, 0xcd, 0x8b,
+ 0x22, 0x07, 0x46, 0x67, 0xcd, 0x8d, 0x45, 0xd1,
+};
+static const unsigned char kat3229_entropyinpr1[] = {
+ 0xc6, 0xf9, 0x8d, 0x22, 0x6b, 0x64, 0x33, 0xc2, 0x13, 0x3b, 0xe5, 0xcb,
+ 0x3e, 0xd0, 0xdb, 0xe3, 0x6e, 0x44, 0xb3, 0x61, 0x2c, 0xbc, 0x99, 0x1c,
+};
+static const unsigned char kat3229_addinpr1[] = {
+ 0xba, 0x27, 0xf8, 0x58, 0xef, 0x28, 0xea, 0x2e, 0x47, 0xe4, 0x32, 0xae,
+ 0xde, 0xf9, 0xb1, 0x4f, 0x6d, 0x74, 0xfc, 0x6c, 0xb2, 0x49, 0xf6, 0x07,
+ 0xe3, 0x49, 0xf4, 0xed, 0xa7, 0x1d, 0xc0, 0x70,
+};
+static const unsigned char kat3229_entropyinpr2[] = {
+ 0xb1, 0x0d, 0xda, 0x8a, 0xb9, 0x3a, 0xe5, 0xca, 0x16, 0xea, 0x3c, 0x0f,
+ 0x14, 0x2f, 0x20, 0xca, 0xe5, 0xc9, 0x53, 0xcb, 0xea, 0x18, 0x03, 0x1f,
+};
+static const unsigned char kat3229_addinpr2[] = {
+ 0x9f, 0x96, 0x7c, 0x24, 0x78, 0x0d, 0x84, 0x7c, 0x63, 0x32, 0x4d, 0xa6,
+ 0x44, 0x22, 0x78, 0x47, 0x13, 0x75, 0x20, 0x57, 0xcc, 0xb4, 0x87, 0x22,
+ 0xee, 0x98, 0xca, 0x4e, 0x67, 0x51, 0x03, 0xdb,
+};
+static const unsigned char kat3229_retbits[] = {
+ 0x6b, 0x55, 0x9f, 0x2f, 0x03, 0x88, 0xa7, 0xd7, 0xff, 0x73, 0x28, 0x6a,
+ 0x02, 0xb6, 0xf5, 0x04, 0xe9, 0x14, 0x2d, 0xb7, 0xa1, 0xd5, 0xc3, 0xf9,
+ 0xb2, 0x1c, 0xde, 0x50, 0x8d, 0xa8, 0x38, 0xbd, 0xf6, 0x74, 0x2d, 0xb8,
+ 0x0d, 0x5b, 0x26, 0x47, 0xd1, 0xbd, 0x02, 0x4c, 0xa0, 0x16, 0x2e, 0x2d,
+ 0x65, 0x1a, 0xc3, 0x39, 0x26, 0x9f, 0xcc, 0x21, 0x91, 0x34, 0x72, 0x30,
+ 0x7d, 0xdd, 0x51, 0xb6,
+};
+static const struct drbg_kat_pr_true kat3229_t = {
+ 3, kat3229_entropyin, kat3229_nonce, kat3229_persstr,
+ kat3229_entropyinpr1, kat3229_addinpr1, kat3229_entropyinpr2,
+ kat3229_addinpr2, kat3229_retbits
+};
+static const struct drbg_kat kat3229 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3229_t
+};
+
+static const unsigned char kat3230_entropyin[] = {
+ 0x9d, 0x2a, 0x54, 0x0c, 0xa4, 0x4e, 0x2a, 0x55, 0xef, 0xc1, 0x22, 0x7e,
+ 0xb1, 0x29, 0x9a, 0x59, 0x70, 0x20, 0x80, 0xa8, 0xaa, 0x30, 0x26, 0xfa,
+};
+static const unsigned char kat3230_nonce[] = {
+ 0x9d, 0xc9, 0xd3, 0x3f, 0xca, 0x9a, 0xca, 0x40, 0xdd, 0x21, 0xbb, 0x73,
+ 0xb2, 0x2f, 0x08, 0xef,
+};
+static const unsigned char kat3230_persstr[] = {
+ 0x67, 0x9f, 0xcf, 0xc0, 0x4d, 0x21, 0x78, 0xff, 0xe6, 0x70, 0x4a, 0xe5,
+ 0x2f, 0x81, 0x53, 0xb7, 0x70, 0xf2, 0x40, 0x2e, 0xcb, 0x20, 0xcf, 0xc8,
+ 0x15, 0x56, 0x4d, 0xce, 0x8c, 0xb7, 0xad, 0x69,
+};
+static const unsigned char kat3230_entropyinpr1[] = {
+ 0xf0, 0x51, 0x26, 0x31, 0xe8, 0xdf, 0xc8, 0x5e, 0x5b, 0x5a, 0x76, 0xde,
+ 0x8b, 0xb0, 0x8c, 0x5f, 0x50, 0x29, 0xb3, 0x1e, 0x2e, 0x37, 0xfe, 0x95,
+};
+static const unsigned char kat3230_addinpr1[] = {
+ 0x97, 0x82, 0x5c, 0x8e, 0x79, 0xe4, 0x99, 0xd5, 0xdc, 0xcf, 0x58, 0x3d,
+ 0x61, 0x25, 0x2d, 0x36, 0xa4, 0x1d, 0xb6, 0xd0, 0x78, 0x4a, 0x50, 0x93,
+ 0xdb, 0xda, 0xc7, 0xf2, 0x4f, 0xa4, 0x3d, 0x84,
+};
+static const unsigned char kat3230_entropyinpr2[] = {
+ 0xe4, 0xd9, 0xca, 0x10, 0xc4, 0x5d, 0xf6, 0x8d, 0x0e, 0x6c, 0x56, 0x14,
+ 0x09, 0xb3, 0x09, 0x62, 0xed, 0x7a, 0x8a, 0x9d, 0x1f, 0xf1, 0xf2, 0x17,
+};
+static const unsigned char kat3230_addinpr2[] = {
+ 0x25, 0x53, 0x8a, 0x86, 0xe4, 0xaa, 0x41, 0x6f, 0x80, 0x6e, 0x57, 0x6b,
+ 0x1d, 0xef, 0x3c, 0x44, 0x7b, 0xa2, 0x46, 0xe7, 0x8e, 0x10, 0x82, 0xba,
+ 0xca, 0x50, 0x18, 0x6e, 0xf9, 0x06, 0x69, 0x44,
+};
+static const unsigned char kat3230_retbits[] = {
+ 0x91, 0x00, 0x31, 0xab, 0x5b, 0x9c, 0x14, 0x60, 0x8b, 0x58, 0x7b, 0xc3,
+ 0x71, 0x42, 0x30, 0x55, 0x25, 0xf0, 0xd0, 0xb2, 0x9e, 0x2f, 0x3b, 0x4c,
+ 0x5f, 0x0a, 0x84, 0x3b, 0xf4, 0xfa, 0xa7, 0xe3, 0x2c, 0x72, 0x07, 0x25,
+ 0x47, 0x3b, 0x52, 0x67, 0xa1, 0x7c, 0xe7, 0xe3, 0xe1, 0x5b, 0x81, 0xd2,
+ 0x3b, 0x59, 0xb5, 0x6d, 0x87, 0xee, 0x5a, 0x42, 0x47, 0xd9, 0x76, 0xf3,
+ 0xc4, 0xae, 0xa1, 0x6a,
+};
+static const struct drbg_kat_pr_true kat3230_t = {
+ 4, kat3230_entropyin, kat3230_nonce, kat3230_persstr,
+ kat3230_entropyinpr1, kat3230_addinpr1, kat3230_entropyinpr2,
+ kat3230_addinpr2, kat3230_retbits
+};
+static const struct drbg_kat kat3230 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3230_t
+};
+
+static const unsigned char kat3231_entropyin[] = {
+ 0x80, 0x8c, 0xc3, 0x9a, 0x30, 0xa5, 0xca, 0xd3, 0xc2, 0x60, 0x01, 0x84,
+ 0x02, 0x01, 0xd1, 0x7c, 0x37, 0x45, 0x84, 0x15, 0x7b, 0xdc, 0xcc, 0x2d,
+};
+static const unsigned char kat3231_nonce[] = {
+ 0x4a, 0x1d, 0x34, 0xba, 0x60, 0xfc, 0x1f, 0xbb, 0x7c, 0x16, 0x1e, 0xa0,
+ 0x5c, 0xe1, 0x8e, 0xe8,
+};
+static const unsigned char kat3231_persstr[] = {
+ 0x7f, 0xe0, 0x77, 0x93, 0xab, 0xea, 0xa4, 0xd6, 0x1d, 0xa7, 0xa0, 0x44,
+ 0x6a, 0x6b, 0xc3, 0x56, 0x0f, 0x66, 0xf4, 0x43, 0x75, 0x81, 0x8b, 0x6f,
+ 0x20, 0x98, 0x79, 0x4a, 0xcc, 0xc6, 0x17, 0x14,
+};
+static const unsigned char kat3231_entropyinpr1[] = {
+ 0xec, 0x7c, 0x99, 0xf7, 0x38, 0xfc, 0x85, 0x09, 0x53, 0x1e, 0xbb, 0x54,
+ 0x67, 0x43, 0xf2, 0x19, 0x9a, 0x5f, 0x81, 0xa8, 0x2c, 0xeb, 0x60, 0xcc,
+};
+static const unsigned char kat3231_addinpr1[] = {
+ 0x57, 0x20, 0xc0, 0xc1, 0x86, 0x02, 0x73, 0x4d, 0x9d, 0xe7, 0xf1, 0x55,
+ 0xad, 0xcd, 0x58, 0xd6, 0x1d, 0x73, 0xb1, 0xfc, 0x30, 0x01, 0xfa, 0x81,
+ 0xc2, 0xcd, 0x05, 0xd4, 0x1f, 0xf3, 0xd4, 0xc8,
+};
+static const unsigned char kat3231_entropyinpr2[] = {
+ 0xba, 0xf9, 0x3d, 0x5f, 0x49, 0x92, 0xdc, 0x91, 0x26, 0xd9, 0x4d, 0xe2,
+ 0xd7, 0xc3, 0xcd, 0x73, 0x7b, 0xa8, 0x5c, 0xe5, 0x25, 0x46, 0x89, 0x75,
+};
+static const unsigned char kat3231_addinpr2[] = {
+ 0x93, 0x89, 0x47, 0xac, 0xa0, 0xf9, 0xfd, 0xb2, 0x49, 0x24, 0xad, 0xab,
+ 0x6c, 0xfb, 0x6b, 0xd1, 0xb0, 0x0f, 0xef, 0xf7, 0xda, 0xcc, 0xe2, 0xeb,
+ 0x00, 0x76, 0x6a, 0x51, 0xf5, 0xa7, 0xf4, 0x6c,
+};
+static const unsigned char kat3231_retbits[] = {
+ 0xfd, 0xf2, 0xf4, 0x97, 0x19, 0xb9, 0xb4, 0x1c, 0x1d, 0x56, 0xba, 0x94,
+ 0x59, 0x24, 0x71, 0x16, 0xaa, 0x8b, 0x04, 0xaf, 0x7a, 0x0b, 0xa4, 0xdd,
+ 0xa5, 0xed, 0xf7, 0xd0, 0x08, 0x08, 0x4c, 0x06, 0x3c, 0x6d, 0x1c, 0x12,
+ 0x64, 0x1b, 0x6e, 0x08, 0xcb, 0xd9, 0xe8, 0xa1, 0xa5, 0xc2, 0xac, 0xc1,
+ 0xb2, 0x9c, 0xf1, 0xd0, 0x06, 0xce, 0x15, 0xe5, 0x3b, 0x88, 0x6e, 0x6d,
+ 0x62, 0x08, 0x2a, 0x52,
+};
+static const struct drbg_kat_pr_true kat3231_t = {
+ 5, kat3231_entropyin, kat3231_nonce, kat3231_persstr,
+ kat3231_entropyinpr1, kat3231_addinpr1, kat3231_entropyinpr2,
+ kat3231_addinpr2, kat3231_retbits
+};
+static const struct drbg_kat kat3231 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3231_t
+};
+
+static const unsigned char kat3232_entropyin[] = {
+ 0xd0, 0x5b, 0xc4, 0xdb, 0x1b, 0x29, 0x42, 0xc1, 0x6a, 0x2e, 0x7d, 0xcb,
+ 0xc6, 0xfa, 0x18, 0x84, 0xcc, 0xcf, 0x08, 0x3c, 0x37, 0x34, 0x2f, 0xe1,
+};
+static const unsigned char kat3232_nonce[] = {
+ 0x8a, 0x97, 0x00, 0xa1, 0x21, 0x14, 0x5b, 0xa3, 0x89, 0x6b, 0x8b, 0x61,
+ 0xe2, 0x0f, 0x0b, 0x20,
+};
+static const unsigned char kat3232_persstr[] = {
+ 0x7e, 0x7d, 0xe1, 0xc1, 0x73, 0xe6, 0x09, 0x8d, 0x79, 0xd7, 0x0b, 0x27,
+ 0x24, 0x68, 0x60, 0xec, 0xcb, 0x8b, 0x6a, 0x68, 0xb1, 0x8c, 0xfa, 0x7d,
+ 0xf8, 0x28, 0xef, 0x55, 0xf0, 0x7e, 0x94, 0xd2,
+};
+static const unsigned char kat3232_entropyinpr1[] = {
+ 0xad, 0xcf, 0xfd, 0xdd, 0x3f, 0x7e, 0x46, 0x43, 0x44, 0x8f, 0x67, 0xb4,
+ 0xd9, 0x60, 0x17, 0x1d, 0x4f, 0x3f, 0xca, 0xcf, 0x23, 0x52, 0x88, 0xb0,
+};
+static const unsigned char kat3232_addinpr1[] = {
+ 0x15, 0x25, 0xaf, 0xb8, 0x0d, 0xcc, 0x3c, 0x16, 0x84, 0x0e, 0x6e, 0xea,
+ 0x4c, 0x31, 0x82, 0x84, 0x64, 0xeb, 0xe7, 0xef, 0xe4, 0x47, 0x09, 0x1b,
+ 0x01, 0xbb, 0x11, 0x01, 0x55, 0xea, 0x3c, 0x2a,
+};
+static const unsigned char kat3232_entropyinpr2[] = {
+ 0xa0, 0x23, 0x5a, 0x6f, 0xbb, 0x99, 0x06, 0xa9, 0x36, 0xe3, 0xa5, 0xa7,
+ 0x8e, 0xe6, 0xc4, 0x1f, 0xec, 0x4f, 0xaf, 0x9c, 0x5a, 0x9d, 0x26, 0x77,
+};
+static const unsigned char kat3232_addinpr2[] = {
+ 0xef, 0x38, 0x8b, 0x1e, 0xe2, 0x9c, 0x83, 0x9b, 0x9f, 0x45, 0xb5, 0x1a,
+ 0x8d, 0x32, 0xe4, 0xda, 0xfe, 0xf2, 0xd2, 0x0d, 0x83, 0xa1, 0x62, 0x1a,
+ 0x3b, 0xa2, 0xcf, 0x83, 0xbf, 0xc9, 0xe4, 0xbf,
+};
+static const unsigned char kat3232_retbits[] = {
+ 0x19, 0x17, 0x05, 0x4a, 0x2c, 0xb7, 0xfb, 0xf0, 0x52, 0x54, 0x13, 0xe3,
+ 0x52, 0x0d, 0xc6, 0x04, 0x5d, 0x0a, 0xc9, 0x4a, 0x8a, 0x8d, 0x77, 0x9f,
+ 0xc1, 0x01, 0xf9, 0xd1, 0x39, 0x9a, 0x1f, 0x47, 0x96, 0x75, 0x44, 0xf1,
+ 0xf5, 0xd3, 0xa1, 0x27, 0xe5, 0xb3, 0x55, 0x23, 0xf2, 0xeb, 0x1f, 0xb0,
+ 0x24, 0xd8, 0x76, 0x74, 0x98, 0xcd, 0x4e, 0x46, 0xbe, 0xd0, 0x03, 0xf5,
+ 0xc0, 0xf9, 0x51, 0xa6,
+};
+static const struct drbg_kat_pr_true kat3232_t = {
+ 6, kat3232_entropyin, kat3232_nonce, kat3232_persstr,
+ kat3232_entropyinpr1, kat3232_addinpr1, kat3232_entropyinpr2,
+ kat3232_addinpr2, kat3232_retbits
+};
+static const struct drbg_kat kat3232 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3232_t
+};
+
+static const unsigned char kat3233_entropyin[] = {
+ 0x6b, 0x3c, 0x02, 0x3e, 0x65, 0xe9, 0x7f, 0x33, 0x6c, 0xb4, 0xea, 0x0c,
+ 0xf4, 0x42, 0x58, 0xc4, 0xed, 0x56, 0x76, 0xd4, 0x65, 0xcb, 0x5a, 0xca,
+};
+static const unsigned char kat3233_nonce[] = {
+ 0xbb, 0x28, 0x12, 0xfa, 0xac, 0xe9, 0x0e, 0x12, 0xaa, 0xb4, 0x7a, 0xc7,
+ 0xf0, 0x3a, 0x83, 0x55,
+};
+static const unsigned char kat3233_persstr[] = {
+ 0x8e, 0x52, 0x3d, 0x5a, 0xfa, 0x41, 0xb8, 0x48, 0x84, 0xac, 0x98, 0xaa,
+ 0xfa, 0xce, 0x23, 0xb0, 0x8e, 0x90, 0x9f, 0x38, 0x1a, 0x5e, 0xd9, 0xb7,
+ 0x07, 0xb5, 0xca, 0xc5, 0x61, 0x8c, 0xaa, 0xa3,
+};
+static const unsigned char kat3233_entropyinpr1[] = {
+ 0x04, 0x99, 0xbb, 0x60, 0x53, 0x2f, 0x9f, 0xdc, 0xb8, 0xdd, 0x5d, 0xae,
+ 0x82, 0x38, 0x06, 0x93, 0x8c, 0xac, 0xe4, 0xd5, 0xae, 0x61, 0x25, 0x6c,
+};
+static const unsigned char kat3233_addinpr1[] = {
+ 0x81, 0xe3, 0xe6, 0x11, 0x54, 0xff, 0x95, 0xb7, 0x3f, 0xeb, 0xd4, 0xc3,
+ 0x77, 0xc5, 0x79, 0x6b, 0x1e, 0x3e, 0x50, 0x25, 0x2e, 0x86, 0x4d, 0x2a,
+ 0x3f, 0xf9, 0x2c, 0x04, 0xff, 0x18, 0x52, 0x05,
+};
+static const unsigned char kat3233_entropyinpr2[] = {
+ 0x88, 0x72, 0x63, 0x31, 0x2a, 0x68, 0x67, 0xe4, 0xa5, 0x5e, 0x46, 0xdf,
+ 0x6e, 0x1a, 0x7d, 0x9b, 0xd2, 0x44, 0x93, 0x37, 0xf7, 0xa3, 0xda, 0xa0,
+};
+static const unsigned char kat3233_addinpr2[] = {
+ 0x0b, 0xf3, 0xe2, 0xd2, 0x01, 0x74, 0x8d, 0x46, 0x1f, 0x4b, 0x9f, 0x62,
+ 0x1a, 0x73, 0xfd, 0x71, 0xf5, 0xe2, 0xbf, 0xb5, 0xb7, 0x66, 0x5b, 0xca,
+ 0xa3, 0xf8, 0x25, 0x2e, 0x3c, 0xec, 0x9e, 0x73,
+};
+static const unsigned char kat3233_retbits[] = {
+ 0x08, 0x93, 0xee, 0xaf, 0xc0, 0xc3, 0x27, 0x73, 0x6d, 0xe0, 0xa9, 0x8b,
+ 0x73, 0x6e, 0x21, 0xc2, 0xae, 0xef, 0xeb, 0x4e, 0x41, 0x8a, 0xd6, 0x36,
+ 0xde, 0x34, 0xae, 0x85, 0x45, 0xe1, 0xca, 0xe6, 0x3c, 0xd8, 0xdc, 0x33,
+ 0x17, 0x66, 0x9b, 0xbe, 0x87, 0x56, 0x06, 0x3d, 0x58, 0x52, 0x46, 0x11,
+ 0x1b, 0xe2, 0xd3, 0x24, 0xad, 0x38, 0xda, 0x01, 0xe0, 0x77, 0x47, 0x06,
+ 0xfb, 0x3a, 0xcc, 0x35,
+};
+static const struct drbg_kat_pr_true kat3233_t = {
+ 7, kat3233_entropyin, kat3233_nonce, kat3233_persstr,
+ kat3233_entropyinpr1, kat3233_addinpr1, kat3233_entropyinpr2,
+ kat3233_addinpr2, kat3233_retbits
+};
+static const struct drbg_kat kat3233 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3233_t
+};
+
+static const unsigned char kat3234_entropyin[] = {
+ 0x64, 0xd1, 0x76, 0x3b, 0xfb, 0x42, 0xd3, 0x50, 0xf6, 0x24, 0x01, 0x20,
+ 0xe7, 0x13, 0x6c, 0xb7, 0xc6, 0x60, 0x35, 0x13, 0x03, 0x43, 0x5d, 0xa7,
+};
+static const unsigned char kat3234_nonce[] = {
+ 0x9b, 0x97, 0x63, 0x0b, 0x26, 0x30, 0xb4, 0x3a, 0x1e, 0xe8, 0xcb, 0x92,
+ 0x69, 0xf4, 0x2d, 0xba,
+};
+static const unsigned char kat3234_persstr[] = {
+ 0x49, 0x9d, 0x2b, 0xa3, 0x6a, 0x52, 0x2f, 0x19, 0xf3, 0x46, 0x60, 0x9a,
+ 0xd5, 0xb0, 0xb5, 0xe9, 0x77, 0x68, 0xb8, 0x6f, 0xb9, 0xa2, 0x0f, 0xf3,
+ 0xdf, 0x02, 0xdc, 0x87, 0x66, 0x0e, 0x24, 0x83,
+};
+static const unsigned char kat3234_entropyinpr1[] = {
+ 0xe3, 0x0d, 0x0d, 0x80, 0xe0, 0xee, 0x5e, 0x29, 0x78, 0x63, 0x5d, 0x37,
+ 0x49, 0xd0, 0x57, 0x9d, 0x39, 0x88, 0x22, 0xac, 0x0e, 0xb6, 0x31, 0xc2,
+};
+static const unsigned char kat3234_addinpr1[] = {
+ 0x49, 0xc9, 0x4f, 0xb0, 0xc4, 0x61, 0xb4, 0xc7, 0x86, 0xc0, 0x4e, 0x38,
+ 0xec, 0x48, 0x07, 0x50, 0xb8, 0xa7, 0xd8, 0x1c, 0x38, 0x2d, 0x4a, 0x0b,
+ 0xaf, 0x20, 0xdb, 0xc0, 0xa1, 0x61, 0x69, 0x4c,
+};
+static const unsigned char kat3234_entropyinpr2[] = {
+ 0xb0, 0x5d, 0xa4, 0x08, 0x9b, 0x61, 0x57, 0x0b, 0x8c, 0xe8, 0xc9, 0xa8,
+ 0xcc, 0x57, 0xc4, 0x28, 0x88, 0xc8, 0xad, 0x4c, 0x2c, 0xc5, 0x09, 0x2e,
+};
+static const unsigned char kat3234_addinpr2[] = {
+ 0x2d, 0x60, 0xeb, 0x69, 0x06, 0x9b, 0x6c, 0xac, 0x3d, 0x81, 0xe1, 0x1f,
+ 0xad, 0xe2, 0xde, 0x05, 0x98, 0x63, 0x64, 0xce, 0x91, 0xb0, 0xe8, 0x6c,
+ 0xa0, 0xf1, 0x64, 0x53, 0x05, 0xcf, 0x09, 0xe3,
+};
+static const unsigned char kat3234_retbits[] = {
+ 0xe9, 0x04, 0x17, 0x50, 0x4a, 0x0c, 0xb2, 0x96, 0x59, 0x03, 0x37, 0xde,
+ 0x2b, 0x73, 0x7f, 0xf1, 0xdd, 0x9f, 0x0a, 0xd3, 0x19, 0x81, 0xb5, 0xf8,
+ 0xdb, 0x7a, 0x76, 0x8a, 0x63, 0xcc, 0x50, 0x21, 0x0e, 0x34, 0x79, 0xea,
+ 0xc8, 0xb9, 0xb9, 0x15, 0x09, 0x95, 0xdf, 0xb2, 0x10, 0x42, 0x29, 0x02,
+ 0x12, 0x76, 0xf7, 0x6e, 0xb1, 0xd2, 0x9d, 0x89, 0xd5, 0x97, 0x3c, 0xf7,
+ 0x81, 0x58, 0xb5, 0x15,
+};
+static const struct drbg_kat_pr_true kat3234_t = {
+ 8, kat3234_entropyin, kat3234_nonce, kat3234_persstr,
+ kat3234_entropyinpr1, kat3234_addinpr1, kat3234_entropyinpr2,
+ kat3234_addinpr2, kat3234_retbits
+};
+static const struct drbg_kat kat3234 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3234_t
+};
+
+static const unsigned char kat3235_entropyin[] = {
+ 0xa1, 0x97, 0x89, 0x85, 0x93, 0xf8, 0x0b, 0xa8, 0xae, 0xb6, 0x8e, 0x2a,
+ 0x7f, 0x5d, 0x95, 0xcc, 0x5a, 0x6d, 0x63, 0xf5, 0x0c, 0x18, 0x26, 0x1b,
+};
+static const unsigned char kat3235_nonce[] = {
+ 0xb5, 0x06, 0x0f, 0xdd, 0xcf, 0x18, 0x1e, 0xa8, 0x54, 0xe6, 0xbc, 0x79,
+ 0xb4, 0x81, 0x95, 0x61,
+};
+static const unsigned char kat3235_persstr[] = {
+ 0xaf, 0xe6, 0xab, 0xa6, 0x6c, 0x8d, 0x6e, 0x7d, 0xd7, 0xf1, 0x89, 0x4e,
+ 0xd4, 0x35, 0xe3, 0x4e, 0xee, 0x24, 0xd5, 0x72, 0x9c, 0xc2, 0xfb, 0xe0,
+ 0xbb, 0xfd, 0x49, 0x16, 0x32, 0xdd, 0x16, 0x4b,
+};
+static const unsigned char kat3235_entropyinpr1[] = {
+ 0x79, 0xec, 0x4a, 0x64, 0xf6, 0x12, 0xf9, 0x9e, 0xf4, 0xa7, 0xde, 0xf0,
+ 0xc7, 0x41, 0x0e, 0x48, 0x05, 0xbd, 0x2d, 0x93, 0x19, 0x6b, 0x8f, 0x31,
+};
+static const unsigned char kat3235_addinpr1[] = {
+ 0xa9, 0xd5, 0x12, 0x74, 0x42, 0xad, 0xe5, 0x24, 0x58, 0xc7, 0xf2, 0xf2,
+ 0x50, 0x57, 0x11, 0xae, 0xfd, 0x4f, 0xf9, 0x48, 0x19, 0x2c, 0xa6, 0xa2,
+ 0xb5, 0xed, 0x02, 0x4b, 0x31, 0x92, 0x4d, 0xe7,
+};
+static const unsigned char kat3235_entropyinpr2[] = {
+ 0xa8, 0xcf, 0xf7, 0x93, 0x03, 0x40, 0x00, 0xe1, 0x4c, 0x8e, 0xb5, 0x04,
+ 0x4e, 0xaf, 0x18, 0x27, 0x92, 0xdd, 0xea, 0xf2, 0x7b, 0x8a, 0xea, 0xb9,
+};
+static const unsigned char kat3235_addinpr2[] = {
+ 0xa2, 0x0b, 0x9d, 0xc4, 0xdd, 0x72, 0xaa, 0x3a, 0x42, 0x0f, 0xff, 0x02,
+ 0x98, 0x84, 0x70, 0x5d, 0xe9, 0x91, 0x21, 0x7b, 0x65, 0x10, 0x26, 0x04,
+ 0xc3, 0x2c, 0x2d, 0x44, 0x38, 0xf5, 0x1c, 0x8b,
+};
+static const unsigned char kat3235_retbits[] = {
+ 0xe9, 0x4b, 0x83, 0x41, 0x19, 0xdb, 0xb3, 0x18, 0xd6, 0xef, 0x48, 0xac,
+ 0xbe, 0x75, 0x66, 0x87, 0x16, 0xcf, 0xb7, 0x7d, 0xac, 0x60, 0x28, 0x43,
+ 0xb3, 0xb7, 0x43, 0x53, 0x5d, 0x6c, 0x22, 0x78, 0x41, 0xcc, 0x5c, 0x11,
+ 0x58, 0x02, 0x0f, 0x2e, 0x01, 0xad, 0x8c, 0x03, 0x10, 0x22, 0x43, 0x60,
+ 0x0e, 0xf9, 0x35, 0x8b, 0xd9, 0x88, 0xc0, 0x24, 0xb8, 0xca, 0x41, 0xe5,
+ 0xb7, 0xe8, 0xf3, 0xbf,
+};
+static const struct drbg_kat_pr_true kat3235_t = {
+ 9, kat3235_entropyin, kat3235_nonce, kat3235_persstr,
+ kat3235_entropyinpr1, kat3235_addinpr1, kat3235_entropyinpr2,
+ kat3235_addinpr2, kat3235_retbits
+};
+static const struct drbg_kat kat3235 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3235_t
+};
+
+static const unsigned char kat3236_entropyin[] = {
+ 0x21, 0x13, 0xca, 0x53, 0x08, 0x44, 0x75, 0xa9, 0x8e, 0x79, 0x5e, 0xba,
+ 0xf6, 0x89, 0xaf, 0xc6, 0xbe, 0xfe, 0x80, 0xf9, 0x27, 0x52, 0x70, 0xec,
+};
+static const unsigned char kat3236_nonce[] = {
+ 0x7e, 0x92, 0x56, 0xfd, 0x04, 0xbb, 0x92, 0x63, 0x4d, 0x66, 0x71, 0x33,
+ 0xa3, 0x7e, 0x91, 0x69,
+};
+static const unsigned char kat3236_persstr[] = {
+ 0xcc, 0xa3, 0x1a, 0x05, 0x7f, 0x65, 0x60, 0x1b, 0xd2, 0xee, 0xc5, 0xe7,
+ 0x5f, 0xc1, 0x3a, 0xe6, 0xcd, 0xb0, 0x81, 0x47, 0xe2, 0x08, 0x45, 0xbb,
+ 0x36, 0x23, 0x7a, 0x7d, 0x03, 0xc2, 0xd5, 0x22,
+};
+static const unsigned char kat3236_entropyinpr1[] = {
+ 0xf7, 0xcd, 0x8e, 0xb0, 0x75, 0xbb, 0x73, 0xa3, 0xb5, 0xfe, 0xfe, 0x46,
+ 0xdf, 0xc3, 0x2d, 0x42, 0x34, 0x81, 0xb5, 0x67, 0xaa, 0x6f, 0x87, 0x61,
+};
+static const unsigned char kat3236_addinpr1[] = {
+ 0x78, 0x0c, 0xe6, 0xd0, 0x71, 0x8e, 0x43, 0xc3, 0xae, 0x5d, 0xa7, 0x94,
+ 0xde, 0x6a, 0xda, 0x17, 0xf7, 0x1a, 0x3f, 0x66, 0xdd, 0xf9, 0x9a, 0x40,
+ 0x39, 0xb8, 0x05, 0x7b, 0x45, 0x2c, 0x43, 0xe1,
+};
+static const unsigned char kat3236_entropyinpr2[] = {
+ 0x11, 0x1a, 0xe0, 0xbd, 0x64, 0x90, 0xe4, 0x6b, 0xec, 0xee, 0x50, 0x42,
+ 0x37, 0xbd, 0x81, 0x77, 0xda, 0x35, 0x9d, 0xc9, 0xdf, 0x8c, 0xb4, 0xd4,
+};
+static const unsigned char kat3236_addinpr2[] = {
+ 0x4a, 0x85, 0x68, 0x82, 0xe7, 0x5e, 0xe2, 0x06, 0xc5, 0xbe, 0xf4, 0x21,
+ 0x23, 0x48, 0x2d, 0x27, 0x37, 0x35, 0x61, 0xf6, 0x88, 0x63, 0x8d, 0x56,
+ 0x9e, 0xf0, 0x9f, 0x18, 0x94, 0x1a, 0x66, 0x14,
+};
+static const unsigned char kat3236_retbits[] = {
+ 0x39, 0xfe, 0x7d, 0x8f, 0x5d, 0xa0, 0x6e, 0x2c, 0x30, 0x65, 0x53, 0x2d,
+ 0x3a, 0x58, 0x12, 0x62, 0xda, 0x24, 0xa3, 0xc2, 0x42, 0x0a, 0xf4, 0x3b,
+ 0xb0, 0x75, 0xf0, 0xc1, 0xba, 0x17, 0x00, 0x50, 0x52, 0xe8, 0x39, 0x50,
+ 0x63, 0x54, 0x15, 0x6c, 0x01, 0x4f, 0x01, 0x24, 0xfd, 0x12, 0x8a, 0x62,
+ 0x2e, 0x18, 0x0d, 0xfc, 0xd0, 0xed, 0x4c, 0xf8, 0xab, 0x5f, 0xf2, 0x4b,
+ 0xa2, 0xb3, 0xc5, 0x4d,
+};
+static const struct drbg_kat_pr_true kat3236_t = {
+ 10, kat3236_entropyin, kat3236_nonce, kat3236_persstr,
+ kat3236_entropyinpr1, kat3236_addinpr1, kat3236_entropyinpr2,
+ kat3236_addinpr2, kat3236_retbits
+};
+static const struct drbg_kat kat3236 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3236_t
+};
+
+static const unsigned char kat3237_entropyin[] = {
+ 0x6f, 0x9e, 0x1e, 0x39, 0x2b, 0x6f, 0xce, 0xbc, 0xb1, 0xe9, 0x85, 0x84,
+ 0x26, 0xc4, 0x2c, 0xa5, 0x2f, 0xd3, 0x3b, 0xaf, 0xbe, 0xc3, 0xdc, 0xaf,
+};
+static const unsigned char kat3237_nonce[] = {
+ 0xc8, 0x4f, 0xb2, 0x77, 0xc9, 0x8e, 0x69, 0x89, 0xfa, 0x3e, 0x74, 0xce,
+ 0x1d, 0x82, 0x61, 0x88,
+};
+static const unsigned char kat3237_persstr[] = {
+ 0xdf, 0x41, 0xb6, 0x07, 0x80, 0xf8, 0x56, 0xed, 0xa3, 0xed, 0x44, 0x4f,
+ 0xfd, 0xe4, 0x6f, 0xba, 0x36, 0x21, 0xca, 0x73, 0x63, 0xc4, 0xb6, 0x13,
+ 0xeb, 0xc2, 0x1f, 0x68, 0x48, 0x0c, 0x16, 0x4c,
+};
+static const unsigned char kat3237_entropyinpr1[] = {
+ 0xdb, 0x94, 0x12, 0x15, 0xf7, 0x6c, 0xe3, 0xca, 0x34, 0xd1, 0x44, 0x12,
+ 0x2d, 0x51, 0x01, 0xeb, 0xdb, 0xae, 0x2d, 0x64, 0xd2, 0xcc, 0x63, 0x0a,
+};
+static const unsigned char kat3237_addinpr1[] = {
+ 0x20, 0x92, 0xec, 0x92, 0xd8, 0x4a, 0x48, 0x01, 0x2b, 0x68, 0x67, 0xad,
+ 0xc5, 0x28, 0x91, 0x16, 0x10, 0xe8, 0xf9, 0xd1, 0xfb, 0x6b, 0xdb, 0xb7,
+ 0x5f, 0x89, 0x9a, 0x10, 0xa3, 0x44, 0x5a, 0xf6,
+};
+static const unsigned char kat3237_entropyinpr2[] = {
+ 0xe7, 0x1d, 0x17, 0x8b, 0x58, 0xab, 0x5c, 0x8e, 0x95, 0x3b, 0x40, 0xa4,
+ 0x76, 0x3b, 0xf3, 0x2c, 0x0a, 0x74, 0x2e, 0x25, 0xcc, 0xeb, 0x41, 0x7e,
+};
+static const unsigned char kat3237_addinpr2[] = {
+ 0x44, 0x44, 0xa4, 0xc0, 0x31, 0xdc, 0x99, 0x01, 0x5c, 0x5f, 0xdd, 0x6d,
+ 0x00, 0x66, 0x49, 0x4d, 0xab, 0xbb, 0xd2, 0xc5, 0xff, 0xf1, 0x78, 0x2a,
+ 0xcb, 0x04, 0x4a, 0x1d, 0xb9, 0x8b, 0x52, 0x94,
+};
+static const unsigned char kat3237_retbits[] = {
+ 0x60, 0xf3, 0xfe, 0x74, 0x0a, 0x96, 0xec, 0x3b, 0xb4, 0x72, 0x18, 0x46,
+ 0x5c, 0xa1, 0xf3, 0x70, 0x83, 0xbc, 0x02, 0x3d, 0x67, 0x5c, 0x18, 0x83,
+ 0x51, 0x86, 0xde, 0xb9, 0xba, 0xf6, 0x2a, 0x78, 0x9e, 0x7f, 0x19, 0xfc,
+ 0x2b, 0xbf, 0x22, 0x04, 0x0b, 0x26, 0x8d, 0xfa, 0x11, 0x05, 0x21, 0xd2,
+ 0xe2, 0x98, 0x85, 0x1f, 0x83, 0x93, 0xe0, 0x13, 0x44, 0x45, 0xe6, 0x65,
+ 0x50, 0xde, 0x97, 0x7e,
+};
+static const struct drbg_kat_pr_true kat3237_t = {
+ 11, kat3237_entropyin, kat3237_nonce, kat3237_persstr,
+ kat3237_entropyinpr1, kat3237_addinpr1, kat3237_entropyinpr2,
+ kat3237_addinpr2, kat3237_retbits
+};
+static const struct drbg_kat kat3237 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3237_t
+};
+
+static const unsigned char kat3238_entropyin[] = {
+ 0xc6, 0x47, 0xf8, 0xed, 0x57, 0x7f, 0xd5, 0x0e, 0x40, 0x38, 0xd6, 0xd5,
+ 0xe5, 0xca, 0x75, 0x48, 0xaa, 0x07, 0x68, 0xe7, 0xf1, 0xa2, 0x9f, 0x6e,
+};
+static const unsigned char kat3238_nonce[] = {
+ 0xa4, 0x96, 0xd7, 0xc4, 0x60, 0x46, 0xc5, 0x66, 0xdd, 0xca, 0x9f, 0x94,
+ 0xfd, 0xc3, 0xd0, 0xd4,
+};
+static const unsigned char kat3238_persstr[] = {
+ 0x59, 0xe8, 0xc6, 0xb6, 0x49, 0x30, 0x98, 0x3f, 0x5e, 0x9a, 0xe9, 0x29,
+ 0x08, 0xad, 0x84, 0xfd, 0x58, 0xf8, 0x7b, 0xcc, 0x39, 0x94, 0x1a, 0xbe,
+ 0x4c, 0x0e, 0x8e, 0x96, 0xc7, 0x63, 0x90, 0xea,
+};
+static const unsigned char kat3238_entropyinpr1[] = {
+ 0xce, 0x3e, 0xa3, 0x23, 0x10, 0xcb, 0xfe, 0xb7, 0x17, 0x44, 0xb8, 0xbb,
+ 0xe1, 0x1e, 0xb5, 0xcb, 0x69, 0x82, 0x94, 0x0d, 0xc5, 0x76, 0xb6, 0xbf,
+};
+static const unsigned char kat3238_addinpr1[] = {
+ 0xe5, 0x32, 0xad, 0xec, 0x0d, 0x3a, 0xcb, 0x7d, 0xd5, 0x1f, 0x49, 0xdd,
+ 0x70, 0x9b, 0xf9, 0x05, 0x49, 0x93, 0x52, 0x6e, 0x5e, 0x08, 0x67, 0x20,
+ 0x52, 0xf7, 0x15, 0xa2, 0xab, 0x55, 0xda, 0x41,
+};
+static const unsigned char kat3238_entropyinpr2[] = {
+ 0xfb, 0x1d, 0xe3, 0xe8, 0x8e, 0x8a, 0xd3, 0x0b, 0x16, 0xf9, 0xda, 0x88,
+ 0x39, 0xe5, 0x5a, 0x4b, 0x9b, 0xb9, 0x23, 0xa3, 0xa0, 0x8d, 0x00, 0x47,
+};
+static const unsigned char kat3238_addinpr2[] = {
+ 0x67, 0xbb, 0x8c, 0x08, 0xc0, 0xe6, 0x88, 0x81, 0xb4, 0x66, 0x86, 0x25,
+ 0x32, 0xdf, 0xc8, 0xd3, 0xe8, 0x0e, 0xae, 0x24, 0x99, 0x23, 0xb7, 0x92,
+ 0x3e, 0xd9, 0x93, 0xaf, 0xd1, 0x18, 0x67, 0xde,
+};
+static const unsigned char kat3238_retbits[] = {
+ 0x31, 0xc7, 0x8a, 0x2f, 0x5e, 0x72, 0xc9, 0xcc, 0xda, 0x8f, 0xe9, 0x66,
+ 0x9f, 0x1f, 0x1f, 0x64, 0x92, 0xe8, 0xe6, 0x3d, 0xf7, 0x58, 0xa8, 0xb6,
+ 0x05, 0xfb, 0x0c, 0x63, 0x74, 0x88, 0x4c, 0xd3, 0x15, 0xe1, 0xd7, 0xa6,
+ 0xed, 0xdc, 0x72, 0xc0, 0x2d, 0xd3, 0xc5, 0xfe, 0x11, 0x72, 0xba, 0xc0,
+ 0x27, 0x5e, 0xf5, 0x74, 0xd1, 0x09, 0xf9, 0xd6, 0x85, 0xac, 0xdb, 0xb1,
+ 0xba, 0xa7, 0xf5, 0x7b,
+};
+static const struct drbg_kat_pr_true kat3238_t = {
+ 12, kat3238_entropyin, kat3238_nonce, kat3238_persstr,
+ kat3238_entropyinpr1, kat3238_addinpr1, kat3238_entropyinpr2,
+ kat3238_addinpr2, kat3238_retbits
+};
+static const struct drbg_kat kat3238 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3238_t
+};
+
+static const unsigned char kat3239_entropyin[] = {
+ 0xc2, 0x62, 0x53, 0xf3, 0xc8, 0x3a, 0x89, 0x68, 0x1e, 0x78, 0x07, 0x42,
+ 0x3b, 0x20, 0xc4, 0x30, 0x39, 0x24, 0xad, 0x5e, 0xdb, 0x29, 0x66, 0x86,
+};
+static const unsigned char kat3239_nonce[] = {
+ 0x42, 0x04, 0x5c, 0x4b, 0xcc, 0x57, 0x38, 0xc1, 0x90, 0x59, 0xb2, 0x95,
+ 0x2c, 0xc6, 0xde, 0xf1,
+};
+static const unsigned char kat3239_persstr[] = {
+ 0x68, 0xb1, 0x1c, 0x2d, 0x2c, 0xa6, 0xf0, 0x7f, 0x9e, 0x96, 0x19, 0x79,
+ 0x68, 0xf0, 0x95, 0xe4, 0x51, 0x60, 0xe9, 0x10, 0xea, 0xc5, 0x83, 0xfe,
+ 0xb4, 0xe6, 0x86, 0xfb, 0x9d, 0x19, 0x7e, 0xb7,
+};
+static const unsigned char kat3239_entropyinpr1[] = {
+ 0x00, 0x07, 0xe3, 0xe2, 0x83, 0x39, 0x10, 0xbb, 0xc0, 0x98, 0xf8, 0xc1,
+ 0x43, 0x7c, 0xaf, 0x2e, 0x0a, 0x62, 0x20, 0x21, 0x62, 0x07, 0xf0, 0x9b,
+};
+static const unsigned char kat3239_addinpr1[] = {
+ 0x7d, 0xa8, 0xf1, 0x78, 0xc6, 0xbb, 0xae, 0xda, 0x7a, 0x15, 0x8b, 0x19,
+ 0xbc, 0x18, 0xa3, 0x2a, 0x9b, 0x3d, 0x0c, 0xaf, 0x42, 0x88, 0x91, 0x4b,
+ 0x32, 0xa9, 0x88, 0x42, 0x77, 0x75, 0x7b, 0xbb,
+};
+static const unsigned char kat3239_entropyinpr2[] = {
+ 0x76, 0x25, 0x3f, 0x3e, 0xba, 0x4c, 0x81, 0xc6, 0x9a, 0x12, 0xd7, 0xd7,
+ 0x38, 0xe6, 0x5b, 0xb3, 0x9e, 0x72, 0x30, 0x08, 0x54, 0x06, 0x13, 0x3a,
+};
+static const unsigned char kat3239_addinpr2[] = {
+ 0x2e, 0x57, 0x60, 0xa4, 0x04, 0x4a, 0x7c, 0xd8, 0xc0, 0xdf, 0x35, 0xfd,
+ 0x85, 0xbf, 0xc6, 0xbd, 0x3e, 0x38, 0xe1, 0x2b, 0xa3, 0xb5, 0xa4, 0x7b,
+ 0xf2, 0xc9, 0xed, 0x52, 0x14, 0x22, 0xa7, 0x6e,
+};
+static const unsigned char kat3239_retbits[] = {
+ 0x81, 0x2e, 0x56, 0xa9, 0x7a, 0x9f, 0x62, 0xd1, 0x4a, 0x2d, 0xef, 0x87,
+ 0xb8, 0x9c, 0x7a, 0x19, 0xcd, 0xd3, 0x09, 0x26, 0xf3, 0x63, 0xc5, 0x21,
+ 0x79, 0x93, 0x1d, 0x7c, 0xbc, 0xa6, 0x3c, 0x3a, 0xa7, 0xfa, 0x71, 0x5f,
+ 0xdd, 0xa9, 0x5a, 0xfb, 0xcf, 0x4f, 0x02, 0x36, 0x79, 0xf0, 0x7d, 0x45,
+ 0x20, 0x9c, 0xb9, 0x54, 0xc3, 0xfe, 0xbd, 0xad, 0x61, 0xc6, 0x49, 0xd7,
+ 0x9a, 0xab, 0xd0, 0xa3,
+};
+static const struct drbg_kat_pr_true kat3239_t = {
+ 13, kat3239_entropyin, kat3239_nonce, kat3239_persstr,
+ kat3239_entropyinpr1, kat3239_addinpr1, kat3239_entropyinpr2,
+ kat3239_addinpr2, kat3239_retbits
+};
+static const struct drbg_kat kat3239 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3239_t
+};
+
+static const unsigned char kat3240_entropyin[] = {
+ 0x5d, 0xbd, 0x7c, 0x15, 0x99, 0x92, 0x50, 0xe3, 0xe0, 0x0f, 0xbf, 0xa1,
+ 0x88, 0x89, 0x7c, 0x3c, 0x8b, 0x82, 0xb9, 0x46, 0xc8, 0x0c, 0x36, 0x6a,
+};
+static const unsigned char kat3240_nonce[] = {
+ 0x19, 0x3d, 0xa4, 0x67, 0xdd, 0xef, 0x6c, 0x6c, 0x66, 0x49, 0xbf, 0x6d,
+ 0x09, 0x79, 0x6e, 0x52,
+};
+static const unsigned char kat3240_persstr[] = {
+ 0xb0, 0x3f, 0x58, 0xf9, 0x7a, 0x1f, 0x0c, 0xe4, 0xb6, 0xb1, 0x80, 0x8e,
+ 0x43, 0x6e, 0xd2, 0x4d, 0x8e, 0xa1, 0x53, 0x65, 0x2d, 0xcb, 0xad, 0x82,
+ 0x11, 0xf8, 0xe2, 0xe4, 0xb7, 0x64, 0x88, 0x3d,
+};
+static const unsigned char kat3240_entropyinpr1[] = {
+ 0xc5, 0xb5, 0xbf, 0x67, 0x27, 0x12, 0xa1, 0xeb, 0xed, 0xa0, 0x27, 0x37,
+ 0xbc, 0xf8, 0xbe, 0x47, 0x7a, 0x52, 0xd1, 0xd1, 0x7c, 0x09, 0xe9, 0x64,
+};
+static const unsigned char kat3240_addinpr1[] = {
+ 0x4e, 0x02, 0x4d, 0xd4, 0xfb, 0x29, 0xb2, 0xf9, 0x50, 0x43, 0x9d, 0x70,
+ 0xf7, 0xf0, 0x6a, 0xd5, 0x94, 0xa1, 0x10, 0xb2, 0x37, 0xae, 0xac, 0x4b,
+ 0x73, 0x1a, 0x22, 0x7a, 0x54, 0x50, 0x17, 0xaf,
+};
+static const unsigned char kat3240_entropyinpr2[] = {
+ 0x43, 0x8b, 0x5e, 0x3e, 0x07, 0x45, 0x20, 0x9f, 0x53, 0x83, 0x8f, 0xd0,
+ 0x15, 0xd1, 0xd0, 0x89, 0x73, 0xde, 0x34, 0x99, 0x46, 0x4f, 0xf5, 0x7a,
+};
+static const unsigned char kat3240_addinpr2[] = {
+ 0x8c, 0xa0, 0x6a, 0xfa, 0xc7, 0xf8, 0x36, 0xef, 0xef, 0x3b, 0x5d, 0xa8,
+ 0xb0, 0x47, 0x5e, 0x6c, 0x23, 0x85, 0x70, 0xb0, 0x4f, 0x31, 0xf7, 0x4f,
+ 0x11, 0x0d, 0x31, 0xe3, 0xc2, 0xb0, 0xdf, 0x91,
+};
+static const unsigned char kat3240_retbits[] = {
+ 0x52, 0x84, 0x3d, 0x9e, 0xa8, 0x0e, 0x30, 0x62, 0x2e, 0x52, 0xce, 0xae,
+ 0x59, 0x9a, 0xb0, 0xbc, 0xa6, 0x6a, 0x55, 0x64, 0xae, 0xba, 0x93, 0x0a,
+ 0xd9, 0x8c, 0x6a, 0xc3, 0xe0, 0x74, 0x3d, 0x8e, 0x45, 0x9c, 0xfa, 0x2e,
+ 0x17, 0x0d, 0xc6, 0xec, 0xd2, 0x19, 0x33, 0xf9, 0x0f, 0x79, 0x9b, 0xc1,
+ 0xc8, 0xc6, 0xab, 0x3c, 0x18, 0xce, 0x21, 0x55, 0x55, 0x0e, 0x89, 0x1a,
+ 0x69, 0x08, 0xaa, 0xd7,
+};
+static const struct drbg_kat_pr_true kat3240_t = {
+ 14, kat3240_entropyin, kat3240_nonce, kat3240_persstr,
+ kat3240_entropyinpr1, kat3240_addinpr1, kat3240_entropyinpr2,
+ kat3240_addinpr2, kat3240_retbits
+};
+static const struct drbg_kat kat3240 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3240_t
+};
+
+static const unsigned char kat3241_entropyin[] = {
+ 0x8f, 0x16, 0x48, 0xc3, 0x67, 0xff, 0x75, 0xab, 0x2a, 0x2e, 0xfa, 0xde,
+ 0xb0, 0xb2, 0x2d, 0x3b, 0xf0, 0x93, 0xaf, 0xde, 0x2b, 0x72, 0x3c, 0x25,
+};
+static const unsigned char kat3241_nonce[] = {
+ 0x4a, 0x4e, 0x67, 0x9e, 0x52, 0xc0, 0xf5, 0x64, 0x20, 0x79, 0x93, 0x99,
+ 0xdc, 0x9b, 0xf0, 0x86,
+};
+static const unsigned char kat3241_persstr[] = {0};
+static const unsigned char kat3241_entropyinpr1[] = {
+ 0xdc, 0xb2, 0xcd, 0x21, 0x44, 0x67, 0x0f, 0x46, 0x67, 0xf0, 0x45, 0xd5,
+ 0xe0, 0x4c, 0x1d, 0x1b, 0x66, 0xc6, 0x5b, 0x50, 0x74, 0xe9, 0x76, 0x3d,
+};
+static const unsigned char kat3241_addinpr1[] = {0};
+static const unsigned char kat3241_entropyinpr2[] = {
+ 0x8c, 0x50, 0x53, 0x53, 0xa6, 0x40, 0xd3, 0x23, 0xe5, 0x28, 0x82, 0x72,
+ 0xd0, 0x32, 0x0f, 0x24, 0x5a, 0xa0, 0x06, 0xf9, 0x63, 0xef, 0x8a, 0x48,
+};
+static const unsigned char kat3241_addinpr2[] = {0};
+static const unsigned char kat3241_retbits[] = {
+ 0x97, 0x4d, 0x06, 0x98, 0x47, 0x13, 0x30, 0x5e, 0xf4, 0x96, 0xa0, 0x1a,
+ 0x0a, 0x42, 0x38, 0x3d, 0x3e, 0x22, 0x8a, 0x31, 0xae, 0x75, 0xc4, 0x80,
+ 0x99, 0x4b, 0xaa, 0xb5, 0x8d, 0x14, 0x4a, 0xe3, 0x2f, 0x7b, 0x64, 0x6e,
+ 0x4a, 0xf4, 0x19, 0x89, 0xa2, 0x53, 0x74, 0x5c, 0x3c, 0x52, 0x9d, 0xb7,
+ 0x93, 0xf9, 0x48, 0x51, 0x0c, 0xba, 0xed, 0x04, 0xf7, 0x0f, 0x27, 0x9a,
+ 0x4a, 0x7b, 0x88, 0xa1,
+};
+static const struct drbg_kat_pr_true kat3241_t = {
+ 0, kat3241_entropyin, kat3241_nonce, kat3241_persstr,
+ kat3241_entropyinpr1, kat3241_addinpr1, kat3241_entropyinpr2,
+ kat3241_addinpr2, kat3241_retbits
+};
+static const struct drbg_kat kat3241 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3241_t
+};
+
+static const unsigned char kat3242_entropyin[] = {
+ 0x5a, 0xfe, 0xd2, 0x9a, 0xe5, 0xde, 0xbc, 0xea, 0xfd, 0x2a, 0x65, 0x7b,
+ 0xb4, 0x33, 0x79, 0x6e, 0x84, 0x68, 0x7a, 0xd0, 0x29, 0xa6, 0xdd, 0x62,
+};
+static const unsigned char kat3242_nonce[] = {
+ 0x00, 0xbc, 0x27, 0x77, 0x79, 0x0d, 0x90, 0x6b, 0x4a, 0x54, 0x7c, 0xba,
+ 0x39, 0xc3, 0x7a, 0x5d,
+};
+static const unsigned char kat3242_persstr[] = {0};
+static const unsigned char kat3242_entropyinpr1[] = {
+ 0x5d, 0x3a, 0xe9, 0xf7, 0x8a, 0x1c, 0x2c, 0xdc, 0x15, 0xbc, 0x04, 0x7d,
+ 0x2b, 0x79, 0x9e, 0x56, 0xa8, 0x2a, 0xc5, 0x80, 0x84, 0xc9, 0xb6, 0x3a,
+};
+static const unsigned char kat3242_addinpr1[] = {0};
+static const unsigned char kat3242_entropyinpr2[] = {
+ 0xc8, 0xaf, 0xcd, 0x89, 0xa7, 0xbe, 0xaa, 0xdf, 0x95, 0x8e, 0x8b, 0x5d,
+ 0xe7, 0x11, 0xc6, 0x6b, 0x84, 0x19, 0x17, 0xf7, 0x5f, 0xaf, 0x89, 0xe0,
+};
+static const unsigned char kat3242_addinpr2[] = {0};
+static const unsigned char kat3242_retbits[] = {
+ 0x2e, 0x81, 0xe2, 0x27, 0x0b, 0xfe, 0xac, 0x28, 0xfa, 0xba, 0x5e, 0xfe,
+ 0xd7, 0x21, 0xb2, 0x75, 0xc3, 0x3d, 0x0b, 0x99, 0xf4, 0x5e, 0xe3, 0x18,
+ 0x70, 0x68, 0x51, 0xf8, 0xf4, 0x33, 0x40, 0x3c, 0xfa, 0x5f, 0x44, 0xb2,
+ 0x13, 0x76, 0x44, 0x6f, 0x37, 0xae, 0xd4, 0xc3, 0xa3, 0x17, 0x24, 0x57,
+ 0xb9, 0x68, 0x08, 0x28, 0x5b, 0x42, 0xc7, 0x13, 0x5f, 0xc3, 0xcc, 0xd4,
+ 0xd3, 0x3e, 0xce, 0x77,
+};
+static const struct drbg_kat_pr_true kat3242_t = {
+ 1, kat3242_entropyin, kat3242_nonce, kat3242_persstr,
+ kat3242_entropyinpr1, kat3242_addinpr1, kat3242_entropyinpr2,
+ kat3242_addinpr2, kat3242_retbits
+};
+static const struct drbg_kat kat3242 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3242_t
+};
+
+static const unsigned char kat3243_entropyin[] = {
+ 0x40, 0x84, 0x74, 0xe0, 0x68, 0xc0, 0x1f, 0x06, 0x8a, 0x96, 0xaa, 0x28,
+ 0xa9, 0x7d, 0x42, 0xc4, 0xbf, 0xae, 0xc2, 0x11, 0x9c, 0xb0, 0xf4, 0xbf,
+};
+static const unsigned char kat3243_nonce[] = {
+ 0x82, 0xd9, 0xc6, 0xb9, 0x3f, 0x12, 0x93, 0xf2, 0x4f, 0x51, 0x09, 0x18,
+ 0x70, 0x8e, 0xda, 0x04,
+};
+static const unsigned char kat3243_persstr[] = {0};
+static const unsigned char kat3243_entropyinpr1[] = {
+ 0x95, 0xff, 0x58, 0x00, 0xe4, 0xa1, 0x6b, 0xfe, 0x7d, 0xe2, 0x2f, 0x2b,
+ 0xe9, 0x1e, 0x49, 0x26, 0xd4, 0xd2, 0x4b, 0x78, 0x9c, 0x8c, 0xfa, 0xbd,
+};
+static const unsigned char kat3243_addinpr1[] = {0};
+static const unsigned char kat3243_entropyinpr2[] = {
+ 0x6f, 0x4f, 0x4b, 0xce, 0x55, 0x5b, 0x05, 0xe9, 0x29, 0xb7, 0x89, 0x6d,
+ 0x53, 0x13, 0x1f, 0xee, 0x0d, 0x8d, 0xf9, 0x88, 0x9f, 0x3b, 0x70, 0xe7,
+};
+static const unsigned char kat3243_addinpr2[] = {0};
+static const unsigned char kat3243_retbits[] = {
+ 0xe1, 0xd5, 0x62, 0x26, 0x67, 0x86, 0x6b, 0xb7, 0xad, 0xf1, 0x63, 0x05,
+ 0x03, 0x6c, 0x7b, 0xd8, 0x3c, 0x30, 0x12, 0x9f, 0xa9, 0x45, 0xa0, 0x64,
+ 0x42, 0x65, 0x92, 0xab, 0xa3, 0x0f, 0xbc, 0x0f, 0xd0, 0xa1, 0x1e, 0x13,
+ 0xba, 0x37, 0x2a, 0x72, 0xb6, 0xff, 0x72, 0xd0, 0x14, 0xbc, 0xe5, 0x09,
+ 0xb1, 0xd4, 0x33, 0x8d, 0x79, 0x71, 0x39, 0xba, 0x67, 0x07, 0x4e, 0x10,
+ 0x9d, 0x06, 0xcc, 0x49,
+};
+static const struct drbg_kat_pr_true kat3243_t = {
+ 2, kat3243_entropyin, kat3243_nonce, kat3243_persstr,
+ kat3243_entropyinpr1, kat3243_addinpr1, kat3243_entropyinpr2,
+ kat3243_addinpr2, kat3243_retbits
+};
+static const struct drbg_kat kat3243 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3243_t
+};
+
+static const unsigned char kat3244_entropyin[] = {
+ 0xc6, 0x29, 0xc3, 0x42, 0xec, 0x3d, 0xf6, 0x9e, 0x58, 0xf6, 0x83, 0x15,
+ 0xe4, 0x2c, 0x96, 0x0b, 0x5a, 0x3a, 0xff, 0x74, 0xe9, 0xf1, 0x32, 0xf3,
+};
+static const unsigned char kat3244_nonce[] = {
+ 0xf6, 0x9e, 0x97, 0xbd, 0x53, 0xe0, 0x7a, 0x81, 0xd2, 0xb0, 0x10, 0x9d,
+ 0x7f, 0xce, 0x74, 0x68,
+};
+static const unsigned char kat3244_persstr[] = {0};
+static const unsigned char kat3244_entropyinpr1[] = {
+ 0x43, 0xb6, 0x10, 0x43, 0xcc, 0xf4, 0x2d, 0x4b, 0xb7, 0x13, 0xa8, 0x9e,
+ 0xc5, 0x05, 0xa3, 0x1c, 0x1c, 0xe0, 0x0a, 0xb6, 0xd0, 0x82, 0x0e, 0xb0,
+};
+static const unsigned char kat3244_addinpr1[] = {0};
+static const unsigned char kat3244_entropyinpr2[] = {
+ 0xd7, 0xf5, 0x49, 0xcf, 0xb8, 0x0c, 0xf9, 0xe0, 0x7c, 0xca, 0x6d, 0x21,
+ 0x6a, 0x58, 0xc9, 0x84, 0xfb, 0x46, 0xbf, 0x65, 0xb1, 0xb6, 0x0b, 0xfe,
+};
+static const unsigned char kat3244_addinpr2[] = {0};
+static const unsigned char kat3244_retbits[] = {
+ 0xd5, 0x36, 0xff, 0xf4, 0xc0, 0x91, 0x45, 0x65, 0x5c, 0xdb, 0xbe, 0xa8,
+ 0x8e, 0xca, 0x8b, 0x62, 0xf0, 0xb3, 0xb8, 0x57, 0x67, 0xe8, 0x4e, 0x16,
+ 0x47, 0x56, 0xcb, 0x36, 0xbf, 0x39, 0xb0, 0x02, 0xeb, 0x3c, 0x6e, 0x5d,
+ 0x30, 0xda, 0x1f, 0xb2, 0x4b, 0x10, 0xfe, 0xc2, 0xe0, 0x64, 0x7a, 0x76,
+ 0x88, 0xab, 0x62, 0x47, 0xcc, 0x24, 0x2a, 0x32, 0x41, 0xdf, 0x25, 0x5a,
+ 0x11, 0x62, 0x46, 0xdc,
+};
+static const struct drbg_kat_pr_true kat3244_t = {
+ 3, kat3244_entropyin, kat3244_nonce, kat3244_persstr,
+ kat3244_entropyinpr1, kat3244_addinpr1, kat3244_entropyinpr2,
+ kat3244_addinpr2, kat3244_retbits
+};
+static const struct drbg_kat kat3244 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3244_t
+};
+
+static const unsigned char kat3245_entropyin[] = {
+ 0xd7, 0x17, 0xe4, 0x32, 0x5c, 0x57, 0x51, 0xd1, 0x1f, 0xc6, 0x94, 0xd9,
+ 0x9f, 0xca, 0xde, 0xfe, 0x27, 0xf9, 0x99, 0xca, 0x76, 0x6b, 0x0e, 0x68,
+};
+static const unsigned char kat3245_nonce[] = {
+ 0x6e, 0x1f, 0xa6, 0x84, 0x50, 0x69, 0x52, 0x6b, 0x8d, 0x85, 0x9d, 0x65,
+ 0xb3, 0x0b, 0x65, 0xb9,
+};
+static const unsigned char kat3245_persstr[] = {0};
+static const unsigned char kat3245_entropyinpr1[] = {
+ 0xbe, 0x98, 0x62, 0xdb, 0xc0, 0x8e, 0xf6, 0x8d, 0x31, 0xdb, 0xdc, 0x99,
+ 0x99, 0xf9, 0x28, 0x5a, 0x31, 0xb7, 0x6c, 0x0c, 0x5d, 0x88, 0x00, 0x1f,
+};
+static const unsigned char kat3245_addinpr1[] = {0};
+static const unsigned char kat3245_entropyinpr2[] = {
+ 0x82, 0x04, 0x5d, 0x3d, 0x26, 0x97, 0xe7, 0xed, 0xc8, 0x0c, 0x9f, 0x26,
+ 0x18, 0xb2, 0x60, 0x3e, 0x2f, 0x5b, 0x66, 0x21, 0xc0, 0x4a, 0x1a, 0x2d,
+};
+static const unsigned char kat3245_addinpr2[] = {0};
+static const unsigned char kat3245_retbits[] = {
+ 0xdc, 0x0e, 0x3b, 0xd9, 0x07, 0xe1, 0x89, 0xfc, 0x2a, 0xb2, 0x9a, 0xba,
+ 0x11, 0x29, 0x99, 0xbf, 0xdf, 0xf3, 0x3a, 0x5c, 0x5f, 0xc5, 0x8b, 0xd8,
+ 0xd9, 0xb2, 0x74, 0x5f, 0xa6, 0xc7, 0xd0, 0xe5, 0xf0, 0x7f, 0xd8, 0x74,
+ 0xb5, 0x11, 0x74, 0x62, 0x8b, 0x55, 0x10, 0xa1, 0x58, 0x6f, 0xc0, 0x15,
+ 0x6a, 0x10, 0x4e, 0x29, 0xe9, 0x51, 0x03, 0xda, 0xc6, 0x6e, 0xd1, 0xc4,
+ 0x4d, 0x86, 0x98, 0x6c,
+};
+static const struct drbg_kat_pr_true kat3245_t = {
+ 4, kat3245_entropyin, kat3245_nonce, kat3245_persstr,
+ kat3245_entropyinpr1, kat3245_addinpr1, kat3245_entropyinpr2,
+ kat3245_addinpr2, kat3245_retbits
+};
+static const struct drbg_kat kat3245 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3245_t
+};
+
+static const unsigned char kat3246_entropyin[] = {
+ 0xc2, 0xdd, 0x05, 0x1e, 0xbe, 0x2d, 0xe8, 0x55, 0xc8, 0x21, 0xfb, 0xe9,
+ 0x12, 0x4a, 0xac, 0x3e, 0x01, 0x6c, 0x85, 0x94, 0x77, 0xb4, 0x84, 0xcb,
+};
+static const unsigned char kat3246_nonce[] = {
+ 0xbd, 0x1f, 0xab, 0x03, 0x7d, 0xdd, 0x20, 0x31, 0x21, 0x2f, 0xe3, 0x54,
+ 0x84, 0x5c, 0xa9, 0xf0,
+};
+static const unsigned char kat3246_persstr[] = {0};
+static const unsigned char kat3246_entropyinpr1[] = {
+ 0x31, 0x37, 0x7b, 0x81, 0x83, 0xae, 0x04, 0x86, 0xf0, 0xa6, 0x2a, 0x0c,
+ 0x8c, 0x67, 0x33, 0xe9, 0xfe, 0x56, 0x0e, 0x05, 0xfe, 0xd5, 0x80, 0x5b,
+};
+static const unsigned char kat3246_addinpr1[] = {0};
+static const unsigned char kat3246_entropyinpr2[] = {
+ 0x1d, 0x0e, 0x97, 0x5f, 0x2e, 0xae, 0x84, 0x56, 0x2c, 0x6e, 0x57, 0x4a,
+ 0x51, 0x69, 0xa8, 0x47, 0x2c, 0xb4, 0xae, 0x48, 0xc5, 0x8e, 0x43, 0x6a,
+};
+static const unsigned char kat3246_addinpr2[] = {0};
+static const unsigned char kat3246_retbits[] = {
+ 0x8a, 0x5e, 0xdc, 0x00, 0x34, 0xc1, 0x0d, 0x87, 0x1b, 0xa2, 0xe0, 0xa8,
+ 0x04, 0x3c, 0x51, 0x8c, 0x3a, 0x00, 0x92, 0x62, 0x8b, 0x73, 0x8f, 0xb7,
+ 0x1b, 0x3d, 0x61, 0x48, 0x77, 0xdc, 0x26, 0x40, 0xf9, 0x7f, 0x2d, 0x05,
+ 0x23, 0x4b, 0xfd, 0xb6, 0xa3, 0x8b, 0x51, 0x8b, 0x70, 0x74, 0x45, 0x36,
+ 0x6d, 0x0a, 0xf1, 0x69, 0x8f, 0x28, 0x3f, 0x87, 0xb0, 0x59, 0xfb, 0x10,
+ 0x95, 0x7f, 0x33, 0x61,
+};
+static const struct drbg_kat_pr_true kat3246_t = {
+ 5, kat3246_entropyin, kat3246_nonce, kat3246_persstr,
+ kat3246_entropyinpr1, kat3246_addinpr1, kat3246_entropyinpr2,
+ kat3246_addinpr2, kat3246_retbits
+};
+static const struct drbg_kat kat3246 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3246_t
+};
+
+static const unsigned char kat3247_entropyin[] = {
+ 0xd4, 0x27, 0x1d, 0xdd, 0xf1, 0xf7, 0xcb, 0xbe, 0xd8, 0xf3, 0x5d, 0x03,
+ 0x40, 0xed, 0xb3, 0x37, 0x0b, 0x78, 0x47, 0x37, 0xf8, 0x19, 0x77, 0x1e,
+};
+static const unsigned char kat3247_nonce[] = {
+ 0xe5, 0x76, 0x6f, 0x00, 0xd7, 0xba, 0x49, 0xf2, 0x82, 0xca, 0xa1, 0x83,
+ 0x44, 0x32, 0xc7, 0x22,
+};
+static const unsigned char kat3247_persstr[] = {0};
+static const unsigned char kat3247_entropyinpr1[] = {
+ 0x78, 0xda, 0x59, 0xc9, 0x3b, 0x18, 0x16, 0xa2, 0x13, 0x35, 0x60, 0xc3,
+ 0x0b, 0xd4, 0xff, 0x24, 0x83, 0x70, 0xf1, 0x7c, 0xcb, 0xe5, 0xfd, 0x63,
+};
+static const unsigned char kat3247_addinpr1[] = {0};
+static const unsigned char kat3247_entropyinpr2[] = {
+ 0xf8, 0x4b, 0xf4, 0x21, 0x47, 0xf1, 0x24, 0x1a, 0xd4, 0x41, 0x0c, 0x86,
+ 0x5b, 0x05, 0xc2, 0xf6, 0x62, 0x1f, 0xc7, 0x04, 0x1f, 0x58, 0x56, 0x3f,
+};
+static const unsigned char kat3247_addinpr2[] = {0};
+static const unsigned char kat3247_retbits[] = {
+ 0x24, 0x2e, 0x64, 0xff, 0x2b, 0x44, 0x2f, 0x50, 0x6c, 0x0a, 0xaa, 0x5b,
+ 0x40, 0x1e, 0x97, 0x7a, 0x76, 0xa8, 0x29, 0x86, 0xc9, 0xc6, 0x8b, 0x46,
+ 0xaf, 0xc3, 0x26, 0x68, 0xf5, 0x97, 0xa4, 0x14, 0xcd, 0x55, 0xc3, 0xee,
+ 0x29, 0x45, 0xb1, 0x8a, 0x0e, 0xef, 0x09, 0x2c, 0x1c, 0x08, 0xa7, 0xcf,
+ 0xc9, 0x7c, 0x0a, 0x55, 0xb1, 0xfc, 0x2e, 0xa5, 0xad, 0x1b, 0xd1, 0x40,
+ 0xca, 0x21, 0x7c, 0x50,
+};
+static const struct drbg_kat_pr_true kat3247_t = {
+ 6, kat3247_entropyin, kat3247_nonce, kat3247_persstr,
+ kat3247_entropyinpr1, kat3247_addinpr1, kat3247_entropyinpr2,
+ kat3247_addinpr2, kat3247_retbits
+};
+static const struct drbg_kat kat3247 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3247_t
+};
+
+static const unsigned char kat3248_entropyin[] = {
+ 0x2c, 0x76, 0x76, 0x49, 0xbc, 0x7e, 0xd0, 0xe8, 0xfe, 0xcc, 0x1f, 0xe6,
+ 0x4e, 0x19, 0xa7, 0xf6, 0x22, 0x3f, 0xb9, 0x49, 0x31, 0x48, 0x0e, 0x0c,
+};
+static const unsigned char kat3248_nonce[] = {
+ 0x53, 0xde, 0xbf, 0x7c, 0x47, 0xe2, 0x43, 0xea, 0x64, 0x4d, 0x94, 0xbb,
+ 0xf3, 0xf6, 0x36, 0xa5,
+};
+static const unsigned char kat3248_persstr[] = {0};
+static const unsigned char kat3248_entropyinpr1[] = {
+ 0x19, 0x82, 0x07, 0x52, 0xc2, 0x20, 0x05, 0xa9, 0xd1, 0xf2, 0x90, 0x57,
+ 0x67, 0xce, 0x33, 0xcb, 0x22, 0xa4, 0xcb, 0xb0, 0x2e, 0x46, 0xe6, 0xa2,
+};
+static const unsigned char kat3248_addinpr1[] = {0};
+static const unsigned char kat3248_entropyinpr2[] = {
+ 0x47, 0xd7, 0x6e, 0x61, 0x5f, 0x76, 0x77, 0x25, 0xa6, 0x14, 0x5b, 0xf7,
+ 0xc8, 0x7d, 0x97, 0x9f, 0x11, 0x52, 0x61, 0x1a, 0x99, 0xda, 0x52, 0x67,
+};
+static const unsigned char kat3248_addinpr2[] = {0};
+static const unsigned char kat3248_retbits[] = {
+ 0x41, 0xdf, 0xc9, 0xe6, 0x86, 0xbf, 0x0b, 0x6a, 0x77, 0xb4, 0x62, 0x62,
+ 0x8e, 0xce, 0x65, 0x00, 0xa0, 0xcf, 0xde, 0x23, 0x58, 0x79, 0xf8, 0xfc,
+ 0x5c, 0xdc, 0xf1, 0x40, 0xad, 0x95, 0xfd, 0xb0, 0x2d, 0xd8, 0x4c, 0x34,
+ 0x06, 0x9d, 0xc7, 0xc1, 0x80, 0x93, 0x2e, 0xcf, 0x25, 0x23, 0xfe, 0x17,
+ 0x27, 0x45, 0x41, 0xb6, 0xf0, 0x68, 0x5d, 0x99, 0xe0, 0xcc, 0xb9, 0x72,
+ 0x4e, 0xfc, 0xd4, 0xba,
+};
+static const struct drbg_kat_pr_true kat3248_t = {
+ 7, kat3248_entropyin, kat3248_nonce, kat3248_persstr,
+ kat3248_entropyinpr1, kat3248_addinpr1, kat3248_entropyinpr2,
+ kat3248_addinpr2, kat3248_retbits
+};
+static const struct drbg_kat kat3248 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3248_t
+};
+
+static const unsigned char kat3249_entropyin[] = {
+ 0x20, 0x14, 0x56, 0x8d, 0x17, 0xb6, 0x2a, 0xfb, 0xae, 0x1f, 0x1e, 0xb0,
+ 0x07, 0x00, 0x01, 0x74, 0xc5, 0x3c, 0xc4, 0xce, 0x2a, 0x6e, 0x26, 0x50,
+};
+static const unsigned char kat3249_nonce[] = {
+ 0xcf, 0x75, 0x03, 0x9d, 0x2e, 0x1d, 0xb9, 0x74, 0x16, 0x1b, 0x8f, 0x08,
+ 0x10, 0x81, 0xa6, 0xda,
+};
+static const unsigned char kat3249_persstr[] = {0};
+static const unsigned char kat3249_entropyinpr1[] = {
+ 0x34, 0xd3, 0xa9, 0xc6, 0x03, 0x8d, 0xd0, 0x99, 0xe9, 0x14, 0x26, 0x04,
+ 0x53, 0x33, 0x55, 0x3a, 0x5e, 0x0a, 0xc8, 0x95, 0x3d, 0x84, 0xa2, 0x5f,
+};
+static const unsigned char kat3249_addinpr1[] = {0};
+static const unsigned char kat3249_entropyinpr2[] = {
+ 0x95, 0x66, 0x77, 0x1e, 0x80, 0x09, 0x85, 0x6f, 0xfc, 0x1a, 0x73, 0xde,
+ 0xd0, 0x25, 0x2d, 0x69, 0x6d, 0xff, 0x7b, 0xf9, 0x36, 0xf7, 0xfb, 0xef,
+};
+static const unsigned char kat3249_addinpr2[] = {0};
+static const unsigned char kat3249_retbits[] = {
+ 0x94, 0xc1, 0x8c, 0xa0, 0x32, 0x1e, 0xa0, 0xa4, 0xc3, 0xe8, 0x9d, 0xb8,
+ 0xc3, 0x5d, 0x54, 0x6c, 0x3f, 0xf4, 0xdd, 0xe0, 0x8c, 0xe0, 0x8e, 0xea,
+ 0x74, 0xe5, 0x99, 0x47, 0xad, 0xf2, 0xbb, 0x26, 0x81, 0x84, 0x38, 0xf1,
+ 0x5c, 0x7e, 0x0a, 0x83, 0xa7, 0x0c, 0x07, 0x33, 0xd9, 0xa9, 0xd9, 0xea,
+ 0xab, 0x5d, 0x4f, 0x32, 0x0a, 0xf4, 0xbd, 0xc1, 0xb5, 0xa3, 0x6d, 0x22,
+ 0xad, 0xfb, 0x1d, 0x30,
+};
+static const struct drbg_kat_pr_true kat3249_t = {
+ 8, kat3249_entropyin, kat3249_nonce, kat3249_persstr,
+ kat3249_entropyinpr1, kat3249_addinpr1, kat3249_entropyinpr2,
+ kat3249_addinpr2, kat3249_retbits
+};
+static const struct drbg_kat kat3249 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3249_t
+};
+
+static const unsigned char kat3250_entropyin[] = {
+ 0x94, 0x59, 0xf1, 0x5b, 0xd9, 0xd2, 0x01, 0x3e, 0x5c, 0x48, 0x4a, 0xcc,
+ 0x95, 0x40, 0xca, 0x53, 0x46, 0x27, 0x7c, 0xe8, 0x97, 0xaa, 0xb7, 0xe5,
+};
+static const unsigned char kat3250_nonce[] = {
+ 0xa2, 0x9d, 0xb2, 0xb5, 0xac, 0x47, 0x69, 0xf0, 0x1d, 0x65, 0x63, 0x15,
+ 0x13, 0xf4, 0xde, 0x2d,
+};
+static const unsigned char kat3250_persstr[] = {0};
+static const unsigned char kat3250_entropyinpr1[] = {
+ 0x3e, 0x05, 0x42, 0x24, 0xa8, 0xbd, 0x35, 0xd2, 0xfe, 0x61, 0xd2, 0xdb,
+ 0x86, 0x3e, 0x78, 0x56, 0xde, 0xb6, 0x7c, 0x6a, 0xf6, 0xb7, 0x59, 0x1a,
+};
+static const unsigned char kat3250_addinpr1[] = {0};
+static const unsigned char kat3250_entropyinpr2[] = {
+ 0x1f, 0x53, 0xc0, 0x5d, 0x2c, 0x1e, 0xfa, 0xf5, 0x0f, 0x97, 0xe3, 0x76,
+ 0x72, 0x0e, 0xc4, 0xf8, 0x36, 0x25, 0xcd, 0x8b, 0x4d, 0x97, 0xec, 0xc4,
+};
+static const unsigned char kat3250_addinpr2[] = {0};
+static const unsigned char kat3250_retbits[] = {
+ 0xb0, 0x8a, 0xbb, 0xa4, 0x07, 0xd0, 0x52, 0x04, 0xe2, 0x1f, 0xec, 0x32,
+ 0xe8, 0x49, 0x60, 0xdd, 0x0d, 0xb0, 0xbc, 0xd4, 0x32, 0x74, 0x05, 0xd2,
+ 0xb2, 0xb8, 0xca, 0x3f, 0xcd, 0x34, 0x5d, 0xee, 0xfa, 0x61, 0x26, 0x0d,
+ 0x9c, 0x37, 0xa7, 0x63, 0x7d, 0x14, 0x57, 0x78, 0xc0, 0x47, 0x69, 0x2b,
+ 0xc1, 0x73, 0x6c, 0xf1, 0x33, 0x4c, 0x8d, 0x1a, 0x67, 0x39, 0x2f, 0xd0,
+ 0xcf, 0xb8, 0x68, 0x16,
+};
+static const struct drbg_kat_pr_true kat3250_t = {
+ 9, kat3250_entropyin, kat3250_nonce, kat3250_persstr,
+ kat3250_entropyinpr1, kat3250_addinpr1, kat3250_entropyinpr2,
+ kat3250_addinpr2, kat3250_retbits
+};
+static const struct drbg_kat kat3250 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3250_t
+};
+
+static const unsigned char kat3251_entropyin[] = {
+ 0xf1, 0x48, 0x75, 0x07, 0x86, 0x60, 0xb1, 0x37, 0x31, 0xe8, 0xad, 0x31,
+ 0x42, 0x02, 0x17, 0x76, 0x2c, 0xe7, 0xae, 0x70, 0x9b, 0xf0, 0x7b, 0x86,
+};
+static const unsigned char kat3251_nonce[] = {
+ 0x8c, 0xde, 0x82, 0x2c, 0xac, 0xa5, 0xa8, 0x0b, 0xa2, 0x19, 0xdb, 0xf6,
+ 0x71, 0xec, 0xed, 0x59,
+};
+static const unsigned char kat3251_persstr[] = {0};
+static const unsigned char kat3251_entropyinpr1[] = {
+ 0x63, 0x19, 0x9a, 0xd9, 0x15, 0x9d, 0x21, 0x38, 0x54, 0xe5, 0xfc, 0xa9,
+ 0x70, 0xd8, 0x42, 0x1c, 0xa1, 0x24, 0x08, 0x35, 0xec, 0x63, 0x2c, 0x5d,
+};
+static const unsigned char kat3251_addinpr1[] = {0};
+static const unsigned char kat3251_entropyinpr2[] = {
+ 0x11, 0x0a, 0x3a, 0x8a, 0x22, 0xec, 0x74, 0xd0, 0xf3, 0xb9, 0xad, 0xfb,
+ 0xa9, 0xa8, 0xad, 0xe6, 0xbb, 0x80, 0x0f, 0x39, 0xfe, 0x61, 0xa2, 0x2d,
+};
+static const unsigned char kat3251_addinpr2[] = {0};
+static const unsigned char kat3251_retbits[] = {
+ 0xc5, 0xc8, 0x03, 0x9c, 0x83, 0xd2, 0x10, 0x08, 0x4e, 0x5f, 0x20, 0xc7,
+ 0x8e, 0xc0, 0xf9, 0x4a, 0xdb, 0x5b, 0xb4, 0x81, 0x26, 0x13, 0xa8, 0xd8,
+ 0xc2, 0x03, 0x4d, 0xc1, 0x88, 0x8d, 0x94, 0xd1, 0x54, 0x7f, 0x9c, 0x88,
+ 0x7f, 0xaa, 0x7f, 0x56, 0xca, 0x2c, 0x2d, 0x5b, 0x95, 0x68, 0x41, 0x0a,
+ 0xf5, 0xd0, 0x12, 0xcf, 0x1d, 0xaa, 0x39, 0x90, 0x8e, 0x18, 0x82, 0x32,
+ 0xc5, 0xd6, 0xa9, 0x66,
+};
+static const struct drbg_kat_pr_true kat3251_t = {
+ 10, kat3251_entropyin, kat3251_nonce, kat3251_persstr,
+ kat3251_entropyinpr1, kat3251_addinpr1, kat3251_entropyinpr2,
+ kat3251_addinpr2, kat3251_retbits
+};
+static const struct drbg_kat kat3251 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3251_t
+};
+
+static const unsigned char kat3252_entropyin[] = {
+ 0xd1, 0x24, 0x38, 0x93, 0x2b, 0x13, 0x9d, 0xb2, 0x26, 0x7c, 0xc3, 0x4c,
+ 0x9f, 0x5e, 0xc5, 0xfb, 0xfa, 0xde, 0x88, 0x93, 0x66, 0x29, 0xa7, 0xb3,
+};
+static const unsigned char kat3252_nonce[] = {
+ 0x19, 0x5c, 0x6e, 0x32, 0x67, 0x71, 0x42, 0xd1, 0x1d, 0x23, 0x75, 0x5f,
+ 0x01, 0x15, 0xd0, 0x48,
+};
+static const unsigned char kat3252_persstr[] = {0};
+static const unsigned char kat3252_entropyinpr1[] = {
+ 0x49, 0x95, 0x38, 0xa8, 0x23, 0x28, 0xc9, 0xe8, 0xcf, 0xc1, 0x8e, 0x0a,
+ 0x38, 0x32, 0x1b, 0xed, 0x31, 0x34, 0xdd, 0x01, 0x81, 0x5f, 0xc6, 0x05,
+};
+static const unsigned char kat3252_addinpr1[] = {0};
+static const unsigned char kat3252_entropyinpr2[] = {
+ 0xa2, 0x7c, 0xb4, 0x62, 0xe6, 0x73, 0x77, 0x27, 0x8c, 0xd7, 0x1b, 0x33,
+ 0x4d, 0xd6, 0x21, 0x82, 0xb9, 0x73, 0xb2, 0xab, 0x54, 0xe9, 0x42, 0x5d,
+};
+static const unsigned char kat3252_addinpr2[] = {0};
+static const unsigned char kat3252_retbits[] = {
+ 0x6e, 0x58, 0x3e, 0x08, 0x55, 0xe8, 0x5d, 0xf3, 0x2a, 0xa9, 0x64, 0xb6,
+ 0x63, 0xda, 0x0e, 0x6f, 0xac, 0x98, 0x9f, 0xfe, 0x62, 0x5f, 0x19, 0xda,
+ 0x25, 0x33, 0x01, 0xb2, 0x20, 0x86, 0x3e, 0xb3, 0xa8, 0xad, 0x56, 0xfb,
+ 0xf2, 0x83, 0x4f, 0xe8, 0xec, 0x2c, 0x74, 0x6a, 0xc2, 0x36, 0x3f, 0x1c,
+ 0x70, 0x5e, 0x3e, 0xfb, 0x9b, 0x1a, 0x17, 0x59, 0x6c, 0xf6, 0xd6, 0xa9,
+ 0x07, 0xad, 0x8e, 0x55,
+};
+static const struct drbg_kat_pr_true kat3252_t = {
+ 11, kat3252_entropyin, kat3252_nonce, kat3252_persstr,
+ kat3252_entropyinpr1, kat3252_addinpr1, kat3252_entropyinpr2,
+ kat3252_addinpr2, kat3252_retbits
+};
+static const struct drbg_kat kat3252 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3252_t
+};
+
+static const unsigned char kat3253_entropyin[] = {
+ 0x6a, 0x65, 0x0d, 0xb4, 0x71, 0x54, 0x5b, 0x7a, 0xe8, 0x0c, 0xff, 0xaf,
+ 0xd8, 0x9d, 0x2e, 0x16, 0x24, 0x76, 0x37, 0xb2, 0xb3, 0xf6, 0xab, 0x95,
+};
+static const unsigned char kat3253_nonce[] = {
+ 0xaf, 0xb6, 0xb4, 0x5f, 0xc0, 0xce, 0x3c, 0xcb, 0x4b, 0xb7, 0x9f, 0xc5,
+ 0x10, 0xfd, 0x3b, 0x61,
+};
+static const unsigned char kat3253_persstr[] = {0};
+static const unsigned char kat3253_entropyinpr1[] = {
+ 0x4e, 0xe0, 0x3c, 0x38, 0xb1, 0xe9, 0x17, 0x69, 0xde, 0xd3, 0xcf, 0x02,
+ 0x87, 0x54, 0x20, 0xbd, 0xc3, 0x50, 0x87, 0x02, 0xac, 0x38, 0x67, 0xaa,
+};
+static const unsigned char kat3253_addinpr1[] = {0};
+static const unsigned char kat3253_entropyinpr2[] = {
+ 0x80, 0xb4, 0x28, 0x4f, 0xcc, 0xb6, 0x0a, 0x3b, 0x79, 0x6c, 0x00, 0xee,
+ 0x6b, 0x74, 0x1a, 0x23, 0xd2, 0x26, 0xf6, 0x85, 0xec, 0xce, 0x8d, 0xb0,
+};
+static const unsigned char kat3253_addinpr2[] = {0};
+static const unsigned char kat3253_retbits[] = {
+ 0xca, 0x4e, 0x56, 0x7a, 0xf7, 0x87, 0xa1, 0xcd, 0x40, 0x1d, 0xb1, 0xa8,
+ 0xe8, 0x29, 0xe2, 0x02, 0x1d, 0x49, 0xce, 0xa4, 0x91, 0xce, 0xe3, 0x66,
+ 0xfa, 0x28, 0x28, 0xa1, 0x5d, 0x00, 0x2c, 0x42, 0x81, 0xe4, 0x05, 0x04,
+ 0x25, 0x3a, 0x63, 0x57, 0xd4, 0x25, 0x22, 0x74, 0xeb, 0x5a, 0x52, 0x0b,
+ 0xa8, 0x33, 0x01, 0xec, 0x9f, 0x0b, 0x86, 0xd3, 0x3c, 0x14, 0x95, 0xff,
+ 0xa7, 0xa5, 0xdd, 0x02,
+};
+static const struct drbg_kat_pr_true kat3253_t = {
+ 12, kat3253_entropyin, kat3253_nonce, kat3253_persstr,
+ kat3253_entropyinpr1, kat3253_addinpr1, kat3253_entropyinpr2,
+ kat3253_addinpr2, kat3253_retbits
+};
+static const struct drbg_kat kat3253 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3253_t
+};
+
+static const unsigned char kat3254_entropyin[] = {
+ 0x8e, 0xce, 0xfd, 0xb6, 0xc3, 0x77, 0x49, 0x05, 0x73, 0x21, 0x2a, 0xf8,
+ 0x28, 0x8f, 0x8b, 0x48, 0x31, 0xed, 0xd5, 0xd1, 0x23, 0x97, 0xf2, 0x0b,
+};
+static const unsigned char kat3254_nonce[] = {
+ 0x40, 0x58, 0x5b, 0x6f, 0xa6, 0x5d, 0x92, 0x9f, 0x82, 0x99, 0xb3, 0x64,
+ 0x18, 0x85, 0xb4, 0x5e,
+};
+static const unsigned char kat3254_persstr[] = {0};
+static const unsigned char kat3254_entropyinpr1[] = {
+ 0x2e, 0xbe, 0x72, 0x83, 0xb6, 0x5c, 0x2b, 0xb3, 0xf5, 0xd4, 0x3d, 0x85,
+ 0x15, 0x7a, 0xc1, 0xcd, 0x51, 0x5c, 0x09, 0x51, 0x4a, 0xe7, 0x65, 0x4c,
+};
+static const unsigned char kat3254_addinpr1[] = {0};
+static const unsigned char kat3254_entropyinpr2[] = {
+ 0xd8, 0x3d, 0x72, 0xf8, 0x82, 0x46, 0xee, 0x47, 0xef, 0x21, 0x25, 0x71,
+ 0x01, 0xbf, 0xbb, 0xc6, 0xea, 0xc4, 0xd1, 0xdd, 0xfc, 0x11, 0x72, 0x0c,
+};
+static const unsigned char kat3254_addinpr2[] = {0};
+static const unsigned char kat3254_retbits[] = {
+ 0x44, 0xea, 0xea, 0x42, 0x85, 0xf2, 0x23, 0x50, 0xed, 0x93, 0x16, 0xd5,
+ 0x98, 0x8c, 0x46, 0x63, 0xbb, 0x10, 0xe1, 0x19, 0xd6, 0xc1, 0xb6, 0x34,
+ 0xe0, 0xae, 0x2c, 0x8b, 0xd5, 0xf7, 0x61, 0x93, 0x68, 0x1c, 0xc4, 0xb9,
+ 0x70, 0xc1, 0x85, 0x6d, 0x8d, 0xcf, 0x05, 0xdc, 0x9c, 0xce, 0x10, 0xac,
+ 0x02, 0x37, 0x5c, 0x69, 0x15, 0xa2, 0x4e, 0x18, 0xa6, 0xe5, 0x41, 0x87,
+ 0x29, 0x45, 0x6a, 0x6b,
+};
+static const struct drbg_kat_pr_true kat3254_t = {
+ 13, kat3254_entropyin, kat3254_nonce, kat3254_persstr,
+ kat3254_entropyinpr1, kat3254_addinpr1, kat3254_entropyinpr2,
+ kat3254_addinpr2, kat3254_retbits
+};
+static const struct drbg_kat kat3254 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3254_t
+};
+
+static const unsigned char kat3255_entropyin[] = {
+ 0x2e, 0x2d, 0x70, 0xb4, 0x76, 0xb5, 0xfb, 0x6a, 0x31, 0x38, 0x6d, 0xe5,
+ 0x4b, 0xc8, 0x56, 0x0b, 0xdb, 0xeb, 0x71, 0xc3, 0xa6, 0x65, 0xe7, 0xec,
+};
+static const unsigned char kat3255_nonce[] = {
+ 0xec, 0x20, 0x77, 0x7f, 0xc2, 0x42, 0x3f, 0xc4, 0x8c, 0x5d, 0x42, 0xcb,
+ 0xa3, 0x16, 0x15, 0x9e,
+};
+static const unsigned char kat3255_persstr[] = {0};
+static const unsigned char kat3255_entropyinpr1[] = {
+ 0x6c, 0x93, 0xa1, 0xa3, 0x67, 0x21, 0x82, 0x2e, 0x01, 0x9e, 0x23, 0x11,
+ 0x34, 0x67, 0x2b, 0xcd, 0xcc, 0xaf, 0x8d, 0x5d, 0x48, 0x7e, 0xda, 0x2f,
+};
+static const unsigned char kat3255_addinpr1[] = {0};
+static const unsigned char kat3255_entropyinpr2[] = {
+ 0x2e, 0xa8, 0xa8, 0x2d, 0x9d, 0x02, 0x3c, 0xc9, 0x66, 0x36, 0x8e, 0xa6,
+ 0x49, 0x9e, 0x1b, 0x1b, 0xee, 0xe4, 0x33, 0x3c, 0x13, 0xa0, 0x96, 0xdd,
+};
+static const unsigned char kat3255_addinpr2[] = {0};
+static const unsigned char kat3255_retbits[] = {
+ 0x3f, 0x79, 0x16, 0x40, 0xa2, 0x11, 0x75, 0x36, 0x99, 0x35, 0x35, 0x8e,
+ 0xc7, 0x78, 0x03, 0x2c, 0xaf, 0xec, 0x59, 0x19, 0x9b, 0x52, 0x9c, 0x97,
+ 0xba, 0x62, 0x34, 0xf4, 0x33, 0x09, 0x8d, 0xcc, 0x32, 0xfa, 0x9f, 0x26,
+ 0xb2, 0x36, 0x53, 0x36, 0x91, 0x45, 0x7c, 0x2a, 0x50, 0xc1, 0xc1, 0x21,
+ 0xc9, 0xbe, 0x3f, 0xe6, 0x78, 0xca, 0x77, 0xac, 0xee, 0xfa, 0xdb, 0x86,
+ 0x30, 0x70, 0x72, 0x80,
+};
+static const struct drbg_kat_pr_true kat3255_t = {
+ 14, kat3255_entropyin, kat3255_nonce, kat3255_persstr,
+ kat3255_entropyinpr1, kat3255_addinpr1, kat3255_entropyinpr2,
+ kat3255_addinpr2, kat3255_retbits
+};
+static const struct drbg_kat kat3255 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3255_t
+};
+
+static const unsigned char kat3256_entropyin[] = {
+ 0x19, 0x99, 0xd2, 0x99, 0xc4, 0x76, 0x4c, 0x04, 0x84, 0xa2, 0x85, 0xb8,
+ 0xb9, 0x82, 0xab, 0x11, 0xd0, 0x44, 0x10, 0x3b, 0xc5, 0x7e, 0x50, 0x26,
+};
+static const unsigned char kat3256_nonce[] = {
+ 0x40, 0xec, 0xc1, 0xe9, 0x78, 0xb3, 0x0a, 0x65, 0x84, 0x66, 0x7e, 0x83,
+ 0xf5, 0x3c, 0xa6, 0xb5,
+};
+static const unsigned char kat3256_persstr[] = {0};
+static const unsigned char kat3256_entropyinpr1[] = {
+ 0x4b, 0x17, 0x5b, 0x4f, 0x53, 0x98, 0x9d, 0x48, 0x1e, 0x78, 0x61, 0x2f,
+ 0x0e, 0x17, 0xd2, 0x99, 0xa1, 0x95, 0x32, 0x0e, 0xa7, 0xe3, 0xa4, 0x65,
+};
+static const unsigned char kat3256_addinpr1[] = {
+ 0xd5, 0xfd, 0x9f, 0xca, 0x6a, 0x17, 0x59, 0x22, 0x63, 0x80, 0x8d, 0xe3,
+ 0x64, 0xab, 0x61, 0xe4, 0xe5, 0x52, 0x16, 0xb7, 0xf0, 0x12, 0xb5, 0x62,
+ 0x94, 0xf1, 0x20, 0x5f, 0xb3, 0x00, 0x5e, 0x66,
+};
+static const unsigned char kat3256_entropyinpr2[] = {
+ 0x1b, 0x53, 0xca, 0xfa, 0x3d, 0x23, 0x8e, 0xde, 0xc7, 0xf3, 0x99, 0x42,
+ 0x61, 0xf4, 0x45, 0x05, 0x02, 0x3b, 0x72, 0xff, 0xe1, 0x4e, 0x94, 0xb4,
+};
+static const unsigned char kat3256_addinpr2[] = {
+ 0x7c, 0xb6, 0x52, 0x74, 0xcc, 0xa9, 0xa8, 0x4f, 0xf4, 0x9c, 0x31, 0xa4,
+ 0xe2, 0xc6, 0x56, 0xfa, 0xfe, 0x25, 0x43, 0x61, 0x98, 0xc7, 0xfb, 0xab,
+ 0xfa, 0x1f, 0xc2, 0xc1, 0x66, 0x8a, 0x80, 0x91,
+};
+static const unsigned char kat3256_retbits[] = {
+ 0xbe, 0xdb, 0xc0, 0xd6, 0x7f, 0xea, 0xdd, 0x19, 0x72, 0x79, 0x40, 0x5b,
+ 0x5a, 0x59, 0xe7, 0xd3, 0x50, 0xe3, 0xb7, 0xe4, 0xfd, 0x4e, 0x17, 0xfe,
+ 0xf0, 0x87, 0x18, 0x6f, 0x33, 0xba, 0xce, 0xcc, 0x7c, 0xbb, 0x48, 0x86,
+ 0x95, 0x20, 0xae, 0x90, 0x6c, 0xc4, 0xa5, 0x5b, 0x44, 0x4a, 0x93, 0x80,
+ 0xd3, 0xf0, 0x69, 0x52, 0xd2, 0x76, 0x90, 0x8f, 0x85, 0x65, 0x22, 0x84,
+ 0xa1, 0xde, 0x50, 0xc1,
+};
+static const struct drbg_kat_pr_true kat3256_t = {
+ 0, kat3256_entropyin, kat3256_nonce, kat3256_persstr,
+ kat3256_entropyinpr1, kat3256_addinpr1, kat3256_entropyinpr2,
+ kat3256_addinpr2, kat3256_retbits
+};
+static const struct drbg_kat kat3256 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3256_t
+};
+
+static const unsigned char kat3257_entropyin[] = {
+ 0xe6, 0x6a, 0x54, 0xa9, 0x45, 0x19, 0x4d, 0x6b, 0xd9, 0x10, 0x3e, 0xe3,
+ 0x95, 0xda, 0x4c, 0x89, 0x80, 0x85, 0x4b, 0xab, 0xb5, 0xbc, 0x7a, 0xb5,
+};
+static const unsigned char kat3257_nonce[] = {
+ 0x27, 0xa5, 0xbb, 0x1f, 0xad, 0xe9, 0x01, 0x35, 0x34, 0x38, 0x0c, 0xce,
+ 0x80, 0x1b, 0xad, 0x72,
+};
+static const unsigned char kat3257_persstr[] = {0};
+static const unsigned char kat3257_entropyinpr1[] = {
+ 0x75, 0x15, 0x14, 0xbd, 0x13, 0xb9, 0xcc, 0x50, 0xe9, 0x8a, 0x14, 0xc3,
+ 0x1f, 0x79, 0x60, 0x6c, 0x42, 0x91, 0x92, 0x46, 0xac, 0x93, 0x88, 0x31,
+};
+static const unsigned char kat3257_addinpr1[] = {
+ 0x2f, 0xfe, 0x02, 0x2e, 0x27, 0x9f, 0x0d, 0x8f, 0x36, 0x28, 0x5f, 0x6b,
+ 0x74, 0x01, 0x11, 0xed, 0xd4, 0xd7, 0x38, 0x84, 0xd0, 0x64, 0xa9, 0xd9,
+ 0xa1, 0x61, 0x61, 0x8b, 0x3f, 0xc9, 0x82, 0x52,
+};
+static const unsigned char kat3257_entropyinpr2[] = {
+ 0x78, 0xa0, 0xf0, 0x87, 0x6a, 0xfb, 0x68, 0x48, 0xc3, 0xd6, 0x82, 0xce,
+ 0x7b, 0x5c, 0x28, 0x23, 0x57, 0xcf, 0x4b, 0x6d, 0x3d, 0x9d, 0xb5, 0x35,
+};
+static const unsigned char kat3257_addinpr2[] = {
+ 0x85, 0x0b, 0x8b, 0x39, 0x9c, 0x82, 0x10, 0xf4, 0x15, 0xf4, 0x12, 0x9c,
+ 0x03, 0x4e, 0xfe, 0x58, 0x67, 0x5c, 0x74, 0x1b, 0x75, 0xa0, 0xb1, 0xa2,
+ 0x25, 0xb2, 0x53, 0xc1, 0xde, 0xb4, 0xdb, 0xf6,
+};
+static const unsigned char kat3257_retbits[] = {
+ 0xd0, 0xa9, 0x2f, 0x3a, 0xc0, 0x9d, 0xff, 0x71, 0xe4, 0xda, 0x1f, 0x19,
+ 0xb2, 0x68, 0xfd, 0x73, 0x2e, 0xf4, 0x57, 0xc9, 0xc9, 0xac, 0x92, 0x18,
+ 0xfe, 0xd2, 0x8c, 0x3a, 0xd5, 0x76, 0x0a, 0x0e, 0x8b, 0xf6, 0xf1, 0x92,
+ 0x7b, 0x7c, 0xc2, 0xcc, 0x77, 0x65, 0xbe, 0x7a, 0x28, 0xe2, 0x25, 0x2d,
+ 0x3d, 0xa8, 0x0f, 0x7a, 0xdb, 0x67, 0x19, 0xf8, 0xb8, 0x5e, 0xea, 0x9c,
+ 0x85, 0xc8, 0xa9, 0x22,
+};
+static const struct drbg_kat_pr_true kat3257_t = {
+ 1, kat3257_entropyin, kat3257_nonce, kat3257_persstr,
+ kat3257_entropyinpr1, kat3257_addinpr1, kat3257_entropyinpr2,
+ kat3257_addinpr2, kat3257_retbits
+};
+static const struct drbg_kat kat3257 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3257_t
+};
+
+static const unsigned char kat3258_entropyin[] = {
+ 0x77, 0x9c, 0x54, 0x97, 0xb3, 0xe6, 0x49, 0xef, 0x88, 0x55, 0x9d, 0xfa,
+ 0x13, 0x68, 0x88, 0x3b, 0xcd, 0xa7, 0x54, 0xab, 0x70, 0x6f, 0x9c, 0x5a,
+};
+static const unsigned char kat3258_nonce[] = {
+ 0x0b, 0xf9, 0xff, 0x2d, 0x3d, 0xb2, 0x10, 0xf4, 0x2f, 0x77, 0x00, 0x9f,
+ 0xf8, 0xcf, 0x14, 0x85,
+};
+static const unsigned char kat3258_persstr[] = {0};
+static const unsigned char kat3258_entropyinpr1[] = {
+ 0x32, 0x78, 0x7a, 0xf0, 0x13, 0x83, 0x19, 0xd1, 0xaa, 0x65, 0xcf, 0xc8,
+ 0x40, 0xe2, 0x32, 0xbd, 0x62, 0x08, 0xab, 0x65, 0x1f, 0x47, 0xec, 0x31,
+};
+static const unsigned char kat3258_addinpr1[] = {
+ 0x01, 0x88, 0x5f, 0x26, 0x52, 0xb0, 0x10, 0xe2, 0xf2, 0xa8, 0xc3, 0x9e,
+ 0x7f, 0x13, 0xdf, 0x99, 0xef, 0x5a, 0x7d, 0xd1, 0xa8, 0x13, 0x84, 0x8c,
+ 0x41, 0x50, 0x9b, 0xc7, 0x88, 0x5a, 0xf4, 0x86,
+};
+static const unsigned char kat3258_entropyinpr2[] = {
+ 0xa8, 0x8c, 0x2c, 0xa8, 0x11, 0x5f, 0xf5, 0x02, 0xb1, 0x9c, 0x63, 0x62,
+ 0x91, 0xa9, 0x87, 0x8d, 0xd9, 0x98, 0x5b, 0x71, 0xd7, 0x81, 0x2f, 0x1a,
+};
+static const unsigned char kat3258_addinpr2[] = {
+ 0x22, 0x88, 0x98, 0xdf, 0x82, 0x5b, 0xcb, 0x01, 0xd2, 0x2f, 0x5c, 0x64,
+ 0x26, 0xb0, 0x11, 0xc3, 0x87, 0x2e, 0xc0, 0xee, 0xd3, 0x28, 0xb5, 0x0f,
+ 0x90, 0xae, 0x2b, 0xc5, 0xad, 0x20, 0x50, 0x5d,
+};
+static const unsigned char kat3258_retbits[] = {
+ 0x70, 0x85, 0xe1, 0xed, 0x53, 0x2f, 0x19, 0xaa, 0x76, 0x04, 0x55, 0x56,
+ 0x68, 0x16, 0x3a, 0x25, 0x3c, 0x08, 0x14, 0xb2, 0x9e, 0x6f, 0x69, 0xa1,
+ 0x01, 0xf1, 0x7f, 0xad, 0x1a, 0x75, 0x35, 0x9a, 0x5d, 0x0b, 0x0f, 0x1e,
+ 0xa8, 0x4a, 0xca, 0xb6, 0xa2, 0x70, 0xba, 0xde, 0x2a, 0x20, 0x55, 0x30,
+ 0x55, 0x09, 0xac, 0x9f, 0xcd, 0xf5, 0xa7, 0x55, 0x11, 0x8e, 0xce, 0xb6,
+ 0xc5, 0x2f, 0x3c, 0x38,
+};
+static const struct drbg_kat_pr_true kat3258_t = {
+ 2, kat3258_entropyin, kat3258_nonce, kat3258_persstr,
+ kat3258_entropyinpr1, kat3258_addinpr1, kat3258_entropyinpr2,
+ kat3258_addinpr2, kat3258_retbits
+};
+static const struct drbg_kat kat3258 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3258_t
+};
+
+static const unsigned char kat3259_entropyin[] = {
+ 0x18, 0x53, 0xee, 0x9c, 0x25, 0xd9, 0x5c, 0x87, 0x64, 0x8d, 0xca, 0x44,
+ 0x0e, 0xd1, 0x4f, 0x33, 0x12, 0x95, 0x93, 0x89, 0x91, 0x0e, 0x7f, 0x9b,
+};
+static const unsigned char kat3259_nonce[] = {
+ 0x4e, 0xb3, 0xb4, 0xc4, 0xf5, 0xb3, 0x70, 0x68, 0x59, 0x32, 0x31, 0x66,
+ 0xb1, 0x78, 0x9f, 0xa6,
+};
+static const unsigned char kat3259_persstr[] = {0};
+static const unsigned char kat3259_entropyinpr1[] = {
+ 0x3c, 0x34, 0x34, 0x8e, 0x1b, 0x32, 0xf3, 0x91, 0x05, 0x86, 0xdd, 0xaf,
+ 0x23, 0xc0, 0x0f, 0x46, 0x34, 0x1e, 0xcc, 0x4b, 0x9b, 0x87, 0x75, 0x05,
+};
+static const unsigned char kat3259_addinpr1[] = {
+ 0xd0, 0x09, 0x0c, 0x32, 0x0c, 0xf8, 0xb5, 0xc2, 0x1f, 0xa9, 0xdf, 0x3f,
+ 0x19, 0xa1, 0xe3, 0x53, 0x77, 0x32, 0xde, 0xb6, 0x89, 0x9a, 0x77, 0x0e,
+ 0x43, 0x84, 0xd1, 0xda, 0xb0, 0x20, 0xb2, 0xf0,
+};
+static const unsigned char kat3259_entropyinpr2[] = {
+ 0x05, 0x0d, 0x41, 0x96, 0xc5, 0xc5, 0x81, 0x10, 0x17, 0x45, 0x79, 0x6c,
+ 0x76, 0x11, 0xc0, 0x9a, 0x72, 0x32, 0x2f, 0x1e, 0xf4, 0x5d, 0x04, 0xb2,
+};
+static const unsigned char kat3259_addinpr2[] = {
+ 0xd2, 0x3d, 0xf8, 0xdc, 0x0a, 0x1e, 0x00, 0x89, 0xb0, 0x5b, 0x24, 0x24,
+ 0x75, 0xfd, 0xe9, 0xe5, 0x78, 0xd4, 0x1f, 0x47, 0xd2, 0xd3, 0x2b, 0x4b,
+ 0xf3, 0x77, 0xc0, 0x92, 0x80, 0xae, 0x30, 0xba,
+};
+static const unsigned char kat3259_retbits[] = {
+ 0x60, 0x64, 0xbd, 0x85, 0xcd, 0xf6, 0xce, 0x51, 0x05, 0xc5, 0x09, 0xe2,
+ 0xb1, 0xb5, 0x4f, 0xa9, 0x2f, 0xee, 0x5e, 0xca, 0x5c, 0x1e, 0x17, 0x6a,
+ 0x60, 0xe4, 0x98, 0xce, 0xf6, 0x26, 0x6b, 0x10, 0x42, 0x87, 0x95, 0x30,
+ 0x6e, 0x54, 0x35, 0x8e, 0xff, 0x45, 0x9d, 0xf7, 0x2a, 0x85, 0x30, 0xcf,
+ 0x38, 0xf9, 0x11, 0x13, 0xdb, 0x8a, 0xd2, 0x21, 0xa3, 0xf8, 0x30, 0x7b,
+ 0x1d, 0x4e, 0x9b, 0x71,
+};
+static const struct drbg_kat_pr_true kat3259_t = {
+ 3, kat3259_entropyin, kat3259_nonce, kat3259_persstr,
+ kat3259_entropyinpr1, kat3259_addinpr1, kat3259_entropyinpr2,
+ kat3259_addinpr2, kat3259_retbits
+};
+static const struct drbg_kat kat3259 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3259_t
+};
+
+static const unsigned char kat3260_entropyin[] = {
+ 0x24, 0x85, 0xa6, 0x70, 0x2a, 0x5e, 0xdf, 0xef, 0x7c, 0x84, 0x91, 0xaa,
+ 0x43, 0x0a, 0x8d, 0xc1, 0x19, 0x1f, 0xd8, 0xc9, 0x40, 0xca, 0x6b, 0xda,
+};
+static const unsigned char kat3260_nonce[] = {
+ 0x73, 0x1f, 0xc0, 0x02, 0xcd, 0xd1, 0x5b, 0x5b, 0x66, 0x2f, 0x20, 0x22,
+ 0x03, 0xa9, 0x00, 0x20,
+};
+static const unsigned char kat3260_persstr[] = {0};
+static const unsigned char kat3260_entropyinpr1[] = {
+ 0xaf, 0x46, 0x97, 0xe8, 0x85, 0xc9, 0xc8, 0x5c, 0xd5, 0x11, 0x4b, 0x28,
+ 0x87, 0x5a, 0x30, 0x0a, 0xec, 0x89, 0xb0, 0x36, 0x23, 0xfe, 0xe6, 0xba,
+};
+static const unsigned char kat3260_addinpr1[] = {
+ 0x7a, 0x11, 0xb2, 0x81, 0x49, 0x74, 0xb1, 0x1b, 0xdf, 0x9f, 0xac, 0xe3,
+ 0xf5, 0x4b, 0x58, 0x22, 0xca, 0x23, 0x6c, 0x59, 0xdc, 0x2c, 0x9e, 0x81,
+ 0x54, 0x1b, 0x0e, 0xe8, 0xa6, 0x44, 0xe7, 0x47,
+};
+static const unsigned char kat3260_entropyinpr2[] = {
+ 0xea, 0xb3, 0xb9, 0x86, 0x81, 0xa8, 0x5c, 0x2f, 0xd8, 0xc4, 0xc9, 0x70,
+ 0x67, 0xb1, 0xc7, 0xe5, 0xcb, 0x4d, 0x83, 0x38, 0x50, 0xe1, 0x19, 0xf0,
+};
+static const unsigned char kat3260_addinpr2[] = {
+ 0xb8, 0x69, 0x02, 0x17, 0xaa, 0x47, 0x1c, 0x4e, 0xee, 0xaa, 0x90, 0x78,
+ 0x21, 0x70, 0xb5, 0x24, 0xfa, 0xc1, 0xa7, 0x8e, 0x37, 0x55, 0xfe, 0xa8,
+ 0xb0, 0xea, 0x25, 0x1e, 0x8f, 0x73, 0x94, 0x34,
+};
+static const unsigned char kat3260_retbits[] = {
+ 0x40, 0xee, 0xee, 0xf8, 0x0c, 0xe4, 0x9d, 0x3b, 0xf0, 0x35, 0x0b, 0x20,
+ 0x98, 0x2f, 0xc9, 0xfe, 0xe2, 0x18, 0x4b, 0xcd, 0x85, 0x49, 0x95, 0xfb,
+ 0x23, 0xcc, 0xd4, 0x4b, 0x2d, 0xc3, 0x56, 0x98, 0x10, 0x34, 0xa1, 0x96,
+ 0x0b, 0xdc, 0x1c, 0xb1, 0x2e, 0x1e, 0xb3, 0xe5, 0xa2, 0xbe, 0xf7, 0xab,
+ 0x5b, 0xed, 0xc4, 0x98, 0x01, 0xdf, 0x04, 0x1c, 0x34, 0x47, 0x08, 0xf9,
+ 0x5c, 0xbd, 0xde, 0x99,
+};
+static const struct drbg_kat_pr_true kat3260_t = {
+ 4, kat3260_entropyin, kat3260_nonce, kat3260_persstr,
+ kat3260_entropyinpr1, kat3260_addinpr1, kat3260_entropyinpr2,
+ kat3260_addinpr2, kat3260_retbits
+};
+static const struct drbg_kat kat3260 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3260_t
+};
+
+static const unsigned char kat3261_entropyin[] = {
+ 0x24, 0xce, 0xe3, 0x06, 0x56, 0x29, 0x40, 0x19, 0x9a, 0xb6, 0x83, 0x7b,
+ 0x40, 0xd7, 0xff, 0xe3, 0x02, 0xc5, 0x68, 0x29, 0x35, 0x61, 0x5b, 0x3c,
+};
+static const unsigned char kat3261_nonce[] = {
+ 0xa4, 0x80, 0x10, 0x3d, 0xf6, 0x65, 0x96, 0x8a, 0xcb, 0x52, 0x79, 0x33,
+ 0x2d, 0x51, 0xf3, 0x3a,
+};
+static const unsigned char kat3261_persstr[] = {0};
+static const unsigned char kat3261_entropyinpr1[] = {
+ 0xa4, 0x2f, 0x47, 0x88, 0x1b, 0x2d, 0x9f, 0x91, 0x2f, 0x5a, 0xae, 0x05,
+ 0x35, 0xd1, 0x29, 0x3c, 0xf1, 0x5f, 0xf6, 0xc0, 0x21, 0xe1, 0x6c, 0x38,
+};
+static const unsigned char kat3261_addinpr1[] = {
+ 0x28, 0x08, 0xab, 0x02, 0x80, 0xe1, 0xa4, 0xa0, 0xb5, 0x63, 0x73, 0x46,
+ 0xe9, 0x12, 0xcc, 0xb6, 0x65, 0xcf, 0x96, 0x60, 0x25, 0x94, 0xb5, 0xa4,
+ 0x63, 0x3b, 0x58, 0x71, 0xd6, 0x55, 0x28, 0xb6,
+};
+static const unsigned char kat3261_entropyinpr2[] = {
+ 0x67, 0x4d, 0xb9, 0x81, 0x50, 0xb5, 0x59, 0x0f, 0x98, 0xf7, 0x1b, 0x37,
+ 0x54, 0x2d, 0x2c, 0x6a, 0x4f, 0x02, 0xba, 0xf8, 0x96, 0x36, 0x63, 0x09,
+};
+static const unsigned char kat3261_addinpr2[] = {
+ 0x36, 0x3c, 0x94, 0xc0, 0x6c, 0x07, 0xe3, 0x64, 0x13, 0x05, 0x19, 0xc1,
+ 0xc6, 0x50, 0x90, 0x51, 0x89, 0x74, 0xb6, 0xe2, 0x38, 0xf3, 0x96, 0x8b,
+ 0xfa, 0x4e, 0xbc, 0x76, 0x70, 0xa9, 0xef, 0x5c,
+};
+static const unsigned char kat3261_retbits[] = {
+ 0xc9, 0x15, 0xdf, 0x7a, 0xc2, 0x69, 0x69, 0x75, 0x8f, 0x32, 0xca, 0x42,
+ 0x9f, 0xc8, 0x33, 0x5d, 0xd6, 0xbe, 0x86, 0x60, 0x37, 0x85, 0x77, 0x1b,
+ 0x2e, 0x8a, 0xc8, 0x38, 0xe7, 0xd2, 0x42, 0xa0, 0x99, 0x02, 0x53, 0x09,
+ 0x2d, 0x62, 0x47, 0xbd, 0xf1, 0x19, 0x9e, 0x55, 0x82, 0xaa, 0x08, 0x08,
+ 0x36, 0x5c, 0xe7, 0x58, 0x84, 0xf4, 0xe0, 0x98, 0xd4, 0xb6, 0x05, 0x8a,
+ 0xbf, 0xfd, 0x3c, 0xd8,
+};
+static const struct drbg_kat_pr_true kat3261_t = {
+ 5, kat3261_entropyin, kat3261_nonce, kat3261_persstr,
+ kat3261_entropyinpr1, kat3261_addinpr1, kat3261_entropyinpr2,
+ kat3261_addinpr2, kat3261_retbits
+};
+static const struct drbg_kat kat3261 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3261_t
+};
+
+static const unsigned char kat3262_entropyin[] = {
+ 0x7f, 0x70, 0x54, 0x1d, 0x69, 0x5a, 0xea, 0x4a, 0xc7, 0x81, 0xe7, 0x5b,
+ 0x45, 0x95, 0x4e, 0xa2, 0xfe, 0xc9, 0x08, 0x66, 0x82, 0x14, 0x69, 0xca,
+};
+static const unsigned char kat3262_nonce[] = {
+ 0x49, 0x8a, 0x65, 0xd8, 0xa4, 0x47, 0x84, 0xa6, 0x49, 0x06, 0x00, 0x78,
+ 0xf3, 0x82, 0x91, 0x90,
+};
+static const unsigned char kat3262_persstr[] = {0};
+static const unsigned char kat3262_entropyinpr1[] = {
+ 0x0e, 0x12, 0x30, 0x93, 0x9e, 0x9b, 0xd0, 0x85, 0x4c, 0xdc, 0x7b, 0x9e,
+ 0x2d, 0x07, 0xb4, 0x73, 0x46, 0x78, 0xeb, 0x89, 0x8f, 0x90, 0x16, 0xeb,
+};
+static const unsigned char kat3262_addinpr1[] = {
+ 0xfd, 0xa4, 0x9e, 0xcc, 0x3e, 0xd3, 0x5b, 0x59, 0x85, 0x1a, 0xae, 0xba,
+ 0x4a, 0xc3, 0x8a, 0x53, 0xae, 0x78, 0xd8, 0x81, 0x2d, 0xcf, 0x56, 0xbb,
+ 0x76, 0x96, 0xf2, 0xe5, 0x80, 0x8d, 0x2e, 0xcb,
+};
+static const unsigned char kat3262_entropyinpr2[] = {
+ 0x1c, 0xa6, 0x60, 0x00, 0x7c, 0x02, 0x18, 0xbd, 0x45, 0xf0, 0x66, 0x0e,
+ 0xcf, 0x6f, 0x98, 0x24, 0x8f, 0x23, 0xb2, 0xd8, 0x7b, 0x98, 0x4a, 0x59,
+};
+static const unsigned char kat3262_addinpr2[] = {
+ 0x04, 0xe4, 0x08, 0xa9, 0xb7, 0xa1, 0x47, 0x3f, 0xe9, 0x6b, 0x08, 0x86,
+ 0x60, 0x90, 0x8f, 0x73, 0x0b, 0xac, 0xf2, 0xe4, 0x75, 0xf5, 0xd8, 0x3e,
+ 0x95, 0x1a, 0xe8, 0x8d, 0x0d, 0xe3, 0xd8, 0x56,
+};
+static const unsigned char kat3262_retbits[] = {
+ 0x59, 0x9a, 0x96, 0xd3, 0x25, 0xac, 0xcc, 0x57, 0xb4, 0x86, 0xfc, 0x65,
+ 0xac, 0x9e, 0xff, 0x4a, 0xd4, 0xde, 0x51, 0xc0, 0x8b, 0x31, 0x47, 0xfc,
+ 0x1e, 0x24, 0x0a, 0x9e, 0x27, 0xf0, 0x5a, 0x2d, 0xd4, 0xc4, 0x7a, 0x27,
+ 0x70, 0x08, 0x59, 0xfd, 0x11, 0xc0, 0x23, 0xc7, 0x33, 0x9b, 0x4f, 0x1c,
+ 0xf8, 0xf8, 0xfa, 0xae, 0x19, 0xa4, 0x3c, 0x1a, 0x2c, 0xa4, 0xc2, 0xb1,
+ 0xb2, 0x72, 0xad, 0xb6,
+};
+static const struct drbg_kat_pr_true kat3262_t = {
+ 6, kat3262_entropyin, kat3262_nonce, kat3262_persstr,
+ kat3262_entropyinpr1, kat3262_addinpr1, kat3262_entropyinpr2,
+ kat3262_addinpr2, kat3262_retbits
+};
+static const struct drbg_kat kat3262 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3262_t
+};
+
+static const unsigned char kat3263_entropyin[] = {
+ 0xda, 0x29, 0xbe, 0xa1, 0x8e, 0x5c, 0x26, 0x41, 0xd2, 0x71, 0x46, 0x69,
+ 0xa7, 0x35, 0x13, 0xd6, 0xd7, 0x6b, 0x04, 0xf2, 0x8f, 0xb4, 0xed, 0x2a,
+};
+static const unsigned char kat3263_nonce[] = {
+ 0xca, 0xe7, 0x23, 0x3b, 0x24, 0xfa, 0xd1, 0x55, 0x45, 0xd9, 0x5e, 0x35,
+ 0xb6, 0x58, 0x79, 0xcb,
+};
+static const unsigned char kat3263_persstr[] = {0};
+static const unsigned char kat3263_entropyinpr1[] = {
+ 0x7a, 0xdb, 0x54, 0x4c, 0xda, 0x70, 0xe8, 0x16, 0xeb, 0x80, 0xd5, 0x98,
+ 0xf2, 0x09, 0x64, 0x95, 0x4e, 0x8e, 0x9e, 0x04, 0xa4, 0x8b, 0xab, 0x29,
+};
+static const unsigned char kat3263_addinpr1[] = {
+ 0xb8, 0x3a, 0x8c, 0x26, 0x35, 0xd3, 0x31, 0xcc, 0xf8, 0xf0, 0xc8, 0x1d,
+ 0x97, 0xb7, 0x45, 0xa1, 0xa1, 0xd0, 0x20, 0x06, 0xb6, 0xec, 0x9d, 0xce,
+ 0x51, 0x7d, 0x30, 0x1e, 0x75, 0x81, 0x93, 0x9e,
+};
+static const unsigned char kat3263_entropyinpr2[] = {
+ 0x0d, 0x30, 0xb6, 0xe1, 0xd6, 0xe1, 0x6a, 0xc9, 0xe7, 0xf9, 0xec, 0x45,
+ 0x19, 0x39, 0xe9, 0xb1, 0x45, 0xfa, 0xcb, 0xf0, 0x84, 0x78, 0x02, 0xd0,
+};
+static const unsigned char kat3263_addinpr2[] = {
+ 0x78, 0x35, 0x65, 0x02, 0xe2, 0xa7, 0x95, 0x4f, 0x48, 0x37, 0x86, 0xd2,
+ 0xae, 0xb5, 0x5b, 0x30, 0xe7, 0x71, 0x68, 0x9c, 0x2b, 0x49, 0xf0, 0x38,
+ 0xfb, 0xa4, 0x99, 0x01, 0x71, 0x26, 0xb5, 0xf4,
+};
+static const unsigned char kat3263_retbits[] = {
+ 0xa3, 0xfe, 0xaa, 0xaf, 0x77, 0x5d, 0x08, 0xc2, 0x81, 0xd9, 0xaf, 0x19,
+ 0x83, 0xfa, 0xcc, 0xb2, 0xe5, 0x40, 0xc9, 0x34, 0xda, 0xde, 0xfa, 0x05,
+ 0xec, 0x7a, 0xb3, 0x2e, 0xd9, 0xd3, 0xd0, 0xfa, 0xb5, 0x8c, 0x57, 0x1f,
+ 0x34, 0x08, 0x92, 0x7d, 0xf0, 0x15, 0x86, 0x97, 0xa7, 0x03, 0x9f, 0x50,
+ 0x2b, 0x9f, 0xdc, 0x12, 0xcd, 0x01, 0x87, 0x62, 0xc6, 0xba, 0x53, 0xc2,
+ 0x98, 0x83, 0x70, 0x36,
+};
+static const struct drbg_kat_pr_true kat3263_t = {
+ 7, kat3263_entropyin, kat3263_nonce, kat3263_persstr,
+ kat3263_entropyinpr1, kat3263_addinpr1, kat3263_entropyinpr2,
+ kat3263_addinpr2, kat3263_retbits
+};
+static const struct drbg_kat kat3263 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3263_t
+};
+
+static const unsigned char kat3264_entropyin[] = {
+ 0x52, 0xb9, 0xde, 0x81, 0x33, 0x16, 0xd7, 0x6f, 0x19, 0xe4, 0x1b, 0x9d,
+ 0xa3, 0x91, 0xce, 0x57, 0xb7, 0xee, 0xd1, 0xb2, 0xe5, 0x9e, 0x90, 0xe8,
+};
+static const unsigned char kat3264_nonce[] = {
+ 0x67, 0x56, 0xec, 0x3c, 0xa1, 0x00, 0x7b, 0x50, 0x0a, 0x65, 0x6a, 0x24,
+ 0x28, 0xc8, 0x3a, 0x31,
+};
+static const unsigned char kat3264_persstr[] = {0};
+static const unsigned char kat3264_entropyinpr1[] = {
+ 0xb5, 0x7e, 0xcf, 0xa4, 0xdb, 0x4c, 0xc8, 0x62, 0x0c, 0x89, 0x78, 0x21,
+ 0x0d, 0xa3, 0xf3, 0x16, 0xb2, 0xcb, 0xd0, 0x21, 0x01, 0x5d, 0x7e, 0xb9,
+};
+static const unsigned char kat3264_addinpr1[] = {
+ 0xbf, 0xa3, 0x10, 0x19, 0x6b, 0xcf, 0xbd, 0x9d, 0x26, 0xa3, 0x66, 0xdd,
+ 0xbf, 0xe0, 0xb0, 0xd3, 0x85, 0xfb, 0x08, 0x20, 0xd5, 0xb1, 0x97, 0x7e,
+ 0x6c, 0x4d, 0x42, 0xf9, 0xce, 0x48, 0x42, 0xff,
+};
+static const unsigned char kat3264_entropyinpr2[] = {
+ 0x7d, 0x32, 0xcf, 0x1e, 0x2e, 0x65, 0x68, 0x93, 0x38, 0xae, 0x65, 0x81,
+ 0x21, 0xd4, 0xf4, 0x9c, 0xa1, 0x1a, 0x38, 0xc8, 0x19, 0x48, 0x42, 0xc7,
+};
+static const unsigned char kat3264_addinpr2[] = {
+ 0x48, 0xa0, 0xda, 0x78, 0x43, 0xd4, 0x7c, 0xe6, 0xd1, 0xfc, 0xa3, 0x71,
+ 0x1c, 0x06, 0xb6, 0xe5, 0xba, 0x0e, 0x35, 0xf1, 0x5d, 0x2a, 0x58, 0xeb,
+ 0x88, 0x8b, 0x8d, 0xdf, 0x6b, 0x16, 0xa6, 0xa2,
+};
+static const unsigned char kat3264_retbits[] = {
+ 0xa6, 0x07, 0x25, 0x3c, 0xcd, 0x8c, 0xff, 0xfe, 0x48, 0x0c, 0x06, 0x69,
+ 0xa5, 0x4a, 0xbe, 0x88, 0x37, 0xca, 0x07, 0x14, 0xf4, 0xa0, 0x0d, 0xe2,
+ 0x30, 0xf6, 0x61, 0x33, 0x3e, 0xea, 0xc4, 0xf5, 0x4c, 0x88, 0x01, 0xf9,
+ 0xdb, 0x53, 0x39, 0xeb, 0x18, 0x52, 0x58, 0xe9, 0xe2, 0x93, 0x71, 0xe5,
+ 0xbf, 0x87, 0x47, 0x95, 0x09, 0x59, 0x78, 0x94, 0x1c, 0xb6, 0xbe, 0x65,
+ 0x35, 0xb9, 0xfa, 0xc1,
+};
+static const struct drbg_kat_pr_true kat3264_t = {
+ 8, kat3264_entropyin, kat3264_nonce, kat3264_persstr,
+ kat3264_entropyinpr1, kat3264_addinpr1, kat3264_entropyinpr2,
+ kat3264_addinpr2, kat3264_retbits
+};
+static const struct drbg_kat kat3264 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3264_t
+};
+
+static const unsigned char kat3265_entropyin[] = {
+ 0xa2, 0x1d, 0x94, 0xe4, 0xf1, 0x5c, 0xb4, 0xb5, 0xf4, 0x06, 0x7e, 0x57,
+ 0x5f, 0x51, 0xce, 0xfa, 0x01, 0x3f, 0x8b, 0xd6, 0xb9, 0xff, 0x08, 0xc1,
+};
+static const unsigned char kat3265_nonce[] = {
+ 0x38, 0x86, 0x8d, 0x59, 0x41, 0x9e, 0x34, 0x80, 0xc5, 0xaf, 0x5f, 0xbe,
+ 0x24, 0x56, 0x28, 0x12,
+};
+static const unsigned char kat3265_persstr[] = {0};
+static const unsigned char kat3265_entropyinpr1[] = {
+ 0x2d, 0x60, 0xe5, 0xbe, 0xe9, 0xf4, 0xe0, 0x72, 0xe3, 0x0a, 0xd7, 0xe0,
+ 0x11, 0xa3, 0xff, 0x16, 0x8b, 0x05, 0x4a, 0xba, 0x09, 0xc1, 0x7d, 0xd3,
+};
+static const unsigned char kat3265_addinpr1[] = {
+ 0xce, 0x0f, 0x66, 0x0a, 0x52, 0x60, 0x5f, 0xa8, 0xce, 0x4c, 0xa7, 0xc3,
+ 0x91, 0x14, 0x92, 0xfe, 0x41, 0x82, 0x3e, 0x9d, 0x2a, 0xb0, 0xdc, 0x06,
+ 0x53, 0xcc, 0xde, 0xfb, 0xde, 0x52, 0x38, 0xbf,
+};
+static const unsigned char kat3265_entropyinpr2[] = {
+ 0x0d, 0xdf, 0x5f, 0x45, 0x1a, 0xc1, 0x7f, 0x5c, 0x9c, 0xb2, 0xf1, 0xad,
+ 0x17, 0x59, 0xa8, 0x1d, 0x6a, 0xba, 0xe8, 0x1a, 0xf5, 0x9f, 0x89, 0x03,
+};
+static const unsigned char kat3265_addinpr2[] = {
+ 0xb8, 0x55, 0xa6, 0xb8, 0xb3, 0x0b, 0xd9, 0xa5, 0xfd, 0xb3, 0xc2, 0xbe,
+ 0xbe, 0x16, 0xa2, 0xc5, 0xa7, 0x0c, 0x16, 0x1d, 0x84, 0xa1, 0x57, 0xbe,
+ 0xaa, 0x70, 0x00, 0x0e, 0x4a, 0xa3, 0x71, 0x12,
+};
+static const unsigned char kat3265_retbits[] = {
+ 0xfa, 0x77, 0xcc, 0x78, 0x02, 0xd4, 0x57, 0xce, 0x1d, 0x1e, 0x94, 0x0e,
+ 0x27, 0xbd, 0xa2, 0xda, 0x7f, 0xcc, 0xe0, 0x69, 0x24, 0x7e, 0xba, 0xa8,
+ 0x49, 0x40, 0x6d, 0xd3, 0x20, 0x81, 0x48, 0x97, 0x7b, 0x09, 0x29, 0xc8,
+ 0x6e, 0xb7, 0xb8, 0x92, 0x9a, 0x91, 0x74, 0xcb, 0xd1, 0x81, 0xe0, 0xae,
+ 0xf1, 0x7e, 0xfb, 0x8f, 0x05, 0xfe, 0x4b, 0x45, 0x06, 0x17, 0x72, 0x86,
+ 0x7a, 0x2c, 0xee, 0xf9,
+};
+static const struct drbg_kat_pr_true kat3265_t = {
+ 9, kat3265_entropyin, kat3265_nonce, kat3265_persstr,
+ kat3265_entropyinpr1, kat3265_addinpr1, kat3265_entropyinpr2,
+ kat3265_addinpr2, kat3265_retbits
+};
+static const struct drbg_kat kat3265 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3265_t
+};
+
+static const unsigned char kat3266_entropyin[] = {
+ 0x0a, 0x09, 0x68, 0x83, 0x88, 0xa2, 0x03, 0xc9, 0xa8, 0x61, 0x38, 0xa5,
+ 0x6a, 0xcd, 0xd1, 0xe1, 0x8e, 0x53, 0xaf, 0x2d, 0x4d, 0xf4, 0xf8, 0x2b,
+};
+static const unsigned char kat3266_nonce[] = {
+ 0x7c, 0x99, 0x35, 0xad, 0x47, 0x64, 0x02, 0xda, 0x67, 0x8f, 0xb8, 0x88,
+ 0x47, 0xbc, 0x79, 0xda,
+};
+static const unsigned char kat3266_persstr[] = {0};
+static const unsigned char kat3266_entropyinpr1[] = {
+ 0xfb, 0xe2, 0xfc, 0xd6, 0x87, 0x33, 0x6d, 0xb7, 0x56, 0xd6, 0x88, 0x9a,
+ 0xdd, 0x29, 0xb4, 0xe1, 0x74, 0xf8, 0x60, 0x58, 0x54, 0xfa, 0x90, 0xcd,
+};
+static const unsigned char kat3266_addinpr1[] = {
+ 0xf2, 0x8e, 0x4d, 0xd1, 0x74, 0xb4, 0xe2, 0x63, 0x97, 0x29, 0x05, 0xb4,
+ 0x10, 0x7a, 0x55, 0x06, 0x35, 0x80, 0x67, 0xcd, 0xef, 0xa2, 0xc6, 0xbd,
+ 0x87, 0x0e, 0x4d, 0xe6, 0x1c, 0x63, 0x9e, 0xa7,
+};
+static const unsigned char kat3266_entropyinpr2[] = {
+ 0xd9, 0x3c, 0xe3, 0x2c, 0xb1, 0x92, 0xce, 0x1a, 0x4b, 0xff, 0x95, 0x63,
+ 0x91, 0x06, 0x3a, 0xdf, 0xab, 0x11, 0xee, 0x62, 0xff, 0x9f, 0xde, 0xbe,
+};
+static const unsigned char kat3266_addinpr2[] = {
+ 0x23, 0x21, 0x81, 0xf3, 0x29, 0x3d, 0x37, 0xec, 0xf6, 0x5e, 0xa1, 0xf2,
+ 0xaf, 0xf6, 0x6d, 0x21, 0x2d, 0xdb, 0x43, 0x4b, 0xe7, 0xc6, 0x41, 0x0f,
+ 0x72, 0xa7, 0xab, 0x46, 0xb1, 0xfc, 0xfb, 0x8b,
+};
+static const unsigned char kat3266_retbits[] = {
+ 0xde, 0x5c, 0xf7, 0x7d, 0xcd, 0x48, 0x72, 0x73, 0x95, 0xb9, 0xdc, 0x8c,
+ 0xd0, 0x1f, 0xa0, 0x6b, 0x36, 0x24, 0x6b, 0xe0, 0x1b, 0x6b, 0xcd, 0xf1,
+ 0x12, 0x6f, 0x24, 0xd1, 0x64, 0x99, 0xbb, 0x2e, 0xda, 0x5c, 0x67, 0x17,
+ 0xd7, 0x84, 0xf2, 0xff, 0xe5, 0x8f, 0x96, 0xe4, 0x11, 0x6f, 0x80, 0x47,
+ 0x90, 0xf1, 0x39, 0x87, 0xfa, 0x30, 0x99, 0x9d, 0xec, 0xcc, 0xd8, 0x32,
+ 0x47, 0xab, 0x7f, 0xb3,
+};
+static const struct drbg_kat_pr_true kat3266_t = {
+ 10, kat3266_entropyin, kat3266_nonce, kat3266_persstr,
+ kat3266_entropyinpr1, kat3266_addinpr1, kat3266_entropyinpr2,
+ kat3266_addinpr2, kat3266_retbits
+};
+static const struct drbg_kat kat3266 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3266_t
+};
+
+static const unsigned char kat3267_entropyin[] = {
+ 0xd7, 0x4d, 0x47, 0x64, 0x5d, 0xe0, 0xc4, 0x13, 0x1d, 0x0e, 0xfa, 0x5b,
+ 0xf2, 0xcd, 0xb3, 0x0e, 0xf8, 0x34, 0xed, 0xe8, 0x60, 0xcf, 0x23, 0x2f,
+};
+static const unsigned char kat3267_nonce[] = {
+ 0xc1, 0x9c, 0x88, 0x8c, 0x22, 0x9a, 0xee, 0x57, 0x97, 0xf7, 0x84, 0xbe,
+ 0xa1, 0x83, 0x3a, 0x1b,
+};
+static const unsigned char kat3267_persstr[] = {0};
+static const unsigned char kat3267_entropyinpr1[] = {
+ 0x06, 0x7f, 0x62, 0x6a, 0x17, 0x36, 0x18, 0x10, 0x01, 0xe2, 0x40, 0xc6,
+ 0xa3, 0x64, 0xb8, 0xa8, 0xbe, 0x5b, 0x56, 0x58, 0x25, 0xeb, 0xd2, 0x70,
+};
+static const unsigned char kat3267_addinpr1[] = {
+ 0xf8, 0xf5, 0xac, 0x79, 0x8d, 0xe7, 0x32, 0x4c, 0x6d, 0x7e, 0x9e, 0xa1,
+ 0x1e, 0xd0, 0xe1, 0xbb, 0x77, 0x6b, 0xbf, 0xac, 0xad, 0x70, 0x01, 0xa3,
+ 0xa7, 0x34, 0xfc, 0x47, 0x69, 0x45, 0x2b, 0xea,
+};
+static const unsigned char kat3267_entropyinpr2[] = {
+ 0x9d, 0xe6, 0xf8, 0xda, 0x19, 0xd2, 0x26, 0x06, 0x27, 0x55, 0x07, 0x77,
+ 0x69, 0xe6, 0x8f, 0xf0, 0x6f, 0x05, 0x07, 0xf9, 0x17, 0x7b, 0x9c, 0x09,
+};
+static const unsigned char kat3267_addinpr2[] = {
+ 0xe1, 0x7f, 0x98, 0xbd, 0x2a, 0xbd, 0xb1, 0xed, 0xe2, 0x1b, 0xfb, 0x6f,
+ 0x8b, 0x48, 0x67, 0x02, 0x69, 0xef, 0x34, 0xc8, 0xbf, 0xbd, 0x9e, 0xc6,
+ 0x53, 0x19, 0x9b, 0xbf, 0x31, 0xfb, 0x0c, 0xa1,
+};
+static const unsigned char kat3267_retbits[] = {
+ 0xe5, 0x80, 0x02, 0xeb, 0x49, 0x63, 0xf7, 0x08, 0x41, 0x74, 0xfe, 0x60,
+ 0xb4, 0x86, 0xc3, 0x72, 0x7c, 0xe1, 0xb6, 0x15, 0x17, 0x18, 0xe2, 0x09,
+ 0x0d, 0xd8, 0xce, 0x84, 0xff, 0x76, 0xf4, 0x9a, 0xa5, 0x23, 0x12, 0x2f,
+ 0x68, 0xa1, 0x65, 0xc7, 0x98, 0xea, 0x75, 0xd5, 0x4a, 0xe9, 0xef, 0x2d,
+ 0xe3, 0xd3, 0x77, 0x00, 0x35, 0x8e, 0xac, 0x07, 0xf9, 0x9a, 0xa1, 0x1a,
+ 0x13, 0x93, 0xef, 0x86,
+};
+static const struct drbg_kat_pr_true kat3267_t = {
+ 11, kat3267_entropyin, kat3267_nonce, kat3267_persstr,
+ kat3267_entropyinpr1, kat3267_addinpr1, kat3267_entropyinpr2,
+ kat3267_addinpr2, kat3267_retbits
+};
+static const struct drbg_kat kat3267 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3267_t
+};
+
+static const unsigned char kat3268_entropyin[] = {
+ 0x77, 0x97, 0xe5, 0xd1, 0x4b, 0x65, 0xe6, 0x40, 0xef, 0x35, 0x2e, 0x00,
+ 0x14, 0x03, 0xb1, 0x3a, 0x43, 0x42, 0x5c, 0x62, 0xcc, 0x6d, 0x68, 0x4a,
+};
+static const unsigned char kat3268_nonce[] = {
+ 0x6f, 0xe4, 0x1e, 0xcf, 0xc8, 0x02, 0x59, 0x96, 0x87, 0xf7, 0x06, 0xe0,
+ 0x49, 0x54, 0x2c, 0xda,
+};
+static const unsigned char kat3268_persstr[] = {0};
+static const unsigned char kat3268_entropyinpr1[] = {
+ 0x87, 0x7c, 0xca, 0x91, 0x1f, 0xb3, 0x4f, 0xa9, 0x21, 0x6a, 0xb0, 0xb2,
+ 0x71, 0xcb, 0x57, 0x4c, 0x0e, 0x61, 0xc1, 0x87, 0x5a, 0xb7, 0x0f, 0xfd,
+};
+static const unsigned char kat3268_addinpr1[] = {
+ 0x5f, 0x42, 0xc7, 0x23, 0xb0, 0xf3, 0x9c, 0xb7, 0xbc, 0xd6, 0x7e, 0x0f,
+ 0xcb, 0xcd, 0x7a, 0x89, 0x2a, 0x01, 0x72, 0xe3, 0x64, 0x9a, 0x97, 0xa6,
+ 0x66, 0x08, 0x87, 0x56, 0x48, 0x1f, 0xfd, 0x16,
+};
+static const unsigned char kat3268_entropyinpr2[] = {
+ 0x9e, 0x1a, 0x26, 0x1f, 0x84, 0xd4, 0x77, 0x55, 0xc5, 0x11, 0xa0, 0x15,
+ 0xaf, 0xa2, 0x3b, 0xfa, 0x23, 0x1c, 0x90, 0xfd, 0x8a, 0x68, 0xe6, 0x24,
+};
+static const unsigned char kat3268_addinpr2[] = {
+ 0x1d, 0x85, 0x2b, 0x6e, 0x6e, 0xcf, 0x97, 0x3f, 0x25, 0xe8, 0x42, 0x7d,
+ 0x57, 0x3a, 0x0c, 0xb9, 0x0f, 0xcf, 0xd0, 0x7c, 0xdf, 0x8b, 0xe6, 0x5d,
+ 0x17, 0x3a, 0x31, 0xe4, 0xbd, 0x39, 0xed, 0xbd,
+};
+static const unsigned char kat3268_retbits[] = {
+ 0xc7, 0xdc, 0x41, 0x41, 0xaf, 0x86, 0xa8, 0x27, 0xf7, 0x34, 0xc6, 0xda,
+ 0x58, 0x59, 0x3a, 0x18, 0xd1, 0xf9, 0x11, 0xdf, 0xb6, 0xd8, 0x86, 0x8c,
+ 0x0f, 0xab, 0x20, 0xdb, 0xd3, 0x1f, 0x31, 0x18, 0x9c, 0xdc, 0xef, 0x89,
+ 0xaf, 0x4d, 0xf4, 0xf6, 0x4e, 0x53, 0x1f, 0xaf, 0xc6, 0x10, 0xd2, 0xbc,
+ 0xac, 0xde, 0x05, 0xe3, 0xd2, 0x3c, 0x41, 0xa7, 0xc1, 0x00, 0xb3, 0xaf,
+ 0x49, 0x94, 0x11, 0x60,
+};
+static const struct drbg_kat_pr_true kat3268_t = {
+ 12, kat3268_entropyin, kat3268_nonce, kat3268_persstr,
+ kat3268_entropyinpr1, kat3268_addinpr1, kat3268_entropyinpr2,
+ kat3268_addinpr2, kat3268_retbits
+};
+static const struct drbg_kat kat3268 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3268_t
+};
+
+static const unsigned char kat3269_entropyin[] = {
+ 0xea, 0xb0, 0x28, 0xdc, 0x4c, 0xcb, 0x75, 0x8b, 0x33, 0xb8, 0xb7, 0x2a,
+ 0x33, 0xfc, 0x55, 0x16, 0x81, 0xeb, 0x05, 0x68, 0x5c, 0x62, 0x1c, 0xb9,
+};
+static const unsigned char kat3269_nonce[] = {
+ 0x3c, 0x45, 0x7b, 0x9c, 0xad, 0x22, 0x8f, 0x51, 0x28, 0x95, 0x6b, 0xea,
+ 0x40, 0x2d, 0xef, 0x9d,
+};
+static const unsigned char kat3269_persstr[] = {0};
+static const unsigned char kat3269_entropyinpr1[] = {
+ 0xef, 0xb4, 0x8f, 0x69, 0xe3, 0xcd, 0x1a, 0x91, 0x9a, 0x89, 0x80, 0x3d,
+ 0x78, 0x02, 0x50, 0x59, 0x9d, 0x2e, 0x0d, 0x5a, 0x8f, 0x9b, 0x77, 0x6d,
+};
+static const unsigned char kat3269_addinpr1[] = {
+ 0x86, 0x1b, 0xfb, 0x5b, 0xe4, 0x84, 0xea, 0xff, 0x7d, 0x40, 0x7f, 0x4e,
+ 0x08, 0x23, 0x63, 0x65, 0x1b, 0xa0, 0x74, 0x2f, 0x26, 0x54, 0xbf, 0x6f,
+ 0xdd, 0xeb, 0xd3, 0x6b, 0xa3, 0x40, 0xab, 0x99,
+};
+static const unsigned char kat3269_entropyinpr2[] = {
+ 0x73, 0x5c, 0xc8, 0x08, 0x22, 0x44, 0x77, 0x86, 0x52, 0x91, 0xae, 0xfd,
+ 0x56, 0xfb, 0x9a, 0x22, 0xc5, 0xe2, 0x87, 0x0a, 0x0a, 0x70, 0xb3, 0x90,
+};
+static const unsigned char kat3269_addinpr2[] = {
+ 0x85, 0x5b, 0x9d, 0xe8, 0xf6, 0xa9, 0x00, 0xf7, 0x19, 0xc4, 0x1e, 0xe9,
+ 0x32, 0x4a, 0x9d, 0xe1, 0xbf, 0xe8, 0x78, 0xa1, 0x31, 0x28, 0xbb, 0x7c,
+ 0x56, 0xba, 0x27, 0xef, 0x08, 0x79, 0x66, 0xe0,
+};
+static const unsigned char kat3269_retbits[] = {
+ 0x63, 0x99, 0x87, 0x47, 0x61, 0xbb, 0x95, 0x7b, 0x73, 0x37, 0x45, 0xda,
+ 0xe3, 0xe1, 0x12, 0x51, 0x45, 0xc1, 0x0a, 0x0e, 0x40, 0x12, 0x35, 0xc6,
+ 0xd0, 0x63, 0xf4, 0xd4, 0x14, 0x28, 0xc0, 0xf9, 0xcc, 0x17, 0x1b, 0xea,
+ 0xd1, 0x0e, 0x53, 0x63, 0x8f, 0x7f, 0x0f, 0x3f, 0xa6, 0xe5, 0xe5, 0x36,
+ 0x85, 0x20, 0x64, 0x36, 0x03, 0x80, 0x91, 0x36, 0x9d, 0xb6, 0xe1, 0x72,
+ 0xd3, 0x64, 0x16, 0x1c,
+};
+static const struct drbg_kat_pr_true kat3269_t = {
+ 13, kat3269_entropyin, kat3269_nonce, kat3269_persstr,
+ kat3269_entropyinpr1, kat3269_addinpr1, kat3269_entropyinpr2,
+ kat3269_addinpr2, kat3269_retbits
+};
+static const struct drbg_kat kat3269 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3269_t
+};
+
+static const unsigned char kat3270_entropyin[] = {
+ 0x12, 0x97, 0x1c, 0xf0, 0x16, 0x86, 0x1d, 0xcb, 0xf8, 0x8d, 0x94, 0xc5,
+ 0x02, 0xf2, 0x05, 0x8a, 0xd4, 0xe3, 0x4c, 0x32, 0xab, 0xac, 0xb6, 0x4e,
+};
+static const unsigned char kat3270_nonce[] = {
+ 0x09, 0x39, 0x64, 0xe5, 0x17, 0xf9, 0xc4, 0x5b, 0xb2, 0xd0, 0x8b, 0xe7,
+ 0x98, 0x5f, 0x84, 0x5f,
+};
+static const unsigned char kat3270_persstr[] = {0};
+static const unsigned char kat3270_entropyinpr1[] = {
+ 0x81, 0x9b, 0x92, 0x95, 0xc2, 0x30, 0xab, 0x04, 0x0a, 0xa4, 0xac, 0x51,
+ 0xb6, 0x2e, 0xf0, 0xd8, 0x44, 0x7f, 0xf2, 0xce, 0x11, 0x12, 0x17, 0x32,
+};
+static const unsigned char kat3270_addinpr1[] = {
+ 0x5a, 0x5d, 0x31, 0x0a, 0x1b, 0x59, 0xc6, 0xa4, 0xb6, 0xae, 0x77, 0x55,
+ 0xfc, 0x44, 0xe7, 0xb8, 0xd8, 0xd9, 0x2c, 0xbc, 0xd2, 0x3a, 0x37, 0xdc,
+ 0x1d, 0x78, 0x85, 0x9d, 0x66, 0x1a, 0x1c, 0xd4,
+};
+static const unsigned char kat3270_entropyinpr2[] = {
+ 0x85, 0x58, 0x71, 0x5d, 0x42, 0x82, 0x3d, 0xa8, 0xa7, 0xc7, 0x72, 0xa7,
+ 0x2a, 0x76, 0x35, 0x88, 0x5d, 0xcf, 0x25, 0x9b, 0xf3, 0x7f, 0x6a, 0xe0,
+};
+static const unsigned char kat3270_addinpr2[] = {
+ 0xdc, 0x7a, 0xdd, 0x14, 0xbb, 0x20, 0x52, 0x84, 0x08, 0xb8, 0xd3, 0xb8,
+ 0x57, 0x1d, 0xbf, 0xb9, 0x88, 0xf1, 0x93, 0xcd, 0x7b, 0x12, 0xd7, 0xde,
+ 0x97, 0xeb, 0x0d, 0x15, 0x1d, 0xc5, 0xb5, 0x6e,
+};
+static const unsigned char kat3270_retbits[] = {
+ 0xe7, 0xf0, 0x1a, 0x2d, 0x2d, 0x19, 0x23, 0xfb, 0xfc, 0xf0, 0x11, 0x40,
+ 0x23, 0xc2, 0x84, 0x11, 0x32, 0x3e, 0x79, 0xbf, 0x63, 0x76, 0xdf, 0x38,
+ 0x04, 0x40, 0x6c, 0x01, 0x46, 0x68, 0x56, 0x7b, 0x7b, 0xfe, 0x21, 0x44,
+ 0x59, 0xce, 0x84, 0xac, 0xb6, 0xfc, 0xaf, 0x6a, 0x90, 0x24, 0x76, 0xe7,
+ 0xef, 0x4c, 0x70, 0x0c, 0x1a, 0xf1, 0xef, 0x81, 0xce, 0x1b, 0x5c, 0x3c,
+ 0x9c, 0x6d, 0xa7, 0x5d,
+};
+static const struct drbg_kat_pr_true kat3270_t = {
+ 14, kat3270_entropyin, kat3270_nonce, kat3270_persstr,
+ kat3270_entropyinpr1, kat3270_addinpr1, kat3270_entropyinpr2,
+ kat3270_addinpr2, kat3270_retbits
+};
+static const struct drbg_kat kat3270 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3270_t
+};
+
+static const unsigned char kat3271_entropyin[] = {
+ 0xe9, 0x03, 0x18, 0x10, 0x27, 0xfc, 0xb2, 0x02, 0x63, 0xbe, 0xee, 0x48,
+ 0x77, 0x66, 0x39, 0x50, 0x48, 0x17, 0x5d, 0x63, 0x6c, 0x25, 0x79, 0x0f,
+};
+static const unsigned char kat3271_nonce[] = {
+ 0x3c, 0xc2, 0x09, 0xd6, 0x7d, 0xc6, 0x7c, 0xe1, 0x0c, 0x44, 0xcd, 0x85,
+ 0x87, 0xd4, 0x56, 0x4a,
+};
+static const unsigned char kat3271_persstr[] = {
+ 0x9b, 0xc6, 0xbf, 0x7c, 0xe8, 0xe9, 0x95, 0x15, 0x75, 0xec, 0xcf, 0x77,
+ 0xd6, 0x9f, 0xd9, 0xd5, 0x13, 0x2b, 0xf7, 0x22, 0xe1, 0x94, 0xc8, 0x9f,
+ 0x19, 0xf9, 0xcc, 0x42, 0xdc, 0xf7, 0x24, 0x07,
+};
+static const unsigned char kat3271_entropyinpr1[] = {
+ 0xdc, 0xd8, 0x28, 0xdf, 0x91, 0x57, 0x8e, 0x38, 0x32, 0x2f, 0xaa, 0x8c,
+ 0x4e, 0x89, 0xdc, 0xb2, 0xec, 0x33, 0x12, 0x72, 0xff, 0xb2, 0x40, 0x19,
+};
+static const unsigned char kat3271_addinpr1[] = {0};
+static const unsigned char kat3271_entropyinpr2[] = {
+ 0x55, 0x6b, 0x36, 0x2d, 0x72, 0xe4, 0x9f, 0x96, 0x57, 0xd6, 0x0a, 0x6e,
+ 0x0d, 0x59, 0x40, 0xd1, 0xf8, 0x66, 0x73, 0xf1, 0xbc, 0xcb, 0x32, 0xff,
+};
+static const unsigned char kat3271_addinpr2[] = {0};
+static const unsigned char kat3271_retbits[] = {
+ 0x20, 0xea, 0xbb, 0xb1, 0xbc, 0xe0, 0xa5, 0xbd, 0xff, 0x5e, 0x0b, 0x46,
+ 0x86, 0x0b, 0x76, 0x11, 0xe0, 0x3a, 0x3e, 0xb6, 0x72, 0xaf, 0x74, 0xd1,
+ 0xf8, 0x9d, 0x62, 0x4b, 0x7c, 0x78, 0x57, 0xf2, 0x52, 0x3b, 0x34, 0x2a,
+ 0x22, 0xcb, 0xa4, 0xba, 0x99, 0x27, 0xb6, 0x52, 0xbd, 0xce, 0x17, 0xbc,
+ 0x67, 0x09, 0x6a, 0x4a, 0xcf, 0xcd, 0x87, 0x62, 0xe3, 0x7a, 0x9c, 0xe1,
+ 0x7e, 0xd9, 0x2d, 0x34,
+};
+static const struct drbg_kat_pr_true kat3271_t = {
+ 0, kat3271_entropyin, kat3271_nonce, kat3271_persstr,
+ kat3271_entropyinpr1, kat3271_addinpr1, kat3271_entropyinpr2,
+ kat3271_addinpr2, kat3271_retbits
+};
+static const struct drbg_kat kat3271 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3271_t
+};
+
+static const unsigned char kat3272_entropyin[] = {
+ 0xc4, 0xfb, 0x68, 0xb9, 0x1a, 0xab, 0x25, 0x20, 0xe0, 0x6b, 0xe8, 0xfb,
+ 0x42, 0x99, 0x50, 0xea, 0x93, 0x1a, 0x97, 0xaf, 0x99, 0xcc, 0x95, 0xa9,
+};
+static const unsigned char kat3272_nonce[] = {
+ 0x31, 0xc4, 0xe8, 0x7e, 0x8b, 0x1a, 0x40, 0x5b, 0x53, 0xda, 0x9b, 0xea,
+ 0xcd, 0x67, 0x3e, 0x05,
+};
+static const unsigned char kat3272_persstr[] = {
+ 0xe6, 0xe7, 0x73, 0x46, 0xb6, 0xc1, 0x69, 0xc9, 0x44, 0x7a, 0xb9, 0xe2,
+ 0xbb, 0x95, 0x72, 0x58, 0x1f, 0xd5, 0x58, 0x48, 0xa3, 0xb4, 0xf5, 0x51,
+ 0x1b, 0x74, 0xf0, 0xc7, 0xa1, 0xdc, 0x95, 0xa0,
+};
+static const unsigned char kat3272_entropyinpr1[] = {
+ 0x5a, 0xba, 0x28, 0xfc, 0xdd, 0x50, 0x9b, 0x69, 0xe3, 0x46, 0xae, 0x49,
+ 0xd7, 0xca, 0x5b, 0x7d, 0x70, 0xd1, 0x42, 0x2e, 0xff, 0x1b, 0x76, 0xf7,
+};
+static const unsigned char kat3272_addinpr1[] = {0};
+static const unsigned char kat3272_entropyinpr2[] = {
+ 0x16, 0x7f, 0xe0, 0x2f, 0xd2, 0xa4, 0x5f, 0x21, 0xc8, 0x45, 0x9e, 0x67,
+ 0x03, 0x37, 0xe5, 0x62, 0xf4, 0x1e, 0x21, 0x64, 0x4d, 0x6c, 0x9c, 0xf4,
+};
+static const unsigned char kat3272_addinpr2[] = {0};
+static const unsigned char kat3272_retbits[] = {
+ 0x32, 0xac, 0xca, 0x54, 0x98, 0x27, 0x29, 0x21, 0xa5, 0xf5, 0x49, 0x43,
+ 0x60, 0x30, 0x93, 0xbe, 0x34, 0x0e, 0xca, 0x9d, 0xe1, 0x36, 0x08, 0x2e,
+ 0xcc, 0xe3, 0xc0, 0x1f, 0xdd, 0x7e, 0x7f, 0x78, 0xe4, 0xca, 0x27, 0xf0,
+ 0x6f, 0x99, 0xd1, 0xe7, 0xc0, 0x3c, 0x8d, 0x1c, 0x75, 0xc2, 0x9d, 0x0a,
+ 0x58, 0x14, 0x60, 0x21, 0x35, 0xf2, 0x10, 0x12, 0xa5, 0x3d, 0xe2, 0x9e,
+ 0x94, 0x39, 0x5d, 0x8d,
+};
+static const struct drbg_kat_pr_true kat3272_t = {
+ 1, kat3272_entropyin, kat3272_nonce, kat3272_persstr,
+ kat3272_entropyinpr1, kat3272_addinpr1, kat3272_entropyinpr2,
+ kat3272_addinpr2, kat3272_retbits
+};
+static const struct drbg_kat kat3272 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3272_t
+};
+
+static const unsigned char kat3273_entropyin[] = {
+ 0x6a, 0x58, 0xe4, 0xc1, 0x4c, 0x4d, 0x3b, 0x6a, 0x9f, 0x2f, 0x0a, 0x6d,
+ 0x2c, 0x9c, 0x35, 0x20, 0x18, 0x55, 0x77, 0x29, 0x58, 0x74, 0x09, 0x29,
+};
+static const unsigned char kat3273_nonce[] = {
+ 0x44, 0x19, 0x42, 0xdd, 0x72, 0x92, 0x6d, 0xf2, 0xec, 0x3d, 0xa1, 0x21,
+ 0xa0, 0x18, 0xc8, 0xc6,
+};
+static const unsigned char kat3273_persstr[] = {
+ 0x4c, 0x09, 0x1a, 0x44, 0x88, 0x75, 0xd1, 0x8d, 0x88, 0xc4, 0x14, 0xf0,
+ 0xb3, 0x5c, 0xc4, 0xaa, 0x00, 0xf8, 0x14, 0xba, 0x74, 0xec, 0x8b, 0xc1,
+ 0x22, 0xe0, 0x76, 0x73, 0x50, 0x33, 0xa3, 0x6e,
+};
+static const unsigned char kat3273_entropyinpr1[] = {
+ 0xfa, 0x03, 0xd1, 0xb0, 0x41, 0xe5, 0x78, 0x24, 0xd8, 0x3c, 0xe2, 0xf5,
+ 0x12, 0x60, 0xd9, 0x83, 0x62, 0x2f, 0x92, 0xa0, 0x2a, 0xc4, 0x12, 0xf7,
+};
+static const unsigned char kat3273_addinpr1[] = {0};
+static const unsigned char kat3273_entropyinpr2[] = {
+ 0x14, 0x36, 0xcb, 0x63, 0xe1, 0x5c, 0x02, 0x2a, 0x04, 0x1f, 0x97, 0xc7,
+ 0xc9, 0xfa, 0x67, 0xd8, 0x00, 0x4a, 0x15, 0x07, 0x31, 0xbd, 0x0a, 0x6a,
+};
+static const unsigned char kat3273_addinpr2[] = {0};
+static const unsigned char kat3273_retbits[] = {
+ 0x47, 0xd7, 0xa7, 0x18, 0xbc, 0x61, 0xa0, 0x6b, 0x0d, 0xda, 0xcf, 0xd9,
+ 0x53, 0x93, 0x4c, 0x5c, 0xbd, 0xdc, 0x7b, 0x90, 0x43, 0x92, 0xd9, 0xcc,
+ 0x72, 0xab, 0xa8, 0xa8, 0x0c, 0x55, 0x9e, 0x10, 0xd0, 0x73, 0x18, 0x0e,
+ 0xc6, 0x1c, 0xfe, 0x3f, 0xc1, 0xbb, 0x1e, 0x52, 0x37, 0x4c, 0x34, 0xb1,
+ 0xd4, 0xc4, 0xae, 0xca, 0x04, 0x8a, 0x10, 0x85, 0xfb, 0x4b, 0x8b, 0x8c,
+ 0xbe, 0x1e, 0x20, 0xb3,
+};
+static const struct drbg_kat_pr_true kat3273_t = {
+ 2, kat3273_entropyin, kat3273_nonce, kat3273_persstr,
+ kat3273_entropyinpr1, kat3273_addinpr1, kat3273_entropyinpr2,
+ kat3273_addinpr2, kat3273_retbits
+};
+static const struct drbg_kat kat3273 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3273_t
+};
+
+static const unsigned char kat3274_entropyin[] = {
+ 0x37, 0x7d, 0xc5, 0x74, 0xe3, 0x5c, 0x9d, 0x1a, 0x27, 0xa8, 0x64, 0x70,
+ 0x57, 0xe8, 0x24, 0x85, 0x0c, 0x2f, 0xaf, 0xca, 0xf6, 0x6e, 0x83, 0x09,
+};
+static const unsigned char kat3274_nonce[] = {
+ 0x28, 0x5a, 0x1b, 0x7b, 0xb6, 0x39, 0x3b, 0x5c, 0xb4, 0x92, 0xc0, 0x56,
+ 0x00, 0xd4, 0x43, 0x07,
+};
+static const unsigned char kat3274_persstr[] = {
+ 0x85, 0x1a, 0x9b, 0x5e, 0xf3, 0x4f, 0x1a, 0xa5, 0xa0, 0xe1, 0x05, 0xb5,
+ 0xb7, 0x12, 0xe1, 0xa6, 0xbb, 0xca, 0xa4, 0x75, 0x8a, 0x93, 0x70, 0x55,
+ 0x41, 0x93, 0x24, 0x78, 0xe3, 0xcf, 0x73, 0x5b,
+};
+static const unsigned char kat3274_entropyinpr1[] = {
+ 0xf5, 0x13, 0x4f, 0x41, 0x02, 0x05, 0x78, 0x7d, 0xbb, 0x66, 0xe5, 0x6b,
+ 0x99, 0xe9, 0x75, 0x4e, 0x09, 0xc1, 0xf5, 0x47, 0xaf, 0x7a, 0xdd, 0xa1,
+};
+static const unsigned char kat3274_addinpr1[] = {0};
+static const unsigned char kat3274_entropyinpr2[] = {
+ 0x61, 0x1a, 0x69, 0x88, 0x4b, 0xc0, 0xb0, 0xc0, 0xbc, 0x2c, 0xd6, 0x89,
+ 0x7b, 0xd4, 0xbf, 0x74, 0x13, 0x56, 0xaf, 0x16, 0xe6, 0x7d, 0x65, 0xcd,
+};
+static const unsigned char kat3274_addinpr2[] = {0};
+static const unsigned char kat3274_retbits[] = {
+ 0x34, 0xf1, 0x08, 0x48, 0xee, 0xaf, 0x81, 0xd3, 0x68, 0x12, 0xe6, 0xf9,
+ 0xee, 0xc7, 0x71, 0xf9, 0x91, 0xe9, 0xb3, 0xb0, 0x50, 0xfd, 0x60, 0xf6,
+ 0xd0, 0xeb, 0x79, 0xc2, 0x89, 0x99, 0x0c, 0x85, 0x90, 0x3b, 0x81, 0x90,
+ 0x59, 0xd5, 0x99, 0x06, 0x89, 0xaf, 0x12, 0x20, 0x14, 0xc7, 0xad, 0x4a,
+ 0x69, 0xef, 0xe6, 0x8d, 0xf4, 0xcc, 0xb4, 0x3f, 0xfd, 0x8f, 0x98, 0xb2,
+ 0x69, 0xbc, 0xbb, 0x34,
+};
+static const struct drbg_kat_pr_true kat3274_t = {
+ 3, kat3274_entropyin, kat3274_nonce, kat3274_persstr,
+ kat3274_entropyinpr1, kat3274_addinpr1, kat3274_entropyinpr2,
+ kat3274_addinpr2, kat3274_retbits
+};
+static const struct drbg_kat kat3274 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3274_t
+};
+
+static const unsigned char kat3275_entropyin[] = {
+ 0x52, 0xcf, 0xe3, 0x22, 0xd7, 0x65, 0x6c, 0x27, 0xd7, 0x43, 0x42, 0xb3,
+ 0xc9, 0x2f, 0x32, 0xab, 0x3e, 0xc3, 0x94, 0x34, 0xc8, 0xcb, 0x6e, 0x76,
+};
+static const unsigned char kat3275_nonce[] = {
+ 0xcb, 0x0d, 0x3e, 0x58, 0x67, 0x13, 0x3f, 0x12, 0x8c, 0x32, 0x33, 0x23,
+ 0x09, 0x0f, 0x88, 0x65,
+};
+static const unsigned char kat3275_persstr[] = {
+ 0x70, 0xf9, 0xab, 0x2a, 0xb3, 0xd9, 0xb1, 0x3c, 0xa9, 0x1f, 0x84, 0xb3,
+ 0xb2, 0xeb, 0xd5, 0x5c, 0x9d, 0xfb, 0xf1, 0xe9, 0x71, 0x36, 0x7c, 0x93,
+ 0xef, 0x20, 0x3d, 0x46, 0x8e, 0xbe, 0xc7, 0x0e,
+};
+static const unsigned char kat3275_entropyinpr1[] = {
+ 0x6c, 0x09, 0x0c, 0xb8, 0xde, 0xbf, 0xb3, 0x23, 0xbd, 0xda, 0xda, 0x16,
+ 0x46, 0x9c, 0x38, 0xb7, 0x5e, 0xd0, 0xb0, 0x75, 0x67, 0x32, 0x58, 0x4b,
+};
+static const unsigned char kat3275_addinpr1[] = {0};
+static const unsigned char kat3275_entropyinpr2[] = {
+ 0xc6, 0x0d, 0x6a, 0xb3, 0xa7, 0x1f, 0x7d, 0x48, 0xfc, 0x4d, 0x5a, 0x91,
+ 0x17, 0x6e, 0xa8, 0x64, 0xf0, 0x33, 0x51, 0xa8, 0xfd, 0x4b, 0x1f, 0x4d,
+};
+static const unsigned char kat3275_addinpr2[] = {0};
+static const unsigned char kat3275_retbits[] = {
+ 0x1a, 0xa9, 0x74, 0xf5, 0x64, 0xab, 0x2b, 0x58, 0xb9, 0x28, 0xd4, 0x41,
+ 0x08, 0xe9, 0x29, 0x4d, 0x48, 0xad, 0xa9, 0x84, 0x31, 0x61, 0x0a, 0x7e,
+ 0x57, 0xc6, 0xdd, 0xbc, 0xd9, 0x42, 0x3d, 0x96, 0x56, 0xed, 0x09, 0x69,
+ 0x58, 0x32, 0xd4, 0xaa, 0xae, 0x6b, 0x01, 0xba, 0x60, 0x9a, 0xbf, 0x46,
+ 0xbf, 0x5c, 0x22, 0xb1, 0x8d, 0xe0, 0x13, 0x88, 0x82, 0x84, 0x2a, 0x77,
+ 0x53, 0x9a, 0xdc, 0x6f,
+};
+static const struct drbg_kat_pr_true kat3275_t = {
+ 4, kat3275_entropyin, kat3275_nonce, kat3275_persstr,
+ kat3275_entropyinpr1, kat3275_addinpr1, kat3275_entropyinpr2,
+ kat3275_addinpr2, kat3275_retbits
+};
+static const struct drbg_kat kat3275 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3275_t
+};
+
+static const unsigned char kat3276_entropyin[] = {
+ 0xf5, 0xd5, 0xf5, 0xfd, 0x63, 0x80, 0xdb, 0x66, 0x35, 0xe0, 0x10, 0xaa,
+ 0x60, 0xbe, 0x31, 0x37, 0x4b, 0xe3, 0x5f, 0x30, 0x53, 0x1f, 0x87, 0x82,
+};
+static const unsigned char kat3276_nonce[] = {
+ 0xe6, 0xcd, 0xc1, 0x03, 0x69, 0x9f, 0x16, 0xd2, 0x23, 0x42, 0x68, 0x3e,
+ 0x9a, 0x4e, 0xd6, 0x78,
+};
+static const unsigned char kat3276_persstr[] = {
+ 0x4a, 0x3c, 0x58, 0xb1, 0x80, 0x2e, 0xd2, 0x1b, 0xee, 0xa8, 0x7d, 0xab,
+ 0xf3, 0x7a, 0x7f, 0x7d, 0xae, 0xa6, 0xf6, 0x9c, 0xb0, 0x02, 0x7f, 0xea,
+ 0x1a, 0x7a, 0x76, 0xdf, 0x00, 0xd2, 0xa3, 0x43,
+};
+static const unsigned char kat3276_entropyinpr1[] = {
+ 0xe2, 0xe9, 0x5d, 0xce, 0xba, 0x00, 0xaf, 0xbe, 0xd3, 0xb1, 0x13, 0x76,
+ 0xb3, 0x2a, 0xa2, 0xc7, 0x0d, 0xa4, 0xed, 0xa3, 0xce, 0xa2, 0x93, 0x39,
+};
+static const unsigned char kat3276_addinpr1[] = {0};
+static const unsigned char kat3276_entropyinpr2[] = {
+ 0x33, 0xa9, 0x04, 0x92, 0x49, 0x7e, 0x57, 0xea, 0x3f, 0x92, 0x6a, 0x73,
+ 0xb7, 0x4a, 0x12, 0x25, 0xc0, 0x0e, 0x3f, 0x77, 0x49, 0xc3, 0xc0, 0x4c,
+};
+static const unsigned char kat3276_addinpr2[] = {0};
+static const unsigned char kat3276_retbits[] = {
+ 0x09, 0x7e, 0xa7, 0x16, 0x5e, 0x4b, 0x43, 0xf2, 0x16, 0x4d, 0xef, 0x00,
+ 0x44, 0x8c, 0x3b, 0x9b, 0xeb, 0x4d, 0x61, 0x1f, 0xab, 0x71, 0xf9, 0x01,
+ 0xaa, 0xea, 0x61, 0xcb, 0x76, 0xf7, 0x88, 0x1d, 0xd9, 0xe7, 0x06, 0x1f,
+ 0xd1, 0xcb, 0xfd, 0xe0, 0xe5, 0xca, 0x3c, 0x31, 0x3e, 0x0c, 0x24, 0x70,
+ 0xd0, 0x2f, 0x7a, 0x11, 0xdf, 0x7e, 0x8a, 0xe3, 0xda, 0x4b, 0x4f, 0x39,
+ 0x53, 0x9a, 0x2b, 0xb2,
+};
+static const struct drbg_kat_pr_true kat3276_t = {
+ 5, kat3276_entropyin, kat3276_nonce, kat3276_persstr,
+ kat3276_entropyinpr1, kat3276_addinpr1, kat3276_entropyinpr2,
+ kat3276_addinpr2, kat3276_retbits
+};
+static const struct drbg_kat kat3276 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3276_t
+};
+
+static const unsigned char kat3277_entropyin[] = {
+ 0xb1, 0x9e, 0x03, 0x7c, 0xb4, 0x28, 0x30, 0x3d, 0x9e, 0xba, 0x53, 0xa4,
+ 0x92, 0x66, 0x15, 0x31, 0xa6, 0x9b, 0x50, 0x62, 0xbe, 0x81, 0xe5, 0x6b,
+};
+static const unsigned char kat3277_nonce[] = {
+ 0x97, 0x44, 0xba, 0x5f, 0x7b, 0xfa, 0x2c, 0xa9, 0x5b, 0x07, 0x4a, 0x04,
+ 0xb1, 0xed, 0x4c, 0xab,
+};
+static const unsigned char kat3277_persstr[] = {
+ 0xce, 0x22, 0x46, 0xe4, 0xba, 0x1d, 0xd7, 0xc2, 0xc4, 0x71, 0x6b, 0xb9,
+ 0xe6, 0x45, 0x19, 0x28, 0xb4, 0xcb, 0x4b, 0xbe, 0x00, 0xbf, 0xa1, 0x75,
+ 0x5a, 0xd4, 0x70, 0x85, 0xdf, 0x3b, 0x0f, 0xa9,
+};
+static const unsigned char kat3277_entropyinpr1[] = {
+ 0x40, 0xf6, 0xef, 0xc0, 0xbd, 0x66, 0xbf, 0x56, 0x49, 0x32, 0x34, 0x93,
+ 0xb5, 0x29, 0xc9, 0x8c, 0xf2, 0xa8, 0x12, 0xc4, 0x79, 0x5c, 0xd4, 0x42,
+};
+static const unsigned char kat3277_addinpr1[] = {0};
+static const unsigned char kat3277_entropyinpr2[] = {
+ 0x08, 0x07, 0x39, 0xc7, 0xaf, 0x62, 0xe5, 0x80, 0xab, 0x5f, 0xb9, 0x39,
+ 0x7b, 0x95, 0x1d, 0x23, 0x60, 0x33, 0x05, 0xf8, 0xf6, 0x5d, 0x1b, 0x01,
+};
+static const unsigned char kat3277_addinpr2[] = {0};
+static const unsigned char kat3277_retbits[] = {
+ 0x71, 0x14, 0x3f, 0xa8, 0xa8, 0x68, 0x3c, 0xb4, 0xb8, 0x46, 0xed, 0xb1,
+ 0x0d, 0x63, 0xad, 0x4f, 0xa9, 0xb2, 0x1c, 0xce, 0x2f, 0x78, 0x44, 0x21,
+ 0xd5, 0x15, 0x4e, 0xa6, 0x11, 0x0a, 0x03, 0xd4, 0x68, 0x79, 0x1a, 0x51,
+ 0x65, 0x62, 0xd1, 0x35, 0x30, 0x73, 0x68, 0x64, 0x5c, 0x48, 0xd1, 0x4f,
+ 0x95, 0xf7, 0xc9, 0xc6, 0xa3, 0x9c, 0xe5, 0xf7, 0x6b, 0x56, 0xfc, 0x73,
+ 0x22, 0x71, 0xc2, 0x2f,
+};
+static const struct drbg_kat_pr_true kat3277_t = {
+ 6, kat3277_entropyin, kat3277_nonce, kat3277_persstr,
+ kat3277_entropyinpr1, kat3277_addinpr1, kat3277_entropyinpr2,
+ kat3277_addinpr2, kat3277_retbits
+};
+static const struct drbg_kat kat3277 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3277_t
+};
+
+static const unsigned char kat3278_entropyin[] = {
+ 0xdf, 0xc4, 0x5c, 0x9f, 0x7d, 0x3e, 0x50, 0x99, 0xc7, 0xde, 0x9d, 0x3c,
+ 0x52, 0x61, 0xc0, 0x50, 0x49, 0xdf, 0xb2, 0x53, 0xf7, 0xc3, 0x3a, 0x81,
+};
+static const unsigned char kat3278_nonce[] = {
+ 0x2c, 0xf2, 0xa2, 0x39, 0x5f, 0x32, 0x95, 0x09, 0x5d, 0x9b, 0xad, 0x0f,
+ 0xcf, 0xd9, 0x86, 0x19,
+};
+static const unsigned char kat3278_persstr[] = {
+ 0xa1, 0x9a, 0x02, 0x3f, 0xbf, 0xad, 0x56, 0x69, 0x50, 0xbd, 0xf6, 0xea,
+ 0x53, 0x78, 0x31, 0xad, 0xe3, 0x48, 0xf2, 0x56, 0x5f, 0x45, 0x9a, 0x0f,
+ 0x1b, 0x6a, 0xdc, 0x0d, 0xae, 0x8d, 0x52, 0x23,
+};
+static const unsigned char kat3278_entropyinpr1[] = {
+ 0xa2, 0xa7, 0x0e, 0xa0, 0x34, 0x84, 0x0b, 0xcc, 0x36, 0xf6, 0x68, 0xee,
+ 0x81, 0xfd, 0x6b, 0x95, 0x2c, 0x63, 0x72, 0x57, 0x26, 0xe7, 0x5b, 0x04,
+};
+static const unsigned char kat3278_addinpr1[] = {0};
+static const unsigned char kat3278_entropyinpr2[] = {
+ 0x03, 0x41, 0xcd, 0x4a, 0x43, 0x76, 0x50, 0x1f, 0x0d, 0x9b, 0xb4, 0x7a,
+ 0x02, 0x0a, 0x91, 0x2f, 0xb0, 0x5b, 0x95, 0x67, 0x9b, 0x29, 0x43, 0x6a,
+};
+static const unsigned char kat3278_addinpr2[] = {0};
+static const unsigned char kat3278_retbits[] = {
+ 0xbc, 0x1a, 0x64, 0x46, 0x46, 0x9b, 0xb1, 0xc8, 0x22, 0x5a, 0x1e, 0xff,
+ 0xb5, 0x76, 0xb5, 0x6f, 0xda, 0x18, 0x9d, 0xee, 0x2b, 0x59, 0x97, 0x08,
+ 0x1f, 0x74, 0x72, 0x69, 0x2f, 0x05, 0xd4, 0x50, 0x02, 0xd4, 0x34, 0xd2,
+ 0x93, 0x63, 0x71, 0x65, 0xb6, 0xea, 0x4c, 0x5c, 0x5c, 0x98, 0xad, 0x07,
+ 0x19, 0xdf, 0x35, 0x35, 0x6d, 0xc0, 0x1b, 0x44, 0x56, 0x4f, 0x40, 0xc9,
+ 0xb8, 0x43, 0x71, 0x26,
+};
+static const struct drbg_kat_pr_true kat3278_t = {
+ 7, kat3278_entropyin, kat3278_nonce, kat3278_persstr,
+ kat3278_entropyinpr1, kat3278_addinpr1, kat3278_entropyinpr2,
+ kat3278_addinpr2, kat3278_retbits
+};
+static const struct drbg_kat kat3278 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3278_t
+};
+
+static const unsigned char kat3279_entropyin[] = {
+ 0x84, 0x72, 0x86, 0xaf, 0x63, 0x34, 0x13, 0x41, 0x73, 0x33, 0x6e, 0x76,
+ 0x8f, 0x29, 0x3e, 0x5f, 0xdb, 0x28, 0xd9, 0xf4, 0x6a, 0x66, 0xbb, 0xdd,
+};
+static const unsigned char kat3279_nonce[] = {
+ 0x16, 0x93, 0x37, 0x1b, 0x49, 0xe4, 0xe6, 0x7b, 0xc0, 0xc9, 0xcc, 0xff,
+ 0xf7, 0xa4, 0xb5, 0x02,
+};
+static const unsigned char kat3279_persstr[] = {
+ 0xdd, 0xa2, 0x3c, 0x77, 0x30, 0x04, 0xb4, 0x6b, 0xbe, 0x2a, 0x0f, 0x88,
+ 0xd2, 0xa8, 0x91, 0xa1, 0x7e, 0x0f, 0x05, 0xad, 0x12, 0x42, 0x1b, 0x36,
+ 0x42, 0xe4, 0x30, 0xac, 0xf0, 0xd7, 0x3c, 0xef,
+};
+static const unsigned char kat3279_entropyinpr1[] = {
+ 0xa8, 0x2c, 0xba, 0x0b, 0x17, 0x7f, 0xd6, 0x18, 0x46, 0x3b, 0xc7, 0xcb,
+ 0xf0, 0x61, 0x9f, 0x48, 0x47, 0x79, 0x64, 0xee, 0x5d, 0x93, 0x09, 0x5d,
+};
+static const unsigned char kat3279_addinpr1[] = {0};
+static const unsigned char kat3279_entropyinpr2[] = {
+ 0xd7, 0x89, 0x2d, 0xcc, 0x82, 0x82, 0xcc, 0x92, 0x07, 0x68, 0x5d, 0x05,
+ 0xbf, 0x73, 0x0c, 0xbd, 0x83, 0xc7, 0x67, 0x3a, 0x68, 0x82, 0xff, 0x3c,
+};
+static const unsigned char kat3279_addinpr2[] = {0};
+static const unsigned char kat3279_retbits[] = {
+ 0x2f, 0x42, 0x71, 0x39, 0xaa, 0x90, 0xfb, 0x12, 0xf1, 0x27, 0xaa, 0xe6,
+ 0xce, 0x72, 0x6c, 0x9e, 0x8d, 0xb6, 0xbb, 0x60, 0x7f, 0x4c, 0x22, 0x43,
+ 0x08, 0x15, 0x73, 0x03, 0xc8, 0xf9, 0xcc, 0x54, 0x54, 0x99, 0x1f, 0x4e,
+ 0xf1, 0xa4, 0x1c, 0xf1, 0x66, 0x8a, 0x26, 0xec, 0xf5, 0x90, 0x09, 0x33,
+ 0xe8, 0xe4, 0x77, 0x18, 0xaa, 0xa4, 0x5b, 0xb3, 0x99, 0xa0, 0xe9, 0x5a,
+ 0x4f, 0xd9, 0x40, 0x87,
+};
+static const struct drbg_kat_pr_true kat3279_t = {
+ 8, kat3279_entropyin, kat3279_nonce, kat3279_persstr,
+ kat3279_entropyinpr1, kat3279_addinpr1, kat3279_entropyinpr2,
+ kat3279_addinpr2, kat3279_retbits
+};
+static const struct drbg_kat kat3279 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3279_t
+};
+
+static const unsigned char kat3280_entropyin[] = {
+ 0x3b, 0x45, 0xba, 0x62, 0x83, 0x4f, 0x1a, 0xab, 0xf5, 0x99, 0xa5, 0xbd,
+ 0xc7, 0x3d, 0xda, 0x9f, 0x6b, 0x24, 0x86, 0x0e, 0x02, 0x4c, 0x45, 0x0f,
+};
+static const unsigned char kat3280_nonce[] = {
+ 0x87, 0x94, 0x02, 0x14, 0x37, 0x25, 0x69, 0xc0, 0x33, 0xfa, 0xaf, 0xb7,
+ 0x0f, 0x95, 0x5a, 0x98,
+};
+static const unsigned char kat3280_persstr[] = {
+ 0xc8, 0xe9, 0x0a, 0x16, 0xfe, 0x1c, 0xdb, 0x85, 0xa5, 0x22, 0xd1, 0xba,
+ 0x8d, 0x81, 0xc7, 0x35, 0xe1, 0x40, 0xd7, 0x1f, 0x0f, 0x1e, 0xad, 0x65,
+ 0xe6, 0x1d, 0xb2, 0x31, 0x8a, 0x7c, 0xd3, 0x6c,
+};
+static const unsigned char kat3280_entropyinpr1[] = {
+ 0xfb, 0x08, 0xa8, 0xf8, 0x20, 0x65, 0x9d, 0xe3, 0xc3, 0x78, 0x45, 0x10,
+ 0xd1, 0xa9, 0xc1, 0x51, 0xfb, 0xa6, 0xe1, 0x4d, 0xe7, 0x54, 0xd8, 0x2b,
+};
+static const unsigned char kat3280_addinpr1[] = {0};
+static const unsigned char kat3280_entropyinpr2[] = {
+ 0x0b, 0x47, 0xe9, 0x28, 0x0b, 0xd5, 0x63, 0x9c, 0x39, 0x4d, 0x18, 0x26,
+ 0x50, 0x35, 0x9d, 0x9b, 0xb5, 0xc9, 0xa8, 0x6f, 0xf0, 0x8b, 0xbf, 0xd5,
+};
+static const unsigned char kat3280_addinpr2[] = {0};
+static const unsigned char kat3280_retbits[] = {
+ 0x5d, 0xd8, 0x49, 0xe1, 0xd5, 0x57, 0x4a, 0x93, 0x57, 0x0f, 0x05, 0x58,
+ 0x9a, 0x03, 0x07, 0xf7, 0xf1, 0xc7, 0xbf, 0x8f, 0xf3, 0xe8, 0x6e, 0x02,
+ 0x6a, 0x85, 0xbc, 0x88, 0xaa, 0x10, 0xf2, 0x1d, 0x7a, 0xfd, 0xf6, 0x0e,
+ 0x9f, 0x45, 0xcd, 0x6a, 0xfd, 0x6e, 0xcc, 0x34, 0xd1, 0xe5, 0x54, 0x32,
+ 0x83, 0x98, 0x44, 0x98, 0x72, 0x0f, 0x6c, 0x73, 0xb0, 0x37, 0x6e, 0x25,
+ 0x12, 0x3f, 0xcd, 0xe3,
+};
+static const struct drbg_kat_pr_true kat3280_t = {
+ 9, kat3280_entropyin, kat3280_nonce, kat3280_persstr,
+ kat3280_entropyinpr1, kat3280_addinpr1, kat3280_entropyinpr2,
+ kat3280_addinpr2, kat3280_retbits
+};
+static const struct drbg_kat kat3280 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3280_t
+};
+
+static const unsigned char kat3281_entropyin[] = {
+ 0xc6, 0x8e, 0x25, 0x57, 0xaa, 0x50, 0xdc, 0xfd, 0x10, 0xf3, 0xde, 0xa4,
+ 0xcb, 0xa2, 0x3e, 0x11, 0xe0, 0x41, 0x5e, 0x32, 0xcd, 0xed, 0x6a, 0x6b,
+};
+static const unsigned char kat3281_nonce[] = {
+ 0x67, 0x0c, 0x96, 0x0e, 0xea, 0xad, 0x33, 0x1a, 0x21, 0x21, 0x89, 0xe6,
+ 0xb5, 0xe0, 0xdf, 0xa8,
+};
+static const unsigned char kat3281_persstr[] = {
+ 0xfd, 0x11, 0xd1, 0x15, 0xad, 0x41, 0xb9, 0xa8, 0x3e, 0xfe, 0x71, 0x24,
+ 0x40, 0xd1, 0xa6, 0x2b, 0x1b, 0xa6, 0x53, 0x96, 0xd8, 0xbf, 0xfe, 0x19,
+ 0x7b, 0x00, 0xc3, 0x69, 0xf2, 0x94, 0x69, 0x6e,
+};
+static const unsigned char kat3281_entropyinpr1[] = {
+ 0xa4, 0x5e, 0x0f, 0x78, 0xb7, 0xfe, 0xf9, 0x40, 0xc7, 0x6f, 0x9c, 0x3a,
+ 0x59, 0x4c, 0x34, 0x1a, 0xce, 0x3c, 0x43, 0x01, 0xf5, 0x69, 0xa2, 0x82,
+};
+static const unsigned char kat3281_addinpr1[] = {0};
+static const unsigned char kat3281_entropyinpr2[] = {
+ 0x8c, 0x2f, 0x45, 0xc9, 0x77, 0x38, 0x4d, 0xa6, 0x6a, 0xa8, 0xeb, 0xf5,
+ 0xaa, 0xd9, 0x12, 0xb8, 0xe1, 0x1e, 0x0f, 0xa4, 0xb8, 0xda, 0x31, 0x2d,
+};
+static const unsigned char kat3281_addinpr2[] = {0};
+static const unsigned char kat3281_retbits[] = {
+ 0xa1, 0xad, 0x8c, 0x27, 0x83, 0x65, 0x39, 0xfb, 0x66, 0x8d, 0x26, 0x0e,
+ 0x71, 0x90, 0x48, 0xda, 0xcf, 0x7f, 0xd8, 0x42, 0x09, 0x31, 0xe8, 0x9d,
+ 0x66, 0x39, 0x0d, 0xd5, 0xb5, 0xc9, 0x52, 0x3a, 0x51, 0x10, 0x21, 0x69,
+ 0x6e, 0x9a, 0xd0, 0x62, 0x19, 0xda, 0xd2, 0x61, 0x56, 0xf4, 0xd3, 0x18,
+ 0xf5, 0x59, 0xf2, 0xc4, 0x0f, 0x72, 0x7d, 0x4f, 0xdd, 0x93, 0xea, 0x38,
+ 0xd9, 0x5b, 0xb7, 0xfb,
+};
+static const struct drbg_kat_pr_true kat3281_t = {
+ 10, kat3281_entropyin, kat3281_nonce, kat3281_persstr,
+ kat3281_entropyinpr1, kat3281_addinpr1, kat3281_entropyinpr2,
+ kat3281_addinpr2, kat3281_retbits
+};
+static const struct drbg_kat kat3281 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3281_t
+};
+
+static const unsigned char kat3282_entropyin[] = {
+ 0x5c, 0x40, 0x93, 0xa2, 0x20, 0xe4, 0xc4, 0x21, 0xb9, 0x56, 0x58, 0x86,
+ 0xc4, 0xcc, 0x22, 0x6c, 0xcb, 0xf1, 0x8d, 0x3e, 0x5c, 0x5e, 0xd4, 0x2d,
+};
+static const unsigned char kat3282_nonce[] = {
+ 0x66, 0x94, 0x3d, 0x61, 0x4e, 0xc9, 0xa4, 0x01, 0xee, 0x38, 0x94, 0xa4,
+ 0x27, 0x88, 0x96, 0xca,
+};
+static const unsigned char kat3282_persstr[] = {
+ 0x3e, 0x6d, 0xd0, 0x41, 0x12, 0x84, 0x38, 0xa2, 0x66, 0xda, 0x29, 0xf5,
+ 0xca, 0x66, 0xf3, 0x87, 0x89, 0x45, 0x23, 0xdc, 0x7f, 0x30, 0x63, 0xc7,
+ 0x75, 0xd5, 0xaf, 0x40, 0xa8, 0xa6, 0x87, 0x69,
+};
+static const unsigned char kat3282_entropyinpr1[] = {
+ 0xf2, 0x0a, 0x83, 0xcf, 0xec, 0x42, 0xc8, 0xa3, 0xb5, 0x84, 0xa8, 0x34,
+ 0xbe, 0x7d, 0x6b, 0xdf, 0x3c, 0x89, 0x0a, 0x39, 0x98, 0xda, 0x22, 0x0b,
+};
+static const unsigned char kat3282_addinpr1[] = {0};
+static const unsigned char kat3282_entropyinpr2[] = {
+ 0x43, 0xef, 0x2a, 0xed, 0xd2, 0xf6, 0x65, 0xf1, 0x78, 0x42, 0xa1, 0x2a,
+ 0x1c, 0x2d, 0xbb, 0x0d, 0xba, 0x2e, 0xa9, 0x88, 0xfa, 0xd3, 0xd4, 0x40,
+};
+static const unsigned char kat3282_addinpr2[] = {0};
+static const unsigned char kat3282_retbits[] = {
+ 0x53, 0x15, 0x1c, 0xe9, 0x40, 0xc2, 0x81, 0xaf, 0x83, 0x64, 0x93, 0x89,
+ 0x59, 0x90, 0xa3, 0x65, 0x1d, 0xc1, 0xb2, 0x8d, 0x45, 0x96, 0xbc, 0xde,
+ 0xbe, 0x0b, 0x5d, 0xcd, 0xc9, 0x32, 0x4f, 0x2f, 0x58, 0x53, 0x0d, 0xd3,
+ 0xea, 0x48, 0xf0, 0x2a, 0x26, 0x3e, 0xe3, 0x6b, 0x86, 0xac, 0xa8, 0x98,
+ 0x6e, 0x90, 0x05, 0x89, 0xd9, 0xed, 0x2f, 0x8f, 0x2f, 0xea, 0x98, 0x7b,
+ 0x6b, 0x08, 0xbf, 0x00,
+};
+static const struct drbg_kat_pr_true kat3282_t = {
+ 11, kat3282_entropyin, kat3282_nonce, kat3282_persstr,
+ kat3282_entropyinpr1, kat3282_addinpr1, kat3282_entropyinpr2,
+ kat3282_addinpr2, kat3282_retbits
+};
+static const struct drbg_kat kat3282 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3282_t
+};
+
+static const unsigned char kat3283_entropyin[] = {
+ 0xb1, 0x07, 0x4c, 0xa2, 0xb2, 0x20, 0x03, 0xe3, 0x19, 0x25, 0xa5, 0x4b,
+ 0xba, 0xf3, 0xc1, 0x8e, 0xa9, 0x79, 0x58, 0x73, 0x4f, 0xf7, 0x25, 0x6e,
+};
+static const unsigned char kat3283_nonce[] = {
+ 0xac, 0xb5, 0x89, 0xa2, 0xdf, 0x45, 0x32, 0xfc, 0x97, 0xe6, 0x4b, 0x43,
+ 0xeb, 0x9f, 0x91, 0x54,
+};
+static const unsigned char kat3283_persstr[] = {
+ 0xe9, 0x92, 0x8b, 0x8a, 0xe0, 0x07, 0xf1, 0xc1, 0x57, 0x5a, 0xab, 0x97,
+ 0x23, 0xca, 0xd0, 0xaf, 0x83, 0xd5, 0xd4, 0xce, 0xe3, 0x06, 0xde, 0x44,
+ 0x7b, 0x50, 0x95, 0xa2, 0x12, 0x74, 0xdb, 0x6d,
+};
+static const unsigned char kat3283_entropyinpr1[] = {
+ 0x73, 0x2d, 0x0d, 0x31, 0x37, 0xfb, 0xc8, 0x6b, 0x6e, 0xb1, 0xfd, 0x51,
+ 0x0b, 0x3d, 0x2d, 0x63, 0x71, 0xfe, 0xc3, 0xa3, 0x4f, 0x49, 0xae, 0x67,
+};
+static const unsigned char kat3283_addinpr1[] = {0};
+static const unsigned char kat3283_entropyinpr2[] = {
+ 0x2f, 0x5a, 0xef, 0xcd, 0x00, 0x09, 0xa1, 0xc9, 0x76, 0x44, 0x8a, 0x25,
+ 0xda, 0x51, 0x48, 0xc7, 0x70, 0xac, 0xaa, 0x74, 0x2d, 0x05, 0xcb, 0x1c,
+};
+static const unsigned char kat3283_addinpr2[] = {0};
+static const unsigned char kat3283_retbits[] = {
+ 0xf2, 0xe8, 0x4b, 0x27, 0x1e, 0x88, 0xb2, 0x7b, 0xd2, 0xd7, 0xc1, 0xd9,
+ 0x66, 0x11, 0x54, 0xfc, 0x21, 0x67, 0xdc, 0x29, 0xae, 0xea, 0xeb, 0x71,
+ 0xb8, 0x3c, 0x09, 0xc0, 0xca, 0x65, 0xc0, 0xdd, 0x86, 0xe7, 0x96, 0x16,
+ 0x63, 0x7f, 0x12, 0x2a, 0xc7, 0x7d, 0x4c, 0xd5, 0x79, 0xda, 0xaf, 0xdd,
+ 0x0e, 0xad, 0x71, 0x94, 0xcc, 0x3a, 0xab, 0x90, 0xfb, 0xb3, 0x2a, 0xc6,
+ 0x52, 0x48, 0x84, 0x83,
+};
+static const struct drbg_kat_pr_true kat3283_t = {
+ 12, kat3283_entropyin, kat3283_nonce, kat3283_persstr,
+ kat3283_entropyinpr1, kat3283_addinpr1, kat3283_entropyinpr2,
+ kat3283_addinpr2, kat3283_retbits
+};
+static const struct drbg_kat kat3283 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3283_t
+};
+
+static const unsigned char kat3284_entropyin[] = {
+ 0x6d, 0x10, 0x03, 0x75, 0x5e, 0xf6, 0x6e, 0x7c, 0xa5, 0x07, 0x29, 0x6a,
+ 0x49, 0xc2, 0x9e, 0x63, 0xa0, 0xc8, 0x9e, 0x9e, 0xdb, 0xf3, 0x39, 0xc5,
+};
+static const unsigned char kat3284_nonce[] = {
+ 0x91, 0x77, 0x98, 0x84, 0x9e, 0xf0, 0xba, 0xe4, 0xfb, 0x48, 0x20, 0x20,
+ 0x67, 0x70, 0x17, 0xbd,
+};
+static const unsigned char kat3284_persstr[] = {
+ 0x50, 0x7a, 0x71, 0x49, 0xc6, 0x4e, 0xf8, 0xe3, 0xef, 0xf9, 0x71, 0x8b,
+ 0x30, 0x6a, 0xba, 0xae, 0x9f, 0x8b, 0xb2, 0x08, 0xfb, 0x0d, 0x18, 0x7b,
+ 0x3b, 0x94, 0x4b, 0xd4, 0x10, 0xd2, 0x3f, 0x96,
+};
+static const unsigned char kat3284_entropyinpr1[] = {
+ 0x22, 0xd8, 0xc9, 0x94, 0x29, 0x8c, 0x23, 0x68, 0xe8, 0x6e, 0x91, 0xd3,
+ 0x9e, 0xf8, 0x35, 0x82, 0xd0, 0x59, 0x64, 0xeb, 0x9c, 0x16, 0xee, 0x5d,
+};
+static const unsigned char kat3284_addinpr1[] = {0};
+static const unsigned char kat3284_entropyinpr2[] = {
+ 0xce, 0xb3, 0xdc, 0xd6, 0xc6, 0xb9, 0xfa, 0xfd, 0xcb, 0x6b, 0x1d, 0xc9,
+ 0xa1, 0x89, 0x5b, 0x1b, 0x54, 0x00, 0xea, 0x7e, 0x17, 0x23, 0xfe, 0xaf,
+};
+static const unsigned char kat3284_addinpr2[] = {0};
+static const unsigned char kat3284_retbits[] = {
+ 0xd8, 0x6b, 0xc2, 0xe8, 0x5f, 0x4a, 0xd0, 0x7e, 0x1d, 0xc1, 0x55, 0x8c,
+ 0x8f, 0xcb, 0xf0, 0x12, 0xa8, 0xec, 0xeb, 0x4e, 0x33, 0x5a, 0xe0, 0x3a,
+ 0x56, 0xdf, 0x75, 0x80, 0xa1, 0x7c, 0xf4, 0x1a, 0x2c, 0xd1, 0x54, 0xd0,
+ 0x33, 0x67, 0x43, 0x8b, 0x7a, 0xae, 0x00, 0x79, 0x88, 0x89, 0x9e, 0x94,
+ 0x26, 0xc1, 0x71, 0x01, 0x5f, 0x6e, 0x63, 0x0c, 0xa7, 0xe7, 0x2c, 0x14,
+ 0x62, 0x07, 0x66, 0xe8,
+};
+static const struct drbg_kat_pr_true kat3284_t = {
+ 13, kat3284_entropyin, kat3284_nonce, kat3284_persstr,
+ kat3284_entropyinpr1, kat3284_addinpr1, kat3284_entropyinpr2,
+ kat3284_addinpr2, kat3284_retbits
+};
+static const struct drbg_kat kat3284 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3284_t
+};
+
+static const unsigned char kat3285_entropyin[] = {
+ 0x6d, 0xdd, 0x09, 0x4c, 0xbe, 0x5c, 0x5e, 0x53, 0xb6, 0x30, 0x72, 0xbe,
+ 0x3f, 0xb9, 0xac, 0xc2, 0xde, 0x5c, 0x92, 0xee, 0x53, 0x38, 0x75, 0x2f,
+};
+static const unsigned char kat3285_nonce[] = {
+ 0x47, 0x58, 0x54, 0x2a, 0x2f, 0xfc, 0x8c, 0x7c, 0x68, 0x72, 0xea, 0xc0,
+ 0x98, 0xb3, 0xd9, 0xdc,
+};
+static const unsigned char kat3285_persstr[] = {
+ 0x88, 0xec, 0x6c, 0x87, 0xc3, 0x37, 0x4b, 0xf2, 0x26, 0xa9, 0xe8, 0x4b,
+ 0x70, 0x7c, 0x24, 0x8d, 0x1b, 0xfa, 0xea, 0xe7, 0xd3, 0x21, 0x7e, 0x43,
+ 0x98, 0xfc, 0xcf, 0x4d, 0x57, 0x68, 0xd8, 0xd5,
+};
+static const unsigned char kat3285_entropyinpr1[] = {
+ 0x22, 0x1d, 0xac, 0xa8, 0x41, 0x6e, 0xb1, 0xad, 0x4f, 0x1e, 0x30, 0x2e,
+ 0x7b, 0x97, 0x42, 0xc9, 0x30, 0x8b, 0xdf, 0xe2, 0x9a, 0xdf, 0x0b, 0x66,
+};
+static const unsigned char kat3285_addinpr1[] = {0};
+static const unsigned char kat3285_entropyinpr2[] = {
+ 0x58, 0xb0, 0xa7, 0x82, 0x8c, 0x20, 0x55, 0xbf, 0xc8, 0xb4, 0x95, 0x6e,
+ 0xea, 0xf4, 0xe5, 0x08, 0x5f, 0x4c, 0x45, 0xbb, 0x19, 0x41, 0x62, 0xf4,
+};
+static const unsigned char kat3285_addinpr2[] = {0};
+static const unsigned char kat3285_retbits[] = {
+ 0x0a, 0x06, 0x83, 0xf5, 0x1b, 0x1e, 0x6c, 0x52, 0x2d, 0x43, 0x61, 0x28,
+ 0xe4, 0xcc, 0x83, 0x68, 0x32, 0x8e, 0xca, 0xd4, 0x30, 0xea, 0x04, 0xfd,
+ 0x7b, 0x33, 0xf5, 0xac, 0xda, 0xd9, 0x0e, 0x9f, 0x30, 0x8d, 0x09, 0x5b,
+ 0x06, 0x8d, 0x58, 0x2d, 0xf5, 0x92, 0x7a, 0x61, 0x6a, 0x5a, 0xa6, 0x0d,
+ 0x10, 0x96, 0x82, 0x74, 0xed, 0xad, 0xab, 0xa3, 0x95, 0xcd, 0xd9, 0x3f,
+ 0xde, 0x50, 0xed, 0x58,
+};
+static const struct drbg_kat_pr_true kat3285_t = {
+ 14, kat3285_entropyin, kat3285_nonce, kat3285_persstr,
+ kat3285_entropyinpr1, kat3285_addinpr1, kat3285_entropyinpr2,
+ kat3285_addinpr2, kat3285_retbits
+};
+static const struct drbg_kat kat3285 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3285_t
+};
+
+static const unsigned char kat3286_entropyin[] = {
+ 0x33, 0x68, 0x42, 0x1d, 0x98, 0x5f, 0x7c, 0x82, 0x4c, 0x19, 0x0a, 0x09,
+ 0x26, 0x0e, 0x11, 0x6d, 0x39, 0x0d, 0x08, 0x4b, 0xc7, 0xf1, 0x96, 0x35,
+};
+static const unsigned char kat3286_nonce[] = {
+ 0xfe, 0x4c, 0x5e, 0xf9, 0x54, 0xe3, 0x90, 0x3f, 0x00, 0x6e, 0xa5, 0x23,
+ 0x31, 0xb7, 0x6b, 0xdb,
+};
+static const unsigned char kat3286_persstr[] = {
+ 0x25, 0x07, 0xc6, 0xd4, 0x64, 0xa4, 0x72, 0xf1, 0xb7, 0x4b, 0x30, 0xb3,
+ 0xd9, 0xf0, 0x28, 0x68, 0x24, 0x9e, 0x85, 0x09, 0x44, 0x37, 0xf4, 0x9c,
+ 0x7d, 0xac, 0xed, 0xd2, 0x83, 0x1b, 0x39, 0xc9,
+};
+static const unsigned char kat3286_entropyinpr1[] = {
+ 0xf4, 0x8e, 0x13, 0xc1, 0x7e, 0xc4, 0x5d, 0xe1, 0x49, 0x99, 0x8e, 0xd2,
+ 0xb6, 0x01, 0xa1, 0x8c, 0x3e, 0x39, 0x46, 0x96, 0x78, 0x13, 0xb4, 0xec,
+};
+static const unsigned char kat3286_addinpr1[] = {
+ 0x93, 0xbf, 0x05, 0x95, 0x4c, 0x98, 0xac, 0xca, 0xd2, 0x55, 0x96, 0x84,
+ 0x40, 0x41, 0x91, 0x3b, 0x36, 0x25, 0x93, 0x0a, 0x24, 0x14, 0xe0, 0x46,
+ 0xc0, 0x34, 0xe6, 0xfe, 0x40, 0xd0, 0x39, 0x64,
+};
+static const unsigned char kat3286_entropyinpr2[] = {
+ 0x78, 0x07, 0x75, 0x4a, 0x89, 0x85, 0xce, 0x95, 0x01, 0x21, 0x0a, 0xec,
+ 0x6b, 0x98, 0xf7, 0x56, 0x5b, 0x73, 0xf6, 0x8f, 0x23, 0xa2, 0xd4, 0xa9,
+};
+static const unsigned char kat3286_addinpr2[] = {
+ 0x81, 0x58, 0x68, 0xad, 0x1e, 0xff, 0x3c, 0x1f, 0x89, 0x62, 0xc6, 0x14,
+ 0x2d, 0xf8, 0x03, 0x7a, 0x47, 0xf7, 0x4b, 0xfc, 0x95, 0x7b, 0x33, 0x7f,
+ 0xde, 0xc8, 0x89, 0x90, 0x38, 0x7c, 0x14, 0xf3,
+};
+static const unsigned char kat3286_retbits[] = {
+ 0xab, 0x55, 0x79, 0x7e, 0x73, 0xb1, 0xcc, 0x1a, 0x5e, 0x3c, 0x66, 0x42,
+ 0xe0, 0x7f, 0x49, 0x51, 0x61, 0x82, 0xde, 0xf7, 0x81, 0x89, 0xc4, 0x1b,
+ 0x4d, 0x7b, 0x44, 0x3c, 0x5a, 0x48, 0x2e, 0x8b, 0x6c, 0xd9, 0xf2, 0xf4,
+ 0x28, 0xe8, 0x4a, 0x09, 0xbb, 0xea, 0x63, 0xb3, 0x8a, 0x63, 0x0d, 0xe7,
+ 0x3c, 0x84, 0x0b, 0x8e, 0x91, 0x93, 0x72, 0x8e, 0xa2, 0x83, 0x67, 0x8e,
+ 0xc4, 0xeb, 0xd6, 0xf3,
+};
+static const struct drbg_kat_pr_true kat3286_t = {
+ 0, kat3286_entropyin, kat3286_nonce, kat3286_persstr,
+ kat3286_entropyinpr1, kat3286_addinpr1, kat3286_entropyinpr2,
+ kat3286_addinpr2, kat3286_retbits
+};
+static const struct drbg_kat kat3286 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3286_t
+};
+
+static const unsigned char kat3287_entropyin[] = {
+ 0x09, 0xe2, 0xf3, 0x05, 0xe6, 0xb0, 0xff, 0xed, 0xa1, 0x88, 0x9e, 0x15,
+ 0x8a, 0x1c, 0x00, 0xc3, 0xa9, 0x7c, 0x53, 0xf5, 0x5c, 0x99, 0x91, 0xe5,
+};
+static const unsigned char kat3287_nonce[] = {
+ 0xaf, 0x1e, 0xf9, 0x44, 0x38, 0x89, 0x64, 0xa8, 0xbc, 0x96, 0xdf, 0x4a,
+ 0x26, 0x3b, 0xcd, 0x97,
+};
+static const unsigned char kat3287_persstr[] = {
+ 0xe2, 0xcc, 0x91, 0x93, 0xf3, 0xd9, 0xe6, 0x63, 0x12, 0xe4, 0xc7, 0x06,
+ 0x00, 0x73, 0x08, 0xf8, 0xfc, 0x33, 0xc4, 0x8f, 0xe0, 0x00, 0x89, 0x22,
+ 0xf2, 0x98, 0x68, 0x48, 0xd1, 0xab, 0xbd, 0x81,
+};
+static const unsigned char kat3287_entropyinpr1[] = {
+ 0x99, 0x87, 0xe1, 0x07, 0xbb, 0x04, 0x29, 0x37, 0xef, 0x1a, 0x43, 0x7c,
+ 0x6f, 0x42, 0xe7, 0x6d, 0xea, 0x85, 0xbc, 0xb3, 0x79, 0x67, 0x15, 0x1c,
+};
+static const unsigned char kat3287_addinpr1[] = {
+ 0xf9, 0x07, 0x7f, 0xf2, 0x65, 0x9d, 0xf4, 0x56, 0x41, 0xaa, 0x1f, 0x07,
+ 0xdc, 0x62, 0x48, 0x06, 0x4e, 0xc4, 0xf3, 0x0d, 0xa1, 0xb7, 0x4d, 0x2a,
+ 0x73, 0xd2, 0xdc, 0xf4, 0x4a, 0x71, 0x95, 0xb3,
+};
+static const unsigned char kat3287_entropyinpr2[] = {
+ 0xe9, 0x4a, 0xed, 0x66, 0x4f, 0x8d, 0x0d, 0xe1, 0x1c, 0x9a, 0x27, 0x02,
+ 0x5a, 0xef, 0xf2, 0x6d, 0x7b, 0x30, 0x37, 0x56, 0xe3, 0x7d, 0x0b, 0x29,
+};
+static const unsigned char kat3287_addinpr2[] = {
+ 0xd6, 0xb5, 0xca, 0x0a, 0x5a, 0x6a, 0xab, 0x8b, 0xfa, 0xb8, 0x00, 0x4a,
+ 0xce, 0x82, 0x7a, 0xb0, 0x61, 0xd8, 0x5a, 0xae, 0x31, 0x95, 0xc0, 0x76,
+ 0xe5, 0xfc, 0x6c, 0x2c, 0xe8, 0x82, 0xd4, 0xbe,
+};
+static const unsigned char kat3287_retbits[] = {
+ 0x36, 0x98, 0xb7, 0x54, 0xac, 0x77, 0x84, 0x0b, 0x00, 0x86, 0x15, 0x0a,
+ 0x0d, 0xa1, 0x72, 0x30, 0xe9, 0x40, 0xae, 0x95, 0x6e, 0x85, 0xdb, 0x64,
+ 0xa1, 0x3f, 0x08, 0xc0, 0xb8, 0x05, 0x57, 0xf9, 0x57, 0xd4, 0x55, 0x2a,
+ 0x90, 0x73, 0x9c, 0x8d, 0x1f, 0xcb, 0x48, 0x49, 0x14, 0x61, 0x2f, 0x8c,
+ 0x43, 0x8c, 0xec, 0xbc, 0xdc, 0xb2, 0x1e, 0x61, 0x9a, 0x9b, 0xb6, 0x6d,
+ 0x00, 0xb1, 0xac, 0xca,
+};
+static const struct drbg_kat_pr_true kat3287_t = {
+ 1, kat3287_entropyin, kat3287_nonce, kat3287_persstr,
+ kat3287_entropyinpr1, kat3287_addinpr1, kat3287_entropyinpr2,
+ kat3287_addinpr2, kat3287_retbits
+};
+static const struct drbg_kat kat3287 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3287_t
+};
+
+static const unsigned char kat3288_entropyin[] = {
+ 0xac, 0xf0, 0x15, 0xc0, 0xc8, 0xed, 0x60, 0x33, 0x0c, 0x81, 0xc8, 0xdb,
+ 0x62, 0xa5, 0xb4, 0x98, 0x34, 0x4a, 0x35, 0xcb, 0xac, 0x60, 0x29, 0x34,
+};
+static const unsigned char kat3288_nonce[] = {
+ 0x21, 0x4e, 0x49, 0x49, 0xe5, 0x97, 0x9c, 0x7a, 0x97, 0xc9, 0x39, 0x97,
+ 0xf8, 0x6e, 0xb9, 0x4e,
+};
+static const unsigned char kat3288_persstr[] = {
+ 0x5c, 0x95, 0xff, 0xa0, 0x2c, 0xa7, 0x2d, 0x74, 0x0b, 0x0e, 0x1a, 0xe6,
+ 0xb5, 0x79, 0x5f, 0xc3, 0x62, 0x06, 0x51, 0x99, 0x0d, 0x53, 0x0e, 0x02,
+ 0x03, 0x30, 0x6a, 0x41, 0x9e, 0x48, 0x66, 0x04,
+};
+static const unsigned char kat3288_entropyinpr1[] = {
+ 0xc7, 0x5d, 0x26, 0x37, 0x2e, 0x35, 0x81, 0xce, 0xc0, 0x13, 0x3c, 0x8b,
+ 0x78, 0x01, 0x42, 0x8e, 0x03, 0xb4, 0x8e, 0xc0, 0x3a, 0x5d, 0x44, 0xd0,
+};
+static const unsigned char kat3288_addinpr1[] = {
+ 0x55, 0x59, 0x41, 0xbf, 0x3e, 0x97, 0x7d, 0x2d, 0x14, 0xb3, 0xf3, 0x70,
+ 0x52, 0x7a, 0xe0, 0xc6, 0x47, 0x62, 0xd7, 0xba, 0x57, 0x9b, 0x07, 0xfe,
+ 0x1b, 0x04, 0x18, 0xda, 0xec, 0xb2, 0x99, 0x4b,
+};
+static const unsigned char kat3288_entropyinpr2[] = {
+ 0x95, 0x0e, 0xfb, 0x8a, 0xd7, 0xef, 0xd2, 0x6a, 0x9e, 0x98, 0x61, 0x09,
+ 0x34, 0x56, 0xf3, 0x82, 0x77, 0xff, 0x49, 0xe3, 0xf8, 0xff, 0xa6, 0x4b,
+};
+static const unsigned char kat3288_addinpr2[] = {
+ 0x73, 0x8b, 0x3b, 0xb3, 0xd7, 0x50, 0xda, 0xd9, 0x9a, 0x30, 0xdb, 0x3e,
+ 0xa4, 0xba, 0x32, 0x62, 0xad, 0xd3, 0xd7, 0x77, 0xf4, 0x50, 0xf2, 0x25,
+ 0x79, 0xe0, 0x47, 0xae, 0xfa, 0x11, 0xa0, 0xc0,
+};
+static const unsigned char kat3288_retbits[] = {
+ 0x81, 0x9b, 0xda, 0x49, 0x78, 0x5e, 0x3a, 0xeb, 0xda, 0xc4, 0xdf, 0xf5,
+ 0x36, 0x8b, 0x67, 0xec, 0x9f, 0x01, 0x87, 0x4a, 0x98, 0xe8, 0x5d, 0x6b,
+ 0xbd, 0x39, 0xb3, 0x61, 0x24, 0x00, 0x23, 0xe2, 0x80, 0x5d, 0x8a, 0xef,
+ 0x93, 0x76, 0xf3, 0x8f, 0xd9, 0x2a, 0xda, 0x43, 0xe3, 0x87, 0x38, 0xec,
+ 0x6b, 0xf1, 0x15, 0xf2, 0xf5, 0x93, 0xe8, 0x33, 0xf4, 0x90, 0xa0, 0xe0,
+ 0x43, 0x7b, 0x07, 0xd6,
+};
+static const struct drbg_kat_pr_true kat3288_t = {
+ 2, kat3288_entropyin, kat3288_nonce, kat3288_persstr,
+ kat3288_entropyinpr1, kat3288_addinpr1, kat3288_entropyinpr2,
+ kat3288_addinpr2, kat3288_retbits
+};
+static const struct drbg_kat kat3288 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3288_t
+};
+
+static const unsigned char kat3289_entropyin[] = {
+ 0x08, 0xa2, 0xc0, 0xb7, 0xee, 0xf6, 0x9f, 0xf3, 0xd0, 0x54, 0xbe, 0xa1,
+ 0x12, 0x02, 0x96, 0xeb, 0xff, 0xba, 0x74, 0x8a, 0x48, 0x86, 0xfa, 0x4d,
+};
+static const unsigned char kat3289_nonce[] = {
+ 0x07, 0x6f, 0xf8, 0xe4, 0xe0, 0xa3, 0x75, 0x85, 0x04, 0xc2, 0x68, 0xd4,
+ 0x5f, 0x2d, 0xad, 0x1a,
+};
+static const unsigned char kat3289_persstr[] = {
+ 0x65, 0x18, 0xe9, 0x4f, 0x40, 0xcd, 0x4a, 0x38, 0x89, 0xde, 0xdd, 0x5d,
+ 0xd4, 0x1b, 0xf4, 0x09, 0xcf, 0x1a, 0x4a, 0xb3, 0x97, 0xa9, 0xf1, 0x8a,
+ 0xfc, 0x37, 0x23, 0x09, 0x2a, 0x4e, 0xed, 0x0b,
+};
+static const unsigned char kat3289_entropyinpr1[] = {
+ 0x04, 0x9e, 0x00, 0x04, 0xfa, 0x74, 0xa2, 0xa9, 0x16, 0xde, 0xe5, 0xf9,
+ 0xcf, 0x16, 0x0b, 0x3c, 0x32, 0x7c, 0x71, 0x8d, 0x49, 0x64, 0xff, 0x0a,
+};
+static const unsigned char kat3289_addinpr1[] = {
+ 0xc8, 0xfe, 0xbb, 0xd0, 0x82, 0x32, 0xfb, 0xac, 0xd4, 0xb4, 0x8a, 0x5c,
+ 0xea, 0xa9, 0xe0, 0x56, 0x98, 0xc8, 0x9e, 0x12, 0xc5, 0xe8, 0x7b, 0xa1,
+ 0x4b, 0x9c, 0xb7, 0x5e, 0x60, 0x6a, 0x8a, 0x81,
+};
+static const unsigned char kat3289_entropyinpr2[] = {
+ 0x4b, 0x06, 0x0d, 0x85, 0x63, 0xc6, 0xfb, 0x96, 0x41, 0x90, 0x8f, 0xa4,
+ 0x27, 0xf9, 0x23, 0xbb, 0xfc, 0x1a, 0x77, 0xb1, 0x69, 0x00, 0x4f, 0xcb,
+};
+static const unsigned char kat3289_addinpr2[] = {
+ 0xa4, 0xd6, 0xba, 0x1f, 0x88, 0xa2, 0xe1, 0x8f, 0x2c, 0x85, 0x9d, 0x00,
+ 0x3f, 0xa6, 0xf1, 0x0c, 0x05, 0xee, 0x91, 0xe0, 0x9c, 0x5c, 0x30, 0x23,
+ 0x29, 0xb8, 0xe2, 0x91, 0x18, 0x90, 0x4c, 0xb0,
+};
+static const unsigned char kat3289_retbits[] = {
+ 0x84, 0x5e, 0xe6, 0x33, 0x6b, 0xf6, 0x9d, 0x28, 0xff, 0x1c, 0x5b, 0x1c,
+ 0x15, 0x5c, 0x28, 0x30, 0xf1, 0x6b, 0xc6, 0x3b, 0xaa, 0xec, 0x02, 0xa1,
+ 0xb1, 0xd8, 0x95, 0x22, 0x27, 0xdf, 0xa7, 0x2e, 0xdb, 0x37, 0x35, 0xaa,
+ 0x3e, 0x10, 0x73, 0xc3, 0x38, 0x87, 0x6e, 0x3e, 0x54, 0x66, 0x10, 0xff,
+ 0x75, 0x95, 0x0d, 0x39, 0x3a, 0x3d, 0x1d, 0x26, 0xb1, 0x15, 0x1a, 0xa9,
+ 0x7f, 0x70, 0x31, 0xa2,
+};
+static const struct drbg_kat_pr_true kat3289_t = {
+ 3, kat3289_entropyin, kat3289_nonce, kat3289_persstr,
+ kat3289_entropyinpr1, kat3289_addinpr1, kat3289_entropyinpr2,
+ kat3289_addinpr2, kat3289_retbits
+};
+static const struct drbg_kat kat3289 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3289_t
+};
+
+static const unsigned char kat3290_entropyin[] = {
+ 0x4e, 0x1b, 0xf3, 0xdd, 0xe3, 0x4e, 0xa2, 0xde, 0x16, 0x4c, 0x22, 0x4b,
+ 0x30, 0xb7, 0x0f, 0xb7, 0x41, 0x8d, 0x47, 0x08, 0xbd, 0xec, 0xc1, 0x63,
+};
+static const unsigned char kat3290_nonce[] = {
+ 0x53, 0x73, 0x20, 0xdc, 0x12, 0xc6, 0xdb, 0x73, 0x6b, 0x53, 0x73, 0x1f,
+ 0x90, 0x9a, 0x2f, 0x5e,
+};
+static const unsigned char kat3290_persstr[] = {
+ 0xd2, 0xdd, 0x5d, 0x00, 0xc6, 0xc4, 0x25, 0xde, 0x0f, 0x93, 0x21, 0xf2,
+ 0x73, 0x74, 0x0d, 0x22, 0xf7, 0x06, 0xfa, 0x55, 0x29, 0x55, 0x60, 0xa6,
+ 0x8c, 0x17, 0x95, 0xcb, 0x6d, 0x12, 0x7f, 0x1a,
+};
+static const unsigned char kat3290_entropyinpr1[] = {
+ 0xa9, 0x62, 0xa1, 0xa5, 0x81, 0xd9, 0xb3, 0x7b, 0x01, 0x61, 0x60, 0xd0,
+ 0x0a, 0x37, 0x03, 0x28, 0xa5, 0x8b, 0x24, 0x8b, 0xab, 0x5e, 0x50, 0x98,
+};
+static const unsigned char kat3290_addinpr1[] = {
+ 0xd3, 0x09, 0xd7, 0x3d, 0x61, 0x56, 0xd0, 0x35, 0xc1, 0x80, 0xec, 0x29,
+ 0xfa, 0xa9, 0xa5, 0x11, 0x9c, 0x12, 0x72, 0x23, 0xf5, 0xdd, 0x17, 0x7d,
+ 0x1b, 0x29, 0x7f, 0x71, 0xbd, 0x61, 0xce, 0x54,
+};
+static const unsigned char kat3290_entropyinpr2[] = {
+ 0xe1, 0xb8, 0x83, 0x83, 0xfc, 0xca, 0x39, 0x5c, 0xd5, 0x48, 0x40, 0x60,
+ 0x8d, 0xc0, 0xad, 0xf4, 0x38, 0x48, 0xb7, 0xce, 0xc2, 0x8e, 0x6e, 0xf8,
+};
+static const unsigned char kat3290_addinpr2[] = {
+ 0xcd, 0x5a, 0x0a, 0xe6, 0xd4, 0xe4, 0xdb, 0x49, 0x79, 0xf7, 0x1e, 0x96,
+ 0xcf, 0xa3, 0x24, 0x2f, 0x68, 0x15, 0x3b, 0x39, 0xab, 0x81, 0x96, 0x3a,
+ 0xbe, 0x92, 0xb7, 0x29, 0x4d, 0xbe, 0x6b, 0xb6,
+};
+static const unsigned char kat3290_retbits[] = {
+ 0xf4, 0x08, 0x11, 0x0d, 0xc5, 0xf0, 0xe8, 0x65, 0x42, 0x7d, 0x4a, 0xd4,
+ 0xf2, 0x01, 0x37, 0xe4, 0x89, 0xdb, 0xbd, 0x06, 0x4f, 0x71, 0x4b, 0xf1,
+ 0xc5, 0x10, 0x6e, 0x52, 0x25, 0x96, 0xe3, 0x31, 0x20, 0xd8, 0xc1, 0x36,
+ 0xbe, 0xca, 0xbf, 0x76, 0x1b, 0x47, 0x5e, 0xc5, 0x7d, 0xb3, 0x20, 0xcc,
+ 0xe8, 0x53, 0x7b, 0x5f, 0x80, 0x56, 0x5a, 0x5e, 0x15, 0xb0, 0x0e, 0x74,
+ 0x4d, 0x92, 0xb5, 0x26,
+};
+static const struct drbg_kat_pr_true kat3290_t = {
+ 4, kat3290_entropyin, kat3290_nonce, kat3290_persstr,
+ kat3290_entropyinpr1, kat3290_addinpr1, kat3290_entropyinpr2,
+ kat3290_addinpr2, kat3290_retbits
+};
+static const struct drbg_kat kat3290 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3290_t
+};
+
+static const unsigned char kat3291_entropyin[] = {
+ 0x06, 0x27, 0xa2, 0xdf, 0x86, 0xef, 0x77, 0x05, 0x8f, 0x2d, 0x54, 0x2b,
+ 0x8b, 0x59, 0x79, 0x04, 0xa3, 0xda, 0xec, 0x8b, 0x8e, 0xbd, 0x36, 0x5f,
+};
+static const unsigned char kat3291_nonce[] = {
+ 0x6a, 0x0f, 0x2e, 0x71, 0x82, 0xaf, 0x9b, 0xbc, 0xc5, 0xdf, 0xd6, 0x72,
+ 0x20, 0x43, 0x47, 0x68,
+};
+static const unsigned char kat3291_persstr[] = {
+ 0x41, 0xf8, 0x23, 0x75, 0x8a, 0x11, 0xf4, 0x27, 0x15, 0x5b, 0x49, 0xe0,
+ 0xb8, 0xa1, 0x0e, 0xe2, 0x5d, 0x23, 0x46, 0xba, 0xeb, 0x14, 0xc3, 0xfb,
+ 0x47, 0x7f, 0x67, 0x8b, 0xa4, 0xb5, 0xab, 0xb3,
+};
+static const unsigned char kat3291_entropyinpr1[] = {
+ 0x98, 0xb7, 0x45, 0xea, 0xf3, 0xf2, 0xe2, 0xa8, 0x46, 0x96, 0xc2, 0xf2,
+ 0xc8, 0xca, 0x73, 0x6a, 0x98, 0xe0, 0x31, 0x4a, 0xb9, 0xf5, 0x48, 0x44,
+};
+static const unsigned char kat3291_addinpr1[] = {
+ 0x50, 0xce, 0x71, 0xbc, 0x75, 0x6c, 0x28, 0x92, 0x20, 0x64, 0x70, 0x01,
+ 0x89, 0xab, 0xe3, 0x12, 0xe6, 0x3d, 0xc4, 0xa7, 0x2d, 0x81, 0x90, 0xfa,
+ 0xbc, 0x72, 0x94, 0x9a, 0xe2, 0xc7, 0xa0, 0xc8,
+};
+static const unsigned char kat3291_entropyinpr2[] = {
+ 0xa4, 0x21, 0x5c, 0x75, 0x68, 0x38, 0x25, 0xff, 0xb1, 0xbf, 0xc5, 0x65,
+ 0x3f, 0xab, 0x32, 0xc2, 0x41, 0x38, 0x27, 0xde, 0x63, 0x67, 0x45, 0xa2,
+};
+static const unsigned char kat3291_addinpr2[] = {
+ 0x9b, 0x3b, 0x2a, 0xf1, 0x12, 0x85, 0xad, 0x52, 0x57, 0x5d, 0x87, 0xc0,
+ 0xa2, 0x62, 0xd0, 0xd4, 0x4d, 0xb6, 0x8c, 0x69, 0x78, 0x1c, 0x34, 0xb4,
+ 0x9c, 0x27, 0x46, 0xcf, 0xba, 0x8f, 0x06, 0xd8,
+};
+static const unsigned char kat3291_retbits[] = {
+ 0x3d, 0x36, 0xe5, 0xfe, 0xcc, 0x13, 0x3b, 0x2c, 0xfe, 0x9a, 0x04, 0x79,
+ 0x0e, 0x28, 0x7f, 0x0e, 0x28, 0x1b, 0x54, 0x9a, 0x55, 0x4d, 0x1d, 0xe1,
+ 0xec, 0x01, 0xc1, 0xbd, 0xa9, 0x0f, 0x44, 0x71, 0xa6, 0xec, 0x87, 0x0a,
+ 0x80, 0x9d, 0xaa, 0xec, 0xa1, 0x1c, 0x74, 0x12, 0xf7, 0x5e, 0x4f, 0x8b,
+ 0x10, 0x32, 0xd9, 0xdd, 0xbb, 0xdb, 0x61, 0xdc, 0x15, 0x00, 0xd7, 0x27,
+ 0xba, 0x72, 0x11, 0xb5,
+};
+static const struct drbg_kat_pr_true kat3291_t = {
+ 5, kat3291_entropyin, kat3291_nonce, kat3291_persstr,
+ kat3291_entropyinpr1, kat3291_addinpr1, kat3291_entropyinpr2,
+ kat3291_addinpr2, kat3291_retbits
+};
+static const struct drbg_kat kat3291 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3291_t
+};
+
+static const unsigned char kat3292_entropyin[] = {
+ 0xa2, 0x0e, 0x04, 0xa9, 0xfd, 0x0a, 0x6b, 0xfd, 0xbe, 0xe6, 0x3f, 0xd5,
+ 0x8a, 0x41, 0x17, 0x5f, 0xd8, 0xc8, 0x9e, 0x83, 0x5f, 0x1e, 0x57, 0xf1,
+};
+static const unsigned char kat3292_nonce[] = {
+ 0x59, 0xc6, 0xe4, 0x44, 0x66, 0x1f, 0xea, 0x9c, 0xea, 0x0e, 0xe3, 0x64,
+ 0x93, 0x40, 0x8a, 0xf4,
+};
+static const unsigned char kat3292_persstr[] = {
+ 0xcf, 0x99, 0xdf, 0xd8, 0x25, 0x17, 0xf4, 0x53, 0xff, 0x11, 0x7b, 0xf7,
+ 0x3b, 0xea, 0xfd, 0x28, 0xb7, 0x97, 0x50, 0x5e, 0x22, 0x79, 0x3e, 0x0a,
+ 0x90, 0x75, 0xd7, 0x00, 0xa5, 0xd7, 0xaa, 0xf8,
+};
+static const unsigned char kat3292_entropyinpr1[] = {
+ 0x2c, 0x71, 0xbc, 0x3b, 0xe6, 0x44, 0x46, 0x9f, 0x3f, 0xf9, 0x1d, 0x00,
+ 0x2d, 0xda, 0xf0, 0xbe, 0x72, 0xd5, 0x33, 0xd6, 0x16, 0x13, 0x44, 0x3b,
+};
+static const unsigned char kat3292_addinpr1[] = {
+ 0x64, 0x99, 0x5f, 0xe5, 0x11, 0x3e, 0xad, 0xef, 0x65, 0xc9, 0xa1, 0x15,
+ 0xb4, 0x80, 0x4b, 0xd7, 0x9b, 0x05, 0x41, 0x3d, 0x2d, 0xe1, 0x4c, 0x32,
+ 0x1b, 0x75, 0xcc, 0x03, 0xb4, 0x26, 0xae, 0x08,
+};
+static const unsigned char kat3292_entropyinpr2[] = {
+ 0x44, 0xfa, 0x6e, 0xbb, 0x4c, 0xd2, 0xaf, 0x3c, 0x62, 0x04, 0xfe, 0x24,
+ 0x07, 0x31, 0x79, 0x39, 0x04, 0xbd, 0x08, 0x32, 0x8d, 0xcd, 0x2d, 0xb0,
+};
+static const unsigned char kat3292_addinpr2[] = {
+ 0x03, 0xe1, 0xef, 0x3d, 0x99, 0xb2, 0xac, 0x8f, 0x93, 0x0a, 0xe0, 0x11,
+ 0x1b, 0xe8, 0x28, 0xcb, 0xf3, 0xd2, 0xc6, 0x20, 0x4d, 0xff, 0x66, 0x7c,
+ 0xc0, 0xc6, 0x6f, 0x3a, 0x8b, 0x8f, 0x77, 0x42,
+};
+static const unsigned char kat3292_retbits[] = {
+ 0x68, 0xcd, 0xbd, 0xe4, 0x62, 0x03, 0x23, 0x51, 0x3d, 0x52, 0x9f, 0xac,
+ 0xc2, 0x5c, 0x1f, 0x82, 0x26, 0xd3, 0x4e, 0xba, 0xa3, 0x3f, 0xf2, 0xa8,
+ 0x3f, 0xaf, 0x62, 0x75, 0x5d, 0x26, 0x7d, 0xb5, 0x1b, 0x0f, 0x6a, 0x42,
+ 0x51, 0x28, 0x89, 0xd7, 0xe2, 0x40, 0xdf, 0x63, 0x88, 0x6b, 0x13, 0x94,
+ 0x80, 0xfd, 0xfc, 0xf9, 0x20, 0x20, 0x60, 0x24, 0x27, 0x04, 0x71, 0x86,
+ 0xc8, 0x25, 0xb1, 0xc5,
+};
+static const struct drbg_kat_pr_true kat3292_t = {
+ 6, kat3292_entropyin, kat3292_nonce, kat3292_persstr,
+ kat3292_entropyinpr1, kat3292_addinpr1, kat3292_entropyinpr2,
+ kat3292_addinpr2, kat3292_retbits
+};
+static const struct drbg_kat kat3292 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3292_t
+};
+
+static const unsigned char kat3293_entropyin[] = {
+ 0xf5, 0xab, 0x13, 0x6e, 0x8d, 0x5d, 0x9c, 0xe4, 0xb6, 0xe2, 0xfe, 0x12,
+ 0x43, 0x53, 0x1d, 0xd8, 0xa7, 0x6c, 0x15, 0x92, 0xa8, 0x23, 0x6f, 0x9e,
+};
+static const unsigned char kat3293_nonce[] = {
+ 0xb3, 0x3b, 0x0d, 0x9c, 0x9a, 0x5a, 0xcc, 0x18, 0x44, 0x89, 0x3c, 0xaa,
+ 0x34, 0x1d, 0x00, 0x6a,
+};
+static const unsigned char kat3293_persstr[] = {
+ 0xd0, 0x8d, 0x05, 0x7b, 0x8a, 0xe7, 0x71, 0xa5, 0x01, 0x2a, 0x56, 0xc6,
+ 0xef, 0xb7, 0xcb, 0x6f, 0xb6, 0xbb, 0x8e, 0x80, 0x01, 0xe9, 0x9b, 0x0f,
+ 0x08, 0x75, 0x01, 0x82, 0x1d, 0xc6, 0x42, 0xbc,
+};
+static const unsigned char kat3293_entropyinpr1[] = {
+ 0x36, 0xb5, 0x17, 0x23, 0x47, 0x64, 0x1a, 0x48, 0x35, 0xac, 0xf0, 0x5e,
+ 0xf2, 0x06, 0xbb, 0x52, 0xad, 0x82, 0xe5, 0x06, 0xec, 0xeb, 0x6e, 0xe3,
+};
+static const unsigned char kat3293_addinpr1[] = {
+ 0x73, 0xbe, 0x9e, 0x3d, 0x92, 0x51, 0xcf, 0x17, 0xed, 0xd4, 0x02, 0x25,
+ 0x9d, 0xde, 0x5e, 0xb7, 0xe3, 0x08, 0xbd, 0x96, 0x37, 0xe5, 0x34, 0xc2,
+ 0x0a, 0x47, 0xbf, 0x84, 0xbc, 0x53, 0x0a, 0x4a,
+};
+static const unsigned char kat3293_entropyinpr2[] = {
+ 0x95, 0x9d, 0xb8, 0x07, 0x4f, 0x8b, 0x0e, 0xe9, 0x23, 0x88, 0xdd, 0xd7,
+ 0xb0, 0x5e, 0x34, 0x80, 0x73, 0x48, 0x56, 0x09, 0xc6, 0xe3, 0xc8, 0x95,
+};
+static const unsigned char kat3293_addinpr2[] = {
+ 0xad, 0x7b, 0xef, 0xed, 0x0c, 0xd6, 0xe3, 0x03, 0x83, 0xaf, 0x7a, 0xa2,
+ 0xf1, 0x37, 0xed, 0x10, 0x21, 0xe5, 0xbd, 0x2e, 0xed, 0x4d, 0x86, 0x8b,
+ 0xc6, 0x2a, 0x3e, 0x15, 0x0d, 0xca, 0x8b, 0x81,
+};
+static const unsigned char kat3293_retbits[] = {
+ 0xa5, 0xad, 0x9f, 0x08, 0xc4, 0xd9, 0x6b, 0xd0, 0x2e, 0x1b, 0xf2, 0x5a,
+ 0x9e, 0x14, 0x2a, 0x16, 0xcb, 0xba, 0x20, 0xc7, 0x66, 0xd4, 0x8a, 0xfe,
+ 0x8f, 0x9c, 0x61, 0x98, 0x2d, 0x47, 0x4a, 0x7a, 0xad, 0x1c, 0x1c, 0x09,
+ 0xdf, 0x9b, 0x6b, 0x24, 0x13, 0x41, 0xae, 0xcc, 0x2d, 0x0e, 0x82, 0x3b,
+ 0x90, 0xce, 0xb0, 0x54, 0xe3, 0x56, 0x02, 0xc2, 0xf7, 0x6d, 0x28, 0xd1,
+ 0xa5, 0x57, 0xd7, 0x93,
+};
+static const struct drbg_kat_pr_true kat3293_t = {
+ 7, kat3293_entropyin, kat3293_nonce, kat3293_persstr,
+ kat3293_entropyinpr1, kat3293_addinpr1, kat3293_entropyinpr2,
+ kat3293_addinpr2, kat3293_retbits
+};
+static const struct drbg_kat kat3293 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3293_t
+};
+
+static const unsigned char kat3294_entropyin[] = {
+ 0xf5, 0x7f, 0x54, 0x4c, 0xfe, 0xb2, 0x4f, 0xc7, 0x17, 0xa2, 0x8f, 0x6b,
+ 0xf3, 0x33, 0xd3, 0xf7, 0x91, 0x16, 0x9e, 0xfa, 0x24, 0xd7, 0xa6, 0x49,
+};
+static const unsigned char kat3294_nonce[] = {
+ 0xf5, 0x01, 0xa0, 0x9f, 0x2d, 0x6b, 0x7c, 0x75, 0x36, 0x40, 0x9a, 0x6e,
+ 0xbe, 0x5d, 0x0c, 0xc7,
+};
+static const unsigned char kat3294_persstr[] = {
+ 0x06, 0x11, 0xc5, 0xdd, 0x75, 0x7a, 0xa8, 0x10, 0xb6, 0x10, 0xf0, 0xd2,
+ 0xe7, 0xf5, 0xad, 0x55, 0xd0, 0xa1, 0xe5, 0x09, 0xa3, 0x27, 0xc5, 0xbb,
+ 0xe6, 0xdb, 0xf8, 0x95, 0x45, 0x4e, 0xe2, 0xb7,
+};
+static const unsigned char kat3294_entropyinpr1[] = {
+ 0xda, 0x5f, 0x82, 0x37, 0x56, 0xe7, 0xe4, 0xa9, 0x2c, 0xfb, 0x88, 0x8b,
+ 0xf1, 0x8d, 0x2c, 0xbb, 0x85, 0x6b, 0x66, 0x4e, 0x98, 0xd6, 0xa7, 0xa1,
+};
+static const unsigned char kat3294_addinpr1[] = {
+ 0xe7, 0x20, 0x07, 0x6f, 0x67, 0x8c, 0x77, 0x94, 0x9b, 0x71, 0x3b, 0x0d,
+ 0x21, 0x2c, 0x64, 0xae, 0x22, 0xdf, 0x08, 0x23, 0xba, 0xfc, 0x54, 0x41,
+ 0x66, 0xbe, 0xd5, 0x00, 0x79, 0xcc, 0x99, 0x4d,
+};
+static const unsigned char kat3294_entropyinpr2[] = {
+ 0x76, 0x11, 0x68, 0x97, 0x14, 0xb7, 0xcd, 0xbf, 0x82, 0x73, 0xb1, 0x6a,
+ 0x35, 0xda, 0xd0, 0x97, 0xc1, 0x90, 0x13, 0xfc, 0x68, 0x2c, 0xfa, 0x60,
+};
+static const unsigned char kat3294_addinpr2[] = {
+ 0x37, 0x1a, 0x0c, 0x03, 0x06, 0x69, 0xeb, 0x75, 0x34, 0xe1, 0x68, 0x24,
+ 0x31, 0x41, 0x4f, 0x34, 0x1d, 0x24, 0xcc, 0xc2, 0xa5, 0xb6, 0x3b, 0xf6,
+ 0x16, 0x13, 0x57, 0x54, 0x53, 0x7c, 0x72, 0x3b,
+};
+static const unsigned char kat3294_retbits[] = {
+ 0xb1, 0x87, 0x1a, 0x98, 0xf9, 0xbc, 0xa0, 0x34, 0xad, 0xe0, 0x42, 0x51,
+ 0x64, 0xc0, 0x10, 0x56, 0x47, 0x85, 0x80, 0x0e, 0x59, 0xc3, 0xd5, 0xa0,
+ 0x19, 0x51, 0xd0, 0xc1, 0x49, 0x6f, 0xd0, 0x6b, 0x27, 0x36, 0x71, 0x1f,
+ 0xc4, 0xf5, 0xff, 0xfb, 0xc5, 0xbc, 0x78, 0x0c, 0xd7, 0x5a, 0x8f, 0xee,
+ 0xb1, 0x5d, 0x3f, 0xfd, 0x55, 0x89, 0x12, 0xb4, 0xdd, 0x6a, 0x90, 0x9b,
+ 0x9c, 0x24, 0xde, 0xf9,
+};
+static const struct drbg_kat_pr_true kat3294_t = {
+ 8, kat3294_entropyin, kat3294_nonce, kat3294_persstr,
+ kat3294_entropyinpr1, kat3294_addinpr1, kat3294_entropyinpr2,
+ kat3294_addinpr2, kat3294_retbits
+};
+static const struct drbg_kat kat3294 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3294_t
+};
+
+static const unsigned char kat3295_entropyin[] = {
+ 0xaf, 0xc3, 0xcc, 0xed, 0xc6, 0x93, 0x5a, 0xc2, 0xb8, 0x9e, 0x18, 0x5f,
+ 0xfe, 0x32, 0x04, 0xe9, 0x55, 0x4e, 0x6a, 0x5c, 0x20, 0xb2, 0xf8, 0x16,
+};
+static const unsigned char kat3295_nonce[] = {
+ 0x1b, 0x7f, 0x9c, 0xed, 0xef, 0x59, 0xaf, 0x31, 0x44, 0xb7, 0x83, 0x61,
+ 0xa5, 0xa6, 0x55, 0xf6,
+};
+static const unsigned char kat3295_persstr[] = {
+ 0xa1, 0xf5, 0x32, 0x64, 0x96, 0x7b, 0xf9, 0xa2, 0x18, 0xca, 0xcc, 0x6b,
+ 0xf0, 0x93, 0xda, 0xf3, 0x37, 0x9b, 0x72, 0x23, 0x3f, 0x12, 0xde, 0x6a,
+ 0x1c, 0x2a, 0xa0, 0xfd, 0xd8, 0x72, 0x0c, 0x6c,
+};
+static const unsigned char kat3295_entropyinpr1[] = {
+ 0x75, 0x1e, 0x91, 0x23, 0x8e, 0x90, 0x23, 0x66, 0x6b, 0xc7, 0xe6, 0x22,
+ 0x40, 0xc9, 0xf8, 0x75, 0x08, 0xe9, 0xe4, 0xd3, 0x4e, 0xf0, 0xe5, 0xd3,
+};
+static const unsigned char kat3295_addinpr1[] = {
+ 0xe0, 0x0f, 0x93, 0xd1, 0xb6, 0x4b, 0x34, 0x11, 0xc5, 0xb8, 0x95, 0xf5,
+ 0x29, 0x18, 0x83, 0x70, 0x15, 0x28, 0xb7, 0xfb, 0x5e, 0xe5, 0xf6, 0xc3,
+ 0x44, 0x5c, 0xc0, 0x2e, 0xa4, 0xa4, 0x1b, 0x68,
+};
+static const unsigned char kat3295_entropyinpr2[] = {
+ 0xfa, 0x0d, 0x76, 0x8e, 0x3a, 0x90, 0xa5, 0xdf, 0x1e, 0xc6, 0xab, 0x53,
+ 0x3f, 0xbf, 0xb0, 0x54, 0xe9, 0x8b, 0xc5, 0xef, 0x24, 0x49, 0x2a, 0x3a,
+};
+static const unsigned char kat3295_addinpr2[] = {
+ 0x34, 0xf6, 0x55, 0x9e, 0xd5, 0x97, 0x5a, 0xa1, 0xb0, 0x94, 0x00, 0xf7,
+ 0xa5, 0x5d, 0xd4, 0x8b, 0x05, 0xf4, 0x96, 0x80, 0x4c, 0xee, 0x94, 0x5a,
+ 0x8d, 0x81, 0x87, 0x20, 0xa9, 0x22, 0xb8, 0x05,
+};
+static const unsigned char kat3295_retbits[] = {
+ 0xee, 0x50, 0x7c, 0x1d, 0x32, 0x60, 0xcf, 0xf1, 0x1d, 0x5e, 0x65, 0xe4,
+ 0xf0, 0xf6, 0xdd, 0x7c, 0x75, 0x6b, 0x16, 0xd7, 0xb7, 0x35, 0xcb, 0xc7,
+ 0x0f, 0xbe, 0x88, 0xe0, 0xab, 0x98, 0x5b, 0xeb, 0x0b, 0x6f, 0xbb, 0xde,
+ 0xc1, 0xb8, 0xe9, 0xf7, 0xf7, 0x43, 0xa3, 0xbe, 0x61, 0xe6, 0xd1, 0xde,
+ 0x12, 0x73, 0xd2, 0x3f, 0x3b, 0xf7, 0xfb, 0x27, 0x92, 0x3b, 0x37, 0xa9,
+ 0xf1, 0x3a, 0x47, 0x3d,
+};
+static const struct drbg_kat_pr_true kat3295_t = {
+ 9, kat3295_entropyin, kat3295_nonce, kat3295_persstr,
+ kat3295_entropyinpr1, kat3295_addinpr1, kat3295_entropyinpr2,
+ kat3295_addinpr2, kat3295_retbits
+};
+static const struct drbg_kat kat3295 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3295_t
+};
+
+static const unsigned char kat3296_entropyin[] = {
+ 0x38, 0x2f, 0xb8, 0x8b, 0xe9, 0xf0, 0xab, 0x05, 0xd9, 0x9b, 0xaf, 0x8f,
+ 0x7d, 0x9a, 0x64, 0xa8, 0x54, 0xdc, 0x5a, 0xd7, 0xe2, 0x5e, 0x55, 0xbc,
+};
+static const unsigned char kat3296_nonce[] = {
+ 0x35, 0xd1, 0x63, 0xc9, 0x7c, 0xa2, 0x6b, 0x5f, 0x9f, 0x43, 0x31, 0x03,
+ 0x7b, 0x3b, 0xb5, 0x0b,
+};
+static const unsigned char kat3296_persstr[] = {
+ 0x5c, 0xab, 0xd6, 0x95, 0x67, 0x4d, 0x26, 0xd9, 0xb7, 0x84, 0x4b, 0x18,
+ 0xd8, 0x7e, 0xab, 0xcc, 0x04, 0x18, 0xff, 0x03, 0x69, 0x6f, 0xc3, 0x1a,
+ 0x65, 0xc9, 0xa2, 0x74, 0x87, 0x58, 0xe5, 0xd5,
+};
+static const unsigned char kat3296_entropyinpr1[] = {
+ 0xcc, 0x8d, 0xfe, 0x28, 0xd9, 0xb2, 0xd6, 0xba, 0x0b, 0xf6, 0xd7, 0x4c,
+ 0x17, 0x1f, 0xcd, 0x2a, 0x65, 0x0d, 0xa4, 0x6e, 0x2f, 0xd6, 0x91, 0x69,
+};
+static const unsigned char kat3296_addinpr1[] = {
+ 0x0c, 0x2e, 0x47, 0xe5, 0x0a, 0xb0, 0x26, 0x55, 0x24, 0xa0, 0x02, 0x09,
+ 0xc5, 0x8e, 0x44, 0x7a, 0x6e, 0x0b, 0xad, 0xf8, 0xeb, 0xf8, 0x5f, 0x6c,
+ 0x21, 0x3c, 0xa4, 0xfd, 0x25, 0x2e, 0xa6, 0xc0,
+};
+static const unsigned char kat3296_entropyinpr2[] = {
+ 0x0b, 0x4c, 0x3b, 0x4b, 0x82, 0x9f, 0x84, 0x4f, 0x46, 0xa6, 0x7d, 0xbb,
+ 0xec, 0xce, 0x2f, 0x99, 0xc4, 0x2f, 0xe3, 0x77, 0x68, 0x26, 0x11, 0x04,
+};
+static const unsigned char kat3296_addinpr2[] = {
+ 0xf3, 0x87, 0x05, 0xff, 0x8c, 0x3b, 0x6a, 0x21, 0x71, 0x7c, 0x4e, 0x81,
+ 0x11, 0xbf, 0xa9, 0x31, 0x0a, 0x20, 0x6b, 0xac, 0x85, 0xb7, 0x0c, 0xd3,
+ 0x79, 0x01, 0x70, 0x98, 0x8f, 0xbc, 0x1c, 0xa9,
+};
+static const unsigned char kat3296_retbits[] = {
+ 0x3e, 0x1a, 0xe9, 0xfa, 0xc4, 0x72, 0x90, 0x79, 0x75, 0xf4, 0x7a, 0x10,
+ 0xa8, 0x01, 0x05, 0x33, 0xac, 0xde, 0x35, 0xaf, 0xc9, 0x1b, 0xd7, 0xf8,
+ 0x81, 0xd6, 0x2f, 0x49, 0x82, 0x95, 0x10, 0x7f, 0x70, 0x28, 0xc6, 0x4c,
+ 0xb1, 0x29, 0xdc, 0x85, 0x67, 0x47, 0xa9, 0xab, 0xb0, 0x31, 0x98, 0x39,
+ 0xbe, 0x83, 0x99, 0x6c, 0xef, 0x44, 0xab, 0x27, 0xda, 0x2d, 0x90, 0xd1,
+ 0xc9, 0xbf, 0xb2, 0xc8,
+};
+static const struct drbg_kat_pr_true kat3296_t = {
+ 10, kat3296_entropyin, kat3296_nonce, kat3296_persstr,
+ kat3296_entropyinpr1, kat3296_addinpr1, kat3296_entropyinpr2,
+ kat3296_addinpr2, kat3296_retbits
+};
+static const struct drbg_kat kat3296 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3296_t
+};
+
+static const unsigned char kat3297_entropyin[] = {
+ 0xcd, 0x59, 0xa8, 0xa8, 0xdc, 0x7e, 0x96, 0x26, 0x31, 0x8b, 0x25, 0x8e,
+ 0x3a, 0xb1, 0xcd, 0x5f, 0xb0, 0x45, 0x3f, 0x8c, 0x14, 0x00, 0xe2, 0x67,
+};
+static const unsigned char kat3297_nonce[] = {
+ 0x25, 0xa8, 0x5e, 0x74, 0x53, 0x45, 0x9a, 0x79, 0x80, 0xdb, 0x4c, 0xe5,
+ 0x14, 0x61, 0x95, 0x65,
+};
+static const unsigned char kat3297_persstr[] = {
+ 0x20, 0x41, 0x77, 0xf9, 0xe9, 0x7f, 0x8c, 0x24, 0x9a, 0xd6, 0xf6, 0x34,
+ 0x2c, 0x31, 0x09, 0xc7, 0xf1, 0x21, 0x8f, 0xb1, 0x71, 0x67, 0x37, 0x88,
+ 0x35, 0x22, 0x7b, 0xeb, 0x40, 0x18, 0x5d, 0xd1,
+};
+static const unsigned char kat3297_entropyinpr1[] = {
+ 0xa9, 0xc8, 0x89, 0x08, 0x21, 0x7b, 0xd1, 0xdb, 0xcc, 0x83, 0x4d, 0xbd,
+ 0x16, 0x52, 0xc0, 0x23, 0xf9, 0x85, 0x61, 0x80, 0x40, 0x71, 0x80, 0xb6,
+};
+static const unsigned char kat3297_addinpr1[] = {
+ 0x61, 0xa9, 0xa2, 0x4e, 0x8c, 0xe6, 0x91, 0x93, 0xf0, 0x5f, 0x4a, 0x16,
+ 0x30, 0xf0, 0xf4, 0xaf, 0xcf, 0x1a, 0x19, 0x5a, 0x1f, 0x4c, 0x1a, 0xb3,
+ 0x04, 0x86, 0xee, 0x8e, 0x80, 0x0c, 0x0d, 0x54,
+};
+static const unsigned char kat3297_entropyinpr2[] = {
+ 0xf2, 0xab, 0x9b, 0xcd, 0x76, 0x2c, 0x7e, 0x55, 0xb0, 0xbb, 0xe3, 0x80,
+ 0x62, 0x23, 0x86, 0xd3, 0xd1, 0xc7, 0x1a, 0x44, 0xe7, 0xfc, 0xaf, 0xf6,
+};
+static const unsigned char kat3297_addinpr2[] = {
+ 0x8a, 0x17, 0xf4, 0xb5, 0xd8, 0x75, 0x01, 0x35, 0xe9, 0xfe, 0x88, 0xf7,
+ 0xe8, 0x85, 0xb6, 0x24, 0xaa, 0xa8, 0x1a, 0xa0, 0xce, 0x49, 0x03, 0xc0,
+ 0x54, 0x19, 0xd0, 0xc9, 0x6c, 0x60, 0xbe, 0x47,
+};
+static const unsigned char kat3297_retbits[] = {
+ 0x46, 0x45, 0x29, 0x18, 0xb3, 0xd2, 0x0d, 0x24, 0x56, 0x92, 0x79, 0x57,
+ 0x0b, 0x63, 0x0f, 0xf3, 0x2b, 0xf7, 0xf4, 0x2a, 0xdf, 0xa0, 0x9e, 0xb5,
+ 0x9c, 0xd8, 0x98, 0xe3, 0x43, 0x20, 0x1d, 0xe2, 0x90, 0x78, 0x5c, 0x46,
+ 0xa8, 0xb9, 0x46, 0xde, 0xe6, 0xd8, 0x11, 0xb5, 0xfd, 0x50, 0xc7, 0x6f,
+ 0xc4, 0x6c, 0xfa, 0x41, 0x66, 0x9b, 0x2c, 0xc6, 0xb9, 0x37, 0x3e, 0x72,
+ 0x52, 0x1c, 0xc8, 0x8b,
+};
+static const struct drbg_kat_pr_true kat3297_t = {
+ 11, kat3297_entropyin, kat3297_nonce, kat3297_persstr,
+ kat3297_entropyinpr1, kat3297_addinpr1, kat3297_entropyinpr2,
+ kat3297_addinpr2, kat3297_retbits
+};
+static const struct drbg_kat kat3297 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3297_t
+};
+
+static const unsigned char kat3298_entropyin[] = {
+ 0xc2, 0xb4, 0x73, 0xb8, 0xb9, 0xb6, 0x2a, 0x13, 0x1b, 0x93, 0x4c, 0x2d,
+ 0x33, 0x4e, 0x30, 0x6e, 0x34, 0xfb, 0x5a, 0x42, 0xc7, 0xdb, 0x64, 0xa7,
+};
+static const unsigned char kat3298_nonce[] = {
+ 0x61, 0xea, 0x0e, 0x2b, 0x02, 0x27, 0xb2, 0x94, 0x77, 0x01, 0xf1, 0x7f,
+ 0xbf, 0x00, 0xd8, 0x31,
+};
+static const unsigned char kat3298_persstr[] = {
+ 0x02, 0x45, 0x58, 0xfa, 0x98, 0x5a, 0xc6, 0xd9, 0x04, 0xbf, 0x75, 0xe6,
+ 0x56, 0xb4, 0x54, 0x58, 0xa1, 0x4e, 0x53, 0xd8, 0x7b, 0xd9, 0x3b, 0x54,
+ 0xb0, 0x39, 0x1f, 0x7e, 0xcd, 0xdc, 0x3d, 0x79,
+};
+static const unsigned char kat3298_entropyinpr1[] = {
+ 0x51, 0x48, 0x5d, 0x1d, 0x7a, 0x7b, 0xb2, 0x38, 0x63, 0xf2, 0xd4, 0xe7,
+ 0xe6, 0xab, 0xc6, 0x6b, 0xb3, 0x50, 0xac, 0x93, 0x51, 0xf0, 0x33, 0xb5,
+};
+static const unsigned char kat3298_addinpr1[] = {
+ 0xad, 0xb1, 0x5e, 0xac, 0x54, 0x36, 0xe9, 0xb2, 0x63, 0x52, 0xb1, 0xa7,
+ 0x13, 0x04, 0xb6, 0x9e, 0xe3, 0xdb, 0x4e, 0xed, 0x79, 0x1e, 0x61, 0x8b,
+ 0x42, 0x35, 0x58, 0x33, 0xb8, 0x5e, 0x1d, 0x93,
+};
+static const unsigned char kat3298_entropyinpr2[] = {
+ 0x60, 0x03, 0x86, 0x68, 0xd8, 0x56, 0xf1, 0xe5, 0xc2, 0xd7, 0x84, 0x25,
+ 0x40, 0xa4, 0x59, 0xcf, 0xa5, 0x5a, 0x0b, 0x3d, 0xa0, 0x36, 0x2c, 0xbe,
+};
+static const unsigned char kat3298_addinpr2[] = {
+ 0xb1, 0x67, 0x3c, 0xcc, 0xde, 0xcd, 0xf0, 0xb7, 0xe6, 0x00, 0x59, 0x4d,
+ 0xc1, 0xde, 0xc2, 0x2d, 0x05, 0x87, 0x3d, 0x90, 0x2a, 0x40, 0x49, 0xb2,
+ 0xf7, 0x71, 0x24, 0x1d, 0xba, 0x08, 0x6b, 0x02,
+};
+static const unsigned char kat3298_retbits[] = {
+ 0x33, 0x69, 0x46, 0x6f, 0xce, 0xd7, 0xf6, 0xb6, 0x73, 0xc0, 0x4f, 0x1a,
+ 0x0d, 0x6a, 0xd1, 0x6b, 0x9c, 0xe8, 0x1d, 0x6b, 0x1d, 0x28, 0x9b, 0x94,
+ 0xa8, 0xaa, 0x86, 0x77, 0xa7, 0x30, 0x5c, 0x05, 0xd0, 0x37, 0xcc, 0x43,
+ 0x61, 0x89, 0x48, 0x52, 0x04, 0x61, 0xf5, 0x28, 0x96, 0x90, 0xd8, 0xfb,
+ 0x25, 0x94, 0xf1, 0x0f, 0x80, 0xf5, 0x46, 0x20, 0xf5, 0xe4, 0x65, 0x61,
+ 0x1c, 0x92, 0x3b, 0xac,
+};
+static const struct drbg_kat_pr_true kat3298_t = {
+ 12, kat3298_entropyin, kat3298_nonce, kat3298_persstr,
+ kat3298_entropyinpr1, kat3298_addinpr1, kat3298_entropyinpr2,
+ kat3298_addinpr2, kat3298_retbits
+};
+static const struct drbg_kat kat3298 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3298_t
+};
+
+static const unsigned char kat3299_entropyin[] = {
+ 0x82, 0xf9, 0x16, 0xa7, 0x09, 0xb5, 0x21, 0xbf, 0x74, 0xcd, 0x86, 0x07,
+ 0x0c, 0x82, 0x1c, 0xdf, 0xf9, 0x94, 0x0e, 0xb8, 0x54, 0x1b, 0xab, 0x2c,
+};
+static const unsigned char kat3299_nonce[] = {
+ 0x70, 0x4e, 0x21, 0x7b, 0xa1, 0xf9, 0x07, 0xdd, 0x66, 0xb5, 0x05, 0x24,
+ 0xf5, 0x4f, 0x9f, 0x55,
+};
+static const unsigned char kat3299_persstr[] = {
+ 0x09, 0xbd, 0xfa, 0x9a, 0x73, 0x61, 0xf2, 0xcc, 0x3f, 0x81, 0x14, 0xcb,
+ 0x67, 0xd0, 0x7a, 0x37, 0x01, 0xf9, 0x74, 0x0f, 0x62, 0x11, 0x87, 0x95,
+ 0xe2, 0xc0, 0x07, 0xcc, 0x45, 0xfc, 0x12, 0xf0,
+};
+static const unsigned char kat3299_entropyinpr1[] = {
+ 0xd6, 0x95, 0x64, 0x20, 0x52, 0x62, 0xe9, 0x0f, 0x87, 0x94, 0xd8, 0xef,
+ 0x26, 0xba, 0x1c, 0x01, 0x73, 0x34, 0xc5, 0x02, 0x1b, 0x6e, 0x60, 0xed,
+};
+static const unsigned char kat3299_addinpr1[] = {
+ 0x0a, 0x11, 0xc7, 0x86, 0x7b, 0x2a, 0x52, 0x91, 0x2e, 0xea, 0xff, 0xf5,
+ 0xcc, 0xdc, 0xda, 0xc5, 0x4a, 0xc4, 0x52, 0x5f, 0xe4, 0x7d, 0x71, 0x12,
+ 0x56, 0x7f, 0x4c, 0x7e, 0xac, 0xa2, 0x06, 0x2a,
+};
+static const unsigned char kat3299_entropyinpr2[] = {
+ 0x7e, 0x47, 0x24, 0x44, 0x78, 0xaf, 0x68, 0x6d, 0xdc, 0x1d, 0x2c, 0x61,
+ 0x66, 0x19, 0x07, 0x72, 0x71, 0x8e, 0x0d, 0x13, 0xae, 0x35, 0x61, 0x19,
+};
+static const unsigned char kat3299_addinpr2[] = {
+ 0x2e, 0x58, 0xed, 0xb4, 0x52, 0x23, 0xe9, 0x15, 0x06, 0x50, 0xe7, 0x53,
+ 0x42, 0xf9, 0xf3, 0x53, 0xb6, 0x77, 0x77, 0xed, 0x39, 0x08, 0xb5, 0x4d,
+ 0x93, 0xb6, 0x59, 0x20, 0x07, 0xee, 0xb6, 0x9c,
+};
+static const unsigned char kat3299_retbits[] = {
+ 0x0a, 0x90, 0xa7, 0x15, 0xa3, 0x1a, 0xb0, 0x2d, 0x39, 0xcc, 0xce, 0x24,
+ 0x37, 0x8b, 0x7b, 0x68, 0xcb, 0xf0, 0x40, 0xfc, 0x5a, 0x94, 0xa0, 0x57,
+ 0x67, 0x73, 0x77, 0xdd, 0x65, 0xfc, 0xe8, 0x5a, 0x19, 0x37, 0xac, 0x76,
+ 0xf7, 0x1f, 0x1b, 0x81, 0x5b, 0x96, 0xf0, 0x92, 0xe8, 0x55, 0xb0, 0x74,
+ 0x61, 0x68, 0xd2, 0xdd, 0xd4, 0x99, 0x28, 0xe6, 0x1f, 0x6f, 0x53, 0x36,
+ 0x92, 0xd9, 0x18, 0x00,
+};
+static const struct drbg_kat_pr_true kat3299_t = {
+ 13, kat3299_entropyin, kat3299_nonce, kat3299_persstr,
+ kat3299_entropyinpr1, kat3299_addinpr1, kat3299_entropyinpr2,
+ kat3299_addinpr2, kat3299_retbits
+};
+static const struct drbg_kat kat3299 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3299_t
+};
+
+static const unsigned char kat3300_entropyin[] = {
+ 0x9e, 0x99, 0x5d, 0x90, 0x34, 0x17, 0x62, 0xa9, 0x32, 0x99, 0x1d, 0x1d,
+ 0xa3, 0x41, 0x17, 0x28, 0x7e, 0x5c, 0xa6, 0x88, 0xce, 0x60, 0x41, 0x39,
+};
+static const unsigned char kat3300_nonce[] = {
+ 0xa6, 0x1b, 0xf0, 0xe9, 0x69, 0x83, 0xee, 0xdf, 0x2d, 0xaa, 0x6c, 0x1b,
+ 0xf6, 0x4c, 0x83, 0x83,
+};
+static const unsigned char kat3300_persstr[] = {
+ 0x48, 0xfd, 0x5d, 0x22, 0x02, 0xb1, 0x30, 0x4a, 0x2d, 0xfe, 0x2e, 0x57,
+ 0x65, 0xdf, 0xa6, 0x2f, 0x18, 0x8e, 0x6c, 0x38, 0xc0, 0x63, 0xef, 0x3d,
+ 0xe0, 0xc5, 0xf9, 0x53, 0x12, 0xf8, 0x49, 0x49,
+};
+static const unsigned char kat3300_entropyinpr1[] = {
+ 0xe9, 0x89, 0xbb, 0xce, 0x44, 0x7c, 0x6b, 0x47, 0x99, 0xf2, 0xbc, 0x85,
+ 0xa4, 0xc4, 0xf8, 0x4b, 0xfb, 0x0f, 0xe7, 0xc2, 0x29, 0xad, 0x64, 0x3c,
+};
+static const unsigned char kat3300_addinpr1[] = {
+ 0x24, 0x66, 0x32, 0xbb, 0xe3, 0x29, 0x52, 0x89, 0x54, 0x89, 0x33, 0xad,
+ 0xb9, 0x76, 0xa7, 0x88, 0xf5, 0xff, 0x18, 0x3e, 0x52, 0xe9, 0x70, 0xc0,
+ 0x32, 0x6a, 0xe5, 0x18, 0x71, 0x13, 0x87, 0xcc,
+};
+static const unsigned char kat3300_entropyinpr2[] = {
+ 0x23, 0x12, 0x66, 0xf5, 0xcc, 0xab, 0x8f, 0x29, 0xb0, 0x4b, 0xc9, 0xe1,
+ 0x1f, 0xfa, 0xcf, 0x0f, 0x67, 0x7b, 0x49, 0xdd, 0x83, 0xd6, 0x84, 0x5a,
+};
+static const unsigned char kat3300_addinpr2[] = {
+ 0x54, 0x7a, 0xc1, 0xc6, 0x74, 0xae, 0xbe, 0x59, 0x71, 0x70, 0xab, 0x83,
+ 0xb0, 0x7e, 0x78, 0x09, 0xff, 0x60, 0x0f, 0x6c, 0x1d, 0x64, 0x7d, 0xd5,
+ 0x50, 0x17, 0x51, 0xef, 0x97, 0x68, 0x53, 0xeb,
+};
+static const unsigned char kat3300_retbits[] = {
+ 0x00, 0xcb, 0x0a, 0x33, 0x87, 0x7c, 0x26, 0x8e, 0xc8, 0x54, 0xfa, 0x99,
+ 0x69, 0xa8, 0x39, 0x1b, 0x79, 0xef, 0xd7, 0xc7, 0xb9, 0xb3, 0x6c, 0xea,
+ 0x83, 0x2c, 0x21, 0x75, 0x62, 0x1e, 0x1b, 0xd9, 0xb8, 0xea, 0x9d, 0x50,
+ 0x20, 0x2e, 0xd0, 0x9e, 0x01, 0x09, 0x72, 0xea, 0x8f, 0x17, 0x8c, 0x6b,
+ 0xa7, 0x09, 0x5d, 0x7d, 0xef, 0x1d, 0x6d, 0x12, 0x9b, 0x7c, 0x7e, 0x0a,
+ 0x82, 0x7e, 0xcd, 0xce,
+};
+static const struct drbg_kat_pr_true kat3300_t = {
+ 14, kat3300_entropyin, kat3300_nonce, kat3300_persstr,
+ kat3300_entropyinpr1, kat3300_addinpr1, kat3300_entropyinpr2,
+ kat3300_addinpr2, kat3300_retbits
+};
+static const struct drbg_kat kat3300 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3300_t
+};
+
+static const unsigned char kat3301_entropyin[] = {
+ 0x21, 0x34, 0xb7, 0x9a, 0x4d, 0xc2, 0xea, 0xb9, 0x71, 0xcb, 0x0a, 0x1d,
+ 0x4f, 0xb4, 0xf8, 0x90, 0x8e, 0xe3, 0x29, 0x75, 0x1e, 0xbb, 0x4a, 0xe3,
+};
+static const unsigned char kat3301_nonce[] = {
+ 0x10, 0x39, 0x9c, 0x42, 0x2f, 0x25, 0x6d, 0x96, 0x2b, 0xd3, 0xb9, 0x3f,
+ 0x7d, 0xfe, 0x13, 0x50,
+};
+static const unsigned char kat3301_persstr[] = {0};
+static const unsigned char kat3301_entropyinpr1[] = {
+ 0x96, 0xae, 0x9a, 0xfe, 0xf8, 0xc0, 0x40, 0x14, 0xfc, 0x5b, 0x35, 0x82,
+ 0x9e, 0x40, 0xd7, 0x45, 0x51, 0x1b, 0x45, 0x0f, 0x0e, 0xdd, 0x99, 0xda,
+};
+static const unsigned char kat3301_addinpr1[] = {0};
+static const unsigned char kat3301_entropyinpr2[] = {
+ 0xd7, 0x5c, 0x71, 0xfd, 0x93, 0x39, 0xc6, 0x7a, 0xc7, 0xc7, 0x87, 0x8b,
+ 0xca, 0xe2, 0xb6, 0xf4, 0x5b, 0x52, 0xad, 0x09, 0x83, 0xe3, 0xb9, 0x5f,
+};
+static const unsigned char kat3301_addinpr2[] = {0};
+static const unsigned char kat3301_retbits[] = {
+ 0xe2, 0x35, 0x17, 0x55, 0xfd, 0xb1, 0x47, 0x4f, 0xec, 0xe8, 0xa2, 0xcc,
+ 0x8d, 0xb2, 0x8d, 0x6e, 0x74, 0x88, 0xba, 0x00, 0xee, 0x7b, 0xc3, 0x28,
+ 0xf5, 0x48, 0xff, 0x1d, 0xea, 0xf1, 0x30, 0x57, 0xaa, 0x06, 0x4c, 0xe9,
+ 0xc2, 0x12, 0xe6, 0xcf, 0x97, 0x26, 0x42, 0x54, 0xe3, 0x4c, 0xc3, 0x32,
+ 0xef, 0x28, 0x7c, 0x11, 0x24, 0x6f, 0x3a, 0xea, 0x61, 0x10, 0x61, 0xd9,
+ 0x56, 0x2f, 0x5c, 0x6a,
+};
+static const struct drbg_kat_pr_true kat3301_t = {
+ 0, kat3301_entropyin, kat3301_nonce, kat3301_persstr,
+ kat3301_entropyinpr1, kat3301_addinpr1, kat3301_entropyinpr2,
+ kat3301_addinpr2, kat3301_retbits
+};
+static const struct drbg_kat kat3301 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3301_t
+};
+
+static const unsigned char kat3302_entropyin[] = {
+ 0x74, 0xf9, 0x79, 0xe8, 0xe2, 0xfa, 0x6a, 0xf9, 0xbf, 0x1d, 0x8a, 0x62,
+ 0x6d, 0xac, 0xbd, 0x68, 0x43, 0x14, 0x4c, 0xa1, 0x6b, 0x9f, 0x53, 0xaf,
+};
+static const unsigned char kat3302_nonce[] = {
+ 0xcc, 0x71, 0x45, 0xe1, 0xfc, 0x84, 0xd6, 0x4f, 0x35, 0x07, 0xf8, 0xf9,
+ 0xac, 0x42, 0x41, 0xb4,
+};
+static const unsigned char kat3302_persstr[] = {0};
+static const unsigned char kat3302_entropyinpr1[] = {
+ 0xbb, 0xdb, 0x42, 0x77, 0x43, 0xda, 0x0c, 0x16, 0x83, 0x77, 0x21, 0x81,
+ 0x75, 0x57, 0x8c, 0x47, 0xf9, 0xac, 0x9e, 0xe8, 0x6c, 0x0e, 0x23, 0xbf,
+};
+static const unsigned char kat3302_addinpr1[] = {0};
+static const unsigned char kat3302_entropyinpr2[] = {
+ 0x61, 0xcf, 0xb4, 0xb9, 0x88, 0x91, 0xfa, 0xdb, 0x89, 0x9e, 0x99, 0xb2,
+ 0x7f, 0xa2, 0x35, 0xb6, 0x52, 0xb6, 0x6a, 0x18, 0x23, 0xbc, 0xd3, 0x3e,
+};
+static const unsigned char kat3302_addinpr2[] = {0};
+static const unsigned char kat3302_retbits[] = {
+ 0x54, 0xbd, 0xb7, 0x97, 0x96, 0x0a, 0x5d, 0x6e, 0x20, 0x8f, 0x19, 0xb8,
+ 0xa9, 0xf9, 0x67, 0xf4, 0x11, 0x3a, 0x42, 0xb6, 0x6d, 0xa4, 0x73, 0xba,
+ 0x1e, 0x0b, 0x1a, 0x81, 0x82, 0x80, 0xf8, 0xcd, 0x16, 0x8f, 0x71, 0x95,
+ 0x90, 0x9d, 0x8e, 0xa3, 0x79, 0xe5, 0xe7, 0x99, 0xdd, 0x97, 0xdc, 0x0a,
+ 0x7b, 0x7a, 0x92, 0x0f, 0x70, 0x7f, 0x9e, 0x63, 0x91, 0x51, 0x46, 0xd8,
+ 0xfc, 0xe4, 0x51, 0x72,
+};
+static const struct drbg_kat_pr_true kat3302_t = {
+ 1, kat3302_entropyin, kat3302_nonce, kat3302_persstr,
+ kat3302_entropyinpr1, kat3302_addinpr1, kat3302_entropyinpr2,
+ kat3302_addinpr2, kat3302_retbits
+};
+static const struct drbg_kat kat3302 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3302_t
+};
+
+static const unsigned char kat3303_entropyin[] = {
+ 0xff, 0x8e, 0x2c, 0xc4, 0x11, 0x28, 0x43, 0xba, 0x31, 0x9a, 0x35, 0x92,
+ 0x2e, 0xfa, 0xa3, 0x60, 0x2d, 0x45, 0xa9, 0x46, 0x57, 0x91, 0x8e, 0x5c,
+};
+static const unsigned char kat3303_nonce[] = {
+ 0x2d, 0xb6, 0xf5, 0xab, 0x97, 0x47, 0x77, 0x97, 0x03, 0xdd, 0x65, 0x43,
+ 0xe1, 0x37, 0xf3, 0x33,
+};
+static const unsigned char kat3303_persstr[] = {0};
+static const unsigned char kat3303_entropyinpr1[] = {
+ 0x65, 0xe2, 0x25, 0xef, 0xf0, 0xdc, 0xe8, 0x6e, 0x76, 0x3b, 0x0d, 0x94,
+ 0x0c, 0x62, 0x62, 0xce, 0xb3, 0x5e, 0x14, 0x72, 0x50, 0x27, 0xcc, 0xe0,
+};
+static const unsigned char kat3303_addinpr1[] = {0};
+static const unsigned char kat3303_entropyinpr2[] = {
+ 0x7a, 0xa6, 0xd4, 0x60, 0x39, 0xc2, 0x9d, 0x02, 0x42, 0xe9, 0x65, 0x1c,
+ 0xf6, 0x46, 0xa1, 0x69, 0x5b, 0x58, 0x54, 0x03, 0x1d, 0x6e, 0xe3, 0x11,
+};
+static const unsigned char kat3303_addinpr2[] = {0};
+static const unsigned char kat3303_retbits[] = {
+ 0x52, 0x3c, 0x4a, 0x8d, 0xa0, 0xb9, 0x68, 0xb1, 0x62, 0x19, 0x5a, 0x4c,
+ 0x83, 0x08, 0x12, 0x88, 0x62, 0xe8, 0xdc, 0x50, 0x9c, 0x33, 0x90, 0xd2,
+ 0x75, 0x86, 0x69, 0x96, 0x16, 0xd7, 0xcf, 0x8b, 0x7e, 0xe7, 0x47, 0xd3,
+ 0x48, 0xa2, 0xf2, 0xad, 0x76, 0x79, 0xb1, 0xb5, 0xf6, 0x80, 0xf0, 0x02,
+ 0x76, 0x5b, 0x28, 0x5d, 0xaf, 0x4c, 0xab, 0xf1, 0x1d, 0x47, 0xa0, 0x40,
+ 0xb7, 0x38, 0x80, 0x1b,
+};
+static const struct drbg_kat_pr_true kat3303_t = {
+ 2, kat3303_entropyin, kat3303_nonce, kat3303_persstr,
+ kat3303_entropyinpr1, kat3303_addinpr1, kat3303_entropyinpr2,
+ kat3303_addinpr2, kat3303_retbits
+};
+static const struct drbg_kat kat3303 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3303_t
+};
+
+static const unsigned char kat3304_entropyin[] = {
+ 0x55, 0x02, 0x1e, 0xf0, 0x0b, 0x1e, 0xcf, 0xb8, 0x69, 0xee, 0xf3, 0xdb,
+ 0x0a, 0x0d, 0x23, 0xd1, 0x7b, 0x63, 0xb3, 0xe4, 0x57, 0x35, 0x24, 0x19,
+};
+static const unsigned char kat3304_nonce[] = {
+ 0x6c, 0x00, 0xea, 0xa2, 0x67, 0xc6, 0x9e, 0x6f, 0xc4, 0x98, 0x2e, 0xed,
+ 0xb8, 0xee, 0x1e, 0x79,
+};
+static const unsigned char kat3304_persstr[] = {0};
+static const unsigned char kat3304_entropyinpr1[] = {
+ 0x35, 0x0d, 0x2a, 0x14, 0xf7, 0x81, 0xb9, 0xe1, 0x52, 0x6b, 0x44, 0x04,
+ 0xe8, 0x16, 0xa5, 0xf4, 0xa7, 0x55, 0xa9, 0xe6, 0x82, 0x21, 0x54, 0x85,
+};
+static const unsigned char kat3304_addinpr1[] = {0};
+static const unsigned char kat3304_entropyinpr2[] = {
+ 0x20, 0x2d, 0x43, 0xb4, 0x3c, 0x98, 0x80, 0x52, 0x30, 0xd1, 0xa1, 0x22,
+ 0xb8, 0x9a, 0x65, 0x42, 0x76, 0xf5, 0xd0, 0x92, 0x95, 0xac, 0x81, 0x43,
+};
+static const unsigned char kat3304_addinpr2[] = {0};
+static const unsigned char kat3304_retbits[] = {
+ 0x81, 0x4b, 0xc0, 0xb4, 0xb1, 0xf4, 0x71, 0x1a, 0x20, 0x46, 0x21, 0xc5,
+ 0x4d, 0xff, 0xff, 0x67, 0x64, 0xe3, 0x55, 0xd5, 0x42, 0x18, 0xe4, 0x4c,
+ 0xc4, 0xb7, 0x6c, 0x9e, 0x79, 0x44, 0x79, 0xa5, 0x54, 0xa3, 0x39, 0xb3,
+ 0x35, 0xfa, 0xcf, 0x5e, 0x72, 0xe1, 0xea, 0x4b, 0x26, 0xb2, 0x57, 0x8b,
+ 0xb4, 0xc7, 0xda, 0x89, 0x80, 0xea, 0xbc, 0x7d, 0xec, 0x4e, 0x32, 0x47,
+ 0x62, 0x20, 0xde, 0x6e,
+};
+static const struct drbg_kat_pr_true kat3304_t = {
+ 3, kat3304_entropyin, kat3304_nonce, kat3304_persstr,
+ kat3304_entropyinpr1, kat3304_addinpr1, kat3304_entropyinpr2,
+ kat3304_addinpr2, kat3304_retbits
+};
+static const struct drbg_kat kat3304 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3304_t
+};
+
+static const unsigned char kat3305_entropyin[] = {
+ 0x2e, 0xb3, 0xae, 0x37, 0x60, 0xb6, 0x80, 0xa0, 0x26, 0xcb, 0x70, 0x98,
+ 0x1b, 0x28, 0x46, 0x2c, 0x14, 0x6a, 0x48, 0x39, 0xfe, 0xba, 0x34, 0xc5,
+};
+static const unsigned char kat3305_nonce[] = {
+ 0x1c, 0x77, 0x49, 0x39, 0xf2, 0xfd, 0x46, 0xa6, 0x34, 0x3a, 0x9c, 0x56,
+ 0x9d, 0xeb, 0xef, 0x62,
+};
+static const unsigned char kat3305_persstr[] = {0};
+static const unsigned char kat3305_entropyinpr1[] = {
+ 0x16, 0x75, 0x18, 0x83, 0x59, 0x5b, 0xa7, 0xa1, 0xa0, 0xda, 0x38, 0x3e,
+ 0x25, 0x8f, 0x11, 0xa1, 0xc8, 0x2d, 0x39, 0x9d, 0x16, 0x3b, 0x79, 0x26,
+};
+static const unsigned char kat3305_addinpr1[] = {0};
+static const unsigned char kat3305_entropyinpr2[] = {
+ 0x7b, 0x2a, 0x0f, 0x3e, 0xc4, 0x8d, 0x7a, 0x62, 0x6a, 0x02, 0x18, 0x25,
+ 0xa9, 0x91, 0x24, 0xf9, 0x0f, 0x2a, 0xcb, 0xc5, 0x09, 0x74, 0x1b, 0x89,
+};
+static const unsigned char kat3305_addinpr2[] = {0};
+static const unsigned char kat3305_retbits[] = {
+ 0xc4, 0x2e, 0x67, 0x6d, 0x9a, 0x7b, 0x0c, 0x2a, 0xd6, 0x90, 0x98, 0xa6,
+ 0x4e, 0x10, 0x36, 0x48, 0x95, 0x02, 0x97, 0xaa, 0x10, 0x3b, 0xd2, 0xfa,
+ 0x4a, 0x35, 0xac, 0xd4, 0xec, 0x85, 0x15, 0xa3, 0x87, 0x94, 0x8f, 0x3b,
+ 0xff, 0xca, 0xbf, 0x05, 0x2a, 0xeb, 0xce, 0x6e, 0x2b, 0x7b, 0x58, 0xd4,
+ 0x0a, 0x8e, 0x9f, 0xe1, 0x94, 0x52, 0x31, 0x40, 0xc9, 0x5d, 0xf1, 0xc2,
+ 0x3f, 0x92, 0x2e, 0x50,
+};
+static const struct drbg_kat_pr_true kat3305_t = {
+ 4, kat3305_entropyin, kat3305_nonce, kat3305_persstr,
+ kat3305_entropyinpr1, kat3305_addinpr1, kat3305_entropyinpr2,
+ kat3305_addinpr2, kat3305_retbits
+};
+static const struct drbg_kat kat3305 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3305_t
+};
+
+static const unsigned char kat3306_entropyin[] = {
+ 0x55, 0xe8, 0xc6, 0x05, 0x2e, 0xfa, 0x83, 0x9a, 0xc1, 0x4d, 0x63, 0x2f,
+ 0xa6, 0x9c, 0xc1, 0xbf, 0x74, 0x2d, 0x6b, 0x24, 0x9e, 0x4a, 0xa8, 0x0f,
+};
+static const unsigned char kat3306_nonce[] = {
+ 0x27, 0xfb, 0xe6, 0xd5, 0x7d, 0x5b, 0x7f, 0x33, 0x06, 0x31, 0x2a, 0x5a,
+ 0x50, 0x1c, 0xc4, 0x69,
+};
+static const unsigned char kat3306_persstr[] = {0};
+static const unsigned char kat3306_entropyinpr1[] = {
+ 0x81, 0x1c, 0xdd, 0xf9, 0x20, 0x2f, 0x2b, 0x9b, 0xcc, 0x35, 0x53, 0x9c,
+ 0x37, 0xf4, 0xe2, 0x75, 0x97, 0x93, 0x8c, 0xff, 0x74, 0x3c, 0x25, 0x8c,
+};
+static const unsigned char kat3306_addinpr1[] = {0};
+static const unsigned char kat3306_entropyinpr2[] = {
+ 0x73, 0xef, 0x38, 0xcf, 0xa3, 0x97, 0x70, 0xc9, 0x0b, 0x4f, 0x05, 0xcc,
+ 0xda, 0xe4, 0x92, 0x27, 0x8f, 0xc6, 0x8d, 0x1e, 0x3e, 0x56, 0x9c, 0xa7,
+};
+static const unsigned char kat3306_addinpr2[] = {0};
+static const unsigned char kat3306_retbits[] = {
+ 0x12, 0x87, 0xf4, 0x05, 0xa8, 0x90, 0x05, 0xd6, 0x73, 0x8b, 0x73, 0xb1,
+ 0x51, 0x6e, 0x4b, 0xb1, 0xb2, 0x25, 0x85, 0x43, 0xd2, 0x4d, 0x18, 0xc9,
+ 0xe5, 0x34, 0x10, 0x28, 0xc3, 0x9b, 0x21, 0x7c, 0xe7, 0xba, 0xce, 0xad,
+ 0xe8, 0x0f, 0xe0, 0x33, 0x50, 0x4c, 0xaa, 0x9a, 0x2b, 0x47, 0xcd, 0x2c,
+ 0x7b, 0x3c, 0xce, 0xc4, 0x73, 0x62, 0x3c, 0x75, 0x26, 0x07, 0x22, 0xb7,
+ 0x18, 0x2c, 0xb6, 0x63,
+};
+static const struct drbg_kat_pr_true kat3306_t = {
+ 5, kat3306_entropyin, kat3306_nonce, kat3306_persstr,
+ kat3306_entropyinpr1, kat3306_addinpr1, kat3306_entropyinpr2,
+ kat3306_addinpr2, kat3306_retbits
+};
+static const struct drbg_kat kat3306 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3306_t
+};
+
+static const unsigned char kat3307_entropyin[] = {
+ 0x71, 0x53, 0xb4, 0xec, 0x44, 0x6c, 0x75, 0x7a, 0xbc, 0x46, 0x1f, 0x04,
+ 0x52, 0x4f, 0x82, 0xaf, 0x9a, 0xe1, 0x7f, 0xa1, 0x43, 0x2c, 0x6f, 0x07,
+};
+static const unsigned char kat3307_nonce[] = {
+ 0x2e, 0xaa, 0xb2, 0x16, 0x66, 0x94, 0x67, 0x4b, 0x26, 0x3f, 0x65, 0xfe,
+ 0x3b, 0x1f, 0x27, 0x3e,
+};
+static const unsigned char kat3307_persstr[] = {0};
+static const unsigned char kat3307_entropyinpr1[] = {
+ 0xf7, 0x95, 0xfe, 0xa7, 0x05, 0x26, 0xb1, 0xb0, 0xa5, 0xfc, 0xdc, 0x1b,
+ 0x0b, 0x21, 0xa2, 0x2b, 0xbc, 0x16, 0x31, 0xac, 0x6b, 0x58, 0x21, 0x19,
+};
+static const unsigned char kat3307_addinpr1[] = {0};
+static const unsigned char kat3307_entropyinpr2[] = {
+ 0x18, 0xfd, 0x4c, 0xe8, 0xb7, 0x42, 0x99, 0xda, 0x60, 0x64, 0x9c, 0xd8,
+ 0x06, 0x80, 0xdc, 0x49, 0x2b, 0xb1, 0x9d, 0x64, 0xf6, 0x93, 0x1f, 0xaf,
+};
+static const unsigned char kat3307_addinpr2[] = {0};
+static const unsigned char kat3307_retbits[] = {
+ 0x72, 0x7f, 0x6c, 0x39, 0x24, 0x93, 0x70, 0xbb, 0xaf, 0xb8, 0xa6, 0x4a,
+ 0xb5, 0x25, 0xee, 0xff, 0x32, 0xa2, 0x41, 0xa7, 0xdc, 0x19, 0xd5, 0xc7,
+ 0xe3, 0x4f, 0x95, 0xba, 0xed, 0x54, 0x0b, 0xee, 0x1b, 0x3b, 0x9e, 0xee,
+ 0x6a, 0x56, 0xaa, 0x8f, 0x89, 0xff, 0x19, 0xaf, 0x7b, 0x5b, 0x8d, 0x94,
+ 0x72, 0xfb, 0x9b, 0x89, 0xc8, 0xc1, 0x11, 0xd3, 0x3c, 0xe4, 0xc1, 0x6f,
+ 0x4c, 0xb7, 0x42, 0xe6,
+};
+static const struct drbg_kat_pr_true kat3307_t = {
+ 6, kat3307_entropyin, kat3307_nonce, kat3307_persstr,
+ kat3307_entropyinpr1, kat3307_addinpr1, kat3307_entropyinpr2,
+ kat3307_addinpr2, kat3307_retbits
+};
+static const struct drbg_kat kat3307 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3307_t
+};
+
+static const unsigned char kat3308_entropyin[] = {
+ 0x0b, 0x8a, 0x24, 0xa9, 0xc3, 0x72, 0xaa, 0x3a, 0x40, 0x75, 0x37, 0xd8,
+ 0xef, 0x2f, 0x7c, 0x43, 0x22, 0x1c, 0xa9, 0x10, 0xe0, 0x54, 0x7b, 0x37,
+};
+static const unsigned char kat3308_nonce[] = {
+ 0x5e, 0x64, 0x4f, 0x69, 0x4b, 0x7c, 0xbb, 0xb9, 0xe7, 0xb1, 0x5e, 0x75,
+ 0x96, 0xd9, 0x9d, 0x58,
+};
+static const unsigned char kat3308_persstr[] = {0};
+static const unsigned char kat3308_entropyinpr1[] = {
+ 0xa3, 0x86, 0x4f, 0x4a, 0x3a, 0x2b, 0xf8, 0xb6, 0x89, 0x78, 0xcc, 0x66,
+ 0xae, 0x04, 0x6b, 0x95, 0x3f, 0x6c, 0xc7, 0x53, 0xb2, 0x67, 0xd2, 0x9c,
+};
+static const unsigned char kat3308_addinpr1[] = {0};
+static const unsigned char kat3308_entropyinpr2[] = {
+ 0x10, 0xf9, 0x69, 0x10, 0xc2, 0xa1, 0x46, 0xdd, 0x1b, 0xb9, 0x69, 0x2b,
+ 0x6e, 0xf8, 0x83, 0xf3, 0x5a, 0xdb, 0x0c, 0x88, 0x42, 0x65, 0x03, 0x93,
+};
+static const unsigned char kat3308_addinpr2[] = {0};
+static const unsigned char kat3308_retbits[] = {
+ 0x56, 0x13, 0x04, 0x4b, 0x9c, 0x3f, 0xcf, 0x7d, 0xf6, 0xaf, 0xb4, 0x2e,
+ 0xcd, 0x95, 0xe4, 0x03, 0x13, 0x5a, 0x01, 0x9c, 0xfd, 0x51, 0x5b, 0xfb,
+ 0x90, 0x22, 0x8a, 0xf8, 0xe9, 0x50, 0x5c, 0x9e, 0xd6, 0x84, 0x09, 0x3e,
+ 0xfb, 0xf7, 0xd5, 0x1d, 0x14, 0xab, 0x9e, 0xf0, 0x6f, 0x35, 0xf8, 0x1e,
+ 0x24, 0xa0, 0x65, 0xe3, 0xb6, 0x61, 0x83, 0x65, 0x5b, 0x9e, 0xcf, 0x32,
+ 0xf2, 0xb0, 0x4f, 0x8e,
+};
+static const struct drbg_kat_pr_true kat3308_t = {
+ 7, kat3308_entropyin, kat3308_nonce, kat3308_persstr,
+ kat3308_entropyinpr1, kat3308_addinpr1, kat3308_entropyinpr2,
+ kat3308_addinpr2, kat3308_retbits
+};
+static const struct drbg_kat kat3308 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3308_t
+};
+
+static const unsigned char kat3309_entropyin[] = {
+ 0x0c, 0xfd, 0x36, 0xe8, 0x79, 0x96, 0xd8, 0x33, 0xb9, 0x22, 0xb4, 0xd9,
+ 0xb5, 0x46, 0x91, 0xf7, 0xd9, 0x52, 0x08, 0x13, 0x05, 0xff, 0xbc, 0x60,
+};
+static const unsigned char kat3309_nonce[] = {
+ 0xde, 0xee, 0x33, 0x10, 0x31, 0xec, 0x17, 0xb1, 0x42, 0xd8, 0x9b, 0x67,
+ 0x9d, 0xe7, 0x8a, 0xe8,
+};
+static const unsigned char kat3309_persstr[] = {0};
+static const unsigned char kat3309_entropyinpr1[] = {
+ 0xe2, 0xa9, 0xe8, 0xb0, 0x35, 0xf3, 0x19, 0xf4, 0x9b, 0x76, 0x18, 0xc3,
+ 0xbc, 0x4e, 0xcb, 0xc5, 0xb9, 0x4f, 0x80, 0xdd, 0xb6, 0xee, 0xba, 0x16,
+};
+static const unsigned char kat3309_addinpr1[] = {0};
+static const unsigned char kat3309_entropyinpr2[] = {
+ 0xa0, 0xae, 0xdc, 0x1b, 0xc2, 0x75, 0x25, 0xc4, 0x73, 0xec, 0x69, 0x57,
+ 0xf4, 0x6e, 0x38, 0x04, 0x64, 0x29, 0x97, 0xbb, 0xf1, 0x5c, 0xad, 0xd4,
+};
+static const unsigned char kat3309_addinpr2[] = {0};
+static const unsigned char kat3309_retbits[] = {
+ 0x56, 0x9f, 0xc2, 0xf0, 0x3f, 0xd5, 0x01, 0x18, 0xa2, 0xb6, 0x18, 0x79,
+ 0xf8, 0xf3, 0xd4, 0xe0, 0xbd, 0xc4, 0xf7, 0x6c, 0x15, 0x06, 0x38, 0x18,
+ 0x2d, 0xda, 0x2b, 0x11, 0x5a, 0x9f, 0x13, 0x6c, 0x9c, 0xf6, 0xb9, 0x9f,
+ 0x7e, 0xf6, 0x96, 0x8d, 0xca, 0xf9, 0x48, 0x0a, 0x80, 0x8a, 0x4c, 0x4d,
+ 0x45, 0xd5, 0xb5, 0x48, 0x5e, 0xb5, 0x0c, 0x4c, 0x48, 0xdc, 0x54, 0x29,
+ 0xa7, 0x8f, 0x67, 0x03,
+};
+static const struct drbg_kat_pr_true kat3309_t = {
+ 8, kat3309_entropyin, kat3309_nonce, kat3309_persstr,
+ kat3309_entropyinpr1, kat3309_addinpr1, kat3309_entropyinpr2,
+ kat3309_addinpr2, kat3309_retbits
+};
+static const struct drbg_kat kat3309 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3309_t
+};
+
+static const unsigned char kat3310_entropyin[] = {
+ 0x6b, 0x05, 0x01, 0x43, 0x34, 0x99, 0x05, 0x91, 0xbb, 0xbc, 0x30, 0xdd,
+ 0x60, 0x11, 0xaa, 0x69, 0x98, 0x82, 0x84, 0xac, 0x3f, 0xbc, 0x17, 0x32,
+};
+static const unsigned char kat3310_nonce[] = {
+ 0x6f, 0x82, 0xd5, 0x79, 0xbc, 0x6b, 0xcf, 0x7a, 0x3f, 0x01, 0x0c, 0x93,
+ 0x89, 0x8c, 0xee, 0xfc,
+};
+static const unsigned char kat3310_persstr[] = {0};
+static const unsigned char kat3310_entropyinpr1[] = {
+ 0xa9, 0xdb, 0x48, 0x61, 0x86, 0x86, 0x56, 0x14, 0xce, 0x58, 0xe4, 0x26,
+ 0x5b, 0xcc, 0xab, 0x7c, 0x73, 0x59, 0x9f, 0x9a, 0x2b, 0x89, 0xf1, 0x3e,
+};
+static const unsigned char kat3310_addinpr1[] = {0};
+static const unsigned char kat3310_entropyinpr2[] = {
+ 0x25, 0x2b, 0x29, 0xb6, 0x5b, 0x9c, 0x0a, 0x4e, 0x7b, 0x00, 0x65, 0x42,
+ 0x6f, 0xca, 0x03, 0x79, 0xdf, 0xb9, 0x8b, 0x37, 0x06, 0x8c, 0xeb, 0x38,
+};
+static const unsigned char kat3310_addinpr2[] = {0};
+static const unsigned char kat3310_retbits[] = {
+ 0xce, 0xdc, 0xf2, 0x3b, 0x01, 0xd7, 0x98, 0x18, 0x19, 0xf3, 0xfb, 0x57,
+ 0xf7, 0xad, 0x51, 0xf2, 0x74, 0x9c, 0xff, 0xdb, 0x97, 0x7c, 0xcd, 0x65,
+ 0x26, 0xa2, 0xdc, 0x52, 0x92, 0xa1, 0x49, 0xd5, 0xca, 0x48, 0x1c, 0xe5,
+ 0xb2, 0x97, 0xc8, 0x65, 0x9b, 0xed, 0xd0, 0xdd, 0x1d, 0x21, 0x55, 0x2d,
+ 0x29, 0x26, 0x28, 0x67, 0x49, 0x7e, 0xe0, 0xd4, 0x73, 0x53, 0x4c, 0xf7,
+ 0xc6, 0xe1, 0xd3, 0x71,
+};
+static const struct drbg_kat_pr_true kat3310_t = {
+ 9, kat3310_entropyin, kat3310_nonce, kat3310_persstr,
+ kat3310_entropyinpr1, kat3310_addinpr1, kat3310_entropyinpr2,
+ kat3310_addinpr2, kat3310_retbits
+};
+static const struct drbg_kat kat3310 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3310_t
+};
+
+static const unsigned char kat3311_entropyin[] = {
+ 0xe7, 0x42, 0x44, 0xd5, 0xd8, 0x24, 0xa4, 0x22, 0x1e, 0xcc, 0x74, 0x82,
+ 0x37, 0x13, 0x50, 0xc4, 0x9e, 0xe3, 0x9a, 0x01, 0x54, 0xa1, 0xbd, 0x5e,
+};
+static const unsigned char kat3311_nonce[] = {
+ 0xfa, 0xbc, 0x00, 0x11, 0x0b, 0x66, 0x8b, 0x3f, 0x71, 0xdd, 0x65, 0xb8,
+ 0x20, 0x0a, 0xd4, 0xc9,
+};
+static const unsigned char kat3311_persstr[] = {0};
+static const unsigned char kat3311_entropyinpr1[] = {
+ 0xd7, 0x8a, 0xa0, 0xff, 0x03, 0xa1, 0x9f, 0x38, 0xcb, 0xe7, 0x01, 0x7e,
+ 0xe1, 0x0e, 0xb5, 0xca, 0x3c, 0x5c, 0x9a, 0x05, 0x6e, 0xe5, 0x28, 0x63,
+};
+static const unsigned char kat3311_addinpr1[] = {0};
+static const unsigned char kat3311_entropyinpr2[] = {
+ 0xfe, 0x4a, 0xac, 0x63, 0xa7, 0x4e, 0x72, 0x72, 0xb8, 0x53, 0xd4, 0xa9,
+ 0x72, 0xd3, 0x6f, 0x7e, 0xf9, 0xeb, 0x13, 0x2f, 0x37, 0x34, 0x85, 0xe1,
+};
+static const unsigned char kat3311_addinpr2[] = {0};
+static const unsigned char kat3311_retbits[] = {
+ 0x52, 0x0b, 0xc1, 0x77, 0xa8, 0x3d, 0xf2, 0xff, 0x4a, 0xdd, 0xb3, 0xd4,
+ 0xf6, 0x5b, 0x6c, 0x5d, 0xec, 0x05, 0x88, 0x57, 0xd3, 0xef, 0x09, 0x74,
+ 0xe0, 0x08, 0xa3, 0x1e, 0x66, 0xad, 0x6d, 0xca, 0x84, 0x6e, 0xc0, 0x3b,
+ 0x27, 0x9c, 0xbb, 0x81, 0x80, 0xdf, 0xc0, 0x7a, 0x5a, 0xf6, 0x12, 0x78,
+ 0xd6, 0x83, 0x65, 0x83, 0x7f, 0x99, 0xf4, 0x2c, 0x4a, 0x19, 0x5f, 0x25,
+ 0xdb, 0xae, 0xd6, 0xd6,
+};
+static const struct drbg_kat_pr_true kat3311_t = {
+ 10, kat3311_entropyin, kat3311_nonce, kat3311_persstr,
+ kat3311_entropyinpr1, kat3311_addinpr1, kat3311_entropyinpr2,
+ kat3311_addinpr2, kat3311_retbits
+};
+static const struct drbg_kat kat3311 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3311_t
+};
+
+static const unsigned char kat3312_entropyin[] = {
+ 0xdd, 0x6b, 0x07, 0x15, 0xf8, 0xba, 0x83, 0x03, 0xac, 0xda, 0xdd, 0x3b,
+ 0x86, 0x65, 0x19, 0x11, 0xec, 0xf0, 0x50, 0x74, 0xf2, 0xd4, 0x87, 0xca,
+};
+static const unsigned char kat3312_nonce[] = {
+ 0xb4, 0xbb, 0x8d, 0xe7, 0x57, 0x1a, 0x66, 0x25, 0x0d, 0xe7, 0x71, 0xcd,
+ 0x2d, 0x1f, 0x54, 0x75,
+};
+static const unsigned char kat3312_persstr[] = {0};
+static const unsigned char kat3312_entropyinpr1[] = {
+ 0x10, 0xd0, 0x18, 0xad, 0x13, 0x69, 0xf9, 0x13, 0xc1, 0x54, 0xd4, 0x2e,
+ 0x13, 0xaa, 0xbb, 0x35, 0x7e, 0xfe, 0xb5, 0x90, 0x4b, 0x61, 0xd1, 0x33,
+};
+static const unsigned char kat3312_addinpr1[] = {0};
+static const unsigned char kat3312_entropyinpr2[] = {
+ 0x26, 0x25, 0xb4, 0xa6, 0x8f, 0x67, 0xa4, 0x21, 0x17, 0x72, 0xae, 0x46,
+ 0x02, 0xca, 0x46, 0x0c, 0xbd, 0xbe, 0x77, 0x51, 0x84, 0xae, 0xdf, 0x10,
+};
+static const unsigned char kat3312_addinpr2[] = {0};
+static const unsigned char kat3312_retbits[] = {
+ 0x3b, 0x86, 0x62, 0xd2, 0xa7, 0xe8, 0x5d, 0xb3, 0x2f, 0x82, 0xca, 0x08,
+ 0x24, 0x09, 0x8d, 0x3c, 0xee, 0x71, 0xe0, 0xcf, 0xe6, 0x4b, 0xf4, 0x8a,
+ 0xa7, 0xc5, 0x82, 0xc6, 0x7f, 0x2f, 0x33, 0xfa, 0x22, 0x58, 0x10, 0x9e,
+ 0xe6, 0x38, 0x96, 0x27, 0x70, 0x7f, 0x30, 0xe2, 0xaa, 0xad, 0x66, 0xa3,
+ 0x4e, 0xfc, 0x52, 0xb0, 0xad, 0x5e, 0x85, 0x1a, 0xb9, 0xa0, 0x1a, 0xdf,
+ 0x52, 0x97, 0x69, 0x1b,
+};
+static const struct drbg_kat_pr_true kat3312_t = {
+ 11, kat3312_entropyin, kat3312_nonce, kat3312_persstr,
+ kat3312_entropyinpr1, kat3312_addinpr1, kat3312_entropyinpr2,
+ kat3312_addinpr2, kat3312_retbits
+};
+static const struct drbg_kat kat3312 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3312_t
+};
+
+static const unsigned char kat3313_entropyin[] = {
+ 0x8a, 0x41, 0x68, 0x2f, 0x93, 0x71, 0x18, 0xce, 0x50, 0xc6, 0x2a, 0x0a,
+ 0x94, 0xea, 0xe5, 0x80, 0x0c, 0x1e, 0x29, 0x6e, 0x6b, 0xa6, 0x57, 0xb2,
+};
+static const unsigned char kat3313_nonce[] = {
+ 0x52, 0xc9, 0x0e, 0x60, 0x5e, 0xd3, 0xde, 0x4f, 0xe0, 0x22, 0xde, 0xc2,
+ 0x62, 0xe1, 0x61, 0xe7,
+};
+static const unsigned char kat3313_persstr[] = {0};
+static const unsigned char kat3313_entropyinpr1[] = {
+ 0x85, 0x43, 0x67, 0xa3, 0xee, 0x0f, 0x83, 0x53, 0x81, 0x06, 0x25, 0x71,
+ 0xad, 0x83, 0x1b, 0x31, 0xf9, 0x2d, 0x08, 0xd6, 0xe7, 0xbf, 0x2f, 0x00,
+};
+static const unsigned char kat3313_addinpr1[] = {0};
+static const unsigned char kat3313_entropyinpr2[] = {
+ 0x35, 0x01, 0xa3, 0x55, 0x21, 0x0c, 0x8d, 0xdd, 0x72, 0x83, 0x44, 0x39,
+ 0xfb, 0x66, 0x4c, 0xf5, 0x5e, 0x56, 0x0b, 0xd9, 0x9f, 0xce, 0xb9, 0x3b,
+};
+static const unsigned char kat3313_addinpr2[] = {0};
+static const unsigned char kat3313_retbits[] = {
+ 0x83, 0xb2, 0xae, 0xfe, 0xa6, 0x95, 0x4a, 0x67, 0xb4, 0x3c, 0x58, 0x48,
+ 0xee, 0x75, 0xaf, 0x33, 0xb4, 0x18, 0x41, 0xa8, 0xd8, 0x65, 0x8b, 0x5b,
+ 0x7a, 0xd3, 0x68, 0xef, 0x30, 0x59, 0x45, 0x4b, 0xb3, 0xf1, 0x6d, 0x4f,
+ 0x2d, 0xaa, 0x6c, 0xb5, 0x04, 0x4a, 0x6b, 0x60, 0xcb, 0xf5, 0x46, 0xa3,
+ 0x93, 0x2f, 0xe7, 0x4f, 0xd0, 0xf9, 0x4c, 0x14, 0x11, 0xe1, 0x13, 0x88,
+ 0x7c, 0x2d, 0x67, 0x81,
+};
+static const struct drbg_kat_pr_true kat3313_t = {
+ 12, kat3313_entropyin, kat3313_nonce, kat3313_persstr,
+ kat3313_entropyinpr1, kat3313_addinpr1, kat3313_entropyinpr2,
+ kat3313_addinpr2, kat3313_retbits
+};
+static const struct drbg_kat kat3313 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3313_t
+};
+
+static const unsigned char kat3314_entropyin[] = {
+ 0xbd, 0x8f, 0x2a, 0x00, 0x0a, 0xbb, 0x7f, 0x8a, 0x45, 0x0b, 0x22, 0xee,
+ 0x4f, 0x86, 0x47, 0x32, 0x62, 0x9d, 0x81, 0x28, 0x92, 0x7e, 0x94, 0x5d,
+};
+static const unsigned char kat3314_nonce[] = {
+ 0x4f, 0x36, 0x89, 0x65, 0x42, 0xaf, 0xff, 0x79, 0x7f, 0xaf, 0x79, 0xf7,
+ 0xd4, 0x03, 0x60, 0x80,
+};
+static const unsigned char kat3314_persstr[] = {0};
+static const unsigned char kat3314_entropyinpr1[] = {
+ 0xef, 0xa3, 0x45, 0x94, 0x69, 0x81, 0x52, 0xdb, 0x2d, 0xad, 0xc8, 0xbe,
+ 0xcd, 0xcf, 0x4f, 0xbb, 0x0e, 0xcf, 0x6f, 0x56, 0xa8, 0x9f, 0x02, 0x39,
+};
+static const unsigned char kat3314_addinpr1[] = {0};
+static const unsigned char kat3314_entropyinpr2[] = {
+ 0x88, 0x64, 0xde, 0xe7, 0x55, 0xe1, 0xe6, 0x20, 0x78, 0x9d, 0x48, 0x65,
+ 0x70, 0x6a, 0xde, 0xbb, 0xbc, 0x28, 0x36, 0x22, 0xb3, 0xc2, 0x8e, 0x95,
+};
+static const unsigned char kat3314_addinpr2[] = {0};
+static const unsigned char kat3314_retbits[] = {
+ 0x83, 0x27, 0x0f, 0x47, 0xcd, 0xf5, 0x77, 0xba, 0x39, 0xfd, 0x97, 0x81,
+ 0x0d, 0x1a, 0xfd, 0xb6, 0x8a, 0xc1, 0xf5, 0xf4, 0x7d, 0xd6, 0x12, 0xf5,
+ 0xe1, 0x55, 0xb2, 0x42, 0x2f, 0xa8, 0xa6, 0x18, 0x5c, 0x48, 0xa3, 0x9e,
+ 0xd2, 0x12, 0x62, 0x40, 0xa9, 0xcf, 0x87, 0x9b, 0xab, 0xd4, 0xdb, 0x6d,
+ 0xdd, 0x7d, 0x97, 0x84, 0x39, 0x17, 0x71, 0xf9, 0x8e, 0x01, 0x16, 0xd1,
+ 0xbb, 0x8e, 0xff, 0xcc,
+};
+static const struct drbg_kat_pr_true kat3314_t = {
+ 13, kat3314_entropyin, kat3314_nonce, kat3314_persstr,
+ kat3314_entropyinpr1, kat3314_addinpr1, kat3314_entropyinpr2,
+ kat3314_addinpr2, kat3314_retbits
+};
+static const struct drbg_kat kat3314 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3314_t
+};
+
+static const unsigned char kat3315_entropyin[] = {
+ 0xef, 0xfe, 0xb9, 0xcc, 0x89, 0x07, 0x9c, 0xd8, 0x96, 0xbe, 0x2d, 0xab,
+ 0x9e, 0xe2, 0xf4, 0xc8, 0xfb, 0x7a, 0xfb, 0xfa, 0xad, 0x38, 0x4c, 0x4a,
+};
+static const unsigned char kat3315_nonce[] = {
+ 0xdf, 0x00, 0x92, 0xa5, 0xda, 0x10, 0xe6, 0x0a, 0xc6, 0x96, 0x95, 0xc2,
+ 0xfc, 0x03, 0xf0, 0xad,
+};
+static const unsigned char kat3315_persstr[] = {0};
+static const unsigned char kat3315_entropyinpr1[] = {
+ 0x43, 0x8a, 0x63, 0x46, 0xd0, 0x14, 0x19, 0xcc, 0x88, 0x04, 0x6c, 0x23,
+ 0x14, 0x97, 0x45, 0xd1, 0xa2, 0xb7, 0x5a, 0x51, 0x76, 0xb9, 0xb7, 0x56,
+};
+static const unsigned char kat3315_addinpr1[] = {0};
+static const unsigned char kat3315_entropyinpr2[] = {
+ 0xb5, 0x38, 0xb9, 0xe6, 0x2d, 0x8a, 0xb6, 0xa0, 0x16, 0xf8, 0x00, 0x46,
+ 0x25, 0x94, 0xf7, 0xce, 0x29, 0x8e, 0xe6, 0x6d, 0xda, 0xed, 0xa1, 0x99,
+};
+static const unsigned char kat3315_addinpr2[] = {0};
+static const unsigned char kat3315_retbits[] = {
+ 0xa0, 0xaf, 0xb4, 0x97, 0xcd, 0xcb, 0x73, 0xe1, 0x0f, 0xc6, 0x36, 0x2c,
+ 0xbf, 0x2b, 0x11, 0x7f, 0x28, 0x90, 0xd3, 0xdc, 0x6f, 0x4b, 0x88, 0xb8,
+ 0xe2, 0x8c, 0x9d, 0xea, 0x15, 0x90, 0x20, 0x12, 0x2b, 0x10, 0x7c, 0xa4,
+ 0xdc, 0x84, 0x74, 0xff, 0x9a, 0x2f, 0x1c, 0xaf, 0x07, 0xeb, 0x17, 0xb4,
+ 0xcf, 0xa6, 0x1d, 0x45, 0x41, 0x63, 0xe6, 0x91, 0x65, 0x20, 0xbc, 0x47,
+ 0x3a, 0x4f, 0x62, 0x06,
+};
+static const struct drbg_kat_pr_true kat3315_t = {
+ 14, kat3315_entropyin, kat3315_nonce, kat3315_persstr,
+ kat3315_entropyinpr1, kat3315_addinpr1, kat3315_entropyinpr2,
+ kat3315_addinpr2, kat3315_retbits
+};
+static const struct drbg_kat kat3315 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 0, 64, &kat3315_t
+};
+
+static const unsigned char kat3316_entropyin[] = {
+ 0x6f, 0x7f, 0xf6, 0xc0, 0x4c, 0x09, 0x9e, 0xbc, 0xdc, 0x4d, 0x53, 0x42,
+ 0xf8, 0x27, 0x27, 0x23, 0xd6, 0x4d, 0xde, 0x80, 0x82, 0x92, 0xce, 0x2a,
+};
+static const unsigned char kat3316_nonce[] = {
+ 0x49, 0x51, 0xa2, 0x54, 0xfb, 0xa3, 0xf5, 0x54, 0x3c, 0xd0, 0x79, 0xde,
+ 0x76, 0x57, 0x0c, 0x1a,
+};
+static const unsigned char kat3316_persstr[] = {0};
+static const unsigned char kat3316_entropyinpr1[] = {
+ 0x7e, 0x23, 0x57, 0x52, 0xe0, 0xf7, 0x91, 0xe8, 0x52, 0x33, 0xc9, 0xa6,
+ 0x7f, 0x56, 0x87, 0x55, 0x29, 0xbf, 0xc8, 0x1f, 0x3a, 0x5b, 0x1c, 0x96,
+};
+static const unsigned char kat3316_addinpr1[] = {
+ 0x0a, 0x12, 0x5b, 0xbf, 0x9b, 0xb1, 0x92, 0x76, 0xc9, 0x45, 0xfd, 0x5d,
+ 0x73, 0x26, 0xf8, 0x92, 0xb4, 0x90, 0x55, 0x8e, 0x63, 0xf6, 0xe1, 0xf7,
+ 0x73, 0x29, 0x31, 0x11, 0x11, 0xe8, 0x5a, 0x18,
+};
+static const unsigned char kat3316_entropyinpr2[] = {
+ 0xac, 0x11, 0x47, 0x10, 0xb4, 0x55, 0xbb, 0x97, 0xeb, 0x00, 0x5a, 0xbd,
+ 0xaa, 0x43, 0xa2, 0xd6, 0xbd, 0xb8, 0xad, 0x72, 0xbb, 0x23, 0x1d, 0xa8,
+};
+static const unsigned char kat3316_addinpr2[] = {
+ 0xfc, 0x35, 0x3e, 0xc1, 0x70, 0x3c, 0xe1, 0xb2, 0x83, 0xed, 0xc0, 0xf7,
+ 0x6e, 0x76, 0xb4, 0xb6, 0xf5, 0xf2, 0x08, 0xef, 0x56, 0xb1, 0x20, 0x60,
+ 0x40, 0x4c, 0xbb, 0x32, 0x35, 0x5c, 0x94, 0x17,
+};
+static const unsigned char kat3316_retbits[] = {
+ 0xa1, 0xe2, 0xdb, 0x67, 0x9d, 0xdc, 0x26, 0x96, 0x31, 0x66, 0x67, 0xfd,
+ 0xe3, 0x1e, 0xbc, 0x2b, 0x9f, 0xea, 0x01, 0x72, 0x50, 0xdf, 0xfd, 0x32,
+ 0xb2, 0x3b, 0x46, 0x86, 0x40, 0x73, 0xbe, 0x8b, 0x3c, 0x6b, 0xac, 0x56,
+ 0x72, 0x14, 0x23, 0x91, 0xcc, 0x12, 0x8b, 0x12, 0x30, 0xea, 0x13, 0xa2,
+ 0xff, 0x9e, 0x18, 0x24, 0x93, 0x30, 0x09, 0x62, 0x5b, 0xc6, 0xa8, 0xd2,
+ 0x9f, 0x47, 0x59, 0x41,
+};
+static const struct drbg_kat_pr_true kat3316_t = {
+ 0, kat3316_entropyin, kat3316_nonce, kat3316_persstr,
+ kat3316_entropyinpr1, kat3316_addinpr1, kat3316_entropyinpr2,
+ kat3316_addinpr2, kat3316_retbits
+};
+static const struct drbg_kat kat3316 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3316_t
+};
+
+static const unsigned char kat3317_entropyin[] = {
+ 0x36, 0xd1, 0x62, 0x02, 0x9d, 0x90, 0xf8, 0x30, 0x58, 0x7a, 0x6e, 0x35,
+ 0xd4, 0xec, 0xc8, 0x60, 0x2d, 0xda, 0x10, 0x98, 0xde, 0xc6, 0x8a, 0x69,
+};
+static const unsigned char kat3317_nonce[] = {
+ 0xa8, 0x87, 0x98, 0x4c, 0x23, 0x2a, 0x6d, 0x9f, 0x51, 0x5b, 0x4a, 0x3c,
+ 0xae, 0x33, 0x35, 0x4a,
+};
+static const unsigned char kat3317_persstr[] = {0};
+static const unsigned char kat3317_entropyinpr1[] = {
+ 0xae, 0xac, 0x85, 0x1a, 0x81, 0x0f, 0xa2, 0x1c, 0xe3, 0x8d, 0x47, 0x6d,
+ 0x03, 0xbf, 0xd9, 0xea, 0xe4, 0x5c, 0xa6, 0xe4, 0x4e, 0x60, 0xa4, 0xd1,
+};
+static const unsigned char kat3317_addinpr1[] = {
+ 0x9b, 0x94, 0x7e, 0x1e, 0x19, 0x92, 0x77, 0x76, 0x8c, 0xad, 0x0f, 0x09,
+ 0x83, 0xc2, 0xfb, 0x6d, 0xfd, 0xf0, 0x07, 0x71, 0xef, 0x6a, 0x6b, 0xcf,
+ 0xb8, 0x93, 0x8f, 0x55, 0xb8, 0x07, 0xd4, 0x05,
+};
+static const unsigned char kat3317_entropyinpr2[] = {
+ 0x81, 0xce, 0x73, 0x9b, 0x37, 0x3b, 0x5b, 0xee, 0xa4, 0xa4, 0xa6, 0xe9,
+ 0xfb, 0xb0, 0x12, 0x43, 0x46, 0x88, 0x23, 0xce, 0x05, 0x21, 0x13, 0x5a,
+};
+static const unsigned char kat3317_addinpr2[] = {
+ 0xce, 0x48, 0xf1, 0x42, 0xb3, 0x6a, 0xee, 0x5e, 0x23, 0xd6, 0x3a, 0x38,
+ 0x4c, 0x43, 0x33, 0xbb, 0xaa, 0x57, 0x6b, 0x3a, 0x49, 0xdc, 0xa1, 0x7e,
+ 0xc9, 0x95, 0x8f, 0x51, 0xca, 0x70, 0x5f, 0x51,
+};
+static const unsigned char kat3317_retbits[] = {
+ 0x69, 0xcd, 0x06, 0xc9, 0xa4, 0x8c, 0x89, 0xdc, 0x60, 0x86, 0x70, 0x70,
+ 0x12, 0x9e, 0xcf, 0x4e, 0xdf, 0x72, 0xe1, 0x9c, 0x67, 0x42, 0xf3, 0xf6,
+ 0xad, 0x1a, 0xe2, 0xa1, 0x0f, 0x02, 0x6b, 0x88, 0xd8, 0xbd, 0x74, 0xf8,
+ 0xb5, 0xe6, 0x68, 0xc2, 0x6f, 0x97, 0xd5, 0xae, 0xcd, 0x34, 0x3e, 0x01,
+ 0x86, 0x31, 0xd5, 0x43, 0x5b, 0x17, 0x42, 0xa6, 0xd9, 0xd1, 0xec, 0xf5,
+ 0xe0, 0x52, 0xca, 0x28,
+};
+static const struct drbg_kat_pr_true kat3317_t = {
+ 1, kat3317_entropyin, kat3317_nonce, kat3317_persstr,
+ kat3317_entropyinpr1, kat3317_addinpr1, kat3317_entropyinpr2,
+ kat3317_addinpr2, kat3317_retbits
+};
+static const struct drbg_kat kat3317 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3317_t
+};
+
+static const unsigned char kat3318_entropyin[] = {
+ 0x1a, 0x52, 0xf5, 0x16, 0x3e, 0x9d, 0x85, 0xc6, 0x0e, 0xd7, 0x81, 0x4e,
+ 0x34, 0x06, 0x2b, 0xef, 0x2a, 0x43, 0xb4, 0x25, 0x95, 0xdb, 0x94, 0x1a,
+};
+static const unsigned char kat3318_nonce[] = {
+ 0x53, 0xdb, 0xed, 0xfa, 0xe1, 0x55, 0x17, 0x10, 0x56, 0xb8, 0x88, 0x96,
+ 0xcd, 0x25, 0x13, 0x3c,
+};
+static const unsigned char kat3318_persstr[] = {0};
+static const unsigned char kat3318_entropyinpr1[] = {
+ 0xb8, 0x37, 0x00, 0x24, 0x8b, 0xd4, 0x13, 0xdc, 0xe6, 0x1d, 0x12, 0xfa,
+ 0x26, 0x27, 0x0a, 0xd5, 0x8c, 0x94, 0x22, 0xac, 0xb0, 0x96, 0x56, 0xdb,
+};
+static const unsigned char kat3318_addinpr1[] = {
+ 0x91, 0xd5, 0x5c, 0x47, 0x33, 0xfa, 0x29, 0x10, 0x07, 0x01, 0xed, 0x52,
+ 0x5b, 0xc0, 0x01, 0x96, 0x39, 0x46, 0x6c, 0x81, 0x7c, 0xc4, 0xb5, 0xbd,
+ 0xf6, 0x85, 0x78, 0xc7, 0x2c, 0xae, 0x5c, 0xca,
+};
+static const unsigned char kat3318_entropyinpr2[] = {
+ 0x3a, 0xac, 0x8e, 0x6a, 0x63, 0x6e, 0xd6, 0xab, 0xa5, 0xb1, 0xb9, 0x49,
+ 0x22, 0x53, 0x81, 0xfe, 0x27, 0xca, 0x5d, 0x7f, 0xe0, 0xcb, 0x46, 0x13,
+};
+static const unsigned char kat3318_addinpr2[] = {
+ 0x99, 0xa1, 0x42, 0x96, 0xc6, 0x96, 0xd4, 0x1b, 0xa1, 0x1d, 0x3a, 0xd0,
+ 0x36, 0xe4, 0xcf, 0x2b, 0xff, 0x39, 0x44, 0xd8, 0x66, 0x26, 0xb8, 0x92,
+ 0x53, 0xc5, 0x5c, 0x50, 0x41, 0x58, 0x62, 0x97,
+};
+static const unsigned char kat3318_retbits[] = {
+ 0x9c, 0xf2, 0xc5, 0x9d, 0x81, 0xd2, 0xcb, 0x8e, 0x3b, 0x21, 0xed, 0xd8,
+ 0xf2, 0x22, 0x17, 0x3f, 0x00, 0x3d, 0xa1, 0xe4, 0x0c, 0x5e, 0x18, 0x1c,
+ 0x29, 0x87, 0xb5, 0xab, 0x4c, 0xb4, 0x28, 0x64, 0x7f, 0x42, 0xe5, 0x00,
+ 0x26, 0xf7, 0xd4, 0xa5, 0x42, 0xad, 0x39, 0x28, 0x5e, 0x40, 0x16, 0x02,
+ 0x2c, 0x60, 0x8e, 0xc3, 0xbe, 0x45, 0x7d, 0xbd, 0x79, 0x4c, 0x90, 0xc6,
+ 0xbd, 0x54, 0x9b, 0x45,
+};
+static const struct drbg_kat_pr_true kat3318_t = {
+ 2, kat3318_entropyin, kat3318_nonce, kat3318_persstr,
+ kat3318_entropyinpr1, kat3318_addinpr1, kat3318_entropyinpr2,
+ kat3318_addinpr2, kat3318_retbits
+};
+static const struct drbg_kat kat3318 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3318_t
+};
+
+static const unsigned char kat3319_entropyin[] = {
+ 0x26, 0x66, 0xbb, 0x8b, 0x82, 0xc3, 0x4e, 0x47, 0x39, 0x20, 0xad, 0xce,
+ 0xeb, 0x05, 0xd8, 0x78, 0x50, 0x1b, 0x2d, 0x85, 0x0f, 0xd4, 0x95, 0xd2,
+};
+static const unsigned char kat3319_nonce[] = {
+ 0x4a, 0x1b, 0x6f, 0x23, 0xed, 0xf9, 0x3a, 0x22, 0x39, 0xf3, 0x5f, 0xe5,
+ 0x19, 0xe3, 0x88, 0x0b,
+};
+static const unsigned char kat3319_persstr[] = {0};
+static const unsigned char kat3319_entropyinpr1[] = {
+ 0xbf, 0xac, 0x90, 0xf8, 0x2b, 0x93, 0x7c, 0x3a, 0xa7, 0xff, 0x30, 0x42,
+ 0x2c, 0xda, 0x77, 0x1c, 0x7e, 0x11, 0x2f, 0x7f, 0x0d, 0xc7, 0x8f, 0x55,
+};
+static const unsigned char kat3319_addinpr1[] = {
+ 0x6d, 0x6a, 0x2d, 0x3c, 0x1a, 0x0e, 0xe1, 0x3d, 0x29, 0x1d, 0xfd, 0xc0,
+ 0x13, 0xda, 0x92, 0x3e, 0xf1, 0xa2, 0x69, 0x81, 0xfc, 0x37, 0xf6, 0x24,
+ 0x2a, 0x13, 0x55, 0x03, 0xdd, 0xe5, 0xd8, 0x5e,
+};
+static const unsigned char kat3319_entropyinpr2[] = {
+ 0xb1, 0x81, 0xeb, 0xc9, 0x97, 0xa9, 0x35, 0x11, 0x49, 0xa1, 0xc5, 0x08,
+ 0xc7, 0xd7, 0x03, 0x2a, 0x9a, 0x6f, 0xee, 0x5f, 0x58, 0xbd, 0xc0, 0x62,
+};
+static const unsigned char kat3319_addinpr2[] = {
+ 0x56, 0xd9, 0xb4, 0x2a, 0xef, 0xd6, 0xed, 0xce, 0xdc, 0x01, 0x15, 0xec,
+ 0x49, 0x6f, 0x48, 0xdf, 0x76, 0x79, 0x25, 0x78, 0x45, 0x0c, 0x7b, 0xfa,
+ 0x93, 0x71, 0x21, 0x23, 0xfb, 0x96, 0x9a, 0x56,
+};
+static const unsigned char kat3319_retbits[] = {
+ 0xa2, 0x4d, 0xa1, 0x36, 0x41, 0x83, 0x80, 0x0b, 0xb8, 0xa8, 0x55, 0x65,
+ 0xf4, 0x7c, 0xcc, 0x68, 0xe7, 0x3e, 0x90, 0xf7, 0xf7, 0x23, 0x65, 0xfe,
+ 0x90, 0x53, 0x71, 0x65, 0x45, 0x81, 0x88, 0xdb, 0xb0, 0x94, 0x3f, 0x92,
+ 0x60, 0xf1, 0xbc, 0xc5, 0x98, 0x76, 0x5f, 0xaa, 0x8d, 0x6f, 0x9c, 0xd8,
+ 0x8e, 0xe1, 0x95, 0x25, 0x61, 0x6e, 0xe5, 0xd6, 0xbc, 0xb3, 0x00, 0x6a,
+ 0xee, 0xa2, 0xa5, 0xba,
+};
+static const struct drbg_kat_pr_true kat3319_t = {
+ 3, kat3319_entropyin, kat3319_nonce, kat3319_persstr,
+ kat3319_entropyinpr1, kat3319_addinpr1, kat3319_entropyinpr2,
+ kat3319_addinpr2, kat3319_retbits
+};
+static const struct drbg_kat kat3319 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3319_t
+};
+
+static const unsigned char kat3320_entropyin[] = {
+ 0xe6, 0x56, 0x9f, 0xcb, 0x2c, 0x27, 0xdf, 0x67, 0x7a, 0x33, 0x9a, 0x60,
+ 0x0d, 0xa8, 0x33, 0x62, 0x93, 0xfa, 0xf6, 0xed, 0x45, 0x59, 0x8c, 0x74,
+};
+static const unsigned char kat3320_nonce[] = {
+ 0x93, 0x01, 0x50, 0x5a, 0xe5, 0xe6, 0xa8, 0x99, 0x20, 0x03, 0x66, 0xc7,
+ 0xa3, 0x3f, 0xbe, 0x43,
+};
+static const unsigned char kat3320_persstr[] = {0};
+static const unsigned char kat3320_entropyinpr1[] = {
+ 0xaf, 0x79, 0x04, 0x8c, 0xdc, 0x78, 0x20, 0xb7, 0xaa, 0xd6, 0xf5, 0x94,
+ 0x05, 0xb6, 0xbd, 0x2e, 0x49, 0x00, 0xba, 0x46, 0xe5, 0x07, 0xb3, 0x6e,
+};
+static const unsigned char kat3320_addinpr1[] = {
+ 0x07, 0xb6, 0x7b, 0x48, 0x6c, 0x2a, 0x6f, 0xb9, 0xa7, 0x56, 0x65, 0x44,
+ 0xce, 0x5f, 0x5f, 0x07, 0x1e, 0xb6, 0x0d, 0xd4, 0x26, 0x0d, 0x99, 0xae,
+ 0xa7, 0x98, 0x74, 0x2e, 0x0b, 0x2e, 0x6e, 0x89,
+};
+static const unsigned char kat3320_entropyinpr2[] = {
+ 0xdb, 0xc3, 0xf5, 0x10, 0x2d, 0x0d, 0xef, 0xac, 0x2c, 0x24, 0x83, 0xed,
+ 0x6a, 0xaa, 0xa8, 0x72, 0xe2, 0x04, 0xd2, 0xb4, 0xb0, 0xf5, 0xfc, 0x84,
+};
+static const unsigned char kat3320_addinpr2[] = {
+ 0x78, 0x64, 0x4e, 0x0e, 0xd2, 0xda, 0xb2, 0xff, 0x9f, 0x65, 0x34, 0xd6,
+ 0xaf, 0xc8, 0xa5, 0x17, 0x14, 0x8a, 0x44, 0xb8, 0x5b, 0xc4, 0x25, 0x03,
+ 0xb3, 0x49, 0x45, 0xb3, 0x0a, 0x46, 0xb7, 0x11,
+};
+static const unsigned char kat3320_retbits[] = {
+ 0x39, 0xcc, 0xa2, 0x46, 0x63, 0x0c, 0x6d, 0x34, 0x0b, 0x77, 0xbc, 0x65,
+ 0xa6, 0x19, 0xa0, 0x15, 0xbe, 0xcd, 0x0f, 0xca, 0xd7, 0x2c, 0x8e, 0x01,
+ 0xed, 0x6f, 0xac, 0x4a, 0x86, 0x1f, 0x19, 0x01, 0xd0, 0xc4, 0x22, 0xc5,
+ 0x2a, 0xe9, 0xa5, 0x0e, 0x0e, 0x4e, 0x2c, 0x19, 0xd1, 0x90, 0xca, 0xbd,
+ 0x83, 0x33, 0xd2, 0x39, 0x9d, 0x7d, 0x66, 0x6d, 0x20, 0x8b, 0x98, 0x13,
+ 0xa5, 0x65, 0x32, 0x43,
+};
+static const struct drbg_kat_pr_true kat3320_t = {
+ 4, kat3320_entropyin, kat3320_nonce, kat3320_persstr,
+ kat3320_entropyinpr1, kat3320_addinpr1, kat3320_entropyinpr2,
+ kat3320_addinpr2, kat3320_retbits
+};
+static const struct drbg_kat kat3320 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3320_t
+};
+
+static const unsigned char kat3321_entropyin[] = {
+ 0x7c, 0xd6, 0x93, 0x63, 0xc9, 0x5b, 0x34, 0xb5, 0x7f, 0x6a, 0x00, 0x0f,
+ 0x8b, 0x8c, 0x75, 0xd8, 0x23, 0x37, 0xed, 0xb1, 0x54, 0xce, 0x4b, 0xc0,
+};
+static const unsigned char kat3321_nonce[] = {
+ 0xdc, 0x4c, 0x29, 0xfe, 0x39, 0x10, 0xbf, 0xb1, 0xf1, 0xd5, 0xac, 0x51,
+ 0x9f, 0x74, 0x00, 0x8f,
+};
+static const unsigned char kat3321_persstr[] = {0};
+static const unsigned char kat3321_entropyinpr1[] = {
+ 0xdd, 0xc6, 0x06, 0xc3, 0xbe, 0x28, 0x63, 0x15, 0xa8, 0xee, 0x94, 0x63,
+ 0xc3, 0xec, 0xa2, 0x61, 0xcf, 0xf6, 0x1e, 0xa3, 0x1b, 0x79, 0x34, 0xb4,
+};
+static const unsigned char kat3321_addinpr1[] = {
+ 0xe2, 0xe1, 0x66, 0xf0, 0x6d, 0xc5, 0x95, 0x28, 0x27, 0xed, 0xb8, 0x71,
+ 0xb4, 0x7d, 0x01, 0xdf, 0x19, 0x6f, 0x1b, 0x20, 0x2b, 0x5c, 0x06, 0xce,
+ 0x98, 0xd2, 0xe2, 0xaf, 0x4a, 0x04, 0x67, 0x90,
+};
+static const unsigned char kat3321_entropyinpr2[] = {
+ 0x72, 0xbd, 0xd7, 0x11, 0x62, 0xac, 0xf8, 0x56, 0x7d, 0x6f, 0xf5, 0x7d,
+ 0x9c, 0x6a, 0x62, 0xa9, 0x4a, 0xa4, 0xea, 0x03, 0xaa, 0xe8, 0x58, 0xec,
+};
+static const unsigned char kat3321_addinpr2[] = {
+ 0x92, 0x04, 0x2a, 0x37, 0x78, 0x9e, 0x69, 0xb3, 0x11, 0x1d, 0x48, 0x0c,
+ 0x0d, 0x19, 0xf0, 0x91, 0x7c, 0xde, 0x4f, 0xeb, 0x10, 0x1c, 0x48, 0x68,
+ 0x1f, 0xfe, 0xe2, 0xf9, 0x89, 0xff, 0xf9, 0x26,
+};
+static const unsigned char kat3321_retbits[] = {
+ 0xb4, 0x16, 0x04, 0xe0, 0xdb, 0xec, 0x04, 0xd5, 0x7b, 0x99, 0x30, 0x12,
+ 0xf0, 0xab, 0xb7, 0xf8, 0x2c, 0x18, 0xb4, 0x6b, 0x36, 0x95, 0x14, 0x00,
+ 0x9c, 0x69, 0x68, 0xf6, 0x4f, 0xbd, 0x34, 0xf4, 0x02, 0xac, 0xcc, 0xe4,
+ 0xfc, 0x23, 0xa8, 0x09, 0x35, 0x3b, 0x62, 0x95, 0xd2, 0xf1, 0xf3, 0x94,
+ 0x9a, 0xdd, 0x6a, 0xc9, 0x5c, 0x64, 0x66, 0xff, 0xf4, 0x70, 0x2d, 0x9f,
+ 0x65, 0x4a, 0xca, 0xbd,
+};
+static const struct drbg_kat_pr_true kat3321_t = {
+ 5, kat3321_entropyin, kat3321_nonce, kat3321_persstr,
+ kat3321_entropyinpr1, kat3321_addinpr1, kat3321_entropyinpr2,
+ kat3321_addinpr2, kat3321_retbits
+};
+static const struct drbg_kat kat3321 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3321_t
+};
+
+static const unsigned char kat3322_entropyin[] = {
+ 0x58, 0xb1, 0x16, 0x71, 0xd1, 0x61, 0x0d, 0x3f, 0x7b, 0x0b, 0xae, 0xaa,
+ 0x98, 0xbc, 0x7a, 0x8f, 0xb5, 0xce, 0x99, 0x00, 0x7e, 0x49, 0x07, 0xed,
+};
+static const unsigned char kat3322_nonce[] = {
+ 0xe3, 0xa0, 0x24, 0x2f, 0x78, 0x2e, 0xe5, 0x67, 0xf7, 0xc2, 0xab, 0x15,
+ 0x3d, 0xcb, 0xdf, 0x85,
+};
+static const unsigned char kat3322_persstr[] = {0};
+static const unsigned char kat3322_entropyinpr1[] = {
+ 0x4b, 0xd4, 0x0e, 0xd9, 0x52, 0x24, 0xb6, 0xd7, 0x0c, 0x39, 0xf8, 0x67,
+ 0x8a, 0xe3, 0x28, 0xb8, 0x9e, 0xa9, 0x69, 0x73, 0x5a, 0xe1, 0xca, 0xf8,
+};
+static const unsigned char kat3322_addinpr1[] = {
+ 0x67, 0x38, 0xa8, 0x65, 0xd1, 0x28, 0x78, 0xfd, 0xec, 0x65, 0x97, 0x27,
+ 0x90, 0x2f, 0x80, 0xf5, 0xec, 0x7f, 0xee, 0x75, 0x18, 0x30, 0x4e, 0x1d,
+ 0xd6, 0xb0, 0x6b, 0x99, 0x62, 0xea, 0x5b, 0xf0,
+};
+static const unsigned char kat3322_entropyinpr2[] = {
+ 0xa4, 0x35, 0x38, 0x22, 0x2b, 0x83, 0x0b, 0xb8, 0x89, 0xc6, 0xa7, 0xf2,
+ 0x33, 0x9a, 0x26, 0x0d, 0x17, 0x2b, 0x5e, 0x4a, 0xaa, 0xad, 0xaf, 0xf2,
+};
+static const unsigned char kat3322_addinpr2[] = {
+ 0xfa, 0xa8, 0xd4, 0xbf, 0xb2, 0x27, 0xa4, 0xcc, 0x41, 0x9e, 0x0f, 0x8a,
+ 0xf4, 0x43, 0xb5, 0xd0, 0xb9, 0x8f, 0xe6, 0x19, 0x6a, 0x71, 0x13, 0x0b,
+ 0xb5, 0xa3, 0x00, 0x9c, 0x04, 0x96, 0xcf, 0x9e,
+};
+static const unsigned char kat3322_retbits[] = {
+ 0x52, 0x48, 0x65, 0x45, 0xc1, 0x71, 0x50, 0x87, 0x0b, 0xbe, 0x17, 0x45,
+ 0xa6, 0xc6, 0xb4, 0x46, 0x78, 0x80, 0x83, 0xe4, 0x88, 0x0c, 0xca, 0x12,
+ 0x8a, 0x12, 0xe0, 0x81, 0xf9, 0x6b, 0x87, 0xbd, 0x80, 0xaf, 0x46, 0xc7,
+ 0xf0, 0xf7, 0xf6, 0xf9, 0xc8, 0xb8, 0x67, 0x60, 0x40, 0x0e, 0x63, 0xef,
+ 0x34, 0x1a, 0xf3, 0x92, 0x0f, 0xf1, 0x8a, 0xc4, 0xdf, 0x2f, 0xb9, 0x60,
+ 0xa2, 0x89, 0x01, 0x32,
+};
+static const struct drbg_kat_pr_true kat3322_t = {
+ 6, kat3322_entropyin, kat3322_nonce, kat3322_persstr,
+ kat3322_entropyinpr1, kat3322_addinpr1, kat3322_entropyinpr2,
+ kat3322_addinpr2, kat3322_retbits
+};
+static const struct drbg_kat kat3322 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3322_t
+};
+
+static const unsigned char kat3323_entropyin[] = {
+ 0xa7, 0xde, 0x60, 0x0b, 0x8e, 0x74, 0x90, 0x14, 0x8a, 0x9e, 0x3e, 0x11,
+ 0x68, 0xb5, 0xef, 0xf0, 0x6f, 0x72, 0xc1, 0x92, 0x36, 0x04, 0xa4, 0xe7,
+};
+static const unsigned char kat3323_nonce[] = {
+ 0x93, 0xe5, 0xeb, 0xe0, 0xd1, 0x4f, 0x5b, 0x9f, 0xf2, 0x44, 0xc8, 0x50,
+ 0xbf, 0xa5, 0xbd, 0x16,
+};
+static const unsigned char kat3323_persstr[] = {0};
+static const unsigned char kat3323_entropyinpr1[] = {
+ 0x3c, 0x8a, 0xf4, 0xe7, 0x7f, 0xeb, 0xf6, 0xe7, 0xcf, 0xe1, 0xac, 0x83,
+ 0x61, 0x36, 0x11, 0xdb, 0xb8, 0x8b, 0xfe, 0x37, 0x1d, 0x2a, 0x7a, 0x87,
+};
+static const unsigned char kat3323_addinpr1[] = {
+ 0xbf, 0x1c, 0xd4, 0x00, 0x6e, 0xcd, 0x28, 0x40, 0xff, 0x89, 0x3d, 0xf4,
+ 0x3c, 0x58, 0x94, 0x24, 0xf2, 0x80, 0x4f, 0x98, 0x04, 0x4e, 0xc5, 0xb9,
+ 0xd9, 0xf5, 0x09, 0xb5, 0x80, 0xde, 0x89, 0xd1,
+};
+static const unsigned char kat3323_entropyinpr2[] = {
+ 0x45, 0x14, 0x70, 0x91, 0xfb, 0xcb, 0xbe, 0x77, 0x7e, 0x45, 0xf3, 0x39,
+ 0x0d, 0xba, 0x43, 0x0b, 0x8c, 0xf3, 0xfd, 0x83, 0xe0, 0x15, 0xa8, 0x19,
+};
+static const unsigned char kat3323_addinpr2[] = {
+ 0x17, 0x9e, 0x74, 0x39, 0xf0, 0xc5, 0xaf, 0x97, 0x35, 0x29, 0x99, 0x68,
+ 0xa8, 0x6e, 0x4e, 0xeb, 0x3b, 0x5a, 0x3c, 0x1d, 0x28, 0x4a, 0xbe, 0x48,
+ 0x92, 0x7a, 0x07, 0xee, 0xed, 0x26, 0x17, 0x0d,
+};
+static const unsigned char kat3323_retbits[] = {
+ 0x6d, 0x05, 0xde, 0x2e, 0x9f, 0xb1, 0x30, 0x73, 0x5b, 0x6e, 0x36, 0xf4,
+ 0x5c, 0x2a, 0x0f, 0xa2, 0x12, 0xd5, 0x35, 0x48, 0xfa, 0x51, 0xbd, 0xd0,
+ 0x32, 0xfd, 0xb6, 0x20, 0x8d, 0x2d, 0xa9, 0x1d, 0x9c, 0x2d, 0x05, 0xb1,
+ 0x3d, 0x82, 0x6d, 0x62, 0xa1, 0x06, 0x10, 0x3b, 0x7e, 0x41, 0xf2, 0x1b,
+ 0xec, 0xd8, 0xc6, 0x4d, 0x22, 0x1e, 0x4b, 0x9d, 0x3c, 0xe5, 0xd6, 0xd5,
+ 0xc6, 0x30, 0xc0, 0xee,
+};
+static const struct drbg_kat_pr_true kat3323_t = {
+ 7, kat3323_entropyin, kat3323_nonce, kat3323_persstr,
+ kat3323_entropyinpr1, kat3323_addinpr1, kat3323_entropyinpr2,
+ kat3323_addinpr2, kat3323_retbits
+};
+static const struct drbg_kat kat3323 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3323_t
+};
+
+static const unsigned char kat3324_entropyin[] = {
+ 0xe8, 0x18, 0x29, 0x57, 0x95, 0xc3, 0x32, 0xe4, 0xda, 0x0c, 0x3a, 0xfa,
+ 0x7b, 0x0f, 0xeb, 0x4f, 0x5d, 0x6f, 0xf7, 0x15, 0x10, 0x6b, 0x44, 0x58,
+};
+static const unsigned char kat3324_nonce[] = {
+ 0x96, 0x66, 0x70, 0x0a, 0x2e, 0x8e, 0x16, 0x05, 0x21, 0x4d, 0xb3, 0xc2,
+ 0x86, 0x13, 0xcb, 0xf3,
+};
+static const unsigned char kat3324_persstr[] = {0};
+static const unsigned char kat3324_entropyinpr1[] = {
+ 0xe1, 0x05, 0xdb, 0x6d, 0x97, 0xe2, 0x9a, 0x4d, 0x08, 0x62, 0x4c, 0xbc,
+ 0x20, 0x62, 0x6c, 0x39, 0x3b, 0x4a, 0xf2, 0x80, 0xa9, 0xee, 0x8a, 0xb1,
+};
+static const unsigned char kat3324_addinpr1[] = {
+ 0x2e, 0x2c, 0x66, 0xf6, 0x9e, 0x91, 0x55, 0xb1, 0xd0, 0xba, 0x22, 0xf5,
+ 0x45, 0x54, 0x9c, 0x2e, 0x68, 0xc0, 0x9f, 0x81, 0x07, 0x02, 0x0b, 0x26,
+ 0x08, 0x8b, 0x70, 0x90, 0xf2, 0x4c, 0xc4, 0x0e,
+};
+static const unsigned char kat3324_entropyinpr2[] = {
+ 0x6e, 0x51, 0xd8, 0xc8, 0x33, 0x7f, 0x97, 0x44, 0x00, 0xf9, 0x8a, 0x19,
+ 0x30, 0x49, 0xa7, 0x5d, 0xf5, 0xd3, 0x4c, 0x6b, 0xb4, 0xec, 0xad, 0xb2,
+};
+static const unsigned char kat3324_addinpr2[] = {
+ 0x78, 0xea, 0xf7, 0xc0, 0x68, 0xd7, 0xb8, 0xd2, 0xaf, 0x94, 0x64, 0x61,
+ 0x63, 0x7b, 0x6d, 0xe0, 0xff, 0x22, 0xcf, 0x69, 0xfb, 0x98, 0xec, 0x30,
+ 0xd0, 0xbe, 0x2a, 0x85, 0xcf, 0xfc, 0x5a, 0x83,
+};
+static const unsigned char kat3324_retbits[] = {
+ 0xed, 0x27, 0x65, 0x42, 0xf1, 0xfa, 0x48, 0x24, 0xc0, 0x35, 0x34, 0xcd,
+ 0x14, 0x30, 0xc1, 0xf1, 0xa2, 0x33, 0xc8, 0x80, 0xf5, 0xe7, 0xb8, 0xa5,
+ 0xa7, 0x94, 0x09, 0x78, 0x9a, 0x50, 0xf8, 0x30, 0xdd, 0x90, 0x53, 0x1f,
+ 0x78, 0x9b, 0x43, 0xa9, 0x7f, 0xf7, 0x30, 0x4d, 0x8d, 0x9b, 0xea, 0xe6,
+ 0xc1, 0xf7, 0xff, 0x39, 0x87, 0x1e, 0x54, 0xfb, 0xb3, 0xbb, 0xca, 0x91,
+ 0x60, 0xe8, 0xdb, 0xdc,
+};
+static const struct drbg_kat_pr_true kat3324_t = {
+ 8, kat3324_entropyin, kat3324_nonce, kat3324_persstr,
+ kat3324_entropyinpr1, kat3324_addinpr1, kat3324_entropyinpr2,
+ kat3324_addinpr2, kat3324_retbits
+};
+static const struct drbg_kat kat3324 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3324_t
+};
+
+static const unsigned char kat3325_entropyin[] = {
+ 0x1b, 0x3f, 0x42, 0x50, 0x8f, 0x47, 0x2d, 0x4a, 0x9a, 0x94, 0x81, 0x57,
+ 0x25, 0x7e, 0x8c, 0xe2, 0x3f, 0x95, 0xba, 0x8e, 0x0c, 0x09, 0x9e, 0xb6,
+};
+static const unsigned char kat3325_nonce[] = {
+ 0x8f, 0xb8, 0x4f, 0xc7, 0x2b, 0xc4, 0x59, 0xcc, 0x8f, 0xbd, 0xde, 0x4a,
+ 0x66, 0xa1, 0x71, 0x19,
+};
+static const unsigned char kat3325_persstr[] = {0};
+static const unsigned char kat3325_entropyinpr1[] = {
+ 0x12, 0x74, 0x25, 0x1f, 0x19, 0xa5, 0x2e, 0xc6, 0x31, 0xb9, 0xcc, 0x3f,
+ 0xb8, 0x82, 0x7e, 0x04, 0xa5, 0xee, 0xa3, 0xd0, 0xbf, 0x3d, 0xb1, 0x2a,
+};
+static const unsigned char kat3325_addinpr1[] = {
+ 0xe3, 0xc7, 0x74, 0xf0, 0x00, 0x16, 0xe7, 0x64, 0xd3, 0xb4, 0x29, 0xfb,
+ 0x3d, 0xd1, 0xd3, 0x5b, 0x7d, 0x89, 0xa2, 0x44, 0xfe, 0x72, 0xc8, 0x69,
+ 0xdb, 0xc3, 0x69, 0x5a, 0x74, 0x96, 0xd4, 0x20,
+};
+static const unsigned char kat3325_entropyinpr2[] = {
+ 0x31, 0x23, 0x09, 0x06, 0xf2, 0xd7, 0x0e, 0x6c, 0xc7, 0x07, 0xa4, 0xa5,
+ 0xac, 0xb3, 0x04, 0xcd, 0xd8, 0x35, 0x25, 0xc6, 0x16, 0x39, 0x5d, 0xac,
+};
+static const unsigned char kat3325_addinpr2[] = {
+ 0x29, 0x2a, 0x8d, 0x14, 0xa4, 0x86, 0xab, 0xfc, 0xce, 0xa5, 0x6e, 0x4c,
+ 0x88, 0x77, 0xe9, 0x5b, 0x32, 0x4e, 0x00, 0x98, 0x96, 0x21, 0x50, 0x03,
+ 0xee, 0x8c, 0x2e, 0xe4, 0x73, 0x59, 0xbf, 0x5c,
+};
+static const unsigned char kat3325_retbits[] = {
+ 0xd5, 0x02, 0x85, 0x96, 0x9b, 0x82, 0x9b, 0xb3, 0xbc, 0xa9, 0xbe, 0xd5,
+ 0x22, 0xda, 0x5f, 0x6c, 0x15, 0x12, 0xdd, 0x6f, 0x4a, 0x11, 0xa5, 0x1d,
+ 0x12, 0xb0, 0xe6, 0x7d, 0x52, 0x9f, 0xd3, 0x0a, 0x3b, 0xc2, 0x34, 0x72,
+ 0x65, 0xad, 0xdd, 0xf5, 0xec, 0xfc, 0x12, 0x8b, 0x94, 0xe9, 0x64, 0xba,
+ 0xc5, 0x4c, 0xc7, 0x90, 0xe6, 0x8f, 0x7a, 0x66, 0x15, 0x63, 0xc0, 0xd6,
+ 0x47, 0x16, 0x4a, 0x5a,
+};
+static const struct drbg_kat_pr_true kat3325_t = {
+ 9, kat3325_entropyin, kat3325_nonce, kat3325_persstr,
+ kat3325_entropyinpr1, kat3325_addinpr1, kat3325_entropyinpr2,
+ kat3325_addinpr2, kat3325_retbits
+};
+static const struct drbg_kat kat3325 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3325_t
+};
+
+static const unsigned char kat3326_entropyin[] = {
+ 0x53, 0x6f, 0x96, 0x51, 0x39, 0xd3, 0x7d, 0x73, 0x43, 0x41, 0xdb, 0x02,
+ 0x38, 0x77, 0xaa, 0xcf, 0x32, 0x20, 0x8f, 0x67, 0x7a, 0x7a, 0x45, 0x23,
+};
+static const unsigned char kat3326_nonce[] = {
+ 0xae, 0xfa, 0x3d, 0x9e, 0x72, 0x61, 0xd3, 0x55, 0xeb, 0xa9, 0x11, 0xaa,
+ 0x73, 0x84, 0x92, 0x37,
+};
+static const unsigned char kat3326_persstr[] = {0};
+static const unsigned char kat3326_entropyinpr1[] = {
+ 0x68, 0xa3, 0xe7, 0xed, 0x17, 0x89, 0xf3, 0xc3, 0x0d, 0x13, 0xbb, 0x7f,
+ 0x52, 0x2c, 0x66, 0x5a, 0x0e, 0xc1, 0x72, 0xde, 0xd6, 0xda, 0xf3, 0x2a,
+};
+static const unsigned char kat3326_addinpr1[] = {
+ 0x8e, 0x3c, 0xf0, 0xa0, 0x6f, 0x06, 0x09, 0xc9, 0xd4, 0x9d, 0xc1, 0xc8,
+ 0x47, 0x49, 0x8a, 0xb2, 0x29, 0xdf, 0x96, 0x06, 0x8a, 0xfa, 0x63, 0x24,
+ 0x9b, 0xac, 0x6d, 0x5d, 0x22, 0x9e, 0xc1, 0x9d,
+};
+static const unsigned char kat3326_entropyinpr2[] = {
+ 0xe2, 0xba, 0x4f, 0x5b, 0x05, 0xe7, 0xe4, 0xef, 0x27, 0xb3, 0xe7, 0xcc,
+ 0xbb, 0x06, 0x49, 0xca, 0x21, 0x24, 0xe6, 0x83, 0xce, 0x37, 0x1a, 0x89,
+};
+static const unsigned char kat3326_addinpr2[] = {
+ 0x7d, 0x16, 0x15, 0xe0, 0x1c, 0x58, 0xde, 0x28, 0x17, 0xd7, 0x1a, 0x96,
+ 0x3a, 0x9c, 0x23, 0xbf, 0x06, 0xcd, 0xa9, 0x11, 0x99, 0xea, 0x56, 0xba,
+ 0x03, 0x67, 0xb3, 0x3f, 0x99, 0xdb, 0x69, 0xd7,
+};
+static const unsigned char kat3326_retbits[] = {
+ 0xcc, 0x35, 0x88, 0x7e, 0xcd, 0xde, 0x4e, 0xca, 0xa8, 0xd2, 0x38, 0x3b,
+ 0xe8, 0xd7, 0x2d, 0xce, 0xb4, 0x64, 0xca, 0x9a, 0x94, 0xc7, 0x8e, 0x34,
+ 0x35, 0xbb, 0x85, 0x97, 0x42, 0xb6, 0xa8, 0x4e, 0xcf, 0x8a, 0x7a, 0xf9,
+ 0x9f, 0xd7, 0xbe, 0x28, 0xd3, 0xef, 0x31, 0x52, 0x3b, 0x0d, 0x70, 0xb8,
+ 0x8b, 0x0d, 0xd9, 0x18, 0xcd, 0x70, 0x58, 0x81, 0xb4, 0x18, 0xdf, 0xe9,
+ 0x1f, 0x84, 0xb4, 0x90,
+};
+static const struct drbg_kat_pr_true kat3326_t = {
+ 10, kat3326_entropyin, kat3326_nonce, kat3326_persstr,
+ kat3326_entropyinpr1, kat3326_addinpr1, kat3326_entropyinpr2,
+ kat3326_addinpr2, kat3326_retbits
+};
+static const struct drbg_kat kat3326 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3326_t
+};
+
+static const unsigned char kat3327_entropyin[] = {
+ 0x0a, 0xf0, 0x29, 0xdc, 0xf2, 0xf0, 0xe3, 0xe7, 0x01, 0x5d, 0x59, 0xa2,
+ 0x41, 0x58, 0x85, 0x30, 0x71, 0x23, 0xaf, 0x3d, 0x1a, 0x8a, 0x24, 0x27,
+};
+static const unsigned char kat3327_nonce[] = {
+ 0x7b, 0xcf, 0xe6, 0xbf, 0x04, 0x22, 0xbf, 0x2e, 0x8e, 0xb4, 0x3f, 0x9c,
+ 0xbd, 0x32, 0x6f, 0x6b,
+};
+static const unsigned char kat3327_persstr[] = {0};
+static const unsigned char kat3327_entropyinpr1[] = {
+ 0xed, 0x25, 0x7d, 0x65, 0xd7, 0x49, 0x96, 0xbf, 0x4e, 0xc1, 0xfa, 0x1a,
+ 0xb4, 0x8a, 0x60, 0x98, 0x55, 0x35, 0x49, 0xb7, 0x8e, 0xd6, 0x9e, 0x59,
+};
+static const unsigned char kat3327_addinpr1[] = {
+ 0xdc, 0x5c, 0xcd, 0x61, 0xd0, 0xef, 0x94, 0x55, 0xdb, 0x53, 0x3b, 0x86,
+ 0x70, 0xf5, 0x52, 0x85, 0x7a, 0xb0, 0x31, 0x0a, 0xef, 0x7d, 0xcb, 0x17,
+ 0xe7, 0x95, 0xf5, 0xf0, 0x9a, 0x49, 0xbe, 0xcd,
+};
+static const unsigned char kat3327_entropyinpr2[] = {
+ 0xcf, 0xdf, 0x74, 0x0e, 0x29, 0x1f, 0x30, 0xa8, 0x75, 0x0d, 0x75, 0x74,
+ 0x75, 0xd5, 0x6f, 0x2a, 0xa1, 0x51, 0x27, 0xe3, 0x32, 0x07, 0xe2, 0x65,
+};
+static const unsigned char kat3327_addinpr2[] = {
+ 0x0d, 0x63, 0x91, 0x8b, 0xcc, 0xa4, 0xe3, 0xcf, 0x2c, 0xf5, 0x06, 0x2c,
+ 0x1f, 0xbf, 0x18, 0x7f, 0x1c, 0x18, 0x1f, 0x8c, 0x5a, 0xf6, 0x95, 0x07,
+ 0x56, 0x54, 0xaf, 0xbf, 0x0c, 0x74, 0x81, 0xe7,
+};
+static const unsigned char kat3327_retbits[] = {
+ 0x60, 0x0c, 0xad, 0x75, 0x1c, 0xf1, 0x8b, 0xd3, 0x25, 0x2c, 0x42, 0x4f,
+ 0x82, 0xfb, 0x92, 0x84, 0x69, 0xbe, 0xbf, 0xdf, 0x5c, 0xe6, 0x9d, 0x67,
+ 0x7e, 0x54, 0xea, 0x99, 0x1f, 0x95, 0x23, 0x37, 0x16, 0x73, 0x64, 0xc5,
+ 0xfd, 0x98, 0x9a, 0xad, 0x97, 0xe2, 0x33, 0xcf, 0x2c, 0x2e, 0xd6, 0x37,
+ 0xda, 0x43, 0xe0, 0xc7, 0xe0, 0xf2, 0xa4, 0xeb, 0x0d, 0xad, 0x53, 0x0c,
+ 0x06, 0x2d, 0x00, 0x3d,
+};
+static const struct drbg_kat_pr_true kat3327_t = {
+ 11, kat3327_entropyin, kat3327_nonce, kat3327_persstr,
+ kat3327_entropyinpr1, kat3327_addinpr1, kat3327_entropyinpr2,
+ kat3327_addinpr2, kat3327_retbits
+};
+static const struct drbg_kat kat3327 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3327_t
+};
+
+static const unsigned char kat3328_entropyin[] = {
+ 0xf8, 0x9a, 0x02, 0x01, 0x2c, 0x81, 0xdf, 0x0b, 0x9f, 0x97, 0xbc, 0x16,
+ 0xe0, 0x1f, 0xf4, 0x76, 0xe4, 0x9a, 0x97, 0x39, 0x28, 0x1a, 0x93, 0x3b,
+};
+static const unsigned char kat3328_nonce[] = {
+ 0xcb, 0x40, 0xa5, 0x54, 0x3a, 0x48, 0x99, 0x14, 0x4a, 0xf5, 0xea, 0x81,
+ 0x37, 0xe0, 0x26, 0x11,
+};
+static const unsigned char kat3328_persstr[] = {0};
+static const unsigned char kat3328_entropyinpr1[] = {
+ 0x22, 0x86, 0x5c, 0x64, 0x32, 0xf6, 0x4e, 0xd8, 0xca, 0x0d, 0xcd, 0x6c,
+ 0xc9, 0x9e, 0x2b, 0xa9, 0x49, 0x0b, 0xe9, 0x65, 0x9d, 0xbb, 0x73, 0x9c,
+};
+static const unsigned char kat3328_addinpr1[] = {
+ 0x9a, 0x54, 0x67, 0x44, 0x7c, 0x38, 0xc3, 0x6b, 0x01, 0xec, 0x67, 0xa6,
+ 0xf0, 0x3b, 0x68, 0x12, 0x00, 0xdc, 0x41, 0x61, 0xae, 0xef, 0xd2, 0x74,
+ 0xfb, 0x06, 0x6e, 0x88, 0xd2, 0xa4, 0x0a, 0x95,
+};
+static const unsigned char kat3328_entropyinpr2[] = {
+ 0x53, 0x62, 0x00, 0x88, 0x52, 0x66, 0x5f, 0x0d, 0x5d, 0x9f, 0x44, 0x10,
+ 0x2d, 0x26, 0x80, 0xd9, 0x80, 0xfa, 0x90, 0x87, 0x72, 0x9d, 0xc1, 0x20,
+};
+static const unsigned char kat3328_addinpr2[] = {
+ 0x46, 0x7f, 0x83, 0x0f, 0x21, 0xdf, 0x84, 0x1c, 0x78, 0x72, 0x1a, 0xc4,
+ 0x4d, 0x25, 0xfb, 0xf2, 0xc5, 0xb9, 0x2c, 0x42, 0xc9, 0x26, 0xeb, 0x9d,
+ 0xbd, 0x1a, 0x32, 0x17, 0xf7, 0x7a, 0xa8, 0x39,
+};
+static const unsigned char kat3328_retbits[] = {
+ 0xc5, 0xe4, 0xbf, 0xef, 0xbe, 0x9c, 0x7b, 0x07, 0xde, 0x53, 0xf7, 0x82,
+ 0x7f, 0xba, 0x53, 0x86, 0x83, 0x30, 0xf9, 0x0f, 0xcf, 0x87, 0x37, 0x53,
+ 0x80, 0xbe, 0xbc, 0x6c, 0x92, 0xaf, 0xf4, 0x3c, 0x7e, 0x17, 0x66, 0x6b,
+ 0x98, 0x95, 0xad, 0x1f, 0xf4, 0x99, 0xf7, 0x97, 0x77, 0xed, 0xb0, 0x0f,
+ 0x11, 0x3b, 0x18, 0x6a, 0x74, 0xf4, 0x38, 0xb9, 0x99, 0xa8, 0x20, 0xf5,
+ 0x27, 0x87, 0x64, 0xa9,
+};
+static const struct drbg_kat_pr_true kat3328_t = {
+ 12, kat3328_entropyin, kat3328_nonce, kat3328_persstr,
+ kat3328_entropyinpr1, kat3328_addinpr1, kat3328_entropyinpr2,
+ kat3328_addinpr2, kat3328_retbits
+};
+static const struct drbg_kat kat3328 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3328_t
+};
+
+static const unsigned char kat3329_entropyin[] = {
+ 0x11, 0x8d, 0x4d, 0x35, 0x43, 0x94, 0x6d, 0xa8, 0xcc, 0x86, 0x35, 0xb9,
+ 0xef, 0x6b, 0xbc, 0x4d, 0x03, 0x71, 0xc0, 0x6c, 0x39, 0x6f, 0x63, 0x77,
+};
+static const unsigned char kat3329_nonce[] = {
+ 0x15, 0x15, 0x05, 0xea, 0x32, 0x2d, 0x29, 0xa9, 0x7c, 0x5c, 0x56, 0x80,
+ 0xa0, 0xdb, 0x16, 0x34,
+};
+static const unsigned char kat3329_persstr[] = {0};
+static const unsigned char kat3329_entropyinpr1[] = {
+ 0x17, 0x77, 0x8e, 0x99, 0x22, 0x27, 0xe1, 0x92, 0x99, 0x36, 0x04, 0x90,
+ 0x31, 0x59, 0x1a, 0x33, 0x42, 0x7e, 0x29, 0x06, 0x88, 0xef, 0x46, 0x89,
+};
+static const unsigned char kat3329_addinpr1[] = {
+ 0x70, 0xa1, 0x49, 0xb7, 0x24, 0x49, 0x0c, 0x10, 0x75, 0xaf, 0xc8, 0x0a,
+ 0x4b, 0xe4, 0x05, 0x9c, 0x18, 0xea, 0xba, 0xf1, 0xaa, 0x47, 0xa7, 0xb2,
+ 0xd9, 0x2d, 0xc1, 0x88, 0x5d, 0xd9, 0xc8, 0x91,
+};
+static const unsigned char kat3329_entropyinpr2[] = {
+ 0x53, 0x5d, 0x26, 0x94, 0xb9, 0x41, 0x58, 0xc7, 0x34, 0x58, 0x3e, 0xee,
+ 0xa8, 0x06, 0xe1, 0xf5, 0x42, 0x93, 0x71, 0xf9, 0xa7, 0xbb, 0xca, 0xdf,
+};
+static const unsigned char kat3329_addinpr2[] = {
+ 0x1e, 0x2e, 0x99, 0x36, 0x41, 0xea, 0x85, 0xbc, 0x3f, 0x5a, 0xfc, 0xe8,
+ 0x58, 0x10, 0x3f, 0xc0, 0xe5, 0xbc, 0x90, 0x4a, 0x9f, 0x20, 0x61, 0x10,
+ 0xfc, 0xae, 0x7f, 0x87, 0x3a, 0xf5, 0x9a, 0x8f,
+};
+static const unsigned char kat3329_retbits[] = {
+ 0xb2, 0x21, 0x90, 0x86, 0xa9, 0x48, 0x63, 0x31, 0x4f, 0x37, 0x4d, 0x49,
+ 0x23, 0x12, 0x0c, 0xde, 0x1d, 0x35, 0x93, 0x6a, 0xc2, 0xf6, 0x86, 0x21,
+ 0xf3, 0x2c, 0x16, 0xdf, 0x40, 0x1a, 0x6e, 0xc3, 0x15, 0x41, 0x26, 0x20,
+ 0x27, 0x17, 0xa2, 0x7b, 0xbb, 0xf9, 0x61, 0xb3, 0xdd, 0x1f, 0x20, 0x63,
+ 0xfd, 0x58, 0x52, 0x67, 0x73, 0x89, 0x02, 0x8c, 0xda, 0xc8, 0xf2, 0x47,
+ 0xf2, 0x51, 0xda, 0x2e,
+};
+static const struct drbg_kat_pr_true kat3329_t = {
+ 13, kat3329_entropyin, kat3329_nonce, kat3329_persstr,
+ kat3329_entropyinpr1, kat3329_addinpr1, kat3329_entropyinpr2,
+ kat3329_addinpr2, kat3329_retbits
+};
+static const struct drbg_kat kat3329 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3329_t
+};
+
+static const unsigned char kat3330_entropyin[] = {
+ 0x3f, 0x37, 0x7f, 0xaa, 0x0b, 0x6d, 0x47, 0x2f, 0x3b, 0xa5, 0xd6, 0x55,
+ 0x6f, 0xe2, 0xa8, 0x40, 0xd5, 0x5a, 0x78, 0xa4, 0xb8, 0x04, 0xa0, 0x01,
+};
+static const unsigned char kat3330_nonce[] = {
+ 0x54, 0xa0, 0x31, 0x01, 0xb1, 0x58, 0x78, 0x73, 0xdd, 0xf3, 0xe0, 0xae,
+ 0xeb, 0x21, 0xf4, 0x77,
+};
+static const unsigned char kat3330_persstr[] = {0};
+static const unsigned char kat3330_entropyinpr1[] = {
+ 0xd4, 0x8e, 0xca, 0x53, 0x66, 0x2d, 0x88, 0xcc, 0xa3, 0x5e, 0x64, 0xf7,
+ 0x29, 0x14, 0x34, 0xd1, 0xe3, 0x2b, 0xd3, 0x09, 0x1c, 0x9f, 0x56, 0xd8,
+};
+static const unsigned char kat3330_addinpr1[] = {
+ 0x96, 0x01, 0x72, 0x96, 0x42, 0x58, 0x45, 0x06, 0x3b, 0xa4, 0x83, 0x5a,
+ 0x96, 0xd8, 0x80, 0xf5, 0xc9, 0xa8, 0xc0, 0x20, 0x39, 0x70, 0x6a, 0x81,
+ 0xa2, 0xf9, 0x02, 0xf4, 0x41, 0x71, 0xbd, 0x3b,
+};
+static const unsigned char kat3330_entropyinpr2[] = {
+ 0x0c, 0x3a, 0x07, 0xdf, 0x91, 0x6a, 0xcc, 0x0e, 0x6a, 0x2e, 0x6e, 0xef,
+ 0x50, 0xc3, 0x2d, 0xb6, 0xeb, 0xb1, 0x96, 0x2f, 0xcf, 0xb0, 0xce, 0xee,
+};
+static const unsigned char kat3330_addinpr2[] = {
+ 0xc0, 0x26, 0x3d, 0x4c, 0x2d, 0x07, 0x26, 0x44, 0x5d, 0x61, 0x9c, 0x87,
+ 0x39, 0x14, 0xea, 0x5d, 0xd9, 0xa0, 0x1e, 0x4f, 0x80, 0x5e, 0x57, 0x20,
+ 0x61, 0x29, 0x8e, 0xac, 0x76, 0xe0, 0x7c, 0x52,
+};
+static const unsigned char kat3330_retbits[] = {
+ 0x9a, 0x29, 0x85, 0x2c, 0x06, 0xe0, 0x6c, 0xf7, 0x43, 0x5f, 0x01, 0x3d,
+ 0x1e, 0x1d, 0x65, 0x30, 0x74, 0x90, 0x40, 0x54, 0xb9, 0x71, 0x85, 0xda,
+ 0x69, 0x08, 0x74, 0x9c, 0x8b, 0x75, 0xc9, 0xa2, 0xf8, 0x1e, 0x29, 0xf0,
+ 0xcf, 0xbb, 0xec, 0xc8, 0x6b, 0xb7, 0x35, 0x38, 0x97, 0xb6, 0x36, 0xcc,
+ 0x9f, 0x7b, 0xd0, 0x8d, 0xc2, 0x7b, 0xa1, 0x3d, 0x1a, 0x3d, 0x48, 0x2e,
+ 0x83, 0x8a, 0x5f, 0x6a,
+};
+static const struct drbg_kat_pr_true kat3330_t = {
+ 14, kat3330_entropyin, kat3330_nonce, kat3330_persstr,
+ kat3330_entropyinpr1, kat3330_addinpr1, kat3330_entropyinpr2,
+ kat3330_addinpr2, kat3330_retbits
+};
+static const struct drbg_kat kat3330 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 0, 32, 64, &kat3330_t
+};
+
+static const unsigned char kat3331_entropyin[] = {
+ 0x38, 0x4d, 0xe3, 0x30, 0x43, 0x14, 0xb2, 0x12, 0x4c, 0x40, 0xbf, 0x2c,
+ 0x5c, 0x82, 0x35, 0xa3, 0xe7, 0x30, 0x6d, 0x94, 0xa0, 0xca, 0x3b, 0x67,
+};
+static const unsigned char kat3331_nonce[] = {
+ 0x76, 0xde, 0x42, 0x6b, 0x4b, 0xb1, 0xc5, 0xc3, 0x68, 0xe0, 0x64, 0xda,
+ 0x2e, 0x38, 0xf8, 0x3a,
+};
+static const unsigned char kat3331_persstr[] = {
+ 0x06, 0x01, 0x5e, 0xaa, 0x5f, 0x5e, 0xb0, 0x0f, 0x09, 0xa1, 0xf5, 0x49,
+ 0x2e, 0x21, 0x85, 0xb5, 0x7c, 0x5e, 0x30, 0x8c, 0x5c, 0xcf, 0x14, 0x4a,
+ 0x93, 0xbe, 0x6f, 0xa2, 0xc1, 0xcb, 0xa9, 0x88,
+};
+static const unsigned char kat3331_entropyinpr1[] = {
+ 0x06, 0xa1, 0xfc, 0x53, 0xd9, 0x59, 0x30, 0x3b, 0x7d, 0x94, 0xc0, 0xd7,
+ 0x8a, 0xd1, 0xaf, 0x0a, 0xe2, 0x3f, 0x40, 0x48, 0xfd, 0x99, 0xff, 0x53,
+};
+static const unsigned char kat3331_addinpr1[] = {0};
+static const unsigned char kat3331_entropyinpr2[] = {
+ 0x78, 0xa0, 0xbb, 0x09, 0xf8, 0x39, 0x94, 0x43, 0xcc, 0x95, 0x0f, 0xd2,
+ 0x35, 0xd6, 0xd9, 0x66, 0x3d, 0x45, 0xad, 0xbf, 0x94, 0x81, 0xd7, 0x24,
+};
+static const unsigned char kat3331_addinpr2[] = {0};
+static const unsigned char kat3331_retbits[] = {
+ 0x2d, 0xb2, 0xf9, 0xce, 0x0c, 0x80, 0x74, 0xe0, 0xf0, 0x20, 0x5e, 0x3c,
+ 0xd0, 0x58, 0xe3, 0x1b, 0x5d, 0x8c, 0x73, 0xba, 0x51, 0xef, 0xda, 0x36,
+ 0x08, 0x47, 0x77, 0x82, 0x06, 0xb1, 0x26, 0x82, 0x2d, 0x7d, 0xc9, 0xe8,
+ 0x73, 0xdc, 0x7e, 0x07, 0xe3, 0x03, 0x92, 0xff, 0xaa, 0x42, 0x27, 0x61,
+ 0xff, 0xa2, 0x97, 0xc1, 0x89, 0x26, 0x5d, 0x2f, 0x8e, 0xbd, 0x45, 0xef,
+ 0x49, 0x22, 0x69, 0x03,
+};
+static const struct drbg_kat_pr_true kat3331_t = {
+ 0, kat3331_entropyin, kat3331_nonce, kat3331_persstr,
+ kat3331_entropyinpr1, kat3331_addinpr1, kat3331_entropyinpr2,
+ kat3331_addinpr2, kat3331_retbits
+};
+static const struct drbg_kat kat3331 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3331_t
+};
+
+static const unsigned char kat3332_entropyin[] = {
+ 0xa3, 0x0b, 0xc9, 0x33, 0xf7, 0x2a, 0xa4, 0xe2, 0x5d, 0x32, 0x47, 0xa8,
+ 0x97, 0xb9, 0xde, 0xd3, 0x92, 0x6b, 0xa1, 0xbb, 0x52, 0x20, 0x2d, 0xa4,
+};
+static const unsigned char kat3332_nonce[] = {
+ 0xc2, 0xe8, 0x7e, 0xb6, 0xab, 0xf0, 0x11, 0xa0, 0x6a, 0x46, 0x07, 0x95,
+ 0xa3, 0x34, 0xc7, 0x50,
+};
+static const unsigned char kat3332_persstr[] = {
+ 0xe6, 0x55, 0xfa, 0xd3, 0x2b, 0x67, 0x1c, 0x7f, 0xb4, 0xc8, 0xe5, 0x38,
+ 0x68, 0x3a, 0xb8, 0x7f, 0xbd, 0x7f, 0x51, 0xc3, 0x31, 0x3f, 0x66, 0x74,
+ 0x6c, 0x46, 0xcb, 0x63, 0x65, 0xa7, 0x8c, 0xe8,
+};
+static const unsigned char kat3332_entropyinpr1[] = {
+ 0x2e, 0x15, 0x55, 0x28, 0xed, 0x2f, 0x44, 0x17, 0xfd, 0x95, 0x54, 0x37,
+ 0xcb, 0x13, 0x46, 0x4c, 0x63, 0xfd, 0x88, 0xec, 0x8d, 0x78, 0x5c, 0x03,
+};
+static const unsigned char kat3332_addinpr1[] = {0};
+static const unsigned char kat3332_entropyinpr2[] = {
+ 0xf4, 0x76, 0x5d, 0x5d, 0x72, 0x78, 0x47, 0xf8, 0xd8, 0x12, 0xdc, 0xa0,
+ 0x4a, 0xfa, 0x56, 0x80, 0xcf, 0x61, 0xb9, 0xcc, 0xfc, 0xc5, 0x62, 0xda,
+};
+static const unsigned char kat3332_addinpr2[] = {0};
+static const unsigned char kat3332_retbits[] = {
+ 0xe3, 0x99, 0xbb, 0x27, 0x96, 0x53, 0x90, 0x52, 0xd0, 0x7f, 0x92, 0x47,
+ 0x49, 0xa6, 0xb2, 0x73, 0x29, 0x9a, 0x92, 0x76, 0xdc, 0x48, 0x25, 0x4d,
+ 0x8a, 0x81, 0x3e, 0x80, 0xf8, 0x04, 0x34, 0xfa, 0xa5, 0x53, 0xd7, 0x69,
+ 0x4f, 0xb8, 0x39, 0x57, 0xb2, 0xe5, 0x8a, 0x34, 0x54, 0xfb, 0x83, 0x80,
+ 0x78, 0x45, 0x12, 0x6c, 0x2d, 0x7a, 0xa0, 0x2b, 0xe5, 0x36, 0xcf, 0x2c,
+ 0xc7, 0xbc, 0x94, 0xfd,
+};
+static const struct drbg_kat_pr_true kat3332_t = {
+ 1, kat3332_entropyin, kat3332_nonce, kat3332_persstr,
+ kat3332_entropyinpr1, kat3332_addinpr1, kat3332_entropyinpr2,
+ kat3332_addinpr2, kat3332_retbits
+};
+static const struct drbg_kat kat3332 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3332_t
+};
+
+static const unsigned char kat3333_entropyin[] = {
+ 0x63, 0xec, 0xe4, 0x56, 0x6c, 0xa8, 0x25, 0x98, 0x6c, 0x64, 0x3a, 0x0d,
+ 0x99, 0xa1, 0xc7, 0x19, 0x6e, 0x12, 0x3c, 0x84, 0x2e, 0x87, 0x4c, 0x55,
+};
+static const unsigned char kat3333_nonce[] = {
+ 0x04, 0x42, 0x46, 0x90, 0xb1, 0xe8, 0xc5, 0x95, 0x3e, 0xb5, 0x05, 0xac,
+ 0x10, 0x49, 0xc8, 0x8d,
+};
+static const unsigned char kat3333_persstr[] = {
+ 0xf3, 0xbe, 0x85, 0x79, 0x3b, 0xd9, 0x82, 0xf9, 0xdd, 0x24, 0x69, 0x4c,
+ 0x17, 0xa3, 0x41, 0xd5, 0x91, 0xbd, 0xf8, 0x08, 0x6e, 0xf0, 0xd5, 0xbf,
+ 0x8b, 0xd3, 0xdd, 0xb8, 0xf4, 0x32, 0x80, 0xc5,
+};
+static const unsigned char kat3333_entropyinpr1[] = {
+ 0xfe, 0xcd, 0x0d, 0xcf, 0x8c, 0xcc, 0x62, 0xc8, 0x23, 0x8a, 0x3e, 0xd1,
+ 0x5c, 0x5e, 0x03, 0x24, 0x98, 0x89, 0x3c, 0x2e, 0x74, 0x3e, 0xbe, 0x5c,
+};
+static const unsigned char kat3333_addinpr1[] = {0};
+static const unsigned char kat3333_entropyinpr2[] = {
+ 0x58, 0xc6, 0x23, 0x00, 0x2b, 0x46, 0x80, 0xad, 0xdb, 0x63, 0x42, 0x6c,
+ 0x7c, 0x46, 0xc6, 0xba, 0xa0, 0x53, 0xb1, 0x1c, 0x90, 0xec, 0x39, 0x5d,
+};
+static const unsigned char kat3333_addinpr2[] = {0};
+static const unsigned char kat3333_retbits[] = {
+ 0x72, 0xdb, 0xfd, 0xca, 0xf5, 0x27, 0x4d, 0x22, 0x56, 0xb0, 0xf4, 0x6c,
+ 0x4e, 0xf6, 0x8e, 0x11, 0x12, 0x70, 0x0d, 0xfb, 0xbd, 0x38, 0x00, 0xf3,
+ 0x97, 0x80, 0x88, 0x20, 0x23, 0x1a, 0xe2, 0x42, 0x23, 0x90, 0x2d, 0x9a,
+ 0xdb, 0x55, 0xa6, 0xa1, 0xb4, 0xd1, 0x90, 0x5a, 0xe2, 0x06, 0x7b, 0xb4,
+ 0xea, 0xf9, 0x36, 0xc2, 0xec, 0xcd, 0xdb, 0xf4, 0x0a, 0x02, 0xdf, 0xce,
+ 0xe0, 0x6a, 0xc6, 0xa9,
+};
+static const struct drbg_kat_pr_true kat3333_t = {
+ 2, kat3333_entropyin, kat3333_nonce, kat3333_persstr,
+ kat3333_entropyinpr1, kat3333_addinpr1, kat3333_entropyinpr2,
+ kat3333_addinpr2, kat3333_retbits
+};
+static const struct drbg_kat kat3333 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3333_t
+};
+
+static const unsigned char kat3334_entropyin[] = {
+ 0xa3, 0xcd, 0x8e, 0x61, 0xcb, 0xbb, 0xec, 0xf7, 0xf4, 0x68, 0xb7, 0x01,
+ 0x04, 0x6c, 0x61, 0x66, 0xf6, 0x4e, 0xb3, 0xd4, 0x0a, 0xc9, 0xdd, 0xd2,
+};
+static const unsigned char kat3334_nonce[] = {
+ 0x66, 0x51, 0xb0, 0xb7, 0xb1, 0x20, 0xe9, 0x52, 0x2b, 0x76, 0x72, 0xa7,
+ 0x65, 0x29, 0x2b, 0x28,
+};
+static const unsigned char kat3334_persstr[] = {
+ 0x23, 0xdb, 0xa9, 0xa6, 0x57, 0x07, 0x77, 0x42, 0x7d, 0x72, 0x2d, 0x82,
+ 0x7a, 0x87, 0xcd, 0xbe, 0x2b, 0xb9, 0x07, 0x66, 0xcb, 0xa7, 0x75, 0x1f,
+ 0xe0, 0xc8, 0x0a, 0x10, 0x94, 0x0b, 0x49, 0x7c,
+};
+static const unsigned char kat3334_entropyinpr1[] = {
+ 0x24, 0x9d, 0x6b, 0x3c, 0x22, 0xd6, 0x0e, 0xdf, 0xae, 0x0e, 0x43, 0x8b,
+ 0x51, 0x09, 0xaa, 0x7d, 0x81, 0xe3, 0x9c, 0x23, 0x3c, 0x9f, 0xc6, 0x9c,
+};
+static const unsigned char kat3334_addinpr1[] = {0};
+static const unsigned char kat3334_entropyinpr2[] = {
+ 0x2c, 0x68, 0x15, 0xce, 0xe0, 0x42, 0x79, 0x50, 0xe2, 0x6e, 0x80, 0x63,
+ 0xb6, 0x2f, 0x35, 0x5a, 0x72, 0x52, 0xc6, 0xc2, 0xc1, 0xe5, 0xce, 0x11,
+};
+static const unsigned char kat3334_addinpr2[] = {0};
+static const unsigned char kat3334_retbits[] = {
+ 0x8b, 0xe5, 0x65, 0x00, 0x0c, 0xf9, 0x17, 0x45, 0x38, 0x9c, 0x3b, 0x26,
+ 0x98, 0x2c, 0x45, 0xdb, 0x3f, 0xb0, 0x6a, 0xb8, 0xbd, 0xdf, 0xba, 0xea,
+ 0x52, 0x43, 0x39, 0x9a, 0x04, 0x4e, 0xb2, 0xfa, 0xab, 0x15, 0xf4, 0x70,
+ 0xc8, 0xdc, 0xad, 0xde, 0xed, 0x39, 0xfd, 0xb1, 0x64, 0x19, 0xee, 0x4f,
+ 0xa7, 0x0b, 0x7f, 0x83, 0xff, 0x28, 0x55, 0xcf, 0x0c, 0xe9, 0x2a, 0xd5,
+ 0x15, 0xbb, 0x34, 0x74,
+};
+static const struct drbg_kat_pr_true kat3334_t = {
+ 3, kat3334_entropyin, kat3334_nonce, kat3334_persstr,
+ kat3334_entropyinpr1, kat3334_addinpr1, kat3334_entropyinpr2,
+ kat3334_addinpr2, kat3334_retbits
+};
+static const struct drbg_kat kat3334 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3334_t
+};
+
+static const unsigned char kat3335_entropyin[] = {
+ 0x86, 0x39, 0xad, 0xe7, 0xfc, 0xcd, 0x79, 0x40, 0x26, 0xd6, 0xef, 0xee,
+ 0x07, 0xdf, 0xb9, 0x88, 0x15, 0x41, 0x8b, 0x9d, 0x1a, 0x0a, 0x5f, 0xb5,
+};
+static const unsigned char kat3335_nonce[] = {
+ 0x79, 0xa2, 0x43, 0xe6, 0x84, 0x8a, 0xe6, 0x84, 0xe4, 0x0e, 0x84, 0x0c,
+ 0xb7, 0x5e, 0x1f, 0x20,
+};
+static const unsigned char kat3335_persstr[] = {
+ 0x7f, 0xa8, 0xae, 0x9e, 0x56, 0x54, 0xfb, 0x4e, 0x84, 0x61, 0xc1, 0xfa,
+ 0x0f, 0xbc, 0xbb, 0x27, 0xe6, 0xea, 0x14, 0xaf, 0x88, 0x3a, 0x95, 0x8f,
+ 0xe2, 0x4e, 0x65, 0x95, 0xc9, 0x43, 0x2c, 0xfc,
+};
+static const unsigned char kat3335_entropyinpr1[] = {
+ 0xb0, 0x16, 0xe1, 0x2e, 0x78, 0x73, 0xda, 0xe0, 0x59, 0x0e, 0x20, 0xb8,
+ 0x3e, 0x3f, 0x90, 0x04, 0x9e, 0xe6, 0xe9, 0x97, 0x9c, 0xb6, 0xff, 0x97,
+};
+static const unsigned char kat3335_addinpr1[] = {0};
+static const unsigned char kat3335_entropyinpr2[] = {
+ 0x86, 0x7b, 0x19, 0x92, 0x45, 0xd7, 0xb2, 0xda, 0x5c, 0x80, 0xe0, 0x05,
+ 0x43, 0xef, 0x80, 0xf7, 0xfd, 0xd6, 0x60, 0x5b, 0x6c, 0x67, 0x64, 0x35,
+};
+static const unsigned char kat3335_addinpr2[] = {0};
+static const unsigned char kat3335_retbits[] = {
+ 0x16, 0x2b, 0xcf, 0x3d, 0x37, 0x31, 0x52, 0xbf, 0x12, 0xd5, 0x00, 0xd5,
+ 0x13, 0xf6, 0x8a, 0x4b, 0x05, 0x36, 0x75, 0x5d, 0xdb, 0x6a, 0x32, 0x29,
+ 0xcf, 0x10, 0xcf, 0x47, 0x13, 0x83, 0x91, 0x25, 0xed, 0xf3, 0xd9, 0x47,
+ 0x70, 0x49, 0x23, 0x95, 0xa7, 0xc4, 0xe8, 0x99, 0x95, 0x21, 0x76, 0xbf,
+ 0x5b, 0xf0, 0x31, 0xa1, 0xd5, 0x16, 0x27, 0x3a, 0x58, 0x86, 0x5d, 0x3e,
+ 0xbc, 0xf8, 0xea, 0x73,
+};
+static const struct drbg_kat_pr_true kat3335_t = {
+ 4, kat3335_entropyin, kat3335_nonce, kat3335_persstr,
+ kat3335_entropyinpr1, kat3335_addinpr1, kat3335_entropyinpr2,
+ kat3335_addinpr2, kat3335_retbits
+};
+static const struct drbg_kat kat3335 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3335_t
+};
+
+static const unsigned char kat3336_entropyin[] = {
+ 0x9c, 0xee, 0xa9, 0x7b, 0x37, 0x81, 0x36, 0xcb, 0x0a, 0x25, 0xe7, 0x24,
+ 0x04, 0x40, 0x71, 0xfe, 0x65, 0x30, 0xaf, 0x74, 0xed, 0x3a, 0x2e, 0x81,
+};
+static const unsigned char kat3336_nonce[] = {
+ 0x1f, 0x19, 0xbd, 0x84, 0xe6, 0x7a, 0x42, 0x6c, 0xbf, 0x5b, 0x94, 0x31,
+ 0x2d, 0xc8, 0xfc, 0x80,
+};
+static const unsigned char kat3336_persstr[] = {
+ 0x06, 0x06, 0x5d, 0xc8, 0xe0, 0xbc, 0x46, 0x61, 0xc5, 0xbd, 0x23, 0x1d,
+ 0xc1, 0x49, 0xe4, 0x93, 0x91, 0x02, 0x96, 0x5d, 0x09, 0x10, 0x56, 0x0c,
+ 0xdf, 0x36, 0xdb, 0xf0, 0xa8, 0xc4, 0x82, 0x16,
+};
+static const unsigned char kat3336_entropyinpr1[] = {
+ 0x80, 0x0d, 0x22, 0xa9, 0x13, 0x5d, 0x84, 0x82, 0xba, 0x14, 0xbd, 0xcc,
+ 0x7d, 0x60, 0x8f, 0x1e, 0xe2, 0xda, 0x93, 0x51, 0xa1, 0xb4, 0xcb, 0x98,
+};
+static const unsigned char kat3336_addinpr1[] = {0};
+static const unsigned char kat3336_entropyinpr2[] = {
+ 0xd4, 0x3a, 0xdb, 0xd3, 0xbc, 0xbb, 0x75, 0x92, 0x53, 0x6a, 0x9d, 0xe8,
+ 0x8c, 0xf2, 0xe0, 0xa4, 0xaa, 0x92, 0xe0, 0xb7, 0x8f, 0x73, 0x86, 0x83,
+};
+static const unsigned char kat3336_addinpr2[] = {0};
+static const unsigned char kat3336_retbits[] = {
+ 0xda, 0x8d, 0xae, 0x5a, 0xa8, 0xa8, 0xb1, 0x36, 0xf1, 0x29, 0x8e, 0xfc,
+ 0x5e, 0x90, 0x42, 0x16, 0xdf, 0x94, 0x09, 0xf5, 0x1c, 0xbf, 0xc8, 0xa7,
+ 0xfd, 0x98, 0x4e, 0x4a, 0x71, 0x98, 0xb1, 0xa8, 0xd1, 0x1c, 0x1e, 0xd0,
+ 0xb1, 0x9c, 0x75, 0x20, 0xd3, 0x3c, 0x34, 0xa0, 0x86, 0xec, 0x86, 0x67,
+ 0x4b, 0xc4, 0x7f, 0x10, 0xa4, 0x4e, 0x4c, 0x74, 0xa8, 0xfa, 0x8f, 0xde,
+ 0x5e, 0x2c, 0x5f, 0x87,
+};
+static const struct drbg_kat_pr_true kat3336_t = {
+ 5, kat3336_entropyin, kat3336_nonce, kat3336_persstr,
+ kat3336_entropyinpr1, kat3336_addinpr1, kat3336_entropyinpr2,
+ kat3336_addinpr2, kat3336_retbits
+};
+static const struct drbg_kat kat3336 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3336_t
+};
+
+static const unsigned char kat3337_entropyin[] = {
+ 0x3d, 0x7b, 0x66, 0x69, 0x72, 0xce, 0x07, 0xb4, 0x80, 0xbb, 0x7f, 0xc4,
+ 0x5b, 0x57, 0x6b, 0x75, 0xe1, 0xbf, 0xe3, 0x24, 0x25, 0xfe, 0xa7, 0x48,
+};
+static const unsigned char kat3337_nonce[] = {
+ 0xe2, 0x09, 0xeb, 0x61, 0x0a, 0x3a, 0xd2, 0xc4, 0x3c, 0x50, 0x88, 0xb0,
+ 0xdc, 0xfe, 0xcf, 0x2c,
+};
+static const unsigned char kat3337_persstr[] = {
+ 0x77, 0x1a, 0xed, 0x7b, 0x51, 0xc2, 0x2e, 0x00, 0x26, 0x76, 0xd3, 0xc7,
+ 0xcd, 0xcd, 0xa9, 0x06, 0xd4, 0x3f, 0xe8, 0x05, 0x5d, 0x83, 0x24, 0x79,
+ 0xe8, 0x71, 0xa2, 0x3f, 0x35, 0xe0, 0xa7, 0x85,
+};
+static const unsigned char kat3337_entropyinpr1[] = {
+ 0xd5, 0xaf, 0xae, 0x2e, 0x7e, 0x12, 0xee, 0x53, 0x8f, 0x41, 0x5c, 0x32,
+ 0x66, 0xd9, 0x2f, 0xd0, 0x91, 0xdd, 0x73, 0x0f, 0x01, 0x7b, 0x21, 0x1a,
+};
+static const unsigned char kat3337_addinpr1[] = {0};
+static const unsigned char kat3337_entropyinpr2[] = {
+ 0x92, 0x48, 0xae, 0x65, 0x13, 0x4e, 0xa2, 0xba, 0xc3, 0xb4, 0x59, 0xa9,
+ 0x1c, 0x65, 0x33, 0x0e, 0x2a, 0x52, 0xcd, 0xa2, 0xf5, 0x41, 0x6c, 0x19,
+};
+static const unsigned char kat3337_addinpr2[] = {0};
+static const unsigned char kat3337_retbits[] = {
+ 0xc1, 0xf3, 0x6b, 0xe2, 0x61, 0x10, 0x8c, 0xa5, 0x62, 0xdf, 0x10, 0xb0,
+ 0x71, 0xff, 0x5f, 0xab, 0x4d, 0x61, 0x11, 0x3f, 0xcb, 0x84, 0xc9, 0xe4,
+ 0xc6, 0xa5, 0xe9, 0x63, 0x30, 0x7a, 0x5e, 0x7c, 0x74, 0xa7, 0x85, 0xb1,
+ 0xcd, 0x9d, 0x9a, 0x4c, 0x99, 0xfe, 0x1b, 0xee, 0xf7, 0xe9, 0xc9, 0x6e,
+ 0x7c, 0xd6, 0xee, 0xcd, 0xf3, 0x70, 0x10, 0xac, 0x64, 0xaa, 0xf4, 0x7d,
+ 0x1e, 0x36, 0x52, 0x2b,
+};
+static const struct drbg_kat_pr_true kat3337_t = {
+ 6, kat3337_entropyin, kat3337_nonce, kat3337_persstr,
+ kat3337_entropyinpr1, kat3337_addinpr1, kat3337_entropyinpr2,
+ kat3337_addinpr2, kat3337_retbits
+};
+static const struct drbg_kat kat3337 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3337_t
+};
+
+static const unsigned char kat3338_entropyin[] = {
+ 0x5c, 0x8b, 0xf4, 0xd0, 0x49, 0x7c, 0xde, 0xb9, 0xc8, 0xaa, 0x41, 0x34,
+ 0x83, 0xeb, 0x59, 0x61, 0xf2, 0x58, 0x63, 0x6b, 0x29, 0x64, 0xe0, 0x22,
+};
+static const unsigned char kat3338_nonce[] = {
+ 0x82, 0x7b, 0xb9, 0x4d, 0x7a, 0x94, 0xa2, 0x35, 0x68, 0x03, 0x9a, 0x8c,
+ 0x9e, 0x04, 0x5a, 0x27,
+};
+static const unsigned char kat3338_persstr[] = {
+ 0x52, 0xb5, 0x41, 0xed, 0xb5, 0x99, 0x04, 0x1c, 0x35, 0x0c, 0x18, 0x65,
+ 0x3c, 0x70, 0x5c, 0xe3, 0x01, 0x18, 0xce, 0xb5, 0xaa, 0x62, 0xe5, 0xea,
+ 0x52, 0xeb, 0x51, 0x01, 0x2b, 0xa9, 0x8c, 0x5d,
+};
+static const unsigned char kat3338_entropyinpr1[] = {
+ 0xb2, 0xdc, 0x39, 0xdf, 0x8c, 0x0f, 0x40, 0x2a, 0x49, 0x3b, 0x43, 0x05,
+ 0x31, 0x36, 0xa7, 0xea, 0xcc, 0x86, 0xed, 0x75, 0xec, 0x5c, 0xa5, 0xfc,
+};
+static const unsigned char kat3338_addinpr1[] = {0};
+static const unsigned char kat3338_entropyinpr2[] = {
+ 0x1e, 0x25, 0x85, 0x2a, 0xe1, 0x6d, 0x40, 0x53, 0x2a, 0xd5, 0xff, 0xc6,
+ 0x89, 0x65, 0x79, 0xeb, 0xdd, 0x4a, 0xc2, 0xcf, 0x9b, 0xa7, 0xa3, 0x1f,
+};
+static const unsigned char kat3338_addinpr2[] = {0};
+static const unsigned char kat3338_retbits[] = {
+ 0xd4, 0x4f, 0x52, 0x57, 0x27, 0x34, 0x72, 0x02, 0xd2, 0x3f, 0xaf, 0x0b,
+ 0xc5, 0x0c, 0x5b, 0x14, 0xd6, 0x51, 0x93, 0x75, 0x64, 0x5f, 0x2b, 0xf6,
+ 0xaf, 0xf7, 0xf1, 0x1c, 0x64, 0x2f, 0x1a, 0x7e, 0xf2, 0xff, 0x6f, 0x73,
+ 0x18, 0xdb, 0x8f, 0x15, 0x75, 0xeb, 0xc0, 0xd5, 0x05, 0xd1, 0x66, 0x0e,
+ 0x6d, 0xad, 0x50, 0x4c, 0x56, 0xdf, 0xb1, 0x46, 0xb9, 0x32, 0x61, 0xcb,
+ 0x6a, 0x88, 0x72, 0x2d,
+};
+static const struct drbg_kat_pr_true kat3338_t = {
+ 7, kat3338_entropyin, kat3338_nonce, kat3338_persstr,
+ kat3338_entropyinpr1, kat3338_addinpr1, kat3338_entropyinpr2,
+ kat3338_addinpr2, kat3338_retbits
+};
+static const struct drbg_kat kat3338 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3338_t
+};
+
+static const unsigned char kat3339_entropyin[] = {
+ 0xd5, 0xfb, 0x69, 0xe7, 0xaa, 0x08, 0x00, 0x97, 0xf6, 0xa2, 0xf5, 0xc8,
+ 0x17, 0x9b, 0x18, 0x6a, 0x21, 0x18, 0x09, 0xbc, 0x13, 0x32, 0x59, 0xec,
+};
+static const unsigned char kat3339_nonce[] = {
+ 0x60, 0x3f, 0x8a, 0x72, 0x32, 0x13, 0x5c, 0x99, 0x73, 0x15, 0xe0, 0x4a,
+ 0x07, 0xec, 0xab, 0xa8,
+};
+static const unsigned char kat3339_persstr[] = {
+ 0xd1, 0x02, 0x65, 0x64, 0xe8, 0x75, 0x79, 0x0e, 0x42, 0x88, 0x4b, 0x09,
+ 0x1e, 0xb8, 0x6d, 0x6f, 0xd2, 0x08, 0xcc, 0x04, 0x0f, 0x5c, 0x49, 0xd4,
+ 0x6b, 0x1c, 0x1b, 0x6d, 0xbe, 0x4c, 0x99, 0x40,
+};
+static const unsigned char kat3339_entropyinpr1[] = {
+ 0x23, 0xf4, 0x9a, 0x2b, 0x9d, 0x87, 0x14, 0xfc, 0x8a, 0x03, 0x0b, 0x70,
+ 0x7d, 0x62, 0xb8, 0x26, 0x39, 0x4f, 0x92, 0x23, 0xd1, 0x51, 0xcf, 0xbe,
+};
+static const unsigned char kat3339_addinpr1[] = {0};
+static const unsigned char kat3339_entropyinpr2[] = {
+ 0xcc, 0xc6, 0x52, 0x4d, 0x6c, 0xc5, 0x65, 0x67, 0x2d, 0x7b, 0xa9, 0x5b,
+ 0x19, 0x01, 0x97, 0xcb, 0x9c, 0x17, 0xe7, 0xe1, 0x56, 0x01, 0x01, 0x1e,
+};
+static const unsigned char kat3339_addinpr2[] = {0};
+static const unsigned char kat3339_retbits[] = {
+ 0xc7, 0x17, 0xdb, 0xc0, 0x47, 0xd4, 0xeb, 0x6b, 0x26, 0x84, 0xc6, 0xcc,
+ 0x93, 0x47, 0x0d, 0x1e, 0x06, 0x42, 0xd7, 0xc1, 0x5c, 0x63, 0xcd, 0xf8,
+ 0xed, 0xfd, 0xa8, 0x52, 0x01, 0xf0, 0x62, 0x43, 0xf5, 0xf9, 0x68, 0x2c,
+ 0xad, 0x07, 0x71, 0x70, 0xb6, 0x1e, 0xd1, 0x40, 0x17, 0x1b, 0x44, 0x5f,
+ 0x2e, 0x7f, 0x23, 0xd0, 0x11, 0x62, 0xd8, 0x57, 0xd5, 0xfb, 0xc9, 0x06,
+ 0xd2, 0xfb, 0x12, 0x49,
+};
+static const struct drbg_kat_pr_true kat3339_t = {
+ 8, kat3339_entropyin, kat3339_nonce, kat3339_persstr,
+ kat3339_entropyinpr1, kat3339_addinpr1, kat3339_entropyinpr2,
+ kat3339_addinpr2, kat3339_retbits
+};
+static const struct drbg_kat kat3339 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3339_t
+};
+
+static const unsigned char kat3340_entropyin[] = {
+ 0x5f, 0x56, 0x49, 0xdf, 0x0b, 0x46, 0x11, 0xf7, 0x1a, 0xd8, 0xa4, 0x64,
+ 0x85, 0xc2, 0x72, 0xa5, 0xc8, 0x57, 0xdc, 0x60, 0x4f, 0x23, 0x71, 0xc6,
+};
+static const unsigned char kat3340_nonce[] = {
+ 0x0a, 0x79, 0x50, 0xe6, 0xbc, 0x62, 0x88, 0xd2, 0xf7, 0x78, 0xce, 0xa1,
+ 0x92, 0x59, 0xfd, 0x22,
+};
+static const unsigned char kat3340_persstr[] = {
+ 0x2a, 0x5f, 0x50, 0x38, 0x08, 0x17, 0x88, 0x3e, 0x9c, 0x76, 0xc9, 0xae,
+ 0xf0, 0x97, 0x73, 0x75, 0xe6, 0xce, 0xa5, 0x8d, 0x0a, 0xa5, 0x63, 0xa2,
+ 0x89, 0x91, 0x49, 0xae, 0x37, 0x05, 0x39, 0x5c,
+};
+static const unsigned char kat3340_entropyinpr1[] = {
+ 0xfe, 0xb0, 0x97, 0xd4, 0x2b, 0xdd, 0x52, 0xb0, 0xa3, 0xc7, 0xbb, 0xcc,
+ 0x58, 0x4e, 0x4d, 0xaa, 0xd1, 0xa2, 0x1e, 0x07, 0x0b, 0x8b, 0x04, 0xe1,
+};
+static const unsigned char kat3340_addinpr1[] = {0};
+static const unsigned char kat3340_entropyinpr2[] = {
+ 0x8f, 0x7c, 0xbd, 0x63, 0x44, 0xe5, 0x6c, 0x3d, 0x2b, 0x58, 0xfd, 0xf0,
+ 0x3b, 0x13, 0x6d, 0x46, 0x68, 0x40, 0x30, 0xc8, 0xbf, 0x18, 0x1e, 0x23,
+};
+static const unsigned char kat3340_addinpr2[] = {0};
+static const unsigned char kat3340_retbits[] = {
+ 0x16, 0xb8, 0x9a, 0xa5, 0x89, 0x5b, 0xd2, 0x43, 0x0e, 0x98, 0xba, 0x7b,
+ 0xba, 0xaa, 0x3a, 0xb0, 0x88, 0x20, 0x31, 0x01, 0xfa, 0xe7, 0xaa, 0xcb,
+ 0xf1, 0xa0, 0xc1, 0xfb, 0x2e, 0x41, 0x99, 0x15, 0xc9, 0xaf, 0xd9, 0x03,
+ 0x31, 0x69, 0xa5, 0x58, 0x03, 0xbd, 0xb7, 0xb8, 0xdd, 0x51, 0xa8, 0x65,
+ 0x5f, 0x29, 0x75, 0x77, 0xbd, 0x64, 0xa4, 0x67, 0x0e, 0xed, 0x5e, 0x74,
+ 0x7c, 0x39, 0xad, 0x4e,
+};
+static const struct drbg_kat_pr_true kat3340_t = {
+ 9, kat3340_entropyin, kat3340_nonce, kat3340_persstr,
+ kat3340_entropyinpr1, kat3340_addinpr1, kat3340_entropyinpr2,
+ kat3340_addinpr2, kat3340_retbits
+};
+static const struct drbg_kat kat3340 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3340_t
+};
+
+static const unsigned char kat3341_entropyin[] = {
+ 0x3f, 0x95, 0x4e, 0xad, 0x27, 0xfa, 0x11, 0xba, 0x39, 0x1b, 0x4c, 0x41,
+ 0xe8, 0xe5, 0x14, 0x85, 0x4f, 0x1d, 0xad, 0xa3, 0xca, 0x1e, 0x72, 0xa1,
+};
+static const unsigned char kat3341_nonce[] = {
+ 0x99, 0xb8, 0xdf, 0x3b, 0x2c, 0x9a, 0x83, 0x01, 0x81, 0xcf, 0x11, 0xbd,
+ 0x6e, 0x59, 0xef, 0x2a,
+};
+static const unsigned char kat3341_persstr[] = {
+ 0x2b, 0x86, 0x1d, 0xb6, 0xd6, 0x22, 0xa6, 0xca, 0x2e, 0xe4, 0xa3, 0xeb,
+ 0x19, 0xfc, 0x54, 0x19, 0x48, 0xc3, 0xcd, 0x12, 0x02, 0xe5, 0x96, 0xa0,
+ 0x44, 0x81, 0xb5, 0x39, 0x49, 0xc8, 0xdc, 0xde,
+};
+static const unsigned char kat3341_entropyinpr1[] = {
+ 0x06, 0x1a, 0xed, 0x91, 0xfe, 0x46, 0x28, 0x00, 0x9b, 0x0e, 0xf5, 0x96,
+ 0x30, 0xa6, 0x1a, 0x7f, 0xbf, 0xae, 0x33, 0xac, 0x06, 0xa0, 0x27, 0x09,
+};
+static const unsigned char kat3341_addinpr1[] = {0};
+static const unsigned char kat3341_entropyinpr2[] = {
+ 0xdc, 0x84, 0x4c, 0x4e, 0x2a, 0xf7, 0x77, 0xdf, 0xa0, 0x24, 0xe2, 0xfb,
+ 0xc5, 0x40, 0xb2, 0x60, 0x2c, 0xde, 0x67, 0xb5, 0xf8, 0x20, 0xae, 0x79,
+};
+static const unsigned char kat3341_addinpr2[] = {0};
+static const unsigned char kat3341_retbits[] = {
+ 0x5b, 0x93, 0xe5, 0x37, 0xb2, 0xcf, 0x46, 0xa9, 0x32, 0xa0, 0x60, 0xce,
+ 0xa1, 0x36, 0xb7, 0xac, 0x38, 0xee, 0x3e, 0x3d, 0x61, 0xed, 0xf1, 0x59,
+ 0xdb, 0x09, 0xb8, 0x45, 0xfe, 0x4c, 0x32, 0x8a, 0xae, 0xea, 0xbf, 0x5b,
+ 0x65, 0x04, 0xbd, 0x39, 0x1e, 0x13, 0x89, 0x5f, 0x2c, 0x58, 0xfa, 0x4d,
+ 0xce, 0x98, 0x6b, 0x87, 0x99, 0x1c, 0x98, 0xdf, 0x94, 0xa5, 0x48, 0x30,
+ 0x34, 0xb8, 0xb9, 0x4d,
+};
+static const struct drbg_kat_pr_true kat3341_t = {
+ 10, kat3341_entropyin, kat3341_nonce, kat3341_persstr,
+ kat3341_entropyinpr1, kat3341_addinpr1, kat3341_entropyinpr2,
+ kat3341_addinpr2, kat3341_retbits
+};
+static const struct drbg_kat kat3341 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3341_t
+};
+
+static const unsigned char kat3342_entropyin[] = {
+ 0x24, 0x8d, 0x73, 0xe3, 0x9d, 0x86, 0xad, 0x65, 0x51, 0x01, 0xe3, 0x63,
+ 0x38, 0x01, 0x51, 0xe9, 0x48, 0x27, 0xb6, 0x49, 0xbc, 0x85, 0x62, 0x82,
+};
+static const unsigned char kat3342_nonce[] = {
+ 0xda, 0xf5, 0xd9, 0xd1, 0xad, 0x98, 0x93, 0x1f, 0x67, 0xa3, 0x60, 0x9e,
+ 0x17, 0x41, 0xbf, 0x3a,
+};
+static const unsigned char kat3342_persstr[] = {
+ 0x21, 0x31, 0x0c, 0x14, 0x1c, 0xbf, 0xed, 0x62, 0x04, 0xb6, 0xe9, 0x28,
+ 0xc9, 0xe7, 0xee, 0x3a, 0x66, 0x40, 0x1c, 0xa3, 0xd0, 0x32, 0xa0, 0x6e,
+ 0x31, 0x67, 0xa9, 0xd9, 0x97, 0xb8, 0x4e, 0x27,
+};
+static const unsigned char kat3342_entropyinpr1[] = {
+ 0x04, 0x79, 0xff, 0x68, 0xf1, 0x0d, 0x67, 0xff, 0x5b, 0x88, 0x45, 0xbf,
+ 0x75, 0x32, 0x0a, 0xd3, 0x43, 0x6a, 0x57, 0x1b, 0xcc, 0x76, 0x3f, 0x52,
+};
+static const unsigned char kat3342_addinpr1[] = {0};
+static const unsigned char kat3342_entropyinpr2[] = {
+ 0x5e, 0x66, 0x89, 0xa7, 0xe9, 0x91, 0xb0, 0x23, 0xb9, 0x41, 0xbe, 0x2e,
+ 0xad, 0xad, 0xdd, 0x5b, 0xfb, 0x19, 0xa0, 0x40, 0x2b, 0x78, 0xa0, 0x4a,
+};
+static const unsigned char kat3342_addinpr2[] = {0};
+static const unsigned char kat3342_retbits[] = {
+ 0x3d, 0xb5, 0x27, 0xad, 0x3a, 0x51, 0x94, 0x2c, 0x88, 0xaf, 0x34, 0x63,
+ 0x4b, 0x1b, 0x47, 0x16, 0x76, 0xa4, 0x9f, 0xc7, 0x93, 0xa7, 0xec, 0x4a,
+ 0xff, 0x97, 0xfc, 0xf8, 0xba, 0x49, 0xfa, 0xd3, 0x8b, 0x55, 0xab, 0xb9,
+ 0x60, 0x1d, 0x1f, 0x22, 0xdf, 0x9f, 0x93, 0xcb, 0x70, 0xc0, 0x90, 0x86,
+ 0xc6, 0x74, 0x3e, 0xab, 0x2e, 0x21, 0x0b, 0x54, 0x55, 0x48, 0x6f, 0x61,
+ 0x2d, 0xc2, 0x3c, 0x31,
+};
+static const struct drbg_kat_pr_true kat3342_t = {
+ 11, kat3342_entropyin, kat3342_nonce, kat3342_persstr,
+ kat3342_entropyinpr1, kat3342_addinpr1, kat3342_entropyinpr2,
+ kat3342_addinpr2, kat3342_retbits
+};
+static const struct drbg_kat kat3342 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3342_t
+};
+
+static const unsigned char kat3343_entropyin[] = {
+ 0x4a, 0x65, 0x39, 0x7a, 0xac, 0xf8, 0xb2, 0xd5, 0xc8, 0x5c, 0xcf, 0x6c,
+ 0x3c, 0x85, 0xe9, 0xee, 0x35, 0xe9, 0xbc, 0x97, 0xf6, 0x54, 0xf9, 0x9d,
+};
+static const unsigned char kat3343_nonce[] = {
+ 0x18, 0x60, 0x0a, 0x32, 0x9c, 0xd1, 0xf9, 0x62, 0x92, 0x61, 0xb3, 0x05,
+ 0x31, 0x67, 0x03, 0xdb,
+};
+static const unsigned char kat3343_persstr[] = {
+ 0x2e, 0x9f, 0xf1, 0x17, 0x0a, 0x1d, 0x62, 0x9f, 0x13, 0x7f, 0xb2, 0x34,
+ 0xf7, 0x74, 0x8a, 0xc1, 0x71, 0x10, 0x17, 0xbc, 0x14, 0x0f, 0xf9, 0xed,
+ 0xe9, 0x3f, 0xdf, 0x6f, 0x45, 0x21, 0xec, 0x7e,
+};
+static const unsigned char kat3343_entropyinpr1[] = {
+ 0x7b, 0x63, 0xb6, 0xed, 0x68, 0xdc, 0xbb, 0x20, 0xa0, 0x9f, 0x47, 0x9a,
+ 0x5f, 0x9b, 0x79, 0x7f, 0x8c, 0x0b, 0x9b, 0x1e, 0x7f, 0xca, 0xcd, 0xb6,
+};
+static const unsigned char kat3343_addinpr1[] = {0};
+static const unsigned char kat3343_entropyinpr2[] = {
+ 0x61, 0x4b, 0x58, 0xf2, 0x49, 0xce, 0x4e, 0x0d, 0x18, 0x40, 0xc8, 0xec,
+ 0x62, 0x0c, 0x05, 0xe0, 0x38, 0x4d, 0x3c, 0x0c, 0x48, 0x93, 0x86, 0xe2,
+};
+static const unsigned char kat3343_addinpr2[] = {0};
+static const unsigned char kat3343_retbits[] = {
+ 0xf9, 0x7f, 0xf4, 0xd8, 0xb1, 0x44, 0x74, 0x6f, 0x79, 0x44, 0xe6, 0x9a,
+ 0xa1, 0x07, 0x24, 0x1c, 0xa5, 0xb6, 0xe6, 0x7c, 0xc2, 0x84, 0x43, 0xa8,
+ 0xb0, 0x15, 0x09, 0xb1, 0xca, 0xd3, 0xa0, 0xab, 0x42, 0x72, 0xb8, 0xc9,
+ 0x98, 0xbc, 0xc5, 0x45, 0x5a, 0xdd, 0xec, 0x52, 0xae, 0x97, 0x10, 0x42,
+ 0xf1, 0xba, 0xea, 0x37, 0xa2, 0xc7, 0xda, 0x2c, 0x87, 0xa5, 0xad, 0xf0,
+ 0x41, 0x04, 0xb8, 0xcc,
+};
+static const struct drbg_kat_pr_true kat3343_t = {
+ 12, kat3343_entropyin, kat3343_nonce, kat3343_persstr,
+ kat3343_entropyinpr1, kat3343_addinpr1, kat3343_entropyinpr2,
+ kat3343_addinpr2, kat3343_retbits
+};
+static const struct drbg_kat kat3343 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3343_t
+};
+
+static const unsigned char kat3344_entropyin[] = {
+ 0x01, 0xbe, 0x00, 0xdc, 0xc4, 0xa2, 0xb5, 0xea, 0x92, 0x22, 0x3c, 0x2d,
+ 0x17, 0xde, 0x9f, 0x50, 0xda, 0x37, 0xa5, 0x1e, 0x1c, 0x5c, 0xa4, 0x20,
+};
+static const unsigned char kat3344_nonce[] = {
+ 0xb4, 0xca, 0x36, 0x3e, 0xee, 0xd8, 0x93, 0x29, 0xa4, 0x94, 0x01, 0x7e,
+ 0xfa, 0xa4, 0xb7, 0xd8,
+};
+static const unsigned char kat3344_persstr[] = {
+ 0x58, 0x65, 0x8f, 0x38, 0xa2, 0xa7, 0x9e, 0xc9, 0xbe, 0x8d, 0x54, 0xcf,
+ 0xfa, 0x4c, 0x88, 0x8c, 0x16, 0xd7, 0x4e, 0xdd, 0x0f, 0x30, 0xf3, 0xbe,
+ 0x4c, 0x42, 0xe8, 0xcc, 0x28, 0x8c, 0xb8, 0x2e,
+};
+static const unsigned char kat3344_entropyinpr1[] = {
+ 0x94, 0x09, 0x4e, 0x9b, 0xce, 0x3d, 0xd1, 0x75, 0xc4, 0x7f, 0xfd, 0xac,
+ 0xac, 0x65, 0x12, 0x35, 0xae, 0xc4, 0x5e, 0xb5, 0x2f, 0x31, 0x5f, 0x3d,
+};
+static const unsigned char kat3344_addinpr1[] = {0};
+static const unsigned char kat3344_entropyinpr2[] = {
+ 0x11, 0xcb, 0xb3, 0xa9, 0x60, 0xa9, 0x97, 0xe6, 0x4b, 0x57, 0x23, 0x36,
+ 0x53, 0x49, 0x7c, 0x35, 0x3c, 0xd9, 0x2b, 0x01, 0x81, 0x7f, 0x1e, 0x28,
+};
+static const unsigned char kat3344_addinpr2[] = {0};
+static const unsigned char kat3344_retbits[] = {
+ 0xa7, 0x28, 0x2e, 0xc7, 0x3f, 0xac, 0x8d, 0x2f, 0xc8, 0x74, 0x89, 0x29,
+ 0xe1, 0xa3, 0xe3, 0x5e, 0x68, 0x65, 0x45, 0x20, 0x35, 0xbe, 0xb5, 0x3d,
+ 0x8a, 0xe8, 0x1d, 0xe0, 0xc6, 0x87, 0x20, 0x55, 0x16, 0x10, 0x4a, 0x08,
+ 0x31, 0x3f, 0xf6, 0xdb, 0xc3, 0xa2, 0x82, 0x4e, 0x7e, 0x74, 0x38, 0x2f,
+ 0xe1, 0xc1, 0x6e, 0x9e, 0x4e, 0xa6, 0x38, 0x35, 0x73, 0x50, 0x33, 0x40,
+ 0x50, 0xb0, 0xd7, 0x04,
+};
+static const struct drbg_kat_pr_true kat3344_t = {
+ 13, kat3344_entropyin, kat3344_nonce, kat3344_persstr,
+ kat3344_entropyinpr1, kat3344_addinpr1, kat3344_entropyinpr2,
+ kat3344_addinpr2, kat3344_retbits
+};
+static const struct drbg_kat kat3344 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3344_t
+};
+
+static const unsigned char kat3345_entropyin[] = {
+ 0x76, 0x2e, 0x5a, 0x59, 0x5e, 0xc9, 0x81, 0xda, 0x51, 0x86, 0xf2, 0x66,
+ 0x7a, 0xba, 0x37, 0xac, 0xa5, 0x0d, 0x11, 0x6d, 0x0c, 0x68, 0x92, 0x89,
+};
+static const unsigned char kat3345_nonce[] = {
+ 0x20, 0x3a, 0x94, 0xd0, 0xa4, 0x92, 0x93, 0xce, 0x76, 0x2e, 0x8e, 0x8e,
+ 0x8f, 0x96, 0xcf, 0x1c,
+};
+static const unsigned char kat3345_persstr[] = {
+ 0xe3, 0x17, 0x98, 0xcc, 0xa7, 0x24, 0x23, 0x99, 0x97, 0xc0, 0xe1, 0x14,
+ 0xc6, 0x45, 0x66, 0x5a, 0xea, 0xeb, 0xf0, 0x2f, 0x9c, 0x96, 0x03, 0x0e,
+ 0x1b, 0x19, 0x39, 0x0c, 0x63, 0xe8, 0x34, 0x1d,
+};
+static const unsigned char kat3345_entropyinpr1[] = {
+ 0x87, 0x39, 0xe1, 0xf7, 0xd7, 0xe3, 0x47, 0x81, 0x9f, 0xa2, 0x4b, 0x03,
+ 0x68, 0xec, 0xcf, 0xa8, 0xad, 0x3c, 0x60, 0x22, 0x72, 0x4f, 0x59, 0xf4,
+};
+static const unsigned char kat3345_addinpr1[] = {0};
+static const unsigned char kat3345_entropyinpr2[] = {
+ 0x65, 0x5e, 0xbd, 0x1d, 0x57, 0x8e, 0x43, 0xd8, 0x8a, 0x36, 0x2d, 0x9f,
+ 0x3f, 0x4f, 0xc0, 0xf0, 0xac, 0x84, 0x64, 0x45, 0x68, 0x77, 0x90, 0x79,
+};
+static const unsigned char kat3345_addinpr2[] = {0};
+static const unsigned char kat3345_retbits[] = {
+ 0x6e, 0xdd, 0x34, 0xb0, 0x11, 0x1a, 0xd2, 0xdf, 0x8a, 0xe4, 0x7e, 0x4d,
+ 0xc6, 0x8f, 0x08, 0x82, 0xf0, 0x8a, 0xf2, 0xef, 0xe4, 0x18, 0x07, 0xe0,
+ 0x29, 0x6c, 0x50, 0xc2, 0xc4, 0x56, 0x8c, 0x02, 0x5c, 0xeb, 0x8c, 0xbe,
+ 0x6d, 0xe2, 0x89, 0x19, 0x0d, 0x75, 0x99, 0xc2, 0xf3, 0x80, 0x13, 0x0d,
+ 0x07, 0xd7, 0x8b, 0x95, 0xaa, 0x6e, 0x6f, 0xc6, 0xb5, 0xcd, 0x1e, 0x6f,
+ 0xcc, 0x81, 0xb2, 0x66,
+};
+static const struct drbg_kat_pr_true kat3345_t = {
+ 14, kat3345_entropyin, kat3345_nonce, kat3345_persstr,
+ kat3345_entropyinpr1, kat3345_addinpr1, kat3345_entropyinpr2,
+ kat3345_addinpr2, kat3345_retbits
+};
+static const struct drbg_kat kat3345 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 0, 64, &kat3345_t
+};
+
+static const unsigned char kat3346_entropyin[] = {
+ 0x5c, 0xf3, 0x47, 0x2c, 0x83, 0xb4, 0xa9, 0x0c, 0x6b, 0x5f, 0x34, 0x9c,
+ 0xa2, 0xf9, 0xbd, 0xe4, 0xf7, 0xff, 0x42, 0xf3, 0x04, 0x67, 0x57, 0x13,
+};
+static const unsigned char kat3346_nonce[] = {
+ 0x6d, 0x2f, 0xc8, 0xc1, 0xe3, 0xae, 0x56, 0x7f, 0xb9, 0xd2, 0x23, 0x84,
+ 0x70, 0xa9, 0x82, 0x49,
+};
+static const unsigned char kat3346_persstr[] = {
+ 0xc9, 0xc7, 0xab, 0x32, 0xc6, 0x18, 0xa2, 0x66, 0x06, 0x25, 0xc8, 0x15,
+ 0x25, 0x0f, 0x46, 0xe8, 0x09, 0x7d, 0xdc, 0xa0, 0x38, 0x18, 0x81, 0x75,
+ 0x97, 0x04, 0xf9, 0x33, 0x38, 0x3e, 0x8d, 0xa7,
+};
+static const unsigned char kat3346_entropyinpr1[] = {
+ 0x99, 0xbd, 0x71, 0xbc, 0xd4, 0x82, 0xcf, 0x4c, 0xcc, 0x84, 0x9b, 0x9d,
+ 0x3c, 0xbc, 0xc0, 0x52, 0x9b, 0xf1, 0x61, 0xd5, 0x05, 0x6d, 0x11, 0xf8,
+};
+static const unsigned char kat3346_addinpr1[] = {
+ 0x1c, 0x34, 0xe8, 0x15, 0xf3, 0xa3, 0xbc, 0xd7, 0x1f, 0xe0, 0x8b, 0xd7,
+ 0x63, 0x3e, 0xb7, 0x08, 0xaf, 0x86, 0x10, 0x4d, 0x0e, 0x49, 0x9a, 0x4b,
+ 0xa1, 0x28, 0x88, 0xd6, 0xd1, 0xee, 0x57, 0x0f,
+};
+static const unsigned char kat3346_entropyinpr2[] = {
+ 0xe4, 0x60, 0xda, 0xfd, 0x8b, 0x32, 0xa9, 0x6e, 0xc5, 0x02, 0x16, 0xb0,
+ 0xfa, 0x91, 0x41, 0x9e, 0x77, 0x17, 0xf5, 0x0d, 0xf6, 0x6a, 0xc7, 0xe0,
+};
+static const unsigned char kat3346_addinpr2[] = {
+ 0x22, 0x1a, 0x56, 0x80, 0xb2, 0x50, 0x18, 0xb2, 0xa5, 0x3f, 0x5e, 0x1d,
+ 0x0a, 0x7b, 0x19, 0xb0, 0x4c, 0xaf, 0x7b, 0x25, 0x58, 0x79, 0x3d, 0xbe,
+ 0x36, 0xbb, 0xab, 0xca, 0xea, 0xb8, 0xbc, 0x8e,
+};
+static const unsigned char kat3346_retbits[] = {
+ 0x29, 0x43, 0x3a, 0xe6, 0xda, 0x5e, 0xff, 0x61, 0x61, 0x44, 0x9a, 0x2f,
+ 0xaf, 0x74, 0x91, 0xa4, 0x72, 0x54, 0x3a, 0x38, 0x29, 0x39, 0x5c, 0x19,
+ 0x5b, 0x93, 0x28, 0x6a, 0x25, 0x57, 0x00, 0x3c, 0x07, 0x0e, 0x60, 0xbc,
+ 0x37, 0x7a, 0x5e, 0x6e, 0x89, 0x1a, 0x9e, 0x46, 0xb7, 0xc5, 0x34, 0x02,
+ 0x68, 0xaf, 0xf9, 0x89, 0xf8, 0x6f, 0x5a, 0x6a, 0x32, 0x24, 0x02, 0x1c,
+ 0x37, 0x1e, 0x8d, 0x11,
+};
+static const struct drbg_kat_pr_true kat3346_t = {
+ 0, kat3346_entropyin, kat3346_nonce, kat3346_persstr,
+ kat3346_entropyinpr1, kat3346_addinpr1, kat3346_entropyinpr2,
+ kat3346_addinpr2, kat3346_retbits
+};
+static const struct drbg_kat kat3346 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3346_t
+};
+
+static const unsigned char kat3347_entropyin[] = {
+ 0x7d, 0x97, 0x11, 0x81, 0x37, 0xbd, 0xd3, 0xeb, 0x7c, 0x27, 0xc5, 0x57,
+ 0x70, 0xb2, 0xdf, 0xb3, 0x0d, 0xda, 0x66, 0x8e, 0xfa, 0xea, 0x5c, 0x42,
+};
+static const unsigned char kat3347_nonce[] = {
+ 0x6d, 0x30, 0x04, 0xa2, 0x98, 0xfc, 0x50, 0xba, 0xd2, 0xa6, 0xa1, 0x65,
+ 0xf3, 0xc4, 0x9e, 0x6d,
+};
+static const unsigned char kat3347_persstr[] = {
+ 0xd4, 0xf4, 0xa0, 0x32, 0x80, 0xcf, 0x33, 0xdd, 0xd4, 0x15, 0xda, 0xcf,
+ 0x43, 0x01, 0x7e, 0x68, 0x78, 0x9a, 0xbb, 0x15, 0x2f, 0x06, 0x79, 0x5e,
+ 0x24, 0x7e, 0xbe, 0x03, 0xb8, 0xd8, 0x29, 0xfb,
+};
+static const unsigned char kat3347_entropyinpr1[] = {
+ 0x27, 0x3f, 0x10, 0xd9, 0x00, 0x43, 0x80, 0x6a, 0x6a, 0x9d, 0x73, 0x2e,
+ 0x44, 0x30, 0xdf, 0x52, 0xbd, 0xcb, 0x8a, 0xfc, 0xfc, 0xe6, 0xc9, 0x83,
+};
+static const unsigned char kat3347_addinpr1[] = {
+ 0xa1, 0x3d, 0xf7, 0x5d, 0x2a, 0x2c, 0x49, 0x60, 0x9f, 0x0e, 0x06, 0x47,
+ 0x07, 0xe7, 0x71, 0xe9, 0xe4, 0xad, 0x67, 0x00, 0xfd, 0xc5, 0x9b, 0x11,
+ 0x59, 0x2b, 0x17, 0x34, 0x04, 0xbf, 0x02, 0x59,
+};
+static const unsigned char kat3347_entropyinpr2[] = {
+ 0x33, 0xa1, 0x18, 0x24, 0xc6, 0x9a, 0x4c, 0xdc, 0xb0, 0xec, 0x46, 0xb0,
+ 0xe3, 0xae, 0xb0, 0x1b, 0x82, 0x47, 0x51, 0x2f, 0x3c, 0x3d, 0x0c, 0x93,
+};
+static const unsigned char kat3347_addinpr2[] = {
+ 0x89, 0xc3, 0xf3, 0x72, 0x10, 0x49, 0x97, 0x55, 0xab, 0x16, 0xe9, 0xfe,
+ 0x09, 0x95, 0xbf, 0x0e, 0x8a, 0x2f, 0x05, 0x30, 0x9b, 0x1e, 0x42, 0xf3,
+ 0x37, 0xe5, 0x3b, 0x95, 0x6f, 0x89, 0x26, 0xdf,
+};
+static const unsigned char kat3347_retbits[] = {
+ 0xdc, 0x4b, 0x4f, 0xf2, 0x2e, 0x96, 0x83, 0x96, 0xc5, 0xa7, 0x18, 0x94,
+ 0x03, 0x30, 0xb2, 0xf0, 0x81, 0x46, 0x1a, 0x5b, 0x3d, 0xa1, 0x5f, 0xab,
+ 0xe5, 0xe5, 0xda, 0xdf, 0x8b, 0xef, 0xde, 0x6c, 0xc9, 0x60, 0xf0, 0x91,
+ 0xb0, 0x2c, 0xe5, 0xa7, 0xd3, 0xe7, 0x5b, 0x5e, 0x90, 0x28, 0x95, 0x59,
+ 0x05, 0x11, 0x36, 0x47, 0xb7, 0x7f, 0x7b, 0x03, 0x0f, 0xd0, 0xf7, 0x70,
+ 0x6b, 0x2c, 0x9c, 0x2e,
+};
+static const struct drbg_kat_pr_true kat3347_t = {
+ 1, kat3347_entropyin, kat3347_nonce, kat3347_persstr,
+ kat3347_entropyinpr1, kat3347_addinpr1, kat3347_entropyinpr2,
+ kat3347_addinpr2, kat3347_retbits
+};
+static const struct drbg_kat kat3347 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3347_t
+};
+
+static const unsigned char kat3348_entropyin[] = {
+ 0x83, 0x2d, 0x0e, 0x92, 0x54, 0x0e, 0x3f, 0x7f, 0xb5, 0xcd, 0x7b, 0xb3,
+ 0xf4, 0x29, 0x98, 0x27, 0xa2, 0xb4, 0xaf, 0x76, 0x29, 0x87, 0xa0, 0xd5,
+};
+static const unsigned char kat3348_nonce[] = {
+ 0x14, 0x15, 0x5a, 0x93, 0x84, 0xe6, 0x5f, 0x12, 0xb7, 0x53, 0x3d, 0xce,
+ 0x65, 0xcc, 0x22, 0xcb,
+};
+static const unsigned char kat3348_persstr[] = {
+ 0xf9, 0x7e, 0xd0, 0xb9, 0xf7, 0x3d, 0xef, 0x68, 0x40, 0x5f, 0x90, 0x6a,
+ 0xbd, 0xdc, 0xab, 0x1f, 0xfa, 0x90, 0x8c, 0xc0, 0x6d, 0x30, 0x0f, 0x0b,
+ 0x5c, 0x76, 0x38, 0x0b, 0xb9, 0x31, 0x05, 0x88,
+};
+static const unsigned char kat3348_entropyinpr1[] = {
+ 0xbe, 0x09, 0xed, 0x1c, 0xfe, 0x95, 0xe3, 0xee, 0x64, 0xc6, 0x63, 0x7f,
+ 0x32, 0x5c, 0x67, 0xeb, 0x0c, 0x41, 0x79, 0x20, 0xfa, 0x58, 0xe5, 0x78,
+};
+static const unsigned char kat3348_addinpr1[] = {
+ 0x48, 0x05, 0xbc, 0x59, 0xf6, 0xc3, 0x0d, 0x29, 0x5d, 0x2e, 0xa4, 0x59,
+ 0x5a, 0xf0, 0x67, 0x1b, 0x85, 0x04, 0xe1, 0x80, 0xfb, 0xfb, 0x87, 0x2b,
+ 0x1e, 0x79, 0xc4, 0x2b, 0x78, 0x3e, 0xee, 0x1d,
+};
+static const unsigned char kat3348_entropyinpr2[] = {
+ 0xbc, 0xe0, 0x9a, 0x32, 0x15, 0x87, 0x36, 0x32, 0xd2, 0x16, 0x50, 0xe2,
+ 0x12, 0x43, 0x70, 0xb4, 0xb5, 0x4f, 0x7b, 0x6c, 0x32, 0x4c, 0xc3, 0x56,
+};
+static const unsigned char kat3348_addinpr2[] = {
+ 0x77, 0x31, 0x31, 0xc5, 0x4a, 0xdb, 0x91, 0x48, 0x47, 0xa3, 0xd9, 0xaa,
+ 0xf0, 0x1e, 0xac, 0x25, 0xdd, 0x80, 0x41, 0x76, 0xe0, 0x9f, 0xc0, 0xb6,
+ 0xd5, 0x50, 0x38, 0x8d, 0x44, 0xdf, 0x1c, 0x43,
+};
+static const unsigned char kat3348_retbits[] = {
+ 0x31, 0xcc, 0x5d, 0xb6, 0x5c, 0xbb, 0xe3, 0x7b, 0xf4, 0x8b, 0xcc, 0x13,
+ 0xb8, 0x78, 0x4d, 0xeb, 0x34, 0x9b, 0x86, 0xf7, 0xb4, 0xaa, 0x99, 0x51,
+ 0x3c, 0x8e, 0x84, 0x82, 0xc4, 0x8b, 0x4b, 0xa4, 0x6e, 0x53, 0xc7, 0xcb,
+ 0x94, 0x91, 0xe4, 0x14, 0x29, 0x5b, 0x37, 0x24, 0x71, 0x24, 0x78, 0x48,
+ 0xd7, 0x7e, 0x94, 0x44, 0x3e, 0x61, 0xb3, 0x3c, 0x96, 0xb5, 0xab, 0xe8,
+ 0x24, 0x85, 0xa7, 0x22,
+};
+static const struct drbg_kat_pr_true kat3348_t = {
+ 2, kat3348_entropyin, kat3348_nonce, kat3348_persstr,
+ kat3348_entropyinpr1, kat3348_addinpr1, kat3348_entropyinpr2,
+ kat3348_addinpr2, kat3348_retbits
+};
+static const struct drbg_kat kat3348 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3348_t
+};
+
+static const unsigned char kat3349_entropyin[] = {
+ 0xda, 0x49, 0x7e, 0x17, 0xce, 0xca, 0xa3, 0xe1, 0xe6, 0x83, 0xb1, 0x42,
+ 0x70, 0xc9, 0x3f, 0xe6, 0xec, 0x5c, 0x8c, 0x8a, 0x27, 0x5d, 0x23, 0xc8,
+};
+static const unsigned char kat3349_nonce[] = {
+ 0x4c, 0x79, 0xbc, 0xe5, 0x95, 0x26, 0x86, 0x14, 0xce, 0xd6, 0x6d, 0x2d,
+ 0x1d, 0x0d, 0xc0, 0x57,
+};
+static const unsigned char kat3349_persstr[] = {
+ 0x43, 0xf9, 0xdb, 0xf0, 0x49, 0xb5, 0xb8, 0x0f, 0xd3, 0x54, 0xca, 0x48,
+ 0x53, 0x1d, 0x55, 0xac, 0x01, 0x46, 0x03, 0x12, 0xd8, 0xa8, 0x81, 0xf2,
+ 0xa9, 0x3a, 0x58, 0xc0, 0xbe, 0x2b, 0x70, 0x54,
+};
+static const unsigned char kat3349_entropyinpr1[] = {
+ 0x9d, 0xf1, 0xa1, 0xb6, 0xec, 0x71, 0x4a, 0xae, 0x85, 0x99, 0x3d, 0x5c,
+ 0x14, 0x8a, 0x96, 0x8f, 0x75, 0x2d, 0x7e, 0x69, 0x4d, 0x19, 0xea, 0xb6,
+};
+static const unsigned char kat3349_addinpr1[] = {
+ 0xe4, 0x18, 0xe0, 0xa4, 0x2e, 0x48, 0x77, 0x96, 0xa9, 0x82, 0xa0, 0x98,
+ 0x2c, 0xc4, 0x69, 0xc8, 0x5a, 0xf3, 0xec, 0x64, 0x9d, 0xbb, 0x13, 0x67,
+ 0x69, 0xe9, 0xd0, 0x54, 0x4d, 0x7e, 0xe8, 0x90,
+};
+static const unsigned char kat3349_entropyinpr2[] = {
+ 0xdc, 0xd5, 0xbb, 0x25, 0x6f, 0xc0, 0xf4, 0x13, 0xde, 0xea, 0x9b, 0xb8,
+ 0x09, 0x1a, 0x90, 0x82, 0xff, 0xdd, 0x2d, 0x90, 0x3c, 0x59, 0x65, 0xaf,
+};
+static const unsigned char kat3349_addinpr2[] = {
+ 0x88, 0x36, 0xf4, 0x86, 0xad, 0x00, 0xf3, 0x90, 0xd8, 0x69, 0x7a, 0xe6,
+ 0x9e, 0x95, 0xa7, 0xff, 0x06, 0xa2, 0xaa, 0x99, 0x9b, 0xdb, 0xb1, 0x2d,
+ 0x4c, 0x22, 0xa7, 0x32, 0x21, 0xc8, 0x4c, 0xc5,
+};
+static const unsigned char kat3349_retbits[] = {
+ 0xcc, 0x35, 0xb9, 0xf4, 0x0b, 0x15, 0x34, 0xc7, 0x88, 0x45, 0x03, 0xb1,
+ 0x17, 0xe3, 0x6a, 0xb7, 0x85, 0x3f, 0xb7, 0xe4, 0x98, 0x50, 0x6c, 0xf9,
+ 0xe2, 0xef, 0x4f, 0x6e, 0x62, 0xc6, 0x3e, 0x15, 0xd3, 0xda, 0x02, 0x2b,
+ 0x7b, 0xf1, 0xb0, 0x47, 0x53, 0x9b, 0x9f, 0x96, 0xc5, 0x7a, 0xee, 0x25,
+ 0x9c, 0x38, 0x7a, 0x56, 0xc5, 0x9b, 0x2c, 0xc2, 0xc7, 0x22, 0x56, 0x09,
+ 0x5e, 0x7e, 0xd5, 0x95,
+};
+static const struct drbg_kat_pr_true kat3349_t = {
+ 3, kat3349_entropyin, kat3349_nonce, kat3349_persstr,
+ kat3349_entropyinpr1, kat3349_addinpr1, kat3349_entropyinpr2,
+ kat3349_addinpr2, kat3349_retbits
+};
+static const struct drbg_kat kat3349 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3349_t
+};
+
+static const unsigned char kat3350_entropyin[] = {
+ 0xdb, 0xf8, 0xdc, 0xb8, 0x18, 0x34, 0xfc, 0x9f, 0xef, 0x2a, 0x41, 0xff,
+ 0xb0, 0x17, 0x14, 0x29, 0x20, 0x0e, 0x84, 0xa5, 0xe0, 0x01, 0xa6, 0x08,
+};
+static const unsigned char kat3350_nonce[] = {
+ 0xb4, 0x67, 0x3b, 0xbe, 0xdc, 0x0e, 0x47, 0xf7, 0xe9, 0x7a, 0xcc, 0x06,
+ 0x27, 0x5c, 0x00, 0xa5,
+};
+static const unsigned char kat3350_persstr[] = {
+ 0xd5, 0x8c, 0xd9, 0x92, 0x95, 0xcf, 0x42, 0xd4, 0xf5, 0x9b, 0xaa, 0x82,
+ 0xce, 0x2e, 0x60, 0x2d, 0xb1, 0x6c, 0x79, 0x99, 0xe7, 0xbd, 0xc4, 0xac,
+ 0xdd, 0xa9, 0xcc, 0x65, 0xcb, 0x21, 0x96, 0x78,
+};
+static const unsigned char kat3350_entropyinpr1[] = {
+ 0x62, 0x94, 0xa8, 0x09, 0x62, 0x4a, 0x69, 0x9b, 0xfa, 0xd9, 0x97, 0x77,
+ 0xeb, 0x8e, 0xa6, 0xcc, 0x56, 0xe8, 0xb9, 0x14, 0xc7, 0xc8, 0x6e, 0xd9,
+};
+static const unsigned char kat3350_addinpr1[] = {
+ 0x49, 0x67, 0x78, 0x38, 0x1d, 0x15, 0xff, 0x17, 0x48, 0x25, 0x0c, 0x29,
+ 0x83, 0x7e, 0xa5, 0xd0, 0x60, 0xa2, 0x44, 0x6a, 0xf3, 0x69, 0x13, 0x65,
+ 0x4a, 0x1e, 0x00, 0xf2, 0x6c, 0x72, 0x2c, 0x0d,
+};
+static const unsigned char kat3350_entropyinpr2[] = {
+ 0xa3, 0x26, 0xc5, 0xe9, 0x21, 0x69, 0x20, 0xbf, 0xcb, 0xf8, 0x5b, 0x77,
+ 0x46, 0x10, 0xde, 0xf9, 0xdb, 0xa8, 0x3c, 0xbc, 0x23, 0xec, 0x47, 0xcf,
+};
+static const unsigned char kat3350_addinpr2[] = {
+ 0x86, 0x2e, 0xa5, 0x81, 0xcf, 0x33, 0xa1, 0x44, 0x9b, 0x0c, 0x97, 0x44,
+ 0xd9, 0xc6, 0xa1, 0x96, 0x8d, 0x6a, 0x37, 0x9b, 0x1d, 0x22, 0x8e, 0xfc,
+ 0x5a, 0x74, 0x97, 0x71, 0x31, 0x24, 0xd0, 0x7b,
+};
+static const unsigned char kat3350_retbits[] = {
+ 0x1a, 0x5c, 0x0b, 0x1f, 0x6a, 0xfa, 0xfa, 0x39, 0x46, 0x6e, 0x8e, 0x59,
+ 0xec, 0xdd, 0x28, 0x85, 0x9c, 0xb5, 0x55, 0x45, 0x4e, 0x2f, 0xaa, 0x4b,
+ 0x33, 0x56, 0xfc, 0xc3, 0x6e, 0xbb, 0xec, 0x47, 0xa6, 0xb9, 0x1b, 0x54,
+ 0x29, 0x6d, 0xee, 0xa6, 0xf1, 0x1d, 0x69, 0x9e, 0x07, 0x9a, 0x6f, 0x14,
+ 0x12, 0xe7, 0x5c, 0xab, 0x22, 0xc1, 0x09, 0xbd, 0x92, 0xb1, 0x50, 0xa6,
+ 0x0a, 0xe2, 0xbe, 0x20,
+};
+static const struct drbg_kat_pr_true kat3350_t = {
+ 4, kat3350_entropyin, kat3350_nonce, kat3350_persstr,
+ kat3350_entropyinpr1, kat3350_addinpr1, kat3350_entropyinpr2,
+ kat3350_addinpr2, kat3350_retbits
+};
+static const struct drbg_kat kat3350 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3350_t
+};
+
+static const unsigned char kat3351_entropyin[] = {
+ 0x58, 0xbf, 0xbe, 0x83, 0x70, 0xaf, 0xd0, 0xd6, 0x3b, 0x5a, 0x1c, 0xd4,
+ 0xe8, 0x12, 0xcb, 0xb1, 0x5c, 0x26, 0x18, 0xce, 0x57, 0x48, 0x86, 0x1a,
+};
+static const unsigned char kat3351_nonce[] = {
+ 0x0b, 0x50, 0x26, 0xc3, 0x95, 0x51, 0xf5, 0xf9, 0x90, 0xed, 0x02, 0x63,
+ 0x34, 0x73, 0xbd, 0x6f,
+};
+static const unsigned char kat3351_persstr[] = {
+ 0x51, 0x2d, 0x64, 0xe6, 0xb8, 0xbd, 0x0b, 0x13, 0x78, 0x3f, 0x67, 0x3f,
+ 0x5a, 0x5c, 0xe7, 0xdc, 0xbf, 0x58, 0x34, 0x99, 0xb9, 0xb1, 0x83, 0x46,
+ 0xa5, 0xa4, 0xce, 0xc8, 0x2a, 0x9e, 0x35, 0x58,
+};
+static const unsigned char kat3351_entropyinpr1[] = {
+ 0x85, 0x4b, 0x08, 0x40, 0x0d, 0x45, 0x5f, 0xde, 0x18, 0x5b, 0x37, 0x5f,
+ 0x96, 0x14, 0xea, 0x00, 0x3b, 0xef, 0x38, 0x83, 0x92, 0xd8, 0xbd, 0x3a,
+};
+static const unsigned char kat3351_addinpr1[] = {
+ 0xa2, 0x8d, 0x77, 0x7c, 0x4e, 0xee, 0xa8, 0xc6, 0xb2, 0x6c, 0x19, 0x71,
+ 0x7e, 0x21, 0x88, 0xd3, 0x03, 0xfe, 0xcb, 0x4e, 0xf6, 0x3d, 0xa2, 0xa4,
+ 0x24, 0xa9, 0x68, 0x9a, 0xaa, 0x18, 0xd5, 0x04,
+};
+static const unsigned char kat3351_entropyinpr2[] = {
+ 0xc5, 0x07, 0x3b, 0x46, 0x77, 0x6f, 0xca, 0x74, 0x28, 0x66, 0xe1, 0x49,
+ 0x7e, 0x9f, 0xa4, 0x74, 0x8f, 0xe7, 0xc9, 0x1f, 0x38, 0xad, 0xe2, 0x6c,
+};
+static const unsigned char kat3351_addinpr2[] = {
+ 0x84, 0x43, 0x11, 0x49, 0xa9, 0xcc, 0x32, 0x26, 0x50, 0x1c, 0x0c, 0x68,
+ 0x37, 0xbd, 0xa0, 0xdf, 0xab, 0x00, 0x29, 0xf0, 0xce, 0xda, 0x0c, 0xad,
+ 0xa4, 0x92, 0xdc, 0xcb, 0xc0, 0x08, 0x30, 0x07,
+};
+static const unsigned char kat3351_retbits[] = {
+ 0xd8, 0x73, 0xdf, 0xc9, 0x20, 0x23, 0x95, 0xb7, 0xb8, 0xb9, 0xee, 0x29,
+ 0x83, 0xe1, 0xd6, 0x07, 0x1a, 0x95, 0x74, 0x75, 0x40, 0xfb, 0xb6, 0xbb,
+ 0xcb, 0xeb, 0x72, 0xe6, 0x1c, 0x56, 0x1e, 0x39, 0xac, 0xc0, 0x1b, 0xc0,
+ 0x7b, 0x8e, 0x38, 0x42, 0xd8, 0x35, 0xd9, 0x3f, 0x43, 0x0c, 0x43, 0x48,
+ 0x39, 0x85, 0x29, 0x88, 0x81, 0xc2, 0x08, 0xfd, 0x08, 0x1c, 0x34, 0x0e,
+ 0x80, 0x49, 0x1a, 0xef,
+};
+static const struct drbg_kat_pr_true kat3351_t = {
+ 5, kat3351_entropyin, kat3351_nonce, kat3351_persstr,
+ kat3351_entropyinpr1, kat3351_addinpr1, kat3351_entropyinpr2,
+ kat3351_addinpr2, kat3351_retbits
+};
+static const struct drbg_kat kat3351 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3351_t
+};
+
+static const unsigned char kat3352_entropyin[] = {
+ 0x67, 0x16, 0x9d, 0xcd, 0xc3, 0x1f, 0xae, 0x15, 0x7b, 0x35, 0x63, 0x67,
+ 0x24, 0x82, 0xea, 0x0a, 0xf6, 0x23, 0x68, 0x62, 0x7f, 0xbc, 0x4f, 0x42,
+};
+static const unsigned char kat3352_nonce[] = {
+ 0x8b, 0xf7, 0x4e, 0x01, 0x91, 0x16, 0x81, 0xe6, 0x44, 0x2f, 0x61, 0x90,
+ 0x34, 0x89, 0x20, 0xed,
+};
+static const unsigned char kat3352_persstr[] = {
+ 0x8d, 0xbd, 0xd0, 0x22, 0xea, 0x36, 0x56, 0x66, 0x19, 0xf7, 0xe1, 0x86,
+ 0x72, 0xfc, 0x89, 0xa3, 0xba, 0xd8, 0x80, 0x49, 0xf1, 0x51, 0x39, 0x71,
+ 0xfa, 0x8e, 0x79, 0x8f, 0x37, 0x42, 0xcf, 0xfb,
+};
+static const unsigned char kat3352_entropyinpr1[] = {
+ 0xef, 0xa4, 0x70, 0xb0, 0x7f, 0x71, 0xe4, 0x59, 0x69, 0x73, 0x03, 0x47,
+ 0x4d, 0xb2, 0x1e, 0xd0, 0x15, 0x1a, 0x1f, 0xa1, 0x13, 0xd5, 0x25, 0x81,
+};
+static const unsigned char kat3352_addinpr1[] = {
+ 0xb1, 0xc1, 0xb2, 0x36, 0x55, 0x2e, 0xe6, 0x1c, 0x65, 0x67, 0xc8, 0x64,
+ 0xb7, 0x13, 0x73, 0x36, 0xfb, 0xce, 0x27, 0x0b, 0xc3, 0xa7, 0x9d, 0xc4,
+ 0x16, 0xef, 0xdc, 0x0a, 0x0c, 0x7b, 0x07, 0xd8,
+};
+static const unsigned char kat3352_entropyinpr2[] = {
+ 0xb5, 0x88, 0xd3, 0x42, 0x94, 0x7c, 0xd5, 0x48, 0xf6, 0x71, 0x30, 0xe0,
+ 0xb4, 0x48, 0x50, 0xf8, 0xe2, 0x40, 0x36, 0x4f, 0x1c, 0x2b, 0x09, 0xd6,
+};
+static const unsigned char kat3352_addinpr2[] = {
+ 0xee, 0x9d, 0x7d, 0x99, 0xda, 0x81, 0xf2, 0x75, 0x52, 0x6b, 0x2d, 0x23,
+ 0x63, 0x68, 0x6f, 0x94, 0xf9, 0x1f, 0x8c, 0xf3, 0xa0, 0x2a, 0x66, 0x7a,
+ 0x0c, 0x72, 0x45, 0x5d, 0xba, 0x3c, 0x3f, 0xb2,
+};
+static const unsigned char kat3352_retbits[] = {
+ 0x08, 0xfa, 0x98, 0x2a, 0x06, 0x20, 0xfd, 0xa7, 0x05, 0x5f, 0xec, 0xbc,
+ 0x3f, 0x3b, 0x9c, 0x91, 0x4e, 0xf4, 0xc7, 0x7c, 0xf2, 0x8a, 0xeb, 0x21,
+ 0x27, 0xad, 0xaf, 0x63, 0x35, 0x95, 0x7b, 0x75, 0xd3, 0x89, 0xaf, 0x83,
+ 0x0f, 0x5d, 0xb4, 0x59, 0x3e, 0xd2, 0xaa, 0x22, 0xaa, 0x9a, 0x9d, 0x42,
+ 0x1d, 0xb0, 0x7b, 0x9f, 0xc4, 0x77, 0x24, 0x0a, 0x9b, 0x1a, 0xb3, 0x0e,
+ 0xd2, 0xc5, 0x42, 0xb2,
+};
+static const struct drbg_kat_pr_true kat3352_t = {
+ 6, kat3352_entropyin, kat3352_nonce, kat3352_persstr,
+ kat3352_entropyinpr1, kat3352_addinpr1, kat3352_entropyinpr2,
+ kat3352_addinpr2, kat3352_retbits
+};
+static const struct drbg_kat kat3352 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3352_t
+};
+
+static const unsigned char kat3353_entropyin[] = {
+ 0x51, 0xba, 0xcc, 0xfe, 0x17, 0x74, 0x31, 0xa0, 0x48, 0x7c, 0xee, 0x12,
+ 0xf7, 0x43, 0x8b, 0x99, 0x91, 0x06, 0x10, 0x9d, 0x98, 0x79, 0x56, 0xc1,
+};
+static const unsigned char kat3353_nonce[] = {
+ 0x6e, 0xed, 0x6f, 0xcc, 0xf4, 0x0a, 0x7d, 0xa2, 0xfa, 0xa9, 0xdf, 0xb5,
+ 0x50, 0x0f, 0xf2, 0x4a,
+};
+static const unsigned char kat3353_persstr[] = {
+ 0x59, 0x7f, 0x4d, 0xcc, 0x86, 0x07, 0x75, 0xfe, 0xd9, 0xdf, 0x51, 0x57,
+ 0x90, 0x76, 0x6d, 0xe0, 0xe5, 0x3c, 0x9d, 0x81, 0x7a, 0xf9, 0x6a, 0xd6,
+ 0x7d, 0x57, 0x22, 0xe1, 0x2f, 0x6e, 0xe5, 0xd5,
+};
+static const unsigned char kat3353_entropyinpr1[] = {
+ 0xb7, 0x26, 0x1c, 0xe8, 0x53, 0x40, 0xe5, 0x71, 0x14, 0xb7, 0x13, 0x78,
+ 0xa0, 0x4c, 0x57, 0x8c, 0x1e, 0x99, 0xd5, 0x50, 0xe2, 0xf1, 0x25, 0x07,
+};
+static const unsigned char kat3353_addinpr1[] = {
+ 0x5c, 0x58, 0xcb, 0xa6, 0xbd, 0x90, 0xec, 0xac, 0x56, 0xae, 0x71, 0xa1,
+ 0x5e, 0x75, 0xa0, 0xfb, 0x4b, 0x72, 0x3f, 0xa9, 0xa4, 0x6d, 0x5d, 0x6a,
+ 0x78, 0x64, 0xfd, 0x9a, 0x1f, 0x45, 0xa2, 0xf2,
+};
+static const unsigned char kat3353_entropyinpr2[] = {
+ 0x83, 0x70, 0xd3, 0xdd, 0x3e, 0x1f, 0x34, 0x5d, 0xd8, 0x48, 0x33, 0x40,
+ 0x99, 0xd9, 0x02, 0x9a, 0xda, 0x14, 0x45, 0x55, 0xb8, 0x38, 0xb8, 0x63,
+};
+static const unsigned char kat3353_addinpr2[] = {
+ 0xe6, 0x1e, 0x49, 0xc2, 0x55, 0x51, 0x0b, 0x79, 0x05, 0xf1, 0x25, 0x76,
+ 0xbd, 0x2f, 0xf2, 0x94, 0xb7, 0xd4, 0xe9, 0xb7, 0x1b, 0xf5, 0xe3, 0xfa,
+ 0x1f, 0x52, 0xb4, 0x17, 0x10, 0xc5, 0xd0, 0x36,
+};
+static const unsigned char kat3353_retbits[] = {
+ 0x77, 0xa4, 0x80, 0x44, 0x6d, 0x5c, 0x3a, 0x78, 0x90, 0xf5, 0xf6, 0x64,
+ 0x29, 0x8a, 0xfc, 0x9a, 0xa0, 0x04, 0x17, 0x8c, 0x69, 0xa3, 0xe2, 0x6a,
+ 0xe5, 0x0f, 0x2e, 0xff, 0xc3, 0xf9, 0xb9, 0x4f, 0xb5, 0x35, 0xed, 0x01,
+ 0x55, 0x21, 0x8c, 0x7f, 0x57, 0xa0, 0x5c, 0xf2, 0x7f, 0xac, 0x80, 0x96,
+ 0x42, 0x13, 0x60, 0xac, 0x8d, 0x6d, 0x06, 0xa9, 0xd8, 0xa8, 0x9b, 0x76,
+ 0x96, 0x3c, 0x7f, 0xe4,
+};
+static const struct drbg_kat_pr_true kat3353_t = {
+ 7, kat3353_entropyin, kat3353_nonce, kat3353_persstr,
+ kat3353_entropyinpr1, kat3353_addinpr1, kat3353_entropyinpr2,
+ kat3353_addinpr2, kat3353_retbits
+};
+static const struct drbg_kat kat3353 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3353_t
+};
+
+static const unsigned char kat3354_entropyin[] = {
+ 0xf8, 0x87, 0x60, 0xbf, 0x6c, 0x92, 0x64, 0x82, 0xd5, 0x41, 0xdb, 0x3c,
+ 0xb2, 0xe8, 0x55, 0x6f, 0x84, 0x31, 0x4a, 0x30, 0xbf, 0xa5, 0x2c, 0xb0,
+};
+static const unsigned char kat3354_nonce[] = {
+ 0xf7, 0x57, 0xff, 0xb7, 0x3c, 0x0f, 0x52, 0x34, 0x2f, 0x3c, 0xe9, 0x68,
+ 0x2a, 0x90, 0x38, 0x54,
+};
+static const unsigned char kat3354_persstr[] = {
+ 0xc4, 0x55, 0x20, 0x6f, 0x25, 0x75, 0xd4, 0x8b, 0x03, 0x23, 0x80, 0x65,
+ 0xd0, 0x78, 0x5c, 0xbe, 0x8e, 0x40, 0xc6, 0x20, 0x42, 0xcc, 0xc0, 0xf9,
+ 0xc4, 0xbc, 0xe6, 0x69, 0x2d, 0x45, 0xc5, 0xfd,
+};
+static const unsigned char kat3354_entropyinpr1[] = {
+ 0x53, 0x62, 0xce, 0xd8, 0xe3, 0xa4, 0x82, 0x6c, 0x67, 0xa7, 0x08, 0xa7,
+ 0xba, 0xc4, 0x66, 0x3c, 0x4f, 0xcb, 0x47, 0xdf, 0xaa, 0xbf, 0x88, 0xfa,
+};
+static const unsigned char kat3354_addinpr1[] = {
+ 0x0d, 0xa9, 0x10, 0x9b, 0x01, 0xcc, 0xfb, 0x20, 0x07, 0x7d, 0x9f, 0xb5,
+ 0x7b, 0xf8, 0xd4, 0xc4, 0xb6, 0x95, 0xf5, 0x4a, 0x34, 0x0b, 0x3f, 0xb7,
+ 0x5f, 0x17, 0xad, 0xb4, 0xe7, 0x49, 0xcf, 0xd7,
+};
+static const unsigned char kat3354_entropyinpr2[] = {
+ 0xd8, 0x7b, 0x82, 0x2c, 0x4d, 0x46, 0x9e, 0x81, 0x35, 0x6c, 0x35, 0x50,
+ 0x85, 0x59, 0xa9, 0xae, 0x1a, 0x41, 0xea, 0xe1, 0x41, 0x3c, 0x11, 0x9c,
+};
+static const unsigned char kat3354_addinpr2[] = {
+ 0x20, 0x06, 0x3a, 0x53, 0xbd, 0x0f, 0xae, 0x0e, 0x4b, 0x78, 0x86, 0x51,
+ 0x62, 0x51, 0x84, 0x54, 0x54, 0x29, 0x89, 0xa8, 0x7d, 0x53, 0xea, 0x6c,
+ 0x3c, 0x6c, 0x67, 0x6b, 0x85, 0xb2, 0x45, 0xd9,
+};
+static const unsigned char kat3354_retbits[] = {
+ 0xcf, 0x75, 0xeb, 0x0c, 0x05, 0x82, 0x73, 0x5f, 0x72, 0x19, 0xef, 0x2e,
+ 0x47, 0xb7, 0x20, 0x4f, 0x02, 0xbe, 0xe9, 0xc1, 0x34, 0xc5, 0x89, 0x47,
+ 0xd1, 0x8f, 0x16, 0xba, 0x22, 0x09, 0xc6, 0x95, 0x92, 0x77, 0x1d, 0x62,
+ 0x82, 0xad, 0x02, 0xf6, 0xda, 0x62, 0xd4, 0xe0, 0xab, 0x21, 0xd4, 0x6c,
+ 0x6f, 0x81, 0xcc, 0x17, 0x1b, 0x9e, 0x0b, 0xc0, 0x2f, 0xa0, 0xda, 0x84,
+ 0xd9, 0x9d, 0x46, 0x7c,
+};
+static const struct drbg_kat_pr_true kat3354_t = {
+ 8, kat3354_entropyin, kat3354_nonce, kat3354_persstr,
+ kat3354_entropyinpr1, kat3354_addinpr1, kat3354_entropyinpr2,
+ kat3354_addinpr2, kat3354_retbits
+};
+static const struct drbg_kat kat3354 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3354_t
+};
+
+static const unsigned char kat3355_entropyin[] = {
+ 0xdc, 0x51, 0x16, 0xd2, 0x23, 0x5b, 0x9c, 0xf3, 0x82, 0x25, 0x21, 0xaa,
+ 0x7a, 0xf3, 0x87, 0x9c, 0xca, 0x95, 0xfd, 0x2d, 0x1b, 0x5f, 0xc2, 0x91,
+};
+static const unsigned char kat3355_nonce[] = {
+ 0x2e, 0xec, 0x8e, 0xb1, 0xcf, 0x05, 0xe2, 0x01, 0xfa, 0x34, 0x8a, 0x85,
+ 0xc7, 0xd8, 0x93, 0x20,
+};
+static const unsigned char kat3355_persstr[] = {
+ 0x33, 0x9e, 0x80, 0x73, 0x53, 0x5a, 0xee, 0x3e, 0x85, 0x66, 0x5a, 0x8b,
+ 0x35, 0x2a, 0x8d, 0xfa, 0xd3, 0x7c, 0x3b, 0x1f, 0xe8, 0xb5, 0xa4, 0x31,
+ 0x2b, 0xa7, 0x75, 0x6c, 0x0a, 0x8d, 0xd8, 0x29,
+};
+static const unsigned char kat3355_entropyinpr1[] = {
+ 0x2c, 0xba, 0xdf, 0xa1, 0xb4, 0x02, 0x51, 0x57, 0xd1, 0x26, 0xee, 0x56,
+ 0x16, 0x50, 0x15, 0x17, 0x3b, 0x6d, 0xbb, 0x4a, 0xb5, 0xdb, 0xd9, 0x47,
+};
+static const unsigned char kat3355_addinpr1[] = {
+ 0x34, 0x36, 0xc6, 0xfa, 0xa6, 0x11, 0x1c, 0xce, 0x07, 0x76, 0xb2, 0x4a,
+ 0x06, 0xa2, 0x21, 0xb7, 0xe5, 0xcf, 0xa8, 0x33, 0x7a, 0x44, 0x47, 0x83,
+ 0xd2, 0x1a, 0x87, 0x80, 0x83, 0xda, 0x24, 0xed,
+};
+static const unsigned char kat3355_entropyinpr2[] = {
+ 0xc7, 0x65, 0xf2, 0x54, 0x97, 0xbc, 0xa8, 0xdb, 0xe7, 0x37, 0xc8, 0x45,
+ 0x79, 0x0b, 0x95, 0x6f, 0xf4, 0xfb, 0x44, 0x2f, 0xe6, 0x72, 0xab, 0x37,
+};
+static const unsigned char kat3355_addinpr2[] = {
+ 0x76, 0xb3, 0x3c, 0x5f, 0x9b, 0x32, 0x8e, 0xf9, 0xac, 0x51, 0x24, 0x18,
+ 0x04, 0x79, 0xff, 0x76, 0xc1, 0x90, 0x7e, 0xb9, 0xf9, 0x83, 0x17, 0x77,
+ 0xaf, 0x98, 0xd1, 0xf9, 0x55, 0x64, 0x30, 0xcb,
+};
+static const unsigned char kat3355_retbits[] = {
+ 0xe7, 0x30, 0x37, 0x0d, 0x41, 0xde, 0x1a, 0xb0, 0x0c, 0x46, 0xfd, 0xb7,
+ 0x6a, 0x60, 0x71, 0xa6, 0x72, 0x2e, 0x89, 0xfe, 0x75, 0x3e, 0x82, 0x1d,
+ 0x15, 0xdf, 0x59, 0x27, 0xc6, 0xa8, 0x04, 0x0f, 0x50, 0x31, 0x03, 0xc0,
+ 0x25, 0x6c, 0x93, 0x60, 0xf1, 0x25, 0x65, 0x0e, 0x62, 0xcc, 0x01, 0xc2,
+ 0x1e, 0x67, 0x0e, 0x2a, 0x69, 0x9d, 0x53, 0x3b, 0xaf, 0x6c, 0xd4, 0x9c,
+ 0xc5, 0x3e, 0x86, 0x86,
+};
+static const struct drbg_kat_pr_true kat3355_t = {
+ 9, kat3355_entropyin, kat3355_nonce, kat3355_persstr,
+ kat3355_entropyinpr1, kat3355_addinpr1, kat3355_entropyinpr2,
+ kat3355_addinpr2, kat3355_retbits
+};
+static const struct drbg_kat kat3355 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3355_t
+};
+
+static const unsigned char kat3356_entropyin[] = {
+ 0x5d, 0x87, 0x45, 0x79, 0xea, 0x6c, 0xf4, 0x72, 0x2f, 0xfa, 0xf6, 0x04,
+ 0x48, 0x9d, 0xbe, 0xd9, 0xee, 0xf5, 0x6d, 0x82, 0xb1, 0x92, 0xc1, 0xb7,
+};
+static const unsigned char kat3356_nonce[] = {
+ 0xd1, 0x08, 0x28, 0x0c, 0x33, 0x1d, 0xd9, 0xf8, 0x4c, 0x1d, 0x5b, 0xe2,
+ 0xd4, 0x31, 0xb2, 0x11,
+};
+static const unsigned char kat3356_persstr[] = {
+ 0x31, 0x1c, 0xf5, 0xd8, 0x07, 0x42, 0x3c, 0x71, 0x6d, 0xd0, 0x16, 0xed,
+ 0xd1, 0x19, 0x8c, 0xc2, 0xc0, 0xf0, 0x68, 0x33, 0x1b, 0xe0, 0x87, 0xee,
+ 0x51, 0xbd, 0xc8, 0x42, 0x59, 0xe3, 0xf6, 0x77,
+};
+static const unsigned char kat3356_entropyinpr1[] = {
+ 0x4c, 0xa7, 0x83, 0xfd, 0xca, 0x58, 0xcb, 0x8f, 0x37, 0xdc, 0x0b, 0x41,
+ 0x6d, 0xab, 0x82, 0xd1, 0x3a, 0x6a, 0x36, 0xdf, 0x95, 0xf0, 0x46, 0xda,
+};
+static const unsigned char kat3356_addinpr1[] = {
+ 0x65, 0x96, 0x2c, 0x7e, 0xea, 0x0d, 0xc2, 0x67, 0xf3, 0x9c, 0xf3, 0x5a,
+ 0x22, 0x2c, 0xf0, 0x25, 0x5d, 0x8b, 0x1b, 0x21, 0x19, 0x25, 0xc6, 0xc7,
+ 0xf9, 0x5d, 0xdd, 0xcc, 0x7c, 0x03, 0xba, 0x19,
+};
+static const unsigned char kat3356_entropyinpr2[] = {
+ 0x65, 0xb5, 0x3d, 0x2d, 0x1f, 0xc7, 0x3b, 0x6a, 0xa2, 0xc1, 0xff, 0x55,
+ 0x18, 0x78, 0xf6, 0x59, 0xd1, 0x36, 0x85, 0xbb, 0x3d, 0x3c, 0x7f, 0xf4,
+};
+static const unsigned char kat3356_addinpr2[] = {
+ 0xd4, 0x7a, 0xe4, 0xb2, 0x1b, 0x26, 0xd7, 0xf7, 0x50, 0x94, 0x83, 0x59,
+ 0xa0, 0x4d, 0x9e, 0xdf, 0x8d, 0xb6, 0x2e, 0x86, 0x1b, 0xe4, 0x4f, 0x88,
+ 0x99, 0xf5, 0xe1, 0x57, 0x8c, 0xb1, 0x6a, 0xb4,
+};
+static const unsigned char kat3356_retbits[] = {
+ 0x1f, 0x36, 0xa9, 0x3b, 0x7b, 0x93, 0x46, 0xf1, 0x29, 0xb0, 0x4b, 0x5e,
+ 0x28, 0x7d, 0xc9, 0xbe, 0xde, 0x9a, 0x84, 0xb7, 0x33, 0x0e, 0x99, 0xf2,
+ 0x85, 0xd6, 0x56, 0x9a, 0x0f, 0x38, 0x94, 0x25, 0x14, 0x1c, 0xa5, 0x5d,
+ 0x89, 0xfe, 0xf8, 0x38, 0x45, 0x87, 0x1a, 0x08, 0x8d, 0xe3, 0x1f, 0x9c,
+ 0xfe, 0x78, 0x5e, 0x77, 0xf8, 0x46, 0xe1, 0x7b, 0x3f, 0xd7, 0x1f, 0x94,
+ 0x72, 0xd5, 0x8d, 0xad,
+};
+static const struct drbg_kat_pr_true kat3356_t = {
+ 10, kat3356_entropyin, kat3356_nonce, kat3356_persstr,
+ kat3356_entropyinpr1, kat3356_addinpr1, kat3356_entropyinpr2,
+ kat3356_addinpr2, kat3356_retbits
+};
+static const struct drbg_kat kat3356 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3356_t
+};
+
+static const unsigned char kat3357_entropyin[] = {
+ 0x9e, 0x3b, 0x8a, 0xbc, 0x23, 0x6f, 0x74, 0xf4, 0xb4, 0x9a, 0xc3, 0x18,
+ 0xd0, 0x85, 0xd1, 0x66, 0xad, 0x71, 0x67, 0x56, 0xc1, 0x9a, 0xbe, 0x6b,
+};
+static const unsigned char kat3357_nonce[] = {
+ 0x64, 0xbb, 0x43, 0x63, 0x52, 0xba, 0x73, 0x49, 0xf5, 0x7c, 0x1c, 0xd8,
+ 0xf3, 0x37, 0xd1, 0xe0,
+};
+static const unsigned char kat3357_persstr[] = {
+ 0x1e, 0xee, 0xa7, 0x51, 0x75, 0x64, 0x8c, 0x96, 0x1a, 0x15, 0xef, 0x23,
+ 0x5e, 0x54, 0x1a, 0xb6, 0x65, 0xa3, 0x13, 0x7c, 0x52, 0x97, 0x36, 0x7c,
+ 0x52, 0xdb, 0x2a, 0xc2, 0xbd, 0x90, 0xc6, 0x75,
+};
+static const unsigned char kat3357_entropyinpr1[] = {
+ 0xda, 0x4e, 0x94, 0x5c, 0x6f, 0xf8, 0x26, 0xad, 0xbf, 0x49, 0x24, 0x8c,
+ 0x56, 0xb7, 0x9b, 0x22, 0x4d, 0xe5, 0x00, 0x95, 0xbb, 0x87, 0x0b, 0x1e,
+};
+static const unsigned char kat3357_addinpr1[] = {
+ 0x39, 0xd6, 0x04, 0x4b, 0xf7, 0x47, 0xaf, 0xaa, 0xaa, 0x0a, 0xde, 0xa6,
+ 0x4c, 0xd1, 0xbf, 0xf2, 0xda, 0x15, 0xb1, 0x4d, 0x70, 0x26, 0x82, 0xe2,
+ 0xdd, 0x63, 0x4a, 0xd6, 0x90, 0x19, 0xd7, 0x15,
+};
+static const unsigned char kat3357_entropyinpr2[] = {
+ 0x80, 0x40, 0xca, 0x2e, 0xa5, 0xcc, 0x93, 0xa4, 0xa3, 0xae, 0x9f, 0x9a,
+ 0xe8, 0xe7, 0x4b, 0x27, 0x04, 0x84, 0x59, 0x8f, 0xd2, 0xaf, 0xe9, 0xaf,
+};
+static const unsigned char kat3357_addinpr2[] = {
+ 0xaf, 0xd6, 0x72, 0xc2, 0xee, 0xf5, 0xfc, 0x34, 0xe0, 0x0a, 0x3d, 0x41,
+ 0x45, 0xf7, 0xfd, 0xd3, 0xba, 0xba, 0xe2, 0x65, 0xb8, 0x24, 0x32, 0x78,
+ 0x2e, 0x54, 0x4a, 0x51, 0xd8, 0xe5, 0xe8, 0xda,
+};
+static const unsigned char kat3357_retbits[] = {
+ 0x97, 0x28, 0x3b, 0x30, 0xc2, 0x27, 0xcf, 0xa1, 0xba, 0x6f, 0xbc, 0xa6,
+ 0x57, 0xa8, 0x54, 0x58, 0x06, 0x14, 0x52, 0x46, 0x8c, 0xf1, 0x2d, 0xe6,
+ 0x2f, 0xaf, 0xfb, 0x31, 0x23, 0xb9, 0xc1, 0xc1, 0xc5, 0xec, 0xac, 0x16,
+ 0xb1, 0xd5, 0x54, 0xb9, 0xaf, 0x95, 0xaf, 0x0d, 0xe4, 0xb0, 0x09, 0x79,
+ 0x68, 0x3c, 0xfb, 0xb8, 0xea, 0xc0, 0x56, 0xd0, 0x0c, 0x57, 0x21, 0x10,
+ 0xcc, 0x6b, 0xb5, 0x2b,
+};
+static const struct drbg_kat_pr_true kat3357_t = {
+ 11, kat3357_entropyin, kat3357_nonce, kat3357_persstr,
+ kat3357_entropyinpr1, kat3357_addinpr1, kat3357_entropyinpr2,
+ kat3357_addinpr2, kat3357_retbits
+};
+static const struct drbg_kat kat3357 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3357_t
+};
+
+static const unsigned char kat3358_entropyin[] = {
+ 0xc0, 0xfe, 0xb9, 0xd1, 0xb2, 0x23, 0xa3, 0x06, 0x3e, 0x50, 0xa8, 0xde,
+ 0x8c, 0x13, 0x09, 0x02, 0xbf, 0x83, 0xad, 0xe8, 0x99, 0x9f, 0xad, 0x0b,
+};
+static const unsigned char kat3358_nonce[] = {
+ 0x96, 0x31, 0x41, 0x89, 0x09, 0x13, 0x91, 0x25, 0xc0, 0x4c, 0x1c, 0x74,
+ 0x10, 0xbd, 0x70, 0x68,
+};
+static const unsigned char kat3358_persstr[] = {
+ 0x3d, 0x5d, 0x88, 0x73, 0x44, 0x15, 0x5e, 0x4c, 0xa8, 0xb2, 0x9c, 0x9a,
+ 0x3d, 0x2d, 0xde, 0x0a, 0xad, 0x45, 0x5f, 0xb8, 0xf8, 0x9a, 0x24, 0x8d,
+ 0x8c, 0xcf, 0xba, 0xc6, 0x97, 0x96, 0x5a, 0x4a,
+};
+static const unsigned char kat3358_entropyinpr1[] = {
+ 0x45, 0x32, 0x87, 0xf2, 0x3f, 0xc4, 0xd5, 0xd8, 0x9f, 0xd6, 0xce, 0xda,
+ 0x27, 0x64, 0x75, 0x5b, 0x7c, 0x65, 0x0a, 0x55, 0xb2, 0xa2, 0xa2, 0x82,
+};
+static const unsigned char kat3358_addinpr1[] = {
+ 0x50, 0xe3, 0x6e, 0x23, 0x59, 0x7b, 0x42, 0x21, 0x5f, 0x50, 0xcc, 0xb5,
+ 0x52, 0x7c, 0x08, 0x06, 0xe6, 0x34, 0xe7, 0x58, 0xae, 0xc3, 0x5f, 0x46,
+ 0x16, 0xcd, 0x29, 0x3f, 0xf8, 0xac, 0x28, 0x8e,
+};
+static const unsigned char kat3358_entropyinpr2[] = {
+ 0xa0, 0x2a, 0x38, 0x11, 0x90, 0xd1, 0x29, 0x99, 0xc9, 0xe9, 0x77, 0x81,
+ 0xb7, 0xdf, 0x16, 0xa8, 0xb6, 0xc4, 0x6c, 0x42, 0x63, 0xd4, 0xb1, 0x15,
+};
+static const unsigned char kat3358_addinpr2[] = {
+ 0xf0, 0x13, 0x8a, 0x42, 0xb8, 0x31, 0x22, 0x41, 0x7c, 0xb8, 0xe6, 0x03,
+ 0x3e, 0x5b, 0x36, 0x8b, 0xea, 0xc6, 0xf2, 0x09, 0xe8, 0x12, 0x50, 0xb6,
+ 0xcc, 0xf7, 0x95, 0xe1, 0x76, 0xe8, 0xe5, 0x9d,
+};
+static const unsigned char kat3358_retbits[] = {
+ 0xcf, 0xbf, 0xb8, 0xe3, 0x9c, 0x6d, 0xe9, 0xf0, 0xa9, 0x1a, 0xb2, 0x1a,
+ 0xca, 0x0c, 0x47, 0xc8, 0x88, 0x94, 0x5e, 0x34, 0xbb, 0xd3, 0xc3, 0x5b,
+ 0xbe, 0x47, 0x63, 0x3a, 0xc5, 0xaa, 0x76, 0xc3, 0xf9, 0xa8, 0x58, 0x0d,
+ 0xc1, 0xc6, 0x7f, 0x24, 0x51, 0x71, 0xeb, 0xe7, 0xcf, 0x0b, 0xd3, 0xf1,
+ 0xd5, 0x42, 0x9d, 0x2e, 0x6e, 0x73, 0xa3, 0x5a, 0x78, 0x6c, 0xf9, 0x71,
+ 0xd6, 0x18, 0x69, 0xf7,
+};
+static const struct drbg_kat_pr_true kat3358_t = {
+ 12, kat3358_entropyin, kat3358_nonce, kat3358_persstr,
+ kat3358_entropyinpr1, kat3358_addinpr1, kat3358_entropyinpr2,
+ kat3358_addinpr2, kat3358_retbits
+};
+static const struct drbg_kat kat3358 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3358_t
+};
+
+static const unsigned char kat3359_entropyin[] = {
+ 0xde, 0xab, 0xed, 0xfb, 0x2a, 0x21, 0x6d, 0x60, 0x39, 0x84, 0x04, 0x10,
+ 0xa8, 0xf8, 0x03, 0xe1, 0x1e, 0x14, 0x36, 0xc1, 0x38, 0x4d, 0x49, 0x1b,
+};
+static const unsigned char kat3359_nonce[] = {
+ 0x03, 0x47, 0xd8, 0x43, 0x7d, 0x55, 0x99, 0xac, 0xdd, 0xba, 0xec, 0x58,
+ 0xc3, 0x6a, 0xfe, 0x2c,
+};
+static const unsigned char kat3359_persstr[] = {
+ 0x55, 0xda, 0xc9, 0x84, 0x83, 0x78, 0x44, 0x3b, 0x53, 0x4d, 0x00, 0x0e,
+ 0x31, 0xd6, 0xf6, 0x51, 0x24, 0x64, 0x4d, 0x15, 0x38, 0x9d, 0xed, 0x8e,
+ 0x80, 0xd6, 0x35, 0x60, 0x7e, 0x9a, 0xbf, 0x1f,
+};
+static const unsigned char kat3359_entropyinpr1[] = {
+ 0x3f, 0xf0, 0x98, 0x24, 0x43, 0x4e, 0xa9, 0x0e, 0xe6, 0x3a, 0x65, 0xce,
+ 0x83, 0x66, 0x76, 0xe5, 0x11, 0xec, 0x98, 0x05, 0xb0, 0x06, 0x60, 0x5a,
+};
+static const unsigned char kat3359_addinpr1[] = {
+ 0x4e, 0xd2, 0xbd, 0xab, 0x34, 0xa1, 0x24, 0x87, 0x79, 0xd2, 0x5c, 0x93,
+ 0x71, 0x3c, 0x4c, 0x91, 0x98, 0x53, 0x9a, 0xf9, 0xdc, 0x8a, 0x1e, 0xbd,
+ 0x4b, 0x74, 0x03, 0x85, 0x8d, 0x8d, 0x27, 0x9a,
+};
+static const unsigned char kat3359_entropyinpr2[] = {
+ 0xdd, 0xad, 0x29, 0xad, 0xe1, 0xe1, 0x80, 0x4e, 0x4b, 0x4e, 0xac, 0x97,
+ 0x43, 0xa0, 0xd8, 0x72, 0xef, 0x56, 0x65, 0x44, 0xb1, 0x43, 0xab, 0xa0,
+};
+static const unsigned char kat3359_addinpr2[] = {
+ 0x9f, 0xc5, 0x04, 0x8d, 0x21, 0x87, 0x91, 0xbf, 0xf0, 0xd0, 0xce, 0xd0,
+ 0x4e, 0x78, 0x05, 0x6a, 0x54, 0x8a, 0x9b, 0x73, 0x81, 0xdf, 0x90, 0x98,
+ 0x25, 0x2e, 0xde, 0x78, 0x3c, 0xd1, 0x55, 0xec,
+};
+static const unsigned char kat3359_retbits[] = {
+ 0xa1, 0x4a, 0xde, 0xda, 0x18, 0x38, 0xbd, 0x0f, 0xf4, 0x3e, 0x31, 0x85,
+ 0x98, 0x4f, 0xb3, 0xd7, 0xb4, 0xaf, 0xab, 0xaf, 0x0d, 0x88, 0x7b, 0x4d,
+ 0x3e, 0x70, 0x9a, 0x16, 0x10, 0x0a, 0x7e, 0xc1, 0x5a, 0xe8, 0xd5, 0x8f,
+ 0xf6, 0x3f, 0xfb, 0x15, 0x3c, 0x68, 0x2e, 0x5d, 0x09, 0x30, 0x00, 0x88,
+ 0x3c, 0x54, 0x31, 0x19, 0xec, 0xf9, 0x0c, 0x15, 0xe1, 0x61, 0x5e, 0x32,
+ 0x5d, 0x88, 0x23, 0x78,
+};
+static const struct drbg_kat_pr_true kat3359_t = {
+ 13, kat3359_entropyin, kat3359_nonce, kat3359_persstr,
+ kat3359_entropyinpr1, kat3359_addinpr1, kat3359_entropyinpr2,
+ kat3359_addinpr2, kat3359_retbits
+};
+static const struct drbg_kat kat3359 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3359_t
+};
+
+static const unsigned char kat3360_entropyin[] = {
+ 0x1e, 0x98, 0x2c, 0x1c, 0xaf, 0x50, 0x1a, 0x32, 0x3c, 0xbd, 0x46, 0xb0,
+ 0x48, 0xa1, 0x57, 0x9b, 0x28, 0x8c, 0x44, 0x77, 0x46, 0xec, 0x3b, 0x25,
+};
+static const unsigned char kat3360_nonce[] = {
+ 0xb0, 0x13, 0x96, 0x9f, 0x5b, 0x3d, 0x74, 0x1b, 0x6a, 0x32, 0xa8, 0x6b,
+ 0x47, 0x5c, 0x15, 0x8d,
+};
+static const unsigned char kat3360_persstr[] = {
+ 0x6a, 0xaf, 0x29, 0x87, 0xdb, 0x9a, 0xa3, 0x99, 0xcd, 0x57, 0x66, 0x4c,
+ 0xbc, 0x61, 0x41, 0x68, 0x88, 0x08, 0x53, 0x97, 0x83, 0xbd, 0x2e, 0xf1,
+ 0xbf, 0x9d, 0x14, 0xe8, 0xc9, 0x36, 0x42, 0x5a,
+};
+static const unsigned char kat3360_entropyinpr1[] = {
+ 0xf5, 0xf5, 0xfd, 0xb8, 0x75, 0xda, 0xf3, 0xa6, 0x1b, 0xa0, 0x70, 0xa2,
+ 0xe2, 0x32, 0xdd, 0x39, 0xc6, 0xb2, 0x75, 0xe0, 0x55, 0xc4, 0x3d, 0x0d,
+};
+static const unsigned char kat3360_addinpr1[] = {
+ 0x9d, 0x55, 0x6b, 0xbf, 0x38, 0xe0, 0x64, 0xe3, 0xa7, 0xbd, 0x65, 0x1b,
+ 0x0c, 0xbe, 0x59, 0xb4, 0xa1, 0xc2, 0xf2, 0xaa, 0xb2, 0x6d, 0xee, 0x19,
+ 0x90, 0x92, 0x40, 0x2d, 0x86, 0x33, 0xf4, 0x00,
+};
+static const unsigned char kat3360_entropyinpr2[] = {
+ 0x10, 0x10, 0x94, 0x67, 0x69, 0xf0, 0xfb, 0x94, 0xb0, 0xac, 0xa8, 0x47,
+ 0x94, 0x92, 0xdd, 0x30, 0x75, 0xc4, 0x66, 0x7a, 0x7f, 0xbd, 0xec, 0x47,
+};
+static const unsigned char kat3360_addinpr2[] = {
+ 0xd2, 0x44, 0xbf, 0xad, 0xb4, 0xc9, 0x0f, 0xb7, 0x2a, 0xb3, 0x00, 0x4f,
+ 0xab, 0x45, 0xd3, 0xe5, 0x83, 0xeb, 0xe4, 0xef, 0x4b, 0xb9, 0x38, 0x04,
+ 0x84, 0xd7, 0xee, 0x8b, 0x4f, 0x2a, 0x20, 0x65,
+};
+static const unsigned char kat3360_retbits[] = {
+ 0x97, 0x25, 0xbe, 0xb2, 0x6c, 0x8e, 0x5e, 0xa5, 0x3d, 0x9e, 0x19, 0xee,
+ 0x78, 0x86, 0xab, 0x36, 0x9f, 0x22, 0xd3, 0x57, 0x7c, 0x3a, 0x0e, 0x42,
+ 0x96, 0x9a, 0xb6, 0xa6, 0x95, 0x60, 0x26, 0x12, 0x88, 0xd4, 0x36, 0xe5,
+ 0xcb, 0x45, 0xaf, 0x02, 0xf6, 0x96, 0xb9, 0x6f, 0xdd, 0x19, 0x75, 0xaa,
+ 0xab, 0x07, 0x38, 0xc3, 0xcc, 0x17, 0x65, 0xda, 0xf7, 0xcd, 0x53, 0xf8,
+ 0x3d, 0x74, 0xa8, 0xb3,
+};
+static const struct drbg_kat_pr_true kat3360_t = {
+ 14, kat3360_entropyin, kat3360_nonce, kat3360_persstr,
+ kat3360_entropyinpr1, kat3360_addinpr1, kat3360_entropyinpr2,
+ kat3360_addinpr2, kat3360_retbits
+};
+static const struct drbg_kat kat3360 = {
+ PR_TRUE, USE_DF, NID_aes_192_ctr, 24, 16, 32, 32, 64, &kat3360_t
+};
+
+static const unsigned char kat3361_entropyin[] = {
+ 0x16, 0xa1, 0xf0, 0x35, 0x38, 0x8c, 0xd8, 0xd9, 0x56, 0x02, 0x6e, 0x3b,
+ 0x01, 0x17, 0xcb, 0x52, 0x4d, 0xd3, 0xeb, 0x56, 0x3f, 0x9a, 0x77, 0x20,
+ 0xbb, 0x7d, 0xcb, 0x0f, 0xc6, 0xfb, 0xe7, 0x43,
+};
+static const unsigned char kat3361_nonce[] = {
+ 0xa2, 0xd0, 0x15, 0xf2, 0x2d, 0x85, 0x4e, 0x29, 0xde, 0x27, 0x8d, 0x91,
+ 0x0c, 0x57, 0x3d, 0xe5,
+};
+static const unsigned char kat3361_persstr[] = {0};
+static const unsigned char kat3361_entropyinpr1[] = {
+ 0xcf, 0x14, 0x0b, 0xcd, 0x4d, 0x71, 0x30, 0xe7, 0xe3, 0xea, 0x14, 0x04,
+ 0x6c, 0x56, 0x44, 0x2b, 0x57, 0xc4, 0x3b, 0x34, 0xad, 0x21, 0x95, 0x53,
+ 0xe7, 0x10, 0x5c, 0x18, 0xf6, 0xe5, 0x61, 0xaf,
+};
+static const unsigned char kat3361_addinpr1[] = {0};
+static const unsigned char kat3361_entropyinpr2[] = {
+ 0xe2, 0x7c, 0x9f, 0x0b, 0xe6, 0x0d, 0x82, 0xd6, 0xcc, 0x47, 0x4e, 0xfb,
+ 0x7f, 0xc7, 0x37, 0xb1, 0x6a, 0x68, 0x95, 0xd9, 0xa3, 0xa4, 0x5b, 0x97,
+ 0x1d, 0x19, 0xb7, 0x43, 0xc1, 0xa4, 0xac, 0x8f,
+};
+static const unsigned char kat3361_addinpr2[] = {0};
+static const unsigned char kat3361_retbits[] = {
+ 0xb4, 0xe8, 0x39, 0x5b, 0xcb, 0x75, 0x03, 0x41, 0x0a, 0x94, 0x63, 0x3f,
+ 0x70, 0xe9, 0x90, 0x4a, 0x5b, 0x30, 0xe6, 0x2c, 0x35, 0xbc, 0x6d, 0xd2,
+ 0xa0, 0x34, 0x96, 0xc4, 0xa4, 0x99, 0x32, 0xe1, 0x84, 0xfb, 0xff, 0xdb,
+ 0xcf, 0x1d, 0xe1, 0xc7, 0x2c, 0x50, 0xd3, 0x6d, 0xc2, 0xae, 0x8f, 0x04,
+ 0xf4, 0x0f, 0x96, 0xaa, 0xe1, 0x59, 0xc3, 0xfb, 0x81, 0x6c, 0xa1, 0x6d,
+ 0xf9, 0x9b, 0x6c, 0x3e,
+};
+static const struct drbg_kat_pr_true kat3361_t = {
+ 0, kat3361_entropyin, kat3361_nonce, kat3361_persstr,
+ kat3361_entropyinpr1, kat3361_addinpr1, kat3361_entropyinpr2,
+ kat3361_addinpr2, kat3361_retbits
+};
+static const struct drbg_kat kat3361 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3361_t
+};
+
+static const unsigned char kat3362_entropyin[] = {
+ 0x65, 0x23, 0x1f, 0xc1, 0x7f, 0x7b, 0xb8, 0xa0, 0x53, 0x8b, 0xf6, 0xc4,
+ 0x17, 0x63, 0x6a, 0x83, 0x52, 0xed, 0xb5, 0xf2, 0x7b, 0x3d, 0xce, 0x35,
+ 0x08, 0x20, 0xa4, 0xdd, 0xc8, 0xa0, 0x26, 0x27,
+};
+static const unsigned char kat3362_nonce[] = {
+ 0x51, 0xc0, 0x23, 0x88, 0x6d, 0xea, 0x57, 0xd8, 0x8d, 0x71, 0xa8, 0x8b,
+ 0xc2, 0x12, 0xd2, 0xfd,
+};
+static const unsigned char kat3362_persstr[] = {0};
+static const unsigned char kat3362_entropyinpr1[] = {
+ 0x62, 0x15, 0x90, 0x85, 0x90, 0x84, 0x3a, 0x1a, 0xda, 0x55, 0x2d, 0x53,
+ 0xb2, 0x37, 0x03, 0x96, 0xf1, 0x44, 0xa9, 0xba, 0xca, 0xc1, 0xa0, 0x25,
+ 0x4a, 0x78, 0x7e, 0x48, 0xd5, 0xf6, 0x76, 0x22,
+};
+static const unsigned char kat3362_addinpr1[] = {0};
+static const unsigned char kat3362_entropyinpr2[] = {
+ 0xbd, 0x84, 0xb5, 0x7f, 0xb7, 0xf7, 0xa7, 0x85, 0xdb, 0x9d, 0x1d, 0xf5,
+ 0x66, 0x57, 0x5f, 0x7a, 0xaf, 0x6c, 0xee, 0x64, 0xb6, 0xb8, 0x55, 0x6f,
+ 0x5d, 0xbf, 0x15, 0x3a, 0x0e, 0x35, 0x8d, 0x45,
+};
+static const unsigned char kat3362_addinpr2[] = {0};
+static const unsigned char kat3362_retbits[] = {
+ 0x43, 0x9d, 0x25, 0x05, 0xe5, 0x8b, 0x95, 0x1f, 0xa8, 0xcb, 0xad, 0x4e,
+ 0x72, 0x32, 0xef, 0xef, 0x66, 0xeb, 0x74, 0x39, 0x94, 0x10, 0xcf, 0x9e,
+ 0x8e, 0xf1, 0x08, 0x9d, 0x39, 0xd2, 0xe1, 0xbc, 0xbb, 0x15, 0xc2, 0x2c,
+ 0x98, 0x04, 0xa6, 0x7e, 0x31, 0xfa, 0x2d, 0x88, 0x89, 0x53, 0xa2, 0xbf,
+ 0xd5, 0x82, 0x89, 0x94, 0xa2, 0xea, 0x6d, 0xe7, 0xe6, 0x6e, 0xad, 0xcb,
+ 0x16, 0xc1, 0x6c, 0x90,
+};
+static const struct drbg_kat_pr_true kat3362_t = {
+ 1, kat3362_entropyin, kat3362_nonce, kat3362_persstr,
+ kat3362_entropyinpr1, kat3362_addinpr1, kat3362_entropyinpr2,
+ kat3362_addinpr2, kat3362_retbits
+};
+static const struct drbg_kat kat3362 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3362_t
+};
+
+static const unsigned char kat3363_entropyin[] = {
+ 0x4f, 0xbe, 0x00, 0x0a, 0x46, 0x91, 0x30, 0x8c, 0xf5, 0x90, 0x7f, 0x81,
+ 0xd4, 0x1a, 0x3e, 0xea, 0xb9, 0xfb, 0x1a, 0x14, 0x90, 0xd5, 0xe7, 0x1d,
+ 0xa6, 0x59, 0x18, 0xbf, 0x26, 0x1f, 0x48, 0x5f,
+};
+static const unsigned char kat3363_nonce[] = {
+ 0xc6, 0xcd, 0xed, 0xc5, 0x17, 0x08, 0x8c, 0x42, 0xa5, 0xbb, 0x6d, 0x68,
+ 0x73, 0xe2, 0x17, 0x23,
+};
+static const unsigned char kat3363_persstr[] = {0};
+static const unsigned char kat3363_entropyinpr1[] = {
+ 0xaa, 0x7e, 0x82, 0xb0, 0x86, 0x0d, 0xfe, 0x9f, 0xeb, 0xda, 0x4e, 0x15,
+ 0x65, 0xd2, 0x60, 0xef, 0x26, 0xf6, 0xd8, 0xe6, 0x37, 0xb9, 0x15, 0xd5,
+ 0xc7, 0x56, 0x61, 0x8f, 0x4d, 0x18, 0xa5, 0x43,
+};
+static const unsigned char kat3363_addinpr1[] = {0};
+static const unsigned char kat3363_entropyinpr2[] = {
+ 0xbc, 0x6e, 0x63, 0x58, 0xd0, 0xd9, 0x0c, 0x23, 0x24, 0x68, 0x85, 0xf8,
+ 0xc6, 0x7b, 0x28, 0x3f, 0x91, 0xc9, 0xfd, 0x3c, 0xe9, 0xc4, 0xde, 0x07,
+ 0xa6, 0x83, 0xb4, 0x38, 0x33, 0x38, 0x68, 0xf2,
+};
+static const unsigned char kat3363_addinpr2[] = {0};
+static const unsigned char kat3363_retbits[] = {
+ 0xdb, 0x3c, 0x3f, 0xc9, 0x61, 0xfd, 0x6a, 0x6c, 0x2f, 0x46, 0x3f, 0xd2,
+ 0xf6, 0xba, 0x44, 0x0c, 0xe9, 0xf2, 0x2c, 0xe6, 0x63, 0x88, 0x94, 0xf6,
+ 0xa1, 0xce, 0xae, 0x96, 0x9f, 0xca, 0x34, 0xc7, 0x26, 0x6e, 0x12, 0x2c,
+ 0xfa, 0x43, 0xdb, 0x90, 0x6f, 0x1f, 0xcc, 0xda, 0x28, 0x61, 0x6c, 0x6f,
+ 0x1e, 0x68, 0xca, 0x8d, 0x41, 0x2b, 0x19, 0x95, 0xd9, 0x12, 0xe8, 0x56,
+ 0x71, 0xe2, 0x4d, 0xc5,
+};
+static const struct drbg_kat_pr_true kat3363_t = {
+ 2, kat3363_entropyin, kat3363_nonce, kat3363_persstr,
+ kat3363_entropyinpr1, kat3363_addinpr1, kat3363_entropyinpr2,
+ kat3363_addinpr2, kat3363_retbits
+};
+static const struct drbg_kat kat3363 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3363_t
+};
+
+static const unsigned char kat3364_entropyin[] = {
+ 0x32, 0x71, 0xbc, 0x91, 0x28, 0x7c, 0x78, 0x1f, 0x74, 0x4e, 0x96, 0x86,
+ 0xb6, 0xb6, 0x07, 0x6d, 0x5a, 0x2e, 0x95, 0xb9, 0xbc, 0xc1, 0x86, 0x1d,
+ 0xf9, 0x48, 0x75, 0x1e, 0x02, 0x20, 0x0e, 0x96,
+};
+static const unsigned char kat3364_nonce[] = {
+ 0xeb, 0x06, 0x14, 0x12, 0xf6, 0xb2, 0x25, 0xcf, 0x48, 0x5e, 0xfa, 0x3a,
+ 0xad, 0xe7, 0x33, 0x8d,
+};
+static const unsigned char kat3364_persstr[] = {0};
+static const unsigned char kat3364_entropyinpr1[] = {
+ 0x10, 0xa5, 0x83, 0x03, 0xf3, 0xcb, 0xfa, 0xda, 0xac, 0x04, 0x1f, 0x3a,
+ 0x11, 0xa4, 0xa7, 0xac, 0x18, 0xb8, 0x99, 0x90, 0x04, 0x4b, 0x54, 0x32,
+ 0xa1, 0x32, 0xd0, 0x4d, 0xc9, 0x4d, 0x29, 0x10,
+};
+static const unsigned char kat3364_addinpr1[] = {0};
+static const unsigned char kat3364_entropyinpr2[] = {
+ 0x76, 0x36, 0xf9, 0x0a, 0x37, 0x94, 0xe3, 0xe1, 0xbb, 0x7d, 0xf0, 0xbb,
+ 0xaf, 0x3d, 0xcd, 0x49, 0x8f, 0x46, 0x83, 0x5a, 0xf7, 0xff, 0x51, 0x61,
+ 0x49, 0x7a, 0xfe, 0x52, 0xae, 0x64, 0x9a, 0xa3,
+};
+static const unsigned char kat3364_addinpr2[] = {0};
+static const unsigned char kat3364_retbits[] = {
+ 0xc9, 0x0d, 0x09, 0xf1, 0x6c, 0xe4, 0xdf, 0x61, 0x3c, 0x95, 0x1b, 0x85,
+ 0x5a, 0x0c, 0x28, 0x32, 0x9a, 0x83, 0x13, 0xda, 0x7c, 0xa4, 0x51, 0x14,
+ 0xfa, 0x28, 0xbe, 0x99, 0x66, 0x1f, 0xbc, 0x2b, 0x22, 0x5e, 0x64, 0xad,
+ 0xa0, 0xf3, 0x61, 0xf6, 0x76, 0xda, 0xf8, 0x51, 0x19, 0xc8, 0xbe, 0x95,
+ 0xb5, 0x1a, 0xeb, 0x5a, 0xe6, 0x99, 0xa4, 0x4f, 0xf7, 0x4d, 0xaa, 0xb0,
+ 0x16, 0xc1, 0xc7, 0x2b,
+};
+static const struct drbg_kat_pr_true kat3364_t = {
+ 3, kat3364_entropyin, kat3364_nonce, kat3364_persstr,
+ kat3364_entropyinpr1, kat3364_addinpr1, kat3364_entropyinpr2,
+ kat3364_addinpr2, kat3364_retbits
+};
+static const struct drbg_kat kat3364 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3364_t
+};
+
+static const unsigned char kat3365_entropyin[] = {
+ 0x36, 0x41, 0x4b, 0xc0, 0x51, 0xfd, 0x29, 0x2b, 0x8a, 0xa2, 0xaf, 0xdc,
+ 0x3e, 0x73, 0x53, 0x33, 0x3b, 0xdf, 0xa3, 0xb2, 0xb6, 0x0b, 0x93, 0xfb,
+ 0x88, 0xa4, 0x30, 0x47, 0x82, 0x66, 0x32, 0xb6,
+};
+static const unsigned char kat3365_nonce[] = {
+ 0x5d, 0x6d, 0x6f, 0x03, 0x7f, 0xfb, 0xc4, 0xf9, 0x9a, 0xca, 0x29, 0x6f,
+ 0x1b, 0x3a, 0x77, 0x14,
+};
+static const unsigned char kat3365_persstr[] = {0};
+static const unsigned char kat3365_entropyinpr1[] = {
+ 0x9d, 0xc0, 0x69, 0x16, 0xe6, 0x38, 0xfc, 0x7d, 0xcf, 0xe1, 0x55, 0xce,
+ 0x82, 0x62, 0x4a, 0x0d, 0xab, 0xd9, 0x74, 0xa1, 0x79, 0x4f, 0xea, 0xc8,
+ 0x44, 0xf7, 0xc5, 0x2c, 0xe4, 0xe9, 0x89, 0x85,
+};
+static const unsigned char kat3365_addinpr1[] = {0};
+static const unsigned char kat3365_entropyinpr2[] = {
+ 0x3e, 0x54, 0xbc, 0xda, 0x64, 0xaa, 0x0f, 0x31, 0x1b, 0xd6, 0xaf, 0x04,
+ 0xd3, 0x8d, 0x23, 0x3f, 0xe5, 0x90, 0xec, 0x53, 0x17, 0x0f, 0x45, 0xcc,
+ 0x80, 0x9e, 0xeb, 0x62, 0x04, 0x53, 0xb2, 0xfb,
+};
+static const unsigned char kat3365_addinpr2[] = {0};
+static const unsigned char kat3365_retbits[] = {
+ 0x51, 0x81, 0xf2, 0x6c, 0x7e, 0x14, 0x45, 0x89, 0x89, 0xaa, 0x11, 0x64,
+ 0xb5, 0xf4, 0xad, 0x68, 0x02, 0x1f, 0xe1, 0xaf, 0x77, 0x22, 0xa6, 0xfd,
+ 0x97, 0xcb, 0x56, 0x6a, 0x03, 0x90, 0x8c, 0xf5, 0x6b, 0xe9, 0x3f, 0xa5,
+ 0x83, 0x54, 0x9f, 0x4c, 0x04, 0x73, 0x8f, 0xfd, 0x89, 0x98, 0x76, 0x5e,
+ 0x0f, 0xaa, 0xfa, 0xf0, 0xa1, 0x4a, 0x16, 0x9d, 0x27, 0x58, 0x5a, 0x0f,
+ 0x1a, 0xdf, 0xd0, 0xb5,
+};
+static const struct drbg_kat_pr_true kat3365_t = {
+ 4, kat3365_entropyin, kat3365_nonce, kat3365_persstr,
+ kat3365_entropyinpr1, kat3365_addinpr1, kat3365_entropyinpr2,
+ kat3365_addinpr2, kat3365_retbits
+};
+static const struct drbg_kat kat3365 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3365_t
+};
+
+static const unsigned char kat3366_entropyin[] = {
+ 0x86, 0xcc, 0x6e, 0x0d, 0x10, 0xda, 0xe4, 0x33, 0x2d, 0x04, 0xaa, 0x67,
+ 0x62, 0x76, 0x18, 0xf8, 0x18, 0x15, 0x11, 0x68, 0x9b, 0x33, 0x4d, 0x42,
+ 0x31, 0xc3, 0x37, 0x93, 0x07, 0xd3, 0xa4, 0x43,
+};
+static const unsigned char kat3366_nonce[] = {
+ 0xb9, 0xa9, 0xfe, 0x7a, 0x90, 0x56, 0x22, 0x09, 0xec, 0x60, 0xde, 0x81,
+ 0xd4, 0x31, 0xb7, 0x66,
+};
+static const unsigned char kat3366_persstr[] = {0};
+static const unsigned char kat3366_entropyinpr1[] = {
+ 0x47, 0xab, 0x3b, 0xdf, 0x88, 0xae, 0x84, 0xe8, 0xe1, 0x0a, 0x47, 0x3a,
+ 0xa5, 0x03, 0xb2, 0xc8, 0xcc, 0x7b, 0x02, 0x10, 0x58, 0x30, 0xfd, 0xb1,
+ 0x6b, 0x9e, 0xf8, 0x38, 0x22, 0x0b, 0x1d, 0xef,
+};
+static const unsigned char kat3366_addinpr1[] = {0};
+static const unsigned char kat3366_entropyinpr2[] = {
+ 0xfa, 0x27, 0x5c, 0xa7, 0xf2, 0x6f, 0xf7, 0xf2, 0x46, 0xf1, 0xf3, 0x89,
+ 0x1f, 0xf4, 0x14, 0x22, 0x68, 0xc4, 0x7c, 0x1d, 0xf2, 0x5b, 0x62, 0xc4,
+ 0x53, 0x19, 0x58, 0x74, 0x4d, 0x66, 0x4d, 0xc3,
+};
+static const unsigned char kat3366_addinpr2[] = {0};
+static const unsigned char kat3366_retbits[] = {
+ 0xd7, 0x68, 0x0e, 0x68, 0x40, 0x33, 0xb1, 0x7e, 0xee, 0xdd, 0x95, 0x39,
+ 0xb0, 0xf3, 0x57, 0x1e, 0xbe, 0x71, 0xa0, 0x80, 0x71, 0x08, 0x83, 0xc5,
+ 0x23, 0x38, 0xd9, 0x36, 0x35, 0xd3, 0xa2, 0xff, 0xb2, 0x15, 0x5b, 0xdf,
+ 0x0c, 0xba, 0x62, 0xe9, 0xa5, 0xaa, 0xb7, 0x00, 0x98, 0x9f, 0xd7, 0x28,
+ 0x62, 0x4f, 0x01, 0x95, 0x2a, 0x09, 0xa1, 0x35, 0x1a, 0xd0, 0xd5, 0x58,
+ 0xf0, 0x6f, 0xe2, 0x6e,
+};
+static const struct drbg_kat_pr_true kat3366_t = {
+ 5, kat3366_entropyin, kat3366_nonce, kat3366_persstr,
+ kat3366_entropyinpr1, kat3366_addinpr1, kat3366_entropyinpr2,
+ kat3366_addinpr2, kat3366_retbits
+};
+static const struct drbg_kat kat3366 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3366_t
+};
+
+static const unsigned char kat3367_entropyin[] = {
+ 0x61, 0x58, 0x52, 0x0b, 0xa8, 0x5c, 0x53, 0x01, 0x56, 0x33, 0x1b, 0x36,
+ 0x83, 0x51, 0xa4, 0x6f, 0x11, 0xd7, 0xc5, 0xf2, 0x14, 0x1f, 0x00, 0xa4,
+ 0x84, 0xbe, 0xec, 0xfa, 0x56, 0xa6, 0xf7, 0xea,
+};
+static const unsigned char kat3367_nonce[] = {
+ 0xb5, 0x25, 0x1e, 0x69, 0x0c, 0xc5, 0x5f, 0xc2, 0x3a, 0xc9, 0x21, 0xc5,
+ 0x9b, 0x3b, 0xdd, 0xd0,
+};
+static const unsigned char kat3367_persstr[] = {0};
+static const unsigned char kat3367_entropyinpr1[] = {
+ 0xe4, 0x56, 0xaf, 0x1b, 0xad, 0x93, 0x97, 0x57, 0xb4, 0xc1, 0xe2, 0xd4,
+ 0xf9, 0xda, 0x12, 0xe6, 0xb0, 0x8f, 0xb7, 0xf0, 0x01, 0x8f, 0xa9, 0x6a,
+ 0x52, 0xd3, 0xee, 0x7c, 0x58, 0x5e, 0xb7, 0x68,
+};
+static const unsigned char kat3367_addinpr1[] = {0};
+static const unsigned char kat3367_entropyinpr2[] = {
+ 0xcf, 0xab, 0x0f, 0x48, 0xcb, 0x7e, 0xfd, 0x84, 0x0e, 0x85, 0x5a, 0x81,
+ 0xf4, 0xb2, 0xb4, 0x07, 0x25, 0x4b, 0xfb, 0x60, 0xec, 0x75, 0x4b, 0x84,
+ 0xef, 0x3c, 0x61, 0x6c, 0xc6, 0x5c, 0xf3, 0xd3,
+};
+static const unsigned char kat3367_addinpr2[] = {0};
+static const unsigned char kat3367_retbits[] = {
+ 0x6d, 0x91, 0x4e, 0x1a, 0x09, 0x19, 0x3f, 0x12, 0x90, 0xcd, 0x85, 0x84,
+ 0xf2, 0x3c, 0xd0, 0xdc, 0x9d, 0x4d, 0x37, 0xea, 0x67, 0xca, 0x9b, 0xdb,
+ 0x89, 0x17, 0x03, 0x89, 0x55, 0x1c, 0x57, 0x93, 0x8a, 0xf2, 0x21, 0x16,
+ 0x0a, 0x53, 0x43, 0xdd, 0x15, 0x68, 0x90, 0xfb, 0xb1, 0x56, 0xd9, 0xa3,
+ 0x44, 0xc3, 0xcd, 0x84, 0xa7, 0x83, 0x3a, 0xed, 0x05, 0x87, 0xc3, 0x38,
+ 0x13, 0xd6, 0xb5, 0x5e,
+};
+static const struct drbg_kat_pr_true kat3367_t = {
+ 6, kat3367_entropyin, kat3367_nonce, kat3367_persstr,
+ kat3367_entropyinpr1, kat3367_addinpr1, kat3367_entropyinpr2,
+ kat3367_addinpr2, kat3367_retbits
+};
+static const struct drbg_kat kat3367 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3367_t
+};
+
+static const unsigned char kat3368_entropyin[] = {
+ 0x70, 0xf9, 0xd8, 0x9c, 0x0d, 0xb6, 0xe8, 0x1d, 0x38, 0x0a, 0x31, 0x9a,
+ 0x7a, 0x8f, 0xef, 0x25, 0x66, 0x01, 0x67, 0xde, 0x54, 0x8f, 0x64, 0x03,
+ 0xa6, 0xfc, 0x87, 0x4d, 0x19, 0x6d, 0x5b, 0x24,
+};
+static const unsigned char kat3368_nonce[] = {
+ 0xe1, 0xf1, 0x48, 0x8a, 0x2c, 0x8a, 0x17, 0x16, 0x6f, 0x5f, 0x49, 0x82,
+ 0x7d, 0xb6, 0x9b, 0x1e,
+};
+static const unsigned char kat3368_persstr[] = {0};
+static const unsigned char kat3368_entropyinpr1[] = {
+ 0xf8, 0x02, 0x46, 0xbf, 0xd7, 0x4f, 0x98, 0x0d, 0x4a, 0xa6, 0x72, 0x4f,
+ 0xf2, 0xcd, 0x19, 0xbc, 0x56, 0x7c, 0x7a, 0xdb, 0x1f, 0xfd, 0xb0, 0x74,
+ 0x45, 0xc2, 0x26, 0x49, 0xc1, 0xa7, 0xe0, 0xbc,
+};
+static const unsigned char kat3368_addinpr1[] = {0};
+static const unsigned char kat3368_entropyinpr2[] = {
+ 0x6a, 0x39, 0xc3, 0x59, 0x2c, 0x6e, 0x52, 0x46, 0xed, 0xb9, 0x25, 0xfa,
+ 0x24, 0x08, 0x50, 0xf5, 0x42, 0x06, 0xff, 0xc9, 0x1f, 0xcb, 0xb9, 0xc9,
+ 0xc3, 0x99, 0x6a, 0xbe, 0x71, 0xec, 0x01, 0x49,
+};
+static const unsigned char kat3368_addinpr2[] = {0};
+static const unsigned char kat3368_retbits[] = {
+ 0x9e, 0x62, 0x95, 0x44, 0xae, 0xc8, 0xf8, 0x72, 0xa2, 0x31, 0x99, 0xe8,
+ 0xaf, 0xf7, 0xc8, 0x3b, 0xd7, 0xa3, 0x98, 0xed, 0xc3, 0xa9, 0xc9, 0x35,
+ 0x03, 0xdf, 0x2b, 0xa5, 0x30, 0xe6, 0xfc, 0x6b, 0xbd, 0x84, 0x0b, 0x65,
+ 0x0f, 0x51, 0xa9, 0x97, 0xa1, 0x26, 0xf2, 0x52, 0x4d, 0x12, 0x27, 0xd0,
+ 0x4f, 0x7b, 0x6f, 0x3d, 0x1f, 0x4e, 0x4e, 0x81, 0xa6, 0xa6, 0xd2, 0x98,
+ 0x9a, 0xb7, 0x76, 0x7c,
+};
+static const struct drbg_kat_pr_true kat3368_t = {
+ 7, kat3368_entropyin, kat3368_nonce, kat3368_persstr,
+ kat3368_entropyinpr1, kat3368_addinpr1, kat3368_entropyinpr2,
+ kat3368_addinpr2, kat3368_retbits
+};
+static const struct drbg_kat kat3368 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3368_t
+};
+
+static const unsigned char kat3369_entropyin[] = {
+ 0xd3, 0xbe, 0x2c, 0x6f, 0xa7, 0x7b, 0xca, 0x18, 0x28, 0x6f, 0x97, 0xce,
+ 0x46, 0x7f, 0x81, 0x45, 0xcd, 0xb3, 0xa6, 0x60, 0xf6, 0x8d, 0x51, 0xfc,
+ 0x81, 0x80, 0xb7, 0x51, 0xf6, 0xb7, 0x6f, 0x6c,
+};
+static const unsigned char kat3369_nonce[] = {
+ 0x99, 0x7b, 0x73, 0x2c, 0x50, 0xad, 0x4f, 0x7a, 0xb2, 0x8b, 0xc6, 0x13,
+ 0x4a, 0x9f, 0x6b, 0xf5,
+};
+static const unsigned char kat3369_persstr[] = {0};
+static const unsigned char kat3369_entropyinpr1[] = {
+ 0x52, 0x71, 0x6f, 0x69, 0xa6, 0xc8, 0x43, 0xb6, 0xd8, 0x1a, 0x00, 0x79,
+ 0x66, 0x0f, 0x50, 0x95, 0xfa, 0xd5, 0x04, 0x2b, 0x68, 0x81, 0x7b, 0x3b,
+ 0xb3, 0xc3, 0xe8, 0xd3, 0x85, 0x60, 0x02, 0x7e,
+};
+static const unsigned char kat3369_addinpr1[] = {0};
+static const unsigned char kat3369_entropyinpr2[] = {
+ 0xcf, 0xc9, 0x5e, 0x2d, 0x59, 0xcb, 0x32, 0x60, 0x58, 0x33, 0xc7, 0xd2,
+ 0xca, 0xa1, 0x23, 0x19, 0x9f, 0x73, 0xad, 0x5f, 0x2d, 0xbb, 0x40, 0xca,
+ 0xe5, 0x71, 0x2f, 0x8c, 0xf7, 0x65, 0xcd, 0x98,
+};
+static const unsigned char kat3369_addinpr2[] = {0};
+static const unsigned char kat3369_retbits[] = {
+ 0x6b, 0xc6, 0x6d, 0x2a, 0xab, 0x05, 0x7c, 0x21, 0x43, 0x5d, 0xac, 0xfd,
+ 0x88, 0x74, 0xed, 0x6c, 0xaa, 0x70, 0xf6, 0x0e, 0x36, 0x42, 0x5f, 0x8b,
+ 0x0d, 0xed, 0xac, 0x98, 0x91, 0x9b, 0x85, 0xde, 0xe1, 0xe1, 0x90, 0xd8,
+ 0x8c, 0xaf, 0xa5, 0xb9, 0xd9, 0x9a, 0x02, 0x72, 0x38, 0x25, 0xcd, 0x46,
+ 0x5a, 0x6b, 0x00, 0xad, 0x01, 0x51, 0xc5, 0x27, 0x25, 0x33, 0x40, 0x97,
+ 0x76, 0xe2, 0xb1, 0x6e,
+};
+static const struct drbg_kat_pr_true kat3369_t = {
+ 8, kat3369_entropyin, kat3369_nonce, kat3369_persstr,
+ kat3369_entropyinpr1, kat3369_addinpr1, kat3369_entropyinpr2,
+ kat3369_addinpr2, kat3369_retbits
+};
+static const struct drbg_kat kat3369 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3369_t
+};
+
+static const unsigned char kat3370_entropyin[] = {
+ 0x64, 0xe9, 0x58, 0xc9, 0x5d, 0x76, 0x5e, 0x47, 0xe4, 0xb8, 0xf7, 0x41,
+ 0x52, 0xbc, 0xc8, 0xae, 0x01, 0xc0, 0xaa, 0x9f, 0x42, 0x0c, 0xd4, 0xad,
+ 0xf1, 0x95, 0xc9, 0xc4, 0xa1, 0xce, 0x25, 0x4f,
+};
+static const unsigned char kat3370_nonce[] = {
+ 0x2f, 0x31, 0x50, 0x16, 0x54, 0x6e, 0xbf, 0x76, 0x58, 0xc3, 0x59, 0x54,
+ 0x63, 0xc2, 0x4f, 0x68,
+};
+static const unsigned char kat3370_persstr[] = {0};
+static const unsigned char kat3370_entropyinpr1[] = {
+ 0x71, 0x53, 0xe5, 0x8b, 0x36, 0xd0, 0x00, 0xb9, 0xb1, 0xba, 0xe1, 0x8b,
+ 0xf2, 0x71, 0xa9, 0x92, 0x65, 0x5c, 0x24, 0x6e, 0x8a, 0xa7, 0x91, 0xb2,
+ 0xb6, 0x5f, 0xbd, 0xc8, 0x9c, 0xed, 0x1f, 0x39,
+};
+static const unsigned char kat3370_addinpr1[] = {0};
+static const unsigned char kat3370_entropyinpr2[] = {
+ 0x5d, 0x38, 0xbe, 0x88, 0x95, 0x58, 0x9d, 0x30, 0x79, 0x0b, 0x03, 0x6e,
+ 0x95, 0x46, 0xee, 0xc6, 0x95, 0x49, 0xaa, 0x5d, 0xcc, 0xf4, 0x42, 0x82,
+ 0x1d, 0x93, 0xf5, 0xe2, 0x01, 0x22, 0xec, 0xc2,
+};
+static const unsigned char kat3370_addinpr2[] = {0};
+static const unsigned char kat3370_retbits[] = {
+ 0x57, 0xd1, 0x2d, 0xdc, 0x95, 0x09, 0xad, 0xcb, 0x3e, 0x34, 0xf4, 0x96,
+ 0xa8, 0xbe, 0x9a, 0x95, 0xa7, 0x4e, 0x66, 0x9d, 0xba, 0xc3, 0x12, 0xa3,
+ 0xbf, 0x63, 0x43, 0x09, 0x1d, 0xab, 0x05, 0x36, 0xf2, 0x2a, 0xaa, 0x3a,
+ 0x4a, 0xa9, 0x82, 0x69, 0x0f, 0x33, 0xdb, 0x52, 0x22, 0x35, 0xcc, 0xb2,
+ 0x5e, 0xa9, 0x12, 0xb2, 0x6d, 0x71, 0x65, 0x72, 0xec, 0x86, 0xc8, 0x75,
+ 0xb3, 0x33, 0xd9, 0x42,
+};
+static const struct drbg_kat_pr_true kat3370_t = {
+ 9, kat3370_entropyin, kat3370_nonce, kat3370_persstr,
+ kat3370_entropyinpr1, kat3370_addinpr1, kat3370_entropyinpr2,
+ kat3370_addinpr2, kat3370_retbits
+};
+static const struct drbg_kat kat3370 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3370_t
+};
+
+static const unsigned char kat3371_entropyin[] = {
+ 0x88, 0x47, 0x68, 0x30, 0xe6, 0xc6, 0x35, 0x3a, 0x08, 0x17, 0x8e, 0xaa,
+ 0x37, 0xca, 0x6d, 0xf6, 0xe8, 0xfa, 0x39, 0x61, 0xed, 0xba, 0x13, 0xf2,
+ 0xd3, 0xe5, 0x37, 0x8d, 0xad, 0x07, 0xed, 0x54,
+};
+static const unsigned char kat3371_nonce[] = {
+ 0xb5, 0xee, 0xfb, 0x5b, 0xab, 0x71, 0x68, 0x2c, 0x37, 0xf8, 0x24, 0xb8,
+ 0xc9, 0xcb, 0x9d, 0x22,
+};
+static const unsigned char kat3371_persstr[] = {0};
+static const unsigned char kat3371_entropyinpr1[] = {
+ 0xee, 0x6b, 0xb2, 0xc1, 0x83, 0xfe, 0x42, 0x88, 0xe3, 0x77, 0x92, 0x27,
+ 0xee, 0x23, 0xff, 0x8a, 0x57, 0xef, 0xb2, 0x20, 0x70, 0x6c, 0xc0, 0xce,
+ 0x6c, 0x96, 0xb9, 0x77, 0xff, 0x4f, 0x0b, 0xdb,
+};
+static const unsigned char kat3371_addinpr1[] = {0};
+static const unsigned char kat3371_entropyinpr2[] = {
+ 0xfe, 0x1b, 0xda, 0x9e, 0x05, 0x9c, 0x8e, 0x01, 0xf9, 0x96, 0xd2, 0xda,
+ 0x32, 0xb4, 0x79, 0xf9, 0xf9, 0xd0, 0x27, 0xa2, 0x5b, 0xbe, 0xcd, 0xc0,
+ 0x50, 0xb8, 0x54, 0x85, 0x4d, 0x0a, 0xa5, 0x0a,
+};
+static const unsigned char kat3371_addinpr2[] = {0};
+static const unsigned char kat3371_retbits[] = {
+ 0x06, 0x9f, 0x8a, 0x45, 0x74, 0x12, 0x1b, 0xfb, 0x57, 0xa3, 0xee, 0x6d,
+ 0xc1, 0xca, 0x1b, 0xeb, 0x47, 0x34, 0x74, 0x63, 0x6e, 0xe0, 0x58, 0xed,
+ 0x9a, 0xba, 0x68, 0x41, 0x2f, 0x1f, 0xaf, 0xfa, 0x0b, 0xfb, 0x00, 0xc9,
+ 0xb5, 0x22, 0x65, 0x18, 0x9f, 0xf7, 0xfe, 0x84, 0x60, 0xa6, 0xf4, 0x5e,
+ 0x1c, 0x54, 0x68, 0xb1, 0x3a, 0x8c, 0x6c, 0x7e, 0xd9, 0x51, 0xc1, 0x72,
+ 0x59, 0xa1, 0xb5, 0x80,
+};
+static const struct drbg_kat_pr_true kat3371_t = {
+ 10, kat3371_entropyin, kat3371_nonce, kat3371_persstr,
+ kat3371_entropyinpr1, kat3371_addinpr1, kat3371_entropyinpr2,
+ kat3371_addinpr2, kat3371_retbits
+};
+static const struct drbg_kat kat3371 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3371_t
+};
+
+static const unsigned char kat3372_entropyin[] = {
+ 0xdb, 0xe2, 0x78, 0x74, 0x49, 0xb0, 0xd3, 0x0b, 0x20, 0xae, 0xaa, 0x6e,
+ 0x90, 0x0e, 0x7f, 0xf8, 0x12, 0x07, 0x10, 0x19, 0x6e, 0x02, 0xb3, 0xa0,
+ 0x70, 0x8d, 0xd8, 0xb8, 0xe8, 0x3e, 0x44, 0x31,
+};
+static const unsigned char kat3372_nonce[] = {
+ 0x6d, 0x10, 0xb1, 0xfb, 0x2a, 0xfe, 0xf1, 0xa6, 0x1c, 0x8c, 0x29, 0xb2,
+ 0x37, 0x64, 0x08, 0x10,
+};
+static const unsigned char kat3372_persstr[] = {0};
+static const unsigned char kat3372_entropyinpr1[] = {
+ 0xf8, 0xed, 0x93, 0x8f, 0xac, 0x49, 0x14, 0x29, 0xd0, 0xe1, 0x77, 0xe0,
+ 0x7f, 0x8b, 0xf3, 0x90, 0x11, 0xe6, 0x2d, 0xec, 0x83, 0x77, 0xd1, 0x28,
+ 0xfc, 0xf7, 0xe4, 0x5a, 0x2e, 0x51, 0xd5, 0xb0,
+};
+static const unsigned char kat3372_addinpr1[] = {0};
+static const unsigned char kat3372_entropyinpr2[] = {
+ 0x1f, 0x03, 0x41, 0x1b, 0x4f, 0x90, 0xa8, 0x7f, 0x35, 0x98, 0xef, 0xe4,
+ 0x37, 0x96, 0xd3, 0x04, 0xa3, 0xca, 0x24, 0x50, 0x84, 0xd2, 0x6e, 0xe5,
+ 0x5c, 0x25, 0x62, 0x9b, 0xb8, 0x81, 0x06, 0xe3,
+};
+static const unsigned char kat3372_addinpr2[] = {0};
+static const unsigned char kat3372_retbits[] = {
+ 0xd4, 0xd8, 0xa2, 0x2c, 0x19, 0x05, 0x76, 0x32, 0xe0, 0xd4, 0x95, 0xf9,
+ 0x76, 0x3a, 0xa7, 0x06, 0x33, 0xf9, 0x2d, 0xa5, 0xf3, 0xcd, 0xa5, 0xf2,
+ 0xb1, 0xa4, 0xac, 0x99, 0xb3, 0x54, 0x1d, 0xde, 0x49, 0x25, 0x05, 0x84,
+ 0x1d, 0xc5, 0x4d, 0x1e, 0xf3, 0x10, 0x01, 0xbb, 0xbf, 0x9d, 0x5f, 0xf5,
+ 0x02, 0xd9, 0x53, 0x02, 0x58, 0xdc, 0x61, 0xf7, 0xb3, 0x0b, 0x08, 0x3c,
+ 0x88, 0x2e, 0x01, 0x99,
+};
+static const struct drbg_kat_pr_true kat3372_t = {
+ 11, kat3372_entropyin, kat3372_nonce, kat3372_persstr,
+ kat3372_entropyinpr1, kat3372_addinpr1, kat3372_entropyinpr2,
+ kat3372_addinpr2, kat3372_retbits
+};
+static const struct drbg_kat kat3372 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3372_t
+};
+
+static const unsigned char kat3373_entropyin[] = {
+ 0x70, 0xb9, 0xc1, 0xa5, 0x04, 0x31, 0x13, 0xb8, 0x1c, 0x9d, 0xa5, 0x26,
+ 0xe3, 0x1d, 0xa2, 0x50, 0x2d, 0x37, 0x56, 0x20, 0xd2, 0x57, 0x3f, 0xb9,
+ 0x08, 0xf7, 0x17, 0x1e, 0xc9, 0xeb, 0x20, 0xfa,
+};
+static const unsigned char kat3373_nonce[] = {
+ 0xd9, 0x1a, 0xcc, 0xed, 0x2e, 0x94, 0x35, 0x9b, 0xb8, 0x6f, 0x11, 0xf8,
+ 0x80, 0x1b, 0x7b, 0xf8,
+};
+static const unsigned char kat3373_persstr[] = {0};
+static const unsigned char kat3373_entropyinpr1[] = {
+ 0x2c, 0x2e, 0x64, 0x75, 0x5b, 0xc1, 0xaa, 0xb2, 0xd4, 0xd7, 0x1a, 0x09,
+ 0x76, 0x20, 0x29, 0x91, 0x01, 0xb9, 0x54, 0x85, 0x53, 0x09, 0x1d, 0x6c,
+ 0x98, 0xd1, 0xed, 0x18, 0x2a, 0x10, 0xf6, 0x60,
+};
+static const unsigned char kat3373_addinpr1[] = {0};
+static const unsigned char kat3373_entropyinpr2[] = {
+ 0x3b, 0x0d, 0x9f, 0x37, 0xf7, 0x38, 0x5d, 0xc3, 0xf2, 0xa0, 0x97, 0x55,
+ 0x5c, 0xa3, 0xf7, 0x6b, 0xc0, 0x47, 0xee, 0xa5, 0x3d, 0x37, 0x87, 0x29,
+ 0x06, 0x38, 0x92, 0x38, 0xb1, 0x3e, 0xec, 0x45,
+};
+static const unsigned char kat3373_addinpr2[] = {0};
+static const unsigned char kat3373_retbits[] = {
+ 0x71, 0xce, 0x9a, 0xf0, 0xc9, 0xd9, 0x5e, 0xf4, 0x02, 0x09, 0x3e, 0x7e,
+ 0x33, 0xfd, 0xf7, 0x22, 0x1f, 0xa1, 0x3d, 0x6a, 0x2a, 0x3a, 0x6b, 0x35,
+ 0xcf, 0xf3, 0x1d, 0x57, 0x7d, 0x92, 0x4c, 0xec, 0x97, 0xc5, 0x7e, 0x37,
+ 0x6e, 0xe3, 0xad, 0x7e, 0xb1, 0x7f, 0xe1, 0x67, 0x7f, 0x7e, 0xcb, 0xf5,
+ 0x68, 0x2d, 0xf9, 0xe9, 0xde, 0xae, 0x6a, 0x7e, 0x3e, 0x3d, 0x54, 0x11,
+ 0x24, 0x34, 0x10, 0xcd,
+};
+static const struct drbg_kat_pr_true kat3373_t = {
+ 12, kat3373_entropyin, kat3373_nonce, kat3373_persstr,
+ kat3373_entropyinpr1, kat3373_addinpr1, kat3373_entropyinpr2,
+ kat3373_addinpr2, kat3373_retbits
+};
+static const struct drbg_kat kat3373 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3373_t
+};
+
+static const unsigned char kat3374_entropyin[] = {
+ 0xd5, 0x10, 0xb9, 0x9f, 0xe2, 0xd1, 0x8c, 0x5d, 0x71, 0xa8, 0x9e, 0x46,
+ 0xb8, 0xed, 0x68, 0x91, 0x14, 0xf6, 0xfa, 0xf3, 0xb9, 0x55, 0x60, 0xa3,
+ 0x78, 0x33, 0x1e, 0xec, 0xcc, 0x70, 0x32, 0x11,
+};
+static const unsigned char kat3374_nonce[] = {
+ 0x42, 0x09, 0xd3, 0x29, 0xa9, 0x5f, 0xc3, 0xf0, 0xcc, 0x4d, 0xd9, 0xb5,
+ 0x17, 0xa7, 0x64, 0xfc,
+};
+static const unsigned char kat3374_persstr[] = {0};
+static const unsigned char kat3374_entropyinpr1[] = {
+ 0x84, 0x38, 0x0a, 0x1e, 0x44, 0xc2, 0x1f, 0x59, 0x70, 0x78, 0x17, 0x5e,
+ 0x0b, 0x27, 0x67, 0x98, 0x1e, 0xe1, 0x8b, 0x54, 0xa1, 0x6c, 0xff, 0xde,
+ 0x62, 0x3c, 0x2a, 0x89, 0x52, 0x81, 0x43, 0x8b,
+};
+static const unsigned char kat3374_addinpr1[] = {0};
+static const unsigned char kat3374_entropyinpr2[] = {
+ 0xbd, 0xe5, 0xc6, 0x0c, 0x32, 0x2f, 0xf3, 0x04, 0x7d, 0xc2, 0xbe, 0x51,
+ 0x21, 0xbb, 0x5f, 0xe0, 0x1d, 0x55, 0xc0, 0x7f, 0x48, 0x18, 0x3b, 0x74,
+ 0x7b, 0x1a, 0xfa, 0x7b, 0xc1, 0xb7, 0x9b, 0x03,
+};
+static const unsigned char kat3374_addinpr2[] = {0};
+static const unsigned char kat3374_retbits[] = {
+ 0x31, 0x62, 0x5e, 0xce, 0x09, 0x50, 0xde, 0x3e, 0xf4, 0xb4, 0x99, 0x92,
+ 0x1a, 0x8c, 0xc9, 0x41, 0x18, 0x81, 0x1c, 0x36, 0x44, 0xef, 0x0a, 0xb6,
+ 0xc6, 0x6a, 0x2b, 0x08, 0xf4, 0x96, 0x05, 0x58, 0x2b, 0xf4, 0x7a, 0xe5,
+ 0xdb, 0xa9, 0x31, 0x60, 0x32, 0x80, 0xf5, 0x37, 0x23, 0xe6, 0x82, 0x03,
+ 0xa3, 0x99, 0x10, 0xa5, 0xcb, 0x17, 0x33, 0x5f, 0x2f, 0x99, 0xc2, 0xda,
+ 0x82, 0xe2, 0x70, 0xd0,
+};
+static const struct drbg_kat_pr_true kat3374_t = {
+ 13, kat3374_entropyin, kat3374_nonce, kat3374_persstr,
+ kat3374_entropyinpr1, kat3374_addinpr1, kat3374_entropyinpr2,
+ kat3374_addinpr2, kat3374_retbits
+};
+static const struct drbg_kat kat3374 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3374_t
+};
+
+static const unsigned char kat3375_entropyin[] = {
+ 0xcb, 0x65, 0x79, 0xc0, 0xdd, 0x77, 0xed, 0x68, 0x33, 0x10, 0x4d, 0xf8,
+ 0xe7, 0x78, 0x12, 0xa9, 0x1a, 0x92, 0x41, 0x94, 0xf4, 0xb2, 0x8e, 0x3b,
+ 0xba, 0xd1, 0x1b, 0x3e, 0x36, 0x4a, 0x11, 0x8b,
+};
+static const unsigned char kat3375_nonce[] = {
+ 0xdf, 0x4d, 0x07, 0xd8, 0x3c, 0x4d, 0x90, 0x77, 0x9c, 0x7b, 0xd3, 0xdd,
+ 0xcf, 0xac, 0x2f, 0x3d,
+};
+static const unsigned char kat3375_persstr[] = {0};
+static const unsigned char kat3375_entropyinpr1[] = {
+ 0xc7, 0xc1, 0xca, 0x7e, 0xe0, 0x4e, 0xb6, 0x48, 0xd4, 0x6c, 0x5f, 0x2a,
+ 0xe2, 0x08, 0xe1, 0x46, 0x3a, 0xaa, 0x7f, 0xe4, 0x42, 0xdb, 0x0b, 0x8e,
+ 0x1a, 0xe1, 0x8c, 0x20, 0x4b, 0x61, 0x4a, 0x30,
+};
+static const unsigned char kat3375_addinpr1[] = {0};
+static const unsigned char kat3375_entropyinpr2[] = {
+ 0x72, 0x31, 0x50, 0x8c, 0xfb, 0x7d, 0x0f, 0xe9, 0xaa, 0x9e, 0x5d, 0xe8,
+ 0x0b, 0x22, 0x11, 0xb4, 0x98, 0x44, 0x42, 0x57, 0xba, 0x01, 0x1d, 0x70,
+ 0x6e, 0xe0, 0xaa, 0x35, 0xb2, 0xe2, 0x81, 0x84,
+};
+static const unsigned char kat3375_addinpr2[] = {0};
+static const unsigned char kat3375_retbits[] = {
+ 0xbe, 0x54, 0xef, 0x3d, 0xd1, 0xb7, 0x97, 0x9a, 0xaf, 0x1e, 0xba, 0xde,
+ 0xeb, 0xba, 0x41, 0x45, 0xb6, 0x9f, 0x46, 0x29, 0x84, 0xf7, 0x28, 0x62,
+ 0xcb, 0x45, 0x28, 0xb5, 0xc7, 0x03, 0x76, 0xaa, 0x40, 0xda, 0xd0, 0xfa,
+ 0x9b, 0xde, 0x07, 0xe5, 0x88, 0xef, 0x5b, 0xfc, 0xda, 0x5a, 0x0c, 0x6a,
+ 0xcc, 0xd9, 0xce, 0x77, 0xf4, 0x81, 0x0b, 0xa2, 0xf2, 0xe5, 0xf1, 0x36,
+ 0x3c, 0xab, 0x7c, 0x9f,
+};
+static const struct drbg_kat_pr_true kat3375_t = {
+ 14, kat3375_entropyin, kat3375_nonce, kat3375_persstr,
+ kat3375_entropyinpr1, kat3375_addinpr1, kat3375_entropyinpr2,
+ kat3375_addinpr2, kat3375_retbits
+};
+static const struct drbg_kat kat3375 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3375_t
+};
+
+static const unsigned char kat3376_entropyin[] = {
+ 0xa3, 0x13, 0x37, 0xe0, 0xcb, 0xf2, 0xee, 0x3e, 0x8d, 0x1d, 0x39, 0x32,
+ 0x4c, 0x97, 0x8e, 0x71, 0x4b, 0x5a, 0xcc, 0x67, 0x89, 0x20, 0xd5, 0x83,
+ 0x9f, 0xe9, 0x54, 0x77, 0xca, 0x3b, 0x87, 0x41,
+};
+static const unsigned char kat3376_nonce[] = {
+ 0xa7, 0xf8, 0xb7, 0x70, 0xa5, 0x06, 0xac, 0xfc, 0x79, 0xb2, 0xc4, 0x31,
+ 0x66, 0x0d, 0x31, 0x0f,
+};
+static const unsigned char kat3376_persstr[] = {0};
+static const unsigned char kat3376_entropyinpr1[] = {
+ 0xc2, 0xe4, 0x4d, 0x8b, 0x2c, 0x97, 0xf4, 0xc1, 0x4e, 0x39, 0xc8, 0x13,
+ 0x7c, 0xc6, 0x28, 0x18, 0xf1, 0xa2, 0x23, 0xdd, 0xe1, 0xdf, 0xe9, 0xde,
+ 0xf8, 0x67, 0x2c, 0x2a, 0x6f, 0xab, 0x8c, 0x04,
+};
+static const unsigned char kat3376_addinpr1[] = {
+ 0x54, 0x94, 0x59, 0x7f, 0x0e, 0x86, 0x44, 0xd6, 0x02, 0x84, 0x95, 0xc6,
+ 0x59, 0x99, 0x11, 0xcf, 0x30, 0xfc, 0x96, 0xa1, 0xb9, 0x2a, 0x3a, 0x5d,
+ 0xc8, 0x62, 0xfe, 0xcf, 0xc3, 0x53, 0xc4, 0x3d,
+};
+static const unsigned char kat3376_entropyinpr2[] = {
+ 0x92, 0x34, 0x05, 0xe7, 0x87, 0x8b, 0x3e, 0x20, 0x3c, 0xb5, 0x31, 0xf6,
+ 0x88, 0xc1, 0x07, 0x25, 0xd7, 0xa5, 0x5e, 0xda, 0xcc, 0x2b, 0x9f, 0x19,
+ 0x5f, 0x71, 0x37, 0x08, 0x0b, 0x27, 0x8e, 0xa1,
+};
+static const unsigned char kat3376_addinpr2[] = {
+ 0xe7, 0x63, 0x5b, 0x6f, 0x9e, 0x63, 0xc0, 0x89, 0x42, 0xc4, 0xb5, 0xc8,
+ 0x6b, 0x5e, 0x60, 0xbb, 0xe3, 0xe8, 0x9e, 0xa3, 0x80, 0x9f, 0xb3, 0x93,
+ 0x99, 0x85, 0xc9, 0x3e, 0xed, 0xd1, 0x7f, 0x8d,
+};
+static const unsigned char kat3376_retbits[] = {
+ 0x5d, 0xbd, 0x55, 0xed, 0x2f, 0x6d, 0x6c, 0x17, 0x49, 0x09, 0x6b, 0x40,
+ 0xf6, 0xa9, 0x7d, 0x9c, 0xf4, 0x2c, 0x08, 0x41, 0xb2, 0x7c, 0xe0, 0xef,
+ 0xd7, 0x43, 0x31, 0x10, 0xd8, 0x11, 0x89, 0x55, 0xc8, 0xce, 0xfe, 0xb9,
+ 0xdb, 0x8e, 0x1c, 0x79, 0x61, 0xeb, 0x3f, 0x51, 0x7f, 0x20, 0x47, 0xd2,
+ 0x72, 0x81, 0x26, 0x17, 0x60, 0xa5, 0xe2, 0xb2, 0x45, 0x35, 0xbb, 0x6f,
+ 0x56, 0x5b, 0xb9, 0x71,
+};
+static const struct drbg_kat_pr_true kat3376_t = {
+ 0, kat3376_entropyin, kat3376_nonce, kat3376_persstr,
+ kat3376_entropyinpr1, kat3376_addinpr1, kat3376_entropyinpr2,
+ kat3376_addinpr2, kat3376_retbits
+};
+static const struct drbg_kat kat3376 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3376_t
+};
+
+static const unsigned char kat3377_entropyin[] = {
+ 0xd9, 0xf2, 0xb3, 0xc2, 0x94, 0xf7, 0xc3, 0x2a, 0x9a, 0x66, 0x5f, 0x65,
+ 0xef, 0x7a, 0x95, 0x2d, 0xe2, 0x20, 0x89, 0x2e, 0xe1, 0xa1, 0x0f, 0x6b,
+ 0x87, 0x1b, 0x70, 0x98, 0x35, 0x00, 0xf9, 0x7a,
+};
+static const unsigned char kat3377_nonce[] = {
+ 0x80, 0xf7, 0xf8, 0xaa, 0xce, 0x8b, 0x28, 0xf8, 0xb5, 0x35, 0xeb, 0x9d,
+ 0xd6, 0x3b, 0x17, 0x75,
+};
+static const unsigned char kat3377_persstr[] = {0};
+static const unsigned char kat3377_entropyinpr1[] = {
+ 0x49, 0x6a, 0x1a, 0x11, 0xf8, 0xd8, 0x6c, 0x33, 0x24, 0x32, 0xf1, 0x7e,
+ 0xec, 0x1a, 0xd4, 0x38, 0x77, 0x0f, 0xc7, 0xba, 0xd9, 0xd3, 0xfc, 0x18,
+ 0xda, 0x08, 0xcf, 0x6d, 0x3d, 0x64, 0xc2, 0x30,
+};
+static const unsigned char kat3377_addinpr1[] = {
+ 0x66, 0x33, 0x9f, 0x6e, 0x53, 0x47, 0x61, 0xfe, 0xea, 0x28, 0x3d, 0x46,
+ 0xfb, 0x3f, 0x33, 0xb7, 0x2d, 0x74, 0xd5, 0x98, 0x3a, 0x90, 0xbf, 0xa3,
+ 0xd9, 0xa9, 0xf8, 0x3b, 0x4c, 0xdd, 0x36, 0x1d,
+};
+static const unsigned char kat3377_entropyinpr2[] = {
+ 0x90, 0xa2, 0x58, 0xcf, 0x29, 0x34, 0x84, 0x0d, 0xbd, 0x5f, 0x6b, 0x82,
+ 0x2b, 0x34, 0x70, 0xd7, 0x05, 0xb3, 0x72, 0x20, 0xbd, 0x97, 0xdc, 0x9b,
+ 0xfa, 0x32, 0x0d, 0x96, 0x59, 0xba, 0x4e, 0xe7,
+};
+static const unsigned char kat3377_addinpr2[] = {
+ 0xa2, 0x23, 0xe7, 0xb8, 0xba, 0xa9, 0xba, 0xe1, 0xab, 0x8a, 0x11, 0x4f,
+ 0x98, 0x0d, 0x01, 0xb7, 0x9b, 0x4f, 0xd7, 0xe3, 0xb9, 0x0d, 0xda, 0xf1,
+ 0x3c, 0xe5, 0x0a, 0x13, 0x54, 0x18, 0x63, 0x4c,
+};
+static const unsigned char kat3377_retbits[] = {
+ 0x46, 0xb8, 0x83, 0x5a, 0x0b, 0xb1, 0xa6, 0x1f, 0xe3, 0xc3, 0x29, 0x65,
+ 0x3a, 0x81, 0x77, 0x47, 0x17, 0x4e, 0xd0, 0x50, 0xf6, 0x6f, 0x2e, 0xf5,
+ 0x15, 0x08, 0x3b, 0xad, 0x17, 0xde, 0x83, 0xd8, 0x62, 0x43, 0xad, 0xe7,
+ 0xde, 0xb3, 0xe7, 0x29, 0xd7, 0xea, 0x07, 0x98, 0xba, 0x4a, 0x6e, 0x04,
+ 0x45, 0x6b, 0xed, 0x32, 0x23, 0x54, 0x27, 0x58, 0x36, 0xb2, 0x84, 0x71,
+ 0x26, 0x0a, 0xdf, 0x5d,
+};
+static const struct drbg_kat_pr_true kat3377_t = {
+ 1, kat3377_entropyin, kat3377_nonce, kat3377_persstr,
+ kat3377_entropyinpr1, kat3377_addinpr1, kat3377_entropyinpr2,
+ kat3377_addinpr2, kat3377_retbits
+};
+static const struct drbg_kat kat3377 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3377_t
+};
+
+static const unsigned char kat3378_entropyin[] = {
+ 0xd3, 0x9d, 0x9d, 0x70, 0x2f, 0xbf, 0x59, 0x9e, 0x55, 0xe6, 0x3b, 0x97,
+ 0x0b, 0xbd, 0x1f, 0x18, 0xa1, 0xf3, 0x83, 0x05, 0x53, 0xda, 0x8c, 0x4b,
+ 0xe1, 0xba, 0x7f, 0x4e, 0x1d, 0x50, 0x3f, 0xea,
+};
+static const unsigned char kat3378_nonce[] = {
+ 0x97, 0xc3, 0xd0, 0x72, 0xfc, 0xde, 0xec, 0x21, 0x11, 0xf7, 0x71, 0x07,
+ 0x48, 0xef, 0xd5, 0x9c,
+};
+static const unsigned char kat3378_persstr[] = {0};
+static const unsigned char kat3378_entropyinpr1[] = {
+ 0xd8, 0x13, 0x7d, 0x18, 0xab, 0xde, 0x9b, 0x2a, 0x74, 0x3d, 0xd2, 0xd7,
+ 0x81, 0x16, 0x62, 0xe9, 0x51, 0xb6, 0x75, 0xc4, 0x39, 0x42, 0x1e, 0x5b,
+ 0x06, 0x9c, 0x41, 0x4e, 0x36, 0xcf, 0xff, 0x10,
+};
+static const unsigned char kat3378_addinpr1[] = {
+ 0xff, 0xad, 0xaa, 0x40, 0x16, 0x07, 0x96, 0xb6, 0xee, 0xda, 0xab, 0x1f,
+ 0x70, 0x67, 0x7e, 0xea, 0xd4, 0x2f, 0x19, 0x1a, 0xfb, 0x4c, 0xe5, 0xfe,
+ 0xfc, 0x57, 0x51, 0x02, 0x71, 0xd3, 0x8b, 0xe4,
+};
+static const unsigned char kat3378_entropyinpr2[] = {
+ 0x38, 0x4d, 0x13, 0xb4, 0xcd, 0x26, 0xcf, 0x9a, 0x13, 0x98, 0x32, 0x0f,
+ 0xe4, 0x2c, 0x2b, 0x92, 0x7f, 0xf7, 0xf3, 0xa0, 0xb5, 0x4a, 0xd5, 0xf7,
+ 0x19, 0x56, 0x2b, 0x5f, 0xac, 0x83, 0x2c, 0xb7,
+};
+static const unsigned char kat3378_addinpr2[] = {
+ 0x73, 0x0d, 0x3a, 0x97, 0xf4, 0xb7, 0x53, 0xab, 0x7f, 0x09, 0x75, 0x1c,
+ 0x3e, 0xdc, 0xa0, 0x9d, 0x1d, 0x56, 0xda, 0x18, 0x85, 0xe2, 0x78, 0xd7,
+ 0xc9, 0xfb, 0x7e, 0x53, 0x39, 0xd3, 0xae, 0xfb,
+};
+static const unsigned char kat3378_retbits[] = {
+ 0x71, 0x57, 0x06, 0xf3, 0xcd, 0xc3, 0xae, 0xdb, 0x9b, 0x00, 0x24, 0xd4,
+ 0x57, 0x6e, 0x9d, 0x7e, 0xf9, 0x17, 0x05, 0xed, 0x67, 0x9b, 0x5b, 0x94,
+ 0x47, 0x7e, 0x88, 0x2a, 0x60, 0xcc, 0x00, 0x97, 0x28, 0x02, 0xf8, 0x0f,
+ 0x2a, 0xe4, 0x67, 0x5c, 0x34, 0x3e, 0x2a, 0x23, 0x73, 0x96, 0x98, 0xbf,
+ 0x89, 0x05, 0xd3, 0xf8, 0x3d, 0x1c, 0x2f, 0x1c, 0x89, 0xb5, 0xef, 0x8a,
+ 0xd9, 0x83, 0x6f, 0xfd,
+};
+static const struct drbg_kat_pr_true kat3378_t = {
+ 2, kat3378_entropyin, kat3378_nonce, kat3378_persstr,
+ kat3378_entropyinpr1, kat3378_addinpr1, kat3378_entropyinpr2,
+ kat3378_addinpr2, kat3378_retbits
+};
+static const struct drbg_kat kat3378 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3378_t
+};
+
+static const unsigned char kat3379_entropyin[] = {
+ 0x03, 0x52, 0x0d, 0xdd, 0x04, 0x3b, 0x0b, 0x22, 0x9b, 0x16, 0x27, 0x29,
+ 0x61, 0x20, 0xf0, 0x6a, 0x3b, 0x36, 0x01, 0x76, 0x9c, 0x8e, 0x18, 0x99,
+ 0xb2, 0x79, 0x99, 0xa7, 0x8e, 0x58, 0xea, 0xc3,
+};
+static const unsigned char kat3379_nonce[] = {
+ 0x48, 0x38, 0x94, 0xd8, 0x05, 0xf5, 0x76, 0xca, 0x44, 0xdb, 0xc5, 0xf5,
+ 0x3a, 0xb7, 0xf8, 0x2b,
+};
+static const unsigned char kat3379_persstr[] = {0};
+static const unsigned char kat3379_entropyinpr1[] = {
+ 0x1a, 0x65, 0x3e, 0x9d, 0x2a, 0xab, 0x7c, 0x7b, 0x17, 0xb8, 0x90, 0xb4,
+ 0x58, 0x2d, 0xa6, 0x18, 0x59, 0x03, 0x09, 0x48, 0x4e, 0xc6, 0x30, 0x9e,
+ 0x9d, 0x5c, 0x7b, 0xc4, 0x18, 0x8f, 0x66, 0x2a,
+};
+static const unsigned char kat3379_addinpr1[] = {
+ 0x82, 0x5e, 0x3c, 0xf1, 0x56, 0xaf, 0x5e, 0xa5, 0x78, 0xb9, 0x1d, 0x72,
+ 0x76, 0xe4, 0xae, 0x4b, 0xa4, 0xf0, 0x09, 0xe8, 0xa8, 0xa1, 0xa2, 0xa5,
+ 0x20, 0xcd, 0xa5, 0xbd, 0xb7, 0x04, 0xc8, 0x77,
+};
+static const unsigned char kat3379_entropyinpr2[] = {
+ 0xdb, 0x0d, 0xc2, 0xc0, 0x7d, 0x15, 0xeb, 0x0b, 0x0e, 0x95, 0x62, 0x65,
+ 0x23, 0x2a, 0xf6, 0x96, 0x09, 0x6b, 0x55, 0x00, 0x80, 0xe3, 0x50, 0xc8,
+ 0xd7, 0x39, 0x1a, 0x96, 0x2a, 0xf1, 0x38, 0xed,
+};
+static const unsigned char kat3379_addinpr2[] = {
+ 0xd9, 0x1b, 0x43, 0xc7, 0x0f, 0x15, 0x05, 0xad, 0xe9, 0xde, 0xa6, 0x23,
+ 0x62, 0x7f, 0x3a, 0x75, 0x0e, 0x3a, 0xcd, 0xcd, 0x7a, 0x60, 0x9d, 0xbc,
+ 0x36, 0x66, 0x84, 0x7b, 0xa9, 0x4e, 0x6f, 0x67,
+};
+static const unsigned char kat3379_retbits[] = {
+ 0xd4, 0xcb, 0xb5, 0xf5, 0xb0, 0x2f, 0x57, 0x1a, 0x64, 0xe2, 0x99, 0xee,
+ 0xd7, 0x4d, 0xb8, 0x53, 0x4b, 0x93, 0x73, 0x84, 0x1c, 0xae, 0xeb, 0xaa,
+ 0x85, 0xea, 0x16, 0x4d, 0x78, 0x22, 0x21, 0xbf, 0x0a, 0x6a, 0x87, 0x71,
+ 0x04, 0x55, 0x11, 0x63, 0xa8, 0xb6, 0xa0, 0xd7, 0xf3, 0xbb, 0xf5, 0xd7,
+ 0xab, 0xaf, 0x46, 0x1c, 0x9f, 0xf7, 0xab, 0xf9, 0x9f, 0x01, 0x74, 0x01,
+ 0x69, 0x10, 0xbf, 0x91,
+};
+static const struct drbg_kat_pr_true kat3379_t = {
+ 3, kat3379_entropyin, kat3379_nonce, kat3379_persstr,
+ kat3379_entropyinpr1, kat3379_addinpr1, kat3379_entropyinpr2,
+ kat3379_addinpr2, kat3379_retbits
+};
+static const struct drbg_kat kat3379 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3379_t
+};
+
+static const unsigned char kat3380_entropyin[] = {
+ 0x60, 0xc8, 0x19, 0x9b, 0xfa, 0x57, 0x03, 0x06, 0xf5, 0x45, 0x56, 0x84,
+ 0x47, 0x86, 0x0b, 0xf8, 0x92, 0x82, 0xcc, 0xfc, 0x8e, 0xf8, 0xa2, 0x3e,
+ 0xf0, 0x80, 0xb6, 0x5e, 0xf6, 0x25, 0x7d, 0x96,
+};
+static const unsigned char kat3380_nonce[] = {
+ 0x8b, 0x62, 0xf3, 0x8f, 0x93, 0x62, 0x55, 0x42, 0x69, 0x8f, 0xf7, 0x27,
+ 0x7b, 0x69, 0x07, 0x03,
+};
+static const unsigned char kat3380_persstr[] = {0};
+static const unsigned char kat3380_entropyinpr1[] = {
+ 0x68, 0x5d, 0x84, 0x11, 0xfb, 0x4c, 0x3c, 0xb6, 0x36, 0xa9, 0xaf, 0xcd,
+ 0x68, 0x2c, 0xe8, 0x26, 0x2e, 0x99, 0xb6, 0x31, 0xd2, 0xa3, 0x57, 0xcf,
+ 0x7f, 0xe0, 0xe3, 0x68, 0x4f, 0x8c, 0x9b, 0xaf,
+};
+static const unsigned char kat3380_addinpr1[] = {
+ 0x63, 0x62, 0x9a, 0xae, 0xe0, 0x7f, 0xa8, 0x54, 0x66, 0xea, 0x16, 0x96,
+ 0x4d, 0x79, 0xf6, 0x4b, 0xfc, 0xde, 0x89, 0xdd, 0xf1, 0x4c, 0xd4, 0x55,
+ 0x3c, 0xf7, 0x91, 0xbf, 0xe9, 0x56, 0x8f, 0x5a,
+};
+static const unsigned char kat3380_entropyinpr2[] = {
+ 0x89, 0xfc, 0x1b, 0xef, 0xee, 0x86, 0xc4, 0x3d, 0xe4, 0x34, 0x56, 0x5b,
+ 0xb1, 0x7f, 0xee, 0xb5, 0x34, 0x7a, 0x01, 0xca, 0x1d, 0x6d, 0x96, 0x1d,
+ 0x73, 0x01, 0x13, 0x08, 0x54, 0xbe, 0x61, 0xf4,
+};
+static const unsigned char kat3380_addinpr2[] = {
+ 0xff, 0x08, 0x7b, 0xd4, 0xf5, 0x83, 0x26, 0x8e, 0x20, 0xe7, 0x48, 0x63,
+ 0xd9, 0x6a, 0x3e, 0x56, 0xa5, 0x46, 0x22, 0x65, 0x2f, 0xbb, 0x71, 0x0d,
+ 0xd8, 0x9c, 0xc2, 0xe8, 0x39, 0xe2, 0xc7, 0x37,
+};
+static const unsigned char kat3380_retbits[] = {
+ 0xbd, 0x01, 0xc3, 0xe2, 0x35, 0x48, 0xfb, 0x30, 0x76, 0xdb, 0x9a, 0xe7,
+ 0x2c, 0x2c, 0xd6, 0x1b, 0xfc, 0x6c, 0x92, 0xc4, 0xab, 0xe2, 0x61, 0x96,
+ 0x9a, 0xaf, 0x54, 0xd3, 0x60, 0x3f, 0xd3, 0xa1, 0xec, 0xb7, 0xf0, 0x78,
+ 0xce, 0x29, 0x1a, 0x98, 0xa2, 0x57, 0xf8, 0xa9, 0xe8, 0xb2, 0x55, 0xaf,
+ 0x40, 0x3c, 0x3f, 0xf7, 0x2f, 0x09, 0x1c, 0x04, 0xd7, 0x02, 0x77, 0x88,
+ 0xc2, 0xea, 0x5b, 0xd6,
+};
+static const struct drbg_kat_pr_true kat3380_t = {
+ 4, kat3380_entropyin, kat3380_nonce, kat3380_persstr,
+ kat3380_entropyinpr1, kat3380_addinpr1, kat3380_entropyinpr2,
+ kat3380_addinpr2, kat3380_retbits
+};
+static const struct drbg_kat kat3380 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3380_t
+};
+
+static const unsigned char kat3381_entropyin[] = {
+ 0x05, 0x4e, 0x48, 0x5b, 0x9e, 0xf4, 0x3c, 0x22, 0x74, 0x18, 0x5d, 0xdb,
+ 0x02, 0x8f, 0x63, 0xbe, 0x49, 0xa6, 0x51, 0xdf, 0x02, 0xf8, 0xd3, 0x82,
+ 0x2c, 0xcb, 0x48, 0x1d, 0xeb, 0xb9, 0x91, 0x77,
+};
+static const unsigned char kat3381_nonce[] = {
+ 0x5e, 0x2b, 0xf7, 0x58, 0xb9, 0xf1, 0x32, 0x2c, 0xb8, 0x16, 0xa8, 0x2a,
+ 0x2e, 0x12, 0xa4, 0x5e,
+};
+static const unsigned char kat3381_persstr[] = {0};
+static const unsigned char kat3381_entropyinpr1[] = {
+ 0x4a, 0x28, 0xb7, 0xef, 0x75, 0x5a, 0xc4, 0xf7, 0x0a, 0x96, 0x37, 0x99,
+ 0x10, 0xe6, 0x2d, 0x7b, 0x55, 0x88, 0x42, 0x48, 0x4d, 0xde, 0x1a, 0x9a,
+ 0x84, 0x37, 0x64, 0x33, 0xfd, 0x22, 0xa8, 0xf5,
+};
+static const unsigned char kat3381_addinpr1[] = {
+ 0xe0, 0x52, 0xd7, 0x34, 0x16, 0xfc, 0x25, 0xb9, 0x71, 0x60, 0x18, 0xa6,
+ 0x20, 0x2c, 0xe8, 0x99, 0xe0, 0xcd, 0x57, 0x3e, 0xc3, 0x78, 0x43, 0xd2,
+ 0x30, 0x06, 0x13, 0xed, 0x5c, 0x2d, 0x4f, 0xed,
+};
+static const unsigned char kat3381_entropyinpr2[] = {
+ 0xad, 0x33, 0x2f, 0x07, 0xf3, 0x6d, 0xc1, 0xf8, 0x07, 0x70, 0x94, 0xa7,
+ 0xa4, 0xd2, 0xf9, 0x20, 0x38, 0xbc, 0x4b, 0x23, 0x79, 0x31, 0x59, 0xcb,
+ 0x39, 0x1f, 0x11, 0x45, 0xdb, 0x9c, 0x0b, 0x36,
+};
+static const unsigned char kat3381_addinpr2[] = {
+ 0xf8, 0xf6, 0x5a, 0xb9, 0xb1, 0x1e, 0x2e, 0xa8, 0xf4, 0x6e, 0xea, 0xfb,
+ 0xef, 0x2a, 0x8a, 0x17, 0xdd, 0x0d, 0xdd, 0x4b, 0x3c, 0x5f, 0x75, 0xf5,
+ 0x71, 0x6d, 0x21, 0xdb, 0xcb, 0x73, 0x82, 0x91,
+};
+static const unsigned char kat3381_retbits[] = {
+ 0x61, 0xb4, 0xea, 0xa4, 0x5b, 0xaa, 0x22, 0xb6, 0x85, 0x09, 0xcf, 0x76,
+ 0xe4, 0xcc, 0xc5, 0xbc, 0x55, 0x0b, 0x4e, 0x10, 0x24, 0x72, 0xed, 0x31,
+ 0xd2, 0x87, 0xcf, 0xbb, 0x9c, 0x9b, 0xbf, 0xdb, 0xd2, 0xf9, 0x63, 0x3a,
+ 0x3f, 0x11, 0x24, 0xf2, 0x18, 0xd7, 0xd3, 0x6c, 0xd4, 0xf8, 0x01, 0xd7,
+ 0xe5, 0xb8, 0xee, 0xa6, 0x4b, 0x80, 0x18, 0x11, 0x28, 0x68, 0xa2, 0x6c,
+ 0x1a, 0x0d, 0x0c, 0xc6,
+};
+static const struct drbg_kat_pr_true kat3381_t = {
+ 5, kat3381_entropyin, kat3381_nonce, kat3381_persstr,
+ kat3381_entropyinpr1, kat3381_addinpr1, kat3381_entropyinpr2,
+ kat3381_addinpr2, kat3381_retbits
+};
+static const struct drbg_kat kat3381 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3381_t
+};
+
+static const unsigned char kat3382_entropyin[] = {
+ 0xd2, 0x26, 0x71, 0x02, 0x4d, 0xcb, 0x5d, 0xf2, 0xee, 0x4f, 0x29, 0x3f,
+ 0xfe, 0x3d, 0xea, 0xac, 0x81, 0xad, 0xb0, 0xe3, 0xe9, 0xf4, 0xc6, 0x72,
+ 0x32, 0x23, 0xd2, 0x0b, 0xaf, 0x89, 0xac, 0x0f,
+};
+static const unsigned char kat3382_nonce[] = {
+ 0x17, 0x3c, 0xb7, 0xce, 0x36, 0x87, 0xbf, 0xf6, 0x39, 0xff, 0xf8, 0x54,
+ 0x46, 0x06, 0x79, 0x4a,
+};
+static const unsigned char kat3382_persstr[] = {0};
+static const unsigned char kat3382_entropyinpr1[] = {
+ 0xbb, 0x4a, 0x0d, 0xcb, 0x40, 0x76, 0xe3, 0x42, 0x8d, 0xb1, 0x5c, 0xc7,
+ 0x50, 0x82, 0x85, 0xaf, 0x2f, 0x52, 0x17, 0xf6, 0xdb, 0x28, 0xce, 0xff,
+ 0x93, 0xe1, 0xfe, 0x8f, 0x44, 0x95, 0x64, 0xc6,
+};
+static const unsigned char kat3382_addinpr1[] = {
+ 0x34, 0xd4, 0x7a, 0xe5, 0x81, 0x9c, 0xfd, 0x6d, 0xa3, 0x26, 0xf3, 0xe8,
+ 0x99, 0x09, 0x98, 0x9d, 0x0a, 0x32, 0xc2, 0x06, 0x4d, 0x3e, 0x6e, 0xde,
+ 0x31, 0xc6, 0x8c, 0xff, 0xcd, 0xdb, 0x86, 0x20,
+};
+static const unsigned char kat3382_entropyinpr2[] = {
+ 0x0b, 0xbb, 0x4b, 0x34, 0xe8, 0xa4, 0xc9, 0xe4, 0x39, 0xbf, 0x9e, 0xce,
+ 0x4d, 0x5f, 0x44, 0xdf, 0x56, 0x46, 0xdb, 0x61, 0x8b, 0x70, 0xdf, 0xe6,
+ 0xf5, 0xc3, 0x03, 0x2d, 0x81, 0x4c, 0xc4, 0xf4,
+};
+static const unsigned char kat3382_addinpr2[] = {
+ 0x42, 0xcd, 0xef, 0xf9, 0xf5, 0x29, 0x7a, 0x70, 0x8f, 0xa7, 0xc1, 0x6a,
+ 0x93, 0x1a, 0x1a, 0x62, 0x78, 0x1f, 0xbc, 0xbd, 0xb0, 0x37, 0xe4, 0xd3,
+ 0xf7, 0x8b, 0x29, 0x55, 0x23, 0xba, 0x87, 0x5f,
+};
+static const unsigned char kat3382_retbits[] = {
+ 0x1e, 0xca, 0xee, 0x88, 0x88, 0x79, 0x1c, 0xb5, 0x20, 0xcf, 0x91, 0x8c,
+ 0xdb, 0xb9, 0x48, 0xad, 0x4b, 0xcb, 0x89, 0x68, 0x1b, 0x22, 0xf8, 0xa5,
+ 0x13, 0x3b, 0x71, 0x84, 0x8e, 0x78, 0xf2, 0x17, 0x3f, 0xcb, 0xee, 0xb1,
+ 0x06, 0xa6, 0x20, 0x09, 0x2a, 0x12, 0x7f, 0x0d, 0x79, 0x43, 0xbb, 0x0d,
+ 0xce, 0x6d, 0x5c, 0xf2, 0xfe, 0x47, 0xc7, 0x80, 0xc8, 0xf8, 0xe3, 0xa1,
+ 0xca, 0x75, 0xef, 0x0e,
+};
+static const struct drbg_kat_pr_true kat3382_t = {
+ 6, kat3382_entropyin, kat3382_nonce, kat3382_persstr,
+ kat3382_entropyinpr1, kat3382_addinpr1, kat3382_entropyinpr2,
+ kat3382_addinpr2, kat3382_retbits
+};
+static const struct drbg_kat kat3382 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3382_t
+};
+
+static const unsigned char kat3383_entropyin[] = {
+ 0xc8, 0x0c, 0x8f, 0xe8, 0x07, 0xc4, 0x28, 0x01, 0x72, 0x25, 0xa5, 0xc2,
+ 0x47, 0x2b, 0x6e, 0x00, 0xe7, 0x18, 0x68, 0x27, 0x05, 0x01, 0xd7, 0x04,
+ 0x7b, 0x49, 0x2c, 0x85, 0x83, 0x9e, 0x17, 0x5f,
+};
+static const unsigned char kat3383_nonce[] = {
+ 0x20, 0x82, 0xa7, 0x24, 0x4a, 0x51, 0xfd, 0x6a, 0x19, 0x90, 0x80, 0x34,
+ 0xc5, 0x68, 0x48, 0x69,
+};
+static const unsigned char kat3383_persstr[] = {0};
+static const unsigned char kat3383_entropyinpr1[] = {
+ 0x38, 0x61, 0x69, 0x44, 0x09, 0x25, 0x05, 0x37, 0xc2, 0xff, 0xad, 0x39,
+ 0x0f, 0xb8, 0x7e, 0xc5, 0xf3, 0x60, 0x62, 0xbd, 0xef, 0x34, 0xf9, 0x7a,
+ 0x67, 0xc4, 0x0e, 0x71, 0xef, 0x67, 0x8e, 0x2d,
+};
+static const unsigned char kat3383_addinpr1[] = {
+ 0x62, 0xfa, 0x4f, 0x96, 0xd3, 0xeb, 0xa7, 0x1a, 0x9d, 0xbb, 0x0b, 0x20,
+ 0x5a, 0x17, 0x9f, 0xb3, 0xcb, 0xbb, 0x63, 0xa8, 0xa1, 0x51, 0x96, 0x56,
+ 0xec, 0x20, 0x50, 0x07, 0x42, 0x46, 0x40, 0x0d,
+};
+static const unsigned char kat3383_entropyinpr2[] = {
+ 0x8f, 0x0d, 0x69, 0x05, 0xca, 0x5d, 0x20, 0x01, 0x99, 0xe2, 0xec, 0x52,
+ 0xfb, 0xc1, 0x05, 0x87, 0xce, 0x81, 0x0e, 0x64, 0xd6, 0x9f, 0x29, 0x5b,
+ 0x15, 0x6f, 0x18, 0x8f, 0x84, 0xbd, 0xdb, 0xf0,
+};
+static const unsigned char kat3383_addinpr2[] = {
+ 0x0d, 0x02, 0xf7, 0x49, 0xd2, 0xfa, 0x74, 0x67, 0xbd, 0xe1, 0x65, 0x5c,
+ 0x93, 0xa9, 0x55, 0x17, 0x78, 0x8a, 0xf0, 0xef, 0xef, 0x0e, 0xbc, 0xff,
+ 0xe8, 0x58, 0x3f, 0x4f, 0xdf, 0x6f, 0xf2, 0x3e,
+};
+static const unsigned char kat3383_retbits[] = {
+ 0xce, 0x17, 0x56, 0xc7, 0x56, 0xb8, 0x33, 0x4f, 0x21, 0xb5, 0xa6, 0x12,
+ 0x12, 0x97, 0x75, 0xa6, 0x62, 0xeb, 0xde, 0x56, 0xe9, 0x99, 0x36, 0x52,
+ 0x72, 0x73, 0x65, 0x85, 0x06, 0x1b, 0x66, 0xd5, 0x30, 0xa0, 0xc0, 0x2c,
+ 0x24, 0xc7, 0x14, 0x5d, 0x53, 0x1e, 0xc6, 0xfc, 0x5f, 0x46, 0x06, 0x96,
+ 0x51, 0x63, 0xb2, 0x1f, 0xf6, 0x63, 0xbe, 0x1c, 0xcc, 0x5f, 0x33, 0xd9,
+ 0x23, 0xa4, 0x2a, 0x49,
+};
+static const struct drbg_kat_pr_true kat3383_t = {
+ 7, kat3383_entropyin, kat3383_nonce, kat3383_persstr,
+ kat3383_entropyinpr1, kat3383_addinpr1, kat3383_entropyinpr2,
+ kat3383_addinpr2, kat3383_retbits
+};
+static const struct drbg_kat kat3383 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3383_t
+};
+
+static const unsigned char kat3384_entropyin[] = {
+ 0x52, 0x14, 0x28, 0xbc, 0xe4, 0xbd, 0x59, 0xb3, 0xbd, 0xf0, 0xc2, 0x20,
+ 0x96, 0xf8, 0x50, 0x0f, 0xf0, 0x79, 0xf5, 0xe9, 0xad, 0x47, 0x26, 0x44,
+ 0x55, 0x65, 0x70, 0x59, 0xf5, 0x2f, 0x58, 0x69,
+};
+static const unsigned char kat3384_nonce[] = {
+ 0x88, 0x36, 0xb6, 0xa6, 0xae, 0xaa, 0x60, 0x01, 0x27, 0x67, 0x68, 0xb6,
+ 0xc8, 0xca, 0xc2, 0x32,
+};
+static const unsigned char kat3384_persstr[] = {0};
+static const unsigned char kat3384_entropyinpr1[] = {
+ 0x2b, 0xcd, 0x59, 0xcf, 0x48, 0xf6, 0x9a, 0xb7, 0x72, 0x56, 0x44, 0x6a,
+ 0xe6, 0x34, 0x77, 0x46, 0x15, 0xa8, 0x5e, 0xfa, 0xfc, 0xf0, 0xb0, 0x56,
+ 0xfa, 0x0f, 0x5d, 0x02, 0x35, 0xd7, 0x9f, 0xd1,
+};
+static const unsigned char kat3384_addinpr1[] = {
+ 0x31, 0x79, 0xda, 0xef, 0x3c, 0x3e, 0x53, 0x09, 0x4f, 0x7e, 0xe6, 0x21,
+ 0x3f, 0xf7, 0x43, 0x33, 0xc9, 0x8d, 0x3a, 0x06, 0x98, 0xaf, 0xf9, 0x97,
+ 0xec, 0x3c, 0x40, 0x87, 0x67, 0x6b, 0xe7, 0x3f,
+};
+static const unsigned char kat3384_entropyinpr2[] = {
+ 0x4d, 0x29, 0x60, 0x7e, 0x27, 0x0c, 0x98, 0xa5, 0x41, 0x45, 0xb6, 0x58,
+ 0xd9, 0x21, 0x67, 0x35, 0x0f, 0xf1, 0x0c, 0xab, 0x78, 0xe9, 0x59, 0x58,
+ 0xd1, 0x8a, 0x10, 0xe4, 0xfc, 0x48, 0xe1, 0x2a,
+};
+static const unsigned char kat3384_addinpr2[] = {
+ 0xb6, 0x51, 0xbd, 0xcb, 0xf5, 0x9a, 0x75, 0x44, 0x81, 0xe8, 0xae, 0x5c,
+ 0xc7, 0x81, 0xbf, 0x4b, 0x40, 0x86, 0x55, 0xbd, 0xb6, 0x9d, 0x5a, 0x68,
+ 0x3a, 0xa9, 0x6d, 0xe0, 0x36, 0xaa, 0x18, 0x4b,
+};
+static const unsigned char kat3384_retbits[] = {
+ 0x5e, 0xf6, 0x9a, 0xef, 0x75, 0x83, 0xe9, 0x87, 0xc5, 0x02, 0x3a, 0x77,
+ 0x4c, 0x3c, 0xfa, 0x90, 0x4b, 0xdc, 0xd1, 0xa8, 0x41, 0x36, 0x49, 0x88,
+ 0x4e, 0xe2, 0x6b, 0xe0, 0x3f, 0xde, 0x12, 0xcd, 0x2d, 0x0c, 0xad, 0x61,
+ 0xa2, 0x73, 0x8f, 0x3f, 0xec, 0xf7, 0xf4, 0xb1, 0xd9, 0xea, 0x1d, 0x6d,
+ 0x83, 0x0c, 0xf9, 0x9a, 0x6b, 0xab, 0x25, 0xd5, 0x56, 0x8d, 0xa2, 0xbb,
+ 0x18, 0x0d, 0xcf, 0x7c,
+};
+static const struct drbg_kat_pr_true kat3384_t = {
+ 8, kat3384_entropyin, kat3384_nonce, kat3384_persstr,
+ kat3384_entropyinpr1, kat3384_addinpr1, kat3384_entropyinpr2,
+ kat3384_addinpr2, kat3384_retbits
+};
+static const struct drbg_kat kat3384 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3384_t
+};
+
+static const unsigned char kat3385_entropyin[] = {
+ 0x0c, 0x6a, 0x28, 0x09, 0xb3, 0x52, 0x7b, 0xd9, 0x8e, 0x4e, 0x50, 0xf7,
+ 0xe0, 0xe2, 0x92, 0x7c, 0x14, 0xd8, 0x22, 0xb7, 0x1d, 0xb0, 0xd0, 0x7f,
+ 0x7f, 0x1f, 0x6d, 0x88, 0x04, 0x22, 0xfc, 0xb9,
+};
+static const unsigned char kat3385_nonce[] = {
+ 0x6a, 0x13, 0x68, 0x51, 0x87, 0xd9, 0x3a, 0x3d, 0xa6, 0xed, 0x6d, 0xfe,
+ 0xe2, 0xce, 0x28, 0xfc,
+};
+static const unsigned char kat3385_persstr[] = {0};
+static const unsigned char kat3385_entropyinpr1[] = {
+ 0x3f, 0x1e, 0x55, 0x89, 0x89, 0x08, 0x56, 0x09, 0xa3, 0x64, 0x2c, 0xeb,
+ 0xbb, 0x82, 0x1a, 0x8b, 0xe6, 0x92, 0x6c, 0x54, 0xc2, 0xe0, 0x5c, 0x29,
+ 0x6e, 0x6d, 0x7e, 0x94, 0x10, 0x5d, 0x1f, 0xf5,
+};
+static const unsigned char kat3385_addinpr1[] = {
+ 0x7e, 0x85, 0xf4, 0xac, 0x00, 0xbb, 0x6c, 0x86, 0xb4, 0x77, 0x01, 0x99,
+ 0x56, 0xc6, 0xdd, 0xc1, 0x28, 0x0f, 0xf1, 0x31, 0x42, 0x99, 0xd3, 0x17,
+ 0xdd, 0xb1, 0x71, 0x61, 0x52, 0x4b, 0x74, 0x38,
+};
+static const unsigned char kat3385_entropyinpr2[] = {
+ 0x70, 0x8d, 0x35, 0xcf, 0x39, 0x83, 0x83, 0x98, 0x1e, 0x84, 0x66, 0xeb,
+ 0x80, 0x4f, 0x14, 0x73, 0x5b, 0xb5, 0x29, 0x39, 0x90, 0x11, 0x28, 0xbb,
+ 0xe9, 0x29, 0x68, 0x63, 0x38, 0x43, 0x24, 0x71,
+};
+static const unsigned char kat3385_addinpr2[] = {
+ 0x4c, 0x2e, 0xf9, 0x39, 0xce, 0xef, 0xd0, 0xe3, 0x12, 0xf8, 0x7b, 0x34,
+ 0xad, 0xb3, 0x7c, 0x1d, 0x10, 0x33, 0x01, 0x1d, 0x36, 0x76, 0x86, 0x4e,
+ 0x70, 0x70, 0x5f, 0x70, 0xf3, 0x66, 0xfb, 0x29,
+};
+static const unsigned char kat3385_retbits[] = {
+ 0x80, 0xcc, 0x65, 0xb5, 0x41, 0xd1, 0xf8, 0xe0, 0xf7, 0xa3, 0x93, 0x0e,
+ 0x87, 0xeb, 0x10, 0x2f, 0xc0, 0x81, 0xd3, 0x95, 0x5d, 0x3c, 0x73, 0x5a,
+ 0x93, 0x80, 0x17, 0x79, 0xc7, 0x53, 0x57, 0x46, 0xb8, 0x6f, 0x26, 0x36,
+ 0x78, 0x22, 0xfa, 0xc3, 0xd6, 0xd4, 0x87, 0x12, 0xcf, 0xdb, 0xee, 0x0e,
+ 0xf3, 0xf3, 0x50, 0x65, 0x27, 0xf4, 0x26, 0xbb, 0x4f, 0xb6, 0xb1, 0x46,
+ 0xab, 0xfb, 0x55, 0xbb,
+};
+static const struct drbg_kat_pr_true kat3385_t = {
+ 9, kat3385_entropyin, kat3385_nonce, kat3385_persstr,
+ kat3385_entropyinpr1, kat3385_addinpr1, kat3385_entropyinpr2,
+ kat3385_addinpr2, kat3385_retbits
+};
+static const struct drbg_kat kat3385 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3385_t
+};
+
+static const unsigned char kat3386_entropyin[] = {
+ 0x04, 0x8c, 0x22, 0xa3, 0xcc, 0xa7, 0xd6, 0xf1, 0x69, 0x42, 0x19, 0x91,
+ 0xfd, 0xa9, 0x00, 0xac, 0x8b, 0xe5, 0xae, 0x75, 0x54, 0xef, 0xd9, 0x25,
+ 0x3c, 0x52, 0xa6, 0x3f, 0xac, 0x5e, 0xae, 0xe6,
+};
+static const unsigned char kat3386_nonce[] = {
+ 0x4a, 0xaf, 0xc3, 0x10, 0x7b, 0x59, 0xe2, 0xf3, 0xc0, 0x2c, 0xdb, 0x0e,
+ 0xd5, 0xba, 0x84, 0x8f,
+};
+static const unsigned char kat3386_persstr[] = {0};
+static const unsigned char kat3386_entropyinpr1[] = {
+ 0x16, 0x2b, 0x46, 0x1f, 0xcf, 0x56, 0x72, 0x49, 0xca, 0xee, 0x3f, 0x10,
+ 0x23, 0x35, 0x90, 0xe4, 0xa4, 0x58, 0x90, 0x45, 0x54, 0x26, 0xba, 0x54,
+ 0x49, 0x20, 0x67, 0x6e, 0x3f, 0x88, 0x70, 0xd0,
+};
+static const unsigned char kat3386_addinpr1[] = {
+ 0x29, 0x22, 0x1f, 0x30, 0x90, 0x24, 0xab, 0x8c, 0x64, 0x16, 0x39, 0x36,
+ 0x26, 0xfd, 0xa8, 0xf1, 0xf8, 0x58, 0x5a, 0x98, 0x66, 0x72, 0xc2, 0x90,
+ 0x5f, 0x9e, 0xb7, 0xc5, 0x3d, 0x01, 0x87, 0xe6,
+};
+static const unsigned char kat3386_entropyinpr2[] = {
+ 0x3d, 0xdb, 0xb0, 0x26, 0xb7, 0x61, 0x94, 0x9b, 0x58, 0x7a, 0xe4, 0xcf,
+ 0xb7, 0x64, 0xc5, 0xe2, 0x14, 0x9f, 0x7e, 0xba, 0xa8, 0x19, 0x21, 0x2a,
+ 0x6f, 0xff, 0x71, 0xa7, 0x57, 0x1e, 0x7b, 0x27,
+};
+static const unsigned char kat3386_addinpr2[] = {
+ 0x56, 0x84, 0x43, 0x99, 0x9e, 0x55, 0x6e, 0x9d, 0x7e, 0x4d, 0x67, 0x14,
+ 0xc5, 0x2c, 0x32, 0xf0, 0x5a, 0x29, 0x7d, 0x13, 0x69, 0x9c, 0x8d, 0xd9,
+ 0x7d, 0x9c, 0xb3, 0xc4, 0x92, 0x2b, 0x19, 0xe1,
+};
+static const unsigned char kat3386_retbits[] = {
+ 0x9d, 0xb1, 0x29, 0x3d, 0x4d, 0xb9, 0xf7, 0xe4, 0x9f, 0x5f, 0x29, 0xdb,
+ 0x60, 0x56, 0xa3, 0x44, 0x13, 0x71, 0x45, 0x89, 0x72, 0xf1, 0x65, 0x3a,
+ 0x3f, 0xfe, 0xa9, 0xc6, 0x5f, 0x20, 0xa7, 0x66, 0x27, 0x32, 0xf2, 0xa4,
+ 0x81, 0xcf, 0x2a, 0xd5, 0xb8, 0x6f, 0xbb, 0xa8, 0x5d, 0x9f, 0x72, 0x5f,
+ 0xc0, 0xd1, 0x02, 0xa4, 0x05, 0x80, 0x17, 0x94, 0x98, 0xe7, 0x21, 0x24,
+ 0x3a, 0x76, 0xc1, 0x4e,
+};
+static const struct drbg_kat_pr_true kat3386_t = {
+ 10, kat3386_entropyin, kat3386_nonce, kat3386_persstr,
+ kat3386_entropyinpr1, kat3386_addinpr1, kat3386_entropyinpr2,
+ kat3386_addinpr2, kat3386_retbits
+};
+static const struct drbg_kat kat3386 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3386_t
+};
+
+static const unsigned char kat3387_entropyin[] = {
+ 0xf3, 0xf1, 0xb4, 0xa1, 0x94, 0x2c, 0x88, 0xd6, 0x32, 0x9f, 0x3b, 0x64,
+ 0x20, 0x49, 0x2d, 0x30, 0x6c, 0x0a, 0x52, 0x08, 0x4a, 0xd2, 0x59, 0xdc,
+ 0xfe, 0xdc, 0xdb, 0xb8, 0xfd, 0x7c, 0xf1, 0xba,
+};
+static const unsigned char kat3387_nonce[] = {
+ 0x05, 0x80, 0xc4, 0xa9, 0x40, 0xf2, 0xed, 0xc0, 0x90, 0x43, 0xed, 0x2c,
+ 0x63, 0x94, 0x09, 0xfd,
+};
+static const unsigned char kat3387_persstr[] = {0};
+static const unsigned char kat3387_entropyinpr1[] = {
+ 0x5a, 0xdb, 0xb2, 0xe9, 0x88, 0xfb, 0xba, 0x65, 0xca, 0x4e, 0x63, 0x4a,
+ 0xcf, 0x63, 0x4f, 0xd8, 0x0b, 0xc0, 0x16, 0x08, 0xc9, 0x8a, 0x28, 0x9c,
+ 0x19, 0x57, 0x04, 0x22, 0xd4, 0x4b, 0x48, 0x0c,
+};
+static const unsigned char kat3387_addinpr1[] = {
+ 0xf8, 0xd0, 0x95, 0x8f, 0xe0, 0x37, 0xae, 0xfe, 0x31, 0x97, 0xe1, 0x12,
+ 0xaf, 0xf2, 0x08, 0xea, 0x78, 0xc3, 0x0f, 0x63, 0xb5, 0x9a, 0x76, 0xdd,
+ 0x3f, 0xfc, 0xbd, 0x9a, 0xba, 0x8d, 0x2e, 0xea,
+};
+static const unsigned char kat3387_entropyinpr2[] = {
+ 0x87, 0x3c, 0x57, 0x2e, 0x17, 0x24, 0x14, 0x78, 0x56, 0xb9, 0x1b, 0xde,
+ 0xed, 0x82, 0xf7, 0x6c, 0x2a, 0xde, 0x71, 0xf7, 0x0f, 0x16, 0x7d, 0x8b,
+ 0x0b, 0xed, 0x6a, 0xc3, 0x3d, 0x7f, 0xd5, 0x7e,
+};
+static const unsigned char kat3387_addinpr2[] = {
+ 0x72, 0xe5, 0xe9, 0xa8, 0x40, 0x0e, 0xf6, 0x9c, 0x85, 0x57, 0x52, 0x97,
+ 0xae, 0xad, 0x7a, 0x79, 0x20, 0x73, 0xc9, 0xd6, 0x59, 0x64, 0xa3, 0x11,
+ 0x8e, 0x31, 0x90, 0x44, 0xb1, 0x49, 0xba, 0x27,
+};
+static const unsigned char kat3387_retbits[] = {
+ 0x79, 0x56, 0x5b, 0x44, 0x13, 0xd0, 0xc6, 0x33, 0x94, 0xc5, 0x29, 0x96,
+ 0xae, 0xa4, 0xcc, 0xf3, 0xf2, 0xf8, 0x2e, 0xab, 0x7d, 0x0a, 0xb0, 0x4b,
+ 0x34, 0x9a, 0x87, 0xb2, 0x38, 0x05, 0xe8, 0x5d, 0xb9, 0xcb, 0x32, 0x91,
+ 0xb6, 0x44, 0x8b, 0xdd, 0x2e, 0x77, 0x2e, 0x97, 0xfd, 0x12, 0x47, 0x96,
+ 0x0e, 0x93, 0x71, 0xb4, 0x14, 0x88, 0x22, 0x28, 0xc2, 0x6c, 0xa5, 0xe2,
+ 0xe3, 0xcb, 0x69, 0xc3,
+};
+static const struct drbg_kat_pr_true kat3387_t = {
+ 11, kat3387_entropyin, kat3387_nonce, kat3387_persstr,
+ kat3387_entropyinpr1, kat3387_addinpr1, kat3387_entropyinpr2,
+ kat3387_addinpr2, kat3387_retbits
+};
+static const struct drbg_kat kat3387 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3387_t
+};
+
+static const unsigned char kat3388_entropyin[] = {
+ 0x53, 0x76, 0x51, 0x0b, 0xef, 0xbf, 0x7f, 0xb9, 0x27, 0x3f, 0xba, 0x26,
+ 0x1d, 0xab, 0x50, 0x5f, 0x6e, 0xb2, 0xe5, 0x29, 0x1d, 0x5c, 0x9f, 0xe4,
+ 0xf6, 0x8b, 0x98, 0xea, 0xe5, 0xb2, 0xb4, 0xd8,
+};
+static const unsigned char kat3388_nonce[] = {
+ 0x1e, 0x33, 0x04, 0x90, 0xcd, 0x10, 0x71, 0x1b, 0xf5, 0x1e, 0x65, 0x8b,
+ 0x65, 0x70, 0xad, 0x52,
+};
+static const unsigned char kat3388_persstr[] = {0};
+static const unsigned char kat3388_entropyinpr1[] = {
+ 0x32, 0x32, 0xd2, 0x0c, 0xaf, 0xcb, 0xe2, 0xf2, 0xa7, 0x67, 0x62, 0xc5,
+ 0x17, 0x79, 0x21, 0x8c, 0xd7, 0x87, 0xd4, 0x14, 0x26, 0x93, 0x47, 0xf6,
+ 0x35, 0xe4, 0xa7, 0xcb, 0x1a, 0xcb, 0x98, 0xf4,
+};
+static const unsigned char kat3388_addinpr1[] = {
+ 0xa0, 0x45, 0xab, 0x54, 0x6c, 0x97, 0x2e, 0x57, 0xbb, 0x99, 0x1d, 0x65,
+ 0xd7, 0xd3, 0x84, 0x55, 0x7d, 0x78, 0xc6, 0xe5, 0xc3, 0x76, 0x43, 0xf0,
+ 0xde, 0xab, 0xba, 0xfa, 0x25, 0x18, 0x9c, 0x5d,
+};
+static const unsigned char kat3388_entropyinpr2[] = {
+ 0xae, 0x06, 0x16, 0x7f, 0xa0, 0xd7, 0x10, 0x9b, 0x0d, 0x12, 0x40, 0x91,
+ 0x58, 0x77, 0xd7, 0x1c, 0x6e, 0x24, 0x5a, 0x9e, 0x74, 0x22, 0xfd, 0xb9,
+ 0x3b, 0x9b, 0xa3, 0xe0, 0xaa, 0xe6, 0xe5, 0x8a,
+};
+static const unsigned char kat3388_addinpr2[] = {
+ 0xa7, 0x3d, 0x00, 0x7f, 0x14, 0xd9, 0x0e, 0x2e, 0x09, 0x1a, 0x44, 0xbe,
+ 0x04, 0x17, 0xfb, 0x8e, 0x2c, 0x30, 0x0e, 0xcf, 0x94, 0xd6, 0x8f, 0xb5,
+ 0xdf, 0x5a, 0x99, 0x18, 0x24, 0x93, 0x1a, 0x80,
+};
+static const unsigned char kat3388_retbits[] = {
+ 0x89, 0x8d, 0x5a, 0x6c, 0x2f, 0x5f, 0x47, 0x4e, 0x1e, 0xf2, 0x4f, 0xf8,
+ 0x56, 0xf4, 0x50, 0x71, 0x96, 0xa6, 0x7a, 0x79, 0xe7, 0x22, 0xb4, 0xce,
+ 0xd7, 0x10, 0x2a, 0x37, 0xa4, 0x3f, 0x42, 0x30, 0x6c, 0xa8, 0xcf, 0x03,
+ 0x6c, 0x24, 0x29, 0x71, 0x38, 0xf7, 0x8b, 0x84, 0x60, 0x3b, 0x73, 0x7d,
+ 0x36, 0x9a, 0xe1, 0x62, 0xca, 0xfe, 0x5e, 0x63, 0xff, 0x74, 0x9d, 0xc2,
+ 0xca, 0x49, 0xee, 0x84,
+};
+static const struct drbg_kat_pr_true kat3388_t = {
+ 12, kat3388_entropyin, kat3388_nonce, kat3388_persstr,
+ kat3388_entropyinpr1, kat3388_addinpr1, kat3388_entropyinpr2,
+ kat3388_addinpr2, kat3388_retbits
+};
+static const struct drbg_kat kat3388 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3388_t
+};
+
+static const unsigned char kat3389_entropyin[] = {
+ 0xe0, 0x21, 0x3e, 0x7a, 0x37, 0x41, 0x69, 0x71, 0x2b, 0x6e, 0x19, 0x01,
+ 0x5f, 0x6e, 0xff, 0x12, 0x76, 0xa2, 0xa2, 0x2f, 0x21, 0x38, 0x89, 0xbb,
+ 0x0c, 0xf2, 0xfe, 0xd7, 0x27, 0xd4, 0x37, 0xfd,
+};
+static const unsigned char kat3389_nonce[] = {
+ 0xda, 0x92, 0x30, 0xc4, 0x5b, 0xed, 0xbe, 0x6b, 0x93, 0xe1, 0xca, 0x78,
+ 0x35, 0x2b, 0x5c, 0xcd,
+};
+static const unsigned char kat3389_persstr[] = {0};
+static const unsigned char kat3389_entropyinpr1[] = {
+ 0x09, 0xb3, 0x1b, 0x90, 0x60, 0xaa, 0x02, 0x96, 0x2d, 0x7c, 0x53, 0xc9,
+ 0x8d, 0x14, 0x38, 0xd9, 0xde, 0xb5, 0x2a, 0x1f, 0x95, 0x1c, 0x1d, 0xce,
+ 0x7e, 0x3e, 0x83, 0x3f, 0xfa, 0x7f, 0x48, 0x10,
+};
+static const unsigned char kat3389_addinpr1[] = {
+ 0x9c, 0x2a, 0xf4, 0x6c, 0x2a, 0xd0, 0x6b, 0x49, 0x7f, 0x6a, 0x82, 0x39,
+ 0x0f, 0xcb, 0x65, 0xe2, 0x4b, 0xf8, 0xdb, 0x56, 0xb6, 0xa5, 0xff, 0x04,
+ 0xd4, 0x8a, 0xbc, 0x01, 0xb3, 0xe1, 0xf0, 0x69,
+};
+static const unsigned char kat3389_entropyinpr2[] = {
+ 0x9d, 0x7d, 0x1c, 0xa8, 0xf7, 0xa7, 0x58, 0xe7, 0x3b, 0xdc, 0x86, 0xb5,
+ 0x27, 0xa3, 0xa4, 0xd9, 0xc5, 0xd3, 0x45, 0x0c, 0xc9, 0xb2, 0xf6, 0x77,
+ 0xdd, 0xbf, 0xef, 0x1a, 0x9e, 0xec, 0x73, 0x18,
+};
+static const unsigned char kat3389_addinpr2[] = {
+ 0xf5, 0xe8, 0x8e, 0x02, 0xdc, 0xe6, 0xbf, 0x79, 0x81, 0x44, 0x3a, 0x68,
+ 0x5d, 0x51, 0x4c, 0x27, 0xf9, 0x78, 0xd7, 0x01, 0xbf, 0xc9, 0xb9, 0xaf,
+ 0xdb, 0xd9, 0x27, 0x6a, 0x42, 0xb7, 0x06, 0x20,
+};
+static const unsigned char kat3389_retbits[] = {
+ 0xd2, 0x5b, 0xa0, 0xfd, 0x9f, 0xb1, 0xb7, 0x80, 0x88, 0xf8, 0xfc, 0x65,
+ 0x0c, 0x8d, 0x26, 0xad, 0xa1, 0xb9, 0x65, 0x1f, 0x72, 0x9b, 0x79, 0xf1,
+ 0x82, 0x36, 0x61, 0xf1, 0x13, 0x01, 0x2d, 0x23, 0xc1, 0x73, 0x68, 0x7d,
+ 0x96, 0x7b, 0x7c, 0x3e, 0xd2, 0x1e, 0x45, 0x73, 0x24, 0x0d, 0x78, 0x8b,
+ 0x13, 0xad, 0xe4, 0x2a, 0x86, 0x4a, 0xa0, 0x48, 0x20, 0xe1, 0xa8, 0xe9,
+ 0xba, 0x0a, 0x34, 0xa6,
+};
+static const struct drbg_kat_pr_true kat3389_t = {
+ 13, kat3389_entropyin, kat3389_nonce, kat3389_persstr,
+ kat3389_entropyinpr1, kat3389_addinpr1, kat3389_entropyinpr2,
+ kat3389_addinpr2, kat3389_retbits
+};
+static const struct drbg_kat kat3389 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3389_t
+};
+
+static const unsigned char kat3390_entropyin[] = {
+ 0xe8, 0x30, 0xa3, 0xb6, 0x2a, 0x8e, 0x7b, 0x11, 0xda, 0x12, 0x66, 0x1e,
+ 0xe4, 0xfc, 0x35, 0x31, 0x76, 0x2f, 0x3c, 0x86, 0xdc, 0xdf, 0x8d, 0x77,
+ 0xdf, 0xe7, 0xcb, 0xda, 0xeb, 0x5e, 0xad, 0x0a,
+};
+static const unsigned char kat3390_nonce[] = {
+ 0xc2, 0xe9, 0x92, 0x0c, 0xfe, 0x94, 0xde, 0x89, 0xd7, 0x41, 0x49, 0xad,
+ 0x7d, 0x87, 0x68, 0xb1,
+};
+static const unsigned char kat3390_persstr[] = {0};
+static const unsigned char kat3390_entropyinpr1[] = {
+ 0xee, 0x52, 0x2f, 0x97, 0x6f, 0x98, 0xc0, 0x2d, 0x5a, 0x41, 0xeb, 0x17,
+ 0x9b, 0x84, 0xe3, 0x62, 0x2d, 0xdc, 0x60, 0xd8, 0x6b, 0xcf, 0x17, 0xfb,
+ 0xc3, 0x94, 0xf0, 0x51, 0x1a, 0x40, 0xd8, 0x51,
+};
+static const unsigned char kat3390_addinpr1[] = {
+ 0x46, 0x0a, 0x1e, 0x65, 0xaa, 0xcd, 0x22, 0x22, 0x26, 0x22, 0x16, 0xf3,
+ 0xeb, 0xaa, 0xe6, 0x21, 0xf9, 0x51, 0x7a, 0xbc, 0x73, 0x24, 0x26, 0x4d,
+ 0x90, 0x4b, 0x36, 0x94, 0x0d, 0xea, 0x51, 0xf5,
+};
+static const unsigned char kat3390_entropyinpr2[] = {
+ 0x67, 0xca, 0x64, 0x28, 0x19, 0xb5, 0xc8, 0xab, 0x14, 0x59, 0x67, 0x37,
+ 0x6f, 0x2e, 0x67, 0xfb, 0x2b, 0xb9, 0x16, 0x6f, 0x0b, 0x76, 0xd7, 0x56,
+ 0x18, 0xdf, 0x94, 0x44, 0xc9, 0x9e, 0xf1, 0xaa,
+};
+static const unsigned char kat3390_addinpr2[] = {
+ 0x9b, 0x9e, 0x82, 0x3a, 0xe4, 0xa4, 0xe5, 0x38, 0x27, 0x4c, 0xa5, 0x69,
+ 0xbc, 0x7f, 0x55, 0xa8, 0x3e, 0x30, 0x01, 0xc1, 0x7a, 0xe9, 0xc4, 0x97,
+ 0x29, 0x54, 0x8e, 0x96, 0x24, 0xed, 0x8f, 0x57,
+};
+static const unsigned char kat3390_retbits[] = {
+ 0xb3, 0x87, 0x85, 0x1e, 0x69, 0x5e, 0x07, 0xc6, 0xc2, 0x80, 0xcd, 0x7e,
+ 0xc5, 0x9e, 0xb0, 0x78, 0xa0, 0x33, 0xb2, 0x5f, 0x86, 0xee, 0x25, 0x91,
+ 0x14, 0x4a, 0x96, 0x0a, 0xc8, 0x3e, 0x55, 0x0b, 0x7b, 0x97, 0x6c, 0xd8,
+ 0xd2, 0x08, 0x5c, 0x85, 0x68, 0x58, 0x57, 0xf8, 0x41, 0xc4, 0xc6, 0x69,
+ 0x75, 0x12, 0xea, 0xc3, 0x26, 0x41, 0x96, 0xa8, 0xb6, 0x67, 0x50, 0x59,
+ 0x1e, 0x99, 0x33, 0x94,
+};
+static const struct drbg_kat_pr_true kat3390_t = {
+ 14, kat3390_entropyin, kat3390_nonce, kat3390_persstr,
+ kat3390_entropyinpr1, kat3390_addinpr1, kat3390_entropyinpr2,
+ kat3390_addinpr2, kat3390_retbits
+};
+static const struct drbg_kat kat3390 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3390_t
+};
+
+static const unsigned char kat3391_entropyin[] = {
+ 0xca, 0x58, 0xfd, 0xf2, 0xb9, 0x77, 0xcb, 0x49, 0xd4, 0xe0, 0x5b, 0xe2,
+ 0x39, 0x50, 0xd9, 0x8a, 0x6a, 0xb3, 0xc5, 0x2f, 0xdf, 0x74, 0xd5, 0x85,
+ 0x8f, 0xd1, 0xba, 0x64, 0x54, 0x7b, 0xdb, 0x1e,
+};
+static const unsigned char kat3391_nonce[] = {
+ 0xc5, 0xea, 0x24, 0xc0, 0xfa, 0x0c, 0x90, 0x15, 0x09, 0x20, 0x92, 0x42,
+ 0x32, 0x36, 0x45, 0x45,
+};
+static const unsigned char kat3391_persstr[] = {
+ 0x5a, 0x70, 0x95, 0xe9, 0x81, 0x40, 0x52, 0x33, 0x91, 0x53, 0x7e, 0x75,
+ 0xd6, 0x19, 0x9d, 0x1e, 0xad, 0x0d, 0xc6, 0xa7, 0xde, 0x6c, 0x1f, 0xe0,
+ 0xea, 0x18, 0x33, 0xa8, 0x7e, 0x06, 0x20, 0xe9,
+};
+static const unsigned char kat3391_entropyinpr1[] = {
+ 0x7d, 0x20, 0x76, 0x6b, 0xcf, 0xa2, 0x15, 0xc8, 0x2f, 0x9f, 0xbc, 0x88,
+ 0x3f, 0x80, 0xd1, 0x2c, 0xb7, 0x16, 0xd1, 0x80, 0x9e, 0xe1, 0xc9, 0xb3,
+ 0x88, 0x1b, 0x21, 0x45, 0xef, 0xa1, 0x7f, 0xce,
+};
+static const unsigned char kat3391_addinpr1[] = {0};
+static const unsigned char kat3391_entropyinpr2[] = {
+ 0xc8, 0x92, 0x35, 0x55, 0x2a, 0xd9, 0x1d, 0x8e, 0x12, 0x38, 0xac, 0x01,
+ 0x4e, 0x38, 0x18, 0x76, 0x9c, 0xf2, 0xb6, 0xd4, 0x13, 0xb6, 0x2c, 0x77,
+ 0xc0, 0xe7, 0xe6, 0x0c, 0x47, 0x44, 0x95, 0xbe,
+};
+static const unsigned char kat3391_addinpr2[] = {0};
+static const unsigned char kat3391_retbits[] = {
+ 0xce, 0x2f, 0xdb, 0xb6, 0xd9, 0xb7, 0x39, 0x85, 0x04, 0xc5, 0xc0, 0x42,
+ 0xc2, 0x31, 0xc6, 0x1d, 0x9b, 0x5a, 0x59, 0xf8, 0x7e, 0x0d, 0xcc, 0x62,
+ 0x7b, 0x65, 0x11, 0x55, 0x10, 0xeb, 0x9e, 0x3d, 0xa4, 0xfb, 0x1c, 0x6a,
+ 0x18, 0xc0, 0x74, 0xdb, 0xdd, 0xe7, 0x02, 0x23, 0x63, 0x21, 0xd0, 0x39,
+ 0xf9, 0xa7, 0xc4, 0x52, 0x84, 0x3b, 0x49, 0x40, 0x72, 0x2b, 0xb0, 0x6c,
+ 0x9c, 0xdb, 0xc3, 0x43,
+};
+static const struct drbg_kat_pr_true kat3391_t = {
+ 0, kat3391_entropyin, kat3391_nonce, kat3391_persstr,
+ kat3391_entropyinpr1, kat3391_addinpr1, kat3391_entropyinpr2,
+ kat3391_addinpr2, kat3391_retbits
+};
+static const struct drbg_kat kat3391 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3391_t
+};
+
+static const unsigned char kat3392_entropyin[] = {
+ 0x58, 0xeb, 0x6c, 0xc9, 0xb9, 0xa3, 0x6b, 0x93, 0x17, 0xb8, 0x1b, 0x80,
+ 0x6a, 0x7e, 0xfd, 0x86, 0x89, 0xf7, 0x2c, 0xce, 0x9d, 0x7d, 0x2f, 0xc7,
+ 0xd0, 0x0d, 0xce, 0x2d, 0x2d, 0x21, 0x4f, 0xc5,
+};
+static const unsigned char kat3392_nonce[] = {
+ 0x32, 0xaf, 0x78, 0x6a, 0xeb, 0x62, 0x0c, 0x53, 0x38, 0xa7, 0x93, 0x17,
+ 0x54, 0x63, 0xfb, 0xd3,
+};
+static const unsigned char kat3392_persstr[] = {
+ 0xb5, 0x1b, 0xec, 0x3b, 0xdc, 0xfd, 0x8d, 0xa6, 0x47, 0x28, 0x31, 0xeb,
+ 0xa7, 0x80, 0x3b, 0xbb, 0xc7, 0xf2, 0x7e, 0x7d, 0xe1, 0x25, 0x17, 0x25,
+ 0x15, 0x04, 0x61, 0xf3, 0x22, 0x2a, 0x55, 0x84,
+};
+static const unsigned char kat3392_entropyinpr1[] = {
+ 0x0c, 0x4b, 0x0c, 0x36, 0x35, 0xd1, 0xfc, 0x95, 0x37, 0x18, 0x46, 0x9a,
+ 0x76, 0x8c, 0xb0, 0x09, 0x66, 0x25, 0xe9, 0x54, 0xde, 0xd5, 0xf6, 0x23,
+ 0x8f, 0xd9, 0x57, 0x37, 0xeb, 0xbd, 0x91, 0x75,
+};
+static const unsigned char kat3392_addinpr1[] = {0};
+static const unsigned char kat3392_entropyinpr2[] = {
+ 0xad, 0x80, 0x24, 0x22, 0xaa, 0xbd, 0x51, 0xd2, 0x87, 0x8a, 0xf3, 0xd9,
+ 0x08, 0xe3, 0x43, 0xa2, 0x7a, 0x34, 0x71, 0x00, 0x67, 0x80, 0x6a, 0x46,
+ 0x87, 0x41, 0x03, 0x0c, 0x81, 0x45, 0x3c, 0x08,
+};
+static const unsigned char kat3392_addinpr2[] = {0};
+static const unsigned char kat3392_retbits[] = {
+ 0xf3, 0x27, 0x11, 0x50, 0xd5, 0x92, 0x7f, 0x04, 0x48, 0xd6, 0x3c, 0xd3,
+ 0xbd, 0xd9, 0x2e, 0x3c, 0x99, 0x89, 0x9d, 0x3d, 0x61, 0x40, 0x8b, 0x79,
+ 0x1b, 0xfc, 0x02, 0xcf, 0xee, 0x71, 0xde, 0x8c, 0xb1, 0xaa, 0x1d, 0xe5,
+ 0x50, 0xf4, 0x24, 0xda, 0x79, 0xf5, 0xcb, 0x00, 0x87, 0x6d, 0x85, 0xe9,
+ 0xab, 0xe6, 0xfc, 0x5c, 0xf3, 0x0c, 0xa4, 0x98, 0xcd, 0x22, 0x3a, 0xd8,
+ 0x32, 0x21, 0x09, 0x39,
+};
+static const struct drbg_kat_pr_true kat3392_t = {
+ 1, kat3392_entropyin, kat3392_nonce, kat3392_persstr,
+ kat3392_entropyinpr1, kat3392_addinpr1, kat3392_entropyinpr2,
+ kat3392_addinpr2, kat3392_retbits
+};
+static const struct drbg_kat kat3392 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3392_t
+};
+
+static const unsigned char kat3393_entropyin[] = {
+ 0x22, 0x62, 0x98, 0x16, 0xd2, 0x6e, 0x52, 0xf7, 0x05, 0xdc, 0x95, 0xf9,
+ 0xb5, 0xb2, 0xc3, 0x0f, 0xa4, 0xb8, 0x80, 0x25, 0x72, 0x0a, 0x73, 0xce,
+ 0xaa, 0x41, 0x5d, 0xed, 0x64, 0x7b, 0xa1, 0x5c,
+};
+static const unsigned char kat3393_nonce[] = {
+ 0x3d, 0x48, 0xaf, 0x2e, 0xca, 0xb9, 0x39, 0xaa, 0xce, 0x68, 0x1d, 0xfc,
+ 0xd2, 0x21, 0x00, 0x9e,
+};
+static const unsigned char kat3393_persstr[] = {
+ 0xe7, 0xfb, 0x3a, 0x13, 0x23, 0xcc, 0xff, 0x3c, 0xf3, 0xa8, 0xe1, 0x1a,
+ 0xe6, 0x74, 0xbb, 0xd2, 0x26, 0x2e, 0x77, 0xd2, 0xdb, 0x95, 0xc0, 0x3b,
+ 0x23, 0xd4, 0xa6, 0x61, 0x6e, 0x4f, 0x0f, 0x7b,
+};
+static const unsigned char kat3393_entropyinpr1[] = {
+ 0xbb, 0xa2, 0xa6, 0xe6, 0xb7, 0xaf, 0xe5, 0x7b, 0x4b, 0xb3, 0x8e, 0x64,
+ 0x19, 0x09, 0x18, 0xf2, 0x05, 0xf1, 0x75, 0x80, 0x56, 0x60, 0x9a, 0x98,
+ 0xbe, 0x4f, 0xe6, 0x3e, 0xa7, 0xd0, 0x35, 0x81,
+};
+static const unsigned char kat3393_addinpr1[] = {0};
+static const unsigned char kat3393_entropyinpr2[] = {
+ 0x43, 0x5b, 0x62, 0x42, 0xec, 0xc0, 0x23, 0x1c, 0xc0, 0x0d, 0xd3, 0x68,
+ 0x56, 0x87, 0x2b, 0xbd, 0x1b, 0x19, 0xef, 0x80, 0xcd, 0x41, 0x2e, 0xb1,
+ 0xb6, 0x45, 0xf8, 0xce, 0x2f, 0xb4, 0xdf, 0xc7,
+};
+static const unsigned char kat3393_addinpr2[] = {0};
+static const unsigned char kat3393_retbits[] = {
+ 0xcc, 0xaf, 0x68, 0xd0, 0xc7, 0xb0, 0x9d, 0xbc, 0x3f, 0x84, 0xea, 0x61,
+ 0xb3, 0x6e, 0x47, 0x1e, 0x74, 0x5b, 0xd0, 0xed, 0x01, 0x08, 0x89, 0x20,
+ 0xbf, 0xdb, 0x9f, 0xac, 0xad, 0xe3, 0x30, 0xb1, 0xf9, 0xec, 0x73, 0xd2,
+ 0xc1, 0xda, 0xf9, 0x1c, 0xdd, 0x66, 0xa9, 0xd6, 0xe0, 0x1d, 0x0c, 0xf7,
+ 0x04, 0x65, 0x4b, 0xad, 0x6a, 0x98, 0x2c, 0x68, 0x27, 0x82, 0x37, 0xa5,
+ 0x39, 0x45, 0x3b, 0x05,
+};
+static const struct drbg_kat_pr_true kat3393_t = {
+ 2, kat3393_entropyin, kat3393_nonce, kat3393_persstr,
+ kat3393_entropyinpr1, kat3393_addinpr1, kat3393_entropyinpr2,
+ kat3393_addinpr2, kat3393_retbits
+};
+static const struct drbg_kat kat3393 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3393_t
+};
+
+static const unsigned char kat3394_entropyin[] = {
+ 0x8e, 0xa5, 0xb0, 0x5f, 0x5d, 0x13, 0xd4, 0x48, 0x7c, 0xff, 0x6a, 0x09,
+ 0xb7, 0x09, 0x03, 0x09, 0xa1, 0x1f, 0xae, 0x73, 0xe9, 0x01, 0x7c, 0xaa,
+ 0x91, 0x60, 0x41, 0x9e, 0xa3, 0xf0, 0xe8, 0x2f,
+};
+static const unsigned char kat3394_nonce[] = {
+ 0x7a, 0xeb, 0x36, 0x95, 0x1c, 0x60, 0x08, 0xe8, 0x48, 0x4c, 0x18, 0xce,
+ 0xb7, 0x8e, 0xff, 0xbf,
+};
+static const unsigned char kat3394_persstr[] = {
+ 0x92, 0x26, 0x2c, 0x66, 0x65, 0xee, 0x72, 0x43, 0xc4, 0xab, 0x02, 0xce,
+ 0xf1, 0x99, 0x79, 0x53, 0x59, 0xed, 0x09, 0x1c, 0xb4, 0x7c, 0xfd, 0x06,
+ 0x56, 0x85, 0x7d, 0x5a, 0x58, 0xcf, 0x3a, 0xc8,
+};
+static const unsigned char kat3394_entropyinpr1[] = {
+ 0x59, 0x77, 0x29, 0x4b, 0x97, 0xd3, 0xe6, 0x37, 0xeb, 0xf0, 0xd4, 0xb3,
+ 0xa2, 0x77, 0x1b, 0x61, 0x6a, 0x15, 0x9d, 0xc3, 0x33, 0x9b, 0x09, 0xba,
+ 0x99, 0x91, 0x4e, 0xf3, 0xb2, 0x4f, 0x0a, 0xcc,
+};
+static const unsigned char kat3394_addinpr1[] = {0};
+static const unsigned char kat3394_entropyinpr2[] = {
+ 0x99, 0x2f, 0xf6, 0x03, 0x1f, 0x8c, 0xd2, 0x88, 0x99, 0x8b, 0x89, 0xd0,
+ 0x6f, 0x9c, 0xce, 0x8f, 0x9a, 0x40, 0xf3, 0x04, 0xe4, 0x54, 0xcc, 0xf3,
+ 0xb1, 0x46, 0xd1, 0x2b, 0x31, 0x99, 0x89, 0x6e,
+};
+static const unsigned char kat3394_addinpr2[] = {0};
+static const unsigned char kat3394_retbits[] = {
+ 0xa7, 0xd4, 0x32, 0xd8, 0xbd, 0x03, 0xc3, 0xfc, 0x52, 0x51, 0x60, 0x91,
+ 0x1f, 0x7f, 0xb1, 0xb2, 0xdf, 0x3a, 0xa5, 0xdc, 0x76, 0x9f, 0x93, 0xb9,
+ 0x2d, 0x66, 0x25, 0x49, 0x70, 0xa2, 0xcd, 0x35, 0xed, 0x74, 0x89, 0x34,
+ 0xcb, 0x64, 0x26, 0xb6, 0x46, 0x96, 0xf0, 0xc2, 0xa1, 0x51, 0x5c, 0xa9,
+ 0x4a, 0x07, 0x66, 0x79, 0x22, 0xc4, 0x94, 0x91, 0x5a, 0x97, 0x4d, 0x26,
+ 0x33, 0x28, 0xa6, 0x1d,
+};
+static const struct drbg_kat_pr_true kat3394_t = {
+ 3, kat3394_entropyin, kat3394_nonce, kat3394_persstr,
+ kat3394_entropyinpr1, kat3394_addinpr1, kat3394_entropyinpr2,
+ kat3394_addinpr2, kat3394_retbits
+};
+static const struct drbg_kat kat3394 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3394_t
+};
+
+static const unsigned char kat3395_entropyin[] = {
+ 0x88, 0xab, 0x9b, 0x05, 0xf5, 0xc0, 0x7c, 0xfa, 0xf3, 0x44, 0xeb, 0x5f,
+ 0x60, 0x7a, 0xf9, 0x18, 0xf6, 0x96, 0x57, 0x2d, 0x70, 0xde, 0xdd, 0x86,
+ 0xc3, 0x62, 0x8b, 0x15, 0x22, 0x27, 0xf6, 0xa0,
+};
+static const unsigned char kat3395_nonce[] = {
+ 0x1d, 0xb3, 0x55, 0xf8, 0x21, 0x53, 0x79, 0x06, 0xd5, 0x23, 0xc6, 0xdf,
+ 0xd8, 0x15, 0x5d, 0xaf,
+};
+static const unsigned char kat3395_persstr[] = {
+ 0xd0, 0xcd, 0x78, 0xb9, 0x39, 0x7c, 0x6d, 0xff, 0x8c, 0x0d, 0xe8, 0x40,
+ 0xc0, 0xd8, 0x15, 0xce, 0xcd, 0x24, 0x54, 0x42, 0xc8, 0x1f, 0x4c, 0x3e,
+ 0x56, 0xdd, 0x08, 0xcc, 0x94, 0xf8, 0x29, 0xfd,
+};
+static const unsigned char kat3395_entropyinpr1[] = {
+ 0x26, 0xe6, 0x7d, 0x43, 0x3d, 0xbe, 0x49, 0x41, 0x0d, 0x94, 0xb5, 0xa8,
+ 0xaa, 0x0c, 0x3f, 0x0c, 0x1d, 0xf4, 0x01, 0x8f, 0xa8, 0x8f, 0x8d, 0x5c,
+ 0x72, 0x64, 0x94, 0xe6, 0x42, 0xcb, 0xe4, 0x30,
+};
+static const unsigned char kat3395_addinpr1[] = {0};
+static const unsigned char kat3395_entropyinpr2[] = {
+ 0xb3, 0x98, 0xc1, 0x44, 0xcf, 0x39, 0xba, 0x01, 0x37, 0x91, 0x03, 0x7a,
+ 0xa0, 0xa6, 0x2b, 0x44, 0x74, 0x3a, 0x52, 0x05, 0xfc, 0x71, 0xfb, 0x75,
+ 0x43, 0x96, 0x19, 0xc5, 0xa3, 0x11, 0x29, 0x80,
+};
+static const unsigned char kat3395_addinpr2[] = {0};
+static const unsigned char kat3395_retbits[] = {
+ 0x1b, 0x02, 0xc4, 0x9a, 0x67, 0xa7, 0x6a, 0x7d, 0xaa, 0x5a, 0xd4, 0x52,
+ 0xc6, 0xca, 0x89, 0xce, 0x81, 0xd7, 0x32, 0xda, 0x1f, 0x3d, 0x19, 0x39,
+ 0x6c, 0x8f, 0x26, 0xf8, 0x69, 0x61, 0x04, 0x32, 0xef, 0xbb, 0x49, 0xcf,
+ 0x0f, 0xef, 0x6a, 0xcf, 0x59, 0x4b, 0xa3, 0xe1, 0xb0, 0x88, 0x5d, 0x31,
+ 0x08, 0x20, 0x00, 0x74, 0xd9, 0x3a, 0x16, 0xc0, 0xcc, 0x3b, 0x03, 0x1e,
+ 0x64, 0xa0, 0x97, 0x46,
+};
+static const struct drbg_kat_pr_true kat3395_t = {
+ 4, kat3395_entropyin, kat3395_nonce, kat3395_persstr,
+ kat3395_entropyinpr1, kat3395_addinpr1, kat3395_entropyinpr2,
+ kat3395_addinpr2, kat3395_retbits
+};
+static const struct drbg_kat kat3395 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3395_t
+};
+
+static const unsigned char kat3396_entropyin[] = {
+ 0xca, 0x3a, 0x82, 0x5e, 0xab, 0xda, 0x32, 0xe4, 0xf0, 0x85, 0xc2, 0x59,
+ 0x01, 0x1f, 0x0e, 0x5b, 0xc8, 0x8c, 0xc1, 0x61, 0x66, 0xc7, 0xc3, 0x71,
+ 0x3b, 0x76, 0xe7, 0xe6, 0xe5, 0x9a, 0x4a, 0xd5,
+};
+static const unsigned char kat3396_nonce[] = {
+ 0xac, 0x70, 0xd0, 0x9e, 0x85, 0xf4, 0x72, 0xca, 0xcd, 0xeb, 0xdd, 0x34,
+ 0x7f, 0xbd, 0x9c, 0x84,
+};
+static const unsigned char kat3396_persstr[] = {
+ 0x73, 0x44, 0x43, 0x67, 0xe8, 0x78, 0xf0, 0x67, 0x96, 0xc1, 0x98, 0xb2,
+ 0xb9, 0xa6, 0x13, 0xcf, 0x45, 0xdc, 0x12, 0x82, 0xca, 0x29, 0x52, 0x2c,
+ 0x07, 0x18, 0x3a, 0x91, 0x25, 0x98, 0x48, 0xa7,
+};
+static const unsigned char kat3396_entropyinpr1[] = {
+ 0x56, 0xb7, 0x09, 0x2c, 0x01, 0x19, 0x78, 0x98, 0x47, 0x8a, 0x0b, 0xcd,
+ 0x9d, 0x3a, 0xce, 0x0f, 0x2c, 0x49, 0x0d, 0x2f, 0x02, 0xa0, 0xe4, 0x3d,
+ 0x3e, 0x4c, 0x39, 0xf1, 0xa6, 0xb1, 0x58, 0x8a,
+};
+static const unsigned char kat3396_addinpr1[] = {0};
+static const unsigned char kat3396_entropyinpr2[] = {
+ 0x85, 0x3e, 0xa3, 0x32, 0x87, 0x89, 0xf1, 0x42, 0x9b, 0xba, 0x8c, 0x20,
+ 0x76, 0xdb, 0x22, 0xff, 0x16, 0xdf, 0xd4, 0x41, 0xf9, 0xa6, 0xd4, 0xc0,
+ 0x53, 0x3f, 0x2a, 0x2a, 0xcd, 0x26, 0x9a, 0xaa,
+};
+static const unsigned char kat3396_addinpr2[] = {0};
+static const unsigned char kat3396_retbits[] = {
+ 0x0c, 0x6c, 0x19, 0x73, 0x19, 0x28, 0x9c, 0xa7, 0xbe, 0x68, 0x79, 0xe8,
+ 0x7d, 0x66, 0x27, 0xcd, 0x04, 0xbd, 0xfe, 0x91, 0x66, 0x43, 0x36, 0xa5,
+ 0xe1, 0xb3, 0x79, 0x8a, 0x9b, 0x74, 0xe4, 0x9b, 0x6d, 0xb8, 0x2f, 0xa6,
+ 0xf3, 0xd2, 0x62, 0xc7, 0x86, 0xdf, 0x2f, 0xc3, 0x9d, 0xa5, 0x14, 0xb8,
+ 0xd9, 0xdc, 0x61, 0xf2, 0x63, 0x9d, 0xbf, 0x94, 0x9d, 0xd6, 0x05, 0x4f,
+ 0x0b, 0x42, 0xfa, 0x6d,
+};
+static const struct drbg_kat_pr_true kat3396_t = {
+ 5, kat3396_entropyin, kat3396_nonce, kat3396_persstr,
+ kat3396_entropyinpr1, kat3396_addinpr1, kat3396_entropyinpr2,
+ kat3396_addinpr2, kat3396_retbits
+};
+static const struct drbg_kat kat3396 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3396_t
+};
+
+static const unsigned char kat3397_entropyin[] = {
+ 0xa3, 0x6b, 0xfc, 0x41, 0x7a, 0x82, 0x3e, 0x84, 0xb2, 0xda, 0xd2, 0xe2,
+ 0xfc, 0x16, 0xd4, 0x3d, 0xc8, 0xba, 0xd5, 0xa8, 0x36, 0xe3, 0x7e, 0x20,
+ 0x9f, 0xbf, 0xb2, 0x11, 0x51, 0x8e, 0x8c, 0xe5,
+};
+static const unsigned char kat3397_nonce[] = {
+ 0x36, 0xaa, 0xd5, 0x42, 0xc8, 0x5d, 0x06, 0x42, 0xba, 0x10, 0xf3, 0x2b,
+ 0xbf, 0x62, 0x19, 0xb2,
+};
+static const unsigned char kat3397_persstr[] = {
+ 0x66, 0x77, 0x9e, 0x85, 0xa9, 0xb3, 0xbe, 0x78, 0x2b, 0xe8, 0x21, 0x7d,
+ 0x7c, 0x21, 0xeb, 0xc4, 0x8c, 0xd7, 0x10, 0x42, 0xf4, 0xae, 0x17, 0x3f,
+ 0xd5, 0x7e, 0x8c, 0x34, 0x28, 0x9d, 0x6a, 0x76,
+};
+static const unsigned char kat3397_entropyinpr1[] = {
+ 0xe5, 0x04, 0xec, 0xec, 0x60, 0x85, 0xc9, 0x11, 0x55, 0x1d, 0xfe, 0x92,
+ 0x21, 0x0b, 0xe0, 0x95, 0x07, 0xd2, 0x2b, 0x45, 0x9a, 0x61, 0xf3, 0x67,
+ 0x8a, 0x09, 0xa8, 0x6e, 0x92, 0x1d, 0x1f, 0x46,
+};
+static const unsigned char kat3397_addinpr1[] = {0};
+static const unsigned char kat3397_entropyinpr2[] = {
+ 0xb6, 0x89, 0xa2, 0x08, 0x05, 0x8f, 0x23, 0x79, 0x07, 0x81, 0x0d, 0x96,
+ 0xf9, 0xe1, 0x7c, 0xc1, 0x44, 0xc0, 0xb1, 0x0e, 0xbe, 0xd0, 0xca, 0xff,
+ 0x05, 0xd8, 0x97, 0x0c, 0xe9, 0xb0, 0x7b, 0xc7,
+};
+static const unsigned char kat3397_addinpr2[] = {0};
+static const unsigned char kat3397_retbits[] = {
+ 0xbc, 0xd9, 0x28, 0x84, 0xb6, 0x32, 0x5e, 0x31, 0xc7, 0x27, 0x28, 0x9f,
+ 0xc6, 0xa1, 0xfa, 0xf5, 0x40, 0x1d, 0xca, 0x6c, 0xf7, 0xc0, 0x09, 0x20,
+ 0x70, 0xc7, 0x18, 0xc6, 0xbd, 0xe0, 0x03, 0x79, 0x40, 0xa3, 0xaa, 0x45,
+ 0x98, 0x74, 0xdb, 0xeb, 0x51, 0x3b, 0x2d, 0xde, 0x07, 0xa6, 0x1a, 0xd8,
+ 0x93, 0x8c, 0x90, 0xab, 0xcc, 0xb0, 0xe4, 0xa0, 0x6c, 0x77, 0x96, 0x6f,
+ 0xa2, 0x93, 0x2a, 0xf1,
+};
+static const struct drbg_kat_pr_true kat3397_t = {
+ 6, kat3397_entropyin, kat3397_nonce, kat3397_persstr,
+ kat3397_entropyinpr1, kat3397_addinpr1, kat3397_entropyinpr2,
+ kat3397_addinpr2, kat3397_retbits
+};
+static const struct drbg_kat kat3397 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3397_t
+};
+
+static const unsigned char kat3398_entropyin[] = {
+ 0x88, 0x2b, 0x68, 0x34, 0xac, 0x17, 0x48, 0xdc, 0x5d, 0x8b, 0x33, 0x65,
+ 0xe7, 0x2b, 0x56, 0x03, 0x9f, 0x37, 0x85, 0xb1, 0xbf, 0x02, 0xeb, 0x6f,
+ 0x3c, 0x33, 0x8b, 0x84, 0x45, 0xf0, 0xde, 0xa3,
+};
+static const unsigned char kat3398_nonce[] = {
+ 0x0e, 0xa5, 0x26, 0xa8, 0x72, 0xcc, 0x3b, 0x9b, 0x70, 0xaa, 0x15, 0xed,
+ 0x75, 0x14, 0xcd, 0x5a,
+};
+static const unsigned char kat3398_persstr[] = {
+ 0xa0, 0x85, 0x91, 0x13, 0x2d, 0x1a, 0xe4, 0x67, 0x54, 0xa1, 0xc9, 0x1d,
+ 0x9d, 0xca, 0xcd, 0x58, 0xbf, 0x17, 0x34, 0xf4, 0x6a, 0x42, 0x11, 0x55,
+ 0x59, 0x81, 0x8a, 0xb8, 0xf2, 0x30, 0xfe, 0x4a,
+};
+static const unsigned char kat3398_entropyinpr1[] = {
+ 0xfc, 0xa4, 0x95, 0xa8, 0xf5, 0xc6, 0x47, 0x40, 0xeb, 0x60, 0x41, 0xae,
+ 0x0d, 0x98, 0xf9, 0x11, 0xfb, 0xd0, 0x2a, 0xd4, 0xc1, 0xf7, 0xda, 0x75,
+ 0x80, 0xaf, 0xea, 0xf5, 0x52, 0x38, 0x3b, 0xa4,
+};
+static const unsigned char kat3398_addinpr1[] = {0};
+static const unsigned char kat3398_entropyinpr2[] = {
+ 0x40, 0xaf, 0x61, 0x14, 0x5a, 0x3f, 0xbf, 0x1b, 0x87, 0xd2, 0xdb, 0x0a,
+ 0x74, 0xdc, 0x5b, 0x98, 0x14, 0x13, 0x42, 0x23, 0x55, 0xb1, 0x28, 0xba,
+ 0x7a, 0xb6, 0x1f, 0x58, 0x0b, 0x96, 0x5f, 0x3c,
+};
+static const unsigned char kat3398_addinpr2[] = {0};
+static const unsigned char kat3398_retbits[] = {
+ 0x63, 0x8b, 0xc8, 0x5c, 0x8c, 0x70, 0xf3, 0x29, 0x1c, 0x61, 0x05, 0xd9,
+ 0x29, 0x0a, 0xec, 0x9c, 0x10, 0x59, 0xb9, 0x3a, 0xc9, 0xbf, 0x20, 0xb3,
+ 0xf6, 0xb3, 0xd1, 0xb5, 0x93, 0x3a, 0x32, 0x8d, 0xfc, 0xcb, 0xdf, 0x19,
+ 0x22, 0xc0, 0x7f, 0xfe, 0x7b, 0xda, 0xf8, 0x63, 0x0a, 0xea, 0x3c, 0x29,
+ 0x8d, 0x19, 0xab, 0x6e, 0xfb, 0x99, 0xf7, 0x1c, 0xd5, 0x72, 0x4b, 0x20,
+ 0x09, 0xaf, 0x44, 0x67,
+};
+static const struct drbg_kat_pr_true kat3398_t = {
+ 7, kat3398_entropyin, kat3398_nonce, kat3398_persstr,
+ kat3398_entropyinpr1, kat3398_addinpr1, kat3398_entropyinpr2,
+ kat3398_addinpr2, kat3398_retbits
+};
+static const struct drbg_kat kat3398 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3398_t
+};
+
+static const unsigned char kat3399_entropyin[] = {
+ 0x83, 0x42, 0xc4, 0xeb, 0xfe, 0x19, 0x38, 0xbe, 0x92, 0x20, 0xf9, 0x76,
+ 0xc9, 0x87, 0x19, 0xeb, 0x83, 0x47, 0xe4, 0xfc, 0x5f, 0xfc, 0xdf, 0x2a,
+ 0x85, 0x79, 0x40, 0xb7, 0x31, 0x37, 0xcc, 0xd4,
+};
+static const unsigned char kat3399_nonce[] = {
+ 0xe3, 0xdb, 0xb1, 0x7d, 0xe4, 0x55, 0xb2, 0x60, 0xba, 0xc8, 0xf6, 0x13,
+ 0x89, 0x08, 0x4e, 0xe2,
+};
+static const unsigned char kat3399_persstr[] = {
+ 0xde, 0x0a, 0xae, 0x98, 0x34, 0x1f, 0xf2, 0xc6, 0xad, 0x81, 0xcc, 0xd2,
+ 0x60, 0xa5, 0xcb, 0x40, 0x5a, 0xc2, 0x0c, 0xd7, 0x1c, 0x63, 0x51, 0x9a,
+ 0x49, 0xf0, 0x46, 0x39, 0x18, 0xc3, 0x39, 0xe1,
+};
+static const unsigned char kat3399_entropyinpr1[] = {
+ 0xf1, 0x66, 0x14, 0x22, 0xc8, 0xa4, 0x59, 0x42, 0x01, 0xc7, 0x02, 0x53,
+ 0x89, 0xef, 0x64, 0x45, 0xe6, 0xfd, 0x6e, 0xf8, 0x1a, 0xb6, 0x51, 0xc6,
+ 0x79, 0x51, 0x52, 0x56, 0x6c, 0x48, 0x5d, 0x22,
+};
+static const unsigned char kat3399_addinpr1[] = {0};
+static const unsigned char kat3399_entropyinpr2[] = {
+ 0x97, 0x27, 0xf2, 0x19, 0x4c, 0x05, 0x58, 0x5b, 0xab, 0xb5, 0x6b, 0xf6,
+ 0xad, 0x84, 0xc2, 0xd2, 0xa3, 0x77, 0xe2, 0x87, 0x86, 0x6c, 0x79, 0x6b,
+ 0x01, 0xc9, 0xb7, 0x33, 0xcb, 0xa4, 0x9c, 0x7b,
+};
+static const unsigned char kat3399_addinpr2[] = {0};
+static const unsigned char kat3399_retbits[] = {
+ 0x63, 0xd6, 0x0d, 0x13, 0x45, 0xcb, 0xa4, 0x84, 0x0a, 0x97, 0x2d, 0xc4,
+ 0x49, 0x5f, 0x0b, 0x70, 0xb0, 0x16, 0x69, 0x7b, 0xc0, 0x9e, 0x37, 0x25,
+ 0xb8, 0xfa, 0x91, 0x8c, 0x38, 0xc9, 0xb3, 0xb0, 0x63, 0x09, 0xe7, 0x28,
+ 0x77, 0xe7, 0x67, 0x78, 0x03, 0x28, 0xed, 0x83, 0x4a, 0xbf, 0xf8, 0x89,
+ 0x32, 0x44, 0x73, 0x58, 0x89, 0x40, 0x94, 0xc3, 0xe2, 0x07, 0x76, 0x9b,
+ 0x2b, 0x18, 0x29, 0xae,
+};
+static const struct drbg_kat_pr_true kat3399_t = {
+ 8, kat3399_entropyin, kat3399_nonce, kat3399_persstr,
+ kat3399_entropyinpr1, kat3399_addinpr1, kat3399_entropyinpr2,
+ kat3399_addinpr2, kat3399_retbits
+};
+static const struct drbg_kat kat3399 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3399_t
+};
+
+static const unsigned char kat3400_entropyin[] = {
+ 0x46, 0xb9, 0x6b, 0x97, 0x8b, 0xe2, 0x92, 0xab, 0xcd, 0xff, 0xfe, 0x4c,
+ 0x35, 0xbb, 0xc6, 0xff, 0xf1, 0x61, 0x05, 0x58, 0x77, 0x39, 0x63, 0xa0,
+ 0x99, 0xad, 0x17, 0xd9, 0x9f, 0x3d, 0xe4, 0x32,
+};
+static const unsigned char kat3400_nonce[] = {
+ 0x2d, 0x13, 0x38, 0x7e, 0xff, 0x79, 0xfe, 0xa8, 0xc8, 0xb0, 0xed, 0xcb,
+ 0xb9, 0x64, 0x3e, 0x22,
+};
+static const unsigned char kat3400_persstr[] = {
+ 0x64, 0xc5, 0x5f, 0xbe, 0xa7, 0x4e, 0xe9, 0xe6, 0x2b, 0xb6, 0xd5, 0x0f,
+ 0xee, 0x5e, 0x6e, 0xdd, 0xd9, 0xe7, 0x00, 0x35, 0xaf, 0x69, 0x94, 0x31,
+ 0x39, 0x44, 0x3c, 0x0d, 0x75, 0xe5, 0x5e, 0x8f,
+};
+static const unsigned char kat3400_entropyinpr1[] = {
+ 0xe3, 0xe4, 0xa5, 0xa1, 0x19, 0x18, 0x80, 0xb7, 0x4d, 0x40, 0xf8, 0xd9,
+ 0x5c, 0x3c, 0xa8, 0x0d, 0xb5, 0x40, 0x32, 0x0b, 0x9a, 0xa5, 0x0c, 0x13,
+ 0xc4, 0x5d, 0x76, 0xca, 0x14, 0xc5, 0x1b, 0xa8,
+};
+static const unsigned char kat3400_addinpr1[] = {0};
+static const unsigned char kat3400_entropyinpr2[] = {
+ 0x52, 0xa8, 0x57, 0x37, 0xe0, 0x00, 0x76, 0x45, 0x9f, 0x91, 0x53, 0xed,
+ 0xed, 0xb1, 0xc2, 0xea, 0xb6, 0x36, 0xd6, 0xbb, 0x9f, 0xbb, 0x59, 0xae,
+ 0x30, 0x8a, 0x04, 0xb5, 0x7c, 0x05, 0x0b, 0x74,
+};
+static const unsigned char kat3400_addinpr2[] = {0};
+static const unsigned char kat3400_retbits[] = {
+ 0x69, 0xc2, 0x3a, 0x0b, 0xd3, 0xb0, 0x9a, 0x18, 0xfa, 0x04, 0xea, 0x7f,
+ 0x81, 0xc9, 0x36, 0x2d, 0x2d, 0x40, 0x46, 0x70, 0xa4, 0x43, 0x99, 0x6b,
+ 0xa0, 0xcf, 0x4f, 0xe4, 0x76, 0xc8, 0x4e, 0x9c, 0x8d, 0x55, 0xa7, 0x7e,
+ 0xcc, 0xb8, 0x54, 0x15, 0x97, 0x57, 0x60, 0x7e, 0xb4, 0x6d, 0x72, 0x04,
+ 0x7b, 0x65, 0xa8, 0x0b, 0x01, 0x8f, 0xae, 0xfc, 0x25, 0xe3, 0x46, 0x06,
+ 0x3c, 0xd9, 0x8f, 0x23,
+};
+static const struct drbg_kat_pr_true kat3400_t = {
+ 9, kat3400_entropyin, kat3400_nonce, kat3400_persstr,
+ kat3400_entropyinpr1, kat3400_addinpr1, kat3400_entropyinpr2,
+ kat3400_addinpr2, kat3400_retbits
+};
+static const struct drbg_kat kat3400 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3400_t
+};
+
+static const unsigned char kat3401_entropyin[] = {
+ 0xf3, 0x53, 0xf2, 0x5a, 0xc6, 0xb8, 0x0d, 0x9a, 0xb3, 0x7d, 0x6e, 0xb6,
+ 0x98, 0x05, 0x84, 0x89, 0xfa, 0x91, 0x7b, 0xdb, 0x9c, 0xf3, 0xdf, 0x9c,
+ 0x7a, 0x71, 0xf9, 0xb6, 0xf2, 0xc5, 0x22, 0x16,
+};
+static const unsigned char kat3401_nonce[] = {
+ 0xe8, 0xbd, 0x09, 0x50, 0xbd, 0x8c, 0x8e, 0xb8, 0xc9, 0x46, 0x67, 0xfd,
+ 0x58, 0x0c, 0x70, 0xe9,
+};
+static const unsigned char kat3401_persstr[] = {
+ 0x51, 0xf1, 0x30, 0x90, 0x29, 0x2c, 0x62, 0x74, 0x07, 0x16, 0x68, 0xe0,
+ 0xb8, 0x8f, 0x04, 0x05, 0x19, 0x6d, 0x2f, 0xb4, 0xa0, 0x81, 0x7f, 0x33,
+ 0x36, 0x5a, 0xca, 0x1b, 0x73, 0x1e, 0x72, 0xfc,
+};
+static const unsigned char kat3401_entropyinpr1[] = {
+ 0x60, 0x44, 0xef, 0x8b, 0xf9, 0x25, 0xac, 0x17, 0x44, 0xac, 0x0c, 0x69,
+ 0xb2, 0x0a, 0x39, 0xe3, 0xa7, 0x60, 0x6c, 0xa5, 0x2c, 0x0a, 0x0e, 0x22,
+ 0x4a, 0x28, 0x30, 0x8c, 0x27, 0x90, 0xb4, 0x0f,
+};
+static const unsigned char kat3401_addinpr1[] = {0};
+static const unsigned char kat3401_entropyinpr2[] = {
+ 0x6b, 0x7a, 0x83, 0x68, 0x4b, 0x33, 0x4e, 0xa7, 0x5f, 0xb8, 0x17, 0x89,
+ 0xef, 0x0c, 0xac, 0xb1, 0x4b, 0x32, 0xd2, 0xd7, 0xcd, 0x99, 0x7a, 0x82,
+ 0xdb, 0x82, 0x29, 0x9d, 0xdb, 0x73, 0xa0, 0x9f,
+};
+static const unsigned char kat3401_addinpr2[] = {0};
+static const unsigned char kat3401_retbits[] = {
+ 0x7b, 0xd3, 0xd0, 0x29, 0x7e, 0xfe, 0x96, 0xe2, 0x8b, 0x71, 0x7c, 0xe9,
+ 0x1c, 0x0c, 0xac, 0x93, 0x16, 0x19, 0xf2, 0x9c, 0xef, 0x7e, 0xb4, 0x5b,
+ 0x89, 0x05, 0x5d, 0x08, 0x15, 0x43, 0x2e, 0x7e, 0x28, 0x97, 0x92, 0x4a,
+ 0x63, 0xec, 0xda, 0xa8, 0xd8, 0x00, 0xa1, 0x03, 0xdb, 0x96, 0xa1, 0x81,
+ 0xb4, 0xee, 0x7e, 0x6a, 0x67, 0xf1, 0x5e, 0x62, 0x9d, 0xb4, 0xbf, 0x8d,
+ 0x58, 0x2f, 0x3f, 0xdb,
+};
+static const struct drbg_kat_pr_true kat3401_t = {
+ 10, kat3401_entropyin, kat3401_nonce, kat3401_persstr,
+ kat3401_entropyinpr1, kat3401_addinpr1, kat3401_entropyinpr2,
+ kat3401_addinpr2, kat3401_retbits
+};
+static const struct drbg_kat kat3401 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3401_t
+};
+
+static const unsigned char kat3402_entropyin[] = {
+ 0x6c, 0x9a, 0x22, 0x4c, 0xe8, 0x21, 0xc1, 0xb2, 0x69, 0x7f, 0xa5, 0x1f,
+ 0x76, 0x8b, 0x1e, 0xb5, 0xdd, 0xff, 0x6d, 0x1b, 0x15, 0x82, 0x45, 0x72,
+ 0xf0, 0x95, 0x8e, 0x41, 0x30, 0x9e, 0xad, 0x05,
+};
+static const unsigned char kat3402_nonce[] = {
+ 0xb5, 0xdc, 0xdd, 0x7d, 0xaf, 0x55, 0x9c, 0xb3, 0xd3, 0xa3, 0xbf, 0xb3,
+ 0xce, 0x48, 0xef, 0x3e,
+};
+static const unsigned char kat3402_persstr[] = {
+ 0x95, 0x99, 0xbe, 0x91, 0x66, 0xfd, 0x6c, 0x35, 0x5a, 0x8f, 0x68, 0x3d,
+ 0x63, 0xb8, 0xc1, 0xe2, 0x8d, 0x82, 0x53, 0x14, 0xdf, 0x3d, 0xcc, 0x26,
+ 0xd2, 0x9b, 0xc5, 0x45, 0x13, 0x6e, 0x44, 0x23,
+};
+static const unsigned char kat3402_entropyinpr1[] = {
+ 0xd4, 0xdb, 0x52, 0x5e, 0xdc, 0x8c, 0x48, 0x6c, 0x72, 0xd9, 0x6c, 0x58,
+ 0x72, 0x4f, 0x16, 0x0f, 0x51, 0xfe, 0x61, 0x94, 0xf5, 0xd0, 0xb5, 0x6c,
+ 0xc2, 0xa8, 0xcb, 0x53, 0x15, 0x1a, 0xa0, 0xd0,
+};
+static const unsigned char kat3402_addinpr1[] = {0};
+static const unsigned char kat3402_entropyinpr2[] = {
+ 0x23, 0x61, 0x51, 0x02, 0x92, 0x45, 0x6d, 0x41, 0x06, 0x09, 0xb0, 0x14,
+ 0x3c, 0x49, 0x82, 0x01, 0x1a, 0x79, 0xc8, 0x68, 0x31, 0xd1, 0x07, 0x65,
+ 0xae, 0x3e, 0x32, 0x54, 0x07, 0x71, 0x02, 0xbc,
+};
+static const unsigned char kat3402_addinpr2[] = {0};
+static const unsigned char kat3402_retbits[] = {
+ 0xaf, 0x5b, 0x9d, 0x31, 0x81, 0x3f, 0xf4, 0x96, 0x7d, 0x42, 0xe3, 0xff,
+ 0x37, 0x07, 0x9c, 0x3f, 0x39, 0xa1, 0xc9, 0xe3, 0x0a, 0x10, 0xd7, 0xf3,
+ 0x0e, 0x14, 0x29, 0x12, 0x6e, 0xea, 0xaf, 0x3a, 0x69, 0x5e, 0xf1, 0x66,
+ 0x55, 0xd6, 0x02, 0x55, 0xb6, 0xd0, 0xe4, 0x92, 0x1a, 0x3f, 0xd1, 0x27,
+ 0xd0, 0x5d, 0xf2, 0x33, 0x8e, 0xd2, 0x5b, 0x11, 0xe4, 0x5c, 0x1f, 0xfd,
+ 0x67, 0x2e, 0x9f, 0x2b,
+};
+static const struct drbg_kat_pr_true kat3402_t = {
+ 11, kat3402_entropyin, kat3402_nonce, kat3402_persstr,
+ kat3402_entropyinpr1, kat3402_addinpr1, kat3402_entropyinpr2,
+ kat3402_addinpr2, kat3402_retbits
+};
+static const struct drbg_kat kat3402 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3402_t
+};
+
+static const unsigned char kat3403_entropyin[] = {
+ 0xe0, 0xd1, 0x97, 0x4d, 0x3e, 0x1c, 0x47, 0x20, 0x73, 0xf2, 0x28, 0xac,
+ 0xb7, 0x97, 0x56, 0x0c, 0x1f, 0x1b, 0xf9, 0xc9, 0x9b, 0xe1, 0x9e, 0xc7,
+ 0x68, 0x1c, 0x82, 0x7a, 0x20, 0x67, 0x34, 0xb4,
+};
+static const unsigned char kat3403_nonce[] = {
+ 0xd3, 0xda, 0xa8, 0xcc, 0x35, 0xa5, 0x90, 0xf7, 0x4d, 0x72, 0x02, 0xf2,
+ 0x0c, 0x4f, 0x58, 0x87,
+};
+static const unsigned char kat3403_persstr[] = {
+ 0xaf, 0x96, 0x50, 0xf0, 0x32, 0x0d, 0x62, 0xe1, 0x13, 0x0a, 0xb8, 0xc5,
+ 0x1e, 0x0a, 0xc4, 0x23, 0xd6, 0xf9, 0x2a, 0xe5, 0x64, 0xaa, 0x1e, 0x89,
+ 0x4c, 0x80, 0x11, 0x0c, 0x25, 0xeb, 0x81, 0x37,
+};
+static const unsigned char kat3403_entropyinpr1[] = {
+ 0xd0, 0x89, 0x3d, 0x61, 0x83, 0x50, 0xe4, 0x90, 0x27, 0xd4, 0xfd, 0x50,
+ 0xe5, 0x02, 0xb6, 0x2e, 0x0c, 0xb6, 0x7c, 0xd1, 0x99, 0x72, 0x27, 0x7c,
+ 0xc1, 0xea, 0xc0, 0xd5, 0xeb, 0x51, 0xdf, 0x44,
+};
+static const unsigned char kat3403_addinpr1[] = {0};
+static const unsigned char kat3403_entropyinpr2[] = {
+ 0xe3, 0xd3, 0xce, 0x9f, 0xe7, 0x3d, 0x15, 0x04, 0x41, 0x21, 0x94, 0xd2,
+ 0x57, 0xfc, 0x8a, 0x25, 0x2c, 0x5c, 0x55, 0xb1, 0x12, 0x76, 0xd3, 0x4d,
+ 0xc9, 0x7d, 0xcf, 0x17, 0x50, 0x64, 0xe3, 0x29,
+};
+static const unsigned char kat3403_addinpr2[] = {0};
+static const unsigned char kat3403_retbits[] = {
+ 0xcb, 0xa4, 0x2a, 0xf0, 0x0d, 0x3a, 0x68, 0xa3, 0x1e, 0x64, 0xa0, 0xd1,
+ 0x7e, 0x8a, 0x4b, 0x74, 0xd1, 0xae, 0xec, 0x20, 0x93, 0x55, 0x6d, 0x99,
+ 0x27, 0x43, 0x4e, 0x72, 0x66, 0x13, 0x49, 0x8a, 0xa8, 0xbe, 0x98, 0x04,
+ 0x44, 0x1b, 0xc6, 0x81, 0xf5, 0x2c, 0xe1, 0x56, 0x84, 0x52, 0x55, 0xc3,
+ 0x5d, 0xcd, 0xce, 0xed, 0x68, 0x6e, 0x45, 0xdc, 0x36, 0x88, 0x62, 0x3b,
+ 0x72, 0x4d, 0x20, 0xf4,
+};
+static const struct drbg_kat_pr_true kat3403_t = {
+ 12, kat3403_entropyin, kat3403_nonce, kat3403_persstr,
+ kat3403_entropyinpr1, kat3403_addinpr1, kat3403_entropyinpr2,
+ kat3403_addinpr2, kat3403_retbits
+};
+static const struct drbg_kat kat3403 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3403_t
+};
+
+static const unsigned char kat3404_entropyin[] = {
+ 0x73, 0x5e, 0xed, 0x4b, 0xec, 0x0c, 0xb8, 0x49, 0x72, 0xef, 0x1f, 0x15,
+ 0xfd, 0x79, 0x39, 0x27, 0x03, 0x25, 0x30, 0x07, 0x68, 0x36, 0xa4, 0xe8,
+ 0x42, 0xd2, 0xe9, 0x9d, 0x0b, 0x89, 0xcc, 0xe4,
+};
+static const unsigned char kat3404_nonce[] = {
+ 0x72, 0x64, 0xce, 0x83, 0xc8, 0x70, 0x2a, 0x1a, 0xcd, 0xc5, 0xea, 0x55,
+ 0x6e, 0x9e, 0x3f, 0xcd,
+};
+static const unsigned char kat3404_persstr[] = {
+ 0xc1, 0x46, 0xf2, 0xf7, 0xc7, 0xc6, 0x7c, 0x33, 0xda, 0x36, 0x21, 0x5d,
+ 0xc6, 0xa1, 0xe2, 0x58, 0xb3, 0x9a, 0x91, 0x71, 0xc0, 0x8f, 0x3c, 0x8d,
+ 0x51, 0x79, 0x48, 0xd6, 0xb9, 0x25, 0x92, 0x00,
+};
+static const unsigned char kat3404_entropyinpr1[] = {
+ 0x9e, 0x32, 0x92, 0x3d, 0x52, 0x23, 0xf4, 0x1b, 0xac, 0x70, 0x1a, 0xfd,
+ 0x4a, 0xd1, 0x86, 0x81, 0x8d, 0xa7, 0xca, 0xbd, 0xce, 0x4b, 0xc5, 0x25,
+ 0xb7, 0x4d, 0x38, 0x4f, 0xff, 0x94, 0x94, 0xfc,
+};
+static const unsigned char kat3404_addinpr1[] = {0};
+static const unsigned char kat3404_entropyinpr2[] = {
+ 0xc6, 0x86, 0x4c, 0x54, 0x45, 0x9c, 0x4f, 0x57, 0x85, 0x4b, 0xf1, 0x3c,
+ 0x5e, 0x77, 0xbb, 0xf5, 0x1c, 0x58, 0x9e, 0x5f, 0xd2, 0x88, 0x12, 0xa1,
+ 0x5e, 0x72, 0x47, 0x1e, 0x70, 0xd2, 0xe2, 0x8c,
+};
+static const unsigned char kat3404_addinpr2[] = {0};
+static const unsigned char kat3404_retbits[] = {
+ 0x50, 0x37, 0x91, 0xfc, 0x73, 0x73, 0x8b, 0xff, 0x85, 0xb6, 0x3f, 0x26,
+ 0xa2, 0x4c, 0x9d, 0xb3, 0xfd, 0x5f, 0x3c, 0x7e, 0x6e, 0xc0, 0xd9, 0xf1,
+ 0xcf, 0x46, 0xb0, 0x1c, 0xf3, 0x36, 0xd1, 0xe8, 0x4e, 0x78, 0x8c, 0x06,
+ 0x26, 0xa3, 0x7d, 0xb6, 0x32, 0x30, 0x49, 0x88, 0xfe, 0x68, 0xae, 0x47,
+ 0x99, 0x62, 0x85, 0xdd, 0x05, 0x2b, 0x10, 0x15, 0x3c, 0x71, 0x78, 0x03,
+ 0x17, 0x80, 0x43, 0x6b,
+};
+static const struct drbg_kat_pr_true kat3404_t = {
+ 13, kat3404_entropyin, kat3404_nonce, kat3404_persstr,
+ kat3404_entropyinpr1, kat3404_addinpr1, kat3404_entropyinpr2,
+ kat3404_addinpr2, kat3404_retbits
+};
+static const struct drbg_kat kat3404 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3404_t
+};
+
+static const unsigned char kat3405_entropyin[] = {
+ 0x54, 0xdb, 0xc6, 0x36, 0x95, 0x76, 0x7d, 0x07, 0xd1, 0x98, 0x61, 0xc2,
+ 0x07, 0xfb, 0xdc, 0x5c, 0x09, 0xe3, 0x98, 0x99, 0x75, 0x95, 0x49, 0xf0,
+ 0x48, 0x2e, 0x36, 0x76, 0x73, 0x69, 0x70, 0x12,
+};
+static const unsigned char kat3405_nonce[] = {
+ 0x29, 0xae, 0x41, 0xb8, 0x77, 0xc8, 0xdd, 0xa9, 0x39, 0xf5, 0xa4, 0x88,
+ 0xf3, 0x77, 0x4f, 0x8f,
+};
+static const unsigned char kat3405_persstr[] = {
+ 0x76, 0x79, 0x9b, 0x83, 0x15, 0x4f, 0xc9, 0xcb, 0xde, 0x61, 0x6f, 0x7e,
+ 0xa9, 0xcf, 0xdc, 0x08, 0x97, 0xa2, 0x13, 0x64, 0x02, 0x99, 0x1c, 0xce,
+ 0xf2, 0xb1, 0x75, 0x95, 0xaa, 0x1d, 0x7c, 0x50,
+};
+static const unsigned char kat3405_entropyinpr1[] = {
+ 0x03, 0xd6, 0x9a, 0x9c, 0xca, 0x9b, 0x95, 0xd1, 0x08, 0x7f, 0xc5, 0x0d,
+ 0x0c, 0xfc, 0xa0, 0x33, 0x50, 0xc9, 0xd4, 0xd0, 0xf1, 0xe8, 0x72, 0x52,
+ 0x2e, 0x2c, 0x60, 0xb7, 0x38, 0x98, 0xae, 0x53,
+};
+static const unsigned char kat3405_addinpr1[] = {0};
+static const unsigned char kat3405_entropyinpr2[] = {
+ 0xf4, 0x30, 0xd8, 0x49, 0x67, 0xcc, 0x46, 0x05, 0x75, 0xd2, 0xb5, 0xad,
+ 0x34, 0xfb, 0x99, 0x80, 0xa3, 0x1f, 0xaf, 0x10, 0x22, 0x9d, 0xbe, 0xdb,
+ 0x64, 0x25, 0x09, 0x9a, 0x0a, 0xa8, 0x33, 0x23,
+};
+static const unsigned char kat3405_addinpr2[] = {0};
+static const unsigned char kat3405_retbits[] = {
+ 0x9a, 0x23, 0xd0, 0x8a, 0x1f, 0x2d, 0x90, 0x7c, 0x9e, 0xb4, 0x73, 0xe5,
+ 0xd4, 0xf3, 0xea, 0xd7, 0x9d, 0x70, 0x05, 0x6a, 0x26, 0x44, 0x63, 0xc7,
+ 0xc8, 0x98, 0x14, 0x80, 0xa7, 0x0d, 0xfd, 0xe5, 0xc5, 0xf9, 0x0a, 0x07,
+ 0x41, 0x57, 0xeb, 0x38, 0x4f, 0x39, 0x1a, 0xc0, 0x1b, 0x1c, 0x31, 0x38,
+ 0xc9, 0xd3, 0x6f, 0x9e, 0x11, 0xb4, 0x71, 0xdc, 0x02, 0x05, 0x67, 0x59,
+ 0x29, 0x62, 0x35, 0xe4,
+};
+static const struct drbg_kat_pr_true kat3405_t = {
+ 14, kat3405_entropyin, kat3405_nonce, kat3405_persstr,
+ kat3405_entropyinpr1, kat3405_addinpr1, kat3405_entropyinpr2,
+ kat3405_addinpr2, kat3405_retbits
+};
+static const struct drbg_kat kat3405 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3405_t
+};
+
+static const unsigned char kat3406_entropyin[] = {
+ 0x53, 0x43, 0x46, 0xa3, 0xe0, 0xba, 0xa6, 0x5d, 0x7a, 0x51, 0x87, 0x1b,
+ 0x6d, 0x63, 0x3a, 0x6f, 0x1e, 0xfa, 0x9f, 0xf5, 0x5d, 0xfd, 0xe3, 0x21,
+ 0x2c, 0x95, 0x02, 0x9a, 0xdf, 0x23, 0x87, 0xd9,
+};
+static const unsigned char kat3406_nonce[] = {
+ 0x0c, 0xbe, 0x99, 0x82, 0x15, 0x09, 0x97, 0x5d, 0x82, 0x4f, 0xd8, 0x26,
+ 0xc4, 0x7d, 0x2a, 0xbc,
+};
+static const unsigned char kat3406_persstr[] = {
+ 0x02, 0x0d, 0x73, 0x40, 0x56, 0x9e, 0x68, 0xd9, 0x92, 0xe6, 0xe8, 0xdd,
+ 0xfb, 0xea, 0xd9, 0xf9, 0x93, 0xc7, 0x4d, 0x97, 0x1e, 0x43, 0x39, 0xfe,
+ 0x91, 0x07, 0x4f, 0x87, 0xe9, 0xd7, 0xd7, 0x77,
+};
+static const unsigned char kat3406_entropyinpr1[] = {
+ 0x28, 0x60, 0x91, 0x70, 0x9d, 0x2e, 0x91, 0xbf, 0xef, 0x66, 0x54, 0xb8,
+ 0x44, 0x9d, 0x5e, 0x55, 0x64, 0xb6, 0xc2, 0xfe, 0x1f, 0x3e, 0x4e, 0x6e,
+ 0x59, 0xfe, 0x77, 0x64, 0x61, 0xbf, 0xb0, 0xdc,
+};
+static const unsigned char kat3406_addinpr1[] = {
+ 0xf4, 0x10, 0x40, 0xef, 0xf2, 0xa7, 0x01, 0x02, 0x87, 0xc2, 0xa7, 0x6d,
+ 0x78, 0x67, 0xa6, 0x6e, 0x61, 0x29, 0x9b, 0xe1, 0xe1, 0x24, 0x7a, 0x6b,
+ 0x22, 0xa6, 0x4b, 0x82, 0x9a, 0xda, 0x86, 0x24,
+};
+static const unsigned char kat3406_entropyinpr2[] = {
+ 0xe6, 0x8e, 0x12, 0x7b, 0x2e, 0x5b, 0x9d, 0x65, 0x39, 0xc2, 0x6f, 0x7e,
+ 0x78, 0xbe, 0xc1, 0x33, 0x14, 0xe3, 0x7f, 0xeb, 0xdb, 0x71, 0x05, 0xd1,
+ 0xd6, 0x5f, 0x0b, 0xde, 0x23, 0xc8, 0x7d, 0x38,
+};
+static const unsigned char kat3406_addinpr2[] = {
+ 0x94, 0xef, 0xe6, 0x8e, 0x21, 0x85, 0x64, 0x6a, 0x17, 0xbb, 0x8a, 0x83,
+ 0x26, 0x81, 0x42, 0xa7, 0xb7, 0xa0, 0x27, 0x86, 0xc1, 0xee, 0x90, 0xab,
+ 0x8f, 0x73, 0x99, 0xcc, 0xf5, 0x43, 0xde, 0x26,
+};
+static const unsigned char kat3406_retbits[] = {
+ 0xda, 0x63, 0x89, 0xd1, 0x51, 0xe3, 0xb2, 0xb3, 0x32, 0xfb, 0xcc, 0x02,
+ 0xb2, 0xcc, 0x5a, 0xf4, 0xf6, 0x98, 0x35, 0xe9, 0xfb, 0xbe, 0x19, 0x13,
+ 0x0f, 0x91, 0xcb, 0xf3, 0x0a, 0x3c, 0x24, 0x58, 0x0e, 0xbf, 0xb4, 0x31,
+ 0x1b, 0x34, 0x87, 0xe9, 0xd6, 0xa6, 0x1d, 0xe9, 0xdc, 0x28, 0x42, 0xc1,
+ 0x07, 0x15, 0x21, 0x58, 0xb0, 0xe7, 0x5a, 0x93, 0x2c, 0x38, 0xe5, 0xb8,
+ 0xdd, 0xff, 0x10, 0xe6,
+};
+static const struct drbg_kat_pr_true kat3406_t = {
+ 0, kat3406_entropyin, kat3406_nonce, kat3406_persstr,
+ kat3406_entropyinpr1, kat3406_addinpr1, kat3406_entropyinpr2,
+ kat3406_addinpr2, kat3406_retbits
+};
+static const struct drbg_kat kat3406 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3406_t
+};
+
+static const unsigned char kat3407_entropyin[] = {
+ 0x44, 0x3c, 0x6f, 0xfd, 0x30, 0xba, 0x94, 0xd7, 0xbc, 0x6c, 0x8d, 0xed,
+ 0x25, 0x7f, 0x9a, 0x63, 0xdf, 0x33, 0x9d, 0x39, 0x39, 0xf0, 0xa8, 0xd9,
+ 0x3e, 0x4f, 0xed, 0x65, 0xd9, 0x86, 0x31, 0xa5,
+};
+static const unsigned char kat3407_nonce[] = {
+ 0xd4, 0xdd, 0x3a, 0xe9, 0x8e, 0x45, 0x65, 0x59, 0x0e, 0x5b, 0x03, 0xc8,
+ 0x7a, 0x77, 0xce, 0x59,
+};
+static const unsigned char kat3407_persstr[] = {
+ 0xe0, 0xdd, 0x7a, 0x9b, 0xbe, 0x35, 0x69, 0xf4, 0xbe, 0x1e, 0x8e, 0x4c,
+ 0x4b, 0x7d, 0x37, 0x09, 0x17, 0x02, 0x2e, 0x6f, 0x6e, 0x8e, 0x2c, 0x04,
+ 0x92, 0x48, 0x10, 0x08, 0x00, 0x85, 0xf6, 0xb8,
+};
+static const unsigned char kat3407_entropyinpr1[] = {
+ 0xed, 0x4c, 0x48, 0xec, 0xca, 0x67, 0x60, 0xb6, 0xae, 0xda, 0xce, 0x40,
+ 0x94, 0xde, 0x3c, 0x8f, 0xda, 0x82, 0xbc, 0x5e, 0x43, 0x0a, 0xec, 0x1c,
+ 0x3d, 0x09, 0x01, 0x2d, 0x9f, 0xc1, 0x9f, 0xf5,
+};
+static const unsigned char kat3407_addinpr1[] = {
+ 0xc7, 0xeb, 0xd6, 0xfc, 0xaf, 0xbb, 0x36, 0x14, 0xf4, 0x79, 0xfd, 0xdb,
+ 0x73, 0x4c, 0xd9, 0xbc, 0xc1, 0x85, 0xed, 0xa9, 0x91, 0x89, 0x0b, 0x4a,
+ 0xab, 0xba, 0xcc, 0x10, 0x20, 0xc4, 0x9b, 0xf5,
+};
+static const unsigned char kat3407_entropyinpr2[] = {
+ 0xac, 0x76, 0xc7, 0x0a, 0x15, 0x6a, 0x7e, 0x4a, 0x9b, 0x1a, 0x02, 0x8a,
+ 0x3a, 0xc7, 0x64, 0x8f, 0x66, 0x16, 0x40, 0x82, 0xb4, 0x63, 0xf8, 0xbf,
+ 0x14, 0x9d, 0xd8, 0xd9, 0x95, 0x0a, 0x52, 0xa7,
+};
+static const unsigned char kat3407_addinpr2[] = {
+ 0x27, 0xfa, 0x20, 0x4c, 0xd6, 0xec, 0xc4, 0xc4, 0x3b, 0x14, 0xc4, 0x45,
+ 0x49, 0xeb, 0x7a, 0x0c, 0x7a, 0xc5, 0xb5, 0xd6, 0x03, 0x8e, 0x44, 0xe4,
+ 0x8c, 0x72, 0x78, 0xdf, 0xdb, 0x20, 0x9b, 0xe8,
+};
+static const unsigned char kat3407_retbits[] = {
+ 0x74, 0xf8, 0x0e, 0x6d, 0x8a, 0x61, 0xdc, 0x7e, 0x12, 0x9f, 0x4e, 0xb6,
+ 0x8e, 0xe6, 0x0e, 0xca, 0xee, 0xa7, 0xaf, 0xef, 0xbd, 0xbf, 0x88, 0x3c,
+ 0x35, 0xd3, 0xe4, 0xdb, 0x18, 0x93, 0x8d, 0xb0, 0x64, 0x36, 0x68, 0x26,
+ 0x5f, 0x4b, 0x21, 0xa1, 0x8d, 0xc0, 0xdc, 0x20, 0x92, 0x19, 0x67, 0x1f,
+ 0xe4, 0x94, 0xad, 0xd3, 0x7b, 0x88, 0x49, 0x19, 0xb2, 0xec, 0xab, 0x1c,
+ 0xbd, 0xdc, 0x9d, 0x10,
+};
+static const struct drbg_kat_pr_true kat3407_t = {
+ 1, kat3407_entropyin, kat3407_nonce, kat3407_persstr,
+ kat3407_entropyinpr1, kat3407_addinpr1, kat3407_entropyinpr2,
+ kat3407_addinpr2, kat3407_retbits
+};
+static const struct drbg_kat kat3407 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3407_t
+};
+
+static const unsigned char kat3408_entropyin[] = {
+ 0x39, 0x90, 0x59, 0x84, 0x4d, 0x1b, 0x57, 0xeb, 0x78, 0x81, 0x5d, 0xe9,
+ 0xf1, 0x31, 0xce, 0x7a, 0x4b, 0x38, 0xb6, 0xb9, 0x39, 0x98, 0x0a, 0xc3,
+ 0x1a, 0x7f, 0xb1, 0x49, 0xa9, 0x9f, 0x87, 0x45,
+};
+static const unsigned char kat3408_nonce[] = {
+ 0xc9, 0xb7, 0xff, 0xb6, 0x6a, 0xe7, 0xd0, 0xd6, 0xdc, 0x1b, 0xb2, 0x8b,
+ 0x9e, 0x54, 0xfa, 0xd2,
+};
+static const unsigned char kat3408_persstr[] = {
+ 0xf1, 0x0a, 0x65, 0x66, 0x5b, 0xb9, 0xa6, 0xfd, 0x2d, 0x7f, 0x88, 0x0b,
+ 0x4a, 0x9d, 0x55, 0x93, 0x4f, 0x8b, 0xc8, 0x24, 0xde, 0x66, 0x06, 0xdc,
+ 0xf8, 0x89, 0x90, 0x76, 0xf4, 0x75, 0x1b, 0x39,
+};
+static const unsigned char kat3408_entropyinpr1[] = {
+ 0x28, 0xf4, 0x30, 0x2a, 0xc5, 0x6c, 0x09, 0x51, 0x18, 0x41, 0x84, 0xdc,
+ 0x4c, 0xbb, 0x01, 0xc0, 0x7b, 0x48, 0x2d, 0xee, 0x61, 0x15, 0xe7, 0xe9,
+ 0x40, 0xb0, 0x0b, 0xf9, 0x61, 0x22, 0x6c, 0x05,
+};
+static const unsigned char kat3408_addinpr1[] = {
+ 0x4a, 0x41, 0x63, 0x63, 0x39, 0x4c, 0x08, 0x48, 0x4a, 0xc2, 0xf2, 0x47,
+ 0xea, 0x6d, 0xfd, 0x95, 0xd4, 0xc8, 0x29, 0xe1, 0x6b, 0x4c, 0xe9, 0xdd,
+ 0x16, 0x1e, 0x1f, 0x3e, 0x5f, 0x36, 0xfe, 0xfb,
+};
+static const unsigned char kat3408_entropyinpr2[] = {
+ 0x3e, 0x07, 0x6a, 0x04, 0xd1, 0x12, 0x89, 0x1c, 0x57, 0x4f, 0x66, 0x91,
+ 0xd4, 0x41, 0x43, 0x9f, 0xbe, 0x49, 0x93, 0x75, 0x17, 0x56, 0xe0, 0xa9,
+ 0x01, 0x3b, 0x68, 0xb4, 0x66, 0x14, 0x2b, 0x7f,
+};
+static const unsigned char kat3408_addinpr2[] = {
+ 0x1a, 0x76, 0xe1, 0x0d, 0x5e, 0x18, 0x38, 0x0b, 0x09, 0x78, 0xc6, 0xa2,
+ 0xf9, 0x7e, 0xaa, 0x10, 0xfa, 0xa1, 0x22, 0xc5, 0x0b, 0x89, 0x73, 0xa6,
+ 0x5b, 0x30, 0x01, 0x44, 0x0c, 0x26, 0xeb, 0x81,
+};
+static const unsigned char kat3408_retbits[] = {
+ 0x8e, 0x48, 0x18, 0xd7, 0xc1, 0x0d, 0x63, 0xd0, 0x67, 0x00, 0x6b, 0xa3,
+ 0x5f, 0x46, 0x36, 0xc3, 0x0f, 0x32, 0xa9, 0x62, 0x46, 0x7d, 0x43, 0x7d,
+ 0x2a, 0xca, 0xcd, 0x42, 0xd5, 0xb5, 0x2d, 0x4c, 0x75, 0x8f, 0xb3, 0x35,
+ 0xd9, 0xde, 0x88, 0xe6, 0xf6, 0x40, 0x7f, 0x2f, 0x6c, 0x7d, 0x2a, 0xc1,
+ 0x73, 0xd5, 0xfb, 0x94, 0x04, 0x5b, 0xc8, 0x34, 0x82, 0xb0, 0x87, 0xd6,
+ 0x33, 0xc5, 0x83, 0xe5,
+};
+static const struct drbg_kat_pr_true kat3408_t = {
+ 2, kat3408_entropyin, kat3408_nonce, kat3408_persstr,
+ kat3408_entropyinpr1, kat3408_addinpr1, kat3408_entropyinpr2,
+ kat3408_addinpr2, kat3408_retbits
+};
+static const struct drbg_kat kat3408 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3408_t
+};
+
+static const unsigned char kat3409_entropyin[] = {
+ 0x4d, 0x62, 0x68, 0x47, 0x28, 0x7b, 0x6a, 0x49, 0x4e, 0xbd, 0x86, 0x0c,
+ 0x68, 0x6a, 0x5c, 0xed, 0x43, 0x3f, 0x44, 0xe1, 0xdf, 0x47, 0x6c, 0x35,
+ 0x9b, 0xd1, 0xa5, 0x6a, 0xa5, 0xda, 0xd1, 0xb1,
+};
+static const unsigned char kat3409_nonce[] = {
+ 0x07, 0xe6, 0xa8, 0x6f, 0x3b, 0xf4, 0x9d, 0xcb, 0xa6, 0xbc, 0x7e, 0x3e,
+ 0x78, 0x07, 0xe7, 0x57,
+};
+static const unsigned char kat3409_persstr[] = {
+ 0x78, 0xd7, 0x56, 0x66, 0x95, 0x21, 0x7d, 0xb1, 0x71, 0x87, 0x42, 0xc3,
+ 0x7b, 0x59, 0x62, 0xc6, 0xb3, 0xb7, 0x86, 0xf8, 0x71, 0xd0, 0x38, 0xac,
+ 0xe0, 0xf2, 0x2c, 0x72, 0xae, 0xbf, 0xfd, 0x50,
+};
+static const unsigned char kat3409_entropyinpr1[] = {
+ 0x32, 0x40, 0x8b, 0x60, 0xbe, 0xe5, 0x9d, 0x57, 0xa6, 0x2e, 0x64, 0x66,
+ 0xc0, 0x25, 0xac, 0x2a, 0xeb, 0xdb, 0x23, 0x22, 0x69, 0xb5, 0x8e, 0x36,
+ 0x20, 0x45, 0x71, 0x63, 0x5f, 0x86, 0x92, 0x30,
+};
+static const unsigned char kat3409_addinpr1[] = {
+ 0x98, 0xaf, 0x9b, 0x2b, 0xee, 0xbe, 0x5d, 0x20, 0x7e, 0xb5, 0x3d, 0x7c,
+ 0x4a, 0x54, 0xb1, 0x19, 0x65, 0x49, 0xf7, 0x0f, 0x00, 0x99, 0xea, 0x10,
+ 0x38, 0x0d, 0xca, 0xcf, 0xb9, 0x65, 0xf4, 0x9b,
+};
+static const unsigned char kat3409_entropyinpr2[] = {
+ 0xb2, 0x93, 0x14, 0xc6, 0xfb, 0x88, 0x93, 0x81, 0x94, 0x9f, 0x04, 0x99,
+ 0xcc, 0x2e, 0xc6, 0x2b, 0xb6, 0x03, 0x65, 0x81, 0x3d, 0x46, 0x48, 0x26,
+ 0x25, 0x56, 0x08, 0x97, 0x38, 0xfb, 0x64, 0xa1,
+};
+static const unsigned char kat3409_addinpr2[] = {
+ 0x80, 0x23, 0xc0, 0x56, 0x2d, 0xe8, 0x9e, 0x77, 0xbf, 0x9d, 0x43, 0xcf,
+ 0x31, 0xdf, 0xd2, 0xc0, 0xdc, 0x63, 0x6e, 0xb4, 0x0f, 0x61, 0x57, 0x9b,
+ 0xea, 0x60, 0xe8, 0x0d, 0xd3, 0x09, 0xe9, 0x55,
+};
+static const unsigned char kat3409_retbits[] = {
+ 0x6d, 0x36, 0x92, 0xb8, 0x2b, 0x7c, 0x18, 0x93, 0x66, 0xd1, 0xd3, 0xe6,
+ 0x77, 0x34, 0xb5, 0x69, 0xdd, 0x91, 0x08, 0x7f, 0x40, 0xef, 0x8c, 0xe0,
+ 0xca, 0x27, 0xd0, 0x0d, 0xe1, 0xe1, 0xce, 0xd0, 0x3e, 0x36, 0xd8, 0xba,
+ 0xa3, 0x76, 0x5e, 0xec, 0x4f, 0x04, 0x26, 0x15, 0x9d, 0x75, 0xcd, 0xe0,
+ 0x69, 0x0a, 0xc5, 0x87, 0x55, 0xa7, 0x2a, 0x47, 0x69, 0xae, 0xe8, 0x6e,
+ 0xac, 0xf7, 0x11, 0x2f,
+};
+static const struct drbg_kat_pr_true kat3409_t = {
+ 3, kat3409_entropyin, kat3409_nonce, kat3409_persstr,
+ kat3409_entropyinpr1, kat3409_addinpr1, kat3409_entropyinpr2,
+ kat3409_addinpr2, kat3409_retbits
+};
+static const struct drbg_kat kat3409 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3409_t
+};
+
+static const unsigned char kat3410_entropyin[] = {
+ 0x9e, 0x0b, 0x8f, 0xda, 0xe5, 0x7b, 0xaf, 0xd5, 0x37, 0x02, 0x94, 0xdb,
+ 0x3c, 0xb0, 0x9e, 0x6a, 0xd8, 0xf0, 0xf0, 0xb9, 0x0f, 0x68, 0x7c, 0x70,
+ 0xdc, 0xd2, 0xc5, 0xf6, 0xfb, 0x28, 0x5f, 0x46,
+};
+static const unsigned char kat3410_nonce[] = {
+ 0xe8, 0x4f, 0xd4, 0xbf, 0x3d, 0xeb, 0xed, 0x96, 0xf9, 0x67, 0x30, 0xf4,
+ 0x8b, 0x6f, 0x44, 0xb2,
+};
+static const unsigned char kat3410_persstr[] = {
+ 0xc4, 0x71, 0xd4, 0x44, 0xc0, 0x8a, 0x08, 0x67, 0x77, 0xa7, 0xd3, 0xef,
+ 0xc2, 0x33, 0xc2, 0x15, 0x69, 0x6e, 0x37, 0x1c, 0x3a, 0x9d, 0x05, 0x5c,
+ 0xbd, 0x54, 0x2c, 0xbe, 0x86, 0xff, 0x4e, 0x13,
+};
+static const unsigned char kat3410_entropyinpr1[] = {
+ 0x90, 0x3c, 0x73, 0xeb, 0x49, 0xf5, 0x32, 0x81, 0xa0, 0x83, 0xc7, 0x36,
+ 0xd0, 0x62, 0xe8, 0xe8, 0x4b, 0x59, 0xdb, 0x1f, 0x91, 0x5a, 0x8d, 0x25,
+ 0x05, 0x1a, 0x6a, 0x82, 0xac, 0xc3, 0x0c, 0x03,
+};
+static const unsigned char kat3410_addinpr1[] = {
+ 0x13, 0x39, 0xa2, 0xd8, 0x63, 0x30, 0xbe, 0xf5, 0x86, 0x90, 0x32, 0xd5,
+ 0x5e, 0xd4, 0xf0, 0x30, 0xa6, 0xba, 0xc4, 0x60, 0x76, 0x2f, 0x5a, 0xe6,
+ 0x13, 0x78, 0xc7, 0xb1, 0xf9, 0xe6, 0x36, 0xb4,
+};
+static const unsigned char kat3410_entropyinpr2[] = {
+ 0x8e, 0x98, 0x88, 0xfa, 0x5f, 0xb0, 0xaa, 0x27, 0x50, 0xaa, 0xcf, 0xa9,
+ 0x58, 0x17, 0x5c, 0xce, 0x54, 0xc1, 0x23, 0x30, 0x20, 0x93, 0x81, 0xfd,
+ 0x73, 0x50, 0xa6, 0x58, 0x12, 0xa4, 0xb1, 0x8d,
+};
+static const unsigned char kat3410_addinpr2[] = {
+ 0x36, 0x52, 0xa0, 0xee, 0x38, 0xa9, 0x26, 0xf5, 0x0a, 0xc5, 0x6e, 0x07,
+ 0x7f, 0xe8, 0x89, 0x40, 0x52, 0x33, 0x43, 0xcf, 0x39, 0xd1, 0x5a, 0x30,
+ 0xa6, 0xe3, 0x03, 0xb2, 0x8c, 0xe6, 0x5b, 0x53,
+};
+static const unsigned char kat3410_retbits[] = {
+ 0xac, 0xa9, 0x60, 0x2e, 0x63, 0x66, 0x98, 0x42, 0xc0, 0xb6, 0xa8, 0x0a,
+ 0x7d, 0xbf, 0x71, 0xf5, 0x1a, 0xc9, 0xbc, 0xc6, 0x24, 0xc9, 0x85, 0x8f,
+ 0x41, 0xea, 0x3a, 0x55, 0xae, 0x9d, 0xb8, 0x94, 0x93, 0x0b, 0x90, 0x3d,
+ 0xd2, 0x07, 0x49, 0xb4, 0xa9, 0xb8, 0x7f, 0x9a, 0xd2, 0xc2, 0xca, 0xc4,
+ 0x4d, 0x43, 0xa2, 0x6a, 0x14, 0xff, 0x7f, 0xee, 0x6f, 0x52, 0x38, 0xa2,
+ 0xe5, 0x69, 0xc8, 0xf8,
+};
+static const struct drbg_kat_pr_true kat3410_t = {
+ 4, kat3410_entropyin, kat3410_nonce, kat3410_persstr,
+ kat3410_entropyinpr1, kat3410_addinpr1, kat3410_entropyinpr2,
+ kat3410_addinpr2, kat3410_retbits
+};
+static const struct drbg_kat kat3410 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3410_t
+};
+
+static const unsigned char kat3411_entropyin[] = {
+ 0x75, 0x2f, 0x52, 0x8b, 0x9a, 0x1c, 0x0f, 0x2e, 0x3c, 0xc9, 0x9c, 0x24,
+ 0x1f, 0x1e, 0x2c, 0xa7, 0x56, 0x1c, 0xac, 0x4a, 0x34, 0xe9, 0x4e, 0x73,
+ 0x94, 0x78, 0x51, 0x2e, 0xd3, 0x28, 0x68, 0xd7,
+};
+static const unsigned char kat3411_nonce[] = {
+ 0x9d, 0x75, 0xe0, 0xdb, 0x08, 0x85, 0xb9, 0xeb, 0x35, 0x89, 0x45, 0x1a,
+ 0xb9, 0xf9, 0xd0, 0x54,
+};
+static const unsigned char kat3411_persstr[] = {
+ 0x81, 0xf0, 0x98, 0x61, 0x01, 0xd4, 0xfe, 0x5b, 0x7c, 0x85, 0xb8, 0x92,
+ 0x74, 0xf8, 0x8f, 0xe0, 0xcf, 0x0f, 0xa4, 0x20, 0x4d, 0x5a, 0xb2, 0x3f,
+ 0x14, 0x9b, 0xc6, 0x2c, 0x83, 0x6d, 0x96, 0xab,
+};
+static const unsigned char kat3411_entropyinpr1[] = {
+ 0x7f, 0x65, 0xa3, 0x3f, 0x99, 0x9f, 0x35, 0xb3, 0xe5, 0x7f, 0x37, 0xc2,
+ 0xe1, 0x4f, 0xbb, 0x03, 0x4f, 0x97, 0x89, 0xe3, 0xa2, 0xbc, 0x9c, 0x8c,
+ 0x6f, 0xd0, 0x15, 0xe5, 0xcb, 0x66, 0x45, 0x8e,
+};
+static const unsigned char kat3411_addinpr1[] = {
+ 0x3d, 0x46, 0xa2, 0x28, 0x0d, 0x08, 0xb2, 0x6e, 0x7c, 0xd7, 0x01, 0x8d,
+ 0x22, 0x59, 0xc7, 0xcf, 0x7b, 0xd6, 0xc1, 0xbd, 0xf2, 0x77, 0xf9, 0xb6,
+ 0xe6, 0xf3, 0x4c, 0xc4, 0xa5, 0x7f, 0x05, 0x75,
+};
+static const unsigned char kat3411_entropyinpr2[] = {
+ 0xfe, 0xf1, 0xa7, 0x14, 0x85, 0x8a, 0x06, 0x14, 0xa2, 0x3b, 0x4a, 0xc0,
+ 0x15, 0x1d, 0x6b, 0xb9, 0xda, 0xb4, 0x27, 0xda, 0xa4, 0x76, 0x86, 0xd8,
+ 0xa3, 0xf6, 0x99, 0x9d, 0x63, 0x09, 0x98, 0xd6,
+};
+static const unsigned char kat3411_addinpr2[] = {
+ 0x20, 0x88, 0x69, 0x97, 0xf8, 0x8b, 0x4d, 0x27, 0x4c, 0xad, 0xe0, 0x5a,
+ 0x05, 0x42, 0x7e, 0xce, 0xa3, 0x5d, 0xb5, 0x15, 0x01, 0x3f, 0xf2, 0x16,
+ 0x46, 0x9a, 0x1c, 0x5f, 0x13, 0xaa, 0x7e, 0x45,
+};
+static const unsigned char kat3411_retbits[] = {
+ 0x1d, 0x67, 0xf1, 0x61, 0x99, 0x10, 0x44, 0x53, 0x48, 0xa0, 0x26, 0x3d,
+ 0x80, 0x2e, 0x38, 0xfd, 0x54, 0xdf, 0x01, 0x34, 0xda, 0x92, 0x5b, 0x44,
+ 0x38, 0xe0, 0xa9, 0x5e, 0x41, 0x91, 0xf9, 0x5c, 0x77, 0xe1, 0xc2, 0xa3,
+ 0x98, 0x04, 0xbe, 0x37, 0xb2, 0x58, 0x63, 0x9e, 0xe9, 0x84, 0xf3, 0x7f,
+ 0x74, 0x92, 0x17, 0x29, 0x39, 0x5a, 0xbf, 0xa4, 0xb3, 0x7a, 0x36, 0xf6,
+ 0x0e, 0x4b, 0x79, 0xdd,
+};
+static const struct drbg_kat_pr_true kat3411_t = {
+ 5, kat3411_entropyin, kat3411_nonce, kat3411_persstr,
+ kat3411_entropyinpr1, kat3411_addinpr1, kat3411_entropyinpr2,
+ kat3411_addinpr2, kat3411_retbits
+};
+static const struct drbg_kat kat3411 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3411_t
+};
+
+static const unsigned char kat3412_entropyin[] = {
+ 0xc0, 0xb4, 0xf6, 0x57, 0xdb, 0xe3, 0xc4, 0x9b, 0x45, 0x8d, 0xb5, 0x59,
+ 0x31, 0xe8, 0x3a, 0xc7, 0xe9, 0x7a, 0xd8, 0xb1, 0x98, 0x25, 0x46, 0xf0,
+ 0xb4, 0xab, 0x48, 0xa2, 0x83, 0xcb, 0x18, 0x1c,
+};
+static const unsigned char kat3412_nonce[] = {
+ 0x7d, 0xd9, 0x41, 0xae, 0xe8, 0x5d, 0x2f, 0x86, 0xed, 0x5a, 0x2d, 0xe8,
+ 0xd9, 0xdc, 0x3a, 0x8c,
+};
+static const unsigned char kat3412_persstr[] = {
+ 0x31, 0x15, 0xf3, 0x9e, 0xa0, 0xd4, 0x1f, 0xeb, 0x15, 0xcf, 0x81, 0xdf,
+ 0x2f, 0x56, 0x9f, 0xcd, 0x40, 0x02, 0xbf, 0xb9, 0x1c, 0x23, 0x49, 0x58,
+ 0x81, 0x2b, 0x96, 0xdb, 0x11, 0x01, 0x5a, 0x28,
+};
+static const unsigned char kat3412_entropyinpr1[] = {
+ 0x1c, 0xde, 0x14, 0xf5, 0xbc, 0x73, 0xdf, 0x2d, 0xbd, 0x6d, 0xb0, 0x55,
+ 0xed, 0xde, 0x7b, 0x4e, 0xc7, 0xd7, 0x69, 0xb3, 0xc3, 0x27, 0xd8, 0x00,
+ 0xcd, 0xf7, 0x1f, 0x18, 0x32, 0x07, 0xfc, 0x15,
+};
+static const unsigned char kat3412_addinpr1[] = {
+ 0xc6, 0x64, 0xf2, 0xc5, 0x52, 0x35, 0xca, 0x71, 0xa3, 0x94, 0x01, 0x0f,
+ 0x8d, 0xc0, 0xeb, 0x5e, 0x7e, 0xb8, 0x4c, 0xf3, 0x25, 0x42, 0x5d, 0x57,
+ 0x34, 0x3b, 0x7a, 0x47, 0x21, 0x8b, 0x05, 0x7c,
+};
+static const unsigned char kat3412_entropyinpr2[] = {
+ 0xbb, 0x6e, 0x54, 0x37, 0x80, 0x69, 0x75, 0x8a, 0x09, 0xaa, 0xc0, 0xb9,
+ 0x87, 0xea, 0x55, 0x64, 0x62, 0xbb, 0x2d, 0x7a, 0x18, 0x8e, 0x96, 0x17,
+ 0xab, 0x36, 0xdd, 0x6f, 0x66, 0xbc, 0x3d, 0x85,
+};
+static const unsigned char kat3412_addinpr2[] = {
+ 0x8e, 0x2c, 0x01, 0xf8, 0x4a, 0x41, 0x22, 0xde, 0x34, 0x12, 0x4e, 0x01,
+ 0xf1, 0x27, 0x38, 0x77, 0x1a, 0x48, 0xad, 0x09, 0xdb, 0xd4, 0x69, 0x48,
+ 0x0a, 0xd9, 0x46, 0x6f, 0x13, 0x97, 0xfe, 0xf7,
+};
+static const unsigned char kat3412_retbits[] = {
+ 0x6b, 0x40, 0xfb, 0x4d, 0x95, 0x04, 0x3f, 0x57, 0x9b, 0x05, 0xa4, 0xba,
+ 0xfc, 0x12, 0x74, 0xb8, 0x8e, 0xa8, 0xad, 0x54, 0x42, 0xab, 0x5f, 0xfc,
+ 0xf8, 0xa0, 0x52, 0x12, 0x93, 0xe7, 0xc5, 0x54, 0x33, 0x61, 0x38, 0x00,
+ 0x4a, 0xd5, 0xd3, 0xca, 0x79, 0x7e, 0x1b, 0x3d, 0xd1, 0xb5, 0x8c, 0x50,
+ 0xea, 0x30, 0x23, 0x42, 0x89, 0x80, 0x52, 0x33, 0xdd, 0x85, 0xf4, 0x60,
+ 0xa3, 0xbc, 0x31, 0xb1,
+};
+static const struct drbg_kat_pr_true kat3412_t = {
+ 6, kat3412_entropyin, kat3412_nonce, kat3412_persstr,
+ kat3412_entropyinpr1, kat3412_addinpr1, kat3412_entropyinpr2,
+ kat3412_addinpr2, kat3412_retbits
+};
+static const struct drbg_kat kat3412 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3412_t
+};
+
+static const unsigned char kat3413_entropyin[] = {
+ 0x94, 0x5e, 0x56, 0xdd, 0x12, 0x1a, 0x32, 0x92, 0x4e, 0x9a, 0x5a, 0xe1,
+ 0x9b, 0x79, 0x0f, 0x14, 0xec, 0x49, 0x03, 0x1f, 0xa7, 0x30, 0x08, 0x7c,
+ 0xa4, 0xed, 0xe5, 0x0e, 0x12, 0x29, 0xc9, 0x35,
+};
+static const unsigned char kat3413_nonce[] = {
+ 0xc7, 0x03, 0xdc, 0xeb, 0xac, 0x6b, 0x6e, 0x89, 0x89, 0x91, 0x10, 0xa2,
+ 0x40, 0x4c, 0x52, 0x26,
+};
+static const unsigned char kat3413_persstr[] = {
+ 0xfd, 0x27, 0x55, 0x11, 0x55, 0xf3, 0xd8, 0xfa, 0x0a, 0xf5, 0xae, 0x41,
+ 0x3a, 0x97, 0xc8, 0x40, 0x12, 0x0d, 0x56, 0x59, 0xfb, 0x6c, 0x8a, 0x19,
+ 0x45, 0xe5, 0x13, 0x6a, 0xbf, 0x3a, 0x46, 0x39,
+};
+static const unsigned char kat3413_entropyinpr1[] = {
+ 0x4e, 0xa5, 0xb5, 0x17, 0xee, 0x3c, 0x00, 0xa0, 0x85, 0x50, 0xb5, 0x9f,
+ 0xb8, 0xa9, 0xb9, 0x97, 0x1b, 0x39, 0x2c, 0xa4, 0xba, 0xcd, 0x93, 0xc1,
+ 0x42, 0x11, 0xa4, 0xd4, 0x49, 0xf3, 0x30, 0x4b,
+};
+static const unsigned char kat3413_addinpr1[] = {
+ 0xe8, 0x3a, 0x46, 0xc1, 0x02, 0xc1, 0xd6, 0x22, 0xa6, 0xac, 0x2c, 0xc5,
+ 0x1d, 0x0b, 0xf8, 0x54, 0x1e, 0x5d, 0xfa, 0x34, 0xb2, 0xfb, 0x63, 0x6e,
+ 0x64, 0xfc, 0xb7, 0x84, 0x22, 0x9d, 0xca, 0xdb,
+};
+static const unsigned char kat3413_entropyinpr2[] = {
+ 0xe8, 0xbc, 0x82, 0x45, 0xb5, 0x10, 0x5f, 0x9e, 0xf6, 0x4b, 0x13, 0xc6,
+ 0x0a, 0xd0, 0xcf, 0x95, 0xaa, 0x14, 0x5f, 0x7d, 0xda, 0x66, 0x16, 0x1e,
+ 0x84, 0xf9, 0x53, 0xa1, 0xec, 0xde, 0xb2, 0x6a,
+};
+static const unsigned char kat3413_addinpr2[] = {
+ 0x3a, 0xdd, 0x8a, 0x8b, 0xf9, 0x5e, 0x1d, 0xc5, 0x6a, 0x1b, 0xae, 0x60,
+ 0xa3, 0x6c, 0xd8, 0xd5, 0xec, 0x10, 0x96, 0x2a, 0xf9, 0xeb, 0x09, 0xca,
+ 0x48, 0x9b, 0xf6, 0xa5, 0xc1, 0xc1, 0x29, 0x1b,
+};
+static const unsigned char kat3413_retbits[] = {
+ 0x6a, 0x4d, 0xd3, 0x61, 0x4b, 0x64, 0x28, 0x33, 0x92, 0xba, 0xb1, 0xbd,
+ 0x2a, 0xbc, 0x26, 0x57, 0x0e, 0x23, 0x11, 0x6b, 0x72, 0x7f, 0x99, 0x5d,
+ 0xf4, 0xd2, 0x91, 0x9c, 0x63, 0x06, 0x4d, 0xfb, 0x1e, 0xda, 0xb0, 0x38,
+ 0x8c, 0xc4, 0x6c, 0xe5, 0x82, 0x33, 0x9b, 0x8e, 0x6e, 0x4f, 0xf1, 0xe2,
+ 0xc8, 0x66, 0xe4, 0x21, 0xa0, 0xd9, 0x8f, 0x47, 0x68, 0x74, 0x69, 0x06,
+ 0xfa, 0x71, 0x70, 0x54,
+};
+static const struct drbg_kat_pr_true kat3413_t = {
+ 7, kat3413_entropyin, kat3413_nonce, kat3413_persstr,
+ kat3413_entropyinpr1, kat3413_addinpr1, kat3413_entropyinpr2,
+ kat3413_addinpr2, kat3413_retbits
+};
+static const struct drbg_kat kat3413 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3413_t
+};
+
+static const unsigned char kat3414_entropyin[] = {
+ 0x52, 0xf1, 0x88, 0xee, 0x67, 0x25, 0x22, 0xb6, 0x10, 0x70, 0xb9, 0xb0,
+ 0x0d, 0x57, 0xc2, 0x9c, 0xf5, 0x75, 0x92, 0x03, 0x72, 0x96, 0x35, 0x1e,
+ 0x94, 0xc9, 0x38, 0xcb, 0x1d, 0x43, 0x26, 0xa7,
+};
+static const unsigned char kat3414_nonce[] = {
+ 0xa6, 0xdc, 0x77, 0x50, 0x7d, 0xd5, 0x95, 0xe5, 0x52, 0xbf, 0xea, 0x6c,
+ 0xe8, 0x9e, 0x6d, 0xdb,
+};
+static const unsigned char kat3414_persstr[] = {
+ 0x6c, 0x3d, 0x05, 0x96, 0x3b, 0xd7, 0xf1, 0x8a, 0xff, 0x43, 0xc3, 0xcc,
+ 0xff, 0x5d, 0x33, 0x30, 0x9a, 0xc2, 0x19, 0x6e, 0xc4, 0x8b, 0x82, 0x32,
+ 0x0a, 0xe9, 0xb4, 0x82, 0x9f, 0xf1, 0x03, 0x31,
+};
+static const unsigned char kat3414_entropyinpr1[] = {
+ 0xe0, 0x64, 0x76, 0xf6, 0x1f, 0xa9, 0x36, 0xc2, 0x28, 0x3a, 0x96, 0x3d,
+ 0x01, 0x04, 0x04, 0x55, 0xca, 0xc8, 0x18, 0x79, 0x36, 0x9c, 0x9a, 0x93,
+ 0x94, 0x95, 0x8d, 0xa2, 0xc4, 0x90, 0xb8, 0x06,
+};
+static const unsigned char kat3414_addinpr1[] = {
+ 0x62, 0xe1, 0x0a, 0x60, 0x8c, 0x82, 0xc4, 0x94, 0x23, 0x3a, 0xe7, 0xe3,
+ 0x53, 0xdc, 0x6d, 0x30, 0x4c, 0xd9, 0x88, 0xd9, 0x4c, 0xbc, 0x4f, 0x62,
+ 0x63, 0x79, 0x34, 0xad, 0xa8, 0x47, 0x6b, 0xfc,
+};
+static const unsigned char kat3414_entropyinpr2[] = {
+ 0x18, 0xa6, 0x32, 0x99, 0xb8, 0xb2, 0xc7, 0x73, 0x60, 0xfd, 0xe0, 0x4a,
+ 0x26, 0x63, 0xac, 0x06, 0x4f, 0xbd, 0xd6, 0xcf, 0xa3, 0x09, 0x3b, 0xe5,
+ 0xc3, 0xdf, 0xd3, 0x36, 0xaa, 0x45, 0x7c, 0x86,
+};
+static const unsigned char kat3414_addinpr2[] = {
+ 0xb3, 0x30, 0xb7, 0x05, 0x4b, 0x39, 0xd1, 0xaa, 0xf7, 0x89, 0xc7, 0xb8,
+ 0x09, 0x5a, 0x21, 0x16, 0x6d, 0x2b, 0x6d, 0xf6, 0x94, 0x1f, 0xc9, 0x31,
+ 0x39, 0xda, 0x75, 0x01, 0x6e, 0x94, 0x88, 0x39,
+};
+static const unsigned char kat3414_retbits[] = {
+ 0x8b, 0x4b, 0xd4, 0xb1, 0x5f, 0xb0, 0x86, 0xf0, 0x38, 0x97, 0x85, 0xf5,
+ 0x5e, 0x15, 0xb9, 0xf0, 0xbd, 0x5b, 0xbc, 0xd0, 0xe6, 0x52, 0x22, 0x86,
+ 0x6f, 0x21, 0xce, 0xe7, 0x0d, 0x9f, 0xe6, 0xef, 0x6a, 0x06, 0x9e, 0x9d,
+ 0xae, 0x22, 0x89, 0xcf, 0x1b, 0xf3, 0x5d, 0x53, 0x73, 0xd3, 0x5e, 0x08,
+ 0xb3, 0x07, 0x99, 0x8b, 0x8b, 0x32, 0xbe, 0x15, 0xbc, 0xac, 0x91, 0x92,
+ 0x69, 0x24, 0x27, 0xa0,
+};
+static const struct drbg_kat_pr_true kat3414_t = {
+ 8, kat3414_entropyin, kat3414_nonce, kat3414_persstr,
+ kat3414_entropyinpr1, kat3414_addinpr1, kat3414_entropyinpr2,
+ kat3414_addinpr2, kat3414_retbits
+};
+static const struct drbg_kat kat3414 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3414_t
+};
+
+static const unsigned char kat3415_entropyin[] = {
+ 0x76, 0xfe, 0x11, 0x7c, 0xf3, 0x33, 0xd9, 0x2f, 0xae, 0xc0, 0x76, 0xc2,
+ 0xe2, 0xd2, 0x64, 0x1b, 0x9b, 0x5e, 0x23, 0xe5, 0x61, 0x45, 0x8b, 0x8d,
+ 0x91, 0x6a, 0x6c, 0xf3, 0x64, 0xb2, 0x5d, 0xa9,
+};
+static const unsigned char kat3415_nonce[] = {
+ 0x13, 0x9f, 0xab, 0xa6, 0x74, 0xcf, 0x21, 0x08, 0x65, 0xac, 0x3b, 0xc8,
+ 0xf1, 0x66, 0x14, 0xed,
+};
+static const unsigned char kat3415_persstr[] = {
+ 0x3a, 0xc8, 0x0f, 0xe6, 0xf2, 0x65, 0x79, 0xd5, 0x37, 0x6f, 0x4b, 0x0c,
+ 0xc2, 0xcc, 0x8e, 0x0e, 0x5b, 0xfb, 0x75, 0x48, 0x46, 0x71, 0x07, 0xc9,
+ 0x6a, 0xa3, 0xb4, 0xf2, 0xd8, 0x8c, 0xda, 0xc8,
+};
+static const unsigned char kat3415_entropyinpr1[] = {
+ 0xf5, 0xe8, 0x82, 0x47, 0xc1, 0xc6, 0x9e, 0x82, 0x71, 0xce, 0x33, 0x33,
+ 0x9d, 0x11, 0x1a, 0x2c, 0x9d, 0xf3, 0x1a, 0xf5, 0x7c, 0x7d, 0x98, 0x0b,
+ 0x56, 0x21, 0xbd, 0x3a, 0x6e, 0xe2, 0x7e, 0xa8,
+};
+static const unsigned char kat3415_addinpr1[] = {
+ 0x4a, 0xfc, 0x7b, 0x77, 0x1e, 0xd5, 0xba, 0xb9, 0xeb, 0xb0, 0x1d, 0x49,
+ 0x4c, 0x31, 0xd8, 0xc8, 0x14, 0xe2, 0x66, 0x62, 0x5d, 0xbb, 0x4f, 0x39,
+ 0x4d, 0x2e, 0xaf, 0x31, 0xdc, 0x43, 0x06, 0x38,
+};
+static const unsigned char kat3415_entropyinpr2[] = {
+ 0x2e, 0xb4, 0xfd, 0xe0, 0x56, 0xd3, 0x62, 0xd4, 0x5b, 0xe9, 0x79, 0x0d,
+ 0xfc, 0x44, 0xcb, 0x84, 0xa7, 0xd0, 0xe8, 0x5d, 0xef, 0x13, 0xfb, 0xb7,
+ 0xb4, 0xf4, 0xae, 0x38, 0xae, 0x4e, 0x08, 0xe7,
+};
+static const unsigned char kat3415_addinpr2[] = {
+ 0xa6, 0x0b, 0x92, 0x71, 0x9b, 0xcb, 0x7b, 0x76, 0x01, 0x70, 0x24, 0x11,
+ 0x43, 0x10, 0x72, 0x3f, 0x4e, 0x6a, 0xa1, 0x73, 0x18, 0x9c, 0xc2, 0x89,
+ 0x7b, 0x0d, 0x88, 0xe5, 0xd4, 0x5b, 0x09, 0xd2,
+};
+static const unsigned char kat3415_retbits[] = {
+ 0x2c, 0x36, 0x81, 0x1d, 0x03, 0x33, 0x9b, 0x41, 0x52, 0x95, 0x65, 0x4c,
+ 0xdd, 0x67, 0xf5, 0x29, 0x52, 0xea, 0x7b, 0xb9, 0xe2, 0xe9, 0xc5, 0x65,
+ 0xdd, 0x8b, 0x2e, 0x96, 0x75, 0x88, 0xdc, 0x28, 0xcb, 0x9a, 0xb1, 0x47,
+ 0x5b, 0xd0, 0x38, 0xcd, 0x19, 0x98, 0x14, 0xf7, 0xdd, 0x19, 0xf3, 0xd0,
+ 0x54, 0x83, 0x84, 0x66, 0x24, 0x04, 0x04, 0x45, 0xcf, 0x6f, 0xa9, 0x11,
+ 0x7f, 0xac, 0xe5, 0xb1,
+};
+static const struct drbg_kat_pr_true kat3415_t = {
+ 9, kat3415_entropyin, kat3415_nonce, kat3415_persstr,
+ kat3415_entropyinpr1, kat3415_addinpr1, kat3415_entropyinpr2,
+ kat3415_addinpr2, kat3415_retbits
+};
+static const struct drbg_kat kat3415 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3415_t
+};
+
+static const unsigned char kat3416_entropyin[] = {
+ 0x9e, 0x59, 0x99, 0xda, 0x32, 0xc2, 0x5d, 0x85, 0xff, 0xfa, 0xcf, 0xce,
+ 0x5c, 0x22, 0xe1, 0x71, 0x13, 0x28, 0x54, 0xf9, 0x5b, 0xa3, 0x05, 0xcf,
+ 0x13, 0x0b, 0xb1, 0xe0, 0x93, 0xf2, 0xdc, 0xc8,
+};
+static const unsigned char kat3416_nonce[] = {
+ 0xb0, 0x01, 0x42, 0xd7, 0x02, 0x43, 0x49, 0xb4, 0xad, 0xde, 0x2c, 0xd5,
+ 0x81, 0x0b, 0x8a, 0x2a,
+};
+static const unsigned char kat3416_persstr[] = {
+ 0x90, 0xad, 0x37, 0xdb, 0x25, 0xbc, 0x90, 0xa9, 0x86, 0x46, 0x47, 0x22,
+ 0xbe, 0xc6, 0x3f, 0x89, 0x57, 0xeb, 0x70, 0x03, 0x4c, 0x08, 0x8f, 0x95,
+ 0x0e, 0x76, 0x12, 0x8c, 0x4c, 0x03, 0x49, 0xb8,
+};
+static const unsigned char kat3416_entropyinpr1[] = {
+ 0xb6, 0x7c, 0xc9, 0x52, 0xff, 0x93, 0x9c, 0x79, 0x45, 0xf0, 0xef, 0x30,
+ 0xb2, 0x1c, 0x67, 0xb8, 0xb1, 0x4c, 0xf8, 0x9b, 0xed, 0x48, 0x21, 0x18,
+ 0xa2, 0xfb, 0x34, 0x93, 0x2e, 0x4a, 0x38, 0xe6,
+};
+static const unsigned char kat3416_addinpr1[] = {
+ 0x56, 0xe9, 0xe9, 0x94, 0x86, 0x04, 0xd6, 0x86, 0x74, 0x4f, 0x95, 0x9d,
+ 0x33, 0xa4, 0x45, 0xa9, 0x6d, 0x59, 0xf0, 0x73, 0xcd, 0x04, 0x2f, 0x10,
+ 0xcb, 0x8c, 0x68, 0x21, 0x7c, 0xbf, 0x00, 0x09,
+};
+static const unsigned char kat3416_entropyinpr2[] = {
+ 0x45, 0x02, 0xa2, 0xbe, 0x58, 0x83, 0x10, 0xfb, 0xac, 0x5a, 0x73, 0xac,
+ 0x71, 0x86, 0x56, 0x6c, 0x71, 0x34, 0xc8, 0x82, 0x03, 0xbe, 0xcf, 0xb8,
+ 0xc5, 0xe1, 0x84, 0xdd, 0x5a, 0xf0, 0xd9, 0xe6,
+};
+static const unsigned char kat3416_addinpr2[] = {
+ 0xca, 0xea, 0xee, 0xd1, 0x94, 0xb5, 0x64, 0xae, 0xb3, 0x9d, 0x47, 0x61,
+ 0xf5, 0xea, 0x83, 0x10, 0x17, 0x7f, 0xa5, 0x76, 0x43, 0xd8, 0x65, 0x58,
+ 0xdf, 0x1e, 0xcf, 0x04, 0xf6, 0xe5, 0x35, 0x8c,
+};
+static const unsigned char kat3416_retbits[] = {
+ 0x31, 0x5a, 0xb8, 0xfa, 0xc8, 0x50, 0xbc, 0xf4, 0x8c, 0x84, 0xc4, 0x3c,
+ 0x8f, 0x79, 0x9b, 0x17, 0x47, 0x2e, 0x11, 0x7c, 0x9f, 0x0a, 0x56, 0xcb,
+ 0x65, 0x37, 0xc7, 0x44, 0x36, 0x3b, 0xa2, 0x89, 0xa0, 0x39, 0xa7, 0x70,
+ 0xa4, 0x1d, 0xaa, 0x6d, 0xe1, 0xa6, 0x2f, 0xc7, 0x05, 0x6d, 0xee, 0x48,
+ 0xc3, 0x88, 0xad, 0xbd, 0x23, 0x1a, 0xc3, 0x0b, 0x8a, 0xd1, 0xab, 0xe8,
+ 0x76, 0x27, 0xf1, 0x1c,
+};
+static const struct drbg_kat_pr_true kat3416_t = {
+ 10, kat3416_entropyin, kat3416_nonce, kat3416_persstr,
+ kat3416_entropyinpr1, kat3416_addinpr1, kat3416_entropyinpr2,
+ kat3416_addinpr2, kat3416_retbits
+};
+static const struct drbg_kat kat3416 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3416_t
+};
+
+static const unsigned char kat3417_entropyin[] = {
+ 0xfd, 0x52, 0x32, 0x83, 0xe4, 0x6f, 0xd8, 0x6d, 0x54, 0x84, 0x43, 0xe6,
+ 0xf8, 0x9e, 0xc5, 0xfa, 0x3c, 0x7c, 0xeb, 0x1e, 0x13, 0xd6, 0x99, 0x74,
+ 0x0e, 0xcd, 0xf5, 0x2a, 0xf9, 0x5f, 0x3b, 0x49,
+};
+static const unsigned char kat3417_nonce[] = {
+ 0x23, 0xe5, 0xee, 0x2e, 0x12, 0x32, 0x26, 0xcc, 0xd2, 0xfe, 0x11, 0x4a,
+ 0x99, 0xf7, 0x9d, 0x36,
+};
+static const unsigned char kat3417_persstr[] = {
+ 0x5b, 0x6a, 0x95, 0xd1, 0xbe, 0x7b, 0x38, 0x06, 0x04, 0x23, 0xdd, 0x95,
+ 0x4a, 0xac, 0x51, 0x41, 0x32, 0xd8, 0x23, 0x6d, 0x57, 0x0e, 0x2f, 0x01,
+ 0xc0, 0x13, 0x52, 0x50, 0x30, 0x6b, 0x1b, 0x0b,
+};
+static const unsigned char kat3417_entropyinpr1[] = {
+ 0xf9, 0xe0, 0x8c, 0x6d, 0xc7, 0x17, 0x84, 0x12, 0x52, 0xa3, 0xd8, 0xa4,
+ 0x7d, 0xf4, 0x3f, 0x02, 0xdb, 0x7d, 0x27, 0x85, 0xcd, 0xac, 0xb1, 0x69,
+ 0x23, 0x27, 0xee, 0x57, 0x15, 0x75, 0x60, 0xe2,
+};
+static const unsigned char kat3417_addinpr1[] = {
+ 0xc5, 0xc9, 0xbc, 0x9b, 0x7f, 0xd5, 0x7a, 0x97, 0xec, 0x63, 0xe9, 0xb0,
+ 0x44, 0x61, 0x34, 0xd7, 0x25, 0xdb, 0x8c, 0x88, 0x54, 0x23, 0x31, 0xa9,
+ 0xed, 0xf8, 0x22, 0x7d, 0xc4, 0xda, 0xc9, 0xf0,
+};
+static const unsigned char kat3417_entropyinpr2[] = {
+ 0x93, 0x12, 0x3c, 0x93, 0x71, 0xd9, 0x15, 0x37, 0xb8, 0x7c, 0x47, 0x42,
+ 0xb5, 0x82, 0x88, 0xe7, 0x64, 0x56, 0xe3, 0x5a, 0xb4, 0xdd, 0x4f, 0xdb,
+ 0x73, 0xf6, 0x67, 0x60, 0x7d, 0x4c, 0xbc, 0xda,
+};
+static const unsigned char kat3417_addinpr2[] = {
+ 0xaf, 0xa1, 0xc2, 0x02, 0xf2, 0xab, 0xd3, 0xc5, 0x2c, 0xa9, 0x5f, 0x6e,
+ 0xc0, 0x26, 0xae, 0x0e, 0xb1, 0x65, 0xfa, 0x11, 0x8d, 0xd3, 0xd4, 0xd6,
+ 0x22, 0x1a, 0xc8, 0xe9, 0xcc, 0xbc, 0x2a, 0xe1,
+};
+static const unsigned char kat3417_retbits[] = {
+ 0x56, 0x6c, 0xec, 0x51, 0x2d, 0x29, 0x6b, 0xd1, 0x0b, 0x46, 0xbf, 0x9c,
+ 0xcc, 0x3d, 0x40, 0x84, 0xc4, 0x28, 0x9d, 0xda, 0xe3, 0x48, 0xbb, 0x78,
+ 0x0d, 0xb0, 0x6c, 0x02, 0x02, 0x15, 0x14, 0x93, 0xda, 0x63, 0x22, 0xa5,
+ 0x7f, 0x62, 0x9f, 0xc1, 0x54, 0x7b, 0xb1, 0x8a, 0x5a, 0x96, 0x3b, 0xd1,
+ 0xb7, 0x06, 0x24, 0x9b, 0x45, 0xec, 0xf8, 0x40, 0x9c, 0x94, 0x48, 0x03,
+ 0xde, 0xf1, 0x7f, 0xd0,
+};
+static const struct drbg_kat_pr_true kat3417_t = {
+ 11, kat3417_entropyin, kat3417_nonce, kat3417_persstr,
+ kat3417_entropyinpr1, kat3417_addinpr1, kat3417_entropyinpr2,
+ kat3417_addinpr2, kat3417_retbits
+};
+static const struct drbg_kat kat3417 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3417_t
+};
+
+static const unsigned char kat3418_entropyin[] = {
+ 0xb9, 0xe1, 0x28, 0xb0, 0xec, 0x74, 0x49, 0xbc, 0x3a, 0x19, 0x09, 0x29,
+ 0xd9, 0xe8, 0xae, 0xff, 0x3f, 0x1d, 0x4a, 0x7e, 0x8b, 0x77, 0xd1, 0xea,
+ 0xff, 0xa8, 0x43, 0xd1, 0x5e, 0x3f, 0xbc, 0x2a,
+};
+static const unsigned char kat3418_nonce[] = {
+ 0xa6, 0x1f, 0x8d, 0xb7, 0x89, 0xfa, 0xff, 0xb6, 0xae, 0x4f, 0x9d, 0xb3,
+ 0xb9, 0xe7, 0x98, 0xb2,
+};
+static const unsigned char kat3418_persstr[] = {
+ 0xe6, 0x62, 0x53, 0x8d, 0x48, 0x25, 0xef, 0x66, 0x32, 0x33, 0x09, 0x8b,
+ 0xf7, 0x1a, 0x5b, 0xdb, 0x9c, 0xd3, 0x3c, 0x75, 0x88, 0x79, 0x68, 0x5c,
+ 0xd6, 0xc5, 0x5f, 0x87, 0x4f, 0x11, 0x69, 0xc8,
+};
+static const unsigned char kat3418_entropyinpr1[] = {
+ 0xee, 0x7b, 0x28, 0x57, 0x51, 0x7e, 0xd1, 0x80, 0x8f, 0x02, 0x2c, 0xbf,
+ 0xf0, 0xed, 0x14, 0x48, 0xfe, 0x4e, 0x2c, 0xcf, 0x02, 0x73, 0xb9, 0xeb,
+ 0x52, 0xdb, 0x66, 0xfd, 0x30, 0x78, 0x56, 0xab,
+};
+static const unsigned char kat3418_addinpr1[] = {
+ 0x53, 0x34, 0x5f, 0x1c, 0xc3, 0x9f, 0x10, 0x0e, 0xf6, 0x73, 0x38, 0xd9,
+ 0x93, 0x7e, 0x1a, 0x81, 0xc3, 0xcc, 0x7c, 0xcc, 0x4d, 0xb3, 0x2a, 0x2d,
+ 0x38, 0x10, 0x55, 0x0c, 0x3f, 0x61, 0x5e, 0x6e,
+};
+static const unsigned char kat3418_entropyinpr2[] = {
+ 0xd8, 0xc6, 0x0c, 0xf1, 0x4b, 0x00, 0x97, 0x51, 0xd9, 0x72, 0x5f, 0x54,
+ 0x97, 0x59, 0xac, 0xcd, 0x00, 0xdd, 0xa7, 0x01, 0x09, 0xa9, 0x1d, 0x56,
+ 0x0e, 0x83, 0x66, 0x6c, 0x4d, 0x24, 0xbc, 0x0e,
+};
+static const unsigned char kat3418_addinpr2[] = {
+ 0xa3, 0x33, 0x1a, 0x84, 0xfe, 0xaf, 0x82, 0x31, 0x37, 0x6c, 0x81, 0x1f,
+ 0x24, 0x58, 0xd0, 0xad, 0xc0, 0x2d, 0x09, 0xfe, 0x85, 0xf5, 0x0e, 0x29,
+ 0x07, 0x2e, 0x58, 0x34, 0x05, 0x98, 0xef, 0xfb,
+};
+static const unsigned char kat3418_retbits[] = {
+ 0x18, 0x6f, 0x47, 0x6c, 0x96, 0x6e, 0x6d, 0x7b, 0x79, 0xe4, 0x64, 0x97,
+ 0x47, 0xc7, 0xb3, 0xd0, 0xb1, 0x8e, 0xde, 0x2b, 0x26, 0x5c, 0xcd, 0x0c,
+ 0xb7, 0x3b, 0xd5, 0x9b, 0x73, 0x25, 0xce, 0xd0, 0xdc, 0xe7, 0x9d, 0xa1,
+ 0x50, 0x99, 0xe2, 0x3c, 0xaa, 0x4d, 0x9f, 0x61, 0xe5, 0xf3, 0x2f, 0x40,
+ 0x18, 0xac, 0xc0, 0x26, 0x67, 0xe9, 0xf2, 0x99, 0x9f, 0x36, 0x01, 0x46,
+ 0xc4, 0xc1, 0xec, 0x80,
+};
+static const struct drbg_kat_pr_true kat3418_t = {
+ 12, kat3418_entropyin, kat3418_nonce, kat3418_persstr,
+ kat3418_entropyinpr1, kat3418_addinpr1, kat3418_entropyinpr2,
+ kat3418_addinpr2, kat3418_retbits
+};
+static const struct drbg_kat kat3418 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3418_t
+};
+
+static const unsigned char kat3419_entropyin[] = {
+ 0x84, 0x62, 0x9d, 0x28, 0xb3, 0x0a, 0xf4, 0x3a, 0x8c, 0xe0, 0x8e, 0x7a,
+ 0x01, 0x46, 0xb2, 0x52, 0xec, 0x70, 0xcd, 0x12, 0x54, 0xf4, 0xe1, 0xa4,
+ 0xaf, 0x01, 0xb3, 0x8f, 0x03, 0x3a, 0xc5, 0x29,
+};
+static const unsigned char kat3419_nonce[] = {
+ 0xa4, 0xae, 0x5a, 0x61, 0xb3, 0xb3, 0xb9, 0x8e, 0x26, 0x7d, 0x4d, 0x98,
+ 0xa8, 0x7c, 0x0c, 0xfb,
+};
+static const unsigned char kat3419_persstr[] = {
+ 0x1d, 0xbe, 0xdd, 0x95, 0x3e, 0xd1, 0x06, 0x5c, 0x72, 0xb8, 0x7b, 0x1e,
+ 0xb2, 0x2c, 0x4e, 0x08, 0x51, 0x6c, 0x6c, 0xef, 0x41, 0xbc, 0xbf, 0x23,
+ 0x28, 0x61, 0x25, 0xb2, 0x24, 0xef, 0x12, 0x6e,
+};
+static const unsigned char kat3419_entropyinpr1[] = {
+ 0x9d, 0xd9, 0x36, 0x08, 0x73, 0x54, 0xe2, 0xea, 0xcd, 0x92, 0x41, 0x7c,
+ 0x3f, 0x50, 0x5c, 0x08, 0x1b, 0xaa, 0x7f, 0x6d, 0x77, 0xe1, 0x71, 0xb6,
+ 0x2a, 0x27, 0xcd, 0x45, 0xf3, 0xca, 0x97, 0x14,
+};
+static const unsigned char kat3419_addinpr1[] = {
+ 0x11, 0xb3, 0x09, 0x26, 0x53, 0xe4, 0x48, 0xad, 0x5a, 0xf0, 0x5d, 0x61,
+ 0x24, 0x92, 0xac, 0xf3, 0x5d, 0x0a, 0xbc, 0x90, 0x66, 0x1f, 0xb0, 0xae,
+ 0x3e, 0x8e, 0xd9, 0x1c, 0x7d, 0x87, 0xb9, 0xb6,
+};
+static const unsigned char kat3419_entropyinpr2[] = {
+ 0x21, 0xd7, 0x1c, 0x3d, 0xf3, 0x84, 0x82, 0xf7, 0x92, 0xd3, 0x50, 0xce,
+ 0x98, 0x4f, 0xc5, 0x8b, 0xca, 0x81, 0xe4, 0x1f, 0x59, 0x8d, 0xc8, 0xdb,
+ 0xc4, 0x0a, 0xbc, 0x53, 0xf7, 0x15, 0x39, 0x5d,
+};
+static const unsigned char kat3419_addinpr2[] = {
+ 0xe9, 0xb5, 0xf6, 0x63, 0x13, 0x13, 0xec, 0xb9, 0x3e, 0xae, 0x1a, 0xeb,
+ 0x83, 0xaf, 0xd8, 0xf2, 0xcf, 0xd4, 0xa9, 0xe0, 0xc6, 0xa9, 0xee, 0x45,
+ 0xf7, 0x9a, 0x37, 0x94, 0x1b, 0xe3, 0x79, 0x5d,
+};
+static const unsigned char kat3419_retbits[] = {
+ 0xbc, 0x88, 0xaa, 0xf3, 0x55, 0xd7, 0x82, 0x61, 0xcf, 0x2b, 0x6e, 0x05,
+ 0x78, 0x50, 0x70, 0xa2, 0x52, 0x38, 0x33, 0x2a, 0xb3, 0x2c, 0x1f, 0x28,
+ 0x31, 0x7e, 0xd9, 0x6f, 0x87, 0xca, 0x09, 0xe5, 0x5b, 0x7d, 0xd5, 0xc8,
+ 0x13, 0x54, 0xf7, 0xa8, 0xb2, 0xa3, 0x7a, 0x9c, 0x62, 0x23, 0x0b, 0x94,
+ 0x2f, 0x51, 0xfb, 0xa5, 0xa8, 0x83, 0x22, 0x61, 0x92, 0x5c, 0x93, 0x05,
+ 0x5d, 0x15, 0xde, 0x6e,
+};
+static const struct drbg_kat_pr_true kat3419_t = {
+ 13, kat3419_entropyin, kat3419_nonce, kat3419_persstr,
+ kat3419_entropyinpr1, kat3419_addinpr1, kat3419_entropyinpr2,
+ kat3419_addinpr2, kat3419_retbits
+};
+static const struct drbg_kat kat3419 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3419_t
+};
+
+static const unsigned char kat3420_entropyin[] = {
+ 0xc5, 0xb7, 0x34, 0x9e, 0xc8, 0x63, 0xfa, 0x24, 0x5a, 0xe7, 0xc4, 0x19,
+ 0x1f, 0x74, 0x2f, 0x7e, 0x2f, 0xa4, 0x5a, 0x9c, 0xd3, 0xcb, 0x7a, 0x5a,
+ 0xb7, 0x0b, 0x51, 0x85, 0x04, 0xc8, 0x9d, 0x4f,
+};
+static const unsigned char kat3420_nonce[] = {
+ 0x6e, 0x1f, 0x05, 0x40, 0x13, 0x05, 0xc8, 0x91, 0xbe, 0xc2, 0x65, 0xed,
+ 0x81, 0x6c, 0x56, 0xdd,
+};
+static const unsigned char kat3420_persstr[] = {
+ 0x84, 0xd4, 0x11, 0x51, 0x84, 0x7d, 0xf4, 0xf6, 0xf2, 0xb3, 0x2f, 0x9f,
+ 0xb5, 0xbc, 0x9d, 0x24, 0xae, 0xa0, 0x19, 0xbf, 0xff, 0x75, 0x33, 0x02,
+ 0x9c, 0x3f, 0x76, 0x6a, 0xca, 0xd1, 0xbb, 0x68,
+};
+static const unsigned char kat3420_entropyinpr1[] = {
+ 0x90, 0x89, 0xb5, 0x78, 0xd1, 0x61, 0x0f, 0xe0, 0x72, 0xb0, 0x69, 0xe8,
+ 0x33, 0xd9, 0x3d, 0xc2, 0xc9, 0x20, 0xd8, 0x4e, 0xfc, 0x54, 0x19, 0x64,
+ 0x94, 0x03, 0x36, 0x6c, 0x66, 0x4a, 0xe6, 0xe0,
+};
+static const unsigned char kat3420_addinpr1[] = {
+ 0x43, 0xbd, 0xb3, 0xda, 0xa2, 0x79, 0x9d, 0x33, 0xce, 0xed, 0xfa, 0xc9,
+ 0xee, 0x67, 0x89, 0xf7, 0x4b, 0x66, 0x61, 0xdf, 0xfa, 0x64, 0xc3, 0xe0,
+ 0x30, 0x17, 0x8f, 0xd0, 0x46, 0x74, 0xa7, 0x5d,
+};
+static const unsigned char kat3420_entropyinpr2[] = {
+ 0x99, 0x02, 0x9e, 0xa2, 0xc2, 0x48, 0x01, 0x3a, 0xd4, 0xa4, 0x05, 0x3b,
+ 0x89, 0x5d, 0x42, 0x55, 0xaa, 0x50, 0x5c, 0x5a, 0x13, 0x27, 0xc2, 0xf8,
+ 0x79, 0x02, 0x2a, 0x49, 0x20, 0x71, 0x75, 0x46,
+};
+static const unsigned char kat3420_addinpr2[] = {
+ 0x56, 0xf5, 0x81, 0x6f, 0xa3, 0xdd, 0xdc, 0xc0, 0x8d, 0x14, 0x6f, 0x09,
+ 0x14, 0x3a, 0x4a, 0x6a, 0x52, 0x58, 0xa3, 0x53, 0x38, 0xc1, 0x8f, 0xda,
+ 0x83, 0x12, 0xdd, 0x4a, 0xf9, 0xc9, 0x87, 0xe7,
+};
+static const unsigned char kat3420_retbits[] = {
+ 0x67, 0xf0, 0x61, 0xfe, 0x0a, 0xe9, 0x38, 0xe8, 0x5f, 0x84, 0xfb, 0x41,
+ 0x93, 0x38, 0x32, 0xb2, 0x94, 0x66, 0x80, 0x93, 0x81, 0xbc, 0x8a, 0x99,
+ 0xe6, 0xc2, 0x74, 0x2b, 0x32, 0x56, 0x79, 0x8f, 0xf4, 0x35, 0x26, 0x6f,
+ 0x05, 0x73, 0x86, 0x9f, 0xcf, 0xd0, 0xba, 0x26, 0x4a, 0x09, 0x04, 0x23,
+ 0xd5, 0x0c, 0x96, 0xb8, 0x6c, 0x54, 0xaf, 0xd7, 0x26, 0x9d, 0xf2, 0x61,
+ 0xfa, 0x70, 0xdd, 0xb2,
+};
+static const struct drbg_kat_pr_true kat3420_t = {
+ 14, kat3420_entropyin, kat3420_nonce, kat3420_persstr,
+ kat3420_entropyinpr1, kat3420_addinpr1, kat3420_entropyinpr2,
+ kat3420_addinpr2, kat3420_retbits
+};
+static const struct drbg_kat kat3420 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3420_t
+};
+
+static const unsigned char kat3421_entropyin[] = {
+ 0x2c, 0x79, 0xfd, 0x40, 0x32, 0x34, 0xad, 0xaa, 0x43, 0xb4, 0x0d, 0x1c,
+ 0x7e, 0xd7, 0x39, 0xb7, 0xf8, 0x3a, 0x56, 0xc1, 0x31, 0xd8, 0x8c, 0xa7,
+ 0x62, 0x58, 0xe4, 0xb6, 0xee, 0xde, 0x2b, 0xd7,
+};
+static const unsigned char kat3421_nonce[] = {
+ 0xd2, 0x7e, 0xe9, 0x94, 0x6e, 0x0a, 0xb0, 0x69, 0xde, 0xf3, 0x7c, 0xa6,
+ 0x6f, 0xdd, 0x1b, 0x48,
+};
+static const unsigned char kat3421_persstr[] = {0};
+static const unsigned char kat3421_entropyinpr1[] = {
+ 0x73, 0xf4, 0x11, 0xad, 0xc9, 0x1b, 0x85, 0xed, 0x1f, 0xf7, 0x14, 0x1b,
+ 0x87, 0x97, 0xc9, 0x26, 0x2d, 0x0c, 0xfc, 0x1c, 0xac, 0x32, 0x88, 0x71,
+ 0x3e, 0xed, 0xe0, 0x8e, 0x33, 0x20, 0x09, 0x06,
+};
+static const unsigned char kat3421_addinpr1[] = {0};
+static const unsigned char kat3421_entropyinpr2[] = {
+ 0xf9, 0x6a, 0x72, 0x10, 0x48, 0x87, 0xd3, 0x5d, 0xee, 0xd2, 0x1a, 0x4d,
+ 0x35, 0x44, 0x96, 0x98, 0xa0, 0x6a, 0x40, 0x35, 0xc8, 0x9f, 0x44, 0xbe,
+ 0x28, 0xb2, 0xa7, 0xb6, 0x6d, 0xa8, 0xd3, 0x97,
+};
+static const unsigned char kat3421_addinpr2[] = {0};
+static const unsigned char kat3421_retbits[] = {
+ 0x4f, 0x6c, 0x6f, 0x16, 0x3e, 0x76, 0x66, 0x5b, 0x1f, 0xe5, 0xbe, 0x08,
+ 0xcc, 0xc4, 0x0b, 0x07, 0xea, 0x36, 0x91, 0xd3, 0x8b, 0xa2, 0x8b, 0xfb,
+ 0xc8, 0xc3, 0xb0, 0x94, 0xf2, 0xc4, 0x03, 0x3c, 0xea, 0xaf, 0x9e, 0x33,
+ 0x51, 0xae, 0xd5, 0xd9, 0x42, 0x81, 0x6b, 0x3a, 0x70, 0x05, 0x84, 0x42,
+ 0xac, 0x1e, 0x12, 0xcf, 0x96, 0xd0, 0x53, 0x15, 0x4c, 0xdc, 0xa5, 0x69,
+ 0x60, 0x64, 0x2c, 0xb0,
+};
+static const struct drbg_kat_pr_true kat3421_t = {
+ 0, kat3421_entropyin, kat3421_nonce, kat3421_persstr,
+ kat3421_entropyinpr1, kat3421_addinpr1, kat3421_entropyinpr2,
+ kat3421_addinpr2, kat3421_retbits
+};
+static const struct drbg_kat kat3421 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3421_t
+};
+
+static const unsigned char kat3422_entropyin[] = {
+ 0xf7, 0x22, 0x49, 0x3d, 0x68, 0x6e, 0xb5, 0xbf, 0x22, 0x6f, 0xa8, 0x6d,
+ 0x74, 0x99, 0x62, 0x23, 0x61, 0xe7, 0xe0, 0xb3, 0x24, 0x03, 0x7a, 0xca,
+ 0xb4, 0xce, 0x97, 0xd8, 0xa1, 0x4a, 0x66, 0xdb,
+};
+static const unsigned char kat3422_nonce[] = {
+ 0xbe, 0x84, 0x6d, 0xac, 0x7e, 0x25, 0xf1, 0xe6, 0xa8, 0x2a, 0xed, 0x95,
+ 0xf0, 0x2b, 0xbe, 0x28,
+};
+static const unsigned char kat3422_persstr[] = {0};
+static const unsigned char kat3422_entropyinpr1[] = {
+ 0x29, 0x1b, 0x26, 0x6f, 0xdc, 0x66, 0x8f, 0x8d, 0x1a, 0x92, 0x7d, 0xf2,
+ 0x11, 0x44, 0xb3, 0xee, 0x55, 0xf8, 0x71, 0x66, 0x4e, 0x4b, 0x3d, 0x90,
+ 0x7f, 0x4d, 0xd1, 0x90, 0xc7, 0x07, 0x1e, 0x03,
+};
+static const unsigned char kat3422_addinpr1[] = {0};
+static const unsigned char kat3422_entropyinpr2[] = {
+ 0xb2, 0x85, 0xb4, 0xe7, 0x00, 0xed, 0xbf, 0x00, 0xc1, 0x3f, 0xea, 0x8d,
+ 0x13, 0x07, 0xb6, 0x17, 0xd0, 0x80, 0x4b, 0x60, 0x34, 0x90, 0xf5, 0xa8,
+ 0xb6, 0x2f, 0xb5, 0x2b, 0xd6, 0xa5, 0xe4, 0xbd,
+};
+static const unsigned char kat3422_addinpr2[] = {0};
+static const unsigned char kat3422_retbits[] = {
+ 0x9e, 0xb4, 0x7f, 0xf7, 0x71, 0xdf, 0xc6, 0xad, 0xe4, 0xab, 0x2f, 0x2f,
+ 0x57, 0xf3, 0x72, 0x22, 0x19, 0xe3, 0xb5, 0x92, 0x66, 0x64, 0x35, 0xde,
+ 0x3e, 0xbb, 0x2e, 0x5d, 0x14, 0xee, 0x66, 0xfc, 0x3d, 0xa1, 0x2a, 0x57,
+ 0xff, 0x15, 0x21, 0xa5, 0xaf, 0x41, 0x83, 0x5b, 0x9d, 0x59, 0xa3, 0x95,
+ 0x2e, 0xdb, 0xc9, 0x88, 0x52, 0xec, 0x4d, 0x2f, 0x9f, 0x86, 0x91, 0x52,
+ 0x6a, 0x62, 0x63, 0x1c,
+};
+static const struct drbg_kat_pr_true kat3422_t = {
+ 1, kat3422_entropyin, kat3422_nonce, kat3422_persstr,
+ kat3422_entropyinpr1, kat3422_addinpr1, kat3422_entropyinpr2,
+ kat3422_addinpr2, kat3422_retbits
+};
+static const struct drbg_kat kat3422 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3422_t
+};
+
+static const unsigned char kat3423_entropyin[] = {
+ 0x8d, 0x56, 0x7d, 0x4d, 0x78, 0xe9, 0x0a, 0x30, 0xa8, 0x6e, 0xd8, 0x86,
+ 0x57, 0xbf, 0x0b, 0x3f, 0x16, 0xaa, 0xe4, 0xdf, 0x84, 0x54, 0x48, 0x0a,
+ 0xe1, 0x32, 0x22, 0x45, 0x2e, 0x4d, 0x6c, 0xfe,
+};
+static const unsigned char kat3423_nonce[] = {
+ 0x16, 0x52, 0x6e, 0xae, 0x5a, 0x7d, 0xf0, 0x65, 0xc7, 0x85, 0xa7, 0x74,
+ 0x3e, 0xb6, 0x09, 0x5a,
+};
+static const unsigned char kat3423_persstr[] = {0};
+static const unsigned char kat3423_entropyinpr1[] = {
+ 0x20, 0x66, 0xf3, 0x84, 0xfb, 0xf8, 0xce, 0xe4, 0x64, 0xfe, 0x2a, 0x6a,
+ 0xfd, 0xe4, 0x37, 0xbb, 0x1e, 0x6e, 0x3e, 0xa0, 0x0a, 0xb2, 0xe7, 0x74,
+ 0x11, 0x96, 0xa7, 0xe6, 0x33, 0x0a, 0x1a, 0x19,
+};
+static const unsigned char kat3423_addinpr1[] = {0};
+static const unsigned char kat3423_entropyinpr2[] = {
+ 0x80, 0x15, 0xe2, 0xb8, 0xb3, 0x04, 0x35, 0xfb, 0x76, 0xb6, 0x99, 0xce,
+ 0xa6, 0x4b, 0x6a, 0x78, 0x95, 0xda, 0xd4, 0x5d, 0xbd, 0xff, 0xf6, 0xd6,
+ 0x70, 0xb4, 0x7e, 0x71, 0x98, 0x1f, 0xc6, 0xa9,
+};
+static const unsigned char kat3423_addinpr2[] = {0};
+static const unsigned char kat3423_retbits[] = {
+ 0x1c, 0x2d, 0xb9, 0xe6, 0xd7, 0x99, 0x99, 0xf7, 0xbb, 0xa3, 0x79, 0x0e,
+ 0xb5, 0xfc, 0x17, 0xa9, 0x7b, 0xa1, 0x37, 0x96, 0xcb, 0x3d, 0x1d, 0xb1,
+ 0xaa, 0x32, 0x04, 0x03, 0x08, 0x01, 0x81, 0x93, 0xb5, 0x47, 0xf9, 0xc6,
+ 0x7f, 0xa3, 0x0a, 0x09, 0xb5, 0x86, 0x73, 0x4c, 0xfa, 0xfa, 0x28, 0x35,
+ 0xe0, 0x64, 0x93, 0x07, 0x5d, 0x32, 0xcb, 0x95, 0x9b, 0x3b, 0x2d, 0x03,
+ 0x76, 0xa3, 0xa5, 0x0c,
+};
+static const struct drbg_kat_pr_true kat3423_t = {
+ 2, kat3423_entropyin, kat3423_nonce, kat3423_persstr,
+ kat3423_entropyinpr1, kat3423_addinpr1, kat3423_entropyinpr2,
+ kat3423_addinpr2, kat3423_retbits
+};
+static const struct drbg_kat kat3423 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3423_t
+};
+
+static const unsigned char kat3424_entropyin[] = {
+ 0xfd, 0x6e, 0xca, 0x11, 0xf5, 0x78, 0xf6, 0x35, 0xb8, 0x12, 0xae, 0x50,
+ 0x3a, 0x58, 0xf9, 0x66, 0xf6, 0x7b, 0x69, 0xe2, 0xb6, 0x95, 0xd6, 0x2c,
+ 0xc4, 0x48, 0x3e, 0x66, 0xd7, 0x30, 0x04, 0xbd,
+};
+static const unsigned char kat3424_nonce[] = {
+ 0xe4, 0xf5, 0xe5, 0xc3, 0xdd, 0x41, 0x67, 0x06, 0xa9, 0x46, 0xbc, 0x7a,
+ 0x9e, 0x63, 0xc7, 0x52,
+};
+static const unsigned char kat3424_persstr[] = {0};
+static const unsigned char kat3424_entropyinpr1[] = {
+ 0x59, 0x83, 0xed, 0x65, 0xe9, 0xe4, 0x08, 0xdc, 0xf6, 0xd4, 0x2a, 0x1a,
+ 0x5b, 0x0a, 0xb5, 0x21, 0x1a, 0x84, 0x34, 0xfe, 0x49, 0x90, 0x40, 0x1e,
+ 0x37, 0x19, 0xdf, 0x92, 0x51, 0x76, 0x20, 0x10,
+};
+static const unsigned char kat3424_addinpr1[] = {0};
+static const unsigned char kat3424_entropyinpr2[] = {
+ 0x78, 0x1c, 0x86, 0x61, 0xc0, 0xcf, 0x0d, 0x23, 0x93, 0xc6, 0xe5, 0x5c,
+ 0x35, 0xaf, 0x1a, 0x38, 0x7f, 0x6a, 0xf3, 0x49, 0xfe, 0x60, 0x3b, 0x68,
+ 0xaa, 0xbb, 0xbe, 0x8e, 0xc9, 0xb7, 0x57, 0x3c,
+};
+static const unsigned char kat3424_addinpr2[] = {0};
+static const unsigned char kat3424_retbits[] = {
+ 0x2d, 0x3a, 0x35, 0x11, 0x22, 0x1a, 0x79, 0x46, 0x42, 0xb7, 0x8b, 0xd7,
+ 0x6c, 0xf5, 0xa4, 0x63, 0xbc, 0xd1, 0x7d, 0x0d, 0xcc, 0x71, 0x68, 0xf2,
+ 0x0f, 0x75, 0xa5, 0xfc, 0x7f, 0x07, 0xa4, 0xd5, 0x27, 0xcf, 0x87, 0x01,
+ 0xd5, 0xc4, 0x5b, 0xcd, 0x71, 0xf3, 0xae, 0x3d, 0x1b, 0x1f, 0x98, 0x3c,
+ 0x7e, 0x2d, 0x3e, 0x98, 0x6c, 0x72, 0x95, 0x5d, 0xb5, 0x11, 0xf3, 0xb0,
+ 0x5a, 0x88, 0x08, 0x08,
+};
+static const struct drbg_kat_pr_true kat3424_t = {
+ 3, kat3424_entropyin, kat3424_nonce, kat3424_persstr,
+ kat3424_entropyinpr1, kat3424_addinpr1, kat3424_entropyinpr2,
+ kat3424_addinpr2, kat3424_retbits
+};
+static const struct drbg_kat kat3424 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3424_t
+};
+
+static const unsigned char kat3425_entropyin[] = {
+ 0xba, 0xc7, 0xc9, 0xe2, 0x08, 0xef, 0x28, 0xe1, 0xc5, 0x1a, 0x39, 0xdd,
+ 0x4f, 0x7f, 0x96, 0x08, 0x48, 0xe6, 0xec, 0x9b, 0x5f, 0x05, 0x66, 0x4a,
+ 0x0c, 0x82, 0x5a, 0x31, 0x65, 0xd6, 0x4b, 0xdc,
+};
+static const unsigned char kat3425_nonce[] = {
+ 0x2a, 0xd4, 0x8f, 0xc6, 0xbf, 0x15, 0x59, 0x34, 0xef, 0x50, 0xc5, 0x8a,
+ 0x56, 0x5f, 0x34, 0xe7,
+};
+static const unsigned char kat3425_persstr[] = {0};
+static const unsigned char kat3425_entropyinpr1[] = {
+ 0x12, 0x42, 0x45, 0xd0, 0x88, 0x09, 0x7d, 0x41, 0x37, 0x99, 0xb6, 0xd2,
+ 0xa2, 0x45, 0xbf, 0xc0, 0x71, 0x85, 0x7d, 0xb1, 0xdc, 0x07, 0xd1, 0x00,
+ 0x49, 0x4d, 0xee, 0x4f, 0x86, 0xf4, 0xea, 0xf9,
+};
+static const unsigned char kat3425_addinpr1[] = {0};
+static const unsigned char kat3425_entropyinpr2[] = {
+ 0x67, 0xe4, 0xee, 0xfe, 0x42, 0x77, 0x19, 0xd6, 0x5a, 0x98, 0x41, 0x76,
+ 0x7c, 0xc2, 0xbf, 0x8e, 0xfb, 0x69, 0xb8, 0xa8, 0x65, 0x83, 0x00, 0xe6,
+ 0xd7, 0xf2, 0xc8, 0x0f, 0x6f, 0x0e, 0xd3, 0xec,
+};
+static const unsigned char kat3425_addinpr2[] = {0};
+static const unsigned char kat3425_retbits[] = {
+ 0xbb, 0x54, 0xbd, 0x17, 0xd5, 0x9c, 0xcf, 0x61, 0x19, 0x96, 0x96, 0x8a,
+ 0x4b, 0xa2, 0x52, 0x51, 0xcf, 0x84, 0x2e, 0xae, 0xb9, 0xc3, 0xf9, 0xf0,
+ 0x31, 0x8b, 0x57, 0x71, 0xdb, 0xd4, 0x13, 0xf4, 0x3c, 0xa6, 0x46, 0xa0,
+ 0xf5, 0x28, 0x03, 0xd1, 0x88, 0x72, 0xa7, 0x2a, 0x00, 0x5f, 0x7c, 0x49,
+ 0x03, 0x04, 0x4e, 0x41, 0x47, 0xb6, 0x90, 0x3b, 0x5f, 0x1d, 0xf8, 0x1c,
+ 0xe5, 0x59, 0x3b, 0x24,
+};
+static const struct drbg_kat_pr_true kat3425_t = {
+ 4, kat3425_entropyin, kat3425_nonce, kat3425_persstr,
+ kat3425_entropyinpr1, kat3425_addinpr1, kat3425_entropyinpr2,
+ kat3425_addinpr2, kat3425_retbits
+};
+static const struct drbg_kat kat3425 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3425_t
+};
+
+static const unsigned char kat3426_entropyin[] = {
+ 0x2c, 0xc5, 0xa1, 0x44, 0x88, 0xe2, 0xb1, 0xa6, 0xc3, 0xdc, 0x2b, 0x87,
+ 0x5e, 0x18, 0xed, 0x9a, 0xd9, 0xd1, 0xb7, 0xd6, 0xd4, 0x19, 0x19, 0x44,
+ 0x8f, 0x63, 0x9a, 0x75, 0x09, 0xb6, 0x52, 0x78,
+};
+static const unsigned char kat3426_nonce[] = {
+ 0x24, 0x0c, 0xde, 0x41, 0x22, 0x1c, 0x1a, 0x5b, 0x94, 0x2d, 0x18, 0xcb,
+ 0x52, 0x4e, 0xb7, 0x14,
+};
+static const unsigned char kat3426_persstr[] = {0};
+static const unsigned char kat3426_entropyinpr1[] = {
+ 0x8f, 0x88, 0xf6, 0xc7, 0x92, 0x12, 0xdf, 0x56, 0x33, 0x90, 0xd4, 0xb7,
+ 0x33, 0xcf, 0xc0, 0x2f, 0x20, 0x73, 0x6d, 0x27, 0xcc, 0x4a, 0xd8, 0xe1,
+ 0x57, 0x36, 0x2e, 0x00, 0x36, 0x3e, 0x1c, 0x92,
+};
+static const unsigned char kat3426_addinpr1[] = {0};
+static const unsigned char kat3426_entropyinpr2[] = {
+ 0xbd, 0xeb, 0x9e, 0x19, 0xac, 0xd2, 0x06, 0x52, 0x39, 0xd3, 0x63, 0xbc,
+ 0xde, 0x70, 0x2a, 0x1c, 0x4c, 0x03, 0x77, 0xb1, 0x48, 0x87, 0x16, 0x50,
+ 0x1a, 0x2f, 0xda, 0x15, 0x11, 0xca, 0xb1, 0xac,
+};
+static const unsigned char kat3426_addinpr2[] = {0};
+static const unsigned char kat3426_retbits[] = {
+ 0x42, 0xaf, 0xb4, 0x0d, 0xb4, 0x72, 0x89, 0x45, 0x28, 0xb9, 0xe9, 0x7a,
+ 0xef, 0xec, 0x04, 0xd3, 0x41, 0x8a, 0x1f, 0x24, 0x78, 0xea, 0x63, 0x1f,
+ 0x17, 0x44, 0x1b, 0x19, 0x7f, 0xaa, 0xd6, 0xa7, 0x72, 0x67, 0xc2, 0x5e,
+ 0xa5, 0x19, 0x4d, 0x7e, 0x1b, 0x99, 0x77, 0x34, 0xb6, 0x98, 0xd1, 0x8c,
+ 0xdf, 0xc3, 0x95, 0xf8, 0x69, 0x7e, 0x82, 0x98, 0x52, 0xd9, 0xe6, 0x39,
+ 0x3c, 0x2c, 0x55, 0xf9,
+};
+static const struct drbg_kat_pr_true kat3426_t = {
+ 5, kat3426_entropyin, kat3426_nonce, kat3426_persstr,
+ kat3426_entropyinpr1, kat3426_addinpr1, kat3426_entropyinpr2,
+ kat3426_addinpr2, kat3426_retbits
+};
+static const struct drbg_kat kat3426 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3426_t
+};
+
+static const unsigned char kat3427_entropyin[] = {
+ 0x1f, 0x5c, 0xb7, 0xc2, 0xd0, 0x58, 0x65, 0xc9, 0x4d, 0x1d, 0x47, 0x39,
+ 0x61, 0x01, 0x0e, 0xf4, 0x0f, 0xa4, 0xd3, 0x56, 0x92, 0xe7, 0xb4, 0x6b,
+ 0x46, 0xfb, 0xa0, 0x36, 0xb1, 0x29, 0xef, 0x1f,
+};
+static const unsigned char kat3427_nonce[] = {
+ 0x0d, 0x1d, 0x61, 0x42, 0xc1, 0x0e, 0x3d, 0x96, 0x98, 0x33, 0x35, 0x02,
+ 0x40, 0x2b, 0x7c, 0x08,
+};
+static const unsigned char kat3427_persstr[] = {0};
+static const unsigned char kat3427_entropyinpr1[] = {
+ 0x59, 0x42, 0x07, 0x0a, 0x94, 0x4b, 0x66, 0xa7, 0x51, 0x97, 0xa5, 0xa6,
+ 0x9b, 0xef, 0xb7, 0x06, 0x35, 0x57, 0xf9, 0x0c, 0xc6, 0x7f, 0x9f, 0x6f,
+ 0xe3, 0x11, 0x53, 0xac, 0x45, 0x06, 0x40, 0x3b,
+};
+static const unsigned char kat3427_addinpr1[] = {0};
+static const unsigned char kat3427_entropyinpr2[] = {
+ 0xa2, 0xf1, 0x94, 0x45, 0xdb, 0xd3, 0xd3, 0x37, 0xf4, 0x62, 0x7e, 0xde,
+ 0x5a, 0x27, 0xd0, 0x69, 0x45, 0x5c, 0x5d, 0xd9, 0xa7, 0x1d, 0x27, 0x3a,
+ 0xe3, 0x5c, 0x39, 0x48, 0xcc, 0x2b, 0x51, 0x8c,
+};
+static const unsigned char kat3427_addinpr2[] = {0};
+static const unsigned char kat3427_retbits[] = {
+ 0xca, 0xc1, 0x3b, 0x84, 0xf1, 0xf9, 0x74, 0x54, 0xb4, 0x38, 0x6a, 0xb4,
+ 0xd8, 0x7b, 0x34, 0x19, 0x31, 0x03, 0x26, 0xb8, 0x9f, 0xf6, 0x4f, 0x93,
+ 0xa8, 0xc5, 0xaa, 0x59, 0x78, 0xe0, 0x38, 0x16, 0xad, 0x7d, 0x49, 0x1d,
+ 0x9c, 0x4e, 0x1c, 0xcc, 0x77, 0x05, 0xa1, 0x72, 0x88, 0x37, 0x37, 0x2e,
+ 0x7b, 0xe6, 0xd9, 0xa7, 0x4e, 0x1c, 0xa6, 0x3d, 0xa4, 0xf0, 0xa8, 0x56,
+ 0x36, 0xc1, 0x6f, 0xd6,
+};
+static const struct drbg_kat_pr_true kat3427_t = {
+ 6, kat3427_entropyin, kat3427_nonce, kat3427_persstr,
+ kat3427_entropyinpr1, kat3427_addinpr1, kat3427_entropyinpr2,
+ kat3427_addinpr2, kat3427_retbits
+};
+static const struct drbg_kat kat3427 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3427_t
+};
+
+static const unsigned char kat3428_entropyin[] = {
+ 0xd7, 0x08, 0x4e, 0x69, 0x23, 0x28, 0x4f, 0xa1, 0x96, 0xe4, 0x41, 0xcf,
+ 0x75, 0xb4, 0x0e, 0x50, 0xf2, 0xc0, 0xfe, 0x4e, 0xde, 0x60, 0x0b, 0x31,
+ 0x18, 0x0e, 0x3e, 0xe8, 0xcd, 0xfe, 0x98, 0x2e,
+};
+static const unsigned char kat3428_nonce[] = {
+ 0x26, 0x19, 0x3c, 0x3e, 0xed, 0x59, 0x24, 0x64, 0xd8, 0x7c, 0x63, 0x60,
+ 0xc4, 0xd6, 0x02, 0xe0,
+};
+static const unsigned char kat3428_persstr[] = {0};
+static const unsigned char kat3428_entropyinpr1[] = {
+ 0xf2, 0x90, 0x4f, 0xf4, 0xf0, 0x02, 0x93, 0x60, 0x75, 0x26, 0x86, 0xf9,
+ 0xb6, 0x9e, 0xa6, 0x96, 0xeb, 0xcc, 0x5c, 0xb2, 0xca, 0xd4, 0x79, 0xa6,
+ 0x73, 0x12, 0xda, 0x31, 0xb9, 0x3d, 0x18, 0x3f,
+};
+static const unsigned char kat3428_addinpr1[] = {0};
+static const unsigned char kat3428_entropyinpr2[] = {
+ 0x39, 0xc5, 0x6b, 0x79, 0xd4, 0x0b, 0xf0, 0x25, 0xb7, 0xd8, 0xa3, 0x06,
+ 0xb9, 0x71, 0xee, 0xcf, 0x3c, 0x27, 0x22, 0xd5, 0x67, 0xf1, 0x8f, 0xef,
+ 0x64, 0x1e, 0x7b, 0x4a, 0x1f, 0xa4, 0xcf, 0xfa,
+};
+static const unsigned char kat3428_addinpr2[] = {0};
+static const unsigned char kat3428_retbits[] = {
+ 0x0b, 0xa9, 0x3d, 0x05, 0x1a, 0xb5, 0x93, 0x26, 0x43, 0x31, 0xd8, 0x9d,
+ 0xd9, 0x17, 0xd0, 0x14, 0xad, 0xd1, 0x40, 0x2f, 0xa8, 0x83, 0x96, 0x25,
+ 0x81, 0xf2, 0x6a, 0xd6, 0xe7, 0xa2, 0x2f, 0xec, 0x6a, 0xe4, 0xdb, 0xa9,
+ 0x29, 0x35, 0x07, 0xae, 0x68, 0xd0, 0x2a, 0xb5, 0xef, 0x3e, 0x91, 0x66,
+ 0x0c, 0xc4, 0x94, 0x4e, 0x83, 0x87, 0xe0, 0x5c, 0x11, 0x7e, 0x72, 0xda,
+ 0x1e, 0xc0, 0x3e, 0x2f,
+};
+static const struct drbg_kat_pr_true kat3428_t = {
+ 7, kat3428_entropyin, kat3428_nonce, kat3428_persstr,
+ kat3428_entropyinpr1, kat3428_addinpr1, kat3428_entropyinpr2,
+ kat3428_addinpr2, kat3428_retbits
+};
+static const struct drbg_kat kat3428 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3428_t
+};
+
+static const unsigned char kat3429_entropyin[] = {
+ 0x71, 0x6e, 0x01, 0x98, 0x50, 0xe8, 0xb1, 0x65, 0xcf, 0x11, 0x79, 0x64,
+ 0x0a, 0xa5, 0x3e, 0x11, 0x44, 0x4e, 0x79, 0x11, 0x12, 0xb2, 0xa9, 0x0f,
+ 0x71, 0xc5, 0x49, 0x73, 0xd5, 0xb3, 0xe1, 0x01,
+};
+static const unsigned char kat3429_nonce[] = {
+ 0x83, 0xc8, 0xab, 0x39, 0x8d, 0x26, 0x3d, 0x73, 0xad, 0xdb, 0x87, 0x54,
+ 0x0e, 0xdc, 0xf5, 0x70,
+};
+static const unsigned char kat3429_persstr[] = {0};
+static const unsigned char kat3429_entropyinpr1[] = {
+ 0x67, 0x87, 0xb4, 0xd8, 0x7d, 0x97, 0xac, 0xe3, 0x5a, 0x92, 0x6f, 0xf2,
+ 0xf0, 0x42, 0xc3, 0x11, 0x6c, 0xa6, 0x67, 0x55, 0x78, 0x4f, 0x8d, 0x30,
+ 0xbf, 0x0d, 0xaf, 0x12, 0x6e, 0x27, 0x13, 0xcb,
+};
+static const unsigned char kat3429_addinpr1[] = {0};
+static const unsigned char kat3429_entropyinpr2[] = {
+ 0xf3, 0x9d, 0x11, 0xaa, 0x64, 0x89, 0x12, 0x3e, 0xf7, 0x47, 0x82, 0xe2,
+ 0x1f, 0x73, 0x16, 0xa4, 0x9e, 0x30, 0xe7, 0x29, 0x43, 0x17, 0x2a, 0x02,
+ 0xfb, 0x75, 0xad, 0xa3, 0xbb, 0x8e, 0x27, 0xb4,
+};
+static const unsigned char kat3429_addinpr2[] = {0};
+static const unsigned char kat3429_retbits[] = {
+ 0xa8, 0xe7, 0xb8, 0x3c, 0x29, 0x50, 0x58, 0x71, 0xd4, 0xee, 0x4f, 0xcd,
+ 0x21, 0xc9, 0x75, 0x69, 0x6d, 0xf4, 0xdd, 0xfb, 0x4e, 0x94, 0x61, 0x15,
+ 0x2e, 0x14, 0x2d, 0x31, 0x1e, 0xaa, 0x92, 0xc4, 0xb0, 0xba, 0x53, 0xb1,
+ 0xf6, 0xac, 0x71, 0x60, 0xe6, 0xf1, 0x0f, 0x2d, 0x0c, 0xc8, 0xe6, 0x7d,
+ 0x76, 0xb0, 0xd3, 0x21, 0x89, 0x26, 0x10, 0x1f, 0xd6, 0x61, 0x2b, 0xd7,
+ 0x6e, 0x4b, 0xa3, 0xee,
+};
+static const struct drbg_kat_pr_true kat3429_t = {
+ 8, kat3429_entropyin, kat3429_nonce, kat3429_persstr,
+ kat3429_entropyinpr1, kat3429_addinpr1, kat3429_entropyinpr2,
+ kat3429_addinpr2, kat3429_retbits
+};
+static const struct drbg_kat kat3429 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3429_t
+};
+
+static const unsigned char kat3430_entropyin[] = {
+ 0xb0, 0x42, 0xdf, 0xad, 0x33, 0xcd, 0xd7, 0x94, 0x91, 0x60, 0x23, 0x32,
+ 0xd6, 0x5d, 0x3d, 0xbe, 0x32, 0x44, 0xac, 0x73, 0x9d, 0xbe, 0xc7, 0x63,
+ 0xc7, 0xdd, 0x6b, 0x85, 0xe5, 0x96, 0xd7, 0x8a,
+};
+static const unsigned char kat3430_nonce[] = {
+ 0x8c, 0x56, 0x3c, 0x61, 0x21, 0x84, 0x8f, 0x1e, 0x1a, 0x24, 0x54, 0x97,
+ 0x6b, 0x9d, 0x3d, 0xad,
+};
+static const unsigned char kat3430_persstr[] = {0};
+static const unsigned char kat3430_entropyinpr1[] = {
+ 0x21, 0xd6, 0x82, 0x6c, 0x08, 0x05, 0x38, 0x48, 0xf8, 0xf7, 0x9a, 0xd3,
+ 0x25, 0x79, 0xe1, 0x37, 0xbf, 0x42, 0x37, 0x9d, 0x27, 0xf1, 0x29, 0xc5,
+ 0x7d, 0xfe, 0x68, 0xc4, 0xae, 0xdc, 0x82, 0xae,
+};
+static const unsigned char kat3430_addinpr1[] = {0};
+static const unsigned char kat3430_entropyinpr2[] = {
+ 0xac, 0xa4, 0x2d, 0xd1, 0x66, 0xd9, 0x09, 0xa5, 0x23, 0x8c, 0x43, 0x0f,
+ 0x00, 0x33, 0x1b, 0x74, 0x25, 0x1b, 0xfc, 0x20, 0xd3, 0x87, 0x55, 0x36,
+ 0xa3, 0xf5, 0x87, 0xc4, 0x11, 0x99, 0x43, 0x04,
+};
+static const unsigned char kat3430_addinpr2[] = {0};
+static const unsigned char kat3430_retbits[] = {
+ 0x95, 0x94, 0xe0, 0x62, 0xcc, 0xfe, 0x43, 0xa5, 0xcb, 0xea, 0x55, 0x6b,
+ 0xb8, 0x79, 0xb7, 0x8f, 0xe1, 0x72, 0x5b, 0xa1, 0xcb, 0xcc, 0x0d, 0x75,
+ 0x39, 0x97, 0x09, 0x7e, 0x93, 0x05, 0xe6, 0x79, 0xb2, 0x93, 0x39, 0xf2,
+ 0x81, 0x11, 0xe4, 0xc1, 0x37, 0xc9, 0xe6, 0x13, 0x8e, 0xdd, 0xb7, 0x94,
+ 0x3a, 0x4f, 0x14, 0x6c, 0x97, 0x33, 0xa0, 0x60, 0xeb, 0xa0, 0x97, 0x9b,
+ 0x04, 0x9a, 0xab, 0x70,
+};
+static const struct drbg_kat_pr_true kat3430_t = {
+ 9, kat3430_entropyin, kat3430_nonce, kat3430_persstr,
+ kat3430_entropyinpr1, kat3430_addinpr1, kat3430_entropyinpr2,
+ kat3430_addinpr2, kat3430_retbits
+};
+static const struct drbg_kat kat3430 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3430_t
+};
+
+static const unsigned char kat3431_entropyin[] = {
+ 0x88, 0x4a, 0xce, 0x7e, 0x14, 0x80, 0x18, 0x2c, 0xb4, 0x4d, 0xe6, 0x1f,
+ 0x14, 0x8e, 0xb1, 0xd1, 0x68, 0x9c, 0x02, 0x39, 0x50, 0x2f, 0x6c, 0x6c,
+ 0x5c, 0xf3, 0x6b, 0xa3, 0x3a, 0x70, 0x4a, 0x5a,
+};
+static const unsigned char kat3431_nonce[] = {
+ 0xe8, 0x7b, 0x3b, 0x0f, 0x5d, 0x0b, 0xda, 0xa2, 0x42, 0x6b, 0x93, 0xdd,
+ 0x8f, 0x43, 0x6a, 0x02,
+};
+static const unsigned char kat3431_persstr[] = {0};
+static const unsigned char kat3431_entropyinpr1[] = {
+ 0xee, 0x4f, 0x97, 0x6d, 0x9c, 0x5f, 0xd7, 0xf4, 0xb1, 0x40, 0x32, 0x6a,
+ 0x1b, 0x30, 0xcf, 0xf2, 0x6b, 0x33, 0xdd, 0xa3, 0x4c, 0xbe, 0x74, 0x46,
+ 0x78, 0x95, 0x75, 0x0a, 0x6b, 0x2a, 0x82, 0x2e,
+};
+static const unsigned char kat3431_addinpr1[] = {0};
+static const unsigned char kat3431_entropyinpr2[] = {
+ 0x6e, 0x5c, 0x6d, 0x10, 0xf4, 0x99, 0xbc, 0x5d, 0xde, 0x08, 0x1f, 0x89,
+ 0x5d, 0x17, 0x55, 0x3a, 0xb3, 0x73, 0x2d, 0x64, 0x95, 0xfa, 0x9c, 0x9a,
+ 0x75, 0x4e, 0xfa, 0x17, 0x61, 0x47, 0x2d, 0xa2,
+};
+static const unsigned char kat3431_addinpr2[] = {0};
+static const unsigned char kat3431_retbits[] = {
+ 0x56, 0x8f, 0xf9, 0xdd, 0xec, 0x1f, 0x0a, 0x7a, 0x88, 0x57, 0xa5, 0xbe,
+ 0xef, 0xa2, 0xfa, 0x54, 0x3c, 0x42, 0x2a, 0xd2, 0x1c, 0xc3, 0xd8, 0x40,
+ 0x47, 0x94, 0x22, 0x89, 0x0f, 0x86, 0x84, 0x65, 0x19, 0x1d, 0x86, 0xa6,
+ 0x16, 0x70, 0xc5, 0xe7, 0x1b, 0x60, 0x3b, 0xe1, 0xca, 0xbb, 0x88, 0xef,
+ 0x54, 0xc5, 0xc2, 0xe4, 0xca, 0xf4, 0xf0, 0xdc, 0xae, 0xae, 0x56, 0xd1,
+ 0x83, 0xf8, 0x44, 0x61,
+};
+static const struct drbg_kat_pr_true kat3431_t = {
+ 10, kat3431_entropyin, kat3431_nonce, kat3431_persstr,
+ kat3431_entropyinpr1, kat3431_addinpr1, kat3431_entropyinpr2,
+ kat3431_addinpr2, kat3431_retbits
+};
+static const struct drbg_kat kat3431 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3431_t
+};
+
+static const unsigned char kat3432_entropyin[] = {
+ 0xa6, 0xf6, 0x08, 0xd8, 0x6e, 0xc7, 0xd9, 0x10, 0x52, 0x30, 0x3e, 0xd0,
+ 0xba, 0x48, 0x0a, 0x76, 0xe7, 0xca, 0x22, 0x96, 0x19, 0x3b, 0x27, 0x67,
+ 0xd3, 0x99, 0x16, 0xf6, 0x46, 0x0b, 0x5e, 0x76,
+};
+static const unsigned char kat3432_nonce[] = {
+ 0x02, 0x45, 0x34, 0xfc, 0xe0, 0xd3, 0x98, 0xf8, 0xaa, 0x1f, 0x2e, 0x8c,
+ 0xef, 0x69, 0x05, 0x60,
+};
+static const unsigned char kat3432_persstr[] = {0};
+static const unsigned char kat3432_entropyinpr1[] = {
+ 0x3b, 0x25, 0x6e, 0xd3, 0xbf, 0xdd, 0xc3, 0xad, 0x92, 0xdc, 0xb0, 0xb6,
+ 0xd5, 0x18, 0x4e, 0x9b, 0xaf, 0x26, 0x7d, 0x50, 0xce, 0x9b, 0x26, 0xf3,
+ 0x09, 0x59, 0x26, 0x58, 0xc5, 0xd2, 0x2c, 0x79,
+};
+static const unsigned char kat3432_addinpr1[] = {0};
+static const unsigned char kat3432_entropyinpr2[] = {
+ 0x43, 0x4f, 0xb5, 0xa6, 0x28, 0xe9, 0x17, 0x70, 0x9c, 0x42, 0x0b, 0x2b,
+ 0xd4, 0xba, 0xc3, 0x5f, 0x44, 0xf7, 0xb4, 0xd8, 0xab, 0xcc, 0xc7, 0x63,
+ 0xa4, 0x9a, 0x31, 0x89, 0x91, 0xbe, 0xb8, 0xcd,
+};
+static const unsigned char kat3432_addinpr2[] = {0};
+static const unsigned char kat3432_retbits[] = {
+ 0x1c, 0x6a, 0xd9, 0xd8, 0x29, 0x4a, 0x45, 0xb8, 0x84, 0x7c, 0x86, 0x6a,
+ 0x9c, 0x44, 0x60, 0x2e, 0x01, 0x8e, 0x5d, 0x47, 0x4e, 0x50, 0x3d, 0xb8,
+ 0xe8, 0xec, 0x3d, 0x95, 0xdb, 0x9e, 0x93, 0xad, 0x19, 0x17, 0x22, 0x8f,
+ 0x17, 0x00, 0x37, 0xbe, 0x93, 0x70, 0x2e, 0x90, 0x6b, 0x4a, 0xf3, 0x6b,
+ 0x8b, 0xc7, 0xfc, 0x8b, 0x9f, 0x25, 0x1e, 0x48, 0x68, 0x2c, 0x50, 0x10,
+ 0x1c, 0xb1, 0xc5, 0x11,
+};
+static const struct drbg_kat_pr_true kat3432_t = {
+ 11, kat3432_entropyin, kat3432_nonce, kat3432_persstr,
+ kat3432_entropyinpr1, kat3432_addinpr1, kat3432_entropyinpr2,
+ kat3432_addinpr2, kat3432_retbits
+};
+static const struct drbg_kat kat3432 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3432_t
+};
+
+static const unsigned char kat3433_entropyin[] = {
+ 0x3a, 0x6a, 0xfa, 0x1b, 0xf6, 0x74, 0x6d, 0x0d, 0xb3, 0x61, 0xbf, 0x5d,
+ 0xae, 0x97, 0x4a, 0xf8, 0x1e, 0x0e, 0x54, 0xde, 0xa2, 0xdd, 0x3b, 0xba,
+ 0x8b, 0x20, 0x06, 0x9a, 0x53, 0x44, 0xc8, 0xe7,
+};
+static const unsigned char kat3433_nonce[] = {
+ 0xbe, 0x77, 0x0b, 0x94, 0x4e, 0x23, 0x21, 0x35, 0x29, 0x93, 0xae, 0x6d,
+ 0x29, 0xe6, 0xfa, 0x3c,
+};
+static const unsigned char kat3433_persstr[] = {0};
+static const unsigned char kat3433_entropyinpr1[] = {
+ 0x6d, 0xa6, 0x0c, 0x74, 0x48, 0xb0, 0x2b, 0xc4, 0xd8, 0xe2, 0x2a, 0x69,
+ 0xc9, 0xb7, 0x4a, 0xfc, 0xac, 0xcc, 0x43, 0xf3, 0x18, 0xc5, 0x1e, 0x53,
+ 0xed, 0x9f, 0xe1, 0xf3, 0xca, 0x04, 0xe2, 0xa5,
+};
+static const unsigned char kat3433_addinpr1[] = {0};
+static const unsigned char kat3433_entropyinpr2[] = {
+ 0xf7, 0x46, 0x2f, 0x1e, 0x71, 0x6e, 0x61, 0x61, 0x37, 0x49, 0x80, 0x76,
+ 0x46, 0x47, 0x27, 0xb7, 0x1c, 0x96, 0x85, 0x10, 0x2f, 0x45, 0x8e, 0x75,
+ 0x87, 0xb6, 0xa8, 0x68, 0x0d, 0xf7, 0xc7, 0xe8,
+};
+static const unsigned char kat3433_addinpr2[] = {0};
+static const unsigned char kat3433_retbits[] = {
+ 0x3b, 0x83, 0x3e, 0x50, 0x60, 0xce, 0xbe, 0x4b, 0x01, 0xf4, 0x66, 0x48,
+ 0xca, 0x29, 0x6c, 0x35, 0xed, 0x6a, 0x61, 0x96, 0xb2, 0xe7, 0xd1, 0x0e,
+ 0xad, 0x88, 0xe9, 0x79, 0xce, 0x8c, 0xd0, 0x0d, 0xae, 0xc3, 0xfe, 0x78,
+ 0x8e, 0xcf, 0x4e, 0xd2, 0x4e, 0x25, 0xf1, 0xb0, 0x43, 0x73, 0x19, 0x1c,
+ 0x55, 0x0a, 0x25, 0x44, 0x2a, 0xc5, 0x4c, 0x9e, 0x30, 0x90, 0x94, 0x06,
+ 0x3b, 0x96, 0x6a, 0xb3,
+};
+static const struct drbg_kat_pr_true kat3433_t = {
+ 12, kat3433_entropyin, kat3433_nonce, kat3433_persstr,
+ kat3433_entropyinpr1, kat3433_addinpr1, kat3433_entropyinpr2,
+ kat3433_addinpr2, kat3433_retbits
+};
+static const struct drbg_kat kat3433 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3433_t
+};
+
+static const unsigned char kat3434_entropyin[] = {
+ 0xbf, 0x1d, 0xa6, 0x80, 0xa6, 0x4d, 0x30, 0xe1, 0x92, 0x4f, 0x53, 0x06,
+ 0x74, 0x23, 0xf3, 0xf4, 0x64, 0x8e, 0x4d, 0x62, 0xd0, 0xab, 0x80, 0x52,
+ 0xd6, 0x9c, 0x82, 0x40, 0x45, 0x5f, 0xec, 0x57,
+};
+static const unsigned char kat3434_nonce[] = {
+ 0x68, 0xb1, 0x88, 0x74, 0x5c, 0x7d, 0xcb, 0x94, 0x6e, 0x22, 0x02, 0x49,
+ 0xa4, 0xa0, 0x2b, 0x84,
+};
+static const unsigned char kat3434_persstr[] = {0};
+static const unsigned char kat3434_entropyinpr1[] = {
+ 0xc4, 0x60, 0x22, 0x9e, 0x1c, 0x2b, 0x73, 0x3e, 0x5b, 0x0b, 0x04, 0x75,
+ 0x8b, 0xaa, 0xef, 0xd8, 0x2b, 0x92, 0xa9, 0x53, 0x14, 0x6b, 0xcd, 0xfb,
+ 0xfa, 0x8c, 0x1c, 0x76, 0x41, 0x8a, 0xfb, 0xd5,
+};
+static const unsigned char kat3434_addinpr1[] = {0};
+static const unsigned char kat3434_entropyinpr2[] = {
+ 0x3f, 0xcf, 0x43, 0xba, 0x5b, 0x0c, 0x47, 0x09, 0x89, 0x1a, 0xbd, 0x94,
+ 0x05, 0x25, 0xe3, 0xa6, 0xe7, 0x51, 0xa5, 0xd7, 0x2f, 0x2e, 0xe3, 0xd6,
+ 0xc5, 0x37, 0xab, 0xa7, 0x49, 0xda, 0x43, 0x8c,
+};
+static const unsigned char kat3434_addinpr2[] = {0};
+static const unsigned char kat3434_retbits[] = {
+ 0x46, 0x80, 0xbe, 0x15, 0x18, 0x89, 0x5e, 0xc0, 0x02, 0x58, 0xa8, 0x77,
+ 0xdb, 0xec, 0xa7, 0x41, 0x34, 0x14, 0x09, 0x98, 0x4f, 0x73, 0x49, 0x99,
+ 0x2e, 0xef, 0x6c, 0x2a, 0xb4, 0x36, 0xe0, 0x0e, 0xec, 0xc1, 0x3c, 0xcb,
+ 0x65, 0xa1, 0xcb, 0x2b, 0xf4, 0xe0, 0x7e, 0xe6, 0x70, 0x80, 0x02, 0x9f,
+ 0x42, 0xb2, 0x28, 0xe6, 0xef, 0xa0, 0xa7, 0x42, 0x3d, 0xde, 0xaa, 0x5d,
+ 0xdf, 0x28, 0x07, 0xfb,
+};
+static const struct drbg_kat_pr_true kat3434_t = {
+ 13, kat3434_entropyin, kat3434_nonce, kat3434_persstr,
+ kat3434_entropyinpr1, kat3434_addinpr1, kat3434_entropyinpr2,
+ kat3434_addinpr2, kat3434_retbits
+};
+static const struct drbg_kat kat3434 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3434_t
+};
+
+static const unsigned char kat3435_entropyin[] = {
+ 0x2a, 0x29, 0x88, 0x03, 0x21, 0x24, 0x86, 0xea, 0xbd, 0x8d, 0x36, 0x4d,
+ 0xc6, 0x2e, 0x8c, 0x05, 0x17, 0x14, 0xa7, 0x44, 0x90, 0x0e, 0xa1, 0xfe,
+ 0xb1, 0x57, 0xfd, 0x7a, 0x63, 0xc2, 0x6a, 0x17,
+};
+static const unsigned char kat3435_nonce[] = {
+ 0xba, 0x8f, 0xab, 0xb4, 0xb7, 0x8f, 0xd1, 0x88, 0x66, 0x21, 0x0c, 0xb5,
+ 0x23, 0x5d, 0xbf, 0xda,
+};
+static const unsigned char kat3435_persstr[] = {0};
+static const unsigned char kat3435_entropyinpr1[] = {
+ 0xea, 0x6e, 0xec, 0x8f, 0x32, 0xb4, 0x40, 0xbe, 0x68, 0xb3, 0xb0, 0x23,
+ 0x71, 0xfc, 0xbe, 0x1e, 0x6f, 0xdf, 0xe6, 0xd3, 0x5a, 0x9f, 0x86, 0x7a,
+ 0xc5, 0xaa, 0xb2, 0x97, 0xd4, 0x26, 0x31, 0x00,
+};
+static const unsigned char kat3435_addinpr1[] = {0};
+static const unsigned char kat3435_entropyinpr2[] = {
+ 0xa7, 0x90, 0x86, 0xf9, 0x39, 0xb9, 0x3a, 0x8a, 0xbb, 0xa0, 0x4d, 0x74,
+ 0x16, 0xd4, 0xd6, 0x2d, 0x37, 0xf3, 0x07, 0x9d, 0x2e, 0xcb, 0x1a, 0xf9,
+ 0x23, 0xf4, 0xf8, 0x14, 0xdd, 0x57, 0x23, 0x7c,
+};
+static const unsigned char kat3435_addinpr2[] = {0};
+static const unsigned char kat3435_retbits[] = {
+ 0x77, 0xf4, 0xda, 0xf2, 0x5c, 0x97, 0x40, 0xfc, 0x3c, 0x66, 0x80, 0x33,
+ 0x57, 0x84, 0x2b, 0xb7, 0x4b, 0xba, 0xb9, 0x11, 0xe7, 0x81, 0x87, 0x95,
+ 0x3d, 0xb6, 0x7f, 0xef, 0x93, 0xfe, 0xcd, 0x28, 0x28, 0x0d, 0xcb, 0x21,
+ 0xf7, 0x50, 0x63, 0xe3, 0xe8, 0x89, 0x22, 0x8c, 0x0e, 0x65, 0x87, 0x84,
+ 0x93, 0xa3, 0x9e, 0x1c, 0xea, 0x95, 0x61, 0xfb, 0x01, 0x5f, 0xbe, 0x44,
+ 0xad, 0x85, 0xb2, 0x61,
+};
+static const struct drbg_kat_pr_true kat3435_t = {
+ 14, kat3435_entropyin, kat3435_nonce, kat3435_persstr,
+ kat3435_entropyinpr1, kat3435_addinpr1, kat3435_entropyinpr2,
+ kat3435_addinpr2, kat3435_retbits
+};
+static const struct drbg_kat kat3435 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3435_t
+};
+
+static const unsigned char kat3436_entropyin[] = {
+ 0x4e, 0x07, 0x0b, 0x3f, 0xac, 0xe0, 0x97, 0xf9, 0x97, 0xd0, 0xd0, 0xeb,
+ 0xd4, 0x51, 0x3c, 0xdd, 0x66, 0x3d, 0x2c, 0x21, 0x49, 0x73, 0xd1, 0xd4,
+ 0x69, 0xa1, 0xd1, 0x8f, 0xcd, 0x23, 0x72, 0x39,
+};
+static const unsigned char kat3436_nonce[] = {
+ 0xf5, 0x1b, 0xd6, 0xbc, 0x3a, 0x10, 0xf1, 0x06, 0x5c, 0x67, 0x16, 0x73,
+ 0x80, 0x15, 0x9c, 0xf5,
+};
+static const unsigned char kat3436_persstr[] = {0};
+static const unsigned char kat3436_entropyinpr1[] = {
+ 0xd3, 0xbe, 0xab, 0x10, 0x44, 0xea, 0xe2, 0x8c, 0x3c, 0x72, 0xea, 0xee,
+ 0xe5, 0xf0, 0xda, 0xc4, 0xb8, 0x1e, 0x70, 0xc0, 0xa5, 0x88, 0x4e, 0x94,
+ 0x0d, 0xef, 0x6d, 0x9b, 0xca, 0x09, 0x2e, 0x18,
+};
+static const unsigned char kat3436_addinpr1[] = {
+ 0x75, 0xc0, 0x70, 0x45, 0xb2, 0xd9, 0x6a, 0xa1, 0x23, 0xd6, 0x57, 0xc0,
+ 0x89, 0x47, 0x68, 0xb7, 0xe5, 0xf9, 0xb4, 0x05, 0xbf, 0x2c, 0xde, 0xea,
+ 0xa6, 0x20, 0xfd, 0x1b, 0x5c, 0x52, 0xf0, 0x2f,
+};
+static const unsigned char kat3436_entropyinpr2[] = {
+ 0xb6, 0x19, 0xd7, 0x94, 0x6d, 0x9d, 0x91, 0x26, 0x32, 0x8f, 0xab, 0x95,
+ 0x9e, 0x60, 0xbb, 0xbc, 0x78, 0xff, 0x27, 0xa7, 0x01, 0xd9, 0x98, 0x44,
+ 0x1a, 0x60, 0xdc, 0x59, 0xc3, 0x9d, 0xe6, 0x02,
+};
+static const unsigned char kat3436_addinpr2[] = {
+ 0x5c, 0xfb, 0xec, 0x3d, 0xb9, 0x29, 0x7e, 0xc5, 0x6b, 0xa3, 0xd4, 0x3b,
+ 0x41, 0x37, 0xb9, 0xc7, 0x85, 0x37, 0x1c, 0x3c, 0xa4, 0xe9, 0xd8, 0x4c,
+ 0x17, 0x02, 0x90, 0x82, 0x2c, 0xc0, 0x3a, 0x52,
+};
+static const unsigned char kat3436_retbits[] = {
+ 0xb4, 0xc8, 0xee, 0xf1, 0x98, 0xc4, 0xee, 0x1b, 0x0d, 0xde, 0xe1, 0x61,
+ 0xd0, 0x37, 0x31, 0x70, 0x46, 0xc0, 0x5c, 0x09, 0x51, 0x22, 0x3f, 0x8a,
+ 0x03, 0xe2, 0x3c, 0xc0, 0x44, 0x04, 0xfe, 0x9d, 0xec, 0x08, 0x9c, 0xb6,
+ 0x1d, 0x1f, 0xb2, 0x86, 0xf7, 0x75, 0xb2, 0xb9, 0x2c, 0x51, 0x4f, 0x2e,
+ 0xf2, 0x1a, 0xfd, 0x28, 0x5f, 0x15, 0xa9, 0xb7, 0x62, 0x1d, 0xed, 0x0e,
+ 0x6c, 0x1b, 0xff, 0xb6,
+};
+static const struct drbg_kat_pr_true kat3436_t = {
+ 0, kat3436_entropyin, kat3436_nonce, kat3436_persstr,
+ kat3436_entropyinpr1, kat3436_addinpr1, kat3436_entropyinpr2,
+ kat3436_addinpr2, kat3436_retbits
+};
+static const struct drbg_kat kat3436 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3436_t
+};
+
+static const unsigned char kat3437_entropyin[] = {
+ 0x51, 0xe9, 0xe0, 0x03, 0x5a, 0xcb, 0xf4, 0x83, 0x75, 0x0b, 0x9f, 0xbd,
+ 0xf2, 0xe3, 0x55, 0x5c, 0x07, 0xc0, 0x7b, 0xc8, 0xfb, 0x5d, 0xae, 0xca,
+ 0x91, 0xf0, 0xf8, 0xa1, 0xb1, 0x7f, 0x01, 0x39,
+};
+static const unsigned char kat3437_nonce[] = {
+ 0xab, 0xd3, 0x73, 0xa5, 0xcf, 0x3c, 0x21, 0xe6, 0x92, 0xef, 0x81, 0x39,
+ 0xc0, 0xcd, 0x42, 0xb3,
+};
+static const unsigned char kat3437_persstr[] = {0};
+static const unsigned char kat3437_entropyinpr1[] = {
+ 0xbf, 0x53, 0x30, 0x1f, 0x80, 0x49, 0x13, 0xbe, 0x3d, 0xfc, 0x6e, 0x04,
+ 0x10, 0x9a, 0xd9, 0x0e, 0xb9, 0xa9, 0x62, 0xa2, 0x92, 0x28, 0xe5, 0x8b,
+ 0xca, 0x12, 0xe1, 0x33, 0x9a, 0xf2, 0xf6, 0xea,
+};
+static const unsigned char kat3437_addinpr1[] = {
+ 0xcd, 0x1f, 0x82, 0x4b, 0xd3, 0x8d, 0x70, 0xca, 0xa5, 0x60, 0xe1, 0xb4,
+ 0x0f, 0xd0, 0x86, 0xc1, 0x07, 0xa3, 0x5b, 0x50, 0x3c, 0xdb, 0x16, 0xd9,
+ 0x91, 0x5b, 0xc5, 0xaf, 0x85, 0x29, 0x6e, 0x21,
+};
+static const unsigned char kat3437_entropyinpr2[] = {
+ 0x75, 0x3d, 0xc1, 0x5a, 0x9e, 0x00, 0x7e, 0xf7, 0x55, 0x83, 0xd8, 0x30,
+ 0xde, 0xb6, 0x6c, 0x3e, 0xd6, 0x7e, 0xf7, 0xe8, 0x85, 0x7f, 0xe1, 0x9e,
+ 0xea, 0x15, 0xa3, 0x09, 0x47, 0xec, 0x1c, 0x5f,
+};
+static const unsigned char kat3437_addinpr2[] = {
+ 0xa5, 0x16, 0xb3, 0x1d, 0x2d, 0x71, 0x2f, 0xf7, 0xc7, 0xb4, 0x41, 0x77,
+ 0x62, 0x65, 0x1e, 0xad, 0x78, 0x7a, 0x49, 0xe6, 0x25, 0xc9, 0xc1, 0x95,
+ 0xa5, 0x52, 0x2b, 0x8d, 0x2e, 0xaf, 0x8c, 0x77,
+};
+static const unsigned char kat3437_retbits[] = {
+ 0x98, 0x23, 0x4d, 0x6e, 0xe8, 0xec, 0x6e, 0x02, 0x73, 0x10, 0xe9, 0x49,
+ 0x31, 0x14, 0xce, 0x3c, 0x11, 0x8b, 0x37, 0xb7, 0xff, 0x52, 0xe8, 0x23,
+ 0x51, 0xd5, 0x15, 0xcf, 0xa1, 0x1e, 0x1f, 0x4f, 0x4d, 0xc2, 0x0f, 0xe3,
+ 0x5b, 0xed, 0x87, 0xe4, 0x22, 0x12, 0x23, 0xcf, 0xae, 0x97, 0xb5, 0x6f,
+ 0xe4, 0xf9, 0xa9, 0xbc, 0x7b, 0x1e, 0x33, 0xca, 0x86, 0x3a, 0x71, 0x89,
+ 0x8a, 0x70, 0x5a, 0x0f,
+};
+static const struct drbg_kat_pr_true kat3437_t = {
+ 1, kat3437_entropyin, kat3437_nonce, kat3437_persstr,
+ kat3437_entropyinpr1, kat3437_addinpr1, kat3437_entropyinpr2,
+ kat3437_addinpr2, kat3437_retbits
+};
+static const struct drbg_kat kat3437 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3437_t
+};
+
+static const unsigned char kat3438_entropyin[] = {
+ 0x52, 0xf0, 0xc7, 0xd3, 0x37, 0x57, 0x96, 0x08, 0x75, 0x39, 0xb0, 0xb0,
+ 0x5c, 0xa1, 0xd1, 0x14, 0xad, 0xa6, 0x4d, 0x6e, 0x42, 0x3d, 0xbc, 0xa9,
+ 0xe9, 0x7e, 0x1d, 0xc2, 0x8a, 0x7f, 0x0b, 0xa2,
+};
+static const unsigned char kat3438_nonce[] = {
+ 0x4e, 0xf3, 0xac, 0x8f, 0x75, 0x72, 0x5e, 0xbe, 0x25, 0x35, 0x28, 0x53,
+ 0x77, 0x40, 0x58, 0xfc,
+};
+static const unsigned char kat3438_persstr[] = {0};
+static const unsigned char kat3438_entropyinpr1[] = {
+ 0xf7, 0x02, 0x75, 0x20, 0x0f, 0x74, 0xb9, 0x9b, 0xa4, 0xae, 0x7a, 0xd5,
+ 0xd2, 0xb1, 0x2e, 0x8a, 0x70, 0x48, 0x1a, 0x8a, 0xd5, 0x24, 0x37, 0xfa,
+ 0x65, 0x26, 0xd0, 0xd1, 0xc3, 0xf2, 0x21, 0x1a,
+};
+static const unsigned char kat3438_addinpr1[] = {
+ 0xfe, 0x06, 0x13, 0x66, 0xfa, 0xa5, 0x04, 0x44, 0x32, 0x1d, 0x30, 0x53,
+ 0x29, 0xbb, 0x6f, 0x40, 0x2a, 0x37, 0x3d, 0x15, 0x69, 0x88, 0xd5, 0x09,
+ 0xad, 0xc3, 0x89, 0x66, 0x45, 0xba, 0x03, 0xf3,
+};
+static const unsigned char kat3438_entropyinpr2[] = {
+ 0xd8, 0xc3, 0x85, 0x68, 0x5b, 0xe1, 0x3c, 0x47, 0xdc, 0xbc, 0x15, 0x55,
+ 0x67, 0x0f, 0xb3, 0x83, 0xf9, 0xea, 0xeb, 0x03, 0x3e, 0x39, 0x0b, 0x38,
+ 0x84, 0x6f, 0x4c, 0xcd, 0x77, 0xf4, 0xec, 0x9c,
+};
+static const unsigned char kat3438_addinpr2[] = {
+ 0xca, 0xad, 0x68, 0x8b, 0xa6, 0x7b, 0x63, 0xd9, 0xda, 0x82, 0x9e, 0xd8,
+ 0x49, 0x74, 0xf5, 0xec, 0x09, 0x21, 0xb5, 0xec, 0x59, 0x55, 0x53, 0x4f,
+ 0x0b, 0x9b, 0xff, 0xce, 0xad, 0x9c, 0x34, 0xde,
+};
+static const unsigned char kat3438_retbits[] = {
+ 0xd6, 0x25, 0x22, 0x89, 0x2a, 0xf5, 0x3a, 0x57, 0xbb, 0x2d, 0x70, 0xf6,
+ 0x1c, 0xc4, 0x35, 0x7d, 0x85, 0x93, 0x5f, 0x23, 0x4a, 0x42, 0xf9, 0x88,
+ 0xc5, 0x1d, 0xf4, 0xf0, 0x29, 0x9d, 0x42, 0xf4, 0x00, 0xa8, 0xd2, 0x11,
+ 0xae, 0x98, 0xcb, 0xdb, 0x92, 0xbc, 0x3b, 0x3d, 0x5c, 0xe5, 0x6e, 0xf8,
+ 0x62, 0x8f, 0xa2, 0x0e, 0x25, 0x84, 0xf4, 0x81, 0x1e, 0x30, 0x02, 0xfe,
+ 0xfa, 0x49, 0x7c, 0x86,
+};
+static const struct drbg_kat_pr_true kat3438_t = {
+ 2, kat3438_entropyin, kat3438_nonce, kat3438_persstr,
+ kat3438_entropyinpr1, kat3438_addinpr1, kat3438_entropyinpr2,
+ kat3438_addinpr2, kat3438_retbits
+};
+static const struct drbg_kat kat3438 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3438_t
+};
+
+static const unsigned char kat3439_entropyin[] = {
+ 0x8c, 0xdc, 0x9b, 0xd9, 0x9e, 0x2e, 0x85, 0x20, 0x86, 0x14, 0xd4, 0x47,
+ 0x3a, 0xcc, 0x51, 0x89, 0x9e, 0xbb, 0x2d, 0x4d, 0x8c, 0x3b, 0xc2, 0xbe,
+ 0x97, 0x4f, 0x12, 0x1e, 0x01, 0x2c, 0x06, 0xd3,
+};
+static const unsigned char kat3439_nonce[] = {
+ 0x5d, 0xfd, 0x4a, 0x5d, 0x66, 0xae, 0xd5, 0x40, 0x67, 0xcf, 0x1c, 0x4f,
+ 0x74, 0x41, 0xd5, 0x3e,
+};
+static const unsigned char kat3439_persstr[] = {0};
+static const unsigned char kat3439_entropyinpr1[] = {
+ 0x67, 0x0b, 0x1e, 0x22, 0xea, 0x4d, 0x55, 0x01, 0xa4, 0xa9, 0xfd, 0xe4,
+ 0xce, 0x76, 0x5e, 0xec, 0x72, 0xd2, 0x09, 0x02, 0x13, 0x2a, 0xc8, 0x57,
+ 0xc3, 0xb6, 0xe7, 0x34, 0x3f, 0xe9, 0x69, 0x17,
+};
+static const unsigned char kat3439_addinpr1[] = {
+ 0x10, 0xef, 0x15, 0x42, 0x72, 0x3d, 0x99, 0x79, 0x77, 0x72, 0xe9, 0xbb,
+ 0xc4, 0x9d, 0x6a, 0x4b, 0x53, 0x3b, 0x55, 0xfd, 0xe8, 0x2b, 0x8f, 0x00,
+ 0x67, 0x63, 0x16, 0x61, 0xd3, 0x05, 0xa0, 0x4e,
+};
+static const unsigned char kat3439_entropyinpr2[] = {
+ 0xd3, 0x5a, 0x3a, 0x62, 0x01, 0x35, 0xd2, 0x47, 0xce, 0x05, 0x9e, 0x42,
+ 0xa4, 0x31, 0x3e, 0x33, 0x55, 0x23, 0x80, 0x42, 0xde, 0x1f, 0x7d, 0x3d,
+ 0x13, 0xac, 0x36, 0x51, 0x47, 0xae, 0x40, 0x46,
+};
+static const unsigned char kat3439_addinpr2[] = {
+ 0xc8, 0x45, 0xc1, 0xd3, 0xe4, 0x27, 0x59, 0x4c, 0x48, 0xf0, 0xa3, 0xa9,
+ 0x74, 0x7f, 0x74, 0x66, 0x07, 0x66, 0xb8, 0xfa, 0x9c, 0xe6, 0xe1, 0x4e,
+ 0xd5, 0xec, 0x94, 0x1c, 0xa0, 0x54, 0x76, 0xef,
+};
+static const unsigned char kat3439_retbits[] = {
+ 0x27, 0xa2, 0x5b, 0x87, 0x53, 0x92, 0xf5, 0x0f, 0xaf, 0xf4, 0x01, 0xf3,
+ 0x70, 0xc5, 0x0b, 0xdb, 0xab, 0x97, 0xd2, 0x0d, 0x94, 0x17, 0xec, 0xdd,
+ 0xf0, 0x91, 0xa1, 0x3c, 0x80, 0x54, 0x66, 0x55, 0x89, 0x9b, 0x5c, 0xe7,
+ 0x04, 0x83, 0x9f, 0x0b, 0xb8, 0x73, 0xdf, 0x66, 0x65, 0xe6, 0x8b, 0x02,
+ 0xb7, 0xd6, 0x4e, 0x7c, 0xa6, 0xdb, 0xb1, 0xd6, 0xac, 0x52, 0xa1, 0x7a,
+ 0xef, 0xcd, 0x88, 0x28,
+};
+static const struct drbg_kat_pr_true kat3439_t = {
+ 3, kat3439_entropyin, kat3439_nonce, kat3439_persstr,
+ kat3439_entropyinpr1, kat3439_addinpr1, kat3439_entropyinpr2,
+ kat3439_addinpr2, kat3439_retbits
+};
+static const struct drbg_kat kat3439 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3439_t
+};
+
+static const unsigned char kat3440_entropyin[] = {
+ 0x99, 0xf6, 0x24, 0x09, 0x47, 0x1b, 0xa1, 0x1b, 0x8b, 0x58, 0x0c, 0x8b,
+ 0xfb, 0x28, 0x5a, 0x0f, 0xa4, 0xad, 0x2e, 0xa0, 0xaa, 0x6d, 0x7e, 0x85,
+ 0xa4, 0xdd, 0x1e, 0xfb, 0x5b, 0xa1, 0x62, 0x95,
+};
+static const unsigned char kat3440_nonce[] = {
+ 0x22, 0x1c, 0x0b, 0xf1, 0x20, 0x83, 0xdd, 0xb9, 0xa0, 0xe9, 0x4a, 0xbd,
+ 0x88, 0x86, 0x21, 0xad,
+};
+static const unsigned char kat3440_persstr[] = {0};
+static const unsigned char kat3440_entropyinpr1[] = {
+ 0xc2, 0x6b, 0x82, 0x2e, 0xcd, 0xcd, 0xbb, 0x0d, 0xe8, 0x2a, 0x02, 0x30,
+ 0xe1, 0xfd, 0xc2, 0x7e, 0x9b, 0xac, 0x45, 0xb7, 0xb1, 0x68, 0xf8, 0x4b,
+ 0xf4, 0x51, 0x06, 0xb3, 0x2b, 0x14, 0x97, 0xb3,
+};
+static const unsigned char kat3440_addinpr1[] = {
+ 0xf2, 0xfe, 0xf7, 0x86, 0x7d, 0x85, 0xc8, 0x8f, 0x19, 0x80, 0x20, 0x0d,
+ 0x42, 0xcf, 0xe4, 0x65, 0x93, 0xc7, 0x0f, 0xc8, 0x84, 0xf4, 0x7d, 0x9c,
+ 0x82, 0xc7, 0x7e, 0x27, 0x95, 0xbc, 0xbb, 0xe6,
+};
+static const unsigned char kat3440_entropyinpr2[] = {
+ 0xb2, 0x2c, 0x9f, 0xcb, 0x28, 0x27, 0x3f, 0xfa, 0x5b, 0xad, 0xd8, 0x19,
+ 0xf8, 0xdb, 0x22, 0xe7, 0xca, 0xec, 0x78, 0x94, 0x1d, 0x58, 0xac, 0xad,
+ 0xa1, 0x3e, 0xb8, 0xd1, 0xfc, 0x11, 0xd0, 0xe2,
+};
+static const unsigned char kat3440_addinpr2[] = {
+ 0x19, 0x53, 0x4c, 0xa0, 0xc2, 0x4d, 0xf8, 0x9a, 0x48, 0x29, 0xa9, 0x86,
+ 0x29, 0xc8, 0xd6, 0x30, 0x2a, 0x34, 0xc7, 0x9f, 0xf5, 0x41, 0x4d, 0x56,
+ 0xb5, 0x26, 0x2e, 0xfe, 0x94, 0x7b, 0x6d, 0xfd,
+};
+static const unsigned char kat3440_retbits[] = {
+ 0xbb, 0x6d, 0x3a, 0x40, 0xce, 0x87, 0xa8, 0xa3, 0x6c, 0x08, 0xb4, 0x2f,
+ 0x1d, 0xed, 0xf0, 0x2b, 0x79, 0x9e, 0xd0, 0x96, 0x58, 0x8d, 0xdc, 0x55,
+ 0x43, 0x6a, 0xdc, 0x8e, 0x1f, 0xf8, 0x25, 0x4a, 0xe2, 0xb3, 0x0c, 0x7f,
+ 0xe1, 0xeb, 0x33, 0x5e, 0xbe, 0xd9, 0xf4, 0x64, 0x77, 0x91, 0x8e, 0x7e,
+ 0x15, 0xc4, 0x2a, 0x83, 0x48, 0x32, 0x7e, 0x1e, 0xf8, 0x25, 0x59, 0x0c,
+ 0x10, 0xb5, 0x66, 0x5d,
+};
+static const struct drbg_kat_pr_true kat3440_t = {
+ 4, kat3440_entropyin, kat3440_nonce, kat3440_persstr,
+ kat3440_entropyinpr1, kat3440_addinpr1, kat3440_entropyinpr2,
+ kat3440_addinpr2, kat3440_retbits
+};
+static const struct drbg_kat kat3440 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3440_t
+};
+
+static const unsigned char kat3441_entropyin[] = {
+ 0xe1, 0xe9, 0x28, 0x03, 0x1b, 0x60, 0x45, 0x79, 0xa8, 0x21, 0x15, 0x55,
+ 0x5c, 0x4e, 0x66, 0x4f, 0x50, 0x77, 0xda, 0xba, 0x5b, 0x65, 0x8f, 0xc3,
+ 0xde, 0x0e, 0xb0, 0x01, 0xed, 0x2e, 0x35, 0x7d,
+};
+static const unsigned char kat3441_nonce[] = {
+ 0xab, 0xf2, 0x56, 0x3d, 0xf0, 0x3a, 0x25, 0x32, 0x73, 0xe4, 0x17, 0x0c,
+ 0x21, 0xdb, 0x7a, 0xfb,
+};
+static const unsigned char kat3441_persstr[] = {0};
+static const unsigned char kat3441_entropyinpr1[] = {
+ 0x12, 0x98, 0x90, 0x6c, 0x23, 0xfd, 0x10, 0x32, 0x12, 0x4e, 0x6c, 0xee,
+ 0x3c, 0x9f, 0x1b, 0x6f, 0x44, 0xda, 0xfd, 0xe3, 0x06, 0x4f, 0xa0, 0x99,
+ 0x3f, 0x5c, 0xf5, 0x96, 0x55, 0xc9, 0x75, 0x1c,
+};
+static const unsigned char kat3441_addinpr1[] = {
+ 0x81, 0x00, 0x8e, 0xef, 0x04, 0x68, 0x6a, 0x88, 0x2a, 0x6e, 0x89, 0x5d,
+ 0x2b, 0xea, 0xad, 0x0a, 0xf7, 0xfd, 0x90, 0x6d, 0xd0, 0x2b, 0xd9, 0x10,
+ 0xb5, 0x09, 0x51, 0xc6, 0x51, 0x51, 0x5f, 0xf1,
+};
+static const unsigned char kat3441_entropyinpr2[] = {
+ 0x1a, 0xdf, 0x9a, 0x7e, 0xfb, 0x6e, 0x2d, 0xa2, 0xfd, 0x0c, 0xff, 0x19,
+ 0xd6, 0x22, 0xb4, 0xb5, 0xcc, 0xed, 0x2d, 0x98, 0x2b, 0x38, 0x59, 0xe4,
+ 0x74, 0xda, 0xe8, 0x51, 0x9d, 0xa2, 0x37, 0x62,
+};
+static const unsigned char kat3441_addinpr2[] = {
+ 0xfb, 0xb8, 0xce, 0xe0, 0xc7, 0xbb, 0x23, 0xba, 0x35, 0x21, 0x1e, 0x4d,
+ 0xe9, 0x9f, 0xc7, 0xd4, 0xe0, 0xac, 0xc1, 0x22, 0xdc, 0xf0, 0x5e, 0x65,
+ 0x7a, 0x33, 0x7f, 0x3c, 0x99, 0xc3, 0x37, 0x58,
+};
+static const unsigned char kat3441_retbits[] = {
+ 0xe5, 0x99, 0x55, 0xdd, 0x62, 0x91, 0x80, 0xfc, 0xea, 0x95, 0x0b, 0x6d,
+ 0xbc, 0x20, 0xae, 0xce, 0xd7, 0xab, 0xa5, 0x4b, 0x06, 0x54, 0x9c, 0x56,
+ 0xa3, 0xae, 0xc4, 0xc9, 0x8b, 0xdf, 0x06, 0xbf, 0xd3, 0x03, 0xb1, 0x07,
+ 0x54, 0xfd, 0x0b, 0x61, 0xd5, 0xe4, 0x02, 0x04, 0xd9, 0xfb, 0x9e, 0x5e,
+ 0x3d, 0xd5, 0x34, 0xe2, 0x8d, 0x68, 0x3f, 0xe0, 0x61, 0xd1, 0xbc, 0x3d,
+ 0xda, 0xc8, 0x04, 0xcf,
+};
+static const struct drbg_kat_pr_true kat3441_t = {
+ 5, kat3441_entropyin, kat3441_nonce, kat3441_persstr,
+ kat3441_entropyinpr1, kat3441_addinpr1, kat3441_entropyinpr2,
+ kat3441_addinpr2, kat3441_retbits
+};
+static const struct drbg_kat kat3441 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3441_t
+};
+
+static const unsigned char kat3442_entropyin[] = {
+ 0x8b, 0x14, 0xd0, 0xe4, 0x2d, 0x71, 0x2d, 0x4b, 0x4b, 0x77, 0xa9, 0x6d,
+ 0x62, 0x93, 0xff, 0xed, 0x15, 0xb0, 0xb9, 0xb4, 0x83, 0x1a, 0x67, 0x6a,
+ 0xac, 0x23, 0x5a, 0x25, 0x64, 0xcd, 0x33, 0x00,
+};
+static const unsigned char kat3442_nonce[] = {
+ 0xe0, 0x44, 0x20, 0x66, 0x5b, 0xd5, 0x68, 0x14, 0x0b, 0xe7, 0xf2, 0x15,
+ 0x48, 0x97, 0xf5, 0x35,
+};
+static const unsigned char kat3442_persstr[] = {0};
+static const unsigned char kat3442_entropyinpr1[] = {
+ 0x5f, 0xda, 0x24, 0xff, 0xd2, 0x95, 0x3c, 0xe2, 0x47, 0x34, 0xd1, 0x30,
+ 0xf9, 0x05, 0x9a, 0xea, 0x83, 0x24, 0x9c, 0xe0, 0xf4, 0x6b, 0xf7, 0x2a,
+ 0xd3, 0xad, 0xf9, 0x72, 0xf9, 0x86, 0x2f, 0x3a,
+};
+static const unsigned char kat3442_addinpr1[] = {
+ 0x36, 0xb9, 0x63, 0xc4, 0xc7, 0x34, 0x09, 0x03, 0xb0, 0xc7, 0x55, 0x1d,
+ 0xcb, 0x21, 0x97, 0xc4, 0x93, 0xbc, 0xb6, 0x58, 0x93, 0xaf, 0xa3, 0x38,
+ 0x28, 0x4f, 0x74, 0xe7, 0xae, 0xd9, 0xd6, 0x30,
+};
+static const unsigned char kat3442_entropyinpr2[] = {
+ 0xe6, 0x1c, 0xa7, 0x1b, 0x4b, 0x24, 0x49, 0xa6, 0xd5, 0xb1, 0x5f, 0xc2,
+ 0x8f, 0x56, 0x33, 0xcf, 0x48, 0x53, 0x92, 0x37, 0x08, 0x3d, 0x53, 0xa2,
+ 0x5e, 0x59, 0x7f, 0x7b, 0x55, 0xde, 0x65, 0xf0,
+};
+static const unsigned char kat3442_addinpr2[] = {
+ 0x2a, 0xe2, 0x50, 0x42, 0x26, 0x49, 0xac, 0x67, 0xdc, 0x55, 0x9a, 0x41,
+ 0xfa, 0x18, 0x8a, 0x4e, 0x31, 0x3b, 0x4a, 0x02, 0x8e, 0x90, 0x9f, 0xcf,
+ 0xdc, 0xc0, 0xe3, 0xd9, 0xde, 0x5c, 0x9a, 0xe8,
+};
+static const unsigned char kat3442_retbits[] = {
+ 0xc8, 0x99, 0x0d, 0xda, 0x05, 0xbb, 0xb7, 0xbd, 0xb8, 0x2b, 0xf6, 0xca,
+ 0x89, 0xc7, 0x01, 0x44, 0x5e, 0x9b, 0x94, 0x4c, 0x79, 0x85, 0x92, 0x1a,
+ 0x18, 0xc0, 0x90, 0x09, 0x97, 0x91, 0xe3, 0xae, 0xa4, 0x5f, 0x9f, 0x84,
+ 0x3c, 0x3c, 0x9a, 0x28, 0xf5, 0x7c, 0x21, 0x8e, 0x04, 0x23, 0xdf, 0x2a,
+ 0x60, 0x38, 0x10, 0xe9, 0xc2, 0x57, 0x6e, 0x1b, 0xe5, 0x03, 0xef, 0x02,
+ 0x7a, 0xaf, 0x5d, 0x20,
+};
+static const struct drbg_kat_pr_true kat3442_t = {
+ 6, kat3442_entropyin, kat3442_nonce, kat3442_persstr,
+ kat3442_entropyinpr1, kat3442_addinpr1, kat3442_entropyinpr2,
+ kat3442_addinpr2, kat3442_retbits
+};
+static const struct drbg_kat kat3442 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3442_t
+};
+
+static const unsigned char kat3443_entropyin[] = {
+ 0xe1, 0x8e, 0x5e, 0x0f, 0xbd, 0x42, 0xd2, 0xc6, 0xaf, 0x77, 0x90, 0x82,
+ 0x2c, 0x6d, 0xbf, 0x5a, 0x49, 0x2e, 0x52, 0x63, 0xb1, 0x42, 0x25, 0xbe,
+ 0x31, 0xe3, 0x85, 0x5b, 0x95, 0xe1, 0xb7, 0x08,
+};
+static const unsigned char kat3443_nonce[] = {
+ 0xab, 0x75, 0xe9, 0xfc, 0xf3, 0x3b, 0xb1, 0x51, 0xca, 0x6e, 0x22, 0xcf,
+ 0x13, 0x78, 0x84, 0x99,
+};
+static const unsigned char kat3443_persstr[] = {0};
+static const unsigned char kat3443_entropyinpr1[] = {
+ 0xb9, 0x58, 0x4c, 0x80, 0x24, 0x56, 0x03, 0xaf, 0x87, 0x04, 0x61, 0x2d,
+ 0xe2, 0x4e, 0xfb, 0x48, 0x16, 0x29, 0xb4, 0x97, 0x73, 0x56, 0x59, 0xd3,
+ 0x00, 0xa8, 0x31, 0xa4, 0x59, 0x79, 0x57, 0x27,
+};
+static const unsigned char kat3443_addinpr1[] = {
+ 0x45, 0x5a, 0x9b, 0xe0, 0x4d, 0xcd, 0x77, 0x80, 0x3e, 0xb3, 0xec, 0x3a,
+ 0xe5, 0x5a, 0xcf, 0x09, 0x19, 0x16, 0x51, 0x61, 0xcb, 0x38, 0x14, 0xf7,
+ 0x6f, 0xf6, 0x7f, 0x48, 0xbb, 0x51, 0x6c, 0xc8,
+};
+static const unsigned char kat3443_entropyinpr2[] = {
+ 0x5f, 0x6c, 0xa9, 0xd8, 0x35, 0x9d, 0x4d, 0x1d, 0x04, 0x50, 0x42, 0xd1,
+ 0xbb, 0xf9, 0x6e, 0xf8, 0xc2, 0xc8, 0x33, 0x25, 0x04, 0x0b, 0x79, 0xc6,
+ 0x6a, 0x3d, 0xaa, 0xf7, 0x81, 0xfd, 0xea, 0xbe,
+};
+static const unsigned char kat3443_addinpr2[] = {
+ 0xc1, 0xef, 0xe0, 0xc5, 0x01, 0xb5, 0xfc, 0xf2, 0x4d, 0x2e, 0x9f, 0x02,
+ 0x16, 0xd7, 0x9b, 0xf9, 0x63, 0x70, 0x3c, 0x43, 0x9c, 0x41, 0x7d, 0x0f,
+ 0x40, 0x14, 0xfa, 0xd5, 0xdc, 0xa8, 0xee, 0x6d,
+};
+static const unsigned char kat3443_retbits[] = {
+ 0x02, 0xb6, 0x03, 0xcb, 0x68, 0x39, 0x0c, 0x94, 0x59, 0x1a, 0x00, 0x74,
+ 0xe5, 0x0c, 0x32, 0xc7, 0x5a, 0x40, 0x98, 0x2d, 0x9d, 0x92, 0xf8, 0x50,
+ 0x1b, 0x20, 0x05, 0x59, 0xd1, 0x4f, 0xbb, 0x03, 0x6e, 0x10, 0xdf, 0xe3,
+ 0xaa, 0x06, 0xc3, 0x4a, 0x42, 0xfb, 0x51, 0x97, 0xe7, 0xa3, 0x44, 0xc0,
+ 0x4c, 0xbf, 0x1c, 0xe7, 0x2b, 0x69, 0xde, 0x01, 0xd9, 0x70, 0x82, 0x4a,
+ 0x3c, 0xa0, 0x5d, 0x03,
+};
+static const struct drbg_kat_pr_true kat3443_t = {
+ 7, kat3443_entropyin, kat3443_nonce, kat3443_persstr,
+ kat3443_entropyinpr1, kat3443_addinpr1, kat3443_entropyinpr2,
+ kat3443_addinpr2, kat3443_retbits
+};
+static const struct drbg_kat kat3443 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3443_t
+};
+
+static const unsigned char kat3444_entropyin[] = {
+ 0x60, 0x02, 0x64, 0x10, 0x66, 0xd9, 0x49, 0x86, 0x8b, 0x63, 0xb1, 0x5e,
+ 0x20, 0x1b, 0x3f, 0x89, 0x96, 0x9a, 0x27, 0xf2, 0xdb, 0xc6, 0xdb, 0xcf,
+ 0x0a, 0x7d, 0x98, 0xc4, 0x66, 0x6e, 0xf7, 0xcf,
+};
+static const unsigned char kat3444_nonce[] = {
+ 0xe6, 0xb5, 0x48, 0x8d, 0xa0, 0xa9, 0x0d, 0x41, 0xa3, 0xc2, 0xbf, 0x91,
+ 0x29, 0x34, 0xe7, 0xf6,
+};
+static const unsigned char kat3444_persstr[] = {0};
+static const unsigned char kat3444_entropyinpr1[] = {
+ 0x95, 0x5d, 0x24, 0xbf, 0x4d, 0x19, 0x27, 0xe2, 0x95, 0x75, 0x6e, 0x49,
+ 0x5d, 0xb9, 0x49, 0x98, 0xd2, 0xfb, 0x89, 0xec, 0xcb, 0x9d, 0x8b, 0x96,
+ 0x5f, 0xf8, 0xe3, 0xf9, 0xce, 0xc2, 0xb9, 0x62,
+};
+static const unsigned char kat3444_addinpr1[] = {
+ 0x11, 0x69, 0xcc, 0x97, 0xfd, 0x71, 0xb3, 0xa8, 0x21, 0xa6, 0x05, 0x9e,
+ 0x37, 0x4b, 0x4b, 0x96, 0x6a, 0x85, 0x7c, 0x28, 0x44, 0x9a, 0x33, 0xae,
+ 0x26, 0x5b, 0xbb, 0x50, 0xb3, 0xcd, 0x92, 0xb9,
+};
+static const unsigned char kat3444_entropyinpr2[] = {
+ 0x43, 0x21, 0xc4, 0x14, 0xda, 0xf7, 0xb1, 0x6d, 0x1c, 0x7d, 0xa7, 0x2f,
+ 0x58, 0x25, 0x62, 0x71, 0x56, 0x1e, 0x13, 0xa4, 0xb2, 0x32, 0x5d, 0xcb,
+ 0xdb, 0x91, 0x27, 0x4f, 0x65, 0x96, 0x0e, 0xcb,
+};
+static const unsigned char kat3444_addinpr2[] = {
+ 0xab, 0xec, 0xfd, 0x41, 0xbc, 0x3b, 0x67, 0x9b, 0x25, 0xa9, 0x83, 0x13,
+ 0x14, 0xb3, 0x30, 0x26, 0xd6, 0x23, 0x09, 0xb5, 0xb4, 0x13, 0xc6, 0xb5,
+ 0x3f, 0x54, 0x98, 0x5e, 0xcf, 0x7f, 0xfa, 0x55,
+};
+static const unsigned char kat3444_retbits[] = {
+ 0x51, 0x5e, 0x68, 0x95, 0xf5, 0x46, 0x96, 0xe7, 0x21, 0x9e, 0x29, 0xd5,
+ 0x36, 0xda, 0x24, 0xa1, 0x80, 0x54, 0xf4, 0x29, 0xa6, 0x73, 0xeb, 0xfb,
+ 0x9e, 0x30, 0xc1, 0xde, 0x7f, 0x03, 0x5b, 0x48, 0x5f, 0x59, 0x1f, 0x73,
+ 0x64, 0x8c, 0xde, 0xeb, 0xd8, 0x89, 0x16, 0x4e, 0x80, 0x36, 0x9d, 0xae,
+ 0x8d, 0x9e, 0xbf, 0xb7, 0x76, 0xe3, 0xa5, 0x7e, 0xd6, 0xd5, 0x86, 0x58,
+ 0x7a, 0x0f, 0x72, 0x43,
+};
+static const struct drbg_kat_pr_true kat3444_t = {
+ 8, kat3444_entropyin, kat3444_nonce, kat3444_persstr,
+ kat3444_entropyinpr1, kat3444_addinpr1, kat3444_entropyinpr2,
+ kat3444_addinpr2, kat3444_retbits
+};
+static const struct drbg_kat kat3444 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3444_t
+};
+
+static const unsigned char kat3445_entropyin[] = {
+ 0xa4, 0x54, 0x3e, 0x2c, 0xb2, 0xaa, 0xa8, 0xce, 0x94, 0x72, 0x67, 0xbc,
+ 0xbd, 0x7a, 0x4d, 0x50, 0x71, 0xa8, 0x07, 0x29, 0xad, 0x86, 0x88, 0x3d,
+ 0x54, 0x57, 0xe3, 0x9d, 0xbc, 0xa7, 0x2d, 0x3e,
+};
+static const unsigned char kat3445_nonce[] = {
+ 0xf5, 0x47, 0x63, 0xd1, 0x34, 0x76, 0xfc, 0x49, 0x39, 0x3d, 0x23, 0xbc,
+ 0x25, 0xc7, 0x9d, 0x19,
+};
+static const unsigned char kat3445_persstr[] = {0};
+static const unsigned char kat3445_entropyinpr1[] = {
+ 0x3d, 0x22, 0xbc, 0x6b, 0x2d, 0xc5, 0x91, 0x86, 0xb7, 0x24, 0xfb, 0x1b,
+ 0x37, 0xfe, 0xcb, 0x3b, 0xd3, 0x8c, 0x49, 0xf7, 0xbd, 0xa5, 0xbd, 0x01,
+ 0xf1, 0xc8, 0x7d, 0x28, 0x6c, 0xe2, 0x8b, 0xee,
+};
+static const unsigned char kat3445_addinpr1[] = {
+ 0xe6, 0x92, 0x69, 0x53, 0x0f, 0xeb, 0xb9, 0xef, 0xef, 0x40, 0x55, 0xbe,
+ 0x7f, 0xee, 0xaf, 0x52, 0xaf, 0xe2, 0xe5, 0x5d, 0xd8, 0xb6, 0x16, 0xd5,
+ 0x26, 0x2c, 0x86, 0xf3, 0x7a, 0xef, 0xac, 0xcd,
+};
+static const unsigned char kat3445_entropyinpr2[] = {
+ 0x1d, 0x46, 0x11, 0x3d, 0x77, 0xa6, 0x64, 0x1f, 0xb1, 0xe7, 0xbf, 0xad,
+ 0x8d, 0x45, 0x68, 0xbf, 0x4c, 0xf9, 0x91, 0xce, 0x39, 0xe5, 0x58, 0xd1,
+ 0xd9, 0xb6, 0xa0, 0x43, 0x9e, 0x23, 0x12, 0x34,
+};
+static const unsigned char kat3445_addinpr2[] = {
+ 0x68, 0x8f, 0x47, 0x37, 0xba, 0x45, 0x17, 0x07, 0x84, 0xd3, 0xe0, 0xc0,
+ 0xee, 0x98, 0x20, 0xb5, 0x38, 0x07, 0xaf, 0x66, 0x47, 0x95, 0x9d, 0xbe,
+ 0x39, 0x40, 0x4e, 0x07, 0x4b, 0x54, 0xe1, 0x76,
+};
+static const unsigned char kat3445_retbits[] = {
+ 0xe6, 0x1f, 0x54, 0x8b, 0x05, 0x3a, 0x30, 0x35, 0xfa, 0xa8, 0xf0, 0xcc,
+ 0xf8, 0xa3, 0xc4, 0x2a, 0x67, 0xfe, 0x89, 0xdc, 0xa0, 0x4f, 0x9a, 0xbc,
+ 0x6e, 0x31, 0xd2, 0xc5, 0xad, 0x85, 0xb6, 0x85, 0xd8, 0x31, 0xfa, 0xb0,
+ 0x6b, 0x75, 0x2e, 0xad, 0xa3, 0x77, 0x6d, 0x1f, 0x3b, 0x71, 0x45, 0x21,
+ 0xc2, 0xe0, 0x0b, 0xde, 0x18, 0x50, 0xe1, 0x58, 0x78, 0x51, 0x3a, 0x9d,
+ 0x50, 0x2c, 0x0e, 0xda,
+};
+static const struct drbg_kat_pr_true kat3445_t = {
+ 9, kat3445_entropyin, kat3445_nonce, kat3445_persstr,
+ kat3445_entropyinpr1, kat3445_addinpr1, kat3445_entropyinpr2,
+ kat3445_addinpr2, kat3445_retbits
+};
+static const struct drbg_kat kat3445 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3445_t
+};
+
+static const unsigned char kat3446_entropyin[] = {
+ 0x27, 0xf2, 0x62, 0x11, 0xf9, 0x8b, 0xf2, 0x27, 0xe0, 0xa1, 0xcf, 0x1b,
+ 0x0e, 0x88, 0x8f, 0x9b, 0x44, 0x2a, 0x48, 0x64, 0xd3, 0x37, 0xb2, 0x34,
+ 0xd4, 0xf9, 0x47, 0xde, 0xe7, 0x3a, 0x31, 0x27,
+};
+static const unsigned char kat3446_nonce[] = {
+ 0xca, 0x2a, 0x52, 0x17, 0x0f, 0x82, 0xb9, 0x44, 0x9b, 0x65, 0x21, 0x72,
+ 0xc2, 0x6e, 0x9d, 0x26,
+};
+static const unsigned char kat3446_persstr[] = {0};
+static const unsigned char kat3446_entropyinpr1[] = {
+ 0x5b, 0x78, 0x24, 0x12, 0xd1, 0xe4, 0x33, 0x6a, 0xcc, 0xff, 0x10, 0x78,
+ 0x60, 0xdc, 0xa2, 0xa5, 0xd9, 0xc8, 0x0f, 0x1e, 0x15, 0xbc, 0xcb, 0xe7,
+ 0xbc, 0xbd, 0x80, 0x17, 0x2f, 0xd9, 0xd2, 0x6c,
+};
+static const unsigned char kat3446_addinpr1[] = {
+ 0xb7, 0x43, 0xcb, 0x78, 0x9b, 0xe9, 0x4b, 0xc6, 0xbc, 0xbd, 0x44, 0xfa,
+ 0xf5, 0x2e, 0x0f, 0xcc, 0xfc, 0xfd, 0x58, 0xc5, 0x7b, 0xc6, 0xa1, 0x54,
+ 0x7e, 0xac, 0x40, 0x98, 0xf3, 0xdb, 0xf1, 0x89,
+};
+static const unsigned char kat3446_entropyinpr2[] = {
+ 0x0d, 0x48, 0x58, 0x12, 0x0e, 0xb4, 0x4f, 0xd9, 0x08, 0xf9, 0x76, 0x2f,
+ 0xe7, 0x30, 0x6d, 0x52, 0x69, 0xcc, 0xa3, 0x04, 0xf7, 0x44, 0xce, 0xe3,
+ 0x92, 0xeb, 0xbf, 0x15, 0x00, 0x10, 0x6d, 0x86,
+};
+static const unsigned char kat3446_addinpr2[] = {
+ 0x7a, 0x74, 0xb5, 0x4b, 0xef, 0x59, 0x0d, 0x6d, 0x3a, 0x54, 0x35, 0x35,
+ 0x44, 0xc6, 0x95, 0xe0, 0x07, 0x2f, 0xdf, 0xa5, 0x66, 0x7f, 0xf7, 0x6b,
+ 0x69, 0xf2, 0x84, 0xeb, 0xde, 0x05, 0x6d, 0x5e,
+};
+static const unsigned char kat3446_retbits[] = {
+ 0x4e, 0xf8, 0xc3, 0x6e, 0xa7, 0x4a, 0x56, 0x7a, 0x59, 0xcd, 0x84, 0x1f,
+ 0x31, 0x50, 0x91, 0x79, 0x8d, 0xe4, 0x91, 0xce, 0x0a, 0x09, 0x66, 0xb3,
+ 0x4d, 0xde, 0xb3, 0x8b, 0xc0, 0xe1, 0xa9, 0x28, 0xc1, 0x1e, 0x85, 0xcf,
+ 0x13, 0x5d, 0x30, 0x96, 0xd2, 0xcc, 0x61, 0xdd, 0xb0, 0x42, 0x54, 0xa6,
+ 0x4b, 0x37, 0x3f, 0xbc, 0x6c, 0x43, 0x2a, 0x88, 0xa2, 0xb9, 0xf5, 0xc7,
+ 0x89, 0x38, 0x55, 0xa5,
+};
+static const struct drbg_kat_pr_true kat3446_t = {
+ 10, kat3446_entropyin, kat3446_nonce, kat3446_persstr,
+ kat3446_entropyinpr1, kat3446_addinpr1, kat3446_entropyinpr2,
+ kat3446_addinpr2, kat3446_retbits
+};
+static const struct drbg_kat kat3446 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3446_t
+};
+
+static const unsigned char kat3447_entropyin[] = {
+ 0x59, 0x9c, 0x6b, 0x73, 0x8e, 0x1f, 0x97, 0xd4, 0xc8, 0xdb, 0xf8, 0xab,
+ 0x76, 0xbb, 0xf6, 0xab, 0x04, 0x25, 0xaf, 0xbb, 0xe2, 0xa3, 0xd9, 0xfe,
+ 0xec, 0xc4, 0xb1, 0xb0, 0x3b, 0x70, 0xe5, 0x85,
+};
+static const unsigned char kat3447_nonce[] = {
+ 0xb9, 0x00, 0x88, 0x9f, 0x58, 0x3c, 0x25, 0xda, 0x9e, 0x52, 0x4f, 0xc8,
+ 0x65, 0x79, 0x28, 0x47,
+};
+static const unsigned char kat3447_persstr[] = {0};
+static const unsigned char kat3447_entropyinpr1[] = {
+ 0xb3, 0x81, 0xba, 0xa2, 0x1a, 0xac, 0xcd, 0x1e, 0xbb, 0x8e, 0xa0, 0xcd,
+ 0x33, 0x7b, 0x06, 0x06, 0xd5, 0x09, 0x8f, 0x35, 0xc8, 0x06, 0xa7, 0xd9,
+ 0x1a, 0xde, 0x94, 0xdb, 0xd6, 0xaf, 0xd7, 0x16,
+};
+static const unsigned char kat3447_addinpr1[] = {
+ 0x4c, 0xa8, 0xa7, 0x8c, 0x10, 0xf5, 0x25, 0x65, 0xac, 0xcf, 0xe9, 0xd8,
+ 0x1e, 0xac, 0x03, 0x4c, 0x82, 0xfc, 0xa9, 0x4a, 0x20, 0x26, 0x43, 0x63,
+ 0x8c, 0x77, 0xb3, 0x7b, 0x66, 0x0a, 0x25, 0xa9,
+};
+static const unsigned char kat3447_entropyinpr2[] = {
+ 0xb1, 0x6a, 0xe7, 0xa5, 0x15, 0xec, 0xe2, 0x56, 0x8e, 0x2e, 0xd5, 0xe4,
+ 0x28, 0xb9, 0xab, 0xd0, 0x9e, 0xd1, 0xaa, 0x1c, 0xf5, 0x1c, 0x08, 0x49,
+ 0x15, 0x14, 0xd6, 0x8c, 0x86, 0x9d, 0xbb, 0xd6,
+};
+static const unsigned char kat3447_addinpr2[] = {
+ 0x07, 0xce, 0xb0, 0xae, 0x35, 0xcb, 0x05, 0x93, 0x48, 0xf4, 0x43, 0xa0,
+ 0xef, 0x1a, 0x5d, 0x34, 0x02, 0xa2, 0x90, 0xb6, 0xf5, 0xc9, 0x3b, 0x93,
+ 0x46, 0xd4, 0x5f, 0xd6, 0x77, 0x59, 0x1f, 0x80,
+};
+static const unsigned char kat3447_retbits[] = {
+ 0xce, 0x3f, 0x0a, 0xe6, 0x24, 0x62, 0x7d, 0x0b, 0x8e, 0x26, 0xcd, 0xcb,
+ 0x6e, 0x59, 0x9f, 0x11, 0x1a, 0xd4, 0xfe, 0xe1, 0xdd, 0x14, 0xa9, 0xe6,
+ 0x92, 0x3c, 0x57, 0x65, 0xfa, 0x71, 0xce, 0xd5, 0x5f, 0x82, 0x06, 0xc4,
+ 0xbd, 0xf7, 0xcb, 0x37, 0xf3, 0xda, 0x11, 0xf0, 0x7c, 0x61, 0x65, 0x03,
+ 0x33, 0x8c, 0x0c, 0x86, 0x67, 0xed, 0xf6, 0xdf, 0x2f, 0xb1, 0x7f, 0xc7,
+ 0x5f, 0xad, 0xf7, 0xb3,
+};
+static const struct drbg_kat_pr_true kat3447_t = {
+ 11, kat3447_entropyin, kat3447_nonce, kat3447_persstr,
+ kat3447_entropyinpr1, kat3447_addinpr1, kat3447_entropyinpr2,
+ kat3447_addinpr2, kat3447_retbits
+};
+static const struct drbg_kat kat3447 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3447_t
+};
+
+static const unsigned char kat3448_entropyin[] = {
+ 0x2b, 0x15, 0x9e, 0xf3, 0x19, 0xf9, 0xcc, 0xd3, 0xa8, 0x98, 0x5c, 0x9d,
+ 0x32, 0x7f, 0xa8, 0x80, 0x39, 0x33, 0xf4, 0x0e, 0x05, 0x0d, 0xcf, 0x6a,
+ 0x28, 0xeb, 0xf4, 0x21, 0xa7, 0x2c, 0x46, 0x36,
+};
+static const unsigned char kat3448_nonce[] = {
+ 0x34, 0x12, 0x5e, 0x45, 0xf1, 0x6b, 0x50, 0x7c, 0xa3, 0x62, 0xfd, 0x6f,
+ 0xea, 0xe8, 0x8f, 0xd8,
+};
+static const unsigned char kat3448_persstr[] = {0};
+static const unsigned char kat3448_entropyinpr1[] = {
+ 0x27, 0x4a, 0x3e, 0x2c, 0x5e, 0x66, 0x42, 0xee, 0x43, 0x41, 0xc2, 0xaa,
+ 0x04, 0x43, 0xa0, 0xed, 0x77, 0x48, 0x63, 0xed, 0x49, 0xd5, 0x22, 0x96,
+ 0x4a, 0x21, 0x45, 0xe9, 0x99, 0xf8, 0xa1, 0xbc,
+};
+static const unsigned char kat3448_addinpr1[] = {
+ 0x7c, 0x7c, 0x5d, 0xce, 0x2d, 0x42, 0x58, 0x75, 0x51, 0x84, 0xcc, 0x6c,
+ 0x50, 0x9e, 0xae, 0x29, 0x41, 0xf8, 0xb9, 0xb3, 0x22, 0xaf, 0xd6, 0xb9,
+ 0x7c, 0xcb, 0x12, 0xd9, 0xde, 0x8d, 0x0c, 0xf9,
+};
+static const unsigned char kat3448_entropyinpr2[] = {
+ 0x7f, 0x98, 0x39, 0xbc, 0x7f, 0xfc, 0x59, 0xb6, 0x80, 0xc2, 0xcd, 0xc9,
+ 0x2d, 0x36, 0x89, 0x94, 0x56, 0x2a, 0x66, 0xe2, 0x6f, 0xe5, 0x67, 0x16,
+ 0x9c, 0x71, 0x48, 0x70, 0x16, 0x34, 0x1b, 0xf3,
+};
+static const unsigned char kat3448_addinpr2[] = {
+ 0xa6, 0xe7, 0x78, 0x90, 0x98, 0x2d, 0xd0, 0xb7, 0x4e, 0x98, 0xeb, 0xdc,
+ 0x70, 0x2b, 0xb6, 0x12, 0xa8, 0x2d, 0xb2, 0x4c, 0x11, 0x27, 0x3b, 0x25,
+ 0x64, 0x60, 0x7e, 0x96, 0xeb, 0x68, 0x8f, 0x33,
+};
+static const unsigned char kat3448_retbits[] = {
+ 0xe1, 0x93, 0x41, 0x11, 0x1b, 0xb1, 0x0c, 0x29, 0x74, 0x3e, 0x48, 0xa7,
+ 0xf1, 0x44, 0xc1, 0xcd, 0xd6, 0xa2, 0x14, 0xa7, 0x7c, 0x4b, 0xb4, 0xc6,
+ 0x31, 0xb8, 0x8f, 0x07, 0x5c, 0xb6, 0xdf, 0x00, 0x36, 0xb0, 0x0a, 0x0d,
+ 0x59, 0x2b, 0x8a, 0xdb, 0xc2, 0x6b, 0x88, 0x44, 0x4c, 0x80, 0x27, 0xd0,
+ 0xf6, 0x8d, 0xc8, 0x01, 0x82, 0x15, 0x05, 0x38, 0xc7, 0x01, 0x8a, 0xf4,
+ 0xa4, 0xef, 0xeb, 0x09,
+};
+static const struct drbg_kat_pr_true kat3448_t = {
+ 12, kat3448_entropyin, kat3448_nonce, kat3448_persstr,
+ kat3448_entropyinpr1, kat3448_addinpr1, kat3448_entropyinpr2,
+ kat3448_addinpr2, kat3448_retbits
+};
+static const struct drbg_kat kat3448 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3448_t
+};
+
+static const unsigned char kat3449_entropyin[] = {
+ 0x1e, 0xa8, 0xfc, 0x3a, 0x49, 0x3c, 0xf6, 0x5b, 0x07, 0xf7, 0x33, 0xc7,
+ 0x6b, 0xf7, 0x64, 0x29, 0x79, 0xd5, 0x38, 0xf7, 0xe7, 0xef, 0x44, 0x37,
+ 0x3f, 0xf1, 0xef, 0x05, 0x55, 0xfc, 0x1b, 0x9e,
+};
+static const unsigned char kat3449_nonce[] = {
+ 0xd8, 0x51, 0x08, 0x72, 0xa0, 0x69, 0xa2, 0xfd, 0x01, 0x62, 0xe0, 0x72,
+ 0x9c, 0x27, 0x34, 0x4c,
+};
+static const unsigned char kat3449_persstr[] = {0};
+static const unsigned char kat3449_entropyinpr1[] = {
+ 0x82, 0x8b, 0x2f, 0x9e, 0xcd, 0xa5, 0x72, 0xf6, 0x64, 0x02, 0x88, 0x9d,
+ 0x10, 0x6c, 0xc3, 0x69, 0x9a, 0x80, 0x5d, 0xc4, 0x16, 0x27, 0xa2, 0xef,
+ 0x52, 0x5e, 0xdf, 0x10, 0xff, 0x53, 0x9f, 0x9c,
+};
+static const unsigned char kat3449_addinpr1[] = {
+ 0x0f, 0x31, 0xb0, 0x35, 0x6f, 0x34, 0xa4, 0x49, 0xa0, 0x17, 0x4b, 0xc6,
+ 0x2b, 0x7d, 0xee, 0x5f, 0xbe, 0xd1, 0xec, 0x76, 0x95, 0xe8, 0x42, 0x5d,
+ 0x65, 0x87, 0x6d, 0x27, 0xfe, 0x67, 0xb6, 0x5b,
+};
+static const unsigned char kat3449_entropyinpr2[] = {
+ 0x25, 0x3d, 0xd6, 0xf6, 0x92, 0x2f, 0x36, 0x86, 0xfe, 0x24, 0x71, 0xaf,
+ 0x07, 0x6a, 0x43, 0x9b, 0xb9, 0xba, 0xde, 0x05, 0xfb, 0x72, 0xc6, 0x4e,
+ 0x00, 0xc4, 0x5a, 0x03, 0x8a, 0xd0, 0xbe, 0xb0,
+};
+static const unsigned char kat3449_addinpr2[] = {
+ 0x35, 0x24, 0x65, 0xe3, 0xd4, 0xbb, 0x4c, 0x14, 0xd3, 0xb8, 0x62, 0xbd,
+ 0xe4, 0x34, 0x65, 0xee, 0x88, 0xf1, 0x97, 0x29, 0x4b, 0xf7, 0xbe, 0x78,
+ 0x22, 0xaa, 0x56, 0xdb, 0xba, 0xef, 0x66, 0x56,
+};
+static const unsigned char kat3449_retbits[] = {
+ 0xd7, 0x45, 0x7b, 0xc3, 0x05, 0xfa, 0x40, 0x84, 0x6d, 0x3e, 0x94, 0x29,
+ 0x9a, 0xdb, 0xb7, 0xe3, 0x39, 0xcd, 0x94, 0x90, 0xab, 0xdf, 0x8a, 0xec,
+ 0x1a, 0x03, 0x49, 0x49, 0x2b, 0xfe, 0xcc, 0xee, 0x5e, 0xe4, 0xd8, 0x20,
+ 0x3f, 0xae, 0xb0, 0x0c, 0xaa, 0x2d, 0xce, 0x0a, 0x61, 0x6e, 0xa3, 0x1a,
+ 0x63, 0x53, 0xee, 0xb7, 0x07, 0xc4, 0x76, 0xf3, 0xe0, 0xa5, 0x84, 0x7f,
+ 0xf4, 0x01, 0x46, 0x04,
+};
+static const struct drbg_kat_pr_true kat3449_t = {
+ 13, kat3449_entropyin, kat3449_nonce, kat3449_persstr,
+ kat3449_entropyinpr1, kat3449_addinpr1, kat3449_entropyinpr2,
+ kat3449_addinpr2, kat3449_retbits
+};
+static const struct drbg_kat kat3449 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3449_t
+};
+
+static const unsigned char kat3450_entropyin[] = {
+ 0x8f, 0x21, 0x15, 0xea, 0x7e, 0x25, 0x3d, 0x68, 0xa0, 0x20, 0xb7, 0xd1,
+ 0xb2, 0x9e, 0x2e, 0x89, 0xa9, 0x49, 0xff, 0x14, 0xbf, 0xa3, 0x3d, 0xb9,
+ 0xea, 0x73, 0x97, 0xbc, 0x10, 0x05, 0x13, 0x7a,
+};
+static const unsigned char kat3450_nonce[] = {
+ 0xf0, 0xfd, 0xe3, 0xbe, 0xc8, 0x2a, 0x7a, 0xd4, 0x89, 0xfd, 0x14, 0x80,
+ 0x61, 0x39, 0xdc, 0x08,
+};
+static const unsigned char kat3450_persstr[] = {0};
+static const unsigned char kat3450_entropyinpr1[] = {
+ 0x29, 0xde, 0x7b, 0x63, 0xd4, 0x21, 0xab, 0x69, 0x92, 0x20, 0xc8, 0x28,
+ 0xc7, 0x23, 0xdf, 0xcc, 0xc9, 0xf2, 0xa3, 0x7a, 0xd1, 0xe1, 0x97, 0x40,
+ 0x03, 0xf6, 0x00, 0xc4, 0x9a, 0x39, 0x98, 0xca,
+};
+static const unsigned char kat3450_addinpr1[] = {
+ 0x72, 0xce, 0x1e, 0xff, 0x59, 0xf0, 0xd6, 0xc5, 0xd1, 0xaf, 0x10, 0x40,
+ 0x87, 0xa5, 0xca, 0xf1, 0xc9, 0x6f, 0x0d, 0x3e, 0xdd, 0xae, 0x97, 0x20,
+ 0x51, 0xec, 0x88, 0x47, 0x12, 0x7e, 0xfb, 0x2a,
+};
+static const unsigned char kat3450_entropyinpr2[] = {
+ 0x2c, 0xe7, 0x76, 0xcc, 0x1b, 0xa0, 0x2a, 0xf9, 0x1c, 0x6c, 0x4f, 0xa1,
+ 0x0b, 0xd0, 0x41, 0x2b, 0x98, 0x1f, 0x2d, 0x78, 0x1a, 0x33, 0xde, 0x7e,
+ 0x4e, 0xd3, 0x44, 0xac, 0xca, 0x32, 0xfd, 0xae,
+};
+static const unsigned char kat3450_addinpr2[] = {
+ 0x3d, 0x8c, 0x81, 0xed, 0x48, 0x21, 0xa2, 0xdd, 0xfe, 0x58, 0x86, 0x0f,
+ 0xa7, 0x52, 0x9d, 0x77, 0x86, 0xe6, 0x38, 0x98, 0x45, 0xa3, 0x7f, 0x04,
+ 0x76, 0xf1, 0x20, 0x78, 0xb4, 0x73, 0x0e, 0xd6,
+};
+static const unsigned char kat3450_retbits[] = {
+ 0x18, 0xfe, 0xc5, 0x8f, 0x3a, 0x5d, 0x46, 0x33, 0x86, 0xc8, 0x9b, 0xb9,
+ 0xdc, 0xb9, 0xbe, 0xc4, 0x4f, 0x88, 0xfe, 0x42, 0xe7, 0xea, 0x82, 0x9b,
+ 0xe9, 0x1a, 0x92, 0xdc, 0x6a, 0xd9, 0xef, 0xc7, 0x8e, 0xb0, 0xe0, 0xfa,
+ 0x88, 0xb8, 0xb6, 0x90, 0xd8, 0xef, 0x8a, 0xf0, 0xe7, 0x9d, 0xff, 0x76,
+ 0x85, 0x75, 0x2b, 0xab, 0x9a, 0x3d, 0x55, 0xec, 0xbd, 0xc6, 0x41, 0x35,
+ 0xc1, 0xfe, 0x40, 0x83,
+};
+static const struct drbg_kat_pr_true kat3450_t = {
+ 14, kat3450_entropyin, kat3450_nonce, kat3450_persstr,
+ kat3450_entropyinpr1, kat3450_addinpr1, kat3450_entropyinpr2,
+ kat3450_addinpr2, kat3450_retbits
+};
+static const struct drbg_kat kat3450 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3450_t
+};
+
+static const unsigned char kat3451_entropyin[] = {
+ 0xb7, 0xc1, 0xd9, 0xee, 0xf9, 0x8d, 0x53, 0x70, 0x31, 0x37, 0xb4, 0xd9,
+ 0x1e, 0x86, 0xc5, 0x8d, 0x5b, 0x79, 0x1d, 0xc1, 0x97, 0x5b, 0xa5, 0xc2,
+ 0x08, 0x0a, 0x28, 0xdd, 0x2d, 0xdb, 0x2a, 0xe8,
+};
+static const unsigned char kat3451_nonce[] = {
+ 0x05, 0xa9, 0xdd, 0xa0, 0x62, 0x88, 0x70, 0xaa, 0xa5, 0x26, 0xde, 0x69,
+ 0x5d, 0x1c, 0xd3, 0x63,
+};
+static const unsigned char kat3451_persstr[] = {
+ 0x0b, 0x27, 0xf0, 0x80, 0x56, 0x3c, 0x26, 0x0c, 0xf7, 0x4c, 0xc8, 0x98,
+ 0x27, 0x66, 0x98, 0x5e, 0x1e, 0x3f, 0xd4, 0xd6, 0x04, 0x45, 0x81, 0xdf,
+ 0x83, 0xec, 0xb0, 0x8d, 0x7c, 0x4d, 0xb9, 0x26,
+};
+static const unsigned char kat3451_entropyinpr1[] = {
+ 0xd3, 0x7a, 0x86, 0x71, 0x00, 0xb5, 0x11, 0xd3, 0x06, 0x3c, 0x5d, 0xad,
+ 0x39, 0xf3, 0xb8, 0x21, 0xa0, 0xfe, 0x9e, 0xcb, 0x1c, 0xd7, 0x64, 0xca,
+ 0xc2, 0xf5, 0x3a, 0xb3, 0xea, 0x3c, 0x66, 0x4b,
+};
+static const unsigned char kat3451_addinpr1[] = {0};
+static const unsigned char kat3451_entropyinpr2[] = {
+ 0xfd, 0x8f, 0xbd, 0x84, 0xfb, 0x77, 0xe0, 0xd4, 0x6f, 0xa4, 0xc5, 0x24,
+ 0x7f, 0xa4, 0xfc, 0xc3, 0xf2, 0x35, 0x8a, 0x6f, 0x17, 0xd1, 0x7c, 0x95,
+ 0x09, 0xfd, 0x81, 0x4d, 0xec, 0x12, 0x06, 0xc6,
+};
+static const unsigned char kat3451_addinpr2[] = {0};
+static const unsigned char kat3451_retbits[] = {
+ 0xf6, 0x64, 0x05, 0xf9, 0xa8, 0x7b, 0xae, 0x5e, 0xa6, 0x49, 0x36, 0x8a,
+ 0x83, 0x0a, 0xc7, 0xf0, 0x0a, 0x72, 0x23, 0x90, 0x09, 0x8c, 0xac, 0xe8,
+ 0x5d, 0x38, 0x19, 0x47, 0x70, 0xaf, 0x3a, 0xc8, 0x32, 0xf4, 0x33, 0xf8,
+ 0x16, 0xf5, 0xcd, 0x44, 0x81, 0x9c, 0xc9, 0xd8, 0xd3, 0xd2, 0x4e, 0x2a,
+ 0x7a, 0x32, 0x20, 0xea, 0x89, 0x9b, 0x38, 0xe7, 0x5e, 0xde, 0x62, 0x72,
+ 0x90, 0x36, 0x10, 0x93,
+};
+static const struct drbg_kat_pr_true kat3451_t = {
+ 0, kat3451_entropyin, kat3451_nonce, kat3451_persstr,
+ kat3451_entropyinpr1, kat3451_addinpr1, kat3451_entropyinpr2,
+ kat3451_addinpr2, kat3451_retbits
+};
+static const struct drbg_kat kat3451 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3451_t
+};
+
+static const unsigned char kat3452_entropyin[] = {
+ 0x53, 0x0f, 0x7c, 0x81, 0xe5, 0x0f, 0x1c, 0x22, 0xc9, 0x4a, 0x26, 0x40,
+ 0xae, 0x04, 0xd9, 0x69, 0xc1, 0xaa, 0x1c, 0x2d, 0x53, 0xa6, 0x5f, 0xc8,
+ 0xab, 0xf5, 0x9f, 0x54, 0x2f, 0x99, 0x02, 0xcf,
+};
+static const unsigned char kat3452_nonce[] = {
+ 0x40, 0xac, 0xc4, 0x00, 0x15, 0x95, 0xe6, 0xb9, 0xde, 0x7b, 0x02, 0x62,
+ 0x1c, 0x61, 0x50, 0x1b,
+};
+static const unsigned char kat3452_persstr[] = {
+ 0xa9, 0x20, 0x38, 0x26, 0x3c, 0x9e, 0x35, 0x51, 0x37, 0x7d, 0x98, 0x5e,
+ 0x75, 0xf2, 0x72, 0x32, 0x0d, 0x1c, 0xb0, 0xdc, 0x43, 0xa7, 0xb7, 0x46,
+ 0xb3, 0xab, 0x80, 0xa8, 0x0c, 0x52, 0x3b, 0xf2,
+};
+static const unsigned char kat3452_entropyinpr1[] = {
+ 0xda, 0x8a, 0xd3, 0x80, 0x5b, 0xc5, 0xf5, 0xbb, 0x55, 0x4d, 0x83, 0xbc,
+ 0x22, 0xf9, 0x25, 0xef, 0xd2, 0xe0, 0xd0, 0x24, 0x6f, 0x53, 0x14, 0x78,
+ 0x5a, 0x68, 0x2d, 0x3b, 0x9b, 0x85, 0x9b, 0x1b,
+};
+static const unsigned char kat3452_addinpr1[] = {0};
+static const unsigned char kat3452_entropyinpr2[] = {
+ 0xc7, 0x92, 0x16, 0xa7, 0x0f, 0xa6, 0xbd, 0x82, 0x56, 0x82, 0x2d, 0x75,
+ 0x39, 0x56, 0x8c, 0x73, 0xca, 0x80, 0xc8, 0xf6, 0xbc, 0x44, 0x2b, 0xcf,
+ 0xed, 0xcd, 0x25, 0x92, 0xef, 0xb0, 0xe1, 0x4a,
+};
+static const unsigned char kat3452_addinpr2[] = {0};
+static const unsigned char kat3452_retbits[] = {
+ 0x88, 0x41, 0x3f, 0x63, 0x25, 0x90, 0x83, 0xa5, 0x3b, 0x83, 0x27, 0xfb,
+ 0x72, 0x58, 0x76, 0xd6, 0x26, 0x60, 0x95, 0x55, 0xd9, 0x36, 0xd4, 0x7f,
+ 0x8c, 0xc6, 0xcc, 0x54, 0xcb, 0x8a, 0x81, 0xdf, 0xf6, 0xee, 0x9e, 0x99,
+ 0xc1, 0x42, 0xe2, 0xed, 0xb6, 0xa6, 0x47, 0xf5, 0xe0, 0x28, 0xb9, 0x62,
+ 0x2f, 0xf3, 0xca, 0x3e, 0x58, 0x96, 0xbd, 0x6e, 0x67, 0x9f, 0x46, 0xed,
+ 0x77, 0x30, 0x71, 0x78,
+};
+static const struct drbg_kat_pr_true kat3452_t = {
+ 1, kat3452_entropyin, kat3452_nonce, kat3452_persstr,
+ kat3452_entropyinpr1, kat3452_addinpr1, kat3452_entropyinpr2,
+ kat3452_addinpr2, kat3452_retbits
+};
+static const struct drbg_kat kat3452 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3452_t
+};
+
+static const unsigned char kat3453_entropyin[] = {
+ 0xd7, 0xba, 0x78, 0x13, 0xf5, 0x28, 0x5b, 0xad, 0x22, 0xa1, 0xd0, 0xa0,
+ 0x34, 0x42, 0x97, 0x7b, 0x44, 0xb9, 0x2d, 0xfc, 0xc7, 0x85, 0x81, 0x5c,
+ 0x31, 0xe0, 0x04, 0x23, 0xea, 0xee, 0x28, 0x23,
+};
+static const unsigned char kat3453_nonce[] = {
+ 0x1a, 0xa3, 0x0a, 0xe5, 0x6a, 0xb7, 0xa4, 0xed, 0x92, 0x29, 0x7a, 0x00,
+ 0xde, 0x8c, 0x4e, 0x34,
+};
+static const unsigned char kat3453_persstr[] = {
+ 0x49, 0xdb, 0x7d, 0x1a, 0xf7, 0x90, 0x33, 0xeb, 0x07, 0x66, 0x42, 0x02,
+ 0x56, 0x71, 0x0a, 0xb8, 0xff, 0x4e, 0x05, 0x50, 0x54, 0x65, 0xb7, 0x77,
+ 0x85, 0x1a, 0xe5, 0x49, 0x39, 0x31, 0x79, 0x27,
+};
+static const unsigned char kat3453_entropyinpr1[] = {
+ 0xda, 0xc0, 0x1c, 0xb5, 0xbc, 0x0d, 0xff, 0x75, 0x35, 0x88, 0xb8, 0xc9,
+ 0xf1, 0xa7, 0xb9, 0xc6, 0xb7, 0x83, 0x0d, 0xcb, 0x2a, 0xf5, 0x21, 0x36,
+ 0x5e, 0xcd, 0x9d, 0xfb, 0x21, 0x37, 0x92, 0xb7,
+};
+static const unsigned char kat3453_addinpr1[] = {0};
+static const unsigned char kat3453_entropyinpr2[] = {
+ 0xb9, 0x18, 0x78, 0x71, 0xca, 0xb7, 0x7d, 0xb2, 0x27, 0xaa, 0xf5, 0xa2,
+ 0x37, 0xe6, 0x43, 0x92, 0x3a, 0x02, 0xb4, 0xb7, 0xac, 0xab, 0x4d, 0x0b,
+ 0x14, 0x04, 0x6c, 0xca, 0x44, 0x0f, 0x87, 0x9a,
+};
+static const unsigned char kat3453_addinpr2[] = {0};
+static const unsigned char kat3453_retbits[] = {
+ 0xab, 0x71, 0xe5, 0x53, 0xf0, 0xec, 0x95, 0x79, 0x12, 0xb8, 0x82, 0x59,
+ 0xa6, 0xd4, 0x86, 0x2e, 0xde, 0x1c, 0xff, 0x0f, 0x13, 0x00, 0x50, 0xae,
+ 0x8a, 0xd7, 0xa0, 0xee, 0x37, 0x95, 0xef, 0x76, 0x44, 0xeb, 0x27, 0xe1,
+ 0x4d, 0x09, 0x11, 0x3c, 0x9a, 0x25, 0x80, 0xc6, 0x0e, 0x98, 0x68, 0x7d,
+ 0x81, 0x06, 0x44, 0xfa, 0xf9, 0xa6, 0xd6, 0x99, 0xc7, 0xba, 0x64, 0x5d,
+ 0x75, 0x18, 0x5a, 0x40,
+};
+static const struct drbg_kat_pr_true kat3453_t = {
+ 2, kat3453_entropyin, kat3453_nonce, kat3453_persstr,
+ kat3453_entropyinpr1, kat3453_addinpr1, kat3453_entropyinpr2,
+ kat3453_addinpr2, kat3453_retbits
+};
+static const struct drbg_kat kat3453 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3453_t
+};
+
+static const unsigned char kat3454_entropyin[] = {
+ 0x14, 0xdb, 0x6e, 0x94, 0xfe, 0xc5, 0x73, 0x36, 0xc2, 0xc9, 0xd7, 0x41,
+ 0x24, 0x2f, 0xfa, 0x60, 0x3c, 0x11, 0x03, 0xd3, 0xbe, 0xe9, 0xa5, 0xc1,
+ 0xf6, 0x57, 0x15, 0x54, 0x70, 0x05, 0x09, 0xf1,
+};
+static const unsigned char kat3454_nonce[] = {
+ 0x75, 0x6b, 0x03, 0x69, 0x66, 0x63, 0xb0, 0xaa, 0x0a, 0x74, 0x91, 0xfc,
+ 0x6d, 0x26, 0x96, 0xe2,
+};
+static const unsigned char kat3454_persstr[] = {
+ 0x44, 0x42, 0x26, 0xb6, 0x0d, 0xbd, 0x85, 0xb4, 0x9b, 0x38, 0x5e, 0xcc,
+ 0xb5, 0xcd, 0xca, 0xc2, 0x42, 0x07, 0x5e, 0x05, 0x87, 0x03, 0xb9, 0x4e,
+ 0x98, 0x3f, 0x94, 0x57, 0xd4, 0xac, 0x0b, 0xdb,
+};
+static const unsigned char kat3454_entropyinpr1[] = {
+ 0xe6, 0x23, 0x71, 0xb9, 0x55, 0xd0, 0xd0, 0x98, 0x85, 0x44, 0x68, 0xe9,
+ 0x31, 0xbc, 0xa2, 0x2e, 0x5a, 0x22, 0x6a, 0xad, 0x2c, 0xed, 0x51, 0x6f,
+ 0xe7, 0xfa, 0xdb, 0x6d, 0x23, 0x58, 0xce, 0x15,
+};
+static const unsigned char kat3454_addinpr1[] = {0};
+static const unsigned char kat3454_entropyinpr2[] = {
+ 0x3d, 0x46, 0xe7, 0x33, 0x00, 0xe6, 0x7b, 0xa1, 0x58, 0x8e, 0x3c, 0xa1,
+ 0x47, 0x85, 0xdc, 0x13, 0x9e, 0xf6, 0x6c, 0x14, 0xce, 0x20, 0x9d, 0xaa,
+ 0xd0, 0x54, 0x33, 0xc8, 0x90, 0x04, 0xda, 0x4f,
+};
+static const unsigned char kat3454_addinpr2[] = {0};
+static const unsigned char kat3454_retbits[] = {
+ 0xc9, 0x06, 0xdb, 0x2d, 0x02, 0x46, 0xae, 0xcd, 0xf4, 0x84, 0x40, 0x83,
+ 0xc4, 0xfc, 0xfb, 0xce, 0x6d, 0x7c, 0xd4, 0xd2, 0x51, 0x20, 0x8a, 0xeb,
+ 0xe9, 0x22, 0x52, 0xb7, 0xbb, 0x7b, 0x24, 0xb5, 0x8c, 0xa7, 0x3e, 0xa9,
+ 0x38, 0x1f, 0x48, 0x35, 0x48, 0x3b, 0xe0, 0x15, 0x06, 0x5a, 0x20, 0x23,
+ 0xb1, 0xe3, 0x85, 0x24, 0x8b, 0x7f, 0xd7, 0x24, 0x3f, 0xf9, 0xbd, 0x77,
+ 0x88, 0x35, 0x7b, 0xb5,
+};
+static const struct drbg_kat_pr_true kat3454_t = {
+ 3, kat3454_entropyin, kat3454_nonce, kat3454_persstr,
+ kat3454_entropyinpr1, kat3454_addinpr1, kat3454_entropyinpr2,
+ kat3454_addinpr2, kat3454_retbits
+};
+static const struct drbg_kat kat3454 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3454_t
+};
+
+static const unsigned char kat3455_entropyin[] = {
+ 0x98, 0x79, 0x98, 0x03, 0xb5, 0x5c, 0x55, 0xc8, 0xc3, 0x47, 0xc6, 0xbd,
+ 0x54, 0x2e, 0xa9, 0x17, 0x4b, 0x36, 0xf5, 0xc4, 0x7f, 0x8e, 0xaa, 0xf6,
+ 0x03, 0x67, 0xb2, 0x20, 0x21, 0xa6, 0xd0, 0x9a,
+};
+static const unsigned char kat3455_nonce[] = {
+ 0x47, 0xce, 0x2c, 0x85, 0xf9, 0x66, 0x0c, 0x14, 0x45, 0x12, 0x09, 0xd0,
+ 0x19, 0x44, 0xf3, 0x5b,
+};
+static const unsigned char kat3455_persstr[] = {
+ 0xab, 0xad, 0xd6, 0xa8, 0x8b, 0x62, 0x93, 0x9c, 0xbb, 0x46, 0x30, 0xcf,
+ 0x8d, 0x85, 0xe5, 0xee, 0x3b, 0xa3, 0xa9, 0x8c, 0xaf, 0xfb, 0xf7, 0x5c,
+ 0x1e, 0x75, 0x92, 0xd2, 0x67, 0x2a, 0x98, 0x30,
+};
+static const unsigned char kat3455_entropyinpr1[] = {
+ 0xab, 0x5a, 0x55, 0xe7, 0xde, 0x98, 0xb6, 0x42, 0xef, 0x4c, 0x59, 0x16,
+ 0xd2, 0xe9, 0xd9, 0x4a, 0xe6, 0xe0, 0x2c, 0x10, 0x51, 0xd1, 0x67, 0x0d,
+ 0x72, 0x5b, 0xd0, 0x9b, 0xf2, 0x0a, 0x94, 0x35,
+};
+static const unsigned char kat3455_addinpr1[] = {0};
+static const unsigned char kat3455_entropyinpr2[] = {
+ 0x1d, 0xd9, 0x1a, 0xe2, 0xb5, 0xab, 0x1f, 0xc5, 0xa7, 0x40, 0x3d, 0x09,
+ 0x33, 0xf7, 0xf6, 0xd5, 0x20, 0xc0, 0x19, 0x4f, 0xdd, 0xe6, 0x69, 0xdc,
+ 0x6b, 0xb0, 0x83, 0x39, 0xc3, 0x86, 0xf9, 0xb7,
+};
+static const unsigned char kat3455_addinpr2[] = {0};
+static const unsigned char kat3455_retbits[] = {
+ 0x17, 0xf2, 0x9b, 0xdc, 0x3f, 0x9b, 0x6d, 0xd1, 0xfb, 0xdc, 0xff, 0x68,
+ 0x79, 0xfa, 0x2d, 0x2b, 0x7b, 0x94, 0xd9, 0xb4, 0x4b, 0xd3, 0x7a, 0x84,
+ 0x41, 0x89, 0xd0, 0x60, 0xf2, 0x74, 0x54, 0xe4, 0x7b, 0x2c, 0x20, 0xdd,
+ 0x71, 0x21, 0x6d, 0x00, 0x40, 0xb5, 0x86, 0xea, 0x9c, 0x74, 0x10, 0xdc,
+ 0x68, 0x25, 0x03, 0x3e, 0x58, 0x8e, 0x9a, 0xbd, 0x81, 0x93, 0xdd, 0xa1,
+ 0xb5, 0xbe, 0x1c, 0xea,
+};
+static const struct drbg_kat_pr_true kat3455_t = {
+ 4, kat3455_entropyin, kat3455_nonce, kat3455_persstr,
+ kat3455_entropyinpr1, kat3455_addinpr1, kat3455_entropyinpr2,
+ kat3455_addinpr2, kat3455_retbits
+};
+static const struct drbg_kat kat3455 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3455_t
+};
+
+static const unsigned char kat3456_entropyin[] = {
+ 0x9f, 0xd5, 0xea, 0x40, 0x02, 0x0a, 0xe5, 0x6c, 0x10, 0x16, 0x3d, 0x17,
+ 0xc9, 0xc1, 0x95, 0x45, 0xf5, 0x0f, 0xff, 0x9d, 0xf6, 0xf7, 0xaa, 0xaf,
+ 0x6a, 0x7d, 0x40, 0x8e, 0x3f, 0xf9, 0xba, 0x11,
+};
+static const unsigned char kat3456_nonce[] = {
+ 0xac, 0xcd, 0x67, 0xc4, 0x80, 0x4c, 0xe7, 0x11, 0xc9, 0x73, 0xd8, 0x1a,
+ 0x72, 0x1a, 0x50, 0x97,
+};
+static const unsigned char kat3456_persstr[] = {
+ 0xb0, 0x17, 0x14, 0xc6, 0x73, 0xad, 0x95, 0xaa, 0x98, 0x7a, 0x9f, 0xdb,
+ 0xb6, 0x54, 0xcd, 0x86, 0x75, 0x51, 0x01, 0xb3, 0xd2, 0x81, 0x66, 0xf2,
+ 0xf6, 0xf8, 0x65, 0xce, 0x9d, 0x8c, 0x3b, 0xaa,
+};
+static const unsigned char kat3456_entropyinpr1[] = {
+ 0x10, 0xe9, 0x92, 0xf7, 0x29, 0x7f, 0xf8, 0xfb, 0xe1, 0xa2, 0x2b, 0x02,
+ 0x56, 0x4a, 0x8c, 0x9b, 0x02, 0xb9, 0xb1, 0xc9, 0x10, 0xb7, 0xd1, 0x8f,
+ 0x9e, 0xc5, 0x4a, 0x03, 0x1c, 0xba, 0x1e, 0x73,
+};
+static const unsigned char kat3456_addinpr1[] = {0};
+static const unsigned char kat3456_entropyinpr2[] = {
+ 0xee, 0x2a, 0x73, 0xe5, 0x04, 0xe1, 0xf4, 0xd3, 0xa1, 0x1e, 0x82, 0x55,
+ 0xca, 0x55, 0x44, 0x1e, 0x02, 0x78, 0x50, 0x9a, 0xc1, 0xe3, 0x2d, 0x63,
+ 0xd1, 0xc2, 0xff, 0xf3, 0xde, 0x6a, 0xaa, 0x6b,
+};
+static const unsigned char kat3456_addinpr2[] = {0};
+static const unsigned char kat3456_retbits[] = {
+ 0x29, 0x51, 0x27, 0x4b, 0xc0, 0x75, 0x56, 0xbb, 0x4e, 0xae, 0xe9, 0x4e,
+ 0x05, 0x14, 0xef, 0x0e, 0x17, 0x76, 0x5d, 0xbe, 0xdc, 0x8b, 0x30, 0x46,
+ 0xcf, 0x74, 0x0a, 0xce, 0xbc, 0x0a, 0xc5, 0xa7, 0xcb, 0xa6, 0xe3, 0x72,
+ 0x81, 0x2d, 0x04, 0xe6, 0xf1, 0x3c, 0xe5, 0xf7, 0xb4, 0x71, 0x98, 0x78,
+ 0x7a, 0x29, 0x53, 0x49, 0xbc, 0x87, 0x08, 0xb0, 0xa6, 0xc1, 0x79, 0x17,
+ 0x0d, 0x05, 0xe0, 0x13,
+};
+static const struct drbg_kat_pr_true kat3456_t = {
+ 5, kat3456_entropyin, kat3456_nonce, kat3456_persstr,
+ kat3456_entropyinpr1, kat3456_addinpr1, kat3456_entropyinpr2,
+ kat3456_addinpr2, kat3456_retbits
+};
+static const struct drbg_kat kat3456 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3456_t
+};
+
+static const unsigned char kat3457_entropyin[] = {
+ 0x76, 0x6b, 0xf3, 0x08, 0x5f, 0x1b, 0xa7, 0x54, 0xde, 0x23, 0x4b, 0xb8,
+ 0x8c, 0x57, 0x31, 0x5e, 0x5f, 0x29, 0xe7, 0x1c, 0x0c, 0x99, 0x98, 0x45,
+ 0xb5, 0xf1, 0x0b, 0xe6, 0x9b, 0x9f, 0x06, 0x59,
+};
+static const unsigned char kat3457_nonce[] = {
+ 0x12, 0x35, 0xf4, 0x88, 0x79, 0x73, 0xb1, 0x6f, 0x01, 0xbf, 0xcf, 0x33,
+ 0xa7, 0xcd, 0x67, 0xa2,
+};
+static const unsigned char kat3457_persstr[] = {
+ 0x8e, 0x17, 0x13, 0xdb, 0x79, 0x12, 0x28, 0xf9, 0xd0, 0x14, 0x32, 0xe7,
+ 0x07, 0x5a, 0x23, 0xf6, 0x7b, 0xd1, 0xec, 0x74, 0x8b, 0x63, 0x32, 0x40,
+ 0xde, 0x83, 0xd1, 0xf7, 0x5c, 0xee, 0x1a, 0x71,
+};
+static const unsigned char kat3457_entropyinpr1[] = {
+ 0x2a, 0xe7, 0xe8, 0x9e, 0x2f, 0x67, 0xba, 0xe2, 0x85, 0xbb, 0xd4, 0xff,
+ 0x4a, 0x5a, 0xc9, 0x2a, 0x0f, 0x18, 0x69, 0x08, 0xd0, 0x6d, 0x32, 0x2a,
+ 0x93, 0x86, 0x54, 0xdd, 0xde, 0xe8, 0xb7, 0x46,
+};
+static const unsigned char kat3457_addinpr1[] = {0};
+static const unsigned char kat3457_entropyinpr2[] = {
+ 0x87, 0x81, 0x8e, 0xf3, 0xd2, 0x0d, 0x05, 0x12, 0xa5, 0x7b, 0x92, 0x9c,
+ 0xe8, 0x9b, 0xf8, 0x27, 0x03, 0xc0, 0xab, 0x62, 0xd4, 0xa5, 0xa4, 0xe5,
+ 0xf9, 0xbb, 0x48, 0xe0, 0x95, 0x97, 0xcd, 0x57,
+};
+static const unsigned char kat3457_addinpr2[] = {0};
+static const unsigned char kat3457_retbits[] = {
+ 0xb8, 0x2c, 0xcd, 0xda, 0x39, 0x6b, 0x1a, 0x1b, 0x21, 0xc2, 0x58, 0xf0,
+ 0xbe, 0x9c, 0x0f, 0x5c, 0x27, 0x54, 0x71, 0xdf, 0x88, 0x60, 0xc3, 0x68,
+ 0xb4, 0xac, 0x79, 0x26, 0xc9, 0x80, 0xd4, 0x99, 0x73, 0x9f, 0xc6, 0x97,
+ 0x8a, 0xe0, 0x75, 0x44, 0x8c, 0x38, 0x7e, 0x22, 0xac, 0x35, 0xfb, 0x0f,
+ 0xbd, 0x77, 0x78, 0x7b, 0xc1, 0xbc, 0x87, 0x5c, 0xfb, 0xc5, 0xfb, 0x1f,
+ 0xc0, 0x61, 0xae, 0x5c,
+};
+static const struct drbg_kat_pr_true kat3457_t = {
+ 6, kat3457_entropyin, kat3457_nonce, kat3457_persstr,
+ kat3457_entropyinpr1, kat3457_addinpr1, kat3457_entropyinpr2,
+ kat3457_addinpr2, kat3457_retbits
+};
+static const struct drbg_kat kat3457 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3457_t
+};
+
+static const unsigned char kat3458_entropyin[] = {
+ 0x99, 0x4b, 0x00, 0x2b, 0x62, 0x77, 0x84, 0x4f, 0x34, 0x95, 0x09, 0x55,
+ 0xff, 0xb0, 0x88, 0x08, 0xd1, 0x9a, 0xe8, 0xdf, 0x8a, 0x12, 0xef, 0xea,
+ 0xe9, 0xdb, 0x41, 0x45, 0x6c, 0x24, 0x11, 0x2f,
+};
+static const unsigned char kat3458_nonce[] = {
+ 0x8a, 0x31, 0x21, 0x89, 0xfd, 0x86, 0xa4, 0xea, 0xeb, 0x56, 0x56, 0xaa,
+ 0x5e, 0xa7, 0xe2, 0x01,
+};
+static const unsigned char kat3458_persstr[] = {
+ 0xe1, 0xe8, 0xa8, 0x6f, 0x3f, 0x23, 0x71, 0x77, 0x0c, 0x92, 0xb0, 0x00,
+ 0x20, 0x0a, 0xba, 0x29, 0xae, 0x27, 0x52, 0x12, 0x77, 0x3e, 0x4e, 0x8f,
+ 0x3d, 0x51, 0x2c, 0x90, 0x5a, 0x2c, 0x00, 0x86,
+};
+static const unsigned char kat3458_entropyinpr1[] = {
+ 0x43, 0x50, 0x17, 0x73, 0x46, 0x59, 0xbd, 0xaf, 0x6a, 0x0f, 0xd7, 0xd6,
+ 0xa3, 0xbd, 0x98, 0xfa, 0x2a, 0xa2, 0x78, 0xf8, 0xca, 0xb8, 0xef, 0xf0,
+ 0x8c, 0x33, 0x2e, 0xe2, 0xe6, 0xce, 0x80, 0xb3,
+};
+static const unsigned char kat3458_addinpr1[] = {0};
+static const unsigned char kat3458_entropyinpr2[] = {
+ 0x6b, 0x79, 0xac, 0xd4, 0xd3, 0x9b, 0x39, 0xf0, 0x7a, 0x70, 0xe6, 0xfd,
+ 0xbb, 0xed, 0x8c, 0xe0, 0x91, 0x50, 0x20, 0xa4, 0xd6, 0x7d, 0x90, 0xcd,
+ 0xc5, 0x43, 0xb1, 0x62, 0xa4, 0x22, 0x73, 0x0c,
+};
+static const unsigned char kat3458_addinpr2[] = {0};
+static const unsigned char kat3458_retbits[] = {
+ 0xd1, 0xfe, 0x64, 0xff, 0xe1, 0x02, 0x10, 0x96, 0x45, 0xd6, 0xdd, 0x39,
+ 0xed, 0x3b, 0xc1, 0x8c, 0x3d, 0xde, 0x80, 0x87, 0x81, 0xc0, 0x26, 0xa0,
+ 0x7e, 0x80, 0xd3, 0x74, 0xbd, 0x7b, 0x32, 0xc4, 0xe0, 0xbb, 0x60, 0xb8,
+ 0x3b, 0x75, 0xa2, 0x5a, 0xef, 0x68, 0x62, 0xb5, 0xba, 0xba, 0x89, 0xd9,
+ 0xbe, 0xa9, 0xe3, 0x52, 0xb9, 0x67, 0xd1, 0xb7, 0x55, 0x07, 0xd7, 0xe6,
+ 0x22, 0xce, 0xbe, 0xff,
+};
+static const struct drbg_kat_pr_true kat3458_t = {
+ 7, kat3458_entropyin, kat3458_nonce, kat3458_persstr,
+ kat3458_entropyinpr1, kat3458_addinpr1, kat3458_entropyinpr2,
+ kat3458_addinpr2, kat3458_retbits
+};
+static const struct drbg_kat kat3458 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3458_t
+};
+
+static const unsigned char kat3459_entropyin[] = {
+ 0xa5, 0x65, 0x2f, 0xb8, 0xee, 0x70, 0x24, 0xd1, 0x1b, 0x0a, 0x6e, 0x0a,
+ 0xe7, 0x02, 0x01, 0x36, 0xd5, 0x99, 0xc4, 0xeb, 0x7d, 0x91, 0x9f, 0x46,
+ 0xd8, 0x26, 0x7b, 0xdd, 0xff, 0x44, 0x7f, 0x50,
+};
+static const unsigned char kat3459_nonce[] = {
+ 0x80, 0x2c, 0x43, 0x51, 0xc1, 0x82, 0xe2, 0xff, 0xbd, 0x18, 0x7d, 0x6f,
+ 0x16, 0xc3, 0x22, 0x08,
+};
+static const unsigned char kat3459_persstr[] = {
+ 0x95, 0x11, 0xf2, 0xbe, 0x02, 0x42, 0x0d, 0x38, 0x3b, 0xbd, 0x54, 0x40,
+ 0xa6, 0x20, 0x63, 0xad, 0xd5, 0x17, 0x32, 0xcd, 0x0b, 0x90, 0x10, 0x4b,
+ 0x30, 0x02, 0x32, 0x4a, 0x49, 0x75, 0x94, 0xb2,
+};
+static const unsigned char kat3459_entropyinpr1[] = {
+ 0x90, 0x91, 0xa5, 0x0e, 0xc6, 0x3d, 0xf7, 0xa0, 0xf0, 0x39, 0xf4, 0xc7,
+ 0x90, 0x53, 0x7e, 0x3d, 0x6e, 0x29, 0x69, 0x72, 0x0f, 0xf2, 0x6b, 0xa5,
+ 0x9c, 0x5e, 0x38, 0x81, 0x13, 0x9f, 0x05, 0xe0,
+};
+static const unsigned char kat3459_addinpr1[] = {0};
+static const unsigned char kat3459_entropyinpr2[] = {
+ 0x77, 0xce, 0x13, 0x56, 0xc5, 0x04, 0x82, 0x32, 0xba, 0x43, 0x91, 0x4e,
+ 0x51, 0xdc, 0xab, 0x76, 0x97, 0xc8, 0xda, 0x56, 0x4e, 0xa3, 0xef, 0x38,
+ 0x1f, 0x01, 0x3d, 0x3f, 0x18, 0x93, 0x74, 0x79,
+};
+static const unsigned char kat3459_addinpr2[] = {0};
+static const unsigned char kat3459_retbits[] = {
+ 0x6f, 0x44, 0xb4, 0x57, 0x74, 0x28, 0xa3, 0xf1, 0xe4, 0x19, 0x56, 0xd1,
+ 0x1a, 0xaa, 0x8b, 0xe8, 0x93, 0xd6, 0xf9, 0x72, 0x78, 0x54, 0xc1, 0x74,
+ 0xc0, 0x69, 0x50, 0xb6, 0x5b, 0x84, 0x4b, 0xd9, 0x43, 0xd2, 0xd9, 0xf3,
+ 0x0a, 0x0e, 0xef, 0xb8, 0x6e, 0xe0, 0x6c, 0x08, 0x75, 0xdc, 0x9c, 0x69,
+ 0xcd, 0xc5, 0x8b, 0x9c, 0xa2, 0xf3, 0x4f, 0x2b, 0x14, 0x95, 0x4b, 0x14,
+ 0x16, 0xc5, 0x77, 0x6f,
+};
+static const struct drbg_kat_pr_true kat3459_t = {
+ 8, kat3459_entropyin, kat3459_nonce, kat3459_persstr,
+ kat3459_entropyinpr1, kat3459_addinpr1, kat3459_entropyinpr2,
+ kat3459_addinpr2, kat3459_retbits
+};
+static const struct drbg_kat kat3459 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3459_t
+};
+
+static const unsigned char kat3460_entropyin[] = {
+ 0xc1, 0xdf, 0x59, 0x39, 0x02, 0xae, 0xbc, 0x43, 0x3e, 0x69, 0x2c, 0xad,
+ 0x37, 0xfe, 0x51, 0x18, 0x09, 0xed, 0x03, 0x3d, 0xca, 0xa0, 0x00, 0x88,
+ 0x1b, 0x74, 0xb5, 0xc1, 0x0e, 0xcd, 0x0f, 0xaa,
+};
+static const unsigned char kat3460_nonce[] = {
+ 0x0d, 0x2c, 0xfd, 0x3b, 0x20, 0x90, 0x33, 0xdf, 0xda, 0x1c, 0xe5, 0x89,
+ 0xf3, 0xe0, 0x3f, 0x13,
+};
+static const unsigned char kat3460_persstr[] = {
+ 0xe2, 0x53, 0x30, 0xe2, 0x2e, 0x92, 0x40, 0x70, 0xef, 0xef, 0x21, 0xa7,
+ 0xb9, 0xd4, 0xec, 0x64, 0x9d, 0x11, 0x25, 0xf5, 0x18, 0xc5, 0x63, 0xfb,
+ 0x8f, 0x8e, 0xff, 0x6e, 0xae, 0xe8, 0xf7, 0xa9,
+};
+static const unsigned char kat3460_entropyinpr1[] = {
+ 0xee, 0x6d, 0x42, 0x87, 0x30, 0xf5, 0xf2, 0x4a, 0x56, 0x99, 0x75, 0x7d,
+ 0xc0, 0x25, 0x4e, 0x25, 0x98, 0x83, 0xfa, 0x2e, 0x12, 0x1e, 0xb2, 0xb1,
+ 0x44, 0xf2, 0xd6, 0xf7, 0x47, 0xbe, 0xbf, 0x5b,
+};
+static const unsigned char kat3460_addinpr1[] = {0};
+static const unsigned char kat3460_entropyinpr2[] = {
+ 0x12, 0x24, 0xf0, 0xbc, 0x30, 0x49, 0x0b, 0xf6, 0x4c, 0xb6, 0xef, 0x62,
+ 0x23, 0x10, 0x99, 0x73, 0x5f, 0xe8, 0x01, 0xe3, 0x27, 0x89, 0x58, 0x4d,
+ 0x9f, 0x40, 0x3d, 0x9c, 0x9d, 0xa3, 0xa0, 0x54,
+};
+static const unsigned char kat3460_addinpr2[] = {0};
+static const unsigned char kat3460_retbits[] = {
+ 0x24, 0xe6, 0x3c, 0x38, 0xd0, 0xfe, 0x5b, 0xc1, 0xcb, 0x19, 0xb2, 0xa9,
+ 0x72, 0x14, 0x6e, 0x12, 0xd4, 0xeb, 0x0b, 0x80, 0x46, 0xcb, 0x66, 0xab,
+ 0x6e, 0xbf, 0x91, 0x04, 0xa5, 0xe8, 0xd4, 0x6f, 0xed, 0x43, 0x43, 0x22,
+ 0x77, 0xe8, 0xe2, 0xc7, 0x0b, 0x98, 0x08, 0x97, 0xdd, 0x58, 0xda, 0x0f,
+ 0xc5, 0x18, 0x10, 0x43, 0x1f, 0xc7, 0x55, 0xca, 0x7d, 0x7f, 0x83, 0x92,
+ 0xf6, 0x17, 0x31, 0x47,
+};
+static const struct drbg_kat_pr_true kat3460_t = {
+ 9, kat3460_entropyin, kat3460_nonce, kat3460_persstr,
+ kat3460_entropyinpr1, kat3460_addinpr1, kat3460_entropyinpr2,
+ kat3460_addinpr2, kat3460_retbits
+};
+static const struct drbg_kat kat3460 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3460_t
+};
+
+static const unsigned char kat3461_entropyin[] = {
+ 0xfa, 0xb2, 0xd1, 0xee, 0xea, 0xb3, 0x8a, 0xf6, 0xba, 0xd6, 0xef, 0x87,
+ 0xea, 0xe3, 0x7a, 0xf9, 0x14, 0x5a, 0xf4, 0xe8, 0x4a, 0x63, 0x85, 0x56,
+ 0xf9, 0x8f, 0xdb, 0x28, 0x22, 0x1e, 0x33, 0x4d,
+};
+static const unsigned char kat3461_nonce[] = {
+ 0xfa, 0xd5, 0x72, 0x61, 0x70, 0xc7, 0xf6, 0x49, 0xd9, 0xcd, 0x15, 0x13,
+ 0x8f, 0xe2, 0xbe, 0x77,
+};
+static const unsigned char kat3461_persstr[] = {
+ 0xc5, 0x17, 0x6e, 0xc4, 0xd6, 0x97, 0xf2, 0xd2, 0x67, 0x00, 0x51, 0x86,
+ 0xb3, 0xc0, 0x0a, 0xdd, 0xae, 0x1d, 0x09, 0xe9, 0x11, 0x41, 0x45, 0xec,
+ 0xb7, 0x2a, 0x78, 0xa1, 0xb0, 0x85, 0x37, 0x3f,
+};
+static const unsigned char kat3461_entropyinpr1[] = {
+ 0xd8, 0x88, 0x42, 0x8d, 0x58, 0x1e, 0x14, 0x6a, 0xf6, 0xcd, 0x0a, 0xff,
+ 0xf5, 0xc9, 0xfa, 0x5d, 0x98, 0x23, 0xe5, 0xf8, 0x00, 0x42, 0x9e, 0x68,
+ 0x69, 0x7c, 0xdb, 0xb7, 0x4b, 0x7b, 0x8b, 0xab,
+};
+static const unsigned char kat3461_addinpr1[] = {0};
+static const unsigned char kat3461_entropyinpr2[] = {
+ 0xc5, 0xee, 0x39, 0x6b, 0xc4, 0x76, 0xa7, 0x5a, 0x2e, 0x68, 0x50, 0xe4,
+ 0xae, 0xad, 0x69, 0xbf, 0x99, 0xa3, 0xb3, 0x75, 0x26, 0x69, 0x36, 0xaa,
+ 0xe0, 0xf3, 0x92, 0x42, 0x03, 0xa4, 0x97, 0xb3,
+};
+static const unsigned char kat3461_addinpr2[] = {0};
+static const unsigned char kat3461_retbits[] = {
+ 0x54, 0xd0, 0x1c, 0x4c, 0x0e, 0x3b, 0xd9, 0xb0, 0xb3, 0x51, 0x3a, 0x0c,
+ 0x6e, 0x3e, 0x73, 0x2e, 0xed, 0xfd, 0x31, 0x36, 0xe0, 0xef, 0x7f, 0x23,
+ 0xa0, 0x88, 0x4b, 0x3f, 0x5d, 0x8d, 0x22, 0x53, 0xbd, 0x6b, 0x95, 0xb0,
+ 0xfd, 0x80, 0x6e, 0xcf, 0x3e, 0x43, 0x28, 0x06, 0xac, 0x14, 0x26, 0xe6,
+ 0x70, 0xf7, 0x7d, 0x16, 0xed, 0xa2, 0x85, 0x8e, 0xf6, 0xe9, 0xcf, 0x77,
+ 0x53, 0xaf, 0x06, 0xfd,
+};
+static const struct drbg_kat_pr_true kat3461_t = {
+ 10, kat3461_entropyin, kat3461_nonce, kat3461_persstr,
+ kat3461_entropyinpr1, kat3461_addinpr1, kat3461_entropyinpr2,
+ kat3461_addinpr2, kat3461_retbits
+};
+static const struct drbg_kat kat3461 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3461_t
+};
+
+static const unsigned char kat3462_entropyin[] = {
+ 0xe9, 0x68, 0xe9, 0xcd, 0x63, 0x62, 0xef, 0x4e, 0x7d, 0x9d, 0x40, 0x19,
+ 0xf3, 0x54, 0xbb, 0x89, 0x1d, 0x6c, 0x6d, 0xca, 0xad, 0x10, 0x64, 0xca,
+ 0xaa, 0x73, 0x37, 0xb8, 0x65, 0x1c, 0x6d, 0xc6,
+};
+static const unsigned char kat3462_nonce[] = {
+ 0x67, 0x77, 0xf1, 0xe2, 0x18, 0xa1, 0x0f, 0x02, 0xef, 0x40, 0x75, 0x70,
+ 0xe2, 0x9f, 0xb1, 0xa8,
+};
+static const unsigned char kat3462_persstr[] = {
+ 0xad, 0x4d, 0x1e, 0xe5, 0x0e, 0x36, 0x72, 0xb3, 0xad, 0xf8, 0xcb, 0x74,
+ 0xed, 0x8a, 0x2f, 0x1c, 0x58, 0xe8, 0xa4, 0x22, 0x92, 0x90, 0x76, 0x27,
+ 0x62, 0xe5, 0x88, 0xe7, 0xe3, 0x52, 0xe5, 0x8f,
+};
+static const unsigned char kat3462_entropyinpr1[] = {
+ 0xad, 0xd3, 0x31, 0x92, 0x49, 0xbf, 0x7a, 0xf3, 0x67, 0x42, 0x6f, 0xb2,
+ 0xdd, 0x14, 0x4d, 0x4d, 0x05, 0xd0, 0x88, 0xdb, 0x55, 0xc0, 0x67, 0x28,
+ 0x64, 0x50, 0xdd, 0xa2, 0x2a, 0x39, 0x55, 0xf9,
+};
+static const unsigned char kat3462_addinpr1[] = {0};
+static const unsigned char kat3462_entropyinpr2[] = {
+ 0x70, 0x2c, 0x69, 0xeb, 0x06, 0x05, 0xe4, 0x74, 0x82, 0x83, 0x3a, 0xff,
+ 0x3c, 0xd9, 0xe1, 0x4e, 0x49, 0x38, 0xba, 0xcd, 0xd3, 0x19, 0x99, 0x94,
+ 0x33, 0x7e, 0x59, 0x44, 0xf0, 0xdd, 0xe5, 0xbd,
+};
+static const unsigned char kat3462_addinpr2[] = {0};
+static const unsigned char kat3462_retbits[] = {
+ 0xb7, 0x09, 0x89, 0x90, 0x63, 0x4f, 0x25, 0x2b, 0x6c, 0xf9, 0x73, 0x86,
+ 0x68, 0xf3, 0xab, 0xb4, 0x37, 0x8b, 0xa3, 0x77, 0x14, 0x3c, 0xcc, 0x28,
+ 0x69, 0x94, 0x64, 0x50, 0x8d, 0x36, 0xdb, 0xe5, 0x5e, 0xe2, 0xe7, 0xa9,
+ 0x20, 0xca, 0xca, 0x25, 0x5b, 0x8b, 0xcc, 0xba, 0x08, 0xb2, 0x45, 0x4b,
+ 0x67, 0xd4, 0x74, 0xaf, 0x96, 0x21, 0x0e, 0x90, 0x68, 0x21, 0x11, 0xc5,
+ 0x95, 0xe7, 0xfc, 0x85,
+};
+static const struct drbg_kat_pr_true kat3462_t = {
+ 11, kat3462_entropyin, kat3462_nonce, kat3462_persstr,
+ kat3462_entropyinpr1, kat3462_addinpr1, kat3462_entropyinpr2,
+ kat3462_addinpr2, kat3462_retbits
+};
+static const struct drbg_kat kat3462 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3462_t
+};
+
+static const unsigned char kat3463_entropyin[] = {
+ 0xe9, 0x10, 0xec, 0x33, 0x26, 0xf5, 0x07, 0x59, 0xc0, 0x1a, 0x1b, 0xa3,
+ 0x48, 0xda, 0xa0, 0xe1, 0x6e, 0xcc, 0x02, 0x17, 0xf7, 0x72, 0x06, 0xeb,
+ 0x64, 0x0c, 0x4a, 0x56, 0x1a, 0x9b, 0xc8, 0x7d,
+};
+static const unsigned char kat3463_nonce[] = {
+ 0xfb, 0x51, 0x17, 0x9a, 0x22, 0x4e, 0xf3, 0x28, 0x88, 0x01, 0xfb, 0x0e,
+ 0xdc, 0x12, 0xe3, 0xa3,
+};
+static const unsigned char kat3463_persstr[] = {
+ 0xd5, 0x61, 0x3a, 0x22, 0x24, 0x98, 0xac, 0x95, 0x67, 0xba, 0xb5, 0xb4,
+ 0x6f, 0xaf, 0x5c, 0x9b, 0xe2, 0xfa, 0xf8, 0xed, 0xea, 0xb3, 0x3f, 0x28,
+ 0xca, 0x4e, 0xbf, 0x67, 0x61, 0x49, 0x3c, 0x2c,
+};
+static const unsigned char kat3463_entropyinpr1[] = {
+ 0xc6, 0x33, 0xe0, 0x93, 0xea, 0x74, 0xb6, 0x5d, 0x9f, 0xdd, 0xb6, 0x5f,
+ 0x74, 0x6c, 0x2f, 0x12, 0x29, 0x2e, 0x86, 0x46, 0x4f, 0x2d, 0x71, 0x93,
+ 0x92, 0x86, 0x83, 0x92, 0x8a, 0xa4, 0x8f, 0xb3,
+};
+static const unsigned char kat3463_addinpr1[] = {0};
+static const unsigned char kat3463_entropyinpr2[] = {
+ 0x35, 0x60, 0xf0, 0x9a, 0xba, 0x4e, 0xec, 0x13, 0x32, 0xef, 0xd4, 0xab,
+ 0x02, 0x1d, 0x5a, 0xb8, 0x8b, 0x95, 0x1e, 0x77, 0x15, 0xe5, 0x3f, 0x15,
+ 0x12, 0x73, 0xaa, 0xbd, 0x5a, 0xc8, 0xc1, 0x92,
+};
+static const unsigned char kat3463_addinpr2[] = {0};
+static const unsigned char kat3463_retbits[] = {
+ 0xbc, 0xc0, 0x05, 0xe9, 0x8a, 0x0e, 0x1b, 0x8d, 0x81, 0x1f, 0x81, 0x70,
+ 0x33, 0xe5, 0xa2, 0xbb, 0xad, 0x3d, 0x41, 0x8d, 0x9a, 0xa4, 0xec, 0x84,
+ 0xd4, 0x9b, 0xd3, 0x15, 0xb1, 0xf8, 0x92, 0x1f, 0xad, 0x9f, 0xe8, 0xb0,
+ 0x74, 0x22, 0xe6, 0xdb, 0x38, 0x29, 0xb8, 0x4e, 0xd0, 0x80, 0x47, 0x5a,
+ 0x98, 0x4b, 0xc5, 0xc2, 0x53, 0x54, 0x3d, 0x8d, 0xab, 0xbb, 0x4a, 0xa7,
+ 0x3f, 0xf3, 0x7d, 0x36,
+};
+static const struct drbg_kat_pr_true kat3463_t = {
+ 12, kat3463_entropyin, kat3463_nonce, kat3463_persstr,
+ kat3463_entropyinpr1, kat3463_addinpr1, kat3463_entropyinpr2,
+ kat3463_addinpr2, kat3463_retbits
+};
+static const struct drbg_kat kat3463 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3463_t
+};
+
+static const unsigned char kat3464_entropyin[] = {
+ 0xa2, 0x0b, 0x75, 0xf7, 0x48, 0x40, 0xb2, 0xa2, 0xfa, 0xa0, 0x8d, 0x54,
+ 0x2e, 0x63, 0xb7, 0xab, 0x0d, 0x82, 0x0d, 0x88, 0xed, 0xd8, 0x56, 0x8c,
+ 0xf5, 0xe6, 0x15, 0xa9, 0xa4, 0x33, 0xe9, 0xe0,
+};
+static const unsigned char kat3464_nonce[] = {
+ 0xf0, 0x54, 0xfa, 0x2b, 0x0c, 0x7b, 0xa9, 0x1f, 0x42, 0xea, 0xa2, 0x87,
+ 0x60, 0x6b, 0x5a, 0x3d,
+};
+static const unsigned char kat3464_persstr[] = {
+ 0x30, 0x42, 0x08, 0x0b, 0x68, 0x46, 0x43, 0x08, 0x74, 0x70, 0x7b, 0xf7,
+ 0xbd, 0x64, 0x63, 0xcf, 0x2d, 0x4c, 0x89, 0x73, 0xa9, 0x8d, 0xac, 0xf6,
+ 0xec, 0x44, 0x55, 0xab, 0x4c, 0x51, 0xcc, 0xd2,
+};
+static const unsigned char kat3464_entropyinpr1[] = {
+ 0x38, 0x69, 0x4e, 0x2e, 0x4b, 0x50, 0xf3, 0x4f, 0xe6, 0x25, 0x74, 0x08,
+ 0xc9, 0xc9, 0x1c, 0xa2, 0xe6, 0x3d, 0xa4, 0x5a, 0x31, 0xb7, 0x56, 0x1a,
+ 0x2b, 0x9c, 0x2d, 0xff, 0xc9, 0x43, 0x00, 0x8d,
+};
+static const unsigned char kat3464_addinpr1[] = {0};
+static const unsigned char kat3464_entropyinpr2[] = {
+ 0xc6, 0xea, 0xfc, 0xe7, 0x76, 0x61, 0x5b, 0x6a, 0xf4, 0x17, 0x80, 0x72,
+ 0x64, 0x2c, 0xd1, 0xa4, 0x83, 0x73, 0x84, 0x5e, 0x40, 0x68, 0x51, 0xf3,
+ 0x52, 0x9e, 0xa9, 0xba, 0x6b, 0xc1, 0x4f, 0x8f,
+};
+static const unsigned char kat3464_addinpr2[] = {0};
+static const unsigned char kat3464_retbits[] = {
+ 0xb9, 0xc9, 0x4f, 0x3a, 0x98, 0xa2, 0xf0, 0xa0, 0x91, 0xb5, 0x5c, 0x9d,
+ 0xab, 0x9b, 0xe6, 0x60, 0x5d, 0x64, 0xf9, 0x40, 0xcd, 0x1d, 0x8b, 0x65,
+ 0x5e, 0xe3, 0x12, 0x9e, 0xba, 0xde, 0xa3, 0x47, 0x30, 0xff, 0x43, 0x91,
+ 0x77, 0xf7, 0x0f, 0x66, 0xb2, 0xab, 0x29, 0xd9, 0x5c, 0xf6, 0x31, 0x34,
+ 0xd5, 0x5c, 0xd5, 0x37, 0x0b, 0xcd, 0x0d, 0x74, 0xb3, 0x5f, 0xc3, 0x8d,
+ 0x36, 0x5a, 0x02, 0x7e,
+};
+static const struct drbg_kat_pr_true kat3464_t = {
+ 13, kat3464_entropyin, kat3464_nonce, kat3464_persstr,
+ kat3464_entropyinpr1, kat3464_addinpr1, kat3464_entropyinpr2,
+ kat3464_addinpr2, kat3464_retbits
+};
+static const struct drbg_kat kat3464 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3464_t
+};
+
+static const unsigned char kat3465_entropyin[] = {
+ 0xe3, 0x96, 0x68, 0x84, 0xa8, 0x8b, 0x31, 0x15, 0x69, 0xc5, 0xcf, 0x3d,
+ 0x04, 0xbe, 0xf0, 0xaa, 0x65, 0xe6, 0x11, 0x7f, 0xcd, 0x05, 0x16, 0xf7,
+ 0x0b, 0x8f, 0xd1, 0x09, 0x24, 0x33, 0x69, 0x85,
+};
+static const unsigned char kat3465_nonce[] = {
+ 0x47, 0xde, 0x17, 0x72, 0xdd, 0xba, 0xd0, 0x70, 0xb3, 0xe3, 0x58, 0xfe,
+ 0x49, 0xbf, 0xcb, 0x3f,
+};
+static const unsigned char kat3465_persstr[] = {
+ 0xe8, 0xd8, 0x99, 0x60, 0xc0, 0x29, 0xe7, 0x4d, 0x18, 0x70, 0x11, 0xf5,
+ 0x60, 0xec, 0x8a, 0x97, 0x18, 0xea, 0xbb, 0xde, 0x76, 0x26, 0xcd, 0x31,
+ 0x3f, 0xaf, 0xac, 0xc1, 0x9f, 0x37, 0xa2, 0xfd,
+};
+static const unsigned char kat3465_entropyinpr1[] = {
+ 0x57, 0x30, 0xf7, 0x5d, 0x4d, 0x58, 0xaf, 0x98, 0xca, 0x3c, 0x5a, 0x47,
+ 0x4a, 0xad, 0xf0, 0x68, 0x36, 0x90, 0xb5, 0x5b, 0x71, 0xbe, 0x5e, 0x6b,
+ 0x75, 0x4b, 0xf6, 0x0e, 0xc6, 0x80, 0x6a, 0x0b,
+};
+static const unsigned char kat3465_addinpr1[] = {0};
+static const unsigned char kat3465_entropyinpr2[] = {
+ 0xe2, 0x48, 0x99, 0x50, 0xfb, 0xfd, 0xe7, 0x77, 0x56, 0x4c, 0x2c, 0xc8,
+ 0xd7, 0xf9, 0x7c, 0xcc, 0x51, 0x90, 0x6c, 0x5d, 0x1d, 0x39, 0xa5, 0xe4,
+ 0xa6, 0xbd, 0x06, 0x12, 0x56, 0x69, 0xc9, 0xb4,
+};
+static const unsigned char kat3465_addinpr2[] = {0};
+static const unsigned char kat3465_retbits[] = {
+ 0x82, 0xf7, 0x8f, 0x8c, 0x9a, 0x36, 0x95, 0x90, 0xaa, 0x2a, 0x61, 0x20,
+ 0xb2, 0x0b, 0x25, 0x6e, 0xbb, 0x42, 0x33, 0xf3, 0x4b, 0x7f, 0x08, 0x81,
+ 0xaa, 0x7b, 0xa6, 0x9a, 0xda, 0x8f, 0xcb, 0xf4, 0xc4, 0x73, 0xfb, 0xf2,
+ 0x4d, 0x80, 0x1f, 0xde, 0xb3, 0x31, 0x54, 0xc0, 0xec, 0xcc, 0x65, 0x0a,
+ 0x0a, 0x41, 0x1d, 0x2b, 0xa2, 0xfb, 0x32, 0xe8, 0x34, 0xe3, 0x51, 0x8f,
+ 0x43, 0x20, 0xa3, 0x07,
+};
+static const struct drbg_kat_pr_true kat3465_t = {
+ 14, kat3465_entropyin, kat3465_nonce, kat3465_persstr,
+ kat3465_entropyinpr1, kat3465_addinpr1, kat3465_entropyinpr2,
+ kat3465_addinpr2, kat3465_retbits
+};
+static const struct drbg_kat kat3465 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3465_t
+};
+
+static const unsigned char kat3466_entropyin[] = {
+ 0x12, 0xb0, 0x08, 0xa9, 0xfb, 0xac, 0x31, 0xaa, 0xa8, 0xd0, 0x46, 0xb1,
+ 0x50, 0xdf, 0x91, 0x18, 0xa9, 0x5b, 0x00, 0x0b, 0x69, 0xca, 0xc2, 0x1d,
+ 0xa4, 0xda, 0x49, 0x9d, 0x1b, 0xd2, 0xff, 0xb7,
+};
+static const unsigned char kat3466_nonce[] = {
+ 0x82, 0xd9, 0xb3, 0x97, 0x9a, 0x99, 0xde, 0x7b, 0xc1, 0x7e, 0x38, 0x79,
+ 0x03, 0x87, 0x94, 0xda,
+};
+static const unsigned char kat3466_persstr[] = {
+ 0xfc, 0xbf, 0xbd, 0x88, 0xc4, 0xb8, 0x65, 0x13, 0x88, 0xe5, 0xc5, 0x86,
+ 0xcf, 0x5a, 0xb8, 0x62, 0x0d, 0x54, 0x7f, 0x43, 0x6b, 0x97, 0xc9, 0x93,
+ 0x46, 0x0f, 0xa5, 0xac, 0x99, 0x16, 0x37, 0xf1,
+};
+static const unsigned char kat3466_entropyinpr1[] = {
+ 0x88, 0xac, 0xf8, 0x81, 0x66, 0x5c, 0x99, 0x45, 0x95, 0xee, 0x65, 0x39,
+ 0xc5, 0x66, 0x1f, 0x82, 0x0e, 0xef, 0xba, 0xf3, 0x07, 0xe4, 0x8c, 0x58,
+ 0x52, 0x66, 0x05, 0x52, 0xb7, 0x9d, 0x41, 0x9c,
+};
+static const unsigned char kat3466_addinpr1[] = {
+ 0xe5, 0x6a, 0x9a, 0x3b, 0x45, 0x22, 0x88, 0x4b, 0xc9, 0xb6, 0x49, 0x76,
+ 0x83, 0x73, 0x21, 0x63, 0xe3, 0x14, 0x1c, 0xf0, 0xf9, 0xd4, 0xa0, 0x8d,
+ 0x86, 0x4f, 0xbd, 0x72, 0xdc, 0x36, 0x11, 0x6f,
+};
+static const unsigned char kat3466_entropyinpr2[] = {
+ 0x8a, 0x47, 0x66, 0x5e, 0x48, 0x50, 0xd4, 0x89, 0xc4, 0x0b, 0xac, 0x6e,
+ 0x59, 0x41, 0xd2, 0x16, 0xf1, 0x80, 0x1f, 0x67, 0xeb, 0x3a, 0xbd, 0x59,
+ 0xa6, 0x23, 0xcc, 0xbd, 0x5f, 0x15, 0x12, 0x46,
+};
+static const unsigned char kat3466_addinpr2[] = {
+ 0x89, 0x67, 0x59, 0x14, 0x27, 0xfb, 0xa1, 0x74, 0xe1, 0x8a, 0x2c, 0xff,
+ 0xfb, 0x2b, 0xe1, 0xf4, 0x89, 0xc8, 0x5a, 0x13, 0x09, 0x1b, 0xdf, 0xba,
+ 0x81, 0xf0, 0x82, 0xdd, 0xbe, 0xc3, 0x68, 0x97,
+};
+static const unsigned char kat3466_retbits[] = {
+ 0x3e, 0xa6, 0xb9, 0x01, 0x38, 0xe7, 0x65, 0x57, 0x2f, 0x59, 0xb3, 0x35,
+ 0x42, 0x79, 0x0d, 0x4c, 0xd4, 0x5c, 0x68, 0xa4, 0xf7, 0xe3, 0x92, 0xcf,
+ 0xb3, 0xf4, 0xfa, 0xef, 0xd4, 0xce, 0x0d, 0x32, 0x04, 0x48, 0x02, 0x84,
+ 0x19, 0x0b, 0x35, 0xd9, 0x2f, 0x96, 0xc0, 0xb0, 0x35, 0x81, 0xbf, 0xc1,
+ 0x07, 0x9e, 0x7b, 0xa9, 0x76, 0x92, 0xbf, 0x9c, 0x7e, 0x2e, 0x0e, 0x86,
+ 0x3b, 0xee, 0x77, 0x3e,
+};
+static const struct drbg_kat_pr_true kat3466_t = {
+ 0, kat3466_entropyin, kat3466_nonce, kat3466_persstr,
+ kat3466_entropyinpr1, kat3466_addinpr1, kat3466_entropyinpr2,
+ kat3466_addinpr2, kat3466_retbits
+};
+static const struct drbg_kat kat3466 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3466_t
+};
+
+static const unsigned char kat3467_entropyin[] = {
+ 0x16, 0x06, 0x27, 0xa0, 0xaf, 0xc7, 0xd5, 0xfb, 0x08, 0xe3, 0x6d, 0x38,
+ 0xb4, 0xcf, 0x88, 0xfa, 0x81, 0xf3, 0x70, 0x4b, 0x10, 0xf7, 0x7d, 0xea,
+ 0x98, 0xe8, 0x07, 0xb3, 0x9a, 0x07, 0x7c, 0x07,
+};
+static const unsigned char kat3467_nonce[] = {
+ 0x64, 0x98, 0xb5, 0x1a, 0x48, 0xc8, 0x50, 0x60, 0xc2, 0x06, 0x9e, 0x61,
+ 0x3e, 0x64, 0x78, 0x57,
+};
+static const unsigned char kat3467_persstr[] = {
+ 0xf6, 0x76, 0x09, 0xed, 0x7d, 0x74, 0xe8, 0xc2, 0x2f, 0xe1, 0x8f, 0x74,
+ 0xd4, 0x49, 0xcb, 0x8d, 0x24, 0xd1, 0xba, 0xd7, 0x30, 0x64, 0xb7, 0xc5,
+ 0x14, 0x84, 0x7d, 0x9a, 0xd6, 0xd6, 0xbc, 0x01,
+};
+static const unsigned char kat3467_entropyinpr1[] = {
+ 0x0a, 0x42, 0x3c, 0xde, 0x16, 0x4b, 0x9a, 0x4f, 0x8c, 0xf8, 0x56, 0x86,
+ 0x62, 0xc5, 0x53, 0x50, 0x43, 0x46, 0xf0, 0x1c, 0xd5, 0x6f, 0x36, 0x60,
+ 0xfd, 0x7f, 0xbc, 0x64, 0xa7, 0x3e, 0x05, 0xd7,
+};
+static const unsigned char kat3467_addinpr1[] = {
+ 0x1f, 0x42, 0x0b, 0xc5, 0xba, 0xa3, 0xea, 0x36, 0xb7, 0xb8, 0x28, 0x33,
+ 0x3f, 0x6e, 0x0b, 0x95, 0x53, 0x12, 0x4d, 0x49, 0xc4, 0x51, 0x24, 0x39,
+ 0x84, 0x00, 0x22, 0xba, 0x89, 0x43, 0x58, 0xae,
+};
+static const unsigned char kat3467_entropyinpr2[] = {
+ 0xba, 0xed, 0x1a, 0x2a, 0x85, 0xa3, 0x45, 0x1e, 0x50, 0x73, 0xde, 0x03,
+ 0xc9, 0x98, 0x58, 0xc7, 0xb5, 0x26, 0x24, 0xd6, 0x99, 0xaf, 0x35, 0xea,
+ 0x80, 0xdd, 0x74, 0xef, 0x93, 0x5a, 0x6b, 0xa3,
+};
+static const unsigned char kat3467_addinpr2[] = {
+ 0xcb, 0xbf, 0xda, 0xd4, 0x63, 0x5c, 0xb5, 0x33, 0x40, 0xa2, 0x75, 0x00,
+ 0x8c, 0xa8, 0xaf, 0x24, 0xd1, 0x98, 0x2d, 0x59, 0x0a, 0x65, 0x47, 0x4f,
+ 0xf2, 0xbc, 0xee, 0xd8, 0xc8, 0xd1, 0x65, 0xe1,
+};
+static const unsigned char kat3467_retbits[] = {
+ 0xa2, 0x20, 0xb6, 0xda, 0xf3, 0xb6, 0xc9, 0xc2, 0x41, 0x57, 0x75, 0xd5,
+ 0x6b, 0xbe, 0x64, 0x77, 0xda, 0x2c, 0x79, 0xd0, 0xbf, 0xd0, 0x4e, 0x2c,
+ 0x89, 0xc7, 0xe5, 0xe3, 0xe9, 0x00, 0xfa, 0x3a, 0xe4, 0x38, 0xb5, 0x78,
+ 0x0d, 0x8d, 0xda, 0x95, 0xf7, 0x22, 0xf9, 0xcf, 0xbf, 0x5f, 0x6e, 0x0a,
+ 0x68, 0xd4, 0xfe, 0xa7, 0x07, 0x5d, 0x11, 0xda, 0x55, 0x13, 0x3e, 0x35,
+ 0x15, 0x6b, 0xc9, 0x4f,
+};
+static const struct drbg_kat_pr_true kat3467_t = {
+ 1, kat3467_entropyin, kat3467_nonce, kat3467_persstr,
+ kat3467_entropyinpr1, kat3467_addinpr1, kat3467_entropyinpr2,
+ kat3467_addinpr2, kat3467_retbits
+};
+static const struct drbg_kat kat3467 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3467_t
+};
+
+static const unsigned char kat3468_entropyin[] = {
+ 0x01, 0x37, 0xcd, 0x0f, 0xcd, 0x80, 0xca, 0xba, 0x70, 0x96, 0x18, 0x58,
+ 0xc5, 0x6d, 0xa4, 0x37, 0xa5, 0xc6, 0xe3, 0xf1, 0x37, 0x9b, 0xa6, 0x3b,
+ 0x76, 0xf8, 0x61, 0x84, 0xbb, 0xbc, 0x3c, 0x5b,
+};
+static const unsigned char kat3468_nonce[] = {
+ 0x6c, 0x92, 0x65, 0xa3, 0xfa, 0x8d, 0xa4, 0x2f, 0x2d, 0xd6, 0x33, 0x74,
+ 0xdd, 0x3b, 0xf4, 0x2a,
+};
+static const unsigned char kat3468_persstr[] = {
+ 0xe2, 0x5c, 0x93, 0x5a, 0x97, 0x06, 0xd4, 0x16, 0xd8, 0x5f, 0xe0, 0x23,
+ 0x66, 0xdf, 0x5c, 0x7d, 0x8a, 0xf7, 0x7b, 0xc4, 0xf7, 0xdd, 0xa9, 0x7b,
+ 0x73, 0x9e, 0xe1, 0x68, 0xde, 0xdc, 0x51, 0x8a,
+};
+static const unsigned char kat3468_entropyinpr1[] = {
+ 0xa6, 0xbe, 0x42, 0x6a, 0x2b, 0x22, 0x83, 0x40, 0xfd, 0x4f, 0xb1, 0xd5,
+ 0x7b, 0x22, 0x8a, 0x60, 0x0d, 0xeb, 0x8d, 0x82, 0xbf, 0xe3, 0x17, 0x56,
+ 0xae, 0x92, 0x62, 0xe9, 0xe9, 0x9a, 0xaa, 0x73,
+};
+static const unsigned char kat3468_addinpr1[] = {
+ 0xd1, 0x41, 0x69, 0x59, 0x3c, 0xe1, 0xb3, 0x7c, 0x91, 0x59, 0x6d, 0x02,
+ 0x7b, 0x55, 0xe0, 0xe9, 0xc5, 0xa6, 0xf6, 0x66, 0x7b, 0xf6, 0x2b, 0x42,
+ 0xab, 0x4a, 0xc2, 0x46, 0x80, 0xb1, 0xea, 0xb4,
+};
+static const unsigned char kat3468_entropyinpr2[] = {
+ 0x86, 0xf5, 0x2b, 0x61, 0x47, 0x58, 0x7e, 0x6f, 0xc3, 0x8c, 0x42, 0xd5,
+ 0xfa, 0xf7, 0x61, 0xeb, 0x65, 0x09, 0xeb, 0xb1, 0x07, 0x17, 0x06, 0xae,
+ 0x0d, 0x08, 0x88, 0x82, 0xc9, 0x51, 0x89, 0x76,
+};
+static const unsigned char kat3468_addinpr2[] = {
+ 0x03, 0x11, 0xb0, 0xad, 0x7c, 0xc7, 0x0d, 0x78, 0x45, 0xee, 0xbe, 0xed,
+ 0x33, 0xfe, 0x89, 0x24, 0x3f, 0x61, 0x76, 0xed, 0x88, 0xe7, 0xe9, 0xcb,
+ 0x7b, 0x4b, 0xd9, 0x27, 0x65, 0x41, 0x9b, 0x4c,
+};
+static const unsigned char kat3468_retbits[] = {
+ 0x79, 0x96, 0xf6, 0x83, 0x88, 0xb1, 0xc3, 0x17, 0x4a, 0xc3, 0x33, 0xbe,
+ 0xa7, 0xfe, 0x19, 0xb1, 0x5a, 0xe2, 0x10, 0x01, 0x55, 0x4f, 0x0e, 0x1c,
+ 0x17, 0x08, 0x4c, 0x1a, 0x29, 0x6b, 0x46, 0x13, 0xf3, 0x9d, 0x94, 0xa9,
+ 0x3b, 0xdf, 0xa7, 0x06, 0xc7, 0x76, 0xb7, 0x93, 0x41, 0x54, 0x91, 0xf5,
+ 0x21, 0xf9, 0x22, 0x9c, 0x87, 0x97, 0xaa, 0x29, 0x64, 0x68, 0x18, 0xab,
+ 0x43, 0x67, 0xd3, 0x2b,
+};
+static const struct drbg_kat_pr_true kat3468_t = {
+ 2, kat3468_entropyin, kat3468_nonce, kat3468_persstr,
+ kat3468_entropyinpr1, kat3468_addinpr1, kat3468_entropyinpr2,
+ kat3468_addinpr2, kat3468_retbits
+};
+static const struct drbg_kat kat3468 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3468_t
+};
+
+static const unsigned char kat3469_entropyin[] = {
+ 0xcc, 0x0a, 0xd2, 0xcb, 0x3a, 0x15, 0x8e, 0xb3, 0x77, 0x3d, 0x46, 0x48,
+ 0x64, 0x53, 0xbf, 0xe6, 0xb9, 0x24, 0xa1, 0xbe, 0x7e, 0x24, 0x69, 0xb5,
+ 0x86, 0xa8, 0x23, 0x2c, 0xe1, 0x06, 0x5e, 0xf2,
+};
+static const unsigned char kat3469_nonce[] = {
+ 0x53, 0xdc, 0x3e, 0x49, 0x4c, 0x17, 0xdc, 0x64, 0xdb, 0x46, 0x4d, 0x28,
+ 0xc0, 0x0b, 0x00, 0x50,
+};
+static const unsigned char kat3469_persstr[] = {
+ 0x8b, 0x63, 0x08, 0x2f, 0x7c, 0x02, 0xcb, 0x5b, 0x77, 0x19, 0xdf, 0x24,
+ 0xc3, 0x71, 0x93, 0x8c, 0xac, 0x7f, 0x4b, 0xda, 0x4b, 0xcc, 0xfe, 0x89,
+ 0x3f, 0xbf, 0xe5, 0xa0, 0x2f, 0xf3, 0xfe, 0xfd,
+};
+static const unsigned char kat3469_entropyinpr1[] = {
+ 0xf5, 0xc0, 0x06, 0xd6, 0x06, 0xe6, 0xad, 0xa6, 0xd0, 0xcc, 0x9d, 0xa0,
+ 0x1a, 0x6d, 0x13, 0x32, 0x4b, 0xf5, 0x6b, 0x86, 0x19, 0x45, 0x01, 0x1f,
+ 0x9d, 0x3e, 0xd9, 0x1b, 0x17, 0x1a, 0xaa, 0xe1,
+};
+static const unsigned char kat3469_addinpr1[] = {
+ 0x0e, 0x75, 0x93, 0x8c, 0x7d, 0x35, 0x04, 0x08, 0xa1, 0xcc, 0x05, 0x34,
+ 0x9d, 0xb5, 0x95, 0x89, 0x17, 0xd0, 0x11, 0x41, 0xb8, 0x32, 0x86, 0x6a,
+ 0xa3, 0x41, 0x68, 0xc4, 0x81, 0xd8, 0x7e, 0x09,
+};
+static const unsigned char kat3469_entropyinpr2[] = {
+ 0x84, 0xf7, 0x9d, 0x37, 0x33, 0x3b, 0x86, 0xad, 0xbf, 0xb1, 0x31, 0x16,
+ 0xf6, 0xa6, 0xc4, 0xb1, 0x02, 0xcc, 0x82, 0x9a, 0x67, 0xd2, 0x82, 0x9f,
+ 0x5c, 0x57, 0x7a, 0xfc, 0x84, 0x50, 0x46, 0xd5,
+};
+static const unsigned char kat3469_addinpr2[] = {
+ 0xd5, 0xe7, 0x1f, 0x16, 0x49, 0x2b, 0x62, 0x63, 0xa0, 0x5c, 0x89, 0x23,
+ 0xc7, 0x26, 0x20, 0x3f, 0x11, 0xc9, 0xca, 0xb8, 0x8d, 0x7a, 0x94, 0x91,
+ 0x87, 0x45, 0xaf, 0xbb, 0x18, 0x27, 0xa3, 0x8f,
+};
+static const unsigned char kat3469_retbits[] = {
+ 0x98, 0x49, 0x3c, 0x84, 0x38, 0xd6, 0x82, 0x83, 0x53, 0x03, 0x15, 0x62,
+ 0x99, 0xef, 0x75, 0x15, 0x45, 0xe2, 0xdf, 0x6b, 0x60, 0xed, 0x67, 0x5a,
+ 0xee, 0x31, 0xe0, 0xf8, 0x98, 0x2b, 0x9a, 0xdd, 0x88, 0x52, 0x54, 0xb0,
+ 0xc7, 0x1d, 0x12, 0xb1, 0xc1, 0x1e, 0x78, 0x6a, 0x5c, 0xd7, 0x03, 0xfb,
+ 0xf5, 0xf7, 0x54, 0x5f, 0xba, 0xa5, 0xd3, 0xfe, 0x49, 0x9e, 0x9d, 0x95,
+ 0xd9, 0x33, 0xde, 0xa8,
+};
+static const struct drbg_kat_pr_true kat3469_t = {
+ 3, kat3469_entropyin, kat3469_nonce, kat3469_persstr,
+ kat3469_entropyinpr1, kat3469_addinpr1, kat3469_entropyinpr2,
+ kat3469_addinpr2, kat3469_retbits
+};
+static const struct drbg_kat kat3469 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3469_t
+};
+
+static const unsigned char kat3470_entropyin[] = {
+ 0x75, 0x73, 0x62, 0x51, 0x65, 0x32, 0x35, 0xe3, 0xfb, 0x1b, 0x89, 0x11,
+ 0x64, 0x46, 0xdc, 0x80, 0xdf, 0xb2, 0x49, 0x2b, 0x38, 0x20, 0xb2, 0xb0,
+ 0x3d, 0x50, 0x35, 0x33, 0x1c, 0x8c, 0xd6, 0x54,
+};
+static const unsigned char kat3470_nonce[] = {
+ 0x4f, 0x20, 0x31, 0x76, 0x61, 0x2c, 0xcd, 0x27, 0x7a, 0x2c, 0x47, 0x64,
+ 0x7a, 0xe4, 0x74, 0x12,
+};
+static const unsigned char kat3470_persstr[] = {
+ 0x87, 0x0c, 0xba, 0xaa, 0x61, 0xac, 0x66, 0xf6, 0x48, 0x9a, 0xe5, 0x46,
+ 0x4a, 0x15, 0xa3, 0x38, 0x4f, 0xb5, 0xf9, 0x71, 0xca, 0x2b, 0x8b, 0xda,
+ 0x92, 0xe3, 0x06, 0x6f, 0x4c, 0xa7, 0xf5, 0xdc,
+};
+static const unsigned char kat3470_entropyinpr1[] = {
+ 0x2e, 0xa2, 0xd9, 0xe9, 0x55, 0xf3, 0x09, 0x39, 0x68, 0x49, 0x24, 0x96,
+ 0xbf, 0x85, 0x9e, 0xf7, 0xec, 0xbb, 0x60, 0x4f, 0xf2, 0x43, 0x02, 0x0a,
+ 0x98, 0xc0, 0xa9, 0xb7, 0x9d, 0xa4, 0x5a, 0x18,
+};
+static const unsigned char kat3470_addinpr1[] = {
+ 0xac, 0xa6, 0xc8, 0xa1, 0xa9, 0xcd, 0x22, 0x93, 0x2a, 0x41, 0x30, 0x30,
+ 0xa3, 0x51, 0x96, 0xa1, 0xd8, 0x37, 0x6a, 0x31, 0x82, 0x14, 0x72, 0xcf,
+ 0x83, 0x4a, 0x07, 0x20, 0xd8, 0x55, 0x40, 0x42,
+};
+static const unsigned char kat3470_entropyinpr2[] = {
+ 0x09, 0x71, 0x6b, 0x11, 0x86, 0x91, 0x68, 0xc6, 0x2d, 0x27, 0xeb, 0xf0,
+ 0xad, 0x67, 0x07, 0xfe, 0xab, 0x9c, 0x66, 0x65, 0xa8, 0xd3, 0x13, 0x3b,
+ 0x53, 0x88, 0xfd, 0x21, 0xa4, 0xd3, 0x0c, 0xd2,
+};
+static const unsigned char kat3470_addinpr2[] = {
+ 0x77, 0xa6, 0xcd, 0x42, 0x17, 0x90, 0x71, 0xe6, 0x81, 0xeb, 0xcd, 0x82,
+ 0xf3, 0x0d, 0xf8, 0xb1, 0x89, 0x7c, 0x25, 0x77, 0xcb, 0xd4, 0x14, 0x32,
+ 0xb6, 0x64, 0x99, 0x3e, 0xd7, 0xa0, 0x12, 0x87,
+};
+static const unsigned char kat3470_retbits[] = {
+ 0xf8, 0x84, 0x57, 0x3a, 0x22, 0x30, 0x45, 0x60, 0xe2, 0x5a, 0xcd, 0x7b,
+ 0xfa, 0x83, 0x9b, 0x23, 0xe5, 0x64, 0xaa, 0x77, 0x49, 0x06, 0x26, 0x32,
+ 0x16, 0x09, 0x98, 0xcd, 0xec, 0x07, 0x95, 0x6f, 0xc4, 0x0a, 0x44, 0x59,
+ 0x34, 0xfc, 0x5c, 0xb0, 0xd0, 0xc2, 0x4d, 0x0c, 0x3d, 0xa9, 0x38, 0x67,
+ 0x0b, 0xbd, 0x70, 0x63, 0xd3, 0xcc, 0xd5, 0xc2, 0xd9, 0xc5, 0xed, 0xbe,
+ 0x52, 0xcd, 0x0e, 0x9c,
+};
+static const struct drbg_kat_pr_true kat3470_t = {
+ 4, kat3470_entropyin, kat3470_nonce, kat3470_persstr,
+ kat3470_entropyinpr1, kat3470_addinpr1, kat3470_entropyinpr2,
+ kat3470_addinpr2, kat3470_retbits
+};
+static const struct drbg_kat kat3470 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3470_t
+};
+
+static const unsigned char kat3471_entropyin[] = {
+ 0x25, 0x47, 0xa3, 0xef, 0xfa, 0x12, 0xd6, 0x07, 0xe3, 0x01, 0x20, 0xf6,
+ 0xa9, 0x4b, 0x7e, 0x35, 0xf9, 0x96, 0x0a, 0xba, 0x3e, 0x55, 0x33, 0x65,
+ 0xa0, 0x3d, 0x0f, 0x52, 0xfd, 0xad, 0x8c, 0x83,
+};
+static const unsigned char kat3471_nonce[] = {
+ 0x4f, 0x5f, 0xf3, 0x54, 0x0a, 0xb0, 0xaf, 0xcb, 0xc2, 0x0c, 0x63, 0x33,
+ 0x76, 0xc4, 0x44, 0xac,
+};
+static const unsigned char kat3471_persstr[] = {
+ 0x30, 0x95, 0xdd, 0xa5, 0xe7, 0xeb, 0x87, 0xa7, 0x2e, 0x2d, 0x9a, 0x31,
+ 0xf2, 0x29, 0x43, 0xaa, 0x7f, 0xa3, 0x1c, 0xc9, 0x57, 0x41, 0x0c, 0xfa,
+ 0xcf, 0x4c, 0xd7, 0x09, 0x58, 0xbc, 0xfb, 0x9d,
+};
+static const unsigned char kat3471_entropyinpr1[] = {
+ 0x4e, 0x6e, 0x86, 0xb4, 0x1d, 0x12, 0xae, 0x64, 0xc9, 0xb3, 0xa8, 0x75,
+ 0x70, 0xe7, 0xc8, 0xad, 0x55, 0x74, 0x3e, 0x0f, 0x71, 0xa7, 0xf3, 0x00,
+ 0xe0, 0x2f, 0x6d, 0xe8, 0x17, 0x88, 0x93, 0x30,
+};
+static const unsigned char kat3471_addinpr1[] = {
+ 0x64, 0x8b, 0x8f, 0x81, 0x12, 0xfd, 0x94, 0x8d, 0xe9, 0x3b, 0x8c, 0x64,
+ 0x1b, 0xb6, 0xd2, 0xa0, 0x2b, 0x34, 0x2b, 0x7d, 0x64, 0x19, 0x01, 0x03,
+ 0xe2, 0x02, 0x34, 0x4d, 0x42, 0x34, 0x61, 0x3a,
+};
+static const unsigned char kat3471_entropyinpr2[] = {
+ 0x16, 0xee, 0x00, 0x0b, 0xc8, 0xd2, 0x36, 0x58, 0x61, 0x30, 0x60, 0x10,
+ 0x5f, 0x0c, 0x50, 0xad, 0x87, 0x84, 0x2f, 0x35, 0x9d, 0x5f, 0xce, 0x3e,
+ 0x1a, 0x2a, 0x6e, 0x4e, 0xf8, 0xc8, 0x25, 0xf4,
+};
+static const unsigned char kat3471_addinpr2[] = {
+ 0x72, 0xa7, 0xa6, 0x3c, 0xd2, 0x9f, 0xed, 0x4c, 0xc2, 0x55, 0x40, 0x89,
+ 0x71, 0xb9, 0x7f, 0xf5, 0x9e, 0x7e, 0xe0, 0xb7, 0x84, 0x71, 0xb8, 0x63,
+ 0x7c, 0xc6, 0xcb, 0xfc, 0xc0, 0x12, 0xaf, 0x3c,
+};
+static const unsigned char kat3471_retbits[] = {
+ 0xbf, 0x88, 0x99, 0x1c, 0x85, 0xca, 0xac, 0x5f, 0x39, 0x2c, 0xc2, 0xbc,
+ 0x6f, 0x08, 0x19, 0xe2, 0x42, 0x5c, 0x22, 0x7f, 0x0f, 0x5d, 0x48, 0x02,
+ 0x9c, 0x83, 0x85, 0xa8, 0x2d, 0x35, 0xa1, 0x83, 0x33, 0x73, 0xd5, 0xa1,
+ 0xa9, 0xc2, 0x23, 0x94, 0x96, 0xd3, 0xa3, 0xbf, 0xd4, 0xd8, 0x95, 0x63,
+ 0x27, 0xee, 0x35, 0x39, 0x04, 0xc0, 0x0a, 0xdb, 0xd0, 0x7d, 0x53, 0x3b,
+ 0x9f, 0x66, 0x13, 0xc1,
+};
+static const struct drbg_kat_pr_true kat3471_t = {
+ 5, kat3471_entropyin, kat3471_nonce, kat3471_persstr,
+ kat3471_entropyinpr1, kat3471_addinpr1, kat3471_entropyinpr2,
+ kat3471_addinpr2, kat3471_retbits
+};
+static const struct drbg_kat kat3471 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3471_t
+};
+
+static const unsigned char kat3472_entropyin[] = {
+ 0x94, 0x66, 0x0d, 0x5e, 0x5f, 0xfa, 0x59, 0xda, 0x53, 0x0d, 0xd2, 0x0d,
+ 0x9b, 0x9c, 0x80, 0x25, 0x02, 0x95, 0x9a, 0xf6, 0xd7, 0xc4, 0x35, 0x16,
+ 0xb4, 0x29, 0x1e, 0xc9, 0x16, 0x48, 0xba, 0xaa,
+};
+static const unsigned char kat3472_nonce[] = {
+ 0x12, 0x35, 0x96, 0x80, 0x75, 0x82, 0x5c, 0x20, 0x2d, 0xe9, 0xb0, 0xcb,
+ 0xc2, 0x4f, 0x2e, 0x01,
+};
+static const unsigned char kat3472_persstr[] = {
+ 0x8c, 0xe4, 0xad, 0x45, 0x7e, 0x59, 0x09, 0xd3, 0xb5, 0x35, 0x21, 0x08,
+ 0xc2, 0x0e, 0xa9, 0x25, 0x60, 0x2b, 0x92, 0xfe, 0x90, 0x4b, 0xd7, 0x9b,
+ 0x15, 0x93, 0x21, 0xf5, 0x76, 0xd2, 0xa8, 0xcd,
+};
+static const unsigned char kat3472_entropyinpr1[] = {
+ 0x4f, 0x52, 0x69, 0xde, 0x5c, 0xd3, 0x55, 0x54, 0xbc, 0x89, 0x5a, 0x5b,
+ 0x6b, 0x05, 0x27, 0x5d, 0xeb, 0xfb, 0x45, 0x5d, 0x31, 0xee, 0x70, 0xfb,
+ 0x2f, 0xa4, 0x0d, 0x1a, 0x9e, 0x76, 0x2b, 0xbc,
+};
+static const unsigned char kat3472_addinpr1[] = {
+ 0xf1, 0x9e, 0x1f, 0x45, 0x52, 0x63, 0x41, 0x4f, 0x55, 0x77, 0x68, 0x7f,
+ 0xbd, 0xf5, 0xd4, 0xdf, 0xbd, 0xdf, 0xc5, 0x7c, 0x98, 0xc7, 0xd7, 0x56,
+ 0xd0, 0x10, 0xad, 0xff, 0x5c, 0x52, 0xa7, 0x67,
+};
+static const unsigned char kat3472_entropyinpr2[] = {
+ 0x01, 0xb2, 0xef, 0x47, 0x2b, 0xc8, 0x4f, 0x90, 0xc0, 0x22, 0x76, 0x36,
+ 0x57, 0xce, 0x56, 0x41, 0xc0, 0x9a, 0xdf, 0xb5, 0x33, 0xf8, 0x2b, 0xff,
+ 0x4f, 0xa1, 0xe1, 0x95, 0x0b, 0x89, 0x8a, 0x22,
+};
+static const unsigned char kat3472_addinpr2[] = {
+ 0xdc, 0xa7, 0xc7, 0xc0, 0x34, 0xc2, 0x54, 0x3d, 0x39, 0xe6, 0x36, 0xa1,
+ 0xbc, 0xe6, 0x3d, 0xdb, 0x56, 0xc8, 0x1c, 0xdc, 0x78, 0xf4, 0xc6, 0x4d,
+ 0x85, 0xb1, 0x15, 0x86, 0x14, 0xda, 0xea, 0x35,
+};
+static const unsigned char kat3472_retbits[] = {
+ 0xd3, 0xab, 0x21, 0xeb, 0x04, 0x02, 0x90, 0x00, 0xf8, 0x00, 0xc7, 0x22,
+ 0x0a, 0x48, 0x86, 0xb8, 0xb8, 0x18, 0x81, 0xa1, 0x5b, 0x9e, 0x43, 0xb4,
+ 0x80, 0x92, 0x88, 0x13, 0xe8, 0x4c, 0x14, 0x3b, 0x81, 0x59, 0x22, 0xea,
+ 0x9f, 0xef, 0x46, 0xe1, 0x4f, 0x8e, 0xec, 0xc9, 0xd9, 0x85, 0x98, 0xb7,
+ 0xa9, 0x7f, 0x98, 0x89, 0x56, 0x7b, 0x4e, 0x92, 0xb3, 0x5b, 0x3f, 0xa6,
+ 0x4c, 0x35, 0xe7, 0xf6,
+};
+static const struct drbg_kat_pr_true kat3472_t = {
+ 6, kat3472_entropyin, kat3472_nonce, kat3472_persstr,
+ kat3472_entropyinpr1, kat3472_addinpr1, kat3472_entropyinpr2,
+ kat3472_addinpr2, kat3472_retbits
+};
+static const struct drbg_kat kat3472 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3472_t
+};
+
+static const unsigned char kat3473_entropyin[] = {
+ 0x21, 0x39, 0x8e, 0x68, 0xde, 0x5b, 0x4a, 0x93, 0x4e, 0xa0, 0xf3, 0xfa,
+ 0x58, 0xfb, 0x48, 0xe0, 0xa3, 0xec, 0x9e, 0x81, 0xcf, 0xe3, 0x4a, 0xab,
+ 0x36, 0x1b, 0x93, 0x94, 0xe7, 0x20, 0x9a, 0xa1,
+};
+static const unsigned char kat3473_nonce[] = {
+ 0x80, 0x4f, 0x75, 0x24, 0x5f, 0xf9, 0x26, 0xb8, 0xd8, 0xe7, 0x60, 0xf9,
+ 0xdb, 0xee, 0x8a, 0xbd,
+};
+static const unsigned char kat3473_persstr[] = {
+ 0xe9, 0x97, 0xc5, 0x36, 0x8a, 0x7b, 0x58, 0xdd, 0x3f, 0x2f, 0x3f, 0x8e,
+ 0xbd, 0x64, 0x70, 0x8d, 0xc2, 0x19, 0xc1, 0x27, 0xfc, 0xce, 0x7d, 0x81,
+ 0x4c, 0xc4, 0xd7, 0x5c, 0xe3, 0xd6, 0x09, 0xcd,
+};
+static const unsigned char kat3473_entropyinpr1[] = {
+ 0xae, 0xa0, 0x22, 0xf8, 0x14, 0xb3, 0xff, 0x88, 0x81, 0x64, 0xab, 0xdd,
+ 0x7b, 0x87, 0xd7, 0xef, 0xee, 0xb8, 0x47, 0x47, 0xd0, 0x95, 0x21, 0x4a,
+ 0x05, 0xc5, 0x33, 0x77, 0x87, 0xca, 0x10, 0xe9,
+};
+static const unsigned char kat3473_addinpr1[] = {
+ 0xa3, 0x79, 0x47, 0x14, 0x9e, 0x58, 0x30, 0x7d, 0xdb, 0x28, 0x9a, 0x08,
+ 0x97, 0x2f, 0x33, 0xce, 0xae, 0x36, 0xd9, 0x2c, 0x5d, 0xf0, 0x07, 0x40,
+ 0x17, 0xfc, 0xe9, 0xdf, 0xc9, 0x87, 0x77, 0xe3,
+};
+static const unsigned char kat3473_entropyinpr2[] = {
+ 0xcd, 0x0f, 0xfb, 0xba, 0x56, 0x92, 0xc3, 0xce, 0xf2, 0xf5, 0x5e, 0xd5,
+ 0x14, 0xd1, 0x19, 0xf5, 0x5a, 0x23, 0x7a, 0x2a, 0xfa, 0x20, 0xc9, 0x1c,
+ 0x82, 0xb7, 0xa1, 0x5b, 0x96, 0x3e, 0x5b, 0xc5,
+};
+static const unsigned char kat3473_addinpr2[] = {
+ 0xaf, 0x9a, 0x76, 0x9f, 0xa9, 0x4d, 0xba, 0x5a, 0x9d, 0xbe, 0xa4, 0x48,
+ 0xeb, 0x8d, 0x6d, 0xf3, 0x76, 0x36, 0x16, 0x69, 0x53, 0x49, 0x13, 0x5e,
+ 0xa3, 0x2a, 0x97, 0xe0, 0xa5, 0x7e, 0xda, 0xfb,
+};
+static const unsigned char kat3473_retbits[] = {
+ 0x1a, 0xdb, 0x11, 0x1b, 0x7b, 0x15, 0x9c, 0xae, 0x8e, 0x69, 0x54, 0x29,
+ 0x9c, 0xf3, 0xc5, 0x58, 0xc4, 0xc7, 0x10, 0xce, 0xb5, 0xdb, 0x33, 0x28,
+ 0x27, 0xda, 0x86, 0x6f, 0x07, 0x32, 0xd8, 0xbc, 0xc7, 0x33, 0x24, 0x1f,
+ 0x50, 0xb2, 0x0f, 0x80, 0xe0, 0xf4, 0xee, 0xf2, 0x55, 0x46, 0x00, 0xb6,
+ 0x5c, 0x25, 0x35, 0xdb, 0xb1, 0xa2, 0xd7, 0x2b, 0xf5, 0x35, 0xb8, 0x1a,
+ 0x1e, 0x9c, 0x58, 0x82,
+};
+static const struct drbg_kat_pr_true kat3473_t = {
+ 7, kat3473_entropyin, kat3473_nonce, kat3473_persstr,
+ kat3473_entropyinpr1, kat3473_addinpr1, kat3473_entropyinpr2,
+ kat3473_addinpr2, kat3473_retbits
+};
+static const struct drbg_kat kat3473 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3473_t
+};
+
+static const unsigned char kat3474_entropyin[] = {
+ 0xfa, 0xb9, 0x80, 0x67, 0x03, 0xee, 0xbd, 0x6e, 0xc8, 0x5d, 0xbd, 0xfe,
+ 0x99, 0x9c, 0xb1, 0x45, 0x9e, 0xaa, 0x80, 0x6f, 0x46, 0xba, 0x98, 0x81,
+ 0x42, 0x85, 0x0b, 0x41, 0xf6, 0x2a, 0xd0, 0x9a,
+};
+static const unsigned char kat3474_nonce[] = {
+ 0xa2, 0xc4, 0x6e, 0xd7, 0xc2, 0xa9, 0x93, 0xdb, 0xf7, 0x7e, 0xcf, 0x64,
+ 0xe7, 0xa1, 0x2b, 0x82,
+};
+static const unsigned char kat3474_persstr[] = {
+ 0x48, 0x18, 0xfd, 0x97, 0x0c, 0xda, 0xf7, 0xbc, 0x82, 0xb8, 0x0e, 0x14,
+ 0x19, 0xcb, 0xb1, 0xa8, 0x43, 0x75, 0xf2, 0x20, 0x00, 0xd8, 0x9a, 0x61,
+ 0xd0, 0x60, 0x6d, 0xb3, 0xf3, 0x27, 0x30, 0x68,
+};
+static const unsigned char kat3474_entropyinpr1[] = {
+ 0x28, 0x94, 0x58, 0xc8, 0x9c, 0x57, 0xd8, 0x01, 0x7d, 0x89, 0xf9, 0xbe,
+ 0xac, 0x9d, 0x79, 0x33, 0x8e, 0x71, 0xfa, 0x70, 0xb3, 0x87, 0x8e, 0x42,
+ 0x4d, 0x47, 0x4d, 0x27, 0x7e, 0x97, 0x14, 0xcb,
+};
+static const unsigned char kat3474_addinpr1[] = {
+ 0xda, 0xe8, 0x17, 0x30, 0x3d, 0x48, 0x14, 0xc4, 0xe0, 0xc4, 0x18, 0x63,
+ 0xe2, 0xd8, 0x6e, 0x2d, 0x50, 0x6b, 0x49, 0x54, 0x03, 0x18, 0x0d, 0xfa,
+ 0xa1, 0x59, 0x04, 0x28, 0x76, 0x62, 0x5a, 0x48,
+};
+static const unsigned char kat3474_entropyinpr2[] = {
+ 0x05, 0x0c, 0x98, 0xd9, 0xc3, 0x7c, 0xba, 0x9e, 0x71, 0x7f, 0x4d, 0x0f,
+ 0xbc, 0x45, 0xc0, 0x6d, 0x6e, 0x91, 0x54, 0x3d, 0x6a, 0xb3, 0x20, 0xf1,
+ 0x59, 0xf3, 0xee, 0xd5, 0xd8, 0xd3, 0x94, 0x14,
+};
+static const unsigned char kat3474_addinpr2[] = {
+ 0x00, 0x7d, 0x64, 0x9c, 0x63, 0x30, 0x6c, 0xe4, 0x34, 0xfd, 0x55, 0x81,
+ 0x03, 0xb3, 0xaa, 0xc3, 0xa6, 0x5a, 0x6c, 0x3f, 0x58, 0x88, 0xe9, 0x01,
+ 0x66, 0xb5, 0xaa, 0x4b, 0xb2, 0xb3, 0x51, 0xae,
+};
+static const unsigned char kat3474_retbits[] = {
+ 0x23, 0xfb, 0x2c, 0x01, 0x58, 0x68, 0x49, 0xcc, 0x04, 0x1b, 0x72, 0xa4,
+ 0x7c, 0x89, 0x8a, 0x69, 0xa7, 0x0f, 0xd8, 0x73, 0x9d, 0x54, 0x7a, 0x28,
+ 0x50, 0xe6, 0xc5, 0x2e, 0x74, 0xc2, 0x42, 0x05, 0x59, 0xb1, 0xcc, 0x21,
+ 0x47, 0x62, 0xa8, 0x54, 0xef, 0x7e, 0xcf, 0x84, 0x21, 0xfd, 0x92, 0x52,
+ 0x33, 0x9e, 0xff, 0x35, 0xee, 0x44, 0x1e, 0xea, 0xe9, 0xf1, 0x69, 0xcf,
+ 0x2a, 0x2f, 0x8a, 0xe0,
+};
+static const struct drbg_kat_pr_true kat3474_t = {
+ 8, kat3474_entropyin, kat3474_nonce, kat3474_persstr,
+ kat3474_entropyinpr1, kat3474_addinpr1, kat3474_entropyinpr2,
+ kat3474_addinpr2, kat3474_retbits
+};
+static const struct drbg_kat kat3474 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3474_t
+};
+
+static const unsigned char kat3475_entropyin[] = {
+ 0xc0, 0x2b, 0x86, 0xdb, 0x7b, 0x02, 0x2e, 0xba, 0x95, 0xa8, 0x8f, 0x82,
+ 0x4d, 0xfc, 0xa3, 0x18, 0x3a, 0xf4, 0xf3, 0x02, 0x9e, 0xb9, 0x99, 0x68,
+ 0xea, 0x7c, 0x54, 0xd9, 0x27, 0x68, 0x2b, 0x27,
+};
+static const unsigned char kat3475_nonce[] = {
+ 0x90, 0x15, 0x9a, 0xcf, 0x1e, 0x5d, 0x0e, 0x85, 0x34, 0x3a, 0x37, 0xb2,
+ 0xe1, 0x95, 0x78, 0xda,
+};
+static const unsigned char kat3475_persstr[] = {
+ 0x36, 0x3d, 0xd2, 0x02, 0xfe, 0x1b, 0x07, 0x1e, 0x80, 0x6c, 0x61, 0x94,
+ 0x98, 0xa9, 0xf4, 0x86, 0xf2, 0xa1, 0x3c, 0x08, 0x5e, 0xba, 0x8a, 0x43,
+ 0x1d, 0x33, 0xff, 0x5d, 0x73, 0xe4, 0x62, 0xda,
+};
+static const unsigned char kat3475_entropyinpr1[] = {
+ 0x2d, 0xbb, 0x59, 0x67, 0xe5, 0x19, 0x14, 0xb4, 0x10, 0xaf, 0xe1, 0xec,
+ 0x96, 0xe8, 0xa8, 0xc8, 0x46, 0xb2, 0x63, 0x44, 0xc4, 0xe1, 0xce, 0x66,
+ 0x44, 0x21, 0x7f, 0x7a, 0xcb, 0xf6, 0x1b, 0xfa,
+};
+static const unsigned char kat3475_addinpr1[] = {
+ 0x3a, 0x86, 0x27, 0xf8, 0xa2, 0x79, 0xf0, 0xee, 0x8e, 0x9b, 0x7e, 0x0d,
+ 0x9e, 0xbf, 0x27, 0x91, 0x4c, 0xed, 0xc5, 0xdf, 0xf5, 0xdb, 0xc4, 0xb1,
+ 0x27, 0x2d, 0xbb, 0xda, 0xeb, 0xdb, 0x22, 0xdb,
+};
+static const unsigned char kat3475_entropyinpr2[] = {
+ 0x67, 0x49, 0xab, 0xcf, 0xc3, 0x54, 0x96, 0x7c, 0xd7, 0xba, 0xf7, 0x7c,
+ 0x1f, 0x5a, 0xcd, 0x83, 0xc3, 0x8f, 0x13, 0x80, 0x81, 0xeb, 0xff, 0xe0,
+ 0x35, 0xa1, 0xae, 0x4d, 0xdc, 0xf8, 0x5b, 0xb0,
+};
+static const unsigned char kat3475_addinpr2[] = {
+ 0xfe, 0x0b, 0x77, 0x82, 0xcb, 0xea, 0x10, 0x12, 0xda, 0x90, 0x00, 0x16,
+ 0x32, 0xf8, 0xf2, 0xc4, 0x02, 0xc8, 0x76, 0xf7, 0x78, 0x2c, 0x2b, 0x5b,
+ 0x80, 0x6d, 0x98, 0x1b, 0x99, 0x2f, 0xf7, 0x30,
+};
+static const unsigned char kat3475_retbits[] = {
+ 0x5d, 0x6e, 0x10, 0xf2, 0x05, 0xdb, 0x6d, 0x53, 0x4f, 0x4a, 0x7d, 0x74,
+ 0x8e, 0xf8, 0x36, 0x67, 0x11, 0x34, 0xb8, 0xf3, 0x58, 0x7d, 0x59, 0x37,
+ 0x51, 0x4f, 0x63, 0x8b, 0x49, 0x69, 0xac, 0xe4, 0xae, 0x69, 0x49, 0x0e,
+ 0x27, 0x82, 0xb9, 0x63, 0xde, 0x4d, 0x39, 0x0b, 0x12, 0xa9, 0xb1, 0xa6,
+ 0x67, 0x04, 0xdf, 0x86, 0xe0, 0xa0, 0x66, 0x3e, 0x23, 0xc9, 0x0b, 0x49,
+ 0x3a, 0x5a, 0xa1, 0x82,
+};
+static const struct drbg_kat_pr_true kat3475_t = {
+ 9, kat3475_entropyin, kat3475_nonce, kat3475_persstr,
+ kat3475_entropyinpr1, kat3475_addinpr1, kat3475_entropyinpr2,
+ kat3475_addinpr2, kat3475_retbits
+};
+static const struct drbg_kat kat3475 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3475_t
+};
+
+static const unsigned char kat3476_entropyin[] = {
+ 0xa0, 0x17, 0xd9, 0x09, 0xe6, 0x00, 0xbd, 0xc1, 0xd7, 0x80, 0xa0, 0x9a,
+ 0xcc, 0x59, 0xfb, 0x4f, 0x00, 0xbd, 0x82, 0xa4, 0x4a, 0x60, 0x1b, 0xbc,
+ 0xdf, 0x41, 0xd7, 0xcd, 0x8c, 0xbd, 0x6a, 0x2f,
+};
+static const unsigned char kat3476_nonce[] = {
+ 0x0c, 0x6a, 0x43, 0x91, 0x48, 0x6d, 0x9b, 0x41, 0x08, 0x4a, 0xcd, 0x80,
+ 0x31, 0x42, 0x7e, 0x6a,
+};
+static const unsigned char kat3476_persstr[] = {
+ 0xfc, 0x30, 0x93, 0xbb, 0xa8, 0xf6, 0x5b, 0x69, 0xb2, 0xcf, 0x8a, 0xb3,
+ 0x17, 0xb1, 0xc6, 0x08, 0xde, 0xd5, 0x00, 0x09, 0x01, 0x1b, 0xcb, 0xb5,
+ 0xfd, 0xf7, 0x7f, 0x83, 0x52, 0x68, 0xd0, 0xa2,
+};
+static const unsigned char kat3476_entropyinpr1[] = {
+ 0x6d, 0x70, 0x7a, 0xf9, 0xa2, 0xee, 0xb1, 0x98, 0x12, 0xd5, 0xf2, 0x5b,
+ 0x03, 0x9d, 0xcb, 0xcd, 0x8e, 0x88, 0x35, 0xc1, 0x12, 0x7f, 0x3b, 0x82,
+ 0xe6, 0xf0, 0x06, 0x53, 0xe2, 0x5e, 0xa0, 0xde,
+};
+static const unsigned char kat3476_addinpr1[] = {
+ 0x48, 0xd0, 0xbb, 0x1d, 0xa0, 0x62, 0x52, 0xf9, 0x90, 0x6e, 0xbc, 0x2a,
+ 0xf6, 0xe8, 0x2a, 0x1e, 0x64, 0x4b, 0xd9, 0x9f, 0xca, 0x3e, 0x81, 0x6a,
+ 0xdf, 0x94, 0xf1, 0x3d, 0xc8, 0xaf, 0x27, 0x21,
+};
+static const unsigned char kat3476_entropyinpr2[] = {
+ 0x3e, 0x70, 0x44, 0xcf, 0x77, 0xf4, 0x7b, 0xba, 0x02, 0x9e, 0x51, 0x46,
+ 0xee, 0x18, 0xdc, 0xd3, 0x41, 0x6a, 0x3b, 0x9d, 0x8f, 0x2b, 0x5c, 0xff,
+ 0x69, 0xc5, 0x38, 0x3f, 0x25, 0x5e, 0xe2, 0x83,
+};
+static const unsigned char kat3476_addinpr2[] = {
+ 0xb8, 0x83, 0x33, 0x6f, 0x21, 0xfb, 0x70, 0xbe, 0x1a, 0x73, 0xab, 0xf0,
+ 0xa7, 0x8b, 0x46, 0x58, 0xca, 0x87, 0x9c, 0x9b, 0x36, 0x57, 0xf8, 0xdf,
+ 0xa3, 0xc7, 0xa2, 0xef, 0xc2, 0xd7, 0x17, 0x3c,
+};
+static const unsigned char kat3476_retbits[] = {
+ 0xc5, 0x65, 0x02, 0x2c, 0xb9, 0x0c, 0x58, 0xa0, 0x92, 0xc4, 0x01, 0x58,
+ 0x31, 0x30, 0x36, 0xd7, 0x97, 0x4f, 0x14, 0xda, 0x3b, 0x25, 0x6f, 0x68,
+ 0xb0, 0x52, 0x04, 0xf9, 0xac, 0x46, 0xae, 0x67, 0x05, 0xe3, 0xdc, 0x3b,
+ 0x92, 0x0b, 0x92, 0xbe, 0xfb, 0xa3, 0x98, 0xc3, 0x6d, 0x5e, 0xc5, 0xed,
+ 0x69, 0xcd, 0xce, 0xa8, 0x18, 0xaf, 0x6d, 0x01, 0x55, 0xc4, 0xb6, 0x27,
+ 0x40, 0xf8, 0x9d, 0xf1,
+};
+static const struct drbg_kat_pr_true kat3476_t = {
+ 10, kat3476_entropyin, kat3476_nonce, kat3476_persstr,
+ kat3476_entropyinpr1, kat3476_addinpr1, kat3476_entropyinpr2,
+ kat3476_addinpr2, kat3476_retbits
+};
+static const struct drbg_kat kat3476 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3476_t
+};
+
+static const unsigned char kat3477_entropyin[] = {
+ 0x8e, 0xc5, 0xb5, 0x90, 0x6a, 0x70, 0x63, 0x9b, 0xc1, 0x29, 0x86, 0x32,
+ 0xf5, 0x0d, 0xf1, 0xa6, 0xf9, 0x02, 0x19, 0xe1, 0x9f, 0x8a, 0x94, 0x6a,
+ 0xbc, 0x35, 0x02, 0x2f, 0xb4, 0xf5, 0xcb, 0xf4,
+};
+static const unsigned char kat3477_nonce[] = {
+ 0x31, 0x72, 0xe3, 0x7c, 0xb3, 0x41, 0x9d, 0xff, 0x0f, 0xe6, 0x98, 0xc0,
+ 0x13, 0x38, 0xad, 0x3e,
+};
+static const unsigned char kat3477_persstr[] = {
+ 0x27, 0xec, 0xcc, 0x8f, 0x13, 0x1d, 0x68, 0x08, 0xc9, 0x50, 0x71, 0x09,
+ 0x00, 0x7e, 0x4d, 0x1e, 0xed, 0xf2, 0x70, 0x0b, 0xb6, 0x60, 0xb5, 0x83,
+ 0x93, 0x8f, 0xb5, 0xa1, 0xf1, 0xd2, 0x54, 0xb8,
+};
+static const unsigned char kat3477_entropyinpr1[] = {
+ 0x8a, 0xdf, 0x76, 0x0f, 0x81, 0xfc, 0xbf, 0x4e, 0x77, 0xd7, 0x4b, 0x89,
+ 0x0b, 0x03, 0x61, 0xc4, 0x09, 0x0e, 0xc3, 0x67, 0xaf, 0x67, 0xc7, 0xc6,
+ 0xd0, 0xb5, 0x10, 0x47, 0xf6, 0xeb, 0x4e, 0xf1,
+};
+static const unsigned char kat3477_addinpr1[] = {
+ 0x00, 0x3b, 0xcf, 0x45, 0xde, 0x0a, 0xef, 0x58, 0xf5, 0x92, 0xe5, 0x41,
+ 0x2c, 0x3c, 0x4c, 0x42, 0x6e, 0xcb, 0x26, 0x13, 0xdf, 0xb3, 0xac, 0x69,
+ 0x05, 0xb9, 0x86, 0xd3, 0x28, 0x85, 0x3e, 0x23,
+};
+static const unsigned char kat3477_entropyinpr2[] = {
+ 0x74, 0x11, 0xfc, 0xea, 0x66, 0x2a, 0x2a, 0xa5, 0x87, 0x6d, 0x38, 0x6f,
+ 0x70, 0x67, 0x31, 0x67, 0x99, 0x3f, 0x39, 0x5f, 0xa7, 0xcb, 0x87, 0x78,
+ 0xb3, 0x3d, 0xd0, 0x09, 0xf3, 0x53, 0xc8, 0xff,
+};
+static const unsigned char kat3477_addinpr2[] = {
+ 0x75, 0x2c, 0x13, 0x4e, 0x1a, 0x59, 0x24, 0xd0, 0xbe, 0x05, 0x55, 0x0d,
+ 0x45, 0x4f, 0xa5, 0x17, 0x96, 0x99, 0xad, 0x41, 0xb0, 0x96, 0x8d, 0x21,
+ 0x42, 0xaf, 0xca, 0x35, 0x44, 0x30, 0xf0, 0xe1,
+};
+static const unsigned char kat3477_retbits[] = {
+ 0xf5, 0x36, 0x2d, 0x27, 0x6d, 0x58, 0x1c, 0x2d, 0x0e, 0x80, 0x8a, 0xe4,
+ 0x86, 0xe8, 0xe6, 0x2f, 0xfd, 0x35, 0x49, 0x01, 0xa0, 0xf9, 0x80, 0x7c,
+ 0xf5, 0x65, 0x7a, 0x3d, 0x90, 0x24, 0xa7, 0x24, 0x78, 0xac, 0xd4, 0x03,
+ 0x7d, 0x06, 0xd4, 0xba, 0x5c, 0x3b, 0x29, 0xb5, 0xfb, 0x4f, 0x6b, 0x52,
+ 0x29, 0xc1, 0x7f, 0xe9, 0xde, 0xab, 0x68, 0xe0, 0xd0, 0x3a, 0x2f, 0x12,
+ 0x40, 0x9a, 0x0d, 0x46,
+};
+static const struct drbg_kat_pr_true kat3477_t = {
+ 11, kat3477_entropyin, kat3477_nonce, kat3477_persstr,
+ kat3477_entropyinpr1, kat3477_addinpr1, kat3477_entropyinpr2,
+ kat3477_addinpr2, kat3477_retbits
+};
+static const struct drbg_kat kat3477 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3477_t
+};
+
+static const unsigned char kat3478_entropyin[] = {
+ 0x06, 0xf9, 0x5f, 0xe2, 0x43, 0x9b, 0x4f, 0x09, 0xbe, 0x2f, 0x86, 0x01,
+ 0xb4, 0x00, 0x0a, 0x0b, 0x27, 0xba, 0x4c, 0xf2, 0xcc, 0xdc, 0x1d, 0x41,
+ 0x5d, 0xf0, 0x03, 0x39, 0x4b, 0xb4, 0x2d, 0x43,
+};
+static const unsigned char kat3478_nonce[] = {
+ 0x38, 0x84, 0x85, 0xd1, 0x9a, 0x5f, 0xbc, 0x7f, 0x29, 0xfe, 0x10, 0xe3,
+ 0xa2, 0x01, 0x0c, 0x33,
+};
+static const unsigned char kat3478_persstr[] = {
+ 0xb6, 0xd8, 0xc2, 0x33, 0xcc, 0xb6, 0x8c, 0x8c, 0xd1, 0x45, 0xf0, 0x63,
+ 0xf2, 0xdf, 0xd3, 0x7b, 0x62, 0xc5, 0x60, 0xa6, 0xf1, 0x60, 0x5a, 0xcf,
+ 0x35, 0xf9, 0x56, 0x63, 0xa7, 0x06, 0xa0, 0x8a,
+};
+static const unsigned char kat3478_entropyinpr1[] = {
+ 0x60, 0x5b, 0x02, 0x02, 0x51, 0x99, 0xa0, 0xad, 0x76, 0x14, 0xa0, 0xf2,
+ 0x3f, 0x17, 0x32, 0x75, 0x00, 0x7e, 0x3e, 0x17, 0x5a, 0x31, 0xa0, 0x04,
+ 0x50, 0xdd, 0xb4, 0x65, 0x79, 0xb0, 0x40, 0x93,
+};
+static const unsigned char kat3478_addinpr1[] = {
+ 0x4f, 0xbc, 0x8c, 0x3d, 0x7e, 0xbc, 0x00, 0xf4, 0x5b, 0x06, 0x08, 0x4a,
+ 0x8a, 0xaf, 0x5d, 0x4d, 0x2e, 0xe7, 0x0f, 0x78, 0xba, 0x3d, 0x46, 0xf8,
+ 0x58, 0x8e, 0xf0, 0xf3, 0x59, 0x8c, 0xc4, 0x3e,
+};
+static const unsigned char kat3478_entropyinpr2[] = {
+ 0xc2, 0x4b, 0xdd, 0x83, 0xfe, 0x41, 0x93, 0x48, 0x71, 0x44, 0x8c, 0x93,
+ 0x0c, 0x6d, 0x63, 0xb6, 0xcc, 0xb4, 0xbf, 0xa7, 0x39, 0x60, 0xd9, 0xe8,
+ 0xdf, 0xb9, 0x6b, 0x4a, 0x38, 0xb2, 0xfb, 0x0c,
+};
+static const unsigned char kat3478_addinpr2[] = {
+ 0x8d, 0x30, 0xb7, 0x62, 0x5b, 0x0c, 0x3c, 0x2d, 0x4a, 0x57, 0xd7, 0xa7,
+ 0xb2, 0xc8, 0xe2, 0x51, 0x1f, 0x77, 0xe7, 0x54, 0x6a, 0xd7, 0x27, 0x58,
+ 0x5d, 0x22, 0x6d, 0x83, 0xb0, 0x30, 0x0a, 0xd5,
+};
+static const unsigned char kat3478_retbits[] = {
+ 0x31, 0x38, 0x8d, 0x27, 0x34, 0xa8, 0x08, 0x88, 0xdd, 0xe6, 0x90, 0xf7,
+ 0x86, 0x7c, 0x24, 0x71, 0x33, 0x05, 0x2b, 0xe2, 0xdd, 0x09, 0x2b, 0x84,
+ 0xf1, 0x42, 0x2f, 0xd3, 0x65, 0x0b, 0x25, 0xf9, 0x6b, 0xed, 0xc9, 0x1b,
+ 0x42, 0xda, 0x30, 0x61, 0x12, 0x85, 0x80, 0x50, 0x60, 0x40, 0x27, 0x25,
+ 0x07, 0xe7, 0x34, 0x9d, 0x26, 0x4c, 0xa3, 0x75, 0x4c, 0x77, 0x63, 0xd2,
+ 0xa8, 0xa4, 0x30, 0xe6,
+};
+static const struct drbg_kat_pr_true kat3478_t = {
+ 12, kat3478_entropyin, kat3478_nonce, kat3478_persstr,
+ kat3478_entropyinpr1, kat3478_addinpr1, kat3478_entropyinpr2,
+ kat3478_addinpr2, kat3478_retbits
+};
+static const struct drbg_kat kat3478 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3478_t
+};
+
+static const unsigned char kat3479_entropyin[] = {
+ 0xd2, 0xb2, 0x5a, 0x12, 0x1f, 0x9f, 0xda, 0x73, 0x22, 0xf4, 0xe2, 0xb2,
+ 0x29, 0xd6, 0xe0, 0x5f, 0x5d, 0xa4, 0x38, 0x22, 0xe6, 0xa1, 0xc7, 0xa1,
+ 0x73, 0xd4, 0x68, 0xcc, 0x5f, 0xc2, 0x6a, 0x1e,
+};
+static const unsigned char kat3479_nonce[] = {
+ 0x7e, 0x69, 0x36, 0x37, 0x76, 0x87, 0x79, 0x09, 0xf3, 0x58, 0xa0, 0x0e,
+ 0xf4, 0xee, 0x78, 0x11,
+};
+static const unsigned char kat3479_persstr[] = {
+ 0x71, 0x6f, 0x2e, 0xed, 0x8f, 0x4f, 0x34, 0x03, 0x10, 0xf1, 0x9b, 0x95,
+ 0x44, 0x12, 0xae, 0x57, 0xd9, 0xd7, 0xe9, 0x60, 0xe6, 0x6d, 0x3c, 0x0b,
+ 0xff, 0x02, 0x31, 0xbc, 0x36, 0x09, 0x64, 0xa5,
+};
+static const unsigned char kat3479_entropyinpr1[] = {
+ 0x0c, 0x28, 0xf6, 0x72, 0x91, 0xf0, 0x31, 0xd4, 0xc5, 0xc4, 0xc2, 0x37,
+ 0x3d, 0xc7, 0x72, 0x4c, 0x3f, 0x01, 0x92, 0xbf, 0x86, 0x26, 0x84, 0x65,
+ 0x21, 0xc3, 0xf4, 0xbc, 0xa3, 0xb6, 0xac, 0x9e,
+};
+static const unsigned char kat3479_addinpr1[] = {
+ 0x2e, 0x44, 0xae, 0x67, 0xef, 0xd1, 0xb2, 0xa0, 0x2f, 0x3c, 0x9b, 0xda,
+ 0x81, 0x57, 0xa4, 0x35, 0x06, 0xac, 0xa6, 0xc8, 0x69, 0xc4, 0x59, 0xaa,
+ 0xde, 0x83, 0x8a, 0xc2, 0x76, 0x38, 0x81, 0xba,
+};
+static const unsigned char kat3479_entropyinpr2[] = {
+ 0xba, 0x93, 0x5e, 0xbc, 0xda, 0x1a, 0xe3, 0xd5, 0x07, 0x79, 0xdf, 0x10,
+ 0x3e, 0x15, 0xae, 0xd6, 0xc2, 0xe9, 0xdd, 0x7e, 0xd9, 0x7e, 0xcf, 0xe6,
+ 0x76, 0xb5, 0x96, 0xa9, 0xf5, 0x5e, 0xfd, 0x66,
+};
+static const unsigned char kat3479_addinpr2[] = {
+ 0xdd, 0x35, 0xdc, 0x7d, 0xc8, 0x7b, 0x42, 0x5f, 0x4e, 0x35, 0x83, 0xfb,
+ 0x9e, 0x36, 0xf9, 0x43, 0xe2, 0xca, 0x07, 0x51, 0xb7, 0x99, 0x5b, 0x2a,
+ 0x73, 0xea, 0x10, 0xcf, 0x32, 0x01, 0x0f, 0x3f,
+};
+static const unsigned char kat3479_retbits[] = {
+ 0xab, 0xcc, 0x64, 0x83, 0xc0, 0x68, 0x5d, 0x2a, 0xc0, 0x13, 0x29, 0xeb,
+ 0xd6, 0x98, 0x13, 0x8f, 0xa2, 0x6a, 0x1a, 0xca, 0xaf, 0xce, 0x8e, 0xc1,
+ 0xcc, 0x58, 0xa7, 0x3b, 0x64, 0x60, 0x25, 0xe3, 0xa7, 0xb7, 0x38, 0x6c,
+ 0x1b, 0x49, 0x2d, 0x28, 0x3d, 0xdd, 0x26, 0x3e, 0x3b, 0xe3, 0x68, 0xb2,
+ 0x66, 0xc5, 0x73, 0x62, 0x04, 0x81, 0x22, 0x56, 0x30, 0x19, 0x5b, 0xf5,
+ 0x9d, 0x46, 0x4f, 0xdf,
+};
+static const struct drbg_kat_pr_true kat3479_t = {
+ 13, kat3479_entropyin, kat3479_nonce, kat3479_persstr,
+ kat3479_entropyinpr1, kat3479_addinpr1, kat3479_entropyinpr2,
+ kat3479_addinpr2, kat3479_retbits
+};
+static const struct drbg_kat kat3479 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3479_t
+};
+
+static const unsigned char kat3480_entropyin[] = {
+ 0x6f, 0xa0, 0x76, 0x20, 0x48, 0x16, 0xf7, 0xa1, 0x85, 0x61, 0x89, 0xc4,
+ 0x09, 0xa4, 0x66, 0x50, 0xce, 0x8d, 0xd2, 0x8b, 0xa1, 0x2d, 0xff, 0xce,
+ 0x25, 0x35, 0x07, 0x9a, 0x9a, 0xe7, 0x77, 0xd7,
+};
+static const unsigned char kat3480_nonce[] = {
+ 0x77, 0x12, 0x44, 0x12, 0x2a, 0x2f, 0xb4, 0x39, 0x33, 0xd1, 0x89, 0x1d,
+ 0x3d, 0xae, 0x1f, 0x22,
+};
+static const unsigned char kat3480_persstr[] = {
+ 0x59, 0x63, 0x21, 0xac, 0x34, 0x04, 0x43, 0x49, 0x61, 0xed, 0x7e, 0x0e,
+ 0x29, 0x4d, 0x11, 0xe9, 0x70, 0xdf, 0x1f, 0x08, 0xb8, 0x4e, 0xc6, 0xa9,
+ 0x86, 0x33, 0x90, 0x09, 0xfe, 0x0a, 0xd7, 0x8b,
+};
+static const unsigned char kat3480_entropyinpr1[] = {
+ 0x0f, 0x1a, 0xf9, 0x88, 0xec, 0x95, 0x13, 0xa8, 0x65, 0x2e, 0x2b, 0x4d,
+ 0x27, 0xc0, 0x8c, 0x74, 0x73, 0x19, 0x2c, 0x86, 0x83, 0xa4, 0xb4, 0x26,
+ 0x15, 0x9d, 0xf7, 0x21, 0x02, 0xe1, 0x30, 0x94,
+};
+static const unsigned char kat3480_addinpr1[] = {
+ 0x0b, 0x1d, 0x5a, 0x09, 0xc6, 0x95, 0xc3, 0x75, 0x7f, 0x22, 0xdb, 0xdd,
+ 0xff, 0x15, 0x32, 0xa7, 0xe1, 0x62, 0x5d, 0xd2, 0xc0, 0x33, 0xde, 0x77,
+ 0xcb, 0xc5, 0xff, 0xc1, 0x58, 0x15, 0x14, 0x79,
+};
+static const unsigned char kat3480_entropyinpr2[] = {
+ 0x5e, 0x20, 0xd8, 0x71, 0x83, 0x67, 0x91, 0x4f, 0xa0, 0xb5, 0x68, 0x0a,
+ 0x2a, 0x6b, 0x20, 0x30, 0xf7, 0x1d, 0xcb, 0x59, 0x61, 0x77, 0x7c, 0x1c,
+ 0x2d, 0x70, 0xc3, 0xcb, 0xfe, 0x19, 0x76, 0x15,
+};
+static const unsigned char kat3480_addinpr2[] = {
+ 0x00, 0xeb, 0x04, 0x08, 0x78, 0xd2, 0xae, 0xd9, 0xb1, 0xa2, 0xc6, 0x86,
+ 0x61, 0x08, 0xc1, 0x3b, 0x24, 0xc2, 0x65, 0xd3, 0x73, 0x96, 0xce, 0x0e,
+ 0x3d, 0xa9, 0x8d, 0xe8, 0x5f, 0x25, 0x64, 0xea,
+};
+static const unsigned char kat3480_retbits[] = {
+ 0x11, 0x26, 0xdc, 0xdc, 0x7e, 0xa3, 0x5a, 0x3a, 0x0a, 0xd2, 0x74, 0x56,
+ 0x07, 0x65, 0xed, 0x66, 0x82, 0x2c, 0x80, 0x4a, 0x93, 0x7a, 0x59, 0x4c,
+ 0xa5, 0xe0, 0x21, 0x35, 0x33, 0x62, 0x86, 0x50, 0x33, 0xd1, 0x58, 0x3b,
+ 0x27, 0x12, 0xab, 0xd0, 0xde, 0xc7, 0x5d, 0x24, 0x00, 0x63, 0x71, 0xbf,
+ 0x72, 0x0a, 0x25, 0x85, 0x56, 0xb6, 0xe3, 0x7b, 0x44, 0xf4, 0x13, 0x2b,
+ 0xe1, 0x9d, 0x8b, 0xed,
+};
+static const struct drbg_kat_pr_true kat3480_t = {
+ 14, kat3480_entropyin, kat3480_nonce, kat3480_persstr,
+ kat3480_entropyinpr1, kat3480_addinpr1, kat3480_entropyinpr2,
+ kat3480_addinpr2, kat3480_retbits
+};
+static const struct drbg_kat kat3480 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3480_t
+};
+
+static const unsigned char kat3481_entropyin[] = {
+ 0x04, 0x7b, 0x78, 0xbe, 0x0a, 0x7b, 0x29, 0xdd, 0xd2, 0xf1, 0x16, 0x11,
+ 0x84, 0x85, 0x89, 0x22, 0xd6, 0x85, 0xe0, 0xaf, 0xa3, 0x52, 0x64, 0xb7,
+ 0x8e, 0x74, 0x87, 0x4b, 0x60, 0xe5, 0x24, 0x93,
+};
+static const unsigned char kat3481_nonce[] = {
+ 0x91, 0x1a, 0x40, 0x34, 0x07, 0x50, 0x05, 0xe0, 0x30, 0x5f, 0x98, 0x3d,
+ 0x75, 0xb1, 0xd2, 0x04,
+};
+static const unsigned char kat3481_persstr[] = {0};
+static const unsigned char kat3481_entropyinpr1[] = {
+ 0x2d, 0xf2, 0xdd, 0xa6, 0xf5, 0x6a, 0x49, 0xc9, 0x68, 0xac, 0x34, 0x3f,
+ 0xca, 0x5a, 0xc4, 0x80, 0xfa, 0x21, 0x63, 0x91, 0x80, 0x60, 0x92, 0x50,
+ 0x6a, 0x4d, 0x11, 0xbe, 0xf3, 0x55, 0xd8, 0x27,
+};
+static const unsigned char kat3481_addinpr1[] = {0};
+static const unsigned char kat3481_entropyinpr2[] = {
+ 0xc5, 0xc8, 0x7f, 0xa5, 0x84, 0x34, 0x81, 0xa1, 0xb3, 0x35, 0xb3, 0xb5,
+ 0xb6, 0x29, 0xdb, 0xff, 0x64, 0xec, 0xcd, 0x4a, 0x95, 0xed, 0x39, 0x69,
+ 0x38, 0x43, 0xcf, 0xae, 0x10, 0x0f, 0x70, 0xc3,
+};
+static const unsigned char kat3481_addinpr2[] = {0};
+static const unsigned char kat3481_retbits[] = {
+ 0x17, 0xd2, 0xca, 0x11, 0xcb, 0x82, 0x8f, 0x43, 0xc0, 0xe4, 0x9f, 0x41,
+ 0x9e, 0x7d, 0xff, 0xab, 0xee, 0xdb, 0x56, 0xaf, 0x84, 0x6e, 0x60, 0x43,
+ 0x99, 0xea, 0xd7, 0xa6, 0x4c, 0xd8, 0xbc, 0xb9, 0xa8, 0xa5, 0x97, 0x39,
+ 0x21, 0x69, 0x8a, 0xe7, 0xc5, 0x4c, 0x32, 0x99, 0x01, 0x25, 0xe7, 0x78,
+ 0x9c, 0xb7, 0x37, 0x91, 0xc6, 0x3c, 0x78, 0x89, 0x56, 0x6c, 0x9f, 0xb4,
+ 0x6c, 0x18, 0x0b, 0x61,
+};
+static const struct drbg_kat_pr_true kat3481_t = {
+ 0, kat3481_entropyin, kat3481_nonce, kat3481_persstr,
+ kat3481_entropyinpr1, kat3481_addinpr1, kat3481_entropyinpr2,
+ kat3481_addinpr2, kat3481_retbits
+};
+static const struct drbg_kat kat3481 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3481_t
+};
+
+static const unsigned char kat3482_entropyin[] = {
+ 0xb3, 0x26, 0x3d, 0xd0, 0x82, 0xf0, 0x03, 0x62, 0x61, 0x70, 0xe9, 0x18,
+ 0x77, 0xba, 0x59, 0x32, 0x52, 0x6e, 0xc5, 0x80, 0x19, 0xee, 0x8b, 0x3f,
+ 0xcc, 0xbc, 0x05, 0x7a, 0xf7, 0x10, 0x58, 0x59,
+};
+static const unsigned char kat3482_nonce[] = {
+ 0x7b, 0x1d, 0x5e, 0x79, 0x3d, 0xb6, 0xda, 0x07, 0xe4, 0xf8, 0xd7, 0x72,
+ 0xb9, 0xfb, 0x01, 0x85,
+};
+static const unsigned char kat3482_persstr[] = {0};
+static const unsigned char kat3482_entropyinpr1[] = {
+ 0x5d, 0xbd, 0x68, 0xaa, 0x42, 0xaa, 0x48, 0xae, 0x4e, 0x55, 0xe4, 0x9b,
+ 0xbc, 0x58, 0xfd, 0x5b, 0xe8, 0x3f, 0x6b, 0x82, 0x0d, 0x49, 0xcd, 0x0a,
+ 0xc7, 0x91, 0x25, 0xb7, 0xfd, 0x70, 0x2e, 0xa0,
+};
+static const unsigned char kat3482_addinpr1[] = {0};
+static const unsigned char kat3482_entropyinpr2[] = {
+ 0xae, 0xb0, 0xaf, 0xba, 0x7f, 0xa1, 0xd7, 0xb4, 0x44, 0x50, 0x87, 0x4a,
+ 0x2b, 0x48, 0x45, 0xc7, 0xe0, 0x7c, 0xfa, 0x3b, 0x38, 0xb7, 0x58, 0xa2,
+ 0xc4, 0xa1, 0xd4, 0x57, 0x5b, 0x7c, 0xe8, 0x14,
+};
+static const unsigned char kat3482_addinpr2[] = {0};
+static const unsigned char kat3482_retbits[] = {
+ 0x77, 0x9a, 0x28, 0xbd, 0x4c, 0xc4, 0xb9, 0x92, 0xfe, 0x62, 0x2b, 0x7a,
+ 0x00, 0xee, 0x61, 0x4d, 0x23, 0xd3, 0x43, 0x9b, 0x8c, 0x48, 0x73, 0x61,
+ 0x0d, 0xcc, 0x25, 0x9e, 0xa4, 0x49, 0xc2, 0xd7, 0xa7, 0xca, 0xee, 0x22,
+ 0xa8, 0x0c, 0x07, 0x84, 0x7e, 0xb1, 0x82, 0x26, 0x44, 0xb4, 0x92, 0x7c,
+ 0x27, 0x0a, 0xf8, 0x9e, 0xad, 0x56, 0x18, 0xd6, 0x7d, 0x77, 0x1a, 0xf9,
+ 0x07, 0x72, 0x8a, 0xfd,
+};
+static const struct drbg_kat_pr_true kat3482_t = {
+ 1, kat3482_entropyin, kat3482_nonce, kat3482_persstr,
+ kat3482_entropyinpr1, kat3482_addinpr1, kat3482_entropyinpr2,
+ kat3482_addinpr2, kat3482_retbits
+};
+static const struct drbg_kat kat3482 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3482_t
+};
+
+static const unsigned char kat3483_entropyin[] = {
+ 0x4a, 0xbb, 0x8a, 0xb7, 0xcb, 0x8d, 0xd6, 0x6b, 0x74, 0xf6, 0x7a, 0x7c,
+ 0xbb, 0x2c, 0x6b, 0xfe, 0x21, 0x7a, 0x95, 0xf8, 0x2f, 0x84, 0xf8, 0x22,
+ 0x02, 0x24, 0x58, 0x73, 0x43, 0x4e, 0xdd, 0x0b,
+};
+static const unsigned char kat3483_nonce[] = {
+ 0xe0, 0xeb, 0x5f, 0x37, 0xfd, 0xc8, 0xaa, 0xe7, 0xce, 0xdc, 0x9d, 0x46,
+ 0x9e, 0x29, 0x15, 0x35,
+};
+static const unsigned char kat3483_persstr[] = {0};
+static const unsigned char kat3483_entropyinpr1[] = {
+ 0x58, 0x76, 0x37, 0xbd, 0x3b, 0xef, 0x94, 0xa0, 0x96, 0xee, 0xfd, 0xd6,
+ 0xbf, 0x4d, 0x9c, 0xbb, 0xbd, 0xab, 0x40, 0x23, 0xe4, 0xba, 0x24, 0xc0,
+ 0xda, 0x6c, 0x12, 0x2e, 0xd3, 0x7b, 0xda, 0x2e,
+};
+static const unsigned char kat3483_addinpr1[] = {0};
+static const unsigned char kat3483_entropyinpr2[] = {
+ 0x08, 0xfa, 0xc1, 0xf1, 0xfb, 0xe4, 0x2a, 0x80, 0x4b, 0x29, 0x0c, 0xe2,
+ 0x23, 0xe5, 0x66, 0x9d, 0xf3, 0x6d, 0x78, 0xa1, 0x2d, 0x24, 0x0f, 0x1a,
+ 0xff, 0xed, 0x6e, 0x4d, 0x54, 0xef, 0x17, 0x83,
+};
+static const unsigned char kat3483_addinpr2[] = {0};
+static const unsigned char kat3483_retbits[] = {
+ 0x44, 0xff, 0x27, 0x53, 0x5a, 0xae, 0x8a, 0x22, 0x21, 0xbb, 0x7e, 0x06,
+ 0x64, 0xbd, 0x21, 0xc1, 0x44, 0x13, 0x86, 0xce, 0x30, 0x18, 0x96, 0x4f,
+ 0x39, 0xd6, 0xb4, 0xc9, 0x5d, 0x60, 0x4d, 0xe8, 0x13, 0x1f, 0x75, 0x5f,
+ 0xdc, 0xdf, 0x05, 0xe8, 0xc4, 0xa2, 0x36, 0xde, 0x5e, 0x72, 0xbc, 0x80,
+ 0x0d, 0x46, 0x8e, 0xc4, 0x7c, 0x6b, 0x80, 0x2c, 0xd8, 0x08, 0x19, 0x30,
+ 0xb8, 0xde, 0xfb, 0x8b,
+};
+static const struct drbg_kat_pr_true kat3483_t = {
+ 2, kat3483_entropyin, kat3483_nonce, kat3483_persstr,
+ kat3483_entropyinpr1, kat3483_addinpr1, kat3483_entropyinpr2,
+ kat3483_addinpr2, kat3483_retbits
+};
+static const struct drbg_kat kat3483 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3483_t
+};
+
+static const unsigned char kat3484_entropyin[] = {
+ 0x14, 0x4a, 0x6f, 0x82, 0x5b, 0x41, 0x14, 0xd8, 0x99, 0xd9, 0x42, 0x50,
+ 0xa9, 0x34, 0xc8, 0xe9, 0xe5, 0x41, 0x13, 0x73, 0xb8, 0xf5, 0x03, 0x54,
+ 0x19, 0xf2, 0x70, 0x17, 0x50, 0x38, 0x9e, 0x7f,
+};
+static const unsigned char kat3484_nonce[] = {
+ 0x79, 0xf4, 0xf9, 0xb9, 0x53, 0xad, 0xf2, 0x1a, 0x0a, 0x2b, 0x7a, 0xa7,
+ 0x15, 0x85, 0xbb, 0x6d,
+};
+static const unsigned char kat3484_persstr[] = {0};
+static const unsigned char kat3484_entropyinpr1[] = {
+ 0xf9, 0x0e, 0x58, 0x6e, 0x14, 0xc5, 0x10, 0x86, 0xda, 0x0a, 0xfa, 0x32,
+ 0x9f, 0x80, 0x68, 0x02, 0x32, 0x76, 0xe9, 0x36, 0x47, 0x79, 0x7d, 0xa6,
+ 0x4b, 0x89, 0xb5, 0xdf, 0x0d, 0xd5, 0xa9, 0x42,
+};
+static const unsigned char kat3484_addinpr1[] = {0};
+static const unsigned char kat3484_entropyinpr2[] = {
+ 0x43, 0xf1, 0x99, 0xc0, 0x93, 0xa0, 0xb5, 0x52, 0x35, 0xe5, 0x26, 0xda,
+ 0x6f, 0x2c, 0x32, 0xe7, 0xf9, 0x90, 0xa5, 0x0b, 0x4b, 0x74, 0x84, 0x92,
+ 0x4e, 0xdf, 0xb2, 0xe5, 0xc7, 0x35, 0xdb, 0xec,
+};
+static const unsigned char kat3484_addinpr2[] = {0};
+static const unsigned char kat3484_retbits[] = {
+ 0xba, 0x08, 0x83, 0x16, 0xdd, 0xfe, 0x25, 0x3a, 0xe1, 0xfa, 0x37, 0x97,
+ 0x13, 0x87, 0x6a, 0x23, 0x62, 0xea, 0x0f, 0xad, 0x30, 0x7e, 0xf5, 0xaa,
+ 0x3d, 0x72, 0x55, 0x6d, 0x1f, 0xc5, 0xa1, 0xf5, 0x83, 0xb5, 0x4a, 0x0f,
+ 0x89, 0xc5, 0x99, 0xb4, 0x1d, 0x96, 0x84, 0xa3, 0xc7, 0x05, 0xba, 0x24,
+ 0xde, 0x6e, 0xea, 0x25, 0x5f, 0x3a, 0x9e, 0xf5, 0x84, 0x78, 0x1e, 0x9c,
+ 0xb3, 0xb6, 0x3b, 0x7e,
+};
+static const struct drbg_kat_pr_true kat3484_t = {
+ 3, kat3484_entropyin, kat3484_nonce, kat3484_persstr,
+ kat3484_entropyinpr1, kat3484_addinpr1, kat3484_entropyinpr2,
+ kat3484_addinpr2, kat3484_retbits
+};
+static const struct drbg_kat kat3484 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3484_t
+};
+
+static const unsigned char kat3485_entropyin[] = {
+ 0xc9, 0x1b, 0xa8, 0xd0, 0x5d, 0x8a, 0x1a, 0xb6, 0x7b, 0x52, 0x12, 0xb3,
+ 0x0e, 0x65, 0x47, 0x4d, 0x61, 0x2e, 0x11, 0x8d, 0x84, 0xa8, 0xe2, 0x53,
+ 0x36, 0x65, 0xcb, 0xd3, 0x44, 0x72, 0x7d, 0xb3,
+};
+static const unsigned char kat3485_nonce[] = {
+ 0x54, 0xdb, 0xbd, 0xf9, 0x77, 0xf5, 0x45, 0x3d, 0x15, 0x26, 0x28, 0xc9,
+ 0x69, 0xb2, 0xe1, 0x8c,
+};
+static const unsigned char kat3485_persstr[] = {0};
+static const unsigned char kat3485_entropyinpr1[] = {
+ 0x0d, 0x8c, 0xd3, 0xb8, 0x16, 0xb0, 0xd6, 0xd0, 0x1e, 0x34, 0x46, 0xc0,
+ 0x62, 0x6c, 0xcd, 0xba, 0x47, 0xbf, 0xde, 0x65, 0xba, 0x65, 0x16, 0x1b,
+ 0xb2, 0xc5, 0x6e, 0xe6, 0xb9, 0xd1, 0xec, 0xe7,
+};
+static const unsigned char kat3485_addinpr1[] = {0};
+static const unsigned char kat3485_entropyinpr2[] = {
+ 0xcd, 0x9b, 0x27, 0xe7, 0x6e, 0xd3, 0x3a, 0xdc, 0xec, 0x38, 0x29, 0xb1,
+ 0xfa, 0x21, 0x48, 0x81, 0x81, 0xd8, 0x87, 0x96, 0xf3, 0x66, 0xb6, 0x44,
+ 0xc5, 0x4f, 0xf1, 0x33, 0x7c, 0xd6, 0x06, 0x9b,
+};
+static const unsigned char kat3485_addinpr2[] = {0};
+static const unsigned char kat3485_retbits[] = {
+ 0x43, 0x4e, 0xff, 0x91, 0x96, 0xe6, 0xb3, 0x0c, 0x0e, 0xbf, 0x94, 0x44,
+ 0x31, 0x1e, 0x7a, 0xe9, 0x61, 0xea, 0x09, 0x0c, 0x59, 0x37, 0x49, 0xf7,
+ 0x5e, 0xb4, 0x33, 0xf4, 0x77, 0xf3, 0x69, 0x1b, 0x69, 0xfd, 0xe2, 0x97,
+ 0x6a, 0xdf, 0x59, 0x5f, 0xc7, 0x86, 0x31, 0xd6, 0xff, 0x00, 0x22, 0x38,
+ 0xd1, 0x82, 0x98, 0xd8, 0xcf, 0xe9, 0xeb, 0x31, 0xa7, 0x7f, 0x97, 0xed,
+ 0xbb, 0xf6, 0x61, 0x25,
+};
+static const struct drbg_kat_pr_true kat3485_t = {
+ 4, kat3485_entropyin, kat3485_nonce, kat3485_persstr,
+ kat3485_entropyinpr1, kat3485_addinpr1, kat3485_entropyinpr2,
+ kat3485_addinpr2, kat3485_retbits
+};
+static const struct drbg_kat kat3485 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3485_t
+};
+
+static const unsigned char kat3486_entropyin[] = {
+ 0xfb, 0x8b, 0xc3, 0xe0, 0x1c, 0x14, 0x5c, 0x09, 0x94, 0x98, 0x93, 0x2c,
+ 0xec, 0xd7, 0xe2, 0x1c, 0x7a, 0xb4, 0x76, 0xab, 0xa8, 0x24, 0x39, 0x19,
+ 0x11, 0xa4, 0xa7, 0xfd, 0xb1, 0x4f, 0x1a, 0x24,
+};
+static const unsigned char kat3486_nonce[] = {
+ 0x7e, 0x85, 0x6a, 0xf3, 0xd7, 0xad, 0xe4, 0xc2, 0xb5, 0x5a, 0xd9, 0xb9,
+ 0x14, 0x67, 0xb7, 0x77,
+};
+static const unsigned char kat3486_persstr[] = {0};
+static const unsigned char kat3486_entropyinpr1[] = {
+ 0xa6, 0x9c, 0x96, 0xff, 0x7a, 0x4a, 0xbe, 0x95, 0x48, 0x04, 0xe2, 0x20,
+ 0x53, 0xa1, 0x14, 0x84, 0x43, 0xd8, 0xe3, 0xac, 0x05, 0x26, 0x16, 0xc5,
+ 0xf7, 0xb3, 0xf3, 0xaf, 0x96, 0x05, 0x5a, 0xab,
+};
+static const unsigned char kat3486_addinpr1[] = {0};
+static const unsigned char kat3486_entropyinpr2[] = {
+ 0x80, 0xd7, 0xfd, 0x18, 0x95, 0x33, 0x9c, 0x97, 0x4a, 0x82, 0xe2, 0x96,
+ 0x9b, 0xf2, 0x79, 0x28, 0x35, 0x45, 0xa6, 0xd9, 0xa8, 0xec, 0x50, 0x55,
+ 0x26, 0x03, 0xb8, 0x3d, 0xd6, 0x9c, 0xe6, 0xa8,
+};
+static const unsigned char kat3486_addinpr2[] = {0};
+static const unsigned char kat3486_retbits[] = {
+ 0x88, 0x36, 0x93, 0x0c, 0x29, 0xb7, 0x51, 0x0c, 0x9c, 0xd7, 0x8e, 0x5d,
+ 0x84, 0x1b, 0xa8, 0xb3, 0xab, 0xe8, 0x2f, 0xaa, 0x69, 0x6d, 0x57, 0x06,
+ 0xed, 0x49, 0xc5, 0xb1, 0x15, 0x97, 0x3f, 0xaf, 0xb6, 0x30, 0x3e, 0x05,
+ 0x36, 0x11, 0xcb, 0xc1, 0x64, 0x70, 0x43, 0x2a, 0xff, 0x7e, 0xf7, 0x00,
+ 0x66, 0x89, 0x64, 0xe2, 0x07, 0xe4, 0x06, 0x06, 0x8f, 0xb3, 0x96, 0xf5,
+ 0xfe, 0x80, 0xe0, 0xce,
+};
+static const struct drbg_kat_pr_true kat3486_t = {
+ 5, kat3486_entropyin, kat3486_nonce, kat3486_persstr,
+ kat3486_entropyinpr1, kat3486_addinpr1, kat3486_entropyinpr2,
+ kat3486_addinpr2, kat3486_retbits
+};
+static const struct drbg_kat kat3486 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3486_t
+};
+
+static const unsigned char kat3487_entropyin[] = {
+ 0x00, 0x5b, 0x76, 0xa9, 0x3d, 0x2f, 0x77, 0x46, 0xf1, 0xf5, 0xe8, 0x9e,
+ 0x21, 0x4e, 0x3e, 0x58, 0x0c, 0x63, 0x90, 0xcb, 0x5b, 0xa8, 0xe1, 0xf6,
+ 0x49, 0x9d, 0x34, 0xee, 0x28, 0x97, 0xc9, 0x54,
+};
+static const unsigned char kat3487_nonce[] = {
+ 0xad, 0xa2, 0x88, 0x12, 0xf6, 0xf3, 0x28, 0x96, 0x8f, 0xfa, 0x2a, 0x14,
+ 0x04, 0x9d, 0xa9, 0xa1,
+};
+static const unsigned char kat3487_persstr[] = {0};
+static const unsigned char kat3487_entropyinpr1[] = {
+ 0xe8, 0xcf, 0xb9, 0x01, 0xc1, 0x93, 0x33, 0x81, 0xa7, 0xe3, 0x39, 0x84,
+ 0x14, 0x8a, 0x03, 0x82, 0x9a, 0xf1, 0x5b, 0x4a, 0xcd, 0x5b, 0x7c, 0xf6,
+ 0x65, 0xaf, 0xc6, 0x98, 0x02, 0x75, 0x68, 0xad,
+};
+static const unsigned char kat3487_addinpr1[] = {0};
+static const unsigned char kat3487_entropyinpr2[] = {
+ 0xf8, 0x81, 0xb9, 0xf8, 0xd2, 0x33, 0x9f, 0x6e, 0xbf, 0xda, 0xf8, 0xcb,
+ 0x78, 0x22, 0x59, 0x9d, 0x72, 0x7f, 0x99, 0x4d, 0x14, 0x6e, 0x0b, 0x70,
+ 0xb9, 0x3b, 0xb1, 0x5f, 0x86, 0x4d, 0x6a, 0xc0,
+};
+static const unsigned char kat3487_addinpr2[] = {0};
+static const unsigned char kat3487_retbits[] = {
+ 0x51, 0x59, 0xbe, 0x5c, 0xea, 0xc7, 0x02, 0x0f, 0x32, 0x02, 0x92, 0xb6,
+ 0xf7, 0x6f, 0x54, 0x1c, 0xa6, 0xc1, 0x6a, 0xd8, 0x2a, 0x6f, 0x78, 0xb5,
+ 0x2c, 0xa4, 0xa6, 0x63, 0xd5, 0x2b, 0x39, 0xca, 0x1e, 0x15, 0x30, 0xa0,
+ 0xc7, 0xce, 0xa3, 0x7a, 0x7f, 0x4e, 0x8f, 0xde, 0x44, 0xb8, 0xa2, 0xbc,
+ 0xef, 0xab, 0xdf, 0x29, 0xb1, 0x4e, 0x8d, 0x3d, 0x2d, 0x71, 0xe5, 0xb2,
+ 0x6b, 0x1e, 0x33, 0xcf,
+};
+static const struct drbg_kat_pr_true kat3487_t = {
+ 6, kat3487_entropyin, kat3487_nonce, kat3487_persstr,
+ kat3487_entropyinpr1, kat3487_addinpr1, kat3487_entropyinpr2,
+ kat3487_addinpr2, kat3487_retbits
+};
+static const struct drbg_kat kat3487 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3487_t
+};
+
+static const unsigned char kat3488_entropyin[] = {
+ 0x2f, 0x4b, 0xdd, 0x27, 0xcc, 0x2f, 0x84, 0x16, 0xa0, 0x26, 0x15, 0xa9,
+ 0x74, 0x77, 0xfd, 0xbd, 0x38, 0x8f, 0x9d, 0x6c, 0x78, 0xca, 0xa7, 0x7b,
+ 0x1e, 0xd3, 0xcc, 0x48, 0xf3, 0xfb, 0x73, 0x21,
+};
+static const unsigned char kat3488_nonce[] = {
+ 0x41, 0xde, 0xa1, 0xf9, 0x37, 0xce, 0x02, 0x64, 0xe9, 0x10, 0xbb, 0x23,
+ 0x7b, 0xa9, 0x85, 0xc1,
+};
+static const unsigned char kat3488_persstr[] = {0};
+static const unsigned char kat3488_entropyinpr1[] = {
+ 0x70, 0x0a, 0xe2, 0xa5, 0xa7, 0x70, 0x4e, 0x65, 0x78, 0x00, 0x39, 0x09,
+ 0x24, 0x2c, 0x60, 0x7a, 0xe5, 0x78, 0xe6, 0x1d, 0xf4, 0x23, 0xc9, 0x75,
+ 0xc6, 0x14, 0x9a, 0x4d, 0xbf, 0xb6, 0x6f, 0xf2,
+};
+static const unsigned char kat3488_addinpr1[] = {0};
+static const unsigned char kat3488_entropyinpr2[] = {
+ 0x2c, 0xbd, 0x43, 0x01, 0xa9, 0x4a, 0x76, 0x1c, 0x87, 0x2d, 0xc3, 0x1a,
+ 0x42, 0xa1, 0xa9, 0x3b, 0x02, 0xbe, 0x96, 0xd4, 0xc6, 0x84, 0x30, 0x14,
+ 0xaf, 0x60, 0x5b, 0x01, 0x7b, 0xa7, 0x67, 0x07,
+};
+static const unsigned char kat3488_addinpr2[] = {0};
+static const unsigned char kat3488_retbits[] = {
+ 0x88, 0x72, 0xff, 0xcb, 0x88, 0x78, 0x82, 0x33, 0xc4, 0x20, 0x17, 0xfa,
+ 0x22, 0x9e, 0xcf, 0xa0, 0x4e, 0x80, 0xfe, 0x34, 0x2a, 0x40, 0xc0, 0x69,
+ 0x9f, 0xa1, 0xf2, 0x15, 0xf6, 0x04, 0x3c, 0x1d, 0xbf, 0xf7, 0x2f, 0x77,
+ 0x61, 0x15, 0x5d, 0x4d, 0xa0, 0x50, 0x04, 0x13, 0x23, 0x28, 0x78, 0xee,
+ 0x7f, 0xaa, 0xe0, 0xc4, 0x25, 0xac, 0x0a, 0x50, 0xee, 0xf8, 0x99, 0x2b,
+ 0xbc, 0x30, 0xea, 0x90,
+};
+static const struct drbg_kat_pr_true kat3488_t = {
+ 7, kat3488_entropyin, kat3488_nonce, kat3488_persstr,
+ kat3488_entropyinpr1, kat3488_addinpr1, kat3488_entropyinpr2,
+ kat3488_addinpr2, kat3488_retbits
+};
+static const struct drbg_kat kat3488 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3488_t
+};
+
+static const unsigned char kat3489_entropyin[] = {
+ 0xef, 0xb3, 0xa5, 0xff, 0xdb, 0xda, 0x70, 0xd1, 0x2a, 0xed, 0xfc, 0xae,
+ 0xf8, 0x9b, 0xa7, 0x90, 0x26, 0x94, 0x67, 0x23, 0x1b, 0x88, 0x0f, 0x01,
+ 0x87, 0x0a, 0x60, 0xc1, 0x26, 0x0c, 0x46, 0xe9,
+};
+static const unsigned char kat3489_nonce[] = {
+ 0xfc, 0x1e, 0x7f, 0xe0, 0x4c, 0x93, 0x53, 0xda, 0x29, 0xaa, 0x72, 0x44,
+ 0x50, 0xbd, 0x73, 0xeb,
+};
+static const unsigned char kat3489_persstr[] = {0};
+static const unsigned char kat3489_entropyinpr1[] = {
+ 0xc0, 0x02, 0x63, 0x36, 0x2d, 0x31, 0x57, 0x4b, 0x93, 0x6c, 0xab, 0x20,
+ 0x70, 0x59, 0x61, 0xf4, 0x8b, 0x94, 0x22, 0x4b, 0x41, 0x12, 0x07, 0x53,
+ 0x33, 0x86, 0x26, 0x8b, 0x0a, 0x69, 0x2f, 0x09,
+};
+static const unsigned char kat3489_addinpr1[] = {0};
+static const unsigned char kat3489_entropyinpr2[] = {
+ 0x35, 0xcd, 0x29, 0x3c, 0xf7, 0x82, 0x86, 0x32, 0x91, 0x71, 0xc9, 0x99,
+ 0x87, 0x84, 0x97, 0x20, 0xf4, 0x5d, 0xbb, 0x23, 0xe7, 0x9c, 0x60, 0xaa,
+ 0x5c, 0xbb, 0xbe, 0x3e, 0x12, 0xa9, 0x81, 0x9a,
+};
+static const unsigned char kat3489_addinpr2[] = {0};
+static const unsigned char kat3489_retbits[] = {
+ 0x30, 0x2b, 0x18, 0x41, 0x44, 0xe2, 0xea, 0x2b, 0x78, 0xf7, 0xf6, 0x6a,
+ 0x06, 0x8e, 0xf5, 0xd4, 0xd4, 0xe6, 0x12, 0x87, 0xea, 0x68, 0x75, 0xb0,
+ 0x06, 0xe8, 0xf5, 0x97, 0x26, 0x86, 0x9d, 0xe2, 0xd0, 0xb9, 0x23, 0x21,
+ 0x4c, 0x9c, 0x35, 0x2f, 0x07, 0x3c, 0x1f, 0x18, 0x3d, 0x97, 0x45, 0x75,
+ 0x05, 0xb8, 0x6f, 0x28, 0x33, 0xde, 0xb7, 0xbd, 0x75, 0xf4, 0x16, 0x8a,
+ 0x72, 0x7d, 0xdb, 0x8f,
+};
+static const struct drbg_kat_pr_true kat3489_t = {
+ 8, kat3489_entropyin, kat3489_nonce, kat3489_persstr,
+ kat3489_entropyinpr1, kat3489_addinpr1, kat3489_entropyinpr2,
+ kat3489_addinpr2, kat3489_retbits
+};
+static const struct drbg_kat kat3489 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3489_t
+};
+
+static const unsigned char kat3490_entropyin[] = {
+ 0x8b, 0x4a, 0xfd, 0xeb, 0xae, 0xa8, 0x19, 0x95, 0x4d, 0x4f, 0x14, 0x0f,
+ 0x86, 0xe0, 0x7c, 0x7f, 0x10, 0x6a, 0x07, 0x43, 0x59, 0x7a, 0x6c, 0xf3,
+ 0xc8, 0x8b, 0x82, 0xdb, 0xec, 0xc1, 0xab, 0xa8,
+};
+static const unsigned char kat3490_nonce[] = {
+ 0xd1, 0x52, 0x86, 0x69, 0x5a, 0x40, 0xd1, 0xe9, 0xd8, 0xda, 0xd1, 0x63,
+ 0xba, 0x9a, 0x88, 0xd0,
+};
+static const unsigned char kat3490_persstr[] = {0};
+static const unsigned char kat3490_entropyinpr1[] = {
+ 0xea, 0x9d, 0x32, 0x7d, 0x1a, 0x2f, 0xae, 0xf2, 0xc0, 0x91, 0x0a, 0xbf,
+ 0xc5, 0x57, 0xf0, 0x5f, 0x75, 0x79, 0xb0, 0xc4, 0xbf, 0x29, 0x38, 0x0e,
+ 0xed, 0x9e, 0x05, 0xf5, 0x27, 0xe4, 0xeb, 0x1f,
+};
+static const unsigned char kat3490_addinpr1[] = {0};
+static const unsigned char kat3490_entropyinpr2[] = {
+ 0x0e, 0xd6, 0x94, 0x4e, 0xac, 0xbc, 0x4a, 0x0b, 0x1e, 0x81, 0xc9, 0x5f,
+ 0x72, 0x00, 0xb2, 0x58, 0xaf, 0xb0, 0x4c, 0x5e, 0x43, 0x65, 0xab, 0x2e,
+ 0x92, 0x83, 0x3f, 0x8e, 0x0b, 0x4e, 0xeb, 0x2d,
+};
+static const unsigned char kat3490_addinpr2[] = {0};
+static const unsigned char kat3490_retbits[] = {
+ 0x67, 0xb7, 0xff, 0x78, 0x0b, 0x3b, 0xb1, 0x49, 0x8a, 0xca, 0x41, 0xbf,
+ 0xad, 0x29, 0x16, 0xa4, 0xff, 0x16, 0x29, 0xab, 0x6b, 0x9f, 0x80, 0x4f,
+ 0x45, 0xa9, 0xed, 0xda, 0xc9, 0xbe, 0x33, 0xd1, 0xc6, 0x74, 0x81, 0x46,
+ 0x5b, 0x1d, 0x75, 0xfe, 0x37, 0xc4, 0x2b, 0x92, 0xc6, 0xfb, 0xba, 0x14,
+ 0xe1, 0x8b, 0x0f, 0x39, 0x3a, 0x64, 0xb3, 0x85, 0x44, 0xef, 0xa0, 0x55,
+ 0xeb, 0xb6, 0x82, 0x19,
+};
+static const struct drbg_kat_pr_true kat3490_t = {
+ 9, kat3490_entropyin, kat3490_nonce, kat3490_persstr,
+ kat3490_entropyinpr1, kat3490_addinpr1, kat3490_entropyinpr2,
+ kat3490_addinpr2, kat3490_retbits
+};
+static const struct drbg_kat kat3490 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3490_t
+};
+
+static const unsigned char kat3491_entropyin[] = {
+ 0xc4, 0x3e, 0xff, 0xee, 0x50, 0x10, 0xe9, 0xd7, 0x1e, 0x44, 0x99, 0x38,
+ 0xc1, 0x61, 0x48, 0xd9, 0x7d, 0x5f, 0x67, 0xba, 0xb4, 0x21, 0x03, 0x2a,
+ 0xc6, 0x2d, 0x65, 0x51, 0x68, 0xe0, 0xc0, 0x55,
+};
+static const unsigned char kat3491_nonce[] = {
+ 0xa6, 0xb6, 0x95, 0xbb, 0xf8, 0xd2, 0xcc, 0x25, 0xfa, 0x4a, 0x0d, 0x71,
+ 0x0f, 0xbb, 0xc3, 0xbf,
+};
+static const unsigned char kat3491_persstr[] = {0};
+static const unsigned char kat3491_entropyinpr1[] = {
+ 0xa2, 0xc2, 0xa6, 0x0b, 0x9b, 0xe7, 0x43, 0x8d, 0x50, 0xe3, 0xb6, 0xbe,
+ 0xd8, 0xd3, 0x3f, 0xdd, 0xc2, 0xd5, 0xa2, 0xbc, 0x2f, 0xd2, 0x4f, 0x70,
+ 0x16, 0x50, 0xe4, 0xdc, 0x74, 0x0d, 0x5e, 0x7a,
+};
+static const unsigned char kat3491_addinpr1[] = {0};
+static const unsigned char kat3491_entropyinpr2[] = {
+ 0x21, 0x69, 0x71, 0xfc, 0x3b, 0x86, 0xf1, 0x93, 0x79, 0xfa, 0xb4, 0x62,
+ 0x8f, 0xe2, 0x57, 0xcf, 0x87, 0xd0, 0xaa, 0xc2, 0xca, 0xfd, 0x67, 0x7f,
+ 0xe2, 0x81, 0xdc, 0xd0, 0x08, 0x5d, 0x03, 0xfe,
+};
+static const unsigned char kat3491_addinpr2[] = {0};
+static const unsigned char kat3491_retbits[] = {
+ 0xad, 0xac, 0x58, 0xc5, 0x4e, 0x80, 0x54, 0x08, 0x6a, 0x4a, 0x73, 0x5d,
+ 0x54, 0x5e, 0xb2, 0xb8, 0x32, 0x37, 0xd5, 0x8f, 0x6e, 0xde, 0x02, 0xe7,
+ 0x25, 0x97, 0x45, 0x79, 0xef, 0x2c, 0x35, 0x50, 0x40, 0xf4, 0x55, 0x26,
+ 0xb6, 0x33, 0xb0, 0x22, 0x1c, 0xec, 0x3a, 0x0d, 0x26, 0x42, 0xa9, 0xa7,
+ 0xa6, 0x8f, 0xd5, 0x32, 0x35, 0x16, 0x84, 0xcd, 0x54, 0x46, 0xaa, 0x63,
+ 0x02, 0xe2, 0x2a, 0x02,
+};
+static const struct drbg_kat_pr_true kat3491_t = {
+ 10, kat3491_entropyin, kat3491_nonce, kat3491_persstr,
+ kat3491_entropyinpr1, kat3491_addinpr1, kat3491_entropyinpr2,
+ kat3491_addinpr2, kat3491_retbits
+};
+static const struct drbg_kat kat3491 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3491_t
+};
+
+static const unsigned char kat3492_entropyin[] = {
+ 0x24, 0xa0, 0xfc, 0xa3, 0xbe, 0xa7, 0xd1, 0x50, 0xf4, 0xd2, 0xd5, 0x8d,
+ 0xb4, 0x8c, 0x76, 0x86, 0xef, 0xdb, 0xa1, 0xfb, 0x74, 0xc4, 0xa7, 0x05,
+ 0xe3, 0xbe, 0x49, 0x06, 0x67, 0x0c, 0xcd, 0xcb,
+};
+static const unsigned char kat3492_nonce[] = {
+ 0xc9, 0xf3, 0x05, 0xef, 0x01, 0x24, 0x68, 0xa1, 0x19, 0xee, 0x4d, 0xa9,
+ 0x34, 0x53, 0x56, 0x76,
+};
+static const unsigned char kat3492_persstr[] = {0};
+static const unsigned char kat3492_entropyinpr1[] = {
+ 0x1a, 0xed, 0xf5, 0x3e, 0xbb, 0x77, 0xf5, 0xfc, 0x09, 0x57, 0xa2, 0xee,
+ 0x9b, 0xe1, 0x95, 0x7b, 0xc0, 0x0b, 0x34, 0x32, 0x25, 0x6b, 0xbc, 0xc9,
+ 0x24, 0x37, 0x46, 0xff, 0xbd, 0x01, 0x1b, 0x0e,
+};
+static const unsigned char kat3492_addinpr1[] = {0};
+static const unsigned char kat3492_entropyinpr2[] = {
+ 0xbd, 0x6f, 0xf8, 0x34, 0xa4, 0x2a, 0x6a, 0x7d, 0x0a, 0x89, 0x79, 0xb7,
+ 0x1a, 0x84, 0x9d, 0x14, 0xea, 0xe2, 0xf8, 0x6e, 0xf9, 0xa6, 0x58, 0x11,
+ 0x22, 0xfc, 0x91, 0x2f, 0xf5, 0x97, 0x45, 0x21,
+};
+static const unsigned char kat3492_addinpr2[] = {0};
+static const unsigned char kat3492_retbits[] = {
+ 0x38, 0x9d, 0xf3, 0xb3, 0x29, 0x9c, 0xfe, 0x4a, 0xa0, 0x72, 0xa8, 0x21,
+ 0xa0, 0x28, 0xd5, 0x65, 0x86, 0x4a, 0xf2, 0xd9, 0x2e, 0xfb, 0xcc, 0xee,
+ 0xb5, 0x09, 0x6f, 0xc2, 0x18, 0x72, 0x33, 0x4b, 0x7d, 0x14, 0x1a, 0xb8,
+ 0xb3, 0xf3, 0x9b, 0xb9, 0x00, 0x9c, 0x81, 0x38, 0xc4, 0xd4, 0x9f, 0xce,
+ 0xae, 0x82, 0xc7, 0x94, 0x9d, 0x6b, 0x6f, 0x43, 0x1f, 0xe0, 0xa5, 0x52,
+ 0xca, 0x22, 0x66, 0x8b,
+};
+static const struct drbg_kat_pr_true kat3492_t = {
+ 11, kat3492_entropyin, kat3492_nonce, kat3492_persstr,
+ kat3492_entropyinpr1, kat3492_addinpr1, kat3492_entropyinpr2,
+ kat3492_addinpr2, kat3492_retbits
+};
+static const struct drbg_kat kat3492 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3492_t
+};
+
+static const unsigned char kat3493_entropyin[] = {
+ 0xe4, 0xc9, 0xcb, 0x62, 0x9b, 0xe9, 0x86, 0x5c, 0x87, 0x22, 0xa0, 0xd4,
+ 0xd3, 0x09, 0xc6, 0x05, 0xa3, 0x57, 0x03, 0xa8, 0xcd, 0x93, 0x6a, 0xe8,
+ 0xcf, 0xbc, 0xc1, 0x53, 0x9c, 0x1b, 0xbf, 0x00,
+};
+static const unsigned char kat3493_nonce[] = {
+ 0x0f, 0xfe, 0x80, 0x46, 0x9c, 0xe0, 0x39, 0x77, 0xd8, 0x14, 0xd9, 0x18,
+ 0xf7, 0x68, 0x52, 0xd4,
+};
+static const unsigned char kat3493_persstr[] = {0};
+static const unsigned char kat3493_entropyinpr1[] = {
+ 0x26, 0xcf, 0x01, 0x01, 0x37, 0x82, 0x1c, 0xcc, 0x59, 0x57, 0x40, 0x54,
+ 0xe3, 0x16, 0x9b, 0x62, 0xed, 0x83, 0xc9, 0xda, 0x5c, 0xdf, 0xc0, 0xd4,
+ 0x99, 0x9a, 0xf9, 0x80, 0x3c, 0x30, 0x27, 0x7d,
+};
+static const unsigned char kat3493_addinpr1[] = {0};
+static const unsigned char kat3493_entropyinpr2[] = {
+ 0x00, 0x8b, 0x6f, 0xd3, 0xd1, 0xce, 0xba, 0x6a, 0xdd, 0xff, 0x19, 0xbd,
+ 0x53, 0x7b, 0x1b, 0x6b, 0x54, 0x93, 0x26, 0x5b, 0x05, 0x2b, 0xc2, 0xdd,
+ 0xd8, 0x03, 0x7b, 0x0b, 0xc0, 0x5d, 0xa1, 0xc6,
+};
+static const unsigned char kat3493_addinpr2[] = {0};
+static const unsigned char kat3493_retbits[] = {
+ 0x5e, 0x81, 0xdd, 0x07, 0x2d, 0x50, 0xc9, 0x05, 0x1c, 0x5b, 0xa3, 0x71,
+ 0x9e, 0xf5, 0x18, 0xc3, 0x42, 0xa7, 0x75, 0xc0, 0xfe, 0x3e, 0xa1, 0x45,
+ 0xba, 0xe1, 0xbc, 0x34, 0x52, 0xcd, 0xcf, 0xd8, 0x96, 0x4b, 0x9b, 0x92,
+ 0xaf, 0x68, 0x14, 0x20, 0x54, 0x78, 0xf5, 0xe4, 0x3e, 0xf9, 0xdc, 0xad,
+ 0xc1, 0x8e, 0x64, 0x09, 0x65, 0x39, 0x96, 0x49, 0x30, 0x44, 0x33, 0x17,
+ 0xa5, 0x92, 0x97, 0xa8,
+};
+static const struct drbg_kat_pr_true kat3493_t = {
+ 12, kat3493_entropyin, kat3493_nonce, kat3493_persstr,
+ kat3493_entropyinpr1, kat3493_addinpr1, kat3493_entropyinpr2,
+ kat3493_addinpr2, kat3493_retbits
+};
+static const struct drbg_kat kat3493 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3493_t
+};
+
+static const unsigned char kat3494_entropyin[] = {
+ 0x60, 0xda, 0x47, 0x3f, 0x8d, 0x81, 0xf0, 0x38, 0x46, 0xda, 0x88, 0x21,
+ 0xee, 0xee, 0x12, 0xe3, 0x1d, 0x5a, 0x98, 0x91, 0xf3, 0xb4, 0x5c, 0xcb,
+ 0x91, 0x21, 0x8a, 0xde, 0x47, 0x1e, 0xe3, 0x7d,
+};
+static const unsigned char kat3494_nonce[] = {
+ 0x79, 0x12, 0x79, 0x4f, 0x93, 0x78, 0xa9, 0x22, 0x5e, 0x59, 0x0e, 0x90,
+ 0x30, 0x1b, 0x56, 0x7d,
+};
+static const unsigned char kat3494_persstr[] = {0};
+static const unsigned char kat3494_entropyinpr1[] = {
+ 0xed, 0xb6, 0x8d, 0xa6, 0x7e, 0x65, 0x9e, 0x6f, 0x6e, 0xfe, 0x6e, 0x62,
+ 0x34, 0xac, 0x2a, 0xe0, 0xd9, 0x22, 0x3f, 0xc0, 0x54, 0x92, 0x04, 0x40,
+ 0x4a, 0xf4, 0xf9, 0x3c, 0x6f, 0x4d, 0x5d, 0xb3,
+};
+static const unsigned char kat3494_addinpr1[] = {0};
+static const unsigned char kat3494_entropyinpr2[] = {
+ 0x8c, 0xc0, 0x53, 0x6d, 0xc8, 0x3b, 0x53, 0x80, 0x74, 0xfc, 0x86, 0x40,
+ 0xad, 0x40, 0x6a, 0x0e, 0xbe, 0xe9, 0x57, 0x89, 0x86, 0xa7, 0x18, 0x7d,
+ 0x0a, 0xc2, 0x9f, 0x66, 0x1b, 0x36, 0xd2, 0xe3,
+};
+static const unsigned char kat3494_addinpr2[] = {0};
+static const unsigned char kat3494_retbits[] = {
+ 0xae, 0x34, 0x74, 0x28, 0x2b, 0x13, 0x2d, 0xe6, 0x5c, 0x73, 0x21, 0xc3,
+ 0xfd, 0x19, 0x42, 0x92, 0xd8, 0x1f, 0xa2, 0x1a, 0xb6, 0xd5, 0xf3, 0x43,
+ 0x43, 0xc2, 0xcc, 0xdc, 0x64, 0x63, 0x41, 0x1d, 0x18, 0x75, 0xb7, 0x70,
+ 0xdb, 0x7b, 0x95, 0x32, 0xa5, 0x1a, 0x2c, 0x35, 0xca, 0x9f, 0x61, 0xe1,
+ 0xb1, 0xec, 0xb6, 0x09, 0x35, 0x6b, 0x0a, 0xc7, 0xec, 0xf4, 0xc9, 0x35,
+ 0x21, 0x75, 0xb2, 0x4d,
+};
+static const struct drbg_kat_pr_true kat3494_t = {
+ 13, kat3494_entropyin, kat3494_nonce, kat3494_persstr,
+ kat3494_entropyinpr1, kat3494_addinpr1, kat3494_entropyinpr2,
+ kat3494_addinpr2, kat3494_retbits
+};
+static const struct drbg_kat kat3494 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3494_t
+};
+
+static const unsigned char kat3495_entropyin[] = {
+ 0x45, 0x1b, 0xe1, 0xbe, 0x4f, 0x13, 0xb1, 0xc5, 0xb7, 0xda, 0x81, 0x6b,
+ 0x15, 0x11, 0xbc, 0x5a, 0x31, 0x54, 0x81, 0x4c, 0x43, 0xd2, 0x42, 0x02,
+ 0x23, 0x91, 0xaf, 0xe4, 0xf2, 0x77, 0x85, 0x04,
+};
+static const unsigned char kat3495_nonce[] = {
+ 0x3d, 0x95, 0xfc, 0x04, 0xbe, 0x57, 0x2d, 0x0b, 0x82, 0xd6, 0x30, 0x86,
+ 0xab, 0x30, 0x0f, 0x55,
+};
+static const unsigned char kat3495_persstr[] = {0};
+static const unsigned char kat3495_entropyinpr1[] = {
+ 0x93, 0x61, 0x6f, 0x22, 0x63, 0xa2, 0x6c, 0x9f, 0x07, 0x31, 0x0e, 0x37,
+ 0xbc, 0x7e, 0x42, 0xd2, 0xf3, 0xa0, 0x76, 0xc4, 0xef, 0x7b, 0x84, 0xdf,
+ 0xf4, 0x0a, 0xba, 0xd0, 0x1f, 0xa1, 0xd8, 0xe3,
+};
+static const unsigned char kat3495_addinpr1[] = {0};
+static const unsigned char kat3495_entropyinpr2[] = {
+ 0x5b, 0x14, 0xf3, 0x8f, 0xeb, 0x74, 0x20, 0x63, 0xb9, 0x2f, 0x91, 0xc9,
+ 0x14, 0x04, 0x30, 0x00, 0x99, 0x77, 0x7a, 0x62, 0xd9, 0x42, 0x07, 0x3b,
+ 0x7a, 0xf1, 0x64, 0xd7, 0xdf, 0xc2, 0x1d, 0x11,
+};
+static const unsigned char kat3495_addinpr2[] = {0};
+static const unsigned char kat3495_retbits[] = {
+ 0x85, 0x2b, 0x40, 0x52, 0xd2, 0x61, 0xb2, 0xc4, 0xae, 0x3d, 0x95, 0x04,
+ 0x9e, 0x99, 0xa9, 0x34, 0xc8, 0xa9, 0xe8, 0x20, 0xd5, 0x7b, 0x4c, 0xcc,
+ 0x64, 0x03, 0x1c, 0x27, 0x16, 0xbe, 0xf8, 0x9c, 0xa0, 0xef, 0x89, 0x32,
+ 0x53, 0xb7, 0x37, 0x27, 0x12, 0xe7, 0xef, 0x10, 0xa3, 0x40, 0xdc, 0x5c,
+ 0x55, 0xf3, 0x44, 0x89, 0x5c, 0xf3, 0x48, 0x74, 0xb4, 0x2b, 0x42, 0xa1,
+ 0x1f, 0xab, 0xce, 0xec,
+};
+static const struct drbg_kat_pr_true kat3495_t = {
+ 14, kat3495_entropyin, kat3495_nonce, kat3495_persstr,
+ kat3495_entropyinpr1, kat3495_addinpr1, kat3495_entropyinpr2,
+ kat3495_addinpr2, kat3495_retbits
+};
+static const struct drbg_kat kat3495 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3495_t
+};
+
+static const unsigned char kat3496_entropyin[] = {
+ 0x3f, 0xd2, 0x17, 0x84, 0x6d, 0xa9, 0x87, 0x38, 0xb8, 0xed, 0x51, 0x9b,
+ 0x3d, 0x61, 0x5d, 0x8d, 0x0c, 0xd0, 0x06, 0xbe, 0x1f, 0x24, 0x87, 0x72,
+ 0x65, 0x53, 0x67, 0xcf, 0x0f, 0x65, 0xb1, 0x0f,
+};
+static const unsigned char kat3496_nonce[] = {
+ 0xeb, 0xaf, 0x09, 0xbb, 0x8b, 0xa3, 0x1e, 0xf9, 0xd8, 0x47, 0xae, 0x39,
+ 0xf8, 0x5d, 0x41, 0x50,
+};
+static const unsigned char kat3496_persstr[] = {0};
+static const unsigned char kat3496_entropyinpr1[] = {
+ 0x28, 0xf5, 0xbf, 0x9c, 0x27, 0xdf, 0xae, 0x18, 0x62, 0x0f, 0xbc, 0xe6,
+ 0xe8, 0x9b, 0xbe, 0x38, 0xad, 0xe3, 0x56, 0x1e, 0xb8, 0xc7, 0x8b, 0xd2,
+ 0x43, 0x50, 0x63, 0xad, 0xe5, 0x58, 0xc3, 0x5a,
+};
+static const unsigned char kat3496_addinpr1[] = {
+ 0xd8, 0xad, 0x85, 0x31, 0xf9, 0xb8, 0x8f, 0x5d, 0xcf, 0x9a, 0x6c, 0x4b,
+ 0x7d, 0x8e, 0x25, 0x78, 0x9b, 0x18, 0xb2, 0x9f, 0xd0, 0xac, 0x09, 0x7b,
+ 0x81, 0x91, 0x2e, 0x48, 0x56, 0x7b, 0x89, 0x2b,
+};
+static const unsigned char kat3496_entropyinpr2[] = {
+ 0xc4, 0x53, 0x86, 0x22, 0x01, 0x47, 0xe2, 0x28, 0x24, 0x2d, 0xfb, 0xea,
+ 0x60, 0x28, 0x40, 0xa7, 0x63, 0xaa, 0xb5, 0x90, 0x10, 0x9f, 0x1c, 0x25,
+ 0xec, 0x66, 0x1a, 0x10, 0xc7, 0x16, 0xb3, 0xff,
+};
+static const unsigned char kat3496_addinpr2[] = {
+ 0xfd, 0xd3, 0x3c, 0x05, 0x4d, 0xe2, 0x37, 0xd6, 0x44, 0x1b, 0x25, 0xfb,
+ 0xfc, 0xff, 0xb6, 0xbd, 0x29, 0xba, 0x5c, 0x5e, 0x02, 0xac, 0x01, 0x3c,
+ 0x91, 0x5a, 0x78, 0x70, 0x3e, 0xfa, 0x9d, 0x21,
+};
+static const unsigned char kat3496_retbits[] = {
+ 0x47, 0x68, 0x36, 0xf6, 0x9a, 0x21, 0xd1, 0x27, 0x23, 0xe9, 0x4e, 0x7c,
+ 0xaf, 0xb4, 0x86, 0xc0, 0x4c, 0x77, 0xd7, 0xe1, 0xb8, 0x7a, 0xde, 0x17,
+ 0xea, 0xdd, 0xdd, 0x90, 0x62, 0x94, 0x79, 0x15, 0x29, 0x76, 0xd4, 0xfe,
+ 0xf6, 0xdd, 0xd9, 0x36, 0x59, 0x8f, 0xba, 0xd2, 0x18, 0xf4, 0xad, 0x42,
+ 0x3b, 0x1e, 0xa2, 0x0b, 0xfd, 0xd9, 0x9b, 0xa8, 0xae, 0x5e, 0x31, 0x7c,
+ 0x6c, 0x2a, 0x2d, 0x1e,
+};
+static const struct drbg_kat_pr_true kat3496_t = {
+ 0, kat3496_entropyin, kat3496_nonce, kat3496_persstr,
+ kat3496_entropyinpr1, kat3496_addinpr1, kat3496_entropyinpr2,
+ kat3496_addinpr2, kat3496_retbits
+};
+static const struct drbg_kat kat3496 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3496_t
+};
+
+static const unsigned char kat3497_entropyin[] = {
+ 0xb7, 0xd8, 0x43, 0xdd, 0x24, 0x13, 0xc5, 0x81, 0x93, 0x01, 0x51, 0x22,
+ 0x21, 0xf4, 0x46, 0x77, 0x46, 0x92, 0xd1, 0xd4, 0xb7, 0x96, 0xa3, 0x0f,
+ 0x17, 0xdd, 0x18, 0x9f, 0x89, 0xe0, 0x2a, 0x24,
+};
+static const unsigned char kat3497_nonce[] = {
+ 0x13, 0x06, 0xb9, 0xe5, 0xc6, 0x4d, 0xe5, 0x12, 0x89, 0x2a, 0x3a, 0x4c,
+ 0x38, 0x05, 0xec, 0x25,
+};
+static const unsigned char kat3497_persstr[] = {0};
+static const unsigned char kat3497_entropyinpr1[] = {
+ 0x6a, 0xeb, 0x3e, 0x2c, 0x97, 0xbd, 0x4b, 0xc2, 0x04, 0x7e, 0x37, 0xdf,
+ 0x34, 0x3a, 0x1c, 0xf4, 0x05, 0x55, 0xe2, 0xde, 0xac, 0x1d, 0x04, 0xcf,
+ 0x71, 0x38, 0xe3, 0x5c, 0xce, 0x0d, 0x91, 0x8b,
+};
+static const unsigned char kat3497_addinpr1[] = {
+ 0xae, 0x61, 0xff, 0x8e, 0xf2, 0xcb, 0x4e, 0xaa, 0x48, 0x2c, 0x14, 0xe3,
+ 0xc4, 0x44, 0x9b, 0xc0, 0x1a, 0x85, 0x1a, 0xd0, 0xf0, 0xc3, 0xdb, 0x37,
+ 0x0a, 0x78, 0x15, 0xf7, 0xe8, 0x39, 0x82, 0x8c,
+};
+static const unsigned char kat3497_entropyinpr2[] = {
+ 0x3d, 0xab, 0x9e, 0xb8, 0x60, 0x33, 0x0c, 0x13, 0xd9, 0x45, 0xdd, 0xc0,
+ 0x85, 0x91, 0x91, 0x68, 0xc3, 0x78, 0x12, 0x55, 0x6d, 0x6f, 0x4d, 0x45,
+ 0x00, 0x8f, 0xd4, 0x75, 0x4e, 0xe8, 0xb3, 0x1c,
+};
+static const unsigned char kat3497_addinpr2[] = {
+ 0x9d, 0x97, 0x82, 0x32, 0x62, 0xd0, 0x0b, 0x1d, 0x91, 0x1f, 0x84, 0xfd,
+ 0xe9, 0xd4, 0xbe, 0x2b, 0xd9, 0x51, 0x87, 0x68, 0xce, 0xe6, 0x8a, 0xe1,
+ 0x1d, 0x7f, 0xb4, 0x87, 0x1b, 0x41, 0xe0, 0x9b,
+};
+static const unsigned char kat3497_retbits[] = {
+ 0xf0, 0xe0, 0x09, 0x16, 0x59, 0x7d, 0x11, 0x55, 0xbc, 0x72, 0x73, 0xd8,
+ 0xc2, 0xfa, 0xc6, 0x1b, 0x1d, 0xf9, 0xa5, 0xb0, 0x10, 0xae, 0x94, 0x35,
+ 0xc1, 0x4c, 0x13, 0x23, 0x94, 0xab, 0xd9, 0x84, 0x89, 0xb4, 0x39, 0x47,
+ 0xb1, 0xfa, 0xaa, 0xb5, 0xa3, 0x4a, 0xa0, 0xce, 0x2d, 0x9b, 0xc3, 0xc4,
+ 0x3b, 0x83, 0x4b, 0xde, 0x50, 0x5e, 0xd2, 0x35, 0xc9, 0x03, 0x76, 0xb8,
+ 0x58, 0x86, 0x7c, 0xa5,
+};
+static const struct drbg_kat_pr_true kat3497_t = {
+ 1, kat3497_entropyin, kat3497_nonce, kat3497_persstr,
+ kat3497_entropyinpr1, kat3497_addinpr1, kat3497_entropyinpr2,
+ kat3497_addinpr2, kat3497_retbits
+};
+static const struct drbg_kat kat3497 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3497_t
+};
+
+static const unsigned char kat3498_entropyin[] = {
+ 0x59, 0x60, 0x67, 0x43, 0xdd, 0xef, 0x2a, 0x03, 0xcc, 0xf6, 0x66, 0xef,
+ 0xd5, 0x4f, 0x25, 0xc4, 0xc3, 0xcc, 0x30, 0x4c, 0x35, 0xbb, 0x2a, 0x50,
+ 0xa2, 0x67, 0x4f, 0x3f, 0x84, 0xbd, 0xad, 0xd7,
+};
+static const unsigned char kat3498_nonce[] = {
+ 0x19, 0xc1, 0x84, 0x17, 0x4c, 0xb3, 0x60, 0xfe, 0x44, 0xf5, 0x39, 0xc3,
+ 0xd7, 0x49, 0x83, 0xe1,
+};
+static const unsigned char kat3498_persstr[] = {0};
+static const unsigned char kat3498_entropyinpr1[] = {
+ 0x37, 0x6c, 0x65, 0x9e, 0x38, 0x35, 0xac, 0x5b, 0x82, 0x75, 0x6b, 0x5e,
+ 0xa9, 0x59, 0xae, 0xbb, 0xa9, 0x71, 0x87, 0x77, 0x06, 0xc2, 0xf1, 0x78,
+ 0xcb, 0xcf, 0x6a, 0x65, 0x35, 0x14, 0x49, 0x80,
+};
+static const unsigned char kat3498_addinpr1[] = {
+ 0x4d, 0xeb, 0x16, 0x3e, 0x51, 0xe7, 0x49, 0x5d, 0x6a, 0x73, 0x5a, 0xdd,
+ 0x39, 0xb4, 0x61, 0xbb, 0x6c, 0xf4, 0xbb, 0xc5, 0x9d, 0xf5, 0xd9, 0x00,
+ 0x74, 0x45, 0x57, 0xff, 0xff, 0x34, 0xfd, 0xde,
+};
+static const unsigned char kat3498_entropyinpr2[] = {
+ 0xd2, 0xfc, 0x76, 0x52, 0x94, 0x89, 0xa2, 0xd6, 0xf2, 0xef, 0x1d, 0xa3,
+ 0x9b, 0x15, 0x0d, 0x54, 0x4c, 0x80, 0xc9, 0xd8, 0x10, 0xff, 0x37, 0x11,
+ 0xab, 0x26, 0x6e, 0xd8, 0xa0, 0xc3, 0xd3, 0xcb,
+};
+static const unsigned char kat3498_addinpr2[] = {
+ 0xf2, 0xfa, 0x6f, 0xd8, 0x89, 0x38, 0x36, 0x8f, 0x1e, 0x29, 0x90, 0x72,
+ 0xe1, 0x37, 0x9f, 0xe1, 0x33, 0x3c, 0x09, 0x1c, 0x80, 0x48, 0x75, 0xb0,
+ 0x53, 0xef, 0x62, 0x43, 0x74, 0x68, 0xef, 0x8a,
+};
+static const unsigned char kat3498_retbits[] = {
+ 0xd7, 0xcd, 0x8a, 0x0c, 0x7b, 0xc9, 0x9e, 0x4b, 0x91, 0x09, 0xa9, 0xc8,
+ 0x5e, 0xef, 0xcd, 0x1e, 0x49, 0x60, 0xde, 0xb1, 0xd3, 0x55, 0xe5, 0x73,
+ 0xe8, 0xb2, 0xaf, 0xeb, 0x0f, 0x7b, 0x11, 0x40, 0x3e, 0xff, 0x99, 0x2b,
+ 0xdf, 0xaf, 0x01, 0x6a, 0x45, 0xf8, 0x1b, 0xc9, 0xbe, 0x6b, 0x96, 0xc4,
+ 0x03, 0xc9, 0xf8, 0x34, 0x9b, 0x9a, 0xd7, 0xb5, 0x99, 0x9d, 0xdb, 0x13,
+ 0xde, 0x58, 0xfd, 0xd8,
+};
+static const struct drbg_kat_pr_true kat3498_t = {
+ 2, kat3498_entropyin, kat3498_nonce, kat3498_persstr,
+ kat3498_entropyinpr1, kat3498_addinpr1, kat3498_entropyinpr2,
+ kat3498_addinpr2, kat3498_retbits
+};
+static const struct drbg_kat kat3498 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3498_t
+};
+
+static const unsigned char kat3499_entropyin[] = {
+ 0x38, 0x9a, 0xce, 0x66, 0x98, 0x6a, 0x72, 0x8e, 0x0a, 0x42, 0x38, 0x88,
+ 0xe5, 0x63, 0xde, 0xa7, 0x8b, 0x9d, 0x54, 0x8d, 0x91, 0x8b, 0xfc, 0x29,
+ 0x98, 0xc2, 0xa7, 0x4c, 0x33, 0xd0, 0xf2, 0x05,
+};
+static const unsigned char kat3499_nonce[] = {
+ 0x6e, 0x0f, 0xa1, 0xd2, 0x53, 0xcf, 0x12, 0x7f, 0x69, 0xfc, 0x8f, 0x41,
+ 0x84, 0x1e, 0x54, 0x1a,
+};
+static const unsigned char kat3499_persstr[] = {0};
+static const unsigned char kat3499_entropyinpr1[] = {
+ 0x4b, 0x50, 0x60, 0x78, 0x6b, 0xe8, 0xbb, 0xd2, 0xdd, 0x0d, 0xd5, 0xca,
+ 0xc7, 0xcf, 0xac, 0x3e, 0x40, 0x86, 0x5f, 0xe0, 0xfd, 0x0a, 0xfd, 0xe8,
+ 0x0a, 0xad, 0x84, 0xab, 0x83, 0x79, 0x6e, 0x58,
+};
+static const unsigned char kat3499_addinpr1[] = {
+ 0x40, 0x0c, 0xe6, 0x2f, 0xa2, 0x27, 0x48, 0x90, 0xac, 0x2f, 0xb1, 0x88,
+ 0x97, 0x42, 0x2b, 0xbf, 0x80, 0xf6, 0x3f, 0x7a, 0x95, 0xf7, 0x0d, 0x1e,
+ 0xb6, 0xc3, 0x2d, 0x62, 0x61, 0x1e, 0xa9, 0x39,
+};
+static const unsigned char kat3499_entropyinpr2[] = {
+ 0xac, 0x31, 0x8b, 0x14, 0x2d, 0x87, 0x75, 0x5a, 0x8a, 0xd9, 0xbf, 0xd2,
+ 0xd4, 0x1d, 0x29, 0xaf, 0xa6, 0xc3, 0x98, 0xd1, 0x6f, 0xa9, 0xe5, 0x1e,
+ 0xe5, 0xb0, 0xea, 0x30, 0x12, 0xd9, 0x37, 0xc1,
+};
+static const unsigned char kat3499_addinpr2[] = {
+ 0xa5, 0x83, 0x4c, 0x14, 0x9c, 0x21, 0x81, 0x1c, 0xe1, 0x9f, 0x43, 0x53,
+ 0x53, 0x3f, 0xe6, 0x4b, 0x9a, 0xe4, 0xf3, 0x25, 0x74, 0x63, 0x98, 0xa5,
+ 0x4f, 0x46, 0x81, 0x85, 0xc0, 0xdf, 0x74, 0xc4,
+};
+static const unsigned char kat3499_retbits[] = {
+ 0x58, 0x49, 0x13, 0xf2, 0x8a, 0x9f, 0x51, 0x01, 0x8b, 0x6f, 0x82, 0xa2,
+ 0x6f, 0x3d, 0xb3, 0x40, 0x94, 0x11, 0x72, 0xf8, 0xbc, 0x08, 0x87, 0x8c,
+ 0x5c, 0xcb, 0xe1, 0xa7, 0xe8, 0xaf, 0x8b, 0xca, 0x64, 0x42, 0xbb, 0xd4,
+ 0xf0, 0x41, 0x2e, 0x5e, 0xed, 0x7f, 0xca, 0x5b, 0x0b, 0x4e, 0xc0, 0x5b,
+ 0xd1, 0x4a, 0xdf, 0x84, 0x9e, 0xd9, 0xc7, 0xe7, 0x18, 0xd2, 0xa8, 0x19,
+ 0x1d, 0x29, 0x4c, 0x24,
+};
+static const struct drbg_kat_pr_true kat3499_t = {
+ 3, kat3499_entropyin, kat3499_nonce, kat3499_persstr,
+ kat3499_entropyinpr1, kat3499_addinpr1, kat3499_entropyinpr2,
+ kat3499_addinpr2, kat3499_retbits
+};
+static const struct drbg_kat kat3499 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3499_t
+};
+
+static const unsigned char kat3500_entropyin[] = {
+ 0x22, 0x7c, 0x5a, 0xf1, 0x70, 0xc3, 0x37, 0xb2, 0x18, 0x62, 0x3b, 0xb6,
+ 0x6e, 0xa1, 0x70, 0xb4, 0xdd, 0xca, 0xb1, 0xcf, 0xa4, 0x6d, 0xf8, 0x86,
+ 0x53, 0xcd, 0x67, 0x06, 0x8b, 0xd0, 0x52, 0xbd,
+};
+static const unsigned char kat3500_nonce[] = {
+ 0x55, 0x91, 0x15, 0x8b, 0x53, 0x5b, 0x5d, 0xb2, 0x8d, 0x9f, 0xb4, 0xc4,
+ 0xa1, 0x14, 0xdc, 0x68,
+};
+static const unsigned char kat3500_persstr[] = {0};
+static const unsigned char kat3500_entropyinpr1[] = {
+ 0x5e, 0x4f, 0x91, 0x47, 0x90, 0xe7, 0x27, 0x31, 0xaa, 0x98, 0xc7, 0xcb,
+ 0xc9, 0xb1, 0xd2, 0x63, 0xfa, 0xea, 0xa5, 0x6f, 0xfa, 0xfe, 0xc5, 0x8d,
+ 0x44, 0x3e, 0xbf, 0x0c, 0xb3, 0x88, 0xf8, 0x39,
+};
+static const unsigned char kat3500_addinpr1[] = {
+ 0x14, 0x9d, 0x55, 0x86, 0x47, 0x8e, 0xb6, 0xbb, 0xe9, 0xbb, 0x00, 0x3a,
+ 0x6a, 0x49, 0x8a, 0x54, 0x09, 0x3a, 0xd6, 0x3d, 0x01, 0xd6, 0xe4, 0x6f,
+ 0x17, 0xd2, 0xa9, 0x54, 0x01, 0xb1, 0xec, 0x31,
+};
+static const unsigned char kat3500_entropyinpr2[] = {
+ 0x98, 0x62, 0xbe, 0xaa, 0x4a, 0x68, 0x56, 0x09, 0xdc, 0xe0, 0x28, 0x1a,
+ 0x0f, 0x9b, 0xa3, 0xbe, 0x89, 0xa3, 0x80, 0x52, 0x41, 0x19, 0xf8, 0xc3,
+ 0x9d, 0xae, 0xf8, 0xe8, 0x46, 0xb4, 0x0b, 0xec,
+};
+static const unsigned char kat3500_addinpr2[] = {
+ 0x13, 0xd6, 0x88, 0xf3, 0xad, 0x45, 0x74, 0xb9, 0x03, 0xf5, 0x6f, 0x65,
+ 0x70, 0x5d, 0xcc, 0x39, 0x10, 0x81, 0x15, 0x0c, 0xfd, 0x2e, 0xc7, 0x46,
+ 0x1f, 0xa1, 0xf8, 0xf5, 0xf6, 0x31, 0x9e, 0x60,
+};
+static const unsigned char kat3500_retbits[] = {
+ 0x64, 0x7c, 0x5f, 0xd3, 0x1a, 0xd0, 0xfd, 0xb2, 0x5c, 0x18, 0x81, 0x54,
+ 0x62, 0x23, 0xa0, 0x6d, 0x5e, 0xba, 0xb3, 0x8b, 0x18, 0x85, 0xb8, 0x4b,
+ 0x7e, 0x4d, 0x7c, 0x05, 0xee, 0x58, 0xa4, 0x48, 0xb4, 0x4e, 0x17, 0x81,
+ 0xeb, 0xee, 0x66, 0x43, 0x52, 0x9e, 0x92, 0xad, 0xb1, 0xb5, 0x78, 0xa9,
+ 0xb0, 0x30, 0xa9, 0x13, 0x24, 0x5c, 0x2c, 0xff, 0x23, 0xd9, 0x19, 0x6d,
+ 0x46, 0xff, 0x6d, 0xe1,
+};
+static const struct drbg_kat_pr_true kat3500_t = {
+ 4, kat3500_entropyin, kat3500_nonce, kat3500_persstr,
+ kat3500_entropyinpr1, kat3500_addinpr1, kat3500_entropyinpr2,
+ kat3500_addinpr2, kat3500_retbits
+};
+static const struct drbg_kat kat3500 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3500_t
+};
+
+static const unsigned char kat3501_entropyin[] = {
+ 0xb4, 0x94, 0x41, 0xb3, 0x78, 0x7f, 0x63, 0x1c, 0x26, 0x3e, 0xa2, 0x22,
+ 0x85, 0x17, 0x76, 0xf7, 0x0f, 0x69, 0x3a, 0xef, 0x18, 0xf5, 0x0a, 0x4b,
+ 0x5c, 0x43, 0x15, 0xdf, 0x3e, 0xdf, 0x9c, 0xda,
+};
+static const unsigned char kat3501_nonce[] = {
+ 0x73, 0xbd, 0x41, 0xc9, 0x29, 0x0a, 0x30, 0x5c, 0x66, 0xc6, 0x91, 0x21,
+ 0xf8, 0x2a, 0x13, 0x51,
+};
+static const unsigned char kat3501_persstr[] = {0};
+static const unsigned char kat3501_entropyinpr1[] = {
+ 0x09, 0x4a, 0x19, 0x24, 0x3b, 0x65, 0x1c, 0xf3, 0xcb, 0xe9, 0x81, 0xbd,
+ 0x3a, 0x73, 0xa8, 0x68, 0xae, 0xf6, 0xa9, 0xef, 0x24, 0xf1, 0x87, 0x56,
+ 0x22, 0x77, 0x2a, 0x18, 0x77, 0x21, 0xc0, 0x5f,
+};
+static const unsigned char kat3501_addinpr1[] = {
+ 0x49, 0x8f, 0xab, 0xf3, 0x09, 0x46, 0x1b, 0x64, 0xd8, 0x3e, 0x90, 0x6e,
+ 0x89, 0xf0, 0x3f, 0xff, 0x00, 0x40, 0x8f, 0x57, 0xb7, 0xd6, 0x4f, 0xff,
+ 0xc8, 0x8f, 0x5c, 0x50, 0xe5, 0x32, 0x5b, 0xc4,
+};
+static const unsigned char kat3501_entropyinpr2[] = {
+ 0xb1, 0xf3, 0x09, 0x15, 0x36, 0xa2, 0xf9, 0x32, 0x0a, 0x8d, 0x21, 0x4e,
+ 0x9e, 0xe0, 0x04, 0xd1, 0xa5, 0x00, 0x8c, 0x92, 0x80, 0x0a, 0xcf, 0xf5,
+ 0xa3, 0x60, 0xe6, 0x2c, 0x86, 0x62, 0x76, 0x74,
+};
+static const unsigned char kat3501_addinpr2[] = {
+ 0xbb, 0xf1, 0x46, 0xa1, 0x09, 0x5c, 0xcf, 0xf2, 0xb9, 0xd5, 0xd4, 0xb2,
+ 0x3b, 0x7f, 0xee, 0x42, 0x7d, 0x88, 0x0a, 0xdb, 0x2d, 0xbf, 0x2b, 0x4a,
+ 0xb3, 0x7b, 0x04, 0xfd, 0xe3, 0xab, 0x89, 0xcd,
+};
+static const unsigned char kat3501_retbits[] = {
+ 0xb0, 0x1c, 0x18, 0x59, 0x27, 0x8d, 0x47, 0x04, 0x7a, 0xf0, 0x40, 0x31,
+ 0x73, 0xb4, 0x2c, 0xe7, 0x86, 0xb3, 0xa7, 0x2a, 0x29, 0xfe, 0x65, 0x20,
+ 0x84, 0x2b, 0x8a, 0x1e, 0x5d, 0xbb, 0xc6, 0x05, 0x04, 0x2b, 0x04, 0xd6,
+ 0xe6, 0xba, 0xed, 0x0a, 0x49, 0xe8, 0x27, 0xf4, 0x03, 0xfb, 0x98, 0xc4,
+ 0x5b, 0x5a, 0x71, 0xfa, 0x6d, 0x72, 0x12, 0xff, 0x63, 0xfe, 0x8e, 0x46,
+ 0xdf, 0xf6, 0x4c, 0xca,
+};
+static const struct drbg_kat_pr_true kat3501_t = {
+ 5, kat3501_entropyin, kat3501_nonce, kat3501_persstr,
+ kat3501_entropyinpr1, kat3501_addinpr1, kat3501_entropyinpr2,
+ kat3501_addinpr2, kat3501_retbits
+};
+static const struct drbg_kat kat3501 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3501_t
+};
+
+static const unsigned char kat3502_entropyin[] = {
+ 0xd8, 0x3f, 0x97, 0x95, 0x5d, 0x70, 0xe2, 0xb5, 0x6e, 0x55, 0xca, 0x23,
+ 0x1b, 0x56, 0x9e, 0xd2, 0x45, 0x8a, 0x9f, 0xd3, 0xbc, 0x69, 0x64, 0x4b,
+ 0x8a, 0x08, 0x93, 0xd2, 0x90, 0x0a, 0x84, 0xf1,
+};
+static const unsigned char kat3502_nonce[] = {
+ 0x92, 0x5b, 0xaa, 0xa7, 0x1f, 0x4b, 0x50, 0x4b, 0xf8, 0x72, 0x59, 0x0e,
+ 0xd8, 0x80, 0x7f, 0x31,
+};
+static const unsigned char kat3502_persstr[] = {0};
+static const unsigned char kat3502_entropyinpr1[] = {
+ 0x69, 0x9e, 0x2e, 0x39, 0xae, 0x7a, 0xc4, 0x34, 0x36, 0x79, 0x0f, 0xad,
+ 0x95, 0x84, 0x5f, 0x43, 0x44, 0xb8, 0xb3, 0xf6, 0x42, 0x1d, 0xa2, 0x67,
+ 0x82, 0xd6, 0xfd, 0x57, 0x42, 0xf5, 0x23, 0x00,
+};
+static const unsigned char kat3502_addinpr1[] = {
+ 0x11, 0x4d, 0xc9, 0x9a, 0x93, 0x85, 0x54, 0x54, 0xf8, 0x28, 0x4d, 0x2b,
+ 0x54, 0x4b, 0xc8, 0x3d, 0x19, 0x13, 0xb1, 0x86, 0x98, 0x92, 0x24, 0x72,
+ 0x59, 0x35, 0xc7, 0x1a, 0xf7, 0x7e, 0x8a, 0x75,
+};
+static const unsigned char kat3502_entropyinpr2[] = {
+ 0x06, 0x03, 0x0e, 0x98, 0xfe, 0x7b, 0xd5, 0x6d, 0xa3, 0x58, 0xdb, 0x6b,
+ 0x99, 0x35, 0x90, 0x6d, 0xe1, 0x68, 0x6f, 0xb7, 0x3b, 0x57, 0x00, 0xbf,
+ 0x10, 0xcd, 0x3c, 0x63, 0x57, 0x48, 0x25, 0x00,
+};
+static const unsigned char kat3502_addinpr2[] = {
+ 0xdb, 0x02, 0xfe, 0x02, 0xf7, 0xf2, 0xb6, 0x88, 0x4e, 0x64, 0x00, 0xe3,
+ 0xea, 0xc5, 0xa7, 0x4f, 0x61, 0x4d, 0x66, 0xd1, 0x07, 0xec, 0x4b, 0x30,
+ 0x7a, 0x2c, 0x86, 0xe6, 0xaa, 0xee, 0x8f, 0xa4,
+};
+static const unsigned char kat3502_retbits[] = {
+ 0xb1, 0x55, 0xbd, 0xab, 0xf3, 0x0f, 0xe2, 0x84, 0xbb, 0x94, 0x6a, 0xe7,
+ 0x94, 0xa7, 0xa6, 0xb0, 0xb7, 0x79, 0x6e, 0x05, 0xcb, 0xc5, 0xe5, 0xb8,
+ 0x22, 0xdb, 0xd1, 0xd1, 0xbf, 0x57, 0x60, 0x2f, 0x44, 0xb6, 0x14, 0x6e,
+ 0x52, 0x9d, 0x40, 0xc0, 0x1b, 0x32, 0xa1, 0x00, 0xca, 0x53, 0x5b, 0xbf,
+ 0x83, 0xe5, 0x1a, 0x4d, 0x6b, 0x5b, 0x43, 0xb3, 0xc1, 0xb0, 0x47, 0x37,
+ 0x6c, 0x7d, 0x00, 0x90,
+};
+static const struct drbg_kat_pr_true kat3502_t = {
+ 6, kat3502_entropyin, kat3502_nonce, kat3502_persstr,
+ kat3502_entropyinpr1, kat3502_addinpr1, kat3502_entropyinpr2,
+ kat3502_addinpr2, kat3502_retbits
+};
+static const struct drbg_kat kat3502 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3502_t
+};
+
+static const unsigned char kat3503_entropyin[] = {
+ 0x43, 0xe9, 0x55, 0xd2, 0xf0, 0x8f, 0x18, 0x24, 0x66, 0x5c, 0xfd, 0x02,
+ 0x86, 0x8e, 0xc9, 0xdb, 0x4c, 0x04, 0x16, 0xfa, 0xf7, 0xf3, 0x7b, 0xaf,
+ 0x09, 0x6e, 0x0e, 0x0c, 0xb3, 0x0d, 0x38, 0xda,
+};
+static const unsigned char kat3503_nonce[] = {
+ 0x6c, 0x97, 0x9a, 0xa0, 0x9b, 0xb6, 0x49, 0xa5, 0x55, 0xb5, 0x2a, 0xea,
+ 0xb8, 0xc4, 0x77, 0x01,
+};
+static const unsigned char kat3503_persstr[] = {0};
+static const unsigned char kat3503_entropyinpr1[] = {
+ 0x93, 0xa2, 0x23, 0x8b, 0x5d, 0x53, 0xd5, 0x1f, 0x0f, 0xbf, 0x8b, 0x00,
+ 0x0c, 0x8b, 0xd2, 0xa1, 0x7f, 0x1b, 0xed, 0xe3, 0x39, 0xe9, 0xdb, 0xb0,
+ 0x09, 0xd0, 0xfa, 0x20, 0x32, 0xea, 0x5e, 0x3f,
+};
+static const unsigned char kat3503_addinpr1[] = {
+ 0xfe, 0x3f, 0x7c, 0x1b, 0x41, 0x6f, 0xcf, 0x86, 0x43, 0x4f, 0xc4, 0x37,
+ 0x79, 0x3c, 0xbd, 0x57, 0x25, 0xa3, 0x11, 0x59, 0x98, 0x65, 0x5d, 0xbd,
+ 0xf7, 0x6a, 0x26, 0x44, 0x2f, 0xb8, 0xd4, 0xd6,
+};
+static const unsigned char kat3503_entropyinpr2[] = {
+ 0x43, 0x7a, 0xd5, 0x15, 0x84, 0xd1, 0xda, 0x7f, 0x8d, 0x19, 0x5f, 0x20,
+ 0xd0, 0x5d, 0xa5, 0x16, 0xcf, 0x4e, 0x7e, 0xd7, 0xa2, 0x68, 0x0e, 0x39,
+ 0x2e, 0xb7, 0xb5, 0x47, 0xb0, 0xb1, 0x9d, 0xcb,
+};
+static const unsigned char kat3503_addinpr2[] = {
+ 0x58, 0x3f, 0x79, 0x96, 0x15, 0x61, 0x90, 0xe0, 0xeb, 0x27, 0x86, 0x4b,
+ 0xd4, 0xf2, 0x4d, 0x09, 0x98, 0x46, 0xc4, 0x7d, 0x97, 0x2e, 0xe2, 0x89,
+ 0x82, 0xd5, 0xfa, 0x04, 0x4f, 0x74, 0x9d, 0x6d,
+};
+static const unsigned char kat3503_retbits[] = {
+ 0x99, 0xf7, 0xaa, 0x5b, 0x62, 0x07, 0x0b, 0xf1, 0xc4, 0x30, 0x2c, 0x20,
+ 0x7c, 0xe8, 0x63, 0x2d, 0x18, 0x10, 0x65, 0x0e, 0x1f, 0x3c, 0x79, 0x3e,
+ 0xa3, 0xd8, 0x1d, 0x4a, 0xa7, 0x13, 0x47, 0x12, 0x5e, 0x76, 0x2e, 0xd4,
+ 0x54, 0xb6, 0x23, 0xe7, 0x5d, 0xb4, 0x55, 0x89, 0x0e, 0x2d, 0xc8, 0x51,
+ 0x16, 0xfc, 0xff, 0xfa, 0x6c, 0x3a, 0x21, 0x60, 0xdb, 0x97, 0x65, 0x50,
+ 0xe2, 0x18, 0x22, 0xca,
+};
+static const struct drbg_kat_pr_true kat3503_t = {
+ 7, kat3503_entropyin, kat3503_nonce, kat3503_persstr,
+ kat3503_entropyinpr1, kat3503_addinpr1, kat3503_entropyinpr2,
+ kat3503_addinpr2, kat3503_retbits
+};
+static const struct drbg_kat kat3503 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3503_t
+};
+
+static const unsigned char kat3504_entropyin[] = {
+ 0x7c, 0xc0, 0x77, 0x3c, 0x7e, 0xba, 0xe7, 0x47, 0x76, 0xec, 0x58, 0x54,
+ 0x21, 0x38, 0xf4, 0x90, 0x7e, 0x20, 0xc0, 0x88, 0x92, 0x27, 0xfc, 0xba,
+ 0xef, 0xcc, 0x29, 0x71, 0xa8, 0xc3, 0xbf, 0x75,
+};
+static const unsigned char kat3504_nonce[] = {
+ 0xdf, 0xc5, 0xb7, 0xac, 0xde, 0x00, 0xee, 0x0d, 0xb3, 0x48, 0x4d, 0x27,
+ 0xab, 0xd1, 0x8d, 0x1d,
+};
+static const unsigned char kat3504_persstr[] = {0};
+static const unsigned char kat3504_entropyinpr1[] = {
+ 0xe9, 0x2d, 0xa5, 0x38, 0x1b, 0x16, 0x38, 0x74, 0x74, 0xf7, 0xb2, 0xd2,
+ 0xb5, 0x76, 0x7d, 0xde, 0x76, 0xa8, 0x36, 0xb1, 0x0f, 0xe5, 0x4c, 0x29,
+ 0x78, 0x90, 0xe6, 0x7b, 0xe9, 0x2e, 0x71, 0x7f,
+};
+static const unsigned char kat3504_addinpr1[] = {
+ 0xad, 0x78, 0xd1, 0xac, 0xd8, 0x75, 0x83, 0x84, 0xee, 0xf4, 0xb7, 0xad,
+ 0x48, 0xaa, 0x54, 0x68, 0xd5, 0xf9, 0x77, 0x7f, 0x4f, 0x4f, 0xaf, 0x3b,
+ 0x44, 0x83, 0xaa, 0x67, 0x8e, 0x7a, 0xfa, 0x83,
+};
+static const unsigned char kat3504_entropyinpr2[] = {
+ 0x2a, 0x0c, 0x8b, 0xdd, 0x54, 0x31, 0x96, 0xdf, 0x25, 0xde, 0x9d, 0xe6,
+ 0x29, 0x91, 0xfb, 0xc7, 0xfa, 0x67, 0x52, 0x3a, 0x2b, 0x97, 0x39, 0xd7,
+ 0x60, 0xbc, 0xbd, 0x6d, 0xfc, 0xdb, 0xbd, 0x4d,
+};
+static const unsigned char kat3504_addinpr2[] = {
+ 0xf5, 0x73, 0xab, 0x82, 0xe7, 0xbf, 0x38, 0xfe, 0xe9, 0x7b, 0x06, 0x9d,
+ 0x83, 0x34, 0x98, 0xcc, 0x29, 0x92, 0xb0, 0xaa, 0x16, 0xd6, 0x2a, 0x6a,
+ 0xd1, 0xf4, 0x93, 0x31, 0xbc, 0xbb, 0x68, 0x52,
+};
+static const unsigned char kat3504_retbits[] = {
+ 0xac, 0x73, 0x54, 0xfb, 0x97, 0xe0, 0x9e, 0x2f, 0x5d, 0x29, 0x89, 0xe5,
+ 0x14, 0xf6, 0xe3, 0xcb, 0x83, 0xfc, 0xef, 0x4d, 0x76, 0x50, 0x2c, 0x9f,
+ 0xaa, 0x85, 0x19, 0x28, 0x88, 0x74, 0x49, 0xdb, 0x45, 0xf9, 0x01, 0x88,
+ 0x33, 0x24, 0x47, 0x21, 0x43, 0xd5, 0x71, 0xbb, 0xd4, 0xea, 0x72, 0xa7,
+ 0x1f, 0xc7, 0x01, 0x35, 0xde, 0x63, 0xe6, 0x81, 0x5a, 0x35, 0x36, 0x18,
+ 0x9b, 0x9f, 0x92, 0x3a,
+};
+static const struct drbg_kat_pr_true kat3504_t = {
+ 8, kat3504_entropyin, kat3504_nonce, kat3504_persstr,
+ kat3504_entropyinpr1, kat3504_addinpr1, kat3504_entropyinpr2,
+ kat3504_addinpr2, kat3504_retbits
+};
+static const struct drbg_kat kat3504 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3504_t
+};
+
+static const unsigned char kat3505_entropyin[] = {
+ 0x44, 0x04, 0x48, 0x14, 0x99, 0x19, 0x90, 0xde, 0xbc, 0x84, 0x27, 0x63,
+ 0xe2, 0x92, 0xce, 0x36, 0x77, 0x95, 0x1c, 0x50, 0x92, 0x85, 0xf0, 0x9e,
+ 0xfe, 0x03, 0x99, 0xcf, 0x1b, 0x35, 0xa7, 0xd5,
+};
+static const unsigned char kat3505_nonce[] = {
+ 0x5b, 0xfa, 0x9c, 0x26, 0x05, 0xbe, 0x64, 0x69, 0xc0, 0x5e, 0x30, 0xc7,
+ 0xa4, 0x91, 0xdc, 0xd3,
+};
+static const unsigned char kat3505_persstr[] = {0};
+static const unsigned char kat3505_entropyinpr1[] = {
+ 0x04, 0x26, 0xc1, 0x42, 0xe2, 0xd5, 0x99, 0x1f, 0xab, 0x81, 0x1d, 0x11,
+ 0xcf, 0xcc, 0xe2, 0xa3, 0x4b, 0xf4, 0xad, 0x86, 0x81, 0xb7, 0x09, 0x53,
+ 0xc6, 0x77, 0x47, 0x64, 0xe6, 0xf0, 0x9d, 0xeb,
+};
+static const unsigned char kat3505_addinpr1[] = {
+ 0xa1, 0xf7, 0xff, 0x3d, 0x0a, 0xf6, 0xe3, 0x04, 0x37, 0x2c, 0xa3, 0xdf,
+ 0xb8, 0x97, 0x19, 0x45, 0x9c, 0xc4, 0xd0, 0x3a, 0x25, 0x79, 0x43, 0x9d,
+ 0xf3, 0x87, 0xd3, 0xc8, 0xe7, 0xa1, 0xfc, 0x6b,
+};
+static const unsigned char kat3505_entropyinpr2[] = {
+ 0xf4, 0xee, 0x6f, 0x0e, 0xb5, 0x7d, 0xd9, 0xf2, 0xa6, 0x8d, 0x7f, 0xea,
+ 0x38, 0xf3, 0x9f, 0xe5, 0x36, 0x58, 0x0e, 0x09, 0xe2, 0x56, 0x5a, 0x1d,
+ 0xc9, 0x72, 0xd3, 0x8b, 0x9d, 0xf1, 0xa5, 0xa9,
+};
+static const unsigned char kat3505_addinpr2[] = {
+ 0x95, 0xf4, 0x6b, 0x9d, 0x49, 0xc5, 0xa6, 0x5c, 0xd9, 0x91, 0xb6, 0xb7,
+ 0xbe, 0xde, 0xcc, 0x51, 0x5c, 0x73, 0x8a, 0x1a, 0x4f, 0x07, 0x89, 0x1b,
+ 0x18, 0x2b, 0x06, 0x93, 0xd7, 0x8d, 0x21, 0x96,
+};
+static const unsigned char kat3505_retbits[] = {
+ 0x30, 0xc2, 0x73, 0x78, 0x12, 0xc4, 0xfc, 0xbe, 0x24, 0x5c, 0xa7, 0x29,
+ 0x2e, 0x44, 0xbe, 0xf1, 0x77, 0xf6, 0x04, 0x83, 0x20, 0xb9, 0xe1, 0x1f,
+ 0xae, 0xcb, 0x1d, 0xdf, 0xdb, 0x6d, 0x6d, 0xeb, 0xa0, 0x94, 0xf3, 0xdb,
+ 0x49, 0x7d, 0xed, 0xef, 0xa1, 0xa9, 0x3f, 0x41, 0xc9, 0xab, 0xa7, 0x10,
+ 0x9f, 0x75, 0xcd, 0x7b, 0x26, 0xac, 0x21, 0xdf, 0xe2, 0x74, 0xec, 0xb7,
+ 0xb9, 0x7f, 0x9a, 0x7c,
+};
+static const struct drbg_kat_pr_true kat3505_t = {
+ 9, kat3505_entropyin, kat3505_nonce, kat3505_persstr,
+ kat3505_entropyinpr1, kat3505_addinpr1, kat3505_entropyinpr2,
+ kat3505_addinpr2, kat3505_retbits
+};
+static const struct drbg_kat kat3505 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3505_t
+};
+
+static const unsigned char kat3506_entropyin[] = {
+ 0x26, 0x54, 0xb8, 0x39, 0xa1, 0xec, 0xdf, 0x06, 0x10, 0xaa, 0x87, 0x65,
+ 0x0b, 0xe8, 0x10, 0x5a, 0x3c, 0xdc, 0xdd, 0xe0, 0x4d, 0x77, 0x39, 0x6e,
+ 0x77, 0xb3, 0xd5, 0x8e, 0xce, 0x7c, 0x91, 0x77,
+};
+static const unsigned char kat3506_nonce[] = {
+ 0xc0, 0x02, 0xf7, 0x46, 0xdb, 0xae, 0xd3, 0xae, 0x5b, 0xb6, 0xc0, 0xad,
+ 0xc2, 0x34, 0x7d, 0x49,
+};
+static const unsigned char kat3506_persstr[] = {0};
+static const unsigned char kat3506_entropyinpr1[] = {
+ 0x2a, 0x16, 0xa5, 0xf0, 0x17, 0x60, 0x53, 0x13, 0x93, 0x39, 0x8a, 0x9c,
+ 0xda, 0x89, 0xbc, 0xe8, 0x2a, 0x0a, 0x76, 0x1f, 0xb3, 0x20, 0x3f, 0xd1,
+ 0x07, 0x77, 0xd3, 0x95, 0x45, 0x83, 0x0a, 0xbd,
+};
+static const unsigned char kat3506_addinpr1[] = {
+ 0x0a, 0x8f, 0x6f, 0x3f, 0x24, 0x92, 0xca, 0x87, 0x83, 0xef, 0x9e, 0x49,
+ 0xb6, 0x0a, 0xbd, 0xb5, 0x47, 0x9e, 0xe4, 0x45, 0x55, 0x36, 0xe6, 0x5b,
+ 0x18, 0x99, 0xd7, 0x50, 0x25, 0xb2, 0x2e, 0x47,
+};
+static const unsigned char kat3506_entropyinpr2[] = {
+ 0x84, 0x28, 0xff, 0x87, 0x82, 0x88, 0x83, 0x0f, 0x9f, 0x4d, 0xf3, 0xb9,
+ 0xa4, 0x24, 0x19, 0x1c, 0xcd, 0xd6, 0x18, 0xc8, 0x73, 0xb7, 0x1e, 0x8a,
+ 0xa6, 0x57, 0xd1, 0x30, 0xd4, 0x1b, 0x46, 0x8b,
+};
+static const unsigned char kat3506_addinpr2[] = {
+ 0x75, 0xd3, 0x55, 0x2a, 0xe3, 0x5d, 0x1d, 0xa4, 0xda, 0x77, 0xb7, 0xd7,
+ 0x40, 0x3c, 0x0b, 0x30, 0xc1, 0x9e, 0x13, 0xaa, 0x25, 0xe2, 0x59, 0xdc,
+ 0x04, 0x4b, 0x3f, 0x1d, 0x1b, 0xe7, 0x68, 0x3b,
+};
+static const unsigned char kat3506_retbits[] = {
+ 0x23, 0x28, 0x0c, 0x43, 0x29, 0x52, 0x4e, 0xe7, 0x7d, 0x6a, 0xe8, 0xfa,
+ 0x6e, 0x37, 0x7f, 0xff, 0x35, 0x0d, 0xf4, 0xf5, 0xf5, 0xb7, 0xa0, 0x17,
+ 0xd9, 0xbe, 0x3d, 0x24, 0x6e, 0x6b, 0x37, 0x02, 0x6c, 0xdd, 0xa2, 0x3e,
+ 0x8e, 0x51, 0x7c, 0x95, 0x4d, 0xa6, 0x92, 0x8b, 0x94, 0x7a, 0x21, 0x28,
+ 0x0d, 0xaa, 0x9e, 0x35, 0xf6, 0x9f, 0x41, 0x68, 0x6b, 0xe5, 0x66, 0x26,
+ 0x76, 0x6c, 0x6f, 0x0d,
+};
+static const struct drbg_kat_pr_true kat3506_t = {
+ 10, kat3506_entropyin, kat3506_nonce, kat3506_persstr,
+ kat3506_entropyinpr1, kat3506_addinpr1, kat3506_entropyinpr2,
+ kat3506_addinpr2, kat3506_retbits
+};
+static const struct drbg_kat kat3506 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3506_t
+};
+
+static const unsigned char kat3507_entropyin[] = {
+ 0x49, 0xe5, 0x48, 0x72, 0xbc, 0x61, 0xde, 0x4e, 0xc9, 0x4d, 0xff, 0xf9,
+ 0xd6, 0xfe, 0x51, 0x07, 0xe2, 0x6b, 0xc3, 0x80, 0xf6, 0x8b, 0x63, 0xbb,
+ 0x2a, 0x86, 0x5b, 0x99, 0xc3, 0x2a, 0x18, 0x23,
+};
+static const unsigned char kat3507_nonce[] = {
+ 0x61, 0x63, 0xb0, 0xa2, 0x4c, 0xa5, 0xfc, 0xb3, 0x6c, 0xcc, 0xd6, 0xae,
+ 0xfc, 0xf2, 0x03, 0x85,
+};
+static const unsigned char kat3507_persstr[] = {0};
+static const unsigned char kat3507_entropyinpr1[] = {
+ 0xc8, 0x1b, 0x37, 0x3f, 0x7e, 0x2f, 0x92, 0x98, 0xf3, 0x4f, 0xce, 0xf2,
+ 0x8c, 0x9d, 0xd6, 0x21, 0x08, 0xa5, 0x9c, 0xad, 0x6d, 0xbb, 0x4b, 0x3f,
+ 0x99, 0x3c, 0xe0, 0x87, 0x52, 0xc1, 0xf1, 0x7a,
+};
+static const unsigned char kat3507_addinpr1[] = {
+ 0x38, 0xde, 0x6a, 0x0a, 0xe5, 0x89, 0x34, 0x67, 0x6b, 0x3b, 0xeb, 0xd3,
+ 0x35, 0xcf, 0x8a, 0xec, 0x6c, 0x25, 0xb9, 0xce, 0x70, 0x92, 0x72, 0xaf,
+ 0xb7, 0x7f, 0xd2, 0x92, 0x57, 0x98, 0x60, 0xb2,
+};
+static const unsigned char kat3507_entropyinpr2[] = {
+ 0x72, 0xcf, 0x78, 0xc3, 0xe4, 0xce, 0x36, 0x2e, 0xe7, 0x1c, 0x5d, 0xbb,
+ 0xba, 0xfe, 0x1a, 0x6b, 0xdb, 0x80, 0xdb, 0x2f, 0x40, 0x3d, 0x28, 0xee,
+ 0x65, 0x3a, 0x64, 0xea, 0x09, 0x2c, 0xdd, 0xf3,
+};
+static const unsigned char kat3507_addinpr2[] = {
+ 0xc2, 0xb7, 0x79, 0x4a, 0xee, 0xdd, 0xe6, 0x71, 0xc5, 0x3d, 0x8c, 0x39,
+ 0x08, 0xdb, 0x48, 0xc3, 0x07, 0x16, 0x7c, 0x0e, 0x41, 0xfa, 0x10, 0x7d,
+ 0xe8, 0x21, 0x7b, 0x66, 0x04, 0xef, 0x10, 0x44,
+};
+static const unsigned char kat3507_retbits[] = {
+ 0x9a, 0xaf, 0x64, 0xed, 0x5d, 0x02, 0xa6, 0x5f, 0x95, 0x3c, 0x17, 0x26,
+ 0x87, 0x5f, 0x5a, 0x0e, 0x33, 0x91, 0xf9, 0x57, 0xeb, 0x44, 0x31, 0xe9,
+ 0x19, 0x88, 0x6c, 0xb5, 0xbd, 0x9f, 0x3e, 0x41, 0xaa, 0xc8, 0x2c, 0x7f,
+ 0x3c, 0x01, 0x4d, 0x40, 0x44, 0x35, 0x7d, 0x95, 0xc8, 0xdb, 0xc2, 0x3a,
+ 0xcb, 0xa0, 0x19, 0x5a, 0x9a, 0x97, 0xf4, 0x64, 0x1e, 0x7a, 0xf2, 0x4f,
+ 0x98, 0xb9, 0x8a, 0x3d,
+};
+static const struct drbg_kat_pr_true kat3507_t = {
+ 11, kat3507_entropyin, kat3507_nonce, kat3507_persstr,
+ kat3507_entropyinpr1, kat3507_addinpr1, kat3507_entropyinpr2,
+ kat3507_addinpr2, kat3507_retbits
+};
+static const struct drbg_kat kat3507 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3507_t
+};
+
+static const unsigned char kat3508_entropyin[] = {
+ 0x43, 0x30, 0x59, 0x31, 0x6b, 0xb9, 0x12, 0x75, 0x00, 0x42, 0x78, 0x99,
+ 0x35, 0x69, 0x88, 0xda, 0xea, 0xc1, 0xc4, 0x2e, 0x82, 0xdc, 0xff, 0x63,
+ 0xcf, 0xf0, 0x0c, 0x1f, 0x7e, 0x7b, 0xef, 0xd4,
+};
+static const unsigned char kat3508_nonce[] = {
+ 0xe8, 0xf3, 0xbd, 0x99, 0x41, 0x81, 0x6a, 0x87, 0x20, 0x9f, 0x64, 0x66,
+ 0xcc, 0xc3, 0x3e, 0x58,
+};
+static const unsigned char kat3508_persstr[] = {0};
+static const unsigned char kat3508_entropyinpr1[] = {
+ 0xcc, 0x4d, 0x1a, 0x1d, 0x78, 0xb3, 0x38, 0x8e, 0xbf, 0x9f, 0x63, 0xb5,
+ 0xb1, 0x02, 0x02, 0x25, 0xe9, 0xf4, 0x0f, 0x59, 0xe1, 0x56, 0xf3, 0xab,
+ 0xcb, 0xd2, 0x6a, 0xb8, 0x8b, 0xf9, 0x2b, 0x0d,
+};
+static const unsigned char kat3508_addinpr1[] = {
+ 0xd3, 0x18, 0xd7, 0xc9, 0x14, 0xee, 0xce, 0x67, 0xb5, 0x1d, 0x93, 0x88,
+ 0x04, 0xab, 0x9b, 0x80, 0x11, 0x2d, 0xbf, 0xa9, 0xf2, 0xad, 0x1b, 0xb6,
+ 0x1b, 0xaf, 0x7d, 0x72, 0xfc, 0x91, 0xb0, 0xc0,
+};
+static const unsigned char kat3508_entropyinpr2[] = {
+ 0x5f, 0x0c, 0xa0, 0xd5, 0x92, 0x06, 0x23, 0x64, 0xbd, 0x38, 0x1b, 0xb0,
+ 0x29, 0xbd, 0xf1, 0xab, 0xba, 0x71, 0x2c, 0xd0, 0xe7, 0xc7, 0xb2, 0x7c,
+ 0x6c, 0xf7, 0xff, 0x2f, 0xc6, 0x34, 0x1c, 0x22,
+};
+static const unsigned char kat3508_addinpr2[] = {
+ 0xd8, 0x2d, 0x08, 0x11, 0x6e, 0xd3, 0x0e, 0x92, 0x51, 0x6b, 0xb2, 0x16,
+ 0x04, 0x5f, 0xc1, 0x07, 0x9c, 0xb4, 0x2a, 0xb1, 0x01, 0xd7, 0xac, 0x46,
+ 0xab, 0x41, 0xb0, 0x19, 0xe2, 0x68, 0xbb, 0xbb,
+};
+static const unsigned char kat3508_retbits[] = {
+ 0xe1, 0xbf, 0x5e, 0x50, 0x24, 0x56, 0x29, 0x48, 0x04, 0x49, 0x2d, 0x5d,
+ 0xf4, 0x94, 0x92, 0x11, 0x15, 0x94, 0x6b, 0x33, 0x16, 0xe7, 0xf8, 0x00,
+ 0x6e, 0x84, 0xd3, 0xfc, 0x1d, 0xd9, 0x12, 0x26, 0xd8, 0x2b, 0x47, 0x71,
+ 0x07, 0x14, 0x08, 0xba, 0x8b, 0xa9, 0xcf, 0xff, 0x19, 0x2c, 0xc6, 0x27,
+ 0x72, 0x36, 0x8e, 0x37, 0x4a, 0xfd, 0x2d, 0xa6, 0x6f, 0xf6, 0xa4, 0x32,
+ 0x17, 0xdd, 0x13, 0xf4,
+};
+static const struct drbg_kat_pr_true kat3508_t = {
+ 12, kat3508_entropyin, kat3508_nonce, kat3508_persstr,
+ kat3508_entropyinpr1, kat3508_addinpr1, kat3508_entropyinpr2,
+ kat3508_addinpr2, kat3508_retbits
+};
+static const struct drbg_kat kat3508 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3508_t
+};
+
+static const unsigned char kat3509_entropyin[] = {
+ 0x0c, 0xc0, 0x43, 0x35, 0x34, 0x20, 0x5f, 0xef, 0x1d, 0x5b, 0x3a, 0x4f,
+ 0x54, 0xbe, 0x5f, 0xe8, 0x08, 0x38, 0x98, 0xb8, 0x15, 0xeb, 0x43, 0x77,
+ 0xa1, 0x20, 0x82, 0xee, 0x12, 0x93, 0x87, 0x22,
+};
+static const unsigned char kat3509_nonce[] = {
+ 0xd7, 0xb5, 0x78, 0xf0, 0x32, 0x2d, 0x93, 0xc1, 0x15, 0x2d, 0x3a, 0x13,
+ 0xcd, 0xa7, 0xbb, 0xbe,
+};
+static const unsigned char kat3509_persstr[] = {0};
+static const unsigned char kat3509_entropyinpr1[] = {
+ 0x66, 0x85, 0x31, 0x7b, 0x0f, 0x9a, 0x41, 0xc5, 0x8d, 0x30, 0x80, 0x7c,
+ 0x0b, 0x6a, 0xdd, 0x9f, 0x7f, 0x1a, 0xda, 0xb6, 0xd6, 0x1f, 0x43, 0x21,
+ 0x55, 0x54, 0xd0, 0x44, 0x22, 0x0a, 0x80, 0xb1,
+};
+static const unsigned char kat3509_addinpr1[] = {
+ 0xc7, 0xa9, 0x05, 0x1f, 0xd8, 0x35, 0x55, 0xce, 0xa8, 0x4d, 0x08, 0xa6,
+ 0xb6, 0x3d, 0xdd, 0x2c, 0xb1, 0x18, 0x51, 0xbf, 0x73, 0x6b, 0xcb, 0x19,
+ 0x81, 0xca, 0xc1, 0x20, 0x7f, 0xe3, 0x92, 0xf5,
+};
+static const unsigned char kat3509_entropyinpr2[] = {
+ 0xff, 0xa2, 0xa8, 0x0d, 0xcb, 0x6f, 0xe4, 0x51, 0x0f, 0x47, 0xa2, 0xac,
+ 0xdc, 0x60, 0x76, 0x65, 0x3b, 0xb6, 0x52, 0xf8, 0x4b, 0xd1, 0xc3, 0x90,
+ 0x97, 0x9a, 0xb9, 0x59, 0xd0, 0x55, 0x84, 0x5d,
+};
+static const unsigned char kat3509_addinpr2[] = {
+ 0x22, 0xe0, 0xe4, 0xaa, 0x94, 0x51, 0xf9, 0x5b, 0xcd, 0x19, 0x27, 0x06,
+ 0xcc, 0xc7, 0x0a, 0x1d, 0x71, 0x02, 0x9f, 0x49, 0x4e, 0x46, 0xcd, 0x5b,
+ 0xbe, 0x39, 0x60, 0x9c, 0x17, 0x9d, 0xe9, 0x60,
+};
+static const unsigned char kat3509_retbits[] = {
+ 0x53, 0x18, 0xc0, 0x7a, 0xfe, 0x58, 0xbf, 0x84, 0x9c, 0x3d, 0xe4, 0xe1,
+ 0xfa, 0x14, 0x57, 0xc7, 0x27, 0x2a, 0x1e, 0xe9, 0x43, 0x05, 0xc5, 0xcd,
+ 0x9f, 0x82, 0xf1, 0x69, 0x1a, 0xe9, 0xc6, 0xd3, 0x52, 0x61, 0xbb, 0xbb,
+ 0xd5, 0x29, 0x86, 0x6a, 0x65, 0xef, 0xdd, 0x58, 0x95, 0x79, 0x90, 0x38,
+ 0x0a, 0x73, 0xfd, 0x77, 0x8b, 0xbc, 0x19, 0x0e, 0x23, 0xc1, 0xc8, 0x91,
+ 0x27, 0x1c, 0xd6, 0xda,
+};
+static const struct drbg_kat_pr_true kat3509_t = {
+ 13, kat3509_entropyin, kat3509_nonce, kat3509_persstr,
+ kat3509_entropyinpr1, kat3509_addinpr1, kat3509_entropyinpr2,
+ kat3509_addinpr2, kat3509_retbits
+};
+static const struct drbg_kat kat3509 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3509_t
+};
+
+static const unsigned char kat3510_entropyin[] = {
+ 0xec, 0x13, 0x4d, 0x60, 0xe8, 0xa1, 0x5f, 0xfa, 0xca, 0xd5, 0x53, 0x3e,
+ 0xc1, 0x29, 0x04, 0x60, 0x23, 0xea, 0xf6, 0x61, 0x1a, 0x0b, 0x0c, 0xe5,
+ 0x40, 0xb3, 0xe1, 0xd2, 0x54, 0x5b, 0xea, 0x39,
+};
+static const unsigned char kat3510_nonce[] = {
+ 0xf9, 0xbc, 0x86, 0x24, 0xd7, 0xe7, 0x3c, 0xb7, 0xef, 0x3c, 0x4a, 0x9b,
+ 0x33, 0x9e, 0x57, 0x08,
+};
+static const unsigned char kat3510_persstr[] = {0};
+static const unsigned char kat3510_entropyinpr1[] = {
+ 0x39, 0x52, 0x19, 0xc4, 0x01, 0xf9, 0x54, 0xa4, 0xcd, 0x04, 0xaf, 0x85,
+ 0x2e, 0x08, 0xc2, 0xab, 0xd8, 0x15, 0x2e, 0xe5, 0xf8, 0xc9, 0x15, 0xe1,
+ 0x0a, 0x5f, 0x2e, 0x22, 0xb9, 0xff, 0x1f, 0x92,
+};
+static const unsigned char kat3510_addinpr1[] = {
+ 0x39, 0x43, 0x3c, 0xe8, 0x53, 0xe8, 0xdd, 0xcd, 0x14, 0x78, 0x5f, 0xf2,
+ 0x26, 0x79, 0xe0, 0xe5, 0x6f, 0xf9, 0x53, 0xb7, 0xf4, 0x67, 0x07, 0xd0,
+ 0x15, 0x88, 0x05, 0xe3, 0xcd, 0x87, 0xd3, 0xf7,
+};
+static const unsigned char kat3510_entropyinpr2[] = {
+ 0x6d, 0x30, 0x35, 0xdf, 0xaf, 0xd8, 0x55, 0x4e, 0xc9, 0xa6, 0x29, 0xf3,
+ 0x86, 0x1c, 0xf2, 0x2b, 0x6b, 0x49, 0xae, 0x32, 0x63, 0x78, 0xf0, 0xf7,
+ 0x1a, 0xb3, 0xc0, 0x04, 0xe7, 0xbc, 0x89, 0x52,
+};
+static const unsigned char kat3510_addinpr2[] = {
+ 0xa4, 0xc4, 0x4e, 0x43, 0x7d, 0x0d, 0xfb, 0xb3, 0x09, 0x7f, 0x26, 0x68,
+ 0xc8, 0x73, 0x52, 0xff, 0xa0, 0x2e, 0xf4, 0x5a, 0xae, 0x12, 0x34, 0x80,
+ 0x08, 0x61, 0x2f, 0x33, 0x7d, 0x8e, 0xda, 0xe2,
+};
+static const unsigned char kat3510_retbits[] = {
+ 0x69, 0x24, 0xb5, 0x58, 0x78, 0x13, 0x44, 0xb2, 0xb8, 0x37, 0xea, 0x46,
+ 0x76, 0x71, 0xa0, 0x7f, 0xfa, 0xe3, 0xb4, 0x23, 0x2d, 0x01, 0xd0, 0x4d,
+ 0x34, 0x7b, 0x6a, 0xa2, 0xfe, 0x60, 0xf6, 0xfa, 0x83, 0xd9, 0x63, 0x4e,
+ 0xe0, 0xa0, 0x94, 0x65, 0x9c, 0x70, 0x9b, 0x10, 0x02, 0x74, 0x9a, 0x67,
+ 0x27, 0xde, 0xce, 0x8a, 0x2c, 0x1a, 0x49, 0xd4, 0x3f, 0x19, 0xc2, 0x35,
+ 0x66, 0x8a, 0x64, 0x29,
+};
+static const struct drbg_kat_pr_true kat3510_t = {
+ 14, kat3510_entropyin, kat3510_nonce, kat3510_persstr,
+ kat3510_entropyinpr1, kat3510_addinpr1, kat3510_entropyinpr2,
+ kat3510_addinpr2, kat3510_retbits
+};
+static const struct drbg_kat kat3510 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3510_t
+};
+
+static const unsigned char kat3511_entropyin[] = {
+ 0x72, 0x94, 0x93, 0x0b, 0x69, 0xbe, 0x88, 0xe5, 0x78, 0xba, 0x26, 0xc6,
+ 0x0e, 0x25, 0xd7, 0x46, 0x22, 0xbf, 0x58, 0x46, 0x7d, 0xff, 0x7b, 0xc7,
+ 0x54, 0x7d, 0x4f, 0x3d, 0x62, 0x59, 0x29, 0x89,
+};
+static const unsigned char kat3511_nonce[] = {
+ 0x3d, 0x16, 0xc6, 0x68, 0x2a, 0x9f, 0xcd, 0xea, 0xc6, 0x67, 0xd8, 0xb2,
+ 0x0b, 0x95, 0x42, 0x99,
+};
+static const unsigned char kat3511_persstr[] = {
+ 0xc8, 0x61, 0x20, 0x45, 0x07, 0x6c, 0x47, 0x3f, 0x45, 0x79, 0x3f, 0x47,
+ 0xa5, 0xac, 0x6f, 0x9c, 0x31, 0xcc, 0xe9, 0xc2, 0x57, 0x0d, 0x64, 0x53,
+ 0xa9, 0x6e, 0x45, 0x9f, 0xb5, 0xb6, 0xf1, 0x4b,
+};
+static const unsigned char kat3511_entropyinpr1[] = {
+ 0x7a, 0xce, 0xff, 0x8b, 0x42, 0x1c, 0xc1, 0xb8, 0xb5, 0x21, 0x5d, 0x9f,
+ 0x7f, 0x6e, 0x8f, 0xf7, 0x05, 0x25, 0xc1, 0xc3, 0x30, 0x5f, 0xe1, 0x84,
+ 0x71, 0xac, 0xb0, 0xfd, 0xb6, 0xc7, 0x62, 0x78,
+};
+static const unsigned char kat3511_addinpr1[] = {0};
+static const unsigned char kat3511_entropyinpr2[] = {
+ 0x3e, 0xf0, 0x31, 0x6b, 0xc2, 0xfc, 0xe7, 0xde, 0xb4, 0x70, 0x28, 0xfa,
+ 0x13, 0x9f, 0x39, 0x7f, 0xf4, 0x92, 0xda, 0x25, 0x6f, 0x20, 0xd8, 0x91,
+ 0xde, 0x59, 0xe3, 0x4e, 0x2a, 0xb8, 0x22, 0x3d,
+};
+static const unsigned char kat3511_addinpr2[] = {0};
+static const unsigned char kat3511_retbits[] = {
+ 0x98, 0xb3, 0x7b, 0x5b, 0xc1, 0xf6, 0x73, 0xf3, 0x55, 0xec, 0x12, 0x72,
+ 0x94, 0x59, 0x22, 0xb0, 0x88, 0xea, 0x57, 0x79, 0x20, 0x89, 0x06, 0x1f,
+ 0x97, 0xe7, 0x36, 0xc3, 0xc2, 0xa3, 0xac, 0xe0, 0x4d, 0x72, 0x55, 0xc1,
+ 0xf1, 0xad, 0x3a, 0x94, 0x78, 0x6c, 0x5d, 0x8c, 0x9a, 0x10, 0xc0, 0xf8,
+ 0xd7, 0x4c, 0x18, 0x8a, 0x35, 0x44, 0xe9, 0x7f, 0x06, 0xe4, 0x0a, 0x96,
+ 0xa5, 0xa9, 0x4a, 0x12,
+};
+static const struct drbg_kat_pr_true kat3511_t = {
+ 0, kat3511_entropyin, kat3511_nonce, kat3511_persstr,
+ kat3511_entropyinpr1, kat3511_addinpr1, kat3511_entropyinpr2,
+ kat3511_addinpr2, kat3511_retbits
+};
+static const struct drbg_kat kat3511 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3511_t
+};
+
+static const unsigned char kat3512_entropyin[] = {
+ 0xd9, 0x61, 0x2d, 0x03, 0x38, 0xe6, 0xb5, 0x42, 0xb6, 0x85, 0x9c, 0x1c,
+ 0x67, 0xe0, 0xee, 0x13, 0x65, 0x92, 0x36, 0x47, 0x9e, 0x57, 0xe3, 0x0c,
+ 0xd5, 0xec, 0x15, 0x59, 0x64, 0x51, 0x69, 0x46,
+};
+static const unsigned char kat3512_nonce[] = {
+ 0xf1, 0xaa, 0xc2, 0x95, 0xd4, 0xc1, 0xd8, 0xe5, 0xe0, 0xd3, 0xcf, 0xfe,
+ 0xd7, 0xd8, 0x17, 0xc4,
+};
+static const unsigned char kat3512_persstr[] = {
+ 0x75, 0x3f, 0x6c, 0xcf, 0x97, 0xb0, 0x22, 0x50, 0x64, 0x15, 0x65, 0x88,
+ 0x1f, 0x86, 0xb1, 0xff, 0xde, 0x54, 0x5e, 0x9c, 0x19, 0x25, 0x32, 0x98,
+ 0x31, 0x9c, 0x0e, 0x2a, 0xa1, 0x5a, 0xa3, 0xa3,
+};
+static const unsigned char kat3512_entropyinpr1[] = {
+ 0xc7, 0x7b, 0xe5, 0x59, 0xf2, 0x7e, 0xfb, 0x38, 0x49, 0x3f, 0x88, 0x3b,
+ 0x87, 0xc7, 0xb6, 0xd1, 0x8f, 0x17, 0x2e, 0x67, 0x83, 0x87, 0xca, 0xec,
+ 0xf6, 0x04, 0xfa, 0x02, 0xda, 0xe0, 0xca, 0xe4,
+};
+static const unsigned char kat3512_addinpr1[] = {0};
+static const unsigned char kat3512_entropyinpr2[] = {
+ 0x8d, 0x83, 0x7e, 0x74, 0xc5, 0x11, 0xc2, 0x7a, 0x55, 0x60, 0xd2, 0x80,
+ 0x66, 0x1f, 0x98, 0x63, 0x63, 0x15, 0xc2, 0xb8, 0x55, 0x00, 0x04, 0x54,
+ 0xf6, 0xb7, 0xd9, 0xca, 0xa1, 0x7c, 0x4c, 0x54,
+};
+static const unsigned char kat3512_addinpr2[] = {0};
+static const unsigned char kat3512_retbits[] = {
+ 0xdd, 0xa9, 0x9d, 0xaa, 0x33, 0x67, 0x76, 0x39, 0x3d, 0xdf, 0xe9, 0x85,
+ 0x5d, 0xb2, 0x13, 0x4f, 0xf5, 0x3a, 0x70, 0x9f, 0xce, 0x9c, 0x22, 0x9b,
+ 0xe7, 0x68, 0xdb, 0x0c, 0x15, 0xce, 0x17, 0x6f, 0xbc, 0x6c, 0x9c, 0x7b,
+ 0xe0, 0xd9, 0xe0, 0xbf, 0x36, 0x2b, 0xef, 0x33, 0x9e, 0x12, 0x5d, 0x2f,
+ 0x55, 0xf1, 0x15, 0xcd, 0x64, 0x17, 0xe9, 0x94, 0x04, 0x60, 0x21, 0x32,
+ 0xcb, 0x22, 0xa2, 0x6a,
+};
+static const struct drbg_kat_pr_true kat3512_t = {
+ 1, kat3512_entropyin, kat3512_nonce, kat3512_persstr,
+ kat3512_entropyinpr1, kat3512_addinpr1, kat3512_entropyinpr2,
+ kat3512_addinpr2, kat3512_retbits
+};
+static const struct drbg_kat kat3512 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3512_t
+};
+
+static const unsigned char kat3513_entropyin[] = {
+ 0xf0, 0x1a, 0x75, 0x07, 0xa7, 0x1f, 0x34, 0xb4, 0xf8, 0x58, 0x99, 0xb3,
+ 0x1a, 0xcb, 0xcd, 0x62, 0x11, 0xa0, 0xe9, 0xc9, 0x41, 0x7c, 0xa5, 0xca,
+ 0xac, 0x0e, 0x18, 0xbc, 0x9f, 0x65, 0x5c, 0x0c,
+};
+static const unsigned char kat3513_nonce[] = {
+ 0xa6, 0x0a, 0x10, 0x8c, 0xe5, 0xe2, 0x3e, 0x0a, 0x2e, 0xbe, 0xf1, 0xb6,
+ 0x7f, 0xcc, 0xbe, 0x54,
+};
+static const unsigned char kat3513_persstr[] = {
+ 0x53, 0x36, 0xa4, 0xb9, 0xdd, 0x7e, 0x2d, 0xa6, 0x43, 0x9a, 0xf0, 0x08,
+ 0x61, 0x1a, 0x1c, 0x55, 0xcd, 0x12, 0x60, 0x40, 0x77, 0x6b, 0x16, 0xd5,
+ 0x61, 0xae, 0xf0, 0x25, 0xf1, 0x25, 0x34, 0x23,
+};
+static const unsigned char kat3513_entropyinpr1[] = {
+ 0x67, 0x7e, 0xc5, 0xb8, 0x00, 0xb5, 0xd3, 0xcb, 0xca, 0x40, 0xb9, 0x0e,
+ 0xbf, 0x26, 0xbf, 0xfc, 0xc5, 0xc2, 0xb7, 0xd5, 0x6b, 0x14, 0xb7, 0x77,
+ 0x93, 0x01, 0x68, 0xa4, 0x5e, 0xb0, 0xf6, 0x8c,
+};
+static const unsigned char kat3513_addinpr1[] = {0};
+static const unsigned char kat3513_entropyinpr2[] = {
+ 0x86, 0xee, 0x44, 0xb2, 0x17, 0xcd, 0x80, 0x80, 0x78, 0x75, 0x9e, 0x9f,
+ 0xd2, 0xfc, 0x08, 0x26, 0xd9, 0x56, 0x5a, 0x78, 0x9a, 0xa9, 0xd1, 0x69,
+ 0xac, 0x84, 0x3c, 0x13, 0x5f, 0xe9, 0xb5, 0xcf,
+};
+static const unsigned char kat3513_addinpr2[] = {0};
+static const unsigned char kat3513_retbits[] = {
+ 0xf1, 0x8b, 0x06, 0x88, 0xdd, 0x8e, 0xf9, 0x06, 0xf5, 0x3f, 0x71, 0xb6,
+ 0x69, 0x8c, 0x64, 0x4c, 0x66, 0xf0, 0x21, 0xf3, 0x5b, 0x64, 0x64, 0x94,
+ 0x7a, 0x5b, 0x70, 0xf3, 0x46, 0xce, 0x43, 0xa0, 0xa6, 0xab, 0xd3, 0xa1,
+ 0x34, 0x98, 0xc4, 0x05, 0x4c, 0x01, 0x40, 0x67, 0x3d, 0x0a, 0xe5, 0x41,
+ 0x82, 0x5a, 0xe0, 0x48, 0x7a, 0xbf, 0xaf, 0x34, 0x6d, 0x5f, 0xf1, 0xa2,
+ 0xe1, 0x81, 0xea, 0x97,
+};
+static const struct drbg_kat_pr_true kat3513_t = {
+ 2, kat3513_entropyin, kat3513_nonce, kat3513_persstr,
+ kat3513_entropyinpr1, kat3513_addinpr1, kat3513_entropyinpr2,
+ kat3513_addinpr2, kat3513_retbits
+};
+static const struct drbg_kat kat3513 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3513_t
+};
+
+static const unsigned char kat3514_entropyin[] = {
+ 0x6a, 0xa3, 0x8b, 0x18, 0xe8, 0x1e, 0xbd, 0x7e, 0x2e, 0x37, 0x7d, 0x05,
+ 0x80, 0xc9, 0x35, 0xed, 0xe4, 0x23, 0xf4, 0x08, 0x6a, 0x01, 0xec, 0xcd,
+ 0xab, 0x16, 0xb8, 0x22, 0xab, 0x7c, 0x3d, 0x19,
+};
+static const unsigned char kat3514_nonce[] = {
+ 0x3b, 0xc4, 0xd6, 0x59, 0xf5, 0xfe, 0x11, 0x30, 0x68, 0x41, 0xfb, 0x98,
+ 0x73, 0x65, 0xa6, 0x04,
+};
+static const unsigned char kat3514_persstr[] = {
+ 0x5b, 0x20, 0xbd, 0xd3, 0xa7, 0x29, 0xb9, 0x92, 0xf5, 0x10, 0x30, 0x60,
+ 0xbe, 0x19, 0xed, 0xd3, 0x5b, 0xed, 0x62, 0xf2, 0xa6, 0x99, 0x80, 0xc4,
+ 0x0d, 0x02, 0x06, 0x59, 0x56, 0xda, 0x42, 0xee,
+};
+static const unsigned char kat3514_entropyinpr1[] = {
+ 0x12, 0x0c, 0xd8, 0x66, 0xb3, 0x56, 0x7c, 0x00, 0x4d, 0xd3, 0x3e, 0xd4,
+ 0x2d, 0x16, 0x0a, 0x7f, 0x43, 0x37, 0xba, 0x08, 0xa2, 0x3b, 0xdf, 0x0e,
+ 0x71, 0xde, 0x2b, 0xc9, 0x1c, 0x1d, 0x19, 0x1c,
+};
+static const unsigned char kat3514_addinpr1[] = {0};
+static const unsigned char kat3514_entropyinpr2[] = {
+ 0x25, 0x82, 0x32, 0x2d, 0x64, 0x85, 0x1c, 0xf1, 0x92, 0xf6, 0x84, 0xc1,
+ 0xca, 0x8e, 0x71, 0xff, 0xa5, 0x96, 0x4f, 0x7d, 0xe5, 0xd5, 0xf8, 0xbb,
+ 0x45, 0x6d, 0x12, 0xdd, 0xe7, 0x4f, 0x18, 0xd2,
+};
+static const unsigned char kat3514_addinpr2[] = {0};
+static const unsigned char kat3514_retbits[] = {
+ 0xeb, 0x00, 0x92, 0x4b, 0x44, 0xc7, 0x7e, 0x97, 0x2a, 0x13, 0xdb, 0xc2,
+ 0x07, 0x4e, 0x4d, 0x33, 0xac, 0xf3, 0x86, 0xe7, 0xb0, 0x6a, 0x64, 0x6d,
+ 0x74, 0x72, 0xc3, 0xb6, 0xa2, 0x46, 0x66, 0x2b, 0x8a, 0xe2, 0x4f, 0xe0,
+ 0x47, 0x08, 0xa3, 0xad, 0xda, 0x1b, 0xfb, 0x8e, 0x63, 0x0e, 0x00, 0xb1,
+ 0x76, 0x85, 0x14, 0xbf, 0x48, 0x0a, 0x25, 0xa5, 0xae, 0x9b, 0x32, 0x4e,
+ 0x8e, 0x32, 0x85, 0x43,
+};
+static const struct drbg_kat_pr_true kat3514_t = {
+ 3, kat3514_entropyin, kat3514_nonce, kat3514_persstr,
+ kat3514_entropyinpr1, kat3514_addinpr1, kat3514_entropyinpr2,
+ kat3514_addinpr2, kat3514_retbits
+};
+static const struct drbg_kat kat3514 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3514_t
+};
+
+static const unsigned char kat3515_entropyin[] = {
+ 0xf5, 0x11, 0x84, 0xa5, 0x92, 0x4d, 0x02, 0xc6, 0x45, 0xa0, 0xaf, 0x17,
+ 0xee, 0x9d, 0x76, 0x82, 0xb9, 0xae, 0xc2, 0x95, 0x20, 0x91, 0x5e, 0x53,
+ 0xc8, 0x5e, 0x58, 0xc2, 0xd6, 0xed, 0x68, 0x01,
+};
+static const unsigned char kat3515_nonce[] = {
+ 0xce, 0x8c, 0x81, 0x01, 0x47, 0xc5, 0x64, 0x99, 0x91, 0xed, 0x10, 0x1b,
+ 0x7a, 0x93, 0x69, 0x13,
+};
+static const unsigned char kat3515_persstr[] = {
+ 0xe3, 0x9b, 0xd7, 0xfb, 0x6a, 0xba, 0x16, 0x46, 0x2f, 0x49, 0x2f, 0x64,
+ 0x82, 0x4d, 0x4e, 0x94, 0xc5, 0xfc, 0x65, 0xe2, 0x88, 0x58, 0x09, 0xd4,
+ 0x0e, 0xe8, 0x05, 0x06, 0x22, 0xe8, 0x22, 0x34,
+};
+static const unsigned char kat3515_entropyinpr1[] = {
+ 0xd0, 0xe0, 0xfd, 0xa7, 0x49, 0x0a, 0x9c, 0x37, 0x97, 0x90, 0x39, 0x10,
+ 0x14, 0xa6, 0x41, 0x18, 0x95, 0x5a, 0x72, 0xe5, 0xac, 0x36, 0x3e, 0xef,
+ 0x06, 0xf3, 0x70, 0xfd, 0x61, 0x5b, 0x5c, 0x44,
+};
+static const unsigned char kat3515_addinpr1[] = {0};
+static const unsigned char kat3515_entropyinpr2[] = {
+ 0x02, 0xdd, 0xef, 0xc9, 0x30, 0xfa, 0x83, 0x35, 0x67, 0xd2, 0x89, 0xaa,
+ 0x0d, 0x80, 0x9b, 0x17, 0x03, 0x62, 0x16, 0x05, 0xa2, 0x2b, 0x8d, 0xd9,
+ 0x40, 0x91, 0x1e, 0xd0, 0x84, 0xd3, 0xc2, 0xd8,
+};
+static const unsigned char kat3515_addinpr2[] = {0};
+static const unsigned char kat3515_retbits[] = {
+ 0x47, 0xa6, 0x40, 0x20, 0xb8, 0x76, 0x54, 0x1d, 0xcd, 0x51, 0x1d, 0xbe,
+ 0xa2, 0x47, 0xb7, 0x93, 0xc8, 0x0c, 0x7e, 0x34, 0x7f, 0x4d, 0x13, 0x92,
+ 0xbb, 0x93, 0x15, 0x16, 0x46, 0x41, 0x59, 0xfc, 0x28, 0xc5, 0x0e, 0xa8,
+ 0xc9, 0x83, 0xae, 0xa0, 0xc3, 0x5d, 0x8e, 0x8b, 0xba, 0xee, 0xcc, 0x4e,
+ 0xe3, 0xea, 0x52, 0xff, 0x24, 0xef, 0x79, 0xdd, 0xa5, 0xfb, 0x50, 0xb4,
+ 0x84, 0xc7, 0x63, 0x75,
+};
+static const struct drbg_kat_pr_true kat3515_t = {
+ 4, kat3515_entropyin, kat3515_nonce, kat3515_persstr,
+ kat3515_entropyinpr1, kat3515_addinpr1, kat3515_entropyinpr2,
+ kat3515_addinpr2, kat3515_retbits
+};
+static const struct drbg_kat kat3515 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3515_t
+};
+
+static const unsigned char kat3516_entropyin[] = {
+ 0x23, 0x2e, 0x95, 0xd1, 0xbb, 0xe4, 0x3f, 0xb9, 0x95, 0x42, 0x78, 0xff,
+ 0x69, 0x75, 0xca, 0x5b, 0x4a, 0x60, 0xb5, 0x5b, 0xb9, 0xeb, 0x62, 0xca,
+ 0xa7, 0x18, 0xf8, 0x65, 0xd6, 0xf2, 0x85, 0x44,
+};
+static const unsigned char kat3516_nonce[] = {
+ 0xf4, 0xe1, 0x9d, 0x72, 0x2f, 0x27, 0x01, 0xc0, 0x48, 0x6e, 0x5b, 0xa2,
+ 0x0a, 0x28, 0xf9, 0x0a,
+};
+static const unsigned char kat3516_persstr[] = {
+ 0x4d, 0xf1, 0xf9, 0xf9, 0xcd, 0xb8, 0x8b, 0x10, 0x2b, 0x47, 0xb3, 0xe7,
+ 0x26, 0x5a, 0xd3, 0xc4, 0x05, 0x97, 0x78, 0xd9, 0x69, 0xf4, 0xe8, 0xf7,
+ 0x56, 0x00, 0x05, 0x50, 0x2a, 0xeb, 0xa3, 0xcd,
+};
+static const unsigned char kat3516_entropyinpr1[] = {
+ 0x5e, 0x71, 0x22, 0xec, 0xb8, 0x40, 0x65, 0x39, 0x85, 0x3e, 0x8f, 0x1d,
+ 0x10, 0x48, 0xc8, 0xef, 0x06, 0x8b, 0x0a, 0xeb, 0x67, 0x66, 0xdc, 0x24,
+ 0xf5, 0x2e, 0x66, 0x2f, 0x67, 0x87, 0xf9, 0x69,
+};
+static const unsigned char kat3516_addinpr1[] = {0};
+static const unsigned char kat3516_entropyinpr2[] = {
+ 0xd4, 0x5e, 0x39, 0xf3, 0xaa, 0xf1, 0xe1, 0x41, 0x0d, 0xb0, 0x9f, 0xb1,
+ 0xc4, 0x56, 0xab, 0x19, 0xb2, 0x59, 0xa9, 0x6b, 0x6e, 0x71, 0x70, 0x25,
+ 0xad, 0x33, 0x89, 0x7a, 0x50, 0xd3, 0xa0, 0x18,
+};
+static const unsigned char kat3516_addinpr2[] = {0};
+static const unsigned char kat3516_retbits[] = {
+ 0x96, 0xa1, 0xb8, 0x22, 0xe4, 0x91, 0xec, 0xb3, 0x1f, 0xc3, 0xec, 0x6b,
+ 0x5b, 0xa4, 0x05, 0x4d, 0x5b, 0x86, 0xed, 0x11, 0xcb, 0xf2, 0x69, 0xe9,
+ 0x5b, 0xe1, 0xf3, 0x03, 0xd7, 0x17, 0x6f, 0xc7, 0x84, 0x38, 0xee, 0x55,
+ 0x0d, 0xd2, 0x88, 0x82, 0xb5, 0x9c, 0x8b, 0x6b, 0x84, 0x58, 0x5a, 0x7a,
+ 0xf0, 0x3f, 0x2a, 0x26, 0x7c, 0xf9, 0x39, 0x85, 0x43, 0x44, 0xf3, 0x99,
+ 0xd7, 0xad, 0xe5, 0xc8,
+};
+static const struct drbg_kat_pr_true kat3516_t = {
+ 5, kat3516_entropyin, kat3516_nonce, kat3516_persstr,
+ kat3516_entropyinpr1, kat3516_addinpr1, kat3516_entropyinpr2,
+ kat3516_addinpr2, kat3516_retbits
+};
+static const struct drbg_kat kat3516 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3516_t
+};
+
+static const unsigned char kat3517_entropyin[] = {
+ 0x4e, 0xd5, 0x83, 0x1a, 0x39, 0x45, 0x2c, 0x83, 0xbd, 0xd4, 0x2f, 0x14,
+ 0x22, 0xc3, 0x32, 0x37, 0x9d, 0x28, 0xc9, 0xa7, 0xe5, 0xe6, 0x79, 0x0b,
+ 0xaa, 0xf9, 0xd3, 0xcc, 0xb9, 0xc5, 0xed, 0x38,
+};
+static const unsigned char kat3517_nonce[] = {
+ 0x46, 0x95, 0x53, 0x20, 0x4e, 0xf5, 0x0d, 0x9a, 0x5e, 0x69, 0xa3, 0xd3,
+ 0x8c, 0x63, 0x36, 0xb9,
+};
+static const unsigned char kat3517_persstr[] = {
+ 0x4d, 0xac, 0x02, 0x90, 0x31, 0x2b, 0x5c, 0x66, 0x14, 0x71, 0xbe, 0xa5,
+ 0x92, 0x21, 0x95, 0xe4, 0x2e, 0xed, 0x51, 0x20, 0x05, 0x00, 0x8b, 0xc2,
+ 0x0b, 0x59, 0x1b, 0xcc, 0xcf, 0xc2, 0xa7, 0xd3,
+};
+static const unsigned char kat3517_entropyinpr1[] = {
+ 0x0c, 0x37, 0xbd, 0x3d, 0xdd, 0x5c, 0x95, 0x93, 0xc1, 0x61, 0xd7, 0x22,
+ 0x78, 0x57, 0x7a, 0x9d, 0xe6, 0x00, 0x08, 0x65, 0x43, 0x26, 0x1c, 0x0d,
+ 0xc4, 0x8c, 0xed, 0x09, 0x50, 0x1a, 0xa2, 0x4d,
+};
+static const unsigned char kat3517_addinpr1[] = {0};
+static const unsigned char kat3517_entropyinpr2[] = {
+ 0xbf, 0x32, 0xfe, 0xcf, 0x20, 0x55, 0xc7, 0x6c, 0xbc, 0x48, 0xae, 0x92,
+ 0x62, 0xd5, 0x66, 0xdf, 0xa7, 0x6d, 0xb4, 0x8f, 0xa2, 0x52, 0x8d, 0x36,
+ 0x70, 0x69, 0x51, 0x7f, 0x16, 0x8d, 0x7d, 0x19,
+};
+static const unsigned char kat3517_addinpr2[] = {0};
+static const unsigned char kat3517_retbits[] = {
+ 0x5e, 0xb6, 0xd4, 0x16, 0x1a, 0x0c, 0x1e, 0x24, 0x07, 0xcf, 0x35, 0x83,
+ 0x54, 0x3c, 0x43, 0x55, 0xde, 0xa4, 0x97, 0x0c, 0x9f, 0x46, 0xdb, 0x73,
+ 0xea, 0x33, 0xa9, 0xe1, 0x71, 0xc2, 0xfa, 0x25, 0x6e, 0x71, 0xb5, 0xb3,
+ 0x35, 0xf5, 0x31, 0x19, 0x34, 0x05, 0x08, 0x66, 0xe0, 0xf3, 0x69, 0xe5,
+ 0x50, 0xcd, 0x6b, 0xaa, 0x9c, 0xdd, 0x50, 0x98, 0xe7, 0xf2, 0x0f, 0x64,
+ 0x28, 0x0a, 0x6e, 0x6f,
+};
+static const struct drbg_kat_pr_true kat3517_t = {
+ 6, kat3517_entropyin, kat3517_nonce, kat3517_persstr,
+ kat3517_entropyinpr1, kat3517_addinpr1, kat3517_entropyinpr2,
+ kat3517_addinpr2, kat3517_retbits
+};
+static const struct drbg_kat kat3517 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3517_t
+};
+
+static const unsigned char kat3518_entropyin[] = {
+ 0xec, 0x1b, 0x05, 0x5e, 0x2d, 0xbf, 0xfb, 0xf3, 0x1c, 0x5d, 0xc5, 0x84,
+ 0x27, 0x14, 0xc5, 0x5f, 0x9e, 0x9a, 0x3d, 0xf7, 0xdc, 0x00, 0x75, 0x31,
+ 0x42, 0x80, 0x64, 0x5c, 0x64, 0x0a, 0xd3, 0x6d,
+};
+static const unsigned char kat3518_nonce[] = {
+ 0x28, 0x07, 0x86, 0xab, 0xf5, 0x07, 0xf6, 0xd8, 0x8c, 0x16, 0xce, 0xa8,
+ 0xbb, 0xc2, 0x91, 0x07,
+};
+static const unsigned char kat3518_persstr[] = {
+ 0xda, 0x4a, 0xda, 0xbe, 0x6c, 0x8d, 0x49, 0x52, 0xfa, 0x2a, 0x79, 0xa6,
+ 0x63, 0xb6, 0x4a, 0x1f, 0xdb, 0x45, 0x0c, 0x1d, 0xd5, 0xdd, 0x10, 0x37,
+ 0x11, 0xcf, 0x78, 0xe8, 0x59, 0x26, 0xfe, 0x5b,
+};
+static const unsigned char kat3518_entropyinpr1[] = {
+ 0xe8, 0x8a, 0xbc, 0x6b, 0x3a, 0x9c, 0x71, 0x38, 0x47, 0x11, 0x27, 0x74,
+ 0x48, 0x83, 0xed, 0x7a, 0xc1, 0x03, 0x81, 0x9a, 0x3a, 0x29, 0x74, 0xf0,
+ 0x96, 0x26, 0xf7, 0x19, 0xe8, 0xa4, 0x8a, 0x55,
+};
+static const unsigned char kat3518_addinpr1[] = {0};
+static const unsigned char kat3518_entropyinpr2[] = {
+ 0x29, 0x7d, 0x96, 0xf0, 0x16, 0x3c, 0x56, 0xb9, 0xab, 0xa9, 0xf2, 0xc2,
+ 0x7f, 0xee, 0x9a, 0x91, 0x3e, 0x82, 0x35, 0x88, 0xb9, 0x69, 0xe0, 0x46,
+ 0x34, 0x28, 0xee, 0x74, 0xf8, 0xad, 0x64, 0xaf,
+};
+static const unsigned char kat3518_addinpr2[] = {0};
+static const unsigned char kat3518_retbits[] = {
+ 0x9a, 0xf8, 0x9d, 0x5f, 0xa2, 0x42, 0xc3, 0xed, 0x00, 0x97, 0xf4, 0xe2,
+ 0x5a, 0x47, 0x85, 0x50, 0xb7, 0x8e, 0xca, 0x0f, 0xbc, 0x03, 0x31, 0x31,
+ 0x1c, 0x94, 0x72, 0xba, 0x20, 0x44, 0xd7, 0x40, 0x1b, 0x35, 0x20, 0xfa,
+ 0x7a, 0xf8, 0xe9, 0x6e, 0x1d, 0x80, 0x21, 0xc3, 0xdb, 0xd6, 0x08, 0xc1,
+ 0x41, 0x24, 0xbe, 0xbc, 0x59, 0xf5, 0xc7, 0x69, 0x6c, 0x92, 0x11, 0x7a,
+ 0x5e, 0x3c, 0xf5, 0x43,
+};
+static const struct drbg_kat_pr_true kat3518_t = {
+ 7, kat3518_entropyin, kat3518_nonce, kat3518_persstr,
+ kat3518_entropyinpr1, kat3518_addinpr1, kat3518_entropyinpr2,
+ kat3518_addinpr2, kat3518_retbits
+};
+static const struct drbg_kat kat3518 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3518_t
+};
+
+static const unsigned char kat3519_entropyin[] = {
+ 0x7f, 0xbb, 0xdd, 0x4e, 0xbb, 0x2c, 0xe9, 0x6b, 0x76, 0x30, 0xcd, 0x74,
+ 0x5c, 0x8c, 0x34, 0x0e, 0x24, 0x43, 0x1d, 0xe1, 0x21, 0x5d, 0xdd, 0xa4,
+ 0x40, 0xa9, 0xa9, 0x33, 0x58, 0x71, 0x9b, 0xf0,
+};
+static const unsigned char kat3519_nonce[] = {
+ 0x85, 0x01, 0x0f, 0x8a, 0xe7, 0x16, 0xd4, 0x91, 0x8e, 0x62, 0x3d, 0x24,
+ 0x06, 0x22, 0x3f, 0x32,
+};
+static const unsigned char kat3519_persstr[] = {
+ 0xe8, 0xda, 0xa5, 0x25, 0xd5, 0x43, 0xfa, 0xbe, 0xde, 0x07, 0x29, 0x1d,
+ 0x51, 0x13, 0x2e, 0x03, 0xd4, 0x48, 0x8c, 0xae, 0xf1, 0xca, 0xfa, 0xe0,
+ 0x20, 0x01, 0x13, 0xdb, 0xf3, 0x5c, 0xb1, 0xd0,
+};
+static const unsigned char kat3519_entropyinpr1[] = {
+ 0x09, 0x15, 0x9b, 0x1e, 0xa2, 0x84, 0x98, 0xb0, 0x16, 0x08, 0x90, 0x2f,
+ 0x9e, 0x3e, 0xce, 0x53, 0x99, 0x7f, 0xa6, 0x02, 0x9f, 0x86, 0x14, 0x3e,
+ 0x88, 0xb8, 0xdd, 0x1b, 0x73, 0x8c, 0x8d, 0x8d,
+};
+static const unsigned char kat3519_addinpr1[] = {0};
+static const unsigned char kat3519_entropyinpr2[] = {
+ 0x00, 0xcb, 0xa4, 0xae, 0xe9, 0xc7, 0x55, 0x09, 0xb8, 0x08, 0xd5, 0x07,
+ 0x6c, 0x03, 0x76, 0xc8, 0x89, 0x4f, 0xe1, 0x04, 0x18, 0x46, 0x16, 0x5b,
+ 0xec, 0x96, 0xbb, 0x0f, 0xb3, 0xe2, 0x4f, 0x08,
+};
+static const unsigned char kat3519_addinpr2[] = {0};
+static const unsigned char kat3519_retbits[] = {
+ 0x48, 0xbc, 0xd6, 0x82, 0x31, 0xea, 0x05, 0x75, 0x29, 0x7b, 0x62, 0x55,
+ 0x8c, 0xc0, 0xc6, 0x38, 0x8a, 0x75, 0x70, 0x33, 0x4e, 0xc4, 0xe4, 0xe7,
+ 0xff, 0xe3, 0x28, 0x71, 0x45, 0x3a, 0x5f, 0x83, 0x9d, 0x2d, 0x81, 0x29,
+ 0xba, 0x47, 0x12, 0x1d, 0x9d, 0x5b, 0x27, 0x23, 0x52, 0xe6, 0x4a, 0xf8,
+ 0x50, 0x06, 0xed, 0x5d, 0x5b, 0xcc, 0x7b, 0xbb, 0x76, 0x9a, 0x11, 0x38,
+ 0x16, 0x45, 0x29, 0x65,
+};
+static const struct drbg_kat_pr_true kat3519_t = {
+ 8, kat3519_entropyin, kat3519_nonce, kat3519_persstr,
+ kat3519_entropyinpr1, kat3519_addinpr1, kat3519_entropyinpr2,
+ kat3519_addinpr2, kat3519_retbits
+};
+static const struct drbg_kat kat3519 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3519_t
+};
+
+static const unsigned char kat3520_entropyin[] = {
+ 0x14, 0xb5, 0x51, 0xa3, 0xf0, 0x1e, 0x02, 0xbd, 0x50, 0xa8, 0xdd, 0x76,
+ 0x51, 0xc8, 0xe4, 0x33, 0xd0, 0x8e, 0x80, 0x9f, 0x2d, 0xed, 0x45, 0x93,
+ 0x0e, 0x40, 0x0f, 0x77, 0x6d, 0x8a, 0xd6, 0x3e,
+};
+static const unsigned char kat3520_nonce[] = {
+ 0x05, 0x9a, 0x6e, 0x92, 0xe2, 0x79, 0x01, 0x9a, 0xa8, 0x9d, 0xf8, 0xc5,
+ 0xb1, 0xca, 0x25, 0x81,
+};
+static const unsigned char kat3520_persstr[] = {
+ 0x12, 0x97, 0xdd, 0x3c, 0x0f, 0x75, 0x52, 0xcc, 0xaf, 0x32, 0x90, 0xe6,
+ 0x5c, 0xbd, 0xd2, 0x22, 0x29, 0xdf, 0x51, 0x85, 0x7e, 0xc8, 0x9b, 0x7b,
+ 0x94, 0xa1, 0x7a, 0x30, 0x57, 0xbb, 0x40, 0x3c,
+};
+static const unsigned char kat3520_entropyinpr1[] = {
+ 0x20, 0xbc, 0x2c, 0x16, 0x70, 0xff, 0xb3, 0x88, 0x45, 0xec, 0xc2, 0x30,
+ 0xed, 0x55, 0xdc, 0x19, 0x71, 0x8b, 0xae, 0x45, 0xc5, 0x36, 0xcb, 0x64,
+ 0x71, 0xea, 0xa5, 0xbd, 0xbd, 0xf9, 0x93, 0xd5,
+};
+static const unsigned char kat3520_addinpr1[] = {0};
+static const unsigned char kat3520_entropyinpr2[] = {
+ 0xf3, 0xca, 0x78, 0xe6, 0xd6, 0x0f, 0x42, 0x1d, 0x1c, 0x88, 0xdd, 0x28,
+ 0x4d, 0xe5, 0x76, 0x3c, 0xa8, 0x49, 0x1a, 0xa5, 0x72, 0x38, 0xbf, 0x90,
+ 0xd6, 0x43, 0xfc, 0x3b, 0x43, 0x98, 0x1c, 0x7f,
+};
+static const unsigned char kat3520_addinpr2[] = {0};
+static const unsigned char kat3520_retbits[] = {
+ 0x85, 0xc3, 0x64, 0x41, 0xb2, 0x82, 0xeb, 0x20, 0xa2, 0x55, 0x10, 0x2a,
+ 0xe1, 0xfa, 0x19, 0x75, 0xfc, 0xb6, 0x3b, 0x4c, 0x78, 0x1b, 0x5e, 0x1e,
+ 0x75, 0xb6, 0x80, 0x08, 0x62, 0xee, 0xdb, 0xa1, 0x55, 0x5e, 0xab, 0x73,
+ 0xfd, 0x8a, 0xc7, 0xf7, 0x01, 0xb0, 0xfd, 0xbd, 0xf4, 0x7d, 0x5c, 0x79,
+ 0xed, 0xe5, 0xf0, 0x8e, 0x7a, 0x4a, 0x9f, 0x93, 0x61, 0x01, 0xfa, 0xa1,
+ 0x14, 0x6b, 0x6e, 0xa7,
+};
+static const struct drbg_kat_pr_true kat3520_t = {
+ 9, kat3520_entropyin, kat3520_nonce, kat3520_persstr,
+ kat3520_entropyinpr1, kat3520_addinpr1, kat3520_entropyinpr2,
+ kat3520_addinpr2, kat3520_retbits
+};
+static const struct drbg_kat kat3520 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3520_t
+};
+
+static const unsigned char kat3521_entropyin[] = {
+ 0xa6, 0xae, 0x35, 0x3f, 0x27, 0x6c, 0x88, 0x8c, 0x86, 0x88, 0x06, 0x29,
+ 0x8c, 0x64, 0x50, 0x26, 0x8f, 0x07, 0x9f, 0xdd, 0xc5, 0x9a, 0x88, 0xae,
+ 0x0b, 0x00, 0xc3, 0x91, 0x3e, 0x1a, 0x48, 0x78,
+};
+static const unsigned char kat3521_nonce[] = {
+ 0x2d, 0xc0, 0xf6, 0x3e, 0x0f, 0x36, 0x2e, 0xe6, 0xa6, 0x09, 0x80, 0xa8,
+ 0x74, 0x82, 0x17, 0x26,
+};
+static const unsigned char kat3521_persstr[] = {
+ 0x25, 0x36, 0x75, 0x9f, 0x11, 0xb7, 0x32, 0xba, 0xef, 0x65, 0x40, 0xed,
+ 0x9f, 0xd9, 0xe7, 0x48, 0x5d, 0x36, 0xfe, 0x76, 0x50, 0xf8, 0x38, 0x9f,
+ 0x35, 0x59, 0x5b, 0x02, 0x91, 0x56, 0x6b, 0x0c,
+};
+static const unsigned char kat3521_entropyinpr1[] = {
+ 0xfc, 0xda, 0xbc, 0x02, 0xca, 0x6e, 0xbc, 0x6a, 0x85, 0x70, 0x91, 0x77,
+ 0x59, 0x40, 0x3d, 0x81, 0xe0, 0xba, 0xad, 0x4d, 0x14, 0xe1, 0x6b, 0xde,
+ 0x35, 0x34, 0x76, 0xaa, 0xab, 0x89, 0x3e, 0x47,
+};
+static const unsigned char kat3521_addinpr1[] = {0};
+static const unsigned char kat3521_entropyinpr2[] = {
+ 0x56, 0x9b, 0x85, 0xa9, 0x4d, 0x0e, 0xae, 0x8b, 0xba, 0x75, 0xa6, 0x0c,
+ 0xeb, 0xc0, 0x0b, 0xe4, 0x69, 0x84, 0x31, 0x44, 0xb1, 0x46, 0x56, 0xa9,
+ 0x78, 0x30, 0x8f, 0x72, 0x5f, 0x77, 0x86, 0xeb,
+};
+static const unsigned char kat3521_addinpr2[] = {0};
+static const unsigned char kat3521_retbits[] = {
+ 0x70, 0xe9, 0x9d, 0xd2, 0x46, 0x0c, 0x5a, 0xff, 0x65, 0x89, 0x08, 0x77,
+ 0xcf, 0xba, 0x81, 0x27, 0xad, 0xbb, 0x85, 0xf9, 0xbd, 0xa4, 0x3a, 0xd0,
+ 0x60, 0x3f, 0xa3, 0x23, 0xb1, 0xf2, 0xdb, 0x99, 0x2c, 0x02, 0x05, 0x7c,
+ 0x10, 0x1e, 0x08, 0x96, 0x54, 0xac, 0xb2, 0xa7, 0xc7, 0x1c, 0xba, 0xba,
+ 0x27, 0x17, 0xb5, 0x9a, 0x72, 0x5f, 0x13, 0x3d, 0xd7, 0x78, 0x52, 0x59,
+ 0xb5, 0xa1, 0x5a, 0x00,
+};
+static const struct drbg_kat_pr_true kat3521_t = {
+ 10, kat3521_entropyin, kat3521_nonce, kat3521_persstr,
+ kat3521_entropyinpr1, kat3521_addinpr1, kat3521_entropyinpr2,
+ kat3521_addinpr2, kat3521_retbits
+};
+static const struct drbg_kat kat3521 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3521_t
+};
+
+static const unsigned char kat3522_entropyin[] = {
+ 0xc5, 0xa1, 0x20, 0x9b, 0xd7, 0xb7, 0xd3, 0x7c, 0xae, 0x67, 0x3d, 0xca,
+ 0xfc, 0xcf, 0x23, 0xe8, 0x43, 0xe5, 0xcf, 0x2a, 0x96, 0xd9, 0x04, 0x61,
+ 0x33, 0x94, 0xe8, 0x7b, 0xaf, 0xfb, 0x0b, 0x8f,
+};
+static const unsigned char kat3522_nonce[] = {
+ 0x72, 0x81, 0xe2, 0x8b, 0xce, 0x17, 0x9c, 0x86, 0x2a, 0xa6, 0x9b, 0xdb,
+ 0x1f, 0xb9, 0x50, 0xf9,
+};
+static const unsigned char kat3522_persstr[] = {
+ 0x4f, 0x3f, 0x3e, 0x6e, 0x83, 0x8d, 0x17, 0x63, 0x85, 0xf6, 0x8e, 0xf9,
+ 0x9c, 0xff, 0x0a, 0xbb, 0xc1, 0x4d, 0xe8, 0x0a, 0x88, 0xb7, 0x0c, 0x63,
+ 0xc1, 0x69, 0x34, 0x36, 0x3b, 0x80, 0x1b, 0x32,
+};
+static const unsigned char kat3522_entropyinpr1[] = {
+ 0x8c, 0x77, 0xe4, 0x4e, 0x06, 0xb3, 0xc4, 0xad, 0xea, 0x9d, 0x03, 0x5b,
+ 0x19, 0x80, 0xe1, 0x58, 0x9c, 0xbf, 0xe7, 0x20, 0x74, 0x7a, 0x6d, 0x6d,
+ 0x89, 0x61, 0x68, 0x71, 0x26, 0x16, 0x63, 0xf9,
+};
+static const unsigned char kat3522_addinpr1[] = {0};
+static const unsigned char kat3522_entropyinpr2[] = {
+ 0xc5, 0xfa, 0x21, 0x4f, 0x6e, 0x5b, 0x06, 0xd9, 0xb5, 0x33, 0x1f, 0x82,
+ 0xed, 0x35, 0xb4, 0x9e, 0x43, 0x01, 0xd3, 0x86, 0x4f, 0xd9, 0x0e, 0xf7,
+ 0x09, 0x72, 0xa3, 0xe3, 0x0e, 0xc0, 0x3b, 0x3b,
+};
+static const unsigned char kat3522_addinpr2[] = {0};
+static const unsigned char kat3522_retbits[] = {
+ 0x9c, 0xf5, 0x08, 0xc8, 0x69, 0x8b, 0xa8, 0x6e, 0x69, 0xa1, 0xa9, 0x9f,
+ 0xe2, 0x6c, 0xaf, 0xa7, 0xd0, 0x7d, 0xce, 0x59, 0x67, 0xf1, 0x1a, 0xd0,
+ 0xf0, 0xe6, 0x38, 0xa7, 0xaa, 0xb2, 0xfe, 0x12, 0x02, 0xc0, 0x59, 0x43,
+ 0x29, 0x67, 0x9b, 0xbc, 0xe8, 0xdf, 0xbd, 0x2d, 0x7a, 0xea, 0x1d, 0xa5,
+ 0xe8, 0x8b, 0xad, 0xad, 0x05, 0xa6, 0x9b, 0x0c, 0x12, 0x20, 0x36, 0xfa,
+ 0xe4, 0x4c, 0x80, 0xa6,
+};
+static const struct drbg_kat_pr_true kat3522_t = {
+ 11, kat3522_entropyin, kat3522_nonce, kat3522_persstr,
+ kat3522_entropyinpr1, kat3522_addinpr1, kat3522_entropyinpr2,
+ kat3522_addinpr2, kat3522_retbits
+};
+static const struct drbg_kat kat3522 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3522_t
+};
+
+static const unsigned char kat3523_entropyin[] = {
+ 0x52, 0x73, 0xbb, 0x52, 0x34, 0xa1, 0xbc, 0x1a, 0x18, 0x3f, 0xe9, 0x7a,
+ 0xa0, 0xa0, 0x44, 0x14, 0xbb, 0x6e, 0x36, 0x6b, 0x68, 0x37, 0xb4, 0x4e,
+ 0xb0, 0x84, 0x7b, 0xd6, 0xa7, 0x73, 0x69, 0x6e,
+};
+static const unsigned char kat3523_nonce[] = {
+ 0x05, 0xb8, 0xad, 0x30, 0x96, 0x8f, 0xc2, 0x63, 0xdd, 0x73, 0x1c, 0x9d,
+ 0x6e, 0xca, 0xda, 0x33,
+};
+static const unsigned char kat3523_persstr[] = {
+ 0x61, 0x0c, 0x0f, 0x41, 0xd8, 0xee, 0xff, 0x00, 0x46, 0x75, 0x81, 0x09,
+ 0xb4, 0xe0, 0xc8, 0x91, 0xc5, 0x70, 0x2f, 0x43, 0xf9, 0x63, 0x92, 0x0e,
+ 0x48, 0xeb, 0x64, 0x1c, 0x76, 0x3c, 0xae, 0x80,
+};
+static const unsigned char kat3523_entropyinpr1[] = {
+ 0x69, 0xa6, 0x5f, 0x48, 0x07, 0x05, 0x08, 0x2d, 0x79, 0x14, 0x59, 0x1b,
+ 0xb6, 0x29, 0x13, 0x21, 0xa9, 0x4d, 0xd2, 0xf7, 0x5a, 0xdb, 0x82, 0x70,
+ 0x01, 0x95, 0x04, 0x41, 0xac, 0xc8, 0x43, 0x1f,
+};
+static const unsigned char kat3523_addinpr1[] = {0};
+static const unsigned char kat3523_entropyinpr2[] = {
+ 0xc2, 0xef, 0x3c, 0xbe, 0xfe, 0x07, 0xf0, 0xf5, 0xcd, 0xb4, 0x7d, 0xf2,
+ 0x7e, 0x9e, 0xaf, 0x3c, 0xc5, 0xde, 0xb6, 0xe2, 0x3f, 0xe9, 0x3a, 0x47,
+ 0x80, 0x10, 0xda, 0xb1, 0xcd, 0xad, 0x9e, 0x74,
+};
+static const unsigned char kat3523_addinpr2[] = {0};
+static const unsigned char kat3523_retbits[] = {
+ 0x9b, 0x88, 0x7c, 0xc9, 0xe2, 0x95, 0x2f, 0x6b, 0x79, 0x31, 0xe0, 0x0c,
+ 0xcd, 0x2f, 0xed, 0x1a, 0xf3, 0x03, 0x51, 0x83, 0x97, 0xd8, 0xd6, 0x6c,
+ 0x53, 0x8e, 0xde, 0x16, 0x63, 0xd0, 0x13, 0xcd, 0xf7, 0x35, 0x05, 0x4a,
+ 0xce, 0xf1, 0x92, 0x60, 0x74, 0xa8, 0x4e, 0xf6, 0x85, 0xb1, 0xb9, 0xd9,
+ 0x12, 0x62, 0x6e, 0xa4, 0x80, 0x13, 0x96, 0x6a, 0x12, 0x85, 0x1a, 0x4c,
+ 0x29, 0x3f, 0xe3, 0x4c,
+};
+static const struct drbg_kat_pr_true kat3523_t = {
+ 12, kat3523_entropyin, kat3523_nonce, kat3523_persstr,
+ kat3523_entropyinpr1, kat3523_addinpr1, kat3523_entropyinpr2,
+ kat3523_addinpr2, kat3523_retbits
+};
+static const struct drbg_kat kat3523 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3523_t
+};
+
+static const unsigned char kat3524_entropyin[] = {
+ 0x51, 0x70, 0x55, 0x85, 0x0f, 0xb9, 0xdf, 0x06, 0xab, 0x58, 0xcb, 0xed,
+ 0xf0, 0x4a, 0x78, 0x79, 0xd7, 0xd5, 0xab, 0x14, 0xd4, 0xf7, 0xfc, 0x82,
+ 0x54, 0x6e, 0x12, 0xc1, 0x48, 0xc8, 0x81, 0x7e,
+};
+static const unsigned char kat3524_nonce[] = {
+ 0x6a, 0x05, 0xf5, 0x4d, 0x40, 0xcb, 0xa9, 0xec, 0xf1, 0x71, 0xdc, 0x09,
+ 0x38, 0x3f, 0x7a, 0x27,
+};
+static const unsigned char kat3524_persstr[] = {
+ 0x5e, 0xfe, 0xa8, 0x41, 0xb1, 0x3e, 0x14, 0x68, 0x9d, 0xde, 0x9a, 0x1a,
+ 0xf2, 0x3b, 0x12, 0xda, 0x5b, 0xb4, 0xbc, 0x06, 0x5c, 0xc7, 0x3b, 0x29,
+ 0x46, 0x5b, 0x55, 0x44, 0xa9, 0x8a, 0xb9, 0xf8,
+};
+static const unsigned char kat3524_entropyinpr1[] = {
+ 0x1a, 0x21, 0xff, 0x08, 0x22, 0x10, 0x3c, 0xbb, 0x5a, 0xee, 0x0b, 0x88,
+ 0xe5, 0x0c, 0x5a, 0xe1, 0x71, 0x30, 0xbd, 0x30, 0xb1, 0xde, 0xf7, 0x88,
+ 0x05, 0xa5, 0xa8, 0x1f, 0x63, 0x0a, 0x9c, 0x84,
+};
+static const unsigned char kat3524_addinpr1[] = {0};
+static const unsigned char kat3524_entropyinpr2[] = {
+ 0x0e, 0x4d, 0x04, 0x33, 0xd0, 0x1f, 0x14, 0x83, 0x14, 0x2e, 0xe7, 0x9c,
+ 0x95, 0xaf, 0x20, 0x9a, 0xb9, 0xf0, 0xda, 0x4f, 0xa9, 0xc0, 0xe7, 0xbb,
+ 0xe1, 0x39, 0x24, 0x04, 0x81, 0x10, 0x41, 0x07,
+};
+static const unsigned char kat3524_addinpr2[] = {0};
+static const unsigned char kat3524_retbits[] = {
+ 0x39, 0x59, 0x1c, 0x4a, 0x55, 0x19, 0x3a, 0x93, 0xc9, 0xe4, 0x53, 0xbb,
+ 0xf7, 0x81, 0x77, 0xf8, 0x0c, 0xfc, 0x38, 0x87, 0x28, 0x66, 0x88, 0x0d,
+ 0x34, 0x55, 0x57, 0x86, 0xbb, 0xf0, 0xb0, 0xae, 0x1f, 0x2b, 0xf2, 0xd2,
+ 0xb1, 0x71, 0x11, 0xc5, 0xa3, 0xe3, 0x91, 0x3b, 0xb5, 0x09, 0x54, 0x79,
+ 0x75, 0x2e, 0x6f, 0x42, 0xe9, 0x40, 0xd7, 0x74, 0x16, 0x12, 0x36, 0x0f,
+ 0xb2, 0x3e, 0xf6, 0xc9,
+};
+static const struct drbg_kat_pr_true kat3524_t = {
+ 13, kat3524_entropyin, kat3524_nonce, kat3524_persstr,
+ kat3524_entropyinpr1, kat3524_addinpr1, kat3524_entropyinpr2,
+ kat3524_addinpr2, kat3524_retbits
+};
+static const struct drbg_kat kat3524 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3524_t
+};
+
+static const unsigned char kat3525_entropyin[] = {
+ 0x7f, 0xd0, 0xaf, 0xbc, 0x5a, 0x9c, 0xe5, 0xcf, 0xed, 0xe0, 0xab, 0xed,
+ 0xbe, 0x61, 0x4f, 0x7a, 0xa2, 0x64, 0xf5, 0xee, 0x51, 0xdb, 0x3e, 0x7b,
+ 0x5c, 0x69, 0x3c, 0xbe, 0x00, 0x12, 0xba, 0x9a,
+};
+static const unsigned char kat3525_nonce[] = {
+ 0x6b, 0x43, 0x21, 0x2f, 0xf9, 0x4b, 0x8a, 0x3d, 0xa0, 0xb8, 0x2b, 0x5f,
+ 0x14, 0xbe, 0xb0, 0x11,
+};
+static const unsigned char kat3525_persstr[] = {
+ 0xfa, 0xa7, 0xdf, 0xb1, 0x13, 0x27, 0x75, 0xea, 0xfc, 0x85, 0xf9, 0x7c,
+ 0x4b, 0x4d, 0x05, 0x97, 0x25, 0x57, 0x8f, 0x26, 0x91, 0x55, 0x61, 0x7f,
+ 0xd9, 0xf0, 0xac, 0x38, 0x9d, 0x8e, 0x65, 0x47,
+};
+static const unsigned char kat3525_entropyinpr1[] = {
+ 0x1d, 0x2c, 0x0e, 0xd4, 0xc5, 0x7d, 0x77, 0x7d, 0x44, 0x87, 0x9b, 0xf3,
+ 0x36, 0xb8, 0x0e, 0xbb, 0xb8, 0x23, 0x15, 0x15, 0x57, 0xf9, 0x9c, 0x37,
+ 0x69, 0xdf, 0x39, 0x07, 0x90, 0x44, 0x5e, 0xef,
+};
+static const unsigned char kat3525_addinpr1[] = {0};
+static const unsigned char kat3525_entropyinpr2[] = {
+ 0x7b, 0xb5, 0x11, 0x6d, 0xd7, 0x95, 0xfe, 0xf7, 0xc4, 0x52, 0x4f, 0x9a,
+ 0xc3, 0xb8, 0x21, 0xfa, 0xf0, 0x60, 0xc2, 0x09, 0x81, 0x8d, 0x17, 0xe3,
+ 0xc6, 0xcb, 0xdf, 0x7a, 0x3a, 0x41, 0xf1, 0xe9,
+};
+static const unsigned char kat3525_addinpr2[] = {0};
+static const unsigned char kat3525_retbits[] = {
+ 0x4e, 0xb2, 0xa1, 0xbf, 0xd4, 0xfe, 0x74, 0x16, 0x80, 0x06, 0x23, 0xff,
+ 0xba, 0xe0, 0x2b, 0xfe, 0x30, 0xd8, 0x16, 0xc8, 0xa9, 0xb6, 0x47, 0xf6,
+ 0x09, 0x2c, 0x1a, 0xab, 0x99, 0xd8, 0x77, 0xc1, 0xe6, 0xc7, 0xa1, 0x16,
+ 0x54, 0x37, 0x05, 0xcc, 0x3f, 0x94, 0x16, 0x51, 0x83, 0x33, 0xd5, 0x8c,
+ 0x58, 0xcc, 0x72, 0x4c, 0xa1, 0x51, 0x03, 0x98, 0xbf, 0x82, 0x48, 0xd2,
+ 0x28, 0x54, 0x4a, 0x15,
+};
+static const struct drbg_kat_pr_true kat3525_t = {
+ 14, kat3525_entropyin, kat3525_nonce, kat3525_persstr,
+ kat3525_entropyinpr1, kat3525_addinpr1, kat3525_entropyinpr2,
+ kat3525_addinpr2, kat3525_retbits
+};
+static const struct drbg_kat kat3525 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3525_t
+};
+
+static const unsigned char kat3526_entropyin[] = {
+ 0x1f, 0xe5, 0x86, 0x0d, 0x25, 0xc6, 0xfe, 0x83, 0x23, 0x1d, 0xe9, 0xb6,
+ 0x5e, 0xcb, 0x76, 0x43, 0x44, 0x4b, 0x97, 0x37, 0xd2, 0xba, 0x08, 0x35,
+ 0x9b, 0x50, 0x09, 0x1d, 0x6d, 0xd2, 0x80, 0x9b,
+};
+static const unsigned char kat3526_nonce[] = {
+ 0xf1, 0x90, 0xc0, 0x1d, 0x07, 0x72, 0xa7, 0x39, 0xe1, 0xb2, 0x49, 0xd8,
+ 0x5a, 0xca, 0xbe, 0xc9,
+};
+static const unsigned char kat3526_persstr[] = {
+ 0x0a, 0x71, 0x4c, 0x2c, 0x9c, 0x14, 0x4b, 0xed, 0xac, 0xb5, 0x9b, 0x10,
+ 0x59, 0xbc, 0x45, 0x83, 0xcc, 0x2d, 0x92, 0x33, 0x1e, 0xca, 0xbf, 0x14,
+ 0x6d, 0x48, 0x96, 0xe9, 0x6d, 0x83, 0x0e, 0xa8,
+};
+static const unsigned char kat3526_entropyinpr1[] = {
+ 0xbd, 0xd1, 0xba, 0xca, 0xec, 0x39, 0xe1, 0x92, 0x31, 0x07, 0x44, 0xeb,
+ 0x25, 0x4a, 0x3f, 0x05, 0xe6, 0x1b, 0x2a, 0xd4, 0x19, 0x61, 0x1a, 0x43,
+ 0x14, 0x77, 0x44, 0xa4, 0x44, 0xf1, 0x54, 0xd6,
+};
+static const unsigned char kat3526_addinpr1[] = {
+ 0x98, 0x95, 0x8f, 0x55, 0x7c, 0xb2, 0x43, 0x51, 0xc3, 0xce, 0xa0, 0x27,
+ 0x80, 0x18, 0xf9, 0xdd, 0xe6, 0x18, 0x40, 0xf5, 0x1f, 0x36, 0xef, 0x64,
+ 0xd8, 0x64, 0x14, 0xa2, 0x73, 0x01, 0xef, 0x65,
+};
+static const unsigned char kat3526_entropyinpr2[] = {
+ 0x48, 0x0d, 0x2d, 0xd9, 0x38, 0x9b, 0xaf, 0x09, 0x75, 0x5c, 0x78, 0xd5,
+ 0x63, 0x25, 0x0e, 0x92, 0x24, 0x8f, 0x0f, 0x5c, 0xc5, 0x06, 0x7a, 0xe8,
+ 0x20, 0x78, 0x93, 0x05, 0xc0, 0xa4, 0xd6, 0x26,
+};
+static const unsigned char kat3526_addinpr2[] = {
+ 0x55, 0x15, 0x5f, 0x75, 0x2c, 0xb5, 0xf5, 0x3b, 0x49, 0x1f, 0xd8, 0xab,
+ 0xda, 0xbe, 0xec, 0x22, 0xd5, 0xf3, 0x5b, 0x3a, 0xf4, 0x94, 0x84, 0x28,
+ 0x2f, 0xeb, 0xbd, 0x79, 0x4c, 0xb7, 0x12, 0x82,
+};
+static const unsigned char kat3526_retbits[] = {
+ 0x3d, 0xce, 0x54, 0xa9, 0x9d, 0x91, 0x96, 0xdf, 0x36, 0x29, 0xa2, 0x95,
+ 0x77, 0x20, 0xae, 0xa3, 0x94, 0xe1, 0x57, 0x3c, 0x2a, 0x41, 0xf9, 0xa6,
+ 0x33, 0x25, 0xca, 0x57, 0x30, 0x3e, 0xd0, 0xf4, 0xa3, 0x4b, 0x39, 0xbc,
+ 0xb5, 0x53, 0x74, 0x98, 0xb7, 0x1f, 0xdd, 0x13, 0x8e, 0x0f, 0x83, 0x03,
+ 0xe5, 0x4f, 0x8e, 0xd4, 0x12, 0xd8, 0x2c, 0x64, 0x75, 0x4d, 0x27, 0x8a,
+ 0x8b, 0x68, 0xbc, 0xd1,
+};
+static const struct drbg_kat_pr_true kat3526_t = {
+ 0, kat3526_entropyin, kat3526_nonce, kat3526_persstr,
+ kat3526_entropyinpr1, kat3526_addinpr1, kat3526_entropyinpr2,
+ kat3526_addinpr2, kat3526_retbits
+};
+static const struct drbg_kat kat3526 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3526_t
+};
+
+static const unsigned char kat3527_entropyin[] = {
+ 0xb9, 0xdf, 0xc4, 0xd8, 0x92, 0x04, 0x95, 0xa9, 0x82, 0xb5, 0xd3, 0x69,
+ 0xb9, 0xa7, 0x06, 0x4d, 0x4a, 0x07, 0x2c, 0x4f, 0x33, 0x6a, 0x94, 0x2f,
+ 0xbd, 0x28, 0x94, 0x1a, 0xed, 0xe3, 0x48, 0x4f,
+};
+static const unsigned char kat3527_nonce[] = {
+ 0x5a, 0x6c, 0xd9, 0x5e, 0x00, 0xbd, 0x4c, 0xf6, 0x71, 0xc7, 0xe7, 0xaa,
+ 0xca, 0x97, 0xf5, 0x92,
+};
+static const unsigned char kat3527_persstr[] = {
+ 0x1d, 0x69, 0x9f, 0x24, 0xd8, 0x73, 0x84, 0x81, 0x57, 0x7e, 0xf4, 0x76,
+ 0x8b, 0xc0, 0x6d, 0xf8, 0xb7, 0x41, 0x9a, 0x7b, 0xfb, 0x02, 0xb9, 0xe4,
+ 0xb1, 0x81, 0xdb, 0xf4, 0x92, 0x86, 0x05, 0x47,
+};
+static const unsigned char kat3527_entropyinpr1[] = {
+ 0x29, 0x24, 0x1b, 0x65, 0x2e, 0x34, 0x24, 0xac, 0x5b, 0xd1, 0x8f, 0x86,
+ 0xe1, 0xe1, 0xf8, 0x46, 0x2e, 0x4e, 0xf5, 0xa6, 0x72, 0xa1, 0xb2, 0x1e,
+ 0xbc, 0x6b, 0x24, 0x4e, 0x7e, 0x2e, 0x30, 0x45,
+};
+static const unsigned char kat3527_addinpr1[] = {
+ 0x92, 0x03, 0x1e, 0x29, 0x1b, 0x34, 0x52, 0x06, 0x24, 0x37, 0x4b, 0x24,
+ 0x56, 0x5f, 0xb9, 0x64, 0x3f, 0x26, 0xa7, 0x8c, 0xf8, 0x5e, 0x8f, 0x89,
+ 0xa1, 0xa3, 0x74, 0xa0, 0x2f, 0x9a, 0x2c, 0x76,
+};
+static const unsigned char kat3527_entropyinpr2[] = {
+ 0x9f, 0x33, 0x66, 0xf9, 0x60, 0xd9, 0xc7, 0xcb, 0x2d, 0x05, 0x68, 0x3d,
+ 0x4b, 0x43, 0xfe, 0xcb, 0x44, 0xc2, 0x68, 0xbf, 0x87, 0xdd, 0x43, 0x6d,
+ 0x5a, 0x08, 0x82, 0xde, 0x90, 0x4f, 0xb2, 0x21,
+};
+static const unsigned char kat3527_addinpr2[] = {
+ 0x30, 0x33, 0xd7, 0xbb, 0x15, 0x43, 0x23, 0x3f, 0x3d, 0xc1, 0x69, 0xa1,
+ 0xcc, 0xbb, 0x3c, 0x47, 0xe2, 0x61, 0xe3, 0x03, 0x80, 0x30, 0x86, 0x19,
+ 0xc8, 0x4c, 0xd6, 0x0a, 0x13, 0xda, 0xdd, 0xf9,
+};
+static const unsigned char kat3527_retbits[] = {
+ 0x33, 0x31, 0x15, 0x0c, 0x62, 0x75, 0x85, 0xfc, 0x52, 0x71, 0x5a, 0xc7,
+ 0xff, 0x83, 0xce, 0xa2, 0x65, 0xed, 0x5a, 0xdb, 0xb1, 0xd3, 0x0b, 0xda,
+ 0x3f, 0x75, 0xfd, 0x39, 0x8c, 0x6f, 0x9a, 0x81, 0xf1, 0xe7, 0xc4, 0xea,
+ 0xe5, 0xd7, 0xc3, 0x62, 0x3d, 0xd1, 0xdc, 0x4a, 0x5b, 0x8a, 0xd4, 0xa4,
+ 0x21, 0xb3, 0xda, 0xa9, 0x78, 0x66, 0x6f, 0xff, 0x8b, 0xe2, 0xa0, 0xb6,
+ 0x43, 0xb0, 0x95, 0x60,
+};
+static const struct drbg_kat_pr_true kat3527_t = {
+ 1, kat3527_entropyin, kat3527_nonce, kat3527_persstr,
+ kat3527_entropyinpr1, kat3527_addinpr1, kat3527_entropyinpr2,
+ kat3527_addinpr2, kat3527_retbits
+};
+static const struct drbg_kat kat3527 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3527_t
+};
+
+static const unsigned char kat3528_entropyin[] = {
+ 0xcd, 0xb3, 0xf0, 0x16, 0xb2, 0x24, 0x4b, 0x9e, 0x55, 0xb5, 0xf1, 0x19,
+ 0x19, 0x78, 0x44, 0x92, 0x39, 0xc1, 0x91, 0xa2, 0xa4, 0x5f, 0xe0, 0xd1,
+ 0x9f, 0x02, 0xe2, 0x92, 0x3c, 0x36, 0x12, 0xdd,
+};
+static const unsigned char kat3528_nonce[] = {
+ 0xdc, 0x1f, 0xd8, 0xb8, 0xd1, 0xce, 0x82, 0x0a, 0x4d, 0xc7, 0x45, 0xb9,
+ 0x9e, 0x65, 0x7f, 0x62,
+};
+static const unsigned char kat3528_persstr[] = {
+ 0xff, 0xa2, 0x60, 0x57, 0x7d, 0x92, 0xd0, 0xea, 0x96, 0x65, 0x33, 0x1c,
+ 0x3e, 0x18, 0x22, 0x7d, 0x5c, 0x9a, 0xea, 0x46, 0xa7, 0xc3, 0x6a, 0x76,
+ 0x2f, 0xe1, 0xc5, 0xa6, 0x6e, 0x73, 0xf8, 0x0b,
+};
+static const unsigned char kat3528_entropyinpr1[] = {
+ 0xf9, 0x1b, 0x41, 0x7c, 0x0d, 0x8f, 0xe4, 0x53, 0xb8, 0x3a, 0x9f, 0x34,
+ 0x6e, 0xab, 0x8c, 0x87, 0x99, 0xb0, 0x34, 0x44, 0xe0, 0xf3, 0xa4, 0xe5,
+ 0xdd, 0x5c, 0xc0, 0x86, 0x24, 0x6b, 0x0d, 0x45,
+};
+static const unsigned char kat3528_addinpr1[] = {
+ 0x87, 0xf4, 0xd8, 0x2b, 0x14, 0x1d, 0x38, 0x79, 0x7d, 0x52, 0x6b, 0xa9,
+ 0x1b, 0xd4, 0x48, 0x69, 0x49, 0xe4, 0xad, 0xad, 0xf4, 0x52, 0x74, 0xeb,
+ 0xb8, 0x05, 0xe1, 0x8c, 0xf8, 0xf9, 0xc0, 0x5f,
+};
+static const unsigned char kat3528_entropyinpr2[] = {
+ 0xf6, 0xcb, 0xb8, 0x52, 0x38, 0xb8, 0x62, 0x8c, 0x4a, 0x1d, 0x12, 0xc3,
+ 0x65, 0x64, 0x7e, 0x06, 0xad, 0x60, 0x07, 0x0e, 0xd2, 0x85, 0xed, 0x37,
+ 0xb3, 0xe3, 0x42, 0x2f, 0xfb, 0x96, 0xe8, 0x36,
+};
+static const unsigned char kat3528_addinpr2[] = {
+ 0x10, 0xee, 0xc6, 0x8e, 0xbb, 0xeb, 0x48, 0xbf, 0xa6, 0xb4, 0x71, 0x35,
+ 0x5d, 0x38, 0xae, 0x5d, 0x68, 0x61, 0xa6, 0xf6, 0xff, 0x36, 0x85, 0x48,
+ 0x66, 0xe8, 0xb7, 0x7b, 0x3b, 0xe0, 0x5f, 0x86,
+};
+static const unsigned char kat3528_retbits[] = {
+ 0x5b, 0x2c, 0x8e, 0x3b, 0xb4, 0x73, 0xd9, 0x4c, 0x67, 0x7d, 0x0b, 0xc3,
+ 0xb3, 0x74, 0x14, 0x5b, 0xc8, 0x79, 0xdd, 0x46, 0xb7, 0x59, 0x87, 0x8f,
+ 0x33, 0x65, 0x6c, 0xaf, 0xa8, 0x8d, 0xa7, 0xc9, 0x36, 0x86, 0x72, 0x5d,
+ 0x82, 0xf9, 0x87, 0xdd, 0xe6, 0x6d, 0x03, 0x5d, 0xd9, 0x61, 0xf5, 0x19,
+ 0x76, 0xcf, 0x62, 0xc7, 0x8e, 0x14, 0x51, 0x50, 0x81, 0xa1, 0xb0, 0x4c,
+ 0xc6, 0x11, 0x76, 0x02,
+};
+static const struct drbg_kat_pr_true kat3528_t = {
+ 2, kat3528_entropyin, kat3528_nonce, kat3528_persstr,
+ kat3528_entropyinpr1, kat3528_addinpr1, kat3528_entropyinpr2,
+ kat3528_addinpr2, kat3528_retbits
+};
+static const struct drbg_kat kat3528 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3528_t
+};
+
+static const unsigned char kat3529_entropyin[] = {
+ 0xc9, 0x04, 0xac, 0x8b, 0x08, 0xba, 0x8f, 0x4c, 0xa1, 0xcb, 0x93, 0xc6,
+ 0x7f, 0xad, 0xf1, 0x76, 0x6f, 0xc1, 0x59, 0x79, 0x84, 0x7c, 0x3f, 0x45,
+ 0x3a, 0xf9, 0x8b, 0x55, 0xa4, 0xe2, 0xee, 0xf0,
+};
+static const unsigned char kat3529_nonce[] = {
+ 0x45, 0x7a, 0x6d, 0xed, 0xfb, 0xdb, 0x56, 0x74, 0x8b, 0x05, 0xa5, 0x21,
+ 0xa2, 0xc2, 0xa0, 0xe1,
+};
+static const unsigned char kat3529_persstr[] = {
+ 0x52, 0x4e, 0x44, 0x2e, 0xbb, 0x64, 0x67, 0xf8, 0x1d, 0xa6, 0xa4, 0xab,
+ 0x75, 0x9c, 0x30, 0xcd, 0xe5, 0x41, 0x23, 0x4f, 0xc6, 0x93, 0x35, 0xd6,
+ 0x14, 0x76, 0xa3, 0xbd, 0x77, 0xf8, 0x18, 0x77,
+};
+static const unsigned char kat3529_entropyinpr1[] = {
+ 0x3a, 0x22, 0xa1, 0xec, 0xc8, 0x8e, 0x1e, 0x62, 0x0f, 0xb8, 0x53, 0x8e,
+ 0xba, 0x77, 0xa3, 0x31, 0x53, 0xc6, 0xf5, 0xe4, 0x3b, 0xb7, 0x86, 0xea,
+ 0x17, 0x69, 0xbe, 0xb2, 0x5d, 0x7e, 0xdc, 0xc9,
+};
+static const unsigned char kat3529_addinpr1[] = {
+ 0x17, 0x9c, 0x68, 0xde, 0x66, 0x7a, 0xf9, 0x81, 0xe1, 0xa3, 0xa8, 0x79,
+ 0x75, 0xfa, 0x94, 0xf4, 0xe2, 0xc0, 0xf0, 0xbb, 0x87, 0x08, 0xb9, 0x3f,
+ 0x7a, 0x91, 0xe0, 0xbd, 0x6e, 0xcf, 0x8e, 0xf6,
+};
+static const unsigned char kat3529_entropyinpr2[] = {
+ 0x3e, 0x29, 0x58, 0x28, 0x04, 0x3b, 0x6c, 0xf7, 0xc2, 0xcd, 0xf3, 0xa7,
+ 0x63, 0xfd, 0x9d, 0xeb, 0x7d, 0x05, 0x52, 0xfd, 0x54, 0x94, 0x07, 0x4e,
+ 0x4f, 0x80, 0xfa, 0x52, 0x59, 0xa0, 0x7e, 0x3a,
+};
+static const unsigned char kat3529_addinpr2[] = {
+ 0x18, 0xac, 0xbd, 0xa0, 0x31, 0x0e, 0x14, 0x44, 0xd7, 0xee, 0xc6, 0x60,
+ 0x9a, 0x47, 0xf3, 0xf2, 0xe2, 0xfa, 0xcf, 0x41, 0x36, 0xf4, 0xee, 0x9b,
+ 0x60, 0x66, 0x6c, 0x17, 0xea, 0xba, 0xb2, 0x9b,
+};
+static const unsigned char kat3529_retbits[] = {
+ 0xbd, 0x6b, 0x64, 0x0b, 0x13, 0x8f, 0xa0, 0xc2, 0xea, 0x56, 0xd8, 0x1e,
+ 0x85, 0x44, 0x6b, 0x88, 0x70, 0x0e, 0xfa, 0x66, 0xe3, 0xed, 0x3b, 0x88,
+ 0x16, 0xe2, 0xe3, 0x1c, 0x9b, 0x49, 0xbf, 0xa6, 0x4b, 0xcd, 0x36, 0x2b,
+ 0x1a, 0xc7, 0xc8, 0x98, 0xf4, 0x45, 0xe9, 0xdd, 0xc8, 0xa3, 0xdb, 0x21,
+ 0x79, 0x4e, 0xc0, 0x77, 0xe7, 0xbd, 0xd8, 0xd9, 0x07, 0x91, 0xad, 0xb2,
+ 0xb5, 0xcf, 0x5a, 0x76,
+};
+static const struct drbg_kat_pr_true kat3529_t = {
+ 3, kat3529_entropyin, kat3529_nonce, kat3529_persstr,
+ kat3529_entropyinpr1, kat3529_addinpr1, kat3529_entropyinpr2,
+ kat3529_addinpr2, kat3529_retbits
+};
+static const struct drbg_kat kat3529 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3529_t
+};
+
+static const unsigned char kat3530_entropyin[] = {
+ 0x74, 0x28, 0x06, 0x3c, 0xd1, 0xd8, 0x52, 0x1d, 0xd9, 0x8b, 0x9a, 0xe1,
+ 0xb1, 0xc7, 0xc7, 0x53, 0x3d, 0x79, 0xba, 0x07, 0x76, 0x0b, 0x37, 0x6c,
+ 0x59, 0xeb, 0x1d, 0x58, 0xfe, 0x05, 0xa6, 0xf9,
+};
+static const unsigned char kat3530_nonce[] = {
+ 0x79, 0xa9, 0x32, 0xf0, 0xb9, 0x57, 0x08, 0x47, 0x76, 0x07, 0x2d, 0xf8,
+ 0xe5, 0x2b, 0xfe, 0x8e,
+};
+static const unsigned char kat3530_persstr[] = {
+ 0x8d, 0xb7, 0x74, 0x0a, 0x7a, 0x30, 0x1a, 0xcc, 0xf6, 0xb9, 0x9b, 0xb9,
+ 0xc8, 0x7d, 0x07, 0xda, 0x99, 0x1c, 0xcf, 0x2c, 0x76, 0x27, 0xe9, 0xb7,
+ 0xad, 0x2d, 0x73, 0x1a, 0x90, 0x79, 0x06, 0x77,
+};
+static const unsigned char kat3530_entropyinpr1[] = {
+ 0x6d, 0x0d, 0x3c, 0x47, 0x82, 0x23, 0xab, 0xcf, 0x5d, 0x85, 0xaa, 0x06,
+ 0xc8, 0xfa, 0x97, 0xea, 0x2a, 0x97, 0xf0, 0x27, 0x16, 0x75, 0x3e, 0x23,
+ 0x59, 0xde, 0x9e, 0x2d, 0xe5, 0xf3, 0x8b, 0x79,
+};
+static const unsigned char kat3530_addinpr1[] = {
+ 0xd7, 0xf0, 0xca, 0xa7, 0x39, 0x78, 0x60, 0xc8, 0x6c, 0xd1, 0x4f, 0xdd,
+ 0x07, 0x6a, 0x6a, 0xca, 0x52, 0x09, 0x32, 0x67, 0x91, 0xe4, 0xf4, 0x7d,
+ 0x26, 0x60, 0x01, 0x16, 0x17, 0x40, 0x35, 0x0b,
+};
+static const unsigned char kat3530_entropyinpr2[] = {
+ 0x11, 0xfa, 0x1a, 0x95, 0x56, 0xeb, 0x56, 0x4e, 0x74, 0x4d, 0xc0, 0x5a,
+ 0xc4, 0x1c, 0x58, 0xb3, 0xd3, 0x51, 0xe0, 0x00, 0xc8, 0x8b, 0xdf, 0x53,
+ 0x71, 0x63, 0x75, 0x9a, 0x38, 0xfe, 0x68, 0xd8,
+};
+static const unsigned char kat3530_addinpr2[] = {
+ 0x8a, 0x76, 0xd7, 0xd3, 0x64, 0x4a, 0x97, 0x74, 0x17, 0x23, 0xa5, 0xe2,
+ 0x32, 0xd1, 0x45, 0x1f, 0xf7, 0x89, 0xb5, 0xeb, 0xf3, 0xd7, 0xec, 0x78,
+ 0x01, 0x3e, 0x8e, 0x1e, 0xf2, 0xb4, 0xb3, 0xab,
+};
+static const unsigned char kat3530_retbits[] = {
+ 0x03, 0x85, 0xd4, 0x47, 0x22, 0xce, 0x60, 0xd2, 0xac, 0x0b, 0x8f, 0x35,
+ 0xaf, 0xd9, 0x99, 0xef, 0xbf, 0x07, 0xc7, 0x36, 0xce, 0xc6, 0x5d, 0xe0,
+ 0x69, 0x30, 0x0b, 0xd6, 0x4a, 0xb0, 0xe2, 0xda, 0xf0, 0x74, 0x37, 0x4b,
+ 0x17, 0x1c, 0x36, 0x22, 0xa8, 0xb0, 0xb5, 0x54, 0x99, 0x3b, 0xcc, 0xa4,
+ 0xca, 0xa5, 0x78, 0xc3, 0x77, 0xbd, 0xf5, 0xdb, 0xf5, 0x10, 0xe3, 0xb4,
+ 0xf1, 0x4b, 0x6f, 0xdf,
+};
+static const struct drbg_kat_pr_true kat3530_t = {
+ 4, kat3530_entropyin, kat3530_nonce, kat3530_persstr,
+ kat3530_entropyinpr1, kat3530_addinpr1, kat3530_entropyinpr2,
+ kat3530_addinpr2, kat3530_retbits
+};
+static const struct drbg_kat kat3530 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3530_t
+};
+
+static const unsigned char kat3531_entropyin[] = {
+ 0x84, 0x65, 0xf5, 0x2f, 0x8c, 0xf1, 0xc2, 0x80, 0xda, 0xf3, 0x48, 0x03,
+ 0xf5, 0xbe, 0xba, 0x60, 0x7d, 0xc1, 0x92, 0xb2, 0xcc, 0x99, 0xdb, 0x21,
+ 0x5d, 0x24, 0xe8, 0x54, 0x0d, 0x0e, 0xf7, 0x39,
+};
+static const unsigned char kat3531_nonce[] = {
+ 0xd6, 0xb8, 0x52, 0x1d, 0x98, 0x12, 0x35, 0xfd, 0x4e, 0xc8, 0x52, 0xb7,
+ 0x59, 0x08, 0x1c, 0x0d,
+};
+static const unsigned char kat3531_persstr[] = {
+ 0x8f, 0x14, 0x94, 0x04, 0xf4, 0xcf, 0x6b, 0x88, 0x93, 0x12, 0x68, 0x4f,
+ 0x41, 0x55, 0x46, 0x35, 0xcf, 0xb8, 0xfb, 0x43, 0x8f, 0xb0, 0x8e, 0x91,
+ 0x02, 0xcb, 0x68, 0x7c, 0x95, 0xe9, 0x1a, 0x0d,
+};
+static const unsigned char kat3531_entropyinpr1[] = {
+ 0x91, 0x8a, 0x30, 0x2d, 0x6e, 0x0f, 0xb1, 0xb1, 0xa8, 0x41, 0x4c, 0xea,
+ 0x43, 0x98, 0xb5, 0x6c, 0x92, 0xc1, 0x43, 0xe2, 0x12, 0x04, 0xd7, 0xa2,
+ 0x20, 0x87, 0xa2, 0xb0, 0x26, 0x61, 0x37, 0x62,
+};
+static const unsigned char kat3531_addinpr1[] = {
+ 0x00, 0xf2, 0x14, 0x97, 0x58, 0x66, 0x8a, 0x76, 0xcc, 0xc2, 0x61, 0x19,
+ 0x5b, 0xd6, 0x36, 0x52, 0x32, 0x61, 0x04, 0x7b, 0x85, 0xc4, 0xe9, 0xa6,
+ 0x49, 0xe6, 0xc3, 0xaa, 0x5e, 0x43, 0x86, 0x0f,
+};
+static const unsigned char kat3531_entropyinpr2[] = {
+ 0x78, 0xb2, 0x1f, 0x28, 0x54, 0x0b, 0x07, 0x06, 0x21, 0xcf, 0x13, 0x3c,
+ 0x2c, 0xe6, 0xc2, 0xa8, 0xb7, 0xe1, 0x17, 0x44, 0x01, 0x67, 0x05, 0xb3,
+ 0x97, 0x74, 0xb3, 0x2f, 0x25, 0x8e, 0xf3, 0xcd,
+};
+static const unsigned char kat3531_addinpr2[] = {
+ 0x21, 0xba, 0x9a, 0xba, 0xdb, 0x22, 0x94, 0x87, 0x99, 0x39, 0x9f, 0xec,
+ 0x93, 0x33, 0x9b, 0xed, 0xdc, 0x2f, 0x07, 0xc5, 0x76, 0xdb, 0xfc, 0xbd,
+ 0x07, 0x13, 0x47, 0x7f, 0xb6, 0x92, 0x74, 0x6e,
+};
+static const unsigned char kat3531_retbits[] = {
+ 0x89, 0xce, 0xfa, 0x96, 0x1f, 0x9c, 0x17, 0xeb, 0xdf, 0xa1, 0x41, 0xdf,
+ 0xd5, 0x42, 0x56, 0x94, 0xcc, 0xe1, 0xc3, 0xae, 0x1b, 0x4e, 0x34, 0xe8,
+ 0xb9, 0xdb, 0xe6, 0x25, 0xda, 0x89, 0x00, 0x41, 0xce, 0x00, 0x22, 0xce,
+ 0xa5, 0x5f, 0x6f, 0x1f, 0xb1, 0x3b, 0x35, 0x01, 0x39, 0x09, 0x5f, 0x08,
+ 0x96, 0x02, 0x99, 0x14, 0xa7, 0x97, 0x7e, 0x10, 0xe1, 0xa9, 0x88, 0x58,
+ 0x8c, 0xdb, 0x67, 0x51,
+};
+static const struct drbg_kat_pr_true kat3531_t = {
+ 5, kat3531_entropyin, kat3531_nonce, kat3531_persstr,
+ kat3531_entropyinpr1, kat3531_addinpr1, kat3531_entropyinpr2,
+ kat3531_addinpr2, kat3531_retbits
+};
+static const struct drbg_kat kat3531 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3531_t
+};
+
+static const unsigned char kat3532_entropyin[] = {
+ 0xc2, 0x4a, 0x5a, 0xc7, 0xb9, 0x73, 0x11, 0x56, 0x18, 0xb3, 0x31, 0x98,
+ 0x00, 0xdd, 0x4e, 0x22, 0xdc, 0x53, 0x6f, 0x3c, 0xca, 0xb2, 0xca, 0x9a,
+ 0x2b, 0xb3, 0x2d, 0x9b, 0x17, 0x11, 0xd2, 0x61,
+};
+static const unsigned char kat3532_nonce[] = {
+ 0xfa, 0xcb, 0x57, 0xdb, 0xbe, 0xb7, 0x3f, 0x12, 0xe5, 0x67, 0xf9, 0xa8,
+ 0xa0, 0x66, 0x84, 0xb1,
+};
+static const unsigned char kat3532_persstr[] = {
+ 0xcf, 0x07, 0xba, 0x3d, 0xad, 0x1c, 0x2d, 0x02, 0x37, 0x98, 0x13, 0xa1,
+ 0x46, 0xe0, 0x88, 0xb2, 0x54, 0x04, 0x54, 0x5d, 0xfc, 0x7e, 0x4f, 0x7f,
+ 0xfc, 0x35, 0x8c, 0xa2, 0x67, 0xcd, 0x6c, 0x65,
+};
+static const unsigned char kat3532_entropyinpr1[] = {
+ 0x91, 0xcf, 0xbc, 0x7c, 0xe1, 0x0e, 0xc3, 0x93, 0xfb, 0x6a, 0x4e, 0xcd,
+ 0x49, 0x52, 0x41, 0x47, 0x51, 0x54, 0x41, 0x2c, 0x59, 0xba, 0x1d, 0x18,
+ 0x39, 0x42, 0x23, 0xa8, 0x2c, 0x4e, 0xfb, 0x63,
+};
+static const unsigned char kat3532_addinpr1[] = {
+ 0xa5, 0xe8, 0x86, 0xcf, 0x4a, 0x16, 0xc0, 0x33, 0xa7, 0x56, 0xcd, 0x01,
+ 0xc2, 0x24, 0xb6, 0x94, 0x85, 0xa6, 0x26, 0x19, 0x45, 0x49, 0x6b, 0xe4,
+ 0x91, 0x36, 0x48, 0xab, 0x00, 0xf3, 0xb3, 0x5c,
+};
+static const unsigned char kat3532_entropyinpr2[] = {
+ 0xfa, 0xf1, 0x4d, 0x6f, 0x6d, 0xdb, 0x1d, 0xd9, 0xd0, 0x4a, 0x8d, 0xeb,
+ 0xac, 0xbc, 0x61, 0xe0, 0x60, 0x5a, 0x80, 0x1d, 0x44, 0x11, 0x87, 0xc3,
+ 0xee, 0x95, 0x73, 0x34, 0x49, 0xaa, 0x1e, 0x93,
+};
+static const unsigned char kat3532_addinpr2[] = {
+ 0x12, 0x9c, 0xe3, 0xb5, 0xdf, 0x7b, 0x42, 0xa8, 0x10, 0x38, 0xe1, 0x2c,
+ 0x7a, 0x08, 0x18, 0x58, 0xe7, 0x84, 0x0b, 0xdd, 0x47, 0x2f, 0x10, 0x9f,
+ 0x16, 0x71, 0xc7, 0x9f, 0x6f, 0xf9, 0x8c, 0x2d,
+};
+static const unsigned char kat3532_retbits[] = {
+ 0xdd, 0x37, 0x29, 0xc1, 0xc6, 0x58, 0x26, 0xe6, 0x8d, 0x8f, 0x2b, 0x79,
+ 0x06, 0xb0, 0xf1, 0xa4, 0xc2, 0x12, 0x30, 0x43, 0x67, 0x24, 0x24, 0x63,
+ 0x91, 0x22, 0x3d, 0x3b, 0x61, 0xa5, 0x05, 0x00, 0x67, 0xee, 0xde, 0x65,
+ 0x79, 0x88, 0x55, 0xde, 0x8a, 0xa0, 0xdc, 0xa6, 0xcf, 0xb0, 0x49, 0xff,
+ 0xe8, 0x4a, 0x1f, 0xeb, 0xc7, 0xe9, 0xfe, 0x65, 0xff, 0x17, 0x2a, 0x1a,
+ 0x06, 0xdf, 0xe8, 0x72,
+};
+static const struct drbg_kat_pr_true kat3532_t = {
+ 6, kat3532_entropyin, kat3532_nonce, kat3532_persstr,
+ kat3532_entropyinpr1, kat3532_addinpr1, kat3532_entropyinpr2,
+ kat3532_addinpr2, kat3532_retbits
+};
+static const struct drbg_kat kat3532 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3532_t
+};
+
+static const unsigned char kat3533_entropyin[] = {
+ 0x7e, 0x22, 0x68, 0x53, 0x9f, 0x62, 0x6c, 0x43, 0x1a, 0xab, 0x9a, 0x5f,
+ 0x12, 0xa1, 0xe6, 0x4e, 0x1b, 0xd8, 0x1c, 0x2e, 0x05, 0xe8, 0x4b, 0x8a,
+ 0x1d, 0x8f, 0x1a, 0xe6, 0x54, 0x52, 0x3f, 0x25,
+};
+static const unsigned char kat3533_nonce[] = {
+ 0x0f, 0x63, 0x99, 0xfe, 0x56, 0x02, 0xb8, 0x74, 0x73, 0xd8, 0xf9, 0xd4,
+ 0xd3, 0xac, 0x9b, 0x52,
+};
+static const unsigned char kat3533_persstr[] = {
+ 0xc8, 0x5a, 0xe1, 0x94, 0xe9, 0xaf, 0xaa, 0xdb, 0xaa, 0x7a, 0x1d, 0x2c,
+ 0xb1, 0x4e, 0xef, 0x49, 0xeb, 0x5a, 0x3f, 0x8a, 0x45, 0x23, 0x48, 0x96,
+ 0x45, 0x23, 0x01, 0x11, 0xbc, 0x01, 0x5e, 0xec,
+};
+static const unsigned char kat3533_entropyinpr1[] = {
+ 0x9e, 0x65, 0x80, 0x32, 0x91, 0x38, 0xc2, 0x5b, 0x9a, 0x65, 0x1f, 0x0f,
+ 0xfb, 0x99, 0x9d, 0x5c, 0xf0, 0x2f, 0xf3, 0xa3, 0x33, 0x34, 0x49, 0x24,
+ 0x27, 0xa2, 0xfc, 0x94, 0xba, 0x9f, 0x36, 0x13,
+};
+static const unsigned char kat3533_addinpr1[] = {
+ 0x1a, 0x7b, 0x50, 0x47, 0xc0, 0x56, 0x30, 0xc4, 0xff, 0x15, 0x05, 0x4e,
+ 0xf2, 0xe3, 0x69, 0x68, 0x08, 0xc1, 0xc6, 0xd1, 0x39, 0x3e, 0xec, 0x4e,
+ 0x85, 0xa2, 0xc0, 0x33, 0xf8, 0x24, 0x18, 0xe4,
+};
+static const unsigned char kat3533_entropyinpr2[] = {
+ 0x7f, 0x75, 0x69, 0x81, 0x34, 0xa0, 0xa2, 0xdc, 0xbf, 0xfc, 0x82, 0xd5,
+ 0x7c, 0xdf, 0x40, 0x3b, 0x01, 0x42, 0x0b, 0x5b, 0x7a, 0x59, 0xaf, 0xfd,
+ 0x67, 0xb7, 0x7b, 0x7b, 0x1a, 0xdf, 0xcc, 0x82,
+};
+static const unsigned char kat3533_addinpr2[] = {
+ 0x9f, 0x6f, 0x40, 0xc3, 0xe9, 0x35, 0x1c, 0xfc, 0x1c, 0x51, 0x72, 0xe4,
+ 0xf7, 0x13, 0xca, 0x96, 0xb3, 0xc1, 0x84, 0xe9, 0xa6, 0x9b, 0xe6, 0xc8,
+ 0xf4, 0xff, 0x54, 0x02, 0xb0, 0xe8, 0xf4, 0x8b,
+};
+static const unsigned char kat3533_retbits[] = {
+ 0x92, 0x40, 0x83, 0x70, 0x60, 0xff, 0xd6, 0x04, 0xb3, 0xbb, 0x7f, 0x35,
+ 0xee, 0x68, 0xf3, 0x4b, 0x84, 0x4d, 0xea, 0xd7, 0xa8, 0x9d, 0xe5, 0x79,
+ 0xba, 0x1f, 0xd4, 0xec, 0xb1, 0x62, 0x5e, 0x85, 0x6b, 0x5e, 0x53, 0xce,
+ 0xe4, 0x90, 0xe3, 0x64, 0x82, 0x77, 0x41, 0x5b, 0xe7, 0x48, 0x29, 0x50,
+ 0xce, 0xb5, 0xbb, 0xea, 0xd0, 0x27, 0xfe, 0x36, 0xa9, 0xe1, 0x08, 0xb7,
+ 0xae, 0x9a, 0x7f, 0x6a,
+};
+static const struct drbg_kat_pr_true kat3533_t = {
+ 7, kat3533_entropyin, kat3533_nonce, kat3533_persstr,
+ kat3533_entropyinpr1, kat3533_addinpr1, kat3533_entropyinpr2,
+ kat3533_addinpr2, kat3533_retbits
+};
+static const struct drbg_kat kat3533 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3533_t
+};
+
+static const unsigned char kat3534_entropyin[] = {
+ 0x26, 0x57, 0xfb, 0xae, 0x48, 0x11, 0x44, 0x4d, 0xa8, 0x6f, 0xba, 0xb9,
+ 0xc5, 0x0b, 0xb8, 0x93, 0xed, 0xd5, 0xdc, 0x93, 0x68, 0x27, 0xbe, 0xbc,
+ 0x05, 0x17, 0x01, 0x15, 0xab, 0x03, 0x9c, 0x79,
+};
+static const unsigned char kat3534_nonce[] = {
+ 0xd0, 0x00, 0x4a, 0xc3, 0x9d, 0x19, 0x74, 0x48, 0xcb, 0xad, 0x72, 0x6d,
+ 0x79, 0xca, 0xc9, 0x8f,
+};
+static const unsigned char kat3534_persstr[] = {
+ 0xe5, 0x58, 0x04, 0xe2, 0x58, 0x14, 0xcd, 0xa1, 0x7d, 0x63, 0x5f, 0xa0,
+ 0x49, 0x6a, 0xf0, 0x6e, 0x9f, 0x33, 0x5c, 0xdf, 0x3d, 0x37, 0xe8, 0x7f,
+ 0x49, 0xbf, 0x9c, 0xda, 0x96, 0xac, 0x7d, 0x49,
+};
+static const unsigned char kat3534_entropyinpr1[] = {
+ 0x29, 0xda, 0xcc, 0x26, 0xd4, 0x89, 0x05, 0x9f, 0x4d, 0xde, 0xc6, 0x28,
+ 0x03, 0x91, 0x69, 0x02, 0x67, 0x02, 0x67, 0xd8, 0x32, 0x5d, 0xe3, 0x14,
+ 0xde, 0xe3, 0x0f, 0x49, 0xb8, 0x9f, 0xf9, 0x1d,
+};
+static const unsigned char kat3534_addinpr1[] = {
+ 0x29, 0xfd, 0x36, 0x31, 0x34, 0x57, 0xfa, 0xd5, 0x6d, 0xbc, 0x11, 0x06,
+ 0x2f, 0xc8, 0xf7, 0x57, 0x6c, 0x0e, 0x5f, 0x38, 0xea, 0xf0, 0xb2, 0x64,
+ 0xb1, 0x65, 0xf4, 0xce, 0x64, 0xe3, 0xfb, 0xd0,
+};
+static const unsigned char kat3534_entropyinpr2[] = {
+ 0x5b, 0x83, 0xa4, 0xf2, 0x1c, 0x4d, 0x70, 0x7c, 0x58, 0x00, 0x7d, 0x04,
+ 0x78, 0x1a, 0x97, 0x2b, 0x5a, 0xbb, 0x87, 0x81, 0x16, 0x85, 0x67, 0x79,
+ 0xfe, 0xd9, 0xe6, 0xe3, 0xb9, 0xe4, 0x4a, 0x50,
+};
+static const unsigned char kat3534_addinpr2[] = {
+ 0xc0, 0xbc, 0x83, 0x19, 0xac, 0x31, 0x6a, 0xe6, 0xf7, 0x1f, 0x7c, 0x51,
+ 0x79, 0x36, 0x33, 0x58, 0x88, 0x32, 0x73, 0x3b, 0x7b, 0x53, 0x08, 0xf2,
+ 0xab, 0x3e, 0xaf, 0x0e, 0x3e, 0xbc, 0xd8, 0x7e,
+};
+static const unsigned char kat3534_retbits[] = {
+ 0x36, 0xaf, 0x67, 0xb5, 0x7a, 0x2c, 0xd2, 0xde, 0x35, 0x38, 0xcd, 0x1a,
+ 0x60, 0x28, 0xa4, 0x97, 0xf3, 0x32, 0x36, 0x6f, 0x35, 0x83, 0x04, 0x0d,
+ 0x87, 0x53, 0x22, 0x2d, 0x14, 0x91, 0xfb, 0x8f, 0x03, 0xdb, 0x97, 0xb0,
+ 0x8c, 0xa0, 0x29, 0xa1, 0xbb, 0x2e, 0x4d, 0xf8, 0xed, 0x50, 0xeb, 0x00,
+ 0x3d, 0x5d, 0x68, 0xe1, 0x5b, 0x23, 0xe9, 0xa4, 0x79, 0xef, 0x78, 0x17,
+ 0x33, 0x15, 0x76, 0xb7,
+};
+static const struct drbg_kat_pr_true kat3534_t = {
+ 8, kat3534_entropyin, kat3534_nonce, kat3534_persstr,
+ kat3534_entropyinpr1, kat3534_addinpr1, kat3534_entropyinpr2,
+ kat3534_addinpr2, kat3534_retbits
+};
+static const struct drbg_kat kat3534 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3534_t
+};
+
+static const unsigned char kat3535_entropyin[] = {
+ 0x08, 0xb2, 0x32, 0x31, 0x9b, 0xbc, 0xd5, 0xbd, 0xf2, 0x72, 0xe3, 0xa0,
+ 0xd4, 0x11, 0x66, 0x6b, 0x56, 0x76, 0xa0, 0x3d, 0xf6, 0xfa, 0x53, 0xa3,
+ 0xba, 0x71, 0xcb, 0xb5, 0x40, 0x72, 0x42, 0xcc,
+};
+static const unsigned char kat3535_nonce[] = {
+ 0x91, 0x9b, 0xfe, 0x07, 0x75, 0xd2, 0x73, 0xfb, 0x20, 0x61, 0x3d, 0xbe,
+ 0xc0, 0xc1, 0x8c, 0x6b,
+};
+static const unsigned char kat3535_persstr[] = {
+ 0xe8, 0x3a, 0xe8, 0xa5, 0x2b, 0x77, 0x8b, 0x26, 0x7f, 0x67, 0x32, 0x2f,
+ 0xf3, 0x89, 0xcf, 0x4e, 0xa5, 0xab, 0x5d, 0x2d, 0x83, 0x57, 0xea, 0x0a,
+ 0x81, 0x60, 0x4a, 0x7c, 0xe4, 0x99, 0x6e, 0x16,
+};
+static const unsigned char kat3535_entropyinpr1[] = {
+ 0x8a, 0xf2, 0xc7, 0xc2, 0x06, 0x50, 0x85, 0x68, 0x83, 0x43, 0x21, 0x0b,
+ 0xe7, 0x79, 0x1e, 0xbb, 0x71, 0x41, 0x9e, 0xa2, 0x6b, 0x08, 0x2a, 0x28,
+ 0x94, 0x98, 0x00, 0x87, 0xb0, 0x86, 0x28, 0x81,
+};
+static const unsigned char kat3535_addinpr1[] = {
+ 0xcd, 0x25, 0xd8, 0xc7, 0x88, 0x42, 0xe4, 0x0d, 0x86, 0x07, 0xd3, 0x50,
+ 0x00, 0x42, 0xed, 0x20, 0xf1, 0xe0, 0x1f, 0xeb, 0xce, 0x4f, 0x86, 0x28,
+ 0xd4, 0x25, 0x5d, 0xd3, 0xdb, 0x55, 0x37, 0x5a,
+};
+static const unsigned char kat3535_entropyinpr2[] = {
+ 0x73, 0x45, 0xa5, 0x69, 0x45, 0x6c, 0x05, 0xfb, 0x62, 0x5e, 0x36, 0xd1,
+ 0x7a, 0xf7, 0x1f, 0x83, 0xd9, 0xbc, 0xc4, 0x26, 0x49, 0x40, 0x4c, 0xa8,
+ 0x0d, 0x22, 0x79, 0x86, 0x59, 0xc8, 0xd4, 0xc3,
+};
+static const unsigned char kat3535_addinpr2[] = {
+ 0xe2, 0xcd, 0x69, 0x96, 0xb8, 0x3a, 0x75, 0x5a, 0x66, 0xbb, 0xca, 0x24,
+ 0x87, 0x86, 0x73, 0x0c, 0xfe, 0xc7, 0xb4, 0x33, 0x0c, 0x63, 0x38, 0x1f,
+ 0x1f, 0x46, 0x56, 0x22, 0xc0, 0xbb, 0xef, 0x51,
+};
+static const unsigned char kat3535_retbits[] = {
+ 0xf8, 0xf4, 0x29, 0xec, 0xb5, 0x99, 0xa8, 0x8f, 0x25, 0xca, 0xe9, 0xa9,
+ 0x0b, 0xf4, 0x48, 0x71, 0x0e, 0x9f, 0x5b, 0xd9, 0x0f, 0x42, 0xc9, 0x36,
+ 0xeb, 0xcd, 0xc8, 0xcd, 0xcf, 0x36, 0xd9, 0x04, 0x3c, 0x64, 0xa8, 0x13,
+ 0x61, 0xc1, 0x2a, 0x67, 0xc2, 0xf4, 0x80, 0x60, 0x30, 0x81, 0xc1, 0x9f,
+ 0x64, 0xef, 0xda, 0x61, 0x86, 0x71, 0x4b, 0xa4, 0x4d, 0x08, 0x3c, 0x60,
+ 0xcb, 0xb7, 0xfb, 0x47,
+};
+static const struct drbg_kat_pr_true kat3535_t = {
+ 9, kat3535_entropyin, kat3535_nonce, kat3535_persstr,
+ kat3535_entropyinpr1, kat3535_addinpr1, kat3535_entropyinpr2,
+ kat3535_addinpr2, kat3535_retbits
+};
+static const struct drbg_kat kat3535 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3535_t
+};
+
+static const unsigned char kat3536_entropyin[] = {
+ 0x78, 0x3c, 0x02, 0x85, 0x00, 0x9f, 0x20, 0x46, 0x52, 0x36, 0x86, 0xe3,
+ 0xa6, 0x00, 0xea, 0x95, 0x84, 0x72, 0x76, 0x76, 0x4d, 0x57, 0xe8, 0xff,
+ 0x1c, 0xde, 0x26, 0xe9, 0xef, 0x2b, 0x8e, 0x04,
+};
+static const unsigned char kat3536_nonce[] = {
+ 0xce, 0x5a, 0x19, 0x9d, 0x4b, 0xe8, 0xed, 0x1e, 0xa6, 0xdf, 0x26, 0x0b,
+ 0x1a, 0x91, 0x17, 0xbf,
+};
+static const unsigned char kat3536_persstr[] = {
+ 0xa2, 0xbe, 0x1b, 0x21, 0xfd, 0x13, 0xef, 0xc5, 0x53, 0x2f, 0xba, 0xb1,
+ 0xa2, 0x82, 0x70, 0xb2, 0x01, 0xb4, 0xa6, 0xe6, 0x5c, 0x79, 0x6e, 0x22,
+ 0xb2, 0x76, 0x58, 0xb1, 0xa3, 0x78, 0xe6, 0xa7,
+};
+static const unsigned char kat3536_entropyinpr1[] = {
+ 0x05, 0x84, 0x19, 0x48, 0x53, 0x9e, 0x4b, 0xcc, 0xc1, 0x5d, 0x6b, 0x70,
+ 0xe4, 0x0e, 0x30, 0xad, 0x0e, 0x8b, 0x21, 0xc9, 0xec, 0x0d, 0x4b, 0x01,
+ 0x5a, 0x2a, 0x56, 0x89, 0x61, 0xe3, 0x67, 0xed,
+};
+static const unsigned char kat3536_addinpr1[] = {
+ 0x3e, 0x40, 0x9f, 0x02, 0x06, 0x08, 0x86, 0xce, 0xbe, 0xc3, 0x08, 0x10,
+ 0x63, 0x08, 0x53, 0x39, 0x0c, 0x88, 0xae, 0x31, 0xa6, 0x1a, 0x30, 0xb4,
+ 0x9c, 0x42, 0x35, 0x27, 0x47, 0xa1, 0x9e, 0xc8,
+};
+static const unsigned char kat3536_entropyinpr2[] = {
+ 0x18, 0x3a, 0x46, 0x12, 0x79, 0x34, 0x8e, 0x3e, 0x46, 0x29, 0x63, 0x72,
+ 0x01, 0xa1, 0x1a, 0x1e, 0x40, 0xed, 0xc8, 0xfc, 0x18, 0x1c, 0xc8, 0x92,
+ 0x24, 0x61, 0x26, 0x61, 0xae, 0x17, 0x2a, 0x1f,
+};
+static const unsigned char kat3536_addinpr2[] = {
+ 0x1e, 0x09, 0x58, 0xa5, 0x5a, 0x40, 0x53, 0xe1, 0xf6, 0x48, 0x3c, 0x94,
+ 0x3d, 0xbc, 0xfb, 0x60, 0x9d, 0x03, 0x76, 0xf2, 0x6b, 0xf0, 0x0d, 0x90,
+ 0xd6, 0x78, 0x79, 0x31, 0x04, 0x77, 0x16, 0xf6,
+};
+static const unsigned char kat3536_retbits[] = {
+ 0x20, 0x2e, 0x9e, 0xae, 0x40, 0xf4, 0xdb, 0xcc, 0xa6, 0x74, 0x83, 0x9d,
+ 0x26, 0xaa, 0x96, 0xe0, 0x1e, 0x77, 0x86, 0xaf, 0xde, 0x1b, 0xaa, 0x97,
+ 0xd1, 0x27, 0x01, 0x08, 0x9e, 0xd6, 0xe7, 0x14, 0x5f, 0x96, 0xad, 0x68,
+ 0x5c, 0x06, 0xee, 0x6a, 0x3c, 0xc2, 0xca, 0xc3, 0x1f, 0xd3, 0x5e, 0xb1,
+ 0x84, 0x16, 0x0c, 0xd3, 0xac, 0xb2, 0x6b, 0xce, 0xe7, 0xd3, 0xf9, 0x1b,
+ 0x99, 0x57, 0x61, 0xb2,
+};
+static const struct drbg_kat_pr_true kat3536_t = {
+ 10, kat3536_entropyin, kat3536_nonce, kat3536_persstr,
+ kat3536_entropyinpr1, kat3536_addinpr1, kat3536_entropyinpr2,
+ kat3536_addinpr2, kat3536_retbits
+};
+static const struct drbg_kat kat3536 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3536_t
+};
+
+static const unsigned char kat3537_entropyin[] = {
+ 0x80, 0x48, 0x95, 0x7c, 0xf9, 0x60, 0x60, 0x74, 0xee, 0x6d, 0x39, 0x43,
+ 0x30, 0x5c, 0x17, 0xa0, 0xb2, 0x81, 0x81, 0xb9, 0x07, 0x69, 0xf5, 0xd9,
+ 0x3a, 0x5a, 0x98, 0xa2, 0x31, 0xa0, 0x37, 0xa4,
+};
+static const unsigned char kat3537_nonce[] = {
+ 0x7e, 0x32, 0xfa, 0xa0, 0x25, 0xd5, 0xb1, 0xe3, 0xfe, 0x36, 0x6d, 0xa5,
+ 0xb4, 0xc4, 0x07, 0xa3,
+};
+static const unsigned char kat3537_persstr[] = {
+ 0x65, 0xab, 0x0a, 0x82, 0x13, 0x7f, 0xdd, 0x84, 0xe9, 0x85, 0xf5, 0x74,
+ 0x81, 0x85, 0x97, 0x9f, 0x42, 0x18, 0x01, 0x0c, 0x03, 0x6d, 0x72, 0xfe,
+ 0xab, 0x40, 0xb3, 0x82, 0x71, 0xca, 0x04, 0x93,
+};
+static const unsigned char kat3537_entropyinpr1[] = {
+ 0xa4, 0x44, 0x39, 0x0d, 0xe2, 0x43, 0xb6, 0x11, 0x88, 0x56, 0x70, 0x83,
+ 0xf5, 0xdd, 0xac, 0x45, 0xce, 0x0a, 0x07, 0xf1, 0xd7, 0xe0, 0x77, 0x8c,
+ 0xc4, 0xa9, 0xa4, 0x4d, 0xfc, 0xe5, 0x24, 0xd3,
+};
+static const unsigned char kat3537_addinpr1[] = {
+ 0x1b, 0x7b, 0x3c, 0xff, 0xb5, 0x6b, 0x5a, 0x86, 0xa9, 0xce, 0x9b, 0x71,
+ 0x24, 0x0f, 0xc3, 0xe0, 0x32, 0xda, 0x7f, 0x83, 0xb3, 0x47, 0x82, 0xbd,
+ 0x6b, 0x7d, 0x53, 0xd8, 0x6c, 0x00, 0xfe, 0xe6,
+};
+static const unsigned char kat3537_entropyinpr2[] = {
+ 0x4b, 0x1e, 0x9b, 0x9f, 0xf3, 0x7e, 0xc8, 0xe5, 0x16, 0x0c, 0xfd, 0xc9,
+ 0x8a, 0x45, 0xbf, 0x12, 0x92, 0x22, 0x43, 0x47, 0xc0, 0x95, 0xfc, 0xd3,
+ 0x06, 0xac, 0xee, 0x22, 0x56, 0xd3, 0x50, 0xce,
+};
+static const unsigned char kat3537_addinpr2[] = {
+ 0x28, 0x29, 0xb1, 0x93, 0x67, 0xff, 0x15, 0x2d, 0x6e, 0x43, 0xad, 0x30,
+ 0x8e, 0x77, 0x6f, 0xea, 0x64, 0x66, 0x62, 0xe2, 0x15, 0xb3, 0x28, 0x76,
+ 0x0b, 0x09, 0xf7, 0xe1, 0x13, 0x26, 0x18, 0xdd,
+};
+static const unsigned char kat3537_retbits[] = {
+ 0x4c, 0x00, 0x08, 0x3e, 0x35, 0x8d, 0xca, 0x53, 0x13, 0x79, 0x40, 0xfc,
+ 0x21, 0x8b, 0xe6, 0x59, 0xd7, 0xc1, 0x12, 0x46, 0x6f, 0x17, 0x5d, 0x99,
+ 0xe5, 0xd9, 0x73, 0x81, 0xeb, 0x71, 0x91, 0x2d, 0x56, 0x09, 0xd8, 0x26,
+ 0xae, 0xa0, 0x83, 0x8b, 0x64, 0x71, 0x5e, 0x22, 0x6e, 0xb7, 0xa8, 0x7b,
+ 0xcd, 0x86, 0x82, 0x43, 0xe6, 0x25, 0x90, 0xd6, 0xa1, 0xab, 0x6c, 0x60,
+ 0xd7, 0x14, 0x70, 0x6c,
+};
+static const struct drbg_kat_pr_true kat3537_t = {
+ 11, kat3537_entropyin, kat3537_nonce, kat3537_persstr,
+ kat3537_entropyinpr1, kat3537_addinpr1, kat3537_entropyinpr2,
+ kat3537_addinpr2, kat3537_retbits
+};
+static const struct drbg_kat kat3537 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3537_t
+};
+
+static const unsigned char kat3538_entropyin[] = {
+ 0xfd, 0xf6, 0xfb, 0xda, 0x2e, 0x50, 0x0d, 0x5a, 0x0b, 0xa6, 0x9a, 0xa2,
+ 0x8a, 0x70, 0x76, 0xd8, 0x6b, 0x68, 0x1d, 0x08, 0x52, 0x23, 0x6f, 0x70,
+ 0x84, 0xec, 0xa9, 0x90, 0x77, 0xe5, 0x4e, 0x34,
+};
+static const unsigned char kat3538_nonce[] = {
+ 0xca, 0xe5, 0xa2, 0x38, 0xa0, 0xab, 0x8a, 0x2b, 0x34, 0x32, 0x93, 0x86,
+ 0x3d, 0x1d, 0xe2, 0xa7,
+};
+static const unsigned char kat3538_persstr[] = {
+ 0xa9, 0xa2, 0x12, 0x42, 0xd9, 0xa1, 0x8f, 0x7f, 0xd3, 0x4c, 0x42, 0x62,
+ 0x06, 0xb6, 0xb7, 0x50, 0xf1, 0x07, 0x7c, 0xd6, 0x2b, 0x6a, 0x02, 0x3b,
+ 0x46, 0x3c, 0x08, 0x60, 0xf1, 0x19, 0x63, 0x8d,
+};
+static const unsigned char kat3538_entropyinpr1[] = {
+ 0x75, 0x6e, 0x91, 0xf8, 0x4a, 0x66, 0x8b, 0x65, 0x10, 0x9f, 0xd0, 0xda,
+ 0xa9, 0xe4, 0x1a, 0x29, 0x26, 0x85, 0x5d, 0xe0, 0x31, 0xa7, 0xca, 0xa9,
+ 0xeb, 0xb6, 0xf8, 0x0e, 0x55, 0xb1, 0xd7, 0x91,
+};
+static const unsigned char kat3538_addinpr1[] = {
+ 0xf5, 0x01, 0x9b, 0x81, 0x2f, 0xcb, 0xcb, 0xcc, 0x0d, 0x6a, 0xac, 0x91,
+ 0x3f, 0x04, 0x77, 0xa5, 0xd0, 0x8b, 0x50, 0xd6, 0x94, 0xd7, 0x9c, 0x48,
+ 0x13, 0x8a, 0x35, 0xf8, 0xfc, 0x28, 0x6a, 0xdb,
+};
+static const unsigned char kat3538_entropyinpr2[] = {
+ 0xae, 0x66, 0xfa, 0xce, 0xb5, 0x4b, 0x68, 0x94, 0x1f, 0x35, 0x12, 0xbf,
+ 0xdb, 0xc0, 0x06, 0xfd, 0x2c, 0x1e, 0xdb, 0xde, 0x81, 0xcf, 0x1d, 0x21,
+ 0x6e, 0x1a, 0xcc, 0x2d, 0xd9, 0x59, 0x81, 0x38,
+};
+static const unsigned char kat3538_addinpr2[] = {
+ 0x49, 0x09, 0xd2, 0x35, 0xc2, 0x1f, 0x5e, 0x2d, 0x9f, 0xf1, 0x2e, 0xe9,
+ 0xce, 0x78, 0x9c, 0xc9, 0x67, 0xf3, 0x5a, 0x88, 0xc7, 0xc1, 0xb1, 0x8e,
+ 0x60, 0xe7, 0xd7, 0x1c, 0x93, 0x5b, 0x2c, 0x62,
+};
+static const unsigned char kat3538_retbits[] = {
+ 0xf5, 0xa5, 0xbc, 0x69, 0x79, 0x7d, 0x03, 0xda, 0x9e, 0x31, 0x37, 0x59,
+ 0x71, 0x7c, 0x5f, 0xf4, 0xc4, 0xee, 0xce, 0x3c, 0xaf, 0x35, 0x04, 0x49,
+ 0x0e, 0x80, 0xca, 0x56, 0x7a, 0xb1, 0x6f, 0x3c, 0xf7, 0xb5, 0x78, 0x77,
+ 0xbc, 0x0d, 0x0f, 0x76, 0x58, 0x26, 0xb7, 0x45, 0x1c, 0x34, 0x54, 0xc7,
+ 0xef, 0xd4, 0x82, 0x31, 0xda, 0xb5, 0xac, 0x84, 0x0d, 0x1d, 0xdb, 0x04,
+ 0xfb, 0xaa, 0x8b, 0x68,
+};
+static const struct drbg_kat_pr_true kat3538_t = {
+ 12, kat3538_entropyin, kat3538_nonce, kat3538_persstr,
+ kat3538_entropyinpr1, kat3538_addinpr1, kat3538_entropyinpr2,
+ kat3538_addinpr2, kat3538_retbits
+};
+static const struct drbg_kat kat3538 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3538_t
+};
+
+static const unsigned char kat3539_entropyin[] = {
+ 0x6e, 0x10, 0x64, 0xee, 0x9e, 0x80, 0x81, 0xba, 0x9f, 0x12, 0xfa, 0x15,
+ 0xa1, 0x4e, 0x72, 0xa5, 0x6a, 0x0b, 0xc4, 0x19, 0x6a, 0x96, 0x5a, 0x92,
+ 0xf0, 0x25, 0x37, 0xe8, 0x11, 0xbf, 0x2f, 0xa1,
+};
+static const unsigned char kat3539_nonce[] = {
+ 0x67, 0x3d, 0xff, 0x90, 0xad, 0x32, 0x8c, 0x32, 0x3a, 0x1c, 0x24, 0x9b,
+ 0xa5, 0xd8, 0x73, 0xa7,
+};
+static const unsigned char kat3539_persstr[] = {
+ 0x99, 0xd5, 0x5d, 0x70, 0x54, 0x56, 0xc2, 0x12, 0x63, 0x8c, 0xe6, 0x57,
+ 0xd9, 0x27, 0x5d, 0x9a, 0x81, 0xfa, 0x91, 0x2c, 0x9f, 0x67, 0xed, 0x62,
+ 0x74, 0xb6, 0x23, 0x96, 0x25, 0x73, 0xb7, 0xa1,
+};
+static const unsigned char kat3539_entropyinpr1[] = {
+ 0x07, 0xb4, 0x48, 0x9c, 0x54, 0x5f, 0x1f, 0xbf, 0x4c, 0x71, 0x58, 0xfc,
+ 0x47, 0x2a, 0x5b, 0x65, 0x98, 0x54, 0x06, 0x83, 0xab, 0xff, 0xac, 0x61,
+ 0x5c, 0x5a, 0x64, 0x58, 0x7b, 0xb8, 0x2e, 0xfc,
+};
+static const unsigned char kat3539_addinpr1[] = {
+ 0xb9, 0x96, 0xe1, 0xdd, 0x92, 0xcc, 0x27, 0x01, 0xe3, 0x6c, 0xdc, 0xc6,
+ 0x92, 0xa7, 0x81, 0xd0, 0x88, 0x96, 0x47, 0xa5, 0xd3, 0x20, 0x8f, 0x41,
+ 0xea, 0x72, 0x7c, 0x6d, 0x24, 0x1d, 0xe1, 0x1d,
+};
+static const unsigned char kat3539_entropyinpr2[] = {
+ 0x6c, 0x70, 0x89, 0x32, 0xa8, 0x0d, 0x37, 0x43, 0xb2, 0x6f, 0xa3, 0x71,
+ 0xf3, 0xc4, 0xc2, 0x48, 0x9b, 0xfd, 0x89, 0x8e, 0xc2, 0x25, 0x78, 0x2f,
+ 0xf1, 0x17, 0x9d, 0xc0, 0x87, 0x4b, 0xb9, 0x49,
+};
+static const unsigned char kat3539_addinpr2[] = {
+ 0x5c, 0xc2, 0x8e, 0x4d, 0x5b, 0xf1, 0x91, 0x0f, 0xd8, 0x8f, 0x92, 0x01,
+ 0xac, 0xab, 0x65, 0xb5, 0xa2, 0x77, 0xde, 0x2d, 0xdf, 0x52, 0x86, 0x85,
+ 0x28, 0xd9, 0x9d, 0x12, 0xd5, 0x80, 0x45, 0x3a,
+};
+static const unsigned char kat3539_retbits[] = {
+ 0xfb, 0x1c, 0x03, 0xf8, 0xc8, 0x08, 0xf9, 0x8e, 0x85, 0x77, 0x54, 0x1b,
+ 0x04, 0x61, 0x98, 0x72, 0x0f, 0xfc, 0xa4, 0x4e, 0xbb, 0x85, 0xa4, 0xa0,
+ 0x73, 0x19, 0x8b, 0x17, 0x02, 0x99, 0x90, 0x6e, 0x0c, 0x1b, 0x19, 0xcc,
+ 0x88, 0x46, 0xff, 0x38, 0xbb, 0x67, 0xfe, 0xd1, 0xef, 0x2c, 0x49, 0x18,
+ 0x3e, 0x91, 0x89, 0xb4, 0x5e, 0x5b, 0xb4, 0xb0, 0x96, 0x7a, 0xed, 0xae,
+ 0x6d, 0x23, 0xa5, 0x8a,
+};
+static const struct drbg_kat_pr_true kat3539_t = {
+ 13, kat3539_entropyin, kat3539_nonce, kat3539_persstr,
+ kat3539_entropyinpr1, kat3539_addinpr1, kat3539_entropyinpr2,
+ kat3539_addinpr2, kat3539_retbits
+};
+static const struct drbg_kat kat3539 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3539_t
+};
+
+static const unsigned char kat3540_entropyin[] = {
+ 0x12, 0x95, 0x93, 0xff, 0x41, 0x86, 0xcd, 0x0a, 0x39, 0x98, 0xcf, 0xad,
+ 0x1c, 0xce, 0x16, 0x5b, 0xc2, 0x60, 0x0b, 0x4f, 0x72, 0xcd, 0x35, 0x9e,
+ 0xb9, 0x61, 0x49, 0x73, 0xd8, 0x44, 0xf3, 0x54,
+};
+static const unsigned char kat3540_nonce[] = {
+ 0xab, 0x7f, 0x73, 0xef, 0x5f, 0x12, 0xe2, 0x00, 0x51, 0x93, 0xa3, 0x0e,
+ 0xc8, 0x71, 0x44, 0x43,
+};
+static const unsigned char kat3540_persstr[] = {
+ 0xf8, 0x35, 0x8e, 0x83, 0x26, 0xc7, 0xee, 0xb7, 0xec, 0x04, 0xdf, 0xbe,
+ 0x07, 0x5c, 0x15, 0xdb, 0xa6, 0x64, 0x2d, 0x29, 0x52, 0x7a, 0x1a, 0x06,
+ 0x62, 0x04, 0x49, 0xef, 0xa7, 0x73, 0x8a, 0x42,
+};
+static const unsigned char kat3540_entropyinpr1[] = {
+ 0x13, 0x0e, 0x77, 0x68, 0x11, 0xa9, 0xad, 0x54, 0x6c, 0xbd, 0x88, 0xc4,
+ 0xe2, 0x10, 0x54, 0x2f, 0x69, 0x8d, 0x4b, 0x3d, 0x1e, 0x71, 0x73, 0x90,
+ 0x99, 0x13, 0x3f, 0x8c, 0x62, 0x0e, 0x21, 0xe7,
+};
+static const unsigned char kat3540_addinpr1[] = {
+ 0x44, 0x03, 0x91, 0xfd, 0x91, 0x3a, 0x12, 0x44, 0xf0, 0xdc, 0x7c, 0xc5,
+ 0x11, 0xa9, 0x68, 0xff, 0xed, 0x70, 0x9b, 0x4e, 0xdd, 0x8d, 0x24, 0x08,
+ 0x82, 0x74, 0x41, 0x65, 0x90, 0x62, 0x39, 0xd3,
+};
+static const unsigned char kat3540_entropyinpr2[] = {
+ 0x0c, 0x15, 0xcf, 0x3b, 0x8d, 0x2f, 0x82, 0x6c, 0x5d, 0x04, 0xd5, 0x5e,
+ 0x1e, 0xfb, 0x17, 0x8b, 0xe9, 0x10, 0xf7, 0x17, 0xb6, 0x4b, 0x05, 0x26,
+ 0xed, 0x44, 0x9e, 0x45, 0x45, 0xf7, 0xe8, 0xa4,
+};
+static const unsigned char kat3540_addinpr2[] = {
+ 0x9a, 0x55, 0xd6, 0x83, 0x12, 0x3e, 0x51, 0xc9, 0x5d, 0xb2, 0xa7, 0x74,
+ 0xa4, 0xff, 0x0c, 0x52, 0x74, 0xc1, 0x23, 0x68, 0x23, 0x7b, 0xc1, 0x1a,
+ 0xb0, 0x7f, 0x03, 0x1c, 0x8a, 0xa0, 0xd7, 0x05,
+};
+static const unsigned char kat3540_retbits[] = {
+ 0x40, 0xd6, 0xb6, 0x9f, 0xd1, 0x4a, 0x20, 0x02, 0xe5, 0x3c, 0x68, 0x4c,
+ 0x76, 0xad, 0x79, 0x4d, 0xd6, 0xba, 0x07, 0x69, 0x8d, 0x94, 0x1d, 0x72,
+ 0x7a, 0x99, 0x7d, 0x3b, 0x3b, 0xa1, 0x17, 0xc2, 0xbe, 0xab, 0x5d, 0x67,
+ 0x59, 0x05, 0x8c, 0x0c, 0x9e, 0x46, 0x12, 0x6b, 0x56, 0xd6, 0xc7, 0x53,
+ 0xba, 0xa3, 0x1e, 0x9e, 0xc2, 0xc5, 0x7b, 0x1d, 0xcf, 0xda, 0xd8, 0x78,
+ 0x99, 0x88, 0x3a, 0xd9,
+};
+static const struct drbg_kat_pr_true kat3540_t = {
+ 14, kat3540_entropyin, kat3540_nonce, kat3540_persstr,
+ kat3540_entropyinpr1, kat3540_addinpr1, kat3540_entropyinpr2,
+ kat3540_addinpr2, kat3540_retbits
+};
+static const struct drbg_kat kat3540 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3540_t
+};
+
+static const unsigned char kat3541_entropyin[] = {
+ 0x11, 0xc1, 0xe5, 0xa6, 0xf8, 0x4f, 0x57, 0x33, 0xb7, 0x7d, 0x1f, 0x0a,
+ 0xe4, 0xfc, 0x38, 0xa0, 0x7e, 0x8c, 0xad, 0x9f, 0xc0, 0xab, 0x98, 0x7b,
+ 0xfe, 0x07, 0x19, 0x47, 0xa5, 0x4e, 0x2c, 0xad,
+};
+static const unsigned char kat3541_nonce[] = {
+ 0x68, 0xef, 0x00, 0xf2, 0x2b, 0x20, 0xf3, 0x15, 0x86, 0x73, 0xc8, 0x9a,
+ 0xc9, 0x6a, 0x55, 0xf2,
+};
+static const unsigned char kat3541_persstr[] = {0};
+static const unsigned char kat3541_entropyinpr1[] = {
+ 0x0b, 0xd0, 0x55, 0x2e, 0x81, 0x2f, 0xff, 0x18, 0xc5, 0x32, 0xbb, 0x57,
+ 0xcb, 0x62, 0xb9, 0x2a, 0x4e, 0x61, 0xe3, 0xe9, 0x61, 0xb8, 0x95, 0xe4,
+ 0x45, 0x8b, 0xf2, 0x98, 0xec, 0xa8, 0x37, 0xd3,
+};
+static const unsigned char kat3541_addinpr1[] = {0};
+static const unsigned char kat3541_entropyinpr2[] = {
+ 0x54, 0xaf, 0x1e, 0x7f, 0xf9, 0x15, 0x33, 0xd0, 0xcb, 0x54, 0x6e, 0x85,
+ 0xba, 0x29, 0x10, 0xba, 0x4a, 0xdb, 0x04, 0x74, 0xe6, 0x3b, 0x7f, 0x96,
+ 0xc8, 0x90, 0x43, 0xf5, 0xab, 0x70, 0xe9, 0x25,
+};
+static const unsigned char kat3541_addinpr2[] = {0};
+static const unsigned char kat3541_retbits[] = {
+ 0x73, 0x6e, 0x67, 0x82, 0x02, 0xe6, 0x4c, 0x8c, 0x47, 0x74, 0xda, 0xf6,
+ 0xed, 0xba, 0x97, 0x6e, 0x68, 0xda, 0xd5, 0x4f, 0xc2, 0xae, 0x71, 0x3b,
+ 0xaf, 0x77, 0x99, 0xc8, 0xdc, 0xd9, 0x8a, 0x0d, 0x12, 0x4a, 0xb5, 0x52,
+ 0xbe, 0x80, 0x11, 0x37, 0xd7, 0x64, 0x3a, 0xb1, 0x1a, 0x90, 0x2e, 0x2c,
+ 0xe6, 0x07, 0x36, 0x64, 0xd6, 0x2b, 0x5e, 0xb9, 0xf5, 0x0a, 0xf5, 0x7d,
+ 0xc9, 0xbb, 0x77, 0xa2,
+};
+static const struct drbg_kat_pr_true kat3541_t = {
+ 0, kat3541_entropyin, kat3541_nonce, kat3541_persstr,
+ kat3541_entropyinpr1, kat3541_addinpr1, kat3541_entropyinpr2,
+ kat3541_addinpr2, kat3541_retbits
+};
+static const struct drbg_kat kat3541 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3541_t
+};
+
+static const unsigned char kat3542_entropyin[] = {
+ 0xbb, 0x68, 0xde, 0x06, 0xe7, 0x52, 0xa9, 0xe7, 0xcd, 0x80, 0x8e, 0x27,
+ 0xea, 0xa5, 0x86, 0xea, 0x1e, 0xa5, 0x0d, 0x02, 0x85, 0x86, 0xe7, 0x16,
+ 0x28, 0x2b, 0x30, 0xff, 0x80, 0x8c, 0xb5, 0x8a,
+};
+static const unsigned char kat3542_nonce[] = {
+ 0xc5, 0xe3, 0xa2, 0x14, 0x2a, 0x07, 0x9c, 0xb2, 0xa1, 0xb5, 0x5f, 0xa8,
+ 0xca, 0x20, 0xcc, 0x2b,
+};
+static const unsigned char kat3542_persstr[] = {0};
+static const unsigned char kat3542_entropyinpr1[] = {
+ 0xbd, 0x7b, 0xaa, 0x6c, 0x7d, 0xed, 0x0a, 0x67, 0x9c, 0xa6, 0xff, 0xc8,
+ 0x7f, 0x6c, 0x7b, 0x54, 0x9a, 0x51, 0xab, 0xcc, 0xf6, 0x56, 0x81, 0x10,
+ 0x01, 0xc6, 0xce, 0xde, 0x85, 0x1a, 0xde, 0xb8,
+};
+static const unsigned char kat3542_addinpr1[] = {0};
+static const unsigned char kat3542_entropyinpr2[] = {
+ 0x2e, 0x3e, 0x81, 0x5c, 0x63, 0x84, 0x54, 0x3b, 0x22, 0x2e, 0x7b, 0x4c,
+ 0x8c, 0x60, 0x0f, 0x29, 0x60, 0xff, 0xd9, 0x87, 0xd9, 0x43, 0x9a, 0x6d,
+ 0x14, 0xe4, 0x23, 0x4a, 0x36, 0x55, 0x47, 0x91,
+};
+static const unsigned char kat3542_addinpr2[] = {0};
+static const unsigned char kat3542_retbits[] = {
+ 0xdd, 0x67, 0x2f, 0x75, 0x3f, 0x51, 0x15, 0x37, 0x82, 0x30, 0xd5, 0xe0,
+ 0xf0, 0x8e, 0x87, 0x28, 0x73, 0xad, 0xf9, 0x92, 0xe2, 0xf7, 0xa2, 0x32,
+ 0x94, 0xee, 0x88, 0xae, 0x57, 0x30, 0xa8, 0x2c, 0x8a, 0xfd, 0x26, 0x0e,
+ 0x9e, 0xf0, 0x2c, 0x5d, 0xa6, 0x74, 0x3e, 0xad, 0xc0, 0x54, 0x7f, 0x26,
+ 0x95, 0xba, 0xf1, 0x58, 0x55, 0x8e, 0x18, 0x7f, 0x4b, 0xee, 0x83, 0x6e,
+ 0x59, 0x54, 0xd4, 0xc3,
+};
+static const struct drbg_kat_pr_true kat3542_t = {
+ 1, kat3542_entropyin, kat3542_nonce, kat3542_persstr,
+ kat3542_entropyinpr1, kat3542_addinpr1, kat3542_entropyinpr2,
+ kat3542_addinpr2, kat3542_retbits
+};
+static const struct drbg_kat kat3542 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3542_t
+};
+
+static const unsigned char kat3543_entropyin[] = {
+ 0xce, 0x36, 0xc5, 0x54, 0xe3, 0xa6, 0xf9, 0xf6, 0xfe, 0x4a, 0xfe, 0x21,
+ 0x02, 0x60, 0x24, 0x54, 0xd9, 0x8c, 0x5a, 0xc8, 0xdd, 0xee, 0x12, 0x1e,
+ 0xcc, 0xa3, 0x82, 0x40, 0xd2, 0xba, 0x64, 0x63,
+};
+static const unsigned char kat3543_nonce[] = {
+ 0x5f, 0x38, 0xf7, 0x0e, 0x8c, 0x0a, 0xeb, 0xf8, 0x44, 0xf9, 0x3d, 0x9b,
+ 0x47, 0x7a, 0x7a, 0x12,
+};
+static const unsigned char kat3543_persstr[] = {0};
+static const unsigned char kat3543_entropyinpr1[] = {
+ 0x64, 0x64, 0xb3, 0xab, 0x30, 0x1a, 0xf2, 0x4b, 0x7e, 0x26, 0xee, 0x3c,
+ 0x9c, 0xc9, 0x7d, 0x61, 0xb9, 0x00, 0x23, 0x8a, 0x80, 0x6d, 0x2e, 0xb8,
+ 0x7c, 0x26, 0x4e, 0x18, 0x25, 0x9d, 0xc6, 0x49,
+};
+static const unsigned char kat3543_addinpr1[] = {0};
+static const unsigned char kat3543_entropyinpr2[] = {
+ 0x0f, 0xe0, 0x90, 0xb4, 0x44, 0x31, 0x9f, 0x54, 0xcc, 0xfd, 0xda, 0x4a,
+ 0xe9, 0x78, 0xcd, 0xad, 0x67, 0x85, 0xf6, 0xbd, 0xab, 0x23, 0x4e, 0x79,
+ 0xbe, 0x65, 0x8e, 0xe7, 0x4d, 0x8c, 0x57, 0x02,
+};
+static const unsigned char kat3543_addinpr2[] = {0};
+static const unsigned char kat3543_retbits[] = {
+ 0xf1, 0xa4, 0x2e, 0xf1, 0xb5, 0xf3, 0x24, 0x86, 0x49, 0xca, 0x26, 0x08,
+ 0x0c, 0x73, 0x27, 0x6e, 0x48, 0xea, 0x16, 0xf8, 0x94, 0x9d, 0x71, 0x8f,
+ 0x8c, 0x8f, 0x3b, 0xf8, 0x5b, 0x7c, 0x45, 0xb5, 0x8f, 0x82, 0x0f, 0xd4,
+ 0xd5, 0xc3, 0xe7, 0x95, 0x67, 0x10, 0x49, 0x53, 0xf1, 0x13, 0x98, 0x86,
+ 0x75, 0xc6, 0x19, 0x97, 0xaf, 0xb0, 0xf8, 0x4d, 0xce, 0xe8, 0xa6, 0x58,
+ 0xd1, 0x44, 0x50, 0xc0,
+};
+static const struct drbg_kat_pr_true kat3543_t = {
+ 2, kat3543_entropyin, kat3543_nonce, kat3543_persstr,
+ kat3543_entropyinpr1, kat3543_addinpr1, kat3543_entropyinpr2,
+ kat3543_addinpr2, kat3543_retbits
+};
+static const struct drbg_kat kat3543 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3543_t
+};
+
+static const unsigned char kat3544_entropyin[] = {
+ 0x8f, 0x52, 0x6e, 0xcd, 0xec, 0x66, 0x19, 0x30, 0xf4, 0xec, 0x0d, 0xb1,
+ 0xd3, 0x4c, 0x4f, 0xdb, 0x81, 0xda, 0xcc, 0x30, 0x8a, 0x85, 0x78, 0x0f,
+ 0x25, 0x9e, 0xf0, 0xea, 0x30, 0x74, 0x8b, 0xc8,
+};
+static const unsigned char kat3544_nonce[] = {
+ 0x09, 0xeb, 0x6d, 0x69, 0x20, 0x7a, 0x93, 0x0d, 0x90, 0x46, 0x84, 0x8b,
+ 0xa8, 0xbe, 0x40, 0xec,
+};
+static const unsigned char kat3544_persstr[] = {0};
+static const unsigned char kat3544_entropyinpr1[] = {
+ 0x4a, 0x0e, 0x29, 0x3b, 0x71, 0x52, 0xfe, 0x7c, 0x8e, 0x3a, 0xf4, 0xbd,
+ 0x88, 0xc0, 0xc5, 0x06, 0x31, 0xa3, 0x10, 0xd0, 0x57, 0xb0, 0x9b, 0xb7,
+ 0x91, 0xf9, 0x98, 0x57, 0xd4, 0x22, 0x2c, 0x5d,
+};
+static const unsigned char kat3544_addinpr1[] = {0};
+static const unsigned char kat3544_entropyinpr2[] = {
+ 0x48, 0x7f, 0x43, 0x63, 0x53, 0x19, 0x9d, 0x7f, 0x79, 0x33, 0x7c, 0xfb,
+ 0xb4, 0xb2, 0x16, 0x03, 0x9c, 0x7d, 0x8e, 0xd0, 0x8c, 0x0e, 0xcf, 0xd0,
+ 0x80, 0xd2, 0xc0, 0xc4, 0xc4, 0x26, 0xd1, 0x41,
+};
+static const unsigned char kat3544_addinpr2[] = {0};
+static const unsigned char kat3544_retbits[] = {
+ 0x6e, 0x9e, 0x0c, 0xed, 0x10, 0xe7, 0x31, 0x3c, 0x62, 0xd2, 0xb2, 0xd1,
+ 0xe8, 0x95, 0x24, 0xc8, 0x83, 0xcc, 0x17, 0x9e, 0x36, 0xe8, 0x01, 0x42,
+ 0x84, 0x3a, 0xdb, 0xd6, 0xc7, 0x55, 0x6c, 0x06, 0x7c, 0xae, 0x71, 0x83,
+ 0xd5, 0xa0, 0x40, 0x37, 0xc3, 0x9a, 0x0c, 0xd8, 0xbc, 0xaa, 0x19, 0x23,
+ 0x17, 0x06, 0x8f, 0x14, 0x4c, 0x22, 0x02, 0x4b, 0x33, 0x90, 0x36, 0x31,
+ 0xbf, 0x84, 0x54, 0x92,
+};
+static const struct drbg_kat_pr_true kat3544_t = {
+ 3, kat3544_entropyin, kat3544_nonce, kat3544_persstr,
+ kat3544_entropyinpr1, kat3544_addinpr1, kat3544_entropyinpr2,
+ kat3544_addinpr2, kat3544_retbits
+};
+static const struct drbg_kat kat3544 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3544_t
+};
+
+static const unsigned char kat3545_entropyin[] = {
+ 0x73, 0x9e, 0xc5, 0x70, 0x0f, 0x52, 0x48, 0xcb, 0xb6, 0x48, 0xbe, 0x9a,
+ 0xea, 0xfa, 0x95, 0x25, 0xa2, 0x25, 0xe4, 0xc2, 0xeb, 0xce, 0x3e, 0x81,
+ 0xaf, 0xb9, 0x57, 0xb9, 0x09, 0x09, 0x87, 0xe5,
+};
+static const unsigned char kat3545_nonce[] = {
+ 0x6e, 0x2b, 0x9b, 0xfc, 0x28, 0x58, 0x6f, 0x6f, 0x79, 0x5d, 0xb2, 0x58,
+ 0xda, 0x06, 0x01, 0x5a,
+};
+static const unsigned char kat3545_persstr[] = {0};
+static const unsigned char kat3545_entropyinpr1[] = {
+ 0xa9, 0xbe, 0xa4, 0xaf, 0x42, 0x07, 0x8b, 0x7e, 0xf0, 0x10, 0xbf, 0x6b,
+ 0x79, 0x89, 0x2c, 0xa5, 0xa9, 0x3d, 0xde, 0x17, 0x43, 0x4d, 0xfb, 0xad,
+ 0x7e, 0x84, 0x17, 0xf6, 0x2f, 0x57, 0xac, 0x9e,
+};
+static const unsigned char kat3545_addinpr1[] = {0};
+static const unsigned char kat3545_entropyinpr2[] = {
+ 0x92, 0xb3, 0x75, 0x60, 0xcd, 0x72, 0xd3, 0x17, 0xb1, 0x29, 0x4a, 0xff,
+ 0x70, 0xfd, 0xe4, 0xd6, 0xcb, 0xfd, 0x5b, 0x7c, 0x37, 0x34, 0xf8, 0x21,
+ 0xbd, 0x99, 0x94, 0x13, 0x95, 0x4c, 0x23, 0x92,
+};
+static const unsigned char kat3545_addinpr2[] = {0};
+static const unsigned char kat3545_retbits[] = {
+ 0x37, 0x70, 0x47, 0x64, 0xb1, 0x3c, 0xf3, 0x2d, 0xb0, 0xce, 0x6e, 0xac,
+ 0xf9, 0x20, 0xd2, 0xa3, 0x00, 0x7d, 0xcf, 0x87, 0x8e, 0x48, 0x1a, 0xec,
+ 0x4c, 0x07, 0x29, 0x1d, 0x9e, 0xd8, 0xaa, 0x93, 0x65, 0x1c, 0x53, 0x6e,
+ 0xaa, 0xba, 0xb3, 0xd4, 0x4a, 0x57, 0x81, 0xcc, 0xf0, 0x0d, 0x8f, 0xcc,
+ 0x1a, 0xb2, 0xfe, 0x39, 0x37, 0xaf, 0xfc, 0x5f, 0x77, 0x55, 0x02, 0x7a,
+ 0xfc, 0x37, 0xfe, 0x36,
+};
+static const struct drbg_kat_pr_true kat3545_t = {
+ 4, kat3545_entropyin, kat3545_nonce, kat3545_persstr,
+ kat3545_entropyinpr1, kat3545_addinpr1, kat3545_entropyinpr2,
+ kat3545_addinpr2, kat3545_retbits
+};
+static const struct drbg_kat kat3545 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3545_t
+};
+
+static const unsigned char kat3546_entropyin[] = {
+ 0x9f, 0x09, 0xc4, 0xe2, 0x73, 0x0a, 0xd8, 0x3b, 0x23, 0xb8, 0x9b, 0x88,
+ 0x68, 0x35, 0xf2, 0x73, 0x5a, 0xb0, 0x0e, 0x57, 0x42, 0x8a, 0xc2, 0x70,
+ 0x51, 0xa5, 0xd2, 0xea, 0x8a, 0xc6, 0x96, 0x8f,
+};
+static const unsigned char kat3546_nonce[] = {
+ 0xfa, 0x24, 0xa5, 0x1c, 0x41, 0x1c, 0xd8, 0x29, 0x85, 0x02, 0xde, 0x20,
+ 0x77, 0x36, 0x77, 0xa2,
+};
+static const unsigned char kat3546_persstr[] = {0};
+static const unsigned char kat3546_entropyinpr1[] = {
+ 0x5b, 0xfb, 0x7f, 0x78, 0xa3, 0xc3, 0x3d, 0xab, 0xd6, 0x24, 0x94, 0x62,
+ 0xeb, 0xa7, 0x0f, 0x5c, 0x4b, 0xac, 0x72, 0x22, 0x90, 0x70, 0xef, 0xa4,
+ 0x17, 0x82, 0x59, 0xa2, 0x3f, 0xbb, 0x5b, 0x4b,
+};
+static const unsigned char kat3546_addinpr1[] = {0};
+static const unsigned char kat3546_entropyinpr2[] = {
+ 0x1b, 0xd6, 0x12, 0x3f, 0x5e, 0x57, 0xfa, 0xf2, 0xbf, 0x2e, 0x7e, 0xcd,
+ 0xee, 0x25, 0x4f, 0xfe, 0x2f, 0xdc, 0x9d, 0xea, 0x93, 0x64, 0x80, 0xc5,
+ 0x3a, 0x57, 0xa5, 0x12, 0x64, 0xfb, 0x87, 0x46,
+};
+static const unsigned char kat3546_addinpr2[] = {0};
+static const unsigned char kat3546_retbits[] = {
+ 0xb1, 0x4d, 0x83, 0x22, 0x84, 0xb3, 0x35, 0x19, 0x2d, 0xcb, 0x89, 0x59,
+ 0x19, 0xa2, 0x97, 0x11, 0xed, 0xdc, 0x91, 0xad, 0x3a, 0xd4, 0xb4, 0x88,
+ 0xde, 0x26, 0x53, 0x1e, 0x16, 0xdb, 0x47, 0xd2, 0x39, 0xfa, 0x9e, 0x03,
+ 0x07, 0x1d, 0x16, 0x07, 0x42, 0x43, 0x72, 0xc8, 0xe0, 0xf5, 0x8c, 0xb9,
+ 0xd9, 0x71, 0xfa, 0x45, 0x07, 0xdd, 0x58, 0xd3, 0x0d, 0xc6, 0x60, 0x29,
+ 0xda, 0xb6, 0x5f, 0xcc,
+};
+static const struct drbg_kat_pr_true kat3546_t = {
+ 5, kat3546_entropyin, kat3546_nonce, kat3546_persstr,
+ kat3546_entropyinpr1, kat3546_addinpr1, kat3546_entropyinpr2,
+ kat3546_addinpr2, kat3546_retbits
+};
+static const struct drbg_kat kat3546 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3546_t
+};
+
+static const unsigned char kat3547_entropyin[] = {
+ 0x31, 0x5e, 0x35, 0xd0, 0x33, 0x8f, 0xb2, 0x69, 0x0a, 0x06, 0xe3, 0x63,
+ 0xd6, 0x63, 0x8a, 0xa8, 0x37, 0x09, 0x9b, 0x6f, 0x25, 0xfd, 0xef, 0xbd,
+ 0x19, 0x4b, 0xa0, 0xe4, 0x8f, 0x6c, 0x09, 0x9c,
+};
+static const unsigned char kat3547_nonce[] = {
+ 0x6d, 0x8f, 0x59, 0x08, 0x6f, 0x29, 0x72, 0x90, 0x81, 0x8f, 0x53, 0x4d,
+ 0x5e, 0xed, 0xf9, 0x6f,
+};
+static const unsigned char kat3547_persstr[] = {0};
+static const unsigned char kat3547_entropyinpr1[] = {
+ 0x40, 0x58, 0x6a, 0xfd, 0xae, 0x48, 0x33, 0x42, 0xa2, 0xf8, 0x7b, 0xed,
+ 0x91, 0x61, 0xc1, 0xa8, 0xd9, 0xb8, 0x49, 0xfb, 0x0f, 0xd5, 0x30, 0x26,
+ 0x81, 0xa2, 0xbc, 0xf1, 0x64, 0x88, 0x2c, 0x30,
+};
+static const unsigned char kat3547_addinpr1[] = {0};
+static const unsigned char kat3547_entropyinpr2[] = {
+ 0xde, 0xec, 0x53, 0x94, 0xf9, 0x2e, 0x0b, 0x37, 0x27, 0x22, 0xda, 0x45,
+ 0x9d, 0xd0, 0x58, 0x76, 0x55, 0x3f, 0xff, 0xd2, 0x52, 0x58, 0x9b, 0x9a,
+ 0xa3, 0xae, 0x38, 0x0a, 0x19, 0xa3, 0x86, 0x98,
+};
+static const unsigned char kat3547_addinpr2[] = {0};
+static const unsigned char kat3547_retbits[] = {
+ 0x2c, 0x2f, 0x04, 0xe3, 0x12, 0x1f, 0x4e, 0x31, 0x7a, 0x49, 0xd0, 0xfb,
+ 0xf6, 0xbc, 0xfe, 0x5b, 0xd6, 0x18, 0x2c, 0x39, 0xcd, 0x5d, 0x3d, 0x6d,
+ 0x5e, 0x55, 0x8d, 0x1c, 0xfb, 0x51, 0xd3, 0xe9, 0x35, 0x24, 0x17, 0x3b,
+ 0x0a, 0x91, 0xd4, 0xec, 0xb7, 0x14, 0x1e, 0xa2, 0x16, 0xe1, 0xa0, 0x34,
+ 0x52, 0x05, 0xd9, 0x8a, 0x16, 0xf4, 0xf6, 0xc5, 0xae, 0xb4, 0xb1, 0x53,
+ 0xd8, 0x3e, 0xe7, 0x25,
+};
+static const struct drbg_kat_pr_true kat3547_t = {
+ 6, kat3547_entropyin, kat3547_nonce, kat3547_persstr,
+ kat3547_entropyinpr1, kat3547_addinpr1, kat3547_entropyinpr2,
+ kat3547_addinpr2, kat3547_retbits
+};
+static const struct drbg_kat kat3547 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3547_t
+};
+
+static const unsigned char kat3548_entropyin[] = {
+ 0x5a, 0xa7, 0x04, 0x8f, 0xef, 0x04, 0x0c, 0x8f, 0x56, 0xac, 0xa6, 0x8a,
+ 0x46, 0x90, 0x0f, 0xe1, 0x48, 0x62, 0xd6, 0x67, 0xe2, 0x0e, 0xf7, 0xfa,
+ 0xf4, 0xa6, 0x7e, 0x1d, 0x75, 0x84, 0x37, 0x81,
+};
+static const unsigned char kat3548_nonce[] = {
+ 0x2f, 0xf0, 0x73, 0xfb, 0x3a, 0xf5, 0xad, 0xc9, 0xbc, 0xf0, 0x0d, 0xa5,
+ 0x7b, 0xeb, 0x52, 0x5d,
+};
+static const unsigned char kat3548_persstr[] = {0};
+static const unsigned char kat3548_entropyinpr1[] = {
+ 0x8c, 0x83, 0x8d, 0x5d, 0xcb, 0xd3, 0xc4, 0x5b, 0x36, 0xe1, 0xa0, 0x9f,
+ 0xfa, 0x50, 0xb3, 0x2e, 0x1c, 0x78, 0x96, 0x95, 0x1f, 0x4c, 0x2d, 0x3e,
+ 0xcf, 0x62, 0x2c, 0x9f, 0x2d, 0x7a, 0xe3, 0xee,
+};
+static const unsigned char kat3548_addinpr1[] = {0};
+static const unsigned char kat3548_entropyinpr2[] = {
+ 0xf7, 0x7b, 0xb0, 0xe1, 0x7e, 0x9e, 0x39, 0x8e, 0xeb, 0x04, 0xac, 0x52,
+ 0x28, 0xfc, 0xf7, 0x48, 0xd6, 0x89, 0x9b, 0xae, 0x78, 0xa7, 0xdb, 0xcd,
+ 0xb9, 0x10, 0xae, 0xa0, 0x53, 0x05, 0x33, 0x09,
+};
+static const unsigned char kat3548_addinpr2[] = {0};
+static const unsigned char kat3548_retbits[] = {
+ 0x3b, 0xf1, 0x48, 0xda, 0x2d, 0xa0, 0x3a, 0x69, 0x49, 0x6a, 0x50, 0xfa,
+ 0xf1, 0x89, 0x65, 0x76, 0x49, 0x05, 0x8f, 0x7c, 0x66, 0x17, 0xb1, 0x1a,
+ 0x35, 0x11, 0x06, 0x89, 0x8a, 0xd8, 0x60, 0x2a, 0xf8, 0xa5, 0xbb, 0x63,
+ 0x6e, 0x9a, 0x45, 0x6e, 0xe9, 0x3c, 0x96, 0x52, 0x5d, 0xc4, 0x83, 0x8c,
+ 0x76, 0x15, 0x46, 0xc7, 0x71, 0x2f, 0x1c, 0x39, 0xd1, 0xf6, 0xb1, 0xcc,
+ 0x36, 0xe9, 0x64, 0x9c,
+};
+static const struct drbg_kat_pr_true kat3548_t = {
+ 7, kat3548_entropyin, kat3548_nonce, kat3548_persstr,
+ kat3548_entropyinpr1, kat3548_addinpr1, kat3548_entropyinpr2,
+ kat3548_addinpr2, kat3548_retbits
+};
+static const struct drbg_kat kat3548 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3548_t
+};
+
+static const unsigned char kat3549_entropyin[] = {
+ 0xa0, 0xdd, 0xf3, 0xfe, 0x34, 0x1a, 0x71, 0x19, 0x8c, 0x01, 0x58, 0xee,
+ 0x50, 0x18, 0x19, 0x84, 0x03, 0x2c, 0xfb, 0x62, 0x76, 0xde, 0xaf, 0x8b,
+ 0x43, 0x18, 0xbb, 0xb7, 0xed, 0xbc, 0x64, 0xc4,
+};
+static const unsigned char kat3549_nonce[] = {
+ 0xf2, 0x1d, 0x58, 0x9a, 0x47, 0xbf, 0x64, 0x06, 0xb6, 0xdc, 0x5b, 0x98,
+ 0x98, 0x01, 0xd8, 0x8e,
+};
+static const unsigned char kat3549_persstr[] = {0};
+static const unsigned char kat3549_entropyinpr1[] = {
+ 0xc1, 0x79, 0xe0, 0x1e, 0x69, 0xf2, 0x8a, 0xa7, 0x7a, 0x86, 0x1f, 0x11,
+ 0x4f, 0x34, 0x9a, 0x3c, 0x56, 0x68, 0x8e, 0x57, 0xcf, 0xf1, 0xb1, 0xe8,
+ 0x85, 0x79, 0xcd, 0x7d, 0xff, 0xda, 0xfb, 0x83,
+};
+static const unsigned char kat3549_addinpr1[] = {0};
+static const unsigned char kat3549_entropyinpr2[] = {
+ 0xe4, 0x73, 0xca, 0xb7, 0x6e, 0x5f, 0xad, 0x3b, 0x11, 0x8d, 0xdc, 0x00,
+ 0xf9, 0x0f, 0xe7, 0xf0, 0x7c, 0x1d, 0xe9, 0xf3, 0x38, 0x3a, 0xdf, 0xe0,
+ 0x0a, 0xff, 0x33, 0xfc, 0x7c, 0xf5, 0xeb, 0xda,
+};
+static const unsigned char kat3549_addinpr2[] = {0};
+static const unsigned char kat3549_retbits[] = {
+ 0xf5, 0xbb, 0x6f, 0x85, 0xd6, 0x04, 0x3d, 0x3a, 0x3c, 0xe3, 0x23, 0xd7,
+ 0x8f, 0xdf, 0xec, 0xdf, 0x3c, 0xce, 0xa2, 0x79, 0xc7, 0x0c, 0xba, 0xf5,
+ 0x3f, 0xb3, 0x24, 0xb4, 0xd6, 0x59, 0x99, 0xc4, 0x05, 0x52, 0xd4, 0x78,
+ 0x86, 0xd0, 0xde, 0x79, 0xa4, 0x49, 0xd0, 0xb6, 0xc4, 0xa9, 0xba, 0x78,
+ 0x7e, 0x08, 0x78, 0xe2, 0x74, 0x36, 0xac, 0x3e, 0x56, 0x88, 0x7c, 0x9c,
+ 0xb8, 0xca, 0xc6, 0xce,
+};
+static const struct drbg_kat_pr_true kat3549_t = {
+ 8, kat3549_entropyin, kat3549_nonce, kat3549_persstr,
+ kat3549_entropyinpr1, kat3549_addinpr1, kat3549_entropyinpr2,
+ kat3549_addinpr2, kat3549_retbits
+};
+static const struct drbg_kat kat3549 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3549_t
+};
+
+static const unsigned char kat3550_entropyin[] = {
+ 0xd6, 0x4d, 0x63, 0x80, 0x36, 0x24, 0xae, 0x04, 0x0a, 0x92, 0x5e, 0x20,
+ 0x9e, 0x21, 0x00, 0x2a, 0x28, 0xd6, 0x52, 0x1c, 0x8e, 0x9d, 0x0f, 0x90,
+ 0x5c, 0x3c, 0x79, 0x34, 0x84, 0x44, 0xc5, 0x80,
+};
+static const unsigned char kat3550_nonce[] = {
+ 0xc8, 0x4c, 0x89, 0x53, 0x24, 0x8e, 0x1b, 0xc2, 0xcf, 0x00, 0x96, 0xdf,
+ 0x99, 0xc9, 0xf5, 0xb0,
+};
+static const unsigned char kat3550_persstr[] = {0};
+static const unsigned char kat3550_entropyinpr1[] = {
+ 0x50, 0x1a, 0x85, 0x27, 0xc8, 0x82, 0xb0, 0x66, 0xbf, 0x9e, 0x71, 0x88,
+ 0x5f, 0xc6, 0x1c, 0x94, 0x91, 0xd1, 0xb3, 0x38, 0xca, 0x7a, 0x44, 0x01,
+ 0x5b, 0x97, 0x39, 0xfa, 0xca, 0x75, 0x58, 0x5a,
+};
+static const unsigned char kat3550_addinpr1[] = {0};
+static const unsigned char kat3550_entropyinpr2[] = {
+ 0x45, 0x83, 0x99, 0x56, 0x00, 0x20, 0x61, 0x8e, 0x1c, 0xe0, 0xbe, 0xac,
+ 0x13, 0x3a, 0xbb, 0x2d, 0x6d, 0xef, 0x11, 0x35, 0x22, 0x16, 0xae, 0x94,
+ 0x7b, 0x5e, 0xd0, 0x26, 0x79, 0x53, 0xef, 0xc5,
+};
+static const unsigned char kat3550_addinpr2[] = {0};
+static const unsigned char kat3550_retbits[] = {
+ 0x71, 0x0c, 0xb3, 0xfa, 0x8b, 0x85, 0x95, 0x6c, 0x76, 0x56, 0x7c, 0x90,
+ 0x2f, 0x58, 0xc5, 0x45, 0x55, 0x75, 0x32, 0x65, 0xe8, 0xde, 0x61, 0x91,
+ 0xf2, 0xbd, 0x1c, 0xa2, 0xee, 0x12, 0xd5, 0x09, 0xac, 0xf8, 0x3c, 0xb5,
+ 0xc1, 0xbc, 0x05, 0x8f, 0xaa, 0x7b, 0x8a, 0x90, 0x54, 0x26, 0xef, 0xc9,
+ 0xe6, 0x51, 0xa9, 0x60, 0xc8, 0x14, 0x74, 0xcb, 0x6a, 0x35, 0xbe, 0x86,
+ 0x94, 0x3a, 0x10, 0x89,
+};
+static const struct drbg_kat_pr_true kat3550_t = {
+ 9, kat3550_entropyin, kat3550_nonce, kat3550_persstr,
+ kat3550_entropyinpr1, kat3550_addinpr1, kat3550_entropyinpr2,
+ kat3550_addinpr2, kat3550_retbits
+};
+static const struct drbg_kat kat3550 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3550_t
+};
+
+static const unsigned char kat3551_entropyin[] = {
+ 0x30, 0x46, 0x21, 0x45, 0x06, 0x32, 0x5d, 0x80, 0x5e, 0xca, 0x77, 0xae,
+ 0x70, 0x24, 0xbc, 0xcf, 0x17, 0xad, 0xb8, 0xcc, 0x73, 0x4d, 0xe5, 0xf7,
+ 0x29, 0x9a, 0x7f, 0x24, 0x9f, 0xcd, 0x77, 0xe8,
+};
+static const unsigned char kat3551_nonce[] = {
+ 0xbf, 0x71, 0xf7, 0xb2, 0x0b, 0xb8, 0xc6, 0x42, 0xc9, 0x65, 0x6c, 0x84,
+ 0x9e, 0x9f, 0x99, 0x04,
+};
+static const unsigned char kat3551_persstr[] = {0};
+static const unsigned char kat3551_entropyinpr1[] = {
+ 0xfb, 0x90, 0xcf, 0x3b, 0xb5, 0x3b, 0x1e, 0xb5, 0xf9, 0x79, 0x84, 0xb2,
+ 0x68, 0xf6, 0xfa, 0x11, 0xfa, 0xb0, 0xc7, 0x05, 0xe3, 0x24, 0x7a, 0x34,
+ 0xab, 0xe8, 0x33, 0xa6, 0x3a, 0x01, 0x33, 0x70,
+};
+static const unsigned char kat3551_addinpr1[] = {0};
+static const unsigned char kat3551_entropyinpr2[] = {
+ 0x48, 0x7c, 0xba, 0xd0, 0xff, 0xb9, 0x5f, 0x7f, 0xb0, 0xe0, 0xf6, 0x80,
+ 0x4a, 0x62, 0x10, 0xd6, 0xef, 0x86, 0xa9, 0x57, 0x2c, 0x61, 0xc6, 0xc2,
+ 0xcc, 0xa8, 0x10, 0x94, 0x1f, 0x7e, 0xa9, 0xd0,
+};
+static const unsigned char kat3551_addinpr2[] = {0};
+static const unsigned char kat3551_retbits[] = {
+ 0x07, 0x49, 0x48, 0xb6, 0x20, 0x87, 0xa2, 0x9c, 0x6a, 0xf8, 0x23, 0xe1,
+ 0xcf, 0xaa, 0xf0, 0x26, 0x60, 0xb6, 0x42, 0xdb, 0xa2, 0xcf, 0x49, 0xa1,
+ 0xcc, 0xec, 0x91, 0x15, 0xbc, 0xab, 0x68, 0x44, 0xd3, 0x08, 0x0f, 0x84,
+ 0x0b, 0x44, 0xaa, 0x1f, 0xf6, 0xe8, 0xb4, 0x8b, 0x1e, 0x00, 0x92, 0x1a,
+ 0xc9, 0x4f, 0x9b, 0xb3, 0x2c, 0x62, 0xf1, 0xcd, 0xa6, 0x30, 0x0b, 0xc3,
+ 0xf9, 0x84, 0x10, 0x4e,
+};
+static const struct drbg_kat_pr_true kat3551_t = {
+ 10, kat3551_entropyin, kat3551_nonce, kat3551_persstr,
+ kat3551_entropyinpr1, kat3551_addinpr1, kat3551_entropyinpr2,
+ kat3551_addinpr2, kat3551_retbits
+};
+static const struct drbg_kat kat3551 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3551_t
+};
+
+static const unsigned char kat3552_entropyin[] = {
+ 0xe9, 0x8c, 0x86, 0x5d, 0xa5, 0x40, 0x13, 0x78, 0xa8, 0x63, 0x2f, 0x71,
+ 0xfa, 0x3c, 0x40, 0xaa, 0x5f, 0x85, 0xce, 0x57, 0xcd, 0x9e, 0x9c, 0xcb,
+ 0xf6, 0x55, 0x2b, 0x18, 0x3a, 0x64, 0x23, 0xb0,
+};
+static const unsigned char kat3552_nonce[] = {
+ 0xa2, 0xe6, 0x05, 0xf2, 0x6f, 0xb3, 0x4a, 0xab, 0x78, 0x75, 0x09, 0x4f,
+ 0xff, 0x35, 0x96, 0x01,
+};
+static const unsigned char kat3552_persstr[] = {0};
+static const unsigned char kat3552_entropyinpr1[] = {
+ 0x15, 0x7e, 0x41, 0x02, 0x85, 0xc0, 0x0c, 0xde, 0x99, 0xff, 0xb8, 0xa8,
+ 0xdc, 0x2a, 0x23, 0xad, 0xc4, 0xa7, 0x45, 0x23, 0x79, 0x8e, 0x03, 0x81,
+ 0xf5, 0x61, 0x31, 0x60, 0xdf, 0x78, 0xbe, 0x9b,
+};
+static const unsigned char kat3552_addinpr1[] = {0};
+static const unsigned char kat3552_entropyinpr2[] = {
+ 0xe4, 0x07, 0x7c, 0x63, 0x90, 0x4c, 0x30, 0xf1, 0xc0, 0x95, 0x21, 0x7d,
+ 0x56, 0x3c, 0x31, 0x22, 0x6b, 0xa7, 0x65, 0x70, 0x11, 0x59, 0xbb, 0x19,
+ 0x40, 0x88, 0x49, 0x8a, 0x10, 0xf2, 0x0e, 0x74,
+};
+static const unsigned char kat3552_addinpr2[] = {0};
+static const unsigned char kat3552_retbits[] = {
+ 0x52, 0xe6, 0xfc, 0x79, 0x80, 0x86, 0x97, 0x35, 0x5a, 0x5a, 0x1e, 0xa7,
+ 0xc4, 0x38, 0x05, 0xda, 0x4b, 0x3c, 0x5a, 0xf1, 0xbf, 0xc4, 0x94, 0x55,
+ 0x34, 0x2d, 0x10, 0xc0, 0x47, 0xda, 0x21, 0xab, 0xf2, 0xa9, 0x94, 0x88,
+ 0xf9, 0xc3, 0x43, 0x3e, 0xed, 0xc8, 0xf0, 0x87, 0xab, 0x4f, 0xfb, 0xdd,
+ 0x25, 0x73, 0x1b, 0x36, 0xdd, 0xb2, 0xf6, 0xdd, 0x7a, 0x67, 0x6c, 0x0d,
+ 0x05, 0x24, 0x92, 0x66,
+};
+static const struct drbg_kat_pr_true kat3552_t = {
+ 11, kat3552_entropyin, kat3552_nonce, kat3552_persstr,
+ kat3552_entropyinpr1, kat3552_addinpr1, kat3552_entropyinpr2,
+ kat3552_addinpr2, kat3552_retbits
+};
+static const struct drbg_kat kat3552 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3552_t
+};
+
+static const unsigned char kat3553_entropyin[] = {
+ 0x5c, 0x66, 0xe2, 0xde, 0x8c, 0x7a, 0xe2, 0xf5, 0x27, 0x6d, 0x00, 0x5c,
+ 0xe0, 0xc0, 0xe0, 0xc4, 0x54, 0x5e, 0xe2, 0xa0, 0x73, 0x71, 0xa0, 0x26,
+ 0xe9, 0x70, 0xe1, 0x65, 0x33, 0x6e, 0x0d, 0xa5,
+};
+static const unsigned char kat3553_nonce[] = {
+ 0x1e, 0x8d, 0x44, 0x1f, 0x5e, 0xe3, 0xe6, 0x1c, 0xca, 0xff, 0xe0, 0x35,
+ 0xb9, 0xab, 0xb3, 0x83,
+};
+static const unsigned char kat3553_persstr[] = {0};
+static const unsigned char kat3553_entropyinpr1[] = {
+ 0x95, 0xe3, 0xff, 0x95, 0x01, 0xad, 0x46, 0x33, 0xf3, 0x22, 0x62, 0xd6,
+ 0x37, 0xe3, 0xdb, 0x4a, 0xb2, 0x62, 0xa5, 0x09, 0x1b, 0xff, 0x46, 0xec,
+ 0x00, 0xf3, 0x84, 0x60, 0x3e, 0x32, 0xaa, 0xb7,
+};
+static const unsigned char kat3553_addinpr1[] = {0};
+static const unsigned char kat3553_entropyinpr2[] = {
+ 0x41, 0xf9, 0xfe, 0xba, 0xb7, 0xd5, 0xf8, 0x73, 0x5d, 0xdd, 0xea, 0x04,
+ 0x60, 0x7a, 0xb6, 0xe5, 0xfd, 0x96, 0x5c, 0xc5, 0x61, 0xf4, 0xbe, 0xaa,
+ 0x17, 0x88, 0x40, 0x9b, 0xa6, 0x84, 0xbf, 0x60,
+};
+static const unsigned char kat3553_addinpr2[] = {0};
+static const unsigned char kat3553_retbits[] = {
+ 0xf4, 0xb0, 0x91, 0x4c, 0xec, 0x02, 0x61, 0xe0, 0x49, 0xae, 0x38, 0x42,
+ 0x64, 0x80, 0x67, 0xc6, 0x11, 0x59, 0x6c, 0x63, 0xf3, 0x90, 0x38, 0xcc,
+ 0x5a, 0xad, 0xe2, 0xb7, 0xc1, 0x23, 0x14, 0x2c, 0xd9, 0xc0, 0x72, 0x9e,
+ 0x25, 0xbc, 0xcd, 0xfb, 0x60, 0x52, 0xde, 0xba, 0x31, 0x85, 0x14, 0xe8,
+ 0x19, 0xe9, 0x1f, 0x75, 0x31, 0x06, 0x52, 0x81, 0xb6, 0xd5, 0x04, 0x69,
+ 0xfe, 0x94, 0xb0, 0x8a,
+};
+static const struct drbg_kat_pr_true kat3553_t = {
+ 12, kat3553_entropyin, kat3553_nonce, kat3553_persstr,
+ kat3553_entropyinpr1, kat3553_addinpr1, kat3553_entropyinpr2,
+ kat3553_addinpr2, kat3553_retbits
+};
+static const struct drbg_kat kat3553 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3553_t
+};
+
+static const unsigned char kat3554_entropyin[] = {
+ 0xc5, 0xbe, 0x1e, 0xac, 0x27, 0x36, 0x75, 0xd6, 0xd2, 0xb5, 0x7e, 0xbe,
+ 0x3b, 0xc8, 0xfc, 0x70, 0x5c, 0x11, 0x6a, 0x26, 0xc1, 0xcc, 0x4a, 0xa0,
+ 0xcb, 0x7f, 0xa6, 0x43, 0xa7, 0xba, 0x6f, 0x1f,
+};
+static const unsigned char kat3554_nonce[] = {
+ 0xfe, 0x84, 0x5e, 0x6a, 0x8a, 0x9a, 0xc1, 0xed, 0x87, 0x3f, 0xe1, 0xa3,
+ 0x68, 0xf7, 0x69, 0xb9,
+};
+static const unsigned char kat3554_persstr[] = {0};
+static const unsigned char kat3554_entropyinpr1[] = {
+ 0x8a, 0x2a, 0xdf, 0x21, 0x54, 0xab, 0x58, 0x07, 0x59, 0x0b, 0x9e, 0x4e,
+ 0x1d, 0xc5, 0x47, 0x61, 0xf0, 0xa4, 0x34, 0xea, 0x99, 0xa0, 0x3b, 0x0b,
+ 0xd4, 0x7b, 0x5f, 0x2a, 0x75, 0xfa, 0x2d, 0xc7,
+};
+static const unsigned char kat3554_addinpr1[] = {0};
+static const unsigned char kat3554_entropyinpr2[] = {
+ 0xdb, 0x11, 0xe9, 0x4e, 0xa2, 0xa4, 0x46, 0xad, 0x4c, 0xc3, 0xf6, 0xd8,
+ 0x9a, 0x75, 0x1d, 0x79, 0x68, 0x79, 0x34, 0x03, 0xae, 0x98, 0x28, 0x61,
+ 0x36, 0x9d, 0x24, 0x97, 0x11, 0x6a, 0x31, 0x4c,
+};
+static const unsigned char kat3554_addinpr2[] = {0};
+static const unsigned char kat3554_retbits[] = {
+ 0xae, 0xb5, 0x05, 0xb4, 0xc2, 0x01, 0xb3, 0x16, 0xac, 0x38, 0x98, 0xdc,
+ 0x77, 0x34, 0x30, 0x06, 0x3b, 0xb7, 0xc9, 0xaf, 0x2e, 0x44, 0xbe, 0x22,
+ 0xd0, 0xc4, 0xb1, 0xbe, 0x56, 0x54, 0x18, 0x7b, 0xd4, 0x3d, 0xf5, 0x91,
+ 0x57, 0x48, 0xea, 0xbb, 0x00, 0xf8, 0x8e, 0x7f, 0x41, 0xd3, 0x59, 0x45,
+ 0xf8, 0x7a, 0x42, 0x13, 0x67, 0xb2, 0xaf, 0x1a, 0xc0, 0xf5, 0xf0, 0x8c,
+ 0xe9, 0x0d, 0x8a, 0xf8,
+};
+static const struct drbg_kat_pr_true kat3554_t = {
+ 13, kat3554_entropyin, kat3554_nonce, kat3554_persstr,
+ kat3554_entropyinpr1, kat3554_addinpr1, kat3554_entropyinpr2,
+ kat3554_addinpr2, kat3554_retbits
+};
+static const struct drbg_kat kat3554 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3554_t
+};
+
+static const unsigned char kat3555_entropyin[] = {
+ 0xb3, 0x62, 0x9c, 0x96, 0x3f, 0x7e, 0x81, 0xb2, 0xfa, 0xc4, 0x94, 0xd5,
+ 0x43, 0x43, 0xfa, 0xa0, 0x87, 0x78, 0x33, 0xd8, 0x1c, 0xe4, 0x5a, 0xf3,
+ 0x95, 0x93, 0x40, 0xb1, 0x7b, 0xe2, 0x1f, 0xd4,
+};
+static const unsigned char kat3555_nonce[] = {
+ 0xf4, 0xb5, 0x41, 0xd6, 0x65, 0xba, 0x9d, 0x43, 0xd8, 0xea, 0x06, 0xd6,
+ 0x4c, 0xb5, 0x18, 0x14,
+};
+static const unsigned char kat3555_persstr[] = {0};
+static const unsigned char kat3555_entropyinpr1[] = {
+ 0x51, 0xd7, 0xc6, 0x59, 0xbb, 0xe1, 0xc8, 0xad, 0x35, 0x09, 0x07, 0x56,
+ 0xb8, 0x04, 0x70, 0x6e, 0xe4, 0x6c, 0x91, 0x54, 0x1b, 0x9d, 0x41, 0x9b,
+ 0xb9, 0x12, 0x2e, 0x3b, 0x75, 0xd4, 0xe8, 0xcb,
+};
+static const unsigned char kat3555_addinpr1[] = {0};
+static const unsigned char kat3555_entropyinpr2[] = {
+ 0x34, 0x3e, 0x94, 0x51, 0xf1, 0x64, 0x23, 0xc9, 0x7a, 0xba, 0x91, 0x8b,
+ 0x13, 0x66, 0x2f, 0x47, 0xc4, 0xfb, 0xf8, 0x8b, 0x19, 0x10, 0xa0, 0xf1,
+ 0x08, 0x26, 0x95, 0xad, 0xe8, 0xc3, 0x31, 0x57,
+};
+static const unsigned char kat3555_addinpr2[] = {0};
+static const unsigned char kat3555_retbits[] = {
+ 0x49, 0xc2, 0x93, 0x1f, 0x3a, 0x86, 0x01, 0x16, 0x50, 0xe4, 0x71, 0x84,
+ 0x3b, 0x02, 0x56, 0xfe, 0x4b, 0x75, 0x42, 0xa7, 0x2e, 0x0c, 0xfe, 0x56,
+ 0xbd, 0xad, 0xf6, 0xf0, 0xaf, 0xdb, 0x60, 0x1e, 0x61, 0x45, 0xe3, 0x6d,
+ 0x72, 0x70, 0x42, 0x98, 0xc3, 0xf2, 0xe1, 0x42, 0xfa, 0x41, 0xea, 0xb7,
+ 0xc1, 0x5e, 0xa9, 0xba, 0x34, 0x9a, 0x04, 0x09, 0xc1, 0x2c, 0xe6, 0x24,
+ 0x77, 0xf7, 0x89, 0xb8,
+};
+static const struct drbg_kat_pr_true kat3555_t = {
+ 14, kat3555_entropyin, kat3555_nonce, kat3555_persstr,
+ kat3555_entropyinpr1, kat3555_addinpr1, kat3555_entropyinpr2,
+ kat3555_addinpr2, kat3555_retbits
+};
+static const struct drbg_kat kat3555 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 0, 64, &kat3555_t
+};
+
+static const unsigned char kat3556_entropyin[] = {
+ 0xf0, 0xa9, 0x97, 0xa4, 0xf7, 0x36, 0x0d, 0xc1, 0xb6, 0x42, 0xdc, 0x13,
+ 0xf6, 0x96, 0xa3, 0x26, 0x5c, 0x5c, 0xbb, 0x21, 0x79, 0x27, 0xb6, 0x22,
+ 0xcd, 0x3d, 0xd6, 0xde, 0xbf, 0x14, 0x27, 0x28,
+};
+static const unsigned char kat3556_nonce[] = {
+ 0xcd, 0x56, 0x32, 0x17, 0xb5, 0x8b, 0x91, 0xb4, 0xe5, 0x00, 0xa9, 0x45,
+ 0xf1, 0x5b, 0xd5, 0x45,
+};
+static const unsigned char kat3556_persstr[] = {0};
+static const unsigned char kat3556_entropyinpr1[] = {
+ 0xdf, 0x5e, 0x72, 0xd1, 0x42, 0x38, 0x57, 0xe7, 0x11, 0x2f, 0x59, 0x8e,
+ 0xe1, 0x11, 0x20, 0x63, 0xb2, 0xaa, 0x62, 0xec, 0xf2, 0xfb, 0xd6, 0xa8,
+ 0xb7, 0x71, 0x04, 0xe2, 0xa1, 0x18, 0x08, 0xbb,
+};
+static const unsigned char kat3556_addinpr1[] = {
+ 0xe6, 0x97, 0xfb, 0x68, 0xe5, 0xbd, 0xdc, 0x65, 0xca, 0x91, 0x52, 0x6f,
+ 0x01, 0x4c, 0xce, 0x30, 0x1a, 0xae, 0xfb, 0x82, 0xfb, 0xdf, 0xed, 0xc5,
+ 0x00, 0x14, 0x9a, 0xa0, 0xb1, 0x93, 0x0b, 0xd5,
+};
+static const unsigned char kat3556_entropyinpr2[] = {
+ 0x67, 0x6a, 0xae, 0x87, 0xee, 0x17, 0x20, 0x17, 0xa6, 0x9a, 0x88, 0xa9,
+ 0x7e, 0xe3, 0xf1, 0x82, 0x62, 0xc4, 0xdc, 0x3d, 0x90, 0x24, 0x70, 0x0e,
+ 0x6b, 0xae, 0x3a, 0xee, 0x1d, 0x93, 0x75, 0x50,
+};
+static const unsigned char kat3556_addinpr2[] = {
+ 0x20, 0x2e, 0x49, 0x40, 0x56, 0xe8, 0x5b, 0x0a, 0x93, 0xe8, 0xb8, 0x99,
+ 0x0e, 0xc4, 0x86, 0x72, 0xc6, 0x87, 0xc5, 0x16, 0xf5, 0x8c, 0x95, 0x3d,
+ 0xc4, 0x42, 0x47, 0x45, 0xb0, 0x9d, 0xc8, 0xeb,
+};
+static const unsigned char kat3556_retbits[] = {
+ 0xb5, 0xd9, 0x25, 0xd9, 0xbc, 0x56, 0x7a, 0x44, 0x0b, 0xf1, 0xa3, 0xce,
+ 0x04, 0xbb, 0x39, 0xe8, 0x00, 0x51, 0x32, 0x02, 0xa9, 0x01, 0xf9, 0x45,
+ 0x7a, 0xbe, 0xea, 0x6b, 0x6f, 0x67, 0xf9, 0xef, 0x09, 0x97, 0x41, 0x32,
+ 0x1a, 0x7e, 0x38, 0x2d, 0x0d, 0x5d, 0x87, 0x3e, 0x2f, 0x4b, 0x66, 0x48,
+ 0xa1, 0x7e, 0xa1, 0x38, 0xfe, 0xed, 0xf4, 0x81, 0xd5, 0xf6, 0x69, 0x47,
+ 0xa7, 0xb0, 0xbd, 0x64,
+};
+static const struct drbg_kat_pr_true kat3556_t = {
+ 0, kat3556_entropyin, kat3556_nonce, kat3556_persstr,
+ kat3556_entropyinpr1, kat3556_addinpr1, kat3556_entropyinpr2,
+ kat3556_addinpr2, kat3556_retbits
+};
+static const struct drbg_kat kat3556 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3556_t
+};
+
+static const unsigned char kat3557_entropyin[] = {
+ 0x60, 0x1a, 0x59, 0x41, 0x92, 0x64, 0x2b, 0x2c, 0xae, 0x1d, 0x09, 0xb8,
+ 0xd4, 0x22, 0x96, 0x86, 0xf4, 0xdc, 0x94, 0xad, 0xf8, 0x21, 0x5a, 0xe9,
+ 0x4c, 0x70, 0xf7, 0xe9, 0x68, 0xa6, 0x84, 0xf8,
+};
+static const unsigned char kat3557_nonce[] = {
+ 0x00, 0x84, 0x6a, 0xad, 0x2d, 0x58, 0xde, 0x71, 0x80, 0xa3, 0x1a, 0xdb,
+ 0x7f, 0x30, 0xae, 0xb5,
+};
+static const unsigned char kat3557_persstr[] = {0};
+static const unsigned char kat3557_entropyinpr1[] = {
+ 0xc3, 0x73, 0x6a, 0xc5, 0xa8, 0xeb, 0xb3, 0xdb, 0x8d, 0x2c, 0x7f, 0x71,
+ 0x31, 0x10, 0x58, 0x8a, 0xf7, 0x9c, 0xe1, 0xea, 0xee, 0x09, 0x84, 0xd7,
+ 0xd9, 0x57, 0x05, 0xe7, 0x73, 0x1e, 0x5d, 0x6b,
+};
+static const unsigned char kat3557_addinpr1[] = {
+ 0x02, 0x8c, 0xcb, 0x1a, 0x3e, 0x3f, 0xe0, 0xb6, 0x4f, 0x43, 0xd4, 0x87,
+ 0x98, 0xed, 0xda, 0x14, 0xd0, 0x9b, 0xda, 0xed, 0xce, 0x58, 0x85, 0xaa,
+ 0xf4, 0xd6, 0xa2, 0x79, 0x3d, 0x29, 0xff, 0xb4,
+};
+static const unsigned char kat3557_entropyinpr2[] = {
+ 0x9a, 0xee, 0xd6, 0xf9, 0xdd, 0x84, 0x5b, 0xcc, 0x50, 0xe5, 0x05, 0x8c,
+ 0x03, 0x05, 0x7a, 0x05, 0xce, 0x74, 0x5a, 0xe0, 0x58, 0x2e, 0x66, 0x4e,
+ 0x2b, 0x70, 0xd6, 0x35, 0x4e, 0x96, 0x81, 0xa5,
+};
+static const unsigned char kat3557_addinpr2[] = {
+ 0xdc, 0x3d, 0xf6, 0x1d, 0x29, 0xfc, 0xe8, 0x75, 0x83, 0x9d, 0x6c, 0xfa,
+ 0x22, 0x1e, 0x40, 0xdc, 0xd6, 0x21, 0xe6, 0x66, 0xf9, 0x6e, 0xe2, 0x5c,
+ 0xca, 0x8d, 0xf1, 0x6a, 0xaf, 0xda, 0x1d, 0x21,
+};
+static const unsigned char kat3557_retbits[] = {
+ 0xcc, 0x8a, 0x68, 0x0e, 0x00, 0x3a, 0xd8, 0xc5, 0x71, 0x73, 0x27, 0x84,
+ 0xb0, 0x29, 0x03, 0xfd, 0xc4, 0x18, 0x99, 0xcd, 0x52, 0xfd, 0xc9, 0x6b,
+ 0x41, 0x47, 0x2e, 0xaa, 0x70, 0xcc, 0xac, 0x26, 0x0a, 0x63, 0xd3, 0x06,
+ 0x6b, 0x38, 0x02, 0x3f, 0xc1, 0xcd, 0xcf, 0x97, 0x3e, 0x80, 0x44, 0xa3,
+ 0xf8, 0x0e, 0x16, 0xea, 0xfc, 0x85, 0x9a, 0x8f, 0x24, 0x37, 0x02, 0xa7,
+ 0x9b, 0xe7, 0x25, 0xa1,
+};
+static const struct drbg_kat_pr_true kat3557_t = {
+ 1, kat3557_entropyin, kat3557_nonce, kat3557_persstr,
+ kat3557_entropyinpr1, kat3557_addinpr1, kat3557_entropyinpr2,
+ kat3557_addinpr2, kat3557_retbits
+};
+static const struct drbg_kat kat3557 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3557_t
+};
+
+static const unsigned char kat3558_entropyin[] = {
+ 0x4d, 0xd5, 0x99, 0xcf, 0xf6, 0xef, 0xf7, 0x6d, 0xa0, 0x2b, 0xa9, 0x54,
+ 0x40, 0xc8, 0x2e, 0x9f, 0xb7, 0xff, 0x29, 0x10, 0x77, 0x0c, 0x5d, 0x9b,
+ 0x44, 0xdb, 0x1a, 0x14, 0x9d, 0xad, 0x15, 0x55,
+};
+static const unsigned char kat3558_nonce[] = {
+ 0xe0, 0x99, 0x86, 0xdc, 0x2e, 0x15, 0xcc, 0xbe, 0x75, 0x04, 0x28, 0x32,
+ 0x1c, 0x1f, 0xea, 0x7c,
+};
+static const unsigned char kat3558_persstr[] = {0};
+static const unsigned char kat3558_entropyinpr1[] = {
+ 0x22, 0xf4, 0x28, 0x3f, 0xbc, 0x59, 0xc1, 0xad, 0xc1, 0xaa, 0x79, 0xfa,
+ 0x63, 0x3b, 0x00, 0x55, 0x5b, 0x59, 0xca, 0x8f, 0x39, 0x6c, 0x29, 0xf9,
+ 0x60, 0xe5, 0x50, 0xa8, 0x7b, 0x95, 0x82, 0xc5,
+};
+static const unsigned char kat3558_addinpr1[] = {
+ 0x72, 0xe0, 0x84, 0xed, 0x63, 0x2e, 0xae, 0xfd, 0xb6, 0x49, 0x5b, 0x15,
+ 0x6b, 0x4b, 0x4d, 0x15, 0x0b, 0xbb, 0x7b, 0xd3, 0x36, 0xfc, 0xce, 0xbd,
+ 0xa6, 0x30, 0x99, 0x8d, 0x45, 0x8d, 0xb3, 0x2f,
+};
+static const unsigned char kat3558_entropyinpr2[] = {
+ 0x9f, 0xf2, 0x0b, 0xad, 0xb6, 0xb7, 0x5c, 0x38, 0x3d, 0x18, 0x1f, 0x94,
+ 0x3b, 0x16, 0x56, 0xde, 0x92, 0x79, 0x59, 0x8a, 0x52, 0xfb, 0x31, 0x7a,
+ 0x18, 0xdf, 0x2b, 0xa7, 0x2f, 0xdd, 0xed, 0x74,
+};
+static const unsigned char kat3558_addinpr2[] = {
+ 0x3d, 0x1e, 0x9e, 0x2e, 0x8b, 0x17, 0xfd, 0x31, 0x70, 0x03, 0x31, 0x60,
+ 0x20, 0x96, 0xa4, 0x63, 0x21, 0x14, 0xde, 0x81, 0xf0, 0x54, 0x1a, 0x5d,
+ 0xcd, 0x3f, 0x17, 0x1e, 0xe6, 0xdb, 0x68, 0xe0,
+};
+static const unsigned char kat3558_retbits[] = {
+ 0xa9, 0x8f, 0xfd, 0x9d, 0x9a, 0x22, 0x32, 0x4d, 0xe9, 0xfd, 0xc8, 0x83,
+ 0x10, 0x9d, 0x67, 0x42, 0xf6, 0x27, 0x1b, 0x01, 0x20, 0xdd, 0x9e, 0xf1,
+ 0x0d, 0x7a, 0xd4, 0x13, 0x43, 0xcd, 0x5d, 0x95, 0x50, 0x9c, 0x8c, 0xe8,
+ 0xf7, 0x7d, 0xbc, 0x3c, 0x27, 0x61, 0x75, 0x30, 0x6a, 0xa6, 0x2f, 0x41,
+ 0x30, 0xeb, 0x5b, 0x8b, 0x27, 0xa6, 0x51, 0xca, 0xcf, 0x79, 0x53, 0xd1,
+ 0x39, 0x1f, 0xb6, 0x9f,
+};
+static const struct drbg_kat_pr_true kat3558_t = {
+ 2, kat3558_entropyin, kat3558_nonce, kat3558_persstr,
+ kat3558_entropyinpr1, kat3558_addinpr1, kat3558_entropyinpr2,
+ kat3558_addinpr2, kat3558_retbits
+};
+static const struct drbg_kat kat3558 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3558_t
+};
+
+static const unsigned char kat3559_entropyin[] = {
+ 0x35, 0xd3, 0x03, 0xf9, 0x1d, 0x7a, 0x0c, 0x7b, 0xba, 0xef, 0xff, 0xc6,
+ 0x05, 0x36, 0xf1, 0xaa, 0xae, 0x55, 0x16, 0x3e, 0x7b, 0xdc, 0x44, 0x22,
+ 0x14, 0x3d, 0x98, 0x53, 0xcc, 0x1e, 0xad, 0x8a,
+};
+static const unsigned char kat3559_nonce[] = {
+ 0x15, 0x6a, 0xe7, 0x59, 0x4e, 0xb7, 0x55, 0x3e, 0xb1, 0xc8, 0xb5, 0xe9,
+ 0x79, 0x0c, 0x5d, 0xa4,
+};
+static const unsigned char kat3559_persstr[] = {0};
+static const unsigned char kat3559_entropyinpr1[] = {
+ 0xb8, 0x70, 0x3b, 0xe8, 0x63, 0xc0, 0x79, 0x92, 0x68, 0xc6, 0x1e, 0x0d,
+ 0x59, 0x7f, 0x4f, 0x87, 0x1a, 0x0a, 0xfd, 0xff, 0x7b, 0xc0, 0x99, 0xcb,
+ 0xdf, 0x6b, 0xc2, 0x65, 0x66, 0x1c, 0xa3, 0x38,
+};
+static const unsigned char kat3559_addinpr1[] = {
+ 0x84, 0x27, 0xc9, 0x13, 0x04, 0x0c, 0xcd, 0x78, 0xfb, 0x7e, 0xa1, 0x95,
+ 0x6a, 0x04, 0x69, 0xb0, 0xd8, 0x86, 0x6a, 0xb1, 0xaf, 0x20, 0x5e, 0x36,
+ 0x0e, 0x1c, 0x58, 0xe6, 0xc0, 0xfa, 0x7b, 0x91,
+};
+static const unsigned char kat3559_entropyinpr2[] = {
+ 0xcd, 0xd1, 0x6c, 0x96, 0x99, 0x3b, 0xf2, 0x66, 0x2b, 0x73, 0x14, 0x76,
+ 0x6c, 0xbe, 0x30, 0x8b, 0x72, 0xc5, 0x42, 0xfa, 0x27, 0x56, 0xfc, 0xde,
+ 0xe0, 0x8d, 0xa2, 0x23, 0x8e, 0xc8, 0xe7, 0x6b,
+};
+static const unsigned char kat3559_addinpr2[] = {
+ 0x26, 0x0c, 0x5b, 0xff, 0xef, 0xf5, 0x64, 0x1c, 0x97, 0x7b, 0xb3, 0x64,
+ 0xc2, 0xe2, 0x7d, 0x9a, 0x8a, 0x85, 0x16, 0xc2, 0x1f, 0xb8, 0x77, 0xd9,
+ 0xd0, 0x6d, 0x16, 0xd2, 0xdb, 0x17, 0x78, 0xfc,
+};
+static const unsigned char kat3559_retbits[] = {
+ 0x23, 0x53, 0x37, 0x36, 0xcf, 0x03, 0x95, 0x67, 0x14, 0x98, 0xe1, 0xf7,
+ 0xf9, 0xab, 0x49, 0xdd, 0xac, 0xed, 0x84, 0x61, 0x75, 0xd9, 0x24, 0x42,
+ 0xdb, 0x5a, 0xcd, 0x1e, 0x29, 0x8d, 0xc2, 0x8e, 0xc4, 0xd4, 0x22, 0xe9,
+ 0xec, 0x97, 0x2e, 0x9a, 0xeb, 0x63, 0x5a, 0x30, 0xdd, 0x0e, 0x67, 0xf4,
+ 0xd3, 0x0d, 0x45, 0x04, 0x4e, 0xbf, 0xbb, 0xd7, 0x6a, 0x4c, 0xf8, 0x6b,
+ 0x80, 0x07, 0x3e, 0x06,
+};
+static const struct drbg_kat_pr_true kat3559_t = {
+ 3, kat3559_entropyin, kat3559_nonce, kat3559_persstr,
+ kat3559_entropyinpr1, kat3559_addinpr1, kat3559_entropyinpr2,
+ kat3559_addinpr2, kat3559_retbits
+};
+static const struct drbg_kat kat3559 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3559_t
+};
+
+static const unsigned char kat3560_entropyin[] = {
+ 0xee, 0xe6, 0x20, 0xfe, 0x23, 0x7d, 0xe2, 0x34, 0x5e, 0x3b, 0x8c, 0x8e,
+ 0x91, 0x10, 0x0f, 0x5e, 0x7b, 0xef, 0xf5, 0x32, 0xae, 0x5d, 0x77, 0xfb,
+ 0x6a, 0x57, 0x6d, 0xf2, 0x53, 0x6f, 0x0f, 0xb6,
+};
+static const unsigned char kat3560_nonce[] = {
+ 0xa2, 0xaa, 0x77, 0x6e, 0x76, 0x30, 0xfa, 0x17, 0x13, 0x78, 0x8d, 0x0e,
+ 0x02, 0xad, 0x53, 0x37,
+};
+static const unsigned char kat3560_persstr[] = {0};
+static const unsigned char kat3560_entropyinpr1[] = {
+ 0xfb, 0x78, 0x8a, 0xa6, 0x15, 0x2c, 0x4a, 0x79, 0xff, 0xb6, 0xa8, 0xb8,
+ 0x93, 0x31, 0x87, 0x85, 0x2e, 0x36, 0x44, 0x63, 0xe0, 0x0c, 0x87, 0x63,
+ 0xb8, 0xfd, 0xcc, 0x17, 0xee, 0x6d, 0x26, 0x30,
+};
+static const unsigned char kat3560_addinpr1[] = {
+ 0x0a, 0xe6, 0x2e, 0x9c, 0x91, 0x82, 0x5e, 0xd1, 0x17, 0x7f, 0xde, 0x05,
+ 0x07, 0xd2, 0x3d, 0x57, 0x69, 0x68, 0x49, 0xdb, 0x23, 0x8f, 0xe4, 0x19,
+ 0x64, 0x08, 0xab, 0xb5, 0x57, 0x72, 0xf1, 0xf0,
+};
+static const unsigned char kat3560_entropyinpr2[] = {
+ 0xb9, 0x9e, 0x02, 0x51, 0xd4, 0x58, 0x7d, 0xd4, 0x95, 0x2e, 0x38, 0x3a,
+ 0x84, 0x1d, 0x6b, 0xff, 0xb9, 0x3f, 0xc4, 0x2b, 0x28, 0x78, 0xb3, 0x04,
+ 0xe4, 0x90, 0xe6, 0x64, 0x66, 0xf2, 0xb3, 0x4c,
+};
+static const unsigned char kat3560_addinpr2[] = {
+ 0xb1, 0xb8, 0xa4, 0xb1, 0xbe, 0x81, 0x00, 0xf8, 0x10, 0x70, 0x8b, 0xf4,
+ 0xec, 0xc9, 0xf5, 0xf4, 0x46, 0x37, 0x2f, 0xd7, 0x0f, 0xa0, 0x21, 0x6e,
+ 0x46, 0xcb, 0xff, 0xc4, 0x15, 0x59, 0xe2, 0xf1,
+};
+static const unsigned char kat3560_retbits[] = {
+ 0xf0, 0x3b, 0xaa, 0x93, 0x69, 0x33, 0x27, 0xa0, 0xa6, 0x88, 0x86, 0xcd,
+ 0x62, 0xa2, 0x40, 0x48, 0xde, 0xd3, 0x12, 0xdf, 0x71, 0x87, 0x3e, 0x96,
+ 0x29, 0x81, 0xc4, 0x38, 0xdc, 0xe8, 0xd5, 0x6f, 0x03, 0xeb, 0xbb, 0x67,
+ 0xc4, 0x97, 0xd9, 0x43, 0x52, 0xaa, 0x9d, 0x00, 0xd5, 0x86, 0x06, 0xc9,
+ 0xbf, 0xad, 0xaf, 0xeb, 0x37, 0xed, 0x80, 0xa0, 0x7f, 0xac, 0xc0, 0x3d,
+ 0x36, 0x41, 0xa1, 0x6a,
+};
+static const struct drbg_kat_pr_true kat3560_t = {
+ 4, kat3560_entropyin, kat3560_nonce, kat3560_persstr,
+ kat3560_entropyinpr1, kat3560_addinpr1, kat3560_entropyinpr2,
+ kat3560_addinpr2, kat3560_retbits
+};
+static const struct drbg_kat kat3560 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3560_t
+};
+
+static const unsigned char kat3561_entropyin[] = {
+ 0x2a, 0xa4, 0xf1, 0x5a, 0xc2, 0x1e, 0x48, 0xb6, 0x7a, 0xd5, 0xa3, 0x2c,
+ 0x73, 0x9b, 0x80, 0x51, 0x7c, 0xda, 0xea, 0xc2, 0x98, 0xf4, 0x6f, 0x18,
+ 0xba, 0x5b, 0xe3, 0xef, 0xb4, 0x0c, 0x93, 0xdd,
+};
+static const unsigned char kat3561_nonce[] = {
+ 0xc1, 0xd2, 0xf5, 0xa6, 0xd6, 0x52, 0x2f, 0x3c, 0xd2, 0xde, 0xf5, 0x9f,
+ 0x34, 0x4a, 0x14, 0xfc,
+};
+static const unsigned char kat3561_persstr[] = {0};
+static const unsigned char kat3561_entropyinpr1[] = {
+ 0xe9, 0x93, 0xfd, 0x24, 0xb8, 0x2b, 0x62, 0x44, 0xe1, 0xbf, 0x60, 0xc5,
+ 0x94, 0x54, 0x87, 0xc2, 0xa7, 0x88, 0xae, 0x1b, 0x3e, 0x55, 0xdf, 0xe1,
+ 0x2f, 0xec, 0x88, 0x9e, 0x80, 0xf9, 0xee, 0x6b,
+};
+static const unsigned char kat3561_addinpr1[] = {
+ 0x45, 0x37, 0x9b, 0x77, 0x1e, 0xbc, 0xcb, 0x69, 0x72, 0x16, 0x11, 0xe9,
+ 0x74, 0xad, 0xe2, 0x4b, 0xa7, 0xd0, 0x1d, 0x18, 0xc1, 0x88, 0x1b, 0x0c,
+ 0xb5, 0xe6, 0x83, 0x70, 0xa0, 0xea, 0x06, 0x65,
+};
+static const unsigned char kat3561_entropyinpr2[] = {
+ 0xb4, 0x6a, 0x12, 0x1c, 0xfa, 0xac, 0xc8, 0x97, 0xcf, 0x8c, 0x7e, 0xc7,
+ 0xdd, 0xff, 0x84, 0x35, 0x15, 0xd0, 0x73, 0x3b, 0xc7, 0x66, 0xab, 0x6c,
+ 0x5a, 0x7b, 0x50, 0x56, 0x18, 0x63, 0x91, 0xbd,
+};
+static const unsigned char kat3561_addinpr2[] = {
+ 0x76, 0xb0, 0x04, 0x04, 0xd8, 0x8b, 0xe2, 0x2d, 0x13, 0x2a, 0x86, 0x8f,
+ 0x07, 0x27, 0x46, 0x43, 0xbf, 0xb2, 0xdd, 0x71, 0xdd, 0x85, 0xee, 0x18,
+ 0xf1, 0xa7, 0x06, 0x51, 0x7a, 0xbb, 0xa8, 0xd0,
+};
+static const unsigned char kat3561_retbits[] = {
+ 0x7f, 0x6f, 0xfa, 0x3f, 0x3c, 0xdd, 0x9e, 0x1b, 0x2f, 0x19, 0x60, 0xea,
+ 0x7d, 0x5b, 0x35, 0x8d, 0x00, 0x13, 0xf9, 0xd6, 0x28, 0x55, 0x90, 0x43,
+ 0x1d, 0x01, 0x75, 0x22, 0xe2, 0xdb, 0x02, 0x77, 0xcc, 0x1b, 0x50, 0xbd,
+ 0xc8, 0x2a, 0x50, 0x28, 0x69, 0x37, 0x61, 0x7e, 0x34, 0x2a, 0x8e, 0xa2,
+ 0x56, 0x2f, 0x7d, 0x59, 0xe9, 0x56, 0x54, 0x9f, 0x49, 0xad, 0xa9, 0xc0,
+ 0x65, 0x14, 0x67, 0x53,
+};
+static const struct drbg_kat_pr_true kat3561_t = {
+ 5, kat3561_entropyin, kat3561_nonce, kat3561_persstr,
+ kat3561_entropyinpr1, kat3561_addinpr1, kat3561_entropyinpr2,
+ kat3561_addinpr2, kat3561_retbits
+};
+static const struct drbg_kat kat3561 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3561_t
+};
+
+static const unsigned char kat3562_entropyin[] = {
+ 0x96, 0x46, 0x71, 0x45, 0x4f, 0xff, 0x79, 0x45, 0xe9, 0xd4, 0x72, 0x2a,
+ 0x44, 0x9c, 0xa8, 0xa0, 0x79, 0x55, 0x34, 0xbe, 0xe6, 0xa0, 0x6c, 0x2b,
+ 0x43, 0xb9, 0x2a, 0x7e, 0x6a, 0x07, 0x44, 0xad,
+};
+static const unsigned char kat3562_nonce[] = {
+ 0xc4, 0xe9, 0x1a, 0x4e, 0xaf, 0xc0, 0x34, 0x6f, 0x6f, 0xf9, 0x62, 0x74,
+ 0x10, 0xb0, 0x93, 0x31,
+};
+static const unsigned char kat3562_persstr[] = {0};
+static const unsigned char kat3562_entropyinpr1[] = {
+ 0xc1, 0x0d, 0x27, 0x16, 0xcb, 0xad, 0xe7, 0xd9, 0x54, 0xe1, 0x2c, 0x34,
+ 0xaa, 0xf8, 0xb3, 0x94, 0xe8, 0xe3, 0x53, 0x20, 0xd8, 0x10, 0x31, 0x57,
+ 0xdf, 0xee, 0x9e, 0x38, 0x2e, 0x5a, 0xdd, 0x79,
+};
+static const unsigned char kat3562_addinpr1[] = {
+ 0xbd, 0xc3, 0x37, 0x61, 0xfd, 0xcb, 0x98, 0xb9, 0x8e, 0x56, 0x65, 0x73,
+ 0xe1, 0x45, 0x17, 0x22, 0x0f, 0x95, 0x6d, 0x4e, 0xb0, 0x6a, 0x9f, 0xe2,
+ 0x49, 0xb9, 0xb9, 0x99, 0xc6, 0x8a, 0x94, 0x7f,
+};
+static const unsigned char kat3562_entropyinpr2[] = {
+ 0x87, 0x1d, 0xef, 0xf9, 0xd6, 0xf4, 0xda, 0x37, 0x34, 0x24, 0x5f, 0x6b,
+ 0x0f, 0xfa, 0x89, 0x61, 0x18, 0x61, 0x91, 0xb1, 0x9a, 0x9d, 0x2d, 0x89,
+ 0xad, 0x5c, 0xe6, 0xce, 0x04, 0x66, 0x46, 0x3d,
+};
+static const unsigned char kat3562_addinpr2[] = {
+ 0x0d, 0x47, 0xdb, 0x4c, 0x8e, 0xda, 0x48, 0xfc, 0x3f, 0x46, 0xea, 0x30,
+ 0x33, 0x2f, 0xfa, 0x0f, 0x0b, 0x1f, 0x6f, 0x2e, 0x3c, 0xa0, 0xcd, 0xcc,
+ 0xab, 0x79, 0x7f, 0x38, 0x4a, 0xd1, 0xb7, 0xf1,
+};
+static const unsigned char kat3562_retbits[] = {
+ 0x38, 0x8a, 0xbe, 0xe5, 0x6d, 0xc4, 0x6e, 0xef, 0xae, 0xdf, 0xb0, 0x0a,
+ 0x67, 0x61, 0x65, 0x40, 0x03, 0x38, 0x86, 0xd9, 0x11, 0xa5, 0x37, 0xe6,
+ 0x86, 0x83, 0x4a, 0xa2, 0x90, 0xc8, 0xf9, 0xf6, 0xf9, 0xdb, 0x41, 0x8a,
+ 0x91, 0x74, 0x51, 0xa7, 0xf0, 0x92, 0xa2, 0xe4, 0x71, 0x2f, 0x66, 0x98,
+ 0x8f, 0x15, 0x29, 0xac, 0x8a, 0x88, 0xb9, 0xa4, 0x10, 0x1c, 0xf2, 0x2a,
+ 0xd1, 0xfe, 0x6f, 0xac,
+};
+static const struct drbg_kat_pr_true kat3562_t = {
+ 6, kat3562_entropyin, kat3562_nonce, kat3562_persstr,
+ kat3562_entropyinpr1, kat3562_addinpr1, kat3562_entropyinpr2,
+ kat3562_addinpr2, kat3562_retbits
+};
+static const struct drbg_kat kat3562 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3562_t
+};
+
+static const unsigned char kat3563_entropyin[] = {
+ 0x23, 0x9d, 0x5e, 0xf2, 0x89, 0x62, 0x59, 0x46, 0x87, 0x3d, 0x30, 0xb4,
+ 0xba, 0x3a, 0xa1, 0xf9, 0x38, 0x15, 0x6e, 0xe5, 0x10, 0x1b, 0x0c, 0x94,
+ 0x75, 0xaf, 0x5f, 0x11, 0x93, 0x4a, 0x95, 0xcb,
+};
+static const unsigned char kat3563_nonce[] = {
+ 0xd4, 0x0b, 0xd6, 0x89, 0xd5, 0x48, 0xbc, 0x6c, 0x5e, 0x47, 0x0d, 0xbb,
+ 0x27, 0xce, 0x10, 0x5a,
+};
+static const unsigned char kat3563_persstr[] = {0};
+static const unsigned char kat3563_entropyinpr1[] = {
+ 0xaf, 0x57, 0x60, 0x42, 0x1b, 0xcf, 0xc7, 0x8b, 0xd1, 0x9e, 0xb6, 0xe2,
+ 0x55, 0x79, 0x8d, 0xab, 0xe7, 0xbb, 0x41, 0x13, 0xdc, 0xa6, 0x1e, 0xb6,
+ 0xfd, 0x28, 0xdd, 0x4e, 0x28, 0x59, 0xf0, 0x1a,
+};
+static const unsigned char kat3563_addinpr1[] = {
+ 0x8c, 0x32, 0xc0, 0xfe, 0x20, 0xb0, 0xde, 0x59, 0xc4, 0xfc, 0x21, 0x1c,
+ 0x8d, 0x20, 0x3a, 0x5f, 0x85, 0xbc, 0xf4, 0x01, 0x0c, 0xe5, 0xb4, 0x3f,
+ 0xb7, 0x38, 0xe0, 0x02, 0x6d, 0x06, 0x31, 0x15,
+};
+static const unsigned char kat3563_entropyinpr2[] = {
+ 0x18, 0x14, 0x7b, 0x05, 0x57, 0x66, 0x74, 0xaa, 0x54, 0x6a, 0xeb, 0xe0,
+ 0x1b, 0x78, 0xa7, 0x9d, 0xfe, 0xde, 0x75, 0xb1, 0xc7, 0x19, 0x87, 0x00,
+ 0x91, 0xc9, 0xfc, 0x4e, 0xe7, 0x53, 0xce, 0x47,
+};
+static const unsigned char kat3563_addinpr2[] = {
+ 0x8a, 0xf5, 0xbe, 0x7f, 0x17, 0xf1, 0x4b, 0xe5, 0x05, 0xe1, 0xa1, 0x0b,
+ 0x7a, 0x20, 0x8b, 0xe1, 0x76, 0x50, 0x77, 0x5c, 0xb8, 0xf7, 0x1d, 0xb2,
+ 0x71, 0x02, 0x5b, 0xa6, 0xa3, 0x18, 0x80, 0x81,
+};
+static const unsigned char kat3563_retbits[] = {
+ 0xc8, 0xfd, 0x14, 0xeb, 0xf3, 0x86, 0x46, 0xee, 0xed, 0xa8, 0xca, 0x47,
+ 0xcb, 0x42, 0xf5, 0xdf, 0xae, 0x6b, 0xd5, 0xd9, 0x65, 0xca, 0xe3, 0x28,
+ 0x3b, 0x05, 0x60, 0xea, 0x67, 0x26, 0x3c, 0xdf, 0x9b, 0xd3, 0xcf, 0x6d,
+ 0x8b, 0x3e, 0x11, 0xb3, 0xb0, 0xeb, 0x79, 0xe8, 0x25, 0xb7, 0x47, 0x72,
+ 0xd0, 0xdf, 0xa4, 0xf5, 0xe2, 0x29, 0xb8, 0x54, 0xda, 0x6a, 0x05, 0x04,
+ 0x95, 0xcb, 0x91, 0x7c,
+};
+static const struct drbg_kat_pr_true kat3563_t = {
+ 7, kat3563_entropyin, kat3563_nonce, kat3563_persstr,
+ kat3563_entropyinpr1, kat3563_addinpr1, kat3563_entropyinpr2,
+ kat3563_addinpr2, kat3563_retbits
+};
+static const struct drbg_kat kat3563 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3563_t
+};
+
+static const unsigned char kat3564_entropyin[] = {
+ 0x97, 0x19, 0x90, 0xd9, 0x65, 0x61, 0x5b, 0x0e, 0xf8, 0xee, 0x54, 0x92,
+ 0xcf, 0x9e, 0x52, 0x3b, 0xcc, 0x86, 0xf7, 0xf7, 0x94, 0x99, 0x2d, 0xd7,
+ 0x9b, 0x4f, 0x00, 0x5b, 0x81, 0xff, 0xb4, 0x36,
+};
+static const unsigned char kat3564_nonce[] = {
+ 0x25, 0x9c, 0x50, 0xc2, 0x56, 0x6b, 0x6c, 0x12, 0x3f, 0xaf, 0x7d, 0x89,
+ 0xb3, 0x96, 0x62, 0x7b,
+};
+static const unsigned char kat3564_persstr[] = {0};
+static const unsigned char kat3564_entropyinpr1[] = {
+ 0x35, 0x3d, 0xd4, 0x12, 0x39, 0x64, 0x6d, 0x8d, 0xb4, 0x3c, 0xe9, 0xc1,
+ 0x64, 0x04, 0x07, 0x1e, 0x5d, 0x85, 0x3f, 0xbb, 0xe2, 0x32, 0x20, 0x1a,
+ 0x57, 0x19, 0x90, 0xba, 0xcf, 0x8f, 0x10, 0xcb,
+};
+static const unsigned char kat3564_addinpr1[] = {
+ 0xf6, 0x4a, 0x39, 0x61, 0xd4, 0x61, 0x6b, 0x07, 0xcc, 0xc0, 0x01, 0x46,
+ 0x90, 0x2c, 0x26, 0x1f, 0xd1, 0x20, 0x30, 0xdf, 0xe7, 0x96, 0x6c, 0xcc,
+ 0xd4, 0xc1, 0x89, 0xcb, 0x51, 0xef, 0xf8, 0xb1,
+};
+static const unsigned char kat3564_entropyinpr2[] = {
+ 0xcd, 0x39, 0xfb, 0x0f, 0x78, 0xc2, 0x79, 0xc0, 0x32, 0x4c, 0xb5, 0x4c,
+ 0xbc, 0x0f, 0xf5, 0x6d, 0xbc, 0x02, 0x11, 0x60, 0xf4, 0x5e, 0x61, 0xf1,
+ 0x23, 0x63, 0xe9, 0xcb, 0x6e, 0x80, 0xb7, 0xa2,
+};
+static const unsigned char kat3564_addinpr2[] = {
+ 0xea, 0x09, 0x44, 0xcd, 0x18, 0x29, 0xcb, 0x4f, 0x2c, 0x50, 0x5b, 0xb6,
+ 0xe8, 0x37, 0x83, 0x03, 0xfe, 0xf9, 0x8a, 0xf0, 0x02, 0xa7, 0xfb, 0x44,
+ 0xd8, 0x0c, 0xb8, 0xcd, 0xb3, 0x43, 0xe8, 0x29,
+};
+static const unsigned char kat3564_retbits[] = {
+ 0x0c, 0xd1, 0xb0, 0x36, 0xf2, 0x0b, 0xda, 0x78, 0xa8, 0x19, 0x1b, 0x3e,
+ 0x4b, 0x59, 0x8e, 0x89, 0xd6, 0xd1, 0x50, 0x3e, 0xbb, 0x3b, 0xfc, 0xef,
+ 0xa1, 0x57, 0xad, 0x82, 0xfb, 0x3e, 0x62, 0xe4, 0x3a, 0xf4, 0x9e, 0xf8,
+ 0x74, 0x55, 0x6c, 0x55, 0xab, 0xee, 0x89, 0x16, 0x08, 0x5d, 0x17, 0xb0,
+ 0x94, 0x98, 0x70, 0xa5, 0x8f, 0x81, 0x33, 0x26, 0x3f, 0x2f, 0x46, 0xb0,
+ 0xcb, 0x76, 0x9d, 0xa1,
+};
+static const struct drbg_kat_pr_true kat3564_t = {
+ 8, kat3564_entropyin, kat3564_nonce, kat3564_persstr,
+ kat3564_entropyinpr1, kat3564_addinpr1, kat3564_entropyinpr2,
+ kat3564_addinpr2, kat3564_retbits
+};
+static const struct drbg_kat kat3564 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3564_t
+};
+
+static const unsigned char kat3565_entropyin[] = {
+ 0x48, 0x28, 0xa5, 0xc3, 0x39, 0x1b, 0x33, 0xba, 0x02, 0xc5, 0x6a, 0x5e,
+ 0x7e, 0xbf, 0x8d, 0x57, 0x81, 0x3c, 0x2a, 0x13, 0xb3, 0x9b, 0x32, 0xa5,
+ 0x32, 0xe4, 0xeb, 0x54, 0xf9, 0x8f, 0xa2, 0x77,
+};
+static const unsigned char kat3565_nonce[] = {
+ 0x1f, 0x55, 0x29, 0x86, 0x04, 0xdf, 0x26, 0xa2, 0xc5, 0x62, 0xa1, 0x00,
+ 0xce, 0xa5, 0x17, 0x9f,
+};
+static const unsigned char kat3565_persstr[] = {0};
+static const unsigned char kat3565_entropyinpr1[] = {
+ 0xcf, 0x23, 0xa3, 0x92, 0x4e, 0x15, 0x4c, 0x75, 0xa0, 0xc0, 0x92, 0x6e,
+ 0xda, 0x78, 0xa0, 0xc4, 0x36, 0xe0, 0x83, 0xa6, 0x96, 0xe1, 0x5d, 0xf6,
+ 0xe9, 0x86, 0xe3, 0x5b, 0x8c, 0x86, 0xd1, 0x3d,
+};
+static const unsigned char kat3565_addinpr1[] = {
+ 0x72, 0x3c, 0xe5, 0x19, 0xe7, 0x93, 0x32, 0x91, 0xec, 0x53, 0x70, 0xe7,
+ 0x08, 0x1f, 0x42, 0x46, 0x55, 0x22, 0x9e, 0x54, 0x81, 0xd8, 0xc4, 0xff,
+ 0xb3, 0x37, 0x08, 0x56, 0xb4, 0x69, 0x0c, 0x1c,
+};
+static const unsigned char kat3565_entropyinpr2[] = {
+ 0xe1, 0x77, 0xdc, 0x50, 0x1e, 0x82, 0xef, 0x1d, 0x19, 0x84, 0xc7, 0x8d,
+ 0xca, 0x62, 0x1f, 0xbb, 0x0c, 0x73, 0xfe, 0x68, 0xdf, 0xd3, 0x84, 0x76,
+ 0x1e, 0xc0, 0xd7, 0xd6, 0x48, 0xa7, 0x67, 0x07,
+};
+static const unsigned char kat3565_addinpr2[] = {
+ 0xa1, 0x57, 0xde, 0x2c, 0xc4, 0xfd, 0x95, 0x81, 0x5e, 0x1f, 0xdb, 0xec,
+ 0xe2, 0xb1, 0x5c, 0x47, 0x4a, 0xc7, 0x6e, 0xab, 0x03, 0x5a, 0x22, 0x83,
+ 0x43, 0x73, 0x3e, 0xb6, 0x23, 0xed, 0x8b, 0x66,
+};
+static const unsigned char kat3565_retbits[] = {
+ 0xd7, 0x54, 0x14, 0x65, 0x72, 0x27, 0x2e, 0xbb, 0xe9, 0xda, 0x93, 0x52,
+ 0x50, 0x74, 0xdf, 0x35, 0x72, 0x65, 0x09, 0x57, 0x50, 0x68, 0x7f, 0x67,
+ 0x2f, 0x14, 0x58, 0xf6, 0xef, 0x2c, 0x4e, 0xa4, 0x44, 0x13, 0x11, 0x87,
+ 0x1e, 0xd8, 0x05, 0x22, 0x67, 0xa5, 0xfc, 0x6c, 0x0f, 0x3a, 0x65, 0xf3,
+ 0x56, 0x48, 0x02, 0x8a, 0xb5, 0x78, 0x09, 0xeb, 0xe5, 0x62, 0x40, 0xd9,
+ 0xa5, 0xf6, 0x62, 0x9c,
+};
+static const struct drbg_kat_pr_true kat3565_t = {
+ 9, kat3565_entropyin, kat3565_nonce, kat3565_persstr,
+ kat3565_entropyinpr1, kat3565_addinpr1, kat3565_entropyinpr2,
+ kat3565_addinpr2, kat3565_retbits
+};
+static const struct drbg_kat kat3565 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3565_t
+};
+
+static const unsigned char kat3566_entropyin[] = {
+ 0x32, 0x8a, 0x3a, 0xf8, 0x68, 0x93, 0xc2, 0x1a, 0xe1, 0x21, 0x59, 0xd4,
+ 0xc2, 0xa0, 0xca, 0xd2, 0xda, 0x87, 0x20, 0xb2, 0xc1, 0xe1, 0x76, 0x4c,
+ 0x41, 0x19, 0x88, 0x4b, 0xcb, 0xe0, 0x18, 0x36,
+};
+static const unsigned char kat3566_nonce[] = {
+ 0x94, 0xe7, 0x10, 0xed, 0x04, 0x90, 0xec, 0xd4, 0x5c, 0xe8, 0x9c, 0x47,
+ 0x83, 0x6d, 0x99, 0xf9,
+};
+static const unsigned char kat3566_persstr[] = {0};
+static const unsigned char kat3566_entropyinpr1[] = {
+ 0x4d, 0x23, 0x93, 0x20, 0x99, 0xe8, 0x49, 0xa8, 0x05, 0x8d, 0x3c, 0x36,
+ 0xdc, 0x84, 0x2c, 0x2b, 0xcd, 0x68, 0x4e, 0xee, 0x27, 0x68, 0x13, 0x7f,
+ 0xa9, 0x13, 0x58, 0x2c, 0x0e, 0xf0, 0x5f, 0xda,
+};
+static const unsigned char kat3566_addinpr1[] = {
+ 0x00, 0x05, 0x77, 0xf0, 0xe9, 0xe5, 0x0e, 0x39, 0x30, 0x6a, 0x65, 0x64,
+ 0x49, 0x8a, 0x4b, 0x19, 0x0c, 0xdb, 0xb8, 0x7a, 0x91, 0x7e, 0x56, 0x13,
+ 0x3a, 0x2e, 0x6d, 0xd0, 0x66, 0xb3, 0x55, 0xd6,
+};
+static const unsigned char kat3566_entropyinpr2[] = {
+ 0x87, 0x4b, 0x1e, 0x1d, 0x2c, 0x9a, 0x00, 0xe2, 0xbb, 0x01, 0x61, 0x1f,
+ 0x2e, 0x5d, 0x6c, 0xa3, 0x2e, 0x8a, 0x42, 0x16, 0xde, 0x85, 0xc4, 0x0d,
+ 0xa7, 0xeb, 0x62, 0xbc, 0x98, 0x45, 0x5c, 0x4c,
+};
+static const unsigned char kat3566_addinpr2[] = {
+ 0x6d, 0x4a, 0xcf, 0x66, 0xf2, 0x7f, 0x44, 0xd5, 0xb5, 0x45, 0xf8, 0x1b,
+ 0x72, 0x58, 0xe9, 0xba, 0xb9, 0xa6, 0x6d, 0x1f, 0x1c, 0xe4, 0xf1, 0x21,
+ 0xc6, 0x51, 0x5f, 0x85, 0x7d, 0x5e, 0xf5, 0xd6,
+};
+static const unsigned char kat3566_retbits[] = {
+ 0x40, 0xaf, 0xef, 0x4a, 0xce, 0x54, 0x82, 0x05, 0xe9, 0x62, 0x57, 0xca,
+ 0x4e, 0xf3, 0x65, 0xbb, 0x31, 0xac, 0xc3, 0xf2, 0x6b, 0x3b, 0xff, 0x09,
+ 0x24, 0x36, 0xf4, 0xde, 0xbc, 0xa3, 0x27, 0x99, 0x2a, 0x14, 0xd7, 0x56,
+ 0xcd, 0x95, 0xd3, 0xeb, 0x31, 0x55, 0x9d, 0xe8, 0xdc, 0xc6, 0x19, 0x90,
+ 0xe2, 0x62, 0x34, 0xed, 0x81, 0x75, 0x02, 0x1c, 0x1d, 0x46, 0x54, 0xa0,
+ 0xe4, 0x59, 0x26, 0xae,
+};
+static const struct drbg_kat_pr_true kat3566_t = {
+ 10, kat3566_entropyin, kat3566_nonce, kat3566_persstr,
+ kat3566_entropyinpr1, kat3566_addinpr1, kat3566_entropyinpr2,
+ kat3566_addinpr2, kat3566_retbits
+};
+static const struct drbg_kat kat3566 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3566_t
+};
+
+static const unsigned char kat3567_entropyin[] = {
+ 0x4b, 0x11, 0xfa, 0xfa, 0xea, 0x5a, 0x99, 0x45, 0xd2, 0x08, 0x14, 0xac,
+ 0xd8, 0x77, 0x77, 0xce, 0xaf, 0xfb, 0xb4, 0x43, 0x25, 0xf1, 0x01, 0x25,
+ 0xdd, 0x2b, 0x2f, 0x92, 0x2c, 0x20, 0x78, 0xf6,
+};
+static const unsigned char kat3567_nonce[] = {
+ 0x55, 0x8c, 0xc8, 0x66, 0x23, 0x81, 0x4b, 0x5c, 0x96, 0x02, 0xd5, 0x69,
+ 0x67, 0x06, 0x80, 0x80,
+};
+static const unsigned char kat3567_persstr[] = {0};
+static const unsigned char kat3567_entropyinpr1[] = {
+ 0x25, 0x1e, 0x9f, 0x7d, 0xb4, 0x48, 0xd3, 0x2b, 0xf5, 0xd1, 0x95, 0x29,
+ 0x03, 0xf6, 0x86, 0xba, 0xec, 0x93, 0x8c, 0xee, 0x8a, 0x8b, 0x1f, 0x40,
+ 0xdf, 0xb9, 0x33, 0xef, 0x7d, 0x1d, 0xc9, 0x3c,
+};
+static const unsigned char kat3567_addinpr1[] = {
+ 0x92, 0xfb, 0x30, 0x5e, 0xb9, 0xf9, 0x38, 0x05, 0x0b, 0x78, 0xa3, 0xdb,
+ 0x14, 0x09, 0x04, 0x3c, 0x5d, 0x42, 0xf9, 0xa6, 0xda, 0xf7, 0xf0, 0x52,
+ 0x7d, 0xb7, 0xa0, 0xce, 0x16, 0x54, 0x68, 0x9a,
+};
+static const unsigned char kat3567_entropyinpr2[] = {
+ 0x06, 0x2c, 0x74, 0x03, 0xf2, 0x1d, 0x7b, 0x51, 0x6a, 0xc8, 0x7f, 0x80,
+ 0x75, 0x72, 0x2b, 0xdf, 0xb7, 0xb7, 0xea, 0xd2, 0xa3, 0xcc, 0x3e, 0xae,
+ 0x8f, 0xe9, 0xf0, 0xdb, 0xbd, 0x33, 0xff, 0x67,
+};
+static const unsigned char kat3567_addinpr2[] = {
+ 0xa2, 0xce, 0x9b, 0x84, 0x18, 0x7c, 0xcc, 0xc8, 0x85, 0x9c, 0x97, 0x45,
+ 0xbf, 0x8d, 0xc9, 0xc2, 0x26, 0x2d, 0xe9, 0xf5, 0x02, 0x2c, 0x3d, 0x3e,
+ 0xd8, 0xa6, 0xed, 0x8a, 0xb1, 0x9f, 0x4f, 0xee,
+};
+static const unsigned char kat3567_retbits[] = {
+ 0xf8, 0xcb, 0x3e, 0x74, 0x4d, 0x69, 0x5c, 0x0c, 0x00, 0xc3, 0x9d, 0x85,
+ 0x43, 0x7a, 0xed, 0xe8, 0xf8, 0xea, 0x28, 0x08, 0x71, 0xfd, 0x35, 0xd0,
+ 0x08, 0x94, 0x0d, 0xc0, 0x01, 0xef, 0x40, 0x36, 0x4d, 0x3c, 0x73, 0x6d,
+ 0x07, 0x3a, 0x6d, 0x7e, 0x0b, 0xb0, 0xc0, 0x60, 0x1a, 0x37, 0x98, 0xd0,
+ 0x49, 0x63, 0x21, 0x67, 0xaa, 0x33, 0xf2, 0x81, 0xe1, 0x1c, 0xda, 0x46,
+ 0xfd, 0x5e, 0x85, 0x68,
+};
+static const struct drbg_kat_pr_true kat3567_t = {
+ 11, kat3567_entropyin, kat3567_nonce, kat3567_persstr,
+ kat3567_entropyinpr1, kat3567_addinpr1, kat3567_entropyinpr2,
+ kat3567_addinpr2, kat3567_retbits
+};
+static const struct drbg_kat kat3567 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3567_t
+};
+
+static const unsigned char kat3568_entropyin[] = {
+ 0x10, 0x99, 0xc7, 0xef, 0xdb, 0x10, 0x81, 0xce, 0xaa, 0x7a, 0x6f, 0x49,
+ 0x9c, 0x49, 0x5e, 0x57, 0x26, 0xee, 0x4d, 0x28, 0xb3, 0xa4, 0x69, 0x31,
+ 0x38, 0x6f, 0x02, 0x5c, 0x3f, 0x5b, 0x3d, 0xd3,
+};
+static const unsigned char kat3568_nonce[] = {
+ 0x37, 0x3b, 0xab, 0xd6, 0xa0, 0xb0, 0x20, 0x06, 0x6d, 0x50, 0xd4, 0x3e,
+ 0x46, 0x22, 0xdc, 0x7d,
+};
+static const unsigned char kat3568_persstr[] = {0};
+static const unsigned char kat3568_entropyinpr1[] = {
+ 0x9a, 0x56, 0xc7, 0xb2, 0x54, 0x52, 0xe9, 0x5f, 0x60, 0x64, 0xfa, 0xbe,
+ 0x8c, 0xbf, 0x2e, 0xa4, 0x4d, 0xfa, 0x11, 0x44, 0x38, 0x6a, 0x7f, 0xee,
+ 0x37, 0xfe, 0xe0, 0x27, 0xa1, 0xad, 0x5d, 0x98,
+};
+static const unsigned char kat3568_addinpr1[] = {
+ 0xb2, 0x13, 0xd8, 0x08, 0x7d, 0x07, 0x3a, 0x24, 0x70, 0xaf, 0xad, 0x08,
+ 0x2c, 0xf6, 0xff, 0xe8, 0xb0, 0xea, 0xac, 0xe7, 0xe9, 0x4e, 0xc9, 0xe2,
+ 0x94, 0x05, 0x0d, 0xee, 0xaf, 0x0a, 0x26, 0xa5,
+};
+static const unsigned char kat3568_entropyinpr2[] = {
+ 0x5c, 0x48, 0x2a, 0x91, 0x42, 0x11, 0xa7, 0x16, 0xda, 0x6f, 0x39, 0x21,
+ 0xf4, 0xaa, 0x51, 0xba, 0x84, 0x36, 0x02, 0x04, 0x3b, 0x80, 0x89, 0x5a,
+ 0x7e, 0xbd, 0xdb, 0x76, 0x51, 0x71, 0x53, 0x5f,
+};
+static const unsigned char kat3568_addinpr2[] = {
+ 0x85, 0xa0, 0x09, 0x5a, 0x5d, 0xd2, 0x92, 0x6b, 0x96, 0x4a, 0x67, 0x48,
+ 0x6e, 0x80, 0x20, 0xc8, 0x1f, 0x71, 0x81, 0x1f, 0x74, 0xab, 0x27, 0x93,
+ 0x85, 0x57, 0xed, 0x57, 0xef, 0x6f, 0x60, 0x7e,
+};
+static const unsigned char kat3568_retbits[] = {
+ 0xe5, 0x92, 0x7e, 0xb7, 0x93, 0x96, 0x83, 0x77, 0xa4, 0x87, 0xee, 0xe6,
+ 0x29, 0x7d, 0xd0, 0xd1, 0xd3, 0xf3, 0xb8, 0x82, 0xd8, 0xf5, 0x2b, 0xde,
+ 0x51, 0x89, 0x50, 0x20, 0x1d, 0x00, 0x3b, 0x1e, 0x39, 0x8e, 0x33, 0x65,
+ 0xab, 0xd1, 0x12, 0x6b, 0xd0, 0x99, 0x50, 0x0f, 0x6e, 0x1a, 0x6c, 0x1c,
+ 0x8f, 0xd3, 0x62, 0x33, 0x09, 0x21, 0x13, 0x9d, 0x86, 0xde, 0xa6, 0x9f,
+ 0x14, 0x72, 0xfc, 0x77,
+};
+static const struct drbg_kat_pr_true kat3568_t = {
+ 12, kat3568_entropyin, kat3568_nonce, kat3568_persstr,
+ kat3568_entropyinpr1, kat3568_addinpr1, kat3568_entropyinpr2,
+ kat3568_addinpr2, kat3568_retbits
+};
+static const struct drbg_kat kat3568 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3568_t
+};
+
+static const unsigned char kat3569_entropyin[] = {
+ 0x23, 0x04, 0x2c, 0x00, 0x03, 0xb8, 0x70, 0x40, 0x9a, 0x56, 0x30, 0x56,
+ 0xc2, 0xb4, 0x8b, 0x6b, 0x2b, 0xcf, 0x29, 0xe5, 0x2b, 0x27, 0x32, 0xbc,
+ 0xd3, 0xa4, 0x2a, 0xa1, 0x1a, 0x45, 0xc2, 0x74,
+};
+static const unsigned char kat3569_nonce[] = {
+ 0x92, 0x8c, 0x3b, 0x68, 0x37, 0x44, 0xbe, 0xfc, 0x60, 0x14, 0xd5, 0x40,
+ 0x65, 0x98, 0xd9, 0x8c,
+};
+static const unsigned char kat3569_persstr[] = {0};
+static const unsigned char kat3569_entropyinpr1[] = {
+ 0x34, 0x01, 0xbb, 0x98, 0xcd, 0x1c, 0x2d, 0x6a, 0x9b, 0xb6, 0xd7, 0x88,
+ 0x69, 0x6d, 0xe0, 0xd5, 0x85, 0x2a, 0xd8, 0x86, 0x15, 0xc7, 0xb9, 0x71,
+ 0x6a, 0x87, 0x06, 0xe9, 0xcc, 0xd0, 0x52, 0xa7,
+};
+static const unsigned char kat3569_addinpr1[] = {
+ 0xc4, 0x0f, 0xa3, 0xcb, 0x9f, 0xb3, 0x95, 0x72, 0xac, 0x2e, 0x22, 0xb5,
+ 0x55, 0x6a, 0x2c, 0x75, 0xbe, 0xeb, 0xd8, 0xec, 0x75, 0x4d, 0x96, 0x17,
+ 0x1f, 0x14, 0x86, 0xa7, 0x84, 0x5c, 0x67, 0x80,
+};
+static const unsigned char kat3569_entropyinpr2[] = {
+ 0xa1, 0xa1, 0x14, 0xcd, 0x1a, 0x59, 0xb6, 0x22, 0xb9, 0x90, 0xf0, 0x1b,
+ 0x2d, 0x47, 0x40, 0x63, 0x1e, 0x3a, 0x31, 0xd7, 0x35, 0x61, 0x63, 0xbd,
+ 0x0f, 0x7f, 0x6f, 0x8e, 0xf8, 0xad, 0xca, 0xbe,
+};
+static const unsigned char kat3569_addinpr2[] = {
+ 0xc1, 0x6f, 0x6a, 0x1e, 0xfb, 0x94, 0xb2, 0xd2, 0x88, 0xc6, 0xab, 0xbd,
+ 0xb9, 0xd0, 0xc5, 0x65, 0xf5, 0xfe, 0xb8, 0x23, 0x60, 0xd9, 0xad, 0xd5,
+ 0x6a, 0x45, 0x27, 0x94, 0x21, 0x4d, 0x22, 0x8e,
+};
+static const unsigned char kat3569_retbits[] = {
+ 0x18, 0xda, 0x94, 0xa8, 0x76, 0x53, 0x2b, 0xb7, 0x8b, 0xe4, 0x75, 0xdf,
+ 0x05, 0x03, 0x00, 0xbb, 0xd5, 0xd8, 0x03, 0x9f, 0x2f, 0x3f, 0xcf, 0xf1,
+ 0x01, 0x7e, 0x05, 0xe2, 0x89, 0x9c, 0x3a, 0x17, 0xd8, 0xf7, 0xe3, 0xcf,
+ 0xf0, 0x7b, 0xca, 0xbe, 0xcf, 0x11, 0xf8, 0x06, 0xd2, 0xdb, 0x10, 0xe6,
+ 0xa9, 0x79, 0xab, 0x86, 0x7b, 0x5a, 0x74, 0x29, 0x20, 0xb2, 0xdd, 0x6f,
+ 0x4d, 0x18, 0x95, 0x21,
+};
+static const struct drbg_kat_pr_true kat3569_t = {
+ 13, kat3569_entropyin, kat3569_nonce, kat3569_persstr,
+ kat3569_entropyinpr1, kat3569_addinpr1, kat3569_entropyinpr2,
+ kat3569_addinpr2, kat3569_retbits
+};
+static const struct drbg_kat kat3569 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3569_t
+};
+
+static const unsigned char kat3570_entropyin[] = {
+ 0x1b, 0x46, 0xc5, 0xa0, 0xde, 0x71, 0x0a, 0xf4, 0xc1, 0xb3, 0xf8, 0xf7,
+ 0x7e, 0x0d, 0x50, 0xb5, 0x2e, 0xe4, 0x61, 0x36, 0xe9, 0xc1, 0x9e, 0x50,
+ 0xf1, 0x24, 0x9f, 0xf1, 0xb0, 0x34, 0x59, 0x00,
+};
+static const unsigned char kat3570_nonce[] = {
+ 0xb2, 0x87, 0xec, 0x51, 0xff, 0x61, 0xe2, 0xb0, 0xf8, 0xd2, 0xbc, 0xd8,
+ 0x0f, 0x52, 0x88, 0x56,
+};
+static const unsigned char kat3570_persstr[] = {0};
+static const unsigned char kat3570_entropyinpr1[] = {
+ 0xb0, 0x0f, 0x5b, 0x2d, 0xff, 0x8e, 0x56, 0x6d, 0xf9, 0x49, 0x54, 0x8c,
+ 0x34, 0x12, 0x47, 0x43, 0xb5, 0x12, 0xa6, 0x79, 0xab, 0x10, 0x48, 0x42,
+ 0x44, 0x73, 0xa5, 0x35, 0x69, 0x41, 0x4e, 0x21,
+};
+static const unsigned char kat3570_addinpr1[] = {
+ 0x1a, 0x83, 0xbe, 0xef, 0xaf, 0x54, 0x3c, 0x6c, 0xd9, 0xe3, 0x18, 0x97,
+ 0x28, 0x62, 0x5e, 0xa3, 0xd3, 0x5f, 0xc0, 0xb8, 0x7e, 0xdb, 0x63, 0x55,
+ 0xed, 0xc4, 0xd3, 0x47, 0x47, 0x03, 0x9d, 0x2e,
+};
+static const unsigned char kat3570_entropyinpr2[] = {
+ 0x7f, 0xb6, 0xca, 0x08, 0xe7, 0xd1, 0xa8, 0x29, 0xed, 0x08, 0xe5, 0x53,
+ 0x7c, 0xb3, 0x27, 0x77, 0xa0, 0xc9, 0xe5, 0x35, 0x30, 0x95, 0xf5, 0x03,
+ 0xfc, 0xf9, 0x2b, 0x3b, 0x8d, 0x5d, 0x95, 0x0b,
+};
+static const unsigned char kat3570_addinpr2[] = {
+ 0x82, 0x24, 0xf8, 0x4a, 0xdc, 0x9d, 0xff, 0x6c, 0x3b, 0x0f, 0xa3, 0xd2,
+ 0x71, 0xd1, 0xf0, 0x36, 0x96, 0x94, 0x52, 0x41, 0x14, 0x2e, 0xc0, 0xe8,
+ 0x45, 0xe7, 0x5c, 0x56, 0xe2, 0x90, 0xe4, 0xcd,
+};
+static const unsigned char kat3570_retbits[] = {
+ 0xc5, 0x72, 0xc7, 0x7d, 0x60, 0x81, 0x90, 0xe7, 0x10, 0x22, 0xde, 0xb8,
+ 0x81, 0x22, 0x5f, 0x87, 0xb6, 0xb1, 0xf1, 0x29, 0x27, 0x9e, 0x23, 0x17,
+ 0x8c, 0x73, 0x1c, 0xc0, 0xa1, 0x19, 0x40, 0x8c, 0x6f, 0x83, 0x16, 0xc1,
+ 0xda, 0x8b, 0x18, 0xa0, 0x0f, 0x55, 0x1e, 0xb6, 0xfd, 0xd3, 0x9e, 0xa1,
+ 0xef, 0x42, 0x35, 0xc3, 0x01, 0xd1, 0xc1, 0x33, 0x48, 0xad, 0xc1, 0x47,
+ 0xd0, 0xfc, 0x3a, 0x71,
+};
+static const struct drbg_kat_pr_true kat3570_t = {
+ 14, kat3570_entropyin, kat3570_nonce, kat3570_persstr,
+ kat3570_entropyinpr1, kat3570_addinpr1, kat3570_entropyinpr2,
+ kat3570_addinpr2, kat3570_retbits
+};
+static const struct drbg_kat kat3570 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 0, 32, 64, &kat3570_t
+};
+
+static const unsigned char kat3571_entropyin[] = {
+ 0x38, 0xd5, 0x4f, 0x70, 0x9a, 0x27, 0x4e, 0x03, 0x67, 0xa9, 0x43, 0xb9,
+ 0xe9, 0x0f, 0x6f, 0xdb, 0x32, 0x41, 0x24, 0x44, 0x94, 0x1b, 0x7e, 0xab,
+ 0x92, 0x87, 0x05, 0xfa, 0xa1, 0x04, 0x5f, 0x90,
+};
+static const unsigned char kat3571_nonce[] = {
+ 0xd4, 0xd5, 0xaa, 0x7a, 0x06, 0xb6, 0x15, 0x28, 0x75, 0x2b, 0x63, 0x3e,
+ 0xb7, 0xd7, 0x77, 0xba,
+};
+static const unsigned char kat3571_persstr[] = {
+ 0x84, 0x73, 0x13, 0xd7, 0xe4, 0xe0, 0x2d, 0xd8, 0xa2, 0x33, 0xc3, 0xa9,
+ 0xfb, 0x77, 0xa3, 0x10, 0x09, 0x12, 0x88, 0x5b, 0xe5, 0x86, 0x6c, 0x8f,
+ 0x44, 0xf4, 0x7a, 0xd8, 0x48, 0x9b, 0xe3, 0xc8,
+};
+static const unsigned char kat3571_entropyinpr1[] = {
+ 0x59, 0xc0, 0x2e, 0x14, 0x2d, 0xb6, 0x46, 0x21, 0xc1, 0x63, 0xd8, 0x62,
+ 0x87, 0xbe, 0x98, 0x18, 0xdf, 0xfe, 0xf5, 0xe9, 0xb0, 0x15, 0xba, 0x1a,
+ 0x86, 0xf6, 0x3f, 0xa8, 0xc1, 0x8a, 0xd1, 0xe1,
+};
+static const unsigned char kat3571_addinpr1[] = {0};
+static const unsigned char kat3571_entropyinpr2[] = {
+ 0xe3, 0x2a, 0x2a, 0xe8, 0x54, 0x7f, 0xdb, 0x8e, 0xae, 0xa2, 0xde, 0xa1,
+ 0x5e, 0x0e, 0x08, 0xd8, 0x76, 0x16, 0xd1, 0x80, 0xe4, 0x9d, 0x84, 0x91,
+ 0x02, 0x56, 0xd3, 0x33, 0x99, 0x33, 0x44, 0xe6,
+};
+static const unsigned char kat3571_addinpr2[] = {0};
+static const unsigned char kat3571_retbits[] = {
+ 0x43, 0x69, 0xfe, 0xfd, 0xb9, 0x38, 0x57, 0xce, 0x6a, 0x50, 0xf5, 0x24,
+ 0x37, 0x09, 0x87, 0x6a, 0x68, 0x87, 0xf7, 0xc8, 0xfa, 0xcc, 0x08, 0x7d,
+ 0xb9, 0x61, 0x64, 0xd1, 0x30, 0x03, 0x01, 0xcf, 0xeb, 0x0b, 0xcd, 0xbb,
+ 0x25, 0x38, 0xa4, 0x56, 0x7a, 0xc3, 0xcf, 0xf4, 0xb9, 0xc6, 0xc1, 0x6d,
+ 0xe6, 0x36, 0xc2, 0xc6, 0x44, 0x9b, 0x8b, 0x55, 0xbb, 0x1d, 0x1c, 0xcd,
+ 0x87, 0x28, 0xe2, 0xc2,
+};
+static const struct drbg_kat_pr_true kat3571_t = {
+ 0, kat3571_entropyin, kat3571_nonce, kat3571_persstr,
+ kat3571_entropyinpr1, kat3571_addinpr1, kat3571_entropyinpr2,
+ kat3571_addinpr2, kat3571_retbits
+};
+static const struct drbg_kat kat3571 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3571_t
+};
+
+static const unsigned char kat3572_entropyin[] = {
+ 0x98, 0xd6, 0xd8, 0xfe, 0x8d, 0x18, 0x96, 0xe9, 0xff, 0x42, 0x78, 0x7e,
+ 0x64, 0x50, 0xe2, 0x8b, 0x0d, 0x59, 0xfb, 0x84, 0x19, 0xc9, 0x00, 0xd1,
+ 0x21, 0x40, 0xb1, 0xaf, 0xe2, 0xb1, 0x22, 0xe9,
+};
+static const unsigned char kat3572_nonce[] = {
+ 0x53, 0x14, 0x5d, 0x02, 0x53, 0x91, 0x8b, 0xd9, 0xb2, 0x5a, 0xce, 0xeb,
+ 0xc1, 0xb9, 0xd8, 0x38,
+};
+static const unsigned char kat3572_persstr[] = {
+ 0x9e, 0xa9, 0x5b, 0x59, 0x98, 0x84, 0x1e, 0x91, 0x6c, 0xfb, 0x68, 0x5b,
+ 0x36, 0x2c, 0xea, 0xdd, 0x3c, 0x3b, 0x6c, 0x8d, 0x7e, 0x00, 0x7c, 0x53,
+ 0x47, 0x12, 0xd8, 0x24, 0xcd, 0x4b, 0x9a, 0x5b,
+};
+static const unsigned char kat3572_entropyinpr1[] = {
+ 0xe6, 0x46, 0x2f, 0x46, 0x18, 0xc7, 0xa6, 0xa3, 0x9b, 0xdd, 0xaf, 0xd0,
+ 0x51, 0xf8, 0x87, 0x30, 0xbf, 0xf1, 0x25, 0xc7, 0xcb, 0xb9, 0x7b, 0x05,
+ 0xb7, 0x81, 0x7f, 0x00, 0x22, 0xae, 0xa5, 0xc6,
+};
+static const unsigned char kat3572_addinpr1[] = {0};
+static const unsigned char kat3572_entropyinpr2[] = {
+ 0x24, 0x8d, 0xe2, 0xcc, 0xa3, 0xe2, 0x1a, 0xeb, 0xdb, 0x03, 0x87, 0xce,
+ 0x40, 0x4e, 0x12, 0xb7, 0xfc, 0xc2, 0xad, 0x51, 0xd4, 0x3e, 0x7b, 0x55,
+ 0x4e, 0xba, 0x56, 0x57, 0x75, 0xf5, 0x28, 0x26,
+};
+static const unsigned char kat3572_addinpr2[] = {0};
+static const unsigned char kat3572_retbits[] = {
+ 0xcf, 0xc3, 0x87, 0x6c, 0x14, 0x55, 0x67, 0xeb, 0xdd, 0x94, 0xde, 0x43,
+ 0xd0, 0x72, 0x6e, 0xaa, 0xb0, 0xdd, 0x37, 0x7f, 0x80, 0x3f, 0x6c, 0xf8,
+ 0x48, 0x0e, 0x86, 0xa7, 0x79, 0xd8, 0xe8, 0xef, 0xaf, 0x14, 0x3d, 0x0d,
+ 0x3d, 0x0f, 0x23, 0x92, 0x10, 0x9d, 0x56, 0x60, 0x4e, 0x36, 0x7f, 0xdf,
+ 0xc7, 0x70, 0x65, 0x8b, 0x56, 0xf1, 0xe4, 0x5c, 0x32, 0xc9, 0xa7, 0xa5,
+ 0xc3, 0x71, 0x19, 0x36,
+};
+static const struct drbg_kat_pr_true kat3572_t = {
+ 1, kat3572_entropyin, kat3572_nonce, kat3572_persstr,
+ kat3572_entropyinpr1, kat3572_addinpr1, kat3572_entropyinpr2,
+ kat3572_addinpr2, kat3572_retbits
+};
+static const struct drbg_kat kat3572 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3572_t
+};
+
+static const unsigned char kat3573_entropyin[] = {
+ 0xc5, 0x14, 0x3e, 0x6d, 0x5b, 0x29, 0x5a, 0x76, 0x89, 0x02, 0x79, 0x39,
+ 0xed, 0x78, 0x30, 0x89, 0x0d, 0xa2, 0xbd, 0x3c, 0x70, 0x47, 0xa1, 0x7d,
+ 0xf7, 0x6b, 0xfe, 0x13, 0xca, 0xd8, 0xb2, 0xf3,
+};
+static const unsigned char kat3573_nonce[] = {
+ 0x0e, 0xa3, 0x4f, 0xca, 0x48, 0xfa, 0x0e, 0x9e, 0xf1, 0xe9, 0x90, 0x1c,
+ 0xa2, 0xec, 0x1e, 0x56,
+};
+static const unsigned char kat3573_persstr[] = {
+ 0x7f, 0x78, 0x43, 0x86, 0x6d, 0xe2, 0x2a, 0xd8, 0x0e, 0xc3, 0x93, 0xeb,
+ 0x1f, 0x55, 0xcc, 0x02, 0x2a, 0x4e, 0x9b, 0x6b, 0x62, 0x66, 0x6d, 0xd2,
+ 0x28, 0x99, 0x0c, 0x2a, 0x30, 0xfc, 0xb3, 0x06,
+};
+static const unsigned char kat3573_entropyinpr1[] = {
+ 0xd3, 0xbc, 0x98, 0xae, 0x70, 0x76, 0x80, 0xfa, 0xb6, 0x01, 0x5c, 0x5c,
+ 0x05, 0xc9, 0x5d, 0x43, 0xbb, 0x86, 0xca, 0xdb, 0xe6, 0x14, 0x9b, 0xff,
+ 0x72, 0x03, 0x69, 0x8d, 0x0c, 0xe3, 0xa9, 0xe2,
+};
+static const unsigned char kat3573_addinpr1[] = {0};
+static const unsigned char kat3573_entropyinpr2[] = {
+ 0x50, 0x2d, 0xfa, 0x50, 0x33, 0xaf, 0xd3, 0xb1, 0x5c, 0x20, 0xa6, 0xae,
+ 0xc2, 0x2f, 0xee, 0xfa, 0xd2, 0x20, 0xd0, 0x26, 0xf8, 0x3d, 0x2e, 0x5c,
+ 0x5f, 0xa3, 0x8f, 0x41, 0x75, 0xfa, 0xb2, 0x95,
+};
+static const unsigned char kat3573_addinpr2[] = {0};
+static const unsigned char kat3573_retbits[] = {
+ 0x00, 0x72, 0x21, 0xb2, 0x5f, 0x15, 0x67, 0xbb, 0x34, 0xee, 0xa0, 0x6e,
+ 0x9a, 0x72, 0xb9, 0x1f, 0xe3, 0x1b, 0xea, 0x07, 0xff, 0x3c, 0xc8, 0x20,
+ 0x3d, 0x57, 0xa0, 0x6b, 0x6d, 0x9a, 0x30, 0x67, 0x55, 0x2f, 0x62, 0x9e,
+ 0x03, 0x68, 0x27, 0xe3, 0x64, 0x1a, 0x85, 0x77, 0xa3, 0xe7, 0xe5, 0x0b,
+ 0x0d, 0xf5, 0x49, 0xc6, 0x42, 0x4b, 0xf6, 0xdb, 0xc6, 0x36, 0x3b, 0xa5,
+ 0x44, 0x6e, 0x2a, 0xfa,
+};
+static const struct drbg_kat_pr_true kat3573_t = {
+ 2, kat3573_entropyin, kat3573_nonce, kat3573_persstr,
+ kat3573_entropyinpr1, kat3573_addinpr1, kat3573_entropyinpr2,
+ kat3573_addinpr2, kat3573_retbits
+};
+static const struct drbg_kat kat3573 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3573_t
+};
+
+static const unsigned char kat3574_entropyin[] = {
+ 0x26, 0x4e, 0x18, 0xca, 0xcb, 0xf0, 0xcc, 0xd9, 0xdb, 0x90, 0xcc, 0x71,
+ 0x82, 0x8f, 0x17, 0xaa, 0x8d, 0x0c, 0x92, 0xb0, 0xe7, 0x06, 0xbd, 0x83,
+ 0x1f, 0x43, 0x8b, 0x8c, 0xe4, 0x46, 0x9d, 0xc9,
+};
+static const unsigned char kat3574_nonce[] = {
+ 0x42, 0x32, 0x71, 0x81, 0x5a, 0x47, 0x48, 0x6a, 0x4b, 0xa7, 0xe2, 0x5a,
+ 0xed, 0x68, 0x37, 0xca,
+};
+static const unsigned char kat3574_persstr[] = {
+ 0x6e, 0x24, 0x9e, 0xc4, 0x56, 0x31, 0x6b, 0x39, 0x39, 0xb0, 0xde, 0x9d,
+ 0x84, 0xe0, 0x24, 0x22, 0xd1, 0x1d, 0xa5, 0x53, 0x8a, 0xb0, 0x76, 0x1e,
+ 0xa7, 0xe6, 0xb1, 0xb9, 0x9b, 0x9e, 0xa8, 0x0e,
+};
+static const unsigned char kat3574_entropyinpr1[] = {
+ 0x62, 0x6f, 0x2b, 0x13, 0x78, 0x79, 0x0c, 0xdd, 0x4d, 0x27, 0xee, 0xb1,
+ 0xac, 0x53, 0x5a, 0x8b, 0x46, 0x7f, 0xe1, 0xbc, 0x4e, 0x86, 0xb1, 0xee,
+ 0x11, 0xe4, 0xd4, 0x31, 0x96, 0x2f, 0xd5, 0x84,
+};
+static const unsigned char kat3574_addinpr1[] = {0};
+static const unsigned char kat3574_entropyinpr2[] = {
+ 0x68, 0x79, 0x6b, 0xfa, 0x21, 0x36, 0x29, 0x7c, 0x0e, 0x92, 0x85, 0x89,
+ 0xd4, 0x8f, 0x74, 0xc6, 0xb0, 0x9f, 0x45, 0xa8, 0xb2, 0x14, 0x55, 0x97,
+ 0x27, 0x6c, 0x91, 0x64, 0x27, 0x2f, 0xc5, 0xe3,
+};
+static const unsigned char kat3574_addinpr2[] = {0};
+static const unsigned char kat3574_retbits[] = {
+ 0x2b, 0xbb, 0x8c, 0x6f, 0x80, 0x7c, 0x1d, 0xd2, 0xe9, 0xec, 0x39, 0xa3,
+ 0xec, 0xf7, 0x83, 0x75, 0x4d, 0x12, 0x57, 0x01, 0x02, 0x92, 0x0f, 0x9b,
+ 0x48, 0xd4, 0xed, 0x04, 0xfa, 0xe3, 0x37, 0x5d, 0x05, 0xb7, 0xc1, 0x86,
+ 0xa5, 0x8b, 0xce, 0xfe, 0x8d, 0x5d, 0x71, 0x4f, 0xf4, 0x39, 0x10, 0xa2,
+ 0x33, 0x45, 0x60, 0x04, 0x9f, 0x95, 0xcb, 0x2a, 0xf4, 0xbb, 0xad, 0x0a,
+ 0x9b, 0x81, 0x68, 0xdd,
+};
+static const struct drbg_kat_pr_true kat3574_t = {
+ 3, kat3574_entropyin, kat3574_nonce, kat3574_persstr,
+ kat3574_entropyinpr1, kat3574_addinpr1, kat3574_entropyinpr2,
+ kat3574_addinpr2, kat3574_retbits
+};
+static const struct drbg_kat kat3574 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3574_t
+};
+
+static const unsigned char kat3575_entropyin[] = {
+ 0xda, 0x4a, 0x59, 0x97, 0xde, 0x6f, 0x87, 0x9d, 0x90, 0x33, 0x8a, 0x05,
+ 0xf4, 0x8b, 0x1d, 0xa8, 0x2c, 0x42, 0x41, 0x0d, 0x0f, 0x7f, 0x41, 0xfc,
+ 0xdd, 0x77, 0xc3, 0xa7, 0xd9, 0x97, 0xc9, 0x2d,
+};
+static const unsigned char kat3575_nonce[] = {
+ 0xa3, 0xf1, 0xc7, 0x0f, 0x78, 0xab, 0xff, 0x24, 0xfc, 0x2c, 0x60, 0x10,
+ 0x02, 0x90, 0x0f, 0x19,
+};
+static const unsigned char kat3575_persstr[] = {
+ 0x6d, 0x92, 0x57, 0xd2, 0xc1, 0xa2, 0x0a, 0x88, 0x7c, 0x75, 0x8f, 0x12,
+ 0xfa, 0xf2, 0xa3, 0xd1, 0xb8, 0x19, 0xfb, 0xf6, 0xf5, 0xe0, 0x6d, 0x6b,
+ 0x06, 0x28, 0xe5, 0x62, 0x34, 0x53, 0xdb, 0x23,
+};
+static const unsigned char kat3575_entropyinpr1[] = {
+ 0xa8, 0xae, 0xba, 0x60, 0x88, 0x96, 0x94, 0xae, 0xa3, 0x0d, 0xa1, 0xde,
+ 0x9f, 0xd0, 0x81, 0xf4, 0x3d, 0x39, 0xe2, 0x71, 0x54, 0x79, 0x5b, 0xae,
+ 0xc9, 0x2e, 0x4a, 0xcf, 0xb9, 0x15, 0xbc, 0x6b,
+};
+static const unsigned char kat3575_addinpr1[] = {0};
+static const unsigned char kat3575_entropyinpr2[] = {
+ 0x61, 0x06, 0xcd, 0xb0, 0xf4, 0x5d, 0xfb, 0x81, 0x76, 0xfc, 0x99, 0xa1,
+ 0x30, 0xfa, 0x02, 0x54, 0xa0, 0xe5, 0x4b, 0x19, 0x64, 0x88, 0x0b, 0xab,
+ 0xed, 0x0a, 0xab, 0x48, 0xb1, 0x5f, 0xf7, 0x7d,
+};
+static const unsigned char kat3575_addinpr2[] = {0};
+static const unsigned char kat3575_retbits[] = {
+ 0xb1, 0x3a, 0x18, 0x6e, 0xdc, 0x40, 0x57, 0xc4, 0x28, 0xea, 0xfc, 0xe1,
+ 0x23, 0xde, 0xf1, 0x5c, 0x65, 0xa1, 0xd8, 0x1d, 0x91, 0xc9, 0xc0, 0xb1,
+ 0xa7, 0xd0, 0x61, 0x27, 0x5e, 0x52, 0x71, 0xc0, 0xcf, 0xfa, 0xf0, 0x32,
+ 0x79, 0xca, 0x2b, 0x65, 0x8e, 0xdd, 0x12, 0xca, 0xed, 0xc4, 0xc2, 0xa3,
+ 0x97, 0x3e, 0x22, 0x6a, 0x12, 0x3d, 0x01, 0x75, 0x0f, 0x2f, 0x60, 0x6c,
+ 0x50, 0x2f, 0x61, 0x68,
+};
+static const struct drbg_kat_pr_true kat3575_t = {
+ 4, kat3575_entropyin, kat3575_nonce, kat3575_persstr,
+ kat3575_entropyinpr1, kat3575_addinpr1, kat3575_entropyinpr2,
+ kat3575_addinpr2, kat3575_retbits
+};
+static const struct drbg_kat kat3575 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3575_t
+};
+
+static const unsigned char kat3576_entropyin[] = {
+ 0x9e, 0x2b, 0x44, 0x24, 0xdb, 0xa3, 0x57, 0x88, 0x52, 0xec, 0x0a, 0x0a,
+ 0x25, 0xcb, 0x72, 0xae, 0xf7, 0xad, 0x53, 0x1b, 0x7d, 0x03, 0xbf, 0x70,
+ 0x52, 0x72, 0x14, 0xaa, 0x9b, 0x29, 0x8a, 0x7b,
+};
+static const unsigned char kat3576_nonce[] = {
+ 0x53, 0xa3, 0x64, 0x90, 0x2c, 0x93, 0xd0, 0x87, 0x7c, 0x9d, 0x26, 0xd0,
+ 0xbb, 0xb1, 0xa4, 0xc8,
+};
+static const unsigned char kat3576_persstr[] = {
+ 0x94, 0xac, 0xf5, 0x26, 0x78, 0xbf, 0xaa, 0x21, 0xa1, 0xb6, 0x3a, 0x17,
+ 0x6d, 0x79, 0x91, 0xda, 0x28, 0x66, 0x77, 0x58, 0x61, 0x33, 0x12, 0x6c,
+ 0x63, 0x8f, 0x9e, 0x13, 0xea, 0xa4, 0x10, 0xd4,
+};
+static const unsigned char kat3576_entropyinpr1[] = {
+ 0xc9, 0x51, 0x1c, 0x6b, 0x14, 0x50, 0xe2, 0x36, 0x28, 0x0a, 0x9a, 0x19,
+ 0x27, 0x15, 0x8f, 0xe3, 0xba, 0xfe, 0x7f, 0xe8, 0xa6, 0x13, 0xcf, 0xb3,
+ 0xc1, 0x4a, 0x61, 0x3e, 0x62, 0x26, 0x41, 0xe5,
+};
+static const unsigned char kat3576_addinpr1[] = {0};
+static const unsigned char kat3576_entropyinpr2[] = {
+ 0x65, 0xf2, 0xc5, 0xb1, 0xf3, 0xc4, 0x6f, 0x9c, 0xae, 0x6e, 0x39, 0x6b,
+ 0x86, 0xda, 0xb2, 0x43, 0x9e, 0x7a, 0xce, 0x72, 0x3b, 0xd2, 0x7c, 0x6f,
+ 0xbc, 0x08, 0xd7, 0x06, 0x0d, 0x74, 0x00, 0x2d,
+};
+static const unsigned char kat3576_addinpr2[] = {0};
+static const unsigned char kat3576_retbits[] = {
+ 0x1a, 0x96, 0xe9, 0xbc, 0x65, 0x18, 0xb9, 0x1b, 0x00, 0x1e, 0x0e, 0x46,
+ 0x83, 0xbf, 0x1b, 0x49, 0x5e, 0x46, 0x92, 0x38, 0x8e, 0x16, 0xd9, 0xb6,
+ 0x9f, 0x41, 0xd1, 0xd4, 0xbb, 0xa8, 0x8a, 0x49, 0x7a, 0xc5, 0x60, 0x13,
+ 0xc2, 0x8f, 0x20, 0x7f, 0x5c, 0xfc, 0x52, 0x07, 0x7d, 0x12, 0x88, 0x60,
+ 0x08, 0x58, 0x0e, 0xc4, 0x62, 0x04, 0xf5, 0xf3, 0x65, 0xaa, 0x8c, 0x98,
+ 0x86, 0xa6, 0x01, 0xc6,
+};
+static const struct drbg_kat_pr_true kat3576_t = {
+ 5, kat3576_entropyin, kat3576_nonce, kat3576_persstr,
+ kat3576_entropyinpr1, kat3576_addinpr1, kat3576_entropyinpr2,
+ kat3576_addinpr2, kat3576_retbits
+};
+static const struct drbg_kat kat3576 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3576_t
+};
+
+static const unsigned char kat3577_entropyin[] = {
+ 0x5a, 0x1a, 0xba, 0x12, 0x1c, 0xd8, 0xce, 0x9f, 0xd9, 0xf7, 0xb9, 0xe5,
+ 0xb8, 0xc4, 0x41, 0x98, 0x45, 0x0d, 0xf3, 0x44, 0x0a, 0x36, 0xe9, 0x0f,
+ 0x6d, 0x76, 0x5e, 0xf3, 0xc2, 0x6b, 0x6c, 0x1d,
+};
+static const unsigned char kat3577_nonce[] = {
+ 0x98, 0x7b, 0xd9, 0xdc, 0x7d, 0xa8, 0x30, 0x5c, 0x14, 0x0e, 0xd7, 0x5a,
+ 0x40, 0xa1, 0xb4, 0xf2,
+};
+static const unsigned char kat3577_persstr[] = {
+ 0x83, 0x55, 0x0d, 0xff, 0x99, 0x10, 0x57, 0xdf, 0x78, 0x59, 0xc2, 0xd0,
+ 0x0c, 0x7f, 0xb1, 0x30, 0xa9, 0x1e, 0xae, 0xc7, 0xdf, 0x86, 0x8c, 0x39,
+ 0xda, 0x30, 0x20, 0x58, 0xb2, 0x2c, 0x6e, 0x67,
+};
+static const unsigned char kat3577_entropyinpr1[] = {
+ 0x58, 0x9d, 0x3b, 0x8d, 0x4d, 0xe0, 0x68, 0x32, 0x3e, 0xf2, 0x89, 0x44,
+ 0x7d, 0x1e, 0x7d, 0xf9, 0x69, 0xa3, 0x6d, 0xdc, 0x08, 0x36, 0xef, 0x32,
+ 0xf0, 0x15, 0x41, 0x94, 0xff, 0xaa, 0xfd, 0xd5,
+};
+static const unsigned char kat3577_addinpr1[] = {0};
+static const unsigned char kat3577_entropyinpr2[] = {
+ 0x0e, 0x5d, 0xbd, 0xdf, 0x2f, 0x57, 0x63, 0x68, 0x22, 0x3d, 0x12, 0x11,
+ 0xe9, 0xe1, 0xc2, 0x35, 0x13, 0xf1, 0x85, 0x6f, 0xf5, 0xe9, 0x8e, 0x39,
+ 0xb1, 0xd3, 0x3e, 0x74, 0xe1, 0x87, 0xc9, 0xe2,
+};
+static const unsigned char kat3577_addinpr2[] = {0};
+static const unsigned char kat3577_retbits[] = {
+ 0x8f, 0x48, 0x0f, 0xf1, 0x59, 0x97, 0xaa, 0xec, 0xe2, 0x3c, 0xd8, 0xd2,
+ 0x44, 0x00, 0xb1, 0x96, 0x81, 0x99, 0x0d, 0x76, 0xe6, 0xdf, 0x09, 0x30,
+ 0x5a, 0x84, 0x24, 0xe6, 0x60, 0x86, 0x8b, 0x36, 0x5c, 0x50, 0xdf, 0xce,
+ 0x3c, 0x56, 0x42, 0x18, 0x1c, 0x24, 0x3b, 0x5f, 0x45, 0x95, 0x8f, 0x69,
+ 0xf4, 0x10, 0xa1, 0xe0, 0x26, 0x54, 0xdf, 0xe4, 0xa7, 0x32, 0xbf, 0x67,
+ 0x35, 0x69, 0x28, 0xf4,
+};
+static const struct drbg_kat_pr_true kat3577_t = {
+ 6, kat3577_entropyin, kat3577_nonce, kat3577_persstr,
+ kat3577_entropyinpr1, kat3577_addinpr1, kat3577_entropyinpr2,
+ kat3577_addinpr2, kat3577_retbits
+};
+static const struct drbg_kat kat3577 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3577_t
+};
+
+static const unsigned char kat3578_entropyin[] = {
+ 0xf9, 0xef, 0x76, 0xd7, 0xfa, 0xf3, 0x33, 0x81, 0x6d, 0x71, 0xa8, 0xa1,
+ 0x6f, 0xfb, 0x5b, 0x0c, 0xed, 0xf1, 0x42, 0x66, 0x8b, 0xb1, 0x9c, 0xa8,
+ 0xb2, 0x25, 0xf3, 0x93, 0xaa, 0xbe, 0xdd, 0x0b,
+};
+static const unsigned char kat3578_nonce[] = {
+ 0xcc, 0xf2, 0xcc, 0x15, 0xbd, 0x73, 0x54, 0x66, 0x8a, 0x30, 0x44, 0xc5,
+ 0x4d, 0x1a, 0x4f, 0x47,
+};
+static const unsigned char kat3578_persstr[] = {
+ 0x01, 0x45, 0x35, 0x93, 0x07, 0x95, 0xd5, 0x36, 0xf2, 0x67, 0x80, 0xca,
+ 0x1c, 0x88, 0x79, 0x93, 0xaa, 0xf5, 0x33, 0x94, 0x6c, 0x5c, 0xf2, 0x08,
+ 0xcb, 0xb4, 0x71, 0x6f, 0xec, 0x6c, 0xb2, 0xdd,
+};
+static const unsigned char kat3578_entropyinpr1[] = {
+ 0x48, 0xbb, 0xce, 0x4f, 0xe2, 0xd5, 0xd6, 0x7e, 0x18, 0xae, 0x28, 0xcf,
+ 0x07, 0x31, 0xfb, 0x95, 0xf7, 0x98, 0xa5, 0xcf, 0x6a, 0x89, 0xa5, 0xb1,
+ 0x46, 0x62, 0xdf, 0x87, 0x7c, 0xd6, 0x2d, 0xb1,
+};
+static const unsigned char kat3578_addinpr1[] = {0};
+static const unsigned char kat3578_entropyinpr2[] = {
+ 0xb7, 0xf0, 0xe5, 0x93, 0xea, 0xa4, 0x46, 0xb9, 0xd2, 0xb2, 0x14, 0x31,
+ 0x87, 0x1c, 0xeb, 0x90, 0x32, 0x40, 0x70, 0xd6, 0xd2, 0x86, 0x8a, 0xe7,
+ 0x28, 0x5f, 0xfa, 0x34, 0x8e, 0xe0, 0x3e, 0x9d,
+};
+static const unsigned char kat3578_addinpr2[] = {0};
+static const unsigned char kat3578_retbits[] = {
+ 0x0a, 0x6b, 0x46, 0xa6, 0xf6, 0xc2, 0x20, 0x73, 0x7b, 0xc2, 0xb2, 0x2c,
+ 0xbc, 0x6c, 0xa9, 0xf6, 0x63, 0xf8, 0x3e, 0x33, 0xc8, 0x94, 0x6b, 0xef,
+ 0x9e, 0x68, 0x3c, 0xfe, 0x5b, 0x46, 0x96, 0xca, 0x00, 0x83, 0xe8, 0xf1,
+ 0xee, 0x1e, 0x82, 0x8b, 0xcf, 0x0b, 0xef, 0xf8, 0xc5, 0xa4, 0x93, 0x3c,
+ 0xe5, 0x71, 0x63, 0x4a, 0xd8, 0xfe, 0x38, 0xb2, 0xf6, 0x64, 0x62, 0x57,
+ 0x2f, 0x55, 0x0d, 0x15,
+};
+static const struct drbg_kat_pr_true kat3578_t = {
+ 7, kat3578_entropyin, kat3578_nonce, kat3578_persstr,
+ kat3578_entropyinpr1, kat3578_addinpr1, kat3578_entropyinpr2,
+ kat3578_addinpr2, kat3578_retbits
+};
+static const struct drbg_kat kat3578 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3578_t
+};
+
+static const unsigned char kat3579_entropyin[] = {
+ 0xa4, 0x97, 0x21, 0x7c, 0x52, 0x97, 0x27, 0xc8, 0xb6, 0xa0, 0xab, 0x2f,
+ 0xae, 0xa3, 0x98, 0x2b, 0x97, 0x1f, 0x70, 0xe2, 0xbc, 0x70, 0xf9, 0x35,
+ 0xcc, 0xf2, 0x6f, 0x77, 0x53, 0xd0, 0xbc, 0x65,
+};
+static const unsigned char kat3579_nonce[] = {
+ 0xe8, 0x96, 0xc2, 0xde, 0xdd, 0xcb, 0xe6, 0x2d, 0xd8, 0x04, 0x62, 0x34,
+ 0x40, 0x9f, 0xef, 0x8f,
+};
+static const unsigned char kat3579_persstr[] = {
+ 0xd6, 0x9c, 0x0f, 0x42, 0xec, 0xa5, 0x5b, 0xd7, 0x44, 0x9a, 0x30, 0x6c,
+ 0xd2, 0x66, 0xbf, 0xcf, 0x65, 0xfe, 0x07, 0x24, 0x24, 0x48, 0xf6, 0xc3,
+ 0xaa, 0xc2, 0x6a, 0xa4, 0xc1, 0xd5, 0x28, 0x06,
+};
+static const unsigned char kat3579_entropyinpr1[] = {
+ 0xac, 0x2c, 0x4e, 0x52, 0x76, 0x06, 0x57, 0x34, 0x4f, 0xdf, 0x6e, 0x27,
+ 0xd8, 0x59, 0x06, 0x5f, 0xd5, 0xa8, 0xea, 0x95, 0xa5, 0x98, 0x46, 0x88,
+ 0xe4, 0x0d, 0x68, 0x03, 0x50, 0x9e, 0xf6, 0x6f,
+};
+static const unsigned char kat3579_addinpr1[] = {0};
+static const unsigned char kat3579_entropyinpr2[] = {
+ 0x5a, 0x61, 0x84, 0xd5, 0x2e, 0xee, 0x0c, 0x05, 0x90, 0x2f, 0x6a, 0xd1,
+ 0x9d, 0x39, 0x86, 0xc4, 0x9a, 0xd5, 0x1e, 0xb4, 0x26, 0x53, 0x9f, 0xb4,
+ 0x08, 0x22, 0x05, 0xa8, 0xe1, 0xaf, 0xe8, 0xdd,
+};
+static const unsigned char kat3579_addinpr2[] = {0};
+static const unsigned char kat3579_retbits[] = {
+ 0xa6, 0x49, 0x84, 0xf1, 0xb0, 0x3a, 0x95, 0x95, 0xaa, 0x85, 0xaa, 0x38,
+ 0x4c, 0xe3, 0x3f, 0x2d, 0xa9, 0xd7, 0xb7, 0xac, 0xb3, 0x4d, 0x6f, 0x18,
+ 0x5f, 0x7f, 0x6b, 0x62, 0xf6, 0x38, 0x2f, 0x45, 0xb1, 0x53, 0xe8, 0x1d,
+ 0x83, 0xf3, 0x63, 0x59, 0xfe, 0x06, 0x84, 0x2f, 0xd5, 0x82, 0x74, 0x98,
+ 0x62, 0x1e, 0x7f, 0xc1, 0x39, 0xbb, 0x84, 0x93, 0x05, 0xce, 0x87, 0x05,
+ 0xac, 0x72, 0xb1, 0x35,
+};
+static const struct drbg_kat_pr_true kat3579_t = {
+ 8, kat3579_entropyin, kat3579_nonce, kat3579_persstr,
+ kat3579_entropyinpr1, kat3579_addinpr1, kat3579_entropyinpr2,
+ kat3579_addinpr2, kat3579_retbits
+};
+static const struct drbg_kat kat3579 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3579_t
+};
+
+static const unsigned char kat3580_entropyin[] = {
+ 0x37, 0xd6, 0x15, 0x6b, 0xee, 0xa5, 0x14, 0x9a, 0x19, 0xc4, 0x36, 0x49,
+ 0xb7, 0x6d, 0xd7, 0x66, 0x47, 0xc7, 0x86, 0x16, 0x07, 0xbc, 0xa1, 0x44,
+ 0x09, 0xeb, 0x36, 0x39, 0xca, 0xbd, 0xbc, 0xb0,
+};
+static const unsigned char kat3580_nonce[] = {
+ 0xa9, 0x1e, 0x1d, 0x9b, 0x1b, 0x38, 0x7f, 0x50, 0x6b, 0xd2, 0x8c, 0x1e,
+ 0xf1, 0x08, 0x86, 0x07,
+};
+static const unsigned char kat3580_persstr[] = {
+ 0x08, 0x64, 0x9e, 0x3e, 0x1c, 0x87, 0x7a, 0x4a, 0xf5, 0xe4, 0xbe, 0x85,
+ 0x42, 0x04, 0xac, 0xea, 0x64, 0x56, 0xcd, 0x59, 0xd0, 0x10, 0x50, 0xae,
+ 0xb7, 0x8a, 0xca, 0xdd, 0x3f, 0xb2, 0xfe, 0x67,
+};
+static const unsigned char kat3580_entropyinpr1[] = {
+ 0x44, 0xa9, 0x30, 0x49, 0xdd, 0xa9, 0xb1, 0x91, 0x1d, 0x99, 0xd4, 0xd6,
+ 0xc8, 0xd0, 0xe8, 0x44, 0xd0, 0xec, 0x25, 0x59, 0xfb, 0xb7, 0xcc, 0xea,
+ 0xe4, 0x2b, 0x80, 0xb0, 0x23, 0xa5, 0xd7, 0xdb,
+};
+static const unsigned char kat3580_addinpr1[] = {0};
+static const unsigned char kat3580_entropyinpr2[] = {
+ 0x89, 0xc1, 0xcc, 0x6a, 0x40, 0xb0, 0xfe, 0xc1, 0xdd, 0x54, 0x82, 0xdd,
+ 0x3a, 0x6f, 0x4f, 0x65, 0x36, 0x83, 0xa6, 0xb2, 0xb3, 0x1c, 0xa0, 0x2b,
+ 0x92, 0x53, 0x3a, 0x46, 0xbd, 0xaa, 0x6b, 0xbe,
+};
+static const unsigned char kat3580_addinpr2[] = {0};
+static const unsigned char kat3580_retbits[] = {
+ 0x65, 0xe5, 0x2a, 0xe2, 0x40, 0x0b, 0x44, 0x62, 0x2e, 0x6a, 0x8e, 0x27,
+ 0x9b, 0x41, 0x92, 0x01, 0x29, 0xb4, 0x80, 0x2c, 0x3f, 0x1f, 0x9e, 0xc8,
+ 0x5e, 0xc0, 0x52, 0x57, 0xd5, 0x73, 0x64, 0xac, 0x05, 0x68, 0x30, 0x5d,
+ 0xce, 0xf3, 0xa1, 0xa5, 0x79, 0xc9, 0x2f, 0xf5, 0xc0, 0x86, 0x8d, 0x5b,
+ 0x02, 0x93, 0x36, 0x3d, 0x50, 0x9b, 0x53, 0xac, 0xce, 0x0b, 0x2d, 0xa1,
+ 0xc6, 0x80, 0x43, 0x86,
+};
+static const struct drbg_kat_pr_true kat3580_t = {
+ 9, kat3580_entropyin, kat3580_nonce, kat3580_persstr,
+ kat3580_entropyinpr1, kat3580_addinpr1, kat3580_entropyinpr2,
+ kat3580_addinpr2, kat3580_retbits
+};
+static const struct drbg_kat kat3580 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3580_t
+};
+
+static const unsigned char kat3581_entropyin[] = {
+ 0x5d, 0x14, 0xf4, 0x8f, 0xa6, 0x3d, 0xea, 0x3c, 0x30, 0x15, 0x88, 0xb5,
+ 0xd1, 0x47, 0x3d, 0x7b, 0x33, 0x26, 0x05, 0x98, 0xc4, 0x02, 0xd1, 0x82,
+ 0x06, 0xe3, 0xf2, 0x31, 0x5d, 0x14, 0x7a, 0xd8,
+};
+static const unsigned char kat3581_nonce[] = {
+ 0xbf, 0x6d, 0x67, 0xe2, 0x05, 0x3d, 0x83, 0x42, 0x93, 0x6c, 0xf8, 0x0e,
+ 0x12, 0x87, 0x1f, 0x16,
+};
+static const unsigned char kat3581_persstr[] = {
+ 0xd3, 0xd0, 0xa6, 0x5b, 0x7d, 0xb9, 0x9a, 0x0c, 0xf6, 0x68, 0xb7, 0x08,
+ 0x50, 0x5f, 0x48, 0x31, 0x47, 0x46, 0x03, 0xbd, 0xa2, 0x52, 0xd6, 0x4f,
+ 0x62, 0xea, 0x25, 0xae, 0x64, 0x36, 0x3e, 0xef,
+};
+static const unsigned char kat3581_entropyinpr1[] = {
+ 0x95, 0xd9, 0x60, 0xf8, 0xf9, 0x6c, 0x95, 0x85, 0xcf, 0xc5, 0x88, 0x6d,
+ 0xd7, 0x87, 0x81, 0xea, 0xe2, 0xce, 0x52, 0xad, 0x71, 0xb9, 0xc6, 0x7d,
+ 0x2e, 0xc1, 0xbf, 0xf8, 0x46, 0x56, 0x23, 0x8d,
+};
+static const unsigned char kat3581_addinpr1[] = {0};
+static const unsigned char kat3581_entropyinpr2[] = {
+ 0x8c, 0x3d, 0x0b, 0xfc, 0x13, 0x8d, 0x0a, 0x6d, 0x8a, 0x11, 0xae, 0x35,
+ 0xc6, 0xfa, 0x48, 0x18, 0xd9, 0xc4, 0xac, 0xe9, 0x39, 0x07, 0xbb, 0x94,
+ 0xa9, 0x66, 0x7b, 0xd5, 0x79, 0xe1, 0xc9, 0x88,
+};
+static const unsigned char kat3581_addinpr2[] = {0};
+static const unsigned char kat3581_retbits[] = {
+ 0xa6, 0xa1, 0x88, 0x2f, 0xc8, 0xf1, 0x4e, 0xc3, 0x2c, 0x12, 0x7a, 0x22,
+ 0x2f, 0xa1, 0x3b, 0x47, 0x0c, 0xe6, 0x92, 0xc4, 0x9c, 0x44, 0x36, 0x5a,
+ 0x2c, 0x52, 0x5e, 0x82, 0x87, 0x64, 0x6e, 0xbe, 0xe2, 0x40, 0x37, 0xb4,
+ 0x67, 0x2f, 0xb8, 0xa1, 0x68, 0x2e, 0xf1, 0x4c, 0x71, 0xa8, 0x0d, 0x17,
+ 0x8a, 0x12, 0x37, 0x81, 0x9a, 0x5b, 0xdd, 0x58, 0x95, 0xc5, 0xfd, 0xc9,
+ 0xd4, 0x0c, 0x4d, 0xfa,
+};
+static const struct drbg_kat_pr_true kat3581_t = {
+ 10, kat3581_entropyin, kat3581_nonce, kat3581_persstr,
+ kat3581_entropyinpr1, kat3581_addinpr1, kat3581_entropyinpr2,
+ kat3581_addinpr2, kat3581_retbits
+};
+static const struct drbg_kat kat3581 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3581_t
+};
+
+static const unsigned char kat3582_entropyin[] = {
+ 0xe8, 0xf9, 0x0a, 0xa2, 0x60, 0x39, 0x6c, 0x27, 0xcd, 0x2c, 0xea, 0x50,
+ 0x9d, 0x14, 0x79, 0x4b, 0x32, 0x64, 0x07, 0x7f, 0x9f, 0xe2, 0xc9, 0xbb,
+ 0x10, 0xb0, 0x1e, 0xf6, 0xd4, 0x67, 0xb8, 0xe4,
+};
+static const unsigned char kat3582_nonce[] = {
+ 0x77, 0x96, 0x31, 0x48, 0xe3, 0xc2, 0x97, 0x35, 0xe4, 0x1e, 0x1b, 0x67,
+ 0xcb, 0x7d, 0xd1, 0x96,
+};
+static const unsigned char kat3582_persstr[] = {
+ 0xa0, 0x4a, 0x1f, 0x62, 0x1f, 0x9d, 0xcc, 0x30, 0xf0, 0xf2, 0xa4, 0xb7,
+ 0x46, 0x3a, 0xd3, 0xbd, 0xdd, 0xf4, 0x40, 0xb1, 0x91, 0x20, 0x17, 0xb0,
+ 0xf7, 0x26, 0x3a, 0x5b, 0x19, 0x82, 0xc6, 0xe5,
+};
+static const unsigned char kat3582_entropyinpr1[] = {
+ 0xa5, 0xb9, 0xcd, 0xb7, 0x7c, 0x43, 0x6a, 0x90, 0xc2, 0xcc, 0xf3, 0x8b,
+ 0x8a, 0x12, 0x24, 0x85, 0xd0, 0x80, 0x4c, 0xdd, 0x1c, 0x27, 0xf2, 0x32,
+ 0x6f, 0x1e, 0xd7, 0xfd, 0xa1, 0xe5, 0x54, 0x6a,
+};
+static const unsigned char kat3582_addinpr1[] = {0};
+static const unsigned char kat3582_entropyinpr2[] = {
+ 0xbc, 0x9d, 0x0b, 0xb2, 0x92, 0x07, 0xf4, 0x3f, 0xe3, 0xb1, 0xf9, 0x81,
+ 0x1c, 0x63, 0x76, 0x0f, 0xea, 0xfb, 0x8d, 0x96, 0xe6, 0x89, 0x0e, 0x1f,
+ 0x6d, 0xde, 0x33, 0xb0, 0x46, 0xd3, 0x26, 0x58,
+};
+static const unsigned char kat3582_addinpr2[] = {0};
+static const unsigned char kat3582_retbits[] = {
+ 0xf2, 0x02, 0x0d, 0x61, 0xd9, 0x87, 0x51, 0x80, 0xf9, 0xa6, 0xd4, 0xc4,
+ 0x2e, 0x70, 0xb3, 0xa3, 0xee, 0x88, 0x82, 0x2a, 0xc9, 0x07, 0x1d, 0xae,
+ 0x1b, 0x0b, 0xdd, 0xbc, 0x7d, 0x9f, 0xba, 0x05, 0x49, 0x46, 0x24, 0xd4,
+ 0x2c, 0xea, 0x5a, 0x16, 0xf0, 0x7a, 0x1e, 0x19, 0x17, 0x74, 0xf4, 0xaa,
+ 0x0f, 0x77, 0x5f, 0x6e, 0x29, 0x95, 0x8e, 0x98, 0xbd, 0xd1, 0x82, 0x54,
+ 0x93, 0x18, 0x6b, 0xdf,
+};
+static const struct drbg_kat_pr_true kat3582_t = {
+ 11, kat3582_entropyin, kat3582_nonce, kat3582_persstr,
+ kat3582_entropyinpr1, kat3582_addinpr1, kat3582_entropyinpr2,
+ kat3582_addinpr2, kat3582_retbits
+};
+static const struct drbg_kat kat3582 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3582_t
+};
+
+static const unsigned char kat3583_entropyin[] = {
+ 0x79, 0xe4, 0x17, 0x12, 0x6f, 0x55, 0xca, 0x50, 0x68, 0xd3, 0xd6, 0xc6,
+ 0x6e, 0xfe, 0xa2, 0x16, 0xcf, 0x4a, 0x17, 0x73, 0x9f, 0xe7, 0xb4, 0x79,
+ 0xd4, 0xf6, 0xd4, 0x4b, 0x5c, 0x65, 0x52, 0x15,
+};
+static const unsigned char kat3583_nonce[] = {
+ 0xaa, 0x04, 0xe7, 0xb2, 0xee, 0x3e, 0xa9, 0xdf, 0xcb, 0xc7, 0xeb, 0x6c,
+ 0x21, 0xcf, 0xbf, 0xea,
+};
+static const unsigned char kat3583_persstr[] = {
+ 0x69, 0x41, 0x75, 0xf2, 0x67, 0x21, 0x59, 0x49, 0xa4, 0x85, 0x58, 0xf1,
+ 0xde, 0xfd, 0x91, 0x5a, 0xd0, 0x54, 0xe8, 0xa6, 0x0d, 0x99, 0x3c, 0x8a,
+ 0x85, 0xb3, 0x75, 0xb8, 0x91, 0x62, 0xb6, 0xd3,
+};
+static const unsigned char kat3583_entropyinpr1[] = {
+ 0xa7, 0x72, 0x21, 0x4d, 0x8c, 0xd3, 0x7c, 0xab, 0xe7, 0xc6, 0x85, 0xe8,
+ 0x79, 0x5c, 0x61, 0x9c, 0x5d, 0xfe, 0x05, 0xfb, 0x23, 0x59, 0x19, 0x5c,
+ 0x93, 0x2c, 0x43, 0x31, 0xc7, 0xc7, 0x00, 0xc7,
+};
+static const unsigned char kat3583_addinpr1[] = {0};
+static const unsigned char kat3583_entropyinpr2[] = {
+ 0x18, 0x1e, 0x64, 0xf8, 0x56, 0x51, 0xb3, 0xee, 0x4c, 0x44, 0x13, 0xea,
+ 0x2c, 0x6d, 0x22, 0xa1, 0xdb, 0xac, 0xcf, 0xf6, 0xc8, 0xeb, 0x27, 0x64,
+ 0xc9, 0x22, 0x04, 0x45, 0x96, 0xc5, 0xfb, 0x36,
+};
+static const unsigned char kat3583_addinpr2[] = {0};
+static const unsigned char kat3583_retbits[] = {
+ 0x74, 0x8a, 0x7e, 0x73, 0x94, 0x9e, 0x39, 0x57, 0x00, 0x26, 0x69, 0xcb,
+ 0x40, 0xb7, 0x17, 0x06, 0xde, 0x0d, 0xc3, 0x9c, 0xae, 0xeb, 0x0a, 0xdc,
+ 0xd5, 0xe3, 0xf7, 0xf7, 0x53, 0x03, 0xc2, 0x27, 0xb2, 0xe2, 0xad, 0xf2,
+ 0xbe, 0x2b, 0xe5, 0xad, 0x29, 0x69, 0x55, 0xc1, 0x3b, 0xc8, 0xc8, 0xb8,
+ 0x68, 0x80, 0x3d, 0x45, 0xd6, 0x11, 0xd0, 0xe9, 0x70, 0x61, 0xe3, 0x6c,
+ 0x30, 0x33, 0x9e, 0x6c,
+};
+static const struct drbg_kat_pr_true kat3583_t = {
+ 12, kat3583_entropyin, kat3583_nonce, kat3583_persstr,
+ kat3583_entropyinpr1, kat3583_addinpr1, kat3583_entropyinpr2,
+ kat3583_addinpr2, kat3583_retbits
+};
+static const struct drbg_kat kat3583 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3583_t
+};
+
+static const unsigned char kat3584_entropyin[] = {
+ 0xe8, 0x53, 0x00, 0xa0, 0x12, 0x03, 0xd1, 0xa7, 0x65, 0xd3, 0x6e, 0x49,
+ 0x41, 0x23, 0xce, 0xcf, 0xd8, 0xd8, 0x23, 0x02, 0x21, 0x98, 0xa9, 0x5b,
+ 0x09, 0x91, 0xf9, 0x8d, 0x9a, 0x93, 0xf3, 0xe3,
+};
+static const unsigned char kat3584_nonce[] = {
+ 0x5a, 0x10, 0x9a, 0x8d, 0xab, 0x80, 0x4a, 0xd3, 0x50, 0xf7, 0x73, 0x57,
+ 0x81, 0xb5, 0x38, 0x01,
+};
+static const unsigned char kat3584_persstr[] = {
+ 0xcb, 0xd4, 0xb3, 0xe9, 0x9e, 0xf2, 0x4a, 0xa7, 0x53, 0x9f, 0x65, 0x13,
+ 0x25, 0x3a, 0x69, 0xc3, 0x53, 0x55, 0x8f, 0xe7, 0x80, 0x87, 0x20, 0xdd,
+ 0x68, 0xd9, 0x45, 0x10, 0xa0, 0x2e, 0x8e, 0xf0,
+};
+static const unsigned char kat3584_entropyinpr1[] = {
+ 0x39, 0x0d, 0xde, 0x5c, 0x5d, 0x62, 0xc6, 0x4c, 0x5a, 0x50, 0x12, 0x7a,
+ 0xa9, 0x10, 0x18, 0xcc, 0xf8, 0x5a, 0x4f, 0xfd, 0x76, 0x49, 0xde, 0x29,
+ 0x3e, 0x12, 0x33, 0x0f, 0x4f, 0xeb, 0xd5, 0x4c,
+};
+static const unsigned char kat3584_addinpr1[] = {0};
+static const unsigned char kat3584_entropyinpr2[] = {
+ 0x3c, 0x36, 0x5d, 0xa2, 0xc3, 0x41, 0x4a, 0xbc, 0x81, 0xf9, 0xb5, 0xe7,
+ 0x18, 0x79, 0x04, 0x31, 0xd6, 0x00, 0xaf, 0xcc, 0x17, 0x37, 0xa6, 0xd8,
+ 0x15, 0x65, 0xc5, 0x71, 0xe4, 0xc5, 0x65, 0xff,
+};
+static const unsigned char kat3584_addinpr2[] = {0};
+static const unsigned char kat3584_retbits[] = {
+ 0x99, 0xae, 0x95, 0xf5, 0x40, 0x18, 0x19, 0xfc, 0x68, 0xaf, 0xcf, 0x1b,
+ 0x12, 0xd8, 0x03, 0xc1, 0x65, 0x79, 0x74, 0x5a, 0x78, 0x21, 0x91, 0x0c,
+ 0xbe, 0x2e, 0x2f, 0x3b, 0xbc, 0x05, 0xcd, 0xef, 0xa3, 0x90, 0x85, 0xc5,
+ 0xbe, 0x66, 0xbd, 0x5c, 0x96, 0x1b, 0xa5, 0x11, 0xf1, 0xa2, 0x1b, 0x97,
+ 0xe3, 0x7f, 0x07, 0x99, 0x63, 0x2b, 0x29, 0x65, 0x1d, 0xc4, 0x12, 0xad,
+ 0x89, 0xf9, 0xcd, 0xfb,
+};
+static const struct drbg_kat_pr_true kat3584_t = {
+ 13, kat3584_entropyin, kat3584_nonce, kat3584_persstr,
+ kat3584_entropyinpr1, kat3584_addinpr1, kat3584_entropyinpr2,
+ kat3584_addinpr2, kat3584_retbits
+};
+static const struct drbg_kat kat3584 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3584_t
+};
+
+static const unsigned char kat3585_entropyin[] = {
+ 0x39, 0x2c, 0x62, 0x19, 0xa5, 0x5f, 0x46, 0x45, 0x22, 0x65, 0x24, 0xa1,
+ 0x25, 0x17, 0xd6, 0xf4, 0x0d, 0xcc, 0xf2, 0x5b, 0xe9, 0x30, 0xee, 0xed,
+ 0xe9, 0xd2, 0x70, 0xfb, 0x63, 0x2e, 0x5e, 0x71,
+};
+static const unsigned char kat3585_nonce[] = {
+ 0x6c, 0xaa, 0x85, 0x8e, 0xc3, 0xe8, 0xf9, 0x46, 0xc9, 0xbc, 0xb2, 0x28,
+ 0xba, 0x66, 0xda, 0x07,
+};
+static const unsigned char kat3585_persstr[] = {
+ 0xa5, 0x9b, 0x7e, 0xd9, 0x98, 0xb6, 0x9e, 0xbc, 0x7d, 0xc5, 0x42, 0xbd,
+ 0x62, 0x17, 0x24, 0x66, 0x12, 0x5c, 0x21, 0xc6, 0x25, 0x18, 0xb1, 0x07,
+ 0x61, 0xf6, 0xc0, 0x0d, 0xd1, 0x23, 0x4f, 0x45,
+};
+static const unsigned char kat3585_entropyinpr1[] = {
+ 0x47, 0x40, 0xca, 0x4c, 0xa8, 0x1e, 0xd2, 0x94, 0xd9, 0xa9, 0xb6, 0x00,
+ 0x09, 0x76, 0x00, 0x63, 0x7a, 0x1a, 0x1e, 0xf2, 0xfe, 0xf2, 0x39, 0x1d,
+ 0x2a, 0x30, 0xe0, 0xc2, 0x27, 0xc2, 0xb1, 0x53,
+};
+static const unsigned char kat3585_addinpr1[] = {0};
+static const unsigned char kat3585_entropyinpr2[] = {
+ 0x27, 0x2b, 0xa6, 0x58, 0x8a, 0x44, 0x3c, 0xf6, 0xd8, 0xa9, 0xa2, 0x59,
+ 0x4f, 0x4d, 0x4d, 0xb7, 0x3e, 0xa2, 0xd3, 0x56, 0x04, 0x8c, 0x1f, 0xe3,
+ 0x59, 0xff, 0x91, 0x70, 0xa4, 0x25, 0xa0, 0x0f,
+};
+static const unsigned char kat3585_addinpr2[] = {0};
+static const unsigned char kat3585_retbits[] = {
+ 0x63, 0x86, 0x85, 0xb6, 0x25, 0x6b, 0x54, 0xc1, 0xc2, 0x8d, 0x8e, 0x67,
+ 0xb9, 0x8a, 0xb9, 0xa5, 0x6b, 0x71, 0xed, 0xe3, 0xf0, 0x46, 0x84, 0x31,
+ 0xb0, 0xd0, 0xde, 0x2d, 0xfb, 0xe3, 0x47, 0xea, 0x0b, 0xc0, 0x5d, 0x87,
+ 0x0f, 0x6d, 0xcd, 0xee, 0x0f, 0x1b, 0xc6, 0x18, 0xa6, 0x38, 0x29, 0x0a,
+ 0x43, 0x97, 0x27, 0x7f, 0x4a, 0x1f, 0x8f, 0x7b, 0xfb, 0xb2, 0x7f, 0x16,
+ 0x3f, 0xed, 0x08, 0x82,
+};
+static const struct drbg_kat_pr_true kat3585_t = {
+ 14, kat3585_entropyin, kat3585_nonce, kat3585_persstr,
+ kat3585_entropyinpr1, kat3585_addinpr1, kat3585_entropyinpr2,
+ kat3585_addinpr2, kat3585_retbits
+};
+static const struct drbg_kat kat3585 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 0, 64, &kat3585_t
+};
+
+static const unsigned char kat3586_entropyin[] = {
+ 0xe0, 0x2c, 0x66, 0x27, 0xdf, 0x0c, 0x04, 0x22, 0xd2, 0xdf, 0xc7, 0xda,
+ 0x96, 0x86, 0xda, 0xf8, 0xdc, 0xe5, 0x78, 0x96, 0x67, 0x98, 0xd4, 0xe5,
+ 0x03, 0x53, 0x0d, 0xd7, 0xdb, 0x50, 0x13, 0x0e,
+};
+static const unsigned char kat3586_nonce[] = {
+ 0x1b, 0x48, 0xe1, 0x03, 0xc4, 0x09, 0x1a, 0xc2, 0xf4, 0x58, 0x1d, 0xba,
+ 0x6a, 0x61, 0x85, 0x8c,
+};
+static const unsigned char kat3586_persstr[] = {
+ 0x01, 0x45, 0xaa, 0xfa, 0x6e, 0xc8, 0x3e, 0xb6, 0x52, 0x5a, 0x8f, 0x2f,
+ 0xa8, 0x4a, 0xd6, 0x30, 0xbb, 0x57, 0xbf, 0xe6, 0x76, 0xa5, 0x91, 0x90,
+ 0x0e, 0x18, 0xa4, 0xc0, 0xc4, 0xaa, 0x84, 0x02,
+};
+static const unsigned char kat3586_entropyinpr1[] = {
+ 0x32, 0x3b, 0x97, 0xc0, 0xfe, 0x00, 0x60, 0xc9, 0x4d, 0x04, 0x23, 0xf9,
+ 0xe4, 0x42, 0x4c, 0x9b, 0x92, 0xf7, 0x69, 0xe1, 0x70, 0xa3, 0xe1, 0xea,
+ 0xbb, 0x72, 0xd7, 0x8b, 0xec, 0x04, 0xbb, 0x27,
+};
+static const unsigned char kat3586_addinpr1[] = {
+ 0xfd, 0xdd, 0xda, 0xcb, 0x8c, 0x20, 0x18, 0x2f, 0x16, 0x59, 0x6a, 0x61,
+ 0x91, 0x05, 0xaa, 0xe7, 0x91, 0x69, 0x6e, 0xe7, 0xac, 0xa3, 0x08, 0xb5,
+ 0x52, 0x43, 0x83, 0xc1, 0x78, 0xa2, 0x7c, 0xc2,
+};
+static const unsigned char kat3586_entropyinpr2[] = {
+ 0xc9, 0x6c, 0x87, 0xb9, 0xee, 0xee, 0x3c, 0xa7, 0x76, 0x89, 0xd8, 0x93,
+ 0x5d, 0x01, 0x63, 0xcf, 0x26, 0x79, 0xbd, 0x35, 0xaf, 0x98, 0xb1, 0x95,
+ 0xcf, 0x06, 0x22, 0xbd, 0x85, 0xdc, 0x95, 0x78,
+};
+static const unsigned char kat3586_addinpr2[] = {
+ 0xd7, 0xe7, 0x68, 0xa3, 0x28, 0x1e, 0x4a, 0x43, 0xa0, 0xda, 0x59, 0xcd,
+ 0x9a, 0xf6, 0x30, 0x54, 0x8b, 0xcc, 0x2b, 0x95, 0xbf, 0xf5, 0xc6, 0x58,
+ 0xb3, 0x12, 0xb0, 0x86, 0xf0, 0xfb, 0x54, 0xe4,
+};
+static const unsigned char kat3586_retbits[] = {
+ 0x49, 0x3c, 0xda, 0xcf, 0xd2, 0x5a, 0x67, 0x8b, 0x8d, 0x81, 0x38, 0xbd,
+ 0x4e, 0xff, 0x88, 0x8b, 0x28, 0x0d, 0x3e, 0x21, 0xe1, 0xfa, 0x73, 0xaf,
+ 0x33, 0x75, 0xd5, 0x91, 0x4d, 0xa9, 0x58, 0xb1, 0xbe, 0xd0, 0x23, 0x32,
+ 0x89, 0xac, 0x49, 0xe5, 0x9d, 0x56, 0xd5, 0xd4, 0x0a, 0x75, 0x77, 0xfd,
+ 0xc7, 0x23, 0x04, 0xf8, 0xc8, 0xc8, 0xcb, 0x4a, 0xd4, 0xb2, 0x16, 0xef,
+ 0xa2, 0x81, 0x80, 0xfd,
+};
+static const struct drbg_kat_pr_true kat3586_t = {
+ 0, kat3586_entropyin, kat3586_nonce, kat3586_persstr,
+ kat3586_entropyinpr1, kat3586_addinpr1, kat3586_entropyinpr2,
+ kat3586_addinpr2, kat3586_retbits
+};
+static const struct drbg_kat kat3586 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3586_t
+};
+
+static const unsigned char kat3587_entropyin[] = {
+ 0x22, 0x74, 0x6d, 0xf1, 0x0c, 0x7d, 0x1e, 0x0a, 0x7d, 0x68, 0xd7, 0xcf,
+ 0x20, 0x68, 0xde, 0x78, 0xc3, 0xfd, 0x74, 0x9d, 0x88, 0x31, 0xd7, 0x10,
+ 0x83, 0x37, 0xb5, 0xb9, 0x37, 0x0e, 0xb3, 0x22,
+};
+static const unsigned char kat3587_nonce[] = {
+ 0x1c, 0x7e, 0xd6, 0x06, 0x3a, 0xe0, 0xcc, 0x22, 0x1b, 0x45, 0x79, 0xf5,
+ 0xa6, 0x18, 0x17, 0xb7,
+};
+static const unsigned char kat3587_persstr[] = {
+ 0x71, 0x84, 0xc2, 0x99, 0x85, 0x6a, 0x54, 0x05, 0x84, 0x29, 0x41, 0x8c,
+ 0x8b, 0xd7, 0x12, 0xd9, 0x2c, 0x76, 0x75, 0xec, 0x3d, 0x49, 0x63, 0x5c,
+ 0xfc, 0xae, 0x3d, 0x24, 0x73, 0xd0, 0x4b, 0x13,
+};
+static const unsigned char kat3587_entropyinpr1[] = {
+ 0xba, 0x85, 0x3c, 0x00, 0xf9, 0x06, 0xde, 0xb3, 0xc3, 0xfa, 0x4e, 0x15,
+ 0xc7, 0xce, 0x36, 0x58, 0x7f, 0x89, 0x68, 0x08, 0x35, 0x0b, 0xd8, 0xab,
+ 0x51, 0x89, 0x68, 0xfa, 0x02, 0x15, 0x86, 0xaa,
+};
+static const unsigned char kat3587_addinpr1[] = {
+ 0x49, 0xcb, 0x34, 0x65, 0x1c, 0x60, 0x69, 0x9b, 0xd9, 0xdc, 0x30, 0x83,
+ 0xc9, 0x2f, 0x27, 0xe7, 0xb9, 0x2d, 0x05, 0x59, 0x78, 0x2c, 0x97, 0x51,
+ 0x50, 0xa8, 0x00, 0x5e, 0xb2, 0x3a, 0xaa, 0xc6,
+};
+static const unsigned char kat3587_entropyinpr2[] = {
+ 0xfc, 0xd7, 0x52, 0x98, 0x32, 0xd5, 0x33, 0x2b, 0xb7, 0x2a, 0x04, 0x60,
+ 0x48, 0x28, 0x59, 0xbb, 0x33, 0xdc, 0xbd, 0x08, 0x45, 0xe6, 0x8c, 0xf7,
+ 0xac, 0xd0, 0x9e, 0x58, 0x88, 0xef, 0x26, 0x11,
+};
+static const unsigned char kat3587_addinpr2[] = {
+ 0x36, 0xae, 0xff, 0x1d, 0x32, 0xbb, 0xfb, 0x71, 0x4e, 0x84, 0xa1, 0x59,
+ 0x77, 0x95, 0x79, 0xec, 0x28, 0x23, 0xb6, 0x12, 0x32, 0x5a, 0x03, 0x4e,
+ 0xe7, 0xae, 0x91, 0xcc, 0x8d, 0x5f, 0x6f, 0xe5,
+};
+static const unsigned char kat3587_retbits[] = {
+ 0x19, 0x7c, 0x85, 0xc3, 0xa8, 0x14, 0xd5, 0xc4, 0xe4, 0xed, 0xe3, 0x6c,
+ 0x7d, 0xba, 0xcc, 0x54, 0xce, 0x6f, 0x99, 0x96, 0xcf, 0xb2, 0x50, 0xbe,
+ 0x31, 0xfc, 0x8f, 0x90, 0xa7, 0x09, 0x24, 0x70, 0xd6, 0x1d, 0x81, 0x1f,
+ 0xd8, 0xfe, 0xe5, 0x83, 0xf4, 0x49, 0xd1, 0x68, 0x0c, 0x35, 0xee, 0xfa,
+ 0x35, 0x7b, 0xc4, 0x1e, 0xca, 0xe8, 0x4d, 0xc8, 0x2b, 0x91, 0x1d, 0x51,
+ 0x18, 0x4a, 0x2b, 0x93,
+};
+static const struct drbg_kat_pr_true kat3587_t = {
+ 1, kat3587_entropyin, kat3587_nonce, kat3587_persstr,
+ kat3587_entropyinpr1, kat3587_addinpr1, kat3587_entropyinpr2,
+ kat3587_addinpr2, kat3587_retbits
+};
+static const struct drbg_kat kat3587 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3587_t
+};
+
+static const unsigned char kat3588_entropyin[] = {
+ 0x5f, 0x4f, 0x40, 0xcf, 0x42, 0xe6, 0x43, 0xe5, 0xf3, 0x8f, 0x06, 0xf0,
+ 0x5a, 0x80, 0xa8, 0xbe, 0x0e, 0x44, 0xb7, 0x5f, 0x64, 0x7a, 0xc9, 0x35,
+ 0xdf, 0x1d, 0xcb, 0x22, 0x06, 0xdb, 0xeb, 0x59,
+};
+static const unsigned char kat3588_nonce[] = {
+ 0x90, 0xdb, 0xc9, 0xb6, 0x73, 0x77, 0x66, 0x8d, 0x1a, 0xf1, 0x5b, 0xea,
+ 0xe7, 0x90, 0xa1, 0x3e,
+};
+static const unsigned char kat3588_persstr[] = {
+ 0xb2, 0xa2, 0x80, 0x6a, 0x31, 0xe8, 0xb0, 0xdf, 0xa3, 0x2d, 0x92, 0xcc,
+ 0x87, 0xf1, 0x34, 0x5e, 0xf9, 0x18, 0xf8, 0x9e, 0x14, 0x84, 0xd0, 0x1f,
+ 0x00, 0xb9, 0xf7, 0x82, 0x80, 0xd9, 0x3b, 0x5a,
+};
+static const unsigned char kat3588_entropyinpr1[] = {
+ 0xdb, 0x29, 0xa5, 0xef, 0x0c, 0xbe, 0x50, 0x16, 0xba, 0x0a, 0xb8, 0xd3,
+ 0xd5, 0x20, 0xca, 0x36, 0x83, 0xf1, 0x63, 0x7b, 0xe1, 0xda, 0xe4, 0x34,
+ 0xb8, 0x7b, 0x5e, 0x5f, 0x4a, 0x4c, 0x6b, 0x5f,
+};
+static const unsigned char kat3588_addinpr1[] = {
+ 0xf6, 0xaa, 0xa7, 0x0b, 0x82, 0xd7, 0x2b, 0x1c, 0xfd, 0x79, 0x40, 0x87,
+ 0x48, 0xbd, 0xa7, 0x73, 0x27, 0xcf, 0x62, 0x29, 0xda, 0x2c, 0xef, 0xee,
+ 0xcc, 0x27, 0xf2, 0x4b, 0x85, 0x64, 0x33, 0x76,
+};
+static const unsigned char kat3588_entropyinpr2[] = {
+ 0x07, 0x48, 0x54, 0xcf, 0x33, 0xf5, 0x70, 0xca, 0x0f, 0xbc, 0x13, 0x63,
+ 0xd5, 0x90, 0x33, 0x4b, 0x60, 0x17, 0xa2, 0xe3, 0xa1, 0x93, 0xda, 0x59,
+ 0x99, 0xdb, 0x75, 0x53, 0x0d, 0x3a, 0x9b, 0x56,
+};
+static const unsigned char kat3588_addinpr2[] = {
+ 0x0a, 0x97, 0xc0, 0x21, 0xf7, 0x48, 0x71, 0xd6, 0x82, 0x9b, 0x47, 0x35,
+ 0x56, 0x30, 0x9c, 0xd3, 0x2c, 0x45, 0xc1, 0xf4, 0xfe, 0x46, 0x19, 0xca,
+ 0x82, 0xf9, 0x9e, 0xbd, 0x2d, 0xf0, 0xf2, 0x5a,
+};
+static const unsigned char kat3588_retbits[] = {
+ 0x58, 0xcd, 0x0e, 0x07, 0xdd, 0xd3, 0x4c, 0x32, 0xb2, 0x08, 0x46, 0xe9,
+ 0x62, 0x20, 0x98, 0x08, 0x2e, 0xc1, 0xd2, 0x4e, 0x4d, 0x0a, 0xd5, 0xc7,
+ 0x33, 0x07, 0xa2, 0x62, 0xd6, 0x9b, 0x2e, 0x7c, 0x9b, 0xa5, 0xfa, 0xb3,
+ 0x59, 0xea, 0xc9, 0x33, 0x6d, 0x80, 0xeb, 0x4c, 0xe3, 0x35, 0x7b, 0x9c,
+ 0xe2, 0xa7, 0x96, 0x2b, 0x4b, 0x21, 0xb7, 0x39, 0x3d, 0xfe, 0xad, 0xd7,
+ 0x5a, 0x50, 0xe8, 0x7e,
+};
+static const struct drbg_kat_pr_true kat3588_t = {
+ 2, kat3588_entropyin, kat3588_nonce, kat3588_persstr,
+ kat3588_entropyinpr1, kat3588_addinpr1, kat3588_entropyinpr2,
+ kat3588_addinpr2, kat3588_retbits
+};
+static const struct drbg_kat kat3588 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3588_t
+};
+
+static const unsigned char kat3589_entropyin[] = {
+ 0xff, 0xb9, 0xd4, 0x74, 0x10, 0x74, 0xae, 0x51, 0xd8, 0xff, 0xe3, 0x9b,
+ 0x31, 0xcf, 0x56, 0xc1, 0xe8, 0xc9, 0x78, 0xe3, 0x6f, 0x32, 0x08, 0x98,
+ 0xa9, 0xac, 0xc2, 0xf0, 0xe0, 0x75, 0xf5, 0xd1,
+};
+static const unsigned char kat3589_nonce[] = {
+ 0x17, 0xa7, 0x02, 0xd7, 0x76, 0x8a, 0x47, 0xcd, 0x11, 0x60, 0xf1, 0xee,
+ 0xa6, 0x61, 0xcc, 0xcd,
+};
+static const unsigned char kat3589_persstr[] = {
+ 0x3f, 0x4d, 0xe7, 0xa9, 0xfb, 0xe5, 0xbb, 0xf6, 0x99, 0x73, 0xee, 0x77,
+ 0x2f, 0x4a, 0xb8, 0xc8, 0xa5, 0x7b, 0xd8, 0xe6, 0xc0, 0x0d, 0x91, 0x3f,
+ 0xcb, 0xe5, 0x1c, 0x5e, 0x8d, 0x36, 0x58, 0xc4,
+};
+static const unsigned char kat3589_entropyinpr1[] = {
+ 0xf0, 0x3d, 0xa2, 0x2e, 0x53, 0xc4, 0xe8, 0xb7, 0x8b, 0x0e, 0xcc, 0xab,
+ 0x9b, 0x3b, 0x77, 0x94, 0xd7, 0x5d, 0x0f, 0x36, 0xa9, 0xf1, 0x93, 0xeb,
+ 0xc8, 0xab, 0x42, 0x2d, 0x72, 0x7c, 0xea, 0x8e,
+};
+static const unsigned char kat3589_addinpr1[] = {
+ 0x72, 0xdf, 0x5f, 0x25, 0xa2, 0x7d, 0x3e, 0xec, 0x24, 0x90, 0x5e, 0x92,
+ 0x76, 0x38, 0xab, 0xe2, 0x2f, 0x15, 0x73, 0xb0, 0x7e, 0x5b, 0xf0, 0x2b,
+ 0x06, 0x68, 0xcc, 0x8c, 0x33, 0x91, 0x0f, 0xaf,
+};
+static const unsigned char kat3589_entropyinpr2[] = {
+ 0x50, 0xb0, 0x44, 0xee, 0x25, 0x2d, 0x8d, 0x83, 0xd5, 0x6a, 0xe2, 0x43,
+ 0x8d, 0x2c, 0xa9, 0xc0, 0x1b, 0x07, 0x92, 0x46, 0x72, 0x63, 0xe2, 0x4c,
+ 0x79, 0x9c, 0x6e, 0xa0, 0x47, 0x69, 0x4c, 0xd1,
+};
+static const unsigned char kat3589_addinpr2[] = {
+ 0xf0, 0x92, 0xf9, 0x05, 0xd4, 0x1a, 0x8f, 0xdf, 0x4a, 0x39, 0xf2, 0x2a,
+ 0xe8, 0xb1, 0xd6, 0xda, 0x0e, 0xfc, 0xc6, 0x7e, 0xfe, 0x59, 0x8e, 0x9a,
+ 0xaa, 0xa9, 0x14, 0x37, 0x0c, 0x3f, 0x75, 0x9e,
+};
+static const unsigned char kat3589_retbits[] = {
+ 0xd3, 0xab, 0x14, 0x99, 0xd9, 0x82, 0x46, 0xbb, 0xcd, 0x49, 0x9f, 0xad,
+ 0x33, 0xbe, 0xc4, 0x9d, 0x29, 0x93, 0xa5, 0xa6, 0xb8, 0xe1, 0x0f, 0xb9,
+ 0x96, 0x0a, 0x22, 0x99, 0xc1, 0x3e, 0xe4, 0x11, 0x24, 0x02, 0xbd, 0xea,
+ 0x77, 0xa2, 0x80, 0xca, 0xcf, 0x15, 0x52, 0x64, 0x37, 0xa9, 0xed, 0x4b,
+ 0x14, 0xff, 0x08, 0xbf, 0x70, 0x9b, 0x08, 0x0f, 0xea, 0xea, 0x8a, 0x51,
+ 0xf1, 0xa0, 0x6c, 0xc9,
+};
+static const struct drbg_kat_pr_true kat3589_t = {
+ 3, kat3589_entropyin, kat3589_nonce, kat3589_persstr,
+ kat3589_entropyinpr1, kat3589_addinpr1, kat3589_entropyinpr2,
+ kat3589_addinpr2, kat3589_retbits
+};
+static const struct drbg_kat kat3589 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3589_t
+};
+
+static const unsigned char kat3590_entropyin[] = {
+ 0x8a, 0xc0, 0xf2, 0x56, 0xad, 0x07, 0x0a, 0x5f, 0x14, 0x85, 0xc3, 0x0d,
+ 0xcb, 0x07, 0xdf, 0x3b, 0x3a, 0x38, 0x80, 0xd4, 0x0f, 0x02, 0xf2, 0x3e,
+ 0x72, 0xaf, 0x81, 0xcc, 0xdc, 0xa0, 0x41, 0x7e,
+};
+static const unsigned char kat3590_nonce[] = {
+ 0xba, 0x87, 0xe7, 0x93, 0x00, 0xd8, 0xca, 0xf1, 0x31, 0x9b, 0xd3, 0x7e,
+ 0x9a, 0x1f, 0xae, 0xf7,
+};
+static const unsigned char kat3590_persstr[] = {
+ 0x71, 0xfe, 0x61, 0x05, 0x10, 0x62, 0xe3, 0x6a, 0x98, 0x76, 0xe4, 0xce,
+ 0xcb, 0xef, 0x68, 0x50, 0x40, 0x52, 0xbf, 0xbd, 0x45, 0xce, 0x59, 0xda,
+ 0x56, 0x4f, 0x9f, 0x91, 0x12, 0x27, 0xd4, 0x26,
+};
+static const unsigned char kat3590_entropyinpr1[] = {
+ 0x31, 0x70, 0x5c, 0xa9, 0x1f, 0x1b, 0x08, 0xee, 0x14, 0x82, 0xad, 0xe6,
+ 0x44, 0x10, 0xee, 0xd1, 0x1f, 0xfa, 0xbd, 0xf6, 0x8c, 0x01, 0xe8, 0x05,
+ 0xb6, 0x9c, 0x9d, 0x0c, 0xa8, 0x0e, 0xf9, 0x35,
+};
+static const unsigned char kat3590_addinpr1[] = {
+ 0x22, 0x16, 0x57, 0x46, 0xd6, 0x24, 0xb0, 0xba, 0xf0, 0x69, 0x55, 0xe2,
+ 0x08, 0xbe, 0xf0, 0x85, 0xc0, 0x5d, 0x24, 0x71, 0xbd, 0x88, 0x1b, 0x76,
+ 0x66, 0x0c, 0x94, 0xf7, 0x51, 0x77, 0x64, 0x00,
+};
+static const unsigned char kat3590_entropyinpr2[] = {
+ 0xd7, 0x9b, 0x6f, 0x38, 0x6c, 0xdb, 0xcd, 0x94, 0x64, 0xd5, 0xdb, 0x74,
+ 0xbd, 0xd0, 0x64, 0xec, 0xbb, 0xf2, 0x29, 0xd8, 0x90, 0xe4, 0xf6, 0x30,
+ 0xee, 0x8b, 0x26, 0xd0, 0x3c, 0x8b, 0xb1, 0xab,
+};
+static const unsigned char kat3590_addinpr2[] = {
+ 0x13, 0x50, 0x2f, 0x34, 0x58, 0x98, 0xd1, 0x24, 0xdf, 0x93, 0x05, 0x01,
+ 0xa5, 0x69, 0xcf, 0xa2, 0xb0, 0x06, 0xc1, 0xf5, 0x8a, 0xad, 0xaf, 0x83,
+ 0x67, 0x2b, 0x83, 0x45, 0xc1, 0x17, 0x83, 0xbb,
+};
+static const unsigned char kat3590_retbits[] = {
+ 0xc7, 0x0e, 0x0f, 0x3c, 0x93, 0x2a, 0x3b, 0xe3, 0x01, 0xba, 0x45, 0x27,
+ 0xc3, 0xf0, 0xd2, 0xf3, 0x13, 0x12, 0xfb, 0xd2, 0x12, 0x3a, 0x18, 0x4d,
+ 0xef, 0x1e, 0xcc, 0x04, 0xe3, 0x6a, 0x6d, 0x07, 0x10, 0x5c, 0x1f, 0x52,
+ 0xe9, 0xf2, 0xfb, 0xe0, 0x6a, 0x2d, 0xf8, 0xa8, 0xb4, 0x58, 0xd1, 0xf4,
+ 0xbd, 0x93, 0xe6, 0x77, 0x7a, 0xf1, 0x6e, 0x29, 0x80, 0x0b, 0x60, 0x3a,
+ 0xa6, 0x6c, 0xc4, 0x5c,
+};
+static const struct drbg_kat_pr_true kat3590_t = {
+ 4, kat3590_entropyin, kat3590_nonce, kat3590_persstr,
+ kat3590_entropyinpr1, kat3590_addinpr1, kat3590_entropyinpr2,
+ kat3590_addinpr2, kat3590_retbits
+};
+static const struct drbg_kat kat3590 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3590_t
+};
+
+static const unsigned char kat3591_entropyin[] = {
+ 0x22, 0xa7, 0xad, 0x79, 0x4f, 0x7e, 0x14, 0x81, 0xab, 0xe2, 0xf1, 0xef,
+ 0x18, 0xe1, 0xa2, 0x0c, 0xbb, 0xb1, 0x1e, 0xec, 0xe1, 0xdf, 0x6c, 0x39,
+ 0x4e, 0xb9, 0x75, 0x36, 0xd2, 0xe3, 0xeb, 0xbb,
+};
+static const unsigned char kat3591_nonce[] = {
+ 0x38, 0x3e, 0x9f, 0xd6, 0x03, 0x36, 0x93, 0xd0, 0x47, 0xcb, 0xee, 0x6e,
+ 0x2a, 0xc1, 0xd7, 0xef,
+};
+static const unsigned char kat3591_persstr[] = {
+ 0xec, 0xf0, 0xf8, 0x40, 0x39, 0x71, 0x4f, 0x4f, 0x38, 0xda, 0xe4, 0x59,
+ 0xdd, 0x8d, 0xf3, 0x36, 0xdc, 0x93, 0xdc, 0x9c, 0xc3, 0x1f, 0x35, 0xea,
+ 0xfb, 0x03, 0x4a, 0x85, 0x35, 0xb5, 0xf7, 0x86,
+};
+static const unsigned char kat3591_entropyinpr1[] = {
+ 0x52, 0x91, 0x63, 0x3f, 0xdd, 0x22, 0xd8, 0xef, 0x60, 0x11, 0x1d, 0xd2,
+ 0x62, 0xc1, 0x10, 0xbb, 0xf0, 0x2f, 0x24, 0xdb, 0x7b, 0xe1, 0x92, 0x12,
+ 0xad, 0x18, 0xdc, 0xba, 0xef, 0x4d, 0x9d, 0x02,
+};
+static const unsigned char kat3591_addinpr1[] = {
+ 0x88, 0x42, 0xbb, 0x79, 0xfc, 0xcc, 0x18, 0xb1, 0x83, 0x7f, 0xac, 0x5a,
+ 0x8d, 0x5f, 0x9a, 0x18, 0x24, 0x82, 0xcb, 0x2f, 0x99, 0xf7, 0x70, 0x1e,
+ 0xed, 0xed, 0x7a, 0xff, 0xad, 0x2b, 0xb1, 0x03,
+};
+static const unsigned char kat3591_entropyinpr2[] = {
+ 0x32, 0xe9, 0xc0, 0x25, 0x44, 0xc5, 0x82, 0x1d, 0x92, 0x24, 0x87, 0x99,
+ 0x58, 0xb7, 0x20, 0x6e, 0x57, 0x0e, 0x48, 0xfe, 0x59, 0xdc, 0x1b, 0xcd,
+ 0xea, 0xfb, 0x1d, 0xba, 0x19, 0xaa, 0x53, 0x50,
+};
+static const unsigned char kat3591_addinpr2[] = {
+ 0xc2, 0xf6, 0xf8, 0x67, 0x4e, 0xa2, 0x69, 0xe9, 0x01, 0xcc, 0x21, 0x32,
+ 0xb1, 0x4f, 0xa2, 0xff, 0xff, 0xf1, 0x61, 0x9f, 0x22, 0xf5, 0x39, 0xcf,
+ 0xe6, 0xe8, 0x1a, 0x7a, 0x6e, 0x7d, 0xe9, 0x89,
+};
+static const unsigned char kat3591_retbits[] = {
+ 0xf5, 0x80, 0xc1, 0x18, 0x05, 0x20, 0xb7, 0x86, 0xcb, 0x3a, 0x52, 0xd0,
+ 0x39, 0xe0, 0x16, 0xf6, 0xea, 0x01, 0x5f, 0x88, 0x4e, 0x64, 0xec, 0x87,
+ 0x70, 0x78, 0xa5, 0x80, 0xae, 0x08, 0xcb, 0x74, 0x1d, 0x9d, 0xe9, 0xab,
+ 0x46, 0x85, 0xfe, 0xef, 0xf2, 0x74, 0x01, 0x58, 0x1d, 0xf7, 0x3c, 0xde,
+ 0x77, 0xaa, 0x71, 0xe9, 0xe4, 0x86, 0x08, 0x8f, 0x36, 0xfd, 0x2f, 0xea,
+ 0x7e, 0x06, 0x20, 0x7d,
+};
+static const struct drbg_kat_pr_true kat3591_t = {
+ 5, kat3591_entropyin, kat3591_nonce, kat3591_persstr,
+ kat3591_entropyinpr1, kat3591_addinpr1, kat3591_entropyinpr2,
+ kat3591_addinpr2, kat3591_retbits
+};
+static const struct drbg_kat kat3591 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3591_t
+};
+
+static const unsigned char kat3592_entropyin[] = {
+ 0x9a, 0x10, 0x99, 0x42, 0xe7, 0x83, 0xcd, 0xf7, 0xdb, 0xc5, 0x12, 0x9e,
+ 0x93, 0xce, 0x1a, 0x57, 0xe8, 0xbb, 0x17, 0x88, 0x5f, 0xf1, 0x26, 0x82,
+ 0x5d, 0xea, 0xdd, 0xfb, 0x89, 0x13, 0xed, 0xcf,
+};
+static const unsigned char kat3592_nonce[] = {
+ 0x29, 0x57, 0x8d, 0xb5, 0xe7, 0x6b, 0xf2, 0x60, 0xdf, 0x35, 0x26, 0x10,
+ 0xa5, 0xad, 0xc5, 0x15,
+};
+static const unsigned char kat3592_persstr[] = {
+ 0x21, 0x8c, 0x72, 0xa6, 0xe8, 0x84, 0xe9, 0x12, 0x6e, 0xae, 0x86, 0x9d,
+ 0x88, 0xcc, 0xff, 0xe3, 0xb8, 0x2f, 0xaf, 0xba, 0x13, 0x5d, 0x82, 0xc8,
+ 0x1a, 0xe2, 0x5c, 0xa4, 0x20, 0xb2, 0xa5, 0xff,
+};
+static const unsigned char kat3592_entropyinpr1[] = {
+ 0x76, 0x4a, 0x94, 0xdf, 0x0d, 0x09, 0x7a, 0xe4, 0x7a, 0xba, 0x27, 0xa7,
+ 0x15, 0x42, 0xf9, 0x97, 0x64, 0xbf, 0xc1, 0x7a, 0x46, 0x57, 0x94, 0x37,
+ 0xe8, 0x77, 0xab, 0x25, 0x23, 0x5a, 0x0d, 0x70,
+};
+static const unsigned char kat3592_addinpr1[] = {
+ 0x52, 0xaf, 0x46, 0xb6, 0xdf, 0x95, 0x29, 0x40, 0x41, 0xde, 0x7a, 0x69,
+ 0xa6, 0x4b, 0xf5, 0x37, 0x80, 0x77, 0x69, 0x88, 0xc4, 0xf8, 0x08, 0x86,
+ 0xa1, 0xf9, 0xc1, 0xd8, 0x65, 0x8a, 0x9f, 0xf0,
+};
+static const unsigned char kat3592_entropyinpr2[] = {
+ 0xb9, 0x66, 0x6b, 0xe9, 0x57, 0xbc, 0x31, 0x66, 0x9c, 0x83, 0xcd, 0x97,
+ 0x35, 0x14, 0xbc, 0x3a, 0xe8, 0xe7, 0x73, 0xfa, 0x44, 0x52, 0x1e, 0x1e,
+ 0x22, 0xfa, 0xaf, 0x32, 0x0d, 0xb3, 0xe5, 0x10,
+};
+static const unsigned char kat3592_addinpr2[] = {
+ 0xeb, 0x20, 0xda, 0x7d, 0x4b, 0x21, 0x48, 0xaa, 0x70, 0xc3, 0xa3, 0xb1,
+ 0x22, 0xb2, 0xae, 0x2d, 0x5d, 0x10, 0x86, 0x3f, 0x05, 0x1a, 0x36, 0x98,
+ 0x5e, 0x40, 0x41, 0xe2, 0x50, 0xa8, 0xd3, 0x10,
+};
+static const unsigned char kat3592_retbits[] = {
+ 0xc9, 0x78, 0xab, 0xf8, 0x1e, 0x2c, 0x99, 0x64, 0x9c, 0x22, 0xf7, 0xe3,
+ 0x0f, 0x53, 0xe9, 0x81, 0xc3, 0xd9, 0xe5, 0xf0, 0x6a, 0xe8, 0x39, 0x9d,
+ 0xf6, 0x5a, 0xe7, 0x26, 0x8b, 0x6e, 0x52, 0x7f, 0xec, 0x07, 0x6f, 0x40,
+ 0x39, 0x6d, 0x82, 0xf6, 0xe8, 0xc2, 0x48, 0x0b, 0x1c, 0xde, 0xd2, 0x15,
+ 0x3c, 0x19, 0x75, 0x56, 0xf9, 0x6b, 0xcd, 0x39, 0x4d, 0xf5, 0x0e, 0x73,
+ 0xb0, 0x35, 0x3e, 0xbc,
+};
+static const struct drbg_kat_pr_true kat3592_t = {
+ 6, kat3592_entropyin, kat3592_nonce, kat3592_persstr,
+ kat3592_entropyinpr1, kat3592_addinpr1, kat3592_entropyinpr2,
+ kat3592_addinpr2, kat3592_retbits
+};
+static const struct drbg_kat kat3592 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3592_t
+};
+
+static const unsigned char kat3593_entropyin[] = {
+ 0x46, 0xf2, 0x2c, 0xf2, 0x88, 0x2c, 0x00, 0x78, 0x7d, 0x79, 0x24, 0xb8,
+ 0x91, 0x87, 0x8a, 0x23, 0xd8, 0x96, 0x29, 0xfc, 0xa3, 0x97, 0xf6, 0x9c,
+ 0x17, 0x07, 0x7e, 0x70, 0x5b, 0x45, 0xa4, 0x55,
+};
+static const unsigned char kat3593_nonce[] = {
+ 0xf7, 0xf3, 0x29, 0x0e, 0xdb, 0x9c, 0xd0, 0x21, 0x53, 0xc1, 0x7c, 0xbb,
+ 0x60, 0xa3, 0xc9, 0xe8,
+};
+static const unsigned char kat3593_persstr[] = {
+ 0xad, 0x2c, 0x48, 0x7f, 0xc2, 0x21, 0x72, 0x11, 0x35, 0x89, 0x3a, 0x4b,
+ 0xc4, 0x37, 0x81, 0xe0, 0x2d, 0x28, 0xb0, 0xfc, 0xa4, 0x49, 0xfc, 0xea,
+ 0x49, 0xfc, 0xfa, 0x2b, 0x49, 0x84, 0xc6, 0x58,
+};
+static const unsigned char kat3593_entropyinpr1[] = {
+ 0xe2, 0xac, 0x38, 0x5e, 0xd2, 0x53, 0x59, 0xb8, 0xef, 0x9a, 0x6e, 0x87,
+ 0xc7, 0xf8, 0xb4, 0x17, 0x63, 0xc4, 0xf2, 0x98, 0xae, 0xac, 0x27, 0xf5,
+ 0xc0, 0xd2, 0x0a, 0x7f, 0x9c, 0xc0, 0x71, 0xa0,
+};
+static const unsigned char kat3593_addinpr1[] = {
+ 0x2b, 0xe6, 0x04, 0x10, 0x20, 0x1f, 0xf1, 0x5e, 0xb5, 0x2a, 0xe9, 0x7e,
+ 0x53, 0xa9, 0x0c, 0x56, 0x77, 0x77, 0x9d, 0xc0, 0x0d, 0x7b, 0x05, 0xe2,
+ 0x83, 0xf0, 0xdc, 0xd3, 0x98, 0xb9, 0x07, 0xc8,
+};
+static const unsigned char kat3593_entropyinpr2[] = {
+ 0xd9, 0x13, 0x0a, 0x00, 0x69, 0x8f, 0x45, 0x47, 0x45, 0x7d, 0x0b, 0x5d,
+ 0x27, 0x3d, 0x36, 0x55, 0xd3, 0xf6, 0x7d, 0xac, 0xfc, 0x99, 0x81, 0x27,
+ 0xb9, 0xb4, 0xfa, 0xdd, 0xab, 0x1d, 0xd6, 0x37,
+};
+static const unsigned char kat3593_addinpr2[] = {
+ 0x66, 0xb7, 0x63, 0xbd, 0x38, 0x6d, 0xb6, 0xe7, 0x0e, 0xcc, 0x37, 0x15,
+ 0x47, 0x8a, 0xe5, 0xe9, 0x0a, 0x65, 0xcf, 0x40, 0x4a, 0x7a, 0x53, 0x9a,
+ 0xb1, 0xf6, 0xfe, 0x71, 0x45, 0x25, 0xa0, 0xf8,
+};
+static const unsigned char kat3593_retbits[] = {
+ 0xb2, 0x45, 0x1d, 0x64, 0x65, 0xf4, 0x37, 0xa9, 0xdd, 0x52, 0x1d, 0x28,
+ 0x7e, 0x55, 0xea, 0x4c, 0xd9, 0x98, 0xd2, 0xb3, 0x23, 0x28, 0xe7, 0x8e,
+ 0x5f, 0xaf, 0xf6, 0xcf, 0x4b, 0x65, 0x51, 0x31, 0xb1, 0x22, 0xc8, 0xee,
+ 0x85, 0xb4, 0x70, 0xd1, 0xd6, 0x0a, 0xff, 0xd5, 0xb3, 0x15, 0xae, 0x4e,
+ 0xb8, 0x54, 0x02, 0x6b, 0x62, 0x9b, 0x39, 0xe2, 0xba, 0x9c, 0x48, 0x20,
+ 0xbf, 0x39, 0x68, 0x35,
+};
+static const struct drbg_kat_pr_true kat3593_t = {
+ 7, kat3593_entropyin, kat3593_nonce, kat3593_persstr,
+ kat3593_entropyinpr1, kat3593_addinpr1, kat3593_entropyinpr2,
+ kat3593_addinpr2, kat3593_retbits
+};
+static const struct drbg_kat kat3593 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3593_t
+};
+
+static const unsigned char kat3594_entropyin[] = {
+ 0x8f, 0xa1, 0x4d, 0xd5, 0xc6, 0xf8, 0xa1, 0x22, 0xd2, 0xd5, 0x59, 0xca,
+ 0x8d, 0x34, 0x79, 0x6b, 0xb7, 0x59, 0x2f, 0x78, 0x40, 0x37, 0x3f, 0xfb,
+ 0x33, 0x3e, 0x48, 0x8c, 0x27, 0xb6, 0x41, 0x9f,
+};
+static const unsigned char kat3594_nonce[] = {
+ 0x8e, 0x1f, 0xbb, 0x81, 0xa8, 0xf8, 0x63, 0x75, 0xff, 0x76, 0x33, 0xca,
+ 0xb4, 0x5e, 0x4b, 0xc4,
+};
+static const unsigned char kat3594_persstr[] = {
+ 0x72, 0x7c, 0x12, 0x8b, 0x15, 0x37, 0xa6, 0x08, 0x1c, 0x04, 0xe1, 0xf6,
+ 0xaa, 0xc7, 0x7c, 0xf4, 0x83, 0xf4, 0x37, 0xec, 0xa2, 0x64, 0xdf, 0x87,
+ 0xd8, 0x67, 0x17, 0x61, 0x7d, 0x60, 0xa6, 0x8f,
+};
+static const unsigned char kat3594_entropyinpr1[] = {
+ 0xcc, 0x50, 0x4f, 0x7e, 0xaf, 0xa6, 0xbc, 0x5b, 0xe9, 0xdf, 0x4a, 0x2b,
+ 0xb2, 0x9c, 0x74, 0xe6, 0x0d, 0xbe, 0x21, 0x16, 0xfd, 0x0c, 0x66, 0xab,
+ 0xce, 0x07, 0x4b, 0x08, 0xac, 0x9d, 0x69, 0xd4,
+};
+static const unsigned char kat3594_addinpr1[] = {
+ 0x83, 0xe7, 0xf7, 0x85, 0xec, 0x5c, 0x6d, 0x42, 0xa0, 0x01, 0xf0, 0x99,
+ 0x58, 0x91, 0x81, 0xf2, 0x42, 0x03, 0x71, 0xc9, 0xc5, 0x2b, 0x5f, 0x97,
+ 0x02, 0xe3, 0xd3, 0x8d, 0x9c, 0x87, 0x39, 0x79,
+};
+static const unsigned char kat3594_entropyinpr2[] = {
+ 0x75, 0x23, 0x1c, 0x2f, 0x23, 0x0f, 0xb9, 0x48, 0x64, 0xe2, 0x42, 0x5f,
+ 0x6b, 0xcd, 0x62, 0x49, 0x0f, 0xe6, 0x07, 0x08, 0x5b, 0xe2, 0xd7, 0x0b,
+ 0x41, 0xab, 0x20, 0xd8, 0xa7, 0x4a, 0x42, 0xab,
+};
+static const unsigned char kat3594_addinpr2[] = {
+ 0xe0, 0x6d, 0xa7, 0x85, 0x89, 0x11, 0x66, 0x38, 0x3b, 0x06, 0xdd, 0xfa,
+ 0xa1, 0x4f, 0x36, 0x91, 0x2e, 0xb2, 0x9e, 0x33, 0x10, 0x90, 0xc3, 0xe6,
+ 0x87, 0x45, 0xbb, 0x30, 0x09, 0x2b, 0xf8, 0x4a,
+};
+static const unsigned char kat3594_retbits[] = {
+ 0x55, 0x29, 0x1c, 0x46, 0xd9, 0xd4, 0x86, 0x47, 0x8d, 0x64, 0x0e, 0xe6,
+ 0xfd, 0x3c, 0xb8, 0x43, 0xb0, 0xed, 0x8d, 0x23, 0x2a, 0x80, 0xc1, 0x71,
+ 0x2c, 0x2c, 0xde, 0xcf, 0x66, 0x23, 0xb9, 0x24, 0x53, 0x55, 0x9c, 0x29,
+ 0x20, 0xd5, 0x03, 0x2c, 0xed, 0x86, 0x34, 0x37, 0x79, 0x9b, 0xe1, 0x05,
+ 0x03, 0x98, 0x7c, 0x32, 0x89, 0x7b, 0x0e, 0xaa, 0x3a, 0xd5, 0x03, 0x07,
+ 0xfc, 0x59, 0xd9, 0xe3,
+};
+static const struct drbg_kat_pr_true kat3594_t = {
+ 8, kat3594_entropyin, kat3594_nonce, kat3594_persstr,
+ kat3594_entropyinpr1, kat3594_addinpr1, kat3594_entropyinpr2,
+ kat3594_addinpr2, kat3594_retbits
+};
+static const struct drbg_kat kat3594 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3594_t
+};
+
+static const unsigned char kat3595_entropyin[] = {
+ 0xec, 0x95, 0x2d, 0x39, 0x62, 0x96, 0xc7, 0xa3, 0xca, 0x26, 0x98, 0xc3,
+ 0x73, 0x8a, 0x31, 0x99, 0x46, 0x2c, 0x85, 0xdb, 0x4e, 0xa3, 0xe8, 0xcb,
+ 0x13, 0xab, 0x02, 0x69, 0x6a, 0xcf, 0x15, 0xe3,
+};
+static const unsigned char kat3595_nonce[] = {
+ 0xcd, 0x34, 0x22, 0x46, 0xaa, 0x35, 0x01, 0x6e, 0xaa, 0xb0, 0xa1, 0x67,
+ 0x81, 0xf1, 0x65, 0x8d,
+};
+static const unsigned char kat3595_persstr[] = {
+ 0x0e, 0x72, 0x88, 0x0b, 0xd7, 0xab, 0xf2, 0xc3, 0x7d, 0x65, 0xbe, 0x9d,
+ 0xea, 0x2b, 0x0b, 0x56, 0x21, 0x69, 0xae, 0x83, 0xa0, 0xc0, 0xc4, 0xfa,
+ 0x92, 0x08, 0x9b, 0x94, 0x0b, 0x9c, 0xfc, 0xb4,
+};
+static const unsigned char kat3595_entropyinpr1[] = {
+ 0x9b, 0x11, 0x10, 0x2a, 0xdc, 0x27, 0xda, 0x52, 0xe0, 0x5e, 0xec, 0x2b,
+ 0x2d, 0x1b, 0xaf, 0xa4, 0x4a, 0x43, 0x67, 0x8d, 0x0a, 0x3d, 0x4f, 0x18,
+ 0x13, 0x86, 0xb6, 0x3f, 0x27, 0x48, 0xd9, 0xa0,
+};
+static const unsigned char kat3595_addinpr1[] = {
+ 0x47, 0x03, 0x7e, 0xd6, 0xde, 0x88, 0x4a, 0xb7, 0xa5, 0x87, 0x67, 0x8f,
+ 0x95, 0x90, 0x76, 0x4d, 0x8e, 0x07, 0xd1, 0xd3, 0xb3, 0xbd, 0xbd, 0x2f,
+ 0x31, 0xda, 0x45, 0xed, 0xfa, 0xf8, 0x7a, 0x9e,
+};
+static const unsigned char kat3595_entropyinpr2[] = {
+ 0x79, 0x9f, 0x40, 0xa0, 0x64, 0x2d, 0xcf, 0x0c, 0xe2, 0x05, 0xc0, 0x2b,
+ 0x2b, 0xfb, 0x5f, 0xb2, 0xa1, 0x07, 0x45, 0xd9, 0x69, 0x0d, 0x2d, 0x62,
+ 0x1f, 0xd2, 0xc0, 0x84, 0x41, 0xe0, 0xb8, 0xbe,
+};
+static const unsigned char kat3595_addinpr2[] = {
+ 0xce, 0x80, 0xd2, 0x93, 0x6b, 0x50, 0xdb, 0xc9, 0x74, 0x2b, 0x09, 0x1d,
+ 0x7e, 0x1b, 0x20, 0xfa, 0x78, 0xf0, 0x1e, 0x32, 0x88, 0xc3, 0xf0, 0xc6,
+ 0x2e, 0x7d, 0x99, 0x5f, 0x9c, 0xc1, 0x10, 0x7d,
+};
+static const unsigned char kat3595_retbits[] = {
+ 0x12, 0xa5, 0x41, 0x14, 0xe9, 0x6d, 0xcb, 0xfe, 0x4e, 0xce, 0xd7, 0x5a,
+ 0x98, 0xb5, 0xb8, 0xa3, 0x77, 0x68, 0xbb, 0x62, 0x96, 0x2a, 0x2a, 0x4f,
+ 0x0c, 0x0e, 0xe3, 0x8e, 0x08, 0xa9, 0x08, 0xf2, 0x5d, 0xe4, 0x8f, 0x5b,
+ 0xee, 0x4c, 0x9a, 0x9e, 0x1c, 0xc0, 0x3d, 0x3a, 0x8c, 0xf8, 0xbe, 0xdb,
+ 0xc7, 0x38, 0xa3, 0x56, 0x7a, 0x84, 0xc2, 0x87, 0x76, 0xc4, 0x47, 0x8f,
+ 0xa2, 0xf1, 0x83, 0x51,
+};
+static const struct drbg_kat_pr_true kat3595_t = {
+ 9, kat3595_entropyin, kat3595_nonce, kat3595_persstr,
+ kat3595_entropyinpr1, kat3595_addinpr1, kat3595_entropyinpr2,
+ kat3595_addinpr2, kat3595_retbits
+};
+static const struct drbg_kat kat3595 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3595_t
+};
+
+static const unsigned char kat3596_entropyin[] = {
+ 0x86, 0x06, 0x71, 0xa4, 0x2a, 0xd1, 0xea, 0x67, 0x71, 0x1d, 0xb8, 0x9f,
+ 0x7d, 0x3f, 0xe7, 0xed, 0x05, 0x26, 0x90, 0x84, 0xc8, 0xc0, 0xdf, 0xf7,
+ 0x67, 0x6b, 0x6b, 0x6e, 0x8c, 0x63, 0xd3, 0x9f,
+};
+static const unsigned char kat3596_nonce[] = {
+ 0xa2, 0xbd, 0x71, 0x11, 0x92, 0xa3, 0xb3, 0x81, 0xa6, 0xa7, 0x79, 0x86,
+ 0x26, 0xb4, 0xa0, 0x70,
+};
+static const unsigned char kat3596_persstr[] = {
+ 0x56, 0xef, 0x96, 0x08, 0x34, 0x9f, 0x6a, 0xdd, 0x6e, 0x04, 0xbb, 0x9f,
+ 0x91, 0x7d, 0x8d, 0x01, 0x12, 0x86, 0x3b, 0x4f, 0x32, 0xab, 0x6b, 0xe0,
+ 0xf6, 0x05, 0x55, 0x32, 0x13, 0xe1, 0xbd, 0x71,
+};
+static const unsigned char kat3596_entropyinpr1[] = {
+ 0x2d, 0x28, 0x29, 0x91, 0x2f, 0xc0, 0x83, 0xaf, 0x8c, 0xf2, 0x7a, 0x82,
+ 0x67, 0x0f, 0x30, 0x68, 0xbd, 0xda, 0x73, 0x9f, 0x73, 0xa5, 0x12, 0x0c,
+ 0x05, 0x69, 0x23, 0xc7, 0x5a, 0x06, 0xef, 0x0d,
+};
+static const unsigned char kat3596_addinpr1[] = {
+ 0x41, 0x77, 0xba, 0xda, 0x3f, 0xe1, 0x39, 0x32, 0x68, 0xd1, 0x98, 0x69,
+ 0xa5, 0x6e, 0x7c, 0xe8, 0xd3, 0xdf, 0xab, 0x82, 0x0f, 0x9f, 0x23, 0x75,
+ 0xac, 0x99, 0xe8, 0x72, 0x76, 0x93, 0x1e, 0x51,
+};
+static const unsigned char kat3596_entropyinpr2[] = {
+ 0xf6, 0xac, 0x02, 0x4b, 0x6c, 0xca, 0x29, 0x0a, 0x37, 0x29, 0x15, 0x57,
+ 0xb7, 0x64, 0x95, 0x87, 0x62, 0x3a, 0x75, 0x2d, 0x1a, 0x08, 0x8e, 0xa4,
+ 0xf2, 0xc6, 0xba, 0x8e, 0x95, 0xc0, 0x38, 0x08,
+};
+static const unsigned char kat3596_addinpr2[] = {
+ 0xe2, 0x54, 0xbf, 0x0d, 0xd8, 0x01, 0x16, 0xb9, 0xea, 0x95, 0xf8, 0xbe,
+ 0x00, 0x89, 0x45, 0xe8, 0x69, 0x65, 0x8e, 0x75, 0xf8, 0xfc, 0xa8, 0xaf,
+ 0x3d, 0x8f, 0xe7, 0xbc, 0x86, 0x92, 0x5e, 0x4b,
+};
+static const unsigned char kat3596_retbits[] = {
+ 0x7b, 0xe6, 0x39, 0x6c, 0xa2, 0x06, 0xf6, 0xf0, 0x6d, 0x8e, 0x41, 0x34,
+ 0x5b, 0x6b, 0x3f, 0xd4, 0x7e, 0x38, 0x1c, 0x69, 0x0a, 0x0d, 0x18, 0x38,
+ 0x56, 0x03, 0x89, 0x91, 0x14, 0x11, 0x3c, 0x2d, 0xa1, 0xb9, 0x24, 0xca,
+ 0xbc, 0x7a, 0x17, 0x00, 0x58, 0xee, 0x14, 0xa1, 0x58, 0x73, 0xe7, 0x66,
+ 0xfd, 0xfb, 0x1f, 0xce, 0x8a, 0xf9, 0x6c, 0x5b, 0x58, 0x95, 0x91, 0x3c,
+ 0x57, 0x49, 0x28, 0xb7,
+};
+static const struct drbg_kat_pr_true kat3596_t = {
+ 10, kat3596_entropyin, kat3596_nonce, kat3596_persstr,
+ kat3596_entropyinpr1, kat3596_addinpr1, kat3596_entropyinpr2,
+ kat3596_addinpr2, kat3596_retbits
+};
+static const struct drbg_kat kat3596 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3596_t
+};
+
+static const unsigned char kat3597_entropyin[] = {
+ 0x67, 0xa8, 0x1d, 0x11, 0xf3, 0x52, 0x18, 0x3b, 0x31, 0xd9, 0x5e, 0x0c,
+ 0x2f, 0xcf, 0xab, 0xb4, 0x72, 0xeb, 0x91, 0x8f, 0x5e, 0x04, 0xc5, 0x92,
+ 0x57, 0x9f, 0xff, 0x2c, 0xdd, 0x96, 0x95, 0xd0,
+};
+static const unsigned char kat3597_nonce[] = {
+ 0x9d, 0x72, 0x94, 0xca, 0xcc, 0x19, 0xc1, 0x76, 0x86, 0x89, 0x4e, 0xbd,
+ 0xac, 0x26, 0xfc, 0xe9,
+};
+static const unsigned char kat3597_persstr[] = {
+ 0xac, 0xca, 0x3c, 0xc3, 0x93, 0x34, 0xcd, 0x62, 0x2e, 0x52, 0x23, 0xf5,
+ 0x5f, 0x78, 0xf4, 0x82, 0xc1, 0x3c, 0xc0, 0x78, 0x24, 0x00, 0x0d, 0xab,
+ 0xca, 0xde, 0x81, 0x79, 0xa9, 0x6b, 0xb1, 0x12,
+};
+static const unsigned char kat3597_entropyinpr1[] = {
+ 0x35, 0xe1, 0x85, 0xb5, 0x42, 0x9e, 0xd1, 0x10, 0xa8, 0x99, 0x73, 0x29,
+ 0xa7, 0xd3, 0x14, 0xe7, 0xc8, 0x05, 0xd4, 0x95, 0x82, 0x38, 0x85, 0x5b,
+ 0x5b, 0x7f, 0x61, 0xe7, 0x14, 0x5a, 0xd8, 0x24,
+};
+static const unsigned char kat3597_addinpr1[] = {
+ 0xdb, 0x7b, 0x3b, 0x9c, 0xba, 0x0d, 0xfa, 0x6d, 0x13, 0x7f, 0x91, 0x67,
+ 0x54, 0x85, 0x15, 0x11, 0x27, 0x1b, 0x7e, 0xf4, 0x5c, 0x86, 0x3f, 0xfc,
+ 0xa7, 0x62, 0x8b, 0x14, 0x27, 0x5e, 0xd0, 0xd4,
+};
+static const unsigned char kat3597_entropyinpr2[] = {
+ 0xd9, 0xe4, 0xb2, 0x28, 0x3b, 0x9e, 0x72, 0x74, 0xa3, 0x6b, 0x04, 0xa5,
+ 0xd5, 0xf2, 0x01, 0x7d, 0x1f, 0x35, 0xa0, 0x8c, 0x4f, 0x14, 0x7f, 0x76,
+ 0x4e, 0x2e, 0x9f, 0xc9, 0xa4, 0x03, 0x16, 0x1c,
+};
+static const unsigned char kat3597_addinpr2[] = {
+ 0x5b, 0xb4, 0x7d, 0x5c, 0x5c, 0x88, 0xd0, 0x70, 0xcc, 0xe4, 0xc4, 0x10,
+ 0x0c, 0xe4, 0x0d, 0x0c, 0xea, 0x07, 0xf1, 0xd5, 0xe7, 0xdf, 0x56, 0xcd,
+ 0x3f, 0xd3, 0xf6, 0x52, 0xd1, 0xb5, 0x24, 0xce,
+};
+static const unsigned char kat3597_retbits[] = {
+ 0xde, 0x19, 0x0a, 0xf2, 0x00, 0x16, 0x98, 0x52, 0x26, 0x1b, 0xae, 0x91,
+ 0x6c, 0x76, 0xc1, 0xe6, 0x70, 0x6a, 0x6a, 0x50, 0x66, 0x1c, 0x4e, 0x90,
+ 0x04, 0x94, 0xa3, 0x3e, 0x51, 0xb7, 0x37, 0x6d, 0xa6, 0x96, 0xd6, 0x08,
+ 0x66, 0x72, 0x50, 0x33, 0x27, 0x89, 0xe2, 0x80, 0x78, 0x1c, 0x9d, 0x7c,
+ 0x0e, 0xba, 0x9e, 0x29, 0x10, 0x25, 0x6c, 0x7f, 0xe4, 0x16, 0x1a, 0xdb,
+ 0x82, 0x6c, 0xbe, 0x07,
+};
+static const struct drbg_kat_pr_true kat3597_t = {
+ 11, kat3597_entropyin, kat3597_nonce, kat3597_persstr,
+ kat3597_entropyinpr1, kat3597_addinpr1, kat3597_entropyinpr2,
+ kat3597_addinpr2, kat3597_retbits
+};
+static const struct drbg_kat kat3597 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3597_t
+};
+
+static const unsigned char kat3598_entropyin[] = {
+ 0x4b, 0x19, 0xb7, 0x3d, 0x91, 0x00, 0x6d, 0x9c, 0xa6, 0x0d, 0x18, 0x6c,
+ 0xc6, 0x72, 0x17, 0xb9, 0x79, 0x77, 0xd2, 0xe1, 0x39, 0xad, 0x51, 0xe2,
+ 0x5f, 0xfc, 0x24, 0x43, 0x32, 0xb1, 0xdd, 0x06,
+};
+static const unsigned char kat3598_nonce[] = {
+ 0x3a, 0xef, 0xf5, 0x55, 0x76, 0x42, 0xf2, 0x3e, 0xee, 0x84, 0x58, 0xd0,
+ 0xea, 0xa8, 0x3b, 0x85,
+};
+static const unsigned char kat3598_persstr[] = {
+ 0x9f, 0x8d, 0x6f, 0xe7, 0x0b, 0x20, 0xc6, 0x37, 0x4d, 0xfd, 0x6d, 0x9d,
+ 0x3f, 0xfc, 0x16, 0xb0, 0xe8, 0x95, 0x2c, 0x03, 0x99, 0x44, 0x5d, 0xd9,
+ 0xd7, 0x4c, 0xfc, 0xf2, 0x36, 0x04, 0xee, 0x59,
+};
+static const unsigned char kat3598_entropyinpr1[] = {
+ 0xf3, 0x6c, 0xee, 0xd5, 0xeb, 0xbc, 0x38, 0x71, 0x6f, 0x7e, 0x50, 0x6d,
+ 0x81, 0xcf, 0x04, 0x27, 0xb9, 0x4c, 0x8a, 0x39, 0x46, 0x55, 0x59, 0x5b,
+ 0x31, 0x3e, 0xf5, 0x71, 0x81, 0xec, 0x3f, 0x35,
+};
+static const unsigned char kat3598_addinpr1[] = {
+ 0x54, 0x31, 0x05, 0xca, 0xd4, 0x55, 0x04, 0x11, 0xfb, 0x26, 0xd4, 0x64,
+ 0xed, 0xa0, 0xcb, 0x3c, 0x62, 0xcc, 0x87, 0xae, 0xef, 0x29, 0x2a, 0xe3,
+ 0xb7, 0x4e, 0x9a, 0xdf, 0x23, 0xd8, 0xad, 0x2e,
+};
+static const unsigned char kat3598_entropyinpr2[] = {
+ 0xca, 0x63, 0xdd, 0xed, 0x9e, 0xbe, 0xc1, 0x50, 0xaf, 0x62, 0x6b, 0x73,
+ 0xf0, 0xc7, 0xf5, 0x87, 0x66, 0x5d, 0x59, 0x9b, 0x3a, 0x2e, 0xe7, 0x0a,
+ 0x9a, 0x0e, 0x6f, 0x46, 0xc4, 0xe3, 0xea, 0x82,
+};
+static const unsigned char kat3598_addinpr2[] = {
+ 0xbf, 0xd4, 0xc4, 0x8a, 0xae, 0x26, 0xf7, 0x09, 0x9d, 0xc3, 0x05, 0x69,
+ 0xe0, 0x35, 0x1d, 0xe4, 0x3a, 0x60, 0x2d, 0xfa, 0xe3, 0xc3, 0x21, 0xcb,
+ 0x7e, 0xf8, 0xb5, 0x7e, 0x4d, 0xbf, 0x30, 0xda,
+};
+static const unsigned char kat3598_retbits[] = {
+ 0x87, 0x82, 0xa2, 0xb6, 0x05, 0xe1, 0x0a, 0x5e, 0xfd, 0xf9, 0x60, 0xa6,
+ 0xc8, 0x03, 0x21, 0x07, 0xd0, 0x88, 0xaa, 0x11, 0x0b, 0xb4, 0xd4, 0xa3,
+ 0x36, 0x16, 0xca, 0x31, 0xaf, 0x1a, 0x15, 0xb7, 0x9e, 0x36, 0x57, 0x62,
+ 0x1c, 0x50, 0x96, 0xdf, 0xcb, 0xc4, 0x50, 0x86, 0x89, 0xcf, 0xe8, 0x5a,
+ 0xc1, 0xb6, 0xd0, 0x0f, 0x6e, 0x45, 0xc4, 0x5d, 0xa9, 0x14, 0x5b, 0x84,
+ 0xe3, 0x3b, 0xd6, 0x03,
+};
+static const struct drbg_kat_pr_true kat3598_t = {
+ 12, kat3598_entropyin, kat3598_nonce, kat3598_persstr,
+ kat3598_entropyinpr1, kat3598_addinpr1, kat3598_entropyinpr2,
+ kat3598_addinpr2, kat3598_retbits
+};
+static const struct drbg_kat kat3598 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3598_t
+};
+
+static const unsigned char kat3599_entropyin[] = {
+ 0x14, 0x7a, 0xc0, 0x57, 0x6d, 0x43, 0x7f, 0xc0, 0x34, 0xec, 0xf7, 0xa1,
+ 0x73, 0x85, 0xe3, 0xb7, 0x81, 0x1b, 0x5e, 0xb3, 0xc9, 0xc9, 0x07, 0x6e,
+ 0x29, 0x09, 0x29, 0x72, 0xd0, 0x72, 0x80, 0x01,
+};
+static const unsigned char kat3599_nonce[] = {
+ 0x4b, 0x61, 0x05, 0x7a, 0xc2, 0xfa, 0x6f, 0x39, 0xda, 0x57, 0x1f, 0x32,
+ 0xcc, 0xec, 0x2c, 0xc1,
+};
+static const unsigned char kat3599_persstr[] = {
+ 0xc8, 0xdb, 0xa9, 0xd9, 0x20, 0xfe, 0xe3, 0xdd, 0x19, 0xba, 0xc7, 0xb5,
+ 0x55, 0x3d, 0x0b, 0x25, 0x97, 0x1c, 0x08, 0x7a, 0x99, 0x2c, 0x65, 0x13,
+ 0x39, 0xc1, 0x91, 0xc3, 0xff, 0xc4, 0x21, 0x64,
+};
+static const unsigned char kat3599_entropyinpr1[] = {
+ 0xe6, 0xee, 0x39, 0x9a, 0xdd, 0x12, 0x7e, 0x28, 0x82, 0xd0, 0x09, 0x18,
+ 0xd6, 0x29, 0x2f, 0x1c, 0x9e, 0x41, 0x87, 0xfd, 0xee, 0xf8, 0x02, 0xd2,
+ 0x77, 0x20, 0x93, 0x34, 0x1e, 0x24, 0xea, 0xdd,
+};
+static const unsigned char kat3599_addinpr1[] = {
+ 0xb5, 0x77, 0xea, 0x45, 0x6c, 0x0d, 0x58, 0x90, 0xbc, 0xd7, 0xd2, 0x59,
+ 0x3b, 0x51, 0xab, 0xf1, 0x87, 0xe6, 0xdc, 0x42, 0xcc, 0xa7, 0x27, 0xb3,
+ 0xba, 0x7e, 0x7e, 0xeb, 0xab, 0x68, 0xe6, 0x25,
+};
+static const unsigned char kat3599_entropyinpr2[] = {
+ 0x3f, 0xdf, 0xb9, 0x2a, 0xab, 0xac, 0xde, 0x1f, 0xcf, 0x57, 0x5a, 0xa5,
+ 0xab, 0xc2, 0xf7, 0xe5, 0x4f, 0x90, 0xa7, 0x77, 0xce, 0x2d, 0x90, 0x4a,
+ 0xaa, 0x07, 0x8b, 0xe8, 0xd7, 0x0a, 0xf5, 0xb1,
+};
+static const unsigned char kat3599_addinpr2[] = {
+ 0x1c, 0xb8, 0x41, 0x8e, 0x51, 0x82, 0x81, 0xf1, 0xb7, 0xb8, 0x40, 0x59,
+ 0xea, 0xd1, 0xc0, 0x6d, 0x2e, 0x14, 0x87, 0x26, 0xa3, 0xc3, 0xfc, 0xc7,
+ 0xab, 0xd4, 0x84, 0x9c, 0x86, 0xd0, 0xab, 0xdb,
+};
+static const unsigned char kat3599_retbits[] = {
+ 0xf9, 0xb0, 0xa0, 0xef, 0x77, 0x32, 0xad, 0xed, 0xc5, 0xd6, 0x2d, 0xb5,
+ 0x38, 0x69, 0xc0, 0xd6, 0x10, 0xe5, 0x7a, 0xd5, 0x7b, 0xbd, 0x02, 0xef,
+ 0x41, 0x7d, 0x16, 0x84, 0x55, 0xa8, 0xfd, 0x1b, 0x1d, 0x01, 0xc6, 0xf6,
+ 0xac, 0xec, 0x68, 0xac, 0xab, 0xb5, 0x62, 0x71, 0x90, 0xa8, 0x02, 0x00,
+ 0x54, 0x0d, 0x57, 0xae, 0x26, 0xd0, 0xc1, 0x97, 0xfd, 0xce, 0x4a, 0x27,
+ 0x25, 0x7f, 0x70, 0x30,
+};
+static const struct drbg_kat_pr_true kat3599_t = {
+ 13, kat3599_entropyin, kat3599_nonce, kat3599_persstr,
+ kat3599_entropyinpr1, kat3599_addinpr1, kat3599_entropyinpr2,
+ kat3599_addinpr2, kat3599_retbits
+};
+static const struct drbg_kat kat3599 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3599_t
+};
+
+static const unsigned char kat3600_entropyin[] = {
+ 0x3a, 0x59, 0x99, 0xb2, 0xcb, 0xaa, 0x25, 0xe3, 0xfd, 0xa6, 0xcf, 0x86,
+ 0x8c, 0x9b, 0xc2, 0xe0, 0x92, 0x2b, 0x48, 0x23, 0x01, 0x7c, 0x9f, 0x66,
+ 0xf4, 0xa5, 0x32, 0xb5, 0x74, 0xd0, 0x30, 0x21,
+};
+static const unsigned char kat3600_nonce[] = {
+ 0x0e, 0x65, 0xb1, 0xe4, 0x65, 0x13, 0x6f, 0xd4, 0x7b, 0xc7, 0xb1, 0x2f,
+ 0x90, 0x5a, 0x73, 0x6f,
+};
+static const unsigned char kat3600_persstr[] = {
+ 0x50, 0xfc, 0x46, 0xa2, 0xc8, 0x8a, 0xaa, 0xf7, 0x95, 0x93, 0x6c, 0x12,
+ 0x65, 0x6c, 0x3e, 0xab, 0x2e, 0xa9, 0xa3, 0xd9, 0xf3, 0x34, 0x64, 0xba,
+ 0xda, 0x67, 0x38, 0x47, 0x87, 0x1c, 0x43, 0x41,
+};
+static const unsigned char kat3600_entropyinpr1[] = {
+ 0xe9, 0x63, 0x81, 0xb8, 0x9c, 0x4d, 0x6d, 0x9a, 0x10, 0x61, 0x84, 0xf8,
+ 0xfa, 0x72, 0x27, 0x93, 0x3d, 0xd6, 0x0d, 0x86, 0x9e, 0x84, 0xfe, 0xdd,
+ 0x5e, 0xaa, 0x14, 0x23, 0xca, 0xb6, 0xc7, 0xbc,
+};
+static const unsigned char kat3600_addinpr1[] = {
+ 0xf1, 0xfa, 0xcb, 0x82, 0x2c, 0x5c, 0x0b, 0xe6, 0xfd, 0x65, 0x58, 0xb6,
+ 0xc1, 0xf3, 0xb7, 0x57, 0x4e, 0x5e, 0x42, 0x68, 0xcb, 0x24, 0xe8, 0x31,
+ 0x02, 0xcb, 0x27, 0xa2, 0x82, 0xdf, 0xfd, 0x40,
+};
+static const unsigned char kat3600_entropyinpr2[] = {
+ 0x72, 0x90, 0x1d, 0x3c, 0x63, 0x24, 0xcb, 0x6e, 0xea, 0x7e, 0x62, 0x87,
+ 0x97, 0x21, 0xc4, 0xab, 0x43, 0x7f, 0xca, 0xc4, 0x53, 0xcc, 0x43, 0xf1,
+ 0x79, 0x38, 0x88, 0x51, 0xb6, 0xd1, 0x60, 0xf3,
+};
+static const unsigned char kat3600_addinpr2[] = {
+ 0x37, 0x3b, 0x7d, 0x3c, 0x6e, 0x3c, 0x07, 0x90, 0x7a, 0x45, 0xe6, 0x29,
+ 0x2d, 0xa0, 0x29, 0x91, 0xc2, 0x52, 0xb4, 0xf3, 0x68, 0xac, 0x89, 0x4e,
+ 0x44, 0xfe, 0x27, 0x41, 0xd6, 0x3e, 0xdb, 0xc5,
+};
+static const unsigned char kat3600_retbits[] = {
+ 0xef, 0xfd, 0xdd, 0x2d, 0x7c, 0x39, 0xdf, 0x20, 0x55, 0x0e, 0x03, 0xad,
+ 0x21, 0xcc, 0xba, 0x6f, 0x67, 0x75, 0xa9, 0x27, 0x26, 0xaf, 0x56, 0x7a,
+ 0x80, 0xbc, 0xc9, 0x15, 0x23, 0xf3, 0x64, 0x6e, 0xc1, 0x56, 0xcb, 0xaa,
+ 0xbd, 0x4f, 0xdb, 0x13, 0xc6, 0x31, 0x05, 0xf2, 0xb7, 0x71, 0xf9, 0x4f,
+ 0xbd, 0xec, 0x6a, 0x26, 0x70, 0xf8, 0xfb, 0x26, 0x3c, 0xde, 0xc3, 0xac,
+ 0x1b, 0x77, 0x57, 0x74,
+};
+static const struct drbg_kat_pr_true kat3600_t = {
+ 14, kat3600_entropyin, kat3600_nonce, kat3600_persstr,
+ kat3600_entropyinpr1, kat3600_addinpr1, kat3600_entropyinpr2,
+ kat3600_addinpr2, kat3600_retbits
+};
+static const struct drbg_kat kat3600 = {
+ PR_TRUE, USE_DF, NID_aes_256_ctr, 32, 16, 32, 32, 64, &kat3600_t
+};
+
+static const unsigned char kat3601_entropyin[] = {
+ 0xf1, 0x89, 0x3b, 0xe2, 0xbc, 0x86, 0xc8, 0x0d, 0x64, 0x22, 0xf3, 0xd5,
+ 0x86, 0xc0, 0xa8, 0xce, 0x9b, 0xad, 0x64, 0x86, 0xf2, 0x31, 0x23, 0xf0,
+ 0x2b, 0xa0, 0x14, 0x03, 0x38, 0x4b, 0x83, 0xfe,
+};
+static const unsigned char kat3601_nonce[] = {0};
+static const unsigned char kat3601_persstr[] = {0};
+static const unsigned char kat3601_entropyinpr1[] = {
+ 0x79, 0xdd, 0xe8, 0xe1, 0x50, 0x28, 0x18, 0xdf, 0x74, 0x4e, 0x1a, 0xfe,
+ 0x8e, 0x5e, 0xcb, 0x3b, 0x8d, 0x19, 0x36, 0x51, 0x82, 0xc7, 0x95, 0x72,
+ 0x60, 0xd1, 0x79, 0x4e, 0x54, 0x91, 0x26, 0x20,
+};
+static const unsigned char kat3601_addinpr1[] = {0};
+static const unsigned char kat3601_entropyinpr2[] = {
+ 0xcf, 0x68, 0x4f, 0xd0, 0xee, 0xbb, 0xa7, 0x79, 0x01, 0xef, 0xcb, 0xe3,
+ 0xcc, 0x52, 0x97, 0xba, 0x9f, 0x04, 0x36, 0x7f, 0xd5, 0x4f, 0xe6, 0xaf,
+ 0x94, 0x63, 0xad, 0x2e, 0xbc, 0xfe, 0xdb, 0xf4,
+};
+static const unsigned char kat3601_addinpr2[] = {0};
+static const unsigned char kat3601_retbits[] = {
+ 0xfd, 0xb9, 0x7f, 0x0e, 0xb2, 0x72, 0x79, 0xb8, 0xd8, 0x85, 0xf2, 0x46,
+ 0x2e, 0x89, 0x68, 0xdc, 0x4c, 0x92, 0x66, 0xf8, 0x11, 0x67, 0x35, 0x9d,
+ 0x89, 0xdf, 0x4c, 0x32, 0x76, 0x42, 0xea, 0xe1, 0xb3, 0x13, 0x1f, 0x90,
+ 0xd6, 0x4c, 0x1b, 0x5a, 0x0e, 0x71, 0x95, 0x02, 0x84, 0xfc, 0x3f, 0xd0,
+ 0x26, 0x20, 0x10, 0x94, 0xe8, 0xab, 0x3f, 0x37, 0x60, 0x18, 0x4d, 0x71,
+ 0x84, 0xc9, 0x0a, 0x34,
+};
+static const struct drbg_kat_pr_true kat3601_t = {
+ 0, kat3601_entropyin, kat3601_nonce, kat3601_persstr,
+ kat3601_entropyinpr1, kat3601_addinpr1, kat3601_entropyinpr2,
+ kat3601_addinpr2, kat3601_retbits
+};
+static const struct drbg_kat kat3601 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3601_t
+};
+
+static const unsigned char kat3602_entropyin[] = {
+ 0x61, 0x4c, 0x33, 0xc5, 0x44, 0xb0, 0xe8, 0xc2, 0x81, 0x17, 0xc5, 0xe7,
+ 0x59, 0xb6, 0x81, 0x07, 0x0e, 0x15, 0x7b, 0x6f, 0x3c, 0xeb, 0xa2, 0x56,
+ 0x75, 0xd7, 0x79, 0x1d, 0xbf, 0x79, 0x61, 0xe8,
+};
+static const unsigned char kat3602_nonce[] = {0};
+static const unsigned char kat3602_persstr[] = {0};
+static const unsigned char kat3602_entropyinpr1[] = {
+ 0xcb, 0xf2, 0xbe, 0x8b, 0xbb, 0xa5, 0x88, 0x11, 0xdd, 0xc7, 0xa9, 0x71,
+ 0x23, 0xca, 0xae, 0xa1, 0x2d, 0xd7, 0x96, 0xdb, 0xa8, 0x71, 0xfd, 0xd4,
+ 0x89, 0xd1, 0x58, 0xb8, 0x9d, 0xb5, 0xbf, 0x6d,
+};
+static const unsigned char kat3602_addinpr1[] = {0};
+static const unsigned char kat3602_entropyinpr2[] = {
+ 0xf0, 0xc8, 0x1d, 0x9f, 0x75, 0x0b, 0x2b, 0xde, 0x9d, 0xb4, 0x52, 0x6f,
+ 0x58, 0x8b, 0x59, 0xba, 0x09, 0x5e, 0x8a, 0x02, 0xe2, 0x5f, 0x34, 0x0c,
+ 0x71, 0xb5, 0x2a, 0x98, 0xb6, 0x03, 0xe7, 0x36,
+};
+static const unsigned char kat3602_addinpr2[] = {0};
+static const unsigned char kat3602_retbits[] = {
+ 0xbf, 0x22, 0xde, 0x04, 0xc7, 0xf6, 0x29, 0x57, 0xe6, 0x48, 0x65, 0xb8,
+ 0x6b, 0x7d, 0xba, 0x29, 0x73, 0x7b, 0x8a, 0xeb, 0xaf, 0x5b, 0x91, 0x25,
+ 0x73, 0x79, 0x42, 0x13, 0x41, 0xdd, 0xd1, 0x22, 0x52, 0x51, 0x4d, 0x3c,
+ 0xc2, 0x20, 0x4e, 0xde, 0x75, 0x65, 0xaf, 0x58, 0x55, 0x2d, 0xfb, 0x87,
+ 0x67, 0x58, 0x69, 0x17, 0xfa, 0xcc, 0x70, 0x06, 0x85, 0xc7, 0x03, 0x0d,
+ 0xa1, 0x38, 0x41, 0x36,
+};
+static const struct drbg_kat_pr_true kat3602_t = {
+ 1, kat3602_entropyin, kat3602_nonce, kat3602_persstr,
+ kat3602_entropyinpr1, kat3602_addinpr1, kat3602_entropyinpr2,
+ kat3602_addinpr2, kat3602_retbits
+};
+static const struct drbg_kat kat3602 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3602_t
+};
+
+static const unsigned char kat3603_entropyin[] = {
+ 0x7f, 0x00, 0x38, 0xcc, 0xa3, 0xc7, 0x7c, 0x95, 0x4a, 0x67, 0xec, 0xda,
+ 0x1b, 0xc0, 0xf5, 0x59, 0x85, 0x6e, 0xdd, 0xef, 0xf3, 0x2a, 0x27, 0x41,
+ 0x44, 0x9b, 0x8f, 0xdb, 0x12, 0x3c, 0x8c, 0x93,
+};
+static const unsigned char kat3603_nonce[] = {0};
+static const unsigned char kat3603_persstr[] = {0};
+static const unsigned char kat3603_entropyinpr1[] = {
+ 0x09, 0xbe, 0x22, 0x7d, 0xc9, 0xc3, 0x00, 0xb5, 0xa0, 0x58, 0xb7, 0xa4,
+ 0x17, 0xb0, 0xa8, 0xae, 0x76, 0xe0, 0xfb, 0x63, 0xba, 0x77, 0x86, 0x6d,
+ 0xdd, 0x27, 0xc3, 0x3f, 0xe4, 0x0c, 0x86, 0x8d,
+};
+static const unsigned char kat3603_addinpr1[] = {0};
+static const unsigned char kat3603_entropyinpr2[] = {
+ 0x37, 0xcc, 0x30, 0xa0, 0x4a, 0x78, 0xc3, 0xa7, 0x7b, 0x01, 0x05, 0xd9,
+ 0xc2, 0xb7, 0x2f, 0xe1, 0x55, 0x11, 0xa2, 0xfa, 0xdc, 0x31, 0x5d, 0x04,
+ 0x1c, 0x6d, 0xfc, 0xd9, 0xe0, 0x54, 0x7b, 0x43,
+};
+static const unsigned char kat3603_addinpr2[] = {0};
+static const unsigned char kat3603_retbits[] = {
+ 0x1a, 0x5b, 0x3d, 0x85, 0xe2, 0xd9, 0x2e, 0xbf, 0x1f, 0x49, 0x51, 0xed,
+ 0xad, 0x6b, 0x0a, 0xe2, 0xe7, 0x4b, 0x38, 0x12, 0x5b, 0x32, 0x40, 0xb7,
+ 0x0d, 0xd6, 0x09, 0xc9, 0x92, 0xb3, 0xd5, 0x2e, 0xce, 0xfb, 0xab, 0x51,
+ 0x9d, 0x6d, 0x15, 0xf0, 0xb9, 0x3c, 0xf9, 0xae, 0x62, 0x30, 0xd9, 0xcb,
+ 0xcb, 0xd1, 0x7e, 0x56, 0x20, 0xa8, 0x93, 0xf1, 0x9a, 0x85, 0x11, 0x70,
+ 0x4a, 0x0c, 0xe9, 0xf7,
+};
+static const struct drbg_kat_pr_true kat3603_t = {
+ 2, kat3603_entropyin, kat3603_nonce, kat3603_persstr,
+ kat3603_entropyinpr1, kat3603_addinpr1, kat3603_entropyinpr2,
+ kat3603_addinpr2, kat3603_retbits
+};
+static const struct drbg_kat kat3603 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3603_t
+};
+
+static const unsigned char kat3604_entropyin[] = {
+ 0x51, 0x68, 0x4d, 0x77, 0xf6, 0x18, 0xcb, 0x07, 0x66, 0x68, 0x55, 0xdf,
+ 0x7e, 0xcf, 0xbc, 0x82, 0xcb, 0x64, 0xe6, 0x39, 0x9d, 0x45, 0x21, 0x52,
+ 0x14, 0x1f, 0x78, 0x7b, 0x23, 0x20, 0x0d, 0x7e,
+};
+static const unsigned char kat3604_nonce[] = {0};
+static const unsigned char kat3604_persstr[] = {0};
+static const unsigned char kat3604_entropyinpr1[] = {
+ 0xcb, 0x20, 0xc9, 0x70, 0xc4, 0xcb, 0x4a, 0x1a, 0x42, 0x9f, 0x6e, 0xc8,
+ 0x11, 0x7b, 0x7c, 0x25, 0x89, 0xd3, 0x21, 0x41, 0xf8, 0x93, 0x56, 0x21,
+ 0xee, 0x9b, 0xb1, 0x02, 0x7f, 0x61, 0x61, 0x0d,
+};
+static const unsigned char kat3604_addinpr1[] = {0};
+static const unsigned char kat3604_entropyinpr2[] = {
+ 0x61, 0x29, 0x7e, 0x68, 0x17, 0xb3, 0xc1, 0xe4, 0x7c, 0x37, 0xa7, 0x81,
+ 0x2f, 0x01, 0xac, 0xcc, 0x89, 0xce, 0xc1, 0x5f, 0x5b, 0x71, 0x30, 0xfe,
+ 0xb2, 0xae, 0xbf, 0x59, 0x7b, 0xeb, 0xd4, 0x83,
+};
+static const unsigned char kat3604_addinpr2[] = {0};
+static const unsigned char kat3604_retbits[] = {
+ 0x11, 0x97, 0xc0, 0x23, 0x06, 0x6f, 0xe8, 0x80, 0xd9, 0xe2, 0x1d, 0x01,
+ 0x07, 0x79, 0x1b, 0xc3, 0xd4, 0x62, 0x20, 0xba, 0x91, 0xf8, 0xef, 0xf7,
+ 0xf9, 0xef, 0x95, 0xf6, 0xa2, 0x64, 0x85, 0x1c, 0x62, 0x8c, 0x56, 0xcd,
+ 0x64, 0x4e, 0x45, 0x71, 0x14, 0xab, 0xfb, 0x4b, 0x69, 0xd2, 0xae, 0xe8,
+ 0x48, 0x58, 0xc8, 0x68, 0x17, 0x69, 0x57, 0xf5, 0xff, 0x05, 0x0d, 0x9a,
+ 0x0b, 0xf9, 0x78, 0xed,
+};
+static const struct drbg_kat_pr_true kat3604_t = {
+ 3, kat3604_entropyin, kat3604_nonce, kat3604_persstr,
+ kat3604_entropyinpr1, kat3604_addinpr1, kat3604_entropyinpr2,
+ kat3604_addinpr2, kat3604_retbits
+};
+static const struct drbg_kat kat3604 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3604_t
+};
+
+static const unsigned char kat3605_entropyin[] = {
+ 0x9d, 0x2b, 0xaf, 0x47, 0x0a, 0x2a, 0x8b, 0xd4, 0xae, 0xb5, 0x2d, 0x98,
+ 0xce, 0xe3, 0xca, 0x04, 0x79, 0x2c, 0x16, 0x84, 0xbf, 0xee, 0xa2, 0x76,
+ 0x63, 0xf3, 0x90, 0x74, 0xa0, 0x57, 0x30, 0x96,
+};
+static const unsigned char kat3605_nonce[] = {0};
+static const unsigned char kat3605_persstr[] = {0};
+static const unsigned char kat3605_entropyinpr1[] = {
+ 0x06, 0x8d, 0x79, 0x4d, 0x7e, 0x8c, 0x85, 0x1e, 0xb1, 0xc4, 0xb3, 0x6b,
+ 0xd1, 0x54, 0x96, 0x6f, 0xd1, 0x0f, 0x0f, 0x43, 0xcc, 0xe4, 0x35, 0xcc,
+ 0x5b, 0xf1, 0x6e, 0x2e, 0x48, 0x9b, 0x9f, 0x4a,
+};
+static const unsigned char kat3605_addinpr1[] = {0};
+static const unsigned char kat3605_entropyinpr2[] = {
+ 0xb2, 0x1e, 0x1c, 0x09, 0xc4, 0x68, 0x69, 0x3e, 0xb5, 0x8a, 0x46, 0x51,
+ 0x7f, 0xa4, 0xa7, 0x25, 0x5e, 0x99, 0x7d, 0x49, 0xb7, 0x41, 0xf7, 0x29,
+ 0xe1, 0x57, 0x1c, 0x18, 0x8e, 0x68, 0xe5, 0xc4,
+};
+static const unsigned char kat3605_addinpr2[] = {0};
+static const unsigned char kat3605_retbits[] = {
+ 0xcf, 0xc8, 0x3d, 0x9d, 0x6d, 0x87, 0x16, 0x13, 0xf1, 0x68, 0x06, 0x95,
+ 0xe2, 0x48, 0xbe, 0x4a, 0x53, 0x01, 0xf2, 0x8f, 0xc1, 0x4e, 0x61, 0xf5,
+ 0x10, 0x41, 0xfb, 0xa7, 0x23, 0x0b, 0xe6, 0x66, 0x54, 0x79, 0x34, 0xd2,
+ 0x3a, 0xd1, 0x45, 0x6a, 0x53, 0xc0, 0x2b, 0xe4, 0x0f, 0x74, 0xa6, 0x6b,
+ 0x8a, 0x0a, 0x8e, 0xf9, 0x81, 0xe1, 0x13, 0x74, 0x02, 0x3b, 0x52, 0x0b,
+ 0xaf, 0x19, 0x33, 0xa5,
+};
+static const struct drbg_kat_pr_true kat3605_t = {
+ 4, kat3605_entropyin, kat3605_nonce, kat3605_persstr,
+ kat3605_entropyinpr1, kat3605_addinpr1, kat3605_entropyinpr2,
+ kat3605_addinpr2, kat3605_retbits
+};
+static const struct drbg_kat kat3605 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3605_t
+};
+
+static const unsigned char kat3606_entropyin[] = {
+ 0xc2, 0x2a, 0x02, 0x48, 0x5e, 0xd9, 0xb6, 0x7b, 0xae, 0x0a, 0x74, 0x2e,
+ 0xf6, 0x5a, 0x57, 0xae, 0x7c, 0x43, 0x33, 0x03, 0x1c, 0x81, 0xfe, 0x75,
+ 0x21, 0x66, 0x0a, 0xcd, 0xba, 0x06, 0xaa, 0x4a,
+};
+static const unsigned char kat3606_nonce[] = {0};
+static const unsigned char kat3606_persstr[] = {0};
+static const unsigned char kat3606_entropyinpr1[] = {
+ 0x10, 0xf5, 0x34, 0xa0, 0xdd, 0x67, 0xb4, 0x09, 0x9e, 0x78, 0x30, 0x86,
+ 0xe8, 0x9f, 0xd5, 0x0d, 0x46, 0x7c, 0x79, 0x70, 0x35, 0x7e, 0xfe, 0xfc,
+ 0xde, 0xb9, 0xcf, 0xac, 0xb9, 0xb2, 0x5e, 0xeb,
+};
+static const unsigned char kat3606_addinpr1[] = {0};
+static const unsigned char kat3606_entropyinpr2[] = {
+ 0x27, 0xb5, 0x27, 0x35, 0x93, 0x51, 0x89, 0x05, 0x98, 0xb1, 0xf8, 0x77,
+ 0x86, 0xbc, 0x20, 0xc7, 0x59, 0xa6, 0x08, 0x20, 0xcc, 0x54, 0x8c, 0xbf,
+ 0x12, 0x12, 0x6d, 0x56, 0xf4, 0xd1, 0xbc, 0xf9,
+};
+static const unsigned char kat3606_addinpr2[] = {0};
+static const unsigned char kat3606_retbits[] = {
+ 0x29, 0x93, 0x2a, 0x12, 0x05, 0xa1, 0x87, 0x8a, 0x1b, 0xa5, 0xdb, 0xf0,
+ 0xeb, 0xe1, 0xb5, 0x09, 0x92, 0x73, 0x7d, 0x6d, 0x86, 0x10, 0x63, 0x16,
+ 0x46, 0x59, 0x45, 0xdb, 0x8e, 0xf4, 0xc5, 0x2a, 0x8c, 0x3e, 0xd9, 0xc3,
+ 0x14, 0x98, 0xa6, 0xb2, 0xed, 0x50, 0x2a, 0x85, 0x30, 0x28, 0xf1, 0xd2,
+ 0x17, 0x9f, 0x1e, 0xa6, 0x5e, 0x6f, 0x98, 0x02, 0x64, 0xee, 0xae, 0x82,
+ 0x5a, 0x02, 0x37, 0x76,
+};
+static const struct drbg_kat_pr_true kat3606_t = {
+ 5, kat3606_entropyin, kat3606_nonce, kat3606_persstr,
+ kat3606_entropyinpr1, kat3606_addinpr1, kat3606_entropyinpr2,
+ kat3606_addinpr2, kat3606_retbits
+};
+static const struct drbg_kat kat3606 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3606_t
+};
+
+static const unsigned char kat3607_entropyin[] = {
+ 0xd1, 0x23, 0xe0, 0x1d, 0xa1, 0xce, 0x99, 0x0f, 0x22, 0x4b, 0x03, 0xe8,
+ 0x8e, 0xc1, 0x9b, 0x90, 0x6c, 0x19, 0xcb, 0x09, 0xdf, 0xbf, 0x97, 0x4d,
+ 0xde, 0xeb, 0xe7, 0xe8, 0x48, 0xdc, 0xa6, 0x62,
+};
+static const unsigned char kat3607_nonce[] = {0};
+static const unsigned char kat3607_persstr[] = {0};
+static const unsigned char kat3607_entropyinpr1[] = {
+ 0x1d, 0xda, 0xd2, 0xb4, 0xb7, 0xcf, 0x09, 0xa3, 0x47, 0x60, 0x72, 0xa9,
+ 0x2f, 0x35, 0x49, 0xd7, 0x54, 0xd7, 0xd5, 0x22, 0x5f, 0x23, 0xe3, 0xc7,
+ 0x51, 0x43, 0x65, 0x94, 0x66, 0x38, 0x2c, 0x6f,
+};
+static const unsigned char kat3607_addinpr1[] = {0};
+static const unsigned char kat3607_entropyinpr2[] = {
+ 0x48, 0x40, 0x00, 0xb9, 0x77, 0xd6, 0xcf, 0xe6, 0x83, 0x57, 0x36, 0x43,
+ 0x68, 0x00, 0x4a, 0x62, 0x68, 0x5e, 0xa4, 0x92, 0xe3, 0x5d, 0x28, 0x5c,
+ 0x73, 0x45, 0xbd, 0xc3, 0x4d, 0x5c, 0x93, 0x87,
+};
+static const unsigned char kat3607_addinpr2[] = {0};
+static const unsigned char kat3607_retbits[] = {
+ 0xa2, 0x0e, 0xa8, 0x7f, 0x11, 0x40, 0xac, 0xd6, 0x5b, 0xef, 0x4c, 0x32,
+ 0x2e, 0xb6, 0x73, 0xea, 0x7c, 0x43, 0x0d, 0x72, 0x91, 0x71, 0xae, 0x76,
+ 0x99, 0x40, 0x22, 0x29, 0xa7, 0xa2, 0xb0, 0x07, 0x89, 0xac, 0x08, 0x37,
+ 0x2a, 0x4c, 0x28, 0x75, 0x46, 0xe5, 0x20, 0x5c, 0xcc, 0xd3, 0xb8, 0x82,
+ 0x42, 0xf9, 0x4e, 0x31, 0x77, 0xc9, 0xeb, 0x42, 0x8d, 0x2b, 0xa2, 0xf0,
+ 0x2f, 0xa7, 0xb6, 0xcf,
+};
+static const struct drbg_kat_pr_true kat3607_t = {
+ 6, kat3607_entropyin, kat3607_nonce, kat3607_persstr,
+ kat3607_entropyinpr1, kat3607_addinpr1, kat3607_entropyinpr2,
+ kat3607_addinpr2, kat3607_retbits
+};
+static const struct drbg_kat kat3607 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3607_t
+};
+
+static const unsigned char kat3608_entropyin[] = {
+ 0x4c, 0xcb, 0xd9, 0x3d, 0xa2, 0x57, 0x56, 0xe0, 0xe9, 0xe0, 0x33, 0x63,
+ 0x30, 0x05, 0x97, 0xec, 0xca, 0x37, 0x7e, 0xa0, 0x5c, 0xb4, 0xf7, 0xb6,
+ 0x99, 0xca, 0xb1, 0x34, 0xc1, 0xf8, 0xa0, 0xe5,
+};
+static const unsigned char kat3608_nonce[] = {0};
+static const unsigned char kat3608_persstr[] = {0};
+static const unsigned char kat3608_entropyinpr1[] = {
+ 0xdb, 0xbe, 0x7e, 0x04, 0x4a, 0xba, 0xaf, 0x9d, 0x69, 0x11, 0x52, 0x8e,
+ 0xf9, 0x05, 0x20, 0x2f, 0xdc, 0x49, 0x3c, 0xda, 0x87, 0xb1, 0x4f, 0x1e,
+ 0x49, 0x6c, 0xdf, 0xfe, 0xf2, 0x63, 0xbc, 0xd2,
+};
+static const unsigned char kat3608_addinpr1[] = {0};
+static const unsigned char kat3608_entropyinpr2[] = {
+ 0x30, 0x60, 0xb4, 0x68, 0x97, 0x3a, 0x86, 0xb8, 0xdf, 0xd6, 0x6e, 0x31,
+ 0xe4, 0x2f, 0x57, 0x9b, 0x4d, 0x0d, 0xcf, 0x10, 0x0e, 0xc2, 0xdf, 0xe2,
+ 0xd0, 0x88, 0x9f, 0x2c, 0x9f, 0x0b, 0xb5, 0x83,
+};
+static const unsigned char kat3608_addinpr2[] = {0};
+static const unsigned char kat3608_retbits[] = {
+ 0x3a, 0xe7, 0xe9, 0x59, 0x91, 0xbe, 0xe3, 0x93, 0xfb, 0xde, 0xa4, 0x03,
+ 0x6b, 0xb0, 0x6c, 0xf7, 0x57, 0xb2, 0xed, 0x67, 0xfb, 0xe3, 0x84, 0x12,
+ 0x41, 0x29, 0x26, 0x4f, 0xbf, 0x45, 0xab, 0xd7, 0xeb, 0x50, 0x52, 0x86,
+ 0xd8, 0xc5, 0xa3, 0xf3, 0x10, 0x46, 0x0f, 0xc0, 0x4c, 0x6a, 0x11, 0x2c,
+ 0x3a, 0x9a, 0x2a, 0x6a, 0x1e, 0x2c, 0x53, 0x07, 0xbb, 0xcb, 0x69, 0x04,
+ 0xfc, 0x90, 0x63, 0xb6,
+};
+static const struct drbg_kat_pr_true kat3608_t = {
+ 7, kat3608_entropyin, kat3608_nonce, kat3608_persstr,
+ kat3608_entropyinpr1, kat3608_addinpr1, kat3608_entropyinpr2,
+ kat3608_addinpr2, kat3608_retbits
+};
+static const struct drbg_kat kat3608 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3608_t
+};
+
+static const unsigned char kat3609_entropyin[] = {
+ 0x89, 0xb9, 0x0a, 0x5a, 0x28, 0x26, 0x73, 0xe0, 0x95, 0x97, 0x4c, 0xa1,
+ 0xd3, 0x83, 0x67, 0x41, 0x48, 0xe3, 0x83, 0x1d, 0x5b, 0x29, 0x4e, 0x64,
+ 0xf2, 0x39, 0x78, 0x8c, 0xb7, 0xb7, 0xb5, 0xfe,
+};
+static const unsigned char kat3609_nonce[] = {0};
+static const unsigned char kat3609_persstr[] = {0};
+static const unsigned char kat3609_entropyinpr1[] = {
+ 0xc1, 0x3e, 0x80, 0x0b, 0x12, 0x52, 0x0f, 0x2a, 0x7a, 0xfa, 0xac, 0xb9,
+ 0xf6, 0xfb, 0xf9, 0x14, 0xc5, 0x29, 0x9d, 0xe1, 0x92, 0xb5, 0x7f, 0x29,
+ 0xe3, 0xfa, 0xec, 0x51, 0xcc, 0xfa, 0x0d, 0x1d,
+};
+static const unsigned char kat3609_addinpr1[] = {0};
+static const unsigned char kat3609_entropyinpr2[] = {
+ 0x10, 0x3b, 0x98, 0xff, 0x04, 0xb4, 0x88, 0xa4, 0xf8, 0x89, 0xa0, 0xae,
+ 0x39, 0x9f, 0x0b, 0x6d, 0x68, 0xe1, 0x26, 0xc6, 0x2b, 0xb6, 0x9d, 0x2f,
+ 0x83, 0xb7, 0xb5, 0xcc, 0x07, 0xec, 0x5e, 0xe2,
+};
+static const unsigned char kat3609_addinpr2[] = {0};
+static const unsigned char kat3609_retbits[] = {
+ 0x7d, 0xb8, 0xae, 0x33, 0x89, 0xff, 0x7e, 0x38, 0xa4, 0x65, 0x5f, 0xe9,
+ 0xfa, 0x96, 0x83, 0x1c, 0x8b, 0xab, 0xc9, 0xd1, 0x1b, 0x86, 0x33, 0x8e,
+ 0x2a, 0xd1, 0x2f, 0xf9, 0x4a, 0xd4, 0xa6, 0x1e, 0x94, 0x9a, 0xe0, 0xb1,
+ 0x8a, 0xac, 0x0d, 0xd0, 0x57, 0x22, 0x00, 0xdf, 0x27, 0x09, 0x63, 0x52,
+ 0xf1, 0x38, 0x0e, 0x77, 0x21, 0xc6, 0xa4, 0x25, 0x64, 0x26, 0xd5, 0x37,
+ 0x47, 0x33, 0xb5, 0x68,
+};
+static const struct drbg_kat_pr_true kat3609_t = {
+ 8, kat3609_entropyin, kat3609_nonce, kat3609_persstr,
+ kat3609_entropyinpr1, kat3609_addinpr1, kat3609_entropyinpr2,
+ kat3609_addinpr2, kat3609_retbits
+};
+static const struct drbg_kat kat3609 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3609_t
+};
+
+static const unsigned char kat3610_entropyin[] = {
+ 0x8e, 0x1f, 0xd6, 0x5e, 0x65, 0x60, 0x3a, 0x69, 0x44, 0x3d, 0x3e, 0x4d,
+ 0x05, 0xe4, 0xf9, 0x95, 0x0d, 0xaa, 0x8b, 0x0b, 0xb1, 0xc7, 0x06, 0xd0,
+ 0x85, 0xd3, 0x0a, 0x2e, 0x2c, 0xaa, 0xa6, 0x7a,
+};
+static const unsigned char kat3610_nonce[] = {0};
+static const unsigned char kat3610_persstr[] = {0};
+static const unsigned char kat3610_entropyinpr1[] = {
+ 0xf9, 0x3e, 0x29, 0xbb, 0xb3, 0xba, 0xf5, 0xba, 0xba, 0xee, 0x65, 0xc8,
+ 0xf6, 0x5f, 0x73, 0xe2, 0x78, 0xb7, 0xbb, 0xc7, 0x69, 0xbc, 0x9c, 0xa8,
+ 0xd3, 0xdb, 0x35, 0x97, 0xdf, 0x47, 0x13, 0xda,
+};
+static const unsigned char kat3610_addinpr1[] = {0};
+static const unsigned char kat3610_entropyinpr2[] = {
+ 0x21, 0xca, 0xad, 0xa8, 0xad, 0xf9, 0x00, 0x8e, 0x64, 0x5d, 0x23, 0xd3,
+ 0x9c, 0x76, 0x70, 0x0a, 0xc1, 0xe7, 0xf4, 0xed, 0x85, 0x27, 0x03, 0xad,
+ 0x2b, 0x08, 0xe0, 0xaa, 0xec, 0xa3, 0x63, 0xa5,
+};
+static const unsigned char kat3610_addinpr2[] = {0};
+static const unsigned char kat3610_retbits[] = {
+ 0x5c, 0xb2, 0x39, 0xc5, 0xa2, 0x28, 0xb4, 0x3f, 0x81, 0x4b, 0x05, 0xfd,
+ 0xf0, 0x49, 0xa1, 0xab, 0x6c, 0x01, 0xaf, 0xdd, 0xa8, 0x68, 0xa5, 0xa1,
+ 0x8d, 0x6b, 0x29, 0xa2, 0xf1, 0xca, 0x96, 0x83, 0x36, 0x4a, 0x86, 0x3b,
+ 0x01, 0xca, 0x09, 0xb1, 0x71, 0xbd, 0xea, 0xfe, 0x93, 0x1f, 0x77, 0x10,
+ 0x07, 0x2f, 0xf6, 0xac, 0xd2, 0xbe, 0xd9, 0xa6, 0x46, 0x6a, 0xa5, 0xbb,
+ 0x6a, 0xfe, 0xe2, 0x0e,
+};
+static const struct drbg_kat_pr_true kat3610_t = {
+ 9, kat3610_entropyin, kat3610_nonce, kat3610_persstr,
+ kat3610_entropyinpr1, kat3610_addinpr1, kat3610_entropyinpr2,
+ kat3610_addinpr2, kat3610_retbits
+};
+static const struct drbg_kat kat3610 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3610_t
+};
+
+static const unsigned char kat3611_entropyin[] = {
+ 0x98, 0x32, 0x36, 0x08, 0x1d, 0x95, 0xc6, 0x3d, 0x0f, 0x25, 0x3d, 0x0f,
+ 0xbe, 0x6d, 0x19, 0x18, 0x21, 0xfb, 0x5e, 0x8f, 0x90, 0xac, 0xd8, 0xf0,
+ 0x0f, 0x4c, 0x09, 0x7b, 0xf9, 0xb9, 0xb0, 0x87,
+};
+static const unsigned char kat3611_nonce[] = {0};
+static const unsigned char kat3611_persstr[] = {0};
+static const unsigned char kat3611_entropyinpr1[] = {
+ 0xd3, 0xde, 0xe0, 0x75, 0x54, 0x6d, 0xc8, 0xdd, 0x05, 0xbc, 0x01, 0x37,
+ 0x7e, 0xa3, 0x11, 0xbf, 0x12, 0xec, 0x54, 0xed, 0x5f, 0x52, 0xe4, 0x98,
+ 0x01, 0x6b, 0x8d, 0x5e, 0x8c, 0xd8, 0x5d, 0xa0,
+};
+static const unsigned char kat3611_addinpr1[] = {0};
+static const unsigned char kat3611_entropyinpr2[] = {
+ 0x96, 0xf1, 0x18, 0xb2, 0x5f, 0x80, 0xa3, 0x78, 0x0f, 0xa7, 0x38, 0x92,
+ 0xe4, 0xbf, 0xe9, 0x00, 0x00, 0x74, 0xc0, 0x29, 0xce, 0x28, 0x8b, 0x73,
+ 0x65, 0xb0, 0x0f, 0x9e, 0x2f, 0x79, 0x3d, 0x44,
+};
+static const unsigned char kat3611_addinpr2[] = {0};
+static const unsigned char kat3611_retbits[] = {
+ 0x11, 0x0c, 0xe2, 0x60, 0xce, 0xb4, 0x80, 0x9f, 0x78, 0x45, 0xea, 0xb5,
+ 0xd8, 0x20, 0x83, 0xc9, 0xde, 0xc1, 0x6d, 0xd5, 0x8b, 0x8e, 0x90, 0xd7,
+ 0xee, 0x40, 0xdc, 0xda, 0xbd, 0x16, 0xb2, 0x75, 0xb8, 0x07, 0xcf, 0xfa,
+ 0x67, 0x79, 0xbd, 0x05, 0x76, 0x5b, 0x0e, 0x2b, 0x33, 0x1a, 0x43, 0x28,
+ 0xd1, 0xe9, 0x6c, 0xf6, 0x19, 0x5b, 0x55, 0x0f, 0x8a, 0xac, 0xc0, 0xf0,
+ 0x63, 0xcf, 0x70, 0xa4,
+};
+static const struct drbg_kat_pr_true kat3611_t = {
+ 10, kat3611_entropyin, kat3611_nonce, kat3611_persstr,
+ kat3611_entropyinpr1, kat3611_addinpr1, kat3611_entropyinpr2,
+ kat3611_addinpr2, kat3611_retbits
+};
+static const struct drbg_kat kat3611 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3611_t
+};
+
+static const unsigned char kat3612_entropyin[] = {
+ 0x04, 0xbd, 0x50, 0x5b, 0xd5, 0xeb, 0xad, 0xb1, 0x76, 0x0b, 0x7c, 0x04,
+ 0xfb, 0xc1, 0x69, 0x1d, 0x01, 0xf2, 0x0d, 0xeb, 0x0c, 0xc6, 0xa9, 0x3c,
+ 0x3d, 0x7e, 0xa6, 0xc3, 0x5d, 0x74, 0xd5, 0x80,
+};
+static const unsigned char kat3612_nonce[] = {0};
+static const unsigned char kat3612_persstr[] = {0};
+static const unsigned char kat3612_entropyinpr1[] = {
+ 0xef, 0x9d, 0xed, 0x9e, 0x52, 0x20, 0x65, 0xd3, 0x04, 0xa6, 0x0b, 0x18,
+ 0xd5, 0xd0, 0x36, 0xc7, 0x0a, 0xad, 0xe7, 0x75, 0x8c, 0x3e, 0xb8, 0x2c,
+ 0xee, 0x6f, 0xbb, 0xdb, 0xba, 0x0f, 0xd4, 0xd0,
+};
+static const unsigned char kat3612_addinpr1[] = {0};
+static const unsigned char kat3612_entropyinpr2[] = {
+ 0xef, 0xb6, 0x2f, 0x77, 0xff, 0x61, 0x3c, 0xe0, 0x20, 0x90, 0xb6, 0x20,
+ 0xc0, 0x4c, 0x57, 0x88, 0x12, 0x7d, 0x10, 0xdc, 0x1c, 0x2e, 0x6f, 0x3b,
+ 0x74, 0x80, 0x3f, 0xbd, 0xb1, 0x64, 0xd0, 0x2b,
+};
+static const unsigned char kat3612_addinpr2[] = {0};
+static const unsigned char kat3612_retbits[] = {
+ 0xe6, 0x19, 0x6c, 0x21, 0x24, 0x83, 0x10, 0x20, 0xbd, 0x5e, 0x0d, 0x00,
+ 0xf0, 0x5b, 0x3c, 0xe6, 0xa0, 0x71, 0x23, 0xda, 0xf8, 0xe9, 0x60, 0x7e,
+ 0xc7, 0x0b, 0xb8, 0x12, 0xbb, 0x84, 0xce, 0x8a, 0x1a, 0xd0, 0x1a, 0x35,
+ 0x9e, 0x5c, 0x57, 0x63, 0x2d, 0x34, 0x06, 0xfa, 0x0b, 0xeb, 0x72, 0x41,
+ 0x6f, 0x59, 0x5c, 0x92, 0x9b, 0xce, 0xc8, 0x46, 0x9b, 0x8e, 0xb6, 0xfe,
+ 0x0b, 0x2a, 0x24, 0xf9,
+};
+static const struct drbg_kat_pr_true kat3612_t = {
+ 11, kat3612_entropyin, kat3612_nonce, kat3612_persstr,
+ kat3612_entropyinpr1, kat3612_addinpr1, kat3612_entropyinpr2,
+ kat3612_addinpr2, kat3612_retbits
+};
+static const struct drbg_kat kat3612 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3612_t
+};
+
+static const unsigned char kat3613_entropyin[] = {
+ 0xf1, 0x56, 0x74, 0x04, 0xad, 0xad, 0x31, 0xdf, 0xbd, 0x86, 0x10, 0x4a,
+ 0x23, 0x6c, 0x8b, 0x2d, 0x48, 0x70, 0xa0, 0x24, 0xe6, 0xb7, 0x74, 0xf1,
+ 0x5c, 0xc2, 0x4c, 0x13, 0x91, 0xf9, 0x4e, 0x20,
+};
+static const unsigned char kat3613_nonce[] = {0};
+static const unsigned char kat3613_persstr[] = {0};
+static const unsigned char kat3613_entropyinpr1[] = {
+ 0x2e, 0xcd, 0x60, 0xa6, 0x60, 0x2d, 0xfa, 0x81, 0xf2, 0x1c, 0xab, 0xe6,
+ 0x8b, 0x36, 0x77, 0xcf, 0x8c, 0xcd, 0xbb, 0xda, 0xb6, 0xc7, 0xb6, 0x54,
+ 0x39, 0x5b, 0x1d, 0x1b, 0xb1, 0xe5, 0xe1, 0x3c,
+};
+static const unsigned char kat3613_addinpr1[] = {0};
+static const unsigned char kat3613_entropyinpr2[] = {
+ 0x52, 0x7a, 0x51, 0x9d, 0xc2, 0x89, 0x90, 0x3f, 0xdc, 0xeb, 0x09, 0x4a,
+ 0xba, 0xc7, 0xa2, 0x0f, 0x8e, 0xef, 0x1b, 0x44, 0xe4, 0x07, 0x7e, 0x16,
+ 0x48, 0xbe, 0x3f, 0xae, 0xcd, 0xc8, 0x1c, 0xfa,
+};
+static const unsigned char kat3613_addinpr2[] = {0};
+static const unsigned char kat3613_retbits[] = {
+ 0x8c, 0xa8, 0xef, 0xc8, 0x47, 0xfb, 0xdc, 0xb0, 0xfe, 0x75, 0x46, 0xf7,
+ 0x0a, 0x78, 0xbf, 0x10, 0xc5, 0xa2, 0x6c, 0x18, 0x05, 0x12, 0x57, 0xa5,
+ 0xfa, 0x86, 0x6c, 0x41, 0x27, 0xb4, 0x73, 0xbe, 0x90, 0x8f, 0xeb, 0xd7,
+ 0xd8, 0x1f, 0x54, 0x1b, 0x4d, 0xe4, 0xf5, 0xf4, 0x9c, 0x0e, 0xc5, 0xfa,
+ 0xb5, 0x91, 0xd1, 0xd5, 0x07, 0x17, 0xde, 0x52, 0x94, 0x17, 0x7c, 0x25,
+ 0x6d, 0xa9, 0x74, 0x9f,
+};
+static const struct drbg_kat_pr_true kat3613_t = {
+ 12, kat3613_entropyin, kat3613_nonce, kat3613_persstr,
+ kat3613_entropyinpr1, kat3613_addinpr1, kat3613_entropyinpr2,
+ kat3613_addinpr2, kat3613_retbits
+};
+static const struct drbg_kat kat3613 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3613_t
+};
+
+static const unsigned char kat3614_entropyin[] = {
+ 0xf8, 0xd7, 0x07, 0xf2, 0xd5, 0x04, 0x98, 0xbc, 0x7e, 0xa8, 0x35, 0xd8,
+ 0xee, 0xa3, 0xa4, 0x41, 0xba, 0x48, 0xd0, 0x90, 0xbe, 0xc8, 0x28, 0xac,
+ 0xa8, 0x73, 0xae, 0x16, 0xe6, 0xdf, 0xc3, 0xfa,
+};
+static const unsigned char kat3614_nonce[] = {0};
+static const unsigned char kat3614_persstr[] = {0};
+static const unsigned char kat3614_entropyinpr1[] = {
+ 0x5e, 0xb8, 0x4e, 0x69, 0x4d, 0x54, 0x23, 0xf8, 0x83, 0x0e, 0x48, 0x0d,
+ 0x84, 0xe3, 0xd2, 0xcd, 0xc4, 0x04, 0x4f, 0x13, 0x87, 0x8a, 0xc5, 0xd5,
+ 0x69, 0x36, 0x61, 0x0e, 0x0e, 0x01, 0x94, 0x19,
+};
+static const unsigned char kat3614_addinpr1[] = {0};
+static const unsigned char kat3614_entropyinpr2[] = {
+ 0xe4, 0x2c, 0x5d, 0x66, 0x60, 0x22, 0x42, 0xb6, 0xca, 0x83, 0x74, 0x91,
+ 0x9a, 0xfd, 0x0b, 0x3d, 0x98, 0xde, 0x07, 0x95, 0x86, 0xe4, 0x94, 0xd7,
+ 0x03, 0x55, 0xbf, 0x11, 0xca, 0x63, 0x70, 0xb0,
+};
+static const unsigned char kat3614_addinpr2[] = {0};
+static const unsigned char kat3614_retbits[] = {
+ 0xc5, 0x0e, 0x3d, 0xff, 0x40, 0x85, 0x78, 0x40, 0xe7, 0x52, 0xe8, 0x90,
+ 0x16, 0x2b, 0xb6, 0xa2, 0x44, 0xdc, 0x47, 0xc7, 0xa3, 0x51, 0x65, 0xb8,
+ 0x8f, 0x06, 0x09, 0xea, 0x50, 0xdf, 0xd2, 0xb7, 0xe9, 0xe5, 0x55, 0x75,
+ 0x4c, 0x45, 0x26, 0x6e, 0x37, 0x41, 0x22, 0x2a, 0x71, 0xb2, 0x6f, 0xde,
+ 0x6d, 0x8e, 0xdf, 0xc2, 0xd6, 0x78, 0x36, 0xaf, 0x00, 0xfc, 0xa3, 0x1d,
+ 0x19, 0xb2, 0x33, 0xea,
+};
+static const struct drbg_kat_pr_true kat3614_t = {
+ 13, kat3614_entropyin, kat3614_nonce, kat3614_persstr,
+ kat3614_entropyinpr1, kat3614_addinpr1, kat3614_entropyinpr2,
+ kat3614_addinpr2, kat3614_retbits
+};
+static const struct drbg_kat kat3614 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3614_t
+};
+
+static const unsigned char kat3615_entropyin[] = {
+ 0x84, 0x91, 0x21, 0x23, 0x25, 0xbe, 0xca, 0xf2, 0x95, 0x1b, 0x93, 0x5c,
+ 0xbc, 0x6f, 0x18, 0x3f, 0xb9, 0x30, 0xec, 0x45, 0x1a, 0x93, 0xcd, 0x7d,
+ 0x13, 0xab, 0x53, 0x00, 0x6e, 0x56, 0x5a, 0xdf,
+};
+static const unsigned char kat3615_nonce[] = {0};
+static const unsigned char kat3615_persstr[] = {0};
+static const unsigned char kat3615_entropyinpr1[] = {
+ 0x43, 0xd5, 0x3e, 0x48, 0xde, 0x3c, 0x24, 0x78, 0x57, 0x13, 0x22, 0x24,
+ 0xa4, 0x48, 0x14, 0x76, 0x72, 0xde, 0xc7, 0xcf, 0xfe, 0x10, 0x16, 0x4d,
+ 0x83, 0x44, 0x6c, 0x10, 0x03, 0xed, 0x71, 0xb9,
+};
+static const unsigned char kat3615_addinpr1[] = {0};
+static const unsigned char kat3615_entropyinpr2[] = {
+ 0xde, 0x28, 0xc5, 0x74, 0xf0, 0xd7, 0x71, 0xf2, 0x21, 0x1a, 0xcb, 0x54,
+ 0xb4, 0x3a, 0x60, 0xef, 0x79, 0x97, 0x30, 0x81, 0xf0, 0x6d, 0xa6, 0x81,
+ 0x92, 0x19, 0x61, 0x2c, 0x67, 0xbd, 0x94, 0xb7,
+};
+static const unsigned char kat3615_addinpr2[] = {0};
+static const unsigned char kat3615_retbits[] = {
+ 0x3e, 0x6e, 0x82, 0xf2, 0xed, 0xb3, 0xfc, 0xd7, 0x45, 0x59, 0xb4, 0x6d,
+ 0x31, 0x9b, 0x09, 0xcf, 0xc3, 0x44, 0x1c, 0x06, 0xba, 0xc7, 0xa1, 0x26,
+ 0x06, 0x47, 0xed, 0x7f, 0x93, 0x27, 0x48, 0x5d, 0x55, 0x38, 0x73, 0xd8,
+ 0xb5, 0x8c, 0x08, 0x41, 0x05, 0x74, 0x16, 0x1e, 0x0f, 0xf9, 0xd5, 0xbb,
+ 0x2e, 0xd4, 0xcf, 0xea, 0x53, 0x3b, 0xdb, 0xcd, 0x47, 0xec, 0x62, 0x7a,
+ 0xc4, 0x05, 0xd3, 0xf6,
+};
+static const struct drbg_kat_pr_true kat3615_t = {
+ 14, kat3615_entropyin, kat3615_nonce, kat3615_persstr,
+ kat3615_entropyinpr1, kat3615_addinpr1, kat3615_entropyinpr2,
+ kat3615_addinpr2, kat3615_retbits
+};
+static const struct drbg_kat kat3615 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3615_t
+};
+
+static const unsigned char kat3616_entropyin[] = {
+ 0x4d, 0x85, 0xec, 0x7a, 0x58, 0x76, 0x3c, 0x38, 0x35, 0x48, 0xe7, 0x07,
+ 0x58, 0xc6, 0xdb, 0x91, 0xf9, 0x9b, 0x14, 0x66, 0xba, 0xa7, 0xd4, 0xf2,
+ 0x0b, 0xa1, 0xf8, 0xa4, 0x4e, 0xc4, 0xd1, 0xf3,
+};
+static const unsigned char kat3616_nonce[] = {0};
+static const unsigned char kat3616_persstr[] = {0};
+static const unsigned char kat3616_entropyinpr1[] = {
+ 0x3a, 0x9e, 0x8e, 0x7a, 0xeb, 0xfe, 0xd9, 0x9f, 0x34, 0xb1, 0x62, 0x94,
+ 0xc1, 0xda, 0x97, 0x3b, 0xd7, 0x06, 0xaf, 0xba, 0x10, 0x5d, 0x78, 0xcb,
+ 0x13, 0x2e, 0x4d, 0x3a, 0xee, 0x22, 0x1c, 0xc1,
+};
+static const unsigned char kat3616_addinpr1[] = {
+ 0xdd, 0x4f, 0x1c, 0x82, 0x47, 0x3f, 0xe4, 0xcc, 0x56, 0x12, 0x81, 0x52,
+ 0x00, 0x15, 0x47, 0xff, 0x72, 0x34, 0xea, 0xde, 0xa5, 0xe9, 0x4f, 0x0d,
+ 0x64, 0xb0, 0xc0, 0x8d, 0x24, 0x78, 0x85, 0x70,
+};
+static const unsigned char kat3616_entropyinpr2[] = {
+ 0xe3, 0x7f, 0x19, 0x3e, 0x5f, 0x13, 0x56, 0x36, 0x8a, 0xec, 0x70, 0xa0,
+ 0xde, 0x2c, 0x33, 0x0c, 0x3c, 0xf9, 0xaf, 0x26, 0xc6, 0xae, 0xe4, 0x6b,
+ 0x9f, 0x11, 0x4f, 0x62, 0x76, 0xed, 0x38, 0xb4,
+};
+static const unsigned char kat3616_addinpr2[] = {
+ 0xe9, 0x00, 0x46, 0xb7, 0xfc, 0xd9, 0xd8, 0x64, 0x34, 0xc3, 0x12, 0xb9,
+ 0x59, 0x79, 0x5f, 0xbf, 0xbe, 0x66, 0x6d, 0xda, 0x2b, 0x16, 0xa7, 0xb1,
+ 0x4c, 0xb0, 0xcc, 0x1d, 0x84, 0x89, 0x52, 0x73,
+};
+static const unsigned char kat3616_retbits[] = {
+ 0x17, 0x3a, 0x53, 0x5a, 0x1c, 0xe5, 0x2e, 0x3c, 0xa2, 0xb6, 0x8f, 0xb2,
+ 0xc2, 0x48, 0x80, 0xa4, 0xdc, 0x28, 0x37, 0x17, 0x4c, 0xe3, 0xdf, 0x1c,
+ 0x1f, 0x44, 0x5f, 0x43, 0x01, 0x33, 0x84, 0xa0, 0x57, 0x0e, 0xc8, 0xd5,
+ 0x19, 0x7b, 0x2d, 0x00, 0xfe, 0xf3, 0xcb, 0x35, 0x56, 0x08, 0x6b, 0xd8,
+ 0x2f, 0xb6, 0x07, 0x55, 0x62, 0xf3, 0xad, 0xae, 0x4d, 0xca, 0x39, 0x00,
+ 0x8b, 0xcd, 0x73, 0x97,
+};
+static const struct drbg_kat_pr_true kat3616_t = {
+ 0, kat3616_entropyin, kat3616_nonce, kat3616_persstr,
+ kat3616_entropyinpr1, kat3616_addinpr1, kat3616_entropyinpr2,
+ kat3616_addinpr2, kat3616_retbits
+};
+static const struct drbg_kat kat3616 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3616_t
+};
+
+static const unsigned char kat3617_entropyin[] = {
+ 0x35, 0x8c, 0xdb, 0x23, 0x37, 0xe4, 0x2e, 0xa8, 0x4d, 0x4e, 0x03, 0xce,
+ 0x5f, 0x76, 0xd3, 0xb7, 0xb3, 0xf5, 0xd1, 0x33, 0xfa, 0x99, 0x09, 0xe6,
+ 0x37, 0x99, 0x7f, 0x96, 0x37, 0x40, 0x91, 0xb1,
+};
+static const unsigned char kat3617_nonce[] = {0};
+static const unsigned char kat3617_persstr[] = {0};
+static const unsigned char kat3617_entropyinpr1[] = {
+ 0x58, 0x3e, 0x3a, 0x99, 0x61, 0x09, 0xb6, 0x4e, 0x72, 0x7e, 0x87, 0x08,
+ 0x5a, 0x53, 0x4f, 0x1f, 0x20, 0xe6, 0x0d, 0x98, 0x58, 0x7b, 0xe4, 0x5c,
+ 0x69, 0xe5, 0xac, 0x7b, 0x96, 0x4f, 0x44, 0x96,
+};
+static const unsigned char kat3617_addinpr1[] = {
+ 0xe9, 0x33, 0x8a, 0xca, 0x9c, 0x02, 0xe7, 0xb9, 0x74, 0x8d, 0x23, 0x99,
+ 0x45, 0x40, 0x50, 0x5b, 0x94, 0x4f, 0x44, 0xeb, 0x5a, 0xd1, 0xf5, 0x1b,
+ 0x83, 0x1f, 0x69, 0x56, 0x52, 0xd7, 0x1a, 0x5d,
+};
+static const unsigned char kat3617_entropyinpr2[] = {
+ 0x78, 0x45, 0xb7, 0x4f, 0x4d, 0x34, 0xd6, 0x16, 0x61, 0x5a, 0x52, 0x63,
+ 0x53, 0x40, 0x4c, 0x37, 0x6b, 0x69, 0x40, 0xf0, 0x8d, 0x49, 0xc5, 0x26,
+ 0x81, 0x8c, 0xdd, 0xca, 0x40, 0x73, 0xca, 0x88,
+};
+static const unsigned char kat3617_addinpr2[] = {
+ 0x69, 0x5d, 0x66, 0xf7, 0x7e, 0xba, 0x05, 0x6c, 0xcb, 0x2b, 0x31, 0xb3,
+ 0xa9, 0x50, 0x98, 0x04, 0xcf, 0x69, 0xb9, 0x4e, 0x7b, 0x83, 0x24, 0x12,
+ 0xbc, 0xd7, 0x6c, 0xbc, 0x86, 0x74, 0xe2, 0x6b,
+};
+static const unsigned char kat3617_retbits[] = {
+ 0x85, 0x5c, 0x34, 0xdd, 0x29, 0x94, 0xdd, 0x59, 0x1f, 0x50, 0x21, 0x92,
+ 0xbb, 0xb6, 0x7d, 0xc8, 0xa4, 0x23, 0xb7, 0x10, 0x85, 0x90, 0xaa, 0x82,
+ 0x73, 0x1a, 0x30, 0x06, 0x89, 0x32, 0x09, 0x7f, 0x3a, 0xda, 0x82, 0x66,
+ 0x10, 0x51, 0x48, 0x55, 0xe2, 0x30, 0xcc, 0x0c, 0x7a, 0xaf, 0x61, 0x70,
+ 0x52, 0xc0, 0x97, 0x53, 0x45, 0x95, 0x8d, 0x5a, 0xcd, 0x6c, 0x6c, 0xaa,
+ 0xa1, 0x22, 0xfe, 0x4b,
+};
+static const struct drbg_kat_pr_true kat3617_t = {
+ 1, kat3617_entropyin, kat3617_nonce, kat3617_persstr,
+ kat3617_entropyinpr1, kat3617_addinpr1, kat3617_entropyinpr2,
+ kat3617_addinpr2, kat3617_retbits
+};
+static const struct drbg_kat kat3617 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3617_t
+};
+
+static const unsigned char kat3618_entropyin[] = {
+ 0x70, 0x08, 0x4b, 0x14, 0xb3, 0x7e, 0x2f, 0xc9, 0x17, 0xd3, 0xd6, 0xb4,
+ 0xa7, 0xc8, 0x20, 0x1f, 0x31, 0xd7, 0x64, 0xfa, 0x58, 0x8f, 0x51, 0x3e,
+ 0x36, 0x5f, 0x8e, 0x31, 0x3d, 0xbc, 0x8e, 0xc2,
+};
+static const unsigned char kat3618_nonce[] = {0};
+static const unsigned char kat3618_persstr[] = {0};
+static const unsigned char kat3618_entropyinpr1[] = {
+ 0x40, 0x27, 0xdb, 0x96, 0xb9, 0x00, 0xc4, 0xa0, 0x74, 0xbe, 0xd9, 0xb5,
+ 0xb2, 0xcf, 0xa5, 0x73, 0xf4, 0x0d, 0x60, 0x7c, 0x3b, 0x5e, 0x00, 0xae,
+ 0x1b, 0xca, 0x84, 0x41, 0xfa, 0x58, 0x4c, 0xb1,
+};
+static const unsigned char kat3618_addinpr1[] = {
+ 0xc0, 0x9f, 0x3c, 0x76, 0xb3, 0x8e, 0x50, 0x2b, 0x12, 0x27, 0x86, 0xf4,
+ 0x57, 0x96, 0xe1, 0x97, 0x23, 0xe9, 0x41, 0x73, 0xec, 0x79, 0xcf, 0x19,
+ 0x0e, 0x7d, 0x1e, 0x9e, 0x77, 0x09, 0x05, 0xb1,
+};
+static const unsigned char kat3618_entropyinpr2[] = {
+ 0x60, 0x4b, 0x9d, 0x0b, 0xe8, 0xe5, 0x0f, 0x4f, 0xbe, 0xe8, 0xc2, 0x0b,
+ 0x5a, 0x8a, 0x56, 0x97, 0xa4, 0xfa, 0xf4, 0xa2, 0x5b, 0x86, 0xa6, 0x63,
+ 0x79, 0x7c, 0x8c, 0xe6, 0x03, 0xa7, 0x09, 0x2b,
+};
+static const unsigned char kat3618_addinpr2[] = {
+ 0xed, 0x48, 0x44, 0xee, 0xdc, 0x13, 0x7c, 0x95, 0xcb, 0xf7, 0x9c, 0x88,
+ 0x5b, 0x0b, 0x6b, 0x4a, 0x06, 0x7f, 0x02, 0x57, 0xc8, 0x97, 0xab, 0xe7,
+ 0x52, 0x74, 0x69, 0x49, 0x05, 0x04, 0x1c, 0x97,
+};
+static const unsigned char kat3618_retbits[] = {
+ 0x01, 0x30, 0xf2, 0xe4, 0x75, 0x72, 0xd8, 0x8b, 0x2f, 0xe2, 0x5e, 0x81,
+ 0x38, 0x23, 0xae, 0x33, 0xed, 0x05, 0x51, 0xe9, 0x2b, 0x2a, 0x97, 0xa6,
+ 0x08, 0x6e, 0x6a, 0xb9, 0x62, 0x08, 0x04, 0x96, 0x9b, 0x5c, 0x4d, 0x72,
+ 0x16, 0xc0, 0x02, 0x9d, 0x60, 0xa4, 0x5d, 0x24, 0xd3, 0xe4, 0xbb, 0x96,
+ 0x99, 0x3c, 0x1c, 0x41, 0x88, 0x7a, 0xa4, 0xc5, 0xa9, 0x00, 0x1e, 0xd3,
+ 0xab, 0xfe, 0x95, 0x8d,
+};
+static const struct drbg_kat_pr_true kat3618_t = {
+ 2, kat3618_entropyin, kat3618_nonce, kat3618_persstr,
+ kat3618_entropyinpr1, kat3618_addinpr1, kat3618_entropyinpr2,
+ kat3618_addinpr2, kat3618_retbits
+};
+static const struct drbg_kat kat3618 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3618_t
+};
+
+static const unsigned char kat3619_entropyin[] = {
+ 0xc9, 0x17, 0x6a, 0xd2, 0x11, 0x0b, 0x4b, 0x34, 0x7a, 0xdd, 0xee, 0x42,
+ 0x89, 0x27, 0x72, 0x95, 0x35, 0x16, 0x78, 0x99, 0xf8, 0xca, 0x7c, 0x68,
+ 0x23, 0xbe, 0x50, 0x43, 0xe5, 0xec, 0xa5, 0xb8,
+};
+static const unsigned char kat3619_nonce[] = {0};
+static const unsigned char kat3619_persstr[] = {0};
+static const unsigned char kat3619_entropyinpr1[] = {
+ 0x8a, 0xaa, 0xa7, 0xdd, 0x87, 0x77, 0xc9, 0x16, 0xfa, 0x60, 0x7d, 0x21,
+ 0x08, 0x55, 0x6e, 0x13, 0x3a, 0xec, 0x8c, 0x67, 0x1b, 0xba, 0xf5, 0x50,
+ 0xb6, 0x78, 0x31, 0x19, 0xf0, 0xbd, 0x17, 0xe1,
+};
+static const unsigned char kat3619_addinpr1[] = {
+ 0x89, 0x51, 0xa5, 0x4e, 0xdd, 0x47, 0xe7, 0x80, 0xda, 0x51, 0x87, 0x57,
+ 0x05, 0x34, 0x7d, 0x0a, 0xb0, 0x8f, 0xfb, 0x2f, 0xb5, 0x31, 0xf5, 0xa7,
+ 0x4d, 0x79, 0xcd, 0x0f, 0xab, 0x0b, 0x9a, 0xdd,
+};
+static const unsigned char kat3619_entropyinpr2[] = {
+ 0x6c, 0xff, 0x33, 0x92, 0x03, 0x89, 0xc3, 0x3b, 0x74, 0x26, 0x51, 0x5b,
+ 0x3a, 0x9b, 0x23, 0x6b, 0xe6, 0x03, 0x4e, 0xc3, 0x4d, 0x66, 0xd0, 0x0f,
+ 0xe8, 0x51, 0x79, 0xce, 0xfb, 0x6d, 0x82, 0x8d,
+};
+static const unsigned char kat3619_addinpr2[] = {
+ 0xcb, 0xd1, 0x0c, 0x57, 0x9d, 0xf5, 0x80, 0x72, 0x93, 0x76, 0x19, 0xeb,
+ 0xfc, 0x16, 0xcc, 0xd8, 0xf7, 0xbf, 0xf8, 0xbe, 0xfe, 0x85, 0xd0, 0x97,
+ 0x96, 0xb8, 0x45, 0xca, 0x69, 0xde, 0xe1, 0x9d,
+};
+static const unsigned char kat3619_retbits[] = {
+ 0x24, 0x65, 0x73, 0xfe, 0xc9, 0x0f, 0x56, 0x83, 0x2e, 0xf6, 0x1a, 0xc7,
+ 0x6e, 0xce, 0x81, 0x48, 0xb9, 0xad, 0xce, 0xe2, 0xb4, 0x13, 0x8f, 0xcb,
+ 0xab, 0x7c, 0x73, 0xed, 0x90, 0x2a, 0xec, 0x68, 0x71, 0x16, 0x0a, 0xa8,
+ 0xdf, 0xdc, 0xa6, 0x29, 0x0f, 0xac, 0x05, 0x8f, 0x2a, 0xb0, 0xf1, 0xbe,
+ 0x36, 0x63, 0x79, 0x2f, 0x7a, 0xd7, 0x2c, 0x5e, 0x49, 0x5e, 0x58, 0x71,
+ 0x7b, 0x42, 0x37, 0xce,
+};
+static const struct drbg_kat_pr_true kat3619_t = {
+ 3, kat3619_entropyin, kat3619_nonce, kat3619_persstr,
+ kat3619_entropyinpr1, kat3619_addinpr1, kat3619_entropyinpr2,
+ kat3619_addinpr2, kat3619_retbits
+};
+static const struct drbg_kat kat3619 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3619_t
+};
+
+static const unsigned char kat3620_entropyin[] = {
+ 0x96, 0xaa, 0xa1, 0x15, 0x0f, 0x58, 0x6f, 0xe1, 0x56, 0xd0, 0xf9, 0x88,
+ 0xb0, 0xc0, 0x4b, 0x98, 0x96, 0xa0, 0xf0, 0xdc, 0xe2, 0x4f, 0x12, 0x58,
+ 0xca, 0xc0, 0xb9, 0xb7, 0xbf, 0xf4, 0x1d, 0xbd,
+};
+static const unsigned char kat3620_nonce[] = {0};
+static const unsigned char kat3620_persstr[] = {0};
+static const unsigned char kat3620_entropyinpr1[] = {
+ 0xf2, 0x94, 0xb1, 0x2b, 0x6b, 0x6a, 0x07, 0x7e, 0x22, 0xc9, 0x93, 0xb3,
+ 0x44, 0x6a, 0xfe, 0xd1, 0xe3, 0x4c, 0xae, 0x0e, 0x6b, 0xd8, 0x8f, 0x23,
+ 0x4a, 0x22, 0x52, 0xb7, 0xcc, 0x3f, 0xc0, 0xc9,
+};
+static const unsigned char kat3620_addinpr1[] = {
+ 0xb7, 0x78, 0x90, 0x4c, 0x42, 0xbf, 0xff, 0xd5, 0x37, 0x79, 0x59, 0xaf,
+ 0x64, 0x64, 0x2e, 0xd6, 0x25, 0x4c, 0xf0, 0x96, 0xfe, 0xfc, 0xca, 0x8c,
+ 0x2f, 0xeb, 0x0c, 0xee, 0xbd, 0x85, 0x8c, 0xa1,
+};
+static const unsigned char kat3620_entropyinpr2[] = {
+ 0x72, 0xce, 0xf2, 0xc4, 0x54, 0xc6, 0xa3, 0x5b, 0x2c, 0x79, 0xfd, 0x57,
+ 0x2e, 0x33, 0x8f, 0xde, 0x36, 0x88, 0xc3, 0x86, 0x59, 0xc2, 0xed, 0xf5,
+ 0x5b, 0x65, 0x78, 0xb4, 0x77, 0x81, 0x8a, 0x47,
+};
+static const unsigned char kat3620_addinpr2[] = {
+ 0xd0, 0x9f, 0x4e, 0xb1, 0xa0, 0xd2, 0x4c, 0xd7, 0xce, 0xfc, 0x67, 0x94,
+ 0x36, 0x15, 0xe5, 0x43, 0x39, 0x9d, 0xd3, 0x27, 0x1d, 0x6b, 0x0a, 0x49,
+ 0x33, 0x7e, 0x2f, 0x25, 0xbe, 0xb8, 0x40, 0x6c,
+};
+static const unsigned char kat3620_retbits[] = {
+ 0xd5, 0xd5, 0xd1, 0x76, 0x93, 0xd8, 0x32, 0x16, 0x68, 0x1b, 0x1a, 0xa1,
+ 0x4a, 0xbd, 0xf8, 0xd5, 0xfe, 0xa4, 0x4e, 0xd4, 0x92, 0x41, 0xf5, 0xe6,
+ 0x74, 0x92, 0x49, 0x9f, 0x59, 0x06, 0x4a, 0x57, 0x24, 0x55, 0x73, 0x86,
+ 0xa1, 0xfe, 0x5b, 0x3c, 0x14, 0xe3, 0x4c, 0x98, 0x4a, 0xf9, 0xba, 0x58,
+ 0x19, 0x14, 0x0f, 0x06, 0x04, 0x52, 0xbc, 0xf4, 0x57, 0xe2, 0x7b, 0x15,
+ 0x07, 0xbd, 0x40, 0x79,
+};
+static const struct drbg_kat_pr_true kat3620_t = {
+ 4, kat3620_entropyin, kat3620_nonce, kat3620_persstr,
+ kat3620_entropyinpr1, kat3620_addinpr1, kat3620_entropyinpr2,
+ kat3620_addinpr2, kat3620_retbits
+};
+static const struct drbg_kat kat3620 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3620_t
+};
+
+static const unsigned char kat3621_entropyin[] = {
+ 0x05, 0x29, 0xd7, 0x8a, 0xb6, 0xd8, 0x0d, 0xc8, 0xe2, 0xb4, 0x09, 0xa7,
+ 0xbf, 0x91, 0x03, 0x8d, 0x4e, 0xeb, 0x44, 0xd7, 0x31, 0x0f, 0xc3, 0x71,
+ 0x45, 0x32, 0x10, 0xaa, 0x69, 0x74, 0x19, 0xad,
+};
+static const unsigned char kat3621_nonce[] = {0};
+static const unsigned char kat3621_persstr[] = {0};
+static const unsigned char kat3621_entropyinpr1[] = {
+ 0x44, 0x8d, 0x96, 0x26, 0x02, 0x72, 0xb9, 0x39, 0xe5, 0xf9, 0x49, 0xdd,
+ 0xac, 0x93, 0x1c, 0xde, 0x53, 0xbe, 0xf5, 0x0b, 0xf6, 0x19, 0x06, 0x31,
+ 0x0f, 0x96, 0x59, 0xcb, 0xf7, 0xa5, 0x77, 0x1e,
+};
+static const unsigned char kat3621_addinpr1[] = {
+ 0x32, 0x80, 0x8a, 0x53, 0x50, 0x29, 0x22, 0x60, 0xcb, 0xb5, 0x89, 0x05,
+ 0xcf, 0x12, 0xe5, 0x27, 0xfd, 0xaa, 0xdb, 0x5d, 0xc6, 0x23, 0xa0, 0x65,
+ 0x5e, 0xfe, 0x2a, 0x19, 0xf8, 0xed, 0x90, 0xe9,
+};
+static const unsigned char kat3621_entropyinpr2[] = {
+ 0x1d, 0x08, 0xa4, 0x81, 0x21, 0xfd, 0x55, 0x7e, 0x11, 0x96, 0x48, 0x15,
+ 0xa1, 0x63, 0x9e, 0x5b, 0xcb, 0x6f, 0xa2, 0x3a, 0xc3, 0x68, 0x5f, 0x6e,
+ 0xe5, 0x10, 0x8c, 0x7a, 0x72, 0x56, 0xea, 0x64,
+};
+static const unsigned char kat3621_addinpr2[] = {
+ 0x5d, 0x5e, 0xe1, 0xa3, 0x75, 0xcd, 0x24, 0xa1, 0xbf, 0xd9, 0x00, 0x17,
+ 0x35, 0x4a, 0xe6, 0xaf, 0x22, 0xed, 0x51, 0xbb, 0x77, 0x7e, 0x96, 0xb0,
+ 0x3b, 0x04, 0xbc, 0x01, 0x43, 0xbe, 0x6a, 0x92,
+};
+static const unsigned char kat3621_retbits[] = {
+ 0xb7, 0x90, 0x2a, 0x01, 0xc5, 0x19, 0xd5, 0x8f, 0x11, 0x02, 0x7d, 0x40,
+ 0xd3, 0x96, 0x61, 0x74, 0x11, 0x14, 0x86, 0x0f, 0xa4, 0x49, 0x57, 0xe9,
+ 0x28, 0x5f, 0x2e, 0xcd, 0x1d, 0x7d, 0xf7, 0x3a, 0xf1, 0x35, 0x2e, 0x73,
+ 0x7e, 0x81, 0x3e, 0x26, 0x38, 0x5d, 0xf8, 0x0a, 0x66, 0xb9, 0x47, 0xef,
+ 0x5d, 0xa0, 0xf5, 0x31, 0x34, 0xc8, 0x0f, 0x1f, 0x75, 0x38, 0x0f, 0x73,
+ 0xa6, 0xc2, 0xc5, 0x9c,
+};
+static const struct drbg_kat_pr_true kat3621_t = {
+ 5, kat3621_entropyin, kat3621_nonce, kat3621_persstr,
+ kat3621_entropyinpr1, kat3621_addinpr1, kat3621_entropyinpr2,
+ kat3621_addinpr2, kat3621_retbits
+};
+static const struct drbg_kat kat3621 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3621_t
+};
+
+static const unsigned char kat3622_entropyin[] = {
+ 0xe0, 0xa3, 0x0e, 0x9e, 0xa5, 0x7a, 0x32, 0x08, 0xd0, 0xfc, 0x1f, 0x4c,
+ 0x3b, 0xf5, 0xbf, 0x4a, 0x21, 0xc5, 0xf8, 0x27, 0x66, 0x79, 0xc8, 0x2e,
+ 0xba, 0x9a, 0x56, 0x89, 0x3c, 0x75, 0xb6, 0xae,
+};
+static const unsigned char kat3622_nonce[] = {0};
+static const unsigned char kat3622_persstr[] = {0};
+static const unsigned char kat3622_entropyinpr1[] = {
+ 0x41, 0x4e, 0x9a, 0xd8, 0x30, 0xa3, 0xa0, 0xba, 0xc5, 0xc8, 0xd5, 0x5b,
+ 0x39, 0x4b, 0x0f, 0xb5, 0xba, 0xdc, 0xb0, 0x52, 0x95, 0xa7, 0x7d, 0xdc,
+ 0xaf, 0x34, 0x25, 0x12, 0xe7, 0x5e, 0xf7, 0x9b,
+};
+static const unsigned char kat3622_addinpr1[] = {
+ 0x09, 0xbe, 0x6e, 0x3e, 0x1f, 0x3b, 0x04, 0x54, 0x83, 0x88, 0x4d, 0x1e,
+ 0xc7, 0x03, 0x05, 0x21, 0x7c, 0x61, 0x5f, 0x1e, 0x95, 0xbf, 0xf3, 0x14,
+ 0x60, 0x0f, 0x3c, 0x17, 0x39, 0x3d, 0x5b, 0x59,
+};
+static const unsigned char kat3622_entropyinpr2[] = {
+ 0x3a, 0xc4, 0x79, 0xe9, 0x10, 0x84, 0xa2, 0x1f, 0x01, 0x35, 0x7b, 0x8f,
+ 0x3c, 0x49, 0xe8, 0xf1, 0xc7, 0x5d, 0x09, 0x3e, 0xb8, 0x7b, 0xa4, 0x73,
+ 0x6b, 0x8f, 0x55, 0x9f, 0xf4, 0xc3, 0x4d, 0xdc,
+};
+static const unsigned char kat3622_addinpr2[] = {
+ 0x11, 0x38, 0x07, 0xe2, 0x81, 0x90, 0x36, 0x57, 0x76, 0xe3, 0xd2, 0x6c,
+ 0x7b, 0x60, 0x7e, 0xe1, 0x2a, 0x1a, 0x0d, 0x5b, 0xaa, 0x2b, 0x3e, 0x53,
+ 0x4c, 0x15, 0x77, 0x09, 0x90, 0x65, 0xee, 0xa9,
+};
+static const unsigned char kat3622_retbits[] = {
+ 0xc6, 0xd9, 0x70, 0x7d, 0x35, 0x40, 0x4a, 0x81, 0x7f, 0x32, 0x06, 0x2b,
+ 0x0c, 0x42, 0x8b, 0xe1, 0x37, 0xeb, 0x35, 0x03, 0x0b, 0x04, 0xe6, 0x8e,
+ 0x14, 0xfd, 0x92, 0xd8, 0xd4, 0xf1, 0xc4, 0x0a, 0x1b, 0xcd, 0x67, 0x58,
+ 0xca, 0x05, 0xae, 0x32, 0x64, 0xe7, 0x5f, 0xb1, 0x09, 0x9c, 0x07, 0xa3,
+ 0x1c, 0x22, 0x10, 0x12, 0x69, 0x05, 0xe1, 0xea, 0x94, 0xac, 0xed, 0xaa,
+ 0x2d, 0xe9, 0x05, 0xdc,
+};
+static const struct drbg_kat_pr_true kat3622_t = {
+ 6, kat3622_entropyin, kat3622_nonce, kat3622_persstr,
+ kat3622_entropyinpr1, kat3622_addinpr1, kat3622_entropyinpr2,
+ kat3622_addinpr2, kat3622_retbits
+};
+static const struct drbg_kat kat3622 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3622_t
+};
+
+static const unsigned char kat3623_entropyin[] = {
+ 0x7e, 0xd2, 0x2a, 0x3b, 0xbb, 0xc1, 0x6c, 0xa6, 0xa8, 0x5a, 0x4f, 0x6a,
+ 0x83, 0xe5, 0xe5, 0x0b, 0xe4, 0x7d, 0x04, 0x3d, 0x5d, 0x22, 0x75, 0x8c,
+ 0x0e, 0x65, 0xf0, 0xc2, 0x8e, 0xd8, 0x83, 0x1d,
+};
+static const unsigned char kat3623_nonce[] = {0};
+static const unsigned char kat3623_persstr[] = {0};
+static const unsigned char kat3623_entropyinpr1[] = {
+ 0x27, 0x54, 0x67, 0x22, 0x31, 0x04, 0xc5, 0xe0, 0x9a, 0xc9, 0xd1, 0xcb,
+ 0x47, 0x3f, 0x62, 0x4a, 0xd8, 0x64, 0xb8, 0x12, 0x79, 0xa4, 0x18, 0xf1,
+ 0xdf, 0xe1, 0x00, 0x37, 0xb1, 0xf4, 0x1a, 0x72,
+};
+static const unsigned char kat3623_addinpr1[] = {
+ 0x8a, 0x89, 0xc7, 0x9e, 0xbc, 0x11, 0x82, 0xba, 0x22, 0x4d, 0x5e, 0x4b,
+ 0x27, 0x79, 0x7d, 0xb9, 0x08, 0x78, 0x2e, 0x69, 0xe8, 0x97, 0x4f, 0x5f,
+ 0xd2, 0x28, 0x41, 0x49, 0x8d, 0xc0, 0xb5, 0x67,
+};
+static const unsigned char kat3623_entropyinpr2[] = {
+ 0x88, 0x73, 0x8a, 0x05, 0x2a, 0xe6, 0x2b, 0x47, 0xcb, 0x76, 0xe9, 0xdc,
+ 0x57, 0x68, 0xe9, 0xeb, 0x3d, 0x6d, 0x57, 0xe2, 0x83, 0x41, 0x6d, 0xce,
+ 0xad, 0x44, 0xcc, 0xb6, 0x2e, 0x46, 0x7c, 0x71,
+};
+static const unsigned char kat3623_addinpr2[] = {
+ 0xb2, 0x4b, 0x91, 0x27, 0x0e, 0x5a, 0x1a, 0x32, 0x4a, 0xb8, 0x82, 0x98,
+ 0xf7, 0xbb, 0x6e, 0xbc, 0x90, 0xd9, 0xeb, 0xa3, 0xc7, 0x68, 0xbb, 0xf1,
+ 0xfc, 0x65, 0x97, 0x59, 0xae, 0xdb, 0xc9, 0x1d,
+};
+static const unsigned char kat3623_retbits[] = {
+ 0x80, 0x37, 0x4c, 0x37, 0x8a, 0xd0, 0xaf, 0xc0, 0xfc, 0x59, 0xed, 0xa5,
+ 0xf4, 0xfa, 0x70, 0x8d, 0xf5, 0xca, 0xd6, 0xa4, 0x05, 0x5a, 0x83, 0x04,
+ 0x6b, 0x37, 0x92, 0x17, 0x85, 0x66, 0x51, 0x71, 0x6e, 0xe8, 0xfc, 0x62,
+ 0x60, 0x2b, 0x89, 0x47, 0x01, 0xc7, 0xdc, 0xba, 0x65, 0x83, 0x24, 0xe1,
+ 0x60, 0x8f, 0x37, 0x52, 0xd5, 0xb4, 0xa5, 0xca, 0x9a, 0x69, 0xf4, 0x9d,
+ 0x6e, 0x1d, 0xca, 0xbe,
+};
+static const struct drbg_kat_pr_true kat3623_t = {
+ 7, kat3623_entropyin, kat3623_nonce, kat3623_persstr,
+ kat3623_entropyinpr1, kat3623_addinpr1, kat3623_entropyinpr2,
+ kat3623_addinpr2, kat3623_retbits
+};
+static const struct drbg_kat kat3623 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3623_t
+};
+
+static const unsigned char kat3624_entropyin[] = {
+ 0xdf, 0x0c, 0x87, 0x0c, 0x53, 0x12, 0x39, 0x35, 0xd6, 0xb4, 0xf3, 0x56,
+ 0x39, 0x8a, 0x25, 0x30, 0x25, 0xca, 0xa0, 0x30, 0xc4, 0x98, 0xe9, 0xa0,
+ 0x19, 0xfb, 0x33, 0xd7, 0x53, 0x51, 0x7c, 0x95,
+};
+static const unsigned char kat3624_nonce[] = {0};
+static const unsigned char kat3624_persstr[] = {0};
+static const unsigned char kat3624_entropyinpr1[] = {
+ 0xa4, 0xb2, 0x81, 0x6c, 0xfb, 0x97, 0xd2, 0x0d, 0x11, 0x3a, 0x09, 0x85,
+ 0xeb, 0x7d, 0x24, 0xca, 0x37, 0x0c, 0xd1, 0x2c, 0xca, 0x9a, 0xc8, 0xa1,
+ 0x97, 0xbf, 0xc7, 0xdd, 0xe6, 0xe2, 0xec, 0xb5,
+};
+static const unsigned char kat3624_addinpr1[] = {
+ 0xfd, 0x5c, 0xc5, 0xf9, 0x22, 0xd9, 0xe8, 0x67, 0xff, 0x26, 0x65, 0x9d,
+ 0xb1, 0x1d, 0x56, 0xdc, 0x1e, 0x98, 0x90, 0x71, 0x3b, 0xef, 0x37, 0xcb,
+ 0xde, 0xa4, 0x56, 0x94, 0x52, 0xa6, 0x0f, 0x40,
+};
+static const unsigned char kat3624_entropyinpr2[] = {
+ 0xe3, 0x10, 0x95, 0xf6, 0x44, 0x3b, 0x86, 0x36, 0x29, 0xe1, 0x0c, 0x0e,
+ 0x49, 0x34, 0x19, 0x62, 0x7b, 0x79, 0x8e, 0x80, 0x67, 0xf2, 0x90, 0x3b,
+ 0x6d, 0x06, 0xd6, 0x7e, 0xf6, 0xab, 0x77, 0xaf,
+};
+static const unsigned char kat3624_addinpr2[] = {
+ 0x1b, 0xd4, 0x59, 0xcf, 0x12, 0x20, 0xf7, 0xe1, 0x65, 0xd0, 0x08, 0x42,
+ 0xc7, 0x06, 0x9c, 0xf0, 0x73, 0x39, 0x39, 0x7d, 0xe9, 0xe2, 0x73, 0xd2,
+ 0xf7, 0xfb, 0x27, 0xd4, 0xcf, 0x0d, 0x24, 0x7e,
+};
+static const unsigned char kat3624_retbits[] = {
+ 0xe3, 0xce, 0x4c, 0xb6, 0x0d, 0x5a, 0x06, 0xb0, 0x49, 0x53, 0xca, 0xe7,
+ 0xfc, 0x46, 0xd1, 0xb4, 0x08, 0xa6, 0x77, 0x2e, 0xf8, 0x57, 0xbd, 0x74,
+ 0xef, 0x37, 0xfa, 0x25, 0x40, 0x14, 0x10, 0x63, 0x2e, 0xb1, 0xb3, 0x53,
+ 0x3d, 0x58, 0xfd, 0x37, 0xd5, 0x8b, 0xd5, 0x48, 0x59, 0xa7, 0xa3, 0x5b,
+ 0x29, 0x81, 0x7e, 0x93, 0xc0, 0xbf, 0xb8, 0xc2, 0x94, 0x72, 0x27, 0x5b,
+ 0x0d, 0x67, 0xb3, 0xf0,
+};
+static const struct drbg_kat_pr_true kat3624_t = {
+ 8, kat3624_entropyin, kat3624_nonce, kat3624_persstr,
+ kat3624_entropyinpr1, kat3624_addinpr1, kat3624_entropyinpr2,
+ kat3624_addinpr2, kat3624_retbits
+};
+static const struct drbg_kat kat3624 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3624_t
+};
+
+static const unsigned char kat3625_entropyin[] = {
+ 0x47, 0x66, 0x5c, 0xd5, 0x03, 0x75, 0x28, 0x48, 0xd0, 0x2f, 0xf6, 0xad,
+ 0xf5, 0xe6, 0x7c, 0xd7, 0xc7, 0x41, 0xf6, 0x93, 0x2b, 0x36, 0xd5, 0x11,
+ 0xb6, 0xed, 0x16, 0x62, 0x38, 0x9c, 0xb6, 0x2b,
+};
+static const unsigned char kat3625_nonce[] = {0};
+static const unsigned char kat3625_persstr[] = {0};
+static const unsigned char kat3625_entropyinpr1[] = {
+ 0x16, 0xb4, 0xa3, 0xfe, 0xf9, 0xa1, 0xb6, 0xca, 0x83, 0xd0, 0x27, 0xa1,
+ 0xe3, 0x55, 0x4e, 0x75, 0x17, 0xb6, 0x50, 0xba, 0xa8, 0x7f, 0x8e, 0x49,
+ 0xcc, 0x75, 0x17, 0x5e, 0xc6, 0x0a, 0x56, 0x9b,
+};
+static const unsigned char kat3625_addinpr1[] = {
+ 0x77, 0x3f, 0x50, 0xbb, 0xf3, 0x78, 0x3c, 0xe1, 0x8e, 0x13, 0x79, 0x32,
+ 0xd0, 0x9c, 0x13, 0x10, 0x77, 0x38, 0x61, 0x78, 0x5c, 0xcc, 0x20, 0x45,
+ 0xfc, 0x4d, 0x3e, 0xb8, 0xed, 0xbb, 0xdd, 0xa7,
+};
+static const unsigned char kat3625_entropyinpr2[] = {
+ 0x95, 0x04, 0x77, 0xb5, 0xca, 0x17, 0x16, 0x79, 0x5c, 0x00, 0xed, 0xcd,
+ 0x88, 0x06, 0x84, 0x95, 0x2e, 0xcc, 0x7f, 0x9d, 0x9d, 0x21, 0x16, 0x6b,
+ 0xfd, 0xdc, 0x81, 0x09, 0x6e, 0x4d, 0x4a, 0x6c,
+};
+static const unsigned char kat3625_addinpr2[] = {
+ 0x04, 0x87, 0x95, 0x44, 0x41, 0xe5, 0x53, 0x8b, 0xfd, 0xc5, 0xe2, 0xfd,
+ 0x88, 0x20, 0x6f, 0x0a, 0x90, 0xf2, 0x95, 0xdd, 0x00, 0xd6, 0x0a, 0x20,
+ 0xaa, 0x2f, 0x52, 0x6c, 0x2c, 0xe3, 0x90, 0x2f,
+};
+static const unsigned char kat3625_retbits[] = {
+ 0xe4, 0x02, 0x63, 0xc7, 0x5f, 0x8b, 0xe0, 0xf4, 0x3f, 0x64, 0xe3, 0x3c,
+ 0x9c, 0xb7, 0x0a, 0x39, 0xe4, 0xb3, 0x54, 0xbd, 0x99, 0xbb, 0x63, 0x77,
+ 0xa4, 0x0e, 0xb5, 0x04, 0x4f, 0xac, 0xc7, 0xef, 0x16, 0xd4, 0xda, 0xfe,
+ 0xcf, 0x47, 0x6b, 0xdc, 0x8f, 0x3a, 0x89, 0xb9, 0x3e, 0x88, 0x73, 0xbf,
+ 0x19, 0xeb, 0x2a, 0x42, 0x6e, 0xee, 0x0b, 0x05, 0x22, 0x16, 0x7f, 0x4c,
+ 0x70, 0x7f, 0x59, 0x49,
+};
+static const struct drbg_kat_pr_true kat3625_t = {
+ 9, kat3625_entropyin, kat3625_nonce, kat3625_persstr,
+ kat3625_entropyinpr1, kat3625_addinpr1, kat3625_entropyinpr2,
+ kat3625_addinpr2, kat3625_retbits
+};
+static const struct drbg_kat kat3625 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3625_t
+};
+
+static const unsigned char kat3626_entropyin[] = {
+ 0xac, 0x20, 0x6c, 0x41, 0x78, 0xb1, 0xc3, 0xb9, 0xa7, 0x36, 0xa1, 0xfc,
+ 0x98, 0x04, 0x7e, 0xb3, 0xb8, 0xed, 0xda, 0x6a, 0x75, 0xba, 0x3f, 0xae,
+ 0x82, 0xad, 0x43, 0x0b, 0xab, 0x45, 0xb1, 0x92,
+};
+static const unsigned char kat3626_nonce[] = {0};
+static const unsigned char kat3626_persstr[] = {0};
+static const unsigned char kat3626_entropyinpr1[] = {
+ 0x26, 0x60, 0xec, 0x62, 0x7c, 0x44, 0xd2, 0x59, 0xa9, 0xb1, 0xb0, 0x1e,
+ 0x0a, 0x62, 0x39, 0xc7, 0x5a, 0xda, 0xd8, 0x3a, 0xd2, 0x69, 0x4b, 0x3b,
+ 0xe3, 0x6a, 0x9c, 0x24, 0xb5, 0xd9, 0x12, 0x22,
+};
+static const unsigned char kat3626_addinpr1[] = {
+ 0x50, 0xa6, 0xbb, 0x58, 0xf3, 0x86, 0xb6, 0x69, 0x8a, 0xf0, 0x1d, 0xd0,
+ 0x5b, 0x9b, 0x67, 0xc5, 0x1d, 0x6f, 0xb7, 0xbf, 0x7e, 0x7e, 0xe6, 0x94,
+ 0xd9, 0x92, 0x36, 0x09, 0xab, 0x3a, 0x9e, 0xd4,
+};
+static const unsigned char kat3626_entropyinpr2[] = {
+ 0x0b, 0xb0, 0x9e, 0xe8, 0x42, 0xc1, 0xde, 0xb2, 0x58, 0xea, 0x41, 0xd2,
+ 0xf4, 0xa6, 0x28, 0x66, 0xc2, 0xde, 0xe9, 0x3f, 0xc1, 0x42, 0x6e, 0xd0,
+ 0x31, 0x8a, 0x2e, 0xc6, 0x09, 0x95, 0xf2, 0xf2,
+};
+static const unsigned char kat3626_addinpr2[] = {
+ 0xf9, 0xe0, 0x4e, 0xbc, 0x76, 0xe9, 0xc4, 0xb1, 0xb1, 0x40, 0xa7, 0x84,
+ 0x87, 0x04, 0xda, 0xfb, 0x55, 0x12, 0x7a, 0x97, 0x47, 0x29, 0xd2, 0x2d,
+ 0xcb, 0xdd, 0x40, 0xd8, 0x19, 0xbb, 0x4d, 0x87,
+};
+static const unsigned char kat3626_retbits[] = {
+ 0xfd, 0x86, 0xf6, 0xef, 0xde, 0x8c, 0x73, 0x37, 0x33, 0x47, 0x0e, 0x60,
+ 0x05, 0xa9, 0xe3, 0x32, 0x7e, 0xea, 0xfa, 0x8f, 0x81, 0xf5, 0xf9, 0x41,
+ 0xf5, 0xb2, 0x75, 0x2e, 0xc1, 0x6d, 0x1c, 0x2d, 0xdd, 0xd4, 0x39, 0xf7,
+ 0x1b, 0x0b, 0x75, 0xdb, 0x4c, 0x51, 0xde, 0xac, 0x59, 0x23, 0x33, 0x4a,
+ 0xb1, 0x8f, 0x27, 0x2d, 0xf8, 0x3c, 0xdc, 0xc8, 0x04, 0xe2, 0x8b, 0xc3,
+ 0xe8, 0xb6, 0xc6, 0xa9,
+};
+static const struct drbg_kat_pr_true kat3626_t = {
+ 10, kat3626_entropyin, kat3626_nonce, kat3626_persstr,
+ kat3626_entropyinpr1, kat3626_addinpr1, kat3626_entropyinpr2,
+ kat3626_addinpr2, kat3626_retbits
+};
+static const struct drbg_kat kat3626 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3626_t
+};
+
+static const unsigned char kat3627_entropyin[] = {
+ 0xf1, 0x4f, 0xbc, 0x8c, 0x98, 0xce, 0x66, 0xfe, 0x6a, 0x13, 0x5a, 0x54,
+ 0x35, 0x4c, 0x54, 0xe1, 0x9c, 0xc2, 0x16, 0x2d, 0x2f, 0x3f, 0x69, 0x17,
+ 0x35, 0xbf, 0x20, 0x72, 0x89, 0x73, 0x20, 0x33,
+};
+static const unsigned char kat3627_nonce[] = {0};
+static const unsigned char kat3627_persstr[] = {0};
+static const unsigned char kat3627_entropyinpr1[] = {
+ 0xa0, 0x8a, 0x66, 0xad, 0x0d, 0x0b, 0x84, 0x73, 0xbd, 0xe7, 0xea, 0xa7,
+ 0x6c, 0x7b, 0x28, 0x18, 0xf5, 0x7f, 0x20, 0x1d, 0x3a, 0xe8, 0x98, 0xff,
+ 0x53, 0xe5, 0xb0, 0x81, 0xfb, 0xdd, 0x1a, 0x52,
+};
+static const unsigned char kat3627_addinpr1[] = {
+ 0xbd, 0xa3, 0x5c, 0xf2, 0x57, 0x6e, 0x9f, 0xdc, 0x5e, 0x8e, 0x7c, 0xa9,
+ 0x22, 0xad, 0x50, 0xa8, 0x1b, 0x1a, 0x2a, 0x5a, 0x00, 0xe5, 0x4d, 0x2e,
+ 0x20, 0xb1, 0xba, 0x7c, 0x63, 0x39, 0x42, 0xbb,
+};
+static const unsigned char kat3627_entropyinpr2[] = {
+ 0x56, 0xad, 0x37, 0x29, 0x0a, 0xfa, 0x62, 0xb4, 0xca, 0xcb, 0x6b, 0x68,
+ 0x50, 0xab, 0x35, 0x19, 0xd8, 0xcc, 0x6a, 0x2a, 0x9b, 0xf2, 0x4d, 0x05,
+ 0xd0, 0xd7, 0x5e, 0x57, 0x21, 0xef, 0xc0, 0x42,
+};
+static const unsigned char kat3627_addinpr2[] = {
+ 0xda, 0x02, 0xcd, 0x68, 0xa0, 0x66, 0x04, 0xbb, 0xfa, 0xd8, 0xa6, 0xaa,
+ 0x79, 0x96, 0x7a, 0x9e, 0x2f, 0x30, 0xc6, 0x61, 0x08, 0xc1, 0xf9, 0xfb,
+ 0xae, 0x9b, 0x74, 0x07, 0x08, 0x3e, 0x7b, 0xb5,
+};
+static const unsigned char kat3627_retbits[] = {
+ 0x57, 0xe6, 0xba, 0x35, 0xd9, 0x4d, 0xab, 0x57, 0x58, 0x7f, 0xd5, 0x26,
+ 0x48, 0x2a, 0x92, 0x43, 0x03, 0x3d, 0x4c, 0x68, 0x6c, 0x3a, 0x51, 0xb1,
+ 0x29, 0x51, 0x40, 0x1d, 0x86, 0x5f, 0x2c, 0x24, 0xf2, 0x0c, 0x80, 0xa9,
+ 0xdb, 0x7e, 0x96, 0xef, 0x0a, 0xe8, 0x47, 0x64, 0xd4, 0x60, 0x29, 0x67,
+ 0xde, 0xe4, 0x45, 0xb1, 0x2a, 0xdc, 0xff, 0x9b, 0xbd, 0xa9, 0xb0, 0xf0,
+ 0xe6, 0xa0, 0x2f, 0xae,
+};
+static const struct drbg_kat_pr_true kat3627_t = {
+ 11, kat3627_entropyin, kat3627_nonce, kat3627_persstr,
+ kat3627_entropyinpr1, kat3627_addinpr1, kat3627_entropyinpr2,
+ kat3627_addinpr2, kat3627_retbits
+};
+static const struct drbg_kat kat3627 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3627_t
+};
+
+static const unsigned char kat3628_entropyin[] = {
+ 0xcd, 0x48, 0x1f, 0x49, 0x38, 0x22, 0x0a, 0xb2, 0xe3, 0x13, 0x05, 0xae,
+ 0xff, 0x42, 0xbc, 0x16, 0xde, 0xee, 0x05, 0xf9, 0x2f, 0x1e, 0x9b, 0xcd,
+ 0x33, 0x81, 0xcf, 0xa9, 0x53, 0x77, 0xee, 0xb4,
+};
+static const unsigned char kat3628_nonce[] = {0};
+static const unsigned char kat3628_persstr[] = {0};
+static const unsigned char kat3628_entropyinpr1[] = {
+ 0xac, 0x87, 0xfb, 0xff, 0x62, 0x72, 0x40, 0x8d, 0xe1, 0xb8, 0xe3, 0xc4,
+ 0xb9, 0x9b, 0x8f, 0x57, 0x35, 0x48, 0xc4, 0xb4, 0x51, 0x69, 0x4c, 0x2b,
+ 0x4d, 0xc4, 0x5d, 0x96, 0xb3, 0xee, 0xc4, 0xd8,
+};
+static const unsigned char kat3628_addinpr1[] = {
+ 0xbf, 0x84, 0x3b, 0xd3, 0x2c, 0xc9, 0xa5, 0xb2, 0xea, 0xe9, 0xc0, 0x19,
+ 0x4f, 0xb8, 0x62, 0xb1, 0x04, 0x31, 0x18, 0x5f, 0x8e, 0xd4, 0x5f, 0x90,
+ 0xa4, 0xa8, 0x29, 0x61, 0x3e, 0xb6, 0xa8, 0x0f,
+};
+static const unsigned char kat3628_entropyinpr2[] = {
+ 0x2c, 0xfe, 0x16, 0x40, 0x01, 0x13, 0xff, 0xa2, 0xee, 0xb7, 0x93, 0x89,
+ 0x05, 0x0a, 0x87, 0xe8, 0xf1, 0x1e, 0x3a, 0x00, 0x16, 0xec, 0xd8, 0x90,
+ 0x2c, 0x69, 0x64, 0x7e, 0x99, 0x29, 0x47, 0x08,
+};
+static const unsigned char kat3628_addinpr2[] = {
+ 0x9f, 0xc4, 0x0b, 0xe6, 0x5c, 0xb5, 0xe8, 0x1c, 0x90, 0xeb, 0x2c, 0x8a,
+ 0x64, 0x0d, 0x1e, 0xe2, 0xb1, 0x80, 0xdd, 0xba, 0x2f, 0x44, 0x8f, 0x5f,
+ 0xd8, 0x55, 0x5e, 0x2d, 0x21, 0x22, 0x41, 0x16,
+};
+static const unsigned char kat3628_retbits[] = {
+ 0x5c, 0x1d, 0x1e, 0x4a, 0xf7, 0x89, 0xfc, 0x9a, 0xd2, 0x80, 0x4a, 0x04,
+ 0xcf, 0xc7, 0x1d, 0xc8, 0xae, 0x9e, 0x7e, 0xda, 0xe0, 0xe4, 0xe1, 0x65,
+ 0xb4, 0x01, 0x8b, 0x11, 0xaf, 0x9a, 0x43, 0xe1, 0x66, 0x6c, 0xe3, 0x9c,
+ 0xe5, 0x7d, 0xa6, 0x00, 0x31, 0x82, 0x64, 0x51, 0xd8, 0x66, 0xdc, 0x52,
+ 0xf5, 0x67, 0x51, 0x9b, 0xe6, 0x05, 0x53, 0x15, 0x00, 0xed, 0x64, 0xec,
+ 0x6f, 0xd5, 0x34, 0xec,
+};
+static const struct drbg_kat_pr_true kat3628_t = {
+ 12, kat3628_entropyin, kat3628_nonce, kat3628_persstr,
+ kat3628_entropyinpr1, kat3628_addinpr1, kat3628_entropyinpr2,
+ kat3628_addinpr2, kat3628_retbits
+};
+static const struct drbg_kat kat3628 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3628_t
+};
+
+static const unsigned char kat3629_entropyin[] = {
+ 0x67, 0x85, 0x33, 0x3b, 0x3f, 0xb9, 0x3b, 0x39, 0xce, 0xff, 0x40, 0x20,
+ 0x1d, 0xf0, 0xc2, 0x71, 0x39, 0xd3, 0x49, 0xcf, 0xdd, 0xa1, 0x33, 0xb9,
+ 0x36, 0xa9, 0x6d, 0x6b, 0x3c, 0x6f, 0x5b, 0xf8,
+};
+static const unsigned char kat3629_nonce[] = {0};
+static const unsigned char kat3629_persstr[] = {0};
+static const unsigned char kat3629_entropyinpr1[] = {
+ 0x14, 0xf0, 0x06, 0x2f, 0x1c, 0x7e, 0x51, 0xb4, 0xbd, 0x92, 0xd0, 0x5d,
+ 0xfd, 0xfe, 0x24, 0x55, 0xad, 0x80, 0x32, 0xcd, 0x2d, 0x4a, 0xc4, 0x2c,
+ 0xd2, 0xe2, 0xc0, 0x99, 0x3f, 0x47, 0xa5, 0x16,
+};
+static const unsigned char kat3629_addinpr1[] = {
+ 0xdd, 0x7d, 0x78, 0x47, 0x65, 0x99, 0x8e, 0xbf, 0x80, 0x8d, 0x11, 0x05,
+ 0xc7, 0x61, 0x9c, 0x96, 0x94, 0xd1, 0x2c, 0x6c, 0x6c, 0xc1, 0xb5, 0xfe,
+ 0x30, 0x9a, 0xa6, 0xf9, 0x16, 0xe7, 0x19, 0x79,
+};
+static const unsigned char kat3629_entropyinpr2[] = {
+ 0x71, 0x9e, 0x01, 0xa2, 0x9c, 0x1d, 0x7e, 0xf2, 0xca, 0x96, 0x07, 0x3f,
+ 0x6c, 0x86, 0xc4, 0xfd, 0xd5, 0x4a, 0xaa, 0x02, 0x75, 0xa0, 0x41, 0x61,
+ 0x67, 0x16, 0xe0, 0xbd, 0xdc, 0x51, 0x98, 0xe7,
+};
+static const unsigned char kat3629_addinpr2[] = {
+ 0xc7, 0x6e, 0x7f, 0x80, 0xd0, 0xa1, 0xf4, 0x1c, 0x59, 0xc2, 0x52, 0xae,
+ 0x63, 0x59, 0xc3, 0x0c, 0x78, 0xb0, 0x5a, 0x9d, 0x49, 0xe8, 0xd5, 0x74,
+ 0x8e, 0x04, 0xe2, 0x4a, 0x61, 0xce, 0x34, 0x52,
+};
+static const unsigned char kat3629_retbits[] = {
+ 0x15, 0xd3, 0x76, 0xec, 0x61, 0xce, 0x62, 0xe0, 0x3e, 0xb5, 0x39, 0x98,
+ 0x25, 0x2c, 0x54, 0x0b, 0x3e, 0xa5, 0xec, 0x93, 0x36, 0x0b, 0xfa, 0x77,
+ 0x5d, 0x2a, 0x11, 0xf8, 0x8f, 0x7e, 0x19, 0xb6, 0x59, 0x02, 0x0b, 0x42,
+ 0xbd, 0xb2, 0x8d, 0xcd, 0xde, 0xb1, 0xfa, 0x0d, 0xf5, 0xcd, 0x9c, 0x30,
+ 0x74, 0xa5, 0x51, 0x06, 0x6f, 0x2c, 0x2c, 0x8c, 0x46, 0xed, 0xe6, 0xa4,
+ 0x97, 0x90, 0x3f, 0xb6,
+};
+static const struct drbg_kat_pr_true kat3629_t = {
+ 13, kat3629_entropyin, kat3629_nonce, kat3629_persstr,
+ kat3629_entropyinpr1, kat3629_addinpr1, kat3629_entropyinpr2,
+ kat3629_addinpr2, kat3629_retbits
+};
+static const struct drbg_kat kat3629 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3629_t
+};
+
+static const unsigned char kat3630_entropyin[] = {
+ 0xda, 0x89, 0xad, 0xc5, 0xf1, 0x44, 0x42, 0x92, 0xc2, 0x6b, 0x3c, 0xc9,
+ 0xd6, 0x1f, 0xfe, 0x7e, 0x6f, 0xa2, 0xfe, 0xae, 0xe0, 0x6b, 0x4f, 0x99,
+ 0xe8, 0x3c, 0x48, 0x0d, 0x02, 0x38, 0x61, 0x94,
+};
+static const unsigned char kat3630_nonce[] = {0};
+static const unsigned char kat3630_persstr[] = {0};
+static const unsigned char kat3630_entropyinpr1[] = {
+ 0x06, 0x18, 0x73, 0xd9, 0x2e, 0x0e, 0x90, 0x8c, 0x30, 0xee, 0x49, 0x6d,
+ 0x62, 0xa7, 0x1e, 0x5a, 0x0b, 0x22, 0x5c, 0xbf, 0x13, 0xb6, 0xa8, 0x50,
+ 0x15, 0x61, 0xb9, 0x0a, 0xad, 0x9e, 0x78, 0x4f,
+};
+static const unsigned char kat3630_addinpr1[] = {
+ 0x8f, 0x7a, 0xde, 0xa4, 0xc9, 0x82, 0x8b, 0x99, 0xe8, 0x00, 0x56, 0xf9,
+ 0x9f, 0x5a, 0xc1, 0xcd, 0xf7, 0xa2, 0xb5, 0x1f, 0x2e, 0x83, 0x1c, 0xc8,
+ 0xc0, 0x9a, 0x3e, 0x35, 0xf2, 0x5d, 0x24, 0xf7,
+};
+static const unsigned char kat3630_entropyinpr2[] = {
+ 0x9a, 0x4d, 0xfa, 0xc9, 0x92, 0x70, 0xa6, 0x7b, 0x45, 0x25, 0x6a, 0x4d,
+ 0xa4, 0xac, 0x0d, 0xf1, 0x56, 0x93, 0xa4, 0xa1, 0x9f, 0xb6, 0x8d, 0x08,
+ 0xc0, 0xa2, 0x06, 0x1a, 0x9e, 0x19, 0x07, 0x49,
+};
+static const unsigned char kat3630_addinpr2[] = {
+ 0xf2, 0x98, 0xb8, 0x78, 0x9d, 0xb7, 0xc5, 0xb8, 0xe0, 0x35, 0x47, 0x64,
+ 0xd0, 0xb3, 0x00, 0x13, 0x45, 0x3c, 0x3c, 0x5c, 0x77, 0xbf, 0xec, 0x04,
+ 0x26, 0x42, 0x03, 0xd7, 0x67, 0x4f, 0x23, 0xc4,
+};
+static const unsigned char kat3630_retbits[] = {
+ 0xa7, 0x74, 0x6e, 0x68, 0x9f, 0xbe, 0x9e, 0xee, 0xd3, 0x4b, 0x0b, 0xa5,
+ 0x24, 0x85, 0x17, 0x42, 0xa5, 0xfe, 0xfe, 0x1f, 0xf5, 0xab, 0x84, 0xc6,
+ 0xb9, 0xa1, 0x18, 0xda, 0x64, 0xa8, 0xad, 0x8f, 0xc9, 0xff, 0x60, 0x1c,
+ 0xcb, 0xe6, 0xa5, 0xb7, 0xe9, 0x0c, 0x5d, 0xa8, 0xcd, 0xc8, 0xd9, 0xfb,
+ 0xa7, 0x41, 0xd2, 0x2a, 0x0a, 0xa1, 0xd8, 0xce, 0x4f, 0xb9, 0xcd, 0x61,
+ 0x48, 0xeb, 0x06, 0xda,
+};
+static const struct drbg_kat_pr_true kat3630_t = {
+ 14, kat3630_entropyin, kat3630_nonce, kat3630_persstr,
+ kat3630_entropyinpr1, kat3630_addinpr1, kat3630_entropyinpr2,
+ kat3630_addinpr2, kat3630_retbits
+};
+static const struct drbg_kat kat3630 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3630_t
+};
+
+static const unsigned char kat3631_entropyin[] = {
+ 0x52, 0x8c, 0xcd, 0x2d, 0x6c, 0x14, 0x38, 0x00, 0xa3, 0x4a, 0xd3, 0x3e,
+ 0x7f, 0x15, 0x3c, 0xfa, 0xce, 0xaa, 0x24, 0x11, 0xab, 0xba, 0xf4, 0xbf,
+ 0xcf, 0xe9, 0x79, 0x68, 0x98, 0xd0, 0xec, 0xe6,
+};
+static const unsigned char kat3631_nonce[] = {0};
+static const unsigned char kat3631_persstr[] = {
+ 0x07, 0xca, 0x7a, 0x00, 0x7b, 0x53, 0xf0, 0x14, 0xd7, 0xf1, 0x04, 0x61,
+ 0xd6, 0xc9, 0x7b, 0x5c, 0x8b, 0x0c, 0x50, 0x2d, 0x34, 0x61, 0xd5, 0x83,
+ 0xf9, 0x9e, 0xfe, 0xc6, 0x9f, 0x12, 0x1c, 0xd2,
+};
+static const unsigned char kat3631_entropyinpr1[] = {
+ 0x47, 0x8f, 0xd1, 0xea, 0xa7, 0xed, 0x29, 0x32, 0x94, 0xd3, 0x70, 0x97,
+ 0x9b, 0x0f, 0x0f, 0x19, 0x48, 0xd5, 0xa3, 0x16, 0x1b, 0x12, 0xee, 0xeb,
+ 0xf2, 0xcf, 0x6b, 0xd1, 0xbf, 0x05, 0x9a, 0xdf,
+};
+static const unsigned char kat3631_addinpr1[] = {0};
+static const unsigned char kat3631_entropyinpr2[] = {
+ 0x03, 0x6b, 0xf1, 0x17, 0x39, 0x77, 0xb3, 0x23, 0xf6, 0x0c, 0x6f, 0x0f,
+ 0x60, 0x3d, 0x9c, 0x50, 0x83, 0x5b, 0x2a, 0xfc, 0xa8, 0x34, 0x7d, 0xfb,
+ 0x24, 0xe8, 0xf6, 0x66, 0x04, 0x44, 0x49, 0x51,
+};
+static const unsigned char kat3631_addinpr2[] = {0};
+static const unsigned char kat3631_retbits[] = {
+ 0xbb, 0xa1, 0xef, 0x50, 0xb4, 0xba, 0xd2, 0x88, 0x89, 0x7f, 0x02, 0xac,
+ 0x27, 0x06, 0xee, 0x1e, 0x01, 0x48, 0x8d, 0xcb, 0xe9, 0xb3, 0xd8, 0xa6,
+ 0x37, 0x92, 0x1f, 0x5e, 0x78, 0x8f, 0xae, 0xd3, 0xb2, 0x3d, 0xb6, 0x3d,
+ 0x59, 0x0c, 0xea, 0xa7, 0x60, 0x7a, 0x21, 0x79, 0x19, 0x2b, 0xea, 0x9a,
+ 0xea, 0xa8, 0x5d, 0x04, 0x8e, 0x7e, 0x10, 0x8f, 0xee, 0x66, 0x6d, 0xc6,
+ 0x46, 0xaf, 0x5f, 0x0e,
+};
+static const struct drbg_kat_pr_true kat3631_t = {
+ 0, kat3631_entropyin, kat3631_nonce, kat3631_persstr,
+ kat3631_entropyinpr1, kat3631_addinpr1, kat3631_entropyinpr2,
+ kat3631_addinpr2, kat3631_retbits
+};
+static const struct drbg_kat kat3631 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3631_t
+};
+
+static const unsigned char kat3632_entropyin[] = {
+ 0x53, 0xe5, 0x78, 0x3f, 0xd2, 0x7c, 0xda, 0x26, 0x41, 0x89, 0xff, 0x0a,
+ 0xa5, 0x51, 0x3d, 0xc5, 0x90, 0x3c, 0x28, 0xe3, 0xe2, 0x60, 0xb7, 0x7b,
+ 0x4b, 0x4a, 0x0b, 0x9b, 0x76, 0xe4, 0xaa, 0x46,
+};
+static const unsigned char kat3632_nonce[] = {0};
+static const unsigned char kat3632_persstr[] = {
+ 0x99, 0xf2, 0xd5, 0x01, 0xdd, 0x18, 0x3f, 0x56, 0x57, 0xd8, 0xb8, 0x06,
+ 0x1b, 0xf4, 0xf0, 0x98, 0x8d, 0xe3, 0xbc, 0x27, 0x19, 0xf4, 0x12, 0x81,
+ 0xcf, 0x08, 0xd9, 0xbc, 0xc9, 0x9f, 0x0d, 0xcb,
+};
+static const unsigned char kat3632_entropyinpr1[] = {
+ 0xe0, 0x4b, 0xad, 0xe7, 0x63, 0x6e, 0x72, 0x39, 0x7f, 0x83, 0x03, 0x43,
+ 0x7c, 0xb2, 0x2b, 0xe5, 0x28, 0x10, 0xda, 0xdd, 0x76, 0x8d, 0x5c, 0xfc,
+ 0x9d, 0x32, 0x69, 0xe7, 0xad, 0x4b, 0xc8, 0xbc,
+};
+static const unsigned char kat3632_addinpr1[] = {0};
+static const unsigned char kat3632_entropyinpr2[] = {
+ 0xe2, 0x0d, 0xab, 0xb9, 0xfc, 0xaf, 0x3a, 0xed, 0x0e, 0xc4, 0x0c, 0x7e,
+ 0xf6, 0x8d, 0x78, 0xf2, 0xbc, 0xb5, 0x67, 0x5d, 0xb2, 0xd6, 0x2e, 0xe4,
+ 0x0d, 0x81, 0x84, 0xb7, 0x04, 0x6f, 0x0e, 0x0e,
+};
+static const unsigned char kat3632_addinpr2[] = {0};
+static const unsigned char kat3632_retbits[] = {
+ 0xb9, 0xec, 0xf5, 0x52, 0x1d, 0x38, 0xf9, 0x21, 0x25, 0x78, 0xf9, 0xdd,
+ 0x32, 0xaf, 0x38, 0x08, 0x9b, 0x45, 0x81, 0x2c, 0xa9, 0x6e, 0x66, 0x1f,
+ 0xc8, 0xe1, 0xbe, 0x0b, 0x2f, 0x4b, 0x54, 0x21, 0x5f, 0x52, 0xc9, 0xc9,
+ 0x3a, 0x6f, 0x76, 0xef, 0xee, 0x45, 0x21, 0xcb, 0x31, 0x63, 0x78, 0x40,
+ 0x31, 0x08, 0xa6, 0xbf, 0x27, 0x24, 0xfd, 0xc9, 0x3b, 0xc4, 0xd2, 0xdb,
+ 0x60, 0xa2, 0xde, 0x83,
+};
+static const struct drbg_kat_pr_true kat3632_t = {
+ 1, kat3632_entropyin, kat3632_nonce, kat3632_persstr,
+ kat3632_entropyinpr1, kat3632_addinpr1, kat3632_entropyinpr2,
+ kat3632_addinpr2, kat3632_retbits
+};
+static const struct drbg_kat kat3632 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3632_t
+};
+
+static const unsigned char kat3633_entropyin[] = {
+ 0xf3, 0xb2, 0x47, 0xd0, 0x40, 0x07, 0x40, 0xd1, 0x8b, 0x79, 0x5e, 0x8e,
+ 0x9c, 0x04, 0xcc, 0x43, 0xeb, 0x13, 0x8c, 0xb9, 0xeb, 0x6c, 0x46, 0x86,
+ 0x20, 0x30, 0x51, 0x7d, 0x8b, 0x36, 0x79, 0xdb,
+};
+static const unsigned char kat3633_nonce[] = {0};
+static const unsigned char kat3633_persstr[] = {
+ 0x61, 0x7d, 0x64, 0x63, 0xea, 0xf3, 0x84, 0x9e, 0x13, 0xb8, 0x9a, 0x7f,
+ 0x98, 0x05, 0xed, 0xff, 0x3e, 0xa1, 0xf0, 0xaa, 0x7a, 0xd7, 0x1e, 0x7d,
+ 0xe7, 0xaf, 0x34, 0x81, 0xbf, 0xeb, 0xa7, 0xf5,
+};
+static const unsigned char kat3633_entropyinpr1[] = {
+ 0x06, 0x03, 0xb4, 0x81, 0xbb, 0x88, 0xd7, 0x7d, 0x6b, 0xac, 0xf0, 0x3a,
+ 0x64, 0xcf, 0x82, 0x24, 0x84, 0x20, 0xa9, 0x5c, 0xca, 0x10, 0xe3, 0xef,
+ 0xc0, 0x12, 0xbd, 0x77, 0x0d, 0xd5, 0x62, 0x1c,
+};
+static const unsigned char kat3633_addinpr1[] = {0};
+static const unsigned char kat3633_entropyinpr2[] = {
+ 0x23, 0x3b, 0x1e, 0x55, 0x0a, 0x0d, 0x12, 0x49, 0xa5, 0xbd, 0x09, 0xcc,
+ 0xb9, 0xa8, 0x8b, 0xe9, 0x11, 0x92, 0x58, 0xfe, 0xad, 0xfc, 0x30, 0x9a,
+ 0x6a, 0xe3, 0xc3, 0x40, 0x91, 0x85, 0x45, 0xb9,
+};
+static const unsigned char kat3633_addinpr2[] = {0};
+static const unsigned char kat3633_retbits[] = {
+ 0xce, 0x4b, 0xec, 0x82, 0x41, 0xdd, 0x1c, 0xe1, 0x2d, 0x7f, 0xa1, 0x8b,
+ 0xd1, 0xa3, 0x18, 0x8b, 0x43, 0x89, 0x23, 0x92, 0xb7, 0xdc, 0xae, 0x72,
+ 0x28, 0xa8, 0x51, 0xaf, 0xef, 0x9c, 0x97, 0x28, 0xc5, 0x87, 0x16, 0x7b,
+ 0x6d, 0xf2, 0x8c, 0x89, 0x5a, 0x67, 0xaf, 0x35, 0xb6, 0xfd, 0x84, 0xad,
+ 0x07, 0x6e, 0xfc, 0xd7, 0x0d, 0x1c, 0x59, 0xc4, 0x9f, 0xa7, 0xc0, 0xf7,
+ 0xed, 0x87, 0xbc, 0x82,
+};
+static const struct drbg_kat_pr_true kat3633_t = {
+ 2, kat3633_entropyin, kat3633_nonce, kat3633_persstr,
+ kat3633_entropyinpr1, kat3633_addinpr1, kat3633_entropyinpr2,
+ kat3633_addinpr2, kat3633_retbits
+};
+static const struct drbg_kat kat3633 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3633_t
+};
+
+static const unsigned char kat3634_entropyin[] = {
+ 0x9d, 0x97, 0xce, 0x84, 0x52, 0x47, 0x4b, 0xc1, 0x9a, 0x4b, 0xe6, 0x4e,
+ 0xfd, 0x43, 0x48, 0x48, 0x74, 0x07, 0x47, 0x79, 0xe0, 0x5a, 0xc2, 0x21,
+ 0xf1, 0x9d, 0xb3, 0x95, 0x5c, 0xe2, 0x9b, 0xc1,
+};
+static const unsigned char kat3634_nonce[] = {0};
+static const unsigned char kat3634_persstr[] = {
+ 0x7f, 0x7d, 0x81, 0xa5, 0xc7, 0x2f, 0x9e, 0x34, 0x98, 0xde, 0x18, 0x33,
+ 0x29, 0xd6, 0xb2, 0x29, 0x17, 0x92, 0xac, 0x8c, 0x81, 0xe6, 0x90, 0x20,
+ 0x03, 0x87, 0x30, 0x5a, 0xba, 0x89, 0x87, 0xc7,
+};
+static const unsigned char kat3634_entropyinpr1[] = {
+ 0x5c, 0x0e, 0xf2, 0x7b, 0x53, 0xeb, 0x79, 0x03, 0xcc, 0x9e, 0x2b, 0xc7,
+ 0x09, 0xf9, 0xe8, 0x85, 0xee, 0xc1, 0x39, 0xec, 0x68, 0x7a, 0x34, 0x44,
+ 0x45, 0x0f, 0x0c, 0xb0, 0x79, 0xca, 0x51, 0x71,
+};
+static const unsigned char kat3634_addinpr1[] = {0};
+static const unsigned char kat3634_entropyinpr2[] = {
+ 0x0e, 0x26, 0xd3, 0xe8, 0xd2, 0xfd, 0x18, 0xfe, 0x0c, 0xe2, 0x53, 0x8c,
+ 0x2e, 0xde, 0x5d, 0x61, 0x57, 0x4c, 0x82, 0x27, 0xb3, 0xf8, 0x2b, 0x33,
+ 0x3a, 0xc4, 0x2d, 0xbd, 0xd7, 0x8b, 0x8e, 0x19,
+};
+static const unsigned char kat3634_addinpr2[] = {0};
+static const unsigned char kat3634_retbits[] = {
+ 0x94, 0x00, 0x1b, 0x01, 0x18, 0x30, 0xbc, 0x6a, 0x91, 0x1f, 0xa2, 0x3b,
+ 0xc1, 0xfd, 0x0d, 0xac, 0x8c, 0x0a, 0xcd, 0x0e, 0x85, 0x6a, 0xb4, 0x49,
+ 0x7a, 0xd0, 0x72, 0xe5, 0x4f, 0xe3, 0xb4, 0x7b, 0xc0, 0x68, 0x90, 0xe7,
+ 0xe7, 0xba, 0xbd, 0x49, 0x12, 0xaf, 0x1e, 0x7d, 0xa9, 0x6e, 0x90, 0x52,
+ 0x3b, 0x75, 0xdd, 0x86, 0xd9, 0xa4, 0xba, 0x4d, 0x88, 0x10, 0x7d, 0xe6,
+ 0x07, 0xe5, 0x25, 0x34,
+};
+static const struct drbg_kat_pr_true kat3634_t = {
+ 3, kat3634_entropyin, kat3634_nonce, kat3634_persstr,
+ kat3634_entropyinpr1, kat3634_addinpr1, kat3634_entropyinpr2,
+ kat3634_addinpr2, kat3634_retbits
+};
+static const struct drbg_kat kat3634 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3634_t
+};
+
+static const unsigned char kat3635_entropyin[] = {
+ 0x12, 0xf6, 0x8f, 0x04, 0x92, 0x16, 0xe3, 0x98, 0x78, 0x60, 0x65, 0x1f,
+ 0x6f, 0xd1, 0x3e, 0xfe, 0xf1, 0x84, 0xfc, 0x8f, 0xe0, 0x5c, 0xac, 0x45,
+ 0x9e, 0xb3, 0xcf, 0x97, 0xdd, 0x95, 0x7e, 0x6c,
+};
+static const unsigned char kat3635_nonce[] = {0};
+static const unsigned char kat3635_persstr[] = {
+ 0x0c, 0x70, 0xa2, 0x0b, 0x69, 0x0b, 0xf5, 0xd5, 0x86, 0xb2, 0x84, 0xaa,
+ 0x75, 0x2e, 0xc7, 0x30, 0x55, 0xe0, 0x39, 0x23, 0x30, 0x89, 0xa3, 0x0e,
+ 0xfd, 0xd6, 0x21, 0x8a, 0x1e, 0x49, 0xf5, 0x48,
+};
+static const unsigned char kat3635_entropyinpr1[] = {
+ 0xcc, 0xfa, 0xbc, 0x0f, 0x84, 0x78, 0x01, 0xb3, 0x42, 0x77, 0x4c, 0xe5,
+ 0x0d, 0x80, 0xc6, 0x00, 0xaf, 0x2d, 0x1f, 0x20, 0x16, 0xe1, 0xae, 0xa4,
+ 0x12, 0xfc, 0x4c, 0x60, 0xb2, 0xa0, 0x41, 0xb1,
+};
+static const unsigned char kat3635_addinpr1[] = {0};
+static const unsigned char kat3635_entropyinpr2[] = {
+ 0x07, 0xe1, 0x92, 0xe5, 0x76, 0xbb, 0x03, 0x1b, 0xb8, 0xba, 0xa6, 0x0b,
+ 0x93, 0x74, 0xdc, 0xc1, 0xc4, 0x0c, 0xb4, 0x3a, 0xb4, 0x20, 0x35, 0x71,
+ 0x95, 0x88, 0xe2, 0xaf, 0xd7, 0x5f, 0xc8, 0xf0,
+};
+static const unsigned char kat3635_addinpr2[] = {0};
+static const unsigned char kat3635_retbits[] = {
+ 0xd0, 0x61, 0x99, 0x96, 0xc8, 0x84, 0x23, 0xa7, 0x40, 0xf0, 0x4d, 0xfd,
+ 0xad, 0x3b, 0xfc, 0x13, 0x1b, 0xf3, 0x60, 0x1f, 0xc4, 0x30, 0x22, 0xe8,
+ 0x99, 0x57, 0xbf, 0x8b, 0x9a, 0x1a, 0xd8, 0x70, 0x2b, 0xc8, 0xfb, 0xb2,
+ 0x00, 0x4e, 0x7a, 0xb0, 0x25, 0x50, 0x77, 0x78, 0x18, 0xe1, 0x1f, 0x03,
+ 0xfa, 0xb4, 0x84, 0x58, 0x42, 0x4a, 0xe5, 0xc8, 0xcc, 0x8c, 0xb7, 0x34,
+ 0x36, 0x65, 0x72, 0x92,
+};
+static const struct drbg_kat_pr_true kat3635_t = {
+ 4, kat3635_entropyin, kat3635_nonce, kat3635_persstr,
+ kat3635_entropyinpr1, kat3635_addinpr1, kat3635_entropyinpr2,
+ kat3635_addinpr2, kat3635_retbits
+};
+static const struct drbg_kat kat3635 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3635_t
+};
+
+static const unsigned char kat3636_entropyin[] = {
+ 0x61, 0x29, 0xa1, 0x63, 0xef, 0xde, 0x5f, 0x14, 0x06, 0x7e, 0x07, 0x5c,
+ 0x47, 0x90, 0x02, 0x96, 0x52, 0xa5, 0x6e, 0xed, 0xf8, 0xea, 0x48, 0x77,
+ 0xa0, 0xff, 0xce, 0xdd, 0x32, 0x86, 0x61, 0x66,
+};
+static const unsigned char kat3636_nonce[] = {0};
+static const unsigned char kat3636_persstr[] = {
+ 0x1f, 0xe2, 0xb0, 0xce, 0x3a, 0x18, 0x96, 0x01, 0x7e, 0x30, 0x75, 0x30,
+ 0x64, 0xe1, 0xc0, 0xe1, 0x34, 0x1b, 0x67, 0x35, 0x69, 0xc7, 0x39, 0xa1,
+ 0x99, 0xcd, 0x21, 0x8f, 0xe6, 0x46, 0x65, 0xd0,
+};
+static const unsigned char kat3636_entropyinpr1[] = {
+ 0x35, 0x6a, 0xde, 0x73, 0xb8, 0xff, 0xb3, 0x84, 0x08, 0xbe, 0x05, 0x37,
+ 0xca, 0x53, 0x9b, 0x63, 0x3d, 0x0a, 0xff, 0xfc, 0xf2, 0x96, 0x2b, 0x71,
+ 0x7a, 0xc3, 0x7e, 0xb2, 0xa0, 0x6d, 0xdf, 0x50,
+};
+static const unsigned char kat3636_addinpr1[] = {0};
+static const unsigned char kat3636_entropyinpr2[] = {
+ 0x0b, 0x85, 0x7f, 0xe1, 0x37, 0xca, 0xb1, 0x49, 0xe9, 0x19, 0x50, 0x19,
+ 0x73, 0x2a, 0x71, 0x4e, 0x25, 0xe6, 0x2c, 0x94, 0x6e, 0xba, 0x58, 0xdd,
+ 0x2f, 0xa8, 0xe6, 0xc7, 0x97, 0x17, 0x2b, 0xcb,
+};
+static const unsigned char kat3636_addinpr2[] = {0};
+static const unsigned char kat3636_retbits[] = {
+ 0xa2, 0x61, 0x3d, 0xdb, 0x75, 0x10, 0x7e, 0xf3, 0xfe, 0x9f, 0xc3, 0x92,
+ 0x06, 0x1a, 0x52, 0xea, 0x23, 0x04, 0xaf, 0x7a, 0xed, 0x6d, 0xed, 0xec,
+ 0x3a, 0xee, 0x62, 0x6e, 0x1a, 0xb2, 0xbf, 0x98, 0x9c, 0xe7, 0xd6, 0x48,
+ 0x45, 0x55, 0x94, 0x1e, 0x9a, 0x40, 0x13, 0x03, 0x6c, 0x46, 0x05, 0xc5,
+ 0x64, 0xf1, 0x7d, 0x4d, 0x13, 0x69, 0xe1, 0xe1, 0x2d, 0x28, 0xb8, 0x77,
+ 0xd2, 0x12, 0x5d, 0x99,
+};
+static const struct drbg_kat_pr_true kat3636_t = {
+ 5, kat3636_entropyin, kat3636_nonce, kat3636_persstr,
+ kat3636_entropyinpr1, kat3636_addinpr1, kat3636_entropyinpr2,
+ kat3636_addinpr2, kat3636_retbits
+};
+static const struct drbg_kat kat3636 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3636_t
+};
+
+static const unsigned char kat3637_entropyin[] = {
+ 0x31, 0x0d, 0x2e, 0x7b, 0x24, 0x9c, 0xa8, 0xfd, 0xf1, 0xd4, 0xb1, 0x56,
+ 0x12, 0xf6, 0xe1, 0xf5, 0x42, 0x82, 0x41, 0xc7, 0xad, 0x77, 0x72, 0x81,
+ 0x17, 0x1f, 0xdc, 0xec, 0xf7, 0xf5, 0xed, 0x44,
+};
+static const unsigned char kat3637_nonce[] = {0};
+static const unsigned char kat3637_persstr[] = {
+ 0x27, 0x03, 0xe1, 0xdc, 0xa9, 0x92, 0x69, 0x95, 0x70, 0x52, 0x29, 0xcc,
+ 0x8a, 0x8c, 0x9d, 0x95, 0x8b, 0xcd, 0xbf, 0xd5, 0xf3, 0xe0, 0x9e, 0xeb,
+ 0x34, 0x9b, 0x51, 0x35, 0x68, 0x6a, 0xee, 0xd1,
+};
+static const unsigned char kat3637_entropyinpr1[] = {
+ 0x24, 0x1e, 0x8f, 0xe2, 0xd6, 0xde, 0x5e, 0xfb, 0x65, 0x09, 0x14, 0x4c,
+ 0x8d, 0xba, 0x00, 0xa5, 0x82, 0xd1, 0xae, 0xbf, 0xab, 0xd3, 0x06, 0x05,
+ 0x27, 0x47, 0xfc, 0x31, 0x1d, 0x7c, 0x5a, 0x56,
+};
+static const unsigned char kat3637_addinpr1[] = {0};
+static const unsigned char kat3637_entropyinpr2[] = {
+ 0xa2, 0xc1, 0x00, 0xda, 0x70, 0xd8, 0x65, 0x9d, 0x94, 0xa4, 0xd6, 0xa0,
+ 0xf1, 0x05, 0x94, 0xc8, 0x41, 0x2c, 0x97, 0x71, 0x68, 0xdf, 0x24, 0x2a,
+ 0x35, 0xd5, 0xc2, 0x60, 0x0a, 0x47, 0x08, 0x4b,
+};
+static const unsigned char kat3637_addinpr2[] = {0};
+static const unsigned char kat3637_retbits[] = {
+ 0x48, 0x46, 0x05, 0x43, 0xd0, 0x8b, 0x33, 0x31, 0xf0, 0xc7, 0xbc, 0xf7,
+ 0x86, 0xbe, 0x06, 0xa2, 0x76, 0xef, 0xc7, 0x57, 0xbe, 0xdc, 0xe0, 0xf4,
+ 0x28, 0x32, 0x3d, 0x54, 0x20, 0x69, 0x31, 0xf1, 0x8c, 0x3c, 0x7c, 0x60,
+ 0x6c, 0x0f, 0xf8, 0xe6, 0x73, 0xf3, 0xd1, 0x36, 0x7c, 0x7d, 0x50, 0xdb,
+ 0x2e, 0xd0, 0x02, 0x12, 0x0f, 0xf0, 0x56, 0x23, 0xd2, 0xde, 0xdd, 0xd0,
+ 0x37, 0xc1, 0x25, 0xa4,
+};
+static const struct drbg_kat_pr_true kat3637_t = {
+ 6, kat3637_entropyin, kat3637_nonce, kat3637_persstr,
+ kat3637_entropyinpr1, kat3637_addinpr1, kat3637_entropyinpr2,
+ kat3637_addinpr2, kat3637_retbits
+};
+static const struct drbg_kat kat3637 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3637_t
+};
+
+static const unsigned char kat3638_entropyin[] = {
+ 0xf5, 0x77, 0x1e, 0xea, 0xcd, 0xde, 0xf0, 0xc6, 0xcb, 0xfa, 0xc5, 0xac,
+ 0x42, 0x85, 0x20, 0x5f, 0x11, 0x0f, 0xd6, 0xa8, 0x17, 0x4a, 0xd4, 0x57,
+ 0x48, 0xa8, 0x63, 0x3a, 0x28, 0xc8, 0x5e, 0xc2,
+};
+static const unsigned char kat3638_nonce[] = {0};
+static const unsigned char kat3638_persstr[] = {
+ 0x9c, 0xa4, 0xb8, 0xe6, 0xcd, 0xec, 0x1e, 0xcd, 0x95, 0x46, 0x50, 0x85,
+ 0x42, 0xc8, 0x49, 0x36, 0xff, 0x2a, 0xa1, 0xa4, 0xda, 0xb9, 0x69, 0x61,
+ 0x31, 0x39, 0xc0, 0x1e, 0x35, 0xf3, 0x6d, 0x71,
+};
+static const unsigned char kat3638_entropyinpr1[] = {
+ 0x06, 0x21, 0xba, 0xbc, 0x5c, 0x0e, 0xa5, 0x27, 0xca, 0x7c, 0x8d, 0x42,
+ 0x33, 0x8e, 0x16, 0xb6, 0x11, 0x3b, 0x38, 0x7b, 0xa8, 0x88, 0xa6, 0xc1,
+ 0x27, 0x79, 0xcc, 0x12, 0x75, 0x61, 0xa1, 0x48,
+};
+static const unsigned char kat3638_addinpr1[] = {0};
+static const unsigned char kat3638_entropyinpr2[] = {
+ 0x67, 0x2d, 0xf1, 0xd5, 0x85, 0x10, 0xc0, 0x16, 0x91, 0x3f, 0xc6, 0xc4,
+ 0x27, 0x71, 0x27, 0x3f, 0x7c, 0xba, 0xee, 0xf1, 0x99, 0x3d, 0xba, 0xbc,
+ 0xd6, 0xcc, 0xa2, 0x67, 0x58, 0xbd, 0xb7, 0xdf,
+};
+static const unsigned char kat3638_addinpr2[] = {0};
+static const unsigned char kat3638_retbits[] = {
+ 0x03, 0x7a, 0x03, 0x05, 0x53, 0x2b, 0x6b, 0xd2, 0xa5, 0x10, 0x57, 0x96,
+ 0x2f, 0x23, 0xdb, 0xfd, 0x46, 0x60, 0xbe, 0x8e, 0x5b, 0x7a, 0x44, 0x8b,
+ 0x11, 0x68, 0xbe, 0x3b, 0xf8, 0x59, 0x8a, 0x30, 0x1f, 0xb5, 0x17, 0xa4,
+ 0x71, 0x4b, 0x78, 0x26, 0x16, 0x2f, 0xc0, 0xfc, 0xda, 0xe0, 0x88, 0x00,
+ 0xe9, 0x67, 0xf6, 0x38, 0xff, 0x1a, 0xd1, 0xda, 0x39, 0x28, 0x2d, 0x34,
+ 0x54, 0xd9, 0x30, 0x75,
+};
+static const struct drbg_kat_pr_true kat3638_t = {
+ 7, kat3638_entropyin, kat3638_nonce, kat3638_persstr,
+ kat3638_entropyinpr1, kat3638_addinpr1, kat3638_entropyinpr2,
+ kat3638_addinpr2, kat3638_retbits
+};
+static const struct drbg_kat kat3638 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3638_t
+};
+
+static const unsigned char kat3639_entropyin[] = {
+ 0x7a, 0x93, 0x65, 0xeb, 0xb4, 0x8f, 0xdd, 0x83, 0x80, 0x91, 0x67, 0xcb,
+ 0x2b, 0xfe, 0xbc, 0x37, 0xb6, 0x9b, 0x34, 0x59, 0x5b, 0x2f, 0x8d, 0x81,
+ 0xcf, 0xf2, 0x92, 0x4a, 0x70, 0xe3, 0x00, 0xd5,
+};
+static const unsigned char kat3639_nonce[] = {0};
+static const unsigned char kat3639_persstr[] = {
+ 0x0f, 0x53, 0x39, 0x37, 0x85, 0x7d, 0xc9, 0xf9, 0x7f, 0xef, 0xa1, 0x42,
+ 0xc9, 0x54, 0x45, 0xb4, 0x84, 0xe1, 0xf2, 0x59, 0xa4, 0x88, 0xe9, 0xfa,
+ 0x38, 0xa4, 0x6e, 0x49, 0xd6, 0x93, 0xc4, 0xb6,
+};
+static const unsigned char kat3639_entropyinpr1[] = {
+ 0x95, 0x4e, 0x64, 0xb6, 0xf4, 0xf1, 0xd7, 0xe0, 0x13, 0x5e, 0xb2, 0xa9,
+ 0x17, 0x46, 0x12, 0xd2, 0x31, 0x11, 0x32, 0x9c, 0x00, 0xbd, 0xed, 0x4c,
+ 0xec, 0xf6, 0xb2, 0xb2, 0xfd, 0xfa, 0xd1, 0x45,
+};
+static const unsigned char kat3639_addinpr1[] = {0};
+static const unsigned char kat3639_entropyinpr2[] = {
+ 0xe6, 0x49, 0x57, 0x28, 0xcb, 0x28, 0xb8, 0xf6, 0x4b, 0x20, 0x8a, 0xfa,
+ 0x9e, 0x10, 0x12, 0xf0, 0x61, 0xc7, 0x90, 0xd2, 0x85, 0x66, 0x3f, 0x5c,
+ 0xf0, 0x76, 0x0c, 0x9f, 0x7c, 0x4b, 0xd3, 0x2f,
+};
+static const unsigned char kat3639_addinpr2[] = {0};
+static const unsigned char kat3639_retbits[] = {
+ 0x03, 0x5c, 0x19, 0x39, 0x6d, 0x60, 0x3b, 0x52, 0x22, 0x2c, 0x16, 0xaf,
+ 0x6c, 0x6b, 0xc1, 0xc0, 0x7a, 0x1a, 0x51, 0x8f, 0x57, 0x8b, 0x59, 0x94,
+ 0x3f, 0xfa, 0xd7, 0x3c, 0xa1, 0x49, 0x48, 0xb7, 0xa8, 0xdd, 0xe1, 0x17,
+ 0xe5, 0xc5, 0x71, 0x50, 0x6d, 0x57, 0xfd, 0x08, 0xe3, 0xa0, 0x67, 0xa2,
+ 0xae, 0x3b, 0xde, 0x22, 0x40, 0xc2, 0x39, 0x9f, 0x16, 0x0c, 0x5c, 0xc5,
+ 0xa2, 0xf5, 0xd5, 0x82,
+};
+static const struct drbg_kat_pr_true kat3639_t = {
+ 8, kat3639_entropyin, kat3639_nonce, kat3639_persstr,
+ kat3639_entropyinpr1, kat3639_addinpr1, kat3639_entropyinpr2,
+ kat3639_addinpr2, kat3639_retbits
+};
+static const struct drbg_kat kat3639 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3639_t
+};
+
+static const unsigned char kat3640_entropyin[] = {
+ 0xbd, 0x10, 0xe4, 0xb2, 0x82, 0xc9, 0x8b, 0x6c, 0x2e, 0x04, 0x51, 0x27,
+ 0x2a, 0x33, 0x2c, 0x24, 0xf5, 0x4a, 0x2a, 0x45, 0x24, 0x4e, 0x98, 0x89,
+ 0x42, 0x0a, 0x48, 0x78, 0x6f, 0x66, 0x2a, 0xed,
+};
+static const unsigned char kat3640_nonce[] = {0};
+static const unsigned char kat3640_persstr[] = {
+ 0x95, 0x04, 0x72, 0xba, 0x4b, 0x3b, 0x69, 0x79, 0xba, 0x4d, 0x2a, 0x1a,
+ 0xd5, 0x1d, 0xb7, 0x73, 0x2e, 0xb3, 0x33, 0x7b, 0x28, 0x27, 0x0f, 0xdb,
+ 0x7f, 0x99, 0x01, 0x81, 0x44, 0x73, 0x4f, 0x72,
+};
+static const unsigned char kat3640_entropyinpr1[] = {
+ 0x5a, 0x1c, 0xf5, 0xb5, 0x21, 0x2a, 0xe2, 0xa7, 0x76, 0xae, 0x4f, 0x68,
+ 0x8e, 0xa9, 0xe6, 0x12, 0x4f, 0x62, 0x4c, 0x81, 0x7b, 0x5e, 0x42, 0x9b,
+ 0x8c, 0xc2, 0xad, 0x73, 0x0c, 0xf2, 0x9f, 0x6e,
+};
+static const unsigned char kat3640_addinpr1[] = {0};
+static const unsigned char kat3640_entropyinpr2[] = {
+ 0xfc, 0xca, 0x99, 0x6b, 0xf0, 0x11, 0xba, 0x13, 0x9b, 0x7b, 0xd0, 0x5e,
+ 0x31, 0xc5, 0x94, 0xd4, 0x59, 0x68, 0x5a, 0xa1, 0x43, 0xe0, 0xee, 0x46,
+ 0xd6, 0xdb, 0x0b, 0xa8, 0x58, 0x2a, 0x6f, 0xd6,
+};
+static const unsigned char kat3640_addinpr2[] = {0};
+static const unsigned char kat3640_retbits[] = {
+ 0xe1, 0x76, 0x74, 0x17, 0x23, 0x97, 0x36, 0x90, 0x25, 0xd6, 0xb7, 0x81,
+ 0x1b, 0x69, 0xb6, 0xe6, 0x2d, 0xfb, 0x8a, 0xb9, 0x48, 0x52, 0xcc, 0x96,
+ 0xbd, 0xe1, 0x37, 0x1f, 0xce, 0xdb, 0xe5, 0xfe, 0x31, 0xa1, 0x15, 0x89,
+ 0xf4, 0xe5, 0x71, 0x83, 0xfb, 0x46, 0x88, 0x3d, 0x93, 0xc6, 0x47, 0xe3,
+ 0x6f, 0x70, 0xf8, 0xd5, 0xa5, 0x36, 0xf8, 0xfb, 0x0d, 0x42, 0x8d, 0xcf,
+ 0xd7, 0x72, 0x2e, 0x4e,
+};
+static const struct drbg_kat_pr_true kat3640_t = {
+ 9, kat3640_entropyin, kat3640_nonce, kat3640_persstr,
+ kat3640_entropyinpr1, kat3640_addinpr1, kat3640_entropyinpr2,
+ kat3640_addinpr2, kat3640_retbits
+};
+static const struct drbg_kat kat3640 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3640_t
+};
+
+static const unsigned char kat3641_entropyin[] = {
+ 0x90, 0x09, 0xb2, 0xd3, 0xb9, 0xef, 0x7f, 0xd1, 0xe9, 0x25, 0xd7, 0x5d,
+ 0x6a, 0xd0, 0x7d, 0x42, 0xe1, 0x65, 0x31, 0x01, 0x53, 0xed, 0x1e, 0xf9,
+ 0xe1, 0x28, 0x48, 0x94, 0xe0, 0xd1, 0x65, 0x75,
+};
+static const unsigned char kat3641_nonce[] = {0};
+static const unsigned char kat3641_persstr[] = {
+ 0x06, 0xbd, 0x36, 0x97, 0x7e, 0x09, 0xcc, 0x13, 0xd7, 0xc9, 0xed, 0xc9,
+ 0xa2, 0x85, 0x04, 0x3f, 0x7c, 0x00, 0x57, 0x56, 0x10, 0xe9, 0xb9, 0x5f,
+ 0xd3, 0x75, 0x4a, 0x4b, 0x7c, 0x56, 0x1f, 0xb7,
+};
+static const unsigned char kat3641_entropyinpr1[] = {
+ 0x13, 0xf8, 0x64, 0x1a, 0x1d, 0x9c, 0xd5, 0x09, 0x66, 0xb4, 0xff, 0xf6,
+ 0xf2, 0xa5, 0xa9, 0xf6, 0x7a, 0xef, 0xa8, 0xd7, 0xb5, 0xcb, 0x52, 0x7d,
+ 0x3b, 0x73, 0x33, 0x8a, 0xea, 0x77, 0x3e, 0xe1,
+};
+static const unsigned char kat3641_addinpr1[] = {0};
+static const unsigned char kat3641_entropyinpr2[] = {
+ 0x46, 0x45, 0xaa, 0x5e, 0xbb, 0x41, 0xf2, 0x73, 0x80, 0x32, 0x81, 0x61,
+ 0x86, 0x4c, 0xca, 0x36, 0x05, 0x5c, 0x87, 0x13, 0x56, 0x31, 0x6b, 0xf3,
+ 0x77, 0x3d, 0x35, 0x68, 0x7f, 0xe7, 0x28, 0x74,
+};
+static const unsigned char kat3641_addinpr2[] = {0};
+static const unsigned char kat3641_retbits[] = {
+ 0xcb, 0xed, 0xcc, 0xaa, 0x88, 0xb2, 0x2e, 0x39, 0xfb, 0x0e, 0x14, 0xbf,
+ 0x15, 0xdc, 0x05, 0xe4, 0xe1, 0xb7, 0x00, 0x2f, 0xa0, 0xcf, 0xfe, 0x78,
+ 0x03, 0xe3, 0xf6, 0xbc, 0xf6, 0xa0, 0x3f, 0x3f, 0xaa, 0x51, 0xce, 0x5b,
+ 0x3c, 0xcb, 0x0d, 0x34, 0x15, 0x33, 0xd3, 0x35, 0xe2, 0x0f, 0x9f, 0x71,
+ 0xe9, 0x0f, 0x83, 0xfe, 0xf0, 0x6e, 0xcf, 0xe9, 0x3e, 0xd0, 0x56, 0xf5,
+ 0xd6, 0x85, 0x13, 0x06,
+};
+static const struct drbg_kat_pr_true kat3641_t = {
+ 10, kat3641_entropyin, kat3641_nonce, kat3641_persstr,
+ kat3641_entropyinpr1, kat3641_addinpr1, kat3641_entropyinpr2,
+ kat3641_addinpr2, kat3641_retbits
+};
+static const struct drbg_kat kat3641 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3641_t
+};
+
+static const unsigned char kat3642_entropyin[] = {
+ 0x87, 0xe5, 0x8c, 0x3c, 0x91, 0xae, 0x09, 0x35, 0xb7, 0x93, 0x5d, 0x2d,
+ 0x0a, 0x85, 0x5e, 0x79, 0x53, 0x27, 0x06, 0x22, 0x38, 0x18, 0x0f, 0x20,
+ 0xb0, 0x2f, 0x9c, 0x9c, 0x86, 0x1c, 0xbc, 0x33,
+};
+static const unsigned char kat3642_nonce[] = {0};
+static const unsigned char kat3642_persstr[] = {
+ 0x6d, 0xac, 0xec, 0x09, 0xcc, 0x40, 0x7d, 0xdf, 0x54, 0x5c, 0x4d, 0x54,
+ 0xc7, 0x7e, 0xfd, 0x71, 0x2f, 0x65, 0xbe, 0x8b, 0xa5, 0xec, 0xbc, 0x9f,
+ 0xa6, 0xbd, 0xf2, 0x92, 0x43, 0xee, 0xd7, 0x2e,
+};
+static const unsigned char kat3642_entropyinpr1[] = {
+ 0x28, 0xc5, 0x69, 0x1d, 0x0c, 0x0f, 0xf0, 0xd8, 0x34, 0xcb, 0x0c, 0x85,
+ 0xa8, 0x2f, 0xe5, 0x61, 0xf4, 0x08, 0x03, 0xf6, 0x3b, 0xeb, 0x3e, 0x74,
+ 0x02, 0x15, 0xe5, 0xd5, 0x08, 0x9f, 0xc5, 0x54,
+};
+static const unsigned char kat3642_addinpr1[] = {0};
+static const unsigned char kat3642_entropyinpr2[] = {
+ 0xfd, 0x22, 0x32, 0x43, 0x69, 0xfd, 0x30, 0xe2, 0xf4, 0x75, 0x53, 0xc0,
+ 0x12, 0xce, 0x2c, 0x46, 0xfd, 0x40, 0xdf, 0x5f, 0xcd, 0xd7, 0x37, 0xbf,
+ 0x26, 0x6c, 0xd2, 0x0b, 0xcd, 0xc2, 0x0a, 0x98,
+};
+static const unsigned char kat3642_addinpr2[] = {0};
+static const unsigned char kat3642_retbits[] = {
+ 0x11, 0x6b, 0xd7, 0xab, 0x40, 0x30, 0x37, 0x9c, 0xd6, 0xf5, 0x0e, 0x85,
+ 0xa0, 0x41, 0x82, 0x77, 0x52, 0x92, 0xfa, 0x96, 0x19, 0xc3, 0x8b, 0x74,
+ 0x18, 0xa1, 0x9b, 0x8e, 0x78, 0x55, 0xf2, 0x9e, 0xff, 0xfd, 0xf7, 0xa2,
+ 0xb8, 0xb1, 0xd9, 0xd3, 0xd9, 0x6e, 0xa8, 0x5a, 0x6d, 0x56, 0x30, 0x20,
+ 0x14, 0xdd, 0x3b, 0xcb, 0xe4, 0x01, 0xad, 0xa5, 0xb0, 0xe3, 0xcf, 0x2f,
+ 0x66, 0xdc, 0xe9, 0xcd,
+};
+static const struct drbg_kat_pr_true kat3642_t = {
+ 11, kat3642_entropyin, kat3642_nonce, kat3642_persstr,
+ kat3642_entropyinpr1, kat3642_addinpr1, kat3642_entropyinpr2,
+ kat3642_addinpr2, kat3642_retbits
+};
+static const struct drbg_kat kat3642 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3642_t
+};
+
+static const unsigned char kat3643_entropyin[] = {
+ 0xf3, 0x29, 0x1f, 0x1d, 0x5f, 0xa4, 0x7a, 0xbf, 0x19, 0x18, 0x41, 0x6a,
+ 0x2c, 0xb7, 0x8b, 0x24, 0x3e, 0x61, 0x4f, 0x88, 0x3b, 0xda, 0x2a, 0xfc,
+ 0x10, 0xff, 0xc1, 0xcc, 0x7f, 0x7f, 0x06, 0xa8,
+};
+static const unsigned char kat3643_nonce[] = {0};
+static const unsigned char kat3643_persstr[] = {
+ 0x85, 0xfa, 0xcc, 0x57, 0x1d, 0x2c, 0x6e, 0xb2, 0x57, 0x43, 0x7e, 0x1d,
+ 0x3b, 0x77, 0xb5, 0xfb, 0xa4, 0xa1, 0x25, 0x60, 0x64, 0x40, 0x18, 0x1b,
+ 0x83, 0x87, 0xf9, 0xa4, 0xfb, 0x1a, 0x7f, 0xbf,
+};
+static const unsigned char kat3643_entropyinpr1[] = {
+ 0xc9, 0xcb, 0xe9, 0xf4, 0x1e, 0x2d, 0x81, 0xf9, 0x9c, 0xa6, 0x32, 0x7c,
+ 0xa6, 0x17, 0xca, 0xf8, 0x36, 0xb7, 0x35, 0x12, 0xd9, 0x6b, 0x1e, 0xdc,
+ 0x5a, 0xe5, 0xed, 0x56, 0xc0, 0x56, 0xca, 0xde,
+};
+static const unsigned char kat3643_addinpr1[] = {0};
+static const unsigned char kat3643_entropyinpr2[] = {
+ 0x47, 0xeb, 0xfc, 0x44, 0x37, 0xf7, 0x69, 0xac, 0x29, 0x9f, 0x0d, 0x87,
+ 0x06, 0x9e, 0x5d, 0x60, 0x74, 0x42, 0x01, 0x13, 0x76, 0x1a, 0x9f, 0x9e,
+ 0x05, 0x38, 0x66, 0x58, 0x1e, 0x83, 0x67, 0x01,
+};
+static const unsigned char kat3643_addinpr2[] = {0};
+static const unsigned char kat3643_retbits[] = {
+ 0x51, 0xe0, 0xb5, 0x4c, 0x10, 0x98, 0x84, 0xba, 0xec, 0xd1, 0x88, 0x4f,
+ 0x7b, 0xaf, 0xc8, 0x46, 0xac, 0xe2, 0x16, 0xb6, 0xfd, 0x97, 0xeb, 0x1c,
+ 0xa7, 0x0b, 0x56, 0x3e, 0x62, 0xc4, 0xa2, 0xf2, 0x2b, 0x55, 0x56, 0x11,
+ 0x52, 0xf3, 0x79, 0x32, 0x6e, 0xf2, 0x99, 0x9e, 0x97, 0x46, 0xf2, 0x50,
+ 0x43, 0xa0, 0x24, 0x02, 0xd3, 0xe4, 0x7b, 0x4a, 0x58, 0xe7, 0x47, 0xc2,
+ 0x22, 0xb7, 0xa0, 0x81,
+};
+static const struct drbg_kat_pr_true kat3643_t = {
+ 12, kat3643_entropyin, kat3643_nonce, kat3643_persstr,
+ kat3643_entropyinpr1, kat3643_addinpr1, kat3643_entropyinpr2,
+ kat3643_addinpr2, kat3643_retbits
+};
+static const struct drbg_kat kat3643 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3643_t
+};
+
+static const unsigned char kat3644_entropyin[] = {
+ 0xbc, 0xb5, 0x1b, 0xc0, 0xdf, 0xae, 0x0f, 0xb0, 0x4b, 0xf0, 0x8f, 0xac,
+ 0xe7, 0x36, 0x99, 0x81, 0xd9, 0xa7, 0x8b, 0xbc, 0xc0, 0xd3, 0xda, 0x2a,
+ 0x14, 0x42, 0xd8, 0xfe, 0xf7, 0x56, 0xc1, 0xc0,
+};
+static const unsigned char kat3644_nonce[] = {0};
+static const unsigned char kat3644_persstr[] = {
+ 0x2c, 0x4e, 0x73, 0xad, 0x25, 0x97, 0xb0, 0x27, 0xdd, 0x04, 0xc6, 0x05,
+ 0x6d, 0xb1, 0x18, 0x9b, 0x7a, 0x0d, 0x8e, 0x9f, 0xec, 0xe5, 0x22, 0x37,
+ 0xcb, 0x7f, 0xc2, 0x51, 0x15, 0x09, 0xc4, 0xeb,
+};
+static const unsigned char kat3644_entropyinpr1[] = {
+ 0xb7, 0x4a, 0x39, 0x2b, 0xe0, 0x91, 0xfe, 0x00, 0xeb, 0x6a, 0x65, 0x76,
+ 0xf0, 0x27, 0x07, 0x3a, 0x83, 0x83, 0x08, 0xf5, 0xa5, 0xae, 0xd7, 0xfd,
+ 0x0d, 0xb4, 0x7d, 0x66, 0x16, 0xcb, 0xec, 0x98,
+};
+static const unsigned char kat3644_addinpr1[] = {0};
+static const unsigned char kat3644_entropyinpr2[] = {
+ 0xd3, 0x9a, 0x30, 0x7b, 0x95, 0x6d, 0x11, 0x83, 0xf7, 0x18, 0xbe, 0x7d,
+ 0x91, 0xa1, 0x18, 0x91, 0xdc, 0x3f, 0xee, 0x45, 0x65, 0x2e, 0xdb, 0x89,
+ 0x44, 0x9d, 0x97, 0x66, 0xfc, 0x85, 0xbb, 0x32,
+};
+static const unsigned char kat3644_addinpr2[] = {0};
+static const unsigned char kat3644_retbits[] = {
+ 0x7c, 0x41, 0xad, 0xf9, 0x41, 0x65, 0x6c, 0xfb, 0x9f, 0x24, 0x40, 0x9d,
+ 0x6c, 0xc4, 0xd5, 0x78, 0xd4, 0x39, 0x30, 0xb3, 0xe2, 0x3e, 0xc8, 0x01,
+ 0xa5, 0x9c, 0x53, 0xd9, 0x99, 0x40, 0x1b, 0xc0, 0xcb, 0x3e, 0x5b, 0x87,
+ 0x97, 0xb2, 0x77, 0x0a, 0x8a, 0x8f, 0x51, 0xff, 0x59, 0x4b, 0x7b, 0x17,
+ 0xd9, 0xe6, 0x94, 0xd5, 0xe3, 0x66, 0x44, 0x50, 0x8d, 0x16, 0xcb, 0x25,
+ 0x54, 0x05, 0x7a, 0xdc,
+};
+static const struct drbg_kat_pr_true kat3644_t = {
+ 13, kat3644_entropyin, kat3644_nonce, kat3644_persstr,
+ kat3644_entropyinpr1, kat3644_addinpr1, kat3644_entropyinpr2,
+ kat3644_addinpr2, kat3644_retbits
+};
+static const struct drbg_kat kat3644 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3644_t
+};
+
+static const unsigned char kat3645_entropyin[] = {
+ 0x55, 0x65, 0x45, 0x7c, 0xf6, 0x0a, 0x3a, 0xff, 0x9e, 0xa6, 0xf3, 0xdc,
+ 0x62, 0x54, 0xa7, 0x6a, 0x08, 0x5f, 0xf8, 0x7f, 0x1d, 0xd1, 0x91, 0x27,
+ 0xb2, 0xae, 0xb3, 0xac, 0x50, 0xb8, 0xc3, 0x1e,
+};
+static const unsigned char kat3645_nonce[] = {0};
+static const unsigned char kat3645_persstr[] = {
+ 0x71, 0x7c, 0x4d, 0xe3, 0x0c, 0x0a, 0xc7, 0xb8, 0x31, 0x80, 0x7c, 0xb1,
+ 0xfc, 0xf4, 0xab, 0x37, 0xf1, 0x73, 0x46, 0x83, 0xa7, 0x23, 0xd1, 0x83,
+ 0xfc, 0xfe, 0x5f, 0xc8, 0xa4, 0xc6, 0xc7, 0xe5,
+};
+static const unsigned char kat3645_entropyinpr1[] = {
+ 0x9d, 0xfd, 0x31, 0xe3, 0xad, 0xc8, 0x22, 0xb6, 0x75, 0xc0, 0xa9, 0xc8,
+ 0x70, 0x2d, 0xf1, 0x2d, 0xe4, 0xc3, 0x35, 0x4c, 0xcd, 0xb5, 0x38, 0x9e,
+ 0xd4, 0x81, 0xd9, 0x10, 0xb3, 0xdb, 0xb5, 0x1a,
+};
+static const unsigned char kat3645_addinpr1[] = {0};
+static const unsigned char kat3645_entropyinpr2[] = {
+ 0x2a, 0x1b, 0x15, 0x19, 0xd2, 0x2d, 0x40, 0xef, 0x4e, 0xc2, 0x3c, 0x6d,
+ 0x97, 0xdc, 0x14, 0x8c, 0xfe, 0x17, 0x1f, 0xb5, 0xf8, 0xb1, 0xc3, 0x05,
+ 0xec, 0x6d, 0x8e, 0x83, 0xa1, 0xef, 0x90, 0x64,
+};
+static const unsigned char kat3645_addinpr2[] = {0};
+static const unsigned char kat3645_retbits[] = {
+ 0xac, 0x05, 0x45, 0x70, 0xb0, 0x81, 0xcf, 0x53, 0xb3, 0x9b, 0x0a, 0x2f,
+ 0xaa, 0x21, 0xee, 0x9b, 0x55, 0x4c, 0x05, 0xff, 0x90, 0x55, 0x84, 0x3a,
+ 0xc0, 0xeb, 0x90, 0x31, 0xd1, 0xde, 0x32, 0x47, 0x01, 0xad, 0x4c, 0xf2,
+ 0x87, 0x56, 0x23, 0xe0, 0xbf, 0x41, 0x84, 0xde, 0x4a, 0xea, 0x20, 0x07,
+ 0x0b, 0xe1, 0xcb, 0x58, 0x68, 0x80, 0xac, 0x87, 0xfb, 0xb7, 0xe4, 0x14,
+ 0xb4, 0xb1, 0x28, 0xd0,
+};
+static const struct drbg_kat_pr_true kat3645_t = {
+ 14, kat3645_entropyin, kat3645_nonce, kat3645_persstr,
+ kat3645_entropyinpr1, kat3645_addinpr1, kat3645_entropyinpr2,
+ kat3645_addinpr2, kat3645_retbits
+};
+static const struct drbg_kat kat3645 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3645_t
+};
+
+static const unsigned char kat3646_entropyin[] = {
+ 0xf6, 0x23, 0x91, 0x1b, 0xb7, 0xef, 0xe5, 0xf6, 0xc4, 0xe9, 0x69, 0x79,
+ 0x97, 0x24, 0xb3, 0x17, 0xd6, 0xaa, 0x21, 0x07, 0xa3, 0x56, 0xab, 0x6a,
+ 0x05, 0x14, 0x3e, 0xee, 0x99, 0xe6, 0x75, 0xb3,
+};
+static const unsigned char kat3646_nonce[] = {0};
+static const unsigned char kat3646_persstr[] = {
+ 0x19, 0x73, 0x3e, 0xdb, 0xc2, 0x0b, 0xed, 0xc0, 0xbc, 0x26, 0x9c, 0x48,
+ 0x37, 0xa1, 0xa4, 0x71, 0x37, 0x7c, 0xfe, 0xb6, 0xcd, 0x60, 0x03, 0x9e,
+ 0x49, 0x44, 0xb3, 0x1a, 0xf7, 0x3b, 0xc4, 0xc0,
+};
+static const unsigned char kat3646_entropyinpr1[] = {
+ 0x60, 0xa8, 0x09, 0xd6, 0x3f, 0x6d, 0x5e, 0xfe, 0xb4, 0x33, 0x5b, 0x81,
+ 0x9e, 0x1d, 0x0a, 0x06, 0xb7, 0xbe, 0x66, 0x87, 0x65, 0xca, 0x72, 0xf5,
+ 0x40, 0x49, 0x92, 0xa0, 0xe9, 0x0b, 0x7a, 0x70,
+};
+static const unsigned char kat3646_addinpr1[] = {
+ 0x05, 0x91, 0xfe, 0xff, 0xa7, 0x7d, 0xe2, 0x23, 0xd6, 0xfb, 0x1a, 0x91,
+ 0x57, 0x9f, 0x76, 0x6c, 0x4c, 0x09, 0xf3, 0xe9, 0x54, 0x0d, 0x14, 0xfd,
+ 0x2e, 0xe9, 0x88, 0x94, 0xf7, 0xa8, 0x00, 0x53,
+};
+static const unsigned char kat3646_entropyinpr2[] = {
+ 0x53, 0x0e, 0x7a, 0x6d, 0xfa, 0x63, 0x39, 0xaa, 0xa6, 0x66, 0x1b, 0xc4,
+ 0xfb, 0x13, 0xff, 0x1f, 0x35, 0x1c, 0x79, 0xe9, 0xd3, 0x41, 0x5e, 0x2d,
+ 0x0d, 0x57, 0x0b, 0x8f, 0x99, 0x07, 0xc8, 0xb4,
+};
+static const unsigned char kat3646_addinpr2[] = {
+ 0xc5, 0xf7, 0xb2, 0x82, 0xa5, 0x16, 0xa2, 0xf8, 0x31, 0xd6, 0x68, 0xca,
+ 0x44, 0x48, 0x66, 0x2c, 0x92, 0x90, 0x7c, 0xbb, 0xfa, 0x9b, 0x90, 0xc3,
+ 0x74, 0x5e, 0xa2, 0xe7, 0x9b, 0x28, 0xec, 0x6d,
+};
+static const unsigned char kat3646_retbits[] = {
+ 0xe1, 0x08, 0xb1, 0xbd, 0x65, 0x92, 0x8d, 0x80, 0x97, 0x19, 0x0c, 0x10,
+ 0x63, 0x21, 0xe9, 0xfc, 0xb3, 0xb9, 0x30, 0xef, 0x3b, 0x74, 0x42, 0x1e,
+ 0xd8, 0xe7, 0x08, 0x02, 0xd3, 0xf0, 0x6e, 0xbe, 0x73, 0x38, 0x94, 0x8c,
+ 0xbf, 0x08, 0xab, 0x91, 0xcd, 0xf7, 0x1d, 0xd3, 0x98, 0xdd, 0xc4, 0x75,
+ 0x2b, 0x6d, 0x3d, 0xbc, 0x26, 0x5f, 0xe8, 0x36, 0x58, 0x87, 0x83, 0xfb,
+ 0xdd, 0xd5, 0x09, 0xfb,
+};
+static const struct drbg_kat_pr_true kat3646_t = {
+ 0, kat3646_entropyin, kat3646_nonce, kat3646_persstr,
+ kat3646_entropyinpr1, kat3646_addinpr1, kat3646_entropyinpr2,
+ kat3646_addinpr2, kat3646_retbits
+};
+static const struct drbg_kat kat3646 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3646_t
+};
+
+static const unsigned char kat3647_entropyin[] = {
+ 0x15, 0x89, 0x5a, 0x61, 0xc6, 0x9c, 0x50, 0x70, 0x9b, 0x42, 0x54, 0xf3,
+ 0xa3, 0x83, 0x62, 0x3d, 0xfb, 0x54, 0xc2, 0x73, 0xb2, 0xdf, 0x38, 0x95,
+ 0x5f, 0xfd, 0x0c, 0xd1, 0x89, 0x1d, 0x3d, 0x97,
+};
+static const unsigned char kat3647_nonce[] = {0};
+static const unsigned char kat3647_persstr[] = {
+ 0x9e, 0xbd, 0xe8, 0x23, 0xc9, 0xcf, 0x6f, 0x9b, 0x87, 0x46, 0xf9, 0x96,
+ 0xbc, 0xa3, 0xbc, 0xa9, 0x09, 0x38, 0xad, 0x89, 0xcc, 0x4d, 0xda, 0xb0,
+ 0xc0, 0x05, 0xdd, 0xef, 0x74, 0xff, 0x06, 0x5e,
+};
+static const unsigned char kat3647_entropyinpr1[] = {
+ 0x37, 0xac, 0x0d, 0x2c, 0xb9, 0xfd, 0xc4, 0xd6, 0xf7, 0x20, 0x81, 0xca,
+ 0x31, 0x83, 0x1e, 0xb9, 0x64, 0x19, 0x79, 0x16, 0x57, 0x24, 0x26, 0xd4,
+ 0xc5, 0x98, 0xb3, 0xb2, 0xf0, 0x7e, 0x2d, 0xa2,
+};
+static const unsigned char kat3647_addinpr1[] = {
+ 0xe5, 0xb5, 0x66, 0x8b, 0x1f, 0x83, 0xff, 0x61, 0x40, 0x74, 0xd0, 0xa7,
+ 0x97, 0xaf, 0x82, 0xb9, 0xfa, 0x16, 0x75, 0xaa, 0x8b, 0xe9, 0xc1, 0xd5,
+ 0x17, 0x10, 0x92, 0x04, 0xb5, 0xf0, 0xbf, 0xbf,
+};
+static const unsigned char kat3647_entropyinpr2[] = {
+ 0x70, 0x7b, 0x53, 0x90, 0x3a, 0x0c, 0x18, 0x84, 0x56, 0x2c, 0x7c, 0x93,
+ 0x65, 0xef, 0xdd, 0xa0, 0x98, 0xc7, 0x3e, 0x97, 0x41, 0x67, 0x84, 0x7a,
+ 0x48, 0xce, 0x78, 0x51, 0xa3, 0xda, 0x7d, 0x00,
+};
+static const unsigned char kat3647_addinpr2[] = {
+ 0x56, 0xeb, 0x51, 0xd2, 0x84, 0x35, 0xdd, 0x73, 0xf1, 0x0b, 0xba, 0xfb,
+ 0x1e, 0x92, 0xd2, 0x50, 0x8b, 0x7c, 0x56, 0xe2, 0xbb, 0x53, 0x81, 0xf5,
+ 0x91, 0xc6, 0x89, 0x8f, 0x3d, 0xbe, 0x3b, 0xc4,
+};
+static const unsigned char kat3647_retbits[] = {
+ 0xe3, 0x80, 0x7a, 0x26, 0x52, 0x0e, 0xa2, 0x40, 0xb6, 0x95, 0x07, 0x69,
+ 0xea, 0x25, 0x0e, 0x26, 0xce, 0x05, 0xbe, 0x72, 0xa6, 0xf6, 0x87, 0x62,
+ 0xfd, 0x9b, 0x6e, 0x94, 0xe1, 0xa1, 0x7e, 0x07, 0x74, 0x47, 0x96, 0x82,
+ 0xa6, 0x66, 0x81, 0x33, 0x58, 0x9a, 0xa9, 0x56, 0x57, 0x2d, 0x15, 0xc3,
+ 0x2a, 0x51, 0x73, 0x37, 0xff, 0xcc, 0x8d, 0x9f, 0xf4, 0xa5, 0x3b, 0x6d,
+ 0xfa, 0x18, 0xb2, 0xb3,
+};
+static const struct drbg_kat_pr_true kat3647_t = {
+ 1, kat3647_entropyin, kat3647_nonce, kat3647_persstr,
+ kat3647_entropyinpr1, kat3647_addinpr1, kat3647_entropyinpr2,
+ kat3647_addinpr2, kat3647_retbits
+};
+static const struct drbg_kat kat3647 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3647_t
+};
+
+static const unsigned char kat3648_entropyin[] = {
+ 0xb2, 0xcf, 0x89, 0xb4, 0xb2, 0xf4, 0xbd, 0x78, 0x90, 0x48, 0x48, 0x8d,
+ 0x75, 0x02, 0x8b, 0xde, 0x40, 0x07, 0xfe, 0x3d, 0x0b, 0xc6, 0x1b, 0xd2,
+ 0x18, 0x01, 0xe2, 0x63, 0x42, 0xdf, 0x88, 0x67,
+};
+static const unsigned char kat3648_nonce[] = {0};
+static const unsigned char kat3648_persstr[] = {
+ 0x85, 0x89, 0xa9, 0x5a, 0x91, 0xca, 0xf3, 0xe7, 0xd3, 0xcc, 0x50, 0xad,
+ 0xfb, 0xc9, 0x5c, 0x79, 0xad, 0xe1, 0xbc, 0x40, 0x7f, 0x99, 0xe5, 0x2b,
+ 0x07, 0x48, 0xf0, 0x59, 0x3e, 0x88, 0xb5, 0x4b,
+};
+static const unsigned char kat3648_entropyinpr1[] = {
+ 0x6a, 0xa3, 0xaa, 0xb9, 0xe8, 0x52, 0xb6, 0x38, 0xa1, 0xeb, 0x5d, 0xb8,
+ 0x66, 0x9b, 0xd3, 0xf5, 0x8d, 0xd4, 0x51, 0xe0, 0xf2, 0x41, 0xfa, 0x5e,
+ 0x22, 0xea, 0xed, 0x9e, 0x89, 0xc9, 0xf2, 0xf6,
+};
+static const unsigned char kat3648_addinpr1[] = {
+ 0xa4, 0x10, 0x85, 0xc7, 0xe9, 0x3e, 0x84, 0x74, 0x77, 0x2e, 0x53, 0x8d,
+ 0x10, 0x30, 0xb7, 0x40, 0xd8, 0x3c, 0x2c, 0x40, 0xdb, 0x46, 0xe6, 0xac,
+ 0x7e, 0xe8, 0x95, 0x0f, 0xbd, 0xa1, 0xc0, 0x92,
+};
+static const unsigned char kat3648_entropyinpr2[] = {
+ 0x80, 0x1b, 0x37, 0x9f, 0xcd, 0x5e, 0xe8, 0xb9, 0x8d, 0x40, 0x3b, 0xd8,
+ 0xae, 0xb1, 0x3f, 0xe5, 0x40, 0x26, 0x96, 0x06, 0x3c, 0xb1, 0x3e, 0x48,
+ 0x48, 0xf2, 0x0f, 0x5f, 0xa7, 0x43, 0x37, 0x0a,
+};
+static const unsigned char kat3648_addinpr2[] = {
+ 0x26, 0x03, 0x6f, 0x2f, 0xce, 0x86, 0x63, 0x45, 0x8d, 0x28, 0x2a, 0xe7,
+ 0x15, 0xc3, 0x93, 0x3d, 0x4b, 0x3b, 0x76, 0x70, 0xbb, 0x61, 0x5f, 0x78,
+ 0x6c, 0x2c, 0x61, 0x57, 0x1a, 0x6f, 0xba, 0x9c,
+};
+static const unsigned char kat3648_retbits[] = {
+ 0xbe, 0xa5, 0x5b, 0xcb, 0x1b, 0xc6, 0x10, 0x15, 0xca, 0x96, 0x7c, 0x5e,
+ 0x92, 0x88, 0x65, 0x55, 0xec, 0xcf, 0x87, 0xc6, 0x89, 0x7c, 0xe1, 0x06,
+ 0x8d, 0x74, 0x80, 0x7c, 0x70, 0x00, 0x98, 0xbb, 0x91, 0x98, 0x9d, 0xc1,
+ 0x24, 0x1c, 0xcd, 0x2c, 0x80, 0x77, 0x42, 0x66, 0x01, 0xa7, 0x20, 0x27,
+ 0xb2, 0x33, 0x48, 0x06, 0x46, 0xd7, 0xe9, 0x70, 0x52, 0xf0, 0x02, 0xa4,
+ 0xa4, 0x01, 0x88, 0x44,
+};
+static const struct drbg_kat_pr_true kat3648_t = {
+ 2, kat3648_entropyin, kat3648_nonce, kat3648_persstr,
+ kat3648_entropyinpr1, kat3648_addinpr1, kat3648_entropyinpr2,
+ kat3648_addinpr2, kat3648_retbits
+};
+static const struct drbg_kat kat3648 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3648_t
+};
+
+static const unsigned char kat3649_entropyin[] = {
+ 0x02, 0x4a, 0xcd, 0x77, 0xfa, 0x20, 0x14, 0x13, 0xde, 0x7f, 0xba, 0xe0,
+ 0x80, 0xd4, 0xdc, 0xc4, 0xd3, 0x7e, 0x61, 0xa8, 0xec, 0x5a, 0x4a, 0x8b,
+ 0xe1, 0x4d, 0xcb, 0x43, 0x01, 0x86, 0x73, 0x01,
+};
+static const unsigned char kat3649_nonce[] = {0};
+static const unsigned char kat3649_persstr[] = {
+ 0xbb, 0xe7, 0xc2, 0x75, 0x37, 0x47, 0x27, 0x27, 0xfe, 0xb9, 0xdc, 0x27,
+ 0x89, 0x8a, 0x2b, 0x0b, 0x44, 0x2b, 0xe0, 0x0c, 0xde, 0xd8, 0x7d, 0x14,
+ 0xcb, 0x81, 0xce, 0xc2, 0x84, 0x9e, 0xf1, 0xe9,
+};
+static const unsigned char kat3649_entropyinpr1[] = {
+ 0xb3, 0x3c, 0x88, 0xa5, 0x8d, 0x58, 0xb4, 0x29, 0x96, 0x1c, 0xc9, 0x8d,
+ 0x14, 0x15, 0x22, 0xf3, 0x26, 0xe5, 0xb5, 0x1a, 0xc2, 0x4a, 0x17, 0xae,
+ 0xcd, 0xce, 0x67, 0xfd, 0x0c, 0xd0, 0xac, 0x5e,
+};
+static const unsigned char kat3649_addinpr1[] = {
+ 0xa7, 0xc9, 0xa8, 0x08, 0x01, 0xdc, 0x9c, 0xc3, 0xd6, 0x1c, 0x21, 0x93,
+ 0xc2, 0x50, 0x5c, 0xd2, 0x94, 0x98, 0x82, 0x34, 0x93, 0xe6, 0x8f, 0x3b,
+ 0xd8, 0x5e, 0xde, 0xa2, 0x56, 0x87, 0x7f, 0xde,
+};
+static const unsigned char kat3649_entropyinpr2[] = {
+ 0x7c, 0x88, 0x8a, 0xa3, 0x32, 0x1a, 0x1c, 0xfe, 0x25, 0x4a, 0x3f, 0x70,
+ 0xe1, 0x44, 0x35, 0x95, 0xf8, 0x31, 0x89, 0xc9, 0x06, 0xf0, 0x25, 0xe0,
+ 0x5b, 0x54, 0x04, 0x63, 0x36, 0x4e, 0xe5, 0x09,
+};
+static const unsigned char kat3649_addinpr2[] = {
+ 0x70, 0xe9, 0x97, 0xdf, 0x10, 0xf6, 0xb9, 0xa2, 0x17, 0xcd, 0xa9, 0xa8,
+ 0xd7, 0xa0, 0xfd, 0xb6, 0x6e, 0x57, 0xc6, 0x2c, 0x0e, 0x93, 0x83, 0xe3,
+ 0x04, 0x1f, 0xbf, 0xf5, 0x72, 0x5f, 0x9e, 0xc4,
+};
+static const unsigned char kat3649_retbits[] = {
+ 0x85, 0xce, 0x70, 0x84, 0x7d, 0x95, 0x53, 0xa1, 0xfa, 0x5f, 0x15, 0x91,
+ 0x3f, 0x80, 0x21, 0xf7, 0xf5, 0xd6, 0xdd, 0x56, 0x5b, 0x7e, 0x72, 0x1e,
+ 0x2c, 0x09, 0x0f, 0x66, 0x20, 0x7d, 0x22, 0x8f, 0x83, 0x24, 0x70, 0x30,
+ 0x0a, 0x01, 0xcb, 0xe6, 0xb1, 0x3e, 0x23, 0x62, 0xd8, 0x4e, 0x3a, 0x0d,
+ 0x3d, 0xb2, 0xfd, 0xd4, 0x36, 0x2f, 0x55, 0x4b, 0x23, 0x2d, 0x5a, 0xa4,
+ 0xf6, 0x79, 0x57, 0x7d,
+};
+static const struct drbg_kat_pr_true kat3649_t = {
+ 3, kat3649_entropyin, kat3649_nonce, kat3649_persstr,
+ kat3649_entropyinpr1, kat3649_addinpr1, kat3649_entropyinpr2,
+ kat3649_addinpr2, kat3649_retbits
+};
+static const struct drbg_kat kat3649 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3649_t
+};
+
+static const unsigned char kat3650_entropyin[] = {
+ 0x80, 0x13, 0x7b, 0xbd, 0xf6, 0xeb, 0xb0, 0x5e, 0xa1, 0xbd, 0x8e, 0x80,
+ 0x79, 0xc6, 0xed, 0x67, 0x3f, 0x18, 0x35, 0x47, 0x10, 0x3c, 0xcc, 0xba,
+ 0xf3, 0x60, 0xb2, 0xf2, 0x17, 0xb5, 0x89, 0xe8,
+};
+static const unsigned char kat3650_nonce[] = {0};
+static const unsigned char kat3650_persstr[] = {
+ 0x9b, 0x73, 0xaa, 0x2d, 0x08, 0x04, 0x77, 0xc5, 0xc6, 0x44, 0x1b, 0x11,
+ 0xe9, 0x3b, 0xdd, 0x03, 0xeb, 0x6d, 0xba, 0xd2, 0xeb, 0xf1, 0xf4, 0x93,
+ 0xef, 0x9e, 0xab, 0xd8, 0x6d, 0x34, 0xe1, 0x15,
+};
+static const unsigned char kat3650_entropyinpr1[] = {
+ 0x60, 0xb1, 0x5d, 0x6f, 0xe5, 0x8a, 0xd7, 0xb8, 0x00, 0x50, 0x50, 0x41,
+ 0xbb, 0x8e, 0xa3, 0x8d, 0x0d, 0x08, 0xed, 0xf6, 0xf4, 0xee, 0x6a, 0x6f,
+ 0xfa, 0x01, 0x09, 0x08, 0xc0, 0x75, 0x60, 0x77,
+};
+static const unsigned char kat3650_addinpr1[] = {
+ 0x67, 0x9b, 0x2c, 0xc3, 0x7c, 0x0b, 0x6a, 0xf5, 0xa0, 0x00, 0xe7, 0x7b,
+ 0xbc, 0x4b, 0x03, 0x0d, 0xd7, 0xd9, 0x29, 0xa3, 0x3f, 0xd7, 0xd1, 0xf5,
+ 0x2e, 0x8f, 0x5d, 0xac, 0x6f, 0x1a, 0x3c, 0xe8,
+};
+static const unsigned char kat3650_entropyinpr2[] = {
+ 0x41, 0x10, 0x8a, 0x5f, 0x54, 0x0a, 0x40, 0xa8, 0xf9, 0x43, 0xfe, 0xf5,
+ 0x72, 0xac, 0x3a, 0xeb, 0x48, 0x06, 0xac, 0x6a, 0xdd, 0xde, 0x77, 0x6c,
+ 0x2c, 0x0d, 0x31, 0x87, 0xf9, 0xe4, 0x6e, 0x33,
+};
+static const unsigned char kat3650_addinpr2[] = {
+ 0xe4, 0xb5, 0x26, 0x13, 0x12, 0x63, 0x8d, 0x00, 0x7c, 0x3a, 0x5e, 0x27,
+ 0x56, 0x04, 0xd8, 0xc8, 0xce, 0xc3, 0xa0, 0x55, 0xc4, 0xb1, 0xf1, 0x1d,
+ 0xf6, 0x2f, 0x6d, 0x4e, 0x87, 0xdd, 0x8e, 0x35,
+};
+static const unsigned char kat3650_retbits[] = {
+ 0xbd, 0x90, 0xe0, 0x11, 0x22, 0x17, 0x83, 0xdb, 0x4b, 0xae, 0x48, 0x61,
+ 0x61, 0x5f, 0x15, 0x4c, 0x59, 0x5c, 0x3b, 0xb6, 0x3b, 0x75, 0x92, 0xbf,
+ 0x49, 0x58, 0x80, 0xb6, 0x0f, 0xd0, 0x43, 0x4f, 0xfc, 0x0c, 0xaf, 0xca,
+ 0x0f, 0xda, 0x24, 0x90, 0xe5, 0x87, 0xa2, 0x1c, 0xff, 0x07, 0xd0, 0x94,
+ 0x1b, 0x3a, 0x06, 0x0b, 0x68, 0x54, 0x84, 0x06, 0xc5, 0xc6, 0xb9, 0x30,
+ 0x04, 0x84, 0x7c, 0xf6,
+};
+static const struct drbg_kat_pr_true kat3650_t = {
+ 4, kat3650_entropyin, kat3650_nonce, kat3650_persstr,
+ kat3650_entropyinpr1, kat3650_addinpr1, kat3650_entropyinpr2,
+ kat3650_addinpr2, kat3650_retbits
+};
+static const struct drbg_kat kat3650 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3650_t
+};
+
+static const unsigned char kat3651_entropyin[] = {
+ 0x2c, 0x6e, 0x01, 0x0b, 0xfd, 0x6f, 0x91, 0x6e, 0x94, 0xa6, 0x5a, 0xb8,
+ 0xa9, 0x7d, 0x53, 0x56, 0xb6, 0xd0, 0x6a, 0x9d, 0x36, 0xf0, 0x5b, 0x67,
+ 0x78, 0x7f, 0x27, 0xd5, 0xa5, 0x49, 0x02, 0x67,
+};
+static const unsigned char kat3651_nonce[] = {0};
+static const unsigned char kat3651_persstr[] = {
+ 0x05, 0x5a, 0x7c, 0x90, 0x08, 0xf7, 0x76, 0x43, 0x46, 0xaf, 0x60, 0xae,
+ 0xc6, 0xa8, 0x18, 0xfa, 0xab, 0xac, 0x6a, 0xa5, 0x1b, 0x02, 0xb3, 0xdb,
+ 0x06, 0x5f, 0x0e, 0xe1, 0x5f, 0xd9, 0x72, 0xb0,
+};
+static const unsigned char kat3651_entropyinpr1[] = {
+ 0x7e, 0x34, 0xa9, 0x35, 0x3f, 0x2f, 0x2d, 0x8a, 0x56, 0x55, 0x6e, 0xa7,
+ 0x3a, 0x1b, 0xa0, 0x71, 0xf3, 0x5e, 0xe7, 0xb4, 0xc2, 0x4c, 0x33, 0x78,
+ 0x1d, 0x6b, 0xbf, 0x62, 0x78, 0xae, 0x49, 0xe4,
+};
+static const unsigned char kat3651_addinpr1[] = {
+ 0x88, 0xd6, 0x5a, 0x5e, 0xf8, 0xf6, 0x52, 0xbd, 0x51, 0xec, 0x2f, 0xef,
+ 0x35, 0xfb, 0xba, 0x9f, 0x3f, 0x6d, 0x02, 0x41, 0x5c, 0xb3, 0x96, 0xf6,
+ 0x64, 0xc9, 0x00, 0xad, 0x66, 0xd1, 0x2b, 0xe6,
+};
+static const unsigned char kat3651_entropyinpr2[] = {
+ 0x4d, 0x46, 0x07, 0xac, 0x38, 0x63, 0x08, 0x15, 0xbc, 0xda, 0x32, 0xbb,
+ 0x95, 0xe2, 0xe2, 0x2f, 0xc3, 0xb5, 0x83, 0xe4, 0xe1, 0x44, 0xdb, 0xf1,
+ 0x0d, 0x63, 0x43, 0xdf, 0x7c, 0x0a, 0x4d, 0x65,
+};
+static const unsigned char kat3651_addinpr2[] = {
+ 0x75, 0x5a, 0xf3, 0x19, 0x10, 0x9d, 0xba, 0xe8, 0xea, 0x94, 0x02, 0x18,
+ 0x74, 0x24, 0x9d, 0xe4, 0x1e, 0xfa, 0x7f, 0x56, 0x9c, 0x8a, 0x00, 0xba,
+ 0xac, 0xdc, 0x3f, 0x1f, 0xdb, 0xcc, 0x44, 0xba,
+};
+static const unsigned char kat3651_retbits[] = {
+ 0xb3, 0xf9, 0xb3, 0x9a, 0x15, 0xed, 0x7e, 0x49, 0x1e, 0x6e, 0xad, 0xa8,
+ 0x3d, 0xe8, 0x8f, 0xfb, 0x33, 0x4c, 0xf5, 0x6c, 0x9d, 0xe2, 0xa8, 0x65,
+ 0xd9, 0xaa, 0x3a, 0xd2, 0x41, 0xe3, 0xe2, 0xef, 0xd7, 0x2f, 0x15, 0x98,
+ 0xe2, 0x1b, 0xc0, 0xe2, 0x65, 0x87, 0x3d, 0x7a, 0x70, 0xf8, 0x6e, 0x3a,
+ 0x40, 0xa7, 0xd8, 0x15, 0x9a, 0x9a, 0x98, 0xb4, 0x74, 0x09, 0xd8, 0xdd,
+ 0xcd, 0x44, 0x34, 0xc7,
+};
+static const struct drbg_kat_pr_true kat3651_t = {
+ 5, kat3651_entropyin, kat3651_nonce, kat3651_persstr,
+ kat3651_entropyinpr1, kat3651_addinpr1, kat3651_entropyinpr2,
+ kat3651_addinpr2, kat3651_retbits
+};
+static const struct drbg_kat kat3651 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3651_t
+};
+
+static const unsigned char kat3652_entropyin[] = {
+ 0xd5, 0x42, 0x66, 0xc7, 0x38, 0xc1, 0xd9, 0xe9, 0x57, 0xf8, 0x26, 0x06,
+ 0xdf, 0xdd, 0x59, 0xc8, 0xf1, 0x98, 0xd3, 0xa4, 0x1f, 0xcb, 0xcc, 0x5a,
+ 0x4c, 0xe5, 0xbb, 0x29, 0x68, 0x1f, 0x9c, 0x0a,
+};
+static const unsigned char kat3652_nonce[] = {0};
+static const unsigned char kat3652_persstr[] = {
+ 0xc9, 0x94, 0x59, 0x37, 0x3b, 0xa7, 0x7c, 0x4e, 0xa9, 0x54, 0xd2, 0xfe,
+ 0xeb, 0x9f, 0x1e, 0x59, 0x70, 0x97, 0x58, 0xfe, 0x4f, 0x06, 0x65, 0xf9,
+ 0xb4, 0x3b, 0x10, 0xdb, 0x17, 0x9d, 0x69, 0x08,
+};
+static const unsigned char kat3652_entropyinpr1[] = {
+ 0x0b, 0x9a, 0xb6, 0x6b, 0x9d, 0x53, 0x93, 0x1f, 0x67, 0xb4, 0xa8, 0x2d,
+ 0x86, 0xf6, 0x17, 0x24, 0x39, 0x62, 0x72, 0xcc, 0x56, 0x0b, 0xe0, 0xc8,
+ 0x08, 0xd5, 0xaf, 0x95, 0x18, 0x47, 0x8c, 0x3f,
+};
+static const unsigned char kat3652_addinpr1[] = {
+ 0x10, 0x4c, 0x44, 0x32, 0xaf, 0xf0, 0xb6, 0xc6, 0xd1, 0x7c, 0x74, 0xdc,
+ 0x20, 0x64, 0x78, 0xe3, 0x7d, 0xfc, 0xcf, 0x92, 0x1a, 0x3f, 0x9c, 0x51,
+ 0x8f, 0x03, 0x51, 0x15, 0xed, 0x5b, 0xa6, 0xe3,
+};
+static const unsigned char kat3652_entropyinpr2[] = {
+ 0x64, 0x23, 0x04, 0xfc, 0xcd, 0x20, 0xa0, 0x76, 0x08, 0x0e, 0x4b, 0x18,
+ 0xa9, 0xec, 0x03, 0x19, 0x26, 0x41, 0x34, 0x38, 0x59, 0x64, 0x2b, 0xc4,
+ 0xb4, 0xc2, 0xd0, 0x17, 0x27, 0x77, 0xf2, 0x62,
+};
+static const unsigned char kat3652_addinpr2[] = {
+ 0x1f, 0x42, 0xa2, 0x3b, 0xf4, 0xdc, 0x65, 0xa0, 0xac, 0x61, 0xf9, 0xfe,
+ 0x59, 0x67, 0xfb, 0xa1, 0x36, 0x79, 0x1b, 0x19, 0xa3, 0x99, 0x2d, 0x5e,
+ 0x5c, 0xa6, 0x53, 0x2a, 0xc8, 0x55, 0x24, 0x23,
+};
+static const unsigned char kat3652_retbits[] = {
+ 0x2a, 0x5a, 0xe9, 0xab, 0x04, 0x3e, 0x8f, 0x71, 0x4f, 0x26, 0x6e, 0x76,
+ 0x51, 0x50, 0xf1, 0xb3, 0xa0, 0xfe, 0xef, 0x8e, 0x9c, 0x7e, 0x73, 0x5f,
+ 0x97, 0xb6, 0xda, 0x70, 0x91, 0xa0, 0xf3, 0x1d, 0x23, 0x1a, 0x48, 0x4b,
+ 0xb0, 0xdb, 0x91, 0x72, 0x18, 0x8e, 0x67, 0xc6, 0x07, 0xc6, 0xdb, 0x9f,
+ 0xbf, 0xac, 0x9d, 0xf8, 0xa8, 0xdb, 0x5a, 0x71, 0x6d, 0xa1, 0x16, 0x3e,
+ 0x04, 0x9f, 0x38, 0x04,
+};
+static const struct drbg_kat_pr_true kat3652_t = {
+ 6, kat3652_entropyin, kat3652_nonce, kat3652_persstr,
+ kat3652_entropyinpr1, kat3652_addinpr1, kat3652_entropyinpr2,
+ kat3652_addinpr2, kat3652_retbits
+};
+static const struct drbg_kat kat3652 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3652_t
+};
+
+static const unsigned char kat3653_entropyin[] = {
+ 0xe2, 0x69, 0xdb, 0x4e, 0x5e, 0x5d, 0x14, 0x9b, 0x12, 0xec, 0x74, 0x85,
+ 0x8e, 0x79, 0xef, 0x42, 0x64, 0xa6, 0x78, 0xb9, 0xfb, 0x91, 0x88, 0x96,
+ 0x23, 0x8f, 0x96, 0x0f, 0xc4, 0x55, 0x45, 0x66,
+};
+static const unsigned char kat3653_nonce[] = {0};
+static const unsigned char kat3653_persstr[] = {
+ 0x33, 0x32, 0x6d, 0xbf, 0x20, 0x2c, 0x5c, 0x0f, 0xa8, 0x87, 0xd3, 0x59,
+ 0xd7, 0x7e, 0x0c, 0x51, 0x5f, 0xaf, 0x7a, 0xed, 0xd1, 0x92, 0xab, 0x36,
+ 0x35, 0x9b, 0xcc, 0xf6, 0x61, 0xf2, 0x53, 0x91,
+};
+static const unsigned char kat3653_entropyinpr1[] = {
+ 0xe6, 0x3c, 0x3c, 0x8e, 0x4b, 0xda, 0xdd, 0x60, 0x01, 0xab, 0x08, 0x57,
+ 0xb1, 0x37, 0x6d, 0x5d, 0xe4, 0xa5, 0x34, 0x8c, 0xec, 0x3b, 0x0d, 0xea,
+ 0xc2, 0x70, 0xf1, 0xae, 0x7b, 0x38, 0xa7, 0xe5,
+};
+static const unsigned char kat3653_addinpr1[] = {
+ 0x35, 0x2b, 0xde, 0x5d, 0xa2, 0x54, 0x16, 0x54, 0x29, 0xca, 0x0f, 0xdd,
+ 0x55, 0x95, 0x94, 0x94, 0x3b, 0x60, 0xd2, 0x6b, 0x34, 0x83, 0xe8, 0xaa,
+ 0xc8, 0x7d, 0xc9, 0x28, 0xcd, 0x21, 0xc2, 0xe8,
+};
+static const unsigned char kat3653_entropyinpr2[] = {
+ 0x9b, 0x6f, 0x55, 0xd5, 0xba, 0x67, 0xb1, 0xcc, 0xd3, 0x19, 0xb3, 0x17,
+ 0x8b, 0x58, 0x69, 0xb8, 0xe4, 0xb8, 0xd1, 0xb8, 0x29, 0x60, 0x77, 0xd2,
+ 0x52, 0x82, 0xf8, 0xe7, 0x23, 0xd4, 0x01, 0xd7,
+};
+static const unsigned char kat3653_addinpr2[] = {
+ 0x66, 0x7b, 0xa3, 0x62, 0x15, 0x09, 0x31, 0x6e, 0xa4, 0x64, 0x13, 0xe2,
+ 0x34, 0x45, 0x42, 0x97, 0x5b, 0x9f, 0x63, 0xa8, 0x4b, 0x07, 0xc2, 0x83,
+ 0x04, 0x99, 0x64, 0xc8, 0xc4, 0xcd, 0x69, 0xe9,
+};
+static const unsigned char kat3653_retbits[] = {
+ 0x9c, 0xd4, 0x7c, 0x64, 0x41, 0x9e, 0x5e, 0xfc, 0x4c, 0xa9, 0xe4, 0x63,
+ 0x7b, 0xfb, 0x4c, 0x9a, 0x26, 0x3b, 0x53, 0x9c, 0xed, 0xe6, 0xd0, 0xd3,
+ 0x0b, 0x8d, 0xd3, 0x46, 0x53, 0x6c, 0x31, 0x90, 0x47, 0x82, 0x13, 0x96,
+ 0x34, 0x5e, 0x8f, 0x4b, 0x99, 0xae, 0x45, 0xa2, 0xa5, 0x8a, 0x30, 0x03,
+ 0x87, 0x9b, 0x88, 0x26, 0x55, 0x69, 0x82, 0xb5, 0x89, 0x25, 0xa7, 0xc3,
+ 0xc3, 0xcb, 0x77, 0x8a,
+};
+static const struct drbg_kat_pr_true kat3653_t = {
+ 7, kat3653_entropyin, kat3653_nonce, kat3653_persstr,
+ kat3653_entropyinpr1, kat3653_addinpr1, kat3653_entropyinpr2,
+ kat3653_addinpr2, kat3653_retbits
+};
+static const struct drbg_kat kat3653 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3653_t
+};
+
+static const unsigned char kat3654_entropyin[] = {
+ 0x92, 0xf5, 0x6b, 0xc8, 0xe8, 0x90, 0x5c, 0xeb, 0xed, 0x8a, 0x3f, 0x9b,
+ 0x1f, 0x6f, 0x51, 0x14, 0x0e, 0xce, 0xcb, 0xb0, 0xc6, 0x51, 0x26, 0x31,
+ 0xc9, 0x73, 0x14, 0x80, 0xaf, 0xf8, 0x55, 0x62,
+};
+static const unsigned char kat3654_nonce[] = {0};
+static const unsigned char kat3654_persstr[] = {
+ 0x8a, 0x07, 0xcc, 0x2b, 0x3d, 0x4b, 0xef, 0x18, 0xfc, 0x14, 0x89, 0xe7,
+ 0x3b, 0x0d, 0xcd, 0x19, 0x09, 0x00, 0xa0, 0xd7, 0xe8, 0x41, 0x8c, 0x66,
+ 0x4e, 0x4f, 0x46, 0xc1, 0xaf, 0x45, 0x54, 0x53,
+};
+static const unsigned char kat3654_entropyinpr1[] = {
+ 0x03, 0xdb, 0x58, 0x8c, 0xce, 0x94, 0xdd, 0xe5, 0x39, 0xcd, 0x69, 0xb8,
+ 0xf2, 0x21, 0x4c, 0x00, 0x47, 0x08, 0x3e, 0x93, 0xbf, 0xe5, 0x7d, 0x69,
+ 0x7e, 0x5c, 0x8f, 0xb1, 0xa0, 0x15, 0xe6, 0x23,
+};
+static const unsigned char kat3654_addinpr1[] = {
+ 0x27, 0xbb, 0x21, 0x41, 0x9e, 0xbc, 0x68, 0x0c, 0x36, 0x6b, 0x22, 0x6e,
+ 0x78, 0x18, 0x23, 0xd7, 0x23, 0xe4, 0x61, 0xe6, 0xb3, 0x35, 0x96, 0x88,
+ 0x4a, 0x11, 0xc9, 0xc8, 0x04, 0x27, 0xfa, 0x8f,
+};
+static const unsigned char kat3654_entropyinpr2[] = {
+ 0x49, 0x2b, 0xb7, 0x9e, 0x11, 0x27, 0x3d, 0xf7, 0x7c, 0xe6, 0xb8, 0x20,
+ 0x4f, 0xf1, 0xfe, 0xb7, 0x78, 0x9f, 0x16, 0xc8, 0xfd, 0xa1, 0x4e, 0xb5,
+ 0x85, 0x18, 0x63, 0x47, 0x01, 0xa2, 0x69, 0x8f,
+};
+static const unsigned char kat3654_addinpr2[] = {
+ 0xe6, 0x69, 0xac, 0x48, 0x4b, 0x15, 0x58, 0xbf, 0x86, 0x84, 0x50, 0x24,
+ 0x93, 0xd4, 0x79, 0x8b, 0x16, 0xa8, 0x21, 0x87, 0xaf, 0xb8, 0xeb, 0xff,
+ 0xda, 0x21, 0x6e, 0x85, 0x60, 0x46, 0x46, 0xcf,
+};
+static const unsigned char kat3654_retbits[] = {
+ 0xa4, 0x6e, 0x2d, 0x65, 0xbb, 0x2b, 0x9c, 0xc0, 0xf8, 0xa2, 0x87, 0x18,
+ 0x59, 0xd4, 0x87, 0xb7, 0x4d, 0xd1, 0x5b, 0xe6, 0x78, 0xb8, 0xa8, 0x6b,
+ 0x4c, 0xd7, 0x61, 0xae, 0x12, 0xfd, 0xeb, 0x30, 0x9b, 0x88, 0x9d, 0x23,
+ 0x54, 0xc2, 0xb6, 0xe4, 0xf1, 0x3d, 0xbb, 0x0b, 0xed, 0xfc, 0x69, 0xb4,
+ 0x90, 0xe0, 0xf7, 0x38, 0xdb, 0x17, 0x05, 0xde, 0x28, 0xe4, 0x40, 0x84,
+ 0xf5, 0x15, 0xb1, 0x9b,
+};
+static const struct drbg_kat_pr_true kat3654_t = {
+ 8, kat3654_entropyin, kat3654_nonce, kat3654_persstr,
+ kat3654_entropyinpr1, kat3654_addinpr1, kat3654_entropyinpr2,
+ kat3654_addinpr2, kat3654_retbits
+};
+static const struct drbg_kat kat3654 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3654_t
+};
+
+static const unsigned char kat3655_entropyin[] = {
+ 0xd7, 0xfb, 0x73, 0x77, 0x6b, 0x1c, 0x69, 0x58, 0x8e, 0x42, 0x63, 0x4b,
+ 0xb2, 0xea, 0x09, 0xdb, 0x7c, 0xc0, 0xf0, 0x4e, 0xbd, 0xb7, 0x9b, 0x50,
+ 0x4f, 0x30, 0x72, 0xca, 0x49, 0xf5, 0x7a, 0xcd,
+};
+static const unsigned char kat3655_nonce[] = {0};
+static const unsigned char kat3655_persstr[] = {
+ 0x32, 0xbd, 0xd8, 0xd9, 0xc9, 0xd6, 0x94, 0x05, 0xff, 0x0f, 0xa4, 0x4a,
+ 0x4d, 0xba, 0x8d, 0xd8, 0x85, 0x58, 0xed, 0x62, 0x9a, 0x7e, 0x75, 0x17,
+ 0x14, 0xd5, 0x13, 0x9c, 0xc8, 0x71, 0xa7, 0xa0,
+};
+static const unsigned char kat3655_entropyinpr1[] = {
+ 0x76, 0x49, 0xc8, 0x4f, 0x58, 0x9f, 0x1c, 0x0d, 0x78, 0x9b, 0xef, 0xb3,
+ 0x29, 0xd5, 0x99, 0x48, 0xc3, 0x97, 0xb5, 0x35, 0xa4, 0x16, 0xfd, 0xb3,
+ 0x46, 0xb7, 0xdc, 0x11, 0x23, 0x56, 0x7c, 0x15,
+};
+static const unsigned char kat3655_addinpr1[] = {
+ 0xce, 0xe7, 0x4c, 0x61, 0x33, 0x91, 0xec, 0x0d, 0xd3, 0xd8, 0xb2, 0x7f,
+ 0xff, 0x73, 0x61, 0x7d, 0xbf, 0xdf, 0xa1, 0x47, 0xea, 0xb0, 0x88, 0x4d,
+ 0x22, 0xef, 0x09, 0xeb, 0x6a, 0xf1, 0x3b, 0x68,
+};
+static const unsigned char kat3655_entropyinpr2[] = {
+ 0xf6, 0x0b, 0x46, 0x18, 0x23, 0x6c, 0xcc, 0x43, 0x05, 0xbb, 0x3c, 0x2d,
+ 0x7c, 0xcc, 0x9c, 0x73, 0x3c, 0x22, 0x19, 0x16, 0xb7, 0x76, 0xfe, 0x55,
+ 0xb4, 0xdb, 0x02, 0x78, 0xfa, 0x49, 0xb2, 0x69,
+};
+static const unsigned char kat3655_addinpr2[] = {
+ 0xb7, 0x77, 0xc9, 0xa6, 0x5e, 0x84, 0x4b, 0x6b, 0xe1, 0x85, 0x00, 0x7e,
+ 0x14, 0x92, 0xb8, 0x01, 0xfe, 0x3f, 0x60, 0x28, 0x48, 0x31, 0xea, 0x25,
+ 0xc9, 0xef, 0xfa, 0x90, 0x12, 0x3e, 0x0b, 0xd0,
+};
+static const unsigned char kat3655_retbits[] = {
+ 0x21, 0xd9, 0xc5, 0x79, 0x17, 0x63, 0x9e, 0x59, 0xd6, 0x84, 0x7a, 0xd0,
+ 0x32, 0x83, 0xb0, 0x44, 0xd2, 0x29, 0x10, 0x3a, 0xb4, 0x0b, 0x08, 0xbc,
+ 0x9b, 0xef, 0x6d, 0xae, 0xf3, 0xf0, 0xcd, 0xff, 0xac, 0x11, 0x9d, 0x3c,
+ 0xa4, 0x54, 0xc4, 0xb0, 0x05, 0xd4, 0xfa, 0x65, 0xef, 0xe1, 0xfe, 0xf8,
+ 0x9f, 0x18, 0xf9, 0xd4, 0x4e, 0x37, 0x4d, 0x44, 0xc3, 0xfe, 0xa4, 0xc6,
+ 0x6a, 0xa4, 0xff, 0x8e,
+};
+static const struct drbg_kat_pr_true kat3655_t = {
+ 9, kat3655_entropyin, kat3655_nonce, kat3655_persstr,
+ kat3655_entropyinpr1, kat3655_addinpr1, kat3655_entropyinpr2,
+ kat3655_addinpr2, kat3655_retbits
+};
+static const struct drbg_kat kat3655 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3655_t
+};
+
+static const unsigned char kat3656_entropyin[] = {
+ 0xbe, 0xc5, 0x62, 0x56, 0xce, 0x5f, 0x06, 0x6d, 0x32, 0x70, 0x58, 0x66,
+ 0xbd, 0x43, 0x1f, 0x84, 0xa2, 0x43, 0x90, 0x22, 0x33, 0x23, 0x92, 0x4a,
+ 0x7a, 0xf9, 0x0e, 0x33, 0xf8, 0xa8, 0x5b, 0x70,
+};
+static const unsigned char kat3656_nonce[] = {0};
+static const unsigned char kat3656_persstr[] = {
+ 0x5e, 0x0a, 0x0f, 0xfd, 0x45, 0x82, 0xfc, 0x6d, 0x32, 0xdf, 0xe4, 0x12,
+ 0xfb, 0xfc, 0xc9, 0x5e, 0x03, 0x3d, 0x59, 0xde, 0x2f, 0x67, 0x30, 0x18,
+ 0xfc, 0x76, 0xbd, 0x64, 0x51, 0xe9, 0xdc, 0x14,
+};
+static const unsigned char kat3656_entropyinpr1[] = {
+ 0x21, 0xa3, 0xd1, 0x39, 0x27, 0xd2, 0xa7, 0x23, 0x94, 0x2e, 0xf3, 0x29,
+ 0x41, 0xfe, 0xfe, 0xe8, 0x3e, 0x82, 0x3e, 0x3b, 0xf4, 0xe3, 0x70, 0x2e,
+ 0x38, 0x4c, 0x49, 0x60, 0xec, 0x33, 0xa3, 0x17,
+};
+static const unsigned char kat3656_addinpr1[] = {
+ 0xbe, 0xa8, 0x34, 0x98, 0x2a, 0x99, 0xe6, 0xdf, 0x84, 0x0a, 0xc9, 0x26,
+ 0x18, 0x1e, 0xf8, 0xcf, 0x66, 0xdf, 0x1d, 0xfe, 0xbc, 0xab, 0x0a, 0x31,
+ 0x50, 0x4c, 0x8e, 0xfa, 0x10, 0x4b, 0x60, 0xd1,
+};
+static const unsigned char kat3656_entropyinpr2[] = {
+ 0x83, 0xf1, 0x12, 0xba, 0xaf, 0x10, 0x8c, 0x73, 0x4f, 0x5c, 0x94, 0xe6,
+ 0x7f, 0x57, 0x8c, 0x5c, 0xc7, 0xac, 0x2a, 0x43, 0x28, 0x70, 0xd3, 0x7e,
+ 0x9d, 0x3c, 0x91, 0x15, 0x30, 0x0c, 0xcf, 0x6b,
+};
+static const unsigned char kat3656_addinpr2[] = {
+ 0x56, 0xce, 0x06, 0x2a, 0x0f, 0x58, 0x32, 0xcd, 0xa6, 0x63, 0xbf, 0x14,
+ 0x67, 0x24, 0xe4, 0xf5, 0x49, 0x8a, 0x25, 0xb8, 0xdf, 0x44, 0x9d, 0x51,
+ 0x51, 0xf5, 0x88, 0xfa, 0xc5, 0x7a, 0xb8, 0xde,
+};
+static const unsigned char kat3656_retbits[] = {
+ 0x49, 0xc2, 0x50, 0x0f, 0x53, 0xba, 0xd7, 0x58, 0xff, 0x45, 0xd8, 0x89,
+ 0x59, 0x18, 0x50, 0x96, 0x90, 0xeb, 0x4c, 0x6d, 0x8e, 0x14, 0x77, 0x0e,
+ 0x7d, 0x6d, 0x19, 0x26, 0x41, 0x56, 0x8e, 0x0a, 0x85, 0x08, 0x2f, 0x62,
+ 0x58, 0x3a, 0xef, 0xbb, 0x0e, 0xb9, 0x34, 0x2e, 0x28, 0x3d, 0x5f, 0x6f,
+ 0xbd, 0xfc, 0xda, 0x12, 0xc5, 0x20, 0x5a, 0x6c, 0xe4, 0x3c, 0x91, 0x33,
+ 0xed, 0x49, 0xb9, 0x81,
+};
+static const struct drbg_kat_pr_true kat3656_t = {
+ 10, kat3656_entropyin, kat3656_nonce, kat3656_persstr,
+ kat3656_entropyinpr1, kat3656_addinpr1, kat3656_entropyinpr2,
+ kat3656_addinpr2, kat3656_retbits
+};
+static const struct drbg_kat kat3656 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3656_t
+};
+
+static const unsigned char kat3657_entropyin[] = {
+ 0xcb, 0xc8, 0x54, 0xa6, 0x94, 0x5c, 0xdd, 0xc2, 0xc1, 0x84, 0x22, 0x30,
+ 0x1e, 0x4c, 0xa8, 0x08, 0x72, 0xc7, 0xd2, 0x88, 0x5a, 0x45, 0x17, 0x79,
+ 0xc9, 0x93, 0x31, 0xf5, 0xcb, 0xd4, 0xd3, 0x4c,
+};
+static const unsigned char kat3657_nonce[] = {0};
+static const unsigned char kat3657_persstr[] = {
+ 0xd7, 0x33, 0xa7, 0xda, 0x06, 0xea, 0x57, 0x09, 0x31, 0x55, 0x77, 0xa7,
+ 0x51, 0xf7, 0x45, 0x18, 0x6d, 0xc2, 0x7f, 0x04, 0x14, 0x95, 0x6b, 0xef,
+ 0x52, 0x2a, 0x21, 0xb6, 0xa5, 0x58, 0x4f, 0x21,
+};
+static const unsigned char kat3657_entropyinpr1[] = {
+ 0xb8, 0x15, 0x0c, 0xcf, 0x68, 0x58, 0xbe, 0xd3, 0x2a, 0x62, 0xe9, 0x85,
+ 0x76, 0x6f, 0x28, 0x94, 0xf1, 0x6a, 0x38, 0x0d, 0x97, 0xe2, 0x62, 0xc6,
+ 0xa0, 0xa5, 0x80, 0xb0, 0x29, 0xd7, 0x8b, 0x73,
+};
+static const unsigned char kat3657_addinpr1[] = {
+ 0xb3, 0xe4, 0xa0, 0xba, 0x71, 0x90, 0x60, 0xa9, 0xba, 0x63, 0x6e, 0x55,
+ 0x8d, 0x31, 0x87, 0xfd, 0x79, 0x8a, 0x84, 0x69, 0xd2, 0x8a, 0xc6, 0x1f,
+ 0x4c, 0x92, 0xf0, 0x0e, 0xff, 0x61, 0x01, 0x2a,
+};
+static const unsigned char kat3657_entropyinpr2[] = {
+ 0x65, 0x64, 0x15, 0x10, 0x7f, 0x51, 0xa7, 0x26, 0x02, 0x82, 0xbc, 0xb2,
+ 0x52, 0x5f, 0xf1, 0x84, 0xe7, 0x5d, 0xf7, 0x20, 0x99, 0x6e, 0x3d, 0xef,
+ 0x8e, 0xd8, 0xd1, 0x3f, 0x5f, 0xaf, 0x05, 0xce,
+};
+static const unsigned char kat3657_addinpr2[] = {
+ 0xa8, 0x38, 0x80, 0xd2, 0x5a, 0x8d, 0x6e, 0xb2, 0x8d, 0x66, 0xd1, 0x59,
+ 0xa6, 0x2f, 0x56, 0xd2, 0x3b, 0x2d, 0xb0, 0xe6, 0x87, 0xdf, 0xfc, 0xde,
+ 0x6c, 0x64, 0xcb, 0x29, 0x74, 0xe8, 0x87, 0x1a,
+};
+static const unsigned char kat3657_retbits[] = {
+ 0xd3, 0xb2, 0x1d, 0xa9, 0xc2, 0xd9, 0xa7, 0xbc, 0xed, 0x12, 0x94, 0x67,
+ 0x50, 0xe4, 0x09, 0xf9, 0xf2, 0xb7, 0xc6, 0xf3, 0xf8, 0x4d, 0x74, 0x53,
+ 0x1d, 0x07, 0x11, 0xe4, 0x1e, 0x8c, 0xc0, 0x19, 0xeb, 0xf5, 0x9d, 0x35,
+ 0x1a, 0xd9, 0x33, 0xbb, 0x1e, 0x77, 0xd6, 0xeb, 0xbe, 0xf2, 0xe9, 0xff,
+ 0x98, 0x01, 0x6b, 0x68, 0x5d, 0xf9, 0x0f, 0x60, 0x83, 0x66, 0xe3, 0x2a,
+ 0x9d, 0x78, 0x40, 0x58,
+};
+static const struct drbg_kat_pr_true kat3657_t = {
+ 11, kat3657_entropyin, kat3657_nonce, kat3657_persstr,
+ kat3657_entropyinpr1, kat3657_addinpr1, kat3657_entropyinpr2,
+ kat3657_addinpr2, kat3657_retbits
+};
+static const struct drbg_kat kat3657 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3657_t
+};
+
+static const unsigned char kat3658_entropyin[] = {
+ 0x20, 0x43, 0x76, 0x3f, 0x12, 0x7c, 0x2c, 0x72, 0xac, 0x58, 0x1b, 0x2d,
+ 0x6a, 0xe6, 0x2e, 0xe9, 0x80, 0xfa, 0x4c, 0xc7, 0x2e, 0x30, 0x57, 0xa5,
+ 0xcf, 0x10, 0x3d, 0x40, 0xc1, 0xac, 0x05, 0xb2,
+};
+static const unsigned char kat3658_nonce[] = {0};
+static const unsigned char kat3658_persstr[] = {
+ 0x45, 0xc7, 0xa2, 0x9c, 0x14, 0x7c, 0xeb, 0x42, 0xc3, 0x2a, 0xdb, 0xac,
+ 0xed, 0xd7, 0x24, 0xc0, 0x2e, 0x63, 0x26, 0xb5, 0xdd, 0xc9, 0x98, 0xef,
+ 0x64, 0x0e, 0x4e, 0x52, 0xf9, 0x23, 0x53, 0xb8,
+};
+static const unsigned char kat3658_entropyinpr1[] = {
+ 0xd9, 0xb7, 0x9a, 0x0e, 0x45, 0x50, 0x58, 0x0b, 0xed, 0x48, 0xce, 0x52,
+ 0xe7, 0xc6, 0xb7, 0x95, 0xa2, 0xf3, 0x37, 0xb0, 0x95, 0x7e, 0xf8, 0xbc,
+ 0xc0, 0xc3, 0x7d, 0xf2, 0x37, 0x1a, 0x12, 0x95,
+};
+static const unsigned char kat3658_addinpr1[] = {
+ 0x87, 0x79, 0xaa, 0xdb, 0x8b, 0x9d, 0xc2, 0x68, 0x51, 0x74, 0x31, 0x20,
+ 0xea, 0x7e, 0x41, 0xed, 0xf8, 0x24, 0xdb, 0x2a, 0xd7, 0xc9, 0xe5, 0x67,
+ 0xdf, 0x23, 0xb1, 0x54, 0xf2, 0x12, 0x06, 0x0f,
+};
+static const unsigned char kat3658_entropyinpr2[] = {
+ 0xde, 0x11, 0x49, 0xf1, 0xd2, 0xce, 0x43, 0xc5, 0x82, 0x25, 0xfd, 0x25,
+ 0x70, 0x17, 0x87, 0x43, 0xf1, 0x42, 0x9d, 0xc9, 0xdd, 0x33, 0xe5, 0x42,
+ 0x36, 0xe5, 0xdf, 0xc0, 0x85, 0x7c, 0x89, 0x84,
+};
+static const unsigned char kat3658_addinpr2[] = {
+ 0x4f, 0xdf, 0xaa, 0xfb, 0xfb, 0x71, 0xa0, 0x68, 0x56, 0x69, 0xfd, 0xf0,
+ 0x90, 0x02, 0x54, 0x17, 0xde, 0xfc, 0x9f, 0x0c, 0xfb, 0x6b, 0xeb, 0x0a,
+ 0x02, 0x36, 0x52, 0x1e, 0x6b, 0xae, 0x29, 0x28,
+};
+static const unsigned char kat3658_retbits[] = {
+ 0x83, 0x19, 0x8a, 0xdb, 0xeb, 0x9e, 0xa5, 0x99, 0x4e, 0xc8, 0x29, 0x48,
+ 0xd6, 0xf6, 0xd0, 0x36, 0x1a, 0x08, 0xe5, 0xf0, 0xe1, 0x7b, 0xec, 0x10,
+ 0x3d, 0xbf, 0xf4, 0x12, 0x5e, 0x2f, 0x24, 0xa6, 0x71, 0xe3, 0xb3, 0x72,
+ 0x09, 0xc5, 0x9f, 0xa9, 0x00, 0xa7, 0xf3, 0xf1, 0x9f, 0xfd, 0x20, 0x07,
+ 0x78, 0xfa, 0xa2, 0x30, 0xff, 0x32, 0x90, 0x9e, 0x61, 0xcc, 0x0b, 0x05,
+ 0xec, 0x9d, 0x86, 0xc7,
+};
+static const struct drbg_kat_pr_true kat3658_t = {
+ 12, kat3658_entropyin, kat3658_nonce, kat3658_persstr,
+ kat3658_entropyinpr1, kat3658_addinpr1, kat3658_entropyinpr2,
+ kat3658_addinpr2, kat3658_retbits
+};
+static const struct drbg_kat kat3658 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3658_t
+};
+
+static const unsigned char kat3659_entropyin[] = {
+ 0x17, 0x8e, 0xfb, 0xf1, 0xe3, 0x7a, 0xd1, 0xfa, 0x19, 0xd8, 0x36, 0x13,
+ 0x57, 0xae, 0xbf, 0x28, 0x41, 0xeb, 0xc9, 0x73, 0x8b, 0x29, 0x2b, 0xd1,
+ 0xd4, 0x01, 0x75, 0x97, 0xfd, 0x75, 0x1e, 0x9a,
+};
+static const unsigned char kat3659_nonce[] = {0};
+static const unsigned char kat3659_persstr[] = {
+ 0x37, 0x84, 0xf3, 0x05, 0xb9, 0x16, 0xe2, 0xf3, 0x44, 0xe3, 0x16, 0x3e,
+ 0x46, 0x2a, 0x83, 0xde, 0x37, 0x5a, 0x50, 0x8e, 0xd8, 0xc8, 0xaf, 0x81,
+ 0x56, 0xad, 0xd7, 0xac, 0x23, 0x74, 0x04, 0xff,
+};
+static const unsigned char kat3659_entropyinpr1[] = {
+ 0x95, 0x71, 0x6e, 0x48, 0x4c, 0xd8, 0x11, 0xc3, 0x26, 0x73, 0xbb, 0xd8,
+ 0xf4, 0x41, 0xf8, 0xa2, 0x32, 0xe4, 0x45, 0xed, 0x05, 0xe4, 0x7b, 0xec,
+ 0xa6, 0x48, 0x8c, 0x4d, 0x3e, 0x0e, 0x36, 0xa5,
+};
+static const unsigned char kat3659_addinpr1[] = {
+ 0xa0, 0x2e, 0xa6, 0xf6, 0xd9, 0xb8, 0x99, 0x72, 0xa3, 0xf7, 0x1d, 0xe2,
+ 0xd9, 0xf1, 0x77, 0x6f, 0x96, 0xb2, 0xf5, 0x94, 0xb9, 0x24, 0x52, 0xa4,
+ 0xee, 0x6e, 0xc7, 0x59, 0xc4, 0x0f, 0x42, 0x77,
+};
+static const unsigned char kat3659_entropyinpr2[] = {
+ 0xfc, 0x86, 0x25, 0xd5, 0xcf, 0x7e, 0xaf, 0x5f, 0xac, 0xa7, 0xb6, 0x38,
+ 0x6f, 0xee, 0xcc, 0x2e, 0x2e, 0xd1, 0x5b, 0xee, 0x2d, 0x3f, 0xdd, 0xa3,
+ 0xb7, 0x22, 0xf1, 0x03, 0x2d, 0x03, 0xa2, 0xb3,
+};
+static const unsigned char kat3659_addinpr2[] = {
+ 0x17, 0x0f, 0x9c, 0xab, 0x0a, 0xd1, 0x7e, 0xb2, 0x86, 0x70, 0x2e, 0x02,
+ 0xd4, 0x8b, 0x3f, 0xcb, 0x09, 0xc0, 0xfe, 0x34, 0xe4, 0xee, 0xa6, 0x58,
+ 0xfe, 0xa5, 0x36, 0xc3, 0x76, 0x28, 0xe5, 0x3c,
+};
+static const unsigned char kat3659_retbits[] = {
+ 0xa1, 0xe4, 0xc5, 0x16, 0x67, 0x56, 0x19, 0xf7, 0x50, 0x91, 0xd8, 0x30,
+ 0x72, 0xe1, 0xac, 0xde, 0x7b, 0x47, 0x98, 0x1e, 0x89, 0x56, 0x13, 0x5b,
+ 0x54, 0xcd, 0x87, 0x56, 0x8b, 0xcc, 0xe5, 0xb7, 0xf0, 0xea, 0x03, 0x84,
+ 0x5c, 0x2e, 0x09, 0xe1, 0xeb, 0x0c, 0xd6, 0xa8, 0x65, 0x29, 0x7c, 0xe5,
+ 0xb8, 0x71, 0x33, 0xd9, 0xd0, 0xc2, 0xee, 0x9e, 0x48, 0xe6, 0xea, 0x69,
+ 0x0d, 0xbc, 0x63, 0x10,
+};
+static const struct drbg_kat_pr_true kat3659_t = {
+ 13, kat3659_entropyin, kat3659_nonce, kat3659_persstr,
+ kat3659_entropyinpr1, kat3659_addinpr1, kat3659_entropyinpr2,
+ kat3659_addinpr2, kat3659_retbits
+};
+static const struct drbg_kat kat3659 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3659_t
+};
+
+static const unsigned char kat3660_entropyin[] = {
+ 0xcc, 0x15, 0x11, 0xf4, 0xe3, 0x53, 0x0b, 0x26, 0xba, 0x89, 0x95, 0x7c,
+ 0x3f, 0x30, 0xda, 0xdb, 0x17, 0xf0, 0x40, 0x98, 0x92, 0x16, 0xfe, 0xfc,
+ 0x57, 0xb5, 0x90, 0x7e, 0xf4, 0x37, 0xbd, 0x10,
+};
+static const unsigned char kat3660_nonce[] = {0};
+static const unsigned char kat3660_persstr[] = {
+ 0x83, 0x8b, 0x73, 0x06, 0x5f, 0x63, 0x4f, 0x9e, 0xf6, 0xe8, 0x9b, 0x67,
+ 0x77, 0xf4, 0xf7, 0xd6, 0x6f, 0xc4, 0x79, 0x42, 0xff, 0x60, 0xae, 0xde,
+ 0x0d, 0x6f, 0xe4, 0x2b, 0xb7, 0x4c, 0xb0, 0x01,
+};
+static const unsigned char kat3660_entropyinpr1[] = {
+ 0xbb, 0xec, 0x89, 0x7b, 0x0d, 0x90, 0xfe, 0x17, 0x35, 0xbb, 0x49, 0x24,
+ 0x81, 0x43, 0xcb, 0x24, 0xb1, 0xe0, 0x44, 0x87, 0xfe, 0xe6, 0x80, 0x07,
+ 0x1d, 0x66, 0x76, 0x77, 0xef, 0x00, 0x6d, 0xaa,
+};
+static const unsigned char kat3660_addinpr1[] = {
+ 0x1e, 0x9e, 0x8a, 0x1a, 0x97, 0x3e, 0x4e, 0xaf, 0xf5, 0x07, 0xb3, 0x17,
+ 0xf6, 0x8c, 0xfa, 0x08, 0xb9, 0x85, 0x85, 0xb8, 0xab, 0x44, 0x13, 0x20,
+ 0x24, 0xff, 0xc6, 0x6c, 0x61, 0x42, 0x10, 0x8a,
+};
+static const unsigned char kat3660_entropyinpr2[] = {
+ 0x16, 0xf3, 0xbd, 0x62, 0x63, 0x43, 0x68, 0x53, 0x5d, 0xa1, 0x70, 0xa7,
+ 0xf1, 0x17, 0xbb, 0xf8, 0xb8, 0x96, 0xba, 0x1b, 0xfa, 0xc5, 0xab, 0x68,
+ 0x22, 0x47, 0xb1, 0xb5, 0x54, 0x52, 0xe8, 0x44,
+};
+static const unsigned char kat3660_addinpr2[] = {
+ 0x6f, 0xd4, 0x6c, 0xa1, 0x8d, 0x10, 0x32, 0x6f, 0x57, 0x34, 0xd0, 0x16,
+ 0x01, 0x63, 0xbc, 0x42, 0xd3, 0xda, 0xa5, 0x5e, 0x3c, 0x74, 0xa2, 0xe0,
+ 0xfc, 0x73, 0x80, 0xfd, 0x84, 0xdc, 0x0b, 0xec,
+};
+static const unsigned char kat3660_retbits[] = {
+ 0xf8, 0x4c, 0x05, 0xb1, 0x44, 0xb1, 0x14, 0xfb, 0xd2, 0xf8, 0x0a, 0x21,
+ 0x86, 0x2a, 0x44, 0xf3, 0x64, 0x1f, 0xbe, 0x98, 0x09, 0x57, 0xe3, 0xfa,
+ 0xb7, 0x36, 0x97, 0x6d, 0xb3, 0x7b, 0x8b, 0xca, 0x82, 0x3d, 0x7f, 0x84,
+ 0x8f, 0x32, 0xf4, 0xac, 0xa6, 0x02, 0x68, 0xc0, 0x20, 0xa2, 0xe8, 0x5a,
+ 0x5e, 0xe0, 0xf3, 0x1f, 0xb7, 0x46, 0xf0, 0xdf, 0xf0, 0x66, 0xb8, 0x3d,
+ 0x32, 0x56, 0x3d, 0xf9,
+};
+static const struct drbg_kat_pr_true kat3660_t = {
+ 14, kat3660_entropyin, kat3660_nonce, kat3660_persstr,
+ kat3660_entropyinpr1, kat3660_addinpr1, kat3660_entropyinpr2,
+ kat3660_addinpr2, kat3660_retbits
+};
+static const struct drbg_kat kat3660 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3660_t
+};
+
+static const unsigned char kat3661_entropyin[] = {
+ 0xdb, 0x6b, 0xb4, 0x98, 0xf9, 0x71, 0x20, 0xae, 0xde, 0x8b, 0x99, 0xe8,
+ 0xa2, 0xb4, 0x17, 0x4c, 0xc0, 0x05, 0xef, 0xef, 0x77, 0x85, 0x5a, 0xef,
+ 0x21, 0x8d, 0x5d, 0x3f, 0x15, 0x49, 0x4e, 0x94,
+};
+static const unsigned char kat3661_nonce[] = {0};
+static const unsigned char kat3661_persstr[] = {0};
+static const unsigned char kat3661_entropyinpr1[] = {
+ 0x2f, 0x28, 0xf4, 0x96, 0x5f, 0x77, 0xc6, 0x7a, 0x55, 0x40, 0x1e, 0x01,
+ 0x74, 0x5c, 0xb5, 0x5c, 0x64, 0xa0, 0x84, 0x12, 0x74, 0xc2, 0x41, 0xe2,
+ 0x66, 0xf7, 0xfe, 0x40, 0x79, 0xe5, 0x7a, 0x63,
+};
+static const unsigned char kat3661_addinpr1[] = {0};
+static const unsigned char kat3661_entropyinpr2[] = {
+ 0x0c, 0x82, 0x3e, 0xea, 0xe1, 0x0e, 0x26, 0xec, 0x1d, 0x48, 0x26, 0xe2,
+ 0xa5, 0x62, 0x58, 0xf4, 0x9e, 0x54, 0x79, 0x52, 0xf4, 0xcb, 0x86, 0x4c,
+ 0x5f, 0xd9, 0xb3, 0x2e, 0x33, 0xa7, 0x0c, 0x50,
+};
+static const unsigned char kat3661_addinpr2[] = {0};
+static const unsigned char kat3661_retbits[] = {
+ 0xe6, 0x66, 0x7c, 0xf7, 0xb2, 0x79, 0xa4, 0x81, 0xa0, 0xb8, 0x9e, 0xea,
+ 0x9f, 0x2b, 0x52, 0xf2, 0x20, 0xf2, 0x72, 0xc1, 0xc0, 0x6a, 0x3a, 0x76,
+ 0xda, 0xef, 0x95, 0xe9, 0x0c, 0xcb, 0xda, 0x26, 0xca, 0xf0, 0x7c, 0x56,
+ 0x9c, 0x68, 0xda, 0xd4, 0x51, 0x87, 0x3f, 0xa4, 0x49, 0x79, 0x68, 0xb3,
+ 0xfa, 0x07, 0x3b, 0x93, 0x69, 0xd1, 0x3d, 0xae, 0xbd, 0x22, 0x9e, 0x75,
+ 0x4c, 0x9c, 0xb2, 0xec,
+};
+static const struct drbg_kat_pr_true kat3661_t = {
+ 0, kat3661_entropyin, kat3661_nonce, kat3661_persstr,
+ kat3661_entropyinpr1, kat3661_addinpr1, kat3661_entropyinpr2,
+ kat3661_addinpr2, kat3661_retbits
+};
+static const struct drbg_kat kat3661 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3661_t
+};
+
+static const unsigned char kat3662_entropyin[] = {
+ 0xab, 0xe6, 0xe2, 0xed, 0xf1, 0x9d, 0xf0, 0x63, 0x0e, 0x62, 0x7f, 0xe5,
+ 0xe5, 0x87, 0x07, 0x6d, 0x4e, 0x81, 0xb4, 0xfc, 0x94, 0x41, 0x3a, 0x01,
+ 0xe8, 0xee, 0x37, 0x24, 0x2c, 0xdd, 0xaa, 0xea,
+};
+static const unsigned char kat3662_nonce[] = {0};
+static const unsigned char kat3662_persstr[] = {0};
+static const unsigned char kat3662_entropyinpr1[] = {
+ 0x82, 0xc7, 0x71, 0x18, 0x75, 0x5a, 0x84, 0xda, 0xa2, 0x2e, 0xac, 0x2f,
+ 0x47, 0xaf, 0x90, 0x9e, 0xe7, 0xe6, 0xc9, 0x30, 0xd0, 0x61, 0x21, 0x79,
+ 0x94, 0xbb, 0x59, 0x6e, 0x2b, 0x84, 0xce, 0x54,
+};
+static const unsigned char kat3662_addinpr1[] = {0};
+static const unsigned char kat3662_entropyinpr2[] = {
+ 0xd0, 0x6e, 0x80, 0x40, 0xa8, 0xf7, 0xf5, 0xcf, 0x48, 0x16, 0xd0, 0x91,
+ 0x55, 0xb1, 0xd5, 0x3e, 0x60, 0x5a, 0xd1, 0xae, 0xf3, 0xbf, 0x15, 0xa8,
+ 0x84, 0x9d, 0x81, 0x90, 0x43, 0x92, 0xf7, 0x12,
+};
+static const unsigned char kat3662_addinpr2[] = {0};
+static const unsigned char kat3662_retbits[] = {
+ 0x3b, 0x4a, 0x2f, 0x22, 0xb9, 0xb4, 0xe5, 0x46, 0x0e, 0x97, 0x25, 0x6a,
+ 0x83, 0xaa, 0xdc, 0x1f, 0x28, 0x7f, 0x3f, 0xf0, 0x18, 0x6d, 0x66, 0xa9,
+ 0xc7, 0xdb, 0x9a, 0x06, 0xcf, 0xc0, 0xc9, 0xa0, 0xc3, 0x5a, 0xb6, 0x0f,
+ 0x01, 0xec, 0x52, 0xf6, 0x8f, 0x25, 0x6b, 0xa4, 0x6f, 0x77, 0x96, 0xf9,
+ 0xbd, 0x53, 0x10, 0x4b, 0x00, 0xac, 0xa5, 0x9d, 0xbe, 0xab, 0x78, 0x58,
+ 0xf5, 0xce, 0xd3, 0x7f,
+};
+static const struct drbg_kat_pr_true kat3662_t = {
+ 1, kat3662_entropyin, kat3662_nonce, kat3662_persstr,
+ kat3662_entropyinpr1, kat3662_addinpr1, kat3662_entropyinpr2,
+ kat3662_addinpr2, kat3662_retbits
+};
+static const struct drbg_kat kat3662 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3662_t
+};
+
+static const unsigned char kat3663_entropyin[] = {
+ 0x27, 0xf9, 0xac, 0x96, 0xdd, 0x7e, 0xdb, 0xe5, 0xd0, 0xf6, 0x49, 0xdf,
+ 0x3a, 0x31, 0x88, 0x10, 0xb5, 0xc4, 0x5e, 0xa6, 0xd1, 0xfe, 0x16, 0x5c,
+ 0xad, 0xa2, 0xfe, 0x78, 0x2f, 0x72, 0x7d, 0x80,
+};
+static const unsigned char kat3663_nonce[] = {0};
+static const unsigned char kat3663_persstr[] = {0};
+static const unsigned char kat3663_entropyinpr1[] = {
+ 0x8b, 0xde, 0x9b, 0x95, 0x7d, 0x32, 0x61, 0xfa, 0xbe, 0x26, 0xd3, 0x58,
+ 0xaa, 0xc3, 0xba, 0x40, 0x89, 0xa5, 0x55, 0x37, 0x84, 0x9b, 0xe4, 0x97,
+ 0xd3, 0x25, 0xba, 0xf9, 0xa4, 0x8c, 0xa4, 0xad,
+};
+static const unsigned char kat3663_addinpr1[] = {0};
+static const unsigned char kat3663_entropyinpr2[] = {
+ 0x2e, 0xb3, 0xb6, 0x89, 0x57, 0x49, 0x03, 0x6c, 0xae, 0xcd, 0x0b, 0x25,
+ 0x62, 0x9b, 0x71, 0xa2, 0x01, 0x82, 0x6c, 0xae, 0x03, 0xf5, 0xf6, 0xcb,
+ 0x5b, 0x73, 0xb4, 0xfe, 0x86, 0x94, 0xcf, 0x96,
+};
+static const unsigned char kat3663_addinpr2[] = {0};
+static const unsigned char kat3663_retbits[] = {
+ 0x92, 0xd0, 0xbd, 0x52, 0xe3, 0xd3, 0xc4, 0x3c, 0xd9, 0x37, 0x29, 0xef,
+ 0xea, 0x4b, 0x51, 0x1f, 0xc7, 0xd1, 0x09, 0xe9, 0x7d, 0x6d, 0xe4, 0x97,
+ 0x24, 0xa9, 0xbc, 0xb0, 0xba, 0x75, 0x4d, 0xb2, 0x3c, 0x83, 0xb2, 0xf4,
+ 0x85, 0xf0, 0xc1, 0x13, 0x18, 0xa5, 0xcb, 0x40, 0x1e, 0xf2, 0x0d, 0x1a,
+ 0x5e, 0x47, 0x63, 0xec, 0xc5, 0x80, 0xcd, 0x8a, 0x37, 0xa1, 0xd3, 0x65,
+ 0x32, 0x05, 0x49, 0x9b,
+};
+static const struct drbg_kat_pr_true kat3663_t = {
+ 2, kat3663_entropyin, kat3663_nonce, kat3663_persstr,
+ kat3663_entropyinpr1, kat3663_addinpr1, kat3663_entropyinpr2,
+ kat3663_addinpr2, kat3663_retbits
+};
+static const struct drbg_kat kat3663 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3663_t
+};
+
+static const unsigned char kat3664_entropyin[] = {
+ 0xcd, 0xb5, 0x75, 0x21, 0x3b, 0x84, 0xed, 0xfd, 0xd4, 0x56, 0x1c, 0x81,
+ 0x95, 0x94, 0xb6, 0x11, 0x7b, 0x06, 0xe7, 0x51, 0xd7, 0x77, 0xa0, 0x5c,
+ 0xa6, 0x7e, 0x22, 0x91, 0xfa, 0xc0, 0x35, 0xc6,
+};
+static const unsigned char kat3664_nonce[] = {0};
+static const unsigned char kat3664_persstr[] = {0};
+static const unsigned char kat3664_entropyinpr1[] = {
+ 0xd1, 0x8e, 0x8a, 0x22, 0xce, 0xda, 0x05, 0xa5, 0x10, 0x3c, 0x3e, 0xf3,
+ 0x3c, 0x4a, 0x0f, 0xee, 0x80, 0x70, 0xa9, 0xa2, 0xcb, 0x27, 0x91, 0x1b,
+ 0x3d, 0xd5, 0x8b, 0x75, 0xdd, 0x81, 0x36, 0xfb,
+};
+static const unsigned char kat3664_addinpr1[] = {0};
+static const unsigned char kat3664_entropyinpr2[] = {
+ 0xd9, 0xb4, 0x7b, 0xcf, 0xfa, 0xcf, 0xeb, 0x5e, 0xc5, 0x2a, 0x67, 0x5c,
+ 0x28, 0x87, 0x8d, 0xcb, 0xe6, 0x1c, 0x13, 0xe8, 0xe8, 0xa7, 0xd8, 0xb6,
+ 0x71, 0xc2, 0xad, 0x66, 0x28, 0xee, 0xd1, 0xc9,
+};
+static const unsigned char kat3664_addinpr2[] = {0};
+static const unsigned char kat3664_retbits[] = {
+ 0x8d, 0xbf, 0xdc, 0xb6, 0x87, 0x4a, 0xf5, 0x3a, 0x01, 0xfb, 0xe8, 0x5d,
+ 0xb6, 0x47, 0x94, 0x5a, 0xec, 0x99, 0x71, 0x25, 0x3a, 0x40, 0xb8, 0xef,
+ 0xc7, 0x31, 0xbf, 0x10, 0x90, 0x1a, 0xd4, 0xcd, 0x4a, 0x0b, 0x83, 0xb9,
+ 0xfc, 0x18, 0x55, 0x72, 0x02, 0x26, 0x93, 0xd8, 0xd2, 0x42, 0x24, 0x6c,
+ 0xa6, 0x8b, 0x6b, 0x31, 0x16, 0x8b, 0xee, 0xc7, 0x11, 0xfa, 0x23, 0x63,
+ 0xfe, 0x70, 0x2a, 0xfb,
+};
+static const struct drbg_kat_pr_true kat3664_t = {
+ 3, kat3664_entropyin, kat3664_nonce, kat3664_persstr,
+ kat3664_entropyinpr1, kat3664_addinpr1, kat3664_entropyinpr2,
+ kat3664_addinpr2, kat3664_retbits
+};
+static const struct drbg_kat kat3664 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3664_t
+};
+
+static const unsigned char kat3665_entropyin[] = {
+ 0x68, 0x2a, 0x58, 0xab, 0x59, 0x9b, 0x95, 0x0f, 0x11, 0x54, 0xde, 0xcc,
+ 0x79, 0x88, 0xc4, 0x74, 0x1d, 0x10, 0x90, 0x6f, 0x1d, 0x48, 0x77, 0x15,
+ 0xd2, 0xa7, 0xba, 0x76, 0x6e, 0x10, 0x67, 0x56,
+};
+static const unsigned char kat3665_nonce[] = {0};
+static const unsigned char kat3665_persstr[] = {0};
+static const unsigned char kat3665_entropyinpr1[] = {
+ 0xd9, 0xc8, 0x05, 0xbd, 0x1a, 0xb8, 0x62, 0xda, 0x95, 0x75, 0x99, 0x91,
+ 0xab, 0x86, 0xfe, 0x68, 0x38, 0x5b, 0x6c, 0x52, 0x3f, 0xba, 0xc0, 0x8b,
+ 0x97, 0x9e, 0x34, 0x36, 0xca, 0x93, 0x86, 0x05,
+};
+static const unsigned char kat3665_addinpr1[] = {0};
+static const unsigned char kat3665_entropyinpr2[] = {
+ 0x33, 0x6d, 0x8e, 0xc5, 0x96, 0x5b, 0x6f, 0x69, 0x92, 0xad, 0xfc, 0x31,
+ 0x47, 0x71, 0x3f, 0xae, 0x10, 0xa9, 0x76, 0x6a, 0x21, 0x50, 0x80, 0x91,
+ 0xf3, 0xe1, 0xb3, 0x06, 0xb3, 0x0b, 0xc5, 0x9f,
+};
+static const unsigned char kat3665_addinpr2[] = {0};
+static const unsigned char kat3665_retbits[] = {
+ 0x92, 0x74, 0x6b, 0x57, 0x9e, 0x54, 0x52, 0xae, 0x22, 0x64, 0xd9, 0x07,
+ 0xf8, 0x00, 0x86, 0x5a, 0xfa, 0x59, 0x14, 0x18, 0x41, 0x6f, 0xe5, 0x6d,
+ 0x71, 0x9a, 0xf9, 0xaa, 0x0a, 0x39, 0x6b, 0x99, 0x60, 0x85, 0x09, 0xa9,
+ 0x7c, 0xbb, 0xa6, 0xa1, 0x30, 0x97, 0xee, 0x55, 0x7d, 0x25, 0x11, 0x06,
+ 0x34, 0x72, 0xbf, 0x2a, 0xbc, 0xa0, 0x86, 0x31, 0x01, 0x05, 0x2b, 0xeb,
+ 0xf9, 0xd7, 0x77, 0x00,
+};
+static const struct drbg_kat_pr_true kat3665_t = {
+ 4, kat3665_entropyin, kat3665_nonce, kat3665_persstr,
+ kat3665_entropyinpr1, kat3665_addinpr1, kat3665_entropyinpr2,
+ kat3665_addinpr2, kat3665_retbits
+};
+static const struct drbg_kat kat3665 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3665_t
+};
+
+static const unsigned char kat3666_entropyin[] = {
+ 0x97, 0xad, 0xca, 0x81, 0xc0, 0x45, 0xfa, 0x02, 0xe3, 0x0d, 0x4a, 0x0d,
+ 0x72, 0x62, 0x44, 0x85, 0x28, 0x8d, 0x0a, 0xd9, 0x6e, 0x06, 0x6b, 0x13,
+ 0xe8, 0x7a, 0xf4, 0x81, 0x43, 0xf9, 0x68, 0x6c,
+};
+static const unsigned char kat3666_nonce[] = {0};
+static const unsigned char kat3666_persstr[] = {0};
+static const unsigned char kat3666_entropyinpr1[] = {
+ 0x09, 0xeb, 0x90, 0xd3, 0x3a, 0xff, 0xab, 0xa9, 0xc6, 0x4d, 0xeb, 0xfa,
+ 0xd8, 0xb0, 0x7a, 0x62, 0x1e, 0x2c, 0xa7, 0xb7, 0xa0, 0xb7, 0x0d, 0x0f,
+ 0xf1, 0xe2, 0x08, 0x1b, 0x58, 0x23, 0x13, 0x93,
+};
+static const unsigned char kat3666_addinpr1[] = {0};
+static const unsigned char kat3666_entropyinpr2[] = {
+ 0xdd, 0x7b, 0xaa, 0x33, 0x95, 0xcd, 0xe9, 0xe8, 0x57, 0xd9, 0xe6, 0x91,
+ 0x55, 0xdc, 0x95, 0x8a, 0x04, 0x9b, 0x19, 0x2b, 0x83, 0x95, 0xf2, 0xab,
+ 0xf1, 0x3f, 0xc4, 0x6b, 0xbe, 0x99, 0xd8, 0x83,
+};
+static const unsigned char kat3666_addinpr2[] = {0};
+static const unsigned char kat3666_retbits[] = {
+ 0x1c, 0xa6, 0xd2, 0x6c, 0xb3, 0x93, 0xec, 0xdf, 0x92, 0x17, 0x47, 0x9c,
+ 0x29, 0x52, 0xd4, 0x13, 0xa8, 0x4c, 0x2d, 0xca, 0xbb, 0x19, 0x0f, 0x4f,
+ 0xb4, 0x3a, 0xa4, 0x1c, 0x61, 0xdd, 0xe7, 0xa6, 0xe8, 0xea, 0x07, 0xc4,
+ 0xbb, 0xc0, 0x78, 0x32, 0x2f, 0x3f, 0xd8, 0x2c, 0xe3, 0x7e, 0xdf, 0x97,
+ 0xf6, 0xcb, 0x35, 0x82, 0x50, 0x1a, 0xe9, 0x58, 0x89, 0x49, 0xef, 0xcd,
+ 0x29, 0xe2, 0x60, 0x3c,
+};
+static const struct drbg_kat_pr_true kat3666_t = {
+ 5, kat3666_entropyin, kat3666_nonce, kat3666_persstr,
+ kat3666_entropyinpr1, kat3666_addinpr1, kat3666_entropyinpr2,
+ kat3666_addinpr2, kat3666_retbits
+};
+static const struct drbg_kat kat3666 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3666_t
+};
+
+static const unsigned char kat3667_entropyin[] = {
+ 0xcf, 0xca, 0x50, 0xe7, 0xdd, 0x06, 0xd4, 0x38, 0xae, 0x9c, 0x14, 0x27,
+ 0x80, 0xf7, 0xac, 0x16, 0x4b, 0x49, 0x89, 0x9e, 0x67, 0x3f, 0x52, 0x39,
+ 0x10, 0x17, 0xd9, 0x4f, 0x71, 0x3f, 0xaf, 0x74,
+};
+static const unsigned char kat3667_nonce[] = {0};
+static const unsigned char kat3667_persstr[] = {0};
+static const unsigned char kat3667_entropyinpr1[] = {
+ 0x0f, 0x91, 0x61, 0xcc, 0x14, 0x75, 0x93, 0x85, 0x96, 0x74, 0x32, 0xca,
+ 0x96, 0xc1, 0x9b, 0xde, 0xaa, 0x2f, 0xa4, 0x40, 0x50, 0x1f, 0xbf, 0xf1,
+ 0xcf, 0xa2, 0x2b, 0xbb, 0xd9, 0xf5, 0xb8, 0xe9,
+};
+static const unsigned char kat3667_addinpr1[] = {0};
+static const unsigned char kat3667_entropyinpr2[] = {
+ 0x11, 0xd6, 0x4b, 0x5d, 0xe8, 0x47, 0x69, 0x13, 0xcc, 0xaa, 0x11, 0x45,
+ 0x8c, 0x32, 0x25, 0x11, 0x67, 0xc7, 0xe2, 0x88, 0x4e, 0x6f, 0x7d, 0x65,
+ 0x20, 0xb5, 0xae, 0xac, 0xe8, 0x4e, 0x47, 0xd7,
+};
+static const unsigned char kat3667_addinpr2[] = {0};
+static const unsigned char kat3667_retbits[] = {
+ 0x0c, 0xb6, 0x92, 0x6b, 0x15, 0x24, 0x6c, 0xd2, 0x11, 0x5c, 0x24, 0xa0,
+ 0xea, 0x4f, 0xd3, 0x72, 0x90, 0xff, 0x3a, 0x67, 0x74, 0x25, 0xb6, 0x3e,
+ 0x1f, 0xdd, 0xb6, 0xad, 0x05, 0x75, 0xcf, 0x98, 0x7b, 0xd8, 0xc0, 0xd4,
+ 0xf0, 0xac, 0xfc, 0x49, 0x62, 0xe1, 0x1f, 0x7e, 0xec, 0xa5, 0x14, 0xd0,
+ 0x13, 0x14, 0x6d, 0x4e, 0x1c, 0xe0, 0x44, 0x0a, 0x27, 0x61, 0x34, 0xbc,
+ 0xbb, 0x7a, 0x81, 0x20,
+};
+static const struct drbg_kat_pr_true kat3667_t = {
+ 6, kat3667_entropyin, kat3667_nonce, kat3667_persstr,
+ kat3667_entropyinpr1, kat3667_addinpr1, kat3667_entropyinpr2,
+ kat3667_addinpr2, kat3667_retbits
+};
+static const struct drbg_kat kat3667 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3667_t
+};
+
+static const unsigned char kat3668_entropyin[] = {
+ 0xd9, 0x96, 0x6e, 0xb9, 0x1c, 0xb7, 0x4d, 0xbc, 0x27, 0xfb, 0x39, 0x35,
+ 0x1d, 0x83, 0x43, 0xcd, 0x77, 0xe3, 0x6c, 0xae, 0xa6, 0xb5, 0xf4, 0xb2,
+ 0xbb, 0x99, 0x45, 0xeb, 0x2d, 0xc8, 0x91, 0xf8,
+};
+static const unsigned char kat3668_nonce[] = {0};
+static const unsigned char kat3668_persstr[] = {0};
+static const unsigned char kat3668_entropyinpr1[] = {
+ 0xb9, 0x6f, 0xdc, 0x93, 0xf8, 0x20, 0x13, 0x33, 0xff, 0x13, 0x81, 0x1a,
+ 0xbd, 0x03, 0xf9, 0x85, 0x46, 0xc8, 0x83, 0xfd, 0x82, 0x21, 0x6a, 0xdc,
+ 0xbf, 0xae, 0x28, 0xe7, 0x6d, 0x93, 0x1c, 0x77,
+};
+static const unsigned char kat3668_addinpr1[] = {0};
+static const unsigned char kat3668_entropyinpr2[] = {
+ 0x4b, 0x87, 0x1a, 0x4a, 0xa5, 0xea, 0x41, 0x8a, 0x15, 0x5c, 0x23, 0x53,
+ 0xd2, 0x7e, 0x37, 0x08, 0x1b, 0xbf, 0x49, 0x43, 0xd4, 0x77, 0x27, 0x38,
+ 0xda, 0xa4, 0xc0, 0x74, 0xf9, 0x2d, 0x2a, 0x98,
+};
+static const unsigned char kat3668_addinpr2[] = {0};
+static const unsigned char kat3668_retbits[] = {
+ 0xe7, 0xb9, 0x7d, 0xc7, 0x7f, 0x23, 0x0a, 0x0a, 0x7a, 0x1d, 0x0f, 0x7f,
+ 0x6a, 0xcb, 0x5a, 0x91, 0xff, 0x53, 0x9d, 0xf2, 0x6e, 0x83, 0x3a, 0x29,
+ 0xe1, 0xe5, 0x0c, 0x09, 0x60, 0xbb, 0xb5, 0xae, 0xdc, 0x12, 0xd6, 0xfb,
+ 0x46, 0x02, 0x7c, 0xf9, 0x2b, 0x13, 0x0a, 0xd3, 0xe6, 0xeb, 0x93, 0x9c,
+ 0xb0, 0x1a, 0x64, 0xb5, 0xae, 0x6d, 0xfb, 0x9a, 0x7b, 0x9e, 0x18, 0x78,
+ 0xce, 0xf2, 0xdc, 0x56,
+};
+static const struct drbg_kat_pr_true kat3668_t = {
+ 7, kat3668_entropyin, kat3668_nonce, kat3668_persstr,
+ kat3668_entropyinpr1, kat3668_addinpr1, kat3668_entropyinpr2,
+ kat3668_addinpr2, kat3668_retbits
+};
+static const struct drbg_kat kat3668 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3668_t
+};
+
+static const unsigned char kat3669_entropyin[] = {
+ 0x9a, 0x47, 0x04, 0x92, 0x95, 0x36, 0x13, 0x32, 0x1d, 0x55, 0x10, 0x93,
+ 0x87, 0xb7, 0x8a, 0x5d, 0x0f, 0xd1, 0xe5, 0x84, 0x63, 0x2d, 0xaa, 0x3c,
+ 0x60, 0xe2, 0x0a, 0x33, 0x4a, 0x3d, 0xb7, 0xa7,
+};
+static const unsigned char kat3669_nonce[] = {0};
+static const unsigned char kat3669_persstr[] = {0};
+static const unsigned char kat3669_entropyinpr1[] = {
+ 0x50, 0x30, 0xc4, 0x9f, 0xcb, 0x18, 0x0c, 0x26, 0x4c, 0xab, 0x2e, 0x15,
+ 0x9c, 0x7b, 0x7d, 0x0a, 0x31, 0xbe, 0x6e, 0x36, 0xf1, 0x4c, 0x74, 0x33,
+ 0x15, 0xd8, 0x9e, 0xae, 0x5a, 0xb0, 0x05, 0xf9,
+};
+static const unsigned char kat3669_addinpr1[] = {0};
+static const unsigned char kat3669_entropyinpr2[] = {
+ 0xba, 0xac, 0x16, 0xb0, 0xf7, 0x41, 0x1d, 0x0e, 0x7f, 0xcc, 0x25, 0x2e,
+ 0x36, 0x02, 0x2f, 0xfa, 0x74, 0xd2, 0x47, 0x18, 0xe6, 0x93, 0xf3, 0x3e,
+ 0xb4, 0x4a, 0x45, 0xec, 0x0b, 0xa4, 0xbd, 0xdb,
+};
+static const unsigned char kat3669_addinpr2[] = {0};
+static const unsigned char kat3669_retbits[] = {
+ 0xe9, 0x74, 0xbe, 0xf1, 0x52, 0x1c, 0x1e, 0x64, 0xe8, 0xf4, 0x84, 0x3e,
+ 0x2f, 0x8f, 0x02, 0x97, 0x34, 0x14, 0x0c, 0xe2, 0x43, 0xbb, 0x7c, 0x06,
+ 0xd2, 0xad, 0x3a, 0x6e, 0xde, 0xc3, 0x98, 0x6b, 0x8e, 0xe9, 0x69, 0x42,
+ 0x9e, 0x66, 0x76, 0xb8, 0x6f, 0x42, 0xe8, 0xe3, 0xf9, 0x8d, 0x90, 0xa5,
+ 0x45, 0x72, 0xc3, 0x5d, 0xa8, 0xf0, 0x28, 0x50, 0xcc, 0x6e, 0x50, 0xa9,
+ 0x9f, 0x11, 0x3f, 0x79,
+};
+static const struct drbg_kat_pr_true kat3669_t = {
+ 8, kat3669_entropyin, kat3669_nonce, kat3669_persstr,
+ kat3669_entropyinpr1, kat3669_addinpr1, kat3669_entropyinpr2,
+ kat3669_addinpr2, kat3669_retbits
+};
+static const struct drbg_kat kat3669 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3669_t
+};
+
+static const unsigned char kat3670_entropyin[] = {
+ 0x41, 0xc1, 0xb4, 0x30, 0x2f, 0x77, 0x89, 0xe8, 0x51, 0x37, 0x97, 0xdc,
+ 0x78, 0x86, 0x52, 0xd0, 0xe5, 0x7e, 0xfc, 0x21, 0x64, 0x11, 0xe6, 0x6b,
+ 0xb1, 0xcb, 0xc3, 0xe5, 0x57, 0x1c, 0xcf, 0x15,
+};
+static const unsigned char kat3670_nonce[] = {0};
+static const unsigned char kat3670_persstr[] = {0};
+static const unsigned char kat3670_entropyinpr1[] = {
+ 0x0a, 0x82, 0x79, 0xe0, 0x6c, 0xd8, 0xa5, 0x5d, 0x85, 0x0c, 0x10, 0xea,
+ 0x98, 0x65, 0x3c, 0x20, 0x8b, 0xc0, 0x7c, 0x55, 0x0b, 0x24, 0xa1, 0x1e,
+ 0xda, 0xfd, 0xe3, 0x4e, 0x1f, 0xc1, 0xdd, 0xa6,
+};
+static const unsigned char kat3670_addinpr1[] = {0};
+static const unsigned char kat3670_entropyinpr2[] = {
+ 0x46, 0x61, 0x82, 0x5f, 0x15, 0x2d, 0x96, 0x78, 0xec, 0x5b, 0x82, 0x10,
+ 0xb9, 0xdf, 0x48, 0x2a, 0x18, 0xa9, 0x0d, 0x70, 0xb7, 0x74, 0x8b, 0x1e,
+ 0x21, 0x21, 0xfa, 0xcc, 0x2d, 0x66, 0xcb, 0x7f,
+};
+static const unsigned char kat3670_addinpr2[] = {0};
+static const unsigned char kat3670_retbits[] = {
+ 0x62, 0x9a, 0x07, 0x5a, 0x23, 0x0b, 0x58, 0xbc, 0x32, 0x6a, 0x58, 0x9c,
+ 0xa4, 0x2a, 0xe6, 0x1b, 0x3a, 0x5e, 0xaa, 0x7a, 0x46, 0xee, 0x95, 0x35,
+ 0xb1, 0xbb, 0xc8, 0xb7, 0xb6, 0xab, 0xfa, 0xe1, 0x17, 0x47, 0x0b, 0xf1,
+ 0x99, 0x1a, 0xc7, 0x1e, 0xc6, 0xff, 0x3e, 0x02, 0xf5, 0xb8, 0xfb, 0x6b,
+ 0xa7, 0x44, 0x90, 0x5a, 0xca, 0xd6, 0x16, 0x5c, 0xfa, 0xcc, 0xa0, 0x47,
+ 0xd6, 0x4e, 0x16, 0xc8,
+};
+static const struct drbg_kat_pr_true kat3670_t = {
+ 9, kat3670_entropyin, kat3670_nonce, kat3670_persstr,
+ kat3670_entropyinpr1, kat3670_addinpr1, kat3670_entropyinpr2,
+ kat3670_addinpr2, kat3670_retbits
+};
+static const struct drbg_kat kat3670 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3670_t
+};
+
+static const unsigned char kat3671_entropyin[] = {
+ 0x1e, 0x7d, 0x27, 0xc4, 0x7a, 0x96, 0x46, 0xd6, 0xa2, 0xe7, 0xcd, 0x3e,
+ 0x7b, 0x44, 0x8f, 0x9b, 0x0b, 0x27, 0x34, 0xe7, 0xa3, 0x79, 0x7b, 0x08,
+ 0x69, 0x6a, 0x7a, 0xaa, 0x0d, 0x9b, 0xa1, 0xef,
+};
+static const unsigned char kat3671_nonce[] = {0};
+static const unsigned char kat3671_persstr[] = {0};
+static const unsigned char kat3671_entropyinpr1[] = {
+ 0xf7, 0xc7, 0x08, 0x35, 0xd3, 0xbf, 0xb9, 0x81, 0x55, 0x59, 0x4a, 0xd1,
+ 0x79, 0xfb, 0x8e, 0x86, 0x34, 0x0a, 0xe8, 0x79, 0xf5, 0x6d, 0x4d, 0x8b,
+ 0x2b, 0x31, 0xc3, 0xc8, 0x5b, 0x2f, 0x4e, 0x60,
+};
+static const unsigned char kat3671_addinpr1[] = {0};
+static const unsigned char kat3671_entropyinpr2[] = {
+ 0x6b, 0x1a, 0x47, 0xf0, 0x91, 0x37, 0xb7, 0x9d, 0xac, 0xca, 0xe0, 0xbc,
+ 0x33, 0x5a, 0xf9, 0x39, 0xd0, 0x0b, 0xcf, 0xb6, 0x81, 0x4a, 0x87, 0x19,
+ 0xfa, 0x06, 0x98, 0xf9, 0x4b, 0x94, 0x5b, 0xfb,
+};
+static const unsigned char kat3671_addinpr2[] = {0};
+static const unsigned char kat3671_retbits[] = {
+ 0xff, 0x06, 0x08, 0x4d, 0x0a, 0xc2, 0xf7, 0xd2, 0x83, 0x64, 0xbc, 0x75,
+ 0xb6, 0x8c, 0xf3, 0xdb, 0x4b, 0xd9, 0xcf, 0xfb, 0x2a, 0x40, 0xbb, 0x77,
+ 0xc9, 0xf0, 0x27, 0xd9, 0xe9, 0xc1, 0x44, 0x2a, 0x34, 0xe0, 0xfb, 0x44,
+ 0x2e, 0x58, 0x8d, 0xfc, 0xe0, 0x09, 0x66, 0x82, 0x2f, 0xff, 0xc1, 0x43,
+ 0xae, 0xf5, 0x5e, 0x07, 0x23, 0xe9, 0xd0, 0x1b, 0x1e, 0xb8, 0xa6, 0xfe,
+ 0x32, 0x48, 0xda, 0x22,
+};
+static const struct drbg_kat_pr_true kat3671_t = {
+ 10, kat3671_entropyin, kat3671_nonce, kat3671_persstr,
+ kat3671_entropyinpr1, kat3671_addinpr1, kat3671_entropyinpr2,
+ kat3671_addinpr2, kat3671_retbits
+};
+static const struct drbg_kat kat3671 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3671_t
+};
+
+static const unsigned char kat3672_entropyin[] = {
+ 0xa9, 0x68, 0xf3, 0x79, 0xe2, 0x10, 0x34, 0x79, 0x86, 0x6b, 0xc5, 0x4c,
+ 0x37, 0x14, 0x63, 0x7d, 0xf2, 0x16, 0xf3, 0x5a, 0x63, 0xf2, 0x87, 0xbe,
+ 0x4f, 0x32, 0x26, 0x8f, 0x83, 0x94, 0x21, 0x56,
+};
+static const unsigned char kat3672_nonce[] = {0};
+static const unsigned char kat3672_persstr[] = {0};
+static const unsigned char kat3672_entropyinpr1[] = {
+ 0x08, 0x40, 0x78, 0xf8, 0xd2, 0xac, 0xfa, 0xac, 0x34, 0x03, 0x5f, 0x6d,
+ 0x3b, 0x3e, 0xaa, 0x44, 0xd4, 0xad, 0x6d, 0x90, 0x79, 0xf7, 0xe2, 0xe4,
+ 0x2f, 0x7c, 0x99, 0x78, 0xe5, 0xda, 0x77, 0x50,
+};
+static const unsigned char kat3672_addinpr1[] = {0};
+static const unsigned char kat3672_entropyinpr2[] = {
+ 0xe3, 0x02, 0xb2, 0xbf, 0x67, 0x10, 0xef, 0xce, 0x24, 0xf6, 0xde, 0x49,
+ 0x49, 0x9d, 0xec, 0xf7, 0x0d, 0x17, 0xd6, 0xd4, 0x6d, 0xb0, 0x73, 0xce,
+ 0x9d, 0x2d, 0x8b, 0xb2, 0x2f, 0x67, 0x10, 0x39,
+};
+static const unsigned char kat3672_addinpr2[] = {0};
+static const unsigned char kat3672_retbits[] = {
+ 0x6f, 0x49, 0x6b, 0x51, 0x6b, 0xde, 0xde, 0x77, 0x38, 0xe1, 0x61, 0xa2,
+ 0xc9, 0xb6, 0x50, 0x05, 0x20, 0x95, 0xb7, 0x34, 0x04, 0xc8, 0x45, 0xec,
+ 0x95, 0x6f, 0xa6, 0x3d, 0xd1, 0x3d, 0xba, 0x90, 0x36, 0xee, 0x95, 0x80,
+ 0x45, 0x3b, 0x2d, 0x27, 0x83, 0xcf, 0x05, 0x0a, 0xb8, 0xcb, 0xc4, 0x32,
+ 0x94, 0x8d, 0x67, 0xd7, 0x17, 0x94, 0xe6, 0x12, 0x80, 0x11, 0xbf, 0xde,
+ 0x58, 0xf3, 0xe8, 0xdd,
+};
+static const struct drbg_kat_pr_true kat3672_t = {
+ 11, kat3672_entropyin, kat3672_nonce, kat3672_persstr,
+ kat3672_entropyinpr1, kat3672_addinpr1, kat3672_entropyinpr2,
+ kat3672_addinpr2, kat3672_retbits
+};
+static const struct drbg_kat kat3672 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3672_t
+};
+
+static const unsigned char kat3673_entropyin[] = {
+ 0x5c, 0x58, 0xba, 0xa6, 0x6d, 0x39, 0x2d, 0x19, 0xf0, 0x2d, 0x95, 0x34,
+ 0xf6, 0x9c, 0x3e, 0x40, 0x82, 0x67, 0xeb, 0xe2, 0x74, 0x64, 0x67, 0xfd,
+ 0xd9, 0x21, 0xae, 0xc7, 0x9d, 0x57, 0x80, 0x11,
+};
+static const unsigned char kat3673_nonce[] = {0};
+static const unsigned char kat3673_persstr[] = {0};
+static const unsigned char kat3673_entropyinpr1[] = {
+ 0x2e, 0xc8, 0x2a, 0xb4, 0xef, 0x05, 0xa9, 0xc8, 0xc6, 0x38, 0x60, 0x94,
+ 0xd8, 0xb6, 0x4f, 0xfc, 0x54, 0xcd, 0xd9, 0x5f, 0x82, 0xdb, 0xd1, 0x9d,
+ 0xbf, 0x48, 0x6f, 0x0e, 0x13, 0x79, 0xe2, 0xd1,
+};
+static const unsigned char kat3673_addinpr1[] = {0};
+static const unsigned char kat3673_entropyinpr2[] = {
+ 0xdc, 0x83, 0xe9, 0xad, 0xcf, 0xaf, 0xa3, 0x6c, 0xf5, 0x77, 0xe1, 0xd7,
+ 0x6b, 0x7a, 0xbb, 0x2e, 0xd1, 0x07, 0x3b, 0x71, 0x4e, 0x57, 0x3c, 0x34,
+ 0x2e, 0x06, 0x59, 0x8d, 0xe5, 0xc0, 0x40, 0xbd,
+};
+static const unsigned char kat3673_addinpr2[] = {0};
+static const unsigned char kat3673_retbits[] = {
+ 0xb5, 0xa4, 0x9e, 0x83, 0xb6, 0xbc, 0xaf, 0xe0, 0xee, 0x09, 0x90, 0xa5,
+ 0xe3, 0x50, 0x6f, 0x5d, 0xdb, 0xa4, 0xf2, 0x10, 0x94, 0xcc, 0x20, 0x1e,
+ 0x79, 0x5b, 0xd5, 0xab, 0xb7, 0x6e, 0x03, 0x55, 0x7f, 0x8c, 0xd3, 0x7d,
+ 0x8c, 0x91, 0xc8, 0xb3, 0x75, 0x58, 0x00, 0xd8, 0x99, 0xe0, 0x5a, 0xe6,
+ 0xdb, 0x98, 0x05, 0x16, 0xac, 0xc7, 0xd5, 0x84, 0x70, 0x01, 0xce, 0x62,
+ 0xdd, 0xe7, 0x88, 0xf6,
+};
+static const struct drbg_kat_pr_true kat3673_t = {
+ 12, kat3673_entropyin, kat3673_nonce, kat3673_persstr,
+ kat3673_entropyinpr1, kat3673_addinpr1, kat3673_entropyinpr2,
+ kat3673_addinpr2, kat3673_retbits
+};
+static const struct drbg_kat kat3673 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3673_t
+};
+
+static const unsigned char kat3674_entropyin[] = {
+ 0x28, 0xae, 0x05, 0x64, 0xe7, 0x43, 0xe9, 0x10, 0x5a, 0x56, 0x90, 0xb1,
+ 0x7e, 0xeb, 0xcb, 0xc8, 0x4f, 0xe6, 0x6e, 0xe9, 0x68, 0x2c, 0x0a, 0x80,
+ 0xac, 0xe4, 0xb2, 0x9e, 0x40, 0xc8, 0x2c, 0xb9,
+};
+static const unsigned char kat3674_nonce[] = {0};
+static const unsigned char kat3674_persstr[] = {0};
+static const unsigned char kat3674_entropyinpr1[] = {
+ 0xfd, 0xce, 0xf7, 0x9a, 0x1a, 0x47, 0x83, 0xb9, 0xe6, 0xbc, 0x58, 0x40,
+ 0xc7, 0x41, 0x49, 0x0b, 0xfe, 0x78, 0x4e, 0xe1, 0xf2, 0xc6, 0xfa, 0x12,
+ 0x47, 0xbd, 0x6f, 0xbf, 0x65, 0x18, 0xe6, 0xc4,
+};
+static const unsigned char kat3674_addinpr1[] = {0};
+static const unsigned char kat3674_entropyinpr2[] = {
+ 0x5f, 0x25, 0xe9, 0x91, 0xdf, 0x4c, 0xf3, 0xe4, 0xa1, 0xc3, 0x89, 0x19,
+ 0x6c, 0x62, 0x47, 0xe9, 0x73, 0xca, 0xe0, 0x4f, 0x65, 0xbd, 0x5b, 0x03,
+ 0xa4, 0x19, 0x5a, 0x5c, 0x91, 0xc3, 0x06, 0xc8,
+};
+static const unsigned char kat3674_addinpr2[] = {0};
+static const unsigned char kat3674_retbits[] = {
+ 0x35, 0xa7, 0xc9, 0x1f, 0xc9, 0x61, 0x37, 0x46, 0x39, 0xd0, 0x29, 0xef,
+ 0xef, 0x82, 0xc0, 0xde, 0x6a, 0xb3, 0xfc, 0x02, 0xc2, 0xa6, 0xb9, 0xcd,
+ 0x19, 0x82, 0x03, 0xe2, 0xd7, 0x81, 0x6e, 0xf9, 0x58, 0x4d, 0xe9, 0xb1,
+ 0xfa, 0x58, 0x1b, 0x7f, 0xb2, 0xa8, 0x6a, 0xa2, 0x38, 0xbf, 0x79, 0xd3,
+ 0x16, 0x13, 0xa9, 0x8d, 0x17, 0x60, 0x7a, 0x9a, 0x8e, 0x07, 0xf4, 0x63,
+ 0x1b, 0xba, 0x28, 0x6a,
+};
+static const struct drbg_kat_pr_true kat3674_t = {
+ 13, kat3674_entropyin, kat3674_nonce, kat3674_persstr,
+ kat3674_entropyinpr1, kat3674_addinpr1, kat3674_entropyinpr2,
+ kat3674_addinpr2, kat3674_retbits
+};
+static const struct drbg_kat kat3674 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3674_t
+};
+
+static const unsigned char kat3675_entropyin[] = {
+ 0x75, 0xfb, 0x31, 0xa8, 0xff, 0x97, 0x44, 0x86, 0xf2, 0x51, 0xce, 0x94,
+ 0xdf, 0x35, 0x47, 0xbb, 0x83, 0x1a, 0x95, 0xc2, 0x6b, 0x4e, 0xfb, 0xd8,
+ 0x16, 0x91, 0x2f, 0xcc, 0x76, 0x87, 0x77, 0xae,
+};
+static const unsigned char kat3675_nonce[] = {0};
+static const unsigned char kat3675_persstr[] = {0};
+static const unsigned char kat3675_entropyinpr1[] = {
+ 0x80, 0x90, 0x39, 0x13, 0x80, 0xed, 0x44, 0xd3, 0x42, 0x3f, 0xdf, 0x8d,
+ 0x47, 0x89, 0x1a, 0x20, 0x27, 0x11, 0x0d, 0xa4, 0xc2, 0x33, 0x4e, 0xb9,
+ 0x1f, 0xe8, 0x61, 0x14, 0x02, 0x17, 0x63, 0x26,
+};
+static const unsigned char kat3675_addinpr1[] = {0};
+static const unsigned char kat3675_entropyinpr2[] = {
+ 0x82, 0x88, 0xa1, 0x90, 0xae, 0x91, 0x18, 0xc5, 0x7b, 0x03, 0x38, 0x08,
+ 0xbb, 0x3f, 0x89, 0x5d, 0x4d, 0xfb, 0xf2, 0xdc, 0x7c, 0xe9, 0xb9, 0x01,
+ 0x6e, 0x33, 0x95, 0x48, 0xfe, 0xe1, 0x0a, 0x6f,
+};
+static const unsigned char kat3675_addinpr2[] = {0};
+static const unsigned char kat3675_retbits[] = {
+ 0x73, 0xd1, 0x22, 0xb8, 0x85, 0x4f, 0x26, 0x10, 0xa8, 0x33, 0xa7, 0x8a,
+ 0xf2, 0x8b, 0xaf, 0x4a, 0x2d, 0xae, 0x48, 0xdd, 0x1e, 0xd6, 0x85, 0xe4,
+ 0xf9, 0x89, 0x47, 0x09, 0x2e, 0x3a, 0xaa, 0x56, 0xa6, 0x5f, 0xdc, 0x9a,
+ 0xcd, 0x8a, 0x87, 0x5c, 0x16, 0xb2, 0xa9, 0x1c, 0x75, 0x7f, 0xf7, 0xcd,
+ 0x6e, 0xe7, 0x77, 0x29, 0x2f, 0xbc, 0xb0, 0x22, 0x07, 0x95, 0xc9, 0x51,
+ 0x9c, 0xf4, 0x40, 0x52,
+};
+static const struct drbg_kat_pr_true kat3675_t = {
+ 14, kat3675_entropyin, kat3675_nonce, kat3675_persstr,
+ kat3675_entropyinpr1, kat3675_addinpr1, kat3675_entropyinpr2,
+ kat3675_addinpr2, kat3675_retbits
+};
+static const struct drbg_kat kat3675 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3675_t
+};
+
+static const unsigned char kat3676_entropyin[] = {
+ 0x2d, 0xd0, 0xfc, 0xc7, 0x16, 0x2b, 0x3e, 0x79, 0xcc, 0xf4, 0x8b, 0xca,
+ 0x28, 0xb7, 0x67, 0x60, 0x2f, 0x0e, 0x2f, 0xd3, 0xb5, 0xd3, 0xec, 0x2b,
+ 0xf9, 0x30, 0x66, 0xbc, 0xa0, 0xb4, 0x03, 0x1a,
+};
+static const unsigned char kat3676_nonce[] = {0};
+static const unsigned char kat3676_persstr[] = {0};
+static const unsigned char kat3676_entropyinpr1[] = {
+ 0x19, 0x15, 0x75, 0x6d, 0xdd, 0xdd, 0x51, 0xab, 0x6b, 0xde, 0x8f, 0x0f,
+ 0x9e, 0xee, 0xa4, 0x99, 0x8e, 0x9b, 0x38, 0x44, 0x2b, 0x0e, 0x49, 0x4e,
+ 0x63, 0x27, 0x36, 0x73, 0xa1, 0x4a, 0xd6, 0x71,
+};
+static const unsigned char kat3676_addinpr1[] = {
+ 0x3a, 0xc3, 0xda, 0xea, 0xd1, 0x3c, 0x11, 0x0c, 0xa3, 0xeb, 0x44, 0x99,
+ 0xd8, 0x38, 0xb9, 0x03, 0x64, 0xd9, 0x18, 0x35, 0x62, 0xc6, 0xad, 0x39,
+ 0xfa, 0xf5, 0x20, 0x4e, 0xdd, 0x12, 0x55, 0x26,
+};
+static const unsigned char kat3676_entropyinpr2[] = {
+ 0x99, 0xf1, 0x84, 0x92, 0xb6, 0xf3, 0x02, 0x90, 0x55, 0x23, 0x16, 0x10,
+ 0x63, 0x90, 0x5f, 0x78, 0xe5, 0x8a, 0xb8, 0x06, 0x4c, 0xa0, 0x2a, 0x4f,
+ 0x33, 0x61, 0xa3, 0x37, 0x4a, 0xd6, 0x82, 0xdf,
+};
+static const unsigned char kat3676_addinpr2[] = {
+ 0x6a, 0x14, 0x4c, 0xd9, 0x3e, 0x69, 0x56, 0x53, 0x3c, 0x8b, 0xe6, 0x04,
+ 0x8a, 0x44, 0x2b, 0x26, 0x8d, 0x88, 0x06, 0xa1, 0x12, 0xbc, 0xd8, 0x80,
+ 0xc9, 0x24, 0x23, 0x70, 0x05, 0x5c, 0x5e, 0x3f,
+};
+static const unsigned char kat3676_retbits[] = {
+ 0x0f, 0xb6, 0x6b, 0x92, 0x99, 0xcc, 0xe5, 0x46, 0x10, 0x63, 0xcc, 0xf0,
+ 0xae, 0x08, 0x65, 0x5b, 0x0b, 0xc3, 0xf8, 0x53, 0x81, 0x3d, 0x04, 0xb0,
+ 0x8c, 0xc7, 0xfe, 0x6d, 0x76, 0xbf, 0xa2, 0xe7, 0x54, 0x9c, 0x45, 0x25,
+ 0xbf, 0x41, 0xff, 0xfa, 0xd6, 0x92, 0x7f, 0x3e, 0xa7, 0x59, 0xb0, 0xe0,
+ 0xcf, 0x0b, 0xb1, 0x33, 0x04, 0xc6, 0xfc, 0xb4, 0x28, 0xa3, 0xf2, 0xdb,
+ 0x3c, 0xe7, 0x5c, 0x2b,
+};
+static const struct drbg_kat_pr_true kat3676_t = {
+ 0, kat3676_entropyin, kat3676_nonce, kat3676_persstr,
+ kat3676_entropyinpr1, kat3676_addinpr1, kat3676_entropyinpr2,
+ kat3676_addinpr2, kat3676_retbits
+};
+static const struct drbg_kat kat3676 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3676_t
+};
+
+static const unsigned char kat3677_entropyin[] = {
+ 0x93, 0x62, 0xdc, 0x76, 0x2d, 0xeb, 0x45, 0xc0, 0x55, 0xc0, 0xe9, 0x21,
+ 0xf2, 0xaa, 0x78, 0xf8, 0x4c, 0x25, 0xd3, 0xe8, 0x53, 0x63, 0xf5, 0x45,
+ 0xb3, 0x60, 0xc7, 0x47, 0xfa, 0x49, 0xe0, 0xd9,
+};
+static const unsigned char kat3677_nonce[] = {0};
+static const unsigned char kat3677_persstr[] = {0};
+static const unsigned char kat3677_entropyinpr1[] = {
+ 0xea, 0x75, 0x06, 0x27, 0x67, 0x58, 0x38, 0x80, 0xba, 0xa3, 0x1e, 0x1b,
+ 0xb8, 0xd1, 0x44, 0x5a, 0x54, 0x48, 0xb7, 0xab, 0x54, 0x39, 0x91, 0x43,
+ 0xcd, 0xfe, 0x70, 0xd3, 0x24, 0xca, 0x06, 0x69,
+};
+static const unsigned char kat3677_addinpr1[] = {
+ 0x01, 0x53, 0xf8, 0x0a, 0xd5, 0xd4, 0x76, 0xe9, 0xa5, 0x73, 0x42, 0xf6,
+ 0x3a, 0xb7, 0xe4, 0xa6, 0x50, 0xce, 0x0b, 0x89, 0xc9, 0x42, 0x1d, 0xbc,
+ 0xe2, 0x7d, 0x5c, 0x87, 0x25, 0x2d, 0xd0, 0xa9,
+};
+static const unsigned char kat3677_entropyinpr2[] = {
+ 0xc2, 0x67, 0xca, 0x3a, 0x1d, 0x0f, 0x08, 0x49, 0x80, 0x66, 0x07, 0x74,
+ 0xa4, 0x73, 0x2a, 0x8b, 0x7e, 0xd3, 0x9e, 0x9f, 0xee, 0x74, 0x82, 0x8d,
+ 0x88, 0x79, 0x25, 0xb0, 0x0a, 0x48, 0xb1, 0xda,
+};
+static const unsigned char kat3677_addinpr2[] = {
+ 0x97, 0x33, 0x02, 0xeb, 0x52, 0xb4, 0x74, 0x0a, 0xc1, 0xa0, 0x96, 0xe4,
+ 0xc1, 0x7c, 0x1c, 0x2b, 0xa7, 0x05, 0xe8, 0xf2, 0xdd, 0x94, 0x13, 0x0d,
+ 0x29, 0x02, 0x02, 0x4d, 0x14, 0xb8, 0x8e, 0x64,
+};
+static const unsigned char kat3677_retbits[] = {
+ 0xc3, 0x05, 0x9e, 0x25, 0x93, 0xf5, 0x83, 0x98, 0xa7, 0x08, 0x0e, 0xcc,
+ 0x25, 0xb0, 0x83, 0xa8, 0x18, 0xfe, 0xd5, 0x80, 0x2b, 0x10, 0xaf, 0xbe,
+ 0x6d, 0xe4, 0x49, 0x2b, 0x21, 0x99, 0x0a, 0x69, 0xac, 0xff, 0x74, 0xf0,
+ 0x41, 0x9a, 0x64, 0x37, 0x19, 0x6a, 0xfd, 0x02, 0xef, 0x27, 0x0c, 0x48,
+ 0x76, 0x64, 0xd3, 0xed, 0x1b, 0xcc, 0x39, 0x60, 0x45, 0x64, 0xaf, 0x01,
+ 0x4c, 0xaf, 0x62, 0x34,
+};
+static const struct drbg_kat_pr_true kat3677_t = {
+ 1, kat3677_entropyin, kat3677_nonce, kat3677_persstr,
+ kat3677_entropyinpr1, kat3677_addinpr1, kat3677_entropyinpr2,
+ kat3677_addinpr2, kat3677_retbits
+};
+static const struct drbg_kat kat3677 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3677_t
+};
+
+static const unsigned char kat3678_entropyin[] = {
+ 0x09, 0xaf, 0xd3, 0xec, 0x30, 0x0f, 0x19, 0x90, 0x93, 0x76, 0x84, 0xa3,
+ 0x15, 0xba, 0x4b, 0xf5, 0x56, 0xad, 0x93, 0xb9, 0x09, 0xd9, 0x01, 0xc9,
+ 0xfd, 0x12, 0xb0, 0xd1, 0x83, 0x2a, 0x83, 0x08,
+};
+static const unsigned char kat3678_nonce[] = {0};
+static const unsigned char kat3678_persstr[] = {0};
+static const unsigned char kat3678_entropyinpr1[] = {
+ 0x3c, 0x4b, 0xc9, 0x6d, 0x25, 0xb9, 0x27, 0xbf, 0x52, 0x0d, 0x12, 0xec,
+ 0x1d, 0x19, 0xbd, 0xbf, 0xb5, 0x22, 0xd6, 0x2b, 0x59, 0x16, 0x17, 0x87,
+ 0x55, 0x9f, 0x3c, 0xa8, 0x9f, 0x1b, 0xa6, 0xe7,
+};
+static const unsigned char kat3678_addinpr1[] = {
+ 0x90, 0xe2, 0x85, 0x63, 0x7a, 0x7b, 0x7a, 0x64, 0x0f, 0xd9, 0xec, 0xed,
+ 0x97, 0xc6, 0x86, 0xd0, 0x0e, 0x90, 0x08, 0x37, 0x31, 0xe6, 0xd9, 0xe7,
+ 0xba, 0x3c, 0x5a, 0x81, 0xfa, 0xe1, 0x17, 0x49,
+};
+static const unsigned char kat3678_entropyinpr2[] = {
+ 0xf9, 0x8a, 0xec, 0xf3, 0x30, 0xb5, 0xf2, 0x9d, 0xba, 0x8b, 0xee, 0x1f,
+ 0xdd, 0x06, 0xd5, 0x06, 0xaf, 0xe9, 0x37, 0xd9, 0x84, 0xb4, 0xd0, 0x3e,
+ 0x00, 0x96, 0x1a, 0x89, 0x91, 0xba, 0x08, 0x71,
+};
+static const unsigned char kat3678_addinpr2[] = {
+ 0x51, 0xbb, 0x47, 0x11, 0xd2, 0xce, 0x43, 0x0f, 0x9f, 0x13, 0x4d, 0x13,
+ 0xba, 0x5a, 0xa3, 0x25, 0x84, 0x31, 0xf8, 0x1f, 0x63, 0xc9, 0x96, 0x78,
+ 0x83, 0x44, 0x59, 0x14, 0x1d, 0xa1, 0xf6, 0x16,
+};
+static const unsigned char kat3678_retbits[] = {
+ 0xa3, 0xcf, 0xff, 0x87, 0xc0, 0x88, 0x92, 0x7f, 0x0d, 0x1e, 0x52, 0xbf,
+ 0x1b, 0x2e, 0xaa, 0xb5, 0x2a, 0xcb, 0xf0, 0xa0, 0xd8, 0x94, 0x70, 0x52,
+ 0x34, 0xc9, 0xcc, 0x29, 0x7e, 0x53, 0xe5, 0xba, 0xeb, 0x55, 0x8a, 0x17,
+ 0x52, 0xaa, 0x53, 0x5d, 0xe9, 0x34, 0x10, 0xb8, 0xa0, 0x6b, 0xea, 0x90,
+ 0x02, 0xf4, 0x50, 0x6e, 0x17, 0x1e, 0xf3, 0x98, 0x69, 0xce, 0xf6, 0x15,
+ 0xac, 0x0f, 0xba, 0x4c,
+};
+static const struct drbg_kat_pr_true kat3678_t = {
+ 2, kat3678_entropyin, kat3678_nonce, kat3678_persstr,
+ kat3678_entropyinpr1, kat3678_addinpr1, kat3678_entropyinpr2,
+ kat3678_addinpr2, kat3678_retbits
+};
+static const struct drbg_kat kat3678 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3678_t
+};
+
+static const unsigned char kat3679_entropyin[] = {
+ 0xf0, 0xfa, 0x26, 0x41, 0x13, 0x59, 0x9c, 0xc3, 0xd7, 0x8f, 0xc8, 0xfa,
+ 0xd2, 0x76, 0x84, 0xc1, 0x8a, 0x6e, 0xe9, 0x98, 0xcd, 0x91, 0x3e, 0x2f,
+ 0xeb, 0x13, 0x8a, 0xb1, 0xf2, 0xff, 0x4c, 0xc7,
+};
+static const unsigned char kat3679_nonce[] = {0};
+static const unsigned char kat3679_persstr[] = {0};
+static const unsigned char kat3679_entropyinpr1[] = {
+ 0x0d, 0xa9, 0x07, 0x26, 0x4f, 0xb1, 0xcc, 0x38, 0x5e, 0xc6, 0x98, 0xad,
+ 0xf8, 0x89, 0x92, 0xd1, 0x21, 0x9b, 0xee, 0x72, 0x13, 0x77, 0xa5, 0x1e,
+ 0x73, 0xef, 0xf6, 0xc6, 0x19, 0xa6, 0x3b, 0x1f,
+};
+static const unsigned char kat3679_addinpr1[] = {
+ 0x20, 0xc7, 0x04, 0x71, 0xca, 0xa7, 0x43, 0xe3, 0x32, 0xde, 0xae, 0x20,
+ 0xf4, 0x9f, 0xfd, 0xad, 0x60, 0x36, 0xd5, 0x4a, 0x12, 0xcc, 0x5e, 0xa1,
+ 0x79, 0xff, 0x1a, 0xb7, 0x5a, 0x32, 0xd2, 0xc0,
+};
+static const unsigned char kat3679_entropyinpr2[] = {
+ 0x11, 0xe1, 0xe3, 0x92, 0x1b, 0x8d, 0x34, 0xfd, 0xde, 0xd9, 0x5b, 0x7f,
+ 0x34, 0x9d, 0xd4, 0x86, 0x5a, 0x1d, 0x00, 0x0c, 0x5e, 0xb1, 0x86, 0x01,
+ 0x77, 0xbf, 0x30, 0x05, 0x06, 0x79, 0x6b, 0x0f,
+};
+static const unsigned char kat3679_addinpr2[] = {
+ 0xa4, 0xac, 0xaf, 0x52, 0xec, 0xcf, 0x13, 0x8c, 0xc7, 0xbf, 0xb6, 0x1d,
+ 0xf7, 0x33, 0x20, 0xcd, 0xd4, 0x4b, 0x93, 0x38, 0xa5, 0xd6, 0x1b, 0x7a,
+ 0x3b, 0x0b, 0xd5, 0xc0, 0x63, 0x94, 0x20, 0x52,
+};
+static const unsigned char kat3679_retbits[] = {
+ 0x19, 0x41, 0xdf, 0x8f, 0xe4, 0x4f, 0xc7, 0xdc, 0x3b, 0x6f, 0x3c, 0xf6,
+ 0x77, 0x17, 0x7b, 0x2f, 0x3b, 0x9b, 0xba, 0x7f, 0xc8, 0xc6, 0xaf, 0x02,
+ 0xc8, 0xf0, 0xf5, 0xdf, 0x06, 0xcc, 0x56, 0xd1, 0x33, 0x61, 0x6a, 0x24,
+ 0xde, 0xec, 0xb8, 0x00, 0xc3, 0x87, 0x55, 0xdc, 0xe1, 0x9b, 0x2d, 0x7b,
+ 0x49, 0x0c, 0x1f, 0x59, 0xb5, 0xa5, 0xdd, 0xd3, 0xdd, 0xc4, 0x84, 0x2f,
+ 0x47, 0x8a, 0x5e, 0x48,
+};
+static const struct drbg_kat_pr_true kat3679_t = {
+ 3, kat3679_entropyin, kat3679_nonce, kat3679_persstr,
+ kat3679_entropyinpr1, kat3679_addinpr1, kat3679_entropyinpr2,
+ kat3679_addinpr2, kat3679_retbits
+};
+static const struct drbg_kat kat3679 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3679_t
+};
+
+static const unsigned char kat3680_entropyin[] = {
+ 0xc5, 0xc4, 0xce, 0xba, 0xc0, 0x2c, 0xe5, 0xf2, 0x87, 0xc8, 0xfb, 0xcd,
+ 0x66, 0xd0, 0x8b, 0x64, 0x66, 0x34, 0xf0, 0x95, 0x0f, 0x5e, 0x11, 0x9a,
+ 0xb8, 0xe3, 0x42, 0x51, 0xe9, 0xe4, 0x9e, 0x13,
+};
+static const unsigned char kat3680_nonce[] = {0};
+static const unsigned char kat3680_persstr[] = {0};
+static const unsigned char kat3680_entropyinpr1[] = {
+ 0x7b, 0x20, 0x60, 0xe8, 0x15, 0x20, 0xda, 0x7d, 0x30, 0x9c, 0xd8, 0x85,
+ 0xb7, 0xcd, 0x97, 0xb2, 0xce, 0x58, 0xfd, 0xb3, 0x07, 0x56, 0xf2, 0xef,
+ 0xf2, 0x57, 0x6c, 0xd1, 0x48, 0xbc, 0x34, 0x99,
+};
+static const unsigned char kat3680_addinpr1[] = {
+ 0x37, 0x7b, 0x47, 0x59, 0xc1, 0xa6, 0xb0, 0xfb, 0x86, 0x20, 0x4b, 0x30,
+ 0x78, 0x67, 0x9b, 0xbc, 0x8c, 0x5a, 0x3c, 0xa8, 0xd9, 0x68, 0xd0, 0xf8,
+ 0xe4, 0x7b, 0x99, 0x75, 0xa9, 0x3c, 0x47, 0x56,
+};
+static const unsigned char kat3680_entropyinpr2[] = {
+ 0xd3, 0xe9, 0x5b, 0x3c, 0xaf, 0x41, 0x29, 0x96, 0xc1, 0x8f, 0x32, 0x95,
+ 0x53, 0x95, 0x0b, 0x83, 0xb8, 0x3f, 0x27, 0x60, 0xc9, 0xf8, 0x55, 0x60,
+ 0x06, 0x47, 0xfe, 0xff, 0x1e, 0x85, 0xe1, 0x90,
+};
+static const unsigned char kat3680_addinpr2[] = {
+ 0x97, 0x7d, 0x08, 0x18, 0x83, 0x66, 0x8e, 0xac, 0x6a, 0x42, 0x78, 0x14,
+ 0xb6, 0xbe, 0x53, 0x1b, 0xc1, 0x7a, 0x8c, 0x32, 0x03, 0x3f, 0xe5, 0x68,
+ 0xd1, 0x90, 0xde, 0x07, 0x85, 0xd1, 0x52, 0x62,
+};
+static const unsigned char kat3680_retbits[] = {
+ 0x16, 0x11, 0x54, 0x7c, 0x23, 0x8c, 0x72, 0x74, 0xec, 0xf2, 0xbf, 0x45,
+ 0x3d, 0xe2, 0x5b, 0x37, 0xfc, 0x5e, 0x0b, 0xc5, 0x50, 0x23, 0x5b, 0x86,
+ 0x7b, 0x66, 0xd4, 0x92, 0x90, 0x2c, 0xd4, 0xd7, 0xd9, 0x04, 0xef, 0x25,
+ 0xf4, 0x33, 0xc8, 0x03, 0x06, 0xef, 0xb8, 0x96, 0xd9, 0xc5, 0x31, 0xc4,
+ 0x48, 0x96, 0xb8, 0x64, 0xe0, 0x34, 0x2f, 0xc0, 0xfe, 0x69, 0x28, 0x46,
+ 0x17, 0x34, 0xa1, 0x8a,
+};
+static const struct drbg_kat_pr_true kat3680_t = {
+ 4, kat3680_entropyin, kat3680_nonce, kat3680_persstr,
+ kat3680_entropyinpr1, kat3680_addinpr1, kat3680_entropyinpr2,
+ kat3680_addinpr2, kat3680_retbits
+};
+static const struct drbg_kat kat3680 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3680_t
+};
+
+static const unsigned char kat3681_entropyin[] = {
+ 0xbd, 0x08, 0xca, 0xd2, 0x7b, 0x7f, 0xe2, 0xd3, 0x9a, 0x95, 0x09, 0x59,
+ 0xc2, 0xa1, 0x8a, 0x48, 0xbd, 0xf6, 0xff, 0xe7, 0x95, 0x91, 0xc5, 0x2e,
+ 0x94, 0xb5, 0x05, 0x26, 0x99, 0x07, 0x39, 0x80,
+};
+static const unsigned char kat3681_nonce[] = {0};
+static const unsigned char kat3681_persstr[] = {0};
+static const unsigned char kat3681_entropyinpr1[] = {
+ 0x84, 0x1d, 0x45, 0x33, 0x4b, 0x4a, 0x4b, 0x5e, 0x14, 0xd5, 0xe4, 0x5e,
+ 0x7f, 0xf4, 0xed, 0x8c, 0x23, 0x29, 0x6b, 0x61, 0xd7, 0xba, 0x93, 0xaf,
+ 0x8c, 0x4f, 0x7f, 0x26, 0x38, 0x83, 0xe2, 0x19,
+};
+static const unsigned char kat3681_addinpr1[] = {
+ 0x45, 0xb4, 0x9b, 0x8a, 0x72, 0x96, 0xf5, 0x71, 0x9a, 0x07, 0x9e, 0xeb,
+ 0x29, 0x85, 0x06, 0xec, 0xdd, 0xdf, 0x90, 0x46, 0x6c, 0x68, 0x63, 0x22,
+ 0x90, 0x8f, 0xf8, 0x12, 0x1c, 0x49, 0x15, 0xc5,
+};
+static const unsigned char kat3681_entropyinpr2[] = {
+ 0x13, 0xf9, 0x1a, 0x9f, 0xe3, 0xc2, 0x27, 0x71, 0x49, 0x41, 0x0a, 0xa9,
+ 0xdd, 0xcb, 0xf4, 0xff, 0x68, 0x1d, 0xa7, 0x7e, 0xf8, 0x52, 0x61, 0x07,
+ 0x6e, 0xbd, 0xde, 0x0d, 0xf8, 0x0e, 0xb8, 0xa9,
+};
+static const unsigned char kat3681_addinpr2[] = {
+ 0xe3, 0x55, 0x64, 0xd7, 0x2e, 0x5c, 0xa8, 0xa3, 0xb3, 0xf7, 0x0c, 0x75,
+ 0xb8, 0xd5, 0x05, 0x4c, 0x3d, 0xdb, 0xe2, 0x30, 0xf7, 0x6d, 0x0c, 0x30,
+ 0xff, 0x4a, 0xdc, 0xad, 0xda, 0xce, 0x05, 0x0c,
+};
+static const unsigned char kat3681_retbits[] = {
+ 0x25, 0xab, 0x2d, 0x67, 0x3c, 0xbe, 0x63, 0x0c, 0x32, 0xa0, 0x51, 0xc8,
+ 0x1a, 0x20, 0x32, 0x7d, 0x85, 0xcf, 0x1f, 0x39, 0xa3, 0x46, 0xf4, 0x4a,
+ 0x8e, 0x8f, 0x3f, 0xe0, 0x18, 0xb8, 0xb3, 0x35, 0xce, 0xe0, 0x30, 0xa9,
+ 0x5e, 0x4b, 0xf1, 0xa6, 0x7f, 0x12, 0x08, 0xc4, 0xe7, 0xf8, 0x6e, 0x93,
+ 0xdd, 0x6a, 0xa5, 0xe7, 0x4b, 0x8b, 0x9c, 0x27, 0x81, 0x60, 0xb8, 0xf3,
+ 0x6c, 0x00, 0x54, 0xca,
+};
+static const struct drbg_kat_pr_true kat3681_t = {
+ 5, kat3681_entropyin, kat3681_nonce, kat3681_persstr,
+ kat3681_entropyinpr1, kat3681_addinpr1, kat3681_entropyinpr2,
+ kat3681_addinpr2, kat3681_retbits
+};
+static const struct drbg_kat kat3681 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3681_t
+};
+
+static const unsigned char kat3682_entropyin[] = {
+ 0xad, 0x73, 0x2d, 0x92, 0xbe, 0x54, 0x88, 0x42, 0x07, 0xea, 0x80, 0x87,
+ 0xd2, 0x04, 0x36, 0x60, 0xf0, 0x0e, 0xc7, 0xe9, 0x90, 0x5d, 0x72, 0x5b,
+ 0x49, 0xe3, 0xc9, 0x47, 0x2d, 0xd8, 0xf5, 0x67,
+};
+static const unsigned char kat3682_nonce[] = {0};
+static const unsigned char kat3682_persstr[] = {0};
+static const unsigned char kat3682_entropyinpr1[] = {
+ 0x21, 0x9d, 0x63, 0x3d, 0x75, 0x00, 0x04, 0x85, 0xd9, 0x3d, 0xc3, 0x91,
+ 0x2a, 0xce, 0x84, 0xa4, 0x9b, 0x89, 0x63, 0x74, 0xb1, 0xb0, 0xf6, 0xc5,
+ 0xb6, 0x85, 0x59, 0x7f, 0x84, 0xbe, 0x5a, 0x20,
+};
+static const unsigned char kat3682_addinpr1[] = {
+ 0x66, 0xd3, 0x9c, 0x4b, 0x35, 0x80, 0x73, 0x23, 0x70, 0xeb, 0xf6, 0x38,
+ 0x27, 0x24, 0x1a, 0x66, 0x18, 0x51, 0xef, 0x81, 0xe9, 0x5c, 0x16, 0x56,
+ 0xb2, 0xc0, 0x42, 0xcc, 0x84, 0xa5, 0x3e, 0xd4,
+};
+static const unsigned char kat3682_entropyinpr2[] = {
+ 0x5b, 0x56, 0xfa, 0xa1, 0xa2, 0x8d, 0xaf, 0x8e, 0x33, 0x67, 0x0a, 0x9a,
+ 0x88, 0x29, 0x0f, 0x84, 0xb1, 0xe0, 0x12, 0xb1, 0xce, 0x87, 0x31, 0x29,
+ 0x06, 0x27, 0x57, 0x14, 0x75, 0x67, 0x5d, 0xec,
+};
+static const unsigned char kat3682_addinpr2[] = {
+ 0x18, 0x06, 0xa0, 0x80, 0x80, 0x6f, 0x2f, 0x75, 0xac, 0xfe, 0x64, 0x92,
+ 0x87, 0x80, 0xd8, 0x91, 0x0a, 0x9e, 0xe3, 0x7f, 0x18, 0xf8, 0xce, 0x4f,
+ 0x0f, 0xf8, 0xe5, 0xfe, 0x15, 0xce, 0xf4, 0xd8,
+};
+static const unsigned char kat3682_retbits[] = {
+ 0x13, 0x94, 0x3d, 0xaa, 0x9f, 0x54, 0xf8, 0x78, 0xf5, 0xc4, 0xe7, 0x80,
+ 0x6b, 0x41, 0x89, 0xf6, 0xc4, 0x70, 0x73, 0x86, 0xbc, 0xe9, 0x85, 0xe6,
+ 0xea, 0x5d, 0x59, 0xdf, 0xb6, 0x44, 0xec, 0xe6, 0x54, 0xea, 0x3f, 0x37,
+ 0xdb, 0x37, 0x0a, 0x86, 0x86, 0x33, 0xb4, 0x14, 0x5f, 0xa6, 0xa9, 0x18,
+ 0x60, 0xd5, 0x44, 0x6c, 0x61, 0xc8, 0x95, 0x50, 0x79, 0x43, 0x1b, 0xc3,
+ 0xcd, 0x39, 0x82, 0x24,
+};
+static const struct drbg_kat_pr_true kat3682_t = {
+ 6, kat3682_entropyin, kat3682_nonce, kat3682_persstr,
+ kat3682_entropyinpr1, kat3682_addinpr1, kat3682_entropyinpr2,
+ kat3682_addinpr2, kat3682_retbits
+};
+static const struct drbg_kat kat3682 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3682_t
+};
+
+static const unsigned char kat3683_entropyin[] = {
+ 0x9c, 0x8b, 0xf8, 0x3c, 0x10, 0x44, 0x4c, 0x6c, 0x01, 0xc3, 0x15, 0x30,
+ 0xde, 0xfe, 0x2c, 0x0f, 0xb3, 0x03, 0x59, 0x2f, 0xa4, 0xe4, 0xa5, 0x27,
+ 0x8a, 0x90, 0xa5, 0x99, 0x74, 0xbf, 0x24, 0xc6,
+};
+static const unsigned char kat3683_nonce[] = {0};
+static const unsigned char kat3683_persstr[] = {0};
+static const unsigned char kat3683_entropyinpr1[] = {
+ 0x3a, 0xd1, 0xbd, 0xaf, 0x31, 0xb8, 0x42, 0x3c, 0x41, 0x60, 0x59, 0x77,
+ 0xfe, 0x26, 0xc3, 0x89, 0xdf, 0x45, 0x04, 0xf1, 0xb2, 0x11, 0xf3, 0xfc,
+ 0xfa, 0x7d, 0x70, 0xfa, 0x8a, 0x27, 0xff, 0x41,
+};
+static const unsigned char kat3683_addinpr1[] = {
+ 0x39, 0xad, 0x1b, 0x47, 0xb3, 0x7d, 0x90, 0xf3, 0x5d, 0x0d, 0xf7, 0x56,
+ 0x4d, 0x35, 0xb8, 0x2e, 0x98, 0x74, 0x0f, 0x23, 0xf9, 0xb2, 0x06, 0x95,
+ 0x03, 0x38, 0x75, 0xae, 0x19, 0xad, 0xcc, 0x0d,
+};
+static const unsigned char kat3683_entropyinpr2[] = {
+ 0xf0, 0xf1, 0xb8, 0x0d, 0x29, 0x61, 0x23, 0x35, 0x73, 0x80, 0xc9, 0xf2,
+ 0x6f, 0x00, 0xa0, 0x4a, 0xc9, 0x56, 0x61, 0x02, 0xb0, 0x0a, 0x8a, 0xd6,
+ 0xc7, 0x1c, 0x08, 0x2a, 0x24, 0x58, 0xf4, 0xeb,
+};
+static const unsigned char kat3683_addinpr2[] = {
+ 0xcd, 0xa8, 0xf6, 0x8e, 0x54, 0x64, 0x21, 0x05, 0x53, 0x50, 0x5c, 0x0d,
+ 0x54, 0x86, 0x1e, 0x50, 0x0d, 0xb8, 0xb3, 0x28, 0x26, 0xd4, 0x7e, 0xec,
+ 0x2b, 0x27, 0xb3, 0x93, 0xa6, 0x1f, 0x05, 0xd9,
+};
+static const unsigned char kat3683_retbits[] = {
+ 0xe5, 0xb3, 0x01, 0x9c, 0x7f, 0x4e, 0x80, 0x92, 0xc0, 0x23, 0xb1, 0x57,
+ 0x3d, 0x83, 0xb7, 0xe3, 0x1a, 0xd6, 0xea, 0x88, 0x20, 0xa7, 0x42, 0x59,
+ 0x4a, 0x42, 0xde, 0x4c, 0x7b, 0xc6, 0xc2, 0x7f, 0x13, 0xa9, 0xeb, 0xb4,
+ 0x46, 0xb7, 0x86, 0x82, 0xe1, 0x6e, 0xd6, 0x75, 0x99, 0x06, 0xdf, 0x12,
+ 0xb8, 0x85, 0x45, 0x4d, 0x35, 0x4f, 0x8e, 0x72, 0xc7, 0x32, 0x52, 0xd5,
+ 0xda, 0xdb, 0x48, 0x5c,
+};
+static const struct drbg_kat_pr_true kat3683_t = {
+ 7, kat3683_entropyin, kat3683_nonce, kat3683_persstr,
+ kat3683_entropyinpr1, kat3683_addinpr1, kat3683_entropyinpr2,
+ kat3683_addinpr2, kat3683_retbits
+};
+static const struct drbg_kat kat3683 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3683_t
+};
+
+static const unsigned char kat3684_entropyin[] = {
+ 0x6b, 0xf4, 0x78, 0x25, 0x78, 0x20, 0xc1, 0xd1, 0x0c, 0xb7, 0x35, 0xaa,
+ 0xc7, 0x63, 0x25, 0xe8, 0xd8, 0x28, 0x65, 0x2b, 0x3d, 0x85, 0xb8, 0x21,
+ 0x76, 0xc4, 0xab, 0x3e, 0x2a, 0xb5, 0x93, 0xc0,
+};
+static const unsigned char kat3684_nonce[] = {0};
+static const unsigned char kat3684_persstr[] = {0};
+static const unsigned char kat3684_entropyinpr1[] = {
+ 0x94, 0x1e, 0xca, 0xd9, 0x52, 0x8b, 0x28, 0x8c, 0x61, 0x6a, 0x07, 0xd1,
+ 0x53, 0x06, 0xb3, 0xcb, 0xb4, 0x91, 0x54, 0x7d, 0xd5, 0x1c, 0xf0, 0x0b,
+ 0x83, 0xc6, 0xc9, 0xf7, 0x6c, 0xc2, 0x75, 0x2d,
+};
+static const unsigned char kat3684_addinpr1[] = {
+ 0xf8, 0x04, 0xbb, 0x31, 0x34, 0x0d, 0xbb, 0x30, 0xa4, 0xf0, 0xc7, 0xdf,
+ 0xc2, 0x75, 0x3c, 0x5b, 0x52, 0x5e, 0x7f, 0xc2, 0x5a, 0xf8, 0x9c, 0x6e,
+ 0x20, 0x8b, 0xc5, 0xb6, 0x92, 0xa0, 0xc4, 0x53,
+};
+static const unsigned char kat3684_entropyinpr2[] = {
+ 0xe2, 0xa8, 0xa2, 0x33, 0xcc, 0xcf, 0xc5, 0xd8, 0x30, 0x38, 0xbb, 0x66,
+ 0xbe, 0x79, 0xc7, 0x95, 0xa8, 0x7f, 0x32, 0xa6, 0xd0, 0xaa, 0x62, 0x87,
+ 0xc8, 0x28, 0xde, 0x02, 0x60, 0x46, 0xbd, 0x62,
+};
+static const unsigned char kat3684_addinpr2[] = {
+ 0x59, 0xca, 0x63, 0x5f, 0x03, 0x14, 0x76, 0xd4, 0x77, 0x09, 0x06, 0x7f,
+ 0x10, 0x87, 0x24, 0x1a, 0x13, 0x5f, 0xc6, 0x17, 0xb6, 0xf4, 0x38, 0xfb,
+ 0xb1, 0x43, 0xe2, 0xcd, 0x4b, 0xe0, 0xc3, 0xff,
+};
+static const unsigned char kat3684_retbits[] = {
+ 0xf5, 0xa2, 0xb8, 0x49, 0x8e, 0x45, 0xe8, 0xa5, 0x15, 0x1b, 0xb5, 0xdc,
+ 0x6c, 0x87, 0x1b, 0xa1, 0xf4, 0x4a, 0x1b, 0xfe, 0x37, 0x6c, 0x57, 0x67,
+ 0x1c, 0x62, 0x16, 0xe4, 0xf2, 0x2c, 0x75, 0x15, 0x2a, 0x2a, 0x4e, 0x5a,
+ 0x52, 0x95, 0xa0, 0x48, 0x6d, 0x3e, 0x80, 0x93, 0x78, 0xae, 0xf1, 0xa8,
+ 0x93, 0xde, 0x7e, 0x2a, 0xef, 0x5a, 0x3b, 0xe8, 0x24, 0x01, 0x41, 0x3f,
+ 0xc9, 0x7f, 0x8d, 0x97,
+};
+static const struct drbg_kat_pr_true kat3684_t = {
+ 8, kat3684_entropyin, kat3684_nonce, kat3684_persstr,
+ kat3684_entropyinpr1, kat3684_addinpr1, kat3684_entropyinpr2,
+ kat3684_addinpr2, kat3684_retbits
+};
+static const struct drbg_kat kat3684 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3684_t
+};
+
+static const unsigned char kat3685_entropyin[] = {
+ 0xed, 0x30, 0x36, 0x7d, 0x5a, 0xb3, 0x33, 0x62, 0x86, 0x75, 0x9f, 0x9d,
+ 0x8b, 0xa7, 0x42, 0x0c, 0x04, 0x17, 0x11, 0x6c, 0x2c, 0xb6, 0x73, 0x55,
+ 0x60, 0xd8, 0x14, 0x45, 0x22, 0x0b, 0xfc, 0x73,
+};
+static const unsigned char kat3685_nonce[] = {0};
+static const unsigned char kat3685_persstr[] = {0};
+static const unsigned char kat3685_entropyinpr1[] = {
+ 0x27, 0x10, 0xbc, 0xc2, 0xfb, 0x39, 0xcf, 0xbb, 0x2b, 0x23, 0x0d, 0x21,
+ 0x7c, 0xdc, 0xcc, 0xab, 0x7b, 0xcf, 0xe8, 0xc7, 0xd9, 0x60, 0xfd, 0xca,
+ 0xa8, 0x44, 0xc5, 0x7f, 0xb2, 0x21, 0xe2, 0x8f,
+};
+static const unsigned char kat3685_addinpr1[] = {
+ 0xc5, 0x0c, 0xa9, 0x2a, 0x85, 0xcb, 0x04, 0xe2, 0x37, 0x8a, 0xf4, 0x9f,
+ 0xba, 0xf5, 0xe7, 0xe5, 0x09, 0x94, 0x64, 0x75, 0x81, 0x82, 0x70, 0xf7,
+ 0xec, 0xa1, 0x54, 0xc8, 0xeb, 0x2b, 0x97, 0x0a,
+};
+static const unsigned char kat3685_entropyinpr2[] = {
+ 0x11, 0x67, 0x7e, 0x7b, 0xff, 0x8b, 0x42, 0xbf, 0x71, 0xb8, 0xf5, 0xc0,
+ 0xc0, 0xa1, 0xf2, 0x82, 0x90, 0x63, 0x73, 0xdc, 0x94, 0xa2, 0x25, 0x76,
+ 0x4d, 0x70, 0x83, 0x50, 0x66, 0xe7, 0xd5, 0x2f,
+};
+static const unsigned char kat3685_addinpr2[] = {
+ 0xe6, 0xfe, 0xd3, 0x6e, 0x76, 0x3c, 0x72, 0x54, 0xff, 0xf2, 0x04, 0x46,
+ 0xd1, 0x61, 0x0b, 0x7c, 0xe8, 0xf3, 0x8e, 0xf7, 0xd1, 0x29, 0xe9, 0x07,
+ 0xdf, 0x8e, 0x38, 0xf5, 0x84, 0x2d, 0x72, 0xa6,
+};
+static const unsigned char kat3685_retbits[] = {
+ 0x83, 0x6c, 0x1c, 0xd9, 0xeb, 0x49, 0xbb, 0x83, 0xc8, 0xe0, 0xaf, 0xbd,
+ 0xf9, 0x93, 0x55, 0x89, 0xcd, 0x78, 0x72, 0x1b, 0x3b, 0x97, 0x4f, 0x63,
+ 0xf3, 0x2b, 0x06, 0xf0, 0x6e, 0xcd, 0xce, 0x5e, 0x1d, 0x59, 0x10, 0xf0,
+ 0xd1, 0xa3, 0xa4, 0x21, 0xb4, 0x7c, 0xe6, 0x1e, 0xb2, 0x68, 0x94, 0xf2,
+ 0xdc, 0x51, 0xee, 0x36, 0xa0, 0x9f, 0x74, 0xa9, 0xdc, 0x15, 0x0c, 0x84,
+ 0x82, 0x66, 0xdc, 0x1f,
+};
+static const struct drbg_kat_pr_true kat3685_t = {
+ 9, kat3685_entropyin, kat3685_nonce, kat3685_persstr,
+ kat3685_entropyinpr1, kat3685_addinpr1, kat3685_entropyinpr2,
+ kat3685_addinpr2, kat3685_retbits
+};
+static const struct drbg_kat kat3685 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3685_t
+};
+
+static const unsigned char kat3686_entropyin[] = {
+ 0xe4, 0x92, 0xb8, 0x3d, 0x6e, 0xed, 0xc1, 0xd9, 0x54, 0x8a, 0xf4, 0x5b,
+ 0x15, 0xdb, 0x4b, 0xce, 0x09, 0x7f, 0x0c, 0x28, 0xf1, 0xb0, 0x3b, 0xed,
+ 0x9f, 0x2c, 0xef, 0x37, 0x72, 0x5e, 0x5c, 0x98,
+};
+static const unsigned char kat3686_nonce[] = {0};
+static const unsigned char kat3686_persstr[] = {0};
+static const unsigned char kat3686_entropyinpr1[] = {
+ 0xc6, 0x6a, 0x45, 0xb7, 0x88, 0x9a, 0x10, 0xa0, 0x7a, 0xb5, 0xa6, 0xb2,
+ 0x9d, 0x4c, 0x26, 0x5c, 0x9e, 0x19, 0x6b, 0xbe, 0x5d, 0x0f, 0xea, 0x35,
+ 0xe5, 0x52, 0x1d, 0x4d, 0x06, 0xe4, 0x87, 0xde,
+};
+static const unsigned char kat3686_addinpr1[] = {
+ 0xb2, 0x7a, 0x9c, 0x49, 0xab, 0xe0, 0x3e, 0x4b, 0xbb, 0x62, 0x73, 0x8a,
+ 0xe8, 0x69, 0x59, 0xc5, 0xb7, 0xb6, 0x99, 0x22, 0x40, 0xee, 0x8d, 0x99,
+ 0xb1, 0x53, 0x70, 0xdf, 0x1c, 0x5d, 0xfb, 0x10,
+};
+static const unsigned char kat3686_entropyinpr2[] = {
+ 0x13, 0x2c, 0x6a, 0xac, 0x2b, 0xfe, 0x3a, 0x23, 0x17, 0x5a, 0xf8, 0xf7,
+ 0x3e, 0x0b, 0x0f, 0xfb, 0xb7, 0xca, 0x29, 0x94, 0x20, 0x59, 0x91, 0xb2,
+ 0x42, 0xe7, 0x8e, 0xd7, 0x47, 0xb2, 0x9d, 0xa6,
+};
+static const unsigned char kat3686_addinpr2[] = {
+ 0x0b, 0x9e, 0xd3, 0x1e, 0xf4, 0xa3, 0x53, 0xa9, 0xe5, 0x58, 0xc8, 0x14,
+ 0x22, 0x5c, 0xe6, 0xa4, 0x8c, 0xcd, 0xc0, 0x47, 0x92, 0xc0, 0xa5, 0x17,
+ 0x52, 0x16, 0xc3, 0x94, 0xae, 0x6c, 0x5a, 0x20,
+};
+static const unsigned char kat3686_retbits[] = {
+ 0x42, 0xde, 0x12, 0x48, 0xd7, 0xb8, 0x6b, 0xdf, 0xe2, 0x7d, 0xa7, 0x4f,
+ 0xf1, 0x73, 0x48, 0x23, 0xae, 0x44, 0x24, 0x29, 0xd0, 0x0e, 0xde, 0xfa,
+ 0xdb, 0x60, 0x00, 0xb2, 0x50, 0x9d, 0x51, 0xd9, 0x46, 0x74, 0x26, 0xf8,
+ 0xca, 0x60, 0xa0, 0x8b, 0xdc, 0xed, 0x0a, 0x29, 0x30, 0x91, 0xc5, 0xf9,
+ 0x79, 0x43, 0x24, 0x4c, 0xc5, 0xa1, 0x92, 0x2d, 0x78, 0x8b, 0xd7, 0x3e,
+ 0xcb, 0x3f, 0x0f, 0x2e,
+};
+static const struct drbg_kat_pr_true kat3686_t = {
+ 10, kat3686_entropyin, kat3686_nonce, kat3686_persstr,
+ kat3686_entropyinpr1, kat3686_addinpr1, kat3686_entropyinpr2,
+ kat3686_addinpr2, kat3686_retbits
+};
+static const struct drbg_kat kat3686 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3686_t
+};
+
+static const unsigned char kat3687_entropyin[] = {
+ 0x90, 0x98, 0x15, 0x0b, 0x27, 0x27, 0x41, 0x47, 0x67, 0x01, 0x6c, 0xf5,
+ 0x47, 0x12, 0x12, 0x96, 0x21, 0x3f, 0x3d, 0xe8, 0xef, 0x13, 0x18, 0x31,
+ 0x11, 0xde, 0xb0, 0xeb, 0x05, 0x32, 0x5b, 0xd9,
+};
+static const unsigned char kat3687_nonce[] = {0};
+static const unsigned char kat3687_persstr[] = {0};
+static const unsigned char kat3687_entropyinpr1[] = {
+ 0x95, 0xa1, 0x89, 0x59, 0x45, 0x59, 0xbc, 0xe1, 0x4e, 0x5b, 0xd3, 0x29,
+ 0x35, 0x27, 0x41, 0x1b, 0x5c, 0x0a, 0x5b, 0x3d, 0x5c, 0x9a, 0x11, 0x7e,
+ 0x06, 0x35, 0x68, 0x3d, 0x93, 0xdc, 0x77, 0xa2,
+};
+static const unsigned char kat3687_addinpr1[] = {
+ 0x22, 0x86, 0x35, 0x43, 0xbd, 0xfa, 0xe1, 0x63, 0x71, 0x89, 0x95, 0xb7,
+ 0xca, 0x3c, 0xa7, 0xf7, 0xc6, 0xde, 0x43, 0x3c, 0xc5, 0xdc, 0x97, 0xb4,
+ 0xe6, 0xda, 0x7e, 0x0e, 0xfa, 0x38, 0x14, 0xeb,
+};
+static const unsigned char kat3687_entropyinpr2[] = {
+ 0x80, 0x59, 0x6d, 0xf2, 0xb2, 0x54, 0x94, 0x06, 0x76, 0x96, 0x8e, 0xde,
+ 0xd6, 0x90, 0x99, 0x1a, 0x81, 0x6a, 0x12, 0x78, 0x37, 0x3e, 0xc6, 0x38,
+ 0xc9, 0x15, 0x3a, 0x40, 0xbb, 0xaa, 0x37, 0xc5,
+};
+static const unsigned char kat3687_addinpr2[] = {
+ 0xda, 0xdc, 0x98, 0xa2, 0xbd, 0x1f, 0xae, 0xea, 0x04, 0x00, 0x05, 0x7d,
+ 0x5e, 0xc0, 0xdf, 0x66, 0x38, 0xce, 0x83, 0x86, 0x63, 0xe3, 0x4b, 0x94,
+ 0x7b, 0x44, 0x8f, 0xdf, 0xca, 0x99, 0x6a, 0x4b,
+};
+static const unsigned char kat3687_retbits[] = {
+ 0x20, 0x88, 0xca, 0xd0, 0xec, 0x91, 0x65, 0xf1, 0x0b, 0x53, 0xbc, 0x86,
+ 0x05, 0x07, 0x3d, 0x15, 0x82, 0x99, 0x0f, 0xce, 0xd6, 0x19, 0x99, 0xea,
+ 0x1c, 0xca, 0xc3, 0xb7, 0xda, 0xaa, 0x2d, 0xd6, 0x33, 0x39, 0xf2, 0x97,
+ 0x5f, 0x1e, 0x8a, 0x92, 0x64, 0xf1, 0x54, 0x0c, 0x23, 0x2f, 0xcc, 0x6a,
+ 0x79, 0xd9, 0xaa, 0x63, 0xf9, 0x6c, 0x94, 0x8e, 0x86, 0x46, 0x77, 0x7d,
+ 0x72, 0x35, 0xfc, 0x7f,
+};
+static const struct drbg_kat_pr_true kat3687_t = {
+ 11, kat3687_entropyin, kat3687_nonce, kat3687_persstr,
+ kat3687_entropyinpr1, kat3687_addinpr1, kat3687_entropyinpr2,
+ kat3687_addinpr2, kat3687_retbits
+};
+static const struct drbg_kat kat3687 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3687_t
+};
+
+static const unsigned char kat3688_entropyin[] = {
+ 0x0e, 0xcf, 0x8a, 0x53, 0xc5, 0xcb, 0xfc, 0x45, 0xb0, 0x96, 0x44, 0xe1,
+ 0xb7, 0x68, 0x74, 0x8d, 0xf8, 0x9d, 0xe7, 0x7e, 0x2e, 0xc2, 0xe5, 0x53,
+ 0x5f, 0x75, 0x7e, 0x9b, 0x90, 0x18, 0xc9, 0x9e,
+};
+static const unsigned char kat3688_nonce[] = {0};
+static const unsigned char kat3688_persstr[] = {0};
+static const unsigned char kat3688_entropyinpr1[] = {
+ 0x53, 0x27, 0x09, 0x98, 0x32, 0xd3, 0x3e, 0x86, 0x3f, 0x2f, 0x1d, 0x84,
+ 0x3b, 0x1c, 0x1e, 0x84, 0xa1, 0xf2, 0xcb, 0x9f, 0x94, 0xf1, 0x0c, 0x00,
+ 0xd1, 0xaa, 0x2c, 0xe8, 0x8d, 0x6f, 0xf5, 0xce,
+};
+static const unsigned char kat3688_addinpr1[] = {
+ 0xb6, 0x43, 0xb1, 0xad, 0x03, 0x55, 0x99, 0xe7, 0x59, 0xb6, 0x1a, 0x2e,
+ 0xe0, 0x9f, 0x22, 0xd7, 0x8b, 0xbd, 0x45, 0xb5, 0x95, 0x09, 0xf3, 0x99,
+ 0xb6, 0x5a, 0xd2, 0x50, 0x01, 0xbc, 0x54, 0x49,
+};
+static const unsigned char kat3688_entropyinpr2[] = {
+ 0x96, 0x40, 0x43, 0x39, 0x0c, 0x74, 0xcc, 0x18, 0x2b, 0x79, 0xcf, 0x23,
+ 0xe9, 0xe5, 0x9a, 0x98, 0xd6, 0x79, 0xb0, 0x4b, 0xdc, 0x1a, 0xd2, 0xf5,
+ 0xdc, 0xc2, 0x89, 0xbb, 0x02, 0x1c, 0x8d, 0xc0,
+};
+static const unsigned char kat3688_addinpr2[] = {
+ 0x50, 0x27, 0x52, 0xaf, 0x6b, 0xf6, 0xf6, 0xd4, 0x0c, 0x1d, 0xf4, 0xdd,
+ 0x25, 0x56, 0xa7, 0x5b, 0x74, 0xc9, 0x4f, 0xc2, 0x6f, 0xc9, 0x1b, 0x12,
+ 0x83, 0x05, 0x9c, 0x9e, 0xcd, 0xd2, 0xec, 0x9a,
+};
+static const unsigned char kat3688_retbits[] = {
+ 0xe7, 0x2c, 0xc6, 0x12, 0xda, 0x25, 0x14, 0xb1, 0x10, 0x94, 0xbe, 0x0e,
+ 0x1c, 0x22, 0x79, 0x89, 0x1a, 0x41, 0x30, 0xc7, 0xbe, 0x8b, 0x4b, 0xb7,
+ 0xec, 0x8b, 0xe5, 0x26, 0xf3, 0x68, 0xf8, 0x14, 0xe8, 0x30, 0xfc, 0xc9,
+ 0x26, 0xc3, 0xaf, 0xeb, 0xa0, 0xba, 0xe6, 0x24, 0xad, 0xf7, 0xfd, 0x34,
+ 0xf6, 0x1f, 0x78, 0x92, 0x16, 0xfc, 0x62, 0xb0, 0xf1, 0x8c, 0xfa, 0xc7,
+ 0x46, 0x76, 0xd0, 0x0f,
+};
+static const struct drbg_kat_pr_true kat3688_t = {
+ 12, kat3688_entropyin, kat3688_nonce, kat3688_persstr,
+ kat3688_entropyinpr1, kat3688_addinpr1, kat3688_entropyinpr2,
+ kat3688_addinpr2, kat3688_retbits
+};
+static const struct drbg_kat kat3688 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3688_t
+};
+
+static const unsigned char kat3689_entropyin[] = {
+ 0x6e, 0xe8, 0xc0, 0xcc, 0xdb, 0x7e, 0x9f, 0x30, 0x74, 0x04, 0x0e, 0x89,
+ 0xd9, 0xa6, 0x6a, 0xea, 0xa3, 0xf6, 0x4c, 0xf3, 0x51, 0xc6, 0x33, 0x0b,
+ 0x35, 0x30, 0x02, 0x14, 0xe1, 0x6a, 0x48, 0x4f,
+};
+static const unsigned char kat3689_nonce[] = {0};
+static const unsigned char kat3689_persstr[] = {0};
+static const unsigned char kat3689_entropyinpr1[] = {
+ 0x76, 0x2d, 0x63, 0xec, 0x18, 0x92, 0x7c, 0x1a, 0xe3, 0x70, 0x37, 0x64,
+ 0x43, 0xbb, 0x07, 0x06, 0xc3, 0x0c, 0x42, 0x6e, 0x4f, 0x38, 0x1a, 0x67,
+ 0xff, 0x4d, 0x99, 0x55, 0x63, 0x33, 0x39, 0x54,
+};
+static const unsigned char kat3689_addinpr1[] = {
+ 0x28, 0x9a, 0xc3, 0x36, 0x56, 0x5e, 0x1b, 0x8a, 0xbe, 0x25, 0x17, 0x31,
+ 0x40, 0x21, 0x8e, 0x09, 0xc7, 0x40, 0x9b, 0xca, 0x8d, 0x84, 0xb7, 0x57,
+ 0x6f, 0x0e, 0x87, 0xdb, 0x11, 0x7f, 0x53, 0x13,
+};
+static const unsigned char kat3689_entropyinpr2[] = {
+ 0x2f, 0xa8, 0xd5, 0xe4, 0x26, 0x3f, 0x55, 0x85, 0x59, 0x71, 0x99, 0x3a,
+ 0x5f, 0xc7, 0xfa, 0xcc, 0xe1, 0xe4, 0x0e, 0x87, 0xfb, 0xf6, 0x4d, 0x1c,
+ 0xbc, 0x6b, 0x57, 0x05, 0xd8, 0x2d, 0x30, 0xf9,
+};
+static const unsigned char kat3689_addinpr2[] = {
+ 0xca, 0x03, 0x7d, 0x1e, 0xeb, 0xa3, 0xc6, 0x6c, 0x15, 0xa9, 0x62, 0xed,
+ 0x44, 0xf0, 0xb5, 0x0b, 0xa6, 0x31, 0x76, 0xb6, 0x47, 0x84, 0xcf, 0x2c,
+ 0x68, 0x8c, 0x79, 0x9c, 0x9e, 0xbb, 0x4d, 0x16,
+};
+static const unsigned char kat3689_retbits[] = {
+ 0x10, 0x53, 0x6a, 0x10, 0xa9, 0x9f, 0x84, 0x5c, 0x43, 0xd5, 0x50, 0x1f,
+ 0x8a, 0x4c, 0xfc, 0xaa, 0x9c, 0xd4, 0x36, 0x34, 0x0a, 0xd8, 0xfc, 0x58,
+ 0x57, 0xea, 0xa8, 0xd2, 0x0f, 0xbb, 0x67, 0x33, 0x61, 0x24, 0x8a, 0x44,
+ 0x66, 0x80, 0x0f, 0x31, 0x9f, 0xa9, 0x26, 0xec, 0xee, 0xe5, 0x87, 0xa7,
+ 0x11, 0x48, 0x14, 0x43, 0x32, 0xbd, 0x8a, 0xff, 0x0a, 0xfc, 0xbf, 0x55,
+ 0x87, 0x4f, 0xc3, 0xc0,
+};
+static const struct drbg_kat_pr_true kat3689_t = {
+ 13, kat3689_entropyin, kat3689_nonce, kat3689_persstr,
+ kat3689_entropyinpr1, kat3689_addinpr1, kat3689_entropyinpr2,
+ kat3689_addinpr2, kat3689_retbits
+};
+static const struct drbg_kat kat3689 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3689_t
+};
+
+static const unsigned char kat3690_entropyin[] = {
+ 0xdd, 0xd1, 0x29, 0x6d, 0x4d, 0x08, 0x84, 0x6c, 0x92, 0x20, 0x43, 0x76,
+ 0x1f, 0x5d, 0xe9, 0xb4, 0xf4, 0xdc, 0xb7, 0x87, 0xde, 0x09, 0xe3, 0x9d,
+ 0x2e, 0xca, 0xac, 0x9a, 0x90, 0x6e, 0x06, 0x20,
+};
+static const unsigned char kat3690_nonce[] = {0};
+static const unsigned char kat3690_persstr[] = {0};
+static const unsigned char kat3690_entropyinpr1[] = {
+ 0xd5, 0x39, 0x8b, 0x48, 0x77, 0x3c, 0x39, 0x0c, 0xd8, 0x9d, 0x95, 0x1c,
+ 0x5e, 0x6d, 0xee, 0xed, 0x0e, 0xb3, 0x8d, 0x59, 0xe3, 0xb1, 0xd0, 0xbf,
+ 0x5b, 0x2e, 0x43, 0x59, 0xb0, 0x78, 0x43, 0x05,
+};
+static const unsigned char kat3690_addinpr1[] = {
+ 0x67, 0x3f, 0x6d, 0x71, 0xad, 0x3c, 0x7c, 0x0e, 0x5c, 0xc2, 0x26, 0xb8,
+ 0x2f, 0x37, 0x84, 0x07, 0x81, 0x4e, 0xa1, 0x01, 0xdb, 0xc0, 0x51, 0x82,
+ 0x1b, 0xd5, 0xd1, 0xd7, 0xf4, 0xbc, 0x7b, 0xe3,
+};
+static const unsigned char kat3690_entropyinpr2[] = {
+ 0x3c, 0xd2, 0xf7, 0x04, 0xac, 0xe5, 0x60, 0x33, 0x7f, 0xcb, 0xcc, 0x07,
+ 0xd2, 0xb0, 0x27, 0xc3, 0x73, 0x80, 0xb3, 0x5b, 0x26, 0xb2, 0x6e, 0x40,
+ 0xb9, 0xd6, 0x2d, 0xd6, 0x54, 0xe4, 0x41, 0x93,
+};
+static const unsigned char kat3690_addinpr2[] = {
+ 0x44, 0x0e, 0x9b, 0x55, 0xa6, 0x8d, 0xd2, 0x7d, 0xf4, 0xef, 0x8d, 0x0d,
+ 0xfe, 0xb8, 0xc2, 0x15, 0x6c, 0x22, 0x50, 0xcc, 0x1a, 0xb5, 0x74, 0x43,
+ 0x2c, 0x2b, 0x62, 0xba, 0xca, 0x7c, 0x44, 0x39,
+};
+static const unsigned char kat3690_retbits[] = {
+ 0xe5, 0x5b, 0x53, 0x6c, 0xca, 0x2b, 0x21, 0x48, 0xaf, 0x20, 0xe8, 0x87,
+ 0xad, 0x6b, 0x1c, 0x6a, 0xb5, 0xc2, 0x85, 0xfe, 0x52, 0x71, 0xe1, 0x88,
+ 0xc5, 0xfe, 0x5f, 0x7f, 0x03, 0x7b, 0xab, 0x8d, 0x6d, 0x25, 0x02, 0xab,
+ 0x71, 0xd7, 0x68, 0xd4, 0xf0, 0x5b, 0x1b, 0xef, 0x7f, 0x27, 0x44, 0x0c,
+ 0xe8, 0xf6, 0x43, 0x11, 0xff, 0x71, 0x47, 0xdb, 0xb5, 0x57, 0x19, 0xbf,
+ 0x73, 0x71, 0xbb, 0xd4,
+};
+static const struct drbg_kat_pr_true kat3690_t = {
+ 14, kat3690_entropyin, kat3690_nonce, kat3690_persstr,
+ kat3690_entropyinpr1, kat3690_addinpr1, kat3690_entropyinpr2,
+ kat3690_addinpr2, kat3690_retbits
+};
+static const struct drbg_kat kat3690 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3690_t
+};
+
+static const unsigned char kat3691_entropyin[] = {
+ 0xee, 0x55, 0xa9, 0x77, 0x38, 0x55, 0x07, 0x42, 0xef, 0xfe, 0xfd, 0x7d,
+ 0x5a, 0x43, 0xfb, 0x23, 0x63, 0xb9, 0x1a, 0xcc, 0xca, 0xc5, 0xb4, 0xb4,
+ 0x79, 0xc4, 0xed, 0xfe, 0x0e, 0x66, 0xd5, 0x6e,
+};
+static const unsigned char kat3691_nonce[] = {0};
+static const unsigned char kat3691_persstr[] = {
+ 0x5f, 0xe7, 0xc9, 0x47, 0x78, 0xa3, 0x47, 0x4f, 0xca, 0xe5, 0xd5, 0x66,
+ 0x4c, 0xd9, 0x53, 0x0b, 0xb2, 0xca, 0xad, 0x48, 0x0b, 0x94, 0x15, 0x67,
+ 0x6e, 0x30, 0x06, 0x42, 0x06, 0x8b, 0x63, 0x9d,
+};
+static const unsigned char kat3691_entropyinpr1[] = {
+ 0x3e, 0xf8, 0x2e, 0x3b, 0x01, 0x69, 0xad, 0xf2, 0x2b, 0xc1, 0xd1, 0x3a,
+ 0x91, 0xdd, 0x35, 0x9d, 0xef, 0x6f, 0x26, 0x9f, 0x00, 0x8f, 0x3c, 0x49,
+ 0x46, 0x74, 0x47, 0x06, 0x3e, 0x0e, 0xf8, 0x05,
+};
+static const unsigned char kat3691_addinpr1[] = {0};
+static const unsigned char kat3691_entropyinpr2[] = {
+ 0xac, 0x84, 0xeb, 0xc9, 0x93, 0x8b, 0xda, 0x8f, 0xe8, 0x47, 0x56, 0xa8,
+ 0x70, 0x47, 0xa5, 0xd5, 0x02, 0xce, 0x64, 0x82, 0xa2, 0xa0, 0x40, 0xd2,
+ 0x56, 0x43, 0x00, 0x7f, 0x2e, 0x1d, 0xa8, 0xf3,
+};
+static const unsigned char kat3691_addinpr2[] = {0};
+static const unsigned char kat3691_retbits[] = {
+ 0xdb, 0xed, 0x55, 0x77, 0x2e, 0x15, 0x85, 0x48, 0xb8, 0xc0, 0x1c, 0x4c,
+ 0xd4, 0x82, 0x55, 0x07, 0xe1, 0x26, 0xf2, 0xf1, 0xb1, 0x8e, 0x4d, 0xb4,
+ 0x50, 0x9c, 0x19, 0xb1, 0x84, 0x84, 0xe6, 0x03, 0x2e, 0xd3, 0xbd, 0x22,
+ 0x71, 0xb0, 0x02, 0xf1, 0x3f, 0x1b, 0xcb, 0x9b, 0xc1, 0x22, 0x3f, 0x9a,
+ 0xc0, 0xda, 0x01, 0x70, 0x72, 0x0e, 0xc8, 0xeb, 0x97, 0x49, 0xd0, 0x69,
+ 0xe2, 0x00, 0xf2, 0xe8,
+};
+static const struct drbg_kat_pr_true kat3691_t = {
+ 0, kat3691_entropyin, kat3691_nonce, kat3691_persstr,
+ kat3691_entropyinpr1, kat3691_addinpr1, kat3691_entropyinpr2,
+ kat3691_addinpr2, kat3691_retbits
+};
+static const struct drbg_kat kat3691 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3691_t
+};
+
+static const unsigned char kat3692_entropyin[] = {
+ 0x11, 0xed, 0xc9, 0x98, 0x85, 0x1e, 0xba, 0x78, 0xa0, 0x19, 0x60, 0xd7,
+ 0x13, 0xf8, 0x43, 0xd8, 0x94, 0x9d, 0xb4, 0xbb, 0x07, 0x35, 0xd6, 0xbb,
+ 0xc9, 0x41, 0xd1, 0x3a, 0xed, 0xe5, 0x35, 0x53,
+};
+static const unsigned char kat3692_nonce[] = {0};
+static const unsigned char kat3692_persstr[] = {
+ 0xab, 0xe1, 0x33, 0x91, 0x16, 0x9a, 0x7b, 0x3d, 0x3d, 0x49, 0x8d, 0x89,
+ 0x06, 0xb5, 0x20, 0x04, 0xbd, 0xb6, 0x76, 0xd4, 0x5e, 0x9c, 0xa3, 0x06,
+ 0x0c, 0xfe, 0x21, 0xec, 0xf6, 0xd1, 0x03, 0x48,
+};
+static const unsigned char kat3692_entropyinpr1[] = {
+ 0x17, 0xd5, 0xfd, 0x16, 0xd8, 0x66, 0x60, 0xef, 0x3a, 0x3d, 0x2f, 0x36,
+ 0xe9, 0x9c, 0xc6, 0x7c, 0x59, 0x0c, 0x5c, 0xae, 0xb2, 0xf3, 0x4c, 0x13,
+ 0xc1, 0x53, 0x98, 0xd1, 0x66, 0x43, 0x7e, 0xf5,
+};
+static const unsigned char kat3692_addinpr1[] = {0};
+static const unsigned char kat3692_entropyinpr2[] = {
+ 0xad, 0x40, 0x52, 0xe8, 0xc3, 0xd7, 0x10, 0x5f, 0x9e, 0xe2, 0xbd, 0x04,
+ 0x58, 0xe7, 0xe6, 0xee, 0xe7, 0xf8, 0x1a, 0x52, 0x07, 0xc2, 0x8c, 0x06,
+ 0xcd, 0x49, 0x78, 0xd1, 0xf9, 0x7b, 0x7d, 0x44,
+};
+static const unsigned char kat3692_addinpr2[] = {0};
+static const unsigned char kat3692_retbits[] = {
+ 0x33, 0xdf, 0x35, 0x9f, 0xad, 0x35, 0x8f, 0xd0, 0x52, 0xd8, 0x1d, 0x6e,
+ 0x6a, 0xaf, 0xe3, 0xd3, 0x0d, 0x2b, 0xd5, 0xf0, 0xcb, 0xea, 0x34, 0xfa,
+ 0xf0, 0xa2, 0xc5, 0xf7, 0x98, 0x1e, 0x10, 0x03, 0x92, 0x4b, 0x6f, 0x5d,
+ 0xed, 0x0f, 0xe0, 0x08, 0x66, 0xc6, 0x38, 0x7a, 0x36, 0x89, 0x8d, 0xc6,
+ 0xe2, 0x3d, 0x2f, 0x3f, 0x10, 0x92, 0x72, 0x01, 0x29, 0xc5, 0x5c, 0xea,
+ 0xb8, 0xb9, 0x49, 0x41,
+};
+static const struct drbg_kat_pr_true kat3692_t = {
+ 1, kat3692_entropyin, kat3692_nonce, kat3692_persstr,
+ kat3692_entropyinpr1, kat3692_addinpr1, kat3692_entropyinpr2,
+ kat3692_addinpr2, kat3692_retbits
+};
+static const struct drbg_kat kat3692 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3692_t
+};
+
+static const unsigned char kat3693_entropyin[] = {
+ 0xf9, 0xdc, 0x20, 0xcd, 0xa9, 0x48, 0x3f, 0x64, 0x01, 0x99, 0xc4, 0x88,
+ 0xcb, 0xf5, 0x9e, 0xdc, 0x8e, 0xf9, 0x82, 0x9a, 0x2c, 0xdc, 0xff, 0x27,
+ 0xc9, 0x49, 0x6e, 0x92, 0x72, 0xf1, 0x90, 0x4e,
+};
+static const unsigned char kat3693_nonce[] = {0};
+static const unsigned char kat3693_persstr[] = {
+ 0x06, 0xd2, 0x8e, 0x96, 0x9a, 0xf2, 0xde, 0x1e, 0x67, 0x73, 0x13, 0x6b,
+ 0xee, 0xab, 0xac, 0x97, 0x79, 0x60, 0x85, 0x99, 0x55, 0xcc, 0x1f, 0xff,
+ 0x5e, 0x3c, 0xc3, 0x65, 0x84, 0xf9, 0x6a, 0x3f,
+};
+static const unsigned char kat3693_entropyinpr1[] = {
+ 0xc6, 0x68, 0x11, 0x72, 0x28, 0x27, 0x4c, 0xf4, 0x87, 0xbb, 0x89, 0xf2,
+ 0x1e, 0x1a, 0xd6, 0x0a, 0x1f, 0xaf, 0x0d, 0x27, 0xcb, 0x87, 0x3f, 0x1d,
+ 0x31, 0x59, 0xe7, 0x11, 0x5b, 0x6a, 0x7e, 0x9c,
+};
+static const unsigned char kat3693_addinpr1[] = {0};
+static const unsigned char kat3693_entropyinpr2[] = {
+ 0xa7, 0xeb, 0x3c, 0xc4, 0xdf, 0xe1, 0xe5, 0xaf, 0x2d, 0x54, 0xc5, 0x29,
+ 0x2d, 0x86, 0x9f, 0x96, 0x40, 0x05, 0xf4, 0x2e, 0xf8, 0x10, 0x09, 0x72,
+ 0xc8, 0x65, 0x90, 0x91, 0x1d, 0x21, 0x83, 0x07,
+};
+static const unsigned char kat3693_addinpr2[] = {0};
+static const unsigned char kat3693_retbits[] = {
+ 0xaa, 0xdc, 0x34, 0xee, 0x91, 0x54, 0x99, 0xb1, 0x7c, 0xad, 0x15, 0x13,
+ 0x1a, 0xe1, 0x38, 0x3f, 0x35, 0xe5, 0xfb, 0xca, 0x3f, 0x13, 0x82, 0x00,
+ 0xdd, 0x07, 0x06, 0x51, 0xcd, 0x29, 0x2e, 0x96, 0x5b, 0x65, 0x9c, 0x49,
+ 0x28, 0x09, 0x0b, 0xf4, 0xca, 0xa8, 0x2e, 0xb2, 0xa3, 0xd5, 0x59, 0x42,
+ 0x4d, 0xb2, 0x3a, 0x04, 0x26, 0xfb, 0xd6, 0x61, 0x44, 0xbd, 0x0d, 0x13,
+ 0x78, 0xe3, 0x29, 0x3b,
+};
+static const struct drbg_kat_pr_true kat3693_t = {
+ 2, kat3693_entropyin, kat3693_nonce, kat3693_persstr,
+ kat3693_entropyinpr1, kat3693_addinpr1, kat3693_entropyinpr2,
+ kat3693_addinpr2, kat3693_retbits
+};
+static const struct drbg_kat kat3693 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3693_t
+};
+
+static const unsigned char kat3694_entropyin[] = {
+ 0x33, 0xd4, 0x7f, 0xb0, 0xf3, 0x3e, 0xe9, 0x8c, 0x93, 0x9a, 0xab, 0x57,
+ 0xca, 0x43, 0x1f, 0x70, 0x60, 0xbc, 0x90, 0xc2, 0x94, 0x28, 0x69, 0x40,
+ 0x7c, 0x16, 0x86, 0xd6, 0x61, 0xf3, 0x1b, 0x35,
+};
+static const unsigned char kat3694_nonce[] = {0};
+static const unsigned char kat3694_persstr[] = {
+ 0x0c, 0x5b, 0x86, 0x31, 0x72, 0xdc, 0x14, 0xff, 0xeb, 0xdb, 0x0c, 0xa9,
+ 0x40, 0x7f, 0x97, 0xc6, 0x9e, 0x87, 0xd6, 0x41, 0xab, 0xd4, 0x62, 0x6a,
+ 0x8e, 0x35, 0xbb, 0x23, 0x0f, 0x6f, 0x62, 0x59,
+};
+static const unsigned char kat3694_entropyinpr1[] = {
+ 0xae, 0x5a, 0xaf, 0xff, 0x05, 0x46, 0x13, 0x43, 0x9b, 0x01, 0x42, 0x7e,
+ 0xbf, 0x22, 0xea, 0xde, 0x86, 0x74, 0x4a, 0x6b, 0xa1, 0x83, 0x54, 0x71,
+ 0xe1, 0x77, 0x33, 0x54, 0x07, 0x9d, 0x4a, 0x67,
+};
+static const unsigned char kat3694_addinpr1[] = {0};
+static const unsigned char kat3694_entropyinpr2[] = {
+ 0x3b, 0xd9, 0xab, 0x01, 0x0f, 0x7a, 0x31, 0x90, 0x4c, 0xff, 0x7f, 0x9d,
+ 0x2e, 0x1e, 0x77, 0x65, 0xa7, 0x1e, 0xfc, 0xe1, 0x5f, 0xd2, 0xc2, 0x03,
+ 0xa5, 0x01, 0x26, 0x5c, 0xba, 0x6f, 0x24, 0x61,
+};
+static const unsigned char kat3694_addinpr2[] = {0};
+static const unsigned char kat3694_retbits[] = {
+ 0x3b, 0xf8, 0xd5, 0xfc, 0xc0, 0x06, 0xb6, 0xc8, 0xe9, 0x28, 0x80, 0x48,
+ 0xf7, 0x39, 0xf7, 0x22, 0xcb, 0x7a, 0x04, 0xd7, 0x2f, 0x1f, 0x2f, 0xf3,
+ 0x80, 0xa7, 0x69, 0xde, 0x5d, 0x22, 0xfa, 0x7e, 0xfa, 0x9c, 0x1f, 0x88,
+ 0x5f, 0x50, 0x27, 0x4d, 0x5f, 0x67, 0xb0, 0x5b, 0xb3, 0xdb, 0x38, 0xf7,
+ 0x23, 0x95, 0x7c, 0xdc, 0x7b, 0x0e, 0xa5, 0xe6, 0x4a, 0x16, 0x88, 0x92,
+ 0x79, 0x0c, 0xf3, 0x66,
+};
+static const struct drbg_kat_pr_true kat3694_t = {
+ 3, kat3694_entropyin, kat3694_nonce, kat3694_persstr,
+ kat3694_entropyinpr1, kat3694_addinpr1, kat3694_entropyinpr2,
+ kat3694_addinpr2, kat3694_retbits
+};
+static const struct drbg_kat kat3694 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3694_t
+};
+
+static const unsigned char kat3695_entropyin[] = {
+ 0xfa, 0x02, 0x4c, 0x89, 0xb9, 0x28, 0x1e, 0x20, 0xc5, 0x1f, 0x37, 0x89,
+ 0xdf, 0xcf, 0x21, 0xe7, 0x8f, 0x0e, 0x71, 0x3f, 0x71, 0x48, 0xee, 0xf3,
+ 0x82, 0x61, 0xf1, 0x63, 0x74, 0x01, 0x14, 0x1f,
+};
+static const unsigned char kat3695_nonce[] = {0};
+static const unsigned char kat3695_persstr[] = {
+ 0x1c, 0x88, 0x20, 0x3a, 0xff, 0x89, 0xcb, 0x4b, 0xbb, 0xdb, 0x5d, 0x1b,
+ 0x64, 0x32, 0x23, 0x15, 0x6c, 0x56, 0x98, 0x20, 0x79, 0x09, 0xbb, 0x7b,
+ 0x6b, 0xe0, 0xb9, 0xe7, 0xd8, 0xf8, 0x3e, 0x67,
+};
+static const unsigned char kat3695_entropyinpr1[] = {
+ 0x8a, 0x03, 0xf7, 0x9c, 0xfa, 0xee, 0xc6, 0xb6, 0x1b, 0xec, 0x27, 0xd6,
+ 0xf7, 0xac, 0x9b, 0x5b, 0x10, 0xc6, 0x3e, 0x7e, 0x6a, 0xed, 0x2a, 0x1f,
+ 0x02, 0x92, 0xfd, 0x35, 0x48, 0xea, 0x9f, 0x3e,
+};
+static const unsigned char kat3695_addinpr1[] = {0};
+static const unsigned char kat3695_entropyinpr2[] = {
+ 0x41, 0x3d, 0x8c, 0x0a, 0xda, 0x92, 0x34, 0xf9, 0x52, 0x10, 0xdc, 0x1c,
+ 0xa8, 0xe5, 0xf1, 0xf2, 0xcb, 0x5f, 0x9c, 0xc4, 0x19, 0x3d, 0xcf, 0xc5,
+ 0x3a, 0xa1, 0x6c, 0xf4, 0xb1, 0xd2, 0x1e, 0xfa,
+};
+static const unsigned char kat3695_addinpr2[] = {0};
+static const unsigned char kat3695_retbits[] = {
+ 0xcd, 0x17, 0xd5, 0xeb, 0x10, 0xa7, 0x38, 0xdb, 0xb0, 0x22, 0x92, 0x5f,
+ 0x82, 0xa8, 0x34, 0xf2, 0xa3, 0x39, 0xfb, 0x4c, 0xb3, 0xee, 0x07, 0xf5,
+ 0xaa, 0x9b, 0x7d, 0x06, 0x49, 0x3d, 0x92, 0x8c, 0xa6, 0x83, 0xa1, 0x33,
+ 0xb4, 0x0b, 0x3e, 0x94, 0x9e, 0xb0, 0xbb, 0x33, 0x61, 0x59, 0x33, 0x84,
+ 0xfa, 0x0b, 0x04, 0x79, 0x1a, 0x43, 0xd9, 0x4b, 0x87, 0x9a, 0x34, 0xa1,
+ 0xfb, 0xa2, 0x9f, 0x02,
+};
+static const struct drbg_kat_pr_true kat3695_t = {
+ 4, kat3695_entropyin, kat3695_nonce, kat3695_persstr,
+ kat3695_entropyinpr1, kat3695_addinpr1, kat3695_entropyinpr2,
+ kat3695_addinpr2, kat3695_retbits
+};
+static const struct drbg_kat kat3695 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3695_t
+};
+
+static const unsigned char kat3696_entropyin[] = {
+ 0x80, 0x66, 0x5c, 0x98, 0xd1, 0x0d, 0x79, 0x77, 0x59, 0xec, 0x16, 0xde,
+ 0x62, 0xd8, 0xee, 0x4d, 0xf5, 0x16, 0x23, 0x34, 0x7b, 0xfc, 0xd8, 0xac,
+ 0x3e, 0xbb, 0xeb, 0x10, 0x15, 0x6f, 0xfd, 0xdc,
+};
+static const unsigned char kat3696_nonce[] = {0};
+static const unsigned char kat3696_persstr[] = {
+ 0x65, 0x3e, 0x8c, 0x87, 0xd6, 0x20, 0xdf, 0x64, 0x5d, 0x31, 0x57, 0x73,
+ 0x32, 0x03, 0xf0, 0xc5, 0x6b, 0x63, 0xe4, 0xcd, 0xfb, 0x7f, 0x98, 0x83,
+ 0xda, 0x4e, 0x19, 0x75, 0xea, 0x14, 0xc8, 0x52,
+};
+static const unsigned char kat3696_entropyinpr1[] = {
+ 0x99, 0xe0, 0x59, 0x7c, 0x5f, 0xa9, 0x6d, 0xc4, 0xee, 0x61, 0x99, 0x37,
+ 0x09, 0x1d, 0x5f, 0x7a, 0x67, 0xe6, 0x86, 0xa1, 0x79, 0xbd, 0xe6, 0x8c,
+ 0x0e, 0xdd, 0xcf, 0xf6, 0xb1, 0xdb, 0x19, 0xc8,
+};
+static const unsigned char kat3696_addinpr1[] = {0};
+static const unsigned char kat3696_entropyinpr2[] = {
+ 0x08, 0x7c, 0x73, 0x67, 0x58, 0xe4, 0x2a, 0x8b, 0x6c, 0x6e, 0x4a, 0x1a,
+ 0x13, 0xe6, 0x15, 0x01, 0xff, 0x79, 0x48, 0xa2, 0xcc, 0xce, 0xcf, 0x2c,
+ 0x20, 0x70, 0xad, 0xc5, 0x93, 0x1c, 0x49, 0x72,
+};
+static const unsigned char kat3696_addinpr2[] = {0};
+static const unsigned char kat3696_retbits[] = {
+ 0x29, 0xfd, 0x64, 0x17, 0x16, 0x69, 0x1b, 0x1f, 0x94, 0x35, 0x42, 0x19,
+ 0xe2, 0x0e, 0x7e, 0xfb, 0x15, 0x17, 0x54, 0x67, 0x1e, 0x19, 0x6e, 0x44,
+ 0x0a, 0x61, 0x4f, 0x34, 0xb8, 0x68, 0x37, 0xa8, 0xbc, 0xb0, 0x80, 0xcf,
+ 0x7f, 0xbc, 0xf0, 0x91, 0x41, 0xbd, 0x8e, 0xbe, 0xe7, 0xde, 0x6e, 0xec,
+ 0x06, 0xf6, 0x22, 0xbe, 0x10, 0x06, 0x3b, 0x6f, 0x6e, 0xfc, 0x21, 0x7c,
+ 0x94, 0x5f, 0xc9, 0xef,
+};
+static const struct drbg_kat_pr_true kat3696_t = {
+ 5, kat3696_entropyin, kat3696_nonce, kat3696_persstr,
+ kat3696_entropyinpr1, kat3696_addinpr1, kat3696_entropyinpr2,
+ kat3696_addinpr2, kat3696_retbits
+};
+static const struct drbg_kat kat3696 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3696_t
+};
+
+static const unsigned char kat3697_entropyin[] = {
+ 0xa5, 0x3e, 0x59, 0x2b, 0xf6, 0x28, 0xec, 0x67, 0xb0, 0x70, 0xe3, 0xc1,
+ 0x43, 0xe5, 0x4c, 0x1f, 0x86, 0x5b, 0x8f, 0xcf, 0x0b, 0x3e, 0x43, 0x7d,
+ 0x09, 0x2b, 0xe8, 0x2b, 0xe7, 0x2c, 0x7e, 0x6c,
+};
+static const unsigned char kat3697_nonce[] = {0};
+static const unsigned char kat3697_persstr[] = {
+ 0xa3, 0x50, 0x28, 0x3b, 0x25, 0xd1, 0x53, 0x05, 0x83, 0x74, 0xf5, 0x81,
+ 0x4e, 0xcd, 0xd8, 0x0c, 0xd7, 0x8b, 0x8e, 0xef, 0xdb, 0xc6, 0x7b, 0x06,
+ 0x54, 0xa9, 0x83, 0x6b, 0xc8, 0x0c, 0x28, 0x6d,
+};
+static const unsigned char kat3697_entropyinpr1[] = {
+ 0xd0, 0x1f, 0x40, 0x4c, 0x9f, 0xe6, 0xcc, 0x4b, 0x06, 0x46, 0xad, 0xe5,
+ 0x6e, 0x6f, 0x30, 0xa0, 0xc7, 0x63, 0xbf, 0x53, 0x7a, 0x95, 0xb7, 0x1b,
+ 0x9f, 0x97, 0x6e, 0x9c, 0x7d, 0x6e, 0x15, 0x51,
+};
+static const unsigned char kat3697_addinpr1[] = {0};
+static const unsigned char kat3697_entropyinpr2[] = {
+ 0xc7, 0x79, 0x4c, 0x0b, 0xe9, 0x0f, 0x4a, 0xd1, 0xb4, 0x4d, 0x95, 0xb2,
+ 0xa5, 0x64, 0xee, 0x5f, 0xaf, 0x9c, 0x2a, 0x86, 0x74, 0xde, 0x9f, 0x4c,
+ 0xca, 0xc0, 0x24, 0x77, 0x15, 0xf8, 0x73, 0xf7,
+};
+static const unsigned char kat3697_addinpr2[] = {0};
+static const unsigned char kat3697_retbits[] = {
+ 0x13, 0xb1, 0xbf, 0x14, 0x67, 0x2e, 0xa2, 0x03, 0xa7, 0xa5, 0xfe, 0xca,
+ 0x66, 0x38, 0x59, 0xb0, 0x8a, 0xb5, 0x87, 0x8f, 0x44, 0xc3, 0xb8, 0x8d,
+ 0xf7, 0x95, 0x98, 0x98, 0x5a, 0x88, 0xc3, 0xb2, 0x8a, 0x84, 0xd6, 0xe0,
+ 0x0e, 0x87, 0x01, 0x10, 0x9c, 0xfe, 0x2c, 0x15, 0xea, 0x85, 0x90, 0x8f,
+ 0x0e, 0xdf, 0x7b, 0x87, 0x76, 0x71, 0xc0, 0x22, 0xbb, 0xb0, 0xd3, 0x1e,
+ 0xbf, 0xa3, 0xb3, 0x8a,
+};
+static const struct drbg_kat_pr_true kat3697_t = {
+ 6, kat3697_entropyin, kat3697_nonce, kat3697_persstr,
+ kat3697_entropyinpr1, kat3697_addinpr1, kat3697_entropyinpr2,
+ kat3697_addinpr2, kat3697_retbits
+};
+static const struct drbg_kat kat3697 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3697_t
+};
+
+static const unsigned char kat3698_entropyin[] = {
+ 0x8c, 0xb2, 0xfa, 0xbb, 0x3f, 0xeb, 0x08, 0x21, 0xb8, 0xbe, 0x1a, 0xe0,
+ 0x25, 0x13, 0x79, 0x18, 0x35, 0xac, 0xcd, 0x0f, 0xaf, 0x33, 0x05, 0x95,
+ 0x55, 0x74, 0x4b, 0x8e, 0x7b, 0xbb, 0x59, 0x00,
+};
+static const unsigned char kat3698_nonce[] = {0};
+static const unsigned char kat3698_persstr[] = {
+ 0x5e, 0x63, 0x16, 0xfb, 0x93, 0xcd, 0xc3, 0x40, 0x78, 0x80, 0x7f, 0xd8,
+ 0x38, 0x58, 0xca, 0x6d, 0xeb, 0xfe, 0x7b, 0x50, 0xd7, 0xb5, 0x1a, 0xc1,
+ 0xb8, 0x93, 0xf2, 0x7b, 0xb5, 0x82, 0xfd, 0xe4,
+};
+static const unsigned char kat3698_entropyinpr1[] = {
+ 0xd5, 0xf9, 0x90, 0x5d, 0x50, 0xef, 0x70, 0xb9, 0x60, 0x44, 0xf6, 0x6f,
+ 0x9a, 0xea, 0x9e, 0x38, 0x1c, 0x84, 0x07, 0xc1, 0x8c, 0xa9, 0x8d, 0x7c,
+ 0x65, 0xec, 0x72, 0xda, 0x06, 0x25, 0x17, 0xc8,
+};
+static const unsigned char kat3698_addinpr1[] = {0};
+static const unsigned char kat3698_entropyinpr2[] = {
+ 0x1c, 0x06, 0x81, 0x5f, 0xba, 0x94, 0x6e, 0x4f, 0x86, 0x03, 0xcf, 0x7f,
+ 0x11, 0x69, 0xda, 0xb4, 0x95, 0x9a, 0x75, 0x34, 0x4e, 0x6f, 0x5e, 0x3d,
+ 0xe9, 0xe8, 0xa9, 0x8a, 0x85, 0xb1, 0x35, 0x17,
+};
+static const unsigned char kat3698_addinpr2[] = {0};
+static const unsigned char kat3698_retbits[] = {
+ 0x03, 0x09, 0x7c, 0xe5, 0x59, 0x66, 0x9f, 0x28, 0x94, 0x87, 0x13, 0x9d,
+ 0xa6, 0x30, 0x5f, 0x23, 0x23, 0x04, 0x8b, 0xf9, 0x24, 0x5a, 0xc0, 0x06,
+ 0xaa, 0xa0, 0xe5, 0x78, 0xac, 0xd9, 0xab, 0x16, 0xf2, 0xa8, 0xdd, 0xa5,
+ 0x06, 0x51, 0xff, 0xbd, 0x91, 0xa8, 0x45, 0xd6, 0xfc, 0x11, 0x75, 0x93,
+ 0x28, 0xc6, 0x7e, 0xcd, 0x65, 0x86, 0x34, 0x1f, 0xa2, 0x20, 0x51, 0x3b,
+ 0xde, 0xc7, 0x30, 0x1a,
+};
+static const struct drbg_kat_pr_true kat3698_t = {
+ 7, kat3698_entropyin, kat3698_nonce, kat3698_persstr,
+ kat3698_entropyinpr1, kat3698_addinpr1, kat3698_entropyinpr2,
+ kat3698_addinpr2, kat3698_retbits
+};
+static const struct drbg_kat kat3698 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3698_t
+};
+
+static const unsigned char kat3699_entropyin[] = {
+ 0xee, 0xb5, 0x66, 0xd9, 0xc6, 0xdc, 0x97, 0x9b, 0xd0, 0x6e, 0x73, 0x4b,
+ 0x54, 0xad, 0xb7, 0xff, 0x2c, 0xe8, 0x06, 0x79, 0xcb, 0x3b, 0x54, 0x06,
+ 0x06, 0x3a, 0xb5, 0x89, 0xa2, 0x36, 0x88, 0xcc,
+};
+static const unsigned char kat3699_nonce[] = {0};
+static const unsigned char kat3699_persstr[] = {
+ 0x0b, 0x22, 0xb4, 0x63, 0x3e, 0x36, 0x57, 0xbd, 0x5f, 0xaa, 0x1d, 0x88,
+ 0xeb, 0xa2, 0x3e, 0x8d, 0xd6, 0x70, 0xd8, 0x34, 0xcc, 0x0a, 0xbd, 0x6a,
+ 0xa7, 0x00, 0x74, 0x5b, 0xc2, 0x5a, 0xb5, 0x35,
+};
+static const unsigned char kat3699_entropyinpr1[] = {
+ 0x3c, 0x5e, 0xb7, 0x0e, 0xf7, 0x83, 0x25, 0x1d, 0xb8, 0xe1, 0x65, 0xf2,
+ 0x78, 0xe3, 0x77, 0x65, 0x41, 0xc4, 0x8c, 0x24, 0x8f, 0xa1, 0xf5, 0x79,
+ 0x01, 0x24, 0xc0, 0xa4, 0x67, 0x56, 0x59, 0xe7,
+};
+static const unsigned char kat3699_addinpr1[] = {0};
+static const unsigned char kat3699_entropyinpr2[] = {
+ 0x82, 0x0a, 0xeb, 0x6b, 0x9c, 0x95, 0x9b, 0xd0, 0xf9, 0xa6, 0xcb, 0xe0,
+ 0xbe, 0x5d, 0x01, 0xe4, 0xb3, 0x6d, 0x00, 0xfe, 0x56, 0x15, 0x08, 0xef,
+ 0x4d, 0xc4, 0x5b, 0xd5, 0x03, 0xe8, 0xb9, 0x9f,
+};
+static const unsigned char kat3699_addinpr2[] = {0};
+static const unsigned char kat3699_retbits[] = {
+ 0x83, 0xba, 0x42, 0xf8, 0x51, 0xc8, 0x37, 0xcc, 0x9b, 0x45, 0x54, 0x14,
+ 0xf0, 0x76, 0x50, 0x4f, 0x17, 0xb7, 0x6f, 0x41, 0x7f, 0x62, 0x83, 0xaf,
+ 0x33, 0xf6, 0x39, 0x89, 0x2f, 0xc8, 0x57, 0x1a, 0xcb, 0x52, 0x53, 0x46,
+ 0xe2, 0xff, 0x79, 0xab, 0x12, 0xd8, 0x91, 0x3e, 0x69, 0x6a, 0x18, 0x59,
+ 0xa1, 0x7e, 0xfc, 0xa8, 0x8d, 0xb7, 0x27, 0x3a, 0x99, 0x41, 0x7c, 0x5e,
+ 0xf1, 0xd8, 0x87, 0x15,
+};
+static const struct drbg_kat_pr_true kat3699_t = {
+ 8, kat3699_entropyin, kat3699_nonce, kat3699_persstr,
+ kat3699_entropyinpr1, kat3699_addinpr1, kat3699_entropyinpr2,
+ kat3699_addinpr2, kat3699_retbits
+};
+static const struct drbg_kat kat3699 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3699_t
+};
+
+static const unsigned char kat3700_entropyin[] = {
+ 0xa7, 0x1c, 0x2f, 0x01, 0x70, 0xe7, 0x99, 0x88, 0x04, 0xe6, 0x96, 0x1d,
+ 0x79, 0x18, 0xee, 0x63, 0x87, 0xcc, 0x08, 0xba, 0x7f, 0xb7, 0xe5, 0x6e,
+ 0x7b, 0x26, 0xa4, 0x15, 0x97, 0xc5, 0xc0, 0x98,
+};
+static const unsigned char kat3700_nonce[] = {0};
+static const unsigned char kat3700_persstr[] = {
+ 0x93, 0x63, 0x77, 0xc9, 0xb6, 0xfd, 0xf5, 0xe3, 0xe8, 0xb7, 0xb2, 0x88,
+ 0xf4, 0x70, 0xc1, 0x3b, 0x1d, 0x2c, 0x43, 0x42, 0x6b, 0x96, 0x95, 0xc3,
+ 0x25, 0xc3, 0xed, 0xf2, 0x00, 0xbf, 0xac, 0x5f,
+};
+static const unsigned char kat3700_entropyinpr1[] = {
+ 0x08, 0x3e, 0xc9, 0xfa, 0x97, 0x4b, 0x46, 0xb1, 0x11, 0xb3, 0x41, 0xb2,
+ 0x7c, 0x26, 0x64, 0x04, 0x98, 0x72, 0x2a, 0xf6, 0x54, 0xcb, 0x87, 0x8a,
+ 0x6d, 0x26, 0x6a, 0x86, 0xbf, 0x63, 0xfb, 0x7c,
+};
+static const unsigned char kat3700_addinpr1[] = {0};
+static const unsigned char kat3700_entropyinpr2[] = {
+ 0x6e, 0x9c, 0xa0, 0xee, 0x1f, 0x96, 0x11, 0x61, 0x9d, 0x3f, 0x7c, 0x84,
+ 0xde, 0x39, 0xb3, 0xde, 0xc1, 0xa1, 0x01, 0x32, 0x9e, 0xf2, 0x51, 0x86,
+ 0xea, 0x37, 0x9f, 0x00, 0x01, 0xa6, 0x72, 0xeb,
+};
+static const unsigned char kat3700_addinpr2[] = {0};
+static const unsigned char kat3700_retbits[] = {
+ 0xfa, 0x52, 0xa3, 0x8f, 0xaa, 0xdd, 0x5b, 0xcf, 0x80, 0x07, 0x82, 0x5d,
+ 0x66, 0x97, 0x45, 0x94, 0xe8, 0xd8, 0x8b, 0xec, 0x83, 0x5a, 0x42, 0x68,
+ 0x66, 0xe1, 0x0f, 0x30, 0xef, 0x24, 0x53, 0xdb, 0x2b, 0xa6, 0x45, 0x7b,
+ 0xea, 0xdc, 0x64, 0xdf, 0x2d, 0xb4, 0x16, 0xae, 0xd0, 0x7c, 0x2e, 0xd6,
+ 0xb0, 0xac, 0xf7, 0x7a, 0xb5, 0x32, 0x53, 0x66, 0xae, 0xcf, 0x7e, 0xf9,
+ 0x80, 0x53, 0x04, 0x21,
+};
+static const struct drbg_kat_pr_true kat3700_t = {
+ 9, kat3700_entropyin, kat3700_nonce, kat3700_persstr,
+ kat3700_entropyinpr1, kat3700_addinpr1, kat3700_entropyinpr2,
+ kat3700_addinpr2, kat3700_retbits
+};
+static const struct drbg_kat kat3700 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3700_t
+};
+
+static const unsigned char kat3701_entropyin[] = {
+ 0xe6, 0x7e, 0x46, 0xf3, 0xf0, 0xf9, 0x46, 0x83, 0x59, 0xc9, 0xdc, 0xf9,
+ 0xfe, 0x0d, 0x89, 0x5e, 0x67, 0x92, 0x9c, 0x1b, 0xa4, 0xe1, 0xe7, 0x7a,
+ 0xd2, 0xbc, 0x7a, 0xc6, 0x89, 0x78, 0xf7, 0x78,
+};
+static const unsigned char kat3701_nonce[] = {0};
+static const unsigned char kat3701_persstr[] = {
+ 0x70, 0xb3, 0x07, 0x4d, 0xe0, 0x21, 0xce, 0xc7, 0xbc, 0xe1, 0xaf, 0x85,
+ 0xd8, 0x65, 0x35, 0xca, 0x96, 0xe3, 0xc1, 0x98, 0xf1, 0xb1, 0xbc, 0xb6,
+ 0x4d, 0xce, 0xc2, 0x8b, 0x62, 0x68, 0xf0, 0x2c,
+};
+static const unsigned char kat3701_entropyinpr1[] = {
+ 0x4b, 0xf6, 0x8c, 0x60, 0x1a, 0x85, 0x57, 0xbe, 0xf0, 0x15, 0x5e, 0x3d,
+ 0xa0, 0xb7, 0xa0, 0x7b, 0x9f, 0x5a, 0xef, 0xe2, 0xb6, 0x65, 0x75, 0xbd,
+ 0x92, 0x9f, 0xcf, 0x4d, 0x5c, 0xcf, 0xce, 0x6c,
+};
+static const unsigned char kat3701_addinpr1[] = {0};
+static const unsigned char kat3701_entropyinpr2[] = {
+ 0x27, 0x0f, 0x83, 0xa0, 0xa7, 0xc4, 0x67, 0x8c, 0xad, 0x79, 0x2d, 0x9d,
+ 0x35, 0xb6, 0x3c, 0x8f, 0x32, 0xe5, 0xf0, 0x4c, 0x7c, 0x2e, 0x36, 0x52,
+ 0x72, 0xe7, 0x4f, 0x4a, 0x68, 0x0a, 0x13, 0xe2,
+};
+static const unsigned char kat3701_addinpr2[] = {0};
+static const unsigned char kat3701_retbits[] = {
+ 0xfe, 0xf3, 0x3e, 0xd5, 0x98, 0xd9, 0xc9, 0x2b, 0x11, 0x59, 0xea, 0x27,
+ 0x4b, 0x17, 0xd0, 0xd2, 0xe7, 0x57, 0x47, 0x67, 0xb2, 0x2f, 0xae, 0xfe,
+ 0x49, 0x2f, 0x76, 0x3f, 0x87, 0x5b, 0xa8, 0x25, 0xdd, 0x1d, 0x2b, 0x80,
+ 0x08, 0xa4, 0x64, 0x8e, 0x8d, 0x63, 0xb7, 0x57, 0xa6, 0x29, 0xd2, 0xdc,
+ 0x3b, 0xcb, 0xf1, 0xc2, 0xff, 0x98, 0x99, 0x91, 0xc6, 0x9f, 0xca, 0x17,
+ 0xd3, 0xf9, 0x8c, 0x1a,
+};
+static const struct drbg_kat_pr_true kat3701_t = {
+ 10, kat3701_entropyin, kat3701_nonce, kat3701_persstr,
+ kat3701_entropyinpr1, kat3701_addinpr1, kat3701_entropyinpr2,
+ kat3701_addinpr2, kat3701_retbits
+};
+static const struct drbg_kat kat3701 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3701_t
+};
+
+static const unsigned char kat3702_entropyin[] = {
+ 0x6a, 0x0f, 0x20, 0xfb, 0x2e, 0x79, 0x80, 0x58, 0x8a, 0x87, 0xdd, 0xfb,
+ 0xc6, 0xcb, 0x6a, 0x91, 0x91, 0x95, 0xde, 0xca, 0x2b, 0x3a, 0xac, 0x7a,
+ 0x8e, 0xd0, 0x27, 0x3f, 0x95, 0xdf, 0x6f, 0xd3,
+};
+static const unsigned char kat3702_nonce[] = {0};
+static const unsigned char kat3702_persstr[] = {
+ 0x18, 0x83, 0x20, 0x43, 0x62, 0x39, 0x8a, 0x02, 0xf0, 0xd6, 0xd3, 0x22,
+ 0x22, 0x32, 0x65, 0x58, 0xdc, 0x7b, 0xc9, 0x4b, 0xd9, 0x48, 0x2a, 0xd0,
+ 0xac, 0x61, 0x16, 0x99, 0x95, 0x1d, 0xf1, 0x06,
+};
+static const unsigned char kat3702_entropyinpr1[] = {
+ 0xad, 0xc6, 0x64, 0x96, 0xb8, 0xd7, 0x73, 0x8d, 0xfe, 0xb9, 0x73, 0x29,
+ 0x4a, 0x6d, 0x79, 0x45, 0xe4, 0xa1, 0xb0, 0xbd, 0x54, 0x00, 0x06, 0x2a,
+ 0x56, 0xcf, 0xeb, 0x04, 0xbf, 0xde, 0x98, 0x57,
+};
+static const unsigned char kat3702_addinpr1[] = {0};
+static const unsigned char kat3702_entropyinpr2[] = {
+ 0xb8, 0x20, 0xc3, 0xf1, 0x0c, 0x8d, 0xd7, 0x20, 0x5f, 0xda, 0x78, 0xa4,
+ 0x29, 0x23, 0x14, 0xd4, 0x57, 0x97, 0xdf, 0xec, 0xd7, 0x1f, 0xed, 0x23,
+ 0xff, 0x0a, 0x85, 0x6e, 0xec, 0x45, 0x01, 0x79,
+};
+static const unsigned char kat3702_addinpr2[] = {0};
+static const unsigned char kat3702_retbits[] = {
+ 0x01, 0x0e, 0x13, 0xdc, 0xea, 0x57, 0xc0, 0xde, 0xbd, 0x88, 0x71, 0x3c,
+ 0x3b, 0x7e, 0x43, 0x3c, 0x97, 0xdd, 0xad, 0xd8, 0x4e, 0x49, 0x39, 0x6a,
+ 0xf4, 0xa7, 0xee, 0x7f, 0x58, 0x02, 0x85, 0xd8, 0x02, 0x88, 0x08, 0x7f,
+ 0xf7, 0x2a, 0x37, 0x42, 0x87, 0x0c, 0x38, 0x64, 0x2f, 0x45, 0x6f, 0x67,
+ 0x6b, 0xf0, 0x19, 0x52, 0xcc, 0x2e, 0xdf, 0xc8, 0x2a, 0xea, 0x75, 0x37,
+ 0xd7, 0x53, 0xdf, 0xef,
+};
+static const struct drbg_kat_pr_true kat3702_t = {
+ 11, kat3702_entropyin, kat3702_nonce, kat3702_persstr,
+ kat3702_entropyinpr1, kat3702_addinpr1, kat3702_entropyinpr2,
+ kat3702_addinpr2, kat3702_retbits
+};
+static const struct drbg_kat kat3702 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3702_t
+};
+
+static const unsigned char kat3703_entropyin[] = {
+ 0x55, 0x56, 0x66, 0xbc, 0x1f, 0xb0, 0x98, 0x84, 0xc0, 0xf8, 0x3a, 0x0b,
+ 0x2b, 0x05, 0xb6, 0x99, 0x35, 0x06, 0xcd, 0x9c, 0xfa, 0x99, 0x47, 0x03,
+ 0x94, 0x21, 0x11, 0x63, 0x0b, 0x51, 0xb2, 0x59,
+};
+static const unsigned char kat3703_nonce[] = {0};
+static const unsigned char kat3703_persstr[] = {
+ 0x64, 0x83, 0xa0, 0xaf, 0x79, 0x7c, 0xb6, 0xc9, 0xd6, 0x8b, 0xe1, 0x30,
+ 0xe7, 0x93, 0xc9, 0x86, 0xa9, 0x21, 0x87, 0xf5, 0x1c, 0x0f, 0xf9, 0x47,
+ 0xc7, 0x34, 0x5a, 0xaa, 0x61, 0x27, 0xfb, 0xcd,
+};
+static const unsigned char kat3703_entropyinpr1[] = {
+ 0x8e, 0x5a, 0x9f, 0x4a, 0x73, 0xa8, 0xdb, 0x1e, 0xd8, 0xdb, 0x88, 0x9e,
+ 0x80, 0xc7, 0x87, 0xe2, 0x0d, 0x25, 0xd2, 0x22, 0x06, 0xe9, 0x5e, 0xec,
+ 0x61, 0xd5, 0x7c, 0xd1, 0xcd, 0x91, 0x76, 0xaf,
+};
+static const unsigned char kat3703_addinpr1[] = {0};
+static const unsigned char kat3703_entropyinpr2[] = {
+ 0xb5, 0x99, 0x04, 0xdd, 0xfd, 0x61, 0xc3, 0xf2, 0x6b, 0x7d, 0x33, 0xd2,
+ 0x3c, 0x18, 0xc7, 0xf9, 0xd7, 0x16, 0x15, 0x3b, 0x48, 0x87, 0x73, 0x67,
+ 0x82, 0x41, 0xb8, 0x1b, 0x40, 0x66, 0x66, 0xda,
+};
+static const unsigned char kat3703_addinpr2[] = {0};
+static const unsigned char kat3703_retbits[] = {
+ 0x19, 0xc8, 0xe2, 0x9e, 0x51, 0xf8, 0x98, 0x6a, 0x63, 0x5e, 0xd5, 0x3d,
+ 0x4a, 0x98, 0x47, 0xa6, 0x02, 0x16, 0x8e, 0x5c, 0xa2, 0xfb, 0xba, 0x07,
+ 0x99, 0xf0, 0xbc, 0x85, 0xf4, 0xe9, 0xa9, 0x82, 0xa6, 0x46, 0xa7, 0xc2,
+ 0x36, 0x42, 0xe4, 0xa4, 0x5c, 0x71, 0xd9, 0x24, 0x90, 0xf4, 0x7a, 0x24,
+ 0xdd, 0x82, 0xbf, 0xe0, 0x73, 0xa2, 0x9f, 0x5c, 0xc8, 0x87, 0x3e, 0xe2,
+ 0x38, 0x23, 0xfe, 0x89,
+};
+static const struct drbg_kat_pr_true kat3703_t = {
+ 12, kat3703_entropyin, kat3703_nonce, kat3703_persstr,
+ kat3703_entropyinpr1, kat3703_addinpr1, kat3703_entropyinpr2,
+ kat3703_addinpr2, kat3703_retbits
+};
+static const struct drbg_kat kat3703 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3703_t
+};
+
+static const unsigned char kat3704_entropyin[] = {
+ 0xfc, 0x85, 0x15, 0x5e, 0xfd, 0x4e, 0x76, 0x78, 0x31, 0x51, 0x46, 0xa3,
+ 0x8b, 0x52, 0x99, 0xaa, 0x41, 0x8f, 0xbd, 0xa1, 0x8e, 0x1f, 0x6d, 0x59,
+ 0x3c, 0x7e, 0xf3, 0xaf, 0x54, 0x62, 0x9e, 0xe4,
+};
+static const unsigned char kat3704_nonce[] = {0};
+static const unsigned char kat3704_persstr[] = {
+ 0xde, 0x30, 0xff, 0x5d, 0xd4, 0xaa, 0x92, 0xef, 0xd8, 0xaa, 0x19, 0x98,
+ 0x39, 0xd1, 0x83, 0xef, 0xcd, 0xc3, 0xc5, 0xbc, 0xeb, 0x4e, 0x24, 0x06,
+ 0x06, 0x06, 0x1a, 0xd0, 0xc3, 0xab, 0x1d, 0x6a,
+};
+static const unsigned char kat3704_entropyinpr1[] = {
+ 0xc2, 0xec, 0x1d, 0x42, 0xb8, 0xad, 0xd6, 0x49, 0x44, 0x02, 0x49, 0x5b,
+ 0x7a, 0xcf, 0x6b, 0xf6, 0xff, 0x43, 0xe9, 0xf9, 0x09, 0xeb, 0x89, 0x0e,
+ 0xbb, 0x58, 0xbc, 0x3e, 0x2f, 0x57, 0x4d, 0x99,
+};
+static const unsigned char kat3704_addinpr1[] = {0};
+static const unsigned char kat3704_entropyinpr2[] = {
+ 0x3b, 0x8a, 0xb0, 0xe3, 0x69, 0x81, 0x6b, 0xea, 0xf5, 0xb4, 0x6b, 0xa2,
+ 0xc6, 0x51, 0xd1, 0x04, 0x32, 0x44, 0xa8, 0x91, 0x0f, 0xce, 0x1e, 0x99,
+ 0x87, 0x3e, 0x48, 0x7a, 0x60, 0xc3, 0x2a, 0x54,
+};
+static const unsigned char kat3704_addinpr2[] = {0};
+static const unsigned char kat3704_retbits[] = {
+ 0x33, 0x19, 0x31, 0xde, 0xa8, 0xd6, 0xa2, 0x89, 0x02, 0x9c, 0x14, 0xe0,
+ 0x83, 0xb7, 0x5b, 0x63, 0x6c, 0x92, 0x8c, 0x89, 0x58, 0x21, 0x02, 0xce,
+ 0x2e, 0xa8, 0xa9, 0xa1, 0xa2, 0x4b, 0xf2, 0x26, 0x93, 0xb0, 0xa2, 0xcd,
+ 0x3f, 0x56, 0x2f, 0x17, 0xc1, 0x0f, 0xd8, 0x3d, 0x81, 0x75, 0x57, 0x3a,
+ 0x80, 0x5e, 0xd3, 0xdc, 0x6a, 0x3b, 0x28, 0x59, 0x8e, 0x33, 0xec, 0xc2,
+ 0xc5, 0x93, 0xb6, 0xe1,
+};
+static const struct drbg_kat_pr_true kat3704_t = {
+ 13, kat3704_entropyin, kat3704_nonce, kat3704_persstr,
+ kat3704_entropyinpr1, kat3704_addinpr1, kat3704_entropyinpr2,
+ kat3704_addinpr2, kat3704_retbits
+};
+static const struct drbg_kat kat3704 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3704_t
+};
+
+static const unsigned char kat3705_entropyin[] = {
+ 0x8b, 0x1a, 0x74, 0x0b, 0xa7, 0x0e, 0xc2, 0x15, 0xa6, 0x9c, 0x4c, 0x3d,
+ 0x92, 0xa0, 0xfa, 0x1b, 0x3a, 0x8a, 0x2b, 0x8c, 0xdb, 0x43, 0x58, 0xf7,
+ 0x7f, 0x02, 0xcc, 0xa4, 0xed, 0x50, 0x3f, 0xd7,
+};
+static const unsigned char kat3705_nonce[] = {0};
+static const unsigned char kat3705_persstr[] = {
+ 0xbf, 0xe8, 0x59, 0x2a, 0x40, 0x93, 0xbd, 0x46, 0x4f, 0xf3, 0xc8, 0x36,
+ 0x88, 0x5f, 0x41, 0x92, 0x74, 0xe7, 0x4d, 0x71, 0xca, 0x62, 0xea, 0x83,
+ 0xcd, 0xef, 0x07, 0xcd, 0xf5, 0x27, 0x87, 0x9a,
+};
+static const unsigned char kat3705_entropyinpr1[] = {
+ 0xd0, 0xca, 0xa7, 0x1a, 0x0c, 0x2e, 0x2f, 0x21, 0x8b, 0xdd, 0xed, 0x7a,
+ 0x08, 0x86, 0x4a, 0xdd, 0xea, 0x82, 0x2a, 0xaa, 0xb5, 0x98, 0xb5, 0x67,
+ 0x92, 0x70, 0x42, 0xdd, 0x3d, 0xb2, 0x93, 0x13,
+};
+static const unsigned char kat3705_addinpr1[] = {0};
+static const unsigned char kat3705_entropyinpr2[] = {
+ 0x31, 0xfc, 0xf2, 0xf4, 0xf7, 0x58, 0x0e, 0xa3, 0xb7, 0x9e, 0x73, 0x88,
+ 0x30, 0xd4, 0x2a, 0x21, 0x89, 0x35, 0xac, 0x5c, 0x65, 0x83, 0xfe, 0xba,
+ 0xbc, 0x14, 0xbb, 0x54, 0x63, 0xfe, 0x46, 0x09,
+};
+static const unsigned char kat3705_addinpr2[] = {0};
+static const unsigned char kat3705_retbits[] = {
+ 0xae, 0x6c, 0xbc, 0x3e, 0x10, 0x8b, 0xa6, 0x4b, 0x18, 0x24, 0x4a, 0xc1,
+ 0x4e, 0xef, 0xb6, 0x70, 0xca, 0xa1, 0x67, 0x84, 0xe1, 0x75, 0xff, 0xc1,
+ 0xf4, 0x11, 0x26, 0xcd, 0xbe, 0x79, 0x1e, 0x0e, 0x3d, 0xe2, 0x6d, 0x58,
+ 0x12, 0x3a, 0xae, 0x68, 0x43, 0x61, 0x3b, 0x47, 0x8b, 0x9e, 0xd9, 0x41,
+ 0x73, 0xfa, 0x27, 0xc7, 0x40, 0x0b, 0xb0, 0x71, 0xe0, 0xa9, 0x82, 0x9b,
+ 0x9a, 0x8f, 0xca, 0x19,
+};
+static const struct drbg_kat_pr_true kat3705_t = {
+ 14, kat3705_entropyin, kat3705_nonce, kat3705_persstr,
+ kat3705_entropyinpr1, kat3705_addinpr1, kat3705_entropyinpr2,
+ kat3705_addinpr2, kat3705_retbits
+};
+static const struct drbg_kat kat3705 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3705_t
+};
+
+static const unsigned char kat3706_entropyin[] = {
+ 0x0b, 0x9b, 0x6b, 0x06, 0x76, 0x68, 0xbc, 0xdd, 0x7f, 0xe3, 0xc9, 0x97,
+ 0x34, 0x11, 0x99, 0xa0, 0x92, 0x12, 0x44, 0xa4, 0xc5, 0x96, 0x09, 0xfe,
+ 0x00, 0x2a, 0xa4, 0x0a, 0x83, 0xd7, 0x9b, 0x9b,
+};
+static const unsigned char kat3706_nonce[] = {0};
+static const unsigned char kat3706_persstr[] = {
+ 0x1d, 0xf9, 0xc0, 0x23, 0xcc, 0x60, 0x33, 0x5d, 0x65, 0xff, 0xa7, 0x10,
+ 0xf6, 0x26, 0x47, 0xf9, 0xfb, 0xae, 0x53, 0x9f, 0xf1, 0xfd, 0xf4, 0x35,
+ 0xd4, 0xfb, 0x79, 0xdc, 0x22, 0x2c, 0x5b, 0x5d,
+};
+static const unsigned char kat3706_entropyinpr1[] = {
+ 0x48, 0x08, 0xa7, 0xa6, 0x73, 0xcb, 0x94, 0xf0, 0xcf, 0xe5, 0xb7, 0xe8,
+ 0x02, 0x1c, 0xc8, 0x94, 0xaa, 0xa2, 0xa6, 0xd3, 0x95, 0x2a, 0x80, 0xfa,
+ 0x75, 0x21, 0xa8, 0x5e, 0xde, 0x78, 0xc9, 0x2f,
+};
+static const unsigned char kat3706_addinpr1[] = {
+ 0xbf, 0x8d, 0x39, 0x17, 0x67, 0x46, 0x17, 0xd0, 0xab, 0x65, 0x56, 0x47,
+ 0x65, 0x46, 0x3f, 0x9e, 0x5d, 0x79, 0x57, 0x60, 0x23, 0x7e, 0x6e, 0x99,
+ 0x9f, 0x3f, 0xb4, 0x22, 0xb7, 0xd4, 0xa1, 0x14,
+};
+static const unsigned char kat3706_entropyinpr2[] = {
+ 0xaa, 0x83, 0x65, 0x9b, 0xbb, 0x6c, 0x6d, 0xdd, 0x97, 0x23, 0x3a, 0xf1,
+ 0x88, 0x47, 0x95, 0x2a, 0x37, 0x49, 0x8b, 0x1f, 0xa5, 0x0a, 0x59, 0xe2,
+ 0x5a, 0x90, 0x27, 0x31, 0x13, 0x36, 0xf7, 0xe9,
+};
+static const unsigned char kat3706_addinpr2[] = {
+ 0x9e, 0x7e, 0xa0, 0xa9, 0x68, 0x35, 0xa0, 0x27, 0x06, 0xeb, 0x28, 0xbc,
+ 0xb0, 0xe5, 0xa3, 0xb0, 0xaa, 0x04, 0xd1, 0x7b, 0xa6, 0xf4, 0x1f, 0x1e,
+ 0x6e, 0x03, 0x4d, 0x97, 0x3c, 0xcc, 0x24, 0x42,
+};
+static const unsigned char kat3706_retbits[] = {
+ 0x2d, 0xb1, 0x0f, 0xe1, 0xd5, 0xfe, 0x7c, 0x3c, 0xf2, 0x7f, 0x22, 0x1d,
+ 0x97, 0x21, 0x47, 0xe5, 0x55, 0x3b, 0xb4, 0x58, 0x5a, 0xfc, 0x0c, 0x71,
+ 0xf4, 0x89, 0xb0, 0xf7, 0xd2, 0x3d, 0xa8, 0x3e, 0x27, 0x5c, 0x12, 0x4f,
+ 0x42, 0xb6, 0xb1, 0xdf, 0x7d, 0x24, 0x98, 0x7a, 0xcb, 0x51, 0x29, 0x40,
+ 0x9e, 0xdb, 0x34, 0x03, 0xf1, 0x5a, 0x01, 0x50, 0x8d, 0xd1, 0x3b, 0xd6,
+ 0x59, 0xf7, 0x30, 0xf2,
+};
+static const struct drbg_kat_pr_true kat3706_t = {
+ 0, kat3706_entropyin, kat3706_nonce, kat3706_persstr,
+ kat3706_entropyinpr1, kat3706_addinpr1, kat3706_entropyinpr2,
+ kat3706_addinpr2, kat3706_retbits
+};
+static const struct drbg_kat kat3706 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3706_t
+};
+
+static const unsigned char kat3707_entropyin[] = {
+ 0x26, 0x5d, 0x9b, 0x95, 0xf4, 0x76, 0x1b, 0x9e, 0x1d, 0x76, 0x20, 0x66,
+ 0xd0, 0x0d, 0x60, 0x74, 0x0a, 0xe9, 0x89, 0xc7, 0x8a, 0xd1, 0x94, 0xbe,
+ 0x2d, 0xa4, 0xe8, 0x9a, 0xac, 0xf4, 0xbe, 0x8c,
+};
+static const unsigned char kat3707_nonce[] = {0};
+static const unsigned char kat3707_persstr[] = {
+ 0x5c, 0x14, 0x53, 0x10, 0x17, 0x33, 0x5f, 0x13, 0x5f, 0xf8, 0xd6, 0x5d,
+ 0x21, 0xd7, 0x43, 0xed, 0x75, 0xe9, 0x60, 0x2e, 0xec, 0xab, 0x5c, 0x9c,
+ 0x88, 0x31, 0x31, 0x94, 0xd0, 0xa1, 0x75, 0xe8,
+};
+static const unsigned char kat3707_entropyinpr1[] = {
+ 0x63, 0xb8, 0x4e, 0x47, 0x51, 0xae, 0xc6, 0x9f, 0x06, 0xc7, 0x99, 0x78,
+ 0xc7, 0x31, 0xf4, 0x25, 0xd6, 0x75, 0xfb, 0x7f, 0x44, 0xe7, 0x7f, 0x53,
+ 0xfc, 0x5b, 0xc3, 0x03, 0x2b, 0x22, 0xa3, 0x2e,
+};
+static const unsigned char kat3707_addinpr1[] = {
+ 0x81, 0x37, 0x4f, 0xd0, 0x8c, 0x93, 0xbe, 0x2e, 0xcd, 0x4c, 0xb0, 0x50,
+ 0x40, 0xd3, 0x03, 0xc2, 0x00, 0x37, 0x7b, 0x7d, 0x5b, 0x73, 0x66, 0x1e,
+ 0x07, 0x12, 0x7b, 0x7e, 0x4d, 0x4e, 0xce, 0xe4,
+};
+static const unsigned char kat3707_entropyinpr2[] = {
+ 0xde, 0xb7, 0xc9, 0x9b, 0xb0, 0xb1, 0x43, 0xb4, 0xa4, 0x8f, 0xe2, 0x41,
+ 0x79, 0xbf, 0x8f, 0x25, 0x52, 0xa1, 0x48, 0xa1, 0x04, 0x1f, 0x54, 0xbf,
+ 0x76, 0x3d, 0x3a, 0xc5, 0x35, 0xbf, 0x8c, 0x5a,
+};
+static const unsigned char kat3707_addinpr2[] = {
+ 0xd1, 0xd9, 0xb7, 0x61, 0xcf, 0x1a, 0x63, 0xec, 0x9f, 0x5c, 0x8e, 0xca,
+ 0x0b, 0x78, 0x1d, 0x43, 0x30, 0x00, 0x81, 0x2b, 0xcd, 0xc0, 0x52, 0x59,
+ 0x8a, 0x39, 0xe2, 0x4c, 0x9c, 0x58, 0x19, 0x37,
+};
+static const unsigned char kat3707_retbits[] = {
+ 0xdb, 0x2e, 0x08, 0x59, 0x21, 0x08, 0xaf, 0xda, 0xb5, 0xcf, 0x8d, 0x60,
+ 0x29, 0x70, 0x96, 0x2b, 0x3c, 0x64, 0x24, 0x1c, 0x55, 0xf7, 0xdc, 0x38,
+ 0x97, 0xd9, 0x97, 0x50, 0xe7, 0x6a, 0xa4, 0x0f, 0xad, 0xa0, 0x36, 0x23,
+ 0xf1, 0xf2, 0x94, 0xce, 0xd6, 0x7d, 0x4a, 0x31, 0xa6, 0xba, 0x37, 0x18,
+ 0x1d, 0xac, 0xd1, 0x81, 0x7f, 0x8f, 0x82, 0x2a, 0x5f, 0xab, 0x6a, 0x96,
+ 0xa0, 0x16, 0xda, 0xe7,
+};
+static const struct drbg_kat_pr_true kat3707_t = {
+ 1, kat3707_entropyin, kat3707_nonce, kat3707_persstr,
+ kat3707_entropyinpr1, kat3707_addinpr1, kat3707_entropyinpr2,
+ kat3707_addinpr2, kat3707_retbits
+};
+static const struct drbg_kat kat3707 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3707_t
+};
+
+static const unsigned char kat3708_entropyin[] = {
+ 0x35, 0xd6, 0xb0, 0xc8, 0xcf, 0xcf, 0x54, 0x14, 0x15, 0x9e, 0xc0, 0x98,
+ 0xbe, 0xaa, 0x0f, 0x0d, 0xad, 0x4b, 0xb0, 0xde, 0xad, 0xc1, 0xd1, 0xe6,
+ 0x3a, 0x60, 0x46, 0xe2, 0x2a, 0xb2, 0xd8, 0x2f,
+};
+static const unsigned char kat3708_nonce[] = {0};
+static const unsigned char kat3708_persstr[] = {
+ 0x4e, 0x46, 0xee, 0x7b, 0x13, 0xac, 0x4b, 0x55, 0x7c, 0x65, 0x35, 0xfe,
+ 0x91, 0x0c, 0x3b, 0xb8, 0x86, 0x91, 0x30, 0x2f, 0x81, 0xc4, 0xa0, 0x7e,
+ 0xd0, 0xda, 0x1a, 0x1a, 0xb0, 0xf6, 0xe6, 0xeb,
+};
+static const unsigned char kat3708_entropyinpr1[] = {
+ 0x30, 0xce, 0x14, 0xb0, 0xfd, 0x21, 0x11, 0x15, 0xd2, 0x5b, 0x68, 0x5c,
+ 0x70, 0x14, 0xc9, 0x0d, 0xdc, 0xce, 0x98, 0xdd, 0x24, 0xa5, 0xd1, 0x69,
+ 0x56, 0x98, 0xea, 0x95, 0xbb, 0x43, 0x54, 0x8b,
+};
+static const unsigned char kat3708_addinpr1[] = {
+ 0x8a, 0x91, 0x28, 0x1a, 0x93, 0xcb, 0x72, 0x9f, 0xe2, 0xdc, 0x22, 0xbd,
+ 0x51, 0x96, 0xb6, 0x12, 0x26, 0x6d, 0xb0, 0x37, 0x42, 0x52, 0x73, 0x83,
+ 0x4a, 0xc1, 0x00, 0x39, 0x9e, 0x28, 0xa3, 0x29,
+};
+static const unsigned char kat3708_entropyinpr2[] = {
+ 0x4e, 0x94, 0x25, 0x92, 0x66, 0x50, 0x64, 0x70, 0x32, 0x9f, 0x05, 0x7c,
+ 0x3c, 0x40, 0xbb, 0xc0, 0xeb, 0x6e, 0x6c, 0xcb, 0x80, 0x32, 0x71, 0x2a,
+ 0xb6, 0xd5, 0xb9, 0x31, 0x00, 0x86, 0x70, 0x10,
+};
+static const unsigned char kat3708_addinpr2[] = {
+ 0xd0, 0xa4, 0xfa, 0x40, 0x35, 0x3a, 0x05, 0xa3, 0xf8, 0xb5, 0x66, 0x50,
+ 0x7e, 0x63, 0x67, 0x44, 0x68, 0xb2, 0x73, 0x15, 0xc0, 0x7b, 0xea, 0xe1,
+ 0x19, 0x69, 0xd1, 0x99, 0x61, 0x76, 0x7b, 0x6f,
+};
+static const unsigned char kat3708_retbits[] = {
+ 0x64, 0x87, 0x5b, 0xc8, 0x0b, 0x7c, 0x11, 0x59, 0x34, 0x4f, 0xff, 0x09,
+ 0x12, 0xbd, 0xa8, 0xf2, 0xb9, 0x5d, 0x81, 0xb6, 0x06, 0xc8, 0xa6, 0xef,
+ 0x75, 0x3c, 0x13, 0xce, 0xff, 0xbf, 0x34, 0x57, 0x48, 0x4b, 0x6b, 0xb4,
+ 0xd8, 0x6a, 0xec, 0x50, 0xf4, 0x20, 0xf2, 0x54, 0x49, 0x1d, 0xd1, 0xbe,
+ 0xa1, 0xe0, 0xc4, 0x74, 0xd0, 0xab, 0xd8, 0x17, 0x29, 0x45, 0x4a, 0xa9,
+ 0xdf, 0xb0, 0x5d, 0xf6,
+};
+static const struct drbg_kat_pr_true kat3708_t = {
+ 2, kat3708_entropyin, kat3708_nonce, kat3708_persstr,
+ kat3708_entropyinpr1, kat3708_addinpr1, kat3708_entropyinpr2,
+ kat3708_addinpr2, kat3708_retbits
+};
+static const struct drbg_kat kat3708 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3708_t
+};
+
+static const unsigned char kat3709_entropyin[] = {
+ 0x20, 0x74, 0x7b, 0x09, 0x74, 0x6e, 0x37, 0xaf, 0xdb, 0x1c, 0x67, 0xb6,
+ 0x93, 0xa0, 0x58, 0x70, 0x0b, 0x9d, 0x96, 0x32, 0x13, 0x54, 0x4f, 0x22,
+ 0x15, 0xb0, 0x31, 0x0a, 0x1e, 0x01, 0xc3, 0xd7,
+};
+static const unsigned char kat3709_nonce[] = {0};
+static const unsigned char kat3709_persstr[] = {
+ 0xb6, 0xac, 0x79, 0xad, 0xa8, 0xa5, 0x02, 0x24, 0x0d, 0xf0, 0x8e, 0x6e,
+ 0x01, 0xc8, 0x69, 0xb3, 0xa4, 0xcb, 0x61, 0xc9, 0xfa, 0x90, 0xac, 0x50,
+ 0x24, 0x34, 0x0b, 0x58, 0x2a, 0xac, 0xde, 0xf2,
+};
+static const unsigned char kat3709_entropyinpr1[] = {
+ 0x91, 0x35, 0x54, 0x79, 0x4c, 0x14, 0x9c, 0x50, 0x3e, 0x7a, 0xd5, 0x40,
+ 0xc2, 0xa0, 0xdd, 0x0b, 0x6c, 0x04, 0x3e, 0xe0, 0x67, 0xe2, 0x10, 0xfa,
+ 0xe4, 0x3f, 0xcd, 0x14, 0x12, 0x83, 0xde, 0xf0,
+};
+static const unsigned char kat3709_addinpr1[] = {
+ 0x63, 0xcc, 0x67, 0xab, 0xf5, 0x62, 0xa7, 0x6f, 0x56, 0xca, 0xf0, 0x96,
+ 0x06, 0xbc, 0x28, 0x05, 0x31, 0x22, 0x01, 0x45, 0xd0, 0x49, 0xe6, 0x84,
+ 0xb9, 0xc3, 0x95, 0x5d, 0xa9, 0xfe, 0x83, 0x63,
+};
+static const unsigned char kat3709_entropyinpr2[] = {
+ 0x30, 0x27, 0xc5, 0x37, 0x35, 0x8b, 0xec, 0xa2, 0xc6, 0xea, 0xaf, 0xe3,
+ 0x0f, 0xcc, 0xd0, 0x56, 0x58, 0xc5, 0xa0, 0xfd, 0xd9, 0x3f, 0x68, 0x9f,
+ 0x70, 0x1d, 0xed, 0xdd, 0x23, 0xe8, 0x59, 0x3f,
+};
+static const unsigned char kat3709_addinpr2[] = {
+ 0xbe, 0xbf, 0x24, 0x7f, 0xb5, 0x14, 0xf5, 0xef, 0x65, 0xab, 0x6a, 0xde,
+ 0x98, 0xb8, 0xe8, 0x69, 0x66, 0x00, 0x44, 0x1b, 0xd3, 0x0b, 0x04, 0xc7,
+ 0x42, 0x25, 0x73, 0xb2, 0x4a, 0x32, 0x9c, 0xbe,
+};
+static const unsigned char kat3709_retbits[] = {
+ 0x62, 0xa1, 0xec, 0x0e, 0x4f, 0xe1, 0x70, 0xdf, 0x11, 0x2b, 0x93, 0xd5,
+ 0x31, 0xb2, 0xb2, 0xbd, 0x5c, 0x23, 0x2c, 0x2c, 0xfb, 0xb2, 0xfd, 0x28,
+ 0x09, 0x02, 0xa1, 0x93, 0x6b, 0x9e, 0x1d, 0xe2, 0x4c, 0x02, 0x67, 0x14,
+ 0x18, 0xe2, 0xa4, 0x46, 0x19, 0x8c, 0x36, 0x7a, 0xb2, 0x1a, 0xa7, 0x21,
+ 0x58, 0x2d, 0xc6, 0xf3, 0x97, 0x8e, 0xa8, 0x73, 0x58, 0xa1, 0x76, 0xfc,
+ 0x0c, 0x7e, 0x30, 0x5a,
+};
+static const struct drbg_kat_pr_true kat3709_t = {
+ 3, kat3709_entropyin, kat3709_nonce, kat3709_persstr,
+ kat3709_entropyinpr1, kat3709_addinpr1, kat3709_entropyinpr2,
+ kat3709_addinpr2, kat3709_retbits
+};
+static const struct drbg_kat kat3709 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3709_t
+};
+
+static const unsigned char kat3710_entropyin[] = {
+ 0x23, 0xa6, 0xa7, 0x1e, 0x3c, 0x87, 0x05, 0x7d, 0xd2, 0x08, 0x7c, 0x23,
+ 0x02, 0x45, 0xba, 0x86, 0xe3, 0x8b, 0x8b, 0x72, 0x62, 0x7b, 0x97, 0x7b,
+ 0xb6, 0x0b, 0xed, 0xf2, 0xd1, 0xe7, 0x9b, 0x22,
+};
+static const unsigned char kat3710_nonce[] = {0};
+static const unsigned char kat3710_persstr[] = {
+ 0xd2, 0x3a, 0xff, 0x93, 0xd2, 0x25, 0x74, 0x1c, 0xf5, 0x26, 0x16, 0x7d,
+ 0xce, 0x96, 0x91, 0x0d, 0x0d, 0xe3, 0x9e, 0xff, 0x8f, 0xa1, 0xa2, 0x87,
+ 0x09, 0x63, 0x71, 0x16, 0xe8, 0x75, 0x54, 0x4e,
+};
+static const unsigned char kat3710_entropyinpr1[] = {
+ 0x96, 0x05, 0x37, 0x70, 0xc1, 0xcf, 0xe2, 0xd4, 0x6e, 0xf1, 0x3b, 0x1a,
+ 0x7b, 0xbe, 0x77, 0xd6, 0xcc, 0xad, 0x8f, 0xb7, 0x70, 0xd5, 0x04, 0x8f,
+ 0x80, 0x22, 0x5e, 0x27, 0x6f, 0x4c, 0x5b, 0xaf,
+};
+static const unsigned char kat3710_addinpr1[] = {
+ 0x9c, 0xd3, 0x83, 0x20, 0x36, 0xd4, 0xf9, 0x80, 0xb7, 0xbc, 0xa1, 0x01,
+ 0x27, 0x71, 0x29, 0xe2, 0xf9, 0x7e, 0xe6, 0x9d, 0x74, 0xfc, 0x09, 0x47,
+ 0x5b, 0x4f, 0x2c, 0x3f, 0xb8, 0x12, 0xe5, 0x1c,
+};
+static const unsigned char kat3710_entropyinpr2[] = {
+ 0xdb, 0x48, 0x00, 0x7e, 0x0a, 0xb2, 0x68, 0x02, 0xcf, 0x54, 0x9a, 0x22,
+ 0x88, 0x34, 0xb9, 0x0b, 0x1c, 0x99, 0x3d, 0x25, 0x2c, 0xd0, 0x49, 0xfa,
+ 0x3e, 0xd1, 0xbd, 0x74, 0xa6, 0x07, 0x1b, 0x9d,
+};
+static const unsigned char kat3710_addinpr2[] = {
+ 0x91, 0x0f, 0x54, 0x6a, 0xc7, 0x2d, 0xf3, 0xd5, 0x1a, 0x80, 0xc0, 0x72,
+ 0xd5, 0xd7, 0x10, 0x6e, 0xe2, 0x16, 0x80, 0x22, 0x06, 0x0f, 0xd1, 0x9e,
+ 0xb4, 0x52, 0xc3, 0x4f, 0x62, 0x1c, 0xf4, 0xdf,
+};
+static const unsigned char kat3710_retbits[] = {
+ 0x99, 0xae, 0x2f, 0xb0, 0x02, 0x51, 0x1c, 0x05, 0x5f, 0x05, 0x3d, 0x70,
+ 0x71, 0xdc, 0x72, 0x96, 0xe1, 0x0f, 0xd0, 0x69, 0x13, 0x58, 0xa6, 0x25,
+ 0x01, 0x7d, 0xd7, 0x0d, 0x72, 0x68, 0xbd, 0x4c, 0xde, 0x91, 0x26, 0x77,
+ 0x5d, 0x59, 0x3a, 0x89, 0xe6, 0xe5, 0x3c, 0xc0, 0xc6, 0xf5, 0x8a, 0x08,
+ 0x57, 0xe5, 0xb0, 0xae, 0x06, 0x46, 0xee, 0x49, 0x4a, 0x24, 0x3b, 0xec,
+ 0xb2, 0xe6, 0x0e, 0xce,
+};
+static const struct drbg_kat_pr_true kat3710_t = {
+ 4, kat3710_entropyin, kat3710_nonce, kat3710_persstr,
+ kat3710_entropyinpr1, kat3710_addinpr1, kat3710_entropyinpr2,
+ kat3710_addinpr2, kat3710_retbits
+};
+static const struct drbg_kat kat3710 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3710_t
+};
+
+static const unsigned char kat3711_entropyin[] = {
+ 0x51, 0xf3, 0xad, 0x44, 0x4e, 0xda, 0x63, 0xdd, 0xec, 0x44, 0x6f, 0xa7,
+ 0xb6, 0x5c, 0xe2, 0x32, 0xf0, 0xdb, 0x1c, 0x19, 0xf9, 0xe1, 0x42, 0x7f,
+ 0x1f, 0x75, 0xf7, 0x46, 0xc2, 0x0d, 0x6f, 0x72,
+};
+static const unsigned char kat3711_nonce[] = {0};
+static const unsigned char kat3711_persstr[] = {
+ 0x8a, 0x75, 0xb8, 0xcb, 0x69, 0x7f, 0x9a, 0x9c, 0x52, 0x6d, 0x4f, 0xcb,
+ 0xc0, 0x1d, 0x22, 0xf2, 0xce, 0xa3, 0x93, 0x95, 0xd7, 0x97, 0x0a, 0xc4,
+ 0x7a, 0xe9, 0x60, 0x15, 0x58, 0x12, 0x4c, 0x72,
+};
+static const unsigned char kat3711_entropyinpr1[] = {
+ 0xc0, 0xfe, 0x28, 0x0e, 0x31, 0x2e, 0xb7, 0x47, 0x16, 0x0e, 0xaa, 0xdf,
+ 0x08, 0xe1, 0x7f, 0x84, 0xdd, 0x82, 0x1e, 0xee, 0x5b, 0xe1, 0xd0, 0x1d,
+ 0x1f, 0x35, 0xb8, 0xe9, 0xc9, 0x0d, 0x89, 0xe9,
+};
+static const unsigned char kat3711_addinpr1[] = {
+ 0x71, 0xcb, 0x3d, 0x4d, 0x25, 0x2e, 0xdb, 0x9c, 0x39, 0xd0, 0x90, 0x65,
+ 0xf6, 0xbb, 0xcf, 0x23, 0x90, 0xaa, 0x25, 0xa3, 0x94, 0x91, 0x83, 0x10,
+ 0x7d, 0x88, 0x5c, 0xb7, 0x1c, 0x98, 0x2b, 0xc1,
+};
+static const unsigned char kat3711_entropyinpr2[] = {
+ 0xb8, 0xe0, 0x3e, 0xce, 0xbf, 0xa5, 0x66, 0x4a, 0x2a, 0xe0, 0x5a, 0xbd,
+ 0xdb, 0x2f, 0x58, 0xe0, 0x85, 0x42, 0x5e, 0xda, 0xd5, 0xbc, 0x5b, 0x4a,
+ 0x9d, 0x5a, 0x87, 0xa1, 0x05, 0xdb, 0x87, 0xa9,
+};
+static const unsigned char kat3711_addinpr2[] = {
+ 0xec, 0xe2, 0xd3, 0x5d, 0xb4, 0x02, 0xa1, 0x2d, 0x08, 0x7c, 0xf6, 0x34,
+ 0x50, 0xb7, 0xc5, 0xf8, 0x07, 0x7d, 0x9f, 0xaf, 0x4d, 0x82, 0x16, 0xad,
+ 0x39, 0x6f, 0x74, 0xfb, 0xfa, 0x32, 0x5f, 0x70,
+};
+static const unsigned char kat3711_retbits[] = {
+ 0xe9, 0x9f, 0x57, 0x9c, 0x67, 0xef, 0xc4, 0x1c, 0x37, 0x99, 0x21, 0x75,
+ 0x0d, 0x5e, 0xa2, 0x2d, 0x4f, 0x23, 0x56, 0xfa, 0x67, 0x6b, 0xe4, 0xad,
+ 0x38, 0x4f, 0x30, 0x6b, 0x1e, 0x61, 0x7e, 0x80, 0x4a, 0x3c, 0xd0, 0xa8,
+ 0xe2, 0x54, 0xec, 0x6a, 0xb4, 0x21, 0x0e, 0x14, 0x7d, 0x09, 0x72, 0xdd,
+ 0xfe, 0x1d, 0x45, 0x03, 0xfd, 0xf5, 0x94, 0x55, 0x35, 0xa8, 0x42, 0x34,
+ 0x63, 0x30, 0xbe, 0xbf,
+};
+static const struct drbg_kat_pr_true kat3711_t = {
+ 5, kat3711_entropyin, kat3711_nonce, kat3711_persstr,
+ kat3711_entropyinpr1, kat3711_addinpr1, kat3711_entropyinpr2,
+ kat3711_addinpr2, kat3711_retbits
+};
+static const struct drbg_kat kat3711 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3711_t
+};
+
+static const unsigned char kat3712_entropyin[] = {
+ 0x84, 0xe7, 0x75, 0x5e, 0x66, 0xd6, 0xcd, 0xe3, 0x3d, 0xb0, 0xd7, 0xd1,
+ 0x17, 0xaf, 0x40, 0x76, 0xc6, 0x53, 0x6a, 0x5b, 0xf1, 0xd1, 0xf5, 0xc7,
+ 0xe9, 0x03, 0x48, 0x2a, 0x02, 0x02, 0x8b, 0x8e,
+};
+static const unsigned char kat3712_nonce[] = {0};
+static const unsigned char kat3712_persstr[] = {
+ 0xe4, 0xc8, 0x57, 0x59, 0x34, 0xc0, 0x25, 0x14, 0xc2, 0x80, 0x8c, 0xd3,
+ 0xa5, 0x30, 0xe9, 0x6b, 0x0c, 0x0a, 0x4e, 0xdd, 0x26, 0x17, 0x8e, 0xf0,
+ 0x55, 0x06, 0x11, 0x80, 0xb3, 0x2a, 0xd6, 0x7f,
+};
+static const unsigned char kat3712_entropyinpr1[] = {
+ 0x0f, 0xd2, 0xc7, 0x52, 0x05, 0x65, 0x69, 0x71, 0x51, 0x91, 0xe4, 0x79,
+ 0xe5, 0x16, 0x58, 0xc9, 0xa4, 0xa4, 0x42, 0x20, 0x71, 0x94, 0x9c, 0x5e,
+ 0x9a, 0xca, 0x74, 0x94, 0x18, 0x83, 0x6a, 0xb5,
+};
+static const unsigned char kat3712_addinpr1[] = {
+ 0xa2, 0x39, 0xeb, 0x3d, 0x1f, 0x21, 0xca, 0xfa, 0xa2, 0x3e, 0x04, 0x9f,
+ 0x51, 0x94, 0x43, 0x67, 0xe6, 0x83, 0xcc, 0xf9, 0xd6, 0x23, 0x16, 0x24,
+ 0x05, 0xca, 0x37, 0x5d, 0xe5, 0x49, 0x17, 0xfa,
+};
+static const unsigned char kat3712_entropyinpr2[] = {
+ 0x84, 0x0f, 0xdf, 0xe2, 0xfd, 0x2e, 0x90, 0x75, 0x4b, 0xd5, 0x2d, 0xb1,
+ 0x6a, 0xab, 0x32, 0xa0, 0xa7, 0x5f, 0x62, 0xca, 0x87, 0x57, 0xc7, 0x65,
+ 0x5a, 0x7b, 0xdf, 0xe2, 0x24, 0xfb, 0x54, 0x6b,
+};
+static const unsigned char kat3712_addinpr2[] = {
+ 0xe3, 0x91, 0x61, 0xcb, 0x97, 0x22, 0x85, 0x68, 0x7d, 0x65, 0xd4, 0xdf,
+ 0xd7, 0x4e, 0x08, 0xe3, 0xfe, 0x1e, 0x25, 0x18, 0xe8, 0x15, 0xe3, 0x26,
+ 0x6e, 0x47, 0xfc, 0x1f, 0x5d, 0xbc, 0x5e, 0x4d,
+};
+static const unsigned char kat3712_retbits[] = {
+ 0x36, 0x2d, 0x01, 0xae, 0xf0, 0xe7, 0x4e, 0xd7, 0x74, 0xb6, 0x79, 0xc1,
+ 0x5c, 0x71, 0x9c, 0x2f, 0x6d, 0x0e, 0xcb, 0x6c, 0x72, 0x0a, 0x28, 0xd6,
+ 0x5a, 0xcf, 0x28, 0x29, 0xe9, 0x86, 0x98, 0x43, 0x87, 0xa2, 0xe3, 0xd4,
+ 0x05, 0xca, 0xa3, 0x24, 0x94, 0xcf, 0x38, 0x3e, 0x87, 0x79, 0xcb, 0x78,
+ 0xdb, 0xc4, 0xfc, 0xf0, 0xe5, 0xff, 0xa1, 0xb2, 0xed, 0x78, 0x5c, 0x69,
+ 0xdd, 0xe2, 0x0c, 0x46,
+};
+static const struct drbg_kat_pr_true kat3712_t = {
+ 6, kat3712_entropyin, kat3712_nonce, kat3712_persstr,
+ kat3712_entropyinpr1, kat3712_addinpr1, kat3712_entropyinpr2,
+ kat3712_addinpr2, kat3712_retbits
+};
+static const struct drbg_kat kat3712 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3712_t
+};
+
+static const unsigned char kat3713_entropyin[] = {
+ 0xf5, 0x1d, 0x83, 0xd3, 0x4f, 0x19, 0xbb, 0x78, 0x3c, 0xba, 0xb5, 0x99,
+ 0x48, 0xab, 0xd9, 0x60, 0x87, 0xb1, 0x69, 0x35, 0x85, 0xf3, 0xbc, 0xfe,
+ 0xce, 0x8c, 0x51, 0x5a, 0x76, 0x1f, 0xa8, 0x7e,
+};
+static const unsigned char kat3713_nonce[] = {0};
+static const unsigned char kat3713_persstr[] = {
+ 0xa5, 0x22, 0x26, 0x42, 0xe0, 0xa0, 0xd2, 0xef, 0x5a, 0x37, 0xc9, 0x32,
+ 0x9e, 0xf4, 0xb7, 0x47, 0xac, 0x4f, 0x01, 0xa1, 0x49, 0xae, 0x39, 0xc4,
+ 0xef, 0x00, 0x32, 0xa3, 0x6d, 0xf1, 0x66, 0xfe,
+};
+static const unsigned char kat3713_entropyinpr1[] = {
+ 0xfc, 0x3f, 0xe5, 0xb9, 0x7a, 0x2a, 0x2c, 0x9d, 0x88, 0x61, 0xe7, 0x3d,
+ 0x73, 0xcb, 0x8c, 0x85, 0x41, 0x92, 0x28, 0x22, 0x2c, 0x41, 0xc2, 0x7e,
+ 0x01, 0xe2, 0xcf, 0xcd, 0x29, 0xd8, 0x6e, 0x30,
+};
+static const unsigned char kat3713_addinpr1[] = {
+ 0xf7, 0x5f, 0x0e, 0xf6, 0x29, 0x19, 0x6c, 0x5d, 0x00, 0xba, 0x6c, 0xbe,
+ 0x65, 0xa2, 0x49, 0x23, 0xf0, 0x62, 0x31, 0xb5, 0x6c, 0xed, 0xeb, 0x07,
+ 0x78, 0x8c, 0x57, 0x74, 0xd2, 0xed, 0xfc, 0x1b,
+};
+static const unsigned char kat3713_entropyinpr2[] = {
+ 0x6f, 0x98, 0xff, 0x76, 0x6f, 0x41, 0x97, 0xd4, 0xa0, 0x09, 0xcf, 0xc1,
+ 0x83, 0x15, 0x47, 0x0f, 0xa0, 0xf4, 0xf1, 0x5c, 0x0c, 0x71, 0xdf, 0x37,
+ 0x10, 0x37, 0xe4, 0xac, 0xf5, 0x20, 0xc0, 0x47,
+};
+static const unsigned char kat3713_addinpr2[] = {
+ 0x94, 0x14, 0x21, 0x9c, 0x87, 0x0b, 0x38, 0xa0, 0x68, 0x08, 0x99, 0x3d,
+ 0xfd, 0xe0, 0xa5, 0xcc, 0xec, 0x22, 0x86, 0x05, 0xa7, 0x29, 0x59, 0xc8,
+ 0x3f, 0x29, 0x74, 0xe4, 0x2c, 0xc9, 0x43, 0xaf,
+};
+static const unsigned char kat3713_retbits[] = {
+ 0x65, 0x44, 0xa8, 0x44, 0xd1, 0xb5, 0xfa, 0xe1, 0x5e, 0x86, 0x03, 0x4e,
+ 0x82, 0x11, 0xef, 0x85, 0x78, 0x40, 0x2b, 0x70, 0xbf, 0xc6, 0x74, 0xa2,
+ 0x66, 0xb1, 0x14, 0xe6, 0xdb, 0x96, 0x58, 0x58, 0x32, 0x4c, 0x76, 0x60,
+ 0x15, 0xee, 0xe1, 0xeb, 0x4d, 0x24, 0xd6, 0x49, 0xe7, 0x6b, 0xd3, 0x88,
+ 0x9f, 0xc8, 0x09, 0x60, 0x3b, 0xf6, 0xc9, 0xe4, 0xbb, 0x3f, 0x8e, 0x94,
+ 0x7f, 0x6f, 0x7a, 0x80,
+};
+static const struct drbg_kat_pr_true kat3713_t = {
+ 7, kat3713_entropyin, kat3713_nonce, kat3713_persstr,
+ kat3713_entropyinpr1, kat3713_addinpr1, kat3713_entropyinpr2,
+ kat3713_addinpr2, kat3713_retbits
+};
+static const struct drbg_kat kat3713 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3713_t
+};
+
+static const unsigned char kat3714_entropyin[] = {
+ 0xb0, 0x13, 0x2a, 0xd2, 0x38, 0xa0, 0x8c, 0x27, 0x9a, 0x7d, 0x7a, 0x6c,
+ 0xc5, 0x79, 0x4c, 0x94, 0xb9, 0xca, 0x26, 0x8b, 0x9d, 0x3b, 0xf1, 0x8a,
+ 0x3c, 0x8b, 0x58, 0x8e, 0xa2, 0x2c, 0x9c, 0x25,
+};
+static const unsigned char kat3714_nonce[] = {0};
+static const unsigned char kat3714_persstr[] = {
+ 0xe3, 0x02, 0xec, 0xe7, 0x67, 0xc6, 0x0d, 0x01, 0xc6, 0x47, 0x00, 0x84,
+ 0x3b, 0x1a, 0x88, 0x08, 0xf8, 0x7e, 0x09, 0xe3, 0x3a, 0xf4, 0x61, 0x9b,
+ 0x09, 0x89, 0x2f, 0xbe, 0x5f, 0x0f, 0x66, 0x87,
+};
+static const unsigned char kat3714_entropyinpr1[] = {
+ 0x49, 0x4b, 0x9d, 0xa0, 0x84, 0x94, 0x3e, 0xbd, 0x9e, 0xcd, 0x90, 0x1a,
+ 0x9b, 0xdc, 0x0c, 0x38, 0xea, 0xb6, 0xfd, 0x04, 0xb4, 0x2b, 0xc0, 0x19,
+ 0x03, 0x04, 0xb4, 0xaf, 0x5d, 0x42, 0x79, 0xe1,
+};
+static const unsigned char kat3714_addinpr1[] = {
+ 0x7c, 0xfc, 0xca, 0xce, 0x01, 0x3c, 0x1d, 0x20, 0x8d, 0x17, 0x78, 0xfb,
+ 0xb2, 0x3c, 0x0b, 0x88, 0x4d, 0xed, 0x21, 0x5e, 0x93, 0xeb, 0x9c, 0x44,
+ 0x80, 0x43, 0xc8, 0x6f, 0xf8, 0x11, 0x17, 0xeb,
+};
+static const unsigned char kat3714_entropyinpr2[] = {
+ 0xc8, 0xdf, 0x5c, 0x40, 0x45, 0xaa, 0x6f, 0x66, 0x25, 0x49, 0x21, 0xf1,
+ 0x65, 0x66, 0xe3, 0x14, 0xf2, 0x45, 0xa3, 0xe3, 0x3b, 0xfa, 0x96, 0xc9,
+ 0xda, 0x84, 0xd9, 0xe1, 0x69, 0x7a, 0xda, 0xf3,
+};
+static const unsigned char kat3714_addinpr2[] = {
+ 0x6d, 0x8d, 0x03, 0x7f, 0x12, 0xf4, 0xa1, 0xbf, 0x6b, 0xdc, 0xed, 0x6b,
+ 0x5c, 0xd8, 0xc8, 0x81, 0xb1, 0xd4, 0xf2, 0xbd, 0x1c, 0xa9, 0x2e, 0x5e,
+ 0xd7, 0x1a, 0x32, 0xa5, 0xc6, 0xe5, 0xd7, 0xc1,
+};
+static const unsigned char kat3714_retbits[] = {
+ 0x81, 0xa7, 0x5b, 0x74, 0x30, 0xc9, 0x1a, 0xd3, 0xca, 0xd4, 0xe5, 0x44,
+ 0x3c, 0xeb, 0x2b, 0x22, 0xb6, 0x31, 0xa3, 0xae, 0xe4, 0x71, 0x12, 0x2d,
+ 0xd8, 0x21, 0x4a, 0xb0, 0x5c, 0xdd, 0x5c, 0xd9, 0x68, 0x11, 0xde, 0x3b,
+ 0xcd, 0xe3, 0xfc, 0x4a, 0xc1, 0x59, 0x5c, 0x76, 0xc6, 0x6d, 0x18, 0xe9,
+ 0x1b, 0xc1, 0xbb, 0xf4, 0xa5, 0x8e, 0xa7, 0xc1, 0xd2, 0x30, 0x8f, 0xa5,
+ 0xfd, 0x8c, 0xa3, 0x61,
+};
+static const struct drbg_kat_pr_true kat3714_t = {
+ 8, kat3714_entropyin, kat3714_nonce, kat3714_persstr,
+ kat3714_entropyinpr1, kat3714_addinpr1, kat3714_entropyinpr2,
+ kat3714_addinpr2, kat3714_retbits
+};
+static const struct drbg_kat kat3714 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3714_t
+};
+
+static const unsigned char kat3715_entropyin[] = {
+ 0x76, 0xf7, 0x35, 0xbe, 0xc2, 0x47, 0x9c, 0x15, 0x12, 0x1f, 0x0b, 0xc6,
+ 0xf1, 0x6a, 0x9e, 0x28, 0xfd, 0x1d, 0xa5, 0x8e, 0xdc, 0x15, 0x86, 0x03,
+ 0xb2, 0x70, 0xd6, 0xe0, 0x97, 0xd4, 0x8b, 0x89,
+};
+static const unsigned char kat3715_nonce[] = {0};
+static const unsigned char kat3715_persstr[] = {
+ 0x25, 0x27, 0x6b, 0xeb, 0xf4, 0x4b, 0x8d, 0x73, 0x08, 0x39, 0xe8, 0x3d,
+ 0x82, 0xff, 0x3a, 0xb0, 0x07, 0x76, 0x42, 0x83, 0xa2, 0x22, 0x20, 0xbb,
+ 0xa6, 0x8d, 0xab, 0x0b, 0xbc, 0xea, 0x72, 0x6e,
+};
+static const unsigned char kat3715_entropyinpr1[] = {
+ 0xb1, 0x11, 0xb9, 0x9d, 0x11, 0x99, 0xd9, 0x1b, 0xb9, 0x1c, 0x44, 0xee,
+ 0x4e, 0x6c, 0x4b, 0xbb, 0x41, 0xa4, 0x53, 0x51, 0x07, 0xbf, 0x68, 0xcf,
+ 0x44, 0x2a, 0xea, 0xf0, 0xf6, 0x8f, 0xc9, 0xf1,
+};
+static const unsigned char kat3715_addinpr1[] = {
+ 0x94, 0xd2, 0x18, 0x4e, 0x69, 0x1e, 0xac, 0x3a, 0x2b, 0xdf, 0x4d, 0x6e,
+ 0x11, 0xad, 0xfd, 0xeb, 0x4d, 0x5b, 0xef, 0xf8, 0x07, 0x48, 0xb9, 0x97,
+ 0x73, 0x1d, 0xb0, 0x01, 0xb4, 0x2d, 0x3f, 0xff,
+};
+static const unsigned char kat3715_entropyinpr2[] = {
+ 0x66, 0xb2, 0x90, 0xed, 0x3f, 0x40, 0xa7, 0x5c, 0x0c, 0x1e, 0xff, 0x42,
+ 0xd6, 0x57, 0xb5, 0x53, 0x9c, 0xe8, 0xcd, 0xaa, 0x11, 0x6b, 0x91, 0xf3,
+ 0x9e, 0xf3, 0x14, 0x67, 0x97, 0xf8, 0x15, 0xce,
+};
+static const unsigned char kat3715_addinpr2[] = {
+ 0xcb, 0x1b, 0xa3, 0xf3, 0x28, 0x70, 0xe3, 0xd5, 0xe6, 0x7d, 0xb5, 0xc4,
+ 0xa2, 0xdb, 0xca, 0xb8, 0xc5, 0xdc, 0x09, 0xf8, 0x5a, 0x40, 0xc4, 0x6c,
+ 0xd2, 0x0a, 0x13, 0x0c, 0x0f, 0x1d, 0x3e, 0xb7,
+};
+static const unsigned char kat3715_retbits[] = {
+ 0x80, 0xdf, 0xac, 0xaa, 0xe8, 0xe3, 0x55, 0x84, 0xf9, 0xd4, 0x7e, 0xed,
+ 0x8b, 0xed, 0x62, 0xa8, 0xcf, 0x92, 0xb4, 0x40, 0x40, 0x6d, 0x5b, 0x95,
+ 0x50, 0xd5, 0x9c, 0x28, 0x3e, 0xe9, 0x73, 0xc8, 0xaa, 0x41, 0x6f, 0x7f,
+ 0x4a, 0xb4, 0x73, 0x02, 0x57, 0x94, 0x66, 0x4d, 0x2d, 0x2c, 0xf9, 0x38,
+ 0x60, 0x15, 0x40, 0x4c, 0x09, 0x1e, 0x42, 0x25, 0xc6, 0x1b, 0x73, 0xf0,
+ 0x07, 0x15, 0x80, 0xf2,
+};
+static const struct drbg_kat_pr_true kat3715_t = {
+ 9, kat3715_entropyin, kat3715_nonce, kat3715_persstr,
+ kat3715_entropyinpr1, kat3715_addinpr1, kat3715_entropyinpr2,
+ kat3715_addinpr2, kat3715_retbits
+};
+static const struct drbg_kat kat3715 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3715_t
+};
+
+static const unsigned char kat3716_entropyin[] = {
+ 0x53, 0x80, 0x65, 0xf6, 0x3b, 0xc4, 0x65, 0x74, 0x18, 0x67, 0x15, 0x77,
+ 0xa8, 0x7c, 0x53, 0x7f, 0x72, 0xe8, 0x89, 0x0c, 0x4d, 0xa8, 0x30, 0x54,
+ 0x44, 0x6c, 0x4d, 0x04, 0x90, 0xce, 0xfd, 0xc6,
+};
+static const unsigned char kat3716_nonce[] = {0};
+static const unsigned char kat3716_persstr[] = {
+ 0x7a, 0xa2, 0xa0, 0x5b, 0x76, 0xad, 0xeb, 0x23, 0x81, 0x97, 0x21, 0xf2,
+ 0xce, 0x58, 0x71, 0xe3, 0x07, 0x24, 0x6c, 0x34, 0x97, 0xb0, 0x65, 0xda,
+ 0xcd, 0xd8, 0xe0, 0x8a, 0xbb, 0x55, 0xe0, 0x1c,
+};
+static const unsigned char kat3716_entropyinpr1[] = {
+ 0x74, 0xef, 0xc7, 0x30, 0xd8, 0x54, 0x56, 0xf1, 0xe7, 0x59, 0x54, 0x0d,
+ 0x2a, 0x72, 0x18, 0xa5, 0x97, 0x08, 0x66, 0x67, 0x35, 0x65, 0x59, 0xab,
+ 0x3f, 0x78, 0x15, 0xfe, 0xd9, 0x26, 0xc5, 0xfb,
+};
+static const unsigned char kat3716_addinpr1[] = {
+ 0x76, 0xd1, 0xd2, 0xa2, 0xcf, 0xa5, 0x8a, 0xce, 0xef, 0x40, 0xff, 0x21,
+ 0x67, 0xe6, 0xfd, 0x77, 0x4f, 0x78, 0x58, 0x15, 0xf2, 0x3c, 0xd0, 0x57,
+ 0xf4, 0xa8, 0xac, 0xf0, 0x2b, 0x9b, 0x5f, 0x8f,
+};
+static const unsigned char kat3716_entropyinpr2[] = {
+ 0x49, 0x76, 0xdf, 0x61, 0xeb, 0x5d, 0x15, 0x91, 0xbc, 0xaf, 0xae, 0xaf,
+ 0x49, 0xcb, 0x49, 0xa7, 0xb6, 0x6e, 0x4f, 0x4c, 0x39, 0xe1, 0xae, 0xab,
+ 0x46, 0xf7, 0xe1, 0xae, 0xaa, 0x50, 0x52, 0xa2,
+};
+static const unsigned char kat3716_addinpr2[] = {
+ 0xe0, 0xa7, 0xed, 0x10, 0x83, 0x9b, 0x78, 0x7e, 0x31, 0x04, 0xa4, 0x2a,
+ 0xd1, 0x39, 0x95, 0x7e, 0xda, 0xfa, 0xe4, 0x80, 0xf0, 0xb4, 0x3d, 0x7c,
+ 0x47, 0x42, 0x67, 0xe6, 0x52, 0x60, 0xba, 0xc4,
+};
+static const unsigned char kat3716_retbits[] = {
+ 0x24, 0xe7, 0x34, 0xb1, 0xb0, 0x40, 0x58, 0x5d, 0xfa, 0xea, 0x5d, 0x09,
+ 0x56, 0xe7, 0x0c, 0xf1, 0x09, 0x26, 0xdf, 0xb8, 0xef, 0xa2, 0x98, 0xaf,
+ 0xd3, 0xc0, 0x3f, 0x33, 0xe3, 0x3c, 0xb6, 0xc1, 0xe3, 0x7e, 0xa4, 0xfa,
+ 0x54, 0x7c, 0x5c, 0xea, 0x74, 0x5e, 0x05, 0x7b, 0xfe, 0x66, 0xbe, 0x7b,
+ 0x7c, 0x8f, 0x22, 0x7e, 0x15, 0x69, 0x7f, 0xac, 0x04, 0xb8, 0x46, 0x0f,
+ 0xc9, 0x99, 0x9c, 0xeb,
+};
+static const struct drbg_kat_pr_true kat3716_t = {
+ 10, kat3716_entropyin, kat3716_nonce, kat3716_persstr,
+ kat3716_entropyinpr1, kat3716_addinpr1, kat3716_entropyinpr2,
+ kat3716_addinpr2, kat3716_retbits
+};
+static const struct drbg_kat kat3716 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3716_t
+};
+
+static const unsigned char kat3717_entropyin[] = {
+ 0xcc, 0xe0, 0x8c, 0x5c, 0xd8, 0xc5, 0x79, 0x5d, 0x98, 0xf2, 0x63, 0xc9,
+ 0x66, 0xfe, 0x4e, 0x15, 0xfa, 0xe5, 0x50, 0xf5, 0x19, 0x20, 0x15, 0xf1,
+ 0x03, 0x37, 0x52, 0xc9, 0x8c, 0x8e, 0x81, 0xea,
+};
+static const unsigned char kat3717_nonce[] = {0};
+static const unsigned char kat3717_persstr[] = {
+ 0x0c, 0xed, 0x7e, 0xc5, 0xc3, 0x3a, 0x92, 0xdd, 0xc3, 0x4f, 0x06, 0xa3,
+ 0xa2, 0xbe, 0x06, 0xcc, 0xf4, 0xb3, 0xa8, 0x6b, 0x61, 0xf1, 0x5c, 0xa9,
+ 0xc5, 0x93, 0x9c, 0x2e, 0xe7, 0x28, 0x69, 0x15,
+};
+static const unsigned char kat3717_entropyinpr1[] = {
+ 0xcc, 0xc1, 0xb4, 0xf4, 0xdf, 0x36, 0x78, 0x3b, 0x9d, 0x81, 0x67, 0x82,
+ 0xa6, 0x5a, 0x9c, 0x81, 0xfe, 0xee, 0x64, 0x8c, 0x2d, 0x97, 0x85, 0x08,
+ 0x72, 0xb9, 0x17, 0x27, 0xa2, 0xc6, 0xcd, 0x51,
+};
+static const unsigned char kat3717_addinpr1[] = {
+ 0x0c, 0x67, 0xa0, 0x57, 0x19, 0x9b, 0x04, 0xa5, 0x4d, 0x29, 0x4a, 0x4b,
+ 0xf2, 0x2c, 0xdc, 0xfa, 0x48, 0x98, 0xb7, 0x88, 0xe4, 0x28, 0xb9, 0xc7,
+ 0x4f, 0xe3, 0xa7, 0xf5, 0x4b, 0xb5, 0xa5, 0x5c,
+};
+static const unsigned char kat3717_entropyinpr2[] = {
+ 0x35, 0xc2, 0xa5, 0x94, 0x6d, 0x20, 0x63, 0x6b, 0xe7, 0x76, 0x6a, 0x4b,
+ 0xd9, 0x2d, 0xa8, 0x49, 0x15, 0x4c, 0x46, 0xa1, 0x4a, 0x58, 0x99, 0xb8,
+ 0xe5, 0x28, 0x0b, 0xac, 0x97, 0x24, 0x3c, 0xaa,
+};
+static const unsigned char kat3717_addinpr2[] = {
+ 0xbe, 0x44, 0xaa, 0x50, 0x20, 0x6a, 0x12, 0xb5, 0xf4, 0x46, 0x28, 0x42,
+ 0x6a, 0x24, 0x10, 0x50, 0x33, 0x65, 0x06, 0x1a, 0x19, 0xf2, 0x3c, 0x6c,
+ 0x3e, 0x02, 0x56, 0xff, 0x57, 0x54, 0xcd, 0x68,
+};
+static const unsigned char kat3717_retbits[] = {
+ 0x40, 0x5f, 0x52, 0x55, 0xcf, 0xfe, 0xb1, 0xe8, 0x54, 0x22, 0x78, 0xb5,
+ 0x41, 0x66, 0xc5, 0x6a, 0x9e, 0x42, 0x3b, 0xa6, 0xff, 0x33, 0x72, 0x49,
+ 0x7c, 0x64, 0x05, 0x40, 0xba, 0x6f, 0x31, 0x27, 0x18, 0x74, 0x38, 0x05,
+ 0x43, 0xe4, 0x2f, 0x24, 0xd1, 0xb3, 0x8b, 0xed, 0xeb, 0x13, 0xc9, 0xcc,
+ 0xb1, 0xe7, 0xf4, 0x3e, 0x3a, 0x48, 0x20, 0x02, 0x49, 0x8b, 0x64, 0x48,
+ 0x04, 0x88, 0x10, 0xa9,
+};
+static const struct drbg_kat_pr_true kat3717_t = {
+ 11, kat3717_entropyin, kat3717_nonce, kat3717_persstr,
+ kat3717_entropyinpr1, kat3717_addinpr1, kat3717_entropyinpr2,
+ kat3717_addinpr2, kat3717_retbits
+};
+static const struct drbg_kat kat3717 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3717_t
+};
+
+static const unsigned char kat3718_entropyin[] = {
+ 0xfc, 0xd4, 0x0e, 0xfd, 0xc3, 0x47, 0xad, 0x7f, 0x41, 0x65, 0x3d, 0xbb,
+ 0xc8, 0x9e, 0x3b, 0x18, 0x10, 0xaf, 0xbd, 0x61, 0x61, 0xc8, 0x38, 0x97,
+ 0xac, 0xe9, 0xd2, 0x1c, 0x0b, 0x2b, 0x10, 0x39,
+};
+static const unsigned char kat3718_nonce[] = {0};
+static const unsigned char kat3718_persstr[] = {
+ 0x7f, 0x9e, 0xbf, 0xf0, 0x24, 0xc3, 0xb5, 0x30, 0x0f, 0xce, 0x4a, 0xc8,
+ 0x82, 0x13, 0xb3, 0x9a, 0xf0, 0x8b, 0x04, 0x8e, 0xed, 0x78, 0x1b, 0x33,
+ 0x48, 0x98, 0xc0, 0xe7, 0xe5, 0x63, 0x0c, 0xb8,
+};
+static const unsigned char kat3718_entropyinpr1[] = {
+ 0xdd, 0xde, 0x54, 0x0b, 0xdf, 0x23, 0x3d, 0x54, 0x6e, 0x16, 0x69, 0x72,
+ 0x2d, 0x21, 0xa9, 0x7f, 0x5d, 0xf7, 0x87, 0x00, 0xa9, 0x56, 0xae, 0xd8,
+ 0x8f, 0x34, 0xc4, 0x29, 0x53, 0x21, 0x55, 0x4f,
+};
+static const unsigned char kat3718_addinpr1[] = {
+ 0x53, 0xab, 0xdb, 0xcc, 0x9f, 0x94, 0x22, 0x9b, 0xbf, 0x77, 0xbf, 0xc0,
+ 0x03, 0x92, 0x0c, 0xca, 0xd0, 0x57, 0xf6, 0xba, 0xce, 0xff, 0xfd, 0x23,
+ 0xa5, 0x4f, 0x2b, 0x3c, 0x53, 0x2a, 0x70, 0x33,
+};
+static const unsigned char kat3718_entropyinpr2[] = {
+ 0x27, 0x4a, 0xdc, 0x87, 0x98, 0x61, 0x49, 0xc4, 0xeb, 0xb5, 0xc3, 0xb4,
+ 0x63, 0x86, 0x21, 0x89, 0xe1, 0x49, 0x73, 0x90, 0xa0, 0x38, 0x4a, 0xae,
+ 0x89, 0xfe, 0x69, 0x2a, 0x24, 0x6a, 0xe7, 0xbd,
+};
+static const unsigned char kat3718_addinpr2[] = {
+ 0x05, 0xa0, 0x13, 0xe9, 0xac, 0x5e, 0x3e, 0x98, 0xd6, 0x03, 0x9e, 0x78,
+ 0x87, 0x10, 0x17, 0xf4, 0xc5, 0x7a, 0x53, 0x85, 0x03, 0x4f, 0x1d, 0x74,
+ 0x02, 0xb2, 0xf1, 0xc9, 0xcc, 0x8b, 0xeb, 0xd0,
+};
+static const unsigned char kat3718_retbits[] = {
+ 0xbe, 0xf9, 0x58, 0x25, 0x37, 0xb5, 0x20, 0xcd, 0xf9, 0x56, 0xc3, 0xcb,
+ 0x9f, 0xa4, 0x54, 0x74, 0x10, 0x7e, 0xb0, 0x2b, 0x1a, 0xb3, 0xb1, 0xd4,
+ 0xd9, 0x53, 0x52, 0x2d, 0xce, 0xf8, 0x0f, 0x4a, 0x71, 0x86, 0x5c, 0x0d,
+ 0x84, 0x9b, 0x9e, 0x44, 0xf6, 0x46, 0x31, 0x99, 0x8a, 0x48, 0xc1, 0x01,
+ 0x78, 0x72, 0xce, 0x2e, 0x6e, 0xbb, 0xd2, 0xbd, 0x7f, 0x98, 0x1c, 0xc5,
+ 0xcd, 0x5b, 0xe0, 0x2e,
+};
+static const struct drbg_kat_pr_true kat3718_t = {
+ 12, kat3718_entropyin, kat3718_nonce, kat3718_persstr,
+ kat3718_entropyinpr1, kat3718_addinpr1, kat3718_entropyinpr2,
+ kat3718_addinpr2, kat3718_retbits
+};
+static const struct drbg_kat kat3718 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3718_t
+};
+
+static const unsigned char kat3719_entropyin[] = {
+ 0xd0, 0xf5, 0xe6, 0x43, 0x2e, 0x57, 0x59, 0xf2, 0x60, 0x26, 0x23, 0x6c,
+ 0xe9, 0xfe, 0xcd, 0xb4, 0xe8, 0xde, 0xd5, 0x2c, 0x98, 0x48, 0x93, 0x11,
+ 0xe8, 0xff, 0x92, 0x98, 0xe6, 0xd7, 0x81, 0x6b,
+};
+static const unsigned char kat3719_nonce[] = {0};
+static const unsigned char kat3719_persstr[] = {
+ 0x1b, 0x74, 0x6f, 0x2b, 0x1f, 0xb5, 0x4c, 0x4a, 0x0b, 0xac, 0x0c, 0x94,
+ 0x80, 0xbb, 0x6d, 0x11, 0x5c, 0xa0, 0xe8, 0xbc, 0x7e, 0xfc, 0x74, 0xc2,
+ 0x57, 0x96, 0x6a, 0x0a, 0x9f, 0x3f, 0xa3, 0x88,
+};
+static const unsigned char kat3719_entropyinpr1[] = {
+ 0x40, 0x9a, 0x02, 0x4e, 0x1c, 0x94, 0xc5, 0x92, 0xd4, 0x36, 0xe6, 0x03,
+ 0xc8, 0xea, 0x25, 0xe1, 0xd4, 0x8d, 0x55, 0xfe, 0x2b, 0x08, 0x94, 0x65,
+ 0xdc, 0x3c, 0xf3, 0x4b, 0xb2, 0xe1, 0x14, 0xc4,
+};
+static const unsigned char kat3719_addinpr1[] = {
+ 0x99, 0xdf, 0xdf, 0xa5, 0xea, 0x3e, 0x54, 0xed, 0xc3, 0xab, 0xdd, 0x3c,
+ 0xc0, 0xfd, 0x85, 0x84, 0x3e, 0x40, 0x4f, 0xe1, 0x23, 0xf8, 0xa0, 0x1f,
+ 0x42, 0x95, 0x09, 0x5d, 0x87, 0x95, 0xca, 0xb4,
+};
+static const unsigned char kat3719_entropyinpr2[] = {
+ 0xce, 0x18, 0x1c, 0xdc, 0xa5, 0x64, 0xcc, 0xba, 0x8f, 0x3b, 0xae, 0xa1,
+ 0x82, 0x79, 0x72, 0xb4, 0xd1, 0x55, 0xcf, 0x51, 0x2e, 0x0f, 0x4c, 0xee,
+ 0x2f, 0x47, 0xb7, 0xfd, 0x49, 0x46, 0x29, 0x94,
+};
+static const unsigned char kat3719_addinpr2[] = {
+ 0x49, 0x41, 0x90, 0x3f, 0x86, 0x75, 0xc0, 0x1a, 0x4e, 0xb6, 0x46, 0x4e,
+ 0xca, 0xa1, 0xfb, 0x17, 0x75, 0x9f, 0x8b, 0x66, 0x7d, 0x25, 0x0d, 0x8d,
+ 0x1e, 0xcd, 0x8e, 0xed, 0xb4, 0xe7, 0x31, 0x8c,
+};
+static const unsigned char kat3719_retbits[] = {
+ 0x2d, 0x16, 0xdc, 0xe6, 0xa8, 0x44, 0x20, 0x6f, 0x6b, 0xd6, 0xd5, 0x71,
+ 0x5c, 0xda, 0x01, 0x44, 0x7d, 0x79, 0x5c, 0xd6, 0x4b, 0x60, 0xb4, 0x58,
+ 0xfa, 0x7f, 0x21, 0xd1, 0x0e, 0xc6, 0x56, 0x5b, 0xbf, 0x31, 0x44, 0xe0,
+ 0x92, 0x05, 0x27, 0xed, 0x4e, 0x9c, 0xa9, 0xc7, 0x59, 0xfc, 0x3c, 0xd8,
+ 0xac, 0x05, 0x48, 0xf7, 0xa0, 0x39, 0xc1, 0x55, 0xe6, 0x2a, 0x2b, 0xeb,
+ 0x78, 0x85, 0x63, 0x2c,
+};
+static const struct drbg_kat_pr_true kat3719_t = {
+ 13, kat3719_entropyin, kat3719_nonce, kat3719_persstr,
+ kat3719_entropyinpr1, kat3719_addinpr1, kat3719_entropyinpr2,
+ kat3719_addinpr2, kat3719_retbits
+};
+static const struct drbg_kat kat3719 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3719_t
+};
+
+static const unsigned char kat3720_entropyin[] = {
+ 0x86, 0xf4, 0xf7, 0xec, 0x3c, 0xb2, 0xd3, 0x7c, 0xea, 0x66, 0x47, 0xe3,
+ 0x83, 0xcd, 0x0f, 0x35, 0x71, 0x99, 0x89, 0xcb, 0x13, 0x23, 0x71, 0x07,
+ 0x84, 0xcb, 0x27, 0xa6, 0x4f, 0xc3, 0xee, 0x9b,
+};
+static const unsigned char kat3720_nonce[] = {0};
+static const unsigned char kat3720_persstr[] = {
+ 0xcc, 0xe1, 0x28, 0xaa, 0xa8, 0x5c, 0xb5, 0x2d, 0xcf, 0x2e, 0xbf, 0xd8,
+ 0x37, 0xbb, 0x13, 0x7e, 0x53, 0xa9, 0x1d, 0xd2, 0x9b, 0x7d, 0x65, 0xe8,
+ 0x90, 0xe6, 0x6d, 0x54, 0xfa, 0x09, 0x6f, 0xc6,
+};
+static const unsigned char kat3720_entropyinpr1[] = {
+ 0xa8, 0xaf, 0xcb, 0x36, 0xc5, 0x1b, 0x7c, 0xba, 0x56, 0x4e, 0xc8, 0xeb,
+ 0xe2, 0x58, 0xc9, 0x36, 0xcd, 0xa3, 0x61, 0x3b, 0x22, 0x3a, 0x70, 0xab,
+ 0x9f, 0x65, 0xf0, 0x01, 0xc2, 0x2c, 0xc5, 0xa4,
+};
+static const unsigned char kat3720_addinpr1[] = {
+ 0x40, 0x60, 0x82, 0xc9, 0xde, 0xc4, 0x16, 0x91, 0x7d, 0x56, 0xae, 0xff,
+ 0xac, 0xba, 0xcd, 0xc4, 0xe2, 0xad, 0x24, 0x0b, 0x08, 0x04, 0x2d, 0x33,
+ 0x82, 0x47, 0x18, 0x11, 0x13, 0x42, 0xdb, 0x5f,
+};
+static const unsigned char kat3720_entropyinpr2[] = {
+ 0xc6, 0x4d, 0xc7, 0xf4, 0xe7, 0xfc, 0x14, 0xad, 0xa0, 0x90, 0x5e, 0x27,
+ 0x1e, 0x0d, 0xe4, 0x91, 0xa7, 0xb8, 0xe4, 0x93, 0x1d, 0x26, 0x82, 0x3e,
+ 0x57, 0x21, 0x32, 0x32, 0x9e, 0x00, 0x65, 0x2a,
+};
+static const unsigned char kat3720_addinpr2[] = {
+ 0x55, 0x15, 0x6a, 0x60, 0x49, 0x66, 0x21, 0x2f, 0x7c, 0xf2, 0x03, 0x79,
+ 0xb7, 0x9c, 0xdf, 0xee, 0x41, 0xa9, 0xfe, 0x46, 0x2c, 0x9f, 0x7e, 0x17,
+ 0xe5, 0xa0, 0x82, 0xc5, 0xdc, 0xa8, 0xb6, 0x60,
+};
+static const unsigned char kat3720_retbits[] = {
+ 0x7d, 0x96, 0xdf, 0xe0, 0xf6, 0xfe, 0x3e, 0xac, 0x2d, 0xe3, 0xa3, 0xa8,
+ 0x72, 0x9d, 0x36, 0xaf, 0xb1, 0x76, 0x7a, 0xea, 0xe2, 0xac, 0x3c, 0x79,
+ 0xdb, 0x0c, 0x52, 0x32, 0x26, 0xca, 0xca, 0xc3, 0xca, 0xc6, 0xd5, 0xa8,
+ 0x7d, 0x4f, 0x15, 0x2e, 0x8e, 0x72, 0x74, 0x06, 0x9c, 0xc9, 0xf1, 0x2b,
+ 0xb7, 0xed, 0xb2, 0x93, 0xf0, 0x4e, 0x9b, 0xbd, 0x5a, 0x8f, 0x0a, 0xb1,
+ 0x42, 0xfc, 0x37, 0x3b,
+};
+static const struct drbg_kat_pr_true kat3720_t = {
+ 14, kat3720_entropyin, kat3720_nonce, kat3720_persstr,
+ kat3720_entropyinpr1, kat3720_addinpr1, kat3720_entropyinpr2,
+ kat3720_addinpr2, kat3720_retbits
+};
+static const struct drbg_kat kat3720 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3720_t
+};
+
+static const unsigned char kat3721_entropyin[] = {
+ 0x1f, 0x44, 0xa9, 0x9b, 0xdc, 0x8e, 0x23, 0xa2, 0x73, 0x67, 0x71, 0x9a,
+ 0xa6, 0x18, 0x70, 0xa0, 0xd1, 0xfe, 0x73, 0xd5, 0x73, 0x43, 0x41, 0x34,
+ 0x92, 0xfc, 0x8b, 0x15, 0xef, 0x91, 0x7c, 0xc7,
+};
+static const unsigned char kat3721_nonce[] = {0};
+static const unsigned char kat3721_persstr[] = {0};
+static const unsigned char kat3721_entropyinpr1[] = {
+ 0x22, 0xc7, 0x2e, 0xc1, 0x27, 0xc3, 0x05, 0x9f, 0x6e, 0x9a, 0xb0, 0x9a,
+ 0x7b, 0x21, 0xa7, 0x2e, 0xc1, 0x1f, 0x71, 0x60, 0x98, 0x70, 0xfa, 0x76,
+ 0x4a, 0x0b, 0xb9, 0xb1, 0x8b, 0x4e, 0xe0, 0xbf,
+};
+static const unsigned char kat3721_addinpr1[] = {0};
+static const unsigned char kat3721_entropyinpr2[] = {
+ 0xbb, 0x50, 0x59, 0x26, 0xd5, 0x82, 0xf6, 0x98, 0x43, 0x0e, 0xbf, 0x1b,
+ 0x22, 0x20, 0x6c, 0xb7, 0x7b, 0xa0, 0xff, 0xc9, 0x6a, 0x77, 0x12, 0x97,
+ 0x09, 0xff, 0x99, 0xe7, 0xf7, 0x31, 0xa2, 0x0a,
+};
+static const unsigned char kat3721_addinpr2[] = {0};
+static const unsigned char kat3721_retbits[] = {
+ 0x7b, 0x5a, 0x20, 0x1a, 0xa4, 0xb7, 0x95, 0x0b, 0xc2, 0x08, 0x1f, 0x27,
+ 0x7e, 0x7a, 0xec, 0xe3, 0xb1, 0x9c, 0x74, 0xae, 0xe3, 0x4f, 0x19, 0x2f,
+ 0xeb, 0x0b, 0x05, 0x77, 0x70, 0xe1, 0x2e, 0x9f, 0x55, 0x1e, 0x3e, 0x31,
+ 0x0a, 0x6c, 0x73, 0x92, 0xe9, 0x8e, 0xe5, 0xd4, 0xd2, 0x4e, 0x1d, 0xa9,
+ 0x6d, 0xe2, 0xb2, 0xc6, 0x40, 0xc8, 0x63, 0xda, 0x9e, 0x97, 0x1c, 0xd3,
+ 0x15, 0x61, 0xb0, 0xa8,
+};
+static const struct drbg_kat_pr_true kat3721_t = {
+ 0, kat3721_entropyin, kat3721_nonce, kat3721_persstr,
+ kat3721_entropyinpr1, kat3721_addinpr1, kat3721_entropyinpr2,
+ kat3721_addinpr2, kat3721_retbits
+};
+static const struct drbg_kat kat3721 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3721_t
+};
+
+static const unsigned char kat3722_entropyin[] = {
+ 0xb0, 0x4d, 0x2c, 0xb8, 0x99, 0xec, 0x91, 0x5d, 0x83, 0xb5, 0x28, 0x56,
+ 0x6b, 0x49, 0xa0, 0x9a, 0x00, 0xe7, 0x58, 0x02, 0xd3, 0x97, 0x83, 0xae,
+ 0x2a, 0xfa, 0x8d, 0xb5, 0x8c, 0x7b, 0x8f, 0x81,
+};
+static const unsigned char kat3722_nonce[] = {0};
+static const unsigned char kat3722_persstr[] = {0};
+static const unsigned char kat3722_entropyinpr1[] = {
+ 0xbf, 0xd5, 0x8c, 0x5e, 0x21, 0xbd, 0x56, 0xda, 0x4d, 0x65, 0x52, 0x96,
+ 0x0b, 0x76, 0xb4, 0xaa, 0x7c, 0x9c, 0x66, 0xc9, 0xa2, 0x38, 0x2d, 0xab,
+ 0x79, 0x9a, 0xe5, 0x56, 0x9e, 0x01, 0xff, 0xd3,
+};
+static const unsigned char kat3722_addinpr1[] = {0};
+static const unsigned char kat3722_entropyinpr2[] = {
+ 0x0c, 0x70, 0x5b, 0x94, 0xf2, 0x06, 0x5e, 0x4b, 0x2f, 0x63, 0x7a, 0x2d,
+ 0xc9, 0xb7, 0xed, 0x01, 0x57, 0xf9, 0xe0, 0x72, 0x2a, 0xa9, 0xe8, 0x3e,
+ 0x8a, 0xa1, 0x3b, 0xb6, 0x51, 0x0b, 0x8e, 0x58,
+};
+static const unsigned char kat3722_addinpr2[] = {0};
+static const unsigned char kat3722_retbits[] = {
+ 0xdd, 0xd0, 0x9f, 0x4c, 0x9e, 0x93, 0xca, 0x2d, 0x2b, 0xb7, 0xd4, 0x36,
+ 0x6b, 0x0a, 0x6f, 0xbf, 0x72, 0x2d, 0xac, 0xdf, 0x5d, 0x59, 0x15, 0x2a,
+ 0xd1, 0xd5, 0x5f, 0x33, 0x91, 0x1c, 0x52, 0x13, 0x4e, 0xab, 0x81, 0xf6,
+ 0x4e, 0x5b, 0xf4, 0xa0, 0x86, 0x1c, 0xfe, 0xbc, 0xcd, 0xee, 0x0a, 0x74,
+ 0x04, 0xb3, 0x27, 0x99, 0xf8, 0x6a, 0xef, 0x63, 0xb2, 0x95, 0xd0, 0xe6,
+ 0xd9, 0xef, 0x4a, 0xdc,
+};
+static const struct drbg_kat_pr_true kat3722_t = {
+ 1, kat3722_entropyin, kat3722_nonce, kat3722_persstr,
+ kat3722_entropyinpr1, kat3722_addinpr1, kat3722_entropyinpr2,
+ kat3722_addinpr2, kat3722_retbits
+};
+static const struct drbg_kat kat3722 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3722_t
+};
+
+static const unsigned char kat3723_entropyin[] = {
+ 0x05, 0x6d, 0xf1, 0x8d, 0x2e, 0x8b, 0xf1, 0x7a, 0xef, 0x52, 0xf6, 0x08,
+ 0x24, 0xd5, 0x3b, 0xe5, 0x49, 0x3a, 0x0e, 0xbf, 0xb3, 0x14, 0x36, 0x36,
+ 0xb0, 0xb3, 0xf0, 0x66, 0xc7, 0x81, 0x1f, 0x0a,
+};
+static const unsigned char kat3723_nonce[] = {0};
+static const unsigned char kat3723_persstr[] = {0};
+static const unsigned char kat3723_entropyinpr1[] = {
+ 0xb6, 0x3e, 0x45, 0x14, 0x8c, 0x28, 0x59, 0xde, 0x11, 0x9f, 0xc8, 0x31,
+ 0xfd, 0x26, 0x51, 0x64, 0x30, 0x2e, 0x8c, 0x5e, 0x23, 0x0f, 0x26, 0xa7,
+ 0x1e, 0x02, 0x10, 0xae, 0x57, 0x96, 0xf7, 0x9d,
+};
+static const unsigned char kat3723_addinpr1[] = {0};
+static const unsigned char kat3723_entropyinpr2[] = {
+ 0xba, 0x82, 0xed, 0x1e, 0x95, 0x90, 0xcc, 0x53, 0x09, 0x32, 0x8f, 0xc5,
+ 0x1f, 0x92, 0xf2, 0xdc, 0xaa, 0xe2, 0xe3, 0x20, 0x22, 0x72, 0x65, 0xe6,
+ 0x3b, 0xe8, 0x19, 0x03, 0xb1, 0x76, 0x6b, 0x53,
+};
+static const unsigned char kat3723_addinpr2[] = {0};
+static const unsigned char kat3723_retbits[] = {
+ 0xa3, 0x81, 0xd0, 0x6d, 0x00, 0xc9, 0xda, 0x58, 0xf4, 0x84, 0xc9, 0xcf,
+ 0xf8, 0xdf, 0xad, 0x4c, 0xd8, 0x51, 0x23, 0x94, 0xdd, 0x6e, 0x96, 0x04,
+ 0xbb, 0x76, 0x3b, 0xda, 0x89, 0x60, 0x59, 0x4f, 0x34, 0x4c, 0x55, 0x73,
+ 0x2f, 0xbc, 0x37, 0x6e, 0x6e, 0x34, 0xf6, 0x49, 0xab, 0xcd, 0xaf, 0x82,
+ 0x1e, 0x76, 0xd1, 0xde, 0x9f, 0xfc, 0xd6, 0x0b, 0x6a, 0x19, 0x17, 0xbe,
+ 0x5a, 0xdd, 0x1c, 0x07,
+};
+static const struct drbg_kat_pr_true kat3723_t = {
+ 2, kat3723_entropyin, kat3723_nonce, kat3723_persstr,
+ kat3723_entropyinpr1, kat3723_addinpr1, kat3723_entropyinpr2,
+ kat3723_addinpr2, kat3723_retbits
+};
+static const struct drbg_kat kat3723 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3723_t
+};
+
+static const unsigned char kat3724_entropyin[] = {
+ 0x51, 0x98, 0x97, 0x56, 0xb7, 0xd9, 0xbc, 0x1d, 0x18, 0x27, 0x4c, 0xe4,
+ 0xff, 0x80, 0x22, 0xf0, 0x22, 0x1b, 0xc6, 0xf6, 0x96, 0xfb, 0x6c, 0x2e,
+ 0x36, 0x76, 0xeb, 0x7e, 0x0b, 0x28, 0x04, 0x8b,
+};
+static const unsigned char kat3724_nonce[] = {0};
+static const unsigned char kat3724_persstr[] = {0};
+static const unsigned char kat3724_entropyinpr1[] = {
+ 0x50, 0x02, 0x5b, 0x1a, 0xba, 0xc5, 0x8e, 0x63, 0x66, 0xe3, 0xc5, 0xf5,
+ 0xc4, 0xf3, 0xe0, 0x6d, 0x31, 0xc6, 0x85, 0xd7, 0xe4, 0xe0, 0x31, 0xb9,
+ 0x73, 0x6a, 0x27, 0x2c, 0x08, 0x5f, 0x98, 0xe4,
+};
+static const unsigned char kat3724_addinpr1[] = {0};
+static const unsigned char kat3724_entropyinpr2[] = {
+ 0xf7, 0x57, 0xba, 0xdd, 0x45, 0x42, 0x53, 0xdc, 0x84, 0x07, 0x4f, 0xf9,
+ 0xc5, 0xb3, 0x45, 0x36, 0x5a, 0x24, 0xe5, 0xf8, 0x37, 0x0e, 0x3d, 0xee,
+ 0x1c, 0x4c, 0x69, 0x6c, 0x71, 0x98, 0x2d, 0x74,
+};
+static const unsigned char kat3724_addinpr2[] = {0};
+static const unsigned char kat3724_retbits[] = {
+ 0xd6, 0x0a, 0xcb, 0xe5, 0x7e, 0x4a, 0x44, 0xdc, 0x5d, 0x8d, 0xc3, 0x1e,
+ 0xc2, 0x82, 0x15, 0x01, 0x37, 0xca, 0x3d, 0xd5, 0xa9, 0xde, 0x0f, 0x39,
+ 0x79, 0x89, 0x72, 0x26, 0x2a, 0x6b, 0x69, 0x1f, 0x48, 0x5b, 0x44, 0xd5,
+ 0x53, 0xa7, 0x95, 0x59, 0x3e, 0xb1, 0x78, 0x6e, 0xa1, 0x01, 0xeb, 0x0d,
+ 0x71, 0x6e, 0x95, 0x5a, 0x2d, 0xe2, 0x6f, 0x14, 0x8b, 0x64, 0x0d, 0xef,
+ 0x80, 0xba, 0x38, 0xc5,
+};
+static const struct drbg_kat_pr_true kat3724_t = {
+ 3, kat3724_entropyin, kat3724_nonce, kat3724_persstr,
+ kat3724_entropyinpr1, kat3724_addinpr1, kat3724_entropyinpr2,
+ kat3724_addinpr2, kat3724_retbits
+};
+static const struct drbg_kat kat3724 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3724_t
+};
+
+static const unsigned char kat3725_entropyin[] = {
+ 0x7c, 0xfc, 0x70, 0xa8, 0x91, 0x6d, 0xf2, 0xea, 0x28, 0x5b, 0xf1, 0x08,
+ 0x2b, 0x37, 0x12, 0x99, 0xd0, 0x12, 0xf2, 0x99, 0x03, 0x68, 0x25, 0x40,
+ 0x1b, 0x69, 0x28, 0x87, 0x69, 0x18, 0x98, 0x24,
+};
+static const unsigned char kat3725_nonce[] = {0};
+static const unsigned char kat3725_persstr[] = {0};
+static const unsigned char kat3725_entropyinpr1[] = {
+ 0x95, 0x92, 0x75, 0xa7, 0x19, 0x9e, 0xb2, 0x1b, 0x6e, 0x31, 0xdf, 0x76,
+ 0x38, 0x00, 0x2b, 0x2d, 0x9a, 0x8b, 0xf5, 0x90, 0xfd, 0x81, 0x75, 0xf3,
+ 0x53, 0x18, 0x59, 0x43, 0x16, 0xb4, 0xa3, 0xff,
+};
+static const unsigned char kat3725_addinpr1[] = {0};
+static const unsigned char kat3725_entropyinpr2[] = {
+ 0xd9, 0x00, 0x0f, 0x75, 0xba, 0xb8, 0x91, 0xfa, 0x4a, 0xa6, 0x64, 0x7f,
+ 0x93, 0xf6, 0x62, 0x51, 0xfb, 0x98, 0x23, 0x16, 0x49, 0xe2, 0x34, 0xde,
+ 0x32, 0xe7, 0x57, 0x5a, 0xed, 0x00, 0x8b, 0x47,
+};
+static const unsigned char kat3725_addinpr2[] = {0};
+static const unsigned char kat3725_retbits[] = {
+ 0x06, 0xd9, 0x1a, 0xed, 0xd2, 0x8f, 0xc5, 0xde, 0x08, 0xc7, 0x27, 0xde,
+ 0xcf, 0x85, 0xa0, 0x8e, 0xf5, 0x6f, 0x02, 0xc7, 0x6b, 0x37, 0x6e, 0x27,
+ 0xbc, 0x47, 0x73, 0x5b, 0x58, 0x81, 0x9d, 0x90, 0xa7, 0x95, 0x7f, 0x75,
+ 0x4c, 0x29, 0x5c, 0xfd, 0x9e, 0xe6, 0x17, 0xda, 0x44, 0x7b, 0xc3, 0x53,
+ 0xe4, 0x2a, 0x92, 0x46, 0xda, 0x3f, 0xf3, 0xa8, 0xb0, 0x8c, 0xa3, 0x38,
+ 0xbc, 0x40, 0x9f, 0xae,
+};
+static const struct drbg_kat_pr_true kat3725_t = {
+ 4, kat3725_entropyin, kat3725_nonce, kat3725_persstr,
+ kat3725_entropyinpr1, kat3725_addinpr1, kat3725_entropyinpr2,
+ kat3725_addinpr2, kat3725_retbits
+};
+static const struct drbg_kat kat3725 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3725_t
+};
+
+static const unsigned char kat3726_entropyin[] = {
+ 0x36, 0x6a, 0x1d, 0x80, 0xe7, 0xe5, 0x4e, 0x84, 0x91, 0x59, 0x90, 0x35,
+ 0xe8, 0x54, 0x3e, 0x04, 0x8f, 0x98, 0x26, 0xd8, 0xb5, 0x41, 0xa0, 0x67,
+ 0x76, 0xf9, 0x26, 0x37, 0x9b, 0x0e, 0x13, 0x7b,
+};
+static const unsigned char kat3726_nonce[] = {0};
+static const unsigned char kat3726_persstr[] = {0};
+static const unsigned char kat3726_entropyinpr1[] = {
+ 0x44, 0x75, 0x26, 0x69, 0x4c, 0x6e, 0x18, 0xaf, 0xdf, 0xa6, 0x3b, 0xf2,
+ 0x24, 0x74, 0xf4, 0xc3, 0x43, 0x3d, 0x00, 0x48, 0x8f, 0x8c, 0x0c, 0x83,
+ 0xe4, 0xbf, 0x3a, 0x0a, 0xed, 0xd2, 0x0a, 0x56,
+};
+static const unsigned char kat3726_addinpr1[] = {0};
+static const unsigned char kat3726_entropyinpr2[] = {
+ 0xc3, 0x2b, 0x6c, 0xcb, 0xee, 0xc2, 0xb1, 0xf8, 0x4d, 0x52, 0xe8, 0xb9,
+ 0x18, 0x6c, 0x6b, 0x25, 0xce, 0xac, 0x8b, 0x24, 0x0a, 0x35, 0x5e, 0xb2,
+ 0xbc, 0xd0, 0x07, 0x62, 0x99, 0x52, 0x3d, 0x0f,
+};
+static const unsigned char kat3726_addinpr2[] = {0};
+static const unsigned char kat3726_retbits[] = {
+ 0xd5, 0x16, 0x90, 0x0e, 0x90, 0xf7, 0xbf, 0x7f, 0x07, 0xc7, 0xc9, 0xc5,
+ 0x33, 0xf3, 0x50, 0x67, 0x2d, 0x8a, 0x8f, 0xdf, 0x15, 0x0b, 0x37, 0x00,
+ 0xe6, 0x40, 0x87, 0x33, 0x98, 0x29, 0xb2, 0xcc, 0x76, 0x4d, 0xe7, 0x91,
+ 0x65, 0xc8, 0xce, 0x3c, 0xf7, 0x82, 0xdc, 0x72, 0xce, 0x5a, 0xdb, 0xb7,
+ 0x16, 0xf6, 0x9d, 0x39, 0x47, 0xe4, 0x7d, 0x0b, 0x0f, 0x47, 0x3d, 0x34,
+ 0x50, 0x60, 0x62, 0xde,
+};
+static const struct drbg_kat_pr_true kat3726_t = {
+ 5, kat3726_entropyin, kat3726_nonce, kat3726_persstr,
+ kat3726_entropyinpr1, kat3726_addinpr1, kat3726_entropyinpr2,
+ kat3726_addinpr2, kat3726_retbits
+};
+static const struct drbg_kat kat3726 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3726_t
+};
+
+static const unsigned char kat3727_entropyin[] = {
+ 0x26, 0xf1, 0x9a, 0x88, 0x23, 0x9e, 0x0a, 0xe8, 0xb2, 0xfd, 0xa7, 0x46,
+ 0x5b, 0x72, 0x10, 0xdd, 0xf2, 0xc6, 0x33, 0x46, 0xff, 0x4c, 0x00, 0xcf,
+ 0x5f, 0xdf, 0xc5, 0x6d, 0x99, 0xac, 0xd3, 0xdd,
+};
+static const unsigned char kat3727_nonce[] = {0};
+static const unsigned char kat3727_persstr[] = {0};
+static const unsigned char kat3727_entropyinpr1[] = {
+ 0x44, 0x8b, 0x93, 0x41, 0xb1, 0x9d, 0x26, 0xab, 0x46, 0x6f, 0x90, 0x5b,
+ 0x58, 0x9d, 0xf1, 0x94, 0x7f, 0x9c, 0xd3, 0xe3, 0x97, 0x99, 0x8f, 0x5b,
+ 0xd0, 0x36, 0xa3, 0xae, 0x39, 0x5b, 0xba, 0xaa,
+};
+static const unsigned char kat3727_addinpr1[] = {0};
+static const unsigned char kat3727_entropyinpr2[] = {
+ 0x53, 0x2f, 0x6b, 0x54, 0x91, 0x1c, 0x10, 0x2d, 0xed, 0xf4, 0x76, 0x55,
+ 0xb1, 0x73, 0x4e, 0x52, 0xd4, 0xae, 0x18, 0x06, 0x2c, 0x5b, 0x80, 0xc2,
+ 0x42, 0x30, 0xd9, 0x75, 0x5e, 0x1a, 0xb3, 0x96,
+};
+static const unsigned char kat3727_addinpr2[] = {0};
+static const unsigned char kat3727_retbits[] = {
+ 0x48, 0x47, 0xfc, 0x50, 0x8e, 0x66, 0xba, 0x3f, 0x68, 0xec, 0xaa, 0x3f,
+ 0xc4, 0xb8, 0x7c, 0xb8, 0xbf, 0xc2, 0xd9, 0x30, 0xa0, 0xe5, 0x6f, 0x63,
+ 0x76, 0x7c, 0xcb, 0x4e, 0xf8, 0x9b, 0x80, 0xb3, 0x17, 0xf3, 0x3e, 0x46,
+ 0x5b, 0x2f, 0x39, 0x3c, 0xaa, 0x75, 0x85, 0x32, 0x74, 0xe0, 0x37, 0x7e,
+ 0x80, 0x2e, 0x1f, 0x8b, 0x55, 0xb3, 0x1e, 0x51, 0xd2, 0x23, 0x81, 0x93,
+ 0x54, 0x2f, 0x57, 0x88,
+};
+static const struct drbg_kat_pr_true kat3727_t = {
+ 6, kat3727_entropyin, kat3727_nonce, kat3727_persstr,
+ kat3727_entropyinpr1, kat3727_addinpr1, kat3727_entropyinpr2,
+ kat3727_addinpr2, kat3727_retbits
+};
+static const struct drbg_kat kat3727 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3727_t
+};
+
+static const unsigned char kat3728_entropyin[] = {
+ 0x7b, 0xc8, 0x57, 0xc7, 0x5c, 0x47, 0x75, 0x5c, 0x47, 0x1f, 0x70, 0x95,
+ 0xa2, 0xb2, 0x15, 0x75, 0xae, 0x21, 0x9a, 0x9d, 0xae, 0xa4, 0x2b, 0x9c,
+ 0x93, 0xea, 0x83, 0x55, 0x4c, 0x92, 0xb7, 0xd0,
+};
+static const unsigned char kat3728_nonce[] = {0};
+static const unsigned char kat3728_persstr[] = {0};
+static const unsigned char kat3728_entropyinpr1[] = {
+ 0xaf, 0x7e, 0xe8, 0x26, 0xf8, 0x9d, 0xdc, 0xb7, 0xc6, 0xab, 0xf6, 0x3b,
+ 0x50, 0xe7, 0xac, 0x3d, 0xe0, 0x64, 0xa4, 0xab, 0x65, 0x58, 0x3c, 0x47,
+ 0x06, 0x0e, 0x3e, 0xab, 0xb7, 0x0c, 0x2c, 0xf1,
+};
+static const unsigned char kat3728_addinpr1[] = {0};
+static const unsigned char kat3728_entropyinpr2[] = {
+ 0x64, 0x57, 0x68, 0xbc, 0x93, 0x61, 0x90, 0x8b, 0x16, 0x16, 0x17, 0xf0,
+ 0x43, 0x09, 0x17, 0xbd, 0x5c, 0x26, 0x57, 0xf2, 0x96, 0x8b, 0x9a, 0x49,
+ 0xe1, 0x76, 0x69, 0x53, 0x8e, 0x37, 0x25, 0xa4,
+};
+static const unsigned char kat3728_addinpr2[] = {0};
+static const unsigned char kat3728_retbits[] = {
+ 0x57, 0xb6, 0x14, 0x4f, 0x77, 0x3f, 0xed, 0xc6, 0x8f, 0x2c, 0x91, 0xd7,
+ 0x4a, 0x66, 0x63, 0x38, 0x4b, 0x64, 0xba, 0x9d, 0x87, 0xe4, 0x9a, 0xca,
+ 0xa9, 0x28, 0xcb, 0x57, 0x16, 0x56, 0xfb, 0xde, 0xb1, 0xfd, 0xdd, 0xf6,
+ 0x00, 0xd5, 0xab, 0xcb, 0x5c, 0x05, 0x80, 0xff, 0x8b, 0x84, 0xa7, 0x99,
+ 0x2b, 0xf9, 0x18, 0xb9, 0x01, 0xda, 0xa2, 0x14, 0x8c, 0xe9, 0x91, 0xd4,
+ 0xdb, 0xad, 0xf0, 0x09,
+};
+static const struct drbg_kat_pr_true kat3728_t = {
+ 7, kat3728_entropyin, kat3728_nonce, kat3728_persstr,
+ kat3728_entropyinpr1, kat3728_addinpr1, kat3728_entropyinpr2,
+ kat3728_addinpr2, kat3728_retbits
+};
+static const struct drbg_kat kat3728 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3728_t
+};
+
+static const unsigned char kat3729_entropyin[] = {
+ 0x8e, 0xdb, 0x1b, 0x84, 0x73, 0x5c, 0x84, 0x0f, 0x96, 0x15, 0x55, 0xa7,
+ 0x1b, 0x2a, 0x0c, 0x4d, 0xa7, 0xd4, 0xdb, 0x99, 0x06, 0xdb, 0xbb, 0xa2,
+ 0x08, 0x24, 0x54, 0xbd, 0x6b, 0xe0, 0xc5, 0x34,
+};
+static const unsigned char kat3729_nonce[] = {0};
+static const unsigned char kat3729_persstr[] = {0};
+static const unsigned char kat3729_entropyinpr1[] = {
+ 0x50, 0x6a, 0xf2, 0x42, 0xe6, 0x8c, 0x48, 0x92, 0x72, 0xf5, 0x67, 0xb2,
+ 0x49, 0xa4, 0x7d, 0xcf, 0x73, 0xf2, 0xf6, 0x47, 0x94, 0x3c, 0xd3, 0xb4,
+ 0x7e, 0x5a, 0xad, 0xe3, 0x41, 0xe4, 0x1e, 0xee,
+};
+static const unsigned char kat3729_addinpr1[] = {0};
+static const unsigned char kat3729_entropyinpr2[] = {
+ 0x09, 0xa2, 0x21, 0xe9, 0xee, 0x13, 0x9b, 0x0c, 0xee, 0x12, 0x46, 0x45,
+ 0x87, 0x92, 0x85, 0xdc, 0x29, 0x86, 0x25, 0x40, 0x93, 0x82, 0x0c, 0xb2,
+ 0x2f, 0x77, 0x1d, 0xe2, 0x59, 0x8f, 0x65, 0xc1,
+};
+static const unsigned char kat3729_addinpr2[] = {0};
+static const unsigned char kat3729_retbits[] = {
+ 0x79, 0x66, 0x25, 0x92, 0x55, 0xc3, 0xc6, 0xcf, 0xb7, 0x08, 0x48, 0xc9,
+ 0x06, 0xf4, 0x44, 0x6d, 0x6d, 0x0d, 0xe8, 0x57, 0xd7, 0xc0, 0x6b, 0x81,
+ 0xdf, 0x6c, 0xbb, 0xcc, 0x45, 0xfc, 0x9e, 0xce, 0xc5, 0x8e, 0x68, 0x9c,
+ 0x7a, 0x88, 0x30, 0xe3, 0xd4, 0x56, 0x20, 0xbf, 0xb8, 0x4f, 0x1e, 0x76,
+ 0xbe, 0x29, 0x2a, 0x26, 0xb9, 0x09, 0xe5, 0xdf, 0xc3, 0x80, 0xc1, 0xb8,
+ 0xd7, 0x2d, 0x9a, 0x78,
+};
+static const struct drbg_kat_pr_true kat3729_t = {
+ 8, kat3729_entropyin, kat3729_nonce, kat3729_persstr,
+ kat3729_entropyinpr1, kat3729_addinpr1, kat3729_entropyinpr2,
+ kat3729_addinpr2, kat3729_retbits
+};
+static const struct drbg_kat kat3729 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3729_t
+};
+
+static const unsigned char kat3730_entropyin[] = {
+ 0xa8, 0x44, 0x0d, 0xc1, 0x4f, 0x68, 0x7f, 0x7d, 0x0a, 0xfc, 0x13, 0x11,
+ 0x52, 0x69, 0x26, 0xc6, 0x70, 0x7d, 0x05, 0xc3, 0xf1, 0xc6, 0x9d, 0xad,
+ 0x19, 0x99, 0xa6, 0x84, 0x20, 0x88, 0x74, 0xf1,
+};
+static const unsigned char kat3730_nonce[] = {0};
+static const unsigned char kat3730_persstr[] = {0};
+static const unsigned char kat3730_entropyinpr1[] = {
+ 0x41, 0x65, 0x82, 0xe4, 0x49, 0x6b, 0x0b, 0x3c, 0x9e, 0xc4, 0x40, 0x82,
+ 0x71, 0x5c, 0x38, 0x91, 0x38, 0x18, 0x73, 0xdd, 0x73, 0xff, 0x04, 0x90,
+ 0x98, 0x7d, 0xe1, 0x7e, 0x0f, 0xf5, 0x88, 0x8a,
+};
+static const unsigned char kat3730_addinpr1[] = {0};
+static const unsigned char kat3730_entropyinpr2[] = {
+ 0x3f, 0xa9, 0xfe, 0x9a, 0xf5, 0x6a, 0xbb, 0x65, 0x19, 0xb6, 0xe2, 0x2e,
+ 0x76, 0x37, 0x46, 0xf6, 0x3d, 0xaa, 0xf2, 0x21, 0x33, 0xf7, 0x34, 0xc7,
+ 0xc4, 0x5d, 0xfc, 0x46, 0x40, 0xf1, 0x0c, 0x86,
+};
+static const unsigned char kat3730_addinpr2[] = {0};
+static const unsigned char kat3730_retbits[] = {
+ 0xcb, 0x61, 0xfa, 0xa4, 0x9f, 0x18, 0x22, 0x0a, 0xed, 0xbb, 0x5e, 0x1c,
+ 0xc4, 0x69, 0xc5, 0xe1, 0xd3, 0x8f, 0xdc, 0x4a, 0xe6, 0xdc, 0x73, 0x33,
+ 0x0d, 0xde, 0x98, 0xa2, 0x7c, 0x32, 0xd1, 0x08, 0x03, 0x96, 0x92, 0xe5,
+ 0x91, 0x0b, 0x42, 0x0a, 0x8f, 0x4a, 0x46, 0x70, 0x39, 0x85, 0x66, 0x20,
+ 0x88, 0x73, 0xd3, 0x50, 0x11, 0x85, 0x4f, 0x29, 0x24, 0x33, 0x93, 0xb0,
+ 0x48, 0xc7, 0x02, 0x2f,
+};
+static const struct drbg_kat_pr_true kat3730_t = {
+ 9, kat3730_entropyin, kat3730_nonce, kat3730_persstr,
+ kat3730_entropyinpr1, kat3730_addinpr1, kat3730_entropyinpr2,
+ kat3730_addinpr2, kat3730_retbits
+};
+static const struct drbg_kat kat3730 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3730_t
+};
+
+static const unsigned char kat3731_entropyin[] = {
+ 0xbf, 0xf9, 0x91, 0x1a, 0x1b, 0xf3, 0xda, 0x59, 0xdc, 0x92, 0x80, 0xf6,
+ 0x3b, 0x34, 0x9e, 0xd0, 0x8b, 0xc4, 0x57, 0x49, 0x67, 0xff, 0x2e, 0xfb,
+ 0x50, 0xe8, 0x84, 0xb7, 0x13, 0x5f, 0xfb, 0xdd,
+};
+static const unsigned char kat3731_nonce[] = {0};
+static const unsigned char kat3731_persstr[] = {0};
+static const unsigned char kat3731_entropyinpr1[] = {
+ 0x01, 0x66, 0x8f, 0x77, 0xd0, 0xce, 0x93, 0x54, 0xeb, 0x59, 0x80, 0x4d,
+ 0x84, 0xee, 0xc2, 0xdd, 0x2c, 0xb6, 0xc3, 0x17, 0xe8, 0x8e, 0xe8, 0x31,
+ 0x93, 0x17, 0x24, 0xac, 0x15, 0xcf, 0xb2, 0xd0,
+};
+static const unsigned char kat3731_addinpr1[] = {0};
+static const unsigned char kat3731_entropyinpr2[] = {
+ 0x3c, 0x31, 0x00, 0x55, 0x48, 0x89, 0x4b, 0x40, 0x85, 0x95, 0xcd, 0xc4,
+ 0x3a, 0x2c, 0x7e, 0x97, 0x7b, 0x01, 0xb2, 0x24, 0x74, 0x6b, 0x29, 0xd6,
+ 0xa4, 0xab, 0xf6, 0xd3, 0x35, 0x9c, 0x58, 0x9e,
+};
+static const unsigned char kat3731_addinpr2[] = {0};
+static const unsigned char kat3731_retbits[] = {
+ 0xc6, 0x16, 0xf4, 0x84, 0xc2, 0x34, 0xd9, 0x1a, 0xe9, 0x05, 0xa1, 0xfa,
+ 0xc3, 0x63, 0xa2, 0x30, 0x97, 0xbd, 0x70, 0x2c, 0x39, 0xee, 0x02, 0x69,
+ 0xef, 0xf4, 0x5c, 0x06, 0x86, 0x53, 0xe3, 0xf0, 0xe7, 0x22, 0xe6, 0x8f,
+ 0x2d, 0x2a, 0x98, 0xe7, 0x38, 0x43, 0xce, 0x6b, 0xcf, 0xcb, 0xc9, 0x87,
+ 0xb9, 0xfd, 0x3b, 0xd6, 0xd1, 0x94, 0xeb, 0xc4, 0x97, 0xa0, 0x95, 0xc9,
+ 0xb8, 0xbc, 0x75, 0x1b,
+};
+static const struct drbg_kat_pr_true kat3731_t = {
+ 10, kat3731_entropyin, kat3731_nonce, kat3731_persstr,
+ kat3731_entropyinpr1, kat3731_addinpr1, kat3731_entropyinpr2,
+ kat3731_addinpr2, kat3731_retbits
+};
+static const struct drbg_kat kat3731 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3731_t
+};
+
+static const unsigned char kat3732_entropyin[] = {
+ 0x03, 0xad, 0x0c, 0x92, 0x7e, 0x08, 0x07, 0x6b, 0x74, 0x9f, 0x3a, 0xab,
+ 0x7c, 0x1d, 0x3f, 0x32, 0xa7, 0x3e, 0x80, 0x01, 0xfd, 0xd4, 0x91, 0x9a,
+ 0xf3, 0xb7, 0x1d, 0xaf, 0x32, 0x7d, 0x36, 0xb4,
+};
+static const unsigned char kat3732_nonce[] = {0};
+static const unsigned char kat3732_persstr[] = {0};
+static const unsigned char kat3732_entropyinpr1[] = {
+ 0x66, 0xdf, 0xb7, 0x9e, 0x77, 0xb1, 0x7e, 0xc9, 0x00, 0xfa, 0x00, 0xc3,
+ 0x49, 0x55, 0xe2, 0x4c, 0xff, 0x40, 0x39, 0xb3, 0xf5, 0x66, 0x2b, 0x3b,
+ 0x5c, 0xae, 0xc5, 0x4b, 0x40, 0x56, 0x7e, 0x30,
+};
+static const unsigned char kat3732_addinpr1[] = {0};
+static const unsigned char kat3732_entropyinpr2[] = {
+ 0xe2, 0x99, 0xad, 0xc4, 0x8a, 0xf2, 0x8a, 0x46, 0x18, 0x16, 0x7c, 0x56,
+ 0xb6, 0xa7, 0xe9, 0x38, 0xe0, 0x55, 0xb8, 0xd7, 0x27, 0xd1, 0x37, 0x5d,
+ 0xf8, 0x25, 0xec, 0xac, 0xa0, 0xfd, 0x37, 0xea,
+};
+static const unsigned char kat3732_addinpr2[] = {0};
+static const unsigned char kat3732_retbits[] = {
+ 0xe5, 0x52, 0xf5, 0xfb, 0x40, 0x94, 0x6c, 0x00, 0xa2, 0x76, 0x4a, 0x3f,
+ 0xf3, 0x9f, 0x58, 0x0c, 0xf9, 0x64, 0x59, 0xcb, 0xd1, 0xee, 0x39, 0x98,
+ 0x0b, 0xbd, 0x6a, 0x14, 0xd8, 0xc5, 0x2a, 0xdd, 0x51, 0xf8, 0xa6, 0x59,
+ 0xc0, 0xd0, 0x39, 0xfd, 0x44, 0xa6, 0xa0, 0xe1, 0xed, 0x1c, 0x89, 0x6b,
+ 0x65, 0xcf, 0xac, 0xdb, 0x87, 0x4c, 0x44, 0x28, 0x8a, 0xbb, 0x1a, 0x0b,
+ 0x0e, 0xe6, 0x90, 0xa9,
+};
+static const struct drbg_kat_pr_true kat3732_t = {
+ 11, kat3732_entropyin, kat3732_nonce, kat3732_persstr,
+ kat3732_entropyinpr1, kat3732_addinpr1, kat3732_entropyinpr2,
+ kat3732_addinpr2, kat3732_retbits
+};
+static const struct drbg_kat kat3732 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3732_t
+};
+
+static const unsigned char kat3733_entropyin[] = {
+ 0xe6, 0x0e, 0x54, 0xb0, 0x09, 0x50, 0xea, 0xb4, 0x1b, 0xe8, 0x41, 0x8a,
+ 0xbd, 0x2c, 0x1c, 0x0a, 0x9e, 0xb6, 0xe5, 0x37, 0xf4, 0x3a, 0xcb, 0xb1,
+ 0x23, 0x0c, 0xc5, 0x18, 0x6c, 0x8a, 0x01, 0x0f,
+};
+static const unsigned char kat3733_nonce[] = {0};
+static const unsigned char kat3733_persstr[] = {0};
+static const unsigned char kat3733_entropyinpr1[] = {
+ 0xa4, 0x1a, 0x04, 0xe6, 0xda, 0x54, 0xf7, 0x70, 0x91, 0x79, 0xab, 0x4d,
+ 0x27, 0xbe, 0x59, 0x89, 0xb0, 0xe4, 0xd5, 0xee, 0xab, 0x65, 0x4f, 0x2a,
+ 0xf3, 0xdb, 0x31, 0x0c, 0x50, 0x13, 0x4d, 0x66,
+};
+static const unsigned char kat3733_addinpr1[] = {0};
+static const unsigned char kat3733_entropyinpr2[] = {
+ 0xa1, 0xde, 0xbc, 0x18, 0xd1, 0x3f, 0x18, 0x6f, 0x93, 0xfd, 0x83, 0x1c,
+ 0x2d, 0x0b, 0xc0, 0xe6, 0x77, 0x6c, 0x17, 0xe6, 0x03, 0x81, 0xd6, 0xbf,
+ 0xbc, 0x6c, 0x21, 0x04, 0xb6, 0x30, 0xc1, 0xe2,
+};
+static const unsigned char kat3733_addinpr2[] = {0};
+static const unsigned char kat3733_retbits[] = {
+ 0xf4, 0x3e, 0xf2, 0x61, 0xda, 0xc7, 0xc6, 0xa5, 0x6a, 0x4f, 0x9f, 0xba,
+ 0xad, 0x1b, 0x90, 0xcb, 0xbd, 0x0e, 0x7f, 0x26, 0x0d, 0x34, 0xc1, 0xb0,
+ 0x7b, 0x90, 0x1e, 0x17, 0x97, 0x14, 0x14, 0x24, 0xc5, 0x37, 0xa4, 0x6f,
+ 0xc4, 0x11, 0x4f, 0x9e, 0x19, 0x4d, 0x5b, 0xbd, 0x70, 0x7d, 0x54, 0xfd,
+ 0xac, 0xdc, 0xb0, 0x03, 0xc8, 0x54, 0xda, 0x17, 0xdb, 0x5e, 0x1e, 0x08,
+ 0x3e, 0x26, 0x06, 0xcb,
+};
+static const struct drbg_kat_pr_true kat3733_t = {
+ 12, kat3733_entropyin, kat3733_nonce, kat3733_persstr,
+ kat3733_entropyinpr1, kat3733_addinpr1, kat3733_entropyinpr2,
+ kat3733_addinpr2, kat3733_retbits
+};
+static const struct drbg_kat kat3733 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3733_t
+};
+
+static const unsigned char kat3734_entropyin[] = {
+ 0xa8, 0x42, 0x70, 0x59, 0x21, 0xd7, 0x44, 0xbb, 0xe5, 0xe4, 0x00, 0xad,
+ 0x5f, 0x32, 0xcb, 0xe6, 0x88, 0xd0, 0xa1, 0x74, 0x21, 0xab, 0x4f, 0x39,
+ 0xe9, 0x5c, 0x7d, 0x3e, 0xc5, 0x9d, 0xb7, 0x79,
+};
+static const unsigned char kat3734_nonce[] = {0};
+static const unsigned char kat3734_persstr[] = {0};
+static const unsigned char kat3734_entropyinpr1[] = {
+ 0xed, 0xbd, 0x73, 0x30, 0x27, 0xa5, 0x53, 0x2f, 0xb7, 0x3a, 0xd1, 0x69,
+ 0x4c, 0xd2, 0x3a, 0x5b, 0x6c, 0x66, 0xd4, 0x43, 0x4e, 0x3d, 0x42, 0xb7,
+ 0x7a, 0x70, 0x12, 0xe3, 0x5e, 0x8a, 0xb6, 0xc8,
+};
+static const unsigned char kat3734_addinpr1[] = {0};
+static const unsigned char kat3734_entropyinpr2[] = {
+ 0xd6, 0x48, 0xcf, 0x8f, 0xd4, 0xde, 0xe8, 0xe5, 0x35, 0x34, 0x1e, 0xaf,
+ 0x28, 0x00, 0x2a, 0x90, 0x0c, 0x17, 0x4c, 0xe7, 0x5f, 0x18, 0x5f, 0xb7,
+ 0xb8, 0x23, 0x4a, 0x23, 0xe9, 0xd8, 0xb6, 0xab,
+};
+static const unsigned char kat3734_addinpr2[] = {0};
+static const unsigned char kat3734_retbits[] = {
+ 0x27, 0xaa, 0xaf, 0x1f, 0x30, 0x09, 0x8b, 0xa0, 0x3b, 0x49, 0xe1, 0xe0,
+ 0x5c, 0xdf, 0x88, 0x8d, 0x2f, 0xa5, 0x3d, 0x1a, 0x99, 0xdd, 0xb6, 0xeb,
+ 0x67, 0xf2, 0x98, 0x50, 0xae, 0x7c, 0xd9, 0x8b, 0x8f, 0x0e, 0xc2, 0xef,
+ 0x55, 0xc6, 0x53, 0x66, 0xbb, 0x58, 0xab, 0xc1, 0xcb, 0xd4, 0x5c, 0x0d,
+ 0xe4, 0x06, 0x9b, 0xe0, 0x8e, 0xe7, 0xea, 0xb0, 0x9f, 0x9b, 0xa6, 0x67,
+ 0x20, 0x26, 0x64, 0xcd,
+};
+static const struct drbg_kat_pr_true kat3734_t = {
+ 13, kat3734_entropyin, kat3734_nonce, kat3734_persstr,
+ kat3734_entropyinpr1, kat3734_addinpr1, kat3734_entropyinpr2,
+ kat3734_addinpr2, kat3734_retbits
+};
+static const struct drbg_kat kat3734 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3734_t
+};
+
+static const unsigned char kat3735_entropyin[] = {
+ 0xfc, 0x23, 0x12, 0xb8, 0xc8, 0x69, 0x93, 0xc0, 0x59, 0xea, 0xe3, 0xe1,
+ 0x17, 0x3c, 0x47, 0xf9, 0x65, 0xbc, 0xef, 0xce, 0x43, 0x8f, 0x95, 0xbe,
+ 0x59, 0xe6, 0x6b, 0xa8, 0xda, 0x67, 0xa5, 0x80,
+};
+static const unsigned char kat3735_nonce[] = {0};
+static const unsigned char kat3735_persstr[] = {0};
+static const unsigned char kat3735_entropyinpr1[] = {
+ 0x25, 0xae, 0xb7, 0x3b, 0xc0, 0x41, 0x39, 0xa6, 0x47, 0xb6, 0x0a, 0x0e,
+ 0x50, 0x6d, 0xb2, 0x10, 0x95, 0x81, 0xf5, 0x8b, 0x70, 0x4f, 0x00, 0x88,
+ 0x97, 0xcc, 0xb2, 0xba, 0x12, 0xe0, 0x7a, 0xb7,
+};
+static const unsigned char kat3735_addinpr1[] = {0};
+static const unsigned char kat3735_entropyinpr2[] = {
+ 0xa2, 0xe5, 0x83, 0x9c, 0x59, 0xfc, 0x25, 0x55, 0x76, 0xa2, 0xfd, 0x46,
+ 0x2c, 0x71, 0x98, 0x95, 0x31, 0x4a, 0x03, 0x38, 0x23, 0xf1, 0x1f, 0x41,
+ 0x94, 0x46, 0xd0, 0x27, 0x02, 0xbf, 0x00, 0x4f,
+};
+static const unsigned char kat3735_addinpr2[] = {0};
+static const unsigned char kat3735_retbits[] = {
+ 0xfb, 0x83, 0x3a, 0x40, 0xa6, 0x58, 0x21, 0x7a, 0xd7, 0x53, 0x91, 0xaa,
+ 0x83, 0x11, 0xb3, 0xe8, 0x72, 0xbb, 0xc2, 0xe1, 0xcb, 0x15, 0x0d, 0xa8,
+ 0x7c, 0xc6, 0xe3, 0x49, 0x44, 0x23, 0xc5, 0xa9, 0x92, 0x59, 0x3b, 0x68,
+ 0xf6, 0x09, 0xd3, 0x03, 0x87, 0xa0, 0x38, 0x4f, 0x64, 0x07, 0x92, 0x36,
+ 0xa1, 0x03, 0x89, 0x69, 0xd0, 0x11, 0xbe, 0xa6, 0xf8, 0xad, 0xb0, 0x52,
+ 0xc5, 0xb5, 0x7e, 0xec,
+};
+static const struct drbg_kat_pr_true kat3735_t = {
+ 14, kat3735_entropyin, kat3735_nonce, kat3735_persstr,
+ kat3735_entropyinpr1, kat3735_addinpr1, kat3735_entropyinpr2,
+ kat3735_addinpr2, kat3735_retbits
+};
+static const struct drbg_kat kat3735 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3735_t
+};
+
+static const unsigned char kat3736_entropyin[] = {
+ 0x09, 0xb6, 0x20, 0x43, 0x61, 0x91, 0x8e, 0x4c, 0xd1, 0xb6, 0xf2, 0x7b,
+ 0x40, 0xf9, 0x35, 0x7c, 0x36, 0xb0, 0x75, 0x8b, 0x27, 0x76, 0x7e, 0xf0,
+ 0x91, 0x75, 0xc2, 0x71, 0x60, 0x10, 0x91, 0x65,
+};
+static const unsigned char kat3736_nonce[] = {0};
+static const unsigned char kat3736_persstr[] = {0};
+static const unsigned char kat3736_entropyinpr1[] = {
+ 0xf4, 0xad, 0xb0, 0xdb, 0x65, 0xfd, 0xc5, 0xc6, 0xf7, 0x6f, 0x74, 0xa6,
+ 0x9e, 0x51, 0x5a, 0x59, 0x87, 0xfe, 0x38, 0xe4, 0x7e, 0xb6, 0x6f, 0xc4,
+ 0x58, 0x4e, 0x00, 0xf1, 0xf9, 0xf0, 0xfa, 0xd5,
+};
+static const unsigned char kat3736_addinpr1[] = {
+ 0x08, 0x32, 0xb5, 0x36, 0xba, 0x54, 0xf1, 0xce, 0xe9, 0xb9, 0x9c, 0x97,
+ 0x01, 0x1e, 0xf4, 0xf7, 0x1c, 0xc0, 0x8e, 0xe1, 0x63, 0x6c, 0x5b, 0x78,
+ 0x15, 0x4b, 0x0e, 0x7f, 0x45, 0xdf, 0xd5, 0x24,
+};
+static const unsigned char kat3736_entropyinpr2[] = {
+ 0xd0, 0xb4, 0x67, 0x4f, 0x63, 0x36, 0x24, 0xa9, 0x5e, 0x3f, 0x17, 0x20,
+ 0xc1, 0x23, 0xd4, 0xf6, 0x44, 0xb9, 0x0c, 0x5a, 0x18, 0xc9, 0x70, 0xa0,
+ 0x2b, 0x7c, 0x4e, 0x5c, 0xb0, 0x96, 0xdb, 0x56,
+};
+static const unsigned char kat3736_addinpr2[] = {
+ 0x46, 0xf8, 0x22, 0x20, 0x26, 0xc4, 0x59, 0xe2, 0x50, 0x2d, 0x54, 0x7f,
+ 0x77, 0x65, 0x43, 0xb3, 0x7f, 0xab, 0xb2, 0x75, 0x04, 0x0f, 0x9e, 0xee,
+ 0x16, 0xce, 0xdf, 0x27, 0xa6, 0xba, 0x95, 0xa4,
+};
+static const unsigned char kat3736_retbits[] = {
+ 0x8b, 0x5b, 0xbb, 0x02, 0x7d, 0x26, 0xd0, 0xa2, 0xe5, 0xc9, 0x79, 0x04,
+ 0x5e, 0x7b, 0x38, 0x27, 0xdb, 0xae, 0x3a, 0x36, 0xce, 0x15, 0x84, 0x43,
+ 0xe7, 0x43, 0x28, 0x37, 0x18, 0x7f, 0xe2, 0xb1, 0x4f, 0xde, 0xab, 0x24,
+ 0x71, 0xf1, 0x03, 0x70, 0x72, 0xdd, 0x52, 0x78, 0xd7, 0x64, 0x66, 0x81,
+ 0x22, 0x5a, 0xdc, 0x18, 0x8d, 0x3c, 0xc9, 0xbc, 0x22, 0xe8, 0xc3, 0xd2,
+ 0x73, 0x3c, 0xd0, 0x7f,
+};
+static const struct drbg_kat_pr_true kat3736_t = {
+ 0, kat3736_entropyin, kat3736_nonce, kat3736_persstr,
+ kat3736_entropyinpr1, kat3736_addinpr1, kat3736_entropyinpr2,
+ kat3736_addinpr2, kat3736_retbits
+};
+static const struct drbg_kat kat3736 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3736_t
+};
+
+static const unsigned char kat3737_entropyin[] = {
+ 0x18, 0x16, 0x68, 0x7a, 0x8f, 0x0e, 0x84, 0xd7, 0xcd, 0xd5, 0xb3, 0x1a,
+ 0x84, 0x64, 0x00, 0x2d, 0x30, 0x7c, 0xff, 0xaa, 0xdd, 0x3a, 0xab, 0x07,
+ 0x94, 0x92, 0xd0, 0x5a, 0xf3, 0x31, 0x25, 0x65,
+};
+static const unsigned char kat3737_nonce[] = {0};
+static const unsigned char kat3737_persstr[] = {0};
+static const unsigned char kat3737_entropyinpr1[] = {
+ 0xc5, 0x84, 0x89, 0x93, 0xe3, 0x95, 0x10, 0x47, 0x68, 0xf9, 0xa5, 0xac,
+ 0x90, 0xbc, 0x3f, 0x3d, 0xfa, 0x04, 0x92, 0x5f, 0xf4, 0xdc, 0x86, 0xfb,
+ 0x0f, 0xc4, 0x62, 0x56, 0x91, 0x2d, 0x29, 0x4d,
+};
+static const unsigned char kat3737_addinpr1[] = {
+ 0xe4, 0x6b, 0x69, 0xb4, 0x99, 0xbe, 0xf0, 0x51, 0x72, 0x4d, 0xa0, 0x8e,
+ 0x94, 0x2d, 0xdc, 0xf7, 0xeb, 0x42, 0xd2, 0xe6, 0x6d, 0x12, 0xd9, 0x54,
+ 0xda, 0x65, 0x62, 0x9f, 0x78, 0x38, 0x18, 0x13,
+};
+static const unsigned char kat3737_entropyinpr2[] = {
+ 0xca, 0x16, 0x5d, 0x20, 0xa6, 0x8e, 0x36, 0x1b, 0xe9, 0x85, 0x1f, 0x61,
+ 0x9d, 0xfc, 0xde, 0x9f, 0x7b, 0x38, 0xa3, 0xe9, 0x80, 0xaf, 0xa5, 0xb2,
+ 0xb7, 0xc3, 0xe2, 0xd1, 0xec, 0xa8, 0x16, 0x9a,
+};
+static const unsigned char kat3737_addinpr2[] = {
+ 0xea, 0x77, 0x65, 0x10, 0x18, 0xfc, 0x08, 0xae, 0xc2, 0x0e, 0x36, 0x77,
+ 0x7e, 0xf0, 0x28, 0x2a, 0x71, 0x3b, 0xc5, 0x6e, 0x08, 0x4e, 0xcf, 0x45,
+ 0xd9, 0x2e, 0xdb, 0x63, 0x5a, 0xb9, 0xce, 0xd0,
+};
+static const unsigned char kat3737_retbits[] = {
+ 0x9a, 0x2e, 0x7f, 0x4e, 0x32, 0x0a, 0xdc, 0x04, 0x87, 0xaa, 0x6d, 0x57,
+ 0x23, 0x0f, 0xfe, 0xdf, 0x74, 0x2b, 0xe5, 0xcc, 0xdd, 0xe6, 0xbc, 0xea,
+ 0xe6, 0xd5, 0x6b, 0x62, 0xdb, 0x34, 0x15, 0x61, 0x9f, 0x62, 0x4d, 0x08,
+ 0x79, 0x16, 0x93, 0x97, 0x0d, 0x08, 0x78, 0x8f, 0x3c, 0x6e, 0x7e, 0x33,
+ 0xef, 0xc4, 0x62, 0x80, 0xce, 0x40, 0x28, 0xe4, 0xe4, 0x5d, 0xc0, 0x69,
+ 0x0c, 0xe9, 0x9f, 0x00,
+};
+static const struct drbg_kat_pr_true kat3737_t = {
+ 1, kat3737_entropyin, kat3737_nonce, kat3737_persstr,
+ kat3737_entropyinpr1, kat3737_addinpr1, kat3737_entropyinpr2,
+ kat3737_addinpr2, kat3737_retbits
+};
+static const struct drbg_kat kat3737 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3737_t
+};
+
+static const unsigned char kat3738_entropyin[] = {
+ 0x00, 0xd7, 0x79, 0xe7, 0x4b, 0x81, 0xfc, 0x7a, 0xd2, 0x84, 0x67, 0xdc,
+ 0x5f, 0xf0, 0x52, 0x04, 0x26, 0x93, 0x09, 0x01, 0x79, 0x27, 0x5d, 0xbf,
+ 0x46, 0xc0, 0xe0, 0x96, 0x2e, 0x08, 0x13, 0x94,
+};
+static const unsigned char kat3738_nonce[] = {0};
+static const unsigned char kat3738_persstr[] = {0};
+static const unsigned char kat3738_entropyinpr1[] = {
+ 0x31, 0x91, 0x12, 0x38, 0xcf, 0xc7, 0x72, 0x81, 0x55, 0xb2, 0xcb, 0x7d,
+ 0xc8, 0xc9, 0x35, 0xff, 0x86, 0xa6, 0x38, 0x61, 0xf3, 0x34, 0xe7, 0x05,
+ 0x33, 0xd8, 0x83, 0x44, 0xc3, 0x4f, 0xe4, 0xb0,
+};
+static const unsigned char kat3738_addinpr1[] = {
+ 0x8f, 0xd1, 0xf4, 0x00, 0x02, 0xec, 0xf2, 0xb6, 0xde, 0xee, 0xeb, 0xcc,
+ 0x9d, 0x6f, 0x12, 0x01, 0x91, 0x86, 0xf9, 0xbf, 0x1a, 0x3e, 0xc3, 0xb8,
+ 0x04, 0x3a, 0x60, 0x92, 0xfc, 0xed, 0xd4, 0xd9,
+};
+static const unsigned char kat3738_entropyinpr2[] = {
+ 0xf6, 0x09, 0x20, 0xf2, 0x92, 0x2e, 0x33, 0xba, 0x8a, 0x6a, 0xcd, 0x4f,
+ 0x96, 0x43, 0x49, 0xc0, 0x55, 0xbd, 0xf2, 0x62, 0xdd, 0x8c, 0xf4, 0xb3,
+ 0x08, 0xf9, 0xa0, 0x04, 0x2f, 0x30, 0x0b, 0xa4,
+};
+static const unsigned char kat3738_addinpr2[] = {
+ 0x88, 0x56, 0x01, 0x48, 0x0f, 0x2b, 0x50, 0xa9, 0xcb, 0xc7, 0xc9, 0x38,
+ 0x41, 0x92, 0x55, 0x79, 0xd0, 0xe5, 0xa4, 0x0b, 0x81, 0xc1, 0xa4, 0xf1,
+ 0xef, 0xd0, 0x40, 0xe2, 0x1e, 0x65, 0x96, 0xb2,
+};
+static const unsigned char kat3738_retbits[] = {
+ 0xff, 0xf4, 0x9a, 0x04, 0x58, 0xf0, 0x64, 0x16, 0x1e, 0x37, 0xc5, 0x63,
+ 0x86, 0x1a, 0x91, 0xd0, 0xa4, 0x01, 0xc6, 0x8f, 0xd0, 0x33, 0x88, 0x30,
+ 0x1c, 0x22, 0x5f, 0x3c, 0x47, 0x81, 0x38, 0xdd, 0xa2, 0x1d, 0x5d, 0x7e,
+ 0x34, 0x85, 0xf5, 0x2a, 0xb2, 0xfe, 0x21, 0x6c, 0xeb, 0xe3, 0x08, 0x1f,
+ 0x65, 0x79, 0xe2, 0xef, 0x00, 0xb7, 0x47, 0xbc, 0xe3, 0x46, 0x67, 0xa6,
+ 0x7d, 0x47, 0xfc, 0x56,
+};
+static const struct drbg_kat_pr_true kat3738_t = {
+ 2, kat3738_entropyin, kat3738_nonce, kat3738_persstr,
+ kat3738_entropyinpr1, kat3738_addinpr1, kat3738_entropyinpr2,
+ kat3738_addinpr2, kat3738_retbits
+};
+static const struct drbg_kat kat3738 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3738_t
+};
+
+static const unsigned char kat3739_entropyin[] = {
+ 0x87, 0xe5, 0x92, 0x73, 0xb6, 0xcc, 0xc7, 0x0f, 0x7c, 0xa4, 0xa9, 0x51,
+ 0xa0, 0x0f, 0x4e, 0x07, 0x18, 0xfc, 0xc3, 0xfc, 0xe5, 0x9e, 0x11, 0x32,
+ 0x8f, 0x9e, 0x18, 0xaf, 0xb9, 0x04, 0x84, 0x04,
+};
+static const unsigned char kat3739_nonce[] = {0};
+static const unsigned char kat3739_persstr[] = {0};
+static const unsigned char kat3739_entropyinpr1[] = {
+ 0x35, 0x25, 0x39, 0x05, 0xf4, 0x5e, 0x67, 0x84, 0x31, 0xee, 0x2b, 0xc5,
+ 0x12, 0xdb, 0xe0, 0x9b, 0x55, 0x30, 0xf2, 0x03, 0xa6, 0xcb, 0xe9, 0x53,
+ 0xa8, 0xad, 0x22, 0xf4, 0xd5, 0xbb, 0x1e, 0x27,
+};
+static const unsigned char kat3739_addinpr1[] = {
+ 0x87, 0x70, 0x45, 0xd9, 0xfc, 0xbe, 0x3d, 0xa5, 0xec, 0x18, 0xa7, 0xcf,
+ 0x36, 0x05, 0x37, 0xd4, 0xd1, 0x5a, 0xd1, 0x15, 0xb2, 0xfd, 0x95, 0x61,
+ 0xb7, 0xc5, 0xe0, 0x02, 0xf0, 0xa4, 0x5a, 0x87,
+};
+static const unsigned char kat3739_entropyinpr2[] = {
+ 0x75, 0xb5, 0x47, 0x36, 0x43, 0x21, 0x57, 0x12, 0x40, 0x65, 0xeb, 0x26,
+ 0xd5, 0x8a, 0x54, 0xb5, 0x82, 0x1f, 0x2c, 0x7e, 0xe5, 0x69, 0xba, 0x29,
+ 0xa1, 0xd1, 0xff, 0x89, 0x35, 0x12, 0x64, 0x6c,
+};
+static const unsigned char kat3739_addinpr2[] = {
+ 0x8d, 0x2c, 0xed, 0x1c, 0xfe, 0x17, 0x3e, 0x7c, 0x99, 0xf1, 0x26, 0x49,
+ 0xa7, 0x56, 0xac, 0x71, 0x07, 0xee, 0xc6, 0x02, 0x61, 0xdc, 0x61, 0xc7,
+ 0xb1, 0xc2, 0x43, 0x8a, 0x22, 0x95, 0x7f, 0xa3,
+};
+static const unsigned char kat3739_retbits[] = {
+ 0x19, 0x24, 0xe2, 0xa5, 0x1b, 0x72, 0x95, 0x3b, 0xd2, 0xcf, 0x81, 0xbc,
+ 0xe2, 0x33, 0x46, 0x62, 0xf3, 0xfe, 0x3f, 0x3a, 0x1b, 0x0b, 0x24, 0xe0,
+ 0x72, 0xd0, 0xf4, 0x0f, 0xec, 0x42, 0x36, 0xd0, 0x8c, 0x8a, 0xb1, 0xaf,
+ 0xc0, 0xb2, 0xdf, 0x58, 0x17, 0x7a, 0xf2, 0x49, 0xe4, 0x5a, 0x19, 0x6e,
+ 0xe8, 0x1e, 0x71, 0x82, 0x9c, 0x97, 0xec, 0x1b, 0x5f, 0xe8, 0x56, 0x4e,
+ 0x25, 0x22, 0xb1, 0x41,
+};
+static const struct drbg_kat_pr_true kat3739_t = {
+ 3, kat3739_entropyin, kat3739_nonce, kat3739_persstr,
+ kat3739_entropyinpr1, kat3739_addinpr1, kat3739_entropyinpr2,
+ kat3739_addinpr2, kat3739_retbits
+};
+static const struct drbg_kat kat3739 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3739_t
+};
+
+static const unsigned char kat3740_entropyin[] = {
+ 0xfb, 0x80, 0x1e, 0x2e, 0x3d, 0x7a, 0x59, 0x42, 0xf8, 0x8a, 0x1a, 0xea,
+ 0x72, 0x68, 0x60, 0x88, 0x70, 0x4b, 0x28, 0x15, 0xf8, 0x65, 0xf9, 0xe1,
+ 0xb0, 0xcb, 0x41, 0xa3, 0x82, 0x6a, 0x59, 0x53,
+};
+static const unsigned char kat3740_nonce[] = {0};
+static const unsigned char kat3740_persstr[] = {0};
+static const unsigned char kat3740_entropyinpr1[] = {
+ 0xa7, 0xc4, 0x41, 0x12, 0x07, 0xde, 0x8c, 0xf4, 0xa8, 0x8f, 0x56, 0x25,
+ 0x55, 0x13, 0x45, 0xae, 0x3e, 0xfa, 0x57, 0x75, 0x53, 0xe0, 0xbd, 0x2b,
+ 0xac, 0xd0, 0x22, 0x38, 0x39, 0x5f, 0x1c, 0xec,
+};
+static const unsigned char kat3740_addinpr1[] = {
+ 0x49, 0xdf, 0xac, 0xc7, 0x50, 0x11, 0xac, 0xed, 0x1c, 0x8b, 0x44, 0x8a,
+ 0xb9, 0x83, 0x9d, 0xe3, 0xba, 0x63, 0xb8, 0xc1, 0xbc, 0x63, 0xc7, 0x65,
+ 0x50, 0xf5, 0x3f, 0x5e, 0xec, 0x02, 0x0c, 0xfb,
+};
+static const unsigned char kat3740_entropyinpr2[] = {
+ 0xfa, 0x2b, 0x7a, 0x7e, 0x68, 0xfb, 0xa3, 0x04, 0x89, 0x34, 0x1c, 0x23,
+ 0x7f, 0x71, 0x01, 0x69, 0xdf, 0xd4, 0xa4, 0x17, 0xe4, 0x74, 0xfc, 0x56,
+ 0xdf, 0x4e, 0xa2, 0xbb, 0x85, 0xca, 0x82, 0xee,
+};
+static const unsigned char kat3740_addinpr2[] = {
+ 0xa1, 0x61, 0x64, 0x9c, 0xf8, 0xcc, 0x5e, 0xef, 0x89, 0x37, 0x70, 0x0b,
+ 0xcc, 0x54, 0xe1, 0x5d, 0xe4, 0xf5, 0x6c, 0x15, 0x4c, 0x74, 0xea, 0x0c,
+ 0x1a, 0xee, 0x38, 0x0b, 0x6f, 0x75, 0x67, 0x8a,
+};
+static const unsigned char kat3740_retbits[] = {
+ 0xec, 0x59, 0x7d, 0xa7, 0x90, 0xf0, 0xb8, 0x0d, 0xaf, 0xb7, 0xc7, 0x69,
+ 0xe5, 0x66, 0xc3, 0xa6, 0xd3, 0x8b, 0x96, 0xbd, 0x2c, 0x72, 0x55, 0x9c,
+ 0x09, 0x1a, 0xe2, 0x3a, 0x47, 0x29, 0x67, 0xc6, 0x85, 0x12, 0xd4, 0x78,
+ 0x7b, 0xd8, 0x81, 0x2c, 0xdf, 0x82, 0xa7, 0x63, 0xb4, 0x9d, 0xc4, 0x7d,
+ 0x56, 0x2d, 0xf6, 0x3d, 0x8d, 0xef, 0x5b, 0xdc, 0xef, 0x92, 0x56, 0xc6,
+ 0x22, 0x73, 0xf0, 0xc6,
+};
+static const struct drbg_kat_pr_true kat3740_t = {
+ 4, kat3740_entropyin, kat3740_nonce, kat3740_persstr,
+ kat3740_entropyinpr1, kat3740_addinpr1, kat3740_entropyinpr2,
+ kat3740_addinpr2, kat3740_retbits
+};
+static const struct drbg_kat kat3740 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3740_t
+};
+
+static const unsigned char kat3741_entropyin[] = {
+ 0xb9, 0x0d, 0xb3, 0x40, 0xae, 0x9b, 0xf1, 0x2a, 0xd0, 0x26, 0x84, 0x7d,
+ 0x0e, 0x1f, 0x39, 0x9d, 0x11, 0x1e, 0xa1, 0x83, 0xeb, 0xa7, 0x08, 0x27,
+ 0xcb, 0x74, 0x93, 0xc5, 0x16, 0x0b, 0xdc, 0x7e,
+};
+static const unsigned char kat3741_nonce[] = {0};
+static const unsigned char kat3741_persstr[] = {0};
+static const unsigned char kat3741_entropyinpr1[] = {
+ 0xc9, 0x73, 0x48, 0xff, 0x9d, 0x0b, 0x8e, 0x75, 0xbc, 0xea, 0xf6, 0x08,
+ 0xaa, 0x9a, 0x0d, 0xd7, 0x10, 0xa8, 0x18, 0x3e, 0x6f, 0x64, 0x17, 0x0d,
+ 0xc0, 0xf3, 0x22, 0x2a, 0x38, 0x49, 0x17, 0xb3,
+};
+static const unsigned char kat3741_addinpr1[] = {
+ 0x30, 0xe9, 0xbc, 0x3c, 0x71, 0x25, 0xd8, 0xa7, 0x05, 0x5d, 0x4f, 0xfc,
+ 0x09, 0x66, 0x04, 0x3f, 0xa8, 0x98, 0xdc, 0xef, 0x35, 0xb1, 0x6a, 0x33,
+ 0xbc, 0x68, 0xa2, 0x29, 0xb2, 0x9c, 0x94, 0x3a,
+};
+static const unsigned char kat3741_entropyinpr2[] = {
+ 0x22, 0x27, 0xb6, 0x57, 0x4c, 0x9b, 0x8a, 0x06, 0x1d, 0x73, 0x06, 0xcc,
+ 0xe1, 0xf6, 0xac, 0x26, 0x37, 0x6c, 0x9a, 0x6e, 0x20, 0xc8, 0x8d, 0x33,
+ 0x38, 0x7c, 0x6e, 0x69, 0x20, 0x71, 0xad, 0xe3,
+};
+static const unsigned char kat3741_addinpr2[] = {
+ 0x1f, 0x4e, 0x51, 0x14, 0xa1, 0xa7, 0x9b, 0xb5, 0x1c, 0xc1, 0xd5, 0x8a,
+ 0x71, 0x4c, 0x2b, 0xa8, 0x0b, 0x59, 0xad, 0xcc, 0x15, 0x00, 0xf7, 0x8c,
+ 0x06, 0x27, 0x94, 0x2b, 0xfd, 0x70, 0x63, 0xdd,
+};
+static const unsigned char kat3741_retbits[] = {
+ 0x02, 0xdc, 0x40, 0xc5, 0x39, 0x22, 0x8f, 0xcd, 0xa7, 0xb0, 0x56, 0xd6,
+ 0x5a, 0x4e, 0x91, 0x84, 0xac, 0x2c, 0x58, 0x2b, 0x08, 0x32, 0x19, 0x9a,
+ 0xaa, 0x34, 0x60, 0x0b, 0x3c, 0xff, 0xc8, 0x75, 0x95, 0xca, 0x77, 0x33,
+ 0x9c, 0x5b, 0x54, 0xf8, 0x64, 0x12, 0x98, 0x13, 0x74, 0xcf, 0x44, 0x68,
+ 0x31, 0x8b, 0x08, 0x1a, 0x87, 0x3b, 0xdb, 0x31, 0x67, 0xad, 0x72, 0x14,
+ 0xbf, 0x09, 0xa8, 0xab,
+};
+static const struct drbg_kat_pr_true kat3741_t = {
+ 5, kat3741_entropyin, kat3741_nonce, kat3741_persstr,
+ kat3741_entropyinpr1, kat3741_addinpr1, kat3741_entropyinpr2,
+ kat3741_addinpr2, kat3741_retbits
+};
+static const struct drbg_kat kat3741 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3741_t
+};
+
+static const unsigned char kat3742_entropyin[] = {
+ 0xac, 0x80, 0x4a, 0x99, 0xb7, 0x1d, 0x9b, 0x51, 0x0c, 0x21, 0xdb, 0x7a,
+ 0x38, 0x1c, 0x1d, 0xee, 0xbe, 0x8b, 0x80, 0xb0, 0x3e, 0xd8, 0x10, 0xac,
+ 0x05, 0x50, 0x06, 0x55, 0x8e, 0x00, 0x57, 0xbc,
+};
+static const unsigned char kat3742_nonce[] = {0};
+static const unsigned char kat3742_persstr[] = {0};
+static const unsigned char kat3742_entropyinpr1[] = {
+ 0xac, 0x31, 0xc0, 0xf2, 0xf0, 0xbf, 0xbd, 0xa0, 0xcd, 0xe0, 0x2b, 0x0d,
+ 0x6c, 0xd4, 0xd3, 0xaf, 0xf5, 0x32, 0x5d, 0x39, 0x30, 0xce, 0x07, 0x25,
+ 0x03, 0x2f, 0x1d, 0xb3, 0x36, 0xdb, 0x8d, 0xa4,
+};
+static const unsigned char kat3742_addinpr1[] = {
+ 0xdf, 0x9f, 0xcf, 0xe9, 0xba, 0xfe, 0xe5, 0x59, 0x5a, 0x4b, 0x6d, 0x44,
+ 0x9c, 0x2a, 0x04, 0x2b, 0x2e, 0x73, 0x71, 0x46, 0x5a, 0x74, 0x99, 0x7c,
+ 0x3c, 0x63, 0x06, 0xdb, 0xf2, 0xf5, 0x90, 0x8a,
+};
+static const unsigned char kat3742_entropyinpr2[] = {
+ 0x73, 0xce, 0x5f, 0x31, 0xb0, 0x2f, 0x84, 0x3f, 0x19, 0x35, 0x3d, 0xcc,
+ 0xcf, 0x48, 0x50, 0xd9, 0xc9, 0x10, 0x64, 0x31, 0x0a, 0xf9, 0xd9, 0x8b,
+ 0x74, 0x45, 0x65, 0x15, 0xd9, 0x51, 0x14, 0xc6,
+};
+static const unsigned char kat3742_addinpr2[] = {
+ 0x61, 0x8f, 0x5b, 0x1a, 0xdd, 0x2e, 0x19, 0xf0, 0xe7, 0x84, 0xe7, 0xde,
+ 0x1a, 0x59, 0x1a, 0x64, 0xa8, 0x90, 0xf7, 0x93, 0x7f, 0xbc, 0xb7, 0x09,
+ 0x86, 0x2d, 0x28, 0xdc, 0xec, 0x46, 0x7c, 0x13,
+};
+static const unsigned char kat3742_retbits[] = {
+ 0x4d, 0x91, 0x99, 0xb0, 0x9e, 0xde, 0xfd, 0xcc, 0xdd, 0x5b, 0x49, 0x41,
+ 0xad, 0x51, 0x9f, 0xb0, 0x0e, 0x90, 0x2d, 0xa8, 0x75, 0x8b, 0xa2, 0x24,
+ 0xa2, 0x22, 0xf9, 0xc8, 0xb2, 0x99, 0xe8, 0xd5, 0x39, 0x2c, 0xa9, 0x6b,
+ 0x70, 0xc6, 0xb0, 0x47, 0x3b, 0x7c, 0x93, 0xd7, 0x34, 0xfd, 0x5d, 0x2c,
+ 0x5d, 0x4b, 0x1a, 0xa3, 0x66, 0xf8, 0x98, 0x4a, 0x01, 0x70, 0x6a, 0x8b,
+ 0x78, 0xeb, 0x29, 0x58,
+};
+static const struct drbg_kat_pr_true kat3742_t = {
+ 6, kat3742_entropyin, kat3742_nonce, kat3742_persstr,
+ kat3742_entropyinpr1, kat3742_addinpr1, kat3742_entropyinpr2,
+ kat3742_addinpr2, kat3742_retbits
+};
+static const struct drbg_kat kat3742 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3742_t
+};
+
+static const unsigned char kat3743_entropyin[] = {
+ 0x93, 0x5b, 0xc8, 0xd2, 0x37, 0xa4, 0x49, 0xfb, 0x53, 0x07, 0x95, 0x95,
+ 0x3b, 0x60, 0xb7, 0x3e, 0x15, 0xfe, 0xca, 0xee, 0x85, 0xbd, 0xa0, 0x53,
+ 0xce, 0x23, 0xa2, 0x3b, 0x46, 0xdd, 0x01, 0xa2,
+};
+static const unsigned char kat3743_nonce[] = {0};
+static const unsigned char kat3743_persstr[] = {0};
+static const unsigned char kat3743_entropyinpr1[] = {
+ 0x97, 0x1c, 0x09, 0x9e, 0x6b, 0x8a, 0xd9, 0x54, 0x47, 0xa0, 0x3a, 0xb3,
+ 0xf0, 0x4d, 0xb8, 0x93, 0x2c, 0x58, 0xca, 0xbb, 0xf3, 0x8f, 0x5d, 0x25,
+ 0x57, 0xdb, 0x7a, 0x7b, 0x6a, 0x82, 0x64, 0xf4,
+};
+static const unsigned char kat3743_addinpr1[] = {
+ 0xba, 0xc7, 0xdb, 0x39, 0xcf, 0x77, 0x3e, 0xda, 0x0b, 0xd9, 0xc9, 0x97,
+ 0x89, 0x08, 0xa1, 0x5d, 0x09, 0x0c, 0xac, 0xc2, 0xdd, 0x85, 0xc1, 0x35,
+ 0x76, 0xe1, 0x79, 0xa7, 0x99, 0xc8, 0x38, 0xa0,
+};
+static const unsigned char kat3743_entropyinpr2[] = {
+ 0x8d, 0xd9, 0x97, 0x47, 0x86, 0xb2, 0x92, 0x04, 0xcf, 0x08, 0xc0, 0x72,
+ 0x6c, 0x66, 0x08, 0xb2, 0x2e, 0xab, 0xff, 0xa6, 0x92, 0xb8, 0x76, 0x2e,
+ 0x4c, 0x67, 0xc2, 0x83, 0xf5, 0x62, 0x0a, 0xdf,
+};
+static const unsigned char kat3743_addinpr2[] = {
+ 0x58, 0xe3, 0x50, 0x5b, 0x2e, 0x61, 0x93, 0x95, 0xe0, 0xb7, 0x06, 0x22,
+ 0x5e, 0xad, 0x4e, 0xe3, 0xb0, 0x2f, 0x92, 0xfa, 0x48, 0xc6, 0xec, 0x3e,
+ 0x7d, 0xe3, 0x85, 0x50, 0x57, 0x3c, 0x0a, 0x6a,
+};
+static const unsigned char kat3743_retbits[] = {
+ 0x76, 0xc7, 0xf8, 0xe1, 0x21, 0xbc, 0xf7, 0xa3, 0x11, 0x70, 0x59, 0xaa,
+ 0x91, 0x7f, 0x31, 0xc6, 0xea, 0xf6, 0x38, 0x48, 0x44, 0xff, 0x15, 0x3f,
+ 0xbe, 0x25, 0xd2, 0x90, 0x8c, 0xbb, 0x4a, 0x26, 0xbd, 0xed, 0x67, 0xb3,
+ 0xd0, 0x1e, 0xc2, 0xd9, 0x9f, 0x71, 0x43, 0x52, 0xb7, 0x30, 0x11, 0x54,
+ 0x22, 0xdc, 0xd5, 0x13, 0x52, 0x16, 0xdb, 0x01, 0xab, 0x55, 0x56, 0x09,
+ 0x2a, 0x7b, 0xb7, 0xaa,
+};
+static const struct drbg_kat_pr_true kat3743_t = {
+ 7, kat3743_entropyin, kat3743_nonce, kat3743_persstr,
+ kat3743_entropyinpr1, kat3743_addinpr1, kat3743_entropyinpr2,
+ kat3743_addinpr2, kat3743_retbits
+};
+static const struct drbg_kat kat3743 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3743_t
+};
+
+static const unsigned char kat3744_entropyin[] = {
+ 0x24, 0x8d, 0xd8, 0x15, 0xfe, 0xa4, 0x35, 0x1d, 0x9b, 0x62, 0xc7, 0x1d,
+ 0x76, 0xb2, 0x9a, 0xb7, 0xab, 0xbb, 0xa7, 0x6f, 0xa3, 0x0e, 0x7f, 0xfd,
+ 0x7b, 0xcb, 0xdd, 0x36, 0xf7, 0x36, 0x4f, 0xf2,
+};
+static const unsigned char kat3744_nonce[] = {0};
+static const unsigned char kat3744_persstr[] = {0};
+static const unsigned char kat3744_entropyinpr1[] = {
+ 0xb8, 0xd8, 0x13, 0xda, 0x52, 0x4e, 0x5f, 0xc5, 0xcd, 0x25, 0x8e, 0x26,
+ 0x29, 0x62, 0x07, 0x2c, 0x13, 0xfd, 0x2b, 0xb8, 0xd4, 0x87, 0xf8, 0x43,
+ 0xf0, 0xe3, 0x0e, 0x56, 0x95, 0x53, 0xae, 0x41,
+};
+static const unsigned char kat3744_addinpr1[] = {
+ 0x91, 0x6b, 0x0d, 0x6a, 0x03, 0x64, 0x87, 0x04, 0x4c, 0xba, 0x6c, 0x20,
+ 0x9e, 0x8b, 0xd4, 0x30, 0xbe, 0x0f, 0xde, 0x46, 0x24, 0x2a, 0xd6, 0x69,
+ 0x81, 0xd2, 0xc8, 0x35, 0x14, 0xb7, 0xb0, 0x3b,
+};
+static const unsigned char kat3744_entropyinpr2[] = {
+ 0x28, 0xcc, 0x54, 0xba, 0x21, 0x8b, 0x44, 0xd0, 0x82, 0x72, 0xdb, 0x5f,
+ 0x5b, 0x2d, 0x72, 0xf8, 0xf6, 0x32, 0x18, 0x9a, 0xec, 0x0a, 0x0a, 0x80,
+ 0xc7, 0x92, 0xd2, 0xc1, 0xff, 0x44, 0x41, 0x55,
+};
+static const unsigned char kat3744_addinpr2[] = {
+ 0xb6, 0xea, 0x49, 0x48, 0x82, 0x4e, 0x7c, 0xdb, 0xa9, 0x99, 0x5d, 0x42,
+ 0x29, 0x08, 0x1c, 0x94, 0xde, 0xbc, 0xb1, 0x9b, 0x0e, 0x07, 0xcb, 0x72,
+ 0xd8, 0x38, 0x85, 0xf6, 0xad, 0x7a, 0x1e, 0xba,
+};
+static const unsigned char kat3744_retbits[] = {
+ 0x2b, 0xe3, 0x58, 0xc9, 0x8c, 0xdb, 0x5b, 0xd6, 0x0c, 0x17, 0x29, 0x81,
+ 0x57, 0x63, 0x37, 0x6f, 0xa4, 0xc6, 0x73, 0x3d, 0xdd, 0xf1, 0xb6, 0x18,
+ 0xbf, 0x64, 0xac, 0xf3, 0x1e, 0xec, 0x8d, 0x18, 0x01, 0x55, 0x36, 0xf3,
+ 0x35, 0x77, 0x7e, 0x92, 0xd9, 0x20, 0x0e, 0x3c, 0xb8, 0xf0, 0x7c, 0x96,
+ 0x3b, 0x76, 0x88, 0xff, 0x0f, 0x38, 0xdf, 0x15, 0xc4, 0x0f, 0x4b, 0xa8,
+ 0xa2, 0x86, 0x75, 0xb9,
+};
+static const struct drbg_kat_pr_true kat3744_t = {
+ 8, kat3744_entropyin, kat3744_nonce, kat3744_persstr,
+ kat3744_entropyinpr1, kat3744_addinpr1, kat3744_entropyinpr2,
+ kat3744_addinpr2, kat3744_retbits
+};
+static const struct drbg_kat kat3744 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3744_t
+};
+
+static const unsigned char kat3745_entropyin[] = {
+ 0x71, 0x52, 0xfd, 0xb8, 0xc0, 0x09, 0x09, 0xd6, 0x64, 0x9c, 0xb4, 0x3a,
+ 0xfb, 0x2b, 0x51, 0xbe, 0xd3, 0x5c, 0x9a, 0xc6, 0x5f, 0x0d, 0xba, 0xe0,
+ 0xca, 0x5a, 0x97, 0xed, 0x3d, 0x2f, 0x5b, 0xa6,
+};
+static const unsigned char kat3745_nonce[] = {0};
+static const unsigned char kat3745_persstr[] = {0};
+static const unsigned char kat3745_entropyinpr1[] = {
+ 0x9e, 0xdd, 0x0d, 0x56, 0xfb, 0xd0, 0xfa, 0xb4, 0x5c, 0xbf, 0x4c, 0x5a,
+ 0xb1, 0xb2, 0xdb, 0x30, 0x93, 0xff, 0x90, 0x48, 0x41, 0x21, 0x8c, 0xf7,
+ 0x48, 0x0d, 0x7c, 0xc7, 0x3d, 0x59, 0xd3, 0xce,
+};
+static const unsigned char kat3745_addinpr1[] = {
+ 0x58, 0xab, 0xb0, 0x9d, 0xf5, 0x5e, 0xb0, 0x73, 0x48, 0x94, 0x40, 0x11,
+ 0x1d, 0xbe, 0x3d, 0xd3, 0x62, 0x8b, 0xac, 0x4a, 0xbe, 0x37, 0x9c, 0x4e,
+ 0x20, 0xbf, 0x6e, 0xe7, 0x12, 0xb3, 0xe4, 0xb4,
+};
+static const unsigned char kat3745_entropyinpr2[] = {
+ 0xc4, 0xaf, 0x36, 0x3b, 0x91, 0x1c, 0xce, 0xc1, 0xd3, 0xbb, 0x27, 0xe2,
+ 0x4d, 0x83, 0x6e, 0xe5, 0xfc, 0x9b, 0xc9, 0xeb, 0x43, 0x62, 0xfe, 0x0b,
+ 0x73, 0x82, 0x35, 0x23, 0x24, 0xb3, 0xff, 0x3b,
+};
+static const unsigned char kat3745_addinpr2[] = {
+ 0xed, 0xd5, 0xd4, 0x46, 0x13, 0xd6, 0x36, 0xd1, 0x77, 0xe5, 0x79, 0x03,
+ 0xbb, 0xf8, 0xdc, 0x95, 0xa5, 0x28, 0xed, 0x2b, 0x01, 0xdc, 0xb4, 0xe7,
+ 0xd7, 0xb3, 0xf2, 0x57, 0xe3, 0xcb, 0x25, 0x9f,
+};
+static const unsigned char kat3745_retbits[] = {
+ 0xe6, 0xf8, 0x28, 0x7a, 0x4d, 0x87, 0x1c, 0x8a, 0x6e, 0x11, 0xfb, 0x33,
+ 0xa2, 0x3d, 0x83, 0x8f, 0xe3, 0x7f, 0x42, 0xd2, 0xcb, 0xb4, 0x67, 0xd4,
+ 0x2a, 0x45, 0x9f, 0xf7, 0x2f, 0xdb, 0x59, 0xd1, 0xb7, 0xd7, 0xa5, 0xf9,
+ 0x07, 0x94, 0xac, 0x2a, 0x5e, 0x05, 0x6a, 0x20, 0x14, 0x39, 0x03, 0xc0,
+ 0xf2, 0x79, 0x01, 0xdf, 0x2d, 0xe8, 0x38, 0xe3, 0x42, 0xfd, 0xb4, 0x37,
+ 0x6a, 0x2c, 0xac, 0x92,
+};
+static const struct drbg_kat_pr_true kat3745_t = {
+ 9, kat3745_entropyin, kat3745_nonce, kat3745_persstr,
+ kat3745_entropyinpr1, kat3745_addinpr1, kat3745_entropyinpr2,
+ kat3745_addinpr2, kat3745_retbits
+};
+static const struct drbg_kat kat3745 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3745_t
+};
+
+static const unsigned char kat3746_entropyin[] = {
+ 0x67, 0x63, 0xfc, 0x2f, 0x32, 0x07, 0xef, 0x59, 0x4b, 0xbe, 0xfe, 0x03,
+ 0x97, 0x3f, 0xe1, 0x21, 0x1e, 0x39, 0x62, 0x97, 0x0a, 0xbb, 0xcf, 0xc1,
+ 0x1e, 0x6d, 0xb3, 0x46, 0x52, 0x93, 0x02, 0xde,
+};
+static const unsigned char kat3746_nonce[] = {0};
+static const unsigned char kat3746_persstr[] = {0};
+static const unsigned char kat3746_entropyinpr1[] = {
+ 0x4d, 0xff, 0x73, 0x69, 0x95, 0xf8, 0x61, 0x4c, 0xd1, 0x9f, 0x45, 0x6d,
+ 0x84, 0x2e, 0x78, 0x48, 0x35, 0x65, 0xaa, 0x78, 0xe7, 0xc6, 0x54, 0x7d,
+ 0x92, 0x60, 0xea, 0xc2, 0x9a, 0xa1, 0xb7, 0x83,
+};
+static const unsigned char kat3746_addinpr1[] = {
+ 0x70, 0x99, 0x24, 0xf6, 0x23, 0x33, 0x03, 0xb8, 0x21, 0xb7, 0x25, 0xc7,
+ 0x3e, 0x78, 0xa1, 0x61, 0x02, 0xe0, 0x1b, 0xcc, 0xcd, 0xb4, 0xb1, 0xfa,
+ 0x4d, 0x18, 0x90, 0x8e, 0xc7, 0x65, 0xa3, 0x19,
+};
+static const unsigned char kat3746_entropyinpr2[] = {
+ 0xe9, 0x80, 0xfd, 0xe4, 0x7c, 0x99, 0xf9, 0x1b, 0xd5, 0x56, 0xc1, 0x48,
+ 0xd6, 0x8d, 0x87, 0xd8, 0xd6, 0x69, 0x6f, 0xbf, 0x44, 0xf7, 0x38, 0xbd,
+ 0x64, 0xaa, 0xbe, 0x65, 0x4e, 0x39, 0xc3, 0x63,
+};
+static const unsigned char kat3746_addinpr2[] = {
+ 0x28, 0xea, 0x79, 0xbe, 0xcd, 0x7a, 0xa6, 0xa0, 0x8e, 0xe7, 0x39, 0x43,
+ 0xa8, 0x6f, 0x0b, 0x1d, 0xaf, 0x8e, 0x20, 0x3f, 0x26, 0xbb, 0x31, 0x2e,
+ 0x13, 0x55, 0xc4, 0x39, 0xbc, 0x47, 0x10, 0xe8,
+};
+static const unsigned char kat3746_retbits[] = {
+ 0xad, 0x43, 0x47, 0xc4, 0x75, 0xed, 0xc9, 0x5b, 0x8c, 0x3a, 0xca, 0xda,
+ 0x36, 0x5c, 0x0e, 0xaa, 0xab, 0xf1, 0xf6, 0x34, 0xdb, 0x74, 0xaa, 0xc1,
+ 0xe6, 0xdf, 0x47, 0x5d, 0xdf, 0x21, 0x66, 0xb5, 0xcd, 0x58, 0x2e, 0x33,
+ 0x88, 0x90, 0x86, 0x12, 0x43, 0x31, 0x3a, 0x8c, 0xce, 0xa5, 0xa8, 0x63,
+ 0x31, 0x06, 0x38, 0x0c, 0xe8, 0x35, 0x81, 0xcc, 0x30, 0xf8, 0xd6, 0x1f,
+ 0xbf, 0xa7, 0x8e, 0x04,
+};
+static const struct drbg_kat_pr_true kat3746_t = {
+ 10, kat3746_entropyin, kat3746_nonce, kat3746_persstr,
+ kat3746_entropyinpr1, kat3746_addinpr1, kat3746_entropyinpr2,
+ kat3746_addinpr2, kat3746_retbits
+};
+static const struct drbg_kat kat3746 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3746_t
+};
+
+static const unsigned char kat3747_entropyin[] = {
+ 0xa2, 0xdf, 0x34, 0xb1, 0x03, 0xb9, 0x54, 0xe5, 0x98, 0xed, 0xf3, 0xd6,
+ 0x54, 0x3e, 0x08, 0x43, 0x7c, 0x44, 0x18, 0x75, 0x32, 0x62, 0x22, 0xc1,
+ 0x22, 0xf5, 0xb0, 0x0c, 0xce, 0xf9, 0x4c, 0x67,
+};
+static const unsigned char kat3747_nonce[] = {0};
+static const unsigned char kat3747_persstr[] = {0};
+static const unsigned char kat3747_entropyinpr1[] = {
+ 0xf9, 0xb3, 0xba, 0x76, 0xd3, 0x7a, 0x84, 0x6c, 0x0f, 0x28, 0xa9, 0x9a,
+ 0x57, 0x41, 0xa6, 0x6e, 0x3d, 0x0f, 0xaf, 0xe0, 0x71, 0x44, 0x0c, 0xa5,
+ 0xa6, 0x3e, 0x91, 0x13, 0xef, 0x4f, 0xf3, 0x78,
+};
+static const unsigned char kat3747_addinpr1[] = {
+ 0x8a, 0x7a, 0xd8, 0xf1, 0x6d, 0x7e, 0x75, 0xa2, 0x85, 0xc0, 0x39, 0x85,
+ 0x7d, 0xcc, 0x1d, 0xd5, 0x9b, 0xb8, 0x51, 0xcb, 0x19, 0x46, 0xc7, 0xe5,
+ 0xb3, 0x38, 0xd0, 0x29, 0x2b, 0xa4, 0x83, 0x4e,
+};
+static const unsigned char kat3747_entropyinpr2[] = {
+ 0xa5, 0x95, 0x78, 0xd4, 0x2d, 0xb9, 0xfe, 0x98, 0x57, 0x59, 0x02, 0x6b,
+ 0xc2, 0xc2, 0x8a, 0xc2, 0xb3, 0x4c, 0xd5, 0xd3, 0xff, 0xc7, 0x36, 0x7f,
+ 0x46, 0x90, 0x1e, 0x3f, 0x0b, 0x30, 0xb9, 0x57,
+};
+static const unsigned char kat3747_addinpr2[] = {
+ 0x10, 0x9d, 0x7e, 0x9a, 0x0c, 0xcc, 0xe5, 0x27, 0x26, 0x1a, 0xdb, 0xd0,
+ 0x22, 0x54, 0x42, 0x4e, 0x2c, 0x24, 0x5a, 0x02, 0xcf, 0xd3, 0x74, 0x41,
+ 0x36, 0x95, 0x6a, 0x90, 0x99, 0xde, 0x45, 0xd4,
+};
+static const unsigned char kat3747_retbits[] = {
+ 0xe5, 0x54, 0x12, 0x35, 0x61, 0x49, 0x31, 0x69, 0x3d, 0xf7, 0x02, 0x77,
+ 0x8b, 0x6f, 0xb1, 0x7c, 0xac, 0x14, 0x17, 0xca, 0xa3, 0x12, 0xe8, 0x0e,
+ 0x52, 0xb6, 0x59, 0x5d, 0x4e, 0x22, 0xdf, 0x27, 0x99, 0xfa, 0x01, 0xcd,
+ 0xb3, 0xca, 0x33, 0x95, 0x9e, 0x20, 0xbb, 0xf0, 0xce, 0xab, 0x1f, 0x83,
+ 0x09, 0x68, 0x46, 0xdb, 0x12, 0x4d, 0xf1, 0x5a, 0x94, 0xd0, 0xe7, 0x10,
+ 0x04, 0x5e, 0x63, 0xb2,
+};
+static const struct drbg_kat_pr_true kat3747_t = {
+ 11, kat3747_entropyin, kat3747_nonce, kat3747_persstr,
+ kat3747_entropyinpr1, kat3747_addinpr1, kat3747_entropyinpr2,
+ kat3747_addinpr2, kat3747_retbits
+};
+static const struct drbg_kat kat3747 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3747_t
+};
+
+static const unsigned char kat3748_entropyin[] = {
+ 0xe4, 0x00, 0xd7, 0xd2, 0xae, 0x3d, 0xf9, 0x9e, 0x01, 0x58, 0x2a, 0xe6,
+ 0xe2, 0x7f, 0xd5, 0x4d, 0xa4, 0x94, 0x3a, 0x44, 0x21, 0xcf, 0x3c, 0x15,
+ 0x52, 0x82, 0x5e, 0x7a, 0x20, 0xec, 0x01, 0x3b,
+};
+static const unsigned char kat3748_nonce[] = {0};
+static const unsigned char kat3748_persstr[] = {0};
+static const unsigned char kat3748_entropyinpr1[] = {
+ 0xea, 0x18, 0x15, 0x2b, 0xd3, 0x23, 0xad, 0x9c, 0xd9, 0x37, 0xae, 0xe5,
+ 0x47, 0x22, 0x53, 0x99, 0x1f, 0x28, 0x68, 0x11, 0x45, 0x19, 0x9d, 0x91,
+ 0x62, 0xe0, 0x88, 0x01, 0xac, 0xcd, 0x7a, 0xe7,
+};
+static const unsigned char kat3748_addinpr1[] = {
+ 0x84, 0x2e, 0xe4, 0x8e, 0x18, 0x98, 0x3a, 0x99, 0x92, 0x6f, 0xfe, 0xd2,
+ 0x26, 0xdf, 0x6d, 0xd8, 0x89, 0x88, 0x7a, 0x9e, 0xa6, 0x6e, 0x5f, 0xce,
+ 0x11, 0x11, 0xd7, 0xdd, 0x40, 0xe0, 0x56, 0xc8,
+};
+static const unsigned char kat3748_entropyinpr2[] = {
+ 0xb6, 0x5c, 0x20, 0x70, 0x9f, 0x49, 0xdb, 0x10, 0xb6, 0x56, 0x38, 0xce,
+ 0xc8, 0x74, 0x22, 0x76, 0x7c, 0x66, 0x4a, 0x5f, 0x27, 0x99, 0xe0, 0x90,
+ 0x22, 0x3f, 0x2e, 0x59, 0x51, 0x68, 0x92, 0x64,
+};
+static const unsigned char kat3748_addinpr2[] = {
+ 0x6a, 0xe9, 0xda, 0x1e, 0xea, 0x95, 0x57, 0xa2, 0x84, 0x25, 0x97, 0x47,
+ 0x95, 0xf9, 0xf4, 0xda, 0x83, 0x0e, 0x19, 0x56, 0xd7, 0xa1, 0x4e, 0x1d,
+ 0x1a, 0x48, 0xaa, 0x67, 0x4b, 0xca, 0x56, 0x22,
+};
+static const unsigned char kat3748_retbits[] = {
+ 0x38, 0xd0, 0x73, 0xdc, 0x26, 0x7c, 0x3f, 0x2f, 0xfa, 0xe7, 0x46, 0x20,
+ 0x6b, 0x39, 0x2c, 0xfa, 0x4a, 0xa6, 0xfb, 0x99, 0xd3, 0xcd, 0xf5, 0x10,
+ 0xf6, 0xb3, 0x4f, 0x26, 0xb1, 0x92, 0xf6, 0x78, 0xd8, 0xd7, 0x98, 0xc8,
+ 0x43, 0xa1, 0x53, 0xd3, 0x6f, 0x1f, 0x85, 0x30, 0x9f, 0x0b, 0xf2, 0xbc,
+ 0x5e, 0xe6, 0x6e, 0xe9, 0xc5, 0xdd, 0xc9, 0xdc, 0x33, 0x45, 0xe7, 0x24,
+ 0x0d, 0x7f, 0x8d, 0x7c,
+};
+static const struct drbg_kat_pr_true kat3748_t = {
+ 12, kat3748_entropyin, kat3748_nonce, kat3748_persstr,
+ kat3748_entropyinpr1, kat3748_addinpr1, kat3748_entropyinpr2,
+ kat3748_addinpr2, kat3748_retbits
+};
+static const struct drbg_kat kat3748 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3748_t
+};
+
+static const unsigned char kat3749_entropyin[] = {
+ 0xcc, 0x62, 0x67, 0xa1, 0x56, 0x5d, 0x63, 0x8f, 0xa5, 0x64, 0x14, 0xfc,
+ 0xa8, 0xc4, 0x84, 0xcd, 0xea, 0x12, 0xaa, 0xc7, 0x40, 0x0d, 0xd0, 0xa1,
+ 0x5c, 0x25, 0xdd, 0x6d, 0xff, 0x2b, 0xb0, 0x0d,
+};
+static const unsigned char kat3749_nonce[] = {0};
+static const unsigned char kat3749_persstr[] = {0};
+static const unsigned char kat3749_entropyinpr1[] = {
+ 0xdc, 0x02, 0x80, 0x17, 0x56, 0x7e, 0xde, 0x34, 0xc7, 0x4e, 0x10, 0x4d,
+ 0xed, 0x71, 0xb4, 0x59, 0x69, 0x13, 0x5f, 0x48, 0x71, 0x51, 0x33, 0xfa,
+ 0x35, 0x0b, 0xdd, 0x83, 0x9e, 0x3f, 0x11, 0x98,
+};
+static const unsigned char kat3749_addinpr1[] = {
+ 0x05, 0x16, 0xcb, 0xa5, 0x81, 0x08, 0x7f, 0x7f, 0x36, 0xa8, 0xb4, 0x39,
+ 0xb8, 0xc6, 0xf5, 0xf8, 0x6e, 0xa2, 0xcc, 0x53, 0x48, 0xe6, 0x8b, 0x2e,
+ 0x3f, 0x13, 0xaa, 0x8c, 0x2a, 0xe8, 0xcc, 0xb0,
+};
+static const unsigned char kat3749_entropyinpr2[] = {
+ 0x12, 0xc9, 0x47, 0x53, 0xd3, 0xb5, 0xda, 0x74, 0xd0, 0xbe, 0xd6, 0xe5,
+ 0x8d, 0x07, 0x3b, 0xb7, 0xc2, 0xac, 0x68, 0xbe, 0x69, 0xb7, 0x7d, 0x03,
+ 0x87, 0x88, 0xd1, 0x1b, 0x2e, 0x23, 0x19, 0x6c,
+};
+static const unsigned char kat3749_addinpr2[] = {
+ 0x3c, 0xe2, 0x6f, 0xcf, 0x5e, 0xba, 0x70, 0x30, 0x4d, 0x49, 0x10, 0x30,
+ 0xe9, 0xb5, 0xfd, 0xbc, 0xf2, 0x23, 0x00, 0x9e, 0x02, 0xc4, 0x46, 0x03,
+ 0xc6, 0xd3, 0x22, 0xb0, 0x0d, 0xc5, 0x1b, 0xfe,
+};
+static const unsigned char kat3749_retbits[] = {
+ 0x28, 0xae, 0x84, 0x30, 0x01, 0x30, 0x76, 0x0b, 0x86, 0x3b, 0x76, 0xa6,
+ 0x73, 0x76, 0x52, 0x5c, 0x4e, 0xc0, 0xf1, 0x64, 0x88, 0xfc, 0xfd, 0xf6,
+ 0x10, 0x7f, 0x3c, 0x62, 0x39, 0x45, 0x7c, 0xbc, 0xee, 0xcf, 0x82, 0xa7,
+ 0x68, 0xce, 0x6d, 0x14, 0xef, 0x61, 0xdc, 0xa6, 0xcd, 0x4c, 0x87, 0x55,
+ 0x5d, 0xd2, 0x80, 0xc0, 0x18, 0x5b, 0x20, 0x31, 0xdf, 0xfe, 0xe6, 0xe7,
+ 0x43, 0x1b, 0x5f, 0x7c,
+};
+static const struct drbg_kat_pr_true kat3749_t = {
+ 13, kat3749_entropyin, kat3749_nonce, kat3749_persstr,
+ kat3749_entropyinpr1, kat3749_addinpr1, kat3749_entropyinpr2,
+ kat3749_addinpr2, kat3749_retbits
+};
+static const struct drbg_kat kat3749 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3749_t
+};
+
+static const unsigned char kat3750_entropyin[] = {
+ 0x46, 0xde, 0x03, 0x48, 0xe3, 0x02, 0x98, 0x39, 0xc0, 0xe4, 0x99, 0x57,
+ 0xd4, 0x03, 0xb2, 0xd7, 0x96, 0x93, 0x98, 0xdb, 0x04, 0xca, 0x35, 0x06,
+ 0x02, 0xf9, 0xd2, 0x6f, 0x44, 0x17, 0x3f, 0xdc,
+};
+static const unsigned char kat3750_nonce[] = {0};
+static const unsigned char kat3750_persstr[] = {0};
+static const unsigned char kat3750_entropyinpr1[] = {
+ 0x34, 0x41, 0xcd, 0xa0, 0xda, 0x09, 0xa7, 0x2c, 0xab, 0xf7, 0xee, 0x1a,
+ 0xdb, 0xd4, 0xbf, 0x8c, 0x37, 0xf2, 0x53, 0x89, 0x0b, 0x4a, 0xc5, 0x90,
+ 0x74, 0xdf, 0x1d, 0x4c, 0x3e, 0x93, 0x0a, 0x24,
+};
+static const unsigned char kat3750_addinpr1[] = {
+ 0xa1, 0x31, 0x56, 0x3c, 0x96, 0xbf, 0xd8, 0xa2, 0xfe, 0x05, 0xd8, 0x37,
+ 0x7d, 0xf2, 0xd3, 0xe4, 0xa7, 0x89, 0x96, 0x6c, 0x58, 0x18, 0x9f, 0x85,
+ 0xe0, 0xb1, 0x8e, 0xc2, 0xe2, 0xbf, 0x57, 0x61,
+};
+static const unsigned char kat3750_entropyinpr2[] = {
+ 0xbc, 0xad, 0x22, 0x5d, 0x77, 0x9b, 0xd3, 0x65, 0x3a, 0x61, 0x6a, 0x8d,
+ 0x66, 0x70, 0x30, 0xc5, 0x56, 0x11, 0x7b, 0x2a, 0xdb, 0x88, 0xe4, 0xa6,
+ 0xa4, 0xe0, 0xd0, 0x56, 0x1a, 0xe9, 0x4f, 0x42,
+};
+static const unsigned char kat3750_addinpr2[] = {
+ 0x4e, 0x6c, 0x1d, 0x08, 0x29, 0x17, 0xac, 0x9e, 0xda, 0x7f, 0x03, 0x2c,
+ 0x61, 0x86, 0x77, 0x36, 0xb5, 0xbe, 0x7b, 0x30, 0x45, 0x55, 0x5f, 0x6e,
+ 0xf1, 0x0c, 0x58, 0x48, 0x75, 0x6e, 0x66, 0x65,
+};
+static const unsigned char kat3750_retbits[] = {
+ 0x14, 0xcf, 0x6f, 0xa5, 0xcf, 0xb8, 0xf9, 0xc7, 0x4a, 0xdd, 0x5b, 0x2d,
+ 0xca, 0x5e, 0x30, 0x39, 0x5a, 0x10, 0x45, 0xed, 0x1e, 0x1c, 0xf4, 0xe9,
+ 0x1c, 0xcb, 0xdf, 0x8a, 0xb8, 0x0d, 0x1c, 0x0f, 0x1d, 0x93, 0x48, 0x16,
+ 0x51, 0x53, 0x5e, 0x40, 0x89, 0x63, 0x8b, 0x04, 0xfd, 0xf9, 0x5f, 0x52,
+ 0xae, 0xc1, 0xff, 0xf6, 0x56, 0x5b, 0x21, 0xd8, 0xa2, 0xa3, 0x2e, 0xa8,
+ 0x14, 0x95, 0x24, 0x11,
+};
+static const struct drbg_kat_pr_true kat3750_t = {
+ 14, kat3750_entropyin, kat3750_nonce, kat3750_persstr,
+ kat3750_entropyinpr1, kat3750_addinpr1, kat3750_entropyinpr2,
+ kat3750_addinpr2, kat3750_retbits
+};
+static const struct drbg_kat kat3750 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3750_t
+};
+
+static const unsigned char kat3751_entropyin[] = {
+ 0x3c, 0x71, 0x78, 0xb3, 0x01, 0xa2, 0x08, 0x84, 0x7d, 0xd7, 0xa9, 0xbf,
+ 0x28, 0x07, 0x55, 0x7f, 0xcf, 0xb9, 0x3c, 0x70, 0xb9, 0x93, 0xba, 0x69,
+ 0x8e, 0x35, 0x5b, 0xcb, 0xbb, 0xbc, 0xe5, 0x77,
+};
+static const unsigned char kat3751_nonce[] = {0};
+static const unsigned char kat3751_persstr[] = {
+ 0xdb, 0x8b, 0x9d, 0x57, 0xa3, 0x4b, 0xd4, 0x85, 0x23, 0x48, 0x0b, 0x8c,
+ 0x0b, 0xdc, 0x05, 0x15, 0x72, 0x46, 0x6d, 0x19, 0x8e, 0x6a, 0x4c, 0x22,
+ 0xeb, 0x2d, 0x47, 0xb0, 0x36, 0xd4, 0xca, 0xaf,
+};
+static const unsigned char kat3751_entropyinpr1[] = {
+ 0x51, 0xf4, 0x9b, 0x7f, 0x2a, 0x28, 0xc2, 0xe3, 0x3b, 0x95, 0x4e, 0x07,
+ 0xb2, 0x34, 0x10, 0xa8, 0xd7, 0x0a, 0x71, 0xb8, 0x91, 0x9d, 0x13, 0xd9,
+ 0x93, 0x29, 0x47, 0x00, 0x41, 0x1e, 0x51, 0x13,
+};
+static const unsigned char kat3751_addinpr1[] = {0};
+static const unsigned char kat3751_entropyinpr2[] = {
+ 0xac, 0xc0, 0xd4, 0xb4, 0x10, 0xf4, 0xd8, 0xc1, 0x08, 0xaa, 0x12, 0xe6,
+ 0xa0, 0x80, 0x85, 0x71, 0x9b, 0x8e, 0x19, 0x14, 0x22, 0xdd, 0x5a, 0xee,
+ 0x95, 0xa3, 0x39, 0xd1, 0xf6, 0x79, 0xb1, 0x1f,
+};
+static const unsigned char kat3751_addinpr2[] = {0};
+static const unsigned char kat3751_retbits[] = {
+ 0x65, 0xfa, 0x48, 0x64, 0xfa, 0xb3, 0xd8, 0x83, 0xc2, 0x88, 0x36, 0xe0,
+ 0xe0, 0xa5, 0xb9, 0x4b, 0x50, 0x68, 0x90, 0x20, 0x1b, 0x30, 0x0e, 0xaf,
+ 0x60, 0x76, 0x15, 0xd6, 0xc0, 0x10, 0xd1, 0xd1, 0x5c, 0x05, 0x0d, 0xa9,
+ 0x66, 0x77, 0x4b, 0xfb, 0xc8, 0x86, 0x16, 0xbb, 0xf1, 0x63, 0x4a, 0xf0,
+ 0x6a, 0xeb, 0x63, 0xb2, 0x07, 0x83, 0x2d, 0x46, 0x42, 0x9d, 0x7c, 0xea,
+ 0x75, 0xe5, 0x1c, 0x27,
+};
+static const struct drbg_kat_pr_true kat3751_t = {
+ 0, kat3751_entropyin, kat3751_nonce, kat3751_persstr,
+ kat3751_entropyinpr1, kat3751_addinpr1, kat3751_entropyinpr2,
+ kat3751_addinpr2, kat3751_retbits
+};
+static const struct drbg_kat kat3751 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3751_t
+};
+
+static const unsigned char kat3752_entropyin[] = {
+ 0x0f, 0x49, 0x8f, 0xec, 0x87, 0xa7, 0x24, 0x88, 0x2c, 0x80, 0xf2, 0x2f,
+ 0x49, 0x99, 0x95, 0x5a, 0xb6, 0x3a, 0x9a, 0x53, 0xd9, 0x0c, 0xb3, 0x3e,
+ 0xc0, 0x26, 0xd7, 0xed, 0xb5, 0x62, 0x40, 0xd8,
+};
+static const unsigned char kat3752_nonce[] = {0};
+static const unsigned char kat3752_persstr[] = {
+ 0x1d, 0x5c, 0x1b, 0x78, 0xca, 0xdc, 0xb2, 0x2f, 0x0c, 0x9e, 0x2d, 0xe0,
+ 0xff, 0x59, 0x37, 0x91, 0x8f, 0xba, 0xcb, 0x62, 0xee, 0xc1, 0x5c, 0x68,
+ 0x08, 0x05, 0xe6, 0x81, 0x95, 0x27, 0x79, 0xf6,
+};
+static const unsigned char kat3752_entropyinpr1[] = {
+ 0x2e, 0x5b, 0xb4, 0x4b, 0x07, 0xad, 0x27, 0xbf, 0x16, 0x97, 0x83, 0xd7,
+ 0xbb, 0xf4, 0xfb, 0xbb, 0xbc, 0xe5, 0x39, 0xe2, 0xf5, 0x23, 0xd5, 0xce,
+ 0xb1, 0xd7, 0xbf, 0x1d, 0xda, 0x0d, 0xfd, 0xb3,
+};
+static const unsigned char kat3752_addinpr1[] = {0};
+static const unsigned char kat3752_entropyinpr2[] = {
+ 0x88, 0xe2, 0xc9, 0x12, 0xa0, 0x11, 0x02, 0x66, 0xb9, 0xf5, 0xc3, 0xa6,
+ 0x18, 0x6c, 0x3d, 0xed, 0x6b, 0xb7, 0x34, 0xc5, 0xc4, 0x3d, 0x07, 0xd9,
+ 0x07, 0xdd, 0x4f, 0x83, 0x3f, 0xe1, 0x72, 0x92,
+};
+static const unsigned char kat3752_addinpr2[] = {0};
+static const unsigned char kat3752_retbits[] = {
+ 0x51, 0x5d, 0x13, 0x45, 0x38, 0x41, 0xc0, 0xed, 0x3b, 0x0f, 0xb0, 0xa2,
+ 0xd7, 0x64, 0x60, 0xef, 0x88, 0x8c, 0x50, 0x5a, 0x72, 0x23, 0x36, 0x21,
+ 0xa7, 0x13, 0xb3, 0xb2, 0x0e, 0x39, 0xf6, 0x5c, 0x83, 0x8e, 0x9a, 0x1a,
+ 0xde, 0xd2, 0x7d, 0xba, 0x97, 0xaf, 0xcf, 0xb5, 0x77, 0xcc, 0x2c, 0x97,
+ 0xaa, 0x47, 0xe5, 0xf7, 0xc9, 0x32, 0x3f, 0x48, 0x82, 0x41, 0x17, 0x8d,
+ 0x64, 0xe8, 0x68, 0x72,
+};
+static const struct drbg_kat_pr_true kat3752_t = {
+ 1, kat3752_entropyin, kat3752_nonce, kat3752_persstr,
+ kat3752_entropyinpr1, kat3752_addinpr1, kat3752_entropyinpr2,
+ kat3752_addinpr2, kat3752_retbits
+};
+static const struct drbg_kat kat3752 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3752_t
+};
+
+static const unsigned char kat3753_entropyin[] = {
+ 0x28, 0xbe, 0x5b, 0xcc, 0x8e, 0xeb, 0xac, 0xd6, 0x53, 0x84, 0x0b, 0x34,
+ 0xbb, 0xf1, 0x5a, 0xb4, 0x63, 0xa7, 0x97, 0xe0, 0x7d, 0xad, 0xa1, 0xab,
+ 0xf3, 0x4c, 0x1d, 0xd8, 0x22, 0x7c, 0x55, 0x5b,
+};
+static const unsigned char kat3753_nonce[] = {0};
+static const unsigned char kat3753_persstr[] = {
+ 0xba, 0x7d, 0x78, 0xbc, 0x7a, 0xb9, 0xb4, 0x9c, 0x27, 0x4e, 0xd3, 0x3a,
+ 0xc9, 0xce, 0xa0, 0x32, 0xa7, 0xef, 0x8e, 0x44, 0x13, 0x89, 0xfe, 0xa8,
+ 0x9f, 0xa7, 0x4c, 0x5d, 0x6e, 0xf3, 0x66, 0x9e,
+};
+static const unsigned char kat3753_entropyinpr1[] = {
+ 0xeb, 0xf6, 0x58, 0xca, 0x70, 0xdf, 0xfd, 0xf7, 0xd5, 0xf2, 0x32, 0x32,
+ 0x0a, 0xd1, 0xcc, 0xa7, 0xcf, 0x08, 0x0e, 0x5a, 0xab, 0xa5, 0x25, 0x04,
+ 0xc7, 0xd4, 0xa6, 0x55, 0xe5, 0x12, 0xcf, 0xb7,
+};
+static const unsigned char kat3753_addinpr1[] = {0};
+static const unsigned char kat3753_entropyinpr2[] = {
+ 0xfa, 0xe4, 0x1b, 0x02, 0x43, 0xe9, 0x38, 0x42, 0x22, 0x86, 0xb1, 0x28,
+ 0x0c, 0x91, 0xcc, 0xf3, 0xb3, 0x71, 0x65, 0x19, 0x4b, 0x42, 0x88, 0x99,
+ 0x85, 0xa9, 0x9d, 0xc4, 0x57, 0xeb, 0xb4, 0x49,
+};
+static const unsigned char kat3753_addinpr2[] = {0};
+static const unsigned char kat3753_retbits[] = {
+ 0xf8, 0x39, 0xaf, 0xce, 0x9c, 0x99, 0xaf, 0x94, 0x8e, 0x6c, 0xe7, 0x53,
+ 0x08, 0x39, 0x3a, 0x43, 0x71, 0xc6, 0x48, 0xa6, 0xc7, 0x94, 0x18, 0x27,
+ 0x2e, 0xa5, 0xf2, 0x75, 0x43, 0x8e, 0x65, 0xcb, 0x9b, 0x6e, 0x48, 0xf8,
+ 0xaa, 0x44, 0x60, 0x74, 0x8c, 0xde, 0x38, 0x0e, 0x02, 0xd6, 0xc2, 0x73,
+ 0x5a, 0x68, 0x6a, 0x86, 0xdd, 0xd5, 0xb9, 0x5a, 0xd7, 0xd6, 0x91, 0x15,
+ 0x5a, 0x7b, 0x3c, 0x50,
+};
+static const struct drbg_kat_pr_true kat3753_t = {
+ 2, kat3753_entropyin, kat3753_nonce, kat3753_persstr,
+ kat3753_entropyinpr1, kat3753_addinpr1, kat3753_entropyinpr2,
+ kat3753_addinpr2, kat3753_retbits
+};
+static const struct drbg_kat kat3753 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3753_t
+};
+
+static const unsigned char kat3754_entropyin[] = {
+ 0x69, 0xc1, 0x87, 0x5a, 0x4b, 0xe9, 0x2c, 0x22, 0x47, 0x6b, 0x04, 0xcc,
+ 0xa2, 0x4f, 0x6e, 0x88, 0x57, 0x15, 0xb0, 0xe5, 0x3a, 0x93, 0xfd, 0x88,
+ 0xb8, 0xd6, 0xe7, 0xf2, 0xf1, 0x5d, 0x51, 0x68,
+};
+static const unsigned char kat3754_nonce[] = {0};
+static const unsigned char kat3754_persstr[] = {
+ 0x88, 0x59, 0x8f, 0x5b, 0xe9, 0xb0, 0x9f, 0x21, 0xd9, 0x54, 0x2f, 0x99,
+ 0x38, 0xb1, 0x58, 0x91, 0xd3, 0x87, 0xb3, 0x2a, 0x56, 0x1f, 0xbe, 0x7e,
+ 0xfc, 0x19, 0x6d, 0xba, 0x24, 0x39, 0xa9, 0xbb,
+};
+static const unsigned char kat3754_entropyinpr1[] = {
+ 0x20, 0xf5, 0xee, 0x39, 0xaf, 0x10, 0x42, 0xab, 0x05, 0x48, 0xc5, 0x19,
+ 0x65, 0x6d, 0x6b, 0x58, 0x33, 0xed, 0xde, 0xeb, 0x79, 0xc8, 0x1a, 0x64,
+ 0xc8, 0x2a, 0x2f, 0xaa, 0xf7, 0xe2, 0xc3, 0xf1,
+};
+static const unsigned char kat3754_addinpr1[] = {0};
+static const unsigned char kat3754_entropyinpr2[] = {
+ 0x7b, 0x78, 0x27, 0xea, 0xbc, 0x68, 0x6a, 0xdc, 0xdb, 0xa8, 0x1c, 0xc5,
+ 0x3a, 0x27, 0xd4, 0xe5, 0x7f, 0xbe, 0x6c, 0x29, 0xa2, 0x88, 0xe4, 0x60,
+ 0xc5, 0x7a, 0x67, 0xd2, 0xdc, 0xb6, 0x6f, 0x93,
+};
+static const unsigned char kat3754_addinpr2[] = {0};
+static const unsigned char kat3754_retbits[] = {
+ 0x9b, 0xd4, 0x82, 0xe4, 0xa2, 0xb3, 0x2b, 0x13, 0x38, 0x9f, 0x4d, 0x38,
+ 0x60, 0x9e, 0x80, 0xf2, 0x7a, 0x74, 0xee, 0x44, 0x6c, 0x08, 0xb9, 0xea,
+ 0x2b, 0xf4, 0x35, 0xfc, 0x87, 0xab, 0x7c, 0xa9, 0x03, 0x1a, 0x5c, 0xfc,
+ 0x92, 0x4c, 0x8c, 0xf3, 0x60, 0x75, 0xc5, 0xfe, 0x96, 0xae, 0x0a, 0x45,
+ 0xbf, 0x42, 0x42, 0x34, 0xb8, 0xdb, 0x2a, 0x5e, 0x9c, 0xa7, 0xd3, 0x06,
+ 0xdc, 0xa8, 0xae, 0x40,
+};
+static const struct drbg_kat_pr_true kat3754_t = {
+ 3, kat3754_entropyin, kat3754_nonce, kat3754_persstr,
+ kat3754_entropyinpr1, kat3754_addinpr1, kat3754_entropyinpr2,
+ kat3754_addinpr2, kat3754_retbits
+};
+static const struct drbg_kat kat3754 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3754_t
+};
+
+static const unsigned char kat3755_entropyin[] = {
+ 0xaf, 0x6d, 0xe3, 0xf8, 0x45, 0x5a, 0xc4, 0x08, 0x94, 0x48, 0x8e, 0xdb,
+ 0x8c, 0x60, 0x39, 0x30, 0x53, 0x74, 0x26, 0xeb, 0xe4, 0x6d, 0x03, 0x3b,
+ 0x5a, 0xa4, 0xf9, 0xf2, 0x54, 0x7e, 0x5e, 0x6e,
+};
+static const unsigned char kat3755_nonce[] = {0};
+static const unsigned char kat3755_persstr[] = {
+ 0x16, 0x5d, 0x53, 0xa1, 0x7b, 0xf8, 0xc2, 0x81, 0x3d, 0xa5, 0x98, 0x64,
+ 0x53, 0x13, 0xdc, 0x63, 0x8f, 0xb7, 0x33, 0xaf, 0x65, 0x19, 0x0f, 0x24,
+ 0x86, 0xd1, 0x16, 0x16, 0x30, 0x70, 0xef, 0x4f,
+};
+static const unsigned char kat3755_entropyinpr1[] = {
+ 0xa5, 0xa4, 0x6c, 0xb3, 0xaa, 0x60, 0xed, 0x5c, 0xb9, 0xc8, 0x2c, 0x25,
+ 0x41, 0x78, 0xc8, 0x41, 0x15, 0x08, 0x01, 0x6a, 0x81, 0x43, 0x81, 0xd0,
+ 0x90, 0x9d, 0x21, 0x6b, 0xe9, 0xad, 0x6c, 0x45,
+};
+static const unsigned char kat3755_addinpr1[] = {0};
+static const unsigned char kat3755_entropyinpr2[] = {
+ 0xfc, 0xc8, 0x56, 0x54, 0xcd, 0xbe, 0x07, 0x54, 0x1b, 0x8a, 0xf9, 0x98,
+ 0x9d, 0x88, 0x75, 0x98, 0xc2, 0x2a, 0xd3, 0xed, 0xcf, 0xa1, 0xc7, 0x54,
+ 0x6c, 0xc5, 0x8a, 0xa6, 0x10, 0xce, 0x81, 0xff,
+};
+static const unsigned char kat3755_addinpr2[] = {0};
+static const unsigned char kat3755_retbits[] = {
+ 0xbc, 0xbd, 0xce, 0x92, 0x49, 0x3a, 0x23, 0x45, 0xcb, 0x0a, 0xbe, 0x13,
+ 0xfc, 0x4e, 0x2d, 0x90, 0x88, 0xf6, 0x1c, 0x28, 0xf7, 0x25, 0x6b, 0x5a,
+ 0xf6, 0x50, 0x40, 0x4c, 0x21, 0xa4, 0x18, 0x10, 0xeb, 0x19, 0x2d, 0x7f,
+ 0x0f, 0x4d, 0x44, 0x9a, 0x0a, 0x9c, 0x60, 0x5f, 0x3f, 0x07, 0xc2, 0x76,
+ 0x91, 0x63, 0x95, 0x0b, 0x5e, 0xdb, 0x33, 0xaa, 0x68, 0xdd, 0xb8, 0x96,
+ 0x99, 0x27, 0xb0, 0x38,
+};
+static const struct drbg_kat_pr_true kat3755_t = {
+ 4, kat3755_entropyin, kat3755_nonce, kat3755_persstr,
+ kat3755_entropyinpr1, kat3755_addinpr1, kat3755_entropyinpr2,
+ kat3755_addinpr2, kat3755_retbits
+};
+static const struct drbg_kat kat3755 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3755_t
+};
+
+static const unsigned char kat3756_entropyin[] = {
+ 0x74, 0xad, 0x98, 0x3b, 0x7d, 0xaf, 0x0a, 0xaf, 0xab, 0x1b, 0x2a, 0x14,
+ 0x10, 0x5e, 0x74, 0x55, 0xd3, 0xbc, 0x66, 0x7f, 0xd3, 0x3b, 0x20, 0xbc,
+ 0x09, 0xa6, 0xea, 0xd4, 0xf6, 0xd5, 0x5d, 0xd2,
+};
+static const unsigned char kat3756_nonce[] = {0};
+static const unsigned char kat3756_persstr[] = {
+ 0xab, 0xa2, 0xf2, 0x4b, 0xa9, 0x42, 0x1b, 0xec, 0x5e, 0xa8, 0x40, 0x1b,
+ 0x31, 0xdd, 0xf7, 0x74, 0xc3, 0x6c, 0x52, 0x1b, 0x4b, 0xb2, 0x54, 0x9d,
+ 0xf4, 0x7f, 0x6c, 0xa8, 0x2f, 0x20, 0xa4, 0x41,
+};
+static const unsigned char kat3756_entropyinpr1[] = {
+ 0xb0, 0x81, 0x35, 0x49, 0x8d, 0x4a, 0x43, 0xbf, 0x55, 0x71, 0x23, 0x3c,
+ 0x09, 0x05, 0xe7, 0x3d, 0x0e, 0x1b, 0xa0, 0xc3, 0x97, 0x7a, 0x0c, 0x27,
+ 0x36, 0x71, 0x33, 0x73, 0x90, 0xcb, 0xa4, 0x9b,
+};
+static const unsigned char kat3756_addinpr1[] = {0};
+static const unsigned char kat3756_entropyinpr2[] = {
+ 0x26, 0x7e, 0x0a, 0x11, 0xdc, 0x59, 0x3a, 0xc1, 0x7c, 0x45, 0xab, 0x28,
+ 0x61, 0x92, 0x51, 0x6d, 0xd7, 0xf7, 0x55, 0x4f, 0x80, 0x3f, 0x8b, 0x3e,
+ 0x31, 0x00, 0x21, 0x90, 0xc9, 0x8e, 0x7a, 0x33,
+};
+static const unsigned char kat3756_addinpr2[] = {0};
+static const unsigned char kat3756_retbits[] = {
+ 0xbc, 0xf3, 0x99, 0x80, 0x48, 0xc7, 0x2f, 0x0f, 0x04, 0x00, 0x29, 0xf1,
+ 0x64, 0xe0, 0x13, 0x53, 0x9b, 0xb3, 0x49, 0x5d, 0x05, 0x35, 0xb5, 0x43,
+ 0xd0, 0xfd, 0xa2, 0xb3, 0x10, 0xd5, 0xc3, 0xc2, 0xcb, 0xf7, 0x46, 0xca,
+ 0xca, 0x20, 0xb7, 0xd6, 0xb0, 0x3c, 0x87, 0x5c, 0x8d, 0x1b, 0x0b, 0xe0,
+ 0xde, 0x93, 0xdd, 0x1b, 0xfe, 0x9e, 0xe1, 0x7b, 0x0f, 0x21, 0x4f, 0xba,
+ 0x65, 0xf6, 0x6d, 0x58,
+};
+static const struct drbg_kat_pr_true kat3756_t = {
+ 5, kat3756_entropyin, kat3756_nonce, kat3756_persstr,
+ kat3756_entropyinpr1, kat3756_addinpr1, kat3756_entropyinpr2,
+ kat3756_addinpr2, kat3756_retbits
+};
+static const struct drbg_kat kat3756 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3756_t
+};
+
+static const unsigned char kat3757_entropyin[] = {
+ 0xed, 0x60, 0x67, 0xf9, 0xbd, 0xe1, 0x69, 0x78, 0x0b, 0x55, 0x5c, 0x83,
+ 0xa1, 0x8f, 0xb1, 0x6e, 0x02, 0xc8, 0x5d, 0x1d, 0xf6, 0xb6, 0x8a, 0x2d,
+ 0x91, 0xa1, 0xd1, 0xde, 0xd4, 0xe8, 0x96, 0xb8,
+};
+static const unsigned char kat3757_nonce[] = {0};
+static const unsigned char kat3757_persstr[] = {
+ 0xf1, 0x60, 0xe7, 0x79, 0x1d, 0x87, 0x1b, 0x85, 0x59, 0xf4, 0xb0, 0xf8,
+ 0x00, 0xca, 0xf9, 0xa2, 0xd2, 0x3c, 0xa3, 0x05, 0xb6, 0x75, 0x7c, 0x7e,
+ 0xea, 0xe5, 0xbe, 0xae, 0x51, 0x95, 0x81, 0x4d,
+};
+static const unsigned char kat3757_entropyinpr1[] = {
+ 0x94, 0xaa, 0x96, 0x0f, 0x12, 0x84, 0x5e, 0x8f, 0xa0, 0x83, 0xd7, 0xce,
+ 0xba, 0xc2, 0xfb, 0xdb, 0xab, 0x6c, 0xa3, 0xc1, 0x53, 0x0f, 0x58, 0x32,
+ 0xfa, 0xc1, 0x89, 0x6f, 0x51, 0xdb, 0x4c, 0xaf,
+};
+static const unsigned char kat3757_addinpr1[] = {0};
+static const unsigned char kat3757_entropyinpr2[] = {
+ 0xa8, 0x62, 0x21, 0xc6, 0xb0, 0xcf, 0x66, 0x5c, 0x0e, 0xbc, 0x62, 0x96,
+ 0x68, 0xcd, 0xbe, 0x7b, 0x6c, 0xe7, 0x56, 0xd1, 0x54, 0xfa, 0x36, 0x2e,
+ 0xb5, 0x90, 0xf6, 0x55, 0xa1, 0x37, 0x68, 0xdd,
+};
+static const unsigned char kat3757_addinpr2[] = {0};
+static const unsigned char kat3757_retbits[] = {
+ 0xd0, 0x66, 0x63, 0xdf, 0x3f, 0x96, 0xf4, 0x8c, 0x29, 0x5c, 0x68, 0xe8,
+ 0xdb, 0x5f, 0xa5, 0xb5, 0x90, 0x09, 0xde, 0x65, 0xbb, 0x30, 0x8b, 0x7c,
+ 0x84, 0xb7, 0xc4, 0xe7, 0x24, 0xe3, 0x75, 0x08, 0x5f, 0xdb, 0xd5, 0xb0,
+ 0x53, 0xe9, 0x17, 0x13, 0x61, 0x2f, 0x47, 0xd8, 0x7f, 0x40, 0xee, 0x6a,
+ 0x04, 0xe7, 0xb0, 0x7f, 0x28, 0x40, 0xf3, 0x14, 0x09, 0x59, 0xd7, 0x8c,
+ 0xab, 0xe0, 0x2a, 0xe2,
+};
+static const struct drbg_kat_pr_true kat3757_t = {
+ 6, kat3757_entropyin, kat3757_nonce, kat3757_persstr,
+ kat3757_entropyinpr1, kat3757_addinpr1, kat3757_entropyinpr2,
+ kat3757_addinpr2, kat3757_retbits
+};
+static const struct drbg_kat kat3757 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3757_t
+};
+
+static const unsigned char kat3758_entropyin[] = {
+ 0xd4, 0xad, 0x97, 0x5a, 0xa3, 0x8e, 0xd4, 0xf4, 0xba, 0x2d, 0xde, 0x6d,
+ 0x7e, 0x2a, 0x0c, 0xb6, 0x9f, 0x1d, 0xc3, 0xef, 0xa9, 0x43, 0x32, 0x7c,
+ 0xe5, 0xfc, 0xa8, 0x2b, 0x0a, 0xf5, 0x9d, 0x04,
+};
+static const unsigned char kat3758_nonce[] = {0};
+static const unsigned char kat3758_persstr[] = {
+ 0xff, 0x88, 0x4c, 0x91, 0xfa, 0x00, 0x5e, 0xfc, 0x94, 0xfa, 0x9e, 0x74,
+ 0x25, 0x84, 0x72, 0xd8, 0x88, 0xe9, 0x22, 0x09, 0x99, 0xb6, 0xcd, 0xb8,
+ 0xb8, 0x93, 0x04, 0xe7, 0xf6, 0xfc, 0x56, 0x90,
+};
+static const unsigned char kat3758_entropyinpr1[] = {
+ 0xd0, 0x0b, 0x53, 0xdc, 0x12, 0x0a, 0xdf, 0x30, 0x6a, 0x97, 0x23, 0xdc,
+ 0x1b, 0x76, 0xce, 0xf0, 0xf5, 0x9b, 0x29, 0x4f, 0xb4, 0x13, 0xc2, 0x04,
+ 0x12, 0xb2, 0xd0, 0x81, 0xee, 0xef, 0xc5, 0xbe,
+};
+static const unsigned char kat3758_addinpr1[] = {0};
+static const unsigned char kat3758_entropyinpr2[] = {
+ 0x57, 0xdf, 0x07, 0x19, 0x2f, 0x04, 0xd6, 0x11, 0x31, 0x30, 0xee, 0x3c,
+ 0x1c, 0x23, 0x0d, 0xcb, 0x29, 0x2e, 0xbe, 0xe8, 0x54, 0x76, 0xa5, 0xdd,
+ 0xf5, 0xc2, 0xe6, 0xad, 0xcb, 0xab, 0xd7, 0x98,
+};
+static const unsigned char kat3758_addinpr2[] = {0};
+static const unsigned char kat3758_retbits[] = {
+ 0xb3, 0xdc, 0xa2, 0x41, 0xa1, 0x04, 0x07, 0x92, 0x60, 0x93, 0x4c, 0x74,
+ 0x14, 0x4f, 0x85, 0x0a, 0x1a, 0x54, 0x96, 0xf8, 0xba, 0x25, 0x9f, 0x9a,
+ 0x20, 0x66, 0x44, 0xd0, 0x44, 0x26, 0x75, 0xbe, 0x29, 0x39, 0x2b, 0xcd,
+ 0x1b, 0xca, 0x6e, 0xc1, 0x47, 0x25, 0x6a, 0xf7, 0x17, 0x67, 0x39, 0x37,
+ 0xa3, 0xdb, 0x81, 0x9c, 0x23, 0x42, 0x30, 0xef, 0xee, 0x6d, 0x71, 0x1b,
+ 0xcb, 0x84, 0xc2, 0x31,
+};
+static const struct drbg_kat_pr_true kat3758_t = {
+ 7, kat3758_entropyin, kat3758_nonce, kat3758_persstr,
+ kat3758_entropyinpr1, kat3758_addinpr1, kat3758_entropyinpr2,
+ kat3758_addinpr2, kat3758_retbits
+};
+static const struct drbg_kat kat3758 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3758_t
+};
+
+static const unsigned char kat3759_entropyin[] = {
+ 0xa5, 0x65, 0xe9, 0x0b, 0xbf, 0xe0, 0x1f, 0xac, 0x6c, 0xcf, 0xb5, 0xae,
+ 0x7d, 0x7b, 0x0d, 0x3f, 0xb2, 0x7d, 0xd2, 0xaf, 0xf1, 0xd6, 0x80, 0x69,
+ 0xdd, 0x38, 0x1e, 0x63, 0xab, 0x71, 0x3d, 0xae,
+};
+static const unsigned char kat3759_nonce[] = {0};
+static const unsigned char kat3759_persstr[] = {
+ 0x18, 0x6b, 0x27, 0x99, 0xce, 0xd8, 0x1d, 0x4c, 0xf9, 0x56, 0xe4, 0x50,
+ 0xbb, 0x1c, 0x8f, 0x75, 0x7c, 0x67, 0x8a, 0x05, 0x72, 0x0d, 0xa7, 0x6c,
+ 0x43, 0x80, 0x81, 0x3e, 0x31, 0x2f, 0xaf, 0x0a,
+};
+static const unsigned char kat3759_entropyinpr1[] = {
+ 0x33, 0xbb, 0xa3, 0x56, 0x09, 0x6e, 0x75, 0xd5, 0x75, 0x81, 0x93, 0x93,
+ 0xff, 0xa2, 0x41, 0xb9, 0x38, 0x29, 0x20, 0x93, 0xff, 0xd9, 0x8d, 0x66,
+ 0x35, 0xb8, 0x4d, 0xb2, 0xec, 0x5a, 0x2e, 0x74,
+};
+static const unsigned char kat3759_addinpr1[] = {0};
+static const unsigned char kat3759_entropyinpr2[] = {
+ 0xf1, 0xbf, 0x05, 0x16, 0x48, 0x44, 0xf1, 0x40, 0xea, 0x2f, 0x14, 0xed,
+ 0xe5, 0xe1, 0x89, 0xf8, 0xf8, 0xc7, 0x7a, 0x63, 0xf0, 0x5f, 0x45, 0x81,
+ 0x16, 0x0a, 0x56, 0x38, 0xf7, 0x02, 0x06, 0x25,
+};
+static const unsigned char kat3759_addinpr2[] = {0};
+static const unsigned char kat3759_retbits[] = {
+ 0x78, 0x98, 0x92, 0x6b, 0x73, 0x6b, 0x4f, 0x8d, 0x51, 0x33, 0x83, 0x8b,
+ 0x58, 0x82, 0xd3, 0x71, 0xd5, 0x62, 0x35, 0x30, 0x3b, 0xfb, 0x50, 0x2f,
+ 0x1d, 0x20, 0xf8, 0x2e, 0xc9, 0x56, 0x94, 0x4c, 0x80, 0xbf, 0xbe, 0x84,
+ 0xff, 0x9c, 0xd9, 0x6a, 0x5a, 0x8c, 0xc4, 0x0d, 0x62, 0x91, 0x41, 0x99,
+ 0x78, 0x45, 0xd9, 0xd6, 0x12, 0x8d, 0xd7, 0xd5, 0xdc, 0x68, 0x9f, 0x17,
+ 0x6a, 0x50, 0xbc, 0x47,
+};
+static const struct drbg_kat_pr_true kat3759_t = {
+ 8, kat3759_entropyin, kat3759_nonce, kat3759_persstr,
+ kat3759_entropyinpr1, kat3759_addinpr1, kat3759_entropyinpr2,
+ kat3759_addinpr2, kat3759_retbits
+};
+static const struct drbg_kat kat3759 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3759_t
+};
+
+static const unsigned char kat3760_entropyin[] = {
+ 0x0f, 0x8d, 0xef, 0xcd, 0x0a, 0xac, 0xd1, 0xf9, 0xb1, 0x80, 0xfd, 0x1e,
+ 0x34, 0x0f, 0xf9, 0xb5, 0x5b, 0x62, 0xbd, 0x54, 0xd5, 0x73, 0x6e, 0xb5,
+ 0xad, 0x5a, 0xe1, 0x42, 0x33, 0x6f, 0x0a, 0xb9,
+};
+static const unsigned char kat3760_nonce[] = {0};
+static const unsigned char kat3760_persstr[] = {
+ 0xf6, 0x86, 0x6b, 0x6b, 0xad, 0x1a, 0xcf, 0xe4, 0x3c, 0x3c, 0xce, 0x9c,
+ 0xe6, 0x2b, 0x44, 0x12, 0xf5, 0x1b, 0xec, 0x73, 0x70, 0xdb, 0xb1, 0xc4,
+ 0x66, 0x78, 0x6b, 0x57, 0x07, 0xcb, 0x24, 0xee,
+};
+static const unsigned char kat3760_entropyinpr1[] = {
+ 0x9d, 0x69, 0x0b, 0x9b, 0x71, 0xe3, 0x10, 0xef, 0x15, 0x65, 0x3a, 0x3f,
+ 0x1f, 0xae, 0x1c, 0x36, 0x62, 0x7a, 0x20, 0x13, 0xa0, 0xac, 0xa6, 0xde,
+ 0xf3, 0xa0, 0x92, 0x8e, 0x45, 0xfd, 0xc1, 0xbf,
+};
+static const unsigned char kat3760_addinpr1[] = {0};
+static const unsigned char kat3760_entropyinpr2[] = {
+ 0xdf, 0x62, 0xe6, 0xef, 0x16, 0x7d, 0x06, 0xa9, 0x7f, 0xc2, 0x81, 0x9b,
+ 0x47, 0xe5, 0x1f, 0x38, 0xc9, 0xf9, 0x57, 0x2e, 0xcb, 0x2c, 0x7e, 0xb0,
+ 0xe7, 0x56, 0x9b, 0xda, 0xc5, 0xe9, 0xd9, 0xfb,
+};
+static const unsigned char kat3760_addinpr2[] = {0};
+static const unsigned char kat3760_retbits[] = {
+ 0x06, 0xcc, 0x71, 0xa0, 0xe7, 0x2a, 0x34, 0x26, 0xc6, 0x21, 0xeb, 0xd6,
+ 0xb6, 0xb2, 0x80, 0x0b, 0xb1, 0x11, 0x67, 0xb8, 0xfd, 0xd0, 0xa0, 0xd7,
+ 0x37, 0xb4, 0x45, 0x62, 0x9f, 0x5c, 0x2f, 0x9c, 0x68, 0x24, 0xad, 0x53,
+ 0x34, 0xed, 0x3f, 0x8c, 0x98, 0x25, 0x51, 0xfd, 0xea, 0x6d, 0xf1, 0xa1,
+ 0x13, 0xf8, 0x42, 0x94, 0xbd, 0x14, 0x80, 0x33, 0xba, 0x83, 0x09, 0xe2,
+ 0x4f, 0x00, 0xfd, 0xc3,
+};
+static const struct drbg_kat_pr_true kat3760_t = {
+ 9, kat3760_entropyin, kat3760_nonce, kat3760_persstr,
+ kat3760_entropyinpr1, kat3760_addinpr1, kat3760_entropyinpr2,
+ kat3760_addinpr2, kat3760_retbits
+};
+static const struct drbg_kat kat3760 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3760_t
+};
+
+static const unsigned char kat3761_entropyin[] = {
+ 0x90, 0x48, 0xf0, 0x0f, 0xce, 0x43, 0xac, 0x12, 0x61, 0x2c, 0x59, 0x52,
+ 0xf9, 0x93, 0xea, 0xf5, 0xde, 0x58, 0x25, 0x78, 0x5a, 0x1e, 0x2e, 0x17,
+ 0x91, 0x06, 0x3a, 0x6c, 0xb8, 0x34, 0x8c, 0xce,
+};
+static const unsigned char kat3761_nonce[] = {0};
+static const unsigned char kat3761_persstr[] = {
+ 0xd3, 0xdf, 0xf5, 0x21, 0x54, 0x1b, 0xbf, 0xc1, 0x97, 0x10, 0x52, 0x8a,
+ 0x3a, 0x53, 0xc3, 0xd9, 0x3e, 0x45, 0x4b, 0x17, 0x0d, 0x77, 0x0a, 0x17,
+ 0x99, 0xfa, 0x47, 0x2d, 0x66, 0x4b, 0x11, 0xf2,
+};
+static const unsigned char kat3761_entropyinpr1[] = {
+ 0x00, 0x87, 0xa1, 0x7f, 0x43, 0x22, 0x91, 0x6d, 0x29, 0x3a, 0xca, 0x7d,
+ 0xdd, 0xe9, 0xb5, 0xd6, 0x1f, 0xda, 0x92, 0x4d, 0xb8, 0xfd, 0x13, 0xd4,
+ 0xd3, 0x86, 0x43, 0x8f, 0x66, 0xba, 0xcc, 0xe9,
+};
+static const unsigned char kat3761_addinpr1[] = {0};
+static const unsigned char kat3761_entropyinpr2[] = {
+ 0x3a, 0x94, 0xfa, 0x99, 0x94, 0xbf, 0x84, 0xd5, 0x0f, 0x39, 0x9e, 0x7b,
+ 0x58, 0x9e, 0x34, 0x5d, 0xdd, 0x59, 0xbf, 0x7d, 0xb5, 0x86, 0x7a, 0x9d,
+ 0x96, 0x13, 0x11, 0x19, 0xf4, 0x3b, 0xf4, 0xaa,
+};
+static const unsigned char kat3761_addinpr2[] = {0};
+static const unsigned char kat3761_retbits[] = {
+ 0x59, 0x5d, 0x6a, 0x04, 0x79, 0x31, 0xe5, 0xe0, 0x0d, 0xc1, 0x27, 0x24,
+ 0xf1, 0x4c, 0x37, 0xc4, 0x92, 0x8d, 0x15, 0xac, 0xff, 0x6f, 0x86, 0xa3,
+ 0x17, 0xf6, 0x54, 0x33, 0x43, 0x92, 0xba, 0x65, 0xbf, 0xfa, 0x35, 0xfd,
+ 0x2d, 0x08, 0xd4, 0xdf, 0x1b, 0xb5, 0x86, 0x57, 0xa2, 0x09, 0x05, 0xac,
+ 0x33, 0x1f, 0xbc, 0x8d, 0x61, 0x1e, 0x86, 0x14, 0xec, 0x46, 0xfb, 0xa5,
+ 0x59, 0x60, 0xc7, 0x3c,
+};
+static const struct drbg_kat_pr_true kat3761_t = {
+ 10, kat3761_entropyin, kat3761_nonce, kat3761_persstr,
+ kat3761_entropyinpr1, kat3761_addinpr1, kat3761_entropyinpr2,
+ kat3761_addinpr2, kat3761_retbits
+};
+static const struct drbg_kat kat3761 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3761_t
+};
+
+static const unsigned char kat3762_entropyin[] = {
+ 0xb6, 0xc3, 0x12, 0x56, 0xc0, 0x41, 0x2e, 0x6b, 0x00, 0x22, 0xd3, 0xe1,
+ 0x21, 0x71, 0x0c, 0xf3, 0xcf, 0xc4, 0x8d, 0x5e, 0x6e, 0xd7, 0xb3, 0xfe,
+ 0x7b, 0x5b, 0xfc, 0x9e, 0xd8, 0x08, 0x2b, 0x7f,
+};
+static const unsigned char kat3762_nonce[] = {0};
+static const unsigned char kat3762_persstr[] = {
+ 0xe8, 0x85, 0xf7, 0x98, 0x94, 0xbc, 0x2f, 0x20, 0x81, 0x2a, 0x8a, 0x18,
+ 0x7c, 0xc9, 0x99, 0x20, 0x01, 0xf9, 0xb3, 0xb3, 0x71, 0x35, 0x87, 0x61,
+ 0xdc, 0xd9, 0xb9, 0x73, 0x73, 0x60, 0x2c, 0xaa,
+};
+static const unsigned char kat3762_entropyinpr1[] = {
+ 0xbd, 0x7e, 0xb9, 0x3c, 0x4f, 0xc3, 0x70, 0x0f, 0x1f, 0x7c, 0xcf, 0xf1,
+ 0xae, 0x9a, 0x19, 0xae, 0x62, 0x1b, 0xbb, 0xe4, 0x3d, 0x1b, 0x75, 0x28,
+ 0x75, 0x2a, 0xe8, 0x7f, 0x78, 0xe7, 0x69, 0x25,
+};
+static const unsigned char kat3762_addinpr1[] = {0};
+static const unsigned char kat3762_entropyinpr2[] = {
+ 0xe0, 0xad, 0x35, 0x3d, 0x29, 0xdb, 0x22, 0x3f, 0x3c, 0xab, 0xa6, 0x4f,
+ 0xeb, 0x9a, 0x91, 0xd5, 0x74, 0xbb, 0x67, 0xc0, 0xd8, 0x77, 0xeb, 0xbe,
+ 0xff, 0x60, 0xd5, 0x57, 0xa7, 0xee, 0x92, 0xca,
+};
+static const unsigned char kat3762_addinpr2[] = {0};
+static const unsigned char kat3762_retbits[] = {
+ 0x82, 0x07, 0x42, 0x5c, 0x7b, 0x99, 0x6a, 0xbd, 0x8e, 0xc2, 0x3d, 0xfe,
+ 0xad, 0xf4, 0x29, 0x67, 0x6b, 0x55, 0x19, 0x4c, 0xf9, 0xdd, 0x7e, 0x39,
+ 0x7b, 0x36, 0x17, 0x43, 0x33, 0xd5, 0xc6, 0xaf, 0x58, 0x25, 0x76, 0xa4,
+ 0x66, 0xeb, 0xf3, 0xa3, 0x74, 0x31, 0x1e, 0x51, 0x3f, 0x2d, 0xbd, 0xe5,
+ 0x18, 0xda, 0xe9, 0x10, 0xcd, 0xb4, 0x9c, 0x4a, 0xfa, 0x27, 0x8e, 0x38,
+ 0x1d, 0x38, 0xaf, 0x0d,
+};
+static const struct drbg_kat_pr_true kat3762_t = {
+ 11, kat3762_entropyin, kat3762_nonce, kat3762_persstr,
+ kat3762_entropyinpr1, kat3762_addinpr1, kat3762_entropyinpr2,
+ kat3762_addinpr2, kat3762_retbits
+};
+static const struct drbg_kat kat3762 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3762_t
+};
+
+static const unsigned char kat3763_entropyin[] = {
+ 0x3d, 0xf3, 0xf2, 0x2e, 0x70, 0xab, 0x49, 0x65, 0x80, 0xbb, 0x4c, 0xda,
+ 0xb8, 0x2c, 0x74, 0x9e, 0xb9, 0x54, 0x95, 0x8f, 0xef, 0xba, 0xa4, 0x0a,
+ 0xf2, 0x31, 0x0b, 0x73, 0xb0, 0xed, 0x0d, 0x94,
+};
+static const unsigned char kat3763_nonce[] = {0};
+static const unsigned char kat3763_persstr[] = {
+ 0xb8, 0x7b, 0xfd, 0x75, 0x8d, 0x8f, 0x36, 0x4f, 0x0b, 0x33, 0x6a, 0x0f,
+ 0xcc, 0x06, 0x92, 0xe8, 0x07, 0x50, 0x7c, 0x2a, 0xb8, 0xc0, 0x40, 0xa8,
+ 0xd2, 0xea, 0xa1, 0xef, 0xfa, 0xb7, 0xc9, 0x2f,
+};
+static const unsigned char kat3763_entropyinpr1[] = {
+ 0x13, 0xc4, 0x07, 0x2a, 0x34, 0xcc, 0x13, 0x05, 0x55, 0x5a, 0xbb, 0x1f,
+ 0xc9, 0x61, 0xf7, 0xfc, 0xca, 0x4d, 0x38, 0x9a, 0x35, 0x5f, 0xa3, 0x64,
+ 0xa7, 0x12, 0xe5, 0x85, 0xc1, 0x5c, 0x05, 0xce,
+};
+static const unsigned char kat3763_addinpr1[] = {0};
+static const unsigned char kat3763_entropyinpr2[] = {
+ 0x09, 0xc0, 0x21, 0xf8, 0xa8, 0x16, 0xe6, 0xf6, 0x16, 0x97, 0xa5, 0xb2,
+ 0x33, 0xd4, 0xa6, 0x64, 0xdd, 0xe2, 0xfd, 0x67, 0x8a, 0x61, 0x71, 0x7e,
+ 0x31, 0x08, 0xf6, 0x47, 0xc4, 0x30, 0xc1, 0x2c,
+};
+static const unsigned char kat3763_addinpr2[] = {0};
+static const unsigned char kat3763_retbits[] = {
+ 0xe2, 0x6a, 0x38, 0xfd, 0x0e, 0x4f, 0xbe, 0x95, 0xc4, 0x14, 0xdd, 0x60,
+ 0x00, 0xa2, 0xc7, 0x54, 0x4a, 0x5f, 0x59, 0xe0, 0x05, 0x29, 0x1c, 0x03,
+ 0xfe, 0x61, 0xbe, 0xa8, 0x5d, 0xa5, 0x81, 0xda, 0xee, 0xf2, 0xef, 0xf5,
+ 0xc8, 0xfa, 0x5c, 0x11, 0x29, 0xa3, 0x89, 0x86, 0x3b, 0x6e, 0xba, 0x26,
+ 0x9d, 0x73, 0xd2, 0x23, 0x03, 0x39, 0x96, 0xc9, 0x0b, 0x05, 0xa1, 0xe9,
+ 0x03, 0xa0, 0x7b, 0xcc,
+};
+static const struct drbg_kat_pr_true kat3763_t = {
+ 12, kat3763_entropyin, kat3763_nonce, kat3763_persstr,
+ kat3763_entropyinpr1, kat3763_addinpr1, kat3763_entropyinpr2,
+ kat3763_addinpr2, kat3763_retbits
+};
+static const struct drbg_kat kat3763 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3763_t
+};
+
+static const unsigned char kat3764_entropyin[] = {
+ 0xf5, 0xb4, 0x40, 0x81, 0x49, 0x69, 0x2b, 0x9d, 0xe6, 0x79, 0x49, 0xdb,
+ 0x4e, 0x7a, 0x9d, 0xb1, 0x60, 0x39, 0xab, 0xef, 0xb2, 0x41, 0x47, 0xe6,
+ 0x80, 0x86, 0x8b, 0x2e, 0xd3, 0xe6, 0x59, 0x24,
+};
+static const unsigned char kat3764_nonce[] = {0};
+static const unsigned char kat3764_persstr[] = {
+ 0x03, 0x46, 0xba, 0x04, 0x40, 0x77, 0x79, 0x84, 0x8e, 0xf2, 0x9c, 0x36,
+ 0xe4, 0x88, 0xa7, 0xce, 0x15, 0x5b, 0xfd, 0xe5, 0xa5, 0x7c, 0x09, 0x7f,
+ 0x6e, 0xd6, 0x58, 0xc2, 0x3d, 0x80, 0x18, 0xe0,
+};
+static const unsigned char kat3764_entropyinpr1[] = {
+ 0x91, 0x69, 0x37, 0x87, 0x55, 0xd1, 0xc4, 0xe9, 0x63, 0x64, 0xc3, 0x22,
+ 0x22, 0xb7, 0x2c, 0xa0, 0xa5, 0xb4, 0x2d, 0x55, 0x61, 0x86, 0x4b, 0x3f,
+ 0x60, 0xdd, 0x16, 0xcf, 0x3a, 0x30, 0x3a, 0x2d,
+};
+static const unsigned char kat3764_addinpr1[] = {0};
+static const unsigned char kat3764_entropyinpr2[] = {
+ 0x89, 0x2a, 0x51, 0xb9, 0x12, 0x56, 0x4f, 0x90, 0x2d, 0x8c, 0x81, 0x5d,
+ 0x76, 0x17, 0xb7, 0x61, 0xe5, 0x43, 0xb6, 0x51, 0x7e, 0x6d, 0x2b, 0xb9,
+ 0x08, 0xf0, 0xbc, 0xdd, 0x47, 0xee, 0x7a, 0x51,
+};
+static const unsigned char kat3764_addinpr2[] = {0};
+static const unsigned char kat3764_retbits[] = {
+ 0x04, 0x95, 0xa1, 0x6d, 0x1f, 0x6e, 0xeb, 0xb6, 0x7f, 0x47, 0x8a, 0x83,
+ 0xd5, 0x16, 0x06, 0x8b, 0x77, 0xdf, 0x89, 0x64, 0x48, 0xe9, 0x7b, 0x9f,
+ 0xa3, 0x50, 0x34, 0xe3, 0xc1, 0x99, 0x8b, 0x16, 0x49, 0xbb, 0x77, 0x67,
+ 0xc3, 0x6e, 0x28, 0x12, 0x5e, 0x7b, 0x78, 0x1a, 0xcb, 0xbd, 0xe9, 0x2c,
+ 0xbf, 0xb9, 0xb7, 0x2e, 0x1d, 0x90, 0x1e, 0x4e, 0x35, 0xef, 0x9a, 0x51,
+ 0x82, 0x2b, 0x0f, 0x3a,
+};
+static const struct drbg_kat_pr_true kat3764_t = {
+ 13, kat3764_entropyin, kat3764_nonce, kat3764_persstr,
+ kat3764_entropyinpr1, kat3764_addinpr1, kat3764_entropyinpr2,
+ kat3764_addinpr2, kat3764_retbits
+};
+static const struct drbg_kat kat3764 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3764_t
+};
+
+static const unsigned char kat3765_entropyin[] = {
+ 0xe5, 0xb6, 0x93, 0xf4, 0x8c, 0xc0, 0x0e, 0x33, 0x7e, 0x6b, 0x37, 0x02,
+ 0xaa, 0xff, 0x9a, 0xbf, 0xee, 0x6f, 0x32, 0x5a, 0x34, 0xff, 0x03, 0x27,
+ 0x4b, 0x7a, 0xb6, 0x41, 0x13, 0xf8, 0xea, 0x21,
+};
+static const unsigned char kat3765_nonce[] = {0};
+static const unsigned char kat3765_persstr[] = {
+ 0x31, 0xff, 0x20, 0x75, 0x18, 0x7f, 0x29, 0x96, 0x7b, 0xf9, 0x60, 0x2d,
+ 0xf6, 0x15, 0xf4, 0xb8, 0x05, 0x9b, 0xe5, 0x23, 0xe7, 0x7f, 0xff, 0x1f,
+ 0x82, 0xd6, 0xe1, 0xa8, 0x1c, 0xb5, 0x15, 0x34,
+};
+static const unsigned char kat3765_entropyinpr1[] = {
+ 0x24, 0xe9, 0xce, 0x22, 0xa7, 0x27, 0xe4, 0x54, 0x0d, 0x7d, 0x85, 0xe0,
+ 0x56, 0xbf, 0x64, 0x48, 0x06, 0x3d, 0x5f, 0x13, 0xda, 0xe5, 0x59, 0xe8,
+ 0xc0, 0x38, 0x0b, 0xd1, 0xb1, 0x90, 0xdd, 0xe7,
+};
+static const unsigned char kat3765_addinpr1[] = {0};
+static const unsigned char kat3765_entropyinpr2[] = {
+ 0x9a, 0x5f, 0x15, 0xc3, 0x60, 0x78, 0xcf, 0xa0, 0xc7, 0x68, 0x86, 0x88,
+ 0x16, 0xd5, 0xbd, 0x0b, 0x1d, 0x33, 0xc4, 0x92, 0xfa, 0x95, 0x54, 0x49,
+ 0x8b, 0x66, 0x25, 0x63, 0x9a, 0x29, 0x3d, 0xcc,
+};
+static const unsigned char kat3765_addinpr2[] = {0};
+static const unsigned char kat3765_retbits[] = {
+ 0x54, 0xc0, 0x2a, 0xa8, 0xe6, 0xcc, 0xc1, 0xf1, 0x09, 0xa5, 0xf2, 0x15,
+ 0xf4, 0x88, 0xfe, 0x9c, 0xa7, 0xc7, 0xce, 0xb3, 0xd1, 0xb0, 0xd9, 0xe9,
+ 0x25, 0x6a, 0xc4, 0xf5, 0xd4, 0x19, 0x5c, 0xc8, 0xc3, 0x6f, 0x8d, 0x8d,
+ 0xdf, 0xf5, 0x5e, 0xa1, 0x0f, 0x86, 0xd0, 0xeb, 0x5b, 0xdb, 0x5b, 0x11,
+ 0x63, 0x39, 0xb9, 0xc0, 0x22, 0x9e, 0xb7, 0xe9, 0x68, 0x14, 0x01, 0x2a,
+ 0x2e, 0xd5, 0xeb, 0x0a,
+};
+static const struct drbg_kat_pr_true kat3765_t = {
+ 14, kat3765_entropyin, kat3765_nonce, kat3765_persstr,
+ kat3765_entropyinpr1, kat3765_addinpr1, kat3765_entropyinpr2,
+ kat3765_addinpr2, kat3765_retbits
+};
+static const struct drbg_kat kat3765 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3765_t
+};
+
+static const unsigned char kat3766_entropyin[] = {
+ 0xba, 0x18, 0xf1, 0x4f, 0xb9, 0x28, 0xd7, 0x68, 0x6c, 0x62, 0x54, 0x1f,
+ 0x37, 0xb0, 0x51, 0x78, 0x4b, 0x33, 0x66, 0xb7, 0xd1, 0x32, 0x7b, 0x31,
+ 0xc7, 0xb9, 0x04, 0xc5, 0xff, 0xaf, 0xe3, 0x75,
+};
+static const unsigned char kat3766_nonce[] = {0};
+static const unsigned char kat3766_persstr[] = {
+ 0x14, 0x08, 0xa9, 0x34, 0xd2, 0xd4, 0x07, 0x9d, 0xef, 0xd0, 0xaa, 0x01,
+ 0xfe, 0xc7, 0x77, 0x03, 0xea, 0x97, 0x4f, 0x93, 0xca, 0x5a, 0xf3, 0x88,
+ 0xad, 0x7c, 0x67, 0xb1, 0x54, 0x35, 0x7c, 0x1b,
+};
+static const unsigned char kat3766_entropyinpr1[] = {
+ 0x32, 0xaa, 0x9d, 0x4e, 0xf8, 0xff, 0x81, 0xb9, 0x58, 0x86, 0xe1, 0x6e,
+ 0x6e, 0x91, 0x59, 0xbe, 0x26, 0xd5, 0x52, 0x8a, 0xc3, 0x6a, 0x2f, 0xf1,
+ 0xb9, 0x10, 0xa9, 0x18, 0xae, 0x65, 0x22, 0x40,
+};
+static const unsigned char kat3766_addinpr1[] = {
+ 0x2c, 0x1c, 0x1c, 0xdd, 0x21, 0x2b, 0x37, 0x16, 0x50, 0xf5, 0x35, 0x9c,
+ 0x9f, 0x90, 0x64, 0xa1, 0xfa, 0xce, 0x05, 0xf5, 0x12, 0x32, 0x5b, 0xe7,
+ 0x9a, 0xfb, 0xdd, 0xa7, 0x32, 0xcd, 0x44, 0x72,
+};
+static const unsigned char kat3766_entropyinpr2[] = {
+ 0x69, 0x0c, 0x18, 0x45, 0xba, 0xd0, 0x69, 0x96, 0xb0, 0x76, 0xf9, 0xaa,
+ 0xd0, 0xf2, 0xc1, 0x7d, 0x0c, 0x30, 0x4a, 0xab, 0x35, 0xb2, 0x6b, 0x81,
+ 0xaf, 0x72, 0xb4, 0x02, 0xf5, 0xe2, 0xac, 0x82,
+};
+static const unsigned char kat3766_addinpr2[] = {
+ 0x7b, 0xec, 0x3e, 0x0b, 0x55, 0x09, 0xd6, 0xb8, 0x65, 0x96, 0x0e, 0x94,
+ 0x3e, 0x87, 0xe4, 0x11, 0x90, 0xdb, 0xe3, 0x38, 0xf2, 0x8f, 0xb6, 0x39,
+ 0x62, 0x21, 0x4c, 0x49, 0x4e, 0xd1, 0x64, 0xeb,
+};
+static const unsigned char kat3766_retbits[] = {
+ 0x77, 0x91, 0x6b, 0x29, 0x3b, 0x63, 0xc3, 0x72, 0xae, 0x03, 0xd0, 0xb6,
+ 0xee, 0x52, 0x05, 0x24, 0xb7, 0x4d, 0x16, 0xbd, 0x1d, 0xd8, 0xbe, 0xb5,
+ 0x56, 0xea, 0xbe, 0xa7, 0x17, 0x3d, 0xa3, 0x45, 0x21, 0x33, 0x9e, 0xb2,
+ 0xf7, 0x70, 0xcc, 0x77, 0xce, 0x3d, 0x93, 0x29, 0x28, 0x0c, 0xc6, 0x68,
+ 0x17, 0x75, 0xb4, 0xe2, 0x7e, 0xad, 0xa6, 0x2c, 0x39, 0x2f, 0x4d, 0x07,
+ 0x7c, 0x2c, 0xc8, 0xac,
+};
+static const struct drbg_kat_pr_true kat3766_t = {
+ 0, kat3766_entropyin, kat3766_nonce, kat3766_persstr,
+ kat3766_entropyinpr1, kat3766_addinpr1, kat3766_entropyinpr2,
+ kat3766_addinpr2, kat3766_retbits
+};
+static const struct drbg_kat kat3766 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3766_t
+};
+
+static const unsigned char kat3767_entropyin[] = {
+ 0x2e, 0xa5, 0xa3, 0xfd, 0x54, 0xa0, 0x63, 0x41, 0x30, 0xe8, 0xc2, 0x2f,
+ 0x59, 0xc5, 0x03, 0xe6, 0xf3, 0x91, 0x86, 0x92, 0x0a, 0x9d, 0x8e, 0x47,
+ 0xf4, 0x1f, 0xe0, 0x7c, 0xdb, 0x81, 0xae, 0xa4,
+};
+static const unsigned char kat3767_nonce[] = {0};
+static const unsigned char kat3767_persstr[] = {
+ 0x7d, 0xee, 0x98, 0xb4, 0xf3, 0x78, 0xb8, 0x0f, 0x69, 0x7c, 0xab, 0x1b,
+ 0xa2, 0xcb, 0x26, 0xc2, 0xc2, 0x70, 0xbb, 0x6b, 0xb0, 0x22, 0xd6, 0xf7,
+ 0xe8, 0xe5, 0x2b, 0x44, 0xcb, 0x01, 0xc6, 0xf1,
+};
+static const unsigned char kat3767_entropyinpr1[] = {
+ 0x4c, 0x32, 0x65, 0x3a, 0x06, 0x99, 0x63, 0xa1, 0x7c, 0xc8, 0x40, 0x37,
+ 0x2e, 0x81, 0x5e, 0x4c, 0xe0, 0xa4, 0x38, 0xe2, 0xea, 0xa0, 0x73, 0x3f,
+ 0xc2, 0xb5, 0xe8, 0xa4, 0x4e, 0xcd, 0xbe, 0xc8,
+};
+static const unsigned char kat3767_addinpr1[] = {
+ 0x89, 0x2a, 0xb8, 0x12, 0xcc, 0xd6, 0x04, 0x7a, 0xdc, 0xf6, 0xda, 0x0f,
+ 0x94, 0x32, 0xd6, 0x78, 0x0f, 0x46, 0x69, 0xaa, 0xd3, 0x1e, 0x12, 0x33,
+ 0xbd, 0xd7, 0x44, 0x77, 0xf5, 0x63, 0x45, 0x5d,
+};
+static const unsigned char kat3767_entropyinpr2[] = {
+ 0xc5, 0x36, 0xb6, 0x30, 0x5e, 0xdb, 0x8a, 0x6a, 0x3f, 0x96, 0x36, 0x83,
+ 0x6d, 0x4c, 0x59, 0x40, 0x2d, 0xca, 0x5f, 0x64, 0xb4, 0xd7, 0xdd, 0x16,
+ 0xfb, 0xd1, 0x1b, 0xc7, 0x65, 0x84, 0xd2, 0x92,
+};
+static const unsigned char kat3767_addinpr2[] = {
+ 0x4e, 0x5a, 0x8d, 0xe1, 0x4c, 0x03, 0x10, 0x72, 0xe8, 0x94, 0xec, 0x98,
+ 0xde, 0x50, 0x20, 0x41, 0xc8, 0x1b, 0x5d, 0xc1, 0x04, 0x7e, 0x81, 0xd8,
+ 0xe2, 0x6c, 0x24, 0xa2, 0xd7, 0xf3, 0x81, 0xb9,
+};
+static const unsigned char kat3767_retbits[] = {
+ 0xab, 0xa9, 0x12, 0x5a, 0xcc, 0xe7, 0xfe, 0x77, 0xbf, 0xfb, 0x79, 0x6e,
+ 0x2f, 0xab, 0x64, 0xa2, 0xdd, 0x90, 0x60, 0x11, 0xa7, 0x59, 0x51, 0x52,
+ 0xcf, 0xc5, 0xc7, 0x2a, 0x7b, 0x32, 0xbe, 0xea, 0xdc, 0x5f, 0xcd, 0xa5,
+ 0xd5, 0x5c, 0x72, 0x10, 0x4e, 0x7c, 0x36, 0x6c, 0x56, 0x49, 0x8d, 0xcb,
+ 0xb7, 0x0f, 0xe5, 0xc2, 0x90, 0x40, 0x3b, 0x22, 0xad, 0x90, 0xc2, 0x39,
+ 0x9e, 0xa0, 0x69, 0xf6,
+};
+static const struct drbg_kat_pr_true kat3767_t = {
+ 1, kat3767_entropyin, kat3767_nonce, kat3767_persstr,
+ kat3767_entropyinpr1, kat3767_addinpr1, kat3767_entropyinpr2,
+ kat3767_addinpr2, kat3767_retbits
+};
+static const struct drbg_kat kat3767 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3767_t
+};
+
+static const unsigned char kat3768_entropyin[] = {
+ 0x9f, 0x60, 0x15, 0x5d, 0x5c, 0xfe, 0xb9, 0xed, 0x55, 0xa6, 0xb0, 0x41,
+ 0x7b, 0xd5, 0x1e, 0xe0, 0xcb, 0x4d, 0xd6, 0xc4, 0xb9, 0x3a, 0xf5, 0xc3,
+ 0x40, 0x9c, 0x9d, 0x59, 0xcc, 0x72, 0xd3, 0x21,
+};
+static const unsigned char kat3768_nonce[] = {0};
+static const unsigned char kat3768_persstr[] = {
+ 0x94, 0xdc, 0xc3, 0x91, 0x80, 0x35, 0x22, 0xf5, 0xb0, 0xc0, 0x29, 0x47,
+ 0x76, 0x78, 0xe6, 0xe5, 0xd1, 0x84, 0x32, 0xf9, 0xdb, 0x50, 0x76, 0xa1,
+ 0x3a, 0xad, 0xe6, 0xc0, 0x3a, 0xb5, 0xbf, 0x71,
+};
+static const unsigned char kat3768_entropyinpr1[] = {
+ 0x3a, 0xf6, 0x14, 0x8f, 0x14, 0x27, 0xda, 0x27, 0xca, 0x93, 0x5a, 0x8b,
+ 0x98, 0x58, 0x1e, 0xb0, 0x9a, 0xf8, 0xeb, 0xbf, 0xfe, 0x04, 0xcc, 0x70,
+ 0x3d, 0x4b, 0x56, 0xab, 0x4c, 0x34, 0x7f, 0x06,
+};
+static const unsigned char kat3768_addinpr1[] = {
+ 0x71, 0xe2, 0x01, 0xae, 0x29, 0x09, 0x71, 0x66, 0xe2, 0x88, 0x3a, 0xc3,
+ 0xf2, 0x94, 0xcd, 0x79, 0x81, 0x65, 0x6a, 0xf4, 0x5c, 0x1e, 0xf8, 0xc9,
+ 0x55, 0x67, 0x1f, 0x96, 0x31, 0x83, 0xbd, 0x36,
+};
+static const unsigned char kat3768_entropyinpr2[] = {
+ 0xa5, 0xf5, 0x23, 0x5d, 0x90, 0xd9, 0xc6, 0x68, 0x1e, 0x83, 0xf5, 0x02,
+ 0x9f, 0x7d, 0x5f, 0xd9, 0xf6, 0xad, 0x80, 0xdb, 0xbc, 0xff, 0x3d, 0xd2,
+ 0x20, 0x01, 0xd1, 0x67, 0x3b, 0xb4, 0x1d, 0xfc,
+};
+static const unsigned char kat3768_addinpr2[] = {
+ 0xcc, 0xad, 0x3d, 0xff, 0x4e, 0x4f, 0x80, 0x20, 0x8a, 0x5a, 0xfa, 0x69,
+ 0x18, 0xed, 0x22, 0x0d, 0x2e, 0xab, 0x2a, 0x44, 0x67, 0x0a, 0xfe, 0xf2,
+ 0xb4, 0x4d, 0x9f, 0x3a, 0x2c, 0xd7, 0x24, 0xd5,
+};
+static const unsigned char kat3768_retbits[] = {
+ 0x90, 0x6c, 0x4f, 0x3a, 0xc4, 0xad, 0xed, 0x23, 0x71, 0xd5, 0xd8, 0x4f,
+ 0x14, 0x9a, 0x60, 0x56, 0xdc, 0xdb, 0x94, 0x72, 0x2d, 0x7d, 0x8c, 0x1d,
+ 0x08, 0xb7, 0xe6, 0xf8, 0xff, 0x02, 0x2a, 0xf1, 0xcd, 0xcf, 0xd7, 0x1f,
+ 0x9f, 0x04, 0xfb, 0x15, 0x32, 0x44, 0x35, 0xfc, 0x2d, 0xb8, 0x73, 0x11,
+ 0x20, 0x96, 0xa4, 0x4e, 0xa2, 0x48, 0x7e, 0x63, 0xa7, 0x85, 0x33, 0x8b,
+ 0x4f, 0x3a, 0x80, 0x6d,
+};
+static const struct drbg_kat_pr_true kat3768_t = {
+ 2, kat3768_entropyin, kat3768_nonce, kat3768_persstr,
+ kat3768_entropyinpr1, kat3768_addinpr1, kat3768_entropyinpr2,
+ kat3768_addinpr2, kat3768_retbits
+};
+static const struct drbg_kat kat3768 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3768_t
+};
+
+static const unsigned char kat3769_entropyin[] = {
+ 0xca, 0x8c, 0xb0, 0x25, 0xb5, 0x11, 0xe5, 0x32, 0x7a, 0xa0, 0xad, 0xf2,
+ 0xee, 0x64, 0x18, 0xad, 0x14, 0xd7, 0xd8, 0xfa, 0xbb, 0xa4, 0xc4, 0x1f,
+ 0xf9, 0x14, 0x3e, 0xd6, 0xa4, 0x45, 0xf8, 0x8e,
+};
+static const unsigned char kat3769_nonce[] = {0};
+static const unsigned char kat3769_persstr[] = {
+ 0x66, 0xb4, 0xa7, 0x60, 0xca, 0x7f, 0xa0, 0x52, 0x18, 0x2c, 0xc2, 0xf5,
+ 0x7d, 0xac, 0x55, 0xa5, 0xec, 0x18, 0xc7, 0xe0, 0x82, 0x9a, 0xea, 0x28,
+ 0x20, 0xca, 0x4a, 0x06, 0x33, 0xff, 0xe2, 0x73,
+};
+static const unsigned char kat3769_entropyinpr1[] = {
+ 0xe3, 0xe1, 0x52, 0xd3, 0xee, 0x5c, 0x00, 0x8c, 0x71, 0x94, 0x7a, 0x2e,
+ 0x86, 0xcb, 0x64, 0x45, 0x44, 0xd9, 0xeb, 0x81, 0xd2, 0xec, 0xc5, 0xc0,
+ 0x7e, 0x57, 0x8d, 0xbf, 0xfa, 0x2a, 0xc8, 0x9b,
+};
+static const unsigned char kat3769_addinpr1[] = {
+ 0x14, 0x01, 0xb6, 0xee, 0xdc, 0x19, 0x51, 0x2e, 0x56, 0xf3, 0xc3, 0xdc,
+ 0x58, 0x89, 0x5d, 0x71, 0xb3, 0x50, 0x3b, 0x52, 0xa8, 0x28, 0xd2, 0xda,
+ 0x98, 0xd3, 0x6e, 0x00, 0x20, 0x0a, 0x01, 0xe2,
+};
+static const unsigned char kat3769_entropyinpr2[] = {
+ 0x91, 0xe0, 0x91, 0xfa, 0xa8, 0x67, 0xbf, 0x42, 0x60, 0x5c, 0x8d, 0x75,
+ 0xf8, 0x02, 0xe7, 0x16, 0x99, 0x9a, 0x9b, 0x5c, 0x44, 0xb6, 0x4d, 0xcb,
+ 0xb5, 0x19, 0xb2, 0xbc, 0x30, 0x08, 0x15, 0x8d,
+};
+static const unsigned char kat3769_addinpr2[] = {
+ 0x76, 0x43, 0x23, 0x11, 0x99, 0xe4, 0xb5, 0x0f, 0xb2, 0xd8, 0xb4, 0xe7,
+ 0xea, 0x8d, 0xb4, 0x9d, 0x00, 0x70, 0x0d, 0x2f, 0x69, 0xcc, 0xbe, 0xa6,
+ 0x35, 0xbd, 0x39, 0xc2, 0x63, 0x00, 0x5a, 0x3f,
+};
+static const unsigned char kat3769_retbits[] = {
+ 0x4e, 0x9c, 0x31, 0x37, 0xcc, 0x9d, 0xc6, 0x27, 0xa7, 0xfe, 0xd3, 0xff,
+ 0xa6, 0xff, 0xf4, 0xd4, 0x43, 0x5f, 0x3c, 0xba, 0xd5, 0x69, 0xf3, 0x73,
+ 0xbc, 0xbd, 0x0e, 0xa3, 0xdf, 0x73, 0xc2, 0xdc, 0xec, 0x23, 0x0b, 0x2b,
+ 0xf0, 0x08, 0x1c, 0x6e, 0x6a, 0xa0, 0x26, 0xfa, 0xd4, 0x09, 0x84, 0x0d,
+ 0xab, 0xcb, 0xc6, 0x1f, 0x37, 0x55, 0x10, 0x82, 0xb2, 0x82, 0x10, 0x9c,
+ 0x5d, 0x1d, 0xb6, 0xc3,
+};
+static const struct drbg_kat_pr_true kat3769_t = {
+ 3, kat3769_entropyin, kat3769_nonce, kat3769_persstr,
+ kat3769_entropyinpr1, kat3769_addinpr1, kat3769_entropyinpr2,
+ kat3769_addinpr2, kat3769_retbits
+};
+static const struct drbg_kat kat3769 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3769_t
+};
+
+static const unsigned char kat3770_entropyin[] = {
+ 0x0d, 0x22, 0x34, 0x34, 0xa0, 0xaf, 0x6e, 0x4a, 0x60, 0x63, 0x81, 0x44,
+ 0xad, 0x55, 0xed, 0x14, 0x1d, 0xa1, 0x92, 0x0c, 0x0d, 0x4c, 0xe6, 0x39,
+ 0xe0, 0x38, 0xe8, 0x9d, 0x93, 0x62, 0x8d, 0xc9,
+};
+static const unsigned char kat3770_nonce[] = {0};
+static const unsigned char kat3770_persstr[] = {
+ 0xef, 0xca, 0x79, 0x4c, 0x07, 0xb2, 0x35, 0xe0, 0x9a, 0x6c, 0xc6, 0x85,
+ 0xa3, 0x39, 0x0b, 0x84, 0x65, 0x5e, 0x04, 0xb8, 0xeb, 0x92, 0x4a, 0xd3,
+ 0xed, 0x4d, 0x35, 0x6f, 0x80, 0x6a, 0x61, 0x00,
+};
+static const unsigned char kat3770_entropyinpr1[] = {
+ 0x0e, 0xc6, 0x96, 0xe5, 0x2d, 0x57, 0xbc, 0xec, 0xd2, 0x31, 0x03, 0xfe,
+ 0x5d, 0x54, 0x21, 0xf5, 0x3e, 0xb1, 0xab, 0x16, 0x3a, 0x9a, 0xd0, 0x91,
+ 0xe5, 0xc4, 0x78, 0x9c, 0xf6, 0xac, 0xa0, 0xf2,
+};
+static const unsigned char kat3770_addinpr1[] = {
+ 0x93, 0xe5, 0x64, 0x8c, 0x4c, 0xa0, 0x9a, 0x97, 0x48, 0xa8, 0x1a, 0xf0,
+ 0xce, 0x83, 0xc3, 0xb8, 0x44, 0x9f, 0xa6, 0x7c, 0x5d, 0x46, 0x18, 0x56,
+ 0x86, 0xeb, 0xbd, 0x6d, 0xc1, 0xd9, 0x58, 0x56,
+};
+static const unsigned char kat3770_entropyinpr2[] = {
+ 0x19, 0xda, 0x72, 0x04, 0x93, 0x7c, 0xc7, 0x4f, 0x4b, 0x1e, 0x70, 0xed,
+ 0x06, 0xf1, 0x9e, 0x9c, 0xe8, 0x66, 0xcd, 0x5d, 0xe3, 0x13, 0x12, 0xa4,
+ 0xf0, 0x95, 0xb7, 0xed, 0xa1, 0x5f, 0xb1, 0x9d,
+};
+static const unsigned char kat3770_addinpr2[] = {
+ 0x38, 0xdd, 0xab, 0x18, 0xeb, 0x96, 0x0e, 0xb5, 0x57, 0x75, 0x09, 0x87,
+ 0x9e, 0xe7, 0x5a, 0x24, 0x66, 0x8f, 0x04, 0xdb, 0x74, 0x63, 0x1e, 0x40,
+ 0x7a, 0xd7, 0x44, 0xdb, 0x98, 0x9d, 0x4f, 0x52,
+};
+static const unsigned char kat3770_retbits[] = {
+ 0x07, 0xfa, 0x35, 0x10, 0x26, 0x12, 0x68, 0xd9, 0x44, 0x0d, 0x83, 0x26,
+ 0x28, 0x78, 0xdb, 0x37, 0xf8, 0xe5, 0x4e, 0x79, 0xb7, 0x74, 0x51, 0xe1,
+ 0x6e, 0xf5, 0x1a, 0x3e, 0x9a, 0x13, 0x4d, 0x51, 0x0a, 0x36, 0x07, 0x03,
+ 0x0c, 0x73, 0x18, 0xc8, 0x8f, 0xfd, 0x34, 0x21, 0x20, 0xde, 0xbf, 0xa7,
+ 0x16, 0xee, 0x9d, 0xfd, 0x07, 0xc1, 0x8e, 0x59, 0x3d, 0x5f, 0xc7, 0xcd,
+ 0x68, 0xbd, 0x47, 0x85,
+};
+static const struct drbg_kat_pr_true kat3770_t = {
+ 4, kat3770_entropyin, kat3770_nonce, kat3770_persstr,
+ kat3770_entropyinpr1, kat3770_addinpr1, kat3770_entropyinpr2,
+ kat3770_addinpr2, kat3770_retbits
+};
+static const struct drbg_kat kat3770 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3770_t
+};
+
+static const unsigned char kat3771_entropyin[] = {
+ 0x36, 0x25, 0xc0, 0xe3, 0x1b, 0x4d, 0xa7, 0xa3, 0xa4, 0x6d, 0x1e, 0x4b,
+ 0xd3, 0x87, 0x1f, 0x65, 0x03, 0xb2, 0x3c, 0x0b, 0xac, 0xf1, 0x92, 0x02,
+ 0xc8, 0x48, 0x39, 0xdc, 0x75, 0xb0, 0x2d, 0xa8,
+};
+static const unsigned char kat3771_nonce[] = {0};
+static const unsigned char kat3771_persstr[] = {
+ 0x58, 0xa8, 0x3c, 0xc2, 0xc7, 0x2c, 0x15, 0x66, 0x0e, 0x59, 0xff, 0x13,
+ 0xe9, 0x32, 0xeb, 0x92, 0xe8, 0x55, 0xed, 0x63, 0x11, 0x8d, 0xe1, 0xf4,
+ 0xec, 0x1e, 0xff, 0x85, 0x50, 0xd4, 0x2d, 0xea,
+};
+static const unsigned char kat3771_entropyinpr1[] = {
+ 0xe6, 0x5f, 0x53, 0xcc, 0x6a, 0x5d, 0x0d, 0x63, 0x9e, 0x0a, 0x3a, 0x72,
+ 0xf8, 0x7e, 0x0c, 0x9e, 0x9a, 0xd8, 0xa1, 0xc5, 0x1e, 0x8d, 0xf8, 0x2c,
+ 0x73, 0x9a, 0xfb, 0x24, 0x3b, 0xd1, 0x55, 0xd2,
+};
+static const unsigned char kat3771_addinpr1[] = {
+ 0x41, 0x16, 0xc8, 0x66, 0x9d, 0x9d, 0x84, 0x62, 0x99, 0x07, 0x54, 0x29,
+ 0x9f, 0xd2, 0x82, 0xdb, 0x6e, 0xc7, 0x7d, 0x95, 0x67, 0x13, 0x50, 0xcf,
+ 0x3a, 0xb3, 0xac, 0xee, 0xeb, 0x46, 0xb7, 0x94,
+};
+static const unsigned char kat3771_entropyinpr2[] = {
+ 0x79, 0x38, 0x90, 0x23, 0x56, 0x6a, 0xd6, 0x0f, 0x80, 0x86, 0xe7, 0xfb,
+ 0x6b, 0x4c, 0x24, 0x75, 0x77, 0x05, 0xc4, 0xa6, 0x52, 0x6d, 0x80, 0x42,
+ 0xd3, 0x89, 0x9a, 0x65, 0x63, 0x60, 0x2a, 0x8e,
+};
+static const unsigned char kat3771_addinpr2[] = {
+ 0xd6, 0xb8, 0xd5, 0xdb, 0x3b, 0x72, 0x8c, 0x0b, 0x2b, 0xb5, 0xb7, 0x6a,
+ 0x49, 0x6d, 0x50, 0xad, 0xf3, 0xac, 0xd9, 0xa6, 0xfb, 0x25, 0xe8, 0x5b,
+ 0x5f, 0x47, 0xbe, 0xfc, 0x22, 0x53, 0xf7, 0x5c,
+};
+static const unsigned char kat3771_retbits[] = {
+ 0xfb, 0xde, 0xa1, 0xd6, 0x61, 0xa9, 0x6d, 0xe7, 0xc8, 0x61, 0xf8, 0x77,
+ 0xfd, 0x00, 0x8a, 0x38, 0x40, 0xef, 0xd3, 0xef, 0x47, 0x74, 0xdd, 0x9c,
+ 0xa0, 0x9d, 0xd1, 0x89, 0x74, 0xb9, 0x05, 0x09, 0xdb, 0xd6, 0xb3, 0x88,
+ 0xc5, 0x97, 0x5b, 0xde, 0xad, 0x20, 0xc9, 0x38, 0xfd, 0x21, 0x31, 0xf5,
+ 0x30, 0xb5, 0xa4, 0x16, 0xbd, 0x6c, 0x01, 0x4c, 0x9f, 0xf5, 0x19, 0xdb,
+ 0xfd, 0x38, 0x25, 0x4d,
+};
+static const struct drbg_kat_pr_true kat3771_t = {
+ 5, kat3771_entropyin, kat3771_nonce, kat3771_persstr,
+ kat3771_entropyinpr1, kat3771_addinpr1, kat3771_entropyinpr2,
+ kat3771_addinpr2, kat3771_retbits
+};
+static const struct drbg_kat kat3771 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3771_t
+};
+
+static const unsigned char kat3772_entropyin[] = {
+ 0x30, 0x80, 0x0d, 0x7c, 0xa1, 0x7a, 0x45, 0xe8, 0x2b, 0x83, 0x07, 0x27,
+ 0x9a, 0x99, 0x1c, 0xaf, 0x9f, 0xa9, 0x7d, 0xe6, 0xe0, 0x3a, 0x45, 0x47,
+ 0xbc, 0x27, 0x28, 0xe1, 0x96, 0xa6, 0x79, 0x8e,
+};
+static const unsigned char kat3772_nonce[] = {0};
+static const unsigned char kat3772_persstr[] = {
+ 0x91, 0xb2, 0x95, 0x59, 0x8f, 0xe6, 0xd4, 0x7c, 0xd6, 0x20, 0x9c, 0xf8,
+ 0xd9, 0x71, 0xee, 0x57, 0x41, 0x7a, 0x50, 0xc7, 0x41, 0x70, 0x07, 0x40,
+ 0x8a, 0x65, 0x98, 0xdb, 0x27, 0x77, 0xb1, 0x3a,
+};
+static const unsigned char kat3772_entropyinpr1[] = {
+ 0x96, 0x20, 0xfd, 0x1e, 0x59, 0x11, 0x0a, 0x92, 0xf3, 0x2b, 0xb9, 0x04,
+ 0xe3, 0xea, 0xbd, 0xd1, 0x6c, 0x98, 0x67, 0x1e, 0x37, 0xa4, 0x45, 0xd6,
+ 0xca, 0x21, 0xd1, 0xef, 0x3a, 0x8c, 0x44, 0xd5,
+};
+static const unsigned char kat3772_addinpr1[] = {
+ 0x92, 0xfb, 0x70, 0x02, 0xe3, 0x25, 0xa0, 0x0a, 0x73, 0xa2, 0x50, 0x4b,
+ 0x68, 0xc1, 0x20, 0xa5, 0x12, 0x65, 0x71, 0xf9, 0xd9, 0xf7, 0xf2, 0x33,
+ 0x7c, 0xa7, 0xb7, 0xaa, 0x6a, 0xf6, 0xc7, 0x10,
+};
+static const unsigned char kat3772_entropyinpr2[] = {
+ 0x79, 0x9f, 0xb4, 0xbe, 0xc7, 0xe3, 0xfb, 0x89, 0x2f, 0x29, 0x41, 0x95,
+ 0xfa, 0x05, 0xe6, 0x0c, 0xa1, 0x1a, 0x09, 0xce, 0x2e, 0x41, 0xd7, 0x47,
+ 0x9f, 0x4c, 0x97, 0xea, 0x8b, 0x4f, 0x1f, 0xfd,
+};
+static const unsigned char kat3772_addinpr2[] = {
+ 0x97, 0xee, 0x81, 0xb5, 0xd7, 0x94, 0x71, 0xfa, 0xf1, 0x0c, 0x74, 0x04,
+ 0x73, 0x70, 0x2d, 0x74, 0xa6, 0xab, 0xf2, 0x29, 0x0a, 0x88, 0x97, 0xbe,
+ 0x7f, 0x6d, 0x56, 0x23, 0x6f, 0xc8, 0x6f, 0x56,
+};
+static const unsigned char kat3772_retbits[] = {
+ 0x34, 0x51, 0x7c, 0xf4, 0xcd, 0xe2, 0x75, 0xe3, 0x3f, 0xad, 0x5f, 0x0c,
+ 0x13, 0xe1, 0x94, 0x57, 0xa1, 0x27, 0xc3, 0x6f, 0xf4, 0xdf, 0x90, 0x96,
+ 0xfb, 0xbc, 0x68, 0xa4, 0x5b, 0x8a, 0xb4, 0x32, 0xa9, 0x3e, 0xbb, 0x4f,
+ 0x98, 0xcf, 0xbe, 0x5e, 0xeb, 0x34, 0x4c, 0xe3, 0xf6, 0x31, 0xed, 0x46,
+ 0x6b, 0x5a, 0x48, 0x85, 0xb7, 0xf3, 0xbe, 0x02, 0xd2, 0xda, 0xd9, 0x45,
+ 0x09, 0x7e, 0x5f, 0x84,
+};
+static const struct drbg_kat_pr_true kat3772_t = {
+ 6, kat3772_entropyin, kat3772_nonce, kat3772_persstr,
+ kat3772_entropyinpr1, kat3772_addinpr1, kat3772_entropyinpr2,
+ kat3772_addinpr2, kat3772_retbits
+};
+static const struct drbg_kat kat3772 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3772_t
+};
+
+static const unsigned char kat3773_entropyin[] = {
+ 0x51, 0x67, 0xd2, 0xbc, 0x1d, 0x6e, 0x96, 0x1f, 0xfc, 0x0c, 0xd4, 0x37,
+ 0x03, 0x83, 0xe9, 0xf1, 0x9d, 0xd5, 0xca, 0xfd, 0xc9, 0x76, 0x6a, 0x8d,
+ 0xfa, 0x20, 0xef, 0x7d, 0xaf, 0x78, 0xdb, 0x05,
+};
+static const unsigned char kat3773_nonce[] = {0};
+static const unsigned char kat3773_persstr[] = {
+ 0xf7, 0x88, 0x07, 0x9f, 0x78, 0x0a, 0xfb, 0x0d, 0xfd, 0x22, 0x88, 0x28,
+ 0x20, 0xa9, 0x7d, 0x83, 0x3c, 0x60, 0x0d, 0xf8, 0x6e, 0xdc, 0x31, 0xa0,
+ 0x40, 0xfd, 0x13, 0x75, 0x4a, 0xe3, 0x98, 0x1e,
+};
+static const unsigned char kat3773_entropyinpr1[] = {
+ 0xf6, 0xed, 0xab, 0x02, 0x88, 0x17, 0xce, 0x8e, 0x37, 0x73, 0x4c, 0x20,
+ 0xfb, 0xdd, 0x5c, 0x2c, 0xab, 0xa6, 0xf9, 0xf3, 0xb6, 0x5a, 0xd6, 0x58,
+ 0xbb, 0x34, 0x97, 0x09, 0xe5, 0xa9, 0x59, 0xba,
+};
+static const unsigned char kat3773_addinpr1[] = {
+ 0xb2, 0x53, 0xa2, 0xde, 0xfe, 0x03, 0xb7, 0x9f, 0xc8, 0x1a, 0x2c, 0xde,
+ 0xc5, 0xe6, 0xf0, 0xdf, 0x30, 0xd3, 0x61, 0xf1, 0x31, 0x11, 0xe4, 0x04,
+ 0x63, 0x0a, 0x27, 0xc7, 0xd2, 0x87, 0x76, 0xf7,
+};
+static const unsigned char kat3773_entropyinpr2[] = {
+ 0xbd, 0xb4, 0x41, 0xbe, 0x3c, 0x41, 0x9f, 0x69, 0x6d, 0xd6, 0x97, 0x1f,
+ 0x4d, 0xf2, 0x63, 0x51, 0x4a, 0xa8, 0x63, 0x75, 0x7a, 0x81, 0x9f, 0xba,
+ 0xf2, 0x89, 0x45, 0x76, 0x8f, 0xe8, 0x8d, 0x20,
+};
+static const unsigned char kat3773_addinpr2[] = {
+ 0xd8, 0xfa, 0x7b, 0xc7, 0x70, 0x63, 0x04, 0x96, 0xe3, 0xfd, 0x98, 0x29,
+ 0x41, 0x55, 0xb9, 0x7f, 0xfd, 0x4a, 0x38, 0x7f, 0x0d, 0xe6, 0x9d, 0xff,
+ 0x0f, 0x7e, 0x72, 0x50, 0x7c, 0x7b, 0x45, 0x46,
+};
+static const unsigned char kat3773_retbits[] = {
+ 0xd7, 0x6b, 0x76, 0x3a, 0x20, 0x24, 0x9c, 0x39, 0x0b, 0x91, 0xce, 0x83,
+ 0x82, 0x47, 0x87, 0x82, 0x23, 0x07, 0xe1, 0xc8, 0xb7, 0x81, 0x3d, 0x8f,
+ 0xdf, 0x4d, 0xf8, 0xa7, 0x3c, 0xa4, 0x0c, 0xbb, 0xe7, 0x52, 0xbe, 0x73,
+ 0x21, 0xf8, 0x3e, 0xc1, 0xb1, 0xd4, 0x97, 0xf3, 0x09, 0x01, 0xd7, 0x38,
+ 0x36, 0x15, 0x29, 0x0c, 0xea, 0x94, 0x30, 0x29, 0xcf, 0xd1, 0x8a, 0x43,
+ 0x26, 0x8a, 0x3f, 0x87,
+};
+static const struct drbg_kat_pr_true kat3773_t = {
+ 7, kat3773_entropyin, kat3773_nonce, kat3773_persstr,
+ kat3773_entropyinpr1, kat3773_addinpr1, kat3773_entropyinpr2,
+ kat3773_addinpr2, kat3773_retbits
+};
+static const struct drbg_kat kat3773 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3773_t
+};
+
+static const unsigned char kat3774_entropyin[] = {
+ 0x6f, 0xf9, 0x15, 0xee, 0x3d, 0xb8, 0x66, 0x62, 0x8a, 0xed, 0x69, 0x1a,
+ 0xf9, 0xe3, 0x05, 0xca, 0xf0, 0x88, 0xb5, 0xe5, 0x54, 0xcf, 0x2b, 0xeb,
+ 0x1e, 0x56, 0x41, 0x69, 0x3f, 0x7c, 0xbc, 0x21,
+};
+static const unsigned char kat3774_nonce[] = {0};
+static const unsigned char kat3774_persstr[] = {
+ 0x80, 0xcf, 0x68, 0xb0, 0x1d, 0xba, 0xb7, 0x98, 0x74, 0xf4, 0x5d, 0xce,
+ 0x79, 0x68, 0x1a, 0x28, 0x48, 0xbe, 0x47, 0x9e, 0xcd, 0xc7, 0x01, 0xd3,
+ 0x3c, 0x1c, 0x78, 0xc1, 0xef, 0x4c, 0xb9, 0xfe,
+};
+static const unsigned char kat3774_entropyinpr1[] = {
+ 0xb3, 0x35, 0x8c, 0x4c, 0x5a, 0x68, 0x17, 0x80, 0x44, 0x79, 0xa2, 0x71,
+ 0xc7, 0x12, 0xc3, 0xea, 0xfc, 0x53, 0x74, 0xee, 0x2b, 0x63, 0xb2, 0x61,
+ 0xa0, 0xb0, 0x7b, 0xe1, 0xa9, 0xfb, 0x8a, 0x4a,
+};
+static const unsigned char kat3774_addinpr1[] = {
+ 0x83, 0x62, 0x11, 0xab, 0x7b, 0x1a, 0x3c, 0x4d, 0x0a, 0x0d, 0xe4, 0xa9,
+ 0xf1, 0xed, 0x70, 0xb3, 0x04, 0x66, 0x87, 0xc7, 0xe8, 0xfb, 0x87, 0x91,
+ 0x9b, 0xb6, 0x82, 0x64, 0x7b, 0xaa, 0xf2, 0x75,
+};
+static const unsigned char kat3774_entropyinpr2[] = {
+ 0xbd, 0xdc, 0xf3, 0xcf, 0xf1, 0x43, 0x0e, 0xfe, 0x51, 0x53, 0x42, 0xd5,
+ 0x6f, 0xb8, 0xd8, 0x08, 0xae, 0xa7, 0xed, 0xc6, 0x99, 0x87, 0x0e, 0xf2,
+ 0x8a, 0xdf, 0xa5, 0xfb, 0xce, 0x3d, 0x45, 0xfd,
+};
+static const unsigned char kat3774_addinpr2[] = {
+ 0x49, 0x6a, 0xc3, 0xd6, 0x07, 0xcc, 0xcd, 0x79, 0x56, 0xfe, 0x9c, 0x76,
+ 0xef, 0x9d, 0x17, 0xbd, 0x9a, 0x74, 0xf8, 0x72, 0x77, 0xb1, 0xfc, 0x24,
+ 0x08, 0xca, 0xe2, 0xf3, 0x9a, 0x72, 0x8b, 0x5f,
+};
+static const unsigned char kat3774_retbits[] = {
+ 0x23, 0x87, 0x50, 0xd4, 0x85, 0x45, 0xac, 0x5f, 0xae, 0xe0, 0x2b, 0x4d,
+ 0x80, 0xd6, 0x30, 0xc0, 0x4c, 0xa3, 0xd9, 0x26, 0x74, 0xa7, 0x87, 0x9b,
+ 0xda, 0xba, 0x72, 0x0b, 0x9a, 0x90, 0xd6, 0x43, 0xa9, 0x4e, 0x07, 0x10,
+ 0xa7, 0xfe, 0x43, 0x52, 0x7b, 0x75, 0x90, 0xac, 0x35, 0x6c, 0xa5, 0x5c,
+ 0x9a, 0x5f, 0x5f, 0xf5, 0x63, 0xb0, 0xd4, 0xb2, 0x6c, 0x3b, 0x2e, 0xb9,
+ 0x00, 0x40, 0x9e, 0x7e,
+};
+static const struct drbg_kat_pr_true kat3774_t = {
+ 8, kat3774_entropyin, kat3774_nonce, kat3774_persstr,
+ kat3774_entropyinpr1, kat3774_addinpr1, kat3774_entropyinpr2,
+ kat3774_addinpr2, kat3774_retbits
+};
+static const struct drbg_kat kat3774 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3774_t
+};
+
+static const unsigned char kat3775_entropyin[] = {
+ 0xb8, 0x66, 0xf2, 0x99, 0x6e, 0x94, 0x8d, 0xd1, 0xb0, 0x07, 0x71, 0x0d,
+ 0x17, 0xcd, 0x34, 0x5a, 0xe3, 0xaf, 0x32, 0x9f, 0x9e, 0x74, 0xab, 0x8c,
+ 0x34, 0xb0, 0x59, 0x24, 0x3d, 0x46, 0xe2, 0xbc,
+};
+static const unsigned char kat3775_nonce[] = {0};
+static const unsigned char kat3775_persstr[] = {
+ 0xdf, 0xc9, 0xcc, 0xda, 0xb3, 0xcd, 0xdf, 0xc5, 0xa0, 0xca, 0x19, 0x83,
+ 0x41, 0x52, 0xc5, 0x78, 0x1d, 0x9f, 0x5c, 0xae, 0x0a, 0xa2, 0x2a, 0x2e,
+ 0x1f, 0x47, 0x34, 0x35, 0x9c, 0x4c, 0x4c, 0xa0,
+};
+static const unsigned char kat3775_entropyinpr1[] = {
+ 0x6c, 0xb7, 0x7c, 0x32, 0xf9, 0x87, 0x3e, 0x05, 0xeb, 0xa0, 0x48, 0x1e,
+ 0xb5, 0xde, 0x38, 0x81, 0x51, 0x86, 0xb6, 0xb0, 0x00, 0x7c, 0x9c, 0x2b,
+ 0x62, 0x12, 0x94, 0xb8, 0x32, 0x2d, 0xab, 0x82,
+};
+static const unsigned char kat3775_addinpr1[] = {
+ 0xfd, 0x0f, 0x72, 0x02, 0x7f, 0xd3, 0x8f, 0x69, 0x6d, 0x93, 0x0e, 0xee,
+ 0xe1, 0xdd, 0x7a, 0x16, 0xa4, 0xd8, 0x90, 0x88, 0x26, 0x7c, 0x86, 0xb8,
+ 0xd5, 0xe4, 0xf3, 0x04, 0xdf, 0xfe, 0x71, 0x68,
+};
+static const unsigned char kat3775_entropyinpr2[] = {
+ 0x58, 0xbc, 0xe6, 0xa6, 0x86, 0xe7, 0xae, 0x5c, 0x98, 0x22, 0x4a, 0xe5,
+ 0x55, 0x2a, 0x5a, 0x63, 0x26, 0x1a, 0xa4, 0xed, 0xab, 0x98, 0x71, 0x3b,
+ 0x4a, 0xc7, 0x85, 0x2e, 0x21, 0x30, 0x32, 0x6a,
+};
+static const unsigned char kat3775_addinpr2[] = {
+ 0x06, 0x80, 0x7f, 0xc4, 0x6b, 0x11, 0x01, 0x79, 0x7e, 0x09, 0x4a, 0xd6,
+ 0xab, 0x8a, 0xcf, 0x7b, 0x68, 0x88, 0x85, 0xd2, 0x5f, 0x42, 0xbd, 0xd5,
+ 0xef, 0xde, 0x2f, 0x79, 0xf1, 0x14, 0xcf, 0x81,
+};
+static const unsigned char kat3775_retbits[] = {
+ 0x9d, 0xf0, 0x15, 0x5e, 0x02, 0x06, 0x45, 0x9d, 0x61, 0x70, 0xf9, 0xfc,
+ 0x9c, 0x55, 0x12, 0x0b, 0x4d, 0xfe, 0x10, 0x5e, 0xbc, 0xe4, 0x31, 0x15,
+ 0x15, 0x40, 0x7a, 0x90, 0xba, 0x32, 0xd3, 0x0b, 0x9c, 0x94, 0x29, 0x14,
+ 0x07, 0x01, 0xac, 0x8e, 0x35, 0x77, 0x82, 0x6c, 0xef, 0xcc, 0x62, 0x4b,
+ 0x2f, 0x9c, 0x94, 0xd6, 0xc5, 0x61, 0xe2, 0x35, 0x27, 0x0d, 0x8c, 0xac,
+ 0x36, 0xad, 0xeb, 0xd5,
+};
+static const struct drbg_kat_pr_true kat3775_t = {
+ 9, kat3775_entropyin, kat3775_nonce, kat3775_persstr,
+ kat3775_entropyinpr1, kat3775_addinpr1, kat3775_entropyinpr2,
+ kat3775_addinpr2, kat3775_retbits
+};
+static const struct drbg_kat kat3775 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3775_t
+};
+
+static const unsigned char kat3776_entropyin[] = {
+ 0xdc, 0x05, 0x49, 0x19, 0x18, 0x29, 0x0d, 0x01, 0x57, 0x97, 0xbf, 0xd0,
+ 0xff, 0x78, 0x61, 0x90, 0x71, 0x8e, 0x8d, 0x73, 0xbe, 0xc7, 0x83, 0xbd,
+ 0x3f, 0xd5, 0x0a, 0x7b, 0x21, 0xb5, 0x9d, 0xd5,
+};
+static const unsigned char kat3776_nonce[] = {0};
+static const unsigned char kat3776_persstr[] = {
+ 0xda, 0xf2, 0x1b, 0x5f, 0x65, 0x19, 0x95, 0xce, 0xbf, 0x70, 0x0d, 0x45,
+ 0x3f, 0xbd, 0x80, 0x69, 0xc1, 0xee, 0x34, 0xa5, 0xdc, 0x40, 0x4a, 0xe4,
+ 0xf7, 0x75, 0x6d, 0x84, 0x04, 0xcc, 0x56, 0x78,
+};
+static const unsigned char kat3776_entropyinpr1[] = {
+ 0x45, 0x21, 0xa5, 0xcd, 0x8d, 0x4f, 0xbd, 0xfa, 0xd4, 0x94, 0x1d, 0xce,
+ 0x55, 0x18, 0x4a, 0xb2, 0x10, 0x9d, 0xf1, 0xe5, 0x59, 0x28, 0x37, 0xf7,
+ 0x2b, 0xe4, 0x30, 0x9e, 0xf9, 0x35, 0x04, 0x1c,
+};
+static const unsigned char kat3776_addinpr1[] = {
+ 0x0a, 0xd7, 0x65, 0x72, 0x0c, 0x58, 0xb4, 0xbe, 0x8d, 0x88, 0x46, 0x30,
+ 0x18, 0xd1, 0xc5, 0x31, 0x42, 0x65, 0x2d, 0x73, 0x94, 0x11, 0x0a, 0xeb,
+ 0x62, 0xf3, 0x86, 0xfd, 0x4e, 0xa4, 0xbb, 0x4f,
+};
+static const unsigned char kat3776_entropyinpr2[] = {
+ 0x86, 0xb1, 0x99, 0x15, 0x69, 0xd1, 0xd0, 0x19, 0x05, 0xe7, 0xf8, 0x22,
+ 0xc6, 0x34, 0x8f, 0x64, 0xc3, 0xa4, 0x76, 0x23, 0x00, 0x29, 0x2e, 0x8e,
+ 0x6b, 0xb9, 0xa4, 0x0b, 0x43, 0xa5, 0xd3, 0x2f,
+};
+static const unsigned char kat3776_addinpr2[] = {
+ 0xd1, 0x89, 0x08, 0xd8, 0x6d, 0xd5, 0x09, 0x75, 0xe8, 0x79, 0xf6, 0x13,
+ 0x17, 0xb0, 0x31, 0xb5, 0x6d, 0x2b, 0xba, 0x9d, 0xfc, 0x65, 0x2d, 0x59,
+ 0xb0, 0xcc, 0x60, 0x31, 0xfa, 0x4b, 0x12, 0x1c,
+};
+static const unsigned char kat3776_retbits[] = {
+ 0x6e, 0x90, 0xac, 0x71, 0xeb, 0x0d, 0xa1, 0x0c, 0x76, 0xc8, 0x88, 0x77,
+ 0xbd, 0x18, 0x0b, 0x0e, 0x1c, 0x24, 0x81, 0x81, 0x3e, 0x67, 0xfb, 0xe8,
+ 0xad, 0x95, 0x5f, 0x75, 0xa9, 0x5f, 0xfd, 0x4f, 0x97, 0x96, 0xc7, 0xe2,
+ 0xb3, 0xf7, 0x6e, 0x20, 0x42, 0x3e, 0x30, 0xa0, 0x19, 0x23, 0x95, 0xc7,
+ 0x40, 0xf4, 0xd7, 0x14, 0x8b, 0xcb, 0xd8, 0xa5, 0xd1, 0xf9, 0xf4, 0xe6,
+ 0x6a, 0x51, 0x7b, 0x03,
+};
+static const struct drbg_kat_pr_true kat3776_t = {
+ 10, kat3776_entropyin, kat3776_nonce, kat3776_persstr,
+ kat3776_entropyinpr1, kat3776_addinpr1, kat3776_entropyinpr2,
+ kat3776_addinpr2, kat3776_retbits
+};
+static const struct drbg_kat kat3776 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3776_t
+};
+
+static const unsigned char kat3777_entropyin[] = {
+ 0x9c, 0x68, 0x7d, 0x67, 0xb9, 0x95, 0xf3, 0x36, 0x15, 0x69, 0x49, 0x33,
+ 0x8a, 0xa9, 0xb1, 0xe0, 0x1f, 0xdd, 0xb0, 0xfd, 0x5d, 0x07, 0x5c, 0xfc,
+ 0x2a, 0x6f, 0xba, 0x06, 0xf9, 0xc6, 0xf9, 0xc6,
+};
+static const unsigned char kat3777_nonce[] = {0};
+static const unsigned char kat3777_persstr[] = {
+ 0xba, 0x8b, 0x6f, 0x0b, 0x19, 0xae, 0x8c, 0x14, 0x48, 0xdf, 0x3f, 0x14,
+ 0x3c, 0xbd, 0x67, 0xda, 0xb4, 0xde, 0xc0, 0x19, 0x85, 0x3f, 0xc3, 0xea,
+ 0xb7, 0x91, 0x1b, 0xc9, 0x30, 0x52, 0x1f, 0x37,
+};
+static const unsigned char kat3777_entropyinpr1[] = {
+ 0x27, 0x91, 0xfa, 0x55, 0x26, 0x04, 0x5c, 0x3d, 0xc0, 0x1f, 0xc2, 0x0e,
+ 0x52, 0x69, 0x65, 0x66, 0xf8, 0x85, 0xd1, 0x8a, 0x9d, 0xf4, 0x41, 0x1c,
+ 0xee, 0xbd, 0x99, 0x84, 0xe9, 0xb0, 0xcd, 0x2b,
+};
+static const unsigned char kat3777_addinpr1[] = {
+ 0x49, 0x5a, 0xec, 0x82, 0x0a, 0xa6, 0x6a, 0xc0, 0x81, 0x80, 0xc1, 0x25,
+ 0xcf, 0x81, 0xf3, 0x22, 0xbb, 0x00, 0xb4, 0x86, 0x16, 0x8f, 0xea, 0xb7,
+ 0x20, 0x59, 0xab, 0xff, 0x04, 0xa9, 0x73, 0x50,
+};
+static const unsigned char kat3777_entropyinpr2[] = {
+ 0x66, 0x1f, 0xd9, 0x25, 0x76, 0x10, 0xf1, 0xc4, 0xfe, 0x96, 0x1e, 0x2c,
+ 0x3a, 0xca, 0xb0, 0x17, 0x39, 0x58, 0x67, 0x94, 0x32, 0xdd, 0xbf, 0xf8,
+ 0x61, 0xc4, 0x81, 0x60, 0xaa, 0x0a, 0x5d, 0x4e,
+};
+static const unsigned char kat3777_addinpr2[] = {
+ 0x20, 0xa8, 0x07, 0x8f, 0x69, 0x29, 0x35, 0x38, 0xe8, 0x1a, 0x6b, 0xfd,
+ 0x24, 0xbd, 0x20, 0x0b, 0xe3, 0x47, 0x4d, 0x04, 0x25, 0x2c, 0xe5, 0x36,
+ 0x51, 0x99, 0x9e, 0x11, 0xce, 0x06, 0xdd, 0xc3,
+};
+static const unsigned char kat3777_retbits[] = {
+ 0xb9, 0xf3, 0x92, 0xa5, 0xb3, 0x36, 0xdd, 0xf0, 0xbb, 0x55, 0x6c, 0x86,
+ 0xaf, 0xa4, 0x0a, 0x2d, 0x9c, 0xaf, 0x99, 0x19, 0x27, 0x40, 0x33, 0x30,
+ 0xfc, 0x62, 0x2b, 0xf0, 0x21, 0x54, 0x7e, 0x22, 0xca, 0x42, 0xee, 0x9c,
+ 0x6a, 0x84, 0x23, 0x27, 0x8c, 0x0f, 0x89, 0xcf, 0xc2, 0x00, 0x01, 0x25,
+ 0xee, 0x5d, 0x7b, 0x8b, 0x0e, 0x89, 0x50, 0x70, 0xa2, 0xcf, 0x68, 0x59,
+ 0x40, 0xe4, 0xc2, 0x10,
+};
+static const struct drbg_kat_pr_true kat3777_t = {
+ 11, kat3777_entropyin, kat3777_nonce, kat3777_persstr,
+ kat3777_entropyinpr1, kat3777_addinpr1, kat3777_entropyinpr2,
+ kat3777_addinpr2, kat3777_retbits
+};
+static const struct drbg_kat kat3777 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3777_t
+};
+
+static const unsigned char kat3778_entropyin[] = {
+ 0x58, 0x3c, 0xe2, 0x14, 0xee, 0x4b, 0xa0, 0x11, 0x70, 0x1b, 0xb0, 0xf8,
+ 0xf5, 0x56, 0xda, 0x0f, 0x95, 0x2f, 0x4a, 0x85, 0x5d, 0x3e, 0xbe, 0x18,
+ 0x82, 0xca, 0xc3, 0x30, 0x81, 0x81, 0x87, 0x83,
+};
+static const unsigned char kat3778_nonce[] = {0};
+static const unsigned char kat3778_persstr[] = {
+ 0xd4, 0x2e, 0x1f, 0x3d, 0x1e, 0xae, 0x3c, 0x1f, 0x9a, 0xa0, 0xc7, 0x92,
+ 0x34, 0xa9, 0xc8, 0x6e, 0xe1, 0x60, 0xf6, 0xc3, 0x4e, 0x0d, 0x9c, 0xd8,
+ 0xc5, 0xb9, 0xf0, 0x73, 0x99, 0x2e, 0xc0, 0x77,
+};
+static const unsigned char kat3778_entropyinpr1[] = {
+ 0x63, 0x4f, 0x25, 0x2d, 0x8c, 0xfb, 0xa4, 0xe0, 0x1c, 0x94, 0x75, 0x16,
+ 0x48, 0xc7, 0xf8, 0xe0, 0x42, 0x42, 0xe4, 0xd5, 0x86, 0x48, 0xbb, 0xb1,
+ 0x39, 0xf2, 0x7d, 0x7a, 0x76, 0x10, 0x30, 0xd5,
+};
+static const unsigned char kat3778_addinpr1[] = {
+ 0x7f, 0x79, 0x87, 0xdc, 0x42, 0x45, 0x33, 0x7d, 0x6e, 0xec, 0x6e, 0x63,
+ 0x40, 0x90, 0x99, 0x1b, 0xdd, 0xe8, 0xf3, 0x6d, 0x54, 0x88, 0xf1, 0x1e,
+ 0xb0, 0x2a, 0xbf, 0xcb, 0x00, 0xb0, 0x57, 0x8b,
+};
+static const unsigned char kat3778_entropyinpr2[] = {
+ 0x19, 0xdc, 0x7c, 0x54, 0x14, 0xde, 0xdc, 0x2d, 0x71, 0x7e, 0xc7, 0x44,
+ 0xaa, 0x12, 0x91, 0xc6, 0xaa, 0x8a, 0x2b, 0xd3, 0x4b, 0x4f, 0x40, 0x63,
+ 0xb1, 0x49, 0x21, 0xbb, 0x9a, 0x68, 0x45, 0x96,
+};
+static const unsigned char kat3778_addinpr2[] = {
+ 0xb9, 0xa1, 0x52, 0x49, 0xcb, 0xe9, 0x5e, 0x06, 0x89, 0x53, 0xe7, 0xb7,
+ 0x01, 0x04, 0xf0, 0x35, 0x93, 0x87, 0x77, 0xa0, 0x7f, 0xd2, 0x18, 0x39,
+ 0x12, 0x16, 0x93, 0x29, 0xc4, 0x16, 0x1e, 0xea,
+};
+static const unsigned char kat3778_retbits[] = {
+ 0xdc, 0xe9, 0x6a, 0x75, 0xd5, 0xed, 0x65, 0xad, 0x34, 0x23, 0x93, 0xb8,
+ 0x73, 0x86, 0x63, 0xf3, 0x44, 0x59, 0x8d, 0x59, 0x69, 0xd8, 0xf7, 0x8f,
+ 0x48, 0x02, 0xcc, 0x26, 0x7d, 0x1b, 0xc0, 0x00, 0x67, 0xb8, 0x6f, 0xb2,
+ 0x9f, 0xaa, 0x29, 0x90, 0x68, 0x33, 0x3a, 0x16, 0xce, 0xcb, 0x57, 0xa4,
+ 0x3e, 0xf6, 0x63, 0x1d, 0x5c, 0xa6, 0x24, 0xf0, 0x57, 0x97, 0x0e, 0x58,
+ 0x40, 0xeb, 0x1f, 0x44,
+};
+static const struct drbg_kat_pr_true kat3778_t = {
+ 12, kat3778_entropyin, kat3778_nonce, kat3778_persstr,
+ kat3778_entropyinpr1, kat3778_addinpr1, kat3778_entropyinpr2,
+ kat3778_addinpr2, kat3778_retbits
+};
+static const struct drbg_kat kat3778 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3778_t
+};
+
+static const unsigned char kat3779_entropyin[] = {
+ 0x22, 0xcb, 0xd0, 0xc8, 0x99, 0x1a, 0x1f, 0xbf, 0x5e, 0x28, 0x76, 0xf5,
+ 0x1c, 0x83, 0x5e, 0x7b, 0x52, 0x22, 0xd4, 0xde, 0x29, 0xb4, 0x74, 0x41,
+ 0x4a, 0x1b, 0x67, 0x5e, 0xaa, 0xe0, 0x7a, 0x37,
+};
+static const unsigned char kat3779_nonce[] = {0};
+static const unsigned char kat3779_persstr[] = {
+ 0x2c, 0xd5, 0xf1, 0xb2, 0x68, 0xe3, 0x6b, 0x99, 0x41, 0x3d, 0x01, 0xee,
+ 0xaf, 0x5b, 0x48, 0xf2, 0x08, 0x47, 0x3e, 0xc9, 0x97, 0x5f, 0xc0, 0x09,
+ 0x89, 0x28, 0x36, 0x89, 0xa3, 0xa9, 0xda, 0x8d,
+};
+static const unsigned char kat3779_entropyinpr1[] = {
+ 0xea, 0x71, 0x10, 0x74, 0x2c, 0x7d, 0xc5, 0x29, 0x1e, 0x17, 0xa9, 0xf0,
+ 0xdc, 0x5a, 0x04, 0x02, 0x84, 0x8d, 0xfa, 0x42, 0x48, 0x82, 0x23, 0x69,
+ 0x31, 0x30, 0x88, 0xb7, 0xf9, 0x2f, 0x60, 0x93,
+};
+static const unsigned char kat3779_addinpr1[] = {
+ 0x9e, 0x27, 0x30, 0x7e, 0x22, 0xbe, 0x64, 0x49, 0x27, 0x9a, 0xc8, 0xfb,
+ 0xa4, 0xfb, 0x91, 0xb9, 0xf8, 0x77, 0x71, 0x4d, 0x59, 0x20, 0x01, 0xc9,
+ 0x82, 0x3e, 0xc3, 0xd4, 0x3c, 0x94, 0x99, 0xe7,
+};
+static const unsigned char kat3779_entropyinpr2[] = {
+ 0x57, 0xe3, 0x79, 0x8a, 0xe9, 0x74, 0x02, 0x4c, 0xd6, 0x01, 0xb1, 0xe4,
+ 0x78, 0xdc, 0xfe, 0x24, 0xb0, 0xac, 0xb5, 0x85, 0x1e, 0x9e, 0xc9, 0x51,
+ 0x8a, 0x60, 0xf9, 0x30, 0xa6, 0x5c, 0xf4, 0xef,
+};
+static const unsigned char kat3779_addinpr2[] = {
+ 0x39, 0xa3, 0xa1, 0x9f, 0x9c, 0xf1, 0x76, 0x64, 0x13, 0x63, 0x0f, 0x5d,
+ 0x14, 0x3a, 0x1d, 0x6c, 0x4b, 0x0e, 0x7d, 0xaa, 0xdb, 0xfa, 0x60, 0xcb,
+ 0x23, 0x65, 0xc7, 0x43, 0x1f, 0xd7, 0xc8, 0xd2,
+};
+static const unsigned char kat3779_retbits[] = {
+ 0x19, 0x69, 0x08, 0x14, 0xe0, 0x9f, 0x6c, 0xd1, 0x2f, 0xc2, 0x10, 0x3a,
+ 0x1c, 0xe6, 0xb3, 0x53, 0x9d, 0xd3, 0xbe, 0x92, 0x0b, 0xe9, 0x42, 0xed,
+ 0xfa, 0x70, 0x3e, 0xf2, 0xa2, 0x05, 0xb3, 0xe6, 0x98, 0x20, 0x75, 0x57,
+ 0x89, 0xcd, 0x98, 0x93, 0xdf, 0x9f, 0x2a, 0xf1, 0x8f, 0x16, 0x4c, 0xeb,
+ 0xf4, 0x24, 0x9c, 0xb5, 0x83, 0x0c, 0x3d, 0x1b, 0x66, 0x27, 0xf9, 0xdf,
+ 0x14, 0x30, 0xdf, 0x8c,
+};
+static const struct drbg_kat_pr_true kat3779_t = {
+ 13, kat3779_entropyin, kat3779_nonce, kat3779_persstr,
+ kat3779_entropyinpr1, kat3779_addinpr1, kat3779_entropyinpr2,
+ kat3779_addinpr2, kat3779_retbits
+};
+static const struct drbg_kat kat3779 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3779_t
+};
+
+static const unsigned char kat3780_entropyin[] = {
+ 0x31, 0x53, 0xc1, 0x04, 0xbb, 0x02, 0xd1, 0x5c, 0x49, 0xc4, 0x38, 0x78,
+ 0x78, 0x38, 0xaf, 0x42, 0x11, 0xa5, 0xa6, 0x83, 0xb9, 0x09, 0x93, 0xf1,
+ 0xa3, 0x96, 0x9f, 0xec, 0x80, 0x69, 0xcc, 0x25,
+};
+static const unsigned char kat3780_nonce[] = {0};
+static const unsigned char kat3780_persstr[] = {
+ 0x8c, 0x90, 0x54, 0x4a, 0x34, 0x43, 0x5c, 0x27, 0x35, 0x76, 0x0d, 0x8f,
+ 0x55, 0xe6, 0x43, 0x51, 0x9b, 0x70, 0x3f, 0x04, 0xae, 0x11, 0x72, 0x0d,
+ 0x63, 0xcc, 0x73, 0xf6, 0xd4, 0xe6, 0x3b, 0x58,
+};
+static const unsigned char kat3780_entropyinpr1[] = {
+ 0x68, 0x05, 0xeb, 0xcb, 0x82, 0xb1, 0x18, 0xc9, 0x8e, 0xf7, 0x3f, 0x0d,
+ 0x98, 0x67, 0xa7, 0x1f, 0xef, 0x1a, 0xe4, 0x35, 0xf1, 0x96, 0xd2, 0x3b,
+ 0xd3, 0xac, 0xfb, 0xfc, 0x88, 0x84, 0x9f, 0x40,
+};
+static const unsigned char kat3780_addinpr1[] = {
+ 0x4a, 0x4b, 0x1e, 0x9e, 0x90, 0x99, 0x8c, 0xde, 0x32, 0x03, 0x5a, 0xd2,
+ 0xce, 0x01, 0xc2, 0x77, 0x22, 0xfb, 0xe4, 0x04, 0xff, 0x5c, 0x6b, 0x8e,
+ 0xb3, 0xae, 0x8e, 0x76, 0x29, 0xa8, 0x32, 0xe8,
+};
+static const unsigned char kat3780_entropyinpr2[] = {
+ 0x09, 0xd8, 0xb1, 0x63, 0x46, 0xfb, 0xf2, 0x0c, 0xa0, 0x73, 0x68, 0x8a,
+ 0xb3, 0xe9, 0x17, 0x60, 0x26, 0x86, 0xe0, 0x7d, 0xff, 0x33, 0x81, 0x42,
+ 0x84, 0x14, 0x10, 0x06, 0x8e, 0x64, 0x02, 0x96,
+};
+static const unsigned char kat3780_addinpr2[] = {
+ 0x34, 0xe5, 0x17, 0xff, 0x4f, 0x40, 0xe3, 0xc0, 0xc6, 0x99, 0x71, 0x01,
+ 0x34, 0xcd, 0xee, 0xd0, 0x29, 0xba, 0xea, 0x8e, 0x14, 0x2d, 0xb0, 0xba,
+ 0xc9, 0xc5, 0xab, 0xa6, 0xa0, 0xca, 0xa5, 0xf4,
+};
+static const unsigned char kat3780_retbits[] = {
+ 0xc1, 0xd0, 0x09, 0x53, 0x76, 0xac, 0x84, 0x69, 0x21, 0xd2, 0xbb, 0xa5,
+ 0xf4, 0xd5, 0x0d, 0x23, 0x18, 0x51, 0x31, 0x17, 0x92, 0xc6, 0x6d, 0x12,
+ 0x5d, 0x57, 0x01, 0xd6, 0xcc, 0x46, 0x6e, 0x18, 0x1c, 0x89, 0x3d, 0xfc,
+ 0x99, 0x99, 0xc2, 0x10, 0x63, 0xf6, 0x9f, 0x0c, 0xdb, 0x98, 0x50, 0xc3,
+ 0xa3, 0x47, 0x55, 0x92, 0x6c, 0x67, 0xe3, 0xaf, 0x75, 0xe8, 0x01, 0xe7,
+ 0xc2, 0x1f, 0x3d, 0xa9,
+};
+static const struct drbg_kat_pr_true kat3780_t = {
+ 14, kat3780_entropyin, kat3780_nonce, kat3780_persstr,
+ kat3780_entropyinpr1, kat3780_addinpr1, kat3780_entropyinpr2,
+ kat3780_addinpr2, kat3780_retbits
+};
+static const struct drbg_kat kat3780 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3780_t
+};
+
+static const unsigned char kat3781_entropyin[] = {
+ 0x0e, 0x43, 0x8b, 0x67, 0x0b, 0x4d, 0x80, 0x3c, 0xb7, 0xf9, 0xea, 0x4c,
+ 0xe7, 0x5c, 0x22, 0x3a, 0xa4, 0x9e, 0xf1, 0xad, 0xff, 0x45, 0x49, 0xdb,
+ 0xaf, 0xff, 0x52, 0x50, 0x3a, 0x54, 0x79, 0xde,
+};
+static const unsigned char kat3781_nonce[] = {0};
+static const unsigned char kat3781_persstr[] = {0};
+static const unsigned char kat3781_entropyinpr1[] = {
+ 0x5a, 0x04, 0xf7, 0xb4, 0x95, 0xdd, 0x0d, 0x74, 0x4e, 0xc1, 0x44, 0x3e,
+ 0x2f, 0x6e, 0x1b, 0xc2, 0x0e, 0xb4, 0x57, 0x3d, 0xe1, 0x12, 0xa5, 0x34,
+ 0x1c, 0x13, 0xc5, 0x12, 0xc5, 0xc6, 0x19, 0xe8,
+};
+static const unsigned char kat3781_addinpr1[] = {0};
+static const unsigned char kat3781_entropyinpr2[] = {
+ 0x15, 0xd4, 0x94, 0x35, 0xdb, 0x69, 0x54, 0xe8, 0x06, 0x47, 0x6c, 0x7d,
+ 0x2e, 0xa4, 0xc5, 0xff, 0xf4, 0xa1, 0xd5, 0x83, 0x4f, 0x5c, 0xbf, 0x7b,
+ 0xd6, 0x16, 0xdd, 0xc7, 0x90, 0xaf, 0xe4, 0x09,
+};
+static const unsigned char kat3781_addinpr2[] = {0};
+static const unsigned char kat3781_retbits[] = {
+ 0x0a, 0xe8, 0x21, 0x83, 0x79, 0x52, 0x08, 0x83, 0x32, 0xc7, 0xc9, 0xa9,
+ 0xc9, 0xb9, 0xa9, 0x1c, 0xf7, 0xa2, 0xbf, 0xae, 0xe6, 0x64, 0x4d, 0xde,
+ 0x20, 0xf9, 0x19, 0x66, 0x9f, 0x97, 0xd2, 0xf1, 0x4d, 0x16, 0xff, 0x25,
+ 0xbe, 0xe5, 0x06, 0x2e, 0x6d, 0xb9, 0x14, 0x72, 0x52, 0x92, 0xb1, 0x47,
+ 0xca, 0xb0, 0xfb, 0xc1, 0xfa, 0x20, 0x25, 0x07, 0xf8, 0x82, 0xa9, 0x1b,
+ 0x69, 0x58, 0xba, 0xfd,
+};
+static const struct drbg_kat_pr_true kat3781_t = {
+ 0, kat3781_entropyin, kat3781_nonce, kat3781_persstr,
+ kat3781_entropyinpr1, kat3781_addinpr1, kat3781_entropyinpr2,
+ kat3781_addinpr2, kat3781_retbits
+};
+static const struct drbg_kat kat3781 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3781_t
+};
+
+static const unsigned char kat3782_entropyin[] = {
+ 0xd1, 0xaf, 0x89, 0x7a, 0x3f, 0x0d, 0xb9, 0xee, 0xc2, 0x19, 0x1d, 0xdf,
+ 0x52, 0xb9, 0x43, 0x10, 0xbb, 0xb0, 0x0a, 0x1c, 0xf2, 0x5b, 0xb7, 0xcd,
+ 0xd2, 0xc2, 0xe2, 0xc5, 0x3d, 0x67, 0x98, 0x66,
+};
+static const unsigned char kat3782_nonce[] = {0};
+static const unsigned char kat3782_persstr[] = {0};
+static const unsigned char kat3782_entropyinpr1[] = {
+ 0x61, 0x42, 0x0c, 0x5e, 0x63, 0x72, 0xa1, 0x26, 0x50, 0xf2, 0x91, 0x4f,
+ 0xec, 0x5b, 0xb7, 0x0b, 0x9f, 0xf5, 0x30, 0x98, 0xa9, 0x98, 0xd5, 0xd4,
+ 0x83, 0xa5, 0xa4, 0x1a, 0x17, 0x43, 0x95, 0x9d,
+};
+static const unsigned char kat3782_addinpr1[] = {0};
+static const unsigned char kat3782_entropyinpr2[] = {
+ 0x0e, 0x02, 0xb6, 0xb4, 0x6b, 0xa4, 0x3b, 0x77, 0x8d, 0xe2, 0x09, 0x20,
+ 0xc5, 0x55, 0xc2, 0xcb, 0x52, 0xeb, 0x16, 0xbe, 0x3a, 0xb2, 0x2e, 0xa4,
+ 0xee, 0x6f, 0x42, 0xae, 0x20, 0x11, 0xad, 0xb4,
+};
+static const unsigned char kat3782_addinpr2[] = {0};
+static const unsigned char kat3782_retbits[] = {
+ 0x15, 0x03, 0x79, 0x7e, 0xfd, 0xc2, 0x46, 0xe3, 0x33, 0x87, 0x70, 0x9e,
+ 0x9b, 0xce, 0x77, 0x1a, 0xa9, 0xa3, 0x9a, 0xba, 0xdf, 0xd2, 0xb2, 0x9f,
+ 0xb6, 0xee, 0x6b, 0xf2, 0xb0, 0xeb, 0x7a, 0xed, 0x1c, 0xfb, 0xfb, 0x93,
+ 0x32, 0x6e, 0xbe, 0xcd, 0x43, 0x00, 0xe7, 0x16, 0x98, 0xda, 0x82, 0x75,
+ 0x6b, 0x9e, 0x12, 0x30, 0x24, 0x3f, 0x81, 0xce, 0xda, 0xc6, 0xd2, 0xb4,
+ 0x85, 0x07, 0x17, 0xb3,
+};
+static const struct drbg_kat_pr_true kat3782_t = {
+ 1, kat3782_entropyin, kat3782_nonce, kat3782_persstr,
+ kat3782_entropyinpr1, kat3782_addinpr1, kat3782_entropyinpr2,
+ kat3782_addinpr2, kat3782_retbits
+};
+static const struct drbg_kat kat3782 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3782_t
+};
+
+static const unsigned char kat3783_entropyin[] = {
+ 0x46, 0x51, 0x68, 0xf3, 0x18, 0x97, 0xcc, 0xe4, 0x08, 0x21, 0x0d, 0xab,
+ 0x00, 0x31, 0x4a, 0x76, 0x9e, 0xc5, 0xf3, 0x23, 0x0c, 0x8c, 0xf6, 0x8b,
+ 0x80, 0xa0, 0x48, 0x33, 0x45, 0xfe, 0x4a, 0xdd,
+};
+static const unsigned char kat3783_nonce[] = {0};
+static const unsigned char kat3783_persstr[] = {0};
+static const unsigned char kat3783_entropyinpr1[] = {
+ 0x6a, 0xb8, 0x2b, 0x88, 0x4b, 0x5b, 0x88, 0x88, 0xbe, 0xf8, 0xec, 0x38,
+ 0x11, 0x84, 0x4c, 0x2e, 0x14, 0xa5, 0xc7, 0x1d, 0xac, 0xae, 0x63, 0xf4,
+ 0x77, 0xf5, 0xc7, 0xac, 0xee, 0x64, 0xf9, 0x9b,
+};
+static const unsigned char kat3783_addinpr1[] = {0};
+static const unsigned char kat3783_entropyinpr2[] = {
+ 0x76, 0x19, 0x33, 0x06, 0x5a, 0x97, 0xb0, 0x50, 0x23, 0xce, 0xb1, 0x81,
+ 0xd0, 0xc7, 0x2a, 0x14, 0xf3, 0x47, 0xd4, 0x19, 0x6a, 0x37, 0x74, 0x4c,
+ 0xeb, 0xab, 0xe3, 0x0f, 0x42, 0xcd, 0xaa, 0x7f,
+};
+static const unsigned char kat3783_addinpr2[] = {0};
+static const unsigned char kat3783_retbits[] = {
+ 0x1e, 0x8f, 0x3c, 0x68, 0xac, 0x09, 0x2f, 0x1e, 0x69, 0x97, 0xb1, 0x3f,
+ 0x4a, 0x9c, 0x97, 0x1c, 0x27, 0xb8, 0x57, 0xa0, 0x7b, 0xf2, 0xc4, 0x1a,
+ 0x1e, 0x90, 0x1b, 0xf0, 0xe9, 0xe7, 0xd5, 0x61, 0xbd, 0xc9, 0x69, 0x04,
+ 0xf5, 0xf0, 0x0e, 0x66, 0x7f, 0xde, 0x20, 0x49, 0x34, 0xb8, 0x88, 0xc7,
+ 0x10, 0x9a, 0xeb, 0x97, 0x56, 0x2f, 0x25, 0xcf, 0xf6, 0x8d, 0x52, 0x9b,
+ 0x0a, 0x8e, 0x48, 0x52,
+};
+static const struct drbg_kat_pr_true kat3783_t = {
+ 2, kat3783_entropyin, kat3783_nonce, kat3783_persstr,
+ kat3783_entropyinpr1, kat3783_addinpr1, kat3783_entropyinpr2,
+ kat3783_addinpr2, kat3783_retbits
+};
+static const struct drbg_kat kat3783 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3783_t
+};
+
+static const unsigned char kat3784_entropyin[] = {
+ 0x40, 0x9f, 0x5d, 0x9b, 0x56, 0x14, 0xbc, 0x92, 0x21, 0xbb, 0x41, 0xd0,
+ 0x3c, 0x7e, 0x34, 0xc0, 0xfc, 0xd3, 0x1b, 0x86, 0x97, 0x99, 0xea, 0xbf,
+ 0x95, 0xc1, 0x29, 0xba, 0x1a, 0x62, 0x51, 0x2c,
+};
+static const unsigned char kat3784_nonce[] = {0};
+static const unsigned char kat3784_persstr[] = {0};
+static const unsigned char kat3784_entropyinpr1[] = {
+ 0xbc, 0x36, 0x3e, 0xe6, 0xea, 0x2c, 0x9e, 0x85, 0xa2, 0xcb, 0xff, 0xfe,
+ 0xc9, 0xe8, 0xf7, 0xd0, 0xe9, 0xac, 0x4d, 0x62, 0x7b, 0xaf, 0xc4, 0x22,
+ 0xa2, 0xdc, 0x5c, 0x8b, 0x3e, 0xd0, 0xec, 0x1d,
+};
+static const unsigned char kat3784_addinpr1[] = {0};
+static const unsigned char kat3784_entropyinpr2[] = {
+ 0x03, 0x48, 0x37, 0x74, 0x5d, 0x05, 0x83, 0x47, 0xc3, 0xc7, 0x54, 0xaf,
+ 0x58, 0x6c, 0xe8, 0xec, 0xa4, 0x13, 0x49, 0x84, 0x27, 0x12, 0x51, 0xec,
+ 0xdf, 0x09, 0xa4, 0x6a, 0xfc, 0xc1, 0x21, 0xf2,
+};
+static const unsigned char kat3784_addinpr2[] = {0};
+static const unsigned char kat3784_retbits[] = {
+ 0xec, 0x9b, 0x08, 0x43, 0xac, 0x59, 0xc2, 0x1f, 0x11, 0xd1, 0xdf, 0x59,
+ 0x35, 0x73, 0x54, 0x83, 0x69, 0x70, 0x95, 0x3f, 0xe2, 0xde, 0xc7, 0xd5,
+ 0x2e, 0xd6, 0x06, 0x04, 0xc8, 0xf5, 0x56, 0x02, 0x90, 0xeb, 0xa3, 0xb2,
+ 0x0c, 0x65, 0x38, 0xc1, 0xa5, 0xf9, 0x9e, 0x5c, 0xc9, 0x78, 0xee, 0xba,
+ 0x48, 0xb7, 0x7a, 0xd1, 0x5e, 0x48, 0x8c, 0xdb, 0x62, 0xd2, 0x84, 0xbd,
+ 0xad, 0x16, 0xab, 0xcc,
+};
+static const struct drbg_kat_pr_true kat3784_t = {
+ 3, kat3784_entropyin, kat3784_nonce, kat3784_persstr,
+ kat3784_entropyinpr1, kat3784_addinpr1, kat3784_entropyinpr2,
+ kat3784_addinpr2, kat3784_retbits
+};
+static const struct drbg_kat kat3784 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3784_t
+};
+
+static const unsigned char kat3785_entropyin[] = {
+ 0xd4, 0x69, 0x70, 0x11, 0x4f, 0x0c, 0x6d, 0x09, 0x3c, 0x6a, 0x20, 0xc3,
+ 0x28, 0x27, 0x95, 0xc0, 0x51, 0xa8, 0xb4, 0xef, 0xea, 0x10, 0x5c, 0x94,
+ 0xc3, 0xc7, 0x5d, 0x92, 0x1c, 0x34, 0x86, 0xad,
+};
+static const unsigned char kat3785_nonce[] = {0};
+static const unsigned char kat3785_persstr[] = {0};
+static const unsigned char kat3785_entropyinpr1[] = {
+ 0xd9, 0x1d, 0xeb, 0x7d, 0x15, 0x39, 0x9a, 0xf1, 0xd6, 0xc7, 0x6f, 0xc4,
+ 0xf3, 0x1d, 0xf4, 0xa5, 0xfc, 0x2a, 0xa8, 0x69, 0x29, 0x06, 0xf7, 0xf8,
+ 0x43, 0xc8, 0x80, 0xd2, 0xee, 0x11, 0x43, 0xb5,
+};
+static const unsigned char kat3785_addinpr1[] = {0};
+static const unsigned char kat3785_entropyinpr2[] = {
+ 0x36, 0x14, 0x5c, 0x0c, 0x3f, 0x47, 0x4d, 0x2d, 0xb3, 0x25, 0xda, 0xc7,
+ 0xac, 0x89, 0xc2, 0x1e, 0x84, 0xfe, 0x8d, 0xa6, 0x28, 0xff, 0x02, 0xa8,
+ 0x48, 0xa4, 0xea, 0xe3, 0xb4, 0xd8, 0x1e, 0xf4,
+};
+static const unsigned char kat3785_addinpr2[] = {0};
+static const unsigned char kat3785_retbits[] = {
+ 0x71, 0x37, 0x79, 0xba, 0x11, 0xf5, 0x87, 0xb5, 0x22, 0xc6, 0x32, 0x7a,
+ 0xca, 0x5a, 0xaa, 0x27, 0x1d, 0xb2, 0x63, 0xee, 0x01, 0x94, 0x28, 0x02,
+ 0x8d, 0x1e, 0x33, 0x52, 0x84, 0xbf, 0xdb, 0x11, 0xc7, 0x64, 0xfd, 0xcb,
+ 0x4c, 0x4a, 0x91, 0x26, 0x45, 0xb4, 0x1e, 0xfc, 0x65, 0xad, 0xb8, 0xfb,
+ 0x23, 0x32, 0x93, 0x75, 0x34, 0x18, 0xa3, 0xab, 0x4e, 0xed, 0x32, 0x3c,
+ 0xbe, 0x71, 0xd6, 0xa4,
+};
+static const struct drbg_kat_pr_true kat3785_t = {
+ 4, kat3785_entropyin, kat3785_nonce, kat3785_persstr,
+ kat3785_entropyinpr1, kat3785_addinpr1, kat3785_entropyinpr2,
+ kat3785_addinpr2, kat3785_retbits
+};
+static const struct drbg_kat kat3785 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3785_t
+};
+
+static const unsigned char kat3786_entropyin[] = {
+ 0x7b, 0x37, 0x47, 0xb5, 0x6f, 0x85, 0x47, 0xcb, 0x1d, 0x99, 0xb9, 0x25,
+ 0x38, 0xee, 0x95, 0x5c, 0x15, 0xda, 0x10, 0x57, 0xbc, 0x5f, 0x69, 0x19,
+ 0x98, 0xff, 0xd4, 0x84, 0x12, 0xd9, 0x22, 0x16,
+};
+static const unsigned char kat3786_nonce[] = {0};
+static const unsigned char kat3786_persstr[] = {0};
+static const unsigned char kat3786_entropyinpr1[] = {
+ 0x05, 0x70, 0xe5, 0x45, 0xd5, 0x02, 0x61, 0x3d, 0xf9, 0x96, 0x0b, 0x89,
+ 0xf1, 0x6f, 0xe9, 0x9e, 0xd6, 0x5d, 0x84, 0xc7, 0x33, 0x35, 0x9a, 0xb4,
+ 0xc3, 0x91, 0xb9, 0xa2, 0x35, 0xd8, 0xa2, 0xd0,
+};
+static const unsigned char kat3786_addinpr1[] = {0};
+static const unsigned char kat3786_entropyinpr2[] = {
+ 0x6e, 0x70, 0xf5, 0xa3, 0x89, 0x51, 0x71, 0xcb, 0xfd, 0x42, 0x64, 0x4a,
+ 0xc7, 0x09, 0x3e, 0xcb, 0xd4, 0x39, 0xf9, 0x94, 0x73, 0x3a, 0x6e, 0xa1,
+ 0xfd, 0x54, 0x30, 0x86, 0xd8, 0xc8, 0x67, 0x87,
+};
+static const unsigned char kat3786_addinpr2[] = {0};
+static const unsigned char kat3786_retbits[] = {
+ 0x57, 0xc1, 0x29, 0x16, 0xb0, 0xe1, 0xd3, 0x1e, 0x1d, 0x1e, 0x25, 0x56,
+ 0x19, 0x65, 0x5c, 0x6f, 0xba, 0x57, 0xfb, 0x62, 0x43, 0x0d, 0xef, 0x55,
+ 0xf2, 0x86, 0xe3, 0xac, 0xe3, 0xf3, 0x24, 0xba, 0x5d, 0x9d, 0x8a, 0xdb,
+ 0x08, 0x07, 0xa6, 0x89, 0xd6, 0x3c, 0x24, 0x2e, 0x44, 0x9a, 0x6f, 0x0c,
+ 0xfd, 0xa0, 0x66, 0x9e, 0xfa, 0xd5, 0x99, 0xc6, 0x07, 0x14, 0x05, 0x76,
+ 0x2f, 0x2a, 0xff, 0x8c,
+};
+static const struct drbg_kat_pr_true kat3786_t = {
+ 5, kat3786_entropyin, kat3786_nonce, kat3786_persstr,
+ kat3786_entropyinpr1, kat3786_addinpr1, kat3786_entropyinpr2,
+ kat3786_addinpr2, kat3786_retbits
+};
+static const struct drbg_kat kat3786 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3786_t
+};
+
+static const unsigned char kat3787_entropyin[] = {
+ 0x67, 0xef, 0xb0, 0x46, 0xd0, 0xf2, 0x94, 0x7d, 0x10, 0xf9, 0x7f, 0x6b,
+ 0xe8, 0x03, 0xff, 0xa9, 0x4a, 0x5f, 0xa2, 0x30, 0x93, 0x14, 0x26, 0x92,
+ 0x72, 0xac, 0xed, 0x52, 0x62, 0x01, 0x3c, 0xc7,
+};
+static const unsigned char kat3787_nonce[] = {0};
+static const unsigned char kat3787_persstr[] = {0};
+static const unsigned char kat3787_entropyinpr1[] = {
+ 0xd9, 0xd2, 0x27, 0x6b, 0x9d, 0x7c, 0xe2, 0x72, 0xfd, 0x5c, 0x6f, 0x4d,
+ 0x59, 0x0d, 0x32, 0xc0, 0x17, 0xe6, 0xca, 0x88, 0xe7, 0xe6, 0x4d, 0x37,
+ 0x17, 0x5e, 0x9a, 0x44, 0x94, 0x5f, 0x2a, 0x6a,
+};
+static const unsigned char kat3787_addinpr1[] = {0};
+static const unsigned char kat3787_entropyinpr2[] = {
+ 0x0d, 0x04, 0x95, 0x78, 0x33, 0x5a, 0xa1, 0xe7, 0x63, 0xf2, 0x21, 0x10,
+ 0xb3, 0x48, 0x32, 0xa1, 0x53, 0x98, 0xf3, 0x04, 0xe3, 0x95, 0x5b, 0x86,
+ 0x45, 0xd8, 0x83, 0xe1, 0xf9, 0x58, 0x95, 0xd8,
+};
+static const unsigned char kat3787_addinpr2[] = {0};
+static const unsigned char kat3787_retbits[] = {
+ 0x94, 0x08, 0xcb, 0x6c, 0x00, 0x8a, 0x62, 0x84, 0xb7, 0x19, 0x32, 0x82,
+ 0x69, 0xdb, 0x30, 0xb6, 0x45, 0xe7, 0xe6, 0x8e, 0x34, 0xf6, 0xb5, 0x6c,
+ 0xba, 0x64, 0xfc, 0x8e, 0x8d, 0xe1, 0x8c, 0x24, 0x04, 0xdd, 0xc2, 0x9d,
+ 0xcc, 0xcd, 0xf2, 0x6e, 0x05, 0xa4, 0xe1, 0xb4, 0x9b, 0xdf, 0x4e, 0x5b,
+ 0xac, 0x0b, 0xdc, 0x83, 0x10, 0x92, 0x47, 0x7b, 0x33, 0xfd, 0x13, 0x24,
+ 0x49, 0xf8, 0x0d, 0xe9,
+};
+static const struct drbg_kat_pr_true kat3787_t = {
+ 6, kat3787_entropyin, kat3787_nonce, kat3787_persstr,
+ kat3787_entropyinpr1, kat3787_addinpr1, kat3787_entropyinpr2,
+ kat3787_addinpr2, kat3787_retbits
+};
+static const struct drbg_kat kat3787 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3787_t
+};
+
+static const unsigned char kat3788_entropyin[] = {
+ 0x5e, 0x87, 0x16, 0x4f, 0x7e, 0x49, 0x39, 0xad, 0xb8, 0x90, 0x3c, 0x39,
+ 0x9c, 0x2c, 0xd4, 0x5d, 0x7a, 0x9e, 0xce, 0x7e, 0x22, 0xa9, 0x5f, 0x3a,
+ 0xfe, 0xca, 0xcf, 0xe6, 0x0e, 0xc8, 0x44, 0x86,
+};
+static const unsigned char kat3788_nonce[] = {0};
+static const unsigned char kat3788_persstr[] = {0};
+static const unsigned char kat3788_entropyinpr1[] = {
+ 0xed, 0x07, 0xab, 0xbd, 0xa1, 0x6c, 0x7e, 0x85, 0x23, 0x6f, 0x04, 0x11,
+ 0xf1, 0x93, 0x69, 0x1c, 0xa1, 0xaf, 0x65, 0x89, 0x5d, 0x67, 0x88, 0x95,
+ 0x37, 0x3e, 0x4b, 0x95, 0x5b, 0x64, 0x15, 0xee,
+};
+static const unsigned char kat3788_addinpr1[] = {0};
+static const unsigned char kat3788_entropyinpr2[] = {
+ 0x91, 0x10, 0x69, 0x7c, 0xda, 0xdf, 0x4a, 0x9c, 0x03, 0x26, 0x4d, 0x6b,
+ 0xcb, 0xf0, 0x83, 0xb4, 0x08, 0xcd, 0x13, 0xa1, 0xcd, 0x71, 0x2b, 0xe5,
+ 0xf3, 0x29, 0x04, 0xf8, 0xf3, 0x21, 0xb7, 0x5f,
+};
+static const unsigned char kat3788_addinpr2[] = {0};
+static const unsigned char kat3788_retbits[] = {
+ 0xa3, 0x82, 0xc2, 0x9b, 0xd8, 0xa3, 0x27, 0x5a, 0x5f, 0x9c, 0x34, 0x70,
+ 0x9e, 0xa9, 0x89, 0xdc, 0xd6, 0x45, 0xb2, 0x41, 0x7d, 0x03, 0xeb, 0xa6,
+ 0x2b, 0x34, 0x95, 0x95, 0xda, 0x15, 0x5b, 0xcb, 0x5a, 0x33, 0x43, 0xd1,
+ 0x74, 0x8e, 0x57, 0x51, 0x25, 0xa1, 0x03, 0xa7, 0xd2, 0xe8, 0xc6, 0xfa,
+ 0x86, 0xfa, 0xa8, 0xee, 0x81, 0x29, 0x09, 0x38, 0x22, 0xd1, 0x24, 0xa4,
+ 0x89, 0x3c, 0x39, 0xaa,
+};
+static const struct drbg_kat_pr_true kat3788_t = {
+ 7, kat3788_entropyin, kat3788_nonce, kat3788_persstr,
+ kat3788_entropyinpr1, kat3788_addinpr1, kat3788_entropyinpr2,
+ kat3788_addinpr2, kat3788_retbits
+};
+static const struct drbg_kat kat3788 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3788_t
+};
+
+static const unsigned char kat3789_entropyin[] = {
+ 0x95, 0x5e, 0x06, 0x63, 0xb8, 0x25, 0x26, 0x0a, 0xa7, 0x26, 0xe8, 0x68,
+ 0xc4, 0x82, 0xa4, 0x92, 0xc7, 0xe6, 0x0d, 0x27, 0x3d, 0x80, 0x6a, 0x9a,
+ 0x92, 0xf2, 0xe3, 0x64, 0x99, 0x67, 0x38, 0xd4,
+};
+static const unsigned char kat3789_nonce[] = {0};
+static const unsigned char kat3789_persstr[] = {0};
+static const unsigned char kat3789_entropyinpr1[] = {
+ 0xfa, 0x07, 0x85, 0xdf, 0xc3, 0x39, 0xe8, 0x17, 0xab, 0x4a, 0xe9, 0x8c,
+ 0x45, 0x37, 0x52, 0x8b, 0x5c, 0x0b, 0x98, 0x97, 0x24, 0x72, 0x6d, 0x95,
+ 0xe4, 0xbe, 0xa4, 0x96, 0x1b, 0xd3, 0x59, 0x53,
+};
+static const unsigned char kat3789_addinpr1[] = {0};
+static const unsigned char kat3789_entropyinpr2[] = {
+ 0xa8, 0x6b, 0x47, 0xdf, 0xa1, 0xe4, 0x2b, 0x9b, 0x73, 0x00, 0xb3, 0x90,
+ 0x9f, 0x6a, 0x09, 0xa7, 0x53, 0x09, 0x0b, 0xf4, 0xad, 0xbf, 0x5d, 0xe2,
+ 0x07, 0xa4, 0x6c, 0xa0, 0xee, 0x50, 0x11, 0x72,
+};
+static const unsigned char kat3789_addinpr2[] = {0};
+static const unsigned char kat3789_retbits[] = {
+ 0xbd, 0x35, 0xf3, 0x74, 0x1e, 0x4d, 0xcb, 0xf3, 0x2d, 0x0f, 0x2e, 0x69,
+ 0xbb, 0x8d, 0x46, 0x71, 0x88, 0xe2, 0xac, 0x67, 0x12, 0x4c, 0x84, 0xf5,
+ 0x09, 0x02, 0x0f, 0xa9, 0x90, 0xcf, 0x30, 0xfa, 0xae, 0x64, 0x38, 0x29,
+ 0x99, 0xb4, 0x43, 0x79, 0xae, 0xc8, 0x60, 0x97, 0x8c, 0xcf, 0xc0, 0x90,
+ 0x64, 0x62, 0x67, 0x8a, 0xec, 0xbc, 0x5d, 0x42, 0x5e, 0xfc, 0x22, 0x82,
+ 0xe1, 0xb5, 0x33, 0x2d,
+};
+static const struct drbg_kat_pr_true kat3789_t = {
+ 8, kat3789_entropyin, kat3789_nonce, kat3789_persstr,
+ kat3789_entropyinpr1, kat3789_addinpr1, kat3789_entropyinpr2,
+ kat3789_addinpr2, kat3789_retbits
+};
+static const struct drbg_kat kat3789 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3789_t
+};
+
+static const unsigned char kat3790_entropyin[] = {
+ 0x8f, 0x91, 0xc3, 0x3b, 0xc4, 0xc6, 0x65, 0xa1, 0xca, 0x75, 0x2a, 0xdc,
+ 0x2e, 0x06, 0xa3, 0x98, 0xb4, 0x66, 0x19, 0x41, 0xf3, 0x17, 0x30, 0x88,
+ 0x65, 0xea, 0x28, 0x57, 0xc8, 0x28, 0xdb, 0xcc,
+};
+static const unsigned char kat3790_nonce[] = {0};
+static const unsigned char kat3790_persstr[] = {0};
+static const unsigned char kat3790_entropyinpr1[] = {
+ 0x75, 0xc6, 0xbb, 0x2d, 0x4f, 0xb2, 0x77, 0xad, 0x91, 0xb9, 0x35, 0xf6,
+ 0xa4, 0x50, 0xf4, 0xc9, 0x87, 0xa8, 0x9d, 0xf5, 0xa6, 0x58, 0x1f, 0xad,
+ 0xf0, 0xf6, 0xed, 0x60, 0xd0, 0x89, 0x92, 0x0c,
+};
+static const unsigned char kat3790_addinpr1[] = {0};
+static const unsigned char kat3790_entropyinpr2[] = {
+ 0x16, 0x4a, 0xb4, 0xd6, 0xd0, 0xdf, 0xd8, 0x41, 0x04, 0xb7, 0xbb, 0xb9,
+ 0xc3, 0x1c, 0x85, 0x9f, 0xa7, 0x67, 0x68, 0xb5, 0x32, 0xe1, 0x1c, 0xa1,
+ 0x5b, 0x19, 0x84, 0x10, 0xf0, 0xb9, 0x24, 0x7d,
+};
+static const unsigned char kat3790_addinpr2[] = {0};
+static const unsigned char kat3790_retbits[] = {
+ 0x93, 0x44, 0x7d, 0x09, 0x5c, 0x4b, 0x19, 0x69, 0xb1, 0x63, 0x13, 0x20,
+ 0x37, 0x39, 0x77, 0x6b, 0xeb, 0xf6, 0xf2, 0x41, 0x63, 0xe9, 0xaf, 0xff,
+ 0x86, 0x60, 0x6f, 0x54, 0xea, 0xc4, 0xff, 0x97, 0x51, 0xf2, 0xec, 0x08,
+ 0xa2, 0xca, 0x66, 0xf1, 0x35, 0xcf, 0x10, 0x49, 0xf2, 0x2c, 0xf7, 0x9a,
+ 0xad, 0x87, 0x75, 0xfa, 0x7c, 0xf1, 0x1e, 0x48, 0x0e, 0x4d, 0x53, 0x82,
+ 0x9d, 0xd1, 0x7e, 0xa8,
+};
+static const struct drbg_kat_pr_true kat3790_t = {
+ 9, kat3790_entropyin, kat3790_nonce, kat3790_persstr,
+ kat3790_entropyinpr1, kat3790_addinpr1, kat3790_entropyinpr2,
+ kat3790_addinpr2, kat3790_retbits
+};
+static const struct drbg_kat kat3790 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3790_t
+};
+
+static const unsigned char kat3791_entropyin[] = {
+ 0x36, 0xd5, 0x59, 0x45, 0xab, 0x9c, 0x3f, 0x38, 0x08, 0x54, 0xd0, 0x4d,
+ 0xb5, 0xc1, 0x5c, 0x8b, 0x7e, 0x10, 0xd8, 0xdb, 0x2c, 0xe9, 0xdc, 0x22,
+ 0x1b, 0x6e, 0x87, 0x24, 0x4e, 0xe1, 0x9c, 0xe5,
+};
+static const unsigned char kat3791_nonce[] = {0};
+static const unsigned char kat3791_persstr[] = {0};
+static const unsigned char kat3791_entropyinpr1[] = {
+ 0x20, 0x7d, 0x69, 0x69, 0xc1, 0x64, 0x33, 0xd2, 0x78, 0xc3, 0x77, 0xc5,
+ 0xac, 0x67, 0xf2, 0x89, 0x75, 0xd6, 0x9d, 0x7f, 0x13, 0x1a, 0x9f, 0x19,
+ 0x81, 0x8e, 0x7a, 0x0d, 0x46, 0xd7, 0xe4, 0xb8,
+};
+static const unsigned char kat3791_addinpr1[] = {0};
+static const unsigned char kat3791_entropyinpr2[] = {
+ 0x59, 0x40, 0x1d, 0x66, 0x81, 0xc5, 0xd5, 0x6d, 0xda, 0xaa, 0x7e, 0xd6,
+ 0x4e, 0x3b, 0x4b, 0x84, 0x73, 0x14, 0xb4, 0x4d, 0xf1, 0x0b, 0x69, 0xc3,
+ 0x13, 0x2f, 0x14, 0xba, 0x41, 0xcc, 0xe6, 0x48,
+};
+static const unsigned char kat3791_addinpr2[] = {0};
+static const unsigned char kat3791_retbits[] = {
+ 0xb3, 0xd1, 0x61, 0x12, 0x79, 0x8d, 0x6e, 0x9f, 0x12, 0x75, 0xd8, 0x8d,
+ 0x89, 0x32, 0x0b, 0x4b, 0xff, 0xf4, 0x4f, 0xe4, 0xed, 0xe9, 0xea, 0x73,
+ 0x44, 0x91, 0xb2, 0x04, 0x8d, 0xf1, 0x8e, 0x04, 0xbb, 0xc7, 0x92, 0x40,
+ 0xec, 0x5a, 0x2c, 0x6a, 0x7c, 0xcf, 0xce, 0x73, 0xae, 0x90, 0xda, 0xf3,
+ 0x58, 0xce, 0x96, 0x7b, 0x00, 0x93, 0xa8, 0x53, 0xbe, 0x5c, 0x19, 0x08,
+ 0x27, 0x55, 0x5a, 0xc7,
+};
+static const struct drbg_kat_pr_true kat3791_t = {
+ 10, kat3791_entropyin, kat3791_nonce, kat3791_persstr,
+ kat3791_entropyinpr1, kat3791_addinpr1, kat3791_entropyinpr2,
+ kat3791_addinpr2, kat3791_retbits
+};
+static const struct drbg_kat kat3791 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3791_t
+};
+
+static const unsigned char kat3792_entropyin[] = {
+ 0x12, 0x94, 0x15, 0x19, 0xf6, 0x19, 0xd9, 0x7f, 0x3c, 0xfa, 0xb9, 0x1c,
+ 0x68, 0xc5, 0x7d, 0xfe, 0x9d, 0x55, 0xee, 0x3c, 0x17, 0xee, 0x92, 0x7f,
+ 0xdb, 0x48, 0xe2, 0xb3, 0xa4, 0x99, 0x49, 0x4a,
+};
+static const unsigned char kat3792_nonce[] = {0};
+static const unsigned char kat3792_persstr[] = {0};
+static const unsigned char kat3792_entropyinpr1[] = {
+ 0xa4, 0x23, 0x4e, 0x62, 0x9f, 0x9b, 0x7b, 0xa4, 0xa0, 0x13, 0x3f, 0x17,
+ 0x61, 0x79, 0x85, 0xd2, 0xb3, 0xf8, 0xff, 0xc3, 0x30, 0x38, 0x53, 0xda,
+ 0xe2, 0x21, 0x4c, 0x47, 0x01, 0xa2, 0xfc, 0xee,
+};
+static const unsigned char kat3792_addinpr1[] = {0};
+static const unsigned char kat3792_entropyinpr2[] = {
+ 0xa2, 0x36, 0xe0, 0x62, 0x05, 0x5a, 0x4a, 0x18, 0xfd, 0xc4, 0xbf, 0x9c,
+ 0xd7, 0x54, 0x6d, 0xa1, 0x23, 0x9b, 0x7b, 0x87, 0x60, 0xbc, 0x3d, 0xf6,
+ 0x8f, 0xe4, 0x28, 0x25, 0x81, 0x2f, 0x5e, 0x38,
+};
+static const unsigned char kat3792_addinpr2[] = {0};
+static const unsigned char kat3792_retbits[] = {
+ 0xd5, 0x45, 0x60, 0x92, 0x7b, 0x33, 0x4d, 0x05, 0x46, 0x90, 0x7d, 0x50,
+ 0x0b, 0x49, 0xfb, 0xe9, 0xec, 0x2f, 0x33, 0xf4, 0x66, 0xc3, 0x18, 0x5a,
+ 0xd6, 0x38, 0xb8, 0x04, 0x1a, 0x88, 0x15, 0x26, 0x01, 0x98, 0x45, 0x31,
+ 0x18, 0xcb, 0x97, 0xd5, 0xac, 0xe9, 0x06, 0x89, 0x6d, 0x18, 0x8b, 0x6f,
+ 0xba, 0x3c, 0x9a, 0x14, 0x90, 0x4f, 0xb7, 0xd4, 0x00, 0x89, 0xa9, 0xdb,
+ 0x0c, 0xff, 0x9f, 0xc8,
+};
+static const struct drbg_kat_pr_true kat3792_t = {
+ 11, kat3792_entropyin, kat3792_nonce, kat3792_persstr,
+ kat3792_entropyinpr1, kat3792_addinpr1, kat3792_entropyinpr2,
+ kat3792_addinpr2, kat3792_retbits
+};
+static const struct drbg_kat kat3792 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3792_t
+};
+
+static const unsigned char kat3793_entropyin[] = {
+ 0x3e, 0x53, 0xb7, 0x2a, 0x8f, 0x70, 0x15, 0x7b, 0x5b, 0x4d, 0xf9, 0x12,
+ 0x6a, 0xa0, 0x28, 0x64, 0xcd, 0x24, 0x13, 0x97, 0x62, 0x52, 0xc4, 0x6e,
+ 0xcb, 0x4f, 0x9e, 0xcd, 0x10, 0xc2, 0x02, 0xfa,
+};
+static const unsigned char kat3793_nonce[] = {0};
+static const unsigned char kat3793_persstr[] = {0};
+static const unsigned char kat3793_entropyinpr1[] = {
+ 0x3b, 0x56, 0x4e, 0x33, 0x1c, 0xbb, 0x00, 0x1b, 0xbe, 0xe3, 0xc4, 0xa4,
+ 0x79, 0xf8, 0x5c, 0x57, 0x14, 0xa0, 0xbe, 0x6e, 0x2a, 0x72, 0x79, 0xfb,
+ 0xc4, 0xc6, 0x19, 0xf4, 0x43, 0x49, 0x4c, 0x16,
+};
+static const unsigned char kat3793_addinpr1[] = {0};
+static const unsigned char kat3793_entropyinpr2[] = {
+ 0xbc, 0x2e, 0x4d, 0xdc, 0x2d, 0x65, 0x73, 0x45, 0x26, 0xe8, 0xb6, 0x4c,
+ 0x96, 0x5b, 0x2f, 0x21, 0x7a, 0xb4, 0x99, 0xc6, 0x7d, 0x0e, 0xd2, 0x58,
+ 0xb0, 0x40, 0xe5, 0xab, 0x4b, 0x25, 0x10, 0x27,
+};
+static const unsigned char kat3793_addinpr2[] = {0};
+static const unsigned char kat3793_retbits[] = {
+ 0x18, 0x74, 0xe5, 0xeb, 0x37, 0xd4, 0x8d, 0x1a, 0x4b, 0x68, 0x2e, 0xe0,
+ 0xd5, 0x03, 0xa0, 0xe3, 0x0c, 0xf6, 0x8e, 0x71, 0xd6, 0x5e, 0x8c, 0x3b,
+ 0x78, 0x03, 0xea, 0x56, 0x1f, 0xd5, 0x41, 0x3b, 0x20, 0x7b, 0xe3, 0xea,
+ 0x04, 0x9a, 0xfb, 0x97, 0xc1, 0xfb, 0xb5, 0xf5, 0x9a, 0x34, 0xe4, 0xf8,
+ 0xbb, 0xf8, 0x63, 0x77, 0x27, 0xd4, 0x1b, 0x90, 0x8b, 0x8b, 0x61, 0x26,
+ 0xe8, 0x9f, 0x1f, 0xb0,
+};
+static const struct drbg_kat_pr_true kat3793_t = {
+ 12, kat3793_entropyin, kat3793_nonce, kat3793_persstr,
+ kat3793_entropyinpr1, kat3793_addinpr1, kat3793_entropyinpr2,
+ kat3793_addinpr2, kat3793_retbits
+};
+static const struct drbg_kat kat3793 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3793_t
+};
+
+static const unsigned char kat3794_entropyin[] = {
+ 0x8a, 0x7c, 0x2c, 0x25, 0x33, 0xfd, 0xf0, 0xcb, 0x75, 0x00, 0xfb, 0x12,
+ 0xd8, 0x24, 0x7e, 0x2a, 0xa4, 0x59, 0x0f, 0xe0, 0xe7, 0x69, 0x97, 0xda,
+ 0xcf, 0x54, 0x34, 0x81, 0x23, 0x1c, 0x8b, 0x4b,
+};
+static const unsigned char kat3794_nonce[] = {0};
+static const unsigned char kat3794_persstr[] = {0};
+static const unsigned char kat3794_entropyinpr1[] = {
+ 0x5d, 0xe0, 0x94, 0xe6, 0x42, 0x04, 0x39, 0x05, 0x2e, 0x76, 0xa9, 0x5e,
+ 0x2c, 0x15, 0xf0, 0xa5, 0x93, 0xa1, 0xe0, 0xac, 0x6a, 0xed, 0xfa, 0x31,
+ 0xb6, 0x81, 0x83, 0x05, 0x79, 0xf0, 0x0d, 0x2d,
+};
+static const unsigned char kat3794_addinpr1[] = {0};
+static const unsigned char kat3794_entropyinpr2[] = {
+ 0x7b, 0x92, 0xdd, 0xde, 0xa5, 0x1e, 0xde, 0xa7, 0x11, 0xbf, 0x43, 0x4e,
+ 0xf8, 0xf6, 0x04, 0x60, 0xb5, 0x1c, 0x88, 0x8d, 0x9b, 0x73, 0x6a, 0x99,
+ 0x8a, 0xf9, 0xbe, 0xfe, 0x12, 0xe3, 0xaa, 0x63,
+};
+static const unsigned char kat3794_addinpr2[] = {0};
+static const unsigned char kat3794_retbits[] = {
+ 0xbb, 0x7a, 0xdf, 0x58, 0x1b, 0x96, 0xa9, 0x4d, 0xd2, 0x65, 0xfe, 0xaa,
+ 0x14, 0xf0, 0xf8, 0xe4, 0x7d, 0xc7, 0xb3, 0x71, 0x6f, 0xa5, 0x8d, 0x67,
+ 0x36, 0x3d, 0x35, 0x36, 0xe4, 0x11, 0x50, 0xcd, 0xdd, 0xd5, 0x9a, 0x53,
+ 0xd0, 0x2f, 0xb6, 0x5a, 0x93, 0xdd, 0x64, 0x41, 0x7e, 0x11, 0x4d, 0xf5,
+ 0x1a, 0xac, 0xf9, 0x8d, 0x96, 0x91, 0xff, 0x3d, 0x19, 0x6c, 0x2d, 0xb6,
+ 0x88, 0x91, 0x72, 0x09,
+};
+static const struct drbg_kat_pr_true kat3794_t = {
+ 13, kat3794_entropyin, kat3794_nonce, kat3794_persstr,
+ kat3794_entropyinpr1, kat3794_addinpr1, kat3794_entropyinpr2,
+ kat3794_addinpr2, kat3794_retbits
+};
+static const struct drbg_kat kat3794 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3794_t
+};
+
+static const unsigned char kat3795_entropyin[] = {
+ 0x37, 0x36, 0x46, 0x1a, 0x00, 0x06, 0x66, 0x6e, 0xff, 0x36, 0x32, 0x87,
+ 0x3a, 0x14, 0xad, 0x00, 0x6d, 0xf6, 0x9c, 0xf7, 0xc1, 0xfd, 0x86, 0x48,
+ 0x49, 0xff, 0xd7, 0x2c, 0x04, 0xa5, 0x7c, 0xe6,
+};
+static const unsigned char kat3795_nonce[] = {0};
+static const unsigned char kat3795_persstr[] = {0};
+static const unsigned char kat3795_entropyinpr1[] = {
+ 0xc5, 0x20, 0x74, 0xe8, 0x34, 0x3f, 0x57, 0xc0, 0xf5, 0x6c, 0x9a, 0xa4,
+ 0xbc, 0x3a, 0x6b, 0xcc, 0x9d, 0xff, 0x30, 0xb2, 0x19, 0x05, 0xae, 0x6c,
+ 0x5e, 0xaa, 0xfc, 0x8d, 0xd0, 0xd8, 0x71, 0x5d,
+};
+static const unsigned char kat3795_addinpr1[] = {0};
+static const unsigned char kat3795_entropyinpr2[] = {
+ 0xf0, 0x9a, 0x47, 0x30, 0x9a, 0x1d, 0xdf, 0xeb, 0x54, 0xee, 0xa6, 0xdf,
+ 0xa7, 0xb1, 0x5a, 0xb0, 0xe6, 0xf1, 0x83, 0xe2, 0x47, 0x8a, 0x38, 0x89,
+ 0xde, 0x89, 0x09, 0x1c, 0x2b, 0xac, 0x0c, 0x25,
+};
+static const unsigned char kat3795_addinpr2[] = {0};
+static const unsigned char kat3795_retbits[] = {
+ 0xef, 0xd9, 0x31, 0xfe, 0x77, 0xe2, 0x02, 0xd2, 0xab, 0xa8, 0x6f, 0x64,
+ 0x07, 0x12, 0x6a, 0x85, 0x9c, 0x88, 0x1a, 0xbc, 0x86, 0xc8, 0xf8, 0x34,
+ 0x2d, 0xee, 0xab, 0xf5, 0x27, 0xed, 0x6d, 0xc6, 0x79, 0xe5, 0xdf, 0xcd,
+ 0xd2, 0x12, 0xdd, 0xc3, 0xf2, 0xe7, 0x79, 0xd0, 0x43, 0xf0, 0x58, 0x89,
+ 0x3d, 0x7b, 0x23, 0xc6, 0xb6, 0x93, 0x34, 0xba, 0x01, 0x32, 0xdb, 0x6c,
+ 0xe8, 0x2a, 0x16, 0x7c,
+};
+static const struct drbg_kat_pr_true kat3795_t = {
+ 14, kat3795_entropyin, kat3795_nonce, kat3795_persstr,
+ kat3795_entropyinpr1, kat3795_addinpr1, kat3795_entropyinpr2,
+ kat3795_addinpr2, kat3795_retbits
+};
+static const struct drbg_kat kat3795 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 0, 64, &kat3795_t
+};
+
+static const unsigned char kat3796_entropyin[] = {
+ 0x94, 0x05, 0x13, 0x83, 0x2d, 0xa6, 0x87, 0x8e, 0xb7, 0x6b, 0x91, 0xf2,
+ 0x59, 0xcc, 0x76, 0xf0, 0x16, 0xf4, 0x75, 0x16, 0xbf, 0x4e, 0xcf, 0x05,
+ 0x91, 0x90, 0x83, 0x7b, 0xad, 0x02, 0x6f, 0x46,
+};
+static const unsigned char kat3796_nonce[] = {0};
+static const unsigned char kat3796_persstr[] = {0};
+static const unsigned char kat3796_entropyinpr1[] = {
+ 0x42, 0xc6, 0xf3, 0x08, 0xbb, 0x9d, 0x05, 0xb9, 0x0e, 0x57, 0x0f, 0x5a,
+ 0xf5, 0xe7, 0xee, 0x62, 0xe5, 0xd9, 0xd5, 0x32, 0x6b, 0x14, 0x55, 0xe3,
+ 0x3d, 0xfd, 0x9e, 0x1a, 0x4b, 0x7a, 0xe7, 0x10,
+};
+static const unsigned char kat3796_addinpr1[] = {
+ 0x3a, 0x5e, 0x2f, 0xbe, 0xb2, 0xc6, 0x05, 0x49, 0x48, 0xe0, 0xce, 0x2c,
+ 0xd0, 0xb2, 0xa5, 0x57, 0x62, 0x8d, 0x41, 0x2b, 0xe0, 0xb6, 0x08, 0x6c,
+ 0x63, 0xd8, 0xfa, 0x4f, 0x19, 0x6d, 0x8f, 0x91,
+};
+static const unsigned char kat3796_entropyinpr2[] = {
+ 0xac, 0xd9, 0xa1, 0x6b, 0x81, 0x79, 0x5e, 0xc2, 0x17, 0xc2, 0x9b, 0xb9,
+ 0xe4, 0xa8, 0xe5, 0x1b, 0xe6, 0x1e, 0xf0, 0xe2, 0xf8, 0xd9, 0xac, 0x0d,
+ 0xa4, 0x9f, 0x4b, 0x74, 0x61, 0x6d, 0xd7, 0x89,
+};
+static const unsigned char kat3796_addinpr2[] = {
+ 0xf9, 0xe1, 0x53, 0xb0, 0x41, 0xbe, 0xc6, 0xe7, 0xb3, 0xb7, 0xd9, 0x64,
+ 0x4b, 0xd6, 0xb8, 0xcb, 0x15, 0x6f, 0xf7, 0xc7, 0xbb, 0x60, 0xae, 0x71,
+ 0xd0, 0xac, 0x64, 0xf8, 0x6b, 0x00, 0x16, 0xdd,
+};
+static const unsigned char kat3796_retbits[] = {
+ 0xda, 0x60, 0x0d, 0x28, 0x5c, 0xf0, 0x47, 0xc7, 0x74, 0x07, 0x96, 0x12,
+ 0xea, 0x68, 0x4f, 0xce, 0x14, 0xa9, 0x32, 0x34, 0xba, 0x4e, 0x39, 0xca,
+ 0x27, 0xeb, 0x8f, 0x68, 0xda, 0xde, 0x12, 0xc9, 0xe8, 0x1f, 0xbe, 0x93,
+ 0x45, 0xe6, 0xd4, 0xd1, 0xee, 0x70, 0x5e, 0x7e, 0x34, 0xee, 0x01, 0x49,
+ 0x7b, 0x1a, 0x55, 0xd6, 0x5f, 0x39, 0x6b, 0xaa, 0x7b, 0x9b, 0xe7, 0xc7,
+ 0x20, 0xc7, 0xe8, 0x0d,
+};
+static const struct drbg_kat_pr_true kat3796_t = {
+ 0, kat3796_entropyin, kat3796_nonce, kat3796_persstr,
+ kat3796_entropyinpr1, kat3796_addinpr1, kat3796_entropyinpr2,
+ kat3796_addinpr2, kat3796_retbits
+};
+static const struct drbg_kat kat3796 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3796_t
+};
+
+static const unsigned char kat3797_entropyin[] = {
+ 0xc3, 0x50, 0x86, 0xe6, 0x89, 0x2f, 0xde, 0x79, 0xbf, 0x81, 0x2b, 0x18,
+ 0x12, 0x1d, 0x8f, 0x5f, 0x2b, 0xb3, 0x73, 0x26, 0x1c, 0xbf, 0x12, 0x96,
+ 0x8d, 0x29, 0xe8, 0xf0, 0xd0, 0x8f, 0xc7, 0x40,
+};
+static const unsigned char kat3797_nonce[] = {0};
+static const unsigned char kat3797_persstr[] = {0};
+static const unsigned char kat3797_entropyinpr1[] = {
+ 0x24, 0x29, 0x6a, 0xa0, 0x27, 0xd9, 0x10, 0xe9, 0x39, 0x9d, 0xed, 0xcd,
+ 0x8e, 0x30, 0xdf, 0x2e, 0x26, 0x14, 0x44, 0xc5, 0xab, 0x44, 0x3f, 0xcd,
+ 0x3c, 0x0c, 0x47, 0x64, 0xf1, 0x7c, 0x16, 0xb6,
+};
+static const unsigned char kat3797_addinpr1[] = {
+ 0x29, 0x9f, 0x07, 0xb9, 0xec, 0x54, 0xe5, 0x78, 0x02, 0x6f, 0xd8, 0xf1,
+ 0xaf, 0xef, 0xaf, 0x2d, 0x7c, 0x89, 0x08, 0xde, 0xc6, 0x92, 0x78, 0x87,
+ 0x28, 0x43, 0xa5, 0xbb, 0x8f, 0xe3, 0x9d, 0x1f,
+};
+static const unsigned char kat3797_entropyinpr2[] = {
+ 0x14, 0xf0, 0x39, 0x34, 0x08, 0x45, 0x2e, 0x98, 0x1d, 0x84, 0x48, 0x50,
+ 0x72, 0xca, 0xb5, 0xba, 0xf5, 0x6c, 0xcd, 0x55, 0x4f, 0x47, 0x35, 0xc5,
+ 0x16, 0xa8, 0x0d, 0x6d, 0xde, 0x1c, 0x51, 0xc4,
+};
+static const unsigned char kat3797_addinpr2[] = {
+ 0x84, 0x99, 0x27, 0xc7, 0xe5, 0x69, 0x58, 0xb7, 0xdd, 0x1b, 0x91, 0xc5,
+ 0xf1, 0x8b, 0x94, 0x15, 0xa7, 0x4f, 0xc5, 0xdd, 0x7d, 0x5e, 0x8e, 0x0e,
+ 0x36, 0x36, 0x5d, 0xa1, 0xee, 0x7e, 0x35, 0x61,
+};
+static const unsigned char kat3797_retbits[] = {
+ 0x13, 0xba, 0x75, 0x70, 0x47, 0x6b, 0x6a, 0x69, 0xa8, 0x7c, 0x3f, 0x0f,
+ 0x43, 0x8b, 0x74, 0xb7, 0xc6, 0x18, 0x12, 0xa6, 0x8a, 0xc5, 0xbc, 0x19,
+ 0x37, 0x89, 0x4b, 0xd4, 0x80, 0xae, 0x03, 0xef, 0x99, 0x75, 0x2b, 0x77,
+ 0xa6, 0x94, 0xab, 0x94, 0xaa, 0x72, 0xf6, 0x88, 0x39, 0xb3, 0x3e, 0xf8,
+ 0xbb, 0xf1, 0x31, 0x23, 0xfe, 0x8a, 0x82, 0x07, 0x8b, 0x91, 0x4c, 0x9b,
+ 0x8e, 0xc0, 0x87, 0x27,
+};
+static const struct drbg_kat_pr_true kat3797_t = {
+ 1, kat3797_entropyin, kat3797_nonce, kat3797_persstr,
+ kat3797_entropyinpr1, kat3797_addinpr1, kat3797_entropyinpr2,
+ kat3797_addinpr2, kat3797_retbits
+};
+static const struct drbg_kat kat3797 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3797_t
+};
+
+static const unsigned char kat3798_entropyin[] = {
+ 0x69, 0xdf, 0xcb, 0xb4, 0xa2, 0x84, 0x38, 0x68, 0xcd, 0x14, 0x1a, 0x24,
+ 0x6c, 0x69, 0xb6, 0x4e, 0x5a, 0x91, 0x1d, 0xd1, 0xc4, 0xf6, 0x23, 0x89,
+ 0xcb, 0xa4, 0x75, 0x0c, 0xc2, 0xee, 0xcd, 0xfa,
+};
+static const unsigned char kat3798_nonce[] = {0};
+static const unsigned char kat3798_persstr[] = {0};
+static const unsigned char kat3798_entropyinpr1[] = {
+ 0x6a, 0xa7, 0xe0, 0x06, 0x57, 0xea, 0x6a, 0x29, 0x4a, 0xe0, 0xb4, 0x5e,
+ 0xa5, 0xe0, 0x17, 0xbe, 0x53, 0xaa, 0x67, 0x43, 0x4b, 0x1e, 0xdd, 0xe2,
+ 0x8e, 0xb9, 0x0f, 0x52, 0xbf, 0xc9, 0xf2, 0x68,
+};
+static const unsigned char kat3798_addinpr1[] = {
+ 0x3b, 0xf1, 0xc1, 0x48, 0xb0, 0x4c, 0xb5, 0x3e, 0x19, 0x73, 0xa8, 0xc5,
+ 0xad, 0xe5, 0x6d, 0xc6, 0xe6, 0xc7, 0x5c, 0x5f, 0x12, 0xc6, 0x89, 0xa7,
+ 0x4a, 0xcf, 0x71, 0xf8, 0x49, 0x79, 0x7e, 0x8c,
+};
+static const unsigned char kat3798_entropyinpr2[] = {
+ 0x79, 0x09, 0x7e, 0x55, 0xba, 0x3c, 0xfd, 0xdd, 0x22, 0x3c, 0x62, 0xbc,
+ 0x25, 0x36, 0xc2, 0x84, 0xe2, 0xb2, 0x36, 0x72, 0x6a, 0x77, 0xe5, 0x36,
+ 0x1b, 0xed, 0x1f, 0xea, 0x7a, 0x7d, 0x7a, 0xdd,
+};
+static const unsigned char kat3798_addinpr2[] = {
+ 0xf8, 0x63, 0xae, 0x0c, 0xa0, 0x5c, 0xbd, 0x59, 0x97, 0x95, 0x44, 0xcd,
+ 0xc8, 0x5c, 0x9f, 0x90, 0xed, 0x33, 0x00, 0x1d, 0x60, 0xf5, 0xd4, 0x4e,
+ 0xde, 0x91, 0xd8, 0xb8, 0x12, 0x70, 0xf7, 0x5a,
+};
+static const unsigned char kat3798_retbits[] = {
+ 0x1e, 0x28, 0x68, 0x0f, 0x65, 0xc3, 0x60, 0xf4, 0xbc, 0xcd, 0xba, 0xd1,
+ 0x6c, 0x70, 0x27, 0x6b, 0x8e, 0xf0, 0x61, 0xf7, 0x85, 0xce, 0xb2, 0x4e,
+ 0x5c, 0x26, 0xcc, 0x81, 0x80, 0xb4, 0x93, 0x11, 0xa0, 0x1f, 0xc7, 0xec,
+ 0xa2, 0x3f, 0x7e, 0x77, 0xbe, 0xad, 0x9d, 0xf3, 0x26, 0x8e, 0x32, 0xdc,
+ 0x9b, 0x1a, 0x9c, 0x6b, 0x7c, 0xe4, 0x62, 0xf1, 0x49, 0xcb, 0x53, 0xdd,
+ 0x9c, 0xf4, 0x3e, 0x20,
+};
+static const struct drbg_kat_pr_true kat3798_t = {
+ 2, kat3798_entropyin, kat3798_nonce, kat3798_persstr,
+ kat3798_entropyinpr1, kat3798_addinpr1, kat3798_entropyinpr2,
+ kat3798_addinpr2, kat3798_retbits
+};
+static const struct drbg_kat kat3798 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3798_t
+};
+
+static const unsigned char kat3799_entropyin[] = {
+ 0xcb, 0xbd, 0x17, 0x5d, 0x42, 0x7c, 0xab, 0x8b, 0xb8, 0xa4, 0x4a, 0xcf,
+ 0x18, 0x9d, 0xb1, 0x92, 0x4e, 0xb3, 0x14, 0x80, 0x6c, 0xba, 0x32, 0x11,
+ 0x23, 0xed, 0xb9, 0x5c, 0xb8, 0x5f, 0xcb, 0x83,
+};
+static const unsigned char kat3799_nonce[] = {0};
+static const unsigned char kat3799_persstr[] = {0};
+static const unsigned char kat3799_entropyinpr1[] = {
+ 0x9f, 0x2c, 0x59, 0x2f, 0x9a, 0x68, 0xc0, 0x63, 0x61, 0x7f, 0x74, 0x0d,
+ 0xfb, 0x31, 0x13, 0x84, 0xb1, 0xa3, 0x1a, 0x21, 0xe0, 0xcb, 0x78, 0xa0,
+ 0x53, 0xe7, 0x4c, 0xa8, 0x88, 0xa1, 0x44, 0xeb,
+};
+static const unsigned char kat3799_addinpr1[] = {
+ 0xb8, 0x16, 0xf2, 0x05, 0xed, 0x3d, 0x44, 0xbd, 0xa7, 0x29, 0xf3, 0xe1,
+ 0xd3, 0x17, 0xbb, 0xb7, 0x51, 0x16, 0x89, 0x2b, 0xc6, 0xaa, 0xe8, 0x68,
+ 0x66, 0x95, 0x57, 0x05, 0x19, 0x3a, 0xe1, 0xdd,
+};
+static const unsigned char kat3799_entropyinpr2[] = {
+ 0xad, 0x96, 0x1d, 0xbd, 0x7e, 0x2e, 0xc6, 0xef, 0x76, 0x69, 0xf3, 0x5e,
+ 0xf7, 0x9e, 0x79, 0x94, 0x5a, 0xf8, 0x1b, 0x1e, 0x81, 0x59, 0x1b, 0x5d,
+ 0xd8, 0xfb, 0x44, 0x85, 0xb9, 0xbe, 0x86, 0xed,
+};
+static const unsigned char kat3799_addinpr2[] = {
+ 0xf0, 0x73, 0xd0, 0xef, 0x5d, 0x90, 0x82, 0xd1, 0x17, 0x8d, 0x4e, 0x54,
+ 0x79, 0x93, 0x7a, 0x4c, 0x27, 0x96, 0x1b, 0x98, 0x34, 0xc6, 0x72, 0xe1,
+ 0xce, 0xea, 0x9a, 0x0b, 0x27, 0xad, 0x3e, 0x26,
+};
+static const unsigned char kat3799_retbits[] = {
+ 0x2d, 0x72, 0x39, 0x62, 0x29, 0x34, 0x5d, 0xe1, 0x44, 0xa3, 0xf1, 0x92,
+ 0x43, 0xa3, 0xe6, 0xd1, 0xe0, 0xdf, 0x81, 0x06, 0x20, 0xe4, 0xa4, 0xce,
+ 0x4b, 0xfa, 0xb4, 0x04, 0xf6, 0xcd, 0x36, 0x4b, 0x5a, 0x85, 0x44, 0xe6,
+ 0x1d, 0xf5, 0x6a, 0x34, 0xf9, 0xcd, 0xe6, 0x85, 0xa2, 0x4c, 0x9d, 0xf4,
+ 0x21, 0x36, 0xc2, 0xd4, 0x98, 0x5d, 0x56, 0xf5, 0x35, 0xe9, 0xb5, 0x7e,
+ 0x6a, 0xf1, 0x90, 0x80,
+};
+static const struct drbg_kat_pr_true kat3799_t = {
+ 3, kat3799_entropyin, kat3799_nonce, kat3799_persstr,
+ kat3799_entropyinpr1, kat3799_addinpr1, kat3799_entropyinpr2,
+ kat3799_addinpr2, kat3799_retbits
+};
+static const struct drbg_kat kat3799 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3799_t
+};
+
+static const unsigned char kat3800_entropyin[] = {
+ 0x5b, 0x31, 0x4e, 0x29, 0x4b, 0xa1, 0x4a, 0x9a, 0x14, 0xcb, 0x4d, 0x82,
+ 0x81, 0xe4, 0x4c, 0x26, 0x74, 0xe9, 0x4c, 0x47, 0x44, 0xc3, 0xed, 0xf0,
+ 0xbb, 0xdd, 0x14, 0x4f, 0xce, 0xe1, 0x29, 0x5e,
+};
+static const unsigned char kat3800_nonce[] = {0};
+static const unsigned char kat3800_persstr[] = {0};
+static const unsigned char kat3800_entropyinpr1[] = {
+ 0x1e, 0x00, 0xe9, 0x6f, 0x93, 0x97, 0x7e, 0x68, 0xd8, 0x47, 0x9a, 0x03,
+ 0xe7, 0x8d, 0x14, 0xc3, 0x74, 0x48, 0x9e, 0x99, 0x2a, 0x51, 0xd0, 0x15,
+ 0x3d, 0x0b, 0x8d, 0x5e, 0xd5, 0xcc, 0xb9, 0xcb,
+};
+static const unsigned char kat3800_addinpr1[] = {
+ 0xf5, 0xf3, 0xdf, 0xbf, 0xae, 0xe3, 0xd0, 0x2d, 0xfd, 0xb8, 0x28, 0x84,
+ 0x10, 0xcf, 0x4d, 0x51, 0x8f, 0xd7, 0x49, 0xf3, 0x39, 0xdc, 0x4c, 0x3d,
+ 0xc5, 0xef, 0xae, 0x83, 0xa1, 0xeb, 0x4d, 0xd8,
+};
+static const unsigned char kat3800_entropyinpr2[] = {
+ 0x88, 0xa4, 0xfb, 0x2c, 0xe8, 0xf2, 0xb2, 0x2f, 0xd3, 0x01, 0x14, 0xc7,
+ 0x06, 0x46, 0x70, 0x31, 0x60, 0x17, 0xdc, 0xce, 0x22, 0xd7, 0xb4, 0xa8,
+ 0x24, 0x0c, 0xfb, 0x2b, 0xd6, 0xba, 0x93, 0xf1,
+};
+static const unsigned char kat3800_addinpr2[] = {
+ 0xfb, 0xb0, 0x0a, 0x5d, 0xaa, 0xf8, 0xe5, 0x17, 0xdd, 0x5a, 0x20, 0x7d,
+ 0xfa, 0x27, 0xe4, 0xb7, 0xba, 0x83, 0xed, 0xfb, 0x38, 0x4d, 0x58, 0x09,
+ 0xd1, 0xcc, 0x46, 0x33, 0x98, 0x3b, 0x8c, 0xfc,
+};
+static const unsigned char kat3800_retbits[] = {
+ 0x1a, 0xf8, 0x07, 0x4b, 0x29, 0xde, 0xd5, 0x85, 0x1f, 0x41, 0x4b, 0x06,
+ 0x2e, 0x7d, 0x7f, 0xba, 0x3a, 0x27, 0x4d, 0x15, 0xc5, 0xe8, 0xf9, 0xdc,
+ 0x04, 0x6b, 0x40, 0x76, 0x45, 0xf4, 0x6c, 0xea, 0xfa, 0x9b, 0xf6, 0xf9,
+ 0x62, 0x81, 0x7b, 0x90, 0x39, 0x51, 0x83, 0x54, 0x82, 0x01, 0xb8, 0x24,
+ 0x90, 0x3b, 0x49, 0x17, 0xa4, 0x54, 0xef, 0x5a, 0x32, 0x6d, 0x3d, 0x9f,
+ 0x56, 0x18, 0xe5, 0x95,
+};
+static const struct drbg_kat_pr_true kat3800_t = {
+ 4, kat3800_entropyin, kat3800_nonce, kat3800_persstr,
+ kat3800_entropyinpr1, kat3800_addinpr1, kat3800_entropyinpr2,
+ kat3800_addinpr2, kat3800_retbits
+};
+static const struct drbg_kat kat3800 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3800_t
+};
+
+static const unsigned char kat3801_entropyin[] = {
+ 0x27, 0x43, 0xf8, 0xb3, 0x7d, 0x24, 0x2a, 0xe4, 0x92, 0x8e, 0x61, 0xb9,
+ 0x46, 0x92, 0xe9, 0x2a, 0x73, 0xe9, 0xdb, 0xcf, 0x26, 0xff, 0xfc, 0xbd,
+ 0xf8, 0x6a, 0xf2, 0x00, 0xe2, 0x48, 0xa8, 0x9c,
+};
+static const unsigned char kat3801_nonce[] = {0};
+static const unsigned char kat3801_persstr[] = {0};
+static const unsigned char kat3801_entropyinpr1[] = {
+ 0xb5, 0xb8, 0xc3, 0xb0, 0xd8, 0xdb, 0x9a, 0x0f, 0x30, 0x90, 0xe0, 0x82,
+ 0x68, 0x6d, 0x02, 0x66, 0x92, 0x4e, 0x59, 0xd1, 0x50, 0x58, 0x1b, 0xc1,
+ 0x7f, 0x99, 0x6f, 0x8d, 0x8e, 0xfa, 0xa5, 0xdb,
+};
+static const unsigned char kat3801_addinpr1[] = {
+ 0x7e, 0xd4, 0x21, 0xae, 0xe6, 0xff, 0x71, 0x16, 0x0f, 0x00, 0x02, 0xc2,
+ 0x85, 0x53, 0xc1, 0xb7, 0xca, 0xb5, 0xcf, 0x69, 0x66, 0xef, 0xc2, 0xba,
+ 0x38, 0x6a, 0x84, 0xe6, 0xbf, 0xe7, 0x75, 0x5e,
+};
+static const unsigned char kat3801_entropyinpr2[] = {
+ 0x7e, 0x09, 0x09, 0x22, 0x19, 0xc3, 0x0f, 0x0a, 0xb2, 0x1a, 0x9b, 0xff,
+ 0x15, 0xe6, 0x53, 0xdc, 0x47, 0xa8, 0xf7, 0x8a, 0x9b, 0x48, 0xdd, 0x44,
+ 0xa0, 0x06, 0xb9, 0x4c, 0xd2, 0xf3, 0x40, 0x64,
+};
+static const unsigned char kat3801_addinpr2[] = {
+ 0x15, 0xbe, 0xac, 0xda, 0xf7, 0x1f, 0xf4, 0x6f, 0x96, 0xa0, 0x94, 0xd0,
+ 0x19, 0xfa, 0x1b, 0xcf, 0x8d, 0x37, 0x12, 0x30, 0x35, 0xa7, 0xb5, 0xfa,
+ 0xd3, 0x1b, 0x77, 0x5f, 0x7d, 0x4d, 0xc8, 0x61,
+};
+static const unsigned char kat3801_retbits[] = {
+ 0x9b, 0x8a, 0x28, 0x52, 0x03, 0x8a, 0x57, 0xae, 0x7d, 0xad, 0xe5, 0x7b,
+ 0xd9, 0xee, 0xc5, 0x08, 0xa2, 0xa2, 0xad, 0xc4, 0xd9, 0x89, 0x4f, 0x8e,
+ 0xf9, 0x95, 0x1c, 0xe1, 0x16, 0x4b, 0x0b, 0xd2, 0x79, 0x80, 0x08, 0x45,
+ 0x6a, 0x29, 0xa3, 0xae, 0xa0, 0x5d, 0x43, 0xef, 0x94, 0xed, 0x12, 0xf9,
+ 0xa7, 0xba, 0x9b, 0xed, 0xb2, 0x76, 0x39, 0xfc, 0x29, 0xeb, 0x03, 0x54,
+ 0x39, 0x07, 0x18, 0xdc,
+};
+static const struct drbg_kat_pr_true kat3801_t = {
+ 5, kat3801_entropyin, kat3801_nonce, kat3801_persstr,
+ kat3801_entropyinpr1, kat3801_addinpr1, kat3801_entropyinpr2,
+ kat3801_addinpr2, kat3801_retbits
+};
+static const struct drbg_kat kat3801 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3801_t
+};
+
+static const unsigned char kat3802_entropyin[] = {
+ 0x59, 0x06, 0xe1, 0xde, 0x68, 0xed, 0x4b, 0x52, 0xd6, 0x0e, 0xc9, 0x7a,
+ 0xc6, 0x62, 0xe8, 0xc0, 0xab, 0xfc, 0x1c, 0xb3, 0x1b, 0x46, 0x11, 0x3d,
+ 0xf2, 0x41, 0xfa, 0x88, 0x8c, 0xc3, 0xb4, 0xeb,
+};
+static const unsigned char kat3802_nonce[] = {0};
+static const unsigned char kat3802_persstr[] = {0};
+static const unsigned char kat3802_entropyinpr1[] = {
+ 0xae, 0xa7, 0x34, 0x57, 0x8a, 0xa6, 0x62, 0xcc, 0x13, 0x5f, 0x0c, 0x88,
+ 0xec, 0x24, 0xe7, 0x10, 0x07, 0x7a, 0x8a, 0x2e, 0xa3, 0x18, 0x69, 0xdb,
+ 0xf9, 0x92, 0x1f, 0x48, 0x5a, 0x66, 0x47, 0x40,
+};
+static const unsigned char kat3802_addinpr1[] = {
+ 0xf0, 0xa6, 0x5a, 0xf4, 0x8d, 0x67, 0xbe, 0x70, 0x5f, 0xf6, 0xda, 0xb9,
+ 0x40, 0x53, 0x3d, 0x72, 0x50, 0x15, 0x6a, 0x28, 0x2d, 0xba, 0x18, 0x56,
+ 0xa7, 0xfa, 0x1d, 0x13, 0x2e, 0xcc, 0xb5, 0xe6,
+};
+static const unsigned char kat3802_entropyinpr2[] = {
+ 0x0f, 0x24, 0xc6, 0xd7, 0xf9, 0x32, 0x24, 0x11, 0x01, 0x67, 0x34, 0xea,
+ 0x1c, 0x26, 0x52, 0xce, 0x88, 0x0d, 0x65, 0x82, 0x66, 0x0c, 0x89, 0xba,
+ 0xfc, 0xad, 0x7a, 0xe7, 0x5d, 0x90, 0x02, 0x9f,
+};
+static const unsigned char kat3802_addinpr2[] = {
+ 0xcd, 0xa4, 0xcd, 0xc0, 0xc7, 0xf7, 0x37, 0x45, 0x42, 0xd9, 0x07, 0x24,
+ 0xf4, 0xae, 0x94, 0x68, 0xe6, 0x68, 0x16, 0x40, 0x23, 0x29, 0x58, 0xbb,
+ 0x1a, 0xc1, 0xc4, 0xaa, 0xdb, 0xc3, 0x27, 0xe3,
+};
+static const unsigned char kat3802_retbits[] = {
+ 0x9b, 0x3b, 0xf3, 0xf8, 0xb9, 0x14, 0xe6, 0x49, 0x62, 0x78, 0x84, 0xa9,
+ 0xdb, 0x3b, 0xea, 0xca, 0x71, 0x12, 0x70, 0xb5, 0x4d, 0xdb, 0xd4, 0x0d,
+ 0x31, 0x80, 0x20, 0x0f, 0x0a, 0x09, 0xbd, 0x98, 0x83, 0x79, 0x45, 0xda,
+ 0x9c, 0xb0, 0x26, 0x00, 0xe8, 0xfe, 0xff, 0x41, 0x0b, 0xb5, 0xd8, 0xde,
+ 0x4c, 0x8e, 0x4f, 0xf1, 0x2f, 0xb6, 0x2b, 0xa3, 0x94, 0x5a, 0x7d, 0xcd,
+ 0x24, 0x9b, 0x36, 0xa1,
+};
+static const struct drbg_kat_pr_true kat3802_t = {
+ 6, kat3802_entropyin, kat3802_nonce, kat3802_persstr,
+ kat3802_entropyinpr1, kat3802_addinpr1, kat3802_entropyinpr2,
+ kat3802_addinpr2, kat3802_retbits
+};
+static const struct drbg_kat kat3802 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3802_t
+};
+
+static const unsigned char kat3803_entropyin[] = {
+ 0x9d, 0xf1, 0x04, 0x38, 0xa5, 0xfe, 0x5e, 0xf0, 0x63, 0x13, 0x46, 0xab,
+ 0xae, 0x84, 0xfe, 0x08, 0x5a, 0x5d, 0x66, 0x2a, 0xae, 0x49, 0x27, 0xa0,
+ 0x42, 0x29, 0x21, 0xe0, 0xc5, 0x0c, 0x9a, 0x16,
+};
+static const unsigned char kat3803_nonce[] = {0};
+static const unsigned char kat3803_persstr[] = {0};
+static const unsigned char kat3803_entropyinpr1[] = {
+ 0x32, 0xb4, 0x16, 0xbb, 0x02, 0xe2, 0xd4, 0xdb, 0xce, 0x86, 0x0e, 0x57,
+ 0x02, 0x0b, 0x25, 0x16, 0x98, 0xe3, 0xf9, 0x6d, 0x55, 0xd4, 0x5c, 0x0d,
+ 0x0a, 0x12, 0x4f, 0x8e, 0xc5, 0xf4, 0x33, 0x70,
+};
+static const unsigned char kat3803_addinpr1[] = {
+ 0xd0, 0xb0, 0xec, 0xc9, 0x8a, 0xff, 0x92, 0x9d, 0x67, 0xf2, 0x0c, 0x86,
+ 0x51, 0x9d, 0x27, 0x64, 0xa0, 0x77, 0x1c, 0x23, 0x25, 0xf1, 0xce, 0x75,
+ 0x94, 0xe7, 0x74, 0x25, 0xe3, 0x8f, 0xcb, 0x71,
+};
+static const unsigned char kat3803_entropyinpr2[] = {
+ 0x5b, 0xe9, 0xeb, 0x7b, 0x43, 0x73, 0x80, 0xa9, 0xd4, 0x79, 0x01, 0xcc,
+ 0x4b, 0xb9, 0xdd, 0xc4, 0xbc, 0x62, 0x01, 0xd9, 0x06, 0x0b, 0x24, 0x78,
+ 0x60, 0x0e, 0x3f, 0x97, 0x28, 0x7f, 0xea, 0x37,
+};
+static const unsigned char kat3803_addinpr2[] = {
+ 0xfc, 0x61, 0xb3, 0x4f, 0xa0, 0x34, 0xed, 0x67, 0x39, 0xb1, 0xa3, 0xf3,
+ 0x64, 0xb4, 0x1b, 0x7c, 0x8c, 0x60, 0x54, 0xfd, 0xfd, 0x14, 0xc4, 0x91,
+ 0x39, 0x19, 0x3b, 0x91, 0xcf, 0x6d, 0xc9, 0xb5,
+};
+static const unsigned char kat3803_retbits[] = {
+ 0xc8, 0xe3, 0x35, 0x86, 0x1e, 0xbc, 0x61, 0xea, 0x6d, 0xde, 0x4c, 0x7e,
+ 0x6b, 0x9a, 0xfc, 0x90, 0x8f, 0xb9, 0x67, 0x44, 0x19, 0x31, 0xc1, 0xc1,
+ 0x3f, 0x8e, 0x5e, 0xbe, 0xef, 0x7d, 0xc5, 0x09, 0xd0, 0x7f, 0x01, 0x85,
+ 0xe9, 0x4a, 0x1d, 0x53, 0x5f, 0x5c, 0xf1, 0x33, 0xed, 0x98, 0x8b, 0xe5,
+ 0xf8, 0x3b, 0x86, 0xb0, 0x01, 0xc5, 0x5f, 0xe6, 0x1d, 0x78, 0x1c, 0xc5,
+ 0x05, 0x25, 0x9a, 0xff,
+};
+static const struct drbg_kat_pr_true kat3803_t = {
+ 7, kat3803_entropyin, kat3803_nonce, kat3803_persstr,
+ kat3803_entropyinpr1, kat3803_addinpr1, kat3803_entropyinpr2,
+ kat3803_addinpr2, kat3803_retbits
+};
+static const struct drbg_kat kat3803 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3803_t
+};
+
+static const unsigned char kat3804_entropyin[] = {
+ 0x21, 0xa8, 0xb5, 0x9c, 0x97, 0xf2, 0xf7, 0xaa, 0xb5, 0x09, 0x8e, 0xb5,
+ 0x47, 0x99, 0xeb, 0xea, 0x56, 0xb9, 0xf6, 0xc7, 0xb5, 0x61, 0x0d, 0xbe,
+ 0x33, 0xb8, 0x25, 0x07, 0xea, 0x0d, 0x6c, 0x58,
+};
+static const unsigned char kat3804_nonce[] = {0};
+static const unsigned char kat3804_persstr[] = {0};
+static const unsigned char kat3804_entropyinpr1[] = {
+ 0x16, 0xef, 0x87, 0x1c, 0xb3, 0x79, 0x62, 0xc7, 0xf5, 0x80, 0x9c, 0x59,
+ 0x85, 0x7c, 0xb2, 0x7b, 0x31, 0x06, 0xcc, 0xf0, 0x22, 0x7f, 0x91, 0x75,
+ 0xc7, 0x1b, 0x03, 0x57, 0xd6, 0xfc, 0x97, 0x9d,
+};
+static const unsigned char kat3804_addinpr1[] = {
+ 0x28, 0xf8, 0xf4, 0x76, 0xf9, 0x79, 0x4e, 0x5e, 0x30, 0xff, 0x71, 0x1e,
+ 0x2e, 0xe3, 0x17, 0x99, 0x4f, 0x5a, 0xb5, 0x1b, 0xcc, 0x09, 0x7e, 0x87,
+ 0x39, 0xcf, 0xb0, 0xa7, 0x26, 0x82, 0x5d, 0x6b,
+};
+static const unsigned char kat3804_entropyinpr2[] = {
+ 0x12, 0x4f, 0x03, 0xb8, 0x4c, 0xac, 0x8b, 0x23, 0x3c, 0xc1, 0x3a, 0xa1,
+ 0xb3, 0xae, 0x7d, 0xa2, 0x8d, 0xcf, 0x85, 0xa1, 0xce, 0xdb, 0x4c, 0xf9,
+ 0x4a, 0xf8, 0x4c, 0x2f, 0x90, 0xdc, 0xfe, 0x7f,
+};
+static const unsigned char kat3804_addinpr2[] = {
+ 0xf4, 0x07, 0xb5, 0x5a, 0x73, 0x18, 0x52, 0xa8, 0x48, 0x77, 0x7b, 0x14,
+ 0x93, 0x12, 0xfd, 0x34, 0x6b, 0x9b, 0xca, 0x7e, 0x77, 0x8d, 0x37, 0x6e,
+ 0xac, 0x5b, 0xde, 0x0b, 0x7b, 0xea, 0xf8, 0xcb,
+};
+static const unsigned char kat3804_retbits[] = {
+ 0xaa, 0xdf, 0x5f, 0xda, 0x6a, 0x56, 0xe8, 0xc1, 0x48, 0x0d, 0x5c, 0x99,
+ 0x34, 0xe4, 0x49, 0x9e, 0xf4, 0x6d, 0x41, 0xd4, 0x46, 0x27, 0x3f, 0xcc,
+ 0x85, 0x40, 0x40, 0x2e, 0x45, 0x31, 0x37, 0xaa, 0x08, 0x63, 0x4c, 0xec,
+ 0x74, 0xf4, 0x3b, 0xc9, 0xb7, 0xe6, 0xcb, 0x14, 0x01, 0x52, 0x49, 0xb1,
+ 0x84, 0xa9, 0x1a, 0x43, 0xeb, 0x7c, 0x09, 0xa9, 0xa9, 0x5a, 0x92, 0xa6,
+ 0x49, 0x5d, 0x13, 0xd5,
+};
+static const struct drbg_kat_pr_true kat3804_t = {
+ 8, kat3804_entropyin, kat3804_nonce, kat3804_persstr,
+ kat3804_entropyinpr1, kat3804_addinpr1, kat3804_entropyinpr2,
+ kat3804_addinpr2, kat3804_retbits
+};
+static const struct drbg_kat kat3804 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3804_t
+};
+
+static const unsigned char kat3805_entropyin[] = {
+ 0x48, 0x3e, 0xe9, 0xfa, 0x60, 0xe7, 0xf9, 0x37, 0x72, 0x92, 0x6f, 0xa7,
+ 0xc5, 0x4f, 0x08, 0x23, 0xf4, 0x38, 0x05, 0x42, 0x06, 0x52, 0x39, 0xc5,
+ 0x60, 0xee, 0xb7, 0xad, 0xb4, 0x74, 0xe5, 0x34,
+};
+static const unsigned char kat3805_nonce[] = {0};
+static const unsigned char kat3805_persstr[] = {0};
+static const unsigned char kat3805_entropyinpr1[] = {
+ 0x2b, 0x6c, 0x86, 0xa7, 0xcd, 0x5e, 0xc8, 0x90, 0xc8, 0x1b, 0xd7, 0x63,
+ 0xcb, 0x44, 0x52, 0x39, 0x1d, 0x3c, 0xcd, 0x41, 0x73, 0x9e, 0x0a, 0x61,
+ 0xcc, 0xb5, 0x9b, 0x28, 0x34, 0x38, 0x6d, 0xdc,
+};
+static const unsigned char kat3805_addinpr1[] = {
+ 0x5c, 0x07, 0x64, 0x6e, 0x67, 0xbf, 0x53, 0xed, 0x23, 0x41, 0x9f, 0x7f,
+ 0xfb, 0x51, 0xe4, 0x3a, 0x30, 0x66, 0x57, 0x22, 0x3f, 0x0d, 0x07, 0x2c,
+ 0x34, 0x51, 0x25, 0xab, 0x70, 0x73, 0x7a, 0x02,
+};
+static const unsigned char kat3805_entropyinpr2[] = {
+ 0x18, 0x45, 0x91, 0xf2, 0xd1, 0x1d, 0xfe, 0x9f, 0x54, 0x1f, 0x37, 0x5b,
+ 0x4a, 0x81, 0xf2, 0x98, 0x12, 0x98, 0x42, 0xf8, 0x68, 0x26, 0x06, 0x52,
+ 0x46, 0x24, 0x7b, 0x7f, 0xdc, 0x35, 0xc1, 0x62,
+};
+static const unsigned char kat3805_addinpr2[] = {
+ 0x61, 0xa8, 0x83, 0xa3, 0x2e, 0xec, 0x11, 0x1e, 0x8d, 0xab, 0xbc, 0x78,
+ 0x79, 0x63, 0x75, 0x52, 0x65, 0xf8, 0x54, 0xd7, 0x83, 0x7d, 0xd2, 0xdb,
+ 0x5d, 0xe7, 0x21, 0xe3, 0x01, 0x6b, 0xf5, 0xe7,
+};
+static const unsigned char kat3805_retbits[] = {
+ 0x12, 0xc0, 0xbd, 0xa3, 0x14, 0x4b, 0x7c, 0x6e, 0x8e, 0xa4, 0xb7, 0xbd,
+ 0x94, 0xc2, 0x0f, 0xf4, 0x16, 0xf8, 0x91, 0x36, 0x01, 0x3b, 0xbe, 0x16,
+ 0x04, 0xf6, 0xee, 0x33, 0x5f, 0x45, 0x50, 0xb9, 0x21, 0xc6, 0xb5, 0x8a,
+ 0x26, 0x27, 0xa2, 0x0a, 0x14, 0x82, 0x5c, 0x5b, 0x8e, 0xae, 0x41, 0x80,
+ 0x52, 0xf1, 0x65, 0xf7, 0xb1, 0x54, 0x27, 0xe7, 0xed, 0x83, 0x77, 0xd4,
+ 0x54, 0x4c, 0x8d, 0x95,
+};
+static const struct drbg_kat_pr_true kat3805_t = {
+ 9, kat3805_entropyin, kat3805_nonce, kat3805_persstr,
+ kat3805_entropyinpr1, kat3805_addinpr1, kat3805_entropyinpr2,
+ kat3805_addinpr2, kat3805_retbits
+};
+static const struct drbg_kat kat3805 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3805_t
+};
+
+static const unsigned char kat3806_entropyin[] = {
+ 0x5d, 0x12, 0x7c, 0x29, 0xee, 0x65, 0xdb, 0xb8, 0x2f, 0x10, 0x1f, 0x5f,
+ 0x40, 0x68, 0xb7, 0xf3, 0xb0, 0x80, 0xe3, 0x89, 0xc4, 0xbe, 0xb4, 0xc2,
+ 0x79, 0xc4, 0x25, 0x01, 0xbd, 0xbb, 0xe2, 0xb1,
+};
+static const unsigned char kat3806_nonce[] = {0};
+static const unsigned char kat3806_persstr[] = {0};
+static const unsigned char kat3806_entropyinpr1[] = {
+ 0x6f, 0x1a, 0xe9, 0x47, 0x6b, 0xda, 0xf1, 0x8c, 0x3c, 0x84, 0x10, 0x7f,
+ 0x81, 0x11, 0x80, 0x26, 0x09, 0x62, 0x4e, 0x52, 0x47, 0xd5, 0x07, 0xfe,
+ 0x32, 0x16, 0xab, 0x19, 0x1b, 0x80, 0xb4, 0x33,
+};
+static const unsigned char kat3806_addinpr1[] = {
+ 0x90, 0x5d, 0x3f, 0x85, 0x14, 0xc7, 0xda, 0xe6, 0x1e, 0x8e, 0x72, 0x95,
+ 0x11, 0xe3, 0xe8, 0xa1, 0x66, 0x98, 0xa7, 0xf8, 0xb4, 0xed, 0x5f, 0x85,
+ 0x70, 0xf8, 0x74, 0x58, 0x4a, 0xee, 0x96, 0x59,
+};
+static const unsigned char kat3806_entropyinpr2[] = {
+ 0x50, 0xfd, 0xf5, 0xd4, 0xe9, 0xdc, 0x33, 0x5a, 0x8a, 0x1c, 0x66, 0xe8,
+ 0xf5, 0xc1, 0x9a, 0x17, 0x1f, 0x01, 0xc2, 0x9c, 0xc3, 0x5c, 0xb4, 0x33,
+ 0x74, 0x73, 0x91, 0xc7, 0x13, 0xcb, 0xf9, 0xf3,
+};
+static const unsigned char kat3806_addinpr2[] = {
+ 0xaa, 0x8c, 0x36, 0xbc, 0x37, 0x2a, 0x5c, 0xc7, 0x8d, 0x14, 0xce, 0x58,
+ 0xfd, 0x74, 0x24, 0xa8, 0x84, 0x79, 0xa4, 0x23, 0x63, 0x16, 0x6a, 0x37,
+ 0x14, 0x59, 0x2d, 0x56, 0xeb, 0x13, 0xa0, 0x43,
+};
+static const unsigned char kat3806_retbits[] = {
+ 0xcf, 0x4c, 0x37, 0x29, 0x81, 0xd2, 0xb0, 0x57, 0x47, 0xba, 0x74, 0x1b,
+ 0x02, 0x11, 0xe1, 0xdf, 0xe5, 0x62, 0x4d, 0x39, 0xc1, 0x7f, 0xad, 0x73,
+ 0xdb, 0x7c, 0xf2, 0xd8, 0x13, 0x41, 0x9d, 0x87, 0x8d, 0xd5, 0xe6, 0x4f,
+ 0x34, 0xdc, 0xbc, 0xdd, 0x58, 0x28, 0xce, 0x6d, 0xfa, 0x58, 0x51, 0x25,
+ 0xdd, 0xd3, 0x2c, 0xb2, 0x9e, 0x8e, 0x21, 0x62, 0x4e, 0x5d, 0x75, 0x58,
+ 0x76, 0xca, 0x5b, 0xa6,
+};
+static const struct drbg_kat_pr_true kat3806_t = {
+ 10, kat3806_entropyin, kat3806_nonce, kat3806_persstr,
+ kat3806_entropyinpr1, kat3806_addinpr1, kat3806_entropyinpr2,
+ kat3806_addinpr2, kat3806_retbits
+};
+static const struct drbg_kat kat3806 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3806_t
+};
+
+static const unsigned char kat3807_entropyin[] = {
+ 0xd0, 0x6b, 0xae, 0xb8, 0x51, 0x97, 0xf6, 0x0b, 0x27, 0x17, 0x71, 0xb6,
+ 0x25, 0xe0, 0x41, 0xc3, 0x73, 0x58, 0x76, 0xb1, 0x74, 0xdb, 0xd1, 0x53,
+ 0x70, 0x02, 0xec, 0x7e, 0x95, 0xf4, 0xa9, 0x16,
+};
+static const unsigned char kat3807_nonce[] = {0};
+static const unsigned char kat3807_persstr[] = {0};
+static const unsigned char kat3807_entropyinpr1[] = {
+ 0xbc, 0x8b, 0xdc, 0x23, 0xe0, 0xf2, 0xc8, 0xe4, 0x0b, 0x53, 0xf7, 0x50,
+ 0xf8, 0xb0, 0xde, 0x61, 0x44, 0xac, 0xac, 0x6c, 0xf6, 0xca, 0x4f, 0x66,
+ 0xe5, 0x4f, 0x31, 0x44, 0x0b, 0x1b, 0x9b, 0xab,
+};
+static const unsigned char kat3807_addinpr1[] = {
+ 0x16, 0x92, 0xed, 0x36, 0xa3, 0x09, 0x66, 0x28, 0x81, 0x02, 0x76, 0x33,
+ 0x3b, 0x1f, 0xf5, 0x66, 0xaa, 0x41, 0xed, 0xe8, 0x6e, 0x4a, 0xe2, 0x93,
+ 0x92, 0x55, 0xf9, 0xe5, 0x77, 0xba, 0x87, 0x7f,
+};
+static const unsigned char kat3807_entropyinpr2[] = {
+ 0x1a, 0x86, 0x0e, 0x6e, 0xaf, 0x23, 0x7f, 0x51, 0x6e, 0xb0, 0x07, 0x0c,
+ 0x18, 0x65, 0x86, 0x5b, 0x08, 0x76, 0x55, 0xa0, 0x3d, 0xac, 0x8b, 0x86,
+ 0x30, 0x34, 0xf3, 0x91, 0x1a, 0xf3, 0xdc, 0x39,
+};
+static const unsigned char kat3807_addinpr2[] = {
+ 0x66, 0xbe, 0xef, 0x40, 0x3f, 0x26, 0xa6, 0x1b, 0x3b, 0x45, 0xe5, 0x2a,
+ 0x30, 0x16, 0x02, 0x55, 0x7e, 0x1c, 0x13, 0x11, 0x69, 0x85, 0x5c, 0x02,
+ 0x87, 0x8e, 0xcb, 0x16, 0xe0, 0x2d, 0xa0, 0xaf,
+};
+static const unsigned char kat3807_retbits[] = {
+ 0xc6, 0x57, 0x95, 0xb4, 0x4d, 0x82, 0x65, 0x8a, 0x57, 0xc6, 0xd5, 0xf0,
+ 0xf8, 0xf3, 0x63, 0xeb, 0x5f, 0xc7, 0xae, 0x7e, 0x9e, 0x09, 0x15, 0xb8,
+ 0x83, 0xd0, 0xe0, 0x2b, 0xb7, 0xcc, 0x3d, 0x13, 0x78, 0xcb, 0xf8, 0xbd,
+ 0xd2, 0x5d, 0x0c, 0xf3, 0xf4, 0x43, 0xfc, 0x25, 0xfe, 0xce, 0x1f, 0xd5,
+ 0xb4, 0xa8, 0x77, 0xdd, 0x92, 0xeb, 0xe7, 0x40, 0x67, 0xab, 0x72, 0x86,
+ 0x0a, 0x2e, 0xf7, 0x2d,
+};
+static const struct drbg_kat_pr_true kat3807_t = {
+ 11, kat3807_entropyin, kat3807_nonce, kat3807_persstr,
+ kat3807_entropyinpr1, kat3807_addinpr1, kat3807_entropyinpr2,
+ kat3807_addinpr2, kat3807_retbits
+};
+static const struct drbg_kat kat3807 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3807_t
+};
+
+static const unsigned char kat3808_entropyin[] = {
+ 0x57, 0x35, 0xc8, 0x1c, 0xcc, 0xf6, 0xd8, 0xab, 0x94, 0xd1, 0x5b, 0xc0,
+ 0xcd, 0xc4, 0xfb, 0x64, 0xe6, 0xe3, 0x16, 0x89, 0x04, 0x38, 0x9d, 0xd4,
+ 0xa4, 0x5d, 0xbf, 0x41, 0xe9, 0xce, 0x1b, 0xc0,
+};
+static const unsigned char kat3808_nonce[] = {0};
+static const unsigned char kat3808_persstr[] = {0};
+static const unsigned char kat3808_entropyinpr1[] = {
+ 0xee, 0xf1, 0x16, 0x61, 0x40, 0x75, 0x26, 0xdd, 0x66, 0x73, 0xfa, 0x08,
+ 0x0d, 0x26, 0x22, 0xf3, 0x28, 0x9d, 0x98, 0x2f, 0x24, 0x26, 0xb7, 0x93,
+ 0x0a, 0x23, 0x90, 0x23, 0x99, 0xd0, 0x6e, 0x28,
+};
+static const unsigned char kat3808_addinpr1[] = {
+ 0x11, 0xb6, 0x19, 0x04, 0x54, 0xb6, 0x9c, 0x99, 0x8c, 0x7a, 0x6b, 0x1a,
+ 0x77, 0x0b, 0x07, 0xe3, 0xbb, 0xbb, 0x9e, 0x59, 0xca, 0xa7, 0x53, 0xda,
+ 0x79, 0x9e, 0xc4, 0xcb, 0xf6, 0x4e, 0xd6, 0xc1,
+};
+static const unsigned char kat3808_entropyinpr2[] = {
+ 0x12, 0xfd, 0x7a, 0x46, 0x26, 0x47, 0xaa, 0x6c, 0x49, 0x83, 0x2a, 0x68,
+ 0xbb, 0x2b, 0x74, 0xde, 0xce, 0x33, 0x5c, 0x7d, 0xa4, 0x65, 0x84, 0x98,
+ 0x19, 0x9d, 0x43, 0x9a, 0x4b, 0x2a, 0xbd, 0x34,
+};
+static const unsigned char kat3808_addinpr2[] = {
+ 0x1f, 0x07, 0x10, 0x76, 0xda, 0x26, 0x6c, 0x8f, 0xe9, 0xf5, 0x61, 0x1a,
+ 0xce, 0x68, 0x78, 0x29, 0x2b, 0xa3, 0x7f, 0x25, 0xa9, 0x12, 0x27, 0xf6,
+ 0x24, 0x8e, 0x2b, 0x5a, 0x96, 0xf9, 0x6b, 0xec,
+};
+static const unsigned char kat3808_retbits[] = {
+ 0xff, 0xd5, 0x08, 0xdc, 0xc3, 0xc5, 0x16, 0x78, 0xb9, 0x95, 0x4c, 0x69,
+ 0x20, 0xa7, 0x00, 0x54, 0x15, 0x5b, 0x5f, 0xaf, 0x9d, 0xb5, 0xf6, 0x7a,
+ 0xe1, 0x22, 0x79, 0xef, 0x3e, 0xcd, 0x75, 0x3d, 0x28, 0x0d, 0x24, 0xfc,
+ 0x10, 0xd3, 0xe8, 0xb3, 0xc1, 0x54, 0x94, 0x83, 0x68, 0x31, 0x1e, 0x99,
+ 0x1f, 0x8c, 0xa7, 0xcd, 0x13, 0x19, 0x3b, 0x6a, 0x51, 0xe7, 0x50, 0xe0,
+ 0xde, 0x0f, 0x7e, 0x85,
+};
+static const struct drbg_kat_pr_true kat3808_t = {
+ 12, kat3808_entropyin, kat3808_nonce, kat3808_persstr,
+ kat3808_entropyinpr1, kat3808_addinpr1, kat3808_entropyinpr2,
+ kat3808_addinpr2, kat3808_retbits
+};
+static const struct drbg_kat kat3808 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3808_t
+};
+
+static const unsigned char kat3809_entropyin[] = {
+ 0x9e, 0x83, 0x1d, 0x78, 0x17, 0x60, 0x92, 0x48, 0x95, 0xdd, 0xe9, 0xae,
+ 0x33, 0xb4, 0xe1, 0x52, 0xba, 0xe2, 0x00, 0x72, 0x85, 0xf4, 0xf7, 0xad,
+ 0x29, 0x4e, 0x29, 0x5b, 0x45, 0xb3, 0xde, 0x63,
+};
+static const unsigned char kat3809_nonce[] = {0};
+static const unsigned char kat3809_persstr[] = {0};
+static const unsigned char kat3809_entropyinpr1[] = {
+ 0x26, 0x59, 0x19, 0x42, 0xfc, 0xa9, 0xfa, 0xf5, 0xf7, 0x3d, 0x60, 0xcf,
+ 0xaf, 0x89, 0xbd, 0x21, 0x33, 0x1b, 0x96, 0xac, 0x1a, 0xb1, 0xcb, 0x66,
+ 0xe2, 0xf7, 0x34, 0x59, 0x33, 0x6e, 0x62, 0x6d,
+};
+static const unsigned char kat3809_addinpr1[] = {
+ 0xd9, 0x31, 0xa3, 0xf1, 0xdc, 0x6d, 0x4a, 0xf2, 0x8d, 0xa7, 0x3f, 0x4f,
+ 0xff, 0x02, 0x72, 0xc2, 0x7b, 0x52, 0x9f, 0xe8, 0xd0, 0x87, 0x6b, 0x4c,
+ 0xf6, 0x26, 0x4c, 0x4c, 0x0b, 0x85, 0x03, 0x3c,
+};
+static const unsigned char kat3809_entropyinpr2[] = {
+ 0x23, 0xc8, 0xee, 0xaf, 0x66, 0x51, 0xe0, 0xf9, 0xc7, 0xba, 0xcc, 0x8a,
+ 0xa8, 0x32, 0xa2, 0x40, 0xa9, 0x0d, 0x1a, 0x5e, 0x48, 0x1d, 0xb9, 0x58,
+ 0x95, 0x27, 0xe8, 0xbb, 0x6b, 0x61, 0x7a, 0x8f,
+};
+static const unsigned char kat3809_addinpr2[] = {
+ 0x15, 0x98, 0xb0, 0x4a, 0x3c, 0x9d, 0x3f, 0xc1, 0x27, 0xea, 0xf8, 0xf1,
+ 0x36, 0xdf, 0xc5, 0x64, 0x69, 0x0a, 0x48, 0x1a, 0x86, 0x8c, 0xb8, 0x60,
+ 0x5e, 0x07, 0x68, 0x3a, 0xa5, 0xb9, 0x1c, 0xcc,
+};
+static const unsigned char kat3809_retbits[] = {
+ 0xbc, 0xac, 0xb4, 0x29, 0xa5, 0xf7, 0x06, 0x7f, 0x79, 0xfe, 0xb4, 0x71,
+ 0x7c, 0x31, 0xfd, 0x39, 0x91, 0xa4, 0xf9, 0x61, 0x8d, 0x89, 0x00, 0xa2,
+ 0x6c, 0x0d, 0x53, 0x1e, 0x21, 0x31, 0x9b, 0x0d, 0x49, 0x5c, 0x91, 0xf2,
+ 0xe1, 0x14, 0xca, 0x4c, 0x78, 0x05, 0x95, 0xa2, 0x6b, 0x0c, 0xd0, 0x3d,
+ 0x4d, 0x0d, 0x43, 0x05, 0x67, 0x79, 0x4b, 0xa1, 0xeb, 0x35, 0x8b, 0x86,
+ 0xc9, 0xf5, 0xa3, 0x60,
+};
+static const struct drbg_kat_pr_true kat3809_t = {
+ 13, kat3809_entropyin, kat3809_nonce, kat3809_persstr,
+ kat3809_entropyinpr1, kat3809_addinpr1, kat3809_entropyinpr2,
+ kat3809_addinpr2, kat3809_retbits
+};
+static const struct drbg_kat kat3809 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3809_t
+};
+
+static const unsigned char kat3810_entropyin[] = {
+ 0x63, 0xe9, 0x37, 0xe3, 0x4c, 0xa9, 0xcd, 0x2d, 0xad, 0x10, 0xcd, 0xed,
+ 0x36, 0x67, 0xec, 0x36, 0x17, 0x78, 0x0e, 0x04, 0x30, 0x6d, 0xf1, 0x15,
+ 0x09, 0xe8, 0x33, 0xbd, 0x7a, 0x96, 0x61, 0x0e,
+};
+static const unsigned char kat3810_nonce[] = {0};
+static const unsigned char kat3810_persstr[] = {0};
+static const unsigned char kat3810_entropyinpr1[] = {
+ 0xa4, 0x46, 0x4a, 0x11, 0x16, 0xea, 0x8c, 0x17, 0x61, 0x6a, 0xd3, 0x67,
+ 0x29, 0xf5, 0x8e, 0x47, 0xa9, 0x0f, 0xb7, 0x9c, 0x26, 0x90, 0x4d, 0xbb,
+ 0xc7, 0x11, 0x47, 0x70, 0x9c, 0xff, 0x35, 0xad,
+};
+static const unsigned char kat3810_addinpr1[] = {
+ 0x6b, 0x62, 0x0b, 0xc5, 0x83, 0x88, 0xae, 0xcc, 0x90, 0xab, 0x95, 0xed,
+ 0x4d, 0x4b, 0xe4, 0xae, 0x3c, 0xd3, 0x6a, 0x00, 0x0a, 0x30, 0xeb, 0x7e,
+ 0x90, 0xee, 0x79, 0xcc, 0xd5, 0xe3, 0x26, 0x50,
+};
+static const unsigned char kat3810_entropyinpr2[] = {
+ 0xd0, 0xb9, 0xc1, 0x2b, 0xd6, 0xb1, 0x78, 0xf8, 0x9a, 0x23, 0x8a, 0xfb,
+ 0x0f, 0xce, 0x43, 0xd4, 0x5d, 0xfd, 0x24, 0x67, 0xb3, 0xa1, 0xcf, 0x9b,
+ 0x1a, 0xa3, 0x19, 0x60, 0x17, 0x9f, 0x12, 0x5c,
+};
+static const unsigned char kat3810_addinpr2[] = {
+ 0x0b, 0xf2, 0x12, 0x30, 0x2b, 0x4d, 0x20, 0xc6, 0xd2, 0xb7, 0x99, 0xc9,
+ 0xfd, 0x69, 0x2b, 0x14, 0xb5, 0x67, 0x28, 0x97, 0xfc, 0x45, 0xb4, 0x16,
+ 0xad, 0xda, 0xf5, 0x55, 0x01, 0xc8, 0x10, 0xea,
+};
+static const unsigned char kat3810_retbits[] = {
+ 0x7e, 0x57, 0x20, 0x12, 0x6c, 0xe4, 0xef, 0x83, 0xb7, 0x85, 0xd9, 0x64,
+ 0x99, 0x15, 0xcf, 0x76, 0xed, 0x6e, 0xf3, 0x18, 0x42, 0x29, 0x50, 0xb6,
+ 0x54, 0x0c, 0xef, 0x9a, 0x0c, 0xa9, 0x0c, 0x40, 0x20, 0x3b, 0x3a, 0x36,
+ 0x5b, 0x8a, 0x5c, 0x40, 0xd6, 0x34, 0x75, 0xf7, 0xb3, 0x7f, 0x53, 0x66,
+ 0xb7, 0xf2, 0xed, 0x6e, 0x18, 0x88, 0x5e, 0x36, 0x1b, 0xa8, 0x9d, 0x46,
+ 0x35, 0x00, 0x28, 0xe4,
+};
+static const struct drbg_kat_pr_true kat3810_t = {
+ 14, kat3810_entropyin, kat3810_nonce, kat3810_persstr,
+ kat3810_entropyinpr1, kat3810_addinpr1, kat3810_entropyinpr2,
+ kat3810_addinpr2, kat3810_retbits
+};
+static const struct drbg_kat kat3810 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 0, 32, 64, &kat3810_t
+};
+
+static const unsigned char kat3811_entropyin[] = {
+ 0xb9, 0x49, 0x7a, 0xd7, 0x44, 0x95, 0xfe, 0x66, 0xc2, 0x74, 0xfd, 0x52,
+ 0x41, 0xc7, 0xd3, 0x06, 0x71, 0x39, 0xfd, 0xd4, 0x66, 0x5e, 0xd1, 0x2e,
+ 0xde, 0x09, 0x71, 0x0b, 0x08, 0x0c, 0xb2, 0xe7,
+};
+static const unsigned char kat3811_nonce[] = {0};
+static const unsigned char kat3811_persstr[] = {
+ 0x16, 0x52, 0x42, 0x76, 0x14, 0x8d, 0x95, 0x59, 0x0d, 0x75, 0x7e, 0xbf,
+ 0xd7, 0xd2, 0xf1, 0x44, 0xce, 0x21, 0x81, 0x9b, 0x66, 0xdc, 0x40, 0xab,
+ 0x9f, 0x6a, 0x6a, 0x13, 0x06, 0x91, 0x5f, 0xf9,
+};
+static const unsigned char kat3811_entropyinpr1[] = {
+ 0x08, 0xe8, 0x25, 0x55, 0x24, 0x98, 0x83, 0xf5, 0x4b, 0x04, 0x07, 0x53,
+ 0x41, 0x7d, 0xf7, 0xaa, 0x26, 0x77, 0xbd, 0xf8, 0x7f, 0x99, 0x1d, 0xd1,
+ 0x0a, 0xdb, 0x59, 0x2f, 0xfb, 0xba, 0xdd, 0x29,
+};
+static const unsigned char kat3811_addinpr1[] = {0};
+static const unsigned char kat3811_entropyinpr2[] = {
+ 0x26, 0x36, 0x4f, 0xc5, 0xa0, 0xf1, 0x55, 0x54, 0xc8, 0x19, 0x22, 0x1c,
+ 0x83, 0x42, 0x31, 0x8f, 0x31, 0xb5, 0xc9, 0x51, 0xae, 0x0e, 0x08, 0xad,
+ 0x8a, 0xf6, 0x03, 0x4c, 0xd8, 0x16, 0xf0, 0x36,
+};
+static const unsigned char kat3811_addinpr2[] = {0};
+static const unsigned char kat3811_retbits[] = {
+ 0xf6, 0x9c, 0xd5, 0x76, 0x93, 0xa9, 0x28, 0x59, 0xee, 0x17, 0x40, 0xaf,
+ 0x65, 0xc8, 0xe4, 0x0e, 0x25, 0xc9, 0xba, 0xae, 0x04, 0xce, 0x92, 0x5b,
+ 0xb3, 0x25, 0xc0, 0x92, 0x68, 0xd3, 0x8d, 0xd9, 0x97, 0x70, 0x10, 0x08,
+ 0xa6, 0x5c, 0x79, 0x60, 0x81, 0x12, 0xc9, 0x55, 0xdc, 0x58, 0xb5, 0x79,
+ 0x75, 0x52, 0x76, 0x0e, 0xec, 0x50, 0xe3, 0x7a, 0x70, 0x90, 0x23, 0xcf,
+ 0x4a, 0x8c, 0x36, 0xeb,
+};
+static const struct drbg_kat_pr_true kat3811_t = {
+ 0, kat3811_entropyin, kat3811_nonce, kat3811_persstr,
+ kat3811_entropyinpr1, kat3811_addinpr1, kat3811_entropyinpr2,
+ kat3811_addinpr2, kat3811_retbits
+};
+static const struct drbg_kat kat3811 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3811_t
+};
+
+static const unsigned char kat3812_entropyin[] = {
+ 0x2a, 0xec, 0x54, 0xd5, 0xab, 0x90, 0xde, 0x43, 0xb6, 0xfe, 0xd4, 0x84,
+ 0x78, 0x65, 0xab, 0xc9, 0xbf, 0x64, 0x8c, 0xf9, 0xba, 0x45, 0x60, 0xcb,
+ 0x35, 0x9d, 0x1e, 0xe7, 0x6b, 0xf3, 0xcf, 0x33,
+};
+static const unsigned char kat3812_nonce[] = {0};
+static const unsigned char kat3812_persstr[] = {
+ 0xbc, 0x88, 0xec, 0xdf, 0x28, 0x37, 0xf9, 0x41, 0x56, 0x89, 0xb2, 0xc5,
+ 0x89, 0x5e, 0x7a, 0xe1, 0xe5, 0x4c, 0xd5, 0xa9, 0x78, 0xcf, 0xd2, 0x6c,
+ 0x90, 0x47, 0x40, 0x93, 0xb4, 0xe9, 0x12, 0xfe,
+};
+static const unsigned char kat3812_entropyinpr1[] = {
+ 0xb8, 0xe5, 0x0e, 0xa1, 0x18, 0x58, 0xa4, 0xc9, 0xc5, 0x61, 0x24, 0x3d,
+ 0xeb, 0xdf, 0x63, 0xbe, 0x66, 0xcf, 0xa3, 0xf9, 0x33, 0xe5, 0xd9, 0x4a,
+ 0x22, 0xc1, 0x07, 0x62, 0x88, 0xbf, 0xaf, 0x9d,
+};
+static const unsigned char kat3812_addinpr1[] = {0};
+static const unsigned char kat3812_entropyinpr2[] = {
+ 0xa2, 0xd6, 0x29, 0x19, 0x06, 0x82, 0xa2, 0x88, 0x16, 0x4a, 0x50, 0x33,
+ 0x50, 0xd2, 0x9a, 0x0d, 0x5e, 0x9b, 0xba, 0x37, 0x33, 0x87, 0x76, 0x84,
+ 0xa4, 0xd2, 0xa7, 0xf7, 0xb7, 0x0a, 0xbb, 0xf1,
+};
+static const unsigned char kat3812_addinpr2[] = {0};
+static const unsigned char kat3812_retbits[] = {
+ 0xa2, 0xc4, 0x9d, 0xae, 0x90, 0xa3, 0x13, 0x70, 0x4c, 0x91, 0x96, 0xe6,
+ 0x69, 0xdb, 0xb0, 0xd4, 0xd2, 0x5c, 0x05, 0xe3, 0x50, 0xde, 0x02, 0x45,
+ 0x66, 0x25, 0xc0, 0x2c, 0x5a, 0x0c, 0x77, 0x5f, 0xc3, 0x03, 0xf4, 0x9e,
+ 0x1f, 0x8f, 0xd4, 0xd9, 0x76, 0x33, 0xb2, 0xe7, 0xbc, 0x5b, 0xcf, 0x7a,
+ 0xd1, 0x15, 0x52, 0x95, 0x87, 0x80, 0xf4, 0x81, 0x5f, 0xa6, 0x01, 0xa7,
+ 0xdc, 0x75, 0x8d, 0xe1,
+};
+static const struct drbg_kat_pr_true kat3812_t = {
+ 1, kat3812_entropyin, kat3812_nonce, kat3812_persstr,
+ kat3812_entropyinpr1, kat3812_addinpr1, kat3812_entropyinpr2,
+ kat3812_addinpr2, kat3812_retbits
+};
+static const struct drbg_kat kat3812 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3812_t
+};
+
+static const unsigned char kat3813_entropyin[] = {
+ 0x94, 0x87, 0xd0, 0xdd, 0x5b, 0x9f, 0x44, 0x67, 0x7a, 0x8b, 0x60, 0x25,
+ 0x13, 0xc9, 0xf7, 0x4e, 0xb3, 0x1a, 0x48, 0xfb, 0x38, 0x75, 0x9f, 0xb6,
+ 0xfa, 0xa2, 0x8b, 0x7f, 0x7e, 0xc2, 0x0e, 0x3b,
+};
+static const unsigned char kat3813_nonce[] = {0};
+static const unsigned char kat3813_persstr[] = {
+ 0xf6, 0xf3, 0x0d, 0xa2, 0x71, 0xb7, 0x47, 0x00, 0x95, 0xa8, 0x2f, 0xdc,
+ 0xfc, 0xd5, 0xa0, 0x8b, 0x4d, 0xbb, 0x0a, 0xba, 0x2b, 0x5b, 0x3f, 0xa0,
+ 0x65, 0x4d, 0x63, 0x45, 0xc7, 0xdf, 0x72, 0x87,
+};
+static const unsigned char kat3813_entropyinpr1[] = {
+ 0x86, 0xb7, 0x57, 0xa6, 0x73, 0xeb, 0xca, 0xd9, 0xf7, 0x48, 0x84, 0x1b,
+ 0x67, 0x4c, 0x20, 0xea, 0x1c, 0x6d, 0xf4, 0x19, 0x68, 0xec, 0xab, 0xde,
+ 0xef, 0xa6, 0xbe, 0xcd, 0x56, 0xe2, 0x94, 0xba,
+};
+static const unsigned char kat3813_addinpr1[] = {0};
+static const unsigned char kat3813_entropyinpr2[] = {
+ 0xab, 0x66, 0x5a, 0x80, 0xd4, 0xd0, 0x3a, 0x09, 0xb8, 0x4d, 0x90, 0xbf,
+ 0x82, 0x34, 0x7c, 0x5f, 0xa9, 0xbf, 0x5b, 0xeb, 0xb1, 0x28, 0x34, 0x8b,
+ 0xdf, 0x17, 0xf9, 0xe6, 0xa4, 0x22, 0xc3, 0x7e,
+};
+static const unsigned char kat3813_addinpr2[] = {0};
+static const unsigned char kat3813_retbits[] = {
+ 0xd4, 0xc4, 0x7e, 0x64, 0xe6, 0x3b, 0x8c, 0x1a, 0x2f, 0xcf, 0x12, 0x00,
+ 0xf5, 0x99, 0xe2, 0xcd, 0x12, 0x5f, 0xd0, 0xd2, 0x46, 0xa6, 0x4f, 0x19,
+ 0x02, 0x78, 0x49, 0x11, 0x14, 0xb7, 0xd0, 0x7d, 0x77, 0x89, 0xe3, 0xaf,
+ 0xde, 0x6c, 0x27, 0x67, 0x3c, 0x32, 0x93, 0x50, 0x46, 0xa9, 0xbe, 0x68,
+ 0xdd, 0xb7, 0xea, 0x8d, 0x3e, 0x24, 0xab, 0x63, 0xa7, 0x06, 0x98, 0x43,
+ 0x06, 0x49, 0x2a, 0x23,
+};
+static const struct drbg_kat_pr_true kat3813_t = {
+ 2, kat3813_entropyin, kat3813_nonce, kat3813_persstr,
+ kat3813_entropyinpr1, kat3813_addinpr1, kat3813_entropyinpr2,
+ kat3813_addinpr2, kat3813_retbits
+};
+static const struct drbg_kat kat3813 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3813_t
+};
+
+static const unsigned char kat3814_entropyin[] = {
+ 0xe4, 0xeb, 0x49, 0xbf, 0x54, 0x34, 0xa7, 0xfa, 0x3b, 0xbe, 0x6f, 0x35,
+ 0x9b, 0xaf, 0x39, 0xe9, 0x7f, 0x1f, 0xec, 0x60, 0x98, 0xed, 0x54, 0x33,
+ 0x14, 0xc2, 0xfe, 0xaa, 0xc7, 0x10, 0x0d, 0x66,
+};
+static const unsigned char kat3814_nonce[] = {0};
+static const unsigned char kat3814_persstr[] = {
+ 0xa0, 0x47, 0x48, 0x32, 0xde, 0xaf, 0xba, 0xf3, 0x5b, 0x95, 0x39, 0xa8,
+ 0xc1, 0x3b, 0xaf, 0x20, 0x60, 0x9e, 0xc5, 0x73, 0x9e, 0x70, 0x1f, 0x15,
+ 0x5c, 0x44, 0x31, 0xaf, 0x41, 0x21, 0x59, 0x07,
+};
+static const unsigned char kat3814_entropyinpr1[] = {
+ 0xf3, 0x03, 0xce, 0x79, 0x5b, 0x2e, 0xcd, 0xe6, 0x37, 0x54, 0x7b, 0x8c,
+ 0xf8, 0xd3, 0x9c, 0xdc, 0xef, 0xac, 0xe6, 0x23, 0xf7, 0x90, 0x53, 0x05,
+ 0x7c, 0xc5, 0xdc, 0x81, 0x52, 0x4a, 0x6a, 0x01,
+};
+static const unsigned char kat3814_addinpr1[] = {0};
+static const unsigned char kat3814_entropyinpr2[] = {
+ 0xb2, 0x97, 0xcb, 0xba, 0xd8, 0x81, 0xea, 0x29, 0x36, 0x9b, 0xb5, 0x6f,
+ 0x42, 0x8f, 0xdb, 0x74, 0x2e, 0xd9, 0xb9, 0xa7, 0x33, 0x13, 0x64, 0x39,
+ 0xb1, 0xcd, 0xb8, 0x3a, 0x85, 0x78, 0xe9, 0xac,
+};
+static const unsigned char kat3814_addinpr2[] = {0};
+static const unsigned char kat3814_retbits[] = {
+ 0x10, 0x62, 0x0e, 0xdd, 0x06, 0xba, 0x0c, 0x75, 0x62, 0x8a, 0xf2, 0x4a,
+ 0x1c, 0x3a, 0xce, 0x54, 0x52, 0x08, 0x1d, 0x96, 0xdb, 0x25, 0x16, 0x31,
+ 0xa1, 0x21, 0xaf, 0x8d, 0x18, 0xe1, 0x97, 0x8c, 0x58, 0xb0, 0x92, 0x57,
+ 0x0f, 0xb1, 0x62, 0x25, 0xca, 0xfd, 0x14, 0xac, 0x2c, 0x44, 0x8e, 0x87,
+ 0x78, 0x1a, 0x88, 0x81, 0xea, 0xeb, 0x10, 0x30, 0x8a, 0xeb, 0x96, 0x5f,
+ 0x57, 0x9a, 0x37, 0xcd,
+};
+static const struct drbg_kat_pr_true kat3814_t = {
+ 3, kat3814_entropyin, kat3814_nonce, kat3814_persstr,
+ kat3814_entropyinpr1, kat3814_addinpr1, kat3814_entropyinpr2,
+ kat3814_addinpr2, kat3814_retbits
+};
+static const struct drbg_kat kat3814 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3814_t
+};
+
+static const unsigned char kat3815_entropyin[] = {
+ 0x23, 0x73, 0x7f, 0xa4, 0x97, 0xab, 0xf5, 0x93, 0x72, 0xf7, 0x92, 0x8b,
+ 0xaa, 0x79, 0x27, 0x47, 0xdd, 0x40, 0x80, 0xdb, 0x49, 0x6f, 0x6e, 0xed,
+ 0xbf, 0x85, 0xda, 0xb0, 0x79, 0xef, 0x73, 0xe1,
+};
+static const unsigned char kat3815_nonce[] = {0};
+static const unsigned char kat3815_persstr[] = {
+ 0x7d, 0x4c, 0x18, 0xe3, 0x4b, 0x74, 0xa5, 0x37, 0x7d, 0xbd, 0x75, 0xe2,
+ 0x87, 0x44, 0x7f, 0x5d, 0xbc, 0x07, 0x8a, 0xd4, 0xe7, 0xbb, 0x8c, 0x0c,
+ 0x1d, 0x74, 0x8e, 0x8b, 0x27, 0x1a, 0xaf, 0x75,
+};
+static const unsigned char kat3815_entropyinpr1[] = {
+ 0xcf, 0x5a, 0x8c, 0x69, 0xee, 0x67, 0xf3, 0xb8, 0x50, 0xe6, 0x0f, 0x6d,
+ 0xc3, 0xd1, 0x32, 0xb4, 0xc6, 0xa6, 0x1d, 0x48, 0xe5, 0x82, 0x87, 0x96,
+ 0x2a, 0x28, 0x41, 0xb8, 0x9b, 0xcd, 0x1c, 0x48,
+};
+static const unsigned char kat3815_addinpr1[] = {0};
+static const unsigned char kat3815_entropyinpr2[] = {
+ 0xec, 0x58, 0xc1, 0xf1, 0x46, 0xc4, 0x17, 0x9d, 0x54, 0xaf, 0xe2, 0x4b,
+ 0xc7, 0x41, 0x2e, 0x2b, 0x86, 0x7f, 0xca, 0x33, 0x70, 0x3f, 0xb8, 0xfa,
+ 0x58, 0x70, 0xb8, 0x5b, 0x16, 0x04, 0x38, 0xd5,
+};
+static const unsigned char kat3815_addinpr2[] = {0};
+static const unsigned char kat3815_retbits[] = {
+ 0x39, 0x85, 0xed, 0x1a, 0x02, 0x27, 0xbc, 0x61, 0xfc, 0xe2, 0x6d, 0x64,
+ 0x7e, 0xd7, 0x44, 0xe9, 0xc4, 0x15, 0x48, 0x89, 0xe6, 0xff, 0x60, 0x9b,
+ 0xd6, 0xff, 0xac, 0x9b, 0x8b, 0xc2, 0xf0, 0xa1, 0xba, 0x8d, 0xe5, 0x66,
+ 0xd4, 0x67, 0x70, 0xe6, 0x12, 0x00, 0x44, 0xdd, 0xde, 0x1e, 0x9a, 0x69,
+ 0x26, 0xca, 0x56, 0xd1, 0x68, 0x47, 0x9d, 0x5e, 0x31, 0xb6, 0x3d, 0xd0,
+ 0xb9, 0xfe, 0x48, 0x15,
+};
+static const struct drbg_kat_pr_true kat3815_t = {
+ 4, kat3815_entropyin, kat3815_nonce, kat3815_persstr,
+ kat3815_entropyinpr1, kat3815_addinpr1, kat3815_entropyinpr2,
+ kat3815_addinpr2, kat3815_retbits
+};
+static const struct drbg_kat kat3815 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3815_t
+};
+
+static const unsigned char kat3816_entropyin[] = {
+ 0xcf, 0xa4, 0x69, 0x9a, 0x22, 0x97, 0x84, 0x70, 0x4e, 0x1f, 0x4c, 0x27,
+ 0x45, 0xd5, 0x0d, 0x30, 0x9c, 0x99, 0x76, 0x91, 0x81, 0x2d, 0x21, 0x68,
+ 0x47, 0x3a, 0x2e, 0xc6, 0xc4, 0xd8, 0xe6, 0x56,
+};
+static const unsigned char kat3816_nonce[] = {0};
+static const unsigned char kat3816_persstr[] = {
+ 0x53, 0xad, 0xa9, 0x43, 0x08, 0x80, 0x9c, 0x3b, 0x24, 0x5c, 0xd2, 0x8c,
+ 0xba, 0xbc, 0xe2, 0xc8, 0xf9, 0xc1, 0x47, 0x45, 0x90, 0x41, 0x92, 0x3f,
+ 0x9f, 0xaf, 0x10, 0x81, 0x48, 0x6a, 0x60, 0x5e,
+};
+static const unsigned char kat3816_entropyinpr1[] = {
+ 0x2f, 0xfb, 0xb5, 0xba, 0x73, 0x55, 0x61, 0xda, 0x52, 0x75, 0x24, 0x0f,
+ 0xd6, 0x06, 0x62, 0xec, 0x76, 0x78, 0x68, 0x15, 0x04, 0x7d, 0x48, 0x0e,
+ 0x2c, 0xd1, 0x15, 0xb9, 0x88, 0x0b, 0x38, 0xfc,
+};
+static const unsigned char kat3816_addinpr1[] = {0};
+static const unsigned char kat3816_entropyinpr2[] = {
+ 0xf3, 0x17, 0x96, 0x3f, 0xd2, 0x37, 0x66, 0x35, 0x2b, 0x11, 0xe7, 0x8f,
+ 0x65, 0x2d, 0x16, 0x75, 0x30, 0x13, 0x68, 0xf7, 0x3d, 0x34, 0xc2, 0xe4,
+ 0x39, 0x60, 0x9d, 0xc6, 0xbe, 0x5c, 0xbc, 0x64,
+};
+static const unsigned char kat3816_addinpr2[] = {0};
+static const unsigned char kat3816_retbits[] = {
+ 0x82, 0xec, 0x64, 0x17, 0xd3, 0x99, 0x83, 0x9d, 0x1b, 0x8c, 0xd3, 0x8c,
+ 0x51, 0xc4, 0x32, 0x93, 0xc2, 0xcf, 0xf2, 0x33, 0xc2, 0x90, 0x43, 0x1b,
+ 0x19, 0x17, 0x8a, 0xa4, 0x3f, 0xa4, 0xd7, 0xfd, 0xd8, 0x4f, 0xac, 0x19,
+ 0xe8, 0xc8, 0x4a, 0xc1, 0xaa, 0x0a, 0xe5, 0xd9, 0x7d, 0xf4, 0xd9, 0x04,
+ 0x58, 0x23, 0x4f, 0x00, 0xd0, 0xdc, 0x74, 0xa8, 0xf6, 0xb4, 0xf6, 0x18,
+ 0xb9, 0x38, 0x2f, 0x24,
+};
+static const struct drbg_kat_pr_true kat3816_t = {
+ 5, kat3816_entropyin, kat3816_nonce, kat3816_persstr,
+ kat3816_entropyinpr1, kat3816_addinpr1, kat3816_entropyinpr2,
+ kat3816_addinpr2, kat3816_retbits
+};
+static const struct drbg_kat kat3816 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3816_t
+};
+
+static const unsigned char kat3817_entropyin[] = {
+ 0x4b, 0xd4, 0x5b, 0x5c, 0x6e, 0xf8, 0x7f, 0xae, 0x29, 0x4d, 0x48, 0x87,
+ 0x65, 0x27, 0x16, 0x84, 0xc5, 0x8e, 0x10, 0xa6, 0x63, 0x61, 0xf2, 0x78,
+ 0xee, 0x89, 0x9b, 0xd0, 0xf7, 0xca, 0x22, 0x54,
+};
+static const unsigned char kat3817_nonce[] = {0};
+static const unsigned char kat3817_persstr[] = {
+ 0xfc, 0x3e, 0x3e, 0xa9, 0x4f, 0x54, 0x7e, 0x0c, 0xdc, 0xaf, 0x4b, 0xae,
+ 0x51, 0xd0, 0x39, 0x22, 0xb5, 0x64, 0x10, 0x75, 0xe9, 0x11, 0x0f, 0x4f,
+ 0x6a, 0x06, 0x93, 0x2f, 0x24, 0xed, 0x11, 0x51,
+};
+static const unsigned char kat3817_entropyinpr1[] = {
+ 0xbd, 0xa0, 0xa1, 0x08, 0x68, 0x54, 0x63, 0x5e, 0xbb, 0xce, 0xc8, 0x5d,
+ 0xcc, 0x4e, 0x47, 0x7a, 0x7b, 0x51, 0x17, 0x55, 0xe9, 0x3f, 0x6b, 0xd1,
+ 0xdc, 0x90, 0x34, 0xd9, 0xf8, 0x96, 0xad, 0xb6,
+};
+static const unsigned char kat3817_addinpr1[] = {0};
+static const unsigned char kat3817_entropyinpr2[] = {
+ 0xc6, 0xfe, 0x9a, 0x25, 0xea, 0x37, 0x2c, 0x7c, 0x8c, 0x93, 0x05, 0xf4,
+ 0x31, 0xe8, 0xd3, 0x59, 0x36, 0x9e, 0x70, 0x22, 0xd6, 0x7d, 0xc3, 0xe8,
+ 0x4f, 0xbd, 0xf5, 0xa0, 0x1e, 0xff, 0x28, 0x24,
+};
+static const unsigned char kat3817_addinpr2[] = {0};
+static const unsigned char kat3817_retbits[] = {
+ 0x2e, 0xc3, 0x55, 0xef, 0x56, 0xd1, 0x75, 0x37, 0xca, 0x1a, 0xab, 0x80,
+ 0x2c, 0xfd, 0xc7, 0x18, 0x19, 0xcd, 0x69, 0x10, 0xe3, 0xc9, 0x27, 0x18,
+ 0x10, 0x2b, 0x15, 0xce, 0xcc, 0x6f, 0x77, 0xdb, 0xa2, 0x1a, 0x5d, 0x43,
+ 0xf2, 0xcb, 0x35, 0x53, 0xa8, 0xd4, 0x46, 0x15, 0x32, 0xf8, 0x89, 0x33,
+ 0x94, 0xa6, 0x89, 0xbe, 0x47, 0x60, 0x31, 0x44, 0x69, 0x1c, 0x47, 0xb6,
+ 0x96, 0x90, 0x07, 0xc6,
+};
+static const struct drbg_kat_pr_true kat3817_t = {
+ 6, kat3817_entropyin, kat3817_nonce, kat3817_persstr,
+ kat3817_entropyinpr1, kat3817_addinpr1, kat3817_entropyinpr2,
+ kat3817_addinpr2, kat3817_retbits
+};
+static const struct drbg_kat kat3817 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3817_t
+};
+
+static const unsigned char kat3818_entropyin[] = {
+ 0x74, 0xab, 0xe9, 0x1c, 0xfd, 0x30, 0xc8, 0x97, 0x82, 0x5e, 0x70, 0x30,
+ 0x4f, 0x03, 0x7e, 0xfe, 0x12, 0xce, 0xea, 0xaa, 0xf2, 0x72, 0x8b, 0x1c,
+ 0x02, 0x3d, 0xbf, 0xcf, 0x7d, 0x70, 0x5c, 0xe4,
+};
+static const unsigned char kat3818_nonce[] = {0};
+static const unsigned char kat3818_persstr[] = {
+ 0xca, 0xc3, 0xbc, 0x51, 0x8f, 0x9a, 0xa4, 0xf3, 0xf6, 0xd0, 0xe4, 0xbb,
+ 0x65, 0xe5, 0xf2, 0xb7, 0xb3, 0x6b, 0xba, 0x1b, 0xc4, 0x33, 0xa5, 0x9a,
+ 0x68, 0xd8, 0xa9, 0x68, 0x8a, 0x3c, 0xf2, 0x52,
+};
+static const unsigned char kat3818_entropyinpr1[] = {
+ 0xe8, 0x3e, 0xc8, 0x09, 0xa3, 0x8a, 0x10, 0x49, 0x98, 0xd5, 0x0b, 0x4a,
+ 0x5d, 0x06, 0xa5, 0x2b, 0xde, 0x87, 0x39, 0x34, 0x21, 0xe3, 0x57, 0xd7,
+ 0xf1, 0x1a, 0x8c, 0x63, 0x07, 0x9a, 0x0f, 0x2d,
+};
+static const unsigned char kat3818_addinpr1[] = {0};
+static const unsigned char kat3818_entropyinpr2[] = {
+ 0xa1, 0x7b, 0xd9, 0xbe, 0x94, 0xb2, 0x5a, 0x57, 0xed, 0xa3, 0xa2, 0x44,
+ 0xf7, 0x80, 0xf9, 0x92, 0xef, 0x9b, 0x2b, 0xad, 0x96, 0x1b, 0xad, 0x4a,
+ 0x7a, 0x36, 0x05, 0xcc, 0x66, 0x59, 0x64, 0xf7,
+};
+static const unsigned char kat3818_addinpr2[] = {0};
+static const unsigned char kat3818_retbits[] = {
+ 0x6f, 0x99, 0x6c, 0xfd, 0x0c, 0xe7, 0xee, 0xac, 0x7d, 0xc7, 0x97, 0x3e,
+ 0x3d, 0xb4, 0x4a, 0x56, 0xc2, 0xcd, 0x01, 0xa5, 0x9e, 0x03, 0x9a, 0x1e,
+ 0xf3, 0x6d, 0xc6, 0x65, 0x5b, 0xe2, 0x4b, 0xc6, 0x6c, 0x9c, 0xff, 0x98,
+ 0xcd, 0x8c, 0x43, 0x8d, 0xc0, 0x33, 0x8b, 0xb2, 0xbf, 0xd6, 0xfd, 0xa2,
+ 0x07, 0x1a, 0x8f, 0xa2, 0x8f, 0xd0, 0x1a, 0x8a, 0x6f, 0x86, 0x31, 0xca,
+ 0xac, 0x37, 0xcd, 0x8d,
+};
+static const struct drbg_kat_pr_true kat3818_t = {
+ 7, kat3818_entropyin, kat3818_nonce, kat3818_persstr,
+ kat3818_entropyinpr1, kat3818_addinpr1, kat3818_entropyinpr2,
+ kat3818_addinpr2, kat3818_retbits
+};
+static const struct drbg_kat kat3818 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3818_t
+};
+
+static const unsigned char kat3819_entropyin[] = {
+ 0xee, 0x26, 0x22, 0xc7, 0x7a, 0xb4, 0xdd, 0x02, 0x37, 0xf0, 0xbe, 0x1a,
+ 0xaa, 0x50, 0xab, 0x12, 0x78, 0x81, 0xdf, 0x09, 0x22, 0xcb, 0xe8, 0xca,
+ 0x7d, 0x00, 0x8a, 0x64, 0x58, 0xec, 0x9b, 0xbe,
+};
+static const unsigned char kat3819_nonce[] = {0};
+static const unsigned char kat3819_persstr[] = {
+ 0x27, 0x4f, 0xb2, 0x21, 0x46, 0x89, 0xb9, 0x51, 0x69, 0xb3, 0x89, 0x3f,
+ 0xf1, 0x4f, 0x0e, 0x30, 0xdf, 0x94, 0xe1, 0x2d, 0x40, 0xea, 0x01, 0x42,
+ 0x61, 0x8f, 0x28, 0xfd, 0xbe, 0xec, 0xc4, 0x9d,
+};
+static const unsigned char kat3819_entropyinpr1[] = {
+ 0x39, 0xb7, 0xb2, 0x0d, 0x0a, 0x1d, 0x82, 0x42, 0x2d, 0x2b, 0x3b, 0x79,
+ 0x71, 0x6a, 0x34, 0x4d, 0xf4, 0x9d, 0xeb, 0xde, 0xfd, 0xc4, 0xb7, 0x56,
+ 0x79, 0xc2, 0x6d, 0x00, 0x38, 0x45, 0x43, 0x94,
+};
+static const unsigned char kat3819_addinpr1[] = {0};
+static const unsigned char kat3819_entropyinpr2[] = {
+ 0xec, 0x0d, 0x23, 0x99, 0xdd, 0x18, 0x5d, 0x2a, 0x07, 0x55, 0x6a, 0xf3,
+ 0xd5, 0x0c, 0xcf, 0xaa, 0x1a, 0x25, 0xab, 0x09, 0xf9, 0x86, 0x95, 0x42,
+ 0x02, 0xea, 0x00, 0x3e, 0xe4, 0x96, 0x86, 0x74,
+};
+static const unsigned char kat3819_addinpr2[] = {0};
+static const unsigned char kat3819_retbits[] = {
+ 0x1c, 0x8d, 0x9d, 0x7e, 0xa3, 0x90, 0x89, 0x35, 0x2a, 0xf0, 0x5d, 0x8e,
+ 0xf9, 0xf3, 0xa7, 0xeb, 0x18, 0xf9, 0x26, 0xe5, 0x66, 0xf8, 0x62, 0xd0,
+ 0x8b, 0x2e, 0x11, 0xa8, 0xf6, 0xe8, 0xc7, 0x27, 0x03, 0x4a, 0x7c, 0xa5,
+ 0xd6, 0xe3, 0xa8, 0xd2, 0x98, 0x2d, 0x36, 0xa2, 0x5f, 0xf9, 0x31, 0x97,
+ 0x92, 0xb8, 0xf3, 0xba, 0x34, 0x3e, 0xb6, 0x96, 0x5e, 0x93, 0xcf, 0xa0,
+ 0xdf, 0xcc, 0x5a, 0xaa,
+};
+static const struct drbg_kat_pr_true kat3819_t = {
+ 8, kat3819_entropyin, kat3819_nonce, kat3819_persstr,
+ kat3819_entropyinpr1, kat3819_addinpr1, kat3819_entropyinpr2,
+ kat3819_addinpr2, kat3819_retbits
+};
+static const struct drbg_kat kat3819 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3819_t
+};
+
+static const unsigned char kat3820_entropyin[] = {
+ 0x3d, 0x16, 0x68, 0x67, 0xfa, 0xce, 0x52, 0xe5, 0x53, 0x82, 0x77, 0x2c,
+ 0xb3, 0x3b, 0x95, 0x0b, 0x4d, 0x34, 0x47, 0x49, 0x74, 0x80, 0xa4, 0x1f,
+ 0xda, 0x43, 0x56, 0xae, 0xe7, 0x10, 0x75, 0xad,
+};
+static const unsigned char kat3820_nonce[] = {0};
+static const unsigned char kat3820_persstr[] = {
+ 0x4b, 0x73, 0x60, 0x82, 0x65, 0x10, 0x27, 0x2a, 0x3f, 0xbf, 0x22, 0x4b,
+ 0xe4, 0x3e, 0xb0, 0xcd, 0x8e, 0x29, 0x4e, 0x6f, 0x8b, 0xfb, 0xa4, 0xf6,
+ 0x71, 0xff, 0x7c, 0x94, 0xae, 0x5a, 0xa2, 0xf4,
+};
+static const unsigned char kat3820_entropyinpr1[] = {
+ 0xf9, 0x1a, 0x04, 0x24, 0x06, 0xe8, 0x63, 0xfc, 0xb9, 0xe8, 0x07, 0xfd,
+ 0x94, 0x1c, 0xe1, 0x17, 0x79, 0xdf, 0xb3, 0xea, 0xe4, 0x4c, 0x82, 0x1b,
+ 0xaa, 0x8f, 0xef, 0xf9, 0x34, 0xbf, 0xea, 0x3e,
+};
+static const unsigned char kat3820_addinpr1[] = {0};
+static const unsigned char kat3820_entropyinpr2[] = {
+ 0xa1, 0x26, 0x5c, 0x9d, 0x1c, 0x26, 0xed, 0xb1, 0xb4, 0x15, 0x6b, 0xd7,
+ 0x36, 0xfb, 0x24, 0x6f, 0x0e, 0xc6, 0xa2, 0x52, 0x45, 0x17, 0xfb, 0x4d,
+ 0xe9, 0x6a, 0xe5, 0xeb, 0x22, 0x09, 0x3c, 0x6c,
+};
+static const unsigned char kat3820_addinpr2[] = {0};
+static const unsigned char kat3820_retbits[] = {
+ 0xe2, 0x74, 0x73, 0x3c, 0xf5, 0xe0, 0x83, 0xa6, 0xf9, 0xd5, 0x56, 0x66,
+ 0x7c, 0x88, 0x8c, 0x80, 0x13, 0x3e, 0x0f, 0x88, 0x51, 0xd2, 0xa1, 0x33,
+ 0x08, 0x76, 0xea, 0xd3, 0x1e, 0x65, 0xef, 0xf7, 0xf8, 0x63, 0xd3, 0x58,
+ 0xb2, 0xf4, 0xa4, 0xf8, 0x51, 0xd3, 0x49, 0x72, 0xf0, 0x5d, 0xaa, 0xae,
+ 0x2b, 0xdb, 0x2a, 0x9b, 0x05, 0xc7, 0xfa, 0xe5, 0xbc, 0x68, 0x49, 0xad,
+ 0x98, 0x90, 0x3a, 0x9d,
+};
+static const struct drbg_kat_pr_true kat3820_t = {
+ 9, kat3820_entropyin, kat3820_nonce, kat3820_persstr,
+ kat3820_entropyinpr1, kat3820_addinpr1, kat3820_entropyinpr2,
+ kat3820_addinpr2, kat3820_retbits
+};
+static const struct drbg_kat kat3820 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3820_t
+};
+
+static const unsigned char kat3821_entropyin[] = {
+ 0xa6, 0xfe, 0x47, 0x8c, 0x35, 0x8a, 0x26, 0x72, 0x11, 0x02, 0x70, 0xdb,
+ 0x94, 0xa1, 0xf1, 0x35, 0x85, 0xe9, 0xda, 0x5d, 0xc8, 0xe3, 0x78, 0xa5,
+ 0xb6, 0xdb, 0xb5, 0x00, 0x1a, 0x0b, 0x88, 0x54,
+};
+static const unsigned char kat3821_nonce[] = {0};
+static const unsigned char kat3821_persstr[] = {
+ 0x8b, 0xe5, 0x08, 0x0d, 0xda, 0x60, 0x0e, 0x3d, 0xfe, 0x16, 0x72, 0x0d,
+ 0x3f, 0xad, 0xdb, 0x44, 0x9b, 0x19, 0x6c, 0x58, 0x6e, 0x65, 0x5c, 0xf7,
+ 0x4c, 0x8b, 0x4a, 0x2a, 0xd2, 0x33, 0x0c, 0xb4,
+};
+static const unsigned char kat3821_entropyinpr1[] = {
+ 0x45, 0x94, 0xea, 0x12, 0x21, 0x1d, 0x85, 0x55, 0x3f, 0x97, 0x67, 0x12,
+ 0x21, 0x43, 0xf5, 0x2b, 0xcc, 0xba, 0x5e, 0x9b, 0x60, 0x94, 0xbd, 0xab,
+ 0xa3, 0x3c, 0x34, 0xf6, 0xcc, 0xfd, 0x3f, 0x36,
+};
+static const unsigned char kat3821_addinpr1[] = {0};
+static const unsigned char kat3821_entropyinpr2[] = {
+ 0xe2, 0x7d, 0x8a, 0xcb, 0x00, 0x6a, 0xab, 0xf9, 0x37, 0x8d, 0xfa, 0x01,
+ 0x94, 0xf0, 0x9c, 0x8e, 0x1a, 0x12, 0x77, 0x6c, 0xd8, 0xab, 0x18, 0x2a,
+ 0xd0, 0x6e, 0xdf, 0xf1, 0xd7, 0x74, 0xeb, 0xc6,
+};
+static const unsigned char kat3821_addinpr2[] = {0};
+static const unsigned char kat3821_retbits[] = {
+ 0x08, 0x55, 0x8c, 0xf7, 0xad, 0xfa, 0x8a, 0xe2, 0xbb, 0x3f, 0xff, 0x5c,
+ 0xd8, 0x9a, 0xc7, 0x44, 0x87, 0xf7, 0x8b, 0xe3, 0x77, 0xac, 0x3c, 0xfd,
+ 0xbb, 0x37, 0xc7, 0xf0, 0xe1, 0x81, 0x26, 0x0f, 0x20, 0x44, 0xcb, 0xbb,
+ 0x31, 0x40, 0x1e, 0x88, 0x9c, 0x9c, 0x67, 0xa1, 0x6c, 0xed, 0x38, 0x6e,
+ 0x07, 0xfd, 0x92, 0xbb, 0x13, 0x3d, 0x76, 0xd5, 0xcc, 0x65, 0x8f, 0xd8,
+ 0x30, 0xc3, 0x0c, 0xba,
+};
+static const struct drbg_kat_pr_true kat3821_t = {
+ 10, kat3821_entropyin, kat3821_nonce, kat3821_persstr,
+ kat3821_entropyinpr1, kat3821_addinpr1, kat3821_entropyinpr2,
+ kat3821_addinpr2, kat3821_retbits
+};
+static const struct drbg_kat kat3821 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3821_t
+};
+
+static const unsigned char kat3822_entropyin[] = {
+ 0x72, 0x90, 0xfb, 0x42, 0xbe, 0xf4, 0xdc, 0xf3, 0x92, 0x3c, 0x9d, 0x43,
+ 0xd6, 0x9b, 0x03, 0xaa, 0x45, 0x3c, 0x95, 0xfa, 0x5e, 0xc0, 0x7f, 0x76,
+ 0x83, 0x90, 0x54, 0x91, 0xd2, 0xeb, 0x54, 0x90,
+};
+static const unsigned char kat3822_nonce[] = {0};
+static const unsigned char kat3822_persstr[] = {
+ 0x48, 0xa4, 0x17, 0x6b, 0x80, 0x56, 0x35, 0x81, 0x81, 0xca, 0x4d, 0xc9,
+ 0x08, 0x9f, 0x78, 0x24, 0x17, 0xbd, 0x17, 0x5b, 0x3c, 0x03, 0x9e, 0x27,
+ 0x8a, 0x0f, 0xde, 0xb5, 0x6e, 0x8e, 0x9c, 0xd3,
+};
+static const unsigned char kat3822_entropyinpr1[] = {
+ 0xe2, 0x10, 0x95, 0xb2, 0x68, 0xc5, 0x8c, 0xd9, 0x35, 0x47, 0x4a, 0x4f,
+ 0x56, 0x9a, 0x3f, 0xc8, 0x19, 0x59, 0xaf, 0x04, 0xaa, 0x19, 0x61, 0x05,
+ 0x34, 0x3a, 0x56, 0x43, 0x19, 0x83, 0xae, 0x22,
+};
+static const unsigned char kat3822_addinpr1[] = {0};
+static const unsigned char kat3822_entropyinpr2[] = {
+ 0xdf, 0x30, 0x51, 0x86, 0xa9, 0xe5, 0x93, 0xca, 0xe4, 0xc4, 0xab, 0xbe,
+ 0xf8, 0x39, 0x48, 0x7d, 0x0e, 0x04, 0x64, 0x1f, 0x4b, 0xce, 0x3d, 0x1c,
+ 0x60, 0x1b, 0x77, 0x40, 0xd8, 0xdd, 0xcd, 0x94,
+};
+static const unsigned char kat3822_addinpr2[] = {0};
+static const unsigned char kat3822_retbits[] = {
+ 0x70, 0x3f, 0x5f, 0xc5, 0xaa, 0x1d, 0x4f, 0xc6, 0x42, 0x24, 0xfb, 0xed,
+ 0xf3, 0x64, 0xf0, 0x1f, 0xf4, 0x4a, 0xf8, 0x7b, 0x45, 0x7a, 0xa2, 0x82,
+ 0x02, 0x84, 0x10, 0x17, 0x4d, 0x4b, 0x9c, 0x86, 0xec, 0x9c, 0x2a, 0x03,
+ 0xbc, 0x36, 0x4a, 0x6b, 0xee, 0xfa, 0x5a, 0xb0, 0x43, 0xf5, 0x71, 0x3f,
+ 0xad, 0xb7, 0xae, 0x38, 0x03, 0xc8, 0x2c, 0xa4, 0x28, 0x94, 0xac, 0xe7,
+ 0x3c, 0xcd, 0x41, 0xed,
+};
+static const struct drbg_kat_pr_true kat3822_t = {
+ 11, kat3822_entropyin, kat3822_nonce, kat3822_persstr,
+ kat3822_entropyinpr1, kat3822_addinpr1, kat3822_entropyinpr2,
+ kat3822_addinpr2, kat3822_retbits
+};
+static const struct drbg_kat kat3822 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3822_t
+};
+
+static const unsigned char kat3823_entropyin[] = {
+ 0xc4, 0x7e, 0x73, 0x0d, 0xe1, 0x7f, 0x4c, 0x47, 0xac, 0xd1, 0x68, 0xe0,
+ 0xeb, 0xb5, 0xac, 0x30, 0x62, 0xf7, 0x8f, 0x6f, 0x80, 0xb6, 0x27, 0xe5,
+ 0x82, 0xfa, 0xa8, 0x19, 0x0d, 0x78, 0xcd, 0xdf,
+};
+static const unsigned char kat3823_nonce[] = {0};
+static const unsigned char kat3823_persstr[] = {
+ 0x91, 0x7c, 0x66, 0xee, 0x6b, 0xa1, 0xa2, 0xbd, 0x1e, 0x94, 0x4a, 0x9d,
+ 0xbf, 0xf7, 0xfe, 0x47, 0xd6, 0xf0, 0x48, 0x21, 0xe3, 0xca, 0x5a, 0xfa,
+ 0xe3, 0x47, 0x6b, 0xe8, 0x70, 0xa4, 0xba, 0x52,
+};
+static const unsigned char kat3823_entropyinpr1[] = {
+ 0x2c, 0xea, 0x0e, 0xf6, 0x3e, 0x61, 0x75, 0x43, 0xed, 0x62, 0x36, 0x18,
+ 0xaa, 0x01, 0x76, 0x4c, 0xc0, 0x1d, 0x5d, 0x10, 0xb5, 0x50, 0x8b, 0x78,
+ 0x5d, 0x2d, 0x87, 0x88, 0x90, 0x07, 0x6c, 0x64,
+};
+static const unsigned char kat3823_addinpr1[] = {0};
+static const unsigned char kat3823_entropyinpr2[] = {
+ 0x9c, 0xc8, 0x0d, 0x3e, 0x71, 0x42, 0x0c, 0xcd, 0x92, 0xd9, 0x7c, 0x25,
+ 0x09, 0x2d, 0x37, 0x0c, 0x81, 0xb4, 0x51, 0x65, 0x3e, 0xfa, 0x2d, 0x10,
+ 0xb6, 0x05, 0xe1, 0x3d, 0x65, 0x0b, 0xcf, 0xa1,
+};
+static const unsigned char kat3823_addinpr2[] = {0};
+static const unsigned char kat3823_retbits[] = {
+ 0x4f, 0x25, 0x70, 0x36, 0x4d, 0x1a, 0xe7, 0x1d, 0x29, 0xc0, 0x05, 0xbd,
+ 0xea, 0x9d, 0xf2, 0x8c, 0xec, 0x9a, 0xe3, 0x1c, 0x2d, 0x29, 0x6a, 0xec,
+ 0xd0, 0x42, 0x0e, 0xc2, 0xd7, 0x2f, 0x72, 0x4e, 0x5c, 0x2e, 0x9c, 0xf7,
+ 0xb5, 0xfa, 0xa4, 0x6d, 0xa4, 0x58, 0x9f, 0xb6, 0x03, 0xfe, 0xd6, 0x36,
+ 0x1b, 0xae, 0xf2, 0x2f, 0x58, 0x48, 0x46, 0xb1, 0xbe, 0x79, 0x31, 0x0c,
+ 0x62, 0x45, 0x14, 0x3c,
+};
+static const struct drbg_kat_pr_true kat3823_t = {
+ 12, kat3823_entropyin, kat3823_nonce, kat3823_persstr,
+ kat3823_entropyinpr1, kat3823_addinpr1, kat3823_entropyinpr2,
+ kat3823_addinpr2, kat3823_retbits
+};
+static const struct drbg_kat kat3823 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3823_t
+};
+
+static const unsigned char kat3824_entropyin[] = {
+ 0x97, 0xa2, 0xcc, 0x8d, 0x94, 0x5c, 0xa5, 0x24, 0xdb, 0x7f, 0x77, 0x4a,
+ 0x4d, 0xaa, 0x4a, 0xcc, 0xc0, 0xeb, 0xd3, 0xeb, 0x79, 0xa6, 0x5f, 0xb9,
+ 0x64, 0x98, 0xe7, 0xe9, 0x03, 0xb3, 0x57, 0xd9,
+};
+static const unsigned char kat3824_nonce[] = {0};
+static const unsigned char kat3824_persstr[] = {
+ 0x8c, 0x58, 0x19, 0xb2, 0xcf, 0x2a, 0xaf, 0x5b, 0x23, 0xf4, 0x7f, 0x02,
+ 0x9d, 0xb8, 0x18, 0xba, 0x7c, 0xfd, 0xb5, 0x06, 0x38, 0xd1, 0xc9, 0x78,
+ 0x3a, 0xf3, 0x30, 0xfe, 0x18, 0x5e, 0xf9, 0x60,
+};
+static const unsigned char kat3824_entropyinpr1[] = {
+ 0x53, 0xbb, 0x7c, 0xf0, 0xb4, 0x52, 0xf7, 0xea, 0xdd, 0xa9, 0x7c, 0x20,
+ 0x23, 0x14, 0x7b, 0x3d, 0x80, 0x2e, 0xad, 0x78, 0x4f, 0x76, 0x63, 0x28,
+ 0x2a, 0xa4, 0x0c, 0x11, 0xa5, 0x65, 0xe6, 0x91,
+};
+static const unsigned char kat3824_addinpr1[] = {0};
+static const unsigned char kat3824_entropyinpr2[] = {
+ 0x72, 0x5e, 0x52, 0x3b, 0xaa, 0xb3, 0xeb, 0x5e, 0xe4, 0x32, 0xd1, 0x3a,
+ 0xb5, 0x9e, 0xc5, 0x36, 0x4e, 0xe1, 0x79, 0xce, 0x74, 0x43, 0xbf, 0x3a,
+ 0x29, 0x45, 0x4c, 0x91, 0x9b, 0x8d, 0xfe, 0x0c,
+};
+static const unsigned char kat3824_addinpr2[] = {0};
+static const unsigned char kat3824_retbits[] = {
+ 0x94, 0xc3, 0x51, 0xd1, 0xfe, 0x28, 0x3e, 0xc7, 0xba, 0x67, 0xc4, 0xca,
+ 0x86, 0x01, 0x75, 0xdd, 0x24, 0xed, 0x1f, 0x8a, 0xf1, 0xca, 0xb0, 0xf1,
+ 0x23, 0x59, 0x50, 0x83, 0xd3, 0x15, 0x28, 0x7e, 0x12, 0xe8, 0xa4, 0x5e,
+ 0x3a, 0x3c, 0x0f, 0x90, 0x4d, 0xcb, 0xf3, 0xab, 0xbb, 0x9b, 0xc9, 0x68,
+ 0xad, 0x03, 0xe7, 0x94, 0xbe, 0x19, 0xbb, 0x50, 0x05, 0xb9, 0xd6, 0xb9,
+ 0xbe, 0xcc, 0x18, 0xd8,
+};
+static const struct drbg_kat_pr_true kat3824_t = {
+ 13, kat3824_entropyin, kat3824_nonce, kat3824_persstr,
+ kat3824_entropyinpr1, kat3824_addinpr1, kat3824_entropyinpr2,
+ kat3824_addinpr2, kat3824_retbits
+};
+static const struct drbg_kat kat3824 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3824_t
+};
+
+static const unsigned char kat3825_entropyin[] = {
+ 0xa9, 0xba, 0x59, 0x81, 0x80, 0x8f, 0x34, 0x25, 0x82, 0xe2, 0xb7, 0x3b,
+ 0xfc, 0xd0, 0x7f, 0x12, 0x46, 0x20, 0x79, 0xbb, 0xf2, 0xdd, 0x6f, 0x83,
+ 0xf6, 0x25, 0xeb, 0xd6, 0x2f, 0xa9, 0x0c, 0x3d,
+};
+static const unsigned char kat3825_nonce[] = {0};
+static const unsigned char kat3825_persstr[] = {
+ 0xf1, 0x1d, 0xaf, 0x3a, 0x00, 0x89, 0x70, 0x90, 0x82, 0xa4, 0x89, 0xac,
+ 0x74, 0x0f, 0xe0, 0x59, 0xd5, 0x68, 0xe0, 0x3a, 0x82, 0xbb, 0xcc, 0x2b,
+ 0x70, 0xc8, 0xab, 0xac, 0x56, 0x84, 0x24, 0x39,
+};
+static const unsigned char kat3825_entropyinpr1[] = {
+ 0x36, 0x95, 0xbd, 0x2e, 0x5b, 0x30, 0xb1, 0xd3, 0x95, 0x7d, 0xd0, 0xa1,
+ 0x16, 0xbd, 0xdb, 0xa5, 0x3a, 0x24, 0xdb, 0xe6, 0x47, 0xde, 0xa6, 0x3b,
+ 0x9d, 0x40, 0x20, 0x74, 0x5a, 0xfb, 0x90, 0xe4,
+};
+static const unsigned char kat3825_addinpr1[] = {0};
+static const unsigned char kat3825_entropyinpr2[] = {
+ 0x40, 0x79, 0xd6, 0x61, 0x0b, 0xbc, 0x71, 0x5e, 0x62, 0x77, 0x7a, 0xb6,
+ 0x99, 0xe3, 0xac, 0x6b, 0x6c, 0x4d, 0x09, 0x7a, 0xad, 0x4d, 0xeb, 0xf6,
+ 0x68, 0xa5, 0x4d, 0x15, 0x74, 0x4d, 0x9e, 0xc1,
+};
+static const unsigned char kat3825_addinpr2[] = {0};
+static const unsigned char kat3825_retbits[] = {
+ 0xd0, 0xaa, 0xa5, 0x1f, 0xb0, 0x84, 0x82, 0x5f, 0x8b, 0xf0, 0x47, 0x6c,
+ 0x70, 0x3f, 0x11, 0x33, 0x82, 0x9a, 0x93, 0xde, 0xe1, 0xf8, 0x06, 0x12,
+ 0x22, 0xf3, 0x50, 0x2f, 0xf1, 0xbd, 0xfd, 0x55, 0x0e, 0xdf, 0xdc, 0x27,
+ 0x5f, 0x3a, 0xec, 0x8a, 0x8f, 0xc5, 0xf9, 0xe5, 0xf7, 0x12, 0x46, 0x36,
+ 0x2f, 0xdb, 0xcc, 0x65, 0xa0, 0x0e, 0x7c, 0xc5, 0x2f, 0xf3, 0x53, 0xcf,
+ 0xa3, 0xb3, 0x75, 0x9a,
+};
+static const struct drbg_kat_pr_true kat3825_t = {
+ 14, kat3825_entropyin, kat3825_nonce, kat3825_persstr,
+ kat3825_entropyinpr1, kat3825_addinpr1, kat3825_entropyinpr2,
+ kat3825_addinpr2, kat3825_retbits
+};
+static const struct drbg_kat kat3825 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 0, 64, &kat3825_t
+};
+
+static const unsigned char kat3826_entropyin[] = {
+ 0x0b, 0xfd, 0xe8, 0xb3, 0x2c, 0x0a, 0xda, 0xbd, 0x84, 0xe2, 0x71, 0xd1,
+ 0x9b, 0x76, 0xcb, 0x96, 0x95, 0xe1, 0xf8, 0x9a, 0x08, 0x13, 0xe6, 0x3e,
+ 0x7d, 0x9e, 0x6a, 0x0d, 0xd1, 0x69, 0x1c, 0x55,
+};
+static const unsigned char kat3826_nonce[] = {0};
+static const unsigned char kat3826_persstr[] = {
+ 0xf3, 0x45, 0xff, 0xd4, 0x13, 0x8e, 0xa0, 0xb4, 0x1e, 0x1b, 0x87, 0xa6,
+ 0x78, 0xe2, 0x4a, 0xd8, 0x7c, 0x14, 0xfa, 0xde, 0x68, 0xe7, 0x03, 0xb3,
+ 0x59, 0xca, 0xaf, 0x2e, 0x26, 0x9e, 0x7c, 0x58,
+};
+static const unsigned char kat3826_entropyinpr1[] = {
+ 0x2a, 0x04, 0x6c, 0xb4, 0x77, 0xaf, 0xd5, 0x42, 0x71, 0xb0, 0xf5, 0xd6,
+ 0x92, 0x4c, 0x70, 0x6c, 0x40, 0x43, 0x70, 0x2a, 0x56, 0x57, 0xe9, 0x9b,
+ 0x88, 0x4b, 0xbc, 0xd7, 0xec, 0x6a, 0xa2, 0x67,
+};
+static const unsigned char kat3826_addinpr1[] = {
+ 0x68, 0x38, 0x8f, 0x4c, 0x45, 0xc3, 0x49, 0xf0, 0x76, 0xc3, 0x1e, 0xbb,
+ 0x97, 0x2c, 0x31, 0xd2, 0x58, 0x95, 0xdf, 0xad, 0xf3, 0xa8, 0xd8, 0xc3,
+ 0x36, 0xaf, 0xac, 0xf3, 0xe3, 0x10, 0x8c, 0xaf,
+};
+static const unsigned char kat3826_entropyinpr2[] = {
+ 0xd1, 0x42, 0xdf, 0xb3, 0x9b, 0x02, 0x51, 0x1f, 0x93, 0x31, 0x20, 0xa8,
+ 0x8c, 0x2f, 0xab, 0xb8, 0x8e, 0x82, 0x4a, 0x91, 0x6c, 0x82, 0x6b, 0x20,
+ 0xf4, 0x44, 0xc6, 0x2e, 0x9d, 0x9a, 0xf0, 0xb9,
+};
+static const unsigned char kat3826_addinpr2[] = {
+ 0xc8, 0xa9, 0x5b, 0xca, 0xb7, 0x63, 0x58, 0x60, 0x8d, 0xb1, 0xf6, 0x6e,
+ 0xa8, 0xb4, 0x53, 0x7f, 0x3d, 0xd8, 0x70, 0xe3, 0x8d, 0xf4, 0x1b, 0xcf,
+ 0xdf, 0x41, 0xd7, 0x3e, 0xb5, 0x90, 0x1c, 0x93,
+};
+static const unsigned char kat3826_retbits[] = {
+ 0xed, 0xa2, 0x04, 0xa7, 0xc5, 0x1b, 0x29, 0xa7, 0x9c, 0xa1, 0xa7, 0x14,
+ 0x8d, 0xae, 0x64, 0x45, 0xb4, 0xc7, 0xd8, 0x30, 0x41, 0x0d, 0xe1, 0x31,
+ 0xc5, 0xc4, 0xa2, 0x8e, 0x85, 0xc7, 0x4a, 0x15, 0xc7, 0x68, 0x16, 0x7d,
+ 0xac, 0x0b, 0xba, 0x1c, 0xac, 0xc3, 0xdf, 0xfd, 0xb2, 0x53, 0x12, 0xf9,
+ 0x18, 0x6f, 0xdf, 0xc9, 0xa6, 0xe5, 0x70, 0x08, 0x1f, 0x41, 0xc9, 0x97,
+ 0xab, 0x82, 0x95, 0x24,
+};
+static const struct drbg_kat_pr_true kat3826_t = {
+ 0, kat3826_entropyin, kat3826_nonce, kat3826_persstr,
+ kat3826_entropyinpr1, kat3826_addinpr1, kat3826_entropyinpr2,
+ kat3826_addinpr2, kat3826_retbits
+};
+static const struct drbg_kat kat3826 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3826_t
+};
+
+static const unsigned char kat3827_entropyin[] = {
+ 0x3a, 0xc6, 0x7c, 0x4f, 0x19, 0x26, 0xbf, 0xe8, 0x0e, 0x8a, 0xd2, 0x93,
+ 0x1b, 0x6e, 0x6f, 0x20, 0x35, 0x89, 0x31, 0x6b, 0x7c, 0xa1, 0x52, 0xdd,
+ 0x00, 0xfb, 0xd0, 0x68, 0x1f, 0x23, 0x1f, 0x58,
+};
+static const unsigned char kat3827_nonce[] = {0};
+static const unsigned char kat3827_persstr[] = {
+ 0x6e, 0xed, 0xd4, 0xb2, 0xa1, 0xe4, 0x1b, 0xfc, 0x47, 0x0c, 0x79, 0x06,
+ 0x85, 0xf9, 0x76, 0xd2, 0x87, 0xa8, 0x80, 0xf1, 0x5f, 0x1a, 0xb8, 0x93,
+ 0xd8, 0x75, 0x40, 0xd5, 0x67, 0x72, 0xbd, 0xca,
+};
+static const unsigned char kat3827_entropyinpr1[] = {
+ 0x89, 0x92, 0xb1, 0x09, 0x2d, 0xc4, 0xe3, 0xdb, 0x41, 0xf6, 0xdd, 0xab,
+ 0xb1, 0xeb, 0x86, 0xd4, 0x2c, 0x90, 0xc1, 0xea, 0x96, 0x73, 0x64, 0x6c,
+ 0x6d, 0x69, 0xa8, 0xdc, 0x0c, 0xd9, 0x28, 0x4f,
+};
+static const unsigned char kat3827_addinpr1[] = {
+ 0xff, 0xff, 0x55, 0xb7, 0x1b, 0x1c, 0xa8, 0xad, 0x44, 0xb7, 0xd5, 0x01,
+ 0x1c, 0x1e, 0x68, 0x5c, 0x88, 0x17, 0x97, 0x83, 0xdf, 0x0c, 0x55, 0x51,
+ 0x72, 0xf2, 0x01, 0x89, 0xac, 0xdc, 0xb2, 0x34,
+};
+static const unsigned char kat3827_entropyinpr2[] = {
+ 0x99, 0x04, 0xcf, 0x4e, 0x3d, 0x81, 0x0a, 0x2b, 0xec, 0x3a, 0x30, 0x09,
+ 0x73, 0x5e, 0x89, 0xa4, 0x5a, 0x25, 0x9e, 0xb3, 0x72, 0xaa, 0x3d, 0xa3,
+ 0xff, 0x0d, 0x53, 0xe2, 0x47, 0x8b, 0x22, 0x8b,
+};
+static const unsigned char kat3827_addinpr2[] = {
+ 0x76, 0x35, 0xa5, 0x7b, 0x4f, 0x40, 0xad, 0xd8, 0xfe, 0xd1, 0x03, 0x2e,
+ 0x76, 0x1a, 0x96, 0x2c, 0x9f, 0xe2, 0xc6, 0xa9, 0xf0, 0x10, 0x23, 0x88,
+ 0x4f, 0x50, 0x2a, 0x04, 0x94, 0xc6, 0x0f, 0x18,
+};
+static const unsigned char kat3827_retbits[] = {
+ 0x8e, 0xeb, 0x30, 0xb0, 0x24, 0x55, 0x9e, 0x6c, 0x9c, 0xc3, 0xa6, 0x24,
+ 0x7f, 0x7d, 0x11, 0x84, 0xc1, 0x1a, 0x5e, 0x68, 0x11, 0xa2, 0xdc, 0xce,
+ 0xbd, 0x6c, 0x3b, 0xed, 0xcc, 0xeb, 0x8c, 0xb4, 0xed, 0xa1, 0x56, 0xea,
+ 0xac, 0x30, 0x92, 0x01, 0xa1, 0x62, 0xca, 0x23, 0x11, 0xb1, 0x3c, 0x7f,
+ 0xc0, 0x5f, 0x06, 0x52, 0xb0, 0x85, 0x07, 0xc2, 0xce, 0x57, 0xc4, 0xbd,
+ 0x81, 0x9b, 0x4a, 0x2f,
+};
+static const struct drbg_kat_pr_true kat3827_t = {
+ 1, kat3827_entropyin, kat3827_nonce, kat3827_persstr,
+ kat3827_entropyinpr1, kat3827_addinpr1, kat3827_entropyinpr2,
+ kat3827_addinpr2, kat3827_retbits
+};
+static const struct drbg_kat kat3827 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3827_t
+};
+
+static const unsigned char kat3828_entropyin[] = {
+ 0x0e, 0x19, 0xa3, 0xe9, 0x8e, 0xc9, 0xcc, 0xb8, 0xda, 0x19, 0x5b, 0x61,
+ 0xf4, 0x18, 0x42, 0xc9, 0x5c, 0x14, 0xe6, 0x93, 0x74, 0x9e, 0x55, 0xf5,
+ 0xfc, 0x0e, 0x55, 0xff, 0x63, 0xf7, 0x4e, 0x68,
+};
+static const unsigned char kat3828_nonce[] = {0};
+static const unsigned char kat3828_persstr[] = {
+ 0x27, 0x08, 0x83, 0x54, 0x5a, 0xb4, 0x1c, 0xf4, 0x26, 0xf9, 0xa9, 0x67,
+ 0x52, 0x17, 0x2a, 0x71, 0xab, 0xfc, 0x79, 0x75, 0x52, 0xb3, 0xed, 0xd4,
+ 0x63, 0xbb, 0xb7, 0x23, 0x18, 0x33, 0x55, 0x2d,
+};
+static const unsigned char kat3828_entropyinpr1[] = {
+ 0x82, 0xb6, 0x8c, 0x3f, 0xd2, 0xe8, 0x75, 0x0c, 0x2b, 0xfd, 0x83, 0x4d,
+ 0xd3, 0x7b, 0x6a, 0x47, 0x1c, 0x30, 0xf6, 0x58, 0x1a, 0x93, 0xd7, 0x62,
+ 0x18, 0x4f, 0x61, 0x78, 0x25, 0xb2, 0xdd, 0x83,
+};
+static const unsigned char kat3828_addinpr1[] = {
+ 0x10, 0x78, 0xf5, 0x4e, 0x5b, 0x60, 0xfd, 0x70, 0xb4, 0x8b, 0x1b, 0x70,
+ 0xd1, 0xd0, 0xb4, 0xd1, 0x75, 0x49, 0xc3, 0xe6, 0xb0, 0xbe, 0xcf, 0xac,
+ 0x8a, 0x7a, 0x45, 0x17, 0xb4, 0xd2, 0xf6, 0x84,
+};
+static const unsigned char kat3828_entropyinpr2[] = {
+ 0x47, 0xcd, 0x9d, 0xc7, 0x10, 0xf0, 0x7b, 0xb6, 0xf5, 0xea, 0xb8, 0x1d,
+ 0xad, 0x0e, 0x28, 0xa6, 0xcc, 0xaa, 0x8b, 0x74, 0x5a, 0xca, 0x22, 0x49,
+ 0xd4, 0x9f, 0x3b, 0x4a, 0xe3, 0x4f, 0x23, 0x75,
+};
+static const unsigned char kat3828_addinpr2[] = {
+ 0x52, 0xdc, 0xe3, 0x79, 0x6b, 0x79, 0x2a, 0x58, 0x87, 0x8b, 0x37, 0x0e,
+ 0x78, 0x9e, 0x3c, 0xdd, 0x13, 0xc3, 0x9e, 0xe9, 0x36, 0x1e, 0x0d, 0x0d,
+ 0x8f, 0xe3, 0xbb, 0x33, 0x82, 0x2e, 0x60, 0xc4,
+};
+static const unsigned char kat3828_retbits[] = {
+ 0x99, 0x27, 0x0a, 0xb2, 0xf4, 0x4d, 0x0c, 0xc1, 0xe6, 0xc1, 0x88, 0x8a,
+ 0xd5, 0xbc, 0x63, 0x8b, 0x28, 0x43, 0x25, 0x59, 0x08, 0x7a, 0xda, 0x30,
+ 0xf6, 0x3b, 0x37, 0x24, 0x2c, 0x84, 0x8c, 0x8f, 0xe0, 0x48, 0xbf, 0x27,
+ 0x5b, 0xc5, 0x46, 0xbe, 0xe8, 0x28, 0x3d, 0xd6, 0x6b, 0x6f, 0xaa, 0x30,
+ 0x60, 0xe4, 0x34, 0x23, 0x15, 0x20, 0x21, 0xc7, 0xc3, 0x6a, 0x89, 0x32,
+ 0x52, 0x8f, 0x55, 0x57,
+};
+static const struct drbg_kat_pr_true kat3828_t = {
+ 2, kat3828_entropyin, kat3828_nonce, kat3828_persstr,
+ kat3828_entropyinpr1, kat3828_addinpr1, kat3828_entropyinpr2,
+ kat3828_addinpr2, kat3828_retbits
+};
+static const struct drbg_kat kat3828 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3828_t
+};
+
+static const unsigned char kat3829_entropyin[] = {
+ 0xcc, 0x03, 0x94, 0x76, 0x19, 0xeb, 0xda, 0x1a, 0x32, 0xff, 0x0d, 0xa1,
+ 0xab, 0x50, 0x32, 0x2d, 0x91, 0x4a, 0x8c, 0x92, 0x8f, 0x22, 0x17, 0x1c,
+ 0x5f, 0x57, 0x94, 0xf0, 0x47, 0xc1, 0xb5, 0x7c,
+};
+static const unsigned char kat3829_nonce[] = {0};
+static const unsigned char kat3829_persstr[] = {
+ 0x9b, 0x58, 0xfd, 0x04, 0x4d, 0x90, 0x99, 0x3a, 0x74, 0xc2, 0x1b, 0x3d,
+ 0xd3, 0x9e, 0x47, 0x8a, 0x67, 0x1e, 0xd3, 0x6e, 0xa7, 0x65, 0x71, 0x24,
+ 0x13, 0x58, 0x59, 0xc2, 0x71, 0xad, 0x61, 0xd3,
+};
+static const unsigned char kat3829_entropyinpr1[] = {
+ 0x3a, 0xbd, 0xb2, 0x21, 0x60, 0xef, 0x49, 0x9b, 0xcc, 0xbd, 0x18, 0x16,
+ 0x30, 0x84, 0xfe, 0x44, 0x52, 0x06, 0x82, 0xc2, 0x10, 0x72, 0xd2, 0xb5,
+ 0xa6, 0xaf, 0xf2, 0x5a, 0x28, 0x2a, 0xad, 0xab,
+};
+static const unsigned char kat3829_addinpr1[] = {
+ 0x55, 0x8e, 0x7e, 0x98, 0x05, 0x36, 0xab, 0xce, 0xdb, 0x6c, 0x16, 0x54,
+ 0xa9, 0x65, 0xb3, 0xd0, 0x78, 0xc2, 0x6e, 0xfd, 0xab, 0x1d, 0x1c, 0x6d,
+ 0x8a, 0x58, 0x24, 0x30, 0x3e, 0x89, 0x80, 0xe3,
+};
+static const unsigned char kat3829_entropyinpr2[] = {
+ 0x85, 0x54, 0xaf, 0x8e, 0xb3, 0x17, 0x98, 0xfe, 0x3d, 0xc1, 0x55, 0xa1,
+ 0x9f, 0x61, 0xdd, 0x68, 0x56, 0x5e, 0x06, 0x8d, 0xaa, 0xef, 0x08, 0xf2,
+ 0x54, 0x6f, 0x4a, 0xeb, 0x46, 0x1b, 0xf2, 0xb4,
+};
+static const unsigned char kat3829_addinpr2[] = {
+ 0xc8, 0x59, 0x91, 0x33, 0xdc, 0x1d, 0x2f, 0xb1, 0xe7, 0xb7, 0x86, 0xc6,
+ 0x6c, 0x99, 0x36, 0x5e, 0x49, 0xeb, 0x46, 0x61, 0x5b, 0xdd, 0x4f, 0xda,
+ 0xdb, 0xe5, 0x84, 0x9a, 0xf6, 0xae, 0x1a, 0xe9,
+};
+static const unsigned char kat3829_retbits[] = {
+ 0x9d, 0x49, 0x50, 0x1d, 0xd8, 0x07, 0xba, 0x3a, 0x98, 0xd5, 0x07, 0x3c,
+ 0xeb, 0x2f, 0xf1, 0x4a, 0x5a, 0xa5, 0xd0, 0x95, 0xb5, 0xae, 0x0d, 0xb5,
+ 0x0f, 0x74, 0xcf, 0x97, 0xe0, 0x89, 0xcb, 0x1e, 0x4c, 0xb6, 0xeb, 0x59,
+ 0x4e, 0xc8, 0x60, 0xed, 0x76, 0x45, 0x67, 0xa2, 0xee, 0xf7, 0x0a, 0x38,
+ 0xd3, 0xd2, 0x43, 0xab, 0x47, 0x1a, 0xe9, 0x73, 0xe2, 0x93, 0xaf, 0x10,
+ 0xd6, 0x02, 0x35, 0x4f,
+};
+static const struct drbg_kat_pr_true kat3829_t = {
+ 3, kat3829_entropyin, kat3829_nonce, kat3829_persstr,
+ kat3829_entropyinpr1, kat3829_addinpr1, kat3829_entropyinpr2,
+ kat3829_addinpr2, kat3829_retbits
+};
+static const struct drbg_kat kat3829 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3829_t
+};
+
+static const unsigned char kat3830_entropyin[] = {
+ 0x89, 0x80, 0x74, 0x4d, 0xac, 0x51, 0x87, 0x6f, 0x03, 0x20, 0x11, 0xc9,
+ 0x59, 0xb1, 0x30, 0xfd, 0x63, 0x3a, 0x23, 0x0e, 0x5a, 0x5b, 0xe1, 0xbb,
+ 0x61, 0x46, 0x70, 0x63, 0xa6, 0xc3, 0xed, 0xf2,
+};
+static const unsigned char kat3830_nonce[] = {0};
+static const unsigned char kat3830_persstr[] = {
+ 0x55, 0x74, 0x2e, 0x9d, 0x45, 0xda, 0xaf, 0xb4, 0xee, 0x2d, 0x44, 0x7e,
+ 0x3c, 0x63, 0xe5, 0x1e, 0x6f, 0x15, 0xb0, 0x8f, 0x45, 0x78, 0x43, 0x75,
+ 0x71, 0x17, 0xb6, 0x8d, 0x4d, 0xc8, 0xb9, 0x45,
+};
+static const unsigned char kat3830_entropyinpr1[] = {
+ 0x2c, 0x11, 0xc2, 0x36, 0x69, 0x0b, 0xde, 0xec, 0x27, 0x5b, 0x8f, 0xec,
+ 0x24, 0x59, 0x78, 0xca, 0xf8, 0x7c, 0xe3, 0x6f, 0xe9, 0xb5, 0xb8, 0x9c,
+ 0x2c, 0x0c, 0x2d, 0x14, 0xdb, 0x79, 0x9b, 0x5d,
+};
+static const unsigned char kat3830_addinpr1[] = {
+ 0xa2, 0x7a, 0xdc, 0x9a, 0x12, 0xe0, 0xa0, 0x3a, 0x50, 0x01, 0xe0, 0x18,
+ 0x4a, 0x63, 0x86, 0x68, 0x95, 0xe3, 0xcd, 0x62, 0xb7, 0x28, 0x52, 0xc3,
+ 0xc1, 0xbb, 0x09, 0x18, 0xfb, 0xaf, 0xf7, 0x68,
+};
+static const unsigned char kat3830_entropyinpr2[] = {
+ 0x42, 0x45, 0xa8, 0x50, 0xfb, 0xfa, 0xdb, 0x2e, 0x36, 0x71, 0x42, 0xae,
+ 0x7d, 0xf0, 0xb4, 0x72, 0xc5, 0x08, 0xb4, 0x7e, 0x69, 0x42, 0x3a, 0x83,
+ 0x27, 0x2d, 0x7e, 0xda, 0x6d, 0x72, 0x1e, 0x1c,
+};
+static const unsigned char kat3830_addinpr2[] = {
+ 0xf3, 0x8a, 0x3b, 0x20, 0x23, 0x02, 0xe2, 0xa5, 0xf9, 0x6e, 0x44, 0xc2,
+ 0x0a, 0xb9, 0x14, 0x86, 0xe5, 0x07, 0xa2, 0x3a, 0xb5, 0xd7, 0xbc, 0x68,
+ 0x3e, 0xc6, 0x4e, 0x49, 0x74, 0xc2, 0x42, 0x4a,
+};
+static const unsigned char kat3830_retbits[] = {
+ 0x5c, 0x93, 0x29, 0xe7, 0x86, 0xe0, 0xdb, 0x03, 0xcb, 0x33, 0xb2, 0xd6,
+ 0xc4, 0x0f, 0x7b, 0xb0, 0xe2, 0x14, 0x30, 0x30, 0x22, 0x4e, 0x3f, 0x18,
+ 0xe5, 0xeb, 0x43, 0xbb, 0xf7, 0x3f, 0x8a, 0xdd, 0xaa, 0x14, 0x0a, 0x32,
+ 0xf4, 0x04, 0x48, 0xd6, 0xd8, 0x0d, 0x65, 0x82, 0x8d, 0x92, 0x05, 0xe8,
+ 0x39, 0xef, 0x46, 0x0f, 0x74, 0xf0, 0x42, 0x3e, 0x4c, 0x7b, 0x5e, 0x0c,
+ 0x49, 0x8c, 0xd1, 0xa8,
+};
+static const struct drbg_kat_pr_true kat3830_t = {
+ 4, kat3830_entropyin, kat3830_nonce, kat3830_persstr,
+ kat3830_entropyinpr1, kat3830_addinpr1, kat3830_entropyinpr2,
+ kat3830_addinpr2, kat3830_retbits
+};
+static const struct drbg_kat kat3830 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3830_t
+};
+
+static const unsigned char kat3831_entropyin[] = {
+ 0x61, 0x09, 0x43, 0xe4, 0xb2, 0x97, 0x45, 0xc8, 0x7f, 0x04, 0x5a, 0x45,
+ 0xd3, 0x82, 0x43, 0x08, 0xde, 0x7c, 0x45, 0x2f, 0xfe, 0x27, 0xf0, 0x77,
+ 0x51, 0xe7, 0x31, 0x91, 0xf2, 0x75, 0xd7, 0x2b,
+};
+static const unsigned char kat3831_nonce[] = {0};
+static const unsigned char kat3831_persstr[] = {
+ 0xf4, 0x04, 0x79, 0x8a, 0x26, 0x3e, 0x6c, 0xb7, 0xa4, 0x92, 0x6b, 0x13,
+ 0xf7, 0x9e, 0xca, 0x7e, 0x30, 0x03, 0x97, 0xce, 0xb8, 0xb6, 0x09, 0x22,
+ 0x64, 0x4a, 0x8a, 0x29, 0xd9, 0x96, 0x21, 0x79,
+};
+static const unsigned char kat3831_entropyinpr1[] = {
+ 0x77, 0xc5, 0xbf, 0x63, 0x10, 0x60, 0xf6, 0xe6, 0xe1, 0x38, 0xbf, 0xcb,
+ 0xf9, 0x34, 0x3c, 0x42, 0x8a, 0x91, 0x0a, 0xea, 0x96, 0x8a, 0x3c, 0x1d,
+ 0x7e, 0xe1, 0xb0, 0x40, 0x57, 0x82, 0x89, 0x75,
+};
+static const unsigned char kat3831_addinpr1[] = {
+ 0x12, 0x55, 0x07, 0xe6, 0xaf, 0xab, 0x4b, 0x1c, 0x37, 0xae, 0x63, 0x7e,
+ 0x7d, 0xeb, 0x4a, 0x53, 0x50, 0xf8, 0xb2, 0x3f, 0xfb, 0x78, 0x6f, 0x2c,
+ 0x53, 0xc8, 0xc3, 0x98, 0xa2, 0x2e, 0x8a, 0x14,
+};
+static const unsigned char kat3831_entropyinpr2[] = {
+ 0x2d, 0xa9, 0xa8, 0x7d, 0xed, 0xc5, 0xc1, 0x20, 0xaa, 0x17, 0x8d, 0xbe,
+ 0x46, 0xa2, 0x56, 0x12, 0x1e, 0xae, 0x55, 0x24, 0x68, 0xfe, 0xcf, 0xfe,
+ 0x85, 0x73, 0x3d, 0x40, 0x34, 0xb4, 0x38, 0xd3,
+};
+static const unsigned char kat3831_addinpr2[] = {
+ 0x97, 0x46, 0xd7, 0xcd, 0x3f, 0x03, 0xa0, 0xb6, 0x0c, 0xc3, 0xcd, 0x91,
+ 0x56, 0x0e, 0x05, 0xfc, 0x80, 0x8e, 0xcb, 0x51, 0x7c, 0xe5, 0x7f, 0xdc,
+ 0x19, 0x61, 0x36, 0xee, 0x5e, 0xdc, 0xbe, 0xe6,
+};
+static const unsigned char kat3831_retbits[] = {
+ 0xbe, 0x8e, 0xb3, 0xe4, 0xc9, 0x80, 0xc2, 0xbe, 0x06, 0xf8, 0x22, 0x4b,
+ 0xab, 0x24, 0xd6, 0xe6, 0xe5, 0xe3, 0x73, 0xc7, 0xe2, 0xd8, 0x04, 0x24,
+ 0x76, 0x43, 0x8f, 0x25, 0x07, 0xa0, 0x05, 0x1d, 0x4d, 0xa2, 0x69, 0x70,
+ 0x02, 0x0a, 0x8e, 0x04, 0xd1, 0x6b, 0x93, 0x73, 0xa2, 0xce, 0xb4, 0x6f,
+ 0xda, 0x2d, 0x3e, 0x0a, 0xa0, 0xed, 0x0e, 0xea, 0x22, 0x03, 0xc9, 0x56,
+ 0x27, 0x6f, 0x36, 0xc7,
+};
+static const struct drbg_kat_pr_true kat3831_t = {
+ 5, kat3831_entropyin, kat3831_nonce, kat3831_persstr,
+ kat3831_entropyinpr1, kat3831_addinpr1, kat3831_entropyinpr2,
+ kat3831_addinpr2, kat3831_retbits
+};
+static const struct drbg_kat kat3831 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3831_t
+};
+
+static const unsigned char kat3832_entropyin[] = {
+ 0xee, 0xbd, 0x8f, 0x78, 0x7b, 0x46, 0x5e, 0x82, 0xd6, 0x45, 0xee, 0x25,
+ 0x1e, 0xf4, 0x9a, 0xb2, 0x43, 0x2a, 0x8b, 0x91, 0x8f, 0x4b, 0x7b, 0x98,
+ 0xac, 0x6c, 0xd9, 0xfb, 0x91, 0x33, 0x13, 0x10,
+};
+static const unsigned char kat3832_nonce[] = {0};
+static const unsigned char kat3832_persstr[] = {
+ 0xfa, 0xeb, 0x92, 0xfc, 0x4a, 0xe0, 0x73, 0xa7, 0x04, 0x8d, 0x31, 0xce,
+ 0xa5, 0x17, 0xda, 0x5e, 0x35, 0x08, 0x00, 0x1d, 0x37, 0xbb, 0xb6, 0x25,
+ 0x8b, 0xb7, 0x8f, 0x69, 0x11, 0x32, 0x67, 0x01,
+};
+static const unsigned char kat3832_entropyinpr1[] = {
+ 0x58, 0xc4, 0x0d, 0x6e, 0x41, 0xa1, 0x78, 0xad, 0x01, 0xa0, 0xd1, 0xf3,
+ 0x9d, 0x57, 0xe1, 0xcc, 0x85, 0x15, 0x33, 0xb0, 0xc8, 0xb3, 0xbc, 0xd5,
+ 0x81, 0x30, 0x79, 0x28, 0x7f, 0x98, 0x56, 0xe2,
+};
+static const unsigned char kat3832_addinpr1[] = {
+ 0xd7, 0x6b, 0x08, 0x6f, 0xe5, 0x9e, 0x22, 0x64, 0x34, 0x13, 0x47, 0x34,
+ 0x60, 0xfe, 0xa2, 0xed, 0x47, 0x10, 0xbf, 0x18, 0xd4, 0xe1, 0x8a, 0xcb,
+ 0xf5, 0x16, 0xa0, 0x3c, 0x90, 0xb4, 0x12, 0x94,
+};
+static const unsigned char kat3832_entropyinpr2[] = {
+ 0x40, 0x69, 0xc9, 0x09, 0x7c, 0x30, 0x09, 0xc6, 0xdc, 0x7a, 0x04, 0x0c,
+ 0x59, 0x49, 0x1a, 0xe0, 0x83, 0xcb, 0x26, 0x3b, 0x06, 0x3d, 0x26, 0x76,
+ 0xab, 0x43, 0xbd, 0x03, 0x9a, 0x78, 0xd3, 0xfb,
+};
+static const unsigned char kat3832_addinpr2[] = {
+ 0x29, 0x5d, 0x0d, 0x82, 0x8b, 0x6e, 0x6e, 0xff, 0xde, 0x05, 0xab, 0x3b,
+ 0xc9, 0xce, 0x58, 0x4e, 0x4e, 0x45, 0xcf, 0x9b, 0xa5, 0x02, 0x5f, 0x39,
+ 0x0b, 0x70, 0x9e, 0x37, 0x12, 0x43, 0x4c, 0x1c,
+};
+static const unsigned char kat3832_retbits[] = {
+ 0x26, 0x08, 0x75, 0x47, 0xae, 0x8a, 0x97, 0x91, 0x89, 0x2e, 0xcc, 0xdd,
+ 0xb6, 0x46, 0x77, 0x5c, 0x6d, 0xe5, 0x5f, 0xb1, 0x74, 0x8f, 0xb5, 0x73,
+ 0x7f, 0x56, 0x4a, 0x26, 0xeb, 0x6b, 0xca, 0x58, 0xdc, 0x80, 0xf8, 0xb8,
+ 0xf4, 0x2c, 0xdf, 0x91, 0x8c, 0x35, 0xae, 0x0f, 0x9a, 0xed, 0x50, 0x8a,
+ 0xfa, 0x01, 0x6c, 0x49, 0xdf, 0xd4, 0x10, 0x86, 0x0b, 0x70, 0x24, 0xc5,
+ 0x1e, 0xae, 0xff, 0x83,
+};
+static const struct drbg_kat_pr_true kat3832_t = {
+ 6, kat3832_entropyin, kat3832_nonce, kat3832_persstr,
+ kat3832_entropyinpr1, kat3832_addinpr1, kat3832_entropyinpr2,
+ kat3832_addinpr2, kat3832_retbits
+};
+static const struct drbg_kat kat3832 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3832_t
+};
+
+static const unsigned char kat3833_entropyin[] = {
+ 0xdb, 0x92, 0x1a, 0x90, 0x5c, 0x58, 0xc8, 0x45, 0x33, 0x3a, 0x52, 0xf0,
+ 0x8c, 0xae, 0xa9, 0x7d, 0x47, 0x19, 0x0e, 0x91, 0x90, 0x25, 0x32, 0xf3,
+ 0x6d, 0xdc, 0x87, 0x93, 0x89, 0x30, 0xd8, 0xcb,
+};
+static const unsigned char kat3833_nonce[] = {0};
+static const unsigned char kat3833_persstr[] = {
+ 0xc6, 0x32, 0x56, 0xf1, 0xc8, 0xf9, 0xaa, 0xa7, 0x53, 0x56, 0xe9, 0xc7,
+ 0x10, 0x2e, 0xc9, 0x60, 0xf0, 0x75, 0x45, 0xa1, 0xb9, 0x80, 0x25, 0x94,
+ 0x3b, 0x78, 0x83, 0xd0, 0x4a, 0xd6, 0x36, 0xc8,
+};
+static const unsigned char kat3833_entropyinpr1[] = {
+ 0x4b, 0xe8, 0x3a, 0xb9, 0xf7, 0xcd, 0x8e, 0x06, 0xcb, 0x76, 0xc5, 0x25,
+ 0x80, 0xe2, 0x3c, 0xeb, 0xa7, 0x0e, 0x99, 0xa8, 0xd9, 0x8c, 0xdb, 0x00,
+ 0x6b, 0xed, 0xe2, 0x2d, 0xc8, 0x0d, 0xfe, 0xb4,
+};
+static const unsigned char kat3833_addinpr1[] = {
+ 0x44, 0xbc, 0xa1, 0xbe, 0x19, 0xc6, 0xa5, 0x21, 0x1f, 0xc9, 0xe0, 0xa1,
+ 0x9e, 0xa4, 0x29, 0xbe, 0xef, 0x23, 0x5d, 0x24, 0xf5, 0xf5, 0x13, 0xfc,
+ 0xcd, 0xbd, 0x8d, 0x76, 0xf1, 0xd6, 0xbc, 0x31,
+};
+static const unsigned char kat3833_entropyinpr2[] = {
+ 0x02, 0xa4, 0x82, 0xfe, 0x9c, 0x1e, 0xdd, 0x21, 0xcb, 0x1e, 0xf2, 0x4c,
+ 0xcb, 0xa2, 0x65, 0x08, 0xa2, 0x1a, 0x0a, 0x15, 0xdc, 0x53, 0xd1, 0x04,
+ 0x35, 0x2c, 0x9d, 0x38, 0x66, 0x98, 0x4e, 0x4e,
+};
+static const unsigned char kat3833_addinpr2[] = {
+ 0x7e, 0x03, 0x78, 0xd4, 0x75, 0x19, 0x1a, 0x40, 0x5f, 0x0f, 0x6f, 0x41,
+ 0x1d, 0x8e, 0x5b, 0xa8, 0xa8, 0xc7, 0x56, 0x79, 0xdc, 0x91, 0x8a, 0x39,
+ 0x03, 0x90, 0xdd, 0xd5, 0x84, 0x78, 0xd6, 0xf0,
+};
+static const unsigned char kat3833_retbits[] = {
+ 0x7d, 0xf6, 0xcf, 0x44, 0x2e, 0xe4, 0x2a, 0xc3, 0x46, 0x98, 0x07, 0xd0,
+ 0x1e, 0xb9, 0x50, 0x04, 0xda, 0xcd, 0xaa, 0xd2, 0x0d, 0x26, 0xbd, 0x66,
+ 0x0f, 0xb7, 0xfb, 0x2b, 0x45, 0xc4, 0x70, 0xf0, 0xe1, 0xc7, 0x40, 0xe1,
+ 0x57, 0xb7, 0x2f, 0x69, 0xaa, 0xc6, 0x05, 0x8f, 0x39, 0x1f, 0x1a, 0xed,
+ 0x37, 0x8a, 0x53, 0x96, 0x35, 0x6a, 0xea, 0x08, 0x0e, 0x42, 0x09, 0x8c,
+ 0xba, 0x24, 0xb8, 0x2f,
+};
+static const struct drbg_kat_pr_true kat3833_t = {
+ 7, kat3833_entropyin, kat3833_nonce, kat3833_persstr,
+ kat3833_entropyinpr1, kat3833_addinpr1, kat3833_entropyinpr2,
+ kat3833_addinpr2, kat3833_retbits
+};
+static const struct drbg_kat kat3833 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3833_t
+};
+
+static const unsigned char kat3834_entropyin[] = {
+ 0x56, 0x7d, 0x90, 0x54, 0x42, 0x30, 0xc7, 0xdf, 0x90, 0x00, 0x54, 0xdc,
+ 0xfd, 0x65, 0x43, 0xa8, 0xf1, 0x0b, 0xc3, 0x5f, 0x4d, 0x71, 0xcb, 0x9b,
+ 0x57, 0x39, 0xc9, 0x28, 0xc6, 0x4f, 0xe3, 0x64,
+};
+static const unsigned char kat3834_nonce[] = {0};
+static const unsigned char kat3834_persstr[] = {
+ 0xaa, 0x9a, 0xfe, 0x72, 0x28, 0x34, 0x8f, 0xaa, 0x3e, 0x81, 0x75, 0xbe,
+ 0x71, 0xec, 0xf3, 0x1a, 0xdf, 0x32, 0xb5, 0x86, 0x0f, 0xdf, 0x4f, 0x68,
+ 0xc9, 0xa0, 0x30, 0x05, 0xea, 0x13, 0x08, 0xa6,
+};
+static const unsigned char kat3834_entropyinpr1[] = {
+ 0x62, 0x0d, 0x7f, 0x08, 0xe9, 0x03, 0x65, 0xd7, 0xb2, 0x18, 0xbb, 0xf9,
+ 0x50, 0xfd, 0x33, 0x0c, 0xb3, 0x12, 0x91, 0x9f, 0xbc, 0xb7, 0x19, 0xa5,
+ 0x07, 0x32, 0x1c, 0x90, 0x3b, 0x11, 0xe0, 0x01,
+};
+static const unsigned char kat3834_addinpr1[] = {
+ 0x30, 0x86, 0x6b, 0x52, 0xc5, 0x89, 0x09, 0x2d, 0x64, 0xd4, 0x2e, 0x99,
+ 0x03, 0x32, 0x5b, 0xd6, 0x22, 0x74, 0x1b, 0xa2, 0x11, 0x04, 0x94, 0x73,
+ 0xb0, 0x08, 0xe0, 0x15, 0xa4, 0x03, 0x48, 0x46,
+};
+static const unsigned char kat3834_entropyinpr2[] = {
+ 0x1b, 0x09, 0x91, 0x4d, 0xd7, 0x13, 0x6b, 0xe0, 0x92, 0x29, 0x00, 0xb5,
+ 0x55, 0x98, 0x01, 0x03, 0xdc, 0x24, 0xa2, 0x86, 0xd1, 0xe4, 0xa5, 0x18,
+ 0x58, 0xa5, 0xaf, 0x49, 0x03, 0x17, 0x19, 0xdb,
+};
+static const unsigned char kat3834_addinpr2[] = {
+ 0xa5, 0xc9, 0x50, 0xc0, 0xbb, 0x9c, 0x3e, 0x4a, 0x18, 0x9d, 0xef, 0x6f,
+ 0xa0, 0xfa, 0xf2, 0xd2, 0x10, 0xe0, 0xea, 0x5b, 0x27, 0x19, 0xac, 0x50,
+ 0xe6, 0x29, 0x86, 0x53, 0x53, 0x4c, 0x8a, 0xe1,
+};
+static const unsigned char kat3834_retbits[] = {
+ 0xdf, 0xcb, 0xf4, 0xf9, 0x8e, 0xce, 0x17, 0xc7, 0x89, 0xcc, 0x71, 0x36,
+ 0xc6, 0xcd, 0x3d, 0x62, 0xe5, 0xcd, 0xee, 0x1a, 0xb7, 0x1c, 0x0f, 0x68,
+ 0xf4, 0xa6, 0x3d, 0x62, 0x3b, 0x28, 0xd4, 0xf0, 0xf0, 0x19, 0x60, 0x6c,
+ 0x5f, 0x42, 0xac, 0x19, 0xeb, 0x21, 0xe8, 0xea, 0xc5, 0x87, 0xb1, 0x35,
+ 0x49, 0x6a, 0xe3, 0x4d, 0x0d, 0x55, 0x89, 0x8e, 0xce, 0x9c, 0xfa, 0x6c,
+ 0x93, 0xa4, 0xd1, 0xdc,
+};
+static const struct drbg_kat_pr_true kat3834_t = {
+ 8, kat3834_entropyin, kat3834_nonce, kat3834_persstr,
+ kat3834_entropyinpr1, kat3834_addinpr1, kat3834_entropyinpr2,
+ kat3834_addinpr2, kat3834_retbits
+};
+static const struct drbg_kat kat3834 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3834_t
+};
+
+static const unsigned char kat3835_entropyin[] = {
+ 0xc8, 0x8d, 0xdc, 0xbd, 0x3a, 0x90, 0xe7, 0x69, 0x0b, 0x34, 0x4d, 0x47,
+ 0x3f, 0x74, 0x50, 0xf9, 0xc2, 0xd6, 0x7f, 0xb1, 0xcd, 0x16, 0x2d, 0x0d,
+ 0x9a, 0x0b, 0xeb, 0xa5, 0xdd, 0x64, 0x29, 0xcf,
+};
+static const unsigned char kat3835_nonce[] = {0};
+static const unsigned char kat3835_persstr[] = {
+ 0x5a, 0xa9, 0x67, 0x83, 0x85, 0x6e, 0x22, 0x9c, 0xe7, 0x15, 0x63, 0x7c,
+ 0x7c, 0x9d, 0xe4, 0x02, 0xcb, 0x29, 0x78, 0xf8, 0x42, 0xcb, 0xe3, 0x05,
+ 0x00, 0x14, 0x7c, 0x95, 0x40, 0x47, 0x07, 0x92,
+};
+static const unsigned char kat3835_entropyinpr1[] = {
+ 0x23, 0x81, 0x02, 0xd7, 0x59, 0xe0, 0x17, 0xf8, 0xab, 0xf3, 0x73, 0x58,
+ 0x38, 0x4a, 0xd4, 0x9c, 0xba, 0xab, 0x74, 0xef, 0x38, 0x85, 0xc0, 0xc0,
+ 0x07, 0xfb, 0xce, 0x23, 0x34, 0x88, 0x36, 0xcf,
+};
+static const unsigned char kat3835_addinpr1[] = {
+ 0x05, 0x7b, 0x19, 0x6c, 0x2c, 0x86, 0xb7, 0x1e, 0x41, 0xee, 0x58, 0x89,
+ 0x5a, 0x74, 0x0d, 0x61, 0x97, 0x22, 0x39, 0x5d, 0x16, 0xbe, 0x13, 0x23,
+ 0x86, 0x92, 0x72, 0xf6, 0xf1, 0x07, 0x69, 0x2f,
+};
+static const unsigned char kat3835_entropyinpr2[] = {
+ 0xe9, 0xb8, 0x1b, 0x2a, 0x76, 0x77, 0x26, 0xa6, 0x71, 0xec, 0xc7, 0xf3,
+ 0xa2, 0xa6, 0x86, 0x7a, 0xff, 0x7b, 0x96, 0x60, 0x64, 0xb3, 0x16, 0x64,
+ 0x27, 0x3c, 0x02, 0xe8, 0x60, 0x49, 0x15, 0xa0,
+};
+static const unsigned char kat3835_addinpr2[] = {
+ 0xc8, 0x5a, 0xf1, 0x7f, 0x50, 0x26, 0x4f, 0xb2, 0xda, 0xe7, 0x0a, 0x3e,
+ 0x52, 0xff, 0xcd, 0xb0, 0xf3, 0xf8, 0x5d, 0x13, 0xbf, 0x04, 0x72, 0x14,
+ 0x91, 0x36, 0xf1, 0x51, 0x71, 0xc0, 0x9d, 0xca,
+};
+static const unsigned char kat3835_retbits[] = {
+ 0x14, 0x76, 0x1b, 0x40, 0xc7, 0x87, 0x42, 0x5e, 0x2e, 0xdf, 0x31, 0x6d,
+ 0x4b, 0x2d, 0xa5, 0xaa, 0x7b, 0xf9, 0x0e, 0xc8, 0x7f, 0x1e, 0x12, 0x40,
+ 0x4f, 0xf1, 0xe8, 0x69, 0x09, 0x34, 0x2e, 0xa5, 0x4e, 0x64, 0x7e, 0x52,
+ 0x9c, 0xe3, 0xe4, 0x7a, 0x87, 0x69, 0x07, 0xdc, 0x9a, 0xb7, 0xdf, 0x29,
+ 0x85, 0xd5, 0xd0, 0xfb, 0xb5, 0x41, 0xa2, 0x4a, 0xbb, 0x60, 0x3c, 0x1b,
+ 0xda, 0x90, 0xa9, 0x8e,
+};
+static const struct drbg_kat_pr_true kat3835_t = {
+ 9, kat3835_entropyin, kat3835_nonce, kat3835_persstr,
+ kat3835_entropyinpr1, kat3835_addinpr1, kat3835_entropyinpr2,
+ kat3835_addinpr2, kat3835_retbits
+};
+static const struct drbg_kat kat3835 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3835_t
+};
+
+static const unsigned char kat3836_entropyin[] = {
+ 0x7d, 0x45, 0xc5, 0x7c, 0x97, 0x74, 0x42, 0xbf, 0xd9, 0x40, 0xc1, 0x14,
+ 0x5b, 0x15, 0x6b, 0xf9, 0x3a, 0xb4, 0xa4, 0x8a, 0x49, 0x50, 0x9d, 0x08,
+ 0xc1, 0x9a, 0x97, 0xb1, 0x23, 0x33, 0xf1, 0x95,
+};
+static const unsigned char kat3836_nonce[] = {0};
+static const unsigned char kat3836_persstr[] = {
+ 0x0f, 0x85, 0x88, 0x5f, 0x09, 0xe0, 0x33, 0xd9, 0x27, 0x29, 0x5f, 0x17,
+ 0xe3, 0x38, 0xfd, 0x23, 0xa7, 0xf2, 0x71, 0x29, 0x86, 0x22, 0x74, 0x16,
+ 0xfa, 0xa0, 0xf4, 0x47, 0xf5, 0x66, 0xc8, 0x7d,
+};
+static const unsigned char kat3836_entropyinpr1[] = {
+ 0x48, 0x56, 0x94, 0x5f, 0xb0, 0x87, 0xf0, 0xa8, 0x76, 0xa2, 0xcf, 0xc2,
+ 0x66, 0x46, 0x18, 0x63, 0xad, 0x56, 0x11, 0xa2, 0x60, 0xaa, 0xa6, 0x19,
+ 0x14, 0x58, 0x83, 0xf5, 0xf1, 0x88, 0x2f, 0x4b,
+};
+static const unsigned char kat3836_addinpr1[] = {
+ 0xec, 0xef, 0x28, 0x0b, 0x94, 0xfb, 0x1e, 0xca, 0x94, 0x79, 0x41, 0x53,
+ 0x4f, 0xe6, 0xd9, 0xee, 0x1d, 0x7c, 0xe8, 0x92, 0x1a, 0xd5, 0xcf, 0x76,
+ 0xc7, 0x2a, 0x80, 0xb5, 0xd5, 0x71, 0x68, 0x6b,
+};
+static const unsigned char kat3836_entropyinpr2[] = {
+ 0x02, 0x20, 0x01, 0xc4, 0x25, 0xbb, 0x74, 0x65, 0x3d, 0xcc, 0x96, 0x8f,
+ 0x79, 0xb6, 0xd1, 0x42, 0x47, 0x3f, 0xfc, 0x45, 0x29, 0x4c, 0xcd, 0x08,
+ 0x82, 0x19, 0x25, 0xfe, 0x0e, 0x7b, 0x59, 0xf3,
+};
+static const unsigned char kat3836_addinpr2[] = {
+ 0x96, 0x40, 0xc1, 0xef, 0x76, 0x6c, 0x6d, 0xdf, 0x7e, 0x28, 0x37, 0x66,
+ 0xcc, 0xeb, 0x02, 0x19, 0xb4, 0x4c, 0xd4, 0x06, 0x1f, 0x2c, 0x21, 0x5c,
+ 0x38, 0xa2, 0xbd, 0xec, 0xda, 0x74, 0xe7, 0x68,
+};
+static const unsigned char kat3836_retbits[] = {
+ 0x97, 0x47, 0x67, 0x8c, 0x0b, 0xfc, 0xe8, 0x24, 0x48, 0x44, 0x81, 0x48,
+ 0x3f, 0xbf, 0xb3, 0x6e, 0x52, 0xb4, 0x2b, 0xb6, 0x1c, 0x7b, 0x9e, 0x81,
+ 0xb8, 0x64, 0x6c, 0xb9, 0x61, 0xa5, 0xe2, 0x33, 0x73, 0xcd, 0x1b, 0x38,
+ 0x11, 0x73, 0xe8, 0x98, 0xf5, 0x98, 0x5d, 0x6b, 0x88, 0x07, 0xe8, 0x54,
+ 0xaf, 0xb7, 0xf9, 0x90, 0x8b, 0x86, 0xb5, 0x9f, 0x10, 0xab, 0x7e, 0x5f,
+ 0x40, 0xd9, 0x95, 0xbf,
+};
+static const struct drbg_kat_pr_true kat3836_t = {
+ 10, kat3836_entropyin, kat3836_nonce, kat3836_persstr,
+ kat3836_entropyinpr1, kat3836_addinpr1, kat3836_entropyinpr2,
+ kat3836_addinpr2, kat3836_retbits
+};
+static const struct drbg_kat kat3836 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3836_t
+};
+
+static const unsigned char kat3837_entropyin[] = {
+ 0xfa, 0xce, 0xb4, 0x77, 0x25, 0x5e, 0x51, 0x95, 0x1a, 0xdf, 0xd7, 0xed,
+ 0x0e, 0xb9, 0x9e, 0x39, 0x1d, 0xc7, 0x77, 0x85, 0xea, 0x7c, 0x03, 0xa1,
+ 0x50, 0x04, 0x7f, 0xf7, 0x36, 0x38, 0x2e, 0x86,
+};
+static const unsigned char kat3837_nonce[] = {0};
+static const unsigned char kat3837_persstr[] = {
+ 0xee, 0xd0, 0xf3, 0xa4, 0xc9, 0xb7, 0xf1, 0x2e, 0x46, 0xdf, 0xa7, 0x75,
+ 0xec, 0xf8, 0x48, 0xd9, 0x63, 0xa1, 0xaf, 0x09, 0x7f, 0xa7, 0x9c, 0x9d,
+ 0x31, 0xd3, 0x46, 0xd7, 0x0b, 0xce, 0xcc, 0x44,
+};
+static const unsigned char kat3837_entropyinpr1[] = {
+ 0x23, 0x3d, 0x42, 0xaa, 0x4a, 0x3a, 0x00, 0xb1, 0x1b, 0x53, 0xbc, 0xab,
+ 0x65, 0x74, 0x9b, 0x8f, 0xc4, 0xb5, 0xdd, 0x7e, 0x63, 0x20, 0x73, 0x2e,
+ 0xc5, 0x36, 0x54, 0xc3, 0xa8, 0x97, 0x4f, 0xed,
+};
+static const unsigned char kat3837_addinpr1[] = {
+ 0xab, 0x58, 0x91, 0xd6, 0x6a, 0x28, 0x41, 0xd2, 0xdf, 0x0f, 0xb6, 0x6e,
+ 0xa7, 0x93, 0xf2, 0x50, 0x69, 0xb3, 0xd3, 0xaf, 0x08, 0xa5, 0xe0, 0x76,
+ 0x46, 0xbd, 0x4b, 0x1c, 0x53, 0xe4, 0x1c, 0xc6,
+};
+static const unsigned char kat3837_entropyinpr2[] = {
+ 0xda, 0xc6, 0xcb, 0x6b, 0x3c, 0x87, 0x11, 0xf6, 0x25, 0x3d, 0x0f, 0xdd,
+ 0x20, 0xdd, 0xc7, 0x40, 0xf8, 0x60, 0x28, 0x7a, 0x9f, 0x5f, 0xca, 0x78,
+ 0xe3, 0x62, 0xb5, 0x83, 0xa7, 0x75, 0x3f, 0x38,
+};
+static const unsigned char kat3837_addinpr2[] = {
+ 0x33, 0x2f, 0xa3, 0x94, 0x0a, 0xdb, 0x21, 0x7e, 0x5e, 0x66, 0xb1, 0xe7,
+ 0xdc, 0xb0, 0xe1, 0x5f, 0x06, 0x55, 0x93, 0x73, 0xae, 0xd4, 0xb7, 0x5b,
+ 0xf6, 0xbb, 0x5b, 0x78, 0xd0, 0x17, 0xba, 0x6f,
+};
+static const unsigned char kat3837_retbits[] = {
+ 0x77, 0xb2, 0xe6, 0xd1, 0x9e, 0xee, 0x7e, 0x24, 0x56, 0xe3, 0x60, 0x14,
+ 0xc4, 0xe9, 0xd2, 0x37, 0x71, 0xcd, 0xaf, 0x6d, 0x17, 0x3d, 0xe5, 0xe7,
+ 0xfd, 0x5e, 0xb5, 0xc2, 0x50, 0x78, 0x56, 0xd2, 0x7c, 0x45, 0x4e, 0x82,
+ 0x3b, 0x98, 0x42, 0xda, 0xd1, 0x57, 0x81, 0x6e, 0x03, 0xe2, 0x2f, 0x87,
+ 0x28, 0xce, 0xe6, 0xb0, 0xfd, 0x2e, 0xf1, 0x4f, 0xd4, 0x24, 0x9e, 0x83,
+ 0x6f, 0x32, 0xff, 0xa9,
+};
+static const struct drbg_kat_pr_true kat3837_t = {
+ 11, kat3837_entropyin, kat3837_nonce, kat3837_persstr,
+ kat3837_entropyinpr1, kat3837_addinpr1, kat3837_entropyinpr2,
+ kat3837_addinpr2, kat3837_retbits
+};
+static const struct drbg_kat kat3837 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3837_t
+};
+
+static const unsigned char kat3838_entropyin[] = {
+ 0xbe, 0x34, 0xf7, 0x6f, 0xf2, 0x57, 0x9a, 0xee, 0xa3, 0xa8, 0xe3, 0x34,
+ 0x42, 0x4c, 0xf6, 0xfd, 0x21, 0x2a, 0x35, 0x6e, 0x60, 0x51, 0x9e, 0xbe,
+ 0x03, 0xe5, 0x8e, 0xa0, 0x70, 0x20, 0x52, 0xa3,
+};
+static const unsigned char kat3838_nonce[] = {0};
+static const unsigned char kat3838_persstr[] = {
+ 0x67, 0xda, 0xbd, 0x1f, 0x3a, 0x54, 0x38, 0x36, 0x31, 0xf7, 0xaa, 0xfa,
+ 0xbe, 0x44, 0x60, 0x25, 0xae, 0xf8, 0xde, 0x21, 0xc9, 0xf2, 0x00, 0xf1,
+ 0x54, 0x23, 0xbb, 0xd9, 0xb3, 0xbb, 0xcf, 0x02,
+};
+static const unsigned char kat3838_entropyinpr1[] = {
+ 0x49, 0xcd, 0x2b, 0x74, 0xee, 0xea, 0x27, 0x52, 0x3a, 0xe6, 0x13, 0xe1,
+ 0xbf, 0x00, 0x03, 0x39, 0xfc, 0xbe, 0xa5, 0xd9, 0x12, 0x33, 0x3d, 0x83,
+ 0xcf, 0x41, 0x6c, 0xb0, 0xcf, 0xf7, 0x4a, 0x5d,
+};
+static const unsigned char kat3838_addinpr1[] = {
+ 0xff, 0x4e, 0xb8, 0xc0, 0x0d, 0xec, 0x61, 0xf3, 0xe3, 0xfd, 0x1b, 0x26,
+ 0x08, 0x31, 0x90, 0x45, 0x5f, 0x89, 0x31, 0x21, 0xfb, 0x97, 0x85, 0x53,
+ 0x2f, 0xa3, 0x3c, 0x1f, 0xe3, 0x74, 0xbb, 0xb1,
+};
+static const unsigned char kat3838_entropyinpr2[] = {
+ 0x26, 0xd6, 0x5b, 0x73, 0xfe, 0xe9, 0xe6, 0xb2, 0x6e, 0x3f, 0xba, 0x4e,
+ 0xc5, 0xbf, 0xc0, 0x8f, 0xa0, 0x77, 0xf9, 0xc4, 0x75, 0xff, 0x68, 0xc6,
+ 0x70, 0x7f, 0x48, 0x76, 0xc8, 0x21, 0xbc, 0x9e,
+};
+static const unsigned char kat3838_addinpr2[] = {
+ 0xa0, 0xf1, 0x8d, 0xdd, 0x51, 0x78, 0x65, 0xd2, 0x63, 0x03, 0x21, 0xa4,
+ 0x10, 0x84, 0xd7, 0x9d, 0xbd, 0x20, 0x25, 0x5d, 0xba, 0x5b, 0x86, 0x91,
+ 0x63, 0x2e, 0x85, 0xde, 0xb3, 0xe0, 0xc0, 0x72,
+};
+static const unsigned char kat3838_retbits[] = {
+ 0x49, 0xcd, 0xce, 0xc1, 0xd6, 0x5b, 0x0e, 0x03, 0xac, 0x4d, 0x19, 0x21,
+ 0x6e, 0xa4, 0x5a, 0xc3, 0x1f, 0x76, 0xba, 0xc7, 0xd6, 0x30, 0xe1, 0x01,
+ 0x8e, 0x7a, 0x5b, 0x9d, 0x81, 0xff, 0x20, 0xac, 0x15, 0x91, 0x10, 0xa1,
+ 0xf9, 0x3d, 0x36, 0x82, 0x05, 0x2a, 0x07, 0x93, 0xe1, 0x92, 0x3e, 0x59,
+ 0xe5, 0x03, 0xde, 0xfb, 0xbe, 0xd3, 0x11, 0x86, 0x82, 0xd7, 0x57, 0xd0,
+ 0x22, 0x27, 0xc4, 0xbc,
+};
+static const struct drbg_kat_pr_true kat3838_t = {
+ 12, kat3838_entropyin, kat3838_nonce, kat3838_persstr,
+ kat3838_entropyinpr1, kat3838_addinpr1, kat3838_entropyinpr2,
+ kat3838_addinpr2, kat3838_retbits
+};
+static const struct drbg_kat kat3838 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3838_t
+};
+
+static const unsigned char kat3839_entropyin[] = {
+ 0x81, 0xc4, 0x7b, 0x1a, 0xfb, 0x87, 0x6f, 0x71, 0x15, 0x9b, 0x3c, 0x7d,
+ 0xa5, 0x87, 0x90, 0x99, 0xe3, 0x6f, 0x72, 0xcd, 0x39, 0x0b, 0x5f, 0x91,
+ 0x68, 0x31, 0xfb, 0x7d, 0x9a, 0x33, 0xcc, 0x8b,
+};
+static const unsigned char kat3839_nonce[] = {0};
+static const unsigned char kat3839_persstr[] = {
+ 0x05, 0xa2, 0x4c, 0x4e, 0xef, 0x87, 0x2e, 0xcc, 0x59, 0x09, 0xe4, 0x64,
+ 0xe0, 0xb9, 0xfd, 0x6b, 0x17, 0x1a, 0x76, 0x9b, 0x5c, 0x76, 0xa0, 0x27,
+ 0x11, 0x4a, 0x0d, 0x11, 0xb3, 0x02, 0xc3, 0xa8,
+};
+static const unsigned char kat3839_entropyinpr1[] = {
+ 0xb6, 0x83, 0x32, 0xd2, 0xe1, 0x60, 0x00, 0x22, 0xf3, 0x3e, 0x3d, 0xdb,
+ 0x8b, 0x7a, 0x58, 0x46, 0xbb, 0xde, 0x26, 0xb0, 0xeb, 0x12, 0xc6, 0x3b,
+ 0x39, 0x4d, 0xd4, 0xdf, 0xc1, 0xef, 0x18, 0x7a,
+};
+static const unsigned char kat3839_addinpr1[] = {
+ 0xa6, 0x6f, 0xa6, 0x27, 0x7d, 0x83, 0x96, 0xd4, 0x98, 0xac, 0x82, 0x51,
+ 0x8a, 0xae, 0x10, 0xe6, 0x7d, 0x96, 0x1e, 0x67, 0x9e, 0x5a, 0x89, 0xef,
+ 0xd8, 0x18, 0xf0, 0x81, 0x1f, 0x4a, 0x28, 0xe6,
+};
+static const unsigned char kat3839_entropyinpr2[] = {
+ 0xc3, 0x92, 0x04, 0xb1, 0xf0, 0x56, 0x23, 0x4d, 0x37, 0xe4, 0x9d, 0xfe,
+ 0x40, 0x63, 0x18, 0xcf, 0x41, 0x77, 0xcc, 0xe6, 0xd1, 0x72, 0xc3, 0xf8,
+ 0x2a, 0xdd, 0x7f, 0x8a, 0x2f, 0x9b, 0xd3, 0x55,
+};
+static const unsigned char kat3839_addinpr2[] = {
+ 0xad, 0xac, 0xff, 0xc9, 0x45, 0xa6, 0x21, 0xe6, 0x18, 0x5d, 0x81, 0xc2,
+ 0x8e, 0xe0, 0xc4, 0xf7, 0x1f, 0x5e, 0xcf, 0xb1, 0x12, 0x2b, 0x43, 0x32,
+ 0x1c, 0x77, 0x78, 0x25, 0x93, 0x75, 0xcc, 0x9f,
+};
+static const unsigned char kat3839_retbits[] = {
+ 0x44, 0xc5, 0x2b, 0x3b, 0xde, 0x4f, 0x0e, 0xad, 0x73, 0x3d, 0x15, 0x49,
+ 0x0d, 0x6f, 0xd9, 0xe2, 0xe9, 0xf7, 0x10, 0x52, 0x56, 0x3a, 0x62, 0xb5,
+ 0xa1, 0x3f, 0x87, 0x10, 0x39, 0xc7, 0xa6, 0x46, 0x91, 0x63, 0x6b, 0x7c,
+ 0x0b, 0x4a, 0xa9, 0xe8, 0xa5, 0x27, 0xc7, 0x15, 0x16, 0xce, 0x9d, 0x9c,
+ 0x96, 0x92, 0xd4, 0x3e, 0x84, 0x5d, 0x38, 0x4d, 0xaa, 0x17, 0x2f, 0xf5,
+ 0x41, 0xe7, 0x99, 0x6b,
+};
+static const struct drbg_kat_pr_true kat3839_t = {
+ 13, kat3839_entropyin, kat3839_nonce, kat3839_persstr,
+ kat3839_entropyinpr1, kat3839_addinpr1, kat3839_entropyinpr2,
+ kat3839_addinpr2, kat3839_retbits
+};
+static const struct drbg_kat kat3839 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3839_t
+};
+
+static const unsigned char kat3840_entropyin[] = {
+ 0x08, 0x5d, 0xaa, 0xc1, 0x2b, 0x24, 0x01, 0xe3, 0xff, 0x88, 0x4f, 0x03,
+ 0xbf, 0xf7, 0x07, 0x63, 0xc3, 0x8e, 0xae, 0x65, 0xbd, 0x24, 0xb5, 0x73,
+ 0x3c, 0x6b, 0xfd, 0x54, 0x50, 0x11, 0xc6, 0x9e,
+};
+static const unsigned char kat3840_nonce[] = {0};
+static const unsigned char kat3840_persstr[] = {
+ 0x6a, 0x9f, 0x2e, 0x31, 0x42, 0xa2, 0x80, 0x82, 0x32, 0xc3, 0xfe, 0xd7,
+ 0xef, 0xd3, 0x34, 0x36, 0xa5, 0xa4, 0xd9, 0xef, 0x14, 0x81, 0x56, 0x38,
+ 0xc6, 0x5d, 0x01, 0x2e, 0x11, 0x47, 0x0c, 0xc8,
+};
+static const unsigned char kat3840_entropyinpr1[] = {
+ 0xdb, 0x22, 0xd9, 0xa3, 0xf5, 0x3f, 0xc7, 0x39, 0xd3, 0x02, 0x55, 0xa6,
+ 0x61, 0x7c, 0x98, 0x62, 0x54, 0x15, 0x3c, 0x51, 0x9c, 0x34, 0xe7, 0x9d,
+ 0x2a, 0x6e, 0x87, 0x62, 0xa0, 0x69, 0x09, 0xb0,
+};
+static const unsigned char kat3840_addinpr1[] = {
+ 0x6d, 0x18, 0xd7, 0xd0, 0xed, 0x67, 0x98, 0xbb, 0x4f, 0xd7, 0xfa, 0xb8,
+ 0xd2, 0xab, 0x6d, 0x2d, 0x72, 0x99, 0x77, 0x10, 0x70, 0x06, 0x61, 0x91,
+ 0x3d, 0x05, 0xfc, 0xbc, 0x5d, 0x6d, 0x86, 0x52,
+};
+static const unsigned char kat3840_entropyinpr2[] = {
+ 0xa4, 0x34, 0x1a, 0xe5, 0x15, 0x56, 0x01, 0xaf, 0x7c, 0xcf, 0xd9, 0xbc,
+ 0x57, 0x39, 0x68, 0xf9, 0x9f, 0xf8, 0x2a, 0xe2, 0x60, 0x5a, 0x46, 0x2a,
+ 0xf7, 0xe6, 0xed, 0x6f, 0xd5, 0xf2, 0xca, 0xb6,
+};
+static const unsigned char kat3840_addinpr2[] = {
+ 0xb4, 0x4a, 0x49, 0x9f, 0xdf, 0x93, 0x30, 0x17, 0x0e, 0xbe, 0xde, 0x64,
+ 0xcf, 0x8f, 0xb1, 0x9f, 0x4a, 0x83, 0x17, 0x59, 0x6d, 0x80, 0xd8, 0xf9,
+ 0xc9, 0xd1, 0x00, 0x93, 0x22, 0x98, 0xe4, 0xae,
+};
+static const unsigned char kat3840_retbits[] = {
+ 0xde, 0x65, 0x41, 0xda, 0xe0, 0x91, 0x37, 0xdf, 0xe1, 0x7f, 0xa3, 0xbc,
+ 0x78, 0x5c, 0x8f, 0x45, 0xd3, 0xd3, 0x6c, 0xb6, 0x21, 0xd7, 0x6c, 0x53,
+ 0xf9, 0x03, 0x1b, 0x28, 0x53, 0xee, 0x06, 0x57, 0xa1, 0xed, 0xba, 0x0f,
+ 0x6f, 0x06, 0xda, 0xde, 0x6a, 0x5a, 0x62, 0xfa, 0xec, 0x54, 0xcf, 0x69,
+ 0xbb, 0xf1, 0x5d, 0xb2, 0x24, 0x49, 0x09, 0x11, 0x4b, 0x04, 0x86, 0xf7,
+ 0x5d, 0xa3, 0xcf, 0x16,
+};
+static const struct drbg_kat_pr_true kat3840_t = {
+ 14, kat3840_entropyin, kat3840_nonce, kat3840_persstr,
+ kat3840_entropyinpr1, kat3840_addinpr1, kat3840_entropyinpr2,
+ kat3840_addinpr2, kat3840_retbits
+};
+static const struct drbg_kat kat3840 = {
+ PR_TRUE, NO_DF, NID_aes_128_ctr, 32, 0, 32, 32, 64, &kat3840_t
+};
+
+static const unsigned char kat3841_entropyin[] = {
+ 0xed, 0xdb, 0x79, 0xf0, 0xfb, 0x5a, 0x5d, 0xd6, 0xb5, 0xe4, 0x61, 0x12,
+ 0xa7, 0xd7, 0x05, 0x27, 0x0c, 0xee, 0xce, 0xfd, 0xcc, 0x2e, 0x8d, 0xb2,
+ 0x72, 0x1c, 0x42, 0xf3, 0xe6, 0x35, 0x86, 0x83, 0x61, 0x0d, 0x40, 0xd0,
+ 0xf6, 0x70, 0x92, 0xcc,
+};
+static const unsigned char kat3841_nonce[] = {0};
+static const unsigned char kat3841_persstr[] = {0};
+static const unsigned char kat3841_entropyinpr1[] = {
+ 0x7e, 0x96, 0x35, 0x54, 0xe9, 0x0e, 0x20, 0xa6, 0xd8, 0x51, 0xba, 0x86,
+ 0x78, 0x55, 0x2d, 0x3c, 0xc4, 0xe8, 0xad, 0x73, 0x8d, 0xba, 0x17, 0xfd,
+ 0xe8, 0xb3, 0xc5, 0x1f, 0x65, 0xf2, 0xc0, 0x5b, 0x6b, 0x38, 0x25, 0xd8,
+ 0xc4, 0xfa, 0x8e, 0x9c,
+};
+static const unsigned char kat3841_addinpr1[] = {0};
+static const unsigned char kat3841_entropyinpr2[] = {
+ 0x42, 0xca, 0x45, 0x3e, 0xbd, 0xc7, 0xe3, 0x92, 0x15, 0x67, 0x18, 0xa8,
+ 0x56, 0xd4, 0xfd, 0xed, 0xf3, 0x24, 0xaa, 0xb0, 0x11, 0x56, 0x43, 0x1e,
+ 0x49, 0xed, 0xcb, 0x44, 0xd9, 0x16, 0x90, 0x6d, 0x78, 0x9f, 0xc2, 0xe0,
+ 0xd8, 0xd5, 0x27, 0x97,
+};
+static const unsigned char kat3841_addinpr2[] = {0};
+static const unsigned char kat3841_retbits[] = {
+ 0xe1, 0x98, 0xbf, 0xc6, 0xcc, 0x3a, 0x02, 0x6a, 0x14, 0x3d, 0x35, 0x60,
+ 0xb7, 0x0b, 0x69, 0x83, 0x2a, 0x4d, 0x08, 0x64, 0xac, 0x2b, 0x97, 0x13,
+ 0x4b, 0xb6, 0x48, 0x76, 0xde, 0x80, 0xb0, 0x85, 0xf0, 0x54, 0x83, 0xe8,
+ 0x2a, 0xd4, 0xb5, 0x0d, 0xef, 0xd3, 0x7f, 0x77, 0xbe, 0x7e, 0x1a, 0x03,
+ 0x10, 0xb7, 0x1f, 0xf7, 0xdf, 0x6e, 0x7f, 0xe0, 0xc2, 0x2d, 0xc5, 0xa7,
+ 0x78, 0x06, 0xe0, 0x94,
+};
+static const struct drbg_kat_pr_true kat3841_t = {
+ 0, kat3841_entropyin, kat3841_nonce, kat3841_persstr,
+ kat3841_entropyinpr1, kat3841_addinpr1, kat3841_entropyinpr2,
+ kat3841_addinpr2, kat3841_retbits
+};
+static const struct drbg_kat kat3841 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3841_t
+};
+
+static const unsigned char kat3842_entropyin[] = {
+ 0xde, 0xa1, 0x43, 0x22, 0xc5, 0x34, 0x8f, 0xd2, 0x38, 0x73, 0x47, 0x77,
+ 0x6c, 0x47, 0x45, 0xec, 0xf0, 0x97, 0x79, 0xc1, 0x5b, 0x04, 0xb6, 0x2c,
+ 0x0d, 0x19, 0x05, 0x8d, 0xfc, 0x5d, 0xc6, 0xdb, 0x7b, 0xb7, 0x1d, 0xd3,
+ 0x42, 0x2f, 0x0d, 0x5b,
+};
+static const unsigned char kat3842_nonce[] = {0};
+static const unsigned char kat3842_persstr[] = {0};
+static const unsigned char kat3842_entropyinpr1[] = {
+ 0xcb, 0x2f, 0xf6, 0xc5, 0xbe, 0x24, 0x26, 0x48, 0x5e, 0xa9, 0x63, 0x2d,
+ 0xad, 0x6f, 0x78, 0x5c, 0xf0, 0xb3, 0x69, 0x20, 0x56, 0x8d, 0xae, 0x6d,
+ 0x6a, 0xaf, 0x82, 0x79, 0x1b, 0x7c, 0x52, 0x67, 0xc4, 0x4e, 0x33, 0x59,
+ 0xe4, 0xbd, 0x7f, 0x08,
+};
+static const unsigned char kat3842_addinpr1[] = {0};
+static const unsigned char kat3842_entropyinpr2[] = {
+ 0x0a, 0x1c, 0x36, 0xed, 0x96, 0xa8, 0x12, 0xce, 0xdf, 0xb7, 0x9b, 0x1c,
+ 0x8e, 0xec, 0xce, 0xbf, 0x36, 0xd0, 0x0b, 0xb8, 0xbe, 0x76, 0xdb, 0xfe,
+ 0x03, 0x31, 0x16, 0x00, 0x22, 0xeb, 0x65, 0xee, 0xd2, 0x5e, 0x78, 0xbf,
+ 0xbb, 0xd4, 0xfe, 0xc1,
+};
+static const unsigned char kat3842_addinpr2[] = {0};
+static const unsigned char kat3842_retbits[] = {
+ 0x04, 0x09, 0x6e, 0x53, 0xc4, 0x45, 0x9e, 0x7f, 0x7c, 0x0d, 0xfb, 0xe3,
+ 0x5e, 0x8d, 0x6c, 0x68, 0x90, 0x3d, 0x64, 0x98, 0xee, 0x77, 0x87, 0x22,
+ 0xb7, 0x76, 0x15, 0x6e, 0xae, 0x08, 0x58, 0x60, 0xf7, 0xf0, 0xf4, 0x2a,
+ 0x46, 0xdd, 0x4a, 0x81, 0x13, 0xf7, 0x28, 0xbc, 0xfd, 0x99, 0x35, 0x16,
+ 0xe4, 0xbb, 0xe1, 0x32, 0xff, 0x4a, 0xa5, 0x7a, 0x7c, 0x54, 0x00, 0x51,
+ 0xe4, 0xb3, 0x30, 0x0e,
+};
+static const struct drbg_kat_pr_true kat3842_t = {
+ 1, kat3842_entropyin, kat3842_nonce, kat3842_persstr,
+ kat3842_entropyinpr1, kat3842_addinpr1, kat3842_entropyinpr2,
+ kat3842_addinpr2, kat3842_retbits
+};
+static const struct drbg_kat kat3842 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3842_t
+};
+
+static const unsigned char kat3843_entropyin[] = {
+ 0x16, 0xad, 0x0d, 0xb9, 0x82, 0xa3, 0x5d, 0x87, 0x90, 0x9a, 0xfb, 0x21,
+ 0xdc, 0xb2, 0xa3, 0x49, 0xf6, 0x9d, 0x72, 0x58, 0xfa, 0x49, 0xb4, 0x76,
+ 0xc7, 0x02, 0x75, 0x80, 0xdd, 0xb2, 0x98, 0xfe, 0x37, 0xc6, 0x2d, 0xce,
+ 0x21, 0xc6, 0x28, 0x43,
+};
+static const unsigned char kat3843_nonce[] = {0};
+static const unsigned char kat3843_persstr[] = {0};
+static const unsigned char kat3843_entropyinpr1[] = {
+ 0x0a, 0x78, 0x02, 0x80, 0x9a, 0x17, 0x3c, 0x32, 0x05, 0x94, 0x0a, 0x02,
+ 0x1c, 0x32, 0x33, 0x65, 0x89, 0xdd, 0x55, 0xd1, 0x73, 0x52, 0xe8, 0xe2,
+ 0x14, 0x86, 0xd5, 0xf7, 0x27, 0x73, 0xb5, 0x69, 0xcd, 0x3f, 0x3a, 0x66,
+ 0xdb, 0x32, 0xb3, 0x68,
+};
+static const unsigned char kat3843_addinpr1[] = {0};
+static const unsigned char kat3843_entropyinpr2[] = {
+ 0x5e, 0x2a, 0xdf, 0x42, 0x8e, 0xa1, 0x0b, 0x47, 0x2d, 0x04, 0xfd, 0xe2,
+ 0x84, 0x53, 0x58, 0x17, 0x79, 0xe0, 0x03, 0xe6, 0x1b, 0xac, 0x07, 0x04,
+ 0x96, 0x90, 0x58, 0x56, 0xcd, 0xa1, 0xf5, 0xf9, 0xd4, 0xcf, 0x88, 0xd2,
+ 0x5e, 0x7e, 0x7d, 0x50,
+};
+static const unsigned char kat3843_addinpr2[] = {0};
+static const unsigned char kat3843_retbits[] = {
+ 0x6c, 0xc7, 0x24, 0xcb, 0xb7, 0xe2, 0xfc, 0x49, 0xcf, 0xaa, 0x31, 0x43,
+ 0x80, 0x6d, 0x3d, 0xda, 0x2f, 0x82, 0xd4, 0xf7, 0x64, 0x67, 0x7f, 0x8e,
+ 0xf1, 0x94, 0x7f, 0x32, 0xcc, 0xfc, 0xb0, 0xc5, 0x50, 0x48, 0xbb, 0x24,
+ 0x03, 0xea, 0xd6, 0xf4, 0x86, 0x0b, 0x65, 0xc8, 0x9f, 0x30, 0xbf, 0xf8,
+ 0x0f, 0xa5, 0x64, 0xc2, 0xd1, 0x21, 0xf9, 0x82, 0x11, 0x48, 0xa3, 0x72,
+ 0xa4, 0xd9, 0xd1, 0x9c,
+};
+static const struct drbg_kat_pr_true kat3843_t = {
+ 2, kat3843_entropyin, kat3843_nonce, kat3843_persstr,
+ kat3843_entropyinpr1, kat3843_addinpr1, kat3843_entropyinpr2,
+ kat3843_addinpr2, kat3843_retbits
+};
+static const struct drbg_kat kat3843 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3843_t
+};
+
+static const unsigned char kat3844_entropyin[] = {
+ 0x29, 0x87, 0xf9, 0x8a, 0x5e, 0x4f, 0x7e, 0x5b, 0x13, 0xd1, 0x33, 0x9a,
+ 0x28, 0x4a, 0x03, 0x5b, 0x21, 0x4b, 0x94, 0x15, 0xce, 0x1c, 0x33, 0x38,
+ 0xf2, 0xcc, 0x56, 0x7d, 0x43, 0x2a, 0x88, 0xbd, 0xeb, 0xa2, 0x5f, 0xc5,
+ 0xf1, 0x05, 0x3b, 0x80,
+};
+static const unsigned char kat3844_nonce[] = {0};
+static const unsigned char kat3844_persstr[] = {0};
+static const unsigned char kat3844_entropyinpr1[] = {
+ 0x7d, 0xbf, 0x58, 0x1f, 0xf9, 0x54, 0xcb, 0xbe, 0x20, 0xac, 0x91, 0x77,
+ 0xe9, 0x37, 0xf8, 0x36, 0x78, 0x2c, 0x89, 0x73, 0x17, 0x02, 0xe8, 0x60,
+ 0x95, 0xae, 0xcc, 0xd3, 0xe4, 0x3f, 0x4d, 0x97, 0x67, 0x31, 0x62, 0xa2,
+ 0xba, 0x98, 0xeb, 0x19,
+};
+static const unsigned char kat3844_addinpr1[] = {0};
+static const unsigned char kat3844_entropyinpr2[] = {
+ 0x8e, 0xd7, 0x23, 0xe9, 0x0e, 0xc1, 0xfa, 0x99, 0xcd, 0x18, 0xe1, 0xb8,
+ 0x18, 0x92, 0x75, 0x42, 0xd5, 0x76, 0xd8, 0xfa, 0xcc, 0x3f, 0x83, 0xf4,
+ 0xed, 0xc6, 0xf7, 0xda, 0x63, 0x96, 0x17, 0xae, 0xe7, 0xd4, 0xe0, 0xf7,
+ 0x96, 0xee, 0xaf, 0x54,
+};
+static const unsigned char kat3844_addinpr2[] = {0};
+static const unsigned char kat3844_retbits[] = {
+ 0x02, 0x10, 0xb4, 0xcf, 0x9f, 0x63, 0x0d, 0x7f, 0x16, 0xf5, 0x47, 0xa1,
+ 0xfe, 0x6c, 0xad, 0xcf, 0x36, 0xa7, 0x19, 0x73, 0x26, 0xd0, 0x82, 0x2a,
+ 0x2a, 0x1a, 0xc6, 0x02, 0xca, 0x4e, 0x9b, 0x98, 0xab, 0xce, 0x55, 0xf0,
+ 0xd4, 0xde, 0x7a, 0x8a, 0xff, 0xfd, 0x07, 0x04, 0x6d, 0xbb, 0x10, 0x32,
+ 0xf3, 0x32, 0xe6, 0x43, 0x8c, 0xa2, 0x57, 0x71, 0xee, 0x2a, 0xab, 0x40,
+ 0x36, 0x5b, 0x86, 0xef,
+};
+static const struct drbg_kat_pr_true kat3844_t = {
+ 3, kat3844_entropyin, kat3844_nonce, kat3844_persstr,
+ kat3844_entropyinpr1, kat3844_addinpr1, kat3844_entropyinpr2,
+ kat3844_addinpr2, kat3844_retbits
+};
+static const struct drbg_kat kat3844 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3844_t
+};
+
+static const unsigned char kat3845_entropyin[] = {
+ 0x54, 0xbb, 0x6a, 0x89, 0x30, 0x50, 0xfd, 0x80, 0xcd, 0x9c, 0x27, 0xcc,
+ 0xc7, 0x99, 0x62, 0xb4, 0x54, 0x1c, 0x8e, 0x8f, 0x7f, 0xde, 0x37, 0x7b,
+ 0x82, 0x8c, 0xac, 0x75, 0xf3, 0x66, 0x94, 0x9f, 0x2b, 0xdb, 0x5c, 0x22,
+ 0xfa, 0x1c, 0x70, 0xff,
+};
+static const unsigned char kat3845_nonce[] = {0};
+static const unsigned char kat3845_persstr[] = {0};
+static const unsigned char kat3845_entropyinpr1[] = {
+ 0x26, 0x05, 0x98, 0x57, 0xb8, 0x63, 0xd9, 0x53, 0x76, 0xc6, 0x32, 0xa7,
+ 0x50, 0x0e, 0xb9, 0xfc, 0x34, 0xc5, 0x33, 0x52, 0x39, 0x04, 0xee, 0xa4,
+ 0x2d, 0xa2, 0xe5, 0xeb, 0xfd, 0x5b, 0xac, 0xb6, 0x72, 0xe9, 0x56, 0xf4,
+ 0x7b, 0x2e, 0x15, 0x6c,
+};
+static const unsigned char kat3845_addinpr1[] = {0};
+static const unsigned char kat3845_entropyinpr2[] = {
+ 0x11, 0x82, 0xff, 0xde, 0x1a, 0x81, 0x06, 0x8a, 0xba, 0x30, 0xae, 0x1f,
+ 0x37, 0xc5, 0x89, 0x66, 0xe7, 0xf0, 0xe5, 0xf1, 0xda, 0x4f, 0xeb, 0x2c,
+ 0x8d, 0xb6, 0xf8, 0x43, 0x2d, 0x89, 0x60, 0x4e, 0x30, 0x4c, 0x66, 0x67,
+ 0xbd, 0x7a, 0xbc, 0xf7,
+};
+static const unsigned char kat3845_addinpr2[] = {0};
+static const unsigned char kat3845_retbits[] = {
+ 0x24, 0x10, 0x7f, 0x45, 0xcc, 0xeb, 0x4c, 0xcc, 0x63, 0x2d, 0xd5, 0xc0,
+ 0x32, 0x57, 0xf9, 0x7b, 0x5e, 0x53, 0xd8, 0x40, 0xaf, 0x88, 0xb7, 0x8d,
+ 0x98, 0x0f, 0x88, 0xfc, 0x99, 0xe7, 0xfe, 0xfd, 0x92, 0xea, 0x23, 0x3c,
+ 0x67, 0xdf, 0xa7, 0x93, 0x21, 0x50, 0xd7, 0x6f, 0xdd, 0xb8, 0xb0, 0xc9,
+ 0x7a, 0x2c, 0x7c, 0xcc, 0x13, 0x4b, 0xda, 0x81, 0x5c, 0x0f, 0x99, 0xd0,
+ 0x68, 0x2d, 0x6c, 0x0e,
+};
+static const struct drbg_kat_pr_true kat3845_t = {
+ 4, kat3845_entropyin, kat3845_nonce, kat3845_persstr,
+ kat3845_entropyinpr1, kat3845_addinpr1, kat3845_entropyinpr2,
+ kat3845_addinpr2, kat3845_retbits
+};
+static const struct drbg_kat kat3845 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3845_t
+};
+
+static const unsigned char kat3846_entropyin[] = {
+ 0xcc, 0x25, 0x88, 0x0b, 0x50, 0x3c, 0xfa, 0x9c, 0x15, 0x64, 0x73, 0xde,
+ 0xc1, 0xb7, 0x54, 0xd6, 0x21, 0xdd, 0x43, 0x49, 0x8b, 0x38, 0xca, 0x43,
+ 0x6f, 0xef, 0x6e, 0x74, 0xe0, 0xc4, 0x92, 0x1b, 0xb7, 0x88, 0x7d, 0x91,
+ 0xe5, 0xba, 0x7e, 0x4b,
+};
+static const unsigned char kat3846_nonce[] = {0};
+static const unsigned char kat3846_persstr[] = {0};
+static const unsigned char kat3846_entropyinpr1[] = {
+ 0x7c, 0x19, 0xe9, 0xa1, 0xbf, 0x95, 0x1f, 0xd9, 0x71, 0x6e, 0x23, 0xaf,
+ 0xce, 0xdc, 0x5e, 0x4d, 0xca, 0xb9, 0xa3, 0x3a, 0xcc, 0xa4, 0x06, 0x02,
+ 0x0c, 0x99, 0xfe, 0x1a, 0xa2, 0x4d, 0x7f, 0xc8, 0x45, 0xa5, 0x53, 0x35,
+ 0x84, 0x1d, 0x03, 0x21,
+};
+static const unsigned char kat3846_addinpr1[] = {0};
+static const unsigned char kat3846_entropyinpr2[] = {
+ 0x83, 0x4b, 0x7b, 0x64, 0xb1, 0x3f, 0x53, 0xe1, 0x58, 0x2c, 0x83, 0x7c,
+ 0x9a, 0x1f, 0x50, 0x5a, 0x34, 0x11, 0x53, 0x6d, 0x35, 0x45, 0x1f, 0xa9,
+ 0x7d, 0x03, 0xb9, 0x8f, 0x8b, 0x1f, 0x91, 0x49, 0xc0, 0x61, 0xa1, 0xe1,
+ 0x93, 0x3a, 0x79, 0x74,
+};
+static const unsigned char kat3846_addinpr2[] = {0};
+static const unsigned char kat3846_retbits[] = {
+ 0xd5, 0x3e, 0xe3, 0x3d, 0x9e, 0x3d, 0xf7, 0x8d, 0x0f, 0x61, 0xe6, 0x53,
+ 0x98, 0x94, 0xa7, 0x9c, 0xd4, 0x06, 0xac, 0xd5, 0x2f, 0xb6, 0x7d, 0xff,
+ 0xb1, 0x0b, 0xf4, 0x6f, 0x12, 0x3e, 0xd1, 0xdb, 0xe0, 0x73, 0xf1, 0x96,
+ 0x01, 0xeb, 0x97, 0x2f, 0x6f, 0x4a, 0x7d, 0x25, 0x1d, 0x0c, 0x50, 0x90,
+ 0x01, 0x37, 0xfb, 0xc8, 0xf8, 0xb8, 0x23, 0xe4, 0x97, 0x0f, 0x08, 0xe5,
+ 0x12, 0x26, 0x8c, 0x84,
+};
+static const struct drbg_kat_pr_true kat3846_t = {
+ 5, kat3846_entropyin, kat3846_nonce, kat3846_persstr,
+ kat3846_entropyinpr1, kat3846_addinpr1, kat3846_entropyinpr2,
+ kat3846_addinpr2, kat3846_retbits
+};
+static const struct drbg_kat kat3846 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3846_t
+};
+
+static const unsigned char kat3847_entropyin[] = {
+ 0xc8, 0x3b, 0xc4, 0x72, 0x01, 0xe5, 0xc7, 0xdd, 0x13, 0xc2, 0x97, 0x9c,
+ 0x1a, 0x07, 0x9e, 0x3f, 0xae, 0x7e, 0x18, 0x85, 0xbc, 0x1b, 0xcc, 0x87,
+ 0x10, 0xc7, 0xaa, 0xe1, 0x70, 0x36, 0x28, 0x93, 0xad, 0x73, 0xf6, 0x06,
+ 0x8d, 0xbc, 0x22, 0xa8,
+};
+static const unsigned char kat3847_nonce[] = {0};
+static const unsigned char kat3847_persstr[] = {0};
+static const unsigned char kat3847_entropyinpr1[] = {
+ 0xf6, 0xe4, 0xa4, 0xc0, 0xfe, 0x62, 0x9b, 0x0a, 0x14, 0x53, 0x60, 0x60,
+ 0x93, 0xb3, 0xce, 0xf8, 0xf1, 0x56, 0x7f, 0x03, 0x98, 0xcc, 0x76, 0x47,
+ 0xd5, 0x1c, 0x6c, 0xd9, 0x69, 0x40, 0x12, 0x42, 0x8a, 0x3c, 0x01, 0xd1,
+ 0x8c, 0xd0, 0x75, 0x55,
+};
+static const unsigned char kat3847_addinpr1[] = {0};
+static const unsigned char kat3847_entropyinpr2[] = {
+ 0xf5, 0x13, 0x1d, 0xad, 0x5e, 0xe9, 0x47, 0xa9, 0x0e, 0xa1, 0xcc, 0x85,
+ 0x1b, 0x30, 0xd6, 0xd2, 0x54, 0x93, 0x2b, 0x9d, 0xc0, 0x30, 0x1a, 0x3b,
+ 0xf5, 0xc6, 0x08, 0x39, 0x37, 0x6f, 0x42, 0x69, 0x93, 0x3e, 0xd6, 0xd2,
+ 0xaa, 0x48, 0x97, 0x2c,
+};
+static const unsigned char kat3847_addinpr2[] = {0};
+static const unsigned char kat3847_retbits[] = {
+ 0x69, 0xd2, 0x65, 0x3e, 0xb9, 0x75, 0x23, 0xb2, 0xe7, 0xaf, 0x10, 0xbf,
+ 0x28, 0xaf, 0x32, 0xd2, 0x56, 0xf7, 0x5e, 0x21, 0x98, 0x13, 0x99, 0x7a,
+ 0xb2, 0xfe, 0xff, 0xdb, 0xd4, 0x67, 0xd6, 0xbb, 0xf6, 0xd0, 0xd2, 0x6d,
+ 0xd5, 0x8a, 0x32, 0x7b, 0xd7, 0x52, 0xa8, 0x39, 0x7b, 0xd1, 0x14, 0x01,
+ 0xaf, 0xe1, 0xd8, 0x48, 0x99, 0x95, 0x30, 0x3c, 0x6f, 0xae, 0xac, 0x8e,
+ 0x25, 0xe5, 0x6b, 0x34,
+};
+static const struct drbg_kat_pr_true kat3847_t = {
+ 6, kat3847_entropyin, kat3847_nonce, kat3847_persstr,
+ kat3847_entropyinpr1, kat3847_addinpr1, kat3847_entropyinpr2,
+ kat3847_addinpr2, kat3847_retbits
+};
+static const struct drbg_kat kat3847 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3847_t
+};
+
+static const unsigned char kat3848_entropyin[] = {
+ 0x2a, 0xe8, 0x06, 0xf7, 0x07, 0x6d, 0x24, 0xdc, 0x26, 0x32, 0x19, 0xcb,
+ 0xe1, 0xc1, 0x1a, 0x30, 0x7c, 0x4a, 0x80, 0x27, 0xb9, 0x39, 0xe4, 0xdf,
+ 0xfa, 0x37, 0xd5, 0xfe, 0x21, 0x54, 0xca, 0xdb, 0xb9, 0x2a, 0x12, 0x0f,
+ 0x92, 0xe7, 0x88, 0xb0,
+};
+static const unsigned char kat3848_nonce[] = {0};
+static const unsigned char kat3848_persstr[] = {0};
+static const unsigned char kat3848_entropyinpr1[] = {
+ 0x5e, 0xb7, 0xa5, 0x6b, 0x17, 0x56, 0x7a, 0xc6, 0xab, 0x8e, 0xa3, 0x9b,
+ 0xff, 0x4e, 0x33, 0xd7, 0x54, 0x4f, 0x29, 0x30, 0x57, 0xed, 0xf6, 0xc0,
+ 0xbc, 0x81, 0x05, 0x70, 0x68, 0x0e, 0x0c, 0xc4, 0xd6, 0xab, 0x14, 0xf0,
+ 0x18, 0x94, 0xe4, 0xb4,
+};
+static const unsigned char kat3848_addinpr1[] = {0};
+static const unsigned char kat3848_entropyinpr2[] = {
+ 0x21, 0xb0, 0x6d, 0x62, 0x2e, 0x41, 0x69, 0xbc, 0x9c, 0x64, 0x91, 0x98,
+ 0x05, 0x28, 0x48, 0xff, 0xc5, 0x55, 0x2a, 0x88, 0xb8, 0x2a, 0xb1, 0x26,
+ 0x5a, 0x74, 0x98, 0xf1, 0x61, 0x04, 0x67, 0x9f, 0x8f, 0x43, 0xed, 0xb1,
+ 0x54, 0x67, 0xf2, 0x7e,
+};
+static const unsigned char kat3848_addinpr2[] = {0};
+static const unsigned char kat3848_retbits[] = {
+ 0xa6, 0x0e, 0xff, 0x44, 0x25, 0xcd, 0x4e, 0x12, 0x0e, 0x9e, 0xef, 0x68,
+ 0x7b, 0x86, 0xf0, 0xca, 0x92, 0x32, 0xf7, 0xfb, 0x9d, 0x31, 0x62, 0x6e,
+ 0x2c, 0x3c, 0x84, 0x6a, 0x1f, 0x76, 0x9a, 0xaf, 0x39, 0x7a, 0x42, 0x70,
+ 0x10, 0x98, 0xdc, 0x17, 0xc5, 0x56, 0xfa, 0x6f, 0xd2, 0xb3, 0x9c, 0x67,
+ 0x3e, 0x0c, 0x54, 0xf1, 0x5b, 0x31, 0xfd, 0xb0, 0x1d, 0x03, 0x20, 0x0d,
+ 0xd1, 0x4a, 0x04, 0x74,
+};
+static const struct drbg_kat_pr_true kat3848_t = {
+ 7, kat3848_entropyin, kat3848_nonce, kat3848_persstr,
+ kat3848_entropyinpr1, kat3848_addinpr1, kat3848_entropyinpr2,
+ kat3848_addinpr2, kat3848_retbits
+};
+static const struct drbg_kat kat3848 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3848_t
+};
+
+static const unsigned char kat3849_entropyin[] = {
+ 0xd0, 0x5a, 0xaa, 0x55, 0x24, 0x41, 0xde, 0xc4, 0xe4, 0xbf, 0x4b, 0xa4,
+ 0x49, 0x7a, 0x7d, 0x6b, 0xa7, 0x3a, 0x20, 0x36, 0xcc, 0x9e, 0x09, 0xe3,
+ 0xef, 0x90, 0xe6, 0x37, 0x9b, 0x91, 0x5d, 0x3b, 0x05, 0x01, 0xcb, 0x38,
+ 0x39, 0x9d, 0x5f, 0x67,
+};
+static const unsigned char kat3849_nonce[] = {0};
+static const unsigned char kat3849_persstr[] = {0};
+static const unsigned char kat3849_entropyinpr1[] = {
+ 0x61, 0x92, 0x36, 0xc2, 0xaa, 0xa0, 0x0a, 0xf0, 0x92, 0x4f, 0xa5, 0x62,
+ 0xce, 0x08, 0xac, 0x9b, 0xe4, 0x31, 0x05, 0xb8, 0x7a, 0x16, 0xd1, 0x18,
+ 0x51, 0xcb, 0xac, 0xce, 0x30, 0x47, 0x94, 0xf5, 0xa0, 0x08, 0x4f, 0xbd,
+ 0x6b, 0x85, 0x5a, 0xaa,
+};
+static const unsigned char kat3849_addinpr1[] = {0};
+static const unsigned char kat3849_entropyinpr2[] = {
+ 0xbf, 0x4b, 0x47, 0xd9, 0x9b, 0x8a, 0xb3, 0x1d, 0xfd, 0x88, 0x73, 0x83,
+ 0x1d, 0x7d, 0x28, 0xac, 0x03, 0xb1, 0x5b, 0xf6, 0xec, 0x50, 0x8d, 0x9d,
+ 0xb4, 0xf3, 0x96, 0x1b, 0xbd, 0xbe, 0x49, 0x40, 0x6b, 0x13, 0x62, 0xf6,
+ 0x3c, 0x55, 0x53, 0x06,
+};
+static const unsigned char kat3849_addinpr2[] = {0};
+static const unsigned char kat3849_retbits[] = {
+ 0x52, 0x65, 0xe9, 0x9c, 0xda, 0x2e, 0x44, 0x9c, 0xfe, 0x60, 0xfc, 0xe0,
+ 0x77, 0xa1, 0x56, 0xad, 0xad, 0x31, 0x60, 0x2b, 0x73, 0xfb, 0xfc, 0x9a,
+ 0x94, 0x20, 0xe6, 0x3c, 0x0f, 0xd2, 0x58, 0x0e, 0x1e, 0x4f, 0x5c, 0x0c,
+ 0x4b, 0x8f, 0x4f, 0xaa, 0x8c, 0x32, 0x99, 0x67, 0xc4, 0xe9, 0x76, 0x1d,
+ 0x32, 0x82, 0x53, 0x0a, 0xe8, 0x35, 0x81, 0x09, 0xa9, 0xd7, 0x65, 0xf9,
+ 0x13, 0xaa, 0x52, 0xd9,
+};
+static const struct drbg_kat_pr_true kat3849_t = {
+ 8, kat3849_entropyin, kat3849_nonce, kat3849_persstr,
+ kat3849_entropyinpr1, kat3849_addinpr1, kat3849_entropyinpr2,
+ kat3849_addinpr2, kat3849_retbits
+};
+static const struct drbg_kat kat3849 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3849_t
+};
+
+static const unsigned char kat3850_entropyin[] = {
+ 0x52, 0x16, 0xad, 0x9b, 0xb9, 0x1b, 0xa5, 0x8a, 0x0b, 0x4a, 0xae, 0x30,
+ 0x79, 0x90, 0x5b, 0xd0, 0xc5, 0xb0, 0x69, 0x89, 0x22, 0xec, 0x13, 0xe4,
+ 0x9c, 0xcb, 0x20, 0xcc, 0x9b, 0x47, 0x8b, 0xad, 0x87, 0xbd, 0xb5, 0x8d,
+ 0x2a, 0xdb, 0x7a, 0xd8,
+};
+static const unsigned char kat3850_nonce[] = {0};
+static const unsigned char kat3850_persstr[] = {0};
+static const unsigned char kat3850_entropyinpr1[] = {
+ 0x13, 0xf9, 0x67, 0x5d, 0xf7, 0x35, 0xdb, 0x65, 0x66, 0x98, 0x10, 0x3e,
+ 0x8a, 0xc4, 0xc7, 0x22, 0x05, 0xca, 0xdf, 0x9b, 0xf5, 0x05, 0xfe, 0xc6,
+ 0xfc, 0x2f, 0xc3, 0xe3, 0xf3, 0xab, 0xb9, 0xd0, 0xa0, 0x6c, 0x18, 0x35,
+ 0x9d, 0xae, 0x93, 0x15,
+};
+static const unsigned char kat3850_addinpr1[] = {0};
+static const unsigned char kat3850_entropyinpr2[] = {
+ 0xfd, 0x4a, 0x06, 0xe1, 0x14, 0x93, 0x4a, 0x12, 0xeb, 0x3f, 0x71, 0xe8,
+ 0xd0, 0x6e, 0x81, 0xb5, 0xa2, 0xdc, 0xbf, 0xf5, 0x8c, 0x79, 0x76, 0x67,
+ 0x0e, 0xf5, 0xad, 0x28, 0xb7, 0x8c, 0x50, 0x53, 0xbe, 0x81, 0x3c, 0x68,
+ 0xf7, 0x27, 0xb9, 0x56,
+};
+static const unsigned char kat3850_addinpr2[] = {0};
+static const unsigned char kat3850_retbits[] = {
+ 0x8c, 0x5f, 0x52, 0x12, 0x0d, 0xd0, 0x33, 0xb7, 0x6a, 0xc1, 0x28, 0x3a,
+ 0x24, 0xe6, 0x7c, 0x24, 0x26, 0xe6, 0xe6, 0x7f, 0xd6, 0xc1, 0x45, 0x79,
+ 0x1b, 0x0a, 0x26, 0x40, 0x35, 0xc6, 0xe5, 0x76, 0xfe, 0x87, 0x2c, 0xab,
+ 0x17, 0x1d, 0xe7, 0xae, 0x72, 0x55, 0x2a, 0xb3, 0xef, 0x45, 0x7d, 0xc5,
+ 0x68, 0xef, 0x16, 0xac, 0xa0, 0x7b, 0x91, 0x70, 0xa4, 0x21, 0xef, 0x9f,
+ 0x4f, 0x41, 0x60, 0xdc,
+};
+static const struct drbg_kat_pr_true kat3850_t = {
+ 9, kat3850_entropyin, kat3850_nonce, kat3850_persstr,
+ kat3850_entropyinpr1, kat3850_addinpr1, kat3850_entropyinpr2,
+ kat3850_addinpr2, kat3850_retbits
+};
+static const struct drbg_kat kat3850 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3850_t
+};
+
+static const unsigned char kat3851_entropyin[] = {
+ 0xb8, 0x36, 0xe7, 0xa8, 0x0d, 0xd7, 0x13, 0x1a, 0x44, 0x01, 0xcd, 0xd1,
+ 0xa6, 0xae, 0x1b, 0x29, 0x15, 0xdc, 0xe1, 0x94, 0xdf, 0x81, 0xaa, 0xfc,
+ 0xef, 0xe5, 0x03, 0x33, 0xa4, 0xba, 0xc8, 0x81, 0xfc, 0xf3, 0x0d, 0x71,
+ 0xa0, 0x24, 0xbe, 0x38,
+};
+static const unsigned char kat3851_nonce[] = {0};
+static const unsigned char kat3851_persstr[] = {0};
+static const unsigned char kat3851_entropyinpr1[] = {
+ 0xc2, 0xe7, 0x51, 0x17, 0xa2, 0x20, 0x3c, 0xe3, 0x45, 0x61, 0x59, 0x63,
+ 0x13, 0x2e, 0xdf, 0xf1, 0x8c, 0x17, 0x4e, 0x6d, 0x9e, 0x03, 0x6e, 0xc2,
+ 0x70, 0x13, 0x4e, 0x5e, 0x41, 0x03, 0xde, 0x86, 0x70, 0x3b, 0x5d, 0x81,
+ 0xcb, 0x1a, 0xea, 0x88,
+};
+static const unsigned char kat3851_addinpr1[] = {0};
+static const unsigned char kat3851_entropyinpr2[] = {
+ 0xe0, 0xe2, 0x42, 0x01, 0xc1, 0x37, 0x25, 0xaa, 0x76, 0xdd, 0x1e, 0xc4,
+ 0xd0, 0xcd, 0xcc, 0x30, 0x9b, 0x0c, 0x46, 0xb8, 0x0d, 0x5b, 0xfa, 0x85,
+ 0x8f, 0xd4, 0xe9, 0x01, 0xd6, 0x40, 0x1a, 0x58, 0x10, 0x5f, 0xbe, 0x43,
+ 0xea, 0xb7, 0x8a, 0x34,
+};
+static const unsigned char kat3851_addinpr2[] = {0};
+static const unsigned char kat3851_retbits[] = {
+ 0x8a, 0xc9, 0x52, 0xc9, 0x38, 0x8d, 0x91, 0x30, 0x23, 0xa5, 0xde, 0x97,
+ 0x76, 0xd1, 0xb0, 0x92, 0xc5, 0x40, 0x54, 0x4b, 0x51, 0xf5, 0x84, 0x52,
+ 0xe4, 0x73, 0x96, 0xac, 0x3a, 0xd3, 0x8e, 0xd7, 0xdd, 0x7b, 0x6a, 0xf8,
+ 0xa3, 0x6d, 0x01, 0xa2, 0x1b, 0xd3, 0x29, 0xf9, 0xff, 0x85, 0x5e, 0xd1,
+ 0x5f, 0xb2, 0x7f, 0x46, 0xf9, 0x98, 0xba, 0x97, 0xce, 0x64, 0x4f, 0x79,
+ 0x99, 0xee, 0x3a, 0x6f,
+};
+static const struct drbg_kat_pr_true kat3851_t = {
+ 10, kat3851_entropyin, kat3851_nonce, kat3851_persstr,
+ kat3851_entropyinpr1, kat3851_addinpr1, kat3851_entropyinpr2,
+ kat3851_addinpr2, kat3851_retbits
+};
+static const struct drbg_kat kat3851 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3851_t
+};
+
+static const unsigned char kat3852_entropyin[] = {
+ 0x40, 0x61, 0xc4, 0xff, 0x84, 0x51, 0x73, 0xab, 0x24, 0xec, 0xea, 0x68,
+ 0xe1, 0x68, 0xe6, 0x91, 0x1d, 0x36, 0x46, 0xfe, 0x77, 0x86, 0x39, 0x56,
+ 0xc4, 0xf0, 0xff, 0xbd, 0x2c, 0x46, 0x3a, 0x33, 0x25, 0xe2, 0xf2, 0x62,
+ 0x01, 0xff, 0x53, 0xf2,
+};
+static const unsigned char kat3852_nonce[] = {0};
+static const unsigned char kat3852_persstr[] = {0};
+static const unsigned char kat3852_entropyinpr1[] = {
+ 0x13, 0xe1, 0xc0, 0x3d, 0x5c, 0xd4, 0x89, 0xa5, 0xd9, 0x5a, 0x45, 0x1b,
+ 0x31, 0x88, 0xd6, 0xaf, 0x9b, 0xae, 0x55, 0x62, 0xfb, 0x86, 0x45, 0x98,
+ 0xb7, 0xb9, 0x33, 0x15, 0xa1, 0x58, 0xa7, 0x69, 0x08, 0x00, 0x81, 0x0d,
+ 0x1c, 0xd8, 0x05, 0x2d,
+};
+static const unsigned char kat3852_addinpr1[] = {0};
+static const unsigned char kat3852_entropyinpr2[] = {
+ 0xff, 0x6e, 0x2e, 0xce, 0xd8, 0xfc, 0x93, 0xdb, 0xc0, 0x3f, 0x76, 0x7b,
+ 0xb2, 0x23, 0xfd, 0x31, 0x56, 0xb1, 0x1a, 0xf1, 0x89, 0xba, 0xc1, 0x22,
+ 0xbc, 0x7c, 0xff, 0x4e, 0x3f, 0x62, 0x23, 0xe8, 0x0b, 0xd5, 0x8a, 0xea,
+ 0x90, 0x72, 0x0c, 0x99,
+};
+static const unsigned char kat3852_addinpr2[] = {0};
+static const unsigned char kat3852_retbits[] = {
+ 0xff, 0x34, 0x5f, 0xf5, 0xeb, 0x29, 0x46, 0x46, 0x2f, 0x2f, 0x16, 0x93,
+ 0x40, 0x48, 0xd1, 0x28, 0xc7, 0x21, 0x06, 0xd4, 0x93, 0xbe, 0xd0, 0x8c,
+ 0xaa, 0x92, 0xf7, 0xf2, 0xb7, 0x62, 0x8e, 0x7a, 0xeb, 0x99, 0xdc, 0x16,
+ 0xe4, 0xeb, 0xc8, 0x50, 0xc7, 0x36, 0x1d, 0xe7, 0x5b, 0xdb, 0x63, 0x3f,
+ 0x3a, 0xce, 0xcf, 0x1f, 0xa5, 0x33, 0x5b, 0xf0, 0x6e, 0x8c, 0x7e, 0x5c,
+ 0x61, 0x4f, 0x44, 0x04,
+};
+static const struct drbg_kat_pr_true kat3852_t = {
+ 11, kat3852_entropyin, kat3852_nonce, kat3852_persstr,
+ kat3852_entropyinpr1, kat3852_addinpr1, kat3852_entropyinpr2,
+ kat3852_addinpr2, kat3852_retbits
+};
+static const struct drbg_kat kat3852 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3852_t
+};
+
+static const unsigned char kat3853_entropyin[] = {
+ 0x8f, 0xbe, 0xc7, 0x84, 0xb4, 0xc0, 0xa4, 0x7c, 0x48, 0x5c, 0x13, 0x0c,
+ 0x8b, 0xa4, 0x65, 0x73, 0x07, 0x4d, 0x36, 0x03, 0x61, 0xe3, 0x05, 0x1c,
+ 0x22, 0x6a, 0x3e, 0xe3, 0xe6, 0x7b, 0xab, 0x39, 0x00, 0x25, 0x7c, 0xba,
+ 0xec, 0x37, 0x6a, 0x6f,
+};
+static const unsigned char kat3853_nonce[] = {0};
+static const unsigned char kat3853_persstr[] = {0};
+static const unsigned char kat3853_entropyinpr1[] = {
+ 0x62, 0x2c, 0xcb, 0xb1, 0x29, 0xaf, 0xcf, 0xca, 0x01, 0xc3, 0x63, 0xe4,
+ 0xa7, 0x45, 0x2f, 0x10, 0xfd, 0x04, 0x4e, 0xdc, 0x6e, 0x6d, 0x47, 0xed,
+ 0x71, 0x8d, 0x1e, 0x3e, 0xba, 0x48, 0x6c, 0xa6, 0xef, 0x09, 0x53, 0x96,
+ 0x03, 0x65, 0xbb, 0xd4,
+};
+static const unsigned char kat3853_addinpr1[] = {0};
+static const unsigned char kat3853_entropyinpr2[] = {
+ 0xef, 0x63, 0xd2, 0xbb, 0xc5, 0x0a, 0x60, 0x45, 0x60, 0x03, 0xaa, 0xa3,
+ 0xb5, 0xca, 0x72, 0x5e, 0x9b, 0x0b, 0xa1, 0x1f, 0xbf, 0x37, 0xdb, 0x06,
+ 0xd8, 0xc6, 0x6f, 0x2a, 0x88, 0xd9, 0x1e, 0x3b, 0xb2, 0x18, 0x09, 0xe0,
+ 0xfc, 0x03, 0x48, 0x06,
+};
+static const unsigned char kat3853_addinpr2[] = {0};
+static const unsigned char kat3853_retbits[] = {
+ 0x14, 0x28, 0x64, 0x62, 0x59, 0x39, 0x1e, 0xc1, 0xfb, 0x5e, 0xe0, 0xdf,
+ 0x14, 0x0f, 0x56, 0x6d, 0x69, 0x3b, 0xa2, 0xd1, 0x7b, 0xe2, 0x8c, 0x15,
+ 0xb5, 0x4f, 0x56, 0x2b, 0xcf, 0x6c, 0xcf, 0x79, 0x6e, 0x55, 0x92, 0xdb,
+ 0x96, 0x56, 0xd1, 0x89, 0xe2, 0x8c, 0x02, 0x09, 0x2c, 0x40, 0xc1, 0x40,
+ 0x9f, 0x7f, 0x6d, 0x7a, 0x6e, 0x6a, 0xdd, 0x4c, 0xa7, 0x98, 0x33, 0xe7,
+ 0xdd, 0x03, 0x79, 0x24,
+};
+static const struct drbg_kat_pr_true kat3853_t = {
+ 12, kat3853_entropyin, kat3853_nonce, kat3853_persstr,
+ kat3853_entropyinpr1, kat3853_addinpr1, kat3853_entropyinpr2,
+ kat3853_addinpr2, kat3853_retbits
+};
+static const struct drbg_kat kat3853 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3853_t
+};
+
+static const unsigned char kat3854_entropyin[] = {
+ 0x46, 0x16, 0x9c, 0xd3, 0xe2, 0xaf, 0xf2, 0x70, 0x8f, 0x52, 0x70, 0x8a,
+ 0x30, 0x43, 0xbe, 0x49, 0x6d, 0x35, 0x40, 0x54, 0x14, 0x3f, 0x80, 0x9b,
+ 0xcd, 0x48, 0x0f, 0xda, 0x82, 0xff, 0xcc, 0xb8, 0x90, 0xfc, 0x9f, 0x46,
+ 0xf6, 0x95, 0xc0, 0x10,
+};
+static const unsigned char kat3854_nonce[] = {0};
+static const unsigned char kat3854_persstr[] = {0};
+static const unsigned char kat3854_entropyinpr1[] = {
+ 0xce, 0x23, 0x33, 0x68, 0x5a, 0x03, 0x84, 0x5e, 0x09, 0x7f, 0x48, 0x78,
+ 0xc2, 0xef, 0xd5, 0xd4, 0xcf, 0xf1, 0x02, 0xd0, 0x89, 0x5b, 0x64, 0x76,
+ 0x51, 0xe8, 0xbf, 0x30, 0x1e, 0x5b, 0xe5, 0xe8, 0xce, 0x6c, 0xa0, 0x59,
+ 0xd6, 0x49, 0x07, 0xcb,
+};
+static const unsigned char kat3854_addinpr1[] = {0};
+static const unsigned char kat3854_entropyinpr2[] = {
+ 0xc1, 0x0d, 0x13, 0xc1, 0xb1, 0xe1, 0x09, 0x00, 0x44, 0x8b, 0x54, 0xd5,
+ 0x16, 0x4a, 0xae, 0xed, 0xaa, 0x1e, 0xcc, 0x12, 0x73, 0x5c, 0x51, 0x10,
+ 0xf4, 0x31, 0x9e, 0x2c, 0x71, 0xb5, 0xcc, 0xa6, 0xee, 0x39, 0xd7, 0x02,
+ 0xc1, 0x4d, 0xae, 0x05,
+};
+static const unsigned char kat3854_addinpr2[] = {0};
+static const unsigned char kat3854_retbits[] = {
+ 0x9a, 0x26, 0x15, 0xb3, 0x80, 0x2a, 0x5c, 0x61, 0xe3, 0xe8, 0x53, 0x16,
+ 0x06, 0x68, 0x00, 0xd5, 0x21, 0x34, 0x73, 0xef, 0x52, 0x27, 0x48, 0xfb,
+ 0x92, 0x03, 0x2e, 0x18, 0xab, 0x59, 0x04, 0x87, 0x04, 0x9b, 0x2a, 0x72,
+ 0xcf, 0x4e, 0x5f, 0x2b, 0x53, 0xd4, 0xf2, 0x8f, 0x4b, 0x80, 0xd0, 0xcf,
+ 0x75, 0x5e, 0x54, 0x98, 0xfb, 0x0f, 0xda, 0xaf, 0x57, 0x43, 0xa2, 0xb3,
+ 0xbd, 0x40, 0x88, 0x97,
+};
+static const struct drbg_kat_pr_true kat3854_t = {
+ 13, kat3854_entropyin, kat3854_nonce, kat3854_persstr,
+ kat3854_entropyinpr1, kat3854_addinpr1, kat3854_entropyinpr2,
+ kat3854_addinpr2, kat3854_retbits
+};
+static const struct drbg_kat kat3854 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3854_t
+};
+
+static const unsigned char kat3855_entropyin[] = {
+ 0xfb, 0x66, 0xc5, 0x7e, 0xd5, 0x84, 0x9f, 0xa1, 0x13, 0xd9, 0xfd, 0xf0,
+ 0x50, 0xcc, 0x17, 0xcd, 0x26, 0x64, 0xb0, 0x35, 0x94, 0xcd, 0x6f, 0xfd,
+ 0xd8, 0x9d, 0x00, 0x86, 0xbe, 0x1c, 0x10, 0x47, 0x5a, 0x3c, 0x66, 0x2a,
+ 0x56, 0xbf, 0x31, 0x24,
+};
+static const unsigned char kat3855_nonce[] = {0};
+static const unsigned char kat3855_persstr[] = {0};
+static const unsigned char kat3855_entropyinpr1[] = {
+ 0xdd, 0xcd, 0x35, 0x39, 0x46, 0x81, 0xd6, 0xf0, 0x17, 0x0a, 0xa6, 0xbd,
+ 0x89, 0x32, 0xb6, 0x02, 0x74, 0x5f, 0x41, 0x11, 0x7e, 0xec, 0xb8, 0xea,
+ 0x75, 0x2d, 0x85, 0xff, 0x4e, 0xf5, 0x84, 0x49, 0xe6, 0x2b, 0xb0, 0xb1,
+ 0xb1, 0x88, 0x3e, 0x93,
+};
+static const unsigned char kat3855_addinpr1[] = {0};
+static const unsigned char kat3855_entropyinpr2[] = {
+ 0x09, 0xa5, 0xd5, 0x92, 0x56, 0x16, 0x37, 0x9b, 0x52, 0x21, 0xb3, 0x47,
+ 0x65, 0x9a, 0xfa, 0x11, 0xda, 0x43, 0x26, 0xb6, 0x30, 0xb5, 0x7f, 0x3b,
+ 0x78, 0xdb, 0x98, 0x12, 0xe6, 0x67, 0xed, 0x3f, 0xba, 0xd2, 0x5f, 0xcc,
+ 0xe6, 0x30, 0x74, 0x86,
+};
+static const unsigned char kat3855_addinpr2[] = {0};
+static const unsigned char kat3855_retbits[] = {
+ 0xe0, 0x4e, 0x54, 0x32, 0xf6, 0x71, 0x01, 0x53, 0x50, 0xf0, 0xcc, 0x91,
+ 0x2f, 0x5e, 0x83, 0xe9, 0x69, 0xe0, 0x05, 0x84, 0xc6, 0x17, 0x8c, 0xc8,
+ 0x23, 0x94, 0xcf, 0x85, 0xce, 0x3d, 0xee, 0x6c, 0xa8, 0x7b, 0x6c, 0xb0,
+ 0x2e, 0x27, 0xa2, 0x1e, 0x03, 0xf8, 0x3c, 0x24, 0xc7, 0x61, 0xf5, 0x21,
+ 0x83, 0x06, 0x45, 0xfe, 0xfd, 0x44, 0x74, 0xc6, 0x34, 0xe1, 0x12, 0x4a,
+ 0x4d, 0x93, 0xda, 0x30,
+};
+static const struct drbg_kat_pr_true kat3855_t = {
+ 14, kat3855_entropyin, kat3855_nonce, kat3855_persstr,
+ kat3855_entropyinpr1, kat3855_addinpr1, kat3855_entropyinpr2,
+ kat3855_addinpr2, kat3855_retbits
+};
+static const struct drbg_kat kat3855 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3855_t
+};
+
+static const unsigned char kat3856_entropyin[] = {
+ 0x4b, 0xe5, 0xaf, 0xd0, 0xd9, 0x85, 0x3b, 0xb3, 0x19, 0x9b, 0xff, 0xb6,
+ 0x51, 0x21, 0x1e, 0x40, 0x20, 0xaf, 0xe4, 0xc2, 0x7d, 0xd9, 0x73, 0x49,
+ 0xbe, 0x9d, 0x21, 0xe2, 0x60, 0xc2, 0xc4, 0xcb, 0x74, 0x01, 0x4c, 0x4f,
+ 0x96, 0x84, 0xec, 0xab,
+};
+static const unsigned char kat3856_nonce[] = {0};
+static const unsigned char kat3856_persstr[] = {0};
+static const unsigned char kat3856_entropyinpr1[] = {
+ 0x26, 0xaf, 0x31, 0xf4, 0x5e, 0xed, 0x02, 0x0c, 0xa9, 0x14, 0x6d, 0x15,
+ 0xd7, 0x2e, 0x5e, 0x5d, 0x81, 0x1a, 0x4c, 0xfe, 0x09, 0x33, 0xc5, 0xeb,
+ 0xf2, 0xb1, 0xd1, 0xd9, 0x12, 0xcd, 0x4d, 0x33, 0x74, 0xe7, 0x8b, 0x24,
+ 0xf6, 0xc7, 0xd9, 0xfd,
+};
+static const unsigned char kat3856_addinpr1[] = {
+ 0x22, 0x30, 0x5e, 0x83, 0xb7, 0xc3, 0x62, 0xf9, 0x3a, 0xbe, 0xae, 0x00,
+ 0x44, 0x45, 0x9b, 0x2b, 0xa9, 0xbc, 0x10, 0x85, 0x26, 0x55, 0x58, 0x81,
+ 0xdc, 0x9a, 0x9e, 0x7f, 0x74, 0xaf, 0xba, 0xad, 0xe4, 0x49, 0x96, 0xad,
+ 0x04, 0x78, 0xb0, 0x15,
+};
+static const unsigned char kat3856_entropyinpr2[] = {
+ 0xbb, 0x39, 0xf2, 0x54, 0x81, 0xe8, 0xde, 0x9f, 0xfd, 0x54, 0x02, 0x83,
+ 0xac, 0x67, 0x47, 0x9a, 0xae, 0x1d, 0x9c, 0xf6, 0x14, 0x31, 0x5d, 0xb7,
+ 0xd8, 0xec, 0x64, 0xaf, 0xa9, 0xa8, 0x41, 0xca, 0x93, 0x8c, 0x92, 0x89,
+ 0x6d, 0x8e, 0x84, 0x24,
+};
+static const unsigned char kat3856_addinpr2[] = {
+ 0x58, 0x71, 0x96, 0xfa, 0x6d, 0x13, 0xa8, 0x50, 0x06, 0xe2, 0x58, 0xcf,
+ 0xef, 0x4b, 0xce, 0x56, 0xe9, 0x16, 0xc6, 0x52, 0x12, 0x5f, 0xb7, 0x9f,
+ 0xfc, 0x8a, 0xf3, 0x4e, 0x0f, 0x2b, 0x7c, 0x35, 0x7c, 0x1d, 0x61, 0xfd,
+ 0xa6, 0xf5, 0xe3, 0xfa,
+};
+static const unsigned char kat3856_retbits[] = {
+ 0xa4, 0xb1, 0xad, 0xd2, 0x4b, 0xd7, 0x83, 0x66, 0xd7, 0x71, 0x25, 0xec,
+ 0x10, 0x0b, 0xb3, 0xc4, 0x0d, 0xd1, 0xae, 0x1a, 0x0e, 0xe8, 0xe0, 0x26,
+ 0x54, 0x14, 0x62, 0x24, 0x3e, 0x5d, 0x2d, 0xb2, 0xf1, 0xa4, 0x7a, 0xff,
+ 0xbd, 0xd3, 0x64, 0x36, 0x03, 0x59, 0xdb, 0xb5, 0xe6, 0xee, 0xb5, 0x25,
+ 0xd7, 0x3a, 0x43, 0xa4, 0x75, 0x31, 0xc0, 0x4c, 0x03, 0x32, 0x53, 0x52,
+ 0xc6, 0xf2, 0x50, 0x84,
+};
+static const struct drbg_kat_pr_true kat3856_t = {
+ 0, kat3856_entropyin, kat3856_nonce, kat3856_persstr,
+ kat3856_entropyinpr1, kat3856_addinpr1, kat3856_entropyinpr2,
+ kat3856_addinpr2, kat3856_retbits
+};
+static const struct drbg_kat kat3856 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3856_t
+};
+
+static const unsigned char kat3857_entropyin[] = {
+ 0x2f, 0xe7, 0x11, 0x89, 0x1c, 0xe5, 0xa9, 0x1f, 0xa8, 0x6a, 0x33, 0x9a,
+ 0xf8, 0x6c, 0x81, 0xc1, 0xb1, 0xf2, 0x73, 0xd1, 0xe3, 0xb1, 0x10, 0xb9,
+ 0x2b, 0x60, 0xe7, 0xc6, 0xdd, 0xa1, 0x26, 0x88, 0x31, 0xb6, 0xd4, 0x4b,
+ 0x73, 0x3f, 0x1b, 0x24,
+};
+static const unsigned char kat3857_nonce[] = {0};
+static const unsigned char kat3857_persstr[] = {0};
+static const unsigned char kat3857_entropyinpr1[] = {
+ 0x22, 0x07, 0x1b, 0xa3, 0x19, 0xfe, 0x0e, 0xe8, 0x48, 0x1e, 0xa6, 0x58,
+ 0x17, 0x87, 0xd8, 0x38, 0x84, 0xb8, 0x89, 0x6d, 0x30, 0xad, 0xee, 0x0f,
+ 0xa1, 0xde, 0x4d, 0x8c, 0x1e, 0xfa, 0xe4, 0x90, 0xeb, 0xe2, 0xb6, 0xd6,
+ 0xc3, 0xce, 0x42, 0x38,
+};
+static const unsigned char kat3857_addinpr1[] = {
+ 0x8c, 0x4d, 0xeb, 0x80, 0xbe, 0x4e, 0x03, 0x68, 0x11, 0x9b, 0x1e, 0x1b,
+ 0x65, 0xe7, 0xd5, 0xa9, 0x32, 0x40, 0x2e, 0x3d, 0xf8, 0xba, 0x07, 0x2e,
+ 0x6f, 0x68, 0x76, 0xd0, 0xa5, 0x7b, 0x13, 0xd9, 0x8f, 0x56, 0x3e, 0x26,
+ 0xbd, 0x90, 0x6b, 0xeb,
+};
+static const unsigned char kat3857_entropyinpr2[] = {
+ 0x89, 0xa2, 0xce, 0x7c, 0x80, 0xb3, 0x9b, 0x6a, 0xc4, 0x61, 0xb9, 0xc7,
+ 0x3f, 0xc6, 0x3a, 0x03, 0x92, 0x25, 0xa2, 0xcd, 0x16, 0xc8, 0x1a, 0x25,
+ 0xdd, 0x6d, 0x69, 0x28, 0x11, 0xf8, 0x7c, 0xe6, 0x4f, 0xe9, 0x23, 0x11,
+ 0xfe, 0xbb, 0xa8, 0x76,
+};
+static const unsigned char kat3857_addinpr2[] = {
+ 0x94, 0x84, 0xe4, 0x30, 0x3a, 0x48, 0x81, 0x4b, 0x1d, 0x44, 0xd4, 0xff,
+ 0x50, 0xc2, 0x2e, 0xe1, 0xba, 0x15, 0x94, 0xa5, 0xf7, 0xd0, 0x7b, 0x9f,
+ 0xc7, 0xbb, 0xea, 0xba, 0xe0, 0xa1, 0x31, 0xe2, 0xa4, 0x78, 0x18, 0x63,
+ 0xce, 0x12, 0xc7, 0x5e,
+};
+static const unsigned char kat3857_retbits[] = {
+ 0x96, 0xb2, 0x8f, 0x06, 0x77, 0xf2, 0x6b, 0xcc, 0x65, 0x3d, 0xf2, 0xbc,
+ 0x66, 0x0d, 0x69, 0xca, 0x33, 0x5d, 0x2c, 0x8f, 0x4e, 0x8d, 0x15, 0x1d,
+ 0xa3, 0x59, 0x66, 0xd1, 0xae, 0xf2, 0x94, 0xa5, 0xc3, 0x42, 0xec, 0x68,
+ 0xdb, 0xc3, 0x29, 0x64, 0x2f, 0x80, 0x98, 0xf3, 0x88, 0x09, 0x40, 0xa5,
+ 0x83, 0x4c, 0xa6, 0x44, 0x0c, 0x77, 0x56, 0x15, 0x53, 0xaf, 0xc5, 0xc1,
+ 0x5a, 0xd2, 0xcd, 0x1a,
+};
+static const struct drbg_kat_pr_true kat3857_t = {
+ 1, kat3857_entropyin, kat3857_nonce, kat3857_persstr,
+ kat3857_entropyinpr1, kat3857_addinpr1, kat3857_entropyinpr2,
+ kat3857_addinpr2, kat3857_retbits
+};
+static const struct drbg_kat kat3857 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3857_t
+};
+
+static const unsigned char kat3858_entropyin[] = {
+ 0x67, 0x58, 0xf1, 0xb9, 0x60, 0x95, 0x12, 0xf8, 0xd2, 0xb0, 0xc3, 0x47,
+ 0x3e, 0x74, 0x66, 0x7e, 0x1f, 0x15, 0x6f, 0x56, 0xe2, 0xe4, 0x4c, 0x35,
+ 0x76, 0xdb, 0x0f, 0xe0, 0xaa, 0xd5, 0x64, 0xb8, 0x0d, 0x44, 0x7b, 0x27,
+ 0xd2, 0x3d, 0x66, 0x45,
+};
+static const unsigned char kat3858_nonce[] = {0};
+static const unsigned char kat3858_persstr[] = {0};
+static const unsigned char kat3858_entropyinpr1[] = {
+ 0x1e, 0x7e, 0x98, 0x65, 0x70, 0x35, 0x0b, 0x0e, 0x34, 0xe7, 0x70, 0x4e,
+ 0xa3, 0x2b, 0xe0, 0xf9, 0xdb, 0x9e, 0x17, 0xf1, 0x1b, 0x60, 0x83, 0x20,
+ 0x45, 0xc1, 0x78, 0x27, 0x07, 0x53, 0x48, 0x7e, 0xe3, 0xcb, 0xb2, 0x04,
+ 0x6c, 0xea, 0x39, 0x94,
+};
+static const unsigned char kat3858_addinpr1[] = {
+ 0x96, 0xca, 0xbf, 0x90, 0xdc, 0xdc, 0xff, 0xa4, 0x17, 0x0e, 0x91, 0x3e,
+ 0x32, 0x98, 0x01, 0xf8, 0x36, 0xb4, 0xad, 0x11, 0x8a, 0x56, 0x56, 0xfa,
+ 0x70, 0xd6, 0xf4, 0xb4, 0x02, 0x16, 0xec, 0x91, 0xc5, 0x15, 0xba, 0x55,
+ 0x83, 0x86, 0x3f, 0xb2,
+};
+static const unsigned char kat3858_entropyinpr2[] = {
+ 0xaf, 0x9d, 0x4b, 0xda, 0x67, 0x1f, 0x29, 0x50, 0xb1, 0x0f, 0x83, 0xd9,
+ 0xb9, 0xd6, 0x88, 0x52, 0xc4, 0x2a, 0x09, 0xec, 0x31, 0x90, 0x85, 0x1c,
+ 0x8e, 0xe5, 0xde, 0x1b, 0xa8, 0x22, 0x49, 0x80, 0xbe, 0x20, 0xc5, 0x0b,
+ 0xcf, 0xfe, 0xa5, 0x10,
+};
+static const unsigned char kat3858_addinpr2[] = {
+ 0x1b, 0x73, 0x89, 0xef, 0x8b, 0x21, 0x97, 0x08, 0x66, 0x68, 0x21, 0x8e,
+ 0xc4, 0x23, 0x25, 0x1f, 0x0c, 0xbb, 0x0a, 0x5c, 0x0e, 0x88, 0x78, 0x4b,
+ 0xb5, 0x05, 0x40, 0x87, 0x01, 0xb9, 0xd5, 0xce, 0xae, 0x82, 0xba, 0xa7,
+ 0xcf, 0x6a, 0x77, 0xb0,
+};
+static const unsigned char kat3858_retbits[] = {
+ 0x9c, 0x83, 0x5d, 0x99, 0x64, 0x8c, 0x5d, 0xef, 0x0f, 0x5e, 0xd9, 0xd3,
+ 0xbc, 0x32, 0xae, 0x6c, 0x48, 0x4c, 0xd3, 0x08, 0xa1, 0x7f, 0xac, 0x1b,
+ 0x12, 0x37, 0x61, 0x7a, 0x17, 0x2f, 0x4b, 0x68, 0x40, 0x21, 0x3f, 0x8d,
+ 0x79, 0x4e, 0x9f, 0x3d, 0xf0, 0x54, 0x32, 0x91, 0x28, 0xbf, 0x8b, 0x8f,
+ 0x7b, 0x96, 0xb2, 0x22, 0x46, 0xb5, 0xd8, 0x01, 0x36, 0x0b, 0x38, 0x47,
+ 0x0e, 0xf2, 0x6d, 0xaf,
+};
+static const struct drbg_kat_pr_true kat3858_t = {
+ 2, kat3858_entropyin, kat3858_nonce, kat3858_persstr,
+ kat3858_entropyinpr1, kat3858_addinpr1, kat3858_entropyinpr2,
+ kat3858_addinpr2, kat3858_retbits
+};
+static const struct drbg_kat kat3858 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3858_t
+};
+
+static const unsigned char kat3859_entropyin[] = {
+ 0x08, 0x13, 0x28, 0x50, 0x39, 0x87, 0xfa, 0xa5, 0x29, 0x7a, 0xb5, 0xa4,
+ 0xa8, 0x86, 0x5c, 0x73, 0xc2, 0x8f, 0x20, 0xed, 0x00, 0x94, 0xdd, 0xe1,
+ 0xaf, 0x9a, 0xb8, 0x62, 0x67, 0xf7, 0xf5, 0x38, 0x39, 0xaf, 0xe7, 0x31,
+ 0x69, 0xab, 0x58, 0x01,
+};
+static const unsigned char kat3859_nonce[] = {0};
+static const unsigned char kat3859_persstr[] = {0};
+static const unsigned char kat3859_entropyinpr1[] = {
+ 0xa0, 0x22, 0x6d, 0xc3, 0x05, 0x71, 0xcd, 0xfb, 0x95, 0xa1, 0x59, 0x9e,
+ 0xc9, 0x29, 0x85, 0xa0, 0xc5, 0xd8, 0x0b, 0x8e, 0xb4, 0x44, 0x7c, 0x34,
+ 0xcc, 0x8d, 0xc5, 0x82, 0x80, 0xf8, 0x78, 0x77, 0xc6, 0x50, 0x77, 0xf3,
+ 0x68, 0x02, 0xff, 0x6d,
+};
+static const unsigned char kat3859_addinpr1[] = {
+ 0x12, 0xba, 0xd7, 0x1a, 0x1b, 0x0b, 0x47, 0x54, 0x2f, 0x19, 0x59, 0xe1,
+ 0x8c, 0x07, 0xac, 0xa0, 0x12, 0x89, 0xc0, 0x2a, 0x1d, 0x45, 0xd6, 0xf9,
+ 0xe4, 0xa4, 0x3b, 0x26, 0xaa, 0x2e, 0x29, 0x2c, 0x52, 0x07, 0x94, 0x48,
+ 0x8d, 0x41, 0x9d, 0x94,
+};
+static const unsigned char kat3859_entropyinpr2[] = {
+ 0x11, 0x35, 0xc4, 0x32, 0x59, 0xef, 0xc5, 0x75, 0xf6, 0xad, 0x0f, 0xe2,
+ 0x0c, 0xb4, 0x01, 0xc2, 0xc0, 0xac, 0x13, 0xdc, 0x99, 0x78, 0xa6, 0x0f,
+ 0x32, 0x8f, 0xbb, 0x0c, 0x3e, 0x75, 0x71, 0xf3, 0x60, 0x6b, 0xe0, 0x17,
+ 0x9c, 0x80, 0xb8, 0x0b,
+};
+static const unsigned char kat3859_addinpr2[] = {
+ 0x64, 0xb6, 0xbb, 0x02, 0xff, 0xb6, 0x0c, 0x4f, 0x57, 0x01, 0x7f, 0x1e,
+ 0x84, 0x10, 0xd8, 0x7b, 0xf2, 0x42, 0x66, 0x57, 0xce, 0x4a, 0xaf, 0xa5,
+ 0x85, 0x8d, 0xc3, 0xc8, 0x7b, 0x7a, 0x27, 0xad, 0x86, 0x98, 0x8e, 0x0a,
+ 0xdc, 0x11, 0xcc, 0x25,
+};
+static const unsigned char kat3859_retbits[] = {
+ 0xc8, 0x0e, 0x87, 0xb9, 0x20, 0xd5, 0xe8, 0xeb, 0x38, 0x45, 0xbf, 0xd9,
+ 0x13, 0xea, 0x9c, 0xb9, 0x61, 0xff, 0xce, 0xad, 0x1d, 0x76, 0x39, 0xe9,
+ 0x47, 0x7a, 0x87, 0x6f, 0xa7, 0x48, 0xbf, 0x30, 0x08, 0x4c, 0x33, 0x6d,
+ 0x85, 0x62, 0x6d, 0x0c, 0x01, 0xa1, 0xd1, 0x17, 0x1a, 0x56, 0xd0, 0x52,
+ 0x42, 0x2f, 0xbb, 0x81, 0xac, 0x3f, 0x1f, 0xe9, 0x96, 0x91, 0x31, 0xc4,
+ 0xb9, 0xeb, 0x7e, 0x8d,
+};
+static const struct drbg_kat_pr_true kat3859_t = {
+ 3, kat3859_entropyin, kat3859_nonce, kat3859_persstr,
+ kat3859_entropyinpr1, kat3859_addinpr1, kat3859_entropyinpr2,
+ kat3859_addinpr2, kat3859_retbits
+};
+static const struct drbg_kat kat3859 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3859_t
+};
+
+static const unsigned char kat3860_entropyin[] = {
+ 0x80, 0xd4, 0x0d, 0xd9, 0xe2, 0xe0, 0x02, 0x9c, 0x6d, 0x06, 0x4c, 0xd8,
+ 0xf0, 0x2b, 0xe2, 0x9f, 0x66, 0x42, 0x4d, 0xda, 0x63, 0xb1, 0xb3, 0x69,
+ 0xfe, 0x32, 0xd7, 0x01, 0x26, 0x3c, 0xe5, 0x06, 0xba, 0x14, 0x2d, 0xbb,
+ 0x4d, 0xa1, 0x57, 0x95,
+};
+static const unsigned char kat3860_nonce[] = {0};
+static const unsigned char kat3860_persstr[] = {0};
+static const unsigned char kat3860_entropyinpr1[] = {
+ 0x5f, 0xc1, 0xa8, 0xbf, 0xe2, 0x6b, 0x9f, 0x9c, 0x8a, 0xeb, 0xc6, 0x6c,
+ 0xc5, 0x6d, 0x15, 0x11, 0x50, 0x00, 0xff, 0x34, 0x10, 0xfd, 0x1a, 0x2b,
+ 0x9c, 0xff, 0xe4, 0x6b, 0x80, 0xa6, 0x36, 0xfb, 0x9e, 0x4b, 0xd4, 0x3f,
+ 0xa6, 0xea, 0xf9, 0xcd,
+};
+static const unsigned char kat3860_addinpr1[] = {
+ 0xed, 0x82, 0x80, 0xac, 0xe3, 0x7d, 0x5d, 0x0e, 0x1e, 0x05, 0xdc, 0x01,
+ 0x24, 0x18, 0x9d, 0xed, 0xf8, 0xe0, 0xa4, 0xfe, 0xd5, 0x8a, 0x51, 0x7c,
+ 0x98, 0x4f, 0x3c, 0x33, 0xd9, 0x7e, 0x51, 0x39, 0x6e, 0xa1, 0x9a, 0x2e,
+ 0xa5, 0xbe, 0xca, 0x86,
+};
+static const unsigned char kat3860_entropyinpr2[] = {
+ 0xe7, 0x4c, 0x26, 0xdd, 0xfc, 0x7c, 0xf7, 0x77, 0x96, 0x47, 0x7a, 0xf2,
+ 0x42, 0xc1, 0x95, 0x41, 0x7f, 0x76, 0xf2, 0xf7, 0x5e, 0x9f, 0xba, 0xbb,
+ 0xd6, 0x30, 0x70, 0xf9, 0x90, 0xd1, 0x3a, 0x7b, 0x7f, 0x49, 0xed, 0x11,
+ 0xcc, 0xe2, 0x71, 0x47,
+};
+static const unsigned char kat3860_addinpr2[] = {
+ 0x76, 0x6b, 0xc7, 0x27, 0x18, 0xa4, 0x9b, 0x93, 0x0f, 0xca, 0x71, 0xec,
+ 0x14, 0x65, 0x5e, 0x56, 0xa5, 0xde, 0x0b, 0x9b, 0xac, 0x86, 0x60, 0x00,
+ 0xdb, 0x51, 0x34, 0xd2, 0x8f, 0xd2, 0x3b, 0x02, 0xbd, 0x28, 0x65, 0x51,
+ 0xc6, 0x6d, 0x78, 0x8b,
+};
+static const unsigned char kat3860_retbits[] = {
+ 0x21, 0xa6, 0xed, 0xaf, 0x26, 0x18, 0xad, 0x7a, 0x23, 0x37, 0x14, 0x62,
+ 0x13, 0x60, 0x90, 0xda, 0x6d, 0xb7, 0xa1, 0x77, 0x04, 0x5a, 0x79, 0x20,
+ 0x7a, 0x87, 0x9c, 0xad, 0xef, 0x9a, 0x2c, 0x0a, 0x0c, 0xd2, 0x0f, 0x0b,
+ 0x9a, 0xbf, 0xff, 0x05, 0x09, 0x70, 0x1c, 0x71, 0xf7, 0x49, 0x15, 0x37,
+ 0x21, 0x80, 0x8d, 0x44, 0xa5, 0x94, 0x1d, 0xac, 0xa3, 0x13, 0xf3, 0x9e,
+ 0xdb, 0x73, 0x2e, 0xf5,
+};
+static const struct drbg_kat_pr_true kat3860_t = {
+ 4, kat3860_entropyin, kat3860_nonce, kat3860_persstr,
+ kat3860_entropyinpr1, kat3860_addinpr1, kat3860_entropyinpr2,
+ kat3860_addinpr2, kat3860_retbits
+};
+static const struct drbg_kat kat3860 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3860_t
+};
+
+static const unsigned char kat3861_entropyin[] = {
+ 0xca, 0x9d, 0xd7, 0xe2, 0x8b, 0x16, 0x49, 0x26, 0xa4, 0xa4, 0x61, 0x96,
+ 0xfc, 0xee, 0xf2, 0xd8, 0x95, 0xbb, 0x68, 0xf4, 0x20, 0xfc, 0x07, 0xdb,
+ 0xff, 0x1f, 0x5b, 0x4d, 0x2a, 0x79, 0xf2, 0x56, 0xcc, 0x52, 0xfb, 0x28,
+ 0xe5, 0x0b, 0xbf, 0x91,
+};
+static const unsigned char kat3861_nonce[] = {0};
+static const unsigned char kat3861_persstr[] = {0};
+static const unsigned char kat3861_entropyinpr1[] = {
+ 0x28, 0x08, 0x3b, 0xa9, 0x88, 0x20, 0x41, 0x0b, 0x63, 0xd0, 0xda, 0x42,
+ 0x93, 0x4a, 0x0b, 0x98, 0xe2, 0x9a, 0x8b, 0xfd, 0x71, 0xf0, 0x70, 0xae,
+ 0x40, 0xfc, 0x81, 0xd1, 0x21, 0x13, 0x1b, 0x7a, 0x38, 0x3b, 0x16, 0x4a,
+ 0xf4, 0xea, 0x5c, 0x90,
+};
+static const unsigned char kat3861_addinpr1[] = {
+ 0x89, 0x1b, 0xd5, 0xb9, 0x04, 0xe6, 0x03, 0xa7, 0x5a, 0xaf, 0x1e, 0xfd,
+ 0xcc, 0x3c, 0xf3, 0xcb, 0x3c, 0x84, 0xb2, 0x24, 0xd9, 0x86, 0x19, 0x12,
+ 0x0d, 0x7a, 0x32, 0x24, 0xc9, 0x58, 0xaa, 0x81, 0x83, 0x71, 0x45, 0x3e,
+ 0x56, 0x31, 0xa2, 0xa9,
+};
+static const unsigned char kat3861_entropyinpr2[] = {
+ 0x38, 0xde, 0x99, 0xd2, 0xb1, 0x9d, 0xe5, 0x57, 0x22, 0x4a, 0x66, 0x4a,
+ 0xd3, 0x6a, 0x4b, 0x5a, 0xbd, 0x40, 0x60, 0x8f, 0x77, 0x3f, 0x86, 0x2c,
+ 0xcf, 0x6d, 0x7d, 0xee, 0xec, 0xdd, 0x77, 0x99, 0x2b, 0xfa, 0x37, 0x53,
+ 0x67, 0x76, 0x10, 0x9a,
+};
+static const unsigned char kat3861_addinpr2[] = {
+ 0x8e, 0x02, 0xd8, 0xc7, 0x0e, 0x14, 0xf7, 0x74, 0x32, 0x29, 0xf4, 0x17,
+ 0x7e, 0x97, 0x36, 0x3b, 0xb8, 0xb0, 0xed, 0xf9, 0xa0, 0x11, 0x65, 0xf9,
+ 0x88, 0x16, 0x44, 0xb5, 0x04, 0x18, 0x8a, 0x2b, 0xa8, 0xdd, 0xbd, 0x68,
+ 0xeb, 0xc3, 0x24, 0x04,
+};
+static const unsigned char kat3861_retbits[] = {
+ 0x87, 0x91, 0x12, 0x4b, 0x30, 0x75, 0x25, 0x99, 0x0a, 0x66, 0x39, 0x59,
+ 0x0a, 0x82, 0xff, 0x29, 0xa7, 0xd8, 0x32, 0x6d, 0x4f, 0x6b, 0x2e, 0x52,
+ 0x2b, 0xc1, 0x45, 0x7b, 0xec, 0x16, 0xc3, 0xa6, 0xd5, 0xe5, 0x38, 0x32,
+ 0x06, 0x20, 0xb7, 0x79, 0xe7, 0x9f, 0xed, 0x88, 0xc3, 0x55, 0x13, 0x67,
+ 0x6e, 0x6c, 0xf6, 0x00, 0xca, 0x5a, 0x0b, 0xcb, 0xb4, 0xf9, 0x7a, 0xee,
+ 0xac, 0xea, 0x1e, 0xda,
+};
+static const struct drbg_kat_pr_true kat3861_t = {
+ 5, kat3861_entropyin, kat3861_nonce, kat3861_persstr,
+ kat3861_entropyinpr1, kat3861_addinpr1, kat3861_entropyinpr2,
+ kat3861_addinpr2, kat3861_retbits
+};
+static const struct drbg_kat kat3861 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3861_t
+};
+
+static const unsigned char kat3862_entropyin[] = {
+ 0xc3, 0x84, 0xb8, 0x6c, 0x82, 0xcb, 0xaf, 0xe6, 0xf8, 0xaf, 0x7f, 0x43,
+ 0x19, 0xd2, 0x65, 0x3c, 0x7b, 0xab, 0x0e, 0x3a, 0xfe, 0xd1, 0xa3, 0x3b,
+ 0xc2, 0x2d, 0xa3, 0xeb, 0xc2, 0x34, 0x8d, 0xce, 0xea, 0x67, 0x4a, 0xda,
+ 0x54, 0xd1, 0x94, 0x86,
+};
+static const unsigned char kat3862_nonce[] = {0};
+static const unsigned char kat3862_persstr[] = {0};
+static const unsigned char kat3862_entropyinpr1[] = {
+ 0xbc, 0x6c, 0x20, 0x8c, 0x8d, 0x40, 0xe8, 0x6e, 0xaf, 0x11, 0xb0, 0x18,
+ 0xad, 0x40, 0x3e, 0x1c, 0xc7, 0x48, 0x95, 0x94, 0x7f, 0xc1, 0xe1, 0x1e,
+ 0x79, 0xec, 0x3c, 0xce, 0xab, 0x40, 0x31, 0x80, 0xea, 0xdc, 0x4a, 0xb9,
+ 0x1f, 0x48, 0x11, 0xd1,
+};
+static const unsigned char kat3862_addinpr1[] = {
+ 0x7b, 0x83, 0xd1, 0x13, 0x11, 0x9a, 0xd1, 0x59, 0xf0, 0xf7, 0x7c, 0x55,
+ 0x30, 0xea, 0xad, 0x68, 0x22, 0x86, 0xfe, 0x31, 0x83, 0x11, 0xa0, 0x57,
+ 0x5a, 0x3d, 0x77, 0x43, 0x39, 0x48, 0x29, 0xa7, 0x4e, 0x49, 0x15, 0x51,
+ 0x78, 0xec, 0xe9, 0x62,
+};
+static const unsigned char kat3862_entropyinpr2[] = {
+ 0xb9, 0x9d, 0xb5, 0x42, 0x28, 0x3b, 0xd9, 0x7f, 0x63, 0x16, 0x5d, 0xea,
+ 0x03, 0x1b, 0x18, 0x88, 0xe0, 0x82, 0x00, 0xa9, 0x04, 0x99, 0xa8, 0x43,
+ 0x83, 0x71, 0x6a, 0xfe, 0x78, 0x7b, 0xac, 0x1e, 0x65, 0x29, 0x67, 0xd6,
+ 0x9f, 0xe1, 0xcd, 0xc5,
+};
+static const unsigned char kat3862_addinpr2[] = {
+ 0xac, 0x5e, 0xf5, 0x10, 0x22, 0x41, 0x27, 0x60, 0x55, 0x98, 0x96, 0x25,
+ 0xfc, 0x86, 0x0c, 0x42, 0xa7, 0x70, 0x5a, 0x6f, 0x61, 0x36, 0xd5, 0xa1,
+ 0xf6, 0x13, 0xd1, 0x4f, 0x7c, 0xb4, 0x58, 0x63, 0xde, 0xae, 0xcc, 0xe3,
+ 0x46, 0x87, 0xca, 0x61,
+};
+static const unsigned char kat3862_retbits[] = {
+ 0xa9, 0x40, 0x11, 0x39, 0xa2, 0xaa, 0x31, 0x9c, 0xec, 0xd9, 0xea, 0x96,
+ 0x0f, 0xd5, 0x3d, 0x6f, 0x86, 0xa1, 0x08, 0xe5, 0xf1, 0x28, 0xce, 0x77,
+ 0x42, 0x20, 0xee, 0xd1, 0x9f, 0xdc, 0xb7, 0x6f, 0x4f, 0x48, 0xe6, 0x77,
+ 0x3d, 0x9c, 0x43, 0x10, 0x0d, 0xf0, 0xd0, 0x8a, 0x49, 0xf6, 0xdb, 0xfc,
+ 0xb0, 0xe1, 0x7f, 0xab, 0x6e, 0xea, 0x97, 0x9e, 0xc7, 0x76, 0x12, 0x9d,
+ 0xda, 0x8a, 0x9b, 0x90,
+};
+static const struct drbg_kat_pr_true kat3862_t = {
+ 6, kat3862_entropyin, kat3862_nonce, kat3862_persstr,
+ kat3862_entropyinpr1, kat3862_addinpr1, kat3862_entropyinpr2,
+ kat3862_addinpr2, kat3862_retbits
+};
+static const struct drbg_kat kat3862 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3862_t
+};
+
+static const unsigned char kat3863_entropyin[] = {
+ 0xe9, 0x6c, 0xce, 0x83, 0xad, 0x1c, 0x4a, 0xac, 0x66, 0xfd, 0xec, 0x4c,
+ 0x61, 0xee, 0xd4, 0x6d, 0x2a, 0xab, 0x85, 0x86, 0x60, 0xac, 0x19, 0xb8,
+ 0xb0, 0xff, 0x7a, 0xd3, 0x05, 0x73, 0xc9, 0x30, 0x7d, 0x3f, 0xe9, 0x9d,
+ 0x2f, 0x18, 0x66, 0x9b,
+};
+static const unsigned char kat3863_nonce[] = {0};
+static const unsigned char kat3863_persstr[] = {0};
+static const unsigned char kat3863_entropyinpr1[] = {
+ 0xd7, 0x53, 0x33, 0x7d, 0x3d, 0x84, 0xd1, 0x22, 0x7e, 0x43, 0x02, 0xee,
+ 0xe7, 0x2b, 0x26, 0xc8, 0x39, 0x74, 0x54, 0x9b, 0x9a, 0x15, 0x4d, 0xb9,
+ 0xba, 0x83, 0xee, 0xaf, 0x8b, 0x98, 0x16, 0xc8, 0xbb, 0xd1, 0x63, 0xed,
+ 0x25, 0xe8, 0x6b, 0x0a,
+};
+static const unsigned char kat3863_addinpr1[] = {
+ 0x41, 0x76, 0x89, 0xe2, 0x5e, 0xe7, 0x0d, 0xc2, 0xad, 0x77, 0x4e, 0xc5,
+ 0x31, 0xa2, 0xf2, 0x63, 0xc6, 0xee, 0xcb, 0xa1, 0x29, 0x49, 0x6d, 0x49,
+ 0xc1, 0xc6, 0x3a, 0xc9, 0x35, 0x7a, 0xea, 0xde, 0x79, 0x7f, 0x9f, 0xc3,
+ 0xf5, 0x4f, 0xf3, 0x10,
+};
+static const unsigned char kat3863_entropyinpr2[] = {
+ 0x98, 0x74, 0xb2, 0xd3, 0x40, 0x28, 0xa5, 0xad, 0x52, 0xe6, 0x62, 0x09,
+ 0x2f, 0x93, 0x0d, 0xf2, 0xcc, 0xa9, 0x69, 0xfe, 0x68, 0x2b, 0x61, 0x9c,
+ 0x2e, 0x4a, 0x65, 0x8a, 0xe2, 0x6d, 0xf2, 0xa8, 0x1f, 0xb2, 0xc7, 0xa1,
+ 0xe4, 0xf2, 0x1e, 0x3e,
+};
+static const unsigned char kat3863_addinpr2[] = {
+ 0xb1, 0x16, 0x1e, 0xb8, 0x79, 0xde, 0xa2, 0xf0, 0xcd, 0x23, 0x7e, 0xce,
+ 0x20, 0xae, 0x3a, 0x89, 0x30, 0xa2, 0x20, 0xa4, 0xd8, 0x6e, 0x48, 0x4c,
+ 0xb3, 0x3a, 0x71, 0xfa, 0x9c, 0x4e, 0x78, 0xff, 0xf9, 0x70, 0xd7, 0x1c,
+ 0xfd, 0x31, 0x8f, 0x86,
+};
+static const unsigned char kat3863_retbits[] = {
+ 0x1e, 0xbe, 0x04, 0x63, 0x68, 0x27, 0x1c, 0xa6, 0x38, 0xea, 0xf0, 0xc6,
+ 0xdc, 0xf5, 0x84, 0x50, 0x52, 0x74, 0x83, 0x43, 0x17, 0xa5, 0xf2, 0x68,
+ 0x3c, 0x1f, 0xcf, 0x1d, 0x67, 0x08, 0xba, 0x36, 0xae, 0x91, 0x88, 0x9c,
+ 0x58, 0x15, 0xa4, 0x7c, 0x72, 0x74, 0x07, 0x75, 0x82, 0xf7, 0x8b, 0x2b,
+ 0x77, 0xd2, 0x22, 0x3d, 0x5d, 0x5c, 0xc1, 0x84, 0xae, 0xd7, 0x1e, 0x93,
+ 0x50, 0x66, 0x6c, 0xb6,
+};
+static const struct drbg_kat_pr_true kat3863_t = {
+ 7, kat3863_entropyin, kat3863_nonce, kat3863_persstr,
+ kat3863_entropyinpr1, kat3863_addinpr1, kat3863_entropyinpr2,
+ kat3863_addinpr2, kat3863_retbits
+};
+static const struct drbg_kat kat3863 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3863_t
+};
+
+static const unsigned char kat3864_entropyin[] = {
+ 0x2a, 0x39, 0x9f, 0xf6, 0xa6, 0x0f, 0xfa, 0x7b, 0xc8, 0xa5, 0x65, 0x6a,
+ 0x2a, 0x31, 0x1f, 0xea, 0x04, 0x80, 0xec, 0x16, 0xbe, 0xd7, 0x6b, 0x72,
+ 0x5b, 0x0c, 0xfd, 0x14, 0x76, 0x9a, 0xd2, 0x8b, 0x3b, 0x0d, 0x5c, 0xa3,
+ 0xd4, 0x65, 0x22, 0xa2,
+};
+static const unsigned char kat3864_nonce[] = {0};
+static const unsigned char kat3864_persstr[] = {0};
+static const unsigned char kat3864_entropyinpr1[] = {
+ 0x71, 0x37, 0xac, 0xd9, 0x69, 0xf3, 0x10, 0x49, 0xa5, 0x2b, 0xa0, 0x85,
+ 0xab, 0xb8, 0xf8, 0xe8, 0x99, 0x6c, 0x69, 0xb3, 0xd3, 0xf2, 0xbc, 0x36,
+ 0xb6, 0x03, 0x32, 0x1f, 0xe6, 0x4c, 0xe9, 0x69, 0xc2, 0xd2, 0x1d, 0x7e,
+ 0xb6, 0xf7, 0xe5, 0x6d,
+};
+static const unsigned char kat3864_addinpr1[] = {
+ 0x7a, 0xdb, 0x9f, 0xdb, 0x05, 0xd7, 0x16, 0x48, 0x15, 0xbc, 0x5c, 0xfa,
+ 0xfc, 0xb2, 0xee, 0x6d, 0x86, 0xa3, 0x1e, 0xca, 0xd1, 0x8b, 0xc5, 0x37,
+ 0x78, 0x7a, 0x89, 0x6e, 0xdb, 0x9c, 0x5d, 0xf0, 0xa5, 0x83, 0xee, 0x9a,
+ 0x5c, 0xa7, 0x1c, 0x47,
+};
+static const unsigned char kat3864_entropyinpr2[] = {
+ 0xa8, 0x4d, 0x1d, 0xff, 0x3f, 0x20, 0xdc, 0x56, 0x1b, 0x1a, 0x6a, 0x8f,
+ 0x18, 0xff, 0xc7, 0x6c, 0x80, 0x45, 0x21, 0xba, 0xc9, 0x01, 0xf2, 0x4a,
+ 0x06, 0x7a, 0xb0, 0xe8, 0xf3, 0xbf, 0x09, 0xae, 0x5b, 0x93, 0x69, 0x1d,
+ 0xa1, 0x76, 0xfc, 0x70,
+};
+static const unsigned char kat3864_addinpr2[] = {
+ 0x3d, 0xc1, 0x36, 0x5d, 0x46, 0xa3, 0x3c, 0x8a, 0xd7, 0xbe, 0x4d, 0x1b,
+ 0x9c, 0xc2, 0x05, 0xa3, 0xc4, 0x59, 0x98, 0xb5, 0x6e, 0xf2, 0x4d, 0x86,
+ 0xa7, 0x99, 0x95, 0xa1, 0x9d, 0xcb, 0x22, 0xb2, 0xbc, 0xda, 0xbd, 0xe4,
+ 0x01, 0x75, 0xbf, 0xd2,
+};
+static const unsigned char kat3864_retbits[] = {
+ 0x2a, 0xdb, 0x8e, 0x9a, 0xe8, 0xee, 0x90, 0x94, 0xec, 0x49, 0xbf, 0x46,
+ 0x4f, 0xad, 0x4e, 0x23, 0xc0, 0x7a, 0x46, 0x63, 0x3e, 0xbe, 0x17, 0x02,
+ 0x48, 0x34, 0xc0, 0x4f, 0x9f, 0x06, 0xcc, 0xfe, 0x61, 0x8c, 0x36, 0x96,
+ 0x8e, 0x68, 0xce, 0x0a, 0x26, 0x7b, 0x06, 0x99, 0x4f, 0xba, 0x9e, 0x53,
+ 0x63, 0xbc, 0xf7, 0xe1, 0xb6, 0xa6, 0x26, 0x12, 0xdd, 0xca, 0x52, 0xab,
+ 0x9d, 0x19, 0x36, 0x12,
+};
+static const struct drbg_kat_pr_true kat3864_t = {
+ 8, kat3864_entropyin, kat3864_nonce, kat3864_persstr,
+ kat3864_entropyinpr1, kat3864_addinpr1, kat3864_entropyinpr2,
+ kat3864_addinpr2, kat3864_retbits
+};
+static const struct drbg_kat kat3864 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3864_t
+};
+
+static const unsigned char kat3865_entropyin[] = {
+ 0xc6, 0x29, 0xf9, 0x90, 0xa8, 0x3c, 0x52, 0xc9, 0xfb, 0xa8, 0xa1, 0xb3,
+ 0x47, 0x69, 0x6c, 0x2c, 0xa7, 0xd3, 0x75, 0x35, 0x0d, 0x81, 0x2c, 0x5c,
+ 0x96, 0x10, 0x53, 0x99, 0x29, 0x8c, 0x23, 0x18, 0xb5, 0xbd, 0xbe, 0xca,
+ 0x59, 0xa8, 0x8e, 0xbc,
+};
+static const unsigned char kat3865_nonce[] = {0};
+static const unsigned char kat3865_persstr[] = {0};
+static const unsigned char kat3865_entropyinpr1[] = {
+ 0xbb, 0x85, 0x55, 0x1b, 0x9d, 0x62, 0xea, 0xe2, 0x70, 0x05, 0xcf, 0x4e,
+ 0xe2, 0x64, 0x79, 0x91, 0xfe, 0x23, 0x66, 0x4a, 0x74, 0xea, 0xac, 0x53,
+ 0x10, 0xaa, 0x66, 0x19, 0x0c, 0x1f, 0xae, 0xb5, 0xe9, 0xe7, 0xd5, 0x44,
+ 0x41, 0xd9, 0x74, 0xf5,
+};
+static const unsigned char kat3865_addinpr1[] = {
+ 0x64, 0x68, 0x3d, 0x67, 0x16, 0x94, 0x5c, 0x80, 0xd5, 0x69, 0xd8, 0xc1,
+ 0x55, 0xdb, 0x06, 0xde, 0x52, 0xd2, 0x48, 0x6e, 0x48, 0x01, 0xd0, 0xa4,
+ 0x84, 0x6f, 0xe7, 0x6d, 0x07, 0x8d, 0x84, 0x1c, 0x1d, 0x89, 0x74, 0x9a,
+ 0xd0, 0x68, 0xe2, 0x9e,
+};
+static const unsigned char kat3865_entropyinpr2[] = {
+ 0x54, 0xdc, 0xe8, 0x23, 0xa3, 0x31, 0xe0, 0x0d, 0x22, 0x8c, 0xa9, 0xa7,
+ 0x4f, 0xe3, 0x5e, 0x44, 0x45, 0x0e, 0x54, 0xa8, 0x6a, 0x22, 0x97, 0xe8,
+ 0x97, 0x0a, 0x51, 0x2e, 0x18, 0xcb, 0xff, 0x9a, 0x21, 0xef, 0x56, 0x37,
+ 0xa0, 0xad, 0x1c, 0xbb,
+};
+static const unsigned char kat3865_addinpr2[] = {
+ 0x8e, 0xd1, 0xa4, 0xf8, 0x85, 0x49, 0x37, 0x09, 0x7a, 0x44, 0x39, 0x40,
+ 0xa3, 0x0c, 0x8c, 0x27, 0x31, 0xc1, 0xf9, 0xbf, 0x3d, 0x9d, 0x15, 0x35,
+ 0x2c, 0x59, 0x34, 0x5e, 0xa9, 0x93, 0x5e, 0x1e, 0xa6, 0x8b, 0xa2, 0x49,
+ 0xe2, 0xd4, 0x62, 0xfe,
+};
+static const unsigned char kat3865_retbits[] = {
+ 0x82, 0x2e, 0x29, 0xf8, 0xd7, 0xb4, 0x1f, 0xa1, 0x26, 0x11, 0xa1, 0x6a,
+ 0x62, 0xbb, 0xfb, 0x78, 0xb5, 0x44, 0x1c, 0xa3, 0x4e, 0x4e, 0x27, 0xdd,
+ 0xcb, 0x7a, 0x24, 0x23, 0x2a, 0xa7, 0x21, 0x6a, 0x69, 0x76, 0x34, 0x58,
+ 0xfb, 0xba, 0xee, 0x0a, 0x02, 0xa6, 0x4d, 0x94, 0xff, 0x4d, 0x6b, 0xa5,
+ 0xbe, 0x65, 0x53, 0x04, 0x68, 0x24, 0xac, 0x8c, 0x66, 0x4d, 0x32, 0x18,
+ 0x3d, 0x38, 0x3c, 0xe0,
+};
+static const struct drbg_kat_pr_true kat3865_t = {
+ 9, kat3865_entropyin, kat3865_nonce, kat3865_persstr,
+ kat3865_entropyinpr1, kat3865_addinpr1, kat3865_entropyinpr2,
+ kat3865_addinpr2, kat3865_retbits
+};
+static const struct drbg_kat kat3865 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3865_t
+};
+
+static const unsigned char kat3866_entropyin[] = {
+ 0x88, 0xb4, 0x1f, 0xba, 0x13, 0x2f, 0xd5, 0xc4, 0x6f, 0x58, 0x90, 0x21,
+ 0x96, 0xd7, 0x85, 0xe4, 0xc6, 0xc3, 0xc1, 0x5a, 0xa9, 0xa3, 0x80, 0x1b,
+ 0xd3, 0x1b, 0xa3, 0xf7, 0x4a, 0xdc, 0xc0, 0xa3, 0x72, 0x63, 0xa4, 0x8c,
+ 0x44, 0xdd, 0x39, 0xe4,
+};
+static const unsigned char kat3866_nonce[] = {0};
+static const unsigned char kat3866_persstr[] = {0};
+static const unsigned char kat3866_entropyinpr1[] = {
+ 0xe6, 0x51, 0x9f, 0x2f, 0x66, 0x95, 0x5b, 0x41, 0xcb, 0x27, 0x81, 0xb9,
+ 0x00, 0x1e, 0x2b, 0xe9, 0x58, 0x1b, 0x1e, 0xac, 0x7a, 0xec, 0x96, 0xde,
+ 0xf8, 0x0a, 0xb2, 0xf8, 0xc8, 0xf0, 0xbd, 0x4f, 0x28, 0x8b, 0x86, 0xf9,
+ 0xd0, 0xbc, 0x98, 0x10,
+};
+static const unsigned char kat3866_addinpr1[] = {
+ 0xbb, 0x40, 0xe4, 0x1d, 0x29, 0xd5, 0x78, 0xfd, 0xc4, 0x59, 0x5e, 0xc5,
+ 0xae, 0x5b, 0xd6, 0xef, 0x15, 0xfa, 0xc4, 0x71, 0xf8, 0xdc, 0x91, 0x00,
+ 0x67, 0x42, 0x35, 0xe6, 0x12, 0x71, 0x51, 0xf7, 0x52, 0xd5, 0x82, 0x13,
+ 0xdd, 0xc8, 0xc2, 0x69,
+};
+static const unsigned char kat3866_entropyinpr2[] = {
+ 0xfa, 0xa9, 0x1d, 0x51, 0x72, 0x2e, 0xc7, 0x14, 0x6e, 0xa9, 0x05, 0xfd,
+ 0x70, 0xea, 0xc1, 0xf8, 0x8d, 0x3c, 0x73, 0x83, 0x3f, 0x5b, 0x91, 0xd1,
+ 0xe4, 0x19, 0x85, 0xea, 0xd6, 0x4d, 0xd2, 0xa7, 0x30, 0xb2, 0x3f, 0xbf,
+ 0xa7, 0xce, 0x01, 0x8b,
+};
+static const unsigned char kat3866_addinpr2[] = {
+ 0xcb, 0x5e, 0xbd, 0xe0, 0xea, 0x1e, 0x01, 0x9f, 0x77, 0xee, 0xba, 0xea,
+ 0xbb, 0x48, 0xf1, 0x6f, 0x5d, 0xd2, 0x09, 0x62, 0x21, 0x9c, 0x3e, 0xbc,
+ 0x2c, 0x1a, 0x95, 0x52, 0xb7, 0xc3, 0x12, 0xfa, 0x1f, 0x9d, 0x68, 0xf9,
+ 0xed, 0x61, 0xa6, 0x26,
+};
+static const unsigned char kat3866_retbits[] = {
+ 0x93, 0x7c, 0x67, 0x10, 0xa2, 0x2e, 0xa3, 0x80, 0x5b, 0x6f, 0x91, 0x79,
+ 0x57, 0xd3, 0xa4, 0xb1, 0x36, 0xef, 0x6e, 0x6a, 0x05, 0xf6, 0x74, 0x28,
+ 0xdc, 0x4e, 0x07, 0x92, 0x28, 0x6d, 0xdf, 0xe2, 0x7d, 0x50, 0x54, 0xa4,
+ 0x05, 0xcf, 0x61, 0x25, 0x9a, 0x65, 0x19, 0x66, 0x93, 0xf9, 0x4c, 0x2b,
+ 0x50, 0xc6, 0xa9, 0x15, 0xbd, 0xfb, 0xa3, 0x96, 0xff, 0xc5, 0x72, 0xb6,
+ 0xfb, 0xab, 0x83, 0x11,
+};
+static const struct drbg_kat_pr_true kat3866_t = {
+ 10, kat3866_entropyin, kat3866_nonce, kat3866_persstr,
+ kat3866_entropyinpr1, kat3866_addinpr1, kat3866_entropyinpr2,
+ kat3866_addinpr2, kat3866_retbits
+};
+static const struct drbg_kat kat3866 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3866_t
+};
+
+static const unsigned char kat3867_entropyin[] = {
+ 0x37, 0xea, 0x6c, 0x5a, 0xaf, 0x90, 0x25, 0x99, 0xb6, 0xd4, 0xfa, 0xa4,
+ 0xb5, 0x4b, 0x90, 0xc0, 0x1b, 0x1f, 0x7a, 0xb2, 0xcf, 0x81, 0x13, 0xca,
+ 0xec, 0xea, 0xab, 0xe6, 0x98, 0xa8, 0xef, 0xb7, 0x17, 0x4a, 0xf8, 0x34,
+ 0xac, 0xea, 0x8a, 0x10,
+};
+static const unsigned char kat3867_nonce[] = {0};
+static const unsigned char kat3867_persstr[] = {0};
+static const unsigned char kat3867_entropyinpr1[] = {
+ 0x4e, 0x7f, 0x31, 0x57, 0x52, 0x5c, 0xdd, 0x3d, 0x20, 0x0a, 0x0c, 0xce,
+ 0x71, 0x99, 0x9a, 0xbc, 0x48, 0xbb, 0xba, 0xe2, 0xd2, 0x5d, 0x78, 0xfa,
+ 0x75, 0x00, 0x91, 0x22, 0x2f, 0xad, 0xd6, 0xd8, 0xd2, 0xea, 0xa6, 0xef,
+ 0x16, 0x7c, 0xc3, 0xcd,
+};
+static const unsigned char kat3867_addinpr1[] = {
+ 0x90, 0x99, 0xe1, 0x72, 0xc0, 0x6e, 0x34, 0x0f, 0xf8, 0xc6, 0x58, 0x43,
+ 0x04, 0x02, 0x31, 0x4c, 0xb2, 0x89, 0x34, 0xbb, 0xa8, 0xa0, 0x93, 0x87,
+ 0x06, 0xc4, 0x29, 0x59, 0x72, 0x09, 0x97, 0x2b, 0x96, 0x19, 0x56, 0x5d,
+ 0xe0, 0x7b, 0x41, 0x6a,
+};
+static const unsigned char kat3867_entropyinpr2[] = {
+ 0xa6, 0xcd, 0xdc, 0x89, 0x67, 0xe8, 0x19, 0x57, 0xe3, 0xad, 0xcc, 0x20,
+ 0x9e, 0xac, 0x24, 0x17, 0x5a, 0x52, 0x25, 0x9c, 0x42, 0x97, 0x8d, 0x03,
+ 0xb7, 0x15, 0x30, 0x35, 0x71, 0xa5, 0xd2, 0xec, 0x4e, 0xc5, 0x3d, 0x62,
+ 0xfb, 0xb1, 0x07, 0xdf,
+};
+static const unsigned char kat3867_addinpr2[] = {
+ 0x7b, 0x4f, 0x4f, 0x61, 0x80, 0x98, 0xfa, 0x5d, 0x7c, 0x27, 0x0a, 0x95,
+ 0x0d, 0x44, 0xbb, 0xc2, 0x49, 0xf1, 0xe4, 0x63, 0x0d, 0x79, 0xeb, 0x8c,
+ 0x2e, 0xf1, 0x64, 0xbd, 0xaa, 0xfd, 0x98, 0x2d, 0x9c, 0x57, 0x26, 0xd2,
+ 0xca, 0x48, 0xbd, 0xe9,
+};
+static const unsigned char kat3867_retbits[] = {
+ 0x31, 0x32, 0x0a, 0x4f, 0x8a, 0x8b, 0x9a, 0x2f, 0x16, 0x1b, 0x91, 0x40,
+ 0x2e, 0x51, 0x27, 0x48, 0x1e, 0x10, 0x34, 0x3b, 0xa7, 0xbb, 0xd3, 0xfd,
+ 0xbc, 0x6c, 0x26, 0x73, 0x40, 0xc6, 0xf8, 0x31, 0x13, 0x8a, 0x7a, 0x67,
+ 0x3f, 0xe5, 0x25, 0xdd, 0x08, 0x22, 0xb6, 0x89, 0x26, 0x8f, 0xe7, 0xdb,
+ 0xdd, 0x3f, 0xf0, 0xa9, 0xf1, 0x55, 0xa0, 0x89, 0x95, 0xdf, 0x3c, 0x50,
+ 0x81, 0x27, 0xc6, 0x98,
+};
+static const struct drbg_kat_pr_true kat3867_t = {
+ 11, kat3867_entropyin, kat3867_nonce, kat3867_persstr,
+ kat3867_entropyinpr1, kat3867_addinpr1, kat3867_entropyinpr2,
+ kat3867_addinpr2, kat3867_retbits
+};
+static const struct drbg_kat kat3867 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3867_t
+};
+
+static const unsigned char kat3868_entropyin[] = {
+ 0x09, 0x5b, 0x0f, 0x0c, 0x5b, 0x92, 0x30, 0xa6, 0xd2, 0x80, 0xbb, 0xa9,
+ 0x90, 0x1f, 0xd1, 0x4d, 0x1f, 0x5b, 0x3b, 0xa1, 0xf1, 0x08, 0xb8, 0x9b,
+ 0xbe, 0x64, 0xfc, 0x38, 0x38, 0x20, 0xef, 0xe9, 0x72, 0x07, 0xd5, 0x69,
+ 0xe8, 0x2e, 0xf4, 0xc7,
+};
+static const unsigned char kat3868_nonce[] = {0};
+static const unsigned char kat3868_persstr[] = {0};
+static const unsigned char kat3868_entropyinpr1[] = {
+ 0x5f, 0x0b, 0xf5, 0x46, 0xdb, 0x92, 0x80, 0x7d, 0x22, 0xf7, 0xd4, 0x50,
+ 0xea, 0x68, 0x20, 0x95, 0xeb, 0xf5, 0x41, 0x3e, 0x42, 0x98, 0xcf, 0x86,
+ 0x32, 0xae, 0x89, 0xc0, 0x82, 0x09, 0x93, 0xb8, 0x0c, 0x53, 0xb9, 0x47,
+ 0x9e, 0x2b, 0xb0, 0xf0,
+};
+static const unsigned char kat3868_addinpr1[] = {
+ 0x4f, 0x29, 0x26, 0x13, 0xed, 0xfe, 0x82, 0x9d, 0xca, 0xdf, 0x7f, 0xa8,
+ 0x87, 0x3a, 0x82, 0xab, 0x65, 0x5e, 0x94, 0x94, 0x6e, 0xb8, 0xae, 0x10,
+ 0x98, 0x8d, 0x60, 0x2e, 0xfa, 0x24, 0xd2, 0x40, 0x02, 0x75, 0x1d, 0x4c,
+ 0x80, 0xbb, 0x44, 0xda,
+};
+static const unsigned char kat3868_entropyinpr2[] = {
+ 0x53, 0xa4, 0x12, 0x7a, 0x58, 0xd5, 0x15, 0x65, 0x42, 0x22, 0xa4, 0x93,
+ 0xf0, 0x99, 0xe5, 0x4f, 0x77, 0x67, 0x19, 0x37, 0x7e, 0xf3, 0x73, 0x5d,
+ 0x89, 0xab, 0xc1, 0x5f, 0xe2, 0x73, 0xfb, 0x01, 0x02, 0xff, 0x7e, 0x24,
+ 0x9d, 0x86, 0x5b, 0xab,
+};
+static const unsigned char kat3868_addinpr2[] = {
+ 0x4d, 0xb6, 0xbb, 0x88, 0x7f, 0xc6, 0xea, 0x67, 0x3d, 0x71, 0xf7, 0xae,
+ 0x58, 0xdd, 0xa5, 0x0e, 0x4d, 0xf1, 0xa1, 0xee, 0x32, 0x84, 0x80, 0xa8,
+ 0x48, 0x5b, 0x9a, 0x9b, 0xeb, 0x89, 0x29, 0xcc, 0x2c, 0x3b, 0xd8, 0x2d,
+ 0x98, 0x7b, 0x50, 0xcc,
+};
+static const unsigned char kat3868_retbits[] = {
+ 0x7c, 0x10, 0x43, 0x42, 0xe9, 0xd0, 0x42, 0xfd, 0x3d, 0xaf, 0xbf, 0x43,
+ 0x6e, 0x63, 0x6a, 0x44, 0xe0, 0x7c, 0x9e, 0xb3, 0xcf, 0xeb, 0x96, 0x9f,
+ 0x75, 0x9a, 0x42, 0xd6, 0x96, 0xe0, 0xad, 0x71, 0xdb, 0x76, 0x59, 0x5c,
+ 0x2b, 0x71, 0xb4, 0x67, 0x35, 0x73, 0xe7, 0x8b, 0x9a, 0xfb, 0x7d, 0xf4,
+ 0x34, 0x64, 0xb9, 0x46, 0x3d, 0x92, 0xeb, 0xe8, 0x1c, 0x01, 0x12, 0x9a,
+ 0x8e, 0x3f, 0x15, 0x2f,
+};
+static const struct drbg_kat_pr_true kat3868_t = {
+ 12, kat3868_entropyin, kat3868_nonce, kat3868_persstr,
+ kat3868_entropyinpr1, kat3868_addinpr1, kat3868_entropyinpr2,
+ kat3868_addinpr2, kat3868_retbits
+};
+static const struct drbg_kat kat3868 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3868_t
+};
+
+static const unsigned char kat3869_entropyin[] = {
+ 0x88, 0x72, 0xd7, 0xf3, 0xfe, 0x19, 0x12, 0x3f, 0x0b, 0x70, 0xfe, 0x8b,
+ 0xa5, 0x77, 0xd6, 0x5c, 0x6c, 0xfe, 0xff, 0x98, 0xce, 0x85, 0xda, 0xd6,
+ 0x90, 0x95, 0x02, 0xf8, 0x4a, 0x3a, 0xf2, 0x1f, 0x66, 0xc3, 0x46, 0x46,
+ 0x44, 0x9d, 0x5a, 0x85,
+};
+static const unsigned char kat3869_nonce[] = {0};
+static const unsigned char kat3869_persstr[] = {0};
+static const unsigned char kat3869_entropyinpr1[] = {
+ 0x82, 0xb5, 0x55, 0x84, 0x98, 0x57, 0xb0, 0xf3, 0x30, 0xfe, 0xc7, 0x5d,
+ 0x42, 0x8b, 0xb6, 0xff, 0xad, 0xad, 0x97, 0xaf, 0x65, 0x64, 0x5f, 0x54,
+ 0x80, 0xa7, 0xa2, 0x20, 0x46, 0x37, 0xa2, 0xe1, 0xf3, 0xe0, 0x7a, 0x4c,
+ 0x31, 0xad, 0xcb, 0x2b,
+};
+static const unsigned char kat3869_addinpr1[] = {
+ 0x8e, 0x9d, 0xfc, 0xc2, 0x0e, 0xd2, 0x94, 0xc1, 0x31, 0x0c, 0xc0, 0xe5,
+ 0x2b, 0x09, 0xae, 0xa7, 0x58, 0xe7, 0x4e, 0xe9, 0xb6, 0xf4, 0x9e, 0xe0,
+ 0x8d, 0x02, 0x24, 0x44, 0xf3, 0x87, 0x5c, 0xa7, 0x68, 0xe8, 0xbc, 0x81,
+ 0x2a, 0x2e, 0xce, 0x28,
+};
+static const unsigned char kat3869_entropyinpr2[] = {
+ 0x27, 0xba, 0x2d, 0x56, 0xfe, 0x7a, 0x37, 0xf9, 0x49, 0xfb, 0xfa, 0xbf,
+ 0x56, 0x1d, 0x29, 0x2c, 0xb9, 0x9e, 0xbd, 0x3a, 0xdd, 0x8e, 0x64, 0x66,
+ 0x85, 0xc4, 0xf8, 0x26, 0xbf, 0x22, 0x71, 0xad, 0x7e, 0xab, 0x77, 0xc0,
+ 0x4d, 0xa4, 0xc8, 0x58,
+};
+static const unsigned char kat3869_addinpr2[] = {
+ 0x84, 0x00, 0x30, 0x0b, 0xdd, 0xf1, 0x7c, 0xec, 0x75, 0x39, 0x48, 0x7c,
+ 0xa7, 0x30, 0xbf, 0x86, 0xf8, 0x5b, 0xd7, 0xca, 0x29, 0x4e, 0x63, 0xe0,
+ 0xfe, 0x2a, 0x83, 0x1f, 0xc0, 0xc5, 0x2b, 0xda, 0x8a, 0xf4, 0x75, 0xa7,
+ 0x4e, 0x51, 0xc7, 0xbf,
+};
+static const unsigned char kat3869_retbits[] = {
+ 0xb6, 0x53, 0xc6, 0x1b, 0x47, 0x00, 0xf1, 0xb8, 0x42, 0xf1, 0x41, 0x0d,
+ 0x76, 0x7d, 0x4d, 0x4d, 0x7d, 0x10, 0xbf, 0x22, 0x65, 0xfc, 0x1d, 0x45,
+ 0xed, 0xef, 0x97, 0x00, 0x73, 0x5e, 0xf7, 0x3d, 0x89, 0x8a, 0xac, 0x7f,
+ 0x76, 0x68, 0x6f, 0x12, 0xf6, 0x1f, 0xc7, 0x0d, 0x20, 0xa4, 0x84, 0xaa,
+ 0xeb, 0x6a, 0x56, 0x4b, 0x6b, 0xb2, 0x43, 0x02, 0x3c, 0xcf, 0xe0, 0x80,
+ 0x0c, 0xc7, 0x13, 0x73,
+};
+static const struct drbg_kat_pr_true kat3869_t = {
+ 13, kat3869_entropyin, kat3869_nonce, kat3869_persstr,
+ kat3869_entropyinpr1, kat3869_addinpr1, kat3869_entropyinpr2,
+ kat3869_addinpr2, kat3869_retbits
+};
+static const struct drbg_kat kat3869 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3869_t
+};
+
+static const unsigned char kat3870_entropyin[] = {
+ 0x4b, 0x37, 0x8d, 0x27, 0xfa, 0xec, 0x66, 0x8a, 0xa8, 0xf4, 0xcb, 0x60,
+ 0xb8, 0x9f, 0x9a, 0x28, 0x17, 0xee, 0xfd, 0xf5, 0x9e, 0xc6, 0xd1, 0x70,
+ 0x6b, 0x6d, 0xd8, 0xed, 0x96, 0x1d, 0x5f, 0x17, 0x88, 0xf9, 0x8a, 0x58,
+ 0x29, 0x8e, 0x21, 0x87,
+};
+static const unsigned char kat3870_nonce[] = {0};
+static const unsigned char kat3870_persstr[] = {0};
+static const unsigned char kat3870_entropyinpr1[] = {
+ 0xa2, 0xb3, 0x4b, 0xaf, 0x5a, 0x6b, 0xc8, 0xee, 0x7e, 0x50, 0xb3, 0x26,
+ 0x98, 0xac, 0x6b, 0xc3, 0x01, 0x32, 0xac, 0x81, 0x24, 0x28, 0x1c, 0x81,
+ 0x03, 0x2d, 0x05, 0x07, 0x3a, 0x27, 0x90, 0xab, 0x01, 0xc7, 0x44, 0x8e,
+ 0x52, 0xfe, 0x1f, 0xf7,
+};
+static const unsigned char kat3870_addinpr1[] = {
+ 0x68, 0x95, 0x3c, 0x65, 0xfa, 0xc6, 0xf0, 0xbc, 0x5d, 0xf7, 0x8b, 0xdf,
+ 0x6b, 0xd2, 0xcc, 0xcd, 0x8c, 0x67, 0x54, 0x12, 0x2d, 0x1a, 0xa2, 0xdd,
+ 0x0b, 0x4e, 0xa7, 0xe2, 0x5c, 0x2f, 0x3a, 0x12, 0xe3, 0xd5, 0x27, 0xa2,
+ 0x88, 0x08, 0xbe, 0x12,
+};
+static const unsigned char kat3870_entropyinpr2[] = {
+ 0x1c, 0x59, 0x55, 0x07, 0x10, 0xb2, 0xef, 0xa9, 0xf0, 0x09, 0xe4, 0x4c,
+ 0x0a, 0xa7, 0x24, 0xad, 0x34, 0x51, 0xda, 0x29, 0x32, 0x3f, 0x60, 0xd6,
+ 0x8d, 0x02, 0x56, 0x93, 0x51, 0x0f, 0xc0, 0x16, 0x70, 0xc2, 0x82, 0xb3,
+ 0x8b, 0xff, 0x32, 0x49,
+};
+static const unsigned char kat3870_addinpr2[] = {
+ 0xcc, 0x7d, 0xf4, 0x2c, 0x7f, 0x93, 0xa6, 0x3b, 0x8a, 0x83, 0x89, 0xc6,
+ 0x6a, 0x33, 0x65, 0x19, 0xcf, 0x27, 0xcc, 0x6e, 0x61, 0xa0, 0x6a, 0x67,
+ 0xc3, 0x30, 0x77, 0xc9, 0x54, 0x98, 0xb8, 0xfb, 0x4e, 0x7a, 0xd0, 0xe2,
+ 0x34, 0xae, 0x9e, 0x5f,
+};
+static const unsigned char kat3870_retbits[] = {
+ 0xde, 0x2a, 0xbc, 0xed, 0x63, 0xa1, 0x1a, 0x9c, 0x7c, 0x03, 0x4f, 0xae,
+ 0x31, 0xd8, 0xfd, 0x57, 0x23, 0x9a, 0x76, 0xa8, 0xd8, 0x38, 0x2d, 0x9a,
+ 0x50, 0x7e, 0x52, 0x30, 0xc1, 0xb0, 0xc5, 0xbf, 0x06, 0x3a, 0x99, 0xf0,
+ 0x0c, 0xd4, 0x42, 0x8d, 0xb1, 0x96, 0x59, 0x74, 0x27, 0x90, 0x0f, 0x56,
+ 0xac, 0x2f, 0xf8, 0xd5, 0x56, 0xd3, 0xaf, 0x3d, 0x11, 0x9a, 0x59, 0x0b,
+ 0x59, 0x4c, 0x2e, 0x90,
+};
+static const struct drbg_kat_pr_true kat3870_t = {
+ 14, kat3870_entropyin, kat3870_nonce, kat3870_persstr,
+ kat3870_entropyinpr1, kat3870_addinpr1, kat3870_entropyinpr2,
+ kat3870_addinpr2, kat3870_retbits
+};
+static const struct drbg_kat kat3870 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3870_t
+};
+
+static const unsigned char kat3871_entropyin[] = {
+ 0x6e, 0x7c, 0x6d, 0x32, 0x24, 0xb5, 0x74, 0xf9, 0xd1, 0x97, 0x03, 0x7a,
+ 0x77, 0x70, 0xdb, 0x1f, 0x00, 0x5d, 0xfc, 0x82, 0xd6, 0xfd, 0x19, 0x39,
+ 0x9d, 0x73, 0x61, 0x4b, 0xb3, 0x98, 0xfa, 0x0e, 0x25, 0x98, 0x48, 0xde,
+ 0xd3, 0x1f, 0x19, 0xe4,
+};
+static const unsigned char kat3871_nonce[] = {0};
+static const unsigned char kat3871_persstr[] = {
+ 0xd0, 0xa6, 0x7c, 0x39, 0xd4, 0xee, 0x83, 0x20, 0x8d, 0x40, 0xde, 0xbe,
+ 0xbf, 0x38, 0x33, 0x2b, 0x0c, 0x09, 0xb6, 0x68, 0x3a, 0x50, 0x70, 0xdf,
+ 0xd9, 0x1b, 0xdf, 0xb0, 0xaa, 0x7c, 0x60, 0xaf, 0x4d, 0xc3, 0x6b, 0x18,
+ 0x92, 0x61, 0x89, 0xc6,
+};
+static const unsigned char kat3871_entropyinpr1[] = {
+ 0xb4, 0x81, 0xb8, 0x4b, 0x2a, 0xb1, 0xc5, 0x42, 0xe5, 0x82, 0x8b, 0x3d,
+ 0xb7, 0x06, 0x77, 0x29, 0x51, 0x6b, 0xb2, 0xea, 0xf6, 0xf9, 0x3f, 0x65,
+ 0x53, 0x81, 0x02, 0x93, 0x5c, 0xd4, 0xfd, 0x2d, 0x36, 0x75, 0xba, 0xb0,
+ 0x09, 0x80, 0xa2, 0x17,
+};
+static const unsigned char kat3871_addinpr1[] = {0};
+static const unsigned char kat3871_entropyinpr2[] = {
+ 0x9a, 0xd8, 0xc9, 0x71, 0x0f, 0xbe, 0xcb, 0x0c, 0xa9, 0x1f, 0x0c, 0x1f,
+ 0x07, 0xcb, 0xea, 0x29, 0xef, 0xa6, 0x75, 0x3a, 0x2f, 0x39, 0xb5, 0x7c,
+ 0x9d, 0x10, 0xdc, 0x13, 0xeb, 0x2d, 0x8c, 0x39, 0x84, 0x67, 0x12, 0x16,
+ 0x7b, 0x13, 0xc4, 0x2e,
+};
+static const unsigned char kat3871_addinpr2[] = {0};
+static const unsigned char kat3871_retbits[] = {
+ 0xce, 0x78, 0x8c, 0xcd, 0x16, 0xc5, 0xc2, 0x1f, 0x91, 0xd2, 0x65, 0x56,
+ 0xb7, 0xfc, 0xb0, 0xaa, 0x64, 0x4a, 0x0d, 0x26, 0x92, 0xab, 0x3c, 0xd9,
+ 0xe8, 0xa5, 0x08, 0x60, 0xd4, 0x02, 0xe6, 0xb9, 0xb8, 0xc8, 0x24, 0xfe,
+ 0x38, 0xc4, 0xc1, 0x50, 0xa2, 0xce, 0x97, 0xb9, 0x39, 0xb6, 0xb6, 0x33,
+ 0xcd, 0x48, 0x99, 0x1e, 0x15, 0x2b, 0x81, 0x34, 0x46, 0x2e, 0xa3, 0xf0,
+ 0x39, 0xb1, 0x1c, 0x0b,
+};
+static const struct drbg_kat_pr_true kat3871_t = {
+ 0, kat3871_entropyin, kat3871_nonce, kat3871_persstr,
+ kat3871_entropyinpr1, kat3871_addinpr1, kat3871_entropyinpr2,
+ kat3871_addinpr2, kat3871_retbits
+};
+static const struct drbg_kat kat3871 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3871_t
+};
+
+static const unsigned char kat3872_entropyin[] = {
+ 0xec, 0x45, 0xf5, 0x5e, 0x70, 0x22, 0x07, 0xf1, 0x05, 0x29, 0x1f, 0xdc,
+ 0x47, 0xea, 0x87, 0x04, 0x79, 0xbb, 0xfd, 0x2b, 0x2c, 0xb0, 0x7b, 0xdc,
+ 0x3d, 0xb0, 0xd3, 0xda, 0x8e, 0x05, 0xf4, 0x3b, 0x2e, 0x90, 0xd9, 0x4d,
+ 0xf1, 0xcc, 0xfb, 0x63,
+};
+static const unsigned char kat3872_nonce[] = {0};
+static const unsigned char kat3872_persstr[] = {
+ 0x75, 0x4f, 0x41, 0x0b, 0xfd, 0x54, 0x9c, 0x0a, 0x13, 0xf4, 0x44, 0x8a,
+ 0x1d, 0xa1, 0xd6, 0x43, 0x5b, 0x25, 0x70, 0xf8, 0xe1, 0x02, 0x8c, 0x36,
+ 0x0a, 0xe6, 0x0d, 0x46, 0xfe, 0xc2, 0x70, 0xf4, 0x99, 0x63, 0xe5, 0xba,
+ 0xef, 0x94, 0x45, 0x43,
+};
+static const unsigned char kat3872_entropyinpr1[] = {
+ 0x1c, 0x5e, 0xee, 0xf3, 0x6a, 0xc2, 0x35, 0xe5, 0x9d, 0x98, 0x7a, 0xc2,
+ 0x4c, 0x65, 0xb2, 0xe5, 0x3f, 0x7c, 0x60, 0x57, 0x6a, 0x19, 0xd1, 0x57,
+ 0x49, 0xf5, 0xf7, 0xc2, 0xf8, 0xaa, 0xb7, 0x7f, 0x65, 0x8e, 0x7a, 0x63,
+ 0xe8, 0x64, 0xc6, 0x5f,
+};
+static const unsigned char kat3872_addinpr1[] = {0};
+static const unsigned char kat3872_entropyinpr2[] = {
+ 0x2b, 0x41, 0x4f, 0x09, 0xc5, 0xb2, 0x5b, 0xf7, 0xd0, 0x6d, 0x34, 0x4c,
+ 0xf9, 0xf6, 0x58, 0x09, 0x97, 0xa6, 0xdf, 0xee, 0xad, 0xc4, 0x07, 0x44,
+ 0xfe, 0x2d, 0x62, 0x35, 0x76, 0x98, 0x18, 0x1f, 0xbb, 0xc7, 0x86, 0xf5,
+ 0xb9, 0xaf, 0xa4, 0x5c,
+};
+static const unsigned char kat3872_addinpr2[] = {0};
+static const unsigned char kat3872_retbits[] = {
+ 0x14, 0x8d, 0x71, 0xc5, 0x9c, 0xeb, 0x1c, 0x34, 0xc3, 0xbd, 0xe3, 0x15,
+ 0xaf, 0xf4, 0x00, 0x3c, 0xf3, 0x6a, 0xf9, 0x9c, 0xfb, 0x5e, 0xe4, 0xc4,
+ 0xa9, 0x20, 0x47, 0x94, 0x2c, 0x77, 0xbe, 0x17, 0xda, 0x9c, 0x75, 0xf9,
+ 0x6d, 0x1d, 0xdd, 0x12, 0xc4, 0x01, 0x10, 0x22, 0x61, 0xa5, 0x22, 0x69,
+ 0x90, 0xf9, 0x7f, 0x65, 0x78, 0xdc, 0x80, 0xa1, 0x84, 0xab, 0x51, 0x41,
+ 0xf7, 0x81, 0xc2, 0x27,
+};
+static const struct drbg_kat_pr_true kat3872_t = {
+ 1, kat3872_entropyin, kat3872_nonce, kat3872_persstr,
+ kat3872_entropyinpr1, kat3872_addinpr1, kat3872_entropyinpr2,
+ kat3872_addinpr2, kat3872_retbits
+};
+static const struct drbg_kat kat3872 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3872_t
+};
+
+static const unsigned char kat3873_entropyin[] = {
+ 0x53, 0x14, 0xd8, 0xf7, 0x3c, 0xee, 0xf9, 0x94, 0x7c, 0xad, 0xab, 0xe5,
+ 0x22, 0x37, 0xdd, 0x7d, 0xfa, 0x88, 0x83, 0xc3, 0x8d, 0x27, 0x97, 0x8c,
+ 0x41, 0x28, 0x46, 0x9b, 0x1e, 0x4f, 0x09, 0x9c, 0xc6, 0x59, 0xd3, 0xd4,
+ 0x72, 0x62, 0x1c, 0x6c,
+};
+static const unsigned char kat3873_nonce[] = {0};
+static const unsigned char kat3873_persstr[] = {
+ 0x04, 0xe8, 0x0f, 0x51, 0xb8, 0x0c, 0xba, 0xf9, 0xe2, 0xfb, 0xc7, 0x31,
+ 0xd0, 0xad, 0xa4, 0x61, 0x03, 0x84, 0x93, 0xbf, 0x3b, 0x34, 0x53, 0x48,
+ 0x74, 0x8c, 0x65, 0x2c, 0x52, 0xe2, 0x97, 0xb7, 0xa1, 0xca, 0xdc, 0xf2,
+ 0x91, 0x97, 0x53, 0x97,
+};
+static const unsigned char kat3873_entropyinpr1[] = {
+ 0x09, 0xb2, 0xdb, 0x29, 0xa7, 0xb0, 0x8d, 0x8a, 0x15, 0xb2, 0x90, 0x45,
+ 0xca, 0x8a, 0x15, 0xf5, 0xf9, 0x95, 0xf7, 0xc0, 0xa0, 0x8e, 0x36, 0xe1,
+ 0xb3, 0x29, 0xe2, 0xa3, 0x32, 0x20, 0xb9, 0x5b, 0x48, 0xec, 0x51, 0xe1,
+ 0xaf, 0xa9, 0x1a, 0x49,
+};
+static const unsigned char kat3873_addinpr1[] = {0};
+static const unsigned char kat3873_entropyinpr2[] = {
+ 0x27, 0x60, 0x61, 0x21, 0xde, 0xae, 0xa6, 0xb2, 0x33, 0xbd, 0xa0, 0x78,
+ 0x13, 0xe2, 0x61, 0xb5, 0x63, 0x7d, 0x77, 0xe8, 0xc7, 0xb2, 0x44, 0x26,
+ 0x87, 0x2f, 0xf3, 0xe7, 0x5f, 0x15, 0xbf, 0x44, 0x78, 0xfb, 0x2a, 0xa9,
+ 0xef, 0x81, 0x26, 0x78,
+};
+static const unsigned char kat3873_addinpr2[] = {0};
+static const unsigned char kat3873_retbits[] = {
+ 0x22, 0xb9, 0xe0, 0x5b, 0x88, 0xf9, 0x86, 0xc1, 0x11, 0xb6, 0xb5, 0x00,
+ 0x25, 0xc5, 0x6a, 0xd2, 0xa2, 0xd7, 0x81, 0x8d, 0xc6, 0x34, 0xc7, 0xfd,
+ 0xfe, 0xf7, 0xad, 0xfb, 0x59, 0x08, 0x47, 0x37, 0xe4, 0x12, 0x42, 0x0c,
+ 0x40, 0x71, 0xd1, 0x9a, 0x44, 0x30, 0x29, 0x0f, 0x10, 0x6a, 0x9d, 0x91,
+ 0x2f, 0xf3, 0x1c, 0x4b, 0xca, 0x29, 0xa8, 0x24, 0xba, 0x08, 0x5b, 0xa1,
+ 0x0f, 0x87, 0xb4, 0xb0,
+};
+static const struct drbg_kat_pr_true kat3873_t = {
+ 2, kat3873_entropyin, kat3873_nonce, kat3873_persstr,
+ kat3873_entropyinpr1, kat3873_addinpr1, kat3873_entropyinpr2,
+ kat3873_addinpr2, kat3873_retbits
+};
+static const struct drbg_kat kat3873 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3873_t
+};
+
+static const unsigned char kat3874_entropyin[] = {
+ 0x1a, 0xeb, 0xf4, 0x41, 0xdb, 0x2b, 0x96, 0x52, 0xae, 0xba, 0x7b, 0x9e,
+ 0xc9, 0x5c, 0x20, 0xa3, 0x4c, 0x79, 0xc1, 0xb9, 0x65, 0x14, 0xcb, 0x32,
+ 0x1b, 0xc2, 0x0e, 0x38, 0x4d, 0x3c, 0xcd, 0xfd, 0x6a, 0x2c, 0x7a, 0xc8,
+ 0x0c, 0x1a, 0x49, 0xcd,
+};
+static const unsigned char kat3874_nonce[] = {0};
+static const unsigned char kat3874_persstr[] = {
+ 0x1f, 0xff, 0x67, 0x6d, 0x71, 0x14, 0x03, 0xba, 0x8d, 0xb1, 0x07, 0xc6,
+ 0x21, 0x4f, 0xb9, 0x71, 0xe3, 0x1c, 0xf5, 0xd3, 0x90, 0x5b, 0x34, 0x3d,
+ 0x78, 0xfb, 0x4c, 0x78, 0xfa, 0xe7, 0xb6, 0xf6, 0x54, 0xcf, 0xb0, 0x6b,
+ 0xeb, 0x65, 0x04, 0xe9,
+};
+static const unsigned char kat3874_entropyinpr1[] = {
+ 0xf2, 0xc3, 0x33, 0xf9, 0xdb, 0xb4, 0x85, 0x02, 0xe8, 0xee, 0x30, 0x24,
+ 0x99, 0x53, 0xeb, 0x24, 0x93, 0x4b, 0x4a, 0xdc, 0x63, 0xf2, 0x77, 0x5f,
+ 0x65, 0x72, 0x0a, 0xff, 0x14, 0xe9, 0x70, 0x10, 0x44, 0xda, 0x24, 0x9f,
+ 0x86, 0x6e, 0x97, 0xd2,
+};
+static const unsigned char kat3874_addinpr1[] = {0};
+static const unsigned char kat3874_entropyinpr2[] = {
+ 0x21, 0x5c, 0x33, 0x56, 0xed, 0x6d, 0x71, 0x38, 0x37, 0x3d, 0xd8, 0x2b,
+ 0xe4, 0xd9, 0x8f, 0x06, 0x95, 0x79, 0x7c, 0xe8, 0xeb, 0x2e, 0x48, 0xd3,
+ 0x91, 0xa3, 0x6a, 0x5e, 0x02, 0x08, 0xb5, 0x2a, 0xf2, 0x65, 0xb1, 0xe1,
+ 0xdf, 0xf8, 0x15, 0x7d,
+};
+static const unsigned char kat3874_addinpr2[] = {0};
+static const unsigned char kat3874_retbits[] = {
+ 0xd7, 0xf9, 0x7a, 0x92, 0xd3, 0x9a, 0x4b, 0x36, 0x9a, 0xaa, 0x38, 0x2b,
+ 0x47, 0x25, 0x4f, 0x4d, 0xa6, 0x1a, 0x44, 0x84, 0x82, 0xf4, 0xe6, 0x0b,
+ 0x16, 0x44, 0x26, 0x14, 0x60, 0x7d, 0x7f, 0x82, 0x48, 0xe4, 0xda, 0xfe,
+ 0x0d, 0xd6, 0xa5, 0x20, 0x57, 0xc9, 0x1f, 0xfa, 0x3b, 0xae, 0x5a, 0x4a,
+ 0xa1, 0x68, 0xc0, 0x73, 0xe0, 0x9f, 0x9f, 0x72, 0x1c, 0xce, 0xa2, 0xe9,
+ 0xd9, 0x9a, 0x62, 0x71,
+};
+static const struct drbg_kat_pr_true kat3874_t = {
+ 3, kat3874_entropyin, kat3874_nonce, kat3874_persstr,
+ kat3874_entropyinpr1, kat3874_addinpr1, kat3874_entropyinpr2,
+ kat3874_addinpr2, kat3874_retbits
+};
+static const struct drbg_kat kat3874 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3874_t
+};
+
+static const unsigned char kat3875_entropyin[] = {
+ 0x1d, 0xb6, 0x5d, 0xd2, 0x3b, 0x16, 0xb5, 0xd1, 0xc8, 0xc9, 0x03, 0xf4,
+ 0xb4, 0x61, 0x4d, 0xff, 0xbd, 0xa9, 0x36, 0x20, 0xf0, 0x59, 0x85, 0x90,
+ 0xb8, 0xdf, 0x39, 0x9d, 0xc5, 0x54, 0x20, 0xd4, 0x66, 0x3a, 0xf3, 0xe3,
+ 0x2b, 0x4b, 0x15, 0xc8,
+};
+static const unsigned char kat3875_nonce[] = {0};
+static const unsigned char kat3875_persstr[] = {
+ 0x90, 0xa4, 0xd2, 0xe1, 0xe3, 0x1b, 0xec, 0xc5, 0x85, 0x27, 0xa4, 0xa5,
+ 0xfc, 0x71, 0x78, 0x27, 0x3e, 0xa4, 0x91, 0x0c, 0x05, 0x6a, 0x92, 0x6c,
+ 0x2b, 0xf3, 0xd1, 0xde, 0xcd, 0xb8, 0x23, 0xc8, 0xe7, 0x2b, 0xff, 0x06,
+ 0xb0, 0xd2, 0xa9, 0x61,
+};
+static const unsigned char kat3875_entropyinpr1[] = {
+ 0x2b, 0xa0, 0xc3, 0xfc, 0xfc, 0xfc, 0x39, 0xde, 0x20, 0x1b, 0x0b, 0x67,
+ 0x30, 0x46, 0x0e, 0xe7, 0xac, 0x3d, 0x17, 0x9f, 0xbd, 0xfa, 0x81, 0xc1,
+ 0x63, 0x48, 0x05, 0x49, 0x5e, 0x93, 0x09, 0x73, 0x92, 0xf0, 0x23, 0x2a,
+ 0xd9, 0x52, 0x21, 0xd5,
+};
+static const unsigned char kat3875_addinpr1[] = {0};
+static const unsigned char kat3875_entropyinpr2[] = {
+ 0xba, 0x81, 0xba, 0xfb, 0x30, 0x82, 0x64, 0x99, 0x94, 0x80, 0xac, 0x93,
+ 0x70, 0x6c, 0x5e, 0x12, 0x12, 0xe3, 0xf4, 0xd9, 0x1b, 0x94, 0x38, 0xd7,
+ 0xf7, 0xf6, 0xa2, 0x06, 0x8e, 0xc9, 0x3d, 0xe8, 0xc7, 0xee, 0x64, 0xaa,
+ 0xd5, 0xdc, 0x77, 0xef,
+};
+static const unsigned char kat3875_addinpr2[] = {0};
+static const unsigned char kat3875_retbits[] = {
+ 0x98, 0x29, 0x7f, 0xa5, 0x66, 0xa8, 0xe6, 0xc2, 0x53, 0x20, 0x5d, 0x05,
+ 0x9c, 0xf9, 0xff, 0x30, 0x75, 0xb2, 0xda, 0x13, 0xcd, 0xcc, 0xfc, 0x43,
+ 0x9a, 0xcb, 0x2b, 0x93, 0xe0, 0x66, 0xc9, 0x2e, 0xec, 0xa5, 0x93, 0xe5,
+ 0x3d, 0x42, 0xa2, 0x3b, 0x5f, 0x99, 0x5c, 0x17, 0xaf, 0x02, 0x8d, 0x2e,
+ 0xb8, 0x17, 0x73, 0x32, 0x92, 0x7f, 0x7f, 0x87, 0xd0, 0xb5, 0x3f, 0xa1,
+ 0xd9, 0xf5, 0x6c, 0x1d,
+};
+static const struct drbg_kat_pr_true kat3875_t = {
+ 4, kat3875_entropyin, kat3875_nonce, kat3875_persstr,
+ kat3875_entropyinpr1, kat3875_addinpr1, kat3875_entropyinpr2,
+ kat3875_addinpr2, kat3875_retbits
+};
+static const struct drbg_kat kat3875 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3875_t
+};
+
+static const unsigned char kat3876_entropyin[] = {
+ 0x1b, 0xb7, 0x1d, 0x6f, 0x27, 0xae, 0x69, 0x35, 0x96, 0x3b, 0xf8, 0xc8,
+ 0xb9, 0x32, 0x49, 0x69, 0x2c, 0x78, 0xa3, 0x75, 0xbd, 0xe4, 0xd1, 0x80,
+ 0xaf, 0xfa, 0x12, 0xaf, 0x38, 0xf6, 0x59, 0x3d, 0x63, 0x92, 0xce, 0xae,
+ 0x54, 0xcd, 0xdb, 0x38,
+};
+static const unsigned char kat3876_nonce[] = {0};
+static const unsigned char kat3876_persstr[] = {
+ 0x6e, 0xd1, 0x1f, 0xa3, 0x97, 0x94, 0x8b, 0xb5, 0x37, 0x42, 0xbf, 0xa9,
+ 0x59, 0x46, 0x32, 0xac, 0xe6, 0x52, 0xe9, 0x91, 0x53, 0x21, 0x99, 0x15,
+ 0xdd, 0x64, 0xf7, 0x71, 0xc5, 0xcb, 0x22, 0x53, 0x2c, 0xcc, 0x30, 0x0d,
+ 0xec, 0xe0, 0x67, 0x01,
+};
+static const unsigned char kat3876_entropyinpr1[] = {
+ 0x21, 0xa9, 0x5e, 0x6e, 0x61, 0x32, 0x0d, 0xf0, 0x98, 0x3f, 0x54, 0xaa,
+ 0x0d, 0x35, 0x8e, 0x3e, 0xce, 0x9a, 0x87, 0x45, 0x6d, 0xb0, 0xef, 0xa7,
+ 0x12, 0x26, 0x2a, 0x58, 0x17, 0xfb, 0x60, 0x36, 0x5e, 0xa1, 0xb9, 0xe2,
+ 0x25, 0xf2, 0xb0, 0x23,
+};
+static const unsigned char kat3876_addinpr1[] = {0};
+static const unsigned char kat3876_entropyinpr2[] = {
+ 0xd6, 0xce, 0xaf, 0xc4, 0x7c, 0x35, 0xaa, 0xfa, 0x5a, 0xdf, 0xa2, 0x3e,
+ 0xbd, 0xd6, 0x5c, 0xa4, 0x16, 0xa3, 0x9f, 0x18, 0x93, 0x48, 0xaf, 0x89,
+ 0xa7, 0x26, 0xda, 0x81, 0x4a, 0x98, 0xad, 0xe5, 0x99, 0x5e, 0xe9, 0x73,
+ 0xdc, 0x3e, 0x8f, 0x12,
+};
+static const unsigned char kat3876_addinpr2[] = {0};
+static const unsigned char kat3876_retbits[] = {
+ 0x83, 0xb0, 0xae, 0xa2, 0x97, 0x99, 0x36, 0x19, 0x57, 0x7c, 0x13, 0x99,
+ 0x88, 0x3f, 0x53, 0x45, 0x3b, 0xc5, 0x06, 0x06, 0x02, 0x22, 0x9d, 0xa1,
+ 0x9d, 0xd9, 0x02, 0xee, 0x81, 0x9c, 0x70, 0x8a, 0x28, 0xe5, 0xcc, 0xdb,
+ 0x5c, 0xf3, 0x99, 0x68, 0x94, 0xd4, 0x4d, 0x89, 0x1f, 0xd5, 0xb4, 0xd8,
+ 0x75, 0x75, 0x51, 0x55, 0x7b, 0x9d, 0xa5, 0x68, 0xe3, 0xe2, 0xe7, 0x18,
+ 0x1e, 0xec, 0xad, 0x4f,
+};
+static const struct drbg_kat_pr_true kat3876_t = {
+ 5, kat3876_entropyin, kat3876_nonce, kat3876_persstr,
+ kat3876_entropyinpr1, kat3876_addinpr1, kat3876_entropyinpr2,
+ kat3876_addinpr2, kat3876_retbits
+};
+static const struct drbg_kat kat3876 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3876_t
+};
+
+static const unsigned char kat3877_entropyin[] = {
+ 0x0a, 0x2a, 0x75, 0xe6, 0xc6, 0xee, 0x52, 0x33, 0x85, 0x26, 0x37, 0xcb,
+ 0x78, 0xd1, 0xa3, 0x96, 0xa0, 0xe8, 0xc3, 0x3e, 0x37, 0x29, 0x22, 0x07,
+ 0x78, 0x47, 0xcc, 0x8a, 0xfd, 0xeb, 0x3f, 0x4a, 0xfd, 0x0a, 0x3a, 0x04,
+ 0xeb, 0x62, 0x77, 0xe6,
+};
+static const unsigned char kat3877_nonce[] = {0};
+static const unsigned char kat3877_persstr[] = {
+ 0x31, 0xb9, 0xb1, 0x39, 0x0a, 0x2d, 0x3f, 0xa8, 0x25, 0x82, 0x66, 0xf5,
+ 0xd4, 0x55, 0xdf, 0x63, 0x0c, 0xde, 0x85, 0x66, 0x05, 0x95, 0xd2, 0x8b,
+ 0x04, 0x7a, 0x40, 0x97, 0xb6, 0x48, 0x34, 0xdb, 0x32, 0xb8, 0xbb, 0xb8,
+ 0x9f, 0x4a, 0x34, 0x7f,
+};
+static const unsigned char kat3877_entropyinpr1[] = {
+ 0xc9, 0xe2, 0x91, 0xe8, 0xc2, 0x42, 0xba, 0x53, 0x82, 0x4c, 0x43, 0x09,
+ 0x4f, 0xa9, 0xcb, 0x39, 0x02, 0xe1, 0x61, 0x97, 0x3d, 0x1b, 0xe8, 0x9c,
+ 0xd3, 0x89, 0xce, 0x6c, 0x58, 0x4d, 0xd7, 0x8f, 0x8c, 0x1a, 0xed, 0x65,
+ 0x09, 0xfb, 0xf0, 0xd8,
+};
+static const unsigned char kat3877_addinpr1[] = {0};
+static const unsigned char kat3877_entropyinpr2[] = {
+ 0x66, 0xe3, 0x39, 0x6f, 0x88, 0xa6, 0x31, 0x1d, 0x82, 0x73, 0xe6, 0x8e,
+ 0x59, 0x04, 0x45, 0x27, 0xd5, 0x95, 0xf0, 0xf7, 0x5e, 0x0f, 0x5b, 0xd1,
+ 0x33, 0xf5, 0x69, 0x2c, 0xb7, 0xde, 0xa5, 0xd4, 0x23, 0xf1, 0x75, 0xb4,
+ 0x19, 0xdb, 0xf8, 0xb6,
+};
+static const unsigned char kat3877_addinpr2[] = {0};
+static const unsigned char kat3877_retbits[] = {
+ 0x20, 0x6e, 0x3d, 0x19, 0x79, 0x85, 0xc4, 0xec, 0x92, 0x30, 0xee, 0xf3,
+ 0x7b, 0x91, 0x31, 0x0b, 0x44, 0x65, 0xb6, 0xbb, 0x8b, 0x26, 0x29, 0xa7,
+ 0x7a, 0xd6, 0x4f, 0xd8, 0x42, 0x4e, 0x39, 0xf0, 0x0a, 0xa5, 0x9f, 0x93,
+ 0x46, 0xae, 0xc2, 0xe7, 0x49, 0xa0, 0x45, 0x3e, 0xbb, 0xfc, 0xbc, 0x96,
+ 0xfa, 0xf4, 0xc7, 0xe3, 0xec, 0x05, 0x65, 0x8b, 0x0d, 0xed, 0xa2, 0xa6,
+ 0x8c, 0x35, 0x1a, 0x72,
+};
+static const struct drbg_kat_pr_true kat3877_t = {
+ 6, kat3877_entropyin, kat3877_nonce, kat3877_persstr,
+ kat3877_entropyinpr1, kat3877_addinpr1, kat3877_entropyinpr2,
+ kat3877_addinpr2, kat3877_retbits
+};
+static const struct drbg_kat kat3877 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3877_t
+};
+
+static const unsigned char kat3878_entropyin[] = {
+ 0xcb, 0xc5, 0x07, 0x83, 0x33, 0x5c, 0x00, 0x3f, 0x63, 0x2c, 0xa7, 0xea,
+ 0x0e, 0x34, 0xd3, 0xb8, 0xc5, 0xdb, 0x18, 0xe6, 0xaf, 0xa2, 0x22, 0x82,
+ 0x21, 0xff, 0x68, 0x2e, 0xff, 0x8f, 0x82, 0x78, 0x9e, 0x2d, 0x51, 0xe5,
+ 0xed, 0x58, 0xd4, 0x3e,
+};
+static const unsigned char kat3878_nonce[] = {0};
+static const unsigned char kat3878_persstr[] = {
+ 0xc5, 0x08, 0x83, 0x71, 0x9f, 0xf4, 0xce, 0xdd, 0xd0, 0x60, 0x46, 0x6e,
+ 0x3f, 0x91, 0xf7, 0xb1, 0x20, 0xef, 0x9e, 0xd3, 0x80, 0xd8, 0xe2, 0xec,
+ 0xfe, 0x46, 0x1d, 0x90, 0xb8, 0x7b, 0x6f, 0x1d, 0x93, 0xce, 0xde, 0xe1,
+ 0x9d, 0xe0, 0x49, 0x28,
+};
+static const unsigned char kat3878_entropyinpr1[] = {
+ 0xc8, 0xfe, 0x13, 0xb4, 0x34, 0x9a, 0xd2, 0xa6, 0x64, 0x0e, 0x87, 0x60,
+ 0x5e, 0x68, 0x9a, 0x97, 0x64, 0x4a, 0x60, 0x7b, 0x63, 0x89, 0x88, 0x6f,
+ 0xa7, 0xd3, 0x2a, 0x14, 0x92, 0x83, 0xc3, 0xa3, 0x80, 0xfd, 0x91, 0x04,
+ 0xf8, 0x50, 0x11, 0xd4,
+};
+static const unsigned char kat3878_addinpr1[] = {0};
+static const unsigned char kat3878_entropyinpr2[] = {
+ 0x8c, 0x78, 0x6c, 0xbe, 0xd9, 0x08, 0x87, 0x04, 0x96, 0xe6, 0xa7, 0x6f,
+ 0x90, 0xba, 0xe0, 0x88, 0x2e, 0x5a, 0x38, 0x0c, 0xc5, 0x1a, 0x70, 0x6a,
+ 0xd1, 0x4e, 0x11, 0x57, 0xdd, 0x3b, 0xa5, 0xcc, 0xcc, 0x75, 0x96, 0xaf,
+ 0xc8, 0xe0, 0x07, 0x63,
+};
+static const unsigned char kat3878_addinpr2[] = {0};
+static const unsigned char kat3878_retbits[] = {
+ 0x7e, 0x40, 0x09, 0x1e, 0x68, 0xd0, 0xd6, 0x41, 0x76, 0xff, 0x8f, 0xfb,
+ 0x6b, 0x5c, 0xb1, 0x8f, 0x9e, 0xf4, 0xda, 0xb5, 0x8c, 0x81, 0x6c, 0x23,
+ 0x32, 0xb7, 0xf5, 0xc8, 0x3f, 0x0d, 0xf7, 0xb2, 0x46, 0x3b, 0x08, 0x86,
+ 0x14, 0x16, 0xfe, 0xb6, 0xc1, 0xaf, 0xdb, 0xec, 0xb0, 0x1f, 0xaa, 0x3f,
+ 0xc1, 0xc4, 0xef, 0x14, 0xbc, 0x10, 0xd8, 0xb1, 0x02, 0xc8, 0x3d, 0x73,
+ 0x49, 0x19, 0x1a, 0xad,
+};
+static const struct drbg_kat_pr_true kat3878_t = {
+ 7, kat3878_entropyin, kat3878_nonce, kat3878_persstr,
+ kat3878_entropyinpr1, kat3878_addinpr1, kat3878_entropyinpr2,
+ kat3878_addinpr2, kat3878_retbits
+};
+static const struct drbg_kat kat3878 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3878_t
+};
+
+static const unsigned char kat3879_entropyin[] = {
+ 0xd0, 0xe5, 0x0c, 0x9f, 0xeb, 0xc5, 0x48, 0x33, 0x8a, 0x20, 0x84, 0x45,
+ 0xc2, 0xb8, 0xcb, 0xd9, 0x81, 0x6c, 0x3e, 0x1c, 0xcb, 0xea, 0x07, 0x95,
+ 0x57, 0x9c, 0x51, 0x86, 0xa3, 0xa3, 0x47, 0xb5, 0xd0, 0x54, 0x1b, 0xa1,
+ 0xc1, 0x1f, 0x47, 0x0a,
+};
+static const unsigned char kat3879_nonce[] = {0};
+static const unsigned char kat3879_persstr[] = {
+ 0x46, 0x30, 0x47, 0x43, 0x02, 0xe2, 0x40, 0x55, 0x85, 0x3e, 0xf5, 0xa0,
+ 0x34, 0xfe, 0xf0, 0xf7, 0xb5, 0xb1, 0xd9, 0x36, 0x14, 0x3e, 0xb0, 0x93,
+ 0x50, 0xf4, 0x8d, 0x1a, 0xff, 0x10, 0xd4, 0xe1, 0xb3, 0x2b, 0x45, 0x65,
+ 0x78, 0x5a, 0xac, 0x5c,
+};
+static const unsigned char kat3879_entropyinpr1[] = {
+ 0x61, 0x0b, 0xd8, 0x82, 0x75, 0xf8, 0xf1, 0x14, 0x4c, 0xf8, 0xcf, 0xe0,
+ 0x84, 0xe0, 0x7f, 0xfc, 0xec, 0xfa, 0xaa, 0x19, 0x5d, 0xbe, 0x67, 0x7b,
+ 0x17, 0x9e, 0xba, 0x58, 0x08, 0x1a, 0x1b, 0xe2, 0xff, 0xae, 0x6a, 0x64,
+ 0x1c, 0xd2, 0xa0, 0x0d,
+};
+static const unsigned char kat3879_addinpr1[] = {0};
+static const unsigned char kat3879_entropyinpr2[] = {
+ 0xf4, 0xba, 0x18, 0xba, 0xa1, 0x99, 0x0b, 0x7c, 0x81, 0x0a, 0x31, 0xf6,
+ 0xc9, 0x89, 0x0f, 0xc0, 0x8b, 0xdc, 0xc9, 0x70, 0x2c, 0x75, 0x81, 0x71,
+ 0xf2, 0x76, 0x7c, 0xa1, 0x9e, 0x3e, 0x0e, 0x9a, 0x12, 0xf6, 0xbd, 0x6c,
+ 0x70, 0xe5, 0xbb, 0x5f,
+};
+static const unsigned char kat3879_addinpr2[] = {0};
+static const unsigned char kat3879_retbits[] = {
+ 0x17, 0x82, 0xeb, 0xde, 0xf5, 0x7a, 0x6e, 0x02, 0x3d, 0xdd, 0xf5, 0xcf,
+ 0x71, 0x5b, 0xc8, 0xd2, 0xac, 0xa5, 0x09, 0x93, 0x13, 0x46, 0x2f, 0xf8,
+ 0xd6, 0x69, 0xa7, 0x18, 0x2b, 0xff, 0x08, 0x14, 0xc9, 0x8a, 0x50, 0x84,
+ 0x58, 0x59, 0x74, 0x6c, 0xf3, 0xc4, 0xe2, 0x1f, 0x6f, 0xb7, 0x8d, 0x41,
+ 0x95, 0x89, 0x0d, 0x8a, 0x98, 0x09, 0x6d, 0x36, 0xf1, 0x11, 0x35, 0xb3,
+ 0xac, 0x71, 0xa7, 0x05,
+};
+static const struct drbg_kat_pr_true kat3879_t = {
+ 8, kat3879_entropyin, kat3879_nonce, kat3879_persstr,
+ kat3879_entropyinpr1, kat3879_addinpr1, kat3879_entropyinpr2,
+ kat3879_addinpr2, kat3879_retbits
+};
+static const struct drbg_kat kat3879 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3879_t
+};
+
+static const unsigned char kat3880_entropyin[] = {
+ 0x37, 0xe2, 0xdd, 0xc9, 0x89, 0xc8, 0x3a, 0x45, 0xfc, 0xc1, 0xef, 0x4b,
+ 0x67, 0x39, 0x83, 0xe2, 0x24, 0xfa, 0xe7, 0xd9, 0x1c, 0x05, 0xa7, 0x9e,
+ 0xfb, 0x6e, 0xd2, 0x80, 0x4c, 0x80, 0x0e, 0x7a, 0xf4, 0xa4, 0xcd, 0xaf,
+ 0xec, 0x09, 0xff, 0xd3,
+};
+static const unsigned char kat3880_nonce[] = {0};
+static const unsigned char kat3880_persstr[] = {
+ 0x10, 0x0d, 0x4a, 0x11, 0xe5, 0xa5, 0x42, 0x99, 0xe3, 0x20, 0xcf, 0x18,
+ 0x23, 0x8f, 0x7c, 0xda, 0x9d, 0xde, 0xe4, 0x0c, 0x37, 0x69, 0x77, 0xef,
+ 0xe0, 0x1a, 0x63, 0xea, 0xdd, 0xf8, 0x15, 0x01, 0xed, 0x2d, 0x68, 0xbe,
+ 0xd0, 0x12, 0xa0, 0xdb,
+};
+static const unsigned char kat3880_entropyinpr1[] = {
+ 0x6d, 0xdc, 0xf3, 0xd3, 0x21, 0xb5, 0x94, 0x81, 0x96, 0xd9, 0x2f, 0x79,
+ 0xc1, 0x74, 0xa9, 0x2a, 0xd2, 0xed, 0xae, 0x27, 0x99, 0xe9, 0xb2, 0x06,
+ 0x92, 0x57, 0x2c, 0x42, 0xc0, 0xda, 0x25, 0xba, 0x13, 0x1c, 0x5a, 0x18,
+ 0x0e, 0xc2, 0xec, 0x30,
+};
+static const unsigned char kat3880_addinpr1[] = {0};
+static const unsigned char kat3880_entropyinpr2[] = {
+ 0x4d, 0x94, 0x53, 0x78, 0x41, 0x1b, 0xc5, 0xcf, 0xf5, 0xac, 0x79, 0x08,
+ 0x3d, 0xd9, 0x3b, 0x34, 0x0c, 0x29, 0x11, 0x9c, 0xa8, 0xe1, 0xc3, 0x3b,
+ 0x54, 0x3d, 0xce, 0x1a, 0xe0, 0xbe, 0x94, 0x07, 0xb0, 0x68, 0x7e, 0x04,
+ 0x2b, 0x4f, 0x78, 0x47,
+};
+static const unsigned char kat3880_addinpr2[] = {0};
+static const unsigned char kat3880_retbits[] = {
+ 0x48, 0xff, 0x92, 0xfb, 0xb1, 0xf6, 0x0d, 0x45, 0x85, 0xec, 0x5e, 0x51,
+ 0x4e, 0xfd, 0xf9, 0x5d, 0x1e, 0x7a, 0x30, 0x50, 0x00, 0xb8, 0xd6, 0xa2,
+ 0x4c, 0x54, 0xc7, 0xf4, 0x7f, 0xc8, 0x90, 0x7d, 0xff, 0x0d, 0x0e, 0xe5,
+ 0x3d, 0x58, 0xc8, 0x6f, 0x40, 0xc2, 0x0a, 0xa4, 0xd3, 0x4d, 0xd8, 0x62,
+ 0xe3, 0x1d, 0xf2, 0x9f, 0xc7, 0x6c, 0x93, 0xdc, 0x30, 0x7d, 0x4a, 0xe1,
+ 0xf5, 0xee, 0xcd, 0x6e,
+};
+static const struct drbg_kat_pr_true kat3880_t = {
+ 9, kat3880_entropyin, kat3880_nonce, kat3880_persstr,
+ kat3880_entropyinpr1, kat3880_addinpr1, kat3880_entropyinpr2,
+ kat3880_addinpr2, kat3880_retbits
+};
+static const struct drbg_kat kat3880 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3880_t
+};
+
+static const unsigned char kat3881_entropyin[] = {
+ 0x2e, 0x38, 0x73, 0x30, 0x6c, 0x37, 0xba, 0x32, 0xcb, 0x6f, 0xd0, 0x00,
+ 0xf8, 0xb5, 0x81, 0x4b, 0x56, 0x24, 0x4b, 0x47, 0x56, 0xf9, 0x69, 0x62,
+ 0x3a, 0xf3, 0xc2, 0x57, 0x1b, 0xb4, 0x93, 0x55, 0xbb, 0xd2, 0xc0, 0xd1,
+ 0x65, 0x1d, 0x17, 0x31,
+};
+static const unsigned char kat3881_nonce[] = {0};
+static const unsigned char kat3881_persstr[] = {
+ 0x02, 0xdf, 0x84, 0x74, 0x11, 0x5c, 0xdf, 0x57, 0x97, 0x14, 0x76, 0x5d,
+ 0x15, 0xf7, 0xe5, 0xdb, 0x49, 0x5f, 0x61, 0x96, 0x55, 0xf6, 0xf2, 0xe7,
+ 0x81, 0x94, 0xdd, 0x4f, 0x5b, 0xd9, 0xe1, 0xac, 0x57, 0x08, 0xbb, 0x31,
+ 0x20, 0x26, 0x0d, 0x45,
+};
+static const unsigned char kat3881_entropyinpr1[] = {
+ 0x6b, 0xbf, 0xb6, 0xc4, 0xf8, 0xa1, 0x90, 0x77, 0xa9, 0xc8, 0xb5, 0x97,
+ 0xd4, 0xfc, 0x56, 0x78, 0x78, 0x93, 0xb2, 0xba, 0xa4, 0x7a, 0x2e, 0x6c,
+ 0x6e, 0x51, 0x6d, 0x15, 0xad, 0xa3, 0xdd, 0x2e, 0xac, 0x75, 0xd0, 0x93,
+ 0xcf, 0x95, 0x5d, 0x26,
+};
+static const unsigned char kat3881_addinpr1[] = {0};
+static const unsigned char kat3881_entropyinpr2[] = {
+ 0xfa, 0x4d, 0xc0, 0xa0, 0xd9, 0xe4, 0xd1, 0x62, 0xe5, 0x9f, 0x08, 0xdf,
+ 0x9f, 0x48, 0xf5, 0x84, 0x68, 0xfa, 0x0b, 0xb9, 0x73, 0xef, 0x9a, 0x25,
+ 0x49, 0xe8, 0xe1, 0x45, 0x92, 0x22, 0xad, 0x06, 0x47, 0x9a, 0xb8, 0x3a,
+ 0x2f, 0xbf, 0x15, 0x52,
+};
+static const unsigned char kat3881_addinpr2[] = {0};
+static const unsigned char kat3881_retbits[] = {
+ 0x0c, 0x18, 0x8d, 0x78, 0x1b, 0x1e, 0x86, 0xfe, 0x99, 0x16, 0x4e, 0xa0,
+ 0x20, 0xc2, 0x1a, 0x0b, 0xb2, 0x83, 0x13, 0x91, 0xf1, 0x7f, 0xd5, 0x80,
+ 0x7d, 0x91, 0x69, 0x49, 0x7b, 0xf1, 0x86, 0xba, 0x35, 0x45, 0x0e, 0xf4,
+ 0xa5, 0xf2, 0xcb, 0xff, 0xf6, 0x3f, 0xdf, 0x9d, 0xaf, 0xb4, 0x34, 0x8b,
+ 0xdf, 0x00, 0x7f, 0xbd, 0x32, 0xbb, 0xad, 0x04, 0xe7, 0x25, 0x57, 0xff,
+ 0x52, 0x5c, 0x85, 0xbb,
+};
+static const struct drbg_kat_pr_true kat3881_t = {
+ 10, kat3881_entropyin, kat3881_nonce, kat3881_persstr,
+ kat3881_entropyinpr1, kat3881_addinpr1, kat3881_entropyinpr2,
+ kat3881_addinpr2, kat3881_retbits
+};
+static const struct drbg_kat kat3881 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3881_t
+};
+
+static const unsigned char kat3882_entropyin[] = {
+ 0xa9, 0x2b, 0x46, 0x43, 0xff, 0x0e, 0xfe, 0x3d, 0xfa, 0x2c, 0x1c, 0xef,
+ 0x49, 0xd1, 0xd1, 0x32, 0x0e, 0x15, 0x6e, 0xb1, 0x1f, 0x38, 0x88, 0xc0,
+ 0x02, 0xbc, 0x77, 0xc9, 0xea, 0xc0, 0x63, 0x3f, 0x48, 0x18, 0x9a, 0x29,
+ 0xc6, 0xb1, 0x90, 0x0a,
+};
+static const unsigned char kat3882_nonce[] = {0};
+static const unsigned char kat3882_persstr[] = {
+ 0x42, 0x71, 0x90, 0x0c, 0x2b, 0xa1, 0x9d, 0x49, 0xa5, 0xc9, 0x11, 0xa2,
+ 0x0d, 0x43, 0x70, 0xaf, 0x4f, 0x06, 0x92, 0x2a, 0xa5, 0x5d, 0xda, 0xa7,
+ 0x8f, 0x88, 0xe5, 0x70, 0x3b, 0x8b, 0xc4, 0x91, 0x48, 0xbf, 0xaa, 0x1c,
+ 0xc3, 0xd5, 0x75, 0xaf,
+};
+static const unsigned char kat3882_entropyinpr1[] = {
+ 0x43, 0xb0, 0x2c, 0xaf, 0x14, 0xcb, 0x3d, 0x3c, 0xff, 0x57, 0x41, 0x87,
+ 0xb5, 0x57, 0xbb, 0x93, 0xc4, 0xf3, 0x19, 0xf3, 0x7c, 0x1d, 0x20, 0xb3,
+ 0xf0, 0xa9, 0x7c, 0x32, 0xc6, 0x01, 0x0a, 0x75, 0x65, 0xf1, 0x59, 0x71,
+ 0x7a, 0xc7, 0x92, 0x1c,
+};
+static const unsigned char kat3882_addinpr1[] = {0};
+static const unsigned char kat3882_entropyinpr2[] = {
+ 0x06, 0x97, 0xb6, 0x7a, 0xe1, 0xd3, 0x9a, 0x72, 0x36, 0x03, 0xf8, 0x10,
+ 0xdd, 0xce, 0xfa, 0x97, 0x56, 0x53, 0xc0, 0xc1, 0xf6, 0xf6, 0x37, 0x31,
+ 0x59, 0x71, 0x78, 0xcb, 0x03, 0x36, 0x6d, 0xb9, 0x86, 0x51, 0x94, 0xb7,
+ 0xfa, 0x81, 0x29, 0xd6,
+};
+static const unsigned char kat3882_addinpr2[] = {0};
+static const unsigned char kat3882_retbits[] = {
+ 0x88, 0x93, 0x88, 0x8e, 0x47, 0x05, 0x52, 0x5c, 0xda, 0x03, 0x82, 0xb0,
+ 0x1b, 0xa4, 0xff, 0x5b, 0x5d, 0x62, 0x42, 0xd4, 0xe6, 0x27, 0x7a, 0x39,
+ 0x85, 0x50, 0x16, 0xf5, 0x18, 0xac, 0x63, 0x1b, 0xb2, 0xf7, 0x6f, 0x8b,
+ 0x3b, 0xd4, 0xd3, 0x7b, 0x78, 0xa2, 0x12, 0x9f, 0x67, 0x0b, 0xfe, 0x1b,
+ 0xfd, 0x6e, 0x8e, 0xed, 0xe4, 0x3d, 0x3a, 0x27, 0xc2, 0x06, 0x62, 0xf2,
+ 0x0f, 0xc9, 0xfc, 0xcd,
+};
+static const struct drbg_kat_pr_true kat3882_t = {
+ 11, kat3882_entropyin, kat3882_nonce, kat3882_persstr,
+ kat3882_entropyinpr1, kat3882_addinpr1, kat3882_entropyinpr2,
+ kat3882_addinpr2, kat3882_retbits
+};
+static const struct drbg_kat kat3882 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3882_t
+};
+
+static const unsigned char kat3883_entropyin[] = {
+ 0x02, 0x78, 0xdb, 0x17, 0x6c, 0xb3, 0x75, 0xde, 0xa1, 0x65, 0xaf, 0x91,
+ 0xa9, 0x2e, 0x39, 0x6c, 0x76, 0x06, 0x22, 0x85, 0x51, 0x41, 0xd5, 0xc1,
+ 0xac, 0x70, 0xf0, 0x03, 0x49, 0xb9, 0xef, 0x57, 0xbd, 0x66, 0x20, 0x40,
+ 0xa5, 0x3f, 0xb6, 0x5d,
+};
+static const unsigned char kat3883_nonce[] = {0};
+static const unsigned char kat3883_persstr[] = {
+ 0xfd, 0x1a, 0x24, 0xb8, 0x05, 0x6f, 0x24, 0x2a, 0xbc, 0x95, 0x25, 0xc4,
+ 0x82, 0x34, 0xa7, 0x95, 0x6a, 0x1f, 0x1b, 0x05, 0x76, 0x95, 0xec, 0x2b,
+ 0xf5, 0xea, 0xe0, 0xb4, 0x4f, 0xd5, 0x48, 0xf3, 0x8e, 0x18, 0xb3, 0x80,
+ 0x06, 0x97, 0x85, 0xc1,
+};
+static const unsigned char kat3883_entropyinpr1[] = {
+ 0x4d, 0xd2, 0x00, 0x1d, 0x6a, 0x71, 0x56, 0xad, 0x8f, 0x97, 0x49, 0x32,
+ 0x60, 0xac, 0xe2, 0xf2, 0xd7, 0x8f, 0xa8, 0x9c, 0xd2, 0x93, 0xac, 0x70,
+ 0x0b, 0x75, 0x71, 0x28, 0xdc, 0x20, 0xb0, 0x34, 0x4c, 0xab, 0x46, 0x3f,
+ 0xdb, 0x63, 0xd1, 0x5d,
+};
+static const unsigned char kat3883_addinpr1[] = {0};
+static const unsigned char kat3883_entropyinpr2[] = {
+ 0x64, 0xea, 0xf1, 0x88, 0xb3, 0x25, 0xc3, 0xa1, 0xed, 0xe9, 0x69, 0x30,
+ 0x0a, 0x07, 0x19, 0xfd, 0xcd, 0x94, 0x2d, 0x7b, 0x1e, 0x22, 0x55, 0xff,
+ 0xcb, 0x2f, 0xf1, 0xc6, 0x46, 0x8c, 0xef, 0x18, 0x4a, 0x84, 0xa8, 0x5b,
+ 0x44, 0x29, 0x51, 0x25,
+};
+static const unsigned char kat3883_addinpr2[] = {0};
+static const unsigned char kat3883_retbits[] = {
+ 0xa9, 0xbc, 0x86, 0xb7, 0x15, 0xc5, 0xbf, 0x10, 0xe7, 0xa4, 0x83, 0x96,
+ 0x34, 0x5a, 0xfc, 0xe9, 0x12, 0xe2, 0xd7, 0x49, 0xd5, 0xcb, 0x67, 0x82,
+ 0x29, 0x41, 0x37, 0x69, 0x4a, 0xce, 0xd2, 0x5b, 0xaf, 0x5e, 0x55, 0xd2,
+ 0x3a, 0x31, 0xe5, 0x93, 0x04, 0x5b, 0xd4, 0x52, 0x76, 0x0d, 0x6f, 0x74,
+ 0x20, 0x53, 0xbf, 0x79, 0x2e, 0x09, 0x74, 0xe1, 0x4c, 0x4b, 0x5e, 0xb6,
+ 0x1c, 0x0e, 0x20, 0xfa,
+};
+static const struct drbg_kat_pr_true kat3883_t = {
+ 12, kat3883_entropyin, kat3883_nonce, kat3883_persstr,
+ kat3883_entropyinpr1, kat3883_addinpr1, kat3883_entropyinpr2,
+ kat3883_addinpr2, kat3883_retbits
+};
+static const struct drbg_kat kat3883 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3883_t
+};
+
+static const unsigned char kat3884_entropyin[] = {
+ 0x10, 0xc7, 0xfe, 0x6e, 0x44, 0x56, 0xd4, 0x13, 0xa0, 0x54, 0x8c, 0x6b,
+ 0xe6, 0x86, 0x0d, 0xf6, 0x90, 0x4f, 0x79, 0x6f, 0x0b, 0x04, 0xec, 0xa7,
+ 0x28, 0x06, 0x0b, 0xd9, 0x7a, 0x21, 0x53, 0x29, 0x8a, 0x6a, 0x2a, 0x67,
+ 0xcd, 0x3a, 0x36, 0x36,
+};
+static const unsigned char kat3884_nonce[] = {0};
+static const unsigned char kat3884_persstr[] = {
+ 0xbb, 0x95, 0xe7, 0xe4, 0x31, 0x0f, 0x33, 0xc4, 0x03, 0x86, 0x3d, 0xcb,
+ 0x50, 0x89, 0x82, 0x7c, 0x00, 0x66, 0x11, 0x7a, 0xaa, 0xe6, 0xe3, 0x10,
+ 0xcd, 0x17, 0x0a, 0x23, 0x8f, 0x07, 0xa4, 0xe4, 0xa2, 0x56, 0xdf, 0x33,
+ 0x3e, 0x6f, 0x1e, 0xec,
+};
+static const unsigned char kat3884_entropyinpr1[] = {
+ 0x17, 0x70, 0x7c, 0x1e, 0x5b, 0x85, 0xc9, 0x7f, 0xc8, 0x03, 0xd2, 0xc7,
+ 0x06, 0x19, 0x07, 0x1d, 0xbc, 0xae, 0x96, 0x9c, 0x0d, 0xed, 0x93, 0xe0,
+ 0x86, 0x95, 0x92, 0xe5, 0x72, 0xa2, 0x1d, 0xff, 0x9f, 0x6f, 0xa1, 0x90,
+ 0xed, 0x12, 0x56, 0xa8,
+};
+static const unsigned char kat3884_addinpr1[] = {0};
+static const unsigned char kat3884_entropyinpr2[] = {
+ 0xc6, 0xc8, 0x33, 0xf8, 0xca, 0x86, 0xb0, 0x7d, 0xb1, 0x45, 0xdc, 0x90,
+ 0x48, 0x83, 0x89, 0x2f, 0x35, 0x10, 0xc4, 0xac, 0x22, 0x45, 0xb2, 0x49,
+ 0x47, 0xfd, 0x5c, 0xe6, 0xe8, 0x12, 0xb0, 0xc0, 0x49, 0xd2, 0xfc, 0x41,
+ 0xbb, 0x3a, 0x24, 0xfc,
+};
+static const unsigned char kat3884_addinpr2[] = {0};
+static const unsigned char kat3884_retbits[] = {
+ 0xd3, 0x60, 0xb9, 0xec, 0xd4, 0x0b, 0xdc, 0x9d, 0x28, 0x76, 0x58, 0x03,
+ 0x1d, 0x61, 0xf6, 0xdd, 0x3c, 0xf4, 0xdc, 0x7b, 0xc7, 0x4c, 0xcd, 0x47,
+ 0x69, 0x14, 0xac, 0x41, 0x75, 0xa3, 0x05, 0x9b, 0x79, 0xd1, 0x01, 0xe2,
+ 0x00, 0x18, 0x20, 0x2a, 0x8c, 0x68, 0x55, 0x8c, 0xb1, 0x2f, 0x8f, 0x35,
+ 0x2f, 0xe9, 0x84, 0x57, 0xf2, 0xa0, 0xcf, 0x5d, 0xf8, 0xcc, 0xd4, 0x22,
+ 0x38, 0x94, 0xe6, 0x4f,
+};
+static const struct drbg_kat_pr_true kat3884_t = {
+ 13, kat3884_entropyin, kat3884_nonce, kat3884_persstr,
+ kat3884_entropyinpr1, kat3884_addinpr1, kat3884_entropyinpr2,
+ kat3884_addinpr2, kat3884_retbits
+};
+static const struct drbg_kat kat3884 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3884_t
+};
+
+static const unsigned char kat3885_entropyin[] = {
+ 0x89, 0xe4, 0x0f, 0x39, 0x59, 0x00, 0xff, 0x4b, 0x24, 0x20, 0xb6, 0xfc,
+ 0xcc, 0xa1, 0x1b, 0x09, 0xbb, 0xd9, 0x0f, 0x44, 0x70, 0x34, 0xaa, 0x6d,
+ 0x8e, 0xf4, 0x37, 0xa2, 0x4e, 0x9b, 0xf8, 0xd4, 0xbf, 0xb7, 0x78, 0x93,
+ 0xc7, 0x68, 0x1b, 0xbe,
+};
+static const unsigned char kat3885_nonce[] = {0};
+static const unsigned char kat3885_persstr[] = {
+ 0x9d, 0x0e, 0x51, 0x91, 0xbe, 0x83, 0x6c, 0x05, 0xf2, 0xd2, 0x6b, 0x79,
+ 0xc8, 0x3d, 0x37, 0x68, 0x5b, 0xb3, 0x5e, 0x84, 0x57, 0x4b, 0x46, 0x2b,
+ 0x4e, 0xca, 0xb1, 0xc8, 0x11, 0x5f, 0x2f, 0x9f, 0x34, 0x97, 0x4c, 0x69,
+ 0xa7, 0x31, 0xd7, 0x25,
+};
+static const unsigned char kat3885_entropyinpr1[] = {
+ 0x75, 0x6f, 0x29, 0x30, 0x5a, 0xf9, 0xf4, 0xd3, 0xce, 0xca, 0x43, 0x99,
+ 0x59, 0x4d, 0x07, 0x63, 0x6d, 0xf0, 0xb2, 0xec, 0xfa, 0xa0, 0x64, 0x38,
+ 0x80, 0xe5, 0x86, 0xac, 0xbf, 0x68, 0xad, 0x18, 0xed, 0x6e, 0x33, 0xe2,
+ 0x8f, 0xc4, 0xfc, 0x54,
+};
+static const unsigned char kat3885_addinpr1[] = {0};
+static const unsigned char kat3885_entropyinpr2[] = {
+ 0x18, 0x80, 0x25, 0x2a, 0xd9, 0x3c, 0x99, 0x4d, 0xff, 0x31, 0xfb, 0x2a,
+ 0x10, 0xfa, 0xb8, 0xc2, 0x65, 0xcf, 0x6f, 0x6a, 0x36, 0xf0, 0x10, 0xfc,
+ 0x35, 0xe4, 0xd8, 0x58, 0xbb, 0xb7, 0x83, 0xe3, 0xa6, 0x82, 0xaf, 0xc3,
+ 0xfb, 0x98, 0xfe, 0x6d,
+};
+static const unsigned char kat3885_addinpr2[] = {0};
+static const unsigned char kat3885_retbits[] = {
+ 0x2f, 0x78, 0x72, 0xa7, 0x04, 0xeb, 0x27, 0x6a, 0xfa, 0xd3, 0xef, 0xb1,
+ 0x31, 0xe6, 0x7c, 0x4b, 0x95, 0x08, 0xff, 0xfd, 0xbb, 0x70, 0x4e, 0x8c,
+ 0x85, 0xc0, 0x7e, 0x61, 0x32, 0x74, 0x59, 0x41, 0xa8, 0x88, 0x9f, 0xfc,
+ 0x37, 0xba, 0xa6, 0x37, 0xa1, 0xb7, 0xb7, 0xb0, 0xb8, 0x4f, 0xbf, 0xdb,
+ 0x8f, 0xbc, 0x00, 0xe7, 0xf1, 0xef, 0xf5, 0x0b, 0xaf, 0x2d, 0x06, 0x2d,
+ 0x84, 0x34, 0xbb, 0xa2,
+};
+static const struct drbg_kat_pr_true kat3885_t = {
+ 14, kat3885_entropyin, kat3885_nonce, kat3885_persstr,
+ kat3885_entropyinpr1, kat3885_addinpr1, kat3885_entropyinpr2,
+ kat3885_addinpr2, kat3885_retbits
+};
+static const struct drbg_kat kat3885 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3885_t
+};
+
+static const unsigned char kat3886_entropyin[] = {
+ 0xfe, 0xea, 0x3b, 0x69, 0x64, 0x66, 0x4c, 0x58, 0xbc, 0x58, 0xf5, 0xac,
+ 0x8f, 0x0e, 0x9d, 0x35, 0xd3, 0xcc, 0xf8, 0x72, 0x20, 0xbb, 0x5e, 0x7a,
+ 0x84, 0xc1, 0x3c, 0x68, 0xcd, 0x9a, 0x28, 0xf1, 0xff, 0x57, 0x66, 0x75,
+ 0x22, 0x4c, 0x84, 0xc2,
+};
+static const unsigned char kat3886_nonce[] = {0};
+static const unsigned char kat3886_persstr[] = {
+ 0xee, 0xba, 0xc7, 0x11, 0xed, 0xbb, 0x40, 0x34, 0xa7, 0xd7, 0xfd, 0x17,
+ 0xc3, 0x01, 0x46, 0x7b, 0xb1, 0x36, 0x9b, 0x85, 0xae, 0xff, 0x93, 0xdb,
+ 0xe8, 0x2b, 0xce, 0x80, 0x3c, 0xa0, 0x59, 0x49, 0x2c, 0xaf, 0x3e, 0x96,
+ 0xb5, 0xf0, 0x1d, 0x83,
+};
+static const unsigned char kat3886_entropyinpr1[] = {
+ 0xab, 0x87, 0xb8, 0x1b, 0x15, 0xe4, 0x20, 0x3c, 0xed, 0x5d, 0xcf, 0xa7,
+ 0xa2, 0xe9, 0x2f, 0x71, 0x78, 0x48, 0x32, 0xa5, 0xc4, 0x7f, 0x00, 0x54,
+ 0x85, 0x0f, 0xf3, 0x2a, 0x06, 0xc6, 0x87, 0x47, 0x47, 0x44, 0x6c, 0x69,
+ 0xcb, 0x48, 0x1e, 0xf4,
+};
+static const unsigned char kat3886_addinpr1[] = {
+ 0xa5, 0x50, 0x0c, 0x3f, 0x37, 0xb2, 0x0c, 0xec, 0x33, 0x91, 0xef, 0xfc,
+ 0xac, 0x45, 0x67, 0x66, 0x74, 0xab, 0x8a, 0xba, 0x5f, 0x96, 0x90, 0x51,
+ 0x7b, 0x80, 0xeb, 0x6d, 0x26, 0x10, 0xf8, 0x32, 0x56, 0x41, 0x28, 0xf8,
+ 0x7c, 0x4f, 0x88, 0xb2,
+};
+static const unsigned char kat3886_entropyinpr2[] = {
+ 0x29, 0xde, 0x4f, 0x15, 0xb4, 0x89, 0xc4, 0xe8, 0xcd, 0xc7, 0x32, 0x44,
+ 0x57, 0x00, 0x12, 0xb4, 0x43, 0xa1, 0x24, 0x2f, 0x28, 0xf9, 0xdd, 0x7f,
+ 0xa4, 0x3f, 0x98, 0x29, 0x3a, 0x0e, 0x49, 0x0a, 0xef, 0x28, 0x1e, 0xea,
+ 0x13, 0xd1, 0xe1, 0x36,
+};
+static const unsigned char kat3886_addinpr2[] = {
+ 0x61, 0x38, 0x44, 0x43, 0xe0, 0x7a, 0x56, 0x59, 0xc7, 0xbd, 0xb9, 0xbf,
+ 0x9f, 0x3f, 0xde, 0x67, 0x7a, 0xd9, 0x57, 0x37, 0xe9, 0x26, 0x0b, 0x53,
+ 0x63, 0x5f, 0xd7, 0xb9, 0xd4, 0xb6, 0x3a, 0x79, 0x95, 0x86, 0x12, 0x85,
+ 0xee, 0x61, 0x32, 0x65,
+};
+static const unsigned char kat3886_retbits[] = {
+ 0x2f, 0x19, 0x57, 0x0a, 0x4e, 0xeb, 0xe4, 0x6b, 0x24, 0x10, 0x4c, 0x44,
+ 0x29, 0x0a, 0x1c, 0x20, 0x6d, 0xaa, 0xaa, 0xf9, 0x9d, 0x43, 0xf0, 0x53,
+ 0x0d, 0xf4, 0x18, 0x33, 0x22, 0xbd, 0x79, 0x8d, 0x08, 0xd7, 0x95, 0xc2,
+ 0x8e, 0x9f, 0x67, 0xae, 0x24, 0x50, 0x7b, 0xe4, 0x81, 0xde, 0xab, 0xb4,
+ 0xf7, 0x60, 0xd2, 0xf6, 0x93, 0xcd, 0x0a, 0xf2, 0x36, 0xb0, 0xba, 0x59,
+ 0x96, 0x80, 0x6e, 0x34,
+};
+static const struct drbg_kat_pr_true kat3886_t = {
+ 0, kat3886_entropyin, kat3886_nonce, kat3886_persstr,
+ kat3886_entropyinpr1, kat3886_addinpr1, kat3886_entropyinpr2,
+ kat3886_addinpr2, kat3886_retbits
+};
+static const struct drbg_kat kat3886 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3886_t
+};
+
+static const unsigned char kat3887_entropyin[] = {
+ 0x1f, 0x43, 0x40, 0x8a, 0xce, 0xac, 0x5a, 0xe3, 0xfa, 0xe7, 0x3d, 0x8a,
+ 0x56, 0xd9, 0xdf, 0xbc, 0x3a, 0x4c, 0x83, 0xe1, 0x6d, 0x76, 0x11, 0xea,
+ 0x5b, 0x34, 0x58, 0x79, 0x27, 0x36, 0x60, 0x4e, 0x77, 0xc3, 0xc7, 0xe5,
+ 0x08, 0x94, 0xab, 0x13,
+};
+static const unsigned char kat3887_nonce[] = {0};
+static const unsigned char kat3887_persstr[] = {
+ 0x43, 0x75, 0x5b, 0x49, 0x6a, 0x73, 0x1c, 0x26, 0x41, 0x2d, 0xf6, 0x8a,
+ 0x28, 0x58, 0x48, 0x0e, 0x8f, 0x4b, 0x64, 0xbd, 0xeb, 0x11, 0xd5, 0x31,
+ 0xbe, 0x87, 0xba, 0x4d, 0x9e, 0xf6, 0x8b, 0x7b, 0x34, 0xe6, 0x8f, 0x3c,
+ 0x61, 0xe5, 0x7c, 0xf6,
+};
+static const unsigned char kat3887_entropyinpr1[] = {
+ 0xbc, 0x06, 0x41, 0x09, 0x73, 0x8d, 0x79, 0xe6, 0xa0, 0x05, 0x90, 0x73,
+ 0xce, 0xd6, 0xcf, 0xd3, 0x34, 0x7d, 0xe0, 0x89, 0x28, 0x53, 0x4a, 0xb7,
+ 0xd2, 0xa3, 0x8c, 0x8e, 0xb1, 0xf3, 0x20, 0x7d, 0x34, 0xa5, 0xcc, 0x29,
+ 0xd8, 0x7b, 0x37, 0x58,
+};
+static const unsigned char kat3887_addinpr1[] = {
+ 0x55, 0xd7, 0xb4, 0x31, 0x37, 0x8a, 0x16, 0x36, 0xa9, 0x5e, 0x21, 0xc8,
+ 0xd0, 0x08, 0xed, 0x35, 0x65, 0x9c, 0xc1, 0x23, 0x39, 0x60, 0x88, 0x99,
+ 0xc5, 0x87, 0x9e, 0x5e, 0xbd, 0xbb, 0x16, 0xc2, 0x3a, 0x8c, 0xa0, 0xa5,
+ 0x13, 0xf9, 0x2a, 0x3e,
+};
+static const unsigned char kat3887_entropyinpr2[] = {
+ 0xc1, 0x49, 0xc4, 0x83, 0x0b, 0x17, 0xa1, 0x35, 0x1d, 0x3a, 0x66, 0x91,
+ 0x66, 0x08, 0x24, 0x19, 0x95, 0x65, 0xba, 0x34, 0x85, 0xe9, 0x26, 0xdb,
+ 0x0a, 0xd2, 0x96, 0xa4, 0x36, 0xde, 0x09, 0xc6, 0x55, 0xdd, 0xc2, 0x9d,
+ 0x79, 0xd8, 0xfb, 0x36,
+};
+static const unsigned char kat3887_addinpr2[] = {
+ 0x8f, 0x47, 0xa0, 0xb3, 0xe4, 0x44, 0x5b, 0x79, 0x31, 0x3e, 0xcf, 0x02,
+ 0xc9, 0xa8, 0x40, 0x7b, 0xf0, 0x6f, 0x18, 0x10, 0x3a, 0xb2, 0xa2, 0xc0,
+ 0xa8, 0x41, 0x55, 0x91, 0x4c, 0x0a, 0x1e, 0xed, 0x78, 0x7d, 0x81, 0xe0,
+ 0xd2, 0x62, 0x56, 0x59,
+};
+static const unsigned char kat3887_retbits[] = {
+ 0x3a, 0x51, 0xde, 0x2b, 0x18, 0xba, 0xf2, 0x52, 0x8a, 0x48, 0x0c, 0xc3,
+ 0xde, 0x67, 0xdb, 0xf9, 0xf4, 0x30, 0x39, 0x21, 0x7f, 0x89, 0x88, 0x13,
+ 0x2f, 0x98, 0xab, 0x34, 0x89, 0x12, 0xa3, 0xc4, 0xe0, 0xe9, 0x37, 0xf4,
+ 0x3b, 0x29, 0xc4, 0x8b, 0xda, 0x5e, 0x66, 0x8c, 0x97, 0xa5, 0x9a, 0x4d,
+ 0x81, 0x9f, 0x02, 0x6f, 0xfa, 0x9a, 0x10, 0x7c, 0x08, 0xa3, 0x03, 0x5d,
+ 0x6a, 0xc6, 0x87, 0x3c,
+};
+static const struct drbg_kat_pr_true kat3887_t = {
+ 1, kat3887_entropyin, kat3887_nonce, kat3887_persstr,
+ kat3887_entropyinpr1, kat3887_addinpr1, kat3887_entropyinpr2,
+ kat3887_addinpr2, kat3887_retbits
+};
+static const struct drbg_kat kat3887 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3887_t
+};
+
+static const unsigned char kat3888_entropyin[] = {
+ 0xad, 0x8a, 0xae, 0xa9, 0xc2, 0x16, 0x4e, 0x70, 0x81, 0xb8, 0xe9, 0x98,
+ 0xb9, 0xae, 0x7b, 0xf9, 0xcf, 0xf7, 0xe2, 0xa2, 0x29, 0xa9, 0x14, 0x06,
+ 0xab, 0x46, 0x10, 0x58, 0xe5, 0x44, 0xf1, 0xef, 0xfe, 0x23, 0x57, 0x09,
+ 0x0c, 0xc5, 0x31, 0xb8,
+};
+static const unsigned char kat3888_nonce[] = {0};
+static const unsigned char kat3888_persstr[] = {
+ 0xc6, 0x95, 0x54, 0x86, 0x98, 0xe8, 0x04, 0x6f, 0xae, 0x63, 0x64, 0x46,
+ 0x81, 0x26, 0x38, 0x12, 0x6d, 0x1f, 0xdf, 0xbc, 0xc7, 0x2e, 0x14, 0x1a,
+ 0x45, 0xbd, 0x59, 0xd7, 0xdc, 0xd5, 0x80, 0x0b, 0x0d, 0x74, 0xef, 0x7b,
+ 0x79, 0x96, 0x2f, 0xc5,
+};
+static const unsigned char kat3888_entropyinpr1[] = {
+ 0x19, 0x5e, 0x30, 0x02, 0x58, 0x47, 0xc4, 0xa6, 0x8b, 0x38, 0xa2, 0x93,
+ 0xed, 0x67, 0xe5, 0xa7, 0x17, 0x4b, 0x50, 0x1e, 0xa1, 0x8b, 0xd5, 0xfd,
+ 0x86, 0xb0, 0xdc, 0x27, 0x24, 0x8c, 0xd4, 0xc5, 0x79, 0xc3, 0x65, 0x1b,
+ 0x7f, 0x3b, 0xef, 0xc6,
+};
+static const unsigned char kat3888_addinpr1[] = {
+ 0xbb, 0xbd, 0xdd, 0x2e, 0x31, 0x44, 0x78, 0x1e, 0xa3, 0x22, 0x25, 0x6c,
+ 0x16, 0x90, 0x04, 0xc9, 0xcf, 0xc8, 0xe8, 0xb7, 0xce, 0x31, 0x97, 0xa6,
+ 0x74, 0x9e, 0x7d, 0x47, 0x3f, 0x2a, 0xd6, 0x1a, 0xe8, 0x28, 0x05, 0x00,
+ 0x7e, 0x9d, 0xf2, 0xde,
+};
+static const unsigned char kat3888_entropyinpr2[] = {
+ 0x60, 0x68, 0xd0, 0x01, 0x30, 0xc5, 0xfa, 0x61, 0x89, 0x28, 0x88, 0xa7,
+ 0xba, 0xa4, 0x59, 0x74, 0xd4, 0x08, 0xe4, 0xdd, 0x9e, 0x21, 0x1e, 0xa8,
+ 0x30, 0x33, 0x00, 0xdf, 0x07, 0x06, 0x5e, 0xf0, 0x85, 0xf0, 0x8c, 0xcf,
+ 0x4f, 0xa0, 0x86, 0x84,
+};
+static const unsigned char kat3888_addinpr2[] = {
+ 0x08, 0x35, 0x04, 0x9c, 0x8f, 0x61, 0x4c, 0x28, 0x79, 0x49, 0x6d, 0x52,
+ 0xfa, 0x74, 0x1d, 0xfd, 0x2b, 0x19, 0x86, 0x1b, 0x5b, 0xc7, 0x70, 0x81,
+ 0xf6, 0x07, 0xf0, 0x9e, 0x52, 0xac, 0xef, 0x06, 0x20, 0x09, 0x69, 0x57,
+ 0xa2, 0x78, 0xca, 0x10,
+};
+static const unsigned char kat3888_retbits[] = {
+ 0x97, 0xd1, 0x78, 0x9e, 0xfe, 0x77, 0x50, 0xc3, 0x5f, 0x06, 0x6a, 0x6a,
+ 0x71, 0xfa, 0x5b, 0x57, 0x1e, 0x9f, 0x8f, 0x5b, 0x07, 0x07, 0x97, 0xe7,
+ 0x75, 0xee, 0x06, 0xd8, 0x6f, 0xe5, 0x20, 0x4e, 0x8a, 0x57, 0xf9, 0xd1,
+ 0x8d, 0xae, 0x51, 0x0f, 0x3c, 0xd3, 0x33, 0xec, 0x9f, 0x5c, 0xa2, 0xf5,
+ 0xe3, 0x46, 0x12, 0x5d, 0x73, 0xe2, 0xe3, 0xf2, 0x1b, 0xc0, 0x2d, 0x85,
+ 0xd0, 0x95, 0x70, 0xef,
+};
+static const struct drbg_kat_pr_true kat3888_t = {
+ 2, kat3888_entropyin, kat3888_nonce, kat3888_persstr,
+ kat3888_entropyinpr1, kat3888_addinpr1, kat3888_entropyinpr2,
+ kat3888_addinpr2, kat3888_retbits
+};
+static const struct drbg_kat kat3888 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3888_t
+};
+
+static const unsigned char kat3889_entropyin[] = {
+ 0x72, 0x39, 0x23, 0x00, 0x5d, 0xe0, 0x92, 0x1a, 0x16, 0x1b, 0xb2, 0x01,
+ 0x9e, 0x50, 0xec, 0x70, 0x6d, 0x9e, 0xb0, 0xef, 0xa5, 0x04, 0x76, 0x00,
+ 0xd9, 0x29, 0x1c, 0xea, 0x15, 0x76, 0xa1, 0x4d, 0xe9, 0x27, 0x04, 0xff,
+ 0x21, 0x67, 0xd1, 0x4b,
+};
+static const unsigned char kat3889_nonce[] = {0};
+static const unsigned char kat3889_persstr[] = {
+ 0xd8, 0x6d, 0xef, 0xdf, 0xf1, 0xb7, 0xaf, 0x29, 0x28, 0xed, 0x06, 0x14,
+ 0xd4, 0xb8, 0xe2, 0x3a, 0xb9, 0xdb, 0x8b, 0xa6, 0x04, 0x0f, 0x74, 0xb5,
+ 0xfd, 0xb8, 0xfe, 0x7a, 0xdc, 0xe3, 0xb1, 0xd4, 0x39, 0xf5, 0xb4, 0x92,
+ 0x9b, 0x2e, 0xa8, 0xc9,
+};
+static const unsigned char kat3889_entropyinpr1[] = {
+ 0x29, 0x01, 0xc8, 0xd6, 0x34, 0x60, 0x15, 0xd6, 0x7f, 0x4e, 0x77, 0xbe,
+ 0x17, 0xdd, 0x1d, 0xe1, 0x44, 0x18, 0x5d, 0xc9, 0x43, 0x86, 0x96, 0x47,
+ 0x45, 0xfa, 0x78, 0xcd, 0xdd, 0x9e, 0x00, 0xa2, 0xd4, 0xb2, 0x1c, 0xbc,
+ 0xc3, 0x8f, 0x24, 0x93,
+};
+static const unsigned char kat3889_addinpr1[] = {
+ 0xe1, 0xe6, 0xbd, 0xe7, 0x11, 0x13, 0x53, 0x17, 0x97, 0x38, 0xad, 0x2b,
+ 0xdd, 0x44, 0x53, 0x6c, 0x84, 0x33, 0xe4, 0x44, 0x3a, 0xf3, 0xa8, 0x07,
+ 0x88, 0xe3, 0x98, 0x17, 0xf2, 0xf1, 0xf0, 0xce, 0xcd, 0x45, 0xa6, 0x3c,
+ 0xec, 0x7c, 0x63, 0x6e,
+};
+static const unsigned char kat3889_entropyinpr2[] = {
+ 0xcf, 0x98, 0xb8, 0x58, 0xc1, 0xa8, 0x3c, 0x72, 0x8a, 0xdf, 0xdf, 0x33,
+ 0xae, 0x3e, 0x54, 0x7b, 0xf4, 0x0a, 0xaf, 0xdf, 0x57, 0xf0, 0x3a, 0xc5,
+ 0xd4, 0xf8, 0x22, 0x09, 0x64, 0xf0, 0x7d, 0x8e, 0xa7, 0xfe, 0x2b, 0x06,
+ 0xfa, 0x16, 0xed, 0xda,
+};
+static const unsigned char kat3889_addinpr2[] = {
+ 0xdf, 0xd4, 0xae, 0x3a, 0x33, 0x05, 0xbe, 0xa1, 0x60, 0x69, 0x35, 0x01,
+ 0x06, 0x38, 0xde, 0xd1, 0xcf, 0x05, 0x19, 0x1b, 0x7c, 0x32, 0x50, 0x9a,
+ 0xf5, 0x26, 0xad, 0xc3, 0x9c, 0xc8, 0x14, 0x30, 0xcb, 0x05, 0xea, 0xb0,
+ 0x37, 0xd9, 0xcf, 0x20,
+};
+static const unsigned char kat3889_retbits[] = {
+ 0x80, 0xdf, 0xe5, 0xab, 0x68, 0x8c, 0x7a, 0x91, 0xa6, 0x49, 0xda, 0x94,
+ 0x23, 0x95, 0xe1, 0xbd, 0xf3, 0xe8, 0x2a, 0x89, 0x62, 0xca, 0x9b, 0x76,
+ 0x5e, 0x6b, 0xdd, 0xb0, 0x89, 0x75, 0x57, 0x8c, 0xd8, 0xf4, 0xfa, 0x0b,
+ 0xcd, 0xff, 0xd5, 0x71, 0xb6, 0x0e, 0xd7, 0xea, 0x6e, 0x1d, 0x8a, 0xe6,
+ 0x2f, 0x44, 0xc7, 0xd2, 0xac, 0x78, 0x3b, 0xaa, 0x0a, 0x08, 0xb8, 0xb6,
+ 0x35, 0xe6, 0x0d, 0xf4,
+};
+static const struct drbg_kat_pr_true kat3889_t = {
+ 3, kat3889_entropyin, kat3889_nonce, kat3889_persstr,
+ kat3889_entropyinpr1, kat3889_addinpr1, kat3889_entropyinpr2,
+ kat3889_addinpr2, kat3889_retbits
+};
+static const struct drbg_kat kat3889 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3889_t
+};
+
+static const unsigned char kat3890_entropyin[] = {
+ 0x49, 0xed, 0x3a, 0xd0, 0xa1, 0x8d, 0x33, 0x22, 0xdd, 0xfa, 0xcc, 0x61,
+ 0x2c, 0x0b, 0xb0, 0xa6, 0x0d, 0x2c, 0x2f, 0x3d, 0xc9, 0xfc, 0x47, 0x5f,
+ 0x05, 0x9a, 0x4c, 0xed, 0xef, 0x64, 0xb3, 0x63, 0xc5, 0xda, 0x85, 0xc9,
+ 0xbd, 0x0a, 0x3b, 0x7d,
+};
+static const unsigned char kat3890_nonce[] = {0};
+static const unsigned char kat3890_persstr[] = {
+ 0xac, 0x5a, 0x21, 0x52, 0x13, 0x60, 0xe8, 0xcf, 0xbc, 0x95, 0xb4, 0x3c,
+ 0x78, 0x52, 0x97, 0xec, 0x3e, 0xb1, 0x82, 0x76, 0x6e, 0x51, 0x82, 0xc4,
+ 0x91, 0x18, 0x73, 0x20, 0x44, 0xc0, 0x97, 0x4d, 0xed, 0x08, 0x86, 0xee,
+ 0x74, 0x6e, 0x8d, 0x57,
+};
+static const unsigned char kat3890_entropyinpr1[] = {
+ 0x60, 0xb4, 0xd2, 0xb1, 0x74, 0xf6, 0x89, 0x7a, 0x4c, 0xc6, 0x54, 0xc8,
+ 0xfc, 0x94, 0xf2, 0xd2, 0x4e, 0xbb, 0x01, 0x36, 0xed, 0x25, 0x8c, 0x02,
+ 0x48, 0xb9, 0x60, 0x56, 0x73, 0x68, 0xdf, 0xd3, 0xdd, 0xdb, 0x26, 0x22,
+ 0xea, 0x7a, 0xb1, 0x46,
+};
+static const unsigned char kat3890_addinpr1[] = {
+ 0xff, 0x65, 0x59, 0x67, 0xf7, 0xc3, 0x48, 0x23, 0xaf, 0x42, 0xb4, 0xb0,
+ 0x1e, 0x2d, 0x56, 0xe9, 0x9e, 0x03, 0xfa, 0x3d, 0xf6, 0xe2, 0x07, 0xb0,
+ 0xfe, 0x68, 0x14, 0x95, 0x71, 0xa1, 0x78, 0x8c, 0xb2, 0x1b, 0x20, 0x0d,
+ 0x31, 0x32, 0xe2, 0x0f,
+};
+static const unsigned char kat3890_entropyinpr2[] = {
+ 0x72, 0x0e, 0xc5, 0x9f, 0x91, 0xdb, 0x36, 0x98, 0x55, 0xb3, 0x3e, 0xbb,
+ 0x1a, 0xe3, 0xeb, 0xcd, 0x36, 0x72, 0x28, 0xe5, 0x94, 0x74, 0x89, 0xc5,
+ 0x39, 0xe7, 0xe0, 0x2f, 0x7f, 0xc5, 0x25, 0x96, 0xfb, 0x5b, 0x51, 0xd8,
+ 0x77, 0x82, 0x92, 0x9c,
+};
+static const unsigned char kat3890_addinpr2[] = {
+ 0x03, 0x81, 0x25, 0x3e, 0xfb, 0x19, 0x3e, 0xa5, 0x74, 0xe0, 0x93, 0xda,
+ 0x57, 0x39, 0x1b, 0x23, 0x9a, 0xad, 0xb1, 0xe5, 0x72, 0x12, 0xb6, 0xee,
+ 0x17, 0xfd, 0xaa, 0x4d, 0x9b, 0x66, 0x4c, 0xe0, 0xd8, 0x7b, 0x3a, 0xd3,
+ 0xfa, 0x9a, 0x39, 0x7d,
+};
+static const unsigned char kat3890_retbits[] = {
+ 0xf0, 0xd7, 0x0c, 0xfe, 0x38, 0x13, 0x3e, 0x2b, 0x2b, 0xe3, 0x18, 0xd0,
+ 0x63, 0xe7, 0x26, 0xe6, 0x1d, 0xb8, 0xa8, 0x77, 0x57, 0x63, 0x7e, 0x3a,
+ 0x51, 0x2c, 0xa5, 0xfc, 0x2c, 0xd4, 0x2a, 0xd9, 0x5a, 0x69, 0x67, 0x41,
+ 0xa8, 0x38, 0xa8, 0x77, 0x27, 0xf2, 0xda, 0xb0, 0x51, 0xc0, 0x8c, 0x8d,
+ 0x2b, 0xea, 0x09, 0x8c, 0x87, 0xfe, 0xc0, 0x19, 0xb4, 0x87, 0x62, 0x40,
+ 0x9d, 0x52, 0x85, 0x44,
+};
+static const struct drbg_kat_pr_true kat3890_t = {
+ 4, kat3890_entropyin, kat3890_nonce, kat3890_persstr,
+ kat3890_entropyinpr1, kat3890_addinpr1, kat3890_entropyinpr2,
+ kat3890_addinpr2, kat3890_retbits
+};
+static const struct drbg_kat kat3890 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3890_t
+};
+
+static const unsigned char kat3891_entropyin[] = {
+ 0x23, 0xcf, 0xde, 0x18, 0x21, 0xb2, 0xcc, 0x19, 0xa5, 0x1c, 0x94, 0x4f,
+ 0xa9, 0xd1, 0xc5, 0x77, 0xdd, 0x6d, 0x8f, 0xee, 0x18, 0x60, 0xab, 0x16,
+ 0xf0, 0xb0, 0x9d, 0x76, 0xa5, 0x97, 0x27, 0x9e, 0x30, 0xe0, 0x87, 0x3a,
+ 0x45, 0x82, 0xfb, 0xb7,
+};
+static const unsigned char kat3891_nonce[] = {0};
+static const unsigned char kat3891_persstr[] = {
+ 0x76, 0x7a, 0x0f, 0xd5, 0x8d, 0x3c, 0xff, 0xcb, 0xa7, 0x9f, 0x23, 0x0c,
+ 0xe0, 0x37, 0x5c, 0x60, 0x29, 0xb7, 0xdf, 0xb6, 0xa7, 0xdb, 0x4f, 0x35,
+ 0xe7, 0xc9, 0x49, 0x16, 0x10, 0x1e, 0x64, 0x2b, 0xd1, 0xc8, 0x60, 0x20,
+ 0x1d, 0x1e, 0xd3, 0x6a,
+};
+static const unsigned char kat3891_entropyinpr1[] = {
+ 0xa0, 0xf6, 0xec, 0xdc, 0x1e, 0x7f, 0x78, 0x66, 0x74, 0x47, 0x23, 0xd6,
+ 0xc2, 0x44, 0xd1, 0x87, 0xe7, 0x9c, 0x92, 0x3c, 0x1e, 0x8d, 0x81, 0x1f,
+ 0x1f, 0x6a, 0xdf, 0x70, 0x53, 0x73, 0x4a, 0x17, 0xba, 0x55, 0x30, 0xe5,
+ 0xd5, 0xc3, 0x27, 0x20,
+};
+static const unsigned char kat3891_addinpr1[] = {
+ 0x23, 0x16, 0x64, 0x91, 0xe6, 0xa8, 0x67, 0x73, 0xfa, 0x3b, 0x2a, 0x9e,
+ 0x82, 0x27, 0x3e, 0x01, 0x7a, 0x57, 0xc2, 0xac, 0xbb, 0x82, 0x98, 0x2b,
+ 0x7d, 0x7d, 0x41, 0x81, 0xc0, 0x2a, 0x7e, 0xcb, 0x72, 0x00, 0x87, 0x00,
+ 0xe4, 0x78, 0x51, 0x1b,
+};
+static const unsigned char kat3891_entropyinpr2[] = {
+ 0xec, 0x61, 0xcf, 0xb3, 0x93, 0xb5, 0x66, 0xaa, 0x03, 0x4e, 0x50, 0x7f,
+ 0x20, 0xd5, 0x4d, 0x5a, 0x17, 0x83, 0xaa, 0x53, 0xbc, 0x6e, 0xdd, 0xef,
+ 0xc4, 0x1c, 0xac, 0xcc, 0x4d, 0xd0, 0x36, 0x1c, 0x0c, 0xcd, 0x0a, 0x24,
+ 0x86, 0x0e, 0xc2, 0x6a,
+};
+static const unsigned char kat3891_addinpr2[] = {
+ 0x95, 0xbf, 0x7d, 0xb9, 0xaf, 0x68, 0xd3, 0x3a, 0xcd, 0x0e, 0x6c, 0xf4,
+ 0x12, 0x8d, 0xf5, 0x63, 0xb4, 0x70, 0x7d, 0xf8, 0x67, 0x1b, 0xda, 0x46,
+ 0x21, 0x51, 0xe9, 0x18, 0xa3, 0x43, 0x10, 0x2e, 0x05, 0xed, 0x28, 0x13,
+ 0xb3, 0x27, 0x20, 0xab,
+};
+static const unsigned char kat3891_retbits[] = {
+ 0xe9, 0xab, 0x16, 0x17, 0x74, 0x9f, 0x21, 0x42, 0xe0, 0xcc, 0xf3, 0x2f,
+ 0xd9, 0x2c, 0x7e, 0x17, 0xff, 0xf3, 0xff, 0x49, 0xa6, 0x44, 0x24, 0xaf,
+ 0x4b, 0x3b, 0xe1, 0x0b, 0x37, 0x12, 0xf1, 0xf6, 0x48, 0xbd, 0x00, 0x59,
+ 0x12, 0xcc, 0x18, 0x51, 0xb2, 0xe4, 0xc6, 0x5f, 0x6e, 0xdd, 0xe2, 0xf1,
+ 0x92, 0x01, 0xea, 0x92, 0x7d, 0x3e, 0x6d, 0xb8, 0xfe, 0xbb, 0xa2, 0x1b,
+ 0xc4, 0x50, 0xff, 0xf7,
+};
+static const struct drbg_kat_pr_true kat3891_t = {
+ 5, kat3891_entropyin, kat3891_nonce, kat3891_persstr,
+ kat3891_entropyinpr1, kat3891_addinpr1, kat3891_entropyinpr2,
+ kat3891_addinpr2, kat3891_retbits
+};
+static const struct drbg_kat kat3891 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3891_t
+};
+
+static const unsigned char kat3892_entropyin[] = {
+ 0xd5, 0x3b, 0xc6, 0x6b, 0xfe, 0x73, 0x25, 0x96, 0xff, 0x9c, 0xe4, 0xdf,
+ 0xe6, 0x57, 0xa0, 0xe9, 0x4a, 0x7a, 0x66, 0x0a, 0x68, 0xb0, 0xcd, 0x7a,
+ 0x4d, 0xcf, 0xd4, 0x72, 0xaf, 0xc5, 0xc6, 0xea, 0xfb, 0x2d, 0x21, 0xcf,
+ 0x58, 0x0a, 0x57, 0x69,
+};
+static const unsigned char kat3892_nonce[] = {0};
+static const unsigned char kat3892_persstr[] = {
+ 0x42, 0x4d, 0x16, 0xf1, 0xe9, 0x43, 0x7d, 0xdc, 0x9b, 0x14, 0xbe, 0xdc,
+ 0x39, 0x08, 0x6a, 0x7d, 0xa8, 0x92, 0x36, 0xe3, 0x70, 0x39, 0x2c, 0xfb,
+ 0xb0, 0xe7, 0x79, 0x14, 0xbf, 0xfe, 0xea, 0xce, 0xf5, 0x98, 0x44, 0xbf,
+ 0xd6, 0x2c, 0xd2, 0xaf,
+};
+static const unsigned char kat3892_entropyinpr1[] = {
+ 0xcb, 0xde, 0x0a, 0x1b, 0x71, 0x17, 0xa6, 0x16, 0x31, 0xfa, 0x5f, 0x55,
+ 0xab, 0xd6, 0x78, 0x27, 0x09, 0xd7, 0x44, 0xfd, 0xe5, 0x3b, 0x08, 0x81,
+ 0x3a, 0x48, 0x40, 0x8e, 0x15, 0x48, 0x0a, 0xb4, 0xa6, 0x03, 0xbd, 0xc1,
+ 0xb4, 0x43, 0xe1, 0x06,
+};
+static const unsigned char kat3892_addinpr1[] = {
+ 0x14, 0xba, 0xc6, 0x6e, 0xc0, 0x43, 0x97, 0x4d, 0x03, 0xe9, 0x24, 0xa1,
+ 0x88, 0xdc, 0xa9, 0xf8, 0x43, 0x20, 0xc3, 0x16, 0x94, 0x97, 0x2f, 0xbb,
+ 0x13, 0x6b, 0x51, 0x63, 0x82, 0x87, 0xa8, 0x7a, 0xe6, 0xd6, 0x68, 0x0c,
+ 0x32, 0xe6, 0x30, 0x8b,
+};
+static const unsigned char kat3892_entropyinpr2[] = {
+ 0xd1, 0x84, 0x1a, 0x45, 0x13, 0x91, 0x05, 0xa6, 0x6b, 0xfe, 0xf0, 0x96,
+ 0xd5, 0x84, 0xc5, 0xf3, 0x8b, 0x93, 0xc2, 0x70, 0xf2, 0x97, 0x6d, 0x9a,
+ 0x6f, 0xc5, 0x1c, 0x9c, 0xe4, 0x4c, 0xf9, 0x0a, 0xc0, 0x62, 0xf9, 0x90,
+ 0x2f, 0x4c, 0x54, 0x11,
+};
+static const unsigned char kat3892_addinpr2[] = {
+ 0x76, 0xb2, 0x95, 0xd8, 0xe6, 0x89, 0xea, 0xcd, 0x79, 0x77, 0x42, 0xb5,
+ 0x22, 0xa5, 0x70, 0x7f, 0xcb, 0x14, 0x80, 0xc8, 0x8b, 0xb2, 0xa8, 0xd2,
+ 0x88, 0x0d, 0x5b, 0x7d, 0x93, 0x6a, 0x4f, 0x7c, 0xd6, 0xaf, 0x0a, 0x11,
+ 0x15, 0xe8, 0x3b, 0x74,
+};
+static const unsigned char kat3892_retbits[] = {
+ 0xb1, 0xf8, 0xb5, 0xf6, 0xa9, 0x9b, 0x51, 0x58, 0x00, 0x02, 0xc9, 0xea,
+ 0xd7, 0x0e, 0xb0, 0x16, 0x97, 0xff, 0x1f, 0x0e, 0x01, 0x41, 0xfe, 0x86,
+ 0xb4, 0x46, 0xeb, 0x3a, 0x0b, 0x13, 0x46, 0x2a, 0x2c, 0x79, 0x85, 0xef,
+ 0x78, 0x43, 0xe2, 0xa0, 0x4c, 0x05, 0x07, 0x6b, 0xeb, 0x24, 0xed, 0xb9,
+ 0x2a, 0xcd, 0xcf, 0x6d, 0xaf, 0x0b, 0x32, 0x0e, 0xc8, 0x98, 0x07, 0xa5,
+ 0x8b, 0x39, 0xbd, 0x73,
+};
+static const struct drbg_kat_pr_true kat3892_t = {
+ 6, kat3892_entropyin, kat3892_nonce, kat3892_persstr,
+ kat3892_entropyinpr1, kat3892_addinpr1, kat3892_entropyinpr2,
+ kat3892_addinpr2, kat3892_retbits
+};
+static const struct drbg_kat kat3892 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3892_t
+};
+
+static const unsigned char kat3893_entropyin[] = {
+ 0x2b, 0x06, 0xa5, 0xb4, 0x75, 0x31, 0x72, 0xec, 0x3a, 0x9e, 0xa0, 0xd7,
+ 0x82, 0x92, 0xe9, 0x9c, 0xbb, 0x6c, 0x4f, 0x98, 0xf4, 0x79, 0xe7, 0x4b,
+ 0xf8, 0xe7, 0xc4, 0x3d, 0x48, 0xce, 0xbe, 0x2a, 0xfc, 0x51, 0xc4, 0x43,
+ 0xcc, 0x41, 0xe0, 0xc7,
+};
+static const unsigned char kat3893_nonce[] = {0};
+static const unsigned char kat3893_persstr[] = {
+ 0x5b, 0xbe, 0xdb, 0xe4, 0x02, 0x80, 0x70, 0xfa, 0xd9, 0xf3, 0x80, 0x50,
+ 0x7c, 0x2a, 0x79, 0x24, 0x16, 0x28, 0xf7, 0xdc, 0xef, 0x9f, 0x24, 0x9c,
+ 0xf6, 0xc6, 0x0c, 0xb7, 0xee, 0x65, 0x3c, 0x5d, 0x16, 0x22, 0x62, 0x48,
+ 0x36, 0x0f, 0x19, 0x35,
+};
+static const unsigned char kat3893_entropyinpr1[] = {
+ 0xfe, 0xa0, 0xf7, 0x8c, 0x7c, 0x6e, 0x25, 0x58, 0xc1, 0xc6, 0x18, 0x69,
+ 0x2d, 0x2e, 0x39, 0xb3, 0x5a, 0xb4, 0xc3, 0xaf, 0x4f, 0x27, 0xfe, 0x38,
+ 0xa3, 0x1c, 0xa0, 0x80, 0xc2, 0x6d, 0x99, 0x34, 0xe1, 0xa2, 0xe9, 0xb6,
+ 0x2a, 0xb8, 0xee, 0x1d,
+};
+static const unsigned char kat3893_addinpr1[] = {
+ 0xac, 0x8f, 0x06, 0x6d, 0xde, 0x1f, 0x77, 0x16, 0x35, 0x82, 0x1a, 0x9b,
+ 0xe1, 0x0a, 0xa1, 0x2b, 0xd6, 0x34, 0x1b, 0x57, 0xdd, 0x7c, 0xb0, 0x1f,
+ 0x11, 0xa3, 0x5b, 0xe6, 0xa9, 0x47, 0x3b, 0x7d, 0x48, 0x65, 0x6b, 0x4a,
+ 0x7f, 0xcf, 0xc1, 0x7b,
+};
+static const unsigned char kat3893_entropyinpr2[] = {
+ 0x33, 0x66, 0xcb, 0xc5, 0x4c, 0xba, 0x7c, 0x98, 0x9f, 0x65, 0x28, 0x0c,
+ 0xc5, 0xf0, 0xd5, 0xac, 0xcb, 0x62, 0x35, 0x06, 0xe8, 0x22, 0xe1, 0xd0,
+ 0xf2, 0x63, 0x68, 0xd1, 0x11, 0xa5, 0x7b, 0x2f, 0x69, 0x2c, 0x44, 0x63,
+ 0x7d, 0x97, 0x53, 0x9e,
+};
+static const unsigned char kat3893_addinpr2[] = {
+ 0x74, 0x1c, 0x84, 0xce, 0xff, 0xa4, 0x61, 0x18, 0x83, 0xe5, 0x00, 0xcc,
+ 0xdc, 0xaa, 0x0b, 0x7e, 0x0a, 0x29, 0x7e, 0x2c, 0xb3, 0x74, 0xbb, 0x1c,
+ 0x29, 0xfe, 0xc8, 0x45, 0xd7, 0x03, 0x67, 0xfd, 0x0a, 0x7e, 0xc5, 0x7d,
+ 0x70, 0xd5, 0xf4, 0x06,
+};
+static const unsigned char kat3893_retbits[] = {
+ 0xc1, 0x29, 0x38, 0x0b, 0xc3, 0x50, 0x11, 0x35, 0x2f, 0x27, 0xa9, 0x73,
+ 0x8e, 0x7a, 0x77, 0xa9, 0x15, 0x78, 0x4a, 0x59, 0x2d, 0xc2, 0x4a, 0xb7,
+ 0x5f, 0x46, 0x25, 0x97, 0xb2, 0xe1, 0x23, 0xaf, 0x3b, 0x38, 0x95, 0x97,
+ 0x1f, 0x9b, 0x5f, 0x1b, 0xe9, 0x60, 0xf0, 0xa4, 0xce, 0x2c, 0xa0, 0x96,
+ 0xd6, 0x6b, 0x5d, 0x05, 0x9f, 0xb2, 0x32, 0x7e, 0x3b, 0x8c, 0xeb, 0xb7,
+ 0xcc, 0xbf, 0x97, 0x74,
+};
+static const struct drbg_kat_pr_true kat3893_t = {
+ 7, kat3893_entropyin, kat3893_nonce, kat3893_persstr,
+ kat3893_entropyinpr1, kat3893_addinpr1, kat3893_entropyinpr2,
+ kat3893_addinpr2, kat3893_retbits
+};
+static const struct drbg_kat kat3893 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3893_t
+};
+
+static const unsigned char kat3894_entropyin[] = {
+ 0x88, 0xdf, 0x6a, 0x70, 0x23, 0x7d, 0xeb, 0x8f, 0x49, 0x4a, 0xf9, 0xed,
+ 0x56, 0x90, 0x04, 0x1b, 0x9a, 0x0b, 0x74, 0x1d, 0x2b, 0xf1, 0xcb, 0x61,
+ 0xec, 0x9c, 0x48, 0xa9, 0x3e, 0xfd, 0xbd, 0x3a, 0xac, 0xab, 0x82, 0xf6,
+ 0x9f, 0x03, 0x6c, 0xba,
+};
+static const unsigned char kat3894_nonce[] = {0};
+static const unsigned char kat3894_persstr[] = {
+ 0x01, 0xc7, 0x01, 0x86, 0xc7, 0xbc, 0x95, 0xbc, 0xaf, 0x5c, 0x88, 0x04,
+ 0x37, 0x74, 0xdf, 0xcd, 0xa4, 0x40, 0x16, 0xb9, 0x1b, 0x29, 0x33, 0xc6,
+ 0x9c, 0x02, 0xce, 0x6c, 0x0e, 0x26, 0xe4, 0x23, 0x66, 0xe8, 0xfe, 0x87,
+ 0x21, 0x25, 0xdd, 0x30,
+};
+static const unsigned char kat3894_entropyinpr1[] = {
+ 0xb5, 0x73, 0xc3, 0xf4, 0x61, 0x09, 0xa3, 0x81, 0xb3, 0xf1, 0xd3, 0xaa,
+ 0xeb, 0x90, 0x43, 0xc1, 0x86, 0xda, 0xdd, 0xf1, 0xeb, 0xe7, 0xb9, 0x21,
+ 0x6c, 0x61, 0x6c, 0x94, 0x4a, 0x97, 0x56, 0x46, 0xb2, 0x8c, 0x6d, 0x35,
+ 0xc2, 0xaf, 0xa7, 0xae,
+};
+static const unsigned char kat3894_addinpr1[] = {
+ 0xbc, 0xde, 0x33, 0x35, 0x27, 0x71, 0x7e, 0x7b, 0x42, 0x7e, 0x6b, 0xb0,
+ 0x92, 0x65, 0x13, 0x9b, 0x92, 0xb4, 0x54, 0x0d, 0xa1, 0x65, 0x6b, 0x81,
+ 0xcc, 0x5b, 0x41, 0x9c, 0x71, 0xa2, 0x60, 0x59, 0xb2, 0x83, 0x6a, 0xce,
+ 0x94, 0x35, 0x0b, 0xb2,
+};
+static const unsigned char kat3894_entropyinpr2[] = {
+ 0x77, 0x4d, 0x4c, 0x74, 0xd9, 0x86, 0x72, 0x1f, 0xa0, 0xd1, 0x5a, 0x9b,
+ 0x9c, 0xd6, 0x39, 0x43, 0x62, 0xa8, 0xf6, 0x3a, 0xfa, 0xc1, 0xf2, 0x19,
+ 0x5b, 0x52, 0x9f, 0x4b, 0xeb, 0xbb, 0x0e, 0xde, 0x28, 0x12, 0xc5, 0x54,
+ 0x91, 0xdf, 0x64, 0x72,
+};
+static const unsigned char kat3894_addinpr2[] = {
+ 0xff, 0xc8, 0xe2, 0x7a, 0x9a, 0x49, 0x22, 0x2a, 0x4f, 0xe9, 0xee, 0xd1,
+ 0x59, 0xc1, 0x88, 0x29, 0xed, 0x2e, 0x11, 0xc6, 0xb3, 0xbd, 0xc6, 0x66,
+ 0x52, 0x4b, 0x73, 0x2a, 0xd5, 0x77, 0x20, 0xb6, 0x25, 0x60, 0x7b, 0xb3,
+ 0xc3, 0x98, 0xc7, 0x37,
+};
+static const unsigned char kat3894_retbits[] = {
+ 0x4c, 0x22, 0x35, 0x4a, 0xaa, 0x9b, 0x9e, 0x29, 0x8b, 0x66, 0x5c, 0xd8,
+ 0x74, 0x7a, 0x21, 0x7d, 0x50, 0xb3, 0x8b, 0xaa, 0x24, 0x07, 0x72, 0x7d,
+ 0x8b, 0x0e, 0x1e, 0x35, 0x09, 0x61, 0x31, 0xf5, 0x92, 0x06, 0x31, 0x90,
+ 0xc7, 0xb6, 0xe9, 0xf8, 0x11, 0xb9, 0xbd, 0xae, 0x87, 0x09, 0xe6, 0x8d,
+ 0x60, 0xf7, 0x95, 0x3c, 0x3e, 0x3a, 0x45, 0x2b, 0xeb, 0x23, 0x3d, 0xea,
+ 0xd2, 0xcf, 0xbf, 0xe5,
+};
+static const struct drbg_kat_pr_true kat3894_t = {
+ 8, kat3894_entropyin, kat3894_nonce, kat3894_persstr,
+ kat3894_entropyinpr1, kat3894_addinpr1, kat3894_entropyinpr2,
+ kat3894_addinpr2, kat3894_retbits
+};
+static const struct drbg_kat kat3894 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3894_t
+};
+
+static const unsigned char kat3895_entropyin[] = {
+ 0x4a, 0x8e, 0x24, 0x50, 0x0f, 0x1f, 0xec, 0x02, 0x9b, 0x15, 0x8a, 0xed,
+ 0x18, 0xac, 0x92, 0xe4, 0x3e, 0xc8, 0xd6, 0xbc, 0xfa, 0x5f, 0x1a, 0x3b,
+ 0xcc, 0x6e, 0x60, 0x51, 0xac, 0x54, 0xee, 0xee, 0xb9, 0xa5, 0x5e, 0x81,
+ 0x8d, 0xb4, 0x5e, 0x66,
+};
+static const unsigned char kat3895_nonce[] = {0};
+static const unsigned char kat3895_persstr[] = {
+ 0xaa, 0x73, 0x07, 0xd4, 0x38, 0x1d, 0xcc, 0x7b, 0xcb, 0xdb, 0xab, 0xe4,
+ 0x5b, 0x9e, 0x90, 0x46, 0x04, 0x92, 0x1c, 0xed, 0x1f, 0x33, 0x28, 0xdf,
+ 0x7a, 0x90, 0x77, 0x45, 0xb4, 0xb2, 0xe6, 0x5a, 0xa3, 0xb8, 0xa8, 0x19,
+ 0x20, 0x59, 0xe9, 0xf7,
+};
+static const unsigned char kat3895_entropyinpr1[] = {
+ 0x02, 0x13, 0xd0, 0x90, 0x64, 0x18, 0xfe, 0x16, 0xb7, 0x95, 0x67, 0xa4,
+ 0x05, 0xfc, 0x06, 0x59, 0x62, 0x3f, 0xa3, 0x9a, 0x02, 0xa3, 0x77, 0x57,
+ 0x62, 0xc1, 0x3e, 0x10, 0x26, 0x0c, 0xc3, 0x71, 0x99, 0x3b, 0xa2, 0xa9,
+ 0x14, 0xea, 0x90, 0xf3,
+};
+static const unsigned char kat3895_addinpr1[] = {
+ 0xd2, 0x82, 0x9c, 0xc1, 0xac, 0x9d, 0x9f, 0x3b, 0x4d, 0x37, 0x1d, 0x94,
+ 0xf5, 0x63, 0x75, 0x6b, 0x71, 0x33, 0x23, 0x08, 0x3a, 0x86, 0x7b, 0xc7,
+ 0xf6, 0x54, 0x88, 0x6d, 0x35, 0x38, 0x02, 0xb9, 0x6c, 0x66, 0xce, 0x80,
+ 0xde, 0x81, 0x53, 0xc5,
+};
+static const unsigned char kat3895_entropyinpr2[] = {
+ 0x42, 0xbb, 0x19, 0x2f, 0x3f, 0x98, 0x1c, 0x2d, 0x4e, 0x33, 0x8e, 0xc3,
+ 0x37, 0xfa, 0x21, 0xb2, 0x11, 0x55, 0x6a, 0xb0, 0x60, 0xed, 0x9a, 0x9f,
+ 0x79, 0x97, 0x33, 0x45, 0x17, 0xf5, 0x37, 0x3e, 0x41, 0xab, 0x8f, 0x16,
+ 0x64, 0x6e, 0xda, 0xde,
+};
+static const unsigned char kat3895_addinpr2[] = {
+ 0x5a, 0xa2, 0x51, 0x92, 0xd7, 0xbe, 0x04, 0x44, 0x4a, 0x3f, 0x02, 0x37,
+ 0x06, 0xce, 0x99, 0x5c, 0x0f, 0x06, 0x13, 0x18, 0x8d, 0xf4, 0x34, 0x2d,
+ 0x5a, 0x01, 0x92, 0x43, 0xcb, 0x7b, 0x0e, 0x5a, 0x82, 0x2a, 0xe7, 0x18,
+ 0x1e, 0x7f, 0x79, 0x00,
+};
+static const unsigned char kat3895_retbits[] = {
+ 0xc7, 0xc9, 0xd3, 0xf4, 0x36, 0x5c, 0x28, 0x14, 0xe8, 0xc9, 0x8d, 0xa4,
+ 0xef, 0xb1, 0x0e, 0xaa, 0x39, 0xb2, 0xb1, 0xcd, 0x99, 0x80, 0x36, 0x8c,
+ 0x25, 0x26, 0x6d, 0xd5, 0x4f, 0xe9, 0x1f, 0xbe, 0x98, 0xcf, 0x61, 0x72,
+ 0x71, 0x98, 0x5e, 0x79, 0x2f, 0xe2, 0x43, 0x16, 0x4d, 0x36, 0xca, 0x0b,
+ 0xa4, 0x14, 0x0f, 0xb8, 0x6f, 0xaa, 0x01, 0x40, 0x79, 0x7b, 0x1d, 0x72,
+ 0x80, 0x73, 0xd5, 0x93,
+};
+static const struct drbg_kat_pr_true kat3895_t = {
+ 9, kat3895_entropyin, kat3895_nonce, kat3895_persstr,
+ kat3895_entropyinpr1, kat3895_addinpr1, kat3895_entropyinpr2,
+ kat3895_addinpr2, kat3895_retbits
+};
+static const struct drbg_kat kat3895 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3895_t
+};
+
+static const unsigned char kat3896_entropyin[] = {
+ 0x92, 0x7a, 0x1a, 0xe9, 0x56, 0x06, 0xaf, 0x0c, 0xea, 0x3a, 0x61, 0xa6,
+ 0x3b, 0xa2, 0x92, 0xd0, 0xdf, 0x0c, 0xae, 0x0e, 0x00, 0x9d, 0x2a, 0x3c,
+ 0xb3, 0x97, 0x93, 0xcb, 0xc2, 0xc8, 0xf6, 0x76, 0x7f, 0x07, 0xed, 0x63,
+ 0xd1, 0x33, 0xd0, 0x00,
+};
+static const unsigned char kat3896_nonce[] = {0};
+static const unsigned char kat3896_persstr[] = {
+ 0xa0, 0x41, 0xc7, 0x75, 0x06, 0x90, 0xf0, 0xed, 0x70, 0x38, 0x13, 0x15,
+ 0x7f, 0xa9, 0xaf, 0xa1, 0x6f, 0xd0, 0xfe, 0x48, 0x97, 0x82, 0x62, 0x48,
+ 0x21, 0x01, 0xff, 0x14, 0xc7, 0xef, 0x9b, 0x98, 0x96, 0xc3, 0x2c, 0x70,
+ 0xda, 0xf8, 0x26, 0xa8,
+};
+static const unsigned char kat3896_entropyinpr1[] = {
+ 0xe3, 0x1d, 0x3b, 0xf0, 0x74, 0x06, 0x1f, 0x72, 0x12, 0xe7, 0xbf, 0x77,
+ 0xc4, 0x57, 0xe1, 0xe0, 0x14, 0xf7, 0x09, 0xe6, 0x09, 0xdc, 0xa5, 0x30,
+ 0x39, 0x50, 0x72, 0x31, 0x9a, 0xcd, 0xe5, 0x21, 0x49, 0x24, 0x2a, 0xf1,
+ 0x59, 0xa2, 0xe2, 0x15,
+};
+static const unsigned char kat3896_addinpr1[] = {
+ 0x9a, 0xd1, 0xb5, 0x85, 0xef, 0xf6, 0xa6, 0x20, 0xa3, 0xc2, 0x0d, 0xfe,
+ 0x69, 0x56, 0xad, 0x33, 0xff, 0x86, 0xad, 0x59, 0x27, 0xa7, 0x8c, 0x70,
+ 0x7b, 0xa7, 0x8f, 0x27, 0x98, 0x20, 0xfd, 0xc6, 0x58, 0x2f, 0x60, 0x01,
+ 0x4b, 0x38, 0xe4, 0x63,
+};
+static const unsigned char kat3896_entropyinpr2[] = {
+ 0x8c, 0x73, 0xe5, 0x63, 0x03, 0xb8, 0x08, 0x21, 0x19, 0x44, 0x65, 0x16,
+ 0x22, 0x1e, 0x7f, 0xa3, 0x86, 0x86, 0xf8, 0x5e, 0xa9, 0x38, 0x9a, 0xf3,
+ 0xbb, 0x5c, 0xf0, 0x3f, 0xfe, 0x87, 0xfa, 0xd9, 0x71, 0x62, 0x6f, 0xc5,
+ 0x13, 0x49, 0x5c, 0x74,
+};
+static const unsigned char kat3896_addinpr2[] = {
+ 0xd4, 0xfd, 0xd0, 0x44, 0xb0, 0x91, 0xbd, 0x8b, 0xa2, 0x2e, 0x61, 0x35,
+ 0xf2, 0x87, 0xd0, 0xc7, 0x5e, 0x9b, 0xc4, 0x79, 0x4d, 0x02, 0xba, 0x44,
+ 0x5e, 0x9c, 0x32, 0x84, 0x82, 0x32, 0x03, 0x1a, 0xdc, 0xa5, 0xd5, 0xfb,
+ 0xa0, 0x2b, 0xdb, 0xb0,
+};
+static const unsigned char kat3896_retbits[] = {
+ 0x20, 0x99, 0x43, 0x4e, 0x3c, 0x85, 0x5f, 0xa1, 0x9b, 0xf2, 0x07, 0xb7,
+ 0x02, 0x9c, 0x5a, 0x4f, 0x1b, 0xa8, 0x45, 0x80, 0x86, 0x43, 0x97, 0x5a,
+ 0xa6, 0xb1, 0x54, 0xaf, 0xf7, 0xa9, 0x02, 0x30, 0x71, 0x5a, 0xbc, 0x70,
+ 0x31, 0x47, 0xf2, 0x04, 0x55, 0x1a, 0x77, 0xe4, 0x9c, 0x7e, 0x60, 0xa2,
+ 0x12, 0x79, 0x39, 0xbc, 0x5e, 0xd9, 0xf8, 0xaa, 0x0a, 0xda, 0x4a, 0x52,
+ 0x6b, 0x6a, 0x34, 0xe4,
+};
+static const struct drbg_kat_pr_true kat3896_t = {
+ 10, kat3896_entropyin, kat3896_nonce, kat3896_persstr,
+ kat3896_entropyinpr1, kat3896_addinpr1, kat3896_entropyinpr2,
+ kat3896_addinpr2, kat3896_retbits
+};
+static const struct drbg_kat kat3896 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3896_t
+};
+
+static const unsigned char kat3897_entropyin[] = {
+ 0x09, 0x48, 0x72, 0x9d, 0x3f, 0xba, 0x75, 0xcb, 0xe8, 0x33, 0xc1, 0x11,
+ 0x74, 0x11, 0xf9, 0x2a, 0xb7, 0x5b, 0x1f, 0x21, 0x43, 0xed, 0x24, 0x8a,
+ 0x8c, 0x14, 0x1b, 0xf6, 0xa3, 0x54, 0xe1, 0x14, 0xeb, 0x26, 0xbf, 0x75,
+ 0x5c, 0x84, 0xbc, 0xab,
+};
+static const unsigned char kat3897_nonce[] = {0};
+static const unsigned char kat3897_persstr[] = {
+ 0x27, 0x0f, 0x9b, 0x80, 0x9a, 0xf5, 0xf4, 0x2d, 0x3a, 0xb0, 0xbd, 0x3c,
+ 0x8f, 0x63, 0x6e, 0xdc, 0x4a, 0x8b, 0xb7, 0x13, 0xb5, 0x39, 0xe6, 0x98,
+ 0xd4, 0x08, 0x34, 0x08, 0x44, 0x92, 0xba, 0x50, 0x23, 0xef, 0x08, 0x59,
+ 0xac, 0x64, 0x93, 0xa4,
+};
+static const unsigned char kat3897_entropyinpr1[] = {
+ 0x8e, 0x4a, 0x81, 0x55, 0x41, 0xcb, 0xf3, 0x1b, 0x58, 0x1a, 0x71, 0x04,
+ 0x55, 0x55, 0x92, 0xb7, 0xe1, 0x67, 0xbb, 0x42, 0xdd, 0x3c, 0x04, 0xcf,
+ 0x91, 0x3e, 0xab, 0x6b, 0xee, 0x00, 0x38, 0xc6, 0xd2, 0xc2, 0x8a, 0xeb,
+ 0x25, 0xe0, 0xc1, 0x9a,
+};
+static const unsigned char kat3897_addinpr1[] = {
+ 0x06, 0x1c, 0x66, 0x10, 0x3d, 0xff, 0x5b, 0xb1, 0xb9, 0x3f, 0xb3, 0x40,
+ 0xeb, 0xfb, 0xc0, 0x5c, 0xba, 0x7f, 0x8f, 0x07, 0x72, 0x88, 0x99, 0x2b,
+ 0x5f, 0x06, 0xd5, 0x65, 0x36, 0x7d, 0xec, 0xec, 0x25, 0xf6, 0x67, 0x63,
+ 0x5a, 0xf9, 0xb0, 0xc8,
+};
+static const unsigned char kat3897_entropyinpr2[] = {
+ 0x95, 0x74, 0x80, 0xd7, 0xc6, 0xca, 0xf4, 0x87, 0xa8, 0x20, 0x02, 0x2f,
+ 0x20, 0x2f, 0xf2, 0x1b, 0xf1, 0x86, 0x74, 0xdd, 0xb8, 0xc4, 0x4a, 0xa2,
+ 0x53, 0x39, 0x63, 0x5f, 0xd3, 0x29, 0x14, 0x12, 0x31, 0x1b, 0x27, 0x88,
+ 0x61, 0x73, 0xf6, 0x62,
+};
+static const unsigned char kat3897_addinpr2[] = {
+ 0x93, 0xa7, 0x08, 0x41, 0xad, 0xa8, 0xe4, 0xa7, 0xce, 0x7a, 0x92, 0x02,
+ 0xda, 0xbe, 0xac, 0x62, 0x17, 0x4b, 0x1a, 0x1e, 0x84, 0x5b, 0x73, 0xa0,
+ 0x39, 0xe7, 0x27, 0x00, 0x57, 0xe6, 0x16, 0xe8, 0x0b, 0x14, 0x84, 0xcb,
+ 0x35, 0xe3, 0x0a, 0xe1,
+};
+static const unsigned char kat3897_retbits[] = {
+ 0x6a, 0x89, 0xae, 0x76, 0x13, 0xa1, 0x9a, 0x23, 0xd4, 0xf9, 0xd2, 0x42,
+ 0xbd, 0x87, 0x2c, 0xbe, 0x85, 0x9f, 0x62, 0x46, 0x10, 0x54, 0xde, 0x53,
+ 0xcb, 0x6c, 0x00, 0x90, 0xdf, 0x9e, 0x77, 0xb1, 0xaf, 0xbc, 0xc1, 0xab,
+ 0x7f, 0x44, 0xa6, 0xdc, 0x9d, 0x81, 0x35, 0x7e, 0x71, 0x46, 0x3d, 0xab,
+ 0x6b, 0x5c, 0xc2, 0x72, 0xa8, 0xeb, 0x5d, 0xf0, 0x9a, 0x1c, 0x7c, 0xfd,
+ 0x86, 0x1d, 0x79, 0x33,
+};
+static const struct drbg_kat_pr_true kat3897_t = {
+ 11, kat3897_entropyin, kat3897_nonce, kat3897_persstr,
+ kat3897_entropyinpr1, kat3897_addinpr1, kat3897_entropyinpr2,
+ kat3897_addinpr2, kat3897_retbits
+};
+static const struct drbg_kat kat3897 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3897_t
+};
+
+static const unsigned char kat3898_entropyin[] = {
+ 0xf1, 0xc6, 0xd7, 0xdd, 0x73, 0xfa, 0x72, 0x93, 0x5f, 0xfc, 0x34, 0xcf,
+ 0xaa, 0x9f, 0x89, 0xbb, 0x8c, 0xf9, 0xbc, 0xe1, 0x53, 0x37, 0xd5, 0x35,
+ 0xb0, 0x81, 0x2c, 0x78, 0xc8, 0xb0, 0x61, 0x67, 0xc8, 0xd2, 0xd8, 0xf6,
+ 0x54, 0x9c, 0x75, 0xd6,
+};
+static const unsigned char kat3898_nonce[] = {0};
+static const unsigned char kat3898_persstr[] = {
+ 0x5a, 0xd2, 0x26, 0x7f, 0xc6, 0xf3, 0x2d, 0xd8, 0x36, 0x6f, 0x77, 0xa3,
+ 0x0a, 0xab, 0xb1, 0xe7, 0xaa, 0xef, 0xf4, 0x6b, 0xda, 0x00, 0x34, 0xec,
+ 0x94, 0x75, 0x71, 0x48, 0xf5, 0x59, 0xe0, 0x6e, 0x41, 0xa6, 0x74, 0x56,
+ 0xc9, 0xcd, 0xf8, 0x11,
+};
+static const unsigned char kat3898_entropyinpr1[] = {
+ 0x84, 0xee, 0xc6, 0xd7, 0x55, 0x26, 0x06, 0xcb, 0x8e, 0x04, 0xab, 0xb9,
+ 0x48, 0x79, 0x55, 0xa1, 0x93, 0xa4, 0x6f, 0x17, 0x4a, 0x62, 0x37, 0xd7,
+ 0xee, 0x4f, 0x08, 0x08, 0x8b, 0x08, 0x71, 0xb6, 0x4f, 0xc7, 0xfb, 0xfd,
+ 0x69, 0x4f, 0xad, 0x7a,
+};
+static const unsigned char kat3898_addinpr1[] = {
+ 0xad, 0x0e, 0x2d, 0xf4, 0x6f, 0xb6, 0x77, 0x46, 0x7c, 0x40, 0xfc, 0xd7,
+ 0x88, 0xe4, 0x3b, 0x6e, 0x30, 0x0d, 0x88, 0xc7, 0x5f, 0x14, 0x33, 0x79,
+ 0x35, 0x6c, 0x93, 0x54, 0x31, 0x8a, 0x37, 0xcd, 0x4d, 0xbd, 0x3c, 0xd5,
+ 0x64, 0xb6, 0xef, 0x34,
+};
+static const unsigned char kat3898_entropyinpr2[] = {
+ 0xa0, 0xf8, 0xe9, 0xa6, 0xba, 0x72, 0x85, 0x0a, 0x6d, 0xfd, 0xc5, 0x2f,
+ 0x16, 0x84, 0x11, 0xa8, 0xe3, 0xaa, 0x1e, 0xa4, 0xcc, 0xb3, 0xbd, 0x7c,
+ 0xec, 0xd4, 0xf8, 0xde, 0x4d, 0x57, 0x7d, 0xaa, 0x63, 0xee, 0xbf, 0xba,
+ 0x1b, 0x52, 0x34, 0xec,
+};
+static const unsigned char kat3898_addinpr2[] = {
+ 0x0c, 0x7a, 0xfc, 0x57, 0xdb, 0x9f, 0x38, 0xf3, 0xae, 0xde, 0x61, 0x60,
+ 0xfe, 0x96, 0x53, 0xc8, 0x7c, 0x4a, 0x89, 0x2a, 0xd1, 0xcb, 0xcd, 0xb7,
+ 0x2b, 0xb7, 0x0f, 0x94, 0x92, 0xaf, 0xd8, 0xb8, 0x63, 0x78, 0x67, 0x4c,
+ 0x79, 0xf0, 0x7d, 0xe1,
+};
+static const unsigned char kat3898_retbits[] = {
+ 0x4f, 0x96, 0x40, 0xe1, 0x3a, 0x26, 0x46, 0x78, 0x89, 0x41, 0x3c, 0xb1,
+ 0xd2, 0xae, 0xb7, 0xe9, 0x53, 0xce, 0x9c, 0x73, 0x10, 0x0a, 0x3b, 0x89,
+ 0x25, 0xc5, 0x1d, 0xba, 0x54, 0xcf, 0x78, 0x5c, 0x7c, 0xed, 0x5a, 0x18,
+ 0xf4, 0xf4, 0x76, 0x23, 0xfa, 0x35, 0xfb, 0x1e, 0xce, 0x4b, 0xf4, 0x2f,
+ 0x99, 0x0d, 0x12, 0x2a, 0x66, 0xda, 0x7c, 0xf4, 0xb9, 0x2b, 0xb2, 0x2f,
+ 0x06, 0x46, 0xad, 0xb3,
+};
+static const struct drbg_kat_pr_true kat3898_t = {
+ 12, kat3898_entropyin, kat3898_nonce, kat3898_persstr,
+ kat3898_entropyinpr1, kat3898_addinpr1, kat3898_entropyinpr2,
+ kat3898_addinpr2, kat3898_retbits
+};
+static const struct drbg_kat kat3898 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3898_t
+};
+
+static const unsigned char kat3899_entropyin[] = {
+ 0x74, 0xd9, 0xe3, 0x48, 0x2b, 0x9c, 0x30, 0x80, 0x9d, 0x63, 0x70, 0x36,
+ 0xe4, 0x4a, 0x1e, 0x58, 0x02, 0x23, 0xfb, 0x12, 0xed, 0x51, 0x24, 0x4d,
+ 0xdd, 0xb0, 0xef, 0x0f, 0xec, 0x45, 0x69, 0x25, 0xa2, 0xf0, 0x6b, 0xd8,
+ 0xe3, 0x89, 0x20, 0xbc,
+};
+static const unsigned char kat3899_nonce[] = {0};
+static const unsigned char kat3899_persstr[] = {
+ 0x9c, 0xcb, 0x35, 0xbe, 0x8c, 0x4f, 0x28, 0xdb, 0x23, 0x7f, 0x92, 0x93,
+ 0x7f, 0x14, 0xef, 0x2d, 0xed, 0xdc, 0x78, 0xad, 0x61, 0xa8, 0x47, 0x3f,
+ 0xe5, 0x00, 0xd3, 0x9f, 0xc8, 0x50, 0xf1, 0x94, 0x34, 0x35, 0x67, 0xc3,
+ 0xc6, 0xb0, 0xb7, 0x26,
+};
+static const unsigned char kat3899_entropyinpr1[] = {
+ 0x06, 0x83, 0xc9, 0xbe, 0x88, 0x4e, 0xb5, 0x96, 0x32, 0x8d, 0xa0, 0x91,
+ 0xd4, 0x22, 0x72, 0x87, 0xd1, 0x76, 0x37, 0x8a, 0x3a, 0x47, 0xdf, 0x2a,
+ 0x60, 0x0e, 0xde, 0x6e, 0x50, 0x75, 0x6e, 0xa6, 0x88, 0x7a, 0x48, 0x08,
+ 0x6e, 0xcb, 0x76, 0x41,
+};
+static const unsigned char kat3899_addinpr1[] = {
+ 0xd5, 0xd0, 0x9c, 0x99, 0x10, 0x22, 0xde, 0x16, 0x15, 0x49, 0xe3, 0x29,
+ 0x59, 0x7b, 0xd6, 0xc7, 0x1f, 0xc9, 0x3e, 0x6b, 0xb8, 0xa0, 0xe2, 0x57,
+ 0x3d, 0x70, 0x6b, 0x49, 0x0d, 0x2e, 0x5c, 0xb0, 0xf2, 0x09, 0x61, 0x98,
+ 0x8e, 0xf6, 0x08, 0x8e,
+};
+static const unsigned char kat3899_entropyinpr2[] = {
+ 0xce, 0xf3, 0x1c, 0x55, 0xff, 0xf0, 0xff, 0xe9, 0x47, 0x07, 0x13, 0xf0,
+ 0xc4, 0x08, 0x6d, 0xc3, 0x96, 0x8d, 0xe6, 0x65, 0x8f, 0xe5, 0xac, 0x06,
+ 0x2a, 0x51, 0x11, 0x23, 0x23, 0xf3, 0x6d, 0x56, 0xf4, 0xf2, 0xec, 0x9a,
+ 0x0d, 0x87, 0xbe, 0x1b,
+};
+static const unsigned char kat3899_addinpr2[] = {
+ 0x11, 0x88, 0x3b, 0x41, 0x66, 0x30, 0xb2, 0xe7, 0x12, 0x3a, 0xdb, 0x10,
+ 0xb2, 0x21, 0xa4, 0x11, 0xf5, 0x2e, 0x28, 0xe4, 0x64, 0x2b, 0xd5, 0x85,
+ 0xbc, 0xe3, 0xc0, 0x1b, 0xb1, 0x49, 0xba, 0xeb, 0xbc, 0x45, 0xe7, 0xac,
+ 0x70, 0x1b, 0x30, 0x9e,
+};
+static const unsigned char kat3899_retbits[] = {
+ 0x54, 0xae, 0x5b, 0x40, 0x65, 0x9d, 0x67, 0x3b, 0xe0, 0x7b, 0x70, 0x53,
+ 0x7d, 0xc6, 0x84, 0x51, 0x4d, 0xfb, 0x63, 0x4c, 0x4c, 0xf4, 0xcc, 0x3b,
+ 0xa9, 0xe0, 0xb5, 0x08, 0xd2, 0xdd, 0x43, 0xc0, 0x99, 0x2e, 0x02, 0xdb,
+ 0x6f, 0x97, 0xfe, 0xf9, 0x05, 0x0f, 0x00, 0x33, 0x40, 0x37, 0xdf, 0x74,
+ 0xc0, 0x47, 0x6b, 0x29, 0x03, 0xd0, 0x59, 0x95, 0xf0, 0x0c, 0x80, 0x31,
+ 0xc1, 0x7a, 0x93, 0x6d,
+};
+static const struct drbg_kat_pr_true kat3899_t = {
+ 13, kat3899_entropyin, kat3899_nonce, kat3899_persstr,
+ kat3899_entropyinpr1, kat3899_addinpr1, kat3899_entropyinpr2,
+ kat3899_addinpr2, kat3899_retbits
+};
+static const struct drbg_kat kat3899 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3899_t
+};
+
+static const unsigned char kat3900_entropyin[] = {
+ 0x5a, 0x9d, 0x6c, 0x36, 0xa4, 0x49, 0x85, 0xf5, 0x43, 0x13, 0x57, 0xe9,
+ 0x54, 0xbf, 0x60, 0xc0, 0x42, 0xaf, 0x08, 0xc7, 0xd6, 0x77, 0x54, 0x9a,
+ 0x27, 0x49, 0xd7, 0x10, 0x0b, 0x34, 0x9f, 0xf6, 0x74, 0xfb, 0xe3, 0xe8,
+ 0xd2, 0x82, 0xaa, 0x99,
+};
+static const unsigned char kat3900_nonce[] = {0};
+static const unsigned char kat3900_persstr[] = {
+ 0xd3, 0x95, 0x86, 0xa3, 0x50, 0x99, 0xa2, 0xa3, 0x48, 0x7b, 0x31, 0xb0,
+ 0x0f, 0x74, 0x15, 0xcf, 0xd7, 0xa8, 0x25, 0x65, 0xef, 0xa1, 0xfe, 0xf9,
+ 0x3b, 0xa5, 0x7f, 0x7e, 0x52, 0x0a, 0x26, 0xfc, 0x0a, 0xdc, 0x38, 0x49,
+ 0xb9, 0x50, 0x62, 0xc1,
+};
+static const unsigned char kat3900_entropyinpr1[] = {
+ 0x64, 0x69, 0xe2, 0x9a, 0x1b, 0xc9, 0x47, 0xdb, 0xac, 0x26, 0x94, 0x2a,
+ 0x5f, 0x06, 0xa3, 0xce, 0x03, 0x85, 0x48, 0xe8, 0x5d, 0x80, 0x11, 0x63,
+ 0xcc, 0x5a, 0x38, 0x44, 0xc5, 0x84, 0xa8, 0xd3, 0xb1, 0xec, 0xfb, 0x7f,
+ 0x2f, 0x0b, 0x3a, 0x89,
+};
+static const unsigned char kat3900_addinpr1[] = {
+ 0xd5, 0xb8, 0xd9, 0x60, 0xb3, 0x00, 0xe1, 0x22, 0x7b, 0xf4, 0x24, 0x31,
+ 0xc3, 0x65, 0x40, 0x7a, 0xae, 0x24, 0xcb, 0xfa, 0x12, 0x37, 0x5a, 0x77,
+ 0x3b, 0x2a, 0x1b, 0xd7, 0xd6, 0x78, 0x32, 0x11, 0x8e, 0xba, 0x70, 0xfe,
+ 0xc6, 0xa3, 0x66, 0xe4,
+};
+static const unsigned char kat3900_entropyinpr2[] = {
+ 0xc9, 0x25, 0x5e, 0x2f, 0xab, 0xf8, 0x4b, 0x9e, 0xdd, 0x45, 0x73, 0x7f,
+ 0x5d, 0xe1, 0x3e, 0x56, 0x61, 0xac, 0xc0, 0x36, 0x23, 0xa3, 0xf9, 0x26,
+ 0x8e, 0xfc, 0xaf, 0x7f, 0x55, 0x62, 0xcf, 0x83, 0x9b, 0xcc, 0xed, 0xa2,
+ 0x29, 0xe0, 0x6f, 0x11,
+};
+static const unsigned char kat3900_addinpr2[] = {
+ 0x3d, 0x91, 0xe9, 0xe7, 0xca, 0x56, 0x83, 0x31, 0x25, 0x45, 0xbd, 0xb4,
+ 0x61, 0x3d, 0xba, 0x83, 0x18, 0x2b, 0x0c, 0x90, 0x6f, 0x3a, 0x1d, 0x65,
+ 0xa2, 0x61, 0x07, 0x09, 0xe8, 0x3a, 0x7b, 0x4b, 0x7f, 0xd9, 0x73, 0xe4,
+ 0x0b, 0x82, 0xa3, 0x72,
+};
+static const unsigned char kat3900_retbits[] = {
+ 0x28, 0xac, 0x3a, 0xcb, 0x17, 0xdf, 0xdb, 0xa1, 0xd5, 0xab, 0xb3, 0xe2,
+ 0x51, 0x5d, 0xc1, 0x6b, 0x42, 0xbd, 0x20, 0x7d, 0x27, 0x43, 0xc5, 0x1b,
+ 0x3a, 0x2e, 0x5e, 0xdc, 0xeb, 0x00, 0x21, 0xd9, 0x64, 0xfa, 0xdd, 0x50,
+ 0xd4, 0x99, 0xe2, 0xdf, 0x16, 0x23, 0xc2, 0x83, 0x2a, 0x9e, 0x55, 0x23,
+ 0x31, 0xe9, 0x15, 0x39, 0x5d, 0x65, 0xe9, 0x5f, 0x3d, 0x52, 0x3d, 0x40,
+ 0xd1, 0xd8, 0xa1, 0x5c,
+};
+static const struct drbg_kat_pr_true kat3900_t = {
+ 14, kat3900_entropyin, kat3900_nonce, kat3900_persstr,
+ kat3900_entropyinpr1, kat3900_addinpr1, kat3900_entropyinpr2,
+ kat3900_addinpr2, kat3900_retbits
+};
+static const struct drbg_kat kat3900 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3900_t
+};
+
+static const unsigned char kat3901_entropyin[] = {
+ 0xdb, 0x72, 0x6a, 0x74, 0x30, 0x2a, 0x23, 0xe2, 0x0b, 0xe9, 0x09, 0x06,
+ 0x7f, 0xe8, 0xe0, 0x2f, 0x22, 0x67, 0x73, 0x9b, 0xdb, 0x73, 0xe0, 0x6f,
+ 0x16, 0x32, 0xcc, 0x23, 0x68, 0xe3, 0xba, 0xa8, 0x19, 0xf8, 0xd1, 0x00,
+ 0x73, 0x96, 0x38, 0xc7,
+};
+static const unsigned char kat3901_nonce[] = {0};
+static const unsigned char kat3901_persstr[] = {0};
+static const unsigned char kat3901_entropyinpr1[] = {
+ 0x24, 0x5c, 0xa1, 0xc8, 0x46, 0xbf, 0xbd, 0x2c, 0x05, 0x38, 0x83, 0x4a,
+ 0xb1, 0x12, 0x91, 0x03, 0xf0, 0x5f, 0x8e, 0xca, 0xac, 0x1f, 0xec, 0x1d,
+ 0xc3, 0xcb, 0x62, 0x1d, 0x12, 0xad, 0x78, 0x67, 0xd4, 0x99, 0xf2, 0xb0,
+ 0x2d, 0xab, 0x8b, 0xf5,
+};
+static const unsigned char kat3901_addinpr1[] = {0};
+static const unsigned char kat3901_entropyinpr2[] = {
+ 0xca, 0x7e, 0x4b, 0x36, 0xa0, 0x07, 0x3b, 0xb4, 0x81, 0x1a, 0x4d, 0xf1,
+ 0x75, 0xa7, 0x9b, 0x8b, 0xe8, 0xd4, 0x02, 0xb1, 0x75, 0x7a, 0xb6, 0xeb,
+ 0x9a, 0x65, 0x62, 0x00, 0x43, 0x48, 0x0c, 0x4d, 0xca, 0x36, 0x7d, 0xb3,
+ 0x7b, 0xa8, 0x6e, 0x93,
+};
+static const unsigned char kat3901_addinpr2[] = {0};
+static const unsigned char kat3901_retbits[] = {
+ 0xf0, 0x6b, 0x91, 0x68, 0x7b, 0x59, 0x0d, 0x3e, 0xc7, 0x04, 0x35, 0xd4,
+ 0xde, 0x8d, 0x2e, 0xa2, 0x42, 0xf4, 0xea, 0x99, 0xf7, 0x88, 0x99, 0x3f,
+ 0x19, 0x61, 0x3f, 0x54, 0x51, 0x4c, 0x66, 0x19, 0xe4, 0x74, 0x33, 0xd4,
+ 0x1c, 0x9c, 0x42, 0x66, 0x93, 0x32, 0x32, 0x20, 0x52, 0xa5, 0xa2, 0xe7,
+ 0xf2, 0xc3, 0x81, 0x3f, 0xe8, 0xc6, 0x4d, 0x82, 0x4c, 0x9d, 0x22, 0xb4,
+ 0x7c, 0x9e, 0xfe, 0x9b,
+};
+static const struct drbg_kat_pr_true kat3901_t = {
+ 0, kat3901_entropyin, kat3901_nonce, kat3901_persstr,
+ kat3901_entropyinpr1, kat3901_addinpr1, kat3901_entropyinpr2,
+ kat3901_addinpr2, kat3901_retbits
+};
+static const struct drbg_kat kat3901 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3901_t
+};
+
+static const unsigned char kat3902_entropyin[] = {
+ 0xea, 0x61, 0xe5, 0x6d, 0x58, 0x6f, 0x96, 0xad, 0x46, 0x36, 0x24, 0x13,
+ 0x0c, 0xb6, 0x83, 0xe0, 0x01, 0x45, 0x64, 0xe7, 0x28, 0x62, 0x4f, 0x49,
+ 0xc2, 0x4d, 0x4f, 0x84, 0x12, 0x59, 0x61, 0xdb, 0x2f, 0x52, 0x89, 0x0d,
+ 0x78, 0xfe, 0x02, 0xf7,
+};
+static const unsigned char kat3902_nonce[] = {0};
+static const unsigned char kat3902_persstr[] = {0};
+static const unsigned char kat3902_entropyinpr1[] = {
+ 0xdf, 0x68, 0xbb, 0x54, 0x69, 0x6d, 0xbe, 0x1f, 0xc6, 0x04, 0x61, 0x81,
+ 0xd1, 0x24, 0x3c, 0x88, 0xfa, 0x1c, 0xd2, 0x38, 0xc8, 0x19, 0xfe, 0x8b,
+ 0x74, 0xd2, 0xd0, 0x8e, 0x27, 0xca, 0x64, 0xe1, 0x33, 0x56, 0x01, 0x64,
+ 0x0f, 0x08, 0x66, 0x24,
+};
+static const unsigned char kat3902_addinpr1[] = {0};
+static const unsigned char kat3902_entropyinpr2[] = {
+ 0x0b, 0x2d, 0xc2, 0x33, 0xa6, 0x40, 0x20, 0xfd, 0x15, 0x64, 0x73, 0x75,
+ 0x2e, 0xe4, 0x65, 0xd4, 0xe9, 0x7f, 0x9d, 0xf2, 0xb0, 0x49, 0xf7, 0x45,
+ 0xfd, 0x69, 0x97, 0x60, 0x50, 0x6e, 0x4f, 0x4c, 0xf5, 0x4f, 0x9d, 0xac,
+ 0xbc, 0x93, 0xc3, 0x88,
+};
+static const unsigned char kat3902_addinpr2[] = {0};
+static const unsigned char kat3902_retbits[] = {
+ 0x70, 0x4b, 0x74, 0x1b, 0x4d, 0x54, 0x51, 0x73, 0xfa, 0x8a, 0x0b, 0x09,
+ 0xe8, 0x53, 0xa1, 0x69, 0xc2, 0x4c, 0x32, 0x6d, 0x8c, 0xa1, 0x39, 0x83,
+ 0xf1, 0xfd, 0xb9, 0xc5, 0xba, 0x9d, 0xf0, 0xc7, 0x6b, 0xc5, 0x44, 0x2d,
+ 0xdd, 0x0d, 0x40, 0x5d, 0x63, 0x52, 0x6a, 0x32, 0x1e, 0x7a, 0x8c, 0x0e,
+ 0x00, 0x34, 0xcc, 0x42, 0x40, 0x93, 0xad, 0xd1, 0xb6, 0xe6, 0x94, 0xb4,
+ 0xda, 0x9d, 0x3f, 0xd8,
+};
+static const struct drbg_kat_pr_true kat3902_t = {
+ 1, kat3902_entropyin, kat3902_nonce, kat3902_persstr,
+ kat3902_entropyinpr1, kat3902_addinpr1, kat3902_entropyinpr2,
+ kat3902_addinpr2, kat3902_retbits
+};
+static const struct drbg_kat kat3902 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3902_t
+};
+
+static const unsigned char kat3903_entropyin[] = {
+ 0xdc, 0x93, 0x6e, 0x4f, 0x82, 0x45, 0xea, 0x7d, 0x2c, 0xb7, 0xa9, 0x2c,
+ 0x67, 0xd4, 0x42, 0x6b, 0xa4, 0xf5, 0x58, 0xe6, 0x80, 0x0c, 0xc0, 0x8a,
+ 0x6e, 0x6e, 0x93, 0xd6, 0xfc, 0x5b, 0x71, 0xc2, 0x42, 0xff, 0x55, 0x95,
+ 0xdc, 0xf0, 0x26, 0x11,
+};
+static const unsigned char kat3903_nonce[] = {0};
+static const unsigned char kat3903_persstr[] = {0};
+static const unsigned char kat3903_entropyinpr1[] = {
+ 0x63, 0x77, 0x7a, 0x5a, 0x22, 0x7d, 0xef, 0xc5, 0xff, 0x7d, 0xeb, 0x4b,
+ 0x2e, 0x54, 0x59, 0xde, 0x89, 0xf0, 0xe6, 0x88, 0x7a, 0xd6, 0x2c, 0x5c,
+ 0xb6, 0x94, 0x7f, 0xad, 0x90, 0x03, 0xe9, 0x98, 0xf7, 0x16, 0xd5, 0x1d,
+ 0x3a, 0x7a, 0x04, 0x62,
+};
+static const unsigned char kat3903_addinpr1[] = {0};
+static const unsigned char kat3903_entropyinpr2[] = {
+ 0x9a, 0x5b, 0x85, 0x72, 0xfd, 0xae, 0x0f, 0x45, 0x6c, 0x02, 0x93, 0x58,
+ 0x1a, 0xe9, 0x32, 0x6c, 0x43, 0x9b, 0x90, 0xfd, 0xc8, 0x4a, 0x1d, 0xa3,
+ 0x70, 0xcd, 0xfb, 0xda, 0x2b, 0x5e, 0x64, 0x40, 0xdb, 0x1c, 0xc2, 0xe3,
+ 0xc4, 0xe5, 0x4b, 0x6d,
+};
+static const unsigned char kat3903_addinpr2[] = {0};
+static const unsigned char kat3903_retbits[] = {
+ 0x1b, 0xf3, 0x2e, 0x6c, 0x87, 0xbd, 0xf5, 0x2d, 0x66, 0x9c, 0x9a, 0xc0,
+ 0x08, 0x2a, 0x3d, 0x20, 0xba, 0x39, 0x9c, 0xcc, 0x28, 0x24, 0x42, 0xb6,
+ 0x9f, 0x5b, 0x5a, 0x13, 0x75, 0x86, 0x79, 0xe8, 0x70, 0xa0, 0xad, 0xb6,
+ 0x64, 0xf3, 0xa8, 0xed, 0x50, 0xce, 0x42, 0x48, 0x46, 0xf3, 0x5b, 0xad,
+ 0x7a, 0x96, 0xf9, 0x87, 0x31, 0x72, 0xde, 0xb3, 0xb2, 0xfe, 0xa8, 0x23,
+ 0xdb, 0xa0, 0x4a, 0x79,
+};
+static const struct drbg_kat_pr_true kat3903_t = {
+ 2, kat3903_entropyin, kat3903_nonce, kat3903_persstr,
+ kat3903_entropyinpr1, kat3903_addinpr1, kat3903_entropyinpr2,
+ kat3903_addinpr2, kat3903_retbits
+};
+static const struct drbg_kat kat3903 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3903_t
+};
+
+static const unsigned char kat3904_entropyin[] = {
+ 0x13, 0x8f, 0x40, 0x6a, 0xd9, 0xf7, 0x79, 0x09, 0x8a, 0x74, 0x9f, 0xa3,
+ 0xbb, 0x98, 0x21, 0x57, 0x96, 0x93, 0x02, 0x2c, 0xc5, 0x2f, 0x88, 0xe5,
+ 0x33, 0xec, 0x81, 0xa9, 0x1a, 0x77, 0x0b, 0x76, 0xd8, 0x0a, 0x4b, 0x64,
+ 0x74, 0x00, 0xd9, 0xd0,
+};
+static const unsigned char kat3904_nonce[] = {0};
+static const unsigned char kat3904_persstr[] = {0};
+static const unsigned char kat3904_entropyinpr1[] = {
+ 0x1a, 0x19, 0x20, 0xdb, 0xca, 0xa9, 0x0d, 0x4c, 0xea, 0x09, 0xf8, 0x54,
+ 0x7a, 0x6e, 0x8a, 0x18, 0x42, 0x58, 0xec, 0x21, 0x79, 0x9e, 0x9e, 0xf4,
+ 0xa8, 0x67, 0x47, 0x40, 0xe7, 0x90, 0x49, 0xca, 0xe0, 0x12, 0x3a, 0x82,
+ 0xc5, 0x71, 0xfa, 0x37,
+};
+static const unsigned char kat3904_addinpr1[] = {0};
+static const unsigned char kat3904_entropyinpr2[] = {
+ 0xd7, 0x18, 0x3c, 0x6d, 0x6b, 0xb0, 0xfb, 0x0b, 0x5b, 0x98, 0x03, 0xeb,
+ 0x27, 0x34, 0x00, 0x8e, 0x09, 0xbe, 0xfe, 0x25, 0x71, 0xe4, 0x56, 0x3b,
+ 0x63, 0xf1, 0x13, 0xc2, 0x40, 0xf3, 0xe3, 0x59, 0xfd, 0x97, 0x0a, 0xa7,
+ 0x56, 0x85, 0xa3, 0x32,
+};
+static const unsigned char kat3904_addinpr2[] = {0};
+static const unsigned char kat3904_retbits[] = {
+ 0x63, 0x4f, 0x68, 0x8b, 0x5e, 0x2d, 0x57, 0xd4, 0x3d, 0xf8, 0x07, 0xf6,
+ 0xae, 0xaa, 0xd6, 0x9b, 0x67, 0x9f, 0x91, 0x72, 0xfa, 0x2d, 0x1b, 0x11,
+ 0x82, 0xaa, 0x16, 0x85, 0x2a, 0x52, 0x38, 0xd7, 0x3d, 0xc4, 0xff, 0xfe,
+ 0x17, 0x9d, 0xc5, 0x79, 0xf9, 0x08, 0x46, 0xaa, 0xa6, 0x49, 0xcb, 0x77,
+ 0x04, 0xc1, 0xb1, 0x31, 0xcb, 0xbc, 0x25, 0x6d, 0x42, 0x5a, 0x8a, 0x41,
+ 0xb6, 0xdc, 0x22, 0x54,
+};
+static const struct drbg_kat_pr_true kat3904_t = {
+ 3, kat3904_entropyin, kat3904_nonce, kat3904_persstr,
+ kat3904_entropyinpr1, kat3904_addinpr1, kat3904_entropyinpr2,
+ kat3904_addinpr2, kat3904_retbits
+};
+static const struct drbg_kat kat3904 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3904_t
+};
+
+static const unsigned char kat3905_entropyin[] = {
+ 0x5d, 0x8f, 0x91, 0x5c, 0xf0, 0x26, 0xf8, 0x0a, 0x20, 0x00, 0x59, 0x07,
+ 0x2e, 0xdb, 0xae, 0xec, 0xb8, 0xb2, 0x70, 0x3d, 0x06, 0xca, 0x1c, 0x3b,
+ 0xda, 0xe8, 0x00, 0x87, 0x47, 0x9c, 0xca, 0x37, 0x03, 0xf7, 0xae, 0xdd,
+ 0x7a, 0x3f, 0xce, 0x11,
+};
+static const unsigned char kat3905_nonce[] = {0};
+static const unsigned char kat3905_persstr[] = {0};
+static const unsigned char kat3905_entropyinpr1[] = {
+ 0x94, 0x09, 0x52, 0x68, 0x5e, 0x45, 0x97, 0xa8, 0x31, 0xc0, 0x16, 0x25,
+ 0x7b, 0xb5, 0x43, 0xd6, 0x1a, 0xf9, 0xbd, 0xf5, 0xff, 0xb1, 0x3c, 0xb7,
+ 0xc3, 0x90, 0x38, 0xdf, 0x3c, 0x4d, 0xdd, 0xb2, 0xaf, 0x44, 0x46, 0x35,
+ 0x01, 0xe8, 0xe6, 0x95,
+};
+static const unsigned char kat3905_addinpr1[] = {0};
+static const unsigned char kat3905_entropyinpr2[] = {
+ 0xe9, 0x7d, 0xa4, 0xe2, 0x32, 0x8d, 0x32, 0x78, 0x3a, 0xb6, 0xb1, 0x8e,
+ 0xcc, 0x39, 0xc7, 0x65, 0x84, 0xb9, 0x0e, 0x92, 0x4e, 0xad, 0x38, 0x8c,
+ 0x39, 0x24, 0x7a, 0x2c, 0xe2, 0xc7, 0xfe, 0x28, 0xdd, 0x48, 0xa9, 0x66,
+ 0x25, 0x58, 0x9c, 0xab,
+};
+static const unsigned char kat3905_addinpr2[] = {0};
+static const unsigned char kat3905_retbits[] = {
+ 0xa2, 0xe4, 0x5a, 0x82, 0x4a, 0xa5, 0x69, 0x07, 0x78, 0x81, 0xae, 0x16,
+ 0x5a, 0x27, 0x14, 0x7f, 0xd5, 0x96, 0x7f, 0x92, 0xb3, 0x7d, 0xd0, 0x77,
+ 0xf8, 0x96, 0xaa, 0xb5, 0x6e, 0x14, 0x06, 0x76, 0xa0, 0xe4, 0xf8, 0x7a,
+ 0x45, 0x01, 0x4a, 0xe0, 0x15, 0x13, 0xd3, 0xd4, 0x97, 0x8f, 0xdf, 0xd5,
+ 0x18, 0x51, 0xe6, 0xe6, 0xca, 0xfa, 0x38, 0x34, 0x05, 0xc9, 0x58, 0xe4,
+ 0x58, 0xd3, 0xcd, 0x66,
+};
+static const struct drbg_kat_pr_true kat3905_t = {
+ 4, kat3905_entropyin, kat3905_nonce, kat3905_persstr,
+ kat3905_entropyinpr1, kat3905_addinpr1, kat3905_entropyinpr2,
+ kat3905_addinpr2, kat3905_retbits
+};
+static const struct drbg_kat kat3905 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3905_t
+};
+
+static const unsigned char kat3906_entropyin[] = {
+ 0x58, 0x44, 0xdc, 0x54, 0xf8, 0xd7, 0x11, 0xcb, 0xd2, 0x60, 0x61, 0x55,
+ 0xbc, 0x62, 0xdf, 0xbd, 0x31, 0x74, 0xb5, 0x0e, 0xbc, 0x34, 0x95, 0xf1,
+ 0xf1, 0x32, 0xb3, 0x10, 0x13, 0xad, 0x91, 0x7c, 0x94, 0xee, 0xa9, 0xa9,
+ 0xd0, 0xc1, 0x26, 0x15,
+};
+static const unsigned char kat3906_nonce[] = {0};
+static const unsigned char kat3906_persstr[] = {0};
+static const unsigned char kat3906_entropyinpr1[] = {
+ 0x20, 0xe8, 0x2f, 0x8d, 0x66, 0xdd, 0x37, 0x6d, 0xa4, 0x2a, 0x36, 0xc0,
+ 0xae, 0x09, 0xb6, 0x2e, 0x4e, 0x3d, 0xa7, 0x18, 0x12, 0x7a, 0xc7, 0xd0,
+ 0x91, 0x7d, 0x83, 0x33, 0x24, 0xe6, 0x1f, 0x5a, 0xd6, 0x2e, 0xa9, 0x8d,
+ 0x62, 0x33, 0x69, 0x34,
+};
+static const unsigned char kat3906_addinpr1[] = {0};
+static const unsigned char kat3906_entropyinpr2[] = {
+ 0x81, 0x9d, 0xa8, 0x3d, 0x8b, 0x19, 0x44, 0xe6, 0x0b, 0xef, 0x93, 0xdb,
+ 0x44, 0x27, 0x57, 0x6a, 0x92, 0x0e, 0x1f, 0x90, 0xb4, 0x77, 0xa6, 0x12,
+ 0x3b, 0x62, 0xcb, 0xd2, 0xcb, 0xdc, 0xc7, 0xef, 0xa3, 0xd7, 0x0e, 0x08,
+ 0x17, 0x5f, 0xf0, 0x4e,
+};
+static const unsigned char kat3906_addinpr2[] = {0};
+static const unsigned char kat3906_retbits[] = {
+ 0x05, 0x61, 0x99, 0x80, 0xe1, 0x28, 0xb7, 0xc7, 0x1a, 0xb7, 0x06, 0x02,
+ 0x8f, 0x5d, 0x37, 0xae, 0x47, 0xe1, 0x79, 0x67, 0x9c, 0x19, 0x02, 0xba,
+ 0x0f, 0x59, 0x6b, 0x54, 0x5a, 0x5c, 0x81, 0xef, 0x86, 0x0e, 0xb7, 0x39,
+ 0xfe, 0x1a, 0xcb, 0xb9, 0x7b, 0xff, 0x73, 0x5d, 0x7c, 0xdd, 0xbd, 0xf2,
+ 0x94, 0xcf, 0xe2, 0x6f, 0x24, 0x99, 0x2c, 0x93, 0x67, 0x8a, 0xb2, 0x03,
+ 0xcb, 0x58, 0x2c, 0x3c,
+};
+static const struct drbg_kat_pr_true kat3906_t = {
+ 5, kat3906_entropyin, kat3906_nonce, kat3906_persstr,
+ kat3906_entropyinpr1, kat3906_addinpr1, kat3906_entropyinpr2,
+ kat3906_addinpr2, kat3906_retbits
+};
+static const struct drbg_kat kat3906 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3906_t
+};
+
+static const unsigned char kat3907_entropyin[] = {
+ 0xc4, 0x4b, 0x87, 0x0c, 0xad, 0x13, 0xd0, 0x2e, 0xf0, 0x56, 0x1b, 0x7f,
+ 0x87, 0xce, 0xd6, 0xcc, 0x08, 0xf9, 0xa1, 0xb6, 0x68, 0x5f, 0x05, 0xa4,
+ 0x27, 0x9b, 0x25, 0xd9, 0x24, 0x14, 0x44, 0x7e, 0x66, 0x68, 0xb3, 0xc4,
+ 0x96, 0xf1, 0xdf, 0xf4,
+};
+static const unsigned char kat3907_nonce[] = {0};
+static const unsigned char kat3907_persstr[] = {0};
+static const unsigned char kat3907_entropyinpr1[] = {
+ 0x6c, 0x30, 0x74, 0x4a, 0xdf, 0xf9, 0x09, 0xe2, 0xb4, 0x25, 0x29, 0x6b,
+ 0xd0, 0xb3, 0x4d, 0x2e, 0x1d, 0xf3, 0x6a, 0x00, 0x76, 0x3d, 0xc1, 0x19,
+ 0x37, 0x63, 0xfa, 0x91, 0xe3, 0x68, 0xa2, 0x1a, 0xb2, 0xf9, 0x00, 0x5f,
+ 0x8a, 0xf5, 0x2a, 0x4d,
+};
+static const unsigned char kat3907_addinpr1[] = {0};
+static const unsigned char kat3907_entropyinpr2[] = {
+ 0x9a, 0x94, 0xb5, 0x16, 0x90, 0x4a, 0x7a, 0x7a, 0x67, 0x3d, 0xa1, 0x96,
+ 0x44, 0xdc, 0xc4, 0x10, 0x7a, 0x50, 0x82, 0x3f, 0x1b, 0x85, 0x30, 0x96,
+ 0xad, 0x46, 0xc6, 0xa8, 0xf3, 0x8e, 0xf8, 0xbe, 0x60, 0xc5, 0xde, 0xf5,
+ 0x3b, 0x56, 0x0e, 0x8f,
+};
+static const unsigned char kat3907_addinpr2[] = {0};
+static const unsigned char kat3907_retbits[] = {
+ 0xeb, 0xaa, 0xab, 0x96, 0xf0, 0xf0, 0x92, 0x42, 0x69, 0x69, 0x0b, 0x95,
+ 0x09, 0x85, 0x58, 0x48, 0x8f, 0x3e, 0x20, 0xdf, 0xab, 0xdb, 0x70, 0x39,
+ 0xd9, 0x08, 0x8f, 0x88, 0x5e, 0xf0, 0x3e, 0xb4, 0x34, 0x87, 0x47, 0xe1,
+ 0x85, 0x1f, 0xe0, 0xbd, 0x0e, 0x21, 0x59, 0x1f, 0x68, 0x5e, 0x41, 0x76,
+ 0x7f, 0x7c, 0xf4, 0x62, 0xbc, 0x03, 0x72, 0x1e, 0xb3, 0x18, 0xe1, 0xd2,
+ 0x8b, 0x91, 0x2a, 0xe9,
+};
+static const struct drbg_kat_pr_true kat3907_t = {
+ 6, kat3907_entropyin, kat3907_nonce, kat3907_persstr,
+ kat3907_entropyinpr1, kat3907_addinpr1, kat3907_entropyinpr2,
+ kat3907_addinpr2, kat3907_retbits
+};
+static const struct drbg_kat kat3907 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3907_t
+};
+
+static const unsigned char kat3908_entropyin[] = {
+ 0x57, 0x84, 0xe0, 0x2c, 0xa4, 0xa1, 0xca, 0x96, 0x25, 0xfe, 0xf9, 0x99,
+ 0x8f, 0x13, 0xc9, 0xf4, 0x15, 0x5c, 0xb2, 0x96, 0xea, 0x7a, 0xe0, 0xc6,
+ 0x32, 0xa1, 0xb1, 0xbc, 0x45, 0x0c, 0x51, 0x00, 0x71, 0x58, 0x54, 0xd8,
+ 0x47, 0x2c, 0xc6, 0x96,
+};
+static const unsigned char kat3908_nonce[] = {0};
+static const unsigned char kat3908_persstr[] = {0};
+static const unsigned char kat3908_entropyinpr1[] = {
+ 0xf7, 0xce, 0x6b, 0x7e, 0xd6, 0x85, 0xf4, 0x27, 0x1c, 0xf3, 0xea, 0x6f,
+ 0xab, 0x71, 0x4d, 0xc4, 0x56, 0x02, 0x42, 0xde, 0xca, 0x9c, 0x94, 0xac,
+ 0xd7, 0xa8, 0x16, 0x44, 0x95, 0xfc, 0xa7, 0x0e, 0x76, 0x7c, 0xcc, 0x8f,
+ 0x46, 0x11, 0x1d, 0x8e,
+};
+static const unsigned char kat3908_addinpr1[] = {0};
+static const unsigned char kat3908_entropyinpr2[] = {
+ 0x36, 0x36, 0xb6, 0xd5, 0x45, 0xc7, 0xa9, 0x2b, 0x50, 0x07, 0x9d, 0x44,
+ 0xbd, 0xbe, 0xef, 0xaa, 0x69, 0x1c, 0xed, 0xf4, 0xfb, 0xcb, 0xa3, 0x3a,
+ 0x26, 0x49, 0x7c, 0x6b, 0x49, 0xcf, 0x77, 0xe1, 0x69, 0x3f, 0x0d, 0x81,
+ 0x28, 0xfa, 0xa0, 0x12,
+};
+static const unsigned char kat3908_addinpr2[] = {0};
+static const unsigned char kat3908_retbits[] = {
+ 0x48, 0x4c, 0xf9, 0x16, 0x5c, 0xc6, 0xdf, 0x1d, 0x03, 0x5e, 0x3a, 0xa5,
+ 0x5b, 0xeb, 0x55, 0xa2, 0x4b, 0x80, 0xa9, 0x34, 0x6a, 0x99, 0x00, 0x14,
+ 0xf1, 0x7f, 0xeb, 0xd4, 0xfa, 0x67, 0x1d, 0x45, 0xca, 0xb0, 0x90, 0xff,
+ 0x21, 0x22, 0x5b, 0x51, 0x05, 0x76, 0xb0, 0x2a, 0x61, 0xce, 0x44, 0xe9,
+ 0x53, 0x40, 0x2f, 0x6f, 0x1c, 0xc3, 0xf9, 0xcd, 0x23, 0xa9, 0x11, 0xff,
+ 0xf0, 0xd8, 0x7b, 0x99,
+};
+static const struct drbg_kat_pr_true kat3908_t = {
+ 7, kat3908_entropyin, kat3908_nonce, kat3908_persstr,
+ kat3908_entropyinpr1, kat3908_addinpr1, kat3908_entropyinpr2,
+ kat3908_addinpr2, kat3908_retbits
+};
+static const struct drbg_kat kat3908 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3908_t
+};
+
+static const unsigned char kat3909_entropyin[] = {
+ 0xcc, 0x0c, 0x84, 0x69, 0x05, 0x5c, 0x7c, 0xfc, 0xaa, 0x23, 0x5f, 0xa0,
+ 0x74, 0x9c, 0xfe, 0xaf, 0xd8, 0xa7, 0x91, 0x79, 0xf1, 0x13, 0x32, 0x6e,
+ 0x61, 0x83, 0x39, 0x7b, 0x68, 0x41, 0x71, 0xca, 0x72, 0x5c, 0x02, 0xf0,
+ 0x3a, 0xfc, 0xb2, 0x61,
+};
+static const unsigned char kat3909_nonce[] = {0};
+static const unsigned char kat3909_persstr[] = {0};
+static const unsigned char kat3909_entropyinpr1[] = {
+ 0x73, 0x4b, 0xe4, 0x6c, 0x1a, 0x35, 0xdc, 0x4d, 0x82, 0x4b, 0x47, 0xd3,
+ 0x87, 0x9a, 0x2c, 0xd4, 0xb2, 0x14, 0x2b, 0xcc, 0xa5, 0x74, 0xfa, 0xdd,
+ 0x2c, 0x30, 0x3e, 0xaf, 0x63, 0x56, 0xd8, 0x68, 0x24, 0x63, 0x4d, 0xd9,
+ 0x08, 0x2f, 0x0b, 0x15,
+};
+static const unsigned char kat3909_addinpr1[] = {0};
+static const unsigned char kat3909_entropyinpr2[] = {
+ 0xfa, 0x1f, 0x09, 0x15, 0x23, 0xe8, 0xd0, 0xfa, 0x51, 0xcc, 0x09, 0x92,
+ 0x5c, 0xfd, 0x5c, 0xed, 0x21, 0x0d, 0xee, 0x85, 0xcb, 0x28, 0xf9, 0x1b,
+ 0x8f, 0x88, 0x9a, 0xad, 0xb7, 0xa1, 0x8c, 0x53, 0x1a, 0xfa, 0x4d, 0x47,
+ 0x43, 0x1a, 0xcc, 0xc7,
+};
+static const unsigned char kat3909_addinpr2[] = {0};
+static const unsigned char kat3909_retbits[] = {
+ 0x19, 0xe0, 0x4d, 0x63, 0x40, 0x42, 0xbe, 0x30, 0x50, 0xeb, 0x07, 0x57,
+ 0xb1, 0xdc, 0x06, 0xc8, 0xc7, 0x80, 0xdb, 0x22, 0xfa, 0xb1, 0x5c, 0xc9,
+ 0xdc, 0x66, 0x7b, 0xaf, 0xbf, 0xa8, 0x88, 0x83, 0xeb, 0xd0, 0xff, 0xb2,
+ 0x1e, 0x1a, 0x87, 0xbc, 0x67, 0x87, 0xf4, 0x73, 0xfe, 0x80, 0xd9, 0xfe,
+ 0x71, 0x1c, 0x5f, 0xb1, 0x7f, 0x11, 0x1d, 0xac, 0xfe, 0x71, 0x80, 0xe9,
+ 0x51, 0xc3, 0x80, 0x37,
+};
+static const struct drbg_kat_pr_true kat3909_t = {
+ 8, kat3909_entropyin, kat3909_nonce, kat3909_persstr,
+ kat3909_entropyinpr1, kat3909_addinpr1, kat3909_entropyinpr2,
+ kat3909_addinpr2, kat3909_retbits
+};
+static const struct drbg_kat kat3909 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3909_t
+};
+
+static const unsigned char kat3910_entropyin[] = {
+ 0x0c, 0xbd, 0x31, 0x7c, 0x68, 0x56, 0x03, 0xaf, 0x9d, 0x40, 0x41, 0xc6,
+ 0xf9, 0x37, 0x3b, 0xaa, 0xb7, 0x82, 0x67, 0x65, 0xcc, 0x59, 0xa2, 0xa5,
+ 0x37, 0x70, 0xaf, 0x87, 0xe1, 0x91, 0x82, 0x69, 0xe1, 0xea, 0xa8, 0x9a,
+ 0xc8, 0x97, 0x63, 0xa8,
+};
+static const unsigned char kat3910_nonce[] = {0};
+static const unsigned char kat3910_persstr[] = {0};
+static const unsigned char kat3910_entropyinpr1[] = {
+ 0xf3, 0xb2, 0x47, 0x14, 0x5b, 0x91, 0x41, 0xaa, 0xc3, 0x39, 0x65, 0x75,
+ 0x7c, 0xb9, 0x98, 0x5a, 0x85, 0x19, 0x80, 0x47, 0x97, 0x43, 0xe6, 0x06,
+ 0x2d, 0x6a, 0x69, 0x2a, 0x7e, 0xa0, 0x69, 0x2f, 0x1d, 0xff, 0x3d, 0xe7,
+ 0x51, 0x5e, 0xe1, 0x96,
+};
+static const unsigned char kat3910_addinpr1[] = {0};
+static const unsigned char kat3910_entropyinpr2[] = {
+ 0xa9, 0xbf, 0xb4, 0x46, 0xe5, 0xe5, 0x4f, 0xbc, 0x29, 0x9f, 0x6d, 0x37,
+ 0x0b, 0x2f, 0x99, 0xcc, 0x21, 0x6d, 0xf6, 0xa8, 0xa6, 0x9e, 0xb6, 0x7b,
+ 0xbf, 0xad, 0x86, 0x67, 0x2e, 0xb8, 0x61, 0x8b, 0xad, 0x65, 0x09, 0x6c,
+ 0x7f, 0x47, 0xd8, 0x84,
+};
+static const unsigned char kat3910_addinpr2[] = {0};
+static const unsigned char kat3910_retbits[] = {
+ 0xc7, 0xa9, 0x82, 0xb9, 0x42, 0x4f, 0x31, 0x70, 0x33, 0xea, 0x10, 0xda,
+ 0x5c, 0xed, 0x43, 0x26, 0x53, 0x32, 0x1c, 0x16, 0xdc, 0x60, 0x85, 0x11,
+ 0x7f, 0xe8, 0x24, 0xba, 0x04, 0x8d, 0x7c, 0x0d, 0xdd, 0xe9, 0x18, 0x81,
+ 0x9a, 0x83, 0x0f, 0xe7, 0x44, 0xdd, 0xf1, 0xd4, 0xb4, 0x72, 0x47, 0x4f,
+ 0x44, 0x21, 0x17, 0x6c, 0xb0, 0x78, 0xd7, 0x2d, 0xbf, 0xf7, 0x82, 0x38,
+ 0xf0, 0xcb, 0xd4, 0x19,
+};
+static const struct drbg_kat_pr_true kat3910_t = {
+ 9, kat3910_entropyin, kat3910_nonce, kat3910_persstr,
+ kat3910_entropyinpr1, kat3910_addinpr1, kat3910_entropyinpr2,
+ kat3910_addinpr2, kat3910_retbits
+};
+static const struct drbg_kat kat3910 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3910_t
+};
+
+static const unsigned char kat3911_entropyin[] = {
+ 0xa8, 0x9b, 0x3d, 0x14, 0x37, 0x1d, 0x7b, 0x96, 0xcb, 0x55, 0xeb, 0x5d,
+ 0x85, 0x3d, 0x48, 0xb6, 0xa3, 0xa8, 0xae, 0xf7, 0xbe, 0xe5, 0x8d, 0x06,
+ 0x0c, 0xe7, 0xcd, 0x2b, 0x3e, 0xcf, 0x8c, 0x57, 0xd7, 0x9e, 0xc7, 0x05,
+ 0xa1, 0x11, 0xe3, 0xcf,
+};
+static const unsigned char kat3911_nonce[] = {0};
+static const unsigned char kat3911_persstr[] = {0};
+static const unsigned char kat3911_entropyinpr1[] = {
+ 0xce, 0x59, 0xca, 0x33, 0x48, 0xf5, 0x5a, 0x62, 0x24, 0xd3, 0xe3, 0x8c,
+ 0xce, 0x12, 0xdb, 0xd3, 0x10, 0x53, 0xad, 0x3b, 0xdf, 0x60, 0xd0, 0xcb,
+ 0xad, 0xa1, 0xc2, 0xdc, 0xca, 0x2a, 0x88, 0x20, 0x7d, 0xdf, 0x8f, 0x57,
+ 0xe8, 0x1e, 0xfc, 0x4e,
+};
+static const unsigned char kat3911_addinpr1[] = {0};
+static const unsigned char kat3911_entropyinpr2[] = {
+ 0x35, 0xd9, 0x2d, 0x8a, 0xb6, 0x4d, 0x5e, 0xb6, 0x46, 0x81, 0x47, 0x6b,
+ 0x09, 0x19, 0x94, 0x8a, 0xb1, 0x73, 0xbc, 0x3c, 0x2f, 0x04, 0xbd, 0x7e,
+ 0x1b, 0x83, 0x87, 0x01, 0xb2, 0x8e, 0xdd, 0xc9, 0x99, 0xec, 0x13, 0xb4,
+ 0x7e, 0x4b, 0x75, 0x80,
+};
+static const unsigned char kat3911_addinpr2[] = {0};
+static const unsigned char kat3911_retbits[] = {
+ 0x3d, 0x3a, 0x67, 0xf4, 0x13, 0x8e, 0x64, 0xfb, 0xf8, 0x1a, 0xe5, 0x28,
+ 0x6f, 0x76, 0x18, 0x49, 0xbd, 0xeb, 0x7d, 0xbd, 0xd6, 0xfd, 0xdb, 0xf7,
+ 0x32, 0x49, 0x51, 0xc6, 0xae, 0xd6, 0x1a, 0xb8, 0xc7, 0x3e, 0x1f, 0x0b,
+ 0x0e, 0xfb, 0xd2, 0xa2, 0x3e, 0x91, 0x05, 0xcb, 0x1e, 0x17, 0x3f, 0x96,
+ 0xa3, 0xf6, 0xfb, 0xda, 0x6c, 0x43, 0x9d, 0x61, 0x04, 0x53, 0xdc, 0x55,
+ 0xeb, 0xda, 0x95, 0x8f,
+};
+static const struct drbg_kat_pr_true kat3911_t = {
+ 10, kat3911_entropyin, kat3911_nonce, kat3911_persstr,
+ kat3911_entropyinpr1, kat3911_addinpr1, kat3911_entropyinpr2,
+ kat3911_addinpr2, kat3911_retbits
+};
+static const struct drbg_kat kat3911 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3911_t
+};
+
+static const unsigned char kat3912_entropyin[] = {
+ 0xc3, 0xd4, 0xf7, 0x5c, 0x07, 0x0e, 0x54, 0x57, 0x81, 0x2d, 0x98, 0x6c,
+ 0xc3, 0xfa, 0xf1, 0x18, 0x91, 0x49, 0x01, 0x14, 0x7f, 0x1e, 0x2a, 0xf5,
+ 0x66, 0x11, 0x30, 0x67, 0x84, 0x0d, 0xae, 0x4b, 0xb5, 0xbe, 0xf5, 0xdd,
+ 0xc5, 0xbe, 0x9a, 0xce,
+};
+static const unsigned char kat3912_nonce[] = {0};
+static const unsigned char kat3912_persstr[] = {0};
+static const unsigned char kat3912_entropyinpr1[] = {
+ 0x25, 0x8e, 0x5c, 0xeb, 0xe7, 0x17, 0x55, 0x7f, 0x64, 0xbb, 0xc5, 0x2c,
+ 0x2c, 0x1d, 0xc5, 0x54, 0x6a, 0xb2, 0xa4, 0xd8, 0x04, 0x17, 0xc3, 0x29,
+ 0xa2, 0x68, 0x7b, 0x46, 0xa1, 0x7f, 0x33, 0xfa, 0xa2, 0x49, 0x62, 0x58,
+ 0x19, 0x96, 0x22, 0xd4,
+};
+static const unsigned char kat3912_addinpr1[] = {0};
+static const unsigned char kat3912_entropyinpr2[] = {
+ 0xb6, 0xe1, 0xf5, 0x05, 0x52, 0x87, 0xd2, 0xa9, 0xcb, 0x2d, 0xeb, 0x3a,
+ 0xb9, 0x44, 0xd2, 0x1c, 0xdb, 0xa1, 0xfa, 0x64, 0x69, 0x19, 0x4a, 0x18,
+ 0xba, 0x4a, 0x76, 0x1a, 0x5c, 0xb1, 0x1f, 0x0d, 0xcb, 0xfc, 0x0b, 0x59,
+ 0x22, 0xad, 0x8e, 0xaf,
+};
+static const unsigned char kat3912_addinpr2[] = {0};
+static const unsigned char kat3912_retbits[] = {
+ 0x6d, 0x33, 0x29, 0x45, 0x29, 0x17, 0x99, 0x77, 0x87, 0x4c, 0xfa, 0xe7,
+ 0xb0, 0xe6, 0x24, 0x2a, 0xbb, 0x29, 0xe7, 0x99, 0x26, 0xba, 0x8c, 0x65,
+ 0x1f, 0x5d, 0x54, 0x28, 0xd2, 0x62, 0x5f, 0x06, 0xd7, 0x7f, 0xc7, 0x7e,
+ 0x5a, 0x35, 0x05, 0x59, 0x3e, 0x6a, 0x1d, 0x30, 0x1b, 0x8c, 0xcd, 0x68,
+ 0xf4, 0x3f, 0x01, 0xd0, 0x06, 0x44, 0xde, 0xb9, 0xc0, 0x8a, 0xce, 0xc4,
+ 0x61, 0x33, 0xb8, 0xc9,
+};
+static const struct drbg_kat_pr_true kat3912_t = {
+ 11, kat3912_entropyin, kat3912_nonce, kat3912_persstr,
+ kat3912_entropyinpr1, kat3912_addinpr1, kat3912_entropyinpr2,
+ kat3912_addinpr2, kat3912_retbits
+};
+static const struct drbg_kat kat3912 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3912_t
+};
+
+static const unsigned char kat3913_entropyin[] = {
+ 0x67, 0x25, 0xf6, 0x79, 0x60, 0x9d, 0x34, 0x4b, 0xd7, 0xdb, 0x0a, 0x75,
+ 0xbd, 0xc0, 0xa5, 0xeb, 0x83, 0xdc, 0x9d, 0x9d, 0x34, 0x97, 0xa2, 0x78,
+ 0x54, 0x97, 0x04, 0xc9, 0x13, 0xcf, 0x6e, 0x60, 0x05, 0x82, 0xb1, 0xb1,
+ 0xc9, 0x1b, 0xcf, 0xd8,
+};
+static const unsigned char kat3913_nonce[] = {0};
+static const unsigned char kat3913_persstr[] = {0};
+static const unsigned char kat3913_entropyinpr1[] = {
+ 0xf0, 0x5f, 0x70, 0x45, 0xde, 0xfa, 0xc6, 0xd2, 0xe9, 0x0c, 0x43, 0x79,
+ 0x8b, 0xfd, 0x85, 0x6b, 0x8a, 0x71, 0x24, 0x7a, 0x3e, 0xa7, 0x51, 0xa2,
+ 0x85, 0x2f, 0xbb, 0x2f, 0x24, 0xd2, 0xa8, 0xb0, 0x78, 0xd1, 0xb5, 0x42,
+ 0x1d, 0x80, 0xd2, 0xc6,
+};
+static const unsigned char kat3913_addinpr1[] = {0};
+static const unsigned char kat3913_entropyinpr2[] = {
+ 0x22, 0x63, 0x1d, 0x5e, 0x36, 0x1f, 0x8e, 0xb4, 0x31, 0x1c, 0xeb, 0xce,
+ 0xd9, 0x71, 0x38, 0xbc, 0xd6, 0x42, 0x49, 0x23, 0x0f, 0x7d, 0x65, 0xd4,
+ 0x50, 0x64, 0xd1, 0x1d, 0x57, 0xea, 0x21, 0xa6, 0x50, 0x45, 0x60, 0x7e,
+ 0x1f, 0x2a, 0x01, 0xc1,
+};
+static const unsigned char kat3913_addinpr2[] = {0};
+static const unsigned char kat3913_retbits[] = {
+ 0x34, 0x7c, 0xc5, 0x19, 0xce, 0xd1, 0x4e, 0x46, 0xb4, 0xb1, 0xd0, 0x6a,
+ 0xe6, 0xc5, 0x55, 0x5e, 0xd8, 0xa3, 0x77, 0x11, 0x3e, 0x4f, 0xe1, 0xe2,
+ 0x6b, 0x90, 0xf1, 0xad, 0x60, 0x29, 0xa5, 0x26, 0x91, 0x16, 0x68, 0xe3,
+ 0x5d, 0xaf, 0x9f, 0x72, 0x03, 0x2a, 0x74, 0xe6, 0x37, 0x44, 0xea, 0x52,
+ 0x42, 0x32, 0x83, 0x1e, 0xf4, 0xd7, 0x7f, 0x56, 0xd2, 0x88, 0xd3, 0x7d,
+ 0x55, 0x0b, 0xc3, 0xd9,
+};
+static const struct drbg_kat_pr_true kat3913_t = {
+ 12, kat3913_entropyin, kat3913_nonce, kat3913_persstr,
+ kat3913_entropyinpr1, kat3913_addinpr1, kat3913_entropyinpr2,
+ kat3913_addinpr2, kat3913_retbits
+};
+static const struct drbg_kat kat3913 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3913_t
+};
+
+static const unsigned char kat3914_entropyin[] = {
+ 0x9a, 0xd2, 0x35, 0x88, 0x04, 0xb9, 0x91, 0x85, 0x03, 0x80, 0x6c, 0xc0,
+ 0x9f, 0x92, 0x0e, 0x49, 0x21, 0xfe, 0x38, 0xd0, 0xcc, 0x9b, 0x44, 0x24,
+ 0xb1, 0x75, 0x17, 0x69, 0x59, 0x5f, 0xf2, 0x6d, 0x89, 0xc7, 0x09, 0xf7,
+ 0xc0, 0x53, 0x80, 0x58,
+};
+static const unsigned char kat3914_nonce[] = {0};
+static const unsigned char kat3914_persstr[] = {0};
+static const unsigned char kat3914_entropyinpr1[] = {
+ 0x52, 0x4a, 0xc6, 0x44, 0x29, 0x34, 0x50, 0x0d, 0x79, 0x7b, 0x5e, 0x6a,
+ 0xc6, 0xbe, 0x65, 0x58, 0x3f, 0x3b, 0x41, 0xd0, 0xdc, 0x16, 0xc9, 0x6a,
+ 0xaa, 0x26, 0x67, 0x00, 0x2a, 0x8f, 0xa0, 0xa4, 0x6f, 0xca, 0x99, 0xdf,
+ 0xd4, 0x5e, 0xdd, 0x3e,
+};
+static const unsigned char kat3914_addinpr1[] = {0};
+static const unsigned char kat3914_entropyinpr2[] = {
+ 0xff, 0xe9, 0x33, 0xe0, 0xe5, 0x24, 0xb3, 0xf0, 0x1d, 0xc7, 0x70, 0x42,
+ 0x35, 0x59, 0x7a, 0xb1, 0x57, 0x1d, 0x33, 0xa8, 0x56, 0x34, 0x98, 0xa2,
+ 0x24, 0xe7, 0x26, 0xd8, 0xb1, 0x8b, 0x2d, 0xce, 0x43, 0x62, 0x4c, 0x81,
+ 0x41, 0x63, 0xbd, 0xf8,
+};
+static const unsigned char kat3914_addinpr2[] = {0};
+static const unsigned char kat3914_retbits[] = {
+ 0x94, 0xac, 0x8d, 0xe3, 0xb7, 0xd8, 0x3d, 0x32, 0x6e, 0x88, 0x11, 0xb3,
+ 0x87, 0xd7, 0x9c, 0x68, 0xa0, 0x52, 0xbe, 0xa3, 0x5c, 0x12, 0x07, 0x49,
+ 0xb8, 0xf8, 0x17, 0xe3, 0x28, 0x53, 0x06, 0x2d, 0x38, 0xb4, 0x3f, 0x5a,
+ 0x00, 0x34, 0x50, 0x20, 0x88, 0x3d, 0xb7, 0x9b, 0xa3, 0xd5, 0x86, 0x24,
+ 0x84, 0xc2, 0x56, 0x56, 0xa3, 0x84, 0xf3, 0xf9, 0x01, 0x7a, 0xd7, 0xcb,
+ 0xe8, 0x5e, 0xd3, 0xc0,
+};
+static const struct drbg_kat_pr_true kat3914_t = {
+ 13, kat3914_entropyin, kat3914_nonce, kat3914_persstr,
+ kat3914_entropyinpr1, kat3914_addinpr1, kat3914_entropyinpr2,
+ kat3914_addinpr2, kat3914_retbits
+};
+static const struct drbg_kat kat3914 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3914_t
+};
+
+static const unsigned char kat3915_entropyin[] = {
+ 0xed, 0xd0, 0xd8, 0x56, 0xba, 0x5c, 0xf4, 0x5e, 0x62, 0x8c, 0xcb, 0x87,
+ 0x92, 0x48, 0xee, 0x92, 0x18, 0xf3, 0x3c, 0x5a, 0x53, 0x4e, 0xcf, 0xf2,
+ 0x93, 0x60, 0xc5, 0x42, 0x38, 0xd7, 0xe6, 0x6a, 0x9f, 0x49, 0x29, 0xad,
+ 0xf1, 0xc9, 0xd9, 0x27,
+};
+static const unsigned char kat3915_nonce[] = {0};
+static const unsigned char kat3915_persstr[] = {0};
+static const unsigned char kat3915_entropyinpr1[] = {
+ 0xea, 0x4f, 0xfc, 0xe5, 0x16, 0xfb, 0xa5, 0xa2, 0x83, 0x25, 0x20, 0x6d,
+ 0x63, 0x9d, 0x1b, 0x3a, 0x0f, 0x7c, 0x61, 0x79, 0x89, 0x47, 0xa5, 0x4f,
+ 0x77, 0x09, 0x71, 0xbe, 0xd1, 0x88, 0x47, 0xe3, 0xff, 0x12, 0x6e, 0x65,
+ 0xa6, 0xb0, 0x70, 0xe9,
+};
+static const unsigned char kat3915_addinpr1[] = {0};
+static const unsigned char kat3915_entropyinpr2[] = {
+ 0xd7, 0xe6, 0x49, 0xcd, 0xf5, 0x63, 0xe9, 0x60, 0x64, 0x0b, 0x50, 0x92,
+ 0x7a, 0x92, 0xab, 0xca, 0xa3, 0x06, 0xd4, 0xe1, 0x31, 0x5e, 0xad, 0xb0,
+ 0x31, 0x6b, 0xb6, 0x5d, 0x7f, 0x91, 0x66, 0x57, 0x7b, 0xab, 0x34, 0xbf,
+ 0x01, 0x2a, 0x6f, 0x9c,
+};
+static const unsigned char kat3915_addinpr2[] = {0};
+static const unsigned char kat3915_retbits[] = {
+ 0xe9, 0x2c, 0x34, 0xe5, 0x44, 0xc5, 0x34, 0x24, 0x45, 0x22, 0x8a, 0xe6,
+ 0x74, 0x06, 0x16, 0x88, 0x98, 0x56, 0xed, 0xa4, 0xce, 0x82, 0xfb, 0x7f,
+ 0x1c, 0x15, 0xd1, 0x95, 0x19, 0x53, 0xf5, 0x50, 0x9a, 0xe7, 0x54, 0x62,
+ 0x4a, 0xd9, 0xf1, 0x59, 0xdd, 0x5e, 0x19, 0x08, 0xda, 0x3c, 0x97, 0xd2,
+ 0xa6, 0x69, 0x45, 0xb8, 0xa8, 0x74, 0x66, 0x34, 0xdc, 0x70, 0xb7, 0xf3,
+ 0x17, 0x18, 0xc4, 0xab,
+};
+static const struct drbg_kat_pr_true kat3915_t = {
+ 14, kat3915_entropyin, kat3915_nonce, kat3915_persstr,
+ kat3915_entropyinpr1, kat3915_addinpr1, kat3915_entropyinpr2,
+ kat3915_addinpr2, kat3915_retbits
+};
+static const struct drbg_kat kat3915 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3915_t
+};
+
+static const unsigned char kat3916_entropyin[] = {
+ 0xd7, 0x2b, 0xc2, 0x8b, 0xa4, 0x77, 0xf0, 0xcd, 0x47, 0xaf, 0x99, 0x31,
+ 0x72, 0x43, 0xb2, 0x30, 0x40, 0xd6, 0x3f, 0x27, 0x68, 0x49, 0x8e, 0xab,
+ 0x56, 0x91, 0x7b, 0xeb, 0x32, 0x56, 0x6c, 0x24, 0x79, 0x46, 0x8d, 0xb3,
+ 0xa9, 0x7c, 0x78, 0x46,
+};
+static const unsigned char kat3916_nonce[] = {0};
+static const unsigned char kat3916_persstr[] = {0};
+static const unsigned char kat3916_entropyinpr1[] = {
+ 0x6d, 0xf6, 0x45, 0x31, 0x00, 0x80, 0x81, 0xac, 0xdf, 0x65, 0x9f, 0x53,
+ 0x70, 0x64, 0xbe, 0x32, 0xb9, 0x65, 0x4b, 0x85, 0xe1, 0xfc, 0xad, 0x8b,
+ 0x10, 0x8c, 0x1f, 0xbb, 0x4b, 0x57, 0xb3, 0x42, 0x43, 0x31, 0x00, 0xb4,
+ 0x98, 0x14, 0x7c, 0x5b,
+};
+static const unsigned char kat3916_addinpr1[] = {
+ 0x1e, 0x9b, 0x1d, 0x0a, 0xff, 0xf8, 0x3a, 0x84, 0xe1, 0xca, 0x21, 0x8b,
+ 0x44, 0x65, 0xac, 0xe4, 0x65, 0x5c, 0x0f, 0x1b, 0x8a, 0x70, 0x29, 0x89,
+ 0xf2, 0xb6, 0x28, 0xb2, 0x58, 0x15, 0xb8, 0x38, 0xab, 0x88, 0xfc, 0x64,
+ 0x32, 0x53, 0xa7, 0xaa,
+};
+static const unsigned char kat3916_entropyinpr2[] = {
+ 0x50, 0xf1, 0x67, 0x83, 0x6b, 0xe0, 0x79, 0x90, 0xb9, 0xb1, 0x63, 0x22,
+ 0x37, 0xbf, 0xae, 0x53, 0xfe, 0xba, 0x17, 0x8b, 0x67, 0x89, 0xc5, 0x69,
+ 0x3e, 0x8a, 0xf1, 0xbe, 0xeb, 0xb7, 0xe3, 0xeb, 0x2d, 0x50, 0x01, 0xf9,
+ 0x6d, 0xcb, 0x34, 0x62,
+};
+static const unsigned char kat3916_addinpr2[] = {
+ 0xce, 0x8b, 0x0b, 0x49, 0x99, 0x2e, 0x7d, 0x4e, 0x11, 0x46, 0x5e, 0x3b,
+ 0xd7, 0x86, 0x20, 0x33, 0x77, 0xc1, 0x10, 0xa6, 0x6f, 0x69, 0xa0, 0x0b,
+ 0x9d, 0xc2, 0xbe, 0xe7, 0x8a, 0x5c, 0x30, 0x88, 0x42, 0x67, 0xc1, 0x6a,
+ 0x64, 0x58, 0x18, 0xe9,
+};
+static const unsigned char kat3916_retbits[] = {
+ 0x8c, 0xf0, 0x5e, 0x17, 0x63, 0x2b, 0xfa, 0x4c, 0xc4, 0xf9, 0xe8, 0xf0,
+ 0x45, 0xa2, 0xc0, 0xe9, 0xdf, 0x5c, 0xe0, 0xc4, 0x31, 0x3f, 0xd4, 0x60,
+ 0xcd, 0x8e, 0xf4, 0x0e, 0xf3, 0x30, 0xed, 0x04, 0xd5, 0x16, 0x2c, 0x77,
+ 0x2d, 0xb5, 0x2f, 0xfe, 0x47, 0xf9, 0xdd, 0x17, 0xd3, 0x77, 0xe3, 0x4f,
+ 0xd6, 0xb0, 0xd6, 0xed, 0x82, 0xca, 0xcd, 0xe6, 0x02, 0xf9, 0x01, 0x74,
+ 0xe3, 0x3b, 0x5b, 0xaf,
+};
+static const struct drbg_kat_pr_true kat3916_t = {
+ 0, kat3916_entropyin, kat3916_nonce, kat3916_persstr,
+ kat3916_entropyinpr1, kat3916_addinpr1, kat3916_entropyinpr2,
+ kat3916_addinpr2, kat3916_retbits
+};
+static const struct drbg_kat kat3916 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3916_t
+};
+
+static const unsigned char kat3917_entropyin[] = {
+ 0x01, 0x4a, 0x6e, 0xa3, 0x9a, 0xb2, 0xf2, 0xce, 0x9e, 0xdf, 0x44, 0x66,
+ 0xe6, 0x98, 0x12, 0x27, 0x22, 0x69, 0x4d, 0x81, 0xbb, 0x00, 0x72, 0x7c,
+ 0x30, 0xf7, 0x0d, 0xec, 0x2a, 0x72, 0x32, 0x9c, 0xa1, 0xe6, 0xf0, 0xc3,
+ 0x91, 0x84, 0x65, 0xac,
+};
+static const unsigned char kat3917_nonce[] = {0};
+static const unsigned char kat3917_persstr[] = {0};
+static const unsigned char kat3917_entropyinpr1[] = {
+ 0x0c, 0x45, 0x41, 0xd9, 0x84, 0xc2, 0xdb, 0xbf, 0xb1, 0x54, 0xb3, 0x73,
+ 0x45, 0x51, 0xe9, 0xfa, 0x16, 0x9e, 0xcc, 0xa2, 0xe5, 0xec, 0x0b, 0xea,
+ 0x08, 0x65, 0x45, 0x32, 0xa8, 0x11, 0xaa, 0xf2, 0x25, 0xd8, 0x57, 0x36,
+ 0xe7, 0xe8, 0x13, 0x6c,
+};
+static const unsigned char kat3917_addinpr1[] = {
+ 0x9c, 0xc8, 0xb7, 0x74, 0xa9, 0x8d, 0x91, 0x61, 0x19, 0x5f, 0x77, 0x23,
+ 0xdd, 0xc3, 0x8c, 0x8a, 0xd7, 0x29, 0xd4, 0x8b, 0x6b, 0x9f, 0xa7, 0x12,
+ 0x6f, 0xde, 0x6e, 0x18, 0x25, 0xe3, 0x74, 0x72, 0x51, 0x22, 0x53, 0x0d,
+ 0xdd, 0xe2, 0x4c, 0x08,
+};
+static const unsigned char kat3917_entropyinpr2[] = {
+ 0xf8, 0x85, 0x6e, 0x30, 0x6c, 0x9b, 0x65, 0x12, 0x86, 0x64, 0x7c, 0xe3,
+ 0xc0, 0xd3, 0x43, 0x11, 0xe2, 0x03, 0xbf, 0x46, 0x53, 0xa7, 0xc2, 0xf0,
+ 0xe1, 0x25, 0xb2, 0xb7, 0x7c, 0xb7, 0x8c, 0xdc, 0xad, 0x1f, 0x78, 0xbc,
+ 0xbc, 0x24, 0x66, 0x14,
+};
+static const unsigned char kat3917_addinpr2[] = {
+ 0x86, 0x46, 0xa7, 0x2d, 0xc3, 0x16, 0x6c, 0xd4, 0x30, 0xdf, 0xe6, 0x42,
+ 0xfa, 0x88, 0x67, 0xb5, 0x2d, 0x0a, 0xc9, 0xee, 0x9b, 0xfb, 0x38, 0x8e,
+ 0xb6, 0x23, 0xbf, 0x2b, 0x64, 0xcb, 0x46, 0x23, 0xb5, 0x4f, 0x51, 0x0b,
+ 0x0e, 0xff, 0x31, 0xee,
+};
+static const unsigned char kat3917_retbits[] = {
+ 0x81, 0xb6, 0xcd, 0x83, 0xde, 0x16, 0xad, 0x69, 0xb0, 0xa9, 0x18, 0xc5,
+ 0x92, 0x26, 0x8c, 0x5f, 0xa6, 0x18, 0x72, 0xf4, 0x82, 0x37, 0x52, 0x7a,
+ 0x99, 0x79, 0xcc, 0x56, 0x23, 0xac, 0x0e, 0x9a, 0x9e, 0xdc, 0x00, 0xa7,
+ 0x73, 0xa2, 0x8a, 0x6b, 0xb1, 0x92, 0x0b, 0x84, 0x25, 0xdd, 0x6c, 0x4f,
+ 0x41, 0x2c, 0xb1, 0x2e, 0xe7, 0xa6, 0x0a, 0x59, 0x94, 0x38, 0x73, 0xfa,
+ 0x64, 0x06, 0x00, 0x27,
+};
+static const struct drbg_kat_pr_true kat3917_t = {
+ 1, kat3917_entropyin, kat3917_nonce, kat3917_persstr,
+ kat3917_entropyinpr1, kat3917_addinpr1, kat3917_entropyinpr2,
+ kat3917_addinpr2, kat3917_retbits
+};
+static const struct drbg_kat kat3917 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3917_t
+};
+
+static const unsigned char kat3918_entropyin[] = {
+ 0x1b, 0xac, 0x87, 0xbf, 0x6f, 0xaa, 0xed, 0x98, 0x2b, 0xc1, 0x62, 0xda,
+ 0xe0, 0xf6, 0x0a, 0xb8, 0x9c, 0xc4, 0x62, 0xe2, 0x02, 0xa1, 0x5d, 0x28,
+ 0xc0, 0x3a, 0xa7, 0xf5, 0x4b, 0x46, 0x2c, 0xc0, 0x7f, 0x99, 0x06, 0xb0,
+ 0x94, 0xd6, 0x41, 0x90,
+};
+static const unsigned char kat3918_nonce[] = {0};
+static const unsigned char kat3918_persstr[] = {0};
+static const unsigned char kat3918_entropyinpr1[] = {
+ 0xdc, 0x7b, 0x93, 0xb5, 0x2e, 0x4e, 0x7d, 0xc5, 0xc8, 0xa1, 0xb5, 0x15,
+ 0xec, 0xb8, 0xed, 0x1b, 0x83, 0xd3, 0x0b, 0x88, 0xd5, 0xd9, 0x7c, 0x18,
+ 0xf8, 0xfc, 0x99, 0x93, 0xed, 0x6a, 0x12, 0xe0, 0x11, 0x36, 0xf5, 0x85,
+ 0xe6, 0x3f, 0xfc, 0xba,
+};
+static const unsigned char kat3918_addinpr1[] = {
+ 0x3a, 0x05, 0xe6, 0xf8, 0xb5, 0xca, 0xa4, 0x71, 0x9d, 0xd6, 0x87, 0xb9,
+ 0xfd, 0xca, 0x22, 0xfd, 0x52, 0x7b, 0x78, 0xcd, 0xbb, 0x88, 0xcc, 0x57,
+ 0x55, 0x41, 0x5b, 0x27, 0xdd, 0xce, 0xc1, 0xab, 0xff, 0x8d, 0xf2, 0xab,
+ 0x8f, 0xde, 0x92, 0xff,
+};
+static const unsigned char kat3918_entropyinpr2[] = {
+ 0x43, 0x39, 0xb9, 0xe4, 0x9d, 0x92, 0xe5, 0x6a, 0x96, 0xb1, 0x0c, 0xbc,
+ 0x27, 0x1b, 0xea, 0xd5, 0xfc, 0x9d, 0x4e, 0xb1, 0xaf, 0xc7, 0x65, 0xbb,
+ 0x29, 0x78, 0xda, 0x3e, 0x8f, 0x05, 0x06, 0x60, 0xab, 0x0b, 0x3b, 0x3f,
+ 0xb6, 0x8b, 0xb3, 0xf3,
+};
+static const unsigned char kat3918_addinpr2[] = {
+ 0x66, 0x27, 0x65, 0x17, 0x05, 0x37, 0x0c, 0x1b, 0xc8, 0xec, 0x97, 0xa2,
+ 0xfc, 0x22, 0xae, 0x61, 0xf2, 0x0a, 0x6f, 0x12, 0xac, 0x0b, 0x9a, 0x3f,
+ 0xc0, 0x19, 0x85, 0x20, 0x2b, 0x03, 0x60, 0x18, 0xf2, 0xb8, 0x15, 0x73,
+ 0x10, 0xf5, 0xe7, 0xde,
+};
+static const unsigned char kat3918_retbits[] = {
+ 0xdb, 0x7c, 0x2b, 0x21, 0x00, 0x9d, 0x01, 0x2a, 0x98, 0x55, 0xc4, 0xc7,
+ 0xe4, 0x55, 0x7e, 0x47, 0x49, 0x51, 0x85, 0x3f, 0x99, 0x7a, 0x76, 0xef,
+ 0x20, 0x1b, 0xfd, 0xed, 0x6d, 0xa9, 0xc7, 0xf1, 0xc2, 0x28, 0xbd, 0x85,
+ 0x0f, 0x2b, 0xfb, 0xbe, 0xf4, 0x70, 0xf1, 0x4e, 0x39, 0x37, 0x7e, 0x2d,
+ 0x31, 0x33, 0x00, 0x8c, 0x86, 0xf7, 0xa5, 0x1a, 0x91, 0xfd, 0xfb, 0x0b,
+ 0xb8, 0xea, 0x9b, 0xf1,
+};
+static const struct drbg_kat_pr_true kat3918_t = {
+ 2, kat3918_entropyin, kat3918_nonce, kat3918_persstr,
+ kat3918_entropyinpr1, kat3918_addinpr1, kat3918_entropyinpr2,
+ kat3918_addinpr2, kat3918_retbits
+};
+static const struct drbg_kat kat3918 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3918_t
+};
+
+static const unsigned char kat3919_entropyin[] = {
+ 0x9f, 0x9b, 0x52, 0xf8, 0xd2, 0x22, 0xfe, 0x83, 0x45, 0x09, 0x58, 0xa7,
+ 0x3a, 0xc2, 0x57, 0x9f, 0x83, 0x04, 0x09, 0x34, 0x6e, 0xdf, 0xac, 0x37,
+ 0x33, 0xc6, 0x57, 0x15, 0xff, 0x6d, 0xe3, 0x18, 0xdf, 0x83, 0xf0, 0x4b,
+ 0x97, 0x27, 0x89, 0x06,
+};
+static const unsigned char kat3919_nonce[] = {0};
+static const unsigned char kat3919_persstr[] = {0};
+static const unsigned char kat3919_entropyinpr1[] = {
+ 0x33, 0x9c, 0x90, 0x09, 0x90, 0xe3, 0xa0, 0x91, 0xb0, 0x4a, 0x8f, 0xf7,
+ 0xdd, 0x49, 0x8c, 0xfa, 0x2a, 0x45, 0xf7, 0x1c, 0x50, 0x0c, 0x84, 0xf2,
+ 0x03, 0xfe, 0x59, 0x30, 0x10, 0x01, 0x4a, 0xa4, 0x78, 0x63, 0x2b, 0xe2,
+ 0xf1, 0xa9, 0x76, 0x6c,
+};
+static const unsigned char kat3919_addinpr1[] = {
+ 0x42, 0x70, 0x46, 0x32, 0x14, 0x7b, 0xc6, 0xc6, 0x58, 0x6b, 0x4b, 0xbd,
+ 0xd6, 0xfb, 0x2b, 0x9c, 0x47, 0x81, 0x4f, 0x85, 0x75, 0xb4, 0xf2, 0x37,
+ 0x46, 0xa1, 0x62, 0x65, 0x35, 0x1a, 0xf8, 0x13, 0x34, 0x3b, 0x78, 0x7e,
+ 0xa1, 0xbb, 0xdd, 0xfc,
+};
+static const unsigned char kat3919_entropyinpr2[] = {
+ 0xc8, 0xc5, 0xb3, 0x5f, 0x64, 0x17, 0xd4, 0x15, 0x2b, 0x46, 0x65, 0x74,
+ 0xb3, 0xb9, 0x27, 0xc0, 0xf3, 0x38, 0x50, 0xe3, 0x46, 0xaf, 0x02, 0xe3,
+ 0x8d, 0x4b, 0x4f, 0x3b, 0x08, 0xa8, 0x29, 0xce, 0xbb, 0x1f, 0x8c, 0xb7,
+ 0xec, 0x82, 0x47, 0x39,
+};
+static const unsigned char kat3919_addinpr2[] = {
+ 0x28, 0x53, 0x62, 0x91, 0x91, 0x82, 0x2c, 0xc6, 0x72, 0x25, 0x92, 0x31,
+ 0x0a, 0x34, 0x23, 0x64, 0xdb, 0xe3, 0xc5, 0xde, 0x87, 0x84, 0xe7, 0xe7,
+ 0x1c, 0xd5, 0x7d, 0xa8, 0x21, 0x0e, 0x8e, 0x95, 0x7a, 0x2c, 0xad, 0x7b,
+ 0x0b, 0x14, 0x64, 0xff,
+};
+static const unsigned char kat3919_retbits[] = {
+ 0x86, 0xfc, 0xb4, 0xf9, 0xa8, 0xa9, 0xcb, 0x91, 0x81, 0x14, 0xdd, 0x5d,
+ 0x9b, 0x63, 0x98, 0xc9, 0x59, 0x2a, 0x9f, 0x82, 0x8a, 0xe3, 0x05, 0xe1,
+ 0x53, 0x4e, 0xb9, 0x94, 0xbc, 0x03, 0xca, 0x73, 0x52, 0x65, 0x5d, 0x57,
+ 0x73, 0x1f, 0x0d, 0x93, 0x4d, 0xeb, 0x9b, 0xbc, 0x82, 0xc6, 0x37, 0x96,
+ 0x60, 0x2c, 0xc8, 0x7c, 0x90, 0xfb, 0xf0, 0xf1, 0x2a, 0xe0, 0x75, 0x30,
+ 0xa0, 0x03, 0x1c, 0xca,
+};
+static const struct drbg_kat_pr_true kat3919_t = {
+ 3, kat3919_entropyin, kat3919_nonce, kat3919_persstr,
+ kat3919_entropyinpr1, kat3919_addinpr1, kat3919_entropyinpr2,
+ kat3919_addinpr2, kat3919_retbits
+};
+static const struct drbg_kat kat3919 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3919_t
+};
+
+static const unsigned char kat3920_entropyin[] = {
+ 0x7d, 0xe7, 0x58, 0x25, 0x9f, 0x0e, 0xde, 0x3e, 0xef, 0x9c, 0xd4, 0x9e,
+ 0x48, 0x02, 0xca, 0xcf, 0xb6, 0xa0, 0x07, 0xd0, 0x19, 0xa0, 0x7e, 0x8a,
+ 0x12, 0x65, 0x98, 0xc4, 0xd4, 0x06, 0xde, 0xab, 0x8c, 0x77, 0xbb, 0xbc,
+ 0xed, 0x0c, 0x50, 0xf0,
+};
+static const unsigned char kat3920_nonce[] = {0};
+static const unsigned char kat3920_persstr[] = {0};
+static const unsigned char kat3920_entropyinpr1[] = {
+ 0xbc, 0x4f, 0xad, 0xba, 0x71, 0x19, 0x91, 0x4f, 0xf2, 0x67, 0xc7, 0x36,
+ 0x6e, 0x2d, 0xb8, 0xc9, 0xdf, 0x3f, 0xef, 0xd1, 0xcb, 0xde, 0x10, 0x1b,
+ 0x1d, 0xd5, 0x12, 0x28, 0x54, 0xba, 0xc1, 0x49, 0xa8, 0x09, 0x0b, 0x76,
+ 0x7b, 0x20, 0x65, 0x07,
+};
+static const unsigned char kat3920_addinpr1[] = {
+ 0xd0, 0x64, 0x76, 0xf3, 0x82, 0x1a, 0x3b, 0x90, 0x53, 0x4d, 0xfe, 0x0b,
+ 0x54, 0xd1, 0x88, 0xa7, 0x9d, 0xd1, 0x49, 0x89, 0x24, 0x4f, 0xf9, 0x70,
+ 0xbb, 0x22, 0x4a, 0x2a, 0x51, 0x11, 0xc5, 0x57, 0xc7, 0x3e, 0xf9, 0xaf,
+ 0xc5, 0x0c, 0x22, 0x3a,
+};
+static const unsigned char kat3920_entropyinpr2[] = {
+ 0xae, 0x34, 0x4d, 0x13, 0xe0, 0x57, 0x0d, 0x89, 0x99, 0xb8, 0x46, 0xe2,
+ 0xd2, 0xf4, 0x50, 0xa7, 0x7e, 0xd4, 0x5b, 0x68, 0xba, 0x43, 0x8a, 0x51,
+ 0xbe, 0x48, 0x43, 0xdd, 0x17, 0x6f, 0xd8, 0xeb, 0xed, 0x4c, 0x09, 0x09,
+ 0x9c, 0xb4, 0x0a, 0x40,
+};
+static const unsigned char kat3920_addinpr2[] = {
+ 0x0b, 0xef, 0x4e, 0xe5, 0x68, 0xc0, 0x37, 0xb1, 0xfc, 0xa6, 0x55, 0x9b,
+ 0x26, 0x63, 0xf0, 0xb5, 0x2d, 0x06, 0xa5, 0xb0, 0xb1, 0x2c, 0x5d, 0x4f,
+ 0x0f, 0x93, 0x75, 0x4b, 0xd3, 0x21, 0xbe, 0x38, 0xdc, 0xc2, 0x19, 0x27,
+ 0x4b, 0xb0, 0xbf, 0x1e,
+};
+static const unsigned char kat3920_retbits[] = {
+ 0xf5, 0x5b, 0x2c, 0xbe, 0xec, 0xb9, 0xde, 0x59, 0x1d, 0x8b, 0x9a, 0xc5,
+ 0xce, 0xa5, 0xfe, 0xc3, 0x9c, 0xd5, 0xa2, 0x96, 0xd4, 0x10, 0x03, 0x9a,
+ 0x40, 0xa6, 0x5a, 0x94, 0xc3, 0xe0, 0x0f, 0xaa, 0xdd, 0x5b, 0x91, 0xfc,
+ 0x3e, 0x61, 0xe9, 0xca, 0xea, 0xa4, 0xa9, 0x94, 0xd3, 0x10, 0xd1, 0xb4,
+ 0x63, 0xee, 0x7a, 0x4c, 0x04, 0x48, 0x69, 0x5f, 0x08, 0x72, 0x7a, 0x3a,
+ 0x86, 0x59, 0x09, 0xcb,
+};
+static const struct drbg_kat_pr_true kat3920_t = {
+ 4, kat3920_entropyin, kat3920_nonce, kat3920_persstr,
+ kat3920_entropyinpr1, kat3920_addinpr1, kat3920_entropyinpr2,
+ kat3920_addinpr2, kat3920_retbits
+};
+static const struct drbg_kat kat3920 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3920_t
+};
+
+static const unsigned char kat3921_entropyin[] = {
+ 0xd7, 0xfc, 0x99, 0x9d, 0xe0, 0x4d, 0x4e, 0x7c, 0xab, 0x03, 0xae, 0x5a,
+ 0xeb, 0x4a, 0x7c, 0x96, 0x35, 0x8b, 0x6b, 0x0b, 0x98, 0x3f, 0x2a, 0xac,
+ 0xd7, 0xf6, 0x56, 0x0e, 0x67, 0x5d, 0x4c, 0x37, 0xd8, 0x59, 0xce, 0x4d,
+ 0xc7, 0xea, 0x87, 0x90,
+};
+static const unsigned char kat3921_nonce[] = {0};
+static const unsigned char kat3921_persstr[] = {0};
+static const unsigned char kat3921_entropyinpr1[] = {
+ 0xe3, 0xd6, 0xfd, 0x7d, 0x45, 0x7a, 0xce, 0x95, 0xa3, 0xc2, 0x5a, 0x35,
+ 0x6b, 0xa0, 0xb4, 0xfd, 0xd4, 0xd8, 0xc4, 0xb8, 0x70, 0xb9, 0xe1, 0xb6,
+ 0x5b, 0x04, 0xfb, 0x43, 0x27, 0xbb, 0xc2, 0x89, 0xeb, 0x2d, 0xda, 0x63,
+ 0x75, 0x1e, 0x5e, 0x95,
+};
+static const unsigned char kat3921_addinpr1[] = {
+ 0xc7, 0x99, 0x8d, 0xdd, 0x0c, 0x4c, 0x2b, 0xab, 0xc0, 0x83, 0x61, 0x5a,
+ 0xb8, 0xfb, 0x9a, 0x8f, 0x97, 0x4d, 0xc6, 0x9e, 0xad, 0x4e, 0x5c, 0xb9,
+ 0x76, 0xee, 0x5d, 0x42, 0x66, 0x2f, 0x6a, 0xf4, 0x4f, 0xd5, 0xe4, 0xce,
+ 0x07, 0xab, 0xa8, 0x81,
+};
+static const unsigned char kat3921_entropyinpr2[] = {
+ 0xff, 0xec, 0xdc, 0x20, 0x56, 0xe6, 0x36, 0xb9, 0xcc, 0x00, 0x86, 0xc4,
+ 0xf3, 0xb0, 0x2a, 0x90, 0xa5, 0xb8, 0x66, 0xc0, 0x49, 0xa4, 0x66, 0xd6,
+ 0x17, 0xfc, 0xea, 0xf3, 0x6f, 0x3a, 0xc7, 0x83, 0x65, 0x22, 0x14, 0x4e,
+ 0x9f, 0xb6, 0xd7, 0x10,
+};
+static const unsigned char kat3921_addinpr2[] = {
+ 0x5a, 0x46, 0xa0, 0x0a, 0x2e, 0xf1, 0xba, 0x40, 0xa2, 0x4a, 0x71, 0x8b,
+ 0xf4, 0x1a, 0xc6, 0xbe, 0x26, 0xc7, 0x21, 0x16, 0x60, 0x9f, 0x70, 0x75,
+ 0x82, 0x5a, 0xb4, 0xfd, 0xbe, 0x43, 0x84, 0x24, 0x62, 0xed, 0xec, 0x3f,
+ 0xe7, 0x27, 0x07, 0x5d,
+};
+static const unsigned char kat3921_retbits[] = {
+ 0x30, 0xd3, 0xb6, 0x0b, 0xec, 0x4b, 0x18, 0xec, 0x4e, 0x93, 0xbb, 0x09,
+ 0x6e, 0xb0, 0xb2, 0x00, 0xae, 0x4f, 0xb5, 0xe4, 0x61, 0x07, 0xb6, 0x33,
+ 0xa2, 0xcb, 0xc0, 0xc4, 0xfe, 0xd0, 0x6f, 0xec, 0x9c, 0x75, 0xe3, 0x7d,
+ 0x55, 0x3c, 0x4c, 0xe1, 0xf6, 0x3a, 0xad, 0x58, 0x19, 0xd8, 0xf3, 0x8b,
+ 0x43, 0xd5, 0x44, 0x59, 0x17, 0xf4, 0x20, 0x77, 0x33, 0xb2, 0xe2, 0xdf,
+ 0xc0, 0xf0, 0xd3, 0x51,
+};
+static const struct drbg_kat_pr_true kat3921_t = {
+ 5, kat3921_entropyin, kat3921_nonce, kat3921_persstr,
+ kat3921_entropyinpr1, kat3921_addinpr1, kat3921_entropyinpr2,
+ kat3921_addinpr2, kat3921_retbits
+};
+static const struct drbg_kat kat3921 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3921_t
+};
+
+static const unsigned char kat3922_entropyin[] = {
+ 0x54, 0xca, 0xfb, 0x5d, 0x51, 0x6e, 0x54, 0xa4, 0x81, 0xa4, 0xeb, 0xf5,
+ 0xe8, 0x1b, 0x89, 0x14, 0xb8, 0x21, 0xf2, 0x3b, 0x12, 0x25, 0x32, 0xea,
+ 0x14, 0x0c, 0x37, 0x07, 0x5a, 0x43, 0x73, 0xbc, 0x1a, 0x5c, 0x32, 0x42,
+ 0x09, 0x26, 0x6a, 0x1d,
+};
+static const unsigned char kat3922_nonce[] = {0};
+static const unsigned char kat3922_persstr[] = {0};
+static const unsigned char kat3922_entropyinpr1[] = {
+ 0x7a, 0x3d, 0x33, 0x86, 0x08, 0xca, 0xc0, 0x03, 0xc1, 0x6e, 0x28, 0xcd,
+ 0x77, 0x9b, 0x12, 0x46, 0x59, 0xfd, 0xdd, 0x44, 0x5d, 0xaa, 0xc0, 0xc9,
+ 0xb2, 0x6d, 0x32, 0x98, 0x57, 0x3a, 0xb5, 0x05, 0x68, 0x97, 0x9c, 0xa0,
+ 0x34, 0xb7, 0x7b, 0x45,
+};
+static const unsigned char kat3922_addinpr1[] = {
+ 0x2b, 0x4b, 0x5d, 0x18, 0xf0, 0x56, 0x6e, 0xd8, 0x96, 0xe1, 0x3f, 0x2b,
+ 0xe0, 0xa5, 0x4c, 0xb6, 0x8d, 0x44, 0x52, 0xe4, 0x3f, 0x36, 0x18, 0xa8,
+ 0x7e, 0x04, 0xb7, 0xc0, 0x7f, 0x0a, 0xb6, 0x25, 0xe3, 0x31, 0xde, 0xe5,
+ 0xd4, 0xd2, 0x93, 0x9c,
+};
+static const unsigned char kat3922_entropyinpr2[] = {
+ 0xcd, 0x24, 0xf9, 0xab, 0x7a, 0xb5, 0x26, 0x3c, 0xf7, 0xab, 0x3a, 0xbb,
+ 0x6f, 0xdf, 0x21, 0xb3, 0x0d, 0x04, 0x97, 0x9b, 0x5d, 0x90, 0x86, 0x16,
+ 0xe4, 0xa8, 0xf6, 0x53, 0xcf, 0x07, 0x01, 0x26, 0xdd, 0xc3, 0x12, 0x9e,
+ 0xb9, 0xf7, 0x25, 0xf6,
+};
+static const unsigned char kat3922_addinpr2[] = {
+ 0x0c, 0xec, 0x7d, 0xed, 0x49, 0x33, 0x01, 0x92, 0x9c, 0xb2, 0x27, 0x40,
+ 0x46, 0x34, 0x7c, 0xc9, 0x90, 0x31, 0x4d, 0xeb, 0xcc, 0x42, 0x3b, 0xc3,
+ 0x20, 0xc6, 0xd5, 0x40, 0x07, 0x9c, 0x6a, 0x0a, 0x9b, 0xd0, 0x34, 0x09,
+ 0x34, 0xcc, 0x04, 0x2d,
+};
+static const unsigned char kat3922_retbits[] = {
+ 0xd3, 0x57, 0x63, 0xaf, 0x07, 0xa4, 0xf2, 0x44, 0x17, 0x52, 0x5e, 0x9d,
+ 0xdc, 0xa6, 0x45, 0x06, 0xf5, 0x59, 0x05, 0x90, 0x0c, 0x75, 0xb8, 0xdd,
+ 0x83, 0xbc, 0xca, 0x6a, 0xa4, 0x41, 0xc1, 0x7a, 0xe1, 0x5d, 0x19, 0x2a,
+ 0x2f, 0xca, 0x46, 0x64, 0xba, 0x53, 0x0c, 0x8e, 0x38, 0x6f, 0x9b, 0x15,
+ 0x64, 0x80, 0xe1, 0x75, 0x36, 0xcc, 0x4f, 0x4e, 0x91, 0x0d, 0x57, 0x90,
+ 0x06, 0x2c, 0x7c, 0x02,
+};
+static const struct drbg_kat_pr_true kat3922_t = {
+ 6, kat3922_entropyin, kat3922_nonce, kat3922_persstr,
+ kat3922_entropyinpr1, kat3922_addinpr1, kat3922_entropyinpr2,
+ kat3922_addinpr2, kat3922_retbits
+};
+static const struct drbg_kat kat3922 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3922_t
+};
+
+static const unsigned char kat3923_entropyin[] = {
+ 0xb6, 0xbf, 0x46, 0xcb, 0xbe, 0x2b, 0x70, 0x66, 0x3a, 0x9d, 0xff, 0x11,
+ 0x7e, 0xb5, 0xa6, 0x1c, 0xeb, 0x03, 0x43, 0x3c, 0x48, 0x69, 0xbe, 0xbb,
+ 0xe3, 0xc5, 0x9c, 0xba, 0xc0, 0x3c, 0x12, 0x8f, 0x5b, 0x9d, 0x4c, 0x33,
+ 0xdb, 0x79, 0xad, 0x75,
+};
+static const unsigned char kat3923_nonce[] = {0};
+static const unsigned char kat3923_persstr[] = {0};
+static const unsigned char kat3923_entropyinpr1[] = {
+ 0x96, 0xc7, 0x54, 0xf5, 0x45, 0x46, 0xdb, 0x07, 0x8b, 0x28, 0xe8, 0xfd,
+ 0x83, 0xda, 0x4c, 0xa9, 0x29, 0xb7, 0x5e, 0xf7, 0xb6, 0xd5, 0xf8, 0xea,
+ 0xc9, 0x5a, 0x95, 0xde, 0x22, 0x82, 0x9f, 0x8c, 0xa0, 0x16, 0x7b, 0xdf,
+ 0xbb, 0x59, 0xa8, 0xa6,
+};
+static const unsigned char kat3923_addinpr1[] = {
+ 0xcb, 0x4f, 0x5f, 0x7f, 0xa3, 0xf6, 0xa6, 0x4c, 0x2c, 0x00, 0xc8, 0x44,
+ 0xa4, 0x9b, 0xfb, 0xfb, 0x54, 0x76, 0xa1, 0x12, 0x2d, 0xeb, 0x24, 0x2e,
+ 0xf6, 0xad, 0xd8, 0xd2, 0xc7, 0x7a, 0x10, 0xc5, 0x4e, 0xfc, 0x63, 0xee,
+ 0x8c, 0x59, 0xb4, 0xf9,
+};
+static const unsigned char kat3923_entropyinpr2[] = {
+ 0xf9, 0xce, 0x30, 0x05, 0x2c, 0xb3, 0x2f, 0xe2, 0x84, 0x02, 0x93, 0x45,
+ 0x23, 0xce, 0x2d, 0x2a, 0xeb, 0x82, 0x0f, 0x6f, 0x65, 0xb6, 0xe2, 0x2f,
+ 0xbc, 0x75, 0xf5, 0x8a, 0x1e, 0xcf, 0x4b, 0x1f, 0xe3, 0x88, 0x58, 0x9d,
+ 0x31, 0x23, 0xa3, 0xc3,
+};
+static const unsigned char kat3923_addinpr2[] = {
+ 0xb6, 0xf8, 0x87, 0x0c, 0x7d, 0x5d, 0x58, 0x5a, 0x55, 0x81, 0x04, 0xe2,
+ 0x0e, 0xa6, 0x93, 0x4f, 0x70, 0x90, 0x0d, 0xad, 0x35, 0xa3, 0x0e, 0x9d,
+ 0x53, 0x0e, 0xba, 0x97, 0x4d, 0xc4, 0x15, 0x8a, 0x3b, 0x34, 0x2a, 0xd8,
+ 0xb9, 0x3a, 0x33, 0x23,
+};
+static const unsigned char kat3923_retbits[] = {
+ 0xcb, 0x0d, 0x1b, 0x96, 0xb5, 0xcc, 0x16, 0x61, 0x86, 0x66, 0xfa, 0x81,
+ 0xe0, 0x62, 0x65, 0x70, 0x76, 0xbf, 0x59, 0x0d, 0x99, 0x08, 0xf4, 0x80,
+ 0xd9, 0xe5, 0xe5, 0xb5, 0x7d, 0x5b, 0x45, 0xa6, 0x83, 0xdd, 0x11, 0x16,
+ 0xff, 0xe0, 0x34, 0x6a, 0x33, 0xb8, 0xe4, 0xb9, 0xdb, 0xa1, 0xed, 0x1c,
+ 0x4b, 0x4a, 0xd6, 0x75, 0xa7, 0xd9, 0x01, 0x82, 0xcb, 0x88, 0xe6, 0x11,
+ 0xeb, 0x52, 0x26, 0xd1,
+};
+static const struct drbg_kat_pr_true kat3923_t = {
+ 7, kat3923_entropyin, kat3923_nonce, kat3923_persstr,
+ kat3923_entropyinpr1, kat3923_addinpr1, kat3923_entropyinpr2,
+ kat3923_addinpr2, kat3923_retbits
+};
+static const struct drbg_kat kat3923 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3923_t
+};
+
+static const unsigned char kat3924_entropyin[] = {
+ 0x41, 0x3e, 0xb0, 0xc2, 0xc2, 0x05, 0xd7, 0x25, 0x66, 0xa8, 0xec, 0x67,
+ 0xc3, 0x08, 0xcb, 0x2b, 0x22, 0xda, 0x03, 0x8b, 0xc2, 0x57, 0xc1, 0x17,
+ 0x0e, 0x9e, 0xad, 0x51, 0x14, 0x5a, 0x2c, 0xfe, 0xd6, 0x07, 0xff, 0x7a,
+ 0x4c, 0x8b, 0xb3, 0x45,
+};
+static const unsigned char kat3924_nonce[] = {0};
+static const unsigned char kat3924_persstr[] = {0};
+static const unsigned char kat3924_entropyinpr1[] = {
+ 0x01, 0x64, 0xc3, 0x79, 0xde, 0x45, 0x96, 0x3a, 0xde, 0x5d, 0x8d, 0xf7,
+ 0x97, 0x3b, 0x17, 0xbf, 0x92, 0x6f, 0xd4, 0x5e, 0x71, 0x28, 0x8b, 0x2d,
+ 0xa7, 0x6a, 0xe7, 0x8a, 0x23, 0x54, 0x74, 0x31, 0x9e, 0xb0, 0xc1, 0xa1,
+ 0x3c, 0xb3, 0x4a, 0x01,
+};
+static const unsigned char kat3924_addinpr1[] = {
+ 0xfb, 0x52, 0x4a, 0xca, 0x2c, 0xfc, 0x0e, 0xa9, 0x42, 0x9e, 0x47, 0x1e,
+ 0xae, 0xfd, 0x1d, 0x89, 0xad, 0x52, 0x2b, 0x33, 0x1e, 0xa3, 0x1c, 0x7a,
+ 0x94, 0xf3, 0x20, 0xe4, 0xd2, 0x82, 0xc3, 0x7f, 0xd4, 0x9a, 0xd4, 0x10,
+ 0x34, 0xac, 0xf4, 0x1d,
+};
+static const unsigned char kat3924_entropyinpr2[] = {
+ 0xbe, 0xa1, 0x6b, 0xbc, 0x6d, 0x84, 0x16, 0xfa, 0x32, 0x08, 0x0b, 0x4a,
+ 0xde, 0x84, 0xa3, 0x56, 0xfc, 0x97, 0x8f, 0xb9, 0x46, 0x07, 0x55, 0x59,
+ 0x01, 0xef, 0x7d, 0x20, 0xb8, 0x4f, 0xe3, 0xd0, 0x51, 0x8c, 0x23, 0x55,
+ 0x13, 0xee, 0xee, 0xf4,
+};
+static const unsigned char kat3924_addinpr2[] = {
+ 0x44, 0x37, 0x7c, 0xd9, 0x6c, 0x92, 0xa3, 0x35, 0xd2, 0x07, 0x4e, 0x3f,
+ 0xcc, 0x3e, 0x88, 0x2a, 0xf6, 0x36, 0xb9, 0x44, 0xd1, 0x97, 0x24, 0xca,
+ 0x68, 0xde, 0x5e, 0x6e, 0x31, 0xbe, 0x21, 0xac, 0x49, 0x5e, 0x77, 0xee,
+ 0x65, 0xdd, 0x3b, 0x53,
+};
+static const unsigned char kat3924_retbits[] = {
+ 0xdd, 0x51, 0x73, 0x80, 0x52, 0xf0, 0x7f, 0xc1, 0x31, 0x7b, 0x7f, 0xaf,
+ 0x27, 0x0f, 0x86, 0xdb, 0xf5, 0x56, 0xf4, 0x28, 0xcc, 0xaf, 0x2b, 0x5c,
+ 0x87, 0x23, 0x4f, 0x19, 0x63, 0xd9, 0x33, 0xf2, 0x48, 0x51, 0x15, 0xa2,
+ 0x46, 0xbf, 0x24, 0x7a, 0x5e, 0xb0, 0x10, 0x6f, 0x00, 0x16, 0xfa, 0x1f,
+ 0x1b, 0xb1, 0x22, 0x0e, 0x3e, 0x67, 0xdc, 0x07, 0x9c, 0xf9, 0x04, 0x3e,
+ 0x2a, 0x47, 0x89, 0xe9,
+};
+static const struct drbg_kat_pr_true kat3924_t = {
+ 8, kat3924_entropyin, kat3924_nonce, kat3924_persstr,
+ kat3924_entropyinpr1, kat3924_addinpr1, kat3924_entropyinpr2,
+ kat3924_addinpr2, kat3924_retbits
+};
+static const struct drbg_kat kat3924 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3924_t
+};
+
+static const unsigned char kat3925_entropyin[] = {
+ 0xf4, 0x9c, 0x04, 0x2c, 0x04, 0x33, 0xec, 0x36, 0xae, 0x5b, 0x5e, 0x8c,
+ 0xcf, 0x35, 0xc1, 0xcd, 0x86, 0xd5, 0xc7, 0xcf, 0xad, 0x38, 0xcb, 0xec,
+ 0x2b, 0xdd, 0x7b, 0x89, 0x91, 0xe1, 0xa9, 0xb9, 0xcb, 0x70, 0x7c, 0x29,
+ 0xa6, 0x0f, 0xd2, 0x03,
+};
+static const unsigned char kat3925_nonce[] = {0};
+static const unsigned char kat3925_persstr[] = {0};
+static const unsigned char kat3925_entropyinpr1[] = {
+ 0x8c, 0x0f, 0x0d, 0x3d, 0x18, 0x85, 0x61, 0x2c, 0xc5, 0x83, 0x84, 0x0e,
+ 0x51, 0x33, 0xa3, 0x25, 0x3e, 0x41, 0xe6, 0x48, 0xe5, 0x94, 0xb9, 0x5e,
+ 0x39, 0xb7, 0x9e, 0xb5, 0xb9, 0x9d, 0x4f, 0x55, 0x60, 0x64, 0x6d, 0xb1,
+ 0x1e, 0xc1, 0x52, 0xab,
+};
+static const unsigned char kat3925_addinpr1[] = {
+ 0xde, 0x6d, 0x6b, 0x66, 0xcd, 0x0b, 0x4f, 0x00, 0xb4, 0xf2, 0x1f, 0x6b,
+ 0x70, 0x7c, 0xd3, 0xb1, 0x64, 0x39, 0xdc, 0x8d, 0xdb, 0xf4, 0xde, 0x16,
+ 0x90, 0x29, 0x71, 0xb3, 0x88, 0x41, 0x34, 0xe3, 0xbd, 0x53, 0xe7, 0x38,
+ 0xcf, 0x99, 0xe8, 0x50,
+};
+static const unsigned char kat3925_entropyinpr2[] = {
+ 0x0d, 0x27, 0xc7, 0x31, 0xa0, 0xdf, 0x9c, 0x3d, 0xfe, 0x3b, 0x4a, 0x05,
+ 0x00, 0x17, 0x76, 0x53, 0x22, 0x09, 0x87, 0x5a, 0x44, 0x27, 0xb8, 0x3d,
+ 0x03, 0xd5, 0xce, 0x49, 0x2f, 0x62, 0xa4, 0x25, 0xe5, 0xab, 0x34, 0x23,
+ 0x2c, 0x02, 0xd4, 0x97,
+};
+static const unsigned char kat3925_addinpr2[] = {
+ 0x6d, 0xb7, 0x52, 0xa5, 0xd5, 0x6f, 0x1f, 0xad, 0xc9, 0x58, 0xdb, 0x0a,
+ 0xc4, 0x86, 0xd7, 0xdb, 0xb1, 0x93, 0x41, 0x74, 0x9f, 0x4b, 0x0b, 0x41,
+ 0xfa, 0x5d, 0xf9, 0x29, 0x19, 0xba, 0xb9, 0x36, 0xd9, 0x3a, 0x4c, 0xbd,
+ 0xfc, 0x14, 0x3d, 0x98,
+};
+static const unsigned char kat3925_retbits[] = {
+ 0x61, 0xf7, 0xd3, 0x8c, 0xe6, 0x8f, 0x07, 0xa3, 0xc8, 0x3c, 0xf3, 0xe1,
+ 0x9b, 0xd8, 0xd2, 0x4b, 0x33, 0x3b, 0x67, 0x79, 0xeb, 0x31, 0x2e, 0x46,
+ 0x1e, 0x64, 0x86, 0x20, 0x8b, 0x6b, 0x7f, 0x79, 0x70, 0xa7, 0x48, 0x0c,
+ 0x0c, 0x19, 0xfb, 0xef, 0xf3, 0x2a, 0xe4, 0xae, 0x7d, 0xbc, 0xfa, 0xe9,
+ 0xb3, 0x6c, 0x1a, 0x33, 0xf3, 0x74, 0x08, 0xf0, 0xc5, 0xa5, 0x70, 0x57,
+ 0xdd, 0xe4, 0x96, 0xd6,
+};
+static const struct drbg_kat_pr_true kat3925_t = {
+ 9, kat3925_entropyin, kat3925_nonce, kat3925_persstr,
+ kat3925_entropyinpr1, kat3925_addinpr1, kat3925_entropyinpr2,
+ kat3925_addinpr2, kat3925_retbits
+};
+static const struct drbg_kat kat3925 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3925_t
+};
+
+static const unsigned char kat3926_entropyin[] = {
+ 0xfe, 0x79, 0x49, 0x9a, 0xdd, 0xa1, 0xb1, 0x76, 0xe2, 0x75, 0xd8, 0xc3,
+ 0x17, 0x43, 0x8d, 0x70, 0xa1, 0xb6, 0x2b, 0x0b, 0xc0, 0x56, 0x1c, 0xf1,
+ 0xcb, 0x62, 0xb5, 0xe4, 0xcd, 0x99, 0x79, 0x8c, 0x32, 0xdc, 0x16, 0x1a,
+ 0x81, 0x81, 0xc7, 0x8b,
+};
+static const unsigned char kat3926_nonce[] = {0};
+static const unsigned char kat3926_persstr[] = {0};
+static const unsigned char kat3926_entropyinpr1[] = {
+ 0x47, 0xf9, 0x0e, 0x57, 0x0b, 0xd1, 0x1a, 0x35, 0xab, 0x58, 0x62, 0xf6,
+ 0x73, 0x58, 0xac, 0xd7, 0xc7, 0x98, 0xb3, 0x88, 0xe5, 0x44, 0x1a, 0xe8,
+ 0x6f, 0x90, 0xc0, 0xa7, 0xc0, 0x71, 0x48, 0xcf, 0x91, 0xdd, 0x74, 0x81,
+ 0x87, 0x07, 0x5b, 0x27,
+};
+static const unsigned char kat3926_addinpr1[] = {
+ 0xc9, 0x25, 0x0f, 0x70, 0x0a, 0x5c, 0xbc, 0xff, 0x5e, 0xdd, 0x4b, 0x0a,
+ 0x0f, 0xe4, 0x3f, 0x93, 0x02, 0x85, 0x17, 0xe4, 0xe0, 0x80, 0xe7, 0x86,
+ 0x59, 0x42, 0xd6, 0xa3, 0xfa, 0xe0, 0x06, 0x1e, 0x3d, 0x54, 0x20, 0x36,
+ 0xb3, 0x9f, 0xa6, 0x69,
+};
+static const unsigned char kat3926_entropyinpr2[] = {
+ 0xaa, 0x7a, 0xa6, 0x9b, 0xd2, 0xc3, 0xa0, 0x45, 0xa6, 0x46, 0xab, 0xe9,
+ 0xe2, 0xcb, 0xec, 0x16, 0x66, 0x86, 0xd3, 0x9e, 0xde, 0x26, 0xcc, 0xa5,
+ 0xbe, 0x38, 0x81, 0x41, 0x0d, 0x4d, 0x03, 0xc2, 0xc3, 0xdd, 0x4a, 0x8a,
+ 0x08, 0x2a, 0xb5, 0x86,
+};
+static const unsigned char kat3926_addinpr2[] = {
+ 0x90, 0x30, 0x1d, 0xdd, 0x17, 0xf7, 0xb0, 0x0a, 0x10, 0x0d, 0x41, 0x18,
+ 0x35, 0x08, 0xeb, 0x46, 0xaf, 0x45, 0xbb, 0xd4, 0xfd, 0xe8, 0x61, 0xfa,
+ 0xde, 0x4b, 0x02, 0x2c, 0x78, 0x6a, 0xdd, 0xfc, 0xd2, 0xdf, 0x94, 0xdb,
+ 0xca, 0x19, 0x5d, 0xce,
+};
+static const unsigned char kat3926_retbits[] = {
+ 0x2d, 0x38, 0x6e, 0x56, 0x2d, 0x03, 0x88, 0xfb, 0x54, 0xb0, 0xc8, 0x24,
+ 0xd6, 0x00, 0xf2, 0x1f, 0x87, 0xba, 0x6f, 0x5b, 0xeb, 0xfc, 0xbb, 0x75,
+ 0x77, 0x92, 0x51, 0x30, 0x93, 0xcc, 0x8b, 0xc0, 0xcf, 0x43, 0x1c, 0x05,
+ 0x99, 0x5b, 0x7b, 0x20, 0xbe, 0xf0, 0x2a, 0xa1, 0xd9, 0x41, 0x53, 0xeb,
+ 0x94, 0xdb, 0x8a, 0x4f, 0xfb, 0x27, 0x77, 0xa4, 0x59, 0x88, 0xc4, 0x94,
+ 0xc1, 0xd7, 0x1a, 0x8c,
+};
+static const struct drbg_kat_pr_true kat3926_t = {
+ 10, kat3926_entropyin, kat3926_nonce, kat3926_persstr,
+ kat3926_entropyinpr1, kat3926_addinpr1, kat3926_entropyinpr2,
+ kat3926_addinpr2, kat3926_retbits
+};
+static const struct drbg_kat kat3926 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3926_t
+};
+
+static const unsigned char kat3927_entropyin[] = {
+ 0x38, 0xa0, 0x3b, 0xc9, 0xce, 0xb8, 0xb6, 0xba, 0x06, 0x44, 0xc6, 0xab,
+ 0x88, 0x29, 0x4d, 0x5c, 0x63, 0xf5, 0xc5, 0x6e, 0xd0, 0x2e, 0x3c, 0x1c,
+ 0x9d, 0x69, 0x18, 0xde, 0x8a, 0xd7, 0xfd, 0xae, 0xa7, 0x0b, 0xb7, 0x3c,
+ 0x77, 0xad, 0x5d, 0xa5,
+};
+static const unsigned char kat3927_nonce[] = {0};
+static const unsigned char kat3927_persstr[] = {0};
+static const unsigned char kat3927_entropyinpr1[] = {
+ 0xc2, 0xab, 0xf2, 0x9d, 0xbb, 0x60, 0x73, 0xb2, 0x90, 0x5c, 0x3b, 0x18,
+ 0x2a, 0xb6, 0xb1, 0x14, 0x78, 0x48, 0x7d, 0x51, 0x5c, 0x87, 0x51, 0xcf,
+ 0x65, 0x6d, 0x0d, 0xd9, 0x59, 0x43, 0x30, 0x3a, 0x64, 0xb9, 0xe2, 0x58,
+ 0x38, 0x5c, 0x59, 0x72,
+};
+static const unsigned char kat3927_addinpr1[] = {
+ 0x0b, 0x77, 0xf7, 0xad, 0xbe, 0xa5, 0xdc, 0xb8, 0xa2, 0xa5, 0xb7, 0x19,
+ 0x9e, 0x3b, 0xf4, 0xa2, 0x90, 0x58, 0x03, 0xb0, 0x15, 0xf0, 0x8f, 0xbc,
+ 0x86, 0x86, 0x6c, 0x3e, 0x04, 0x3d, 0x5b, 0xc3, 0x59, 0xe4, 0x70, 0x34,
+ 0x78, 0xc9, 0xf1, 0xff,
+};
+static const unsigned char kat3927_entropyinpr2[] = {
+ 0x68, 0x32, 0x2a, 0x6a, 0x46, 0x68, 0xac, 0xb1, 0x7f, 0xb1, 0x9e, 0xe4,
+ 0xc1, 0x87, 0xdb, 0xa2, 0x10, 0x8c, 0xdb, 0x14, 0x57, 0x01, 0x46, 0x2d,
+ 0xda, 0x21, 0xdb, 0x47, 0x2a, 0x96, 0x47, 0x4c, 0x8d, 0x81, 0x33, 0x5b,
+ 0x1c, 0x02, 0x7c, 0xab,
+};
+static const unsigned char kat3927_addinpr2[] = {
+ 0xfc, 0xbf, 0x14, 0x7a, 0xee, 0xbc, 0x0e, 0xd5, 0x81, 0x38, 0xe0, 0x7b,
+ 0xdf, 0xab, 0x3c, 0x9b, 0xe6, 0x20, 0xbd, 0x72, 0x6e, 0x42, 0xa3, 0x8a,
+ 0x48, 0x8b, 0x5d, 0xb5, 0x33, 0x22, 0xb9, 0xde, 0x93, 0x2b, 0x52, 0xb5,
+ 0x15, 0x2a, 0x33, 0x8b,
+};
+static const unsigned char kat3927_retbits[] = {
+ 0xa1, 0x87, 0xe8, 0x21, 0x39, 0xd9, 0xac, 0x54, 0x10, 0xcf, 0x45, 0x8e,
+ 0x7c, 0x6b, 0x80, 0xbb, 0xb7, 0xdc, 0x12, 0x73, 0x19, 0xba, 0xdf, 0x9a,
+ 0xad, 0x37, 0x34, 0x91, 0x95, 0x1a, 0x46, 0xc7, 0x7c, 0x8d, 0x69, 0xd9,
+ 0x36, 0x89, 0x5f, 0x4e, 0xbc, 0x4a, 0xf0, 0x3b, 0x83, 0x11, 0x99, 0xa9,
+ 0x9e, 0x8f, 0xa8, 0x9e, 0xc1, 0x9b, 0xd0, 0x83, 0x88, 0xa8, 0x82, 0x72,
+ 0x95, 0x7f, 0x49, 0xb3,
+};
+static const struct drbg_kat_pr_true kat3927_t = {
+ 11, kat3927_entropyin, kat3927_nonce, kat3927_persstr,
+ kat3927_entropyinpr1, kat3927_addinpr1, kat3927_entropyinpr2,
+ kat3927_addinpr2, kat3927_retbits
+};
+static const struct drbg_kat kat3927 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3927_t
+};
+
+static const unsigned char kat3928_entropyin[] = {
+ 0xc9, 0xbc, 0x26, 0x37, 0x6a, 0x00, 0xfa, 0x43, 0x0d, 0x4b, 0xe0, 0x71,
+ 0xa8, 0xbf, 0xef, 0xfd, 0xa7, 0xc8, 0xd3, 0x2a, 0xa3, 0x50, 0x88, 0x95,
+ 0x4f, 0xb3, 0x04, 0x77, 0xff, 0xef, 0xc1, 0x2d, 0xd7, 0x5d, 0x61, 0x69,
+ 0xb9, 0x9f, 0xd6, 0xdf,
+};
+static const unsigned char kat3928_nonce[] = {0};
+static const unsigned char kat3928_persstr[] = {0};
+static const unsigned char kat3928_entropyinpr1[] = {
+ 0x54, 0xc0, 0xbb, 0xd4, 0x09, 0x96, 0xe2, 0x92, 0xb4, 0xcd, 0x5f, 0x36,
+ 0xa0, 0x4e, 0xd8, 0xbb, 0x9e, 0xe3, 0x14, 0x59, 0xaf, 0x79, 0x69, 0x60,
+ 0x31, 0x9d, 0xd3, 0x94, 0x0c, 0xf6, 0xd6, 0x8c, 0xc1, 0x87, 0x50, 0x06,
+ 0xdd, 0x63, 0x72, 0x55,
+};
+static const unsigned char kat3928_addinpr1[] = {
+ 0x33, 0x4b, 0xee, 0x95, 0xef, 0x44, 0xae, 0xc5, 0xac, 0x49, 0x47, 0xdd,
+ 0x39, 0xa1, 0x99, 0x07, 0x2a, 0x4c, 0x82, 0xcc, 0x64, 0xcf, 0xc2, 0x42,
+ 0xa9, 0xe5, 0x40, 0xb4, 0x3b, 0xc4, 0xbe, 0x88, 0xe9, 0x5f, 0xbd, 0x87,
+ 0xf7, 0x75, 0xe5, 0x20,
+};
+static const unsigned char kat3928_entropyinpr2[] = {
+ 0xf6, 0xa0, 0x98, 0xd9, 0x79, 0xba, 0x71, 0x86, 0x4f, 0xbd, 0x6c, 0x14,
+ 0x92, 0x1a, 0x1e, 0xe1, 0xc6, 0x23, 0x0a, 0x23, 0xc1, 0xef, 0xcf, 0xde,
+ 0x66, 0xa7, 0x2a, 0x97, 0x18, 0x36, 0x29, 0x4c, 0x37, 0x58, 0xb6, 0x44,
+ 0x72, 0x39, 0xab, 0x57,
+};
+static const unsigned char kat3928_addinpr2[] = {
+ 0xeb, 0x14, 0x47, 0xce, 0xeb, 0xb4, 0xd1, 0xb5, 0x71, 0x59, 0x1e, 0x69,
+ 0xf1, 0xf2, 0x15, 0x72, 0xee, 0xca, 0x07, 0x96, 0xec, 0x06, 0x9e, 0x4c,
+ 0x30, 0xf4, 0x77, 0x66, 0x2c, 0xb6, 0x61, 0x9c, 0x4f, 0x51, 0x6a, 0xbb,
+ 0x9a, 0x13, 0x34, 0x31,
+};
+static const unsigned char kat3928_retbits[] = {
+ 0xbc, 0xce, 0xa4, 0x96, 0xed, 0x48, 0xef, 0x68, 0xf3, 0xf4, 0x5b, 0xa4,
+ 0x9c, 0xd6, 0xac, 0x5c, 0x71, 0x15, 0x4d, 0x2b, 0x70, 0x9d, 0xf4, 0x29,
+ 0x67, 0x3a, 0x45, 0xc4, 0x05, 0x68, 0x8b, 0x71, 0xad, 0xf4, 0x35, 0x26,
+ 0x1a, 0xfc, 0x46, 0xd6, 0x41, 0x49, 0x76, 0x34, 0x0c, 0x7b, 0xd3, 0x2e,
+ 0xee, 0x7a, 0x4b, 0xaa, 0x4f, 0xbc, 0x4b, 0xaa, 0xe4, 0xd8, 0x07, 0xc3,
+ 0xc7, 0x45, 0x9c, 0xe4,
+};
+static const struct drbg_kat_pr_true kat3928_t = {
+ 12, kat3928_entropyin, kat3928_nonce, kat3928_persstr,
+ kat3928_entropyinpr1, kat3928_addinpr1, kat3928_entropyinpr2,
+ kat3928_addinpr2, kat3928_retbits
+};
+static const struct drbg_kat kat3928 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3928_t
+};
+
+static const unsigned char kat3929_entropyin[] = {
+ 0xfe, 0xe8, 0x31, 0x8d, 0x60, 0x4c, 0xac, 0x10, 0x53, 0x44, 0x59, 0x2f,
+ 0x41, 0x40, 0x10, 0xad, 0xe0, 0x86, 0xcd, 0xc2, 0xf0, 0xd4, 0x13, 0x45,
+ 0xa7, 0x73, 0xe7, 0xfd, 0x69, 0x27, 0xbe, 0x7e, 0x98, 0x4b, 0x7b, 0x51,
+ 0x2f, 0x93, 0xec, 0xa7,
+};
+static const unsigned char kat3929_nonce[] = {0};
+static const unsigned char kat3929_persstr[] = {0};
+static const unsigned char kat3929_entropyinpr1[] = {
+ 0xb8, 0x36, 0x24, 0x05, 0x74, 0x8b, 0x1d, 0x5a, 0xe9, 0x57, 0xbf, 0xe5,
+ 0x79, 0x4a, 0x55, 0x78, 0xdf, 0xa8, 0xf7, 0x51, 0x03, 0x69, 0xbe, 0x62,
+ 0xd6, 0xb0, 0x86, 0xe4, 0x66, 0x29, 0x1e, 0x5f, 0xa0, 0x07, 0x99, 0x90,
+ 0x21, 0x79, 0x7d, 0x5e,
+};
+static const unsigned char kat3929_addinpr1[] = {
+ 0xc5, 0xd2, 0x58, 0xa3, 0x16, 0x16, 0xe0, 0xc4, 0xf7, 0x0d, 0xa4, 0xbb,
+ 0x47, 0x20, 0x45, 0xc8, 0x6b, 0x14, 0x47, 0x6c, 0xdf, 0x0b, 0xc6, 0xf1,
+ 0x17, 0x9e, 0x23, 0x38, 0xd9, 0x03, 0x0a, 0x19, 0xff, 0xb8, 0xc4, 0x6a,
+ 0x62, 0x8f, 0xbc, 0x55,
+};
+static const unsigned char kat3929_entropyinpr2[] = {
+ 0x8a, 0xa6, 0xcd, 0xf5, 0x28, 0x98, 0xe5, 0xa0, 0xa5, 0x1e, 0xd6, 0x34,
+ 0xc3, 0xa2, 0x41, 0x08, 0x94, 0x3d, 0x8c, 0x49, 0x50, 0x77, 0xce, 0xcf,
+ 0x9e, 0xea, 0x68, 0x96, 0xdc, 0x15, 0x04, 0xd7, 0x41, 0xcb, 0x46, 0xa1,
+ 0xcb, 0x43, 0xd5, 0x40,
+};
+static const unsigned char kat3929_addinpr2[] = {
+ 0x5b, 0xb0, 0x8d, 0xdc, 0x62, 0x85, 0x03, 0x2a, 0x77, 0x48, 0x67, 0xae,
+ 0x6d, 0x58, 0x1e, 0x9a, 0x7b, 0x9a, 0xd2, 0x33, 0xef, 0x66, 0x32, 0x57,
+ 0xd8, 0x08, 0x79, 0x87, 0xa6, 0x8a, 0x71, 0x25, 0xf6, 0xbb, 0x21, 0x12,
+ 0x39, 0x4d, 0xf0, 0x8a,
+};
+static const unsigned char kat3929_retbits[] = {
+ 0x14, 0x03, 0xcf, 0x31, 0xf0, 0xe9, 0xcf, 0x5e, 0x76, 0xc3, 0x78, 0x56,
+ 0x28, 0xf1, 0x8b, 0x22, 0xac, 0xb1, 0x62, 0x91, 0x6b, 0xe5, 0x25, 0x33,
+ 0xbc, 0xa1, 0x1e, 0x27, 0x77, 0xcf, 0x4a, 0xd2, 0xa0, 0x53, 0xff, 0xd4,
+ 0x93, 0x6b, 0x79, 0x9d, 0x2e, 0x2a, 0x69, 0x36, 0x8b, 0x5e, 0x05, 0xe2,
+ 0xbb, 0x36, 0x1a, 0x6d, 0xb3, 0x10, 0xb5, 0x57, 0x99, 0xb8, 0x4f, 0x58,
+ 0xc1, 0x79, 0x14, 0xf5,
+};
+static const struct drbg_kat_pr_true kat3929_t = {
+ 13, kat3929_entropyin, kat3929_nonce, kat3929_persstr,
+ kat3929_entropyinpr1, kat3929_addinpr1, kat3929_entropyinpr2,
+ kat3929_addinpr2, kat3929_retbits
+};
+static const struct drbg_kat kat3929 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3929_t
+};
+
+static const unsigned char kat3930_entropyin[] = {
+ 0x92, 0xe9, 0x74, 0xf4, 0x64, 0xbe, 0xc1, 0xd6, 0x08, 0x65, 0x33, 0xad,
+ 0xdc, 0xbe, 0x81, 0x7d, 0x8e, 0xbe, 0xdc, 0x5e, 0x18, 0xa8, 0xbe, 0x6a,
+ 0xff, 0xd4, 0xdd, 0x15, 0x88, 0x0b, 0xb1, 0x43, 0x45, 0x2c, 0x87, 0x3a,
+ 0xf2, 0x97, 0x1c, 0x64,
+};
+static const unsigned char kat3930_nonce[] = {0};
+static const unsigned char kat3930_persstr[] = {0};
+static const unsigned char kat3930_entropyinpr1[] = {
+ 0x3b, 0x51, 0xe4, 0x4a, 0x70, 0x09, 0xa6, 0x98, 0x26, 0x45, 0x77, 0xb8,
+ 0xe9, 0x66, 0xd5, 0xd4, 0xa0, 0xfc, 0x2b, 0x11, 0x6a, 0xd4, 0x88, 0xf9,
+ 0x7b, 0x81, 0x59, 0xeb, 0x70, 0xfb, 0x58, 0xd6, 0x1c, 0x73, 0x8f, 0x5e,
+ 0x01, 0xa4, 0x34, 0xa4,
+};
+static const unsigned char kat3930_addinpr1[] = {
+ 0xd3, 0xf6, 0x48, 0x23, 0xba, 0x05, 0x9b, 0xc1, 0x56, 0x5e, 0x9c, 0x25,
+ 0x2d, 0x2d, 0x29, 0xb1, 0x69, 0x80, 0xb1, 0xd6, 0xa9, 0x82, 0xa3, 0x00,
+ 0x85, 0x8b, 0xf2, 0x10, 0xe2, 0xfe, 0xb2, 0xf0, 0x9d, 0x10, 0xa4, 0xa6,
+ 0xfe, 0x36, 0x99, 0x56,
+};
+static const unsigned char kat3930_entropyinpr2[] = {
+ 0xf6, 0xd9, 0x8f, 0x69, 0x30, 0x2d, 0xa7, 0xad, 0x42, 0xb8, 0xe5, 0x80,
+ 0xa9, 0xd7, 0x55, 0xe9, 0x29, 0xfe, 0x39, 0xfb, 0x04, 0x36, 0x14, 0x03,
+ 0x88, 0xfc, 0x71, 0x60, 0xd9, 0x4f, 0x61, 0x67, 0xc0, 0xe1, 0x50, 0x56,
+ 0x6f, 0xe5, 0x31, 0x0f,
+};
+static const unsigned char kat3930_addinpr2[] = {
+ 0x16, 0xd2, 0x62, 0x84, 0x85, 0x10, 0xe4, 0x07, 0xc7, 0x68, 0x0c, 0xfc,
+ 0xd3, 0xfc, 0xc2, 0x7b, 0x86, 0x47, 0xfc, 0xc0, 0x15, 0x54, 0x26, 0xb3,
+ 0xe7, 0xb5, 0x4b, 0xc4, 0x73, 0xec, 0x3d, 0x57, 0xf0, 0x2c, 0xc7, 0x49,
+ 0xc0, 0x20, 0xea, 0xe9,
+};
+static const unsigned char kat3930_retbits[] = {
+ 0x9c, 0x77, 0x66, 0xb3, 0xeb, 0xb2, 0x7f, 0x65, 0x53, 0x9f, 0x3d, 0xd6,
+ 0x00, 0x1a, 0xe4, 0x5c, 0x85, 0xbb, 0xa6, 0xd6, 0xc0, 0x9e, 0x60, 0x0f,
+ 0x0b, 0x9c, 0xf5, 0xe0, 0x2f, 0x30, 0xb0, 0xf8, 0x58, 0x4e, 0x69, 0x6c,
+ 0x2f, 0xee, 0x02, 0x39, 0xd5, 0xe4, 0xd5, 0xb6, 0x23, 0x70, 0x0c, 0xa9,
+ 0x8c, 0x94, 0xe7, 0xca, 0x82, 0xfb, 0xb8, 0xb4, 0x64, 0x35, 0x49, 0xf2,
+ 0x9d, 0x2d, 0xf2, 0x44,
+};
+static const struct drbg_kat_pr_true kat3930_t = {
+ 14, kat3930_entropyin, kat3930_nonce, kat3930_persstr,
+ kat3930_entropyinpr1, kat3930_addinpr1, kat3930_entropyinpr2,
+ kat3930_addinpr2, kat3930_retbits
+};
+static const struct drbg_kat kat3930 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3930_t
+};
+
+static const unsigned char kat3931_entropyin[] = {
+ 0x4e, 0xa0, 0xdc, 0xd1, 0x2d, 0x60, 0xc4, 0xfe, 0x4d, 0x22, 0xc8, 0x08,
+ 0x95, 0x2b, 0x13, 0xcd, 0x27, 0x4d, 0x97, 0x3c, 0xe2, 0xa2, 0xd8, 0xa2,
+ 0x3f, 0xf9, 0x9e, 0x8f, 0x86, 0xe3, 0xb9, 0xf7, 0x05, 0xff, 0x03, 0x58,
+ 0xc6, 0x62, 0xec, 0x21,
+};
+static const unsigned char kat3931_nonce[] = {0};
+static const unsigned char kat3931_persstr[] = {
+ 0xb9, 0xeb, 0x4f, 0xf3, 0x9d, 0x40, 0xc3, 0x02, 0xa8, 0x65, 0x2a, 0x2d,
+ 0x08, 0x4f, 0x44, 0x54, 0x4b, 0x53, 0xea, 0x00, 0x13, 0xc8, 0x99, 0xd9,
+ 0x96, 0xa1, 0x44, 0x2b, 0x08, 0x4f, 0x10, 0x4a, 0x26, 0x31, 0x42, 0xc7,
+ 0x95, 0x25, 0xaf, 0x17,
+};
+static const unsigned char kat3931_entropyinpr1[] = {
+ 0x03, 0x7c, 0xdf, 0xc6, 0x02, 0x75, 0x03, 0x06, 0x78, 0x53, 0x7a, 0x53,
+ 0xd5, 0x5d, 0xb5, 0x9e, 0x2e, 0x3d, 0x5e, 0xb8, 0x09, 0xe3, 0x35, 0x75,
+ 0x6a, 0x84, 0x4d, 0x31, 0x0f, 0x39, 0x69, 0x0e, 0xad, 0x4b, 0xd3, 0xb3,
+ 0x3b, 0x49, 0x98, 0x42,
+};
+static const unsigned char kat3931_addinpr1[] = {0};
+static const unsigned char kat3931_entropyinpr2[] = {
+ 0xe0, 0xb8, 0x6b, 0x4b, 0x5f, 0xf4, 0x87, 0x94, 0x11, 0x9a, 0xc1, 0xc9,
+ 0x1d, 0x11, 0xf9, 0x1c, 0x74, 0x58, 0x33, 0xe6, 0x8b, 0xb7, 0xd5, 0x6a,
+ 0xf4, 0x59, 0x82, 0x06, 0x82, 0xb1, 0x32, 0xed, 0x41, 0xb1, 0x8e, 0x7e,
+ 0xf4, 0x5e, 0xfc, 0xdf,
+};
+static const unsigned char kat3931_addinpr2[] = {0};
+static const unsigned char kat3931_retbits[] = {
+ 0x3c, 0x7f, 0xe5, 0xa0, 0xa0, 0x9a, 0x53, 0x34, 0x21, 0xea, 0x72, 0xcd,
+ 0xca, 0x52, 0xcd, 0xd3, 0x4e, 0x95, 0xa0, 0x6e, 0x17, 0x49, 0x80, 0x16,
+ 0xf8, 0x02, 0x7f, 0x7b, 0xb0, 0x5d, 0xed, 0xb3, 0x23, 0x4d, 0x5c, 0xc5,
+ 0xaa, 0x47, 0xa6, 0xd5, 0x0b, 0x47, 0xba, 0xb4, 0x58, 0x89, 0x96, 0x9c,
+ 0x37, 0x82, 0x82, 0x2e, 0xf4, 0xd4, 0x48, 0x19, 0x10, 0x78, 0xa6, 0x60,
+ 0xfa, 0xd2, 0xa3, 0x88,
+};
+static const struct drbg_kat_pr_true kat3931_t = {
+ 0, kat3931_entropyin, kat3931_nonce, kat3931_persstr,
+ kat3931_entropyinpr1, kat3931_addinpr1, kat3931_entropyinpr2,
+ kat3931_addinpr2, kat3931_retbits
+};
+static const struct drbg_kat kat3931 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3931_t
+};
+
+static const unsigned char kat3932_entropyin[] = {
+ 0xee, 0x87, 0x4c, 0xb7, 0x58, 0x2d, 0x39, 0x0d, 0xdc, 0x2c, 0xd3, 0xf3,
+ 0x44, 0xee, 0xb1, 0x4b, 0x39, 0x7a, 0x6e, 0xeb, 0x46, 0xc6, 0x7a, 0x18,
+ 0xf7, 0x62, 0x55, 0xf3, 0x61, 0x90, 0xff, 0x7a, 0xfe, 0xfb, 0x56, 0x41,
+ 0xaf, 0x91, 0xdd, 0x2e,
+};
+static const unsigned char kat3932_nonce[] = {0};
+static const unsigned char kat3932_persstr[] = {
+ 0xde, 0x6a, 0x61, 0x2b, 0xa2, 0xeb, 0xf4, 0x31, 0x36, 0x7e, 0xbc, 0x0e,
+ 0x07, 0xe1, 0x1c, 0xfb, 0xe6, 0x8f, 0x1f, 0xcc, 0x5f, 0xea, 0x30, 0x6b,
+ 0x21, 0x8d, 0x9d, 0xfa, 0xa5, 0xc3, 0xf0, 0x15, 0x09, 0xc0, 0x10, 0x41,
+ 0xe6, 0xc5, 0x44, 0x9c,
+};
+static const unsigned char kat3932_entropyinpr1[] = {
+ 0x58, 0x31, 0x7f, 0x80, 0xf1, 0x53, 0x35, 0x89, 0x79, 0x07, 0xc5, 0x1c,
+ 0x5f, 0x16, 0x4d, 0xa4, 0x62, 0x63, 0x46, 0xa4, 0xd6, 0x17, 0xfc, 0x77,
+ 0x37, 0x15, 0xd4, 0xc6, 0xff, 0x1d, 0x58, 0xce, 0xa7, 0x0f, 0x60, 0xdc,
+ 0xb2, 0xcc, 0xa9, 0xaa,
+};
+static const unsigned char kat3932_addinpr1[] = {0};
+static const unsigned char kat3932_entropyinpr2[] = {
+ 0x6e, 0xcc, 0xa6, 0x9d, 0x5d, 0x69, 0xc3, 0x7b, 0x70, 0x70, 0xcd, 0xab,
+ 0x3f, 0x84, 0x4c, 0xc5, 0x08, 0x8a, 0xcd, 0x80, 0x85, 0x5e, 0x1f, 0x60,
+ 0xdc, 0xb9, 0x5f, 0xf0, 0x0a, 0xf0, 0xb3, 0xb8, 0x61, 0x59, 0x12, 0x23,
+ 0x02, 0x04, 0x41, 0xb0,
+};
+static const unsigned char kat3932_addinpr2[] = {0};
+static const unsigned char kat3932_retbits[] = {
+ 0x2a, 0x0f, 0x6b, 0x30, 0xf9, 0x67, 0x7f, 0x19, 0xb0, 0x9b, 0x0a, 0x8e,
+ 0x05, 0xad, 0xf2, 0x97, 0x87, 0x48, 0xa9, 0xe2, 0x12, 0xa2, 0x95, 0xe6,
+ 0x79, 0x96, 0x76, 0x42, 0x86, 0x0b, 0xeb, 0xa4, 0x4b, 0x0c, 0xae, 0xe5,
+ 0xc1, 0xb0, 0x58, 0xc3, 0xc6, 0xdd, 0xba, 0xe1, 0xd6, 0xcf, 0x1e, 0x0f,
+ 0x4c, 0x0a, 0x8a, 0x0d, 0x6d, 0x79, 0x84, 0x45, 0x9b, 0xc9, 0x23, 0x59,
+ 0x92, 0x3e, 0xee, 0x16,
+};
+static const struct drbg_kat_pr_true kat3932_t = {
+ 1, kat3932_entropyin, kat3932_nonce, kat3932_persstr,
+ kat3932_entropyinpr1, kat3932_addinpr1, kat3932_entropyinpr2,
+ kat3932_addinpr2, kat3932_retbits
+};
+static const struct drbg_kat kat3932 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3932_t
+};
+
+static const unsigned char kat3933_entropyin[] = {
+ 0x1a, 0xd9, 0x0b, 0x3f, 0x17, 0xc1, 0x39, 0x0b, 0x86, 0x06, 0xb8, 0xc8,
+ 0x8e, 0xc6, 0xf7, 0xfe, 0x89, 0x0e, 0x76, 0xdb, 0x21, 0x48, 0x0f, 0xfd,
+ 0x42, 0xfb, 0x7e, 0x20, 0xd5, 0x31, 0x3d, 0x87, 0x75, 0x69, 0x89, 0xb3,
+ 0x87, 0x6e, 0x53, 0x84,
+};
+static const unsigned char kat3933_nonce[] = {0};
+static const unsigned char kat3933_persstr[] = {
+ 0x8d, 0x50, 0xa9, 0x33, 0xda, 0x14, 0x1c, 0xa8, 0xa3, 0xc5, 0x04, 0xc4,
+ 0xd6, 0x24, 0xf2, 0x39, 0x51, 0x9b, 0x09, 0xfd, 0x83, 0x1a, 0xf0, 0x45,
+ 0xea, 0xd8, 0xdd, 0xf0, 0x1b, 0xf3, 0x62, 0xa5, 0x78, 0xfc, 0x60, 0x60,
+ 0x30, 0x88, 0x32, 0x9b,
+};
+static const unsigned char kat3933_entropyinpr1[] = {
+ 0x57, 0x56, 0x1f, 0xc8, 0xe1, 0x71, 0x2f, 0xc6, 0x37, 0x97, 0xe1, 0x93,
+ 0xdf, 0x7d, 0x74, 0xbd, 0xa7, 0x7f, 0x42, 0xf5, 0xf5, 0x31, 0x22, 0x7b,
+ 0x01, 0xd9, 0x28, 0x19, 0x2f, 0xf7, 0xd6, 0xcc, 0xd9, 0xbd, 0x93, 0xf2,
+ 0x32, 0x52, 0x0b, 0x42,
+};
+static const unsigned char kat3933_addinpr1[] = {0};
+static const unsigned char kat3933_entropyinpr2[] = {
+ 0x20, 0x10, 0xb1, 0x7f, 0x1e, 0xd4, 0x46, 0xa1, 0x24, 0x06, 0xe7, 0xe9,
+ 0x69, 0xd8, 0x6f, 0x3a, 0x6b, 0x39, 0x3a, 0x9e, 0xfd, 0xa1, 0x8b, 0x16,
+ 0xff, 0x63, 0xfe, 0x82, 0xc6, 0xa1, 0x48, 0x5c, 0x37, 0xe0, 0x8a, 0xe8,
+ 0x49, 0x5c, 0xa0, 0x28,
+};
+static const unsigned char kat3933_addinpr2[] = {0};
+static const unsigned char kat3933_retbits[] = {
+ 0x1b, 0x96, 0x4f, 0x05, 0x65, 0x19, 0x25, 0x4b, 0xe6, 0x71, 0xae, 0x08,
+ 0x17, 0xd7, 0x15, 0xe1, 0x9a, 0xfe, 0x29, 0x2f, 0xa6, 0x7e, 0x11, 0x01,
+ 0x27, 0x04, 0x64, 0x62, 0x88, 0x51, 0xab, 0x6d, 0xb8, 0x13, 0xe5, 0xf8,
+ 0x48, 0xc0, 0xf9, 0xb7, 0xea, 0x64, 0x3d, 0x52, 0x67, 0xb7, 0x65, 0x26,
+ 0xbb, 0x5d, 0xab, 0xc0, 0x8b, 0x6a, 0x02, 0xb4, 0x4e, 0x90, 0x4a, 0xee,
+ 0x26, 0xd6, 0xbb, 0x7d,
+};
+static const struct drbg_kat_pr_true kat3933_t = {
+ 2, kat3933_entropyin, kat3933_nonce, kat3933_persstr,
+ kat3933_entropyinpr1, kat3933_addinpr1, kat3933_entropyinpr2,
+ kat3933_addinpr2, kat3933_retbits
+};
+static const struct drbg_kat kat3933 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3933_t
+};
+
+static const unsigned char kat3934_entropyin[] = {
+ 0xf4, 0xa5, 0xfb, 0xde, 0x09, 0x80, 0x2e, 0x93, 0x2f, 0xe7, 0x6d, 0x75,
+ 0x31, 0x87, 0x78, 0x71, 0x4f, 0x09, 0xc0, 0xb7, 0x8e, 0x25, 0x22, 0x49,
+ 0xc5, 0xf6, 0x42, 0x8a, 0x77, 0x64, 0x92, 0x89, 0x94, 0xc8, 0xea, 0x6f,
+ 0x30, 0x4b, 0x14, 0xd1,
+};
+static const unsigned char kat3934_nonce[] = {0};
+static const unsigned char kat3934_persstr[] = {
+ 0x35, 0xab, 0x4f, 0xe8, 0x11, 0x21, 0x52, 0x43, 0x39, 0xe4, 0x00, 0x04,
+ 0xfd, 0x3f, 0x4d, 0x70, 0x69, 0xef, 0x0d, 0x00, 0xa5, 0x83, 0x0c, 0xd4,
+ 0x4d, 0x87, 0x2a, 0xf3, 0xd6, 0x29, 0x81, 0xc2, 0x0c, 0xa1, 0xa6, 0x66,
+ 0x4c, 0x1f, 0x95, 0xd3,
+};
+static const unsigned char kat3934_entropyinpr1[] = {
+ 0x3d, 0x7e, 0xb8, 0xc8, 0x6f, 0x80, 0x18, 0x6c, 0xd4, 0x37, 0x03, 0x90,
+ 0xba, 0x39, 0x21, 0x4f, 0x5d, 0xc2, 0x82, 0x37, 0x87, 0x60, 0x6e, 0xa6,
+ 0xa3, 0x4a, 0xda, 0x8f, 0xa1, 0x29, 0xf6, 0x28, 0xc2, 0x14, 0xf4, 0x84,
+ 0x1f, 0xa3, 0xfc, 0x68,
+};
+static const unsigned char kat3934_addinpr1[] = {0};
+static const unsigned char kat3934_entropyinpr2[] = {
+ 0x1a, 0x66, 0x3e, 0x82, 0xcb, 0xf4, 0x33, 0xf7, 0x3e, 0x86, 0x02, 0xac,
+ 0x50, 0x3e, 0x6b, 0x86, 0x72, 0x47, 0x34, 0x73, 0x79, 0x1a, 0x60, 0x07,
+ 0x5b, 0x9f, 0xb1, 0xd0, 0x35, 0x7a, 0xe7, 0xa5, 0x77, 0x7d, 0x68, 0xb1,
+ 0x9a, 0x27, 0x57, 0x2d,
+};
+static const unsigned char kat3934_addinpr2[] = {0};
+static const unsigned char kat3934_retbits[] = {
+ 0x2d, 0x83, 0xa6, 0x4d, 0x74, 0xd5, 0xc6, 0x29, 0x66, 0x83, 0x7a, 0xc2,
+ 0xd6, 0xce, 0x47, 0xb4, 0xdf, 0x14, 0xa7, 0x64, 0x34, 0xc6, 0x68, 0x57,
+ 0x47, 0xea, 0x08, 0x4a, 0x7a, 0x15, 0xac, 0xde, 0xde, 0xae, 0xb6, 0xe0,
+ 0x3d, 0xfc, 0xc5, 0x69, 0xf9, 0x50, 0x0c, 0x5f, 0xde, 0xd5, 0x6c, 0x15,
+ 0x76, 0x3a, 0xc8, 0x50, 0x15, 0xcb, 0x31, 0x8a, 0xf8, 0x9e, 0xd4, 0xae,
+ 0xaa, 0x38, 0x78, 0xd1,
+};
+static const struct drbg_kat_pr_true kat3934_t = {
+ 3, kat3934_entropyin, kat3934_nonce, kat3934_persstr,
+ kat3934_entropyinpr1, kat3934_addinpr1, kat3934_entropyinpr2,
+ kat3934_addinpr2, kat3934_retbits
+};
+static const struct drbg_kat kat3934 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3934_t
+};
+
+static const unsigned char kat3935_entropyin[] = {
+ 0x4e, 0xe9, 0x80, 0xcd, 0x09, 0x38, 0xfb, 0x82, 0xc0, 0x99, 0x08, 0x4b,
+ 0x61, 0x73, 0x33, 0x15, 0x90, 0x16, 0xa4, 0x41, 0x37, 0xa2, 0xd3, 0xb7,
+ 0x70, 0xcf, 0x49, 0x75, 0xc3, 0x80, 0xb6, 0xce, 0x06, 0x0a, 0xf5, 0x85,
+ 0xbc, 0x08, 0x07, 0x15,
+};
+static const unsigned char kat3935_nonce[] = {0};
+static const unsigned char kat3935_persstr[] = {
+ 0x0b, 0xde, 0x39, 0x4e, 0x7e, 0x43, 0x64, 0x1c, 0xca, 0x85, 0x71, 0x7d,
+ 0xed, 0x61, 0x0c, 0xc1, 0xbd, 0x49, 0x34, 0x26, 0xeb, 0xc8, 0xc9, 0x68,
+ 0x6d, 0xb5, 0xef, 0x35, 0x97, 0xaa, 0x70, 0x32, 0xc6, 0xf1, 0x7e, 0x76,
+ 0x9e, 0x8b, 0xdc, 0xae,
+};
+static const unsigned char kat3935_entropyinpr1[] = {
+ 0xc5, 0x84, 0x57, 0x08, 0x0d, 0x9d, 0xba, 0x5b, 0xf9, 0xd6, 0xdf, 0xae,
+ 0x60, 0xc1, 0x0a, 0x5e, 0x1f, 0x43, 0xf7, 0x5c, 0x15, 0x06, 0x08, 0x36,
+ 0x5a, 0x94, 0xfb, 0xbd, 0x6b, 0x49, 0xa9, 0x23, 0x5a, 0x9f, 0x09, 0x4f,
+ 0x23, 0x0a, 0xdd, 0x03,
+};
+static const unsigned char kat3935_addinpr1[] = {0};
+static const unsigned char kat3935_entropyinpr2[] = {
+ 0xde, 0xfe, 0x93, 0x85, 0x2c, 0x3e, 0x9e, 0x31, 0xfb, 0x88, 0xf8, 0x68,
+ 0x49, 0x3d, 0xdc, 0x5f, 0x14, 0x2e, 0x1b, 0x5b, 0x5c, 0x21, 0x37, 0x14,
+ 0x42, 0x81, 0x04, 0x0d, 0x50, 0x87, 0x54, 0x71, 0x99, 0x37, 0x1e, 0x16,
+ 0xca, 0xec, 0xc7, 0x5a,
+};
+static const unsigned char kat3935_addinpr2[] = {0};
+static const unsigned char kat3935_retbits[] = {
+ 0x1f, 0x52, 0xac, 0x35, 0xe3, 0x39, 0x5b, 0x8a, 0xb8, 0x09, 0x44, 0x9d,
+ 0x3d, 0x14, 0xa6, 0x4b, 0xf0, 0x7b, 0x52, 0x20, 0xa6, 0x34, 0x8e, 0x81,
+ 0xb5, 0xd4, 0x7d, 0xab, 0xe1, 0x40, 0x8f, 0x93, 0xf5, 0xb5, 0x40, 0xd0,
+ 0x11, 0x90, 0xd9, 0xbd, 0x2d, 0xfb, 0xe8, 0x66, 0x44, 0x9a, 0x68, 0x22,
+ 0x1e, 0xd4, 0x3c, 0x23, 0xf1, 0x72, 0x00, 0xb3, 0x5b, 0x3c, 0xbb, 0x9e,
+ 0xf3, 0x17, 0x37, 0xbf,
+};
+static const struct drbg_kat_pr_true kat3935_t = {
+ 4, kat3935_entropyin, kat3935_nonce, kat3935_persstr,
+ kat3935_entropyinpr1, kat3935_addinpr1, kat3935_entropyinpr2,
+ kat3935_addinpr2, kat3935_retbits
+};
+static const struct drbg_kat kat3935 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3935_t
+};
+
+static const unsigned char kat3936_entropyin[] = {
+ 0xe5, 0x7e, 0x6e, 0xf9, 0x81, 0x01, 0xc9, 0xd3, 0xed, 0x9a, 0x7c, 0x25,
+ 0xc3, 0x44, 0x8f, 0x57, 0xc0, 0xde, 0xb6, 0x79, 0x16, 0x70, 0x22, 0xba,
+ 0x10, 0x6f, 0x9a, 0x64, 0x43, 0x85, 0x5a, 0xd6, 0x5c, 0x94, 0xd4, 0xb2,
+ 0xcb, 0x73, 0x13, 0xf3,
+};
+static const unsigned char kat3936_nonce[] = {0};
+static const unsigned char kat3936_persstr[] = {
+ 0x4c, 0x47, 0xf3, 0xf0, 0x59, 0x16, 0x51, 0x79, 0xd4, 0x3d, 0xd3, 0x72,
+ 0x43, 0x62, 0xe7, 0x60, 0x96, 0x0e, 0xe7, 0xc6, 0xd7, 0x2b, 0xd4, 0x44,
+ 0xe9, 0xdf, 0x2f, 0x03, 0xf7, 0xb4, 0x0e, 0x0a, 0x9f, 0x9f, 0x3f, 0xd6,
+ 0x85, 0x8b, 0x69, 0xef,
+};
+static const unsigned char kat3936_entropyinpr1[] = {
+ 0xc6, 0xbe, 0x1c, 0x30, 0x9a, 0x45, 0xa6, 0x50, 0x4e, 0x71, 0xf6, 0x5a,
+ 0x58, 0xda, 0xe6, 0x5f, 0x29, 0x14, 0x75, 0x34, 0x46, 0xa4, 0x6b, 0xed,
+ 0xeb, 0xc5, 0x49, 0xa2, 0x2a, 0xda, 0x9b, 0x45, 0xd9, 0x50, 0xbe, 0x73,
+ 0x5b, 0x2f, 0x91, 0x50,
+};
+static const unsigned char kat3936_addinpr1[] = {0};
+static const unsigned char kat3936_entropyinpr2[] = {
+ 0x9b, 0xc9, 0xf4, 0xe6, 0xa9, 0x4d, 0x28, 0x9b, 0x0f, 0xe7, 0x11, 0x88,
+ 0x1c, 0x9f, 0x80, 0x9a, 0x65, 0xe5, 0x52, 0xd8, 0x18, 0x31, 0xae, 0xa9,
+ 0xfc, 0x34, 0x6f, 0x01, 0xa3, 0x33, 0x70, 0x1f, 0xdf, 0xc9, 0x08, 0x16,
+ 0x34, 0x97, 0x66, 0x19,
+};
+static const unsigned char kat3936_addinpr2[] = {0};
+static const unsigned char kat3936_retbits[] = {
+ 0xc1, 0x68, 0x2e, 0x57, 0x46, 0xe6, 0x06, 0xd4, 0x86, 0x0a, 0x1f, 0x66,
+ 0x0b, 0x8f, 0xa3, 0x56, 0xe1, 0x34, 0xbd, 0x9f, 0x45, 0x7d, 0x73, 0xec,
+ 0x0b, 0x67, 0x67, 0xb6, 0xba, 0xe9, 0xd9, 0x25, 0x79, 0x57, 0x1d, 0x63,
+ 0xa2, 0x03, 0x29, 0x17, 0xb5, 0xd4, 0x1e, 0x2b, 0xd1, 0x2d, 0x04, 0xb9,
+ 0x54, 0x6c, 0x42, 0xbf, 0xa1, 0xba, 0x8b, 0x4e, 0xde, 0x7c, 0xb4, 0x4f,
+ 0x20, 0xd4, 0xe2, 0xca,
+};
+static const struct drbg_kat_pr_true kat3936_t = {
+ 5, kat3936_entropyin, kat3936_nonce, kat3936_persstr,
+ kat3936_entropyinpr1, kat3936_addinpr1, kat3936_entropyinpr2,
+ kat3936_addinpr2, kat3936_retbits
+};
+static const struct drbg_kat kat3936 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3936_t
+};
+
+static const unsigned char kat3937_entropyin[] = {
+ 0x95, 0x83, 0x48, 0xb7, 0x43, 0xd5, 0xb5, 0xc2, 0xbf, 0x0d, 0xed, 0xc7,
+ 0xe2, 0xe3, 0x59, 0x3d, 0x3b, 0x33, 0x3e, 0x1d, 0x11, 0xe7, 0xf3, 0x97,
+ 0xd8, 0xde, 0x5f, 0x1b, 0x03, 0xc7, 0x25, 0x72, 0xfa, 0xc7, 0x03, 0x02,
+ 0x7b, 0x70, 0x7e, 0x20,
+};
+static const unsigned char kat3937_nonce[] = {0};
+static const unsigned char kat3937_persstr[] = {
+ 0xe1, 0xfc, 0x9e, 0xcd, 0x47, 0xbe, 0x72, 0x0b, 0x81, 0x32, 0x66, 0x9d,
+ 0x20, 0x75, 0x5f, 0x24, 0x37, 0xae, 0xa7, 0x5b, 0xb8, 0xf7, 0xa6, 0x49,
+ 0xd2, 0xfe, 0xee, 0x2e, 0x79, 0xcf, 0x15, 0x39, 0xba, 0xbd, 0xb2, 0xdd,
+ 0xc9, 0xca, 0xb3, 0x16,
+};
+static const unsigned char kat3937_entropyinpr1[] = {
+ 0x84, 0x74, 0x25, 0x2d, 0x01, 0x31, 0xa4, 0x6e, 0x16, 0xaa, 0x0f, 0xb4,
+ 0x1c, 0xc1, 0x4d, 0x2b, 0x7f, 0xe9, 0x63, 0x93, 0x21, 0xb6, 0x5a, 0xd1,
+ 0x9b, 0x18, 0xfd, 0x5f, 0xd6, 0x50, 0x24, 0x82, 0x90, 0xf7, 0x5b, 0x7d,
+ 0xba, 0x1b, 0x5b, 0x0e,
+};
+static const unsigned char kat3937_addinpr1[] = {0};
+static const unsigned char kat3937_entropyinpr2[] = {
+ 0x83, 0x24, 0x97, 0xd0, 0x7a, 0xd3, 0xe3, 0xe1, 0xf9, 0xa9, 0xb0, 0x45,
+ 0x10, 0x78, 0xc4, 0x11, 0x02, 0x94, 0x59, 0x05, 0x70, 0xe9, 0x47, 0x8c,
+ 0x18, 0x6d, 0xa2, 0x17, 0x77, 0x25, 0x5c, 0xdb, 0x8c, 0x95, 0xbf, 0xaf,
+ 0xe9, 0x59, 0x55, 0xc0,
+};
+static const unsigned char kat3937_addinpr2[] = {0};
+static const unsigned char kat3937_retbits[] = {
+ 0xe0, 0x61, 0xd9, 0xd3, 0x2d, 0xaa, 0x66, 0xf5, 0xc1, 0xb4, 0x5f, 0x3d,
+ 0x3f, 0x6e, 0xb1, 0xb1, 0x79, 0x29, 0xab, 0xe6, 0xc5, 0x12, 0xdd, 0x6a,
+ 0xcb, 0x74, 0xec, 0x10, 0x5b, 0xf7, 0x22, 0x97, 0xff, 0x4b, 0xb1, 0x87,
+ 0xfb, 0x66, 0x74, 0x78, 0xee, 0x88, 0xdb, 0x51, 0xdd, 0x72, 0x81, 0x6e,
+ 0x60, 0xf9, 0x76, 0x39, 0x73, 0xbd, 0x5f, 0xa9, 0xe9, 0x0d, 0x5c, 0xf0,
+ 0x9e, 0x1f, 0x28, 0x55,
+};
+static const struct drbg_kat_pr_true kat3937_t = {
+ 6, kat3937_entropyin, kat3937_nonce, kat3937_persstr,
+ kat3937_entropyinpr1, kat3937_addinpr1, kat3937_entropyinpr2,
+ kat3937_addinpr2, kat3937_retbits
+};
+static const struct drbg_kat kat3937 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3937_t
+};
+
+static const unsigned char kat3938_entropyin[] = {
+ 0x7b, 0xf7, 0xd4, 0xc5, 0xb5, 0xbd, 0x71, 0x3b, 0xf1, 0x92, 0xef, 0x3f,
+ 0x62, 0x6b, 0xb8, 0x21, 0x68, 0x26, 0x2c, 0x1e, 0xb5, 0x6e, 0x04, 0x91,
+ 0x1a, 0x59, 0xe0, 0xc4, 0xb3, 0x18, 0x21, 0x25, 0x37, 0x05, 0x83, 0xcc,
+ 0x49, 0xa1, 0x3a, 0x67,
+};
+static const unsigned char kat3938_nonce[] = {0};
+static const unsigned char kat3938_persstr[] = {
+ 0x4b, 0x2a, 0x55, 0x13, 0xa3, 0xb9, 0xae, 0xc3, 0xa4, 0xa1, 0x1f, 0xa4,
+ 0x34, 0x61, 0x16, 0x6c, 0xc5, 0x9e, 0x55, 0x21, 0x97, 0xa7, 0x6b, 0xf1,
+ 0xf0, 0xa1, 0xba, 0xe0, 0x30, 0x1b, 0x57, 0x89, 0xd2, 0xe3, 0xd9, 0xfe,
+ 0x63, 0x57, 0x6e, 0x5a,
+};
+static const unsigned char kat3938_entropyinpr1[] = {
+ 0x0e, 0xc2, 0x78, 0x29, 0xf3, 0x12, 0xb3, 0xd3, 0x33, 0x75, 0x7c, 0x65,
+ 0xb7, 0x16, 0xc7, 0xd3, 0xb4, 0x8c, 0x6b, 0x2d, 0xe1, 0x6e, 0xa8, 0x3f,
+ 0xa1, 0xeb, 0x00, 0x0b, 0xf5, 0x60, 0x86, 0xf3, 0x59, 0x88, 0x1b, 0x87,
+ 0x98, 0xf6, 0xe9, 0x04,
+};
+static const unsigned char kat3938_addinpr1[] = {0};
+static const unsigned char kat3938_entropyinpr2[] = {
+ 0xf8, 0x55, 0x71, 0x36, 0x50, 0x92, 0x2c, 0x44, 0x16, 0xc2, 0x3d, 0xc3,
+ 0x0e, 0x64, 0x4e, 0xde, 0x4f, 0x3a, 0x7d, 0x68, 0x88, 0x58, 0x5f, 0x38,
+ 0x35, 0x81, 0x0d, 0x2f, 0xb5, 0xb6, 0xdc, 0x35, 0x4a, 0x13, 0x2a, 0xdc,
+ 0x15, 0x84, 0xb6, 0x48,
+};
+static const unsigned char kat3938_addinpr2[] = {0};
+static const unsigned char kat3938_retbits[] = {
+ 0x2c, 0xc4, 0xfa, 0xdd, 0xf2, 0xaa, 0x24, 0x01, 0x26, 0xb4, 0xa4, 0xde,
+ 0x2d, 0x1b, 0xd8, 0x96, 0xb4, 0xcd, 0x7d, 0x4d, 0x37, 0xe1, 0xf4, 0x30,
+ 0xd9, 0x03, 0xe5, 0x22, 0x33, 0xb2, 0x5a, 0x6e, 0x46, 0x56, 0x14, 0x93,
+ 0x13, 0x39, 0xca, 0x60, 0xfb, 0xbf, 0xbe, 0x81, 0x1e, 0xa0, 0xb7, 0x07,
+ 0x59, 0x64, 0xe2, 0xf5, 0xd5, 0x07, 0x77, 0xd0, 0xe0, 0xa8, 0xa1, 0x4f,
+ 0x48, 0xb5, 0x0d, 0xf7,
+};
+static const struct drbg_kat_pr_true kat3938_t = {
+ 7, kat3938_entropyin, kat3938_nonce, kat3938_persstr,
+ kat3938_entropyinpr1, kat3938_addinpr1, kat3938_entropyinpr2,
+ kat3938_addinpr2, kat3938_retbits
+};
+static const struct drbg_kat kat3938 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3938_t
+};
+
+static const unsigned char kat3939_entropyin[] = {
+ 0x3d, 0x6d, 0xe5, 0xe2, 0x78, 0x3c, 0xe8, 0x45, 0xd4, 0x61, 0xa1, 0x42,
+ 0x19, 0x9a, 0x57, 0xbc, 0xc7, 0x2a, 0x1a, 0xfc, 0xb4, 0xdc, 0x4c, 0x61,
+ 0x3e, 0x20, 0xdd, 0xf0, 0xc2, 0x3b, 0xa4, 0xd9, 0x8b, 0xef, 0x8d, 0xd3,
+ 0xf1, 0xe3, 0x62, 0x06,
+};
+static const unsigned char kat3939_nonce[] = {0};
+static const unsigned char kat3939_persstr[] = {
+ 0x4c, 0xcb, 0xee, 0xeb, 0xe6, 0xc1, 0x59, 0x64, 0x1b, 0xd4, 0xac, 0xc5,
+ 0xd3, 0x34, 0xc3, 0x95, 0x58, 0xe9, 0x1e, 0xa8, 0x71, 0x28, 0xe9, 0x5e,
+ 0x99, 0x0f, 0xdb, 0xe1, 0xb8, 0xe1, 0x8b, 0xe7, 0xe8, 0x87, 0xab, 0x1a,
+ 0x08, 0xdb, 0x9f, 0x0e,
+};
+static const unsigned char kat3939_entropyinpr1[] = {
+ 0x6f, 0x1b, 0xaa, 0x4d, 0xc2, 0x52, 0x07, 0x83, 0x6a, 0x33, 0x93, 0x2f,
+ 0xce, 0x35, 0xdd, 0x45, 0x50, 0x43, 0x1f, 0xd0, 0x1c, 0x6c, 0xe2, 0x0a,
+ 0xe2, 0xea, 0x05, 0xe9, 0x30, 0xa0, 0x89, 0xea, 0x42, 0xc2, 0x1e, 0x88,
+ 0x1c, 0x83, 0x7c, 0x0e,
+};
+static const unsigned char kat3939_addinpr1[] = {0};
+static const unsigned char kat3939_entropyinpr2[] = {
+ 0x61, 0x45, 0xde, 0x4f, 0x1a, 0x1d, 0x25, 0xe4, 0xb8, 0xcc, 0x6b, 0xec,
+ 0x9d, 0x0c, 0x5e, 0xfb, 0x39, 0x2d, 0x33, 0x61, 0xb5, 0x11, 0x89, 0xf6,
+ 0x64, 0xfe, 0x6a, 0xa6, 0x71, 0x8e, 0x4a, 0x99, 0xc0, 0x72, 0x59, 0x29,
+ 0x70, 0x25, 0x0b, 0x0d,
+};
+static const unsigned char kat3939_addinpr2[] = {0};
+static const unsigned char kat3939_retbits[] = {
+ 0x56, 0xc3, 0x5c, 0xc7, 0x58, 0x0b, 0xac, 0x97, 0x45, 0x78, 0xf9, 0x3a,
+ 0x32, 0x3f, 0x13, 0x98, 0x9e, 0x14, 0x7c, 0x09, 0x21, 0x3d, 0x84, 0x9d,
+ 0xfd, 0xfc, 0xc5, 0xf0, 0x98, 0xdd, 0x87, 0x82, 0xc4, 0x9d, 0x74, 0x37,
+ 0x31, 0xb7, 0x98, 0x2f, 0xb4, 0x52, 0x2b, 0xf5, 0xd8, 0xd5, 0x4f, 0x1c,
+ 0x78, 0xf3, 0xd2, 0x5a, 0x73, 0xdf, 0xf5, 0x79, 0xf2, 0x19, 0x76, 0x37,
+ 0x30, 0xe5, 0xf4, 0x61,
+};
+static const struct drbg_kat_pr_true kat3939_t = {
+ 8, kat3939_entropyin, kat3939_nonce, kat3939_persstr,
+ kat3939_entropyinpr1, kat3939_addinpr1, kat3939_entropyinpr2,
+ kat3939_addinpr2, kat3939_retbits
+};
+static const struct drbg_kat kat3939 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3939_t
+};
+
+static const unsigned char kat3940_entropyin[] = {
+ 0x61, 0xc8, 0x27, 0xed, 0x8a, 0x14, 0xc9, 0x79, 0x9f, 0x55, 0xd9, 0x9e,
+ 0xbe, 0x61, 0xf8, 0xbb, 0x08, 0x05, 0x7b, 0x4d, 0x0a, 0x5d, 0xa5, 0x10,
+ 0x97, 0xa1, 0xcf, 0x7f, 0x9e, 0xdd, 0x85, 0xc8, 0x1f, 0x02, 0x12, 0x6d,
+ 0x25, 0xdf, 0x77, 0xed,
+};
+static const unsigned char kat3940_nonce[] = {0};
+static const unsigned char kat3940_persstr[] = {
+ 0xd6, 0xdd, 0x81, 0x33, 0x85, 0xe5, 0xf6, 0x66, 0x9d, 0x3c, 0x23, 0xef,
+ 0x2c, 0x0b, 0xf1, 0x80, 0x55, 0xc7, 0x5b, 0x76, 0x90, 0x10, 0x9c, 0xb3,
+ 0x7b, 0xe2, 0x53, 0xed, 0x92, 0x8d, 0x90, 0x0e, 0x4d, 0x23, 0x1e, 0x6e,
+ 0x2c, 0x50, 0xbb, 0xcd,
+};
+static const unsigned char kat3940_entropyinpr1[] = {
+ 0x8a, 0x70, 0x24, 0xf2, 0xf9, 0xd1, 0x85, 0x96, 0x60, 0x1a, 0x44, 0xcf,
+ 0xe5, 0xd1, 0x86, 0x53, 0xdc, 0xfe, 0xe6, 0xb4, 0x63, 0x53, 0xc0, 0xaf,
+ 0x4d, 0xf5, 0x41, 0xd9, 0x25, 0x97, 0xd7, 0xef, 0x6b, 0xaa, 0x6a, 0x9f,
+ 0x90, 0x35, 0x64, 0x53,
+};
+static const unsigned char kat3940_addinpr1[] = {0};
+static const unsigned char kat3940_entropyinpr2[] = {
+ 0x29, 0xcd, 0x1a, 0x5c, 0x27, 0x8f, 0xf0, 0x7c, 0xa7, 0xf2, 0x09, 0xd5,
+ 0x5a, 0x4a, 0xa4, 0x2e, 0x8d, 0x55, 0x75, 0x76, 0x3b, 0xd9, 0xd7, 0x07,
+ 0xee, 0x82, 0x02, 0x5e, 0x22, 0x4b, 0x66, 0x6d, 0x13, 0x3f, 0x49, 0xd6,
+ 0xc9, 0xc4, 0x81, 0x59,
+};
+static const unsigned char kat3940_addinpr2[] = {0};
+static const unsigned char kat3940_retbits[] = {
+ 0xe0, 0x62, 0x1d, 0x31, 0xf0, 0xce, 0x43, 0x09, 0x42, 0xb6, 0xf8, 0x17,
+ 0xab, 0x61, 0xbe, 0x87, 0x17, 0xe5, 0x5a, 0x54, 0xfd, 0x80, 0xb6, 0x09,
+ 0xf4, 0x5f, 0xc6, 0xc3, 0x59, 0xa2, 0x31, 0xf5, 0xd4, 0xd2, 0x8e, 0xd3,
+ 0x6b, 0x18, 0xad, 0x62, 0x6c, 0xca, 0x30, 0x9f, 0xc6, 0x86, 0xde, 0xc0,
+ 0x43, 0x59, 0x0d, 0xa9, 0x76, 0xa2, 0x1c, 0xf8, 0x3c, 0x11, 0xd5, 0xe4,
+ 0x45, 0x95, 0xba, 0x95,
+};
+static const struct drbg_kat_pr_true kat3940_t = {
+ 9, kat3940_entropyin, kat3940_nonce, kat3940_persstr,
+ kat3940_entropyinpr1, kat3940_addinpr1, kat3940_entropyinpr2,
+ kat3940_addinpr2, kat3940_retbits
+};
+static const struct drbg_kat kat3940 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3940_t
+};
+
+static const unsigned char kat3941_entropyin[] = {
+ 0xc1, 0xba, 0xb3, 0xc4, 0xce, 0x68, 0xa4, 0x39, 0xd3, 0x56, 0xee, 0x5b,
+ 0xf6, 0x47, 0x17, 0x3f, 0x08, 0xa4, 0x32, 0x7b, 0xf6, 0x8f, 0x45, 0x4c,
+ 0x7d, 0x8c, 0x58, 0x03, 0x83, 0x25, 0x1d, 0x14, 0xf3, 0x7e, 0x8b, 0x56,
+ 0x34, 0x98, 0x99, 0xdb,
+};
+static const unsigned char kat3941_nonce[] = {0};
+static const unsigned char kat3941_persstr[] = {
+ 0xa0, 0xf9, 0xb3, 0xd2, 0x06, 0x7d, 0xe6, 0x69, 0xe2, 0x0d, 0xe5, 0xb9,
+ 0xba, 0x0b, 0xcf, 0x31, 0x62, 0xc0, 0x13, 0xeb, 0x31, 0xe8, 0xdd, 0x6e,
+ 0x8a, 0x24, 0x29, 0x63, 0x6b, 0x3e, 0xe0, 0x18, 0x42, 0x16, 0x90, 0x35,
+ 0x2e, 0xa6, 0x17, 0xc6,
+};
+static const unsigned char kat3941_entropyinpr1[] = {
+ 0x28, 0x08, 0x30, 0x0c, 0x55, 0x71, 0x75, 0xcd, 0xd3, 0x68, 0x39, 0x42,
+ 0x05, 0x75, 0x48, 0x1a, 0x43, 0xb2, 0x92, 0x6f, 0x88, 0xd4, 0xf9, 0x6c,
+ 0xad, 0xa8, 0x17, 0x3d, 0xd2, 0x88, 0x90, 0x1a, 0x30, 0x24, 0x83, 0xa3,
+ 0x88, 0xb7, 0x95, 0x8b,
+};
+static const unsigned char kat3941_addinpr1[] = {0};
+static const unsigned char kat3941_entropyinpr2[] = {
+ 0xcb, 0xa5, 0x42, 0xe3, 0x6c, 0x71, 0xa8, 0xc0, 0x0a, 0x57, 0x22, 0xc7,
+ 0x49, 0xbd, 0xe8, 0x3a, 0xbc, 0xde, 0x2c, 0xf3, 0x73, 0x5b, 0x25, 0x20,
+ 0x09, 0x2a, 0x8f, 0x1f, 0x2f, 0xda, 0xc4, 0x26, 0xa1, 0xda, 0xa1, 0xd0,
+ 0x7b, 0x43, 0x58, 0xe2,
+};
+static const unsigned char kat3941_addinpr2[] = {0};
+static const unsigned char kat3941_retbits[] = {
+ 0xdd, 0x4b, 0x1f, 0xc8, 0xd3, 0x09, 0x08, 0x45, 0xa1, 0xd9, 0x28, 0x84,
+ 0xa0, 0x18, 0x43, 0x96, 0xbc, 0x90, 0xbe, 0x40, 0xb5, 0x83, 0xa5, 0xcc,
+ 0x1d, 0x8a, 0xe1, 0x33, 0x0a, 0xf4, 0x7d, 0x47, 0x51, 0x48, 0xbc, 0xb5,
+ 0xf1, 0xed, 0x21, 0x03, 0xed, 0xf4, 0xd1, 0x02, 0xc9, 0x76, 0x37, 0xe0,
+ 0x1b, 0x09, 0x43, 0xc2, 0x7b, 0x0b, 0x3f, 0x46, 0x94, 0x8a, 0x4a, 0x29,
+ 0xd9, 0x0b, 0xe2, 0x2c,
+};
+static const struct drbg_kat_pr_true kat3941_t = {
+ 10, kat3941_entropyin, kat3941_nonce, kat3941_persstr,
+ kat3941_entropyinpr1, kat3941_addinpr1, kat3941_entropyinpr2,
+ kat3941_addinpr2, kat3941_retbits
+};
+static const struct drbg_kat kat3941 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3941_t
+};
+
+static const unsigned char kat3942_entropyin[] = {
+ 0x8e, 0x37, 0xb3, 0x8d, 0x5a, 0x59, 0x7b, 0x70, 0xec, 0x0f, 0xd5, 0x68,
+ 0x1d, 0x44, 0x2f, 0x10, 0xf9, 0x53, 0xc6, 0x50, 0x24, 0xf9, 0x0e, 0xb8,
+ 0xae, 0x36, 0x8a, 0xeb, 0xfd, 0xc9, 0xcb, 0x8a, 0x2c, 0xbe, 0xea, 0x03,
+ 0xed, 0xa2, 0xbd, 0x93,
+};
+static const unsigned char kat3942_nonce[] = {0};
+static const unsigned char kat3942_persstr[] = {
+ 0x11, 0x55, 0xc5, 0x7d, 0x59, 0xe4, 0xf2, 0xf9, 0x6a, 0x82, 0x14, 0x50,
+ 0xb9, 0x4d, 0x8a, 0x80, 0x56, 0xfb, 0xb3, 0x3b, 0x3a, 0xb9, 0x29, 0x56,
+ 0x69, 0xd7, 0x12, 0x12, 0x2b, 0x48, 0xb1, 0xa0, 0x38, 0xe2, 0xd7, 0x94,
+ 0xb4, 0xf4, 0x4d, 0x46,
+};
+static const unsigned char kat3942_entropyinpr1[] = {
+ 0xea, 0x87, 0xe5, 0xb9, 0x80, 0x83, 0xdb, 0x39, 0x91, 0x46, 0xc3, 0xc3,
+ 0xa0, 0x58, 0xa6, 0x31, 0xcd, 0x45, 0x4d, 0xb2, 0x73, 0x23, 0x3e, 0xf9,
+ 0x56, 0xf5, 0x73, 0x59, 0xc8, 0xbc, 0xe3, 0x6a, 0xa2, 0x36, 0x83, 0x6e,
+ 0xb7, 0x30, 0xe5, 0x0b,
+};
+static const unsigned char kat3942_addinpr1[] = {0};
+static const unsigned char kat3942_entropyinpr2[] = {
+ 0x47, 0x50, 0x61, 0x1f, 0x8e, 0x46, 0xb9, 0x11, 0x73, 0x37, 0x67, 0xf2,
+ 0x8e, 0x63, 0x34, 0xf0, 0xdb, 0x67, 0xfe, 0x4a, 0x81, 0x72, 0x54, 0xd9,
+ 0x0b, 0x24, 0x5a, 0xa5, 0xb0, 0x9f, 0x77, 0x9d, 0x18, 0x53, 0xbd, 0x67,
+ 0xa6, 0x85, 0x1a, 0xbb,
+};
+static const unsigned char kat3942_addinpr2[] = {0};
+static const unsigned char kat3942_retbits[] = {
+ 0xbe, 0xc9, 0xbe, 0x09, 0x9f, 0x6f, 0x6b, 0xeb, 0x96, 0x1f, 0xa1, 0x78,
+ 0xf8, 0x53, 0x62, 0xa5, 0xf8, 0x3e, 0x16, 0x72, 0x32, 0xea, 0x7c, 0xa3,
+ 0x20, 0x9d, 0x9b, 0x2d, 0x97, 0x19, 0x17, 0x56, 0x65, 0xe2, 0x65, 0x60,
+ 0xe3, 0x19, 0x33, 0xf8, 0xda, 0x70, 0x6b, 0x1d, 0x39, 0x02, 0x77, 0x10,
+ 0x2a, 0x61, 0xde, 0x89, 0x11, 0xa1, 0x08, 0x63, 0x00, 0xc7, 0x1d, 0xec,
+ 0x1c, 0x67, 0xce, 0x9c,
+};
+static const struct drbg_kat_pr_true kat3942_t = {
+ 11, kat3942_entropyin, kat3942_nonce, kat3942_persstr,
+ kat3942_entropyinpr1, kat3942_addinpr1, kat3942_entropyinpr2,
+ kat3942_addinpr2, kat3942_retbits
+};
+static const struct drbg_kat kat3942 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3942_t
+};
+
+static const unsigned char kat3943_entropyin[] = {
+ 0xde, 0xcb, 0xba, 0xd6, 0x35, 0x46, 0x03, 0xad, 0xc2, 0x1c, 0x97, 0x9b,
+ 0xfa, 0xf2, 0xbc, 0xa6, 0x59, 0x24, 0x8f, 0xcf, 0x2d, 0xec, 0x66, 0xed,
+ 0x7c, 0x70, 0x9e, 0x71, 0xe7, 0x05, 0x51, 0x9c, 0x31, 0x21, 0x86, 0xd1,
+ 0xb5, 0x18, 0x6d, 0xc4,
+};
+static const unsigned char kat3943_nonce[] = {0};
+static const unsigned char kat3943_persstr[] = {
+ 0x2e, 0xb9, 0xc1, 0xf7, 0xb0, 0x30, 0x8a, 0x33, 0x24, 0xbd, 0x56, 0x22,
+ 0x57, 0x2c, 0x86, 0x38, 0xf7, 0x50, 0x0b, 0xfa, 0x31, 0x08, 0x00, 0x8d,
+ 0x8b, 0x52, 0x78, 0xe1, 0x79, 0xea, 0x89, 0x27, 0x87, 0x34, 0x6a, 0xbd,
+ 0x56, 0xa0, 0xac, 0x2b,
+};
+static const unsigned char kat3943_entropyinpr1[] = {
+ 0xed, 0xc6, 0x80, 0xf0, 0x56, 0x40, 0x38, 0x06, 0x01, 0xe6, 0x92, 0xdf,
+ 0xed, 0xe3, 0x92, 0xac, 0x0a, 0xf5, 0xa9, 0x85, 0x44, 0x76, 0x6a, 0xe7,
+ 0x3c, 0x94, 0x77, 0xcb, 0x73, 0xa4, 0x19, 0xa7, 0x10, 0x4e, 0x26, 0x25,
+ 0xe1, 0x21, 0x79, 0x6d,
+};
+static const unsigned char kat3943_addinpr1[] = {0};
+static const unsigned char kat3943_entropyinpr2[] = {
+ 0xea, 0x2a, 0x16, 0x0b, 0x4a, 0xba, 0xaf, 0x40, 0x8f, 0xf9, 0x45, 0x23,
+ 0x1a, 0x74, 0x1e, 0xfe, 0x0b, 0x47, 0x95, 0x64, 0x7b, 0xd6, 0xb9, 0x17,
+ 0xd6, 0x93, 0x34, 0x79, 0xb7, 0x24, 0x52, 0x47, 0x8a, 0xa7, 0x66, 0xca,
+ 0x83, 0x43, 0x26, 0xc7,
+};
+static const unsigned char kat3943_addinpr2[] = {0};
+static const unsigned char kat3943_retbits[] = {
+ 0x39, 0x4a, 0x8c, 0x5e, 0x3c, 0xd4, 0xc3, 0x66, 0xac, 0x4b, 0x28, 0x37,
+ 0xd8, 0xd7, 0x46, 0x1a, 0x72, 0xea, 0xc3, 0xa8, 0x93, 0x7b, 0xa0, 0x58,
+ 0x09, 0x59, 0xb1, 0xba, 0x7e, 0xdd, 0x80, 0x3c, 0xab, 0x8a, 0x90, 0xb8,
+ 0x26, 0xa3, 0x4a, 0xc3, 0x04, 0x8a, 0x7d, 0xcd, 0xab, 0x7d, 0xf7, 0x3c,
+ 0x82, 0xae, 0x37, 0x76, 0x56, 0xae, 0x48, 0x09, 0x3f, 0xff, 0xff, 0x76,
+ 0x09, 0xa6, 0x73, 0xa0,
+};
+static const struct drbg_kat_pr_true kat3943_t = {
+ 12, kat3943_entropyin, kat3943_nonce, kat3943_persstr,
+ kat3943_entropyinpr1, kat3943_addinpr1, kat3943_entropyinpr2,
+ kat3943_addinpr2, kat3943_retbits
+};
+static const struct drbg_kat kat3943 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3943_t
+};
+
+static const unsigned char kat3944_entropyin[] = {
+ 0x06, 0x43, 0x3c, 0xe6, 0x84, 0x28, 0x5c, 0x60, 0x93, 0x86, 0x2e, 0x04,
+ 0x3c, 0x62, 0xbc, 0xbe, 0x4b, 0xb7, 0xe5, 0x27, 0x6a, 0xde, 0x0f, 0xad,
+ 0x10, 0xa1, 0xc3, 0x1a, 0xa2, 0xc7, 0x88, 0xbd, 0x03, 0x8f, 0xed, 0x0c,
+ 0x6f, 0x14, 0xd0, 0x5e,
+};
+static const unsigned char kat3944_nonce[] = {0};
+static const unsigned char kat3944_persstr[] = {
+ 0x43, 0x1d, 0x1e, 0x40, 0x12, 0xe4, 0xfd, 0xa1, 0x46, 0xc2, 0x2f, 0x32,
+ 0xe2, 0x13, 0x64, 0x24, 0xd4, 0x69, 0x9f, 0x60, 0xc6, 0x3b, 0x8e, 0xab,
+ 0xd2, 0x57, 0x5e, 0x9b, 0xe1, 0x6b, 0x98, 0x9c, 0x94, 0x8b, 0x00, 0xe7,
+ 0x5b, 0x85, 0xfb, 0xe2,
+};
+static const unsigned char kat3944_entropyinpr1[] = {
+ 0xaa, 0x6d, 0xc2, 0xcf, 0x88, 0xf1, 0x25, 0x23, 0x22, 0x90, 0xa7, 0xb9,
+ 0xe5, 0x58, 0x7c, 0xa1, 0xf2, 0x0d, 0x5d, 0x36, 0xb4, 0x95, 0x0d, 0x91,
+ 0xc7, 0xb9, 0x89, 0x93, 0xe4, 0xc0, 0xaf, 0xcd, 0x31, 0x0e, 0xb3, 0xd0,
+ 0x3b, 0xc8, 0xd5, 0x80,
+};
+static const unsigned char kat3944_addinpr1[] = {0};
+static const unsigned char kat3944_entropyinpr2[] = {
+ 0xb4, 0x43, 0x7f, 0x56, 0x94, 0x08, 0x3e, 0x04, 0xb1, 0xe9, 0x00, 0xb2,
+ 0xab, 0x4d, 0x88, 0xd9, 0x97, 0x85, 0x1c, 0x7b, 0x4a, 0xe0, 0x67, 0x83,
+ 0xf4, 0x3a, 0x52, 0x85, 0x1e, 0xa8, 0xdb, 0xd8, 0xd6, 0xa6, 0x96, 0xf5,
+ 0xb0, 0xa4, 0x30, 0xda,
+};
+static const unsigned char kat3944_addinpr2[] = {0};
+static const unsigned char kat3944_retbits[] = {
+ 0x92, 0xef, 0xc3, 0x29, 0x01, 0xeb, 0xef, 0x99, 0x7c, 0x09, 0x74, 0x2a,
+ 0x31, 0xb2, 0x6b, 0x27, 0x52, 0xc7, 0x9d, 0x5c, 0x72, 0xfa, 0x37, 0x0b,
+ 0x5b, 0x96, 0x0e, 0x8e, 0x3f, 0x75, 0x6a, 0x83, 0xbd, 0x75, 0xe0, 0x01,
+ 0xf4, 0xbf, 0xe8, 0x23, 0x36, 0x2e, 0x7f, 0x10, 0x50, 0x40, 0x98, 0xa9,
+ 0x16, 0x3e, 0x23, 0x46, 0x8d, 0xa1, 0x1a, 0x2b, 0x3d, 0x98, 0xeb, 0xfd,
+ 0xf9, 0x91, 0x22, 0xe2,
+};
+static const struct drbg_kat_pr_true kat3944_t = {
+ 13, kat3944_entropyin, kat3944_nonce, kat3944_persstr,
+ kat3944_entropyinpr1, kat3944_addinpr1, kat3944_entropyinpr2,
+ kat3944_addinpr2, kat3944_retbits
+};
+static const struct drbg_kat kat3944 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3944_t
+};
+
+static const unsigned char kat3945_entropyin[] = {
+ 0x71, 0x44, 0x3f, 0x5d, 0x72, 0x13, 0xa5, 0xe7, 0xeb, 0x26, 0x8c, 0x0c,
+ 0x7b, 0xec, 0x51, 0x2b, 0x98, 0x39, 0xea, 0x90, 0x86, 0x92, 0xd8, 0x22,
+ 0xe8, 0x12, 0xf9, 0x55, 0xb7, 0x43, 0x08, 0xc6, 0x18, 0xb0, 0x70, 0x6d,
+ 0x74, 0x60, 0xc8, 0xa5,
+};
+static const unsigned char kat3945_nonce[] = {0};
+static const unsigned char kat3945_persstr[] = {
+ 0x51, 0xbd, 0x28, 0xec, 0xa7, 0x02, 0x77, 0xcb, 0x41, 0xfa, 0x23, 0x16,
+ 0x63, 0x53, 0xe5, 0xa4, 0x75, 0x39, 0x9e, 0xcf, 0xb2, 0x01, 0x2d, 0x55,
+ 0xfe, 0xe6, 0xb1, 0xee, 0xea, 0x6f, 0x50, 0x7f, 0xa7, 0x5e, 0x46, 0x34,
+ 0xc3, 0xa1, 0xe8, 0x02,
+};
+static const unsigned char kat3945_entropyinpr1[] = {
+ 0x82, 0x83, 0x57, 0xad, 0x5c, 0x99, 0xf1, 0x14, 0x39, 0x4f, 0x57, 0x8f,
+ 0x56, 0xcd, 0x7e, 0x9a, 0x5d, 0xa6, 0x71, 0x63, 0x6b, 0xce, 0x00, 0xa4,
+ 0xb2, 0x2d, 0x77, 0xe9, 0x8d, 0xd8, 0x2b, 0x63, 0x1e, 0xba, 0x6d, 0x9e,
+ 0xe5, 0x83, 0xcd, 0x51,
+};
+static const unsigned char kat3945_addinpr1[] = {0};
+static const unsigned char kat3945_entropyinpr2[] = {
+ 0x6f, 0x25, 0x6e, 0x9f, 0x5f, 0x7a, 0x84, 0xba, 0x4f, 0xd6, 0xeb, 0x19,
+ 0xb6, 0xae, 0x20, 0xb2, 0x7c, 0x26, 0x66, 0x0e, 0x51, 0x98, 0x2b, 0xc4,
+ 0xcf, 0x8e, 0x28, 0xa2, 0xdc, 0x43, 0xcd, 0xb7, 0x23, 0xcc, 0x8a, 0x72,
+ 0x7c, 0x2e, 0xa9, 0x1d,
+};
+static const unsigned char kat3945_addinpr2[] = {0};
+static const unsigned char kat3945_retbits[] = {
+ 0xc1, 0x76, 0x91, 0x0a, 0x6a, 0x7c, 0x96, 0x98, 0x28, 0x41, 0xc0, 0xb6,
+ 0x03, 0xb4, 0x23, 0xb2, 0xfa, 0x67, 0xc2, 0x67, 0xb5, 0x38, 0x8d, 0x85,
+ 0x8a, 0x4d, 0x8d, 0xcd, 0x69, 0xd6, 0xb6, 0x7c, 0xb9, 0x68, 0x16, 0x89,
+ 0x21, 0x62, 0x14, 0x7e, 0x38, 0xcc, 0x60, 0x2a, 0xfa, 0x45, 0x9f, 0xc5,
+ 0x62, 0x3d, 0xa0, 0x86, 0x2b, 0x74, 0xf1, 0xe8, 0xf5, 0x69, 0xbf, 0x3b,
+ 0x10, 0x24, 0xd8, 0x81,
+};
+static const struct drbg_kat_pr_true kat3945_t = {
+ 14, kat3945_entropyin, kat3945_nonce, kat3945_persstr,
+ kat3945_entropyinpr1, kat3945_addinpr1, kat3945_entropyinpr2,
+ kat3945_addinpr2, kat3945_retbits
+};
+static const struct drbg_kat kat3945 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3945_t
+};
+
+static const unsigned char kat3946_entropyin[] = {
+ 0x6a, 0x5d, 0x9d, 0x87, 0x98, 0x26, 0x24, 0xc9, 0x80, 0x9e, 0x18, 0x03,
+ 0x24, 0x33, 0x78, 0x64, 0x08, 0xc2, 0xf5, 0x48, 0x1c, 0x0b, 0xd8, 0x11,
+ 0x79, 0xf3, 0x97, 0x0f, 0xb6, 0xb5, 0x5b, 0x1b, 0x78, 0xc3, 0x6e, 0xeb,
+ 0x0a, 0x2a, 0x89, 0x94,
+};
+static const unsigned char kat3946_nonce[] = {0};
+static const unsigned char kat3946_persstr[] = {
+ 0x2e, 0x12, 0xd9, 0x22, 0x2c, 0x2d, 0x71, 0xa8, 0x34, 0x4a, 0x4f, 0x61,
+ 0x24, 0xe7, 0x8c, 0x4f, 0x5b, 0x6f, 0xa1, 0xca, 0xb9, 0x92, 0x58, 0x60,
+ 0x05, 0xde, 0x04, 0x5d, 0x4c, 0x4c, 0x9a, 0x72, 0xe4, 0xa1, 0x71, 0x25,
+ 0x7c, 0xd2, 0x6a, 0xba,
+};
+static const unsigned char kat3946_entropyinpr1[] = {
+ 0x60, 0xa1, 0xa1, 0xaa, 0x8b, 0xdf, 0x25, 0x1a, 0x36, 0xc0, 0xd3, 0x52,
+ 0x88, 0x46, 0xf8, 0x3f, 0x3e, 0x46, 0x41, 0x14, 0x16, 0x0f, 0x66, 0x81,
+ 0xce, 0x09, 0x66, 0x3b, 0xd4, 0xdc, 0x73, 0xfd, 0x11, 0xd6, 0xf5, 0xe3,
+ 0xe5, 0xf1, 0x48, 0x33,
+};
+static const unsigned char kat3946_addinpr1[] = {
+ 0xfd, 0x5e, 0xa0, 0x80, 0xeb, 0x32, 0x10, 0x4e, 0x59, 0xf3, 0x31, 0xe0,
+ 0xf4, 0x89, 0xf4, 0x65, 0x1f, 0x89, 0x5b, 0x4e, 0x43, 0x04, 0x33, 0x0d,
+ 0x0e, 0x0c, 0x65, 0xe5, 0xbe, 0x23, 0xbc, 0xd9, 0xec, 0x4a, 0x36, 0x5c,
+ 0x30, 0xdc, 0x22, 0x60,
+};
+static const unsigned char kat3946_entropyinpr2[] = {
+ 0x5b, 0x40, 0xb9, 0x64, 0xc9, 0xff, 0xde, 0xc2, 0xe7, 0x04, 0xef, 0x7f,
+ 0x5d, 0x3a, 0x85, 0xcf, 0xa6, 0x7f, 0xa7, 0x80, 0x0c, 0x89, 0xaf, 0xbf,
+ 0xe3, 0x24, 0x87, 0x51, 0x9e, 0x48, 0x75, 0x81, 0x26, 0xa9, 0x8a, 0x42,
+ 0x5a, 0x92, 0x1e, 0xd1,
+};
+static const unsigned char kat3946_addinpr2[] = {
+ 0xcc, 0xcc, 0x70, 0xa0, 0x26, 0x07, 0x45, 0x80, 0x8f, 0xde, 0x55, 0x2f,
+ 0x54, 0xfe, 0x18, 0xf2, 0x61, 0x08, 0x4c, 0x65, 0x6c, 0x96, 0x95, 0x41,
+ 0x14, 0x93, 0xff, 0x89, 0x96, 0xbf, 0xc6, 0x21, 0xb6, 0xd3, 0x1a, 0x4d,
+ 0xa8, 0x8a, 0x39, 0xee,
+};
+static const unsigned char kat3946_retbits[] = {
+ 0x4b, 0xa3, 0x6c, 0x4b, 0x4f, 0xde, 0xf3, 0x2a, 0x50, 0xbf, 0x34, 0x98,
+ 0xb7, 0xc8, 0xe2, 0xa1, 0xa9, 0x83, 0x4a, 0x62, 0x95, 0xa3, 0x3f, 0xc2,
+ 0x46, 0xcc, 0x3b, 0xe2, 0x0f, 0x0f, 0xa1, 0x33, 0x44, 0x00, 0xb9, 0xe4,
+ 0xfb, 0x36, 0x99, 0xba, 0xbc, 0x84, 0x4a, 0x62, 0xe5, 0x71, 0xc8, 0xb7,
+ 0x4a, 0xf2, 0x32, 0x99, 0x4d, 0xf7, 0x3c, 0x05, 0xeb, 0xf8, 0x8c, 0x54,
+ 0x24, 0xdc, 0x89, 0xaa,
+};
+static const struct drbg_kat_pr_true kat3946_t = {
+ 0, kat3946_entropyin, kat3946_nonce, kat3946_persstr,
+ kat3946_entropyinpr1, kat3946_addinpr1, kat3946_entropyinpr2,
+ kat3946_addinpr2, kat3946_retbits
+};
+static const struct drbg_kat kat3946 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3946_t
+};
+
+static const unsigned char kat3947_entropyin[] = {
+ 0xb5, 0xcd, 0x09, 0x81, 0xce, 0x9e, 0x51, 0xfe, 0x43, 0x6a, 0x20, 0x57,
+ 0xfc, 0x76, 0x54, 0x47, 0x43, 0xb0, 0x03, 0x9b, 0x6e, 0x4e, 0x52, 0xbf,
+ 0x00, 0x40, 0x23, 0x0b, 0x6f, 0x41, 0xb3, 0x72, 0x39, 0xb0, 0xaa, 0x03,
+ 0x01, 0x3e, 0x46, 0x50,
+};
+static const unsigned char kat3947_nonce[] = {0};
+static const unsigned char kat3947_persstr[] = {
+ 0x36, 0x38, 0x8d, 0x1e, 0xbf, 0xc0, 0x5e, 0xc0, 0xcb, 0x62, 0x7c, 0x60,
+ 0xc1, 0xf6, 0x05, 0x36, 0x5e, 0x5f, 0xfe, 0x35, 0x98, 0x8e, 0x15, 0x82,
+ 0xdf, 0xf1, 0x29, 0xee, 0xff, 0x97, 0xc1, 0x46, 0xff, 0x9b, 0x43, 0xbb,
+ 0x57, 0x40, 0xf7, 0xea,
+};
+static const unsigned char kat3947_entropyinpr1[] = {
+ 0x91, 0x9b, 0xf6, 0x9e, 0x5f, 0xc6, 0x7a, 0xe2, 0xb1, 0xdd, 0x70, 0x5a,
+ 0x4a, 0x3a, 0x0b, 0xba, 0x2d, 0x77, 0xc4, 0x92, 0x44, 0x4a, 0x71, 0x80,
+ 0x81, 0x56, 0x93, 0x77, 0xb7, 0x2d, 0x85, 0xd4, 0x50, 0x4d, 0x94, 0xaa,
+ 0x1f, 0xc6, 0xe4, 0x3d,
+};
+static const unsigned char kat3947_addinpr1[] = {
+ 0xc4, 0x8e, 0xe8, 0x4a, 0xaf, 0x06, 0xca, 0xf7, 0x54, 0xb6, 0x51, 0xe6,
+ 0x76, 0x1c, 0x64, 0x19, 0x97, 0xa0, 0x00, 0x33, 0xe8, 0xbc, 0x7d, 0x54,
+ 0x4a, 0x1c, 0xc0, 0xd2, 0x0c, 0x8c, 0x56, 0xec, 0xa7, 0x54, 0x89, 0x94,
+ 0x4e, 0xe2, 0xf4, 0xc0,
+};
+static const unsigned char kat3947_entropyinpr2[] = {
+ 0xf8, 0x92, 0x73, 0x55, 0x34, 0x2b, 0x2f, 0xb1, 0x5b, 0x03, 0x2d, 0xc2,
+ 0x68, 0x32, 0x4a, 0x74, 0x00, 0xac, 0xdf, 0x1b, 0xbd, 0xfe, 0x24, 0xf9,
+ 0xbb, 0x3e, 0xc2, 0x23, 0xc9, 0x3c, 0x0a, 0x87, 0xdf, 0xc8, 0xed, 0x1f,
+ 0xda, 0x1e, 0x34, 0x83,
+};
+static const unsigned char kat3947_addinpr2[] = {
+ 0x0a, 0x9b, 0xab, 0xd6, 0x26, 0xb5, 0xdf, 0x2e, 0x3e, 0x68, 0xad, 0xc2,
+ 0x17, 0x1a, 0x72, 0xcc, 0xe7, 0xaf, 0x0d, 0x89, 0x10, 0x44, 0x8d, 0x54,
+ 0xf4, 0xf2, 0xc3, 0x75, 0xc1, 0xfb, 0x42, 0x19, 0x28, 0x08, 0xff, 0x2d,
+ 0x76, 0x0b, 0x18, 0x2e,
+};
+static const unsigned char kat3947_retbits[] = {
+ 0x62, 0x50, 0x11, 0x67, 0xcb, 0x1f, 0x3d, 0x71, 0xcb, 0x9b, 0x09, 0x2e,
+ 0x3b, 0x79, 0x21, 0x92, 0xa0, 0xfc, 0x26, 0x48, 0xa3, 0x76, 0xd9, 0x1e,
+ 0xcb, 0xb2, 0x9d, 0x00, 0x72, 0xb8, 0xba, 0xc7, 0x95, 0xba, 0xe0, 0xea,
+ 0x45, 0x58, 0x46, 0xc6, 0xb1, 0x6e, 0x27, 0xd6, 0x70, 0xd9, 0x89, 0x64,
+ 0x73, 0x1d, 0x3d, 0xc9, 0x50, 0x0f, 0xbd, 0xdb, 0x16, 0x57, 0x02, 0xde,
+ 0x45, 0xdb, 0xc0, 0x23,
+};
+static const struct drbg_kat_pr_true kat3947_t = {
+ 1, kat3947_entropyin, kat3947_nonce, kat3947_persstr,
+ kat3947_entropyinpr1, kat3947_addinpr1, kat3947_entropyinpr2,
+ kat3947_addinpr2, kat3947_retbits
+};
+static const struct drbg_kat kat3947 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3947_t
+};
+
+static const unsigned char kat3948_entropyin[] = {
+ 0x02, 0xf3, 0xc4, 0xa1, 0xdd, 0x69, 0xbf, 0x28, 0x1c, 0x0b, 0x9c, 0x9d,
+ 0xdc, 0x27, 0xe6, 0x8d, 0x8a, 0x90, 0xbb, 0x74, 0xdc, 0x49, 0x29, 0x93,
+ 0xf4, 0xdc, 0x0d, 0xc6, 0xb2, 0x49, 0xe2, 0x37, 0xbb, 0x7a, 0x54, 0x06,
+ 0x9d, 0x95, 0x67, 0x35,
+};
+static const unsigned char kat3948_nonce[] = {0};
+static const unsigned char kat3948_persstr[] = {
+ 0x6c, 0x30, 0x40, 0xac, 0x6d, 0x69, 0x43, 0xed, 0x18, 0x00, 0x74, 0x2f,
+ 0xd1, 0x36, 0x61, 0x61, 0x09, 0x2b, 0x36, 0x36, 0xef, 0xe2, 0x29, 0x85,
+ 0x06, 0xc6, 0x96, 0xaa, 0xc1, 0xa7, 0xa9, 0xd8, 0x96, 0x83, 0xb4, 0x0e,
+ 0x27, 0xbf, 0x4a, 0x74,
+};
+static const unsigned char kat3948_entropyinpr1[] = {
+ 0x3b, 0x3c, 0x0e, 0xa6, 0xac, 0x17, 0x31, 0x2c, 0x98, 0x45, 0x81, 0x45,
+ 0x83, 0x82, 0x20, 0xb1, 0x35, 0xef, 0xda, 0x79, 0x43, 0x33, 0x7c, 0xa4,
+ 0xf1, 0x36, 0x26, 0xbe, 0x6a, 0x4f, 0x03, 0xd2, 0x3b, 0x23, 0x98, 0x0f,
+ 0x67, 0x85, 0xba, 0x60,
+};
+static const unsigned char kat3948_addinpr1[] = {
+ 0xb1, 0xb7, 0x2c, 0xd4, 0x9b, 0x5d, 0x45, 0xfd, 0xea, 0xce, 0x1c, 0x7f,
+ 0x47, 0x0e, 0x90, 0x59, 0xb2, 0x21, 0x9f, 0xcd, 0xc3, 0x3e, 0x90, 0x1e,
+ 0x96, 0x0c, 0x8e, 0x70, 0x72, 0xc5, 0x43, 0xd0, 0x72, 0x10, 0x38, 0x80,
+ 0x7d, 0x9b, 0x9f, 0xc3,
+};
+static const unsigned char kat3948_entropyinpr2[] = {
+ 0x20, 0xbb, 0xb0, 0x4d, 0x85, 0xab, 0xfe, 0x74, 0x31, 0xcb, 0xdb, 0x68,
+ 0x96, 0x95, 0x37, 0x44, 0xbb, 0x18, 0xc8, 0xc0, 0xf3, 0x64, 0x45, 0x1e,
+ 0xcd, 0x47, 0xbe, 0x3b, 0xed, 0x78, 0x4f, 0x27, 0x35, 0xb3, 0x0b, 0x4a,
+ 0x97, 0xc6, 0x97, 0xb8,
+};
+static const unsigned char kat3948_addinpr2[] = {
+ 0x2a, 0x7d, 0x8c, 0x96, 0x37, 0x15, 0xe4, 0xdb, 0x36, 0xe5, 0x3e, 0x7f,
+ 0x3b, 0x8a, 0x5f, 0x09, 0x2f, 0x90, 0x46, 0x47, 0xa1, 0xc8, 0xef, 0x27,
+ 0xa5, 0xbd, 0x88, 0x05, 0x10, 0x5a, 0x50, 0xf5, 0xe5, 0x4f, 0xe7, 0xd2,
+ 0x06, 0xeb, 0x22, 0x10,
+};
+static const unsigned char kat3948_retbits[] = {
+ 0x04, 0x43, 0x67, 0x07, 0x40, 0x0f, 0xee, 0x36, 0xdb, 0xf8, 0x63, 0x2e,
+ 0x40, 0x97, 0xcb, 0x40, 0x7e, 0xf7, 0x73, 0x68, 0x06, 0x24, 0x6f, 0x9e,
+ 0x6c, 0xa4, 0x6d, 0xbf, 0x98, 0x06, 0xdb, 0x3c, 0x97, 0x9f, 0xe0, 0x67,
+ 0xd2, 0x7f, 0xfe, 0x35, 0x11, 0x4d, 0x2b, 0xf2, 0x0b, 0x1e, 0x7b, 0x3e,
+ 0x4d, 0xed, 0xdf, 0x17, 0xa0, 0x9a, 0xd2, 0xd3, 0xbc, 0x8a, 0xaf, 0xb1,
+ 0x76, 0x45, 0xfe, 0x68,
+};
+static const struct drbg_kat_pr_true kat3948_t = {
+ 2, kat3948_entropyin, kat3948_nonce, kat3948_persstr,
+ kat3948_entropyinpr1, kat3948_addinpr1, kat3948_entropyinpr2,
+ kat3948_addinpr2, kat3948_retbits
+};
+static const struct drbg_kat kat3948 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3948_t
+};
+
+static const unsigned char kat3949_entropyin[] = {
+ 0xd8, 0xe0, 0x97, 0x51, 0xed, 0xc1, 0x58, 0x63, 0xe7, 0xe3, 0x6e, 0x63,
+ 0xf7, 0x73, 0xb8, 0x23, 0x0a, 0x2b, 0x83, 0x38, 0x96, 0x91, 0xe8, 0xc0,
+ 0x05, 0xeb, 0x15, 0x3f, 0xc9, 0x92, 0x53, 0x9b, 0x1d, 0x7f, 0x35, 0x75,
+ 0x3b, 0x00, 0xb1, 0x69,
+};
+static const unsigned char kat3949_nonce[] = {0};
+static const unsigned char kat3949_persstr[] = {
+ 0xc3, 0x27, 0xbc, 0x54, 0x52, 0xe3, 0x3b, 0xee, 0xf5, 0x5d, 0x39, 0xba,
+ 0x9b, 0xe5, 0xa3, 0x51, 0x7c, 0x8b, 0xd4, 0x6d, 0xc6, 0x63, 0xb8, 0x79,
+ 0xc2, 0x3f, 0xcc, 0x9d, 0x9e, 0xef, 0xb7, 0x3b, 0xe5, 0x96, 0xb0, 0x32,
+ 0xdd, 0xba, 0x22, 0x4e,
+};
+static const unsigned char kat3949_entropyinpr1[] = {
+ 0x65, 0x3a, 0x92, 0x7d, 0x92, 0x30, 0x8f, 0xaf, 0xfd, 0x0d, 0xb8, 0x2c,
+ 0xcf, 0x5a, 0x74, 0xa2, 0x3f, 0xa1, 0xb4, 0x3a, 0x13, 0xf0, 0xc7, 0x3d,
+ 0x09, 0xbd, 0x0b, 0xaa, 0x79, 0xeb, 0x8c, 0x30, 0xf3, 0x3d, 0x43, 0x0e,
+ 0xf4, 0x85, 0xaf, 0x82,
+};
+static const unsigned char kat3949_addinpr1[] = {
+ 0xac, 0xb2, 0x56, 0x20, 0x47, 0xfc, 0x8a, 0x85, 0x58, 0x55, 0x10, 0xc2,
+ 0x31, 0x0f, 0x19, 0xd7, 0xc9, 0x91, 0xa2, 0xf5, 0x66, 0xa7, 0x8a, 0xeb,
+ 0x89, 0x01, 0x1b, 0x13, 0xe7, 0x1d, 0x28, 0xc6, 0x8b, 0xfa, 0x87, 0xf3,
+ 0x66, 0x66, 0xbd, 0x30,
+};
+static const unsigned char kat3949_entropyinpr2[] = {
+ 0x79, 0x6a, 0x51, 0x4d, 0x39, 0x76, 0xd4, 0x24, 0xdd, 0x9c, 0x49, 0x4c,
+ 0x92, 0xc4, 0x39, 0x23, 0x40, 0x30, 0xb1, 0x98, 0x9d, 0xe8, 0xfa, 0xfa,
+ 0xaf, 0xd7, 0x71, 0x7f, 0xc3, 0x5c, 0x9d, 0xd7, 0x28, 0x8b, 0x21, 0x36,
+ 0xf0, 0x5f, 0x1d, 0xac,
+};
+static const unsigned char kat3949_addinpr2[] = {
+ 0x1c, 0x49, 0xc5, 0x8d, 0x70, 0x6b, 0x29, 0xe1, 0x95, 0x78, 0x83, 0x46,
+ 0xd1, 0x0c, 0x91, 0xe5, 0x86, 0x4f, 0x66, 0xc9, 0x60, 0xad, 0x3b, 0x02,
+ 0xf9, 0xe9, 0xd5, 0x48, 0x56, 0x5a, 0x89, 0x04, 0xee, 0x99, 0x65, 0x5a,
+ 0x8e, 0x2d, 0x53, 0x35,
+};
+static const unsigned char kat3949_retbits[] = {
+ 0x71, 0x39, 0x16, 0x78, 0x35, 0xab, 0x7d, 0x08, 0xf4, 0xfe, 0x34, 0xa5,
+ 0xb4, 0x4f, 0x76, 0x5b, 0xaa, 0xbc, 0xce, 0x9f, 0x90, 0x53, 0xff, 0x85,
+ 0xad, 0x99, 0x98, 0x5c, 0x23, 0x20, 0x60, 0x4a, 0x69, 0xf1, 0xa6, 0xe0,
+ 0xa7, 0x87, 0xb1, 0xaf, 0x19, 0xb7, 0x07, 0x24, 0x49, 0x32, 0xa5, 0x2b,
+ 0x97, 0x53, 0x4a, 0xc3, 0x7c, 0xa9, 0x01, 0x0b, 0xb7, 0x92, 0x5e, 0xf8,
+ 0x94, 0xc9, 0x0a, 0x2e,
+};
+static const struct drbg_kat_pr_true kat3949_t = {
+ 3, kat3949_entropyin, kat3949_nonce, kat3949_persstr,
+ kat3949_entropyinpr1, kat3949_addinpr1, kat3949_entropyinpr2,
+ kat3949_addinpr2, kat3949_retbits
+};
+static const struct drbg_kat kat3949 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3949_t
+};
+
+static const unsigned char kat3950_entropyin[] = {
+ 0x2c, 0x8f, 0x72, 0x01, 0x59, 0x31, 0xe1, 0x96, 0xf5, 0xc4, 0xfd, 0xef,
+ 0xf3, 0xd2, 0x70, 0x85, 0xdc, 0xdc, 0x4b, 0x4d, 0xd5, 0xdd, 0x77, 0x45,
+ 0xd8, 0x76, 0x58, 0x5f, 0xfa, 0x3b, 0x5c, 0x1e, 0x52, 0x6d, 0x6b, 0xf5,
+ 0xfc, 0x92, 0x47, 0x58,
+};
+static const unsigned char kat3950_nonce[] = {0};
+static const unsigned char kat3950_persstr[] = {
+ 0x14, 0x56, 0x4a, 0x84, 0x05, 0x44, 0x06, 0x3b, 0xc9, 0x29, 0x20, 0x0d,
+ 0x19, 0x74, 0xf2, 0x8f, 0x31, 0x6a, 0x74, 0x85, 0xe7, 0x80, 0xc9, 0x63,
+ 0x8a, 0x42, 0xd5, 0x8f, 0x37, 0x5a, 0x26, 0xff, 0xa7, 0x04, 0xc0, 0xc6,
+ 0x3d, 0x2c, 0x07, 0xc8,
+};
+static const unsigned char kat3950_entropyinpr1[] = {
+ 0xdb, 0xbc, 0xc3, 0xd6, 0xea, 0x93, 0x51, 0xa8, 0x92, 0x8f, 0xc6, 0xd4,
+ 0x44, 0x13, 0xea, 0x03, 0x0c, 0x6e, 0x81, 0x37, 0xa1, 0x74, 0x1b, 0xfe,
+ 0xc1, 0x52, 0x91, 0x35, 0x44, 0x2e, 0x20, 0x90, 0x9d, 0x90, 0x0f, 0x15,
+ 0xf0, 0x30, 0x8e, 0x05,
+};
+static const unsigned char kat3950_addinpr1[] = {
+ 0xf6, 0x41, 0xf3, 0x1c, 0x5d, 0xaa, 0x06, 0x69, 0x19, 0x34, 0x80, 0x18,
+ 0xd0, 0xde, 0x2f, 0xbd, 0x4f, 0xaf, 0x69, 0x0c, 0xdc, 0x0a, 0xa1, 0x02,
+ 0xe0, 0x9d, 0xe6, 0x6a, 0xc9, 0x25, 0x3d, 0x2a, 0xfe, 0x1f, 0xf5, 0x89,
+ 0xa9, 0x41, 0xb0, 0x98,
+};
+static const unsigned char kat3950_entropyinpr2[] = {
+ 0xa1, 0x35, 0xa0, 0x60, 0x5a, 0x54, 0x56, 0xd9, 0x21, 0xb7, 0x21, 0xe0,
+ 0x89, 0xdb, 0xbe, 0xee, 0xe1, 0x20, 0xdd, 0xd9, 0x45, 0x95, 0x33, 0x51,
+ 0x6e, 0x6a, 0x66, 0xf2, 0x56, 0x88, 0x32, 0x0e, 0x56, 0xf9, 0xd0, 0x34,
+ 0xb6, 0x37, 0xf8, 0x70,
+};
+static const unsigned char kat3950_addinpr2[] = {
+ 0x4c, 0x21, 0x91, 0xc1, 0xf2, 0x43, 0x06, 0x86, 0xe1, 0x1f, 0xac, 0x33,
+ 0x2e, 0x4d, 0x00, 0xdc, 0xba, 0xd1, 0x43, 0x7f, 0x28, 0x1b, 0x7c, 0x22,
+ 0xf7, 0x4f, 0x9b, 0x2e, 0x88, 0x17, 0xe8, 0x18, 0xbf, 0x35, 0x88, 0x10,
+ 0xd2, 0x0d, 0x68, 0x0b,
+};
+static const unsigned char kat3950_retbits[] = {
+ 0x48, 0xf0, 0xfe, 0x50, 0xd9, 0x90, 0x87, 0x9f, 0x3e, 0xb3, 0x7e, 0xfc,
+ 0xd8, 0x16, 0x08, 0x2d, 0x6b, 0xa6, 0x51, 0xf5, 0x71, 0x8f, 0x46, 0x83,
+ 0x05, 0xa1, 0x6a, 0xc8, 0xd5, 0x1b, 0xb0, 0x34, 0x2c, 0xce, 0x19, 0x95,
+ 0x29, 0xef, 0xca, 0xd5, 0x59, 0x0b, 0xc9, 0x6f, 0x76, 0x5b, 0xf3, 0xfe,
+ 0xdd, 0x56, 0x43, 0x02, 0xa5, 0xd6, 0x4f, 0xa0, 0xb6, 0x3b, 0x14, 0xe7,
+ 0x82, 0x65, 0x04, 0x45,
+};
+static const struct drbg_kat_pr_true kat3950_t = {
+ 4, kat3950_entropyin, kat3950_nonce, kat3950_persstr,
+ kat3950_entropyinpr1, kat3950_addinpr1, kat3950_entropyinpr2,
+ kat3950_addinpr2, kat3950_retbits
+};
+static const struct drbg_kat kat3950 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3950_t
+};
+
+static const unsigned char kat3951_entropyin[] = {
+ 0x6e, 0xcf, 0xe6, 0x7c, 0x49, 0x6c, 0xe1, 0x8f, 0xe8, 0x98, 0x98, 0xc0,
+ 0x6e, 0x63, 0xfa, 0x07, 0x86, 0xf9, 0x4b, 0xb4, 0x65, 0x18, 0xd3, 0x24,
+ 0xc2, 0xa9, 0x9b, 0xa3, 0x5a, 0x0f, 0xa7, 0xf5, 0x21, 0x14, 0x0c, 0x76,
+ 0xc8, 0xbd, 0xee, 0xb2,
+};
+static const unsigned char kat3951_nonce[] = {0};
+static const unsigned char kat3951_persstr[] = {
+ 0x76, 0x85, 0x64, 0x61, 0x83, 0xc8, 0xc3, 0x52, 0xe0, 0x28, 0xd1, 0x22,
+ 0x77, 0x7d, 0xa0, 0xf3, 0xb4, 0xee, 0x48, 0x97, 0xdd, 0xd6, 0x84, 0x6a,
+ 0xf9, 0x94, 0x9d, 0xee, 0x9b, 0x95, 0xa4, 0x47, 0x97, 0x27, 0xd4, 0x39,
+ 0xb5, 0x3a, 0x6e, 0x9d,
+};
+static const unsigned char kat3951_entropyinpr1[] = {
+ 0x23, 0xd7, 0x07, 0x16, 0x31, 0x45, 0x5f, 0x05, 0xa1, 0x30, 0x7a, 0x48,
+ 0xcd, 0xa4, 0x90, 0x7f, 0xf7, 0x9c, 0x75, 0x4b, 0x65, 0x28, 0x51, 0x3f,
+ 0x5c, 0x86, 0x40, 0xe7, 0x81, 0x1b, 0xa8, 0x0a, 0xe9, 0x31, 0xaf, 0x9a,
+ 0x1d, 0x3e, 0x95, 0x46,
+};
+static const unsigned char kat3951_addinpr1[] = {
+ 0x00, 0xcf, 0x48, 0x61, 0x37, 0x8b, 0xa7, 0x40, 0xdb, 0xc4, 0x24, 0x38,
+ 0x4c, 0xb8, 0x0d, 0x8e, 0x2c, 0x60, 0xed, 0xdd, 0x74, 0x29, 0xba, 0xff,
+ 0x38, 0x73, 0x63, 0xa4, 0x31, 0x70, 0x14, 0x4e, 0x11, 0x79, 0x20, 0xe6,
+ 0xe8, 0xc3, 0xd4, 0x9f,
+};
+static const unsigned char kat3951_entropyinpr2[] = {
+ 0x51, 0x04, 0x17, 0xc8, 0x58, 0x25, 0x74, 0xcd, 0xe0, 0x9d, 0x3e, 0x98,
+ 0x0f, 0x38, 0x10, 0xf2, 0x15, 0x33, 0x9a, 0xdd, 0xdb, 0xd8, 0x36, 0xcb,
+ 0xda, 0x19, 0x72, 0x9e, 0x0b, 0x3b, 0x2d, 0x26, 0x8b, 0x0d, 0x5f, 0xad,
+ 0x5e, 0x95, 0x04, 0x9c,
+};
+static const unsigned char kat3951_addinpr2[] = {
+ 0x71, 0x12, 0x38, 0x8e, 0x5b, 0x31, 0xfd, 0x14, 0xcb, 0x82, 0x57, 0xe2,
+ 0xa1, 0x48, 0xe4, 0x15, 0xdd, 0x9a, 0x08, 0x1b, 0x62, 0x6d, 0x0d, 0xee,
+ 0xe7, 0x88, 0x3c, 0x03, 0xa2, 0x14, 0x5c, 0xb8, 0xe2, 0x03, 0x38, 0x8e,
+ 0x85, 0x72, 0x23, 0x9c,
+};
+static const unsigned char kat3951_retbits[] = {
+ 0x65, 0x40, 0xb1, 0x18, 0x92, 0xfb, 0x2e, 0xab, 0xc7, 0x92, 0x52, 0x04,
+ 0x54, 0x81, 0xaf, 0x4f, 0x4a, 0xd6, 0x91, 0xad, 0xcf, 0x4c, 0x8f, 0x4a,
+ 0xd5, 0xe9, 0xfe, 0xc5, 0x00, 0x92, 0x4a, 0xf9, 0x7b, 0x53, 0x95, 0x8e,
+ 0xbc, 0x13, 0xe1, 0x31, 0x70, 0x24, 0xf9, 0x0c, 0x89, 0x9d, 0xc2, 0x57,
+ 0xd0, 0x95, 0x46, 0x2c, 0x98, 0x4d, 0x26, 0x37, 0x44, 0x5e, 0x4a, 0x48,
+ 0x02, 0x89, 0x81, 0x7f,
+};
+static const struct drbg_kat_pr_true kat3951_t = {
+ 5, kat3951_entropyin, kat3951_nonce, kat3951_persstr,
+ kat3951_entropyinpr1, kat3951_addinpr1, kat3951_entropyinpr2,
+ kat3951_addinpr2, kat3951_retbits
+};
+static const struct drbg_kat kat3951 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3951_t
+};
+
+static const unsigned char kat3952_entropyin[] = {
+ 0x35, 0xab, 0x1d, 0xe2, 0xb1, 0x30, 0x67, 0x03, 0x05, 0x60, 0x9a, 0x16,
+ 0xd7, 0x47, 0xc7, 0x5c, 0x02, 0xdc, 0x2d, 0x46, 0xbe, 0xa0, 0x50, 0x56,
+ 0x75, 0x1c, 0x6a, 0x3e, 0xc4, 0x01, 0xd6, 0x7d, 0xf0, 0x24, 0x2d, 0x5f,
+ 0x06, 0x78, 0x6d, 0x05,
+};
+static const unsigned char kat3952_nonce[] = {0};
+static const unsigned char kat3952_persstr[] = {
+ 0xda, 0xb7, 0x60, 0x9e, 0xf4, 0xfe, 0x09, 0xd9, 0xc5, 0x16, 0x14, 0x0d,
+ 0xa1, 0x5d, 0x4a, 0x71, 0xf6, 0x5d, 0x54, 0x01, 0xb7, 0x54, 0x4a, 0x76,
+ 0xbf, 0xe1, 0x9f, 0x7c, 0x80, 0x49, 0x71, 0x06, 0xf8, 0xa5, 0x1f, 0x07,
+ 0x46, 0x37, 0xd8, 0x68,
+};
+static const unsigned char kat3952_entropyinpr1[] = {
+ 0xc0, 0x6f, 0x14, 0x90, 0x6a, 0x18, 0x6f, 0x1b, 0x95, 0xaf, 0x46, 0x5c,
+ 0xf5, 0x4a, 0xf4, 0xef, 0x49, 0xb5, 0xf4, 0x7c, 0xfa, 0xaa, 0x68, 0x41,
+ 0xb1, 0x61, 0xa5, 0x4c, 0x51, 0xad, 0x06, 0x1d, 0xfb, 0xe9, 0xf5, 0x3a,
+ 0xd0, 0x40, 0x01, 0xdb,
+};
+static const unsigned char kat3952_addinpr1[] = {
+ 0xd6, 0x45, 0xea, 0x03, 0x4e, 0x59, 0x9d, 0xd4, 0x2e, 0x62, 0x0f, 0xe2,
+ 0x6f, 0x77, 0x54, 0xea, 0xb8, 0x5c, 0xb3, 0x6a, 0x05, 0x2c, 0x0c, 0x1e,
+ 0xe4, 0x8a, 0x09, 0xa6, 0x9e, 0xae, 0xf7, 0xe5, 0x82, 0x1b, 0xb7, 0xff,
+ 0x75, 0xe2, 0x92, 0xc7,
+};
+static const unsigned char kat3952_entropyinpr2[] = {
+ 0x9a, 0x74, 0xe7, 0x78, 0x3a, 0xa9, 0xc4, 0x3f, 0xc8, 0xa4, 0x5a, 0x0c,
+ 0x17, 0x12, 0x9a, 0xc3, 0x9d, 0x84, 0xc8, 0x47, 0xdb, 0x1e, 0xb2, 0xa7,
+ 0xd7, 0xeb, 0x6c, 0xc7, 0x9e, 0x7c, 0x39, 0x50, 0x69, 0x49, 0xea, 0xc2,
+ 0x1f, 0x91, 0x67, 0x02,
+};
+static const unsigned char kat3952_addinpr2[] = {
+ 0x17, 0xd8, 0x27, 0xd2, 0xa8, 0xa1, 0x71, 0x13, 0x96, 0x44, 0x2b, 0x86,
+ 0x96, 0x31, 0x1c, 0x41, 0x45, 0x02, 0x00, 0x67, 0xb5, 0xd7, 0xb5, 0x1a,
+ 0xf6, 0x35, 0x75, 0x92, 0x06, 0x14, 0x45, 0xfc, 0xc3, 0x63, 0xed, 0x7c,
+ 0x44, 0x5a, 0xe8, 0x22,
+};
+static const unsigned char kat3952_retbits[] = {
+ 0x08, 0xe8, 0x54, 0x48, 0x03, 0xce, 0xa5, 0x22, 0x79, 0x48, 0xc9, 0xda,
+ 0x22, 0x79, 0x67, 0x3e, 0x31, 0xe3, 0x01, 0x7c, 0xd0, 0x5e, 0x69, 0x62,
+ 0x31, 0xb1, 0x16, 0xb1, 0xcf, 0xed, 0x1b, 0x6a, 0x20, 0x61, 0x1d, 0x85,
+ 0x28, 0xa6, 0x93, 0x0f, 0xc1, 0x9b, 0x14, 0x52, 0x53, 0xc5, 0xae, 0xc8,
+ 0x41, 0x44, 0x94, 0x46, 0x21, 0xdd, 0x43, 0xbb, 0x3d, 0x34, 0x82, 0x7d,
+ 0xc6, 0xe2, 0xfa, 0xa6,
+};
+static const struct drbg_kat_pr_true kat3952_t = {
+ 6, kat3952_entropyin, kat3952_nonce, kat3952_persstr,
+ kat3952_entropyinpr1, kat3952_addinpr1, kat3952_entropyinpr2,
+ kat3952_addinpr2, kat3952_retbits
+};
+static const struct drbg_kat kat3952 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3952_t
+};
+
+static const unsigned char kat3953_entropyin[] = {
+ 0xc1, 0x00, 0x46, 0xd8, 0x49, 0x01, 0x25, 0x7f, 0x0a, 0xc9, 0xe3, 0x08,
+ 0x4d, 0x60, 0xbc, 0x52, 0x13, 0x11, 0xf2, 0x2b, 0x72, 0xc7, 0x70, 0x44,
+ 0x0a, 0x80, 0x8e, 0xde, 0xa9, 0x50, 0xff, 0xac, 0x51, 0x1e, 0xb9, 0x5c,
+ 0x98, 0xc2, 0x45, 0xb6,
+};
+static const unsigned char kat3953_nonce[] = {0};
+static const unsigned char kat3953_persstr[] = {
+ 0xe2, 0x66, 0xd2, 0xab, 0xf2, 0x5e, 0x5a, 0x3a, 0xc4, 0x53, 0xc3, 0xe7,
+ 0xae, 0x63, 0x70, 0xcb, 0x53, 0x65, 0x99, 0xe1, 0xc3, 0x94, 0xc7, 0xaa,
+ 0xb7, 0x40, 0x24, 0xba, 0x76, 0x48, 0xb9, 0xb9, 0xa0, 0xef, 0x3d, 0xbf,
+ 0x87, 0x14, 0xea, 0x5b,
+};
+static const unsigned char kat3953_entropyinpr1[] = {
+ 0x3e, 0x2f, 0xdc, 0xfc, 0xc5, 0xe3, 0x22, 0x28, 0x75, 0x7c, 0xff, 0x1a,
+ 0x4b, 0xb1, 0x72, 0x62, 0x7a, 0x21, 0x2b, 0x47, 0xda, 0xde, 0x8a, 0xc1,
+ 0x50, 0xa4, 0x2b, 0x77, 0x7c, 0x16, 0x92, 0x09, 0x74, 0x8e, 0x96, 0xfb,
+ 0x2d, 0xff, 0xaf, 0x61,
+};
+static const unsigned char kat3953_addinpr1[] = {
+ 0x2b, 0xa2, 0xfb, 0x70, 0x6a, 0x54, 0xae, 0x14, 0xce, 0xca, 0x03, 0x46,
+ 0xab, 0x3b, 0x63, 0x24, 0x96, 0xb2, 0x4b, 0x99, 0x73, 0x66, 0x3b, 0x9a,
+ 0x26, 0x40, 0x4b, 0x9e, 0xde, 0x55, 0x39, 0x76, 0x2f, 0x16, 0xe8, 0x35,
+ 0x78, 0x9a, 0xb4, 0xa0,
+};
+static const unsigned char kat3953_entropyinpr2[] = {
+ 0xd4, 0x9b, 0xc1, 0x0d, 0x3f, 0xe2, 0x50, 0x8e, 0xda, 0x10, 0x23, 0xc7,
+ 0x5a, 0xf9, 0x2d, 0xe6, 0x19, 0x7a, 0xc5, 0xeb, 0x75, 0xe6, 0xa8, 0x7d,
+ 0x76, 0x58, 0xbd, 0x04, 0xe3, 0x0e, 0x39, 0x66, 0x59, 0x95, 0x8e, 0x28,
+ 0x17, 0xde, 0xf4, 0xf9,
+};
+static const unsigned char kat3953_addinpr2[] = {
+ 0x88, 0xd3, 0xc7, 0xe9, 0x70, 0x4b, 0x8b, 0x11, 0xb2, 0x86, 0xab, 0xe3,
+ 0xc2, 0xe5, 0x7a, 0x6a, 0x8e, 0xf7, 0x46, 0xa1, 0x57, 0x30, 0xbf, 0xcf,
+ 0xf3, 0x1f, 0x2b, 0x13, 0x2f, 0x48, 0x93, 0x84, 0x64, 0x78, 0x96, 0x35,
+ 0x7c, 0xf8, 0x4f, 0xb8,
+};
+static const unsigned char kat3953_retbits[] = {
+ 0xa7, 0xe3, 0x99, 0x09, 0x06, 0xfd, 0xfc, 0x87, 0x60, 0xff, 0xcb, 0x04,
+ 0x03, 0x5e, 0x38, 0x97, 0x58, 0xe0, 0xf3, 0x67, 0x2b, 0xb6, 0x43, 0x2f,
+ 0x3e, 0x00, 0xf0, 0x7b, 0x2b, 0xb9, 0x9e, 0xf3, 0x4c, 0xac, 0x81, 0x08,
+ 0xb9, 0x16, 0x6d, 0x00, 0x12, 0x65, 0x70, 0x54, 0x42, 0x07, 0x57, 0x91,
+ 0x91, 0x9f, 0xa9, 0x04, 0x7b, 0xce, 0xe4, 0x34, 0x95, 0x94, 0xe6, 0xa5,
+ 0xd7, 0xe9, 0x06, 0xc5,
+};
+static const struct drbg_kat_pr_true kat3953_t = {
+ 7, kat3953_entropyin, kat3953_nonce, kat3953_persstr,
+ kat3953_entropyinpr1, kat3953_addinpr1, kat3953_entropyinpr2,
+ kat3953_addinpr2, kat3953_retbits
+};
+static const struct drbg_kat kat3953 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3953_t
+};
+
+static const unsigned char kat3954_entropyin[] = {
+ 0x80, 0x3a, 0x93, 0x24, 0xce, 0x39, 0x97, 0xf6, 0xf4, 0x06, 0xd4, 0x1c,
+ 0x56, 0xde, 0xcd, 0x80, 0x8d, 0xa6, 0x67, 0x7e, 0x8e, 0x72, 0xbc, 0xed,
+ 0xbd, 0xf6, 0x07, 0xcb, 0xe6, 0x1f, 0x1a, 0x74, 0x90, 0x2f, 0xcd, 0x55,
+ 0x49, 0xd0, 0x91, 0x70,
+};
+static const unsigned char kat3954_nonce[] = {0};
+static const unsigned char kat3954_persstr[] = {
+ 0x4a, 0x35, 0x9e, 0x85, 0x49, 0x2e, 0x9d, 0xe5, 0x02, 0x67, 0x35, 0xf4,
+ 0xe4, 0x25, 0xc6, 0x7c, 0x54, 0x59, 0x24, 0x50, 0x1c, 0xa1, 0x79, 0xc3,
+ 0x66, 0xef, 0x57, 0xfb, 0x54, 0xfe, 0xd5, 0x24, 0x6e, 0xfe, 0xd1, 0x76,
+ 0x8f, 0x49, 0x6c, 0xef,
+};
+static const unsigned char kat3954_entropyinpr1[] = {
+ 0x33, 0xac, 0x9f, 0x39, 0x97, 0xd1, 0x9c, 0x7e, 0xe1, 0x26, 0xd4, 0x4a,
+ 0x6e, 0x12, 0x83, 0xdd, 0x6b, 0x22, 0x3d, 0x9e, 0xcf, 0xca, 0xae, 0x32,
+ 0x60, 0xe2, 0xf8, 0x57, 0x57, 0x89, 0x63, 0xf3, 0x52, 0xd1, 0x52, 0x5e,
+ 0x10, 0x94, 0xf1, 0x42,
+};
+static const unsigned char kat3954_addinpr1[] = {
+ 0x53, 0x07, 0x34, 0x59, 0x32, 0xd8, 0xa5, 0xcd, 0x69, 0x9d, 0xeb, 0xe8,
+ 0x62, 0xaf, 0x9e, 0x4f, 0x87, 0xf0, 0xea, 0x14, 0xdf, 0x32, 0x5b, 0x48,
+ 0xc5, 0x46, 0x9a, 0x00, 0xa7, 0x9c, 0x22, 0x78, 0x8b, 0x3f, 0x0b, 0xb8,
+ 0xdf, 0x75, 0x30, 0x64,
+};
+static const unsigned char kat3954_entropyinpr2[] = {
+ 0x54, 0x05, 0x60, 0x14, 0x93, 0x51, 0x22, 0xa4, 0x72, 0x30, 0xdb, 0x8c,
+ 0x27, 0x6f, 0x11, 0x58, 0x70, 0x7a, 0x6e, 0x97, 0x68, 0x55, 0x75, 0x85,
+ 0x17, 0xaa, 0xd4, 0x0c, 0x63, 0x76, 0xcd, 0xf8, 0x83, 0x48, 0xc4, 0x36,
+ 0x53, 0x95, 0x9a, 0x49,
+};
+static const unsigned char kat3954_addinpr2[] = {
+ 0xce, 0xea, 0xa5, 0xeb, 0x72, 0xe9, 0xb0, 0xb9, 0x40, 0x23, 0x19, 0x64,
+ 0x11, 0x8c, 0x29, 0x43, 0xd3, 0xe4, 0xda, 0xc4, 0xd7, 0x2c, 0x95, 0x47,
+ 0x7d, 0x39, 0x86, 0x81, 0xb1, 0xe5, 0xa0, 0x0e, 0x2c, 0xaa, 0x3d, 0x92,
+ 0x15, 0x31, 0x07, 0x4a,
+};
+static const unsigned char kat3954_retbits[] = {
+ 0xb6, 0x11, 0x4d, 0xa3, 0x08, 0x22, 0x4e, 0x1f, 0x9d, 0xd4, 0xec, 0x15,
+ 0x0b, 0xb9, 0x96, 0xc0, 0x9c, 0xa0, 0xdd, 0xcf, 0x24, 0xef, 0xe3, 0x68,
+ 0xbd, 0xbf, 0xe4, 0xc6, 0xb0, 0xd3, 0x3a, 0xe6, 0x6c, 0xae, 0xed, 0x7b,
+ 0xd7, 0x84, 0xa5, 0xda, 0xfd, 0x2b, 0x43, 0xf7, 0x7c, 0x6b, 0x1a, 0x00,
+ 0x88, 0xdc, 0xa6, 0xd9, 0x2a, 0xea, 0x91, 0x3f, 0xf8, 0x5b, 0x79, 0xa8,
+ 0x26, 0x98, 0x2e, 0x15,
+};
+static const struct drbg_kat_pr_true kat3954_t = {
+ 8, kat3954_entropyin, kat3954_nonce, kat3954_persstr,
+ kat3954_entropyinpr1, kat3954_addinpr1, kat3954_entropyinpr2,
+ kat3954_addinpr2, kat3954_retbits
+};
+static const struct drbg_kat kat3954 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3954_t
+};
+
+static const unsigned char kat3955_entropyin[] = {
+ 0x0b, 0x3c, 0x6c, 0x23, 0xfc, 0x60, 0x7d, 0xcf, 0x21, 0xf7, 0x72, 0x05,
+ 0xe2, 0x9c, 0x85, 0x21, 0x12, 0x53, 0x49, 0xa9, 0x45, 0xb5, 0x04, 0x0e,
+ 0x23, 0xf0, 0x35, 0xff, 0xaa, 0x7a, 0xec, 0x9c, 0x3f, 0x25, 0xd8, 0xca,
+ 0x0a, 0x53, 0xfd, 0x0c,
+};
+static const unsigned char kat3955_nonce[] = {0};
+static const unsigned char kat3955_persstr[] = {
+ 0x9e, 0xf7, 0x68, 0x24, 0x91, 0xda, 0x1c, 0xfd, 0xe8, 0xf1, 0x07, 0x5f,
+ 0xc3, 0x9e, 0xe3, 0x1a, 0x5c, 0xf6, 0xcd, 0x36, 0x95, 0x9a, 0x21, 0x46,
+ 0x59, 0x70, 0xce, 0x8d, 0xdb, 0x6a, 0xb6, 0xd7, 0x28, 0x6c, 0x1f, 0x9d,
+ 0xba, 0xba, 0xca, 0x0a,
+};
+static const unsigned char kat3955_entropyinpr1[] = {
+ 0xee, 0x9f, 0x7c, 0xf1, 0x67, 0xcd, 0xf1, 0xb0, 0xb0, 0x98, 0xc2, 0x21,
+ 0x1d, 0x8b, 0xaa, 0x2c, 0xfd, 0x0d, 0x4a, 0x64, 0xe3, 0xed, 0x84, 0xee,
+ 0x6e, 0xe1, 0x11, 0xb8, 0x4b, 0x7d, 0xda, 0x82, 0x49, 0xdf, 0x63, 0xb1,
+ 0xf0, 0xfb, 0xbf, 0x61,
+};
+static const unsigned char kat3955_addinpr1[] = {
+ 0xf9, 0xbc, 0xab, 0x5f, 0x68, 0xe5, 0xb5, 0x29, 0xdb, 0x50, 0x45, 0xaf,
+ 0xa2, 0xf8, 0x71, 0x83, 0xbf, 0x62, 0x6f, 0x7d, 0xc4, 0xff, 0x76, 0xff,
+ 0x73, 0xdb, 0xea, 0xba, 0x3c, 0x32, 0xba, 0x64, 0x8e, 0x21, 0xeb, 0x4e,
+ 0x95, 0x4e, 0x20, 0xa6,
+};
+static const unsigned char kat3955_entropyinpr2[] = {
+ 0xa7, 0xcd, 0x5e, 0x84, 0x08, 0x47, 0xfe, 0xff, 0xc4, 0x31, 0x8b, 0x13,
+ 0xfa, 0xee, 0xf9, 0x4e, 0x84, 0x25, 0x45, 0xcd, 0x5c, 0xf6, 0x91, 0x77,
+ 0x19, 0x03, 0xa9, 0xea, 0xfe, 0x66, 0x19, 0xe0, 0x82, 0x2d, 0x56, 0xf4,
+ 0x09, 0xe7, 0x4c, 0x89,
+};
+static const unsigned char kat3955_addinpr2[] = {
+ 0xa7, 0x12, 0x63, 0x60, 0x9c, 0x6b, 0x71, 0x67, 0x47, 0x2f, 0xf4, 0xf3,
+ 0x89, 0x83, 0x73, 0x7e, 0xc6, 0x95, 0x0b, 0x61, 0xe6, 0x9b, 0x50, 0xf7,
+ 0x7c, 0x81, 0x07, 0x9a, 0xd3, 0x25, 0xd6, 0x22, 0x38, 0x23, 0x0a, 0x0a,
+ 0xdd, 0x47, 0xb9, 0x54,
+};
+static const unsigned char kat3955_retbits[] = {
+ 0x6d, 0x4b, 0x7a, 0x9c, 0xef, 0xb2, 0x3c, 0x46, 0xc5, 0xca, 0x9e, 0x23,
+ 0x3b, 0x07, 0x20, 0xcd, 0x22, 0x4e, 0xb9, 0x0c, 0x62, 0x3e, 0x50, 0x87,
+ 0x68, 0xee, 0x00, 0x45, 0x2e, 0xe5, 0x3d, 0xc7, 0xfd, 0xea, 0x7e, 0x79,
+ 0xfd, 0x33, 0x8e, 0x2d, 0xc9, 0xd6, 0x70, 0xa0, 0x83, 0x66, 0x78, 0xce,
+ 0xbc, 0xcd, 0xd6, 0xf1, 0x80, 0x48, 0x13, 0x74, 0xa6, 0x50, 0xe2, 0xa7,
+ 0xab, 0xa4, 0x91, 0x4c,
+};
+static const struct drbg_kat_pr_true kat3955_t = {
+ 9, kat3955_entropyin, kat3955_nonce, kat3955_persstr,
+ kat3955_entropyinpr1, kat3955_addinpr1, kat3955_entropyinpr2,
+ kat3955_addinpr2, kat3955_retbits
+};
+static const struct drbg_kat kat3955 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3955_t
+};
+
+static const unsigned char kat3956_entropyin[] = {
+ 0x04, 0x69, 0x3e, 0xc3, 0xea, 0x1a, 0x8d, 0x69, 0x79, 0x48, 0x87, 0x45,
+ 0x62, 0x10, 0xd6, 0xe8, 0xa6, 0x34, 0x95, 0x0a, 0x91, 0xad, 0xc5, 0xe5,
+ 0x82, 0x2c, 0xfc, 0xcb, 0x79, 0xe8, 0xce, 0x0e, 0x09, 0x45, 0xd1, 0x2d,
+ 0xa4, 0xab, 0xd4, 0xd7,
+};
+static const unsigned char kat3956_nonce[] = {0};
+static const unsigned char kat3956_persstr[] = {
+ 0x25, 0xca, 0x10, 0xf6, 0x43, 0x13, 0xb8, 0x41, 0x30, 0x25, 0x6a, 0x40,
+ 0x56, 0xff, 0xae, 0x7f, 0xac, 0x2b, 0x0c, 0x78, 0xfd, 0x18, 0xc3, 0x62,
+ 0x5f, 0x98, 0x4f, 0xb0, 0x40, 0x20, 0xe9, 0x90, 0xe7, 0xa6, 0x3c, 0x97,
+ 0x84, 0xf4, 0xd8, 0x1c,
+};
+static const unsigned char kat3956_entropyinpr1[] = {
+ 0x3c, 0x78, 0xc4, 0x68, 0x5c, 0x68, 0x30, 0x3d, 0xe1, 0x60, 0xaf, 0x7a,
+ 0x1e, 0x8d, 0x7f, 0xf4, 0xe3, 0xd0, 0x58, 0x7c, 0xa5, 0x2a, 0x0f, 0x66,
+ 0xce, 0x30, 0xe7, 0x5b, 0x48, 0xd2, 0xd7, 0x7b, 0xcb, 0xfd, 0xa9, 0x84,
+ 0xbe, 0x51, 0xec, 0xef,
+};
+static const unsigned char kat3956_addinpr1[] = {
+ 0x69, 0x96, 0xbe, 0xc4, 0x97, 0xee, 0x0f, 0x85, 0xdf, 0x92, 0x9a, 0xee,
+ 0xbd, 0xfa, 0x48, 0x67, 0x07, 0xd0, 0x45, 0xf4, 0xed, 0x9c, 0xa4, 0xc4,
+ 0x82, 0xbd, 0xb6, 0x5b, 0xa9, 0x8b, 0xc9, 0x34, 0x6b, 0x40, 0xb7, 0x4e,
+ 0x8f, 0x10, 0x0e, 0x06,
+};
+static const unsigned char kat3956_entropyinpr2[] = {
+ 0x06, 0x90, 0x0e, 0x74, 0x3f, 0x89, 0xa6, 0x41, 0xb7, 0x5d, 0x7b, 0xad,
+ 0x2b, 0xfc, 0x34, 0x8b, 0xeb, 0x9e, 0x00, 0x07, 0xdc, 0xc6, 0x87, 0x68,
+ 0x19, 0x38, 0x00, 0x8e, 0x14, 0x8d, 0x77, 0x3a, 0x8f, 0xbc, 0x4d, 0x82,
+ 0x7e, 0x6a, 0x36, 0x9a,
+};
+static const unsigned char kat3956_addinpr2[] = {
+ 0x30, 0x83, 0xe9, 0xa6, 0x1b, 0xac, 0x25, 0xfa, 0x9e, 0xd3, 0x71, 0x3f,
+ 0xcb, 0x0b, 0xd9, 0x26, 0x42, 0xdf, 0xb6, 0xb1, 0x7b, 0xf4, 0xbb, 0x66,
+ 0xb5, 0xff, 0xcb, 0xc2, 0xb5, 0x01, 0x5d, 0xc4, 0x0d, 0x5f, 0x6b, 0x0d,
+ 0xe9, 0x29, 0xfb, 0x54,
+};
+static const unsigned char kat3956_retbits[] = {
+ 0xb0, 0x05, 0x9b, 0xb5, 0x67, 0xd6, 0x9d, 0x5b, 0xf9, 0x6a, 0x42, 0x89,
+ 0xbf, 0x93, 0xa2, 0x8d, 0x61, 0x34, 0xdc, 0x6c, 0x66, 0xd2, 0x68, 0x8f,
+ 0x63, 0x9b, 0x83, 0xf7, 0x49, 0x55, 0x9f, 0x26, 0xd0, 0x1e, 0xd4, 0x7f,
+ 0x87, 0xe7, 0x71, 0x64, 0x63, 0xda, 0x38, 0x41, 0x2d, 0x97, 0x91, 0x49,
+ 0xbe, 0xda, 0x53, 0x60, 0xab, 0xdd, 0x38, 0xd5, 0x31, 0xa2, 0x53, 0x74,
+ 0x42, 0xf5, 0x51, 0xb2,
+};
+static const struct drbg_kat_pr_true kat3956_t = {
+ 10, kat3956_entropyin, kat3956_nonce, kat3956_persstr,
+ kat3956_entropyinpr1, kat3956_addinpr1, kat3956_entropyinpr2,
+ kat3956_addinpr2, kat3956_retbits
+};
+static const struct drbg_kat kat3956 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3956_t
+};
+
+static const unsigned char kat3957_entropyin[] = {
+ 0x5a, 0x22, 0x52, 0xc0, 0x61, 0xea, 0x84, 0xce, 0x1e, 0x9a, 0x8c, 0x79,
+ 0xe2, 0xd5, 0x26, 0x9c, 0x39, 0x74, 0x37, 0xd1, 0xb2, 0xae, 0xa3, 0x70,
+ 0xcf, 0xed, 0xaf, 0x75, 0xe2, 0xbe, 0x2c, 0x34, 0x48, 0x81, 0x34, 0xae,
+ 0x1a, 0xa0, 0x0a, 0x3a,
+};
+static const unsigned char kat3957_nonce[] = {0};
+static const unsigned char kat3957_persstr[] = {
+ 0xd7, 0x1f, 0xa3, 0x34, 0x50, 0xcb, 0x22, 0x7a, 0xcb, 0xea, 0x3f, 0x8f,
+ 0x05, 0x78, 0x60, 0x95, 0xdb, 0xf2, 0xfc, 0xb8, 0xa0, 0xae, 0x19, 0x34,
+ 0x25, 0x1b, 0x45, 0xde, 0x1b, 0x14, 0x06, 0x74, 0xab, 0x81, 0x7c, 0xd1,
+ 0x5a, 0xac, 0xc2, 0x46,
+};
+static const unsigned char kat3957_entropyinpr1[] = {
+ 0x0a, 0x42, 0xfb, 0x59, 0x08, 0xe1, 0xb8, 0x9b, 0x73, 0xa4, 0xa3, 0x9b,
+ 0x53, 0x31, 0x36, 0x91, 0x78, 0x7a, 0x87, 0xe9, 0x7d, 0xf9, 0x5a, 0x15,
+ 0x1e, 0xe2, 0xd4, 0x11, 0x7e, 0x4e, 0xc1, 0x70, 0x1d, 0xef, 0x08, 0x4f,
+ 0x7e, 0xc3, 0xde, 0xf0,
+};
+static const unsigned char kat3957_addinpr1[] = {
+ 0x0d, 0x26, 0x8b, 0xcb, 0xa2, 0x3c, 0x35, 0xd0, 0x8a, 0x37, 0x7c, 0x8f,
+ 0xeb, 0x24, 0x1e, 0x05, 0x04, 0x8e, 0x5e, 0x0f, 0x43, 0xe6, 0x51, 0x87,
+ 0x4c, 0xfb, 0xdd, 0x7c, 0xfe, 0x3a, 0x7a, 0xa1, 0xdf, 0x01, 0x21, 0x39,
+ 0x10, 0xc1, 0xaf, 0xb5,
+};
+static const unsigned char kat3957_entropyinpr2[] = {
+ 0x6e, 0x38, 0xb0, 0xc6, 0x6c, 0xd1, 0x6e, 0xba, 0xdf, 0xf8, 0x8e, 0x92,
+ 0x1b, 0xc9, 0x3f, 0x9a, 0x1f, 0xf4, 0xb1, 0x58, 0xb5, 0x9f, 0x31, 0x5b,
+ 0x06, 0x0e, 0x5f, 0xb8, 0x63, 0xcd, 0x46, 0xbd, 0x8b, 0xdd, 0x81, 0x87,
+ 0xe5, 0xf3, 0x93, 0xf3,
+};
+static const unsigned char kat3957_addinpr2[] = {
+ 0x57, 0xc2, 0x60, 0x17, 0x1a, 0x71, 0xfe, 0x14, 0x64, 0x69, 0xb2, 0x7d,
+ 0xa2, 0x42, 0xcc, 0x4f, 0x54, 0x96, 0x55, 0x8d, 0xdb, 0x38, 0x4a, 0x58,
+ 0xda, 0xcc, 0xda, 0x7f, 0x3f, 0xec, 0x27, 0x57, 0xb5, 0x26, 0x12, 0x62,
+ 0xeb, 0xa6, 0xc3, 0x62,
+};
+static const unsigned char kat3957_retbits[] = {
+ 0xe1, 0x5e, 0x4b, 0xf8, 0x7c, 0x5e, 0xce, 0xde, 0xf4, 0x43, 0xa2, 0x7a,
+ 0xdd, 0xa7, 0xcd, 0x13, 0x9d, 0x53, 0x7a, 0xcd, 0x25, 0x40, 0x12, 0xe8,
+ 0x5d, 0xc2, 0x59, 0x54, 0x24, 0x9c, 0x6c, 0x21, 0x44, 0xe9, 0x56, 0x4f,
+ 0x97, 0xc1, 0x8b, 0xad, 0x83, 0xd3, 0x03, 0xdf, 0x65, 0x50, 0x01, 0xa0,
+ 0x43, 0x5b, 0xe0, 0xa3, 0xe1, 0x20, 0xd3, 0x08, 0xec, 0xab, 0x1d, 0xb5,
+ 0x9a, 0x77, 0xce, 0xd9,
+};
+static const struct drbg_kat_pr_true kat3957_t = {
+ 11, kat3957_entropyin, kat3957_nonce, kat3957_persstr,
+ kat3957_entropyinpr1, kat3957_addinpr1, kat3957_entropyinpr2,
+ kat3957_addinpr2, kat3957_retbits
+};
+static const struct drbg_kat kat3957 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3957_t
+};
+
+static const unsigned char kat3958_entropyin[] = {
+ 0x45, 0xfd, 0xd2, 0x8d, 0xd9, 0x07, 0x7d, 0xa5, 0x9b, 0x66, 0xcd, 0xfa,
+ 0x93, 0xb0, 0x10, 0x71, 0x16, 0x86, 0x5f, 0xba, 0x2a, 0x6d, 0x7f, 0xc5,
+ 0xff, 0xdb, 0x15, 0xc3, 0xe2, 0xbe, 0x67, 0xc0, 0x2c, 0xb5, 0xe3, 0x73,
+ 0xec, 0x82, 0xf9, 0xf9,
+};
+static const unsigned char kat3958_nonce[] = {0};
+static const unsigned char kat3958_persstr[] = {
+ 0x30, 0xc5, 0x74, 0xe5, 0x6f, 0xcb, 0x77, 0x5d, 0x42, 0xb4, 0xf7, 0x63,
+ 0xd2, 0xfd, 0xe2, 0x6f, 0x1b, 0xdd, 0x3e, 0xc1, 0xa7, 0xeb, 0x02, 0x63,
+ 0xfa, 0x92, 0x53, 0xd4, 0xe9, 0x0d, 0x28, 0x6d, 0x63, 0x33, 0x52, 0x54,
+ 0xd5, 0x70, 0x96, 0xaf,
+};
+static const unsigned char kat3958_entropyinpr1[] = {
+ 0x22, 0xd7, 0xb2, 0x5e, 0xbe, 0x03, 0x40, 0x89, 0x92, 0xed, 0x44, 0x06,
+ 0xd0, 0xea, 0x38, 0xe0, 0x23, 0xa1, 0xb6, 0xf8, 0x92, 0x3a, 0x3f, 0xd9,
+ 0x7a, 0x08, 0x5a, 0x46, 0xfd, 0x01, 0x87, 0x8a, 0xd3, 0xc0, 0x21, 0x97,
+ 0x7f, 0x9c, 0x1c, 0xfb,
+};
+static const unsigned char kat3958_addinpr1[] = {
+ 0x6d, 0xb3, 0x8b, 0x45, 0x52, 0xbb, 0x09, 0x4d, 0x88, 0xae, 0x98, 0x2b,
+ 0xe5, 0x2c, 0x70, 0x3c, 0x82, 0x75, 0x53, 0x48, 0xb6, 0xda, 0xd5, 0x5e,
+ 0x55, 0x17, 0x0f, 0xc7, 0x77, 0x88, 0x50, 0x4f, 0x4c, 0x81, 0x24, 0xa3,
+ 0x43, 0x7f, 0xd2, 0x6f,
+};
+static const unsigned char kat3958_entropyinpr2[] = {
+ 0x1d, 0x3d, 0x06, 0xa5, 0x33, 0xab, 0xf4, 0x4e, 0xa6, 0x6c, 0x9a, 0xac,
+ 0x9f, 0x35, 0xda, 0x28, 0x00, 0x5e, 0x24, 0xd0, 0x41, 0xce, 0x0b, 0x24,
+ 0xaa, 0xc6, 0x29, 0x1d, 0x68, 0x9a, 0x02, 0x2e, 0xb7, 0x98, 0xa3, 0xe5,
+ 0xdf, 0x4b, 0xac, 0xc9,
+};
+static const unsigned char kat3958_addinpr2[] = {
+ 0x55, 0xc3, 0x33, 0x2a, 0x11, 0x9e, 0x4d, 0x27, 0x93, 0xff, 0x91, 0x71,
+ 0x8b, 0xbb, 0x01, 0x9b, 0x79, 0x1d, 0xf8, 0x18, 0xc2, 0xa3, 0xfe, 0xc2,
+ 0xee, 0x55, 0xc5, 0xd0, 0x42, 0xb4, 0x41, 0xfa, 0x0a, 0xfd, 0x23, 0x94,
+ 0xa1, 0x65, 0x96, 0x4b,
+};
+static const unsigned char kat3958_retbits[] = {
+ 0x04, 0x5c, 0x58, 0xe5, 0x3c, 0xba, 0x73, 0x55, 0xea, 0xff, 0x24, 0xab,
+ 0xdb, 0xc0, 0x56, 0xf0, 0xaf, 0x4d, 0xb2, 0x43, 0xd1, 0xbf, 0xfb, 0xb7,
+ 0xe1, 0x6d, 0xfb, 0x19, 0x56, 0x20, 0xba, 0x87, 0x5e, 0x82, 0x99, 0x8a,
+ 0xc5, 0x92, 0xdd, 0xf0, 0x74, 0x18, 0x71, 0x91, 0xbe, 0x0a, 0x3c, 0xa3,
+ 0x63, 0x75, 0x80, 0x4c, 0x15, 0x3d, 0x8b, 0x7a, 0x38, 0x0f, 0x85, 0x0b,
+ 0x95, 0xf1, 0x07, 0x27,
+};
+static const struct drbg_kat_pr_true kat3958_t = {
+ 12, kat3958_entropyin, kat3958_nonce, kat3958_persstr,
+ kat3958_entropyinpr1, kat3958_addinpr1, kat3958_entropyinpr2,
+ kat3958_addinpr2, kat3958_retbits
+};
+static const struct drbg_kat kat3958 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3958_t
+};
+
+static const unsigned char kat3959_entropyin[] = {
+ 0xac, 0x39, 0xeb, 0x7d, 0xbb, 0xd6, 0x72, 0xcc, 0x42, 0x35, 0xc8, 0x37,
+ 0xe9, 0xb1, 0xe0, 0xef, 0x78, 0x36, 0x1b, 0x2e, 0x3f, 0xbe, 0x5f, 0xe4,
+ 0xce, 0x14, 0xd8, 0x7c, 0x82, 0x8d, 0xb0, 0xc5, 0xec, 0xf2, 0xe4, 0x38,
+ 0xd4, 0x5c, 0x4d, 0x4e,
+};
+static const unsigned char kat3959_nonce[] = {0};
+static const unsigned char kat3959_persstr[] = {
+ 0xc9, 0xac, 0xeb, 0x6b, 0xd2, 0xdf, 0x45, 0xbb, 0xe6, 0xe7, 0x87, 0x14,
+ 0x76, 0xb2, 0xb5, 0xf5, 0xd9, 0xc2, 0xad, 0x2e, 0x2b, 0xec, 0x7e, 0x56,
+ 0x04, 0x47, 0xaf, 0xcc, 0x08, 0x9f, 0x48, 0xd7, 0x5e, 0x1b, 0x8b, 0x48,
+ 0x97, 0x27, 0xd0, 0xb9,
+};
+static const unsigned char kat3959_entropyinpr1[] = {
+ 0x31, 0x91, 0x2f, 0x0a, 0x3d, 0x8d, 0x32, 0xad, 0x39, 0x58, 0x48, 0x0c,
+ 0xac, 0x71, 0x18, 0x89, 0xd6, 0xa9, 0x98, 0x89, 0x0a, 0x32, 0x7b, 0xa4,
+ 0xb5, 0xbb, 0xce, 0xe1, 0xf7, 0x8f, 0x00, 0x8f, 0x31, 0xb7, 0x8a, 0x57,
+ 0xa4, 0xd2, 0xef, 0x0e,
+};
+static const unsigned char kat3959_addinpr1[] = {
+ 0xf6, 0x6f, 0xd8, 0x6d, 0x3f, 0x08, 0xd5, 0x38, 0x84, 0x46, 0x6c, 0x68,
+ 0x8b, 0xa6, 0x14, 0x89, 0x1c, 0x60, 0xbb, 0x2e, 0xed, 0x7a, 0x20, 0x8c,
+ 0x47, 0x6f, 0xf5, 0x52, 0x70, 0xe0, 0x97, 0x7d, 0x9b, 0xce, 0x30, 0xa3,
+ 0xa7, 0xe2, 0x7b, 0xea,
+};
+static const unsigned char kat3959_entropyinpr2[] = {
+ 0x0c, 0xf7, 0xb9, 0xa2, 0xd4, 0xe2, 0x8c, 0xdd, 0x77, 0x48, 0x00, 0x0e,
+ 0x28, 0xe4, 0xa1, 0xa3, 0x02, 0x2c, 0x10, 0xef, 0x18, 0x6b, 0x0d, 0x83,
+ 0x1e, 0x2c, 0xa6, 0x92, 0x5c, 0x3f, 0x37, 0x7b, 0xc3, 0xa8, 0xf2, 0x58,
+ 0xf5, 0xae, 0x73, 0x1c,
+};
+static const unsigned char kat3959_addinpr2[] = {
+ 0x4e, 0x0c, 0x20, 0xe0, 0xfb, 0xd6, 0x54, 0xaf, 0xb2, 0x29, 0x05, 0x2e,
+ 0xc6, 0x48, 0x44, 0xf1, 0x9a, 0x49, 0x52, 0x70, 0xa5, 0xf1, 0x57, 0x4e,
+ 0xcf, 0xe2, 0xf7, 0xe3, 0xad, 0xc9, 0xd6, 0x0d, 0x78, 0x7f, 0x4c, 0xef,
+ 0x39, 0x7d, 0x5e, 0x35,
+};
+static const unsigned char kat3959_retbits[] = {
+ 0x00, 0x7f, 0x86, 0x1a, 0x7e, 0xa3, 0x6f, 0x37, 0x7a, 0x66, 0x2f, 0xa8,
+ 0x60, 0x69, 0x77, 0x3e, 0xd4, 0x3e, 0xf8, 0xe3, 0x3e, 0x39, 0x32, 0x28,
+ 0xe3, 0xd8, 0x85, 0x90, 0x21, 0xd2, 0x32, 0xf3, 0xa2, 0xeb, 0x44, 0x53,
+ 0x3c, 0x6c, 0xd8, 0x58, 0x06, 0xdf, 0x84, 0x74, 0x92, 0x34, 0x10, 0x62,
+ 0x84, 0x09, 0xb5, 0x4a, 0xb2, 0x03, 0xac, 0xb7, 0x13, 0xb8, 0x3c, 0x5f,
+ 0x94, 0x74, 0x1a, 0x66,
+};
+static const struct drbg_kat_pr_true kat3959_t = {
+ 13, kat3959_entropyin, kat3959_nonce, kat3959_persstr,
+ kat3959_entropyinpr1, kat3959_addinpr1, kat3959_entropyinpr2,
+ kat3959_addinpr2, kat3959_retbits
+};
+static const struct drbg_kat kat3959 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3959_t
+};
+
+static const unsigned char kat3960_entropyin[] = {
+ 0xcc, 0x31, 0xc3, 0x24, 0x7c, 0xd0, 0xd6, 0xb7, 0xc8, 0x43, 0x5b, 0x64,
+ 0x7b, 0xa5, 0x3d, 0x23, 0x77, 0xf6, 0xf2, 0x79, 0xd8, 0xc0, 0x0a, 0x29,
+ 0x1a, 0xb0, 0xec, 0xb3, 0x66, 0x1e, 0xa5, 0xf6, 0x9b, 0xdf, 0xab, 0x64,
+ 0x94, 0xa5, 0x1d, 0x3f,
+};
+static const unsigned char kat3960_nonce[] = {0};
+static const unsigned char kat3960_persstr[] = {
+ 0x15, 0x5a, 0xff, 0x76, 0x3a, 0x68, 0x16, 0xe5, 0xf9, 0x97, 0x0d, 0xdd,
+ 0x5e, 0x23, 0x2a, 0xf7, 0xc4, 0xaa, 0xcb, 0x32, 0x46, 0x80, 0x18, 0x47,
+ 0x86, 0xc0, 0x2a, 0x96, 0xc1, 0x4f, 0x20, 0x09, 0x0c, 0x8f, 0x53, 0x5d,
+ 0x3c, 0x9f, 0x9d, 0xa5,
+};
+static const unsigned char kat3960_entropyinpr1[] = {
+ 0x06, 0xc2, 0xb0, 0x7b, 0x88, 0x95, 0xe3, 0xff, 0xe9, 0x3b, 0x8f, 0x01,
+ 0x21, 0x92, 0xa8, 0x10, 0x05, 0x31, 0x5a, 0x04, 0x84, 0x3c, 0xab, 0x84,
+ 0x7d, 0xa6, 0x90, 0xad, 0x54, 0x93, 0xd2, 0xa7, 0x1b, 0xfd, 0x8f, 0xae,
+ 0xb5, 0x27, 0xcb, 0x0a,
+};
+static const unsigned char kat3960_addinpr1[] = {
+ 0xb6, 0xe9, 0x9d, 0x5d, 0x8b, 0xff, 0x8c, 0xad, 0x38, 0xec, 0xcb, 0x80,
+ 0x37, 0xd8, 0xa1, 0x92, 0x3a, 0x47, 0xfc, 0x38, 0xc6, 0x31, 0xa8, 0xc3,
+ 0xbf, 0xe1, 0x71, 0xa7, 0x13, 0xc6, 0x7c, 0x91, 0xe8, 0x78, 0x7e, 0x83,
+ 0xab, 0xf0, 0xbc, 0x33,
+};
+static const unsigned char kat3960_entropyinpr2[] = {
+ 0x19, 0x89, 0xbe, 0xcc, 0x20, 0xda, 0x39, 0x68, 0x2e, 0x67, 0xb9, 0x61,
+ 0xdc, 0x4a, 0x2f, 0x10, 0xa7, 0x3b, 0x03, 0x7b, 0x21, 0xcf, 0x05, 0x5f,
+ 0x1f, 0x12, 0xe8, 0xf5, 0x9f, 0x04, 0x72, 0x00, 0xda, 0xb4, 0x90, 0x7e,
+ 0x5e, 0x8b, 0x96, 0xaa,
+};
+static const unsigned char kat3960_addinpr2[] = {
+ 0x20, 0x5f, 0x0f, 0x79, 0xd1, 0x40, 0xc6, 0xff, 0xef, 0x74, 0x2b, 0xf3,
+ 0xcd, 0xa5, 0x12, 0xa3, 0xfb, 0x84, 0xaf, 0x66, 0xd0, 0x58, 0xe5, 0xa3,
+ 0x47, 0x52, 0xcf, 0xd0, 0xe4, 0xcb, 0x82, 0xfe, 0x3e, 0x7f, 0xab, 0x94,
+ 0x89, 0xbf, 0x56, 0x33,
+};
+static const unsigned char kat3960_retbits[] = {
+ 0xfa, 0x20, 0xe0, 0x05, 0x4f, 0x9e, 0xde, 0xf7, 0x5b, 0x34, 0xaa, 0x4e,
+ 0x76, 0xb1, 0x6d, 0xd6, 0xd9, 0xd5, 0x4d, 0xe5, 0xe3, 0x50, 0xc8, 0x79,
+ 0xe1, 0x65, 0x41, 0xcb, 0x80, 0xa4, 0xe6, 0x4c, 0x3f, 0x39, 0x2a, 0x01,
+ 0x08, 0xc7, 0x92, 0xec, 0x8f, 0xce, 0xc8, 0x47, 0x21, 0xcd, 0x71, 0xcc,
+ 0xae, 0x15, 0xde, 0x31, 0xf3, 0xef, 0xf5, 0x7e, 0x09, 0xf0, 0x24, 0x50,
+ 0x68, 0x57, 0xc3, 0xe9,
+};
+static const struct drbg_kat_pr_true kat3960_t = {
+ 14, kat3960_entropyin, kat3960_nonce, kat3960_persstr,
+ kat3960_entropyinpr1, kat3960_addinpr1, kat3960_entropyinpr2,
+ kat3960_addinpr2, kat3960_retbits
+};
+static const struct drbg_kat kat3960 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat3960_t
+};
+
+static const unsigned char kat3961_entropyin[] = {
+ 0xf7, 0xc2, 0xe8, 0xc3, 0xe1, 0x0d, 0x89, 0xe7, 0x71, 0x76, 0x3f, 0x24,
+ 0x02, 0xc5, 0xf8, 0x4b, 0xff, 0x9f, 0x1d, 0x85, 0x59, 0x56, 0xe6, 0x21,
+ 0x4c, 0x4a, 0x79, 0x66, 0x84, 0x7f, 0x4b, 0x5d, 0xc6, 0x9d, 0x96, 0xc4,
+ 0xd3, 0x16, 0x1d, 0x7a,
+};
+static const unsigned char kat3961_nonce[] = {0};
+static const unsigned char kat3961_persstr[] = {0};
+static const unsigned char kat3961_entropyinpr1[] = {
+ 0x83, 0x2a, 0x12, 0xa2, 0xfa, 0xf8, 0x9a, 0x38, 0x05, 0x0a, 0x77, 0x51,
+ 0x83, 0x50, 0x34, 0xfa, 0x25, 0xc8, 0x87, 0x47, 0xe4, 0xb0, 0x8e, 0x1a,
+ 0x26, 0x16, 0x29, 0x1f, 0xa3, 0x64, 0xb7, 0x34, 0x4f, 0x6e, 0x27, 0x45,
+ 0xaf, 0xdd, 0xa5, 0xc4,
+};
+static const unsigned char kat3961_addinpr1[] = {0};
+static const unsigned char kat3961_entropyinpr2[] = {
+ 0xde, 0xb9, 0xd8, 0xbc, 0xb4, 0x30, 0x25, 0x0c, 0xe5, 0x29, 0x6e, 0x72,
+ 0x77, 0x2f, 0x0c, 0x70, 0xd4, 0x88, 0xca, 0xb4, 0xfc, 0x1f, 0x84, 0x7a,
+ 0xac, 0x1f, 0x66, 0x9b, 0x3f, 0x47, 0x34, 0x16, 0xc9, 0x8d, 0x49, 0x7a,
+ 0x20, 0x89, 0xa9, 0x9a,
+};
+static const unsigned char kat3961_addinpr2[] = {0};
+static const unsigned char kat3961_retbits[] = {
+ 0x05, 0x1d, 0x21, 0x78, 0x4e, 0xe6, 0x4e, 0x73, 0x12, 0xe2, 0xee, 0x93,
+ 0x04, 0x08, 0x3c, 0x41, 0x0f, 0x8a, 0x23, 0x63, 0xeb, 0x57, 0x37, 0x42,
+ 0x2e, 0xad, 0x9d, 0x5c, 0x51, 0x3b, 0x3b, 0xc8, 0xbd, 0x18, 0xff, 0x95,
+ 0xa7, 0xdf, 0xe5, 0x8d, 0xa4, 0x12, 0x22, 0xf8, 0xf4, 0xcf, 0x51, 0x76,
+ 0x29, 0x33, 0x9c, 0x3c, 0x12, 0x91, 0x55, 0xc4, 0x88, 0x10, 0x16, 0xcc,
+ 0xfc, 0x33, 0x64, 0xc3,
+};
+static const struct drbg_kat_pr_true kat3961_t = {
+ 0, kat3961_entropyin, kat3961_nonce, kat3961_persstr,
+ kat3961_entropyinpr1, kat3961_addinpr1, kat3961_entropyinpr2,
+ kat3961_addinpr2, kat3961_retbits
+};
+static const struct drbg_kat kat3961 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3961_t
+};
+
+static const unsigned char kat3962_entropyin[] = {
+ 0x05, 0x04, 0x74, 0x48, 0xdc, 0xa9, 0x84, 0x21, 0xa8, 0x23, 0x69, 0x57,
+ 0x5b, 0xca, 0x11, 0x60, 0x90, 0xf9, 0xb9, 0xa7, 0x01, 0x44, 0xf2, 0x4c,
+ 0xee, 0x0e, 0xb1, 0xd1, 0x1f, 0xb5, 0xad, 0xac, 0x44, 0xd0, 0x87, 0x0b,
+ 0x94, 0xeb, 0x48, 0x33,
+};
+static const unsigned char kat3962_nonce[] = {0};
+static const unsigned char kat3962_persstr[] = {0};
+static const unsigned char kat3962_entropyinpr1[] = {
+ 0x4e, 0x33, 0x74, 0x09, 0x5d, 0x77, 0xda, 0xf1, 0x91, 0x4b, 0xc1, 0x70,
+ 0xd6, 0x5e, 0xfa, 0x48, 0x1e, 0xe0, 0xe5, 0x0d, 0x14, 0xb3, 0x6f, 0xfc,
+ 0xa0, 0x73, 0x10, 0x30, 0xc1, 0x98, 0x51, 0xec, 0x1a, 0xe6, 0x24, 0x37,
+ 0xab, 0x0e, 0x31, 0xb9,
+};
+static const unsigned char kat3962_addinpr1[] = {0};
+static const unsigned char kat3962_entropyinpr2[] = {
+ 0x28, 0x5d, 0x86, 0xca, 0x15, 0x19, 0xc0, 0x11, 0xc5, 0xbb, 0x36, 0x6f,
+ 0x8f, 0xb4, 0x05, 0x8f, 0xb7, 0x77, 0x48, 0xdd, 0x08, 0x98, 0x2a, 0xc3,
+ 0x61, 0x2a, 0xe0, 0xe7, 0xec, 0x55, 0x38, 0x4d, 0x54, 0xc6, 0x1a, 0xa0,
+ 0xca, 0x07, 0x07, 0x6a,
+};
+static const unsigned char kat3962_addinpr2[] = {0};
+static const unsigned char kat3962_retbits[] = {
+ 0x24, 0xd0, 0x61, 0x21, 0xc1, 0xa2, 0xeb, 0xf2, 0x5d, 0x0d, 0x56, 0xdc,
+ 0xf3, 0x38, 0x1e, 0x32, 0xe8, 0x46, 0x3a, 0x90, 0x69, 0x08, 0x85, 0x10,
+ 0x6c, 0x61, 0x6a, 0x87, 0x79, 0x8f, 0x2b, 0xb2, 0xbd, 0x35, 0x96, 0x6d,
+ 0x27, 0x33, 0x27, 0x96, 0x86, 0x84, 0x1a, 0x19, 0xdc, 0xc0, 0xf0, 0xea,
+ 0xa7, 0x3c, 0x58, 0xea, 0x27, 0x4a, 0x38, 0x13, 0xc1, 0xab, 0xd7, 0x22,
+ 0x98, 0xa3, 0x23, 0x58,
+};
+static const struct drbg_kat_pr_true kat3962_t = {
+ 1, kat3962_entropyin, kat3962_nonce, kat3962_persstr,
+ kat3962_entropyinpr1, kat3962_addinpr1, kat3962_entropyinpr2,
+ kat3962_addinpr2, kat3962_retbits
+};
+static const struct drbg_kat kat3962 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3962_t
+};
+
+static const unsigned char kat3963_entropyin[] = {
+ 0xfd, 0xfe, 0xdb, 0x2b, 0xf6, 0xca, 0x16, 0x74, 0x4a, 0x0e, 0x38, 0x0f,
+ 0x43, 0xe0, 0x9f, 0x3d, 0x26, 0x0a, 0x2c, 0x52, 0x4d, 0xa2, 0xc1, 0x68,
+ 0x13, 0xc7, 0x59, 0x8e, 0xb8, 0xba, 0xe0, 0x37, 0xdd, 0x50, 0xc8, 0x8d,
+ 0x93, 0xaf, 0x2b, 0x51,
+};
+static const unsigned char kat3963_nonce[] = {0};
+static const unsigned char kat3963_persstr[] = {0};
+static const unsigned char kat3963_entropyinpr1[] = {
+ 0x68, 0x0c, 0x44, 0x7f, 0x6d, 0x3b, 0xab, 0x7c, 0xa4, 0xb1, 0x20, 0x98,
+ 0x59, 0x3e, 0xd6, 0xf3, 0x9b, 0x1f, 0x24, 0x38, 0x56, 0x16, 0x5c, 0x87,
+ 0xc6, 0xf4, 0x4e, 0x03, 0x97, 0x74, 0x27, 0x2f, 0x06, 0x4a, 0x12, 0x07,
+ 0x86, 0xff, 0x77, 0xb0,
+};
+static const unsigned char kat3963_addinpr1[] = {0};
+static const unsigned char kat3963_entropyinpr2[] = {
+ 0x4f, 0x76, 0x64, 0xcc, 0x62, 0x79, 0x70, 0x27, 0x1e, 0x3c, 0xbe, 0x9d,
+ 0xd9, 0x4c, 0x63, 0x10, 0x47, 0x3e, 0x93, 0xc7, 0xa1, 0x0c, 0xa9, 0x2f,
+ 0x34, 0xe3, 0xf5, 0xfd, 0x69, 0x09, 0xe7, 0xd1, 0x0c, 0xf5, 0x51, 0xeb,
+ 0x18, 0x0a, 0xe4, 0xcc,
+};
+static const unsigned char kat3963_addinpr2[] = {0};
+static const unsigned char kat3963_retbits[] = {
+ 0x59, 0xe0, 0x56, 0xd6, 0xe0, 0xdd, 0xaa, 0xf5, 0xcf, 0x83, 0xc6, 0x33,
+ 0x98, 0xe1, 0x44, 0xd1, 0x7d, 0xbe, 0x45, 0x59, 0x46, 0x72, 0x23, 0x3a,
+ 0x1c, 0x16, 0x11, 0xf0, 0x3d, 0x54, 0xfc, 0x1b, 0x63, 0x61, 0x14, 0x41,
+ 0x3d, 0x61, 0xe1, 0x50, 0x89, 0x80, 0x98, 0x9e, 0x73, 0x9a, 0x5b, 0x6d,
+ 0x0f, 0xbc, 0x8f, 0x66, 0x77, 0x64, 0x5f, 0xb6, 0xb2, 0x0c, 0x46, 0xa7,
+ 0xfe, 0xd8, 0xca, 0x9a,
+};
+static const struct drbg_kat_pr_true kat3963_t = {
+ 2, kat3963_entropyin, kat3963_nonce, kat3963_persstr,
+ kat3963_entropyinpr1, kat3963_addinpr1, kat3963_entropyinpr2,
+ kat3963_addinpr2, kat3963_retbits
+};
+static const struct drbg_kat kat3963 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3963_t
+};
+
+static const unsigned char kat3964_entropyin[] = {
+ 0x7e, 0x48, 0x91, 0x0c, 0xf6, 0xaa, 0xcc, 0x1e, 0x27, 0x22, 0xa3, 0x0b,
+ 0x05, 0x11, 0x19, 0x45, 0xd2, 0x54, 0xec, 0x02, 0x94, 0x39, 0xa7, 0xfe,
+ 0xd4, 0xd4, 0x80, 0x2e, 0x1d, 0x5b, 0x80, 0x99, 0x2e, 0xd7, 0x77, 0x93,
+ 0x99, 0x42, 0xeb, 0x39,
+};
+static const unsigned char kat3964_nonce[] = {0};
+static const unsigned char kat3964_persstr[] = {0};
+static const unsigned char kat3964_entropyinpr1[] = {
+ 0x69, 0x3f, 0xd9, 0xed, 0x85, 0xe7, 0x8a, 0x76, 0xb5, 0xb5, 0xd5, 0xf4,
+ 0xa6, 0xfe, 0xbb, 0x9c, 0x36, 0xcb, 0xe1, 0xb9, 0x73, 0xb5, 0xfc, 0x16,
+ 0x74, 0xd5, 0x43, 0xac, 0x3f, 0x18, 0x2b, 0x8a, 0xf1, 0x7e, 0xf3, 0xac,
+ 0x50, 0xe6, 0x1b, 0x26,
+};
+static const unsigned char kat3964_addinpr1[] = {0};
+static const unsigned char kat3964_entropyinpr2[] = {
+ 0xae, 0xf7, 0xe1, 0x76, 0xc7, 0xf5, 0xea, 0xb4, 0x34, 0xbf, 0x46, 0x1d,
+ 0x08, 0x20, 0x4f, 0x03, 0xee, 0xd3, 0x95, 0xdd, 0xe9, 0xba, 0xec, 0x6a,
+ 0xa1, 0x06, 0xb0, 0x3e, 0xd9, 0xa5, 0x70, 0x50, 0x43, 0x85, 0x60, 0x52,
+ 0xf3, 0x37, 0x3e, 0x22,
+};
+static const unsigned char kat3964_addinpr2[] = {0};
+static const unsigned char kat3964_retbits[] = {
+ 0xb0, 0xcb, 0x41, 0x35, 0x3a, 0xdb, 0xfa, 0x34, 0x6f, 0xf5, 0x7b, 0x22,
+ 0xf6, 0xab, 0x30, 0xbf, 0x94, 0xce, 0x79, 0xf5, 0x3b, 0x00, 0x19, 0x0c,
+ 0x57, 0x9d, 0x5f, 0xfe, 0x6f, 0xcf, 0x6b, 0x0d, 0x0c, 0x35, 0xf3, 0xf6,
+ 0xbc, 0xa1, 0x5a, 0xc7, 0xa5, 0xb5, 0x30, 0x02, 0x34, 0xbd, 0xda, 0x01,
+ 0x8e, 0x03, 0xa4, 0x53, 0x4e, 0x0c, 0xfd, 0x89, 0x5e, 0x57, 0xc6, 0xbc,
+ 0x97, 0xb1, 0xdf, 0xc7,
+};
+static const struct drbg_kat_pr_true kat3964_t = {
+ 3, kat3964_entropyin, kat3964_nonce, kat3964_persstr,
+ kat3964_entropyinpr1, kat3964_addinpr1, kat3964_entropyinpr2,
+ kat3964_addinpr2, kat3964_retbits
+};
+static const struct drbg_kat kat3964 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3964_t
+};
+
+static const unsigned char kat3965_entropyin[] = {
+ 0xae, 0x05, 0x46, 0x14, 0xeb, 0xbf, 0x3e, 0xa5, 0x7a, 0x2a, 0xf7, 0xb3,
+ 0x94, 0x68, 0x0b, 0x86, 0xe9, 0xf3, 0x0e, 0xeb, 0x74, 0x4d, 0xc8, 0x1a,
+ 0x71, 0xa6, 0x59, 0xae, 0x81, 0xe9, 0x71, 0xb8, 0x91, 0x70, 0x49, 0x82,
+ 0xc7, 0x03, 0x3b, 0x48,
+};
+static const unsigned char kat3965_nonce[] = {0};
+static const unsigned char kat3965_persstr[] = {0};
+static const unsigned char kat3965_entropyinpr1[] = {
+ 0x7f, 0x0e, 0xbb, 0x7e, 0x35, 0xb6, 0x63, 0xe1, 0x55, 0xa0, 0x9c, 0xa1,
+ 0x37, 0x09, 0x74, 0x1c, 0x35, 0x4f, 0xaf, 0xe3, 0x61, 0xd1, 0x19, 0xba,
+ 0x4c, 0xc9, 0xd3, 0x10, 0x9e, 0x14, 0x88, 0xbc, 0x4d, 0xb8, 0x26, 0x28,
+ 0x60, 0xe7, 0x81, 0x55,
+};
+static const unsigned char kat3965_addinpr1[] = {0};
+static const unsigned char kat3965_entropyinpr2[] = {
+ 0x5b, 0xd8, 0x99, 0x39, 0x5c, 0x99, 0xff, 0xf6, 0xd8, 0x6c, 0x8e, 0x25,
+ 0x4a, 0x07, 0xa0, 0x43, 0x0d, 0x0e, 0xaa, 0xf4, 0xc9, 0x6c, 0xc9, 0x06,
+ 0x0e, 0x87, 0x33, 0xe2, 0x7e, 0xa5, 0x47, 0x2c, 0xb6, 0x4e, 0xb2, 0x49,
+ 0x92, 0xf3, 0x5d, 0xef,
+};
+static const unsigned char kat3965_addinpr2[] = {0};
+static const unsigned char kat3965_retbits[] = {
+ 0xec, 0x83, 0x9c, 0xfc, 0xe9, 0xfc, 0x17, 0x7b, 0xa4, 0x9e, 0x2a, 0xc8,
+ 0xb3, 0x5f, 0x4c, 0x52, 0xc6, 0xac, 0xd7, 0x09, 0x12, 0x98, 0x13, 0x28,
+ 0x01, 0xb1, 0x33, 0xf1, 0x3b, 0x05, 0x22, 0x9c, 0x71, 0xf0, 0x25, 0x87,
+ 0x7e, 0xb1, 0xcd, 0x90, 0x1b, 0x65, 0xec, 0xd7, 0xc5, 0x0f, 0xe7, 0x38,
+ 0x27, 0xf2, 0x71, 0x76, 0x9c, 0x26, 0x32, 0x12, 0x31, 0x55, 0x24, 0x43,
+ 0x58, 0x58, 0x02, 0x8e,
+};
+static const struct drbg_kat_pr_true kat3965_t = {
+ 4, kat3965_entropyin, kat3965_nonce, kat3965_persstr,
+ kat3965_entropyinpr1, kat3965_addinpr1, kat3965_entropyinpr2,
+ kat3965_addinpr2, kat3965_retbits
+};
+static const struct drbg_kat kat3965 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3965_t
+};
+
+static const unsigned char kat3966_entropyin[] = {
+ 0xcb, 0xd7, 0x69, 0xaa, 0xb0, 0x20, 0x0c, 0xc4, 0xa9, 0x0b, 0xe6, 0x2d,
+ 0x67, 0x69, 0x3e, 0x46, 0x82, 0x91, 0x2f, 0x6a, 0xad, 0x5a, 0x22, 0x31,
+ 0x01, 0xaf, 0x22, 0x70, 0x5c, 0x03, 0xc1, 0x63, 0x60, 0x9b, 0xdc, 0xb4,
+ 0x8f, 0x47, 0xbb, 0x9f,
+};
+static const unsigned char kat3966_nonce[] = {0};
+static const unsigned char kat3966_persstr[] = {0};
+static const unsigned char kat3966_entropyinpr1[] = {
+ 0x26, 0xe6, 0x81, 0x81, 0x77, 0xe1, 0xc3, 0x28, 0x85, 0xa4, 0x2b, 0x45,
+ 0xab, 0x65, 0xfd, 0x33, 0x6e, 0x6e, 0x0c, 0xb4, 0x78, 0xcb, 0xc5, 0xea,
+ 0x52, 0xd1, 0xbf, 0xf0, 0x36, 0x71, 0x62, 0xd1, 0x29, 0xf6, 0xa3, 0xb1,
+ 0x40, 0xd9, 0xff, 0xf5,
+};
+static const unsigned char kat3966_addinpr1[] = {0};
+static const unsigned char kat3966_entropyinpr2[] = {
+ 0x47, 0xe2, 0x70, 0xa8, 0x86, 0xe3, 0x11, 0x7a, 0xab, 0x48, 0xe9, 0xb2,
+ 0x97, 0x7f, 0xc6, 0x56, 0x7d, 0xdd, 0x22, 0x7c, 0xa0, 0xef, 0x59, 0xac,
+ 0xd9, 0xc4, 0x79, 0x25, 0xdd, 0xe5, 0xcc, 0x44, 0x62, 0x92, 0x74, 0x12,
+ 0x2f, 0x6f, 0x76, 0x2b,
+};
+static const unsigned char kat3966_addinpr2[] = {0};
+static const unsigned char kat3966_retbits[] = {
+ 0x83, 0x86, 0x35, 0x45, 0x44, 0xfa, 0xa5, 0x01, 0x13, 0xeb, 0xd4, 0x24,
+ 0x56, 0x81, 0xbc, 0x12, 0xd0, 0x03, 0x12, 0x79, 0x46, 0x96, 0xde, 0x7c,
+ 0x9a, 0x5c, 0xa4, 0x3c, 0x9b, 0x96, 0x94, 0x7b, 0x1c, 0xaa, 0x1e, 0xe0,
+ 0x38, 0x45, 0x6b, 0x0d, 0xf4, 0xf7, 0x14, 0x37, 0xae, 0x66, 0xe9, 0x84,
+ 0x92, 0xca, 0x49, 0xfb, 0x8e, 0x0b, 0xef, 0xb4, 0x7e, 0x11, 0xb0, 0x46,
+ 0x01, 0x68, 0x86, 0xed,
+};
+static const struct drbg_kat_pr_true kat3966_t = {
+ 5, kat3966_entropyin, kat3966_nonce, kat3966_persstr,
+ kat3966_entropyinpr1, kat3966_addinpr1, kat3966_entropyinpr2,
+ kat3966_addinpr2, kat3966_retbits
+};
+static const struct drbg_kat kat3966 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3966_t
+};
+
+static const unsigned char kat3967_entropyin[] = {
+ 0xcb, 0xc8, 0x24, 0x7b, 0x4f, 0x4c, 0xb3, 0x10, 0x0d, 0x6a, 0xf8, 0xdd,
+ 0x94, 0x03, 0x00, 0x0f, 0xe0, 0xda, 0x4e, 0x0f, 0x9c, 0xb2, 0x76, 0x53,
+ 0x00, 0xa0, 0x8e, 0x09, 0x61, 0xe0, 0x44, 0xae, 0x1a, 0xf2, 0xb1, 0x74,
+ 0x9a, 0xbf, 0x3e, 0xcf,
+};
+static const unsigned char kat3967_nonce[] = {0};
+static const unsigned char kat3967_persstr[] = {0};
+static const unsigned char kat3967_entropyinpr1[] = {
+ 0x30, 0x74, 0xb9, 0xa5, 0x5a, 0xe8, 0xea, 0x7d, 0xd0, 0xf2, 0x65, 0x82,
+ 0xf1, 0xe4, 0x46, 0x66, 0xed, 0xbb, 0x72, 0xcd, 0xa0, 0x68, 0xbc, 0x99,
+ 0xc4, 0x78, 0x92, 0x14, 0x1e, 0xf5, 0x50, 0x9d, 0xcd, 0x72, 0xd5, 0x1a,
+ 0x3b, 0x39, 0x4a, 0x63,
+};
+static const unsigned char kat3967_addinpr1[] = {0};
+static const unsigned char kat3967_entropyinpr2[] = {
+ 0x71, 0x0a, 0x18, 0x0c, 0x48, 0x4b, 0x8e, 0x9f, 0x8f, 0xa1, 0xb0, 0x6c,
+ 0x04, 0xef, 0xd0, 0x92, 0x75, 0x69, 0xe3, 0x47, 0x39, 0xc8, 0xca, 0x30,
+ 0xeb, 0xe1, 0x0f, 0xc4, 0x4b, 0x2e, 0xd9, 0x84, 0xf2, 0x93, 0x3e, 0x71,
+ 0x24, 0xc2, 0x1f, 0xe9,
+};
+static const unsigned char kat3967_addinpr2[] = {0};
+static const unsigned char kat3967_retbits[] = {
+ 0x66, 0x5a, 0x66, 0x4e, 0xb1, 0x47, 0x7b, 0x25, 0x27, 0x32, 0xb2, 0x69,
+ 0x25, 0xb0, 0x92, 0xb2, 0x9a, 0x14, 0xcc, 0xb0, 0xe6, 0x49, 0x79, 0x5d,
+ 0xba, 0x0d, 0x8f, 0xef, 0x17, 0x7b, 0x87, 0xed, 0xed, 0x48, 0xdc, 0x99,
+ 0xa7, 0x87, 0x0d, 0xc6, 0x5b, 0x5b, 0x5d, 0x47, 0xb8, 0x78, 0x5a, 0xbe,
+ 0x6a, 0x08, 0x5e, 0x3e, 0xe4, 0xb4, 0x89, 0x2f, 0xc6, 0x34, 0xc5, 0x89,
+ 0x38, 0xf7, 0x75, 0xea,
+};
+static const struct drbg_kat_pr_true kat3967_t = {
+ 6, kat3967_entropyin, kat3967_nonce, kat3967_persstr,
+ kat3967_entropyinpr1, kat3967_addinpr1, kat3967_entropyinpr2,
+ kat3967_addinpr2, kat3967_retbits
+};
+static const struct drbg_kat kat3967 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3967_t
+};
+
+static const unsigned char kat3968_entropyin[] = {
+ 0xd9, 0xbb, 0xe8, 0x22, 0x87, 0x8a, 0x71, 0x9c, 0x41, 0x5b, 0xb6, 0x39,
+ 0xc5, 0xb6, 0x76, 0xa2, 0xf3, 0x74, 0xab, 0xe2, 0x4e, 0x9d, 0x6e, 0x68,
+ 0xd5, 0xd2, 0x67, 0xeb, 0xe3, 0x5b, 0x86, 0xc2, 0xcf, 0x6f, 0x30, 0x1a,
+ 0x1a, 0x7b, 0xe0, 0xa0,
+};
+static const unsigned char kat3968_nonce[] = {0};
+static const unsigned char kat3968_persstr[] = {0};
+static const unsigned char kat3968_entropyinpr1[] = {
+ 0xba, 0x95, 0xe1, 0x62, 0x78, 0x07, 0x89, 0x67, 0x6a, 0x7c, 0x2b, 0x37,
+ 0x86, 0x5b, 0xe5, 0x31, 0xed, 0xfd, 0x8f, 0x22, 0x07, 0xf8, 0x7f, 0x72,
+ 0xa3, 0x1a, 0xbb, 0x1f, 0xe8, 0x18, 0x17, 0x01, 0x43, 0xbf, 0xd9, 0xee,
+ 0x0f, 0xea, 0x29, 0x24,
+};
+static const unsigned char kat3968_addinpr1[] = {0};
+static const unsigned char kat3968_entropyinpr2[] = {
+ 0xb3, 0x2a, 0x0e, 0xf7, 0x97, 0x18, 0x46, 0x0e, 0x8e, 0x3e, 0x6c, 0xa3,
+ 0xae, 0x24, 0x1c, 0x02, 0x2e, 0x89, 0x39, 0xa7, 0xdd, 0xb1, 0x1b, 0xa3,
+ 0x88, 0x05, 0x7d, 0x32, 0xad, 0xa1, 0x04, 0xcb, 0x72, 0x5d, 0xa5, 0x43,
+ 0x24, 0xd9, 0x82, 0xda,
+};
+static const unsigned char kat3968_addinpr2[] = {0};
+static const unsigned char kat3968_retbits[] = {
+ 0xdc, 0xa0, 0xc2, 0xc2, 0x76, 0x46, 0xaf, 0xa2, 0xeb, 0x6e, 0x68, 0xce,
+ 0x14, 0xae, 0x0b, 0x23, 0x83, 0x73, 0x5e, 0x72, 0x85, 0x13, 0xe9, 0x4c,
+ 0x03, 0xfb, 0x2f, 0xfc, 0xd8, 0xe3, 0xc4, 0xeb, 0xc7, 0x5b, 0x58, 0xb5,
+ 0x4a, 0x35, 0x4b, 0x0b, 0x38, 0xb8, 0x4e, 0x35, 0x2a, 0x16, 0x53, 0x56,
+ 0x18, 0x7c, 0x44, 0x73, 0xd3, 0xd2, 0xfa, 0xa4, 0x60, 0x07, 0x2f, 0x06,
+ 0xec, 0x1e, 0x47, 0xdd,
+};
+static const struct drbg_kat_pr_true kat3968_t = {
+ 7, kat3968_entropyin, kat3968_nonce, kat3968_persstr,
+ kat3968_entropyinpr1, kat3968_addinpr1, kat3968_entropyinpr2,
+ kat3968_addinpr2, kat3968_retbits
+};
+static const struct drbg_kat kat3968 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3968_t
+};
+
+static const unsigned char kat3969_entropyin[] = {
+ 0xf4, 0xbf, 0xd2, 0x1d, 0x23, 0x83, 0xad, 0x6d, 0x0b, 0xe2, 0x04, 0x63,
+ 0x3b, 0x5e, 0x91, 0x60, 0xa5, 0xc9, 0x97, 0x4b, 0xd2, 0xc8, 0x9b, 0x2d,
+ 0x1e, 0x52, 0x5b, 0x42, 0xe6, 0xb6, 0x8f, 0x10, 0x2e, 0x0d, 0xea, 0x49,
+ 0x1c, 0xff, 0xb1, 0x41,
+};
+static const unsigned char kat3969_nonce[] = {0};
+static const unsigned char kat3969_persstr[] = {0};
+static const unsigned char kat3969_entropyinpr1[] = {
+ 0x6b, 0x9b, 0x57, 0xe0, 0xf8, 0xa2, 0xdb, 0x3b, 0xe4, 0xf5, 0x4d, 0x48,
+ 0x6c, 0x57, 0x06, 0x24, 0xcd, 0xf0, 0x2b, 0xc4, 0xec, 0x25, 0x83, 0x5c,
+ 0x90, 0xe9, 0xd0, 0xff, 0xc7, 0xa1, 0x18, 0xba, 0x02, 0x5c, 0xd2, 0x89,
+ 0x6a, 0xaa, 0x2e, 0x34,
+};
+static const unsigned char kat3969_addinpr1[] = {0};
+static const unsigned char kat3969_entropyinpr2[] = {
+ 0xde, 0xf2, 0x78, 0x10, 0x9f, 0xba, 0x66, 0x53, 0x65, 0x52, 0x93, 0x6d,
+ 0xae, 0x8e, 0x55, 0xfd, 0xf0, 0x81, 0xfb, 0xe8, 0xd2, 0x7f, 0x99, 0x79,
+ 0x07, 0x40, 0x4f, 0x5e, 0x0e, 0xa5, 0x04, 0x6c, 0x04, 0x19, 0xd3, 0x6e,
+ 0x70, 0x65, 0xba, 0x54,
+};
+static const unsigned char kat3969_addinpr2[] = {0};
+static const unsigned char kat3969_retbits[] = {
+ 0x8f, 0x5e, 0x0e, 0xb4, 0x74, 0x28, 0x15, 0x41, 0x26, 0x19, 0xfb, 0x02,
+ 0x58, 0xd6, 0x65, 0xd1, 0x0c, 0x14, 0xf3, 0x6d, 0x15, 0x16, 0x0f, 0x74,
+ 0x3e, 0x7c, 0x5f, 0xac, 0x5b, 0x39, 0x21, 0x0c, 0xa4, 0x2a, 0x87, 0xcc,
+ 0xc7, 0x04, 0x9e, 0x47, 0x70, 0xd8, 0x41, 0x8b, 0x36, 0xcc, 0x7e, 0xb5,
+ 0x66, 0x82, 0xa3, 0x17, 0x69, 0x0b, 0xdc, 0x93, 0x1f, 0x51, 0x9a, 0x50,
+ 0x15, 0x33, 0x24, 0x37,
+};
+static const struct drbg_kat_pr_true kat3969_t = {
+ 8, kat3969_entropyin, kat3969_nonce, kat3969_persstr,
+ kat3969_entropyinpr1, kat3969_addinpr1, kat3969_entropyinpr2,
+ kat3969_addinpr2, kat3969_retbits
+};
+static const struct drbg_kat kat3969 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3969_t
+};
+
+static const unsigned char kat3970_entropyin[] = {
+ 0x6b, 0x4f, 0x09, 0x09, 0x83, 0xf2, 0x80, 0x22, 0x79, 0x49, 0xd4, 0x2f,
+ 0xb6, 0xc1, 0x0f, 0x3e, 0xb4, 0xee, 0xf3, 0x49, 0xe6, 0x5e, 0x35, 0x42,
+ 0xcd, 0x6b, 0x60, 0x4a, 0x7b, 0x8d, 0xe1, 0x6d, 0x88, 0xdc, 0x0c, 0x2a,
+ 0x66, 0xfe, 0xad, 0xde,
+};
+static const unsigned char kat3970_nonce[] = {0};
+static const unsigned char kat3970_persstr[] = {0};
+static const unsigned char kat3970_entropyinpr1[] = {
+ 0x6f, 0xeb, 0xe6, 0xc3, 0x4b, 0x50, 0xaf, 0xa6, 0x4d, 0x02, 0xc0, 0x3e,
+ 0x19, 0xb1, 0xba, 0x2c, 0x1b, 0x4e, 0xa2, 0x5f, 0x50, 0x9a, 0x0c, 0xe3,
+ 0x9f, 0x9f, 0xc2, 0x92, 0x9f, 0x22, 0x27, 0x97, 0x14, 0x1a, 0xbf, 0x1b,
+ 0xb7, 0x3e, 0x20, 0x8b,
+};
+static const unsigned char kat3970_addinpr1[] = {0};
+static const unsigned char kat3970_entropyinpr2[] = {
+ 0x8f, 0x05, 0x6d, 0x5d, 0x1b, 0x18, 0xad, 0x58, 0xb4, 0x08, 0x51, 0x73,
+ 0x15, 0xff, 0x71, 0x7b, 0xd8, 0xe3, 0x39, 0xbc, 0x07, 0x85, 0x65, 0x03,
+ 0x9e, 0x58, 0x0d, 0x75, 0xc7, 0x5a, 0x94, 0x1c, 0x45, 0xdb, 0x4d, 0x51,
+ 0x7d, 0x44, 0xa9, 0x70,
+};
+static const unsigned char kat3970_addinpr2[] = {0};
+static const unsigned char kat3970_retbits[] = {
+ 0x2d, 0x92, 0xbd, 0xdd, 0xb6, 0x28, 0x64, 0x46, 0xe3, 0x0b, 0xe3, 0xfb,
+ 0xd8, 0xd6, 0xff, 0x01, 0x86, 0x7c, 0x79, 0x19, 0x42, 0x96, 0x0e, 0x5a,
+ 0xf0, 0xac, 0x18, 0x75, 0xb2, 0xcd, 0xab, 0xc9, 0x4b, 0xe0, 0xba, 0x0c,
+ 0x22, 0x9e, 0xdd, 0xb2, 0x61, 0xc2, 0xa7, 0xba, 0xe7, 0x07, 0xe7, 0x5f,
+ 0xa1, 0x82, 0x9f, 0x18, 0x06, 0xcf, 0xd9, 0x50, 0x45, 0xb9, 0x5c, 0x88,
+ 0xd8, 0x9e, 0x2a, 0x02,
+};
+static const struct drbg_kat_pr_true kat3970_t = {
+ 9, kat3970_entropyin, kat3970_nonce, kat3970_persstr,
+ kat3970_entropyinpr1, kat3970_addinpr1, kat3970_entropyinpr2,
+ kat3970_addinpr2, kat3970_retbits
+};
+static const struct drbg_kat kat3970 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3970_t
+};
+
+static const unsigned char kat3971_entropyin[] = {
+ 0x89, 0xf5, 0xc7, 0xcf, 0xe6, 0xd5, 0xb1, 0xc3, 0xd8, 0xe8, 0x1e, 0xe2,
+ 0x9b, 0xe1, 0xcc, 0x6e, 0x24, 0x57, 0xe5, 0xa1, 0xb1, 0x73, 0xf9, 0xe0,
+ 0xf8, 0x17, 0xb4, 0xcc, 0xd7, 0x53, 0xc0, 0xee, 0xc9, 0x18, 0x7d, 0x0b,
+ 0x9c, 0xd4, 0x32, 0xdb,
+};
+static const unsigned char kat3971_nonce[] = {0};
+static const unsigned char kat3971_persstr[] = {0};
+static const unsigned char kat3971_entropyinpr1[] = {
+ 0x28, 0x40, 0xdc, 0xc3, 0x26, 0x76, 0xa8, 0x79, 0xd5, 0xb4, 0x9c, 0x9a,
+ 0x80, 0x44, 0x25, 0x6f, 0xb5, 0xca, 0x0a, 0x38, 0xbb, 0xa3, 0x3e, 0xad,
+ 0x67, 0x2e, 0xb8, 0x4c, 0x3d, 0x4a, 0xfa, 0xc1, 0xa6, 0x5f, 0x62, 0xfc,
+ 0xb4, 0x4b, 0x61, 0x1f,
+};
+static const unsigned char kat3971_addinpr1[] = {0};
+static const unsigned char kat3971_entropyinpr2[] = {
+ 0x32, 0x38, 0x9e, 0x1a, 0xda, 0x55, 0x2a, 0x38, 0xff, 0x9c, 0x89, 0xe4,
+ 0xfa, 0x8e, 0x35, 0x4b, 0xc4, 0x28, 0xe7, 0x76, 0xae, 0x96, 0x05, 0x4e,
+ 0xb0, 0x9e, 0x1f, 0x5a, 0xc7, 0xc2, 0x5f, 0x80, 0xbf, 0x10, 0x27, 0xb3,
+ 0xea, 0xf5, 0xd0, 0x91,
+};
+static const unsigned char kat3971_addinpr2[] = {0};
+static const unsigned char kat3971_retbits[] = {
+ 0x9f, 0xe4, 0x10, 0xce, 0xfe, 0x2a, 0x32, 0x9d, 0x37, 0x9a, 0xe6, 0xe7,
+ 0xa6, 0xd5, 0xe0, 0x68, 0x05, 0x3b, 0x97, 0x92, 0x56, 0xe9, 0x48, 0x7f,
+ 0x01, 0x60, 0xfc, 0xeb, 0x22, 0xe3, 0x57, 0x0e, 0xff, 0x97, 0x7c, 0x2a,
+ 0x32, 0xbd, 0xa4, 0x14, 0x88, 0xd0, 0x75, 0xf5, 0xf7, 0x4c, 0x6b, 0xfe,
+ 0xf8, 0x07, 0xbc, 0x4f, 0x7b, 0xce, 0xb8, 0xdd, 0xcc, 0x07, 0x2e, 0xd4,
+ 0xf1, 0x9a, 0x28, 0x01,
+};
+static const struct drbg_kat_pr_true kat3971_t = {
+ 10, kat3971_entropyin, kat3971_nonce, kat3971_persstr,
+ kat3971_entropyinpr1, kat3971_addinpr1, kat3971_entropyinpr2,
+ kat3971_addinpr2, kat3971_retbits
+};
+static const struct drbg_kat kat3971 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3971_t
+};
+
+static const unsigned char kat3972_entropyin[] = {
+ 0xad, 0x2f, 0x0c, 0x1d, 0x45, 0x91, 0x83, 0x5d, 0xa1, 0x68, 0x8f, 0x3a,
+ 0x03, 0xf5, 0x83, 0x4b, 0xaa, 0xe5, 0xba, 0xb8, 0xac, 0x5c, 0xfd, 0x7d,
+ 0xcd, 0xc9, 0x63, 0xa0, 0x88, 0x65, 0x84, 0x42, 0x93, 0x3b, 0x87, 0xe5,
+ 0x8a, 0xfb, 0x10, 0xdb,
+};
+static const unsigned char kat3972_nonce[] = {0};
+static const unsigned char kat3972_persstr[] = {0};
+static const unsigned char kat3972_entropyinpr1[] = {
+ 0x27, 0x68, 0xe5, 0x65, 0x8a, 0x39, 0xc8, 0x77, 0x07, 0xff, 0x47, 0xe2,
+ 0xc0, 0x69, 0xe5, 0x4b, 0x05, 0x90, 0x88, 0xe9, 0xe7, 0x7b, 0x79, 0xcf,
+ 0x67, 0xad, 0xe0, 0x96, 0x95, 0x38, 0xc4, 0x2a, 0xc6, 0x36, 0x35, 0x1e,
+ 0xd9, 0x78, 0x82, 0xa1,
+};
+static const unsigned char kat3972_addinpr1[] = {0};
+static const unsigned char kat3972_entropyinpr2[] = {
+ 0x7d, 0x88, 0x2b, 0xf8, 0x9a, 0xf1, 0x75, 0xe3, 0x05, 0xdd, 0x28, 0x01,
+ 0xf5, 0x30, 0xfe, 0xc6, 0xda, 0x80, 0x2d, 0x1c, 0x4e, 0xf5, 0xf7, 0x04,
+ 0xbd, 0x17, 0x23, 0x5a, 0x0d, 0xe5, 0xba, 0x33, 0x91, 0x35, 0x49, 0x68,
+ 0xb7, 0x42, 0x00, 0x02,
+};
+static const unsigned char kat3972_addinpr2[] = {0};
+static const unsigned char kat3972_retbits[] = {
+ 0x88, 0x30, 0xf1, 0xe8, 0x1e, 0x74, 0xde, 0xde, 0x5b, 0x7a, 0xaa, 0x91,
+ 0x06, 0x44, 0x58, 0x57, 0x2a, 0xbe, 0xfc, 0xf9, 0x3e, 0xc3, 0xa4, 0xf3,
+ 0xef, 0xc4, 0xa6, 0xe1, 0x99, 0x25, 0x3a, 0xa7, 0x2c, 0x7c, 0x71, 0xb6,
+ 0x1b, 0x73, 0xf3, 0x63, 0x85, 0x12, 0x3a, 0x1a, 0xd7, 0x6f, 0xfd, 0xc7,
+ 0xd0, 0x05, 0x38, 0xbd, 0x2c, 0x42, 0x94, 0xa3, 0x49, 0x1a, 0x1f, 0xb7,
+ 0x67, 0x8c, 0xf0, 0x5e,
+};
+static const struct drbg_kat_pr_true kat3972_t = {
+ 11, kat3972_entropyin, kat3972_nonce, kat3972_persstr,
+ kat3972_entropyinpr1, kat3972_addinpr1, kat3972_entropyinpr2,
+ kat3972_addinpr2, kat3972_retbits
+};
+static const struct drbg_kat kat3972 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3972_t
+};
+
+static const unsigned char kat3973_entropyin[] = {
+ 0x31, 0x81, 0x94, 0xf9, 0xe8, 0x8c, 0xb9, 0x50, 0x92, 0xf7, 0x33, 0xa2,
+ 0x0e, 0x41, 0x24, 0xd6, 0x0a, 0x0f, 0xab, 0x1e, 0x57, 0xc9, 0x82, 0x8b,
+ 0xe1, 0xbe, 0xb7, 0xbe, 0x91, 0x36, 0x27, 0x11, 0xfd, 0x15, 0x6b, 0x8d,
+ 0xfa, 0x14, 0xe2, 0x6d,
+};
+static const unsigned char kat3973_nonce[] = {0};
+static const unsigned char kat3973_persstr[] = {0};
+static const unsigned char kat3973_entropyinpr1[] = {
+ 0xd8, 0x86, 0x16, 0x4a, 0xc0, 0xd4, 0x56, 0x64, 0x29, 0xe2, 0x79, 0x6f,
+ 0x3b, 0xce, 0xb1, 0xc4, 0xce, 0x5e, 0x23, 0xe0, 0x41, 0x72, 0xfd, 0x7c,
+ 0xce, 0x41, 0xf4, 0x69, 0x95, 0xbb, 0x3a, 0x22, 0x79, 0x04, 0x94, 0x39,
+ 0xb7, 0x23, 0xa1, 0xd6,
+};
+static const unsigned char kat3973_addinpr1[] = {0};
+static const unsigned char kat3973_entropyinpr2[] = {
+ 0xa0, 0x10, 0x76, 0xb5, 0xb7, 0xe9, 0x06, 0x3c, 0x0f, 0x35, 0x1e, 0x3d,
+ 0xc9, 0x9c, 0x40, 0x00, 0xd2, 0x3a, 0x48, 0xa9, 0x74, 0x67, 0xdd, 0x23,
+ 0xdb, 0x4f, 0x62, 0x7c, 0x8d, 0xf5, 0x0e, 0x83, 0xc3, 0x68, 0xb8, 0xd8,
+ 0x7b, 0xf1, 0x62, 0x2e,
+};
+static const unsigned char kat3973_addinpr2[] = {0};
+static const unsigned char kat3973_retbits[] = {
+ 0x8b, 0x51, 0x31, 0x89, 0x93, 0x61, 0x11, 0x04, 0xb2, 0x70, 0xff, 0xf6,
+ 0x3a, 0x2c, 0xb3, 0x26, 0xcf, 0x44, 0x06, 0x3d, 0xa4, 0x97, 0xf5, 0x8e,
+ 0xfe, 0xb8, 0xa8, 0xab, 0x11, 0x85, 0x25, 0x42, 0x8a, 0xee, 0x2e, 0x3c,
+ 0x6c, 0xb8, 0xe8, 0x85, 0x15, 0x5b, 0x1a, 0x6d, 0xa0, 0xfb, 0x54, 0x1b,
+ 0xa8, 0x0e, 0xca, 0xc7, 0x7c, 0x63, 0x4d, 0x3d, 0x85, 0x92, 0x7e, 0x82,
+ 0x97, 0x02, 0xa5, 0xa9,
+};
+static const struct drbg_kat_pr_true kat3973_t = {
+ 12, kat3973_entropyin, kat3973_nonce, kat3973_persstr,
+ kat3973_entropyinpr1, kat3973_addinpr1, kat3973_entropyinpr2,
+ kat3973_addinpr2, kat3973_retbits
+};
+static const struct drbg_kat kat3973 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3973_t
+};
+
+static const unsigned char kat3974_entropyin[] = {
+ 0x3f, 0xdd, 0x8e, 0xaa, 0x05, 0x02, 0x0d, 0xe2, 0x40, 0x0a, 0x62, 0xb3,
+ 0xa1, 0xf6, 0xe7, 0xb6, 0xb1, 0xba, 0x5e, 0x97, 0x4e, 0xaa, 0xc1, 0x17,
+ 0xd1, 0x98, 0xc6, 0x38, 0x14, 0x55, 0x7e, 0xb5, 0xbd, 0x1b, 0xd4, 0x0e,
+ 0x51, 0x12, 0xb2, 0xd4,
+};
+static const unsigned char kat3974_nonce[] = {0};
+static const unsigned char kat3974_persstr[] = {0};
+static const unsigned char kat3974_entropyinpr1[] = {
+ 0x8d, 0xe3, 0x38, 0x46, 0x7a, 0x27, 0x09, 0xd9, 0x3b, 0x5c, 0xd4, 0x23,
+ 0x4e, 0x34, 0xbf, 0x91, 0xac, 0x37, 0xec, 0x43, 0x3a, 0xd1, 0xf4, 0x0f,
+ 0xf2, 0x89, 0xe6, 0x93, 0xf0, 0xf4, 0xa0, 0x09, 0x83, 0x24, 0x89, 0xa9,
+ 0x5e, 0x25, 0xe3, 0xe7,
+};
+static const unsigned char kat3974_addinpr1[] = {0};
+static const unsigned char kat3974_entropyinpr2[] = {
+ 0x74, 0xa8, 0x54, 0xec, 0xb8, 0x3d, 0x01, 0x72, 0xf1, 0x93, 0x3d, 0x38,
+ 0x91, 0x11, 0x1b, 0xaf, 0x62, 0x0f, 0x85, 0xfa, 0xb3, 0x91, 0x33, 0xdf,
+ 0xfa, 0x52, 0x64, 0xa5, 0x01, 0xf0, 0xb7, 0x30, 0xce, 0xc4, 0x38, 0x1f,
+ 0x39, 0xb3, 0xc5, 0x96,
+};
+static const unsigned char kat3974_addinpr2[] = {0};
+static const unsigned char kat3974_retbits[] = {
+ 0x0a, 0x18, 0x63, 0x09, 0xf0, 0xf7, 0x09, 0x3c, 0x43, 0xfe, 0x30, 0x9c,
+ 0x5c, 0x49, 0x2a, 0x9a, 0x35, 0x7e, 0x39, 0xa4, 0x66, 0x34, 0x38, 0xcb,
+ 0x13, 0x2e, 0x28, 0x69, 0x23, 0x97, 0x36, 0xb1, 0xda, 0xbc, 0xd7, 0xfe,
+ 0x5c, 0x03, 0xb1, 0x5a, 0x78, 0x05, 0xba, 0xaf, 0x3e, 0x05, 0x8c, 0xcf,
+ 0x5d, 0xb3, 0x3c, 0x47, 0x95, 0xde, 0x9e, 0xb4, 0xe0, 0x73, 0x1f, 0x50,
+ 0xb5, 0x6b, 0xaf, 0xe2,
+};
+static const struct drbg_kat_pr_true kat3974_t = {
+ 13, kat3974_entropyin, kat3974_nonce, kat3974_persstr,
+ kat3974_entropyinpr1, kat3974_addinpr1, kat3974_entropyinpr2,
+ kat3974_addinpr2, kat3974_retbits
+};
+static const struct drbg_kat kat3974 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3974_t
+};
+
+static const unsigned char kat3975_entropyin[] = {
+ 0xe8, 0x8c, 0x4a, 0x03, 0xfe, 0x25, 0xb8, 0x7b, 0xb9, 0xe6, 0x2e, 0x56,
+ 0xbd, 0x93, 0xec, 0x3f, 0x34, 0x7d, 0x03, 0x30, 0x9c, 0xdb, 0xb0, 0x97,
+ 0x15, 0x85, 0x94, 0xde, 0x77, 0x6c, 0xbc, 0x5a, 0x3d, 0xba, 0x72, 0x13,
+ 0x3b, 0x17, 0xdf, 0xfe,
+};
+static const unsigned char kat3975_nonce[] = {0};
+static const unsigned char kat3975_persstr[] = {0};
+static const unsigned char kat3975_entropyinpr1[] = {
+ 0xfc, 0xab, 0x20, 0x00, 0xec, 0xec, 0x66, 0xa2, 0x3a, 0xf1, 0x38, 0x1d,
+ 0x36, 0xe1, 0xdf, 0x97, 0xa4, 0x34, 0x1c, 0x32, 0x9f, 0x37, 0x5b, 0x3d,
+ 0xb6, 0xd7, 0x7a, 0xed, 0xa7, 0xc8, 0x52, 0x2c, 0x02, 0xb1, 0x4b, 0xbd,
+ 0x26, 0x05, 0x98, 0x5b,
+};
+static const unsigned char kat3975_addinpr1[] = {0};
+static const unsigned char kat3975_entropyinpr2[] = {
+ 0xd7, 0x50, 0x22, 0x69, 0x2b, 0xbe, 0x5b, 0xee, 0xca, 0x5d, 0x81, 0x94,
+ 0x24, 0x43, 0xcf, 0x0d, 0xd7, 0x8b, 0x77, 0x0b, 0x75, 0x42, 0xcb, 0x8f,
+ 0xd1, 0xbe, 0x65, 0xe4, 0x90, 0x88, 0x16, 0xea, 0x43, 0xfa, 0x90, 0x3a,
+ 0x7a, 0x66, 0xfe, 0x0b,
+};
+static const unsigned char kat3975_addinpr2[] = {0};
+static const unsigned char kat3975_retbits[] = {
+ 0xd5, 0xf9, 0x12, 0x35, 0xa9, 0x0c, 0xaf, 0xc9, 0x6e, 0x39, 0xe2, 0xa1,
+ 0xe6, 0x36, 0xd9, 0xa2, 0x38, 0x6c, 0x52, 0x14, 0xd8, 0x61, 0x69, 0x41,
+ 0xbb, 0x9f, 0x4c, 0x2f, 0xd3, 0x75, 0xda, 0x49, 0xd3, 0x3f, 0xab, 0xec,
+ 0x2f, 0xac, 0xa9, 0x71, 0xd6, 0x52, 0x0b, 0xab, 0x48, 0x2e, 0x33, 0xf6,
+ 0xf2, 0x75, 0x2b, 0x2d, 0x05, 0x4f, 0x9c, 0x3b, 0xb1, 0xf5, 0x0d, 0x07,
+ 0x29, 0x78, 0xea, 0x2f,
+};
+static const struct drbg_kat_pr_true kat3975_t = {
+ 14, kat3975_entropyin, kat3975_nonce, kat3975_persstr,
+ kat3975_entropyinpr1, kat3975_addinpr1, kat3975_entropyinpr2,
+ kat3975_addinpr2, kat3975_retbits
+};
+static const struct drbg_kat kat3975 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat3975_t
+};
+
+static const unsigned char kat3976_entropyin[] = {
+ 0xb4, 0xba, 0x94, 0x5a, 0xf9, 0x45, 0x35, 0x89, 0x01, 0xfe, 0x68, 0xb6,
+ 0xe9, 0x98, 0x86, 0x06, 0x0b, 0x50, 0xf5, 0x30, 0xa2, 0x0d, 0x50, 0xb6,
+ 0x65, 0xf9, 0x04, 0xdd, 0x1f, 0xb8, 0x71, 0x27, 0x13, 0x5a, 0x2a, 0x4f,
+ 0xc9, 0xc6, 0x5e, 0xcc,
+};
+static const unsigned char kat3976_nonce[] = {0};
+static const unsigned char kat3976_persstr[] = {0};
+static const unsigned char kat3976_entropyinpr1[] = {
+ 0x70, 0x1e, 0x59, 0x6d, 0x0f, 0x11, 0x56, 0xfa, 0xb3, 0xf6, 0x19, 0x71,
+ 0x87, 0xa8, 0xe0, 0x3c, 0x9f, 0xcd, 0x6d, 0xfe, 0x7b, 0x14, 0x78, 0x5f,
+ 0x66, 0x33, 0xab, 0x7e, 0x42, 0x13, 0xfa, 0x65, 0xd5, 0x9d, 0xc3, 0x2d,
+ 0x8a, 0xd9, 0xf2, 0x93,
+};
+static const unsigned char kat3976_addinpr1[] = {
+ 0x06, 0x86, 0xe9, 0x79, 0x1f, 0x0c, 0x56, 0x79, 0x86, 0x30, 0x9d, 0xa5,
+ 0x4d, 0x9b, 0x17, 0x81, 0xed, 0xd2, 0x3a, 0x7f, 0x79, 0xd4, 0x34, 0xe2,
+ 0xbf, 0xb0, 0x2d, 0x5c, 0x3d, 0xef, 0x41, 0x21, 0xf2, 0x7b, 0x77, 0xc5,
+ 0x97, 0xbc, 0xeb, 0x55,
+};
+static const unsigned char kat3976_entropyinpr2[] = {
+ 0x72, 0x11, 0xc4, 0x84, 0x59, 0x6d, 0x20, 0x4d, 0xd2, 0x5c, 0x93, 0x80,
+ 0x8e, 0xec, 0xfc, 0x28, 0x26, 0xfd, 0x97, 0x6c, 0x44, 0x86, 0xea, 0x39,
+ 0x72, 0xfb, 0xea, 0x4e, 0x52, 0xbd, 0xc4, 0xed, 0x4a, 0x03, 0x0b, 0x9e,
+ 0x54, 0x04, 0x21, 0x99,
+};
+static const unsigned char kat3976_addinpr2[] = {
+ 0x7f, 0xf9, 0x53, 0x2f, 0x18, 0xea, 0xb4, 0x41, 0x8c, 0x17, 0xec, 0x08,
+ 0x0f, 0xe1, 0xfd, 0x79, 0xef, 0xe9, 0xd0, 0xaf, 0x5e, 0x33, 0x6b, 0x23,
+ 0xa6, 0xf4, 0xce, 0xac, 0xa7, 0xdf, 0x73, 0xc6, 0x85, 0x3b, 0x94, 0x44,
+ 0xa6, 0x15, 0x87, 0x06,
+};
+static const unsigned char kat3976_retbits[] = {
+ 0xd8, 0xf0, 0xfa, 0xdf, 0xca, 0x55, 0xce, 0xab, 0x82, 0x6b, 0x4e, 0xef,
+ 0xad, 0x45, 0x3b, 0x7b, 0x40, 0x5a, 0xc5, 0x6b, 0x66, 0x8f, 0xee, 0x2b,
+ 0x36, 0x59, 0xa2, 0x6c, 0x7e, 0x6c, 0x22, 0xba, 0x96, 0xb8, 0x0d, 0x45,
+ 0xc8, 0xbf, 0x0e, 0xec, 0xb3, 0x72, 0x23, 0xa8, 0xb0, 0x56, 0x32, 0xea,
+ 0xed, 0xba, 0x5e, 0x34, 0xcb, 0x53, 0x25, 0x96, 0x3f, 0xd5, 0xf7, 0x21,
+ 0xbb, 0x37, 0x2b, 0x2a,
+};
+static const struct drbg_kat_pr_true kat3976_t = {
+ 0, kat3976_entropyin, kat3976_nonce, kat3976_persstr,
+ kat3976_entropyinpr1, kat3976_addinpr1, kat3976_entropyinpr2,
+ kat3976_addinpr2, kat3976_retbits
+};
+static const struct drbg_kat kat3976 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3976_t
+};
+
+static const unsigned char kat3977_entropyin[] = {
+ 0x8b, 0xb9, 0x25, 0xd4, 0x76, 0xba, 0x2f, 0x6d, 0xc0, 0xc4, 0xd0, 0xa6,
+ 0x9e, 0xab, 0xbc, 0xfb, 0xcb, 0x42, 0xc5, 0xd0, 0x31, 0x02, 0x0e, 0x1f,
+ 0xac, 0x7d, 0x7e, 0x8e, 0x86, 0xf2, 0x83, 0x21, 0x18, 0x57, 0x5a, 0xd1,
+ 0x30, 0x31, 0x07, 0x70,
+};
+static const unsigned char kat3977_nonce[] = {0};
+static const unsigned char kat3977_persstr[] = {0};
+static const unsigned char kat3977_entropyinpr1[] = {
+ 0x92, 0xcc, 0x90, 0x2a, 0x73, 0x88, 0x4e, 0x17, 0x71, 0x6f, 0xf7, 0xd2,
+ 0x46, 0x7b, 0x9a, 0x0e, 0x19, 0x7c, 0xaf, 0x60, 0x93, 0x40, 0x68, 0x5e,
+ 0xbf, 0xbe, 0x94, 0x9b, 0x27, 0xf0, 0x8d, 0xcd, 0x6d, 0xf8, 0xf1, 0x7c,
+ 0x6f, 0xd2, 0xd8, 0x4d,
+};
+static const unsigned char kat3977_addinpr1[] = {
+ 0x58, 0xc5, 0x33, 0xa7, 0x52, 0xf3, 0xe6, 0x75, 0x34, 0xe9, 0x57, 0xd4,
+ 0x93, 0x94, 0x6d, 0x00, 0xfc, 0x82, 0x99, 0xe5, 0x64, 0x62, 0x2e, 0x7c,
+ 0x52, 0xfb, 0xdf, 0xdc, 0x58, 0x3e, 0xfb, 0x8f, 0x56, 0x44, 0x98, 0x53,
+ 0xbc, 0x49, 0x3d, 0x72,
+};
+static const unsigned char kat3977_entropyinpr2[] = {
+ 0xb5, 0x37, 0xb0, 0xaf, 0x5f, 0xbb, 0x8b, 0x20, 0x71, 0x71, 0x84, 0x35,
+ 0x34, 0xd0, 0x1c, 0x4c, 0x71, 0x2f, 0x4d, 0xef, 0x64, 0x8f, 0xad, 0x94,
+ 0xce, 0xf8, 0x8a, 0x5f, 0xcb, 0xdb, 0x7a, 0xe0, 0x57, 0x7e, 0x59, 0x8c,
+ 0x20, 0x5a, 0xc6, 0xa4,
+};
+static const unsigned char kat3977_addinpr2[] = {
+ 0xbf, 0x75, 0xf1, 0x16, 0x83, 0x90, 0xa2, 0x1e, 0x36, 0x2c, 0x06, 0xfc,
+ 0x74, 0xe9, 0x13, 0x3a, 0xda, 0xaa, 0xcc, 0x86, 0xe2, 0x62, 0xc7, 0xbf,
+ 0xdc, 0x71, 0x9d, 0x4a, 0x53, 0x6c, 0x95, 0xe4, 0x81, 0x01, 0x4f, 0x16,
+ 0xc8, 0xc4, 0xff, 0x21,
+};
+static const unsigned char kat3977_retbits[] = {
+ 0x1a, 0x97, 0x1d, 0xa8, 0x3e, 0xb2, 0x78, 0x08, 0x2a, 0xbf, 0xb5, 0x5e,
+ 0x03, 0xba, 0x39, 0x3c, 0x62, 0x3d, 0x14, 0xfa, 0x91, 0xd3, 0xf0, 0xf6,
+ 0x73, 0x86, 0x3c, 0x5d, 0xb9, 0x77, 0x68, 0xf8, 0x29, 0x8c, 0x7c, 0xaf,
+ 0xd0, 0xb3, 0xf5, 0xe9, 0xe9, 0xf5, 0x8d, 0x3e, 0x9e, 0x32, 0x96, 0x11,
+ 0x9f, 0x0b, 0xe5, 0x49, 0x7d, 0x25, 0xc8, 0x53, 0xe0, 0x24, 0xec, 0xc2,
+ 0x1a, 0x35, 0xc8, 0x4e,
+};
+static const struct drbg_kat_pr_true kat3977_t = {
+ 1, kat3977_entropyin, kat3977_nonce, kat3977_persstr,
+ kat3977_entropyinpr1, kat3977_addinpr1, kat3977_entropyinpr2,
+ kat3977_addinpr2, kat3977_retbits
+};
+static const struct drbg_kat kat3977 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3977_t
+};
+
+static const unsigned char kat3978_entropyin[] = {
+ 0x6f, 0xfc, 0xe5, 0x5b, 0x48, 0xeb, 0x23, 0xea, 0xdf, 0xcd, 0x8d, 0x21,
+ 0x4c, 0xe6, 0x3e, 0x02, 0xeb, 0x47, 0xe2, 0x63, 0x66, 0x16, 0x13, 0x74,
+ 0xaa, 0x86, 0x61, 0xb7, 0x8c, 0x72, 0xe6, 0xaf, 0xbb, 0x6f, 0x41, 0x25,
+ 0xbf, 0x32, 0xc7, 0xea,
+};
+static const unsigned char kat3978_nonce[] = {0};
+static const unsigned char kat3978_persstr[] = {0};
+static const unsigned char kat3978_entropyinpr1[] = {
+ 0x86, 0xfd, 0x25, 0xe0, 0xad, 0x7d, 0x02, 0x33, 0x5d, 0xc1, 0x45, 0x99,
+ 0x09, 0xc4, 0x98, 0x7c, 0xa1, 0xf5, 0xd9, 0x18, 0xcf, 0xfc, 0x8d, 0xcb,
+ 0x3e, 0x9a, 0xfc, 0x0e, 0xff, 0xbb, 0x6f, 0x8d, 0x79, 0xfe, 0x6f, 0x85,
+ 0x21, 0x04, 0xf7, 0x6e,
+};
+static const unsigned char kat3978_addinpr1[] = {
+ 0x45, 0xb6, 0x5a, 0xec, 0xfa, 0x29, 0xff, 0x6a, 0x71, 0xc1, 0xbd, 0x47,
+ 0xc7, 0xf7, 0xc4, 0x3b, 0x5a, 0x95, 0x9d, 0x0f, 0xaf, 0x1f, 0xb7, 0xd9,
+ 0xb2, 0x70, 0x28, 0xa9, 0x59, 0x50, 0x9c, 0x32, 0x94, 0xb1, 0x22, 0xa9,
+ 0xdf, 0xe0, 0x85, 0xb1,
+};
+static const unsigned char kat3978_entropyinpr2[] = {
+ 0xa4, 0xbe, 0x2f, 0xde, 0x59, 0x85, 0x94, 0xf9, 0x07, 0x77, 0xd6, 0x14,
+ 0xa8, 0x6e, 0x51, 0x48, 0x96, 0x27, 0xd9, 0xf9, 0x9b, 0x53, 0xea, 0x47,
+ 0xbf, 0xdf, 0xa3, 0xea, 0xe5, 0xc6, 0xf2, 0x88, 0x57, 0x90, 0x51, 0xdd,
+ 0x66, 0x2b, 0xa7, 0x6a,
+};
+static const unsigned char kat3978_addinpr2[] = {
+ 0x06, 0x40, 0x68, 0xfb, 0x0b, 0x50, 0x19, 0x89, 0x7d, 0x61, 0x44, 0x7a,
+ 0x33, 0x5b, 0x4c, 0xbc, 0x7d, 0xa0, 0xb4, 0x71, 0x6d, 0xec, 0x1a, 0x7e,
+ 0xaa, 0xa4, 0x0e, 0xf9, 0x0c, 0x5e, 0xc1, 0x3f, 0xe8, 0xfa, 0x5e, 0x8d,
+ 0x5d, 0xb6, 0xf5, 0xb6,
+};
+static const unsigned char kat3978_retbits[] = {
+ 0xee, 0x3c, 0x6a, 0x2c, 0xac, 0x78, 0x71, 0x64, 0x0e, 0xf9, 0xa1, 0xcc,
+ 0xd2, 0x72, 0xc7, 0x45, 0x47, 0xd4, 0xfb, 0xda, 0x01, 0x70, 0x2a, 0x92,
+ 0x0a, 0xc0, 0x0d, 0x61, 0xbc, 0x50, 0x0d, 0xf1, 0x7b, 0x74, 0xac, 0xb2,
+ 0xfc, 0xbc, 0xc4, 0x87, 0x87, 0x96, 0x2e, 0x8b, 0xb5, 0xcd, 0x3f, 0x12,
+ 0xb5, 0xdc, 0x24, 0x0a, 0x26, 0xe1, 0x5b, 0x35, 0x22, 0xac, 0x97, 0x4e,
+ 0x37, 0x1b, 0x78, 0xfc,
+};
+static const struct drbg_kat_pr_true kat3978_t = {
+ 2, kat3978_entropyin, kat3978_nonce, kat3978_persstr,
+ kat3978_entropyinpr1, kat3978_addinpr1, kat3978_entropyinpr2,
+ kat3978_addinpr2, kat3978_retbits
+};
+static const struct drbg_kat kat3978 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3978_t
+};
+
+static const unsigned char kat3979_entropyin[] = {
+ 0x78, 0x52, 0xff, 0x00, 0x44, 0x04, 0x7d, 0x6c, 0xff, 0x1d, 0x4a, 0xe9,
+ 0x25, 0x17, 0x20, 0x7d, 0x58, 0x6a, 0x79, 0xd1, 0x50, 0xea, 0xa5, 0x96,
+ 0x66, 0xd4, 0x9c, 0xd8, 0xdd, 0x18, 0xac, 0x9c, 0x37, 0x8c, 0x93, 0x6e,
+ 0x1f, 0xcc, 0x46, 0x25,
+};
+static const unsigned char kat3979_nonce[] = {0};
+static const unsigned char kat3979_persstr[] = {0};
+static const unsigned char kat3979_entropyinpr1[] = {
+ 0xd1, 0xc2, 0xc9, 0xcb, 0xbe, 0x7d, 0xac, 0xf7, 0xe9, 0x7a, 0xeb, 0x4b,
+ 0xbd, 0x25, 0x07, 0xac, 0x4a, 0xab, 0x0d, 0x35, 0x83, 0x8d, 0x71, 0xc0,
+ 0xd0, 0xa5, 0x74, 0xc1, 0x85, 0x67, 0x46, 0x8f, 0xa1, 0xd7, 0x0c, 0xa7,
+ 0x27, 0x80, 0xed, 0x5e,
+};
+static const unsigned char kat3979_addinpr1[] = {
+ 0x4e, 0xc1, 0xa4, 0xe1, 0xb6, 0xe2, 0xd1, 0x50, 0x87, 0xe9, 0x84, 0x15,
+ 0xcb, 0x2a, 0xe5, 0x27, 0xf9, 0x84, 0x57, 0x38, 0x12, 0xe3, 0x26, 0xcf,
+ 0xc1, 0xdd, 0xaa, 0x04, 0x32, 0x33, 0x58, 0x28, 0x5e, 0x78, 0xe2, 0x29,
+ 0x36, 0xac, 0xe4, 0x28,
+};
+static const unsigned char kat3979_entropyinpr2[] = {
+ 0x42, 0x9d, 0x39, 0x88, 0x6e, 0xa6, 0x5c, 0x18, 0x34, 0xbc, 0xe4, 0x98,
+ 0x9c, 0x3b, 0x99, 0x60, 0x76, 0x52, 0x8d, 0xd3, 0x3d, 0x6d, 0x4f, 0x6d,
+ 0xc2, 0x46, 0xef, 0x74, 0xc3, 0x8c, 0x10, 0x54, 0x8b, 0x70, 0x39, 0xd7,
+ 0xad, 0x05, 0x02, 0xd0,
+};
+static const unsigned char kat3979_addinpr2[] = {
+ 0x4a, 0xd6, 0x97, 0x11, 0x0f, 0x90, 0x41, 0x28, 0xc2, 0x82, 0x21, 0x5a,
+ 0x4e, 0xd7, 0xc8, 0x94, 0x32, 0xfc, 0xd4, 0x27, 0xa4, 0xed, 0xa8, 0x80,
+ 0xb8, 0xe1, 0x68, 0x99, 0xcf, 0xa7, 0x8f, 0xd8, 0x79, 0xda, 0x9f, 0x36,
+ 0x87, 0xdc, 0x4f, 0xaa,
+};
+static const unsigned char kat3979_retbits[] = {
+ 0xf4, 0xac, 0x0c, 0x09, 0x32, 0x8d, 0x99, 0x0b, 0xe0, 0xbb, 0x01, 0x20,
+ 0xe9, 0xc4, 0x98, 0x99, 0x96, 0x5e, 0x5c, 0xe8, 0xf0, 0xd9, 0xe6, 0x96,
+ 0x1f, 0xe2, 0x0c, 0x0b, 0xe5, 0xc8, 0x44, 0xd7, 0x27, 0x9f, 0x81, 0x16,
+ 0x84, 0x51, 0x47, 0x38, 0xca, 0xa3, 0x7e, 0x2b, 0xe6, 0x61, 0xe3, 0xcb,
+ 0xdd, 0x71, 0x6b, 0xcb, 0x45, 0xd1, 0xcc, 0xd9, 0x8a, 0xcb, 0x82, 0x71,
+ 0x37, 0xb9, 0xc3, 0x91,
+};
+static const struct drbg_kat_pr_true kat3979_t = {
+ 3, kat3979_entropyin, kat3979_nonce, kat3979_persstr,
+ kat3979_entropyinpr1, kat3979_addinpr1, kat3979_entropyinpr2,
+ kat3979_addinpr2, kat3979_retbits
+};
+static const struct drbg_kat kat3979 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3979_t
+};
+
+static const unsigned char kat3980_entropyin[] = {
+ 0x5e, 0xdc, 0x9a, 0xa9, 0x9a, 0x5e, 0xce, 0xbf, 0x99, 0x29, 0x48, 0x5c,
+ 0x00, 0xfe, 0xf8, 0xe6, 0xd6, 0xb1, 0x6d, 0x3e, 0x6e, 0x9b, 0x55, 0x4d,
+ 0xc6, 0x99, 0x95, 0x22, 0xcc, 0xcd, 0x3f, 0xf1, 0x0f, 0x00, 0x63, 0x3c,
+ 0xe4, 0x22, 0x34, 0x50,
+};
+static const unsigned char kat3980_nonce[] = {0};
+static const unsigned char kat3980_persstr[] = {0};
+static const unsigned char kat3980_entropyinpr1[] = {
+ 0xab, 0xda, 0x15, 0x8d, 0xb1, 0xc0, 0xce, 0xc5, 0x69, 0x89, 0x87, 0x50,
+ 0x0d, 0xcd, 0x47, 0xa8, 0xa6, 0x3c, 0xca, 0x78, 0xe2, 0xdc, 0x3b, 0x98,
+ 0x1a, 0x8e, 0x02, 0x58, 0x34, 0xa9, 0xf6, 0x8c, 0x6d, 0x26, 0x57, 0x37,
+ 0xf8, 0x2b, 0x31, 0xbd,
+};
+static const unsigned char kat3980_addinpr1[] = {
+ 0x9e, 0xda, 0x84, 0x1f, 0xaa, 0xde, 0xfd, 0x4c, 0x6d, 0xfd, 0xc3, 0xed,
+ 0x35, 0x6b, 0x8a, 0x62, 0x38, 0xdf, 0x6a, 0xea, 0xec, 0x62, 0x03, 0xa3,
+ 0x7a, 0xe1, 0xd3, 0xc7, 0xe2, 0x16, 0xbd, 0x7c, 0x75, 0xdb, 0xf6, 0x22,
+ 0xe2, 0xab, 0xac, 0x5d,
+};
+static const unsigned char kat3980_entropyinpr2[] = {
+ 0x69, 0xc0, 0x1c, 0x34, 0x73, 0xaf, 0xc6, 0xd7, 0x65, 0x30, 0x7d, 0x3b,
+ 0xa1, 0x34, 0x89, 0x34, 0x24, 0xaa, 0x1b, 0xb4, 0x23, 0xed, 0x54, 0x69,
+ 0x32, 0xbc, 0xe0, 0xc2, 0x55, 0xaa, 0x86, 0x32, 0x65, 0x76, 0x80, 0xfc,
+ 0x79, 0x26, 0xa8, 0x6a,
+};
+static const unsigned char kat3980_addinpr2[] = {
+ 0x24, 0x32, 0x10, 0x97, 0x61, 0x3a, 0x7d, 0x1d, 0x88, 0x77, 0xd3, 0x42,
+ 0xd3, 0xde, 0xb5, 0xeb, 0x07, 0x9c, 0x52, 0xc9, 0x3b, 0xe4, 0xe7, 0xeb,
+ 0xec, 0x54, 0xfd, 0xcc, 0xad, 0xe4, 0x3c, 0xb1, 0x63, 0x17, 0xc4, 0xca,
+ 0xbc, 0xda, 0x25, 0x9b,
+};
+static const unsigned char kat3980_retbits[] = {
+ 0x8d, 0x9f, 0x12, 0x07, 0x3d, 0x52, 0x39, 0x61, 0x6c, 0x1d, 0x0e, 0x75,
+ 0x5d, 0x28, 0x75, 0x1a, 0x1e, 0xdf, 0x71, 0x2e, 0x57, 0x36, 0x39, 0x4a,
+ 0xc0, 0xd5, 0x2f, 0xe2, 0xbb, 0xce, 0x3c, 0x5d, 0x83, 0x8e, 0xfa, 0xdd,
+ 0x1f, 0x13, 0xbb, 0xf8, 0x04, 0x0b, 0x57, 0x00, 0xc9, 0x6a, 0x1e, 0x33,
+ 0x8a, 0xb5, 0x0f, 0x8d, 0xa2, 0xa2, 0xcd, 0x32, 0x2a, 0x69, 0x77, 0xce,
+ 0x76, 0x80, 0xe7, 0xf3,
+};
+static const struct drbg_kat_pr_true kat3980_t = {
+ 4, kat3980_entropyin, kat3980_nonce, kat3980_persstr,
+ kat3980_entropyinpr1, kat3980_addinpr1, kat3980_entropyinpr2,
+ kat3980_addinpr2, kat3980_retbits
+};
+static const struct drbg_kat kat3980 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3980_t
+};
+
+static const unsigned char kat3981_entropyin[] = {
+ 0xba, 0x91, 0x32, 0x92, 0x24, 0xa6, 0x6f, 0x84, 0x35, 0x41, 0xc7, 0xef,
+ 0xd1, 0x72, 0x90, 0xe1, 0x4d, 0x12, 0x33, 0xa7, 0x59, 0x54, 0x57, 0x0e,
+ 0x75, 0xe4, 0xdf, 0x89, 0x8b, 0xa8, 0x0f, 0x25, 0xf7, 0x55, 0x64, 0xdd,
+ 0x41, 0x70, 0xda, 0x82,
+};
+static const unsigned char kat3981_nonce[] = {0};
+static const unsigned char kat3981_persstr[] = {0};
+static const unsigned char kat3981_entropyinpr1[] = {
+ 0xae, 0x54, 0xf5, 0x94, 0x98, 0x1b, 0x2f, 0x2f, 0x24, 0xfe, 0x2a, 0x6f,
+ 0xfa, 0x51, 0x33, 0x59, 0xa8, 0xcb, 0x71, 0x88, 0xeb, 0x0d, 0x48, 0x06,
+ 0xa1, 0x8b, 0x5d, 0x1a, 0x86, 0x22, 0xed, 0x85, 0xfe, 0x00, 0x37, 0x85,
+ 0xd4, 0x92, 0x5b, 0x82,
+};
+static const unsigned char kat3981_addinpr1[] = {
+ 0xb3, 0xa7, 0x64, 0x03, 0x27, 0xa7, 0xf8, 0x32, 0xf1, 0x7c, 0xbe, 0x94,
+ 0x4f, 0x6f, 0xd9, 0x00, 0xd9, 0xaf, 0xe4, 0x63, 0x2c, 0xb5, 0x7f, 0x67,
+ 0x8d, 0x32, 0x6d, 0x76, 0x9d, 0x56, 0xf6, 0x3c, 0x95, 0x41, 0x40, 0xaa,
+ 0x37, 0xbe, 0x13, 0xdf,
+};
+static const unsigned char kat3981_entropyinpr2[] = {
+ 0x94, 0xec, 0x04, 0xf9, 0x47, 0xba, 0x59, 0xe2, 0x8e, 0x70, 0x13, 0xa1,
+ 0xc5, 0x98, 0x07, 0xf7, 0x7b, 0xfa, 0xfb, 0xaa, 0x29, 0xb7, 0x5c, 0x88,
+ 0x8a, 0x69, 0xd8, 0x3e, 0xea, 0xa4, 0x9a, 0x0d, 0xe3, 0x81, 0x8a, 0x39,
+ 0x62, 0x5a, 0x8f, 0x0e,
+};
+static const unsigned char kat3981_addinpr2[] = {
+ 0x13, 0xe3, 0xeb, 0xc2, 0x87, 0x67, 0x47, 0x76, 0x08, 0x11, 0xc0, 0x4d,
+ 0xce, 0x24, 0xf2, 0xd2, 0xd9, 0x56, 0x1d, 0x25, 0x95, 0xd6, 0xb6, 0x78,
+ 0xeb, 0xc6, 0x6f, 0xf0, 0x18, 0x92, 0x0a, 0x59, 0xac, 0xfa, 0x30, 0x6f,
+ 0x22, 0xa6, 0x96, 0x2d,
+};
+static const unsigned char kat3981_retbits[] = {
+ 0x5b, 0x09, 0x6c, 0xeb, 0x7b, 0x49, 0x67, 0x5f, 0x88, 0x49, 0x6e, 0x0e,
+ 0x12, 0x18, 0x17, 0x19, 0x25, 0x09, 0x55, 0x71, 0xb9, 0xde, 0x2c, 0xec,
+ 0xc1, 0x82, 0xf3, 0x47, 0x5b, 0x87, 0x54, 0x83, 0x1e, 0xda, 0x62, 0x5c,
+ 0x93, 0x2f, 0x85, 0x82, 0xfd, 0x54, 0xa6, 0x34, 0x88, 0x6f, 0x48, 0x07,
+ 0xba, 0x0b, 0xcf, 0x46, 0x72, 0xfa, 0xdd, 0x7b, 0xd7, 0x80, 0x2c, 0xe3,
+ 0x00, 0x86, 0x21, 0xe4,
+};
+static const struct drbg_kat_pr_true kat3981_t = {
+ 5, kat3981_entropyin, kat3981_nonce, kat3981_persstr,
+ kat3981_entropyinpr1, kat3981_addinpr1, kat3981_entropyinpr2,
+ kat3981_addinpr2, kat3981_retbits
+};
+static const struct drbg_kat kat3981 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3981_t
+};
+
+static const unsigned char kat3982_entropyin[] = {
+ 0xc9, 0x5b, 0xad, 0x13, 0xc3, 0x1c, 0x9a, 0x5a, 0x7f, 0x3b, 0x16, 0xad,
+ 0x3e, 0xc6, 0x1a, 0xea, 0x40, 0x0b, 0xf2, 0xa2, 0x2b, 0x77, 0xf6, 0x80,
+ 0x0a, 0x60, 0x32, 0x47, 0x4d, 0xbe, 0xa2, 0x69, 0xc6, 0xd0, 0xfb, 0x5e,
+ 0xf7, 0x5e, 0xe7, 0xcd,
+};
+static const unsigned char kat3982_nonce[] = {0};
+static const unsigned char kat3982_persstr[] = {0};
+static const unsigned char kat3982_entropyinpr1[] = {
+ 0x0e, 0x05, 0xf1, 0x50, 0x09, 0xeb, 0xad, 0xb2, 0x3d, 0x24, 0xf4, 0x03,
+ 0x73, 0x0f, 0x92, 0xd2, 0xd7, 0x2b, 0xd9, 0x9f, 0x30, 0xa3, 0x42, 0x67,
+ 0x4c, 0x60, 0x1e, 0xcd, 0x59, 0x5c, 0x50, 0x4a, 0x46, 0xe8, 0xa2, 0x73,
+ 0xad, 0xa1, 0xa7, 0x33,
+};
+static const unsigned char kat3982_addinpr1[] = {
+ 0x02, 0xe7, 0x0f, 0x92, 0xd3, 0x5b, 0x0e, 0x41, 0x82, 0xf7, 0x13, 0xa4,
+ 0xcb, 0xe0, 0xe1, 0xb4, 0x19, 0x22, 0x53, 0x85, 0x3f, 0x74, 0x49, 0x48,
+ 0x03, 0xbd, 0x64, 0xad, 0xc0, 0xb5, 0x83, 0x32, 0x8a, 0xb9, 0xac, 0x86,
+ 0xf1, 0x70, 0x72, 0x34,
+};
+static const unsigned char kat3982_entropyinpr2[] = {
+ 0xac, 0x20, 0xd0, 0x48, 0x96, 0x0f, 0x90, 0x1c, 0x4a, 0x1d, 0xe7, 0x92,
+ 0x5d, 0xd7, 0x20, 0xfb, 0x00, 0xef, 0xe6, 0xac, 0x66, 0xfd, 0x7d, 0x99,
+ 0xfa, 0x68, 0xda, 0xcd, 0x35, 0x15, 0x18, 0x49, 0x13, 0xcc, 0xe8, 0x7b,
+ 0x48, 0x46, 0x8b, 0x22,
+};
+static const unsigned char kat3982_addinpr2[] = {
+ 0x68, 0x4c, 0xf1, 0x30, 0x4c, 0x30, 0x5f, 0xcf, 0xd4, 0x30, 0xff, 0x89,
+ 0xc7, 0x7a, 0x15, 0xbd, 0xa0, 0xbd, 0xaa, 0x73, 0x06, 0xc4, 0x49, 0x17,
+ 0x4e, 0x39, 0xb1, 0xa2, 0xd7, 0x3e, 0x4b, 0x3f, 0xc3, 0x49, 0xdf, 0x54,
+ 0xa0, 0xba, 0xf4, 0x9f,
+};
+static const unsigned char kat3982_retbits[] = {
+ 0xad, 0x58, 0x8b, 0xdf, 0x9d, 0x14, 0x5f, 0x8c, 0x0f, 0x87, 0xd8, 0x49,
+ 0x05, 0x75, 0x41, 0x4f, 0x23, 0xe1, 0xe9, 0x22, 0x40, 0x58, 0x58, 0xd2,
+ 0x08, 0x36, 0x7a, 0x55, 0x37, 0x24, 0x91, 0x22, 0xdb, 0xd7, 0xb3, 0xe1,
+ 0xb6, 0x94, 0xeb, 0x7f, 0x9a, 0x93, 0x4d, 0x18, 0x48, 0x5e, 0x89, 0x61,
+ 0xa0, 0xaf, 0xce, 0x5f, 0xe9, 0xf3, 0xce, 0x9f, 0x6e, 0x9c, 0x90, 0x14,
+ 0x06, 0x3e, 0x64, 0x31,
+};
+static const struct drbg_kat_pr_true kat3982_t = {
+ 6, kat3982_entropyin, kat3982_nonce, kat3982_persstr,
+ kat3982_entropyinpr1, kat3982_addinpr1, kat3982_entropyinpr2,
+ kat3982_addinpr2, kat3982_retbits
+};
+static const struct drbg_kat kat3982 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3982_t
+};
+
+static const unsigned char kat3983_entropyin[] = {
+ 0x0c, 0x43, 0x25, 0x7c, 0x21, 0x51, 0x25, 0x3d, 0xd7, 0xff, 0xcc, 0x28,
+ 0xd9, 0xc9, 0xcf, 0x5c, 0x99, 0x1c, 0xc3, 0x80, 0x57, 0x6a, 0x7f, 0x6f,
+ 0xc3, 0xe9, 0xf6, 0x2c, 0xfe, 0xb0, 0x7e, 0x8f, 0x0c, 0xf8, 0x7c, 0xf1,
+ 0x8a, 0x48, 0x08, 0xd2,
+};
+static const unsigned char kat3983_nonce[] = {0};
+static const unsigned char kat3983_persstr[] = {0};
+static const unsigned char kat3983_entropyinpr1[] = {
+ 0xd3, 0x9d, 0xb8, 0xa3, 0x75, 0x2b, 0xb9, 0x0c, 0xeb, 0x8c, 0x8c, 0x92,
+ 0x0a, 0x30, 0xbc, 0x01, 0x59, 0x71, 0x8d, 0x1f, 0x6b, 0x63, 0x16, 0x65,
+ 0x25, 0x8e, 0xc4, 0xc8, 0x84, 0x6e, 0x56, 0x3b, 0xa2, 0x43, 0x9c, 0x63,
+ 0xd0, 0xbd, 0x15, 0xa8,
+};
+static const unsigned char kat3983_addinpr1[] = {
+ 0x2f, 0xd5, 0xea, 0xb4, 0x53, 0x47, 0x07, 0x06, 0xaa, 0x09, 0xc5, 0x73,
+ 0x8a, 0x61, 0x00, 0x66, 0xb6, 0x9c, 0x69, 0xca, 0xe0, 0x0a, 0x13, 0xb3,
+ 0x98, 0x51, 0xc2, 0xf1, 0x17, 0xd2, 0xa7, 0xc4, 0x61, 0x59, 0xa2, 0x6a,
+ 0x3d, 0x4b, 0xcb, 0x23,
+};
+static const unsigned char kat3983_entropyinpr2[] = {
+ 0x17, 0x59, 0x78, 0x6a, 0xac, 0xda, 0x03, 0x62, 0xa2, 0xf8, 0xe3, 0x86,
+ 0x2e, 0xf3, 0x22, 0x2f, 0x14, 0xde, 0x59, 0x5f, 0x5b, 0x36, 0xcc, 0x94,
+ 0x3a, 0x16, 0x6b, 0x0d, 0xbd, 0x47, 0xff, 0x67, 0x1e, 0xa3, 0xd1, 0x0b,
+ 0x8d, 0x4f, 0xc1, 0x9b,
+};
+static const unsigned char kat3983_addinpr2[] = {
+ 0x15, 0xd1, 0x6f, 0xae, 0xe2, 0x3b, 0x91, 0x6d, 0xa6, 0xca, 0x80, 0x7a,
+ 0xcf, 0xf9, 0x46, 0x3c, 0x42, 0xed, 0x5a, 0x82, 0x34, 0x7c, 0xcf, 0xde,
+ 0xa0, 0x85, 0x04, 0xd9, 0xcc, 0x90, 0xcb, 0x59, 0x8d, 0x32, 0xe5, 0x7e,
+ 0xcc, 0xab, 0x1e, 0xef,
+};
+static const unsigned char kat3983_retbits[] = {
+ 0x2f, 0x45, 0x83, 0x92, 0x3a, 0x8c, 0x21, 0x87, 0x2c, 0xf4, 0x27, 0x87,
+ 0x9f, 0x29, 0x49, 0x85, 0x2f, 0x49, 0x33, 0x60, 0x04, 0xd9, 0x11, 0xa4,
+ 0x70, 0x96, 0xcb, 0x5f, 0xdb, 0xaa, 0x7a, 0x62, 0x09, 0x67, 0x55, 0x92,
+ 0x8e, 0xdb, 0xf9, 0x77, 0x76, 0x7b, 0xc3, 0x26, 0x10, 0x3b, 0x40, 0x9e,
+ 0xda, 0x3b, 0xba, 0xfc, 0x92, 0xf7, 0x6b, 0xa0, 0x80, 0x34, 0x07, 0xc2,
+ 0x95, 0x3d, 0x2f, 0x22,
+};
+static const struct drbg_kat_pr_true kat3983_t = {
+ 7, kat3983_entropyin, kat3983_nonce, kat3983_persstr,
+ kat3983_entropyinpr1, kat3983_addinpr1, kat3983_entropyinpr2,
+ kat3983_addinpr2, kat3983_retbits
+};
+static const struct drbg_kat kat3983 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3983_t
+};
+
+static const unsigned char kat3984_entropyin[] = {
+ 0x23, 0x3c, 0x68, 0xa3, 0xd9, 0x57, 0x62, 0x41, 0xa1, 0x2c, 0xac, 0x09,
+ 0x63, 0x0c, 0x04, 0x3d, 0xbb, 0x17, 0x6d, 0x72, 0x65, 0x64, 0xa7, 0x2c,
+ 0x79, 0x61, 0x38, 0x2a, 0x3d, 0xbb, 0xd9, 0x31, 0xac, 0x3d, 0xf2, 0xcb,
+ 0xb2, 0x31, 0x88, 0xe3,
+};
+static const unsigned char kat3984_nonce[] = {0};
+static const unsigned char kat3984_persstr[] = {0};
+static const unsigned char kat3984_entropyinpr1[] = {
+ 0xd3, 0x01, 0x7a, 0xc9, 0x01, 0x6a, 0x2c, 0xb3, 0x6f, 0xef, 0x1a, 0x9d,
+ 0x45, 0x74, 0x58, 0xd4, 0xa3, 0xdf, 0xb8, 0x6c, 0x08, 0x2b, 0x97, 0xc5,
+ 0x35, 0x7a, 0xbe, 0x44, 0x6d, 0x7c, 0x76, 0xe4, 0x93, 0x2f, 0x78, 0x01,
+ 0xfa, 0x48, 0x9b, 0x96,
+};
+static const unsigned char kat3984_addinpr1[] = {
+ 0x99, 0xb5, 0x62, 0x33, 0x66, 0xba, 0xc4, 0x6d, 0x04, 0x4f, 0xc3, 0xfd,
+ 0x03, 0x66, 0x4a, 0xca, 0x96, 0x3a, 0xb7, 0x44, 0x34, 0x9c, 0x67, 0xe6,
+ 0xae, 0x2a, 0x10, 0x38, 0xc2, 0x01, 0xb6, 0x97, 0x64, 0xd8, 0x3b, 0x0c,
+ 0xd8, 0xaf, 0x8b, 0x60,
+};
+static const unsigned char kat3984_entropyinpr2[] = {
+ 0x94, 0x25, 0x7d, 0x5e, 0xfb, 0x4c, 0x4e, 0x25, 0xf6, 0xce, 0x4e, 0x35,
+ 0x92, 0x87, 0xf7, 0xd2, 0xf5, 0x5b, 0x8e, 0x34, 0x7d, 0x89, 0x86, 0x0d,
+ 0x35, 0x05, 0xb0, 0x1a, 0x16, 0x99, 0x4f, 0x38, 0xec, 0x14, 0x42, 0xff,
+ 0xfd, 0x84, 0xa6, 0x27,
+};
+static const unsigned char kat3984_addinpr2[] = {
+ 0x18, 0x66, 0x19, 0x68, 0x7c, 0x98, 0xf3, 0x97, 0x6b, 0x21, 0x8e, 0x73,
+ 0xa2, 0xd5, 0x9f, 0x4f, 0x46, 0x90, 0xcc, 0x3c, 0x4f, 0xfb, 0xa8, 0x5b,
+ 0x45, 0x76, 0xcc, 0xff, 0x7c, 0x89, 0xe3, 0x84, 0x98, 0x78, 0x22, 0x00,
+ 0xf7, 0x85, 0xb9, 0x8a,
+};
+static const unsigned char kat3984_retbits[] = {
+ 0x43, 0xfe, 0x07, 0x96, 0x95, 0x19, 0x71, 0x80, 0x09, 0x01, 0xce, 0x7f,
+ 0x84, 0xbf, 0x37, 0x78, 0x95, 0x74, 0x55, 0xd0, 0x09, 0x47, 0xb2, 0xf2,
+ 0xa4, 0xaf, 0xc3, 0xeb, 0x27, 0x04, 0xd2, 0x2b, 0xb1, 0x1f, 0x9a, 0x47,
+ 0xe2, 0xb9, 0x2c, 0xb6, 0x82, 0xc2, 0x40, 0x8e, 0xf0, 0x84, 0xf0, 0x59,
+ 0x26, 0xbc, 0x35, 0xbd, 0x8a, 0x37, 0xbf, 0x86, 0xc3, 0x1d, 0xfe, 0x79,
+ 0x85, 0xd2, 0x41, 0x61,
+};
+static const struct drbg_kat_pr_true kat3984_t = {
+ 8, kat3984_entropyin, kat3984_nonce, kat3984_persstr,
+ kat3984_entropyinpr1, kat3984_addinpr1, kat3984_entropyinpr2,
+ kat3984_addinpr2, kat3984_retbits
+};
+static const struct drbg_kat kat3984 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3984_t
+};
+
+static const unsigned char kat3985_entropyin[] = {
+ 0xcb, 0xa0, 0x9b, 0xe3, 0xe9, 0x2f, 0xe7, 0x16, 0x05, 0x15, 0xed, 0x62,
+ 0xe3, 0xaa, 0xb1, 0x8b, 0x82, 0x22, 0xfb, 0x4f, 0x17, 0x0c, 0xc3, 0x35,
+ 0xfb, 0xc6, 0x67, 0x69, 0xcd, 0x3b, 0x46, 0xe2, 0x31, 0x7c, 0xcd, 0x1b,
+ 0x84, 0xd8, 0x1b, 0x14,
+};
+static const unsigned char kat3985_nonce[] = {0};
+static const unsigned char kat3985_persstr[] = {0};
+static const unsigned char kat3985_entropyinpr1[] = {
+ 0x2c, 0x42, 0x59, 0x12, 0x44, 0x1b, 0xf8, 0x16, 0xba, 0x45, 0xf8, 0x0e,
+ 0x95, 0x5e, 0x92, 0x9f, 0x5e, 0xb7, 0x9a, 0x0b, 0x64, 0x51, 0xba, 0x16,
+ 0xba, 0xa2, 0x92, 0x1b, 0xec, 0xa2, 0x79, 0x8a, 0x63, 0x8b, 0x5a, 0x9a,
+ 0xd6, 0xe8, 0x79, 0x7c,
+};
+static const unsigned char kat3985_addinpr1[] = {
+ 0xa5, 0x10, 0x67, 0xa0, 0x61, 0xb0, 0xcd, 0x18, 0x52, 0xec, 0xd7, 0x82,
+ 0xa2, 0xf6, 0x27, 0x6e, 0xd8, 0x83, 0x2a, 0xcd, 0xcf, 0xd7, 0xc2, 0xd6,
+ 0x59, 0x80, 0x6b, 0xa6, 0x10, 0x0c, 0xd5, 0xe0, 0xe0, 0x10, 0xc1, 0x3e,
+ 0xf0, 0x90, 0x6d, 0xd6,
+};
+static const unsigned char kat3985_entropyinpr2[] = {
+ 0x82, 0x14, 0xac, 0xe3, 0xb2, 0x76, 0xef, 0xa0, 0x83, 0x5d, 0x54, 0xea,
+ 0x1e, 0xad, 0xb5, 0xb8, 0xa1, 0x3a, 0xca, 0x4d, 0x07, 0x51, 0x86, 0xbc,
+ 0x58, 0x3a, 0x06, 0xf2, 0x04, 0x0f, 0x88, 0x69, 0x36, 0x5f, 0x58, 0x7d,
+ 0x65, 0x0a, 0x9e, 0xb2,
+};
+static const unsigned char kat3985_addinpr2[] = {
+ 0x6b, 0x35, 0x26, 0xf0, 0x9f, 0xfc, 0x34, 0x2d, 0x75, 0xd6, 0x48, 0xd5,
+ 0x1d, 0x2e, 0x3a, 0x6e, 0x7a, 0xa9, 0x4f, 0x17, 0x77, 0x54, 0x49, 0xd2,
+ 0xea, 0xc0, 0x5a, 0xad, 0xd6, 0x9b, 0x03, 0x15, 0xe8, 0x00, 0xa0, 0x2c,
+ 0xda, 0xa7, 0x3d, 0xd4,
+};
+static const unsigned char kat3985_retbits[] = {
+ 0x26, 0x7f, 0xe6, 0x01, 0x07, 0x03, 0xd2, 0x41, 0x90, 0xc2, 0x3d, 0x0a,
+ 0x93, 0xf5, 0xa3, 0xa7, 0x30, 0xf0, 0x33, 0x6d, 0x24, 0x3a, 0x7b, 0x24,
+ 0x96, 0xf6, 0x0d, 0x53, 0xdd, 0xf1, 0x39, 0x0d, 0x87, 0x06, 0x1e, 0xd8,
+ 0x99, 0x4e, 0xea, 0xce, 0xa4, 0xea, 0xe8, 0x2c, 0x6f, 0x06, 0x9d, 0xea,
+ 0xef, 0xa9, 0x6c, 0x9e, 0x68, 0xb9, 0x7f, 0x21, 0x83, 0x44, 0xd2, 0x93,
+ 0x02, 0x49, 0x17, 0xe5,
+};
+static const struct drbg_kat_pr_true kat3985_t = {
+ 9, kat3985_entropyin, kat3985_nonce, kat3985_persstr,
+ kat3985_entropyinpr1, kat3985_addinpr1, kat3985_entropyinpr2,
+ kat3985_addinpr2, kat3985_retbits
+};
+static const struct drbg_kat kat3985 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3985_t
+};
+
+static const unsigned char kat3986_entropyin[] = {
+ 0xd5, 0xe1, 0x5a, 0xf1, 0x96, 0x19, 0x03, 0x2b, 0x04, 0x71, 0xf3, 0xd5,
+ 0x6e, 0x12, 0xd6, 0xb4, 0x1e, 0xb1, 0x57, 0x60, 0xf1, 0x83, 0x99, 0x1f,
+ 0x10, 0xe4, 0x53, 0xa7, 0xe6, 0x7c, 0xe2, 0x93, 0xb8, 0x14, 0x70, 0xac,
+ 0x85, 0xa5, 0x41, 0xeb,
+};
+static const unsigned char kat3986_nonce[] = {0};
+static const unsigned char kat3986_persstr[] = {0};
+static const unsigned char kat3986_entropyinpr1[] = {
+ 0x9e, 0xc6, 0x95, 0xb0, 0xcb, 0xf7, 0x02, 0x00, 0x54, 0x73, 0xd3, 0x6d,
+ 0x8b, 0xd7, 0x10, 0x15, 0x5a, 0x23, 0x07, 0x38, 0x2d, 0x42, 0xc1, 0xb4,
+ 0xd0, 0xad, 0xf7, 0x28, 0x80, 0x13, 0x44, 0x77, 0x9a, 0x15, 0x0f, 0xc1,
+ 0x37, 0xaa, 0x49, 0x95,
+};
+static const unsigned char kat3986_addinpr1[] = {
+ 0x00, 0x5c, 0x8d, 0xfa, 0x6a, 0xdf, 0x43, 0x7f, 0x17, 0xb8, 0xee, 0xe1,
+ 0x60, 0x82, 0x8a, 0x72, 0x7c, 0xab, 0x22, 0x9d, 0x54, 0x02, 0x9b, 0x25,
+ 0x01, 0x18, 0x31, 0x31, 0x43, 0xda, 0x2b, 0xb0, 0x68, 0x97, 0xd3, 0xea,
+ 0x55, 0xa4, 0xdd, 0x64,
+};
+static const unsigned char kat3986_entropyinpr2[] = {
+ 0xc5, 0xe1, 0x47, 0xf0, 0x7a, 0xc5, 0x00, 0xfd, 0x5f, 0x4d, 0x18, 0x54,
+ 0x09, 0x5c, 0x63, 0x94, 0x1a, 0x25, 0x88, 0x73, 0x7d, 0x21, 0x51, 0xa4,
+ 0x01, 0x3f, 0x58, 0xb0, 0xe5, 0xc8, 0x97, 0xa5, 0x6e, 0x19, 0xc3, 0x34,
+ 0x43, 0x34, 0xd9, 0x9d,
+};
+static const unsigned char kat3986_addinpr2[] = {
+ 0x56, 0x5a, 0xe7, 0x88, 0xd6, 0xe5, 0x4e, 0x9e, 0x01, 0x54, 0x19, 0x27,
+ 0x29, 0x18, 0x8d, 0x05, 0x95, 0xd4, 0x2b, 0x2d, 0xab, 0x57, 0xcb, 0xaf,
+ 0xaa, 0xcc, 0x85, 0xbc, 0xdd, 0x1b, 0xef, 0xfa, 0x81, 0xfa, 0x5e, 0xa0,
+ 0x72, 0xb3, 0x7c, 0xae,
+};
+static const unsigned char kat3986_retbits[] = {
+ 0xf6, 0xce, 0xb9, 0xfd, 0x67, 0xe7, 0x15, 0x1e, 0xb2, 0xc9, 0xe6, 0xac,
+ 0x40, 0xa5, 0x35, 0x3a, 0x5a, 0x96, 0xb8, 0x67, 0x52, 0x9c, 0xdc, 0x29,
+ 0xee, 0x93, 0x88, 0x9c, 0x88, 0x3d, 0xbf, 0x06, 0xfb, 0xba, 0x85, 0x6e,
+ 0x6c, 0x35, 0x75, 0x32, 0x3f, 0xdb, 0x94, 0xba, 0x30, 0x23, 0x12, 0xea,
+ 0x4a, 0x77, 0x58, 0xd1, 0x87, 0xb9, 0xe6, 0xa1, 0xe1, 0x92, 0x7e, 0x12,
+ 0x91, 0x10, 0x57, 0x46,
+};
+static const struct drbg_kat_pr_true kat3986_t = {
+ 10, kat3986_entropyin, kat3986_nonce, kat3986_persstr,
+ kat3986_entropyinpr1, kat3986_addinpr1, kat3986_entropyinpr2,
+ kat3986_addinpr2, kat3986_retbits
+};
+static const struct drbg_kat kat3986 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3986_t
+};
+
+static const unsigned char kat3987_entropyin[] = {
+ 0x51, 0xa3, 0x95, 0xf4, 0xb8, 0x1b, 0x53, 0x20, 0xcc, 0x66, 0x1c, 0xa5,
+ 0xd7, 0xd2, 0x28, 0x50, 0x90, 0xdd, 0x80, 0x7c, 0xa5, 0x1b, 0xd0, 0x2f,
+ 0x20, 0x8e, 0xe0, 0x97, 0x2d, 0xdf, 0x74, 0x68, 0xd0, 0x10, 0xf8, 0x11,
+ 0x66, 0x59, 0xe4, 0x29,
+};
+static const unsigned char kat3987_nonce[] = {0};
+static const unsigned char kat3987_persstr[] = {0};
+static const unsigned char kat3987_entropyinpr1[] = {
+ 0x7b, 0x03, 0xf9, 0x8c, 0x25, 0xd2, 0x9e, 0xc0, 0xad, 0x0f, 0xcd, 0xfa,
+ 0x9c, 0x39, 0xe7, 0x94, 0x0a, 0xf1, 0x10, 0xe7, 0xe7, 0xdf, 0x08, 0xa9,
+ 0xed, 0xd6, 0xc3, 0xe8, 0x19, 0x70, 0x6e, 0xf6, 0x01, 0x21, 0x23, 0x5e,
+ 0xc2, 0xf3, 0xf0, 0x1f,
+};
+static const unsigned char kat3987_addinpr1[] = {
+ 0x92, 0x7e, 0xf9, 0x5f, 0x33, 0x41, 0x33, 0xd7, 0xde, 0xcd, 0x04, 0xb9,
+ 0x94, 0xc6, 0x8a, 0x89, 0x0d, 0x1e, 0x60, 0xa8, 0x5a, 0xa5, 0x4f, 0xb3,
+ 0x11, 0xea, 0xd2, 0xe8, 0xc7, 0x5f, 0xd0, 0xee, 0x1c, 0x04, 0xbb, 0xbe,
+ 0x5d, 0x0c, 0x8a, 0x4f,
+};
+static const unsigned char kat3987_entropyinpr2[] = {
+ 0x68, 0x4f, 0xf8, 0xfe, 0xf4, 0xb6, 0x13, 0x72, 0x68, 0xdf, 0xdf, 0x32,
+ 0xb5, 0xf9, 0xa3, 0x15, 0x00, 0x68, 0x93, 0x5c, 0x34, 0x11, 0xab, 0x43,
+ 0x23, 0xbc, 0xf2, 0x1e, 0x2d, 0x1a, 0x4d, 0x9f, 0x27, 0x49, 0x2e, 0x7d,
+ 0x78, 0x52, 0x83, 0x0d,
+};
+static const unsigned char kat3987_addinpr2[] = {
+ 0x6c, 0xb1, 0x3b, 0x55, 0x92, 0x40, 0x81, 0xac, 0xe5, 0xfb, 0x8c, 0x67,
+ 0x4d, 0x13, 0xf5, 0xd8, 0xe4, 0xbe, 0xd4, 0x5e, 0x45, 0xd3, 0xcd, 0xdf,
+ 0x2c, 0x82, 0xf3, 0x63, 0xab, 0x07, 0x6d, 0x4b, 0xc2, 0x3a, 0x89, 0xd6,
+ 0x72, 0x27, 0xf8, 0x71,
+};
+static const unsigned char kat3987_retbits[] = {
+ 0xb7, 0x1b, 0xef, 0x4b, 0xca, 0x65, 0x6b, 0xa1, 0xa3, 0xd6, 0x56, 0xa5,
+ 0x72, 0xc6, 0xf2, 0xab, 0x62, 0x66, 0x3d, 0xf1, 0xa1, 0xe7, 0xa2, 0x35,
+ 0x89, 0x05, 0x1b, 0x12, 0xb2, 0xa7, 0x2c, 0x5c, 0x2d, 0xcf, 0x0c, 0x9a,
+ 0x92, 0x5b, 0xa1, 0x51, 0xe3, 0xb2, 0x4d, 0xff, 0xc8, 0x5d, 0x7a, 0xa7,
+ 0x30, 0x1e, 0x41, 0xc6, 0x40, 0x78, 0x20, 0xf2, 0xda, 0x59, 0x0f, 0xd6,
+ 0x19, 0x52, 0xcc, 0xa3,
+};
+static const struct drbg_kat_pr_true kat3987_t = {
+ 11, kat3987_entropyin, kat3987_nonce, kat3987_persstr,
+ kat3987_entropyinpr1, kat3987_addinpr1, kat3987_entropyinpr2,
+ kat3987_addinpr2, kat3987_retbits
+};
+static const struct drbg_kat kat3987 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3987_t
+};
+
+static const unsigned char kat3988_entropyin[] = {
+ 0x04, 0x1c, 0x1a, 0x7e, 0x09, 0x21, 0xed, 0x9c, 0xe3, 0x0f, 0x3e, 0xc7,
+ 0xa6, 0xe5, 0xf3, 0x16, 0xbb, 0x2d, 0x6e, 0x26, 0x7a, 0xe9, 0x60, 0x8e,
+ 0x70, 0xc7, 0xb8, 0x96, 0x62, 0xe7, 0x44, 0x89, 0x78, 0x04, 0x5b, 0x4c,
+ 0x40, 0x1c, 0x55, 0xc2,
+};
+static const unsigned char kat3988_nonce[] = {0};
+static const unsigned char kat3988_persstr[] = {0};
+static const unsigned char kat3988_entropyinpr1[] = {
+ 0xa7, 0x83, 0xb4, 0x97, 0x1e, 0xa1, 0xa9, 0x17, 0x0e, 0x3e, 0xa1, 0x1d,
+ 0x43, 0xc5, 0xb7, 0xb2, 0x10, 0x5c, 0x9a, 0x0e, 0x71, 0x8b, 0x73, 0xe5,
+ 0x8e, 0x2a, 0x2e, 0x4b, 0x7e, 0xa0, 0xac, 0x3e, 0x3e, 0xa6, 0x14, 0x4b,
+ 0x01, 0x28, 0x09, 0xad,
+};
+static const unsigned char kat3988_addinpr1[] = {
+ 0x62, 0xe3, 0x58, 0x26, 0xa3, 0x11, 0x1f, 0x02, 0x00, 0x9f, 0x17, 0x2b,
+ 0xa6, 0x58, 0x69, 0xe8, 0x04, 0xea, 0x95, 0x79, 0xde, 0xcf, 0x5f, 0xaa,
+ 0xb3, 0x39, 0x00, 0xe5, 0x6f, 0xc4, 0xab, 0xbe, 0x25, 0xbb, 0xe6, 0x75,
+ 0x64, 0x00, 0x12, 0x11,
+};
+static const unsigned char kat3988_entropyinpr2[] = {
+ 0xd7, 0xfc, 0x4a, 0xa1, 0x0e, 0xb6, 0xcc, 0x89, 0x0a, 0x04, 0xdf, 0x01,
+ 0xf7, 0x87, 0x8c, 0x2e, 0xe9, 0x95, 0x05, 0x37, 0x7d, 0xe3, 0xd9, 0x7b,
+ 0x5e, 0xc9, 0x0a, 0x62, 0xf3, 0xb3, 0x6c, 0xef, 0x33, 0xdb, 0x29, 0x0b,
+ 0xe5, 0xd2, 0xc1, 0x0c,
+};
+static const unsigned char kat3988_addinpr2[] = {
+ 0x06, 0xb8, 0xd9, 0xff, 0x1e, 0xff, 0xe2, 0x50, 0x3f, 0xaf, 0x37, 0x00,
+ 0x36, 0x85, 0xf9, 0xa0, 0xd8, 0x47, 0xc9, 0x27, 0xbd, 0x56, 0xd2, 0x46,
+ 0xa3, 0x1e, 0xbf, 0xd2, 0xae, 0x38, 0xb5, 0x27, 0xd8, 0x2d, 0x3b, 0x22,
+ 0x32, 0x3a, 0x96, 0x8a,
+};
+static const unsigned char kat3988_retbits[] = {
+ 0xd8, 0x04, 0xbb, 0x99, 0x32, 0x3d, 0xf3, 0xfe, 0x59, 0x8a, 0x16, 0xf3,
+ 0x7f, 0xeb, 0xf7, 0x46, 0xd1, 0xa5, 0x17, 0x1e, 0xc3, 0xaa, 0xcb, 0x13,
+ 0x93, 0x6b, 0xdc, 0xa8, 0x3e, 0x14, 0xda, 0xb2, 0xbe, 0x67, 0x02, 0x4f,
+ 0x98, 0xf2, 0xc8, 0x9b, 0xc3, 0x08, 0xbc, 0x82, 0x33, 0x7d, 0x28, 0xcd,
+ 0x50, 0x80, 0x46, 0x8a, 0xf9, 0x0f, 0x00, 0x2e, 0xab, 0x46, 0x5d, 0x65,
+ 0xc1, 0x17, 0x96, 0xa9,
+};
+static const struct drbg_kat_pr_true kat3988_t = {
+ 12, kat3988_entropyin, kat3988_nonce, kat3988_persstr,
+ kat3988_entropyinpr1, kat3988_addinpr1, kat3988_entropyinpr2,
+ kat3988_addinpr2, kat3988_retbits
+};
+static const struct drbg_kat kat3988 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3988_t
+};
+
+static const unsigned char kat3989_entropyin[] = {
+ 0x09, 0x76, 0xce, 0x78, 0x81, 0x8c, 0x0d, 0xdc, 0xbc, 0x12, 0xcf, 0xac,
+ 0xc6, 0x3b, 0x7f, 0x53, 0x29, 0xd1, 0x8c, 0xc8, 0x45, 0x35, 0xa1, 0xbc,
+ 0x3b, 0xf3, 0x27, 0x76, 0x4c, 0x70, 0xd9, 0xdf, 0x9a, 0x29, 0x2f, 0xef,
+ 0xe5, 0xfa, 0x2f, 0xe0,
+};
+static const unsigned char kat3989_nonce[] = {0};
+static const unsigned char kat3989_persstr[] = {0};
+static const unsigned char kat3989_entropyinpr1[] = {
+ 0xa1, 0xe8, 0x27, 0x12, 0xff, 0xf4, 0x44, 0x0b, 0xf2, 0x22, 0x4f, 0xcc,
+ 0x3b, 0xc3, 0x94, 0xf4, 0xbd, 0xaa, 0x95, 0x6a, 0x3c, 0x98, 0x0e, 0x0f,
+ 0x66, 0xa5, 0x82, 0x09, 0x97, 0x6f, 0xdc, 0x5f, 0x8b, 0x93, 0xad, 0x27,
+ 0x3c, 0x14, 0x3e, 0xc8,
+};
+static const unsigned char kat3989_addinpr1[] = {
+ 0xa6, 0x30, 0xfa, 0x24, 0x91, 0x67, 0x57, 0xac, 0x7a, 0x7a, 0xa6, 0x23,
+ 0x8c, 0xc4, 0x69, 0xcc, 0x04, 0xc8, 0xd4, 0x1a, 0x36, 0x06, 0x9a, 0xc3,
+ 0xb1, 0x1a, 0x74, 0x9c, 0x0e, 0x47, 0xf9, 0x71, 0x2b, 0xbe, 0xd0, 0x12,
+ 0x85, 0x52, 0x76, 0xc6,
+};
+static const unsigned char kat3989_entropyinpr2[] = {
+ 0xa2, 0x54, 0xf9, 0x40, 0xe7, 0xef, 0xca, 0xf5, 0x5d, 0x3a, 0xa5, 0x80,
+ 0x46, 0x53, 0x2e, 0xfe, 0xde, 0xfe, 0xd7, 0x61, 0x4c, 0xc2, 0xd5, 0xea,
+ 0x57, 0x7d, 0xc1, 0xa3, 0xf9, 0x75, 0x0a, 0x61, 0x97, 0x16, 0x61, 0xdf,
+ 0x5a, 0xe1, 0x1c, 0xd4,
+};
+static const unsigned char kat3989_addinpr2[] = {
+ 0xbe, 0xed, 0x9e, 0x8c, 0xc0, 0x82, 0xc9, 0xbd, 0xee, 0xa8, 0xd4, 0x22,
+ 0x63, 0xe2, 0xf1, 0x9d, 0x29, 0xe4, 0x0e, 0x02, 0x23, 0xd2, 0xc4, 0xc3,
+ 0x36, 0xd5, 0x4d, 0x00, 0xf0, 0x75, 0x34, 0x2c, 0x24, 0x2a, 0x41, 0x21,
+ 0xcc, 0x15, 0xeb, 0x5f,
+};
+static const unsigned char kat3989_retbits[] = {
+ 0x12, 0x9a, 0xfd, 0x05, 0x73, 0xd9, 0xf7, 0xe2, 0xf8, 0x25, 0x2c, 0x7b,
+ 0x6b, 0xea, 0xc2, 0x38, 0xb0, 0xc5, 0x15, 0x62, 0x7e, 0x71, 0x73, 0xef,
+ 0x1a, 0x13, 0x2e, 0x80, 0xa3, 0xf8, 0x4f, 0x90, 0xcf, 0x69, 0x3b, 0x12,
+ 0x12, 0x30, 0x03, 0x20, 0x98, 0x97, 0x65, 0x7d, 0x7a, 0x08, 0x28, 0x47,
+ 0xb4, 0x01, 0x16, 0xec, 0xc2, 0x41, 0x0a, 0x12, 0xc0, 0x1e, 0x29, 0x8d,
+ 0x97, 0x9f, 0x99, 0x22,
+};
+static const struct drbg_kat_pr_true kat3989_t = {
+ 13, kat3989_entropyin, kat3989_nonce, kat3989_persstr,
+ kat3989_entropyinpr1, kat3989_addinpr1, kat3989_entropyinpr2,
+ kat3989_addinpr2, kat3989_retbits
+};
+static const struct drbg_kat kat3989 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3989_t
+};
+
+static const unsigned char kat3990_entropyin[] = {
+ 0x28, 0xfb, 0x3c, 0x13, 0xcd, 0x47, 0xcc, 0xcf, 0x87, 0x56, 0xe5, 0xce,
+ 0x47, 0xb5, 0x3c, 0x58, 0x4a, 0xdd, 0x37, 0x11, 0x5b, 0xb4, 0x50, 0xfb,
+ 0xbd, 0xa5, 0xc6, 0x07, 0xe5, 0x06, 0xd8, 0xb2, 0x24, 0x65, 0xeb, 0xb8,
+ 0x3b, 0xd4, 0x3e, 0x78,
+};
+static const unsigned char kat3990_nonce[] = {0};
+static const unsigned char kat3990_persstr[] = {0};
+static const unsigned char kat3990_entropyinpr1[] = {
+ 0x2e, 0x05, 0x88, 0xd3, 0x11, 0xe1, 0x8d, 0x70, 0xd5, 0x5a, 0xe9, 0x78,
+ 0x4c, 0x67, 0x3b, 0xb9, 0x6f, 0xfe, 0x38, 0x0b, 0xbb, 0xaa, 0x75, 0x84,
+ 0xbe, 0x61, 0x51, 0x15, 0x12, 0x35, 0xce, 0xa4, 0xc3, 0xc0, 0x15, 0x9a,
+ 0x11, 0xe7, 0x53, 0xb6,
+};
+static const unsigned char kat3990_addinpr1[] = {
+ 0xe0, 0xca, 0x51, 0xc9, 0xa5, 0xf5, 0x7b, 0xef, 0x56, 0xe0, 0xcb, 0xf9,
+ 0x67, 0x41, 0x75, 0x27, 0x1b, 0x82, 0x53, 0xe2, 0x5b, 0xfa, 0xf8, 0x26,
+ 0xcb, 0xb9, 0x07, 0xc0, 0xf8, 0x8e, 0x0f, 0x01, 0xd9, 0x0b, 0x3c, 0x47,
+ 0xad, 0x00, 0x0a, 0x05,
+};
+static const unsigned char kat3990_entropyinpr2[] = {
+ 0x65, 0x87, 0xfd, 0x55, 0x05, 0x75, 0x66, 0xc3, 0xfc, 0xdb, 0xd8, 0x5a,
+ 0xa2, 0xb6, 0x93, 0xd8, 0x85, 0x23, 0x41, 0x44, 0xa6, 0xac, 0x90, 0x00,
+ 0xb8, 0x64, 0x0c, 0x85, 0x30, 0xda, 0x8e, 0x2e, 0x72, 0xab, 0xfc, 0xa6,
+ 0x98, 0x0d, 0x71, 0x19,
+};
+static const unsigned char kat3990_addinpr2[] = {
+ 0x1a, 0x72, 0xca, 0xb5, 0x1b, 0xe3, 0x63, 0x3b, 0xe2, 0x68, 0xe4, 0x53,
+ 0x3f, 0xe4, 0xad, 0x48, 0x2e, 0x51, 0x78, 0xcb, 0x3b, 0x15, 0xc6, 0xd8,
+ 0x09, 0x0a, 0xe9, 0xe8, 0x88, 0x2d, 0x24, 0xf1, 0xcb, 0xb2, 0xd9, 0x39,
+ 0x29, 0xda, 0x38, 0x64,
+};
+static const unsigned char kat3990_retbits[] = {
+ 0xa0, 0x49, 0x6a, 0x05, 0xe5, 0x23, 0x8f, 0x17, 0x1f, 0x18, 0x87, 0x09,
+ 0x73, 0xc9, 0xe7, 0xb9, 0xb3, 0xff, 0xf4, 0x4d, 0xf1, 0xfc, 0x1c, 0xcf,
+ 0xa3, 0x98, 0xef, 0x73, 0xae, 0xb4, 0x18, 0x29, 0xa3, 0x93, 0x39, 0xfd,
+ 0x03, 0x25, 0x91, 0xab, 0xcc, 0xe4, 0xcd, 0x94, 0x02, 0x29, 0x7f, 0x7c,
+ 0x2e, 0x38, 0xfd, 0x24, 0x86, 0xea, 0xa8, 0xc2, 0x01, 0x34, 0xfc, 0x01,
+ 0x22, 0xaf, 0x97, 0x8f,
+};
+static const struct drbg_kat_pr_true kat3990_t = {
+ 14, kat3990_entropyin, kat3990_nonce, kat3990_persstr,
+ kat3990_entropyinpr1, kat3990_addinpr1, kat3990_entropyinpr2,
+ kat3990_addinpr2, kat3990_retbits
+};
+static const struct drbg_kat kat3990 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat3990_t
+};
+
+static const unsigned char kat3991_entropyin[] = {
+ 0x4e, 0x0d, 0x69, 0x8c, 0x46, 0x9c, 0xe9, 0x45, 0x8f, 0x4a, 0xe7, 0x35,
+ 0xef, 0xf6, 0x53, 0xa2, 0x14, 0x5a, 0x6e, 0xdc, 0xbc, 0x92, 0x39, 0x39,
+ 0x56, 0xeb, 0x15, 0x37, 0xf3, 0x31, 0x01, 0xd0, 0x39, 0x05, 0xd0, 0xaa,
+ 0x2e, 0x72, 0xf1, 0x91,
+};
+static const unsigned char kat3991_nonce[] = {0};
+static const unsigned char kat3991_persstr[] = {
+ 0x18, 0xc0, 0xe4, 0x34, 0x48, 0xb9, 0xb1, 0xc2, 0x37, 0x9a, 0x08, 0xc9,
+ 0x3a, 0xc7, 0x87, 0xe4, 0x1c, 0x27, 0xec, 0xc8, 0x79, 0x70, 0x53, 0x56,
+ 0x7f, 0x7a, 0x96, 0x00, 0x9c, 0xc3, 0xdf, 0x0a, 0xaa, 0x43, 0x1b, 0xff,
+ 0x57, 0xce, 0x57, 0x1f,
+};
+static const unsigned char kat3991_entropyinpr1[] = {
+ 0xe8, 0xc6, 0x7e, 0x80, 0x83, 0xd7, 0xc2, 0x49, 0x5c, 0xc2, 0x21, 0x06,
+ 0xd2, 0x11, 0x7f, 0xac, 0x95, 0xa0, 0x25, 0xf8, 0x09, 0x9b, 0x4d, 0x09,
+ 0x3c, 0x8a, 0xf5, 0x89, 0xa6, 0xc6, 0x22, 0x30, 0x6e, 0x6c, 0x75, 0xc5,
+ 0x1c, 0x36, 0xe9, 0x87,
+};
+static const unsigned char kat3991_addinpr1[] = {0};
+static const unsigned char kat3991_entropyinpr2[] = {
+ 0xb5, 0x37, 0x85, 0x31, 0x78, 0x07, 0x24, 0x67, 0x79, 0xf5, 0x6a, 0xf2,
+ 0x37, 0xbc, 0xc6, 0x9e, 0x1d, 0xa0, 0x21, 0x9b, 0x1c, 0x5a, 0xd1, 0xd7,
+ 0x14, 0xf6, 0x80, 0x5f, 0xa7, 0x5e, 0x5f, 0x91, 0xd6, 0x60, 0xa0, 0x07,
+ 0x2f, 0xf4, 0x11, 0xf6,
+};
+static const unsigned char kat3991_addinpr2[] = {0};
+static const unsigned char kat3991_retbits[] = {
+ 0x72, 0xa4, 0x11, 0x67, 0x12, 0x87, 0xe9, 0x4d, 0x08, 0x8d, 0x52, 0x05,
+ 0xad, 0x02, 0xf6, 0x66, 0x55, 0x2a, 0xe4, 0xc8, 0xe2, 0x0c, 0x98, 0xf7,
+ 0xb3, 0xf4, 0x78, 0xf0, 0xde, 0x5c, 0xcc, 0xce, 0xb5, 0x0e, 0x72, 0xd1,
+ 0x22, 0xf1, 0x5e, 0x36, 0x80, 0x40, 0x84, 0x86, 0x2c, 0xd0, 0x6b, 0x31,
+ 0x30, 0x7e, 0x58, 0xc8, 0xb7, 0xd4, 0x4f, 0xe5, 0x2f, 0xb6, 0x24, 0x42,
+ 0x62, 0xf1, 0x01, 0x98,
+};
+static const struct drbg_kat_pr_true kat3991_t = {
+ 0, kat3991_entropyin, kat3991_nonce, kat3991_persstr,
+ kat3991_entropyinpr1, kat3991_addinpr1, kat3991_entropyinpr2,
+ kat3991_addinpr2, kat3991_retbits
+};
+static const struct drbg_kat kat3991 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3991_t
+};
+
+static const unsigned char kat3992_entropyin[] = {
+ 0xb3, 0x14, 0x61, 0x40, 0x7b, 0xb4, 0x92, 0x50, 0x97, 0xc0, 0x79, 0xd3,
+ 0x0d, 0x21, 0xf4, 0x65, 0x0b, 0x84, 0xd7, 0x2c, 0x51, 0x6c, 0x32, 0xdc,
+ 0xb2, 0x5e, 0x61, 0xc7, 0xec, 0xd8, 0x43, 0x3f, 0xbe, 0x3e, 0x5e, 0xc1,
+ 0x77, 0xb1, 0x24, 0xc4,
+};
+static const unsigned char kat3992_nonce[] = {0};
+static const unsigned char kat3992_persstr[] = {
+ 0xcf, 0x7e, 0xc7, 0xd7, 0xda, 0xb1, 0x73, 0x0f, 0x29, 0x71, 0xbf, 0x47,
+ 0x68, 0x0b, 0xe1, 0xfa, 0xe3, 0xc1, 0xc4, 0xb4, 0xc2, 0x09, 0xe5, 0xfa,
+ 0x8c, 0x5e, 0x91, 0x5a, 0xfc, 0x31, 0x6e, 0x14, 0x41, 0x17, 0x91, 0x14,
+ 0x95, 0x50, 0x69, 0x1f,
+};
+static const unsigned char kat3992_entropyinpr1[] = {
+ 0xfe, 0xae, 0x08, 0x49, 0xb0, 0x04, 0x60, 0xd1, 0x6c, 0x87, 0x1f, 0x40,
+ 0x89, 0x9e, 0x62, 0x0a, 0x07, 0x3c, 0x54, 0xfc, 0x62, 0xe0, 0xae, 0x9b,
+ 0xb8, 0x83, 0x7b, 0x39, 0x1b, 0xff, 0x59, 0xaf, 0x6c, 0x08, 0xa8, 0x78,
+ 0x98, 0xb3, 0xf9, 0x00,
+};
+static const unsigned char kat3992_addinpr1[] = {0};
+static const unsigned char kat3992_entropyinpr2[] = {
+ 0xa1, 0x5d, 0xe4, 0x23, 0x0e, 0x0d, 0xd9, 0x42, 0xd8, 0x0b, 0x9b, 0xdd,
+ 0x14, 0xf2, 0xd2, 0x3a, 0x06, 0x54, 0x64, 0xcd, 0x5f, 0xf6, 0x9b, 0x21,
+ 0x71, 0xc0, 0xc5, 0xe6, 0x04, 0xac, 0x33, 0xf5, 0xe4, 0x51, 0xd9, 0x7f,
+ 0x07, 0x9f, 0xeb, 0x48,
+};
+static const unsigned char kat3992_addinpr2[] = {0};
+static const unsigned char kat3992_retbits[] = {
+ 0x94, 0xba, 0xfb, 0x19, 0x97, 0xde, 0x55, 0x46, 0x84, 0x1b, 0x5a, 0x46,
+ 0xb7, 0xa2, 0x40, 0x27, 0xb3, 0x8b, 0x73, 0x8b, 0x6b, 0x0a, 0xfc, 0x9a,
+ 0xb4, 0xc4, 0xb4, 0xbf, 0x0f, 0x7e, 0x84, 0x31, 0xeb, 0xb9, 0xc9, 0x9e,
+ 0x99, 0x3d, 0xfe, 0x55, 0x5b, 0x70, 0x1f, 0xd7, 0x19, 0xc8, 0x60, 0x32,
+ 0x91, 0xfa, 0xe0, 0x95, 0xd7, 0x19, 0xfc, 0x58, 0xb0, 0x3f, 0x6f, 0xd5,
+ 0xfc, 0x32, 0x43, 0xe2,
+};
+static const struct drbg_kat_pr_true kat3992_t = {
+ 1, kat3992_entropyin, kat3992_nonce, kat3992_persstr,
+ kat3992_entropyinpr1, kat3992_addinpr1, kat3992_entropyinpr2,
+ kat3992_addinpr2, kat3992_retbits
+};
+static const struct drbg_kat kat3992 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3992_t
+};
+
+static const unsigned char kat3993_entropyin[] = {
+ 0xe7, 0x48, 0x76, 0x0c, 0x2f, 0x49, 0x55, 0x87, 0xb5, 0xc9, 0x75, 0x5a,
+ 0xfa, 0x35, 0xbc, 0x8d, 0x67, 0x23, 0x0a, 0x9c, 0x88, 0x5e, 0xcd, 0x99,
+ 0xcb, 0xac, 0xfa, 0xf1, 0xf7, 0x66, 0xf7, 0x31, 0x56, 0x9c, 0xca, 0x14,
+ 0x73, 0xca, 0xee, 0xbe,
+};
+static const unsigned char kat3993_nonce[] = {0};
+static const unsigned char kat3993_persstr[] = {
+ 0x20, 0x2b, 0x9f, 0x89, 0x2a, 0x76, 0x6e, 0xbc, 0xc0, 0xfd, 0xe3, 0x3d,
+ 0x41, 0x4a, 0x65, 0xba, 0xd4, 0xca, 0xfc, 0x0a, 0xfa, 0x99, 0x50, 0x6d,
+ 0x7b, 0xb3, 0xf9, 0xf2, 0x32, 0x27, 0xd7, 0x7d, 0x63, 0x5c, 0x54, 0x24,
+ 0xb0, 0x17, 0x34, 0xd2,
+};
+static const unsigned char kat3993_entropyinpr1[] = {
+ 0xf8, 0x61, 0xb7, 0x4b, 0xc6, 0x55, 0xa3, 0x52, 0xea, 0xdf, 0x7c, 0xe5,
+ 0xd3, 0x38, 0xd2, 0x0a, 0x7f, 0x35, 0x87, 0x77, 0xde, 0x80, 0xfc, 0x9e,
+ 0x51, 0xc3, 0x1d, 0xb5, 0x13, 0x16, 0x1f, 0x88, 0x41, 0x18, 0xaa, 0xc4,
+ 0x91, 0xd5, 0xd5, 0xa1,
+};
+static const unsigned char kat3993_addinpr1[] = {0};
+static const unsigned char kat3993_entropyinpr2[] = {
+ 0x00, 0xd0, 0x2d, 0xe2, 0xe0, 0x1b, 0x5b, 0x01, 0x91, 0xe3, 0xa0, 0xfc,
+ 0x46, 0x7e, 0xda, 0xf1, 0x0c, 0xc7, 0xc8, 0xb0, 0x5e, 0xed, 0x78, 0xef,
+ 0x29, 0xb6, 0xa0, 0xc9, 0xb0, 0x6e, 0x8c, 0xad, 0xda, 0x58, 0xe9, 0x0f,
+ 0xcb, 0xd7, 0x3b, 0xbe,
+};
+static const unsigned char kat3993_addinpr2[] = {0};
+static const unsigned char kat3993_retbits[] = {
+ 0x9d, 0xfb, 0x4c, 0xfe, 0x04, 0xc4, 0xab, 0xe0, 0x40, 0xc2, 0xde, 0x7d,
+ 0x54, 0x10, 0x17, 0xa6, 0x4a, 0x5c, 0xdf, 0xb9, 0xd1, 0x19, 0x65, 0x51,
+ 0xf0, 0xff, 0xfc, 0x95, 0x85, 0x02, 0x37, 0xa4, 0x21, 0x83, 0x89, 0x57,
+ 0x0e, 0xcb, 0xaa, 0x59, 0xe6, 0x40, 0xf8, 0xb5, 0x59, 0x10, 0x14, 0xe7,
+ 0xbf, 0x4d, 0x35, 0xf3, 0x9a, 0x1d, 0x6d, 0x36, 0x1d, 0xfd, 0x22, 0x6c,
+ 0xd0, 0xe1, 0x60, 0xbf,
+};
+static const struct drbg_kat_pr_true kat3993_t = {
+ 2, kat3993_entropyin, kat3993_nonce, kat3993_persstr,
+ kat3993_entropyinpr1, kat3993_addinpr1, kat3993_entropyinpr2,
+ kat3993_addinpr2, kat3993_retbits
+};
+static const struct drbg_kat kat3993 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3993_t
+};
+
+static const unsigned char kat3994_entropyin[] = {
+ 0x09, 0xc7, 0x45, 0xf0, 0xb9, 0x4a, 0x1b, 0x98, 0x11, 0x93, 0xde, 0x07,
+ 0x5b, 0xb0, 0xc4, 0x13, 0xb0, 0x47, 0xdc, 0xe8, 0x76, 0xab, 0x63, 0x74,
+ 0x26, 0xdb, 0x5e, 0x6b, 0x24, 0x56, 0x85, 0x57, 0xa5, 0xcd, 0xd5, 0x83,
+ 0xcc, 0xc7, 0x9f, 0x6c,
+};
+static const unsigned char kat3994_nonce[] = {0};
+static const unsigned char kat3994_persstr[] = {
+ 0xaa, 0x20, 0x48, 0xb0, 0x6c, 0x4f, 0xb1, 0x60, 0xda, 0x77, 0xec, 0x39,
+ 0x01, 0x4b, 0x72, 0xf1, 0xef, 0x8b, 0xb2, 0xa1, 0xf3, 0x78, 0xc7, 0x48,
+ 0xd7, 0xa2, 0xd9, 0x14, 0xf2, 0x75, 0x55, 0x9a, 0x69, 0x97, 0x3a, 0x33,
+ 0xb7, 0xc0, 0xb9, 0xe8,
+};
+static const unsigned char kat3994_entropyinpr1[] = {
+ 0x20, 0x8a, 0xc4, 0x33, 0xfb, 0xad, 0xf3, 0x35, 0x2a, 0x54, 0x54, 0x60,
+ 0x30, 0xdd, 0x59, 0xd5, 0x90, 0x71, 0x2f, 0x08, 0xc0, 0x38, 0xf3, 0x29,
+ 0xb8, 0xd7, 0xa7, 0xbb, 0xdd, 0xd5, 0x3d, 0x5b, 0x59, 0xcf, 0x3b, 0x22,
+ 0x2a, 0x8a, 0x0e, 0xf3,
+};
+static const unsigned char kat3994_addinpr1[] = {0};
+static const unsigned char kat3994_entropyinpr2[] = {
+ 0x88, 0xa0, 0x61, 0x93, 0xac, 0x99, 0x7b, 0x55, 0xd8, 0x07, 0xd1, 0x4c,
+ 0x2c, 0x16, 0x48, 0x91, 0xf4, 0x1b, 0x35, 0x2f, 0xfb, 0xd2, 0x75, 0x36,
+ 0x4c, 0x3a, 0x7d, 0x16, 0x6c, 0x74, 0xa0, 0xbd, 0xf4, 0x8a, 0x55, 0x75,
+ 0xbc, 0x25, 0x74, 0x9c,
+};
+static const unsigned char kat3994_addinpr2[] = {0};
+static const unsigned char kat3994_retbits[] = {
+ 0xe7, 0x04, 0xd0, 0x2b, 0x48, 0x52, 0x77, 0x2d, 0x5e, 0x7d, 0x4f, 0x73,
+ 0x28, 0xdf, 0x1c, 0xa7, 0xe6, 0x39, 0x0a, 0xfc, 0x10, 0x3d, 0x84, 0x7c,
+ 0xde, 0x9a, 0x58, 0xb6, 0x4c, 0x35, 0x23, 0x22, 0xe3, 0x92, 0x37, 0x5e,
+ 0x32, 0xe7, 0xf0, 0xf9, 0xa8, 0xff, 0x5a, 0x60, 0x45, 0x51, 0xe9, 0xf7,
+ 0xa2, 0xbd, 0xa1, 0xb9, 0xe9, 0x91, 0x5b, 0x04, 0x72, 0x20, 0xed, 0x2c,
+ 0xb4, 0xdc, 0x1e, 0x78,
+};
+static const struct drbg_kat_pr_true kat3994_t = {
+ 3, kat3994_entropyin, kat3994_nonce, kat3994_persstr,
+ kat3994_entropyinpr1, kat3994_addinpr1, kat3994_entropyinpr2,
+ kat3994_addinpr2, kat3994_retbits
+};
+static const struct drbg_kat kat3994 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3994_t
+};
+
+static const unsigned char kat3995_entropyin[] = {
+ 0x7f, 0x93, 0xce, 0x4b, 0x74, 0x92, 0x2c, 0x10, 0x3e, 0x5f, 0x2c, 0xf4,
+ 0xb6, 0x57, 0x8c, 0x05, 0x38, 0xcd, 0xdd, 0x8f, 0x87, 0xde, 0x85, 0x55,
+ 0x1e, 0xf4, 0x95, 0x4d, 0x89, 0xc6, 0x7c, 0x6f, 0xe0, 0xc7, 0xa4, 0xef,
+ 0x4c, 0xef, 0xd2, 0x41,
+};
+static const unsigned char kat3995_nonce[] = {0};
+static const unsigned char kat3995_persstr[] = {
+ 0xaa, 0x27, 0xd3, 0x50, 0x7e, 0xba, 0xcc, 0xad, 0x2b, 0x62, 0xc1, 0x9b,
+ 0xda, 0xd0, 0x01, 0x11, 0x37, 0xf3, 0x29, 0x0b, 0xf6, 0xe6, 0x38, 0xc7,
+ 0x26, 0x6c, 0xa4, 0x08, 0x70, 0x4b, 0xfd, 0x31, 0xa0, 0xa2, 0x15, 0xcb,
+ 0x93, 0xab, 0x56, 0x9b,
+};
+static const unsigned char kat3995_entropyinpr1[] = {
+ 0x47, 0xd5, 0xf7, 0x33, 0xea, 0xf3, 0x77, 0x79, 0x7c, 0xcf, 0x80, 0x45,
+ 0x04, 0xd3, 0xf9, 0x7e, 0x59, 0x52, 0x00, 0x3f, 0xe3, 0x3d, 0x24, 0x52,
+ 0x2c, 0xcb, 0x30, 0xa9, 0xc7, 0xfd, 0x4d, 0xe6, 0xa3, 0x96, 0xb9, 0x10,
+ 0x82, 0x84, 0x30, 0x96,
+};
+static const unsigned char kat3995_addinpr1[] = {0};
+static const unsigned char kat3995_entropyinpr2[] = {
+ 0xcc, 0x1b, 0x06, 0xe4, 0xbb, 0xc7, 0xdc, 0xc3, 0x1b, 0x21, 0x40, 0xf4,
+ 0xb8, 0x74, 0x5f, 0x19, 0x45, 0x9f, 0x39, 0x53, 0x56, 0x6a, 0xf3, 0xd7,
+ 0x52, 0x70, 0x5b, 0x17, 0xa9, 0xc7, 0x8c, 0xf6, 0x60, 0x0e, 0x64, 0xf3,
+ 0x8c, 0x25, 0xfa, 0x69,
+};
+static const unsigned char kat3995_addinpr2[] = {0};
+static const unsigned char kat3995_retbits[] = {
+ 0x69, 0x0c, 0x86, 0x44, 0x8b, 0xc2, 0xb0, 0x25, 0x30, 0xc3, 0xeb, 0x70,
+ 0xd2, 0xdf, 0x30, 0x41, 0xfd, 0x46, 0x2e, 0xb7, 0x49, 0xf1, 0x64, 0x34,
+ 0x61, 0x90, 0x16, 0xd2, 0x0c, 0x0c, 0x1c, 0x6d, 0x33, 0x4b, 0x20, 0x0e,
+ 0xe2, 0x5b, 0xb5, 0xd3, 0x36, 0xa5, 0x68, 0x29, 0x83, 0x9c, 0x5e, 0xb2,
+ 0x1a, 0x5a, 0x0d, 0x5f, 0xc7, 0x20, 0x58, 0xc7, 0x12, 0xa2, 0x4f, 0x5e,
+ 0xe4, 0x4c, 0xa7, 0xe0,
+};
+static const struct drbg_kat_pr_true kat3995_t = {
+ 4, kat3995_entropyin, kat3995_nonce, kat3995_persstr,
+ kat3995_entropyinpr1, kat3995_addinpr1, kat3995_entropyinpr2,
+ kat3995_addinpr2, kat3995_retbits
+};
+static const struct drbg_kat kat3995 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3995_t
+};
+
+static const unsigned char kat3996_entropyin[] = {
+ 0x7a, 0x11, 0x87, 0x58, 0xf0, 0xc8, 0x24, 0xe7, 0x4b, 0x2f, 0xdf, 0x3e,
+ 0x5e, 0x79, 0xcd, 0xdc, 0xc9, 0x82, 0xa5, 0x1b, 0x61, 0x64, 0x98, 0xb1,
+ 0x6b, 0x03, 0x76, 0xcd, 0xb0, 0xe5, 0x55, 0xb3, 0x48, 0xb5, 0x75, 0x02,
+ 0xa4, 0xe2, 0x23, 0x76,
+};
+static const unsigned char kat3996_nonce[] = {0};
+static const unsigned char kat3996_persstr[] = {
+ 0xf0, 0x01, 0xf0, 0x90, 0x82, 0x6d, 0xd0, 0x46, 0xc6, 0xdf, 0x32, 0x7f,
+ 0x52, 0x39, 0x0e, 0x79, 0x63, 0x49, 0x4c, 0xdb, 0x5a, 0x74, 0xfa, 0x03,
+ 0xad, 0xc4, 0xb0, 0x40, 0x02, 0x50, 0x5f, 0xb4, 0x2d, 0x03, 0x24, 0xd9,
+ 0xc7, 0x17, 0x02, 0xc3,
+};
+static const unsigned char kat3996_entropyinpr1[] = {
+ 0xef, 0xe8, 0x4f, 0xcd, 0x0c, 0x0f, 0x20, 0x1a, 0x5e, 0xbd, 0x15, 0x40,
+ 0x74, 0x33, 0x66, 0x57, 0x91, 0x00, 0xc8, 0x26, 0x19, 0x0f, 0x3a, 0xd2,
+ 0x86, 0x8f, 0x07, 0xec, 0xd0, 0xb5, 0x2b, 0x38, 0x60, 0xfa, 0x09, 0xf3,
+ 0xcc, 0x41, 0xac, 0x27,
+};
+static const unsigned char kat3996_addinpr1[] = {0};
+static const unsigned char kat3996_entropyinpr2[] = {
+ 0xea, 0xaa, 0x8c, 0x35, 0xfb, 0x2c, 0xa7, 0xd0, 0x65, 0xa6, 0x7e, 0x0e,
+ 0x07, 0x57, 0x8a, 0xd6, 0xf0, 0xe1, 0xb4, 0x05, 0xf8, 0x8d, 0xdd, 0xbc,
+ 0x4f, 0x23, 0x69, 0xb1, 0x3d, 0x9b, 0xa1, 0x0c, 0xab, 0x19, 0x30, 0xbf,
+ 0x36, 0xe3, 0x54, 0xa8,
+};
+static const unsigned char kat3996_addinpr2[] = {0};
+static const unsigned char kat3996_retbits[] = {
+ 0xdf, 0xb3, 0x6c, 0x49, 0x6f, 0x76, 0xdb, 0x85, 0x22, 0x3f, 0x88, 0x12,
+ 0x7a, 0x5a, 0xa3, 0xcb, 0xfd, 0xfe, 0x1d, 0x40, 0x14, 0x43, 0x9a, 0x03,
+ 0x69, 0xcc, 0x0c, 0xcb, 0xd0, 0x31, 0xf5, 0xf6, 0x63, 0x69, 0x26, 0xb9,
+ 0xe2, 0xca, 0x3c, 0x66, 0x91, 0xc8, 0x9b, 0x6e, 0x4e, 0xa8, 0xd6, 0xf2,
+ 0x94, 0x96, 0xd4, 0x44, 0x46, 0x81, 0x0f, 0x76, 0x72, 0xef, 0x4f, 0x34,
+ 0xa7, 0x90, 0x86, 0x54,
+};
+static const struct drbg_kat_pr_true kat3996_t = {
+ 5, kat3996_entropyin, kat3996_nonce, kat3996_persstr,
+ kat3996_entropyinpr1, kat3996_addinpr1, kat3996_entropyinpr2,
+ kat3996_addinpr2, kat3996_retbits
+};
+static const struct drbg_kat kat3996 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3996_t
+};
+
+static const unsigned char kat3997_entropyin[] = {
+ 0x87, 0xb3, 0x70, 0xbe, 0xff, 0xe7, 0x81, 0xdb, 0x84, 0x32, 0x96, 0x7d,
+ 0xb9, 0x4c, 0xc4, 0x71, 0xed, 0x9f, 0x89, 0x0d, 0xa9, 0xd5, 0x6d, 0xb0,
+ 0x94, 0xc2, 0xdd, 0x7a, 0x26, 0xed, 0x19, 0xce, 0xa2, 0x19, 0x7f, 0x72,
+ 0xff, 0x9f, 0xca, 0x7d,
+};
+static const unsigned char kat3997_nonce[] = {0};
+static const unsigned char kat3997_persstr[] = {
+ 0xf4, 0xe5, 0xbe, 0xe8, 0xe9, 0xc2, 0x63, 0xcb, 0x29, 0xce, 0x88, 0x24,
+ 0x84, 0x20, 0x92, 0x25, 0x98, 0x27, 0xe4, 0x5d, 0x9f, 0x81, 0x1f, 0xa7,
+ 0x36, 0xa9, 0x9c, 0xf6, 0xb8, 0xda, 0x8a, 0x42, 0x2e, 0x80, 0xc7, 0xc1,
+ 0x21, 0x98, 0x8d, 0x4c,
+};
+static const unsigned char kat3997_entropyinpr1[] = {
+ 0x29, 0x6d, 0xd9, 0xa1, 0x90, 0xa6, 0x83, 0x8c, 0x8a, 0xcc, 0xe1, 0xb1,
+ 0xdc, 0xd6, 0x4a, 0xc3, 0x92, 0x26, 0x16, 0xcb, 0xf0, 0xa6, 0xad, 0xaf,
+ 0x38, 0x86, 0xfb, 0x70, 0x5a, 0x03, 0x75, 0x70, 0xfb, 0x87, 0x59, 0x97,
+ 0x5c, 0xf6, 0x8c, 0xc8,
+};
+static const unsigned char kat3997_addinpr1[] = {0};
+static const unsigned char kat3997_entropyinpr2[] = {
+ 0x88, 0x56, 0x82, 0xd3, 0x58, 0x37, 0xc6, 0x36, 0x07, 0x65, 0xff, 0x16,
+ 0x41, 0xe5, 0x3a, 0xca, 0x02, 0x05, 0x11, 0x51, 0x6a, 0xac, 0x22, 0x1e,
+ 0x4f, 0x13, 0x26, 0x5d, 0xbc, 0xf2, 0x8d, 0x98, 0x13, 0x9f, 0xfb, 0xbf,
+ 0x03, 0x5b, 0xd7, 0x9b,
+};
+static const unsigned char kat3997_addinpr2[] = {0};
+static const unsigned char kat3997_retbits[] = {
+ 0x74, 0x2c, 0xda, 0xba, 0x2d, 0xaf, 0xc3, 0x02, 0x79, 0x45, 0xe8, 0xa1,
+ 0x1e, 0xd7, 0xf9, 0xfa, 0x21, 0x4b, 0xe7, 0x3c, 0xf3, 0x56, 0x18, 0xce,
+ 0x89, 0x34, 0xe0, 0xa8, 0xf9, 0x72, 0xdf, 0xf8, 0x61, 0x5b, 0xca, 0x72,
+ 0x51, 0x2f, 0x57, 0xe3, 0x76, 0x6e, 0x23, 0xe6, 0xf2, 0x17, 0x3d, 0x6f,
+ 0x0f, 0xf4, 0x77, 0xab, 0xed, 0x8f, 0xe1, 0x91, 0xfe, 0x6a, 0x9a, 0x5b,
+ 0xd2, 0x62, 0x66, 0x1a,
+};
+static const struct drbg_kat_pr_true kat3997_t = {
+ 6, kat3997_entropyin, kat3997_nonce, kat3997_persstr,
+ kat3997_entropyinpr1, kat3997_addinpr1, kat3997_entropyinpr2,
+ kat3997_addinpr2, kat3997_retbits
+};
+static const struct drbg_kat kat3997 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3997_t
+};
+
+static const unsigned char kat3998_entropyin[] = {
+ 0xc6, 0xf2, 0xad, 0xc9, 0xec, 0x99, 0xa6, 0xc8, 0xd1, 0x14, 0xde, 0x0f,
+ 0xea, 0xd0, 0x92, 0x7f, 0xd2, 0x19, 0x99, 0x99, 0x32, 0xe4, 0xa0, 0x81,
+ 0x11, 0xd2, 0x09, 0x3d, 0x78, 0x58, 0x35, 0x6d, 0x1d, 0xdf, 0x82, 0x4a,
+ 0x1e, 0x39, 0xd6, 0xa0,
+};
+static const unsigned char kat3998_nonce[] = {0};
+static const unsigned char kat3998_persstr[] = {
+ 0x58, 0x67, 0xc9, 0x33, 0xe2, 0x07, 0x43, 0xa9, 0x5f, 0xfe, 0xcc, 0xb4,
+ 0xe2, 0xeb, 0x70, 0x18, 0xd2, 0x18, 0x45, 0xee, 0x78, 0xdf, 0x3f, 0x42,
+ 0x1e, 0xbe, 0x0f, 0x2a, 0x8d, 0x3c, 0x5e, 0xbb, 0x84, 0xc2, 0x1f, 0x9a,
+ 0x53, 0x76, 0x70, 0x14,
+};
+static const unsigned char kat3998_entropyinpr1[] = {
+ 0xd3, 0x34, 0x28, 0x51, 0x3d, 0x7f, 0x8a, 0xa9, 0x04, 0x3d, 0xef, 0x19,
+ 0x06, 0xc9, 0xeb, 0xfd, 0x6f, 0xea, 0x5b, 0x25, 0x2c, 0x6e, 0x13, 0xf2,
+ 0xf1, 0x58, 0x3d, 0x92, 0x44, 0x47, 0xf2, 0x5b, 0x89, 0xb0, 0x58, 0xbd,
+ 0xe8, 0x8f, 0x9a, 0xbc,
+};
+static const unsigned char kat3998_addinpr1[] = {0};
+static const unsigned char kat3998_entropyinpr2[] = {
+ 0x4b, 0xd5, 0x3a, 0xca, 0xce, 0x6b, 0xc8, 0xe2, 0x26, 0x9a, 0x40, 0x44,
+ 0xc3, 0xea, 0xd8, 0x82, 0x12, 0x5a, 0xbc, 0x21, 0x77, 0x3e, 0x07, 0xc4,
+ 0xbd, 0xc9, 0x9d, 0xd8, 0xa4, 0x36, 0x4c, 0x0a, 0x4a, 0xa9, 0x44, 0xd9,
+ 0xf3, 0x94, 0x8f, 0xa5,
+};
+static const unsigned char kat3998_addinpr2[] = {0};
+static const unsigned char kat3998_retbits[] = {
+ 0x90, 0x72, 0xa8, 0x76, 0xcb, 0x01, 0xac, 0x97, 0x61, 0x52, 0x6e, 0x34,
+ 0x66, 0x6c, 0x02, 0xf5, 0x97, 0xaf, 0x08, 0x1e, 0xc0, 0x0a, 0x5d, 0x85,
+ 0xb9, 0x37, 0x83, 0x80, 0xc6, 0x20, 0xf2, 0x59, 0x82, 0xc0, 0x2c, 0xdb,
+ 0x93, 0x3c, 0xef, 0x35, 0x13, 0xd7, 0xeb, 0x11, 0x59, 0x1d, 0xa1, 0x95,
+ 0x77, 0xc0, 0xab, 0xcb, 0xc0, 0x8d, 0xcc, 0xf0, 0x41, 0xa9, 0x9f, 0x0a,
+ 0xcf, 0xd7, 0x1b, 0xb2,
+};
+static const struct drbg_kat_pr_true kat3998_t = {
+ 7, kat3998_entropyin, kat3998_nonce, kat3998_persstr,
+ kat3998_entropyinpr1, kat3998_addinpr1, kat3998_entropyinpr2,
+ kat3998_addinpr2, kat3998_retbits
+};
+static const struct drbg_kat kat3998 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3998_t
+};
+
+static const unsigned char kat3999_entropyin[] = {
+ 0xa0, 0x19, 0xc5, 0x3b, 0x53, 0x35, 0xd7, 0x06, 0x19, 0x2a, 0x30, 0x15,
+ 0xa3, 0xd8, 0x18, 0xb9, 0x39, 0x81, 0xa9, 0x24, 0xc2, 0xbf, 0xc8, 0xee,
+ 0x66, 0xe9, 0x1d, 0x50, 0x58, 0xae, 0xc3, 0x31, 0xe7, 0x1d, 0x71, 0x6c,
+ 0x0e, 0x9a, 0x64, 0x16,
+};
+static const unsigned char kat3999_nonce[] = {0};
+static const unsigned char kat3999_persstr[] = {
+ 0xa6, 0x44, 0x50, 0x73, 0xc9, 0x3c, 0xfc, 0x7c, 0x8e, 0x14, 0x69, 0x0a,
+ 0xde, 0x83, 0x65, 0x60, 0x4a, 0x6c, 0xc0, 0x0f, 0x50, 0xfd, 0x33, 0xb8,
+ 0x03, 0xff, 0xd7, 0xd9, 0x93, 0x2a, 0x45, 0x8d, 0x3d, 0xfe, 0x32, 0x0b,
+ 0xf6, 0x01, 0x20, 0x0d,
+};
+static const unsigned char kat3999_entropyinpr1[] = {
+ 0x65, 0xd9, 0xf4, 0xee, 0x6e, 0xc2, 0xb8, 0x11, 0xbb, 0x51, 0x17, 0x3a,
+ 0x3f, 0x38, 0xd7, 0xb8, 0x7f, 0xc4, 0xec, 0x7c, 0x7f, 0xa9, 0x0d, 0xd0,
+ 0x4a, 0x9f, 0xaf, 0x31, 0xbf, 0x47, 0xaf, 0x05, 0x1c, 0x74, 0x77, 0x31,
+ 0x6b, 0xaf, 0xc8, 0x19,
+};
+static const unsigned char kat3999_addinpr1[] = {0};
+static const unsigned char kat3999_entropyinpr2[] = {
+ 0x90, 0xe5, 0x70, 0x43, 0x78, 0xac, 0x38, 0x00, 0x95, 0xf3, 0x8b, 0x08,
+ 0x16, 0x13, 0xdb, 0xbf, 0xb4, 0x58, 0xbd, 0x88, 0x8a, 0xeb, 0x12, 0xfa,
+ 0x26, 0xbf, 0x02, 0x9b, 0x8b, 0x61, 0xfc, 0x0f, 0xc1, 0x5d, 0xc4, 0x2a,
+ 0xb5, 0xc2, 0x49, 0x2f,
+};
+static const unsigned char kat3999_addinpr2[] = {0};
+static const unsigned char kat3999_retbits[] = {
+ 0xd8, 0xf5, 0x34, 0x3e, 0x6b, 0x15, 0xd6, 0x3e, 0xac, 0xc2, 0x14, 0x69,
+ 0xfe, 0xba, 0x32, 0x9a, 0x78, 0xcc, 0xab, 0x56, 0x7c, 0x39, 0x1c, 0x52,
+ 0xa1, 0xf8, 0x65, 0x99, 0x41, 0x24, 0x32, 0x3a, 0x0b, 0xbe, 0x40, 0x21,
+ 0x3a, 0xd9, 0xe1, 0x54, 0x2c, 0x55, 0x2d, 0x25, 0xb0, 0x99, 0x4b, 0x09,
+ 0x5d, 0x4f, 0xe7, 0x5c, 0x35, 0x5c, 0x1b, 0xd6, 0xd9, 0x3f, 0xfd, 0xda,
+ 0x03, 0x02, 0x01, 0x7c,
+};
+static const struct drbg_kat_pr_true kat3999_t = {
+ 8, kat3999_entropyin, kat3999_nonce, kat3999_persstr,
+ kat3999_entropyinpr1, kat3999_addinpr1, kat3999_entropyinpr2,
+ kat3999_addinpr2, kat3999_retbits
+};
+static const struct drbg_kat kat3999 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat3999_t
+};
+
+static const unsigned char kat4000_entropyin[] = {
+ 0x4e, 0xfb, 0x6e, 0xf4, 0xd7, 0xf3, 0xc6, 0x40, 0xa2, 0x82, 0xfe, 0xef,
+ 0x77, 0xd8, 0x33, 0xee, 0x60, 0x1f, 0xbd, 0x2f, 0xe8, 0x88, 0x3f, 0xe8,
+ 0xc1, 0x08, 0xb8, 0x78, 0xcc, 0x19, 0x69, 0x10, 0xd2, 0x67, 0xca, 0xdc,
+ 0x5c, 0x05, 0x99, 0x4d,
+};
+static const unsigned char kat4000_nonce[] = {0};
+static const unsigned char kat4000_persstr[] = {
+ 0x94, 0x76, 0x17, 0xb4, 0x58, 0x22, 0xe2, 0xc0, 0x46, 0xf8, 0x01, 0x9b,
+ 0xcf, 0x10, 0xab, 0xf7, 0xed, 0xe1, 0xdb, 0x16, 0x16, 0x8f, 0x9b, 0x9d,
+ 0x47, 0x1e, 0x87, 0xb1, 0x5c, 0xe5, 0x39, 0xd8, 0x97, 0x37, 0x39, 0x61,
+ 0xc4, 0x95, 0x82, 0x90,
+};
+static const unsigned char kat4000_entropyinpr1[] = {
+ 0x89, 0x52, 0x45, 0x98, 0xb3, 0x52, 0xec, 0x3c, 0x3a, 0xf2, 0x2f, 0x66,
+ 0x85, 0x5f, 0xd5, 0x60, 0x71, 0x59, 0x88, 0xaa, 0x20, 0x4d, 0x7f, 0xfb,
+ 0x9d, 0xa0, 0x46, 0x3e, 0x02, 0xcc, 0xb3, 0x8d, 0xf4, 0x1a, 0x0b, 0x47,
+ 0x97, 0x2c, 0x0b, 0x73,
+};
+static const unsigned char kat4000_addinpr1[] = {0};
+static const unsigned char kat4000_entropyinpr2[] = {
+ 0x36, 0x87, 0x22, 0x50, 0xa5, 0x33, 0x70, 0x63, 0x09, 0x40, 0x18, 0xd8,
+ 0x4a, 0x8e, 0x2e, 0x40, 0x36, 0x6d, 0xad, 0x33, 0xbc, 0x29, 0xe3, 0x1d,
+ 0x23, 0xe2, 0x06, 0x40, 0x59, 0x96, 0x15, 0x6f, 0x84, 0x97, 0xd6, 0xe3,
+ 0x44, 0x9b, 0xf2, 0x91,
+};
+static const unsigned char kat4000_addinpr2[] = {0};
+static const unsigned char kat4000_retbits[] = {
+ 0xb9, 0x87, 0xc0, 0xa3, 0x81, 0x0d, 0x15, 0x37, 0x4f, 0x28, 0xb0, 0xec,
+ 0xd2, 0xbd, 0x77, 0x48, 0xbf, 0x33, 0x2f, 0x77, 0x11, 0xf5, 0xfc, 0x64,
+ 0x88, 0x97, 0x07, 0xfa, 0x19, 0x69, 0x3b, 0x13, 0xbb, 0xaf, 0xd5, 0x87,
+ 0x10, 0xbf, 0x9c, 0x3f, 0xd7, 0x90, 0x09, 0x37, 0x27, 0xb3, 0xe3, 0x42,
+ 0x1e, 0xe4, 0x32, 0xb7, 0x6a, 0x3a, 0x44, 0x3c, 0xe9, 0xa4, 0x3b, 0x8b,
+ 0xcb, 0xda, 0x0e, 0x09,
+};
+static const struct drbg_kat_pr_true kat4000_t = {
+ 9, kat4000_entropyin, kat4000_nonce, kat4000_persstr,
+ kat4000_entropyinpr1, kat4000_addinpr1, kat4000_entropyinpr2,
+ kat4000_addinpr2, kat4000_retbits
+};
+static const struct drbg_kat kat4000 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4000_t
+};
+
+static const unsigned char kat4001_entropyin[] = {
+ 0x6e, 0x6f, 0xac, 0xdb, 0x11, 0x66, 0x50, 0x7d, 0x45, 0xfb, 0xcd, 0xb0,
+ 0x4d, 0x97, 0xf4, 0xbb, 0xd7, 0x32, 0xae, 0x79, 0x6d, 0x57, 0x5e, 0x8b,
+ 0xb5, 0x4f, 0x41, 0x4a, 0x83, 0xd4, 0x24, 0x66, 0x76, 0x32, 0xc3, 0x80,
+ 0xb0, 0x85, 0xa3, 0x7d,
+};
+static const unsigned char kat4001_nonce[] = {0};
+static const unsigned char kat4001_persstr[] = {
+ 0x95, 0xfe, 0xf5, 0x67, 0x41, 0xae, 0x3a, 0xa0, 0x66, 0x39, 0xb2, 0xce,
+ 0xc2, 0xe7, 0xf5, 0xc3, 0x00, 0x66, 0xd6, 0x70, 0xef, 0x48, 0x05, 0x9b,
+ 0x55, 0xa4, 0xfb, 0xd8, 0xca, 0x77, 0x38, 0x25, 0xf4, 0xbd, 0x93, 0x4b,
+ 0x55, 0x6e, 0x34, 0xc0,
+};
+static const unsigned char kat4001_entropyinpr1[] = {
+ 0xf8, 0xc2, 0x52, 0xd7, 0x38, 0x5d, 0xe8, 0x7b, 0xdc, 0x42, 0xe2, 0xa0,
+ 0x97, 0x4d, 0x0e, 0xe9, 0x21, 0x4c, 0x55, 0x88, 0x4c, 0xa2, 0xd9, 0x88,
+ 0x53, 0x86, 0xe4, 0x72, 0x33, 0x81, 0x7b, 0x51, 0xa8, 0x43, 0xeb, 0x05,
+ 0xe5, 0x68, 0xac, 0x9b,
+};
+static const unsigned char kat4001_addinpr1[] = {0};
+static const unsigned char kat4001_entropyinpr2[] = {
+ 0x59, 0xf9, 0x90, 0xbd, 0x50, 0x7e, 0x99, 0xdc, 0xcf, 0x5b, 0xdf, 0x0e,
+ 0x36, 0xfc, 0xae, 0x29, 0x9f, 0x2e, 0xae, 0x55, 0xa6, 0xa8, 0x52, 0xdf,
+ 0x10, 0xd6, 0x01, 0xd2, 0x4f, 0x19, 0x32, 0x8d, 0x89, 0x1a, 0x6f, 0xd4,
+ 0x53, 0x97, 0x5b, 0xb8,
+};
+static const unsigned char kat4001_addinpr2[] = {0};
+static const unsigned char kat4001_retbits[] = {
+ 0xe7, 0x79, 0x41, 0xe4, 0xf7, 0x78, 0xd2, 0x56, 0xd5, 0x3a, 0xad, 0xd2,
+ 0x06, 0xe8, 0xe9, 0x97, 0xd0, 0xaa, 0xc4, 0x7b, 0x3a, 0xef, 0xaa, 0x9a,
+ 0xb8, 0xa5, 0x4b, 0x92, 0xee, 0x8d, 0xe3, 0x43, 0x61, 0xfa, 0xe3, 0x2d,
+ 0x41, 0x4f, 0xcf, 0x97, 0x20, 0x56, 0x1e, 0x95, 0xce, 0x03, 0x5d, 0xd7,
+ 0x74, 0xec, 0xd4, 0x0d, 0xe0, 0xcf, 0x4a, 0xc7, 0x53, 0x99, 0x09, 0xd6,
+ 0xb6, 0x0d, 0xd0, 0x65,
+};
+static const struct drbg_kat_pr_true kat4001_t = {
+ 10, kat4001_entropyin, kat4001_nonce, kat4001_persstr,
+ kat4001_entropyinpr1, kat4001_addinpr1, kat4001_entropyinpr2,
+ kat4001_addinpr2, kat4001_retbits
+};
+static const struct drbg_kat kat4001 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4001_t
+};
+
+static const unsigned char kat4002_entropyin[] = {
+ 0x60, 0x58, 0xb4, 0xcc, 0x4b, 0x1d, 0xa3, 0x12, 0x9b, 0x58, 0x09, 0xb5,
+ 0xd3, 0x3f, 0x2d, 0xa6, 0xfc, 0x3e, 0x55, 0x12, 0x14, 0x57, 0xa2, 0xd3,
+ 0x91, 0xb9, 0x18, 0xe7, 0xdd, 0x7d, 0x6a, 0x3a, 0x20, 0x6a, 0x31, 0xf3,
+ 0xe2, 0x6c, 0xbe, 0xc0,
+};
+static const unsigned char kat4002_nonce[] = {0};
+static const unsigned char kat4002_persstr[] = {
+ 0x53, 0x53, 0x05, 0x4c, 0xd0, 0x4b, 0x16, 0x5c, 0x6c, 0x5e, 0xb4, 0xef,
+ 0x06, 0x0c, 0xdf, 0x6c, 0x8d, 0x8d, 0xf6, 0xc4, 0x94, 0x27, 0x45, 0xe2,
+ 0x1e, 0xb3, 0x63, 0x66, 0xe8, 0xad, 0xcc, 0x58, 0xa4, 0x19, 0x5e, 0x83,
+ 0xa7, 0x71, 0x62, 0xa3,
+};
+static const unsigned char kat4002_entropyinpr1[] = {
+ 0xab, 0x0a, 0x9b, 0x1a, 0xcb, 0x12, 0x5e, 0x66, 0x41, 0x98, 0xf5, 0x88,
+ 0xd6, 0x3d, 0x23, 0x8a, 0x41, 0x2d, 0x22, 0x37, 0x1e, 0x98, 0xd7, 0xbc,
+ 0x1d, 0xd1, 0x50, 0x4a, 0x3d, 0x96, 0xdb, 0xe1, 0x96, 0xd8, 0xf5, 0x0c,
+ 0xfe, 0xbe, 0x86, 0xd9,
+};
+static const unsigned char kat4002_addinpr1[] = {0};
+static const unsigned char kat4002_entropyinpr2[] = {
+ 0x2e, 0x20, 0x47, 0xec, 0x98, 0xd6, 0x84, 0xbc, 0x21, 0x30, 0xf6, 0x22,
+ 0xb1, 0xd1, 0x31, 0x20, 0x3a, 0x87, 0x51, 0xe5, 0xbf, 0x57, 0xdf, 0x9b,
+ 0x58, 0x7f, 0x6c, 0x9a, 0x05, 0x66, 0x78, 0x99, 0x32, 0x94, 0x4b, 0xfc,
+ 0x48, 0x76, 0x0a, 0xfc,
+};
+static const unsigned char kat4002_addinpr2[] = {0};
+static const unsigned char kat4002_retbits[] = {
+ 0x70, 0x6c, 0x45, 0x57, 0x77, 0x49, 0xf2, 0x7d, 0x3d, 0x91, 0x50, 0xe7,
+ 0x4d, 0x7b, 0x5e, 0x50, 0x69, 0x95, 0x57, 0x40, 0xa9, 0x4c, 0x10, 0x17,
+ 0x17, 0xc4, 0xcf, 0x49, 0x7b, 0x0c, 0x4b, 0x99, 0x47, 0x76, 0x00, 0x5d,
+ 0x68, 0x0d, 0x8a, 0xf4, 0x19, 0xe8, 0xb1, 0x3b, 0x6c, 0x76, 0x65, 0x20,
+ 0xc4, 0xca, 0xc1, 0x77, 0xed, 0xf6, 0x66, 0xdb, 0x94, 0x49, 0x59, 0x3c,
+ 0x64, 0x6c, 0x0a, 0xd5,
+};
+static const struct drbg_kat_pr_true kat4002_t = {
+ 11, kat4002_entropyin, kat4002_nonce, kat4002_persstr,
+ kat4002_entropyinpr1, kat4002_addinpr1, kat4002_entropyinpr2,
+ kat4002_addinpr2, kat4002_retbits
+};
+static const struct drbg_kat kat4002 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4002_t
+};
+
+static const unsigned char kat4003_entropyin[] = {
+ 0xe2, 0xf0, 0x24, 0x05, 0x5d, 0x13, 0x73, 0x8b, 0x6c, 0x42, 0x03, 0xda,
+ 0xba, 0x88, 0xbf, 0x0f, 0x33, 0xbb, 0xb1, 0x60, 0xda, 0x31, 0x14, 0x19,
+ 0x4c, 0x31, 0xdf, 0x52, 0x94, 0xbe, 0xb1, 0x61, 0xb2, 0x0c, 0x2e, 0x7d,
+ 0xa7, 0x10, 0xf2, 0x62,
+};
+static const unsigned char kat4003_nonce[] = {0};
+static const unsigned char kat4003_persstr[] = {
+ 0x12, 0xda, 0x60, 0x9a, 0xdd, 0xda, 0xd5, 0x26, 0x86, 0xb2, 0x63, 0x2b,
+ 0x14, 0x3d, 0xe0, 0xed, 0xde, 0x8c, 0x94, 0xaf, 0xd7, 0xa1, 0x9b, 0x6f,
+ 0xed, 0x8d, 0x95, 0x1e, 0x89, 0x27, 0xfc, 0xaa, 0x06, 0x94, 0xd5, 0x16,
+ 0x52, 0xf0, 0xeb, 0x3b,
+};
+static const unsigned char kat4003_entropyinpr1[] = {
+ 0xc6, 0xdf, 0x50, 0x4c, 0x22, 0x69, 0xb9, 0x56, 0xdd, 0xcc, 0xd0, 0xf1,
+ 0xfa, 0x1d, 0xf0, 0x6c, 0xdb, 0x76, 0xcd, 0x9f, 0x76, 0x10, 0xf5, 0xa7,
+ 0x32, 0x71, 0x9a, 0x83, 0xda, 0x6e, 0xb5, 0x91, 0x07, 0xe5, 0x88, 0xe0,
+ 0xaa, 0xf4, 0x2b, 0x7f,
+};
+static const unsigned char kat4003_addinpr1[] = {0};
+static const unsigned char kat4003_entropyinpr2[] = {
+ 0x02, 0xf3, 0x52, 0x39, 0x88, 0x62, 0xd3, 0xe2, 0x35, 0xb0, 0x27, 0x3a,
+ 0xc2, 0xce, 0x08, 0x30, 0xdb, 0xf7, 0x8d, 0xd4, 0x1d, 0x62, 0x03, 0x26,
+ 0x94, 0x29, 0x15, 0x8c, 0x8c, 0xb0, 0x8c, 0xfc, 0xc0, 0xab, 0xc3, 0x2b,
+ 0xd9, 0xef, 0x5f, 0x2f,
+};
+static const unsigned char kat4003_addinpr2[] = {0};
+static const unsigned char kat4003_retbits[] = {
+ 0x31, 0xaf, 0x80, 0x82, 0x42, 0x6e, 0x0a, 0xa3, 0xa2, 0xe1, 0x40, 0x89,
+ 0xec, 0x83, 0xc3, 0xfa, 0x0a, 0xc2, 0xe9, 0x01, 0xc2, 0xf1, 0x97, 0x8e,
+ 0xae, 0x68, 0xa0, 0x2b, 0x75, 0x88, 0xb5, 0xce, 0x42, 0x4e, 0x41, 0x22,
+ 0xd0, 0x5b, 0x8f, 0x32, 0x54, 0xf0, 0x4a, 0xc6, 0x18, 0x2f, 0x8c, 0xcc,
+ 0x29, 0xfa, 0xa3, 0x29, 0x42, 0xc8, 0x48, 0x6b, 0xa3, 0x5e, 0x22, 0x5f,
+ 0xc3, 0xe0, 0xf3, 0x02,
+};
+static const struct drbg_kat_pr_true kat4003_t = {
+ 12, kat4003_entropyin, kat4003_nonce, kat4003_persstr,
+ kat4003_entropyinpr1, kat4003_addinpr1, kat4003_entropyinpr2,
+ kat4003_addinpr2, kat4003_retbits
+};
+static const struct drbg_kat kat4003 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4003_t
+};
+
+static const unsigned char kat4004_entropyin[] = {
+ 0xfb, 0xc1, 0xc9, 0x36, 0x2e, 0x9f, 0x8d, 0x01, 0xe3, 0xda, 0xad, 0xe1,
+ 0x1a, 0xfc, 0x85, 0x3e, 0xdf, 0xc8, 0x1e, 0x9f, 0x90, 0x86, 0x73, 0x16,
+ 0x98, 0x1f, 0x91, 0x6f, 0xab, 0x1e, 0x4d, 0x0f, 0x43, 0xc0, 0x20, 0x15,
+ 0x42, 0x00, 0x9e, 0x3d,
+};
+static const unsigned char kat4004_nonce[] = {0};
+static const unsigned char kat4004_persstr[] = {
+ 0x00, 0xa6, 0x55, 0x53, 0xb0, 0x30, 0xa9, 0x96, 0x98, 0xcd, 0x5f, 0x5b,
+ 0xc6, 0xf6, 0x25, 0x65, 0x82, 0x2d, 0xec, 0x15, 0x1d, 0xc6, 0x2b, 0x75,
+ 0x2c, 0xb3, 0xa5, 0x92, 0x96, 0x0d, 0x88, 0xd1, 0xf2, 0xe2, 0x80, 0x3e,
+ 0x69, 0xcb, 0xa5, 0x2c,
+};
+static const unsigned char kat4004_entropyinpr1[] = {
+ 0x14, 0x71, 0xad, 0x5a, 0xa1, 0xb5, 0x07, 0xfb, 0x62, 0xc8, 0x13, 0xad,
+ 0xb0, 0x56, 0xfe, 0xa3, 0xfe, 0x0c, 0x91, 0xb5, 0x64, 0xd2, 0x62, 0xeb,
+ 0x34, 0x81, 0xe3, 0x86, 0x79, 0x47, 0x0f, 0xc9, 0xf4, 0x26, 0x1b, 0xa9,
+ 0xca, 0x62, 0x11, 0xbb,
+};
+static const unsigned char kat4004_addinpr1[] = {0};
+static const unsigned char kat4004_entropyinpr2[] = {
+ 0xa9, 0x68, 0x6d, 0x7e, 0xa1, 0xc0, 0x60, 0xf9, 0xaa, 0xe9, 0xe6, 0x3a,
+ 0xb3, 0xd5, 0xa4, 0xbc, 0xfc, 0x4f, 0xc9, 0x5d, 0x20, 0xa8, 0x46, 0x5c,
+ 0x7a, 0x0a, 0x7f, 0x8e, 0x0f, 0x29, 0x97, 0xc4, 0xd3, 0x1a, 0xe7, 0x5d,
+ 0xbb, 0x05, 0xd9, 0x59,
+};
+static const unsigned char kat4004_addinpr2[] = {0};
+static const unsigned char kat4004_retbits[] = {
+ 0xf6, 0xaf, 0x5f, 0x00, 0x0c, 0xed, 0x2c, 0xff, 0xe1, 0xa0, 0x67, 0xf6,
+ 0x45, 0xe3, 0xf8, 0x2a, 0xc3, 0x89, 0x76, 0xd8, 0x6d, 0x39, 0x65, 0x01,
+ 0xc2, 0xe7, 0xa5, 0xb1, 0x0f, 0x43, 0x56, 0x8b, 0xae, 0x4c, 0x3f, 0x33,
+ 0x22, 0x5a, 0x78, 0x22, 0x8d, 0x81, 0x23, 0x65, 0x01, 0x0d, 0xbb, 0x41,
+ 0x6e, 0xb5, 0xab, 0xd6, 0xd3, 0x59, 0x0d, 0x7b, 0x59, 0xf4, 0x3d, 0xd9,
+ 0x30, 0x26, 0xf6, 0x8a,
+};
+static const struct drbg_kat_pr_true kat4004_t = {
+ 13, kat4004_entropyin, kat4004_nonce, kat4004_persstr,
+ kat4004_entropyinpr1, kat4004_addinpr1, kat4004_entropyinpr2,
+ kat4004_addinpr2, kat4004_retbits
+};
+static const struct drbg_kat kat4004 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4004_t
+};
+
+static const unsigned char kat4005_entropyin[] = {
+ 0xca, 0x5c, 0x86, 0x86, 0x0a, 0xa7, 0xcd, 0x91, 0x49, 0x51, 0xe1, 0x5c,
+ 0xf9, 0xf3, 0xeb, 0xdd, 0x21, 0x30, 0x21, 0x73, 0x14, 0x72, 0x8d, 0xed,
+ 0x85, 0x4a, 0xfb, 0xc6, 0x02, 0xd4, 0xb0, 0xaf, 0x9a, 0x5a, 0xb0, 0x00,
+ 0x97, 0x83, 0xc4, 0xdd,
+};
+static const unsigned char kat4005_nonce[] = {0};
+static const unsigned char kat4005_persstr[] = {
+ 0x7b, 0xfb, 0x36, 0x5d, 0x74, 0x9f, 0x31, 0x4d, 0x89, 0x5e, 0x6c, 0xcb,
+ 0xea, 0x67, 0xfd, 0x37, 0xc8, 0x6b, 0x58, 0x2d, 0x23, 0xd7, 0x9e, 0x3e,
+ 0x13, 0x16, 0x7b, 0xb8, 0xf9, 0x4f, 0x50, 0x9e, 0xae, 0x70, 0x89, 0xd9,
+ 0xe6, 0x08, 0x71, 0x71,
+};
+static const unsigned char kat4005_entropyinpr1[] = {
+ 0xb4, 0x59, 0xee, 0xb4, 0x04, 0xa1, 0x48, 0x0b, 0x64, 0xe7, 0xd5, 0x72,
+ 0xbc, 0xed, 0x36, 0x5b, 0xf8, 0x22, 0x87, 0x80, 0x85, 0x36, 0x3d, 0xaf,
+ 0x57, 0xe8, 0x94, 0xc2, 0x9e, 0xf8, 0xfb, 0x46, 0xd0, 0xa7, 0x9f, 0xef,
+ 0x47, 0x13, 0xd2, 0xaf,
+};
+static const unsigned char kat4005_addinpr1[] = {0};
+static const unsigned char kat4005_entropyinpr2[] = {
+ 0xa0, 0x57, 0x87, 0x1a, 0x39, 0x4e, 0x93, 0xe5, 0x8b, 0xa1, 0x91, 0xc2,
+ 0x39, 0xe2, 0x18, 0x58, 0xa3, 0x12, 0x7a, 0x6b, 0x74, 0x8a, 0x45, 0x05,
+ 0xed, 0xa4, 0x87, 0xdc, 0x6a, 0x52, 0x93, 0x30, 0x4a, 0xad, 0x36, 0xd5,
+ 0x2d, 0xa1, 0x32, 0xb6,
+};
+static const unsigned char kat4005_addinpr2[] = {0};
+static const unsigned char kat4005_retbits[] = {
+ 0x96, 0xb2, 0x4e, 0xf7, 0xb1, 0x93, 0x70, 0xcb, 0x3e, 0xc4, 0x0a, 0x47,
+ 0x63, 0xde, 0x92, 0x69, 0x77, 0xec, 0xbe, 0x6a, 0xf2, 0xfb, 0xa2, 0x01,
+ 0xe9, 0x83, 0xe7, 0xbb, 0xd7, 0x1b, 0x23, 0xfa, 0x95, 0xbd, 0x31, 0x59,
+ 0x33, 0xce, 0x2f, 0xb5, 0xa1, 0x0f, 0x4a, 0x12, 0x1c, 0xc5, 0x6b, 0x12,
+ 0x52, 0x33, 0xf0, 0x9f, 0xf9, 0x20, 0xcc, 0x38, 0x0d, 0xf7, 0xab, 0x55,
+ 0x13, 0x40, 0x34, 0x57,
+};
+static const struct drbg_kat_pr_true kat4005_t = {
+ 14, kat4005_entropyin, kat4005_nonce, kat4005_persstr,
+ kat4005_entropyinpr1, kat4005_addinpr1, kat4005_entropyinpr2,
+ kat4005_addinpr2, kat4005_retbits
+};
+static const struct drbg_kat kat4005 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4005_t
+};
+
+static const unsigned char kat4006_entropyin[] = {
+ 0xae, 0x61, 0x46, 0xcc, 0x41, 0x58, 0xe4, 0x3d, 0xd1, 0x14, 0x95, 0xa6,
+ 0xed, 0x62, 0xad, 0xd0, 0x04, 0x2f, 0x72, 0xc1, 0x5b, 0x8d, 0xdb, 0x26,
+ 0xb1, 0xf8, 0x59, 0x24, 0x9d, 0xed, 0xa2, 0x69, 0x4b, 0xdd, 0xb9, 0x5a,
+ 0x58, 0x52, 0x6b, 0xe3,
+};
+static const unsigned char kat4006_nonce[] = {0};
+static const unsigned char kat4006_persstr[] = {
+ 0x1c, 0xa5, 0x8d, 0xbe, 0xbb, 0x6f, 0x45, 0xb7, 0xbc, 0xbe, 0x01, 0x9a,
+ 0xa6, 0x60, 0x27, 0xbe, 0xbb, 0xe1, 0xb7, 0xf7, 0x2e, 0x46, 0xb0, 0xfd,
+ 0x95, 0x59, 0x63, 0xd0, 0xba, 0x3b, 0xa5, 0x75, 0xa6, 0xec, 0xb6, 0xce,
+ 0xe9, 0xb9, 0x1c, 0x55,
+};
+static const unsigned char kat4006_entropyinpr1[] = {
+ 0x7c, 0x24, 0x70, 0x3e, 0xe8, 0xd4, 0x54, 0x10, 0x58, 0xa4, 0x8a, 0xa6,
+ 0x67, 0xe1, 0xf8, 0xe0, 0x89, 0x5f, 0x51, 0x45, 0xa0, 0x70, 0x6b, 0xb7,
+ 0x5d, 0x98, 0x98, 0xf6, 0xdc, 0xe5, 0x82, 0x9e, 0x05, 0x40, 0x92, 0x52,
+ 0x5c, 0x4e, 0x62, 0xb3,
+};
+static const unsigned char kat4006_addinpr1[] = {
+ 0x06, 0x3d, 0xa9, 0x9d, 0xbe, 0x15, 0x70, 0x77, 0xa3, 0x95, 0x9a, 0x12,
+ 0xe1, 0x12, 0x3f, 0x96, 0x76, 0x72, 0x15, 0xd0, 0x55, 0xc7, 0xc4, 0xf6,
+ 0x16, 0x69, 0x1a, 0x8f, 0x98, 0xec, 0x2e, 0x28, 0xe5, 0x04, 0x52, 0x80,
+ 0x05, 0xa7, 0xdf, 0x45,
+};
+static const unsigned char kat4006_entropyinpr2[] = {
+ 0xc1, 0x3b, 0xd6, 0x87, 0x49, 0xd7, 0x7d, 0x35, 0xe8, 0xc9, 0x00, 0xa9,
+ 0x7a, 0x1d, 0x95, 0x4f, 0x6d, 0x7a, 0x96, 0x0b, 0xc4, 0x3c, 0xb2, 0xf7,
+ 0x8e, 0x5a, 0x24, 0x09, 0x5d, 0x4a, 0x42, 0x7c, 0xa7, 0x4d, 0x21, 0xc9,
+ 0xad, 0x97, 0x68, 0x51,
+};
+static const unsigned char kat4006_addinpr2[] = {
+ 0x19, 0x54, 0x61, 0xf3, 0x1e, 0xcb, 0xef, 0x6a, 0xee, 0x22, 0x79, 0xaf,
+ 0x4f, 0x86, 0xd6, 0xd8, 0xe7, 0xb7, 0x80, 0x10, 0x3b, 0xc7, 0x7a, 0xe6,
+ 0x09, 0xab, 0xa2, 0xdc, 0xa0, 0xdb, 0xa7, 0xe2, 0x22, 0x99, 0x30, 0x8b,
+ 0x10, 0x9a, 0xe2, 0xad,
+};
+static const unsigned char kat4006_retbits[] = {
+ 0x54, 0x9c, 0xd9, 0x20, 0x02, 0x42, 0xda, 0x73, 0x3a, 0xb4, 0xde, 0x01,
+ 0x8e, 0xa2, 0xde, 0x63, 0x8a, 0xe6, 0x7d, 0x87, 0x95, 0x39, 0xcb, 0x1d,
+ 0xef, 0x16, 0xf2, 0xb2, 0x74, 0x61, 0x88, 0x54, 0xfa, 0xf4, 0x21, 0x1d,
+ 0x92, 0x4f, 0xdc, 0x7a, 0x3b, 0x56, 0xa9, 0x87, 0x3a, 0x7b, 0x36, 0x8b,
+ 0x66, 0x7b, 0xb1, 0x34, 0x8c, 0x1b, 0x22, 0x49, 0x91, 0xa4, 0xc7, 0xe5,
+ 0xbe, 0x55, 0xc8, 0x0d,
+};
+static const struct drbg_kat_pr_true kat4006_t = {
+ 0, kat4006_entropyin, kat4006_nonce, kat4006_persstr,
+ kat4006_entropyinpr1, kat4006_addinpr1, kat4006_entropyinpr2,
+ kat4006_addinpr2, kat4006_retbits
+};
+static const struct drbg_kat kat4006 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4006_t
+};
+
+static const unsigned char kat4007_entropyin[] = {
+ 0x23, 0xb4, 0x32, 0xdb, 0xde, 0xc4, 0x3f, 0x7b, 0x00, 0x1d, 0xcb, 0xfb,
+ 0x05, 0xa8, 0xe5, 0xd8, 0xa4, 0xe3, 0x44, 0x69, 0x01, 0x32, 0xe0, 0xb2,
+ 0xb7, 0xef, 0x03, 0x62, 0x03, 0xaa, 0x70, 0x99, 0xc7, 0x3d, 0xcc, 0x39,
+ 0x86, 0xa2, 0x96, 0xc2,
+};
+static const unsigned char kat4007_nonce[] = {0};
+static const unsigned char kat4007_persstr[] = {
+ 0x7f, 0x75, 0x85, 0xd6, 0xe3, 0x77, 0x00, 0x8a, 0xe8, 0x52, 0x85, 0x05,
+ 0xbc, 0x66, 0x0a, 0x64, 0x66, 0x79, 0x8b, 0x48, 0x18, 0x68, 0x6d, 0x36,
+ 0x1a, 0x9a, 0x2b, 0xd7, 0xe2, 0x64, 0x9d, 0xdf, 0x46, 0xbc, 0xec, 0xdb,
+ 0x89, 0x42, 0x02, 0x1f,
+};
+static const unsigned char kat4007_entropyinpr1[] = {
+ 0x5b, 0x7d, 0xff, 0xf5, 0x27, 0xea, 0x21, 0xd6, 0xdc, 0xa7, 0x34, 0x34,
+ 0x7e, 0x01, 0xb7, 0xa4, 0x2f, 0xf0, 0x89, 0xac, 0x7b, 0xbc, 0x78, 0x19,
+ 0xec, 0x09, 0x6a, 0xde, 0x7f, 0xb5, 0xb7, 0x16, 0xd6, 0x76, 0x54, 0x89,
+ 0xb6, 0x39, 0x85, 0x3e,
+};
+static const unsigned char kat4007_addinpr1[] = {
+ 0xa2, 0xff, 0xc2, 0x2d, 0x8a, 0xd7, 0x8f, 0x63, 0x6b, 0x3b, 0xec, 0x24,
+ 0xb5, 0x9b, 0x48, 0x7c, 0x1c, 0xed, 0x6b, 0x54, 0x26, 0xce, 0xac, 0xc8,
+ 0x11, 0x96, 0x6c, 0x57, 0xbd, 0x4b, 0xd7, 0xe7, 0x0a, 0x72, 0x70, 0x62,
+ 0xe1, 0x34, 0x07, 0x75,
+};
+static const unsigned char kat4007_entropyinpr2[] = {
+ 0x15, 0x7e, 0x7b, 0x1c, 0x10, 0x50, 0xbc, 0x4b, 0x9d, 0xce, 0xba, 0xfa,
+ 0xb6, 0xb4, 0xf0, 0x35, 0x4d, 0x87, 0x2a, 0x3a, 0xb7, 0xf0, 0x08, 0xc7,
+ 0xfb, 0xda, 0x08, 0xad, 0x91, 0x94, 0x46, 0xd7, 0xb2, 0xc8, 0xc6, 0xd4,
+ 0xbf, 0x96, 0xd0, 0xf1,
+};
+static const unsigned char kat4007_addinpr2[] = {
+ 0x1c, 0xf7, 0x9d, 0x49, 0xe4, 0x0b, 0x5f, 0xc2, 0x2d, 0x0b, 0xbf, 0x50,
+ 0xa4, 0x41, 0x4a, 0xea, 0x49, 0x86, 0x48, 0xbe, 0x18, 0xd3, 0x8c, 0x06,
+ 0xd5, 0xbc, 0x2d, 0x77, 0x9a, 0xd1, 0x02, 0x41, 0xb3, 0xc6, 0x3d, 0x9d,
+ 0x2b, 0x68, 0xd3, 0x89,
+};
+static const unsigned char kat4007_retbits[] = {
+ 0x35, 0x3d, 0x83, 0x9b, 0xec, 0xd1, 0x59, 0x11, 0xee, 0xe7, 0x1b, 0x5f,
+ 0x64, 0xb1, 0x00, 0x17, 0x14, 0xde, 0x4b, 0x85, 0xfb, 0x85, 0x92, 0xd2,
+ 0xf3, 0x16, 0xd1, 0x27, 0x01, 0x6c, 0xa0, 0xa1, 0xf0, 0x36, 0x7d, 0x10,
+ 0x8e, 0x40, 0x5f, 0xf6, 0x85, 0xf3, 0x7c, 0x1a, 0xbe, 0x46, 0xd4, 0x67,
+ 0xa6, 0x04, 0xd8, 0x11, 0xe5, 0x83, 0x10, 0x6d, 0x63, 0xc8, 0x9d, 0x7e,
+ 0xfc, 0x9d, 0x1f, 0x9e,
+};
+static const struct drbg_kat_pr_true kat4007_t = {
+ 1, kat4007_entropyin, kat4007_nonce, kat4007_persstr,
+ kat4007_entropyinpr1, kat4007_addinpr1, kat4007_entropyinpr2,
+ kat4007_addinpr2, kat4007_retbits
+};
+static const struct drbg_kat kat4007 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4007_t
+};
+
+static const unsigned char kat4008_entropyin[] = {
+ 0x19, 0x85, 0x6e, 0xb8, 0x31, 0xe9, 0x3b, 0x84, 0xba, 0x15, 0x49, 0x6b,
+ 0xa8, 0xe9, 0xc4, 0x4c, 0x0d, 0xc2, 0xed, 0x07, 0x2d, 0x29, 0xfb, 0xbf,
+ 0x81, 0xc9, 0x86, 0x53, 0xf3, 0x7c, 0xc6, 0x99, 0xf4, 0xdd, 0xdd, 0x6c,
+ 0x68, 0x5d, 0x12, 0xf7,
+};
+static const unsigned char kat4008_nonce[] = {0};
+static const unsigned char kat4008_persstr[] = {
+ 0x8d, 0x76, 0x35, 0x82, 0x01, 0x1b, 0x59, 0x00, 0xab, 0xe6, 0x60, 0xc8,
+ 0xf8, 0x66, 0x69, 0xec, 0x48, 0xc2, 0xa7, 0x03, 0x32, 0x62, 0x32, 0xe3,
+ 0x4d, 0xe0, 0x46, 0x6e, 0xad, 0xa1, 0x2b, 0x45, 0x9a, 0x4c, 0x7a, 0x2d,
+ 0xae, 0x89, 0x89, 0x7b,
+};
+static const unsigned char kat4008_entropyinpr1[] = {
+ 0x05, 0x2b, 0x2e, 0x28, 0x8c, 0x4b, 0x0f, 0x94, 0xb1, 0xb8, 0x9e, 0xbc,
+ 0x99, 0x2b, 0x40, 0x0f, 0xd6, 0x44, 0x75, 0x9a, 0x16, 0x5b, 0x4c, 0x69,
+ 0x3e, 0xf9, 0x29, 0xe9, 0x97, 0x07, 0x60, 0xd2, 0x23, 0x52, 0x9b, 0xab,
+ 0x87, 0x97, 0xcf, 0x57,
+};
+static const unsigned char kat4008_addinpr1[] = {
+ 0x1b, 0xcc, 0x0c, 0x9b, 0xd3, 0x4f, 0xf4, 0x90, 0x68, 0xa1, 0x32, 0x8f,
+ 0xdd, 0xaa, 0xcf, 0x9a, 0x32, 0xb1, 0x66, 0x11, 0x44, 0x58, 0x78, 0x4b,
+ 0x71, 0xb3, 0x10, 0x08, 0x6f, 0x22, 0x92, 0x8f, 0x37, 0x41, 0x6f, 0xc0,
+ 0x60, 0x22, 0x5b, 0x17,
+};
+static const unsigned char kat4008_entropyinpr2[] = {
+ 0xfd, 0x33, 0xc6, 0xc1, 0x3d, 0xd6, 0xbc, 0xc0, 0x4b, 0xd7, 0xe2, 0x4c,
+ 0xd8, 0x02, 0xfc, 0xed, 0xfa, 0x5a, 0x0c, 0xca, 0x20, 0x7d, 0x9b, 0x50,
+ 0x91, 0x6a, 0x51, 0x2d, 0xc7, 0x44, 0xcd, 0x06, 0x5b, 0xb2, 0xbe, 0xfa,
+ 0xdf, 0x53, 0x96, 0x35,
+};
+static const unsigned char kat4008_addinpr2[] = {
+ 0xc0, 0xc6, 0xb1, 0x06, 0xea, 0xdf, 0xe5, 0xb0, 0x84, 0xa6, 0xba, 0x02,
+ 0xe9, 0x18, 0x9d, 0x77, 0x4f, 0x61, 0x61, 0xe8, 0xaf, 0x36, 0x66, 0xa2,
+ 0x12, 0xa0, 0x91, 0x28, 0xea, 0x83, 0x33, 0xf0, 0xed, 0x14, 0xef, 0x54,
+ 0x4e, 0x13, 0xc0, 0x3e,
+};
+static const unsigned char kat4008_retbits[] = {
+ 0x31, 0x0b, 0xa8, 0x34, 0xa4, 0x92, 0xa9, 0x7c, 0x27, 0x69, 0xfe, 0xe2,
+ 0x6a, 0x66, 0xa0, 0xb0, 0x4a, 0xe8, 0x60, 0x26, 0x3f, 0x1a, 0x75, 0xcd,
+ 0xd6, 0x1d, 0xb7, 0xf9, 0x70, 0x6f, 0x89, 0x2a, 0xe2, 0x43, 0xb3, 0xf8,
+ 0x6f, 0xef, 0x47, 0x50, 0x8d, 0xe9, 0x67, 0x0e, 0x78, 0xc2, 0x9f, 0x69,
+ 0x47, 0xb4, 0x93, 0xa5, 0x63, 0x86, 0xb0, 0xd5, 0x1f, 0x2a, 0x72, 0x9b,
+ 0x4d, 0xd2, 0x19, 0x4a,
+};
+static const struct drbg_kat_pr_true kat4008_t = {
+ 2, kat4008_entropyin, kat4008_nonce, kat4008_persstr,
+ kat4008_entropyinpr1, kat4008_addinpr1, kat4008_entropyinpr2,
+ kat4008_addinpr2, kat4008_retbits
+};
+static const struct drbg_kat kat4008 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4008_t
+};
+
+static const unsigned char kat4009_entropyin[] = {
+ 0x56, 0x06, 0x6f, 0x35, 0xd5, 0x29, 0xff, 0x27, 0x1a, 0xed, 0xe8, 0xb1,
+ 0x3c, 0x09, 0x7b, 0x02, 0xc3, 0xbb, 0x13, 0xc8, 0x4a, 0x04, 0x51, 0x8e,
+ 0xd3, 0xd6, 0xfb, 0xa4, 0xf0, 0xbf, 0x3a, 0x19, 0x6b, 0x37, 0x60, 0x9e,
+ 0x26, 0xb7, 0xaf, 0xa9,
+};
+static const unsigned char kat4009_nonce[] = {0};
+static const unsigned char kat4009_persstr[] = {
+ 0x76, 0xe8, 0xd8, 0xd7, 0x13, 0xed, 0x43, 0xa9, 0xa1, 0xdc, 0x12, 0xd4,
+ 0x6d, 0x70, 0x37, 0xb1, 0x3f, 0xa1, 0x62, 0x74, 0x37, 0x31, 0x83, 0x41,
+ 0xac, 0xb2, 0xb8, 0x3c, 0x8c, 0x8a, 0x0c, 0x0a, 0x32, 0x70, 0xeb, 0x9a,
+ 0xb3, 0x4b, 0x4c, 0x74,
+};
+static const unsigned char kat4009_entropyinpr1[] = {
+ 0x3f, 0x77, 0xa6, 0x62, 0x3d, 0x07, 0xc7, 0x50, 0x5a, 0x78, 0xec, 0x38,
+ 0xda, 0x6f, 0xea, 0x5f, 0x3d, 0x07, 0xe4, 0xfb, 0x95, 0xdd, 0x6d, 0x52,
+ 0xd9, 0x4c, 0x75, 0x0a, 0x4b, 0x85, 0x5f, 0x68, 0xec, 0xfb, 0x8a, 0x80,
+ 0xad, 0x42, 0x8a, 0xab,
+};
+static const unsigned char kat4009_addinpr1[] = {
+ 0x21, 0x01, 0x51, 0xe3, 0xd0, 0x6b, 0x0c, 0x68, 0xa2, 0xce, 0x6f, 0x09,
+ 0x12, 0x25, 0x33, 0xa9, 0x4f, 0x68, 0x46, 0xac, 0x7d, 0xa5, 0x9d, 0xcc,
+ 0x20, 0xf1, 0xdf, 0x22, 0xcc, 0xe0, 0x48, 0x55, 0xc1, 0xec, 0x71, 0xcd,
+ 0x33, 0xd7, 0x0c, 0xa6,
+};
+static const unsigned char kat4009_entropyinpr2[] = {
+ 0x0e, 0x2c, 0x68, 0x07, 0xce, 0x26, 0xb5, 0x68, 0xb9, 0xf0, 0xe5, 0xe2,
+ 0xdd, 0xb2, 0xcc, 0xbd, 0x4c, 0xc1, 0xc6, 0xbf, 0x97, 0x28, 0x0b, 0xd9,
+ 0xa9, 0x09, 0xea, 0x41, 0xcb, 0x5f, 0x63, 0x91, 0x14, 0x33, 0xb6, 0xac,
+ 0x9b, 0x0c, 0xbf, 0x6d,
+};
+static const unsigned char kat4009_addinpr2[] = {
+ 0x44, 0x23, 0x5f, 0x35, 0xc5, 0xa2, 0xaf, 0x16, 0xa0, 0x2d, 0x59, 0xe7,
+ 0xc3, 0x32, 0x30, 0x8b, 0x39, 0x17, 0x7e, 0x2a, 0x85, 0xe0, 0x34, 0x05,
+ 0x1b, 0x73, 0x20, 0x9b, 0x29, 0x42, 0xf1, 0xb2, 0x5b, 0xa3, 0x70, 0xb0,
+ 0x51, 0xbb, 0x12, 0xbf,
+};
+static const unsigned char kat4009_retbits[] = {
+ 0x6a, 0x1b, 0x46, 0xc3, 0x4f, 0x2e, 0xe8, 0xb0, 0xa6, 0x0a, 0x2b, 0x1f,
+ 0xc7, 0x7b, 0x05, 0x40, 0x01, 0x20, 0xc7, 0x83, 0x47, 0xc9, 0x35, 0x6e,
+ 0xcc, 0xbd, 0xf7, 0x3c, 0x97, 0xea, 0xe1, 0xea, 0xb7, 0x72, 0x06, 0xe2,
+ 0x35, 0xfb, 0xbe, 0x47, 0x22, 0x93, 0x7f, 0xbb, 0x78, 0x38, 0x7e, 0xd5,
+ 0x06, 0x02, 0xa8, 0x2f, 0x2d, 0x88, 0x0f, 0x6a, 0x01, 0x90, 0xd8, 0x46,
+ 0xe9, 0x8d, 0x65, 0xbe,
+};
+static const struct drbg_kat_pr_true kat4009_t = {
+ 3, kat4009_entropyin, kat4009_nonce, kat4009_persstr,
+ kat4009_entropyinpr1, kat4009_addinpr1, kat4009_entropyinpr2,
+ kat4009_addinpr2, kat4009_retbits
+};
+static const struct drbg_kat kat4009 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4009_t
+};
+
+static const unsigned char kat4010_entropyin[] = {
+ 0x33, 0xc8, 0x79, 0x5c, 0x0b, 0x61, 0xa0, 0x87, 0xc7, 0x60, 0x91, 0xb7,
+ 0x78, 0x71, 0x6a, 0xa7, 0x1a, 0x46, 0xde, 0x8e, 0x00, 0xcf, 0xbb, 0xe8,
+ 0xc6, 0x7f, 0xe3, 0xac, 0x76, 0xc8, 0x25, 0x82, 0x9e, 0x3a, 0x91, 0x03,
+ 0x0c, 0xfb, 0xd0, 0xfd,
+};
+static const unsigned char kat4010_nonce[] = {0};
+static const unsigned char kat4010_persstr[] = {
+ 0xf7, 0x6d, 0x80, 0x17, 0x28, 0x71, 0xf7, 0x49, 0x43, 0x84, 0x36, 0xd0,
+ 0x72, 0xfd, 0xa5, 0x06, 0x98, 0xda, 0x15, 0x1b, 0x71, 0x3f, 0xee, 0xfc,
+ 0x38, 0x59, 0x7a, 0x12, 0xd8, 0xb8, 0x1c, 0xa0, 0x09, 0xea, 0xf0, 0xa6,
+ 0xe9, 0xfd, 0xd0, 0xfd,
+};
+static const unsigned char kat4010_entropyinpr1[] = {
+ 0x5b, 0x45, 0x6b, 0x6b, 0xd9, 0x31, 0xb0, 0xa5, 0x7c, 0x1c, 0x6a, 0x96,
+ 0x8f, 0xf2, 0xa3, 0x98, 0xce, 0xba, 0xd4, 0xfb, 0x00, 0x29, 0x43, 0x31,
+ 0x52, 0x3f, 0xa7, 0x58, 0x99, 0x00, 0xcd, 0xb0, 0xb7, 0x7b, 0x4a, 0xfb,
+ 0x83, 0xc3, 0xfe, 0xb4,
+};
+static const unsigned char kat4010_addinpr1[] = {
+ 0x5d, 0x61, 0xf8, 0x2e, 0xee, 0x6f, 0x89, 0xfa, 0x57, 0xb3, 0x32, 0x66,
+ 0xda, 0xf6, 0x40, 0x3d, 0xbf, 0x6f, 0x86, 0xdc, 0xad, 0x92, 0x0e, 0xd9,
+ 0x64, 0x9d, 0x0c, 0x57, 0xf5, 0x9a, 0xef, 0xf3, 0xa1, 0x19, 0xb7, 0x64,
+ 0x05, 0xeb, 0x7f, 0xe9,
+};
+static const unsigned char kat4010_entropyinpr2[] = {
+ 0x08, 0xf3, 0xe9, 0x96, 0xa4, 0x71, 0x1a, 0xa2, 0x44, 0x4d, 0xcb, 0x05,
+ 0xf5, 0x0c, 0xd0, 0x6c, 0x6a, 0x8c, 0xa2, 0xcd, 0x2c, 0xec, 0x2a, 0xfb,
+ 0x44, 0x49, 0x16, 0x6e, 0x47, 0xcc, 0x9a, 0xf3, 0xae, 0xa2, 0xdd, 0xe0,
+ 0xa1, 0xf8, 0x51, 0x8d,
+};
+static const unsigned char kat4010_addinpr2[] = {
+ 0x12, 0x38, 0x98, 0x04, 0x05, 0x05, 0x5f, 0xf7, 0x07, 0x6c, 0x8e, 0x2f,
+ 0x2f, 0xc8, 0xf4, 0x16, 0xa6, 0x95, 0x55, 0x12, 0xe6, 0x12, 0xcb, 0xbe,
+ 0x7e, 0x7e, 0x46, 0x7a, 0x90, 0xab, 0xe9, 0x26, 0x1e, 0x6d, 0x0b, 0x5b,
+ 0xfe, 0x1e, 0x88, 0xa3,
+};
+static const unsigned char kat4010_retbits[] = {
+ 0xb0, 0xa2, 0x0a, 0x0e, 0x04, 0x48, 0x2a, 0xac, 0xff, 0xf5, 0xb3, 0x55,
+ 0x55, 0x28, 0x56, 0x06, 0x6b, 0x19, 0xbd, 0xd0, 0x4f, 0x9b, 0x37, 0xc6,
+ 0x99, 0x9a, 0x62, 0x3a, 0xbd, 0xfb, 0x34, 0x7f, 0x99, 0x03, 0x0c, 0xef,
+ 0xda, 0x9e, 0x6c, 0x3c, 0x90, 0x5a, 0x70, 0xbf, 0x6e, 0x0f, 0x29, 0x96,
+ 0xe7, 0xa3, 0x94, 0xde, 0x2c, 0xce, 0x1c, 0x95, 0xf1, 0x3f, 0x93, 0x5f,
+ 0xee, 0x2a, 0xdc, 0x99,
+};
+static const struct drbg_kat_pr_true kat4010_t = {
+ 4, kat4010_entropyin, kat4010_nonce, kat4010_persstr,
+ kat4010_entropyinpr1, kat4010_addinpr1, kat4010_entropyinpr2,
+ kat4010_addinpr2, kat4010_retbits
+};
+static const struct drbg_kat kat4010 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4010_t
+};
+
+static const unsigned char kat4011_entropyin[] = {
+ 0x30, 0xe2, 0x06, 0xb7, 0x48, 0xa9, 0x6d, 0xbf, 0x9a, 0xe0, 0xe1, 0xd8,
+ 0x8d, 0xc4, 0x56, 0xff, 0x95, 0xab, 0xe4, 0x56, 0xbb, 0xdf, 0x65, 0xba,
+ 0xb1, 0xea, 0x00, 0xc4, 0xc7, 0xe4, 0xf8, 0xad, 0xcf, 0x5e, 0x0a, 0x44,
+ 0x84, 0xb1, 0xa0, 0x92,
+};
+static const unsigned char kat4011_nonce[] = {0};
+static const unsigned char kat4011_persstr[] = {
+ 0x34, 0x3f, 0x74, 0x67, 0xea, 0x7b, 0x15, 0x6b, 0x6e, 0x82, 0x19, 0x32,
+ 0x24, 0xd5, 0xbb, 0xd5, 0x06, 0xf6, 0x7d, 0xbc, 0xa1, 0x94, 0x0e, 0x8d,
+ 0xe7, 0xac, 0x77, 0xe0, 0x28, 0x24, 0x23, 0xe5, 0x43, 0x90, 0x72, 0x3a,
+ 0xc4, 0x7b, 0x53, 0xc0,
+};
+static const unsigned char kat4011_entropyinpr1[] = {
+ 0x28, 0x7e, 0x92, 0xd2, 0x86, 0xd3, 0x9e, 0x12, 0xc8, 0x27, 0x32, 0x90,
+ 0x0b, 0x90, 0x29, 0x3f, 0x63, 0xc6, 0x3d, 0x1f, 0x5e, 0xee, 0x56, 0x23,
+ 0x74, 0xe5, 0xd3, 0x29, 0xcd, 0x69, 0x25, 0x3e, 0x2e, 0x83, 0x61, 0xd0,
+ 0xd2, 0xa0, 0x46, 0x24,
+};
+static const unsigned char kat4011_addinpr1[] = {
+ 0x1a, 0x08, 0xff, 0x30, 0xf8, 0x38, 0x64, 0x14, 0x6e, 0x73, 0xb4, 0x26,
+ 0x5f, 0xac, 0xae, 0x4d, 0x9f, 0x87, 0x20, 0x51, 0xcf, 0x11, 0x32, 0xfb,
+ 0x41, 0xcb, 0xc9, 0xb4, 0xf5, 0x80, 0xb1, 0xd8, 0x62, 0x3a, 0x8f, 0x14,
+ 0x6a, 0x5b, 0xc6, 0xd4,
+};
+static const unsigned char kat4011_entropyinpr2[] = {
+ 0xec, 0x38, 0x52, 0x88, 0x7e, 0x7c, 0x2a, 0xf9, 0x23, 0x76, 0x69, 0xef,
+ 0x24, 0x09, 0x9c, 0xa3, 0xf8, 0x65, 0xe6, 0x83, 0xfe, 0x6f, 0xcd, 0x05,
+ 0x95, 0xfd, 0x9a, 0x13, 0xbb, 0x43, 0x90, 0x5a, 0x05, 0x2b, 0x7e, 0xea,
+ 0x43, 0x62, 0x06, 0x4a,
+};
+static const unsigned char kat4011_addinpr2[] = {
+ 0x38, 0x7a, 0x41, 0xb5, 0xca, 0xb0, 0xc6, 0xac, 0x18, 0x2c, 0x5f, 0x13,
+ 0x76, 0xf1, 0x2e, 0xc2, 0xdb, 0xd8, 0x21, 0xf7, 0x04, 0x83, 0x42, 0x6c,
+ 0xa4, 0x80, 0x16, 0x27, 0x5b, 0xa9, 0x8d, 0x6f, 0x37, 0x00, 0xe8, 0xd8,
+ 0xcc, 0xc2, 0x03, 0xa6,
+};
+static const unsigned char kat4011_retbits[] = {
+ 0x97, 0xf5, 0x6a, 0xcc, 0x3f, 0xfa, 0x66, 0x3c, 0x3b, 0x5b, 0x34, 0x98,
+ 0xea, 0x3f, 0x78, 0x71, 0xaf, 0xf4, 0x64, 0x97, 0xdc, 0xa1, 0xd9, 0x3d,
+ 0x5b, 0x9f, 0xa3, 0x84, 0x5b, 0x91, 0xf0, 0x20, 0x13, 0xc2, 0x3e, 0x90,
+ 0x21, 0xf1, 0x65, 0xa2, 0x7d, 0x98, 0x51, 0x5f, 0x4c, 0xca, 0xc2, 0x3c,
+ 0x35, 0x45, 0x39, 0x6b, 0x59, 0x63, 0x80, 0x38, 0x86, 0xb0, 0x23, 0x5a,
+ 0x04, 0xa7, 0xc5, 0xed,
+};
+static const struct drbg_kat_pr_true kat4011_t = {
+ 5, kat4011_entropyin, kat4011_nonce, kat4011_persstr,
+ kat4011_entropyinpr1, kat4011_addinpr1, kat4011_entropyinpr2,
+ kat4011_addinpr2, kat4011_retbits
+};
+static const struct drbg_kat kat4011 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4011_t
+};
+
+static const unsigned char kat4012_entropyin[] = {
+ 0xac, 0x9e, 0x77, 0x8e, 0xbf, 0xde, 0x8c, 0x77, 0xe2, 0x8c, 0x32, 0x36,
+ 0xba, 0x1a, 0xdf, 0x00, 0x1e, 0x28, 0x05, 0x5c, 0x49, 0x6e, 0xe3, 0x8a,
+ 0xb6, 0x26, 0xd5, 0xaa, 0x94, 0xad, 0xa7, 0x20, 0xd7, 0x54, 0x6e, 0x62,
+ 0x66, 0x25, 0x42, 0x0a,
+};
+static const unsigned char kat4012_nonce[] = {0};
+static const unsigned char kat4012_persstr[] = {
+ 0xde, 0xa2, 0x68, 0x43, 0x8f, 0x4c, 0xc4, 0x7b, 0xe0, 0x05, 0x9c, 0x48,
+ 0x15, 0x3b, 0x90, 0x02, 0x25, 0xe3, 0xca, 0xa6, 0x0f, 0xc7, 0x68, 0x14,
+ 0xc0, 0x12, 0xa5, 0xc4, 0xf6, 0x62, 0xca, 0x9c, 0xc6, 0xa4, 0x74, 0xef,
+ 0x6f, 0xc9, 0xbb, 0x5d,
+};
+static const unsigned char kat4012_entropyinpr1[] = {
+ 0xd4, 0xb1, 0x77, 0x5c, 0xa5, 0x17, 0x4e, 0xe2, 0xe3, 0x31, 0xef, 0x09,
+ 0x68, 0xac, 0xd2, 0x06, 0xe8, 0xe1, 0x61, 0x9c, 0xf2, 0x21, 0x34, 0xfb,
+ 0x5f, 0x64, 0x12, 0x98, 0x4a, 0xe8, 0x84, 0xcf, 0x66, 0xe2, 0xd7, 0x99,
+ 0x94, 0xd3, 0xd4, 0x1a,
+};
+static const unsigned char kat4012_addinpr1[] = {
+ 0x8c, 0xdc, 0x1b, 0x9d, 0xe0, 0xee, 0xb9, 0x8e, 0x4d, 0x0c, 0x90, 0x1f,
+ 0xa2, 0x56, 0x0a, 0xc2, 0xc9, 0xb8, 0x29, 0x05, 0x52, 0x60, 0xc8, 0x6c,
+ 0xc4, 0x3d, 0x42, 0x14, 0x41, 0x20, 0x85, 0x55, 0x84, 0xd5, 0x68, 0x93,
+ 0x81, 0xe0, 0x99, 0x7a,
+};
+static const unsigned char kat4012_entropyinpr2[] = {
+ 0x14, 0x48, 0x4e, 0x90, 0xe7, 0x09, 0x69, 0xd1, 0xb0, 0x95, 0x0d, 0x41,
+ 0x58, 0x45, 0x29, 0x1c, 0x91, 0x2c, 0x86, 0x19, 0x4c, 0x87, 0x59, 0x4d,
+ 0xd3, 0x79, 0x7f, 0x8c, 0x7a, 0x29, 0xf9, 0x43, 0x88, 0xdf, 0xd9, 0x1c,
+ 0x44, 0xc8, 0x26, 0x17,
+};
+static const unsigned char kat4012_addinpr2[] = {
+ 0xb1, 0x7d, 0x75, 0x28, 0x07, 0x5a, 0x21, 0x31, 0x41, 0x39, 0x16, 0x15,
+ 0xab, 0x9a, 0x43, 0x4b, 0x77, 0xe7, 0x48, 0x28, 0x6f, 0x2d, 0x36, 0x44,
+ 0x8e, 0x3e, 0x37, 0xe6, 0xbf, 0x42, 0xd0, 0x5d, 0x61, 0x9f, 0x57, 0x73,
+ 0x75, 0x6a, 0x03, 0x14,
+};
+static const unsigned char kat4012_retbits[] = {
+ 0x4a, 0x29, 0x56, 0x7b, 0x43, 0x73, 0x1e, 0x54, 0x1b, 0xde, 0x37, 0xd9,
+ 0x6c, 0xd5, 0x24, 0x45, 0x82, 0xa7, 0xc3, 0x72, 0xc9, 0x16, 0x3b, 0x94,
+ 0x38, 0x1d, 0x42, 0x7f, 0x0e, 0x8e, 0x66, 0xb4, 0xce, 0xa5, 0x3f, 0xea,
+ 0x2d, 0xe6, 0x74, 0x50, 0xe3, 0x59, 0x5d, 0x51, 0x1e, 0xee, 0xc0, 0xe5,
+ 0x92, 0x00, 0x92, 0x31, 0x69, 0xbe, 0x45, 0x83, 0x9b, 0x42, 0x34, 0x8b,
+ 0x34, 0x55, 0x1c, 0x1c,
+};
+static const struct drbg_kat_pr_true kat4012_t = {
+ 6, kat4012_entropyin, kat4012_nonce, kat4012_persstr,
+ kat4012_entropyinpr1, kat4012_addinpr1, kat4012_entropyinpr2,
+ kat4012_addinpr2, kat4012_retbits
+};
+static const struct drbg_kat kat4012 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4012_t
+};
+
+static const unsigned char kat4013_entropyin[] = {
+ 0x08, 0xf3, 0xec, 0x3f, 0x8c, 0xd4, 0xbc, 0xcf, 0x69, 0x45, 0xb8, 0x8b,
+ 0xbd, 0x2f, 0xb2, 0x3f, 0xfc, 0xcd, 0x7f, 0x9e, 0x96, 0x88, 0xef, 0x6f,
+ 0xe3, 0xfb, 0x82, 0x92, 0x7a, 0xac, 0xb7, 0x23, 0x0c, 0x60, 0xbd, 0x4e,
+ 0x8b, 0x13, 0xb2, 0xc9,
+};
+static const unsigned char kat4013_nonce[] = {0};
+static const unsigned char kat4013_persstr[] = {
+ 0xa6, 0x4b, 0x0a, 0x67, 0x1d, 0x12, 0xe5, 0xc0, 0x1b, 0x98, 0x32, 0x1a,
+ 0x76, 0x43, 0x00, 0x04, 0xc1, 0x34, 0x61, 0x6d, 0x09, 0xcc, 0x8f, 0xa3,
+ 0x93, 0xf7, 0xf5, 0xdc, 0xe2, 0x75, 0xfc, 0x96, 0xcd, 0x85, 0x0f, 0x8a,
+ 0x16, 0x62, 0x7f, 0xfc,
+};
+static const unsigned char kat4013_entropyinpr1[] = {
+ 0x22, 0x9a, 0x7a, 0xcd, 0xda, 0x3d, 0x73, 0xe8, 0x7e, 0x98, 0x58, 0x53,
+ 0x7b, 0xc0, 0x2a, 0x53, 0x7d, 0x91, 0xf1, 0x10, 0xac, 0x3a, 0xa7, 0xf4,
+ 0x63, 0x9f, 0xcc, 0x6e, 0xa0, 0x62, 0xee, 0xd8, 0xee, 0xf7, 0x28, 0x9f,
+ 0x7f, 0x08, 0x57, 0x44,
+};
+static const unsigned char kat4013_addinpr1[] = {
+ 0xed, 0x48, 0xa1, 0xd6, 0x40, 0xf6, 0x82, 0xbf, 0xcc, 0x92, 0xd2, 0x15,
+ 0x87, 0x9f, 0x59, 0xaf, 0x71, 0x53, 0x81, 0x58, 0x59, 0x25, 0xfe, 0xc5,
+ 0xf1, 0x0e, 0x98, 0xf6, 0xb7, 0x97, 0x47, 0xde, 0x72, 0xf2, 0xfc, 0x22,
+ 0xaa, 0x0e, 0xc0, 0xa1,
+};
+static const unsigned char kat4013_entropyinpr2[] = {
+ 0x16, 0x64, 0x63, 0x98, 0xa5, 0x3f, 0x07, 0x60, 0x72, 0xbc, 0xa5, 0x18,
+ 0x25, 0x2b, 0x9c, 0x0b, 0xb7, 0xe8, 0x7d, 0xac, 0xd3, 0xf8, 0x76, 0x9c,
+ 0xf5, 0x33, 0x7b, 0x46, 0xc3, 0x29, 0x48, 0x1d, 0xd0, 0x58, 0x81, 0x9a,
+ 0xbe, 0x3f, 0x43, 0x1a,
+};
+static const unsigned char kat4013_addinpr2[] = {
+ 0x2e, 0xa1, 0xec, 0x94, 0xf0, 0x83, 0xd6, 0xb5, 0x3c, 0x43, 0xf2, 0xc1,
+ 0xf0, 0xd8, 0xad, 0x84, 0xf9, 0x81, 0x46, 0x76, 0x88, 0x66, 0x05, 0x61,
+ 0xc7, 0xe1, 0xca, 0x5e, 0x8a, 0x9a, 0x11, 0x3d, 0x5c, 0xf3, 0x6d, 0x03,
+ 0x09, 0x69, 0x0d, 0x0e,
+};
+static const unsigned char kat4013_retbits[] = {
+ 0xc3, 0xcd, 0x7a, 0x06, 0xa9, 0x75, 0x92, 0xe8, 0xff, 0x53, 0x02, 0x7d,
+ 0x9f, 0x86, 0xc0, 0x22, 0xd4, 0xa9, 0x60, 0xe8, 0x58, 0x39, 0x74, 0x8f,
+ 0x84, 0xe5, 0x1b, 0x06, 0xbf, 0x48, 0x4f, 0x75, 0x3f, 0xeb, 0x92, 0x50,
+ 0x22, 0x47, 0x29, 0x76, 0x41, 0x00, 0x63, 0x50, 0x55, 0x70, 0xec, 0xc3,
+ 0x0d, 0xa0, 0x58, 0xee, 0x8d, 0xb0, 0x4e, 0x04, 0x30, 0x30, 0x1b, 0xfb,
+ 0x4a, 0xdf, 0xd3, 0xc7,
+};
+static const struct drbg_kat_pr_true kat4013_t = {
+ 7, kat4013_entropyin, kat4013_nonce, kat4013_persstr,
+ kat4013_entropyinpr1, kat4013_addinpr1, kat4013_entropyinpr2,
+ kat4013_addinpr2, kat4013_retbits
+};
+static const struct drbg_kat kat4013 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4013_t
+};
+
+static const unsigned char kat4014_entropyin[] = {
+ 0x4a, 0x79, 0xc5, 0x8b, 0x2d, 0x7b, 0x22, 0x33, 0x9f, 0x65, 0x6c, 0xe1,
+ 0x40, 0x0e, 0x94, 0x21, 0xc6, 0x75, 0x43, 0xec, 0xa1, 0x87, 0x7e, 0x1f,
+ 0x14, 0xf1, 0xbe, 0xc3, 0x92, 0xeb, 0x5f, 0xef, 0xbc, 0x61, 0x22, 0x9d,
+ 0x20, 0x42, 0x27, 0x2c,
+};
+static const unsigned char kat4014_nonce[] = {0};
+static const unsigned char kat4014_persstr[] = {
+ 0x7e, 0x3d, 0x63, 0xc1, 0x24, 0xfe, 0x87, 0x9a, 0xd7, 0x96, 0x3b, 0xc3,
+ 0x12, 0x97, 0x88, 0x34, 0x25, 0xdc, 0xcc, 0x4d, 0x9e, 0xb1, 0x93, 0x96,
+ 0x3f, 0x8a, 0x62, 0x0b, 0xf6, 0xe7, 0x6d, 0xaa, 0x9e, 0xc4, 0x9a, 0x95,
+ 0xe2, 0xfa, 0x36, 0xfc,
+};
+static const unsigned char kat4014_entropyinpr1[] = {
+ 0x63, 0x08, 0x18, 0x1a, 0x4f, 0xf2, 0x5a, 0xa7, 0xb6, 0x9b, 0x89, 0x29,
+ 0xf6, 0xb4, 0x9a, 0x84, 0x43, 0x9a, 0x1a, 0x4b, 0x61, 0x59, 0xc7, 0x14,
+ 0xf6, 0x1f, 0x02, 0x60, 0xea, 0x89, 0xa4, 0x20, 0x79, 0x3b, 0x16, 0x31,
+ 0xe5, 0x87, 0xf8, 0x68,
+};
+static const unsigned char kat4014_addinpr1[] = {
+ 0xd1, 0xcd, 0x93, 0xbb, 0xa9, 0x90, 0x78, 0x4e, 0x16, 0xae, 0x61, 0xdb,
+ 0x9d, 0xf5, 0x23, 0xce, 0xe5, 0x2f, 0xde, 0xf2, 0x63, 0xbe, 0x74, 0x7b,
+ 0x01, 0x48, 0xb3, 0x8f, 0x7c, 0x10, 0x56, 0xcc, 0x60, 0x10, 0xd6, 0x07,
+ 0x8d, 0x4a, 0x2d, 0xf6,
+};
+static const unsigned char kat4014_entropyinpr2[] = {
+ 0xdb, 0x4d, 0xa3, 0xb1, 0x20, 0x60, 0x11, 0xec, 0x36, 0x39, 0x18, 0x0f,
+ 0x83, 0xee, 0xf9, 0x3b, 0xc1, 0x68, 0xfd, 0xfc, 0x6c, 0x0c, 0x2a, 0xef,
+ 0x2d, 0xbd, 0x3e, 0xa2, 0x3e, 0x7a, 0x19, 0xb1, 0x59, 0xe5, 0x82, 0xd4,
+ 0xe0, 0xea, 0x7e, 0xde,
+};
+static const unsigned char kat4014_addinpr2[] = {
+ 0x16, 0x26, 0x7d, 0x85, 0x22, 0x68, 0x0f, 0x54, 0x7a, 0x6c, 0x54, 0x50,
+ 0x63, 0x8c, 0x37, 0x3f, 0x71, 0x60, 0x20, 0x6e, 0xdb, 0xb3, 0x67, 0xf7,
+ 0x9f, 0x14, 0xb0, 0x16, 0x0e, 0xa6, 0x42, 0xe1, 0x51, 0x91, 0x57, 0x17,
+ 0x62, 0x55, 0xba, 0x0c,
+};
+static const unsigned char kat4014_retbits[] = {
+ 0xa6, 0x61, 0x91, 0x31, 0xab, 0xbe, 0x25, 0xfe, 0x40, 0x56, 0x74, 0x0a,
+ 0x52, 0x03, 0x21, 0xfa, 0x1e, 0x5e, 0x9b, 0xc6, 0x61, 0xba, 0x2b, 0x52,
+ 0xce, 0xa1, 0xeb, 0x36, 0x82, 0x86, 0x18, 0xa9, 0x49, 0x79, 0x6a, 0xf2,
+ 0xf1, 0xf9, 0x1e, 0xa3, 0xa0, 0xfd, 0x8e, 0x76, 0xa5, 0x21, 0x20, 0x1b,
+ 0x5d, 0xab, 0x55, 0x74, 0xdf, 0xcb, 0x8d, 0x35, 0x14, 0x34, 0xff, 0xca,
+ 0xe1, 0x83, 0x02, 0x1e,
+};
+static const struct drbg_kat_pr_true kat4014_t = {
+ 8, kat4014_entropyin, kat4014_nonce, kat4014_persstr,
+ kat4014_entropyinpr1, kat4014_addinpr1, kat4014_entropyinpr2,
+ kat4014_addinpr2, kat4014_retbits
+};
+static const struct drbg_kat kat4014 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4014_t
+};
+
+static const unsigned char kat4015_entropyin[] = {
+ 0x1a, 0xc8, 0x0c, 0x4d, 0xa7, 0x66, 0x72, 0x28, 0xc9, 0xd2, 0x4f, 0x95,
+ 0xec, 0xd9, 0xf5, 0x41, 0xa0, 0x07, 0xd6, 0x3f, 0xe9, 0xb0, 0x33, 0x96,
+ 0x5d, 0x3b, 0x7b, 0x2c, 0x54, 0x53, 0x4e, 0x5d, 0xcb, 0xe3, 0x72, 0x46,
+ 0x09, 0xd9, 0xec, 0xd5,
+};
+static const unsigned char kat4015_nonce[] = {0};
+static const unsigned char kat4015_persstr[] = {
+ 0xf9, 0x64, 0x7f, 0x7c, 0x01, 0x0a, 0x65, 0x64, 0x9e, 0xe1, 0x9a, 0xcb,
+ 0x40, 0x4b, 0x0d, 0x8b, 0xbb, 0xa1, 0x5b, 0x2b, 0x7e, 0x26, 0xd2, 0xaa,
+ 0xdd, 0x44, 0x8b, 0x57, 0x5c, 0xc7, 0xb3, 0xdd, 0x3e, 0x79, 0x68, 0xac,
+ 0xc1, 0xe1, 0x1d, 0xe1,
+};
+static const unsigned char kat4015_entropyinpr1[] = {
+ 0x35, 0xaf, 0x0b, 0xac, 0x76, 0xca, 0x9a, 0x0f, 0xf0, 0x73, 0xee, 0x37,
+ 0x36, 0x87, 0xac, 0xfd, 0x04, 0xf4, 0x64, 0x22, 0x57, 0x2a, 0xf3, 0x22,
+ 0xe9, 0x32, 0x04, 0x58, 0xf7, 0x62, 0xc1, 0xa0, 0xf7, 0xe4, 0xda, 0xab,
+ 0xca, 0xb9, 0xf3, 0x07,
+};
+static const unsigned char kat4015_addinpr1[] = {
+ 0x7d, 0x74, 0x21, 0xac, 0xa6, 0xaf, 0x7d, 0x05, 0xa4, 0x5d, 0x50, 0x64,
+ 0x46, 0xca, 0xbe, 0xc1, 0xe9, 0x5c, 0x88, 0x6c, 0x1a, 0x5b, 0xd4, 0x85,
+ 0xea, 0xba, 0x42, 0x76, 0x8c, 0x2d, 0x1e, 0xb5, 0x1b, 0x34, 0x55, 0x3f,
+ 0x62, 0x83, 0x07, 0x0a,
+};
+static const unsigned char kat4015_entropyinpr2[] = {
+ 0x52, 0xba, 0x71, 0x2a, 0xed, 0xe6, 0x56, 0x17, 0x25, 0xed, 0x8c, 0xf0,
+ 0xef, 0xaa, 0x2f, 0x0a, 0xf2, 0xa1, 0x7b, 0x38, 0x23, 0xd2, 0x21, 0x99,
+ 0x71, 0xaa, 0x6d, 0x17, 0x57, 0xfe, 0x22, 0x6a, 0xc4, 0x8c, 0xff, 0xdb,
+ 0xba, 0x73, 0xe7, 0x54,
+};
+static const unsigned char kat4015_addinpr2[] = {
+ 0x46, 0x83, 0x52, 0x4c, 0xc5, 0xf9, 0x8a, 0xef, 0x69, 0xb3, 0xd2, 0x0d,
+ 0x4e, 0x67, 0x5b, 0x54, 0x5b, 0xf0, 0x07, 0x7c, 0x4e, 0x29, 0x37, 0xf3,
+ 0xd3, 0xbd, 0xde, 0xf9, 0x63, 0xd8, 0xa9, 0x8e, 0xca, 0x32, 0xf7, 0x55,
+ 0x6e, 0x39, 0x48, 0xd6,
+};
+static const unsigned char kat4015_retbits[] = {
+ 0xe9, 0x97, 0x3b, 0xa7, 0x86, 0xfc, 0xcc, 0xeb, 0x33, 0x17, 0x5f, 0xb9,
+ 0xd7, 0x8f, 0xd9, 0xdd, 0x57, 0x9a, 0x13, 0x9e, 0x3a, 0x60, 0x56, 0xaa,
+ 0xac, 0xb1, 0x67, 0xe2, 0x71, 0xc2, 0x47, 0x64, 0xc5, 0x14, 0x39, 0xd7,
+ 0x14, 0x02, 0xe0, 0xe1, 0x40, 0x88, 0x9c, 0x62, 0x1b, 0xc0, 0xab, 0x78,
+ 0xfb, 0xe9, 0x71, 0xfb, 0x59, 0x60, 0xe4, 0xcb, 0x24, 0xab, 0x15, 0x18,
+ 0x96, 0xf6, 0x6e, 0x86,
+};
+static const struct drbg_kat_pr_true kat4015_t = {
+ 9, kat4015_entropyin, kat4015_nonce, kat4015_persstr,
+ kat4015_entropyinpr1, kat4015_addinpr1, kat4015_entropyinpr2,
+ kat4015_addinpr2, kat4015_retbits
+};
+static const struct drbg_kat kat4015 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4015_t
+};
+
+static const unsigned char kat4016_entropyin[] = {
+ 0x68, 0x7c, 0xfa, 0x38, 0x38, 0xc0, 0xc2, 0x84, 0x3d, 0x48, 0x78, 0xcb,
+ 0xec, 0x88, 0xe1, 0xfd, 0x12, 0x07, 0x10, 0xe7, 0x74, 0xfc, 0x85, 0xc9,
+ 0x22, 0x1c, 0x28, 0x98, 0x68, 0x95, 0x5b, 0xaf, 0x2a, 0x26, 0xe5, 0x33,
+ 0xe8, 0xf2, 0xef, 0x6c,
+};
+static const unsigned char kat4016_nonce[] = {0};
+static const unsigned char kat4016_persstr[] = {
+ 0xa5, 0x8d, 0x1c, 0x01, 0xc2, 0xe3, 0xeb, 0xe0, 0xfb, 0xd3, 0x28, 0xa7,
+ 0xae, 0x1f, 0x0c, 0x80, 0x2d, 0xde, 0x30, 0xf6, 0xdc, 0x7b, 0x72, 0xc3,
+ 0xe3, 0xa0, 0x25, 0x6b, 0x22, 0xfc, 0xdf, 0x2d, 0x9c, 0x52, 0xa0, 0x53,
+ 0xe8, 0x8e, 0xa1, 0x86,
+};
+static const unsigned char kat4016_entropyinpr1[] = {
+ 0xf9, 0x12, 0xa6, 0x4d, 0x53, 0x2a, 0x34, 0xb3, 0x19, 0x1c, 0x92, 0x58,
+ 0x82, 0x92, 0xfc, 0xd3, 0xda, 0xc1, 0x38, 0xce, 0x2b, 0xcf, 0xc5, 0x9e,
+ 0xfa, 0x37, 0xb2, 0x08, 0x93, 0xcf, 0x04, 0x41, 0xa4, 0x3a, 0x11, 0x30,
+ 0x88, 0x5c, 0x83, 0x43,
+};
+static const unsigned char kat4016_addinpr1[] = {
+ 0x02, 0x51, 0x1b, 0xb4, 0xad, 0x0b, 0x4e, 0x5a, 0xe1, 0xfb, 0x4b, 0x06,
+ 0x19, 0x84, 0xce, 0xd6, 0x95, 0xaf, 0x0f, 0x1a, 0x63, 0x91, 0x28, 0x9f,
+ 0x0c, 0x3e, 0x1d, 0x42, 0x73, 0xf3, 0xa6, 0x93, 0x8a, 0x04, 0x5f, 0x63,
+ 0x1b, 0x41, 0xe9, 0x30,
+};
+static const unsigned char kat4016_entropyinpr2[] = {
+ 0xdf, 0xee, 0x0f, 0x75, 0x1e, 0x0b, 0xb0, 0x60, 0x62, 0x0a, 0xdd, 0x45,
+ 0xb2, 0xe9, 0x1f, 0x41, 0xb5, 0x93, 0x9f, 0x55, 0x71, 0xfb, 0x90, 0x92,
+ 0xef, 0x96, 0x8d, 0x8a, 0xe3, 0x98, 0xb9, 0x70, 0x89, 0xb0, 0xad, 0x08,
+ 0xd5, 0xd1, 0x64, 0x52,
+};
+static const unsigned char kat4016_addinpr2[] = {
+ 0x96, 0x8a, 0xaf, 0x5a, 0x57, 0x58, 0x01, 0x91, 0x35, 0x99, 0x4f, 0x9c,
+ 0x58, 0x20, 0x31, 0xbd, 0xac, 0x6b, 0xb9, 0xe5, 0xc4, 0x21, 0x0a, 0x2c,
+ 0x8d, 0x65, 0xcd, 0x1c, 0xab, 0xe7, 0xd3, 0x10, 0xe1, 0xfa, 0x68, 0xcb,
+ 0x5e, 0xec, 0x3a, 0xdc,
+};
+static const unsigned char kat4016_retbits[] = {
+ 0x1c, 0x16, 0xed, 0xd7, 0xf3, 0x30, 0x80, 0x43, 0xdf, 0x44, 0x95, 0x92,
+ 0x73, 0xe7, 0xfd, 0x42, 0x15, 0xbd, 0x3a, 0xd8, 0x59, 0x94, 0xbc, 0xc2,
+ 0x41, 0x9f, 0xe6, 0xff, 0x8f, 0x4b, 0x1c, 0x6b, 0xca, 0xd8, 0x57, 0xe5,
+ 0xf3, 0x6a, 0xc3, 0x53, 0xef, 0xb5, 0x2b, 0x57, 0xd1, 0x9d, 0x2a, 0x6f,
+ 0xf8, 0xc4, 0x15, 0x64, 0xef, 0xbe, 0x67, 0x04, 0xc8, 0xe0, 0x83, 0x8b,
+ 0x90, 0x37, 0x49, 0x8c,
+};
+static const struct drbg_kat_pr_true kat4016_t = {
+ 10, kat4016_entropyin, kat4016_nonce, kat4016_persstr,
+ kat4016_entropyinpr1, kat4016_addinpr1, kat4016_entropyinpr2,
+ kat4016_addinpr2, kat4016_retbits
+};
+static const struct drbg_kat kat4016 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4016_t
+};
+
+static const unsigned char kat4017_entropyin[] = {
+ 0xbc, 0xee, 0x68, 0x2c, 0x54, 0xa0, 0xbe, 0xf1, 0xa1, 0x4f, 0x86, 0xea,
+ 0x88, 0xab, 0xb0, 0xa4, 0x7f, 0xf6, 0x33, 0x60, 0x84, 0x17, 0x0c, 0xb1,
+ 0x6f, 0xe7, 0x54, 0xec, 0xbc, 0xc9, 0x3a, 0x52, 0x73, 0xbd, 0x20, 0xe2,
+ 0x58, 0x67, 0x70, 0x9d,
+};
+static const unsigned char kat4017_nonce[] = {0};
+static const unsigned char kat4017_persstr[] = {
+ 0x49, 0x04, 0x2e, 0xb9, 0x83, 0x89, 0x98, 0xac, 0x20, 0x23, 0xaf, 0x8c,
+ 0xeb, 0x55, 0x39, 0xf2, 0x0c, 0x00, 0xaa, 0x17, 0x98, 0xc9, 0x06, 0xa0,
+ 0x2a, 0x5e, 0x6a, 0xc7, 0x02, 0x75, 0x90, 0x54, 0xd1, 0x1d, 0x07, 0x5f,
+ 0x9d, 0xcc, 0x8c, 0xeb,
+};
+static const unsigned char kat4017_entropyinpr1[] = {
+ 0x76, 0x03, 0x00, 0x2e, 0x2d, 0x42, 0x37, 0xdf, 0x84, 0xfb, 0x9e, 0x0b,
+ 0xad, 0xb2, 0x9a, 0x25, 0x04, 0x12, 0x2c, 0x77, 0x6c, 0x20, 0x8a, 0xac,
+ 0x9b, 0xa1, 0x24, 0x3c, 0xa7, 0x87, 0x4d, 0xd7, 0x51, 0xa8, 0x3b, 0xfe,
+ 0xc7, 0xab, 0xad, 0x75,
+};
+static const unsigned char kat4017_addinpr1[] = {
+ 0x66, 0x56, 0xfe, 0x1b, 0x78, 0x78, 0x43, 0xa0, 0x8a, 0x7c, 0xdb, 0x3d,
+ 0x13, 0xd1, 0x98, 0x74, 0x03, 0x72, 0x45, 0x70, 0xc8, 0xb5, 0x27, 0x54,
+ 0x6c, 0x54, 0x69, 0xfd, 0x15, 0xf3, 0x20, 0x4e, 0x67, 0x90, 0xe2, 0x57,
+ 0xb5, 0xbb, 0x44, 0x27,
+};
+static const unsigned char kat4017_entropyinpr2[] = {
+ 0x81, 0x67, 0x18, 0x30, 0xa8, 0x83, 0x98, 0x85, 0x82, 0x27, 0x10, 0x44,
+ 0xde, 0xfc, 0x12, 0x9f, 0x54, 0xab, 0x77, 0xc9, 0xb2, 0x7f, 0x4a, 0x43,
+ 0x6a, 0xb0, 0xe0, 0xaa, 0x8c, 0x4a, 0x4d, 0x89, 0xf6, 0xea, 0x84, 0xb0,
+ 0xb8, 0x84, 0x09, 0xeb,
+};
+static const unsigned char kat4017_addinpr2[] = {
+ 0xe0, 0xc8, 0xed, 0x7a, 0x32, 0x1c, 0x36, 0xa3, 0x70, 0xfb, 0xae, 0x1c,
+ 0xad, 0x68, 0x17, 0xf2, 0x55, 0x78, 0xfb, 0x79, 0xec, 0x79, 0x23, 0x8a,
+ 0x20, 0xd5, 0xdb, 0xf6, 0xb9, 0x6c, 0x2e, 0xd1, 0x39, 0x45, 0x85, 0x18,
+ 0x06, 0x62, 0x38, 0xaa,
+};
+static const unsigned char kat4017_retbits[] = {
+ 0xdc, 0x20, 0xe0, 0xd4, 0xb8, 0xa6, 0x2f, 0x55, 0xb1, 0x76, 0x5d, 0x97,
+ 0x47, 0xed, 0xda, 0xda, 0x16, 0x53, 0x21, 0x6a, 0x26, 0x9e, 0x8a, 0x06,
+ 0x09, 0x29, 0x52, 0x18, 0x2d, 0xb0, 0xa8, 0xd5, 0x10, 0xae, 0x26, 0x3f,
+ 0x4d, 0x65, 0x71, 0x38, 0x84, 0x3e, 0xcf, 0x55, 0xec, 0x11, 0x03, 0xe8,
+ 0x0e, 0xce, 0xcb, 0x28, 0x80, 0x55, 0xc5, 0xd5, 0xe4, 0x2d, 0x20, 0x78,
+ 0xc8, 0xa7, 0x32, 0x26,
+};
+static const struct drbg_kat_pr_true kat4017_t = {
+ 11, kat4017_entropyin, kat4017_nonce, kat4017_persstr,
+ kat4017_entropyinpr1, kat4017_addinpr1, kat4017_entropyinpr2,
+ kat4017_addinpr2, kat4017_retbits
+};
+static const struct drbg_kat kat4017 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4017_t
+};
+
+static const unsigned char kat4018_entropyin[] = {
+ 0x5a, 0xc8, 0xf3, 0xef, 0x18, 0xc1, 0x64, 0x52, 0xf8, 0x2b, 0x2b, 0x2d,
+ 0xfe, 0xb7, 0x5b, 0x64, 0x1d, 0xc1, 0xc5, 0x4b, 0xc6, 0x58, 0xae, 0x8f,
+ 0x1e, 0x6b, 0x52, 0x17, 0xdf, 0xf6, 0x01, 0x79, 0x3e, 0x7d, 0x81, 0xa6,
+ 0x7f, 0x89, 0xb8, 0xa0,
+};
+static const unsigned char kat4018_nonce[] = {0};
+static const unsigned char kat4018_persstr[] = {
+ 0x87, 0xe8, 0xc7, 0x4c, 0x33, 0x1d, 0x05, 0x18, 0x56, 0x9e, 0x6a, 0xdf,
+ 0x93, 0x5d, 0x14, 0x41, 0x4f, 0xc8, 0x92, 0xe6, 0x4b, 0xc0, 0x62, 0x8b,
+ 0x06, 0xbd, 0xbd, 0x82, 0x00, 0x94, 0x7a, 0x78, 0xdb, 0x72, 0x10, 0xcd,
+ 0x1a, 0x96, 0x69, 0x63,
+};
+static const unsigned char kat4018_entropyinpr1[] = {
+ 0x2e, 0x9c, 0xb1, 0x91, 0x38, 0x42, 0xc9, 0x96, 0xda, 0xb7, 0x45, 0xdc,
+ 0x98, 0xc2, 0xdc, 0x83, 0xac, 0x89, 0xda, 0x97, 0x85, 0xe1, 0x82, 0xfc,
+ 0x94, 0x14, 0x3b, 0x0b, 0xc9, 0xcb, 0x5e, 0x56, 0x69, 0x55, 0x3d, 0x12,
+ 0x4b, 0x5b, 0x26, 0x10,
+};
+static const unsigned char kat4018_addinpr1[] = {
+ 0xdc, 0x0f, 0xb8, 0x7a, 0xa0, 0xd3, 0x8c, 0xe6, 0x82, 0x9a, 0xe6, 0xb7,
+ 0x91, 0x3a, 0xff, 0x96, 0xda, 0x00, 0x6f, 0x96, 0x51, 0xac, 0x28, 0xee,
+ 0x06, 0x97, 0x41, 0xe5, 0xf5, 0xce, 0x70, 0x6b, 0x71, 0x08, 0xda, 0xde,
+ 0x89, 0x32, 0xc6, 0xa7,
+};
+static const unsigned char kat4018_entropyinpr2[] = {
+ 0xb6, 0x38, 0x21, 0x11, 0xab, 0x15, 0x8c, 0x3d, 0xbc, 0x27, 0xc8, 0x63,
+ 0xaa, 0x6c, 0x6f, 0x16, 0x2e, 0x8e, 0x1f, 0x27, 0x00, 0x5d, 0xb8, 0xc4,
+ 0x5b, 0x83, 0x83, 0x9e, 0x57, 0x66, 0x5e, 0x0f, 0x9e, 0x90, 0xb7, 0x7e,
+ 0x1b, 0x3a, 0x28, 0xb6,
+};
+static const unsigned char kat4018_addinpr2[] = {
+ 0x5d, 0xaf, 0x56, 0x9d, 0xb5, 0x37, 0xad, 0x13, 0x23, 0x6e, 0x6f, 0x7d,
+ 0x2f, 0x8b, 0x6f, 0x44, 0xea, 0x07, 0xac, 0x58, 0x67, 0x0e, 0x0c, 0xe3,
+ 0xd0, 0x31, 0xca, 0x33, 0x45, 0x72, 0xa5, 0x52, 0xba, 0x6f, 0x49, 0xdc,
+ 0xca, 0x47, 0xb5, 0x53,
+};
+static const unsigned char kat4018_retbits[] = {
+ 0x26, 0x01, 0x76, 0x7b, 0x75, 0xe5, 0x78, 0xb5, 0x6c, 0x7a, 0xb6, 0xe7,
+ 0x8f, 0xa2, 0x39, 0x01, 0xee, 0x49, 0xf2, 0xab, 0x61, 0xff, 0xa4, 0xf4,
+ 0xc2, 0xcd, 0x38, 0x70, 0xb2, 0x75, 0x4a, 0x0a, 0x87, 0x77, 0x1b, 0xbd,
+ 0x2b, 0x5c, 0xea, 0xb2, 0x6f, 0x59, 0x2e, 0xe2, 0x6b, 0xd0, 0x57, 0x48,
+ 0x97, 0x09, 0x73, 0xaf, 0xe8, 0x00, 0xe8, 0x2e, 0x9b, 0x87, 0xde, 0xac,
+ 0x31, 0xbf, 0xca, 0x3e,
+};
+static const struct drbg_kat_pr_true kat4018_t = {
+ 12, kat4018_entropyin, kat4018_nonce, kat4018_persstr,
+ kat4018_entropyinpr1, kat4018_addinpr1, kat4018_entropyinpr2,
+ kat4018_addinpr2, kat4018_retbits
+};
+static const struct drbg_kat kat4018 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4018_t
+};
+
+static const unsigned char kat4019_entropyin[] = {
+ 0xc4, 0xd8, 0xf5, 0x71, 0x57, 0x0b, 0x57, 0x92, 0xbb, 0x94, 0x70, 0x06,
+ 0x9e, 0x0f, 0xf0, 0xed, 0xbb, 0x3f, 0xd6, 0x81, 0x35, 0x74, 0xf1, 0xdc,
+ 0x08, 0xee, 0xb7, 0x2f, 0x1f, 0xaa, 0x3c, 0x73, 0x7d, 0x2e, 0xb4, 0xe5,
+ 0x61, 0x3a, 0xda, 0x30,
+};
+static const unsigned char kat4019_nonce[] = {0};
+static const unsigned char kat4019_persstr[] = {
+ 0x19, 0xc7, 0xc3, 0xfa, 0xe3, 0x52, 0xaa, 0xa9, 0xea, 0x3a, 0x30, 0x18,
+ 0xef, 0x8b, 0xdd, 0x5f, 0x05, 0x8d, 0x34, 0x75, 0x90, 0xd6, 0xba, 0x62,
+ 0x76, 0xcf, 0x51, 0x73, 0x2b, 0x76, 0x42, 0x33, 0xea, 0x31, 0x0e, 0x1e,
+ 0xa8, 0xf6, 0x2a, 0xf5,
+};
+static const unsigned char kat4019_entropyinpr1[] = {
+ 0x8b, 0x55, 0xd0, 0x25, 0x68, 0x89, 0x57, 0x71, 0xa7, 0xb7, 0x73, 0x25,
+ 0xa2, 0xb1, 0xa4, 0x5b, 0x76, 0xed, 0x6a, 0x3a, 0x07, 0x6e, 0x23, 0xf5,
+ 0xb6, 0x9f, 0x53, 0x22, 0xa9, 0x5e, 0x8e, 0x6b, 0xa2, 0xea, 0x8d, 0x45,
+ 0xa9, 0xf4, 0xf7, 0xc6,
+};
+static const unsigned char kat4019_addinpr1[] = {
+ 0x63, 0x43, 0x22, 0xb8, 0xd1, 0xc7, 0xf7, 0x01, 0xc1, 0xf0, 0x65, 0x18,
+ 0x01, 0x20, 0xc1, 0x10, 0x54, 0x62, 0x09, 0xee, 0xb6, 0xa0, 0x76, 0x5a,
+ 0x8d, 0x09, 0xe7, 0xb8, 0x97, 0x32, 0x64, 0xa4, 0xa0, 0xbb, 0x60, 0xfa,
+ 0x44, 0xa3, 0x88, 0xa7,
+};
+static const unsigned char kat4019_entropyinpr2[] = {
+ 0xd6, 0x48, 0xda, 0x44, 0xb1, 0x71, 0x74, 0xf7, 0xde, 0x7e, 0x45, 0xae,
+ 0xb2, 0x7d, 0xbb, 0x68, 0x47, 0xbf, 0x68, 0x52, 0x7d, 0x5d, 0x32, 0x10,
+ 0xba, 0x54, 0x61, 0x14, 0x86, 0x2e, 0x0f, 0xbe, 0x80, 0xb7, 0x7b, 0xb1,
+ 0xe9, 0x97, 0x4c, 0x70,
+};
+static const unsigned char kat4019_addinpr2[] = {
+ 0x73, 0x3c, 0x9a, 0x07, 0x8b, 0x1f, 0x60, 0x53, 0xc1, 0x21, 0xbb, 0x85,
+ 0xbf, 0x9d, 0x86, 0x7d, 0x95, 0xb0, 0xe6, 0xfd, 0xd8, 0xfd, 0x9a, 0x6c,
+ 0x27, 0x93, 0x23, 0xc7, 0x44, 0xff, 0x0c, 0xf7, 0xc3, 0xb9, 0x15, 0x06,
+ 0xfd, 0x10, 0xf6, 0xa2,
+};
+static const unsigned char kat4019_retbits[] = {
+ 0x0c, 0xbb, 0x5a, 0xac, 0x61, 0x0d, 0x13, 0x03, 0xc7, 0xe3, 0x61, 0x76,
+ 0x94, 0x07, 0x72, 0x71, 0x2c, 0xa1, 0x4c, 0x1a, 0xa4, 0x9c, 0x6c, 0xe2,
+ 0xbc, 0x7a, 0x76, 0x68, 0xf9, 0x54, 0x34, 0x46, 0xd0, 0x15, 0x67, 0xae,
+ 0x41, 0x24, 0xd7, 0x05, 0xe5, 0x0e, 0x6c, 0xa0, 0x71, 0x69, 0x53, 0x42,
+ 0x1b, 0xe9, 0x2f, 0x3a, 0x60, 0xd0, 0x9b, 0x05, 0x99, 0x88, 0x80, 0xf3,
+ 0x6f, 0x50, 0xe3, 0x37,
+};
+static const struct drbg_kat_pr_true kat4019_t = {
+ 13, kat4019_entropyin, kat4019_nonce, kat4019_persstr,
+ kat4019_entropyinpr1, kat4019_addinpr1, kat4019_entropyinpr2,
+ kat4019_addinpr2, kat4019_retbits
+};
+static const struct drbg_kat kat4019 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4019_t
+};
+
+static const unsigned char kat4020_entropyin[] = {
+ 0x0b, 0x8a, 0xa4, 0x1e, 0xea, 0xff, 0x99, 0x20, 0x3d, 0x1d, 0x28, 0x48,
+ 0x93, 0x65, 0x52, 0xd7, 0x6c, 0xfd, 0x1b, 0x0a, 0x9c, 0xb9, 0xd6, 0xd9,
+ 0x8c, 0x93, 0x48, 0xc3, 0x96, 0xfa, 0xd0, 0xc6, 0x43, 0x25, 0xa0, 0xca,
+ 0x67, 0x89, 0x10, 0xb2,
+};
+static const unsigned char kat4020_nonce[] = {0};
+static const unsigned char kat4020_persstr[] = {
+ 0x73, 0xf9, 0xeb, 0x66, 0x51, 0x58, 0xd6, 0xe4, 0x1a, 0x7c, 0x2a, 0x9b,
+ 0x2e, 0xd2, 0xbf, 0xa5, 0xf1, 0x12, 0x2a, 0xee, 0x6d, 0x3d, 0xd0, 0x05,
+ 0x88, 0x88, 0xa7, 0xcf, 0xe8, 0x5e, 0x06, 0xf9, 0x9d, 0x7c, 0x53, 0x7c,
+ 0xa3, 0xdf, 0x98, 0x8a,
+};
+static const unsigned char kat4020_entropyinpr1[] = {
+ 0x65, 0x0f, 0xc0, 0x2f, 0xcb, 0xb7, 0x70, 0xdd, 0xc6, 0x3a, 0xc8, 0x5b,
+ 0x20, 0x6a, 0x6e, 0x0d, 0xda, 0xae, 0x9f, 0xb7, 0xc1, 0x11, 0x23, 0x41,
+ 0x94, 0xe8, 0x93, 0xca, 0x2c, 0xbb, 0xb9, 0x58, 0x99, 0x34, 0xd3, 0x0d,
+ 0x03, 0xae, 0x5d, 0x81,
+};
+static const unsigned char kat4020_addinpr1[] = {
+ 0xf1, 0x18, 0x44, 0x79, 0x87, 0x7a, 0xec, 0xc7, 0x8e, 0x19, 0xba, 0xff,
+ 0x31, 0xe4, 0xa9, 0xc6, 0xfa, 0x8e, 0x62, 0x39, 0x34, 0xe3, 0x36, 0xcb,
+ 0xb9, 0xc0, 0x4a, 0x8f, 0x4b, 0x82, 0x5f, 0x8b, 0xd8, 0xfc, 0xaf, 0xcd,
+ 0xd3, 0x9b, 0x1e, 0x9c,
+};
+static const unsigned char kat4020_entropyinpr2[] = {
+ 0x0d, 0x18, 0xee, 0x1f, 0xdb, 0x9d, 0xc2, 0x3c, 0x66, 0xae, 0xa5, 0x87,
+ 0xfa, 0x59, 0xcc, 0x9c, 0x65, 0xda, 0x76, 0x90, 0xa7, 0xa7, 0x80, 0xbc,
+ 0x64, 0x72, 0x7f, 0xa3, 0xfb, 0x22, 0x60, 0x23, 0x01, 0x91, 0x1e, 0xd3,
+ 0xf9, 0x9f, 0xd7, 0x12,
+};
+static const unsigned char kat4020_addinpr2[] = {
+ 0x02, 0xa3, 0x18, 0xa1, 0x57, 0x97, 0x14, 0xdd, 0xac, 0x23, 0x9f, 0x96,
+ 0x85, 0x64, 0xfa, 0x27, 0x68, 0xd5, 0x09, 0x9c, 0x23, 0x72, 0x37, 0xac,
+ 0x15, 0xab, 0xa9, 0xbd, 0xdc, 0x13, 0xaa, 0x9c, 0x30, 0xc3, 0x8f, 0x93,
+ 0x5f, 0x21, 0x67, 0xa0,
+};
+static const unsigned char kat4020_retbits[] = {
+ 0x99, 0x23, 0x97, 0xec, 0x16, 0x84, 0x48, 0xc4, 0x52, 0x15, 0x60, 0x08,
+ 0x5f, 0x39, 0x56, 0xd2, 0xfc, 0x58, 0x3b, 0xda, 0x19, 0x24, 0xb2, 0x9f,
+ 0xdd, 0xd0, 0x81, 0xdf, 0xcc, 0x05, 0x6a, 0x0d, 0xca, 0xaf, 0x3e, 0xdd,
+ 0x1a, 0x84, 0x15, 0x8b, 0x6b, 0x7e, 0x57, 0x37, 0xd3, 0x75, 0x35, 0xfb,
+ 0xbd, 0x62, 0x58, 0x31, 0x9b, 0x74, 0x58, 0xc5, 0x52, 0x4c, 0xd0, 0x06,
+ 0x1a, 0x88, 0x50, 0xe8,
+};
+static const struct drbg_kat_pr_true kat4020_t = {
+ 14, kat4020_entropyin, kat4020_nonce, kat4020_persstr,
+ kat4020_entropyinpr1, kat4020_addinpr1, kat4020_entropyinpr2,
+ kat4020_addinpr2, kat4020_retbits
+};
+static const struct drbg_kat kat4020 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4020_t
+};
+
+static const unsigned char kat4021_entropyin[] = {
+ 0xeb, 0x18, 0x82, 0x13, 0xc6, 0x32, 0x29, 0xe1, 0x87, 0x40, 0x08, 0xe5,
+ 0x05, 0x8c, 0x2b, 0x24, 0x8c, 0x30, 0xd7, 0xdb, 0x58, 0x48, 0x8d, 0x5e,
+ 0x9d, 0x82, 0xda, 0xcf, 0x3e, 0xf5, 0xa4, 0xa5, 0x8e, 0xc2, 0x69, 0x5a,
+ 0x2e, 0x2c, 0xfe, 0x58,
+};
+static const unsigned char kat4021_nonce[] = {0};
+static const unsigned char kat4021_persstr[] = {0};
+static const unsigned char kat4021_entropyinpr1[] = {
+ 0x3a, 0xb2, 0x93, 0x6c, 0xf6, 0x12, 0xa1, 0x2b, 0xc3, 0xc2, 0x54, 0x3d,
+ 0x34, 0x4c, 0xf0, 0x36, 0x78, 0x42, 0x7d, 0xc2, 0x3a, 0x65, 0x0c, 0xfa,
+ 0x2e, 0x64, 0xdd, 0xbe, 0xe8, 0x2d, 0xb9, 0xd2, 0x9f, 0x25, 0xfe, 0xdf,
+ 0x21, 0xfb, 0xe3, 0x01,
+};
+static const unsigned char kat4021_addinpr1[] = {0};
+static const unsigned char kat4021_entropyinpr2[] = {
+ 0x4b, 0x56, 0x92, 0x8b, 0x68, 0x93, 0x66, 0xff, 0xcd, 0xdf, 0x6d, 0xbd,
+ 0x31, 0xfc, 0xce, 0x30, 0x92, 0xcd, 0x0b, 0x8e, 0x0c, 0x6d, 0xeb, 0xfb,
+ 0xce, 0x26, 0xec, 0x19, 0x02, 0xe8, 0x03, 0x83, 0x24, 0xde, 0xd0, 0x3d,
+ 0x07, 0xb9, 0x31, 0x04,
+};
+static const unsigned char kat4021_addinpr2[] = {0};
+static const unsigned char kat4021_retbits[] = {
+ 0x16, 0x52, 0x9e, 0x73, 0xc2, 0xb2, 0xdc, 0x17, 0x1d, 0x44, 0x77, 0x0b,
+ 0xee, 0x4f, 0xc3, 0xfb, 0x5f, 0xeb, 0x82, 0xb1, 0x4d, 0x0f, 0x2a, 0xa3,
+ 0xa4, 0xab, 0xf0, 0xa7, 0x6b, 0xb2, 0xae, 0xeb, 0x7b, 0x4c, 0xc6, 0xf6,
+ 0xc9, 0x21, 0x5e, 0x85, 0xf2, 0x47, 0xde, 0xb3, 0x6b, 0xa4, 0x57, 0xff,
+ 0xa5, 0xfe, 0x6b, 0xe3, 0xe2, 0xab, 0x1c, 0xc2, 0xa3, 0xa1, 0xa0, 0x65,
+ 0xb8, 0x16, 0x75, 0x8a,
+};
+static const struct drbg_kat_pr_true kat4021_t = {
+ 0, kat4021_entropyin, kat4021_nonce, kat4021_persstr,
+ kat4021_entropyinpr1, kat4021_addinpr1, kat4021_entropyinpr2,
+ kat4021_addinpr2, kat4021_retbits
+};
+static const struct drbg_kat kat4021 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat4021_t
+};
+
+static const unsigned char kat4022_entropyin[] = {
+ 0xd0, 0x68, 0xf2, 0xe5, 0xcc, 0xe9, 0xec, 0xb0, 0x79, 0xf8, 0x0f, 0x07,
+ 0xef, 0x7d, 0x1c, 0x65, 0x65, 0x0a, 0xa6, 0x6b, 0x0d, 0xa6, 0x9a, 0xda,
+ 0x27, 0xf6, 0x9f, 0x02, 0x63, 0x0b, 0x49, 0x36, 0xa3, 0xa2, 0x70, 0x69,
+ 0x9a, 0x82, 0x7c, 0xf9,
+};
+static const unsigned char kat4022_nonce[] = {0};
+static const unsigned char kat4022_persstr[] = {0};
+static const unsigned char kat4022_entropyinpr1[] = {
+ 0x8e, 0x40, 0xb2, 0xb3, 0x65, 0xd5, 0x8b, 0x4b, 0x88, 0x43, 0x1a, 0x39,
+ 0x8b, 0x2f, 0xb6, 0x8d, 0xd9, 0xc0, 0xdc, 0x8f, 0x7b, 0x46, 0x42, 0x5e,
+ 0xf6, 0x0b, 0xc7, 0x99, 0x6e, 0x82, 0x40, 0xc1, 0x1a, 0xd0, 0xe7, 0x55,
+ 0x21, 0xc7, 0x7d, 0x48,
+};
+static const unsigned char kat4022_addinpr1[] = {0};
+static const unsigned char kat4022_entropyinpr2[] = {
+ 0x79, 0xd5, 0x08, 0x61, 0x30, 0xff, 0x9b, 0xb5, 0x82, 0xac, 0xc3, 0xea,
+ 0x14, 0x91, 0xfe, 0x28, 0x52, 0x82, 0xb5, 0x83, 0xfb, 0x8f, 0xd0, 0x83,
+ 0x49, 0x21, 0x33, 0x22, 0x54, 0x18, 0xf4, 0x21, 0xf9, 0x89, 0xcf, 0x9b,
+ 0x36, 0xd2, 0x87, 0xef,
+};
+static const unsigned char kat4022_addinpr2[] = {0};
+static const unsigned char kat4022_retbits[] = {
+ 0xfe, 0x30, 0x4b, 0x3d, 0x14, 0x61, 0x75, 0x60, 0x2f, 0x11, 0x62, 0xb1,
+ 0xea, 0xda, 0x53, 0x9d, 0xe1, 0xfc, 0xac, 0x16, 0xda, 0x03, 0x7b, 0x14,
+ 0xf1, 0xe9, 0x5f, 0xc2, 0x23, 0xc2, 0xab, 0x31, 0xba, 0x3b, 0x03, 0xf3,
+ 0xac, 0xe2, 0xcb, 0xc8, 0xfa, 0xfc, 0x52, 0x1c, 0x0d, 0x72, 0x90, 0x6d,
+ 0xff, 0x9f, 0x9b, 0xdd, 0xf3, 0xb5, 0x72, 0x42, 0x9b, 0x39, 0xc6, 0x9c,
+ 0x69, 0x4c, 0x66, 0xc6,
+};
+static const struct drbg_kat_pr_true kat4022_t = {
+ 1, kat4022_entropyin, kat4022_nonce, kat4022_persstr,
+ kat4022_entropyinpr1, kat4022_addinpr1, kat4022_entropyinpr2,
+ kat4022_addinpr2, kat4022_retbits
+};
+static const struct drbg_kat kat4022 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat4022_t
+};
+
+static const unsigned char kat4023_entropyin[] = {
+ 0xd3, 0x15, 0xf8, 0x9d, 0x9f, 0x8c, 0xf5, 0x10, 0xaf, 0xae, 0xe1, 0x98,
+ 0x0d, 0xc2, 0x35, 0x2c, 0xce, 0x01, 0x69, 0xf0, 0x16, 0x06, 0x7b, 0x08,
+ 0xa2, 0x1c, 0xc6, 0x8b, 0x63, 0xe2, 0xa9, 0xe7, 0xcb, 0x35, 0x3d, 0xad,
+ 0xec, 0x04, 0xb3, 0x9a,
+};
+static const unsigned char kat4023_nonce[] = {0};
+static const unsigned char kat4023_persstr[] = {0};
+static const unsigned char kat4023_entropyinpr1[] = {
+ 0x48, 0xa2, 0x92, 0x54, 0xfb, 0xc2, 0xe4, 0x6c, 0xd6, 0x91, 0x08, 0x6a,
+ 0x56, 0x5b, 0xe2, 0x36, 0x85, 0x4f, 0x65, 0x14, 0x92, 0x53, 0xa0, 0x18,
+ 0x86, 0x4c, 0x5a, 0x48, 0xcb, 0x37, 0x64, 0x81, 0x72, 0x6c, 0xf6, 0xa0,
+ 0xd6, 0x8c, 0x8f, 0x0f,
+};
+static const unsigned char kat4023_addinpr1[] = {0};
+static const unsigned char kat4023_entropyinpr2[] = {
+ 0xfa, 0xae, 0xcd, 0x3a, 0x47, 0xff, 0x52, 0xfb, 0x1a, 0xdd, 0xdf, 0xc0,
+ 0x7f, 0x50, 0xc3, 0x64, 0x35, 0x9c, 0xee, 0xc4, 0x94, 0x81, 0x38, 0x56,
+ 0x1c, 0xbb, 0x33, 0xfb, 0x4b, 0x22, 0x75, 0xde, 0x03, 0xea, 0x5b, 0xda,
+ 0xee, 0x24, 0xf6, 0xd1,
+};
+static const unsigned char kat4023_addinpr2[] = {0};
+static const unsigned char kat4023_retbits[] = {
+ 0xb7, 0xac, 0xdd, 0x64, 0x49, 0xde, 0xbb, 0xcf, 0xf7, 0x3a, 0xd2, 0x3a,
+ 0x19, 0xe5, 0xe4, 0xc2, 0xd7, 0x8c, 0xd7, 0x01, 0xb4, 0x88, 0xb6, 0xf3,
+ 0xe1, 0xe5, 0xb2, 0x94, 0x7f, 0x9d, 0x6b, 0x23, 0x91, 0xd1, 0x76, 0x81,
+ 0xca, 0xc6, 0x71, 0x60, 0x29, 0x2e, 0xda, 0x2a, 0x24, 0x2e, 0x49, 0xb5,
+ 0xf2, 0x1c, 0xa6, 0x63, 0xef, 0x11, 0x9b, 0x89, 0x43, 0xaf, 0xcb, 0x3f,
+ 0x3f, 0x44, 0xa0, 0xca,
+};
+static const struct drbg_kat_pr_true kat4023_t = {
+ 2, kat4023_entropyin, kat4023_nonce, kat4023_persstr,
+ kat4023_entropyinpr1, kat4023_addinpr1, kat4023_entropyinpr2,
+ kat4023_addinpr2, kat4023_retbits
+};
+static const struct drbg_kat kat4023 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat4023_t
+};
+
+static const unsigned char kat4024_entropyin[] = {
+ 0x1e, 0xe0, 0x7a, 0x02, 0x35, 0x37, 0x3d, 0x32, 0xf5, 0xd9, 0x54, 0x84,
+ 0x2a, 0x3f, 0xb8, 0xb1, 0xc8, 0x8b, 0x9f, 0xbe, 0xbd, 0x6a, 0xe5, 0x08,
+ 0xfc, 0x49, 0xd3, 0x99, 0xfd, 0x05, 0xb3, 0x4a, 0x68, 0x2f, 0xd9, 0x70,
+ 0x4d, 0x3f, 0x5e, 0xc3,
+};
+static const unsigned char kat4024_nonce[] = {0};
+static const unsigned char kat4024_persstr[] = {0};
+static const unsigned char kat4024_entropyinpr1[] = {
+ 0xe2, 0x01, 0x02, 0x27, 0x79, 0x9b, 0x53, 0x23, 0x65, 0x29, 0xdc, 0xdb,
+ 0x1f, 0xc9, 0xc7, 0xb5, 0x7d, 0x76, 0x2e, 0x5e, 0x2b, 0x11, 0xf5, 0x78,
+ 0x21, 0x11, 0xd7, 0x4f, 0x54, 0xb5, 0x1e, 0x2e, 0xba, 0x19, 0x92, 0x29,
+ 0x1f, 0xe6, 0xf9, 0xb9,
+};
+static const unsigned char kat4024_addinpr1[] = {0};
+static const unsigned char kat4024_entropyinpr2[] = {
+ 0x89, 0xcc, 0x18, 0x59, 0x9e, 0x1f, 0x76, 0x08, 0xad, 0x55, 0x0e, 0x5c,
+ 0x17, 0x21, 0x37, 0x76, 0x98, 0x06, 0xc0, 0x4c, 0x93, 0xd0, 0x4e, 0x18,
+ 0x4d, 0x93, 0xe1, 0xdf, 0xa3, 0x2c, 0xdf, 0xfe, 0xe2, 0x9d, 0xd9, 0x47,
+ 0x55, 0x8f, 0xed, 0xaa,
+};
+static const unsigned char kat4024_addinpr2[] = {0};
+static const unsigned char kat4024_retbits[] = {
+ 0xf4, 0x05, 0x53, 0x5d, 0x6b, 0xd7, 0xd6, 0x83, 0x44, 0x51, 0x37, 0x46,
+ 0x1d, 0x28, 0xab, 0x7e, 0x16, 0xd4, 0xf6, 0x5b, 0x54, 0xb6, 0xba, 0xf6,
+ 0x65, 0x86, 0x26, 0x09, 0x37, 0x93, 0x6f, 0xc0, 0x9e, 0x64, 0x02, 0x66,
+ 0xa8, 0x22, 0xd2, 0xe4, 0x75, 0x36, 0xad, 0xd5, 0xe0, 0xa8, 0x80, 0xf8,
+ 0xac, 0x54, 0x6f, 0xba, 0x7e, 0x7d, 0x82, 0xac, 0x65, 0x65, 0x99, 0xe7,
+ 0xa6, 0x88, 0xf6, 0xd9,
+};
+static const struct drbg_kat_pr_true kat4024_t = {
+ 3, kat4024_entropyin, kat4024_nonce, kat4024_persstr,
+ kat4024_entropyinpr1, kat4024_addinpr1, kat4024_entropyinpr2,
+ kat4024_addinpr2, kat4024_retbits
+};
+static const struct drbg_kat kat4024 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat4024_t
+};
+
+static const unsigned char kat4025_entropyin[] = {
+ 0xd1, 0x14, 0xf2, 0x9d, 0x42, 0xa0, 0xff, 0x3e, 0x95, 0xf8, 0x4c, 0xbc,
+ 0x16, 0x70, 0xe9, 0x95, 0xe2, 0xcc, 0x1e, 0x6f, 0xf2, 0xac, 0x26, 0x12,
+ 0x82, 0x05, 0x07, 0xe2, 0x61, 0x5a, 0xa0, 0xda, 0x5d, 0xc6, 0x45, 0x34,
+ 0xa6, 0x3c, 0xf1, 0xa4,
+};
+static const unsigned char kat4025_nonce[] = {0};
+static const unsigned char kat4025_persstr[] = {0};
+static const unsigned char kat4025_entropyinpr1[] = {
+ 0x0c, 0xaf, 0xd2, 0x54, 0x78, 0xc5, 0xc8, 0x26, 0xb4, 0x8d, 0x1a, 0xba,
+ 0x7b, 0xc3, 0x8a, 0xcc, 0x28, 0x82, 0x9e, 0xd2, 0xa3, 0x48, 0x14, 0x01,
+ 0x68, 0xeb, 0x27, 0x14, 0x57, 0xdc, 0x0c, 0x77, 0x01, 0xc1, 0x08, 0xbd,
+ 0x71, 0x7e, 0x11, 0x13,
+};
+static const unsigned char kat4025_addinpr1[] = {0};
+static const unsigned char kat4025_entropyinpr2[] = {
+ 0x8c, 0x32, 0x1f, 0x84, 0x78, 0xca, 0xa7, 0x24, 0x25, 0x30, 0x80, 0xd7,
+ 0xb2, 0x6a, 0x17, 0xb2, 0xd2, 0xd4, 0x2a, 0xb7, 0xb3, 0x30, 0x00, 0xe8,
+ 0x55, 0xd0, 0x06, 0xe2, 0x9a, 0x54, 0x6a, 0xb0, 0x6d, 0x50, 0x97, 0x0c,
+ 0x76, 0x35, 0xb4, 0x1e,
+};
+static const unsigned char kat4025_addinpr2[] = {0};
+static const unsigned char kat4025_retbits[] = {
+ 0x47, 0x44, 0x45, 0x5e, 0x38, 0xc9, 0xa5, 0xc5, 0xd8, 0x2b, 0x4c, 0x9d,
+ 0xdc, 0xc8, 0xff, 0x42, 0x13, 0x93, 0x4b, 0x67, 0x52, 0x7a, 0xb7, 0x50,
+ 0x00, 0x4d, 0x0e, 0xdc, 0x31, 0x14, 0x79, 0x0b, 0x69, 0x7b, 0x71, 0x56,
+ 0x0d, 0x77, 0x07, 0x7e, 0x5e, 0x4b, 0xa5, 0x01, 0xd4, 0x8a, 0x4c, 0x21,
+ 0x41, 0xf2, 0xa5, 0x22, 0x7b, 0x22, 0xf8, 0xec, 0x7c, 0x1c, 0x50, 0x09,
+ 0xfb, 0x18, 0x2b, 0x6e,
+};
+static const struct drbg_kat_pr_true kat4025_t = {
+ 4, kat4025_entropyin, kat4025_nonce, kat4025_persstr,
+ kat4025_entropyinpr1, kat4025_addinpr1, kat4025_entropyinpr2,
+ kat4025_addinpr2, kat4025_retbits
+};
+static const struct drbg_kat kat4025 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat4025_t
+};
+
+static const unsigned char kat4026_entropyin[] = {
+ 0x0f, 0x76, 0x6e, 0x6f, 0x86, 0xec, 0x54, 0xe6, 0x69, 0xd8, 0x9a, 0xd7,
+ 0x09, 0x1d, 0xec, 0xb2, 0x1b, 0x94, 0x2d, 0x63, 0x46, 0x6a, 0x32, 0x66,
+ 0xbf, 0x1b, 0xd8, 0x50, 0x92, 0x7c, 0xe7, 0xf2, 0xd1, 0x28, 0x1e, 0xbd,
+ 0xd8, 0x4e, 0x07, 0x6e,
+};
+static const unsigned char kat4026_nonce[] = {0};
+static const unsigned char kat4026_persstr[] = {0};
+static const unsigned char kat4026_entropyinpr1[] = {
+ 0xca, 0xd5, 0x03, 0x29, 0x3b, 0x46, 0x44, 0xae, 0x36, 0x37, 0x9d, 0xa7,
+ 0x45, 0xca, 0x4f, 0x64, 0xb7, 0x8d, 0x93, 0x18, 0x20, 0x64, 0x89, 0x96,
+ 0x9b, 0xb0, 0xf1, 0xd7, 0x10, 0xf6, 0xbc, 0xc8, 0xb7, 0xdb, 0x39, 0x74,
+ 0x31, 0xf4, 0xe6, 0x03,
+};
+static const unsigned char kat4026_addinpr1[] = {0};
+static const unsigned char kat4026_entropyinpr2[] = {
+ 0x51, 0x55, 0x0c, 0x1b, 0x5e, 0x3e, 0xdb, 0x4f, 0x63, 0x99, 0x62, 0xb0,
+ 0x2a, 0x2a, 0x44, 0x93, 0x44, 0xe8, 0x48, 0x85, 0x9b, 0x54, 0xe8, 0xa2,
+ 0xaa, 0x87, 0x9a, 0x97, 0x81, 0x67, 0x4d, 0xf1, 0x10, 0x63, 0x50, 0xd6,
+ 0x26, 0xfe, 0x82, 0xe5,
+};
+static const unsigned char kat4026_addinpr2[] = {0};
+static const unsigned char kat4026_retbits[] = {
+ 0x3b, 0xca, 0x90, 0xa4, 0x20, 0x8c, 0x28, 0x34, 0x7b, 0x02, 0x68, 0x65,
+ 0x6a, 0xfb, 0x8d, 0x53, 0x47, 0x49, 0x8b, 0x49, 0xb6, 0x34, 0x3f, 0xf4,
+ 0x6e, 0x72, 0x29, 0x85, 0x99, 0xc0, 0x47, 0xd4, 0xaa, 0x8e, 0x2a, 0x1b,
+ 0x32, 0x0b, 0xc1, 0xf9, 0x90, 0x11, 0x84, 0x9b, 0xc7, 0x35, 0xf0, 0x0a,
+ 0x3c, 0x13, 0x36, 0x54, 0x8d, 0xcf, 0x7c, 0x8e, 0xc9, 0x70, 0x02, 0x63,
+ 0xe1, 0xb4, 0xa9, 0xce,
+};
+static const struct drbg_kat_pr_true kat4026_t = {
+ 5, kat4026_entropyin, kat4026_nonce, kat4026_persstr,
+ kat4026_entropyinpr1, kat4026_addinpr1, kat4026_entropyinpr2,
+ kat4026_addinpr2, kat4026_retbits
+};
+static const struct drbg_kat kat4026 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat4026_t
+};
+
+static const unsigned char kat4027_entropyin[] = {
+ 0xa7, 0x67, 0xa7, 0x77, 0xc3, 0xd6, 0x84, 0x43, 0xa3, 0xda, 0xb7, 0x45,
+ 0x1d, 0xb5, 0xc6, 0xaf, 0x45, 0x7e, 0x61, 0xfb, 0xbf, 0xfb, 0xf7, 0xf1,
+ 0xd0, 0x2f, 0x6b, 0xa2, 0xd7, 0x96, 0x2d, 0x8b, 0xb9, 0xcb, 0xf7, 0xe1,
+ 0x24, 0x2d, 0xf7, 0x56,
+};
+static const unsigned char kat4027_nonce[] = {0};
+static const unsigned char kat4027_persstr[] = {0};
+static const unsigned char kat4027_entropyinpr1[] = {
+ 0xc9, 0x9e, 0x7a, 0x40, 0xad, 0x29, 0xd2, 0x7f, 0x83, 0xbd, 0x6c, 0x3a,
+ 0xe8, 0x70, 0x5b, 0x7d, 0x6c, 0x42, 0xa0, 0xc4, 0xe9, 0xc5, 0xcf, 0xb2,
+ 0x88, 0x6b, 0x10, 0xea, 0x57, 0xaa, 0xc8, 0xd6, 0x6a, 0x2f, 0xcc, 0x02,
+ 0x6b, 0x4c, 0xbe, 0xa8,
+};
+static const unsigned char kat4027_addinpr1[] = {0};
+static const unsigned char kat4027_entropyinpr2[] = {
+ 0x63, 0xea, 0xd0, 0xe6, 0x05, 0xdf, 0x09, 0x1c, 0x9f, 0x9b, 0xe9, 0xc0,
+ 0x2c, 0x6a, 0x83, 0x2d, 0x0d, 0x22, 0x98, 0xe0, 0x09, 0xf1, 0xb3, 0x8f,
+ 0xa4, 0x53, 0x3d, 0x30, 0x27, 0x8f, 0x34, 0x2b, 0x0c, 0x6b, 0xbc, 0x66,
+ 0xaa, 0x97, 0x19, 0x47,
+};
+static const unsigned char kat4027_addinpr2[] = {0};
+static const unsigned char kat4027_retbits[] = {
+ 0x23, 0x2c, 0x52, 0x16, 0x9a, 0x49, 0x19, 0x3b, 0xfb, 0x95, 0x59, 0x16,
+ 0xeb, 0xca, 0x4f, 0x5a, 0x16, 0xc8, 0x1e, 0x97, 0x1f, 0xc1, 0xe2, 0xe3,
+ 0x6c, 0x85, 0x19, 0x2f, 0x13, 0xac, 0x4b, 0x7e, 0x38, 0x13, 0x38, 0x28,
+ 0x3c, 0x8d, 0x4c, 0xab, 0x67, 0x7a, 0x8c, 0x5f, 0x6c, 0x1b, 0x44, 0x0c,
+ 0x10, 0x96, 0x4e, 0x05, 0x7a, 0x8b, 0x66, 0xb2, 0xba, 0x60, 0xe7, 0xfd,
+ 0x12, 0x81, 0x3f, 0xa0,
+};
+static const struct drbg_kat_pr_true kat4027_t = {
+ 6, kat4027_entropyin, kat4027_nonce, kat4027_persstr,
+ kat4027_entropyinpr1, kat4027_addinpr1, kat4027_entropyinpr2,
+ kat4027_addinpr2, kat4027_retbits
+};
+static const struct drbg_kat kat4027 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat4027_t
+};
+
+static const unsigned char kat4028_entropyin[] = {
+ 0x27, 0xb1, 0x5b, 0xa5, 0xa9, 0x7d, 0xd9, 0xd5, 0x56, 0x40, 0xbd, 0x2c,
+ 0xc9, 0x14, 0x9c, 0x14, 0xe4, 0x12, 0xd6, 0x5a, 0xe1, 0xaa, 0xf9, 0xbf,
+ 0x5b, 0x24, 0x61, 0xbf, 0x20, 0xac, 0x46, 0xa5, 0x1b, 0xf8, 0x23, 0x4f,
+ 0x5c, 0x28, 0x3c, 0x33,
+};
+static const unsigned char kat4028_nonce[] = {0};
+static const unsigned char kat4028_persstr[] = {0};
+static const unsigned char kat4028_entropyinpr1[] = {
+ 0x97, 0x9d, 0x96, 0x18, 0xd0, 0xab, 0x48, 0x17, 0x60, 0x9a, 0xaa, 0x41,
+ 0x25, 0xa0, 0xee, 0x5c, 0xcd, 0x69, 0x4c, 0xcd, 0x84, 0x63, 0x10, 0x9b,
+ 0x33, 0x26, 0x12, 0x23, 0xf1, 0xb0, 0xe8, 0x81, 0x10, 0x52, 0x27, 0xc5,
+ 0xa0, 0x9f, 0x99, 0x17,
+};
+static const unsigned char kat4028_addinpr1[] = {0};
+static const unsigned char kat4028_entropyinpr2[] = {
+ 0x70, 0xa5, 0x7c, 0xe6, 0x8f, 0xe3, 0xc2, 0xcf, 0xde, 0x46, 0x22, 0xe4,
+ 0x6c, 0xf8, 0x93, 0x13, 0xb9, 0x5c, 0x64, 0xef, 0x97, 0x82, 0x47, 0x74,
+ 0xa2, 0x81, 0x7f, 0x06, 0xf6, 0x23, 0x90, 0x9f, 0xeb, 0x66, 0xce, 0x73,
+ 0x8c, 0x45, 0x70, 0x51,
+};
+static const unsigned char kat4028_addinpr2[] = {0};
+static const unsigned char kat4028_retbits[] = {
+ 0x94, 0xbf, 0x4b, 0x90, 0x98, 0x0c, 0xea, 0x16, 0xaa, 0x58, 0x5e, 0x38,
+ 0x3f, 0x91, 0x37, 0x3b, 0xd5, 0x84, 0xfa, 0xd3, 0x0e, 0x60, 0x93, 0x0c,
+ 0x0a, 0x9f, 0x99, 0x13, 0xc9, 0xb5, 0x4d, 0xd4, 0x03, 0xe5, 0xa9, 0x35,
+ 0x43, 0x25, 0x8e, 0x48, 0xff, 0x00, 0x25, 0x52, 0x5f, 0x7a, 0x5d, 0x05,
+ 0xc0, 0x6c, 0x7a, 0xdd, 0xab, 0x23, 0x6c, 0x1b, 0x37, 0x26, 0x44, 0xf8,
+ 0xeb, 0xb1, 0x7b, 0x1c,
+};
+static const struct drbg_kat_pr_true kat4028_t = {
+ 7, kat4028_entropyin, kat4028_nonce, kat4028_persstr,
+ kat4028_entropyinpr1, kat4028_addinpr1, kat4028_entropyinpr2,
+ kat4028_addinpr2, kat4028_retbits
+};
+static const struct drbg_kat kat4028 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat4028_t
+};
+
+static const unsigned char kat4029_entropyin[] = {
+ 0xed, 0x98, 0xdb, 0x12, 0xb4, 0xc4, 0xf1, 0x58, 0x47, 0xfd, 0x22, 0x46,
+ 0x4e, 0x98, 0x13, 0xde, 0x49, 0x94, 0x0e, 0xdb, 0xd5, 0x6e, 0x57, 0x54,
+ 0x55, 0x06, 0xab, 0x96, 0x3f, 0xaa, 0xce, 0x2d, 0x15, 0xed, 0xf2, 0xb7,
+ 0x58, 0xb3, 0xcf, 0x7a,
+};
+static const unsigned char kat4029_nonce[] = {0};
+static const unsigned char kat4029_persstr[] = {0};
+static const unsigned char kat4029_entropyinpr1[] = {
+ 0x30, 0xc3, 0xe5, 0x60, 0x3f, 0x71, 0x20, 0x2a, 0x0d, 0xac, 0x06, 0x8a,
+ 0x06, 0x84, 0xde, 0x05, 0x43, 0x86, 0xb3, 0xe0, 0xe8, 0xd5, 0xad, 0x5c,
+ 0x87, 0x6b, 0x1f, 0x7e, 0x9c, 0xbb, 0x70, 0xc0, 0x9b, 0x7d, 0xfc, 0x7f,
+ 0xf8, 0xff, 0xd8, 0xd1,
+};
+static const unsigned char kat4029_addinpr1[] = {0};
+static const unsigned char kat4029_entropyinpr2[] = {
+ 0x61, 0xfd, 0xe0, 0x50, 0xce, 0xf1, 0x2d, 0xc2, 0x0f, 0x6b, 0x6a, 0xe5,
+ 0x60, 0x80, 0xcb, 0x5e, 0xf3, 0xac, 0x36, 0x6b, 0x05, 0xbb, 0xbe, 0x1d,
+ 0x71, 0xf0, 0xa7, 0xfe, 0xde, 0xbc, 0x18, 0x04, 0x7a, 0x28, 0x5f, 0xae,
+ 0xf9, 0xbb, 0xab, 0xd4,
+};
+static const unsigned char kat4029_addinpr2[] = {0};
+static const unsigned char kat4029_retbits[] = {
+ 0x68, 0x3e, 0xc6, 0xec, 0x15, 0x50, 0x96, 0x68, 0x35, 0x08, 0x89, 0xda,
+ 0x51, 0x58, 0xc1, 0xca, 0xbe, 0x6a, 0xec, 0xcb, 0x01, 0x06, 0xc7, 0x51,
+ 0x75, 0xfd, 0xfb, 0xfe, 0x27, 0x60, 0x95, 0x7d, 0xc1, 0x5b, 0xfc, 0x48,
+ 0x4c, 0x04, 0x44, 0xcf, 0xc3, 0x01, 0x97, 0x2f, 0x98, 0x85, 0x42, 0xf3,
+ 0xd4, 0x44, 0x90, 0x1c, 0x2b, 0xb3, 0x59, 0xd3, 0x13, 0x26, 0xb0, 0xe4,
+ 0x78, 0x10, 0x6b, 0xbd,
+};
+static const struct drbg_kat_pr_true kat4029_t = {
+ 8, kat4029_entropyin, kat4029_nonce, kat4029_persstr,
+ kat4029_entropyinpr1, kat4029_addinpr1, kat4029_entropyinpr2,
+ kat4029_addinpr2, kat4029_retbits
+};
+static const struct drbg_kat kat4029 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat4029_t
+};
+
+static const unsigned char kat4030_entropyin[] = {
+ 0xa9, 0x82, 0xe3, 0x8b, 0x24, 0xf6, 0xf9, 0xfa, 0x5f, 0x34, 0xc0, 0x9c,
+ 0x36, 0x1a, 0x1e, 0xf0, 0xbd, 0x76, 0x85, 0xd6, 0xc2, 0xdd, 0xd5, 0x50,
+ 0x48, 0x50, 0x68, 0x12, 0xc8, 0xce, 0x51, 0x8c, 0x6b, 0x91, 0x28, 0x1f,
+ 0x9a, 0xf1, 0x42, 0x80,
+};
+static const unsigned char kat4030_nonce[] = {0};
+static const unsigned char kat4030_persstr[] = {0};
+static const unsigned char kat4030_entropyinpr1[] = {
+ 0x49, 0x23, 0xbc, 0x25, 0xe2, 0x1d, 0x08, 0xb8, 0xfd, 0x3b, 0x2d, 0x62,
+ 0x19, 0x00, 0x3c, 0xb5, 0xb0, 0xb1, 0x24, 0xd9, 0x42, 0xe9, 0x08, 0x1b,
+ 0x7d, 0xd4, 0xc0, 0xef, 0x85, 0x01, 0x54, 0xb7, 0x24, 0x24, 0x4e, 0x8c,
+ 0x37, 0x1b, 0x10, 0x36,
+};
+static const unsigned char kat4030_addinpr1[] = {0};
+static const unsigned char kat4030_entropyinpr2[] = {
+ 0x06, 0xf8, 0xb3, 0xc5, 0x0b, 0x1e, 0xcf, 0xec, 0x50, 0x02, 0x49, 0x69,
+ 0xb3, 0x4d, 0x60, 0x5c, 0x9b, 0x8f, 0x47, 0x4a, 0x4d, 0x67, 0x35, 0x9f,
+ 0xfc, 0xb7, 0x4e, 0x83, 0x6b, 0x67, 0x8b, 0xb8, 0xf2, 0x94, 0xca, 0xfd,
+ 0x84, 0xee, 0x62, 0x69,
+};
+static const unsigned char kat4030_addinpr2[] = {0};
+static const unsigned char kat4030_retbits[] = {
+ 0x50, 0x66, 0x7c, 0xb2, 0x64, 0x2a, 0x63, 0x91, 0x4f, 0xd8, 0x5a, 0x83,
+ 0xf5, 0x7f, 0xbd, 0x20, 0xe7, 0x24, 0x36, 0xfd, 0xf4, 0x0b, 0x27, 0x02,
+ 0x23, 0x8b, 0x97, 0xb4, 0xfe, 0xe6, 0x5b, 0x8f, 0x95, 0xc8, 0x1d, 0x1a,
+ 0xcd, 0x9c, 0x57, 0x91, 0xb0, 0x5d, 0x30, 0xd8, 0x69, 0x74, 0x9b, 0x3d,
+ 0xaa, 0x46, 0x9d, 0xfa, 0x16, 0xbd, 0xae, 0x24, 0x88, 0xc1, 0x8b, 0x35,
+ 0x97, 0x11, 0x1b, 0x7e,
+};
+static const struct drbg_kat_pr_true kat4030_t = {
+ 9, kat4030_entropyin, kat4030_nonce, kat4030_persstr,
+ kat4030_entropyinpr1, kat4030_addinpr1, kat4030_entropyinpr2,
+ kat4030_addinpr2, kat4030_retbits
+};
+static const struct drbg_kat kat4030 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat4030_t
+};
+
+static const unsigned char kat4031_entropyin[] = {
+ 0xe2, 0x15, 0xbd, 0x3d, 0xa5, 0xd2, 0x4c, 0x75, 0x84, 0x20, 0xeb, 0x74,
+ 0xb9, 0x11, 0x28, 0x2e, 0x8a, 0x71, 0xe7, 0x87, 0xcd, 0x86, 0x59, 0x31,
+ 0x68, 0x44, 0x07, 0x9d, 0x3c, 0xb2, 0x80, 0xcd, 0xf5, 0x18, 0x4d, 0xab,
+ 0x81, 0x94, 0xbf, 0x84,
+};
+static const unsigned char kat4031_nonce[] = {0};
+static const unsigned char kat4031_persstr[] = {0};
+static const unsigned char kat4031_entropyinpr1[] = {
+ 0xf4, 0x4c, 0x96, 0x09, 0x59, 0xc9, 0xd3, 0xf4, 0x2d, 0xb2, 0x58, 0x46,
+ 0xb7, 0xc0, 0x1c, 0x48, 0xa0, 0xe4, 0xa5, 0x58, 0xce, 0xd5, 0xa4, 0x7a,
+ 0xa6, 0x61, 0x6d, 0x8c, 0x54, 0x1e, 0xf3, 0x77, 0xe2, 0x3f, 0xe0, 0xf9,
+ 0xa9, 0x71, 0x12, 0xa2,
+};
+static const unsigned char kat4031_addinpr1[] = {0};
+static const unsigned char kat4031_entropyinpr2[] = {
+ 0xf1, 0xb7, 0x4b, 0x7f, 0x80, 0x62, 0xea, 0x46, 0x14, 0x01, 0xf2, 0xc8,
+ 0xaf, 0xed, 0xd3, 0x0f, 0x7b, 0x48, 0xc9, 0x33, 0xa7, 0xb0, 0xf9, 0x6d,
+ 0x1c, 0x90, 0x32, 0x94, 0x39, 0xd4, 0xa5, 0x0d, 0xd3, 0x30, 0x71, 0x4c,
+ 0xb4, 0xc6, 0x43, 0x8b,
+};
+static const unsigned char kat4031_addinpr2[] = {0};
+static const unsigned char kat4031_retbits[] = {
+ 0x29, 0x68, 0x24, 0x56, 0x84, 0x31, 0x3f, 0x93, 0xd2, 0x52, 0x7c, 0x5c,
+ 0x13, 0x83, 0x5f, 0xe8, 0x20, 0xbd, 0xbd, 0xb7, 0xf4, 0x76, 0xfa, 0x8e,
+ 0x0a, 0xdf, 0xf5, 0xa4, 0x3f, 0x48, 0xd0, 0xde, 0x2c, 0x09, 0xa4, 0xc9,
+ 0xae, 0xcb, 0x9e, 0xdd, 0x7f, 0xc4, 0xee, 0x2b, 0xf8, 0x93, 0xb3, 0x1b,
+ 0x8f, 0x1d, 0x6a, 0xa4, 0xf3, 0x24, 0x9a, 0xa6, 0x86, 0x5f, 0x83, 0xf4,
+ 0x81, 0xd2, 0x6a, 0x84,
+};
+static const struct drbg_kat_pr_true kat4031_t = {
+ 10, kat4031_entropyin, kat4031_nonce, kat4031_persstr,
+ kat4031_entropyinpr1, kat4031_addinpr1, kat4031_entropyinpr2,
+ kat4031_addinpr2, kat4031_retbits
+};
+static const struct drbg_kat kat4031 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat4031_t
+};
+
+static const unsigned char kat4032_entropyin[] = {
+ 0x8b, 0x39, 0x2d, 0x1f, 0xf4, 0x00, 0xf9, 0xae, 0x5a, 0xc1, 0x6b, 0xb0,
+ 0x0f, 0x2c, 0x9c, 0xee, 0xf5, 0xed, 0x4c, 0x6a, 0x63, 0x48, 0x28, 0x72,
+ 0x8a, 0x5b, 0x5f, 0x1d, 0xe4, 0xe0, 0x0c, 0xeb, 0xd9, 0xa4, 0x95, 0x44,
+ 0x2a, 0x23, 0xb7, 0x8b,
+};
+static const unsigned char kat4032_nonce[] = {0};
+static const unsigned char kat4032_persstr[] = {0};
+static const unsigned char kat4032_entropyinpr1[] = {
+ 0x03, 0x3b, 0xdf, 0xb8, 0x71, 0x85, 0x88, 0x73, 0x9b, 0x3f, 0x8c, 0xac,
+ 0x83, 0x46, 0xfd, 0x94, 0x6d, 0x64, 0x9c, 0x09, 0x38, 0xdc, 0xb3, 0x2f,
+ 0xed, 0x47, 0x3f, 0xda, 0xca, 0x62, 0xb0, 0x96, 0x71, 0x28, 0xac, 0x53,
+ 0xa6, 0x05, 0x48, 0x7c,
+};
+static const unsigned char kat4032_addinpr1[] = {0};
+static const unsigned char kat4032_entropyinpr2[] = {
+ 0xbb, 0x4f, 0x54, 0x74, 0xcc, 0x0e, 0xaf, 0x43, 0x76, 0x77, 0x2f, 0x19,
+ 0xdb, 0xa7, 0xa5, 0x99, 0x6d, 0x32, 0x90, 0x67, 0xcf, 0xd6, 0xfe, 0xaa,
+ 0x6e, 0x61, 0x79, 0x66, 0x0f, 0xff, 0x0c, 0xd4, 0x34, 0x2b, 0xd7, 0xb8,
+ 0x3b, 0x31, 0x79, 0xab,
+};
+static const unsigned char kat4032_addinpr2[] = {0};
+static const unsigned char kat4032_retbits[] = {
+ 0xa9, 0xc4, 0x3e, 0x4e, 0x9c, 0xb4, 0xf5, 0xfb, 0x50, 0x24, 0x21, 0x95,
+ 0xed, 0x92, 0x9d, 0xe8, 0xa1, 0x5b, 0x58, 0xc8, 0xb6, 0x69, 0xaa, 0x80,
+ 0x69, 0x0a, 0xd3, 0xc8, 0x2a, 0x80, 0x1d, 0xaa, 0x01, 0x2d, 0x61, 0xab,
+ 0x0d, 0x09, 0x2e, 0xb5, 0x12, 0xd6, 0x64, 0x3f, 0xa3, 0xee, 0x39, 0xa2,
+ 0xcb, 0x58, 0xe8, 0x14, 0x2a, 0x11, 0x33, 0x60, 0x62, 0x80, 0xc0, 0x5e,
+ 0xe0, 0xa0, 0xbc, 0xda,
+};
+static const struct drbg_kat_pr_true kat4032_t = {
+ 11, kat4032_entropyin, kat4032_nonce, kat4032_persstr,
+ kat4032_entropyinpr1, kat4032_addinpr1, kat4032_entropyinpr2,
+ kat4032_addinpr2, kat4032_retbits
+};
+static const struct drbg_kat kat4032 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat4032_t
+};
+
+static const unsigned char kat4033_entropyin[] = {
+ 0xa0, 0x7c, 0x4e, 0xb7, 0x21, 0x2c, 0xe9, 0x93, 0xb9, 0xd6, 0xc7, 0x44,
+ 0x10, 0xa5, 0x9b, 0xe0, 0x6b, 0x79, 0x75, 0x33, 0x26, 0xec, 0x40, 0xed,
+ 0x2f, 0xa7, 0x92, 0x40, 0xfc, 0xf5, 0x17, 0x42, 0xba, 0xec, 0x43, 0x1c,
+ 0x73, 0xa2, 0x43, 0x6f,
+};
+static const unsigned char kat4033_nonce[] = {0};
+static const unsigned char kat4033_persstr[] = {0};
+static const unsigned char kat4033_entropyinpr1[] = {
+ 0xa2, 0x4b, 0x4f, 0x6b, 0x44, 0x39, 0xe5, 0x66, 0x13, 0x5a, 0x54, 0x16,
+ 0x46, 0xd6, 0x4c, 0x0b, 0x63, 0x73, 0xe4, 0x98, 0x1e, 0x79, 0x4b, 0x24,
+ 0xe2, 0xe4, 0x43, 0x4d, 0x87, 0x37, 0x9e, 0x93, 0x21, 0xc5, 0x7d, 0x0e,
+ 0x25, 0x7a, 0x01, 0xe0,
+};
+static const unsigned char kat4033_addinpr1[] = {0};
+static const unsigned char kat4033_entropyinpr2[] = {
+ 0x80, 0xe0, 0x0b, 0x56, 0x58, 0x54, 0x5f, 0x02, 0xe7, 0xfd, 0xf9, 0xf3,
+ 0x9b, 0x4c, 0x04, 0xce, 0xe6, 0x6c, 0x0e, 0x4e, 0xa1, 0xd1, 0x87, 0x75,
+ 0x77, 0x30, 0x6d, 0x5c, 0x21, 0xd4, 0x1f, 0x61, 0x20, 0xf3, 0x8e, 0x20,
+ 0xa8, 0x29, 0x0d, 0xbf,
+};
+static const unsigned char kat4033_addinpr2[] = {0};
+static const unsigned char kat4033_retbits[] = {
+ 0x26, 0xf2, 0xda, 0xb5, 0x6a, 0x4a, 0xa9, 0x2d, 0xa0, 0x10, 0x53, 0x93,
+ 0x25, 0xb0, 0xb0, 0xa6, 0x15, 0xea, 0x2c, 0xd2, 0xf6, 0xd5, 0xd5, 0x2f,
+ 0x3b, 0xed, 0xf4, 0xa6, 0xee, 0xfd, 0xbd, 0xa8, 0x68, 0x4e, 0x33, 0x0c,
+ 0x7b, 0xc8, 0x62, 0x95, 0xc6, 0xc6, 0x47, 0x20, 0x79, 0xa1, 0x7f, 0xce,
+ 0x70, 0xfc, 0xad, 0x09, 0x1e, 0x7d, 0x03, 0xd5, 0x17, 0x9d, 0x91, 0x30,
+ 0xe2, 0x65, 0x7a, 0xb3,
+};
+static const struct drbg_kat_pr_true kat4033_t = {
+ 12, kat4033_entropyin, kat4033_nonce, kat4033_persstr,
+ kat4033_entropyinpr1, kat4033_addinpr1, kat4033_entropyinpr2,
+ kat4033_addinpr2, kat4033_retbits
+};
+static const struct drbg_kat kat4033 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat4033_t
+};
+
+static const unsigned char kat4034_entropyin[] = {
+ 0xcf, 0x7b, 0x32, 0x1c, 0xfc, 0x54, 0x20, 0x95, 0x4d, 0xdb, 0xac, 0x71,
+ 0x9f, 0xe2, 0x76, 0xb1, 0x43, 0xd7, 0x12, 0x46, 0x16, 0x15, 0x37, 0x57,
+ 0xc4, 0x7b, 0x0c, 0xb3, 0xe6, 0x07, 0x6f, 0x95, 0xe1, 0x1c, 0x22, 0x1a,
+ 0x92, 0xa0, 0xff, 0xe1,
+};
+static const unsigned char kat4034_nonce[] = {0};
+static const unsigned char kat4034_persstr[] = {0};
+static const unsigned char kat4034_entropyinpr1[] = {
+ 0x00, 0xf1, 0x98, 0x59, 0x9d, 0x42, 0x12, 0x8e, 0x23, 0x85, 0xd3, 0xd2,
+ 0x7d, 0x0f, 0xe3, 0x1d, 0x97, 0xfe, 0x2d, 0x02, 0x9f, 0x07, 0xa7, 0xd8,
+ 0x1c, 0x27, 0xa0, 0x81, 0x2d, 0x45, 0xf0, 0xe5, 0x22, 0xc7, 0x6c, 0x21,
+ 0x38, 0x26, 0x31, 0xf1,
+};
+static const unsigned char kat4034_addinpr1[] = {0};
+static const unsigned char kat4034_entropyinpr2[] = {
+ 0xcc, 0x8d, 0x81, 0x18, 0x73, 0x14, 0xe7, 0x6f, 0xb5, 0x3c, 0xd0, 0x8b,
+ 0x89, 0x0d, 0xb3, 0x1c, 0xd0, 0x0d, 0xfd, 0xa5, 0xd5, 0x94, 0x03, 0x25,
+ 0x07, 0xc0, 0xcd, 0x2a, 0x0b, 0xd1, 0x44, 0x5b, 0x44, 0x22, 0x08, 0x73,
+ 0x41, 0xbc, 0x36, 0xda,
+};
+static const unsigned char kat4034_addinpr2[] = {0};
+static const unsigned char kat4034_retbits[] = {
+ 0x1b, 0x94, 0xdf, 0x00, 0x2a, 0x93, 0x32, 0x64, 0x91, 0xf2, 0x82, 0x93,
+ 0x3b, 0xc5, 0x8b, 0x8c, 0xa1, 0xd3, 0x0f, 0xcf, 0x59, 0x12, 0x35, 0xe7,
+ 0x15, 0x2e, 0xb1, 0x2f, 0x73, 0x56, 0xc3, 0x1a, 0x7e, 0xcf, 0x9f, 0x63,
+ 0x8a, 0x7f, 0xa2, 0x79, 0xd5, 0xc5, 0x98, 0x24, 0x43, 0x7d, 0x59, 0x7f,
+ 0xd6, 0x40, 0xad, 0xa1, 0xc5, 0xca, 0xcf, 0x95, 0x57, 0xfd, 0x25, 0x93,
+ 0xcc, 0xa8, 0x89, 0x2b,
+};
+static const struct drbg_kat_pr_true kat4034_t = {
+ 13, kat4034_entropyin, kat4034_nonce, kat4034_persstr,
+ kat4034_entropyinpr1, kat4034_addinpr1, kat4034_entropyinpr2,
+ kat4034_addinpr2, kat4034_retbits
+};
+static const struct drbg_kat kat4034 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat4034_t
+};
+
+static const unsigned char kat4035_entropyin[] = {
+ 0x9b, 0xfc, 0xf7, 0xe4, 0xd3, 0xaf, 0x6c, 0xac, 0xab, 0xa0, 0xef, 0x99,
+ 0x9c, 0x53, 0x4f, 0xed, 0x5d, 0x5f, 0xcb, 0x58, 0xc9, 0x64, 0xaf, 0x26,
+ 0xc9, 0xea, 0x5b, 0x2d, 0x6c, 0xbf, 0x5b, 0xb1, 0xa8, 0x30, 0xcd, 0xb0,
+ 0x88, 0x01, 0xde, 0x7f,
+};
+static const unsigned char kat4035_nonce[] = {0};
+static const unsigned char kat4035_persstr[] = {0};
+static const unsigned char kat4035_entropyinpr1[] = {
+ 0xad, 0x92, 0x7a, 0x71, 0xc6, 0x39, 0x0c, 0x56, 0x13, 0xa7, 0xc1, 0x47,
+ 0x80, 0xab, 0xe6, 0xd2, 0x66, 0xb2, 0xd1, 0x26, 0xaa, 0x49, 0xf2, 0x3c,
+ 0x5f, 0xb6, 0x0e, 0x92, 0x73, 0x63, 0x26, 0x15, 0x12, 0x93, 0xeb, 0x36,
+ 0xe3, 0x1d, 0xc9, 0xbc,
+};
+static const unsigned char kat4035_addinpr1[] = {0};
+static const unsigned char kat4035_entropyinpr2[] = {
+ 0x15, 0x2e, 0xc7, 0xc0, 0xd2, 0x6e, 0xab, 0x6d, 0xe2, 0x9d, 0x3d, 0x2e,
+ 0xf3, 0x21, 0x28, 0x12, 0x97, 0xbd, 0x25, 0x91, 0xbe, 0x88, 0x73, 0x18,
+ 0x71, 0x2c, 0xcd, 0xbb, 0xd3, 0xec, 0xfc, 0x1c, 0x92, 0x50, 0xf9, 0x9a,
+ 0x22, 0x6f, 0xc9, 0xb8,
+};
+static const unsigned char kat4035_addinpr2[] = {0};
+static const unsigned char kat4035_retbits[] = {
+ 0x0a, 0xd1, 0x10, 0x14, 0x54, 0xcf, 0xe0, 0x91, 0xf1, 0x45, 0x63, 0x83,
+ 0xee, 0xb1, 0xe7, 0xa9, 0x68, 0x32, 0x8d, 0xa1, 0x50, 0xf1, 0x16, 0x6b,
+ 0x89, 0xe7, 0xc2, 0x02, 0xda, 0xf5, 0xe4, 0x23, 0x24, 0x31, 0x4c, 0x43,
+ 0xfd, 0x1d, 0xa6, 0xde, 0x3f, 0xeb, 0x9f, 0xfc, 0xf8, 0x2c, 0xf2, 0x17,
+ 0xbb, 0xcd, 0xf5, 0xc9, 0x68, 0x64, 0xc2, 0x27, 0x24, 0x63, 0x06, 0xf0,
+ 0xc9, 0x75, 0xc4, 0xc8,
+};
+static const struct drbg_kat_pr_true kat4035_t = {
+ 14, kat4035_entropyin, kat4035_nonce, kat4035_persstr,
+ kat4035_entropyinpr1, kat4035_addinpr1, kat4035_entropyinpr2,
+ kat4035_addinpr2, kat4035_retbits
+};
+static const struct drbg_kat kat4035 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 0, 64, &kat4035_t
+};
+
+static const unsigned char kat4036_entropyin[] = {
+ 0x78, 0xcb, 0x8e, 0xb2, 0x7a, 0xd2, 0xbe, 0x1e, 0x7d, 0x96, 0x75, 0x52,
+ 0xa6, 0xe2, 0x24, 0x93, 0x09, 0x55, 0x65, 0xa1, 0x6b, 0x04, 0xcf, 0xfe,
+ 0x05, 0x96, 0xfa, 0x3b, 0xbd, 0x59, 0x2e, 0xcb, 0xf9, 0x02, 0xb7, 0xe6,
+ 0xd2, 0x38, 0x54, 0xd4,
+};
+static const unsigned char kat4036_nonce[] = {0};
+static const unsigned char kat4036_persstr[] = {0};
+static const unsigned char kat4036_entropyinpr1[] = {
+ 0x62, 0x2a, 0x30, 0x3d, 0x7b, 0x66, 0x6e, 0xbd, 0x3e, 0x50, 0x5c, 0x7c,
+ 0x89, 0xe8, 0x92, 0xb3, 0xf9, 0x75, 0xcf, 0x40, 0x80, 0x1f, 0x55, 0x27,
+ 0x00, 0xa6, 0x22, 0x40, 0x4b, 0xb0, 0xf7, 0xfc, 0x19, 0xe1, 0xa2, 0x7e,
+ 0x2c, 0xf2, 0x7d, 0x46,
+};
+static const unsigned char kat4036_addinpr1[] = {
+ 0x83, 0xeb, 0xb6, 0xfd, 0x47, 0x3d, 0x7d, 0x2c, 0x84, 0xee, 0xe0, 0x20,
+ 0x11, 0x19, 0xc4, 0x82, 0x39, 0x5a, 0x90, 0x97, 0xc7, 0x9d, 0xd7, 0xec,
+ 0xf6, 0x6c, 0x44, 0xd4, 0x23, 0x38, 0xf3, 0x24, 0x12, 0x06, 0xe1, 0x57,
+ 0x17, 0xa0, 0x8b, 0x2a,
+};
+static const unsigned char kat4036_entropyinpr2[] = {
+ 0x79, 0x11, 0x0b, 0x95, 0xd7, 0x9e, 0x2d, 0xc2, 0xb5, 0xcd, 0x9d, 0xc1,
+ 0x73, 0xb1, 0x8c, 0xca, 0x4a, 0x18, 0x52, 0x48, 0xce, 0x5f, 0x74, 0xa9,
+ 0x34, 0x03, 0x85, 0x30, 0x39, 0x26, 0x00, 0xea, 0x44, 0xda, 0x29, 0x2b,
+ 0x0b, 0x2f, 0x64, 0x4e,
+};
+static const unsigned char kat4036_addinpr2[] = {
+ 0x44, 0x16, 0x68, 0x39, 0x33, 0xf1, 0x19, 0x8e, 0xd5, 0xe4, 0xd9, 0xe8,
+ 0x8a, 0x2c, 0x2d, 0xe0, 0x34, 0x68, 0x43, 0x89, 0x65, 0x98, 0x5d, 0x0a,
+ 0xd9, 0x78, 0xf6, 0x7d, 0xc1, 0x54, 0x91, 0xe9, 0x66, 0x91, 0x07, 0xc6,
+ 0xf7, 0x4c, 0x4d, 0xb2,
+};
+static const unsigned char kat4036_retbits[] = {
+ 0xa2, 0xee, 0x55, 0x15, 0x31, 0x90, 0x35, 0x10, 0x8d, 0x0c, 0xe2, 0x30,
+ 0x21, 0x82, 0x5a, 0x47, 0xdd, 0xee, 0xe1, 0xd5, 0x5b, 0xea, 0xf7, 0xcb,
+ 0x2e, 0xca, 0x79, 0x6d, 0xa9, 0x41, 0x93, 0xc5, 0x9a, 0x07, 0x31, 0xdf,
+ 0x73, 0x48, 0xcd, 0xee, 0xd7, 0xb9, 0x1d, 0x6c, 0xd9, 0x33, 0x63, 0x31,
+ 0xba, 0x71, 0x7d, 0xaf, 0x43, 0xed, 0x45, 0x4a, 0x65, 0x4d, 0xd2, 0x3f,
+ 0x5f, 0x6d, 0xb8, 0x9e,
+};
+static const struct drbg_kat_pr_true kat4036_t = {
+ 0, kat4036_entropyin, kat4036_nonce, kat4036_persstr,
+ kat4036_entropyinpr1, kat4036_addinpr1, kat4036_entropyinpr2,
+ kat4036_addinpr2, kat4036_retbits
+};
+static const struct drbg_kat kat4036 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat4036_t
+};
+
+static const unsigned char kat4037_entropyin[] = {
+ 0x60, 0x5d, 0x4d, 0xaf, 0x01, 0x67, 0x04, 0xa8, 0x6d, 0x30, 0x1b, 0xc0,
+ 0xf1, 0x90, 0x17, 0x3c, 0x8a, 0x0b, 0x35, 0x9c, 0xd9, 0x29, 0x59, 0xf7,
+ 0xb2, 0xda, 0xd8, 0x25, 0xf6, 0xb4, 0xe4, 0x58, 0x53, 0x5e, 0xe5, 0x9f,
+ 0x8f, 0xf0, 0x83, 0x5c,
+};
+static const unsigned char kat4037_nonce[] = {0};
+static const unsigned char kat4037_persstr[] = {0};
+static const unsigned char kat4037_entropyinpr1[] = {
+ 0xbc, 0x66, 0x9c, 0xa8, 0x79, 0x22, 0x11, 0x77, 0x82, 0xe1, 0x96, 0xc6,
+ 0x25, 0x62, 0x11, 0xdf, 0x02, 0xaf, 0x0b, 0xb2, 0x85, 0x8b, 0x53, 0xa0,
+ 0x43, 0x0b, 0x76, 0xc3, 0x82, 0x7b, 0x3e, 0x31, 0x98, 0x24, 0x5c, 0xe0,
+ 0x69, 0x30, 0xea, 0x33,
+};
+static const unsigned char kat4037_addinpr1[] = {
+ 0xf3, 0xa9, 0x82, 0xe6, 0x63, 0xca, 0xb1, 0x7f, 0x41, 0xb0, 0xe4, 0x12,
+ 0xe2, 0xb6, 0x3a, 0x87, 0x8c, 0x00, 0xde, 0x13, 0x7d, 0x9c, 0x59, 0x8d,
+ 0x0b, 0x7c, 0x92, 0xde, 0xaf, 0x96, 0x37, 0x39, 0xd3, 0x89, 0x16, 0xb5,
+ 0xf3, 0xd7, 0x5d, 0x94,
+};
+static const unsigned char kat4037_entropyinpr2[] = {
+ 0x48, 0x70, 0x28, 0x10, 0xba, 0x65, 0x1e, 0x6a, 0x41, 0xd0, 0x4f, 0xb4,
+ 0x5a, 0x7c, 0xc5, 0x76, 0x0e, 0x33, 0xc5, 0x49, 0x5b, 0x9c, 0x16, 0xb8,
+ 0xdc, 0xfe, 0x9a, 0x72, 0x80, 0xc2, 0x19, 0x90, 0x75, 0xe5, 0x14, 0x48,
+ 0xa5, 0x0c, 0x6d, 0xee,
+};
+static const unsigned char kat4037_addinpr2[] = {
+ 0x90, 0xfc, 0xc0, 0x6c, 0x65, 0xe4, 0xe1, 0xd8, 0x31, 0xd7, 0xe4, 0xba,
+ 0xc1, 0x6e, 0xbe, 0xe3, 0xec, 0x53, 0xe1, 0x8b, 0xcd, 0x35, 0xf7, 0x3a,
+ 0x5c, 0x4b, 0xbd, 0xf8, 0x1d, 0xcb, 0x99, 0x18, 0xde, 0x5a, 0x5e, 0xdc,
+ 0xe5, 0x2a, 0xa6, 0x1e,
+};
+static const unsigned char kat4037_retbits[] = {
+ 0x12, 0x77, 0x9e, 0xa7, 0xe2, 0x7a, 0xaf, 0xe1, 0xc2, 0xf4, 0x5c, 0x7c,
+ 0x7b, 0x12, 0x90, 0x2e, 0x0b, 0x10, 0xdc, 0xa2, 0x30, 0xb8, 0x96, 0x0c,
+ 0x87, 0x5d, 0x0d, 0x3b, 0x33, 0xe2, 0x3d, 0x0a, 0xcb, 0x47, 0x0c, 0xab,
+ 0x7f, 0x20, 0xbd, 0xe3, 0x47, 0x09, 0x9b, 0xea, 0xf4, 0xc1, 0xb1, 0x34,
+ 0xe6, 0xd8, 0xcb, 0xfc, 0x8c, 0x6f, 0x35, 0x71, 0xcb, 0xf7, 0x02, 0xc3,
+ 0xce, 0x5e, 0xdd, 0xeb,
+};
+static const struct drbg_kat_pr_true kat4037_t = {
+ 1, kat4037_entropyin, kat4037_nonce, kat4037_persstr,
+ kat4037_entropyinpr1, kat4037_addinpr1, kat4037_entropyinpr2,
+ kat4037_addinpr2, kat4037_retbits
+};
+static const struct drbg_kat kat4037 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat4037_t
+};
+
+static const unsigned char kat4038_entropyin[] = {
+ 0x76, 0x21, 0x96, 0x26, 0x53, 0x7f, 0x37, 0x78, 0xdd, 0x3f, 0xb6, 0xbf,
+ 0x64, 0x19, 0xd3, 0x1a, 0xd8, 0x60, 0x11, 0x02, 0x08, 0xf3, 0xdc, 0x59,
+ 0x01, 0xde, 0xc4, 0x4e, 0xd2, 0xf9, 0x83, 0xe5, 0x41, 0x10, 0x72, 0xce,
+ 0x69, 0x51, 0x6b, 0x6a,
+};
+static const unsigned char kat4038_nonce[] = {0};
+static const unsigned char kat4038_persstr[] = {0};
+static const unsigned char kat4038_entropyinpr1[] = {
+ 0x4a, 0x7e, 0x8d, 0x93, 0xfc, 0x98, 0x8c, 0x84, 0xe9, 0xf8, 0x95, 0x51,
+ 0x19, 0x02, 0xfb, 0xf2, 0xcd, 0x8c, 0x49, 0x60, 0x3f, 0xd7, 0x98, 0x17,
+ 0x3c, 0xda, 0xdd, 0x4b, 0xfc, 0xcb, 0xc1, 0x5b, 0x3b, 0x99, 0xcf, 0xb6,
+ 0x32, 0x70, 0x40, 0xec,
+};
+static const unsigned char kat4038_addinpr1[] = {
+ 0xa3, 0x4f, 0x5c, 0x5d, 0xcb, 0xb4, 0x29, 0xbb, 0x9f, 0x93, 0xe3, 0x20,
+ 0x79, 0xfa, 0x44, 0xea, 0x9f, 0x1a, 0x9b, 0xdf, 0x75, 0x80, 0x2b, 0x24,
+ 0x8d, 0x63, 0x43, 0x20, 0x4b, 0x90, 0xd5, 0x16, 0xc6, 0xfb, 0xb4, 0x76,
+ 0x47, 0xef, 0xa8, 0x31,
+};
+static const unsigned char kat4038_entropyinpr2[] = {
+ 0xb8, 0xd5, 0x3e, 0xa7, 0xe4, 0xc5, 0xa9, 0xb1, 0x25, 0x89, 0x48, 0x5c,
+ 0x26, 0x74, 0x71, 0x8a, 0x5b, 0x64, 0x98, 0x42, 0x13, 0xae, 0xe7, 0xb0,
+ 0x0c, 0xb1, 0x7a, 0x58, 0x99, 0xea, 0x1f, 0x92, 0xfe, 0x10, 0xa8, 0xb9,
+ 0x63, 0x5d, 0xbb, 0x22,
+};
+static const unsigned char kat4038_addinpr2[] = {
+ 0xb5, 0xc4, 0x19, 0x5d, 0x5a, 0xa9, 0xb8, 0xa7, 0xf3, 0xdb, 0xa4, 0xb3,
+ 0xe1, 0x30, 0x21, 0xf6, 0xcb, 0xec, 0xe2, 0xb1, 0x9e, 0x24, 0x3d, 0x51,
+ 0xda, 0x9d, 0x53, 0xeb, 0x2c, 0x65, 0xf7, 0xf5, 0xc6, 0xfc, 0x35, 0x26,
+ 0x21, 0xd7, 0x0f, 0xe2,
+};
+static const unsigned char kat4038_retbits[] = {
+ 0x49, 0x24, 0xba, 0x74, 0xa5, 0xb2, 0x7f, 0x1c, 0xb6, 0x6c, 0x80, 0x14,
+ 0x1d, 0x30, 0xe5, 0x4b, 0xa9, 0x8e, 0x35, 0x29, 0x01, 0x10, 0xe5, 0xd0,
+ 0xb2, 0x95, 0x20, 0x99, 0xeb, 0x33, 0x8b, 0xbc, 0x3f, 0xfa, 0x41, 0xeb,
+ 0x75, 0xeb, 0x21, 0x6f, 0xd4, 0x38, 0xc3, 0x57, 0xbf, 0x23, 0x8b, 0x6b,
+ 0x6e, 0xd6, 0x60, 0xbe, 0x5b, 0x5e, 0xb9, 0xe4, 0x92, 0xf2, 0xf8, 0x00,
+ 0xd7, 0xf7, 0x6e, 0xf1,
+};
+static const struct drbg_kat_pr_true kat4038_t = {
+ 2, kat4038_entropyin, kat4038_nonce, kat4038_persstr,
+ kat4038_entropyinpr1, kat4038_addinpr1, kat4038_entropyinpr2,
+ kat4038_addinpr2, kat4038_retbits
+};
+static const struct drbg_kat kat4038 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat4038_t
+};
+
+static const unsigned char kat4039_entropyin[] = {
+ 0xf5, 0x49, 0x0e, 0x46, 0xd3, 0x0f, 0x66, 0xe2, 0x7a, 0x5d, 0xcf, 0x89,
+ 0xd8, 0x02, 0x8b, 0x17, 0x9d, 0x6f, 0xfa, 0xcb, 0xdf, 0xe5, 0x52, 0x2c,
+ 0x38, 0x3f, 0x0a, 0x9c, 0x29, 0xdd, 0x85, 0x56, 0x86, 0x31, 0x8d, 0xc3,
+ 0x1c, 0xc1, 0xf0, 0x05,
+};
+static const unsigned char kat4039_nonce[] = {0};
+static const unsigned char kat4039_persstr[] = {0};
+static const unsigned char kat4039_entropyinpr1[] = {
+ 0x71, 0xc7, 0xb6, 0x0f, 0xef, 0xfa, 0xd7, 0x6d, 0xe3, 0x46, 0x81, 0xf7,
+ 0xb5, 0xa0, 0x57, 0xbf, 0xa7, 0x32, 0x2c, 0x9a, 0x10, 0xf0, 0xbb, 0x37,
+ 0xfc, 0xdb, 0xeb, 0x4c, 0xb5, 0x5e, 0xe4, 0x5b, 0x2b, 0x2c, 0x64, 0xe3,
+ 0x77, 0x93, 0xc6, 0xd9,
+};
+static const unsigned char kat4039_addinpr1[] = {
+ 0xa1, 0x44, 0x8e, 0xa9, 0x45, 0x67, 0x7e, 0xba, 0x2e, 0x0a, 0xb0, 0xcb,
+ 0x0e, 0x6f, 0xdc, 0xe6, 0xa9, 0x15, 0x48, 0xce, 0xe6, 0xef, 0x14, 0x0f,
+ 0xc7, 0xa8, 0xeb, 0x4c, 0xc9, 0x1f, 0x2f, 0x5c, 0x48, 0x0a, 0xb2, 0x5b,
+ 0x6b, 0xdc, 0x22, 0x63,
+};
+static const unsigned char kat4039_entropyinpr2[] = {
+ 0xbd, 0xa7, 0xc4, 0xd0, 0xaa, 0x18, 0xde, 0xee, 0x36, 0x61, 0xf1, 0x5c,
+ 0xe3, 0xad, 0x7a, 0x31, 0x10, 0x53, 0x50, 0x4f, 0xc4, 0x6c, 0xa5, 0xda,
+ 0x3c, 0x42, 0xcf, 0x19, 0x1d, 0x24, 0x13, 0x9a, 0x53, 0x49, 0xcc, 0x1f,
+ 0xb6, 0xdd, 0xef, 0xde,
+};
+static const unsigned char kat4039_addinpr2[] = {
+ 0xc1, 0x41, 0xd3, 0x9a, 0x3c, 0xb7, 0x25, 0x29, 0xfe, 0xa2, 0xf8, 0x08,
+ 0x20, 0x49, 0x09, 0xfe, 0x92, 0xa0, 0x62, 0x19, 0x04, 0x4b, 0x31, 0x31,
+ 0x93, 0x18, 0x83, 0xb1, 0x08, 0xf0, 0x36, 0x3a, 0x7b, 0x49, 0x9f, 0x1d,
+ 0xed, 0x86, 0xf4, 0x25,
+};
+static const unsigned char kat4039_retbits[] = {
+ 0xaf, 0xa6, 0x6e, 0x2c, 0x80, 0x89, 0x8c, 0x57, 0x1f, 0x3b, 0x3e, 0xe9,
+ 0xf5, 0x3b, 0x5f, 0x5a, 0xd6, 0x01, 0xd1, 0xc9, 0xde, 0x5b, 0x0e, 0x2c,
+ 0x35, 0xb4, 0x60, 0x3b, 0xff, 0xb9, 0x7b, 0xd5, 0x45, 0xf0, 0x27, 0x1f,
+ 0xe7, 0x13, 0x3f, 0xb1, 0x9d, 0xd9, 0x9b, 0x23, 0xd2, 0x34, 0x3f, 0x80,
+ 0x71, 0x8a, 0xfe, 0xf5, 0x38, 0xdb, 0xe7, 0x29, 0x17, 0x3b, 0x95, 0xd7,
+ 0xff, 0x1a, 0xc4, 0x39,
+};
+static const struct drbg_kat_pr_true kat4039_t = {
+ 3, kat4039_entropyin, kat4039_nonce, kat4039_persstr,
+ kat4039_entropyinpr1, kat4039_addinpr1, kat4039_entropyinpr2,
+ kat4039_addinpr2, kat4039_retbits
+};
+static const struct drbg_kat kat4039 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat4039_t
+};
+
+static const unsigned char kat4040_entropyin[] = {
+ 0x98, 0xca, 0x8f, 0x32, 0x53, 0xf3, 0xec, 0x3b, 0x6e, 0xf6, 0x86, 0x3b,
+ 0x81, 0x82, 0x1f, 0x22, 0x13, 0xd3, 0x76, 0xde, 0x85, 0x78, 0xb0, 0x7b,
+ 0x77, 0x1d, 0x15, 0x73, 0x56, 0x1f, 0x35, 0xb0, 0x12, 0x87, 0x64, 0x28,
+ 0xf1, 0xb1, 0x0c, 0xdb,
+};
+static const unsigned char kat4040_nonce[] = {0};
+static const unsigned char kat4040_persstr[] = {0};
+static const unsigned char kat4040_entropyinpr1[] = {
+ 0x92, 0xbb, 0xd6, 0xc8, 0x60, 0xa6, 0xb3, 0x6d, 0x47, 0xb3, 0xb1, 0x01,
+ 0x57, 0xa7, 0xa6, 0x15, 0xf7, 0xbf, 0x53, 0xec, 0xe2, 0x9b, 0x78, 0x4a,
+ 0xc3, 0xec, 0x54, 0x5d, 0x48, 0xd3, 0xf1, 0x27, 0xa1, 0x6a, 0x59, 0xba,
+ 0xd4, 0xf9, 0x40, 0xa9,
+};
+static const unsigned char kat4040_addinpr1[] = {
+ 0x0c, 0xac, 0x06, 0x63, 0xdd, 0x13, 0x5c, 0x39, 0x3b, 0x4e, 0xe4, 0x53,
+ 0x7d, 0x73, 0xb0, 0x05, 0xfd, 0x66, 0x9a, 0x57, 0x7a, 0xe5, 0x20, 0x18,
+ 0x05, 0xc5, 0x4f, 0xb9, 0xb4, 0x6b, 0x5f, 0xff, 0xb8, 0x17, 0x4b, 0xec,
+ 0x02, 0x97, 0xfc, 0x35,
+};
+static const unsigned char kat4040_entropyinpr2[] = {
+ 0x37, 0x81, 0x6b, 0xaf, 0x00, 0x42, 0xfc, 0x29, 0xbc, 0x58, 0xa7, 0x4c,
+ 0x3d, 0x50, 0x72, 0x34, 0xf5, 0xab, 0x3c, 0x19, 0xf1, 0x74, 0xc3, 0x66,
+ 0x0d, 0xa2, 0x11, 0x52, 0xb6, 0x1e, 0x3d, 0x13, 0x01, 0x46, 0x14, 0x08,
+ 0xeb, 0x42, 0xe6, 0x7d,
+};
+static const unsigned char kat4040_addinpr2[] = {
+ 0x93, 0xde, 0x97, 0x78, 0xda, 0x65, 0x9d, 0x03, 0x41, 0xc5, 0xc7, 0x0c,
+ 0x33, 0xa7, 0xde, 0xc7, 0x52, 0x4e, 0xb4, 0x33, 0x62, 0x38, 0xba, 0xa5,
+ 0x23, 0x73, 0x0e, 0x92, 0xb4, 0x87, 0x05, 0x3f, 0xe1, 0xe4, 0x6d, 0x74,
+ 0x5f, 0xde, 0xdc, 0x79,
+};
+static const unsigned char kat4040_retbits[] = {
+ 0x54, 0x97, 0x6e, 0xae, 0x2a, 0x37, 0x43, 0x98, 0x45, 0xe0, 0xe5, 0xda,
+ 0xd2, 0xcc, 0x14, 0xe1, 0x3c, 0xf6, 0xc0, 0x05, 0x05, 0x83, 0xc1, 0x8f,
+ 0xe9, 0xd2, 0x62, 0xbb, 0x5a, 0xc2, 0x3e, 0x6e, 0xd6, 0x84, 0xca, 0x3c,
+ 0xca, 0xdd, 0x9f, 0x42, 0xc5, 0xb8, 0xbf, 0xc0, 0x31, 0x22, 0x02, 0x27,
+ 0xa3, 0x6d, 0x3a, 0x5a, 0xd8, 0x95, 0x18, 0x95, 0x44, 0x99, 0x0e, 0xa9,
+ 0xfe, 0x56, 0x15, 0xf1,
+};
+static const struct drbg_kat_pr_true kat4040_t = {
+ 4, kat4040_entropyin, kat4040_nonce, kat4040_persstr,
+ kat4040_entropyinpr1, kat4040_addinpr1, kat4040_entropyinpr2,
+ kat4040_addinpr2, kat4040_retbits
+};
+static const struct drbg_kat kat4040 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat4040_t
+};
+
+static const unsigned char kat4041_entropyin[] = {
+ 0x9d, 0x8e, 0x91, 0xb7, 0x22, 0x90, 0xb1, 0x1b, 0x9b, 0xa2, 0xa4, 0x26,
+ 0x8c, 0xd9, 0xbc, 0x89, 0x0d, 0x5b, 0x09, 0x43, 0x44, 0x3e, 0xe6, 0xc2,
+ 0x25, 0x2f, 0xc2, 0x44, 0x91, 0x20, 0xd4, 0x6b, 0x3c, 0x09, 0x92, 0x75,
+ 0x11, 0x49, 0xcd, 0xaf,
+};
+static const unsigned char kat4041_nonce[] = {0};
+static const unsigned char kat4041_persstr[] = {0};
+static const unsigned char kat4041_entropyinpr1[] = {
+ 0xec, 0x96, 0x5d, 0xad, 0x45, 0xc5, 0x4e, 0x79, 0xe2, 0xc5, 0xfc, 0x3f,
+ 0x63, 0x9a, 0x35, 0x48, 0x41, 0x50, 0xda, 0x4c, 0x69, 0x90, 0x5e, 0x48,
+ 0x4f, 0xf1, 0xfe, 0xe4, 0x99, 0xc8, 0xbc, 0x9f, 0x64, 0x6d, 0xa9, 0x55,
+ 0xb3, 0xf1, 0x63, 0x6b,
+};
+static const unsigned char kat4041_addinpr1[] = {
+ 0xaf, 0xbd, 0xd5, 0x2b, 0xdf, 0x1f, 0x5a, 0xfa, 0xfb, 0xe8, 0x51, 0x94,
+ 0x1d, 0x05, 0x95, 0xf9, 0x90, 0x78, 0xd3, 0x6e, 0x67, 0xe5, 0x61, 0x41,
+ 0x6b, 0x05, 0xac, 0x04, 0xe8, 0x02, 0x49, 0x52, 0x1c, 0x2c, 0xf1, 0xf5,
+ 0x5f, 0x16, 0xb9, 0xcd,
+};
+static const unsigned char kat4041_entropyinpr2[] = {
+ 0xfa, 0x5e, 0x0a, 0x66, 0xc4, 0x86, 0x4d, 0x9d, 0xf1, 0xa1, 0x4e, 0xe5,
+ 0xbc, 0xf7, 0x6b, 0xac, 0xbc, 0xce, 0x62, 0x52, 0x26, 0xa1, 0x27, 0x9c,
+ 0xf3, 0xef, 0x69, 0xe7, 0x71, 0x70, 0xac, 0x93, 0x1a, 0x52, 0xfc, 0xff,
+ 0x22, 0xe3, 0xb5, 0x89,
+};
+static const unsigned char kat4041_addinpr2[] = {
+ 0xcc, 0xce, 0x45, 0x26, 0xaa, 0x29, 0x9f, 0xdc, 0x32, 0xea, 0x98, 0x53,
+ 0xde, 0xc1, 0xb7, 0x71, 0x45, 0xbe, 0x4b, 0xcd, 0xf8, 0x8f, 0x71, 0xc7,
+ 0x7e, 0xde, 0x3d, 0x36, 0x73, 0x67, 0xbf, 0xb9, 0xd4, 0xd5, 0x63, 0xb5,
+ 0xaa, 0x5a, 0x65, 0x99,
+};
+static const unsigned char kat4041_retbits[] = {
+ 0x10, 0xd3, 0x5e, 0xaa, 0x2f, 0x47, 0x5e, 0xf1, 0xef, 0xea, 0x1a, 0xbe,
+ 0x1c, 0xfd, 0x74, 0xcd, 0xdd, 0xd8, 0x94, 0x9f, 0x66, 0x6d, 0xe6, 0xd0,
+ 0xf1, 0xd4, 0xb2, 0x0b, 0x5d, 0xbc, 0x53, 0xbe, 0xe6, 0xaa, 0x71, 0x2d,
+ 0xa0, 0x7e, 0x8b, 0xed, 0x23, 0x09, 0x42, 0x7d, 0x01, 0x71, 0x52, 0x1a,
+ 0x9f, 0x92, 0x83, 0x9c, 0xbe, 0xa9, 0x61, 0x05, 0xa8, 0x90, 0xe4, 0x23,
+ 0x8b, 0x02, 0x09, 0x23,
+};
+static const struct drbg_kat_pr_true kat4041_t = {
+ 5, kat4041_entropyin, kat4041_nonce, kat4041_persstr,
+ kat4041_entropyinpr1, kat4041_addinpr1, kat4041_entropyinpr2,
+ kat4041_addinpr2, kat4041_retbits
+};
+static const struct drbg_kat kat4041 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat4041_t
+};
+
+static const unsigned char kat4042_entropyin[] = {
+ 0x62, 0xf1, 0xad, 0x3b, 0x80, 0xd9, 0x4a, 0xb9, 0xc9, 0x5e, 0x22, 0x8c,
+ 0x5a, 0xd6, 0x9d, 0x8d, 0x48, 0x2a, 0x83, 0xa2, 0x12, 0x9f, 0xd1, 0x3f,
+ 0x5c, 0x84, 0xda, 0x76, 0x62, 0xb5, 0x90, 0x94, 0x95, 0x42, 0x1d, 0x23,
+ 0x89, 0xde, 0x12, 0xd6,
+};
+static const unsigned char kat4042_nonce[] = {0};
+static const unsigned char kat4042_persstr[] = {0};
+static const unsigned char kat4042_entropyinpr1[] = {
+ 0x4b, 0xfe, 0xd1, 0xe6, 0x9a, 0x27, 0xb4, 0x7e, 0xae, 0xd6, 0x87, 0x13,
+ 0x5e, 0xab, 0x67, 0xd3, 0x7d, 0x42, 0x5c, 0xf5, 0x5e, 0x65, 0xc4, 0x3a,
+ 0xc8, 0xed, 0xdb, 0x1d, 0x0f, 0xf7, 0xa2, 0xe3, 0x27, 0x54, 0x63, 0x13,
+ 0x7d, 0x81, 0xf1, 0xa0,
+};
+static const unsigned char kat4042_addinpr1[] = {
+ 0x12, 0x18, 0xc4, 0xc0, 0x3b, 0x69, 0x68, 0x8a, 0xfd, 0xe7, 0x31, 0x90,
+ 0xf9, 0xea, 0x5f, 0x53, 0x5d, 0x37, 0xd0, 0x6e, 0x66, 0x22, 0xac, 0xc8,
+ 0x81, 0x73, 0xec, 0xab, 0xdc, 0xac, 0xc4, 0x8e, 0x40, 0x11, 0xa4, 0x8c,
+ 0xfe, 0x7e, 0x1e, 0x60,
+};
+static const unsigned char kat4042_entropyinpr2[] = {
+ 0xeb, 0x90, 0xff, 0x94, 0x0c, 0x38, 0x03, 0x3d, 0x52, 0x50, 0xfe, 0xa4,
+ 0xad, 0x83, 0xdd, 0x3a, 0xa0, 0x46, 0x19, 0x6e, 0x7d, 0xed, 0xaa, 0x7b,
+ 0x17, 0xe8, 0x66, 0xae, 0x18, 0x02, 0x9a, 0xd2, 0xcf, 0xef, 0x14, 0xc4,
+ 0x0f, 0x65, 0x70, 0x30,
+};
+static const unsigned char kat4042_addinpr2[] = {
+ 0xe4, 0x7e, 0x8f, 0x0b, 0x61, 0xe8, 0xc7, 0x7f, 0x42, 0xa4, 0x52, 0xb4,
+ 0x68, 0xd6, 0x0c, 0xce, 0xb5, 0xaf, 0x20, 0x1e, 0x5a, 0x4a, 0x9b, 0xf8,
+ 0xf3, 0x61, 0x58, 0xea, 0x62, 0xed, 0x4d, 0xb0, 0x2f, 0x56, 0x6d, 0x46,
+ 0x24, 0x2d, 0x38, 0x0a,
+};
+static const unsigned char kat4042_retbits[] = {
+ 0x31, 0xfd, 0x04, 0x48, 0xae, 0xc0, 0xa6, 0x5f, 0x4d, 0x5c, 0xea, 0x1e,
+ 0xf3, 0xa8, 0x23, 0x1c, 0xa2, 0x33, 0x71, 0x21, 0xba, 0xdc, 0x6a, 0xc1,
+ 0x05, 0x0c, 0x3b, 0x8c, 0x73, 0x40, 0xe2, 0x12, 0xd6, 0x53, 0x57, 0xc5,
+ 0xdc, 0x74, 0x47, 0x46, 0xaa, 0xa1, 0x64, 0x98, 0xef, 0x80, 0xe1, 0xf8,
+ 0x68, 0x9f, 0x34, 0x95, 0x90, 0xbe, 0x02, 0x81, 0x80, 0x1b, 0x3b, 0xba,
+ 0x3d, 0xbe, 0x9f, 0x7c,
+};
+static const struct drbg_kat_pr_true kat4042_t = {
+ 6, kat4042_entropyin, kat4042_nonce, kat4042_persstr,
+ kat4042_entropyinpr1, kat4042_addinpr1, kat4042_entropyinpr2,
+ kat4042_addinpr2, kat4042_retbits
+};
+static const struct drbg_kat kat4042 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat4042_t
+};
+
+static const unsigned char kat4043_entropyin[] = {
+ 0xd0, 0x9b, 0x57, 0x30, 0x2f, 0x6f, 0x80, 0x4d, 0x52, 0x32, 0x18, 0x67,
+ 0x32, 0x15, 0x80, 0xa4, 0xf8, 0x43, 0x42, 0xcd, 0x1f, 0xad, 0x1a, 0xe6,
+ 0xcc, 0xb0, 0x52, 0x30, 0x4e, 0x59, 0xb9, 0x3b, 0xcc, 0xcf, 0xf1, 0xbb,
+ 0x92, 0x89, 0x86, 0x16,
+};
+static const unsigned char kat4043_nonce[] = {0};
+static const unsigned char kat4043_persstr[] = {0};
+static const unsigned char kat4043_entropyinpr1[] = {
+ 0x73, 0xa0, 0x73, 0x42, 0x46, 0x46, 0x27, 0x19, 0x8b, 0x4b, 0x91, 0x83,
+ 0x2e, 0x8c, 0xaf, 0xc4, 0x94, 0x9a, 0x47, 0x2b, 0x61, 0x3a, 0x89, 0x77,
+ 0x58, 0xc9, 0x3d, 0x83, 0xcf, 0x2a, 0x29, 0x1f, 0xe6, 0x60, 0x0d, 0xea,
+ 0x7f, 0x36, 0x14, 0xc5,
+};
+static const unsigned char kat4043_addinpr1[] = {
+ 0x63, 0xd1, 0x9d, 0x8f, 0x47, 0x6a, 0xe6, 0xc9, 0x29, 0x5a, 0xe2, 0x5d,
+ 0x44, 0xe2, 0xb7, 0xe2, 0x3a, 0xb9, 0x90, 0x93, 0x03, 0x37, 0x91, 0x0a,
+ 0x7f, 0x5e, 0x0c, 0xcf, 0x81, 0x4a, 0xb6, 0xf2, 0x45, 0xc3, 0x95, 0x28,
+ 0xdc, 0x3e, 0xdd, 0x56,
+};
+static const unsigned char kat4043_entropyinpr2[] = {
+ 0x40, 0xa1, 0x90, 0x6d, 0xcd, 0x6c, 0x60, 0xb2, 0xd4, 0x59, 0x80, 0x4d,
+ 0x94, 0xd6, 0xdf, 0x05, 0x88, 0xe7, 0xfd, 0xca, 0x36, 0xff, 0x4b, 0xa3,
+ 0x48, 0x8d, 0xf2, 0xe0, 0xef, 0xe6, 0x4c, 0x1e, 0x21, 0xa6, 0x44, 0xf7,
+ 0xa7, 0x01, 0x66, 0x35,
+};
+static const unsigned char kat4043_addinpr2[] = {
+ 0xde, 0xa7, 0x85, 0xe2, 0xb6, 0x91, 0x48, 0x19, 0x49, 0x97, 0xed, 0x61,
+ 0x67, 0x86, 0xdc, 0xbe, 0x46, 0x7a, 0x4e, 0x3f, 0xfd, 0x93, 0x7d, 0x40,
+ 0x96, 0x1b, 0xc4, 0x73, 0x68, 0x57, 0x85, 0xde, 0x08, 0x27, 0x73, 0x47,
+ 0x83, 0xca, 0xe7, 0xc4,
+};
+static const unsigned char kat4043_retbits[] = {
+ 0x36, 0xa8, 0xb2, 0xd1, 0xf9, 0x7a, 0x2c, 0x5c, 0xa0, 0x76, 0xd4, 0x0b,
+ 0x98, 0x71, 0x44, 0xd3, 0x02, 0x4a, 0xc1, 0x3e, 0x05, 0xef, 0x4f, 0x40,
+ 0xf7, 0xa7, 0x95, 0xe4, 0x2e, 0x49, 0xa6, 0xae, 0x53, 0xdb, 0x10, 0xcc,
+ 0xae, 0x26, 0x9a, 0xc7, 0x86, 0x8a, 0xe1, 0x78, 0xc2, 0xb2, 0x94, 0x0c,
+ 0x32, 0xd2, 0xc8, 0x40, 0x37, 0x50, 0x5b, 0x78, 0x25, 0x9d, 0x2b, 0x4c,
+ 0xc0, 0x1d, 0x26, 0xe9,
+};
+static const struct drbg_kat_pr_true kat4043_t = {
+ 7, kat4043_entropyin, kat4043_nonce, kat4043_persstr,
+ kat4043_entropyinpr1, kat4043_addinpr1, kat4043_entropyinpr2,
+ kat4043_addinpr2, kat4043_retbits
+};
+static const struct drbg_kat kat4043 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat4043_t
+};
+
+static const unsigned char kat4044_entropyin[] = {
+ 0x62, 0xca, 0xc0, 0xd1, 0x0c, 0x0e, 0xda, 0x9e, 0xae, 0x2d, 0x62, 0xfe,
+ 0xfb, 0xc1, 0x7e, 0xbe, 0xbf, 0x8c, 0x1f, 0x3b, 0xd3, 0x01, 0xf7, 0xa2,
+ 0x25, 0x6c, 0xfa, 0xce, 0xd8, 0x46, 0xc7, 0xd2, 0x9b, 0x1c, 0xaf, 0x58,
+ 0x0e, 0xa8, 0x67, 0xb5,
+};
+static const unsigned char kat4044_nonce[] = {0};
+static const unsigned char kat4044_persstr[] = {0};
+static const unsigned char kat4044_entropyinpr1[] = {
+ 0x3c, 0x7a, 0xb9, 0x21, 0xe3, 0xa7, 0x10, 0x47, 0x9d, 0xb0, 0x66, 0xeb,
+ 0xd1, 0xbe, 0xc4, 0x39, 0x1f, 0xc5, 0xba, 0xb8, 0xdf, 0xd3, 0x83, 0x88,
+ 0x3c, 0x97, 0xe8, 0x09, 0xf3, 0xc7, 0x82, 0xfb, 0xe4, 0x69, 0xb5, 0x3e,
+ 0x90, 0x69, 0x13, 0xb6,
+};
+static const unsigned char kat4044_addinpr1[] = {
+ 0xa8, 0xb3, 0x94, 0x1a, 0x9c, 0x9d, 0x26, 0x7e, 0x82, 0x44, 0x5e, 0xc5,
+ 0x0c, 0xd5, 0x98, 0xbf, 0x43, 0x5c, 0x8e, 0x92, 0xc1, 0xab, 0x2e, 0xb4,
+ 0x4a, 0xfc, 0xa1, 0xbf, 0x6a, 0xbd, 0x11, 0xbb, 0x21, 0xfc, 0xb8, 0x9d,
+ 0xee, 0xda, 0xd1, 0xee,
+};
+static const unsigned char kat4044_entropyinpr2[] = {
+ 0x16, 0x22, 0x90, 0xef, 0x03, 0xe8, 0xcc, 0x56, 0xda, 0xef, 0xfb, 0xeb,
+ 0x84, 0xa6, 0x20, 0xc4, 0xcc, 0x0d, 0x3d, 0x38, 0x5c, 0x88, 0x9e, 0xc3,
+ 0x1a, 0xeb, 0x7d, 0x3d, 0xbc, 0x33, 0xa0, 0xcf, 0xc2, 0x90, 0x41, 0x55,
+ 0xc4, 0x22, 0xe5, 0xa9,
+};
+static const unsigned char kat4044_addinpr2[] = {
+ 0x5d, 0xfb, 0x88, 0x87, 0xc0, 0x5c, 0x6d, 0xfe, 0x58, 0x03, 0x2c, 0xc1,
+ 0x9b, 0xe5, 0xd4, 0xaa, 0x51, 0xce, 0xd9, 0x2c, 0x87, 0x35, 0x0f, 0x05,
+ 0x2b, 0xa9, 0x93, 0x21, 0x45, 0x22, 0x38, 0x3b, 0xd2, 0x79, 0xfd, 0x31,
+ 0xbc, 0x6b, 0x54, 0xa2,
+};
+static const unsigned char kat4044_retbits[] = {
+ 0xe2, 0xfb, 0xe5, 0xda, 0xab, 0x4f, 0xd7, 0xd4, 0xc2, 0xca, 0x07, 0x1a,
+ 0x2b, 0xbb, 0x5a, 0xd4, 0x51, 0x8a, 0x46, 0x7f, 0x4f, 0xb0, 0x96, 0x17,
+ 0x02, 0x61, 0xd1, 0x05, 0x8a, 0xcb, 0xd8, 0xdd, 0xe6, 0xaa, 0x8c, 0x2b,
+ 0x25, 0xd7, 0xa6, 0x48, 0x99, 0x20, 0xd8, 0xf2, 0x25, 0xc5, 0x5a, 0xb4,
+ 0x83, 0x09, 0xfe, 0x81, 0x00, 0x8c, 0x59, 0xdc, 0xfa, 0x2a, 0xdc, 0x4d,
+ 0xf0, 0xcd, 0x6d, 0x45,
+};
+static const struct drbg_kat_pr_true kat4044_t = {
+ 8, kat4044_entropyin, kat4044_nonce, kat4044_persstr,
+ kat4044_entropyinpr1, kat4044_addinpr1, kat4044_entropyinpr2,
+ kat4044_addinpr2, kat4044_retbits
+};
+static const struct drbg_kat kat4044 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat4044_t
+};
+
+static const unsigned char kat4045_entropyin[] = {
+ 0xd1, 0x37, 0xbe, 0x3b, 0xdd, 0x16, 0xf9, 0x0d, 0x96, 0xe9, 0x99, 0x28,
+ 0xb3, 0xc2, 0x72, 0x10, 0xb0, 0xda, 0x7c, 0xda, 0x92, 0xb2, 0x7a, 0x2b,
+ 0xeb, 0xc5, 0xa9, 0xdd, 0x82, 0xd9, 0xdd, 0x8a, 0x08, 0x86, 0x4d, 0x39,
+ 0x93, 0x55, 0x8d, 0x4f,
+};
+static const unsigned char kat4045_nonce[] = {0};
+static const unsigned char kat4045_persstr[] = {0};
+static const unsigned char kat4045_entropyinpr1[] = {
+ 0xec, 0x4d, 0x22, 0x19, 0xcb, 0xdc, 0x84, 0xcd, 0xd6, 0x2f, 0xaf, 0x65,
+ 0xb6, 0xd1, 0x8d, 0x5c, 0xe2, 0x80, 0x87, 0xa5, 0x4e, 0x06, 0xce, 0x69,
+ 0xf3, 0x10, 0xb7, 0x98, 0x8d, 0xcb, 0x25, 0xbb, 0x0d, 0xf8, 0xdf, 0x52,
+ 0x4d, 0xa2, 0x4c, 0x24,
+};
+static const unsigned char kat4045_addinpr1[] = {
+ 0xd2, 0x2e, 0x21, 0x63, 0x15, 0xc9, 0x15, 0xd9, 0xb3, 0x59, 0xe5, 0x09,
+ 0xee, 0x48, 0xa6, 0x7f, 0x0a, 0x0f, 0x4e, 0x65, 0x77, 0x96, 0x72, 0xef,
+ 0xc1, 0x8b, 0xdf, 0x57, 0xe4, 0xd1, 0xf6, 0x66, 0xd9, 0xe4, 0xc8, 0xec,
+ 0x2c, 0xa4, 0x1f, 0x6b,
+};
+static const unsigned char kat4045_entropyinpr2[] = {
+ 0x2b, 0x00, 0xd8, 0x44, 0xfa, 0x01, 0xa2, 0xfc, 0x1d, 0x36, 0xe5, 0x13,
+ 0x15, 0xa9, 0xc0, 0xc5, 0x04, 0xc2, 0xd8, 0x8d, 0xef, 0xb2, 0x1d, 0x63,
+ 0x61, 0x67, 0xdc, 0x77, 0xf5, 0x24, 0x8e, 0x87, 0x70, 0x13, 0x76, 0xd4,
+ 0xd7, 0x53, 0xe1, 0x20,
+};
+static const unsigned char kat4045_addinpr2[] = {
+ 0x4a, 0xf1, 0x1e, 0xef, 0x51, 0x88, 0x10, 0x15, 0xd9, 0x2c, 0xc1, 0x88,
+ 0x2c, 0xd4, 0x80, 0x90, 0x36, 0xbf, 0xb3, 0x4a, 0x65, 0xe4, 0xeb, 0x93,
+ 0x3d, 0x2c, 0x55, 0xf0, 0xfa, 0x32, 0x7c, 0x8a, 0x2b, 0x21, 0xf9, 0xcf,
+ 0xbf, 0xbd, 0xdf, 0x9f,
+};
+static const unsigned char kat4045_retbits[] = {
+ 0xbb, 0x74, 0xb3, 0x2d, 0xc4, 0xb4, 0xf3, 0xd5, 0x7b, 0x5c, 0x02, 0xf7,
+ 0xbc, 0x78, 0x9f, 0xe3, 0x0a, 0xf9, 0x12, 0x6c, 0x5a, 0x78, 0xc6, 0x36,
+ 0x8d, 0x05, 0x5c, 0x2d, 0xcd, 0x86, 0x6f, 0xe6, 0x40, 0xe3, 0x92, 0x16,
+ 0xee, 0x15, 0x4a, 0x7f, 0xed, 0x5e, 0x48, 0x9a, 0x78, 0x4c, 0xc7, 0x56,
+ 0x22, 0xf0, 0xa0, 0x1d, 0xee, 0x1f, 0xb1, 0xd6, 0xab, 0x8a, 0x39, 0xbe,
+ 0x0f, 0x7b, 0xe9, 0x28,
+};
+static const struct drbg_kat_pr_true kat4045_t = {
+ 9, kat4045_entropyin, kat4045_nonce, kat4045_persstr,
+ kat4045_entropyinpr1, kat4045_addinpr1, kat4045_entropyinpr2,
+ kat4045_addinpr2, kat4045_retbits
+};
+static const struct drbg_kat kat4045 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat4045_t
+};
+
+static const unsigned char kat4046_entropyin[] = {
+ 0x20, 0xb1, 0xef, 0x15, 0x45, 0x01, 0x91, 0xf1, 0x23, 0x0a, 0xf6, 0x30,
+ 0xd2, 0xe7, 0xe7, 0x3f, 0xe3, 0x2b, 0x47, 0x85, 0xd3, 0xe5, 0x0c, 0x3e,
+ 0xb9, 0x14, 0x8b, 0x04, 0x9d, 0xca, 0x4a, 0x4f, 0x66, 0x39, 0x8e, 0xea,
+ 0x92, 0x24, 0xd1, 0x7a,
+};
+static const unsigned char kat4046_nonce[] = {0};
+static const unsigned char kat4046_persstr[] = {0};
+static const unsigned char kat4046_entropyinpr1[] = {
+ 0x45, 0x5c, 0x93, 0x85, 0x70, 0x0f, 0x23, 0x12, 0x4d, 0x9b, 0x3e, 0x28,
+ 0x91, 0xf8, 0x05, 0x09, 0x21, 0xcc, 0xbc, 0x3b, 0x50, 0x36, 0x40, 0xfc,
+ 0x8f, 0xae, 0x79, 0x6c, 0xc5, 0xb9, 0x26, 0xcf, 0x35, 0x31, 0x6e, 0x14,
+ 0x63, 0x65, 0x87, 0xc7,
+};
+static const unsigned char kat4046_addinpr1[] = {
+ 0x4d, 0x9b, 0x38, 0xf8, 0xdd, 0xad, 0x10, 0x71, 0x91, 0x66, 0x3e, 0xbd,
+ 0x7a, 0x4f, 0x73, 0x71, 0x45, 0xbd, 0xd5, 0xa0, 0x26, 0xa0, 0x1f, 0x12,
+ 0xbc, 0x56, 0x5a, 0x1c, 0xdd, 0x9e, 0x88, 0x11, 0xba, 0xb7, 0xf6, 0xd7,
+ 0xa6, 0x41, 0x62, 0x23,
+};
+static const unsigned char kat4046_entropyinpr2[] = {
+ 0x00, 0x3e, 0xdc, 0x62, 0x64, 0xdd, 0x51, 0x95, 0x63, 0x79, 0x2d, 0x81,
+ 0x47, 0xcc, 0xc5, 0x83, 0x57, 0x18, 0x35, 0x69, 0xb2, 0x18, 0x7d, 0xd0,
+ 0x41, 0xd8, 0xbe, 0x00, 0xef, 0xf4, 0xcf, 0x5a, 0x30, 0x11, 0x4b, 0x93,
+ 0x21, 0x03, 0xb4, 0x34,
+};
+static const unsigned char kat4046_addinpr2[] = {
+ 0x70, 0x40, 0x59, 0xd0, 0xf8, 0xc0, 0xed, 0x5c, 0xe5, 0x07, 0x54, 0x0c,
+ 0xa0, 0xa1, 0x2f, 0x12, 0x02, 0x47, 0x16, 0xb3, 0xea, 0x30, 0x05, 0x4e,
+ 0x81, 0x72, 0xf2, 0x7f, 0xbc, 0xe9, 0xd4, 0xd8, 0x4f, 0x3d, 0xb5, 0x60,
+ 0xd0, 0x6b, 0xcf, 0x75,
+};
+static const unsigned char kat4046_retbits[] = {
+ 0xbc, 0x5a, 0xf2, 0xbb, 0xc7, 0x00, 0xc2, 0x59, 0x2a, 0x0e, 0xf0, 0x0b,
+ 0xbd, 0x5a, 0xf4, 0x32, 0x28, 0x57, 0xe5, 0x93, 0xac, 0x41, 0x03, 0xa0,
+ 0xc6, 0x40, 0xd4, 0xa2, 0xa6, 0x9f, 0xee, 0x1f, 0x55, 0xd5, 0x71, 0x63,
+ 0x70, 0x92, 0x13, 0x7d, 0x34, 0x3f, 0x2d, 0x09, 0x39, 0x9d, 0x38, 0x6a,
+ 0x5a, 0x6c, 0x15, 0x4c, 0x57, 0x56, 0xba, 0x4c, 0x6d, 0x2d, 0x5b, 0xca,
+ 0x66, 0x53, 0x29, 0x46,
+};
+static const struct drbg_kat_pr_true kat4046_t = {
+ 10, kat4046_entropyin, kat4046_nonce, kat4046_persstr,
+ kat4046_entropyinpr1, kat4046_addinpr1, kat4046_entropyinpr2,
+ kat4046_addinpr2, kat4046_retbits
+};
+static const struct drbg_kat kat4046 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat4046_t
+};
+
+static const unsigned char kat4047_entropyin[] = {
+ 0x78, 0x30, 0x96, 0xff, 0x2e, 0x91, 0x1c, 0x69, 0xae, 0x95, 0x39, 0xaa,
+ 0xf8, 0x6d, 0xa4, 0xab, 0x41, 0x4c, 0x8c, 0x10, 0xb7, 0xb2, 0xd8, 0x2c,
+ 0x23, 0x67, 0x58, 0x31, 0x3a, 0xa3, 0xad, 0x20, 0x96, 0xbf, 0x75, 0x29,
+ 0x72, 0x7e, 0xf7, 0x50,
+};
+static const unsigned char kat4047_nonce[] = {0};
+static const unsigned char kat4047_persstr[] = {0};
+static const unsigned char kat4047_entropyinpr1[] = {
+ 0x18, 0xb4, 0x69, 0xba, 0xd3, 0xde, 0x43, 0x1e, 0x06, 0xbe, 0xb2, 0x34,
+ 0x64, 0x19, 0x13, 0x57, 0x86, 0x8e, 0xcb, 0x7a, 0x79, 0xc6, 0x43, 0x46,
+ 0x0f, 0x3a, 0x73, 0x20, 0xbe, 0xa8, 0x61, 0x01, 0x09, 0x78, 0xfa, 0xa1,
+ 0x37, 0x98, 0x16, 0xbc,
+};
+static const unsigned char kat4047_addinpr1[] = {
+ 0xfb, 0x15, 0x7c, 0xb2, 0xc3, 0x23, 0xfc, 0x5a, 0xcd, 0xb1, 0x7d, 0x55,
+ 0x79, 0x39, 0x5f, 0xf1, 0xe1, 0xa8, 0x89, 0x71, 0x16, 0x2e, 0x4f, 0xde,
+ 0x11, 0x1f, 0x72, 0x83, 0x25, 0x75, 0x0a, 0x4a, 0x01, 0x1b, 0x70, 0x92,
+ 0x08, 0x2f, 0x77, 0x19,
+};
+static const unsigned char kat4047_entropyinpr2[] = {
+ 0xaf, 0x9e, 0x39, 0x0e, 0xb1, 0x77, 0x6c, 0xf2, 0xa8, 0x80, 0xe9, 0x28,
+ 0x14, 0x76, 0x4a, 0x60, 0xc3, 0xd7, 0xbf, 0xa3, 0xbf, 0x00, 0x11, 0x30,
+ 0xf1, 0x29, 0x30, 0x67, 0x95, 0x3c, 0x74, 0x00, 0x71, 0xb2, 0xb4, 0xcd,
+ 0x00, 0xf5, 0xd4, 0x1b,
+};
+static const unsigned char kat4047_addinpr2[] = {
+ 0xe5, 0xfb, 0x2e, 0x23, 0x75, 0x4d, 0x4c, 0x61, 0x2e, 0xf9, 0x69, 0x14,
+ 0xd7, 0x3f, 0x09, 0x12, 0x95, 0x2a, 0x96, 0x8e, 0x8c, 0xf4, 0xe1, 0x95,
+ 0x2e, 0xaf, 0x29, 0x12, 0x04, 0xb6, 0xaf, 0xe8, 0x4f, 0xe2, 0x6c, 0xc0,
+ 0x39, 0x1f, 0x09, 0xbd,
+};
+static const unsigned char kat4047_retbits[] = {
+ 0x3c, 0xb2, 0x7f, 0xc2, 0x83, 0xe4, 0x98, 0xaa, 0x7d, 0x2c, 0x43, 0xfb,
+ 0x77, 0x93, 0x3d, 0x3d, 0x6a, 0x02, 0x69, 0x09, 0xcc, 0x0d, 0xfc, 0xb8,
+ 0x01, 0x35, 0xdd, 0xeb, 0x83, 0x35, 0x4c, 0x33, 0xcc, 0x15, 0xf5, 0x0a,
+ 0x89, 0x7e, 0xd1, 0x5d, 0xab, 0x57, 0xda, 0xbe, 0x8f, 0xab, 0x69, 0x06,
+ 0x4e, 0x5b, 0x7f, 0xbf, 0x59, 0x81, 0x0b, 0x53, 0x88, 0x6a, 0xa7, 0xa5,
+ 0x95, 0x3e, 0x89, 0x63,
+};
+static const struct drbg_kat_pr_true kat4047_t = {
+ 11, kat4047_entropyin, kat4047_nonce, kat4047_persstr,
+ kat4047_entropyinpr1, kat4047_addinpr1, kat4047_entropyinpr2,
+ kat4047_addinpr2, kat4047_retbits
+};
+static const struct drbg_kat kat4047 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat4047_t
+};
+
+static const unsigned char kat4048_entropyin[] = {
+ 0x5f, 0x3f, 0xf6, 0xdf, 0xf2, 0x22, 0x68, 0x05, 0x04, 0x05, 0x2d, 0x94,
+ 0xae, 0x64, 0xf4, 0xc8, 0x3a, 0x5b, 0x9e, 0x77, 0xdf, 0xe7, 0xb4, 0xcb,
+ 0x9f, 0xe4, 0x14, 0x1f, 0x04, 0xc7, 0x51, 0xa2, 0xfd, 0xaa, 0x2c, 0xa0,
+ 0xa5, 0x8a, 0x68, 0xd5,
+};
+static const unsigned char kat4048_nonce[] = {0};
+static const unsigned char kat4048_persstr[] = {0};
+static const unsigned char kat4048_entropyinpr1[] = {
+ 0x60, 0x90, 0x29, 0x0f, 0x51, 0x82, 0xb0, 0x47, 0x0a, 0x97, 0x34, 0x87,
+ 0xbf, 0x45, 0x35, 0x7e, 0x16, 0x76, 0x40, 0x70, 0xf9, 0x4f, 0x28, 0x6f,
+ 0xee, 0x55, 0x21, 0x49, 0x9a, 0x66, 0xba, 0x64, 0xc5, 0x51, 0x54, 0xb1,
+ 0x9f, 0xc3, 0x8d, 0x95,
+};
+static const unsigned char kat4048_addinpr1[] = {
+ 0x85, 0x98, 0xe8, 0x66, 0x26, 0x60, 0xe3, 0xf5, 0x43, 0xb7, 0x0f, 0x0d,
+ 0x4e, 0x5d, 0xe6, 0x53, 0x5a, 0xae, 0x64, 0xdb, 0x3b, 0x55, 0x6e, 0x2c,
+ 0x57, 0x56, 0xff, 0x45, 0x27, 0x5d, 0xdf, 0x22, 0xd6, 0x71, 0xbd, 0xaa,
+ 0xbf, 0x3a, 0x39, 0x7e,
+};
+static const unsigned char kat4048_entropyinpr2[] = {
+ 0x05, 0xd8, 0x44, 0xc7, 0x0f, 0xda, 0xd7, 0xd8, 0x0b, 0xa8, 0x53, 0xf4,
+ 0x3e, 0xcb, 0x66, 0xe1, 0x7c, 0xc5, 0x0d, 0x2c, 0x2f, 0xaf, 0x2a, 0x74,
+ 0x82, 0x7a, 0xf2, 0xf4, 0x6b, 0x82, 0x6d, 0x4d, 0x0a, 0x96, 0x6a, 0xa8,
+ 0x2b, 0x49, 0xe6, 0x80,
+};
+static const unsigned char kat4048_addinpr2[] = {
+ 0x99, 0xa0, 0xc2, 0xc6, 0x97, 0x19, 0x2e, 0x74, 0x3b, 0x19, 0x97, 0xe6,
+ 0xbf, 0x74, 0x18, 0xa1, 0x1f, 0xfc, 0x14, 0x25, 0xa4, 0xd7, 0x21, 0x57,
+ 0x22, 0xa1, 0xbb, 0xe9, 0x83, 0x3d, 0xd4, 0x10, 0x4c, 0x55, 0xa1, 0xa8,
+ 0xc5, 0x76, 0x8e, 0xc6,
+};
+static const unsigned char kat4048_retbits[] = {
+ 0x86, 0x2b, 0xd0, 0xa5, 0x24, 0xbf, 0xf9, 0xa8, 0x71, 0x68, 0x20, 0xbd,
+ 0xf9, 0xa0, 0x6d, 0x66, 0xf8, 0x8a, 0xa4, 0xed, 0xe3, 0x20, 0x55, 0x3f,
+ 0x79, 0xb6, 0x11, 0x85, 0xa5, 0x0d, 0x58, 0xf4, 0xd3, 0xeb, 0x82, 0x63,
+ 0x79, 0x4e, 0xa8, 0xb3, 0x32, 0x39, 0x89, 0x68, 0x7b, 0x4f, 0x54, 0x93,
+ 0x24, 0x54, 0xbe, 0xac, 0xf0, 0x15, 0xd1, 0x8c, 0x3d, 0x10, 0xe3, 0x47,
+ 0xd7, 0x93, 0x56, 0x8d,
+};
+static const struct drbg_kat_pr_true kat4048_t = {
+ 12, kat4048_entropyin, kat4048_nonce, kat4048_persstr,
+ kat4048_entropyinpr1, kat4048_addinpr1, kat4048_entropyinpr2,
+ kat4048_addinpr2, kat4048_retbits
+};
+static const struct drbg_kat kat4048 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat4048_t
+};
+
+static const unsigned char kat4049_entropyin[] = {
+ 0x87, 0x72, 0xfb, 0x86, 0xc6, 0xf7, 0x71, 0x16, 0x86, 0x10, 0xd6, 0x0f,
+ 0x62, 0xf8, 0x04, 0xb3, 0x80, 0x3c, 0x4b, 0xb7, 0x0d, 0xfa, 0xa2, 0x52,
+ 0x18, 0x0a, 0x7d, 0x12, 0xc4, 0x6e, 0xe6, 0xd3, 0xba, 0x3b, 0x4a, 0xe5,
+ 0xca, 0x67, 0xbe, 0x95,
+};
+static const unsigned char kat4049_nonce[] = {0};
+static const unsigned char kat4049_persstr[] = {0};
+static const unsigned char kat4049_entropyinpr1[] = {
+ 0xa6, 0x5c, 0x84, 0xc7, 0xc4, 0xf7, 0xe9, 0x98, 0xe2, 0x73, 0xa2, 0xc7,
+ 0xae, 0x89, 0x68, 0x0e, 0xb2, 0x90, 0xeb, 0xc8, 0xcb, 0xea, 0x53, 0x54,
+ 0x90, 0xd5, 0x22, 0x44, 0xbe, 0x90, 0xe5, 0x62, 0xaa, 0x6d, 0xc9, 0x8b,
+ 0xfe, 0x63, 0xd8, 0x8e,
+};
+static const unsigned char kat4049_addinpr1[] = {
+ 0x2c, 0x77, 0x76, 0x54, 0x82, 0xdc, 0xf7, 0x2c, 0x58, 0x6c, 0xb0, 0x2f,
+ 0x8e, 0x31, 0x76, 0x26, 0x64, 0x7b, 0x7d, 0xdc, 0x19, 0xaf, 0x06, 0xca,
+ 0xa3, 0x03, 0xf4, 0xa8, 0x29, 0xb1, 0x24, 0x54, 0x3d, 0x40, 0xe4, 0x1f,
+ 0x5a, 0x6f, 0x4b, 0xc2,
+};
+static const unsigned char kat4049_entropyinpr2[] = {
+ 0xdf, 0x9a, 0x15, 0xd2, 0x02, 0x1d, 0x0d, 0x9a, 0x9e, 0x8a, 0xbf, 0x4e,
+ 0x79, 0x55, 0xb0, 0x96, 0x19, 0xd0, 0x34, 0x8a, 0x2a, 0xa0, 0xa9, 0x5f,
+ 0xef, 0xcc, 0xf0, 0x42, 0x62, 0x0e, 0x0b, 0x86, 0x8f, 0x32, 0x44, 0x1e,
+ 0x73, 0xb4, 0x9f, 0xf7,
+};
+static const unsigned char kat4049_addinpr2[] = {
+ 0x9e, 0x9c, 0x88, 0x0d, 0x80, 0x14, 0x0a, 0x3d, 0x3d, 0xa9, 0x5a, 0x12,
+ 0x6e, 0x92, 0x5b, 0x48, 0x89, 0x42, 0x38, 0x42, 0x14, 0xd6, 0xe9, 0x75,
+ 0x75, 0x38, 0x6b, 0x9a, 0x32, 0x9b, 0xd9, 0x1e, 0xd2, 0x69, 0x73, 0xee,
+ 0xb4, 0xca, 0xd4, 0x48,
+};
+static const unsigned char kat4049_retbits[] = {
+ 0x5f, 0x2a, 0x60, 0x8c, 0xba, 0x8b, 0xc5, 0xbe, 0xcb, 0x3d, 0xc9, 0x6b,
+ 0x5c, 0xaf, 0xe2, 0xaf, 0xc5, 0xe1, 0x7e, 0x92, 0xb7, 0x3c, 0x6d, 0x9f,
+ 0x81, 0x23, 0x7a, 0x71, 0x81, 0x0a, 0x7a, 0x83, 0xbd, 0x42, 0xa8, 0x58,
+ 0xe7, 0xbb, 0x25, 0xc5, 0x9d, 0x5c, 0x36, 0x79, 0x1e, 0x36, 0xac, 0xb6,
+ 0x49, 0xdd, 0x2b, 0xd3, 0x83, 0xab, 0xe2, 0x68, 0x96, 0x12, 0xc6, 0x8c,
+ 0x35, 0x64, 0xe1, 0x0d,
+};
+static const struct drbg_kat_pr_true kat4049_t = {
+ 13, kat4049_entropyin, kat4049_nonce, kat4049_persstr,
+ kat4049_entropyinpr1, kat4049_addinpr1, kat4049_entropyinpr2,
+ kat4049_addinpr2, kat4049_retbits
+};
+static const struct drbg_kat kat4049 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat4049_t
+};
+
+static const unsigned char kat4050_entropyin[] = {
+ 0x90, 0x27, 0xdd, 0x60, 0xe9, 0x2d, 0x08, 0x61, 0x4b, 0x6a, 0x59, 0x0f,
+ 0xc3, 0x15, 0x1b, 0xae, 0x2b, 0x3f, 0xf7, 0x9d, 0xde, 0x01, 0x08, 0xd4,
+ 0x88, 0xd0, 0x0f, 0xb3, 0x55, 0xb7, 0x9b, 0x38, 0xfa, 0x88, 0xf6, 0xa8,
+ 0x91, 0xa4, 0x7b, 0xef,
+};
+static const unsigned char kat4050_nonce[] = {0};
+static const unsigned char kat4050_persstr[] = {0};
+static const unsigned char kat4050_entropyinpr1[] = {
+ 0x03, 0x04, 0x40, 0x59, 0x1e, 0x9c, 0x44, 0x0a, 0xd7, 0xfb, 0x67, 0x3c,
+ 0x2b, 0x4e, 0x29, 0x02, 0xf7, 0x5b, 0x64, 0x4b, 0xbf, 0x7b, 0x4a, 0xe7,
+ 0x5f, 0xa1, 0x55, 0xca, 0x7e, 0x1c, 0xb3, 0x9f, 0x61, 0xc5, 0x76, 0x1e,
+ 0xc8, 0xfc, 0x7f, 0x14,
+};
+static const unsigned char kat4050_addinpr1[] = {
+ 0xb3, 0x8f, 0x24, 0xae, 0x5d, 0x85, 0xc3, 0x00, 0x88, 0xc3, 0x58, 0x4d,
+ 0xc1, 0x54, 0x81, 0x54, 0xf5, 0x23, 0x30, 0x8a, 0x5c, 0x22, 0x14, 0xc2,
+ 0xa5, 0x18, 0x17, 0xed, 0xd1, 0x35, 0xcb, 0x54, 0x4f, 0x3a, 0x04, 0x00,
+ 0x2e, 0x16, 0x16, 0xe3,
+};
+static const unsigned char kat4050_entropyinpr2[] = {
+ 0x1d, 0x81, 0xb5, 0xe1, 0x4e, 0x9f, 0x99, 0x5c, 0xf1, 0x97, 0x71, 0xd5,
+ 0x48, 0x77, 0xe9, 0x7b, 0x2d, 0x4f, 0x55, 0x1c, 0x36, 0x03, 0x38, 0x74,
+ 0xfc, 0xf3, 0xa4, 0x81, 0x43, 0x12, 0xd7, 0x06, 0x4a, 0xcc, 0x25, 0x56,
+ 0xea, 0x5e, 0x0f, 0xdc,
+};
+static const unsigned char kat4050_addinpr2[] = {
+ 0x3f, 0x52, 0x21, 0x73, 0x2e, 0x41, 0x7f, 0xe4, 0x23, 0x46, 0x26, 0xd8,
+ 0xb4, 0xfe, 0x5d, 0xce, 0x8d, 0x09, 0x74, 0xa7, 0x55, 0x1c, 0x4e, 0x7b,
+ 0x9e, 0xb8, 0x27, 0xf3, 0x2c, 0x7b, 0x85, 0x79, 0x3b, 0x81, 0xb3, 0x7b,
+ 0x43, 0x55, 0xf6, 0xa0,
+};
+static const unsigned char kat4050_retbits[] = {
+ 0xc6, 0xd9, 0xcb, 0x21, 0x92, 0x23, 0x98, 0xc6, 0xa6, 0x3e, 0x4d, 0x17,
+ 0xf0, 0xf6, 0x9f, 0x1d, 0x4c, 0x1b, 0x49, 0x98, 0xd7, 0x38, 0x28, 0xd4,
+ 0x3e, 0xa1, 0xf6, 0x9a, 0xca, 0xd5, 0xb1, 0xd9, 0x48, 0x00, 0xa6, 0x97,
+ 0x6c, 0x09, 0xa8, 0xb5, 0xbe, 0xfa, 0x2b, 0x0c, 0x82, 0x87, 0x78, 0x74,
+ 0xea, 0xed, 0x15, 0x02, 0x7f, 0x9f, 0x7d, 0xad, 0x3b, 0xff, 0xa0, 0x05,
+ 0xe4, 0x97, 0x58, 0xa0,
+};
+static const struct drbg_kat_pr_true kat4050_t = {
+ 14, kat4050_entropyin, kat4050_nonce, kat4050_persstr,
+ kat4050_entropyinpr1, kat4050_addinpr1, kat4050_entropyinpr2,
+ kat4050_addinpr2, kat4050_retbits
+};
+static const struct drbg_kat kat4050 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 0, 40, 64, &kat4050_t
+};
+
+static const unsigned char kat4051_entropyin[] = {
+ 0x69, 0xf8, 0xeb, 0xe7, 0x50, 0x4d, 0xa9, 0x33, 0x89, 0x3e, 0x02, 0x1d,
+ 0x09, 0x43, 0xdb, 0xfb, 0xff, 0xe1, 0xa7, 0xf3, 0x4e, 0xdc, 0x54, 0x48,
+ 0xcf, 0x97, 0xa5, 0xee, 0xe8, 0x7d, 0xe3, 0x39, 0x51, 0xfe, 0x27, 0x17,
+ 0x0d, 0xee, 0x63, 0x4e,
+};
+static const unsigned char kat4051_nonce[] = {0};
+static const unsigned char kat4051_persstr[] = {
+ 0x83, 0xaa, 0x3e, 0x06, 0xd3, 0xd9, 0x1f, 0x23, 0x66, 0x55, 0x2a, 0xa6,
+ 0x6a, 0xd4, 0x40, 0xd6, 0xd2, 0x3e, 0x3f, 0x13, 0x9e, 0xdc, 0xe7, 0x1d,
+ 0x4a, 0x42, 0x5d, 0x3f, 0xeb, 0x11, 0x4d, 0xda, 0x56, 0xf6, 0x7c, 0xc1,
+ 0x70, 0x06, 0xf9, 0xea,
+};
+static const unsigned char kat4051_entropyinpr1[] = {
+ 0x95, 0x46, 0x4d, 0x5c, 0xec, 0x3b, 0xa7, 0x61, 0x14, 0xb6, 0x48, 0x03,
+ 0x47, 0x41, 0x9a, 0x35, 0xe3, 0xe7, 0x38, 0xf0, 0x4f, 0xcf, 0x42, 0x1d,
+ 0x1e, 0x27, 0x0f, 0xb8, 0x22, 0xcc, 0xce, 0xad, 0xa6, 0x3e, 0xe2, 0x93,
+ 0x24, 0x3b, 0x12, 0xe4,
+};
+static const unsigned char kat4051_addinpr1[] = {0};
+static const unsigned char kat4051_entropyinpr2[] = {
+ 0x64, 0xc7, 0x7b, 0xc8, 0xf0, 0x2c, 0x83, 0x91, 0x9b, 0xf2, 0xd2, 0xe5,
+ 0x12, 0xe7, 0x17, 0xb8, 0x63, 0xdc, 0x32, 0xcc, 0x90, 0x2e, 0xb6, 0xa4,
+ 0x10, 0xf6, 0x17, 0xa2, 0x42, 0x01, 0x7d, 0xcc, 0xfb, 0x49, 0xee, 0x20,
+ 0x7a, 0x48, 0x7b, 0x63,
+};
+static const unsigned char kat4051_addinpr2[] = {0};
+static const unsigned char kat4051_retbits[] = {
+ 0x12, 0x5d, 0xfa, 0x2e, 0xcb, 0x41, 0x7a, 0x4f, 0x6c, 0x07, 0x5a, 0x61,
+ 0xd4, 0xb9, 0x0d, 0xa4, 0x47, 0x8f, 0x17, 0xcd, 0xfb, 0xeb, 0x67, 0x81,
+ 0x87, 0xb1, 0x27, 0x6e, 0xdf, 0x6b, 0xf0, 0x29, 0x5d, 0xe7, 0xd8, 0xb9,
+ 0x0b, 0x5c, 0x9b, 0xd7, 0x72, 0xea, 0x36, 0x04, 0xc4, 0xde, 0x34, 0x23,
+ 0xf8, 0xd8, 0x19, 0xce, 0x8c, 0x86, 0xcc, 0xae, 0x1a, 0x97, 0x07, 0x49,
+ 0x7a, 0x11, 0x35, 0x5e,
+};
+static const struct drbg_kat_pr_true kat4051_t = {
+ 0, kat4051_entropyin, kat4051_nonce, kat4051_persstr,
+ kat4051_entropyinpr1, kat4051_addinpr1, kat4051_entropyinpr2,
+ kat4051_addinpr2, kat4051_retbits
+};
+static const struct drbg_kat kat4051 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4051_t
+};
+
+static const unsigned char kat4052_entropyin[] = {
+ 0xb5, 0x7f, 0x96, 0x77, 0x21, 0x29, 0x84, 0x90, 0x0c, 0xd7, 0x3a, 0x14,
+ 0x00, 0xe3, 0xbf, 0x1d, 0xca, 0x6c, 0xde, 0x37, 0x70, 0xb9, 0xd9, 0xb8,
+ 0xe8, 0x88, 0xd9, 0xc6, 0xb7, 0x4d, 0xa2, 0x17, 0xeb, 0xdb, 0xa6, 0x8e,
+ 0x99, 0x29, 0x7f, 0x14,
+};
+static const unsigned char kat4052_nonce[] = {0};
+static const unsigned char kat4052_persstr[] = {
+ 0xd1, 0x11, 0x49, 0x1e, 0x7c, 0x80, 0xf3, 0xa8, 0x9b, 0x1c, 0x3f, 0xa4,
+ 0x20, 0xae, 0xb3, 0x72, 0x10, 0xf9, 0x41, 0x00, 0x72, 0x1b, 0xca, 0xd2,
+ 0x97, 0xbb, 0x79, 0x1d, 0x4d, 0xe1, 0xea, 0x92, 0xe7, 0x9f, 0x05, 0xe4,
+ 0xe7, 0xd5, 0x44, 0xe8,
+};
+static const unsigned char kat4052_entropyinpr1[] = {
+ 0xd0, 0x57, 0x1a, 0x4e, 0x6a, 0x3a, 0xbd, 0xf8, 0x19, 0x19, 0x3e, 0x01,
+ 0x8e, 0x66, 0x26, 0x88, 0x16, 0xc7, 0xdc, 0xe1, 0x20, 0x3a, 0x1f, 0x6f,
+ 0xe1, 0x9e, 0x54, 0x5b, 0x42, 0x8a, 0x3d, 0xe5, 0x79, 0x29, 0xb0, 0xb3,
+ 0xe3, 0xcc, 0x08, 0xd2,
+};
+static const unsigned char kat4052_addinpr1[] = {0};
+static const unsigned char kat4052_entropyinpr2[] = {
+ 0x46, 0x2f, 0x17, 0x59, 0xd2, 0x04, 0x6f, 0x28, 0x1c, 0x2c, 0xab, 0x66,
+ 0x81, 0x79, 0xa1, 0x13, 0xaa, 0x5e, 0x34, 0xc7, 0x47, 0x73, 0xc9, 0xc5,
+ 0xe6, 0x1f, 0xab, 0xe2, 0x9b, 0x2a, 0x87, 0x73, 0xb6, 0x81, 0x9a, 0xb5,
+ 0x22, 0xd2, 0x5d, 0xa8,
+};
+static const unsigned char kat4052_addinpr2[] = {0};
+static const unsigned char kat4052_retbits[] = {
+ 0xdd, 0x69, 0xc0, 0x91, 0xf0, 0x51, 0xe8, 0xad, 0x84, 0x6c, 0x43, 0xb9,
+ 0x11, 0x23, 0x74, 0x0f, 0xd2, 0x50, 0x3d, 0x4c, 0xcc, 0x82, 0xab, 0x1d,
+ 0xcf, 0x4a, 0x76, 0xc9, 0xea, 0x05, 0x76, 0xfd, 0xee, 0x62, 0x8d, 0xad,
+ 0x2e, 0x8c, 0x7a, 0x46, 0x27, 0xec, 0xce, 0xc2, 0x2b, 0xbc, 0x65, 0xfd,
+ 0x9e, 0xb9, 0x35, 0x11, 0xf1, 0x5a, 0x8b, 0x81, 0x42, 0x2b, 0x03, 0x2c,
+ 0xaf, 0x12, 0x2e, 0x3a,
+};
+static const struct drbg_kat_pr_true kat4052_t = {
+ 1, kat4052_entropyin, kat4052_nonce, kat4052_persstr,
+ kat4052_entropyinpr1, kat4052_addinpr1, kat4052_entropyinpr2,
+ kat4052_addinpr2, kat4052_retbits
+};
+static const struct drbg_kat kat4052 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4052_t
+};
+
+static const unsigned char kat4053_entropyin[] = {
+ 0x44, 0x5e, 0x9f, 0x07, 0xfa, 0xb8, 0x1a, 0x60, 0x70, 0x77, 0xbd, 0xae,
+ 0xa1, 0x3f, 0x60, 0x7e, 0xc1, 0xee, 0x32, 0xdb, 0xa3, 0x95, 0x1d, 0x3d,
+ 0xba, 0xbe, 0xfa, 0x65, 0x0f, 0xd0, 0xdc, 0xb4, 0x24, 0x85, 0x5d, 0x38,
+ 0xe8, 0xfb, 0xfa, 0x7b,
+};
+static const unsigned char kat4053_nonce[] = {0};
+static const unsigned char kat4053_persstr[] = {
+ 0xb2, 0xef, 0x7e, 0x48, 0x8c, 0x60, 0xed, 0x41, 0x4d, 0x0a, 0x1e, 0xb6,
+ 0x58, 0xed, 0x96, 0x1d, 0xd6, 0xb8, 0xe1, 0xd1, 0x97, 0xaf, 0x12, 0xe1,
+ 0x2e, 0x19, 0x43, 0x4b, 0xca, 0x7a, 0xe7, 0x75, 0xf0, 0x74, 0xdb, 0x74,
+ 0xcf, 0x84, 0xbb, 0x99,
+};
+static const unsigned char kat4053_entropyinpr1[] = {
+ 0xcb, 0x6e, 0x16, 0x2f, 0xae, 0xfc, 0xc7, 0xa6, 0x62, 0x69, 0xd5, 0xd2,
+ 0xd3, 0x0a, 0x2f, 0x9f, 0x10, 0xe9, 0x93, 0x05, 0xcc, 0xf5, 0xa4, 0xb7,
+ 0x7c, 0xf3, 0x04, 0xf6, 0xf0, 0xa7, 0x30, 0xc3, 0x73, 0xb8, 0xc7, 0xea,
+ 0x49, 0x3f, 0xb5, 0x12,
+};
+static const unsigned char kat4053_addinpr1[] = {0};
+static const unsigned char kat4053_entropyinpr2[] = {
+ 0x1c, 0xfb, 0xcc, 0x74, 0x25, 0x03, 0x43, 0x98, 0xf9, 0x04, 0x4f, 0x32,
+ 0x34, 0x5b, 0x5f, 0x05, 0x9d, 0x61, 0x4b, 0x5f, 0xea, 0xc6, 0x1f, 0xd9,
+ 0x0c, 0xe1, 0x46, 0x4b, 0xc2, 0xc0, 0x1e, 0xc6, 0x9e, 0x81, 0x25, 0x7d,
+ 0x05, 0x07, 0x51, 0x92,
+};
+static const unsigned char kat4053_addinpr2[] = {0};
+static const unsigned char kat4053_retbits[] = {
+ 0x36, 0xb9, 0x1f, 0xca, 0x75, 0x46, 0x03, 0x39, 0x2b, 0x23, 0x2e, 0x27,
+ 0xdf, 0xe8, 0xc8, 0x33, 0xec, 0x3d, 0x80, 0xc7, 0x8b, 0xc5, 0xaa, 0x47,
+ 0x2a, 0x59, 0xa5, 0xfe, 0xcf, 0xc4, 0x31, 0x1b, 0x86, 0xac, 0xcd, 0xbd,
+ 0x16, 0x4e, 0x39, 0x85, 0x5a, 0x38, 0xff, 0x13, 0xc9, 0x9c, 0x70, 0xf6,
+ 0xb4, 0x39, 0x33, 0xf3, 0x27, 0xea, 0xe1, 0x73, 0x3c, 0x6a, 0xb4, 0xe0,
+ 0xe2, 0xad, 0x41, 0xe1,
+};
+static const struct drbg_kat_pr_true kat4053_t = {
+ 2, kat4053_entropyin, kat4053_nonce, kat4053_persstr,
+ kat4053_entropyinpr1, kat4053_addinpr1, kat4053_entropyinpr2,
+ kat4053_addinpr2, kat4053_retbits
+};
+static const struct drbg_kat kat4053 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4053_t
+};
+
+static const unsigned char kat4054_entropyin[] = {
+ 0x5b, 0xde, 0x17, 0xac, 0x69, 0xbf, 0x36, 0xbb, 0x75, 0x9a, 0x18, 0xcc,
+ 0x5b, 0xe7, 0xb0, 0xbc, 0x22, 0x31, 0xa1, 0x98, 0x65, 0xbb, 0x6d, 0x7b,
+ 0x0b, 0x3b, 0x7a, 0xfe, 0x0b, 0x3f, 0x12, 0x3a, 0xcd, 0x70, 0x05, 0xa5,
+ 0x37, 0x22, 0xf8, 0x21,
+};
+static const unsigned char kat4054_nonce[] = {0};
+static const unsigned char kat4054_persstr[] = {
+ 0x0e, 0xc5, 0xa5, 0xa3, 0x71, 0xf0, 0xe0, 0x19, 0x12, 0x2e, 0x46, 0xe6,
+ 0x58, 0x34, 0x6d, 0x6d, 0xf0, 0x2c, 0x77, 0xe3, 0x6e, 0xfc, 0x01, 0x07,
+ 0x87, 0xb4, 0x74, 0xfe, 0xf7, 0xa5, 0xf7, 0xae, 0x28, 0xc4, 0xe4, 0xcc,
+ 0xc0, 0xaf, 0x3e, 0xde,
+};
+static const unsigned char kat4054_entropyinpr1[] = {
+ 0x03, 0xd6, 0x93, 0xda, 0x71, 0xdf, 0xc9, 0x0c, 0xee, 0xab, 0xa6, 0xa7,
+ 0x22, 0xe9, 0x01, 0x56, 0x62, 0x07, 0x1b, 0x76, 0x8d, 0xe3, 0x86, 0xd6,
+ 0x01, 0x9b, 0x4d, 0x5f, 0x12, 0x32, 0x35, 0x58, 0xcc, 0x3a, 0x5e, 0x3a,
+ 0x56, 0x63, 0xe4, 0xbb,
+};
+static const unsigned char kat4054_addinpr1[] = {0};
+static const unsigned char kat4054_entropyinpr2[] = {
+ 0xad, 0x72, 0x90, 0xac, 0xe8, 0xf0, 0x85, 0x86, 0x41, 0xa4, 0x3e, 0xb7,
+ 0xee, 0x50, 0xb1, 0xdb, 0x85, 0x8f, 0xe2, 0xa1, 0x01, 0x15, 0xa3, 0x39,
+ 0x64, 0x1a, 0x77, 0x67, 0xea, 0x05, 0x75, 0x13, 0xfd, 0x77, 0x32, 0xc7,
+ 0xb7, 0xff, 0x2e, 0x07,
+};
+static const unsigned char kat4054_addinpr2[] = {0};
+static const unsigned char kat4054_retbits[] = {
+ 0x57, 0x77, 0x0a, 0x05, 0xe9, 0x90, 0xa0, 0x6a, 0xf3, 0x72, 0x5a, 0x07,
+ 0x0c, 0x0b, 0x71, 0x56, 0x33, 0xe5, 0xc1, 0x13, 0xca, 0x5b, 0xaf, 0x1a,
+ 0xad, 0x4a, 0x6f, 0xb2, 0x53, 0x80, 0x0b, 0x77, 0x6f, 0x7e, 0x67, 0x3f,
+ 0x9a, 0x3d, 0xb2, 0xeb, 0x96, 0x5a, 0xa8, 0x61, 0x22, 0x01, 0xdc, 0x9c,
+ 0x6d, 0x20, 0x9c, 0xe8, 0xea, 0x29, 0x2e, 0x09, 0x98, 0x1c, 0x07, 0xa9,
+ 0x0f, 0xc6, 0x9c, 0x76,
+};
+static const struct drbg_kat_pr_true kat4054_t = {
+ 3, kat4054_entropyin, kat4054_nonce, kat4054_persstr,
+ kat4054_entropyinpr1, kat4054_addinpr1, kat4054_entropyinpr2,
+ kat4054_addinpr2, kat4054_retbits
+};
+static const struct drbg_kat kat4054 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4054_t
+};
+
+static const unsigned char kat4055_entropyin[] = {
+ 0xc5, 0x47, 0x25, 0x8e, 0x18, 0x05, 0x20, 0x6e, 0x63, 0x4e, 0x8e, 0xa8,
+ 0x29, 0xdd, 0x4f, 0x52, 0x16, 0xfc, 0xdb, 0x4e, 0x9f, 0x2d, 0x80, 0x5e,
+ 0xbe, 0x1e, 0x31, 0x53, 0xa3, 0xf6, 0x1b, 0x5f, 0xf1, 0x2f, 0x8a, 0xa1,
+ 0xcf, 0x82, 0x29, 0x4e,
+};
+static const unsigned char kat4055_nonce[] = {0};
+static const unsigned char kat4055_persstr[] = {
+ 0xac, 0xf2, 0x98, 0x82, 0x35, 0x41, 0x7b, 0x30, 0x85, 0xeb, 0x59, 0xe9,
+ 0xb4, 0x9e, 0x59, 0x20, 0x2b, 0x41, 0xce, 0xbf, 0xe3, 0x4f, 0x36, 0x66,
+ 0xdc, 0x37, 0xfb, 0x14, 0xc7, 0x16, 0x45, 0x72, 0x39, 0xbb, 0x4d, 0x4e,
+ 0x36, 0x43, 0xb3, 0xfc,
+};
+static const unsigned char kat4055_entropyinpr1[] = {
+ 0x89, 0xbf, 0x53, 0x64, 0x15, 0xaa, 0x5b, 0x67, 0x3a, 0xf6, 0xb7, 0x75,
+ 0xcb, 0x6d, 0x6a, 0x9a, 0xc3, 0x99, 0xb3, 0xce, 0x9e, 0xe5, 0x40, 0x7c,
+ 0x06, 0x4c, 0xca, 0x6d, 0x00, 0x58, 0x4a, 0x70, 0x7e, 0x7b, 0x2f, 0xb7,
+ 0xfe, 0x62, 0xa4, 0xd7,
+};
+static const unsigned char kat4055_addinpr1[] = {0};
+static const unsigned char kat4055_entropyinpr2[] = {
+ 0x22, 0xfb, 0x3b, 0xe1, 0x27, 0x35, 0xe6, 0xbc, 0x87, 0x8d, 0x9b, 0x8f,
+ 0x9f, 0x65, 0xb1, 0x3e, 0x60, 0x4f, 0x29, 0x6b, 0xc9, 0x9c, 0xdf, 0xf2,
+ 0x1c, 0x7b, 0x80, 0x1e, 0x78, 0x6e, 0xa3, 0x77, 0x99, 0xb7, 0x0e, 0xd5,
+ 0x3a, 0xe7, 0xad, 0x5a,
+};
+static const unsigned char kat4055_addinpr2[] = {0};
+static const unsigned char kat4055_retbits[] = {
+ 0xe1, 0x77, 0xdf, 0xe6, 0xda, 0x1a, 0xd6, 0x83, 0x89, 0xa5, 0xe8, 0xae,
+ 0xb3, 0x67, 0x82, 0x5b, 0x4d, 0x90, 0x35, 0x94, 0x41, 0x50, 0x97, 0x5e,
+ 0xe1, 0x17, 0x8d, 0x61, 0x72, 0xc0, 0xe0, 0xed, 0x0e, 0xd8, 0x8b, 0xef,
+ 0x2b, 0x8c, 0x6c, 0xe5, 0x73, 0xd8, 0x3e, 0xff, 0xd3, 0x47, 0x88, 0xb4,
+ 0x01, 0x72, 0xc3, 0xff, 0x62, 0xac, 0xfc, 0xf6, 0xaa, 0xf2, 0x6f, 0xc9,
+ 0x17, 0x64, 0x59, 0xe3,
+};
+static const struct drbg_kat_pr_true kat4055_t = {
+ 4, kat4055_entropyin, kat4055_nonce, kat4055_persstr,
+ kat4055_entropyinpr1, kat4055_addinpr1, kat4055_entropyinpr2,
+ kat4055_addinpr2, kat4055_retbits
+};
+static const struct drbg_kat kat4055 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4055_t
+};
+
+static const unsigned char kat4056_entropyin[] = {
+ 0xd3, 0x4a, 0xe9, 0xfe, 0x14, 0xf8, 0x98, 0x77, 0x95, 0xdc, 0x0b, 0x55,
+ 0xca, 0x17, 0x10, 0x23, 0x1f, 0xc9, 0xa5, 0x09, 0x1f, 0x39, 0x35, 0xb3,
+ 0xad, 0x2f, 0xeb, 0x44, 0x71, 0x44, 0x33, 0xd1, 0x74, 0x2c, 0x15, 0xbb,
+ 0x68, 0x99, 0x7c, 0xed,
+};
+static const unsigned char kat4056_nonce[] = {0};
+static const unsigned char kat4056_persstr[] = {
+ 0xa6, 0xa0, 0xf1, 0xd3, 0x9a, 0x66, 0xfc, 0x55, 0x4f, 0x7d, 0x07, 0x42,
+ 0x00, 0xdf, 0xad, 0x91, 0xe7, 0xfd, 0x16, 0x31, 0x6a, 0x0b, 0x60, 0xc3,
+ 0xa1, 0x65, 0x84, 0x23, 0xf8, 0x3b, 0xf1, 0x33, 0x87, 0xaf, 0x2c, 0x83,
+ 0x01, 0x30, 0x31, 0x72,
+};
+static const unsigned char kat4056_entropyinpr1[] = {
+ 0x4c, 0x5f, 0x21, 0x93, 0x35, 0x44, 0xfe, 0x01, 0xaf, 0xa5, 0xc9, 0x34,
+ 0x12, 0xd3, 0x51, 0xd9, 0xb2, 0x88, 0xac, 0x80, 0x47, 0xe7, 0xc6, 0x3a,
+ 0x36, 0xad, 0xed, 0x49, 0xf7, 0x24, 0x9b, 0x59, 0xc0, 0x48, 0x70, 0xf2,
+ 0x81, 0x5d, 0x5e, 0xb9,
+};
+static const unsigned char kat4056_addinpr1[] = {0};
+static const unsigned char kat4056_entropyinpr2[] = {
+ 0x9f, 0xd6, 0x6b, 0x10, 0x81, 0x44, 0x96, 0x19, 0xf7, 0x67, 0xd4, 0x5f,
+ 0xba, 0xb3, 0x84, 0x3a, 0x91, 0xba, 0xb0, 0x8d, 0xa9, 0xad, 0x4f, 0x8b,
+ 0xaa, 0xf2, 0x40, 0x82, 0x26, 0xe1, 0x86, 0x8c, 0x53, 0xc3, 0xfd, 0xa8,
+ 0x50, 0x85, 0xab, 0x19,
+};
+static const unsigned char kat4056_addinpr2[] = {0};
+static const unsigned char kat4056_retbits[] = {
+ 0x28, 0x43, 0x6a, 0x17, 0x0a, 0xfe, 0x0d, 0x18, 0xb9, 0x04, 0xef, 0x24,
+ 0x51, 0x79, 0xce, 0xb3, 0xc8, 0x7c, 0x91, 0x1e, 0x6c, 0x41, 0x51, 0x75,
+ 0x8a, 0x09, 0x90, 0x13, 0x27, 0x7c, 0xb2, 0x31, 0xdf, 0xf6, 0xbf, 0x5d,
+ 0xff, 0x9f, 0x3d, 0x2a, 0x78, 0xf8, 0x6e, 0x3f, 0x03, 0x05, 0x16, 0xc8,
+ 0x2b, 0xb0, 0xd3, 0x15, 0xc0, 0x63, 0x8b, 0xaf, 0x02, 0x37, 0x1c, 0x07,
+ 0x06, 0xdd, 0xd8, 0x39,
+};
+static const struct drbg_kat_pr_true kat4056_t = {
+ 5, kat4056_entropyin, kat4056_nonce, kat4056_persstr,
+ kat4056_entropyinpr1, kat4056_addinpr1, kat4056_entropyinpr2,
+ kat4056_addinpr2, kat4056_retbits
+};
+static const struct drbg_kat kat4056 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4056_t
+};
+
+static const unsigned char kat4057_entropyin[] = {
+ 0x79, 0x06, 0xa7, 0x2d, 0xbb, 0xa6, 0x84, 0x57, 0xfe, 0xa9, 0xd6, 0x31,
+ 0x45, 0x25, 0xd4, 0x72, 0xfa, 0xfa, 0xba, 0x37, 0x8e, 0x6e, 0x9f, 0xbb,
+ 0xf0, 0x92, 0xf1, 0xc4, 0x0b, 0x6b, 0xa0, 0x47, 0x05, 0xf7, 0x44, 0xf2,
+ 0x53, 0xe1, 0xd5, 0x2f,
+};
+static const unsigned char kat4057_nonce[] = {0};
+static const unsigned char kat4057_persstr[] = {
+ 0xa1, 0x72, 0x1f, 0xab, 0x96, 0x40, 0xa4, 0x74, 0x53, 0x3f, 0x6e, 0xc2,
+ 0x7d, 0x7d, 0x35, 0x18, 0xc5, 0x70, 0xc7, 0x59, 0x6a, 0x8b, 0x65, 0xd1,
+ 0x2a, 0x6c, 0xfb, 0xc8, 0xae, 0xe9, 0xce, 0xd1, 0xb4, 0xde, 0x63, 0x3c,
+ 0xca, 0x18, 0xcc, 0x66,
+};
+static const unsigned char kat4057_entropyinpr1[] = {
+ 0x69, 0x5a, 0xe1, 0xcf, 0xd3, 0xa2, 0xc0, 0x64, 0x1c, 0xa8, 0x82, 0x42,
+ 0xee, 0x47, 0x03, 0x6b, 0x18, 0x35, 0x73, 0xa0, 0xd5, 0xb1, 0x11, 0xd8,
+ 0xea, 0x28, 0xec, 0xfe, 0x94, 0x94, 0xbb, 0x77, 0xc7, 0x6a, 0xdb, 0xb5,
+ 0xcd, 0x6d, 0x53, 0x19,
+};
+static const unsigned char kat4057_addinpr1[] = {0};
+static const unsigned char kat4057_entropyinpr2[] = {
+ 0x70, 0xcb, 0xe4, 0x88, 0x2d, 0x3d, 0xa4, 0x3f, 0xf1, 0x6a, 0xc4, 0xe8,
+ 0xf0, 0x1c, 0x27, 0x65, 0xbb, 0x33, 0x4a, 0xaf, 0x93, 0x6c, 0x1e, 0xd6,
+ 0x3a, 0x17, 0x4c, 0xb6, 0x4c, 0xdf, 0x30, 0x28, 0x4a, 0x2a, 0x88, 0x01,
+ 0x5f, 0x2c, 0x70, 0xde,
+};
+static const unsigned char kat4057_addinpr2[] = {0};
+static const unsigned char kat4057_retbits[] = {
+ 0x03, 0x89, 0x98, 0xe9, 0x5d, 0xe7, 0x0b, 0x88, 0x59, 0xb9, 0xf8, 0xc6,
+ 0x3c, 0x3b, 0xa6, 0x17, 0x9f, 0x60, 0x1b, 0x25, 0x05, 0xa8, 0x7d, 0xa0,
+ 0x81, 0xa5, 0x1b, 0xec, 0x51, 0xbf, 0xeb, 0x5c, 0x69, 0x42, 0x63, 0xf8,
+ 0x7e, 0x90, 0x2b, 0x65, 0xc9, 0x2c, 0xcb, 0x85, 0x84, 0x3b, 0x82, 0x4d,
+ 0xc9, 0xa0, 0x92, 0xcd, 0x17, 0xd4, 0x83, 0x66, 0x3f, 0xe8, 0x23, 0xd2,
+ 0xea, 0x16, 0x85, 0x96,
+};
+static const struct drbg_kat_pr_true kat4057_t = {
+ 6, kat4057_entropyin, kat4057_nonce, kat4057_persstr,
+ kat4057_entropyinpr1, kat4057_addinpr1, kat4057_entropyinpr2,
+ kat4057_addinpr2, kat4057_retbits
+};
+static const struct drbg_kat kat4057 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4057_t
+};
+
+static const unsigned char kat4058_entropyin[] = {
+ 0xa0, 0x8f, 0xc9, 0x8e, 0x21, 0x0a, 0xe8, 0xe2, 0x32, 0x15, 0xef, 0x34,
+ 0xe6, 0xee, 0xae, 0x60, 0x1b, 0x11, 0xf1, 0x82, 0x23, 0xdd, 0x82, 0xd9,
+ 0x8c, 0x9c, 0x3e, 0x56, 0x87, 0x3f, 0xa1, 0xc6, 0xa8, 0x77, 0xee, 0xa3,
+ 0x22, 0x4b, 0x02, 0xc5,
+};
+static const unsigned char kat4058_nonce[] = {0};
+static const unsigned char kat4058_persstr[] = {
+ 0x53, 0xff, 0x73, 0xab, 0xe2, 0xc2, 0x4b, 0x3e, 0x8b, 0x2e, 0x56, 0xdd,
+ 0x84, 0xa6, 0x54, 0x1b, 0xbd, 0x01, 0x7b, 0x83, 0x48, 0xb6, 0x7d, 0x97,
+ 0x0b, 0xe8, 0x5a, 0xee, 0x22, 0x44, 0x80, 0xc1, 0xed, 0x2a, 0x8d, 0x70,
+ 0x04, 0xa0, 0x1f, 0x56,
+};
+static const unsigned char kat4058_entropyinpr1[] = {
+ 0x81, 0x5c, 0x3e, 0xe7, 0x68, 0x51, 0x98, 0xc2, 0xe2, 0x06, 0xb4, 0x91,
+ 0x93, 0xae, 0x52, 0xda, 0xf6, 0xb3, 0x71, 0x48, 0x4f, 0x92, 0x90, 0xaa,
+ 0x9e, 0x22, 0x72, 0x49, 0xfe, 0x33, 0xfb, 0x9a, 0x75, 0x79, 0xf6, 0x80,
+ 0x3b, 0xe9, 0x9c, 0x55,
+};
+static const unsigned char kat4058_addinpr1[] = {0};
+static const unsigned char kat4058_entropyinpr2[] = {
+ 0x41, 0x99, 0x01, 0x35, 0xfd, 0xfe, 0xd0, 0xed, 0x1a, 0xd2, 0xe3, 0x36,
+ 0xf4, 0x61, 0x26, 0x31, 0xaa, 0x18, 0xd6, 0x9f, 0x13, 0xdb, 0x80, 0x93,
+ 0x36, 0x18, 0x82, 0x95, 0xba, 0x8e, 0xa6, 0xe3, 0x75, 0xd9, 0x11, 0xf4,
+ 0x25, 0x74, 0x88, 0x04,
+};
+static const unsigned char kat4058_addinpr2[] = {0};
+static const unsigned char kat4058_retbits[] = {
+ 0x3f, 0xae, 0xe4, 0x48, 0x63, 0xcf, 0x1b, 0xee, 0x45, 0xe3, 0x72, 0x6f,
+ 0xaa, 0xfd, 0x11, 0xe6, 0x05, 0x3e, 0x25, 0xb2, 0x5f, 0x7f, 0xa9, 0xaf,
+ 0x25, 0x83, 0x98, 0xf3, 0x35, 0xbd, 0xe8, 0x65, 0xf8, 0x15, 0xdc, 0x81,
+ 0xc7, 0xbe, 0x6e, 0xd3, 0x1c, 0x6a, 0x8d, 0xdc, 0x20, 0xa6, 0xc3, 0x80,
+ 0xbb, 0x76, 0x18, 0x9d, 0x75, 0xe9, 0xae, 0xb8, 0x23, 0x2c, 0x09, 0x4f,
+ 0x3c, 0x6e, 0x2f, 0xb8,
+};
+static const struct drbg_kat_pr_true kat4058_t = {
+ 7, kat4058_entropyin, kat4058_nonce, kat4058_persstr,
+ kat4058_entropyinpr1, kat4058_addinpr1, kat4058_entropyinpr2,
+ kat4058_addinpr2, kat4058_retbits
+};
+static const struct drbg_kat kat4058 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4058_t
+};
+
+static const unsigned char kat4059_entropyin[] = {
+ 0x0e, 0x43, 0x75, 0x7c, 0xad, 0x68, 0x7e, 0xa7, 0x05, 0xc9, 0x83, 0x68,
+ 0xfa, 0x8e, 0x22, 0xa2, 0x59, 0x0a, 0x30, 0x10, 0xd3, 0xf7, 0x7b, 0xf5,
+ 0x7e, 0xec, 0x8d, 0x6e, 0x80, 0x3b, 0x0d, 0xf0, 0x01, 0x33, 0x50, 0x65,
+ 0x70, 0x2a, 0x73, 0xdc,
+};
+static const unsigned char kat4059_nonce[] = {0};
+static const unsigned char kat4059_persstr[] = {
+ 0x8b, 0xb0, 0x0a, 0xd2, 0x7e, 0x50, 0x4b, 0x26, 0xb7, 0x26, 0xe4, 0x2c,
+ 0x22, 0x80, 0x8c, 0x96, 0xbe, 0x38, 0x85, 0xb5, 0x14, 0x43, 0x73, 0xa9,
+ 0xb5, 0x59, 0x26, 0xd0, 0x9c, 0x87, 0xc2, 0xc0, 0xc7, 0xc5, 0x2e, 0x50,
+ 0xe8, 0xe6, 0xd3, 0xd0,
+};
+static const unsigned char kat4059_entropyinpr1[] = {
+ 0xda, 0x5d, 0xa3, 0x2c, 0xb5, 0xe6, 0xcd, 0x46, 0xa1, 0xcf, 0x7a, 0xbf,
+ 0x08, 0x5d, 0x63, 0x99, 0x3b, 0x73, 0x6f, 0x5d, 0x34, 0x7c, 0xba, 0x22,
+ 0xd6, 0x2b, 0xa4, 0x43, 0x7b, 0xfe, 0x9d, 0x82, 0xd5, 0x58, 0x86, 0x7b,
+ 0x6c, 0xc0, 0xa0, 0x6b,
+};
+static const unsigned char kat4059_addinpr1[] = {0};
+static const unsigned char kat4059_entropyinpr2[] = {
+ 0x1e, 0xf7, 0xcd, 0xb5, 0x4c, 0xa6, 0xd1, 0x61, 0xa3, 0xae, 0xcd, 0x0b,
+ 0x69, 0xd6, 0xe5, 0xfa, 0x33, 0x64, 0x34, 0xde, 0xc8, 0x04, 0xed, 0x38,
+ 0xf4, 0x4d, 0xb9, 0x12, 0x3e, 0xdb, 0x9a, 0xcf, 0xd3, 0x1e, 0x0e, 0x40,
+ 0xd0, 0xd8, 0x51, 0xd2,
+};
+static const unsigned char kat4059_addinpr2[] = {0};
+static const unsigned char kat4059_retbits[] = {
+ 0x8f, 0xde, 0x23, 0x1f, 0xcb, 0xc0, 0xa2, 0x3d, 0x59, 0xc9, 0x1e, 0x25,
+ 0xd7, 0xb3, 0x79, 0xec, 0x27, 0xd7, 0x9c, 0x86, 0x9a, 0x90, 0x02, 0x16,
+ 0x3c, 0xb4, 0x9e, 0x29, 0x4c, 0x07, 0x45, 0x3e, 0x7b, 0x3e, 0x62, 0x3d,
+ 0x8d, 0x2d, 0x0a, 0x26, 0x69, 0x60, 0x8b, 0x51, 0xc1, 0x8f, 0x5e, 0xfe,
+ 0xb5, 0x20, 0x9f, 0x5d, 0xf6, 0x40, 0x24, 0x2e, 0xe0, 0xe9, 0xe8, 0xfa,
+ 0x95, 0x0d, 0x0c, 0xe2,
+};
+static const struct drbg_kat_pr_true kat4059_t = {
+ 8, kat4059_entropyin, kat4059_nonce, kat4059_persstr,
+ kat4059_entropyinpr1, kat4059_addinpr1, kat4059_entropyinpr2,
+ kat4059_addinpr2, kat4059_retbits
+};
+static const struct drbg_kat kat4059 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4059_t
+};
+
+static const unsigned char kat4060_entropyin[] = {
+ 0x33, 0x3f, 0xa2, 0x1f, 0x65, 0xac, 0x78, 0x49, 0x10, 0x42, 0x87, 0x23,
+ 0x4e, 0x32, 0x5f, 0x79, 0x0a, 0x8a, 0x4b, 0x0f, 0xf6, 0xc0, 0xfa, 0xcb,
+ 0x05, 0xd2, 0xd8, 0xd7, 0xf8, 0xe7, 0xb8, 0xfb, 0xe5, 0x66, 0x04, 0x65,
+ 0xb2, 0xa1, 0x00, 0x5f,
+};
+static const unsigned char kat4060_nonce[] = {0};
+static const unsigned char kat4060_persstr[] = {
+ 0x31, 0x4e, 0x90, 0xbe, 0xe5, 0x93, 0x2d, 0xa5, 0x78, 0x86, 0x33, 0x70,
+ 0xcb, 0x45, 0x7f, 0xa4, 0xcf, 0x98, 0x54, 0x91, 0xe4, 0x76, 0xe1, 0x03,
+ 0x1f, 0xd3, 0x5d, 0x0e, 0xba, 0x34, 0x54, 0x6e, 0x77, 0xf9, 0x08, 0x7e,
+ 0x19, 0x3a, 0x96, 0x73,
+};
+static const unsigned char kat4060_entropyinpr1[] = {
+ 0x33, 0x57, 0x75, 0x39, 0xb0, 0x04, 0x25, 0x3d, 0x94, 0xec, 0x9b, 0x5b,
+ 0x00, 0xb0, 0xef, 0xf2, 0x05, 0xf9, 0x71, 0xe4, 0xc4, 0x9e, 0x7d, 0x7a,
+ 0x24, 0x73, 0x01, 0xd4, 0x52, 0x4d, 0x23, 0xbf, 0x17, 0xcc, 0x39, 0x5d,
+ 0xa9, 0x29, 0x0a, 0x44,
+};
+static const unsigned char kat4060_addinpr1[] = {0};
+static const unsigned char kat4060_entropyinpr2[] = {
+ 0xbb, 0xa6, 0x3e, 0xe3, 0xbe, 0xdf, 0xe2, 0x43, 0x7a, 0x15, 0x48, 0x3a,
+ 0xd9, 0x62, 0x30, 0xf0, 0x5b, 0xb4, 0xf8, 0x72, 0x65, 0xd5, 0x35, 0x93,
+ 0xf5, 0x45, 0xc6, 0x60, 0x1e, 0x1a, 0xa7, 0xc6, 0x09, 0x18, 0x48, 0x3e,
+ 0x00, 0x24, 0x92, 0x76,
+};
+static const unsigned char kat4060_addinpr2[] = {0};
+static const unsigned char kat4060_retbits[] = {
+ 0x85, 0x29, 0xb8, 0x25, 0x45, 0x26, 0x11, 0x53, 0x64, 0x12, 0xd8, 0x9c,
+ 0xc1, 0xa3, 0x8e, 0x78, 0x5a, 0xa1, 0xe2, 0x4f, 0x50, 0xd7, 0x5f, 0xa1,
+ 0x68, 0x3c, 0x75, 0x15, 0xb3, 0x9b, 0xfc, 0xe8, 0xb0, 0xc9, 0xf5, 0x59,
+ 0xbb, 0x42, 0x2f, 0x93, 0x66, 0x3f, 0xf5, 0x2a, 0x37, 0x83, 0x9e, 0x07,
+ 0xa9, 0xb3, 0x4c, 0xc9, 0xc4, 0xf3, 0x35, 0xab, 0x21, 0xd9, 0x92, 0x8d,
+ 0xc4, 0x70, 0xcd, 0x3a,
+};
+static const struct drbg_kat_pr_true kat4060_t = {
+ 9, kat4060_entropyin, kat4060_nonce, kat4060_persstr,
+ kat4060_entropyinpr1, kat4060_addinpr1, kat4060_entropyinpr2,
+ kat4060_addinpr2, kat4060_retbits
+};
+static const struct drbg_kat kat4060 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4060_t
+};
+
+static const unsigned char kat4061_entropyin[] = {
+ 0x7c, 0x84, 0xac, 0x8f, 0xc4, 0x2f, 0x47, 0x38, 0x3c, 0xbb, 0xb7, 0x16,
+ 0x45, 0xc9, 0xfa, 0x2a, 0x26, 0xd1, 0x0e, 0x90, 0x2b, 0xe6, 0x46, 0xca,
+ 0xe2, 0x4b, 0xed, 0x37, 0xc4, 0x79, 0xfd, 0xa6, 0xa1, 0x67, 0xfb, 0x3f,
+ 0x50, 0x97, 0xa0, 0xe2,
+};
+static const unsigned char kat4061_nonce[] = {0};
+static const unsigned char kat4061_persstr[] = {
+ 0xe2, 0x59, 0xd6, 0xc6, 0x3d, 0x8a, 0x3a, 0x37, 0xee, 0x3f, 0xaf, 0xf5,
+ 0x24, 0x3c, 0x20, 0x6f, 0x02, 0xb3, 0x4d, 0x1f, 0x92, 0x0a, 0xbb, 0xc0,
+ 0x0b, 0xa9, 0x5e, 0x26, 0x72, 0x37, 0xbb, 0xba, 0x6d, 0x1d, 0xcc, 0x1b,
+ 0xe8, 0x1d, 0xc5, 0x59,
+};
+static const unsigned char kat4061_entropyinpr1[] = {
+ 0x80, 0xc4, 0xb7, 0x64, 0x9e, 0x7b, 0xf1, 0x89, 0xb9, 0x14, 0xa1, 0xfd,
+ 0x77, 0x2f, 0x11, 0x19, 0xa5, 0xa6, 0x53, 0x1b, 0x20, 0x1d, 0xf4, 0x7a,
+ 0x6b, 0xc7, 0x02, 0x37, 0x2b, 0xc3, 0x69, 0x34, 0x15, 0xb1, 0x93, 0xb5,
+ 0x93, 0x24, 0xd3, 0xfe,
+};
+static const unsigned char kat4061_addinpr1[] = {0};
+static const unsigned char kat4061_entropyinpr2[] = {
+ 0x2e, 0xb1, 0x0d, 0x46, 0xd6, 0xcf, 0x9a, 0xcc, 0x13, 0xbe, 0xc9, 0x7f,
+ 0xd8, 0x5b, 0xa2, 0xdc, 0xf9, 0x38, 0x04, 0x6d, 0xcf, 0xde, 0xba, 0xdb,
+ 0xc2, 0x7c, 0xff, 0x0b, 0xe5, 0xa7, 0xef, 0x1b, 0x56, 0x9f, 0x5f, 0xe9,
+ 0xa5, 0x3b, 0x52, 0x6e,
+};
+static const unsigned char kat4061_addinpr2[] = {0};
+static const unsigned char kat4061_retbits[] = {
+ 0xfb, 0x22, 0x50, 0x4b, 0x11, 0x28, 0x68, 0xe7, 0x2f, 0xcf, 0xde, 0x7b,
+ 0x8f, 0xfb, 0x67, 0xa9, 0x3b, 0x26, 0x9c, 0xb3, 0x7e, 0x37, 0xcb, 0xd8,
+ 0x64, 0xb7, 0x22, 0xc0, 0xac, 0xc2, 0xcf, 0x2f, 0x40, 0xff, 0xd4, 0x8e,
+ 0xd3, 0xa8, 0xf9, 0x17, 0xac, 0x5f, 0xc2, 0x32, 0x0c, 0x4f, 0x4f, 0x9b,
+ 0x14, 0x77, 0x4a, 0xee, 0x35, 0xaa, 0xed, 0xec, 0x03, 0xa2, 0xfc, 0x68,
+ 0xd6, 0xa9, 0x80, 0xc1,
+};
+static const struct drbg_kat_pr_true kat4061_t = {
+ 10, kat4061_entropyin, kat4061_nonce, kat4061_persstr,
+ kat4061_entropyinpr1, kat4061_addinpr1, kat4061_entropyinpr2,
+ kat4061_addinpr2, kat4061_retbits
+};
+static const struct drbg_kat kat4061 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4061_t
+};
+
+static const unsigned char kat4062_entropyin[] = {
+ 0x2d, 0xbe, 0x8d, 0xa9, 0x97, 0x4d, 0x6a, 0x6c, 0x75, 0x3b, 0x96, 0xce,
+ 0x0b, 0x36, 0xdb, 0x95, 0xbc, 0xa4, 0x59, 0xb2, 0xdd, 0xdc, 0x5c, 0xfd,
+ 0x3e, 0xfe, 0xab, 0x9a, 0x40, 0xd4, 0x51, 0xb0, 0x0e, 0xbd, 0xf7, 0x85,
+ 0xb3, 0xd3, 0x7e, 0xce,
+};
+static const unsigned char kat4062_nonce[] = {0};
+static const unsigned char kat4062_persstr[] = {
+ 0x3e, 0x00, 0xb6, 0x4a, 0x29, 0x3d, 0x6e, 0xef, 0x06, 0x30, 0x75, 0x7d,
+ 0x61, 0x33, 0xb0, 0xa7, 0xef, 0x17, 0x2e, 0x57, 0x17, 0xaf, 0xcd, 0x95,
+ 0xfc, 0x0c, 0xfe, 0x24, 0x84, 0x6e, 0xdd, 0x39, 0x22, 0xf0, 0xc7, 0xbc,
+ 0xc3, 0x01, 0x13, 0x9b,
+};
+static const unsigned char kat4062_entropyinpr1[] = {
+ 0xad, 0x32, 0xa2, 0x3e, 0x3b, 0x63, 0x1b, 0x87, 0x61, 0x30, 0xdf, 0xed,
+ 0xa4, 0x75, 0x71, 0x3d, 0x14, 0xb6, 0xf9, 0x4a, 0x4c, 0x8c, 0x9f, 0x4e,
+ 0x7b, 0xbe, 0xc4, 0x41, 0x08, 0x60, 0xc7, 0xb1, 0x5b, 0x34, 0x6f, 0x53,
+ 0x16, 0x3c, 0x7c, 0x5c,
+};
+static const unsigned char kat4062_addinpr1[] = {0};
+static const unsigned char kat4062_entropyinpr2[] = {
+ 0xf8, 0x1a, 0x5f, 0x9a, 0x2d, 0xfd, 0x5b, 0x92, 0x41, 0x51, 0x57, 0x07,
+ 0x59, 0xd8, 0x45, 0xd4, 0x10, 0x73, 0xa3, 0x62, 0x8e, 0xf5, 0xf0, 0xef,
+ 0x62, 0x22, 0x97, 0xd1, 0x58, 0xcc, 0xb1, 0x73, 0xee, 0x55, 0x4a, 0x6e,
+ 0x1e, 0xe6, 0x80, 0x83,
+};
+static const unsigned char kat4062_addinpr2[] = {0};
+static const unsigned char kat4062_retbits[] = {
+ 0x29, 0x6a, 0x93, 0x39, 0xec, 0x0a, 0xfe, 0x0a, 0x1a, 0xd8, 0xb3, 0xe8,
+ 0x10, 0x07, 0x72, 0x1b, 0x78, 0xe8, 0xf4, 0xfa, 0xfb, 0x1e, 0xe6, 0xce,
+ 0x76, 0xc4, 0x22, 0xc9, 0x94, 0x7c, 0x41, 0x9a, 0xe2, 0xba, 0xb1, 0xea,
+ 0x0c, 0x9d, 0xee, 0x24, 0xc0, 0x51, 0x23, 0xa2, 0x8e, 0x7a, 0xdc, 0x22,
+ 0x77, 0xa1, 0x47, 0xaa, 0xf6, 0x82, 0xb8, 0x9e, 0x76, 0x7d, 0xaa, 0xd3,
+ 0x6a, 0xcb, 0xe2, 0x86,
+};
+static const struct drbg_kat_pr_true kat4062_t = {
+ 11, kat4062_entropyin, kat4062_nonce, kat4062_persstr,
+ kat4062_entropyinpr1, kat4062_addinpr1, kat4062_entropyinpr2,
+ kat4062_addinpr2, kat4062_retbits
+};
+static const struct drbg_kat kat4062 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4062_t
+};
+
+static const unsigned char kat4063_entropyin[] = {
+ 0x5f, 0x8e, 0x78, 0xc5, 0xb9, 0x14, 0x8c, 0xb1, 0x10, 0x5d, 0x6d, 0x52,
+ 0x92, 0x6e, 0xfb, 0xc9, 0xf5, 0x6a, 0xbb, 0xcf, 0xab, 0x42, 0x9c, 0xef,
+ 0x20, 0xd1, 0x0b, 0xc1, 0xbb, 0x29, 0x35, 0xf8, 0xcb, 0xfe, 0x73, 0x11,
+ 0x97, 0xc9, 0x5f, 0x7b,
+};
+static const unsigned char kat4063_nonce[] = {0};
+static const unsigned char kat4063_persstr[] = {
+ 0xb6, 0x1c, 0xc0, 0x87, 0x26, 0xd9, 0x16, 0x62, 0x61, 0x5d, 0x60, 0x19,
+ 0x0b, 0x4a, 0x06, 0x90, 0xaf, 0x5e, 0x8c, 0x25, 0x25, 0xde, 0xeb, 0x57,
+ 0x95, 0xe2, 0x40, 0x24, 0x56, 0x6e, 0x64, 0x42, 0xf1, 0x2c, 0xe5, 0x6a,
+ 0x11, 0x4a, 0x3e, 0x59,
+};
+static const unsigned char kat4063_entropyinpr1[] = {
+ 0x59, 0xe5, 0x9e, 0x0a, 0x80, 0x72, 0x58, 0xf6, 0x9e, 0x58, 0x76, 0x43,
+ 0xc7, 0xaa, 0x0c, 0x3b, 0xee, 0x55, 0x0c, 0x7a, 0xe5, 0xf8, 0x62, 0xcb,
+ 0xed, 0x27, 0x8c, 0x94, 0x2b, 0x03, 0xd3, 0x65, 0x08, 0x73, 0xdc, 0xde,
+ 0x2f, 0xc5, 0xb2, 0xf2,
+};
+static const unsigned char kat4063_addinpr1[] = {0};
+static const unsigned char kat4063_entropyinpr2[] = {
+ 0xad, 0xa9, 0xfa, 0x43, 0x28, 0x29, 0x99, 0x1f, 0x4a, 0x99, 0x33, 0x79,
+ 0x7d, 0x3f, 0x49, 0x04, 0x50, 0x44, 0xd2, 0xdd, 0x51, 0x24, 0x17, 0xe7,
+ 0x8a, 0xd3, 0x4f, 0x4b, 0x69, 0x23, 0x6e, 0xc3, 0x78, 0x39, 0x2a, 0xaf,
+ 0x09, 0x50, 0x09, 0x35,
+};
+static const unsigned char kat4063_addinpr2[] = {0};
+static const unsigned char kat4063_retbits[] = {
+ 0xb6, 0xfe, 0xf6, 0x53, 0x3b, 0x0c, 0x2c, 0xa2, 0x13, 0xeb, 0x57, 0xdc,
+ 0x67, 0x39, 0x37, 0xde, 0x10, 0x3b, 0x82, 0x59, 0x2b, 0xdc, 0x43, 0xa0,
+ 0x2b, 0x33, 0x52, 0x91, 0x08, 0x2d, 0x18, 0xf6, 0x63, 0x07, 0x98, 0x66,
+ 0x2b, 0x56, 0x6c, 0x65, 0x32, 0xcd, 0x45, 0xa5, 0xf3, 0xd0, 0xfe, 0xfb,
+ 0x8e, 0x29, 0x20, 0x61, 0x13, 0x48, 0x49, 0x08, 0xf9, 0x96, 0x73, 0xed,
+ 0xf6, 0x06, 0x98, 0x26,
+};
+static const struct drbg_kat_pr_true kat4063_t = {
+ 12, kat4063_entropyin, kat4063_nonce, kat4063_persstr,
+ kat4063_entropyinpr1, kat4063_addinpr1, kat4063_entropyinpr2,
+ kat4063_addinpr2, kat4063_retbits
+};
+static const struct drbg_kat kat4063 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4063_t
+};
+
+static const unsigned char kat4064_entropyin[] = {
+ 0xc2, 0x78, 0x07, 0xee, 0xa7, 0x3d, 0xbc, 0xee, 0x52, 0xf1, 0x22, 0x93,
+ 0xec, 0xd1, 0x5d, 0x68, 0x33, 0x83, 0x5e, 0x2a, 0x9a, 0x25, 0x3e, 0x03,
+ 0x07, 0x33, 0x0c, 0xea, 0x17, 0x42, 0xe9, 0xad, 0xbc, 0x63, 0x57, 0xa0,
+ 0xec, 0x4c, 0x5e, 0x24,
+};
+static const unsigned char kat4064_nonce[] = {0};
+static const unsigned char kat4064_persstr[] = {
+ 0x5e, 0xb4, 0x57, 0xc8, 0x8f, 0xc1, 0x1b, 0xec, 0x9b, 0xeb, 0x9d, 0x4c,
+ 0xf0, 0x22, 0x54, 0x56, 0xd1, 0x86, 0x3b, 0xb6, 0x24, 0x2d, 0xf9, 0xe1,
+ 0x12, 0x63, 0x35, 0x58, 0xf4, 0xce, 0xeb, 0xed, 0x99, 0xc7, 0xda, 0x83,
+ 0x4d, 0xe0, 0x9b, 0xb0,
+};
+static const unsigned char kat4064_entropyinpr1[] = {
+ 0x20, 0x05, 0xe2, 0x38, 0x32, 0x87, 0xbc, 0xc2, 0xbb, 0x86, 0x2b, 0xe0,
+ 0x1d, 0x48, 0xc2, 0xeb, 0xb3, 0x54, 0x25, 0x1b, 0x66, 0xc5, 0x7b, 0xac,
+ 0xa2, 0x59, 0x6f, 0x45, 0x88, 0xeb, 0xb9, 0x5c, 0xa1, 0xb4, 0xbe, 0x1e,
+ 0x83, 0x6c, 0x88, 0xcf,
+};
+static const unsigned char kat4064_addinpr1[] = {0};
+static const unsigned char kat4064_entropyinpr2[] = {
+ 0x8d, 0x60, 0x02, 0xd0, 0xfe, 0x98, 0xd1, 0x5c, 0xc5, 0x10, 0x85, 0x5e,
+ 0x57, 0xcd, 0x42, 0xe5, 0x4e, 0x85, 0x0f, 0x97, 0x27, 0x36, 0x76, 0xa4,
+ 0xb0, 0xf2, 0x0a, 0xb0, 0x6f, 0x12, 0x99, 0x2d, 0x8c, 0x2d, 0xad, 0xa6,
+ 0x7f, 0xf3, 0xe1, 0x38,
+};
+static const unsigned char kat4064_addinpr2[] = {0};
+static const unsigned char kat4064_retbits[] = {
+ 0xad, 0xdb, 0xe7, 0xea, 0xfd, 0x98, 0x1e, 0x18, 0x32, 0x4c, 0x5d, 0x8b,
+ 0x79, 0x1e, 0x04, 0x75, 0xe3, 0x48, 0xd7, 0xa1, 0x48, 0x0b, 0x4b, 0x70,
+ 0x9c, 0x72, 0xd1, 0x8e, 0xca, 0x1b, 0xf7, 0xca, 0x2b, 0xb1, 0xa1, 0x43,
+ 0xff, 0xbb, 0x31, 0x9f, 0x10, 0xc5, 0xd3, 0xad, 0xd3, 0xd8, 0xf5, 0x45,
+ 0xa0, 0x21, 0x48, 0x10, 0x99, 0xe7, 0x28, 0xba, 0x53, 0x54, 0xf5, 0xe2,
+ 0x6d, 0x5c, 0xe3, 0xd6,
+};
+static const struct drbg_kat_pr_true kat4064_t = {
+ 13, kat4064_entropyin, kat4064_nonce, kat4064_persstr,
+ kat4064_entropyinpr1, kat4064_addinpr1, kat4064_entropyinpr2,
+ kat4064_addinpr2, kat4064_retbits
+};
+static const struct drbg_kat kat4064 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4064_t
+};
+
+static const unsigned char kat4065_entropyin[] = {
+ 0xdc, 0x0d, 0x01, 0xe6, 0x53, 0x61, 0x81, 0x70, 0x19, 0x83, 0x4e, 0x8e,
+ 0x94, 0xc9, 0xca, 0xd0, 0x80, 0x90, 0xb1, 0x70, 0x1f, 0x99, 0x1f, 0xf7,
+ 0x99, 0xf7, 0x5a, 0x1a, 0xa9, 0xf9, 0x7c, 0xa6, 0xf6, 0x3b, 0x48, 0xc7,
+ 0x40, 0x22, 0x4a, 0x47,
+};
+static const unsigned char kat4065_nonce[] = {0};
+static const unsigned char kat4065_persstr[] = {
+ 0x01, 0xf6, 0x90, 0x2d, 0x4b, 0xc5, 0xfd, 0xad, 0xcf, 0x44, 0xd2, 0x70,
+ 0xb6, 0x9a, 0x19, 0xf3, 0x61, 0x2a, 0xe6, 0xfc, 0x0c, 0x2d, 0xc5, 0x7e,
+ 0xb2, 0xe8, 0xad, 0xa5, 0x4a, 0xda, 0x4a, 0xd8, 0xdd, 0x28, 0x52, 0x94,
+ 0x47, 0xd1, 0x6a, 0xa1,
+};
+static const unsigned char kat4065_entropyinpr1[] = {
+ 0x21, 0xdb, 0x28, 0xb5, 0xcb, 0x97, 0x24, 0xd9, 0x3c, 0x58, 0xf7, 0x87,
+ 0xb1, 0x55, 0xf0, 0x13, 0x1c, 0x39, 0xb5, 0x60, 0x6e, 0x6a, 0x96, 0x8d,
+ 0xcf, 0x7e, 0xd4, 0xcc, 0xda, 0x1d, 0xa3, 0xc9, 0xa4, 0xc9, 0xc7, 0x31,
+ 0xd4, 0xf7, 0xbe, 0xd1,
+};
+static const unsigned char kat4065_addinpr1[] = {0};
+static const unsigned char kat4065_entropyinpr2[] = {
+ 0x4a, 0xa5, 0x87, 0xed, 0xcb, 0x94, 0x0c, 0x3a, 0x93, 0x28, 0xa0, 0xef,
+ 0x2f, 0x19, 0x5e, 0xff, 0xc1, 0xcf, 0x02, 0x7b, 0x54, 0x9f, 0xf1, 0xec,
+ 0x5d, 0x5c, 0xac, 0x0e, 0x99, 0x61, 0x96, 0xea, 0xcd, 0x16, 0x10, 0x84,
+ 0x98, 0xb2, 0x73, 0x66,
+};
+static const unsigned char kat4065_addinpr2[] = {0};
+static const unsigned char kat4065_retbits[] = {
+ 0x69, 0xdc, 0x6c, 0x36, 0x45, 0x9e, 0x00, 0x52, 0x75, 0xe3, 0x44, 0x88,
+ 0x66, 0x24, 0xca, 0x61, 0xa4, 0x2c, 0xba, 0x33, 0x87, 0xdc, 0xee, 0x79,
+ 0x39, 0x2a, 0xe9, 0x6a, 0x31, 0x13, 0x13, 0xdc, 0x7e, 0x33, 0x28, 0x36,
+ 0x05, 0xfb, 0x46, 0xaa, 0x1d, 0x88, 0x1b, 0xcc, 0xae, 0xc6, 0x33, 0x6a,
+ 0x61, 0x54, 0x5d, 0xac, 0x52, 0x16, 0x6c, 0xbf, 0x81, 0x74, 0xb8, 0xdc,
+ 0xa3, 0xeb, 0xfb, 0xc6,
+};
+static const struct drbg_kat_pr_true kat4065_t = {
+ 14, kat4065_entropyin, kat4065_nonce, kat4065_persstr,
+ kat4065_entropyinpr1, kat4065_addinpr1, kat4065_entropyinpr2,
+ kat4065_addinpr2, kat4065_retbits
+};
+static const struct drbg_kat kat4065 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 0, 64, &kat4065_t
+};
+
+static const unsigned char kat4066_entropyin[] = {
+ 0x9f, 0x39, 0x78, 0xf1, 0x54, 0x85, 0x45, 0xcc, 0xd1, 0xaf, 0xd2, 0xd9,
+ 0xa1, 0xa8, 0xb5, 0x0a, 0x0d, 0x4f, 0xfc, 0x8b, 0xb0, 0x8b, 0xfd, 0xd9,
+ 0x63, 0x79, 0x44, 0x3a, 0x07, 0x07, 0x49, 0xf1, 0xbd, 0x19, 0x52, 0xc1,
+ 0x49, 0x99, 0x78, 0x4f,
+};
+static const unsigned char kat4066_nonce[] = {0};
+static const unsigned char kat4066_persstr[] = {
+ 0x20, 0xd2, 0x35, 0x8f, 0xb0, 0x0e, 0xab, 0xc9, 0xe2, 0x25, 0xcd, 0xa2,
+ 0x25, 0x24, 0x35, 0xfd, 0x71, 0x77, 0xff, 0xda, 0x72, 0xc2, 0xc3, 0x15,
+ 0x50, 0x1a, 0x4c, 0x51, 0x67, 0x59, 0x0f, 0xef, 0xd2, 0x05, 0x26, 0xc8,
+ 0x20, 0x52, 0x46, 0x87,
+};
+static const unsigned char kat4066_entropyinpr1[] = {
+ 0xe9, 0x53, 0xa8, 0x18, 0x2d, 0xb2, 0x49, 0x71, 0x12, 0xd0, 0xc6, 0xb1,
+ 0xaa, 0xc6, 0xdb, 0xf3, 0x21, 0xaf, 0xe3, 0x9a, 0x4e, 0xe9, 0xe7, 0x4b,
+ 0x38, 0x9a, 0x29, 0x3b, 0x6b, 0x69, 0x19, 0x6b, 0x03, 0xca, 0x95, 0xd5,
+ 0xe4, 0x76, 0x81, 0x0e,
+};
+static const unsigned char kat4066_addinpr1[] = {
+ 0x61, 0x0a, 0xc2, 0x41, 0xfe, 0xa1, 0xda, 0xba, 0xd3, 0x7f, 0x2e, 0x04,
+ 0x12, 0x0c, 0x6b, 0xea, 0xe2, 0x78, 0x6b, 0x2b, 0x82, 0xfc, 0xda, 0x64,
+ 0xe8, 0x12, 0xb8, 0x9d, 0x30, 0xf1, 0xc4, 0x1f, 0x83, 0x0a, 0x54, 0x13,
+ 0x7c, 0x16, 0x24, 0xe6,
+};
+static const unsigned char kat4066_entropyinpr2[] = {
+ 0x65, 0xa4, 0x70, 0x68, 0x13, 0x06, 0xea, 0x1d, 0xbb, 0x9c, 0x32, 0xad,
+ 0x85, 0xb5, 0xef, 0x8d, 0xaa, 0x50, 0xc3, 0xe2, 0xc1, 0xac, 0xbb, 0x90,
+ 0xae, 0x2d, 0x08, 0x4b, 0x72, 0xc5, 0x65, 0x1a, 0x2f, 0x46, 0xe8, 0x2a,
+ 0xf6, 0xe1, 0x29, 0x6d,
+};
+static const unsigned char kat4066_addinpr2[] = {
+ 0xbc, 0xdd, 0xe7, 0x1b, 0xc0, 0x46, 0x5b, 0xf0, 0x13, 0x0e, 0xd5, 0x5f,
+ 0x3f, 0x80, 0x18, 0x31, 0x71, 0xc8, 0x16, 0x7a, 0x00, 0xe1, 0xee, 0x70,
+ 0x70, 0xca, 0x4c, 0xc0, 0x4f, 0xb0, 0xc5, 0xf2, 0x77, 0x35, 0x2d, 0xe2,
+ 0x80, 0x64, 0xaf, 0xb1,
+};
+static const unsigned char kat4066_retbits[] = {
+ 0x0f, 0xfe, 0xf9, 0x78, 0x66, 0x0d, 0x79, 0xa3, 0x27, 0x52, 0xdc, 0xa3,
+ 0x89, 0xf2, 0x72, 0xce, 0xa7, 0xe0, 0xdd, 0x21, 0x81, 0x9c, 0x4c, 0x6c,
+ 0x82, 0xb7, 0x1f, 0x53, 0x3c, 0xa4, 0x98, 0xc9, 0xef, 0xb2, 0x1d, 0x1e,
+ 0xeb, 0x04, 0x0b, 0xf9, 0x87, 0x1e, 0x47, 0x54, 0xee, 0x47, 0x4e, 0xca,
+ 0xfc, 0x08, 0xb8, 0xda, 0xe3, 0x24, 0x53, 0xa3, 0x0a, 0xb3, 0x58, 0x6a,
+ 0xef, 0x54, 0xc3, 0xac,
+};
+static const struct drbg_kat_pr_true kat4066_t = {
+ 0, kat4066_entropyin, kat4066_nonce, kat4066_persstr,
+ kat4066_entropyinpr1, kat4066_addinpr1, kat4066_entropyinpr2,
+ kat4066_addinpr2, kat4066_retbits
+};
+static const struct drbg_kat kat4066 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4066_t
+};
+
+static const unsigned char kat4067_entropyin[] = {
+ 0x81, 0x7e, 0xca, 0xb9, 0x38, 0x29, 0xbc, 0xee, 0xaa, 0x9e, 0x86, 0x29,
+ 0xeb, 0xc3, 0x2c, 0xd6, 0x93, 0xa3, 0x40, 0x15, 0xa2, 0xce, 0x44, 0xa9,
+ 0x3e, 0xa5, 0xa4, 0x35, 0xa8, 0x33, 0x45, 0x0f, 0x31, 0x95, 0x70, 0x4f,
+ 0x15, 0x6a, 0x1b, 0x18,
+};
+static const unsigned char kat4067_nonce[] = {0};
+static const unsigned char kat4067_persstr[] = {
+ 0xd1, 0x64, 0x7f, 0xb3, 0x6c, 0x04, 0x15, 0x08, 0x42, 0xae, 0x7e, 0x12,
+ 0x30, 0x94, 0xe7, 0x93, 0xbc, 0x1b, 0xce, 0xcb, 0x5f, 0x5b, 0x25, 0x22,
+ 0xef, 0xb6, 0xfb, 0x3c, 0x92, 0x91, 0xea, 0xe4, 0xaf, 0xf0, 0xb8, 0xf6,
+ 0x76, 0x4b, 0x2f, 0x0e,
+};
+static const unsigned char kat4067_entropyinpr1[] = {
+ 0x03, 0x24, 0x38, 0xad, 0xe2, 0xda, 0x4e, 0x9c, 0xfb, 0x13, 0x5c, 0x29,
+ 0xcf, 0x87, 0x72, 0x7a, 0xd6, 0xc0, 0xdd, 0x48, 0xab, 0xa6, 0x60, 0xfc,
+ 0x81, 0xf4, 0x91, 0xb5, 0x16, 0x87, 0xb2, 0x5b, 0x10, 0x8d, 0x97, 0xc6,
+ 0x8e, 0x17, 0x25, 0xfd,
+};
+static const unsigned char kat4067_addinpr1[] = {
+ 0xd4, 0xb7, 0x9e, 0x9e, 0x70, 0xa4, 0xfd, 0x0c, 0x9b, 0x53, 0x05, 0xe9,
+ 0xd1, 0xa3, 0xbf, 0xb6, 0x82, 0x4e, 0xea, 0x74, 0x90, 0x2f, 0x82, 0x1b,
+ 0xb4, 0x08, 0xf7, 0xbf, 0xe2, 0x3d, 0x6e, 0x1e, 0xc3, 0xc6, 0x89, 0x3a,
+ 0xb6, 0x88, 0x4e, 0x0c,
+};
+static const unsigned char kat4067_entropyinpr2[] = {
+ 0x91, 0x71, 0xa2, 0x46, 0xe5, 0x37, 0x28, 0xa7, 0xd2, 0x95, 0xa6, 0xe7,
+ 0x55, 0x4a, 0x7d, 0x6a, 0x92, 0x64, 0x67, 0x3a, 0x69, 0x76, 0x77, 0x48,
+ 0x51, 0x9c, 0xb9, 0xa9, 0xf3, 0xe4, 0x7c, 0xc3, 0x78, 0xaf, 0xa5, 0xd4,
+ 0x6c, 0x8f, 0x33, 0xef,
+};
+static const unsigned char kat4067_addinpr2[] = {
+ 0x49, 0x46, 0xcd, 0xdd, 0x6d, 0x04, 0x81, 0xb8, 0xa4, 0x03, 0x47, 0xdd,
+ 0x61, 0x00, 0x69, 0xc5, 0xd2, 0x1b, 0x78, 0x7a, 0x03, 0x7c, 0xb1, 0xe2,
+ 0x69, 0x92, 0xb2, 0x29, 0x1d, 0xc5, 0xfa, 0x61, 0xea, 0xc1, 0x5d, 0xd7,
+ 0xf5, 0xcd, 0x0a, 0xd0,
+};
+static const unsigned char kat4067_retbits[] = {
+ 0xe6, 0xd6, 0x73, 0xc0, 0xc4, 0x49, 0xa6, 0x03, 0x09, 0x2b, 0x4e, 0xe4,
+ 0x6a, 0x8c, 0x61, 0x1c, 0xce, 0x66, 0xba, 0x20, 0x18, 0x98, 0x6b, 0x50,
+ 0x10, 0x75, 0x34, 0x0c, 0xf0, 0xb1, 0x7e, 0x90, 0x31, 0x33, 0x41, 0xe9,
+ 0x6d, 0x13, 0x54, 0xc1, 0x5e, 0x73, 0x98, 0xaa, 0x36, 0x1a, 0x2a, 0x8f,
+ 0x3d, 0x56, 0xbe, 0x18, 0x2a, 0x71, 0xf6, 0x0e, 0xc6, 0x99, 0x94, 0x5e,
+ 0x9c, 0xd2, 0x3b, 0xc9,
+};
+static const struct drbg_kat_pr_true kat4067_t = {
+ 1, kat4067_entropyin, kat4067_nonce, kat4067_persstr,
+ kat4067_entropyinpr1, kat4067_addinpr1, kat4067_entropyinpr2,
+ kat4067_addinpr2, kat4067_retbits
+};
+static const struct drbg_kat kat4067 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4067_t
+};
+
+static const unsigned char kat4068_entropyin[] = {
+ 0x4b, 0x19, 0x81, 0x69, 0xe0, 0x60, 0x98, 0x1b, 0x62, 0xac, 0xbf, 0x72,
+ 0x87, 0xae, 0xd7, 0x4d, 0xe5, 0x1e, 0x15, 0xc5, 0x5f, 0xd5, 0x5c, 0x51,
+ 0x0f, 0xae, 0xfc, 0xab, 0x57, 0xdb, 0xf9, 0xfe, 0x3f, 0x3c, 0xdf, 0xc0,
+ 0x78, 0x4f, 0x8d, 0x83,
+};
+static const unsigned char kat4068_nonce[] = {0};
+static const unsigned char kat4068_persstr[] = {
+ 0x24, 0xd6, 0xbc, 0xef, 0x2b, 0xf7, 0x14, 0x3c, 0xe0, 0xf3, 0xdf, 0x22,
+ 0x63, 0xb7, 0xfd, 0xfb, 0x08, 0x8d, 0x19, 0xdd, 0x3f, 0x9f, 0x8d, 0x4a,
+ 0x18, 0x4e, 0xb7, 0x0d, 0xbf, 0xba, 0xf5, 0x00, 0x82, 0x9d, 0x39, 0x7a,
+ 0x9f, 0xd7, 0x19, 0xf3,
+};
+static const unsigned char kat4068_entropyinpr1[] = {
+ 0x46, 0x35, 0x58, 0x46, 0x7c, 0x3d, 0xc5, 0xd3, 0xf1, 0x66, 0x98, 0x04,
+ 0x29, 0x4d, 0x0a, 0xbd, 0x3e, 0x8e, 0xaf, 0x1c, 0x27, 0xf9, 0x4b, 0xf7,
+ 0x83, 0xf2, 0x45, 0x7d, 0x04, 0x3c, 0x9d, 0x3c, 0xce, 0x68, 0xef, 0x76,
+ 0x17, 0x29, 0x3e, 0xc1,
+};
+static const unsigned char kat4068_addinpr1[] = {
+ 0x91, 0x1c, 0x40, 0xa4, 0x4b, 0x59, 0x10, 0xdf, 0x4d, 0xa2, 0x6e, 0x5f,
+ 0x94, 0x20, 0x41, 0x02, 0xba, 0xb6, 0x17, 0x5a, 0xef, 0x7b, 0x33, 0x10,
+ 0xd1, 0xa8, 0x5e, 0x1f, 0x39, 0x02, 0x4e, 0x68, 0xc4, 0xea, 0x94, 0xa0,
+ 0x6e, 0x22, 0xc9, 0x08,
+};
+static const unsigned char kat4068_entropyinpr2[] = {
+ 0x56, 0xc3, 0xa4, 0x52, 0xbc, 0xbc, 0x6e, 0x75, 0xc1, 0x7a, 0xf5, 0x6c,
+ 0xd7, 0x62, 0xc0, 0x9c, 0x47, 0xa1, 0x14, 0xa1, 0x93, 0xc0, 0xd2, 0xf9,
+ 0xc1, 0x42, 0x8c, 0x7e, 0xb7, 0xb3, 0x61, 0x9b, 0xc2, 0x07, 0x51, 0xb7,
+ 0xd4, 0x7e, 0x79, 0xcf,
+};
+static const unsigned char kat4068_addinpr2[] = {
+ 0xa6, 0x7a, 0xa8, 0xa8, 0xb3, 0x86, 0x19, 0x20, 0x18, 0xab, 0x83, 0x59,
+ 0xf8, 0xdd, 0x68, 0x02, 0x5d, 0x55, 0x10, 0x7e, 0x11, 0xc1, 0xd4, 0x86,
+ 0x3e, 0xa0, 0x08, 0x74, 0x48, 0xf9, 0x56, 0xc2, 0x79, 0x1e, 0x98, 0x59,
+ 0x60, 0xdd, 0x9a, 0xb2,
+};
+static const unsigned char kat4068_retbits[] = {
+ 0xec, 0x75, 0xc6, 0xd1, 0x6d, 0x7e, 0x9b, 0x82, 0x71, 0xa3, 0xc9, 0x50,
+ 0x62, 0xa4, 0xfb, 0x91, 0x4d, 0xc2, 0x9a, 0x75, 0x32, 0xa7, 0x3b, 0x92,
+ 0x2f, 0x40, 0xdb, 0x7d, 0xb4, 0xf6, 0x39, 0x78, 0x45, 0x4e, 0x37, 0x08,
+ 0x39, 0x28, 0x88, 0x95, 0x2a, 0x12, 0xc9, 0xa4, 0xb4, 0x66, 0x34, 0x40,
+ 0x19, 0x11, 0x4e, 0xc3, 0x48, 0x92, 0x64, 0x53, 0xe6, 0x85, 0x30, 0xad,
+ 0xd6, 0x95, 0x8a, 0x41,
+};
+static const struct drbg_kat_pr_true kat4068_t = {
+ 2, kat4068_entropyin, kat4068_nonce, kat4068_persstr,
+ kat4068_entropyinpr1, kat4068_addinpr1, kat4068_entropyinpr2,
+ kat4068_addinpr2, kat4068_retbits
+};
+static const struct drbg_kat kat4068 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4068_t
+};
+
+static const unsigned char kat4069_entropyin[] = {
+ 0x57, 0xea, 0xff, 0xe6, 0x1e, 0xd1, 0x00, 0xe5, 0xe9, 0x15, 0x54, 0x0f,
+ 0xee, 0xbc, 0x20, 0x2b, 0xf1, 0xd7, 0xc7, 0x41, 0xf1, 0xf2, 0x48, 0x1a,
+ 0x81, 0x57, 0x2d, 0x3c, 0x33, 0xe0, 0x67, 0xe1, 0x3d, 0xd7, 0x2e, 0x03,
+ 0x15, 0x96, 0xd0, 0x0e,
+};
+static const unsigned char kat4069_nonce[] = {0};
+static const unsigned char kat4069_persstr[] = {
+ 0x20, 0xdf, 0x87, 0xea, 0xbc, 0xaf, 0xe7, 0xa1, 0x15, 0x91, 0xf5, 0x2e,
+ 0x1d, 0xbb, 0xdc, 0x67, 0xb2, 0x6b, 0xeb, 0x41, 0x26, 0xaa, 0xb7, 0xdf,
+ 0x89, 0x1a, 0x6e, 0x43, 0x0f, 0x85, 0x4e, 0x52, 0x14, 0x9e, 0x29, 0x52,
+ 0x3e, 0xa6, 0xc3, 0x2b,
+};
+static const unsigned char kat4069_entropyinpr1[] = {
+ 0x02, 0xf9, 0x1a, 0xbf, 0x29, 0x84, 0x55, 0x46, 0x5c, 0x0c, 0x5f, 0x62,
+ 0x88, 0x40, 0x55, 0x89, 0xc8, 0xcf, 0x70, 0x44, 0xc3, 0x11, 0x1c, 0x7b,
+ 0x02, 0x71, 0x66, 0x0b, 0x6a, 0xcf, 0x04, 0x2d, 0xd7, 0x02, 0x09, 0xba,
+ 0x8f, 0x9c, 0x44, 0x6e,
+};
+static const unsigned char kat4069_addinpr1[] = {
+ 0x3a, 0x87, 0x4d, 0x78, 0x53, 0x2c, 0x12, 0xca, 0xb6, 0xed, 0x14, 0x6f,
+ 0x18, 0x43, 0xf7, 0x9d, 0x2e, 0xbc, 0x6a, 0x6d, 0xe3, 0xbb, 0x5b, 0x62,
+ 0x3c, 0xec, 0x51, 0x1f, 0x20, 0xca, 0xb0, 0x5a, 0xe9, 0x9d, 0x45, 0xd3,
+ 0xd6, 0x75, 0x4f, 0x3b,
+};
+static const unsigned char kat4069_entropyinpr2[] = {
+ 0xeb, 0xc1, 0x95, 0xda, 0xf0, 0xc2, 0x8d, 0xa0, 0xe7, 0x95, 0x1f, 0xea,
+ 0x51, 0x71, 0xc2, 0xe5, 0x67, 0x09, 0x97, 0x2f, 0x59, 0x9f, 0x0a, 0x58,
+ 0xcf, 0x85, 0x83, 0x71, 0x53, 0x48, 0xa1, 0x19, 0x0d, 0xf5, 0x45, 0x2e,
+ 0x64, 0x05, 0x46, 0x89,
+};
+static const unsigned char kat4069_addinpr2[] = {
+ 0x55, 0xb0, 0x93, 0x0c, 0xc7, 0xfd, 0x93, 0xc2, 0x18, 0xa1, 0x7c, 0x46,
+ 0x35, 0xc0, 0x6c, 0x91, 0x80, 0xff, 0x04, 0x7e, 0x6a, 0x25, 0x6b, 0x9d,
+ 0x49, 0x7b, 0x98, 0xb9, 0xfe, 0xb0, 0x1a, 0x7a, 0x1d, 0x27, 0x56, 0x4b,
+ 0x40, 0x48, 0x07, 0xc9,
+};
+static const unsigned char kat4069_retbits[] = {
+ 0x72, 0xe1, 0xa2, 0x84, 0x39, 0x05, 0xf4, 0x76, 0x5c, 0x67, 0x38, 0x66,
+ 0xf2, 0x46, 0x24, 0x86, 0x4a, 0xe1, 0xe5, 0x65, 0x3e, 0x93, 0x8e, 0x53,
+ 0x83, 0x24, 0xcd, 0x9f, 0x20, 0xf9, 0x5c, 0xf0, 0x3e, 0x6c, 0xf9, 0xfa,
+ 0x95, 0xee, 0xce, 0xf4, 0x97, 0xc0, 0xc6, 0x06, 0x42, 0x65, 0x55, 0x44,
+ 0x9b, 0x38, 0xda, 0x30, 0x36, 0x28, 0x6d, 0xe3, 0xeb, 0x73, 0xde, 0x1f,
+ 0xdf, 0x55, 0x84, 0x4a,
+};
+static const struct drbg_kat_pr_true kat4069_t = {
+ 3, kat4069_entropyin, kat4069_nonce, kat4069_persstr,
+ kat4069_entropyinpr1, kat4069_addinpr1, kat4069_entropyinpr2,
+ kat4069_addinpr2, kat4069_retbits
+};
+static const struct drbg_kat kat4069 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4069_t
+};
+
+static const unsigned char kat4070_entropyin[] = {
+ 0x15, 0x5e, 0xcb, 0x97, 0xc3, 0x63, 0x36, 0xbb, 0xa9, 0xc4, 0x52, 0x91,
+ 0x2c, 0xa2, 0xc0, 0xe9, 0xd9, 0x79, 0x62, 0xba, 0x1f, 0x95, 0x51, 0x95,
+ 0x6c, 0x1d, 0x2d, 0xa8, 0x10, 0xb9, 0xb5, 0x5e, 0x47, 0xdb, 0x08, 0x8e,
+ 0x12, 0xe5, 0x5e, 0xd5,
+};
+static const unsigned char kat4070_nonce[] = {0};
+static const unsigned char kat4070_persstr[] = {
+ 0x1c, 0x20, 0x5b, 0x37, 0x15, 0x24, 0x2c, 0x28, 0x2a, 0x5f, 0x7d, 0x02,
+ 0x8c, 0xdd, 0xcb, 0x64, 0xba, 0xd1, 0x27, 0xe7, 0x2d, 0x91, 0x77, 0x04,
+ 0x79, 0x74, 0xa9, 0xef, 0xc8, 0xb2, 0xa3, 0x73, 0xf2, 0x9e, 0x74, 0x58,
+ 0x34, 0xab, 0xb7, 0x04,
+};
+static const unsigned char kat4070_entropyinpr1[] = {
+ 0xc7, 0x5a, 0x95, 0x91, 0xac, 0xb4, 0x89, 0xdc, 0x50, 0x14, 0x65, 0xe5,
+ 0x03, 0x43, 0x1e, 0xc6, 0x74, 0xeb, 0x3a, 0x2e, 0x25, 0x74, 0x73, 0x02,
+ 0x8e, 0xf5, 0x76, 0xce, 0x11, 0x9f, 0x35, 0xb0, 0xbb, 0xf7, 0x24, 0x75,
+ 0x5a, 0xdb, 0x5b, 0x91,
+};
+static const unsigned char kat4070_addinpr1[] = {
+ 0xc1, 0xa0, 0x4a, 0xbb, 0xfd, 0x0c, 0xd5, 0xdb, 0x8b, 0xce, 0x80, 0x42,
+ 0xe4, 0x17, 0x43, 0xcc, 0xe7, 0xed, 0x03, 0x04, 0x79, 0xd9, 0x15, 0xd0,
+ 0x5a, 0x77, 0x11, 0x1d, 0x85, 0xce, 0x20, 0x17, 0x57, 0x4d, 0x0d, 0xf2,
+ 0x63, 0x41, 0xd5, 0xf9,
+};
+static const unsigned char kat4070_entropyinpr2[] = {
+ 0x3a, 0x21, 0xa3, 0xdf, 0x59, 0x42, 0xba, 0x9d, 0x1d, 0xe4, 0xc2, 0x90,
+ 0x8d, 0x6d, 0x50, 0xfd, 0x93, 0x8d, 0x5e, 0x48, 0xcd, 0xd3, 0x94, 0x8b,
+ 0xf1, 0x16, 0x5e, 0x53, 0x5d, 0xcc, 0x1d, 0x49, 0x20, 0x45, 0x31, 0x7a,
+ 0x09, 0x0f, 0x80, 0x62,
+};
+static const unsigned char kat4070_addinpr2[] = {
+ 0x3a, 0x2f, 0xd6, 0x0e, 0x86, 0x87, 0xd0, 0xe4, 0xa8, 0x1f, 0x6f, 0x8f,
+ 0xb0, 0x49, 0xc0, 0x98, 0xe9, 0xcf, 0x37, 0x91, 0xac, 0x9f, 0xd3, 0x24,
+ 0x03, 0x20, 0xd7, 0xf5, 0x2c, 0xa7, 0x74, 0x60, 0xe9, 0x77, 0x39, 0x96,
+ 0xae, 0x95, 0xe0, 0xd8,
+};
+static const unsigned char kat4070_retbits[] = {
+ 0x9c, 0x6c, 0x44, 0x4d, 0x70, 0x65, 0x8d, 0xc1, 0x8a, 0xee, 0xf9, 0x5c,
+ 0x67, 0xcc, 0x45, 0x77, 0xeb, 0x18, 0x8c, 0xe8, 0x2e, 0x03, 0x6d, 0x00,
+ 0x94, 0x85, 0x86, 0x39, 0x38, 0x1b, 0x54, 0x98, 0x4b, 0xcf, 0x03, 0x0f,
+ 0x60, 0xc1, 0x4d, 0xaa, 0xc6, 0x51, 0xf6, 0xaa, 0x3d, 0x37, 0xdf, 0x64,
+ 0xee, 0xeb, 0x1d, 0xb2, 0x6d, 0x00, 0x3d, 0x79, 0x4f, 0x3a, 0xf7, 0x97,
+ 0xeb, 0x38, 0xae, 0x80,
+};
+static const struct drbg_kat_pr_true kat4070_t = {
+ 4, kat4070_entropyin, kat4070_nonce, kat4070_persstr,
+ kat4070_entropyinpr1, kat4070_addinpr1, kat4070_entropyinpr2,
+ kat4070_addinpr2, kat4070_retbits
+};
+static const struct drbg_kat kat4070 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4070_t
+};
+
+static const unsigned char kat4071_entropyin[] = {
+ 0x00, 0xd9, 0x28, 0x23, 0x23, 0x97, 0x81, 0x7d, 0xa2, 0xf5, 0xe9, 0x64,
+ 0xb4, 0x3c, 0x3f, 0xa8, 0x67, 0x53, 0x0f, 0x0f, 0x49, 0xe7, 0x14, 0x4c,
+ 0x17, 0xdf, 0xb7, 0x42, 0x51, 0x29, 0x3e, 0x26, 0xbf, 0xf1, 0x33, 0x52,
+ 0xf3, 0x79, 0x72, 0x90,
+};
+static const unsigned char kat4071_nonce[] = {0};
+static const unsigned char kat4071_persstr[] = {
+ 0xcb, 0xca, 0x17, 0x54, 0x5e, 0xc1, 0x50, 0x09, 0xc4, 0x06, 0x49, 0x76,
+ 0xeb, 0xf1, 0x5f, 0x0d, 0x8e, 0x6b, 0x3e, 0x30, 0x31, 0xec, 0xa0, 0x99,
+ 0xee, 0x19, 0xc8, 0x68, 0x52, 0xe1, 0x43, 0xc9, 0x5c, 0xe0, 0x76, 0x68,
+ 0x6a, 0x25, 0x8e, 0x52,
+};
+static const unsigned char kat4071_entropyinpr1[] = {
+ 0x39, 0xe5, 0xb2, 0xd9, 0xc1, 0x5e, 0x84, 0xae, 0x8d, 0xa0, 0xf4, 0x4a,
+ 0xd2, 0x70, 0xa2, 0x99, 0x50, 0x1f, 0xe9, 0xb3, 0xcb, 0x85, 0x37, 0xcd,
+ 0x43, 0x33, 0x9f, 0x09, 0x4c, 0x21, 0x3c, 0x95, 0xa8, 0x49, 0x09, 0xda,
+ 0xa2, 0x48, 0xcc, 0xe0,
+};
+static const unsigned char kat4071_addinpr1[] = {
+ 0x1c, 0x6b, 0x3f, 0x44, 0xab, 0xeb, 0x02, 0xe1, 0x5a, 0x3f, 0x70, 0xb4,
+ 0xf9, 0x17, 0x07, 0x1c, 0x18, 0x08, 0xee, 0xc0, 0x68, 0x71, 0x30, 0xba,
+ 0x33, 0xb5, 0xc8, 0x3b, 0xdd, 0xb2, 0x54, 0x92, 0x45, 0x12, 0x78, 0x92,
+ 0xa2, 0x48, 0xcb, 0x5d,
+};
+static const unsigned char kat4071_entropyinpr2[] = {
+ 0x96, 0x6d, 0x2e, 0x8b, 0x2b, 0x60, 0x25, 0x5c, 0x26, 0x09, 0x09, 0x14,
+ 0xb7, 0xa0, 0x1c, 0x09, 0x63, 0x37, 0x43, 0xf9, 0x05, 0x57, 0xe0, 0xc0,
+ 0x65, 0x2a, 0xd7, 0x56, 0xd3, 0x72, 0x4c, 0xad, 0xfc, 0x21, 0xa4, 0xb2,
+ 0xc0, 0x14, 0xe7, 0xb7,
+};
+static const unsigned char kat4071_addinpr2[] = {
+ 0x02, 0x09, 0x94, 0xf5, 0xd4, 0xad, 0x07, 0x73, 0x0b, 0xa1, 0x1d, 0x64,
+ 0xa5, 0x10, 0xe8, 0x3d, 0x45, 0x59, 0x43, 0x48, 0x9e, 0x20, 0x73, 0xeb,
+ 0xef, 0xaf, 0xf8, 0x74, 0x64, 0xd3, 0x6c, 0xb4, 0xbf, 0xd3, 0x5f, 0x15,
+ 0x7b, 0x31, 0xf3, 0x58,
+};
+static const unsigned char kat4071_retbits[] = {
+ 0xe8, 0x49, 0xbb, 0x1e, 0x69, 0xc4, 0xa0, 0x3c, 0x0f, 0x08, 0xa0, 0x02,
+ 0xf1, 0x67, 0xf5, 0xb6, 0xe4, 0xa8, 0x8a, 0xf7, 0x40, 0xe1, 0x22, 0x43,
+ 0xd1, 0xdf, 0x1a, 0x84, 0xc9, 0x51, 0x6e, 0x4d, 0x15, 0xb2, 0xc0, 0x7f,
+ 0x50, 0xad, 0xa0, 0x8b, 0xba, 0x4e, 0xa3, 0x10, 0x15, 0x59, 0xaf, 0x6a,
+ 0x13, 0xbb, 0x9e, 0x70, 0xf7, 0x9d, 0x85, 0x2f, 0x78, 0x8c, 0x99, 0x4b,
+ 0xcc, 0x8c, 0x15, 0x4e,
+};
+static const struct drbg_kat_pr_true kat4071_t = {
+ 5, kat4071_entropyin, kat4071_nonce, kat4071_persstr,
+ kat4071_entropyinpr1, kat4071_addinpr1, kat4071_entropyinpr2,
+ kat4071_addinpr2, kat4071_retbits
+};
+static const struct drbg_kat kat4071 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4071_t
+};
+
+static const unsigned char kat4072_entropyin[] = {
+ 0x13, 0xf3, 0x7a, 0x88, 0x31, 0xb5, 0x5d, 0x35, 0x36, 0x8b, 0x0a, 0x76,
+ 0x9a, 0xce, 0xf9, 0x4f, 0x27, 0x4c, 0xd1, 0xbc, 0x07, 0xba, 0xde, 0x74,
+ 0x8d, 0xeb, 0xe2, 0xc2, 0xa3, 0x82, 0x2e, 0x76, 0x00, 0x51, 0x08, 0x71,
+ 0x4e, 0x97, 0x60, 0x4a,
+};
+static const unsigned char kat4072_nonce[] = {0};
+static const unsigned char kat4072_persstr[] = {
+ 0xe2, 0x7e, 0x30, 0xdc, 0xbd, 0x56, 0xbf, 0xf1, 0x7a, 0xbf, 0x07, 0xe5,
+ 0xd5, 0x52, 0x8f, 0x62, 0x02, 0x32, 0xca, 0x19, 0x47, 0xe4, 0xe8, 0xf6,
+ 0x14, 0x8e, 0x68, 0xb7, 0x3f, 0x16, 0x00, 0xf7, 0x03, 0x87, 0x89, 0x49,
+ 0x2e, 0xdc, 0xaa, 0xb5,
+};
+static const unsigned char kat4072_entropyinpr1[] = {
+ 0x8f, 0x78, 0x6d, 0x4c, 0xdf, 0x67, 0x94, 0x80, 0xea, 0x02, 0x7b, 0xe4,
+ 0xe7, 0x92, 0x20, 0x16, 0x97, 0xd2, 0x0f, 0x9f, 0xb6, 0x51, 0x08, 0xf5,
+ 0x07, 0x34, 0xf6, 0x43, 0x92, 0xf5, 0x3e, 0xd5, 0x3a, 0x05, 0x3e, 0xf7,
+ 0x9a, 0x99, 0x7b, 0x76,
+};
+static const unsigned char kat4072_addinpr1[] = {
+ 0xd8, 0xcf, 0x78, 0x1b, 0x9b, 0xe6, 0x85, 0x55, 0x36, 0xef, 0x0c, 0x0e,
+ 0xfd, 0xca, 0x56, 0xff, 0x67, 0x20, 0x27, 0xb7, 0x8b, 0x12, 0xd0, 0x10,
+ 0x96, 0x33, 0xd5, 0xe1, 0x29, 0x69, 0xac, 0x29, 0x67, 0x81, 0x08, 0x83,
+ 0x5a, 0x86, 0x65, 0x7c,
+};
+static const unsigned char kat4072_entropyinpr2[] = {
+ 0x67, 0x3f, 0xc6, 0x84, 0x5d, 0xda, 0x34, 0xc8, 0x2c, 0xa2, 0xb2, 0x64,
+ 0x91, 0xe8, 0x9f, 0xd8, 0xd1, 0x8e, 0xaf, 0x79, 0x05, 0x7d, 0x15, 0x11,
+ 0xb1, 0x89, 0xae, 0x87, 0x4e, 0x46, 0x61, 0x0d, 0x48, 0xf8, 0x23, 0x7c,
+ 0xf1, 0x11, 0xe1, 0x17,
+};
+static const unsigned char kat4072_addinpr2[] = {
+ 0x54, 0x1e, 0x45, 0x96, 0x65, 0x65, 0xe9, 0x72, 0x6a, 0xa4, 0x39, 0xd4,
+ 0xe6, 0xe5, 0xeb, 0xf6, 0xc4, 0x41, 0xf7, 0xac, 0xf0, 0x86, 0x2d, 0x92,
+ 0xfd, 0x54, 0x3f, 0x3d, 0x9e, 0xda, 0xfa, 0x42, 0x89, 0x07, 0x40, 0xcd,
+ 0xc1, 0x32, 0xe3, 0x19,
+};
+static const unsigned char kat4072_retbits[] = {
+ 0x56, 0x78, 0x77, 0xc2, 0xb3, 0x2d, 0x86, 0xde, 0xe0, 0x82, 0xee, 0xbb,
+ 0xcb, 0xc6, 0x44, 0xa5, 0xe7, 0xd4, 0x1f, 0x40, 0x14, 0xec, 0xc7, 0xab,
+ 0x8d, 0x6e, 0xeb, 0xe4, 0xb0, 0x51, 0xa1, 0xeb, 0x6f, 0x36, 0x77, 0x13,
+ 0xfb, 0xae, 0x21, 0x5e, 0x69, 0x57, 0x0b, 0xdd, 0xc2, 0x21, 0xa9, 0x68,
+ 0x33, 0xe2, 0xa0, 0x8f, 0x9c, 0x15, 0x0f, 0x47, 0x62, 0x2f, 0xe3, 0x79,
+ 0x0d, 0x3e, 0xec, 0xf4,
+};
+static const struct drbg_kat_pr_true kat4072_t = {
+ 6, kat4072_entropyin, kat4072_nonce, kat4072_persstr,
+ kat4072_entropyinpr1, kat4072_addinpr1, kat4072_entropyinpr2,
+ kat4072_addinpr2, kat4072_retbits
+};
+static const struct drbg_kat kat4072 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4072_t
+};
+
+static const unsigned char kat4073_entropyin[] = {
+ 0x9a, 0x9f, 0xc7, 0xfe, 0x4d, 0xc3, 0xf3, 0x49, 0xb0, 0x61, 0xfd, 0x1a,
+ 0xe4, 0x27, 0x36, 0x04, 0xb8, 0x48, 0xa0, 0xe6, 0x92, 0x45, 0xf5, 0x38,
+ 0x48, 0xba, 0x91, 0x1f, 0x34, 0x82, 0x87, 0x57, 0xb3, 0x53, 0x46, 0x52,
+ 0x24, 0x29, 0x8b, 0x5d,
+};
+static const unsigned char kat4073_nonce[] = {0};
+static const unsigned char kat4073_persstr[] = {
+ 0x0f, 0xce, 0xae, 0x3c, 0xb4, 0x19, 0x28, 0x4b, 0x97, 0x21, 0x18, 0x10,
+ 0xad, 0x80, 0xe5, 0x22, 0x42, 0xc3, 0x79, 0xf4, 0x57, 0xf3, 0x65, 0xe3,
+ 0x92, 0x59, 0xc2, 0x8d, 0xa8, 0xaa, 0x2c, 0x5e, 0x63, 0x5f, 0x2b, 0x32,
+ 0xce, 0x15, 0xb3, 0x8b,
+};
+static const unsigned char kat4073_entropyinpr1[] = {
+ 0xcb, 0xdd, 0xdc, 0x9d, 0xc3, 0x53, 0x13, 0x6f, 0xdb, 0x5d, 0x04, 0x4b,
+ 0xd1, 0x79, 0x0d, 0xca, 0x6b, 0x00, 0x03, 0x96, 0x57, 0x03, 0x1c, 0x75,
+ 0x9f, 0xc4, 0x08, 0xef, 0xf9, 0xcd, 0x9b, 0xfa, 0xe3, 0x6f, 0x3d, 0x6c,
+ 0xe6, 0x40, 0xc9, 0x78,
+};
+static const unsigned char kat4073_addinpr1[] = {
+ 0x69, 0x4d, 0x13, 0xd1, 0x08, 0x43, 0xdf, 0xc9, 0xe7, 0x9f, 0x26, 0xbe,
+ 0x52, 0xdd, 0x6f, 0xe1, 0x44, 0xb5, 0x26, 0x0d, 0x2b, 0xef, 0x6b, 0x12,
+ 0x06, 0xac, 0xfe, 0x6a, 0xf2, 0xa4, 0x7e, 0x13, 0x45, 0x4d, 0x2b, 0xed,
+ 0x86, 0x47, 0x21, 0x93,
+};
+static const unsigned char kat4073_entropyinpr2[] = {
+ 0x26, 0x31, 0x7f, 0x9a, 0x21, 0x4b, 0x98, 0xb0, 0xce, 0xc1, 0x20, 0x36,
+ 0xa0, 0xfd, 0x7b, 0x4e, 0x3b, 0x53, 0x1d, 0x9a, 0x68, 0x69, 0x38, 0x75,
+ 0x25, 0x22, 0x0a, 0x1f, 0xcc, 0x6f, 0x13, 0x11, 0x96, 0x03, 0x9f, 0x89,
+ 0x5b, 0xd5, 0xa1, 0x93,
+};
+static const unsigned char kat4073_addinpr2[] = {
+ 0xe8, 0x1f, 0x7d, 0xb3, 0x4a, 0xff, 0xdf, 0x7e, 0xd5, 0x24, 0x86, 0x56,
+ 0x48, 0x78, 0xf0, 0x7f, 0xfc, 0x7a, 0x82, 0x69, 0x1c, 0x58, 0x82, 0xbf,
+ 0x60, 0x0d, 0xc8, 0xd6, 0x0c, 0xa5, 0xde, 0x8b, 0x35, 0xfb, 0x24, 0xe0,
+ 0x3b, 0xf1, 0xa4, 0xf6,
+};
+static const unsigned char kat4073_retbits[] = {
+ 0x9f, 0xa5, 0x8c, 0x81, 0x25, 0x09, 0x68, 0xee, 0x7f, 0x9f, 0xc2, 0x46,
+ 0x8b, 0x95, 0x93, 0xc5, 0xba, 0xbe, 0xa0, 0xcf, 0x3d, 0x53, 0x78, 0x24,
+ 0xce, 0x35, 0x99, 0xf0, 0x38, 0x4a, 0xb8, 0xa0, 0x84, 0xe5, 0x90, 0x53,
+ 0xf7, 0xb7, 0x04, 0xa2, 0xa2, 0x29, 0xdf, 0x76, 0x2a, 0xf8, 0x60, 0x3d,
+ 0x71, 0x1c, 0x88, 0x45, 0x3d, 0x49, 0x39, 0xfa, 0x59, 0x3b, 0xa0, 0x2a,
+ 0xb1, 0xd1, 0xc6, 0xb5,
+};
+static const struct drbg_kat_pr_true kat4073_t = {
+ 7, kat4073_entropyin, kat4073_nonce, kat4073_persstr,
+ kat4073_entropyinpr1, kat4073_addinpr1, kat4073_entropyinpr2,
+ kat4073_addinpr2, kat4073_retbits
+};
+static const struct drbg_kat kat4073 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4073_t
+};
+
+static const unsigned char kat4074_entropyin[] = {
+ 0xad, 0xa9, 0xe3, 0xda, 0x09, 0xdc, 0x61, 0x62, 0x02, 0xb7, 0x22, 0x06,
+ 0xb0, 0x01, 0xdf, 0xcc, 0x36, 0x28, 0x31, 0x34, 0xb9, 0xa8, 0xd0, 0xc4,
+ 0x6f, 0xdd, 0xd8, 0xec, 0xa6, 0xb0, 0x3b, 0x89, 0x1c, 0x17, 0x88, 0x8c,
+ 0x8c, 0xa6, 0xa8, 0xf6,
+};
+static const unsigned char kat4074_nonce[] = {0};
+static const unsigned char kat4074_persstr[] = {
+ 0xbc, 0x4e, 0xd9, 0xe6, 0xfd, 0xba, 0xae, 0x7b, 0xd3, 0x00, 0x08, 0x34,
+ 0x1f, 0x33, 0x86, 0x05, 0x59, 0x6c, 0x61, 0xb5, 0x75, 0x35, 0x24, 0xd1,
+ 0x24, 0xa9, 0x93, 0xef, 0x43, 0x9a, 0xd6, 0xc0, 0x25, 0x22, 0x61, 0x77,
+ 0x8f, 0x06, 0x6f, 0xec,
+};
+static const unsigned char kat4074_entropyinpr1[] = {
+ 0x39, 0x2a, 0x55, 0xc8, 0x9f, 0x72, 0x13, 0x71, 0xfc, 0xfa, 0xc9, 0x37,
+ 0x89, 0x06, 0xab, 0x3b, 0x8e, 0x1f, 0xb6, 0x03, 0x81, 0x5f, 0xc9, 0x7a,
+ 0x05, 0xef, 0xfd, 0x00, 0xcb, 0xa9, 0xae, 0x30, 0x5c, 0x5e, 0x41, 0x95,
+ 0xaa, 0xe4, 0xbd, 0x7b,
+};
+static const unsigned char kat4074_addinpr1[] = {
+ 0xdc, 0x99, 0xbc, 0x31, 0xa6, 0x91, 0x3d, 0x16, 0x83, 0x27, 0x0a, 0xd8,
+ 0x00, 0x40, 0xbd, 0xc4, 0x2f, 0xaf, 0xc9, 0x12, 0x1a, 0xf8, 0x7d, 0xad,
+ 0xb7, 0x9f, 0x3e, 0x01, 0xca, 0xfa, 0x99, 0x9a, 0xe8, 0x83, 0x59, 0xb2,
+ 0x98, 0x22, 0x4b, 0x0e,
+};
+static const unsigned char kat4074_entropyinpr2[] = {
+ 0x1f, 0x0f, 0x90, 0xaf, 0x72, 0x77, 0xca, 0x5f, 0x28, 0x58, 0x61, 0xe3,
+ 0x4f, 0x8d, 0x0e, 0xd6, 0x18, 0x80, 0x97, 0x9e, 0xaf, 0xc2, 0x90, 0xbc,
+ 0xb0, 0xdc, 0xd1, 0x04, 0x90, 0x89, 0x61, 0xa2, 0x1a, 0x9a, 0x7a, 0xba,
+ 0x23, 0xfc, 0x68, 0x4c,
+};
+static const unsigned char kat4074_addinpr2[] = {
+ 0xe0, 0x82, 0x8f, 0x36, 0x91, 0x46, 0x2a, 0xc1, 0x5b, 0x5f, 0xbd, 0x4f,
+ 0x8d, 0x8b, 0xc7, 0x26, 0xfc, 0x66, 0xd3, 0xa6, 0xa1, 0x4f, 0x5e, 0x11,
+ 0x89, 0xb9, 0x29, 0x39, 0x8f, 0x83, 0x54, 0xdf, 0x02, 0xd2, 0x85, 0xb2,
+ 0x12, 0x8c, 0xf9, 0x9c,
+};
+static const unsigned char kat4074_retbits[] = {
+ 0x8c, 0x65, 0x39, 0x7b, 0xe8, 0xcb, 0xbe, 0xe6, 0xcb, 0x0f, 0x71, 0xfd,
+ 0x84, 0xb9, 0xf4, 0x41, 0x8b, 0x51, 0x5d, 0x62, 0xd1, 0x4d, 0x6c, 0x07,
+ 0xc8, 0x7b, 0xdf, 0x8c, 0xe9, 0x28, 0x7c, 0x7d, 0xb1, 0x05, 0x29, 0xb0,
+ 0x53, 0x08, 0xdd, 0x36, 0x69, 0x9f, 0x2f, 0xd0, 0x62, 0x47, 0xda, 0x53,
+ 0x99, 0xbe, 0x27, 0xb3, 0x39, 0xf5, 0xb9, 0x83, 0x6e, 0xeb, 0x00, 0x61,
+ 0x4c, 0x81, 0x47, 0xe7,
+};
+static const struct drbg_kat_pr_true kat4074_t = {
+ 8, kat4074_entropyin, kat4074_nonce, kat4074_persstr,
+ kat4074_entropyinpr1, kat4074_addinpr1, kat4074_entropyinpr2,
+ kat4074_addinpr2, kat4074_retbits
+};
+static const struct drbg_kat kat4074 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4074_t
+};
+
+static const unsigned char kat4075_entropyin[] = {
+ 0xa8, 0x3d, 0xcf, 0x16, 0xd5, 0xe2, 0xbd, 0xd9, 0x6d, 0x37, 0x7e, 0xb3,
+ 0x64, 0x7d, 0x79, 0xa7, 0xce, 0xc0, 0x14, 0x7c, 0xc9, 0x02, 0xc8, 0x2c,
+ 0xb9, 0x10, 0xce, 0x73, 0xae, 0xd2, 0x5e, 0xb0, 0xbb, 0x52, 0xd3, 0x3f,
+ 0xe4, 0x75, 0x65, 0xbe,
+};
+static const unsigned char kat4075_nonce[] = {0};
+static const unsigned char kat4075_persstr[] = {
+ 0xe5, 0x0c, 0xf1, 0x0f, 0x58, 0xb9, 0x5e, 0xed, 0xec, 0x04, 0xec, 0xf5,
+ 0x7b, 0xa7, 0x5b, 0x45, 0x62, 0x47, 0x26, 0xdf, 0xce, 0xf1, 0x8b, 0xbc,
+ 0xbd, 0x34, 0x27, 0xa3, 0x5d, 0xc5, 0x44, 0xc5, 0xfa, 0x56, 0x8a, 0xf4,
+ 0x3c, 0x0a, 0x7a, 0x07,
+};
+static const unsigned char kat4075_entropyinpr1[] = {
+ 0x84, 0x03, 0xb8, 0x09, 0x68, 0x02, 0xb3, 0x21, 0xa2, 0xe7, 0x3c, 0x40,
+ 0x49, 0x54, 0x51, 0x76, 0x99, 0xbf, 0xbc, 0xa7, 0x90, 0x7d, 0x8f, 0x6f,
+ 0x0a, 0x81, 0x34, 0x83, 0xc3, 0xcf, 0x60, 0x1a, 0x8b, 0x3d, 0x2a, 0x80,
+ 0xb9, 0x4b, 0xea, 0x85,
+};
+static const unsigned char kat4075_addinpr1[] = {
+ 0x34, 0x15, 0x69, 0x9a, 0x33, 0xae, 0x55, 0x8f, 0x86, 0x5c, 0x7b, 0x0a,
+ 0x50, 0xdb, 0x7e, 0x07, 0x68, 0xdf, 0x80, 0x36, 0xbb, 0x78, 0x68, 0x95,
+ 0xe7, 0x48, 0xfa, 0xa1, 0xcc, 0xc6, 0x45, 0x87, 0x34, 0x48, 0x1e, 0x20,
+ 0x55, 0xd5, 0x73, 0xc1,
+};
+static const unsigned char kat4075_entropyinpr2[] = {
+ 0x85, 0xc2, 0x60, 0x55, 0xf6, 0x16, 0x15, 0xf8, 0x28, 0x53, 0xc9, 0x26,
+ 0x14, 0xa4, 0x46, 0x5c, 0x8f, 0xe3, 0x60, 0x1e, 0x7b, 0xee, 0xa3, 0xd0,
+ 0x18, 0xf9, 0xd9, 0xaa, 0x03, 0x01, 0x4b, 0x96, 0x42, 0xff, 0x86, 0x35,
+ 0xdf, 0x3f, 0x8e, 0xc4,
+};
+static const unsigned char kat4075_addinpr2[] = {
+ 0xa8, 0xd8, 0xff, 0x08, 0x17, 0xc1, 0xe8, 0x2f, 0xfe, 0x8a, 0x59, 0xb6,
+ 0xb6, 0xe7, 0x8c, 0xeb, 0xb1, 0x96, 0xf6, 0x6c, 0x6a, 0x3e, 0x7b, 0xf8,
+ 0x9a, 0x9b, 0xf6, 0xaa, 0xdb, 0x77, 0x73, 0xa7, 0x84, 0x7d, 0x1d, 0x0c,
+ 0xc1, 0x61, 0xc0, 0xa4,
+};
+static const unsigned char kat4075_retbits[] = {
+ 0xf7, 0x44, 0x46, 0x78, 0xb7, 0x89, 0x59, 0xd2, 0x1b, 0x7c, 0xa9, 0xf0,
+ 0xc3, 0x12, 0x8a, 0xfa, 0x16, 0xee, 0x53, 0x24, 0xd6, 0x0e, 0xa4, 0xd7,
+ 0x60, 0x75, 0xdd, 0x3a, 0x53, 0xd2, 0x69, 0x11, 0x47, 0x65, 0x0c, 0x51,
+ 0xdd, 0xda, 0x5f, 0x28, 0xb6, 0x33, 0x57, 0x2c, 0xfa, 0x92, 0xeb, 0x1a,
+ 0xea, 0x00, 0x1e, 0xc5, 0xa1, 0xf5, 0x74, 0x47, 0xb5, 0x06, 0x30, 0xa5,
+ 0xe5, 0x5f, 0xba, 0x27,
+};
+static const struct drbg_kat_pr_true kat4075_t = {
+ 9, kat4075_entropyin, kat4075_nonce, kat4075_persstr,
+ kat4075_entropyinpr1, kat4075_addinpr1, kat4075_entropyinpr2,
+ kat4075_addinpr2, kat4075_retbits
+};
+static const struct drbg_kat kat4075 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4075_t
+};
+
+static const unsigned char kat4076_entropyin[] = {
+ 0x60, 0x5a, 0xec, 0x5b, 0x81, 0x73, 0x68, 0xac, 0xc9, 0x13, 0x95, 0x4e,
+ 0x10, 0x64, 0xcf, 0x6e, 0x30, 0x39, 0x7d, 0x8e, 0xc4, 0x23, 0x87, 0xbf,
+ 0x5a, 0x15, 0x52, 0xab, 0x93, 0x8b, 0x7f, 0xf2, 0x14, 0x83, 0x0b, 0xcc,
+ 0xbb, 0xe6, 0xde, 0xbe,
+};
+static const unsigned char kat4076_nonce[] = {0};
+static const unsigned char kat4076_persstr[] = {
+ 0xbe, 0x58, 0x13, 0xb8, 0xd6, 0x16, 0x3a, 0x72, 0xc2, 0x7a, 0x19, 0x43,
+ 0x18, 0xb1, 0x50, 0x41, 0x12, 0x65, 0x1b, 0x22, 0x74, 0x92, 0xc4, 0x3d,
+ 0xe6, 0x64, 0xf5, 0x5f, 0x7b, 0x4e, 0x9b, 0x98, 0x19, 0xf4, 0xc9, 0x39,
+ 0xe7, 0xfe, 0xc6, 0x05,
+};
+static const unsigned char kat4076_entropyinpr1[] = {
+ 0x2c, 0xa2, 0x24, 0x7e, 0xbf, 0x00, 0x36, 0x2e, 0xf0, 0xfb, 0xda, 0x4c,
+ 0xde, 0x84, 0x06, 0x75, 0xde, 0xf3, 0x8b, 0x87, 0xe0, 0x3d, 0x10, 0x7d,
+ 0xa6, 0x46, 0x3f, 0x5d, 0x32, 0x83, 0x8c, 0xb6, 0x75, 0xf9, 0xc4, 0xdc,
+ 0x45, 0x7d, 0x8e, 0x22,
+};
+static const unsigned char kat4076_addinpr1[] = {
+ 0x0f, 0x2b, 0x2f, 0xe8, 0x84, 0x08, 0x40, 0x7b, 0xa7, 0x07, 0xa0, 0x21,
+ 0x3f, 0xbe, 0xd7, 0xf8, 0xa5, 0xa7, 0x22, 0xa5, 0xe7, 0x4d, 0xe2, 0xcf,
+ 0xb3, 0xd6, 0x3b, 0xf5, 0x8f, 0xbe, 0xd7, 0xb1, 0xec, 0xee, 0xdf, 0x90,
+ 0xb9, 0xd2, 0xab, 0x4a,
+};
+static const unsigned char kat4076_entropyinpr2[] = {
+ 0x68, 0x11, 0xe9, 0x58, 0x4b, 0x3b, 0xd8, 0x7f, 0x74, 0x73, 0x73, 0x3e,
+ 0x3d, 0x4f, 0xb4, 0x90, 0x5c, 0x4a, 0xff, 0xa9, 0x72, 0x2b, 0x21, 0x29,
+ 0x3f, 0x30, 0x55, 0xeb, 0x56, 0x61, 0x3a, 0xab, 0x99, 0x59, 0x07, 0x1c,
+ 0x15, 0x94, 0xf8, 0xe3,
+};
+static const unsigned char kat4076_addinpr2[] = {
+ 0xc6, 0xf7, 0x35, 0xb5, 0x3b, 0x59, 0x24, 0x00, 0x1b, 0x36, 0xf1, 0x1c,
+ 0xe5, 0x5e, 0xa0, 0xbc, 0xac, 0xf7, 0x86, 0xdf, 0x73, 0x91, 0x1f, 0xa5,
+ 0x1b, 0x7c, 0xe1, 0xe6, 0x1d, 0x20, 0x7f, 0x3f, 0xb5, 0x11, 0x28, 0x5a,
+ 0xb0, 0x8d, 0x45, 0xf0,
+};
+static const unsigned char kat4076_retbits[] = {
+ 0xda, 0x90, 0x6d, 0x45, 0x74, 0x1c, 0x66, 0xf7, 0xd1, 0xb9, 0x37, 0xb6,
+ 0x02, 0x31, 0x92, 0xdb, 0x35, 0x28, 0x58, 0x1e, 0xbf, 0x3b, 0xbf, 0x02,
+ 0x08, 0x28, 0x0b, 0xdb, 0x97, 0xe0, 0x1e, 0xf2, 0x62, 0xb7, 0xf2, 0x6d,
+ 0x2c, 0xc5, 0x4c, 0x87, 0x3f, 0x4e, 0x07, 0x92, 0x74, 0x5f, 0x2d, 0xe7,
+ 0xbc, 0xaa, 0x8e, 0x72, 0x1b, 0x85, 0x7b, 0x82, 0xce, 0xf8, 0x98, 0xa4,
+ 0x9d, 0x57, 0x0f, 0x34,
+};
+static const struct drbg_kat_pr_true kat4076_t = {
+ 10, kat4076_entropyin, kat4076_nonce, kat4076_persstr,
+ kat4076_entropyinpr1, kat4076_addinpr1, kat4076_entropyinpr2,
+ kat4076_addinpr2, kat4076_retbits
+};
+static const struct drbg_kat kat4076 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4076_t
+};
+
+static const unsigned char kat4077_entropyin[] = {
+ 0xf6, 0xb1, 0x75, 0x3e, 0xbf, 0x0c, 0x6f, 0x31, 0x08, 0xf1, 0xc5, 0x0c,
+ 0x3d, 0x92, 0x34, 0xdc, 0xd0, 0xab, 0x65, 0xc6, 0x7a, 0x94, 0xb6, 0x20,
+ 0x00, 0x40, 0xa0, 0x95, 0x47, 0xdb, 0xe5, 0x6a, 0x36, 0xdf, 0x30, 0x21,
+ 0x81, 0x37, 0xd1, 0x78,
+};
+static const unsigned char kat4077_nonce[] = {0};
+static const unsigned char kat4077_persstr[] = {
+ 0xff, 0xb0, 0xbf, 0x5a, 0x33, 0x65, 0x3e, 0x1f, 0x57, 0x37, 0xe3, 0x3e,
+ 0x05, 0x7b, 0x77, 0x35, 0xe7, 0xd9, 0x6e, 0x55, 0x48, 0x88, 0xc9, 0x95,
+ 0xdb, 0x80, 0x9e, 0xbd, 0x4b, 0xd9, 0xd6, 0x36, 0x6d, 0x30, 0xbd, 0xc5,
+ 0xdd, 0x27, 0xba, 0x61,
+};
+static const unsigned char kat4077_entropyinpr1[] = {
+ 0x69, 0xdd, 0x3e, 0xdd, 0x04, 0x1e, 0x53, 0xfd, 0xf1, 0x95, 0x4c, 0xec,
+ 0x90, 0xbd, 0x3f, 0xe3, 0xc1, 0xe5, 0xe7, 0x87, 0x85, 0x86, 0x98, 0x95,
+ 0xc7, 0x14, 0x47, 0x5b, 0x79, 0xe9, 0x6e, 0xbe, 0x47, 0x16, 0x8f, 0x58,
+ 0xbc, 0xfd, 0xfd, 0x8a,
+};
+static const unsigned char kat4077_addinpr1[] = {
+ 0x76, 0x9e, 0x3d, 0x97, 0xec, 0xac, 0x94, 0x32, 0x40, 0xe7, 0xb2, 0xc7,
+ 0x3f, 0x95, 0x7e, 0xfd, 0xfd, 0x43, 0xd8, 0x7c, 0xa3, 0xe8, 0x3c, 0xca,
+ 0x93, 0xf9, 0x24, 0x23, 0x8b, 0x25, 0xf4, 0x9e, 0xf5, 0x05, 0x95, 0xae,
+ 0xe9, 0x2f, 0x12, 0x51,
+};
+static const unsigned char kat4077_entropyinpr2[] = {
+ 0xe0, 0xe5, 0xd2, 0x33, 0x04, 0x02, 0x4b, 0x77, 0xb0, 0xb0, 0x9e, 0x06,
+ 0xe9, 0x61, 0x29, 0xda, 0xc8, 0xd0, 0x42, 0xd7, 0x6c, 0x68, 0xa1, 0xc3,
+ 0x5b, 0x19, 0x74, 0xb0, 0x3e, 0xd2, 0x4a, 0x86, 0xe4, 0x03, 0x0f, 0x85,
+ 0xa4, 0x4a, 0x02, 0xa1,
+};
+static const unsigned char kat4077_addinpr2[] = {
+ 0x65, 0x25, 0xce, 0x04, 0xe0, 0x7c, 0xe0, 0xbc, 0x46, 0xe4, 0xbe, 0xa6,
+ 0xa3, 0x59, 0x6e, 0xbc, 0xf5, 0x34, 0x84, 0xe2, 0x18, 0x6d, 0x44, 0x59,
+ 0xd9, 0x20, 0xbb, 0xcd, 0x02, 0x76, 0x17, 0xb4, 0x2a, 0x0d, 0x15, 0xe4,
+ 0x96, 0x74, 0xb1, 0xc3,
+};
+static const unsigned char kat4077_retbits[] = {
+ 0x00, 0x73, 0xa5, 0xcb, 0x00, 0xdd, 0x91, 0x2c, 0x25, 0x1a, 0x92, 0xcd,
+ 0x22, 0x5e, 0x29, 0xcf, 0x43, 0xaa, 0xb6, 0x90, 0x3a, 0xa9, 0xb7, 0x35,
+ 0x1f, 0xc6, 0x04, 0x7e, 0x22, 0xba, 0x90, 0x66, 0x53, 0x61, 0x16, 0xcd,
+ 0x84, 0xc7, 0xf0, 0x1b, 0x3f, 0xfd, 0xb7, 0x61, 0x20, 0x33, 0x50, 0x8f,
+ 0xaf, 0xbe, 0x46, 0xf0, 0xe2, 0x11, 0x7e, 0x0d, 0xaa, 0x8c, 0xc2, 0x5a,
+ 0x92, 0x6e, 0x5d, 0x12,
+};
+static const struct drbg_kat_pr_true kat4077_t = {
+ 11, kat4077_entropyin, kat4077_nonce, kat4077_persstr,
+ kat4077_entropyinpr1, kat4077_addinpr1, kat4077_entropyinpr2,
+ kat4077_addinpr2, kat4077_retbits
+};
+static const struct drbg_kat kat4077 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4077_t
+};
+
+static const unsigned char kat4078_entropyin[] = {
+ 0x8e, 0xb1, 0x5b, 0xeb, 0xb1, 0x6f, 0x8b, 0xea, 0x5b, 0x1c, 0xdf, 0xce,
+ 0x91, 0x6e, 0xbf, 0x8d, 0x77, 0xa1, 0x3e, 0xd6, 0x10, 0xaa, 0x35, 0x71,
+ 0x50, 0x25, 0xeb, 0x06, 0xa8, 0x6b, 0xf6, 0xbf, 0x84, 0x57, 0xdb, 0x8b,
+ 0xd1, 0xf4, 0x49, 0x9f,
+};
+static const unsigned char kat4078_nonce[] = {0};
+static const unsigned char kat4078_persstr[] = {
+ 0x91, 0x19, 0x2a, 0x28, 0x38, 0x96, 0x7a, 0x29, 0x37, 0xf9, 0xc0, 0x38,
+ 0xaf, 0xa2, 0xb8, 0x4c, 0x91, 0x53, 0x8a, 0xad, 0x1c, 0x68, 0x45, 0x84,
+ 0x4d, 0x66, 0x56, 0x87, 0xa2, 0x7d, 0x6c, 0x5f, 0xe9, 0xa6, 0xdf, 0x1e,
+ 0x4e, 0xeb, 0x15, 0xec,
+};
+static const unsigned char kat4078_entropyinpr1[] = {
+ 0x92, 0x53, 0xf0, 0x67, 0x07, 0xbe, 0x0e, 0x84, 0xa4, 0x23, 0xdb, 0x4d,
+ 0x61, 0x6e, 0x0d, 0x39, 0xbc, 0x43, 0x28, 0x2e, 0x00, 0xbe, 0x8f, 0xf1,
+ 0x17, 0xc0, 0x15, 0x37, 0x03, 0x46, 0x05, 0xb3, 0x92, 0x0a, 0x3a, 0xd7,
+ 0x54, 0x50, 0x6a, 0xf2,
+};
+static const unsigned char kat4078_addinpr1[] = {
+ 0x07, 0xef, 0xf7, 0x03, 0x60, 0x71, 0x03, 0x5c, 0x37, 0x9b, 0xd4, 0x93,
+ 0xeb, 0xe5, 0xfa, 0xb9, 0x51, 0x60, 0x0d, 0x7f, 0x1d, 0xad, 0xae, 0x40,
+ 0x7f, 0xde, 0x79, 0x4f, 0xd4, 0x79, 0xab, 0x23, 0xd2, 0x46, 0xf1, 0xe6,
+ 0x3a, 0xce, 0x10, 0x4a,
+};
+static const unsigned char kat4078_entropyinpr2[] = {
+ 0x00, 0x4b, 0xa6, 0x3d, 0xe3, 0x23, 0x8a, 0xfd, 0xf4, 0x86, 0x91, 0x5a,
+ 0x60, 0x7d, 0x07, 0xc5, 0xdd, 0xef, 0x12, 0x1c, 0x16, 0xa8, 0x64, 0x02,
+ 0x9e, 0xc6, 0x35, 0x9a, 0x98, 0xfe, 0xa4, 0xf2, 0xca, 0x9e, 0xcf, 0x2c,
+ 0x08, 0x4b, 0xe0, 0x77,
+};
+static const unsigned char kat4078_addinpr2[] = {
+ 0x5a, 0x19, 0x7a, 0x6e, 0xb0, 0x6a, 0x1d, 0xc4, 0xa1, 0xfe, 0xcf, 0xbf,
+ 0x9c, 0x7c, 0x10, 0xe1, 0x79, 0xea, 0xc2, 0x24, 0xea, 0xb0, 0x18, 0x22,
+ 0xba, 0x1d, 0x9d, 0xbf, 0x98, 0x11, 0x14, 0xb2, 0x6c, 0xc0, 0x28, 0xb5,
+ 0x75, 0xf6, 0x07, 0x89,
+};
+static const unsigned char kat4078_retbits[] = {
+ 0x00, 0xd8, 0xe2, 0x51, 0x59, 0xd8, 0xc2, 0x49, 0xef, 0xca, 0x64, 0x6e,
+ 0xf9, 0x75, 0x1c, 0x71, 0xfe, 0x55, 0x70, 0x37, 0x44, 0x5b, 0xdf, 0xf8,
+ 0xed, 0xbf, 0xb4, 0x69, 0x38, 0xac, 0x75, 0xba, 0x55, 0x41, 0x91, 0x80,
+ 0x67, 0x91, 0xad, 0xab, 0xb2, 0x50, 0xed, 0x05, 0xa6, 0xec, 0x83, 0x3f,
+ 0xcb, 0x00, 0x81, 0x97, 0x8a, 0x03, 0x40, 0xac, 0x76, 0x8c, 0xfa, 0x47,
+ 0xfe, 0x64, 0x0b, 0x9e,
+};
+static const struct drbg_kat_pr_true kat4078_t = {
+ 12, kat4078_entropyin, kat4078_nonce, kat4078_persstr,
+ kat4078_entropyinpr1, kat4078_addinpr1, kat4078_entropyinpr2,
+ kat4078_addinpr2, kat4078_retbits
+};
+static const struct drbg_kat kat4078 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4078_t
+};
+
+static const unsigned char kat4079_entropyin[] = {
+ 0x38, 0x46, 0x40, 0xcd, 0xd5, 0x65, 0xee, 0xcd, 0xf0, 0x5c, 0xba, 0xc4,
+ 0x02, 0x1c, 0x93, 0xe9, 0xc5, 0x60, 0x7c, 0x36, 0xc7, 0x61, 0xe3, 0x46,
+ 0x9d, 0x94, 0x64, 0xa9, 0x87, 0x53, 0x37, 0xd3, 0x25, 0x38, 0x9f, 0xa6,
+ 0x67, 0xe7, 0x8e, 0x56,
+};
+static const unsigned char kat4079_nonce[] = {0};
+static const unsigned char kat4079_persstr[] = {
+ 0x3b, 0x18, 0x88, 0x2c, 0x08, 0x7d, 0x04, 0x04, 0x69, 0x0b, 0x7f, 0x15,
+ 0xc4, 0xfa, 0xaf, 0x4c, 0x22, 0x7e, 0x62, 0x11, 0x7b, 0x2e, 0xda, 0x5d,
+ 0xc8, 0x4d, 0xbb, 0xc2, 0x89, 0x68, 0xad, 0x77, 0xb6, 0x93, 0x98, 0xb9,
+ 0x25, 0x67, 0xea, 0x0a,
+};
+static const unsigned char kat4079_entropyinpr1[] = {
+ 0x38, 0x3e, 0x05, 0x72, 0x32, 0x42, 0xe7, 0x2e, 0x65, 0x70, 0x99, 0x6e,
+ 0x84, 0x38, 0xb8, 0xec, 0x2e, 0x2b, 0xde, 0x85, 0xef, 0x9f, 0x2c, 0x46,
+ 0x29, 0xee, 0x81, 0x41, 0x09, 0x2e, 0xbb, 0x4b, 0xee, 0x0b, 0x5d, 0xfb,
+ 0x17, 0x63, 0xc0, 0x85,
+};
+static const unsigned char kat4079_addinpr1[] = {
+ 0xcd, 0x9d, 0x0d, 0xeb, 0x5f, 0x11, 0x69, 0x46, 0x8b, 0x38, 0xce, 0xea,
+ 0x01, 0xa5, 0xef, 0xc9, 0x6f, 0x60, 0xa5, 0xe9, 0x29, 0xbd, 0x97, 0x1e,
+ 0x98, 0x13, 0x1c, 0xeb, 0xa3, 0x78, 0x3d, 0xa6, 0xd8, 0xf2, 0xf2, 0xfe,
+ 0x7a, 0x52, 0xd3, 0xe0,
+};
+static const unsigned char kat4079_entropyinpr2[] = {
+ 0xb6, 0x0d, 0xc8, 0xd9, 0xd0, 0x54, 0x76, 0xad, 0xde, 0xae, 0x80, 0xcc,
+ 0xad, 0x1b, 0x2a, 0xf1, 0x0d, 0x92, 0xbe, 0xd1, 0x5b, 0xd8, 0xe9, 0x92,
+ 0x7a, 0x7f, 0x5b, 0x5d, 0x12, 0x5e, 0x0e, 0x7e, 0x9b, 0x68, 0x78, 0x18,
+ 0x42, 0xe5, 0x07, 0x1f,
+};
+static const unsigned char kat4079_addinpr2[] = {
+ 0x09, 0x14, 0x24, 0x74, 0x9b, 0xb2, 0x11, 0xbe, 0x80, 0xeb, 0x59, 0x3e,
+ 0x43, 0x22, 0xde, 0xd4, 0x64, 0x52, 0x5b, 0x31, 0x96, 0xe7, 0xd7, 0xbe,
+ 0x40, 0xf4, 0x35, 0xe7, 0x37, 0x4e, 0x8f, 0xac, 0x36, 0xf5, 0x7e, 0x1c,
+ 0x4a, 0xc9, 0x0d, 0x66,
+};
+static const unsigned char kat4079_retbits[] = {
+ 0x53, 0x2e, 0x6c, 0x92, 0x19, 0x2b, 0xd5, 0xed, 0x33, 0xfe, 0x8f, 0x7d,
+ 0xa9, 0x70, 0x5f, 0x86, 0xee, 0x8e, 0x0c, 0xd3, 0x90, 0xc4, 0x02, 0x6d,
+ 0x7e, 0x7c, 0x31, 0x46, 0x54, 0xb2, 0xdd, 0x86, 0xa6, 0x83, 0xb5, 0x13,
+ 0xb0, 0x7d, 0x43, 0x4a, 0x28, 0x99, 0x51, 0x38, 0x4b, 0xeb, 0x34, 0xb7,
+ 0xe4, 0x43, 0xc7, 0x98, 0xe9, 0x1c, 0xc6, 0x3c, 0xf2, 0x3d, 0x9f, 0xea,
+ 0xe2, 0xcc, 0xbc, 0x76,
+};
+static const struct drbg_kat_pr_true kat4079_t = {
+ 13, kat4079_entropyin, kat4079_nonce, kat4079_persstr,
+ kat4079_entropyinpr1, kat4079_addinpr1, kat4079_entropyinpr2,
+ kat4079_addinpr2, kat4079_retbits
+};
+static const struct drbg_kat kat4079 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4079_t
+};
+
+static const unsigned char kat4080_entropyin[] = {
+ 0xd9, 0x3c, 0x42, 0x42, 0xea, 0x93, 0x72, 0x28, 0x5a, 0xed, 0x47, 0xba,
+ 0x4b, 0xfb, 0xb4, 0x30, 0xec, 0x4a, 0x4d, 0xa2, 0x3b, 0x62, 0xf7, 0x7b,
+ 0x5a, 0x0c, 0x99, 0xac, 0xc3, 0x38, 0xbf, 0x17, 0xf5, 0x9d, 0xaa, 0x32,
+ 0x11, 0x8f, 0x89, 0x20,
+};
+static const unsigned char kat4080_nonce[] = {0};
+static const unsigned char kat4080_persstr[] = {
+ 0x90, 0x66, 0x00, 0x0c, 0x46, 0x3f, 0x8f, 0x41, 0xde, 0xa0, 0x14, 0x9c,
+ 0x11, 0xd9, 0x77, 0x24, 0x32, 0x77, 0x3f, 0x78, 0xfe, 0x67, 0xaa, 0xa8,
+ 0x64, 0xba, 0xf7, 0xe8, 0xe2, 0x06, 0xe8, 0x0d, 0x01, 0x3a, 0xb9, 0x6e,
+ 0x05, 0x5e, 0xe2, 0xe9,
+};
+static const unsigned char kat4080_entropyinpr1[] = {
+ 0xad, 0xe5, 0x16, 0xa9, 0x45, 0xef, 0xe1, 0x10, 0x1c, 0xf0, 0x98, 0x50,
+ 0x5f, 0x6c, 0x43, 0x65, 0x9e, 0xfc, 0xff, 0x09, 0xb5, 0x01, 0xc5, 0x9c,
+ 0x65, 0x6e, 0x83, 0xa6, 0x2f, 0xc8, 0xa4, 0xd0, 0x77, 0xb3, 0x4d, 0xfa,
+ 0x80, 0xee, 0xe1, 0xe7,
+};
+static const unsigned char kat4080_addinpr1[] = {
+ 0xa3, 0xf3, 0xd5, 0xc2, 0xfc, 0x0e, 0x46, 0x64, 0x5b, 0xc5, 0xc7, 0xd5,
+ 0x34, 0x01, 0x98, 0x3d, 0xa8, 0xc2, 0x9e, 0x6b, 0xf2, 0x05, 0xf6, 0x5b,
+ 0x1a, 0xd9, 0x32, 0x14, 0x62, 0x25, 0x04, 0x1a, 0xfc, 0x89, 0xa9, 0xe6,
+ 0x1c, 0x25, 0x1e, 0x6a,
+};
+static const unsigned char kat4080_entropyinpr2[] = {
+ 0x14, 0x06, 0x36, 0x34, 0x2e, 0x9e, 0xbb, 0x2b, 0xae, 0x8a, 0x87, 0xb5,
+ 0xd8, 0x19, 0x3a, 0x59, 0xb7, 0x5b, 0x12, 0x31, 0x8e, 0x70, 0x94, 0x97,
+ 0x5b, 0xed, 0x5c, 0xe2, 0xd2, 0x3a, 0x58, 0xb4, 0xa0, 0x21, 0x49, 0x6e,
+ 0x82, 0x0a, 0x1b, 0x35,
+};
+static const unsigned char kat4080_addinpr2[] = {
+ 0x3d, 0xc3, 0xef, 0x94, 0x47, 0xff, 0xdd, 0xf6, 0x4c, 0x3c, 0xa0, 0x56,
+ 0x9a, 0xfc, 0xf8, 0xe5, 0xd4, 0x91, 0xa9, 0x57, 0x1b, 0x9a, 0x1f, 0xa2,
+ 0x51, 0xe0, 0x68, 0x4d, 0x3a, 0x5e, 0xb2, 0xdb, 0xde, 0x82, 0xbd, 0xd0,
+ 0xf8, 0xda, 0xbb, 0x8b,
+};
+static const unsigned char kat4080_retbits[] = {
+ 0xb7, 0x2e, 0x48, 0x69, 0x84, 0xd1, 0x27, 0x3f, 0xa7, 0x86, 0x5a, 0x2a,
+ 0x43, 0xa8, 0x30, 0xb6, 0x25, 0xe3, 0x94, 0xcc, 0xcf, 0x16, 0x96, 0x10,
+ 0xad, 0x27, 0x14, 0xb5, 0xb6, 0x4e, 0xf6, 0x47, 0x3f, 0x53, 0xe6, 0x2a,
+ 0xaf, 0xfc, 0x85, 0xbf, 0xa2, 0xb1, 0x55, 0xbf, 0x81, 0x83, 0x0a, 0xbf,
+ 0xc5, 0x28, 0xa8, 0x0c, 0x17, 0xf2, 0xe3, 0x25, 0xbb, 0x7a, 0xc9, 0x19,
+ 0x7e, 0x5a, 0x10, 0x99,
+};
+static const struct drbg_kat_pr_true kat4080_t = {
+ 14, kat4080_entropyin, kat4080_nonce, kat4080_persstr,
+ kat4080_entropyinpr1, kat4080_addinpr1, kat4080_entropyinpr2,
+ kat4080_addinpr2, kat4080_retbits
+};
+static const struct drbg_kat kat4080 = {
+ PR_TRUE, NO_DF, NID_aes_192_ctr, 40, 0, 40, 40, 64, &kat4080_t
+};
+
+static const unsigned char kat4081_entropyin[] = {
+ 0xfa, 0xf3, 0x46, 0xc9, 0xc8, 0xaf, 0xbc, 0x5a, 0xb6, 0xe3, 0x3c, 0xe4,
+ 0x92, 0x24, 0x7f, 0xac, 0x6d, 0xb9, 0xa7, 0xba, 0x42, 0x97, 0x55, 0x7f,
+ 0x58, 0x7a, 0x42, 0x56, 0x3d, 0xdf, 0x56, 0xc9, 0x0e, 0x41, 0xc6, 0xaf,
+ 0xb5, 0x62, 0x33, 0x81, 0x5b, 0x74, 0xe0, 0x91, 0xba, 0xc7, 0xd8, 0xe5,
+};
+static const unsigned char kat4081_nonce[] = {0};
+static const unsigned char kat4081_persstr[] = {0};
+static const unsigned char kat4081_entropyinpr1[] = {
+ 0xdf, 0xc1, 0x11, 0x25, 0x2d, 0x71, 0x46, 0x92, 0x27, 0x13, 0x72, 0x0a,
+ 0xe1, 0xe3, 0x48, 0xa0, 0x7a, 0xe4, 0x03, 0xb5, 0x23, 0x8f, 0xef, 0xb4,
+ 0xe8, 0x59, 0x2f, 0x6f, 0x6c, 0xc4, 0xa6, 0x1c, 0x94, 0x82, 0x8d, 0xb8,
+ 0x4c, 0x6f, 0xae, 0xcd, 0x15, 0x02, 0x26, 0x10, 0x08, 0x01, 0x1f, 0x2c,
+};
+static const unsigned char kat4081_addinpr1[] = {0};
+static const unsigned char kat4081_entropyinpr2[] = {
+ 0x45, 0x28, 0xba, 0xc5, 0xb9, 0x9c, 0x77, 0x23, 0x47, 0xd4, 0x4f, 0x4e,
+ 0xce, 0x79, 0xbc, 0x81, 0x1c, 0xa8, 0xeb, 0xea, 0x94, 0x83, 0xfa, 0x5f,
+ 0x50, 0x40, 0xc0, 0x2f, 0x77, 0x06, 0x9d, 0xad, 0x1a, 0xec, 0x7a, 0xda,
+ 0xa8, 0xa9, 0xa6, 0xa9, 0xdd, 0xab, 0xab, 0x04, 0x5d, 0x32, 0x8a, 0x90,
+};
+static const unsigned char kat4081_addinpr2[] = {0};
+static const unsigned char kat4081_retbits[] = {
+ 0xbc, 0x01, 0x3d, 0xc8, 0x91, 0xdb, 0x12, 0xc3, 0x4a, 0xd1, 0x19, 0x44,
+ 0x80, 0x5b, 0xf1, 0x3d, 0xfd, 0x67, 0xff, 0x2c, 0x23, 0x17, 0x6d, 0x83,
+ 0xf5, 0xb3, 0x96, 0xb6, 0x9e, 0x40, 0x00, 0x42, 0x25, 0x2e, 0x11, 0x81,
+ 0x6c, 0x30, 0x95, 0x42, 0x11, 0x37, 0x18, 0x1a, 0x5d, 0x0e, 0xe3, 0x7c,
+ 0x83, 0xa3, 0x39, 0xc5, 0x8d, 0x08, 0x09, 0x46, 0xca, 0x90, 0xaa, 0x43,
+ 0x7d, 0x50, 0xd9, 0xcf,
+};
+static const struct drbg_kat_pr_true kat4081_t = {
+ 0, kat4081_entropyin, kat4081_nonce, kat4081_persstr,
+ kat4081_entropyinpr1, kat4081_addinpr1, kat4081_entropyinpr2,
+ kat4081_addinpr2, kat4081_retbits
+};
+static const struct drbg_kat kat4081 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4081_t
+};
+
+static const unsigned char kat4082_entropyin[] = {
+ 0xe5, 0xd1, 0x5d, 0x66, 0x1c, 0xc3, 0xa5, 0xa7, 0xfb, 0x15, 0xf9, 0x40,
+ 0x55, 0x44, 0x61, 0xa7, 0xc1, 0xb8, 0x86, 0xa9, 0xc9, 0x39, 0xd6, 0x32,
+ 0xd3, 0x6d, 0x3e, 0x78, 0x5c, 0x71, 0x3e, 0xa2, 0xdf, 0xf9, 0x44, 0x48,
+ 0x5b, 0x9b, 0x35, 0xbd, 0x75, 0x03, 0x24, 0x5b, 0x20, 0x81, 0xf8, 0x2d,
+};
+static const unsigned char kat4082_nonce[] = {0};
+static const unsigned char kat4082_persstr[] = {0};
+static const unsigned char kat4082_entropyinpr1[] = {
+ 0x0b, 0x2c, 0x49, 0xe2, 0x16, 0xef, 0x47, 0xdf, 0x86, 0x25, 0x48, 0x67,
+ 0xb6, 0x19, 0x69, 0xac, 0x63, 0x1c, 0x4b, 0x6a, 0x68, 0xf6, 0x44, 0xcb,
+ 0x2a, 0x6b, 0x89, 0xc7, 0xf6, 0x28, 0x2f, 0xaf, 0x40, 0x3d, 0xcc, 0xd9,
+ 0x17, 0x7b, 0x90, 0xab, 0xa3, 0x25, 0x35, 0xfc, 0xce, 0xa4, 0x88, 0xe9,
+};
+static const unsigned char kat4082_addinpr1[] = {0};
+static const unsigned char kat4082_entropyinpr2[] = {
+ 0xc6, 0xc4, 0x6e, 0x98, 0xfa, 0x4b, 0x87, 0xd5, 0xe3, 0x98, 0xdf, 0x48,
+ 0xaa, 0xda, 0x1a, 0x71, 0x3c, 0x2f, 0x7b, 0xce, 0xb3, 0x66, 0xa1, 0xa7,
+ 0x46, 0xda, 0xff, 0x60, 0x06, 0x18, 0x83, 0x5f, 0x57, 0x47, 0x53, 0x79,
+ 0x63, 0x1d, 0xaa, 0xd4, 0x6e, 0xf0, 0x1c, 0x78, 0xf4, 0xed, 0x21, 0x54,
+};
+static const unsigned char kat4082_addinpr2[] = {0};
+static const unsigned char kat4082_retbits[] = {
+ 0x49, 0x63, 0xa8, 0xa8, 0x44, 0x2d, 0x8d, 0x03, 0xed, 0x86, 0x8f, 0x02,
+ 0x70, 0x21, 0xc6, 0x69, 0xd3, 0xa0, 0x79, 0x80, 0xe5, 0x6f, 0xe5, 0xef,
+ 0x61, 0x00, 0x41, 0x3b, 0x9a, 0x1c, 0x23, 0x07, 0x29, 0x77, 0x32, 0x4f,
+ 0x2d, 0x80, 0xbc, 0x4d, 0x1e, 0x25, 0x95, 0x40, 0x0d, 0x49, 0x01, 0xf2,
+ 0x0e, 0x4b, 0xf1, 0x7f, 0x96, 0x00, 0x55, 0xdc, 0x1f, 0xf3, 0x46, 0xc4,
+ 0x23, 0x80, 0x70, 0x10,
+};
+static const struct drbg_kat_pr_true kat4082_t = {
+ 1, kat4082_entropyin, kat4082_nonce, kat4082_persstr,
+ kat4082_entropyinpr1, kat4082_addinpr1, kat4082_entropyinpr2,
+ kat4082_addinpr2, kat4082_retbits
+};
+static const struct drbg_kat kat4082 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4082_t
+};
+
+static const unsigned char kat4083_entropyin[] = {
+ 0xbf, 0x5e, 0xc4, 0xb9, 0xb6, 0x13, 0xcd, 0x67, 0xb0, 0xa4, 0x43, 0x87,
+ 0xf6, 0x67, 0x13, 0x27, 0x29, 0x4c, 0x22, 0xaa, 0x11, 0x80, 0xd4, 0x3e,
+ 0xab, 0xde, 0xf2, 0xd0, 0xc1, 0xcc, 0xf2, 0x3e, 0xa1, 0x2e, 0x9b, 0xaa,
+ 0xa7, 0x6b, 0x99, 0xe1, 0xea, 0x69, 0xae, 0xe9, 0x4d, 0xfd, 0x54, 0xa5,
+};
+static const unsigned char kat4083_nonce[] = {0};
+static const unsigned char kat4083_persstr[] = {0};
+static const unsigned char kat4083_entropyinpr1[] = {
+ 0xa6, 0x23, 0x2b, 0x35, 0xb4, 0x08, 0x83, 0x16, 0xef, 0x3d, 0xe6, 0x00,
+ 0x2e, 0x14, 0xde, 0x76, 0xdd, 0x4d, 0x36, 0x4b, 0xca, 0xbf, 0x1b, 0x82,
+ 0xb0, 0x69, 0x54, 0x0a, 0x7d, 0x60, 0x02, 0xc5, 0xda, 0x10, 0xd3, 0x55,
+ 0xde, 0x22, 0xb1, 0xdf, 0x30, 0xee, 0x89, 0x88, 0xce, 0xba, 0x46, 0xe0,
+};
+static const unsigned char kat4083_addinpr1[] = {0};
+static const unsigned char kat4083_entropyinpr2[] = {
+ 0xb7, 0x6c, 0x32, 0x6f, 0xd9, 0x48, 0x51, 0x50, 0x4f, 0x93, 0x0f, 0x16,
+ 0x05, 0xde, 0x0b, 0x1a, 0x32, 0xd4, 0xac, 0x74, 0x2f, 0x0d, 0xa4, 0x98,
+ 0xda, 0x00, 0x22, 0x3e, 0x59, 0x82, 0x6a, 0xed, 0x6a, 0x51, 0x0e, 0x98,
+ 0x33, 0x3f, 0xf2, 0xae, 0x1a, 0xe0, 0x39, 0x8b, 0x3f, 0x38, 0xab, 0x4e,
+};
+static const unsigned char kat4083_addinpr2[] = {0};
+static const unsigned char kat4083_retbits[] = {
+ 0xa6, 0xf8, 0x3f, 0x46, 0x76, 0x38, 0x94, 0xd3, 0xd4, 0x9e, 0x28, 0xf1,
+ 0xd4, 0x62, 0x69, 0x9a, 0xd6, 0xa5, 0xf4, 0x01, 0x64, 0xd1, 0xc4, 0x6c,
+ 0xdb, 0x99, 0xfe, 0x12, 0x7d, 0xa7, 0x0b, 0x8a, 0x9c, 0x05, 0x2b, 0x7f,
+ 0x42, 0xb8, 0xea, 0x3c, 0x92, 0xa2, 0x4a, 0x62, 0xfa, 0xd6, 0x93, 0xd0,
+ 0xc5, 0xd8, 0x96, 0xfe, 0xc5, 0xf3, 0xdb, 0xfd, 0xc5, 0x0e, 0x4e, 0x32,
+ 0x41, 0xcf, 0x9b, 0xee,
+};
+static const struct drbg_kat_pr_true kat4083_t = {
+ 2, kat4083_entropyin, kat4083_nonce, kat4083_persstr,
+ kat4083_entropyinpr1, kat4083_addinpr1, kat4083_entropyinpr2,
+ kat4083_addinpr2, kat4083_retbits
+};
+static const struct drbg_kat kat4083 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4083_t
+};
+
+static const unsigned char kat4084_entropyin[] = {
+ 0xf0, 0xb6, 0x1b, 0xd5, 0x37, 0x1e, 0x6a, 0x60, 0xa1, 0x53, 0x9d, 0xc9,
+ 0x72, 0xcc, 0x63, 0x3c, 0x9a, 0x6c, 0x60, 0x68, 0x97, 0x0e, 0x7a, 0xea,
+ 0x4a, 0xf1, 0xac, 0xad, 0x26, 0x5b, 0x24, 0x27, 0xdc, 0xc9, 0xe7, 0x5e,
+ 0x5b, 0xfa, 0x08, 0xad, 0xfd, 0xf5, 0x45, 0x8d, 0xc4, 0x01, 0xed, 0xca,
+};
+static const unsigned char kat4084_nonce[] = {0};
+static const unsigned char kat4084_persstr[] = {0};
+static const unsigned char kat4084_entropyinpr1[] = {
+ 0xa5, 0xd1, 0xae, 0xe0, 0x8e, 0x1b, 0x7a, 0xe5, 0xbc, 0x0a, 0xa3, 0x30,
+ 0x63, 0x56, 0x36, 0x5d, 0x24, 0xc1, 0x05, 0x54, 0x6c, 0x65, 0x1a, 0x9e,
+ 0xbf, 0x2e, 0xb7, 0x9a, 0x6a, 0xc7, 0x2f, 0xc7, 0x94, 0xd9, 0x91, 0xce,
+ 0xbb, 0x83, 0x0c, 0xb4, 0x8f, 0x7c, 0x77, 0x2b, 0x54, 0x55, 0xe0, 0xba,
+};
+static const unsigned char kat4084_addinpr1[] = {0};
+static const unsigned char kat4084_entropyinpr2[] = {
+ 0x26, 0xf6, 0xa4, 0x48, 0x77, 0x16, 0xdc, 0xdd, 0xa8, 0x74, 0x0d, 0xf7,
+ 0x6a, 0x3f, 0x64, 0x89, 0x5e, 0xbc, 0x82, 0x59, 0x98, 0x9b, 0x82, 0x39,
+ 0x76, 0xa0, 0xfb, 0xe0, 0x02, 0xb5, 0xc5, 0x43, 0x14, 0xfc, 0x56, 0x60,
+ 0xde, 0x50, 0xe4, 0x96, 0x92, 0xcd, 0x08, 0xb3, 0x89, 0xcd, 0x08, 0x7f,
+};
+static const unsigned char kat4084_addinpr2[] = {0};
+static const unsigned char kat4084_retbits[] = {
+ 0xcc, 0x83, 0xfa, 0x47, 0xf9, 0xc5, 0x64, 0x3b, 0xb3, 0x61, 0x30, 0x4f,
+ 0x08, 0xcb, 0x0c, 0xa1, 0x88, 0x83, 0x40, 0x0c, 0x52, 0x1d, 0x23, 0xc8,
+ 0x97, 0x74, 0x82, 0xc1, 0xa2, 0x9d, 0xb9, 0x44, 0xa9, 0x36, 0x11, 0xc4,
+ 0x99, 0x6c, 0xa7, 0x96, 0x95, 0x9f, 0x17, 0x0d, 0xa5, 0x6d, 0x92, 0xcf,
+ 0x92, 0x87, 0x55, 0x2c, 0x9d, 0x13, 0x53, 0x94, 0x02, 0x02, 0x4e, 0xc6,
+ 0x10, 0x49, 0x95, 0x1e,
+};
+static const struct drbg_kat_pr_true kat4084_t = {
+ 3, kat4084_entropyin, kat4084_nonce, kat4084_persstr,
+ kat4084_entropyinpr1, kat4084_addinpr1, kat4084_entropyinpr2,
+ kat4084_addinpr2, kat4084_retbits
+};
+static const struct drbg_kat kat4084 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4084_t
+};
+
+static const unsigned char kat4085_entropyin[] = {
+ 0xe0, 0xe9, 0xce, 0x9c, 0x3f, 0x19, 0xdb, 0x89, 0x9f, 0xcd, 0x9f, 0x5c,
+ 0x9b, 0xee, 0x29, 0xfb, 0xca, 0xca, 0xf6, 0xd0, 0x1a, 0x5c, 0xcc, 0x71,
+ 0xf3, 0x93, 0x54, 0x48, 0xfb, 0xf1, 0xbd, 0x4c, 0x99, 0x19, 0x69, 0x2c,
+ 0x94, 0xdc, 0xf8, 0x34, 0xf3, 0x93, 0x2a, 0x33, 0x07, 0x6e, 0x32, 0x16,
+};
+static const unsigned char kat4085_nonce[] = {0};
+static const unsigned char kat4085_persstr[] = {0};
+static const unsigned char kat4085_entropyinpr1[] = {
+ 0x8b, 0x25, 0xf8, 0xd4, 0x9b, 0x04, 0x01, 0xf3, 0xc7, 0x3f, 0x82, 0xfe,
+ 0xbf, 0x2b, 0x6c, 0x95, 0xb2, 0xde, 0x38, 0xed, 0x41, 0xb6, 0xe9, 0x30,
+ 0x2f, 0xb6, 0x74, 0xe1, 0x19, 0x01, 0xfc, 0x98, 0xd4, 0xc8, 0x12, 0x59,
+ 0xb8, 0x5a, 0x17, 0xdb, 0xfe, 0xd5, 0x59, 0x3b, 0x27, 0xd1, 0xff, 0xe1,
+};
+static const unsigned char kat4085_addinpr1[] = {0};
+static const unsigned char kat4085_entropyinpr2[] = {
+ 0xc2, 0xfc, 0xf0, 0x2c, 0x73, 0xaf, 0xd7, 0x1c, 0x39, 0x68, 0x1c, 0x71,
+ 0x11, 0xfb, 0xa1, 0x1d, 0x63, 0x2a, 0x12, 0xe7, 0xa1, 0xb9, 0x40, 0x4b,
+ 0x0b, 0xb5, 0x8d, 0x45, 0x9b, 0x59, 0xfd, 0x9a, 0x5a, 0x15, 0x75, 0xb3,
+ 0x6a, 0x33, 0x53, 0x51, 0x67, 0x71, 0x7f, 0xbb, 0xae, 0x01, 0x5c, 0x71,
+};
+static const unsigned char kat4085_addinpr2[] = {0};
+static const unsigned char kat4085_retbits[] = {
+ 0xe2, 0x88, 0x14, 0x7f, 0x1c, 0xf9, 0xed, 0xf6, 0x72, 0xc9, 0x3f, 0xdd,
+ 0x3b, 0xe2, 0x4c, 0x44, 0x47, 0x02, 0x85, 0x6e, 0xe8, 0xe2, 0x1b, 0x31,
+ 0xa5, 0x1a, 0x08, 0xc9, 0x56, 0xa0, 0x4b, 0xa3, 0xd4, 0x99, 0xa9, 0x78,
+ 0x74, 0x75, 0xff, 0x9b, 0x5b, 0x21, 0xe1, 0x30, 0x7c, 0x4e, 0xfa, 0x67,
+ 0x9f, 0x7a, 0xf8, 0xd3, 0xc6, 0x3d, 0xba, 0xfc, 0xba, 0x87, 0xcc, 0xfc,
+ 0xaa, 0xc0, 0x57, 0xe3,
+};
+static const struct drbg_kat_pr_true kat4085_t = {
+ 4, kat4085_entropyin, kat4085_nonce, kat4085_persstr,
+ kat4085_entropyinpr1, kat4085_addinpr1, kat4085_entropyinpr2,
+ kat4085_addinpr2, kat4085_retbits
+};
+static const struct drbg_kat kat4085 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4085_t
+};
+
+static const unsigned char kat4086_entropyin[] = {
+ 0x05, 0xe8, 0x93, 0xd9, 0xa6, 0x42, 0x7d, 0x39, 0xc7, 0x27, 0xf1, 0x9a,
+ 0xa1, 0x68, 0x53, 0x17, 0xe3, 0x59, 0x95, 0x49, 0x19, 0xbb, 0x02, 0xce,
+ 0x12, 0x9c, 0xa4, 0x9a, 0x99, 0x8b, 0x3e, 0xf1, 0x78, 0x76, 0xd6, 0x88,
+ 0x91, 0xa2, 0x19, 0xab, 0x5e, 0x90, 0xcb, 0xca, 0xf9, 0x06, 0x21, 0x76,
+};
+static const unsigned char kat4086_nonce[] = {0};
+static const unsigned char kat4086_persstr[] = {0};
+static const unsigned char kat4086_entropyinpr1[] = {
+ 0xc7, 0x96, 0xdd, 0xc4, 0x6a, 0x7c, 0xc0, 0xea, 0xcc, 0x41, 0x72, 0x42,
+ 0x9f, 0x12, 0x50, 0xa0, 0x1b, 0x9f, 0x0c, 0x78, 0xe3, 0x2d, 0x2f, 0xad,
+ 0xce, 0x04, 0xfa, 0xa0, 0x84, 0x00, 0x62, 0xf5, 0x12, 0xc2, 0xd1, 0xd9,
+ 0xfc, 0xf5, 0xe4, 0xce, 0x4c, 0xaa, 0x60, 0x17, 0xcd, 0x6c, 0x56, 0x71,
+};
+static const unsigned char kat4086_addinpr1[] = {0};
+static const unsigned char kat4086_entropyinpr2[] = {
+ 0x45, 0xa5, 0x08, 0x7c, 0x74, 0xc8, 0xbf, 0xce, 0x96, 0xcb, 0xab, 0xb9,
+ 0x70, 0xdc, 0xed, 0x61, 0x3d, 0xea, 0x2a, 0x0f, 0xba, 0x44, 0xbd, 0x53,
+ 0xc6, 0x4b, 0x98, 0x2d, 0x23, 0xa4, 0x3e, 0x49, 0xd0, 0x50, 0xfe, 0xe9,
+ 0x5b, 0x67, 0x46, 0x73, 0xe5, 0xa7, 0xbd, 0xfd, 0xaf, 0x5a, 0x2e, 0x30,
+};
+static const unsigned char kat4086_addinpr2[] = {0};
+static const unsigned char kat4086_retbits[] = {
+ 0x7d, 0x60, 0xec, 0xa5, 0xb2, 0xa9, 0x0a, 0xc9, 0xf8, 0x4d, 0x84, 0xc4,
+ 0x35, 0x60, 0x97, 0xa0, 0xf2, 0x03, 0x53, 0xcd, 0xd7, 0xf9, 0xe3, 0x53,
+ 0xf0, 0x71, 0xb4, 0x55, 0x7c, 0xab, 0x38, 0x8a, 0xde, 0xd6, 0x1d, 0xe1,
+ 0x60, 0x78, 0x49, 0x90, 0x5e, 0xab, 0xb4, 0xf6, 0x81, 0x18, 0x7d, 0x74,
+ 0x09, 0xd1, 0x5f, 0x30, 0x31, 0x90, 0x35, 0x46, 0x62, 0xc0, 0x50, 0xe8,
+ 0x99, 0xc1, 0xc6, 0xf8,
+};
+static const struct drbg_kat_pr_true kat4086_t = {
+ 5, kat4086_entropyin, kat4086_nonce, kat4086_persstr,
+ kat4086_entropyinpr1, kat4086_addinpr1, kat4086_entropyinpr2,
+ kat4086_addinpr2, kat4086_retbits
+};
+static const struct drbg_kat kat4086 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4086_t
+};
+
+static const unsigned char kat4087_entropyin[] = {
+ 0x06, 0x7d, 0xe2, 0xf6, 0x5d, 0x56, 0xca, 0xc8, 0xa0, 0x9c, 0x1d, 0x3b,
+ 0x48, 0x80, 0x06, 0xc7, 0xb3, 0x1a, 0x97, 0x48, 0x4d, 0xd3, 0x0d, 0xb2,
+ 0xce, 0xb6, 0x70, 0x5c, 0xa9, 0xb7, 0xa9, 0x93, 0xaf, 0xdb, 0xf5, 0x92,
+ 0x0e, 0xd7, 0x38, 0x49, 0xdc, 0x67, 0xb9, 0xd2, 0x8c, 0xbf, 0xe1, 0xcf,
+};
+static const unsigned char kat4087_nonce[] = {0};
+static const unsigned char kat4087_persstr[] = {0};
+static const unsigned char kat4087_entropyinpr1[] = {
+ 0x16, 0x8b, 0x15, 0x90, 0xc8, 0xe5, 0x2c, 0x83, 0x25, 0x64, 0xa1, 0x13,
+ 0x50, 0x40, 0xe4, 0x0f, 0xc0, 0x9b, 0x66, 0xa7, 0xea, 0x0a, 0xac, 0xa6,
+ 0x3a, 0x44, 0xe5, 0x9f, 0x2e, 0xff, 0x38, 0xca, 0x7d, 0x63, 0xde, 0x28,
+ 0x3f, 0x76, 0x6f, 0x08, 0x5b, 0xe5, 0x10, 0x7f, 0x56, 0x48, 0x79, 0xad,
+};
+static const unsigned char kat4087_addinpr1[] = {0};
+static const unsigned char kat4087_entropyinpr2[] = {
+ 0xc5, 0x5b, 0xd6, 0x17, 0xff, 0x9d, 0x58, 0x01, 0x0b, 0xa0, 0xed, 0x10,
+ 0xcb, 0xff, 0xac, 0xd7, 0x2a, 0x5a, 0x86, 0x36, 0xb8, 0x16, 0x27, 0x8d,
+ 0xc0, 0xc8, 0x0e, 0x6a, 0xe2, 0xfe, 0x34, 0x4d, 0xe1, 0xed, 0xdc, 0xef,
+ 0xe1, 0x1e, 0xa2, 0x7f, 0x7d, 0x32, 0xc6, 0x91, 0xce, 0xab, 0xf4, 0x41,
+};
+static const unsigned char kat4087_addinpr2[] = {0};
+static const unsigned char kat4087_retbits[] = {
+ 0x44, 0x90, 0xd3, 0xeb, 0x16, 0x5b, 0x56, 0x82, 0xd8, 0xe3, 0xc0, 0xce,
+ 0x23, 0x28, 0xb4, 0x24, 0xab, 0xcb, 0x76, 0xd9, 0x63, 0x44, 0x7d, 0x02,
+ 0xda, 0x8a, 0x18, 0x6f, 0x5b, 0x07, 0x37, 0x65, 0xf4, 0xd2, 0x73, 0xf8,
+ 0xf4, 0x58, 0x67, 0x1a, 0xed, 0x28, 0xd6, 0xcf, 0x56, 0xed, 0x54, 0xfe,
+ 0x5c, 0x3e, 0x12, 0x44, 0x46, 0xcc, 0x04, 0xb8, 0xbc, 0x39, 0x41, 0xdc,
+ 0x3b, 0xb2, 0xa0, 0xca,
+};
+static const struct drbg_kat_pr_true kat4087_t = {
+ 6, kat4087_entropyin, kat4087_nonce, kat4087_persstr,
+ kat4087_entropyinpr1, kat4087_addinpr1, kat4087_entropyinpr2,
+ kat4087_addinpr2, kat4087_retbits
+};
+static const struct drbg_kat kat4087 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4087_t
+};
+
+static const unsigned char kat4088_entropyin[] = {
+ 0xa1, 0xaa, 0x10, 0xbb, 0x6e, 0xe8, 0xe4, 0xcf, 0xf8, 0xae, 0x8d, 0x36,
+ 0x39, 0xc4, 0x71, 0x73, 0x21, 0xba, 0x54, 0x6f, 0x75, 0x97, 0x89, 0xfa,
+ 0x5b, 0x3a, 0xeb, 0x38, 0x9d, 0x58, 0x8a, 0x35, 0xc3, 0x8c, 0x54, 0xb7,
+ 0x5c, 0x4c, 0x38, 0x3f, 0x69, 0x4e, 0xa8, 0xf3, 0x10, 0xd4, 0x5e, 0xd5,
+};
+static const unsigned char kat4088_nonce[] = {0};
+static const unsigned char kat4088_persstr[] = {0};
+static const unsigned char kat4088_entropyinpr1[] = {
+ 0x11, 0x6c, 0x07, 0xef, 0xb3, 0xb5, 0x3a, 0x90, 0xc5, 0x2a, 0x95, 0x84,
+ 0x4f, 0x5f, 0x4e, 0x93, 0x04, 0x66, 0x7e, 0xff, 0xfa, 0xd6, 0x03, 0x67,
+ 0x89, 0x94, 0xb7, 0x25, 0x7a, 0x68, 0x87, 0xa8, 0xa5, 0x22, 0xc4, 0x00,
+ 0x83, 0xcf, 0xd9, 0x4e, 0x37, 0x1e, 0xa1, 0x8f, 0x7d, 0x7a, 0xfd, 0xa7,
+};
+static const unsigned char kat4088_addinpr1[] = {0};
+static const unsigned char kat4088_entropyinpr2[] = {
+ 0xc0, 0x1b, 0xe2, 0x92, 0xf6, 0xd0, 0x29, 0xba, 0x8f, 0xea, 0x8b, 0x85,
+ 0xb7, 0x00, 0x7b, 0x9c, 0x4a, 0x22, 0x26, 0x56, 0x6b, 0x94, 0x90, 0xd9,
+ 0xb9, 0xd3, 0xbb, 0xcd, 0x44, 0x86, 0x62, 0xfa, 0x1c, 0x0b, 0x69, 0xa5,
+ 0x23, 0xab, 0xe5, 0x47, 0x92, 0xcc, 0x00, 0xe7, 0xd6, 0x78, 0x32, 0x92,
+};
+static const unsigned char kat4088_addinpr2[] = {0};
+static const unsigned char kat4088_retbits[] = {
+ 0xfd, 0x26, 0x72, 0xcb, 0xb1, 0x51, 0xde, 0xf9, 0xec, 0x3a, 0x36, 0xbd,
+ 0x89, 0xa8, 0x09, 0x7b, 0x4a, 0x14, 0x1a, 0x1d, 0x37, 0xdd, 0x65, 0xd0,
+ 0xd3, 0x81, 0x9b, 0x13, 0xd6, 0x7e, 0x3a, 0xf2, 0x94, 0x88, 0x94, 0x4c,
+ 0x52, 0x67, 0xdd, 0x7e, 0x55, 0xf9, 0x24, 0xce, 0x15, 0x59, 0x41, 0xb7,
+ 0x8b, 0x43, 0xf8, 0x6e, 0x7b, 0x6d, 0x56, 0xdf, 0xb0, 0xd4, 0x8d, 0xcd,
+ 0xa8, 0x29, 0xc2, 0xba,
+};
+static const struct drbg_kat_pr_true kat4088_t = {
+ 7, kat4088_entropyin, kat4088_nonce, kat4088_persstr,
+ kat4088_entropyinpr1, kat4088_addinpr1, kat4088_entropyinpr2,
+ kat4088_addinpr2, kat4088_retbits
+};
+static const struct drbg_kat kat4088 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4088_t
+};
+
+static const unsigned char kat4089_entropyin[] = {
+ 0xc1, 0x0d, 0x35, 0x3b, 0x2c, 0x51, 0x53, 0x73, 0x0f, 0x90, 0x2f, 0xa2,
+ 0x8b, 0x02, 0x2d, 0xde, 0xb3, 0x0c, 0x83, 0xaf, 0x8b, 0x3b, 0xdd, 0x2e,
+ 0x01, 0x13, 0x14, 0xce, 0xe5, 0x80, 0x49, 0x9a, 0x5b, 0x12, 0xc8, 0x07,
+ 0x62, 0xaf, 0x6b, 0x07, 0xc8, 0x06, 0x63, 0x2e, 0x16, 0x40, 0x70, 0x6b,
+};
+static const unsigned char kat4089_nonce[] = {0};
+static const unsigned char kat4089_persstr[] = {0};
+static const unsigned char kat4089_entropyinpr1[] = {
+ 0xf2, 0x55, 0x1d, 0xce, 0x81, 0x7f, 0xc6, 0xc6, 0xdc, 0x7a, 0x5b, 0x79,
+ 0x16, 0x99, 0xf0, 0xfd, 0xf6, 0x85, 0x2c, 0x44, 0x19, 0x6a, 0x05, 0x6d,
+ 0xca, 0xb1, 0xdd, 0x47, 0xd8, 0x1c, 0x93, 0x35, 0x61, 0xae, 0xd9, 0x27,
+ 0xa8, 0xf9, 0x92, 0xf7, 0x1a, 0xab, 0x6a, 0xde, 0xbb, 0x04, 0x99, 0xd8,
+};
+static const unsigned char kat4089_addinpr1[] = {0};
+static const unsigned char kat4089_entropyinpr2[] = {
+ 0xc6, 0xb8, 0xc8, 0x40, 0x0e, 0x23, 0xbe, 0x6e, 0x22, 0x8b, 0x8d, 0xf9,
+ 0x69, 0x69, 0xee, 0xd6, 0x05, 0x00, 0x39, 0x21, 0x37, 0xe3, 0x47, 0xca,
+ 0xbb, 0x23, 0x36, 0x83, 0x03, 0xfe, 0x8d, 0xc8, 0x08, 0x21, 0xd5, 0xa3,
+ 0xd2, 0xad, 0x07, 0x38, 0x55, 0xec, 0x35, 0x2a, 0x2c, 0x68, 0x6e, 0x53,
+};
+static const unsigned char kat4089_addinpr2[] = {0};
+static const unsigned char kat4089_retbits[] = {
+ 0x98, 0xa1, 0xcd, 0x59, 0x92, 0x65, 0xce, 0x68, 0xd5, 0xf6, 0x0e, 0x61,
+ 0xa5, 0x1c, 0xf6, 0x1e, 0xae, 0x62, 0x04, 0x84, 0xdc, 0x30, 0x08, 0x14,
+ 0x73, 0xc5, 0x57, 0xb1, 0x70, 0xab, 0x76, 0xac, 0x9f, 0x2a, 0xa3, 0x3a,
+ 0xdc, 0x45, 0xc8, 0x90, 0xa9, 0x04, 0x65, 0x4e, 0x32, 0xbc, 0x81, 0xc6,
+ 0xc4, 0xf8, 0xa9, 0xed, 0xe8, 0xca, 0x88, 0xaa, 0xb4, 0xd9, 0xea, 0x5d,
+ 0x2f, 0x11, 0x26, 0x47,
+};
+static const struct drbg_kat_pr_true kat4089_t = {
+ 8, kat4089_entropyin, kat4089_nonce, kat4089_persstr,
+ kat4089_entropyinpr1, kat4089_addinpr1, kat4089_entropyinpr2,
+ kat4089_addinpr2, kat4089_retbits
+};
+static const struct drbg_kat kat4089 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4089_t
+};
+
+static const unsigned char kat4090_entropyin[] = {
+ 0xac, 0xd3, 0x0e, 0xa7, 0x34, 0x71, 0xc3, 0x2a, 0xe8, 0x39, 0x7a, 0x2b,
+ 0x26, 0x68, 0x78, 0x69, 0x73, 0x54, 0x54, 0x30, 0x82, 0x43, 0x8f, 0x6d,
+ 0x1f, 0x2a, 0x53, 0x29, 0x0b, 0xbf, 0xa8, 0x93, 0x4a, 0x1e, 0x4f, 0x00,
+ 0x7b, 0x37, 0x5b, 0x6e, 0xab, 0x2d, 0xb5, 0x8b, 0x5b, 0x9a, 0x0a, 0x9d,
+};
+static const unsigned char kat4090_nonce[] = {0};
+static const unsigned char kat4090_persstr[] = {0};
+static const unsigned char kat4090_entropyinpr1[] = {
+ 0xbd, 0x8d, 0x77, 0x47, 0xe2, 0xa7, 0x8a, 0x86, 0xfe, 0x01, 0x63, 0x70,
+ 0xbd, 0x59, 0x06, 0xab, 0xc4, 0x32, 0x05, 0x09, 0x2a, 0x6a, 0x0e, 0x20,
+ 0x1e, 0xe2, 0x9b, 0x73, 0x91, 0x30, 0x43, 0xd8, 0x61, 0x61, 0x1d, 0xbb,
+ 0xed, 0xa2, 0xac, 0x44, 0xab, 0xb7, 0xe2, 0xf3, 0xf2, 0x88, 0x89, 0xa0,
+};
+static const unsigned char kat4090_addinpr1[] = {0};
+static const unsigned char kat4090_entropyinpr2[] = {
+ 0xb6, 0xaf, 0xd9, 0x28, 0x91, 0x4a, 0xc9, 0x54, 0x20, 0xf4, 0xa9, 0x17,
+ 0x6c, 0x3d, 0x10, 0x82, 0xcf, 0x2a, 0xda, 0xcc, 0xbf, 0xde, 0x0c, 0xb2,
+ 0xb0, 0xd2, 0x7c, 0x72, 0x77, 0xa8, 0x0b, 0x66, 0x88, 0x8c, 0xe8, 0xae,
+ 0xf8, 0xd6, 0xe7, 0x98, 0x51, 0xe4, 0x1c, 0x6c, 0xb8, 0x35, 0xc4, 0x72,
+};
+static const unsigned char kat4090_addinpr2[] = {0};
+static const unsigned char kat4090_retbits[] = {
+ 0x1f, 0xd5, 0x8c, 0xae, 0xba, 0xf6, 0xcc, 0x4e, 0x6c, 0x48, 0x10, 0xdd,
+ 0xef, 0x84, 0x4e, 0xaa, 0x4f, 0xb1, 0xd9, 0x06, 0x9c, 0x94, 0x59, 0x3a,
+ 0xc5, 0xfa, 0xfb, 0xa3, 0xe5, 0xdd, 0xc0, 0x47, 0x9d, 0xa0, 0x57, 0xd9,
+ 0xca, 0x29, 0x1c, 0x6d, 0x07, 0x06, 0xca, 0x0b, 0x92, 0xfc, 0x16, 0x3f,
+ 0x1d, 0xee, 0xcb, 0x07, 0x4b, 0xa2, 0x8e, 0xfd, 0x95, 0xf9, 0x55, 0xfa,
+ 0xc2, 0xf3, 0xa7, 0x55,
+};
+static const struct drbg_kat_pr_true kat4090_t = {
+ 9, kat4090_entropyin, kat4090_nonce, kat4090_persstr,
+ kat4090_entropyinpr1, kat4090_addinpr1, kat4090_entropyinpr2,
+ kat4090_addinpr2, kat4090_retbits
+};
+static const struct drbg_kat kat4090 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4090_t
+};
+
+static const unsigned char kat4091_entropyin[] = {
+ 0x25, 0x34, 0x7f, 0xec, 0x63, 0x56, 0xc4, 0x39, 0xe5, 0x26, 0x90, 0x81,
+ 0x47, 0x84, 0x03, 0x29, 0x75, 0xbf, 0x3f, 0x85, 0x61, 0x80, 0xf4, 0xa3,
+ 0x0c, 0x7f, 0x44, 0x15, 0x78, 0x9a, 0xc5, 0x29, 0x74, 0x05, 0xe9, 0x19,
+ 0x0f, 0x88, 0x89, 0x5c, 0xf9, 0x25, 0xff, 0x76, 0x67, 0x14, 0xfd, 0xc6,
+};
+static const unsigned char kat4091_nonce[] = {0};
+static const unsigned char kat4091_persstr[] = {0};
+static const unsigned char kat4091_entropyinpr1[] = {
+ 0x35, 0x65, 0xd7, 0x0a, 0x06, 0x42, 0xc5, 0x9f, 0x1c, 0x75, 0xf1, 0x30,
+ 0x44, 0x44, 0x25, 0x91, 0x9f, 0x3c, 0x24, 0xd5, 0x2c, 0x5a, 0x76, 0x27,
+ 0x5c, 0xbd, 0xa6, 0x36, 0x2d, 0xa3, 0xec, 0x31, 0xa2, 0x64, 0xf0, 0x18,
+ 0x1c, 0x07, 0xe7, 0xb1, 0xbd, 0x8a, 0xa0, 0x7c, 0xba, 0x5a, 0x87, 0x90,
+};
+static const unsigned char kat4091_addinpr1[] = {0};
+static const unsigned char kat4091_entropyinpr2[] = {
+ 0x3f, 0x6b, 0xc6, 0xdd, 0x90, 0x2b, 0x2c, 0x82, 0x8d, 0xb3, 0x54, 0x20,
+ 0x11, 0x74, 0x21, 0x09, 0xdc, 0xd4, 0xf7, 0x3e, 0xea, 0x25, 0x4c, 0x03,
+ 0x1f, 0x6f, 0xa5, 0x3a, 0x36, 0x5a, 0x90, 0xa0, 0x85, 0x7b, 0xce, 0x59,
+ 0xb5, 0x4d, 0x3a, 0x17, 0x9b, 0xfe, 0x34, 0x5b, 0x14, 0x50, 0x7d, 0x82,
+};
+static const unsigned char kat4091_addinpr2[] = {0};
+static const unsigned char kat4091_retbits[] = {
+ 0x5e, 0x0c, 0x7f, 0xc1, 0x4d, 0x99, 0x7e, 0xc5, 0xb5, 0x7c, 0x41, 0x29,
+ 0x9b, 0x11, 0xc1, 0xff, 0xfd, 0x56, 0xf4, 0x6e, 0x03, 0x45, 0x27, 0xa0,
+ 0xcf, 0x25, 0x5a, 0x17, 0xbf, 0x0d, 0x21, 0x09, 0x7f, 0xba, 0x91, 0xe2,
+ 0xfc, 0x29, 0xd2, 0x05, 0x7b, 0x7c, 0x33, 0xb1, 0xca, 0x92, 0x02, 0xf4,
+ 0x3c, 0xe8, 0xad, 0x49, 0x09, 0x81, 0xde, 0x38, 0x86, 0x20, 0x6c, 0xfa,
+ 0x0d, 0xf2, 0x77, 0x0d,
+};
+static const struct drbg_kat_pr_true kat4091_t = {
+ 10, kat4091_entropyin, kat4091_nonce, kat4091_persstr,
+ kat4091_entropyinpr1, kat4091_addinpr1, kat4091_entropyinpr2,
+ kat4091_addinpr2, kat4091_retbits
+};
+static const struct drbg_kat kat4091 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4091_t
+};
+
+static const unsigned char kat4092_entropyin[] = {
+ 0x7d, 0x40, 0xc2, 0x53, 0x9f, 0x49, 0x69, 0x87, 0xf7, 0x3f, 0x93, 0x65,
+ 0x2a, 0x42, 0x66, 0x12, 0x67, 0xab, 0x27, 0x51, 0xa3, 0xe1, 0x16, 0x5c,
+ 0xa6, 0xb5, 0x46, 0x0a, 0x2f, 0xb4, 0x76, 0x25, 0x26, 0x3d, 0x17, 0xf3,
+ 0xa4, 0x22, 0x7d, 0x86, 0x42, 0xd4, 0x47, 0x5f, 0xd6, 0x9b, 0xe1, 0xc3,
+};
+static const unsigned char kat4092_nonce[] = {0};
+static const unsigned char kat4092_persstr[] = {0};
+static const unsigned char kat4092_entropyinpr1[] = {
+ 0x68, 0xe4, 0x81, 0x0e, 0x03, 0x02, 0x42, 0x8d, 0x8a, 0xfb, 0x9d, 0xa8,
+ 0x6a, 0x86, 0x67, 0x06, 0x9d, 0x30, 0x2b, 0x5b, 0xed, 0xd2, 0xb4, 0xb4,
+ 0x05, 0x2e, 0x62, 0xa7, 0xf2, 0x4f, 0x39, 0xa8, 0x80, 0xc5, 0x66, 0x0c,
+ 0xeb, 0x8b, 0xa0, 0x2a, 0x8e, 0x32, 0xb5, 0x2f, 0x53, 0xf8, 0xd7, 0x75,
+};
+static const unsigned char kat4092_addinpr1[] = {0};
+static const unsigned char kat4092_entropyinpr2[] = {
+ 0x9c, 0x80, 0x5e, 0x77, 0x90, 0x4d, 0x6b, 0xcf, 0x24, 0xe4, 0xa8, 0xba,
+ 0xe2, 0x25, 0x69, 0x0d, 0x20, 0xdd, 0xd0, 0xda, 0x8d, 0xf1, 0xf0, 0xbe,
+ 0xd1, 0x2a, 0xe1, 0xb2, 0x93, 0x0c, 0x9c, 0xe5, 0x7b, 0x03, 0x01, 0x6b,
+ 0x1a, 0x61, 0xf5, 0xd6, 0x51, 0x3f, 0x84, 0xf6, 0x51, 0x75, 0x3f, 0x51,
+};
+static const unsigned char kat4092_addinpr2[] = {0};
+static const unsigned char kat4092_retbits[] = {
+ 0x07, 0xa1, 0x37, 0xc2, 0x44, 0x39, 0x58, 0xcd, 0xea, 0x24, 0x10, 0x58,
+ 0x43, 0xb6, 0xa8, 0xe4, 0x2f, 0x89, 0xa8, 0xb3, 0xf2, 0xe1, 0x26, 0x37,
+ 0xfe, 0xeb, 0x0f, 0x7a, 0x91, 0x28, 0xf1, 0x3d, 0x0e, 0x64, 0xf0, 0xd4,
+ 0xaf, 0x75, 0x07, 0x52, 0x4d, 0x99, 0x3c, 0x23, 0xce, 0x32, 0x2f, 0xe9,
+ 0x27, 0x62, 0x7b, 0x05, 0x2b, 0xe7, 0x4e, 0x7b, 0xab, 0xde, 0x18, 0xd4,
+ 0x47, 0x4d, 0xe6, 0xaa,
+};
+static const struct drbg_kat_pr_true kat4092_t = {
+ 11, kat4092_entropyin, kat4092_nonce, kat4092_persstr,
+ kat4092_entropyinpr1, kat4092_addinpr1, kat4092_entropyinpr2,
+ kat4092_addinpr2, kat4092_retbits
+};
+static const struct drbg_kat kat4092 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4092_t
+};
+
+static const unsigned char kat4093_entropyin[] = {
+ 0x34, 0x4a, 0xa8, 0xce, 0xb8, 0x5d, 0x9c, 0xc4, 0xb7, 0xa4, 0x61, 0x10,
+ 0x39, 0xee, 0x42, 0xe4, 0x21, 0x56, 0x00, 0x04, 0xa2, 0xec, 0xd5, 0x00,
+ 0x26, 0x17, 0x80, 0xed, 0x08, 0xfe, 0x6f, 0x97, 0x6f, 0x68, 0xe3, 0x70,
+ 0x37, 0x7a, 0x72, 0x30, 0x1c, 0x38, 0x73, 0x4e, 0x8b, 0x8e, 0xf6, 0xef,
+};
+static const unsigned char kat4093_nonce[] = {0};
+static const unsigned char kat4093_persstr[] = {0};
+static const unsigned char kat4093_entropyinpr1[] = {
+ 0x77, 0x38, 0x1a, 0xf3, 0xd8, 0x8e, 0xe0, 0xe9, 0xc4, 0xb0, 0x24, 0x73,
+ 0xf9, 0x8b, 0x4f, 0xdb, 0x32, 0x22, 0xd7, 0x56, 0x56, 0xde, 0x78, 0x25,
+ 0xb6, 0x89, 0xa7, 0x56, 0x59, 0x8a, 0xab, 0xce, 0x26, 0xf6, 0x89, 0x1a,
+ 0x9e, 0xc2, 0x61, 0x8d, 0xca, 0xb6, 0x4e, 0xf6, 0x91, 0x28, 0x9a, 0xce,
+};
+static const unsigned char kat4093_addinpr1[] = {0};
+static const unsigned char kat4093_entropyinpr2[] = {
+ 0xdc, 0x3d, 0xe1, 0x02, 0x55, 0x19, 0xf4, 0x10, 0x0f, 0x66, 0x60, 0x30,
+ 0xd8, 0x82, 0x52, 0xd3, 0xb9, 0xe8, 0x4d, 0x75, 0x94, 0xf6, 0xf4, 0x83,
+ 0x1f, 0xfd, 0x51, 0xf2, 0xf5, 0x12, 0x91, 0x85, 0x52, 0x2c, 0x9b, 0x12,
+ 0x57, 0x6b, 0x61, 0xa7, 0xab, 0xd7, 0xd5, 0x15, 0x0f, 0x70, 0x3a, 0xf9,
+};
+static const unsigned char kat4093_addinpr2[] = {0};
+static const unsigned char kat4093_retbits[] = {
+ 0xbd, 0xc2, 0x17, 0x3e, 0x5f, 0x51, 0x4a, 0xba, 0xf5, 0xe4, 0xe1, 0xe7,
+ 0x20, 0x5c, 0x0a, 0x9e, 0xf3, 0x2a, 0x5b, 0x0f, 0xaf, 0x2b, 0x00, 0x3a,
+ 0xf2, 0x07, 0x7e, 0x40, 0x10, 0x79, 0x47, 0xbb, 0x3e, 0x57, 0x08, 0x73,
+ 0xdd, 0x81, 0xb9, 0x4c, 0x3a, 0x9c, 0xa0, 0xb1, 0x5d, 0xcf, 0x44, 0x84,
+ 0xbd, 0x91, 0xef, 0xba, 0xcb, 0xec, 0xe1, 0x53, 0xb5, 0x7a, 0x14, 0xf0,
+ 0xf9, 0xd3, 0x43, 0xe7,
+};
+static const struct drbg_kat_pr_true kat4093_t = {
+ 12, kat4093_entropyin, kat4093_nonce, kat4093_persstr,
+ kat4093_entropyinpr1, kat4093_addinpr1, kat4093_entropyinpr2,
+ kat4093_addinpr2, kat4093_retbits
+};
+static const struct drbg_kat kat4093 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4093_t
+};
+
+static const unsigned char kat4094_entropyin[] = {
+ 0x59, 0xb0, 0x13, 0xb3, 0x7a, 0xbc, 0x88, 0xcb, 0x2b, 0x7d, 0x2d, 0xb3,
+ 0xd7, 0xec, 0x00, 0x73, 0x52, 0x2f, 0x15, 0x91, 0x4a, 0xf7, 0xe8, 0x1b,
+ 0xb3, 0x8c, 0xe5, 0x7d, 0x39, 0xb7, 0x73, 0x91, 0xbd, 0xe4, 0xb4, 0xd3,
+ 0x58, 0xa2, 0xeb, 0x16, 0xf1, 0xc0, 0x69, 0x64, 0x7e, 0xb3, 0x0d, 0xf5,
+};
+static const unsigned char kat4094_nonce[] = {0};
+static const unsigned char kat4094_persstr[] = {0};
+static const unsigned char kat4094_entropyinpr1[] = {
+ 0x74, 0x3e, 0xfe, 0x2c, 0x95, 0x33, 0x14, 0xe5, 0xac, 0x2a, 0x03, 0x84,
+ 0x38, 0x88, 0xc2, 0x37, 0x2f, 0xb3, 0xec, 0xd9, 0x5b, 0xff, 0x07, 0x8d,
+ 0x69, 0x3e, 0xaf, 0xc7, 0x82, 0x32, 0x0a, 0x14, 0x0e, 0xa8, 0x3c, 0x69,
+ 0x0e, 0x2e, 0xb0, 0x8b, 0x04, 0x8b, 0x76, 0x7d, 0x40, 0x96, 0x81, 0xca,
+};
+static const unsigned char kat4094_addinpr1[] = {0};
+static const unsigned char kat4094_entropyinpr2[] = {
+ 0x12, 0xba, 0x76, 0x30, 0x9a, 0xd3, 0x49, 0xaa, 0xb1, 0xa4, 0x03, 0x78,
+ 0x54, 0x3d, 0xdb, 0x52, 0xfa, 0x97, 0x20, 0x0a, 0x29, 0x1b, 0x57, 0xc4,
+ 0x8f, 0xd4, 0x4b, 0x39, 0x6b, 0xa9, 0x25, 0xfa, 0x65, 0x2e, 0x48, 0x80,
+ 0x0e, 0x13, 0xf6, 0x2f, 0x6b, 0x38, 0x68, 0xc9, 0xd3, 0xf9, 0x52, 0x3f,
+};
+static const unsigned char kat4094_addinpr2[] = {0};
+static const unsigned char kat4094_retbits[] = {
+ 0x0d, 0x03, 0xc6, 0x04, 0x4f, 0xcf, 0x9d, 0xc0, 0xa0, 0xb9, 0xaf, 0x8d,
+ 0x94, 0x37, 0x6c, 0x2c, 0xf0, 0x9b, 0x00, 0x67, 0x1c, 0x26, 0xfc, 0x72,
+ 0x0c, 0x69, 0x26, 0x9e, 0x74, 0xf5, 0xea, 0xb4, 0xea, 0xb6, 0xd5, 0x7e,
+ 0xb3, 0xcd, 0x50, 0xee, 0x96, 0x03, 0xfa, 0xea, 0xfd, 0x75, 0x22, 0xdf,
+ 0x43, 0xb7, 0xca, 0x9b, 0x18, 0x21, 0xb5, 0x17, 0xb3, 0xb5, 0x5c, 0x72,
+ 0xea, 0xc6, 0x86, 0xe3,
+};
+static const struct drbg_kat_pr_true kat4094_t = {
+ 13, kat4094_entropyin, kat4094_nonce, kat4094_persstr,
+ kat4094_entropyinpr1, kat4094_addinpr1, kat4094_entropyinpr2,
+ kat4094_addinpr2, kat4094_retbits
+};
+static const struct drbg_kat kat4094 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4094_t
+};
+
+static const unsigned char kat4095_entropyin[] = {
+ 0xfe, 0x00, 0xa4, 0xb1, 0x85, 0x45, 0x64, 0xde, 0x95, 0x11, 0xed, 0xca,
+ 0xf8, 0xfb, 0xb6, 0x9b, 0xd2, 0x5b, 0xcb, 0xc9, 0xe7, 0x8d, 0x32, 0x17,
+ 0xf7, 0x6c, 0xc5, 0xa3, 0x36, 0xfe, 0xb7, 0xc3, 0x9b, 0x22, 0x96, 0x56,
+ 0x1f, 0x69, 0xed, 0x45, 0xbd, 0xb2, 0x2a, 0x26, 0x5d, 0xa8, 0xd1, 0x04,
+};
+static const unsigned char kat4095_nonce[] = {0};
+static const unsigned char kat4095_persstr[] = {0};
+static const unsigned char kat4095_entropyinpr1[] = {
+ 0x6f, 0x16, 0xff, 0x94, 0xcb, 0x8a, 0xde, 0x7a, 0x92, 0x8b, 0x9a, 0x59,
+ 0xaf, 0x32, 0xea, 0x79, 0x94, 0x4e, 0x68, 0x90, 0xa0, 0x03, 0xb0, 0xfe,
+ 0x18, 0xf5, 0x32, 0x36, 0xd6, 0x6a, 0x41, 0x16, 0xfc, 0x8c, 0x2f, 0xb4,
+ 0xc8, 0x4d, 0x25, 0xda, 0x21, 0x97, 0x06, 0x1c, 0x29, 0x70, 0x3d, 0x3e,
+};
+static const unsigned char kat4095_addinpr1[] = {0};
+static const unsigned char kat4095_entropyinpr2[] = {
+ 0xc7, 0x3f, 0xe2, 0x3a, 0x8b, 0xa2, 0xbb, 0x78, 0x01, 0x78, 0x34, 0x25,
+ 0x98, 0x25, 0x2e, 0x9c, 0xe3, 0xde, 0x90, 0x7c, 0x4f, 0xc1, 0xcd, 0x63,
+ 0x2b, 0x35, 0x3c, 0xf9, 0x59, 0xff, 0x61, 0x0f, 0x23, 0xa8, 0xa2, 0xb0,
+ 0x42, 0x4a, 0xd1, 0x37, 0xae, 0xc7, 0xda, 0x42, 0xf8, 0xc9, 0xf2, 0xda,
+};
+static const unsigned char kat4095_addinpr2[] = {0};
+static const unsigned char kat4095_retbits[] = {
+ 0x8f, 0x72, 0x61, 0xed, 0xf6, 0xd1, 0x08, 0x24, 0x21, 0x8a, 0xd0, 0xb1,
+ 0x08, 0x81, 0xe3, 0xc1, 0x25, 0x16, 0x37, 0xbb, 0xb7, 0x1d, 0x0f, 0x35,
+ 0x28, 0x0c, 0xae, 0xc7, 0xde, 0x25, 0x4e, 0x07, 0x14, 0x7f, 0x33, 0x28,
+ 0x8b, 0x5c, 0x60, 0x79, 0x40, 0x60, 0xb5, 0x9e, 0x6f, 0x5c, 0xc2, 0x93,
+ 0x8e, 0x4c, 0x29, 0xde, 0x1e, 0x4d, 0x5d, 0x4d, 0x3b, 0xde, 0x3f, 0x27,
+ 0xc3, 0xfa, 0xb9, 0x2d,
+};
+static const struct drbg_kat_pr_true kat4095_t = {
+ 14, kat4095_entropyin, kat4095_nonce, kat4095_persstr,
+ kat4095_entropyinpr1, kat4095_addinpr1, kat4095_entropyinpr2,
+ kat4095_addinpr2, kat4095_retbits
+};
+static const struct drbg_kat kat4095 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4095_t
+};
+
+static const unsigned char kat4096_entropyin[] = {
+ 0xc5, 0x19, 0xcd, 0x4f, 0x83, 0x9c, 0x9a, 0x5e, 0x93, 0x64, 0x85, 0x24,
+ 0x2c, 0x4d, 0xa8, 0x47, 0xf4, 0x7a, 0xf5, 0xb5, 0x44, 0xac, 0xd1, 0x2b,
+ 0x49, 0x03, 0x64, 0x53, 0x65, 0x5d, 0xe3, 0xed, 0x57, 0xb2, 0xae, 0x01,
+ 0x58, 0x22, 0xa6, 0x0e, 0xdc, 0xfb, 0x85, 0x9b, 0x00, 0xbb, 0xef, 0x2e,
+};
+static const unsigned char kat4096_nonce[] = {0};
+static const unsigned char kat4096_persstr[] = {0};
+static const unsigned char kat4096_entropyinpr1[] = {
+ 0x04, 0x15, 0xf8, 0xfd, 0x00, 0xd4, 0xd2, 0x45, 0x47, 0x06, 0x14, 0x20,
+ 0x83, 0x34, 0x63, 0x04, 0xd8, 0x05, 0x1b, 0x82, 0x59, 0xd0, 0x8d, 0xe4,
+ 0x93, 0xd9, 0x91, 0xd3, 0x66, 0xa4, 0x2f, 0xd4, 0x52, 0xd6, 0x53, 0x33,
+ 0x46, 0x89, 0x6d, 0x32, 0x3b, 0xa1, 0x06, 0x6a, 0x48, 0x5e, 0xf1, 0x05,
+};
+static const unsigned char kat4096_addinpr1[] = {
+ 0x7e, 0x95, 0xd8, 0x09, 0xc1, 0x1a, 0x7a, 0x97, 0x52, 0x30, 0xda, 0x95,
+ 0x99, 0xd0, 0x07, 0x31, 0x36, 0xbd, 0x05, 0x7a, 0x1a, 0x69, 0x90, 0xf9,
+ 0x80, 0x89, 0x4c, 0x01, 0x91, 0x2b, 0xc3, 0x9b, 0x8d, 0xac, 0x94, 0xc0,
+ 0x83, 0x93, 0x3d, 0x39, 0x27, 0x8f, 0x65, 0x54, 0x2d, 0xd8, 0xdd, 0x4e,
+};
+static const unsigned char kat4096_entropyinpr2[] = {
+ 0x9a, 0x14, 0x65, 0x01, 0xa4, 0xdc, 0x93, 0x49, 0xb0, 0x39, 0x28, 0x97,
+ 0x26, 0x3c, 0xfa, 0x41, 0x4b, 0x6f, 0xc7, 0xe5, 0x9d, 0x70, 0x93, 0xab,
+ 0x66, 0xbd, 0x26, 0x5b, 0x7e, 0x41, 0xb5, 0xc2, 0x76, 0x6f, 0x56, 0xd9,
+ 0x7b, 0x7d, 0x22, 0xd0, 0x22, 0x20, 0xcb, 0xc3, 0x89, 0xb3, 0x4a, 0x6f,
+};
+static const unsigned char kat4096_addinpr2[] = {
+ 0x18, 0x83, 0x57, 0xa4, 0xc4, 0xdb, 0xdd, 0x05, 0xcb, 0x6b, 0xc5, 0xd9,
+ 0x16, 0x0d, 0x5d, 0x95, 0x1c, 0xef, 0x6e, 0xd9, 0xab, 0x6c, 0x62, 0x2b,
+ 0x5a, 0x9c, 0xda, 0x2c, 0x76, 0x1d, 0x92, 0x78, 0x23, 0x5f, 0xbe, 0x9d,
+ 0x63, 0x12, 0xb9, 0xd8, 0x92, 0xa5, 0x9a, 0xbb, 0x7f, 0x3f, 0x48, 0x65,
+};
+static const unsigned char kat4096_retbits[] = {
+ 0xcb, 0x79, 0xc7, 0x9d, 0xd1, 0x9a, 0x72, 0xb3, 0x03, 0xa2, 0x56, 0x82,
+ 0x66, 0xab, 0xf2, 0x3a, 0xd6, 0xe3, 0x41, 0xcf, 0xcf, 0xee, 0x8a, 0x76,
+ 0x8a, 0xf6, 0x45, 0x84, 0xe4, 0xe4, 0x71, 0xde, 0xdc, 0x0d, 0x83, 0x2a,
+ 0x04, 0xe8, 0xdc, 0xf4, 0xb8, 0x96, 0xad, 0x9b, 0xf4, 0xa4, 0xa2, 0x49,
+ 0x5c, 0xc6, 0xf3, 0xef, 0xd2, 0x2a, 0x68, 0x93, 0x84, 0x24, 0x71, 0x7d,
+ 0xd7, 0x5e, 0x83, 0xb0,
+};
+static const struct drbg_kat_pr_true kat4096_t = {
+ 0, kat4096_entropyin, kat4096_nonce, kat4096_persstr,
+ kat4096_entropyinpr1, kat4096_addinpr1, kat4096_entropyinpr2,
+ kat4096_addinpr2, kat4096_retbits
+};
+static const struct drbg_kat kat4096 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4096_t
+};
+
+static const unsigned char kat4097_entropyin[] = {
+ 0xad, 0x45, 0xe5, 0x14, 0x52, 0x98, 0xe5, 0xc4, 0x50, 0xe2, 0x42, 0x11,
+ 0x53, 0x9e, 0xf8, 0x18, 0xbe, 0xc6, 0x65, 0xb7, 0x8e, 0x77, 0xcc, 0x54,
+ 0xeb, 0x4e, 0x72, 0xb1, 0x5a, 0xa6, 0xae, 0xb9, 0x82, 0x2a, 0x8d, 0xfb,
+ 0xe2, 0x7d, 0xef, 0xae, 0xb7, 0xd0, 0x76, 0x2f, 0x8d, 0x01, 0xed, 0xd2,
+};
+static const unsigned char kat4097_nonce[] = {0};
+static const unsigned char kat4097_persstr[] = {0};
+static const unsigned char kat4097_entropyinpr1[] = {
+ 0xfd, 0x98, 0x55, 0xb6, 0xae, 0x6a, 0x26, 0x10, 0x03, 0xfc, 0x0f, 0x25,
+ 0xfd, 0xd1, 0xa4, 0x8a, 0x9c, 0x9b, 0xfe, 0xb4, 0x4c, 0x84, 0x3b, 0xb1,
+ 0x6c, 0x3b, 0x9c, 0x89, 0x19, 0x83, 0x1f, 0x0a, 0x7b, 0xa2, 0xc9, 0x04,
+ 0xa5, 0x4f, 0x07, 0xa1, 0x95, 0xdd, 0x27, 0x2b, 0x5f, 0x76, 0xf0, 0xc6,
+};
+static const unsigned char kat4097_addinpr1[] = {
+ 0x73, 0x7b, 0x0e, 0x8d, 0x18, 0x19, 0x31, 0x64, 0xb2, 0x84, 0xcc, 0x2f,
+ 0xd1, 0xd2, 0xb9, 0x41, 0x88, 0xb4, 0x9e, 0x79, 0x97, 0xc0, 0x5f, 0xd8,
+ 0x03, 0xb1, 0xc8, 0x76, 0x61, 0xce, 0x4c, 0x0c, 0xdd, 0x24, 0xb5, 0x7d,
+ 0x0b, 0xac, 0x8a, 0x6d, 0xec, 0x30, 0xba, 0x80, 0x10, 0xcd, 0xd7, 0x69,
+};
+static const unsigned char kat4097_entropyinpr2[] = {
+ 0x61, 0x05, 0x68, 0x5b, 0x7f, 0x45, 0x5e, 0x04, 0x14, 0x56, 0x0a, 0xcf,
+ 0xba, 0x3e, 0x1e, 0x01, 0xad, 0x98, 0x23, 0x33, 0x19, 0x2a, 0xa6, 0x55,
+ 0x41, 0x68, 0x35, 0x76, 0x36, 0x8b, 0xaf, 0xf6, 0x7e, 0xe6, 0x89, 0x22,
+ 0x5e, 0xbb, 0xea, 0xd0, 0xf8, 0x32, 0xe9, 0xc8, 0x2d, 0xc1, 0x4c, 0x2d,
+};
+static const unsigned char kat4097_addinpr2[] = {
+ 0xef, 0xf2, 0x93, 0x2d, 0x8e, 0xc3, 0x7d, 0x6a, 0x2e, 0xec, 0x22, 0xf7,
+ 0x61, 0x64, 0x4b, 0xd8, 0xb9, 0xd8, 0x1c, 0x05, 0x9e, 0xaf, 0xdc, 0x0a,
+ 0xc1, 0x10, 0x00, 0x37, 0x59, 0x1c, 0x6b, 0x2b, 0x11, 0x5c, 0x60, 0x6a,
+ 0xbf, 0x88, 0x01, 0x77, 0x6c, 0x7c, 0x80, 0xef, 0xd9, 0xbc, 0x1c, 0x9e,
+};
+static const unsigned char kat4097_retbits[] = {
+ 0xc9, 0x13, 0x4f, 0xe3, 0x98, 0xa5, 0x08, 0x60, 0xb2, 0x78, 0x9f, 0x1e,
+ 0xf4, 0x07, 0x3b, 0x1d, 0xab, 0xd7, 0x40, 0x23, 0x48, 0x9a, 0xa8, 0x0e,
+ 0x98, 0x17, 0xd9, 0x6c, 0x75, 0xee, 0xe3, 0x30, 0x3f, 0xeb, 0xab, 0x1d,
+ 0xf3, 0xb5, 0xca, 0xa3, 0x9f, 0xb5, 0xfd, 0xcb, 0x57, 0xee, 0x11, 0xac,
+ 0x03, 0xb5, 0xc2, 0xf2, 0x0a, 0x5d, 0xc7, 0x1b, 0x75, 0xcd, 0x85, 0x0f,
+ 0x07, 0x92, 0x58, 0x60,
+};
+static const struct drbg_kat_pr_true kat4097_t = {
+ 1, kat4097_entropyin, kat4097_nonce, kat4097_persstr,
+ kat4097_entropyinpr1, kat4097_addinpr1, kat4097_entropyinpr2,
+ kat4097_addinpr2, kat4097_retbits
+};
+static const struct drbg_kat kat4097 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4097_t
+};
+
+static const unsigned char kat4098_entropyin[] = {
+ 0xb8, 0x68, 0xea, 0xbd, 0x46, 0x8d, 0xb8, 0x6a, 0xcf, 0x05, 0xe4, 0x75,
+ 0x67, 0x6c, 0x36, 0x89, 0x0e, 0x67, 0xfd, 0x45, 0xfb, 0x6d, 0x3e, 0xd9,
+ 0xe8, 0xf2, 0x2b, 0x7e, 0xd6, 0x1f, 0x85, 0xa5, 0x2d, 0xb7, 0x06, 0xd8,
+ 0x48, 0xcc, 0x46, 0x28, 0x03, 0xa1, 0xa4, 0xa3, 0x15, 0x1c, 0x03, 0xe6,
+};
+static const unsigned char kat4098_nonce[] = {0};
+static const unsigned char kat4098_persstr[] = {0};
+static const unsigned char kat4098_entropyinpr1[] = {
+ 0xf4, 0x1c, 0x70, 0xdf, 0x2d, 0xe4, 0x36, 0xa6, 0xb8, 0x80, 0x32, 0xd2,
+ 0xdd, 0xd9, 0x68, 0x64, 0xf9, 0x8d, 0xd1, 0x59, 0xcf, 0x2b, 0xb0, 0xea,
+ 0xc1, 0x14, 0x12, 0xad, 0x78, 0xb8, 0xd7, 0xe8, 0xb0, 0x66, 0xaf, 0x5b,
+ 0x05, 0x2b, 0x0d, 0xe9, 0xe7, 0xf0, 0xa1, 0xf9, 0x74, 0x5a, 0x61, 0x93,
+};
+static const unsigned char kat4098_addinpr1[] = {
+ 0x8d, 0xda, 0x56, 0x63, 0x81, 0xf0, 0xe0, 0x05, 0x92, 0xf3, 0x9b, 0x2f,
+ 0xb5, 0x58, 0x90, 0x3d, 0xe2, 0x50, 0x7b, 0x28, 0xfe, 0x42, 0xcf, 0xc2,
+ 0x4c, 0x4e, 0xe5, 0x6a, 0x67, 0xd2, 0x7c, 0x1f, 0xeb, 0x54, 0xb5, 0x2e,
+ 0xa2, 0x4e, 0x6f, 0x65, 0x5d, 0x6b, 0x13, 0xc5, 0x5c, 0x0f, 0x00, 0xa9,
+};
+static const unsigned char kat4098_entropyinpr2[] = {
+ 0x32, 0x84, 0x34, 0x3f, 0x4e, 0xd4, 0x0c, 0x8e, 0xe3, 0xfa, 0x73, 0x99,
+ 0x1c, 0xf8, 0xd4, 0xcb, 0x40, 0x53, 0x5e, 0xff, 0x59, 0xad, 0x08, 0xaf,
+ 0x7a, 0xf7, 0xdc, 0xbe, 0x70, 0x00, 0x39, 0x36, 0x15, 0xed, 0x83, 0x7a,
+ 0xef, 0x7c, 0x96, 0x77, 0x26, 0xc6, 0xc9, 0x29, 0x37, 0x06, 0xec, 0x96,
+};
+static const unsigned char kat4098_addinpr2[] = {
+ 0x9f, 0x8f, 0xd2, 0x69, 0x15, 0x4a, 0x00, 0xd8, 0x51, 0xcf, 0x21, 0x59,
+ 0x8a, 0x99, 0x63, 0x39, 0x94, 0x78, 0xd5, 0xed, 0xb9, 0xde, 0x33, 0xfb,
+ 0x54, 0xfd, 0x03, 0xed, 0xf3, 0xcf, 0xcc, 0xc1, 0x8f, 0xf0, 0xb6, 0x5c,
+ 0x41, 0xa5, 0x54, 0x86, 0x74, 0xed, 0xb6, 0x75, 0xdc, 0x0a, 0x67, 0x95,
+};
+static const unsigned char kat4098_retbits[] = {
+ 0xbb, 0xf1, 0x34, 0xfa, 0x70, 0xb8, 0x2f, 0xbc, 0x74, 0xb5, 0x83, 0x0c,
+ 0x5a, 0x9f, 0x1f, 0xff, 0xa0, 0x7d, 0x1d, 0xf7, 0x17, 0xdb, 0x32, 0x34,
+ 0xab, 0xbd, 0xa3, 0x89, 0x7a, 0x0d, 0xea, 0x34, 0x49, 0xa3, 0xb5, 0xe6,
+ 0xff, 0x6d, 0x1b, 0xbf, 0x5a, 0x62, 0xbf, 0x50, 0xb5, 0xed, 0x1d, 0x44,
+ 0x3c, 0x20, 0x41, 0x71, 0x65, 0x6d, 0xa0, 0xd2, 0xa0, 0x21, 0xaf, 0xc3,
+ 0x2e, 0x3d, 0x36, 0xe8,
+};
+static const struct drbg_kat_pr_true kat4098_t = {
+ 2, kat4098_entropyin, kat4098_nonce, kat4098_persstr,
+ kat4098_entropyinpr1, kat4098_addinpr1, kat4098_entropyinpr2,
+ kat4098_addinpr2, kat4098_retbits
+};
+static const struct drbg_kat kat4098 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4098_t
+};
+
+static const unsigned char kat4099_entropyin[] = {
+ 0x68, 0x52, 0x98, 0xd3, 0x28, 0x18, 0xb0, 0x79, 0x0d, 0xb7, 0x10, 0x1c,
+ 0x9b, 0x71, 0x28, 0x40, 0xa2, 0x2b, 0x78, 0xa6, 0x40, 0xe1, 0x8b, 0x5b,
+ 0xb1, 0x61, 0xb6, 0xed, 0x76, 0xa0, 0x2f, 0xf5, 0x8d, 0x8c, 0xf2, 0x1e,
+ 0xc8, 0xbd, 0x53, 0x30, 0x64, 0x9d, 0xef, 0x28, 0x28, 0x75, 0x23, 0xdd,
+};
+static const unsigned char kat4099_nonce[] = {0};
+static const unsigned char kat4099_persstr[] = {0};
+static const unsigned char kat4099_entropyinpr1[] = {
+ 0xe4, 0x60, 0xe8, 0x9f, 0x3e, 0x24, 0x81, 0x6c, 0xd0, 0x34, 0x44, 0x58,
+ 0xf2, 0x49, 0xff, 0xcc, 0xb2, 0xac, 0x0e, 0x83, 0x04, 0x46, 0x14, 0xbe,
+ 0x4e, 0x62, 0x14, 0xbc, 0x67, 0x54, 0x65, 0x2c, 0x7b, 0x91, 0xd9, 0xdb,
+ 0x26, 0xac, 0x82, 0xfe, 0x51, 0x5f, 0x0e, 0x50, 0x76, 0x9d, 0x75, 0x65,
+};
+static const unsigned char kat4099_addinpr1[] = {
+ 0x7f, 0x01, 0xfd, 0x9f, 0x09, 0x5e, 0xb0, 0x91, 0xa7, 0x00, 0xc2, 0xf9,
+ 0xd4, 0x78, 0x52, 0x97, 0xa7, 0x34, 0x04, 0x78, 0x53, 0x79, 0xf5, 0xb5,
+ 0x90, 0xee, 0x3a, 0x5e, 0x24, 0x21, 0xe5, 0x3d, 0xbf, 0xfb, 0xaa, 0xd8,
+ 0x4c, 0x1d, 0xb5, 0xd1, 0x24, 0x16, 0xfd, 0x49, 0x80, 0x3f, 0xfe, 0x76,
+};
+static const unsigned char kat4099_entropyinpr2[] = {
+ 0x5f, 0x49, 0xc5, 0x29, 0x19, 0x6c, 0x6e, 0x04, 0x93, 0x60, 0x20, 0xfe,
+ 0xeb, 0x33, 0x2a, 0xf6, 0x94, 0xd0, 0x8a, 0xdb, 0x2d, 0x3a, 0xb5, 0xa9,
+ 0x3d, 0x35, 0x4b, 0x4e, 0xeb, 0xb8, 0x88, 0x0e, 0xcb, 0xbd, 0xc6, 0x06,
+ 0x33, 0x35, 0x88, 0x37, 0x29, 0xe5, 0x0b, 0x37, 0xa0, 0x2f, 0x0b, 0xe8,
+};
+static const unsigned char kat4099_addinpr2[] = {
+ 0x3d, 0x84, 0x0b, 0x52, 0x46, 0xf2, 0x29, 0x73, 0x97, 0x3c, 0xdf, 0x48,
+ 0xc9, 0x0a, 0xe0, 0xdc, 0xef, 0x5c, 0xbc, 0xef, 0xef, 0xe5, 0x08, 0xe4,
+ 0x6d, 0xee, 0x51, 0xdf, 0x53, 0x5d, 0xf4, 0x37, 0x8c, 0xe3, 0xe5, 0x07,
+ 0x82, 0x6d, 0x4f, 0x2a, 0x67, 0x28, 0xdb, 0xe7, 0xc7, 0x02, 0xcd, 0x01,
+};
+static const unsigned char kat4099_retbits[] = {
+ 0x54, 0xd0, 0xfb, 0x8f, 0x3f, 0xd4, 0x65, 0x16, 0xdd, 0xfb, 0x26, 0x85,
+ 0x56, 0x0d, 0x4c, 0xfe, 0x97, 0x7b, 0xd0, 0x65, 0x9a, 0xf6, 0xbc, 0x00,
+ 0x22, 0x4f, 0xc9, 0x99, 0x44, 0x04, 0x18, 0x7a, 0x12, 0x35, 0xec, 0xa2,
+ 0xde, 0x5d, 0x4e, 0x7e, 0x8f, 0xe6, 0x93, 0xe1, 0xbe, 0xf4, 0xd5, 0x56,
+ 0x15, 0xf4, 0x45, 0x9e, 0xb0, 0x2a, 0x00, 0x9c, 0xea, 0x6e, 0x28, 0xd6,
+ 0x79, 0x0c, 0x0b, 0x83,
+};
+static const struct drbg_kat_pr_true kat4099_t = {
+ 3, kat4099_entropyin, kat4099_nonce, kat4099_persstr,
+ kat4099_entropyinpr1, kat4099_addinpr1, kat4099_entropyinpr2,
+ kat4099_addinpr2, kat4099_retbits
+};
+static const struct drbg_kat kat4099 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4099_t
+};
+
+static const unsigned char kat4100_entropyin[] = {
+ 0xeb, 0xce, 0x52, 0x24, 0x78, 0xe3, 0x70, 0x8b, 0x09, 0xd7, 0xa1, 0xaf,
+ 0x97, 0x03, 0x58, 0x90, 0xe7, 0x73, 0xfa, 0xd0, 0x35, 0x0d, 0x83, 0x6c,
+ 0xba, 0xcd, 0xa5, 0x77, 0x4a, 0x96, 0x19, 0x67, 0xc8, 0x8b, 0x1c, 0x24,
+ 0x90, 0x57, 0x86, 0xd3, 0x64, 0x05, 0x2a, 0xc7, 0x95, 0xdb, 0xa9, 0x97,
+};
+static const unsigned char kat4100_nonce[] = {0};
+static const unsigned char kat4100_persstr[] = {0};
+static const unsigned char kat4100_entropyinpr1[] = {
+ 0x58, 0x40, 0xf1, 0xb8, 0x66, 0x09, 0x55, 0x2d, 0xfb, 0x50, 0x47, 0xb9,
+ 0xf0, 0x53, 0x14, 0x9b, 0xb3, 0xb3, 0x86, 0x77, 0xb3, 0xeb, 0xce, 0x1c,
+ 0x28, 0x0e, 0x2b, 0x99, 0xd6, 0xd2, 0xc6, 0xdc, 0x7e, 0x0a, 0xb7, 0x46,
+ 0x83, 0x3c, 0x5d, 0x6e, 0x5b, 0xb0, 0x8a, 0xa5, 0x72, 0x91, 0xcc, 0xbd,
+};
+static const unsigned char kat4100_addinpr1[] = {
+ 0x07, 0x55, 0x64, 0xaa, 0x76, 0x67, 0x36, 0xe1, 0x71, 0xfb, 0xae, 0x47,
+ 0x85, 0xd4, 0xb9, 0xb1, 0xbc, 0x97, 0xe0, 0xea, 0x77, 0x41, 0x8e, 0xe7,
+ 0xaa, 0x7a, 0x4b, 0xce, 0x18, 0xfe, 0x87, 0x11, 0x33, 0x2e, 0xed, 0x06,
+ 0x40, 0x18, 0x85, 0x01, 0x1e, 0x66, 0x3e, 0x42, 0x94, 0xf5, 0x9b, 0x49,
+};
+static const unsigned char kat4100_entropyinpr2[] = {
+ 0x43, 0x47, 0x91, 0xd1, 0x75, 0xc7, 0x03, 0x6a, 0x1f, 0x44, 0x20, 0x60,
+ 0xdc, 0x81, 0x99, 0x40, 0x48, 0xc7, 0x70, 0x37, 0x27, 0x98, 0xbd, 0x1c,
+ 0x5f, 0x63, 0xaf, 0xa4, 0xb5, 0x4c, 0xeb, 0xbd, 0x17, 0x17, 0x99, 0xce,
+ 0xdc, 0xb3, 0x64, 0xc4, 0x9e, 0x24, 0x9a, 0xf6, 0xe8, 0xfe, 0xa2, 0xa6,
+};
+static const unsigned char kat4100_addinpr2[] = {
+ 0x20, 0xbf, 0x31, 0x91, 0xdd, 0x5e, 0x46, 0xb9, 0x9b, 0x1c, 0x26, 0x4f,
+ 0x0c, 0x35, 0x34, 0xbf, 0xa5, 0xff, 0x96, 0x31, 0xc6, 0xb0, 0xff, 0xc1,
+ 0xab, 0xa6, 0x5d, 0x85, 0x8d, 0x3b, 0xa5, 0x73, 0x09, 0x05, 0xe1, 0xa0,
+ 0xa0, 0xda, 0x28, 0x99, 0x59, 0xfa, 0x43, 0x82, 0xe5, 0x61, 0x95, 0x37,
+};
+static const unsigned char kat4100_retbits[] = {
+ 0xd7, 0xb7, 0x22, 0xae, 0xbe, 0xbb, 0x06, 0x49, 0x0d, 0x5a, 0x71, 0x35,
+ 0x35, 0x12, 0x81, 0xb8, 0x2c, 0x6e, 0xcb, 0x34, 0xdd, 0x03, 0x6f, 0xbb,
+ 0xc8, 0x9f, 0x94, 0x0b, 0x73, 0xc6, 0x0f, 0x73, 0x0e, 0x0e, 0x3a, 0xff,
+ 0xcd, 0x3c, 0xde, 0x85, 0x4c, 0xea, 0xf6, 0x70, 0xa6, 0xbd, 0x35, 0x5c,
+ 0xdf, 0x39, 0xe1, 0x17, 0x20, 0x29, 0x2e, 0xb7, 0x91, 0x92, 0x3e, 0x3e,
+ 0x97, 0x35, 0x8a, 0x83,
+};
+static const struct drbg_kat_pr_true kat4100_t = {
+ 4, kat4100_entropyin, kat4100_nonce, kat4100_persstr,
+ kat4100_entropyinpr1, kat4100_addinpr1, kat4100_entropyinpr2,
+ kat4100_addinpr2, kat4100_retbits
+};
+static const struct drbg_kat kat4100 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4100_t
+};
+
+static const unsigned char kat4101_entropyin[] = {
+ 0xde, 0xef, 0x73, 0xc8, 0xbc, 0x87, 0x18, 0x1e, 0xab, 0x0e, 0x44, 0x8f,
+ 0x4a, 0x30, 0x10, 0xc4, 0x83, 0x0b, 0x65, 0xc6, 0x16, 0x63, 0x2f, 0x6d,
+ 0xec, 0x91, 0x0a, 0x11, 0xa2, 0x06, 0x1b, 0x03, 0xc1, 0x62, 0x10, 0x4a,
+ 0xa6, 0xd0, 0x60, 0x90, 0xc2, 0x58, 0x15, 0x22, 0xee, 0x4f, 0xe3, 0x65,
+};
+static const unsigned char kat4101_nonce[] = {0};
+static const unsigned char kat4101_persstr[] = {0};
+static const unsigned char kat4101_entropyinpr1[] = {
+ 0x1f, 0x61, 0xa2, 0xae, 0x14, 0x70, 0xb9, 0xa7, 0x3a, 0x0a, 0x86, 0xef,
+ 0x94, 0xe6, 0xd5, 0xe2, 0x71, 0x5e, 0xdd, 0x36, 0xf2, 0x3c, 0x84, 0x41,
+ 0xcd, 0x00, 0x75, 0xa4, 0x1f, 0xc1, 0xe5, 0xd9, 0x5b, 0xeb, 0x6c, 0x5b,
+ 0x9b, 0x68, 0xfe, 0x8d, 0x5d, 0x27, 0x00, 0x56, 0xbf, 0x46, 0x60, 0xdb,
+};
+static const unsigned char kat4101_addinpr1[] = {
+ 0x91, 0xe3, 0x57, 0x07, 0x2a, 0x50, 0xc7, 0x5b, 0x61, 0xa4, 0x91, 0xe3,
+ 0x99, 0xf1, 0x16, 0x18, 0xf6, 0xea, 0x97, 0x06, 0xe5, 0x89, 0x3c, 0xce,
+ 0xd1, 0xd8, 0xbf, 0xde, 0xac, 0xc7, 0x28, 0x05, 0xfb, 0x71, 0x82, 0xf3,
+ 0xf3, 0x50, 0x20, 0x2f, 0xa1, 0xad, 0x11, 0xa5, 0x02, 0x45, 0x50, 0xc0,
+};
+static const unsigned char kat4101_entropyinpr2[] = {
+ 0x54, 0x24, 0x94, 0xc8, 0x31, 0xe8, 0x41, 0x76, 0x3d, 0x96, 0x9f, 0x9b,
+ 0x13, 0xe7, 0x11, 0x9d, 0xac, 0xc7, 0xa7, 0xb8, 0x03, 0xf4, 0x57, 0x17,
+ 0x1b, 0xa8, 0x32, 0xbb, 0x88, 0xe7, 0xe7, 0x59, 0x73, 0xf0, 0xca, 0xd6,
+ 0x82, 0x05, 0x3d, 0xeb, 0x58, 0x93, 0x75, 0x74, 0x3e, 0x87, 0x29, 0x00,
+};
+static const unsigned char kat4101_addinpr2[] = {
+ 0xe1, 0x82, 0x1a, 0xac, 0xa6, 0xda, 0x73, 0xb2, 0x7d, 0xcf, 0xea, 0x54,
+ 0x54, 0x80, 0x52, 0x63, 0x17, 0x31, 0x47, 0xce, 0x42, 0xa8, 0xd2, 0xdb,
+ 0xcf, 0x5a, 0x61, 0xe6, 0xae, 0xd8, 0xe4, 0x92, 0xba, 0x7a, 0xed, 0xb4,
+ 0xe4, 0xd5, 0xbc, 0x0c, 0x5d, 0xc8, 0x4f, 0xf6, 0x9b, 0x42, 0x2d, 0x58,
+};
+static const unsigned char kat4101_retbits[] = {
+ 0xdc, 0x46, 0x2a, 0xa9, 0x76, 0xf7, 0x3e, 0x05, 0xb9, 0xf7, 0x34, 0xae,
+ 0x17, 0xdb, 0xe2, 0xef, 0xee, 0x06, 0x0e, 0xf8, 0xd5, 0xfd, 0x31, 0x74,
+ 0x0f, 0x34, 0x0c, 0x26, 0x53, 0xe3, 0x2a, 0x7e, 0x66, 0xd2, 0x2b, 0x89,
+ 0x4e, 0xdc, 0x4b, 0x19, 0x5a, 0x07, 0xd9, 0x0b, 0xe3, 0x64, 0xbd, 0x9e,
+ 0xee, 0x1c, 0xc1, 0x88, 0x5b, 0x91, 0x12, 0x0a, 0x75, 0x65, 0x46, 0x08,
+ 0x7f, 0x03, 0xb7, 0x59,
+};
+static const struct drbg_kat_pr_true kat4101_t = {
+ 5, kat4101_entropyin, kat4101_nonce, kat4101_persstr,
+ kat4101_entropyinpr1, kat4101_addinpr1, kat4101_entropyinpr2,
+ kat4101_addinpr2, kat4101_retbits
+};
+static const struct drbg_kat kat4101 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4101_t
+};
+
+static const unsigned char kat4102_entropyin[] = {
+ 0x40, 0x49, 0x6b, 0x31, 0xf3, 0x21, 0x82, 0x00, 0xd8, 0x44, 0x55, 0x2b,
+ 0x0e, 0x07, 0x6e, 0x9d, 0xf0, 0xa1, 0xbc, 0xc0, 0xf4, 0x0d, 0x4f, 0xe3,
+ 0xc0, 0xaf, 0x0d, 0xea, 0xe4, 0x4e, 0x2f, 0x82, 0x33, 0xff, 0x95, 0x2b,
+ 0x29, 0x23, 0x54, 0xcc, 0x25, 0xb1, 0x7e, 0xd0, 0xd1, 0xf8, 0x7f, 0x55,
+};
+static const unsigned char kat4102_nonce[] = {0};
+static const unsigned char kat4102_persstr[] = {0};
+static const unsigned char kat4102_entropyinpr1[] = {
+ 0x83, 0x14, 0x7a, 0xc1, 0xae, 0xc7, 0xb0, 0xec, 0x82, 0x39, 0x0e, 0xb1,
+ 0x9a, 0x64, 0x31, 0x49, 0xf9, 0xdd, 0xda, 0x1a, 0xb6, 0x83, 0x34, 0xdd,
+ 0xb5, 0xa8, 0xdb, 0x64, 0xed, 0x48, 0x39, 0xce, 0xe4, 0x88, 0x01, 0x1a,
+ 0x0a, 0x1c, 0x34, 0xa6, 0xe2, 0x22, 0xee, 0x5e, 0xd7, 0x50, 0x72, 0x72,
+};
+static const unsigned char kat4102_addinpr1[] = {
+ 0xb9, 0x7c, 0x0c, 0xab, 0x1f, 0x60, 0xee, 0xa1, 0xb4, 0x41, 0x76, 0xd8,
+ 0x56, 0x88, 0x3e, 0xf4, 0xe4, 0x4e, 0x68, 0x93, 0xdb, 0x79, 0x22, 0x06,
+ 0xdc, 0xc7, 0x1a, 0x77, 0xef, 0xf4, 0x34, 0xac, 0x18, 0xfa, 0xbd, 0x3e,
+ 0xa4, 0xc2, 0x93, 0xd5, 0x1c, 0x0d, 0xc4, 0x06, 0x55, 0x71, 0x83, 0xab,
+};
+static const unsigned char kat4102_entropyinpr2[] = {
+ 0x9b, 0xff, 0x44, 0x5e, 0x46, 0xb4, 0xb9, 0x21, 0xca, 0xdb, 0xab, 0xec,
+ 0xda, 0xb1, 0xd2, 0x9b, 0x40, 0x47, 0x7e, 0x48, 0xa7, 0x11, 0xcb, 0xa5,
+ 0x64, 0x7c, 0xc7, 0x9a, 0xbf, 0xc5, 0x2f, 0xe0, 0xf1, 0xb7, 0xdc, 0x3c,
+ 0x93, 0x1a, 0xd5, 0x4a, 0x24, 0x7a, 0x66, 0xd6, 0xbe, 0xbc, 0x0d, 0x54,
+};
+static const unsigned char kat4102_addinpr2[] = {
+ 0xec, 0x41, 0x34, 0xaf, 0x36, 0x32, 0x78, 0x04, 0xae, 0x3a, 0x41, 0x42,
+ 0xd4, 0x98, 0x48, 0x24, 0x53, 0xee, 0xe1, 0x70, 0xf8, 0xd7, 0xc6, 0x21,
+ 0xc0, 0x05, 0x6e, 0xb4, 0x0c, 0x53, 0x81, 0x6b, 0x38, 0xe1, 0x2d, 0xc6,
+ 0xd6, 0xa2, 0xf6, 0x90, 0xec, 0x4f, 0xd3, 0xa0, 0x7c, 0x13, 0xee, 0x10,
+};
+static const unsigned char kat4102_retbits[] = {
+ 0x2e, 0x4d, 0xf6, 0x67, 0xd9, 0x77, 0x8b, 0x97, 0x18, 0xa0, 0xa0, 0x25,
+ 0xf6, 0x12, 0xdc, 0x57, 0x47, 0x62, 0x85, 0x7b, 0xc7, 0x0b, 0x11, 0x20,
+ 0x62, 0x21, 0xcc, 0x28, 0xe2, 0xed, 0xe4, 0x62, 0xcf, 0x8e, 0xd4, 0xe0,
+ 0x5f, 0xd5, 0xca, 0x0f, 0x4f, 0x7c, 0x75, 0x98, 0xfa, 0x91, 0xec, 0x4f,
+ 0x03, 0xdf, 0x8c, 0xeb, 0xbd, 0x8c, 0x6c, 0x07, 0x8b, 0xfa, 0xcb, 0x0e,
+ 0x72, 0x83, 0xff, 0x34,
+};
+static const struct drbg_kat_pr_true kat4102_t = {
+ 6, kat4102_entropyin, kat4102_nonce, kat4102_persstr,
+ kat4102_entropyinpr1, kat4102_addinpr1, kat4102_entropyinpr2,
+ kat4102_addinpr2, kat4102_retbits
+};
+static const struct drbg_kat kat4102 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4102_t
+};
+
+static const unsigned char kat4103_entropyin[] = {
+ 0x9c, 0x2a, 0x30, 0xf6, 0xce, 0x80, 0xf9, 0x24, 0xc8, 0xd3, 0x8d, 0x68,
+ 0xa7, 0xb3, 0xc5, 0xf0, 0xc6, 0x19, 0xa4, 0x66, 0xd7, 0x15, 0x9a, 0x3b,
+ 0x76, 0xa9, 0xdc, 0xdd, 0x74, 0x21, 0x87, 0x1d, 0xff, 0x73, 0x8f, 0x80,
+ 0xb8, 0xe7, 0x7f, 0x1b, 0xae, 0xce, 0xf8, 0x47, 0x77, 0xc0, 0x01, 0x6e,
+};
+static const unsigned char kat4103_nonce[] = {0};
+static const unsigned char kat4103_persstr[] = {0};
+static const unsigned char kat4103_entropyinpr1[] = {
+ 0x08, 0x26, 0x76, 0xfa, 0x9f, 0x61, 0xc8, 0xb0, 0xf0, 0x04, 0xa0, 0x0d,
+ 0x30, 0xf4, 0x8b, 0xd3, 0x64, 0xe0, 0xee, 0x4f, 0xa3, 0xf3, 0xba, 0xde,
+ 0x4f, 0xdf, 0xa7, 0xd4, 0x7f, 0x2e, 0xf6, 0x93, 0x3d, 0x23, 0x71, 0x31,
+ 0x1e, 0x27, 0x5e, 0x9e, 0x02, 0xbb, 0xc5, 0xd2, 0x0a, 0x21, 0x0d, 0x6a,
+};
+static const unsigned char kat4103_addinpr1[] = {
+ 0xd6, 0xab, 0x56, 0xb1, 0xa1, 0x04, 0x9c, 0x40, 0x9a, 0x4c, 0x5d, 0xd0,
+ 0x7f, 0xb8, 0xac, 0xa0, 0x76, 0xb7, 0x73, 0x89, 0xe4, 0x4a, 0xc4, 0x9f,
+ 0x44, 0x56, 0xaf, 0xb7, 0x82, 0xef, 0xc1, 0x28, 0xcd, 0x4f, 0x27, 0xe6,
+ 0x16, 0xa0, 0xfb, 0x9b, 0x73, 0xf3, 0x59, 0xcc, 0xc6, 0xca, 0x89, 0x3a,
+};
+static const unsigned char kat4103_entropyinpr2[] = {
+ 0x94, 0x2f, 0xd3, 0xf0, 0xb8, 0xed, 0xf1, 0xad, 0x60, 0x69, 0x36, 0xbc,
+ 0x5f, 0x00, 0xb5, 0x5d, 0xc0, 0x15, 0x5a, 0xa1, 0xbc, 0x69, 0xc7, 0xa8,
+ 0xe6, 0x1d, 0xfb, 0x9e, 0xe5, 0x1d, 0x3c, 0x3e, 0x5e, 0xa8, 0xa9, 0x3f,
+ 0x3c, 0x68, 0x8b, 0x1e, 0x81, 0xfa, 0xc5, 0xcd, 0x01, 0xb4, 0xa4, 0xc1,
+};
+static const unsigned char kat4103_addinpr2[] = {
+ 0x90, 0xde, 0x48, 0xbc, 0x64, 0xda, 0x62, 0x86, 0x1d, 0xf4, 0x73, 0x15,
+ 0xf2, 0x38, 0xa2, 0xbf, 0xa8, 0x9b, 0xe8, 0x04, 0x0a, 0x02, 0xb9, 0xfc,
+ 0x61, 0xcd, 0x6d, 0xcc, 0xcd, 0xdf, 0x58, 0x88, 0xcf, 0x77, 0x6f, 0xa4,
+ 0x3e, 0x72, 0xb0, 0x3c, 0x0a, 0x11, 0x20, 0x9f, 0x26, 0x04, 0xbd, 0x7e,
+};
+static const unsigned char kat4103_retbits[] = {
+ 0xdc, 0xbc, 0xbc, 0x30, 0x12, 0xd5, 0xbb, 0x17, 0x19, 0x13, 0x0d, 0x29,
+ 0x81, 0xf4, 0xd2, 0xcd, 0x64, 0x06, 0x11, 0x62, 0xf2, 0xf0, 0x55, 0xa2,
+ 0x73, 0x88, 0xbc, 0xd9, 0xc3, 0x6e, 0x2a, 0x7c, 0x6b, 0xe1, 0x7b, 0x04,
+ 0xc7, 0x0f, 0x02, 0x41, 0x4d, 0xea, 0x72, 0xd4, 0x74, 0xc2, 0xf0, 0xc9,
+ 0x6e, 0x4a, 0xe2, 0x55, 0xac, 0x3f, 0x36, 0x79, 0x7c, 0x53, 0xd1, 0x88,
+ 0x6a, 0x1b, 0x03, 0xf3,
+};
+static const struct drbg_kat_pr_true kat4103_t = {
+ 7, kat4103_entropyin, kat4103_nonce, kat4103_persstr,
+ kat4103_entropyinpr1, kat4103_addinpr1, kat4103_entropyinpr2,
+ kat4103_addinpr2, kat4103_retbits
+};
+static const struct drbg_kat kat4103 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4103_t
+};
+
+static const unsigned char kat4104_entropyin[] = {
+ 0x93, 0x62, 0xde, 0x1a, 0xbb, 0x49, 0xe4, 0xb7, 0xcd, 0x5f, 0x27, 0xe7,
+ 0x0f, 0xa1, 0x8c, 0x40, 0x91, 0x61, 0xf1, 0x82, 0x29, 0x87, 0xf2, 0x3a,
+ 0xca, 0x6f, 0x1e, 0xf5, 0x8d, 0x08, 0x10, 0x80, 0x75, 0xcb, 0x13, 0xab,
+ 0x81, 0x8c, 0x0a, 0x2b, 0x5e, 0xa7, 0x41, 0xcf, 0x9d, 0x4b, 0x21, 0x74,
+};
+static const unsigned char kat4104_nonce[] = {0};
+static const unsigned char kat4104_persstr[] = {0};
+static const unsigned char kat4104_entropyinpr1[] = {
+ 0xbc, 0x6f, 0xb8, 0xb7, 0xa1, 0x0b, 0x6b, 0xaa, 0xaa, 0xb5, 0x8c, 0x16,
+ 0x7a, 0x3f, 0x33, 0x05, 0x8d, 0xb1, 0xe5, 0xea, 0x90, 0xf6, 0xaa, 0xc7,
+ 0xaf, 0x10, 0x0c, 0x03, 0xc5, 0xaa, 0x12, 0x0c, 0x33, 0x30, 0xde, 0x7d,
+ 0xf1, 0x6e, 0x12, 0x07, 0x6e, 0xcd, 0x68, 0x14, 0x98, 0x40, 0xa1, 0xfb,
+};
+static const unsigned char kat4104_addinpr1[] = {
+ 0x58, 0x6f, 0xb1, 0x84, 0xb4, 0x7e, 0x1a, 0x98, 0x39, 0x91, 0xac, 0x64,
+ 0x58, 0xba, 0x02, 0xd2, 0x7b, 0x92, 0x58, 0x16, 0x0a, 0xcb, 0x4e, 0xf0,
+ 0x1a, 0xcb, 0x95, 0x0f, 0x9d, 0xa7, 0x80, 0xd8, 0xfc, 0x9b, 0xdc, 0x69,
+ 0x0f, 0x92, 0x13, 0x5f, 0x53, 0xb0, 0xd5, 0x19, 0xb2, 0x11, 0xc4, 0x0b,
+};
+static const unsigned char kat4104_entropyinpr2[] = {
+ 0xe7, 0xa6, 0x83, 0xec, 0x66, 0x1a, 0xf9, 0x7e, 0x2d, 0xf1, 0xc5, 0x99,
+ 0xcc, 0x13, 0x01, 0x14, 0xa7, 0xbb, 0xa9, 0xe2, 0x8f, 0xb3, 0x2e, 0xd8,
+ 0xc0, 0x53, 0x11, 0x69, 0xc7, 0x57, 0xb2, 0xcf, 0xde, 0x39, 0xef, 0xaf,
+ 0xd1, 0x44, 0xde, 0x42, 0x17, 0x4b, 0x46, 0x91, 0x9f, 0x77, 0x37, 0xe1,
+};
+static const unsigned char kat4104_addinpr2[] = {
+ 0x04, 0x71, 0x01, 0xcf, 0xc7, 0x52, 0x50, 0xcb, 0x55, 0xed, 0x8b, 0x09,
+ 0xbd, 0x4e, 0x83, 0x88, 0x06, 0x0e, 0xc0, 0xaf, 0xa8, 0x95, 0x27, 0xa5,
+ 0x57, 0xac, 0x36, 0xc1, 0x17, 0x69, 0x2e, 0x3e, 0xfd, 0x60, 0x3e, 0x3f,
+ 0x46, 0x44, 0x16, 0xd4, 0x36, 0xb4, 0x1a, 0xfa, 0x05, 0xac, 0xdf, 0xee,
+};
+static const unsigned char kat4104_retbits[] = {
+ 0xd8, 0x79, 0x68, 0x57, 0x54, 0xc7, 0xd3, 0x48, 0x3f, 0x60, 0x15, 0xf6,
+ 0x81, 0x8b, 0xa6, 0xb5, 0x8b, 0xb3, 0x81, 0x59, 0x21, 0xff, 0x31, 0xbd,
+ 0x24, 0x4a, 0x9a, 0x03, 0x49, 0x05, 0xb6, 0x0e, 0x48, 0x34, 0xfe, 0x6e,
+ 0x7e, 0x05, 0x68, 0x43, 0x8b, 0xf0, 0x19, 0x1e, 0xad, 0xda, 0x9c, 0x84,
+ 0x93, 0xdc, 0x90, 0x02, 0x34, 0x24, 0xdb, 0x9b, 0xc4, 0x2a, 0xcf, 0x68,
+ 0x2a, 0xac, 0x9f, 0x92,
+};
+static const struct drbg_kat_pr_true kat4104_t = {
+ 8, kat4104_entropyin, kat4104_nonce, kat4104_persstr,
+ kat4104_entropyinpr1, kat4104_addinpr1, kat4104_entropyinpr2,
+ kat4104_addinpr2, kat4104_retbits
+};
+static const struct drbg_kat kat4104 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4104_t
+};
+
+static const unsigned char kat4105_entropyin[] = {
+ 0x64, 0x0f, 0xfb, 0x8c, 0xbb, 0x51, 0xd9, 0x1b, 0xc5, 0x61, 0x97, 0x99,
+ 0xc3, 0x77, 0x75, 0x19, 0x07, 0xf4, 0x49, 0x92, 0xea, 0x7c, 0x3b, 0x4f,
+ 0xe5, 0xe2, 0xe4, 0x7a, 0x00, 0x0e, 0xe7, 0xd4, 0xde, 0xf1, 0x38, 0x8f,
+ 0x0f, 0x51, 0x10, 0x4e, 0x4f, 0xa6, 0x8e, 0x9e, 0xbe, 0x8d, 0xc9, 0x22,
+};
+static const unsigned char kat4105_nonce[] = {0};
+static const unsigned char kat4105_persstr[] = {0};
+static const unsigned char kat4105_entropyinpr1[] = {
+ 0x68, 0x7f, 0x98, 0xb7, 0xa3, 0xff, 0x9e, 0x1f, 0x93, 0xe3, 0x1d, 0xea,
+ 0xcb, 0x1b, 0xc5, 0xb5, 0x8c, 0x65, 0xdd, 0x93, 0x1a, 0x04, 0xec, 0xca,
+ 0xa9, 0x7a, 0x5b, 0x87, 0xec, 0xfc, 0xc0, 0xce, 0x6e, 0xec, 0x24, 0xe2,
+ 0xa9, 0xaa, 0xd6, 0xad, 0x42, 0x85, 0xb3, 0x43, 0x50, 0xed, 0x8e, 0xf4,
+};
+static const unsigned char kat4105_addinpr1[] = {
+ 0xe0, 0xcf, 0x8b, 0xd9, 0x50, 0x00, 0xb6, 0xe5, 0xd5, 0x42, 0xdb, 0x09,
+ 0x1a, 0xc5, 0x64, 0x02, 0xab, 0x24, 0x95, 0x7f, 0x97, 0xf4, 0x09, 0xbf,
+ 0x55, 0xcc, 0x69, 0x44, 0x92, 0xa6, 0xa9, 0x8a, 0xdb, 0xc5, 0xf4, 0xb3,
+ 0x57, 0x84, 0x65, 0x8b, 0x97, 0xc3, 0x22, 0xbd, 0x72, 0xf2, 0xfc, 0x6b,
+};
+static const unsigned char kat4105_entropyinpr2[] = {
+ 0x30, 0xc3, 0xc1, 0x7c, 0x8b, 0xd9, 0x38, 0xeb, 0x12, 0x5c, 0x74, 0x38,
+ 0xf3, 0x88, 0xd4, 0x40, 0x82, 0xba, 0xba, 0x17, 0xb3, 0xcf, 0xbb, 0x65,
+ 0x92, 0x97, 0x21, 0xb0, 0x3f, 0x79, 0xa7, 0x60, 0xca, 0xdc, 0x8e, 0xb2,
+ 0x0b, 0x11, 0x0a, 0x3a, 0xeb, 0xb9, 0xec, 0x68, 0x02, 0xc7, 0x23, 0xdc,
+};
+static const unsigned char kat4105_addinpr2[] = {
+ 0x00, 0xf1, 0x03, 0xed, 0xa5, 0x96, 0x92, 0x23, 0x2b, 0xc1, 0xab, 0x5a,
+ 0xb3, 0x26, 0xbc, 0xae, 0x88, 0x31, 0x71, 0x9b, 0x79, 0x03, 0x69, 0x89,
+ 0xf7, 0xed, 0xfb, 0xf8, 0x40, 0x85, 0x10, 0x6e, 0x30, 0xf4, 0x08, 0x9d,
+ 0xaa, 0x3b, 0x3c, 0xba, 0x5a, 0x37, 0x85, 0x20, 0x9d, 0xd3, 0x2f, 0xe8,
+};
+static const unsigned char kat4105_retbits[] = {
+ 0x50, 0xaf, 0x8e, 0xc8, 0xe4, 0x12, 0x94, 0x85, 0x68, 0xc5, 0x49, 0xe8,
+ 0xd0, 0x22, 0xfc, 0x3e, 0xa9, 0xe0, 0xb6, 0xa3, 0x78, 0x1a, 0x95, 0xeb,
+ 0x0e, 0x96, 0x55, 0xdd, 0x76, 0xec, 0xe0, 0x3c, 0x4a, 0x59, 0x94, 0x24,
+ 0xca, 0x22, 0x56, 0x44, 0xbf, 0x25, 0xf0, 0x5d, 0xdf, 0x8e, 0x01, 0x73,
+ 0x34, 0x27, 0x1d, 0xf9, 0x2b, 0xff, 0x5a, 0x7c, 0x56, 0x41, 0x4b, 0x73,
+ 0xbc, 0xe1, 0x39, 0xe9,
+};
+static const struct drbg_kat_pr_true kat4105_t = {
+ 9, kat4105_entropyin, kat4105_nonce, kat4105_persstr,
+ kat4105_entropyinpr1, kat4105_addinpr1, kat4105_entropyinpr2,
+ kat4105_addinpr2, kat4105_retbits
+};
+static const struct drbg_kat kat4105 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4105_t
+};
+
+static const unsigned char kat4106_entropyin[] = {
+ 0xf6, 0x84, 0x95, 0x1c, 0x09, 0xea, 0x9e, 0x56, 0x23, 0x42, 0x57, 0xd2,
+ 0xd0, 0xd0, 0xe1, 0x88, 0x83, 0x05, 0xc9, 0x35, 0xd3, 0xa3, 0xef, 0xb4,
+ 0x9f, 0x13, 0xe3, 0xe0, 0x96, 0x3e, 0x01, 0xe1, 0x26, 0xb6, 0x30, 0x8e,
+ 0xd4, 0x16, 0xe8, 0xbe, 0x07, 0xc0, 0xf0, 0xf3, 0x70, 0x8d, 0x6b, 0x2f,
+};
+static const unsigned char kat4106_nonce[] = {0};
+static const unsigned char kat4106_persstr[] = {0};
+static const unsigned char kat4106_entropyinpr1[] = {
+ 0x9b, 0xaa, 0x62, 0x29, 0x6b, 0xa9, 0xa4, 0xc3, 0x78, 0x9e, 0x50, 0x17,
+ 0x79, 0x88, 0x3a, 0xcf, 0x24, 0x7f, 0x4d, 0x50, 0x97, 0x21, 0xff, 0xf5,
+ 0x71, 0x3e, 0xcd, 0x8b, 0x13, 0x75, 0xdf, 0xb3, 0x91, 0x92, 0x88, 0x98,
+ 0x93, 0x85, 0xa0, 0xd9, 0x01, 0x47, 0xca, 0x23, 0x91, 0xa2, 0x9d, 0xcb,
+};
+static const unsigned char kat4106_addinpr1[] = {
+ 0xb6, 0x06, 0x07, 0x95, 0xe8, 0x6b, 0xb3, 0x17, 0x19, 0x7d, 0xea, 0x21,
+ 0x39, 0x68, 0xbe, 0xcb, 0xdd, 0xbc, 0x97, 0x73, 0x87, 0x14, 0x37, 0xf5,
+ 0xa5, 0x16, 0x82, 0x6f, 0xb6, 0xe6, 0x66, 0x38, 0x85, 0x84, 0xd2, 0xdd,
+ 0xf8, 0xcf, 0xdf, 0xdc, 0x95, 0xce, 0x19, 0x6b, 0x9b, 0x27, 0x36, 0x65,
+};
+static const unsigned char kat4106_entropyinpr2[] = {
+ 0x55, 0x0e, 0x27, 0xa6, 0x0b, 0x21, 0x1c, 0x62, 0xb4, 0x49, 0x99, 0xf2,
+ 0xa5, 0xc3, 0xb5, 0x4e, 0x14, 0xbe, 0xc9, 0xae, 0x7a, 0xa3, 0x8c, 0xbd,
+ 0xe4, 0xb5, 0x6b, 0x4f, 0xf5, 0x58, 0x43, 0xa0, 0x4a, 0xa9, 0x6d, 0x4f,
+ 0x38, 0xa0, 0x32, 0x37, 0x1c, 0x00, 0x3a, 0xfd, 0x0e, 0xb5, 0xd8, 0xc9,
+};
+static const unsigned char kat4106_addinpr2[] = {
+ 0x8d, 0xf4, 0xb5, 0x49, 0x04, 0x51, 0xa9, 0x15, 0x5d, 0x14, 0x9c, 0xc2,
+ 0x11, 0x4b, 0x50, 0xaf, 0x36, 0x7f, 0xdd, 0xe0, 0x49, 0x2b, 0x24, 0xfb,
+ 0x04, 0x28, 0xe9, 0x0b, 0xb1, 0x25, 0x15, 0x89, 0x4a, 0xef, 0x8f, 0xa1,
+ 0xa5, 0xba, 0xd2, 0x6b, 0x35, 0x58, 0x2c, 0xe6, 0x82, 0xa5, 0xc1, 0xd6,
+};
+static const unsigned char kat4106_retbits[] = {
+ 0xb6, 0xe2, 0xf2, 0xc9, 0xff, 0x2c, 0x9f, 0x00, 0x74, 0xfa, 0x2a, 0x52,
+ 0xbd, 0xc2, 0xe9, 0x46, 0x04, 0x29, 0xf2, 0x92, 0x27, 0xa6, 0x22, 0x14,
+ 0xe5, 0x37, 0x46, 0x81, 0x61, 0x69, 0x79, 0xf6, 0x09, 0x23, 0x5f, 0x21,
+ 0xc7, 0xe3, 0x35, 0x47, 0x1b, 0x48, 0x35, 0x1d, 0x13, 0x5d, 0xdf, 0x97,
+ 0xe4, 0x1e, 0x7f, 0x88, 0x3f, 0x65, 0xcb, 0xe1, 0x7c, 0x8b, 0xe8, 0xa2,
+ 0x62, 0xc9, 0x41, 0x6a,
+};
+static const struct drbg_kat_pr_true kat4106_t = {
+ 10, kat4106_entropyin, kat4106_nonce, kat4106_persstr,
+ kat4106_entropyinpr1, kat4106_addinpr1, kat4106_entropyinpr2,
+ kat4106_addinpr2, kat4106_retbits
+};
+static const struct drbg_kat kat4106 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4106_t
+};
+
+static const unsigned char kat4107_entropyin[] = {
+ 0xcb, 0x5f, 0x31, 0xd3, 0xd0, 0xf3, 0x1a, 0x40, 0x71, 0x54, 0x65, 0x5a,
+ 0x07, 0xe1, 0x00, 0xfb, 0x31, 0xda, 0xa1, 0x90, 0xf8, 0xcd, 0x98, 0x61,
+ 0x13, 0xa9, 0xbb, 0xbb, 0x82, 0xac, 0x81, 0xf7, 0x25, 0xf2, 0x51, 0xe0,
+ 0x9d, 0xd5, 0xb4, 0x35, 0x35, 0x97, 0x10, 0x06, 0x2a, 0x37, 0x60, 0x42,
+};
+static const unsigned char kat4107_nonce[] = {0};
+static const unsigned char kat4107_persstr[] = {0};
+static const unsigned char kat4107_entropyinpr1[] = {
+ 0x7b, 0xf5, 0x76, 0xe1, 0x88, 0xbe, 0xd3, 0x1b, 0x17, 0xe7, 0xb9, 0x61,
+ 0x23, 0x67, 0x58, 0xde, 0xd2, 0xc2, 0xad, 0xf4, 0xc1, 0x70, 0xe8, 0xbc,
+ 0x79, 0xed, 0x6c, 0x12, 0x21, 0xc9, 0x96, 0xb2, 0x55, 0x91, 0xa6, 0xa2,
+ 0x10, 0x9a, 0xcb, 0xba, 0x0a, 0x3d, 0x19, 0x14, 0x22, 0xdb, 0xeb, 0x7e,
+};
+static const unsigned char kat4107_addinpr1[] = {
+ 0x7f, 0x56, 0x3d, 0x65, 0x41, 0xdf, 0x7e, 0x40, 0xd7, 0xe5, 0x6e, 0x92,
+ 0x56, 0xf9, 0x52, 0x3a, 0xd3, 0xb8, 0x79, 0xa8, 0x01, 0x53, 0xcf, 0x06,
+ 0xbe, 0x36, 0x15, 0x8f, 0xe8, 0xdc, 0xa5, 0x78, 0xbd, 0x2c, 0x82, 0xc0,
+ 0x21, 0x84, 0x7a, 0x79, 0x1e, 0xcc, 0x8b, 0x41, 0x82, 0x31, 0x79, 0xe9,
+};
+static const unsigned char kat4107_entropyinpr2[] = {
+ 0x38, 0x6d, 0x3f, 0xa4, 0x04, 0xbf, 0xe6, 0xc2, 0xca, 0xc3, 0x90, 0x6c,
+ 0xdd, 0x95, 0x0a, 0x60, 0xe4, 0x90, 0x8a, 0xe9, 0x8d, 0xfd, 0xcb, 0xf5,
+ 0xee, 0x27, 0x2f, 0x70, 0x96, 0x0c, 0xad, 0x26, 0x0b, 0xe5, 0x6f, 0x45,
+ 0xe5, 0xcf, 0x84, 0x03, 0x20, 0x1b, 0x8c, 0xf9, 0x66, 0x00, 0x5c, 0xae,
+};
+static const unsigned char kat4107_addinpr2[] = {
+ 0xcb, 0xaa, 0x95, 0x33, 0xb8, 0xa0, 0x63, 0x5a, 0xc6, 0xc1, 0xa3, 0x21,
+ 0xa7, 0x58, 0x27, 0xce, 0x36, 0xdb, 0x60, 0xd1, 0xaf, 0x18, 0xf3, 0x79,
+ 0x31, 0x9a, 0xee, 0x0e, 0x5d, 0xed, 0xc7, 0xfd, 0x29, 0x90, 0xe4, 0xe4,
+ 0xc7, 0x78, 0x74, 0xc4, 0x21, 0xcc, 0xb2, 0x35, 0x23, 0x5d, 0x27, 0xc1,
+};
+static const unsigned char kat4107_retbits[] = {
+ 0xf0, 0xf7, 0xa7, 0xa3, 0x85, 0xc7, 0x9e, 0xff, 0xf7, 0x1b, 0x6b, 0x89,
+ 0x25, 0x55, 0x18, 0x4c, 0x8e, 0x33, 0x31, 0x37, 0x8b, 0x67, 0x0e, 0x3e,
+ 0x26, 0xa3, 0x11, 0xe0, 0x56, 0xb3, 0x8c, 0x96, 0x33, 0x5b, 0x4c, 0xdf,
+ 0x9e, 0x70, 0x33, 0x18, 0x8f, 0x33, 0xee, 0x0c, 0x41, 0x13, 0x40, 0xe9,
+ 0xfb, 0x1a, 0xe6, 0x40, 0x60, 0x97, 0xe6, 0x5b, 0x85, 0x91, 0x7d, 0x8d,
+ 0xda, 0xea, 0x87, 0x0d,
+};
+static const struct drbg_kat_pr_true kat4107_t = {
+ 11, kat4107_entropyin, kat4107_nonce, kat4107_persstr,
+ kat4107_entropyinpr1, kat4107_addinpr1, kat4107_entropyinpr2,
+ kat4107_addinpr2, kat4107_retbits
+};
+static const struct drbg_kat kat4107 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4107_t
+};
+
+static const unsigned char kat4108_entropyin[] = {
+ 0x3f, 0x07, 0x42, 0x8a, 0xf9, 0xe3, 0x7c, 0x5b, 0x23, 0x21, 0xf6, 0x80,
+ 0x91, 0x62, 0x40, 0x1c, 0xa7, 0x51, 0x3e, 0xc3, 0x8d, 0x7b, 0x9f, 0x2d,
+ 0xe1, 0x83, 0x23, 0xd9, 0xbd, 0xf6, 0xd5, 0x90, 0x3c, 0x42, 0xae, 0x61,
+ 0x75, 0x25, 0x58, 0xf5, 0x06, 0x07, 0x25, 0x6e, 0xad, 0x19, 0x04, 0x4c,
+};
+static const unsigned char kat4108_nonce[] = {0};
+static const unsigned char kat4108_persstr[] = {0};
+static const unsigned char kat4108_entropyinpr1[] = {
+ 0x43, 0xa6, 0x8b, 0x61, 0xf3, 0xde, 0x82, 0x5d, 0x6c, 0xd4, 0xa8, 0xd3,
+ 0x1a, 0x07, 0x5b, 0xe8, 0xc2, 0x73, 0x21, 0xe3, 0xa2, 0xad, 0x56, 0x00,
+ 0xd3, 0x9c, 0x3b, 0xe0, 0x9b, 0x41, 0x97, 0xde, 0xa3, 0xb7, 0xff, 0xd9,
+ 0x58, 0x7a, 0x12, 0xb1, 0x9a, 0x59, 0x19, 0x97, 0x96, 0x9f, 0x8f, 0xf1,
+};
+static const unsigned char kat4108_addinpr1[] = {
+ 0xea, 0x65, 0xa6, 0x8c, 0x4c, 0x90, 0x3e, 0xc9, 0xca, 0xa2, 0x7c, 0x24,
+ 0xeb, 0xbc, 0xd5, 0x3d, 0x77, 0x19, 0x07, 0x4a, 0x3e, 0x42, 0xa9, 0xdd,
+ 0x12, 0xfa, 0x16, 0x30, 0x92, 0x79, 0xea, 0x93, 0x8c, 0xf9, 0x2f, 0x22,
+ 0x63, 0x98, 0x52, 0xc4, 0x76, 0xc7, 0x4d, 0xf7, 0xc8, 0xaf, 0xd7, 0xa7,
+};
+static const unsigned char kat4108_entropyinpr2[] = {
+ 0x42, 0x01, 0x7c, 0xe7, 0xb0, 0xb2, 0x16, 0x1d, 0xd0, 0xbe, 0xbd, 0xb9,
+ 0x3c, 0x5c, 0x82, 0x22, 0x56, 0x14, 0xdd, 0x01, 0x70, 0x0a, 0x80, 0xd5,
+ 0x95, 0xc2, 0xe2, 0x40, 0xd3, 0x44, 0x1b, 0x09, 0xb5, 0xba, 0x7e, 0x67,
+ 0x5b, 0x14, 0x34, 0xac, 0x23, 0x10, 0x0a, 0x3e, 0x6c, 0xb8, 0xde, 0x69,
+};
+static const unsigned char kat4108_addinpr2[] = {
+ 0x88, 0x3c, 0xf0, 0x1c, 0x48, 0x82, 0xd0, 0xca, 0x03, 0xd5, 0xa5, 0x2f,
+ 0xec, 0xb2, 0x68, 0xbd, 0x22, 0x01, 0x1c, 0x04, 0xfc, 0xf2, 0x7a, 0x53,
+ 0xd8, 0x03, 0x79, 0xa1, 0xc2, 0xa7, 0xc9, 0x2c, 0x0f, 0xfa, 0xcc, 0xd9,
+ 0x3c, 0x7c, 0xd7, 0x83, 0x84, 0xab, 0xbe, 0x65, 0x31, 0x75, 0x38, 0xc3,
+};
+static const unsigned char kat4108_retbits[] = {
+ 0x2b, 0x63, 0x13, 0xf2, 0x8a, 0x05, 0x5f, 0xbc, 0x9c, 0xd0, 0xec, 0xde,
+ 0x3b, 0x46, 0xec, 0x8f, 0x75, 0x28, 0x6c, 0x87, 0xb7, 0xdd, 0x7a, 0x41,
+ 0x9e, 0x44, 0x33, 0x54, 0x9f, 0xde, 0xca, 0xbf, 0xa0, 0xed, 0x40, 0xc6,
+ 0xd5, 0xab, 0x62, 0xe7, 0xc0, 0x6f, 0x78, 0x39, 0x7f, 0x24, 0xfe, 0x3f,
+ 0xc2, 0xeb, 0x91, 0x05, 0xc1, 0xf6, 0x28, 0x82, 0xae, 0xee, 0x8c, 0xd9,
+ 0x2c, 0x18, 0xa0, 0xbb,
+};
+static const struct drbg_kat_pr_true kat4108_t = {
+ 12, kat4108_entropyin, kat4108_nonce, kat4108_persstr,
+ kat4108_entropyinpr1, kat4108_addinpr1, kat4108_entropyinpr2,
+ kat4108_addinpr2, kat4108_retbits
+};
+static const struct drbg_kat kat4108 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4108_t
+};
+
+static const unsigned char kat4109_entropyin[] = {
+ 0xa4, 0x85, 0xac, 0x90, 0xee, 0xb9, 0xc4, 0xe3, 0x04, 0xa5, 0x9e, 0xcc,
+ 0xbf, 0xfe, 0x9b, 0x56, 0x5b, 0x5f, 0x80, 0x66, 0x15, 0x8e, 0xc3, 0xb6,
+ 0xd7, 0x51, 0x21, 0xbd, 0x59, 0xe4, 0x12, 0x2e, 0xcf, 0x90, 0x01, 0x40,
+ 0x66, 0x56, 0xdc, 0x2f, 0xc6, 0x12, 0x71, 0xf2, 0x84, 0xd4, 0x3c, 0x08,
+};
+static const unsigned char kat4109_nonce[] = {0};
+static const unsigned char kat4109_persstr[] = {0};
+static const unsigned char kat4109_entropyinpr1[] = {
+ 0x76, 0xe3, 0x11, 0xf8, 0xde, 0x10, 0x8c, 0xbb, 0xc8, 0xc4, 0x57, 0xec,
+ 0x0e, 0x22, 0x76, 0x8f, 0x2d, 0x09, 0x2e, 0x79, 0x67, 0x67, 0x41, 0xac,
+ 0x1a, 0x6a, 0x81, 0x3e, 0xa4, 0x96, 0x84, 0x83, 0x4d, 0xbe, 0xc4, 0x31,
+ 0x49, 0x6e, 0x5b, 0xf0, 0xfb, 0xbd, 0x82, 0x19, 0xd3, 0xc8, 0xf1, 0x72,
+};
+static const unsigned char kat4109_addinpr1[] = {
+ 0xaa, 0xc9, 0x5b, 0x6a, 0xb0, 0xd4, 0xb9, 0xff, 0xd7, 0xfa, 0xc9, 0x9e,
+ 0xa9, 0x15, 0xe4, 0xd3, 0xc7, 0x0d, 0x39, 0xb2, 0xd2, 0xb0, 0x90, 0x28,
+ 0x8c, 0xec, 0x64, 0xc4, 0x41, 0x19, 0x18, 0x4e, 0x67, 0x82, 0x07, 0x61,
+ 0x39, 0x96, 0x45, 0xa5, 0xe8, 0xd4, 0xb5, 0x24, 0xad, 0xae, 0x9b, 0x91,
+};
+static const unsigned char kat4109_entropyinpr2[] = {
+ 0x20, 0x89, 0xbd, 0xc6, 0x8a, 0x9f, 0xc6, 0xa5, 0x48, 0xcd, 0xd1, 0x0c,
+ 0x7d, 0x68, 0x49, 0x7b, 0xbe, 0xc6, 0x08, 0x3e, 0x1a, 0x4e, 0xab, 0xbf,
+ 0xca, 0x99, 0x81, 0x2c, 0xcb, 0xe5, 0x8f, 0xab, 0x8d, 0x64, 0x6f, 0xd2,
+ 0xc3, 0xe1, 0x9b, 0xa5, 0x93, 0xe8, 0x53, 0x63, 0xd8, 0x1d, 0xbb, 0xba,
+};
+static const unsigned char kat4109_addinpr2[] = {
+ 0x5a, 0x37, 0x2c, 0x60, 0xfc, 0x7d, 0xa6, 0x9e, 0x10, 0x0b, 0xdd, 0xc4,
+ 0x30, 0x98, 0xbf, 0xb6, 0xbb, 0x92, 0xcb, 0x48, 0x2c, 0xd9, 0x2a, 0xe7,
+ 0x13, 0xb6, 0x8c, 0xe8, 0x1f, 0x0c, 0xa5, 0xbb, 0xc0, 0x09, 0x3f, 0x4c,
+ 0xd8, 0x71, 0x62, 0x75, 0xaa, 0x43, 0xa5, 0x2d, 0x22, 0xdc, 0x16, 0x25,
+};
+static const unsigned char kat4109_retbits[] = {
+ 0x83, 0xec, 0xd1, 0xa2, 0xcc, 0xc7, 0x93, 0x16, 0x61, 0x27, 0xf3, 0xa2,
+ 0x4c, 0x93, 0x25, 0x00, 0x27, 0x0a, 0x64, 0xcf, 0x66, 0x51, 0x8b, 0x1c,
+ 0xb6, 0x11, 0xc2, 0xf5, 0x96, 0x79, 0x24, 0xc1, 0x10, 0x3d, 0x01, 0xed,
+ 0xcd, 0x3e, 0xcf, 0xcb, 0x57, 0xbd, 0x7c, 0xf0, 0x26, 0x39, 0xa7, 0x6e,
+ 0x0f, 0xfb, 0x53, 0xdc, 0x1b, 0xe3, 0xd5, 0x59, 0x10, 0x7a, 0x0a, 0xad,
+ 0x82, 0xb8, 0x7f, 0xef,
+};
+static const struct drbg_kat_pr_true kat4109_t = {
+ 13, kat4109_entropyin, kat4109_nonce, kat4109_persstr,
+ kat4109_entropyinpr1, kat4109_addinpr1, kat4109_entropyinpr2,
+ kat4109_addinpr2, kat4109_retbits
+};
+static const struct drbg_kat kat4109 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4109_t
+};
+
+static const unsigned char kat4110_entropyin[] = {
+ 0x84, 0x06, 0x27, 0x44, 0x1c, 0x2c, 0x6d, 0xf1, 0x07, 0x9c, 0xa2, 0x70,
+ 0xcc, 0x24, 0x27, 0xd1, 0x62, 0x62, 0x3f, 0x98, 0xee, 0x96, 0xd9, 0x53,
+ 0x01, 0xff, 0x55, 0x97, 0xa3, 0xa0, 0x6b, 0x5f, 0x92, 0x82, 0xac, 0xe4,
+ 0x9c, 0x53, 0x88, 0x9f, 0xb1, 0x19, 0x21, 0xd0, 0x7a, 0x04, 0x62, 0x12,
+};
+static const unsigned char kat4110_nonce[] = {0};
+static const unsigned char kat4110_persstr[] = {0};
+static const unsigned char kat4110_entropyinpr1[] = {
+ 0x4b, 0x35, 0x9a, 0xb5, 0xfb, 0x07, 0x21, 0xc2, 0x66, 0x62, 0x7b, 0x8c,
+ 0x3e, 0x54, 0xdc, 0x3f, 0x72, 0xb6, 0x62, 0x57, 0x80, 0x90, 0xc2, 0x30,
+ 0x52, 0x6f, 0x7c, 0xbc, 0x43, 0xff, 0xbd, 0x35, 0x67, 0x6f, 0x84, 0xbb,
+ 0xa5, 0x1e, 0xf0, 0xbe, 0xfb, 0x63, 0xa1, 0xfe, 0x6b, 0xd0, 0xf9, 0xc7,
+};
+static const unsigned char kat4110_addinpr1[] = {
+ 0x7a, 0x2a, 0x57, 0x39, 0x7e, 0xaa, 0xcc, 0xc0, 0x2a, 0x2e, 0x8b, 0xe5,
+ 0x1c, 0xe8, 0x07, 0x88, 0xcc, 0x81, 0xe2, 0x16, 0xc8, 0xb9, 0x38, 0x3f,
+ 0x39, 0x11, 0x6f, 0x7b, 0x6f, 0x1c, 0x0a, 0x85, 0xad, 0x64, 0x80, 0xa8,
+ 0x8c, 0xa3, 0xce, 0xdf, 0x75, 0xee, 0x26, 0x63, 0x1f, 0x5f, 0xa1, 0x2a,
+};
+static const unsigned char kat4110_entropyinpr2[] = {
+ 0x0d, 0x90, 0x37, 0xcf, 0x74, 0x5b, 0x3c, 0xf4, 0x16, 0x28, 0xeb, 0x15,
+ 0x38, 0xbb, 0x71, 0xb5, 0x91, 0x16, 0xda, 0x10, 0x49, 0xec, 0xd3, 0x6d,
+ 0x12, 0xd3, 0x44, 0xc5, 0xa1, 0x7e, 0x47, 0x1c, 0x8c, 0x4e, 0x72, 0xcf,
+ 0xdc, 0x7c, 0xa0, 0x53, 0x8c, 0x81, 0x08, 0x59, 0x52, 0x24, 0x1d, 0x68,
+};
+static const unsigned char kat4110_addinpr2[] = {
+ 0xda, 0x29, 0x84, 0x6d, 0x4d, 0x48, 0xe3, 0xee, 0xac, 0x71, 0xab, 0x07,
+ 0xfa, 0xe9, 0xb9, 0xdb, 0xb6, 0xc5, 0xd8, 0x3c, 0xff, 0xb7, 0x5c, 0x67,
+ 0xbe, 0x10, 0xbb, 0x15, 0xe6, 0x2d, 0x9d, 0x9b, 0xf4, 0x57, 0x1a, 0xea,
+ 0x5a, 0xe4, 0x75, 0x22, 0x9b, 0x3c, 0x63, 0xba, 0x82, 0x44, 0xb8, 0x31,
+};
+static const unsigned char kat4110_retbits[] = {
+ 0x7a, 0x7e, 0xd6, 0xe6, 0x32, 0x63, 0x0f, 0xfc, 0xf3, 0x2f, 0x03, 0x73,
+ 0xde, 0xb2, 0xc6, 0x7c, 0x6d, 0xcb, 0x77, 0xf0, 0x4f, 0x19, 0x91, 0xf8,
+ 0x9d, 0x5d, 0x25, 0xa3, 0xa8, 0xc3, 0x90, 0xac, 0x8a, 0xc3, 0x73, 0xb6,
+ 0x6c, 0x5d, 0xa9, 0x90, 0xc3, 0xfe, 0x28, 0xcd, 0x93, 0xf3, 0xa4, 0xf8,
+ 0xe5, 0x59, 0x4c, 0xae, 0x25, 0x49, 0x8e, 0xd7, 0x3f, 0x5f, 0x00, 0x1b,
+ 0x83, 0x17, 0x9b, 0x0c,
+};
+static const struct drbg_kat_pr_true kat4110_t = {
+ 14, kat4110_entropyin, kat4110_nonce, kat4110_persstr,
+ kat4110_entropyinpr1, kat4110_addinpr1, kat4110_entropyinpr2,
+ kat4110_addinpr2, kat4110_retbits
+};
+static const struct drbg_kat kat4110 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4110_t
+};
+
+static const unsigned char kat4111_entropyin[] = {
+ 0xc8, 0xf0, 0xc7, 0xb9, 0xbd, 0xf7, 0xe7, 0xd5, 0x24, 0xc9, 0x98, 0xae,
+ 0xde, 0xab, 0xb3, 0xb7, 0xdd, 0x4f, 0xa8, 0xf9, 0x5c, 0x51, 0xb5, 0x82,
+ 0x01, 0x0a, 0x5e, 0x09, 0xd0, 0xb4, 0xb1, 0xad, 0x51, 0x03, 0x02, 0x42,
+ 0x2d, 0xf7, 0x38, 0xfb, 0xef, 0x00, 0x2a, 0x05, 0x15, 0x43, 0xb4, 0xcc,
+};
+static const unsigned char kat4111_nonce[] = {0};
+static const unsigned char kat4111_persstr[] = {
+ 0x3b, 0x8f, 0x2e, 0xd0, 0x3e, 0x4c, 0x4a, 0x85, 0x7e, 0xba, 0xf4, 0x73,
+ 0x01, 0x24, 0xae, 0x5b, 0x3f, 0xfa, 0x67, 0xe2, 0x94, 0x38, 0x1f, 0xe0,
+ 0x85, 0xe1, 0xd5, 0xb2, 0x5b, 0xb7, 0x9c, 0x22, 0x8f, 0x39, 0xb9, 0x91,
+ 0x2d, 0x8b, 0xf9, 0xe8, 0x4c, 0xdb, 0x43, 0xfc, 0xef, 0xb5, 0x52, 0xe0,
+};
+static const unsigned char kat4111_entropyinpr1[] = {
+ 0xc1, 0xa7, 0xb1, 0x60, 0xc8, 0xe3, 0x3a, 0x01, 0xfb, 0xd4, 0x97, 0x43,
+ 0xdc, 0x11, 0x61, 0x53, 0x93, 0x90, 0xd9, 0xba, 0x6b, 0x87, 0x6f, 0xe6,
+ 0x3b, 0x58, 0xe8, 0xfd, 0x60, 0x5b, 0x98, 0x61, 0x73, 0x22, 0x57, 0x8b,
+ 0x17, 0xac, 0xa9, 0xdb, 0x71, 0xe8, 0x58, 0xb1, 0x54, 0xf9, 0x79, 0x10,
+};
+static const unsigned char kat4111_addinpr1[] = {0};
+static const unsigned char kat4111_entropyinpr2[] = {
+ 0xd9, 0x8b, 0x25, 0xed, 0xa4, 0x1d, 0x15, 0xea, 0xcd, 0xec, 0xba, 0x58,
+ 0x66, 0x09, 0xd8, 0xc7, 0x43, 0x70, 0x4f, 0xa0, 0x99, 0xac, 0x37, 0xf9,
+ 0x18, 0x5b, 0xcb, 0x19, 0x65, 0x27, 0x23, 0xd1, 0x64, 0x84, 0x31, 0xa7,
+ 0x3c, 0x43, 0x99, 0x77, 0x3c, 0x85, 0xca, 0xf1, 0x2f, 0xcd, 0xd8, 0x42,
+};
+static const unsigned char kat4111_addinpr2[] = {0};
+static const unsigned char kat4111_retbits[] = {
+ 0x33, 0x8d, 0xa5, 0x93, 0x50, 0xa7, 0x2b, 0xba, 0x94, 0xb2, 0x17, 0xb9,
+ 0x9f, 0xf8, 0x13, 0xfa, 0xfa, 0x85, 0xf3, 0x1f, 0xa7, 0xe9, 0x91, 0xd4,
+ 0x35, 0x0d, 0x6f, 0xce, 0x39, 0x47, 0x1a, 0xa2, 0x49, 0xc6, 0xa9, 0xe7,
+ 0xd1, 0x89, 0x64, 0x9e, 0xa6, 0x77, 0x0a, 0x15, 0xbe, 0x30, 0x2b, 0x94,
+ 0x3a, 0xd4, 0x03, 0x72, 0x8b, 0x73, 0x87, 0xf5, 0x98, 0x4c, 0x9b, 0xfb,
+ 0x82, 0x59, 0x77, 0x71,
+};
+static const struct drbg_kat_pr_true kat4111_t = {
+ 0, kat4111_entropyin, kat4111_nonce, kat4111_persstr,
+ kat4111_entropyinpr1, kat4111_addinpr1, kat4111_entropyinpr2,
+ kat4111_addinpr2, kat4111_retbits
+};
+static const struct drbg_kat kat4111 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4111_t
+};
+
+static const unsigned char kat4112_entropyin[] = {
+ 0x5f, 0xb3, 0xf3, 0x02, 0xc3, 0x6d, 0x0d, 0x0e, 0x28, 0xef, 0xb0, 0x65,
+ 0xdf, 0x59, 0x5e, 0xa6, 0x9a, 0x6b, 0x3e, 0xb4, 0x56, 0x22, 0xf9, 0xd1,
+ 0x40, 0x38, 0xeb, 0xcc, 0x0d, 0x4a, 0x8b, 0x0d, 0x6a, 0xa4, 0x5e, 0x68,
+ 0x1e, 0xdd, 0x5c, 0x50, 0x6e, 0x00, 0xf0, 0xdc, 0x12, 0x77, 0x5a, 0xc4,
+};
+static const unsigned char kat4112_nonce[] = {0};
+static const unsigned char kat4112_persstr[] = {
+ 0xe4, 0xaf, 0xd4, 0x8a, 0x08, 0x35, 0x5c, 0xcb, 0xd0, 0x97, 0xbf, 0x5c,
+ 0x87, 0xe9, 0xaa, 0x6c, 0xca, 0x5b, 0xce, 0x84, 0xb2, 0x11, 0xef, 0x0c,
+ 0x78, 0x3d, 0x7e, 0x05, 0xcd, 0x52, 0xca, 0xae, 0x4b, 0x4d, 0x83, 0xde,
+ 0x53, 0xa8, 0x42, 0x00, 0xa5, 0x56, 0xb5, 0xaf, 0xf5, 0x04, 0x7b, 0x13,
+};
+static const unsigned char kat4112_entropyinpr1[] = {
+ 0x64, 0x40, 0xcc, 0x8c, 0x73, 0x5c, 0xa9, 0xb0, 0x5f, 0x26, 0x13, 0x58,
+ 0xe5, 0x1b, 0x8b, 0x4f, 0x8c, 0x4b, 0xbd, 0xee, 0x9e, 0x26, 0x81, 0xc7,
+ 0x6f, 0xb5, 0x52, 0xbb, 0x6b, 0x62, 0x33, 0x40, 0x38, 0xbd, 0x8e, 0x03,
+ 0x94, 0xa4, 0xd5, 0x0f, 0x6a, 0xf7, 0xa7, 0xa9, 0x20, 0x37, 0x97, 0x99,
+};
+static const unsigned char kat4112_addinpr1[] = {0};
+static const unsigned char kat4112_entropyinpr2[] = {
+ 0x2e, 0xd7, 0xe6, 0x11, 0x83, 0x94, 0xce, 0x10, 0xa8, 0x42, 0xd6, 0x09,
+ 0xba, 0xab, 0xfa, 0xef, 0x9d, 0x1c, 0x1f, 0xea, 0x91, 0x4b, 0xe4, 0xb7,
+ 0x25, 0x82, 0x2f, 0x94, 0x3f, 0xda, 0x02, 0x32, 0x44, 0xf8, 0x06, 0xa4,
+ 0x7b, 0x94, 0x4e, 0xa0, 0xc1, 0xb8, 0x53, 0xf3, 0x6b, 0xfa, 0x24, 0xf7,
+};
+static const unsigned char kat4112_addinpr2[] = {0};
+static const unsigned char kat4112_retbits[] = {
+ 0xbe, 0x93, 0x33, 0x14, 0x04, 0x28, 0x55, 0x32, 0x31, 0x50, 0x5e, 0x8c,
+ 0xe3, 0xf7, 0x89, 0xf2, 0x86, 0x0f, 0x44, 0x64, 0x7d, 0x97, 0x23, 0x9c,
+ 0x0d, 0x34, 0xce, 0xe9, 0x8e, 0x0e, 0x4f, 0x5e, 0x5a, 0x5e, 0xb2, 0x96,
+ 0xd4, 0xce, 0xc5, 0x08, 0x62, 0x49, 0x13, 0x08, 0x0a, 0x1b, 0x44, 0x99,
+ 0x09, 0x93, 0xa2, 0xae, 0x63, 0xf6, 0x11, 0x24, 0xc4, 0xd8, 0x18, 0x4f,
+ 0x19, 0x1c, 0xa8, 0xae,
+};
+static const struct drbg_kat_pr_true kat4112_t = {
+ 1, kat4112_entropyin, kat4112_nonce, kat4112_persstr,
+ kat4112_entropyinpr1, kat4112_addinpr1, kat4112_entropyinpr2,
+ kat4112_addinpr2, kat4112_retbits
+};
+static const struct drbg_kat kat4112 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4112_t
+};
+
+static const unsigned char kat4113_entropyin[] = {
+ 0xf3, 0xfb, 0x24, 0x59, 0x2e, 0x88, 0xaa, 0x2b, 0xb3, 0x92, 0x1b, 0x46,
+ 0xe1, 0x98, 0x31, 0x0f, 0xd2, 0x69, 0x88, 0x3e, 0xb6, 0x8a, 0x78, 0x31,
+ 0xe5, 0x62, 0x7a, 0x5a, 0x6d, 0x21, 0x54, 0x38, 0x64, 0xed, 0xe3, 0xfb,
+ 0xc8, 0xba, 0xdc, 0x18, 0x88, 0xb0, 0xda, 0xf3, 0x7a, 0x97, 0xdd, 0x40,
+};
+static const unsigned char kat4113_nonce[] = {0};
+static const unsigned char kat4113_persstr[] = {
+ 0xa1, 0xa8, 0x53, 0xff, 0xa7, 0x98, 0xf9, 0x3a, 0x60, 0x48, 0x74, 0xd4,
+ 0xc2, 0xc7, 0xfc, 0xf2, 0xac, 0x4a, 0x6e, 0xd1, 0xe0, 0x7e, 0x03, 0x33,
+ 0x6b, 0x7e, 0x3d, 0xdb, 0xf6, 0x03, 0xc1, 0x9f, 0x9d, 0x8b, 0x30, 0x41,
+ 0xcb, 0xe3, 0xac, 0x09, 0xe9, 0x6c, 0x86, 0xc8, 0xbd, 0xeb, 0xaa, 0xd6,
+};
+static const unsigned char kat4113_entropyinpr1[] = {
+ 0xde, 0xda, 0x2a, 0x04, 0x3d, 0x03, 0x57, 0x44, 0xb5, 0xd0, 0xe6, 0x96,
+ 0xe4, 0x96, 0x38, 0x2f, 0xf0, 0xc0, 0x1c, 0xc7, 0x9c, 0x9f, 0x8f, 0x58,
+ 0x8b, 0x40, 0xd9, 0x34, 0x23, 0x7f, 0xdf, 0x7d, 0x0f, 0x9e, 0xa3, 0x89,
+ 0xcf, 0x28, 0xa3, 0x52, 0x91, 0x7c, 0x72, 0x41, 0x06, 0x41, 0x7d, 0x92,
+};
+static const unsigned char kat4113_addinpr1[] = {0};
+static const unsigned char kat4113_entropyinpr2[] = {
+ 0xdc, 0xcf, 0xfb, 0x5e, 0x3c, 0xbf, 0x5e, 0x36, 0xeb, 0x1c, 0xa9, 0x2d,
+ 0xb6, 0x24, 0x7e, 0x1d, 0x6d, 0xc7, 0x77, 0xe5, 0x91, 0x89, 0x3e, 0x22,
+ 0x0b, 0x5c, 0xf5, 0x5c, 0x50, 0xc7, 0x4b, 0xae, 0x29, 0x95, 0xaf, 0xfb,
+ 0x00, 0x3a, 0x83, 0x06, 0x19, 0x77, 0x71, 0x73, 0x7a, 0xad, 0xdf, 0x64,
+};
+static const unsigned char kat4113_addinpr2[] = {0};
+static const unsigned char kat4113_retbits[] = {
+ 0xcd, 0xec, 0xc0, 0x83, 0xb5, 0xc4, 0xbd, 0x38, 0xb5, 0x73, 0xc5, 0xe1,
+ 0x09, 0xfc, 0x1c, 0xbf, 0x2d, 0xbc, 0x92, 0x98, 0x2e, 0xd6, 0xd2, 0x4c,
+ 0xf4, 0xd2, 0xcb, 0x06, 0x38, 0x3b, 0xa2, 0x7d, 0x51, 0xdc, 0x06, 0x4a,
+ 0x8c, 0xf4, 0x22, 0x05, 0x42, 0x0d, 0x1c, 0x62, 0x50, 0x5b, 0x98, 0x7c,
+ 0x77, 0x45, 0x02, 0xb9, 0x3e, 0x83, 0x74, 0x85, 0x28, 0x4a, 0x13, 0x7c,
+ 0xf2, 0x38, 0x08, 0x72,
+};
+static const struct drbg_kat_pr_true kat4113_t = {
+ 2, kat4113_entropyin, kat4113_nonce, kat4113_persstr,
+ kat4113_entropyinpr1, kat4113_addinpr1, kat4113_entropyinpr2,
+ kat4113_addinpr2, kat4113_retbits
+};
+static const struct drbg_kat kat4113 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4113_t
+};
+
+static const unsigned char kat4114_entropyin[] = {
+ 0x8a, 0x0a, 0x52, 0xb1, 0xe2, 0x28, 0xc2, 0x6b, 0xe6, 0x49, 0x7b, 0x5c,
+ 0xad, 0x06, 0x77, 0xcf, 0xaa, 0x2c, 0x42, 0xa4, 0xfc, 0x42, 0x9c, 0x4b,
+ 0xad, 0xe7, 0xa4, 0x68, 0xce, 0x68, 0x1a, 0x73, 0x2f, 0x92, 0xdc, 0xeb,
+ 0xdf, 0x5b, 0x3d, 0x9a, 0x0d, 0xcf, 0xdb, 0x5c, 0x11, 0xa8, 0x30, 0xd4,
+};
+static const unsigned char kat4114_nonce[] = {0};
+static const unsigned char kat4114_persstr[] = {
+ 0x93, 0x67, 0xc2, 0x13, 0x59, 0x3e, 0x3a, 0x82, 0x05, 0x9d, 0x3c, 0x80,
+ 0x51, 0x3c, 0x30, 0x1f, 0x0c, 0x84, 0x0c, 0x90, 0x0a, 0xe8, 0xf1, 0x8b,
+ 0x5b, 0xe5, 0x58, 0xd1, 0xfb, 0x8b, 0xd5, 0x28, 0xdb, 0xf9, 0x3e, 0x6e,
+ 0xfb, 0x7f, 0x3c, 0xd8, 0xfe, 0xd5, 0x77, 0xa3, 0xe2, 0x99, 0xbc, 0x76,
+};
+static const unsigned char kat4114_entropyinpr1[] = {
+ 0x51, 0xa2, 0xf3, 0x87, 0x92, 0xfb, 0x87, 0x57, 0x07, 0x47, 0xa5, 0x4b,
+ 0x7a, 0x3f, 0x54, 0x73, 0x58, 0x3f, 0xaa, 0xce, 0xac, 0xd7, 0x0c, 0xd5,
+ 0xb5, 0x33, 0x6e, 0x8e, 0xcb, 0xbc, 0xc2, 0x86, 0x62, 0x79, 0x43, 0x99,
+ 0x92, 0x10, 0x57, 0x3e, 0xe7, 0xf8, 0xf2, 0x94, 0x37, 0xf7, 0x4b, 0x02,
+};
+static const unsigned char kat4114_addinpr1[] = {0};
+static const unsigned char kat4114_entropyinpr2[] = {
+ 0x77, 0xef, 0xd9, 0x0b, 0xf6, 0xfa, 0xab, 0x8e, 0xd0, 0xbb, 0x32, 0xf1,
+ 0x38, 0xfe, 0xc4, 0xfe, 0x8a, 0xfd, 0x7e, 0x1a, 0x55, 0xb2, 0xe6, 0x0d,
+ 0x5d, 0x50, 0x0e, 0xbd, 0x57, 0xed, 0x38, 0x2a, 0xf9, 0x7d, 0x9e, 0xa8,
+ 0x93, 0x75, 0xfc, 0x56, 0xb5, 0x11, 0xcb, 0x67, 0x4e, 0x76, 0xe4, 0xf4,
+};
+static const unsigned char kat4114_addinpr2[] = {0};
+static const unsigned char kat4114_retbits[] = {
+ 0xab, 0x14, 0x78, 0xcc, 0x75, 0xbb, 0xfd, 0xc9, 0x30, 0xfe, 0xfe, 0xff,
+ 0x1e, 0x6f, 0x8e, 0x7b, 0x82, 0x22, 0x13, 0x97, 0x6f, 0xc5, 0x56, 0xee,
+ 0x7f, 0x71, 0x55, 0x0d, 0x12, 0x86, 0x20, 0x76, 0x6d, 0x83, 0x53, 0xb3,
+ 0xc5, 0x4c, 0x59, 0x93, 0x4e, 0x7f, 0xa5, 0x7e, 0x8b, 0x85, 0x7c, 0x7d,
+ 0xae, 0xf8, 0xe9, 0xd8, 0x27, 0x05, 0xfd, 0x1f, 0xec, 0x7b, 0x19, 0xd5,
+ 0xc3, 0xb5, 0xaf, 0x4f,
+};
+static const struct drbg_kat_pr_true kat4114_t = {
+ 3, kat4114_entropyin, kat4114_nonce, kat4114_persstr,
+ kat4114_entropyinpr1, kat4114_addinpr1, kat4114_entropyinpr2,
+ kat4114_addinpr2, kat4114_retbits
+};
+static const struct drbg_kat kat4114 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4114_t
+};
+
+static const unsigned char kat4115_entropyin[] = {
+ 0x42, 0x56, 0xc1, 0xc6, 0xdc, 0xb9, 0x46, 0x3f, 0x75, 0x1d, 0x97, 0xc2,
+ 0xb9, 0xa1, 0xdf, 0x62, 0x9d, 0x2f, 0x6d, 0xb1, 0x9d, 0xfc, 0xe8, 0x0d,
+ 0xa4, 0x62, 0x4e, 0x5c, 0xeb, 0x24, 0x03, 0xae, 0x6f, 0x19, 0x06, 0xf2,
+ 0xd8, 0xe3, 0x4c, 0xb0, 0x15, 0x52, 0x5b, 0x27, 0xbb, 0x25, 0xc2, 0x62,
+};
+static const unsigned char kat4115_nonce[] = {0};
+static const unsigned char kat4115_persstr[] = {
+ 0x88, 0xd9, 0xb7, 0xc5, 0x0d, 0x99, 0xc9, 0x26, 0xf0, 0x35, 0x08, 0x5a,
+ 0x7a, 0x8f, 0x02, 0x69, 0x8f, 0xde, 0x84, 0x5d, 0xb8, 0x50, 0x88, 0xe8,
+ 0x66, 0x18, 0x74, 0x07, 0xbd, 0xf7, 0x5b, 0x2c, 0x6c, 0xb6, 0x28, 0xd5,
+ 0x08, 0x1c, 0x85, 0x9a, 0x5d, 0x73, 0x88, 0x26, 0xd2, 0xe8, 0xc1, 0xee,
+};
+static const unsigned char kat4115_entropyinpr1[] = {
+ 0x8b, 0xa0, 0x3c, 0x22, 0x83, 0xb9, 0x7a, 0x37, 0x06, 0x3a, 0x45, 0x97,
+ 0xf7, 0xca, 0x15, 0xfb, 0x2d, 0xf7, 0xb0, 0xde, 0x1e, 0x22, 0x36, 0xb8,
+ 0x33, 0x8f, 0x14, 0x53, 0x9c, 0x05, 0x9d, 0x1a, 0x47, 0xa9, 0x47, 0xbc,
+ 0x9a, 0x3e, 0xf9, 0x54, 0xc8, 0x33, 0xff, 0xfa, 0xff, 0x8f, 0xa8, 0xff,
+};
+static const unsigned char kat4115_addinpr1[] = {0};
+static const unsigned char kat4115_entropyinpr2[] = {
+ 0xc5, 0xd3, 0xa8, 0x8d, 0xe9, 0xdb, 0x79, 0xdd, 0x70, 0x71, 0x87, 0xdf,
+ 0xe5, 0xd3, 0x54, 0x43, 0xf7, 0xea, 0xda, 0x16, 0x69, 0xd5, 0xda, 0xf3,
+ 0x9a, 0xf4, 0xd7, 0x8f, 0xff, 0x3f, 0xd3, 0x5f, 0x0e, 0x81, 0x92, 0x2a,
+ 0x20, 0x7e, 0x64, 0x0c, 0xba, 0x2c, 0x9f, 0xb1, 0x82, 0x80, 0xf6, 0x2d,
+};
+static const unsigned char kat4115_addinpr2[] = {0};
+static const unsigned char kat4115_retbits[] = {
+ 0xf6, 0x4d, 0x6a, 0xc3, 0xfd, 0x9b, 0xed, 0xa9, 0xea, 0x4b, 0x3f, 0xc2,
+ 0x92, 0x1e, 0x96, 0x7d, 0x12, 0x6a, 0xb4, 0xe7, 0x47, 0xeb, 0x4f, 0x29,
+ 0xbf, 0xd9, 0x49, 0xf9, 0x41, 0x19, 0x27, 0x10, 0x52, 0xff, 0x52, 0x50,
+ 0x1c, 0xb4, 0x5a, 0xf6, 0xbf, 0x94, 0x99, 0xef, 0x59, 0x26, 0x42, 0x3f,
+ 0x61, 0xbd, 0x4d, 0xac, 0x0b, 0x28, 0xfc, 0x95, 0xaa, 0x88, 0x6c, 0x82,
+ 0x26, 0xea, 0x27, 0xb4,
+};
+static const struct drbg_kat_pr_true kat4115_t = {
+ 4, kat4115_entropyin, kat4115_nonce, kat4115_persstr,
+ kat4115_entropyinpr1, kat4115_addinpr1, kat4115_entropyinpr2,
+ kat4115_addinpr2, kat4115_retbits
+};
+static const struct drbg_kat kat4115 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4115_t
+};
+
+static const unsigned char kat4116_entropyin[] = {
+ 0x6e, 0x92, 0x42, 0x7a, 0x94, 0x81, 0x6c, 0x83, 0x8e, 0xf5, 0x7f, 0x9d,
+ 0x98, 0x94, 0x1f, 0xfc, 0x3c, 0xd0, 0x70, 0xc7, 0x6f, 0xcc, 0x19, 0xe7,
+ 0x65, 0xf9, 0xb1, 0xf9, 0xd3, 0x90, 0xec, 0x99, 0xf0, 0xb5, 0x19, 0x3f,
+ 0xd7, 0x2a, 0x3d, 0x70, 0x0d, 0xea, 0xef, 0xfe, 0xa6, 0xc2, 0x28, 0x2e,
+};
+static const unsigned char kat4116_nonce[] = {0};
+static const unsigned char kat4116_persstr[] = {
+ 0x6d, 0x76, 0x21, 0xae, 0x46, 0x0a, 0xe1, 0x0c, 0x8c, 0x8d, 0x0e, 0x11,
+ 0xc8, 0x0a, 0xa4, 0x44, 0xe2, 0x79, 0xf2, 0xce, 0xf7, 0xda, 0x2a, 0x0e,
+ 0x52, 0xfe, 0x43, 0xed, 0xfa, 0x02, 0x5c, 0x67, 0xba, 0x01, 0x11, 0xb6,
+ 0xa2, 0x77, 0x4b, 0x06, 0x20, 0xea, 0xe6, 0x5a, 0xa2, 0xbc, 0x29, 0x2c,
+};
+static const unsigned char kat4116_entropyinpr1[] = {
+ 0x8e, 0x71, 0x59, 0x35, 0x07, 0x59, 0xfe, 0x73, 0xe6, 0xc5, 0x1a, 0xb2,
+ 0x24, 0xed, 0xa1, 0xcd, 0x76, 0x9c, 0x70, 0x3a, 0x42, 0xa7, 0x9d, 0x3c,
+ 0x4c, 0xe4, 0x07, 0xaa, 0x99, 0xc8, 0x42, 0x7f, 0x87, 0x2b, 0x7c, 0x3e,
+ 0x09, 0x55, 0x9c, 0x78, 0x9c, 0xb7, 0x5c, 0x54, 0x6d, 0xde, 0xb9, 0x88,
+};
+static const unsigned char kat4116_addinpr1[] = {0};
+static const unsigned char kat4116_entropyinpr2[] = {
+ 0xdb, 0x12, 0xfb, 0x9c, 0x2f, 0x1c, 0xc0, 0x22, 0x76, 0x8f, 0x82, 0x4d,
+ 0xfd, 0x05, 0xed, 0xc6, 0xd5, 0x71, 0x84, 0xee, 0x0e, 0x51, 0xce, 0x8d,
+ 0xec, 0xc7, 0x4c, 0x39, 0x0a, 0xde, 0xe6, 0x3e, 0xe4, 0x01, 0xa7, 0xd3,
+ 0xbb, 0x0a, 0x91, 0xc1, 0xd5, 0x0f, 0xd2, 0x23, 0x9d, 0xc3, 0xfa, 0x57,
+};
+static const unsigned char kat4116_addinpr2[] = {0};
+static const unsigned char kat4116_retbits[] = {
+ 0x45, 0xe3, 0xbf, 0xaf, 0xaa, 0x00, 0x94, 0x14, 0x59, 0xb3, 0x73, 0xaa,
+ 0x00, 0xe6, 0x09, 0x6b, 0x75, 0x27, 0x11, 0x0f, 0x4c, 0x6e, 0x4e, 0x7d,
+ 0x66, 0x61, 0x82, 0x9d, 0xfe, 0x4a, 0xd8, 0x3a, 0xb2, 0x3a, 0x57, 0x79,
+ 0xdc, 0x7f, 0x81, 0x16, 0xb7, 0x3b, 0x92, 0x9f, 0xc3, 0xda, 0x43, 0xad,
+ 0x34, 0x6a, 0x3e, 0x11, 0x36, 0x4e, 0x1b, 0x45, 0x3e, 0x66, 0x33, 0x5b,
+ 0x5c, 0xbf, 0x59, 0xb1,
+};
+static const struct drbg_kat_pr_true kat4116_t = {
+ 5, kat4116_entropyin, kat4116_nonce, kat4116_persstr,
+ kat4116_entropyinpr1, kat4116_addinpr1, kat4116_entropyinpr2,
+ kat4116_addinpr2, kat4116_retbits
+};
+static const struct drbg_kat kat4116 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4116_t
+};
+
+static const unsigned char kat4117_entropyin[] = {
+ 0x14, 0x93, 0x2f, 0x8e, 0xe3, 0xec, 0x21, 0x19, 0xe0, 0x3b, 0x65, 0xdd,
+ 0xe5, 0x3c, 0x2c, 0x41, 0x56, 0xb8, 0x01, 0x3c, 0x4d, 0x1c, 0x26, 0x02,
+ 0x27, 0xb2, 0x40, 0xaf, 0x61, 0xbb, 0xd0, 0xef, 0xed, 0xcd, 0xcd, 0x4f,
+ 0xbc, 0x82, 0x8d, 0xc6, 0x88, 0xce, 0xf0, 0xb2, 0x5b, 0xb1, 0x23, 0x74,
+};
+static const unsigned char kat4117_nonce[] = {0};
+static const unsigned char kat4117_persstr[] = {
+ 0x3d, 0xc5, 0x24, 0x87, 0xf8, 0x66, 0xee, 0xf2, 0x7a, 0x6a, 0xaa, 0x0f,
+ 0x3d, 0xa8, 0x7c, 0x09, 0xc8, 0x59, 0xba, 0xbb, 0xb7, 0x3e, 0x17, 0x71,
+ 0x62, 0x6c, 0xa4, 0x34, 0x53, 0x4a, 0x66, 0xb0, 0x2e, 0x56, 0x13, 0x63,
+ 0xdb, 0x90, 0x79, 0x8e, 0xdb, 0x55, 0xcc, 0xed, 0x27, 0x46, 0x76, 0x7a,
+};
+static const unsigned char kat4117_entropyinpr1[] = {
+ 0xa5, 0xd0, 0x63, 0xe9, 0x66, 0xeb, 0xfa, 0x8b, 0xb0, 0x5f, 0xc0, 0xc0,
+ 0x62, 0x5a, 0x30, 0xd0, 0xa4, 0x08, 0xe5, 0xe3, 0x1e, 0xc9, 0x66, 0x73,
+ 0x74, 0xcc, 0xcc, 0xbc, 0xc0, 0x7f, 0x6c, 0x28, 0x9e, 0xcd, 0xf3, 0xde,
+ 0xb3, 0xf7, 0x84, 0x92, 0x5e, 0x7e, 0x72, 0xc7, 0x51, 0x05, 0xbf, 0x54,
+};
+static const unsigned char kat4117_addinpr1[] = {0};
+static const unsigned char kat4117_entropyinpr2[] = {
+ 0x31, 0xd8, 0xab, 0x37, 0x20, 0x1b, 0x55, 0x66, 0x21, 0x01, 0xad, 0x23,
+ 0x58, 0x83, 0xc2, 0x8e, 0xcf, 0xb5, 0xc9, 0xe3, 0xcf, 0x04, 0x98, 0xf6,
+ 0xcd, 0x56, 0x3d, 0xb9, 0x6f, 0x62, 0x2e, 0x56, 0x56, 0x96, 0x72, 0x56,
+ 0xc7, 0xc3, 0xef, 0xc2, 0xca, 0x3c, 0x57, 0x7b, 0xe0, 0x2d, 0xe3, 0xce,
+};
+static const unsigned char kat4117_addinpr2[] = {0};
+static const unsigned char kat4117_retbits[] = {
+ 0x8b, 0xc9, 0x8d, 0x27, 0x05, 0x0e, 0x71, 0x3d, 0x19, 0x55, 0x1e, 0xad,
+ 0xae, 0x19, 0xd1, 0x4f, 0x3b, 0x13, 0x04, 0xaa, 0x6f, 0x73, 0x6d, 0x9b,
+ 0xec, 0x6c, 0x7c, 0xc9, 0x0c, 0x85, 0x41, 0x2a, 0x4e, 0x6a, 0x72, 0x18,
+ 0xb8, 0xa7, 0xce, 0x46, 0xb1, 0xcb, 0x93, 0xfa, 0x1b, 0x29, 0x6e, 0xee,
+ 0x78, 0x9a, 0xae, 0x0c, 0xb2, 0xa5, 0x8f, 0xe7, 0xa8, 0x0e, 0x26, 0xf0,
+ 0xa1, 0x01, 0x8d, 0xc8,
+};
+static const struct drbg_kat_pr_true kat4117_t = {
+ 6, kat4117_entropyin, kat4117_nonce, kat4117_persstr,
+ kat4117_entropyinpr1, kat4117_addinpr1, kat4117_entropyinpr2,
+ kat4117_addinpr2, kat4117_retbits
+};
+static const struct drbg_kat kat4117 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4117_t
+};
+
+static const unsigned char kat4118_entropyin[] = {
+ 0xa7, 0xd7, 0xb5, 0x6b, 0xdf, 0x38, 0xb5, 0x7d, 0x74, 0x18, 0xae, 0x3f,
+ 0x3a, 0x90, 0x37, 0x5d, 0x7a, 0xaf, 0xc3, 0x83, 0x9a, 0x29, 0x56, 0xf6,
+ 0x82, 0x4d, 0x1c, 0x55, 0xd6, 0x15, 0x96, 0x62, 0x07, 0xa5, 0xef, 0x31,
+ 0xe2, 0xbf, 0x83, 0x59, 0xdb, 0x10, 0x70, 0x61, 0x2a, 0xd6, 0xd7, 0x75,
+};
+static const unsigned char kat4118_nonce[] = {0};
+static const unsigned char kat4118_persstr[] = {
+ 0x01, 0x5c, 0x5a, 0x1d, 0x1f, 0x9e, 0x2a, 0xeb, 0x34, 0x71, 0x37, 0x67,
+ 0xa5, 0x8d, 0x01, 0xb0, 0x05, 0x5a, 0x27, 0x15, 0x1b, 0xaf, 0xbd, 0x0a,
+ 0xfc, 0x31, 0xfc, 0x22, 0xd7, 0x65, 0xe5, 0x7f, 0x65, 0xff, 0xc2, 0x82,
+ 0xab, 0xa7, 0x26, 0xa2, 0xec, 0x5a, 0x7c, 0x36, 0xa3, 0x3c, 0x0e, 0xcc,
+};
+static const unsigned char kat4118_entropyinpr1[] = {
+ 0xf4, 0x80, 0xe7, 0xc9, 0x70, 0xc0, 0x2a, 0x5a, 0x64, 0xb0, 0x9f, 0x04,
+ 0x73, 0xd0, 0x4b, 0x65, 0x8e, 0x19, 0x33, 0x26, 0x34, 0x04, 0x35, 0x69,
+ 0xe2, 0x49, 0x96, 0x98, 0x1f, 0x7d, 0x51, 0x5d, 0x32, 0x6a, 0xd1, 0x12,
+ 0x96, 0x61, 0x63, 0x87, 0x53, 0xd1, 0x17, 0xe8, 0xd3, 0x1a, 0x54, 0x0f,
+};
+static const unsigned char kat4118_addinpr1[] = {0};
+static const unsigned char kat4118_entropyinpr2[] = {
+ 0x08, 0x54, 0xd1, 0xa0, 0xaa, 0x78, 0xe3, 0xe6, 0x0b, 0x68, 0x25, 0xd1,
+ 0x43, 0xea, 0xa9, 0x7e, 0xc7, 0xdd, 0xd1, 0xb8, 0xb8, 0x5c, 0x26, 0xb6,
+ 0x25, 0xfe, 0x4d, 0xa7, 0x97, 0x3d, 0x64, 0x3c, 0xd0, 0x62, 0x91, 0x86,
+ 0xc4, 0x29, 0x28, 0xc8, 0xe4, 0x68, 0x57, 0xa6, 0x03, 0xe5, 0xac, 0x0c,
+};
+static const unsigned char kat4118_addinpr2[] = {0};
+static const unsigned char kat4118_retbits[] = {
+ 0x79, 0x41, 0x28, 0xd6, 0x81, 0xd3, 0x55, 0x33, 0x61, 0x48, 0xee, 0xb4,
+ 0xdd, 0x88, 0x2d, 0x76, 0xef, 0x98, 0x4f, 0x2a, 0x8c, 0xeb, 0x4b, 0x45,
+ 0x1e, 0x9b, 0x37, 0xbe, 0xac, 0x0f, 0xb5, 0x02, 0x47, 0xbd, 0x59, 0x5e,
+ 0xde, 0x2d, 0xe0, 0x00, 0xf4, 0x39, 0x79, 0x88, 0xd3, 0xf5, 0x2e, 0x0b,
+ 0x3b, 0x29, 0x32, 0x08, 0xc1, 0x6b, 0x5f, 0x45, 0xd6, 0x03, 0x2b, 0xc5,
+ 0xef, 0x20, 0xb3, 0xc8,
+};
+static const struct drbg_kat_pr_true kat4118_t = {
+ 7, kat4118_entropyin, kat4118_nonce, kat4118_persstr,
+ kat4118_entropyinpr1, kat4118_addinpr1, kat4118_entropyinpr2,
+ kat4118_addinpr2, kat4118_retbits
+};
+static const struct drbg_kat kat4118 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4118_t
+};
+
+static const unsigned char kat4119_entropyin[] = {
+ 0x89, 0xdf, 0xbb, 0x4a, 0x10, 0xba, 0xd1, 0xc2, 0x69, 0x34, 0x1b, 0x78,
+ 0x15, 0xac, 0x13, 0x88, 0xa7, 0xd2, 0x8b, 0xff, 0x83, 0x93, 0xe0, 0x78,
+ 0xd9, 0x9a, 0x0c, 0xdf, 0x12, 0xd0, 0xf2, 0x8a, 0x24, 0xe4, 0x54, 0x41,
+ 0xc8, 0x65, 0x84, 0x82, 0x9c, 0xe3, 0x7d, 0x4e, 0xb3, 0xb2, 0x88, 0x73,
+};
+static const unsigned char kat4119_nonce[] = {0};
+static const unsigned char kat4119_persstr[] = {
+ 0x52, 0x35, 0xd1, 0xb8, 0xea, 0x0e, 0x83, 0x61, 0x8a, 0x75, 0x5c, 0x59,
+ 0x8f, 0xa8, 0xe7, 0x4d, 0x6e, 0x42, 0x5f, 0x94, 0x62, 0x49, 0xe8, 0x0f,
+ 0x12, 0xd8, 0x5d, 0x3e, 0x1c, 0x54, 0x7d, 0x50, 0x48, 0xf2, 0x35, 0x68,
+ 0x7d, 0xc9, 0x3c, 0x86, 0xcb, 0xb6, 0x91, 0x38, 0x4f, 0x88, 0x94, 0x08,
+};
+static const unsigned char kat4119_entropyinpr1[] = {
+ 0x6d, 0x14, 0xb6, 0x71, 0xea, 0xa6, 0x6e, 0x21, 0x7d, 0xd9, 0x73, 0x04,
+ 0x7b, 0x61, 0x80, 0xb7, 0xdb, 0xd2, 0xc2, 0x9b, 0x70, 0x9f, 0xce, 0x01,
+ 0x4b, 0xcf, 0xda, 0x25, 0xe2, 0x69, 0xbf, 0x5a, 0x73, 0x6d, 0x71, 0x54,
+ 0x30, 0x8a, 0xa0, 0x59, 0x7c, 0x5f, 0x5a, 0xdc, 0x3e, 0xb4, 0xcd, 0xd9,
+};
+static const unsigned char kat4119_addinpr1[] = {0};
+static const unsigned char kat4119_entropyinpr2[] = {
+ 0x7c, 0x0a, 0x71, 0xa8, 0xf5, 0x6a, 0xc0, 0xb5, 0x76, 0x65, 0x25, 0xb0,
+ 0xf6, 0x3a, 0xfe, 0x48, 0xf4, 0xa0, 0xd2, 0x82, 0xad, 0xf3, 0x00, 0xf9,
+ 0xda, 0x47, 0xac, 0x62, 0x69, 0x3f, 0x0d, 0x74, 0xf6, 0x73, 0x91, 0x28,
+ 0xc6, 0x10, 0x24, 0xa2, 0x2f, 0x74, 0x69, 0xd8, 0x22, 0x38, 0x2c, 0xfb,
+};
+static const unsigned char kat4119_addinpr2[] = {0};
+static const unsigned char kat4119_retbits[] = {
+ 0x35, 0x71, 0x38, 0x3b, 0x97, 0x12, 0x91, 0xe3, 0x76, 0x16, 0xf1, 0xc6,
+ 0xaf, 0x62, 0x3a, 0x1d, 0x57, 0x6c, 0xc5, 0xf9, 0x50, 0x90, 0x56, 0x36,
+ 0x54, 0x42, 0x0f, 0x18, 0x4f, 0xc6, 0x66, 0x32, 0x42, 0xae, 0xff, 0xb0,
+ 0x60, 0x52, 0xa2, 0x9e, 0x84, 0x38, 0x0d, 0xb3, 0x8d, 0x9f, 0x3e, 0xd0,
+ 0x98, 0x23, 0xdf, 0xef, 0x17, 0x74, 0xc1, 0x41, 0x20, 0xfb, 0x01, 0x06,
+ 0x00, 0xb7, 0xb2, 0x74,
+};
+static const struct drbg_kat_pr_true kat4119_t = {
+ 8, kat4119_entropyin, kat4119_nonce, kat4119_persstr,
+ kat4119_entropyinpr1, kat4119_addinpr1, kat4119_entropyinpr2,
+ kat4119_addinpr2, kat4119_retbits
+};
+static const struct drbg_kat kat4119 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4119_t
+};
+
+static const unsigned char kat4120_entropyin[] = {
+ 0xd0, 0xda, 0xca, 0x07, 0x3b, 0x0c, 0x15, 0x17, 0xb9, 0xd6, 0x64, 0x3c,
+ 0x51, 0x81, 0x30, 0x58, 0x0f, 0x25, 0x4b, 0x48, 0x2d, 0x4c, 0x44, 0xb7,
+ 0x35, 0x59, 0x0e, 0x16, 0x7b, 0x06, 0xb3, 0x04, 0xe0, 0x66, 0x4b, 0x8e,
+ 0x12, 0xd9, 0xc8, 0xdd, 0x08, 0x3f, 0x4b, 0x75, 0x8e, 0x7b, 0x3d, 0x81,
+};
+static const unsigned char kat4120_nonce[] = {0};
+static const unsigned char kat4120_persstr[] = {
+ 0x06, 0x17, 0x0a, 0x3a, 0x66, 0x30, 0x8c, 0xea, 0x0a, 0xb1, 0xf4, 0x4e,
+ 0x68, 0x8e, 0x7a, 0x4f, 0x69, 0xa4, 0xfe, 0x43, 0x5c, 0xc3, 0x25, 0xdc,
+ 0x55, 0x47, 0x71, 0xb4, 0x15, 0x66, 0x14, 0xc7, 0x7d, 0x3c, 0x21, 0x37,
+ 0x7c, 0xa5, 0x52, 0xe6, 0xd5, 0xac, 0x9b, 0x7f, 0xfb, 0x52, 0xf1, 0xa3,
+};
+static const unsigned char kat4120_entropyinpr1[] = {
+ 0x44, 0x41, 0x27, 0x73, 0x88, 0xba, 0xf0, 0xae, 0x4d, 0x69, 0xb0, 0xc1,
+ 0xdb, 0x2b, 0x4d, 0x76, 0x76, 0x47, 0x73, 0x0e, 0x10, 0xcf, 0x11, 0x91,
+ 0xcd, 0x10, 0xfd, 0x2e, 0xba, 0x57, 0x0d, 0x34, 0x8e, 0x54, 0x4c, 0xea,
+ 0x06, 0x41, 0xaf, 0x89, 0x41, 0x8c, 0x90, 0x0c, 0xcb, 0xf2, 0xca, 0x20,
+};
+static const unsigned char kat4120_addinpr1[] = {0};
+static const unsigned char kat4120_entropyinpr2[] = {
+ 0x21, 0x80, 0xdc, 0x1f, 0x5f, 0x17, 0xf5, 0xf8, 0xcb, 0xb8, 0x49, 0x9e,
+ 0x15, 0x5d, 0xe4, 0xbd, 0x50, 0xe0, 0xf2, 0x17, 0x50, 0x41, 0xc2, 0x4d,
+ 0x1c, 0x72, 0xf6, 0x54, 0xaf, 0x8a, 0x08, 0x56, 0x3b, 0x1c, 0x42, 0xa8,
+ 0x4c, 0x5a, 0xe1, 0x26, 0xef, 0x33, 0xe1, 0x90, 0x9b, 0xce, 0xe3, 0x8f,
+};
+static const unsigned char kat4120_addinpr2[] = {0};
+static const unsigned char kat4120_retbits[] = {
+ 0xb7, 0x72, 0x3a, 0x01, 0xd3, 0x50, 0x11, 0xa9, 0xa8, 0xe0, 0xe8, 0x2a,
+ 0x8a, 0xde, 0x37, 0xd5, 0xe9, 0x92, 0xd8, 0xcc, 0x53, 0x90, 0xe2, 0x40,
+ 0x9e, 0x18, 0x5a, 0x1b, 0xce, 0xde, 0x39, 0xb7, 0x42, 0xfa, 0x1f, 0xa5,
+ 0x41, 0x57, 0x2a, 0xa3, 0x6b, 0x16, 0xbe, 0x41, 0x0f, 0x3c, 0xa0, 0xca,
+ 0x85, 0x3f, 0xfd, 0x7c, 0xea, 0x29, 0x96, 0xe8, 0x52, 0xb8, 0x88, 0xfe,
+ 0x9b, 0x12, 0x63, 0xf9,
+};
+static const struct drbg_kat_pr_true kat4120_t = {
+ 9, kat4120_entropyin, kat4120_nonce, kat4120_persstr,
+ kat4120_entropyinpr1, kat4120_addinpr1, kat4120_entropyinpr2,
+ kat4120_addinpr2, kat4120_retbits
+};
+static const struct drbg_kat kat4120 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4120_t
+};
+
+static const unsigned char kat4121_entropyin[] = {
+ 0x48, 0xe6, 0x17, 0x78, 0x13, 0xad, 0x0d, 0xd8, 0xda, 0x85, 0x06, 0xa9,
+ 0x1f, 0xe0, 0xd4, 0xe6, 0x15, 0xbd, 0xd0, 0x68, 0xb4, 0x23, 0x05, 0x0a,
+ 0x1d, 0xfc, 0x94, 0xe1, 0xcb, 0xaa, 0x2b, 0xbe, 0xb2, 0xf9, 0x25, 0x61,
+ 0x39, 0x1a, 0x4f, 0x54, 0x14, 0x3a, 0xc4, 0x6a, 0x74, 0xd5, 0x7c, 0x03,
+};
+static const unsigned char kat4121_nonce[] = {0};
+static const unsigned char kat4121_persstr[] = {
+ 0x76, 0x7f, 0xa9, 0x41, 0x28, 0xaa, 0x6e, 0x71, 0xdf, 0xbf, 0xb4, 0xc1,
+ 0x6b, 0xe3, 0x3c, 0x48, 0x94, 0x1c, 0x5c, 0xcb, 0xf9, 0x6e, 0x80, 0x94,
+ 0x36, 0x5f, 0x58, 0x18, 0x10, 0xce, 0x94, 0xb3, 0xfe, 0xb8, 0x96, 0x0b,
+ 0x99, 0xeb, 0x92, 0x5b, 0x0c, 0x61, 0x84, 0xdb, 0x40, 0x34, 0x38, 0x49,
+};
+static const unsigned char kat4121_entropyinpr1[] = {
+ 0xf9, 0xd7, 0x61, 0xf5, 0x89, 0xd8, 0xe4, 0x66, 0x12, 0x32, 0x57, 0xd4,
+ 0xb1, 0x44, 0xe4, 0x01, 0x06, 0xbe, 0x6a, 0x06, 0x36, 0x43, 0x54, 0x7b,
+ 0x85, 0x49, 0x73, 0x31, 0x34, 0xb3, 0x37, 0x57, 0x15, 0x15, 0x72, 0x46,
+ 0xa9, 0xbf, 0x9a, 0x91, 0xf8, 0x54, 0xa3, 0x7c, 0xe7, 0xef, 0xb3, 0xe1,
+};
+static const unsigned char kat4121_addinpr1[] = {0};
+static const unsigned char kat4121_entropyinpr2[] = {
+ 0xb7, 0x74, 0x61, 0x6e, 0x89, 0xa2, 0x29, 0x7c, 0xe5, 0xfe, 0xea, 0x2f,
+ 0x57, 0x08, 0xeb, 0x0f, 0xd2, 0x1f, 0x3a, 0xe1, 0x88, 0xae, 0x25, 0xc6,
+ 0x4c, 0x8b, 0xce, 0xe7, 0x3b, 0xe4, 0x0d, 0xb2, 0xaf, 0x5d, 0x8e, 0x64,
+ 0x0c, 0xcd, 0x48, 0xb8, 0xcd, 0xc7, 0x37, 0x5e, 0x5c, 0x53, 0xca, 0xd7,
+};
+static const unsigned char kat4121_addinpr2[] = {0};
+static const unsigned char kat4121_retbits[] = {
+ 0x0d, 0x42, 0xad, 0x75, 0xa6, 0x70, 0x08, 0x67, 0x4b, 0xe7, 0xd8, 0x1b,
+ 0xb2, 0xca, 0x9f, 0x06, 0x25, 0xb5, 0x5e, 0xa3, 0x7e, 0x19, 0x85, 0xd3,
+ 0xa2, 0x7c, 0xac, 0x38, 0xe3, 0x47, 0x82, 0x4f, 0xf0, 0x3c, 0xaa, 0xae,
+ 0xae, 0x9b, 0x64, 0x6a, 0x22, 0x0a, 0x8a, 0x67, 0x2c, 0xb2, 0x8b, 0xa8,
+ 0x69, 0xd0, 0xf5, 0x3e, 0x33, 0x17, 0xbe, 0x00, 0x12, 0x8f, 0xa9, 0x65,
+ 0xa8, 0xea, 0x7b, 0x39,
+};
+static const struct drbg_kat_pr_true kat4121_t = {
+ 10, kat4121_entropyin, kat4121_nonce, kat4121_persstr,
+ kat4121_entropyinpr1, kat4121_addinpr1, kat4121_entropyinpr2,
+ kat4121_addinpr2, kat4121_retbits
+};
+static const struct drbg_kat kat4121 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4121_t
+};
+
+static const unsigned char kat4122_entropyin[] = {
+ 0x35, 0x07, 0x21, 0x4c, 0x35, 0x9f, 0x4a, 0xb7, 0x59, 0x04, 0xdd, 0x4e,
+ 0x43, 0x0c, 0xcf, 0xd4, 0x84, 0xb8, 0x53, 0xb4, 0x0b, 0x72, 0x53, 0xd4,
+ 0x30, 0x11, 0x15, 0x88, 0x41, 0x0f, 0x1c, 0x9f, 0xc4, 0x1e, 0x75, 0x7f,
+ 0x66, 0x9d, 0x3d, 0xe4, 0x5a, 0x3c, 0x0e, 0xfd, 0xeb, 0x25, 0x0b, 0xd3,
+};
+static const unsigned char kat4122_nonce[] = {0};
+static const unsigned char kat4122_persstr[] = {
+ 0x80, 0x6f, 0x8f, 0xf2, 0x5a, 0xc8, 0xc4, 0xd6, 0x1f, 0xe8, 0xcc, 0x89,
+ 0x5f, 0x5c, 0x5d, 0x2e, 0x15, 0x37, 0x01, 0xb5, 0xc2, 0xcc, 0x8e, 0xf6,
+ 0xb4, 0xff, 0x7e, 0xc5, 0xf6, 0x27, 0x3b, 0x28, 0x56, 0x95, 0x00, 0x00,
+ 0x16, 0xe7, 0xd5, 0xa6, 0x14, 0x5f, 0x4f, 0x98, 0xf4, 0xa4, 0x2b, 0xf9,
+};
+static const unsigned char kat4122_entropyinpr1[] = {
+ 0x83, 0x64, 0xb8, 0x16, 0xf4, 0xc6, 0x43, 0x59, 0xe5, 0x44, 0x15, 0x08,
+ 0x2f, 0xd5, 0xb0, 0x4c, 0xb8, 0x96, 0xbd, 0x5d, 0xe5, 0x52, 0x7b, 0x09,
+ 0x30, 0xfc, 0x6a, 0x85, 0x5d, 0x2a, 0x31, 0xb5, 0x5c, 0xba, 0x81, 0xab,
+ 0x25, 0xb0, 0x19, 0xad, 0xc7, 0xcc, 0x7c, 0x7a, 0x6f, 0x30, 0x8c, 0x4c,
+};
+static const unsigned char kat4122_addinpr1[] = {0};
+static const unsigned char kat4122_entropyinpr2[] = {
+ 0xab, 0x2a, 0x1d, 0x12, 0xb1, 0x99, 0x7f, 0x5a, 0x1b, 0x74, 0xd6, 0x60,
+ 0x8e, 0x60, 0xf0, 0x96, 0x82, 0x92, 0x4f, 0xcc, 0x42, 0x70, 0xfd, 0x5f,
+ 0xab, 0x8e, 0x84, 0xf2, 0xbe, 0x19, 0x30, 0x6e, 0x49, 0x53, 0x7a, 0x40,
+ 0xad, 0xd1, 0x4b, 0xa9, 0xb1, 0x47, 0x2f, 0x80, 0xa9, 0x7a, 0xde, 0x7d,
+};
+static const unsigned char kat4122_addinpr2[] = {0};
+static const unsigned char kat4122_retbits[] = {
+ 0xd5, 0xbe, 0x16, 0x98, 0xe0, 0x11, 0x12, 0x28, 0x74, 0xea, 0x19, 0xc5,
+ 0x62, 0x85, 0x9e, 0x55, 0x2c, 0x68, 0xd2, 0x73, 0x4a, 0x39, 0xf7, 0x2d,
+ 0x6f, 0x8e, 0xca, 0x8c, 0xe3, 0x09, 0x16, 0x50, 0x4b, 0xf2, 0x24, 0x67,
+ 0x0f, 0x9a, 0x7b, 0x6a, 0xfb, 0x57, 0x83, 0x0a, 0x28, 0xfe, 0xc0, 0xfe,
+ 0x81, 0x8d, 0xf4, 0x49, 0xf5, 0xe6, 0xeb, 0x8b, 0x49, 0xa3, 0x39, 0x7d,
+ 0xf4, 0xbd, 0x35, 0x06,
+};
+static const struct drbg_kat_pr_true kat4122_t = {
+ 11, kat4122_entropyin, kat4122_nonce, kat4122_persstr,
+ kat4122_entropyinpr1, kat4122_addinpr1, kat4122_entropyinpr2,
+ kat4122_addinpr2, kat4122_retbits
+};
+static const struct drbg_kat kat4122 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4122_t
+};
+
+static const unsigned char kat4123_entropyin[] = {
+ 0xe6, 0xa8, 0xdd, 0x29, 0xea, 0x2f, 0x9f, 0x2a, 0x45, 0x95, 0xaa, 0x1b,
+ 0x96, 0x00, 0x83, 0x1d, 0x16, 0x47, 0xf5, 0x3f, 0x36, 0x67, 0x24, 0x51,
+ 0x75, 0x69, 0xe2, 0x84, 0x8f, 0x5a, 0x7c, 0xcb, 0x4b, 0xd2, 0xf5, 0x53,
+ 0xf8, 0x3f, 0x91, 0xc1, 0x4c, 0x23, 0x61, 0xcb, 0xc3, 0xec, 0xe9, 0x26,
+};
+static const unsigned char kat4123_nonce[] = {0};
+static const unsigned char kat4123_persstr[] = {
+ 0xdf, 0xa7, 0x44, 0x5d, 0x60, 0xac, 0x90, 0x8b, 0xb0, 0x31, 0xbc, 0xb4,
+ 0xf9, 0xfe, 0xed, 0x62, 0x6a, 0xfa, 0xb1, 0xe4, 0xae, 0xf0, 0x21, 0x86,
+ 0x2e, 0x1f, 0xcd, 0xb3, 0x4f, 0xdd, 0xf9, 0x02, 0x8b, 0x62, 0x26, 0xdf,
+ 0xb1, 0x1f, 0x67, 0x7d, 0xca, 0x42, 0x0c, 0xeb, 0x11, 0x93, 0x05, 0x87,
+};
+static const unsigned char kat4123_entropyinpr1[] = {
+ 0xac, 0x25, 0xbc, 0x06, 0x03, 0xa5, 0x69, 0xb9, 0x0e, 0xfc, 0x79, 0x6a,
+ 0xea, 0x33, 0x86, 0x84, 0xd8, 0x4c, 0x03, 0x24, 0x0d, 0x1b, 0xb3, 0xc9,
+ 0xd3, 0xb2, 0x46, 0x27, 0xfb, 0x24, 0x23, 0x5d, 0x6f, 0xb8, 0x37, 0xfc,
+ 0x38, 0x2c, 0x6c, 0x94, 0x9e, 0xbc, 0x91, 0x1a, 0xba, 0xdf, 0xe9, 0xb5,
+};
+static const unsigned char kat4123_addinpr1[] = {0};
+static const unsigned char kat4123_entropyinpr2[] = {
+ 0x60, 0xfe, 0x48, 0xc0, 0x71, 0x07, 0x3a, 0x81, 0x5e, 0xe7, 0x5a, 0x6b,
+ 0x66, 0xe0, 0xce, 0xc2, 0x1f, 0xa5, 0x10, 0xeb, 0x72, 0x1a, 0x10, 0xce,
+ 0xa6, 0x4e, 0xed, 0x97, 0x7e, 0xfe, 0x89, 0xaf, 0x92, 0x2f, 0x8b, 0xed,
+ 0xad, 0xe8, 0x93, 0x21, 0x2e, 0x6a, 0x25, 0x31, 0x69, 0x82, 0x18, 0x60,
+};
+static const unsigned char kat4123_addinpr2[] = {0};
+static const unsigned char kat4123_retbits[] = {
+ 0xc8, 0x34, 0xa9, 0x0e, 0x72, 0xa5, 0xec, 0x01, 0x48, 0x94, 0x2c, 0x9f,
+ 0xbd, 0xe8, 0xb9, 0x0f, 0x05, 0x88, 0x66, 0xac, 0x3f, 0xf8, 0xcc, 0x85,
+ 0x4b, 0xda, 0x3d, 0x33, 0xf6, 0x07, 0x2b, 0xc0, 0xe5, 0xa2, 0x2c, 0x7d,
+ 0x0c, 0xd8, 0x01, 0xf0, 0x91, 0x27, 0x6e, 0xd7, 0xb7, 0xe3, 0xd6, 0x49,
+ 0x5d, 0xf9, 0x54, 0x6b, 0x9f, 0xc4, 0x5e, 0x46, 0xaa, 0x6b, 0x89, 0xd3,
+ 0xdd, 0xa2, 0x07, 0xcc,
+};
+static const struct drbg_kat_pr_true kat4123_t = {
+ 12, kat4123_entropyin, kat4123_nonce, kat4123_persstr,
+ kat4123_entropyinpr1, kat4123_addinpr1, kat4123_entropyinpr2,
+ kat4123_addinpr2, kat4123_retbits
+};
+static const struct drbg_kat kat4123 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4123_t
+};
+
+static const unsigned char kat4124_entropyin[] = {
+ 0x7f, 0x1a, 0x2a, 0xfa, 0xe1, 0xe6, 0x42, 0xc3, 0x34, 0x8a, 0x0e, 0xe5,
+ 0x6a, 0x0f, 0x4e, 0xbf, 0x13, 0x6d, 0x68, 0xf8, 0xf0, 0x4d, 0xe5, 0x4b,
+ 0x3b, 0xee, 0xce, 0x78, 0x28, 0xaa, 0x43, 0x17, 0x1d, 0x09, 0x57, 0x0b,
+ 0xb7, 0x0f, 0xca, 0x53, 0x77, 0x5e, 0x47, 0x70, 0xe3, 0xd4, 0xcb, 0x84,
+};
+static const unsigned char kat4124_nonce[] = {0};
+static const unsigned char kat4124_persstr[] = {
+ 0xb1, 0x80, 0x5d, 0x90, 0xd9, 0xe4, 0x3a, 0x9e, 0x50, 0x9f, 0x5f, 0x71,
+ 0xba, 0xd5, 0x14, 0xb5, 0x48, 0x80, 0x8b, 0x99, 0x3c, 0xfa, 0xef, 0x7a,
+ 0x69, 0x27, 0x92, 0x39, 0xe6, 0x87, 0xf4, 0xcb, 0xe3, 0xa6, 0xba, 0x57,
+ 0x9e, 0x11, 0xa4, 0xfa, 0x2b, 0x24, 0x50, 0xf8, 0x2c, 0x2f, 0xd3, 0x1a,
+};
+static const unsigned char kat4124_entropyinpr1[] = {
+ 0xed, 0xab, 0x61, 0xda, 0x55, 0x5e, 0xef, 0xf6, 0x11, 0xc0, 0x42, 0x8a,
+ 0x25, 0x20, 0x00, 0x03, 0xa5, 0xac, 0x1c, 0x49, 0x78, 0xa7, 0x66, 0x51,
+ 0x4e, 0x92, 0x22, 0xc8, 0x0a, 0xdd, 0xa7, 0x19, 0x4b, 0x84, 0x14, 0x83,
+ 0x5f, 0x0f, 0xae, 0x94, 0x26, 0x4d, 0x3d, 0x81, 0xd4, 0x9b, 0xec, 0x13,
+};
+static const unsigned char kat4124_addinpr1[] = {0};
+static const unsigned char kat4124_entropyinpr2[] = {
+ 0x78, 0x10, 0xed, 0x74, 0xbd, 0xb0, 0x95, 0xe1, 0xa3, 0xa8, 0xa2, 0xb1,
+ 0xfd, 0x88, 0x5e, 0x21, 0xc3, 0xa2, 0x33, 0x17, 0xb5, 0xa4, 0x51, 0x4a,
+ 0x9b, 0xae, 0x2d, 0x00, 0x72, 0x82, 0x6b, 0xfc, 0x29, 0x2a, 0x23, 0x15,
+ 0x00, 0x70, 0x3a, 0xb0, 0xa1, 0xf0, 0x4c, 0xe3, 0x5b, 0xd3, 0xd8, 0x08,
+};
+static const unsigned char kat4124_addinpr2[] = {0};
+static const unsigned char kat4124_retbits[] = {
+ 0x65, 0x53, 0xc6, 0x30, 0xa0, 0x7d, 0xdf, 0x7d, 0xc2, 0x11, 0x0c, 0x3a,
+ 0xa3, 0xc5, 0xac, 0x0c, 0x48, 0x8a, 0x03, 0x45, 0xe0, 0x75, 0x71, 0xcd,
+ 0x71, 0xdf, 0x11, 0x5b, 0xa3, 0x7e, 0xa4, 0x67, 0x69, 0x35, 0xbe, 0x72,
+ 0xa6, 0x03, 0x3a, 0xec, 0xa7, 0xac, 0x6f, 0xcc, 0xe5, 0x65, 0x4d, 0xae,
+ 0x38, 0xf5, 0x77, 0x7b, 0x5c, 0xff, 0x34, 0xb1, 0x56, 0x53, 0x9b, 0x42,
+ 0xed, 0x6d, 0xc9, 0x3c,
+};
+static const struct drbg_kat_pr_true kat4124_t = {
+ 13, kat4124_entropyin, kat4124_nonce, kat4124_persstr,
+ kat4124_entropyinpr1, kat4124_addinpr1, kat4124_entropyinpr2,
+ kat4124_addinpr2, kat4124_retbits
+};
+static const struct drbg_kat kat4124 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4124_t
+};
+
+static const unsigned char kat4125_entropyin[] = {
+ 0xf7, 0x25, 0x92, 0xe0, 0x62, 0x65, 0x39, 0x90, 0x3b, 0xfe, 0x79, 0x26,
+ 0xf2, 0xdf, 0x89, 0x42, 0x8f, 0xfe, 0x4e, 0xce, 0xeb, 0x57, 0xf0, 0xbe,
+ 0x46, 0xf5, 0xd4, 0xbb, 0x0a, 0xb8, 0xc7, 0x06, 0x33, 0x43, 0x1c, 0x70,
+ 0x05, 0x6e, 0x05, 0x1b, 0x2a, 0x44, 0xa9, 0x9f, 0xb2, 0xde, 0xcc, 0x80,
+};
+static const unsigned char kat4125_nonce[] = {0};
+static const unsigned char kat4125_persstr[] = {
+ 0x27, 0xb9, 0x25, 0x0c, 0x01, 0x18, 0x9a, 0x8a, 0x67, 0x5d, 0x59, 0x7c,
+ 0xd2, 0xe4, 0x76, 0xd1, 0x1f, 0x4f, 0xea, 0xa2, 0x9c, 0xe2, 0xd9, 0xe7,
+ 0x29, 0xee, 0xed, 0xe4, 0x2d, 0x9b, 0x78, 0x52, 0x19, 0x37, 0xd2, 0x40,
+ 0xb1, 0x2d, 0xb5, 0x49, 0x3a, 0xee, 0x96, 0xb8, 0x41, 0x02, 0xcd, 0x9c,
+};
+static const unsigned char kat4125_entropyinpr1[] = {
+ 0x2b, 0x38, 0x77, 0xed, 0x4d, 0x1b, 0x31, 0x74, 0xd3, 0x6e, 0x78, 0x4a,
+ 0xd7, 0xb6, 0xb7, 0x99, 0x1d, 0xd5, 0x29, 0x79, 0xca, 0x5b, 0x1c, 0x4c,
+ 0xc5, 0xf4, 0x15, 0xea, 0x56, 0xaa, 0x78, 0xf2, 0x48, 0x6e, 0x2b, 0x03,
+ 0x35, 0x70, 0x08, 0x9a, 0xa0, 0xe8, 0xf5, 0xd4, 0xbe, 0x3e, 0xe1, 0x40,
+};
+static const unsigned char kat4125_addinpr1[] = {0};
+static const unsigned char kat4125_entropyinpr2[] = {
+ 0x91, 0xd4, 0x21, 0xc3, 0xeb, 0x04, 0xde, 0x94, 0x09, 0x9a, 0x74, 0x67,
+ 0x25, 0x4b, 0xad, 0x70, 0xe2, 0x36, 0xd5, 0xc2, 0x76, 0x16, 0xf7, 0x66,
+ 0xe8, 0x5b, 0x4d, 0xe3, 0x96, 0x50, 0x01, 0xdb, 0x85, 0x4e, 0x61, 0xa8,
+ 0x0b, 0xfe, 0xc2, 0xea, 0xcb, 0x4f, 0xf9, 0x3e, 0xca, 0xfb, 0x8b, 0x83,
+};
+static const unsigned char kat4125_addinpr2[] = {0};
+static const unsigned char kat4125_retbits[] = {
+ 0xed, 0x70, 0x3d, 0x92, 0x73, 0xbb, 0x94, 0x62, 0xac, 0x40, 0x0e, 0xe8,
+ 0xd5, 0x87, 0xea, 0x3c, 0x4d, 0x6c, 0x27, 0xaa, 0x01, 0x4d, 0xef, 0xcb,
+ 0x6c, 0xa6, 0xfe, 0x88, 0x52, 0x72, 0xbc, 0xb4, 0xb6, 0xba, 0x08, 0x22,
+ 0xf4, 0x29, 0x41, 0x07, 0x1b, 0xf6, 0x35, 0xb4, 0x1d, 0x99, 0x7c, 0x63,
+ 0x1b, 0x68, 0x0d, 0x91, 0xb2, 0x3e, 0xe4, 0x83, 0x51, 0x04, 0x1d, 0xc2,
+ 0x74, 0x90, 0x08, 0x21,
+};
+static const struct drbg_kat_pr_true kat4125_t = {
+ 14, kat4125_entropyin, kat4125_nonce, kat4125_persstr,
+ kat4125_entropyinpr1, kat4125_addinpr1, kat4125_entropyinpr2,
+ kat4125_addinpr2, kat4125_retbits
+};
+static const struct drbg_kat kat4125 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4125_t
+};
+
+static const unsigned char kat4126_entropyin[] = {
+ 0xc5, 0x48, 0x05, 0x27, 0x4b, 0xde, 0x00, 0xaa, 0x52, 0x89, 0xe0, 0x51,
+ 0x35, 0x79, 0x01, 0x97, 0x07, 0x66, 0x6d, 0x2f, 0xa7, 0xa1, 0xc8, 0x90,
+ 0x88, 0x65, 0x89, 0x1c, 0x87, 0xc0, 0xc6, 0x52, 0x33, 0x5a, 0x4d, 0x3c,
+ 0xc4, 0x15, 0xbc, 0x30, 0x74, 0x2b, 0x16, 0x46, 0x47, 0xf8, 0x82, 0x0f,
+};
+static const unsigned char kat4126_nonce[] = {0};
+static const unsigned char kat4126_persstr[] = {
+ 0xd6, 0x3f, 0xb5, 0xaf, 0xa2, 0x10, 0x1f, 0xa4, 0xb8, 0xa6, 0xc3, 0xb8,
+ 0x9d, 0x9c, 0x25, 0x0a, 0xc7, 0x28, 0xfc, 0x1d, 0xda, 0xd0, 0xe7, 0x58,
+ 0x5b, 0x5d, 0x54, 0x72, 0x8e, 0xd2, 0x0c, 0x2f, 0x94, 0x0e, 0x89, 0x15,
+ 0x55, 0x96, 0xe3, 0xb9, 0x63, 0x63, 0x5b, 0x6d, 0x60, 0x88, 0x16, 0x4b,
+};
+static const unsigned char kat4126_entropyinpr1[] = {
+ 0xb2, 0xad, 0x31, 0xd1, 0xf2, 0x0d, 0xcf, 0x30, 0xdd, 0x52, 0x6e, 0xc9,
+ 0x15, 0x6c, 0x07, 0xf2, 0x70, 0x21, 0x6b, 0xdb, 0x59, 0x19, 0x73, 0x25,
+ 0xba, 0xb1, 0x80, 0x67, 0x59, 0x29, 0x88, 0x8a, 0xb6, 0x99, 0xc5, 0x4f,
+ 0xb2, 0x18, 0x19, 0xb7, 0xd9, 0x21, 0xd6, 0x34, 0x6b, 0xff, 0x2f, 0x7f,
+};
+static const unsigned char kat4126_addinpr1[] = {
+ 0x74, 0x4b, 0xfa, 0xe3, 0xc2, 0x3a, 0x5c, 0xc9, 0xa3, 0xb3, 0x73, 0xb6,
+ 0xc5, 0x07, 0x95, 0x06, 0x8d, 0x35, 0xeb, 0x8a, 0x33, 0x97, 0x46, 0xac,
+ 0x81, 0x0d, 0x16, 0xf8, 0x64, 0xe8, 0x80, 0x06, 0x10, 0x82, 0xed, 0xf9,
+ 0xd2, 0x68, 0x7c, 0x21, 0x19, 0x60, 0xaa, 0x83, 0x40, 0x0f, 0x85, 0xf9,
+};
+static const unsigned char kat4126_entropyinpr2[] = {
+ 0xec, 0xa4, 0x49, 0x04, 0x8d, 0x26, 0xfd, 0x38, 0xf8, 0xca, 0x43, 0x52,
+ 0x37, 0xdc, 0xe6, 0x6e, 0xad, 0xec, 0x70, 0x69, 0xee, 0x5d, 0xd0, 0xb7,
+ 0x00, 0x84, 0xb8, 0x19, 0xa7, 0x11, 0xc0, 0x82, 0x0a, 0x75, 0x56, 0xbb,
+ 0xd0, 0xae, 0x20, 0xf0, 0x6e, 0x51, 0x69, 0x27, 0x8b, 0x59, 0x3b, 0x71,
+};
+static const unsigned char kat4126_addinpr2[] = {
+ 0xad, 0x55, 0xc6, 0x82, 0x96, 0x2a, 0xa4, 0xfe, 0x9e, 0xbc, 0x22, 0x7c,
+ 0x94, 0x02, 0xe7, 0x9b, 0x0a, 0xa7, 0x87, 0x48, 0x44, 0xd3, 0x3e, 0xae,
+ 0xe7, 0xe2, 0xd1, 0x5b, 0xaf, 0x81, 0xd9, 0xd3, 0x39, 0x36, 0xe4, 0xd9,
+ 0x3f, 0x28, 0xad, 0x10, 0x96, 0x57, 0xb5, 0x12, 0xae, 0xe1, 0x15, 0xa5,
+};
+static const unsigned char kat4126_retbits[] = {
+ 0xf0, 0x8f, 0xdf, 0xc1, 0x77, 0x5b, 0x6f, 0xeb, 0x5a, 0x41, 0x77, 0x11,
+ 0x0b, 0xf2, 0x9d, 0x7c, 0x3a, 0xb7, 0x15, 0xdf, 0xdc, 0x4b, 0x27, 0x20,
+ 0x03, 0x59, 0x28, 0x8c, 0x06, 0x24, 0xbd, 0x5c, 0x10, 0x28, 0xac, 0xc9,
+ 0x91, 0x4d, 0x88, 0xa8, 0x2b, 0x09, 0xf5, 0xea, 0xaf, 0xdc, 0x3b, 0xca,
+ 0x85, 0x47, 0xb9, 0x84, 0x81, 0xdf, 0x39, 0xb8, 0x65, 0x04, 0x31, 0x42,
+ 0x21, 0xcb, 0xdc, 0x3c,
+};
+static const struct drbg_kat_pr_true kat4126_t = {
+ 0, kat4126_entropyin, kat4126_nonce, kat4126_persstr,
+ kat4126_entropyinpr1, kat4126_addinpr1, kat4126_entropyinpr2,
+ kat4126_addinpr2, kat4126_retbits
+};
+static const struct drbg_kat kat4126 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4126_t
+};
+
+static const unsigned char kat4127_entropyin[] = {
+ 0x2c, 0xff, 0x59, 0xc3, 0xf1, 0xe6, 0xb9, 0xd5, 0x3a, 0x90, 0x95, 0xa1,
+ 0xf5, 0xc1, 0x96, 0x5f, 0x90, 0x5a, 0xa8, 0xa4, 0x8d, 0xbd, 0x2d, 0xdf,
+ 0xa9, 0x6e, 0x13, 0x00, 0xcf, 0x17, 0xfe, 0xf2, 0xc2, 0xbe, 0xe7, 0xa1,
+ 0xa3, 0xd4, 0x97, 0x6a, 0x14, 0xd7, 0x44, 0x36, 0x61, 0x13, 0x4d, 0xc0,
+};
+static const unsigned char kat4127_nonce[] = {0};
+static const unsigned char kat4127_persstr[] = {
+ 0xbd, 0x63, 0xca, 0x83, 0x29, 0xb5, 0x30, 0xd8, 0x04, 0x37, 0x68, 0x38,
+ 0x2c, 0x9c, 0x42, 0xb3, 0x03, 0x4a, 0xef, 0x78, 0xdd, 0xcc, 0x3e, 0x62,
+ 0x35, 0x67, 0x62, 0x9d, 0x09, 0x65, 0x90, 0x7c, 0x4f, 0x49, 0x19, 0xe7,
+ 0xc4, 0x41, 0x2b, 0x6a, 0x90, 0x4f, 0x9f, 0x49, 0xb3, 0x7b, 0x2c, 0xa0,
+};
+static const unsigned char kat4127_entropyinpr1[] = {
+ 0xd3, 0x30, 0xe1, 0xa5, 0x89, 0x22, 0xc3, 0x4e, 0xce, 0x4e, 0xdd, 0xcc,
+ 0x9d, 0xa6, 0x83, 0xa8, 0x42, 0x67, 0xb5, 0xc7, 0x13, 0x77, 0xea, 0x18,
+ 0x6e, 0xc6, 0xbf, 0xcc, 0x33, 0xc2, 0x85, 0xea, 0x5d, 0xcc, 0x40, 0x4b,
+ 0x2c, 0xd9, 0x71, 0xf6, 0xee, 0x6e, 0x6d, 0x83, 0x60, 0xfe, 0x4b, 0xcb,
+};
+static const unsigned char kat4127_addinpr1[] = {
+ 0x6a, 0x63, 0x6b, 0xe1, 0x19, 0xc6, 0xda, 0x0d, 0x6c, 0x5c, 0xe3, 0x98,
+ 0x54, 0xed, 0xa3, 0x9f, 0xd7, 0x0d, 0x95, 0x99, 0x05, 0x9d, 0x45, 0x9c,
+ 0x92, 0x3d, 0xa1, 0xa1, 0xea, 0x21, 0x51, 0x27, 0x57, 0xec, 0x03, 0xe3,
+ 0x8a, 0x78, 0xa0, 0x14, 0x94, 0xb7, 0x7f, 0x67, 0x26, 0x17, 0x43, 0x97,
+};
+static const unsigned char kat4127_entropyinpr2[] = {
+ 0x0b, 0x99, 0xcb, 0xe0, 0xa8, 0xdd, 0x51, 0xe0, 0xf8, 0xf4, 0xb7, 0x42,
+ 0xf7, 0xf1, 0x50, 0x16, 0xd7, 0xba, 0x9d, 0x3d, 0x65, 0xc7, 0x4a, 0x49,
+ 0xf1, 0xf7, 0x1c, 0x52, 0x2d, 0xb3, 0xf2, 0x44, 0x99, 0xfc, 0x18, 0x5f,
+ 0x18, 0x9b, 0x28, 0xca, 0x30, 0xd2, 0x5e, 0xf7, 0xdf, 0xb4, 0xbf, 0xfa,
+};
+static const unsigned char kat4127_addinpr2[] = {
+ 0xbf, 0x1b, 0x49, 0x33, 0x63, 0x4b, 0x86, 0x88, 0xef, 0x78, 0x9b, 0xc7,
+ 0x3f, 0x09, 0xef, 0x9a, 0x58, 0x3f, 0x6a, 0x29, 0xc7, 0xa1, 0x37, 0x79,
+ 0xd5, 0xe8, 0x4e, 0x92, 0x14, 0x27, 0xce, 0x3a, 0x71, 0x37, 0x02, 0xda,
+ 0x97, 0x13, 0x94, 0x7c, 0xfd, 0xba, 0x90, 0xfd, 0x24, 0xb4, 0x8e, 0x20,
+};
+static const unsigned char kat4127_retbits[] = {
+ 0x2a, 0x3e, 0x62, 0x4c, 0x69, 0xa5, 0x4f, 0xb7, 0x83, 0xcc, 0xaa, 0xfd,
+ 0x9a, 0x7f, 0x43, 0xd1, 0x91, 0xa5, 0xd6, 0x6c, 0xe7, 0x0e, 0xa9, 0xbb,
+ 0x28, 0x02, 0xe2, 0x19, 0xca, 0x4f, 0x5a, 0xfd, 0x7c, 0x69, 0x97, 0xf4,
+ 0x6b, 0xbb, 0xd1, 0xa0, 0x2f, 0x04, 0x60, 0x82, 0xd8, 0xc2, 0xf4, 0x09,
+ 0xbc, 0x8e, 0xc8, 0xfb, 0x88, 0xdc, 0x5b, 0x2e, 0x69, 0x3e, 0x20, 0x96,
+ 0x17, 0x26, 0x7c, 0x65,
+};
+static const struct drbg_kat_pr_true kat4127_t = {
+ 1, kat4127_entropyin, kat4127_nonce, kat4127_persstr,
+ kat4127_entropyinpr1, kat4127_addinpr1, kat4127_entropyinpr2,
+ kat4127_addinpr2, kat4127_retbits
+};
+static const struct drbg_kat kat4127 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4127_t
+};
+
+static const unsigned char kat4128_entropyin[] = {
+ 0x1d, 0x43, 0x01, 0x3a, 0x69, 0x3a, 0x9c, 0x8b, 0x0d, 0x0a, 0xed, 0xa1,
+ 0x2c, 0x66, 0x1c, 0xbf, 0xed, 0xf4, 0x15, 0x33, 0xf5, 0xe1, 0x83, 0x57,
+ 0x70, 0xf2, 0xba, 0xb8, 0x68, 0xfc, 0x91, 0x9d, 0x4e, 0xd3, 0x8b, 0x8b,
+ 0x8e, 0x2d, 0xc5, 0x8e, 0x3e, 0x4b, 0xb9, 0x8b, 0x70, 0x72, 0x64, 0xfa,
+};
+static const unsigned char kat4128_nonce[] = {0};
+static const unsigned char kat4128_persstr[] = {
+ 0x42, 0xe8, 0x59, 0x55, 0xf2, 0x2b, 0xb7, 0x65, 0x30, 0xaf, 0x28, 0x8b,
+ 0xf0, 0xd9, 0x23, 0xa1, 0x16, 0xf3, 0xb3, 0x80, 0x7b, 0xe3, 0x9f, 0xdb,
+ 0x2a, 0x5e, 0xeb, 0x31, 0x63, 0x9d, 0xab, 0x6d, 0xa1, 0x47, 0x25, 0x57,
+ 0xf7, 0x51, 0x18, 0xf0, 0x4b, 0xee, 0xb6, 0x0f, 0x71, 0xa9, 0x21, 0x53,
+};
+static const unsigned char kat4128_entropyinpr1[] = {
+ 0x43, 0x97, 0x64, 0xaf, 0x3d, 0xd7, 0x6e, 0x8d, 0x6b, 0x29, 0x08, 0xa4,
+ 0x96, 0x2d, 0xb9, 0x3f, 0xfc, 0xf3, 0x22, 0x83, 0x6a, 0x41, 0x74, 0xc7,
+ 0xce, 0xc5, 0xd2, 0xd1, 0xa1, 0x68, 0xbe, 0x97, 0x2c, 0xd1, 0xc1, 0x1d,
+ 0x1a, 0xc7, 0x31, 0xf0, 0xa2, 0x66, 0xbe, 0x34, 0x0c, 0xaa, 0x5f, 0xe1,
+};
+static const unsigned char kat4128_addinpr1[] = {
+ 0x79, 0xd4, 0xfb, 0xc7, 0x42, 0x50, 0xe8, 0xe6, 0xe5, 0xab, 0xd0, 0x1c,
+ 0xec, 0xd0, 0x8d, 0x49, 0x77, 0x42, 0xda, 0x79, 0x87, 0xfa, 0xfd, 0xbe,
+ 0x17, 0x0b, 0x68, 0x73, 0xfb, 0xa8, 0x06, 0x79, 0xee, 0xaa, 0x4f, 0x4b,
+ 0xcd, 0xe4, 0x0d, 0xb5, 0x37, 0x26, 0x44, 0xb8, 0x62, 0x0e, 0x55, 0xee,
+};
+static const unsigned char kat4128_entropyinpr2[] = {
+ 0xed, 0xb7, 0xa1, 0xb3, 0xf3, 0x3f, 0xf3, 0xba, 0x79, 0xd1, 0x2f, 0xe5,
+ 0x57, 0xa4, 0x86, 0x52, 0x2d, 0x53, 0x5d, 0xbe, 0xed, 0x92, 0x80, 0xee,
+ 0x1b, 0x1e, 0x7c, 0x7a, 0xac, 0x66, 0x3b, 0x64, 0xae, 0x9a, 0x30, 0xa8,
+ 0xb7, 0xb0, 0xcb, 0xd6, 0x84, 0x6c, 0x82, 0x52, 0x1b, 0x4c, 0x9e, 0xe5,
+};
+static const unsigned char kat4128_addinpr2[] = {
+ 0x6c, 0xa5, 0x97, 0xcc, 0xad, 0xd6, 0x5b, 0x82, 0x62, 0x95, 0x72, 0xb7,
+ 0x23, 0xa1, 0xc0, 0x8a, 0x52, 0xdb, 0x2d, 0xe3, 0x27, 0x47, 0xe1, 0x29,
+ 0x81, 0xa4, 0xdf, 0xe3, 0xef, 0xc5, 0x57, 0x71, 0x25, 0x19, 0xe5, 0x17,
+ 0x0e, 0x72, 0x74, 0xcf, 0xe1, 0x75, 0x36, 0x00, 0x97, 0xe4, 0xa1, 0xbb,
+};
+static const unsigned char kat4128_retbits[] = {
+ 0xbb, 0x84, 0x01, 0x04, 0xe9, 0xf8, 0x48, 0x4b, 0xfb, 0xa3, 0xb1, 0xec,
+ 0x96, 0x31, 0xb6, 0x29, 0xdd, 0xa1, 0x39, 0x45, 0xe9, 0xa5, 0x10, 0x6a,
+ 0x8a, 0x37, 0x9d, 0x15, 0xf1, 0xe8, 0x38, 0xf8, 0xd4, 0xe5, 0x63, 0x30,
+ 0x9e, 0x5f, 0xd1, 0x2d, 0x48, 0xa0, 0xb4, 0x2e, 0xe3, 0x48, 0x55, 0x6c,
+ 0xbe, 0xf9, 0x65, 0xf2, 0xd4, 0xeb, 0xac, 0x35, 0x1b, 0x97, 0xe2, 0xd1,
+ 0x0e, 0x46, 0x78, 0x6e,
+};
+static const struct drbg_kat_pr_true kat4128_t = {
+ 2, kat4128_entropyin, kat4128_nonce, kat4128_persstr,
+ kat4128_entropyinpr1, kat4128_addinpr1, kat4128_entropyinpr2,
+ kat4128_addinpr2, kat4128_retbits
+};
+static const struct drbg_kat kat4128 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4128_t
+};
+
+static const unsigned char kat4129_entropyin[] = {
+ 0x3b, 0x21, 0xe6, 0x92, 0xbd, 0x92, 0x4a, 0x5b, 0x35, 0x3b, 0xed, 0xf6,
+ 0x13, 0xb4, 0x8a, 0x07, 0x19, 0x1a, 0xf4, 0x58, 0xfc, 0xe7, 0x09, 0x64,
+ 0x3d, 0x22, 0xde, 0x6e, 0x21, 0x29, 0xf8, 0x18, 0xb5, 0x19, 0x29, 0x67,
+ 0x96, 0x2d, 0xaf, 0xe7, 0x10, 0x5d, 0xf0, 0xda, 0xed, 0xd7, 0xe5, 0x5a,
+};
+static const unsigned char kat4129_nonce[] = {0};
+static const unsigned char kat4129_persstr[] = {
+ 0x9d, 0x4b, 0xa4, 0x5c, 0x96, 0x68, 0x5f, 0x0d, 0xf0, 0xc2, 0x9b, 0x11,
+ 0x3a, 0xbe, 0xc4, 0x4e, 0xb8, 0x14, 0xcd, 0x7b, 0x7f, 0x95, 0xf5, 0x41,
+ 0x14, 0xbd, 0x9c, 0x26, 0x3f, 0xde, 0x33, 0xf9, 0x6d, 0x69, 0xd1, 0x9c,
+ 0x2a, 0x1b, 0x44, 0x66, 0x98, 0x1f, 0xd1, 0x61, 0xbd, 0x47, 0xbc, 0x02,
+};
+static const unsigned char kat4129_entropyinpr1[] = {
+ 0xba, 0x0d, 0x6a, 0x68, 0x2f, 0xe7, 0x47, 0xb8, 0x64, 0x09, 0x03, 0x9d,
+ 0x15, 0xae, 0xe4, 0x96, 0x66, 0x97, 0x0d, 0x36, 0xef, 0x2b, 0x56, 0x8a,
+ 0xd4, 0xf9, 0x4e, 0x66, 0x61, 0x48, 0xe9, 0x24, 0xb7, 0xc3, 0x82, 0x15,
+ 0xeb, 0xb9, 0x40, 0x26, 0x3b, 0x43, 0xbb, 0xf9, 0x2e, 0xac, 0x51, 0xa8,
+};
+static const unsigned char kat4129_addinpr1[] = {
+ 0xb2, 0x09, 0xef, 0xc3, 0x62, 0xaf, 0x96, 0x52, 0x32, 0x5e, 0x94, 0x7a,
+ 0xf6, 0x29, 0xdf, 0xbe, 0x06, 0x40, 0x7b, 0x4e, 0x0f, 0x1a, 0x0f, 0xca,
+ 0x4c, 0xfa, 0x5f, 0x05, 0xc6, 0x41, 0x75, 0x39, 0xb6, 0x17, 0x67, 0x4d,
+ 0x41, 0x3a, 0xcd, 0x52, 0xc4, 0x4c, 0x88, 0x63, 0x08, 0xaa, 0xa5, 0xfe,
+};
+static const unsigned char kat4129_entropyinpr2[] = {
+ 0xb4, 0xc4, 0xd3, 0x6f, 0x90, 0xe2, 0x6e, 0x48, 0xdf, 0xc9, 0xd6, 0x6b,
+ 0xbe, 0x70, 0x61, 0xe2, 0xb2, 0xc8, 0x89, 0x8f, 0x74, 0xa4, 0x94, 0x5f,
+ 0xca, 0x13, 0x95, 0xd7, 0x18, 0xe9, 0xdf, 0x9b, 0x9f, 0x46, 0xc6, 0xf7,
+ 0xda, 0xc8, 0x92, 0x30, 0xf8, 0x2c, 0xd9, 0x4a, 0xf0, 0xea, 0xbe, 0x99,
+};
+static const unsigned char kat4129_addinpr2[] = {
+ 0xfa, 0x2d, 0x74, 0xe7, 0x2f, 0x2a, 0xd9, 0x6a, 0x6f, 0xf1, 0xa4, 0x39,
+ 0xeb, 0xc1, 0xff, 0xe2, 0x55, 0x0e, 0xae, 0x32, 0xd6, 0xa2, 0xfb, 0xe4,
+ 0x15, 0x11, 0x57, 0xef, 0x8c, 0xc4, 0xe6, 0xc4, 0x72, 0x2b, 0x5f, 0xb3,
+ 0xce, 0x4f, 0x09, 0x40, 0xc8, 0xf6, 0x99, 0x63, 0x52, 0xec, 0x2a, 0xdf,
+};
+static const unsigned char kat4129_retbits[] = {
+ 0x67, 0xd3, 0x1d, 0x1a, 0xd3, 0x9c, 0xeb, 0xd4, 0xce, 0x25, 0x90, 0x2d,
+ 0x15, 0x1e, 0xce, 0x06, 0xdd, 0x31, 0x87, 0xc4, 0xb1, 0xa8, 0x32, 0xc3,
+ 0x0c, 0x49, 0xbf, 0x3b, 0xe2, 0x04, 0x44, 0xab, 0x9a, 0x05, 0xa9, 0x9b,
+ 0x6b, 0x06, 0xe6, 0xcf, 0x40, 0x01, 0x77, 0x77, 0x69, 0xc4, 0x43, 0x52,
+ 0xb1, 0x9b, 0x46, 0x18, 0xbb, 0xa2, 0x6f, 0x0b, 0xc6, 0xda, 0xd4, 0x87,
+ 0xc3, 0x24, 0xd9, 0xf0,
+};
+static const struct drbg_kat_pr_true kat4129_t = {
+ 3, kat4129_entropyin, kat4129_nonce, kat4129_persstr,
+ kat4129_entropyinpr1, kat4129_addinpr1, kat4129_entropyinpr2,
+ kat4129_addinpr2, kat4129_retbits
+};
+static const struct drbg_kat kat4129 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4129_t
+};
+
+static const unsigned char kat4130_entropyin[] = {
+ 0x9c, 0xa0, 0x80, 0xf1, 0x8f, 0xe4, 0xe3, 0xd0, 0x77, 0x4a, 0x58, 0x94,
+ 0x0a, 0x5e, 0xc6, 0x1c, 0x98, 0x97, 0xe9, 0x71, 0x04, 0x45, 0x86, 0xa1,
+ 0xca, 0x68, 0x61, 0xd3, 0x3a, 0xdd, 0xd2, 0xbe, 0xed, 0x7e, 0xd9, 0x65,
+ 0xbb, 0x28, 0x7b, 0x80, 0xc8, 0x45, 0x84, 0x6e, 0xdb, 0x72, 0x8b, 0x6b,
+};
+static const unsigned char kat4130_nonce[] = {0};
+static const unsigned char kat4130_persstr[] = {
+ 0x13, 0x8a, 0xfd, 0x91, 0x0e, 0x08, 0x41, 0x43, 0x05, 0x2e, 0x58, 0xd5,
+ 0xbe, 0x06, 0x0c, 0xf8, 0x49, 0x01, 0xf1, 0x4c, 0xb4, 0x9c, 0xba, 0x38,
+ 0xf7, 0x46, 0xbd, 0x86, 0x12, 0x11, 0xb9, 0x32, 0x7d, 0x59, 0xaa, 0x8e,
+ 0xf9, 0xfc, 0xaa, 0x37, 0x00, 0x7b, 0x79, 0xee, 0x6c, 0x60, 0xb0, 0x63,
+};
+static const unsigned char kat4130_entropyinpr1[] = {
+ 0x89, 0xaf, 0x2d, 0xe4, 0x06, 0x4b, 0xf6, 0x09, 0x51, 0x16, 0x0a, 0x57,
+ 0x01, 0x80, 0xb8, 0x9f, 0xac, 0x86, 0x08, 0xdf, 0x31, 0x46, 0x11, 0x4b,
+ 0xd8, 0xc7, 0x8d, 0xd8, 0xf9, 0xdf, 0x90, 0x8f, 0xee, 0xf6, 0x61, 0x20,
+ 0x73, 0x42, 0xda, 0x61, 0x03, 0x97, 0xd1, 0x34, 0xe7, 0x76, 0xca, 0x4d,
+};
+static const unsigned char kat4130_addinpr1[] = {
+ 0x10, 0x13, 0x6c, 0x42, 0xa1, 0x19, 0x4c, 0x44, 0xe0, 0xfe, 0x24, 0x0d,
+ 0x84, 0x9d, 0x73, 0x58, 0x10, 0x20, 0x7f, 0x79, 0x9a, 0x46, 0xea, 0xdc,
+ 0xe9, 0x74, 0x48, 0x04, 0x4e, 0x58, 0xd5, 0x4c, 0x53, 0xe5, 0xc6, 0x12,
+ 0xde, 0x99, 0xeb, 0x62, 0x25, 0x29, 0x3a, 0xc5, 0x59, 0x22, 0xe9, 0x56,
+};
+static const unsigned char kat4130_entropyinpr2[] = {
+ 0xa2, 0x68, 0xd6, 0xfc, 0xc6, 0xc8, 0x8f, 0x0f, 0xf7, 0x2f, 0x8a, 0x23,
+ 0x65, 0xf7, 0xdf, 0x2e, 0x68, 0x66, 0x4b, 0x2f, 0x1e, 0x95, 0x5e, 0xc5,
+ 0xe3, 0xc7, 0x0d, 0x87, 0xb0, 0x96, 0xe7, 0x6a, 0xe6, 0xb6, 0x8e, 0x95,
+ 0x16, 0xbc, 0xdc, 0xf1, 0x01, 0x1b, 0x12, 0xd0, 0x9c, 0xb3, 0x7c, 0xb1,
+};
+static const unsigned char kat4130_addinpr2[] = {
+ 0x29, 0x97, 0x29, 0x8a, 0xe9, 0xf3, 0x62, 0x85, 0x72, 0xca, 0xe7, 0x00,
+ 0x00, 0xf5, 0xeb, 0x02, 0xd7, 0x2e, 0x4b, 0x22, 0xd3, 0x37, 0xd8, 0x1a,
+ 0xb8, 0xd7, 0xa2, 0xbb, 0x72, 0x8f, 0xe0, 0x1e, 0xd1, 0xc7, 0x7d, 0xd3,
+ 0x86, 0xe0, 0xcb, 0x5f, 0x00, 0xc5, 0x06, 0xbc, 0x45, 0x4f, 0x87, 0xa8,
+};
+static const unsigned char kat4130_retbits[] = {
+ 0x37, 0xc4, 0x77, 0x55, 0x81, 0x2b, 0xa3, 0x95, 0x90, 0x16, 0x0a, 0xe8,
+ 0x6f, 0xb1, 0xd8, 0x77, 0x11, 0xa5, 0xbb, 0xbd, 0xe1, 0x7e, 0x4c, 0x98,
+ 0x49, 0x1c, 0xb3, 0xe2, 0x84, 0x12, 0x47, 0xe0, 0xfe, 0x21, 0xa6, 0xdc,
+ 0x40, 0xe1, 0xa9, 0x8e, 0xce, 0x4f, 0x81, 0x50, 0xbd, 0x48, 0x3a, 0x0f,
+ 0xfd, 0xa7, 0x2e, 0xaa, 0x0e, 0x28, 0x2a, 0x2a, 0x8c, 0xd2, 0x04, 0x44,
+ 0xa0, 0x27, 0x55, 0xd1,
+};
+static const struct drbg_kat_pr_true kat4130_t = {
+ 4, kat4130_entropyin, kat4130_nonce, kat4130_persstr,
+ kat4130_entropyinpr1, kat4130_addinpr1, kat4130_entropyinpr2,
+ kat4130_addinpr2, kat4130_retbits
+};
+static const struct drbg_kat kat4130 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4130_t
+};
+
+static const unsigned char kat4131_entropyin[] = {
+ 0xfd, 0x5a, 0xa2, 0x6d, 0x9b, 0x25, 0x42, 0x2f, 0xb7, 0xe8, 0xda, 0x8d,
+ 0x8d, 0x67, 0x89, 0xf3, 0x65, 0x1d, 0x57, 0x3b, 0x9e, 0xa7, 0xc9, 0x76,
+ 0x4f, 0x5b, 0x9e, 0xcb, 0x5c, 0x0c, 0x36, 0xb9, 0xbd, 0xad, 0xd4, 0xe4,
+ 0xbb, 0x72, 0xe4, 0xc6, 0xae, 0xb4, 0x37, 0x88, 0xc7, 0x4c, 0x7e, 0x65,
+};
+static const unsigned char kat4131_nonce[] = {0};
+static const unsigned char kat4131_persstr[] = {
+ 0xcc, 0x74, 0x2d, 0x7b, 0x10, 0x25, 0xbe, 0xb2, 0x96, 0x5d, 0x4e, 0x76,
+ 0xe9, 0xd5, 0x7e, 0x7d, 0xcb, 0x29, 0x77, 0xf1, 0x6a, 0x99, 0x7f, 0x13,
+ 0x26, 0xda, 0x10, 0x70, 0xcf, 0x9f, 0x69, 0x9a, 0xf4, 0x39, 0x0c, 0xe5,
+ 0x62, 0x4f, 0x05, 0xc6, 0xa1, 0xc0, 0x1a, 0xd2, 0xf6, 0x70, 0xe1, 0x34,
+};
+static const unsigned char kat4131_entropyinpr1[] = {
+ 0x6d, 0x34, 0x24, 0x0b, 0xd2, 0xb0, 0xc9, 0x2e, 0xf9, 0x21, 0xbb, 0xb0,
+ 0xf2, 0x17, 0xea, 0xa4, 0xd7, 0xc6, 0x82, 0x46, 0x36, 0xf1, 0x99, 0x3c,
+ 0x22, 0x02, 0xec, 0x5f, 0xd7, 0x3c, 0x08, 0xee, 0x21, 0xe7, 0x22, 0x55,
+ 0x30, 0xa6, 0x4e, 0x6a, 0xd5, 0x63, 0x07, 0xbd, 0x47, 0x56, 0xeb, 0x29,
+};
+static const unsigned char kat4131_addinpr1[] = {
+ 0x64, 0x71, 0x26, 0xa0, 0xd2, 0x34, 0x2c, 0xee, 0xa7, 0x2c, 0x28, 0x0a,
+ 0x30, 0x19, 0xb4, 0xb1, 0x3e, 0xc9, 0xbf, 0x5e, 0x61, 0x53, 0xcb, 0x63,
+ 0x1f, 0x76, 0x72, 0x5d, 0xdb, 0x01, 0x63, 0xc4, 0xa9, 0xe0, 0xee, 0xe6,
+ 0xb8, 0xc2, 0xc9, 0x63, 0x3a, 0xa0, 0xe3, 0x78, 0x5b, 0xd5, 0xb5, 0xdf,
+};
+static const unsigned char kat4131_entropyinpr2[] = {
+ 0x6f, 0xc6, 0x6d, 0x8d, 0x9b, 0xed, 0x58, 0xe7, 0x53, 0xa4, 0x06, 0x73,
+ 0x9a, 0x63, 0xde, 0xb6, 0xf7, 0xf3, 0xd4, 0xba, 0xcf, 0xdb, 0x75, 0x6e,
+ 0x3d, 0xff, 0x34, 0xbd, 0xe0, 0x81, 0xf1, 0xf3, 0x48, 0xcf, 0x0e, 0xd4,
+ 0xa1, 0x18, 0xf0, 0x96, 0x0d, 0xa5, 0x2a, 0x4c, 0x14, 0xa7, 0x9b, 0xa3,
+};
+static const unsigned char kat4131_addinpr2[] = {
+ 0xa6, 0xf9, 0x69, 0x0a, 0x36, 0x98, 0xfa, 0xba, 0x80, 0x6f, 0x23, 0x4f,
+ 0x8a, 0xf7, 0xbc, 0x1b, 0x39, 0xb5, 0xd6, 0xe4, 0x2b, 0xd1, 0xe4, 0x1e,
+ 0x19, 0x58, 0x0e, 0x4f, 0x90, 0xf7, 0x3f, 0xc7, 0x14, 0x40, 0x1a, 0xee,
+ 0x6c, 0xbf, 0x47, 0xd0, 0x43, 0x79, 0x5c, 0xb0, 0x62, 0x6f, 0x1c, 0x05,
+};
+static const unsigned char kat4131_retbits[] = {
+ 0xa2, 0x73, 0x94, 0x78, 0xb2, 0x25, 0xb9, 0x11, 0xb6, 0x4f, 0x33, 0xa0,
+ 0x88, 0x88, 0xda, 0x7c, 0x2d, 0xd3, 0x3f, 0x00, 0xe9, 0x11, 0x96, 0xf2,
+ 0x39, 0x5a, 0xb9, 0xc4, 0x12, 0x9c, 0x0d, 0x14, 0x99, 0xc6, 0x1e, 0x17,
+ 0x5b, 0x11, 0x10, 0x41, 0x39, 0x1c, 0x2b, 0x33, 0xd8, 0x96, 0x25, 0x69,
+ 0xe0, 0xb9, 0xba, 0x16, 0xa0, 0xaa, 0x97, 0xe1, 0xde, 0x8d, 0xa5, 0xb7,
+ 0x9d, 0x9b, 0xdd, 0x19,
+};
+static const struct drbg_kat_pr_true kat4131_t = {
+ 5, kat4131_entropyin, kat4131_nonce, kat4131_persstr,
+ kat4131_entropyinpr1, kat4131_addinpr1, kat4131_entropyinpr2,
+ kat4131_addinpr2, kat4131_retbits
+};
+static const struct drbg_kat kat4131 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4131_t
+};
+
+static const unsigned char kat4132_entropyin[] = {
+ 0xa1, 0xa4, 0xf2, 0xbc, 0x0d, 0xf9, 0x58, 0x6f, 0x92, 0x50, 0xc9, 0xd1,
+ 0xd7, 0xeb, 0x2f, 0x05, 0x25, 0x2a, 0x91, 0x58, 0x07, 0x87, 0x2e, 0x5f,
+ 0x4d, 0x23, 0x75, 0xa9, 0x1b, 0x0b, 0x91, 0x5a, 0xeb, 0xa1, 0xad, 0x62,
+ 0x99, 0x0b, 0x14, 0xd5, 0xed, 0xcb, 0xd7, 0x2e, 0x62, 0xfd, 0xfc, 0xb9,
+};
+static const unsigned char kat4132_nonce[] = {0};
+static const unsigned char kat4132_persstr[] = {
+ 0x1d, 0x3b, 0xc4, 0xb3, 0xe5, 0xd4, 0x26, 0x36, 0xf2, 0x6c, 0x9d, 0xc4,
+ 0xf0, 0xa6, 0x77, 0x80, 0xd8, 0x3e, 0x6e, 0x85, 0xeb, 0x59, 0x2a, 0x43,
+ 0xa3, 0xaa, 0xbc, 0x8e, 0x69, 0x39, 0xd8, 0x30, 0x8f, 0x61, 0xd6, 0x35,
+ 0x41, 0x52, 0x5f, 0xf5, 0xff, 0x8b, 0xb0, 0xe7, 0xf7, 0xd8, 0xc8, 0x05,
+};
+static const unsigned char kat4132_entropyinpr1[] = {
+ 0xa5, 0x65, 0x5d, 0x85, 0x83, 0xff, 0x51, 0xa5, 0xb4, 0xf8, 0xef, 0xec,
+ 0x8e, 0xe0, 0x7d, 0x26, 0x16, 0x9b, 0x2d, 0x40, 0x7c, 0xee, 0x51, 0xec,
+ 0x05, 0xfc, 0xea, 0x5a, 0x4a, 0x96, 0x0d, 0x40, 0x6e, 0xe9, 0x1d, 0x89,
+ 0xcf, 0x7f, 0xb6, 0xa4, 0xa2, 0x86, 0x82, 0x68, 0xc9, 0x5e, 0xf2, 0x59,
+};
+static const unsigned char kat4132_addinpr1[] = {
+ 0xe0, 0x62, 0xb1, 0x38, 0xa2, 0x87, 0x5d, 0xb0, 0x87, 0xea, 0x10, 0xe7,
+ 0xa6, 0xff, 0xce, 0x2e, 0xf9, 0x03, 0xe1, 0x90, 0xd5, 0x66, 0xf4, 0xaa,
+ 0x65, 0x17, 0x8a, 0x27, 0x8d, 0x02, 0xa1, 0x2f, 0x20, 0xa4, 0xbc, 0x63,
+ 0xd9, 0xb1, 0xcf, 0x35, 0xd0, 0xf0, 0x88, 0x6d, 0x53, 0x77, 0xc9, 0xde,
+};
+static const unsigned char kat4132_entropyinpr2[] = {
+ 0x2b, 0x22, 0xba, 0xae, 0x89, 0xe5, 0x3c, 0xac, 0x2e, 0x2f, 0xc0, 0x54,
+ 0xed, 0x1a, 0x82, 0x4a, 0xad, 0x6b, 0xdc, 0x59, 0xfe, 0x65, 0x8a, 0x23,
+ 0x6a, 0x5b, 0x35, 0x2d, 0x28, 0xc0, 0x32, 0xf4, 0x58, 0x32, 0xd3, 0x36,
+ 0x0d, 0x43, 0xf0, 0xc3, 0x92, 0x91, 0xf7, 0x13, 0x86, 0x12, 0x47, 0x8f,
+};
+static const unsigned char kat4132_addinpr2[] = {
+ 0x80, 0xad, 0x06, 0xa7, 0xa3, 0x63, 0x30, 0xae, 0x20, 0x99, 0xab, 0x48,
+ 0x09, 0x79, 0x46, 0x58, 0xf4, 0x42, 0x0b, 0x4d, 0xfb, 0x48, 0x19, 0x0a,
+ 0xd4, 0x0d, 0xc7, 0xd2, 0xcb, 0x68, 0xb7, 0xa0, 0x83, 0xee, 0x41, 0xd9,
+ 0x32, 0x45, 0x30, 0x2a, 0xcb, 0x2f, 0xeb, 0xed, 0xa1, 0x0b, 0xbb, 0x3e,
+};
+static const unsigned char kat4132_retbits[] = {
+ 0xe7, 0xa8, 0x88, 0x90, 0x19, 0x8f, 0x0c, 0x96, 0xdd, 0x6d, 0xa3, 0xfa,
+ 0x69, 0xd1, 0x85, 0x0f, 0xed, 0x1f, 0x6e, 0x87, 0x09, 0x52, 0xe8, 0xa2,
+ 0xe0, 0x96, 0xa9, 0x9d, 0xdc, 0xf5, 0x58, 0x3d, 0xb7, 0xf1, 0xe4, 0x0d,
+ 0xa1, 0xd3, 0x31, 0x93, 0xac, 0x6d, 0xc9, 0x66, 0x09, 0xcd, 0xa9, 0x3b,
+ 0x13, 0x0a, 0x72, 0xfe, 0xbf, 0x18, 0x8e, 0x8a, 0xf8, 0xd9, 0xbc, 0x2d,
+ 0x9d, 0x61, 0x99, 0x77,
+};
+static const struct drbg_kat_pr_true kat4132_t = {
+ 6, kat4132_entropyin, kat4132_nonce, kat4132_persstr,
+ kat4132_entropyinpr1, kat4132_addinpr1, kat4132_entropyinpr2,
+ kat4132_addinpr2, kat4132_retbits
+};
+static const struct drbg_kat kat4132 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4132_t
+};
+
+static const unsigned char kat4133_entropyin[] = {
+ 0x82, 0x6c, 0xad, 0xb8, 0x1d, 0x73, 0x2e, 0xe7, 0x6d, 0x7d, 0x14, 0xcf,
+ 0x90, 0xb6, 0xc2, 0x40, 0x62, 0x17, 0xe1, 0x7f, 0xe5, 0x9f, 0xb2, 0xc2,
+ 0xf3, 0x02, 0xe4, 0xc5, 0xf9, 0x2e, 0xc3, 0xbd, 0x7a, 0xb0, 0x8b, 0x8d,
+ 0x38, 0xc1, 0xa1, 0xdd, 0x79, 0x1e, 0xf1, 0xb4, 0xae, 0x20, 0x73, 0x0e,
+};
+static const unsigned char kat4133_nonce[] = {0};
+static const unsigned char kat4133_persstr[] = {
+ 0x74, 0x67, 0x7e, 0x19, 0xd7, 0x2a, 0x86, 0xb9, 0xf2, 0x4e, 0xd8, 0x7a,
+ 0x7d, 0xb2, 0xec, 0x3b, 0xeb, 0x6b, 0xf8, 0x99, 0x6b, 0xaa, 0x16, 0x73,
+ 0x31, 0x23, 0xd5, 0x81, 0x99, 0x07, 0x57, 0x9b, 0xab, 0xaa, 0x3b, 0x6d,
+ 0xb6, 0xdb, 0xfe, 0x77, 0x7b, 0x9f, 0x41, 0xc4, 0x69, 0x75, 0xa8, 0x49,
+};
+static const unsigned char kat4133_entropyinpr1[] = {
+ 0xd8, 0xb8, 0xb1, 0x1e, 0xc1, 0x18, 0x14, 0x72, 0xa5, 0x29, 0x64, 0x29,
+ 0xbb, 0x42, 0x1b, 0xa5, 0x2e, 0xb6, 0x5c, 0x4b, 0x18, 0x70, 0xe5, 0xad,
+ 0x97, 0x55, 0x0b, 0xe1, 0xde, 0x7a, 0xd2, 0x38, 0xa2, 0x2b, 0x1f, 0xd1,
+ 0x61, 0xe8, 0x05, 0x4e, 0x9c, 0xd5, 0xc1, 0x64, 0x36, 0x95, 0x44, 0x4a,
+};
+static const unsigned char kat4133_addinpr1[] = {
+ 0x19, 0xc4, 0xa6, 0xca, 0x42, 0x1a, 0xab, 0x58, 0x57, 0x30, 0xc1, 0x6c,
+ 0x95, 0x5d, 0x6d, 0xf1, 0xb4, 0x94, 0x95, 0xfd, 0x46, 0xcc, 0x6c, 0x7a,
+ 0x60, 0xd1, 0xf4, 0x1b, 0xf5, 0x22, 0xa1, 0x14, 0x33, 0xe8, 0x5a, 0x57,
+ 0x21, 0xfd, 0xd0, 0x14, 0xdf, 0xc0, 0x60, 0x04, 0x99, 0x3e, 0x1a, 0x1e,
+};
+static const unsigned char kat4133_entropyinpr2[] = {
+ 0xdc, 0x67, 0x51, 0x6d, 0xfb, 0xba, 0xd6, 0x30, 0x10, 0xec, 0x0f, 0xf8,
+ 0x7d, 0xe4, 0xd7, 0xd6, 0xeb, 0x97, 0x2e, 0x3d, 0xb7, 0xbd, 0x09, 0x13,
+ 0x67, 0xec, 0x09, 0x89, 0xa7, 0x51, 0xfd, 0x29, 0x7b, 0x24, 0xe9, 0xe2,
+ 0x14, 0x8e, 0x43, 0x09, 0x96, 0x7e, 0x3b, 0x98, 0x82, 0x4e, 0x41, 0xf6,
+};
+static const unsigned char kat4133_addinpr2[] = {
+ 0x3f, 0x74, 0x5f, 0xe2, 0xa4, 0x60, 0x2c, 0xd5, 0xf5, 0x55, 0x94, 0xed,
+ 0xd3, 0x96, 0x63, 0x52, 0xec, 0x64, 0xd6, 0x4b, 0x11, 0xfa, 0x37, 0x40,
+ 0x2b, 0xb6, 0x92, 0x56, 0x50, 0x25, 0xd2, 0x2f, 0x3b, 0x9b, 0x6d, 0xcb,
+ 0x5e, 0xe5, 0xf4, 0x78, 0x49, 0x53, 0x3e, 0x0a, 0x80, 0x1c, 0x07, 0xc1,
+};
+static const unsigned char kat4133_retbits[] = {
+ 0xf0, 0x02, 0x81, 0xc9, 0x23, 0x9d, 0x2f, 0xfa, 0xc5, 0x67, 0xfa, 0x70,
+ 0x06, 0xc6, 0x39, 0x50, 0x0c, 0xa0, 0xbf, 0xb5, 0x42, 0x57, 0x0c, 0xad,
+ 0x8b, 0x62, 0xa3, 0x37, 0xb1, 0x71, 0x98, 0x4f, 0x3f, 0x05, 0x86, 0x00,
+ 0xdf, 0x0d, 0x52, 0x91, 0xa0, 0x42, 0x97, 0x7c, 0x60, 0xa6, 0x00, 0x5a,
+ 0x1d, 0x93, 0xa0, 0x79, 0x3c, 0xe4, 0xe9, 0xef, 0x1d, 0x39, 0x56, 0xe8,
+ 0xf2, 0xc2, 0x62, 0x35,
+};
+static const struct drbg_kat_pr_true kat4133_t = {
+ 7, kat4133_entropyin, kat4133_nonce, kat4133_persstr,
+ kat4133_entropyinpr1, kat4133_addinpr1, kat4133_entropyinpr2,
+ kat4133_addinpr2, kat4133_retbits
+};
+static const struct drbg_kat kat4133 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4133_t
+};
+
+static const unsigned char kat4134_entropyin[] = {
+ 0xe3, 0xc2, 0xee, 0x57, 0xa9, 0xe8, 0x71, 0x8e, 0x79, 0x6e, 0x4b, 0x6f,
+ 0xe1, 0x03, 0x3e, 0x0f, 0xe9, 0xd4, 0x03, 0x36, 0x52, 0x43, 0x40, 0x3a,
+ 0x1e, 0xce, 0xdc, 0xd8, 0x38, 0x73, 0x57, 0xb3, 0x27, 0x92, 0xfa, 0xf9,
+ 0x4b, 0xa6, 0xe7, 0xb5, 0xdb, 0x3a, 0x0a, 0x3f, 0x41, 0xdd, 0xb9, 0xac,
+};
+static const unsigned char kat4134_nonce[] = {0};
+static const unsigned char kat4134_persstr[] = {
+ 0x72, 0x12, 0x23, 0xde, 0x1e, 0x83, 0x0b, 0xbc, 0x80, 0x6a, 0x68, 0x99,
+ 0x53, 0x01, 0x2f, 0x06, 0xcb, 0x3e, 0x9f, 0x55, 0x62, 0x55, 0x2a, 0xe1,
+ 0xeb, 0x2c, 0x49, 0xc6, 0x52, 0x92, 0xe8, 0x90, 0x33, 0xc4, 0x37, 0x2d,
+ 0x0c, 0xe8, 0x66, 0x1a, 0xf7, 0xb5, 0xb7, 0x48, 0xfd, 0x44, 0x9a, 0x02,
+};
+static const unsigned char kat4134_entropyinpr1[] = {
+ 0xe2, 0x63, 0x2a, 0xd9, 0xc2, 0xf5, 0x70, 0x47, 0x4f, 0xdb, 0xa5, 0xfd,
+ 0x1f, 0x12, 0x55, 0xc8, 0x88, 0xc3, 0x5d, 0xa4, 0xa2, 0x91, 0x04, 0xae,
+ 0x82, 0x51, 0xff, 0x80, 0xe0, 0xda, 0x36, 0x3f, 0x69, 0x25, 0x33, 0x90,
+ 0xa5, 0xf0, 0x79, 0xcc, 0x89, 0xf6, 0x16, 0x9f, 0xd2, 0x66, 0x4f, 0xf9,
+};
+static const unsigned char kat4134_addinpr1[] = {
+ 0x1b, 0xcd, 0x7c, 0x86, 0xe5, 0x96, 0x99, 0x59, 0x45, 0x4e, 0x20, 0x8e,
+ 0x1d, 0x78, 0x85, 0xfb, 0x35, 0x27, 0x60, 0x34, 0xc6, 0xd8, 0xb4, 0xee,
+ 0x91, 0x65, 0x6b, 0xe5, 0xe6, 0xf1, 0xbe, 0x89, 0x9c, 0x72, 0xc1, 0xff,
+ 0x3d, 0xb3, 0xdc, 0x7d, 0x99, 0xeb, 0x05, 0x33, 0x53, 0x85, 0x9e, 0x22,
+};
+static const unsigned char kat4134_entropyinpr2[] = {
+ 0x8a, 0xc8, 0x78, 0x2b, 0x91, 0xcb, 0x38, 0x87, 0x93, 0xac, 0x51, 0x2a,
+ 0x5c, 0xad, 0x2c, 0x89, 0x87, 0x9b, 0x7c, 0x83, 0xc3, 0x71, 0xab, 0xeb,
+ 0x4d, 0xd9, 0x1f, 0x9b, 0x06, 0x4b, 0x02, 0xab, 0x30, 0x7e, 0x50, 0xe5,
+ 0x0d, 0xd7, 0x61, 0xf2, 0x3d, 0x25, 0xb5, 0x95, 0xbe, 0x89, 0xaa, 0x96,
+};
+static const unsigned char kat4134_addinpr2[] = {
+ 0xa9, 0x73, 0x6d, 0xf4, 0xc5, 0x60, 0xe1, 0xf3, 0x89, 0x7f, 0xa4, 0x19,
+ 0xb8, 0x8c, 0x36, 0x31, 0x5d, 0x47, 0x9e, 0xc3, 0x33, 0x7e, 0xd5, 0x84,
+ 0x8d, 0xb2, 0x46, 0xb3, 0xf7, 0x0c, 0xf2, 0x6e, 0x69, 0x14, 0x78, 0x1e,
+ 0x59, 0xe3, 0xac, 0xbd, 0xb4, 0xf2, 0x91, 0x02, 0x74, 0x23, 0x8b, 0xaf,
+};
+static const unsigned char kat4134_retbits[] = {
+ 0x03, 0x2d, 0x8c, 0x6c, 0x8c, 0x7f, 0x9f, 0x18, 0x8d, 0xb3, 0x43, 0x69,
+ 0x99, 0xd1, 0x08, 0x51, 0x18, 0xb8, 0x77, 0x2b, 0x57, 0xc0, 0xdd, 0x74,
+ 0x20, 0xa2, 0x71, 0x7e, 0x3f, 0xaf, 0xa4, 0x12, 0x47, 0xad, 0xd1, 0x22,
+ 0x1b, 0x04, 0x9a, 0x76, 0x1f, 0x1e, 0x72, 0x6b, 0x1c, 0x13, 0xfe, 0x58,
+ 0xfb, 0xcf, 0xda, 0x18, 0xf1, 0x2f, 0xa6, 0x90, 0x6c, 0x80, 0xfb, 0x2b,
+ 0x23, 0xaf, 0xff, 0xd6,
+};
+static const struct drbg_kat_pr_true kat4134_t = {
+ 8, kat4134_entropyin, kat4134_nonce, kat4134_persstr,
+ kat4134_entropyinpr1, kat4134_addinpr1, kat4134_entropyinpr2,
+ kat4134_addinpr2, kat4134_retbits
+};
+static const struct drbg_kat kat4134 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4134_t
+};
+
+static const unsigned char kat4135_entropyin[] = {
+ 0x81, 0x73, 0x83, 0xa6, 0x51, 0x52, 0x17, 0x54, 0x3f, 0xc3, 0x48, 0xde,
+ 0xa8, 0xf2, 0xbc, 0xd2, 0x93, 0xe5, 0xda, 0x19, 0xac, 0x2e, 0xfc, 0xd4,
+ 0xf2, 0xda, 0xb9, 0xac, 0x02, 0x99, 0xc8, 0xb6, 0xfa, 0xc7, 0x92, 0xbf,
+ 0x07, 0x03, 0x23, 0x38, 0x3c, 0x44, 0x20, 0x9f, 0x87, 0x5d, 0xb9, 0xdb,
+};
+static const unsigned char kat4135_nonce[] = {0};
+static const unsigned char kat4135_persstr[] = {
+ 0xc9, 0xb0, 0x8c, 0x5f, 0xfe, 0x51, 0xad, 0x3a, 0xb8, 0xec, 0x86, 0xfd,
+ 0x32, 0xb0, 0x94, 0x1f, 0x69, 0x93, 0x38, 0x4f, 0x76, 0xeb, 0x5b, 0xdb,
+ 0x5c, 0xbd, 0x51, 0x94, 0x9a, 0xaf, 0x9f, 0xa6, 0xd2, 0x74, 0x4a, 0xd8,
+ 0x89, 0x20, 0x78, 0xbe, 0x85, 0xdc, 0xdb, 0x77, 0x9a, 0x49, 0x10, 0xd0,
+};
+static const unsigned char kat4135_entropyinpr1[] = {
+ 0x59, 0x07, 0x05, 0x44, 0xc5, 0xa5, 0xb6, 0x67, 0xae, 0x83, 0x85, 0xf0,
+ 0xd7, 0x4d, 0xee, 0x17, 0x11, 0x25, 0x6d, 0x17, 0x9e, 0x78, 0x6c, 0xb2,
+ 0x76, 0x4a, 0xe4, 0x91, 0xf1, 0xeb, 0x16, 0xc3, 0x5a, 0xb4, 0x91, 0x11,
+ 0x76, 0x39, 0xe0, 0x83, 0xf6, 0x37, 0x3b, 0x2e, 0xdc, 0x23, 0xf7, 0x8b,
+};
+static const unsigned char kat4135_addinpr1[] = {
+ 0xe8, 0x69, 0x59, 0x46, 0x97, 0xbe, 0x99, 0x68, 0xdb, 0x21, 0xa2, 0x68,
+ 0xb7, 0x5e, 0x55, 0x68, 0xb4, 0x67, 0x91, 0x72, 0x12, 0x7b, 0xfc, 0x23,
+ 0x24, 0x46, 0xec, 0x70, 0xc7, 0xb2, 0xf6, 0x1f, 0x8b, 0xff, 0x4f, 0x8b,
+ 0xdb, 0x5a, 0xe7, 0x1e, 0x8e, 0xff, 0x1e, 0x2f, 0x61, 0xdc, 0xfe, 0x2a,
+};
+static const unsigned char kat4135_entropyinpr2[] = {
+ 0x07, 0xfe, 0x61, 0xec, 0xbb, 0x4b, 0x67, 0x58, 0xdf, 0xda, 0x73, 0xe1,
+ 0xac, 0x86, 0x1f, 0xc4, 0x7b, 0x03, 0x5c, 0xe4, 0x41, 0xf3, 0x74, 0xbb,
+ 0xeb, 0x37, 0xdc, 0x65, 0xde, 0x61, 0xb2, 0x2d, 0x1c, 0x44, 0x3b, 0xc1,
+ 0x6b, 0x8e, 0x49, 0x16, 0x85, 0x83, 0xa2, 0xf2, 0x09, 0x56, 0x94, 0xc6,
+};
+static const unsigned char kat4135_addinpr2[] = {
+ 0x4e, 0x4f, 0x06, 0x6a, 0xf8, 0x3b, 0x30, 0x9e, 0x9f, 0x4f, 0x7f, 0xaf,
+ 0xc0, 0xf8, 0x97, 0x15, 0xc5, 0xf5, 0xc3, 0xc9, 0xde, 0x4e, 0xaf, 0x0a,
+ 0xa3, 0x84, 0x08, 0x19, 0xb8, 0xf0, 0xe7, 0x01, 0x51, 0xf4, 0x43, 0x33,
+ 0x6a, 0x6d, 0xeb, 0x60, 0xad, 0x23, 0xdc, 0x85, 0x2c, 0xab, 0x5b, 0x48,
+};
+static const unsigned char kat4135_retbits[] = {
+ 0x5c, 0x11, 0xa0, 0x13, 0x81, 0xc0, 0x86, 0x5e, 0xf4, 0x8e, 0x28, 0x7c,
+ 0x28, 0x56, 0xd2, 0x66, 0x88, 0x11, 0xce, 0x69, 0x2e, 0x49, 0x82, 0xda,
+ 0x51, 0xad, 0x3f, 0x13, 0xd5, 0xcc, 0xe8, 0xef, 0xaf, 0xa3, 0x7b, 0x5f,
+ 0xa9, 0xa7, 0x4f, 0xe3, 0xb3, 0xe5, 0x42, 0x4f, 0xbd, 0xf7, 0xcb, 0x54,
+ 0x4a, 0x84, 0x0d, 0xf5, 0xe1, 0x6c, 0xd5, 0x89, 0x87, 0x9d, 0xb0, 0xfd,
+ 0xc3, 0xdb, 0xc2, 0xf1,
+};
+static const struct drbg_kat_pr_true kat4135_t = {
+ 9, kat4135_entropyin, kat4135_nonce, kat4135_persstr,
+ kat4135_entropyinpr1, kat4135_addinpr1, kat4135_entropyinpr2,
+ kat4135_addinpr2, kat4135_retbits
+};
+static const struct drbg_kat kat4135 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4135_t
+};
+
+static const unsigned char kat4136_entropyin[] = {
+ 0xb9, 0x4a, 0x0e, 0x27, 0x64, 0x4c, 0x2f, 0xbb, 0xd3, 0xca, 0x0b, 0xda,
+ 0xb9, 0xfb, 0xc9, 0xf6, 0x24, 0x7d, 0x58, 0x54, 0x81, 0x53, 0x38, 0x51,
+ 0x48, 0xab, 0xc2, 0x11, 0x93, 0x2d, 0x28, 0x55, 0x7a, 0xd4, 0x45, 0x64,
+ 0x78, 0xd9, 0xf3, 0xfe, 0x98, 0x83, 0x11, 0x0e, 0x01, 0xd5, 0x04, 0xc6,
+};
+static const unsigned char kat4136_nonce[] = {0};
+static const unsigned char kat4136_persstr[] = {
+ 0xb6, 0x15, 0xd1, 0x29, 0x06, 0x56, 0x88, 0x59, 0xd4, 0x17, 0x6f, 0x71,
+ 0xce, 0x16, 0xdb, 0xe5, 0x26, 0xfb, 0x97, 0xdd, 0xdc, 0x20, 0x10, 0x24,
+ 0x23, 0x20, 0x9c, 0xe0, 0x92, 0x3f, 0x5b, 0x8e, 0x04, 0x8c, 0xfe, 0x9d,
+ 0x67, 0x05, 0xbb, 0x54, 0xea, 0x4e, 0x7d, 0x92, 0x58, 0x01, 0xb8, 0xa8,
+};
+static const unsigned char kat4136_entropyinpr1[] = {
+ 0xc6, 0xdb, 0xc6, 0xac, 0x40, 0xd3, 0x95, 0x24, 0x64, 0x55, 0x28, 0x21,
+ 0x4b, 0x80, 0xff, 0xf3, 0xd0, 0xd6, 0x62, 0xf4, 0x2c, 0x10, 0xc9, 0x09,
+ 0xf1, 0x2c, 0x15, 0x6d, 0x3c, 0xa8, 0x5a, 0x0d, 0x18, 0x8e, 0xca, 0x30,
+ 0x0c, 0xa9, 0x6b, 0x95, 0xfd, 0x7e, 0xf2, 0xee, 0x03, 0x09, 0x13, 0x3d,
+};
+static const unsigned char kat4136_addinpr1[] = {
+ 0xb2, 0x42, 0x24, 0xc2, 0xb4, 0x14, 0xaf, 0xb9, 0xc4, 0x1a, 0xd8, 0x0e,
+ 0x97, 0x64, 0x7a, 0xf2, 0x68, 0x4e, 0x5d, 0x48, 0xd7, 0xb3, 0x30, 0xae,
+ 0x49, 0x3c, 0xbf, 0xfe, 0x60, 0x8b, 0xd1, 0x78, 0xae, 0xdd, 0xfb, 0x37,
+ 0x7a, 0xb8, 0x6a, 0xb6, 0x12, 0xed, 0x9a, 0xa2, 0x41, 0x08, 0x89, 0x53,
+};
+static const unsigned char kat4136_entropyinpr2[] = {
+ 0x0e, 0x15, 0xcc, 0x3f, 0xb7, 0x1c, 0xbf, 0x02, 0x69, 0x08, 0x9a, 0x6e,
+ 0xf6, 0xe7, 0x26, 0x81, 0x99, 0x47, 0x44, 0x00, 0xa3, 0x16, 0x21, 0xeb,
+ 0xf9, 0xf3, 0x16, 0x6f, 0x3d, 0xd8, 0x48, 0x3e, 0x87, 0xff, 0xed, 0x62,
+ 0xd9, 0x8a, 0xcc, 0x3b, 0x75, 0x68, 0xd3, 0xad, 0x73, 0xbb, 0xee, 0x3c,
+};
+static const unsigned char kat4136_addinpr2[] = {
+ 0x34, 0x31, 0xc0, 0x83, 0xe3, 0x3f, 0x29, 0xa3, 0x9e, 0xc6, 0xa3, 0x59,
+ 0xbd, 0x52, 0xc0, 0x05, 0x65, 0xbd, 0x67, 0x6b, 0x1e, 0xc9, 0xfa, 0x61,
+ 0xbd, 0x58, 0x36, 0x43, 0xdb, 0x4d, 0xf1, 0xe4, 0xb1, 0x27, 0x48, 0x51,
+ 0x6a, 0x41, 0xbf, 0x6e, 0x24, 0x2e, 0x75, 0xb5, 0x08, 0x4f, 0x7e, 0x45,
+};
+static const unsigned char kat4136_retbits[] = {
+ 0x1a, 0xa6, 0x40, 0xe2, 0xbf, 0x9c, 0xe8, 0xbb, 0xa6, 0xe1, 0xe0, 0x37,
+ 0x2d, 0xc3, 0x12, 0x0b, 0xe9, 0x85, 0x83, 0x41, 0xd8, 0x63, 0x96, 0xbc,
+ 0x29, 0x06, 0x91, 0xec, 0x57, 0xcd, 0xbb, 0xe9, 0x6b, 0x73, 0x8f, 0xfb,
+ 0x2d, 0x51, 0x80, 0x03, 0x68, 0xe9, 0x31, 0x90, 0x01, 0x07, 0x9d, 0xd9,
+ 0xbf, 0x0e, 0xb2, 0xc0, 0x36, 0x7d, 0xea, 0xb4, 0x7f, 0x60, 0x3b, 0x65,
+ 0x1d, 0xdb, 0x1a, 0xd9,
+};
+static const struct drbg_kat_pr_true kat4136_t = {
+ 10, kat4136_entropyin, kat4136_nonce, kat4136_persstr,
+ kat4136_entropyinpr1, kat4136_addinpr1, kat4136_entropyinpr2,
+ kat4136_addinpr2, kat4136_retbits
+};
+static const struct drbg_kat kat4136 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4136_t
+};
+
+static const unsigned char kat4137_entropyin[] = {
+ 0x8a, 0xb5, 0x7a, 0x4f, 0xb7, 0xfc, 0x06, 0x69, 0x5b, 0xc7, 0xb4, 0x08,
+ 0x32, 0xe1, 0xdf, 0x5b, 0x99, 0x81, 0x33, 0x2c, 0xbd, 0x37, 0xa3, 0x46,
+ 0x9a, 0x64, 0x63, 0x5d, 0xff, 0xe3, 0xa7, 0xb8, 0x4e, 0x1a, 0x37, 0x14,
+ 0xd6, 0x50, 0xe5, 0x3b, 0xff, 0x11, 0x5a, 0xfc, 0xc3, 0xb1, 0x41, 0xb4,
+};
+static const unsigned char kat4137_nonce[] = {0};
+static const unsigned char kat4137_persstr[] = {
+ 0x09, 0xf7, 0x6e, 0xe9, 0xd8, 0x06, 0x0f, 0xae, 0xaa, 0xaa, 0x68, 0xef,
+ 0x02, 0xf4, 0x4a, 0xb9, 0xe7, 0x4b, 0xa1, 0xd1, 0x0d, 0x8f, 0xd1, 0x28,
+ 0x1e, 0xb2, 0xbc, 0x20, 0xda, 0x2e, 0x48, 0xa0, 0xab, 0xf9, 0xd1, 0x42,
+ 0xa6, 0x7e, 0xfc, 0x6b, 0xd4, 0x8b, 0x1f, 0x46, 0xfc, 0xe0, 0x82, 0xa6,
+};
+static const unsigned char kat4137_entropyinpr1[] = {
+ 0x62, 0x80, 0x95, 0xc0, 0x0e, 0xa0, 0x7e, 0xef, 0x51, 0xb1, 0x74, 0xae,
+ 0xa4, 0x03, 0x00, 0x2a, 0xbb, 0x1c, 0x4b, 0x02, 0xe3, 0x02, 0x54, 0x5c,
+ 0x4d, 0x78, 0xe3, 0xad, 0xae, 0x33, 0xcb, 0x7e, 0x5e, 0xe4, 0x8b, 0x57,
+ 0x39, 0x77, 0xc0, 0x47, 0x24, 0xe0, 0x9f, 0xb6, 0x89, 0x64, 0x47, 0x57,
+};
+static const unsigned char kat4137_addinpr1[] = {
+ 0x6a, 0xcd, 0x6a, 0x37, 0x99, 0x6c, 0x87, 0xda, 0x16, 0x8e, 0xec, 0xfa,
+ 0x1b, 0x2d, 0x51, 0x5a, 0x3e, 0x02, 0xc9, 0xc9, 0x3b, 0x2b, 0xf6, 0xb0,
+ 0xe9, 0x7b, 0xcf, 0xcd, 0x15, 0xe3, 0x5e, 0x02, 0xbd, 0xcc, 0xeb, 0xad,
+ 0xe2, 0x53, 0xcf, 0x4c, 0xe6, 0xfd, 0x80, 0x34, 0xe8, 0x0d, 0xcc, 0x7d,
+};
+static const unsigned char kat4137_entropyinpr2[] = {
+ 0x57, 0xf5, 0xe2, 0x13, 0x3c, 0x46, 0xbb, 0x96, 0x02, 0x85, 0xee, 0x69,
+ 0xdc, 0x80, 0x5b, 0x1d, 0x1e, 0xa2, 0x44, 0x45, 0xce, 0xe8, 0x96, 0xce,
+ 0x14, 0x0b, 0xde, 0xab, 0x64, 0x89, 0xa2, 0x6c, 0x40, 0x10, 0xd4, 0x2a,
+ 0x4d, 0xf1, 0x96, 0x3b, 0x5f, 0x8d, 0x2b, 0x9c, 0x7d, 0x97, 0x52, 0x0f,
+};
+static const unsigned char kat4137_addinpr2[] = {
+ 0x98, 0x0e, 0x6d, 0xbb, 0x1d, 0x25, 0x66, 0x9d, 0x38, 0xbf, 0xf0, 0xcb,
+ 0xc6, 0x91, 0xde, 0x84, 0x5a, 0x57, 0x00, 0x1f, 0x36, 0x59, 0x58, 0xd1,
+ 0x84, 0xe9, 0xea, 0xb5, 0xbf, 0x81, 0xa7, 0xc3, 0xef, 0x60, 0x7d, 0x1f,
+ 0xe9, 0xc9, 0x3b, 0xfd, 0x61, 0x4f, 0x2b, 0xed, 0x20, 0x06, 0x5b, 0x84,
+};
+static const unsigned char kat4137_retbits[] = {
+ 0x03, 0x2a, 0xcc, 0x5c, 0xab, 0xbe, 0xf2, 0x79, 0x18, 0xb6, 0xd3, 0xab,
+ 0x05, 0x09, 0x38, 0x3e, 0x88, 0x23, 0x9f, 0x8c, 0xa9, 0xcb, 0x20, 0xc9,
+ 0xe1, 0x3f, 0x05, 0xf0, 0x24, 0x2b, 0xc5, 0x25, 0x8f, 0x48, 0x3b, 0x0d,
+ 0xef, 0xf8, 0xda, 0x22, 0xd4, 0x6b, 0x50, 0xb2, 0x13, 0x96, 0x76, 0x93,
+ 0x5b, 0x4b, 0xa0, 0x6a, 0xa5, 0x9d, 0x72, 0x0e, 0x21, 0xcf, 0x15, 0xd4,
+ 0xf5, 0x06, 0xf7, 0xb7,
+};
+static const struct drbg_kat_pr_true kat4137_t = {
+ 11, kat4137_entropyin, kat4137_nonce, kat4137_persstr,
+ kat4137_entropyinpr1, kat4137_addinpr1, kat4137_entropyinpr2,
+ kat4137_addinpr2, kat4137_retbits
+};
+static const struct drbg_kat kat4137 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4137_t
+};
+
+static const unsigned char kat4138_entropyin[] = {
+ 0x84, 0xcc, 0xe1, 0x79, 0x74, 0x25, 0x6d, 0x04, 0xdf, 0x34, 0x97, 0xc4,
+ 0x88, 0x48, 0x89, 0x03, 0xa6, 0x56, 0x91, 0x94, 0x5b, 0x4a, 0xc1, 0x32,
+ 0x63, 0x64, 0x3f, 0x48, 0x55, 0xe4, 0x25, 0x26, 0xc8, 0x0d, 0xe9, 0xca,
+ 0xf5, 0x73, 0xfc, 0x98, 0x70, 0x58, 0x1e, 0xd4, 0xa8, 0x3f, 0x8c, 0xf0,
+};
+static const unsigned char kat4138_nonce[] = {0};
+static const unsigned char kat4138_persstr[] = {
+ 0x42, 0xbf, 0x74, 0x52, 0xb8, 0x01, 0x99, 0xcc, 0x34, 0x05, 0x00, 0x56,
+ 0x83, 0x06, 0x24, 0xd4, 0x09, 0x60, 0x75, 0x49, 0x09, 0x5e, 0x91, 0xe8,
+ 0x84, 0xf5, 0xf0, 0x0a, 0xe4, 0x4d, 0x65, 0xfb, 0x97, 0xdd, 0x7d, 0x5e,
+ 0xa7, 0x81, 0x61, 0x78, 0xd1, 0xcd, 0x62, 0x04, 0xec, 0xdf, 0x3b, 0xaf,
+};
+static const unsigned char kat4138_entropyinpr1[] = {
+ 0x64, 0x0a, 0x46, 0x93, 0xdb, 0x17, 0x78, 0xdb, 0xd4, 0xcf, 0xb2, 0x7b,
+ 0xa0, 0xf7, 0x75, 0xb3, 0x16, 0x9d, 0x6b, 0x2d, 0x86, 0x00, 0x33, 0x8d,
+ 0x55, 0xd4, 0x4a, 0xe5, 0xac, 0xb6, 0x06, 0x52, 0x94, 0xed, 0x2e, 0x77,
+ 0x30, 0x25, 0x5e, 0xef, 0x58, 0x12, 0x48, 0x50, 0x27, 0x3b, 0xec, 0x29,
+};
+static const unsigned char kat4138_addinpr1[] = {
+ 0x1a, 0x7e, 0x1d, 0x25, 0x06, 0xd5, 0xc4, 0x74, 0xf8, 0x47, 0x02, 0xae,
+ 0xe6, 0x40, 0x63, 0xde, 0x77, 0xa2, 0x79, 0x12, 0xc4, 0x5f, 0x0f, 0x88,
+ 0x7e, 0x11, 0x65, 0x06, 0xd9, 0x12, 0x9f, 0xd0, 0x18, 0xa6, 0x12, 0x27,
+ 0xe9, 0x79, 0x48, 0x4d, 0xaf, 0xd1, 0xeb, 0x87, 0x50, 0xe9, 0xe2, 0xd3,
+};
+static const unsigned char kat4138_entropyinpr2[] = {
+ 0x20, 0x60, 0x48, 0x84, 0x28, 0x60, 0xda, 0xa4, 0x53, 0x35, 0x5c, 0x05,
+ 0x13, 0x9b, 0xda, 0x63, 0x14, 0xfd, 0xeb, 0x3c, 0x8a, 0xb5, 0x81, 0x75,
+ 0xe3, 0x8c, 0x2e, 0x23, 0x16, 0x9d, 0xda, 0xf2, 0x5a, 0xe1, 0xca, 0x9e,
+ 0x9d, 0xae, 0x0d, 0x43, 0x75, 0x1a, 0xde, 0x43, 0x40, 0x03, 0x17, 0xb7,
+};
+static const unsigned char kat4138_addinpr2[] = {
+ 0xe6, 0xc3, 0x36, 0x96, 0x8e, 0x46, 0xf5, 0xbf, 0x00, 0x46, 0x68, 0xdc,
+ 0x65, 0x1a, 0x3e, 0xa0, 0x7b, 0xa9, 0x3c, 0x74, 0x28, 0x2f, 0xf9, 0x84,
+ 0x7b, 0x58, 0x65, 0xfe, 0xa8, 0x93, 0x48, 0x3c, 0xbd, 0x73, 0xc1, 0xa3,
+ 0xf6, 0x9f, 0x56, 0xe8, 0x5d, 0xce, 0x7f, 0xe3, 0x86, 0x40, 0xaa, 0x88,
+};
+static const unsigned char kat4138_retbits[] = {
+ 0x64, 0x35, 0xf9, 0xe3, 0xb8, 0x6b, 0x9c, 0x42, 0x68, 0x6d, 0x8e, 0xa5,
+ 0x61, 0x80, 0xd3, 0x76, 0x17, 0x55, 0xd7, 0xec, 0x78, 0x84, 0xa8, 0x28,
+ 0x6f, 0x8a, 0x16, 0x1a, 0xf4, 0x20, 0xd3, 0xbe, 0xdf, 0x2a, 0x5d, 0xb4,
+ 0xf6, 0x0c, 0x7a, 0xaa, 0x69, 0xd3, 0x9b, 0x15, 0x48, 0x1a, 0x54, 0x68,
+ 0xdd, 0xa9, 0x20, 0x4b, 0x9a, 0x0e, 0x35, 0xaa, 0x66, 0x21, 0xa8, 0xe9,
+ 0x41, 0x5e, 0xbe, 0xd6,
+};
+static const struct drbg_kat_pr_true kat4138_t = {
+ 12, kat4138_entropyin, kat4138_nonce, kat4138_persstr,
+ kat4138_entropyinpr1, kat4138_addinpr1, kat4138_entropyinpr2,
+ kat4138_addinpr2, kat4138_retbits
+};
+static const struct drbg_kat kat4138 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4138_t
+};
+
+static const unsigned char kat4139_entropyin[] = {
+ 0x6e, 0xc1, 0x56, 0xac, 0x8c, 0x56, 0x9e, 0xef, 0xce, 0xa5, 0x0f, 0x80,
+ 0x0f, 0x28, 0x96, 0x41, 0xf7, 0x4e, 0xff, 0x84, 0x4c, 0x5b, 0x77, 0x3b,
+ 0x00, 0xf8, 0x22, 0x9d, 0x1b, 0xed, 0xbc, 0xa0, 0x61, 0x1f, 0x47, 0x3d,
+ 0xce, 0x50, 0xac, 0xbd, 0xb9, 0xc5, 0xf7, 0x0b, 0xe4, 0x61, 0x28, 0x50,
+};
+static const unsigned char kat4139_nonce[] = {0};
+static const unsigned char kat4139_persstr[] = {
+ 0x9f, 0xbd, 0x8b, 0xc5, 0x8c, 0xa2, 0x90, 0x83, 0x78, 0xc0, 0x42, 0x76,
+ 0x5a, 0xec, 0x63, 0x71, 0xd4, 0x36, 0x6b, 0x65, 0x32, 0x3c, 0x4c, 0xfd,
+ 0x55, 0x85, 0xa6, 0x7e, 0x7c, 0x5a, 0xe1, 0xb5, 0x60, 0x31, 0x53, 0x91,
+ 0x06, 0xb2, 0x43, 0x2f, 0x64, 0xf9, 0x44, 0x26, 0x61, 0x92, 0x26, 0x8c,
+};
+static const unsigned char kat4139_entropyinpr1[] = {
+ 0x13, 0x97, 0x2b, 0x48, 0xc6, 0x06, 0xed, 0x15, 0x46, 0x72, 0x2e, 0x95,
+ 0x42, 0xea, 0x2d, 0xe4, 0x65, 0xd7, 0x8e, 0xbb, 0xcf, 0xb8, 0x07, 0x13,
+ 0x35, 0xe5, 0xcf, 0x13, 0x7a, 0x2f, 0xc4, 0x8a, 0xd4, 0xca, 0x0a, 0xf3,
+ 0x1d, 0xec, 0x45, 0x37, 0xe2, 0x54, 0x54, 0x28, 0xe1, 0xea, 0xaa, 0x42,
+};
+static const unsigned char kat4139_addinpr1[] = {
+ 0x68, 0xa2, 0xb1, 0x22, 0x29, 0xd9, 0x93, 0xe6, 0x9a, 0xab, 0x58, 0xcd,
+ 0xa7, 0x7a, 0x3b, 0xe9, 0xbd, 0x66, 0x14, 0x5c, 0x45, 0xb4, 0x68, 0x81,
+ 0x6e, 0xdd, 0x82, 0xc0, 0x39, 0x3f, 0xeb, 0x4f, 0x22, 0x61, 0xde, 0xc0,
+ 0xa5, 0x28, 0xe1, 0x0b, 0xcb, 0x45, 0x51, 0xab, 0x05, 0x1b, 0xd5, 0xbc,
+};
+static const unsigned char kat4139_entropyinpr2[] = {
+ 0x73, 0xed, 0x9a, 0xe0, 0x3d, 0xa3, 0x0f, 0x20, 0x08, 0xd9, 0x25, 0x6b,
+ 0xb5, 0x61, 0x62, 0xb0, 0xe2, 0x68, 0x19, 0x2e, 0x07, 0x36, 0x36, 0xdc,
+ 0xd6, 0xc9, 0x9e, 0xcd, 0x7a, 0xf5, 0x18, 0xbe, 0x08, 0xf1, 0x6e, 0x77,
+ 0xc6, 0xc4, 0x25, 0x96, 0xa3, 0x57, 0x52, 0xd0, 0x12, 0xb2, 0xd2, 0x5a,
+};
+static const unsigned char kat4139_addinpr2[] = {
+ 0xcd, 0x88, 0x33, 0xbd, 0x54, 0x66, 0x3e, 0xb1, 0x6c, 0xa5, 0xb5, 0x0a,
+ 0x09, 0x2e, 0x47, 0x2a, 0xa2, 0x01, 0x21, 0x1d, 0x46, 0xc7, 0x75, 0x4e,
+ 0xa8, 0x42, 0x05, 0x0b, 0x35, 0x60, 0xe8, 0x49, 0x12, 0xec, 0xd4, 0xce,
+ 0x66, 0xc3, 0xa7, 0xcf, 0xf0, 0xac, 0xc9, 0x6c, 0xf7, 0x99, 0x00, 0x93,
+};
+static const unsigned char kat4139_retbits[] = {
+ 0x40, 0xc4, 0xfb, 0xf5, 0xd9, 0xce, 0xc7, 0x56, 0xb7, 0xb3, 0x42, 0x78,
+ 0x31, 0x56, 0x65, 0xec, 0x36, 0xcd, 0xaa, 0x6c, 0xd4, 0x82, 0x84, 0xe2,
+ 0x85, 0x56, 0x11, 0x83, 0x59, 0xb1, 0x1c, 0x2d, 0x28, 0x5e, 0xb1, 0x45,
+ 0xc3, 0x03, 0x49, 0x03, 0x0e, 0xde, 0xf2, 0xfe, 0xaf, 0xdd, 0x1a, 0x26,
+ 0xca, 0xf0, 0xfb, 0x69, 0x73, 0xa7, 0x76, 0x63, 0x8e, 0x9f, 0x4f, 0x00,
+ 0x48, 0xb8, 0x91, 0x8b,
+};
+static const struct drbg_kat_pr_true kat4139_t = {
+ 13, kat4139_entropyin, kat4139_nonce, kat4139_persstr,
+ kat4139_entropyinpr1, kat4139_addinpr1, kat4139_entropyinpr2,
+ kat4139_addinpr2, kat4139_retbits
+};
+static const struct drbg_kat kat4139 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4139_t
+};
+
+static const unsigned char kat4140_entropyin[] = {
+ 0x83, 0x2f, 0x28, 0xed, 0xb5, 0xdf, 0x05, 0x2f, 0xb4, 0xc5, 0xa7, 0x05,
+ 0x9d, 0x1d, 0x3a, 0x6d, 0xb0, 0xd8, 0x4a, 0xf9, 0xa0, 0x2c, 0xc1, 0x89,
+ 0x41, 0xcb, 0x0e, 0xb5, 0x36, 0x71, 0xab, 0x5e, 0xbb, 0xae, 0x65, 0xb3,
+ 0xa3, 0x19, 0x15, 0x95, 0x83, 0x8c, 0xa8, 0xe8, 0xfa, 0x07, 0x22, 0xa6,
+};
+static const unsigned char kat4140_nonce[] = {0};
+static const unsigned char kat4140_persstr[] = {
+ 0xbe, 0x14, 0x4a, 0xc8, 0x0b, 0x82, 0x8d, 0xd3, 0x3a, 0x3e, 0xd6, 0xfe,
+ 0x55, 0x3d, 0xfd, 0xc9, 0xad, 0x3c, 0xd9, 0x5d, 0x12, 0x8d, 0x8e, 0xd4,
+ 0x66, 0xfe, 0xc8, 0x09, 0xa2, 0x45, 0x6e, 0x2b, 0x0d, 0x2c, 0x7e, 0x6b,
+ 0x4b, 0xda, 0xc7, 0x9b, 0x5e, 0x7a, 0xe5, 0x5b, 0xab, 0x26, 0x67, 0x52,
+};
+static const unsigned char kat4140_entropyinpr1[] = {
+ 0x11, 0x3d, 0x8a, 0x06, 0x8f, 0x38, 0x5d, 0x86, 0x5f, 0xda, 0xd9, 0x6c,
+ 0xf7, 0x8d, 0x30, 0x28, 0x91, 0x21, 0xed, 0x22, 0x4b, 0x76, 0x65, 0xcf,
+ 0xc3, 0xd6, 0x1a, 0xd7, 0xa7, 0x4d, 0xc4, 0xf6, 0x24, 0xf7, 0x61, 0xe6,
+ 0x30, 0xdd, 0x22, 0xc3, 0x95, 0x4b, 0xa1, 0x11, 0xdb, 0xdd, 0xcf, 0x8b,
+};
+static const unsigned char kat4140_addinpr1[] = {
+ 0x38, 0xc2, 0x4b, 0x8e, 0xe6, 0x82, 0xa8, 0xf5, 0xf8, 0x98, 0x99, 0x78,
+ 0xef, 0xbf, 0x50, 0xce, 0x1a, 0x4f, 0xe1, 0x89, 0x2d, 0xb8, 0x10, 0x67,
+ 0x14, 0x95, 0x0f, 0x1f, 0xe8, 0xbf, 0xe0, 0x46, 0xe4, 0x69, 0x9b, 0x8a,
+ 0xec, 0xe1, 0x9f, 0xcb, 0xf1, 0xe7, 0x3c, 0x4a, 0x13, 0x7e, 0x2f, 0xc2,
+};
+static const unsigned char kat4140_entropyinpr2[] = {
+ 0x84, 0x3e, 0x7c, 0xac, 0x38, 0xb6, 0x59, 0xa6, 0x11, 0xdc, 0x4a, 0xf4,
+ 0xbd, 0x22, 0x8e, 0xbc, 0x0c, 0xd9, 0x07, 0x3e, 0xe9, 0x83, 0x50, 0xd0,
+ 0x4d, 0xa6, 0x1f, 0x77, 0xdb, 0x66, 0xc0, 0xc7, 0x08, 0x72, 0x15, 0x3d,
+ 0x9f, 0xa2, 0xaf, 0x4b, 0xc5, 0x83, 0xac, 0x2c, 0xf7, 0x9d, 0x50, 0x6e,
+};
+static const unsigned char kat4140_addinpr2[] = {
+ 0x4f, 0x23, 0x64, 0x10, 0x93, 0x34, 0x2d, 0x94, 0x6d, 0x3a, 0x95, 0x6c,
+ 0x45, 0x6d, 0xba, 0x18, 0xbd, 0x42, 0xde, 0x21, 0xcb, 0x24, 0x94, 0xf6,
+ 0x31, 0x0d, 0xa7, 0xd2, 0x0a, 0xce, 0x84, 0x58, 0xa7, 0x17, 0x78, 0x90,
+ 0x5d, 0x98, 0x8e, 0x58, 0x9f, 0xae, 0xcf, 0x77, 0x9b, 0x19, 0x4a, 0x13,
+};
+static const unsigned char kat4140_retbits[] = {
+ 0x67, 0x54, 0xa7, 0x2f, 0x7f, 0xe2, 0x3e, 0xa6, 0x07, 0xef, 0x0a, 0xe6,
+ 0x1a, 0x61, 0xeb, 0x3a, 0xfc, 0x56, 0x2c, 0x52, 0x27, 0x67, 0x05, 0x72,
+ 0xb7, 0xff, 0x2d, 0xce, 0xcf, 0x3d, 0xcb, 0x41, 0x94, 0x82, 0x9d, 0x29,
+ 0xfc, 0xf9, 0xb1, 0x00, 0x41, 0x2a, 0xa0, 0xee, 0x87, 0x61, 0x1a, 0xb5,
+ 0x34, 0x89, 0x6f, 0x80, 0xf4, 0x7c, 0xff, 0x40, 0xb7, 0xf7, 0x6e, 0x0e,
+ 0xa4, 0x6b, 0x3d, 0x41,
+};
+static const struct drbg_kat_pr_true kat4140_t = {
+ 14, kat4140_entropyin, kat4140_nonce, kat4140_persstr,
+ kat4140_entropyinpr1, kat4140_addinpr1, kat4140_entropyinpr2,
+ kat4140_addinpr2, kat4140_retbits
+};
+static const struct drbg_kat kat4140 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4140_t
+};
+
+static const unsigned char kat4141_entropyin[] = {
+ 0x60, 0x3c, 0xba, 0x49, 0x24, 0x61, 0xb0, 0xc9, 0xa5, 0x5b, 0x4a, 0x97,
+ 0xfc, 0xb4, 0xc3, 0xfd, 0x76, 0x53, 0x26, 0x36, 0x49, 0x0b, 0xf1, 0x71,
+ 0xf1, 0x52, 0xa1, 0xc1, 0xf0, 0xfe, 0x33, 0x66, 0x34, 0x2a, 0xb8, 0x02,
+ 0x9d, 0xbc, 0x43, 0xfc, 0xcd, 0xe5, 0x5e, 0xc2, 0x39, 0x01, 0xb5, 0x30,
+};
+static const unsigned char kat4141_nonce[] = {0};
+static const unsigned char kat4141_persstr[] = {0};
+static const unsigned char kat4141_entropyinpr1[] = {
+ 0xf2, 0x91, 0x59, 0xd2, 0x78, 0x0b, 0xe1, 0x84, 0x69, 0x41, 0xf5, 0xbb,
+ 0x02, 0x66, 0x59, 0x18, 0x71, 0xc9, 0xb2, 0xbb, 0x9a, 0x06, 0x85, 0x9a,
+ 0xc1, 0xca, 0xd0, 0x41, 0xe8, 0x93, 0x9c, 0x80, 0x4e, 0x61, 0x5d, 0x35,
+ 0xcc, 0x26, 0x17, 0x56, 0x97, 0xdc, 0x60, 0xa0, 0xb5, 0x48, 0xff, 0x10,
+};
+static const unsigned char kat4141_addinpr1[] = {0};
+static const unsigned char kat4141_entropyinpr2[] = {
+ 0x33, 0xcb, 0x7a, 0xb5, 0x3e, 0x64, 0xb7, 0x69, 0x90, 0xfd, 0xec, 0x75,
+ 0x37, 0x7a, 0xe9, 0x94, 0x7c, 0xfa, 0x14, 0x41, 0xc3, 0xda, 0xba, 0xf1,
+ 0x9b, 0xd4, 0x0f, 0x8a, 0x25, 0x9b, 0x2d, 0x08, 0x4b, 0x41, 0x44, 0xa6,
+ 0x45, 0xcf, 0x39, 0x90, 0xbe, 0x95, 0x40, 0x81, 0x51, 0x37, 0x7e, 0x08,
+};
+static const unsigned char kat4141_addinpr2[] = {0};
+static const unsigned char kat4141_retbits[] = {
+ 0x1c, 0xb8, 0xa4, 0x7a, 0x55, 0x23, 0x5b, 0x4c, 0xf5, 0x0d, 0x2c, 0x4d,
+ 0x57, 0x03, 0x9d, 0x55, 0xc2, 0x76, 0x6e, 0xc1, 0x92, 0x40, 0xca, 0x1a,
+ 0xe5, 0x0d, 0xc8, 0x0e, 0xf4, 0xc6, 0x92, 0x65, 0xd2, 0xdf, 0xa4, 0x1c,
+ 0x2f, 0x09, 0xb9, 0x91, 0x03, 0xd6, 0x6e, 0x23, 0x1b, 0x94, 0x97, 0x97,
+ 0x6b, 0xb3, 0x76, 0xda, 0xcf, 0xb2, 0x46, 0x11, 0x5a, 0xd2, 0xab, 0x57,
+ 0xf5, 0xc3, 0x8c, 0xd6,
+};
+static const struct drbg_kat_pr_true kat4141_t = {
+ 0, kat4141_entropyin, kat4141_nonce, kat4141_persstr,
+ kat4141_entropyinpr1, kat4141_addinpr1, kat4141_entropyinpr2,
+ kat4141_addinpr2, kat4141_retbits
+};
+static const struct drbg_kat kat4141 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4141_t
+};
+
+static const unsigned char kat4142_entropyin[] = {
+ 0x66, 0xc5, 0x85, 0x57, 0x2d, 0x64, 0xca, 0xa9, 0xfb, 0xa1, 0xff, 0x55,
+ 0xe9, 0x88, 0xe4, 0x51, 0x29, 0x7a, 0x39, 0x1d, 0xd0, 0xf5, 0x00, 0xd2,
+ 0x88, 0x52, 0x90, 0xf2, 0x0d, 0x67, 0x3c, 0x4d, 0x7f, 0x9a, 0xf0, 0x11,
+ 0xa9, 0x9a, 0x80, 0x1e, 0x4f, 0x1d, 0x8e, 0xea, 0x75, 0x62, 0x10, 0x08,
+};
+static const unsigned char kat4142_nonce[] = {0};
+static const unsigned char kat4142_persstr[] = {0};
+static const unsigned char kat4142_entropyinpr1[] = {
+ 0x34, 0x1c, 0xd2, 0x7e, 0x70, 0x39, 0x76, 0x69, 0xda, 0x7c, 0x25, 0x87,
+ 0x41, 0x82, 0x8a, 0x52, 0xe0, 0xd1, 0x02, 0x4d, 0x0c, 0x23, 0x80, 0xd5,
+ 0x99, 0x74, 0x03, 0xe5, 0x55, 0x8d, 0xbd, 0x6f, 0x9b, 0x21, 0xa5, 0x67,
+ 0xef, 0x6a, 0x4f, 0xd2, 0x7f, 0x62, 0x5a, 0xdd, 0x70, 0xeb, 0xb1, 0x2d,
+};
+static const unsigned char kat4142_addinpr1[] = {0};
+static const unsigned char kat4142_entropyinpr2[] = {
+ 0x40, 0x50, 0xc6, 0xa8, 0x94, 0xf1, 0x34, 0xcf, 0x8b, 0x67, 0x44, 0x70,
+ 0xad, 0xef, 0x00, 0x56, 0x0d, 0x4d, 0x00, 0xed, 0x3f, 0x70, 0xde, 0x46,
+ 0xff, 0x9d, 0xcd, 0x95, 0xed, 0x22, 0xd0, 0x41, 0x95, 0x0e, 0xc6, 0xe4,
+ 0x17, 0x8f, 0xb8, 0x6a, 0xf5, 0xc8, 0x22, 0xc1, 0x16, 0x15, 0x64, 0x4a,
+};
+static const unsigned char kat4142_addinpr2[] = {0};
+static const unsigned char kat4142_retbits[] = {
+ 0x24, 0x14, 0x32, 0xfe, 0xd0, 0xdc, 0xa6, 0xd4, 0xbc, 0xf2, 0x39, 0x4d,
+ 0xea, 0xac, 0x9b, 0x59, 0x14, 0xef, 0x74, 0x7a, 0x6e, 0x93, 0xbe, 0x4f,
+ 0x97, 0xda, 0x76, 0x55, 0x7d, 0xa8, 0x83, 0x59, 0x19, 0x77, 0x18, 0xa1,
+ 0x32, 0x2d, 0xfe, 0x0c, 0x2c, 0x91, 0x3d, 0x2d, 0xb9, 0xeb, 0xd9, 0x76,
+ 0x0e, 0x15, 0xfb, 0x54, 0x26, 0xb1, 0xf8, 0x5a, 0xdf, 0x7d, 0x2b, 0xc0,
+ 0x39, 0x85, 0x1b, 0x9e,
+};
+static const struct drbg_kat_pr_true kat4142_t = {
+ 1, kat4142_entropyin, kat4142_nonce, kat4142_persstr,
+ kat4142_entropyinpr1, kat4142_addinpr1, kat4142_entropyinpr2,
+ kat4142_addinpr2, kat4142_retbits
+};
+static const struct drbg_kat kat4142 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4142_t
+};
+
+static const unsigned char kat4143_entropyin[] = {
+ 0xc5, 0x70, 0xff, 0xd1, 0xf4, 0xc5, 0xd1, 0xe9, 0x39, 0xad, 0x14, 0xa6,
+ 0x76, 0xc2, 0xf2, 0x69, 0x5d, 0x4b, 0x2a, 0xa5, 0x0a, 0x93, 0xa6, 0xc2,
+ 0x14, 0xfa, 0x71, 0x1d, 0x76, 0x4f, 0xf0, 0x44, 0xb0, 0x06, 0x20, 0xd0,
+ 0xb9, 0x8a, 0x1c, 0x0d, 0x06, 0x43, 0x7e, 0xfd, 0x00, 0x07, 0x18, 0x95,
+};
+static const unsigned char kat4143_nonce[] = {0};
+static const unsigned char kat4143_persstr[] = {0};
+static const unsigned char kat4143_entropyinpr1[] = {
+ 0x2d, 0xed, 0xf9, 0x53, 0x5c, 0xfc, 0xdf, 0x74, 0xa5, 0xef, 0xf2, 0xc6,
+ 0xc2, 0x17, 0x33, 0xfc, 0xc2, 0x2f, 0xb3, 0x25, 0xa7, 0x3c, 0x4b, 0xc3,
+ 0x06, 0xfd, 0x87, 0x7e, 0x6f, 0x26, 0xaa, 0x5c, 0xb0, 0xed, 0x5d, 0x63,
+ 0x6c, 0x87, 0x8e, 0xb8, 0xb1, 0xc2, 0x00, 0x51, 0x86, 0xe2, 0xf1, 0x0f,
+};
+static const unsigned char kat4143_addinpr1[] = {0};
+static const unsigned char kat4143_entropyinpr2[] = {
+ 0xe3, 0x5c, 0xc4, 0xfd, 0xa5, 0x07, 0x92, 0xa7, 0x72, 0x24, 0x07, 0x28,
+ 0x7b, 0x32, 0xcb, 0xf1, 0xd6, 0x47, 0x31, 0x25, 0x6d, 0xfb, 0x1e, 0x51,
+ 0x22, 0xc1, 0xd0, 0xa2, 0x33, 0x94, 0xde, 0x8d, 0x53, 0xf4, 0xcd, 0x20,
+ 0x58, 0xc4, 0x5c, 0x03, 0x9c, 0xe3, 0x96, 0xe4, 0xba, 0x2a, 0xef, 0x50,
+};
+static const unsigned char kat4143_addinpr2[] = {0};
+static const unsigned char kat4143_retbits[] = {
+ 0xae, 0x1f, 0xe8, 0xe0, 0x5e, 0xe0, 0x7c, 0x13, 0xa7, 0x40, 0x7a, 0x39,
+ 0x41, 0x0f, 0xbf, 0x17, 0xa3, 0x70, 0xca, 0x7a, 0xa7, 0x84, 0x4c, 0xd8,
+ 0x56, 0x87, 0x59, 0x6c, 0x36, 0x1e, 0x7a, 0x16, 0x77, 0xa5, 0x19, 0xc6,
+ 0xe6, 0x84, 0xd4, 0xb0, 0x46, 0x3f, 0xad, 0xef, 0x57, 0xbf, 0x37, 0xc6,
+ 0xd5, 0x3e, 0x42, 0xb9, 0x7c, 0x17, 0xca, 0xff, 0xf4, 0xdc, 0x41, 0x0b,
+ 0x2c, 0xd2, 0x7d, 0x52,
+};
+static const struct drbg_kat_pr_true kat4143_t = {
+ 2, kat4143_entropyin, kat4143_nonce, kat4143_persstr,
+ kat4143_entropyinpr1, kat4143_addinpr1, kat4143_entropyinpr2,
+ kat4143_addinpr2, kat4143_retbits
+};
+static const struct drbg_kat kat4143 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4143_t
+};
+
+static const unsigned char kat4144_entropyin[] = {
+ 0x89, 0xe0, 0xc4, 0xe2, 0x80, 0x9f, 0x71, 0x8b, 0xbd, 0x0f, 0xa0, 0xc3,
+ 0xaf, 0x6d, 0x12, 0x4b, 0x16, 0x9d, 0x61, 0xdd, 0x43, 0xd3, 0x25, 0xdd,
+ 0x32, 0x5a, 0x46, 0x47, 0x9c, 0xe2, 0xe3, 0xe2, 0xc0, 0xfb, 0xca, 0x7f,
+ 0x50, 0xe1, 0x29, 0x97, 0x7a, 0x18, 0x63, 0x67, 0x52, 0xda, 0x1a, 0x63,
+};
+static const unsigned char kat4144_nonce[] = {0};
+static const unsigned char kat4144_persstr[] = {0};
+static const unsigned char kat4144_entropyinpr1[] = {
+ 0x04, 0x23, 0x68, 0xa8, 0x11, 0x6f, 0x17, 0x2e, 0xf5, 0x2c, 0x5b, 0x66,
+ 0xec, 0xe3, 0x11, 0x23, 0x26, 0x18, 0x32, 0xd7, 0x66, 0xe8, 0xbc, 0x32,
+ 0xd1, 0x48, 0x1e, 0xe4, 0x17, 0x6a, 0x35, 0x2b, 0x6f, 0xe7, 0x4d, 0x37,
+ 0xa1, 0x7a, 0x40, 0x24, 0xff, 0xec, 0xf3, 0x7c, 0xcf, 0x4a, 0xf3, 0x12,
+};
+static const unsigned char kat4144_addinpr1[] = {0};
+static const unsigned char kat4144_entropyinpr2[] = {
+ 0x8d, 0x78, 0x2d, 0x73, 0x3b, 0x25, 0xd9, 0xb3, 0x39, 0xd8, 0xd6, 0x25,
+ 0xdf, 0x06, 0x11, 0x9c, 0x9a, 0x8c, 0xc3, 0x8d, 0xf9, 0x68, 0xe5, 0xe4,
+ 0xd2, 0xfd, 0x57, 0x30, 0xf4, 0x74, 0xa4, 0x9a, 0x14, 0x72, 0x8a, 0x47,
+ 0x13, 0xcf, 0x45, 0xd4, 0xae, 0xf0, 0x01, 0x19, 0x82, 0xbf, 0x50, 0xb5,
+};
+static const unsigned char kat4144_addinpr2[] = {0};
+static const unsigned char kat4144_retbits[] = {
+ 0xaf, 0x55, 0x3c, 0xf2, 0x75, 0x5b, 0x35, 0x2d, 0xe4, 0x55, 0x49, 0xe2,
+ 0x03, 0x05, 0xf9, 0xf0, 0x4d, 0xc5, 0x77, 0x0a, 0x1e, 0xec, 0x4a, 0x1f,
+ 0x7b, 0x41, 0x31, 0x29, 0x7f, 0x38, 0x29, 0x21, 0x67, 0xc7, 0x20, 0x6e,
+ 0x08, 0x4a, 0x0c, 0xa8, 0x4c, 0x6f, 0x7b, 0x62, 0x8d, 0x7a, 0x9e, 0x15,
+ 0xf5, 0x0e, 0xd7, 0x65, 0x13, 0x58, 0x88, 0x69, 0x13, 0xfb, 0xbb, 0xe0,
+ 0xa9, 0xaa, 0xf2, 0x39,
+};
+static const struct drbg_kat_pr_true kat4144_t = {
+ 3, kat4144_entropyin, kat4144_nonce, kat4144_persstr,
+ kat4144_entropyinpr1, kat4144_addinpr1, kat4144_entropyinpr2,
+ kat4144_addinpr2, kat4144_retbits
+};
+static const struct drbg_kat kat4144 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4144_t
+};
+
+static const unsigned char kat4145_entropyin[] = {
+ 0x39, 0xf3, 0xbd, 0x3e, 0x76, 0xa0, 0x52, 0xa4, 0x78, 0x30, 0xef, 0x5f,
+ 0xa8, 0x58, 0xb7, 0x82, 0x42, 0x24, 0x62, 0x41, 0xa5, 0x62, 0x92, 0x24,
+ 0x04, 0x99, 0xbb, 0xef, 0x96, 0x42, 0x32, 0x27, 0x20, 0xc6, 0x7e, 0x9a,
+ 0x97, 0x3b, 0x7c, 0xb9, 0x18, 0x34, 0x8f, 0xc0, 0xa1, 0x0d, 0x62, 0x11,
+};
+static const unsigned char kat4145_nonce[] = {0};
+static const unsigned char kat4145_persstr[] = {0};
+static const unsigned char kat4145_entropyinpr1[] = {
+ 0x2a, 0x26, 0x33, 0xa4, 0xd1, 0xf2, 0xfe, 0x64, 0xc1, 0xa8, 0x70, 0x40,
+ 0x36, 0x7c, 0x3c, 0x13, 0xc3, 0x74, 0xb1, 0x0d, 0x24, 0x8c, 0x68, 0xe5,
+ 0x50, 0x90, 0x1e, 0x97, 0xf6, 0x57, 0xda, 0xde, 0xa0, 0xfe, 0xed, 0x10,
+ 0xb0, 0xbe, 0x00, 0x19, 0xd4, 0xcc, 0x8a, 0xe5, 0x4b, 0x15, 0x59, 0x61,
+};
+static const unsigned char kat4145_addinpr1[] = {0};
+static const unsigned char kat4145_entropyinpr2[] = {
+ 0x41, 0xc8, 0x14, 0xc1, 0x1d, 0x2c, 0x61, 0xc0, 0xaa, 0x97, 0x5a, 0x3b,
+ 0x03, 0xaf, 0x1e, 0xa3, 0x52, 0xc5, 0xb8, 0x2a, 0xa9, 0x30, 0xce, 0xa7,
+ 0x0e, 0x8a, 0x5d, 0x8f, 0x6a, 0xc0, 0x4c, 0x57, 0x13, 0xc6, 0x47, 0x7d,
+ 0x58, 0x66, 0x40, 0x5b, 0xb6, 0xcc, 0xcd, 0x0c, 0x26, 0x6f, 0x1e, 0x62,
+};
+static const unsigned char kat4145_addinpr2[] = {0};
+static const unsigned char kat4145_retbits[] = {
+ 0xe0, 0x9b, 0x26, 0xf0, 0xcb, 0x01, 0x70, 0xa1, 0x88, 0x3c, 0x74, 0x93,
+ 0xd8, 0x72, 0xf3, 0x91, 0xad, 0xa1, 0x60, 0xb4, 0x91, 0x5d, 0x87, 0xeb,
+ 0x1f, 0x62, 0xa3, 0x10, 0x04, 0x49, 0x52, 0x45, 0x24, 0x59, 0xba, 0x71,
+ 0x0c, 0xba, 0xfb, 0x78, 0x31, 0x7f, 0xe4, 0x5f, 0x20, 0xa1, 0x50, 0x88,
+ 0x9d, 0x12, 0xea, 0xf3, 0xbd, 0x22, 0x95, 0x15, 0x85, 0x62, 0x59, 0x42,
+ 0xb0, 0xc8, 0x1e, 0xfe,
+};
+static const struct drbg_kat_pr_true kat4145_t = {
+ 4, kat4145_entropyin, kat4145_nonce, kat4145_persstr,
+ kat4145_entropyinpr1, kat4145_addinpr1, kat4145_entropyinpr2,
+ kat4145_addinpr2, kat4145_retbits
+};
+static const struct drbg_kat kat4145 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4145_t
+};
+
+static const unsigned char kat4146_entropyin[] = {
+ 0x3c, 0xd8, 0xc6, 0x87, 0x88, 0x78, 0x02, 0x3f, 0xd5, 0x77, 0xf8, 0x16,
+ 0x96, 0xfb, 0xe6, 0x38, 0xa1, 0xac, 0xfb, 0xf0, 0xac, 0x0e, 0xf8, 0x8f,
+ 0x5b, 0x7d, 0x00, 0x0c, 0xe1, 0x5b, 0xaa, 0x8e, 0x8f, 0x38, 0x53, 0x26,
+ 0x52, 0x15, 0x71, 0x29, 0x97, 0x81, 0x60, 0x57, 0x60, 0xbe, 0x87, 0x27,
+};
+static const unsigned char kat4146_nonce[] = {0};
+static const unsigned char kat4146_persstr[] = {0};
+static const unsigned char kat4146_entropyinpr1[] = {
+ 0xf3, 0xbf, 0x7d, 0x80, 0x70, 0x23, 0xeb, 0x81, 0x48, 0x61, 0x40, 0x51,
+ 0x3a, 0xec, 0xc7, 0x07, 0x85, 0x8d, 0x94, 0x41, 0x63, 0xad, 0x6b, 0xd8,
+ 0x74, 0xda, 0xb7, 0xb2, 0x49, 0x93, 0x21, 0xb3, 0x9f, 0xaf, 0xbe, 0x51,
+ 0xe1, 0x7e, 0xe9, 0x74, 0x01, 0x43, 0xdd, 0x6b, 0x40, 0x31, 0x45, 0xb8,
+};
+static const unsigned char kat4146_addinpr1[] = {0};
+static const unsigned char kat4146_entropyinpr2[] = {
+ 0xa1, 0x7c, 0x6f, 0x90, 0xc1, 0x54, 0x4a, 0xa1, 0x57, 0x0b, 0x96, 0x12,
+ 0xf1, 0x82, 0x31, 0xa8, 0x52, 0xdb, 0xfc, 0xf8, 0x2c, 0x2a, 0xe6, 0xca,
+ 0xf7, 0xc4, 0xed, 0x49, 0x97, 0x5f, 0x54, 0x78, 0xbb, 0x43, 0xf1, 0x58,
+ 0x79, 0xf2, 0x77, 0x55, 0xa0, 0x94, 0xc1, 0x71, 0xda, 0x39, 0xc2, 0xc8,
+};
+static const unsigned char kat4146_addinpr2[] = {0};
+static const unsigned char kat4146_retbits[] = {
+ 0xe9, 0x4c, 0xcd, 0x38, 0xd0, 0x67, 0x10, 0xc8, 0xa4, 0x6a, 0xf4, 0xb0,
+ 0x78, 0x91, 0xcc, 0xc4, 0x30, 0xe3, 0x46, 0x7f, 0x3a, 0x72, 0xe5, 0xc2,
+ 0xe3, 0x69, 0x3f, 0x4f, 0x8c, 0xa3, 0x93, 0x70, 0xc6, 0x16, 0x9b, 0x06,
+ 0x56, 0x16, 0x52, 0x76, 0x10, 0x90, 0xec, 0xca, 0x0c, 0xbf, 0xb4, 0xc8,
+ 0xe9, 0xe7, 0x46, 0x5d, 0x4d, 0x59, 0x81, 0xc6, 0x1f, 0xe8, 0xbc, 0x56,
+ 0x3f, 0xb2, 0x31, 0x29,
+};
+static const struct drbg_kat_pr_true kat4146_t = {
+ 5, kat4146_entropyin, kat4146_nonce, kat4146_persstr,
+ kat4146_entropyinpr1, kat4146_addinpr1, kat4146_entropyinpr2,
+ kat4146_addinpr2, kat4146_retbits
+};
+static const struct drbg_kat kat4146 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4146_t
+};
+
+static const unsigned char kat4147_entropyin[] = {
+ 0xc1, 0x5d, 0x56, 0x90, 0x58, 0x32, 0x4e, 0x97, 0x09, 0xcc, 0x1f, 0x9d,
+ 0xd0, 0x74, 0xbe, 0x18, 0x23, 0x2e, 0x77, 0xe2, 0x34, 0xf4, 0xb8, 0x16,
+ 0x08, 0x08, 0x99, 0xb1, 0x76, 0x22, 0x30, 0x10, 0x72, 0x80, 0xcf, 0xd6,
+ 0xe6, 0xb2, 0xe7, 0x86, 0x3f, 0x60, 0xa1, 0x0c, 0x9c, 0xe8, 0xa9, 0x31,
+};
+static const unsigned char kat4147_nonce[] = {0};
+static const unsigned char kat4147_persstr[] = {0};
+static const unsigned char kat4147_entropyinpr1[] = {
+ 0x17, 0x62, 0xce, 0x5d, 0x4d, 0x06, 0xf7, 0x26, 0x32, 0x09, 0x84, 0x04,
+ 0xeb, 0xba, 0x2b, 0x03, 0x95, 0x86, 0xd7, 0x38, 0xca, 0x7d, 0xe8, 0x82,
+ 0x8c, 0x86, 0xef, 0xde, 0xca, 0x0f, 0xee, 0x90, 0x6f, 0x09, 0xfc, 0xe6,
+ 0x79, 0x1b, 0x1b, 0xf0, 0x80, 0x53, 0x24, 0xa7, 0xad, 0x9d, 0x29, 0xba,
+};
+static const unsigned char kat4147_addinpr1[] = {0};
+static const unsigned char kat4147_entropyinpr2[] = {
+ 0x39, 0x4b, 0xc5, 0x94, 0xf8, 0x77, 0x22, 0xa6, 0x7e, 0x88, 0x70, 0x19,
+ 0x37, 0x85, 0xae, 0x43, 0x0c, 0x83, 0x54, 0x9d, 0x1c, 0xeb, 0x96, 0xa5,
+ 0x2a, 0x59, 0xac, 0xee, 0x68, 0xf0, 0x52, 0xf4, 0x90, 0x13, 0x3a, 0x0e,
+ 0x68, 0x1c, 0x78, 0xac, 0x89, 0x1e, 0xe5, 0x03, 0x57, 0x21, 0x7e, 0xd2,
+};
+static const unsigned char kat4147_addinpr2[] = {0};
+static const unsigned char kat4147_retbits[] = {
+ 0x90, 0x95, 0xdc, 0x93, 0x3d, 0xc8, 0x98, 0x3b, 0x58, 0x32, 0x88, 0x5e,
+ 0x82, 0x0d, 0xbd, 0xcb, 0x25, 0xcf, 0xa0, 0x3b, 0xc5, 0x30, 0xb9, 0xfd,
+ 0xfb, 0xa7, 0x8b, 0x57, 0x9d, 0xd8, 0x11, 0x82, 0xeb, 0xfc, 0x44, 0x1d,
+ 0x0e, 0xc3, 0x00, 0xfb, 0xe9, 0x82, 0x9a, 0x88, 0xa3, 0x00, 0xb1, 0x7a,
+ 0x69, 0xc4, 0xe6, 0x2d, 0x0d, 0x2b, 0x54, 0x59, 0x1d, 0x14, 0x51, 0x0e,
+ 0x20, 0x7c, 0x82, 0x30,
+};
+static const struct drbg_kat_pr_true kat4147_t = {
+ 6, kat4147_entropyin, kat4147_nonce, kat4147_persstr,
+ kat4147_entropyinpr1, kat4147_addinpr1, kat4147_entropyinpr2,
+ kat4147_addinpr2, kat4147_retbits
+};
+static const struct drbg_kat kat4147 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4147_t
+};
+
+static const unsigned char kat4148_entropyin[] = {
+ 0x26, 0x51, 0xc9, 0x52, 0xa6, 0xa7, 0xdb, 0x3d, 0x98, 0x30, 0x96, 0x98,
+ 0x45, 0xe7, 0x84, 0x63, 0xa4, 0xae, 0x3f, 0x2f, 0xe6, 0x98, 0x52, 0xba,
+ 0x1e, 0x09, 0x16, 0x10, 0xaf, 0xc1, 0x01, 0xd1, 0x3c, 0x4e, 0x74, 0xba,
+ 0x94, 0xb5, 0x93, 0xbc, 0x89, 0xe1, 0x44, 0x49, 0x1a, 0x99, 0x09, 0x72,
+};
+static const unsigned char kat4148_nonce[] = {0};
+static const unsigned char kat4148_persstr[] = {0};
+static const unsigned char kat4148_entropyinpr1[] = {
+ 0xeb, 0xed, 0x95, 0x10, 0x2a, 0x85, 0xe7, 0x71, 0xab, 0xb6, 0x1c, 0xc6,
+ 0xe0, 0xa1, 0x41, 0xf4, 0xc3, 0xd8, 0xf7, 0xc0, 0x5f, 0x49, 0x7e, 0xcd,
+ 0xa0, 0xbe, 0x8a, 0x8c, 0xb8, 0x97, 0x92, 0xe2, 0xb4, 0x67, 0xc7, 0x5e,
+ 0x7a, 0x9a, 0x8e, 0x70, 0xed, 0xca, 0x9f, 0xa6, 0x62, 0x29, 0x3a, 0x06,
+};
+static const unsigned char kat4148_addinpr1[] = {0};
+static const unsigned char kat4148_entropyinpr2[] = {
+ 0xf1, 0x7b, 0x65, 0x7b, 0x75, 0x5e, 0x79, 0xab, 0xec, 0x99, 0x25, 0x5f,
+ 0x30, 0x19, 0x33, 0x37, 0x22, 0xfe, 0x4b, 0x3b, 0x1b, 0x67, 0x20, 0x21,
+ 0x3d, 0xb4, 0x42, 0x5f, 0x9c, 0xe4, 0x14, 0x6f, 0xd4, 0xfc, 0xbc, 0x94,
+ 0xac, 0x21, 0xf2, 0x5f, 0xfb, 0xa2, 0x40, 0x14, 0x3a, 0xae, 0x76, 0xcb,
+};
+static const unsigned char kat4148_addinpr2[] = {0};
+static const unsigned char kat4148_retbits[] = {
+ 0xb4, 0x28, 0xa4, 0x03, 0x30, 0xf5, 0x9e, 0x22, 0xb2, 0x13, 0x97, 0xba,
+ 0x53, 0xf4, 0x4d, 0x30, 0x59, 0xb8, 0xf0, 0xd9, 0xb8, 0x52, 0x05, 0xc6,
+ 0x0a, 0x93, 0x73, 0x3f, 0xc7, 0xc9, 0x78, 0x18, 0x7e, 0x72, 0x41, 0x08,
+ 0x66, 0x5e, 0xd8, 0x38, 0x8b, 0xb8, 0x15, 0xe7, 0x0a, 0xfa, 0x85, 0x78,
+ 0xc3, 0x88, 0x9c, 0xd4, 0xac, 0x7b, 0xd1, 0x32, 0x84, 0xbf, 0x61, 0xa5,
+ 0x3a, 0x0e, 0x4c, 0x7e,
+};
+static const struct drbg_kat_pr_true kat4148_t = {
+ 7, kat4148_entropyin, kat4148_nonce, kat4148_persstr,
+ kat4148_entropyinpr1, kat4148_addinpr1, kat4148_entropyinpr2,
+ kat4148_addinpr2, kat4148_retbits
+};
+static const struct drbg_kat kat4148 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4148_t
+};
+
+static const unsigned char kat4149_entropyin[] = {
+ 0xa6, 0x69, 0x92, 0x9d, 0x26, 0x64, 0x2e, 0xa0, 0x45, 0xfe, 0xce, 0xd3,
+ 0x79, 0x69, 0x78, 0x83, 0x31, 0x7c, 0xa1, 0x76, 0xaf, 0xd4, 0x91, 0x07,
+ 0xd7, 0xc3, 0x2c, 0x5b, 0x0b, 0xc5, 0x75, 0xdb, 0x1b, 0xe8, 0x0d, 0x63,
+ 0x83, 0xac, 0x45, 0x99, 0xdb, 0x00, 0x39, 0xc3, 0x8a, 0x02, 0xec, 0xf0,
+};
+static const unsigned char kat4149_nonce[] = {0};
+static const unsigned char kat4149_persstr[] = {0};
+static const unsigned char kat4149_entropyinpr1[] = {
+ 0x41, 0x45, 0x0c, 0x01, 0xfe, 0x58, 0x88, 0x5b, 0x7d, 0x68, 0x34, 0x8e,
+ 0x42, 0xcb, 0x2c, 0xcc, 0x7e, 0x37, 0x74, 0xc0, 0x91, 0xad, 0xc0, 0xd9,
+ 0x9b, 0xbb, 0xb9, 0x10, 0x03, 0x51, 0xcf, 0xa9, 0xd3, 0x5a, 0x55, 0xbe,
+ 0x74, 0xbe, 0x4c, 0x49, 0x15, 0xa7, 0xad, 0x7d, 0xfc, 0x8b, 0x75, 0x83,
+};
+static const unsigned char kat4149_addinpr1[] = {0};
+static const unsigned char kat4149_entropyinpr2[] = {
+ 0xc5, 0x77, 0x91, 0x4f, 0xa8, 0xf2, 0x4b, 0x09, 0x9c, 0x98, 0x1b, 0xe1,
+ 0x02, 0x45, 0x1f, 0x8f, 0xb0, 0xf0, 0xf2, 0xf1, 0xbe, 0x92, 0x4a, 0xb0,
+ 0x3e, 0x1e, 0xf0, 0x38, 0x4d, 0xd2, 0x64, 0x65, 0x5e, 0x3d, 0xf8, 0x38,
+ 0xad, 0x8f, 0xb0, 0x69, 0x17, 0x88, 0xa7, 0xb7, 0x2d, 0x79, 0xf2, 0x6c,
+};
+static const unsigned char kat4149_addinpr2[] = {0};
+static const unsigned char kat4149_retbits[] = {
+ 0x0b, 0x15, 0x02, 0x3e, 0xf9, 0xd9, 0x00, 0x58, 0x48, 0xb2, 0xe2, 0x7a,
+ 0x55, 0x7f, 0xc7, 0xa4, 0x46, 0x08, 0x1d, 0xaf, 0xc3, 0x0e, 0x95, 0x8e,
+ 0xfd, 0x0e, 0x96, 0x32, 0x3c, 0x3c, 0x3e, 0x44, 0xdb, 0x4c, 0xa5, 0x25,
+ 0xf9, 0xb0, 0x1d, 0xf8, 0x2f, 0x1f, 0xdc, 0xcb, 0x4e, 0x99, 0xcc, 0x94,
+ 0xd3, 0xb2, 0x69, 0x22, 0x10, 0xbb, 0xa2, 0xb7, 0xd8, 0x52, 0x02, 0xaa,
+ 0xec, 0xe3, 0xc5, 0x4a,
+};
+static const struct drbg_kat_pr_true kat4149_t = {
+ 8, kat4149_entropyin, kat4149_nonce, kat4149_persstr,
+ kat4149_entropyinpr1, kat4149_addinpr1, kat4149_entropyinpr2,
+ kat4149_addinpr2, kat4149_retbits
+};
+static const struct drbg_kat kat4149 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4149_t
+};
+
+static const unsigned char kat4150_entropyin[] = {
+ 0x19, 0x6c, 0xb6, 0x68, 0xa2, 0x04, 0xc3, 0x75, 0x97, 0x87, 0xa0, 0xe2,
+ 0x95, 0x5a, 0x0d, 0x9a, 0xa7, 0x30, 0x70, 0x62, 0x23, 0x77, 0xf8, 0x83,
+ 0xaf, 0xf8, 0x74, 0xbd, 0x13, 0x56, 0x32, 0xa6, 0xd5, 0x47, 0x15, 0x39,
+ 0x73, 0x32, 0x69, 0x4b, 0xc9, 0x2a, 0x1a, 0x71, 0x44, 0x14, 0x24, 0x44,
+};
+static const unsigned char kat4150_nonce[] = {0};
+static const unsigned char kat4150_persstr[] = {0};
+static const unsigned char kat4150_entropyinpr1[] = {
+ 0x99, 0x8f, 0xbb, 0xb4, 0xcd, 0x51, 0xd2, 0x09, 0xe2, 0xb8, 0x03, 0x4b,
+ 0x24, 0xb8, 0x4e, 0xb3, 0x32, 0xb5, 0x4f, 0x00, 0x08, 0x6e, 0x04, 0x6f,
+ 0x79, 0x86, 0x47, 0x78, 0x63, 0x85, 0x43, 0x73, 0x4e, 0x7d, 0x50, 0x03,
+ 0x59, 0xfa, 0x8b, 0xbb, 0xec, 0x8c, 0x83, 0x88, 0xe4, 0xf6, 0xe9, 0x85,
+};
+static const unsigned char kat4150_addinpr1[] = {0};
+static const unsigned char kat4150_entropyinpr2[] = {
+ 0x7a, 0x49, 0xa8, 0x18, 0xe8, 0x27, 0x35, 0x2f, 0x3f, 0x6d, 0xb3, 0x54,
+ 0x2c, 0xd1, 0xb9, 0x7c, 0xd7, 0xdd, 0xe5, 0xe8, 0x7a, 0x4c, 0xa5, 0x3d,
+ 0xf8, 0xa5, 0x9d, 0xd4, 0xea, 0x87, 0xd7, 0x57, 0x9d, 0x15, 0xe3, 0x00,
+ 0x47, 0x89, 0x4a, 0x7a, 0x1e, 0xed, 0x52, 0xa0, 0xe5, 0x83, 0xc9, 0x75,
+};
+static const unsigned char kat4150_addinpr2[] = {0};
+static const unsigned char kat4150_retbits[] = {
+ 0x35, 0x95, 0xa7, 0x67, 0xe5, 0xf3, 0x89, 0x86, 0x38, 0xdb, 0x5c, 0x2f,
+ 0xc3, 0xa7, 0x1d, 0x24, 0xd6, 0x24, 0xd8, 0x02, 0x3e, 0x11, 0xd3, 0x3f,
+ 0x96, 0x9b, 0xca, 0xeb, 0xb7, 0xc8, 0x24, 0x08, 0x9b, 0x48, 0x4d, 0xb1,
+ 0xbd, 0xd2, 0xe7, 0x1c, 0x27, 0x50, 0x09, 0x12, 0x49, 0x72, 0xef, 0xc9,
+ 0x5e, 0xcd, 0x16, 0x32, 0xbd, 0xd1, 0x19, 0x90, 0xfb, 0xd6, 0x17, 0x8c,
+ 0xd6, 0x60, 0xc9, 0xf2,
+};
+static const struct drbg_kat_pr_true kat4150_t = {
+ 9, kat4150_entropyin, kat4150_nonce, kat4150_persstr,
+ kat4150_entropyinpr1, kat4150_addinpr1, kat4150_entropyinpr2,
+ kat4150_addinpr2, kat4150_retbits
+};
+static const struct drbg_kat kat4150 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4150_t
+};
+
+static const unsigned char kat4151_entropyin[] = {
+ 0xf3, 0xbc, 0xa9, 0x49, 0xde, 0xc6, 0xdb, 0xf8, 0x1c, 0x43, 0xd9, 0x4c,
+ 0x33, 0xf1, 0x86, 0x7d, 0x68, 0x99, 0xd0, 0xbe, 0xba, 0x36, 0x37, 0x60,
+ 0x1d, 0xec, 0xe9, 0x45, 0xf5, 0x44, 0xda, 0x71, 0xb8, 0x97, 0x1e, 0x41,
+ 0x52, 0xf7, 0x91, 0x37, 0xb3, 0x99, 0x5b, 0x10, 0xfa, 0x8c, 0x56, 0xd9,
+};
+static const unsigned char kat4151_nonce[] = {0};
+static const unsigned char kat4151_persstr[] = {0};
+static const unsigned char kat4151_entropyinpr1[] = {
+ 0x68, 0x67, 0x04, 0x58, 0xfa, 0x11, 0x07, 0x63, 0x21, 0xa3, 0x3d, 0x8d,
+ 0xa6, 0x77, 0x1a, 0x1b, 0x1b, 0xae, 0xcf, 0x2a, 0x28, 0x91, 0xe2, 0x63,
+ 0xe1, 0x54, 0x39, 0x16, 0xf3, 0x8b, 0x66, 0xf5, 0x94, 0xcd, 0x3e, 0x7b,
+ 0xef, 0x5b, 0x97, 0x3f, 0xa3, 0x24, 0x1f, 0x04, 0xc9, 0x96, 0x4b, 0xb0,
+};
+static const unsigned char kat4151_addinpr1[] = {0};
+static const unsigned char kat4151_entropyinpr2[] = {
+ 0xd6, 0x8e, 0xd8, 0x1c, 0xf4, 0x00, 0x87, 0x93, 0xaa, 0x70, 0xce, 0x66,
+ 0xab, 0x7e, 0x4c, 0x99, 0x02, 0x49, 0x01, 0x37, 0x0d, 0x16, 0x99, 0x43,
+ 0xbf, 0xb3, 0x66, 0x97, 0xe2, 0x09, 0x42, 0xa1, 0xc6, 0x6a, 0x23, 0x81,
+ 0xf4, 0x67, 0x71, 0x7b, 0x1b, 0x29, 0xec, 0x70, 0x51, 0xdf, 0x53, 0x0b,
+};
+static const unsigned char kat4151_addinpr2[] = {0};
+static const unsigned char kat4151_retbits[] = {
+ 0xee, 0x0e, 0x7a, 0xea, 0x9b, 0xd2, 0xb5, 0x5a, 0x4f, 0x67, 0x99, 0x49,
+ 0xf7, 0xd7, 0x1d, 0x65, 0x3e, 0x17, 0x4c, 0x1e, 0xa2, 0x6b, 0x32, 0xab,
+ 0x2e, 0x6a, 0xd3, 0xc3, 0xe6, 0x56, 0x67, 0xa8, 0xe1, 0x30, 0xdc, 0x29,
+ 0x22, 0xb2, 0xad, 0x11, 0xd5, 0x86, 0xa6, 0xa7, 0x4a, 0x66, 0xc5, 0x27,
+ 0x6a, 0xc5, 0x9d, 0x8d, 0x32, 0x47, 0xb3, 0x1f, 0xb9, 0xe1, 0xc1, 0x80,
+ 0x20, 0x60, 0xac, 0x11,
+};
+static const struct drbg_kat_pr_true kat4151_t = {
+ 10, kat4151_entropyin, kat4151_nonce, kat4151_persstr,
+ kat4151_entropyinpr1, kat4151_addinpr1, kat4151_entropyinpr2,
+ kat4151_addinpr2, kat4151_retbits
+};
+static const struct drbg_kat kat4151 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4151_t
+};
+
+static const unsigned char kat4152_entropyin[] = {
+ 0xbc, 0x53, 0x1a, 0x04, 0x8b, 0x21, 0xb9, 0xcc, 0x49, 0x5c, 0xec, 0x60,
+ 0x50, 0x5e, 0x26, 0xec, 0xcd, 0x2b, 0x08, 0x4d, 0x4d, 0x73, 0x62, 0x20,
+ 0x20, 0x7b, 0x2b, 0xb2, 0xe1, 0x7f, 0xa5, 0x77, 0x40, 0x77, 0x62, 0x4d,
+ 0x48, 0x35, 0xe2, 0xc7, 0xcd, 0x86, 0x41, 0x09, 0x7f, 0x0f, 0x48, 0x58,
+};
+static const unsigned char kat4152_nonce[] = {0};
+static const unsigned char kat4152_persstr[] = {0};
+static const unsigned char kat4152_entropyinpr1[] = {
+ 0x5d, 0x5e, 0x07, 0x2a, 0xe9, 0x67, 0xa2, 0x52, 0xe0, 0xe1, 0x95, 0x51,
+ 0x02, 0x88, 0x5b, 0xb7, 0x10, 0x69, 0x22, 0x7c, 0xa4, 0xe3, 0x76, 0x7e,
+ 0xf8, 0x43, 0x2e, 0xd7, 0x56, 0xa8, 0x6f, 0x1f, 0x6c, 0x1d, 0xb4, 0xa9,
+ 0xba, 0x85, 0xdb, 0xb8, 0x0f, 0xdc, 0xc8, 0x9d, 0xca, 0x4e, 0xfc, 0x97,
+};
+static const unsigned char kat4152_addinpr1[] = {0};
+static const unsigned char kat4152_entropyinpr2[] = {
+ 0x24, 0x77, 0x7d, 0x12, 0x5d, 0x69, 0x32, 0x6c, 0x86, 0xb4, 0x96, 0xde,
+ 0x5e, 0x08, 0x89, 0x93, 0x33, 0x89, 0x78, 0x10, 0x54, 0x35, 0x4c, 0xc3,
+ 0x25, 0xfc, 0x2b, 0xdf, 0x24, 0x57, 0x71, 0x39, 0x8c, 0x62, 0xf6, 0x07,
+ 0x19, 0x7f, 0x07, 0x12, 0xc7, 0xb0, 0xcb, 0x35, 0xc8, 0xef, 0xe1, 0x6c,
+};
+static const unsigned char kat4152_addinpr2[] = {0};
+static const unsigned char kat4152_retbits[] = {
+ 0x3a, 0xcd, 0x47, 0x40, 0xd7, 0x93, 0x91, 0x83, 0xde, 0xcb, 0x35, 0x60,
+ 0x90, 0xdc, 0xa4, 0x79, 0xb6, 0xdd, 0xf5, 0xd2, 0x17, 0x14, 0x0a, 0x90,
+ 0xd0, 0xe0, 0x8c, 0xa6, 0x9d, 0x30, 0x50, 0xd1, 0x88, 0x8e, 0x02, 0x67,
+ 0x8c, 0x0b, 0x91, 0xc9, 0x3a, 0x3f, 0xc4, 0xba, 0x7b, 0xb2, 0xee, 0x00,
+ 0xe3, 0x0f, 0x9f, 0x27, 0x4d, 0xe3, 0x7d, 0x61, 0xd1, 0xab, 0x2b, 0x14,
+ 0x00, 0xfe, 0x4d, 0x00,
+};
+static const struct drbg_kat_pr_true kat4152_t = {
+ 11, kat4152_entropyin, kat4152_nonce, kat4152_persstr,
+ kat4152_entropyinpr1, kat4152_addinpr1, kat4152_entropyinpr2,
+ kat4152_addinpr2, kat4152_retbits
+};
+static const struct drbg_kat kat4152 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4152_t
+};
+
+static const unsigned char kat4153_entropyin[] = {
+ 0x20, 0x2e, 0x62, 0x72, 0x3e, 0x11, 0x1c, 0xae, 0x1a, 0x85, 0xa0, 0x9a,
+ 0x44, 0x47, 0xa6, 0xa0, 0x97, 0xda, 0x5d, 0x77, 0x3d, 0xfe, 0x1f, 0xfa,
+ 0x0e, 0xc8, 0x26, 0x4a, 0x78, 0x25, 0xf1, 0xfe, 0xaa, 0xb9, 0xe7, 0x21,
+ 0xc8, 0x51, 0xa0, 0x47, 0xa9, 0x35, 0xd2, 0x9a, 0x7c, 0x8c, 0x67, 0x97,
+};
+static const unsigned char kat4153_nonce[] = {0};
+static const unsigned char kat4153_persstr[] = {0};
+static const unsigned char kat4153_entropyinpr1[] = {
+ 0xb1, 0x7f, 0x4e, 0x20, 0x98, 0xf1, 0xbd, 0x2f, 0x12, 0xaf, 0x8a, 0x11,
+ 0xb7, 0x21, 0x29, 0xd5, 0xc7, 0x6c, 0xaa, 0xb3, 0x32, 0x29, 0xe4, 0x8e,
+ 0x61, 0x57, 0x42, 0x5d, 0xba, 0x5e, 0xea, 0x03, 0xae, 0xb7, 0xeb, 0x65,
+ 0x7e, 0xb0, 0xe5, 0xba, 0xa9, 0x6b, 0xbe, 0x9c, 0xb4, 0x6f, 0xbe, 0x5c,
+};
+static const unsigned char kat4153_addinpr1[] = {0};
+static const unsigned char kat4153_entropyinpr2[] = {
+ 0x91, 0x78, 0x55, 0x9a, 0x1e, 0x8a, 0x01, 0x57, 0xa1, 0xb6, 0x5c, 0x15,
+ 0xb5, 0xd9, 0x2c, 0x7b, 0x36, 0x72, 0x0c, 0x06, 0x32, 0xae, 0x8f, 0xce,
+ 0x2c, 0x5e, 0xd4, 0x7b, 0x89, 0x48, 0xee, 0xcb, 0x3d, 0x33, 0x67, 0x20,
+ 0x63, 0x49, 0xd3, 0x77, 0xf0, 0x81, 0x50, 0x9f, 0x9e, 0x6d, 0xa0, 0x6e,
+};
+static const unsigned char kat4153_addinpr2[] = {0};
+static const unsigned char kat4153_retbits[] = {
+ 0xbe, 0xa4, 0x6b, 0x2d, 0x0a, 0xe3, 0xdc, 0xbf, 0x03, 0x50, 0x2b, 0xd2,
+ 0xa8, 0xc9, 0x3b, 0x47, 0x14, 0x83, 0xac, 0x93, 0x29, 0x64, 0x1b, 0x1f,
+ 0xd0, 0x49, 0x0c, 0x21, 0x55, 0x13, 0xf5, 0xb9, 0x18, 0xbc, 0x62, 0x8f,
+ 0x10, 0x0c, 0x79, 0x86, 0x21, 0xfc, 0xbf, 0x8d, 0x2b, 0x02, 0x89, 0x68,
+ 0xd2, 0x23, 0xf4, 0xce, 0x8c, 0xa7, 0x8a, 0x19, 0x48, 0xed, 0xa7, 0x4d,
+ 0x5c, 0x6f, 0x78, 0x52,
+};
+static const struct drbg_kat_pr_true kat4153_t = {
+ 12, kat4153_entropyin, kat4153_nonce, kat4153_persstr,
+ kat4153_entropyinpr1, kat4153_addinpr1, kat4153_entropyinpr2,
+ kat4153_addinpr2, kat4153_retbits
+};
+static const struct drbg_kat kat4153 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4153_t
+};
+
+static const unsigned char kat4154_entropyin[] = {
+ 0xcc, 0x9f, 0xda, 0x86, 0x8f, 0x06, 0xd1, 0xed, 0x44, 0xa1, 0x82, 0x14,
+ 0x9e, 0xfa, 0x08, 0xe0, 0x3f, 0xfb, 0xfb, 0x86, 0xdc, 0x1d, 0xb0, 0xec,
+ 0xdb, 0xa5, 0x11, 0x5b, 0x27, 0x01, 0xf4, 0xca, 0x3c, 0x8c, 0x22, 0xd3,
+ 0xad, 0xee, 0xc1, 0x62, 0x0a, 0xca, 0x28, 0x33, 0xe5, 0x99, 0x80, 0xe0,
+};
+static const unsigned char kat4154_nonce[] = {0};
+static const unsigned char kat4154_persstr[] = {0};
+static const unsigned char kat4154_entropyinpr1[] = {
+ 0x6a, 0xb6, 0x7d, 0xcf, 0x1b, 0x3b, 0xa9, 0xc3, 0x02, 0x1a, 0x34, 0xab,
+ 0xde, 0xf5, 0xa8, 0xb9, 0xe9, 0xe5, 0xee, 0x0e, 0x0b, 0x70, 0x26, 0x93,
+ 0x95, 0x7c, 0x4f, 0x99, 0xe8, 0xbc, 0x75, 0x0d, 0x2d, 0x0d, 0x45, 0x67,
+ 0x6c, 0xa0, 0x50, 0xd0, 0xad, 0x7e, 0x09, 0xa2, 0x9d, 0xa4, 0x00, 0xe6,
+};
+static const unsigned char kat4154_addinpr1[] = {0};
+static const unsigned char kat4154_entropyinpr2[] = {
+ 0xee, 0xe6, 0x3a, 0xba, 0x80, 0x39, 0xf8, 0x88, 0x0e, 0x99, 0xcf, 0xcf,
+ 0x6c, 0x6d, 0x09, 0xba, 0xfd, 0x52, 0x7e, 0x4e, 0x0d, 0x1c, 0xf6, 0xf8,
+ 0x0d, 0xfb, 0x1d, 0xd1, 0x1e, 0xf1, 0x31, 0xba, 0xdc, 0xc3, 0xd5, 0xe9,
+ 0x48, 0x8e, 0xfd, 0xa8, 0x02, 0x27, 0x29, 0x46, 0x53, 0x55, 0x0d, 0x4f,
+};
+static const unsigned char kat4154_addinpr2[] = {0};
+static const unsigned char kat4154_retbits[] = {
+ 0xd3, 0x03, 0x48, 0xaf, 0x19, 0x3f, 0x66, 0x82, 0xee, 0x34, 0x24, 0xa6,
+ 0xee, 0xb7, 0x79, 0x65, 0xde, 0xfe, 0x36, 0x85, 0xe8, 0x24, 0x24, 0xb6,
+ 0x57, 0xa5, 0x0e, 0x59, 0x79, 0xe6, 0xa1, 0x37, 0x64, 0xd3, 0xc7, 0x06,
+ 0x8c, 0x5e, 0x20, 0x38, 0x18, 0x99, 0xc9, 0x59, 0x6c, 0x77, 0xf9, 0xbf,
+ 0xee, 0x37, 0x8f, 0x22, 0xeb, 0xb9, 0x73, 0x55, 0xae, 0x27, 0x6b, 0x25,
+ 0x9f, 0x13, 0x0e, 0xd1,
+};
+static const struct drbg_kat_pr_true kat4154_t = {
+ 13, kat4154_entropyin, kat4154_nonce, kat4154_persstr,
+ kat4154_entropyinpr1, kat4154_addinpr1, kat4154_entropyinpr2,
+ kat4154_addinpr2, kat4154_retbits
+};
+static const struct drbg_kat kat4154 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4154_t
+};
+
+static const unsigned char kat4155_entropyin[] = {
+ 0x8b, 0x01, 0xea, 0xae, 0xfb, 0x16, 0x9d, 0x78, 0x7c, 0x39, 0xeb, 0x1d,
+ 0xf1, 0x75, 0x03, 0x48, 0x65, 0x07, 0x76, 0xa2, 0x53, 0xb3, 0x74, 0xff,
+ 0xb6, 0xd4, 0x14, 0x22, 0x3d, 0x42, 0x6e, 0x10, 0x1c, 0xc3, 0x11, 0xa8,
+ 0xa6, 0xc4, 0x5b, 0xe1, 0x5d, 0x4e, 0x0c, 0xe4, 0x30, 0x5e, 0x55, 0xbd,
+};
+static const unsigned char kat4155_nonce[] = {0};
+static const unsigned char kat4155_persstr[] = {0};
+static const unsigned char kat4155_entropyinpr1[] = {
+ 0xb8, 0xef, 0x0d, 0x47, 0x80, 0x28, 0xf0, 0xc5, 0x5d, 0xd1, 0x38, 0x61,
+ 0x28, 0x14, 0x89, 0xe6, 0xc1, 0x24, 0x87, 0x0f, 0x0f, 0x28, 0xc8, 0xfb,
+ 0xe9, 0xa3, 0xce, 0x1d, 0x7d, 0x5f, 0xdd, 0x57, 0xa1, 0xce, 0x93, 0x96,
+ 0x42, 0xc2, 0x79, 0x81, 0xd7, 0x86, 0xa1, 0x01, 0xab, 0xb1, 0x49, 0x2c,
+};
+static const unsigned char kat4155_addinpr1[] = {0};
+static const unsigned char kat4155_entropyinpr2[] = {
+ 0xc1, 0x26, 0x49, 0xa0, 0xf2, 0x49, 0xc7, 0xf5, 0xdd, 0xb5, 0x50, 0xeb,
+ 0x52, 0x7a, 0x0f, 0x72, 0x0e, 0x5e, 0xaf, 0x04, 0xe6, 0xe3, 0xb9, 0x6d,
+ 0xc2, 0x48, 0x81, 0xeb, 0xa1, 0x0c, 0xe4, 0x66, 0xf6, 0x7e, 0x3f, 0xe5,
+ 0x1a, 0x03, 0x42, 0xcb, 0x1a, 0x21, 0x92, 0xa5, 0x55, 0x79, 0x81, 0x69,
+};
+static const unsigned char kat4155_addinpr2[] = {0};
+static const unsigned char kat4155_retbits[] = {
+ 0xd8, 0xc6, 0x3e, 0xcb, 0x23, 0xf1, 0x6e, 0xe9, 0x25, 0x28, 0x2b, 0x77,
+ 0x44, 0xe8, 0xcc, 0x2c, 0x2c, 0x1d, 0xeb, 0x56, 0x58, 0x1c, 0xf2, 0x71,
+ 0x52, 0x11, 0x8b, 0x57, 0x90, 0xcd, 0xbe, 0x68, 0x2a, 0x34, 0xd9, 0x15,
+ 0x23, 0xbf, 0x0c, 0x7b, 0xe4, 0xff, 0x26, 0x3a, 0xba, 0x2f, 0xfd, 0xda,
+ 0x35, 0xe4, 0xd3, 0x6a, 0x51, 0x22, 0x46, 0x1b, 0x89, 0xb4, 0x30, 0x69,
+ 0x93, 0x2b, 0x30, 0xa9,
+};
+static const struct drbg_kat_pr_true kat4155_t = {
+ 14, kat4155_entropyin, kat4155_nonce, kat4155_persstr,
+ kat4155_entropyinpr1, kat4155_addinpr1, kat4155_entropyinpr2,
+ kat4155_addinpr2, kat4155_retbits
+};
+static const struct drbg_kat kat4155 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4155_t
+};
+
+static const unsigned char kat4156_entropyin[] = {
+ 0xf8, 0x35, 0x03, 0x62, 0x2c, 0x16, 0x72, 0xd1, 0xef, 0x1a, 0xfd, 0x6f,
+ 0x6f, 0xf4, 0xc7, 0x32, 0x6b, 0xbe, 0x16, 0x92, 0x43, 0xcb, 0xb1, 0xe9,
+ 0x7d, 0x0f, 0x5d, 0x5b, 0xf2, 0x61, 0x58, 0x46, 0xd0, 0xd7, 0x2e, 0xf2,
+ 0x8c, 0xe6, 0x8d, 0x1b, 0xf3, 0x31, 0x0f, 0x12, 0xf2, 0xef, 0xe3, 0xbc,
+};
+static const unsigned char kat4156_nonce[] = {0};
+static const unsigned char kat4156_persstr[] = {0};
+static const unsigned char kat4156_entropyinpr1[] = {
+ 0x9c, 0xd5, 0xd3, 0xf5, 0xc0, 0xd4, 0x55, 0x12, 0xa4, 0x38, 0x17, 0xd3,
+ 0x83, 0x8c, 0x2a, 0xeb, 0xfa, 0xe7, 0x37, 0xcd, 0x01, 0x2d, 0xce, 0x8f,
+ 0x5e, 0x6f, 0x5d, 0x07, 0x55, 0xde, 0x9f, 0xc9, 0xfe, 0xef, 0x08, 0xfa,
+ 0x51, 0xa7, 0x6b, 0x59, 0xba, 0x13, 0xd0, 0xce, 0x92, 0xf4, 0x92, 0x03,
+};
+static const unsigned char kat4156_addinpr1[] = {
+ 0x3e, 0x8c, 0x11, 0xed, 0x78, 0xff, 0xce, 0xdf, 0xb8, 0xab, 0x10, 0xde,
+ 0x9a, 0xf5, 0x04, 0x13, 0x58, 0x25, 0x16, 0xb5, 0x32, 0xf2, 0x37, 0x64,
+ 0xfa, 0x5c, 0x3f, 0x35, 0x0a, 0xcf, 0xe7, 0x32, 0x60, 0x30, 0xde, 0x54,
+ 0x6a, 0x33, 0x47, 0xa8, 0x7d, 0xa5, 0x2e, 0x55, 0x4c, 0x2f, 0x50, 0xba,
+};
+static const unsigned char kat4156_entropyinpr2[] = {
+ 0x5f, 0xd9, 0x19, 0xfc, 0x00, 0xae, 0x84, 0xa1, 0xa1, 0x8f, 0xd1, 0xbe,
+ 0xbb, 0x73, 0x17, 0x94, 0xdd, 0x43, 0x85, 0xae, 0x17, 0x8e, 0x9a, 0x3a,
+ 0x94, 0x34, 0x7d, 0x88, 0x87, 0x91, 0x9c, 0xd7, 0xb6, 0x5e, 0x7a, 0x83,
+ 0xce, 0xb5, 0x05, 0xe5, 0xbd, 0xb1, 0x0a, 0x43, 0x77, 0x45, 0x4f, 0xc1,
+};
+static const unsigned char kat4156_addinpr2[] = {
+ 0x43, 0xcb, 0x28, 0x65, 0x50, 0x71, 0x3e, 0xb3, 0x5b, 0xb2, 0xb4, 0x1d,
+ 0x8c, 0xca, 0x7b, 0x7e, 0xd6, 0x04, 0x75, 0xfe, 0xac, 0x5b, 0xf1, 0x7c,
+ 0xe1, 0x47, 0x04, 0xf0, 0x5b, 0x2b, 0xec, 0xa9, 0x60, 0xce, 0xeb, 0xae,
+ 0xbb, 0x2c, 0xb5, 0x98, 0x0e, 0xc0, 0x0f, 0xc3, 0xb5, 0xd9, 0x5f, 0x59,
+};
+static const unsigned char kat4156_retbits[] = {
+ 0xeb, 0x04, 0x39, 0xae, 0xfb, 0x3d, 0x78, 0x1a, 0x6b, 0x68, 0x70, 0x8b,
+ 0x28, 0xd9, 0xe0, 0x0d, 0x4b, 0xc3, 0xe9, 0xec, 0x6e, 0xcd, 0x46, 0x89,
+ 0x18, 0x77, 0x3e, 0xad, 0x3e, 0xb0, 0x74, 0x98, 0x54, 0xd5, 0x29, 0xab,
+ 0x17, 0x76, 0x37, 0x40, 0x1a, 0xe9, 0x55, 0xc8, 0x10, 0x4d, 0xdc, 0x8e,
+ 0xb0, 0x99, 0xf4, 0x1c, 0x7c, 0x30, 0x6a, 0x2f, 0x76, 0xa9, 0x50, 0xc8,
+ 0x12, 0xc1, 0xf8, 0x18,
+};
+static const struct drbg_kat_pr_true kat4156_t = {
+ 0, kat4156_entropyin, kat4156_nonce, kat4156_persstr,
+ kat4156_entropyinpr1, kat4156_addinpr1, kat4156_entropyinpr2,
+ kat4156_addinpr2, kat4156_retbits
+};
+static const struct drbg_kat kat4156 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4156_t
+};
+
+static const unsigned char kat4157_entropyin[] = {
+ 0xb9, 0xa3, 0xf3, 0x5b, 0xcb, 0x0e, 0x13, 0xc3, 0x47, 0x04, 0xae, 0xbb,
+ 0xe4, 0x2c, 0xd1, 0xae, 0x10, 0x32, 0xc0, 0x47, 0x7e, 0xe6, 0xa4, 0xd5,
+ 0x96, 0x6c, 0x65, 0x36, 0x04, 0x4c, 0xa0, 0xfa, 0xc9, 0x6c, 0x2d, 0x97,
+ 0xc3, 0xd4, 0x1a, 0x2f, 0x64, 0x80, 0xca, 0xc1, 0x14, 0x31, 0xb1, 0xb4,
+};
+static const unsigned char kat4157_nonce[] = {0};
+static const unsigned char kat4157_persstr[] = {0};
+static const unsigned char kat4157_entropyinpr1[] = {
+ 0x86, 0xea, 0xdd, 0xcb, 0xb9, 0x93, 0x53, 0x67, 0x71, 0x30, 0x3d, 0x8a,
+ 0x63, 0x2e, 0x58, 0xf6, 0x22, 0xec, 0x43, 0x19, 0x84, 0x4c, 0x8b, 0xf1,
+ 0xb1, 0x12, 0x04, 0x9a, 0x6f, 0x66, 0x9e, 0xae, 0x59, 0xd3, 0x88, 0x84,
+ 0xc9, 0xc7, 0xe8, 0x29, 0x75, 0xd0, 0x24, 0x61, 0xc1, 0x7f, 0x74, 0x27,
+};
+static const unsigned char kat4157_addinpr1[] = {
+ 0x45, 0x25, 0x84, 0x3c, 0x9e, 0xac, 0x44, 0x71, 0x1e, 0x3f, 0xda, 0x2f,
+ 0x49, 0x88, 0x94, 0x04, 0xaf, 0x49, 0xe3, 0x7c, 0x3e, 0x50, 0xd8, 0x55,
+ 0xf6, 0x1d, 0xe7, 0xe8, 0x20, 0x38, 0x0a, 0x8b, 0x07, 0x40, 0x7c, 0x79,
+ 0x85, 0x5c, 0xda, 0xf2, 0x67, 0x85, 0xab, 0x75, 0x7e, 0xd8, 0xa4, 0x36,
+};
+static const unsigned char kat4157_entropyinpr2[] = {
+ 0x91, 0x8e, 0x0c, 0x9d, 0xac, 0xe5, 0xc5, 0x9b, 0x90, 0x79, 0x73, 0x42,
+ 0x98, 0x80, 0x34, 0xe1, 0xd8, 0x36, 0x18, 0x53, 0x29, 0x82, 0x20, 0xb8,
+ 0xc0, 0x5c, 0x85, 0x05, 0x4b, 0x9c, 0x17, 0x0f, 0x96, 0x3d, 0x6d, 0xdb,
+ 0xf4, 0xc7, 0x92, 0xd1, 0x61, 0x50, 0x01, 0x30, 0xf8, 0x2e, 0xc5, 0x4c,
+};
+static const unsigned char kat4157_addinpr2[] = {
+ 0x87, 0x1a, 0x2a, 0x3a, 0xab, 0x55, 0xe1, 0xe4, 0xfa, 0x72, 0xcc, 0xe2,
+ 0x88, 0x38, 0x9d, 0x58, 0x41, 0x6e, 0xc2, 0xaa, 0x37, 0xd3, 0x0d, 0x5f,
+ 0x1c, 0x68, 0x1f, 0x62, 0x5e, 0x99, 0xdd, 0x64, 0x90, 0x78, 0xb6, 0x00,
+ 0x3c, 0x9f, 0x8f, 0x99, 0xda, 0xf1, 0xfd, 0x02, 0x93, 0x13, 0x49, 0x59,
+};
+static const unsigned char kat4157_retbits[] = {
+ 0x36, 0x6e, 0x6a, 0x40, 0x5c, 0xa2, 0xd7, 0x94, 0x1a, 0xd3, 0x29, 0x12,
+ 0x4f, 0x95, 0xfa, 0x6b, 0x15, 0x7d, 0x5b, 0x57, 0x3f, 0x4c, 0x8c, 0x8c,
+ 0x7b, 0x6b, 0xcd, 0x1e, 0x39, 0xf9, 0x7f, 0xb8, 0x04, 0xff, 0xa1, 0x6c,
+ 0x37, 0x98, 0x44, 0x0c, 0x75, 0xd2, 0x9a, 0x0f, 0x9b, 0xbf, 0x02, 0xa4,
+ 0x51, 0x8f, 0x45, 0x44, 0x4a, 0xc8, 0xe3, 0xf8, 0xeb, 0x8b, 0xdf, 0x2e,
+ 0xdd, 0xba, 0x26, 0xb0,
+};
+static const struct drbg_kat_pr_true kat4157_t = {
+ 1, kat4157_entropyin, kat4157_nonce, kat4157_persstr,
+ kat4157_entropyinpr1, kat4157_addinpr1, kat4157_entropyinpr2,
+ kat4157_addinpr2, kat4157_retbits
+};
+static const struct drbg_kat kat4157 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4157_t
+};
+
+static const unsigned char kat4158_entropyin[] = {
+ 0xa9, 0x54, 0xdf, 0xab, 0x71, 0xe7, 0x70, 0x4e, 0x3e, 0x65, 0xd7, 0xf0,
+ 0x91, 0xe4, 0xdb, 0x82, 0x11, 0xbf, 0x7b, 0x48, 0x3d, 0x5c, 0x01, 0x53,
+ 0xc3, 0xbf, 0xd2, 0x0e, 0xfa, 0x79, 0x1a, 0x45, 0x66, 0x38, 0xcd, 0xb4,
+ 0x24, 0xfa, 0x3b, 0xf8, 0x2a, 0x61, 0xab, 0xe3, 0x71, 0x68, 0x7f, 0xd9,
+};
+static const unsigned char kat4158_nonce[] = {0};
+static const unsigned char kat4158_persstr[] = {0};
+static const unsigned char kat4158_entropyinpr1[] = {
+ 0x4d, 0x64, 0xa5, 0x6e, 0xde, 0x43, 0x3d, 0x08, 0xf7, 0xb8, 0x8c, 0x97,
+ 0x26, 0x9e, 0x97, 0x13, 0x6b, 0x59, 0xc7, 0x90, 0x67, 0x0b, 0x8a, 0x86,
+ 0xa4, 0x85, 0x15, 0xe7, 0x08, 0xbb, 0x75, 0x7a, 0x86, 0xe6, 0x06, 0xb3,
+ 0x7f, 0x9f, 0xe6, 0xe8, 0xbb, 0xcf, 0x00, 0xa9, 0x34, 0xf3, 0xd6, 0xb0,
+};
+static const unsigned char kat4158_addinpr1[] = {
+ 0xe3, 0x0b, 0x6e, 0xca, 0x01, 0xa4, 0x0d, 0xf9, 0xb3, 0x31, 0x72, 0xd4,
+ 0x7a, 0x1c, 0xd2, 0xd5, 0xac, 0x0b, 0x4c, 0x7a, 0x9e, 0xbe, 0x19, 0xf2,
+ 0x4d, 0xf0, 0x9d, 0xb7, 0x1c, 0x4f, 0x9e, 0x1e, 0xb0, 0x27, 0xc4, 0x93,
+ 0x03, 0xac, 0x60, 0x56, 0x31, 0x6a, 0xfc, 0x66, 0x2e, 0x63, 0xee, 0x3c,
+};
+static const unsigned char kat4158_entropyinpr2[] = {
+ 0x57, 0xc5, 0xd9, 0x09, 0x7e, 0x83, 0x09, 0x1a, 0x7e, 0xdc, 0x14, 0x32,
+ 0xe2, 0xa6, 0x6c, 0xa9, 0x89, 0xd4, 0x38, 0x4f, 0x84, 0x17, 0x07, 0xc7,
+ 0x06, 0x72, 0xcd, 0xc1, 0x82, 0xbb, 0x50, 0xef, 0x98, 0xd6, 0xa2, 0xdb,
+ 0x10, 0x90, 0x92, 0x78, 0xf4, 0xb7, 0x1d, 0x8b, 0xdf, 0xee, 0x08, 0x05,
+};
+static const unsigned char kat4158_addinpr2[] = {
+ 0xef, 0x38, 0x3a, 0xb2, 0x03, 0x53, 0xec, 0xac, 0xeb, 0x94, 0xb7, 0xb9,
+ 0xb2, 0x89, 0x1a, 0x00, 0xe3, 0xc0, 0xaa, 0x1d, 0x85, 0xa3, 0xff, 0x3e,
+ 0x66, 0x8b, 0x73, 0x2d, 0x49, 0xba, 0xc7, 0x30, 0x18, 0x52, 0x21, 0x84,
+ 0xc3, 0x87, 0x3c, 0xf7, 0x4c, 0x30, 0xa2, 0x39, 0x5b, 0xb9, 0x82, 0x9d,
+};
+static const unsigned char kat4158_retbits[] = {
+ 0xf7, 0x0a, 0x0f, 0xa2, 0x90, 0x0b, 0x38, 0xdd, 0x09, 0x62, 0x3b, 0x78,
+ 0x75, 0xbd, 0x2c, 0xcb, 0x32, 0xe4, 0x0e, 0x14, 0x6a, 0x8b, 0x46, 0xc3,
+ 0x05, 0x2a, 0x3c, 0x84, 0xce, 0x3c, 0x90, 0x46, 0xec, 0xbc, 0xa2, 0x89,
+ 0x14, 0x56, 0x70, 0x22, 0xea, 0xa1, 0x1d, 0x59, 0xe1, 0xb8, 0x11, 0x61,
+ 0xa7, 0x9a, 0xae, 0x7c, 0xff, 0x78, 0x7b, 0x9d, 0x51, 0x00, 0xf7, 0x8f,
+ 0x98, 0xa8, 0x00, 0x0c,
+};
+static const struct drbg_kat_pr_true kat4158_t = {
+ 2, kat4158_entropyin, kat4158_nonce, kat4158_persstr,
+ kat4158_entropyinpr1, kat4158_addinpr1, kat4158_entropyinpr2,
+ kat4158_addinpr2, kat4158_retbits
+};
+static const struct drbg_kat kat4158 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4158_t
+};
+
+static const unsigned char kat4159_entropyin[] = {
+ 0x1f, 0x07, 0xb9, 0xde, 0x97, 0x08, 0xc9, 0x1c, 0x2f, 0x95, 0x01, 0x71,
+ 0xd3, 0x83, 0xea, 0x93, 0x55, 0xd7, 0x14, 0xcd, 0xbd, 0x0d, 0x85, 0xaf,
+ 0x1c, 0xe4, 0x30, 0xf6, 0x7f, 0x7d, 0x48, 0x3e, 0x0e, 0x31, 0x18, 0x93,
+ 0x4f, 0x4c, 0xf0, 0x3c, 0xc8, 0xf0, 0x5c, 0xe0, 0x6c, 0xbc, 0x40, 0x7b,
+};
+static const unsigned char kat4159_nonce[] = {0};
+static const unsigned char kat4159_persstr[] = {0};
+static const unsigned char kat4159_entropyinpr1[] = {
+ 0x20, 0x6b, 0x22, 0xc1, 0xe4, 0x2b, 0x38, 0x26, 0x94, 0x92, 0x28, 0xa4,
+ 0x4c, 0x4a, 0x5e, 0xbe, 0x8c, 0x0f, 0x50, 0xeb, 0x48, 0xff, 0xa9, 0x08,
+ 0x10, 0x89, 0x7b, 0x2e, 0x5c, 0xf9, 0xe9, 0x89, 0x32, 0x09, 0x0e, 0xe5,
+ 0xd8, 0x01, 0x41, 0x93, 0x77, 0x57, 0xbc, 0xe3, 0xbc, 0x36, 0x8f, 0x51,
+};
+static const unsigned char kat4159_addinpr1[] = {
+ 0x68, 0x45, 0x76, 0x77, 0xf6, 0xad, 0x0c, 0x60, 0x4f, 0xe9, 0x7c, 0x57,
+ 0x2f, 0xed, 0x97, 0xbd, 0x83, 0xdd, 0xcd, 0x95, 0xaa, 0x0e, 0x77, 0xd5,
+ 0x6c, 0x67, 0x11, 0xe6, 0x48, 0x1a, 0x13, 0x7c, 0x48, 0x96, 0x61, 0x32,
+ 0xc4, 0x95, 0x4e, 0x07, 0x9a, 0xd9, 0x4e, 0x90, 0xc9, 0x79, 0x6f, 0xf8,
+};
+static const unsigned char kat4159_entropyinpr2[] = {
+ 0xbd, 0x50, 0xed, 0xbc, 0x9b, 0x24, 0x53, 0x6d, 0x6c, 0x00, 0xa5, 0x57,
+ 0x65, 0x15, 0xe4, 0xbb, 0x7d, 0x8c, 0x9b, 0xd4, 0xd5, 0x98, 0x8e, 0x50,
+ 0xb8, 0xe6, 0x3d, 0xe7, 0xec, 0x72, 0x55, 0x6b, 0x51, 0xca, 0xde, 0xea,
+ 0x2a, 0xf5, 0x4d, 0x48, 0x89, 0xe6, 0x89, 0x1c, 0x35, 0xcb, 0xaa, 0xf9,
+};
+static const unsigned char kat4159_addinpr2[] = {
+ 0x21, 0x37, 0xea, 0xcd, 0xf5, 0xce, 0x18, 0x34, 0x98, 0x40, 0xae, 0xb9,
+ 0x3d, 0x12, 0xe6, 0x45, 0x02, 0xce, 0xa3, 0xdc, 0xf7, 0xe7, 0xd1, 0xd8,
+ 0xb4, 0xc3, 0x39, 0x8c, 0xbc, 0x95, 0xb4, 0xef, 0xd2, 0xba, 0x39, 0xaf,
+ 0xd5, 0x1a, 0xd6, 0xf1, 0xf8, 0xfb, 0xec, 0xa7, 0x7a, 0xe9, 0x60, 0xa9,
+};
+static const unsigned char kat4159_retbits[] = {
+ 0x62, 0x7b, 0xaa, 0x50, 0x47, 0x94, 0x4b, 0xf8, 0x24, 0x96, 0x42, 0xe6,
+ 0x25, 0xdc, 0xf8, 0xc4, 0x4f, 0x12, 0x8f, 0x43, 0x9e, 0xd2, 0xe7, 0xa0,
+ 0x88, 0x13, 0x49, 0x8a, 0x0a, 0x4f, 0xce, 0x98, 0x2a, 0x95, 0x58, 0xf6,
+ 0x7c, 0xeb, 0x0e, 0x4a, 0x55, 0x05, 0x63, 0xde, 0xbf, 0x26, 0xc7, 0x35,
+ 0xa3, 0x6e, 0x80, 0xdb, 0x79, 0x0a, 0xfb, 0xb4, 0xfb, 0xf8, 0x36, 0x9b,
+ 0x16, 0x30, 0x86, 0xf5,
+};
+static const struct drbg_kat_pr_true kat4159_t = {
+ 3, kat4159_entropyin, kat4159_nonce, kat4159_persstr,
+ kat4159_entropyinpr1, kat4159_addinpr1, kat4159_entropyinpr2,
+ kat4159_addinpr2, kat4159_retbits
+};
+static const struct drbg_kat kat4159 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4159_t
+};
+
+static const unsigned char kat4160_entropyin[] = {
+ 0xc1, 0x66, 0x9a, 0x43, 0x01, 0x22, 0xe0, 0x85, 0x6a, 0xee, 0x6b, 0x32,
+ 0xd0, 0x81, 0xfc, 0x83, 0xa0, 0x3c, 0x06, 0x1f, 0x6d, 0x24, 0xe8, 0x4b,
+ 0xef, 0x76, 0xb9, 0x5c, 0xba, 0xaa, 0x26, 0xed, 0xbc, 0xfe, 0xda, 0xe0,
+ 0x5c, 0xc0, 0x84, 0xf2, 0xaa, 0x06, 0x68, 0xfe, 0x0d, 0x47, 0xb7, 0x2a,
+};
+static const unsigned char kat4160_nonce[] = {0};
+static const unsigned char kat4160_persstr[] = {0};
+static const unsigned char kat4160_entropyinpr1[] = {
+ 0x9e, 0x86, 0x3d, 0xd5, 0x46, 0xe8, 0x38, 0x52, 0xbd, 0x71, 0x04, 0x7d,
+ 0x82, 0x99, 0x37, 0x88, 0xe1, 0x61, 0xde, 0x88, 0xdf, 0xc3, 0x11, 0x3b,
+ 0xc7, 0x47, 0x4e, 0xc7, 0x83, 0x76, 0x25, 0x99, 0xf5, 0xed, 0xf3, 0x80,
+ 0xff, 0x25, 0xa2, 0x31, 0x22, 0x6a, 0x9d, 0xd5, 0x1f, 0x32, 0xf5, 0xdd,
+};
+static const unsigned char kat4160_addinpr1[] = {
+ 0x78, 0x9e, 0x64, 0xd0, 0x0a, 0x42, 0xc5, 0xde, 0xa4, 0xdc, 0x98, 0x0a,
+ 0xa3, 0x24, 0xcd, 0xbe, 0x63, 0xaa, 0x3f, 0x95, 0xef, 0x64, 0x14, 0x07,
+ 0x0b, 0x59, 0x05, 0x4b, 0x1b, 0x2a, 0x33, 0x24, 0x5b, 0x9b, 0xdd, 0xf7,
+ 0xba, 0x0b, 0x59, 0xec, 0x08, 0xe0, 0x10, 0xdb, 0x75, 0xcc, 0x69, 0x5c,
+};
+static const unsigned char kat4160_entropyinpr2[] = {
+ 0xa9, 0xdd, 0x0f, 0x23, 0x1b, 0x5f, 0x10, 0xcd, 0x4a, 0x0b, 0x17, 0xb0,
+ 0x9e, 0x94, 0xa9, 0x38, 0xe5, 0xb4, 0x40, 0x14, 0x96, 0x02, 0xf0, 0xab,
+ 0x77, 0x03, 0x34, 0x61, 0x24, 0xe8, 0xbd, 0x3a, 0x4a, 0xdd, 0xe9, 0x6c,
+ 0x84, 0xee, 0xd0, 0xc8, 0x73, 0x35, 0xfd, 0x75, 0xb1, 0x79, 0x62, 0x3c,
+};
+static const unsigned char kat4160_addinpr2[] = {
+ 0x51, 0xb5, 0x3a, 0x5a, 0x96, 0xf3, 0x1e, 0x75, 0x0f, 0x2d, 0x9f, 0x04,
+ 0x74, 0xce, 0x3e, 0x75, 0x2c, 0xbb, 0x7c, 0x10, 0x19, 0x9b, 0xc5, 0x22,
+ 0xa0, 0xe7, 0x9e, 0xba, 0x07, 0xd7, 0x70, 0x91, 0x24, 0x27, 0x91, 0xf6,
+ 0x41, 0x71, 0x72, 0x95, 0x6c, 0x23, 0x97, 0xde, 0xa7, 0xe4, 0x25, 0xbf,
+};
+static const unsigned char kat4160_retbits[] = {
+ 0x38, 0xc4, 0x43, 0xf7, 0x8f, 0x55, 0xa2, 0x47, 0xd5, 0x74, 0x12, 0x31,
+ 0xbb, 0x9c, 0x23, 0x3d, 0xdd, 0xb7, 0x78, 0xaf, 0x41, 0x2b, 0xc3, 0xe8,
+ 0xfc, 0x4d, 0xde, 0x0c, 0x88, 0x4c, 0x0a, 0xbb, 0x6b, 0x67, 0x43, 0xab,
+ 0x23, 0xe7, 0xb7, 0x7a, 0xed, 0x59, 0xe4, 0xe7, 0xd8, 0x0f, 0x36, 0x18,
+ 0x1e, 0xeb, 0xc0, 0xef, 0xf3, 0x98, 0x47, 0x71, 0x14, 0x69, 0x83, 0xde,
+ 0x58, 0x2d, 0xb6, 0x5a,
+};
+static const struct drbg_kat_pr_true kat4160_t = {
+ 4, kat4160_entropyin, kat4160_nonce, kat4160_persstr,
+ kat4160_entropyinpr1, kat4160_addinpr1, kat4160_entropyinpr2,
+ kat4160_addinpr2, kat4160_retbits
+};
+static const struct drbg_kat kat4160 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4160_t
+};
+
+static const unsigned char kat4161_entropyin[] = {
+ 0x80, 0x01, 0x53, 0xc9, 0x99, 0xab, 0x5e, 0x4f, 0x68, 0x02, 0x4e, 0xa7,
+ 0x9b, 0xdf, 0xdf, 0xb7, 0xfb, 0x63, 0xe6, 0xb6, 0xaf, 0xbc, 0xd0, 0xe2,
+ 0xa6, 0x92, 0x73, 0x5e, 0x61, 0xc6, 0x55, 0xbf, 0x18, 0x42, 0x76, 0x53,
+ 0x2f, 0xe3, 0xf6, 0xe6, 0x8c, 0x4e, 0x20, 0x04, 0x0d, 0x99, 0x29, 0x19,
+};
+static const unsigned char kat4161_nonce[] = {0};
+static const unsigned char kat4161_persstr[] = {0};
+static const unsigned char kat4161_entropyinpr1[] = {
+ 0xc2, 0xfc, 0xaf, 0x92, 0x71, 0xcf, 0x85, 0x38, 0xa5, 0x5b, 0x0c, 0x32,
+ 0x06, 0x13, 0xb2, 0xbe, 0xb7, 0x77, 0xf1, 0x29, 0x00, 0x7e, 0xb1, 0x46,
+ 0x2e, 0xd3, 0xac, 0x9a, 0x96, 0x53, 0xb5, 0xac, 0x10, 0x6b, 0x38, 0x5e,
+ 0x44, 0xb4, 0x0a, 0xc0, 0x2c, 0x3c, 0x5b, 0x0e, 0x22, 0xec, 0x64, 0x7d,
+};
+static const unsigned char kat4161_addinpr1[] = {
+ 0x9f, 0x40, 0x47, 0x4b, 0x7f, 0x3c, 0x6f, 0xc8, 0xd3, 0x14, 0x2b, 0x1d,
+ 0x6e, 0x98, 0x08, 0xfa, 0xe8, 0x7b, 0x2d, 0xe0, 0xa1, 0xb0, 0xca, 0xe7,
+ 0x06, 0x0f, 0x5d, 0xc9, 0x1a, 0x3e, 0xab, 0x85, 0x26, 0x50, 0x86, 0x25,
+ 0x24, 0x68, 0x60, 0x29, 0xcf, 0xcf, 0x22, 0x30, 0x71, 0x24, 0x94, 0xd2,
+};
+static const unsigned char kat4161_entropyinpr2[] = {
+ 0xb8, 0x2e, 0xa6, 0x6b, 0xe4, 0x7b, 0xc7, 0x14, 0x27, 0x77, 0x77, 0x89,
+ 0xea, 0x29, 0xb8, 0xae, 0x82, 0x9a, 0x09, 0xe7, 0x9d, 0x38, 0x8d, 0x3e,
+ 0x66, 0x8a, 0xd7, 0xf6, 0xe0, 0x43, 0x2b, 0x8c, 0x9f, 0xd5, 0xe1, 0x7a,
+ 0x26, 0xb3, 0xd3, 0x0d, 0xe9, 0xa0, 0x29, 0x01, 0x66, 0x2f, 0x1e, 0xae,
+};
+static const unsigned char kat4161_addinpr2[] = {
+ 0xdb, 0x0e, 0x7c, 0x08, 0xff, 0xb1, 0xc3, 0x7a, 0xfc, 0x30, 0xc6, 0xfb,
+ 0xba, 0xb9, 0xfe, 0xf9, 0x49, 0x23, 0x8c, 0xde, 0xc7, 0x75, 0xbc, 0x06,
+ 0x67, 0xbc, 0xe1, 0xf7, 0xa5, 0x6d, 0x1a, 0x2c, 0xa0, 0xa0, 0x08, 0x85,
+ 0x9d, 0x6a, 0xb7, 0x5f, 0x87, 0x8a, 0x6b, 0x00, 0xa9, 0xe5, 0xe1, 0x52,
+};
+static const unsigned char kat4161_retbits[] = {
+ 0x80, 0xae, 0x6e, 0x76, 0xfa, 0x96, 0x76, 0x5f, 0xec, 0x13, 0x4f, 0x92,
+ 0xbe, 0x9c, 0x1b, 0xf7, 0x81, 0x51, 0x88, 0xf8, 0x86, 0xba, 0xb7, 0x55,
+ 0xe6, 0x17, 0xf0, 0x17, 0x4b, 0xe4, 0xfb, 0x00, 0xbb, 0x19, 0xb4, 0x66,
+ 0xe3, 0x53, 0xe2, 0xe1, 0x42, 0x5c, 0x4c, 0xbe, 0x6e, 0xb0, 0x9a, 0x65,
+ 0xce, 0xdd, 0xc6, 0x25, 0xaa, 0x00, 0xb7, 0x3b, 0xd2, 0x0e, 0x70, 0x7e,
+ 0x0c, 0x21, 0x57, 0xd8,
+};
+static const struct drbg_kat_pr_true kat4161_t = {
+ 5, kat4161_entropyin, kat4161_nonce, kat4161_persstr,
+ kat4161_entropyinpr1, kat4161_addinpr1, kat4161_entropyinpr2,
+ kat4161_addinpr2, kat4161_retbits
+};
+static const struct drbg_kat kat4161 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4161_t
+};
+
+static const unsigned char kat4162_entropyin[] = {
+ 0xe0, 0x74, 0xb1, 0xfc, 0x41, 0x34, 0xff, 0x8d, 0xef, 0x22, 0x4b, 0xed,
+ 0xb7, 0x78, 0xc3, 0x3f, 0xa5, 0x74, 0x75, 0x97, 0xae, 0x2a, 0x4d, 0x3c,
+ 0x1a, 0xd0, 0x95, 0xd3, 0x3b, 0x06, 0x9d, 0x49, 0x71, 0x77, 0xa4, 0x4f,
+ 0x93, 0x2b, 0x0d, 0xdc, 0xa4, 0x9f, 0x71, 0xce, 0x8d, 0x8a, 0x32, 0x41,
+};
+static const unsigned char kat4162_nonce[] = {0};
+static const unsigned char kat4162_persstr[] = {0};
+static const unsigned char kat4162_entropyinpr1[] = {
+ 0x02, 0x26, 0x1c, 0xa6, 0xa6, 0xb2, 0x71, 0xef, 0xd1, 0xa7, 0xe6, 0x14,
+ 0xbe, 0xf8, 0xa8, 0x02, 0x42, 0x7c, 0x9c, 0x1e, 0x53, 0x60, 0x92, 0x12,
+ 0xb2, 0xbe, 0xb9, 0x2b, 0xad, 0x8b, 0x7d, 0xf7, 0xae, 0x3f, 0x73, 0x3b,
+ 0xcc, 0x12, 0xde, 0x45, 0x89, 0x00, 0xa2, 0xbe, 0xba, 0x17, 0x1f, 0xc6,
+};
+static const unsigned char kat4162_addinpr1[] = {
+ 0x4a, 0x43, 0x27, 0xda, 0xf2, 0xec, 0x67, 0x5d, 0xd6, 0xb0, 0x8c, 0x21,
+ 0x13, 0x6c, 0xa7, 0x20, 0x49, 0x5d, 0x95, 0x08, 0x01, 0xbe, 0x4c, 0x50,
+ 0x34, 0xac, 0x25, 0x90, 0x97, 0x51, 0x13, 0x2a, 0xcc, 0xb3, 0x35, 0xea,
+ 0x47, 0xb9, 0x5c, 0xf2, 0x87, 0xd2, 0x6d, 0x29, 0x6e, 0xa5, 0x75, 0x1b,
+};
+static const unsigned char kat4162_entropyinpr2[] = {
+ 0x95, 0x93, 0x64, 0x8b, 0xae, 0xfb, 0xa0, 0x50, 0x60, 0x15, 0xd6, 0x62,
+ 0x22, 0x5a, 0xe5, 0xa6, 0x0c, 0xb2, 0x17, 0xb1, 0x14, 0xb2, 0x4a, 0xd8,
+ 0x20, 0x10, 0x25, 0x81, 0x2a, 0x22, 0xc1, 0x13, 0xf6, 0x87, 0x1d, 0xf2,
+ 0x21, 0xc2, 0x2b, 0xcb, 0x28, 0xe2, 0xdd, 0xd2, 0x38, 0xab, 0x56, 0x70,
+};
+static const unsigned char kat4162_addinpr2[] = {
+ 0xc2, 0x16, 0xb8, 0xde, 0x28, 0x48, 0x14, 0x6f, 0x52, 0x70, 0x16, 0x0f,
+ 0xd0, 0x0b, 0x2e, 0x23, 0xf6, 0x7e, 0xdb, 0xd4, 0x99, 0xfb, 0x01, 0x2d,
+ 0x6b, 0x95, 0x06, 0x05, 0xed, 0x0e, 0x2e, 0x4f, 0x62, 0x56, 0xe2, 0x7e,
+ 0xc7, 0xec, 0x02, 0x10, 0xeb, 0x5e, 0x26, 0x98, 0x40, 0xf6, 0x33, 0xb1,
+};
+static const unsigned char kat4162_retbits[] = {
+ 0x1b, 0xed, 0xa2, 0x0b, 0x86, 0x9b, 0x95, 0x19, 0xd2, 0xc8, 0xeb, 0x72,
+ 0xef, 0xc6, 0xca, 0xdd, 0x3a, 0xb6, 0xd2, 0xf1, 0xcc, 0xff, 0x72, 0x96,
+ 0x09, 0x06, 0x3b, 0x81, 0x53, 0x4a, 0x2c, 0x74, 0x2a, 0xa5, 0x2c, 0x57,
+ 0xc2, 0x0a, 0x56, 0x4d, 0xa0, 0x10, 0x7c, 0xae, 0xe5, 0xaf, 0xec, 0x23,
+ 0x2a, 0x20, 0xe2, 0xec, 0x43, 0x79, 0xac, 0x7c, 0x0f, 0xac, 0x4c, 0x83,
+ 0xa6, 0x41, 0xc2, 0xbf,
+};
+static const struct drbg_kat_pr_true kat4162_t = {
+ 6, kat4162_entropyin, kat4162_nonce, kat4162_persstr,
+ kat4162_entropyinpr1, kat4162_addinpr1, kat4162_entropyinpr2,
+ kat4162_addinpr2, kat4162_retbits
+};
+static const struct drbg_kat kat4162 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4162_t
+};
+
+static const unsigned char kat4163_entropyin[] = {
+ 0xeb, 0x7f, 0x53, 0xf4, 0xc9, 0x91, 0xa9, 0x6a, 0x01, 0xcc, 0x70, 0x58,
+ 0xca, 0x91, 0x27, 0x30, 0x73, 0xfe, 0xc7, 0xd5, 0x7f, 0x6a, 0x4a, 0xd8,
+ 0x6c, 0xcb, 0x0a, 0xc3, 0x32, 0x00, 0x1b, 0xe9, 0x55, 0xe8, 0xf3, 0x02,
+ 0x1d, 0xa9, 0x52, 0x43, 0x90, 0x7f, 0xb0, 0xf1, 0x75, 0xb9, 0x1f, 0x88,
+};
+static const unsigned char kat4163_nonce[] = {0};
+static const unsigned char kat4163_persstr[] = {0};
+static const unsigned char kat4163_entropyinpr1[] = {
+ 0x8b, 0xa9, 0xb8, 0x14, 0x5d, 0xc3, 0xad, 0x9c, 0x48, 0xfa, 0xa8, 0x4c,
+ 0x6d, 0x8b, 0x17, 0x72, 0x0e, 0x85, 0xfa, 0xda, 0x42, 0xbb, 0x02, 0xc9,
+ 0xf8, 0xd5, 0x0b, 0x65, 0x41, 0xc7, 0x4b, 0x6a, 0x27, 0x5f, 0x59, 0xcf,
+ 0x51, 0xd0, 0x16, 0x24, 0x42, 0x49, 0xb8, 0xfc, 0x56, 0xfe, 0x95, 0x35,
+};
+static const unsigned char kat4163_addinpr1[] = {
+ 0x00, 0x2f, 0xff, 0x2d, 0x34, 0xac, 0x5c, 0x29, 0x87, 0xe6, 0x9d, 0x27,
+ 0xa5, 0x03, 0x76, 0x6d, 0x16, 0xd4, 0x2f, 0xfc, 0xde, 0x7b, 0x16, 0xaf,
+ 0x1e, 0x6e, 0x84, 0x47, 0x64, 0xd3, 0xfa, 0x73, 0xf0, 0xff, 0xda, 0x37,
+ 0x69, 0x8f, 0x36, 0x48, 0x67, 0x28, 0x6a, 0x37, 0xad, 0x29, 0x73, 0xed,
+};
+static const unsigned char kat4163_entropyinpr2[] = {
+ 0xdf, 0x2a, 0x8e, 0xf4, 0x50, 0xa4, 0x73, 0x77, 0x78, 0x5b, 0xf5, 0x58,
+ 0x6b, 0x50, 0x67, 0x98, 0x16, 0xc6, 0xa3, 0xdb, 0x9a, 0x7b, 0xa1, 0xc3,
+ 0x40, 0x1e, 0xdb, 0x4e, 0xcc, 0xa9, 0xcc, 0xd7, 0x13, 0xff, 0xd1, 0xe8,
+ 0x2e, 0x4d, 0x23, 0x26, 0x43, 0x3a, 0xef, 0x19, 0xb6, 0x79, 0x1c, 0xbb,
+};
+static const unsigned char kat4163_addinpr2[] = {
+ 0xa5, 0x48, 0x15, 0x59, 0x14, 0xbb, 0xcc, 0xfd, 0x5c, 0x7b, 0xa4, 0x17,
+ 0x00, 0xd4, 0x5b, 0x50, 0xf3, 0x27, 0x35, 0xcc, 0x96, 0x0c, 0x7d, 0xf7,
+ 0xd3, 0x31, 0x44, 0xfd, 0x46, 0x46, 0x84, 0xdc, 0x5d, 0xfe, 0xf1, 0xe9,
+ 0x50, 0x91, 0xd1, 0xa7, 0xc9, 0x61, 0x7d, 0x11, 0x23, 0x77, 0xa8, 0x92,
+};
+static const unsigned char kat4163_retbits[] = {
+ 0xd1, 0x71, 0xa9, 0x6e, 0x6b, 0xfd, 0xb4, 0x37, 0xcd, 0x20, 0xd6, 0x50,
+ 0xca, 0x27, 0xdc, 0x3f, 0x94, 0x77, 0x61, 0xed, 0x65, 0xb9, 0x3b, 0x44,
+ 0x76, 0xbd, 0x2c, 0xdb, 0x31, 0x8e, 0xce, 0x39, 0xa1, 0x34, 0x72, 0x91,
+ 0x90, 0xc9, 0x78, 0x11, 0x2d, 0x1f, 0xcf, 0x94, 0x73, 0xca, 0x80, 0xd1,
+ 0x3f, 0xad, 0x57, 0xb3, 0xab, 0x05, 0x56, 0xf4, 0x69, 0x95, 0x6a, 0x48,
+ 0x02, 0xaa, 0x63, 0x16,
+};
+static const struct drbg_kat_pr_true kat4163_t = {
+ 7, kat4163_entropyin, kat4163_nonce, kat4163_persstr,
+ kat4163_entropyinpr1, kat4163_addinpr1, kat4163_entropyinpr2,
+ kat4163_addinpr2, kat4163_retbits
+};
+static const struct drbg_kat kat4163 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4163_t
+};
+
+static const unsigned char kat4164_entropyin[] = {
+ 0x6e, 0xe1, 0x3c, 0x98, 0x05, 0xe3, 0x94, 0x66, 0xae, 0x15, 0x79, 0x84,
+ 0x38, 0x23, 0x21, 0xc2, 0x20, 0x04, 0xb0, 0x04, 0xe9, 0x6f, 0x69, 0xb6,
+ 0x4a, 0xdc, 0xd5, 0x46, 0xe2, 0x9c, 0x4b, 0xcf, 0x43, 0xb9, 0x5c, 0x0b,
+ 0x70, 0x8f, 0xf2, 0xb5, 0x6b, 0x9a, 0xbb, 0xef, 0x16, 0x59, 0x58, 0x74,
+};
+static const unsigned char kat4164_nonce[] = {0};
+static const unsigned char kat4164_persstr[] = {0};
+static const unsigned char kat4164_entropyinpr1[] = {
+ 0xff, 0x86, 0xdd, 0xcb, 0xa2, 0x52, 0x50, 0x38, 0xb1, 0x6a, 0x28, 0x03,
+ 0x9e, 0xba, 0x04, 0x45, 0x95, 0x74, 0x9f, 0x96, 0x44, 0x14, 0xba, 0x16,
+ 0x4d, 0x18, 0x1b, 0x03, 0xb6, 0xf8, 0x53, 0xc1, 0x88, 0xed, 0xe2, 0xe8,
+ 0x0b, 0x8f, 0xaf, 0x44, 0xf4, 0x73, 0x81, 0x4e, 0x22, 0xaf, 0x09, 0xdf,
+};
+static const unsigned char kat4164_addinpr1[] = {
+ 0x04, 0x37, 0x2e, 0xfb, 0x1f, 0x9e, 0x93, 0xca, 0xe0, 0x64, 0xf4, 0x06,
+ 0x55, 0x98, 0xcb, 0xfd, 0x49, 0x82, 0x11, 0xc0, 0xe7, 0xd7, 0x67, 0x06,
+ 0xd3, 0x1b, 0x52, 0x7e, 0x53, 0x3e, 0x62, 0x88, 0x3b, 0x42, 0x89, 0x1d,
+ 0x63, 0xdc, 0xa3, 0x94, 0x35, 0x9a, 0x5a, 0x7a, 0xcf, 0x2b, 0x43, 0x34,
+};
+static const unsigned char kat4164_entropyinpr2[] = {
+ 0x04, 0xa2, 0xec, 0x1e, 0xc1, 0xeb, 0x5e, 0xe6, 0x33, 0xf2, 0x78, 0xca,
+ 0x7d, 0x77, 0x29, 0xae, 0xc9, 0x90, 0x60, 0x9d, 0xc3, 0x26, 0x14, 0x94,
+ 0x7a, 0x4f, 0xb2, 0x36, 0x55, 0x4f, 0x55, 0x87, 0xf2, 0xc0, 0xdc, 0xbe,
+ 0xbe, 0xda, 0x37, 0x2b, 0x3b, 0x6e, 0xec, 0x5d, 0xfb, 0xf6, 0xd8, 0x6d,
+};
+static const unsigned char kat4164_addinpr2[] = {
+ 0xc7, 0xae, 0x96, 0x00, 0x9f, 0x4d, 0x00, 0x82, 0xd6, 0x45, 0xa3, 0x01,
+ 0xa3, 0xee, 0xba, 0xb4, 0x12, 0xf3, 0xaf, 0x23, 0xe3, 0x86, 0x2a, 0xbd,
+ 0xed, 0xdb, 0x3c, 0x09, 0x3e, 0xc8, 0x56, 0xc8, 0xf8, 0x7f, 0xe7, 0x2b,
+ 0xa9, 0x3a, 0x0e, 0x19, 0x76, 0xf6, 0x79, 0xa7, 0x62, 0x0d, 0x3d, 0xd5,
+};
+static const unsigned char kat4164_retbits[] = {
+ 0x98, 0x34, 0x67, 0x77, 0xcd, 0x25, 0x51, 0x7a, 0xd8, 0x8b, 0x4c, 0x49,
+ 0x05, 0x60, 0xc1, 0xf1, 0x0b, 0xd4, 0x53, 0xcb, 0xe1, 0x64, 0x30, 0xd6,
+ 0x7f, 0x8a, 0x47, 0x84, 0xf6, 0x9e, 0xf7, 0x8a, 0x2e, 0x41, 0xf8, 0xf2,
+ 0x61, 0x19, 0xd0, 0xd8, 0xeb, 0x45, 0x2f, 0xdf, 0xb1, 0xf8, 0x30, 0x50,
+ 0x98, 0xe4, 0x8b, 0x3c, 0xc0, 0xd7, 0x74, 0xb9, 0x89, 0x8a, 0x0e, 0xe7,
+ 0xf4, 0x24, 0x7f, 0xf4,
+};
+static const struct drbg_kat_pr_true kat4164_t = {
+ 8, kat4164_entropyin, kat4164_nonce, kat4164_persstr,
+ kat4164_entropyinpr1, kat4164_addinpr1, kat4164_entropyinpr2,
+ kat4164_addinpr2, kat4164_retbits
+};
+static const struct drbg_kat kat4164 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4164_t
+};
+
+static const unsigned char kat4165_entropyin[] = {
+ 0x7c, 0xd6, 0xc4, 0x13, 0x67, 0xee, 0x79, 0x41, 0x8e, 0x45, 0x64, 0xe8,
+ 0xf7, 0xbe, 0x89, 0x0b, 0x06, 0x29, 0x24, 0x87, 0x8e, 0xfb, 0xca, 0xc7,
+ 0x0e, 0x34, 0x15, 0xf4, 0xee, 0x6a, 0x9a, 0x41, 0xdb, 0xaf, 0x0a, 0xfc,
+ 0x53, 0x85, 0x84, 0xeb, 0xfe, 0xf9, 0x3a, 0xd7, 0xe1, 0xac, 0x86, 0x26,
+};
+static const unsigned char kat4165_nonce[] = {0};
+static const unsigned char kat4165_persstr[] = {0};
+static const unsigned char kat4165_entropyinpr1[] = {
+ 0x8a, 0x56, 0xc9, 0x32, 0xd5, 0x29, 0x65, 0xb5, 0x74, 0x91, 0x0c, 0x04,
+ 0x90, 0xcb, 0xe5, 0xac, 0x10, 0x22, 0x59, 0x63, 0x9d, 0xf9, 0xf9, 0x58,
+ 0x73, 0xc7, 0xf8, 0x13, 0x54, 0x0d, 0x40, 0x21, 0x7e, 0x87, 0x3c, 0xf4,
+ 0x6a, 0xf1, 0x9a, 0x31, 0xe5, 0xbd, 0xb1, 0x65, 0x20, 0x52, 0x05, 0x86,
+};
+static const unsigned char kat4165_addinpr1[] = {
+ 0x76, 0xc7, 0x52, 0x0b, 0x82, 0xf4, 0xde, 0x7d, 0xbf, 0xd4, 0x8d, 0x97,
+ 0x74, 0x3c, 0xdc, 0x55, 0x4b, 0x9d, 0xe9, 0x60, 0x9f, 0x86, 0xf0, 0x6c,
+ 0xa0, 0x9d, 0xdb, 0xa2, 0x5c, 0xf4, 0x4c, 0x55, 0x57, 0xea, 0x82, 0xd3,
+ 0x24, 0x8c, 0x71, 0xa5, 0x43, 0xd9, 0x10, 0xae, 0x01, 0xb6, 0xe0, 0x0a,
+};
+static const unsigned char kat4165_entropyinpr2[] = {
+ 0x1e, 0xe0, 0xad, 0xbc, 0x4e, 0x47, 0x7a, 0x08, 0x0a, 0x32, 0x97, 0xb3,
+ 0x1e, 0x36, 0x44, 0x49, 0xa9, 0x66, 0x6a, 0x4a, 0xaa, 0xf6, 0x20, 0xe1,
+ 0x53, 0xdf, 0x73, 0xf9, 0x28, 0x3a, 0xde, 0x87, 0x4a, 0x2d, 0x5b, 0x55,
+ 0xd7, 0xcc, 0xa7, 0x13, 0xda, 0x06, 0x7f, 0x65, 0x56, 0x43, 0x8b, 0x61,
+};
+static const unsigned char kat4165_addinpr2[] = {
+ 0x07, 0xfc, 0x64, 0x59, 0xf9, 0x6a, 0xda, 0x85, 0x84, 0x5d, 0xf9, 0xdc,
+ 0x60, 0x3f, 0x51, 0xa1, 0x90, 0x5d, 0x6d, 0x7d, 0x50, 0x98, 0xdc, 0x06,
+ 0x88, 0x61, 0xbf, 0x1b, 0xe4, 0xe6, 0x7a, 0x00, 0x18, 0x66, 0x4b, 0xf0,
+ 0x59, 0xc7, 0x8c, 0x30, 0xe9, 0xee, 0xc3, 0x3f, 0xfb, 0x1c, 0x6b, 0x1b,
+};
+static const unsigned char kat4165_retbits[] = {
+ 0x52, 0xf3, 0xaf, 0xf1, 0xed, 0x0b, 0x5e, 0xb6, 0x19, 0xcd, 0x50, 0x72,
+ 0x1e, 0x65, 0xc5, 0xd4, 0x98, 0x46, 0xf6, 0xac, 0x5a, 0xb8, 0xa3, 0xbe,
+ 0xa6, 0x07, 0x94, 0x4a, 0x06, 0xa5, 0x59, 0x15, 0xdc, 0x65, 0xcb, 0xdb,
+ 0x57, 0xe6, 0x27, 0x99, 0xfb, 0xe3, 0x35, 0xf6, 0x8b, 0x7a, 0x83, 0xd2,
+ 0x2a, 0xb1, 0x41, 0xcd, 0xc0, 0xd7, 0xfc, 0x33, 0xaa, 0xe2, 0xfd, 0x96,
+ 0xa2, 0xcd, 0xb0, 0x5d,
+};
+static const struct drbg_kat_pr_true kat4165_t = {
+ 9, kat4165_entropyin, kat4165_nonce, kat4165_persstr,
+ kat4165_entropyinpr1, kat4165_addinpr1, kat4165_entropyinpr2,
+ kat4165_addinpr2, kat4165_retbits
+};
+static const struct drbg_kat kat4165 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4165_t
+};
+
+static const unsigned char kat4166_entropyin[] = {
+ 0x72, 0x88, 0x09, 0xe9, 0x6c, 0x66, 0xe3, 0x74, 0x10, 0xc3, 0x60, 0x86,
+ 0x78, 0xa2, 0x59, 0xc8, 0x53, 0x0a, 0xc2, 0x72, 0x89, 0x1d, 0x1a, 0x89,
+ 0x60, 0x1d, 0x7a, 0x4d, 0xef, 0xe2, 0x85, 0x46, 0x05, 0x23, 0x03, 0x4e,
+ 0xcb, 0xbb, 0x75, 0x12, 0x43, 0xf5, 0x55, 0x56, 0xc2, 0x0f, 0xd1, 0xc4,
+};
+static const unsigned char kat4166_nonce[] = {0};
+static const unsigned char kat4166_persstr[] = {0};
+static const unsigned char kat4166_entropyinpr1[] = {
+ 0xf8, 0x19, 0x79, 0x79, 0x1c, 0xcf, 0x2e, 0x3d, 0x17, 0x82, 0xaa, 0xd9,
+ 0x0d, 0xf5, 0x49, 0xdd, 0xe5, 0xdc, 0x02, 0xe4, 0x29, 0x1b, 0xa0, 0x9f,
+ 0x9f, 0xe9, 0x7b, 0x32, 0x14, 0xcb, 0xc1, 0xda, 0x28, 0x7f, 0x32, 0x0c,
+ 0xa3, 0x69, 0x78, 0x90, 0x8b, 0xf7, 0xce, 0x16, 0x01, 0x3a, 0x0e, 0xbd,
+};
+static const unsigned char kat4166_addinpr1[] = {
+ 0x79, 0x5f, 0xd4, 0x22, 0xa9, 0xaf, 0x77, 0xcc, 0xa1, 0xfe, 0x5a, 0x81,
+ 0x0a, 0x3a, 0x28, 0x3b, 0x89, 0xcd, 0x82, 0x4a, 0x54, 0x87, 0xdf, 0x35,
+ 0xce, 0x9f, 0x8e, 0x62, 0xfa, 0x86, 0x40, 0xab, 0x27, 0xe0, 0x6a, 0xf8,
+ 0xdc, 0xb2, 0xa7, 0x18, 0x23, 0x0d, 0x7e, 0x97, 0xbc, 0x09, 0xf0, 0x33,
+};
+static const unsigned char kat4166_entropyinpr2[] = {
+ 0xa5, 0xd2, 0x8e, 0xd2, 0xc9, 0xe4, 0x96, 0x2b, 0xb5, 0xaa, 0x57, 0x69,
+ 0x45, 0xb8, 0xe8, 0x9d, 0xdb, 0xfa, 0xe4, 0x97, 0x9c, 0x16, 0xe3, 0xe3,
+ 0x76, 0x5d, 0xa7, 0x13, 0xc2, 0x87, 0xf3, 0xad, 0x69, 0xe1, 0x8c, 0x61,
+ 0x3d, 0xf2, 0x49, 0xec, 0x75, 0x6b, 0xb3, 0xfd, 0x27, 0x87, 0xae, 0x36,
+};
+static const unsigned char kat4166_addinpr2[] = {
+ 0x31, 0x32, 0xd0, 0x25, 0xf5, 0x24, 0x66, 0xd2, 0x7e, 0x38, 0x60, 0x2e,
+ 0xe8, 0x3d, 0x11, 0xdb, 0xc4, 0xfb, 0xa5, 0x5b, 0x32, 0x32, 0xaa, 0xf9,
+ 0x5c, 0xf4, 0x78, 0x90, 0x1c, 0xbb, 0x71, 0x5f, 0x90, 0x03, 0x23, 0x39,
+ 0x15, 0x48, 0xdc, 0xd9, 0x15, 0xdc, 0x6a, 0xd0, 0xc7, 0x6e, 0xfc, 0x03,
+};
+static const unsigned char kat4166_retbits[] = {
+ 0x2a, 0x0e, 0xd8, 0xc3, 0x79, 0x85, 0x12, 0xf4, 0xd2, 0x8a, 0x00, 0x11,
+ 0x5e, 0xb5, 0x8c, 0x77, 0xbf, 0x38, 0xe5, 0xaa, 0x8f, 0x68, 0x5b, 0x19,
+ 0x56, 0x99, 0xa6, 0x66, 0x19, 0xaf, 0xa2, 0x58, 0x26, 0x45, 0xe6, 0xbf,
+ 0xbb, 0xe2, 0x0e, 0x57, 0xa4, 0xb7, 0x2b, 0xe3, 0x5f, 0x4b, 0xa2, 0x2c,
+ 0x75, 0xb0, 0x78, 0x1a, 0x10, 0xc6, 0x7f, 0xac, 0xfb, 0x92, 0xd8, 0x44,
+ 0x59, 0xf2, 0x2f, 0xc4,
+};
+static const struct drbg_kat_pr_true kat4166_t = {
+ 10, kat4166_entropyin, kat4166_nonce, kat4166_persstr,
+ kat4166_entropyinpr1, kat4166_addinpr1, kat4166_entropyinpr2,
+ kat4166_addinpr2, kat4166_retbits
+};
+static const struct drbg_kat kat4166 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4166_t
+};
+
+static const unsigned char kat4167_entropyin[] = {
+ 0x2d, 0x66, 0x78, 0xdb, 0x9e, 0x85, 0x4e, 0xc4, 0x62, 0x79, 0x97, 0x00,
+ 0x26, 0x54, 0xd5, 0x3e, 0x88, 0x92, 0xe8, 0xdb, 0x44, 0x1b, 0x57, 0x89,
+ 0x89, 0x8d, 0x7f, 0x42, 0x9a, 0x82, 0x52, 0x49, 0x89, 0xfe, 0xe5, 0x93,
+ 0x3f, 0x22, 0x43, 0x7b, 0x79, 0x97, 0x5f, 0xc5, 0x40, 0xf8, 0x2f, 0xc4,
+};
+static const unsigned char kat4167_nonce[] = {0};
+static const unsigned char kat4167_persstr[] = {0};
+static const unsigned char kat4167_entropyinpr1[] = {
+ 0xc7, 0x6c, 0xa7, 0x53, 0xdc, 0x96, 0x2e, 0x9d, 0xb4, 0x68, 0x25, 0xf9,
+ 0xbc, 0xe3, 0x03, 0xcd, 0x92, 0x0e, 0x09, 0xb5, 0x15, 0xd5, 0x56, 0x7d,
+ 0x71, 0x64, 0x7c, 0x33, 0x9e, 0xfb, 0x6b, 0x6e, 0x95, 0x27, 0x5c, 0x98,
+ 0x89, 0xcd, 0xf3, 0x5e, 0x05, 0xbb, 0x14, 0x03, 0x68, 0xd4, 0xfd, 0x9b,
+};
+static const unsigned char kat4167_addinpr1[] = {
+ 0xb1, 0x57, 0xf0, 0xae, 0xe3, 0x39, 0x7d, 0x0b, 0x88, 0x4f, 0xa0, 0xb7,
+ 0x6d, 0x36, 0xb8, 0xe4, 0x30, 0x76, 0x92, 0x1e, 0x1c, 0xf2, 0xd4, 0x88,
+ 0xb8, 0x4f, 0x0f, 0x4a, 0x9d, 0x41, 0x79, 0x0f, 0xcf, 0x01, 0x08, 0x94,
+ 0x56, 0xb5, 0x5f, 0x48, 0x82, 0x8c, 0x2c, 0xc3, 0xb1, 0x17, 0x26, 0x73,
+};
+static const unsigned char kat4167_entropyinpr2[] = {
+ 0xc5, 0xe0, 0x4e, 0x7b, 0x53, 0x19, 0xe6, 0xd4, 0x00, 0x40, 0x27, 0xab,
+ 0xf9, 0xee, 0x0a, 0x57, 0x30, 0x9c, 0xb2, 0x2c, 0xe3, 0xd9, 0xd5, 0x86,
+ 0xc5, 0xad, 0x85, 0xf2, 0xe7, 0x74, 0xc7, 0x5a, 0x86, 0xca, 0xab, 0xc1,
+ 0x79, 0x31, 0x8e, 0x6c, 0x92, 0xfc, 0x5d, 0x23, 0xe2, 0x31, 0x3b, 0xc2,
+};
+static const unsigned char kat4167_addinpr2[] = {
+ 0x55, 0xcf, 0xe7, 0x22, 0x3c, 0x6c, 0x66, 0x6d, 0x90, 0x7f, 0x19, 0xab,
+ 0xca, 0x73, 0xda, 0x1a, 0xfb, 0x51, 0x61, 0x83, 0x28, 0x3a, 0x4f, 0x53,
+ 0xe0, 0x46, 0x5b, 0xe6, 0x99, 0x24, 0x87, 0x6f, 0x60, 0x2b, 0x99, 0x13,
+ 0x89, 0xc7, 0xf9, 0xe4, 0xef, 0x26, 0xe0, 0x38, 0xd8, 0x0b, 0x31, 0xde,
+};
+static const unsigned char kat4167_retbits[] = {
+ 0x4d, 0x0b, 0x4f, 0xcb, 0x6b, 0x2f, 0xcf, 0xb2, 0x3a, 0xee, 0xae, 0x6a,
+ 0xe5, 0x13, 0x5e, 0xe2, 0x35, 0x15, 0x5a, 0x26, 0xfd, 0xd6, 0x7a, 0x84,
+ 0xe2, 0xa6, 0xca, 0x49, 0xd8, 0xbf, 0x3f, 0xa6, 0x14, 0x52, 0xba, 0x32,
+ 0xa3, 0x9b, 0xfe, 0x0f, 0x37, 0x9a, 0x5b, 0x92, 0xc5, 0xe4, 0x16, 0xe4,
+ 0x2c, 0xdf, 0x4c, 0x47, 0xb2, 0x4f, 0xe6, 0xae, 0xd3, 0xb8, 0x17, 0x45,
+ 0x41, 0x1a, 0x4d, 0xff,
+};
+static const struct drbg_kat_pr_true kat4167_t = {
+ 11, kat4167_entropyin, kat4167_nonce, kat4167_persstr,
+ kat4167_entropyinpr1, kat4167_addinpr1, kat4167_entropyinpr2,
+ kat4167_addinpr2, kat4167_retbits
+};
+static const struct drbg_kat kat4167 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4167_t
+};
+
+static const unsigned char kat4168_entropyin[] = {
+ 0x53, 0x0b, 0x13, 0x6b, 0xfa, 0xb4, 0xa3, 0xf1, 0x63, 0x8a, 0x97, 0x6d,
+ 0xd4, 0xeb, 0xf9, 0x35, 0xf1, 0xc7, 0x25, 0xae, 0x30, 0xbf, 0xba, 0x5c,
+ 0x5a, 0xb4, 0x94, 0xf2, 0xf1, 0x0f, 0x52, 0xe5, 0xba, 0xce, 0x98, 0x59,
+ 0x11, 0xd2, 0xde, 0x4b, 0x12, 0xa4, 0xf6, 0xaf, 0x36, 0xe4, 0x35, 0x49,
+};
+static const unsigned char kat4168_nonce[] = {0};
+static const unsigned char kat4168_persstr[] = {0};
+static const unsigned char kat4168_entropyinpr1[] = {
+ 0x73, 0x1d, 0x64, 0xe8, 0x3c, 0xc9, 0x01, 0x4a, 0xf0, 0x5f, 0x69, 0x1d,
+ 0x74, 0x7d, 0x3e, 0xcb, 0xce, 0xfb, 0x6a, 0xb9, 0xeb, 0x3a, 0xde, 0x76,
+ 0x09, 0x73, 0xb0, 0xbf, 0x9a, 0xb7, 0x00, 0xfa, 0x2c, 0x3c, 0x02, 0xcd,
+ 0x83, 0xae, 0xb9, 0x4b, 0xb7, 0xd0, 0xb2, 0x96, 0xe4, 0x0c, 0x79, 0xb2,
+};
+static const unsigned char kat4168_addinpr1[] = {
+ 0x0f, 0x2d, 0x38, 0x2e, 0x60, 0xb2, 0x37, 0x72, 0x7d, 0x97, 0x11, 0x08,
+ 0xa0, 0x5b, 0x46, 0x21, 0xfd, 0x84, 0x2e, 0x33, 0x67, 0x44, 0x7d, 0x05,
+ 0xe9, 0x0d, 0x8f, 0x93, 0x53, 0x47, 0xdf, 0x8f, 0xec, 0xbd, 0xce, 0xda,
+ 0xc7, 0xb0, 0x00, 0xc5, 0x89, 0xf0, 0xd2, 0x1e, 0x42, 0x99, 0x5b, 0x38,
+};
+static const unsigned char kat4168_entropyinpr2[] = {
+ 0xdd, 0x58, 0x1a, 0x72, 0x11, 0x16, 0x7a, 0xad, 0x0c, 0x3e, 0x57, 0xa5,
+ 0x46, 0xda, 0x27, 0x4c, 0xa8, 0xd2, 0xf6, 0x6f, 0x22, 0xc8, 0xcd, 0x5d,
+ 0xd9, 0x37, 0xfa, 0xb4, 0xde, 0xb8, 0xd3, 0xea, 0xdc, 0x10, 0x08, 0x09,
+ 0x97, 0x84, 0xac, 0x95, 0x55, 0x15, 0x1d, 0xd7, 0x45, 0x45, 0x0d, 0xe1,
+};
+static const unsigned char kat4168_addinpr2[] = {
+ 0x48, 0xff, 0x7f, 0x40, 0xde, 0xa3, 0x09, 0x9d, 0x2d, 0x7f, 0x00, 0x96,
+ 0x2d, 0xb0, 0xbf, 0x77, 0xf9, 0x7f, 0x8b, 0x3b, 0x1a, 0x0f, 0x63, 0xc3,
+ 0x62, 0x38, 0x37, 0xe1, 0xd9, 0xd2, 0x45, 0x94, 0x31, 0xad, 0x83, 0x7a,
+ 0x3d, 0xed, 0x68, 0xfc, 0x61, 0xc2, 0x7c, 0xa8, 0x40, 0x2d, 0x50, 0x80,
+};
+static const unsigned char kat4168_retbits[] = {
+ 0x8c, 0x24, 0x79, 0x41, 0x11, 0x06, 0x70, 0x58, 0x58, 0xe9, 0xcf, 0x7e,
+ 0x26, 0x2c, 0x4d, 0x1e, 0x11, 0x61, 0x47, 0xfe, 0xd3, 0xce, 0x34, 0xc6,
+ 0xb7, 0xe2, 0x7a, 0xbb, 0x15, 0xad, 0x47, 0x26, 0xcf, 0x2c, 0x0c, 0x05,
+ 0xff, 0xef, 0x0a, 0x1d, 0xb9, 0x7c, 0xc8, 0x42, 0x4e, 0x38, 0x59, 0x77,
+ 0x78, 0xa5, 0xdb, 0x71, 0x4e, 0x42, 0x48, 0x4f, 0xcd, 0x46, 0x71, 0xf6,
+ 0x6b, 0x25, 0x59, 0xf9,
+};
+static const struct drbg_kat_pr_true kat4168_t = {
+ 12, kat4168_entropyin, kat4168_nonce, kat4168_persstr,
+ kat4168_entropyinpr1, kat4168_addinpr1, kat4168_entropyinpr2,
+ kat4168_addinpr2, kat4168_retbits
+};
+static const struct drbg_kat kat4168 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4168_t
+};
+
+static const unsigned char kat4169_entropyin[] = {
+ 0x23, 0xcb, 0x80, 0xd0, 0xa5, 0x3e, 0xf2, 0x60, 0xbb, 0x9e, 0xa1, 0x56,
+ 0xbf, 0xa8, 0x1e, 0x36, 0x99, 0x53, 0x21, 0x2c, 0x15, 0xf6, 0xb7, 0xcf,
+ 0x19, 0xa8, 0x2d, 0x7f, 0xf8, 0x43, 0x7d, 0x82, 0x8a, 0x97, 0xbe, 0x69,
+ 0xaa, 0x4b, 0x28, 0xb3, 0x07, 0x48, 0x99, 0xbf, 0xf2, 0x66, 0x4d, 0x3f,
+};
+static const unsigned char kat4169_nonce[] = {0};
+static const unsigned char kat4169_persstr[] = {0};
+static const unsigned char kat4169_entropyinpr1[] = {
+ 0xde, 0x17, 0x6f, 0xc2, 0x86, 0x80, 0xed, 0xe7, 0x73, 0x47, 0x45, 0xef,
+ 0x54, 0x9e, 0xa5, 0x11, 0x79, 0xa7, 0xbe, 0xc1, 0xda, 0x8a, 0xde, 0x1c,
+ 0x56, 0xae, 0x4c, 0x7a, 0xec, 0xc0, 0x2a, 0x9c, 0x1a, 0x64, 0x8a, 0x3c,
+ 0x86, 0x2f, 0xfc, 0x61, 0x52, 0xf3, 0x90, 0x55, 0xeb, 0x9b, 0x25, 0xf6,
+};
+static const unsigned char kat4169_addinpr1[] = {
+ 0xbe, 0x5f, 0x07, 0x22, 0xaa, 0x6b, 0xa5, 0x33, 0x2b, 0x7e, 0x27, 0x3b,
+ 0xe3, 0xb2, 0xfb, 0xf5, 0x57, 0x1e, 0xd7, 0x46, 0xff, 0xff, 0x47, 0xdb,
+ 0xf7, 0x45, 0xb0, 0x71, 0x9a, 0x8d, 0x77, 0xea, 0x69, 0xaf, 0xdb, 0xbc,
+ 0xe6, 0x7e, 0xa9, 0xbe, 0xcf, 0x56, 0xdb, 0x6d, 0x38, 0x05, 0x9e, 0x64,
+};
+static const unsigned char kat4169_entropyinpr2[] = {
+ 0x45, 0x77, 0x3c, 0xfb, 0x49, 0x97, 0xc1, 0xd9, 0xe0, 0x3e, 0xa8, 0xf1,
+ 0x01, 0xd9, 0xc3, 0x97, 0x67, 0x36, 0xbd, 0x1a, 0x42, 0xec, 0xb2, 0x20,
+ 0x03, 0x76, 0x6b, 0xe8, 0xbe, 0x8f, 0x0b, 0x84, 0xd8, 0x95, 0x19, 0x1e,
+ 0x43, 0x43, 0xf2, 0xe2, 0xf2, 0x2f, 0xef, 0x59, 0xf2, 0x77, 0xda, 0x93,
+};
+static const unsigned char kat4169_addinpr2[] = {
+ 0x91, 0x49, 0x36, 0x72, 0xeb, 0xe8, 0x13, 0x02, 0x5b, 0x7a, 0xbe, 0xec,
+ 0x25, 0x83, 0xd4, 0x5f, 0xbe, 0x40, 0x18, 0x0d, 0x1e, 0xf6, 0x29, 0xc0,
+ 0x87, 0xa3, 0x82, 0x30, 0xa7, 0xa7, 0x9b, 0xa7, 0x02, 0x66, 0x99, 0x12,
+ 0xc9, 0x53, 0x60, 0xa2, 0xa7, 0x68, 0x09, 0x0c, 0xe3, 0xf2, 0xd5, 0xd3,
+};
+static const unsigned char kat4169_retbits[] = {
+ 0x45, 0x7d, 0x76, 0x0e, 0x04, 0xac, 0xc5, 0x20, 0xb3, 0x40, 0x76, 0x7a,
+ 0x18, 0x6d, 0xdc, 0x44, 0xad, 0x1c, 0x9b, 0x1c, 0xf1, 0x24, 0xb8, 0x00,
+ 0xe7, 0xbd, 0xe2, 0xd6, 0xc5, 0x8d, 0x19, 0x23, 0xdb, 0xd1, 0x5a, 0xc9,
+ 0x0f, 0xd2, 0x91, 0x28, 0x3e, 0x15, 0x36, 0x58, 0xb6, 0x92, 0x55, 0x5e,
+ 0xf2, 0x51, 0x66, 0x89, 0xe4, 0xd0, 0xd0, 0xb0, 0x12, 0x9a, 0x7d, 0x3b,
+ 0x69, 0x78, 0x36, 0x97,
+};
+static const struct drbg_kat_pr_true kat4169_t = {
+ 13, kat4169_entropyin, kat4169_nonce, kat4169_persstr,
+ kat4169_entropyinpr1, kat4169_addinpr1, kat4169_entropyinpr2,
+ kat4169_addinpr2, kat4169_retbits
+};
+static const struct drbg_kat kat4169 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4169_t
+};
+
+static const unsigned char kat4170_entropyin[] = {
+ 0xcb, 0xa4, 0x4c, 0x72, 0x2e, 0xac, 0x50, 0x08, 0x11, 0x25, 0x26, 0xba,
+ 0x02, 0x58, 0x1d, 0x78, 0xcb, 0xf7, 0x3a, 0x61, 0x7e, 0xe0, 0x4b, 0xa0,
+ 0xcd, 0x71, 0x2a, 0x49, 0xf0, 0xf8, 0x47, 0xc2, 0x33, 0x01, 0xb9, 0x35,
+ 0x80, 0xe2, 0x74, 0x30, 0x94, 0x73, 0xfd, 0xaf, 0xf0, 0x04, 0x11, 0x5b,
+};
+static const unsigned char kat4170_nonce[] = {0};
+static const unsigned char kat4170_persstr[] = {0};
+static const unsigned char kat4170_entropyinpr1[] = {
+ 0xc5, 0xe2, 0x5e, 0xac, 0x09, 0x8a, 0xa9, 0xa1, 0x56, 0x67, 0xbf, 0x30,
+ 0xbd, 0x7d, 0x79, 0x4b, 0x28, 0xc4, 0x36, 0x5b, 0x01, 0x93, 0xd4, 0x10,
+ 0xf7, 0xdb, 0x03, 0x79, 0x1b, 0x81, 0xe9, 0x6a, 0xdb, 0x6b, 0x1c, 0x50,
+ 0xf3, 0x84, 0x39, 0x04, 0xa6, 0x1c, 0xf9, 0x64, 0xfa, 0x67, 0xc6, 0x2e,
+};
+static const unsigned char kat4170_addinpr1[] = {
+ 0x8e, 0xf8, 0x8e, 0x51, 0xa1, 0x5d, 0x2c, 0x43, 0x5d, 0xd5, 0x33, 0xa9,
+ 0xf4, 0xb6, 0xe6, 0xc7, 0xd5, 0xdd, 0xc3, 0x63, 0x21, 0x18, 0xdc, 0x39,
+ 0x33, 0x10, 0x4f, 0x3a, 0x87, 0x1b, 0xad, 0x06, 0x4c, 0xb7, 0x41, 0x51,
+ 0xe1, 0x2e, 0x88, 0xc0, 0x45, 0x9e, 0x7b, 0x7e, 0x03, 0xb6, 0xbb, 0x5f,
+};
+static const unsigned char kat4170_entropyinpr2[] = {
+ 0x94, 0x90, 0x4f, 0xbd, 0xfa, 0xf6, 0xb1, 0xd8, 0x93, 0x1c, 0x15, 0xa3,
+ 0x72, 0x77, 0x81, 0x4d, 0xca, 0xcc, 0x63, 0x43, 0xd4, 0x8b, 0x80, 0xa1,
+ 0xc6, 0x24, 0xf8, 0xaa, 0x37, 0x33, 0xe0, 0x5a, 0x52, 0xbf, 0x1f, 0x12,
+ 0x66, 0xe2, 0xb9, 0x0d, 0xa5, 0xd5, 0x62, 0xd7, 0xff, 0xcb, 0xc2, 0x74,
+};
+static const unsigned char kat4170_addinpr2[] = {
+ 0xe9, 0x7f, 0x7f, 0xc9, 0xe2, 0x87, 0xae, 0x94, 0x7d, 0x3e, 0x93, 0x7d,
+ 0x60, 0xec, 0xe6, 0x84, 0xf0, 0xc8, 0xdd, 0x9e, 0x13, 0x3c, 0xbd, 0x72,
+ 0x65, 0xb2, 0xb3, 0xe0, 0x73, 0x98, 0x35, 0x25, 0xc6, 0x1c, 0x7e, 0x4f,
+ 0x95, 0x0e, 0xce, 0x2a, 0x19, 0x6d, 0xc8, 0xa5, 0x8d, 0x8c, 0x24, 0x2c,
+};
+static const unsigned char kat4170_retbits[] = {
+ 0xef, 0x2f, 0xcb, 0x4a, 0x91, 0x13, 0xe0, 0x62, 0xd6, 0xcd, 0x37, 0xf5,
+ 0x1a, 0x99, 0x44, 0x64, 0x5c, 0x3c, 0xce, 0x0b, 0x06, 0xe2, 0xd1, 0x1a,
+ 0x2c, 0x77, 0x8b, 0xdb, 0x55, 0x9a, 0x2f, 0x62, 0x7c, 0x8a, 0x0e, 0x7f,
+ 0x41, 0x96, 0x60, 0xf4, 0x61, 0x45, 0x60, 0x64, 0xc3, 0x50, 0x8d, 0xf1,
+ 0xdb, 0x94, 0x5a, 0xf6, 0x08, 0x5a, 0xba, 0xf7, 0x71, 0x9e, 0x86, 0x8a,
+ 0x91, 0x2d, 0xf8, 0xdd,
+};
+static const struct drbg_kat_pr_true kat4170_t = {
+ 14, kat4170_entropyin, kat4170_nonce, kat4170_persstr,
+ kat4170_entropyinpr1, kat4170_addinpr1, kat4170_entropyinpr2,
+ kat4170_addinpr2, kat4170_retbits
+};
+static const struct drbg_kat kat4170 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4170_t
+};
+
+static const unsigned char kat4171_entropyin[] = {
+ 0x45, 0xbc, 0x62, 0x2b, 0xd4, 0xfd, 0x4c, 0x47, 0x19, 0x17, 0x54, 0x44,
+ 0x9e, 0x24, 0x8b, 0xe7, 0x27, 0x9f, 0xa1, 0x10, 0x15, 0xdf, 0x53, 0x78,
+ 0xec, 0x46, 0xa1, 0x57, 0xda, 0xbc, 0x36, 0xd1, 0xeb, 0x08, 0xd2, 0xa7,
+ 0x5c, 0x6b, 0xd0, 0x7e, 0xbf, 0x96, 0x9b, 0x8d, 0xa9, 0xed, 0xcd, 0xfd,
+};
+static const unsigned char kat4171_nonce[] = {0};
+static const unsigned char kat4171_persstr[] = {
+ 0x7b, 0x55, 0x91, 0x0f, 0x78, 0xa4, 0xde, 0x1b, 0xb0, 0xb0, 0xe8, 0xf9,
+ 0x7d, 0x26, 0xb6, 0xf3, 0xcf, 0x72, 0x98, 0x1b, 0x68, 0xed, 0x4a, 0xe7,
+ 0xf5, 0xa6, 0xd4, 0x6a, 0xc6, 0x68, 0xfe, 0x35, 0x43, 0x83, 0x7b, 0xa6,
+ 0xc2, 0x12, 0xf0, 0x81, 0xe5, 0xd4, 0xd5, 0x6e, 0x35, 0xde, 0x19, 0x4e,
+};
+static const unsigned char kat4171_entropyinpr1[] = {
+ 0xc9, 0xd1, 0xfc, 0xa6, 0x06, 0x4b, 0xac, 0x3c, 0x47, 0xd4, 0xdd, 0x34,
+ 0x70, 0x09, 0x2e, 0x5d, 0xe5, 0x87, 0x3f, 0x14, 0x90, 0x65, 0x6d, 0x79,
+ 0xda, 0x0d, 0xb9, 0x82, 0x7d, 0x81, 0xa2, 0x2e, 0x2f, 0xf6, 0x3e, 0x19,
+ 0xe1, 0xee, 0x20, 0x13, 0x66, 0xc4, 0x1c, 0xbf, 0x7a, 0x6b, 0xb8, 0xd8,
+};
+static const unsigned char kat4171_addinpr1[] = {0};
+static const unsigned char kat4171_entropyinpr2[] = {
+ 0x2b, 0x85, 0x64, 0x9b, 0x72, 0x17, 0xe3, 0x02, 0x7a, 0x0c, 0x2d, 0x20,
+ 0x97, 0xe4, 0x61, 0xd6, 0xc3, 0x9e, 0x46, 0xb9, 0x85, 0x87, 0xf5, 0xc0,
+ 0xad, 0x72, 0x25, 0x1e, 0x2b, 0x5f, 0xd4, 0x18, 0x5a, 0x10, 0x0e, 0xb7,
+ 0x8f, 0x93, 0x13, 0x65, 0xfb, 0xe2, 0xd9, 0xdf, 0xd0, 0x0c, 0x71, 0x07,
+};
+static const unsigned char kat4171_addinpr2[] = {0};
+static const unsigned char kat4171_retbits[] = {
+ 0x3c, 0xc5, 0x8f, 0x52, 0x65, 0x0d, 0x64, 0xaf, 0x06, 0xe9, 0x61, 0xdb,
+ 0x69, 0x79, 0xfc, 0x1e, 0xc7, 0xa8, 0xb3, 0x33, 0x2e, 0x15, 0x48, 0x7f,
+ 0x83, 0x13, 0x27, 0xe2, 0x0d, 0xe7, 0xcb, 0x83, 0xc0, 0x77, 0xf4, 0x85,
+ 0xa0, 0x2f, 0xc6, 0x7b, 0x8d, 0xe0, 0xc9, 0xb1, 0x4c, 0x6c, 0xfd, 0xb4,
+ 0x75, 0xf6, 0xd4, 0x67, 0x2f, 0xee, 0xe5, 0x85, 0x5e, 0x55, 0x65, 0xd5,
+ 0x71, 0xf1, 0x3f, 0x99,
+};
+static const struct drbg_kat_pr_true kat4171_t = {
+ 0, kat4171_entropyin, kat4171_nonce, kat4171_persstr,
+ kat4171_entropyinpr1, kat4171_addinpr1, kat4171_entropyinpr2,
+ kat4171_addinpr2, kat4171_retbits
+};
+static const struct drbg_kat kat4171 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4171_t
+};
+
+static const unsigned char kat4172_entropyin[] = {
+ 0x8d, 0x08, 0xd6, 0x98, 0x10, 0x24, 0xc7, 0x11, 0xe0, 0x89, 0x0f, 0x18,
+ 0xb2, 0xd9, 0xfe, 0xe9, 0x19, 0x7f, 0x36, 0x7e, 0x48, 0x9b, 0x1b, 0x0e,
+ 0x67, 0xaf, 0x8c, 0x24, 0x9c, 0x48, 0x97, 0x75, 0x59, 0x53, 0xc8, 0xc2,
+ 0x20, 0xed, 0xde, 0xd0, 0x7e, 0x4d, 0xe5, 0xb9, 0x9b, 0x39, 0x0f, 0xd3,
+};
+static const unsigned char kat4172_nonce[] = {0};
+static const unsigned char kat4172_persstr[] = {
+ 0xe6, 0x1b, 0xb8, 0x28, 0xcd, 0x11, 0xe7, 0x11, 0x0b, 0x81, 0x57, 0xfe,
+ 0xe4, 0xe4, 0x44, 0x34, 0xb8, 0x41, 0xd0, 0xcc, 0x8f, 0xb3, 0xff, 0x00,
+ 0x34, 0x67, 0x1c, 0x49, 0x11, 0xa9, 0x70, 0x63, 0xa4, 0x8e, 0xea, 0xbd,
+ 0x8c, 0x59, 0xc3, 0xa7, 0xf0, 0x7e, 0x00, 0xa8, 0x69, 0xc8, 0x73, 0xe5,
+};
+static const unsigned char kat4172_entropyinpr1[] = {
+ 0xd3, 0xa4, 0xa1, 0xc7, 0xce, 0xcf, 0x24, 0xfc, 0x06, 0x9b, 0x6e, 0x05,
+ 0x62, 0xc9, 0x9c, 0x09, 0xf7, 0xe2, 0x83, 0xa2, 0xe2, 0xa7, 0xe3, 0x9a,
+ 0x0b, 0x5a, 0x3a, 0x91, 0xb0, 0x12, 0x5a, 0xfd, 0x69, 0xc0, 0x78, 0x4a,
+ 0xa1, 0x13, 0xdd, 0x69, 0x98, 0xa7, 0xa7, 0x20, 0xb9, 0x73, 0x78, 0x42,
+};
+static const unsigned char kat4172_addinpr1[] = {0};
+static const unsigned char kat4172_entropyinpr2[] = {
+ 0x4a, 0x12, 0x50, 0x48, 0xbe, 0xd1, 0x73, 0x79, 0xbb, 0x78, 0x38, 0xee,
+ 0xd0, 0x2f, 0xbf, 0x90, 0xcc, 0xb6, 0x03, 0xc1, 0x39, 0xd5, 0x6d, 0x2b,
+ 0x18, 0x46, 0xe9, 0xd1, 0x94, 0x00, 0x29, 0x53, 0xb6, 0xa9, 0x07, 0x99,
+ 0xbe, 0x02, 0xe2, 0x8a, 0x17, 0x78, 0xa9, 0xf2, 0xb6, 0xcb, 0x61, 0xfb,
+};
+static const unsigned char kat4172_addinpr2[] = {0};
+static const unsigned char kat4172_retbits[] = {
+ 0x2e, 0x60, 0x22, 0xf7, 0x75, 0xb5, 0x2e, 0x35, 0x25, 0x78, 0x10, 0x79,
+ 0x67, 0x1c, 0x65, 0xf4, 0x7c, 0x69, 0xce, 0xf1, 0xcd, 0xf7, 0xa9, 0x31,
+ 0x12, 0xc0, 0x21, 0x72, 0xac, 0x3e, 0xd5, 0xfb, 0xb6, 0x10, 0x8a, 0x15,
+ 0x1d, 0xde, 0xdf, 0x2e, 0x5d, 0x27, 0xe9, 0x1f, 0x9d, 0x2f, 0x23, 0xd2,
+ 0xce, 0xb0, 0xff, 0x16, 0x60, 0x2e, 0x1a, 0x9a, 0x5a, 0x5c, 0x58, 0x4a,
+ 0x65, 0xa6, 0x9d, 0x2b,
+};
+static const struct drbg_kat_pr_true kat4172_t = {
+ 1, kat4172_entropyin, kat4172_nonce, kat4172_persstr,
+ kat4172_entropyinpr1, kat4172_addinpr1, kat4172_entropyinpr2,
+ kat4172_addinpr2, kat4172_retbits
+};
+static const struct drbg_kat kat4172 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4172_t
+};
+
+static const unsigned char kat4173_entropyin[] = {
+ 0x92, 0x57, 0x16, 0x31, 0xcd, 0xb5, 0xbb, 0xf6, 0x91, 0x00, 0xcf, 0x79,
+ 0xa5, 0xf2, 0xd0, 0xf4, 0xe9, 0x5b, 0x50, 0x80, 0x5a, 0x63, 0xd2, 0x41,
+ 0x3d, 0x68, 0xdb, 0x7b, 0xbd, 0xb6, 0x91, 0xd8, 0xa4, 0xfb, 0x66, 0x08,
+ 0x7e, 0x9e, 0xa8, 0x16, 0x0f, 0x02, 0x82, 0x79, 0x94, 0x7a, 0x6f, 0xb0,
+};
+static const unsigned char kat4173_nonce[] = {0};
+static const unsigned char kat4173_persstr[] = {
+ 0x1e, 0x6d, 0x2e, 0x30, 0xc6, 0xe8, 0x36, 0xbc, 0x55, 0xfb, 0x6e, 0x7e,
+ 0xb3, 0x62, 0x35, 0x36, 0x76, 0x6d, 0x94, 0x64, 0x40, 0x15, 0xc6, 0xa9,
+ 0xc1, 0x61, 0x9d, 0x6e, 0x3c, 0x13, 0x2a, 0x7d, 0x2b, 0x84, 0xf7, 0x52,
+ 0x24, 0x05, 0xe5, 0xff, 0x0b, 0x7a, 0x76, 0xed, 0x36, 0x24, 0x7d, 0x97,
+};
+static const unsigned char kat4173_entropyinpr1[] = {
+ 0x8c, 0xa8, 0xdc, 0x94, 0xc2, 0x64, 0xb6, 0xed, 0xa8, 0x87, 0x2d, 0x63,
+ 0x4c, 0xbe, 0x46, 0x6e, 0x1e, 0x95, 0x50, 0x92, 0x4e, 0xaf, 0x01, 0x41,
+ 0x15, 0x4a, 0x9a, 0x87, 0x11, 0x75, 0x65, 0x95, 0x36, 0xcb, 0xc4, 0x15,
+ 0x30, 0x48, 0xd6, 0x55, 0xbe, 0xf6, 0x08, 0x7e, 0x82, 0x7a, 0x99, 0x83,
+};
+static const unsigned char kat4173_addinpr1[] = {0};
+static const unsigned char kat4173_entropyinpr2[] = {
+ 0xc3, 0x60, 0xe4, 0x20, 0x17, 0x17, 0xaa, 0x81, 0xf6, 0xbc, 0x52, 0x41,
+ 0xec, 0x07, 0xdd, 0x4b, 0xa2, 0x64, 0x8d, 0x4e, 0x8b, 0x26, 0x70, 0x4e,
+ 0x94, 0xd7, 0x95, 0xdb, 0x64, 0x12, 0x6c, 0x08, 0x32, 0x54, 0xff, 0xf5,
+ 0x7d, 0xc6, 0xba, 0x13, 0x63, 0x6c, 0xa4, 0xf0, 0x13, 0x34, 0x9a, 0x0c,
+};
+static const unsigned char kat4173_addinpr2[] = {0};
+static const unsigned char kat4173_retbits[] = {
+ 0x41, 0x3f, 0x1b, 0xea, 0x6d, 0xa6, 0x40, 0x15, 0x28, 0x59, 0x12, 0x45,
+ 0x89, 0x38, 0x96, 0xca, 0xa6, 0x12, 0xc3, 0x0f, 0x38, 0x85, 0x49, 0x7d,
+ 0x9a, 0x54, 0xe2, 0xc1, 0xd8, 0x0b, 0x7b, 0xfc, 0xf3, 0x51, 0xb0, 0x06,
+ 0x04, 0x32, 0x9f, 0x72, 0x48, 0xc1, 0xf5, 0x35, 0x05, 0x23, 0x5b, 0x03,
+ 0x92, 0x8b, 0xaa, 0xce, 0x2e, 0xc9, 0x6e, 0xa9, 0x1d, 0x6b, 0x85, 0xb5,
+ 0x3a, 0x1d, 0xb4, 0x1c,
+};
+static const struct drbg_kat_pr_true kat4173_t = {
+ 2, kat4173_entropyin, kat4173_nonce, kat4173_persstr,
+ kat4173_entropyinpr1, kat4173_addinpr1, kat4173_entropyinpr2,
+ kat4173_addinpr2, kat4173_retbits
+};
+static const struct drbg_kat kat4173 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4173_t
+};
+
+static const unsigned char kat4174_entropyin[] = {
+ 0x0f, 0x84, 0xbb, 0xb0, 0xab, 0x2d, 0x2c, 0x4b, 0xc6, 0x3b, 0x76, 0x53,
+ 0x36, 0xc9, 0x50, 0xe2, 0x86, 0x68, 0x39, 0x74, 0x57, 0xda, 0x2a, 0x50,
+ 0x90, 0x74, 0x63, 0xc8, 0xb0, 0x03, 0x70, 0x61, 0x65, 0x21, 0xba, 0xf9,
+ 0xf7, 0x06, 0xf8, 0xdc, 0x2b, 0x2c, 0x68, 0xc9, 0x80, 0x75, 0x65, 0x09,
+};
+static const unsigned char kat4174_nonce[] = {0};
+static const unsigned char kat4174_persstr[] = {
+ 0xd6, 0x0a, 0x73, 0x30, 0x95, 0x99, 0x5d, 0x9b, 0x29, 0xc8, 0x14, 0x38,
+ 0x6e, 0x0e, 0x20, 0x6d, 0x4e, 0xce, 0xc1, 0x65, 0xde, 0x3a, 0xe6, 0x6a,
+ 0xe2, 0x50, 0xb5, 0xb6, 0x40, 0x9e, 0x5c, 0xae, 0x42, 0x28, 0xfc, 0xd9,
+ 0xbe, 0x0e, 0x68, 0x03, 0xec, 0x95, 0xfc, 0x6c, 0x43, 0x8d, 0xba, 0xe3,
+};
+static const unsigned char kat4174_entropyinpr1[] = {
+ 0x55, 0x2f, 0x7f, 0xa0, 0x33, 0x86, 0x5e, 0x49, 0x57, 0x18, 0xe6, 0xb1,
+ 0x8d, 0x92, 0xb8, 0x71, 0x97, 0xc3, 0x6a, 0x8c, 0x69, 0x9d, 0x73, 0x3a,
+ 0xe1, 0xab, 0x3b, 0xa9, 0xca, 0xe3, 0x29, 0x8d, 0xa3, 0xd9, 0xbf, 0x9b,
+ 0x08, 0xe4, 0xa2, 0xfd, 0x92, 0x54, 0x81, 0xd1, 0x2b, 0xdc, 0x15, 0x7e,
+};
+static const unsigned char kat4174_addinpr1[] = {0};
+static const unsigned char kat4174_entropyinpr2[] = {
+ 0xc8, 0xe8, 0x5a, 0xfe, 0x35, 0x84, 0xf5, 0x74, 0x1f, 0x92, 0x38, 0xab,
+ 0xac, 0xf5, 0x70, 0x5d, 0x5b, 0xaf, 0xcd, 0x52, 0x4e, 0x06, 0xca, 0x40,
+ 0x63, 0x9b, 0x81, 0x8b, 0x44, 0xbc, 0x5c, 0xce, 0x29, 0xf3, 0xf3, 0x4c,
+ 0x6a, 0x33, 0x4f, 0x71, 0x08, 0xd8, 0x20, 0x6a, 0x6c, 0xb6, 0xaa, 0xbe,
+};
+static const unsigned char kat4174_addinpr2[] = {0};
+static const unsigned char kat4174_retbits[] = {
+ 0x1d, 0x60, 0xb5, 0xda, 0xd2, 0xdd, 0x88, 0xe8, 0x54, 0x73, 0x5c, 0x2b,
+ 0xbb, 0xd8, 0x59, 0x11, 0xd3, 0xdb, 0xc5, 0xf7, 0x30, 0xb4, 0x3b, 0xe3,
+ 0x98, 0x8b, 0x06, 0xb6, 0x9e, 0xd9, 0xf0, 0x34, 0xcf, 0x80, 0x41, 0xac,
+ 0xf7, 0xe4, 0x71, 0x2b, 0x01, 0x99, 0x13, 0x83, 0xb1, 0xae, 0x8e, 0x7f,
+ 0x86, 0xe4, 0xa0, 0xe0, 0xf0, 0x4f, 0x43, 0x31, 0xb5, 0x6a, 0x05, 0x2b,
+ 0x80, 0x22, 0x69, 0x63,
+};
+static const struct drbg_kat_pr_true kat4174_t = {
+ 3, kat4174_entropyin, kat4174_nonce, kat4174_persstr,
+ kat4174_entropyinpr1, kat4174_addinpr1, kat4174_entropyinpr2,
+ kat4174_addinpr2, kat4174_retbits
+};
+static const struct drbg_kat kat4174 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4174_t
+};
+
+static const unsigned char kat4175_entropyin[] = {
+ 0x7d, 0xe6, 0xed, 0x34, 0xeb, 0x9f, 0x99, 0x17, 0x0b, 0x83, 0xe7, 0xc2,
+ 0xc9, 0xd0, 0xfe, 0xdc, 0xc7, 0x40, 0x0f, 0xc3, 0x78, 0x5b, 0x3d, 0x95,
+ 0xe9, 0xa3, 0xb6, 0x6f, 0x23, 0xa5, 0xd9, 0x04, 0xef, 0x7b, 0xb6, 0xbf,
+ 0x55, 0x79, 0x49, 0xe4, 0x14, 0xa7, 0x4d, 0x08, 0x64, 0x1d, 0x0a, 0xe5,
+};
+static const unsigned char kat4175_nonce[] = {0};
+static const unsigned char kat4175_persstr[] = {
+ 0xb4, 0xe6, 0xff, 0x0f, 0x80, 0xf1, 0x94, 0xda, 0x05, 0xdd, 0xcd, 0x11,
+ 0x63, 0x27, 0x34, 0x08, 0xfa, 0x79, 0x67, 0xfb, 0xa6, 0xcc, 0x61, 0xd5,
+ 0xc6, 0xc4, 0x74, 0x80, 0x7b, 0x9c, 0xfd, 0x6d, 0x9c, 0xef, 0x43, 0x54,
+ 0x65, 0x62, 0xeb, 0x29, 0x42, 0xab, 0x95, 0xa2, 0xf6, 0x80, 0xc3, 0x21,
+};
+static const unsigned char kat4175_entropyinpr1[] = {
+ 0xdf, 0x46, 0xcc, 0x6a, 0xbc, 0xc8, 0x7b, 0xdf, 0x1f, 0x9d, 0x7c, 0x5d,
+ 0xb7, 0x9d, 0x83, 0x6d, 0xb1, 0xe1, 0x81, 0x9a, 0x7d, 0x38, 0xe2, 0xae,
+ 0xf0, 0x29, 0xfc, 0x43, 0x29, 0x27, 0xca, 0x12, 0x55, 0x7c, 0x56, 0x60,
+ 0x0c, 0x5d, 0x36, 0x62, 0x7d, 0x74, 0xdf, 0x7a, 0xce, 0x71, 0x7a, 0x7c,
+};
+static const unsigned char kat4175_addinpr1[] = {0};
+static const unsigned char kat4175_entropyinpr2[] = {
+ 0xbe, 0x56, 0xa8, 0x05, 0x09, 0xcf, 0xda, 0x36, 0xac, 0x0f, 0x8f, 0x77,
+ 0xff, 0xfc, 0x0a, 0x64, 0xac, 0x4f, 0x6b, 0x03, 0xda, 0xf0, 0x07, 0x35,
+ 0xbf, 0x6c, 0x32, 0x56, 0xdd, 0x2b, 0xea, 0xb1, 0x84, 0x4f, 0xf4, 0x61,
+ 0x79, 0x3d, 0xe4, 0x9c, 0x01, 0xf1, 0x4b, 0x1e, 0xa1, 0x79, 0xd5, 0xaf,
+};
+static const unsigned char kat4175_addinpr2[] = {0};
+static const unsigned char kat4175_retbits[] = {
+ 0x74, 0xac, 0x73, 0x87, 0xea, 0x35, 0x20, 0xcf, 0xae, 0xad, 0x45, 0x5c,
+ 0x43, 0x12, 0xc9, 0xfa, 0x7d, 0x4d, 0xc0, 0xf5, 0x03, 0x73, 0x92, 0x70,
+ 0x04, 0xbf, 0xd2, 0xc8, 0x4a, 0x92, 0xb4, 0x73, 0x00, 0x95, 0x20, 0xc3,
+ 0x58, 0xf6, 0xd1, 0xd6, 0xce, 0xcd, 0xf9, 0x2d, 0x01, 0xa8, 0xa5, 0xa4,
+ 0xea, 0xd2, 0xfb, 0xd4, 0x2d, 0x8f, 0xcf, 0xcb, 0x7f, 0xfd, 0xd5, 0x69,
+ 0x57, 0x03, 0x3c, 0xc7,
+};
+static const struct drbg_kat_pr_true kat4175_t = {
+ 4, kat4175_entropyin, kat4175_nonce, kat4175_persstr,
+ kat4175_entropyinpr1, kat4175_addinpr1, kat4175_entropyinpr2,
+ kat4175_addinpr2, kat4175_retbits
+};
+static const struct drbg_kat kat4175 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4175_t
+};
+
+static const unsigned char kat4176_entropyin[] = {
+ 0x47, 0xde, 0x65, 0x9a, 0xdb, 0x96, 0x2c, 0xd1, 0x60, 0xa5, 0xf8, 0xcf,
+ 0xb4, 0x55, 0x12, 0xb3, 0xc1, 0xc8, 0xcf, 0x08, 0x8b, 0xd5, 0xca, 0x42,
+ 0xe4, 0x36, 0x9a, 0x34, 0x6c, 0x57, 0x82, 0x94, 0x47, 0xb1, 0xe2, 0xf0,
+ 0x86, 0x36, 0xa5, 0x18, 0xb2, 0xeb, 0xf0, 0xd5, 0xff, 0xcd, 0x57, 0x79,
+};
+static const unsigned char kat4176_nonce[] = {0};
+static const unsigned char kat4176_persstr[] = {
+ 0xbb, 0xe5, 0xa0, 0xac, 0x95, 0xe1, 0x2f, 0x4c, 0xc5, 0x17, 0x83, 0x95,
+ 0x3e, 0x41, 0x48, 0x7f, 0xcf, 0xf7, 0x8e, 0x45, 0x07, 0xbf, 0x8c, 0x4f,
+ 0xe7, 0x71, 0x59, 0x06, 0xf8, 0xce, 0xab, 0xce, 0xe2, 0x84, 0x74, 0x76,
+ 0x95, 0xf4, 0x84, 0xdc, 0x70, 0xac, 0x30, 0x4a, 0x82, 0x2f, 0xbd, 0x15,
+};
+static const unsigned char kat4176_entropyinpr1[] = {
+ 0xc2, 0x09, 0xe6, 0xf9, 0x11, 0x8f, 0x3a, 0x83, 0x9c, 0xab, 0x0d, 0x8f,
+ 0xb6, 0x2a, 0x73, 0xfe, 0x9d, 0x5f, 0x94, 0xde, 0x68, 0x5a, 0x81, 0x9c,
+ 0x23, 0x51, 0x2a, 0x1e, 0xce, 0x92, 0xab, 0xdd, 0x2e, 0x0c, 0x5c, 0x5b,
+ 0x83, 0x65, 0xee, 0xc5, 0x43, 0x72, 0x13, 0x3e, 0x2f, 0x75, 0xef, 0x9d,
+};
+static const unsigned char kat4176_addinpr1[] = {0};
+static const unsigned char kat4176_entropyinpr2[] = {
+ 0xed, 0xb4, 0x22, 0x5b, 0x9c, 0xfe, 0x1f, 0x37, 0x8b, 0xd4, 0x3b, 0xec,
+ 0x79, 0xd5, 0x09, 0xee, 0x35, 0xeb, 0xfb, 0xf5, 0xdd, 0xbd, 0x15, 0x54,
+ 0xe7, 0x61, 0xae, 0xdb, 0x38, 0x99, 0xde, 0x12, 0x34, 0xcd, 0x9a, 0xa4,
+ 0x7f, 0xfa, 0xf9, 0x5e, 0x13, 0x2c, 0x45, 0xe6, 0x12, 0x6a, 0xa6, 0x62,
+};
+static const unsigned char kat4176_addinpr2[] = {0};
+static const unsigned char kat4176_retbits[] = {
+ 0x76, 0x43, 0x51, 0x04, 0xac, 0x69, 0x8d, 0x1c, 0x3e, 0x39, 0x97, 0xc7,
+ 0x2a, 0x43, 0xa0, 0x67, 0x41, 0x01, 0x8c, 0xd4, 0x7a, 0x0d, 0x6a, 0x8f,
+ 0xaa, 0x6b, 0x10, 0x7d, 0x0c, 0x3a, 0x53, 0x7d, 0x49, 0x10, 0x9d, 0x1b,
+ 0x3e, 0x37, 0x5d, 0x10, 0x44, 0x8f, 0x2b, 0xa0, 0x53, 0xbd, 0xcf, 0xc9,
+ 0x7b, 0x97, 0x2a, 0x99, 0x58, 0xd0, 0x64, 0x0f, 0x55, 0x7d, 0xf0, 0xf6,
+ 0xb8, 0x2d, 0x12, 0xa2,
+};
+static const struct drbg_kat_pr_true kat4176_t = {
+ 5, kat4176_entropyin, kat4176_nonce, kat4176_persstr,
+ kat4176_entropyinpr1, kat4176_addinpr1, kat4176_entropyinpr2,
+ kat4176_addinpr2, kat4176_retbits
+};
+static const struct drbg_kat kat4176 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4176_t
+};
+
+static const unsigned char kat4177_entropyin[] = {
+ 0xc0, 0xa6, 0xc2, 0x3d, 0xcf, 0xa1, 0xda, 0xbe, 0x7e, 0x73, 0x8f, 0x1d,
+ 0x38, 0x14, 0x38, 0x83, 0x59, 0x69, 0x91, 0x7f, 0xe5, 0x0d, 0xdd, 0xd3,
+ 0xff, 0x95, 0x58, 0x8e, 0x57, 0x1d, 0x39, 0xe7, 0x20, 0xce, 0x89, 0xb4,
+ 0xfd, 0x6a, 0x1f, 0xe1, 0x33, 0x7e, 0x5f, 0xda, 0x56, 0xf4, 0x42, 0xf9,
+};
+static const unsigned char kat4177_nonce[] = {0};
+static const unsigned char kat4177_persstr[] = {
+ 0xba, 0xca, 0xa2, 0x50, 0x4e, 0x26, 0xd5, 0xeb, 0xaf, 0x6d, 0x90, 0x89,
+ 0xb6, 0xba, 0xac, 0x77, 0xa4, 0x44, 0xd2, 0x11, 0x7d, 0x9d, 0x49, 0xdf,
+ 0x8f, 0x7f, 0x3b, 0x2e, 0x0d, 0x56, 0x7f, 0xba, 0x07, 0x63, 0x5e, 0x67,
+ 0x0c, 0x27, 0x05, 0x37, 0x8c, 0xce, 0x33, 0x0b, 0xba, 0x40, 0x60, 0xdf,
+};
+static const unsigned char kat4177_entropyinpr1[] = {
+ 0xcd, 0x1e, 0x9b, 0xba, 0xa3, 0x1a, 0xb9, 0x61, 0x7a, 0x1b, 0xcf, 0xe6,
+ 0xae, 0x4e, 0x3a, 0xad, 0xd6, 0x06, 0x61, 0xf6, 0x88, 0x2b, 0xe7, 0x2e,
+ 0x4b, 0xba, 0x4d, 0x62, 0x0c, 0x2b, 0x37, 0x2c, 0xc1, 0x75, 0x85, 0x7f,
+ 0x1b, 0xfb, 0xd6, 0x8e, 0x6a, 0x17, 0xa0, 0x3e, 0xd6, 0xa9, 0x34, 0x7a,
+};
+static const unsigned char kat4177_addinpr1[] = {0};
+static const unsigned char kat4177_entropyinpr2[] = {
+ 0x95, 0x9e, 0x9b, 0xef, 0xd3, 0x76, 0x56, 0xbe, 0xeb, 0xfe, 0xf2, 0x05,
+ 0x9b, 0x8c, 0xe5, 0x95, 0x61, 0xed, 0x32, 0xb7, 0x1f, 0x45, 0xdf, 0x37,
+ 0x8a, 0xda, 0x24, 0xb0, 0x0f, 0xeb, 0x30, 0x5f, 0xb6, 0x24, 0x23, 0xc3,
+ 0xc8, 0x69, 0xc7, 0x64, 0xa8, 0x60, 0x37, 0x75, 0xba, 0xce, 0x61, 0xc2,
+};
+static const unsigned char kat4177_addinpr2[] = {0};
+static const unsigned char kat4177_retbits[] = {
+ 0x45, 0xb0, 0x98, 0xda, 0x0a, 0xb2, 0x46, 0xb6, 0xe3, 0x80, 0x91, 0x66,
+ 0xda, 0x3c, 0x97, 0x03, 0x0b, 0x16, 0x44, 0x76, 0x96, 0x02, 0xe5, 0xb4,
+ 0x81, 0x19, 0xf8, 0xbf, 0x05, 0x2c, 0xd1, 0x54, 0x78, 0x6f, 0xd0, 0x27,
+ 0xb2, 0x7a, 0x56, 0xef, 0xf6, 0x54, 0xab, 0x82, 0x6e, 0x33, 0xf7, 0x68,
+ 0x24, 0x69, 0x86, 0xfb, 0x6a, 0xa2, 0xf1, 0x47, 0xd4, 0x9c, 0xb4, 0x1d,
+ 0xfc, 0x34, 0xb7, 0xb5,
+};
+static const struct drbg_kat_pr_true kat4177_t = {
+ 6, kat4177_entropyin, kat4177_nonce, kat4177_persstr,
+ kat4177_entropyinpr1, kat4177_addinpr1, kat4177_entropyinpr2,
+ kat4177_addinpr2, kat4177_retbits
+};
+static const struct drbg_kat kat4177 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4177_t
+};
+
+static const unsigned char kat4178_entropyin[] = {
+ 0x83, 0x8f, 0x6f, 0x39, 0x6e, 0x44, 0xff, 0x06, 0x60, 0x97, 0xb7, 0xb3,
+ 0x8a, 0x1d, 0xf6, 0x7e, 0x0f, 0x36, 0x76, 0x6c, 0xdd, 0x5d, 0x5b, 0x7c,
+ 0x96, 0xb1, 0x08, 0xde, 0xfb, 0xa1, 0x89, 0x06, 0xde, 0x5e, 0x15, 0xc5,
+ 0xda, 0xf7, 0xb3, 0xbf, 0xdc, 0x9c, 0x5e, 0xff, 0xd7, 0x64, 0x2f, 0xeb,
+};
+static const unsigned char kat4178_nonce[] = {0};
+static const unsigned char kat4178_persstr[] = {
+ 0xae, 0x69, 0x0a, 0x5f, 0x00, 0xd3, 0x70, 0x7c, 0xd1, 0x77, 0x80, 0x5d,
+ 0xec, 0xfe, 0x8a, 0x07, 0x2b, 0xf5, 0x64, 0xd2, 0xd7, 0x5b, 0xdc, 0x38,
+ 0xec, 0x96, 0x4d, 0x58, 0x87, 0x83, 0x99, 0x7c, 0x69, 0x3f, 0x6e, 0x3b,
+ 0xca, 0x1c, 0x60, 0x1b, 0x97, 0x4c, 0xa5, 0x7e, 0x09, 0x31, 0x22, 0x31,
+};
+static const unsigned char kat4178_entropyinpr1[] = {
+ 0x27, 0x03, 0xe7, 0x81, 0xf9, 0x88, 0x1f, 0x7d, 0xbd, 0xa1, 0x98, 0xa3,
+ 0xea, 0x64, 0x6f, 0xe8, 0xc8, 0xe8, 0xd1, 0xd2, 0xa3, 0x15, 0x5e, 0xe0,
+ 0x05, 0xc5, 0x4e, 0xcf, 0xc7, 0xe5, 0xf1, 0x85, 0x3e, 0x23, 0xa1, 0x5b,
+ 0xae, 0x25, 0x5a, 0x5a, 0xbb, 0xc8, 0x6c, 0xcb, 0xe6, 0x38, 0x9a, 0x8b,
+};
+static const unsigned char kat4178_addinpr1[] = {0};
+static const unsigned char kat4178_entropyinpr2[] = {
+ 0x65, 0xd9, 0x88, 0x23, 0x2a, 0xa8, 0xf7, 0xea, 0x61, 0x17, 0x96, 0xc9,
+ 0x65, 0xb1, 0xca, 0x40, 0x50, 0x5b, 0x56, 0xfd, 0x4f, 0x69, 0xc7, 0x83,
+ 0xcf, 0xb8, 0x38, 0x3d, 0xc4, 0x39, 0x59, 0xbd, 0x94, 0x14, 0x0e, 0x29,
+ 0xe9, 0xf6, 0x18, 0x4f, 0x06, 0x0d, 0xdd, 0x57, 0xff, 0x27, 0x2d, 0x36,
+};
+static const unsigned char kat4178_addinpr2[] = {0};
+static const unsigned char kat4178_retbits[] = {
+ 0xd9, 0x8f, 0xba, 0x08, 0x11, 0xdc, 0x0f, 0x1b, 0xc9, 0x2c, 0x7a, 0xae,
+ 0x33, 0xfd, 0x71, 0x9b, 0xa8, 0x3f, 0x26, 0x3c, 0xb8, 0x06, 0xa0, 0x52,
+ 0xc1, 0xd9, 0x89, 0x84, 0xdf, 0xb7, 0x1b, 0x59, 0xd7, 0x42, 0xa0, 0xfc,
+ 0x8a, 0x92, 0xfa, 0x06, 0x3a, 0x4e, 0x29, 0x3d, 0xc9, 0x98, 0xee, 0x75,
+ 0x67, 0x80, 0x06, 0x7a, 0x51, 0x99, 0xa8, 0xaf, 0x1d, 0x4b, 0x24, 0x61,
+ 0xaa, 0x2a, 0xcc, 0x6c,
+};
+static const struct drbg_kat_pr_true kat4178_t = {
+ 7, kat4178_entropyin, kat4178_nonce, kat4178_persstr,
+ kat4178_entropyinpr1, kat4178_addinpr1, kat4178_entropyinpr2,
+ kat4178_addinpr2, kat4178_retbits
+};
+static const struct drbg_kat kat4178 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4178_t
+};
+
+static const unsigned char kat4179_entropyin[] = {
+ 0xd9, 0x24, 0x4b, 0xff, 0x15, 0x02, 0xd5, 0x9d, 0x62, 0x67, 0xc3, 0xfc,
+ 0x75, 0x24, 0x22, 0x21, 0x83, 0x20, 0x65, 0xda, 0x1e, 0x59, 0xa0, 0xea,
+ 0x72, 0x81, 0x2b, 0x7a, 0xd6, 0x07, 0xbd, 0x49, 0x8b, 0xf5, 0x5b, 0xc9,
+ 0xe8, 0x68, 0x81, 0x7b, 0xc1, 0x2e, 0xfc, 0xe6, 0x1b, 0xd2, 0x8b, 0xd8,
+};
+static const unsigned char kat4179_nonce[] = {0};
+static const unsigned char kat4179_persstr[] = {
+ 0xf3, 0x25, 0x1e, 0x3e, 0xd5, 0xfd, 0x1a, 0x0c, 0x3c, 0xac, 0x56, 0x72,
+ 0x5a, 0xba, 0x5c, 0x1e, 0x8b, 0xbc, 0xb2, 0x85, 0xa4, 0xb0, 0x55, 0x55,
+ 0xd0, 0x6e, 0x45, 0xbe, 0xbe, 0x65, 0x5a, 0xc2, 0x4b, 0x00, 0x92, 0x7d,
+ 0xc9, 0x27, 0x8b, 0xf9, 0x39, 0x3a, 0x76, 0x20, 0x33, 0xe6, 0x9f, 0x64,
+};
+static const unsigned char kat4179_entropyinpr1[] = {
+ 0xe8, 0x8c, 0x32, 0xd8, 0xd7, 0xa9, 0x69, 0x47, 0xe4, 0x75, 0x7e, 0x10,
+ 0xba, 0x3d, 0x4d, 0x88, 0x97, 0x22, 0xbc, 0x1b, 0xcc, 0x9a, 0x49, 0x1b,
+ 0x21, 0x6a, 0xac, 0xeb, 0x08, 0xe8, 0x32, 0xe1, 0x61, 0xa1, 0x11, 0x1a,
+ 0x52, 0x48, 0xd9, 0x48, 0x1a, 0xbf, 0x44, 0x44, 0x13, 0x79, 0x52, 0x19,
+};
+static const unsigned char kat4179_addinpr1[] = {0};
+static const unsigned char kat4179_entropyinpr2[] = {
+ 0xbc, 0x44, 0xea, 0x67, 0x7f, 0xba, 0x5a, 0xc0, 0x62, 0x07, 0x68, 0x41,
+ 0x0c, 0xfa, 0x92, 0x9b, 0xd7, 0x09, 0x69, 0x3c, 0xf1, 0x87, 0x2a, 0xf1,
+ 0x6e, 0x0e, 0x2f, 0x3c, 0x53, 0x0d, 0x3c, 0xbc, 0x86, 0xe3, 0x8d, 0xc0,
+ 0x43, 0x6f, 0x95, 0x6d, 0xcf, 0x3c, 0x90, 0xfe, 0x6f, 0x0a, 0x1f, 0x85,
+};
+static const unsigned char kat4179_addinpr2[] = {0};
+static const unsigned char kat4179_retbits[] = {
+ 0xab, 0xc0, 0x56, 0x13, 0x0c, 0xcc, 0x21, 0x17, 0x49, 0x2c, 0xeb, 0xf2,
+ 0x22, 0xbc, 0x29, 0x94, 0x75, 0x7e, 0xd2, 0x76, 0xa6, 0x52, 0xf4, 0x19,
+ 0xf4, 0x5e, 0x1f, 0x8f, 0xeb, 0x79, 0x3c, 0x29, 0x0d, 0x66, 0xe2, 0x7a,
+ 0x30, 0xb6, 0x73, 0x13, 0x86, 0x2d, 0xcb, 0x02, 0xb7, 0x8e, 0xaa, 0x4f,
+ 0xd3, 0xb8, 0x8a, 0x55, 0xa9, 0xcc, 0x15, 0xd2, 0xf0, 0x40, 0x25, 0x03,
+ 0x4d, 0xe6, 0xaf, 0x1f,
+};
+static const struct drbg_kat_pr_true kat4179_t = {
+ 8, kat4179_entropyin, kat4179_nonce, kat4179_persstr,
+ kat4179_entropyinpr1, kat4179_addinpr1, kat4179_entropyinpr2,
+ kat4179_addinpr2, kat4179_retbits
+};
+static const struct drbg_kat kat4179 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4179_t
+};
+
+static const unsigned char kat4180_entropyin[] = {
+ 0x5a, 0xcf, 0x21, 0x09, 0x2e, 0x40, 0x20, 0xfd, 0xd1, 0xc0, 0xf7, 0xfd,
+ 0xbb, 0xa9, 0x6e, 0x8d, 0xd4, 0xb6, 0x0c, 0x5e, 0x3e, 0xd5, 0x7a, 0x8e,
+ 0x02, 0xbf, 0x74, 0x6e, 0xcb, 0x60, 0xe2, 0xbd, 0xf0, 0x00, 0x96, 0x44,
+ 0x5a, 0x0d, 0x42, 0x6b, 0x14, 0x00, 0x20, 0x40, 0x1a, 0x88, 0x76, 0x62,
+};
+static const unsigned char kat4180_nonce[] = {0};
+static const unsigned char kat4180_persstr[] = {
+ 0xcb, 0x4c, 0xbe, 0x45, 0xb3, 0x54, 0xfc, 0x73, 0xbd, 0x9e, 0x79, 0x3f,
+ 0xe2, 0xab, 0x67, 0x12, 0x85, 0x2c, 0x10, 0x9f, 0x1d, 0xac, 0x7c, 0x93,
+ 0x52, 0x8f, 0x29, 0xea, 0xbe, 0x1a, 0x1e, 0xe8, 0x76, 0xab, 0x8a, 0x1c,
+ 0x32, 0x33, 0x85, 0x55, 0xd3, 0x55, 0xfe, 0xd7, 0x97, 0x08, 0x41, 0xd0,
+};
+static const unsigned char kat4180_entropyinpr1[] = {
+ 0x2a, 0xa6, 0xe6, 0x1e, 0x14, 0xde, 0xb5, 0xb1, 0xc7, 0x7d, 0x12, 0xa7,
+ 0x78, 0xf3, 0xdc, 0x50, 0x47, 0x63, 0xf0, 0x7d, 0x5e, 0xd0, 0xf8, 0x58,
+ 0xc1, 0x91, 0xbe, 0x50, 0xa3, 0x81, 0xd0, 0xc2, 0x83, 0xb0, 0x4a, 0xe2,
+ 0x1b, 0xf4, 0x9a, 0xc5, 0x7d, 0x78, 0x02, 0x8d, 0xe4, 0xd0, 0x64, 0xf2,
+};
+static const unsigned char kat4180_addinpr1[] = {0};
+static const unsigned char kat4180_entropyinpr2[] = {
+ 0x84, 0xe0, 0x45, 0x9e, 0x43, 0x9a, 0x1d, 0x57, 0x19, 0x32, 0xb8, 0xf0,
+ 0xdc, 0x4b, 0x25, 0x92, 0x91, 0x12, 0x23, 0xa4, 0x44, 0x9b, 0x18, 0x8b,
+ 0xd6, 0x69, 0x84, 0xda, 0x37, 0xc0, 0xa4, 0x89, 0x0e, 0x5b, 0x92, 0xcb,
+ 0x01, 0x1a, 0xa1, 0xa8, 0x99, 0xa9, 0x2f, 0xb6, 0x37, 0x46, 0xa6, 0xb2,
+};
+static const unsigned char kat4180_addinpr2[] = {0};
+static const unsigned char kat4180_retbits[] = {
+ 0x78, 0xc2, 0xea, 0x5a, 0xb4, 0x94, 0x3d, 0x95, 0xd1, 0x1d, 0xcd, 0x40,
+ 0x03, 0x1e, 0xf2, 0xfd, 0x00, 0xc9, 0x38, 0x04, 0x29, 0x2d, 0xa5, 0x35,
+ 0x53, 0x8c, 0x71, 0x82, 0x09, 0x9e, 0xe5, 0x42, 0x24, 0xcb, 0xad, 0xbf,
+ 0x52, 0x92, 0x41, 0x8b, 0x52, 0x3f, 0xab, 0x8f, 0xf1, 0x61, 0xa1, 0x91,
+ 0xd9, 0xac, 0x6c, 0x1d, 0xeb, 0x80, 0xf3, 0x1c, 0x67, 0x58, 0xb8, 0x80,
+ 0x5d, 0x85, 0xf1, 0xdd,
+};
+static const struct drbg_kat_pr_true kat4180_t = {
+ 9, kat4180_entropyin, kat4180_nonce, kat4180_persstr,
+ kat4180_entropyinpr1, kat4180_addinpr1, kat4180_entropyinpr2,
+ kat4180_addinpr2, kat4180_retbits
+};
+static const struct drbg_kat kat4180 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4180_t
+};
+
+static const unsigned char kat4181_entropyin[] = {
+ 0x8d, 0xe8, 0xb5, 0xea, 0x57, 0x73, 0xe8, 0x22, 0xc3, 0x8a, 0xea, 0xa3,
+ 0xa7, 0xaf, 0x9a, 0x8b, 0x99, 0x51, 0x44, 0x21, 0x11, 0x09, 0x55, 0x4c,
+ 0x84, 0x70, 0x7a, 0x35, 0xdb, 0xce, 0xae, 0xc1, 0x66, 0x87, 0xe6, 0x03,
+ 0xe1, 0x34, 0xfe, 0x1c, 0x4b, 0xf4, 0x2b, 0xee, 0xd3, 0xf1, 0xb8, 0x83,
+};
+static const unsigned char kat4181_nonce[] = {0};
+static const unsigned char kat4181_persstr[] = {
+ 0x32, 0x02, 0x15, 0x7a, 0x7d, 0xf2, 0x21, 0x99, 0x0b, 0x39, 0x65, 0x1d,
+ 0xa9, 0x97, 0x41, 0xff, 0xf3, 0x4c, 0x51, 0xe6, 0x11, 0x10, 0xef, 0xde,
+ 0xe9, 0x81, 0x81, 0x98, 0x7e, 0xd3, 0xa3, 0x24, 0xa1, 0xb4, 0x7f, 0x85,
+ 0x4c, 0x07, 0xba, 0xe8, 0x10, 0x04, 0x42, 0xf7, 0x12, 0x84, 0x23, 0xc0,
+};
+static const unsigned char kat4181_entropyinpr1[] = {
+ 0x52, 0x27, 0xbd, 0x6b, 0x42, 0x1d, 0x4a, 0xb8, 0xae, 0xb0, 0x2d, 0xba,
+ 0xf6, 0xe9, 0x9b, 0xe2, 0x7c, 0x85, 0x82, 0xa0, 0x5f, 0xe6, 0x71, 0x86,
+ 0xab, 0xf0, 0x27, 0xf0, 0xd1, 0xc8, 0x0f, 0xc3, 0x57, 0xf1, 0x2b, 0x91,
+ 0xcb, 0xdd, 0x5d, 0x6e, 0x9e, 0xab, 0x4c, 0x46, 0x7b, 0x1d, 0xbf, 0x2b,
+};
+static const unsigned char kat4181_addinpr1[] = {0};
+static const unsigned char kat4181_entropyinpr2[] = {
+ 0x3b, 0xc5, 0xc4, 0x24, 0xed, 0x68, 0x7a, 0x1c, 0xbd, 0xb8, 0xf9, 0x2f,
+ 0xb3, 0x39, 0xd6, 0x6d, 0x28, 0xe6, 0x39, 0x61, 0xdb, 0xb3, 0xe4, 0xd3,
+ 0xae, 0x2f, 0x7e, 0x29, 0xdb, 0xe3, 0x8d, 0xdb, 0xab, 0x54, 0xee, 0x09,
+ 0x32, 0xf6, 0x42, 0x26, 0x2c, 0x33, 0xf6, 0x86, 0x16, 0xd7, 0x25, 0x36,
+};
+static const unsigned char kat4181_addinpr2[] = {0};
+static const unsigned char kat4181_retbits[] = {
+ 0xcf, 0xf3, 0x03, 0x30, 0xad, 0xad, 0xf8, 0x91, 0x5f, 0x25, 0xf1, 0xd5,
+ 0x0c, 0x27, 0xff, 0xe6, 0x02, 0x00, 0x7f, 0xb1, 0xfe, 0x5b, 0x69, 0xec,
+ 0x0e, 0x48, 0x11, 0x77, 0x5b, 0x89, 0xc0, 0xfc, 0xcd, 0x7d, 0xbf, 0x8a,
+ 0x18, 0x1c, 0xd7, 0xbf, 0x0d, 0x3a, 0x7d, 0x1d, 0xa1, 0x26, 0xc7, 0x25,
+ 0x20, 0x09, 0xfb, 0xbc, 0x84, 0x22, 0x93, 0x74, 0xc0, 0x09, 0x1c, 0xd0,
+ 0x86, 0xb7, 0xde, 0x4e,
+};
+static const struct drbg_kat_pr_true kat4181_t = {
+ 10, kat4181_entropyin, kat4181_nonce, kat4181_persstr,
+ kat4181_entropyinpr1, kat4181_addinpr1, kat4181_entropyinpr2,
+ kat4181_addinpr2, kat4181_retbits
+};
+static const struct drbg_kat kat4181 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4181_t
+};
+
+static const unsigned char kat4182_entropyin[] = {
+ 0x1f, 0x69, 0xcd, 0x5e, 0x19, 0x20, 0x34, 0x43, 0xee, 0x52, 0x12, 0xc6,
+ 0xf9, 0xd4, 0x47, 0x4f, 0xf8, 0x6a, 0x2c, 0xbc, 0xa0, 0x83, 0x0a, 0xe2,
+ 0x87, 0x79, 0xa3, 0xb0, 0xfc, 0x14, 0xa8, 0x5f, 0x3c, 0x98, 0x2a, 0xc6,
+ 0x0d, 0x03, 0x45, 0x7e, 0xed, 0xf8, 0x77, 0x89, 0x2a, 0x0c, 0xc7, 0xad,
+};
+static const unsigned char kat4182_nonce[] = {0};
+static const unsigned char kat4182_persstr[] = {
+ 0x0b, 0x46, 0xbb, 0xb8, 0xae, 0xac, 0xd4, 0x89, 0x4c, 0xee, 0xb0, 0x5d,
+ 0xf6, 0xe4, 0x5d, 0x91, 0x03, 0xf9, 0x8d, 0x94, 0x84, 0xee, 0x20, 0xc8,
+ 0x7f, 0x6a, 0x49, 0x4b, 0x97, 0x49, 0x5e, 0x6d, 0x46, 0xe9, 0x97, 0x72,
+ 0x7d, 0xd1, 0x05, 0x57, 0x5f, 0xd0, 0xa8, 0x4f, 0x24, 0x37, 0x91, 0xf5,
+};
+static const unsigned char kat4182_entropyinpr1[] = {
+ 0x2d, 0xaf, 0x4a, 0x7f, 0x3a, 0x84, 0xee, 0x9b, 0x9a, 0x55, 0x28, 0x47,
+ 0x26, 0x87, 0x1d, 0xc9, 0x5c, 0x0e, 0x5f, 0x9a, 0x67, 0x9d, 0x4d, 0xfc,
+ 0xea, 0x9f, 0x7b, 0xd8, 0xb3, 0x20, 0xd0, 0x54, 0xf3, 0x7a, 0xdb, 0xc4,
+ 0x6e, 0x3e, 0x43, 0x45, 0x0a, 0x78, 0x1c, 0xef, 0x74, 0x0f, 0x80, 0xde,
+};
+static const unsigned char kat4182_addinpr1[] = {0};
+static const unsigned char kat4182_entropyinpr2[] = {
+ 0xd5, 0x05, 0x46, 0x34, 0x83, 0xdf, 0x6d, 0x55, 0xe4, 0xa5, 0x4f, 0xed,
+ 0x2a, 0x9f, 0xea, 0xaa, 0x0f, 0x46, 0x68, 0x03, 0x6d, 0x58, 0x24, 0x39,
+ 0xfc, 0x56, 0x41, 0xf7, 0x9b, 0xa1, 0x9a, 0xc0, 0xc4, 0xea, 0x2f, 0x5a,
+ 0x1c, 0x72, 0xa2, 0xe6, 0x8c, 0x33, 0x41, 0xfc, 0xc7, 0x06, 0xdc, 0xa9,
+};
+static const unsigned char kat4182_addinpr2[] = {0};
+static const unsigned char kat4182_retbits[] = {
+ 0xe3, 0x0b, 0xda, 0x86, 0x2a, 0x30, 0xe7, 0x30, 0xbb, 0xa5, 0xb1, 0x71,
+ 0xe4, 0xf7, 0x8e, 0x74, 0xdf, 0x8c, 0xfd, 0xab, 0x14, 0x35, 0x61, 0xef,
+ 0x0e, 0x40, 0x89, 0x2c, 0x31, 0x9b, 0x58, 0xde, 0xee, 0xbb, 0x33, 0x91,
+ 0x41, 0x24, 0x6c, 0xa7, 0xe9, 0x47, 0xd1, 0xff, 0x11, 0xc7, 0xaf, 0xbf,
+ 0x1a, 0x85, 0xe6, 0xb1, 0x80, 0x1b, 0xd2, 0x72, 0x42, 0x24, 0xe6, 0xaa,
+ 0xd3, 0xbb, 0x54, 0xc3,
+};
+static const struct drbg_kat_pr_true kat4182_t = {
+ 11, kat4182_entropyin, kat4182_nonce, kat4182_persstr,
+ kat4182_entropyinpr1, kat4182_addinpr1, kat4182_entropyinpr2,
+ kat4182_addinpr2, kat4182_retbits
+};
+static const struct drbg_kat kat4182 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4182_t
+};
+
+static const unsigned char kat4183_entropyin[] = {
+ 0x3e, 0x3a, 0xf7, 0x3f, 0x01, 0x39, 0x1e, 0x84, 0x98, 0x47, 0x73, 0x0e,
+ 0x7e, 0xfb, 0xdc, 0xe6, 0xa5, 0x93, 0x5d, 0x48, 0xf5, 0xac, 0x4b, 0x02,
+ 0x34, 0x5f, 0x6e, 0x58, 0x2b, 0x32, 0xc0, 0xe6, 0xcb, 0x98, 0xf7, 0xe6,
+ 0xb1, 0xb5, 0x57, 0xcc, 0xbe, 0x2d, 0x8f, 0x50, 0xa1, 0x38, 0x49, 0x98,
+};
+static const unsigned char kat4183_nonce[] = {0};
+static const unsigned char kat4183_persstr[] = {
+ 0xb5, 0x78, 0x96, 0xa8, 0x49, 0x33, 0x6f, 0x68, 0x86, 0x5e, 0xfc, 0xde,
+ 0xa5, 0x6b, 0xd5, 0xb0, 0x6b, 0x94, 0x2a, 0xb3, 0xf6, 0x26, 0x31, 0xc2,
+ 0x26, 0x70, 0x16, 0xf5, 0xab, 0xcc, 0xa8, 0xb9, 0xcd, 0xde, 0x77, 0x89,
+ 0xcc, 0xd4, 0x7f, 0xb1, 0x75, 0x58, 0xf3, 0xad, 0x87, 0xe5, 0xaf, 0xc6,
+};
+static const unsigned char kat4183_entropyinpr1[] = {
+ 0x59, 0xcc, 0x84, 0x71, 0xb3, 0xc8, 0xf6, 0x36, 0xf1, 0x9a, 0xad, 0x5c,
+ 0xb3, 0x90, 0x6a, 0xbf, 0x43, 0xd6, 0xeb, 0x83, 0xf1, 0x5e, 0x33, 0x57,
+ 0x8f, 0x13, 0xb1, 0xc5, 0xc3, 0xf4, 0x70, 0x3f, 0x06, 0xf8, 0x94, 0xe1,
+ 0x80, 0x01, 0x72, 0xd3, 0xc3, 0xe0, 0x90, 0x3f, 0x93, 0xbd, 0x0e, 0x36,
+};
+static const unsigned char kat4183_addinpr1[] = {0};
+static const unsigned char kat4183_entropyinpr2[] = {
+ 0xc9, 0x06, 0xe3, 0xfb, 0xcc, 0x2d, 0xee, 0xdf, 0xe7, 0xe6, 0x6d, 0xba,
+ 0x67, 0xca, 0x51, 0x0c, 0x4a, 0x6b, 0xc4, 0xb1, 0xf4, 0xbf, 0x73, 0x12,
+ 0xe7, 0x9a, 0x7a, 0xdb, 0x90, 0xc7, 0xb4, 0xb9, 0xc8, 0x0c, 0x4d, 0x27,
+ 0x79, 0xb7, 0x24, 0x3c, 0x8a, 0xf1, 0x01, 0x25, 0xf7, 0x46, 0xbc, 0xcd,
+};
+static const unsigned char kat4183_addinpr2[] = {0};
+static const unsigned char kat4183_retbits[] = {
+ 0xe4, 0x17, 0xc2, 0xfa, 0xd0, 0xca, 0xc0, 0x58, 0xd1, 0x9f, 0x36, 0xf7,
+ 0xad, 0xd6, 0x6a, 0x76, 0xa4, 0xf5, 0xf5, 0x20, 0x85, 0x88, 0x6f, 0x87,
+ 0x26, 0xb0, 0xec, 0xbc, 0x9b, 0xae, 0xa0, 0xc5, 0x2b, 0xd9, 0xb1, 0x37,
+ 0x8c, 0x65, 0x05, 0x98, 0xf6, 0xf6, 0x17, 0x03, 0xbb, 0x0d, 0x3a, 0x1d,
+ 0x73, 0x5e, 0xaf, 0xa5, 0x00, 0xbe, 0x6f, 0xb0, 0x63, 0x7f, 0x20, 0x62,
+ 0x1d, 0xe0, 0x5e, 0x30,
+};
+static const struct drbg_kat_pr_true kat4183_t = {
+ 12, kat4183_entropyin, kat4183_nonce, kat4183_persstr,
+ kat4183_entropyinpr1, kat4183_addinpr1, kat4183_entropyinpr2,
+ kat4183_addinpr2, kat4183_retbits
+};
+static const struct drbg_kat kat4183 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4183_t
+};
+
+static const unsigned char kat4184_entropyin[] = {
+ 0x5e, 0xf5, 0x81, 0x3d, 0xb2, 0x54, 0x17, 0x16, 0x3e, 0x2d, 0xd8, 0x4f,
+ 0xd5, 0x7f, 0x7a, 0x37, 0x04, 0xc9, 0x21, 0xe0, 0x04, 0x70, 0x05, 0x60,
+ 0xd7, 0xa0, 0x2a, 0x34, 0x97, 0x01, 0xf8, 0x3c, 0xa4, 0x51, 0x86, 0xf9,
+ 0xbe, 0xe2, 0x36, 0x4c, 0x67, 0x9f, 0x67, 0xb0, 0x53, 0xb3, 0x44, 0x76,
+};
+static const unsigned char kat4184_nonce[] = {0};
+static const unsigned char kat4184_persstr[] = {
+ 0x70, 0x1b, 0x85, 0xa2, 0xe4, 0x61, 0xe8, 0xb3, 0x0a, 0x80, 0x15, 0xc5,
+ 0x39, 0x75, 0x47, 0x43, 0xee, 0xb2, 0x0d, 0x26, 0x78, 0xe9, 0x20, 0xf7,
+ 0xba, 0x3c, 0xe2, 0xf8, 0x53, 0xed, 0xb0, 0x06, 0xa8, 0xc7, 0xfd, 0xce,
+ 0x52, 0xde, 0xa9, 0x6e, 0x50, 0xff, 0x6f, 0xab, 0x44, 0x28, 0x4a, 0x4e,
+};
+static const unsigned char kat4184_entropyinpr1[] = {
+ 0x1a, 0x9d, 0x67, 0xbf, 0x14, 0xa2, 0xc5, 0x30, 0x87, 0x51, 0xba, 0xd5,
+ 0x6f, 0x98, 0x14, 0x66, 0x54, 0xa2, 0x11, 0x4c, 0x0e, 0xd2, 0x97, 0x53,
+ 0xa3, 0x5f, 0xc3, 0x39, 0x3b, 0xe6, 0x12, 0xdd, 0xc9, 0x4f, 0x28, 0x35,
+ 0xb3, 0x51, 0xe4, 0x38, 0x90, 0x5c, 0x46, 0x57, 0xc5, 0x4c, 0x1f, 0x87,
+};
+static const unsigned char kat4184_addinpr1[] = {0};
+static const unsigned char kat4184_entropyinpr2[] = {
+ 0xea, 0x4b, 0x31, 0xad, 0xcf, 0xd4, 0x63, 0x9c, 0x92, 0x82, 0x93, 0xdb,
+ 0xc0, 0x22, 0x23, 0xab, 0xf2, 0x6e, 0xcc, 0x05, 0x2a, 0x4a, 0x23, 0xed,
+ 0xa4, 0x45, 0x68, 0xde, 0xae, 0x57, 0x7e, 0x3f, 0xe5, 0xb9, 0xe6, 0x71,
+ 0xae, 0x44, 0xb4, 0x82, 0x76, 0xec, 0x39, 0x2c, 0x81, 0x70, 0x7a, 0xa8,
+};
+static const unsigned char kat4184_addinpr2[] = {0};
+static const unsigned char kat4184_retbits[] = {
+ 0x77, 0x61, 0x1c, 0xf2, 0x93, 0xc7, 0xc8, 0x57, 0x2d, 0x4a, 0x75, 0x8c,
+ 0xf0, 0x2e, 0xee, 0xc6, 0xab, 0x0c, 0x8a, 0x23, 0xff, 0x17, 0x81, 0xcb,
+ 0xc6, 0xff, 0x10, 0x3b, 0x93, 0x48, 0xf1, 0x2d, 0xc4, 0xb3, 0x30, 0x96,
+ 0x30, 0x5d, 0xfe, 0x6d, 0x1d, 0x6c, 0x77, 0xdf, 0x86, 0x37, 0x74, 0x94,
+ 0x73, 0xb1, 0xd9, 0xf8, 0xdb, 0x79, 0x99, 0xeb, 0x45, 0x95, 0xcb, 0x71,
+ 0x4d, 0x91, 0x56, 0x7a,
+};
+static const struct drbg_kat_pr_true kat4184_t = {
+ 13, kat4184_entropyin, kat4184_nonce, kat4184_persstr,
+ kat4184_entropyinpr1, kat4184_addinpr1, kat4184_entropyinpr2,
+ kat4184_addinpr2, kat4184_retbits
+};
+static const struct drbg_kat kat4184 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4184_t
+};
+
+static const unsigned char kat4185_entropyin[] = {
+ 0xaf, 0xe8, 0x93, 0x39, 0xe7, 0x61, 0x5d, 0xe2, 0x57, 0xf3, 0x28, 0xa2,
+ 0x41, 0x28, 0x7b, 0x3b, 0xf3, 0xc8, 0xb5, 0x59, 0xab, 0x18, 0x2a, 0xf4,
+ 0x55, 0x79, 0x89, 0xcd, 0xca, 0xb2, 0x56, 0x76, 0x05, 0x6f, 0x84, 0xfd,
+ 0xdd, 0x55, 0xf4, 0xc3, 0x66, 0x30, 0x4f, 0xfe, 0x22, 0x28, 0x06, 0x71,
+};
+static const unsigned char kat4185_nonce[] = {0};
+static const unsigned char kat4185_persstr[] = {
+ 0x62, 0x40, 0xd0, 0xea, 0x30, 0x08, 0xa9, 0xb5, 0x91, 0x53, 0xd3, 0x69,
+ 0x7c, 0xdc, 0xbd, 0x5e, 0x72, 0xa2, 0x82, 0xe6, 0xc9, 0xd4, 0xa2, 0x6b,
+ 0x42, 0x63, 0x21, 0x00, 0x50, 0xbb, 0xbc, 0x63, 0xab, 0x1f, 0xbc, 0x5b,
+ 0x16, 0xaa, 0x0d, 0xf4, 0x27, 0x84, 0xc9, 0x6a, 0xda, 0x6d, 0x6b, 0xdf,
+};
+static const unsigned char kat4185_entropyinpr1[] = {
+ 0xc4, 0x36, 0xb7, 0x3a, 0xae, 0x53, 0x2f, 0xfb, 0x95, 0x0c, 0x6e, 0xd8,
+ 0x37, 0x53, 0xaa, 0x6d, 0xf0, 0x57, 0x1f, 0x11, 0xfd, 0x8e, 0x0a, 0xda,
+ 0xf3, 0x5b, 0xfa, 0xbc, 0x96, 0xcd, 0xa5, 0x75, 0x30, 0x5c, 0x24, 0x0d,
+ 0x8e, 0xb8, 0xb3, 0xb0, 0x01, 0x19, 0x1d, 0xab, 0x8e, 0xde, 0x87, 0xea,
+};
+static const unsigned char kat4185_addinpr1[] = {0};
+static const unsigned char kat4185_entropyinpr2[] = {
+ 0xd3, 0xed, 0x76, 0x71, 0xeb, 0x3c, 0x2e, 0x0c, 0x11, 0x5e, 0xc9, 0xd6,
+ 0xd6, 0x84, 0x96, 0x4d, 0x39, 0x53, 0x3d, 0x76, 0x74, 0x13, 0xb6, 0x3e,
+ 0x0b, 0xf7, 0xc9, 0x56, 0xb4, 0x72, 0x05, 0xf8, 0xd5, 0x00, 0x1a, 0x96,
+ 0x50, 0xe7, 0xa1, 0xc7, 0x38, 0x1f, 0x11, 0x0c, 0x9e, 0xcf, 0xe9, 0x2c,
+};
+static const unsigned char kat4185_addinpr2[] = {0};
+static const unsigned char kat4185_retbits[] = {
+ 0xf9, 0x9b, 0x7d, 0x88, 0xcc, 0xfe, 0x1c, 0x84, 0xc9, 0x94, 0x9c, 0x35,
+ 0x48, 0x63, 0x0e, 0xa2, 0xa9, 0xec, 0x03, 0x35, 0x43, 0xc6, 0x93, 0xc5,
+ 0xbf, 0x72, 0xa8, 0x2f, 0x40, 0x4c, 0x5e, 0xec, 0x5b, 0x2a, 0x09, 0xaf,
+ 0xb6, 0xc9, 0x5f, 0x10, 0xb4, 0x8f, 0xe4, 0x60, 0x80, 0x92, 0xe7, 0x21,
+ 0x32, 0x85, 0xaf, 0x83, 0xba, 0x13, 0x04, 0xac, 0xfe, 0xf8, 0x46, 0x06,
+ 0x0a, 0x1c, 0xf8, 0x60,
+};
+static const struct drbg_kat_pr_true kat4185_t = {
+ 14, kat4185_entropyin, kat4185_nonce, kat4185_persstr,
+ kat4185_entropyinpr1, kat4185_addinpr1, kat4185_entropyinpr2,
+ kat4185_addinpr2, kat4185_retbits
+};
+static const struct drbg_kat kat4185 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4185_t
+};
+
+static const unsigned char kat4186_entropyin[] = {
+ 0x0c, 0xc5, 0x9e, 0x38, 0x84, 0x53, 0x5f, 0xc2, 0xb7, 0xc3, 0x96, 0x8a,
+ 0x06, 0x3d, 0x5f, 0x20, 0x7c, 0x82, 0xa1, 0x11, 0x13, 0xe7, 0x40, 0xbd,
+ 0x72, 0xa7, 0xc9, 0xc8, 0x59, 0x22, 0xf6, 0x4d, 0x85, 0x55, 0x42, 0xc3,
+ 0x0a, 0x31, 0xe4, 0x45, 0x78, 0x88, 0x4c, 0x16, 0xf5, 0xf4, 0xe9, 0xda,
+};
+static const unsigned char kat4186_nonce[] = {0};
+static const unsigned char kat4186_persstr[] = {
+ 0xed, 0xe7, 0xfe, 0x11, 0x12, 0x2d, 0x4f, 0xaa, 0xc0, 0x9a, 0xdb, 0xf3,
+ 0x36, 0x50, 0x72, 0x5e, 0x01, 0x99, 0x07, 0x27, 0xe4, 0x30, 0x9f, 0x92,
+ 0xe8, 0xba, 0xd8, 0xb2, 0x56, 0x2c, 0x44, 0x23, 0x68, 0x3b, 0xa1, 0xa6,
+ 0xca, 0x2a, 0x58, 0xdb, 0x08, 0x66, 0x34, 0xc9, 0xb5, 0xe5, 0x94, 0xda,
+};
+static const unsigned char kat4186_entropyinpr1[] = {
+ 0xef, 0x92, 0x30, 0xa5, 0xc0, 0x08, 0xe8, 0x5e, 0x74, 0x1c, 0x6c, 0xd7,
+ 0xd7, 0xa3, 0x38, 0xed, 0x64, 0x3d, 0x6f, 0x39, 0x19, 0x0c, 0x6b, 0x2e,
+ 0xb7, 0xb0, 0xba, 0x56, 0x3d, 0x2b, 0xbc, 0x2b, 0x79, 0x71, 0xbd, 0xdb,
+ 0x54, 0xea, 0x0b, 0x85, 0x00, 0x0a, 0x85, 0x1a, 0x76, 0x68, 0x6f, 0x52,
+};
+static const unsigned char kat4186_addinpr1[] = {
+ 0xcd, 0xfd, 0xc1, 0x60, 0xa8, 0xdd, 0x9a, 0x86, 0xc8, 0x6e, 0x86, 0xbb,
+ 0xef, 0x09, 0xca, 0x0d, 0x32, 0x36, 0x51, 0x9a, 0x20, 0x6f, 0xb9, 0x9e,
+ 0x01, 0x5c, 0x49, 0x1b, 0x1b, 0xf6, 0xb0, 0xa8, 0xf2, 0x9a, 0xd1, 0xd9,
+ 0x1c, 0xfb, 0xf0, 0x46, 0x30, 0x4d, 0x2b, 0xa3, 0xde, 0x21, 0xe1, 0xb6,
+};
+static const unsigned char kat4186_entropyinpr2[] = {
+ 0x81, 0xe8, 0xd6, 0xfc, 0xa2, 0x1e, 0xe1, 0xeb, 0xf0, 0xb5, 0x85, 0x42,
+ 0xb3, 0x46, 0xa3, 0x11, 0xa4, 0x20, 0x52, 0xfb, 0x8c, 0x8f, 0x0f, 0x91,
+ 0x66, 0x15, 0xfc, 0x2e, 0xfc, 0xed, 0x80, 0x93, 0x1d, 0xaf, 0xd1, 0xe5,
+ 0xf2, 0xfd, 0xc2, 0x71, 0x99, 0x09, 0x1e, 0x12, 0x1b, 0x4c, 0x1e, 0x47,
+};
+static const unsigned char kat4186_addinpr2[] = {
+ 0x50, 0x2d, 0x6d, 0xb7, 0x99, 0x02, 0xb2, 0x41, 0xe0, 0x20, 0x2c, 0xb7,
+ 0x12, 0x9a, 0x67, 0x45, 0xe9, 0x69, 0xf6, 0xb7, 0x82, 0x62, 0x33, 0x95,
+ 0x7c, 0x1f, 0x7a, 0xa7, 0x4d, 0x15, 0xeb, 0x88, 0x22, 0x84, 0x82, 0x18,
+ 0x15, 0x0d, 0x05, 0x9e, 0xd1, 0x49, 0x9e, 0x0e, 0xc3, 0xf7, 0x6f, 0xb9,
+};
+static const unsigned char kat4186_retbits[] = {
+ 0x0f, 0x4d, 0xc9, 0x08, 0x97, 0x73, 0x6e, 0xa1, 0xc7, 0x1c, 0xda, 0x98,
+ 0xc9, 0xe4, 0x16, 0xdc, 0x8d, 0x3d, 0xf1, 0x97, 0x79, 0xb7, 0x0e, 0xf2,
+ 0x2f, 0x92, 0x99, 0x6b, 0x96, 0xcc, 0xf4, 0xf4, 0x20, 0xa6, 0x75, 0x45,
+ 0x03, 0xf4, 0x8c, 0x93, 0x27, 0xed, 0x02, 0xb0, 0x47, 0xbb, 0xd1, 0xcd,
+ 0x68, 0xbb, 0x82, 0xfc, 0xfa, 0x04, 0xa6, 0x47, 0x00, 0x98, 0x74, 0xcf,
+ 0xa6, 0x3a, 0xe1, 0xb4,
+};
+static const struct drbg_kat_pr_true kat4186_t = {
+ 0, kat4186_entropyin, kat4186_nonce, kat4186_persstr,
+ kat4186_entropyinpr1, kat4186_addinpr1, kat4186_entropyinpr2,
+ kat4186_addinpr2, kat4186_retbits
+};
+static const struct drbg_kat kat4186 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4186_t
+};
+
+static const unsigned char kat4187_entropyin[] = {
+ 0x82, 0xa0, 0xe1, 0x86, 0xda, 0xcc, 0x12, 0x30, 0xea, 0x7e, 0x71, 0x04,
+ 0x14, 0xa2, 0x5c, 0x0d, 0x6e, 0x6a, 0x67, 0x86, 0x1e, 0xbb, 0x2b, 0xa7,
+ 0x32, 0xab, 0x2c, 0xeb, 0x4a, 0x77, 0xe6, 0x94, 0xc0, 0xc0, 0x05, 0x63,
+ 0xd8, 0x41, 0x4f, 0xc4, 0xd7, 0x73, 0xcd, 0x41, 0x14, 0xf2, 0x77, 0xd0,
+};
+static const unsigned char kat4187_nonce[] = {0};
+static const unsigned char kat4187_persstr[] = {
+ 0x84, 0x1b, 0xc3, 0x4d, 0xe2, 0xed, 0x87, 0x99, 0x4a, 0x6d, 0x58, 0xe0,
+ 0x77, 0x0c, 0xac, 0x79, 0x64, 0xc6, 0x11, 0x62, 0xf6, 0x24, 0xad, 0xd4,
+ 0xb6, 0xb3, 0x09, 0x20, 0x91, 0xfb, 0xe3, 0x2a, 0x7d, 0x27, 0x5c, 0x7b,
+ 0xd5, 0x74, 0xa3, 0x44, 0x90, 0xaf, 0x98, 0xa9, 0xf6, 0x49, 0xb3, 0x84,
+};
+static const unsigned char kat4187_entropyinpr1[] = {
+ 0x83, 0x6a, 0x47, 0x81, 0x34, 0x9d, 0xb2, 0xfa, 0x4c, 0x57, 0xd1, 0xae,
+ 0x93, 0x03, 0x72, 0xfd, 0xe3, 0x94, 0x89, 0x0b, 0xcc, 0x2c, 0x40, 0x52,
+ 0xea, 0xef, 0x37, 0xcc, 0x7c, 0xf9, 0xcf, 0xda, 0x5d, 0x18, 0x36, 0x90,
+ 0x1b, 0x83, 0xf3, 0x64, 0x4e, 0x73, 0x27, 0x0c, 0xe5, 0x00, 0x50, 0x91,
+};
+static const unsigned char kat4187_addinpr1[] = {
+ 0x48, 0xbd, 0x2e, 0x65, 0x5a, 0xbf, 0x5d, 0x85, 0x89, 0xd7, 0xa6, 0x01,
+ 0xa0, 0xb0, 0xca, 0xe4, 0xe3, 0xb7, 0x34, 0x1b, 0xda, 0x7b, 0xac, 0x7b,
+ 0xf7, 0x2b, 0x3b, 0xf2, 0x48, 0xf2, 0x27, 0x18, 0x75, 0xfb, 0xf6, 0x33,
+ 0x9b, 0xf3, 0x9e, 0x08, 0x83, 0x6c, 0xc8, 0x6d, 0x3f, 0x1e, 0xe2, 0x7e,
+};
+static const unsigned char kat4187_entropyinpr2[] = {
+ 0x58, 0x56, 0x03, 0x42, 0x8e, 0xaf, 0x98, 0x54, 0x9e, 0xc5, 0xf8, 0x50,
+ 0xfe, 0x92, 0x36, 0x5d, 0x62, 0xec, 0x91, 0x90, 0x24, 0x42, 0x35, 0x2d,
+ 0x32, 0xb2, 0x75, 0xdb, 0xf6, 0xc8, 0x2d, 0x5c, 0xd2, 0x5d, 0xe9, 0xdc,
+ 0x0b, 0xe5, 0x2c, 0xaf, 0x8d, 0x24, 0x49, 0x86, 0xda, 0x58, 0x72, 0x2b,
+};
+static const unsigned char kat4187_addinpr2[] = {
+ 0x28, 0xa2, 0x90, 0xd0, 0xed, 0x1e, 0xf7, 0x10, 0x10, 0x70, 0x04, 0xe7,
+ 0x28, 0x8e, 0x1d, 0x9e, 0xaf, 0x44, 0x9e, 0x6f, 0x8f, 0x01, 0x7e, 0x33,
+ 0xdc, 0xc3, 0xb5, 0x5e, 0xad, 0x1a, 0x11, 0x81, 0xe4, 0x41, 0xe9, 0x37,
+ 0x67, 0x13, 0x47, 0xe1, 0x13, 0x6f, 0xe5, 0x54, 0xb8, 0xb4, 0x2f, 0xaa,
+};
+static const unsigned char kat4187_retbits[] = {
+ 0xeb, 0xb4, 0xbc, 0x6e, 0xf1, 0x30, 0xd7, 0x42, 0x83, 0xc6, 0x4f, 0x77,
+ 0xba, 0x72, 0x78, 0x70, 0x0f, 0xd9, 0x55, 0x22, 0xe0, 0xad, 0x9f, 0xc0,
+ 0x22, 0xa5, 0xc6, 0x2a, 0x34, 0x13, 0x66, 0x99, 0x93, 0xff, 0xd1, 0x16,
+ 0x2a, 0xfb, 0xdd, 0xab, 0x5f, 0x87, 0x29, 0x12, 0x03, 0x11, 0x93, 0xca,
+ 0xbb, 0x55, 0x5d, 0xf4, 0xf4, 0x62, 0x22, 0x13, 0x39, 0xb1, 0x96, 0x17,
+ 0xea, 0x99, 0x0e, 0xc2,
+};
+static const struct drbg_kat_pr_true kat4187_t = {
+ 1, kat4187_entropyin, kat4187_nonce, kat4187_persstr,
+ kat4187_entropyinpr1, kat4187_addinpr1, kat4187_entropyinpr2,
+ kat4187_addinpr2, kat4187_retbits
+};
+static const struct drbg_kat kat4187 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4187_t
+};
+
+static const unsigned char kat4188_entropyin[] = {
+ 0xb3, 0x0a, 0x5e, 0x92, 0x8a, 0xd4, 0x89, 0x94, 0x2a, 0x45, 0x56, 0x06,
+ 0x52, 0x7b, 0xed, 0xe7, 0xa9, 0x8a, 0x32, 0x6c, 0x5b, 0xde, 0x09, 0xa7,
+ 0xe3, 0x1e, 0x31, 0xb7, 0x25, 0x7f, 0x18, 0x52, 0xf5, 0xdc, 0xa0, 0x74,
+ 0x79, 0xee, 0x3f, 0x57, 0x02, 0x8d, 0x6e, 0x11, 0x26, 0xf4, 0x32, 0x81,
+};
+static const unsigned char kat4188_nonce[] = {0};
+static const unsigned char kat4188_persstr[] = {
+ 0xe1, 0x12, 0xce, 0x7e, 0x55, 0x92, 0xe9, 0xcb, 0xe8, 0x97, 0x96, 0xa5,
+ 0x6b, 0xff, 0x26, 0xe9, 0x4a, 0x70, 0x9c, 0x59, 0x24, 0xc1, 0x9c, 0xd1,
+ 0x59, 0xab, 0x50, 0xa5, 0x86, 0xf9, 0x95, 0x32, 0x31, 0xf3, 0x0f, 0xd7,
+ 0x58, 0x89, 0x45, 0x83, 0xfd, 0x2b, 0x4a, 0x5b, 0x74, 0x13, 0x1b, 0x68,
+};
+static const unsigned char kat4188_entropyinpr1[] = {
+ 0x5b, 0x9a, 0xaa, 0x2e, 0x80, 0x6d, 0x36, 0xb9, 0x67, 0x84, 0x52, 0xc5,
+ 0x79, 0xc7, 0x16, 0x80, 0x2f, 0x87, 0x5f, 0xa7, 0xbc, 0xd9, 0x3b, 0x72,
+ 0xfa, 0xfa, 0xa1, 0xde, 0x0d, 0x8d, 0x92, 0x0e, 0x45, 0xed, 0x0e, 0x79,
+ 0x0f, 0x2d, 0xdf, 0x48, 0x8b, 0x5c, 0xa2, 0xc4, 0x39, 0x21, 0x53, 0xc0,
+};
+static const unsigned char kat4188_addinpr1[] = {
+ 0x49, 0xf3, 0x88, 0xf5, 0xc4, 0x3b, 0xe2, 0x14, 0x6c, 0x42, 0x16, 0x35,
+ 0x83, 0x06, 0x3e, 0x38, 0xea, 0x4f, 0x03, 0xe1, 0x20, 0x57, 0xb9, 0x5a,
+ 0x49, 0xec, 0x03, 0x02, 0x0b, 0x12, 0x7f, 0xf8, 0x84, 0xba, 0x4c, 0xdc,
+ 0x5d, 0x98, 0xcc, 0x18, 0xa6, 0x7e, 0xe1, 0x4b, 0x0e, 0xac, 0xd3, 0x73,
+};
+static const unsigned char kat4188_entropyinpr2[] = {
+ 0xc2, 0x57, 0x14, 0xbb, 0xbf, 0x4d, 0xf7, 0xb3, 0x82, 0xfa, 0xf7, 0x4e,
+ 0x98, 0x95, 0x72, 0x9d, 0x9b, 0x80, 0xe6, 0x35, 0x75, 0xd2, 0xb1, 0x0d,
+ 0x03, 0x33, 0x5c, 0x28, 0xf3, 0x0f, 0x15, 0xd1, 0xee, 0x9a, 0x18, 0x38,
+ 0x53, 0xc3, 0x06, 0xf8, 0x77, 0x07, 0x37, 0x9d, 0xe4, 0xdf, 0x5a, 0xf6,
+};
+static const unsigned char kat4188_addinpr2[] = {
+ 0x0c, 0xb5, 0x30, 0xe6, 0x5f, 0x4b, 0x7c, 0xaa, 0xea, 0x79, 0x4d, 0x59,
+ 0xee, 0xf6, 0xc7, 0x28, 0x95, 0x01, 0x25, 0xa0, 0x15, 0xaa, 0xb4, 0x86,
+ 0x68, 0x12, 0x86, 0x27, 0x2b, 0x56, 0xab, 0x7d, 0x64, 0x47, 0xe6, 0x63,
+ 0x51, 0x67, 0xd1, 0xf3, 0x63, 0xc5, 0xe8, 0x78, 0x76, 0x79, 0x25, 0x6e,
+};
+static const unsigned char kat4188_retbits[] = {
+ 0x69, 0x3d, 0x43, 0xa2, 0x1d, 0x4d, 0x12, 0x32, 0xd3, 0x6c, 0xc0, 0x35,
+ 0x56, 0x75, 0x88, 0x6c, 0x86, 0x8c, 0x58, 0x5c, 0x4b, 0xe4, 0x50, 0xa3,
+ 0x64, 0x66, 0x2e, 0xd3, 0x96, 0xa0, 0xea, 0xb4, 0x37, 0xde, 0x0f, 0xa1,
+ 0x8f, 0x6d, 0x9a, 0xf6, 0x58, 0x50, 0x1c, 0x0c, 0x16, 0xc5, 0x00, 0x92,
+ 0x6f, 0xdd, 0x61, 0x74, 0xe7, 0x77, 0xf6, 0x12, 0x90, 0x15, 0xf6, 0xc0,
+ 0xbf, 0x5c, 0x3d, 0x27,
+};
+static const struct drbg_kat_pr_true kat4188_t = {
+ 2, kat4188_entropyin, kat4188_nonce, kat4188_persstr,
+ kat4188_entropyinpr1, kat4188_addinpr1, kat4188_entropyinpr2,
+ kat4188_addinpr2, kat4188_retbits
+};
+static const struct drbg_kat kat4188 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4188_t
+};
+
+static const unsigned char kat4189_entropyin[] = {
+ 0x84, 0xd6, 0x53, 0x6b, 0xfe, 0xc4, 0xd0, 0x90, 0x85, 0xb1, 0x04, 0xf4,
+ 0x52, 0x9b, 0x31, 0xe6, 0xa4, 0xaf, 0x81, 0xb1, 0xef, 0x59, 0x3b, 0x83,
+ 0x60, 0x1e, 0x24, 0xa2, 0x46, 0x0f, 0x07, 0x79, 0xd6, 0xf5, 0x72, 0x96,
+ 0x40, 0xb7, 0xc1, 0x45, 0x78, 0x49, 0xf6, 0x7a, 0xb3, 0xcc, 0x9a, 0x96,
+};
+static const unsigned char kat4189_nonce[] = {0};
+static const unsigned char kat4189_persstr[] = {
+ 0xa4, 0x63, 0xaf, 0xef, 0x96, 0x8a, 0xa5, 0xf4, 0xd1, 0xb0, 0xb6, 0x5c,
+ 0xbf, 0xfb, 0xdf, 0xf0, 0x7a, 0x13, 0x29, 0xb0, 0x6c, 0x4a, 0xdb, 0xa2,
+ 0x10, 0x2b, 0x96, 0xfa, 0x06, 0x1f, 0x0d, 0xa1, 0x0d, 0x37, 0x54, 0xe0,
+ 0xd8, 0xc0, 0x8e, 0x78, 0xe2, 0x71, 0xa9, 0x0a, 0x83, 0xdb, 0xbf, 0xc9,
+};
+static const unsigned char kat4189_entropyinpr1[] = {
+ 0x16, 0x3f, 0xfd, 0x35, 0x22, 0x2e, 0x66, 0xe1, 0x2c, 0x92, 0x05, 0x9f,
+ 0x7a, 0xc3, 0x85, 0xe5, 0x18, 0xa2, 0xe3, 0x6b, 0xe5, 0x68, 0xdd, 0xab,
+ 0xe0, 0x62, 0x4d, 0x63, 0x32, 0xa7, 0x51, 0x7b, 0x0f, 0x4d, 0x10, 0x7d,
+ 0x03, 0xbf, 0xf0, 0x50, 0x13, 0xd8, 0xb3, 0x91, 0xe8, 0xfb, 0x23, 0xe0,
+};
+static const unsigned char kat4189_addinpr1[] = {
+ 0x3f, 0x1c, 0x5d, 0xae, 0x98, 0xa2, 0x49, 0x1b, 0x05, 0xf4, 0x15, 0x70,
+ 0x01, 0x3d, 0x79, 0x1d, 0x65, 0x57, 0x23, 0xc8, 0x97, 0xf0, 0xc1, 0x5d,
+ 0xb1, 0x41, 0xf9, 0x5b, 0x3a, 0x93, 0x92, 0x52, 0x91, 0x4a, 0x95, 0xa3,
+ 0xc0, 0xa1, 0x59, 0x56, 0x54, 0x65, 0xe7, 0x55, 0xa1, 0xd6, 0xbf, 0x20,
+};
+static const unsigned char kat4189_entropyinpr2[] = {
+ 0xc2, 0x7c, 0x6a, 0x23, 0xb8, 0x41, 0xdd, 0xd5, 0xb1, 0x60, 0x36, 0xf0,
+ 0xce, 0x74, 0x9f, 0x55, 0x51, 0x13, 0xf6, 0xdc, 0x87, 0x9f, 0xce, 0x94,
+ 0x00, 0x44, 0x84, 0x23, 0xf0, 0x2f, 0x5f, 0xc7, 0xfb, 0xf5, 0x67, 0x7a,
+ 0x3f, 0x22, 0x93, 0xb3, 0x05, 0x6a, 0x4e, 0x3b, 0xc4, 0x8a, 0xd9, 0xaa,
+};
+static const unsigned char kat4189_addinpr2[] = {
+ 0xa9, 0x78, 0xd7, 0x73, 0x9d, 0xac, 0x7f, 0xa6, 0x83, 0x11, 0x30, 0x23,
+ 0xbe, 0x1d, 0x97, 0xd3, 0x3f, 0x82, 0x22, 0xbe, 0xfb, 0x74, 0x93, 0x45,
+ 0x3f, 0xc4, 0xad, 0xbe, 0xe9, 0x77, 0x71, 0x21, 0x3b, 0xb5, 0x99, 0x9f,
+ 0x92, 0xd4, 0x4a, 0x41, 0x77, 0x1b, 0x43, 0xaf, 0x51, 0xeb, 0x9a, 0x2a,
+};
+static const unsigned char kat4189_retbits[] = {
+ 0x6a, 0x1e, 0x7d, 0x40, 0xf4, 0x5a, 0xda, 0x57, 0xed, 0x82, 0x5d, 0x8a,
+ 0x74, 0xf8, 0x79, 0x20, 0x60, 0xee, 0x69, 0x06, 0x97, 0x46, 0xd5, 0xc5,
+ 0xe8, 0x09, 0x6a, 0x5b, 0x0c, 0x7f, 0xf9, 0x6e, 0xdd, 0x03, 0x4c, 0xc0,
+ 0x8f, 0x2b, 0x46, 0x6d, 0x6f, 0xb4, 0x25, 0x82, 0x21, 0xf6, 0x99, 0x84,
+ 0x85, 0x52, 0xfa, 0x1b, 0x97, 0xad, 0x2c, 0xa2, 0xcd, 0x99, 0x40, 0xd6,
+ 0xca, 0x76, 0x92, 0xc6,
+};
+static const struct drbg_kat_pr_true kat4189_t = {
+ 3, kat4189_entropyin, kat4189_nonce, kat4189_persstr,
+ kat4189_entropyinpr1, kat4189_addinpr1, kat4189_entropyinpr2,
+ kat4189_addinpr2, kat4189_retbits
+};
+static const struct drbg_kat kat4189 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4189_t
+};
+
+static const unsigned char kat4190_entropyin[] = {
+ 0xc4, 0xe0, 0x54, 0x97, 0xff, 0xb4, 0x78, 0xfa, 0x71, 0x44, 0x89, 0xb7,
+ 0xf6, 0x8a, 0xd4, 0x10, 0xb6, 0x2e, 0xa8, 0x23, 0xd2, 0xbf, 0x06, 0x80,
+ 0xdb, 0xd6, 0x36, 0xc0, 0x2f, 0x79, 0x2b, 0xf3, 0x83, 0x4d, 0xe2, 0x7c,
+ 0x1e, 0xa8, 0x5b, 0xbb, 0x1b, 0x9a, 0x7c, 0xc7, 0x41, 0xf0, 0xc8, 0xca,
+};
+static const unsigned char kat4190_nonce[] = {0};
+static const unsigned char kat4190_persstr[] = {
+ 0x91, 0xb6, 0xa2, 0xcd, 0xd9, 0xbd, 0xa4, 0x1e, 0xa5, 0x57, 0xe2, 0xb2,
+ 0x42, 0xf7, 0x68, 0xed, 0x84, 0xa8, 0xc8, 0x20, 0x02, 0xa0, 0x8d, 0xe2,
+ 0x14, 0x93, 0x4d, 0xb4, 0x82, 0x75, 0x39, 0x3d, 0x08, 0xc4, 0x6d, 0xfc,
+ 0xdb, 0x4e, 0xc9, 0xd9, 0xf5, 0x82, 0xc6, 0xbb, 0xda, 0x32, 0x16, 0x69,
+};
+static const unsigned char kat4190_entropyinpr1[] = {
+ 0xa5, 0xfd, 0x73, 0x34, 0x3e, 0x0e, 0x9c, 0x87, 0xcc, 0x9d, 0x39, 0xb0,
+ 0x89, 0x12, 0x05, 0xd4, 0xed, 0xf9, 0x3c, 0xda, 0x0c, 0x7c, 0x8e, 0x76,
+ 0x41, 0xf7, 0x2b, 0x9d, 0x17, 0xda, 0xea, 0xda, 0x40, 0x6a, 0x20, 0xb5,
+ 0x4f, 0x56, 0x77, 0x23, 0xb7, 0x53, 0xe9, 0x57, 0x29, 0x8d, 0xa8, 0x32,
+};
+static const unsigned char kat4190_addinpr1[] = {
+ 0x1e, 0xc2, 0x38, 0xcd, 0x11, 0x06, 0x73, 0x76, 0x7a, 0x28, 0xbf, 0xdf,
+ 0x63, 0xf5, 0x46, 0xa6, 0xcc, 0xe5, 0x3e, 0x92, 0x28, 0xaa, 0x6b, 0x4a,
+ 0x01, 0x21, 0x87, 0xa4, 0xe8, 0x4d, 0x63, 0x69, 0x91, 0xf1, 0x78, 0x0d,
+ 0xb3, 0x14, 0xc5, 0x8c, 0xdd, 0x69, 0x08, 0x7f, 0x6e, 0xec, 0x87, 0x60,
+};
+static const unsigned char kat4190_entropyinpr2[] = {
+ 0x4d, 0x8d, 0xeb, 0xd2, 0x33, 0x07, 0x91, 0xc6, 0x6a, 0xf1, 0xd3, 0x75,
+ 0x61, 0x02, 0x64, 0x4d, 0x5f, 0x3a, 0x2d, 0xb9, 0xbd, 0x7f, 0x6c, 0x11,
+ 0xba, 0xeb, 0x59, 0x12, 0x73, 0xdb, 0x43, 0xcf, 0x8c, 0x29, 0xed, 0x0c,
+ 0x51, 0x48, 0x65, 0x15, 0x9e, 0x58, 0x7c, 0xa9, 0x11, 0x75, 0xae, 0xcc,
+};
+static const unsigned char kat4190_addinpr2[] = {
+ 0x96, 0x4f, 0x96, 0x4a, 0x02, 0x3c, 0x81, 0x62, 0x22, 0xeb, 0xb8, 0x03,
+ 0x09, 0x7b, 0xd7, 0x4a, 0xd6, 0xf2, 0xed, 0x2c, 0xb0, 0x42, 0x65, 0x0c,
+ 0x5f, 0x30, 0xdf, 0xe5, 0xd2, 0xe2, 0x12, 0x99, 0x03, 0x2e, 0x90, 0xfd,
+ 0xe7, 0x0c, 0x4a, 0x70, 0x17, 0xeb, 0xa7, 0x35, 0x2f, 0x8f, 0xb6, 0xc7,
+};
+static const unsigned char kat4190_retbits[] = {
+ 0xe6, 0x1b, 0x29, 0xd1, 0x8e, 0x84, 0x18, 0x1e, 0x77, 0xcd, 0x80, 0xdc,
+ 0xe9, 0xd4, 0x0c, 0xb2, 0x40, 0x89, 0xd2, 0x31, 0x7d, 0x64, 0xbe, 0x7a,
+ 0xaa, 0x02, 0x61, 0x65, 0x57, 0x95, 0x64, 0xaa, 0x44, 0xe8, 0xf4, 0x7f,
+ 0xf8, 0x24, 0xdc, 0x5f, 0x26, 0x1c, 0x61, 0x94, 0xac, 0xb2, 0x99, 0xed,
+ 0xad, 0xc0, 0xad, 0x29, 0x76, 0x7a, 0x35, 0xe0, 0x99, 0xd4, 0x99, 0xf7,
+ 0x62, 0xe7, 0xc9, 0x13,
+};
+static const struct drbg_kat_pr_true kat4190_t = {
+ 4, kat4190_entropyin, kat4190_nonce, kat4190_persstr,
+ kat4190_entropyinpr1, kat4190_addinpr1, kat4190_entropyinpr2,
+ kat4190_addinpr2, kat4190_retbits
+};
+static const struct drbg_kat kat4190 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4190_t
+};
+
+static const unsigned char kat4191_entropyin[] = {
+ 0xbe, 0x8f, 0xae, 0xa8, 0x7b, 0x75, 0x4c, 0xeb, 0x69, 0x2e, 0x53, 0xcf,
+ 0x87, 0x1e, 0x79, 0xf3, 0x35, 0xe0, 0x47, 0xf3, 0x1e, 0x08, 0x93, 0x59,
+ 0x89, 0xdd, 0x4d, 0x38, 0xd0, 0xaf, 0x9c, 0x31, 0xd5, 0xbd, 0xa0, 0x49,
+ 0xa9, 0x0b, 0x70, 0x5f, 0x51, 0xdc, 0x12, 0xbd, 0xbe, 0xa7, 0x89, 0x36,
+};
+static const unsigned char kat4191_nonce[] = {0};
+static const unsigned char kat4191_persstr[] = {
+ 0x3d, 0x26, 0x14, 0x40, 0x7b, 0xc7, 0xd0, 0xb5, 0xe9, 0x3a, 0x8a, 0xd1,
+ 0xc4, 0xc6, 0x70, 0xfc, 0x23, 0x9f, 0x47, 0x38, 0x97, 0xe6, 0x72, 0x56,
+ 0x91, 0xef, 0x4b, 0x10, 0xd0, 0x47, 0xc2, 0x43, 0xc3, 0x2d, 0xcb, 0x28,
+ 0xd6, 0x2a, 0x89, 0xd4, 0xca, 0xc0, 0x1a, 0xec, 0x4d, 0x28, 0x5f, 0x95,
+};
+static const unsigned char kat4191_entropyinpr1[] = {
+ 0x60, 0x18, 0x9e, 0x52, 0xab, 0x5b, 0x98, 0x55, 0x87, 0x93, 0xa7, 0x53,
+ 0xc8, 0xc8, 0xf3, 0x60, 0x12, 0x26, 0x19, 0x54, 0xb2, 0x1e, 0xed, 0x99,
+ 0x65, 0x12, 0xfa, 0xba, 0x0c, 0x61, 0x53, 0x25, 0x8a, 0xd0, 0xbc, 0x68,
+ 0x44, 0x13, 0x73, 0xf1, 0x75, 0xdf, 0x05, 0x9e, 0x62, 0xcb, 0xe4, 0x66,
+};
+static const unsigned char kat4191_addinpr1[] = {
+ 0xac, 0x98, 0x42, 0x5e, 0xd1, 0xd2, 0x81, 0xb9, 0xf4, 0x8d, 0xfd, 0x1c,
+ 0x73, 0x69, 0x3e, 0x23, 0x6a, 0x46, 0xe1, 0x23, 0xea, 0xff, 0x21, 0x17,
+ 0xd0, 0x39, 0xfa, 0x73, 0x7f, 0x4d, 0xb6, 0xe0, 0x64, 0x94, 0x13, 0xed,
+ 0x97, 0x8f, 0x68, 0xbf, 0x25, 0x6b, 0xa7, 0x34, 0x49, 0x94, 0xd5, 0xc0,
+};
+static const unsigned char kat4191_entropyinpr2[] = {
+ 0x4b, 0xb9, 0xc4, 0x08, 0x2a, 0x72, 0x83, 0xe2, 0x78, 0xd9, 0xf7, 0x94,
+ 0x18, 0x9a, 0x4f, 0xde, 0xe4, 0xc8, 0x99, 0xc3, 0x73, 0x63, 0x18, 0xb1,
+ 0xf2, 0x0f, 0x07, 0x40, 0xec, 0x85, 0x3e, 0xba, 0x6e, 0x46, 0xe0, 0xa3,
+ 0x95, 0x5d, 0xbc, 0x06, 0x6f, 0x54, 0x48, 0x59, 0xa2, 0xc3, 0x49, 0xb3,
+};
+static const unsigned char kat4191_addinpr2[] = {
+ 0x36, 0xdf, 0x34, 0xd1, 0xad, 0x31, 0x01, 0x0e, 0x66, 0xba, 0xc0, 0x49,
+ 0x27, 0x9a, 0xda, 0x80, 0x55, 0x24, 0xf2, 0x14, 0x32, 0x66, 0x9b, 0xbb,
+ 0x39, 0x21, 0xa1, 0xd8, 0x6d, 0x48, 0x27, 0x14, 0xf3, 0x77, 0xdb, 0x8a,
+ 0xe0, 0x92, 0x3a, 0x1a, 0x49, 0xce, 0x92, 0x00, 0x8c, 0xfb, 0xfa, 0x5f,
+};
+static const unsigned char kat4191_retbits[] = {
+ 0x9f, 0x2b, 0xe6, 0xf0, 0x06, 0xaf, 0x6c, 0x50, 0x0a, 0xa3, 0xbc, 0x82,
+ 0x2a, 0x95, 0xb1, 0x3b, 0x28, 0x6c, 0x55, 0xcb, 0xdf, 0x4f, 0x0a, 0x26,
+ 0x27, 0x4d, 0x36, 0xbd, 0x1d, 0x2f, 0xf1, 0xb2, 0xd6, 0x96, 0xb6, 0xa8,
+ 0x73, 0x59, 0x50, 0xfb, 0xa0, 0x1f, 0x4b, 0x88, 0xe5, 0xac, 0x7f, 0x01,
+ 0xd5, 0xa3, 0xf9, 0x1b, 0x1c, 0xf0, 0xb5, 0x9a, 0x26, 0xed, 0x50, 0x5f,
+ 0xe0, 0xb1, 0xd6, 0x06,
+};
+static const struct drbg_kat_pr_true kat4191_t = {
+ 5, kat4191_entropyin, kat4191_nonce, kat4191_persstr,
+ kat4191_entropyinpr1, kat4191_addinpr1, kat4191_entropyinpr2,
+ kat4191_addinpr2, kat4191_retbits
+};
+static const struct drbg_kat kat4191 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4191_t
+};
+
+static const unsigned char kat4192_entropyin[] = {
+ 0x61, 0x11, 0x43, 0x35, 0xae, 0xbc, 0xc3, 0x63, 0x84, 0xe5, 0xd1, 0x38,
+ 0x42, 0x7a, 0xa4, 0xdc, 0xdc, 0xb0, 0x14, 0x5b, 0x9c, 0x69, 0xc5, 0x81,
+ 0x96, 0xbd, 0x31, 0x7b, 0x9a, 0x6f, 0x9e, 0x10, 0x83, 0x2e, 0x31, 0xa2,
+ 0xb6, 0x61, 0xe0, 0x4e, 0xdc, 0x49, 0xc6, 0xb0, 0x8a, 0xc0, 0xd2, 0x17,
+};
+static const unsigned char kat4192_nonce[] = {0};
+static const unsigned char kat4192_persstr[] = {
+ 0xd7, 0x77, 0x23, 0x6d, 0x2f, 0x46, 0x36, 0x0b, 0xb7, 0x79, 0xc8, 0x24,
+ 0x98, 0xe8, 0x59, 0xd1, 0xaa, 0x29, 0x02, 0xb6, 0x7c, 0x9c, 0x01, 0x46,
+ 0x28, 0xc5, 0xa4, 0x17, 0x8e, 0xe7, 0x70, 0x6e, 0x7c, 0x60, 0x5b, 0x03,
+ 0xe4, 0x56, 0xe1, 0xf7, 0xe5, 0xc6, 0x16, 0xe6, 0xf7, 0x8b, 0x98, 0xa7,
+};
+static const unsigned char kat4192_entropyinpr1[] = {
+ 0x87, 0x3d, 0x0c, 0xec, 0xf1, 0x2c, 0x64, 0x6c, 0x0d, 0x8b, 0x4e, 0x94,
+ 0x2a, 0xd7, 0xe4, 0x29, 0x35, 0xe1, 0xb9, 0xee, 0xf0, 0x67, 0x30, 0x1d,
+ 0x3b, 0x79, 0xf2, 0x0a, 0x48, 0xc5, 0xab, 0xa4, 0xf2, 0x2c, 0xaf, 0xf6,
+ 0xce, 0x0b, 0xcb, 0x0b, 0x49, 0xfc, 0xfe, 0x32, 0x6d, 0xe3, 0x9c, 0x57,
+};
+static const unsigned char kat4192_addinpr1[] = {
+ 0x74, 0xe3, 0x91, 0x6a, 0x67, 0xc1, 0x04, 0xfe, 0xe0, 0xc9, 0x96, 0xcc,
+ 0xe1, 0x46, 0x8c, 0xb6, 0x0c, 0xcf, 0xfd, 0x33, 0xfb, 0x4a, 0x20, 0x30,
+ 0xcc, 0xba, 0xb1, 0x3b, 0x78, 0x4a, 0xd0, 0xf9, 0xf5, 0x16, 0x90, 0x05,
+ 0xec, 0xb4, 0x0d, 0x72, 0xcd, 0xbc, 0xd3, 0xb6, 0x5a, 0x2b, 0xa4, 0xcf,
+};
+static const unsigned char kat4192_entropyinpr2[] = {
+ 0xe6, 0x09, 0x39, 0x1f, 0x0d, 0x74, 0x0f, 0xb5, 0xa0, 0xf1, 0xd4, 0x28,
+ 0x88, 0x38, 0x49, 0x26, 0xdb, 0x15, 0xe8, 0x34, 0xa2, 0x65, 0x4b, 0x36,
+ 0x81, 0x0b, 0xf5, 0x8a, 0x29, 0x34, 0xe0, 0x6d, 0x4f, 0x87, 0xa8, 0x7d,
+ 0x8e, 0x6d, 0xee, 0x98, 0x3e, 0x73, 0x3c, 0x34, 0xf3, 0xe4, 0x49, 0xf4,
+};
+static const unsigned char kat4192_addinpr2[] = {
+ 0x13, 0xcb, 0xf6, 0x88, 0xf4, 0x62, 0xf8, 0xe9, 0xa8, 0x43, 0x7b, 0x17,
+ 0x42, 0x94, 0x3c, 0xb4, 0x47, 0x5f, 0x00, 0x0d, 0x29, 0xe5, 0x32, 0x63,
+ 0x66, 0x54, 0xee, 0x1d, 0xb2, 0xa5, 0x3a, 0x9f, 0xde, 0xd6, 0xda, 0x8d,
+ 0x20, 0x24, 0x02, 0x03, 0xb2, 0xf8, 0x74, 0xe4, 0xd1, 0xa9, 0x28, 0x3c,
+};
+static const unsigned char kat4192_retbits[] = {
+ 0x20, 0xf3, 0x01, 0xc0, 0xfd, 0x19, 0x5f, 0xfb, 0x29, 0x5d, 0x99, 0xa3,
+ 0x3c, 0x8e, 0x70, 0x24, 0x29, 0xbf, 0xde, 0x14, 0x0c, 0xf1, 0xc8, 0xfd,
+ 0xa1, 0xba, 0x58, 0x81, 0xe0, 0x2a, 0x34, 0xe7, 0x66, 0xd9, 0xe2, 0xc0,
+ 0xa5, 0x00, 0x9b, 0xb1, 0x2f, 0x7d, 0x03, 0x11, 0x57, 0x1c, 0xc6, 0xe4,
+ 0x29, 0x84, 0xc0, 0xa9, 0x4f, 0x98, 0x4a, 0x7d, 0xc2, 0xd5, 0x97, 0xed,
+ 0x7a, 0x9e, 0x0d, 0x53,
+};
+static const struct drbg_kat_pr_true kat4192_t = {
+ 6, kat4192_entropyin, kat4192_nonce, kat4192_persstr,
+ kat4192_entropyinpr1, kat4192_addinpr1, kat4192_entropyinpr2,
+ kat4192_addinpr2, kat4192_retbits
+};
+static const struct drbg_kat kat4192 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4192_t
+};
+
+static const unsigned char kat4193_entropyin[] = {
+ 0x22, 0x5d, 0x9c, 0x79, 0xe5, 0x23, 0xbd, 0xd0, 0x0e, 0x8c, 0x00, 0x68,
+ 0x14, 0x9d, 0x02, 0x9e, 0x60, 0xaa, 0xe0, 0x69, 0x8f, 0xf0, 0x70, 0xb3,
+ 0xf2, 0xf4, 0x10, 0x67, 0xc7, 0x7b, 0x1e, 0x39, 0xca, 0x42, 0x53, 0x37,
+ 0x20, 0x46, 0x83, 0xc4, 0x1a, 0x9d, 0xdd, 0xd3, 0x41, 0x1a, 0x17, 0xe2,
+};
+static const unsigned char kat4193_nonce[] = {0};
+static const unsigned char kat4193_persstr[] = {
+ 0xe5, 0xf2, 0x04, 0x67, 0xce, 0x53, 0x66, 0xc9, 0xbf, 0xae, 0x26, 0x64,
+ 0xc4, 0x19, 0x25, 0xaf, 0xa3, 0x35, 0x4a, 0x7d, 0x2a, 0xf7, 0x67, 0x9e,
+ 0x6f, 0xd6, 0xc5, 0x30, 0xd6, 0xb2, 0xfa, 0x4c, 0xd1, 0xcb, 0x1c, 0x29,
+ 0xc6, 0xc4, 0xa5, 0xf0, 0xc0, 0x45, 0xea, 0x7a, 0x6f, 0x9a, 0x3f, 0x42,
+};
+static const unsigned char kat4193_entropyinpr1[] = {
+ 0x5b, 0x75, 0x6a, 0x6e, 0x48, 0xe6, 0x59, 0x68, 0x18, 0xb1, 0x17, 0x15,
+ 0xcb, 0x4f, 0x0b, 0x86, 0xd5, 0xb6, 0xcd, 0x4b, 0xf2, 0xcb, 0x13, 0xf7,
+ 0xab, 0x5b, 0xc4, 0x6f, 0x04, 0xfa, 0xab, 0x9d, 0x76, 0xd9, 0xd6, 0x8d,
+ 0xf0, 0x06, 0x13, 0x9e, 0xaa, 0x54, 0x6e, 0x79, 0x61, 0x0d, 0x66, 0x56,
+};
+static const unsigned char kat4193_addinpr1[] = {
+ 0x05, 0x55, 0x39, 0x45, 0x02, 0xb2, 0x81, 0x6e, 0x18, 0xc9, 0x12, 0x2a,
+ 0xa4, 0xd2, 0xb3, 0xf8, 0x8f, 0xfd, 0x21, 0xbb, 0x1c, 0xf8, 0x10, 0x6a,
+ 0x06, 0x52, 0xeb, 0xa2, 0x71, 0xa7, 0xf6, 0x68, 0x50, 0xfd, 0xb0, 0x45,
+ 0x9a, 0xbc, 0xd2, 0xbe, 0x7b, 0xff, 0x85, 0x53, 0x61, 0x70, 0x49, 0x74,
+};
+static const unsigned char kat4193_entropyinpr2[] = {
+ 0x1b, 0x9a, 0x50, 0x5d, 0x1d, 0xcc, 0x4b, 0xea, 0xd7, 0xb9, 0xef, 0x94,
+ 0xc2, 0x11, 0x8b, 0x15, 0xff, 0x6f, 0x82, 0x71, 0xc5, 0x49, 0xb9, 0x99,
+ 0xd4, 0xf2, 0x29, 0x7f, 0xf9, 0x73, 0x18, 0x1e, 0x4d, 0xc8, 0x14, 0x8b,
+ 0xa2, 0x4c, 0xb4, 0xaa, 0x41, 0x33, 0x8e, 0x48, 0xe2, 0x87, 0xdd, 0x45,
+};
+static const unsigned char kat4193_addinpr2[] = {
+ 0xa6, 0xef, 0xcd, 0x20, 0xc0, 0x08, 0xd3, 0xba, 0x7b, 0x32, 0x2c, 0xe4,
+ 0x88, 0x58, 0xb9, 0x46, 0xdd, 0x4a, 0x5a, 0x36, 0x91, 0xd5, 0xe3, 0x8b,
+ 0xfd, 0xaa, 0x56, 0x44, 0x2a, 0xac, 0x0c, 0xd7, 0x88, 0x6c, 0x31, 0x3a,
+ 0x82, 0x9a, 0x8f, 0xb5, 0x6f, 0x70, 0xa4, 0x4d, 0x4f, 0x83, 0x5d, 0x7b,
+};
+static const unsigned char kat4193_retbits[] = {
+ 0x1f, 0x86, 0x66, 0x10, 0xdd, 0x2b, 0x16, 0xf0, 0x56, 0x94, 0xf3, 0x99,
+ 0xee, 0x8a, 0x3c, 0x86, 0x7c, 0x5c, 0x7e, 0x76, 0x61, 0xad, 0xf1, 0xf4,
+ 0x5b, 0xeb, 0x90, 0x95, 0xc4, 0x30, 0xa1, 0x5c, 0xcf, 0x04, 0x3f, 0xfd,
+ 0x99, 0x54, 0x7c, 0x08, 0x74, 0x2f, 0x78, 0x6d, 0xaa, 0x95, 0xb8, 0xfb,
+ 0x6d, 0xac, 0xc3, 0x87, 0xd8, 0xba, 0x55, 0xf6, 0x6a, 0x8c, 0x6c, 0xe7,
+ 0x43, 0x79, 0x63, 0xbf,
+};
+static const struct drbg_kat_pr_true kat4193_t = {
+ 7, kat4193_entropyin, kat4193_nonce, kat4193_persstr,
+ kat4193_entropyinpr1, kat4193_addinpr1, kat4193_entropyinpr2,
+ kat4193_addinpr2, kat4193_retbits
+};
+static const struct drbg_kat kat4193 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4193_t
+};
+
+static const unsigned char kat4194_entropyin[] = {
+ 0x02, 0xc1, 0x6a, 0x91, 0x31, 0xe9, 0x4b, 0x54, 0xe3, 0xc3, 0xfa, 0x3d,
+ 0x0a, 0xde, 0x4e, 0xc0, 0x48, 0xbe, 0xc0, 0x4b, 0x88, 0x9b, 0x0e, 0x7b,
+ 0xe8, 0x0c, 0x98, 0x8f, 0x6f, 0xdd, 0x99, 0x93, 0x71, 0xcd, 0x06, 0xba,
+ 0x63, 0xac, 0x19, 0x45, 0x80, 0xeb, 0x49, 0x07, 0xff, 0x23, 0x23, 0xd9,
+};
+static const unsigned char kat4194_nonce[] = {0};
+static const unsigned char kat4194_persstr[] = {
+ 0x44, 0xec, 0x0b, 0x63, 0x3c, 0x94, 0x45, 0xb1, 0xba, 0xb8, 0xbd, 0x77,
+ 0xfa, 0x5b, 0x78, 0x60, 0x6e, 0xa4, 0xf4, 0xb1, 0x59, 0x2e, 0xfe, 0xb0,
+ 0xed, 0xbd, 0x80, 0x4a, 0xfb, 0x3a, 0xa4, 0xf4, 0x5f, 0xab, 0x26, 0x0f,
+ 0x58, 0x38, 0x5e, 0xb4, 0x41, 0xbf, 0x32, 0x32, 0x70, 0x6e, 0xfc, 0x07,
+};
+static const unsigned char kat4194_entropyinpr1[] = {
+ 0x0a, 0x5c, 0xf8, 0x56, 0xed, 0xce, 0x7f, 0x73, 0xbc, 0x1a, 0x28, 0x7e,
+ 0x1d, 0xd4, 0x96, 0x4d, 0x9c, 0x75, 0x35, 0x99, 0x3a, 0xad, 0xc0, 0x61,
+ 0x24, 0xc8, 0x70, 0x67, 0x3c, 0xf9, 0xa2, 0x4f, 0xc9, 0x71, 0x2d, 0x5d,
+ 0x0c, 0x9e, 0x0e, 0x53, 0xaf, 0xee, 0x47, 0x23, 0xd4, 0xec, 0xac, 0xef,
+};
+static const unsigned char kat4194_addinpr1[] = {
+ 0x70, 0x07, 0x76, 0x00, 0x13, 0x1a, 0xa1, 0x16, 0xb3, 0xf6, 0xe8, 0x01,
+ 0xf4, 0x2f, 0xfb, 0xb5, 0x3a, 0x32, 0x53, 0xcb, 0x10, 0x4a, 0xb5, 0xc1,
+ 0x09, 0x88, 0xfe, 0xb0, 0x09, 0xb6, 0x4f, 0xac, 0x88, 0xd4, 0xa3, 0x85,
+ 0xd9, 0xb6, 0xc0, 0x43, 0x91, 0x02, 0x51, 0x84, 0x32, 0x73, 0xca, 0x97,
+};
+static const unsigned char kat4194_entropyinpr2[] = {
+ 0xd4, 0x76, 0x40, 0x94, 0x07, 0x2f, 0x19, 0xc5, 0xd0, 0xad, 0x86, 0x68,
+ 0x28, 0x04, 0xa3, 0x63, 0xb1, 0x12, 0xe6, 0x1d, 0x06, 0x12, 0xc4, 0x3a,
+ 0x61, 0x28, 0xb3, 0x52, 0xc5, 0x42, 0x2b, 0xec, 0xd2, 0x3d, 0x6c, 0x89,
+ 0x24, 0xbe, 0x3f, 0x84, 0x21, 0x97, 0xda, 0x46, 0xfc, 0x63, 0x71, 0x87,
+};
+static const unsigned char kat4194_addinpr2[] = {
+ 0xde, 0x61, 0x35, 0x4e, 0x2f, 0x6a, 0x67, 0xc7, 0x31, 0xc1, 0xf6, 0xaf,
+ 0x74, 0x05, 0x47, 0xbc, 0x1b, 0xa3, 0x3c, 0xd3, 0x51, 0x19, 0x56, 0x01,
+ 0xde, 0x0c, 0x8b, 0x3e, 0x20, 0xdd, 0x8e, 0xf1, 0x31, 0x00, 0x74, 0x01,
+ 0xf6, 0x05, 0xc2, 0x9f, 0x07, 0xc3, 0xe4, 0x6e, 0x37, 0x5c, 0x1b, 0xa3,
+};
+static const unsigned char kat4194_retbits[] = {
+ 0x77, 0x9d, 0xa8, 0xdb, 0x95, 0x8b, 0xa4, 0x8e, 0x26, 0x67, 0x20, 0x52,
+ 0xd3, 0x24, 0x0a, 0x0f, 0x9c, 0x0f, 0x10, 0x34, 0xd3, 0xb6, 0x0a, 0x8a,
+ 0xfb, 0x6b, 0x87, 0xd1, 0x8f, 0x6e, 0x85, 0xee, 0xf8, 0x75, 0x3e, 0xaf,
+ 0xb0, 0xa0, 0x54, 0xea, 0xa0, 0xfd, 0x58, 0x8f, 0x9b, 0x21, 0x08, 0x63,
+ 0x1f, 0x88, 0x3b, 0x86, 0xdd, 0x36, 0xf4, 0x27, 0x48, 0xbc, 0x6d, 0xa2,
+ 0xf6, 0x8f, 0xac, 0xe5,
+};
+static const struct drbg_kat_pr_true kat4194_t = {
+ 8, kat4194_entropyin, kat4194_nonce, kat4194_persstr,
+ kat4194_entropyinpr1, kat4194_addinpr1, kat4194_entropyinpr2,
+ kat4194_addinpr2, kat4194_retbits
+};
+static const struct drbg_kat kat4194 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4194_t
+};
+
+static const unsigned char kat4195_entropyin[] = {
+ 0x17, 0x14, 0xb2, 0xa5, 0xac, 0x2f, 0xf3, 0x34, 0xbe, 0x79, 0x9c, 0x11,
+ 0xd0, 0xa5, 0x8d, 0xa5, 0xf0, 0x52, 0x22, 0x75, 0xf5, 0x36, 0x8b, 0x1d,
+ 0xf7, 0xb6, 0x04, 0x55, 0xa0, 0x85, 0x6c, 0x56, 0x9d, 0xe1, 0x80, 0x2f,
+ 0x6a, 0xb9, 0x3e, 0xdf, 0xa8, 0x11, 0x3d, 0x8b, 0x69, 0x72, 0x20, 0x92,
+};
+static const unsigned char kat4195_nonce[] = {0};
+static const unsigned char kat4195_persstr[] = {
+ 0xfd, 0x5a, 0xe2, 0x08, 0x72, 0xe3, 0xff, 0x5d, 0x77, 0x07, 0xee, 0x47,
+ 0xc5, 0x0c, 0x46, 0x4e, 0x8d, 0x2a, 0xdd, 0x8f, 0xbb, 0x8b, 0xdd, 0x86,
+ 0xfa, 0xa9, 0x61, 0x1f, 0x83, 0xa5, 0xaf, 0xed, 0xfd, 0xc7, 0xe3, 0x06,
+ 0xf4, 0x5a, 0x13, 0xcf, 0x84, 0x30, 0x42, 0xd5, 0xcf, 0xc7, 0xd4, 0xf4,
+};
+static const unsigned char kat4195_entropyinpr1[] = {
+ 0x12, 0xf2, 0x15, 0x85, 0x57, 0xef, 0x00, 0x22, 0x8f, 0x0e, 0xf0, 0x81,
+ 0x1c, 0xa7, 0x76, 0x10, 0x44, 0x98, 0x02, 0xe6, 0x65, 0x18, 0x10, 0xbe,
+ 0x82, 0x76, 0x36, 0x98, 0x2d, 0xec, 0x48, 0xb0, 0x7b, 0xd8, 0x0e, 0x1f,
+ 0x4f, 0xf0, 0x61, 0x07, 0xb8, 0x6e, 0x57, 0xfa, 0x23, 0x08, 0xdf, 0x81,
+};
+static const unsigned char kat4195_addinpr1[] = {
+ 0x3d, 0x44, 0x20, 0x2a, 0xc4, 0x7e, 0xcd, 0x11, 0x67, 0x25, 0x31, 0x86,
+ 0x44, 0x4b, 0x86, 0xdd, 0x7e, 0x1f, 0x2e, 0x05, 0x6c, 0x1e, 0xdd, 0x28,
+ 0xe9, 0x9e, 0xc1, 0x07, 0xbd, 0x8a, 0xb1, 0x8c, 0x30, 0x20, 0x5f, 0x9e,
+ 0xa8, 0x26, 0xa8, 0xfe, 0x1e, 0xde, 0xa2, 0xa1, 0xba, 0x31, 0xeb, 0xa3,
+};
+static const unsigned char kat4195_entropyinpr2[] = {
+ 0x4c, 0xea, 0x17, 0x14, 0xc0, 0x06, 0xcc, 0x73, 0x3d, 0x90, 0xf7, 0xf8,
+ 0x83, 0x54, 0x6f, 0x2d, 0x56, 0x2b, 0xa0, 0x97, 0xc3, 0x94, 0xa7, 0x76,
+ 0x62, 0xfb, 0x38, 0xaf, 0x4d, 0x6d, 0xf5, 0x19, 0x38, 0xa2, 0x21, 0xf5,
+ 0xfe, 0x21, 0xbb, 0x18, 0x1b, 0x38, 0x57, 0x59, 0x2d, 0xae, 0x40, 0x5d,
+};
+static const unsigned char kat4195_addinpr2[] = {
+ 0xaa, 0xe5, 0xaf, 0x80, 0x63, 0x7e, 0xd0, 0xf3, 0x8d, 0xd6, 0x24, 0x3f,
+ 0xda, 0x51, 0x97, 0xb1, 0x09, 0x4c, 0xda, 0x77, 0xf6, 0x6a, 0xe5, 0xd2,
+ 0x7d, 0x33, 0x65, 0xd3, 0x34, 0x0d, 0xbb, 0xcf, 0xe3, 0xb3, 0x26, 0x40,
+ 0xd6, 0x8c, 0x13, 0x27, 0x74, 0x98, 0x75, 0x87, 0x7f, 0xfb, 0x19, 0x0b,
+};
+static const unsigned char kat4195_retbits[] = {
+ 0x20, 0xf1, 0xab, 0x1c, 0xf8, 0xb1, 0x48, 0x5d, 0xce, 0x9a, 0x6f, 0x44,
+ 0x95, 0x74, 0x19, 0xef, 0xd2, 0x17, 0xff, 0x24, 0xf6, 0x6e, 0x8d, 0xce,
+ 0xdd, 0xa7, 0x27, 0x00, 0xde, 0xf4, 0xfc, 0xbf, 0x75, 0x75, 0x15, 0x39,
+ 0x57, 0xa0, 0xb7, 0x2f, 0x8e, 0x4a, 0x0b, 0xd0, 0xd1, 0xf5, 0x4c, 0xe4,
+ 0xe1, 0x32, 0xc2, 0xc8, 0xf7, 0x57, 0x60, 0xc8, 0x5d, 0xf6, 0x90, 0x2d,
+ 0x9f, 0x68, 0xd2, 0x0a,
+};
+static const struct drbg_kat_pr_true kat4195_t = {
+ 9, kat4195_entropyin, kat4195_nonce, kat4195_persstr,
+ kat4195_entropyinpr1, kat4195_addinpr1, kat4195_entropyinpr2,
+ kat4195_addinpr2, kat4195_retbits
+};
+static const struct drbg_kat kat4195 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4195_t
+};
+
+static const unsigned char kat4196_entropyin[] = {
+ 0x8c, 0x33, 0x95, 0xfe, 0x3b, 0xb4, 0xf9, 0xf1, 0xa7, 0x34, 0xab, 0x19,
+ 0x78, 0xf5, 0x55, 0x8a, 0x9b, 0xc9, 0xfe, 0x37, 0xb4, 0xf1, 0x0f, 0x6e,
+ 0x03, 0x8e, 0x8c, 0x7a, 0x9a, 0xc3, 0xd5, 0x7f, 0xba, 0xb8, 0x38, 0xdb,
+ 0xab, 0x44, 0x31, 0x46, 0x90, 0x0c, 0x21, 0xae, 0x5a, 0x50, 0x28, 0xd6,
+};
+static const unsigned char kat4196_nonce[] = {0};
+static const unsigned char kat4196_persstr[] = {
+ 0x41, 0x51, 0x16, 0xcb, 0x46, 0x2b, 0xd9, 0xda, 0x97, 0x54, 0x20, 0x1c,
+ 0xf9, 0x73, 0xfe, 0xec, 0x65, 0x0e, 0xee, 0xd3, 0x63, 0xab, 0x69, 0x48,
+ 0xc1, 0x4f, 0xbb, 0x47, 0xa4, 0x27, 0xab, 0xb6, 0xd8, 0xe8, 0x77, 0x90,
+ 0x8a, 0xa2, 0x04, 0xac, 0x1f, 0x4d, 0xad, 0xa2, 0x29, 0x55, 0xda, 0x76,
+};
+static const unsigned char kat4196_entropyinpr1[] = {
+ 0x34, 0xea, 0xd7, 0xc1, 0x95, 0xf3, 0x18, 0x52, 0xee, 0x64, 0xad, 0xed,
+ 0x13, 0x0c, 0xa8, 0xb7, 0x32, 0xc9, 0x32, 0x23, 0x54, 0xd3, 0x6d, 0x90,
+ 0x18, 0xd4, 0xd6, 0x2b, 0xd1, 0x62, 0xe2, 0xa6, 0x2f, 0x7a, 0x97, 0x07,
+ 0x00, 0xdd, 0xb8, 0xe1, 0x1c, 0x0a, 0xef, 0x34, 0xa9, 0x71, 0x5d, 0xb8,
+};
+static const unsigned char kat4196_addinpr1[] = {
+ 0x01, 0xfb, 0xf4, 0x13, 0x09, 0x7f, 0x7d, 0x9c, 0x70, 0xfa, 0xa7, 0xa0,
+ 0x2a, 0x85, 0x3c, 0xbe, 0x94, 0xd0, 0xb5, 0x6d, 0x49, 0x26, 0x56, 0xb7,
+ 0xed, 0x4d, 0xc6, 0xb0, 0x53, 0x25, 0x55, 0x95, 0x76, 0xe8, 0x01, 0x49,
+ 0xd8, 0xca, 0xd9, 0x81, 0x4f, 0xa7, 0x66, 0x59, 0xe0, 0x65, 0x79, 0x63,
+};
+static const unsigned char kat4196_entropyinpr2[] = {
+ 0x8c, 0x46, 0xd9, 0x71, 0xdf, 0x47, 0x38, 0xb8, 0xfe, 0xd6, 0x87, 0x3f,
+ 0x26, 0xb1, 0xf8, 0x6f, 0x83, 0xc5, 0x9a, 0xb5, 0xd0, 0xc6, 0xb1, 0xee,
+ 0x86, 0x62, 0xaa, 0xd2, 0x11, 0x2b, 0x51, 0x9c, 0x20, 0x11, 0x81, 0x58,
+ 0x34, 0x3f, 0x86, 0xb9, 0x19, 0x9d, 0xb2, 0x4f, 0x0d, 0x41, 0x19, 0xa4,
+};
+static const unsigned char kat4196_addinpr2[] = {
+ 0xae, 0x1a, 0xc4, 0x1b, 0x33, 0x77, 0xa8, 0x65, 0x1f, 0xb9, 0x32, 0xbf,
+ 0xe8, 0x6b, 0xd9, 0x68, 0xac, 0x87, 0xbe, 0x18, 0x3f, 0xcd, 0xb0, 0x77,
+ 0xc2, 0x42, 0xa6, 0xf8, 0x22, 0xba, 0xe3, 0x25, 0x4b, 0x40, 0xda, 0xfa,
+ 0x61, 0x0f, 0xc7, 0xec, 0xa6, 0x80, 0xe1, 0xd2, 0xc0, 0x48, 0x07, 0x05,
+};
+static const unsigned char kat4196_retbits[] = {
+ 0x17, 0xf8, 0xc9, 0x97, 0x7c, 0x00, 0xff, 0xc7, 0x25, 0x55, 0xb5, 0x9c,
+ 0x25, 0x59, 0xcc, 0xf8, 0xaa, 0xbe, 0xfe, 0xaf, 0xde, 0x4c, 0x17, 0x86,
+ 0x31, 0xee, 0x7b, 0x27, 0x3a, 0xb5, 0xf7, 0xc7, 0x8b, 0xcd, 0x32, 0x7a,
+ 0xb8, 0xcd, 0xc5, 0xb1, 0xba, 0xcd, 0x61, 0x4f, 0xe2, 0xf2, 0x80, 0x1b,
+ 0x4f, 0x31, 0x3d, 0x71, 0xc3, 0xf9, 0x25, 0x2f, 0xbc, 0x2e, 0xfe, 0xdc,
+ 0xb0, 0xf2, 0xe2, 0xd3,
+};
+static const struct drbg_kat_pr_true kat4196_t = {
+ 10, kat4196_entropyin, kat4196_nonce, kat4196_persstr,
+ kat4196_entropyinpr1, kat4196_addinpr1, kat4196_entropyinpr2,
+ kat4196_addinpr2, kat4196_retbits
+};
+static const struct drbg_kat kat4196 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4196_t
+};
+
+static const unsigned char kat4197_entropyin[] = {
+ 0x25, 0x3e, 0x90, 0x0f, 0x26, 0xa0, 0x92, 0x3f, 0xce, 0x00, 0x63, 0x5b,
+ 0x54, 0x1c, 0x4c, 0xa0, 0x58, 0x76, 0xa3, 0x77, 0x45, 0x0f, 0x34, 0x20,
+ 0xba, 0x6f, 0x55, 0x2d, 0x24, 0x5a, 0x96, 0x33, 0x4b, 0x5b, 0x0f, 0x67,
+ 0xf4, 0x25, 0x1a, 0xb4, 0x02, 0x55, 0xea, 0x4d, 0x18, 0x31, 0x2b, 0x94,
+};
+static const unsigned char kat4197_nonce[] = {0};
+static const unsigned char kat4197_persstr[] = {
+ 0x8b, 0x3e, 0x45, 0xf7, 0x71, 0x28, 0xd8, 0xa7, 0x7f, 0x4b, 0xd5, 0x61,
+ 0x36, 0xb0, 0xda, 0xc5, 0xb4, 0x53, 0x2a, 0xa4, 0x32, 0x75, 0x8f, 0x70,
+ 0xd9, 0x65, 0xfb, 0x39, 0x65, 0x3b, 0x14, 0xc3, 0x5c, 0x09, 0x60, 0x05,
+ 0xc9, 0x29, 0x6b, 0x9a, 0x2c, 0x7e, 0xf8, 0x48, 0x96, 0x43, 0xcc, 0x76,
+};
+static const unsigned char kat4197_entropyinpr1[] = {
+ 0x93, 0x1f, 0xcc, 0x33, 0xf2, 0xc1, 0x4d, 0x53, 0x86, 0x2b, 0x71, 0xc2,
+ 0x28, 0xa6, 0x2a, 0x13, 0x41, 0x82, 0xe1, 0x39, 0xc6, 0xfc, 0x46, 0x7d,
+ 0x35, 0x8d, 0x52, 0x6a, 0x15, 0x33, 0x2e, 0xe6, 0x74, 0xdd, 0x92, 0xf6,
+ 0xbd, 0x3b, 0xa8, 0xbc, 0x23, 0x41, 0x4d, 0x2c, 0x9e, 0x51, 0xac, 0xd8,
+};
+static const unsigned char kat4197_addinpr1[] = {
+ 0x15, 0x93, 0x4d, 0x26, 0xa5, 0x87, 0x72, 0x06, 0x95, 0xae, 0xb6, 0xff,
+ 0xf1, 0x66, 0x72, 0x28, 0x2e, 0x60, 0x4d, 0xe5, 0x9a, 0x29, 0x21, 0xf7,
+ 0x14, 0x99, 0x1f, 0xa4, 0x28, 0x77, 0x33, 0xd1, 0x9a, 0x04, 0x56, 0xdc,
+ 0x61, 0xb4, 0x17, 0xfe, 0x8d, 0x29, 0xd8, 0x34, 0x9e, 0x2b, 0x1e, 0xb7,
+};
+static const unsigned char kat4197_entropyinpr2[] = {
+ 0x29, 0x3e, 0x57, 0x97, 0x3e, 0xe8, 0x4e, 0xad, 0x21, 0x6b, 0x02, 0xd1,
+ 0x7c, 0x6f, 0xc0, 0x74, 0xa9, 0x7d, 0xff, 0x7d, 0xe3, 0x56, 0x16, 0x64,
+ 0x9b, 0x9b, 0x5f, 0xf3, 0xf9, 0x5c, 0x05, 0x09, 0xd4, 0x8e, 0xf0, 0x02,
+ 0x94, 0x3c, 0x45, 0x33, 0x94, 0x99, 0x7f, 0x02, 0x1e, 0xe7, 0xc9, 0x30,
+};
+static const unsigned char kat4197_addinpr2[] = {
+ 0x2f, 0x0b, 0xa5, 0x40, 0x7d, 0x39, 0x51, 0x25, 0x45, 0xc4, 0x8f, 0xbc,
+ 0x1e, 0x34, 0x5a, 0xf2, 0x6d, 0x35, 0x60, 0x5b, 0xe2, 0x8f, 0x46, 0xd0,
+ 0xbc, 0xe6, 0x4d, 0x98, 0xc8, 0xdb, 0x72, 0x3b, 0xe2, 0xbd, 0x4a, 0xa0,
+ 0x88, 0x0f, 0x2b, 0x8f, 0xc5, 0xc1, 0xe3, 0x59, 0x71, 0x40, 0x58, 0xd9,
+};
+static const unsigned char kat4197_retbits[] = {
+ 0xa9, 0x57, 0x8c, 0x2f, 0x26, 0xe9, 0xbc, 0xc6, 0x87, 0xe0, 0xfc, 0x7a,
+ 0x7f, 0x13, 0x5a, 0xda, 0x10, 0x9f, 0xfb, 0x64, 0x2a, 0x7c, 0x9e, 0x9d,
+ 0x39, 0x35, 0x52, 0xde, 0xcc, 0xcd, 0x3d, 0xfb, 0x72, 0x5f, 0xe7, 0x92,
+ 0x30, 0x4e, 0x8a, 0x11, 0x62, 0x11, 0xd3, 0xd5, 0x05, 0x65, 0xb6, 0xfe,
+ 0xc5, 0x65, 0x6e, 0xc3, 0x15, 0x8d, 0xb5, 0xf5, 0x16, 0x4e, 0xf2, 0xf5,
+ 0x85, 0x13, 0xd4, 0x12,
+};
+static const struct drbg_kat_pr_true kat4197_t = {
+ 11, kat4197_entropyin, kat4197_nonce, kat4197_persstr,
+ kat4197_entropyinpr1, kat4197_addinpr1, kat4197_entropyinpr2,
+ kat4197_addinpr2, kat4197_retbits
+};
+static const struct drbg_kat kat4197 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4197_t
+};
+
+static const unsigned char kat4198_entropyin[] = {
+ 0xc4, 0xb6, 0x07, 0x8d, 0xd2, 0x8f, 0x9f, 0x35, 0xf1, 0x3e, 0xcf, 0x61,
+ 0x6a, 0x50, 0x77, 0x71, 0x40, 0xa8, 0x10, 0x4b, 0xe2, 0x01, 0x50, 0x2e,
+ 0x4d, 0x71, 0x77, 0xed, 0x72, 0xcb, 0x99, 0x5c, 0xe5, 0xd5, 0x6b, 0x25,
+ 0x93, 0x58, 0x2b, 0x92, 0x6d, 0x09, 0xb9, 0x0a, 0x3c, 0x90, 0x4c, 0x73,
+};
+static const unsigned char kat4198_nonce[] = {0};
+static const unsigned char kat4198_persstr[] = {
+ 0x47, 0xa8, 0x9c, 0xef, 0x4b, 0x84, 0x26, 0xbe, 0x9f, 0x7f, 0x8b, 0xd9,
+ 0x63, 0x5c, 0x84, 0xbd, 0xba, 0x28, 0x83, 0x1c, 0x67, 0xac, 0xec, 0x41,
+ 0xef, 0xcf, 0x72, 0x5b, 0x8a, 0x04, 0xe8, 0xc5, 0x4d, 0x10, 0xb6, 0x12,
+ 0x28, 0xb5, 0x23, 0x4a, 0x33, 0x04, 0xb0, 0x2b, 0xb7, 0x0a, 0x4e, 0x7f,
+};
+static const unsigned char kat4198_entropyinpr1[] = {
+ 0x06, 0x07, 0x03, 0xff, 0x30, 0xd4, 0xee, 0x8c, 0xc5, 0xd6, 0x14, 0xdc,
+ 0x79, 0x6d, 0x3c, 0xab, 0xba, 0xbe, 0x4c, 0xe2, 0xf6, 0xfa, 0x8d, 0x03,
+ 0xf9, 0x0b, 0x7f, 0xfe, 0xc6, 0x2e, 0xb9, 0x78, 0xab, 0xd0, 0x97, 0x3e,
+ 0xed, 0x32, 0xcf, 0x99, 0xf6, 0x1c, 0xbc, 0x79, 0xff, 0xd4, 0x66, 0x29,
+};
+static const unsigned char kat4198_addinpr1[] = {
+ 0x19, 0x5a, 0xa7, 0xc8, 0xc5, 0xf1, 0x2c, 0x42, 0x21, 0xa8, 0x81, 0xfd,
+ 0x4e, 0x8c, 0xad, 0xc5, 0x6a, 0x77, 0xb9, 0x08, 0xf2, 0x15, 0x30, 0x3d,
+ 0x7c, 0x0d, 0x07, 0xf6, 0xce, 0xa9, 0x05, 0x60, 0x98, 0x27, 0x37, 0xed,
+ 0x7b, 0xbf, 0x43, 0x4e, 0x40, 0x76, 0x91, 0xcf, 0x09, 0x29, 0x33, 0x02,
+};
+static const unsigned char kat4198_entropyinpr2[] = {
+ 0xce, 0x05, 0x6e, 0x0c, 0x5b, 0x99, 0xbb, 0x95, 0x3e, 0xed, 0xcc, 0xd5,
+ 0x73, 0x29, 0xb3, 0x4a, 0x9a, 0xea, 0xdc, 0xcd, 0x22, 0xef, 0x98, 0x07,
+ 0xf5, 0xc2, 0x98, 0xc0, 0x22, 0x40, 0xfb, 0x8f, 0xcb, 0x0e, 0xa6, 0x21,
+ 0x59, 0xe2, 0x67, 0x39, 0xf4, 0x37, 0x4f, 0xac, 0x25, 0xb5, 0x61, 0x44,
+};
+static const unsigned char kat4198_addinpr2[] = {
+ 0x8f, 0x3f, 0xe6, 0x6d, 0x61, 0xc3, 0x6e, 0x93, 0xc5, 0x66, 0x28, 0x4f,
+ 0xda, 0xbe, 0x59, 0x6d, 0x4f, 0xbd, 0x95, 0x8b, 0x6d, 0x17, 0x7a, 0x7d,
+ 0x5e, 0xf4, 0xd7, 0xd3, 0x5a, 0x6f, 0x15, 0x09, 0xc7, 0xd9, 0xcd, 0xf0,
+ 0xc4, 0xb3, 0x92, 0x78, 0x08, 0x15, 0x1a, 0x98, 0x7b, 0x97, 0x58, 0x2f,
+};
+static const unsigned char kat4198_retbits[] = {
+ 0x7b, 0xf9, 0x11, 0xe5, 0xa1, 0x22, 0x9e, 0xf4, 0x07, 0xa5, 0xcb, 0x93,
+ 0x51, 0x97, 0xa4, 0xa5, 0xac, 0xa5, 0xec, 0xba, 0x3c, 0xf5, 0x71, 0x41,
+ 0x45, 0xe7, 0x44, 0x16, 0x78, 0x09, 0xca, 0x48, 0xff, 0x0e, 0xfc, 0x06,
+ 0x57, 0xe2, 0x48, 0x6f, 0x87, 0x63, 0x42, 0x49, 0x63, 0xf6, 0x64, 0x9b,
+ 0x3e, 0xe7, 0x85, 0x5e, 0x36, 0xfd, 0xc1, 0x44, 0x8e, 0x83, 0xc7, 0xac,
+ 0xa6, 0xde, 0xbf, 0x0b,
+};
+static const struct drbg_kat_pr_true kat4198_t = {
+ 12, kat4198_entropyin, kat4198_nonce, kat4198_persstr,
+ kat4198_entropyinpr1, kat4198_addinpr1, kat4198_entropyinpr2,
+ kat4198_addinpr2, kat4198_retbits
+};
+static const struct drbg_kat kat4198 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4198_t
+};
+
+static const unsigned char kat4199_entropyin[] = {
+ 0x9f, 0x20, 0xca, 0xc7, 0xb5, 0x7b, 0x14, 0xc7, 0x5f, 0x1b, 0x49, 0x83,
+ 0xdf, 0x77, 0xce, 0x10, 0x13, 0xe8, 0x7a, 0x1a, 0x3d, 0x17, 0xf9, 0x67,
+ 0x4f, 0xbc, 0x39, 0x1f, 0xaf, 0xc0, 0x04, 0x88, 0x43, 0xc5, 0xf2, 0xcd,
+ 0x80, 0x82, 0x03, 0xab, 0x66, 0x83, 0x2a, 0xda, 0x22, 0x86, 0xcd, 0x41,
+};
+static const unsigned char kat4199_nonce[] = {0};
+static const unsigned char kat4199_persstr[] = {
+ 0xf1, 0xd9, 0x93, 0x45, 0xb9, 0x53, 0x29, 0x80, 0xa4, 0xbe, 0x2e, 0xe0,
+ 0x83, 0x61, 0xc4, 0xa5, 0x6b, 0x6f, 0x83, 0x3a, 0x57, 0x95, 0x2c, 0x58,
+ 0x84, 0x2e, 0xd3, 0x68, 0x33, 0x26, 0xda, 0x60, 0xec, 0xe0, 0xb5, 0x0f,
+ 0x2f, 0x3f, 0xb1, 0xa4, 0xd4, 0x98, 0x71, 0xce, 0x15, 0x5d, 0x3b, 0x1a,
+};
+static const unsigned char kat4199_entropyinpr1[] = {
+ 0x3e, 0xef, 0x39, 0x84, 0x7d, 0xe6, 0x73, 0x28, 0xdb, 0x09, 0xf9, 0xf6,
+ 0xa7, 0x82, 0x99, 0xbf, 0x24, 0x69, 0x0c, 0x0f, 0xc6, 0x65, 0x9c, 0x5f,
+ 0xd6, 0xc7, 0x9e, 0xc4, 0xb4, 0x9d, 0x7c, 0xb4, 0x13, 0x23, 0x43, 0x8e,
+ 0x60, 0xcb, 0xd2, 0x73, 0xd8, 0x3f, 0x60, 0x1e, 0x68, 0x98, 0x41, 0x4f,
+};
+static const unsigned char kat4199_addinpr1[] = {
+ 0xcd, 0xf4, 0xc1, 0x61, 0x52, 0xf0, 0x4a, 0xaf, 0x84, 0x9b, 0x40, 0x62,
+ 0xd7, 0x24, 0xc4, 0x47, 0x73, 0xa9, 0xd9, 0xce, 0xc9, 0x27, 0x5b, 0x7f,
+ 0x7e, 0x82, 0xc3, 0xac, 0x74, 0x47, 0x60, 0x9c, 0x14, 0xae, 0xe1, 0x9e,
+ 0xbc, 0xd5, 0xfe, 0x6c, 0x66, 0x19, 0x0a, 0x43, 0x76, 0xf2, 0xad, 0x34,
+};
+static const unsigned char kat4199_entropyinpr2[] = {
+ 0xf3, 0x7c, 0xec, 0xc4, 0x8c, 0x4c, 0x0c, 0xb9, 0xae, 0x59, 0xdf, 0xf4,
+ 0x8f, 0xd4, 0x91, 0xc3, 0xf2, 0xa4, 0x5c, 0x04, 0x52, 0x25, 0x43, 0x76,
+ 0x75, 0x7e, 0xed, 0x44, 0x12, 0x74, 0x71, 0xf9, 0xd6, 0x30, 0xba, 0x7b,
+ 0xfc, 0xd2, 0xaf, 0x86, 0xa8, 0x2e, 0x7e, 0x16, 0x0d, 0x38, 0xe2, 0x37,
+};
+static const unsigned char kat4199_addinpr2[] = {
+ 0x05, 0xbc, 0xad, 0xbb, 0x4f, 0x06, 0x16, 0xd7, 0x71, 0xcc, 0x9c, 0xa4,
+ 0xf0, 0xa8, 0xdd, 0xe6, 0xbd, 0x87, 0xa0, 0x17, 0x2a, 0x23, 0x93, 0x66,
+ 0x7d, 0xf7, 0x6d, 0x93, 0xe4, 0x99, 0xd0, 0x78, 0x69, 0xfb, 0xfc, 0x06,
+ 0x48, 0xa2, 0x24, 0x69, 0x41, 0x48, 0x93, 0xc1, 0xa0, 0x8d, 0x28, 0xe0,
+};
+static const unsigned char kat4199_retbits[] = {
+ 0x41, 0xc2, 0xfe, 0xf4, 0xb8, 0x73, 0x68, 0x89, 0xbb, 0x42, 0x0c, 0xc3,
+ 0x64, 0x85, 0xde, 0xc0, 0x6d, 0x10, 0x7f, 0x06, 0x47, 0x24, 0x8e, 0x5d,
+ 0x99, 0x05, 0xf8, 0xa2, 0xb3, 0x0c, 0x5a, 0x97, 0xe6, 0x07, 0xee, 0x42,
+ 0x65, 0xe5, 0xe7, 0x71, 0x37, 0xf4, 0xb4, 0xab, 0x39, 0x9f, 0xe8, 0x4d,
+ 0x54, 0x6c, 0x38, 0x99, 0x81, 0x4a, 0x6e, 0x7b, 0x1b, 0x1c, 0x2b, 0xc5,
+ 0xed, 0xf1, 0x6a, 0x3f,
+};
+static const struct drbg_kat_pr_true kat4199_t = {
+ 13, kat4199_entropyin, kat4199_nonce, kat4199_persstr,
+ kat4199_entropyinpr1, kat4199_addinpr1, kat4199_entropyinpr2,
+ kat4199_addinpr2, kat4199_retbits
+};
+static const struct drbg_kat kat4199 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4199_t
+};
+
+static const unsigned char kat4200_entropyin[] = {
+ 0xc4, 0xce, 0xd6, 0x22, 0x73, 0x95, 0xfc, 0xa3, 0x55, 0x4e, 0x92, 0x14,
+ 0x3a, 0x53, 0x0b, 0xd1, 0x2d, 0xf5, 0x19, 0x64, 0xeb, 0xdd, 0xf9, 0x4b,
+ 0xfb, 0x02, 0x19, 0xcb, 0xcc, 0x00, 0xc9, 0x66, 0xa9, 0x65, 0xf8, 0xcf,
+ 0x08, 0xc4, 0x44, 0x98, 0xdf, 0xd6, 0x79, 0x10, 0xff, 0x3b, 0xba, 0xf2,
+};
+static const unsigned char kat4200_nonce[] = {0};
+static const unsigned char kat4200_persstr[] = {
+ 0x75, 0x98, 0x43, 0x05, 0xc2, 0x73, 0x24, 0xdf, 0x11, 0x6f, 0x95, 0x16,
+ 0x00, 0xa0, 0x29, 0xd2, 0x62, 0x68, 0xbd, 0x0d, 0x21, 0x50, 0x20, 0x86,
+ 0xec, 0xdd, 0xe7, 0xc6, 0x88, 0xe9, 0xf7, 0x2e, 0x44, 0xe7, 0xd3, 0xb3,
+ 0x4d, 0x89, 0x73, 0x1f, 0xbe, 0xe6, 0xbe, 0x4a, 0xff, 0xc3, 0x24, 0x51,
+};
+static const unsigned char kat4200_entropyinpr1[] = {
+ 0x35, 0x3a, 0x6f, 0x81, 0x6b, 0x73, 0xac, 0xe3, 0x85, 0x88, 0x90, 0x30,
+ 0x3b, 0x51, 0x57, 0x9f, 0xc4, 0xc2, 0xfd, 0xe4, 0x03, 0xbd, 0x9a, 0xf5,
+ 0x05, 0xfd, 0xcc, 0x1b, 0xfc, 0x25, 0x41, 0x64, 0x8c, 0xa7, 0xf2, 0xa0,
+ 0xd2, 0x99, 0x43, 0x48, 0xda, 0x0c, 0xd9, 0x8c, 0xe4, 0xa5, 0x86, 0x14,
+};
+static const unsigned char kat4200_addinpr1[] = {
+ 0x86, 0x76, 0x13, 0x8f, 0x1d, 0x19, 0x50, 0x28, 0x32, 0x0e, 0xfd, 0xc0,
+ 0x78, 0xce, 0x5c, 0xba, 0xdd, 0x94, 0xb9, 0x43, 0x18, 0x10, 0x1c, 0x17,
+ 0x57, 0x6d, 0x3f, 0xb5, 0xa6, 0x32, 0x6c, 0xae, 0x94, 0x0a, 0xd9, 0xfd,
+ 0x48, 0x14, 0x20, 0xb1, 0x25, 0x03, 0x3a, 0xe0, 0xa9, 0x16, 0x0c, 0x90,
+};
+static const unsigned char kat4200_entropyinpr2[] = {
+ 0xae, 0xc9, 0x0f, 0x26, 0xf7, 0xc7, 0x85, 0x3f, 0x39, 0x17, 0xde, 0x51,
+ 0x6f, 0x1e, 0xe0, 0xf8, 0x5a, 0x0f, 0x3d, 0x0e, 0xb4, 0x96, 0x7f, 0x6d,
+ 0x26, 0x94, 0x55, 0x2a, 0x93, 0xa2, 0x5c, 0xa7, 0xfb, 0xdb, 0x45, 0x54,
+ 0xde, 0x8a, 0xcc, 0x0e, 0x60, 0xaf, 0x0c, 0x5b, 0x08, 0x29, 0xcb, 0x9a,
+};
+static const unsigned char kat4200_addinpr2[] = {
+ 0x58, 0xa9, 0x8d, 0x14, 0x62, 0x5f, 0x59, 0xf7, 0xad, 0xf6, 0xa7, 0x03,
+ 0xb2, 0xe1, 0xee, 0x21, 0xfb, 0x83, 0xf2, 0x2f, 0x36, 0x94, 0xf7, 0xf0,
+ 0x65, 0x48, 0xc8, 0x58, 0x04, 0x26, 0x97, 0xd9, 0xca, 0x1a, 0x66, 0x6a,
+ 0xe1, 0xbd, 0xcf, 0xa7, 0xa2, 0xf5, 0x5c, 0xb1, 0x29, 0x46, 0xb7, 0xb8,
+};
+static const unsigned char kat4200_retbits[] = {
+ 0x18, 0xd3, 0xf2, 0x39, 0x6f, 0xa9, 0x2b, 0x0b, 0x9e, 0x6b, 0xc7, 0xa5,
+ 0xc0, 0xf9, 0xf8, 0xe1, 0x08, 0x57, 0xc0, 0x06, 0x3b, 0x4f, 0xdd, 0x8e,
+ 0xe7, 0x6d, 0x12, 0xe1, 0x20, 0x5e, 0xb5, 0xe4, 0xfb, 0xe1, 0xb0, 0x7f,
+ 0xfc, 0x0e, 0xc5, 0x04, 0x5e, 0xaa, 0xad, 0x60, 0x8a, 0x55, 0x8d, 0x11,
+ 0x07, 0xf9, 0x31, 0xc0, 0x29, 0x03, 0x92, 0x16, 0x6b, 0xed, 0x2d, 0x09,
+ 0x84, 0x98, 0x80, 0xa5,
+};
+static const struct drbg_kat_pr_true kat4200_t = {
+ 14, kat4200_entropyin, kat4200_nonce, kat4200_persstr,
+ kat4200_entropyinpr1, kat4200_addinpr1, kat4200_entropyinpr2,
+ kat4200_addinpr2, kat4200_retbits
+};
+static const struct drbg_kat kat4200 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4200_t
+};
+
+static const unsigned char kat4201_entropyin[] = {
+ 0xa9, 0x8e, 0x4c, 0xcd, 0x7e, 0x7d, 0x4a, 0x90, 0x5a, 0xf5, 0xa5, 0x7c,
+ 0xec, 0x1e, 0x72, 0x93, 0x68, 0x23, 0xbe, 0x81, 0x9b, 0x7c, 0xa3, 0x62,
+ 0xd0, 0x24, 0x2f, 0x9a, 0xf3, 0x3c, 0x29, 0x06, 0xae, 0xed, 0xba, 0x7e,
+ 0x7e, 0x2a, 0x9d, 0x0c, 0xf0, 0xfd, 0x4a, 0xe3, 0x9b, 0x7c, 0x13, 0x09,
+};
+static const unsigned char kat4201_nonce[] = {0};
+static const unsigned char kat4201_persstr[] = {0};
+static const unsigned char kat4201_entropyinpr1[] = {
+ 0xa7, 0x54, 0xb1, 0x26, 0x41, 0xfc, 0x2b, 0xbc, 0x64, 0x9e, 0x68, 0xd3,
+ 0x1d, 0x44, 0x10, 0x08, 0xef, 0xa7, 0xdf, 0x99, 0xa2, 0xbe, 0xb7, 0x72,
+ 0xbf, 0xbe, 0xeb, 0xa1, 0x0d, 0xbc, 0x0b, 0xc2, 0x5a, 0xd4, 0xb5, 0x51,
+ 0xb2, 0xb7, 0xa1, 0x57, 0x49, 0xbd, 0x08, 0x06, 0x76, 0xf7, 0x46, 0x25,
+};
+static const unsigned char kat4201_addinpr1[] = {0};
+static const unsigned char kat4201_entropyinpr2[] = {
+ 0xd5, 0xa5, 0xf0, 0x65, 0xb4, 0xf5, 0x56, 0xd0, 0x5a, 0x09, 0x0f, 0xaf,
+ 0x45, 0x36, 0xba, 0x88, 0x86, 0x35, 0x8b, 0x4c, 0xd6, 0xdc, 0xaa, 0xc2,
+ 0xad, 0x9b, 0x24, 0x9d, 0x83, 0xce, 0x8f, 0xb5, 0xa9, 0x1d, 0x9f, 0x1f,
+ 0x5f, 0xda, 0x62, 0xec, 0x35, 0x20, 0x51, 0x52, 0xc8, 0x5d, 0x8c, 0xb1,
+};
+static const unsigned char kat4201_addinpr2[] = {0};
+static const unsigned char kat4201_retbits[] = {
+ 0x80, 0x0e, 0xf3, 0xf1, 0x77, 0x28, 0xf1, 0x0b, 0x42, 0x01, 0xe1, 0x6a,
+ 0xa9, 0xc3, 0x26, 0x4f, 0xbc, 0x45, 0xac, 0xc8, 0xf0, 0x14, 0x34, 0xcc,
+ 0x0c, 0xb0, 0xe4, 0x1e, 0x89, 0x54, 0xee, 0x20, 0xd8, 0x09, 0x9a, 0x4c,
+ 0x3b, 0x4f, 0x5d, 0xc9, 0x95, 0xbd, 0xe0, 0xb3, 0x45, 0x26, 0x37, 0xe7,
+ 0x63, 0x97, 0x76, 0x8e, 0xfe, 0x17, 0xbc, 0x7a, 0xc8, 0xb4, 0x8d, 0x1f,
+ 0xf7, 0xe2, 0xc7, 0x0e,
+};
+static const struct drbg_kat_pr_true kat4201_t = {
+ 0, kat4201_entropyin, kat4201_nonce, kat4201_persstr,
+ kat4201_entropyinpr1, kat4201_addinpr1, kat4201_entropyinpr2,
+ kat4201_addinpr2, kat4201_retbits
+};
+static const struct drbg_kat kat4201 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4201_t
+};
+
+static const unsigned char kat4202_entropyin[] = {
+ 0xb9, 0xa6, 0x2e, 0x8d, 0x41, 0x7b, 0xf6, 0xc7, 0x2b, 0x7e, 0xce, 0xba,
+ 0x1b, 0x28, 0x4e, 0x98, 0x78, 0xb2, 0x8c, 0xba, 0xe7, 0xa3, 0xe0, 0x02,
+ 0xc2, 0x36, 0x22, 0x5b, 0x0c, 0x36, 0x45, 0x69, 0x11, 0xca, 0xb1, 0xd3,
+ 0xda, 0xc4, 0x6b, 0x27, 0x84, 0x6c, 0x61, 0x7e, 0xfe, 0x2d, 0x59, 0x63,
+};
+static const unsigned char kat4202_nonce[] = {0};
+static const unsigned char kat4202_persstr[] = {0};
+static const unsigned char kat4202_entropyinpr1[] = {
+ 0x9b, 0x32, 0xde, 0x98, 0xea, 0x48, 0xd0, 0xec, 0xb3, 0x9d, 0x14, 0xa6,
+ 0x5b, 0x16, 0x1d, 0x79, 0x29, 0x1c, 0x1a, 0x27, 0x69, 0x48, 0x7c, 0x8c,
+ 0xbb, 0x86, 0x31, 0x21, 0x7d, 0x6b, 0x65, 0x11, 0xde, 0x51, 0xf7, 0xeb,
+ 0x23, 0x03, 0x81, 0xe4, 0x50, 0x3c, 0x62, 0x69, 0x39, 0xee, 0x35, 0xa6,
+};
+static const unsigned char kat4202_addinpr1[] = {0};
+static const unsigned char kat4202_entropyinpr2[] = {
+ 0x50, 0xbf, 0xee, 0xbb, 0x79, 0x7f, 0x64, 0x9b, 0x65, 0x65, 0x4a, 0x3e,
+ 0xb4, 0xc1, 0xad, 0x14, 0x57, 0xd9, 0xc4, 0x7d, 0x28, 0x18, 0xe2, 0xfe,
+ 0xdd, 0x98, 0x6e, 0xc1, 0xa7, 0x00, 0xb3, 0x19, 0x00, 0xe2, 0xde, 0xf7,
+ 0x98, 0x33, 0xac, 0x34, 0x43, 0x80, 0xda, 0x87, 0xa0, 0xc2, 0xb1, 0x5e,
+};
+static const unsigned char kat4202_addinpr2[] = {0};
+static const unsigned char kat4202_retbits[] = {
+ 0x0c, 0x08, 0x5b, 0xb7, 0x97, 0x9c, 0x75, 0x69, 0x96, 0x40, 0xe5, 0x25,
+ 0xa2, 0xc5, 0x70, 0x10, 0xe6, 0xd9, 0x91, 0x72, 0x52, 0x9b, 0x05, 0x8f,
+ 0x9d, 0x44, 0x00, 0x8e, 0x04, 0xf7, 0x3b, 0x34, 0x04, 0xc8, 0x03, 0x2b,
+ 0x48, 0x06, 0xac, 0x3b, 0xd6, 0x0d, 0xf2, 0xda, 0x50, 0x55, 0xd7, 0x36,
+ 0x21, 0xdd, 0x11, 0x2a, 0x77, 0x44, 0x28, 0xf3, 0x28, 0xd6, 0xd1, 0x63,
+ 0xdd, 0xad, 0x19, 0x9d,
+};
+static const struct drbg_kat_pr_true kat4202_t = {
+ 1, kat4202_entropyin, kat4202_nonce, kat4202_persstr,
+ kat4202_entropyinpr1, kat4202_addinpr1, kat4202_entropyinpr2,
+ kat4202_addinpr2, kat4202_retbits
+};
+static const struct drbg_kat kat4202 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4202_t
+};
+
+static const unsigned char kat4203_entropyin[] = {
+ 0xd8, 0xc6, 0x67, 0x6e, 0x89, 0x6b, 0xc8, 0x8b, 0x8c, 0xcb, 0x0f, 0x32,
+ 0x57, 0x8d, 0xc0, 0xd8, 0x08, 0x7c, 0xd7, 0xd3, 0xe5, 0x21, 0x64, 0xb1,
+ 0xe7, 0x0d, 0xf4, 0xea, 0xea, 0xf8, 0xfc, 0x42, 0x42, 0xb4, 0x3e, 0x47,
+ 0xdf, 0x64, 0x0a, 0x21, 0x08, 0xf8, 0xcd, 0x6f, 0xc7, 0x0d, 0xc2, 0x75,
+};
+static const unsigned char kat4203_nonce[] = {0};
+static const unsigned char kat4203_persstr[] = {0};
+static const unsigned char kat4203_entropyinpr1[] = {
+ 0xc0, 0x0f, 0x59, 0x2c, 0xfb, 0x03, 0xaf, 0xf7, 0xc4, 0x95, 0x93, 0x16,
+ 0x0a, 0x88, 0x0b, 0xba, 0x74, 0x59, 0x81, 0xc1, 0x3f, 0xc5, 0x26, 0xb9,
+ 0x7b, 0xfc, 0x71, 0x35, 0xa4, 0x10, 0xa8, 0x47, 0x6d, 0x02, 0xa7, 0x57,
+ 0x41, 0xb8, 0x04, 0xee, 0x35, 0x02, 0xf8, 0x6d, 0xbb, 0x12, 0xd5, 0x51,
+};
+static const unsigned char kat4203_addinpr1[] = {0};
+static const unsigned char kat4203_entropyinpr2[] = {
+ 0x95, 0xb8, 0x67, 0x36, 0x6c, 0x08, 0xa9, 0xf6, 0x6a, 0xf7, 0x13, 0x8b,
+ 0x8d, 0x29, 0x40, 0x3f, 0x04, 0x91, 0xfa, 0x81, 0x45, 0xd0, 0x87, 0x87,
+ 0x17, 0x0a, 0x88, 0xb3, 0x00, 0x45, 0xaa, 0xfe, 0x06, 0x0e, 0x61, 0x56,
+ 0x10, 0x0a, 0x97, 0xea, 0x3f, 0xce, 0xa8, 0x12, 0x27, 0x13, 0xd6, 0x85,
+};
+static const unsigned char kat4203_addinpr2[] = {0};
+static const unsigned char kat4203_retbits[] = {
+ 0x56, 0xf2, 0xe0, 0x37, 0x2c, 0x39, 0xf0, 0x74, 0xc5, 0x78, 0x14, 0x13,
+ 0xf5, 0xe1, 0xe8, 0x20, 0x84, 0x4f, 0x5a, 0x77, 0xae, 0x72, 0x6e, 0x77,
+ 0xcb, 0x7b, 0x65, 0x9b, 0x37, 0xf5, 0xc0, 0xb8, 0xee, 0x7b, 0x32, 0xcf,
+ 0xb0, 0xb2, 0x7c, 0xdf, 0xe6, 0xbd, 0xa3, 0xa5, 0x6d, 0x5f, 0x13, 0xe9,
+ 0xc3, 0xd6, 0xc5, 0x84, 0x47, 0x0d, 0x44, 0xf0, 0x99, 0x62, 0xbe, 0x21,
+ 0x90, 0xbc, 0x70, 0x54,
+};
+static const struct drbg_kat_pr_true kat4203_t = {
+ 2, kat4203_entropyin, kat4203_nonce, kat4203_persstr,
+ kat4203_entropyinpr1, kat4203_addinpr1, kat4203_entropyinpr2,
+ kat4203_addinpr2, kat4203_retbits
+};
+static const struct drbg_kat kat4203 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4203_t
+};
+
+static const unsigned char kat4204_entropyin[] = {
+ 0xa0, 0xc0, 0xb1, 0x1c, 0x88, 0x07, 0xa7, 0xd1, 0x97, 0xdc, 0xcd, 0x15,
+ 0x9f, 0x3d, 0x2a, 0xf3, 0x3e, 0x27, 0x90, 0xae, 0xb0, 0xd5, 0x32, 0x31,
+ 0x06, 0xdb, 0x52, 0x64, 0x01, 0x48, 0xef, 0xa3, 0xe6, 0x3e, 0x91, 0xcf,
+ 0x5a, 0xbd, 0x3b, 0xde, 0xdb, 0xce, 0x1d, 0x7b, 0x5e, 0x32, 0x55, 0xe1,
+};
+static const unsigned char kat4204_nonce[] = {0};
+static const unsigned char kat4204_persstr[] = {0};
+static const unsigned char kat4204_entropyinpr1[] = {
+ 0xc7, 0xcc, 0xe4, 0x56, 0x36, 0x53, 0x2d, 0xc3, 0xd0, 0x25, 0x96, 0x91,
+ 0xda, 0x45, 0x93, 0xe6, 0x92, 0xf4, 0x44, 0x01, 0xe1, 0x3e, 0xfb, 0x39,
+ 0x8a, 0x00, 0xc2, 0x85, 0x37, 0x30, 0xa3, 0xb2, 0xb9, 0x24, 0x8e, 0x60,
+ 0xbe, 0x3e, 0xaa, 0xff, 0x72, 0xf0, 0x93, 0xaf, 0x73, 0x1c, 0x50, 0xcd,
+};
+static const unsigned char kat4204_addinpr1[] = {0};
+static const unsigned char kat4204_entropyinpr2[] = {
+ 0x0c, 0xfc, 0x99, 0x6e, 0x46, 0x5f, 0x59, 0x7d, 0x09, 0xa3, 0x5f, 0x25,
+ 0x0d, 0x1e, 0xb8, 0xef, 0xc0, 0xc0, 0xf5, 0x80, 0x8d, 0x67, 0x44, 0x70,
+ 0x99, 0x51, 0xa9, 0x81, 0x15, 0x03, 0x84, 0x59, 0x96, 0x3b, 0x42, 0x23,
+ 0x41, 0x71, 0x6d, 0x1b, 0x34, 0xe9, 0x54, 0x89, 0xfc, 0x83, 0xa9, 0xd7,
+};
+static const unsigned char kat4204_addinpr2[] = {0};
+static const unsigned char kat4204_retbits[] = {
+ 0xdd, 0x0d, 0xe1, 0xf2, 0xf8, 0xa2, 0x9d, 0xb1, 0xbd, 0xe9, 0x6a, 0x67,
+ 0xb0, 0xce, 0x6e, 0x2d, 0xc1, 0xe1, 0x2c, 0x21, 0x20, 0x46, 0x2c, 0xa7,
+ 0xfe, 0x03, 0x99, 0x56, 0x45, 0xce, 0x9f, 0xd1, 0xdd, 0x7c, 0xaf, 0x40,
+ 0x04, 0x76, 0x6e, 0xce, 0xb8, 0xfb, 0x8f, 0x90, 0x1d, 0x59, 0x5d, 0x6a,
+ 0x6a, 0x9c, 0xb2, 0x13, 0x93, 0x06, 0xe1, 0xa7, 0xb0, 0x4d, 0x4f, 0x6c,
+ 0x4e, 0x5a, 0x5f, 0x46,
+};
+static const struct drbg_kat_pr_true kat4204_t = {
+ 3, kat4204_entropyin, kat4204_nonce, kat4204_persstr,
+ kat4204_entropyinpr1, kat4204_addinpr1, kat4204_entropyinpr2,
+ kat4204_addinpr2, kat4204_retbits
+};
+static const struct drbg_kat kat4204 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4204_t
+};
+
+static const unsigned char kat4205_entropyin[] = {
+ 0xee, 0x8c, 0xa5, 0xde, 0x03, 0x6c, 0x21, 0x20, 0xb2, 0x14, 0x0c, 0x68,
+ 0xc5, 0xad, 0xff, 0xc7, 0x02, 0xde, 0x4e, 0xad, 0x91, 0x9b, 0x6b, 0x57,
+ 0x4a, 0x87, 0x14, 0x92, 0xee, 0xb9, 0xc7, 0x90, 0x68, 0xb6, 0x95, 0x1d,
+ 0x0d, 0xdd, 0x73, 0x3d, 0xc7, 0x42, 0x4c, 0xeb, 0xc5, 0xc3, 0xef, 0xa2,
+};
+static const unsigned char kat4205_nonce[] = {0};
+static const unsigned char kat4205_persstr[] = {0};
+static const unsigned char kat4205_entropyinpr1[] = {
+ 0x9c, 0xb9, 0x1c, 0xce, 0x0a, 0x38, 0x18, 0x91, 0x74, 0xf6, 0x30, 0x0e,
+ 0x94, 0x1d, 0x51, 0x04, 0x8a, 0x1a, 0x11, 0x5c, 0x83, 0xe7, 0xab, 0xec,
+ 0xbb, 0x85, 0xb5, 0x0d, 0x7a, 0x53, 0xdd, 0x2d, 0x0a, 0x6b, 0x37, 0xf3,
+ 0x7f, 0xc9, 0x02, 0xd4, 0xd4, 0xb3, 0xa5, 0x9a, 0xd6, 0xc3, 0x5c, 0x79,
+};
+static const unsigned char kat4205_addinpr1[] = {0};
+static const unsigned char kat4205_entropyinpr2[] = {
+ 0x2b, 0xa4, 0x07, 0x48, 0x4b, 0x1a, 0xad, 0x03, 0x20, 0x1a, 0x57, 0x73,
+ 0x11, 0x09, 0x5b, 0xac, 0x9b, 0x69, 0xa6, 0x3b, 0x2c, 0xb7, 0x81, 0x4c,
+ 0xe3, 0xe4, 0x3d, 0xa3, 0x17, 0x13, 0x81, 0x4a, 0xff, 0x70, 0x8a, 0x3c,
+ 0x4e, 0x46, 0x8c, 0x3d, 0x65, 0x55, 0xdb, 0x3e, 0xed, 0x5d, 0xb2, 0x23,
+};
+static const unsigned char kat4205_addinpr2[] = {0};
+static const unsigned char kat4205_retbits[] = {
+ 0x99, 0x11, 0x82, 0x81, 0x19, 0x17, 0xed, 0xa9, 0x0c, 0xf6, 0x4a, 0x02,
+ 0x43, 0xe8, 0x3b, 0xa8, 0x3e, 0x6d, 0xaf, 0xf1, 0x62, 0x2b, 0x12, 0x2e,
+ 0x58, 0x51, 0xa1, 0x00, 0x8c, 0x37, 0xbb, 0xe7, 0xf8, 0x55, 0x93, 0xa1,
+ 0x6a, 0x05, 0xdd, 0x10, 0xa3, 0xfd, 0x9a, 0x10, 0xf0, 0x76, 0x5c, 0xcb,
+ 0x94, 0x18, 0x69, 0x9a, 0x74, 0xa2, 0xf9, 0x67, 0xd3, 0xbf, 0xe4, 0x4d,
+ 0x38, 0x03, 0xc9, 0xd3,
+};
+static const struct drbg_kat_pr_true kat4205_t = {
+ 4, kat4205_entropyin, kat4205_nonce, kat4205_persstr,
+ kat4205_entropyinpr1, kat4205_addinpr1, kat4205_entropyinpr2,
+ kat4205_addinpr2, kat4205_retbits
+};
+static const struct drbg_kat kat4205 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4205_t
+};
+
+static const unsigned char kat4206_entropyin[] = {
+ 0x07, 0xf7, 0x56, 0xf7, 0x6b, 0x86, 0xdc, 0x7e, 0xcb, 0x37, 0x1a, 0xb2,
+ 0x38, 0xd1, 0xc5, 0x5e, 0x0b, 0xe6, 0x67, 0x31, 0x3f, 0xfd, 0xad, 0x36,
+ 0x65, 0x79, 0xfc, 0x0c, 0x4a, 0x69, 0x64, 0xb9, 0xc3, 0x1a, 0x25, 0xdb,
+ 0xbc, 0xfd, 0x46, 0x3f, 0x17, 0x80, 0x8e, 0x52, 0xf6, 0xf0, 0x35, 0xa2,
+};
+static const unsigned char kat4206_nonce[] = {0};
+static const unsigned char kat4206_persstr[] = {0};
+static const unsigned char kat4206_entropyinpr1[] = {
+ 0xc3, 0x21, 0xb3, 0x15, 0x7d, 0xa5, 0xa9, 0x46, 0xd3, 0xac, 0x88, 0xba,
+ 0xea, 0xe0, 0x3a, 0x95, 0x25, 0xf4, 0xb2, 0x2d, 0xea, 0xd4, 0x29, 0xee,
+ 0xa0, 0x3a, 0x0b, 0x99, 0x82, 0xbc, 0xfe, 0x15, 0xb9, 0x5b, 0x27, 0x4d,
+ 0x43, 0x17, 0x22, 0xf9, 0xe9, 0x0c, 0xc5, 0x05, 0x0c, 0xb4, 0x8a, 0x31,
+};
+static const unsigned char kat4206_addinpr1[] = {0};
+static const unsigned char kat4206_entropyinpr2[] = {
+ 0x13, 0x9e, 0x70, 0x5f, 0x72, 0xb8, 0x2a, 0xed, 0xe8, 0x94, 0xcd, 0xc7,
+ 0x8f, 0xe9, 0x53, 0x85, 0x1a, 0xc4, 0x8c, 0x17, 0x8f, 0xe9, 0x21, 0xd7,
+ 0xb8, 0xf0, 0xbe, 0x51, 0xe5, 0x52, 0x56, 0x7e, 0x1c, 0x34, 0x52, 0xa4,
+ 0xba, 0xca, 0x69, 0xb7, 0x7f, 0xdd, 0xb8, 0x91, 0x4d, 0xea, 0xd1, 0xd6,
+};
+static const unsigned char kat4206_addinpr2[] = {0};
+static const unsigned char kat4206_retbits[] = {
+ 0xe1, 0x66, 0x3a, 0x94, 0x19, 0x40, 0xdc, 0x45, 0x0d, 0x97, 0xca, 0xa6,
+ 0x84, 0x18, 0x14, 0x30, 0x24, 0x7b, 0x36, 0x9e, 0x80, 0x8a, 0x50, 0xde,
+ 0x38, 0x77, 0xd7, 0xf4, 0xa5, 0x33, 0x17, 0xc1, 0x1d, 0x5d, 0xbc, 0xdb,
+ 0xaf, 0xa3, 0x6c, 0x8c, 0xe6, 0x4b, 0x89, 0x3b, 0x77, 0xba, 0xdf, 0xe2,
+ 0x32, 0xc5, 0xa8, 0x05, 0x60, 0x95, 0x16, 0x50, 0xbd, 0xcb, 0x68, 0xd3,
+ 0xb0, 0x5c, 0x4b, 0x5e,
+};
+static const struct drbg_kat_pr_true kat4206_t = {
+ 5, kat4206_entropyin, kat4206_nonce, kat4206_persstr,
+ kat4206_entropyinpr1, kat4206_addinpr1, kat4206_entropyinpr2,
+ kat4206_addinpr2, kat4206_retbits
+};
+static const struct drbg_kat kat4206 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4206_t
+};
+
+static const unsigned char kat4207_entropyin[] = {
+ 0xcf, 0xd3, 0x0c, 0xc3, 0x7d, 0xb1, 0x30, 0xfb, 0x6d, 0x33, 0xa8, 0x5b,
+ 0xe2, 0x94, 0xeb, 0xa4, 0x39, 0xb0, 0x96, 0x86, 0xbc, 0xda, 0x89, 0xe3,
+ 0x37, 0x94, 0x41, 0x89, 0x83, 0xca, 0x18, 0x10, 0x89, 0x0a, 0xb6, 0x8f,
+ 0xf8, 0x93, 0xd5, 0xf0, 0x34, 0x84, 0x12, 0x1d, 0xaa, 0x36, 0xa6, 0xa0,
+};
+static const unsigned char kat4207_nonce[] = {0};
+static const unsigned char kat4207_persstr[] = {0};
+static const unsigned char kat4207_entropyinpr1[] = {
+ 0x0c, 0x1a, 0x41, 0x54, 0x74, 0x91, 0xef, 0xd2, 0x3f, 0x30, 0x0c, 0x6e,
+ 0x85, 0x48, 0xae, 0x5b, 0x09, 0x3d, 0x1f, 0xbf, 0xa3, 0x09, 0x21, 0x50,
+ 0x46, 0x2e, 0xd2, 0xfc, 0x2f, 0x3d, 0x4a, 0xad, 0x9a, 0x84, 0x4a, 0xec,
+ 0x54, 0x8d, 0x34, 0x19, 0xfb, 0xa8, 0x6f, 0xb1, 0xcf, 0xcb, 0x87, 0x46,
+};
+static const unsigned char kat4207_addinpr1[] = {0};
+static const unsigned char kat4207_entropyinpr2[] = {
+ 0x75, 0x05, 0xbf, 0x63, 0xba, 0xc9, 0x83, 0xe8, 0x91, 0xa6, 0xd7, 0x0d,
+ 0xc4, 0x1b, 0xff, 0xcb, 0xf2, 0x32, 0xf6, 0x57, 0xce, 0x63, 0x05, 0x8d,
+ 0x27, 0x54, 0x14, 0x40, 0x70, 0xc8, 0xde, 0xf6, 0xd1, 0xc4, 0x09, 0xea,
+ 0xeb, 0xf2, 0x17, 0x06, 0xfb, 0x23, 0x95, 0x97, 0x61, 0x1e, 0xbd, 0x8d,
+};
+static const unsigned char kat4207_addinpr2[] = {0};
+static const unsigned char kat4207_retbits[] = {
+ 0x10, 0x67, 0xf3, 0x52, 0xb3, 0x8f, 0x8a, 0xb2, 0xc6, 0x8a, 0x1d, 0x0c,
+ 0xe3, 0x52, 0x90, 0xe1, 0x38, 0x50, 0x56, 0x16, 0xdd, 0x14, 0xa1, 0x9c,
+ 0x83, 0xbb, 0x39, 0x76, 0x00, 0x44, 0x00, 0x65, 0x9e, 0xc8, 0xa1, 0x4f,
+ 0x6c, 0xab, 0x8c, 0x15, 0xe1, 0x79, 0x41, 0x13, 0x94, 0x45, 0xc1, 0x12,
+ 0xd6, 0x3e, 0x2c, 0x1a, 0x0c, 0x92, 0x36, 0x06, 0xdd, 0x1c, 0x22, 0x05,
+ 0x95, 0x4a, 0xe6, 0x27,
+};
+static const struct drbg_kat_pr_true kat4207_t = {
+ 6, kat4207_entropyin, kat4207_nonce, kat4207_persstr,
+ kat4207_entropyinpr1, kat4207_addinpr1, kat4207_entropyinpr2,
+ kat4207_addinpr2, kat4207_retbits
+};
+static const struct drbg_kat kat4207 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4207_t
+};
+
+static const unsigned char kat4208_entropyin[] = {
+ 0x6d, 0xe8, 0xa0, 0x3c, 0xb5, 0x26, 0x58, 0xb3, 0x0d, 0x89, 0x08, 0x14,
+ 0xba, 0xe5, 0xe1, 0xec, 0x17, 0x79, 0xca, 0x11, 0x57, 0x66, 0xe5, 0x71,
+ 0x72, 0x46, 0x34, 0xef, 0x78, 0x58, 0x97, 0xb2, 0xcb, 0x81, 0x12, 0x0d,
+ 0xef, 0x1d, 0x3d, 0x74, 0xce, 0xb3, 0xdc, 0xdc, 0xbc, 0xe5, 0x25, 0x14,
+};
+static const unsigned char kat4208_nonce[] = {0};
+static const unsigned char kat4208_persstr[] = {0};
+static const unsigned char kat4208_entropyinpr1[] = {
+ 0x59, 0x9d, 0x69, 0x67, 0x7f, 0x8d, 0xdf, 0x59, 0xbb, 0x1a, 0xbf, 0xbb,
+ 0x06, 0x10, 0x7c, 0x2d, 0xc8, 0xca, 0x41, 0x54, 0x57, 0x75, 0x37, 0xa9,
+ 0xf2, 0xd2, 0xd9, 0xa8, 0xd9, 0xde, 0x31, 0x65, 0x26, 0xdd, 0x52, 0xbb,
+ 0xf2, 0x54, 0x59, 0x49, 0x19, 0xf6, 0xae, 0xfa, 0xaf, 0x90, 0x4f, 0xe7,
+};
+static const unsigned char kat4208_addinpr1[] = {0};
+static const unsigned char kat4208_entropyinpr2[] = {
+ 0x75, 0xcd, 0x48, 0xdc, 0x32, 0xf1, 0xec, 0xe7, 0x23, 0x47, 0x21, 0x96,
+ 0x93, 0x50, 0xa6, 0xbd, 0x16, 0x8f, 0x2a, 0xb9, 0xf9, 0x0c, 0x3a, 0x68,
+ 0xec, 0x83, 0x32, 0x54, 0x6c, 0xb4, 0x68, 0x5e, 0x0f, 0xdd, 0xf1, 0x13,
+ 0x63, 0x10, 0xa3, 0x22, 0x4b, 0x8f, 0x5a, 0x29, 0x83, 0xef, 0x88, 0x16,
+};
+static const unsigned char kat4208_addinpr2[] = {0};
+static const unsigned char kat4208_retbits[] = {
+ 0x02, 0x68, 0x55, 0x7a, 0xe5, 0x76, 0x59, 0x91, 0x5e, 0x34, 0x79, 0xa6,
+ 0xde, 0xa0, 0xff, 0x5d, 0xa2, 0xd8, 0x20, 0x09, 0x05, 0x22, 0x5d, 0xcf,
+ 0x16, 0x85, 0x2f, 0x5c, 0x10, 0x2c, 0x03, 0x6c, 0xa6, 0x8e, 0x7f, 0xc2,
+ 0x98, 0xb1, 0x98, 0x05, 0x67, 0x22, 0xc1, 0xf7, 0xb1, 0x47, 0x96, 0xba,
+ 0x6a, 0xfe, 0x40, 0x9b, 0x86, 0x51, 0x5b, 0x8c, 0x17, 0x71, 0x40, 0x0e,
+ 0xeb, 0x56, 0xa2, 0xc3,
+};
+static const struct drbg_kat_pr_true kat4208_t = {
+ 7, kat4208_entropyin, kat4208_nonce, kat4208_persstr,
+ kat4208_entropyinpr1, kat4208_addinpr1, kat4208_entropyinpr2,
+ kat4208_addinpr2, kat4208_retbits
+};
+static const struct drbg_kat kat4208 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4208_t
+};
+
+static const unsigned char kat4209_entropyin[] = {
+ 0x03, 0xdf, 0x67, 0x70, 0x86, 0x15, 0xcf, 0xbb, 0x22, 0xec, 0xb4, 0xce,
+ 0x79, 0x05, 0x68, 0xac, 0x52, 0x45, 0xff, 0x89, 0x75, 0xca, 0x1b, 0x4a,
+ 0x75, 0x5e, 0x9c, 0x23, 0xe2, 0x0e, 0x03, 0x67, 0x36, 0x34, 0x02, 0xd3,
+ 0x81, 0x3f, 0xdd, 0x89, 0x34, 0xd3, 0x83, 0xc1, 0x3c, 0xa9, 0x50, 0x89,
+};
+static const unsigned char kat4209_nonce[] = {0};
+static const unsigned char kat4209_persstr[] = {0};
+static const unsigned char kat4209_entropyinpr1[] = {
+ 0x4a, 0xce, 0x10, 0xf0, 0xb9, 0xb2, 0xe1, 0xfb, 0xb7, 0x16, 0xe1, 0xe7,
+ 0x5e, 0x69, 0x3c, 0x63, 0xc0, 0x8e, 0x5c, 0x72, 0x73, 0x14, 0xd0, 0xae,
+ 0x43, 0xca, 0x40, 0x20, 0x11, 0x6c, 0xd0, 0x49, 0x69, 0x03, 0xa4, 0x9f,
+ 0xd0, 0x1a, 0xdd, 0x3a, 0xe0, 0x29, 0x56, 0x3d, 0xcb, 0xd0, 0xa6, 0x15,
+};
+static const unsigned char kat4209_addinpr1[] = {0};
+static const unsigned char kat4209_entropyinpr2[] = {
+ 0x14, 0x4e, 0x1f, 0xbc, 0x39, 0x2e, 0x9b, 0x1c, 0x60, 0x4f, 0x99, 0x26,
+ 0x4e, 0xfe, 0x07, 0xaf, 0x70, 0xa0, 0x31, 0xbd, 0x30, 0xd9, 0xf4, 0xdb,
+ 0xc9, 0x52, 0x61, 0xbe, 0xbf, 0x83, 0xef, 0xe4, 0x25, 0xcc, 0x25, 0x49,
+ 0x7b, 0xba, 0xd2, 0x44, 0x39, 0xf1, 0x6a, 0xd8, 0xf6, 0xf4, 0xa7, 0xdc,
+};
+static const unsigned char kat4209_addinpr2[] = {0};
+static const unsigned char kat4209_retbits[] = {
+ 0xdd, 0x03, 0xca, 0xdf, 0xee, 0xdb, 0x08, 0xeb, 0x70, 0xd8, 0xab, 0xaa,
+ 0x59, 0xec, 0x46, 0x3e, 0xbc, 0x57, 0x3f, 0x08, 0x14, 0x83, 0x82, 0xfd,
+ 0xc7, 0x7e, 0xc2, 0x33, 0x78, 0x5a, 0x71, 0x13, 0xcc, 0x9b, 0x74, 0xc0,
+ 0x3b, 0xbc, 0x1d, 0xda, 0x4e, 0x04, 0xb1, 0x2f, 0x4e, 0x94, 0xc0, 0x67,
+ 0xc2, 0x48, 0xd5, 0x1b, 0x8e, 0x93, 0x10, 0x8c, 0xf6, 0xdf, 0x37, 0xc1,
+ 0x76, 0xde, 0x93, 0x38,
+};
+static const struct drbg_kat_pr_true kat4209_t = {
+ 8, kat4209_entropyin, kat4209_nonce, kat4209_persstr,
+ kat4209_entropyinpr1, kat4209_addinpr1, kat4209_entropyinpr2,
+ kat4209_addinpr2, kat4209_retbits
+};
+static const struct drbg_kat kat4209 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4209_t
+};
+
+static const unsigned char kat4210_entropyin[] = {
+ 0x6e, 0xf5, 0x2c, 0x1d, 0x2a, 0x8a, 0xf0, 0xd9, 0x81, 0x0d, 0x31, 0x4d,
+ 0x62, 0x52, 0x67, 0xa5, 0x34, 0x03, 0xb2, 0xfb, 0xb6, 0xf0, 0xd8, 0x75,
+ 0x86, 0x42, 0xc2, 0x77, 0xea, 0xdc, 0xaf, 0x43, 0x81, 0x47, 0xe6, 0x0f,
+ 0x59, 0x53, 0xc4, 0x82, 0x7e, 0x08, 0x3d, 0x60, 0xbf, 0x6e, 0x24, 0x6c,
+};
+static const unsigned char kat4210_nonce[] = {0};
+static const unsigned char kat4210_persstr[] = {0};
+static const unsigned char kat4210_entropyinpr1[] = {
+ 0x59, 0xde, 0x78, 0x70, 0xfb, 0x5e, 0xb2, 0x19, 0x61, 0x01, 0x18, 0x4f,
+ 0xe5, 0xdc, 0xa8, 0x3c, 0x02, 0xf3, 0x32, 0x7c, 0x63, 0x73, 0xbb, 0xd2,
+ 0x42, 0x82, 0xbd, 0x38, 0xc0, 0xd3, 0xa7, 0x5a, 0x7f, 0x8f, 0x9c, 0xe8,
+ 0xf3, 0x2e, 0x38, 0xcb, 0x2e, 0x6a, 0xb4, 0xd5, 0xe1, 0x57, 0x79, 0x27,
+};
+static const unsigned char kat4210_addinpr1[] = {0};
+static const unsigned char kat4210_entropyinpr2[] = {
+ 0x60, 0xd0, 0x0a, 0xf7, 0x4f, 0xc2, 0xca, 0xa0, 0xdc, 0xae, 0x77, 0xab,
+ 0x3c, 0x1b, 0x84, 0xa9, 0x2e, 0x8c, 0x98, 0xb3, 0x1b, 0x3a, 0xeb, 0x4a,
+ 0xcd, 0xb0, 0x05, 0x56, 0x29, 0x65, 0x27, 0x81, 0xfc, 0xc1, 0x2f, 0x9a,
+ 0x64, 0x9f, 0x8e, 0xb6, 0x93, 0xfd, 0x20, 0x67, 0xc2, 0xbd, 0x84, 0x89,
+};
+static const unsigned char kat4210_addinpr2[] = {0};
+static const unsigned char kat4210_retbits[] = {
+ 0x38, 0xb6, 0xa5, 0x63, 0xd9, 0x50, 0x13, 0x06, 0xea, 0x8b, 0xfd, 0x85,
+ 0x89, 0x62, 0x04, 0xaf, 0x42, 0xdf, 0xfc, 0xeb, 0xf8, 0x05, 0x00, 0xde,
+ 0x6a, 0x92, 0x66, 0x0b, 0x3f, 0xfc, 0x9d, 0x14, 0xda, 0x9e, 0x9a, 0x36,
+ 0xd7, 0x85, 0x9e, 0xcf, 0xf5, 0x51, 0xd8, 0x1a, 0x3e, 0x25, 0xec, 0x8f,
+ 0x20, 0xfc, 0xb3, 0x65, 0x2e, 0x83, 0xa9, 0x91, 0xa5, 0xf4, 0x92, 0x85,
+ 0xf1, 0x57, 0x18, 0xc2,
+};
+static const struct drbg_kat_pr_true kat4210_t = {
+ 9, kat4210_entropyin, kat4210_nonce, kat4210_persstr,
+ kat4210_entropyinpr1, kat4210_addinpr1, kat4210_entropyinpr2,
+ kat4210_addinpr2, kat4210_retbits
+};
+static const struct drbg_kat kat4210 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4210_t
+};
+
+static const unsigned char kat4211_entropyin[] = {
+ 0xbb, 0x62, 0x3a, 0x2f, 0x9f, 0xc1, 0xc3, 0x0c, 0xcd, 0xdb, 0xab, 0x9a,
+ 0x65, 0x46, 0x50, 0x81, 0xb9, 0x0f, 0x20, 0x1d, 0x12, 0x1d, 0x57, 0xed,
+ 0x1b, 0x3d, 0x4c, 0x17, 0xad, 0xdf, 0xd3, 0x51, 0x16, 0x0e, 0x4a, 0x64,
+ 0xce, 0x40, 0xf4, 0xc1, 0x03, 0xb6, 0x63, 0xde, 0xc0, 0x8d, 0xac, 0x09,
+};
+static const unsigned char kat4211_nonce[] = {0};
+static const unsigned char kat4211_persstr[] = {0};
+static const unsigned char kat4211_entropyinpr1[] = {
+ 0xf8, 0x55, 0x59, 0xe9, 0x98, 0x63, 0x4a, 0x1b, 0xe0, 0xb7, 0xd7, 0x44,
+ 0x12, 0xef, 0x43, 0xb1, 0x9e, 0x40, 0x69, 0x74, 0xa1, 0x2d, 0x14, 0xa0,
+ 0x23, 0xca, 0x54, 0xd5, 0x9c, 0xa1, 0x6e, 0x62, 0xe0, 0x6c, 0x26, 0x8b,
+ 0xc0, 0x93, 0x59, 0xcb, 0xd9, 0x7a, 0x95, 0x05, 0xe8, 0xd1, 0x15, 0xa8,
+};
+static const unsigned char kat4211_addinpr1[] = {0};
+static const unsigned char kat4211_entropyinpr2[] = {
+ 0x65, 0x60, 0xeb, 0xfe, 0x6f, 0x49, 0x9b, 0xaf, 0x9e, 0x98, 0xed, 0xdf,
+ 0xb1, 0x87, 0xd3, 0x4a, 0x8a, 0x3a, 0xba, 0xfe, 0xbd, 0x54, 0x18, 0x1c,
+ 0xd1, 0x01, 0xf0, 0x3a, 0x51, 0x84, 0x24, 0x96, 0x0d, 0xd4, 0x5d, 0x40,
+ 0x0a, 0x37, 0x7d, 0x66, 0x7c, 0x02, 0xb8, 0xf6, 0x00, 0x4a, 0x27, 0x4d,
+};
+static const unsigned char kat4211_addinpr2[] = {0};
+static const unsigned char kat4211_retbits[] = {
+ 0xaf, 0xd2, 0x81, 0x14, 0x1c, 0x7c, 0x49, 0x42, 0x45, 0x34, 0x77, 0xd9,
+ 0xf9, 0xff, 0x78, 0x02, 0x50, 0xcc, 0x32, 0xcc, 0xda, 0x93, 0x54, 0x15,
+ 0x2c, 0xb6, 0x50, 0x2e, 0x49, 0xb1, 0xe0, 0xe2, 0xb3, 0x19, 0x65, 0xc9,
+ 0x39, 0xe7, 0x6b, 0x02, 0x92, 0x21, 0x93, 0x58, 0x2e, 0x35, 0x3d, 0xcf,
+ 0xe0, 0x9e, 0x46, 0x29, 0xa3, 0xfe, 0xbe, 0x40, 0x12, 0xca, 0x39, 0x08,
+ 0x79, 0x8a, 0x20, 0xd9,
+};
+static const struct drbg_kat_pr_true kat4211_t = {
+ 10, kat4211_entropyin, kat4211_nonce, kat4211_persstr,
+ kat4211_entropyinpr1, kat4211_addinpr1, kat4211_entropyinpr2,
+ kat4211_addinpr2, kat4211_retbits
+};
+static const struct drbg_kat kat4211 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4211_t
+};
+
+static const unsigned char kat4212_entropyin[] = {
+ 0x1a, 0xfa, 0x92, 0xb7, 0x9f, 0x80, 0xcb, 0x70, 0x87, 0xb3, 0x05, 0x79,
+ 0xf1, 0x86, 0x52, 0xeb, 0x52, 0x04, 0x03, 0x98, 0x29, 0x6e, 0xbc, 0xbf,
+ 0x0b, 0x73, 0x0f, 0x29, 0x8f, 0x1a, 0xc8, 0x37, 0x49, 0x52, 0x3f, 0xcc,
+ 0x87, 0x4c, 0x07, 0x61, 0xa2, 0xbd, 0x39, 0x03, 0x2d, 0x1d, 0x0f, 0xf2,
+};
+static const unsigned char kat4212_nonce[] = {0};
+static const unsigned char kat4212_persstr[] = {0};
+static const unsigned char kat4212_entropyinpr1[] = {
+ 0x0a, 0x90, 0xcd, 0xe5, 0x3e, 0x8e, 0x99, 0x57, 0xa4, 0x33, 0x2d, 0x86,
+ 0x54, 0xe7, 0xd4, 0x97, 0x4e, 0x5a, 0xca, 0xd0, 0x16, 0x30, 0x8c, 0x4b,
+ 0x2b, 0x97, 0x29, 0x4f, 0xdd, 0xbd, 0xce, 0xf5, 0x2e, 0xeb, 0x13, 0x8f,
+ 0x4a, 0xea, 0x8f, 0xc8, 0x87, 0x31, 0xd4, 0x1d, 0x2d, 0x90, 0xed, 0xb0,
+};
+static const unsigned char kat4212_addinpr1[] = {0};
+static const unsigned char kat4212_entropyinpr2[] = {
+ 0xc7, 0xa4, 0x1f, 0xec, 0xb6, 0xdd, 0x8d, 0x2f, 0x52, 0xfd, 0xb1, 0x7f,
+ 0x1d, 0x36, 0x8e, 0x38, 0x4b, 0x2c, 0x0d, 0x66, 0x69, 0xdf, 0x40, 0x32,
+ 0xb0, 0x3f, 0xbe, 0xc3, 0x8f, 0x8c, 0xf5, 0x73, 0xb8, 0xc5, 0x44, 0x3a,
+ 0x62, 0xe0, 0x4c, 0x7a, 0xaa, 0xbf, 0x86, 0x59, 0xb2, 0xa5, 0x5f, 0xf8,
+};
+static const unsigned char kat4212_addinpr2[] = {0};
+static const unsigned char kat4212_retbits[] = {
+ 0x7f, 0xe4, 0x11, 0x70, 0xd1, 0xe4, 0x40, 0x96, 0x93, 0x78, 0xfa, 0xd5,
+ 0xc9, 0xbb, 0x0e, 0x7b, 0x82, 0xb9, 0xfc, 0x5f, 0x7a, 0x27, 0x0f, 0x93,
+ 0xfc, 0x4f, 0x29, 0xc2, 0xc7, 0x04, 0x06, 0x18, 0xbd, 0x31, 0xb2, 0x15,
+ 0xe8, 0x7f, 0x2d, 0xe4, 0x83, 0x17, 0x2f, 0x87, 0xe9, 0x48, 0x42, 0xfe,
+ 0x41, 0x39, 0x12, 0x00, 0xd1, 0x83, 0x1c, 0xeb, 0x1a, 0xb6, 0xdb, 0xc6,
+ 0x1f, 0xc2, 0xcf, 0xd6,
+};
+static const struct drbg_kat_pr_true kat4212_t = {
+ 11, kat4212_entropyin, kat4212_nonce, kat4212_persstr,
+ kat4212_entropyinpr1, kat4212_addinpr1, kat4212_entropyinpr2,
+ kat4212_addinpr2, kat4212_retbits
+};
+static const struct drbg_kat kat4212 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4212_t
+};
+
+static const unsigned char kat4213_entropyin[] = {
+ 0xd3, 0x41, 0x85, 0xa9, 0x6f, 0x30, 0xca, 0x80, 0x67, 0x97, 0x0f, 0x89,
+ 0x5d, 0x8e, 0x0d, 0x04, 0xed, 0x25, 0xc5, 0x54, 0x86, 0xf4, 0xc9, 0xea,
+ 0x35, 0xd3, 0x28, 0xde, 0x49, 0xfe, 0x81, 0xe7, 0x72, 0x33, 0x44, 0x45,
+ 0xf2, 0xac, 0x37, 0x6c, 0x53, 0x03, 0x6f, 0x2f, 0xe6, 0x2c, 0x70, 0x0f,
+};
+static const unsigned char kat4213_nonce[] = {0};
+static const unsigned char kat4213_persstr[] = {0};
+static const unsigned char kat4213_entropyinpr1[] = {
+ 0xe2, 0xb6, 0xe3, 0x76, 0x24, 0xbf, 0xb3, 0xc9, 0x28, 0xa2, 0x9b, 0x4a,
+ 0x0e, 0x47, 0x97, 0xd0, 0x52, 0x67, 0xc2, 0x63, 0xcb, 0xda, 0x6c, 0x4f,
+ 0x65, 0x23, 0xac, 0x60, 0xec, 0x7c, 0xd6, 0xa0, 0x1d, 0x9b, 0x1f, 0xc8,
+ 0x3d, 0x47, 0x55, 0x84, 0x38, 0xf8, 0xb5, 0xce, 0x60, 0x15, 0xff, 0x24,
+};
+static const unsigned char kat4213_addinpr1[] = {0};
+static const unsigned char kat4213_entropyinpr2[] = {
+ 0xaf, 0xa5, 0xa7, 0xbf, 0xbc, 0x64, 0x8f, 0x7a, 0xa7, 0xeb, 0xa3, 0x5f,
+ 0x73, 0xce, 0xb5, 0xf3, 0x2f, 0xe4, 0x81, 0x0a, 0x76, 0x5b, 0x89, 0x6b,
+ 0x9f, 0x93, 0x82, 0xec, 0xee, 0xd8, 0xf9, 0xfa, 0xc7, 0x9c, 0x80, 0x74,
+ 0x26, 0x88, 0x25, 0xff, 0x88, 0x53, 0xb4, 0x61, 0x98, 0x18, 0x65, 0x03,
+};
+static const unsigned char kat4213_addinpr2[] = {0};
+static const unsigned char kat4213_retbits[] = {
+ 0xfc, 0xca, 0x7e, 0x16, 0xa7, 0xbd, 0x24, 0x4e, 0xdd, 0x20, 0xaa, 0xbe,
+ 0xd0, 0x19, 0x74, 0xbe, 0x77, 0xd3, 0x51, 0xa2, 0x80, 0x51, 0xe1, 0x87,
+ 0x4c, 0xe7, 0xfc, 0x4b, 0x39, 0xa5, 0x25, 0x95, 0x95, 0xf3, 0x6f, 0xbf,
+ 0x9b, 0xfe, 0x2f, 0x87, 0x52, 0x12, 0x52, 0xab, 0xed, 0xb6, 0xa3, 0xcb,
+ 0xff, 0xfd, 0xe2, 0x37, 0xc1, 0x2a, 0x63, 0x1d, 0xaf, 0x38, 0x04, 0x74,
+ 0x56, 0x95, 0x06, 0x7b,
+};
+static const struct drbg_kat_pr_true kat4213_t = {
+ 12, kat4213_entropyin, kat4213_nonce, kat4213_persstr,
+ kat4213_entropyinpr1, kat4213_addinpr1, kat4213_entropyinpr2,
+ kat4213_addinpr2, kat4213_retbits
+};
+static const struct drbg_kat kat4213 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4213_t
+};
+
+static const unsigned char kat4214_entropyin[] = {
+ 0x15, 0xa7, 0xf6, 0x29, 0x89, 0x50, 0xb7, 0xa4, 0xd4, 0xdd, 0x1a, 0x3e,
+ 0xe3, 0xf6, 0x01, 0xad, 0x6c, 0x92, 0xc6, 0xbf, 0x65, 0xb6, 0x6d, 0x80,
+ 0xe7, 0x4e, 0xa0, 0x0d, 0x45, 0xea, 0xf7, 0xc6, 0xb7, 0xcf, 0xb4, 0x06,
+ 0xfc, 0x24, 0xc0, 0xfb, 0x74, 0x69, 0x76, 0x4c, 0xcf, 0xac, 0xca, 0x7c,
+};
+static const unsigned char kat4214_nonce[] = {0};
+static const unsigned char kat4214_persstr[] = {0};
+static const unsigned char kat4214_entropyinpr1[] = {
+ 0x6b, 0x7f, 0x56, 0x0f, 0x76, 0x84, 0xda, 0x3a, 0xc2, 0x48, 0xcf, 0x5d,
+ 0xc6, 0x58, 0xc1, 0x82, 0x05, 0xe9, 0x7e, 0x02, 0x48, 0x68, 0x68, 0x02,
+ 0x47, 0x03, 0x18, 0x0b, 0xa1, 0xd4, 0x73, 0xa7, 0x1c, 0xa2, 0xe0, 0x2f,
+ 0xed, 0xbd, 0xae, 0x12, 0xfa, 0x2f, 0x30, 0x40, 0xd7, 0x84, 0x90, 0x62,
+};
+static const unsigned char kat4214_addinpr1[] = {0};
+static const unsigned char kat4214_entropyinpr2[] = {
+ 0xdc, 0xbd, 0xe6, 0xe2, 0xd1, 0xb1, 0x97, 0x4e, 0x89, 0x5b, 0x54, 0x0f,
+ 0xd2, 0x07, 0x78, 0xa2, 0x66, 0x8a, 0xca, 0x9b, 0x56, 0x34, 0x26, 0x6f,
+ 0x32, 0xe3, 0x93, 0x5b, 0x78, 0x3d, 0xa9, 0x1b, 0xcd, 0x6d, 0x45, 0xb0,
+ 0x86, 0x4c, 0x1a, 0xf9, 0x8e, 0xef, 0xa9, 0x45, 0xd6, 0xab, 0x15, 0x4d,
+};
+static const unsigned char kat4214_addinpr2[] = {0};
+static const unsigned char kat4214_retbits[] = {
+ 0x2a, 0x26, 0x49, 0x6a, 0xb8, 0x69, 0x2b, 0x33, 0x5d, 0x9e, 0xa3, 0x7f,
+ 0x4d, 0xaa, 0x96, 0xa4, 0xf3, 0x60, 0xd0, 0x58, 0x37, 0xcf, 0xf9, 0x9e,
+ 0xcd, 0x93, 0x99, 0xab, 0xeb, 0x2e, 0x5f, 0x69, 0xed, 0xe5, 0x16, 0x30,
+ 0xcb, 0x16, 0xd6, 0x28, 0x7c, 0x51, 0x83, 0x57, 0x55, 0xa3, 0x1e, 0xb6,
+ 0xff, 0x6b, 0x8c, 0x49, 0xc3, 0xe8, 0x94, 0x42, 0xe5, 0xdf, 0x1f, 0xb4,
+ 0x08, 0xb1, 0x15, 0x70,
+};
+static const struct drbg_kat_pr_true kat4214_t = {
+ 13, kat4214_entropyin, kat4214_nonce, kat4214_persstr,
+ kat4214_entropyinpr1, kat4214_addinpr1, kat4214_entropyinpr2,
+ kat4214_addinpr2, kat4214_retbits
+};
+static const struct drbg_kat kat4214 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4214_t
+};
+
+static const unsigned char kat4215_entropyin[] = {
+ 0x5a, 0x0b, 0x8e, 0x20, 0x7b, 0x55, 0xde, 0xdb, 0x2e, 0x7c, 0x3b, 0x62,
+ 0xbe, 0x91, 0xb4, 0xdf, 0xcc, 0x3c, 0x42, 0x25, 0x5d, 0xac, 0x29, 0x3e,
+ 0xd8, 0xa9, 0x3b, 0xc0, 0x18, 0x04, 0x71, 0x40, 0x11, 0x62, 0xf8, 0x33,
+ 0x7d, 0xc0, 0x0d, 0x6b, 0x10, 0xee, 0x03, 0x5f, 0x2f, 0x3f, 0x31, 0xf1,
+};
+static const unsigned char kat4215_nonce[] = {0};
+static const unsigned char kat4215_persstr[] = {0};
+static const unsigned char kat4215_entropyinpr1[] = {
+ 0x1e, 0x51, 0x91, 0xf1, 0x8e, 0x3c, 0x04, 0x9b, 0x3a, 0xa3, 0x04, 0x60,
+ 0x4a, 0x42, 0xb1, 0x3e, 0x87, 0xb6, 0x1a, 0xb8, 0x08, 0xa1, 0xf2, 0x49,
+ 0xd6, 0x70, 0xa1, 0x5f, 0x21, 0x86, 0x24, 0x84, 0x59, 0x9e, 0x53, 0x13,
+ 0xe3, 0x74, 0x43, 0xaa, 0x06, 0xcc, 0x80, 0xd4, 0xdf, 0x78, 0x88, 0xa2,
+};
+static const unsigned char kat4215_addinpr1[] = {0};
+static const unsigned char kat4215_entropyinpr2[] = {
+ 0xa0, 0x44, 0x35, 0xfa, 0xb8, 0xcf, 0xfa, 0xae, 0xf3, 0x4f, 0x67, 0x38,
+ 0xf2, 0x68, 0x2a, 0xde, 0xf4, 0x79, 0x0e, 0x8e, 0x26, 0x55, 0xd5, 0x94,
+ 0x3b, 0xd5, 0x37, 0x00, 0x09, 0xed, 0xe9, 0x9a, 0x6d, 0xa3, 0xc9, 0xca,
+ 0x4d, 0xc7, 0x10, 0x5a, 0x13, 0x52, 0xf9, 0xbd, 0x29, 0x5b, 0xe4, 0x19,
+};
+static const unsigned char kat4215_addinpr2[] = {0};
+static const unsigned char kat4215_retbits[] = {
+ 0x31, 0xb0, 0x23, 0x44, 0x31, 0xf4, 0xff, 0x22, 0xf0, 0xc1, 0xf5, 0xc2,
+ 0x20, 0xa5, 0x89, 0x0c, 0x7e, 0xfa, 0xbc, 0x06, 0x97, 0x43, 0x57, 0xa1,
+ 0xab, 0x8a, 0x79, 0xd1, 0xca, 0xa6, 0x6b, 0x46, 0xb6, 0x2f, 0x0b, 0x5a,
+ 0x5b, 0x0d, 0x80, 0x10, 0x92, 0x3d, 0xd8, 0x6c, 0xed, 0x2f, 0x03, 0x9e,
+ 0xff, 0xa2, 0x03, 0x16, 0x19, 0xaa, 0xfb, 0xb3, 0xd7, 0xdc, 0x93, 0x62,
+ 0xef, 0x04, 0xbd, 0xf3,
+};
+static const struct drbg_kat_pr_true kat4215_t = {
+ 14, kat4215_entropyin, kat4215_nonce, kat4215_persstr,
+ kat4215_entropyinpr1, kat4215_addinpr1, kat4215_entropyinpr2,
+ kat4215_addinpr2, kat4215_retbits
+};
+static const struct drbg_kat kat4215 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4215_t
+};
+
+static const unsigned char kat4216_entropyin[] = {
+ 0x88, 0x40, 0xdc, 0x37, 0xe1, 0x39, 0x89, 0xf5, 0xe0, 0x78, 0xd8, 0xf2,
+ 0xa2, 0x30, 0x71, 0xed, 0x0a, 0x66, 0x59, 0x54, 0xab, 0xe9, 0x07, 0x97,
+ 0x98, 0x94, 0xbb, 0xea, 0x43, 0xd4, 0x9d, 0x93, 0x9f, 0xb0, 0xf9, 0xb7,
+ 0xfa, 0x91, 0x72, 0xb6, 0x71, 0xce, 0xad, 0x56, 0xce, 0x16, 0xfc, 0xe5,
+};
+static const unsigned char kat4216_nonce[] = {0};
+static const unsigned char kat4216_persstr[] = {0};
+static const unsigned char kat4216_entropyinpr1[] = {
+ 0x14, 0x7e, 0x44, 0xb2, 0xe0, 0x34, 0x48, 0x6f, 0xac, 0xeb, 0xb0, 0x67,
+ 0xe6, 0xfd, 0xd7, 0xfd, 0x36, 0xbb, 0x86, 0xaf, 0x6f, 0xfd, 0xdd, 0xe2,
+ 0xef, 0xf0, 0x81, 0xab, 0x8b, 0x8f, 0x08, 0xe1, 0x36, 0x37, 0x78, 0x07,
+ 0xdb, 0x26, 0x36, 0xeb, 0x3a, 0xaa, 0x3f, 0xa8, 0xac, 0x0c, 0x0d, 0x04,
+};
+static const unsigned char kat4216_addinpr1[] = {
+ 0x4a, 0x04, 0xa2, 0x1f, 0xc0, 0xf2, 0xb8, 0xa3, 0x2d, 0x69, 0x56, 0xff,
+ 0x95, 0x5d, 0x2f, 0x2e, 0xa5, 0x4a, 0x36, 0xd3, 0x7f, 0x0b, 0x92, 0x7a,
+ 0x46, 0x16, 0x5a, 0xff, 0xcc, 0xc6, 0x84, 0x27, 0xa9, 0x1c, 0x07, 0x66,
+ 0x56, 0x86, 0x95, 0x47, 0x4c, 0xe7, 0x83, 0xfe, 0xfd, 0xf2, 0x4c, 0xc8,
+};
+static const unsigned char kat4216_entropyinpr2[] = {
+ 0xbb, 0x43, 0x82, 0x0b, 0x3f, 0x4a, 0xa1, 0xff, 0xeb, 0x0f, 0xe5, 0x51,
+ 0x26, 0xe0, 0x69, 0xf1, 0x7f, 0xbc, 0xd0, 0xd5, 0xa8, 0x30, 0x7b, 0xba,
+ 0x60, 0x55, 0x2f, 0x0e, 0x40, 0x89, 0xa7, 0x28, 0x33, 0xf2, 0x1c, 0x34,
+ 0x1e, 0x09, 0x12, 0x93, 0x95, 0x85, 0xa6, 0x43, 0xbb, 0x93, 0x8f, 0xef,
+};
+static const unsigned char kat4216_addinpr2[] = {
+ 0x91, 0xef, 0x75, 0x10, 0x04, 0x5d, 0x2c, 0x9a, 0x95, 0xec, 0x16, 0x98,
+ 0xce, 0xa9, 0x3a, 0x63, 0xcb, 0xdb, 0xc9, 0xb2, 0x3d, 0x2f, 0xc4, 0xbc,
+ 0x84, 0x08, 0x38, 0x0d, 0xe7, 0xec, 0xf4, 0x47, 0x8e, 0x85, 0x2c, 0x30,
+ 0xb5, 0x3a, 0x6f, 0x61, 0xe3, 0x34, 0xdb, 0xc1, 0x04, 0x0c, 0x21, 0x3a,
+};
+static const unsigned char kat4216_retbits[] = {
+ 0x25, 0x02, 0x7b, 0x15, 0xa3, 0x46, 0xae, 0xd2, 0x3a, 0x05, 0xc6, 0x87,
+ 0x98, 0x32, 0xb2, 0x5b, 0xcc, 0xa7, 0x3a, 0x80, 0x41, 0x18, 0x58, 0x25,
+ 0xfc, 0x81, 0x37, 0xc5, 0xbe, 0x64, 0x59, 0x33, 0xda, 0xde, 0xf1, 0x11,
+ 0xc0, 0x90, 0xc2, 0x40, 0x9c, 0x1e, 0x68, 0x68, 0x5a, 0xac, 0x21, 0x28,
+ 0x1e, 0x37, 0xea, 0x4e, 0x59, 0x23, 0x62, 0x82, 0x56, 0xd0, 0x59, 0xe8,
+ 0xec, 0xeb, 0x82, 0xbb,
+};
+static const struct drbg_kat_pr_true kat4216_t = {
+ 0, kat4216_entropyin, kat4216_nonce, kat4216_persstr,
+ kat4216_entropyinpr1, kat4216_addinpr1, kat4216_entropyinpr2,
+ kat4216_addinpr2, kat4216_retbits
+};
+static const struct drbg_kat kat4216 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4216_t
+};
+
+static const unsigned char kat4217_entropyin[] = {
+ 0xeb, 0x68, 0xdf, 0x19, 0xfa, 0x21, 0xc7, 0xa5, 0xea, 0xa0, 0x40, 0x72,
+ 0xa2, 0xd9, 0xfa, 0xc3, 0x05, 0x87, 0xf6, 0x36, 0x77, 0xbd, 0xa4, 0x50,
+ 0x00, 0x09, 0x60, 0xfe, 0x6e, 0x22, 0xf0, 0x37, 0x32, 0xca, 0xf2, 0x08,
+ 0x66, 0x11, 0x85, 0xad, 0x2a, 0xf4, 0xf6, 0x42, 0x99, 0xcb, 0x33, 0x31,
+};
+static const unsigned char kat4217_nonce[] = {0};
+static const unsigned char kat4217_persstr[] = {0};
+static const unsigned char kat4217_entropyinpr1[] = {
+ 0x74, 0x6c, 0x45, 0x3d, 0xc7, 0x93, 0x20, 0xdb, 0xb5, 0x65, 0x41, 0x4b,
+ 0x2a, 0x35, 0x48, 0xa4, 0xd1, 0x6f, 0xb5, 0x94, 0x82, 0xa3, 0xaa, 0xc7,
+ 0xfd, 0x1b, 0x64, 0xb3, 0x9f, 0xa3, 0x89, 0x3d, 0xfe, 0x66, 0x35, 0xa0,
+ 0xb8, 0x90, 0xc2, 0x3a, 0xb9, 0xd6, 0x1c, 0x44, 0x86, 0xf0, 0x0f, 0x82,
+};
+static const unsigned char kat4217_addinpr1[] = {
+ 0xe1, 0x32, 0x2e, 0xf6, 0xa0, 0x6e, 0x84, 0x12, 0x07, 0x7a, 0x3d, 0xc4,
+ 0x33, 0xd8, 0xc1, 0x91, 0xe1, 0x20, 0xc0, 0xee, 0x8a, 0xd3, 0x44, 0xac,
+ 0x22, 0x62, 0x43, 0x05, 0x01, 0x31, 0xd9, 0xb1, 0x85, 0xf7, 0xea, 0x69,
+ 0xd3, 0x0a, 0x27, 0xd2, 0x0d, 0x73, 0x89, 0x69, 0x8c, 0xa4, 0xb1, 0x4a,
+};
+static const unsigned char kat4217_entropyinpr2[] = {
+ 0xb3, 0x6c, 0x9e, 0x30, 0xdb, 0xd3, 0x9a, 0x0b, 0xcf, 0x2d, 0x3f, 0x32,
+ 0x7e, 0xdb, 0x51, 0x79, 0x05, 0x7d, 0x85, 0x68, 0x16, 0x67, 0x76, 0x8d,
+ 0xac, 0x6e, 0x0b, 0xd9, 0xcc, 0xa4, 0x78, 0x95, 0x65, 0xd6, 0x72, 0x4f,
+ 0x19, 0xd3, 0x8b, 0x23, 0xf0, 0xcf, 0xc2, 0xe7, 0x38, 0x35, 0x72, 0x48,
+};
+static const unsigned char kat4217_addinpr2[] = {
+ 0x13, 0x0a, 0xe4, 0x11, 0x3e, 0x31, 0xa9, 0x6c, 0xde, 0x97, 0xe2, 0xac,
+ 0xd1, 0xab, 0x8e, 0xd4, 0x2a, 0x4e, 0x55, 0xce, 0x65, 0x52, 0xd5, 0x61,
+ 0xfe, 0xc1, 0x6c, 0x33, 0xdd, 0x90, 0x3f, 0xda, 0x23, 0x98, 0x3a, 0x82,
+ 0x00, 0x8c, 0x6e, 0x7f, 0xe4, 0x7a, 0x5e, 0x1c, 0x97, 0x73, 0x7b, 0xf5,
+};
+static const unsigned char kat4217_retbits[] = {
+ 0x99, 0xde, 0x1f, 0x10, 0x9f, 0x49, 0xc2, 0x8c, 0x55, 0xcd, 0x28, 0xc4,
+ 0xf9, 0xb7, 0x77, 0x20, 0xaa, 0x44, 0x6c, 0xe7, 0xec, 0x72, 0x46, 0xfe,
+ 0x96, 0xa5, 0x81, 0x9e, 0x15, 0xfd, 0xdd, 0xe7, 0x3f, 0x6c, 0x7f, 0xcc,
+ 0x95, 0xd5, 0x43, 0xb7, 0x03, 0xea, 0x56, 0xe6, 0x1b, 0x10, 0xf3, 0x63,
+ 0xee, 0xf8, 0xbf, 0x6b, 0x3a, 0x86, 0x59, 0x01, 0x3b, 0x56, 0x1f, 0xa4,
+ 0xab, 0xb6, 0xd4, 0xbb,
+};
+static const struct drbg_kat_pr_true kat4217_t = {
+ 1, kat4217_entropyin, kat4217_nonce, kat4217_persstr,
+ kat4217_entropyinpr1, kat4217_addinpr1, kat4217_entropyinpr2,
+ kat4217_addinpr2, kat4217_retbits
+};
+static const struct drbg_kat kat4217 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4217_t
+};
+
+static const unsigned char kat4218_entropyin[] = {
+ 0x1a, 0xb8, 0x74, 0xe6, 0x5e, 0xba, 0xe4, 0x92, 0xf3, 0x7b, 0xc4, 0xd9,
+ 0x8b, 0x4d, 0x49, 0xcd, 0x1b, 0x72, 0xcf, 0x01, 0xc8, 0xad, 0x3c, 0x22,
+ 0xa6, 0xeb, 0x9e, 0xa0, 0xc7, 0x86, 0x33, 0xa8, 0x2c, 0x6a, 0xa2, 0x0f,
+ 0xba, 0x2b, 0x25, 0x3e, 0x72, 0x82, 0xed, 0xd1, 0xf7, 0xe1, 0x88, 0xff,
+};
+static const unsigned char kat4218_nonce[] = {0};
+static const unsigned char kat4218_persstr[] = {0};
+static const unsigned char kat4218_entropyinpr1[] = {
+ 0x83, 0xf4, 0xa2, 0x36, 0x06, 0x98, 0x6b, 0x63, 0x66, 0xf5, 0xd2, 0x3e,
+ 0x9d, 0x22, 0x70, 0x9e, 0xc0, 0x77, 0xe0, 0x04, 0x40, 0x83, 0x5c, 0xf9,
+ 0x6a, 0xdf, 0x29, 0xca, 0x90, 0x22, 0xe0, 0x1f, 0x3e, 0x9e, 0xf3, 0x98,
+ 0x83, 0x4e, 0x4b, 0xab, 0x35, 0xd7, 0x98, 0xb6, 0x52, 0xd1, 0x69, 0xc6,
+};
+static const unsigned char kat4218_addinpr1[] = {
+ 0x9d, 0x76, 0x90, 0xe0, 0xac, 0xd4, 0x6a, 0xcd, 0x29, 0x4b, 0x89, 0xab,
+ 0xd9, 0x7e, 0x63, 0xed, 0xb2, 0x74, 0xa7, 0x24, 0xb0, 0x47, 0xda, 0x60,
+ 0x7d, 0x63, 0x51, 0x87, 0xb2, 0x13, 0x06, 0x65, 0x89, 0xe5, 0x29, 0x35,
+ 0x02, 0x2e, 0x92, 0x8f, 0xab, 0xd3, 0x92, 0x7d, 0xdb, 0xea, 0x74, 0xb0,
+};
+static const unsigned char kat4218_entropyinpr2[] = {
+ 0x45, 0xc0, 0x9d, 0xd0, 0xe5, 0xaf, 0x16, 0x1c, 0xa1, 0x00, 0x72, 0x7f,
+ 0x74, 0x12, 0xee, 0x7e, 0x50, 0x01, 0x87, 0xdf, 0x23, 0x71, 0x87, 0x0c,
+ 0xa0, 0x79, 0xef, 0x1e, 0x1a, 0x30, 0xbb, 0x2c, 0x64, 0x9e, 0x63, 0xbf,
+ 0x68, 0x4b, 0x10, 0xb1, 0xb6, 0xde, 0x06, 0x30, 0x8a, 0xca, 0x48, 0xaf,
+};
+static const unsigned char kat4218_addinpr2[] = {
+ 0x2c, 0x08, 0xa6, 0x74, 0x16, 0x88, 0xb7, 0xd1, 0xc9, 0x89, 0xc7, 0x78,
+ 0xc3, 0x0f, 0xbd, 0xc4, 0x4b, 0xe8, 0x8a, 0x4a, 0x48, 0x23, 0xd7, 0x4f,
+ 0x80, 0x39, 0xed, 0x1b, 0xac, 0x9a, 0x90, 0xff, 0x50, 0x62, 0xbb, 0x7e,
+ 0x39, 0xee, 0xd4, 0x11, 0xd8, 0xa1, 0x8f, 0xcc, 0xc3, 0xf3, 0x4f, 0x6b,
+};
+static const unsigned char kat4218_retbits[] = {
+ 0x7b, 0x83, 0x5f, 0x8a, 0x8c, 0xc6, 0xe9, 0xe6, 0xbd, 0xa1, 0xcb, 0x55,
+ 0x7f, 0x12, 0xd8, 0xf3, 0xac, 0xfa, 0x59, 0xd8, 0x80, 0x24, 0xb6, 0x4a,
+ 0xd2, 0x3b, 0x49, 0x06, 0x49, 0x2c, 0xd3, 0x08, 0xdc, 0x82, 0xc0, 0x13,
+ 0xb8, 0xbb, 0xdb, 0xd1, 0x01, 0x5e, 0xe5, 0x14, 0x47, 0x2a, 0xc8, 0x14,
+ 0x85, 0x0f, 0xf6, 0x0a, 0x48, 0x21, 0xcc, 0xf4, 0xa9, 0x1b, 0xf4, 0x9d,
+ 0xf4, 0xde, 0xda, 0x68,
+};
+static const struct drbg_kat_pr_true kat4218_t = {
+ 2, kat4218_entropyin, kat4218_nonce, kat4218_persstr,
+ kat4218_entropyinpr1, kat4218_addinpr1, kat4218_entropyinpr2,
+ kat4218_addinpr2, kat4218_retbits
+};
+static const struct drbg_kat kat4218 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4218_t
+};
+
+static const unsigned char kat4219_entropyin[] = {
+ 0x7f, 0x74, 0xe7, 0x39, 0x5e, 0xf4, 0xee, 0xb0, 0xfa, 0x65, 0xd6, 0x23,
+ 0xbb, 0xdd, 0xaa, 0xd0, 0xc4, 0xba, 0x1d, 0xc8, 0x30, 0x09, 0xed, 0x08,
+ 0xb9, 0xb0, 0x65, 0x85, 0x97, 0x9e, 0x9f, 0x87, 0x35, 0x7a, 0x09, 0x9a,
+ 0x4e, 0xbd, 0x19, 0x78, 0x0e, 0x22, 0x18, 0x12, 0x77, 0x28, 0xae, 0xd1,
+};
+static const unsigned char kat4219_nonce[] = {0};
+static const unsigned char kat4219_persstr[] = {0};
+static const unsigned char kat4219_entropyinpr1[] = {
+ 0x2b, 0xc6, 0xf9, 0x60, 0x2e, 0x10, 0xc8, 0x9d, 0x31, 0xa7, 0xa7, 0x11,
+ 0x70, 0xf8, 0x17, 0x99, 0x6b, 0x84, 0xbe, 0x5d, 0xbe, 0xdb, 0x69, 0xc8,
+ 0x30, 0x8f, 0x35, 0xdf, 0x61, 0xd2, 0x3a, 0xcb, 0x9c, 0x1d, 0xe4, 0xa2,
+ 0x46, 0xd4, 0xf5, 0xb6, 0x72, 0xda, 0xb9, 0x3e, 0xb9, 0x53, 0x38, 0xbf,
+};
+static const unsigned char kat4219_addinpr1[] = {
+ 0xda, 0x55, 0xe4, 0x34, 0x57, 0x99, 0xa4, 0xf0, 0x39, 0x6a, 0x7c, 0x3c,
+ 0xd8, 0xf6, 0x1d, 0x1f, 0xf7, 0xff, 0xa7, 0x35, 0x8f, 0x83, 0x4b, 0x8a,
+ 0xac, 0x27, 0xb5, 0x2c, 0x7e, 0xf3, 0x9d, 0x15, 0xc0, 0x57, 0x9f, 0x29,
+ 0x8f, 0x7c, 0xdb, 0x47, 0x47, 0xe9, 0xfd, 0x83, 0xa4, 0xb9, 0x2c, 0xd2,
+};
+static const unsigned char kat4219_entropyinpr2[] = {
+ 0x59, 0x7f, 0xe2, 0x1d, 0xe1, 0xc3, 0x0b, 0xe4, 0x55, 0x32, 0xd2, 0x56,
+ 0xf3, 0x35, 0x3d, 0xde, 0xa1, 0xba, 0x05, 0x74, 0xb2, 0x0a, 0x8f, 0xd5,
+ 0x42, 0x2c, 0x1d, 0x81, 0x90, 0x53, 0xfa, 0xdd, 0x4e, 0xe8, 0x87, 0xa5,
+ 0x6d, 0x37, 0x50, 0x68, 0x2b, 0xd8, 0xcb, 0xb2, 0x1b, 0xe8, 0xa5, 0xf6,
+};
+static const unsigned char kat4219_addinpr2[] = {
+ 0x9b, 0x3c, 0x12, 0x3d, 0xec, 0x44, 0x02, 0xe9, 0x73, 0xe1, 0xea, 0x0b,
+ 0x9b, 0x12, 0x31, 0x1a, 0x91, 0xd1, 0x20, 0x80, 0x74, 0xef, 0xd4, 0x5b,
+ 0x2b, 0xae, 0x3f, 0x28, 0x6b, 0x9e, 0x9d, 0x51, 0x62, 0xbb, 0x3a, 0xb5,
+ 0xfc, 0xe4, 0xee, 0xce, 0xbc, 0x57, 0x8e, 0x58, 0xf3, 0x42, 0x2a, 0x03,
+};
+static const unsigned char kat4219_retbits[] = {
+ 0x88, 0xa5, 0x59, 0x6f, 0x7b, 0x93, 0x93, 0x2a, 0x59, 0xc3, 0x8a, 0x4f,
+ 0x51, 0xfa, 0x2d, 0x58, 0xf1, 0x44, 0x4f, 0x41, 0x2e, 0x67, 0x55, 0x2c,
+ 0xe0, 0x37, 0xb9, 0xd5, 0xe1, 0x17, 0x70, 0x66, 0xfa, 0xb7, 0xd9, 0xb2,
+ 0x16, 0x24, 0xf2, 0x2b, 0xd6, 0x2b, 0x30, 0x10, 0x33, 0x06, 0x61, 0xc7,
+ 0xd5, 0x4f, 0xbf, 0x89, 0x49, 0xe7, 0xf0, 0x43, 0x57, 0x50, 0x26, 0x2c,
+ 0x81, 0x04, 0x3f, 0x1c,
+};
+static const struct drbg_kat_pr_true kat4219_t = {
+ 3, kat4219_entropyin, kat4219_nonce, kat4219_persstr,
+ kat4219_entropyinpr1, kat4219_addinpr1, kat4219_entropyinpr2,
+ kat4219_addinpr2, kat4219_retbits
+};
+static const struct drbg_kat kat4219 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4219_t
+};
+
+static const unsigned char kat4220_entropyin[] = {
+ 0x04, 0x20, 0xff, 0x57, 0xea, 0xfa, 0xeb, 0xde, 0xaf, 0xcf, 0x94, 0x59,
+ 0xb2, 0xdd, 0x26, 0x33, 0xd7, 0x44, 0x10, 0xb0, 0xd9, 0x86, 0xd8, 0xaf,
+ 0xb4, 0xea, 0x19, 0x56, 0x9e, 0xa8, 0x50, 0x4b, 0xd5, 0xbe, 0xac, 0xc1,
+ 0x77, 0x02, 0x95, 0x44, 0x02, 0xad, 0xe5, 0xf3, 0x56, 0x75, 0xfb, 0x7b,
+};
+static const unsigned char kat4220_nonce[] = {0};
+static const unsigned char kat4220_persstr[] = {0};
+static const unsigned char kat4220_entropyinpr1[] = {
+ 0x0b, 0xe9, 0x79, 0xde, 0x4a, 0x34, 0x8a, 0x98, 0x8b, 0x23, 0x23, 0xa5,
+ 0x87, 0x4e, 0x3e, 0x1d, 0x13, 0x5b, 0xfc, 0x35, 0x52, 0xa2, 0xb8, 0x4e,
+ 0xbf, 0x89, 0x26, 0x17, 0x61, 0xa2, 0xbf, 0xf8, 0xd1, 0x84, 0x92, 0x29,
+ 0x78, 0xe3, 0x1a, 0x0f, 0x66, 0x44, 0x28, 0x28, 0xa7, 0x69, 0xd6, 0xe9,
+};
+static const unsigned char kat4220_addinpr1[] = {
+ 0x7a, 0xdd, 0x2a, 0x00, 0x11, 0x5a, 0xd8, 0x72, 0x48, 0x74, 0x7e, 0x9e,
+ 0x66, 0x88, 0x74, 0x20, 0x7f, 0xba, 0xce, 0x9a, 0x41, 0x96, 0x18, 0x4e,
+ 0x7d, 0x35, 0x83, 0xd2, 0x25, 0xc1, 0x2b, 0x5a, 0x72, 0x27, 0x80, 0xa6,
+ 0xb6, 0xb5, 0x27, 0x51, 0xcb, 0x2d, 0x30, 0xe7, 0x93, 0x7a, 0xf7, 0x28,
+};
+static const unsigned char kat4220_entropyinpr2[] = {
+ 0x28, 0xe2, 0x18, 0xfe, 0xbd, 0x7e, 0xc5, 0x2f, 0x75, 0xb9, 0xa2, 0xad,
+ 0x5a, 0x0c, 0x5b, 0x40, 0x94, 0x8c, 0xef, 0x3b, 0xa0, 0x0f, 0x9c, 0x19,
+ 0x92, 0xc9, 0x64, 0x58, 0x22, 0xef, 0xf8, 0x91, 0xf2, 0xba, 0x54, 0xdd,
+ 0x87, 0xa1, 0x1c, 0x51, 0x8e, 0xb7, 0x02, 0x72, 0xce, 0x9c, 0xf6, 0x4e,
+};
+static const unsigned char kat4220_addinpr2[] = {
+ 0x68, 0xa0, 0xad, 0x06, 0x11, 0xc9, 0x14, 0x5d, 0x4d, 0xa5, 0xe6, 0xf3,
+ 0x66, 0x85, 0x66, 0x5f, 0x3f, 0xf5, 0x3b, 0x70, 0xf4, 0x3a, 0x09, 0x4c,
+ 0x61, 0x3c, 0x31, 0xf5, 0x33, 0x35, 0xd8, 0xbd, 0x77, 0xe6, 0x07, 0x72,
+ 0x82, 0x37, 0xfe, 0xe6, 0x2f, 0xe6, 0x90, 0xa2, 0x68, 0x34, 0x89, 0x5b,
+};
+static const unsigned char kat4220_retbits[] = {
+ 0xff, 0x84, 0xca, 0x74, 0x06, 0xb8, 0xf3, 0xff, 0x4d, 0x21, 0xc2, 0xc3,
+ 0x2b, 0xd1, 0x81, 0xa3, 0x5f, 0x7c, 0x11, 0x87, 0xb9, 0xa3, 0xd9, 0x5e,
+ 0x93, 0xf7, 0xfc, 0xdd, 0x0c, 0x11, 0x77, 0x3c, 0xd1, 0x7e, 0xf7, 0x5b,
+ 0x6b, 0xb5, 0xae, 0x85, 0x0e, 0x58, 0x56, 0x05, 0x0d, 0x4e, 0x26, 0x7c,
+ 0x78, 0x4b, 0x6b, 0x7c, 0xc8, 0xa0, 0xf3, 0x75, 0x1a, 0xa4, 0x20, 0x5d,
+ 0x70, 0xbf, 0x2a, 0x23,
+};
+static const struct drbg_kat_pr_true kat4220_t = {
+ 4, kat4220_entropyin, kat4220_nonce, kat4220_persstr,
+ kat4220_entropyinpr1, kat4220_addinpr1, kat4220_entropyinpr2,
+ kat4220_addinpr2, kat4220_retbits
+};
+static const struct drbg_kat kat4220 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4220_t
+};
+
+static const unsigned char kat4221_entropyin[] = {
+ 0x05, 0xeb, 0xbc, 0xc9, 0x62, 0x1c, 0xad, 0x62, 0xa7, 0x75, 0x8f, 0x99,
+ 0xa2, 0xf1, 0xaa, 0xad, 0x3e, 0xcc, 0xe9, 0x84, 0x35, 0xc6, 0x04, 0x68,
+ 0xf2, 0xe5, 0x94, 0xad, 0xdc, 0x7c, 0x4d, 0xcb, 0xa7, 0x4f, 0xa0, 0xee,
+ 0xed, 0xf3, 0xa3, 0xd5, 0xf6, 0x18, 0x46, 0x49, 0x53, 0xc0, 0x9f, 0x5f,
+};
+static const unsigned char kat4221_nonce[] = {0};
+static const unsigned char kat4221_persstr[] = {0};
+static const unsigned char kat4221_entropyinpr1[] = {
+ 0x64, 0x6a, 0xc4, 0x9b, 0x7c, 0xd9, 0xb6, 0x97, 0x31, 0xa3, 0xff, 0xeb,
+ 0x97, 0x40, 0x65, 0xa7, 0xf4, 0x8b, 0x22, 0x09, 0x9b, 0xd0, 0x72, 0x94,
+ 0xcf, 0x00, 0x91, 0x95, 0x70, 0x93, 0x0f, 0x6c, 0x47, 0x4a, 0x23, 0x0c,
+ 0x43, 0xe6, 0x0a, 0x63, 0x71, 0xbb, 0xa1, 0x91, 0x20, 0x83, 0x59, 0x87,
+};
+static const unsigned char kat4221_addinpr1[] = {
+ 0xa9, 0x97, 0x76, 0xb0, 0x75, 0x42, 0x2d, 0xca, 0xe6, 0x72, 0xbd, 0xd8,
+ 0x6c, 0x65, 0x08, 0xf9, 0x5b, 0xd7, 0xce, 0x92, 0x8b, 0x0d, 0x52, 0x13,
+ 0x8d, 0xf4, 0x46, 0xe9, 0xf9, 0xf5, 0x07, 0x98, 0xfd, 0x04, 0x0e, 0x6d,
+ 0x1a, 0x8c, 0x13, 0x1c, 0x4b, 0xc8, 0x5e, 0xd3, 0x99, 0x82, 0xf6, 0xe5,
+};
+static const unsigned char kat4221_entropyinpr2[] = {
+ 0xdf, 0xd8, 0xc4, 0xac, 0x10, 0x44, 0xe9, 0xf8, 0xe4, 0x1e, 0x89, 0x0a,
+ 0x3a, 0x0e, 0xac, 0x01, 0x14, 0x4f, 0x58, 0xe7, 0xe8, 0xcb, 0xfb, 0xf8,
+ 0x21, 0x38, 0xad, 0x16, 0x52, 0xa3, 0x0a, 0xb5, 0xbb, 0x9f, 0x2a, 0x25,
+ 0x92, 0x08, 0xd9, 0xa5, 0x51, 0xf0, 0xc1, 0x1f, 0x7c, 0x1d, 0xb6, 0x46,
+};
+static const unsigned char kat4221_addinpr2[] = {
+ 0x97, 0x2a, 0xb0, 0xe6, 0x84, 0xdd, 0xf4, 0xed, 0xf2, 0x03, 0x6c, 0x36,
+ 0x6f, 0xc9, 0x34, 0x63, 0xec, 0xd9, 0xee, 0x39, 0x4e, 0xb8, 0xe9, 0x90,
+ 0x7c, 0x1b, 0x36, 0x47, 0x3c, 0xea, 0xe2, 0x77, 0x59, 0x2c, 0x22, 0x9a,
+ 0xa1, 0x28, 0x7d, 0xf3, 0x70, 0x6f, 0x0e, 0x22, 0x58, 0xdc, 0x18, 0x9f,
+};
+static const unsigned char kat4221_retbits[] = {
+ 0x65, 0xd2, 0x2d, 0x6e, 0xbd, 0xe9, 0x6c, 0xe0, 0x3e, 0x51, 0xce, 0x0e,
+ 0xc6, 0xc6, 0x04, 0x7c, 0x9e, 0x1f, 0x23, 0x2c, 0xc2, 0x6b, 0x86, 0x11,
+ 0xf5, 0x1e, 0xa2, 0xbf, 0x9e, 0x21, 0x24, 0xcc, 0x63, 0x0e, 0x8b, 0xc7,
+ 0x82, 0x96, 0xdb, 0x44, 0x65, 0x93, 0x3b, 0xb7, 0xfa, 0x74, 0x2f, 0xa8,
+ 0x9d, 0x2d, 0x83, 0xbf, 0x52, 0x22, 0x42, 0x84, 0x2b, 0x57, 0x3f, 0x72,
+ 0xe8, 0x2c, 0x8b, 0x5c,
+};
+static const struct drbg_kat_pr_true kat4221_t = {
+ 5, kat4221_entropyin, kat4221_nonce, kat4221_persstr,
+ kat4221_entropyinpr1, kat4221_addinpr1, kat4221_entropyinpr2,
+ kat4221_addinpr2, kat4221_retbits
+};
+static const struct drbg_kat kat4221 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4221_t
+};
+
+static const unsigned char kat4222_entropyin[] = {
+ 0x11, 0x63, 0x75, 0xa1, 0x6f, 0x87, 0x76, 0x7d, 0x23, 0xa6, 0xc4, 0x6c,
+ 0x21, 0xe3, 0x99, 0x5b, 0x6f, 0x09, 0x25, 0xcd, 0x93, 0xce, 0xa8, 0x3a,
+ 0x2e, 0x98, 0x23, 0x77, 0xc3, 0x79, 0x9a, 0xc0, 0x31, 0x69, 0x25, 0x1e,
+ 0xd0, 0x17, 0x77, 0x68, 0x20, 0x04, 0x22, 0x84, 0xf8, 0xb8, 0xc5, 0xe7,
+};
+static const unsigned char kat4222_nonce[] = {0};
+static const unsigned char kat4222_persstr[] = {0};
+static const unsigned char kat4222_entropyinpr1[] = {
+ 0x24, 0xc2, 0xa7, 0x35, 0x60, 0xa7, 0x5b, 0x58, 0xee, 0xba, 0x0f, 0x63,
+ 0x61, 0x53, 0x26, 0x78, 0x10, 0xac, 0xb5, 0x15, 0xf7, 0xe8, 0xfe, 0xe0,
+ 0x25, 0x50, 0xf8, 0x4c, 0x5b, 0x7b, 0x9c, 0x9d, 0x2b, 0x7a, 0x47, 0x82,
+ 0x70, 0xf0, 0xfa, 0x63, 0x0f, 0xca, 0xf7, 0xdb, 0x55, 0x52, 0x6e, 0xa0,
+};
+static const unsigned char kat4222_addinpr1[] = {
+ 0x01, 0x77, 0x56, 0x8f, 0xe9, 0xa1, 0x2c, 0x23, 0xd4, 0xd6, 0xd5, 0x66,
+ 0x59, 0xd9, 0x77, 0x17, 0x0c, 0xa6, 0x8c, 0x79, 0x15, 0x89, 0x31, 0x0f,
+ 0xa2, 0x78, 0x16, 0xf3, 0xd4, 0x31, 0x56, 0x78, 0xbb, 0x1a, 0xd0, 0xfb,
+ 0x67, 0x3b, 0x23, 0x52, 0xab, 0xb4, 0x60, 0x7a, 0xd5, 0xb1, 0xd7, 0xe2,
+};
+static const unsigned char kat4222_entropyinpr2[] = {
+ 0x8e, 0x83, 0x8e, 0xb3, 0xfc, 0x75, 0x90, 0x64, 0xac, 0x14, 0x47, 0xfe,
+ 0xc4, 0x7f, 0x9f, 0xbf, 0x4a, 0xd0, 0x68, 0x71, 0x42, 0x2b, 0x29, 0x7e,
+ 0x38, 0x14, 0x3c, 0x99, 0xd0, 0xa4, 0xfc, 0x99, 0x88, 0x55, 0xf3, 0xfb,
+ 0x77, 0x5d, 0x06, 0x20, 0x93, 0x37, 0x03, 0x98, 0xe2, 0xb7, 0x32, 0x3c,
+};
+static const unsigned char kat4222_addinpr2[] = {
+ 0xa7, 0x30, 0x06, 0xe7, 0x92, 0x1b, 0x82, 0x57, 0xf7, 0xeb, 0x1a, 0x44,
+ 0xe9, 0xb9, 0xf8, 0x81, 0xed, 0xe7, 0xf0, 0xc8, 0x60, 0x7c, 0x83, 0x62,
+ 0xd4, 0x82, 0xe6, 0xdb, 0x9a, 0x7b, 0xe1, 0x0d, 0x2e, 0x72, 0x40, 0xe8,
+ 0x24, 0x88, 0xfb, 0xd2, 0x1f, 0x24, 0x70, 0x05, 0xf8, 0x88, 0x2a, 0x0e,
+};
+static const unsigned char kat4222_retbits[] = {
+ 0x23, 0xed, 0x3b, 0xc4, 0x1d, 0x71, 0xf8, 0x9e, 0x15, 0xac, 0x91, 0xd4,
+ 0xe9, 0x9b, 0x8b, 0x3f, 0x28, 0x65, 0x9d, 0xcf, 0x09, 0x33, 0x45, 0x4b,
+ 0xdf, 0x4c, 0xbf, 0xb9, 0x11, 0x30, 0x56, 0x8b, 0x21, 0x36, 0xf9, 0x22,
+ 0x63, 0xf9, 0x54, 0x3b, 0x1c, 0xc3, 0x9f, 0xf4, 0x09, 0x85, 0xa4, 0x1a,
+ 0x15, 0x99, 0x8c, 0x81, 0xe2, 0xe2, 0x80, 0x9b, 0x57, 0x6d, 0x19, 0xb6,
+ 0x96, 0x42, 0xdb, 0x73,
+};
+static const struct drbg_kat_pr_true kat4222_t = {
+ 6, kat4222_entropyin, kat4222_nonce, kat4222_persstr,
+ kat4222_entropyinpr1, kat4222_addinpr1, kat4222_entropyinpr2,
+ kat4222_addinpr2, kat4222_retbits
+};
+static const struct drbg_kat kat4222 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4222_t
+};
+
+static const unsigned char kat4223_entropyin[] = {
+ 0xdd, 0xce, 0xd0, 0xae, 0x9a, 0x9c, 0xcf, 0xac, 0xf6, 0xc6, 0x34, 0xc1,
+ 0xa4, 0x56, 0xb1, 0x37, 0x22, 0x67, 0xe7, 0x1f, 0x7b, 0xb6, 0xc2, 0x98,
+ 0xe2, 0x1a, 0x08, 0x8f, 0x67, 0x5d, 0xcb, 0x03, 0xec, 0x74, 0x7c, 0x83,
+ 0xdd, 0x3a, 0xac, 0x74, 0xdf, 0xf2, 0xfd, 0x2a, 0xb0, 0x94, 0x9b, 0xb1,
+};
+static const unsigned char kat4223_nonce[] = {0};
+static const unsigned char kat4223_persstr[] = {0};
+static const unsigned char kat4223_entropyinpr1[] = {
+ 0x82, 0x36, 0x3d, 0x9c, 0xd9, 0x89, 0xc2, 0x20, 0xe2, 0x4e, 0xbb, 0xfa,
+ 0x61, 0x58, 0x37, 0x9c, 0x21, 0xe9, 0xac, 0x61, 0x48, 0x97, 0x15, 0xbf,
+ 0xd6, 0x2e, 0xa6, 0xe6, 0x99, 0xf4, 0x89, 0xc3, 0x22, 0xa9, 0x22, 0xc3,
+ 0xa8, 0xec, 0xa6, 0x7c, 0x33, 0xbb, 0x1f, 0x49, 0xba, 0x3e, 0x11, 0x20,
+};
+static const unsigned char kat4223_addinpr1[] = {
+ 0x79, 0xdb, 0x8e, 0x87, 0x31, 0xa7, 0x97, 0xd5, 0x41, 0x2f, 0x9e, 0xd7,
+ 0xca, 0xad, 0xa0, 0xb0, 0xbf, 0x78, 0x29, 0x8d, 0x76, 0x0e, 0x26, 0x86,
+ 0x93, 0xc5, 0xa5, 0x94, 0xdc, 0x52, 0xd8, 0x8e, 0x1d, 0xb8, 0x86, 0x9a,
+ 0x1f, 0xea, 0xca, 0x90, 0xb9, 0xde, 0x4e, 0x3e, 0xae, 0x97, 0xf9, 0xc8,
+};
+static const unsigned char kat4223_entropyinpr2[] = {
+ 0x1c, 0x30, 0x7d, 0x61, 0x6d, 0xa4, 0xa4, 0x57, 0xbb, 0x36, 0xe1, 0x6d,
+ 0x3f, 0x94, 0x87, 0x6a, 0x94, 0x47, 0x90, 0xcf, 0x11, 0x6d, 0x37, 0x9c,
+ 0xad, 0xd9, 0x62, 0xce, 0x2a, 0x6b, 0xf2, 0xdc, 0x2e, 0x24, 0xd8, 0xde,
+ 0xc5, 0x0c, 0xa6, 0x68, 0x59, 0x62, 0xc2, 0x65, 0xec, 0x22, 0x94, 0x1b,
+};
+static const unsigned char kat4223_addinpr2[] = {
+ 0xec, 0x27, 0xac, 0x86, 0x33, 0x55, 0x21, 0xeb, 0xb4, 0xce, 0x10, 0x9c,
+ 0xb7, 0x02, 0x08, 0xb1, 0xbe, 0x87, 0x58, 0x49, 0x60, 0xfd, 0x09, 0xa9,
+ 0xd9, 0x19, 0x06, 0x7b, 0x7b, 0x35, 0x0f, 0xcb, 0x91, 0xbe, 0xfe, 0x48,
+ 0x0d, 0x63, 0x23, 0x8c, 0x3d, 0x17, 0x91, 0x18, 0xea, 0xca, 0x13, 0x06,
+};
+static const unsigned char kat4223_retbits[] = {
+ 0x98, 0xcd, 0xc7, 0x0b, 0x59, 0xe0, 0x2f, 0x75, 0xcf, 0xd1, 0xab, 0xee,
+ 0x1b, 0xac, 0x63, 0x6f, 0xfe, 0xa6, 0xb3, 0xe8, 0xa2, 0x2b, 0x4d, 0xb5,
+ 0x73, 0xb0, 0x4b, 0x2f, 0xbc, 0xd8, 0x17, 0x05, 0x08, 0x74, 0xca, 0x37,
+ 0x4f, 0xe2, 0x86, 0xde, 0x84, 0xc2, 0x11, 0xce, 0x04, 0x7e, 0x8e, 0x07,
+ 0x0a, 0x21, 0xd8, 0xcd, 0xfe, 0xa8, 0x4f, 0xfc, 0x70, 0x8a, 0x6a, 0xc2,
+ 0xe5, 0x4b, 0x00, 0xc4,
+};
+static const struct drbg_kat_pr_true kat4223_t = {
+ 7, kat4223_entropyin, kat4223_nonce, kat4223_persstr,
+ kat4223_entropyinpr1, kat4223_addinpr1, kat4223_entropyinpr2,
+ kat4223_addinpr2, kat4223_retbits
+};
+static const struct drbg_kat kat4223 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4223_t
+};
+
+static const unsigned char kat4224_entropyin[] = {
+ 0x6b, 0x18, 0x17, 0xb9, 0x3c, 0xc8, 0x51, 0x54, 0xe5, 0x5e, 0x85, 0x6b,
+ 0x1a, 0xab, 0x06, 0x7a, 0xb6, 0xe6, 0x68, 0xdd, 0xfb, 0x30, 0x75, 0x90,
+ 0xb2, 0x56, 0x3e, 0xc5, 0x9e, 0x17, 0x9f, 0xf8, 0xa6, 0x1c, 0x9a, 0x21,
+ 0xa8, 0x33, 0x0f, 0x01, 0xdc, 0xa3, 0xd0, 0xbb, 0xb2, 0xa0, 0x69, 0x8c,
+};
+static const unsigned char kat4224_nonce[] = {0};
+static const unsigned char kat4224_persstr[] = {0};
+static const unsigned char kat4224_entropyinpr1[] = {
+ 0xf0, 0x7e, 0x7b, 0x4f, 0x72, 0xdf, 0xa2, 0x2b, 0x31, 0xc1, 0x44, 0xb6,
+ 0x70, 0x56, 0x55, 0x5d, 0x49, 0xc9, 0xf0, 0xc7, 0x0a, 0x80, 0x9c, 0xd9,
+ 0x66, 0x9b, 0x18, 0x1f, 0x0b, 0xd7, 0x93, 0xb0, 0x2b, 0x8d, 0xf7, 0x27,
+ 0x8e, 0xe8, 0xd6, 0x95, 0x43, 0x08, 0xe2, 0xbc, 0x73, 0x43, 0x08, 0xc3,
+};
+static const unsigned char kat4224_addinpr1[] = {
+ 0x11, 0x80, 0x42, 0x24, 0x33, 0x86, 0x80, 0x6c, 0xea, 0x3f, 0x82, 0x61,
+ 0x3a, 0x34, 0x23, 0x19, 0x46, 0x4b, 0x90, 0x35, 0x98, 0x76, 0xd7, 0x4c,
+ 0x90, 0x12, 0xa2, 0x70, 0xb4, 0xed, 0x68, 0xa5, 0x95, 0x7d, 0x1d, 0x39,
+ 0xd0, 0xf4, 0x59, 0x85, 0xd2, 0x7b, 0x70, 0x98, 0x12, 0x2e, 0xc8, 0x19,
+};
+static const unsigned char kat4224_entropyinpr2[] = {
+ 0x68, 0x25, 0xa3, 0x5d, 0x81, 0x20, 0x9a, 0xb3, 0xeb, 0xa1, 0xa7, 0xbd,
+ 0x81, 0x74, 0xdd, 0xde, 0xe6, 0xc8, 0x8f, 0x8c, 0x08, 0xb8, 0x4f, 0x3e,
+ 0xca, 0xa3, 0xdc, 0x31, 0xe1, 0x0d, 0x9f, 0xfe, 0xf6, 0x52, 0x81, 0xfa,
+ 0xbd, 0x5c, 0x72, 0xf1, 0x18, 0xaf, 0x84, 0xc9, 0xde, 0x67, 0x0f, 0x9b,
+};
+static const unsigned char kat4224_addinpr2[] = {
+ 0xa4, 0xcc, 0xcf, 0x42, 0x43, 0xab, 0x34, 0x98, 0xf9, 0x8a, 0x2c, 0xf8,
+ 0xd8, 0x05, 0x04, 0xa0, 0xf1, 0x44, 0xee, 0xf0, 0x01, 0x9c, 0x1e, 0x24,
+ 0x1a, 0x26, 0xb3, 0xd7, 0x46, 0xce, 0x58, 0xe2, 0x90, 0x03, 0xa8, 0x6a,
+ 0x98, 0x0e, 0xef, 0x85, 0xe3, 0xd5, 0x52, 0x03, 0x19, 0x0e, 0x17, 0x0f,
+};
+static const unsigned char kat4224_retbits[] = {
+ 0xf8, 0xf2, 0xa1, 0xae, 0x6a, 0x83, 0x23, 0x33, 0xf2, 0xc4, 0xbc, 0x79,
+ 0xb8, 0x56, 0xbe, 0x49, 0x1c, 0x2a, 0xe7, 0x2f, 0x7b, 0x3d, 0x8e, 0x9e,
+ 0xae, 0x1a, 0x4c, 0x1a, 0xc3, 0xa8, 0xd6, 0x90, 0xb5, 0xc4, 0xb3, 0x23,
+ 0x04, 0xaf, 0x09, 0xe5, 0x04, 0x3e, 0xac, 0x8f, 0xb2, 0x4f, 0xc4, 0xb7,
+ 0x6a, 0x99, 0x3e, 0x98, 0xdb, 0xa0, 0x18, 0x20, 0xf0, 0x8c, 0xe4, 0x8d,
+ 0xf4, 0x3c, 0xcb, 0xf2,
+};
+static const struct drbg_kat_pr_true kat4224_t = {
+ 8, kat4224_entropyin, kat4224_nonce, kat4224_persstr,
+ kat4224_entropyinpr1, kat4224_addinpr1, kat4224_entropyinpr2,
+ kat4224_addinpr2, kat4224_retbits
+};
+static const struct drbg_kat kat4224 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4224_t
+};
+
+static const unsigned char kat4225_entropyin[] = {
+ 0x4d, 0x6d, 0x65, 0x99, 0xec, 0x22, 0x36, 0xd2, 0xa3, 0xe3, 0xfd, 0xfe,
+ 0xda, 0x7c, 0x6d, 0x0a, 0xc4, 0xb5, 0x28, 0x72, 0xbe, 0x3f, 0x71, 0xfe,
+ 0x05, 0xaf, 0xbd, 0x22, 0xdd, 0x7b, 0x08, 0x65, 0x0f, 0xe0, 0x1e, 0x02,
+ 0x77, 0x0b, 0x54, 0x55, 0xac, 0x83, 0x97, 0x72, 0xd8, 0x19, 0x93, 0x6d,
+};
+static const unsigned char kat4225_nonce[] = {0};
+static const unsigned char kat4225_persstr[] = {0};
+static const unsigned char kat4225_entropyinpr1[] = {
+ 0x8b, 0x4c, 0x7e, 0xa9, 0x9b, 0x25, 0x1b, 0x8f, 0x8a, 0x85, 0x6e, 0x00,
+ 0x98, 0xd0, 0xd5, 0x76, 0xf5, 0xc3, 0x94, 0x62, 0x96, 0x76, 0x36, 0x05,
+ 0x59, 0xaf, 0x83, 0x05, 0x69, 0x11, 0x26, 0x14, 0x15, 0x9a, 0xbf, 0x6d,
+ 0xc5, 0x45, 0x1a, 0x66, 0xaf, 0x50, 0x5b, 0x10, 0x09, 0x7f, 0x1d, 0x83,
+};
+static const unsigned char kat4225_addinpr1[] = {
+ 0xe7, 0x45, 0x27, 0x2e, 0x39, 0xa9, 0x4a, 0x2d, 0x5e, 0x78, 0x0c, 0x7c,
+ 0x89, 0x4b, 0xba, 0x3a, 0xec, 0x21, 0xff, 0xa5, 0xfe, 0x25, 0xae, 0xa5,
+ 0xc0, 0x3a, 0x39, 0xed, 0x61, 0x83, 0xed, 0x73, 0xf9, 0x9d, 0xf3, 0x91,
+ 0x0b, 0xf5, 0x03, 0x20, 0xe9, 0x6a, 0xaf, 0x23, 0xdb, 0x42, 0x8d, 0xd1,
+};
+static const unsigned char kat4225_entropyinpr2[] = {
+ 0x39, 0xfa, 0x4d, 0x42, 0x19, 0xf3, 0xcf, 0xb1, 0xbc, 0x0d, 0x56, 0x8d,
+ 0xac, 0xae, 0x55, 0x22, 0x3c, 0xc1, 0x4e, 0x99, 0xb1, 0xe0, 0x23, 0x2b,
+ 0x1e, 0x14, 0x23, 0x0d, 0x3d, 0x0f, 0x44, 0x02, 0x42, 0x18, 0xdc, 0xb1,
+ 0x9c, 0xba, 0x99, 0x32, 0x8f, 0xf3, 0x38, 0x80, 0x3d, 0x95, 0x60, 0x8f,
+};
+static const unsigned char kat4225_addinpr2[] = {
+ 0xfd, 0xd5, 0x07, 0x89, 0x54, 0xad, 0xe4, 0x47, 0xda, 0x52, 0xc0, 0x9d,
+ 0xe9, 0x51, 0xe7, 0x64, 0x18, 0x79, 0xed, 0xe1, 0xbc, 0xb8, 0xc9, 0x01,
+ 0x89, 0x0b, 0x1e, 0x48, 0xd3, 0xf8, 0xb1, 0x44, 0x8d, 0xfc, 0x70, 0xc4,
+ 0xf7, 0xf5, 0x07, 0x33, 0xc0, 0x00, 0x7d, 0x82, 0xb3, 0x10, 0x8a, 0xb6,
+};
+static const unsigned char kat4225_retbits[] = {
+ 0xed, 0xe3, 0x96, 0xce, 0x2f, 0x56, 0xfc, 0x2d, 0x79, 0x72, 0x76, 0xdd,
+ 0x80, 0x7a, 0x4c, 0x19, 0x17, 0x18, 0x0a, 0x31, 0x4b, 0x18, 0x34, 0xa3,
+ 0x0b, 0x86, 0xb6, 0xa7, 0xb9, 0x7e, 0x7c, 0x6b, 0x29, 0x38, 0xfc, 0xd3,
+ 0x9b, 0x10, 0x70, 0xc4, 0xcc, 0x51, 0xb9, 0x75, 0x04, 0x1c, 0xf3, 0x7b,
+ 0xd5, 0xe6, 0x77, 0x20, 0x33, 0x41, 0x7b, 0x6d, 0xbd, 0xfd, 0x47, 0x38,
+ 0x3c, 0x0a, 0xc5, 0xf4,
+};
+static const struct drbg_kat_pr_true kat4225_t = {
+ 9, kat4225_entropyin, kat4225_nonce, kat4225_persstr,
+ kat4225_entropyinpr1, kat4225_addinpr1, kat4225_entropyinpr2,
+ kat4225_addinpr2, kat4225_retbits
+};
+static const struct drbg_kat kat4225 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4225_t
+};
+
+static const unsigned char kat4226_entropyin[] = {
+ 0xc7, 0xbb, 0x20, 0x7d, 0xde, 0x0b, 0x74, 0x33, 0x03, 0x83, 0xa1, 0xfa,
+ 0xbb, 0xa1, 0x41, 0x96, 0xba, 0xff, 0xa7, 0xbe, 0xb9, 0x68, 0x8e, 0x43,
+ 0xe8, 0xb9, 0xa2, 0x99, 0x6f, 0xa6, 0x9f, 0xe3, 0x68, 0x96, 0xb5, 0x2f,
+ 0xdd, 0xd6, 0x27, 0x04, 0x02, 0x60, 0xa9, 0x6a, 0x25, 0x1d, 0xbb, 0x91,
+};
+static const unsigned char kat4226_nonce[] = {0};
+static const unsigned char kat4226_persstr[] = {0};
+static const unsigned char kat4226_entropyinpr1[] = {
+ 0x62, 0xf7, 0x0e, 0x58, 0xe1, 0x32, 0x11, 0xe3, 0x43, 0xb2, 0xf6, 0x57,
+ 0x2b, 0x69, 0x68, 0xc0, 0x4d, 0x9e, 0xe6, 0x8c, 0xab, 0x7f, 0xa7, 0x3d,
+ 0xd3, 0x98, 0xaf, 0x8d, 0x7a, 0xd4, 0x54, 0x8a, 0x47, 0xf2, 0xe2, 0xfd,
+ 0xf2, 0x60, 0x52, 0xe3, 0x16, 0x2b, 0x45, 0x3e, 0x2e, 0x94, 0x22, 0x4c,
+};
+static const unsigned char kat4226_addinpr1[] = {
+ 0xad, 0x0f, 0x47, 0x22, 0xe6, 0x75, 0x06, 0xab, 0x51, 0x3a, 0x71, 0x79,
+ 0xd9, 0xa2, 0x96, 0x1e, 0x92, 0x74, 0xe8, 0xed, 0x05, 0x9d, 0x5a, 0x3a,
+ 0xfc, 0xe8, 0xcc, 0xa5, 0xa3, 0x85, 0x8e, 0x8e, 0x4e, 0x2c, 0xb9, 0xc8,
+ 0xe7, 0x0c, 0x16, 0x48, 0x96, 0x18, 0x15, 0xc9, 0xeb, 0x36, 0x98, 0x20,
+};
+static const unsigned char kat4226_entropyinpr2[] = {
+ 0x88, 0xba, 0x1b, 0xa8, 0xd9, 0x68, 0xda, 0xc6, 0xdb, 0xdc, 0x2a, 0x67,
+ 0xb0, 0xa6, 0x54, 0x0f, 0xbd, 0xbf, 0x7a, 0xd5, 0x25, 0x7e, 0xa2, 0x63,
+ 0x52, 0xab, 0x4e, 0xd5, 0xd4, 0x9d, 0xd1, 0x8c, 0x46, 0x95, 0x52, 0xef,
+ 0x8d, 0x29, 0x7b, 0xec, 0xe4, 0xea, 0x6f, 0xb6, 0x26, 0xbb, 0x50, 0x85,
+};
+static const unsigned char kat4226_addinpr2[] = {
+ 0xeb, 0xe9, 0xb7, 0xf3, 0x43, 0xe9, 0x3f, 0x63, 0x3e, 0x41, 0x06, 0xc1,
+ 0x71, 0x63, 0x8f, 0xc7, 0xe9, 0x8f, 0x4b, 0x0f, 0x50, 0x98, 0x41, 0x53,
+ 0x32, 0xf8, 0x45, 0x40, 0x9f, 0x46, 0xac, 0x35, 0x2b, 0x1b, 0x90, 0x82,
+ 0x15, 0x5f, 0x68, 0x6c, 0x4b, 0x2c, 0x77, 0x6c, 0xe6, 0x0b, 0x57, 0x5d,
+};
+static const unsigned char kat4226_retbits[] = {
+ 0x75, 0xec, 0xb6, 0x43, 0x2c, 0x5b, 0xde, 0x9e, 0xfd, 0x90, 0xa9, 0x13,
+ 0xed, 0x6c, 0x4f, 0xa8, 0x63, 0x7a, 0x54, 0x1b, 0xe3, 0x2b, 0x8d, 0x44,
+ 0xcc, 0xe6, 0x62, 0xcf, 0x0a, 0x53, 0xb4, 0x6a, 0x19, 0x68, 0x4b, 0x88,
+ 0xb1, 0x6e, 0x35, 0xb3, 0xeb, 0x1a, 0xd3, 0x70, 0x20, 0xed, 0xa4, 0x85,
+ 0x0b, 0x92, 0xb9, 0x13, 0xd0, 0x2a, 0x40, 0xd0, 0x4d, 0xc4, 0x60, 0x46,
+ 0xd2, 0x72, 0xa0, 0x45,
+};
+static const struct drbg_kat_pr_true kat4226_t = {
+ 10, kat4226_entropyin, kat4226_nonce, kat4226_persstr,
+ kat4226_entropyinpr1, kat4226_addinpr1, kat4226_entropyinpr2,
+ kat4226_addinpr2, kat4226_retbits
+};
+static const struct drbg_kat kat4226 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4226_t
+};
+
+static const unsigned char kat4227_entropyin[] = {
+ 0xe0, 0x7e, 0x5a, 0x3f, 0x1c, 0xf5, 0xf7, 0x5c, 0x93, 0xa7, 0x4e, 0x76,
+ 0x69, 0xd6, 0xa2, 0x57, 0xd7, 0x1a, 0x99, 0xc2, 0x4a, 0xe3, 0x2e, 0x95,
+ 0xab, 0xe6, 0x04, 0x67, 0xc7, 0x39, 0x26, 0x74, 0x30, 0xf7, 0x27, 0xf0,
+ 0xf0, 0xd9, 0xdc, 0x58, 0xb3, 0xa8, 0xb4, 0x91, 0x8e, 0xdf, 0xa9, 0xf3,
+};
+static const unsigned char kat4227_nonce[] = {0};
+static const unsigned char kat4227_persstr[] = {0};
+static const unsigned char kat4227_entropyinpr1[] = {
+ 0x8d, 0xd0, 0x54, 0x18, 0x47, 0xae, 0x27, 0x47, 0x9a, 0x33, 0x1f, 0x6c,
+ 0x6b, 0xa4, 0xdc, 0xe7, 0x97, 0xb2, 0x34, 0x06, 0x50, 0x56, 0xed, 0xc3,
+ 0xbe, 0xbc, 0xc2, 0xc7, 0xfd, 0x2f, 0x3a, 0x57, 0xc8, 0x3a, 0x6d, 0xdf,
+ 0x15, 0xd4, 0x3d, 0x5d, 0xb0, 0x6d, 0x7e, 0x78, 0xfa, 0x09, 0xfd, 0x0e,
+};
+static const unsigned char kat4227_addinpr1[] = {
+ 0x40, 0x79, 0xfa, 0x82, 0x6e, 0x52, 0x11, 0x2a, 0x97, 0xd9, 0x9d, 0x69,
+ 0xbc, 0xa6, 0x15, 0xf6, 0x69, 0xa2, 0x9d, 0xb9, 0xb3, 0x42, 0xa5, 0xb3,
+ 0x10, 0x39, 0xd0, 0xf1, 0xe8, 0xfb, 0xf2, 0x0d, 0xd8, 0xb8, 0xec, 0xef,
+ 0x44, 0x56, 0xd9, 0xd2, 0x8e, 0x6d, 0xb8, 0xca, 0x0f, 0xe9, 0xd7, 0x7b,
+};
+static const unsigned char kat4227_entropyinpr2[] = {
+ 0x7f, 0x64, 0xba, 0xd8, 0x26, 0x8e, 0x5e, 0x0a, 0xe3, 0x47, 0x38, 0x50,
+ 0xaa, 0x5f, 0xee, 0x43, 0x5c, 0xb6, 0x81, 0x46, 0xda, 0x97, 0x26, 0xe4,
+ 0x81, 0x1d, 0xde, 0x0b, 0xda, 0x3e, 0x1d, 0xa9, 0x97, 0xc0, 0x17, 0x62,
+ 0xc4, 0x8e, 0x27, 0xe7, 0x54, 0xda, 0xf4, 0xc1, 0x95, 0xce, 0x84, 0x48,
+};
+static const unsigned char kat4227_addinpr2[] = {
+ 0xb9, 0xed, 0x51, 0x1c, 0x9c, 0x92, 0x1c, 0xfc, 0xea, 0x7a, 0x13, 0xa1,
+ 0x87, 0x25, 0x8e, 0x3b, 0x71, 0xb7, 0x35, 0xad, 0x6c, 0x24, 0xf4, 0x0e,
+ 0xf2, 0x94, 0x88, 0x1e, 0xba, 0x11, 0xc1, 0x6f, 0xed, 0x3a, 0x8e, 0x00,
+ 0x29, 0x89, 0x2b, 0x36, 0x70, 0x1b, 0x4d, 0x64, 0xe1, 0x7a, 0x29, 0x65,
+};
+static const unsigned char kat4227_retbits[] = {
+ 0xf1, 0xb9, 0xbf, 0x97, 0x5a, 0x3f, 0x1e, 0xcd, 0x93, 0xb6, 0xc9, 0xb7,
+ 0x51, 0x65, 0x38, 0x20, 0x5a, 0x3a, 0x56, 0x7d, 0xca, 0x5a, 0xba, 0xb0,
+ 0x3e, 0x44, 0xcc, 0xb0, 0x1a, 0x34, 0x28, 0x94, 0x72, 0x91, 0x38, 0xcb,
+ 0x6b, 0x9b, 0x0a, 0x49, 0xe2, 0xc2, 0x1f, 0xc6, 0x76, 0xea, 0x3c, 0x74,
+ 0xc4, 0x69, 0xd6, 0xc9, 0x3d, 0x34, 0x37, 0x69, 0x3d, 0x3d, 0x57, 0x46,
+ 0x6e, 0xf3, 0x81, 0x74,
+};
+static const struct drbg_kat_pr_true kat4227_t = {
+ 11, kat4227_entropyin, kat4227_nonce, kat4227_persstr,
+ kat4227_entropyinpr1, kat4227_addinpr1, kat4227_entropyinpr2,
+ kat4227_addinpr2, kat4227_retbits
+};
+static const struct drbg_kat kat4227 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4227_t
+};
+
+static const unsigned char kat4228_entropyin[] = {
+ 0x58, 0xda, 0xf9, 0x3b, 0x28, 0x80, 0x85, 0xfc, 0xe9, 0x1c, 0x60, 0x4a,
+ 0xf9, 0x12, 0x8e, 0x3f, 0xb1, 0xf3, 0xee, 0x06, 0xec, 0x7a, 0x15, 0x9d,
+ 0x8b, 0xa0, 0x72, 0xd9, 0x01, 0xfe, 0x0b, 0xa4, 0x0c, 0x1a, 0x90, 0xf3,
+ 0x15, 0xe0, 0xde, 0x53, 0x2e, 0x83, 0xc0, 0xf0, 0xaf, 0xa1, 0x00, 0x14,
+};
+static const unsigned char kat4228_nonce[] = {0};
+static const unsigned char kat4228_persstr[] = {0};
+static const unsigned char kat4228_entropyinpr1[] = {
+ 0xf6, 0x1f, 0xa2, 0xf3, 0x40, 0x36, 0x72, 0x48, 0x91, 0x75, 0x8d, 0x52,
+ 0x6f, 0x50, 0xb8, 0x02, 0x18, 0x0f, 0x98, 0xd8, 0x4c, 0x11, 0xf2, 0x42,
+ 0x5c, 0x8e, 0x7d, 0x6c, 0xfc, 0xd9, 0xbb, 0xe9, 0x56, 0xa1, 0xbb, 0x22,
+ 0x55, 0x46, 0xd5, 0x40, 0x9d, 0xd6, 0xcd, 0x9d, 0x1c, 0x74, 0xd3, 0x5a,
+};
+static const unsigned char kat4228_addinpr1[] = {
+ 0xcc, 0x3a, 0x58, 0x6c, 0xe4, 0x76, 0xfa, 0x37, 0x1c, 0x2f, 0x60, 0x30,
+ 0xa1, 0x86, 0x60, 0xe0, 0x27, 0xcc, 0xf5, 0x94, 0x4b, 0xc3, 0x00, 0x48,
+ 0xb0, 0x54, 0xd8, 0x57, 0xfc, 0x9d, 0x05, 0x6e, 0x4d, 0x7a, 0xce, 0x22,
+ 0x29, 0xc5, 0xda, 0x92, 0xf6, 0x29, 0x3e, 0xdc, 0x98, 0xe5, 0x7a, 0xab,
+};
+static const unsigned char kat4228_entropyinpr2[] = {
+ 0xd7, 0xf7, 0x7b, 0xd1, 0x4b, 0x76, 0x98, 0xad, 0x6d, 0x88, 0x98, 0x07,
+ 0xf0, 0x2f, 0x2f, 0x2f, 0x7b, 0x06, 0x4b, 0x15, 0x5b, 0x6b, 0x3e, 0xc2,
+ 0x82, 0x0b, 0xaf, 0x3b, 0x8b, 0x6f, 0x38, 0x70, 0x72, 0xcc, 0x6c, 0x7d,
+ 0xcf, 0xd5, 0x54, 0xd0, 0xac, 0x97, 0xbd, 0x6c, 0x6c, 0x87, 0x97, 0x1d,
+};
+static const unsigned char kat4228_addinpr2[] = {
+ 0x89, 0xb0, 0x71, 0x37, 0x88, 0x26, 0x01, 0xe5, 0x0a, 0x7c, 0x06, 0x37,
+ 0x12, 0x47, 0x9b, 0x19, 0xb2, 0x01, 0x54, 0xeb, 0x5f, 0x71, 0xd8, 0xb5,
+ 0x09, 0xb0, 0x87, 0x8b, 0xc5, 0x89, 0x53, 0x61, 0x64, 0xc3, 0xdf, 0xfc,
+ 0x77, 0x3b, 0xfb, 0x1c, 0x18, 0x56, 0xd6, 0xde, 0xf3, 0x19, 0x61, 0xb1,
+};
+static const unsigned char kat4228_retbits[] = {
+ 0x8d, 0xbe, 0xee, 0x09, 0x95, 0x85, 0x18, 0x0b, 0x03, 0xba, 0xe1, 0x57,
+ 0x06, 0xde, 0xf3, 0x93, 0xb9, 0xb3, 0x1d, 0x56, 0x92, 0x70, 0x2e, 0xce,
+ 0x6c, 0xae, 0x4c, 0xe8, 0xf4, 0x4f, 0x8f, 0xcf, 0xfc, 0xa4, 0x74, 0x3a,
+ 0x0e, 0xe9, 0x8f, 0xe3, 0xc5, 0xf9, 0x23, 0x3c, 0xe1, 0x7e, 0xb4, 0x25,
+ 0x72, 0xb0, 0x4c, 0x36, 0x85, 0xe0, 0xee, 0x0d, 0xf5, 0x60, 0x33, 0xc8,
+ 0xd0, 0xff, 0xf6, 0x3a,
+};
+static const struct drbg_kat_pr_true kat4228_t = {
+ 12, kat4228_entropyin, kat4228_nonce, kat4228_persstr,
+ kat4228_entropyinpr1, kat4228_addinpr1, kat4228_entropyinpr2,
+ kat4228_addinpr2, kat4228_retbits
+};
+static const struct drbg_kat kat4228 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4228_t
+};
+
+static const unsigned char kat4229_entropyin[] = {
+ 0x49, 0x29, 0xfe, 0x3c, 0xcf, 0x07, 0xf2, 0x60, 0xd2, 0x8d, 0xe7, 0x36,
+ 0x9d, 0x65, 0xf1, 0x63, 0xc8, 0xfe, 0xde, 0x9c, 0xb5, 0x0b, 0x51, 0x35,
+ 0x9a, 0x55, 0x89, 0xa9, 0xc4, 0xee, 0xf0, 0x91, 0x05, 0x9b, 0x12, 0x9d,
+ 0x41, 0x14, 0x39, 0x4f, 0xef, 0xb3, 0xb0, 0xd4, 0x6d, 0xb9, 0xdf, 0x51,
+};
+static const unsigned char kat4229_nonce[] = {0};
+static const unsigned char kat4229_persstr[] = {0};
+static const unsigned char kat4229_entropyinpr1[] = {
+ 0xe9, 0xc9, 0xdb, 0x75, 0xeb, 0x63, 0xe4, 0xbb, 0x6d, 0x9c, 0x3e, 0x26,
+ 0xe8, 0x92, 0xcb, 0x8d, 0xf0, 0x76, 0xd7, 0x94, 0xff, 0x6b, 0xd0, 0x76,
+ 0x46, 0x26, 0x43, 0x2d, 0xc9, 0xed, 0xbe, 0x22, 0xe1, 0xad, 0xdd, 0x43,
+ 0x90, 0x64, 0x1f, 0xba, 0x4b, 0xaf, 0x8f, 0xee, 0x18, 0xb3, 0x72, 0x96,
+};
+static const unsigned char kat4229_addinpr1[] = {
+ 0xec, 0x66, 0xa9, 0x9b, 0x91, 0xb2, 0x98, 0xce, 0xba, 0x1d, 0xc6, 0xaf,
+ 0x63, 0x42, 0x8e, 0x42, 0x73, 0xc4, 0x24, 0xbb, 0x93, 0xbb, 0xbd, 0xea,
+ 0x59, 0xd2, 0x47, 0x72, 0xa2, 0xe0, 0x26, 0xcd, 0x10, 0xfa, 0xdb, 0xd2,
+ 0xaf, 0xf8, 0x8c, 0x05, 0x76, 0xae, 0x23, 0x17, 0x68, 0xfa, 0x34, 0x45,
+};
+static const unsigned char kat4229_entropyinpr2[] = {
+ 0x22, 0xec, 0x20, 0x6c, 0x5e, 0x08, 0xce, 0x23, 0x33, 0x0f, 0xf9, 0x6d,
+ 0x97, 0x1c, 0xfa, 0x54, 0xc3, 0xe8, 0xa5, 0xd7, 0x00, 0x46, 0x3e, 0x9e,
+ 0x12, 0xb4, 0x18, 0xd7, 0x2b, 0x06, 0xa6, 0x26, 0x35, 0x8a, 0xa9, 0xb8,
+ 0x2c, 0x64, 0xa5, 0xde, 0xb6, 0x35, 0xf2, 0xb5, 0xda, 0x35, 0x4c, 0x09,
+};
+static const unsigned char kat4229_addinpr2[] = {
+ 0x2a, 0x56, 0xa4, 0x36, 0xf0, 0xc9, 0xd6, 0x77, 0x88, 0xd0, 0xeb, 0xbc,
+ 0x4c, 0x8a, 0x55, 0x79, 0x12, 0xd6, 0xdb, 0x43, 0x72, 0xe9, 0xbf, 0xda,
+ 0x0e, 0x12, 0xaa, 0x5b, 0x68, 0xa4, 0x0f, 0x18, 0x9d, 0x9a, 0x81, 0xdd,
+ 0x6d, 0xb7, 0xa6, 0x96, 0xfb, 0x5c, 0x18, 0x60, 0xe1, 0xb3, 0xbf, 0xb1,
+};
+static const unsigned char kat4229_retbits[] = {
+ 0x9c, 0x01, 0xa7, 0xd2, 0x95, 0xf6, 0x24, 0xfd, 0xf3, 0x2d, 0xb8, 0x0d,
+ 0xea, 0xd0, 0x09, 0x69, 0x24, 0xb8, 0x0d, 0xfe, 0x3b, 0x7b, 0x11, 0x94,
+ 0x66, 0x54, 0x6d, 0x87, 0x93, 0x1b, 0x7d, 0x2f, 0x0a, 0xcc, 0x36, 0x03,
+ 0x13, 0xbc, 0x38, 0xb7, 0xf0, 0x8f, 0x59, 0x0b, 0x0e, 0xd3, 0xdb, 0xa3,
+ 0x39, 0xc0, 0xb6, 0x9a, 0x35, 0x44, 0x70, 0xea, 0xf8, 0x19, 0xd9, 0xcf,
+ 0x0f, 0x31, 0x8f, 0x1a,
+};
+static const struct drbg_kat_pr_true kat4229_t = {
+ 13, kat4229_entropyin, kat4229_nonce, kat4229_persstr,
+ kat4229_entropyinpr1, kat4229_addinpr1, kat4229_entropyinpr2,
+ kat4229_addinpr2, kat4229_retbits
+};
+static const struct drbg_kat kat4229 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4229_t
+};
+
+static const unsigned char kat4230_entropyin[] = {
+ 0x69, 0xf7, 0xe3, 0x24, 0xec, 0xf5, 0xbd, 0x85, 0xaf, 0x9e, 0xcc, 0xd1,
+ 0x52, 0xd7, 0xd2, 0x61, 0x99, 0xae, 0x4d, 0x19, 0xd2, 0x9a, 0xd8, 0x4d,
+ 0x3f, 0x75, 0xe2, 0x7e, 0x0d, 0x4b, 0xe0, 0xac, 0x01, 0xf2, 0xf1, 0xdb,
+ 0xfe, 0xc6, 0xda, 0x1c, 0x00, 0x1d, 0x1d, 0xdd, 0xfd, 0xa2, 0xd5, 0x82,
+};
+static const unsigned char kat4230_nonce[] = {0};
+static const unsigned char kat4230_persstr[] = {0};
+static const unsigned char kat4230_entropyinpr1[] = {
+ 0x35, 0xe2, 0x34, 0x58, 0x9f, 0x09, 0x3e, 0xec, 0x80, 0xe8, 0x89, 0x5f,
+ 0x15, 0xd4, 0x16, 0x29, 0xa7, 0x7b, 0xdc, 0x2c, 0x06, 0x7d, 0x83, 0x6c,
+ 0x0c, 0xb8, 0x2e, 0xd1, 0x8c, 0x6b, 0x8b, 0x4f, 0x12, 0x98, 0xf0, 0x28,
+ 0x7b, 0x19, 0x0d, 0x10, 0x19, 0x2d, 0x32, 0xcd, 0x62, 0xfa, 0x62, 0x27,
+};
+static const unsigned char kat4230_addinpr1[] = {
+ 0x7c, 0x30, 0x0a, 0x1c, 0x9f, 0xfd, 0x8a, 0x63, 0x8a, 0xef, 0x6f, 0x62,
+ 0xc6, 0x63, 0xaa, 0x7f, 0x59, 0x22, 0xb0, 0x8e, 0x9f, 0xb8, 0xcb, 0x30,
+ 0x64, 0x29, 0x10, 0x84, 0x07, 0x55, 0x71, 0x1c, 0x70, 0xd8, 0x37, 0x15,
+ 0xfa, 0xba, 0x86, 0x41, 0x2f, 0x62, 0x1b, 0xbe, 0x98, 0x3a, 0xb0, 0x0b,
+};
+static const unsigned char kat4230_entropyinpr2[] = {
+ 0xff, 0xd6, 0xfd, 0x30, 0x31, 0x39, 0x7d, 0x33, 0xe3, 0x82, 0xf4, 0x0b,
+ 0x63, 0x38, 0xe7, 0xe3, 0x64, 0x0b, 0x9b, 0x35, 0x80, 0x0d, 0x89, 0x05,
+ 0x81, 0xfa, 0xd4, 0x78, 0x43, 0x66, 0xa1, 0x53, 0x3f, 0x38, 0x39, 0x8f,
+ 0x25, 0x5d, 0xc3, 0x16, 0xbd, 0xe2, 0x22, 0x85, 0x07, 0x94, 0xe4, 0x6a,
+};
+static const unsigned char kat4230_addinpr2[] = {
+ 0xb1, 0xe3, 0xc7, 0x70, 0xad, 0xbc, 0x77, 0x2d, 0x94, 0xed, 0xef, 0x61,
+ 0x88, 0xd0, 0xf0, 0x7e, 0xa1, 0xc2, 0x5f, 0xb4, 0x1d, 0xd2, 0x0e, 0xef,
+ 0xb5, 0x52, 0xde, 0xad, 0x33, 0xdc, 0x47, 0xf6, 0x2e, 0x99, 0xa1, 0x73,
+ 0x6e, 0xb4, 0x3f, 0xa1, 0x11, 0xe1, 0xc0, 0x4e, 0x0a, 0xad, 0x78, 0xbc,
+};
+static const unsigned char kat4230_retbits[] = {
+ 0x82, 0x6d, 0xc7, 0xb1, 0xc3, 0x9f, 0xb4, 0x95, 0x5f, 0x61, 0x4f, 0xab,
+ 0x27, 0x69, 0x7e, 0xd5, 0xfa, 0x1e, 0xd8, 0x68, 0x6c, 0x70, 0x1e, 0xf5,
+ 0xe0, 0x37, 0x76, 0xa8, 0x14, 0xbb, 0xcd, 0xf9, 0xaf, 0xe4, 0x93, 0x43,
+ 0xcb, 0x53, 0x94, 0x42, 0x41, 0xc3, 0x0b, 0x20, 0x1b, 0xe6, 0xd1, 0x81,
+ 0xed, 0xd2, 0x0d, 0x55, 0xfe, 0x03, 0x74, 0xa4, 0x3d, 0x68, 0x20, 0x5d,
+ 0x8e, 0xf7, 0x58, 0xff,
+};
+static const struct drbg_kat_pr_true kat4230_t = {
+ 14, kat4230_entropyin, kat4230_nonce, kat4230_persstr,
+ kat4230_entropyinpr1, kat4230_addinpr1, kat4230_entropyinpr2,
+ kat4230_addinpr2, kat4230_retbits
+};
+static const struct drbg_kat kat4230 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4230_t
+};
+
+static const unsigned char kat4231_entropyin[] = {
+ 0x87, 0x54, 0x68, 0x8f, 0x2a, 0xfa, 0x71, 0x1e, 0x12, 0xae, 0x65, 0xb6,
+ 0xa4, 0xc5, 0xe7, 0xa5, 0x1e, 0x5f, 0xfe, 0xcf, 0xef, 0xb2, 0x34, 0x79,
+ 0x08, 0xab, 0x19, 0x11, 0xbb, 0x37, 0xb1, 0xf1, 0xe1, 0x5f, 0x12, 0xc8,
+ 0x94, 0x8c, 0xba, 0x3b, 0x7c, 0x76, 0xf0, 0x0c, 0x74, 0x2f, 0x74, 0xae,
+};
+static const unsigned char kat4231_nonce[] = {0};
+static const unsigned char kat4231_persstr[] = {
+ 0x6f, 0x11, 0xce, 0x50, 0x1e, 0x74, 0x18, 0x17, 0xbf, 0x70, 0xf4, 0x72,
+ 0xc8, 0xeb, 0x57, 0x07, 0x2a, 0x08, 0xdb, 0x0b, 0x10, 0xdf, 0x75, 0x98,
+ 0xa5, 0x69, 0x75, 0x7d, 0xc8, 0x2c, 0xed, 0xa5, 0xd8, 0xce, 0x1d, 0xb8,
+ 0xd5, 0x8c, 0xf4, 0xb2, 0x46, 0xa7, 0x7d, 0xdc, 0x62, 0xc8, 0xf0, 0xd7,
+};
+static const unsigned char kat4231_entropyinpr1[] = {
+ 0x14, 0x86, 0xe8, 0x2b, 0x9f, 0xa8, 0x89, 0x75, 0x81, 0x7e, 0x47, 0x34,
+ 0x22, 0x09, 0xba, 0xa7, 0x3e, 0x6e, 0x5b, 0xb0, 0x1f, 0xa8, 0xe0, 0x73,
+ 0x37, 0x44, 0x3b, 0x64, 0x5b, 0x1f, 0x74, 0xba, 0x94, 0xa7, 0xfd, 0x3d,
+ 0x78, 0xd5, 0x67, 0x41, 0xb1, 0x4f, 0xf5, 0x9e, 0xc4, 0xa1, 0x93, 0xc4,
+};
+static const unsigned char kat4231_addinpr1[] = {0};
+static const unsigned char kat4231_entropyinpr2[] = {
+ 0x97, 0x7f, 0x62, 0x91, 0x3f, 0xf7, 0x75, 0x5d, 0xf2, 0x2f, 0xa6, 0xdc,
+ 0xe0, 0x63, 0x66, 0xf6, 0xf7, 0xc6, 0x6e, 0xe9, 0x70, 0x05, 0x65, 0xab,
+ 0x05, 0x6e, 0xed, 0x91, 0x06, 0x4b, 0xfe, 0xd8, 0x15, 0xbf, 0xc0, 0xc9,
+ 0xf4, 0x64, 0xce, 0x97, 0x80, 0x02, 0x5c, 0x70, 0xdd, 0xaf, 0x8c, 0x85,
+};
+static const unsigned char kat4231_addinpr2[] = {0};
+static const unsigned char kat4231_retbits[] = {
+ 0xc7, 0x63, 0xa4, 0x7f, 0xdd, 0xd5, 0x84, 0xd0, 0x81, 0x0e, 0x1f, 0xbf,
+ 0x09, 0x92, 0x09, 0xc2, 0xcf, 0x5c, 0xfb, 0xd0, 0x14, 0x81, 0x51, 0xb9,
+ 0x95, 0x05, 0xb3, 0xb8, 0x62, 0x44, 0x97, 0xdf, 0x32, 0xc0, 0x2b, 0x56,
+ 0xba, 0xe3, 0x38, 0xcb, 0x15, 0xcb, 0x7c, 0x5a, 0xde, 0x19, 0x7d, 0x77,
+ 0x64, 0x3b, 0x67, 0xec, 0x06, 0xc3, 0x28, 0x07, 0x22, 0x62, 0x7b, 0xe3,
+ 0x70, 0x2a, 0xe4, 0x65,
+};
+static const struct drbg_kat_pr_true kat4231_t = {
+ 0, kat4231_entropyin, kat4231_nonce, kat4231_persstr,
+ kat4231_entropyinpr1, kat4231_addinpr1, kat4231_entropyinpr2,
+ kat4231_addinpr2, kat4231_retbits
+};
+static const struct drbg_kat kat4231 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4231_t
+};
+
+static const unsigned char kat4232_entropyin[] = {
+ 0x94, 0x6c, 0xa2, 0x27, 0x6b, 0x14, 0xa1, 0x2e, 0x3f, 0xec, 0x37, 0xa3,
+ 0xb0, 0x98, 0x6e, 0xda, 0x88, 0x07, 0x6b, 0xe0, 0x1a, 0x76, 0x95, 0x46,
+ 0x76, 0x03, 0xcd, 0xe3, 0xd2, 0x12, 0x0f, 0x6c, 0x98, 0x48, 0x3b, 0xf8,
+ 0xe7, 0xe2, 0x8a, 0xac, 0xd3, 0x54, 0xde, 0x8f, 0xd0, 0x68, 0xa5, 0x9a,
+};
+static const unsigned char kat4232_nonce[] = {0};
+static const unsigned char kat4232_persstr[] = {
+ 0xc3, 0x79, 0xd1, 0x6e, 0xca, 0xef, 0x5c, 0x8b, 0xf8, 0xd8, 0xa5, 0x2a,
+ 0x0e, 0x43, 0x8e, 0x69, 0xf6, 0x8f, 0xbc, 0xdc, 0x43, 0xf4, 0x89, 0x12,
+ 0xea, 0x32, 0x19, 0x06, 0xfc, 0x1a, 0x42, 0x7e, 0xcd, 0xe9, 0x56, 0x91,
+ 0x1b, 0x87, 0x44, 0x5c, 0x70, 0x3c, 0x78, 0x3f, 0xc4, 0x1f, 0x43, 0xd1,
+};
+static const unsigned char kat4232_entropyinpr1[] = {
+ 0x4d, 0xec, 0x4c, 0x9a, 0xcc, 0x06, 0xbe, 0x7a, 0xc2, 0x73, 0x68, 0x17,
+ 0x91, 0x48, 0x04, 0xcc, 0x8b, 0x91, 0xb8, 0xc9, 0x8d, 0xb3, 0x9a, 0xf6,
+ 0xe4, 0x1f, 0x39, 0x8c, 0xa1, 0x96, 0xc2, 0xff, 0x81, 0x30, 0x40, 0xad,
+ 0xef, 0xef, 0x39, 0x60, 0x0a, 0xba, 0x67, 0xc9, 0x89, 0x64, 0x38, 0x58,
+};
+static const unsigned char kat4232_addinpr1[] = {0};
+static const unsigned char kat4232_entropyinpr2[] = {
+ 0xe0, 0x4a, 0x72, 0x34, 0x92, 0xbc, 0xe4, 0x0c, 0xd4, 0x53, 0xb3, 0x22,
+ 0x8f, 0x95, 0xd8, 0x86, 0xe9, 0xdc, 0x89, 0x7d, 0xea, 0xce, 0xfd, 0x2f,
+ 0x8b, 0x5a, 0xdd, 0xd7, 0x2b, 0xc1, 0x9c, 0xd5, 0x1c, 0xce, 0x24, 0xac,
+ 0xbb, 0xac, 0x04, 0xd9, 0xd3, 0x13, 0xaf, 0x2a, 0xe7, 0x6a, 0x1f, 0x48,
+};
+static const unsigned char kat4232_addinpr2[] = {0};
+static const unsigned char kat4232_retbits[] = {
+ 0xd3, 0x8c, 0xb0, 0x9e, 0xf4, 0xba, 0x80, 0x61, 0xa2, 0x3a, 0x07, 0x82,
+ 0x2e, 0x8c, 0x1d, 0x2d, 0xf6, 0x40, 0xed, 0x67, 0x23, 0x95, 0x7c, 0xaa,
+ 0xf7, 0xef, 0xf4, 0x37, 0x29, 0x18, 0xb2, 0x77, 0x10, 0x74, 0x68, 0x8b,
+ 0x16, 0x77, 0xf4, 0x09, 0x0c, 0x5d, 0x4f, 0xe4, 0xb4, 0x36, 0xea, 0x94,
+ 0x15, 0x1a, 0x9e, 0x6b, 0xa7, 0x50, 0xd2, 0x2c, 0x73, 0x4e, 0x55, 0xb5,
+ 0x9f, 0x90, 0x11, 0x3c,
+};
+static const struct drbg_kat_pr_true kat4232_t = {
+ 1, kat4232_entropyin, kat4232_nonce, kat4232_persstr,
+ kat4232_entropyinpr1, kat4232_addinpr1, kat4232_entropyinpr2,
+ kat4232_addinpr2, kat4232_retbits
+};
+static const struct drbg_kat kat4232 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4232_t
+};
+
+static const unsigned char kat4233_entropyin[] = {
+ 0xba, 0x0b, 0xa4, 0x10, 0x59, 0x24, 0xfa, 0x7f, 0xf2, 0xa4, 0x19, 0x69,
+ 0x30, 0x75, 0x1a, 0x9c, 0xd7, 0x42, 0xdf, 0xb4, 0xed, 0x6d, 0x0c, 0xcb,
+ 0x2e, 0xa7, 0x94, 0x4f, 0xc4, 0xdf, 0x3c, 0x31, 0xdc, 0xc0, 0xcc, 0xab,
+ 0xf6, 0x2f, 0x74, 0x5f, 0x6d, 0x4a, 0x9b, 0xdc, 0x82, 0x65, 0xca, 0xc7,
+};
+static const unsigned char kat4233_nonce[] = {0};
+static const unsigned char kat4233_persstr[] = {
+ 0x10, 0xdf, 0x13, 0x43, 0xaa, 0x82, 0xeb, 0x96, 0x50, 0x87, 0x65, 0x9e,
+ 0x34, 0x15, 0x14, 0xfd, 0x53, 0x18, 0x62, 0x18, 0x1b, 0x54, 0x4b, 0x0f,
+ 0x1b, 0x2f, 0x8c, 0x54, 0xb5, 0xd7, 0x78, 0x25, 0xfb, 0x17, 0x71, 0xd4,
+ 0x2a, 0x34, 0x70, 0x39, 0x07, 0x12, 0xcd, 0x55, 0xa4, 0xa8, 0xd0, 0x15,
+};
+static const unsigned char kat4233_entropyinpr1[] = {
+ 0xe2, 0x90, 0x7d, 0xd7, 0x3c, 0xed, 0xba, 0x98, 0x3a, 0xf3, 0xe1, 0xf3,
+ 0x5c, 0x03, 0x15, 0xdc, 0x38, 0x3b, 0x61, 0x35, 0x0d, 0xc8, 0xa2, 0x58,
+ 0x56, 0x95, 0x66, 0xbd, 0x41, 0x33, 0x7c, 0x46, 0x0d, 0x69, 0xb4, 0x3c,
+ 0xc4, 0x84, 0xef, 0xc6, 0x78, 0x30, 0xd7, 0x49, 0x21, 0x9f, 0x0f, 0x5f,
+};
+static const unsigned char kat4233_addinpr1[] = {0};
+static const unsigned char kat4233_entropyinpr2[] = {
+ 0x2e, 0x9b, 0xca, 0x5e, 0x90, 0x41, 0x7c, 0x99, 0x3c, 0x1b, 0x88, 0xc0,
+ 0x11, 0x31, 0x60, 0x27, 0xd5, 0xb1, 0x13, 0x6f, 0xf1, 0xf8, 0x9f, 0xf8,
+ 0xd4, 0x81, 0xa5, 0x54, 0x31, 0xfb, 0x82, 0x1f, 0x49, 0xb2, 0x3c, 0xd8,
+ 0x0c, 0xd2, 0xea, 0x28, 0x3a, 0x16, 0xf2, 0xdd, 0xf9, 0x9a, 0x42, 0x3c,
+};
+static const unsigned char kat4233_addinpr2[] = {0};
+static const unsigned char kat4233_retbits[] = {
+ 0xa4, 0x1c, 0xb4, 0x62, 0x4f, 0x02, 0x10, 0x47, 0xe6, 0xc8, 0x45, 0x88,
+ 0xcf, 0x8c, 0xec, 0xd7, 0xeb, 0xa1, 0xf2, 0x79, 0x40, 0x06, 0x95, 0xfb,
+ 0xe1, 0xea, 0x35, 0x42, 0xd2, 0x22, 0x9c, 0xee, 0xe4, 0xaa, 0xc2, 0x60,
+ 0x74, 0x9c, 0x77, 0x10, 0x3e, 0x42, 0x43, 0x58, 0x30, 0x12, 0x8a, 0xd2,
+ 0x3c, 0xed, 0xd7, 0xe5, 0xea, 0xe7, 0x86, 0xbb, 0x85, 0xc9, 0xb2, 0x8f,
+ 0xda, 0x4e, 0xcf, 0xd7,
+};
+static const struct drbg_kat_pr_true kat4233_t = {
+ 2, kat4233_entropyin, kat4233_nonce, kat4233_persstr,
+ kat4233_entropyinpr1, kat4233_addinpr1, kat4233_entropyinpr2,
+ kat4233_addinpr2, kat4233_retbits
+};
+static const struct drbg_kat kat4233 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4233_t
+};
+
+static const unsigned char kat4234_entropyin[] = {
+ 0x47, 0x77, 0x4d, 0x94, 0x57, 0xce, 0x21, 0xed, 0x3e, 0xc5, 0xc6, 0xd3,
+ 0x05, 0x9b, 0xf1, 0x19, 0x51, 0xea, 0x02, 0xaa, 0x3e, 0x9f, 0xb3, 0x30,
+ 0xa1, 0x4f, 0x11, 0xa4, 0xc4, 0xa4, 0x14, 0xae, 0x04, 0xdc, 0x4c, 0x71,
+ 0x5b, 0xd3, 0xa3, 0xa5, 0x1c, 0x2e, 0x20, 0x3c, 0x34, 0xa0, 0xd0, 0xcb,
+};
+static const unsigned char kat4234_nonce[] = {0};
+static const unsigned char kat4234_persstr[] = {
+ 0x1c, 0x6b, 0xcd, 0xd1, 0xb4, 0xec, 0x24, 0x23, 0xb0, 0x7b, 0xb3, 0xec,
+ 0xec, 0xab, 0x20, 0x96, 0x02, 0x5b, 0xa0, 0xaa, 0x35, 0x99, 0x9e, 0xec,
+ 0x40, 0x18, 0xd7, 0xae, 0xcf, 0xd6, 0x97, 0xdd, 0xe5, 0xd8, 0xf2, 0x61,
+ 0xcb, 0x5d, 0x2e, 0xb6, 0xff, 0xad, 0x39, 0x2d, 0xbd, 0x53, 0xc6, 0x9e,
+};
+static const unsigned char kat4234_entropyinpr1[] = {
+ 0xdb, 0xba, 0x3e, 0x6b, 0x68, 0x72, 0x8c, 0xc8, 0xb9, 0x1c, 0x9c, 0x01,
+ 0x5b, 0xdb, 0x68, 0x36, 0xde, 0xaa, 0x91, 0x75, 0x1c, 0x4b, 0xec, 0xa3,
+ 0x9b, 0x50, 0xcd, 0x86, 0xa4, 0x61, 0x1f, 0x85, 0xd6, 0xc8, 0x56, 0x6f,
+ 0xe1, 0x73, 0xfe, 0xe9, 0x11, 0x5c, 0x57, 0x57, 0xbc, 0xb8, 0xfb, 0xa5,
+};
+static const unsigned char kat4234_addinpr1[] = {0};
+static const unsigned char kat4234_entropyinpr2[] = {
+ 0x00, 0xbd, 0x93, 0x09, 0x9a, 0x12, 0xc6, 0xf1, 0x88, 0xde, 0x02, 0x87,
+ 0x09, 0x61, 0x2a, 0x02, 0x50, 0xa5, 0x5c, 0xf0, 0x1a, 0xe1, 0xab, 0xe7,
+ 0xba, 0x77, 0x90, 0x07, 0x9b, 0xdb, 0xd7, 0x38, 0x15, 0xbe, 0x05, 0x5c,
+ 0xa3, 0x37, 0x02, 0x28, 0x9a, 0xfd, 0xd6, 0xab, 0x7e, 0x36, 0x82, 0x7e,
+};
+static const unsigned char kat4234_addinpr2[] = {0};
+static const unsigned char kat4234_retbits[] = {
+ 0x62, 0xcc, 0x13, 0x66, 0x83, 0xf3, 0xfa, 0x31, 0x3f, 0x19, 0xd2, 0x3e,
+ 0x7c, 0xb3, 0xa2, 0xf3, 0xd2, 0x6c, 0xa6, 0x97, 0x19, 0x5e, 0x08, 0x29,
+ 0xee, 0x74, 0x79, 0x35, 0x1a, 0xce, 0x5a, 0xc5, 0xde, 0xd2, 0x0d, 0xc7,
+ 0x33, 0x2d, 0x34, 0x86, 0x41, 0x9e, 0x56, 0x2a, 0xee, 0x1d, 0x5d, 0xa8,
+ 0x64, 0x7a, 0xe8, 0x35, 0x81, 0x0d, 0xfb, 0xf7, 0x7b, 0xa4, 0xad, 0xa1,
+ 0xd5, 0xe3, 0x10, 0x14,
+};
+static const struct drbg_kat_pr_true kat4234_t = {
+ 3, kat4234_entropyin, kat4234_nonce, kat4234_persstr,
+ kat4234_entropyinpr1, kat4234_addinpr1, kat4234_entropyinpr2,
+ kat4234_addinpr2, kat4234_retbits
+};
+static const struct drbg_kat kat4234 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4234_t
+};
+
+static const unsigned char kat4235_entropyin[] = {
+ 0x79, 0xdc, 0xb3, 0xdc, 0x67, 0xc7, 0x71, 0xbb, 0xdf, 0xcd, 0x9a, 0x2c,
+ 0xc7, 0x6f, 0x79, 0x6e, 0x2d, 0x2c, 0xbd, 0xa5, 0x58, 0xd7, 0xa4, 0xec,
+ 0x32, 0x83, 0x2c, 0xc3, 0xa8, 0x61, 0x39, 0x5e, 0x3c, 0x47, 0xfd, 0xa0,
+ 0xca, 0x58, 0x40, 0x15, 0xf8, 0xa3, 0xb6, 0x6d, 0x95, 0x92, 0x9b, 0x00,
+};
+static const unsigned char kat4235_nonce[] = {0};
+static const unsigned char kat4235_persstr[] = {
+ 0xb0, 0x05, 0x14, 0x37, 0x6f, 0x68, 0xa0, 0x95, 0x99, 0x13, 0x37, 0x0f,
+ 0x46, 0x57, 0x06, 0x02, 0x53, 0x4d, 0x34, 0x9b, 0xc7, 0x09, 0x16, 0x4c,
+ 0xcf, 0xd0, 0xa2, 0xd6, 0x9c, 0x1d, 0xc4, 0x15, 0xa0, 0x43, 0x75, 0x68,
+ 0x2b, 0xd2, 0x2a, 0x6e, 0xc3, 0x29, 0x46, 0xec, 0xd5, 0xae, 0x7a, 0x6d,
+};
+static const unsigned char kat4235_entropyinpr1[] = {
+ 0xa4, 0x95, 0xbd, 0x95, 0x3c, 0xb0, 0xd8, 0x0a, 0x34, 0x53, 0x4b, 0xef,
+ 0x91, 0x6b, 0x0a, 0x80, 0xe5, 0x3b, 0x45, 0x64, 0x3f, 0xb1, 0xe3, 0x27,
+ 0xcb, 0xa0, 0x27, 0x77, 0x71, 0x96, 0x75, 0x40, 0x22, 0xaf, 0xf3, 0x6c,
+ 0x06, 0xb1, 0xf6, 0x6a, 0x3e, 0x28, 0x65, 0x5b, 0xad, 0x37, 0x1d, 0x76,
+};
+static const unsigned char kat4235_addinpr1[] = {0};
+static const unsigned char kat4235_entropyinpr2[] = {
+ 0x7f, 0x73, 0x87, 0x73, 0xe8, 0x1a, 0x97, 0xf4, 0x13, 0xdc, 0xab, 0x60,
+ 0x73, 0x56, 0x50, 0x76, 0xdb, 0xc1, 0xc4, 0xdc, 0x11, 0x0a, 0xbd, 0xcd,
+ 0x9c, 0xb4, 0xa2, 0x0d, 0xa8, 0x24, 0xfc, 0xb1, 0x3b, 0xf8, 0x8d, 0xbd,
+ 0x51, 0xdf, 0xf4, 0xe3, 0xce, 0xa3, 0xbb, 0x1c, 0x99, 0xd3, 0x77, 0x4c,
+};
+static const unsigned char kat4235_addinpr2[] = {0};
+static const unsigned char kat4235_retbits[] = {
+ 0x1f, 0x2d, 0xe1, 0x55, 0xa9, 0xa8, 0x7e, 0xb9, 0xf7, 0x90, 0x43, 0x08,
+ 0xe7, 0x00, 0xb7, 0x84, 0x51, 0x37, 0x7e, 0x93, 0x3a, 0x92, 0x75, 0xd1,
+ 0x2d, 0x36, 0x67, 0xd4, 0x02, 0xc6, 0x94, 0x59, 0x95, 0xee, 0x95, 0xa0,
+ 0x66, 0xc2, 0x9c, 0x0f, 0x75, 0xe9, 0xad, 0xdc, 0xf1, 0xa3, 0x56, 0x2c,
+ 0xc9, 0x35, 0x5d, 0x31, 0x8c, 0xba, 0xa0, 0xfe, 0xd5, 0x2b, 0x4c, 0xf9,
+ 0xcf, 0x7b, 0xa1, 0x30,
+};
+static const struct drbg_kat_pr_true kat4235_t = {
+ 4, kat4235_entropyin, kat4235_nonce, kat4235_persstr,
+ kat4235_entropyinpr1, kat4235_addinpr1, kat4235_entropyinpr2,
+ kat4235_addinpr2, kat4235_retbits
+};
+static const struct drbg_kat kat4235 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4235_t
+};
+
+static const unsigned char kat4236_entropyin[] = {
+ 0xc1, 0x17, 0xb1, 0x13, 0xc6, 0x22, 0xe1, 0xd7, 0xb0, 0xa1, 0x03, 0xee,
+ 0x27, 0xa7, 0xe4, 0x37, 0x8b, 0x41, 0x29, 0x22, 0x7f, 0xd7, 0x42, 0xb9,
+ 0x67, 0xbe, 0x5c, 0x4a, 0x03, 0x77, 0xa8, 0x00, 0x21, 0x66, 0x7b, 0xa0,
+ 0x86, 0x83, 0x38, 0xff, 0xc0, 0x1a, 0x91, 0x30, 0x82, 0x61, 0x97, 0xec,
+};
+static const unsigned char kat4236_nonce[] = {0};
+static const unsigned char kat4236_persstr[] = {
+ 0xb9, 0x65, 0x79, 0x22, 0x7c, 0xed, 0x48, 0x52, 0x82, 0x84, 0x4e, 0xf2,
+ 0x72, 0xef, 0x1a, 0x55, 0x71, 0x28, 0x95, 0x24, 0x63, 0x71, 0x53, 0xfd,
+ 0x88, 0x07, 0x0d, 0xed, 0xb6, 0x50, 0x52, 0x1a, 0x38, 0x31, 0x55, 0xe2,
+ 0x37, 0x75, 0x18, 0xe5, 0xf0, 0x9d, 0x97, 0x05, 0x60, 0x4d, 0x64, 0x07,
+};
+static const unsigned char kat4236_entropyinpr1[] = {
+ 0x15, 0x9a, 0x81, 0x7c, 0xa5, 0x2b, 0xd8, 0x67, 0x2b, 0x4f, 0x76, 0x76,
+ 0xa6, 0xd9, 0x4a, 0x6d, 0x36, 0xa0, 0x88, 0x65, 0x72, 0x56, 0xfd, 0x8e,
+ 0x9a, 0x77, 0x05, 0x3d, 0x65, 0xf3, 0xe0, 0x4f, 0x9a, 0xab, 0xd2, 0x8e,
+ 0x80, 0x87, 0xf6, 0x1c, 0x82, 0x77, 0x98, 0xbf, 0x4a, 0x78, 0xb0, 0x52,
+};
+static const unsigned char kat4236_addinpr1[] = {0};
+static const unsigned char kat4236_entropyinpr2[] = {
+ 0x6d, 0xfb, 0xdc, 0x58, 0x07, 0x77, 0x97, 0xce, 0x8e, 0x2c, 0xe7, 0xda,
+ 0x56, 0xc0, 0x79, 0xe2, 0x63, 0xac, 0x83, 0xe2, 0x54, 0x98, 0x66, 0xb7,
+ 0x12, 0xc8, 0x28, 0x8c, 0xff, 0x81, 0x65, 0x1e, 0xfc, 0xa5, 0x43, 0xc9,
+ 0x2c, 0x34, 0x76, 0x34, 0xb1, 0xd7, 0x6d, 0x52, 0x31, 0xeb, 0xe4, 0xd3,
+};
+static const unsigned char kat4236_addinpr2[] = {0};
+static const unsigned char kat4236_retbits[] = {
+ 0x43, 0xd6, 0x74, 0x2d, 0x0d, 0x87, 0xa8, 0xa3, 0x56, 0xc7, 0x5b, 0xa1,
+ 0xa0, 0x1c, 0xed, 0xc7, 0xae, 0x60, 0x9a, 0xe6, 0x2b, 0x19, 0x49, 0x67,
+ 0xbf, 0x16, 0xb8, 0x00, 0xfb, 0x66, 0x1e, 0x53, 0x9d, 0xfb, 0x99, 0x46,
+ 0x7b, 0x3e, 0xd6, 0x4d, 0x0e, 0xdc, 0x1c, 0xe8, 0x5c, 0xd0, 0x74, 0x8e,
+ 0x91, 0x53, 0x99, 0xd8, 0x22, 0xcb, 0x96, 0xed, 0x09, 0xe6, 0xb0, 0x41,
+ 0xb4, 0x57, 0x88, 0xce,
+};
+static const struct drbg_kat_pr_true kat4236_t = {
+ 5, kat4236_entropyin, kat4236_nonce, kat4236_persstr,
+ kat4236_entropyinpr1, kat4236_addinpr1, kat4236_entropyinpr2,
+ kat4236_addinpr2, kat4236_retbits
+};
+static const struct drbg_kat kat4236 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4236_t
+};
+
+static const unsigned char kat4237_entropyin[] = {
+ 0xe4, 0xa3, 0xf1, 0x83, 0xce, 0xda, 0x04, 0xe8, 0xb4, 0xfd, 0x0d, 0xd0,
+ 0x63, 0x98, 0xc3, 0x92, 0x7c, 0xa9, 0x50, 0x15, 0x26, 0x04, 0x4c, 0x6f,
+ 0xb5, 0x2e, 0x73, 0x06, 0x43, 0xd0, 0x6d, 0xd0, 0x60, 0x59, 0x53, 0xc5,
+ 0xa0, 0x49, 0x5a, 0xd2, 0x29, 0x2d, 0xdf, 0x6e, 0x1a, 0x36, 0x49, 0xb0,
+};
+static const unsigned char kat4237_nonce[] = {0};
+static const unsigned char kat4237_persstr[] = {
+ 0xb6, 0x4c, 0x4a, 0x06, 0xea, 0x5b, 0xfe, 0x33, 0x42, 0x29, 0xd7, 0x98,
+ 0x91, 0x28, 0x42, 0x61, 0xfe, 0xa8, 0x05, 0x66, 0x1b, 0xef, 0x91, 0x32,
+ 0x44, 0x9a, 0x08, 0xc9, 0xd8, 0x48, 0x09, 0x12, 0x21, 0x75, 0x3c, 0x05,
+ 0x6e, 0x86, 0x24, 0x8c, 0x0f, 0xce, 0x18, 0x3a, 0x5b, 0x71, 0xf8, 0x1a,
+};
+static const unsigned char kat4237_entropyinpr1[] = {
+ 0x72, 0xdd, 0x27, 0xb9, 0xdc, 0xf3, 0xdc, 0x6c, 0x18, 0xc6, 0xb2, 0x88,
+ 0xd8, 0x78, 0x8f, 0xb8, 0x7a, 0xae, 0x0b, 0x49, 0x71, 0xed, 0x78, 0xa5,
+ 0x2e, 0xe3, 0x49, 0x83, 0xfa, 0x29, 0x6a, 0xaa, 0x67, 0xe1, 0x9e, 0x3b,
+ 0xf4, 0x57, 0x22, 0xea, 0xf7, 0xdf, 0x17, 0xa7, 0x6f, 0x8c, 0x5d, 0x61,
+};
+static const unsigned char kat4237_addinpr1[] = {0};
+static const unsigned char kat4237_entropyinpr2[] = {
+ 0x20, 0x16, 0x9d, 0x7c, 0xa0, 0xc6, 0x02, 0xa4, 0x32, 0xfe, 0xcd, 0x65,
+ 0xe3, 0x67, 0xa7, 0x40, 0xe0, 0xa5, 0x4c, 0x9e, 0x91, 0x91, 0x10, 0x77,
+ 0x6d, 0xc8, 0x8e, 0x18, 0xdf, 0x5c, 0x87, 0x10, 0x73, 0xf1, 0xe2, 0x4f,
+ 0x10, 0xb9, 0xa8, 0x5b, 0x6d, 0x56, 0x02, 0x3a, 0xcd, 0x7b, 0x6a, 0x48,
+};
+static const unsigned char kat4237_addinpr2[] = {0};
+static const unsigned char kat4237_retbits[] = {
+ 0xb2, 0xfe, 0xa7, 0x4f, 0x85, 0x72, 0x1e, 0x90, 0xac, 0x7e, 0x50, 0x49,
+ 0x9e, 0x5c, 0xea, 0xbb, 0x25, 0x25, 0xff, 0x82, 0xfe, 0xeb, 0xd4, 0xc7,
+ 0xa8, 0xe6, 0x57, 0x44, 0x7d, 0x31, 0x81, 0x24, 0x17, 0x7d, 0xa6, 0xfd,
+ 0x22, 0x03, 0x78, 0xde, 0xcd, 0xc5, 0x10, 0x90, 0x7b, 0x32, 0xbc, 0xd9,
+ 0x8b, 0x67, 0xd4, 0xf6, 0x0a, 0xe7, 0xa8, 0xb2, 0x95, 0x85, 0xe3, 0x94,
+ 0xc6, 0x1c, 0xbd, 0x9b,
+};
+static const struct drbg_kat_pr_true kat4237_t = {
+ 6, kat4237_entropyin, kat4237_nonce, kat4237_persstr,
+ kat4237_entropyinpr1, kat4237_addinpr1, kat4237_entropyinpr2,
+ kat4237_addinpr2, kat4237_retbits
+};
+static const struct drbg_kat kat4237 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4237_t
+};
+
+static const unsigned char kat4238_entropyin[] = {
+ 0x33, 0xe3, 0x7d, 0x78, 0x30, 0xdb, 0xbc, 0x42, 0x2d, 0x5a, 0xdc, 0x8f,
+ 0x22, 0xac, 0xf4, 0x20, 0xc6, 0x45, 0xd2, 0x9e, 0xde, 0x81, 0xe1, 0xbc,
+ 0x0d, 0xc3, 0x17, 0xf9, 0xc3, 0xbc, 0x85, 0xc4, 0xe4, 0x9f, 0xec, 0x7a,
+ 0xb1, 0x28, 0x59, 0x20, 0xe4, 0x00, 0x5d, 0x8a, 0x11, 0x98, 0xb8, 0x5d,
+};
+static const unsigned char kat4238_nonce[] = {0};
+static const unsigned char kat4238_persstr[] = {
+ 0x4e, 0xd9, 0x8a, 0xa5, 0x24, 0xd9, 0xf7, 0xe0, 0x3e, 0xc0, 0xeb, 0xc1,
+ 0x49, 0x1c, 0xad, 0x20, 0xce, 0x28, 0x3c, 0xd0, 0x0f, 0x41, 0x88, 0x91,
+ 0x0a, 0x09, 0x1d, 0x70, 0x1b, 0x24, 0x4c, 0xf5, 0x2e, 0x1d, 0x6d, 0x15,
+ 0xc9, 0x8f, 0xb8, 0x08, 0x93, 0x97, 0xa1, 0x6e, 0x0a, 0xea, 0xed, 0xf3,
+};
+static const unsigned char kat4238_entropyinpr1[] = {
+ 0x9b, 0x0d, 0x1c, 0xa6, 0xe2, 0xbb, 0x51, 0xfa, 0x6d, 0x7f, 0xc5, 0xc4,
+ 0xc6, 0x45, 0x6f, 0xe9, 0x95, 0xda, 0x40, 0x0e, 0xc9, 0xb2, 0xbf, 0x7e,
+ 0x65, 0x6d, 0x77, 0xe1, 0xf9, 0x72, 0x06, 0x47, 0x82, 0x4a, 0x76, 0x9e,
+ 0xc9, 0xa2, 0xd8, 0xfa, 0x57, 0x84, 0x12, 0xc8, 0xe8, 0xeb, 0x55, 0x83,
+};
+static const unsigned char kat4238_addinpr1[] = {0};
+static const unsigned char kat4238_entropyinpr2[] = {
+ 0x34, 0x19, 0x78, 0xb5, 0x53, 0xfa, 0x9b, 0xcd, 0x09, 0x4a, 0x87, 0x8c,
+ 0x2b, 0xdc, 0x64, 0x69, 0xfe, 0x30, 0x5b, 0x08, 0xa7, 0x38, 0xbc, 0x3e,
+ 0x00, 0xc6, 0x43, 0x9d, 0x78, 0x3e, 0x42, 0x0e, 0xd9, 0x8b, 0xf5, 0xf2,
+ 0xe9, 0xca, 0xeb, 0x49, 0x4a, 0x4e, 0x6e, 0x05, 0x8f, 0x4e, 0xf7, 0x93,
+};
+static const unsigned char kat4238_addinpr2[] = {0};
+static const unsigned char kat4238_retbits[] = {
+ 0xee, 0x82, 0x33, 0xf7, 0xe5, 0xbd, 0x96, 0x66, 0x65, 0xc6, 0xcb, 0xa0,
+ 0x96, 0xd5, 0xac, 0x88, 0x91, 0xf7, 0xf7, 0x17, 0xe7, 0xcf, 0xba, 0x48,
+ 0xb4, 0x94, 0x3b, 0x2c, 0xa4, 0xd5, 0x69, 0xa2, 0x95, 0x05, 0x8c, 0x94,
+ 0x5b, 0xec, 0x3e, 0xe6, 0xac, 0x8a, 0xdd, 0x83, 0xd1, 0xc0, 0x1f, 0x0f,
+ 0x63, 0xfd, 0x92, 0xb8, 0xf8, 0x6c, 0x4c, 0x0a, 0xde, 0x92, 0x73, 0xd6,
+ 0xd9, 0x1b, 0x7b, 0xdc,
+};
+static const struct drbg_kat_pr_true kat4238_t = {
+ 7, kat4238_entropyin, kat4238_nonce, kat4238_persstr,
+ kat4238_entropyinpr1, kat4238_addinpr1, kat4238_entropyinpr2,
+ kat4238_addinpr2, kat4238_retbits
+};
+static const struct drbg_kat kat4238 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4238_t
+};
+
+static const unsigned char kat4239_entropyin[] = {
+ 0x9b, 0x4d, 0x85, 0xbc, 0x90, 0xb2, 0xdb, 0xec, 0x32, 0x89, 0xb2, 0x6c,
+ 0x88, 0x4e, 0x9f, 0x62, 0xd1, 0x54, 0xf8, 0xfb, 0x3a, 0x14, 0x8e, 0x3a,
+ 0xa2, 0xba, 0x78, 0x83, 0xe3, 0x98, 0xd2, 0xb9, 0xb3, 0x34, 0xc6, 0x91,
+ 0xdf, 0xf8, 0x3c, 0xaa, 0x1d, 0x1c, 0xa1, 0x83, 0xa0, 0xda, 0x5b, 0x55,
+};
+static const unsigned char kat4239_nonce[] = {0};
+static const unsigned char kat4239_persstr[] = {
+ 0x1e, 0x06, 0x5e, 0x67, 0x9d, 0x0b, 0xf9, 0x65, 0x34, 0x86, 0xaf, 0xbf,
+ 0x6b, 0xe2, 0x05, 0x67, 0xaf, 0xfd, 0xf0, 0xb7, 0xc2, 0xdb, 0xb8, 0x8e,
+ 0x38, 0x57, 0xa2, 0x7d, 0x82, 0x53, 0xca, 0x81, 0xd5, 0x16, 0x0d, 0x0a,
+ 0xaf, 0x26, 0x1d, 0x5c, 0xfd, 0x20, 0x3b, 0x07, 0xf8, 0x0f, 0x7f, 0x29,
+};
+static const unsigned char kat4239_entropyinpr1[] = {
+ 0xd3, 0x74, 0x34, 0xfe, 0x63, 0x47, 0x9b, 0xe3, 0x11, 0x9a, 0x66, 0xb8,
+ 0x92, 0x71, 0x91, 0x29, 0x68, 0x6f, 0xdb, 0x95, 0x5d, 0xe3, 0xf4, 0x57,
+ 0x6e, 0x77, 0xef, 0x18, 0xed, 0xde, 0x48, 0xa4, 0x88, 0x22, 0xb5, 0x7b,
+ 0xd9, 0x31, 0x33, 0x4f, 0x16, 0x18, 0x3a, 0xdf, 0x99, 0xb0, 0x98, 0xf7,
+};
+static const unsigned char kat4239_addinpr1[] = {0};
+static const unsigned char kat4239_entropyinpr2[] = {
+ 0x2e, 0x6c, 0x97, 0x77, 0x19, 0x4a, 0x08, 0x22, 0x24, 0x9b, 0x39, 0xa4,
+ 0x3e, 0x5b, 0x9b, 0x9f, 0x11, 0x2a, 0x2d, 0xe3, 0x4d, 0x82, 0x11, 0xfe,
+ 0x71, 0x2b, 0xb5, 0xfb, 0x36, 0x36, 0xbc, 0xf9, 0x54, 0xe9, 0xa9, 0x6e,
+ 0xf5, 0x0f, 0x47, 0x76, 0x1b, 0x85, 0x12, 0xdb, 0x23, 0x47, 0x87, 0xbd,
+};
+static const unsigned char kat4239_addinpr2[] = {0};
+static const unsigned char kat4239_retbits[] = {
+ 0x35, 0xa2, 0x35, 0xc6, 0xa3, 0x73, 0xe6, 0x06, 0x74, 0x79, 0x38, 0xc2,
+ 0x9b, 0x49, 0x1a, 0xaa, 0xab, 0xaf, 0x9b, 0xcb, 0x32, 0xfc, 0x3d, 0x8f,
+ 0x32, 0x7a, 0x7c, 0x54, 0xa1, 0xd0, 0x45, 0x36, 0x0b, 0x5b, 0x2d, 0x80,
+ 0x31, 0x1e, 0x50, 0x31, 0x91, 0xda, 0x52, 0x1f, 0x7f, 0x77, 0x44, 0x86,
+ 0xdc, 0x52, 0x16, 0x24, 0x2f, 0xc1, 0x68, 0x46, 0x84, 0x45, 0xc8, 0x2a,
+ 0x4b, 0x97, 0xd1, 0x58,
+};
+static const struct drbg_kat_pr_true kat4239_t = {
+ 8, kat4239_entropyin, kat4239_nonce, kat4239_persstr,
+ kat4239_entropyinpr1, kat4239_addinpr1, kat4239_entropyinpr2,
+ kat4239_addinpr2, kat4239_retbits
+};
+static const struct drbg_kat kat4239 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4239_t
+};
+
+static const unsigned char kat4240_entropyin[] = {
+ 0xa7, 0xf9, 0xe0, 0x49, 0x63, 0x31, 0x22, 0x2c, 0x7d, 0xfe, 0xed, 0x3d,
+ 0x29, 0xf3, 0x4e, 0xbb, 0x0f, 0x5e, 0x98, 0xb2, 0x0b, 0xa7, 0xa5, 0x6b,
+ 0x3f, 0xc6, 0x7d, 0x56, 0x52, 0x5f, 0x92, 0x13, 0xc7, 0xac, 0x91, 0x0c,
+ 0x83, 0xfd, 0xe8, 0x31, 0xed, 0x05, 0x9d, 0xe8, 0x2d, 0xa6, 0x16, 0x36,
+};
+static const unsigned char kat4240_nonce[] = {0};
+static const unsigned char kat4240_persstr[] = {
+ 0xce, 0x40, 0x11, 0x47, 0x53, 0x08, 0x89, 0x65, 0xa9, 0x1b, 0x59, 0x45,
+ 0x8f, 0xfb, 0xab, 0x03, 0xdf, 0x50, 0xd3, 0xae, 0x72, 0x4f, 0x7c, 0x01,
+ 0x59, 0x18, 0x87, 0x64, 0x18, 0xc3, 0xad, 0xee, 0xdf, 0x4b, 0x28, 0xc5,
+ 0x3e, 0x3a, 0x4b, 0xfd, 0xaf, 0xbf, 0xaf, 0xda, 0xa7, 0x6b, 0xbe, 0xde,
+};
+static const unsigned char kat4240_entropyinpr1[] = {
+ 0x10, 0x48, 0x2d, 0x23, 0x85, 0x97, 0xaf, 0x71, 0x31, 0x33, 0xe7, 0xe8,
+ 0x0b, 0xea, 0x0d, 0xf2, 0xe7, 0x5a, 0x95, 0x82, 0xd0, 0xe9, 0x4d, 0x09,
+ 0x41, 0x4d, 0x20, 0xf4, 0x55, 0xd4, 0x3d, 0xef, 0x9b, 0xf5, 0xa2, 0xd1,
+ 0xcd, 0xcf, 0xc1, 0xd2, 0x56, 0x5e, 0xba, 0xf7, 0xaf, 0xfd, 0xdc, 0x98,
+};
+static const unsigned char kat4240_addinpr1[] = {0};
+static const unsigned char kat4240_entropyinpr2[] = {
+ 0x53, 0x52, 0xfa, 0xe3, 0xef, 0x83, 0x79, 0xe5, 0x66, 0x73, 0xdc, 0xef,
+ 0xb2, 0x22, 0x34, 0x6d, 0xbd, 0xaf, 0x0c, 0x85, 0x11, 0x75, 0x64, 0xd1,
+ 0x62, 0x1e, 0xbd, 0x9b, 0x1e, 0x87, 0xa1, 0x0e, 0x7c, 0xc7, 0x32, 0xe7,
+ 0x47, 0x5d, 0x18, 0x42, 0xca, 0x9b, 0x4b, 0x5a, 0x3c, 0xf1, 0xbc, 0x66,
+};
+static const unsigned char kat4240_addinpr2[] = {0};
+static const unsigned char kat4240_retbits[] = {
+ 0x82, 0xc8, 0xc1, 0xcb, 0x19, 0xe9, 0x2d, 0x9d, 0x62, 0xd6, 0xa9, 0xab,
+ 0x91, 0x00, 0x34, 0x59, 0xe3, 0x09, 0xa2, 0x64, 0xe6, 0x71, 0x8a, 0x4e,
+ 0xc0, 0x5e, 0xbb, 0xe9, 0xf2, 0x1c, 0xad, 0x01, 0xca, 0x99, 0xd1, 0xc9,
+ 0xb1, 0xa3, 0x5e, 0x9d, 0x38, 0x5e, 0x03, 0xfb, 0xa5, 0x96, 0x22, 0x43,
+ 0x73, 0x68, 0xb7, 0x48, 0xea, 0x62, 0x91, 0x49, 0xd5, 0x0f, 0x9c, 0x6f,
+ 0x48, 0x19, 0x40, 0xfb,
+};
+static const struct drbg_kat_pr_true kat4240_t = {
+ 9, kat4240_entropyin, kat4240_nonce, kat4240_persstr,
+ kat4240_entropyinpr1, kat4240_addinpr1, kat4240_entropyinpr2,
+ kat4240_addinpr2, kat4240_retbits
+};
+static const struct drbg_kat kat4240 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4240_t
+};
+
+static const unsigned char kat4241_entropyin[] = {
+ 0x21, 0xf1, 0xb6, 0x92, 0xb8, 0x83, 0x20, 0xc1, 0x16, 0xaf, 0xe5, 0x82,
+ 0x60, 0x37, 0x36, 0xd4, 0xcb, 0xf9, 0x05, 0xfd, 0xc4, 0x38, 0xd2, 0xba,
+ 0x92, 0x86, 0xfa, 0x7a, 0x8f, 0x27, 0x4e, 0x52, 0xba, 0x7c, 0x49, 0x5a,
+ 0x4f, 0xcb, 0x35, 0x86, 0x78, 0xd9, 0x04, 0x2d, 0xd7, 0x76, 0xb0, 0x29,
+};
+static const unsigned char kat4241_nonce[] = {0};
+static const unsigned char kat4241_persstr[] = {
+ 0xec, 0x29, 0xd7, 0x72, 0x91, 0x69, 0x5f, 0x9a, 0x52, 0x99, 0x0b, 0x7c,
+ 0x54, 0x44, 0xa7, 0x3f, 0x50, 0xfb, 0x8e, 0x3b, 0x2c, 0xfc, 0x19, 0xb0,
+ 0x4e, 0xa2, 0xb0, 0xeb, 0x18, 0xca, 0xa2, 0x88, 0x22, 0xc9, 0x0c, 0x7f,
+ 0x8d, 0x89, 0xb0, 0xec, 0x11, 0x47, 0x46, 0xa6, 0x5c, 0xc1, 0xa9, 0xd7,
+};
+static const unsigned char kat4241_entropyinpr1[] = {
+ 0x3e, 0xfc, 0x69, 0x84, 0xb4, 0xfd, 0xf7, 0x0c, 0x7a, 0xfa, 0x67, 0x30,
+ 0xdd, 0xe7, 0x38, 0x61, 0x06, 0xc7, 0xa6, 0xcf, 0xba, 0x3f, 0x90, 0x87,
+ 0xbf, 0xb3, 0x0e, 0x7d, 0x34, 0x0a, 0xf8, 0x03, 0xfc, 0x33, 0x13, 0x1a,
+ 0x82, 0x57, 0x73, 0x08, 0xb3, 0xa5, 0x74, 0x6b, 0x25, 0xb4, 0x46, 0x19,
+};
+static const unsigned char kat4241_addinpr1[] = {0};
+static const unsigned char kat4241_entropyinpr2[] = {
+ 0x35, 0x7e, 0xf0, 0xf1, 0x12, 0xe2, 0xdf, 0x85, 0xca, 0x17, 0xd9, 0x21,
+ 0x1e, 0xc0, 0xf5, 0xc8, 0xc3, 0xda, 0xa8, 0xe4, 0x22, 0x46, 0xa3, 0xc7,
+ 0xc8, 0x23, 0x93, 0x4d, 0x76, 0xc1, 0xfa, 0x88, 0xcd, 0x55, 0x6c, 0x1b,
+ 0x70, 0xe6, 0xf3, 0x2c, 0xe8, 0x6b, 0xe8, 0x9e, 0xa5, 0x8e, 0x36, 0xce,
+};
+static const unsigned char kat4241_addinpr2[] = {0};
+static const unsigned char kat4241_retbits[] = {
+ 0x4c, 0xf1, 0x66, 0x47, 0x3f, 0xb9, 0x75, 0xab, 0xec, 0xb6, 0x0f, 0xb4,
+ 0x94, 0xa5, 0xfa, 0x5b, 0xef, 0xcd, 0x48, 0xc6, 0x56, 0x22, 0xdb, 0xf0,
+ 0x62, 0x83, 0x3c, 0x25, 0x04, 0x47, 0x6b, 0x8e, 0x6a, 0x50, 0xb2, 0x66,
+ 0x5b, 0x6c, 0x0a, 0xa5, 0xc5, 0x2f, 0x55, 0x4a, 0x8a, 0x4f, 0x3f, 0x5e,
+ 0x4e, 0x52, 0x67, 0x17, 0x91, 0x72, 0x82, 0xf3, 0x89, 0x62, 0xd7, 0xdd,
+ 0x40, 0x12, 0x06, 0x64,
+};
+static const struct drbg_kat_pr_true kat4241_t = {
+ 10, kat4241_entropyin, kat4241_nonce, kat4241_persstr,
+ kat4241_entropyinpr1, kat4241_addinpr1, kat4241_entropyinpr2,
+ kat4241_addinpr2, kat4241_retbits
+};
+static const struct drbg_kat kat4241 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4241_t
+};
+
+static const unsigned char kat4242_entropyin[] = {
+ 0x82, 0xde, 0xc2, 0x56, 0x9f, 0x6c, 0x43, 0x08, 0x5f, 0xc6, 0xec, 0xb6,
+ 0x96, 0x7c, 0xfe, 0x49, 0x7c, 0x89, 0xfd, 0x00, 0x41, 0xc3, 0x87, 0xc6,
+ 0x82, 0xb9, 0x83, 0x28, 0x00, 0x32, 0xf3, 0xe5, 0x61, 0xe4, 0x3f, 0x70,
+ 0x98, 0x77, 0x1b, 0xcd, 0x3c, 0x59, 0x8e, 0xf9, 0xb7, 0x23, 0xd7, 0xf2,
+};
+static const unsigned char kat4242_nonce[] = {0};
+static const unsigned char kat4242_persstr[] = {
+ 0xb0, 0x97, 0x18, 0x4d, 0x44, 0x6f, 0x80, 0xdb, 0xdd, 0x33, 0x35, 0x37,
+ 0x8b, 0x3f, 0xb0, 0xa5, 0x5d, 0xc8, 0xda, 0x9b, 0x79, 0xe0, 0x2d, 0xfe,
+ 0x46, 0x43, 0xc5, 0x36, 0x92, 0x10, 0x90, 0x80, 0x33, 0x18, 0x31, 0xf4,
+ 0x03, 0xb5, 0xc0, 0x8e, 0x0c, 0x55, 0xe1, 0xcd, 0x19, 0x88, 0x35, 0x26,
+};
+static const unsigned char kat4242_entropyinpr1[] = {
+ 0xcf, 0xcd, 0xdb, 0x27, 0x4f, 0x2e, 0x46, 0x93, 0xd4, 0x69, 0x4a, 0x24,
+ 0x11, 0x4a, 0x74, 0x31, 0xbe, 0xe6, 0x96, 0xf9, 0x45, 0x1b, 0x68, 0x5a,
+ 0x60, 0x5a, 0xe6, 0xcf, 0x0d, 0xa6, 0x95, 0xb0, 0xda, 0x17, 0x1d, 0x70,
+ 0x4f, 0xde, 0x77, 0x64, 0x4a, 0x22, 0x77, 0xca, 0x93, 0x50, 0xf8, 0xd5,
+};
+static const unsigned char kat4242_addinpr1[] = {0};
+static const unsigned char kat4242_entropyinpr2[] = {
+ 0x42, 0x54, 0x4c, 0xe3, 0x19, 0x93, 0x30, 0xf0, 0x6c, 0x2f, 0xc7, 0xda,
+ 0x7a, 0xac, 0xdb, 0x57, 0xa1, 0x65, 0x14, 0x51, 0x70, 0x9f, 0x5d, 0xa0,
+ 0x39, 0x85, 0x22, 0xc2, 0xe6, 0x20, 0x1c, 0xa5, 0xd6, 0x3b, 0xdb, 0x18,
+ 0xde, 0x59, 0xb4, 0x47, 0x73, 0xa1, 0xd9, 0x24, 0xae, 0x46, 0x72, 0x55,
+};
+static const unsigned char kat4242_addinpr2[] = {0};
+static const unsigned char kat4242_retbits[] = {
+ 0x3f, 0x02, 0x9e, 0x22, 0xb1, 0xa3, 0x53, 0x80, 0x46, 0x11, 0xf5, 0xa0,
+ 0xf7, 0x06, 0xf4, 0x10, 0xd9, 0x3d, 0x78, 0x58, 0x8f, 0xa5, 0x3a, 0x6a,
+ 0x29, 0xfd, 0xb8, 0xcd, 0xc8, 0x47, 0x95, 0xba, 0xf4, 0xde, 0xa7, 0x1d,
+ 0xea, 0x19, 0x6d, 0xb4, 0xb9, 0xbc, 0x47, 0x25, 0x7b, 0x59, 0xca, 0x95,
+ 0x4a, 0x6d, 0xe2, 0x30, 0xe8, 0xdf, 0xd1, 0x8b, 0x47, 0x91, 0xb3, 0xfd,
+ 0xa5, 0xb9, 0xa5, 0xdc,
+};
+static const struct drbg_kat_pr_true kat4242_t = {
+ 11, kat4242_entropyin, kat4242_nonce, kat4242_persstr,
+ kat4242_entropyinpr1, kat4242_addinpr1, kat4242_entropyinpr2,
+ kat4242_addinpr2, kat4242_retbits
+};
+static const struct drbg_kat kat4242 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4242_t
+};
+
+static const unsigned char kat4243_entropyin[] = {
+ 0x5b, 0xf2, 0x33, 0x2a, 0x91, 0xd8, 0xd8, 0x7f, 0x35, 0x34, 0x33, 0x0f,
+ 0x46, 0x61, 0x04, 0xd8, 0xf4, 0x9f, 0xb2, 0x70, 0x47, 0x35, 0x41, 0x30,
+ 0x63, 0x7f, 0x20, 0x42, 0x58, 0x4a, 0x38, 0x9e, 0xcb, 0x4c, 0xcf, 0x3f,
+ 0xd9, 0x54, 0x5f, 0x11, 0x23, 0xab, 0x6a, 0xa9, 0xab, 0xe2, 0x1e, 0x22,
+};
+static const unsigned char kat4243_nonce[] = {0};
+static const unsigned char kat4243_persstr[] = {
+ 0xcc, 0x3c, 0xad, 0xe1, 0xf3, 0x97, 0x9e, 0x5c, 0x6b, 0x4c, 0x92, 0x03,
+ 0x0c, 0x7c, 0x21, 0x6c, 0x91, 0xd9, 0xc1, 0x1d, 0x95, 0x8b, 0x4c, 0xc9,
+ 0x4a, 0x63, 0xcc, 0xb6, 0x97, 0xa3, 0x87, 0x31, 0x21, 0xcb, 0x4c, 0x2d,
+ 0xc8, 0xd8, 0xc8, 0x45, 0xaa, 0x94, 0xa0, 0x3f, 0x50, 0x4c, 0x19, 0x83,
+};
+static const unsigned char kat4243_entropyinpr1[] = {
+ 0x28, 0x78, 0xe8, 0x24, 0xd4, 0x73, 0x14, 0x00, 0x67, 0x43, 0x61, 0xa4,
+ 0xac, 0x3a, 0x46, 0xab, 0x68, 0xae, 0x35, 0xd2, 0xa9, 0x33, 0x6a, 0xf8,
+ 0x3f, 0x8e, 0x4c, 0xb1, 0xd0, 0xf0, 0xb7, 0x9a, 0x38, 0x29, 0xf4, 0x4c,
+ 0x20, 0x72, 0xe5, 0x33, 0x6a, 0x86, 0x2d, 0xa8, 0x10, 0x9c, 0x57, 0x99,
+};
+static const unsigned char kat4243_addinpr1[] = {0};
+static const unsigned char kat4243_entropyinpr2[] = {
+ 0x06, 0x17, 0xb1, 0x5f, 0x8d, 0x04, 0x5f, 0x48, 0xc4, 0x47, 0x0d, 0x84,
+ 0x74, 0x90, 0xd1, 0x8f, 0x36, 0x85, 0xaf, 0x6b, 0x1f, 0xb5, 0xea, 0x55,
+ 0x1b, 0x31, 0x8b, 0x8b, 0x98, 0xfa, 0x80, 0x3c, 0x05, 0x00, 0xec, 0x74,
+ 0x93, 0xe3, 0xae, 0x0a, 0x7c, 0xb9, 0x81, 0xd1, 0x2e, 0xd0, 0x1c, 0x98,
+};
+static const unsigned char kat4243_addinpr2[] = {0};
+static const unsigned char kat4243_retbits[] = {
+ 0x33, 0x85, 0xa9, 0x12, 0x69, 0x55, 0x13, 0x5b, 0x44, 0xc6, 0x71, 0x96,
+ 0xc0, 0x14, 0xb2, 0xc9, 0x49, 0x18, 0x65, 0x71, 0x36, 0xba, 0x23, 0x86,
+ 0x51, 0xb5, 0x1f, 0x20, 0xf1, 0x11, 0xf5, 0x0f, 0x78, 0xc7, 0xc9, 0x81,
+ 0xe9, 0x27, 0x0b, 0xf0, 0x40, 0x42, 0x02, 0x82, 0x95, 0x43, 0xf3, 0x79,
+ 0x21, 0x1d, 0x14, 0xa1, 0x46, 0x6c, 0xa4, 0x23, 0xef, 0x9c, 0x1f, 0x7a,
+ 0x79, 0x94, 0x33, 0x84,
+};
+static const struct drbg_kat_pr_true kat4243_t = {
+ 12, kat4243_entropyin, kat4243_nonce, kat4243_persstr,
+ kat4243_entropyinpr1, kat4243_addinpr1, kat4243_entropyinpr2,
+ kat4243_addinpr2, kat4243_retbits
+};
+static const struct drbg_kat kat4243 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4243_t
+};
+
+static const unsigned char kat4244_entropyin[] = {
+ 0xac, 0x84, 0xb5, 0xef, 0xb9, 0x15, 0x76, 0x99, 0x3f, 0xf0, 0xb9, 0x07,
+ 0x34, 0x81, 0x2a, 0x1a, 0xf5, 0x2b, 0x64, 0x1d, 0x55, 0xb9, 0x3c, 0x57,
+ 0x78, 0xc9, 0xc2, 0xaf, 0x16, 0x40, 0x35, 0x90, 0x74, 0xf0, 0x93, 0x91,
+ 0xff, 0xfd, 0xe1, 0x78, 0xbd, 0x86, 0xe3, 0xa9, 0xf5, 0x91, 0x74, 0x11,
+};
+static const unsigned char kat4244_nonce[] = {0};
+static const unsigned char kat4244_persstr[] = {
+ 0x35, 0x7d, 0x8f, 0xaa, 0x62, 0xa3, 0xf1, 0x7e, 0x2f, 0xe7, 0xae, 0x2c,
+ 0x68, 0x32, 0xb7, 0xbd, 0x10, 0x21, 0x8f, 0x54, 0xaf, 0xc1, 0x0f, 0x9b,
+ 0x80, 0x7a, 0x3c, 0x06, 0x3d, 0x78, 0xa2, 0x9d, 0x39, 0xd0, 0xf3, 0x3f,
+ 0x22, 0x26, 0x34, 0x18, 0xe3, 0x19, 0xba, 0xdb, 0xd8, 0x6f, 0x72, 0x2c,
+};
+static const unsigned char kat4244_entropyinpr1[] = {
+ 0x46, 0xcb, 0x61, 0x8d, 0x2a, 0x74, 0xef, 0xdc, 0x96, 0xc3, 0xae, 0xc3,
+ 0x63, 0x2b, 0x1c, 0xe3, 0x4a, 0x95, 0xf4, 0x63, 0x76, 0x2e, 0xfe, 0x69,
+ 0xff, 0xda, 0xc2, 0xc7, 0x98, 0x9c, 0x97, 0x78, 0xce, 0x01, 0x39, 0x73,
+ 0x18, 0x19, 0x77, 0x64, 0xc3, 0x64, 0x27, 0xce, 0x4c, 0x2f, 0x32, 0x14,
+};
+static const unsigned char kat4244_addinpr1[] = {0};
+static const unsigned char kat4244_entropyinpr2[] = {
+ 0xa2, 0xc4, 0x9a, 0x27, 0x0f, 0xe0, 0x9f, 0x23, 0x63, 0x53, 0x0b, 0x8c,
+ 0xbd, 0x56, 0xb5, 0x81, 0x07, 0xda, 0xed, 0xb7, 0xe0, 0x79, 0x29, 0xc5,
+ 0xcb, 0x83, 0xf9, 0x2d, 0x5c, 0x8d, 0x3f, 0xff, 0xbf, 0xdf, 0x2e, 0xf8,
+ 0x81, 0x97, 0x4d, 0x5a, 0xab, 0x93, 0x8c, 0x92, 0x7f, 0xfa, 0x19, 0x1f,
+};
+static const unsigned char kat4244_addinpr2[] = {0};
+static const unsigned char kat4244_retbits[] = {
+ 0x75, 0x9b, 0x3d, 0x8d, 0x09, 0x36, 0x57, 0x4d, 0x5a, 0x72, 0xcb, 0x39,
+ 0xfa, 0x55, 0x4c, 0x12, 0xcf, 0xe0, 0x79, 0xc2, 0x40, 0x53, 0x90, 0x2e,
+ 0xcf, 0x25, 0x49, 0xd3, 0x1f, 0x5f, 0x0b, 0xc1, 0x72, 0x49, 0x78, 0x9b,
+ 0xc1, 0x2d, 0x06, 0xb8, 0x34, 0x54, 0xfe, 0x30, 0x8d, 0x2c, 0x3b, 0xd9,
+ 0x5d, 0xda, 0xf6, 0x96, 0x71, 0x3c, 0x24, 0xb9, 0x63, 0xf3, 0xcb, 0x8d,
+ 0x48, 0x78, 0xc6, 0x5d,
+};
+static const struct drbg_kat_pr_true kat4244_t = {
+ 13, kat4244_entropyin, kat4244_nonce, kat4244_persstr,
+ kat4244_entropyinpr1, kat4244_addinpr1, kat4244_entropyinpr2,
+ kat4244_addinpr2, kat4244_retbits
+};
+static const struct drbg_kat kat4244 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4244_t
+};
+
+static const unsigned char kat4245_entropyin[] = {
+ 0x50, 0xf4, 0x11, 0xd6, 0xb8, 0xa7, 0x37, 0x2e, 0x03, 0x47, 0xba, 0x97,
+ 0xc7, 0xdc, 0x1f, 0xfe, 0xe0, 0xd1, 0xa6, 0x6c, 0xea, 0x66, 0xcb, 0x15,
+ 0x82, 0xd5, 0xf9, 0x75, 0x3c, 0x09, 0xe2, 0x5c, 0x00, 0x27, 0x69, 0xa0,
+ 0xe6, 0x06, 0xcb, 0xda, 0x10, 0xd0, 0x62, 0x3b, 0x92, 0x1a, 0x9e, 0x7d,
+};
+static const unsigned char kat4245_nonce[] = {0};
+static const unsigned char kat4245_persstr[] = {
+ 0x88, 0xe9, 0xcd, 0x41, 0x9d, 0xac, 0x6e, 0xc0, 0xf1, 0xb1, 0xe3, 0x2e,
+ 0x71, 0x26, 0x7e, 0x37, 0xac, 0x03, 0x8a, 0xdf, 0xbe, 0x18, 0xbc, 0xeb,
+ 0x50, 0x28, 0x56, 0x44, 0xb2, 0x96, 0x36, 0xad, 0x06, 0xd8, 0x5d, 0x7a,
+ 0x6f, 0x49, 0x78, 0x15, 0xcc, 0x6b, 0xe4, 0x3b, 0x03, 0x2c, 0x9c, 0x63,
+};
+static const unsigned char kat4245_entropyinpr1[] = {
+ 0x83, 0xac, 0xc7, 0xbc, 0x2f, 0x89, 0xde, 0x95, 0xc8, 0x4a, 0x44, 0x50,
+ 0xd5, 0x09, 0xe7, 0xde, 0x35, 0x12, 0xad, 0x83, 0x9f, 0x83, 0x2b, 0xa0,
+ 0xbe, 0x8c, 0x06, 0xf3, 0x6d, 0x71, 0xe7, 0x66, 0xd2, 0x0c, 0xf6, 0x8d,
+ 0xba, 0xda, 0x3d, 0xba, 0x0b, 0x37, 0x99, 0x9c, 0x10, 0x83, 0xfa, 0xac,
+};
+static const unsigned char kat4245_addinpr1[] = {0};
+static const unsigned char kat4245_entropyinpr2[] = {
+ 0x95, 0xa2, 0x6a, 0x2f, 0x94, 0x6c, 0x03, 0xf5, 0x10, 0x12, 0xbc, 0x6c,
+ 0xda, 0x07, 0x97, 0xaf, 0x89, 0xa8, 0x50, 0x03, 0x94, 0xcc, 0x7f, 0x11,
+ 0x86, 0x6a, 0x86, 0x16, 0x08, 0xeb, 0x97, 0xfc, 0xd2, 0xe3, 0x7d, 0xf3,
+ 0xf6, 0x81, 0xdc, 0x3c, 0x1b, 0x3f, 0x48, 0xbd, 0xea, 0xe1, 0x19, 0xcd,
+};
+static const unsigned char kat4245_addinpr2[] = {0};
+static const unsigned char kat4245_retbits[] = {
+ 0xa7, 0xb6, 0xc0, 0xc8, 0xbe, 0xbd, 0x7e, 0xca, 0x93, 0x57, 0xa2, 0xbe,
+ 0x02, 0x06, 0x3a, 0x60, 0x3c, 0x10, 0x3d, 0x68, 0xa7, 0x93, 0xe7, 0x92,
+ 0x49, 0x7e, 0xcf, 0x66, 0x59, 0x28, 0x35, 0xf1, 0xf9, 0x60, 0x7d, 0xae,
+ 0x7b, 0x98, 0xbe, 0x10, 0x49, 0x51, 0x4e, 0xc5, 0xea, 0x4c, 0xdd, 0x0b,
+ 0x41, 0xd5, 0xcb, 0xf9, 0x86, 0xa3, 0xa0, 0x43, 0x14, 0x51, 0x5b, 0x34,
+ 0x1f, 0x09, 0x24, 0xab,
+};
+static const struct drbg_kat_pr_true kat4245_t = {
+ 14, kat4245_entropyin, kat4245_nonce, kat4245_persstr,
+ kat4245_entropyinpr1, kat4245_addinpr1, kat4245_entropyinpr2,
+ kat4245_addinpr2, kat4245_retbits
+};
+static const struct drbg_kat kat4245 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4245_t
+};
+
+static const unsigned char kat4246_entropyin[] = {
+ 0x1a, 0x14, 0x18, 0x04, 0x50, 0x42, 0x2b, 0x6d, 0x0e, 0x93, 0xb8, 0x25,
+ 0x51, 0x80, 0x82, 0x12, 0xd8, 0x30, 0x8b, 0xc7, 0x54, 0xd4, 0x75, 0x31,
+ 0x66, 0x42, 0xdf, 0x73, 0xf9, 0xba, 0x40, 0xae, 0x66, 0x6e, 0x1f, 0x60,
+ 0xf1, 0x3a, 0xbe, 0x7c, 0xab, 0xd7, 0x07, 0x43, 0xd8, 0x92, 0xbd, 0x1d,
+};
+static const unsigned char kat4246_nonce[] = {0};
+static const unsigned char kat4246_persstr[] = {
+ 0x91, 0xb7, 0x7d, 0x48, 0x92, 0xee, 0xac, 0xf6, 0xe2, 0xe8, 0xb0, 0x0a,
+ 0xec, 0xd4, 0xa3, 0xdb, 0x71, 0x83, 0x1d, 0x07, 0xec, 0xb4, 0x6f, 0x91,
+ 0x2d, 0xc8, 0x55, 0x00, 0x8b, 0x79, 0xd9, 0xaa, 0x33, 0x12, 0x9b, 0xaa,
+ 0xb9, 0x0a, 0xb1, 0x4a, 0x67, 0x83, 0x71, 0x0b, 0xc7, 0xa0, 0x22, 0x2a,
+};
+static const unsigned char kat4246_entropyinpr1[] = {
+ 0x2e, 0xb5, 0xcd, 0x19, 0x6c, 0xe8, 0xa5, 0xf9, 0xde, 0x59, 0x5c, 0x17,
+ 0xbd, 0x2b, 0x13, 0xfc, 0x30, 0xd6, 0xa6, 0x8d, 0x5e, 0x61, 0xd4, 0xac,
+ 0x06, 0x61, 0x28, 0xa7, 0xec, 0x55, 0x7c, 0xab, 0x05, 0x9a, 0x65, 0x18,
+ 0x5d, 0x13, 0xb8, 0xd1, 0x60, 0x60, 0x1a, 0xe8, 0xcc, 0x8e, 0x9d, 0x0e,
+};
+static const unsigned char kat4246_addinpr1[] = {
+ 0x04, 0x23, 0xf8, 0x6e, 0xeb, 0x37, 0xdf, 0xa5, 0x50, 0x46, 0x6a, 0x21,
+ 0x45, 0xfe, 0x39, 0xfc, 0x65, 0xfa, 0xb8, 0x2c, 0xd7, 0x96, 0x1d, 0x73,
+ 0xc9, 0x99, 0xa4, 0xa2, 0x03, 0x9b, 0x1e, 0x51, 0x21, 0x6a, 0xf4, 0xb2,
+ 0x6d, 0x28, 0xa3, 0xaa, 0x28, 0xc0, 0xcb, 0xb1, 0x0b, 0xc3, 0x80, 0x6b,
+};
+static const unsigned char kat4246_entropyinpr2[] = {
+ 0xaa, 0x96, 0xcd, 0x7b, 0xb4, 0x3b, 0x47, 0xa1, 0xc2, 0x55, 0x8d, 0xc4,
+ 0x1e, 0xef, 0x42, 0xae, 0x62, 0xb7, 0xc1, 0x36, 0xb4, 0x0e, 0xd2, 0xda,
+ 0x1e, 0x62, 0x1a, 0x68, 0xc8, 0x73, 0x4c, 0x28, 0x88, 0x90, 0xdb, 0xb9,
+ 0x43, 0xda, 0xdc, 0x7d, 0x7f, 0x56, 0x4e, 0xf2, 0xde, 0x31, 0x0e, 0xb2,
+};
+static const unsigned char kat4246_addinpr2[] = {
+ 0x70, 0x01, 0x5c, 0xd3, 0xa7, 0x6c, 0x6f, 0x85, 0xd2, 0x55, 0x30, 0x46,
+ 0xc4, 0x7a, 0xf6, 0x87, 0xd7, 0x28, 0xf3, 0xc6, 0x4e, 0xe4, 0xd3, 0x1e,
+ 0x5a, 0xa8, 0xd7, 0x5a, 0x77, 0xe9, 0x12, 0x9b, 0xb7, 0x75, 0x56, 0x0c,
+ 0xc1, 0x85, 0xf5, 0x69, 0x13, 0xd5, 0xa0, 0x4f, 0x23, 0x31, 0x16, 0xff,
+};
+static const unsigned char kat4246_retbits[] = {
+ 0x0a, 0x4f, 0x4e, 0xa0, 0x35, 0x97, 0x5e, 0x1e, 0x32, 0xc7, 0xa7, 0xa0,
+ 0x1f, 0x81, 0xcc, 0xa3, 0x26, 0xa1, 0xfe, 0x01, 0x49, 0x1e, 0x83, 0x0e,
+ 0xa2, 0xc1, 0xe5, 0x57, 0xc3, 0x74, 0xe9, 0x0d, 0x8b, 0xcc, 0xb7, 0xd9,
+ 0x7f, 0x23, 0x89, 0x69, 0xd1, 0x16, 0xad, 0x04, 0xca, 0xd9, 0xf8, 0x14,
+ 0x2f, 0x90, 0xdf, 0x5c, 0xe4, 0xe7, 0x06, 0x7e, 0x0f, 0x3a, 0x7d, 0x66,
+ 0x78, 0xee, 0x9f, 0x6f,
+};
+static const struct drbg_kat_pr_true kat4246_t = {
+ 0, kat4246_entropyin, kat4246_nonce, kat4246_persstr,
+ kat4246_entropyinpr1, kat4246_addinpr1, kat4246_entropyinpr2,
+ kat4246_addinpr2, kat4246_retbits
+};
+static const struct drbg_kat kat4246 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4246_t
+};
+
+static const unsigned char kat4247_entropyin[] = {
+ 0xd9, 0x60, 0x09, 0x4f, 0xcd, 0xab, 0xac, 0x3b, 0xce, 0xa6, 0x3a, 0x8d,
+ 0xf8, 0x12, 0x7a, 0x9b, 0x06, 0x19, 0x77, 0xfa, 0x05, 0xe5, 0xf5, 0x41,
+ 0x67, 0xa1, 0x97, 0x19, 0x83, 0x55, 0x4b, 0x68, 0xfc, 0x10, 0x6f, 0xea,
+ 0xfa, 0xfe, 0x43, 0xf5, 0x19, 0x30, 0x44, 0x75, 0xaa, 0x0e, 0xdb, 0xe8,
+};
+static const unsigned char kat4247_nonce[] = {0};
+static const unsigned char kat4247_persstr[] = {
+ 0x74, 0x19, 0x96, 0xf8, 0xfb, 0x1e, 0x6b, 0xc0, 0xbc, 0x11, 0x14, 0x7d,
+ 0x97, 0x76, 0x6c, 0xf1, 0x04, 0xb8, 0xf1, 0x17, 0x58, 0xbc, 0x21, 0x6c,
+ 0xfa, 0x46, 0x64, 0x8a, 0x32, 0xe3, 0x27, 0x87, 0x42, 0x36, 0x2f, 0x33,
+ 0x75, 0x75, 0x5c, 0xe1, 0x0c, 0xf9, 0x46, 0x0f, 0x7d, 0x3d, 0x59, 0x37,
+};
+static const unsigned char kat4247_entropyinpr1[] = {
+ 0x4f, 0xb2, 0xc5, 0x8d, 0x33, 0xf0, 0x7d, 0xe4, 0xc4, 0x6b, 0x40, 0xb1,
+ 0x42, 0x91, 0x39, 0x75, 0x76, 0xf1, 0x6c, 0x63, 0x1e, 0x6b, 0xc3, 0xd2,
+ 0xbb, 0xb2, 0x13, 0x24, 0x29, 0x39, 0x69, 0x54, 0x7c, 0xc0, 0x5e, 0xb5,
+ 0x39, 0x0e, 0x8a, 0x46, 0xcf, 0x37, 0x61, 0xb9, 0x3d, 0x87, 0x8a, 0xf9,
+};
+static const unsigned char kat4247_addinpr1[] = {
+ 0x67, 0x4e, 0xd4, 0x17, 0x1d, 0xb1, 0x0d, 0x6e, 0xfa, 0x45, 0x2d, 0x0a,
+ 0xed, 0x6f, 0x7d, 0xd6, 0x3a, 0x5c, 0x2f, 0x18, 0x34, 0xfb, 0xf7, 0x6b,
+ 0xd0, 0xe5, 0xe4, 0x0e, 0x4a, 0x9d, 0x38, 0xbb, 0x3f, 0x77, 0xa7, 0xcc,
+ 0x8a, 0xb3, 0x6e, 0xee, 0x78, 0x17, 0xa0, 0x11, 0xd3, 0x1e, 0x03, 0xec,
+};
+static const unsigned char kat4247_entropyinpr2[] = {
+ 0xf0, 0x28, 0x21, 0x41, 0xbe, 0xfd, 0x06, 0x88, 0x51, 0xde, 0x41, 0x55,
+ 0x25, 0xd0, 0x63, 0xf0, 0x19, 0x4f, 0xa6, 0xb1, 0x84, 0xa2, 0xbc, 0x20,
+ 0x7e, 0xae, 0x07, 0x0c, 0xe2, 0x6c, 0xdf, 0x71, 0x40, 0x7e, 0x54, 0xf1,
+ 0x9c, 0x18, 0x39, 0x5f, 0x61, 0x81, 0x78, 0xe9, 0x13, 0xa1, 0xeb, 0xd0,
+};
+static const unsigned char kat4247_addinpr2[] = {
+ 0x23, 0x71, 0xd1, 0x41, 0x92, 0xed, 0x93, 0x4c, 0xbf, 0xfc, 0x32, 0xea,
+ 0x38, 0x22, 0x05, 0x7e, 0x31, 0xf6, 0x91, 0x56, 0x93, 0xac, 0x8f, 0x48,
+ 0x0b, 0x1a, 0x8e, 0xe2, 0x02, 0xf0, 0x83, 0xca, 0xbb, 0x71, 0x48, 0xfc,
+ 0xc7, 0x04, 0x9b, 0x95, 0xd1, 0xe6, 0xe6, 0xf7, 0x81, 0x00, 0xfb, 0xc2,
+};
+static const unsigned char kat4247_retbits[] = {
+ 0x1d, 0xf9, 0xc3, 0x94, 0xd6, 0xef, 0x12, 0xcb, 0x7d, 0x96, 0x7b, 0x19,
+ 0xc6, 0xfc, 0x7d, 0x58, 0x0b, 0xbb, 0xcb, 0xdb, 0xa0, 0xc4, 0x98, 0x2b,
+ 0xf3, 0x34, 0x36, 0x70, 0x7c, 0x49, 0xc1, 0x33, 0xb2, 0xb3, 0x69, 0x93,
+ 0xdd, 0x52, 0xc1, 0xa0, 0x93, 0x2d, 0xf4, 0xca, 0xd0, 0xdd, 0x15, 0x1d,
+ 0x17, 0x9e, 0xc2, 0xe3, 0x8b, 0xd9, 0xd6, 0xfa, 0x0b, 0x9e, 0x84, 0x4c,
+ 0x20, 0xd1, 0xbf, 0x6e,
+};
+static const struct drbg_kat_pr_true kat4247_t = {
+ 1, kat4247_entropyin, kat4247_nonce, kat4247_persstr,
+ kat4247_entropyinpr1, kat4247_addinpr1, kat4247_entropyinpr2,
+ kat4247_addinpr2, kat4247_retbits
+};
+static const struct drbg_kat kat4247 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4247_t
+};
+
+static const unsigned char kat4248_entropyin[] = {
+ 0xd9, 0x4b, 0xc2, 0x0a, 0x41, 0xc8, 0x16, 0x20, 0xb6, 0xcb, 0x2e, 0x46,
+ 0x5a, 0xb0, 0xf3, 0x77, 0xd7, 0x4b, 0xa2, 0x27, 0xb2, 0xd1, 0xe7, 0x49,
+ 0x83, 0x4b, 0xe5, 0xbb, 0xfb, 0x73, 0x2d, 0x15, 0xe7, 0x60, 0x3c, 0x7d,
+ 0x6b, 0xfd, 0xe4, 0x33, 0x33, 0x0f, 0x72, 0x13, 0xe4, 0xef, 0x39, 0x1b,
+};
+static const unsigned char kat4248_nonce[] = {0};
+static const unsigned char kat4248_persstr[] = {
+ 0xa1, 0x1f, 0x42, 0xfb, 0xd3, 0x5f, 0x23, 0x5a, 0x47, 0xe0, 0xb6, 0xe8,
+ 0x5e, 0xa0, 0x98, 0xd2, 0x0e, 0x11, 0x39, 0x9e, 0xf1, 0x97, 0xc6, 0x21,
+ 0x7f, 0xe8, 0x21, 0x9d, 0x56, 0xef, 0xb3, 0x0a, 0x2f, 0x89, 0x43, 0x48,
+ 0x39, 0x4b, 0x59, 0x66, 0x78, 0x38, 0xa9, 0x95, 0x9b, 0x0d, 0x1c, 0x53,
+};
+static const unsigned char kat4248_entropyinpr1[] = {
+ 0x5a, 0xcf, 0xdb, 0x10, 0xbe, 0x57, 0x99, 0x5f, 0xda, 0x42, 0xf1, 0xfc,
+ 0xd5, 0xd4, 0x11, 0x04, 0x79, 0x7a, 0xc4, 0xaf, 0xd0, 0xf5, 0x73, 0x90,
+ 0x86, 0xe7, 0xc1, 0x3a, 0x11, 0x51, 0xbf, 0x0f, 0xe2, 0x7c, 0x19, 0x3e,
+ 0xeb, 0x89, 0x7d, 0xcf, 0x11, 0xbb, 0xfb, 0x52, 0xc8, 0x3c, 0x29, 0x78,
+};
+static const unsigned char kat4248_addinpr1[] = {
+ 0x72, 0x46, 0xe2, 0x9c, 0x80, 0xb4, 0x92, 0x14, 0x88, 0xc9, 0x32, 0xc2,
+ 0x5b, 0xa4, 0xd4, 0xb8, 0xab, 0xd7, 0x27, 0xab, 0x48, 0xa2, 0xc9, 0xbd,
+ 0xf7, 0xdf, 0x5d, 0x71, 0xcb, 0x75, 0xc9, 0x6c, 0xe2, 0x6d, 0x5c, 0xed,
+ 0x5c, 0xc9, 0xb2, 0xab, 0x9e, 0x05, 0xa4, 0x49, 0x90, 0x7b, 0x0a, 0xa8,
+};
+static const unsigned char kat4248_entropyinpr2[] = {
+ 0xf0, 0x4e, 0xa5, 0x2c, 0x36, 0xc4, 0x4f, 0x08, 0x51, 0x7c, 0x37, 0xf0,
+ 0x6d, 0x45, 0x07, 0xa6, 0x97, 0xc5, 0x05, 0x91, 0x3d, 0xd6, 0xd4, 0xe0,
+ 0x18, 0xd3, 0x24, 0x90, 0x8c, 0x4b, 0x41, 0x26, 0xe0, 0x84, 0x7e, 0x1e,
+ 0x89, 0x0c, 0xf1, 0x48, 0x9b, 0xb2, 0xef, 0x25, 0xd0, 0x03, 0x41, 0x47,
+};
+static const unsigned char kat4248_addinpr2[] = {
+ 0x25, 0x1c, 0xfc, 0xe3, 0xda, 0x6a, 0x3b, 0x2b, 0xe5, 0x81, 0x45, 0xd8,
+ 0x5d, 0x64, 0x67, 0xfe, 0xdf, 0x9c, 0x20, 0x59, 0xe8, 0x66, 0x54, 0xc0,
+ 0x60, 0x5f, 0x03, 0x69, 0xa7, 0xf8, 0x38, 0x31, 0x04, 0x95, 0x96, 0xaf,
+ 0x6d, 0x9a, 0xfd, 0x17, 0xa3, 0x39, 0xcb, 0x73, 0x4d, 0xdc, 0x9c, 0x78,
+};
+static const unsigned char kat4248_retbits[] = {
+ 0xb8, 0x94, 0xde, 0xc6, 0x6b, 0xc2, 0x0d, 0x7f, 0x97, 0xbf, 0xd8, 0xa9,
+ 0x4a, 0x17, 0x2f, 0x57, 0x84, 0x31, 0x6f, 0x18, 0x40, 0x89, 0x4a, 0xd5,
+ 0x32, 0xff, 0x43, 0xef, 0xf8, 0x8c, 0x79, 0xa4, 0x1f, 0x0c, 0xea, 0x61,
+ 0xe1, 0x13, 0xc1, 0x32, 0x95, 0x29, 0x3a, 0x6e, 0xe1, 0x79, 0xdc, 0xb2,
+ 0x2f, 0xbc, 0x1f, 0xc8, 0x39, 0x7f, 0x3f, 0xff, 0xb3, 0x1e, 0x7a, 0x84,
+ 0xc9, 0x11, 0xc2, 0xa6,
+};
+static const struct drbg_kat_pr_true kat4248_t = {
+ 2, kat4248_entropyin, kat4248_nonce, kat4248_persstr,
+ kat4248_entropyinpr1, kat4248_addinpr1, kat4248_entropyinpr2,
+ kat4248_addinpr2, kat4248_retbits
+};
+static const struct drbg_kat kat4248 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4248_t
+};
+
+static const unsigned char kat4249_entropyin[] = {
+ 0x90, 0x05, 0x2c, 0x67, 0x3c, 0xee, 0x96, 0x77, 0x05, 0x86, 0x21, 0x24,
+ 0x2d, 0x08, 0xde, 0x86, 0x46, 0xb1, 0x6f, 0xdc, 0x1d, 0x77, 0x73, 0x7b,
+ 0x6e, 0x01, 0x79, 0x26, 0xb4, 0x22, 0xdd, 0xb9, 0xc3, 0x83, 0x84, 0x6d,
+ 0xb8, 0x7d, 0xde, 0x0d, 0xdf, 0xd0, 0xd7, 0x0b, 0xd5, 0x54, 0x7e, 0x60,
+};
+static const unsigned char kat4249_nonce[] = {0};
+static const unsigned char kat4249_persstr[] = {
+ 0xb3, 0x48, 0xf3, 0x7a, 0x3f, 0x07, 0x3f, 0xa2, 0xf9, 0x59, 0x32, 0x92,
+ 0x9e, 0xd9, 0x34, 0x0a, 0x24, 0xe5, 0x81, 0xf3, 0x50, 0x91, 0x4a, 0x9c,
+ 0x83, 0xa2, 0x41, 0x34, 0x52, 0x5d, 0x70, 0xc0, 0x88, 0xae, 0x1f, 0x75,
+ 0xb7, 0x0b, 0x6c, 0xcc, 0x1e, 0x53, 0x60, 0xd0, 0xda, 0x07, 0x52, 0xac,
+};
+static const unsigned char kat4249_entropyinpr1[] = {
+ 0x21, 0x61, 0xd5, 0xba, 0xb5, 0x5c, 0x74, 0x29, 0x75, 0x66, 0xa3, 0x98,
+ 0xfe, 0x71, 0x5c, 0x8c, 0x8e, 0x8e, 0x43, 0xce, 0x2b, 0x71, 0xa4, 0x9d,
+ 0x38, 0x00, 0xf4, 0xe6, 0xf7, 0x51, 0x3a, 0x0a, 0xd4, 0x74, 0xeb, 0x1a,
+ 0xf8, 0x41, 0xd5, 0xcd, 0x69, 0x90, 0xb9, 0x47, 0x0d, 0xca, 0x57, 0x43,
+};
+static const unsigned char kat4249_addinpr1[] = {
+ 0xa9, 0xbb, 0x39, 0x5e, 0xf6, 0x9e, 0x9f, 0x02, 0x50, 0x65, 0xca, 0xca,
+ 0x0a, 0xf7, 0x84, 0x22, 0xed, 0x29, 0x86, 0xe4, 0xe9, 0x75, 0xd2, 0xea,
+ 0xc5, 0xac, 0xed, 0xa3, 0x61, 0xa0, 0x88, 0x8f, 0x1d, 0xed, 0xe1, 0xe5,
+ 0x4a, 0x23, 0x56, 0x4d, 0x25, 0x45, 0x6d, 0xb1, 0x8e, 0xa1, 0x08, 0x5b,
+};
+static const unsigned char kat4249_entropyinpr2[] = {
+ 0x72, 0xae, 0x29, 0x90, 0x3b, 0xf0, 0x73, 0x1a, 0x3d, 0x41, 0xa3, 0x9e,
+ 0x63, 0xfc, 0x7a, 0x57, 0x1e, 0xa9, 0x9c, 0xd6, 0x79, 0xa9, 0x04, 0xf6,
+ 0x0d, 0xd3, 0x57, 0x28, 0xd1, 0x41, 0xc3, 0x38, 0x5d, 0xff, 0x09, 0x65,
+ 0xe1, 0xa5, 0x6c, 0xd5, 0x7b, 0x71, 0x90, 0xc0, 0x11, 0x2b, 0x70, 0xbe,
+};
+static const unsigned char kat4249_addinpr2[] = {
+ 0x4e, 0x0c, 0x5e, 0x9e, 0x5e, 0xab, 0x36, 0xfe, 0x78, 0xd4, 0x2c, 0x05,
+ 0x8e, 0xf4, 0xde, 0xba, 0x19, 0xa9, 0x4f, 0x87, 0x02, 0xbc, 0xee, 0xb6,
+ 0x63, 0x07, 0x5a, 0x7d, 0x84, 0x06, 0x9c, 0x50, 0xeb, 0x23, 0x97, 0x6e,
+ 0x05, 0xb7, 0xda, 0x7c, 0x7f, 0x55, 0xfd, 0x72, 0x73, 0x89, 0x39, 0x7f,
+};
+static const unsigned char kat4249_retbits[] = {
+ 0x9b, 0xf4, 0x96, 0x83, 0x31, 0x96, 0x64, 0xb0, 0x03, 0xf2, 0x60, 0x28,
+ 0xbb, 0xc7, 0x2b, 0x3d, 0xc6, 0x07, 0xd8, 0xa3, 0x08, 0x8a, 0xa7, 0x8d,
+ 0xd8, 0xdc, 0x23, 0x8f, 0xeb, 0x79, 0x43, 0x3b, 0x83, 0xf1, 0xc9, 0xae,
+ 0x11, 0x90, 0xc2, 0x70, 0xab, 0x43, 0xa3, 0x9d, 0x1a, 0xd3, 0x42, 0x2a,
+ 0x80, 0x04, 0xa8, 0x03, 0x3c, 0x58, 0xf8, 0x44, 0x67, 0xc0, 0x28, 0xae,
+ 0xb8, 0xea, 0xba, 0x19,
+};
+static const struct drbg_kat_pr_true kat4249_t = {
+ 3, kat4249_entropyin, kat4249_nonce, kat4249_persstr,
+ kat4249_entropyinpr1, kat4249_addinpr1, kat4249_entropyinpr2,
+ kat4249_addinpr2, kat4249_retbits
+};
+static const struct drbg_kat kat4249 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4249_t
+};
+
+static const unsigned char kat4250_entropyin[] = {
+ 0x69, 0x3c, 0x3d, 0x21, 0xcc, 0x3d, 0x38, 0x68, 0x4c, 0x1e, 0x52, 0xfe,
+ 0xb2, 0x4c, 0x84, 0xd5, 0x44, 0x4b, 0x3f, 0xba, 0xb5, 0x69, 0xa0, 0x74,
+ 0xd8, 0xe2, 0x55, 0x61, 0xe0, 0x79, 0xeb, 0x73, 0xc1, 0x92, 0xe1, 0xac,
+ 0xb6, 0x2b, 0x8d, 0xcf, 0xf5, 0x37, 0x01, 0x39, 0xa4, 0xaf, 0x2f, 0x14,
+};
+static const unsigned char kat4250_nonce[] = {0};
+static const unsigned char kat4250_persstr[] = {
+ 0x9c, 0x1a, 0x13, 0x13, 0xfb, 0x5a, 0x06, 0x48, 0xb5, 0x85, 0x27, 0xac,
+ 0x2d, 0xd5, 0x07, 0x9c, 0x47, 0x09, 0x68, 0x45, 0x60, 0x2f, 0x48, 0xae,
+ 0x3d, 0x04, 0xf6, 0x68, 0xe2, 0x7b, 0x94, 0xb4, 0x4f, 0xfc, 0x74, 0xe4,
+ 0xcd, 0x77, 0xd3, 0x70, 0xc2, 0x04, 0xf0, 0xe6, 0xf8, 0x70, 0x47, 0xb7,
+};
+static const unsigned char kat4250_entropyinpr1[] = {
+ 0x4a, 0x61, 0x97, 0xcc, 0xae, 0x24, 0xed, 0x98, 0x93, 0x26, 0x02, 0x37,
+ 0x61, 0x74, 0xb2, 0x23, 0x5b, 0xcd, 0x10, 0xf6, 0xb4, 0xf8, 0x86, 0xe3,
+ 0xd6, 0xd2, 0xd6, 0xec, 0x53, 0x35, 0xb3, 0xd7, 0x09, 0x6c, 0x75, 0xe1,
+ 0x8a, 0x18, 0x65, 0x7e, 0x3e, 0x14, 0x32, 0xd1, 0x7e, 0xb5, 0x99, 0xc7,
+};
+static const unsigned char kat4250_addinpr1[] = {
+ 0x40, 0x10, 0x6b, 0xd9, 0x95, 0x3a, 0x55, 0xce, 0xc4, 0x0f, 0x6a, 0xbc,
+ 0x9f, 0x75, 0xb8, 0xf4, 0x1b, 0x50, 0xf0, 0xdf, 0xfb, 0xa5, 0x17, 0xa4,
+ 0x55, 0xec, 0xd6, 0x05, 0xc3, 0xd3, 0x99, 0x03, 0xc3, 0x59, 0xd2, 0xaa,
+ 0xeb, 0x41, 0x7f, 0xb0, 0x07, 0xe8, 0xd4, 0x51, 0x02, 0x84, 0x44, 0xb3,
+};
+static const unsigned char kat4250_entropyinpr2[] = {
+ 0x96, 0xe0, 0x4a, 0xf5, 0xe2, 0x44, 0x15, 0x84, 0x58, 0xba, 0xcc, 0xe4,
+ 0x45, 0xb3, 0x99, 0xb4, 0x7e, 0x73, 0x5c, 0x14, 0x1f, 0xc1, 0xd5, 0xe5,
+ 0xb2, 0xde, 0xa0, 0x49, 0xd8, 0xea, 0x05, 0x4e, 0xc7, 0xe1, 0xb6, 0xed,
+ 0x03, 0x4b, 0x26, 0xd0, 0xb0, 0xde, 0x20, 0xb9, 0x1f, 0xd3, 0x2c, 0x4a,
+};
+static const unsigned char kat4250_addinpr2[] = {
+ 0x5f, 0xff, 0xe4, 0xb6, 0x5f, 0x76, 0x2e, 0xfd, 0xe7, 0xa4, 0x39, 0x6f,
+ 0x29, 0x94, 0xe8, 0x4f, 0xc9, 0x90, 0x59, 0x92, 0xf1, 0x0d, 0x3a, 0xdd,
+ 0x5e, 0x32, 0x02, 0x31, 0xbe, 0xc0, 0xec, 0x6b, 0xd5, 0x0e, 0x27, 0xd2,
+ 0x49, 0x8d, 0x9f, 0x44, 0x3f, 0x16, 0x4d, 0x7c, 0xd6, 0x8f, 0xe6, 0xa4,
+};
+static const unsigned char kat4250_retbits[] = {
+ 0x43, 0xea, 0x89, 0x7c, 0xf1, 0x11, 0xe8, 0xc5, 0xc5, 0x8a, 0x55, 0x3a,
+ 0x23, 0x18, 0x90, 0xfd, 0x91, 0x34, 0x01, 0xbe, 0xbc, 0xe2, 0xed, 0xc7,
+ 0x6a, 0xfe, 0x97, 0xce, 0xdc, 0x68, 0x06, 0xf6, 0x01, 0x3d, 0x57, 0xe8,
+ 0xe6, 0xa7, 0x9a, 0x93, 0x0a, 0x2e, 0x94, 0xc2, 0x59, 0x0a, 0x5c, 0xf5,
+ 0x7d, 0x9b, 0x7d, 0x2b, 0x86, 0xfe, 0xc8, 0xd6, 0xf4, 0x69, 0x2c, 0xd6,
+ 0x22, 0xdb, 0x99, 0xdd,
+};
+static const struct drbg_kat_pr_true kat4250_t = {
+ 4, kat4250_entropyin, kat4250_nonce, kat4250_persstr,
+ kat4250_entropyinpr1, kat4250_addinpr1, kat4250_entropyinpr2,
+ kat4250_addinpr2, kat4250_retbits
+};
+static const struct drbg_kat kat4250 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4250_t
+};
+
+static const unsigned char kat4251_entropyin[] = {
+ 0x8a, 0x0b, 0xf5, 0x80, 0x72, 0xae, 0xb8, 0xa3, 0x75, 0x23, 0x7a, 0x29,
+ 0xa0, 0xe3, 0xf7, 0x8a, 0x56, 0x2d, 0x78, 0x2a, 0x5e, 0xd3, 0x83, 0x32,
+ 0x1d, 0x65, 0xa3, 0xa8, 0xf9, 0x3f, 0x50, 0x1d, 0x70, 0x1e, 0x71, 0x69,
+ 0x4e, 0x79, 0xfa, 0x19, 0xd7, 0xe7, 0x4a, 0x2f, 0x64, 0xd5, 0xcf, 0xc8,
+};
+static const unsigned char kat4251_nonce[] = {0};
+static const unsigned char kat4251_persstr[] = {
+ 0x83, 0x06, 0x79, 0x99, 0x8e, 0x19, 0x55, 0x55, 0xba, 0x07, 0xc7, 0xd1,
+ 0xc7, 0x0c, 0x92, 0xe0, 0x65, 0xfc, 0xa2, 0x6e, 0x15, 0x6d, 0x69, 0x42,
+ 0x04, 0x6a, 0x27, 0x09, 0x73, 0x35, 0xf6, 0x9f, 0xf0, 0x43, 0x9b, 0xc6,
+ 0x1e, 0x89, 0x34, 0x99, 0x96, 0xc9, 0xe3, 0xa1, 0x98, 0x15, 0x53, 0xd3,
+};
+static const unsigned char kat4251_entropyinpr1[] = {
+ 0x16, 0xad, 0x3e, 0x4f, 0x8d, 0x8a, 0x63, 0x71, 0x6d, 0xfe, 0xde, 0x56,
+ 0x27, 0x62, 0xe7, 0x70, 0xd9, 0x66, 0x25, 0x47, 0x7b, 0xcc, 0x87, 0xd4,
+ 0xcb, 0xc0, 0x69, 0x34, 0x5d, 0xe9, 0xdf, 0x5d, 0x74, 0xf4, 0x58, 0xd7,
+ 0x60, 0x29, 0x2c, 0x20, 0x1d, 0xb6, 0x5e, 0xd6, 0xe4, 0x63, 0x75, 0x19,
+};
+static const unsigned char kat4251_addinpr1[] = {
+ 0xa1, 0x68, 0xe1, 0x28, 0xc6, 0xee, 0x0b, 0x99, 0xae, 0x80, 0x5e, 0xc0,
+ 0xe5, 0x9d, 0x0b, 0x22, 0xe8, 0x9c, 0xde, 0x18, 0x8e, 0x94, 0x56, 0xa5,
+ 0xde, 0xd3, 0xbb, 0xac, 0x3f, 0x8c, 0x55, 0x55, 0x9c, 0x47, 0xb2, 0x5a,
+ 0x6b, 0x61, 0x36, 0x28, 0xa3, 0xf2, 0x4d, 0xe8, 0xf5, 0x0e, 0x40, 0xf1,
+};
+static const unsigned char kat4251_entropyinpr2[] = {
+ 0x4b, 0xac, 0xc3, 0x00, 0xec, 0x2a, 0xe6, 0xfe, 0x44, 0x57, 0x15, 0xef,
+ 0xf2, 0x8d, 0xe6, 0x81, 0xe1, 0x6f, 0x63, 0xf1, 0x84, 0x81, 0xaf, 0x43,
+ 0x36, 0x69, 0xcf, 0xd2, 0xe0, 0x53, 0x4e, 0xa4, 0x74, 0x7e, 0x7b, 0x0c,
+ 0xfc, 0x3f, 0x72, 0x7e, 0x19, 0x38, 0xab, 0xf2, 0x77, 0x1f, 0xab, 0x69,
+};
+static const unsigned char kat4251_addinpr2[] = {
+ 0xfd, 0x42, 0x5d, 0xbd, 0x14, 0xf3, 0x8a, 0x30, 0xc6, 0x51, 0x0d, 0x30,
+ 0x8b, 0x07, 0x1a, 0x4e, 0x14, 0x42, 0x59, 0x66, 0xbf, 0xf6, 0xc2, 0xc8,
+ 0xf0, 0x47, 0xae, 0x4b, 0xe7, 0x29, 0xb7, 0x40, 0x56, 0x17, 0x13, 0x18,
+ 0x96, 0xf3, 0x53, 0x67, 0x4e, 0x6d, 0x09, 0x2d, 0x5e, 0x2b, 0x74, 0xc1,
+};
+static const unsigned char kat4251_retbits[] = {
+ 0x2c, 0xc0, 0x99, 0x32, 0xca, 0x24, 0xdd, 0x7c, 0x41, 0x9f, 0x37, 0x4c,
+ 0xc3, 0x62, 0x16, 0x39, 0x0d, 0x93, 0x87, 0x9d, 0x85, 0xdd, 0x96, 0x2a,
+ 0x5a, 0x21, 0x23, 0x6e, 0x23, 0x1c, 0x4e, 0xc1, 0x6e, 0x44, 0xec, 0xdb,
+ 0xf2, 0xd4, 0x4f, 0x3f, 0xaa, 0xc7, 0x5c, 0x49, 0x4c, 0x03, 0x9a, 0x38,
+ 0x4d, 0x06, 0x9d, 0xf4, 0xe1, 0xe9, 0x3b, 0x3a, 0xf2, 0x04, 0x60, 0xac,
+ 0x66, 0x52, 0x5f, 0xd0,
+};
+static const struct drbg_kat_pr_true kat4251_t = {
+ 5, kat4251_entropyin, kat4251_nonce, kat4251_persstr,
+ kat4251_entropyinpr1, kat4251_addinpr1, kat4251_entropyinpr2,
+ kat4251_addinpr2, kat4251_retbits
+};
+static const struct drbg_kat kat4251 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4251_t
+};
+
+static const unsigned char kat4252_entropyin[] = {
+ 0xa6, 0x35, 0x8c, 0x87, 0x62, 0x1e, 0x63, 0xda, 0xe3, 0xac, 0x3f, 0x95,
+ 0x3d, 0xb0, 0xcc, 0xb9, 0xdb, 0xc1, 0xd0, 0x46, 0xc9, 0x9c, 0x7d, 0xd0,
+ 0x7e, 0xf9, 0x1c, 0x6c, 0x2f, 0xd2, 0x30, 0xa9, 0xf1, 0xbc, 0xa5, 0xfc,
+ 0x28, 0x66, 0x01, 0x60, 0x85, 0xc2, 0x6c, 0xcb, 0x5b, 0x28, 0x71, 0x5a,
+};
+static const unsigned char kat4252_nonce[] = {0};
+static const unsigned char kat4252_persstr[] = {
+ 0x10, 0x74, 0xe6, 0xeb, 0x18, 0x7d, 0x40, 0x86, 0x12, 0x97, 0xd9, 0xe5,
+ 0xc0, 0xb3, 0xb4, 0x9d, 0x66, 0xc8, 0xd6, 0x9e, 0x95, 0xda, 0x89, 0x6b,
+ 0x67, 0x9e, 0xe9, 0x24, 0x61, 0x42, 0xfb, 0xf4, 0x8c, 0x35, 0xb1, 0xd7,
+ 0xe7, 0x39, 0x31, 0xed, 0x0b, 0x6e, 0x2a, 0x3b, 0x69, 0x67, 0xe8, 0x00,
+};
+static const unsigned char kat4252_entropyinpr1[] = {
+ 0x13, 0x1c, 0x19, 0x4e, 0xe4, 0xa3, 0xbb, 0xa4, 0x8d, 0xed, 0xd5, 0xb8,
+ 0x3b, 0xfc, 0x82, 0xd1, 0x72, 0xdb, 0x75, 0xe2, 0x19, 0x8e, 0x76, 0xc7,
+ 0x28, 0xe0, 0x4f, 0xc8, 0xab, 0x32, 0x3c, 0xed, 0xa2, 0xc3, 0x2d, 0x44,
+ 0x78, 0x53, 0xf6, 0xbf, 0x77, 0x77, 0xd5, 0x59, 0xd3, 0x35, 0x04, 0xbd,
+};
+static const unsigned char kat4252_addinpr1[] = {
+ 0x19, 0x04, 0xc3, 0xc9, 0x39, 0x5f, 0x42, 0x42, 0x24, 0x98, 0x9e, 0x8a,
+ 0x31, 0x83, 0xc9, 0x0d, 0xba, 0xf9, 0x73, 0x5f, 0xc5, 0x22, 0xfe, 0x4e,
+ 0x44, 0x5c, 0xa4, 0xd5, 0x90, 0xd2, 0x53, 0xed, 0xc4, 0x7b, 0x21, 0xa1,
+ 0x4b, 0xf6, 0x30, 0xa7, 0x63, 0x75, 0x9e, 0xf7, 0x6f, 0xbe, 0x66, 0x15,
+};
+static const unsigned char kat4252_entropyinpr2[] = {
+ 0xe0, 0x39, 0x7d, 0xd2, 0x33, 0x74, 0x5d, 0x71, 0x92, 0x46, 0x7d, 0x92,
+ 0x5f, 0x58, 0x2e, 0xc8, 0x8e, 0x80, 0x88, 0x0f, 0x2d, 0x96, 0x6f, 0x6a,
+ 0x40, 0x89, 0x2e, 0xe6, 0x7a, 0x90, 0x78, 0x91, 0x47, 0xe3, 0xdc, 0x7e,
+ 0xe9, 0x0c, 0x02, 0x7c, 0x2b, 0xfa, 0x3e, 0x9b, 0x69, 0xb0, 0xd7, 0x0c,
+};
+static const unsigned char kat4252_addinpr2[] = {
+ 0x8b, 0x3a, 0xf5, 0xb4, 0xd4, 0xdc, 0x9b, 0xfb, 0x24, 0x5c, 0xeb, 0x92,
+ 0xd6, 0xa8, 0x44, 0x9c, 0x37, 0xaa, 0x6f, 0xdf, 0x46, 0x1d, 0x0a, 0x90,
+ 0xd2, 0x54, 0x62, 0xa8, 0x66, 0xac, 0x3e, 0x33, 0xf5, 0x64, 0xb8, 0x83,
+ 0xa5, 0x8f, 0x0d, 0x12, 0x15, 0x2b, 0x42, 0x35, 0x9e, 0x94, 0x40, 0x8d,
+};
+static const unsigned char kat4252_retbits[] = {
+ 0xe8, 0x60, 0x9c, 0xd9, 0x3c, 0x5d, 0xfb, 0x11, 0x71, 0x11, 0x52, 0x8f,
+ 0xfb, 0xdf, 0x0e, 0x67, 0xf4, 0x74, 0x99, 0x4e, 0xf9, 0x16, 0x1c, 0xf7,
+ 0xf8, 0x44, 0x9c, 0xa3, 0xc5, 0x9c, 0x8b, 0x5c, 0x2d, 0x5f, 0xe5, 0xea,
+ 0x70, 0x40, 0x58, 0x7f, 0x36, 0xc8, 0x5d, 0x23, 0x4b, 0x4c, 0x8c, 0xa7,
+ 0xa7, 0x2e, 0xf7, 0xcc, 0xbb, 0x6c, 0xe8, 0x7c, 0xcf, 0x15, 0xc4, 0x4c,
+ 0xb2, 0x34, 0x5b, 0xb4,
+};
+static const struct drbg_kat_pr_true kat4252_t = {
+ 6, kat4252_entropyin, kat4252_nonce, kat4252_persstr,
+ kat4252_entropyinpr1, kat4252_addinpr1, kat4252_entropyinpr2,
+ kat4252_addinpr2, kat4252_retbits
+};
+static const struct drbg_kat kat4252 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4252_t
+};
+
+static const unsigned char kat4253_entropyin[] = {
+ 0x03, 0x39, 0x3b, 0x09, 0x3e, 0x1e, 0xe6, 0xed, 0xc0, 0xd5, 0x3a, 0xdc,
+ 0x56, 0x9e, 0x94, 0x17, 0xd4, 0xac, 0x42, 0x36, 0x35, 0x67, 0x1e, 0xf3,
+ 0x63, 0xe3, 0x65, 0xb1, 0xc7, 0xc1, 0x28, 0xb1, 0xf4, 0x43, 0x33, 0x8d,
+ 0x8f, 0x6a, 0xa2, 0x54, 0x2e, 0xed, 0xce, 0xb9, 0x01, 0xe2, 0x98, 0xd6,
+};
+static const unsigned char kat4253_nonce[] = {0};
+static const unsigned char kat4253_persstr[] = {
+ 0x43, 0x0a, 0x7b, 0x2f, 0x49, 0xc9, 0x3d, 0x47, 0xfa, 0xa2, 0xc5, 0x0d,
+ 0xf7, 0x3e, 0xa4, 0x0c, 0x31, 0x8e, 0x81, 0x79, 0xe1, 0xcd, 0x61, 0xca,
+ 0x2b, 0x59, 0x82, 0x0d, 0x1c, 0x8b, 0x6a, 0xfe, 0xa9, 0x1d, 0x49, 0x12,
+ 0x94, 0x53, 0x37, 0x57, 0x64, 0x66, 0xb8, 0xa2, 0x0d, 0x5d, 0xd9, 0x2c,
+};
+static const unsigned char kat4253_entropyinpr1[] = {
+ 0x38, 0x7f, 0xd6, 0x56, 0xea, 0x9b, 0x0d, 0x4f, 0xea, 0x5e, 0x25, 0x1c,
+ 0x0d, 0x8f, 0x49, 0xef, 0xfb, 0x05, 0xb9, 0x5a, 0xcc, 0x02, 0xf4, 0x1b,
+ 0xbb, 0x3e, 0x83, 0xd0, 0x0b, 0xf7, 0x01, 0x33, 0xba, 0x47, 0xcf, 0xb6,
+ 0x09, 0xf6, 0x8d, 0x17, 0x46, 0x5f, 0xfe, 0xce, 0xdb, 0x46, 0x50, 0x8e,
+};
+static const unsigned char kat4253_addinpr1[] = {
+ 0xc0, 0xd2, 0xf2, 0x2c, 0x69, 0x34, 0xca, 0x8c, 0xba, 0x67, 0xd1, 0xe3,
+ 0xfb, 0x54, 0x56, 0x41, 0x32, 0x02, 0xa3, 0xfe, 0x5f, 0x1e, 0x62, 0x64,
+ 0xaf, 0xc2, 0x8c, 0x48, 0x89, 0x48, 0xf4, 0x9e, 0xa6, 0x43, 0x88, 0x21,
+ 0x47, 0x32, 0x6e, 0xf8, 0x5b, 0x3d, 0xfa, 0x72, 0x92, 0x95, 0x2f, 0x15,
+};
+static const unsigned char kat4253_entropyinpr2[] = {
+ 0xa0, 0xb4, 0x3b, 0xff, 0xba, 0x67, 0x08, 0x91, 0x90, 0x02, 0xab, 0x0a,
+ 0x33, 0x8f, 0x05, 0xbe, 0x44, 0x85, 0x8f, 0xc5, 0x20, 0x1d, 0x54, 0xb9,
+ 0x9b, 0x53, 0x9c, 0x22, 0x40, 0x31, 0x6d, 0xd3, 0xbc, 0x06, 0xcf, 0x40,
+ 0x10, 0xdd, 0x4c, 0x6e, 0xef, 0x2c, 0x2d, 0x5e, 0x3b, 0xfb, 0x30, 0x58,
+};
+static const unsigned char kat4253_addinpr2[] = {
+ 0xf0, 0xbf, 0x5f, 0x12, 0xe1, 0x88, 0xac, 0x6a, 0x8e, 0x7b, 0x16, 0xba,
+ 0xcd, 0x71, 0x04, 0x2b, 0x9c, 0x98, 0x5b, 0x37, 0x67, 0xc7, 0x35, 0x63,
+ 0xd9, 0x12, 0xfa, 0x26, 0x3d, 0x2d, 0xc0, 0x97, 0xdd, 0xab, 0xb5, 0x6e,
+ 0x76, 0x70, 0x81, 0xa8, 0x08, 0xef, 0x5b, 0x57, 0x71, 0x5f, 0xe0, 0x86,
+};
+static const unsigned char kat4253_retbits[] = {
+ 0x9b, 0x89, 0x21, 0x2f, 0x5e, 0xbb, 0xb8, 0x1e, 0xda, 0x3a, 0x5e, 0x26,
+ 0xb9, 0x3f, 0x79, 0xfa, 0x96, 0xc1, 0xa9, 0x0a, 0xc5, 0xac, 0x35, 0xd1,
+ 0x89, 0x0b, 0x76, 0xf2, 0xa5, 0xa9, 0xdf, 0xa9, 0x84, 0x3d, 0x61, 0x32,
+ 0x49, 0x7e, 0xcb, 0xdf, 0x48, 0xd7, 0x1e, 0x17, 0xde, 0x05, 0xc8, 0xb3,
+ 0x96, 0xe6, 0xc7, 0x1b, 0x82, 0x2f, 0x53, 0x0a, 0x5e, 0x6d, 0xe2, 0x15,
+ 0xbb, 0x08, 0xf3, 0x1d,
+};
+static const struct drbg_kat_pr_true kat4253_t = {
+ 7, kat4253_entropyin, kat4253_nonce, kat4253_persstr,
+ kat4253_entropyinpr1, kat4253_addinpr1, kat4253_entropyinpr2,
+ kat4253_addinpr2, kat4253_retbits
+};
+static const struct drbg_kat kat4253 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4253_t
+};
+
+static const unsigned char kat4254_entropyin[] = {
+ 0x58, 0xa1, 0x96, 0x66, 0xb7, 0xba, 0xea, 0x18, 0xaf, 0xfe, 0x53, 0x4a,
+ 0x3a, 0xa3, 0xd7, 0xd5, 0x2e, 0x60, 0x5d, 0x5e, 0xf5, 0x90, 0x17, 0xfd,
+ 0xf9, 0xcb, 0x36, 0xb8, 0x2f, 0x77, 0xf7, 0xf1, 0x1b, 0x52, 0x7d, 0xe2,
+ 0xd8, 0xff, 0xa1, 0xcf, 0xd9, 0x01, 0x01, 0x7c, 0xea, 0x67, 0x10, 0x7f,
+};
+static const unsigned char kat4254_nonce[] = {0};
+static const unsigned char kat4254_persstr[] = {
+ 0xfe, 0x30, 0x3b, 0x77, 0xb5, 0x33, 0x17, 0xae, 0xca, 0x61, 0x92, 0xa1,
+ 0x8c, 0x3d, 0x1a, 0xde, 0x20, 0x04, 0x17, 0x5c, 0xa6, 0xef, 0xb2, 0x75,
+ 0x91, 0x53, 0x06, 0x79, 0xa1, 0xeb, 0xbd, 0x5d, 0xa7, 0x70, 0x61, 0xc2,
+ 0xa0, 0x90, 0xa7, 0xdc, 0xb6, 0x1e, 0x64, 0x4f, 0x12, 0x6e, 0xf1, 0x4c,
+};
+static const unsigned char kat4254_entropyinpr1[] = {
+ 0x15, 0xf1, 0xa8, 0xc2, 0x6d, 0xa1, 0x71, 0x14, 0x9e, 0xe5, 0x02, 0x89,
+ 0xcb, 0xb8, 0x49, 0x9e, 0xc3, 0x79, 0xda, 0xdd, 0x6f, 0x26, 0x9d, 0x23,
+ 0x25, 0x01, 0x95, 0x12, 0xcc, 0xcb, 0xd2, 0xb0, 0xa9, 0x1e, 0x1c, 0x44,
+ 0xd9, 0x38, 0x75, 0xbf, 0x64, 0xb6, 0xd3, 0x48, 0x77, 0x78, 0x5a, 0xd5,
+};
+static const unsigned char kat4254_addinpr1[] = {
+ 0x16, 0x6f, 0xde, 0x12, 0xdd, 0x63, 0xa1, 0xcf, 0x86, 0x1d, 0xb0, 0x0e,
+ 0xba, 0xb1, 0x28, 0x33, 0x33, 0x57, 0x9a, 0xeb, 0x9c, 0xe1, 0xd5, 0x9f,
+ 0xd3, 0x55, 0x22, 0xeb, 0xc5, 0x9e, 0xec, 0x2b, 0x48, 0x8a, 0xf7, 0x39,
+ 0x42, 0xa5, 0x5e, 0xbb, 0xa7, 0x20, 0x05, 0x08, 0xd1, 0xc7, 0x6e, 0xee,
+};
+static const unsigned char kat4254_entropyinpr2[] = {
+ 0xe9, 0x3f, 0xb6, 0xe7, 0x8a, 0x07, 0x6c, 0x59, 0x7e, 0x03, 0xb3, 0x45,
+ 0x13, 0xca, 0x18, 0x80, 0x84, 0x05, 0x1f, 0x07, 0x57, 0x3c, 0xdf, 0xad,
+ 0x47, 0x43, 0xb6, 0x32, 0x03, 0xb9, 0xf3, 0xcb, 0x6e, 0x33, 0x06, 0x69,
+ 0x6c, 0x17, 0xc7, 0xd0, 0xcd, 0x86, 0xa2, 0xba, 0xbb, 0x07, 0x24, 0xc3,
+};
+static const unsigned char kat4254_addinpr2[] = {
+ 0xbd, 0x08, 0x7e, 0xd2, 0x3e, 0x1c, 0xca, 0xd0, 0x9a, 0xf9, 0xe3, 0x72,
+ 0x64, 0xca, 0xfa, 0x63, 0x7d, 0x8c, 0x74, 0x01, 0xce, 0xfa, 0xcd, 0xaf,
+ 0x1a, 0x78, 0x5f, 0x6f, 0xc6, 0x3f, 0x60, 0x9c, 0x49, 0xbe, 0xc4, 0x92,
+ 0xbd, 0x67, 0x6e, 0x95, 0x69, 0x2b, 0xd6, 0x59, 0x62, 0x7a, 0xde, 0x6e,
+};
+static const unsigned char kat4254_retbits[] = {
+ 0x7f, 0x59, 0xf2, 0x50, 0xd3, 0xac, 0xcb, 0x4c, 0x46, 0xcd, 0x60, 0xa8,
+ 0x4c, 0xc4, 0xd7, 0x93, 0x91, 0x26, 0x48, 0x80, 0xa9, 0xa1, 0x7a, 0xa5,
+ 0x4c, 0xd1, 0xaf, 0x2a, 0x68, 0xb1, 0xde, 0xcf, 0x83, 0xfd, 0x61, 0x9c,
+ 0x4f, 0x39, 0x28, 0x58, 0x54, 0xbe, 0x3e, 0x00, 0x0c, 0xba, 0x4a, 0x92,
+ 0xa3, 0x8a, 0x8f, 0x58, 0x13, 0x01, 0x13, 0x7a, 0xae, 0x05, 0x63, 0x0f,
+ 0x20, 0xbc, 0x71, 0xa4,
+};
+static const struct drbg_kat_pr_true kat4254_t = {
+ 8, kat4254_entropyin, kat4254_nonce, kat4254_persstr,
+ kat4254_entropyinpr1, kat4254_addinpr1, kat4254_entropyinpr2,
+ kat4254_addinpr2, kat4254_retbits
+};
+static const struct drbg_kat kat4254 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4254_t
+};
+
+static const unsigned char kat4255_entropyin[] = {
+ 0xb3, 0xb1, 0xcb, 0x22, 0x84, 0x29, 0x43, 0x62, 0xd2, 0xf8, 0xcf, 0x7e,
+ 0xe1, 0xc0, 0x72, 0x87, 0x6d, 0x7b, 0x94, 0x1d, 0xb3, 0xb6, 0xe1, 0x51,
+ 0xc7, 0x2c, 0x11, 0xc2, 0x5a, 0xa6, 0xc0, 0x6b, 0xe8, 0x3a, 0x38, 0x67,
+ 0xe9, 0xa5, 0x0e, 0xe7, 0xff, 0x5e, 0x71, 0x76, 0xe7, 0xd2, 0x4e, 0x3c,
+};
+static const unsigned char kat4255_nonce[] = {0};
+static const unsigned char kat4255_persstr[] = {
+ 0xa7, 0x9d, 0x06, 0x7f, 0xea, 0xcd, 0x6c, 0xb7, 0x4d, 0x1f, 0x13, 0x3d,
+ 0xbb, 0x6b, 0xfb, 0xea, 0x38, 0x2b, 0x1e, 0x02, 0xe8, 0x35, 0xe1, 0xf3,
+ 0x95, 0x3b, 0x3d, 0x2c, 0x28, 0xb4, 0x87, 0x41, 0x68, 0x26, 0x82, 0xbe,
+ 0x0a, 0x66, 0x4b, 0x9c, 0x3b, 0x6f, 0xef, 0x8a, 0x61, 0x95, 0x79, 0xb8,
+};
+static const unsigned char kat4255_entropyinpr1[] = {
+ 0x76, 0x12, 0x41, 0x75, 0x0b, 0xa9, 0xa8, 0xcf, 0xa8, 0x32, 0x8f, 0x02,
+ 0xec, 0x32, 0xab, 0x02, 0x5a, 0x97, 0x47, 0x8d, 0xb9, 0x95, 0xf8, 0x42,
+ 0x7e, 0x44, 0xfd, 0xb7, 0x32, 0x26, 0xa7, 0x05, 0x7b, 0xdd, 0x36, 0x33,
+ 0x25, 0xce, 0xd3, 0x77, 0x05, 0x74, 0xbd, 0x45, 0x63, 0xf1, 0x76, 0x48,
+};
+static const unsigned char kat4255_addinpr1[] = {
+ 0xe4, 0x4d, 0xfd, 0xad, 0x93, 0xc9, 0xc5, 0x92, 0x50, 0x42, 0xbc, 0x5c,
+ 0xfb, 0xcb, 0x61, 0x85, 0x41, 0x25, 0x23, 0x84, 0xa3, 0x97, 0x31, 0x20,
+ 0x27, 0x74, 0xe7, 0x5e, 0xfc, 0x6d, 0x7f, 0x43, 0xfe, 0x54, 0xb4, 0x51,
+ 0x76, 0x8b, 0xf9, 0x84, 0xbb, 0xd1, 0xad, 0x7c, 0x05, 0x94, 0xa0, 0xec,
+};
+static const unsigned char kat4255_entropyinpr2[] = {
+ 0x62, 0x3e, 0x95, 0x1b, 0x84, 0x05, 0xaa, 0xf8, 0xb7, 0x68, 0x67, 0x89,
+ 0xe0, 0x13, 0x47, 0x2d, 0x60, 0x93, 0xe8, 0x2f, 0xc3, 0xcc, 0x92, 0x0d,
+ 0x60, 0x38, 0x64, 0xad, 0x49, 0x0f, 0x07, 0x1b, 0x6a, 0x69, 0x37, 0x5c,
+ 0xcb, 0x77, 0x12, 0x91, 0x45, 0x82, 0x59, 0x10, 0x88, 0x09, 0xe5, 0xbd,
+};
+static const unsigned char kat4255_addinpr2[] = {
+ 0x4c, 0xbf, 0x9e, 0xcb, 0x04, 0x0d, 0x0d, 0x82, 0x21, 0xf5, 0x6e, 0x9a,
+ 0xbf, 0x62, 0x3c, 0x02, 0x2c, 0xea, 0xde, 0xd7, 0x2f, 0x20, 0x16, 0x48,
+ 0x45, 0x53, 0x06, 0x8f, 0x84, 0x22, 0xda, 0xed, 0x37, 0x37, 0x31, 0x0d,
+ 0x95, 0x1d, 0x9c, 0x24, 0x08, 0x00, 0xa3, 0x6f, 0x91, 0xac, 0xc5, 0x37,
+};
+static const unsigned char kat4255_retbits[] = {
+ 0xf0, 0x8f, 0x1c, 0xe1, 0x9e, 0xc5, 0x76, 0x2b, 0x4f, 0xf4, 0x05, 0x8d,
+ 0xf7, 0x01, 0x6b, 0xd8, 0x9c, 0x6f, 0x08, 0x82, 0x10, 0x32, 0x7b, 0x19,
+ 0x48, 0xf7, 0x9b, 0x24, 0x53, 0x98, 0x1c, 0x17, 0x59, 0xd7, 0xc3, 0x70,
+ 0xf2, 0xf6, 0x24, 0x74, 0x71, 0x1f, 0xf4, 0xef, 0x95, 0x37, 0x67, 0x2e,
+ 0x99, 0x97, 0x9c, 0x78, 0xb1, 0xe5, 0x79, 0xa5, 0x0b, 0x0e, 0x71, 0x97,
+ 0x24, 0xce, 0x83, 0xc2,
+};
+static const struct drbg_kat_pr_true kat4255_t = {
+ 9, kat4255_entropyin, kat4255_nonce, kat4255_persstr,
+ kat4255_entropyinpr1, kat4255_addinpr1, kat4255_entropyinpr2,
+ kat4255_addinpr2, kat4255_retbits
+};
+static const struct drbg_kat kat4255 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4255_t
+};
+
+static const unsigned char kat4256_entropyin[] = {
+ 0x4e, 0xca, 0xda, 0xb4, 0x00, 0x09, 0x61, 0xd1, 0x49, 0x00, 0x13, 0x75,
+ 0x56, 0x98, 0x2a, 0x81, 0xd4, 0x70, 0x89, 0x72, 0x13, 0xa6, 0xd8, 0xaf,
+ 0x1f, 0xf9, 0x2e, 0x47, 0xc9, 0xf0, 0xcd, 0x10, 0xdd, 0x56, 0x8f, 0x86,
+ 0x5b, 0x08, 0xbb, 0x89, 0x6b, 0x80, 0xa9, 0x14, 0x51, 0x21, 0xab, 0xf9,
+};
+static const unsigned char kat4256_nonce[] = {0};
+static const unsigned char kat4256_persstr[] = {
+ 0x00, 0x13, 0xe6, 0x9a, 0xc5, 0x47, 0x8f, 0xc9, 0x27, 0x79, 0x5f, 0xb7,
+ 0x0f, 0x8d, 0x60, 0x00, 0xaf, 0xed, 0x4a, 0x0e, 0x4d, 0x2d, 0x82, 0x6a,
+ 0x37, 0x15, 0x99, 0x0e, 0x3a, 0xb4, 0xad, 0x2b, 0xef, 0xb4, 0x42, 0x5f,
+ 0x57, 0xef, 0xf8, 0x21, 0x94, 0xfc, 0xe6, 0x5a, 0xbd, 0x6d, 0x6c, 0x1a,
+};
+static const unsigned char kat4256_entropyinpr1[] = {
+ 0x3b, 0x50, 0x6d, 0x96, 0xf8, 0x0e, 0xca, 0xd2, 0xee, 0x86, 0xf9, 0xf3,
+ 0x99, 0x08, 0x31, 0xe4, 0x0b, 0xfa, 0x57, 0x53, 0xc9, 0x12, 0x5c, 0x6a,
+ 0xbe, 0x36, 0xce, 0x53, 0x44, 0x9e, 0xe3, 0xb1, 0x91, 0x3d, 0xf1, 0x61,
+ 0x20, 0x56, 0x04, 0x2a, 0x30, 0x4b, 0xf7, 0x32, 0xb9, 0x76, 0x80, 0x80,
+};
+static const unsigned char kat4256_addinpr1[] = {
+ 0xab, 0x03, 0x93, 0x17, 0x6f, 0xb0, 0x12, 0x8e, 0x6d, 0xf6, 0x30, 0x8d,
+ 0x81, 0x7b, 0x0c, 0x00, 0x7a, 0x95, 0xb4, 0xb8, 0xc8, 0x27, 0x19, 0xef,
+ 0x75, 0x14, 0xc6, 0x1e, 0x4c, 0x22, 0x2b, 0x36, 0xef, 0x80, 0xfc, 0xf0,
+ 0xb5, 0x2a, 0x71, 0x10, 0xcb, 0x9c, 0xe1, 0x8d, 0x8a, 0x75, 0x72, 0xab,
+};
+static const unsigned char kat4256_entropyinpr2[] = {
+ 0xbe, 0x5d, 0x50, 0xe0, 0xdb, 0x9a, 0x34, 0x3c, 0x2d, 0xed, 0xbc, 0x55,
+ 0xb4, 0x3e, 0x29, 0xb8, 0x98, 0xcf, 0x7e, 0xf6, 0x04, 0x41, 0xc9, 0x9a,
+ 0x06, 0x63, 0x46, 0x67, 0xb6, 0x81, 0x04, 0x90, 0x0c, 0x3a, 0x99, 0xa1,
+ 0xdc, 0x67, 0x0f, 0x71, 0xa4, 0x65, 0xe7, 0xb7, 0x16, 0xec, 0xa4, 0x3e,
+};
+static const unsigned char kat4256_addinpr2[] = {
+ 0x52, 0x93, 0x4c, 0xe7, 0xb5, 0x9c, 0x85, 0xee, 0xc9, 0x8d, 0x80, 0x46,
+ 0x28, 0x6a, 0x75, 0x4a, 0x7e, 0x8b, 0xb1, 0x82, 0xd1, 0xbe, 0xc3, 0xb2,
+ 0x95, 0x8c, 0xa6, 0x92, 0xa6, 0x0e, 0xe9, 0x24, 0xbe, 0xa0, 0xd7, 0x76,
+ 0x37, 0x95, 0x08, 0xf2, 0x00, 0x5a, 0xfe, 0xc9, 0x46, 0x8a, 0x8c, 0x7d,
+};
+static const unsigned char kat4256_retbits[] = {
+ 0x4f, 0xf5, 0x00, 0x7e, 0x85, 0x9d, 0xe9, 0x22, 0x68, 0xbc, 0x2d, 0xc6,
+ 0x8f, 0x77, 0x88, 0x7d, 0x4d, 0xc5, 0x4c, 0x7b, 0x28, 0xf5, 0x30, 0x8f,
+ 0xfa, 0xac, 0x55, 0x3c, 0x57, 0xde, 0x5f, 0x28, 0x98, 0xee, 0xe3, 0x69,
+ 0x6d, 0x30, 0x04, 0x4d, 0xc1, 0x93, 0x18, 0x32, 0xbd, 0xf3, 0x59, 0x61,
+ 0xbd, 0xec, 0x10, 0x0b, 0xc9, 0x90, 0x9b, 0x43, 0x24, 0xca, 0x81, 0x39,
+ 0x8f, 0xef, 0x04, 0xad,
+};
+static const struct drbg_kat_pr_true kat4256_t = {
+ 10, kat4256_entropyin, kat4256_nonce, kat4256_persstr,
+ kat4256_entropyinpr1, kat4256_addinpr1, kat4256_entropyinpr2,
+ kat4256_addinpr2, kat4256_retbits
+};
+static const struct drbg_kat kat4256 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4256_t
+};
+
+static const unsigned char kat4257_entropyin[] = {
+ 0xdb, 0xa3, 0x6d, 0x56, 0xec, 0x5a, 0x52, 0x9d, 0x11, 0x47, 0x6f, 0x0a,
+ 0x01, 0x19, 0x36, 0x8e, 0xb0, 0x5a, 0x76, 0xe4, 0x09, 0x62, 0xde, 0x67,
+ 0x97, 0x3a, 0x63, 0x7b, 0xc4, 0xc4, 0xb7, 0xd2, 0x8e, 0x24, 0x3a, 0x10,
+ 0xca, 0xd6, 0x68, 0x45, 0x81, 0x89, 0xe1, 0x2f, 0xe8, 0xe8, 0xf4, 0xc6,
+};
+static const unsigned char kat4257_nonce[] = {0};
+static const unsigned char kat4257_persstr[] = {
+ 0x45, 0xa8, 0xc6, 0x3d, 0xe2, 0x63, 0xf6, 0x49, 0x8c, 0x54, 0x4a, 0x43,
+ 0x63, 0xc5, 0x71, 0x8d, 0xbb, 0x06, 0xc4, 0x97, 0xd1, 0x53, 0x7b, 0x26,
+ 0x4f, 0xd1, 0xaf, 0x48, 0x3d, 0xa0, 0xcc, 0xd5, 0x5a, 0x4e, 0x9f, 0x54,
+ 0x28, 0x89, 0xa3, 0x46, 0x83, 0x57, 0x7a, 0xb9, 0x3a, 0x2a, 0x69, 0x43,
+};
+static const unsigned char kat4257_entropyinpr1[] = {
+ 0xa8, 0xec, 0x5c, 0xdc, 0xa0, 0x1e, 0x66, 0x50, 0xfd, 0xe4, 0x07, 0x63,
+ 0xf7, 0x0c, 0xfe, 0x73, 0x64, 0x7d, 0x47, 0x08, 0xbb, 0x33, 0xe1, 0xb1,
+ 0xad, 0x0f, 0x9c, 0xf6, 0x26, 0x10, 0x5f, 0xe4, 0x5c, 0xd7, 0xa5, 0xeb,
+ 0x9e, 0x15, 0x7d, 0x83, 0xb1, 0xcd, 0x77, 0x69, 0x49, 0x32, 0x96, 0x88,
+};
+static const unsigned char kat4257_addinpr1[] = {
+ 0xcf, 0x61, 0xf9, 0x16, 0x7d, 0x15, 0x2b, 0xe5, 0xff, 0x20, 0x5f, 0x24,
+ 0xc7, 0x34, 0xc5, 0xab, 0x2b, 0x12, 0x20, 0xe6, 0x34, 0x4c, 0x98, 0xcf,
+ 0xaf, 0x70, 0x69, 0xd2, 0x95, 0x44, 0x51, 0xe7, 0x27, 0xad, 0x50, 0x45,
+ 0x08, 0x06, 0x12, 0x24, 0x8e, 0x3e, 0x7d, 0x4b, 0xac, 0x69, 0x66, 0x88,
+};
+static const unsigned char kat4257_entropyinpr2[] = {
+ 0x1f, 0xba, 0x4d, 0xe2, 0xc0, 0xe8, 0xa2, 0x87, 0x00, 0xd1, 0xf8, 0xb0,
+ 0x33, 0x3e, 0x36, 0xa6, 0x2c, 0x21, 0xe9, 0x17, 0x07, 0x3a, 0x7a, 0xde,
+ 0x4b, 0x6b, 0xf0, 0xf5, 0x19, 0x22, 0x66, 0x24, 0x11, 0xd4, 0x72, 0xf9,
+ 0x45, 0x5f, 0x49, 0x33, 0xa5, 0x63, 0xb2, 0x1c, 0x24, 0x17, 0xc1, 0x1b,
+};
+static const unsigned char kat4257_addinpr2[] = {
+ 0x30, 0xc3, 0xd6, 0x49, 0xb5, 0x61, 0x7f, 0x02, 0xe7, 0xc4, 0xc0, 0xf5,
+ 0x5e, 0x4a, 0x78, 0xd0, 0xc4, 0x63, 0xab, 0x50, 0x46, 0x6d, 0x82, 0x09,
+ 0x0e, 0x35, 0xa7, 0xbf, 0x42, 0x12, 0xc7, 0x27, 0xfb, 0xda, 0xa8, 0xdd,
+ 0xa8, 0xbe, 0x6a, 0x7a, 0x81, 0x7e, 0x52, 0x99, 0xd4, 0x42, 0x62, 0x55,
+};
+static const unsigned char kat4257_retbits[] = {
+ 0x5e, 0xb9, 0x15, 0x38, 0x5c, 0x99, 0x65, 0x4a, 0x2c, 0x53, 0x76, 0x8f,
+ 0x1e, 0xfc, 0x76, 0xa2, 0x97, 0x42, 0x2b, 0x42, 0x53, 0x7e, 0xd9, 0x7d,
+ 0x08, 0xd4, 0x74, 0x24, 0x0a, 0xcd, 0xa2, 0xa8, 0xf5, 0x96, 0x8c, 0x25,
+ 0xee, 0xb2, 0x98, 0xa7, 0xc2, 0xf8, 0xe7, 0xe6, 0xc2, 0xa9, 0x8e, 0x56,
+ 0x08, 0x3c, 0xff, 0xf4, 0x5e, 0x40, 0x17, 0xe0, 0xae, 0xd7, 0x4d, 0x19,
+ 0x9b, 0x9f, 0x30, 0x4c,
+};
+static const struct drbg_kat_pr_true kat4257_t = {
+ 11, kat4257_entropyin, kat4257_nonce, kat4257_persstr,
+ kat4257_entropyinpr1, kat4257_addinpr1, kat4257_entropyinpr2,
+ kat4257_addinpr2, kat4257_retbits
+};
+static const struct drbg_kat kat4257 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4257_t
+};
+
+static const unsigned char kat4258_entropyin[] = {
+ 0x11, 0xe9, 0x7d, 0x87, 0xae, 0x28, 0xa7, 0xf2, 0xa8, 0xd3, 0xc0, 0xc6,
+ 0xe7, 0x24, 0xab, 0x96, 0x4b, 0xfc, 0x7d, 0x4b, 0x57, 0x8f, 0xcd, 0x69,
+ 0xc7, 0xb3, 0xd6, 0x63, 0x16, 0x4c, 0x56, 0x83, 0xf6, 0xc2, 0xb5, 0xa5,
+ 0xf4, 0x6e, 0x43, 0x9f, 0x74, 0x71, 0x08, 0xc6, 0x75, 0xdc, 0xdc, 0x86,
+};
+static const unsigned char kat4258_nonce[] = {0};
+static const unsigned char kat4258_persstr[] = {
+ 0x7f, 0x81, 0x64, 0x90, 0x39, 0x61, 0x31, 0xc8, 0x17, 0x12, 0xa3, 0x21,
+ 0x35, 0xfc, 0x59, 0xa9, 0xa8, 0x60, 0x24, 0xb6, 0x36, 0x68, 0xaa, 0x13,
+ 0x98, 0xeb, 0x29, 0xb0, 0xdc, 0x0e, 0xfe, 0x4d, 0x46, 0xaf, 0xf0, 0x21,
+ 0xab, 0x38, 0x66, 0x4f, 0x79, 0x71, 0xef, 0xc5, 0xa6, 0x08, 0x00, 0x5d,
+};
+static const unsigned char kat4258_entropyinpr1[] = {
+ 0x90, 0x42, 0xec, 0xb8, 0x6d, 0x46, 0x7d, 0xbb, 0x96, 0xac, 0xbf, 0xdb,
+ 0x76, 0x84, 0x0d, 0x5d, 0x86, 0x85, 0x15, 0x8d, 0xc8, 0xd1, 0x80, 0x96,
+ 0x84, 0x9c, 0x30, 0x1a, 0x9c, 0x8c, 0xbb, 0xbb, 0x94, 0xdc, 0x3d, 0x87,
+ 0x13, 0xe2, 0x0e, 0x4c, 0xbd, 0x7c, 0xbd, 0x48, 0xb0, 0x44, 0xa5, 0xc9,
+};
+static const unsigned char kat4258_addinpr1[] = {
+ 0x9e, 0x2d, 0x5b, 0x7a, 0xf1, 0x7f, 0xd6, 0xa1, 0x1e, 0x91, 0x97, 0x8b,
+ 0xed, 0x43, 0x38, 0x01, 0x68, 0xb3, 0x48, 0x1f, 0x2f, 0x3c, 0x5f, 0x95,
+ 0x15, 0x4f, 0xd1, 0x36, 0xcd, 0x4c, 0x14, 0xce, 0x48, 0x53, 0xc3, 0xfa,
+ 0xea, 0x9f, 0xbc, 0xf8, 0x9e, 0x67, 0x38, 0x29, 0x62, 0xf9, 0xb2, 0x1b,
+};
+static const unsigned char kat4258_entropyinpr2[] = {
+ 0x73, 0xf3, 0xc8, 0xa1, 0x1c, 0xf2, 0x2f, 0x9e, 0xc3, 0x97, 0x96, 0xa8,
+ 0xb0, 0xdd, 0xc2, 0xdf, 0x70, 0x87, 0x46, 0x8b, 0xce, 0x2a, 0x59, 0x6d,
+ 0xd8, 0x5a, 0xa9, 0x49, 0x9c, 0x49, 0x59, 0x96, 0x45, 0xe0, 0xfe, 0x96,
+ 0x9c, 0xde, 0xdf, 0x92, 0x61, 0x92, 0x11, 0xd5, 0xac, 0xe5, 0x54, 0xf6,
+};
+static const unsigned char kat4258_addinpr2[] = {
+ 0x5c, 0x9b, 0x36, 0x52, 0x5a, 0xcc, 0xba, 0xb8, 0x74, 0x16, 0x36, 0xb4,
+ 0x2e, 0x53, 0xf5, 0xb3, 0xff, 0xcc, 0x01, 0x5c, 0x90, 0x5b, 0x90, 0x10,
+ 0xd0, 0x32, 0x87, 0x38, 0x9d, 0x3b, 0x1a, 0x44, 0xac, 0xfb, 0x1c, 0x43,
+ 0xf2, 0x45, 0xb0, 0x77, 0x98, 0xfa, 0xe3, 0x3d, 0xc0, 0x95, 0x92, 0x15,
+};
+static const unsigned char kat4258_retbits[] = {
+ 0x9b, 0x33, 0x32, 0xb2, 0x6d, 0x4b, 0x66, 0xaa, 0xbf, 0x78, 0x3c, 0xc4,
+ 0x64, 0xe1, 0x0f, 0x17, 0xee, 0xd0, 0x0e, 0x10, 0xfb, 0x2f, 0xf4, 0xe0,
+ 0x06, 0x78, 0x45, 0x17, 0xba, 0x6f, 0x36, 0x6f, 0x3a, 0xb3, 0x62, 0xb4,
+ 0x6a, 0x07, 0xe9, 0xa0, 0x1a, 0x91, 0x38, 0xc0, 0xd7, 0x30, 0xa4, 0x87,
+ 0x29, 0x2e, 0x67, 0xe2, 0xd6, 0x33, 0x60, 0xd3, 0xc4, 0x92, 0xcc, 0x2b,
+ 0x2b, 0x9e, 0xf3, 0xed,
+};
+static const struct drbg_kat_pr_true kat4258_t = {
+ 12, kat4258_entropyin, kat4258_nonce, kat4258_persstr,
+ kat4258_entropyinpr1, kat4258_addinpr1, kat4258_entropyinpr2,
+ kat4258_addinpr2, kat4258_retbits
+};
+static const struct drbg_kat kat4258 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4258_t
+};
+
+static const unsigned char kat4259_entropyin[] = {
+ 0xde, 0x5f, 0x34, 0x29, 0xbb, 0x76, 0xfc, 0x13, 0x31, 0x8b, 0xc8, 0x3e,
+ 0xd5, 0x36, 0xf4, 0xa1, 0x4f, 0x1e, 0x01, 0x06, 0x98, 0x94, 0x72, 0xde,
+ 0x31, 0xe9, 0xaa, 0x23, 0x42, 0x95, 0x88, 0xd8, 0xf5, 0x14, 0x8c, 0xe5,
+ 0x4e, 0x55, 0xac, 0x09, 0xd2, 0xbc, 0x3f, 0x3b, 0xd3, 0xed, 0x19, 0xcc,
+};
+static const unsigned char kat4259_nonce[] = {0};
+static const unsigned char kat4259_persstr[] = {
+ 0xaa, 0x57, 0x81, 0x2b, 0x40, 0x98, 0xd1, 0x0b, 0xfa, 0x1f, 0xe1, 0x6b,
+ 0x1d, 0x4e, 0xdf, 0xd8, 0x13, 0x3e, 0xca, 0xf2, 0x2d, 0xcc, 0x01, 0xb0,
+ 0xa0, 0x9e, 0x82, 0x78, 0xa4, 0xd4, 0xba, 0x58, 0xe5, 0x85, 0xbd, 0x0c,
+ 0xfe, 0x38, 0xe8, 0x58, 0x4d, 0xd1, 0x9c, 0x26, 0xa6, 0x5e, 0xc7, 0x2b,
+};
+static const unsigned char kat4259_entropyinpr1[] = {
+ 0x96, 0xa8, 0x9d, 0x66, 0x68, 0xc3, 0xde, 0xf5, 0x03, 0xc9, 0x53, 0xdf,
+ 0x3d, 0x00, 0x72, 0x9c, 0xd0, 0xde, 0xc2, 0x19, 0x1c, 0x6a, 0x2d, 0x19,
+ 0xd9, 0x42, 0x0b, 0x00, 0x1e, 0xa4, 0x02, 0x5a, 0xee, 0xce, 0x04, 0xc8,
+ 0x94, 0x49, 0x7a, 0x6d, 0x5c, 0x16, 0x90, 0x2e, 0xa8, 0x04, 0x24, 0x58,
+};
+static const unsigned char kat4259_addinpr1[] = {
+ 0x62, 0x79, 0xcd, 0x1c, 0xe9, 0x4b, 0x50, 0x14, 0x60, 0x41, 0x01, 0x99,
+ 0x89, 0x84, 0x7e, 0x00, 0xe1, 0x12, 0xfe, 0xcc, 0x33, 0x49, 0x59, 0x37,
+ 0x95, 0x69, 0x9c, 0x92, 0xf5, 0x70, 0xe5, 0xa8, 0xd5, 0xd6, 0x4e, 0xfb,
+ 0x28, 0x66, 0xd4, 0x90, 0xca, 0x15, 0xa9, 0xdd, 0x25, 0xf4, 0x5a, 0x56,
+};
+static const unsigned char kat4259_entropyinpr2[] = {
+ 0x27, 0x18, 0xd5, 0x9d, 0x95, 0x73, 0x93, 0xa6, 0x10, 0xef, 0x7a, 0x9f,
+ 0x56, 0x4b, 0x59, 0xbe, 0x12, 0x81, 0xb7, 0x32, 0x59, 0x07, 0xc0, 0x57,
+ 0x4f, 0x19, 0x32, 0x4d, 0x61, 0xcd, 0x68, 0x7a, 0x50, 0xdc, 0x16, 0x58,
+ 0xde, 0xbd, 0xca, 0x37, 0xcd, 0x76, 0xd4, 0x90, 0xa4, 0x31, 0xae, 0x95,
+};
+static const unsigned char kat4259_addinpr2[] = {
+ 0x48, 0x6e, 0x84, 0x91, 0xbe, 0xad, 0x78, 0x40, 0x50, 0x40, 0x43, 0xd4,
+ 0xcb, 0x6c, 0xd6, 0x7a, 0x46, 0xaf, 0x40, 0xf4, 0x02, 0x43, 0xa5, 0xef,
+ 0x10, 0x30, 0xb3, 0x5e, 0x98, 0xc8, 0xe4, 0x70, 0xf6, 0xc2, 0x21, 0x34,
+ 0x43, 0xbf, 0xbe, 0xc2, 0xc2, 0x22, 0x96, 0xa5, 0xb4, 0x4d, 0x9a, 0xb2,
+};
+static const unsigned char kat4259_retbits[] = {
+ 0xe3, 0xaa, 0x10, 0xd0, 0x85, 0xd6, 0xc9, 0x10, 0xc1, 0x77, 0xfb, 0x22,
+ 0xba, 0x5e, 0x49, 0xc3, 0xa5, 0xf1, 0x74, 0xb5, 0x6f, 0x07, 0xdf, 0xa5,
+ 0x8f, 0xd3, 0x15, 0x06, 0x71, 0x85, 0xb5, 0xbe, 0x37, 0xff, 0xbc, 0x2d,
+ 0x99, 0x3d, 0x39, 0xbc, 0xb2, 0x28, 0xf1, 0x1f, 0x5d, 0xd6, 0x3d, 0x8a,
+ 0xb9, 0x72, 0x17, 0x44, 0xd9, 0x47, 0x46, 0x93, 0xbd, 0x9b, 0x51, 0x78,
+ 0x9e, 0xbe, 0x4f, 0x89,
+};
+static const struct drbg_kat_pr_true kat4259_t = {
+ 13, kat4259_entropyin, kat4259_nonce, kat4259_persstr,
+ kat4259_entropyinpr1, kat4259_addinpr1, kat4259_entropyinpr2,
+ kat4259_addinpr2, kat4259_retbits
+};
+static const struct drbg_kat kat4259 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4259_t
+};
+
+static const unsigned char kat4260_entropyin[] = {
+ 0x93, 0x15, 0x15, 0x56, 0x64, 0x07, 0x5b, 0x4b, 0xcf, 0xfe, 0x5d, 0x89,
+ 0x70, 0xc6, 0xe8, 0xe8, 0xb3, 0xbc, 0x5c, 0x7f, 0xea, 0xfa, 0x7c, 0xc8,
+ 0x28, 0xa6, 0x85, 0xad, 0x56, 0xcf, 0xc0, 0xd9, 0xad, 0xa0, 0x5e, 0x12,
+ 0xab, 0x67, 0x69, 0x5b, 0xf2, 0x7f, 0xba, 0x3c, 0xd7, 0xe2, 0xcc, 0x00,
+};
+static const unsigned char kat4260_nonce[] = {0};
+static const unsigned char kat4260_persstr[] = {
+ 0xa6, 0x91, 0xc1, 0x2c, 0xc3, 0x22, 0xe2, 0xc5, 0x3f, 0xfc, 0xd3, 0x2c,
+ 0x8b, 0x1b, 0xba, 0xa5, 0x43, 0xa8, 0xe6, 0xf9, 0x7b, 0x90, 0xa4, 0x5c,
+ 0xf7, 0xd7, 0x43, 0xd2, 0x9e, 0xd7, 0xa5, 0x3a, 0xd2, 0x09, 0xe0, 0xf2,
+ 0x2a, 0xd8, 0xa8, 0x6a, 0x8f, 0xb5, 0x9f, 0x6d, 0xf2, 0x42, 0xae, 0xa6,
+};
+static const unsigned char kat4260_entropyinpr1[] = {
+ 0xca, 0xc1, 0xbd, 0x62, 0xb1, 0xb7, 0x81, 0x02, 0xc1, 0xcd, 0xab, 0x6d,
+ 0xb5, 0xbd, 0x31, 0xbc, 0x6f, 0x91, 0x3d, 0x7a, 0x91, 0xb0, 0x2d, 0x41,
+ 0xa8, 0xa0, 0xfe, 0xa4, 0x8c, 0xe2, 0x8c, 0xcf, 0xdd, 0x40, 0x18, 0x13,
+ 0x02, 0xe7, 0x99, 0x84, 0x35, 0x65, 0x0b, 0x3f, 0x04, 0x3d, 0xf6, 0xa1,
+};
+static const unsigned char kat4260_addinpr1[] = {
+ 0x55, 0x55, 0x45, 0x79, 0x8c, 0xd0, 0x76, 0x45, 0xe7, 0x47, 0x0d, 0x4a,
+ 0x8d, 0x43, 0xcf, 0xbd, 0x32, 0x28, 0x88, 0x52, 0x32, 0x9a, 0xf2, 0xc7,
+ 0x6f, 0x2a, 0x7d, 0x2f, 0xd5, 0x3c, 0xc6, 0x3e, 0x43, 0x44, 0xe8, 0x0d,
+ 0x54, 0x91, 0x7f, 0x4e, 0x9a, 0x4c, 0xd2, 0x1e, 0x60, 0x07, 0x4e, 0x9a,
+};
+static const unsigned char kat4260_entropyinpr2[] = {
+ 0xa5, 0x2c, 0x99, 0xa1, 0x2f, 0x63, 0xc6, 0xae, 0x4b, 0xc1, 0x01, 0xff,
+ 0x22, 0x1d, 0x7f, 0xd1, 0xb4, 0xdd, 0x79, 0xdf, 0x76, 0xe3, 0x89, 0x92,
+ 0xba, 0x3f, 0xdf, 0x38, 0x0b, 0xdb, 0xad, 0x5e, 0x6a, 0xa1, 0x5d, 0x0a,
+ 0xb6, 0x38, 0xe9, 0x08, 0x74, 0xd8, 0x1b, 0xdb, 0x2e, 0x98, 0x3a, 0xba,
+};
+static const unsigned char kat4260_addinpr2[] = {
+ 0xc0, 0xe1, 0x6d, 0x4f, 0xc8, 0x5c, 0xfb, 0x1c, 0x3a, 0x4f, 0x69, 0x80,
+ 0x60, 0x41, 0xc5, 0xa2, 0x70, 0xd4, 0xaf, 0x74, 0x22, 0x92, 0xdc, 0xeb,
+ 0xec, 0xcb, 0xa7, 0x5e, 0x1b, 0xa0, 0xbf, 0x74, 0x9c, 0x5e, 0xa6, 0xbc,
+ 0xcf, 0xbe, 0x0e, 0xdd, 0xc8, 0x39, 0xfa, 0xef, 0xdd, 0xd5, 0x46, 0x3d,
+};
+static const unsigned char kat4260_retbits[] = {
+ 0xe7, 0x28, 0x95, 0x7b, 0x29, 0x25, 0x65, 0xf9, 0x06, 0xde, 0x0c, 0xee,
+ 0x5b, 0xf9, 0x1f, 0xbe, 0x2e, 0x18, 0x98, 0x57, 0xca, 0x5d, 0x5e, 0xfe,
+ 0xfb, 0x59, 0x53, 0xa8, 0xe9, 0xf4, 0x66, 0x30, 0x75, 0x6e, 0xa0, 0x1a,
+ 0xbf, 0x8e, 0x6f, 0xc4, 0x99, 0xbc, 0x8e, 0x2e, 0x5c, 0x29, 0xc6, 0x26,
+ 0x69, 0xbc, 0x07, 0xcc, 0xfb, 0xdc, 0x79, 0x51, 0x21, 0x5f, 0x8b, 0xa7,
+ 0xf1, 0xbc, 0x81, 0x5e,
+};
+static const struct drbg_kat_pr_true kat4260_t = {
+ 14, kat4260_entropyin, kat4260_nonce, kat4260_persstr,
+ kat4260_entropyinpr1, kat4260_addinpr1, kat4260_entropyinpr2,
+ kat4260_addinpr2, kat4260_retbits
+};
+static const struct drbg_kat kat4260 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4260_t
+};
+
+static const unsigned char kat4261_entropyin[] = {
+ 0xd9, 0x59, 0x55, 0x48, 0x7e, 0x78, 0x81, 0xb8, 0xaa, 0x88, 0xfe, 0xa0,
+ 0xe1, 0x10, 0x55, 0xfc, 0xbb, 0xf0, 0x3f, 0x6a, 0xdc, 0xd9, 0x3d, 0x42,
+ 0x4d, 0x68, 0xcc, 0x43, 0x01, 0xfb, 0x38, 0x7f, 0x14, 0xb8, 0x80, 0x60,
+ 0x52, 0xc1, 0x9a, 0x6f, 0x33, 0xc0, 0x60, 0x22, 0x7b, 0x96, 0xf9, 0x55,
+};
+static const unsigned char kat4261_nonce[] = {0};
+static const unsigned char kat4261_persstr[] = {0};
+static const unsigned char kat4261_entropyinpr1[] = {
+ 0xf4, 0xeb, 0x95, 0x57, 0x99, 0x1d, 0x97, 0x9c, 0x85, 0x98, 0xda, 0xd1,
+ 0x19, 0xf7, 0x29, 0x7a, 0x1a, 0x05, 0xe6, 0x3b, 0x0c, 0x30, 0x98, 0x7a,
+ 0x5b, 0x59, 0xc4, 0x3d, 0x2e, 0x51, 0xbf, 0xbe, 0xb2, 0x5a, 0x02, 0xff,
+ 0x77, 0x6e, 0xce, 0x92, 0x70, 0x93, 0x0a, 0xc6, 0x1c, 0x81, 0xb2, 0xdc,
+};
+static const unsigned char kat4261_addinpr1[] = {0};
+static const unsigned char kat4261_entropyinpr2[] = {
+ 0x33, 0x2d, 0xe5, 0x8b, 0x15, 0x83, 0x75, 0x74, 0x24, 0x2c, 0x4e, 0x63,
+ 0x99, 0x17, 0x92, 0xf0, 0x05, 0x30, 0x7d, 0x5e, 0xf6, 0x37, 0x67, 0x0e,
+ 0x23, 0x00, 0x73, 0x5f, 0x8c, 0xe6, 0x2f, 0x0a, 0x2e, 0x8c, 0x4c, 0xea,
+ 0x2d, 0xf0, 0x58, 0x8f, 0x7c, 0x35, 0x7c, 0x3b, 0x7f, 0x24, 0xc2, 0xc2,
+};
+static const unsigned char kat4261_addinpr2[] = {0};
+static const unsigned char kat4261_retbits[] = {
+ 0x27, 0x48, 0x7a, 0x3d, 0x3d, 0x6e, 0x93, 0x0f, 0xeb, 0x0b, 0x33, 0x83,
+ 0x2d, 0xdb, 0x49, 0x14, 0x68, 0x52, 0xfa, 0x41, 0xfd, 0xba, 0x4b, 0x56,
+ 0x2b, 0xe9, 0x9b, 0xa4, 0xf2, 0x67, 0xf5, 0xcf, 0x9e, 0x47, 0x97, 0x8f,
+ 0x05, 0x19, 0xce, 0xf6, 0x99, 0x89, 0xc2, 0xef, 0x52, 0x2b, 0x5e, 0xc6,
+ 0xa7, 0x59, 0x1d, 0xb7, 0x6e, 0xf5, 0xfb, 0x22, 0x00, 0x80, 0xa1, 0xc1,
+ 0xd6, 0x35, 0x2e, 0xf1,
+};
+static const struct drbg_kat_pr_true kat4261_t = {
+ 0, kat4261_entropyin, kat4261_nonce, kat4261_persstr,
+ kat4261_entropyinpr1, kat4261_addinpr1, kat4261_entropyinpr2,
+ kat4261_addinpr2, kat4261_retbits
+};
+static const struct drbg_kat kat4261 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4261_t
+};
+
+static const unsigned char kat4262_entropyin[] = {
+ 0x3c, 0x5e, 0xd0, 0xd2, 0x4d, 0xfe, 0x7f, 0x93, 0x77, 0x5a, 0x0c, 0x86,
+ 0x16, 0x8f, 0xbe, 0x95, 0xe4, 0x30, 0xf0, 0x58, 0xf3, 0x9e, 0xac, 0x98,
+ 0x2e, 0x26, 0x74, 0xca, 0x1c, 0xb2, 0x9a, 0x59, 0xac, 0xbe, 0x7e, 0xff,
+ 0x55, 0x40, 0x37, 0x52, 0x30, 0x4e, 0xbf, 0x24, 0xcd, 0x9d, 0x79, 0x9b,
+};
+static const unsigned char kat4262_nonce[] = {0};
+static const unsigned char kat4262_persstr[] = {0};
+static const unsigned char kat4262_entropyinpr1[] = {
+ 0x0c, 0xb1, 0x81, 0x42, 0x58, 0xf2, 0xe9, 0x00, 0x46, 0xa5, 0x7c, 0xf2,
+ 0x60, 0x58, 0x8b, 0xd4, 0x16, 0x59, 0x98, 0x5b, 0x2d, 0x0a, 0xd2, 0x65,
+ 0x54, 0xaf, 0xbd, 0xba, 0x2c, 0xb9, 0x88, 0xb8, 0x63, 0x26, 0x7c, 0x54,
+ 0xa5, 0xe1, 0x86, 0xb6, 0x67, 0xdc, 0x8d, 0x35, 0xc5, 0x9a, 0x9e, 0x92,
+};
+static const unsigned char kat4262_addinpr1[] = {0};
+static const unsigned char kat4262_entropyinpr2[] = {
+ 0x36, 0x62, 0x4b, 0xe5, 0x5f, 0x0b, 0x7b, 0x17, 0x96, 0x9e, 0x26, 0x1d,
+ 0x34, 0x33, 0xbe, 0x03, 0xd8, 0x9d, 0x7a, 0x72, 0xaa, 0x5e, 0xb8, 0x53,
+ 0x4b, 0x70, 0x2c, 0xdb, 0x13, 0x7a, 0x46, 0x46, 0x77, 0x6a, 0x5c, 0xc3,
+ 0x8e, 0xd0, 0xc7, 0xd3, 0x3c, 0x82, 0x3a, 0xf5, 0x1b, 0x67, 0x8b, 0x37,
+};
+static const unsigned char kat4262_addinpr2[] = {0};
+static const unsigned char kat4262_retbits[] = {
+ 0x5e, 0x99, 0x1f, 0x97, 0x53, 0xba, 0xc9, 0xeb, 0xe8, 0x05, 0x12, 0xcf,
+ 0x2d, 0x3e, 0x01, 0x6d, 0xdd, 0x93, 0x6c, 0x6c, 0xfe, 0x2b, 0x8b, 0x8e,
+ 0x7a, 0xa3, 0x2d, 0x0c, 0xa6, 0xab, 0x88, 0x59, 0xa6, 0x63, 0x6d, 0xd3,
+ 0x40, 0xe7, 0xfd, 0x0f, 0xe7, 0x2f, 0x24, 0x59, 0xb3, 0xe2, 0xf5, 0x66,
+ 0x7e, 0xcd, 0xa1, 0x96, 0x4a, 0xd1, 0x4b, 0x22, 0x19, 0xad, 0x36, 0x23,
+ 0x6a, 0x19, 0x17, 0x64,
+};
+static const struct drbg_kat_pr_true kat4262_t = {
+ 1, kat4262_entropyin, kat4262_nonce, kat4262_persstr,
+ kat4262_entropyinpr1, kat4262_addinpr1, kat4262_entropyinpr2,
+ kat4262_addinpr2, kat4262_retbits
+};
+static const struct drbg_kat kat4262 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4262_t
+};
+
+static const unsigned char kat4263_entropyin[] = {
+ 0xb0, 0x26, 0x0e, 0x71, 0xe1, 0x3b, 0xb5, 0x74, 0x89, 0xda, 0x60, 0xcf,
+ 0xbe, 0x28, 0x42, 0x74, 0x38, 0x9f, 0x64, 0x6f, 0xe7, 0x3c, 0x9d, 0x34,
+ 0xbc, 0x7a, 0x9e, 0x77, 0x15, 0x97, 0xd7, 0x20, 0xa6, 0x08, 0x2c, 0x4d,
+ 0x33, 0x2e, 0x8a, 0x4d, 0x89, 0x5b, 0xed, 0x37, 0x62, 0x71, 0xb9, 0x5c,
+};
+static const unsigned char kat4263_nonce[] = {0};
+static const unsigned char kat4263_persstr[] = {0};
+static const unsigned char kat4263_entropyinpr1[] = {
+ 0x1e, 0xde, 0x96, 0xad, 0x12, 0x9f, 0xe8, 0xf9, 0x57, 0x3d, 0x80, 0x00,
+ 0x73, 0xaf, 0x27, 0xa1, 0x75, 0xee, 0x8e, 0xd3, 0x94, 0x92, 0x4f, 0x48,
+ 0xa6, 0xd1, 0xb4, 0xe7, 0x64, 0xfa, 0xf9, 0x01, 0xf8, 0xf7, 0xcd, 0xa4,
+ 0xb2, 0xbd, 0x68, 0x25, 0x4a, 0x05, 0x2b, 0x84, 0x22, 0x5c, 0x55, 0x1a,
+};
+static const unsigned char kat4263_addinpr1[] = {0};
+static const unsigned char kat4263_entropyinpr2[] = {
+ 0xfe, 0x4f, 0x28, 0xbe, 0x8a, 0x08, 0x1d, 0xb7, 0x8a, 0x7b, 0x9a, 0x10,
+ 0x15, 0x68, 0xec, 0x32, 0x2b, 0xa6, 0xaf, 0x36, 0xb1, 0x42, 0xa9, 0x80,
+ 0x1d, 0xa0, 0x80, 0x31, 0x4d, 0x3a, 0x37, 0x91, 0xef, 0xc2, 0x2b, 0x66,
+ 0x3a, 0x0f, 0x20, 0x83, 0x88, 0x9c, 0xb1, 0xd8, 0xc8, 0xb2, 0x8d, 0x40,
+};
+static const unsigned char kat4263_addinpr2[] = {0};
+static const unsigned char kat4263_retbits[] = {
+ 0xcd, 0x70, 0xac, 0x41, 0xb8, 0xc3, 0xd9, 0x25, 0x4d, 0xc6, 0xd7, 0x16,
+ 0xeb, 0xd5, 0x2a, 0x26, 0x75, 0xad, 0x56, 0xb9, 0xde, 0xc5, 0x1b, 0xc1,
+ 0xf3, 0xd1, 0x08, 0x70, 0x9e, 0x82, 0x8a, 0x99, 0xfa, 0x63, 0x42, 0xad,
+ 0xda, 0x75, 0x50, 0x5b, 0x30, 0x48, 0xa3, 0x65, 0x81, 0xb0, 0xa9, 0xc2,
+ 0xee, 0x02, 0x8d, 0x23, 0x25, 0xb2, 0xbd, 0x03, 0x02, 0x93, 0x03, 0x1b,
+ 0x44, 0x6a, 0xd3, 0x51,
+};
+static const struct drbg_kat_pr_true kat4263_t = {
+ 2, kat4263_entropyin, kat4263_nonce, kat4263_persstr,
+ kat4263_entropyinpr1, kat4263_addinpr1, kat4263_entropyinpr2,
+ kat4263_addinpr2, kat4263_retbits
+};
+static const struct drbg_kat kat4263 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4263_t
+};
+
+static const unsigned char kat4264_entropyin[] = {
+ 0x40, 0xc9, 0x29, 0x8e, 0x34, 0x7d, 0x8f, 0xa0, 0xa5, 0x92, 0x13, 0xf5,
+ 0x7f, 0xc5, 0x0c, 0x93, 0xe7, 0x94, 0xa1, 0xef, 0x76, 0xca, 0x19, 0x93,
+ 0x32, 0x37, 0xe2, 0xd9, 0x46, 0x0e, 0xd3, 0x31, 0xdf, 0xe7, 0x60, 0x71,
+ 0x37, 0x3d, 0xdb, 0xa5, 0x57, 0x25, 0xa4, 0x2d, 0xd0, 0x65, 0x17, 0x87,
+};
+static const unsigned char kat4264_nonce[] = {0};
+static const unsigned char kat4264_persstr[] = {0};
+static const unsigned char kat4264_entropyinpr1[] = {
+ 0x0c, 0x5a, 0x6b, 0xe5, 0x75, 0x9c, 0xda, 0x7c, 0xfe, 0x29, 0xe6, 0x41,
+ 0xd5, 0xce, 0x6b, 0x87, 0xe3, 0x9b, 0x2e, 0x04, 0x21, 0x93, 0xa0, 0xf6,
+ 0xcc, 0x09, 0x38, 0x47, 0xc5, 0xfe, 0xcc, 0x3a, 0x3a, 0x9a, 0x5d, 0xdf,
+ 0xa6, 0x95, 0xc4, 0x8c, 0xad, 0x2b, 0x48, 0xfa, 0x75, 0x3d, 0x23, 0xa1,
+};
+static const unsigned char kat4264_addinpr1[] = {0};
+static const unsigned char kat4264_entropyinpr2[] = {
+ 0x7d, 0x09, 0x5b, 0x25, 0x8f, 0xcc, 0x77, 0x7b, 0x20, 0x8a, 0x06, 0xfd,
+ 0x72, 0x11, 0xe1, 0xb5, 0x87, 0xb4, 0x9e, 0x05, 0x75, 0xba, 0xc8, 0x61,
+ 0x10, 0x15, 0x9c, 0xf3, 0xbb, 0xf4, 0x4b, 0xff, 0x77, 0x17, 0x3c, 0xbd,
+ 0x21, 0x6b, 0x22, 0xba, 0x6d, 0xcf, 0x45, 0xe4, 0xd9, 0x49, 0x0e, 0xcb,
+};
+static const unsigned char kat4264_addinpr2[] = {0};
+static const unsigned char kat4264_retbits[] = {
+ 0x3e, 0x7c, 0xd4, 0x8f, 0x6e, 0x44, 0x09, 0x50, 0x13, 0x1e, 0x4d, 0xaf,
+ 0x32, 0x30, 0xa9, 0x6d, 0x84, 0xf5, 0xc1, 0xf4, 0xd5, 0x0f, 0x47, 0x3a,
+ 0xdf, 0x36, 0x0e, 0x28, 0xe7, 0x6c, 0xd8, 0x1c, 0x58, 0xa2, 0x53, 0xe6,
+ 0x68, 0xdd, 0x64, 0x26, 0xf7, 0xae, 0x63, 0x82, 0xce, 0xaf, 0xf2, 0x01,
+ 0xf5, 0x29, 0xc0, 0xaa, 0x20, 0x02, 0x25, 0x2b, 0xff, 0x49, 0xfa, 0x02,
+ 0xf0, 0x3b, 0xcf, 0x00,
+};
+static const struct drbg_kat_pr_true kat4264_t = {
+ 3, kat4264_entropyin, kat4264_nonce, kat4264_persstr,
+ kat4264_entropyinpr1, kat4264_addinpr1, kat4264_entropyinpr2,
+ kat4264_addinpr2, kat4264_retbits
+};
+static const struct drbg_kat kat4264 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4264_t
+};
+
+static const unsigned char kat4265_entropyin[] = {
+ 0xc0, 0x36, 0xe8, 0xf5, 0x11, 0x2a, 0xf5, 0xb9, 0x48, 0xb1, 0x9d, 0x7e,
+ 0xa9, 0x27, 0x89, 0x9b, 0x00, 0x9d, 0x46, 0xad, 0x37, 0x8b, 0x07, 0x5b,
+ 0x6d, 0x5c, 0x13, 0xd5, 0xb4, 0xf9, 0x34, 0xd7, 0xb3, 0x2c, 0x18, 0xfb,
+ 0x67, 0x2b, 0x38, 0x59, 0xb9, 0x5d, 0x88, 0xa8, 0xf9, 0x95, 0x89, 0x2b,
+};
+static const unsigned char kat4265_nonce[] = {0};
+static const unsigned char kat4265_persstr[] = {0};
+static const unsigned char kat4265_entropyinpr1[] = {
+ 0x88, 0x37, 0x96, 0x23, 0x56, 0x58, 0xbe, 0xdc, 0x45, 0x75, 0xc2, 0x95,
+ 0x90, 0xc2, 0x6d, 0x41, 0x62, 0x67, 0x20, 0x16, 0x75, 0x39, 0xe9, 0x40,
+ 0x8a, 0x7d, 0x8f, 0x88, 0x3c, 0x06, 0x6e, 0x80, 0x03, 0x70, 0x59, 0x25,
+ 0x25, 0xd0, 0xe2, 0xfe, 0x61, 0x5e, 0x44, 0xd9, 0xce, 0x40, 0xdb, 0xa3,
+};
+static const unsigned char kat4265_addinpr1[] = {0};
+static const unsigned char kat4265_entropyinpr2[] = {
+ 0x8e, 0x0a, 0xe3, 0x39, 0x5a, 0xd9, 0x47, 0xa7, 0x9a, 0x96, 0x75, 0x8a,
+ 0x16, 0xfa, 0x2a, 0x09, 0x96, 0xea, 0x2c, 0xd4, 0xa6, 0xa1, 0xaf, 0x5c,
+ 0x36, 0x7f, 0x2c, 0x1a, 0xa4, 0x83, 0x91, 0x1a, 0x20, 0x13, 0xa4, 0x6a,
+ 0x53, 0xdb, 0x41, 0xba, 0x3f, 0x6d, 0x41, 0xb1, 0x5d, 0x2e, 0x50, 0x6f,
+};
+static const unsigned char kat4265_addinpr2[] = {0};
+static const unsigned char kat4265_retbits[] = {
+ 0x89, 0xf1, 0x3e, 0x88, 0xfa, 0x0c, 0xfe, 0xce, 0x3c, 0x72, 0x4d, 0x96,
+ 0x93, 0xda, 0xa0, 0x6e, 0x3e, 0x92, 0x8d, 0xc3, 0x6b, 0xfc, 0xcc, 0x3e,
+ 0x0e, 0xe1, 0x9c, 0x90, 0x57, 0xe8, 0xb3, 0x21, 0xf0, 0xd9, 0xad, 0x2e,
+ 0x20, 0x1a, 0xb0, 0x74, 0x5c, 0x5a, 0x59, 0x98, 0xf0, 0x70, 0x3e, 0x0d,
+ 0x05, 0xff, 0x35, 0xdb, 0x4a, 0x58, 0xbf, 0x4a, 0x87, 0x4d, 0xca, 0xbf,
+ 0x19, 0x9a, 0x8b, 0xa9,
+};
+static const struct drbg_kat_pr_true kat4265_t = {
+ 4, kat4265_entropyin, kat4265_nonce, kat4265_persstr,
+ kat4265_entropyinpr1, kat4265_addinpr1, kat4265_entropyinpr2,
+ kat4265_addinpr2, kat4265_retbits
+};
+static const struct drbg_kat kat4265 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4265_t
+};
+
+static const unsigned char kat4266_entropyin[] = {
+ 0xaf, 0xb7, 0xe9, 0xb1, 0x82, 0xab, 0xb2, 0x50, 0xa6, 0x43, 0x57, 0x58,
+ 0xfa, 0x6a, 0x24, 0x65, 0x60, 0x4e, 0x82, 0xa0, 0x03, 0x05, 0xc1, 0x57,
+ 0xac, 0xc1, 0xdb, 0x3d, 0x38, 0xc6, 0x94, 0x68, 0x0f, 0xdd, 0x66, 0x1f,
+ 0xb1, 0x93, 0x3e, 0x7c, 0xbe, 0x14, 0xb3, 0x99, 0xec, 0xbb, 0xc0, 0x4b,
+};
+static const unsigned char kat4266_nonce[] = {0};
+static const unsigned char kat4266_persstr[] = {0};
+static const unsigned char kat4266_entropyinpr1[] = {
+ 0xd6, 0x8b, 0xbc, 0xce, 0x22, 0xd7, 0xd0, 0x20, 0xe0, 0x9a, 0x08, 0xac,
+ 0x8e, 0xa8, 0x93, 0x08, 0xfb, 0xbb, 0x5b, 0xee, 0x95, 0xf7, 0xa8, 0xbd,
+ 0x0a, 0x1c, 0x71, 0x23, 0x50, 0x7e, 0x9c, 0xc6, 0xdd, 0xf9, 0x68, 0x6d,
+ 0xd8, 0x4d, 0xd2, 0xec, 0xc1, 0x1f, 0xcb, 0x18, 0x10, 0xdf, 0xca, 0x31,
+};
+static const unsigned char kat4266_addinpr1[] = {0};
+static const unsigned char kat4266_entropyinpr2[] = {
+ 0xbc, 0xc4, 0xe3, 0x6a, 0x2b, 0x5d, 0xf5, 0x49, 0xb7, 0x2a, 0x31, 0x10,
+ 0xdb, 0xbb, 0x9f, 0xf8, 0xed, 0x6c, 0xe9, 0x4f, 0x4a, 0x90, 0x4c, 0x29,
+ 0x39, 0x58, 0x59, 0x02, 0x23, 0x85, 0xbf, 0x1b, 0xd5, 0x82, 0x85, 0xeb,
+ 0xa0, 0x73, 0xf0, 0xb4, 0x44, 0x9d, 0x4e, 0xc3, 0x40, 0xca, 0xed, 0x28,
+};
+static const unsigned char kat4266_addinpr2[] = {0};
+static const unsigned char kat4266_retbits[] = {
+ 0xe6, 0x1e, 0x93, 0x67, 0x03, 0x83, 0x48, 0x3a, 0x56, 0x35, 0xde, 0xb9,
+ 0xa5, 0x4e, 0xc5, 0x79, 0xbe, 0xef, 0xa8, 0x72, 0x82, 0xae, 0x8a, 0xe5,
+ 0x1d, 0x99, 0xe2, 0x09, 0x90, 0xed, 0x15, 0x7b, 0x0c, 0x5f, 0xaf, 0x1d,
+ 0xa1, 0xde, 0x4a, 0x3a, 0xe3, 0x5a, 0x11, 0x71, 0x0f, 0x52, 0x7c, 0xba,
+ 0x4c, 0x9a, 0xcc, 0x1a, 0x5b, 0xb0, 0xb6, 0xdf, 0x19, 0x5b, 0x3d, 0x6c,
+ 0x05, 0x3b, 0x78, 0x3b,
+};
+static const struct drbg_kat_pr_true kat4266_t = {
+ 5, kat4266_entropyin, kat4266_nonce, kat4266_persstr,
+ kat4266_entropyinpr1, kat4266_addinpr1, kat4266_entropyinpr2,
+ kat4266_addinpr2, kat4266_retbits
+};
+static const struct drbg_kat kat4266 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4266_t
+};
+
+static const unsigned char kat4267_entropyin[] = {
+ 0x4c, 0x13, 0xdc, 0x39, 0x39, 0x2d, 0xf5, 0xaa, 0x4f, 0xdd, 0x0e, 0x95,
+ 0x22, 0x2d, 0x85, 0x0a, 0x53, 0x93, 0x49, 0xc4, 0xa0, 0x1d, 0xd2, 0xa9,
+ 0x82, 0x61, 0x1f, 0x77, 0x2e, 0x60, 0x89, 0xe4, 0x7a, 0x81, 0x2c, 0xb0,
+ 0x88, 0x0c, 0xee, 0xe9, 0x9d, 0xb0, 0x82, 0x80, 0x04, 0x21, 0xbc, 0xbb,
+};
+static const unsigned char kat4267_nonce[] = {0};
+static const unsigned char kat4267_persstr[] = {0};
+static const unsigned char kat4267_entropyinpr1[] = {
+ 0xd9, 0xcc, 0x83, 0x85, 0x81, 0x41, 0x31, 0xab, 0x94, 0xa2, 0x9a, 0xd8,
+ 0x45, 0x89, 0xc3, 0xfc, 0xd5, 0xa7, 0xe4, 0x64, 0x56, 0xcd, 0x9d, 0xa2,
+ 0x25, 0x5a, 0x43, 0x63, 0x0c, 0x95, 0xc7, 0x69, 0x1d, 0xe0, 0x2d, 0x8a,
+ 0x99, 0x0d, 0x06, 0x87, 0x63, 0xe7, 0xa9, 0x96, 0x60, 0xd2, 0xdc, 0x0c,
+};
+static const unsigned char kat4267_addinpr1[] = {0};
+static const unsigned char kat4267_entropyinpr2[] = {
+ 0xa5, 0xec, 0x6d, 0xef, 0x28, 0x8d, 0x07, 0x39, 0x9c, 0x49, 0x33, 0x9f,
+ 0x52, 0x0c, 0xb5, 0x01, 0x40, 0xe0, 0x0b, 0xa1, 0x39, 0x68, 0xa7, 0xe2,
+ 0x6c, 0x9a, 0xe2, 0xa3, 0x5d, 0xe2, 0x76, 0xff, 0x44, 0x19, 0x94, 0x4f,
+ 0x66, 0x0f, 0x8e, 0x35, 0x69, 0xb1, 0x19, 0xb2, 0x2c, 0x97, 0x28, 0x17,
+};
+static const unsigned char kat4267_addinpr2[] = {0};
+static const unsigned char kat4267_retbits[] = {
+ 0xe0, 0x25, 0xaa, 0xaa, 0xe2, 0xb3, 0x89, 0xac, 0x1e, 0x6e, 0xd3, 0x85,
+ 0xe1, 0xf8, 0xbf, 0xf7, 0x2d, 0xd6, 0xeb, 0xdd, 0xf9, 0x3e, 0x7a, 0x96,
+ 0x25, 0xa7, 0xa1, 0x03, 0xdb, 0x83, 0xc4, 0xd4, 0x97, 0xed, 0x8d, 0xd0,
+ 0x9e, 0xe9, 0x3c, 0x4f, 0xa5, 0x7b, 0xd7, 0xd9, 0x58, 0x6b, 0x69, 0x65,
+ 0x78, 0x49, 0xaf, 0x7d, 0x72, 0xbf, 0xc4, 0x4f, 0xd1, 0x65, 0xe4, 0xb5,
+ 0x4e, 0xb1, 0x69, 0x85,
+};
+static const struct drbg_kat_pr_true kat4267_t = {
+ 6, kat4267_entropyin, kat4267_nonce, kat4267_persstr,
+ kat4267_entropyinpr1, kat4267_addinpr1, kat4267_entropyinpr2,
+ kat4267_addinpr2, kat4267_retbits
+};
+static const struct drbg_kat kat4267 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4267_t
+};
+
+static const unsigned char kat4268_entropyin[] = {
+ 0x5f, 0x3e, 0xe8, 0x0d, 0xe8, 0xcb, 0xd8, 0xc3, 0xb9, 0x6b, 0x81, 0x4b,
+ 0x5e, 0x56, 0xdf, 0x17, 0xcc, 0x02, 0xc7, 0x26, 0xc4, 0x08, 0x46, 0xc1,
+ 0x20, 0x03, 0xc6, 0x96, 0x9f, 0x58, 0xb3, 0x43, 0x4e, 0xcc, 0x4f, 0xa6,
+ 0xdc, 0x02, 0xc9, 0x1f, 0xe6, 0xcb, 0x4e, 0x90, 0x55, 0x43, 0xa0, 0x26,
+};
+static const unsigned char kat4268_nonce[] = {0};
+static const unsigned char kat4268_persstr[] = {0};
+static const unsigned char kat4268_entropyinpr1[] = {
+ 0xa1, 0x8d, 0x63, 0xf1, 0x4f, 0x20, 0xad, 0xf2, 0x34, 0xd6, 0x1b, 0x4f,
+ 0x5d, 0x6d, 0x49, 0xb9, 0xc2, 0x9a, 0x3e, 0x03, 0xae, 0x4c, 0xf7, 0xe9,
+ 0x4c, 0x73, 0x4b, 0xc4, 0x08, 0x79, 0x84, 0xf8, 0x25, 0xed, 0x83, 0x29,
+ 0x3f, 0x66, 0x08, 0xd6, 0x9b, 0x26, 0x42, 0x3b, 0xd5, 0x52, 0xd9, 0xe5,
+};
+static const unsigned char kat4268_addinpr1[] = {0};
+static const unsigned char kat4268_entropyinpr2[] = {
+ 0x22, 0xb7, 0xa4, 0xe3, 0xe8, 0x22, 0xaa, 0x3a, 0xcb, 0x90, 0x02, 0x85,
+ 0x48, 0xa1, 0x77, 0xef, 0xa2, 0x84, 0xe5, 0xf0, 0x9e, 0xd3, 0x23, 0xeb,
+ 0x93, 0x12, 0x55, 0x12, 0x9f, 0x71, 0x43, 0xb0, 0x99, 0xd1, 0x23, 0x8a,
+ 0x75, 0xb4, 0xb3, 0x0b, 0x4a, 0x47, 0xd0, 0xf4, 0xf5, 0xdb, 0x6f, 0x1c,
+};
+static const unsigned char kat4268_addinpr2[] = {0};
+static const unsigned char kat4268_retbits[] = {
+ 0xaa, 0x58, 0x4e, 0x4e, 0x41, 0xf0, 0x2a, 0xec, 0x12, 0x46, 0x47, 0xb8,
+ 0x45, 0xe4, 0x4a, 0x3e, 0x23, 0x81, 0xd4, 0xdf, 0xf1, 0x1a, 0xe7, 0x05,
+ 0xde, 0x94, 0x81, 0xc3, 0xbc, 0x28, 0xfb, 0xb7, 0xd0, 0xcc, 0x52, 0x32,
+ 0xcb, 0x9a, 0x80, 0xd1, 0x55, 0x6f, 0x24, 0xbc, 0x25, 0xe1, 0x2e, 0x05,
+ 0x4c, 0xcd, 0xdb, 0xab, 0x15, 0xbd, 0xa1, 0x16, 0x52, 0x5d, 0xe3, 0x80,
+ 0xe8, 0xc2, 0xb8, 0x6c,
+};
+static const struct drbg_kat_pr_true kat4268_t = {
+ 7, kat4268_entropyin, kat4268_nonce, kat4268_persstr,
+ kat4268_entropyinpr1, kat4268_addinpr1, kat4268_entropyinpr2,
+ kat4268_addinpr2, kat4268_retbits
+};
+static const struct drbg_kat kat4268 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4268_t
+};
+
+static const unsigned char kat4269_entropyin[] = {
+ 0x5d, 0x45, 0xb6, 0x96, 0x51, 0x38, 0xde, 0xd7, 0xae, 0xea, 0x9f, 0xaf,
+ 0x03, 0x5d, 0x02, 0x90, 0x06, 0x52, 0xce, 0x21, 0xcc, 0x84, 0xe5, 0x52,
+ 0x43, 0xba, 0xc2, 0x25, 0xc8, 0xfa, 0xd3, 0x5e, 0xb4, 0xd7, 0x33, 0xf6,
+ 0xaa, 0x30, 0xc7, 0xed, 0x35, 0x44, 0xf0, 0x85, 0xb9, 0x21, 0x7a, 0x20,
+};
+static const unsigned char kat4269_nonce[] = {0};
+static const unsigned char kat4269_persstr[] = {0};
+static const unsigned char kat4269_entropyinpr1[] = {
+ 0x4f, 0x5a, 0x28, 0x26, 0xe5, 0xb1, 0x85, 0x2f, 0xa2, 0xe5, 0xf8, 0x1c,
+ 0x70, 0x60, 0xf7, 0xb5, 0x13, 0xb5, 0x78, 0xae, 0xb5, 0x42, 0xcc, 0xa8,
+ 0xa9, 0x19, 0x77, 0x93, 0x69, 0xdc, 0xeb, 0xb1, 0x3d, 0xa5, 0x23, 0x4c,
+ 0xc8, 0x3a, 0x69, 0xa5, 0x57, 0xd3, 0x7f, 0xe1, 0xfe, 0xc5, 0x2e, 0x25,
+};
+static const unsigned char kat4269_addinpr1[] = {0};
+static const unsigned char kat4269_entropyinpr2[] = {
+ 0x83, 0x9d, 0x5e, 0x4a, 0x33, 0xd0, 0x07, 0xd2, 0x6b, 0x32, 0x2d, 0xd3,
+ 0x70, 0xd2, 0xe0, 0xd4, 0x50, 0x73, 0xb9, 0xda, 0x1b, 0x56, 0xca, 0xbb,
+ 0xc9, 0xeb, 0x1f, 0x79, 0xc5, 0x17, 0xba, 0x4e, 0x3b, 0x2e, 0x90, 0x05,
+ 0x41, 0x02, 0x9c, 0x9f, 0x3c, 0xaa, 0x5b, 0x6f, 0x8d, 0x38, 0xa5, 0x40,
+};
+static const unsigned char kat4269_addinpr2[] = {0};
+static const unsigned char kat4269_retbits[] = {
+ 0xae, 0x05, 0x11, 0xf3, 0xf6, 0x00, 0x10, 0x6f, 0xa6, 0xa8, 0x8f, 0x1b,
+ 0xec, 0xda, 0xc0, 0x8c, 0x59, 0xd7, 0xd3, 0x2e, 0x96, 0x26, 0x18, 0xd0,
+ 0xb7, 0x94, 0xba, 0x13, 0x28, 0x82, 0x57, 0x40, 0xc3, 0x3f, 0x80, 0xeb,
+ 0x57, 0x64, 0xf8, 0x4e, 0x8c, 0x18, 0x01, 0x42, 0x28, 0x34, 0xdc, 0xcb,
+ 0xc0, 0x4c, 0x0a, 0x5e, 0x85, 0xea, 0xe7, 0x03, 0x06, 0x03, 0xed, 0x53,
+ 0x40, 0xd9, 0xf7, 0x3f,
+};
+static const struct drbg_kat_pr_true kat4269_t = {
+ 8, kat4269_entropyin, kat4269_nonce, kat4269_persstr,
+ kat4269_entropyinpr1, kat4269_addinpr1, kat4269_entropyinpr2,
+ kat4269_addinpr2, kat4269_retbits
+};
+static const struct drbg_kat kat4269 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4269_t
+};
+
+static const unsigned char kat4270_entropyin[] = {
+ 0x40, 0xb9, 0x0c, 0x3d, 0x81, 0x4b, 0x25, 0x6f, 0xdd, 0x99, 0xc5, 0xce,
+ 0x2e, 0xeb, 0x37, 0x62, 0x48, 0xab, 0xa2, 0x9a, 0x87, 0xe5, 0x53, 0xd6,
+ 0x3e, 0x4c, 0xf0, 0xdc, 0xbf, 0xc2, 0x65, 0xd9, 0x30, 0xc5, 0x65, 0xe3,
+ 0x4f, 0x96, 0x7e, 0xb2, 0xea, 0xbb, 0xd6, 0xc4, 0x4b, 0xbc, 0xa5, 0xf3,
+};
+static const unsigned char kat4270_nonce[] = {0};
+static const unsigned char kat4270_persstr[] = {0};
+static const unsigned char kat4270_entropyinpr1[] = {
+ 0x97, 0x4d, 0xb6, 0x1e, 0xfa, 0x36, 0xa1, 0xab, 0x6a, 0x60, 0x03, 0xee,
+ 0xdf, 0xf8, 0xee, 0xbb, 0x32, 0xbf, 0x21, 0x1c, 0x66, 0xf6, 0xb2, 0x50,
+ 0x4c, 0xa2, 0x91, 0xc7, 0xf1, 0xec, 0xc3, 0xe9, 0x6d, 0xb5, 0x13, 0x47,
+ 0xf5, 0x4e, 0xd5, 0xa6, 0x9f, 0x53, 0x0e, 0x6b, 0x6d, 0xa9, 0x5a, 0xdb,
+};
+static const unsigned char kat4270_addinpr1[] = {0};
+static const unsigned char kat4270_entropyinpr2[] = {
+ 0x36, 0x31, 0xec, 0x5e, 0x08, 0x38, 0x4e, 0xa5, 0xf6, 0x0c, 0x5a, 0xe5,
+ 0xde, 0x95, 0xba, 0xe2, 0xcb, 0x22, 0x80, 0xe0, 0xfa, 0xc0, 0x82, 0x3b,
+ 0x49, 0xcd, 0x74, 0xd5, 0xf3, 0xdd, 0xb8, 0x80, 0x2e, 0xd8, 0x84, 0xfb,
+ 0x64, 0x27, 0x77, 0xd9, 0xce, 0xbf, 0xb4, 0xfd, 0xab, 0xa6, 0xbc, 0x00,
+};
+static const unsigned char kat4270_addinpr2[] = {0};
+static const unsigned char kat4270_retbits[] = {
+ 0x94, 0xa2, 0x7e, 0x44, 0x3a, 0x83, 0x7d, 0x43, 0x77, 0x1b, 0xc3, 0xf0,
+ 0xcd, 0x32, 0x8a, 0x52, 0x61, 0x0f, 0xc7, 0x19, 0x4b, 0xe8, 0xf0, 0xee,
+ 0xa2, 0x02, 0x4b, 0x88, 0xbb, 0x10, 0xb3, 0x3f, 0x1b, 0x88, 0xa1, 0xc3,
+ 0x3d, 0x01, 0x96, 0x6d, 0xd6, 0x45, 0x94, 0x0a, 0x95, 0xdc, 0x39, 0x42,
+ 0xb5, 0x2d, 0x97, 0x84, 0x7a, 0xc6, 0x7e, 0x4e, 0x66, 0x52, 0xba, 0x9d,
+ 0x0d, 0x77, 0x8a, 0x52,
+};
+static const struct drbg_kat_pr_true kat4270_t = {
+ 9, kat4270_entropyin, kat4270_nonce, kat4270_persstr,
+ kat4270_entropyinpr1, kat4270_addinpr1, kat4270_entropyinpr2,
+ kat4270_addinpr2, kat4270_retbits
+};
+static const struct drbg_kat kat4270 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4270_t
+};
+
+static const unsigned char kat4271_entropyin[] = {
+ 0xcd, 0x7d, 0x71, 0x82, 0x2d, 0x45, 0x0e, 0x60, 0x4b, 0x1c, 0x3e, 0x8b,
+ 0x9d, 0x77, 0xa2, 0xae, 0x71, 0x9e, 0xdd, 0xa7, 0x75, 0xbf, 0xcf, 0x8d,
+ 0x99, 0xc2, 0xf0, 0x37, 0xd6, 0x67, 0x9c, 0x9a, 0x78, 0x95, 0x86, 0xd3,
+ 0x67, 0x9d, 0xc8, 0xff, 0xde, 0x43, 0xf1, 0x8f, 0xa2, 0xce, 0xb0, 0xd2,
+};
+static const unsigned char kat4271_nonce[] = {0};
+static const unsigned char kat4271_persstr[] = {0};
+static const unsigned char kat4271_entropyinpr1[] = {
+ 0xb2, 0xb2, 0x93, 0x55, 0xbd, 0xcc, 0x1c, 0x7c, 0x70, 0xcd, 0xdf, 0x0b,
+ 0xb3, 0x39, 0xfb, 0x69, 0x27, 0xc7, 0x0a, 0x5f, 0x0e, 0x06, 0x7b, 0x23,
+ 0x59, 0xfd, 0x13, 0x5f, 0xa5, 0x5f, 0xd0, 0x29, 0xfd, 0x65, 0x8e, 0x23,
+ 0xca, 0xf1, 0x57, 0x2f, 0x61, 0xb7, 0x51, 0xe4, 0xb9, 0xf7, 0x00, 0x11,
+};
+static const unsigned char kat4271_addinpr1[] = {0};
+static const unsigned char kat4271_entropyinpr2[] = {
+ 0x11, 0xd3, 0x59, 0x09, 0x8f, 0xa7, 0xcc, 0xb7, 0x5d, 0xec, 0xc1, 0xbb,
+ 0xaa, 0x7d, 0xb0, 0x7d, 0x91, 0xea, 0x15, 0xdc, 0x7b, 0xdc, 0x60, 0x9e,
+ 0x03, 0x2c, 0x3f, 0x20, 0x22, 0xda, 0xff, 0x83, 0x57, 0x3e, 0xe7, 0x29,
+ 0x5b, 0x6e, 0x54, 0x84, 0x97, 0xf8, 0x91, 0x23, 0xb8, 0xcb, 0xa3, 0x83,
+};
+static const unsigned char kat4271_addinpr2[] = {0};
+static const unsigned char kat4271_retbits[] = {
+ 0x33, 0xac, 0xa7, 0x7b, 0x2e, 0xee, 0x07, 0xb1, 0xd0, 0x99, 0x78, 0x4d,
+ 0xc7, 0xf6, 0x55, 0x7a, 0xe4, 0xa3, 0xa5, 0x1c, 0xdd, 0x63, 0xc9, 0x2e,
+ 0x54, 0x76, 0x2e, 0xb1, 0x41, 0xe0, 0x9c, 0xab, 0xdd, 0x0f, 0xa0, 0x95,
+ 0x4e, 0x27, 0x18, 0x53, 0x74, 0x61, 0x50, 0x2a, 0x62, 0x9d, 0xb6, 0x39,
+ 0xbe, 0x65, 0x08, 0xfe, 0x89, 0x04, 0x5e, 0x32, 0x31, 0x11, 0x1e, 0x66,
+ 0x85, 0xb1, 0xb1, 0xf1,
+};
+static const struct drbg_kat_pr_true kat4271_t = {
+ 10, kat4271_entropyin, kat4271_nonce, kat4271_persstr,
+ kat4271_entropyinpr1, kat4271_addinpr1, kat4271_entropyinpr2,
+ kat4271_addinpr2, kat4271_retbits
+};
+static const struct drbg_kat kat4271 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4271_t
+};
+
+static const unsigned char kat4272_entropyin[] = {
+ 0xa3, 0x06, 0x02, 0xe6, 0x82, 0x3f, 0x26, 0x2f, 0xe5, 0xeb, 0x55, 0x7c,
+ 0x04, 0x6e, 0x99, 0xd9, 0x1c, 0xed, 0xf2, 0x85, 0x0e, 0x8a, 0x5b, 0xd4,
+ 0x5a, 0xf6, 0xf2, 0x06, 0x45, 0x0b, 0xac, 0xf6, 0xda, 0x8f, 0x66, 0x8f,
+ 0x1b, 0xda, 0x91, 0xea, 0xa3, 0xdb, 0x8f, 0x91, 0x25, 0x3f, 0x91, 0xbb,
+};
+static const unsigned char kat4272_nonce[] = {0};
+static const unsigned char kat4272_persstr[] = {0};
+static const unsigned char kat4272_entropyinpr1[] = {
+ 0x73, 0xa8, 0x23, 0x9d, 0x83, 0x79, 0x31, 0x19, 0x98, 0xd4, 0xb6, 0x28,
+ 0xd5, 0xb5, 0xd0, 0xdf, 0x04, 0x00, 0x32, 0x8c, 0xff, 0xb1, 0x24, 0xc1,
+ 0x7f, 0xb5, 0xfa, 0x1a, 0x01, 0xfc, 0x74, 0x4a, 0xdd, 0x87, 0xce, 0x25,
+ 0x0c, 0x0f, 0x08, 0x94, 0xf6, 0xfd, 0xe7, 0x78, 0xe4, 0xb7, 0xdc, 0x1a,
+};
+static const unsigned char kat4272_addinpr1[] = {0};
+static const unsigned char kat4272_entropyinpr2[] = {
+ 0x26, 0xa2, 0xcc, 0x7c, 0x29, 0x98, 0x7f, 0x8f, 0x79, 0x2b, 0x29, 0xc0,
+ 0xc6, 0x1b, 0x3e, 0xde, 0xf9, 0x94, 0xbb, 0x9b, 0x0a, 0xcb, 0x12, 0x82,
+ 0xa9, 0xfc, 0x03, 0xa5, 0x4c, 0x11, 0x4b, 0x05, 0x59, 0x89, 0x4c, 0xf2,
+ 0xaa, 0x25, 0xf4, 0x0c, 0x3d, 0xdd, 0x06, 0x6d, 0x80, 0x48, 0xda, 0x28,
+};
+static const unsigned char kat4272_addinpr2[] = {0};
+static const unsigned char kat4272_retbits[] = {
+ 0xd4, 0xec, 0x8d, 0x80, 0x51, 0xf4, 0x42, 0x85, 0xc0, 0x13, 0x80, 0x19,
+ 0xd6, 0xac, 0xdc, 0x29, 0x58, 0x4f, 0x46, 0x7b, 0x90, 0x74, 0xac, 0x98,
+ 0x03, 0x1d, 0x68, 0xe0, 0x18, 0xcb, 0xcf, 0xb4, 0x8f, 0x74, 0xc8, 0x43,
+ 0x50, 0x59, 0xc2, 0x94, 0x59, 0xfc, 0xd8, 0x1a, 0xed, 0x04, 0x76, 0x9a,
+ 0x5c, 0x68, 0x1b, 0x2b, 0xe4, 0xb8, 0x69, 0x0c, 0xa2, 0x9c, 0x74, 0x3a,
+ 0x47, 0x89, 0x87, 0x14,
+};
+static const struct drbg_kat_pr_true kat4272_t = {
+ 11, kat4272_entropyin, kat4272_nonce, kat4272_persstr,
+ kat4272_entropyinpr1, kat4272_addinpr1, kat4272_entropyinpr2,
+ kat4272_addinpr2, kat4272_retbits
+};
+static const struct drbg_kat kat4272 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4272_t
+};
+
+static const unsigned char kat4273_entropyin[] = {
+ 0x92, 0xf0, 0x7f, 0x2e, 0xe3, 0xec, 0xfc, 0x8d, 0x39, 0xd6, 0xa2, 0x54,
+ 0xc2, 0x5c, 0x94, 0x11, 0x20, 0x45, 0xd6, 0xdf, 0x47, 0x8c, 0xe7, 0xe9,
+ 0x7a, 0x88, 0x5c, 0xcb, 0xf4, 0x70, 0x81, 0xe7, 0xbd, 0x1a, 0x47, 0x57,
+ 0x01, 0x7a, 0xbf, 0xd2, 0xc2, 0x13, 0xb0, 0x74, 0x8f, 0xc5, 0x5e, 0x56,
+};
+static const unsigned char kat4273_nonce[] = {0};
+static const unsigned char kat4273_persstr[] = {0};
+static const unsigned char kat4273_entropyinpr1[] = {
+ 0x5c, 0x05, 0x31, 0xed, 0x53, 0xff, 0x4c, 0x86, 0xd0, 0xcc, 0x83, 0x4f,
+ 0x69, 0x7e, 0x53, 0x66, 0xf7, 0x0e, 0x40, 0x27, 0x23, 0xb6, 0xdc, 0x79,
+ 0xc4, 0x26, 0xd7, 0x37, 0xd6, 0xc0, 0xaf, 0x53, 0xb8, 0xdb, 0x25, 0xfe,
+ 0x65, 0x68, 0xec, 0xd1, 0x9a, 0x88, 0xe6, 0xb6, 0xc0, 0xe6, 0x82, 0x00,
+};
+static const unsigned char kat4273_addinpr1[] = {0};
+static const unsigned char kat4273_entropyinpr2[] = {
+ 0xfe, 0xc9, 0xe0, 0x3f, 0x1f, 0x33, 0x6f, 0x6e, 0x29, 0x47, 0xa6, 0x2d,
+ 0xd5, 0x1c, 0x6e, 0xa5, 0xf4, 0x33, 0x9b, 0x36, 0xbc, 0x40, 0x82, 0x68,
+ 0x34, 0x0f, 0xa3, 0x45, 0xc5, 0x7e, 0xf2, 0x30, 0x73, 0x29, 0xba, 0xbf,
+ 0x70, 0x15, 0x88, 0xcd, 0x0e, 0x1d, 0x7f, 0xc3, 0xbc, 0xd0, 0x3c, 0x6f,
+};
+static const unsigned char kat4273_addinpr2[] = {0};
+static const unsigned char kat4273_retbits[] = {
+ 0xbe, 0x81, 0xbf, 0xc3, 0x00, 0xd5, 0x40, 0xc9, 0x4d, 0xc7, 0x87, 0x31,
+ 0x95, 0x44, 0xa1, 0xaf, 0x36, 0xec, 0xd5, 0x95, 0x66, 0xb1, 0x99, 0x1d,
+ 0x8a, 0x06, 0xbc, 0x13, 0xec, 0xb6, 0x83, 0x2a, 0x6e, 0xd8, 0x30, 0x81,
+ 0x68, 0xf1, 0x0a, 0xbb, 0xc5, 0xc8, 0x07, 0xb6, 0x24, 0xef, 0xf9, 0x24,
+ 0xa9, 0x38, 0xea, 0xb7, 0xfe, 0xe2, 0x53, 0x72, 0x4f, 0x3c, 0x0e, 0xe4,
+ 0x79, 0xff, 0xf9, 0x44,
+};
+static const struct drbg_kat_pr_true kat4273_t = {
+ 12, kat4273_entropyin, kat4273_nonce, kat4273_persstr,
+ kat4273_entropyinpr1, kat4273_addinpr1, kat4273_entropyinpr2,
+ kat4273_addinpr2, kat4273_retbits
+};
+static const struct drbg_kat kat4273 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4273_t
+};
+
+static const unsigned char kat4274_entropyin[] = {
+ 0xf6, 0xf5, 0x5c, 0xc1, 0x29, 0x90, 0x68, 0xcf, 0x74, 0x69, 0x60, 0x52,
+ 0xa7, 0x84, 0x44, 0xb5, 0x29, 0x86, 0x72, 0xcb, 0xaa, 0x63, 0xc0, 0xb9,
+ 0x12, 0x15, 0x52, 0xe4, 0x67, 0xe5, 0xd5, 0x66, 0xec, 0xe3, 0x3e, 0x5f,
+ 0x92, 0x23, 0x55, 0x8f, 0xe7, 0xb3, 0x87, 0x78, 0xcb, 0x70, 0xe8, 0xe5,
+};
+static const unsigned char kat4274_nonce[] = {0};
+static const unsigned char kat4274_persstr[] = {0};
+static const unsigned char kat4274_entropyinpr1[] = {
+ 0x0a, 0xa7, 0xb0, 0x33, 0xa5, 0x32, 0xf1, 0x3b, 0xf7, 0x95, 0x1a, 0x45,
+ 0x70, 0x40, 0x8d, 0x37, 0x15, 0xc3, 0x25, 0xa5, 0x25, 0x64, 0x74, 0x7d,
+ 0xc7, 0xd2, 0xa7, 0xb4, 0xde, 0x0d, 0xe6, 0xe6, 0xaa, 0xfa, 0xf4, 0xf4,
+ 0xbc, 0x7d, 0x91, 0xc6, 0x2f, 0x51, 0xdb, 0x1a, 0xf4, 0x5d, 0xde, 0x36,
+};
+static const unsigned char kat4274_addinpr1[] = {0};
+static const unsigned char kat4274_entropyinpr2[] = {
+ 0xa7, 0x9b, 0xfd, 0xc2, 0x4d, 0x9d, 0xf8, 0xce, 0x39, 0x44, 0xdd, 0x41,
+ 0x3e, 0xdb, 0x61, 0x0b, 0xda, 0x64, 0x57, 0x83, 0x0b, 0xfb, 0x8c, 0xb0,
+ 0x76, 0xcb, 0x2b, 0x89, 0xbb, 0xb8, 0xc1, 0xab, 0xf2, 0x9e, 0x2f, 0x3a,
+ 0x2e, 0xad, 0x4e, 0x1e, 0x60, 0xcd, 0x07, 0xb4, 0x98, 0xd9, 0x0e, 0x08,
+};
+static const unsigned char kat4274_addinpr2[] = {0};
+static const unsigned char kat4274_retbits[] = {
+ 0x04, 0xb9, 0x2e, 0xe2, 0xd0, 0x9e, 0xd0, 0xf5, 0x88, 0x49, 0x03, 0x24,
+ 0xee, 0xac, 0x4a, 0x20, 0x35, 0x1f, 0xf9, 0x10, 0x95, 0x2a, 0x8d, 0xd9,
+ 0xd2, 0xad, 0xcb, 0x99, 0x3a, 0xa7, 0x57, 0x34, 0x69, 0x48, 0x36, 0xf9,
+ 0xff, 0x9d, 0xf0, 0x07, 0x3e, 0x8c, 0xd3, 0x1a, 0xff, 0x91, 0xf0, 0x5d,
+ 0xbf, 0x34, 0xd4, 0xaf, 0x0e, 0xd3, 0x5f, 0x97, 0xac, 0x1e, 0xb5, 0x83,
+ 0x7f, 0x8f, 0x71, 0x86,
+};
+static const struct drbg_kat_pr_true kat4274_t = {
+ 13, kat4274_entropyin, kat4274_nonce, kat4274_persstr,
+ kat4274_entropyinpr1, kat4274_addinpr1, kat4274_entropyinpr2,
+ kat4274_addinpr2, kat4274_retbits
+};
+static const struct drbg_kat kat4274 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4274_t
+};
+
+static const unsigned char kat4275_entropyin[] = {
+ 0x4a, 0x00, 0xfb, 0x6b, 0x1e, 0x58, 0x63, 0x53, 0x9c, 0x87, 0x17, 0xd3,
+ 0xc6, 0x39, 0xc7, 0xba, 0xfa, 0x81, 0xac, 0x37, 0x40, 0x8a, 0x5a, 0xe3,
+ 0xe8, 0x7a, 0x79, 0x7e, 0x86, 0xde, 0x90, 0xa3, 0x0f, 0x74, 0xd3, 0x4e,
+ 0xaa, 0xc9, 0xbb, 0x80, 0xfc, 0x6a, 0xcc, 0xf7, 0x62, 0xe9, 0x92, 0x22,
+};
+static const unsigned char kat4275_nonce[] = {0};
+static const unsigned char kat4275_persstr[] = {0};
+static const unsigned char kat4275_entropyinpr1[] = {
+ 0xcd, 0x66, 0xeb, 0xf0, 0x8c, 0x99, 0xf9, 0xc0, 0x4c, 0x1e, 0xff, 0xc0,
+ 0x78, 0x71, 0x7b, 0x4f, 0x24, 0x42, 0x2f, 0x11, 0x15, 0x91, 0xa0, 0xda,
+ 0xd2, 0xac, 0x93, 0x71, 0xd3, 0xa7, 0xc1, 0xcb, 0x3d, 0xbf, 0x66, 0x4a,
+ 0xd4, 0x4c, 0xa2, 0xb0, 0x8c, 0x83, 0x23, 0x97, 0x47, 0xa1, 0x48, 0xfd,
+};
+static const unsigned char kat4275_addinpr1[] = {0};
+static const unsigned char kat4275_entropyinpr2[] = {
+ 0x60, 0xc6, 0xf9, 0xf0, 0x7f, 0x75, 0xf1, 0xa8, 0x01, 0x88, 0xb3, 0x2d,
+ 0x07, 0xc2, 0x89, 0x58, 0x72, 0xc4, 0xe8, 0xb9, 0x2a, 0x19, 0xac, 0x6c,
+ 0x2a, 0x29, 0xbc, 0x80, 0x7f, 0x99, 0xfb, 0x4a, 0xf7, 0x5b, 0x6a, 0xed,
+ 0x8e, 0x6f, 0x75, 0xc9, 0xa6, 0xb1, 0x55, 0x9b, 0x48, 0xf1, 0x28, 0xe9,
+};
+static const unsigned char kat4275_addinpr2[] = {0};
+static const unsigned char kat4275_retbits[] = {
+ 0x2d, 0x20, 0x70, 0x9e, 0xa0, 0xff, 0x7a, 0x62, 0x4e, 0xa1, 0xe3, 0x7d,
+ 0x80, 0xc6, 0x5c, 0x25, 0xea, 0xed, 0x85, 0xaf, 0x45, 0xef, 0x1a, 0x09,
+ 0x2e, 0xa7, 0xb9, 0x7c, 0x49, 0xc9, 0x12, 0xa0, 0xf0, 0xfc, 0x62, 0xd2,
+ 0x9f, 0xf4, 0xe4, 0x18, 0x2c, 0x6b, 0xb1, 0x26, 0x76, 0xca, 0xb3, 0x71,
+ 0x1c, 0x2b, 0x8d, 0xb2, 0x65, 0xcd, 0x9f, 0x81, 0x56, 0x9a, 0x30, 0x0b,
+ 0x99, 0xfa, 0xc4, 0x3e,
+};
+static const struct drbg_kat_pr_true kat4275_t = {
+ 14, kat4275_entropyin, kat4275_nonce, kat4275_persstr,
+ kat4275_entropyinpr1, kat4275_addinpr1, kat4275_entropyinpr2,
+ kat4275_addinpr2, kat4275_retbits
+};
+static const struct drbg_kat kat4275 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 0, 64, &kat4275_t
+};
+
+static const unsigned char kat4276_entropyin[] = {
+ 0x93, 0xe6, 0xd2, 0x8f, 0xb5, 0x76, 0xba, 0x5b, 0x81, 0x6a, 0x5f, 0x42,
+ 0xa7, 0xce, 0x8d, 0x19, 0x46, 0x5d, 0x47, 0xaa, 0xbc, 0x94, 0xa7, 0xb7,
+ 0x7c, 0x71, 0xe2, 0x9d, 0x95, 0xf3, 0xa5, 0x10, 0xc1, 0xc7, 0x62, 0xff,
+ 0xbd, 0x29, 0xfc, 0x20, 0x0c, 0xb6, 0x80, 0x52, 0x9d, 0x3c, 0x8f, 0xd4,
+};
+static const unsigned char kat4276_nonce[] = {0};
+static const unsigned char kat4276_persstr[] = {0};
+static const unsigned char kat4276_entropyinpr1[] = {
+ 0x9e, 0xdd, 0xbc, 0xec, 0x30, 0x1b, 0x2f, 0xb9, 0xcf, 0x57, 0xef, 0xcc,
+ 0x58, 0x1e, 0xf7, 0x76, 0xfc, 0xd2, 0x64, 0x03, 0xd0, 0xa9, 0xb6, 0x4f,
+ 0x20, 0x5f, 0x6a, 0x9f, 0x60, 0xb7, 0x63, 0xd2, 0x99, 0x9a, 0x5a, 0x99,
+ 0x36, 0x74, 0xfa, 0x66, 0x4b, 0xb2, 0xaf, 0x5f, 0x8d, 0xde, 0xa1, 0xd7,
+};
+static const unsigned char kat4276_addinpr1[] = {
+ 0xa0, 0x00, 0xa7, 0x5a, 0x90, 0x32, 0x6e, 0x9f, 0x94, 0xe3, 0xc8, 0x94,
+ 0x54, 0x8b, 0xac, 0xab, 0x5d, 0x9e, 0x69, 0xde, 0xc8, 0xe6, 0x09, 0x92,
+ 0xe1, 0x97, 0x46, 0x0f, 0x9c, 0x5a, 0xa2, 0xa6, 0x9a, 0xc8, 0xd8, 0x13,
+ 0x30, 0x23, 0x0b, 0x90, 0xb3, 0xa9, 0x0f, 0xbf, 0xac, 0x6d, 0x13, 0xa1,
+};
+static const unsigned char kat4276_entropyinpr2[] = {
+ 0x4c, 0x26, 0xcb, 0xe4, 0x40, 0xd4, 0x84, 0x14, 0xca, 0x4d, 0xc4, 0x03,
+ 0x21, 0x37, 0x66, 0x46, 0xe4, 0x2f, 0xa4, 0x13, 0x9a, 0x4b, 0x1e, 0xaa,
+ 0xe3, 0xac, 0xd9, 0xf7, 0xdc, 0xa0, 0x94, 0xbc, 0xcd, 0x3f, 0xe1, 0x87,
+ 0x9f, 0xc4, 0xbe, 0x22, 0xe6, 0xdc, 0x25, 0xd9, 0x0f, 0x48, 0x19, 0x90,
+};
+static const unsigned char kat4276_addinpr2[] = {
+ 0x4a, 0x67, 0x1c, 0x94, 0xbb, 0x87, 0x7b, 0xdb, 0x38, 0x6e, 0xbf, 0x5d,
+ 0x8f, 0x29, 0xb6, 0x06, 0x7c, 0x79, 0xc5, 0x6a, 0x28, 0x0c, 0x33, 0x4a,
+ 0xd2, 0x04, 0x49, 0x0d, 0x39, 0x27, 0xc0, 0x98, 0x66, 0xbf, 0x94, 0x9a,
+ 0x8d, 0x2d, 0x8c, 0x17, 0x8b, 0xe7, 0x51, 0x85, 0x4a, 0x6a, 0x7a, 0x8c,
+};
+static const unsigned char kat4276_retbits[] = {
+ 0x72, 0x60, 0x9d, 0xdc, 0x26, 0x10, 0x19, 0xc1, 0xeb, 0x92, 0x7b, 0x81,
+ 0x3a, 0x91, 0x52, 0x44, 0x8e, 0x88, 0xf2, 0xfe, 0xcd, 0x7b, 0xb3, 0x32,
+ 0x80, 0x63, 0x7c, 0x4e, 0x32, 0xff, 0x4c, 0x1d, 0xd4, 0xa6, 0x65, 0xa6,
+ 0x97, 0xa1, 0x74, 0xf6, 0x71, 0x7e, 0xca, 0x30, 0x98, 0x1b, 0x70, 0xe0,
+ 0x43, 0xea, 0x28, 0x6d, 0xc4, 0x53, 0x01, 0x4d, 0x15, 0x38, 0x9e, 0xcf,
+ 0x7c, 0x80, 0xe5, 0xb3,
+};
+static const struct drbg_kat_pr_true kat4276_t = {
+ 0, kat4276_entropyin, kat4276_nonce, kat4276_persstr,
+ kat4276_entropyinpr1, kat4276_addinpr1, kat4276_entropyinpr2,
+ kat4276_addinpr2, kat4276_retbits
+};
+static const struct drbg_kat kat4276 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4276_t
+};
+
+static const unsigned char kat4277_entropyin[] = {
+ 0x8b, 0x95, 0x99, 0x03, 0xda, 0x42, 0x5d, 0x7b, 0x6f, 0xd2, 0x0a, 0x3b,
+ 0x58, 0x77, 0x3d, 0x3a, 0x69, 0x11, 0x68, 0xc7, 0x65, 0xe0, 0x31, 0x77,
+ 0x6e, 0x8d, 0x4f, 0x01, 0x72, 0x08, 0xe1, 0xfc, 0x51, 0x10, 0xe5, 0xd8,
+ 0x66, 0x7d, 0xba, 0x0a, 0xf4, 0x0a, 0x10, 0x64, 0x1f, 0x95, 0xf5, 0x5c,
+};
+static const unsigned char kat4277_nonce[] = {0};
+static const unsigned char kat4277_persstr[] = {0};
+static const unsigned char kat4277_entropyinpr1[] = {
+ 0x97, 0xf3, 0xdf, 0x25, 0x4d, 0x0d, 0xe1, 0x00, 0x5f, 0xfe, 0xee, 0xf0,
+ 0x6a, 0xbb, 0xad, 0xee, 0x5f, 0xf8, 0x7f, 0x16, 0x19, 0xf7, 0x4a, 0xb2,
+ 0x71, 0xba, 0x3d, 0x35, 0xda, 0x3e, 0x3e, 0xde, 0xcc, 0xe5, 0x7c, 0x6e,
+ 0xe5, 0x65, 0x47, 0x84, 0x50, 0xac, 0xfa, 0xeb, 0xb8, 0x9f, 0x3a, 0xe3,
+};
+static const unsigned char kat4277_addinpr1[] = {
+ 0x1b, 0xe3, 0xe0, 0x2b, 0x0a, 0x53, 0xf4, 0xc5, 0x0a, 0x5e, 0x2f, 0x48,
+ 0xf7, 0x53, 0x37, 0x14, 0xf8, 0x26, 0xdc, 0xb1, 0x6d, 0x11, 0x9f, 0xdc,
+ 0x70, 0xb9, 0x10, 0x58, 0x4b, 0x65, 0x4f, 0xd8, 0xd4, 0x1b, 0xfc, 0xc7,
+ 0xa6, 0x06, 0x0b, 0x38, 0x08, 0x94, 0x66, 0xbb, 0x3f, 0xe3, 0x4e, 0xa2,
+};
+static const unsigned char kat4277_entropyinpr2[] = {
+ 0xf4, 0xa2, 0x40, 0x99, 0xc1, 0x85, 0x98, 0x07, 0x9d, 0xce, 0xe0, 0x20,
+ 0xc0, 0xef, 0x54, 0x48, 0xfc, 0x0f, 0x30, 0x60, 0x22, 0xae, 0xc8, 0xe8,
+ 0x1b, 0x1d, 0x87, 0x74, 0xc2, 0x73, 0xbd, 0x9a, 0xb5, 0x25, 0x03, 0x5b,
+ 0xed, 0x01, 0xd3, 0xce, 0x01, 0x97, 0xbd, 0xc4, 0x86, 0x98, 0x1e, 0x5d,
+};
+static const unsigned char kat4277_addinpr2[] = {
+ 0x0c, 0xb1, 0xd5, 0x22, 0xf2, 0x9a, 0x13, 0xd5, 0x71, 0x49, 0x17, 0xd6,
+ 0x45, 0x67, 0xb4, 0xe3, 0xb1, 0x6e, 0xdb, 0xfa, 0xc4, 0xd8, 0x74, 0x8e,
+ 0x6f, 0x24, 0x26, 0x03, 0x1f, 0x3e, 0x3c, 0x73, 0xab, 0xa6, 0x55, 0xbc,
+ 0x3e, 0x61, 0xfe, 0x2f, 0x91, 0x34, 0x78, 0x7a, 0x99, 0x3d, 0x88, 0x19,
+};
+static const unsigned char kat4277_retbits[] = {
+ 0x94, 0xa4, 0x3f, 0x51, 0x3a, 0xa6, 0xe5, 0x3b, 0x2b, 0xd0, 0x86, 0xb8,
+ 0x80, 0xd1, 0x88, 0x4d, 0x1c, 0x59, 0x2e, 0x24, 0xa6, 0x4c, 0x98, 0xe1,
+ 0x2e, 0x89, 0xb2, 0x09, 0xf1, 0x53, 0xeb, 0x5d, 0x34, 0x79, 0x9d, 0x32,
+ 0x34, 0xaa, 0xfb, 0xfc, 0x99, 0xf9, 0x47, 0x88, 0x82, 0x0d, 0x30, 0x5f,
+ 0x30, 0xda, 0xaf, 0x79, 0x43, 0x66, 0x9d, 0xa1, 0x72, 0x6c, 0xa6, 0xd7,
+ 0x33, 0x0a, 0x7c, 0x21,
+};
+static const struct drbg_kat_pr_true kat4277_t = {
+ 1, kat4277_entropyin, kat4277_nonce, kat4277_persstr,
+ kat4277_entropyinpr1, kat4277_addinpr1, kat4277_entropyinpr2,
+ kat4277_addinpr2, kat4277_retbits
+};
+static const struct drbg_kat kat4277 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4277_t
+};
+
+static const unsigned char kat4278_entropyin[] = {
+ 0x47, 0xec, 0x21, 0x75, 0xf4, 0xc8, 0x9f, 0x51, 0x39, 0x35, 0x4d, 0x92,
+ 0x91, 0x48, 0x8e, 0x54, 0x3b, 0xfa, 0xf2, 0x23, 0x60, 0x66, 0xe3, 0x04,
+ 0x1d, 0xab, 0x42, 0xe2, 0x85, 0x45, 0xa3, 0xa7, 0xb3, 0xc8, 0xa1, 0x00,
+ 0x97, 0x7e, 0x94, 0x1f, 0xf8, 0x8c, 0xaa, 0x19, 0x95, 0x35, 0xd6, 0x51,
+};
+static const unsigned char kat4278_nonce[] = {0};
+static const unsigned char kat4278_persstr[] = {0};
+static const unsigned char kat4278_entropyinpr1[] = {
+ 0x51, 0x09, 0xe5, 0xdc, 0x6e, 0xb9, 0x77, 0x58, 0x47, 0x5b, 0x31, 0x1a,
+ 0xf2, 0x74, 0x54, 0xdf, 0xcd, 0x57, 0x3f, 0x19, 0x21, 0x45, 0xef, 0x5a,
+ 0x3a, 0xbd, 0x4f, 0x37, 0xee, 0x25, 0x8b, 0x71, 0xe6, 0xf7, 0x0a, 0x4e,
+ 0x99, 0xb3, 0xd8, 0xb9, 0xd9, 0x22, 0xcc, 0x05, 0x7e, 0x6a, 0xcd, 0x23,
+};
+static const unsigned char kat4278_addinpr1[] = {
+ 0x5b, 0xae, 0x2b, 0x9b, 0x60, 0xb6, 0x4f, 0xf6, 0xe1, 0xe9, 0xa0, 0x75,
+ 0xaa, 0x62, 0x8e, 0xa1, 0x50, 0xff, 0xda, 0xd5, 0x5e, 0xca, 0x43, 0xe5,
+ 0xfc, 0x1f, 0x37, 0xba, 0x64, 0x5c, 0xad, 0x6a, 0x0e, 0xa6, 0x9a, 0x28,
+ 0x84, 0xd6, 0xfc, 0xa3, 0xd1, 0x4e, 0x37, 0x5b, 0xe1, 0x06, 0x53, 0xd3,
+};
+static const unsigned char kat4278_entropyinpr2[] = {
+ 0xdd, 0x86, 0x89, 0x9f, 0x8d, 0xbf, 0xef, 0xa8, 0xdf, 0xe5, 0xbf, 0x82,
+ 0x47, 0x0f, 0x88, 0xac, 0x86, 0xb6, 0x9a, 0x5f, 0xe8, 0x59, 0x76, 0xdd,
+ 0x0d, 0x0f, 0x52, 0x0c, 0xd6, 0x64, 0x73, 0x3c, 0xfa, 0x38, 0x77, 0xb8,
+ 0xee, 0x17, 0x42, 0xa6, 0xae, 0x2e, 0xdd, 0x21, 0xf5, 0x72, 0x51, 0x02,
+};
+static const unsigned char kat4278_addinpr2[] = {
+ 0xe8, 0xae, 0x05, 0xc5, 0x25, 0x11, 0x3d, 0xa8, 0xd8, 0x26, 0x60, 0xde,
+ 0x3d, 0x5c, 0x57, 0xe1, 0x15, 0xdb, 0xd3, 0x6c, 0x45, 0x6a, 0x7e, 0xcc,
+ 0x70, 0x4b, 0x17, 0x07, 0xc0, 0x29, 0xe8, 0xa3, 0x48, 0x6f, 0xea, 0x29,
+ 0xe9, 0xef, 0x9b, 0x97, 0xc5, 0x89, 0xea, 0x7b, 0x1a, 0xcd, 0x6c, 0x1d,
+};
+static const unsigned char kat4278_retbits[] = {
+ 0x93, 0xf1, 0xa0, 0xf2, 0x94, 0x97, 0x48, 0xaf, 0x4a, 0x0e, 0x03, 0x75,
+ 0x15, 0x52, 0x9b, 0x21, 0x21, 0x3e, 0x09, 0xc8, 0xb4, 0x45, 0xac, 0xa0,
+ 0x27, 0x9c, 0xd1, 0xb2, 0x0d, 0xa9, 0x05, 0x02, 0x2e, 0x87, 0x05, 0x59,
+ 0x44, 0x80, 0x8a, 0x63, 0x51, 0xaa, 0x09, 0xca, 0xec, 0xa2, 0x26, 0x3e,
+ 0x22, 0x2e, 0xf2, 0x97, 0x7d, 0xbc, 0xc9, 0x4d, 0xeb, 0x52, 0x24, 0x9e,
+ 0xa7, 0x59, 0xc5, 0x2a,
+};
+static const struct drbg_kat_pr_true kat4278_t = {
+ 2, kat4278_entropyin, kat4278_nonce, kat4278_persstr,
+ kat4278_entropyinpr1, kat4278_addinpr1, kat4278_entropyinpr2,
+ kat4278_addinpr2, kat4278_retbits
+};
+static const struct drbg_kat kat4278 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4278_t
+};
+
+static const unsigned char kat4279_entropyin[] = {
+ 0x43, 0x4b, 0xf4, 0x6e, 0xaa, 0x21, 0xd0, 0xc1, 0x4a, 0x14, 0xad, 0x59,
+ 0xa4, 0x77, 0x56, 0xa8, 0xfd, 0xdb, 0xaa, 0x7d, 0xda, 0x32, 0xdc, 0x85,
+ 0x34, 0x89, 0xee, 0xe8, 0x13, 0xdd, 0x4e, 0x23, 0xe9, 0xe6, 0x5d, 0xb4,
+ 0x16, 0x2c, 0x61, 0x8b, 0x04, 0xae, 0xe7, 0x93, 0x63, 0x1c, 0x14, 0x32,
+};
+static const unsigned char kat4279_nonce[] = {0};
+static const unsigned char kat4279_persstr[] = {0};
+static const unsigned char kat4279_entropyinpr1[] = {
+ 0xd9, 0x6b, 0x6a, 0x0b, 0xbf, 0xac, 0x34, 0x0b, 0x3e, 0x99, 0x54, 0x72,
+ 0xf2, 0x9f, 0x91, 0x20, 0xe1, 0xf1, 0x72, 0x04, 0x10, 0x11, 0xe2, 0xaf,
+ 0x1f, 0xe4, 0x63, 0xf2, 0x5b, 0x34, 0x67, 0x1b, 0x08, 0xdc, 0xb8, 0x14,
+ 0xd5, 0x9a, 0x9f, 0xac, 0x56, 0x9c, 0x50, 0xc0, 0xf5, 0xb5, 0xd3, 0x15,
+};
+static const unsigned char kat4279_addinpr1[] = {
+ 0x6f, 0xd3, 0x50, 0x49, 0xd8, 0x90, 0x5a, 0x16, 0x4e, 0xec, 0x42, 0x66,
+ 0xe0, 0x01, 0x8f, 0x2a, 0xef, 0xf0, 0xb9, 0x50, 0x72, 0x5d, 0xd8, 0x83,
+ 0xce, 0xf0, 0xf1, 0x5b, 0xb4, 0x97, 0xf9, 0x26, 0xa0, 0x2c, 0x18, 0x1d,
+ 0xe5, 0x4a, 0x8f, 0xd8, 0x76, 0x51, 0x86, 0x7c, 0xad, 0x1a, 0x28, 0x37,
+};
+static const unsigned char kat4279_entropyinpr2[] = {
+ 0x51, 0x49, 0x0b, 0xbf, 0x6c, 0xc4, 0xdb, 0x8f, 0xd8, 0xe4, 0x0f, 0x77,
+ 0x51, 0x60, 0xbc, 0x44, 0x70, 0xc4, 0x5c, 0x83, 0x94, 0x59, 0xda, 0xb1,
+ 0xf7, 0x65, 0x4a, 0x99, 0x5b, 0xa7, 0xd7, 0x1f, 0x54, 0x28, 0x94, 0xc9,
+ 0xb4, 0xb6, 0x95, 0x94, 0x90, 0x02, 0x3a, 0x87, 0x15, 0x81, 0x99, 0xe4,
+};
+static const unsigned char kat4279_addinpr2[] = {
+ 0x1a, 0xe5, 0x0c, 0x2f, 0xb8, 0x05, 0x75, 0xff, 0xf8, 0xbd, 0x2a, 0x88,
+ 0xe8, 0xe0, 0xfa, 0xa3, 0x90, 0x63, 0x44, 0x66, 0x9c, 0x20, 0x45, 0x36,
+ 0x6b, 0x64, 0x5c, 0x3d, 0x6a, 0xfc, 0x26, 0x6d, 0xc9, 0x63, 0x87, 0xf2,
+ 0xe7, 0x06, 0x8f, 0x02, 0xe3, 0x82, 0x1b, 0x79, 0xec, 0x6c, 0x2e, 0x94,
+};
+static const unsigned char kat4279_retbits[] = {
+ 0xcf, 0x3c, 0x63, 0xf9, 0xe4, 0x53, 0x54, 0x4f, 0x03, 0x26, 0xa9, 0x26,
+ 0xd7, 0xf2, 0x69, 0x70, 0x41, 0x32, 0x0d, 0x49, 0x43, 0x3a, 0x6a, 0xd9,
+ 0x18, 0x4d, 0x13, 0x27, 0xbe, 0x4c, 0xb6, 0x17, 0x0b, 0x65, 0xe3, 0xdb,
+ 0x08, 0x5c, 0xee, 0x87, 0x12, 0xb4, 0x38, 0x75, 0xa1, 0x85, 0xd1, 0xe4,
+ 0x61, 0xa6, 0xa4, 0x63, 0xac, 0x32, 0x31, 0x89, 0x79, 0xa2, 0xfe, 0x56,
+ 0x4b, 0x38, 0x6c, 0x0a,
+};
+static const struct drbg_kat_pr_true kat4279_t = {
+ 3, kat4279_entropyin, kat4279_nonce, kat4279_persstr,
+ kat4279_entropyinpr1, kat4279_addinpr1, kat4279_entropyinpr2,
+ kat4279_addinpr2, kat4279_retbits
+};
+static const struct drbg_kat kat4279 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4279_t
+};
+
+static const unsigned char kat4280_entropyin[] = {
+ 0x45, 0x52, 0x1c, 0x7b, 0x48, 0x90, 0xa4, 0x33, 0xcc, 0xfd, 0xd6, 0xd1,
+ 0x52, 0xec, 0xba, 0x50, 0xe5, 0xf1, 0x32, 0xef, 0xa0, 0x36, 0x5f, 0xe2,
+ 0x87, 0xaf, 0xf0, 0xea, 0x38, 0x20, 0x99, 0x71, 0xa2, 0xb2, 0x84, 0x0a,
+ 0xff, 0xd4, 0xcb, 0x4e, 0x44, 0x0f, 0x59, 0x2f, 0x71, 0x17, 0x24, 0xae,
+};
+static const unsigned char kat4280_nonce[] = {0};
+static const unsigned char kat4280_persstr[] = {0};
+static const unsigned char kat4280_entropyinpr1[] = {
+ 0x14, 0xe9, 0xde, 0x9a, 0x39, 0x21, 0x6e, 0xa8, 0xb3, 0xbe, 0xb5, 0x17,
+ 0x5b, 0xb7, 0xdc, 0x2e, 0xab, 0xc7, 0x9d, 0x5b, 0x19, 0x31, 0x14, 0x59,
+ 0xb0, 0x3d, 0x84, 0xc1, 0x86, 0x75, 0x67, 0xa5, 0x4c, 0x57, 0xd1, 0xd5,
+ 0xba, 0x5f, 0xbc, 0xa2, 0xb3, 0xeb, 0x3d, 0xe7, 0x3d, 0x2b, 0xe4, 0x3e,
+};
+static const unsigned char kat4280_addinpr1[] = {
+ 0x2e, 0x60, 0x25, 0x9c, 0xa1, 0xc4, 0x9d, 0xce, 0x14, 0xc7, 0xe3, 0x1f,
+ 0x7d, 0xe9, 0x5e, 0x25, 0xf6, 0xfd, 0x49, 0xfa, 0x10, 0x0e, 0x32, 0x5b,
+ 0x1e, 0xf0, 0xf0, 0xed, 0x72, 0xf7, 0xc0, 0x1e, 0x4d, 0x13, 0x72, 0xf6,
+ 0xab, 0x0d, 0x87, 0xfb, 0x45, 0xcd, 0x59, 0x49, 0xa4, 0x93, 0xa7, 0x9b,
+};
+static const unsigned char kat4280_entropyinpr2[] = {
+ 0x6a, 0x2f, 0x83, 0x9f, 0x86, 0xd1, 0x6a, 0x06, 0x13, 0xb7, 0x7e, 0x71,
+ 0x0f, 0x44, 0x4d, 0x96, 0x39, 0x1f, 0x9e, 0xf4, 0x89, 0x4e, 0x29, 0xa8,
+ 0xd2, 0x37, 0xee, 0xa5, 0x3c, 0xe2, 0x9a, 0x2d, 0xbf, 0xcb, 0x6d, 0x4f,
+ 0x26, 0x77, 0x62, 0x27, 0x99, 0x65, 0xab, 0x21, 0xc9, 0x3a, 0xa8, 0x55,
+};
+static const unsigned char kat4280_addinpr2[] = {
+ 0x13, 0x66, 0x65, 0xeb, 0x10, 0x86, 0x3d, 0xc7, 0xc3, 0xc2, 0x30, 0x01,
+ 0x25, 0x84, 0x34, 0xff, 0x7a, 0x1a, 0xab, 0xd8, 0x76, 0xe2, 0x98, 0x93,
+ 0x0d, 0x6f, 0xc6, 0xb0, 0x5f, 0xf0, 0x4f, 0xce, 0xe3, 0xf0, 0x77, 0x3b,
+ 0xf4, 0x02, 0xb0, 0x98, 0x71, 0x60, 0x06, 0x2c, 0x1a, 0xb9, 0x0b, 0x95,
+};
+static const unsigned char kat4280_retbits[] = {
+ 0x86, 0xe6, 0x6f, 0x97, 0xc0, 0x56, 0xc1, 0xec, 0xc4, 0x72, 0xb9, 0xb9,
+ 0x4b, 0x34, 0x74, 0xb8, 0x36, 0x64, 0xa4, 0xaf, 0xe1, 0x77, 0x86, 0x02,
+ 0xd0, 0xac, 0x05, 0x00, 0x79, 0x94, 0x97, 0x0a, 0x85, 0xa2, 0x9d, 0xd4,
+ 0xa8, 0x07, 0xab, 0x17, 0x13, 0x0b, 0xc4, 0x9b, 0x9f, 0x11, 0xee, 0x6f,
+ 0xa7, 0x84, 0xab, 0x1d, 0xc1, 0xe6, 0x4b, 0x15, 0xda, 0x8a, 0xe7, 0xa5,
+ 0x9d, 0xe9, 0x11, 0x73,
+};
+static const struct drbg_kat_pr_true kat4280_t = {
+ 4, kat4280_entropyin, kat4280_nonce, kat4280_persstr,
+ kat4280_entropyinpr1, kat4280_addinpr1, kat4280_entropyinpr2,
+ kat4280_addinpr2, kat4280_retbits
+};
+static const struct drbg_kat kat4280 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4280_t
+};
+
+static const unsigned char kat4281_entropyin[] = {
+ 0xbd, 0x3f, 0x6e, 0xa9, 0x94, 0xf7, 0x48, 0xf0, 0x4d, 0x32, 0xcb, 0xe7,
+ 0xc0, 0x9a, 0xc6, 0x8b, 0xeb, 0x72, 0xd7, 0xe1, 0x68, 0xa1, 0x99, 0x5a,
+ 0x4d, 0x34, 0x25, 0x8a, 0x61, 0x61, 0x6b, 0x5e, 0x10, 0xa2, 0xc4, 0x2d,
+ 0xaa, 0xb3, 0xa7, 0x7d, 0x18, 0xcd, 0x35, 0x4d, 0x89, 0x0f, 0x8f, 0x1e,
+};
+static const unsigned char kat4281_nonce[] = {0};
+static const unsigned char kat4281_persstr[] = {0};
+static const unsigned char kat4281_entropyinpr1[] = {
+ 0x46, 0xb0, 0xb2, 0x4c, 0x25, 0x72, 0x67, 0x12, 0x1a, 0xf1, 0x56, 0x14,
+ 0x8d, 0x08, 0x98, 0x03, 0x79, 0x1b, 0xcd, 0xad, 0xc3, 0xcb, 0x6b, 0x48,
+ 0x6b, 0x11, 0xe7, 0xc5, 0x9d, 0x8d, 0xbe, 0x37, 0x4c, 0x37, 0xc2, 0xae,
+ 0xd5, 0x21, 0x0e, 0x7d, 0x3f, 0xcb, 0x02, 0xe7, 0x5c, 0x84, 0xed, 0x07,
+};
+static const unsigned char kat4281_addinpr1[] = {
+ 0x19, 0x3d, 0x29, 0x61, 0x65, 0x4f, 0x8d, 0x29, 0xed, 0x50, 0xd7, 0xc4,
+ 0xef, 0x10, 0x6f, 0x43, 0x69, 0xbd, 0xa2, 0xe1, 0x8b, 0x11, 0xb3, 0x02,
+ 0x78, 0xb5, 0x60, 0x0c, 0x2b, 0xf1, 0x78, 0x47, 0x77, 0xe5, 0x90, 0xe7,
+ 0x5a, 0xa0, 0xb5, 0xb1, 0x1f, 0xc9, 0xa5, 0x74, 0xe7, 0xe9, 0x75, 0xec,
+};
+static const unsigned char kat4281_entropyinpr2[] = {
+ 0xa2, 0x45, 0xfe, 0xf4, 0xc8, 0xf6, 0x31, 0xe3, 0x20, 0xa6, 0x77, 0x30,
+ 0x32, 0x5d, 0xbf, 0x3b, 0x0d, 0x7e, 0xd2, 0x1f, 0x1b, 0xa9, 0x4f, 0xd4,
+ 0x55, 0x9e, 0x55, 0xcb, 0x8a, 0x31, 0x58, 0xec, 0xf6, 0x7a, 0x3a, 0x58,
+ 0xd4, 0x0b, 0x1b, 0x6d, 0x43, 0x84, 0x2a, 0x15, 0xd3, 0x37, 0x19, 0xf9,
+};
+static const unsigned char kat4281_addinpr2[] = {
+ 0x56, 0xf2, 0xc0, 0x7c, 0x15, 0x24, 0x93, 0xa2, 0x5d, 0x58, 0x02, 0x82,
+ 0x07, 0xb7, 0x48, 0xf2, 0x06, 0x29, 0x4f, 0x91, 0x9e, 0xda, 0x32, 0x75,
+ 0x2f, 0xa3, 0x9f, 0x2c, 0xce, 0xb5, 0x15, 0x25, 0x33, 0xae, 0xec, 0x98,
+ 0x74, 0xad, 0x60, 0xef, 0x8b, 0xdb, 0x0c, 0xdf, 0xc2, 0x2d, 0x93, 0x21,
+};
+static const unsigned char kat4281_retbits[] = {
+ 0x05, 0x5f, 0x58, 0xaf, 0xa1, 0xf0, 0xd6, 0x75, 0x5d, 0x01, 0x3c, 0x3c,
+ 0xb9, 0xbe, 0xef, 0xd5, 0x08, 0x20, 0x67, 0x72, 0x28, 0x74, 0xee, 0x2f,
+ 0x7b, 0x73, 0x9f, 0xa4, 0x60, 0x8a, 0x67, 0x9e, 0xc1, 0x24, 0xf8, 0x98,
+ 0x76, 0xb3, 0xd4, 0x45, 0xac, 0xbf, 0x50, 0xe8, 0x06, 0x41, 0x5a, 0xff,
+ 0x95, 0xa5, 0xab, 0x06, 0xa3, 0x45, 0xa8, 0x66, 0xa4, 0x26, 0xd5, 0x13,
+ 0x10, 0xf0, 0xcc, 0x8a,
+};
+static const struct drbg_kat_pr_true kat4281_t = {
+ 5, kat4281_entropyin, kat4281_nonce, kat4281_persstr,
+ kat4281_entropyinpr1, kat4281_addinpr1, kat4281_entropyinpr2,
+ kat4281_addinpr2, kat4281_retbits
+};
+static const struct drbg_kat kat4281 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4281_t
+};
+
+static const unsigned char kat4282_entropyin[] = {
+ 0x08, 0x55, 0x1c, 0x18, 0xc6, 0xcd, 0x79, 0x5a, 0xbd, 0x89, 0x18, 0x47,
+ 0xcb, 0x91, 0x7d, 0x10, 0xc0, 0x94, 0xc3, 0x73, 0x4a, 0xe6, 0x73, 0xf8,
+ 0x7f, 0xb0, 0x95, 0x7d, 0x95, 0x3d, 0xa6, 0x1f, 0x5b, 0x1e, 0x6c, 0xd4,
+ 0x83, 0x5e, 0x98, 0x84, 0x53, 0xc4, 0x73, 0x1c, 0x9f, 0xaf, 0x14, 0xa5,
+};
+static const unsigned char kat4282_nonce[] = {0};
+static const unsigned char kat4282_persstr[] = {0};
+static const unsigned char kat4282_entropyinpr1[] = {
+ 0x8c, 0xf2, 0x21, 0xad, 0x9e, 0xe8, 0x51, 0xb3, 0x74, 0x17, 0x2d, 0xd6,
+ 0x33, 0xde, 0x61, 0x6e, 0x06, 0x49, 0x91, 0xae, 0xab, 0xd7, 0x7a, 0xae,
+ 0xda, 0x50, 0xf1, 0xba, 0x29, 0x9b, 0xb4, 0x74, 0xd8, 0xc2, 0xa4, 0xde,
+ 0xc4, 0x53, 0x56, 0xd8, 0x44, 0x27, 0xe6, 0xc8, 0x34, 0x54, 0xab, 0x95,
+};
+static const unsigned char kat4282_addinpr1[] = {
+ 0xbe, 0x86, 0xfd, 0x4f, 0xbf, 0x5a, 0x23, 0x45, 0xb8, 0xf5, 0xeb, 0x10,
+ 0x7c, 0xa6, 0x4e, 0x0b, 0x67, 0x55, 0xa2, 0x51, 0x26, 0x38, 0x3d, 0xe4,
+ 0x74, 0x35, 0x6d, 0xcc, 0xa1, 0x72, 0xcb, 0x06, 0x0b, 0x99, 0x82, 0x36,
+ 0x67, 0x2b, 0xe8, 0xd7, 0xe5, 0xc3, 0x31, 0x26, 0x94, 0xb8, 0xad, 0x85,
+};
+static const unsigned char kat4282_entropyinpr2[] = {
+ 0xa0, 0x66, 0x8f, 0xe1, 0xc5, 0xda, 0x6b, 0x19, 0x17, 0x1a, 0x82, 0x85,
+ 0x27, 0x6b, 0x45, 0xcc, 0x83, 0xb3, 0xb2, 0x3a, 0x33, 0x57, 0xfb, 0x64,
+ 0x26, 0x84, 0xb3, 0xee, 0xaa, 0xe1, 0x09, 0xb3, 0x58, 0x6b, 0x74, 0x8b,
+ 0xb8, 0xbb, 0xee, 0xb7, 0x33, 0x3c, 0x7b, 0x37, 0x51, 0x20, 0x8e, 0x1c,
+};
+static const unsigned char kat4282_addinpr2[] = {
+ 0x5d, 0x6b, 0xe1, 0x1e, 0xd1, 0x75, 0x58, 0x4b, 0x48, 0x0f, 0xff, 0x76,
+ 0x34, 0x75, 0xc5, 0x70, 0x12, 0x6b, 0xa9, 0xfa, 0x57, 0xa2, 0x4d, 0x11,
+ 0xce, 0xa8, 0xd3, 0xb0, 0xbe, 0xb3, 0x65, 0xbc, 0x51, 0x4c, 0xce, 0x37,
+ 0x58, 0x2d, 0x44, 0xc6, 0xa5, 0x15, 0xdc, 0x4e, 0x77, 0xbb, 0xdc, 0x09,
+};
+static const unsigned char kat4282_retbits[] = {
+ 0xd4, 0x50, 0x1f, 0x95, 0xba, 0xb4, 0x5a, 0xb1, 0xc2, 0xb3, 0xea, 0x60,
+ 0x24, 0x09, 0x06, 0xa5, 0xa7, 0xc3, 0xa8, 0x5d, 0xd9, 0x9c, 0x45, 0x7a,
+ 0x0c, 0xcb, 0x9c, 0xd8, 0x7c, 0x87, 0x91, 0xfd, 0x36, 0xac, 0xf7, 0xaf,
+ 0x38, 0x2c, 0xf3, 0x96, 0x96, 0x7d, 0x7c, 0x7e, 0x17, 0xe6, 0xf7, 0x86,
+ 0x44, 0x6f, 0xca, 0x44, 0xd8, 0x5d, 0x16, 0x98, 0xef, 0xc0, 0xce, 0xa9,
+ 0x5a, 0xdd, 0x29, 0x36,
+};
+static const struct drbg_kat_pr_true kat4282_t = {
+ 6, kat4282_entropyin, kat4282_nonce, kat4282_persstr,
+ kat4282_entropyinpr1, kat4282_addinpr1, kat4282_entropyinpr2,
+ kat4282_addinpr2, kat4282_retbits
+};
+static const struct drbg_kat kat4282 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4282_t
+};
+
+static const unsigned char kat4283_entropyin[] = {
+ 0xc1, 0x3f, 0xaa, 0x09, 0x80, 0xc9, 0x36, 0xf7, 0x74, 0xf2, 0x7e, 0x74,
+ 0xe0, 0x3f, 0xf8, 0xc5, 0x09, 0x8b, 0x38, 0x67, 0x46, 0x01, 0x60, 0xa7,
+ 0xb6, 0x8a, 0x32, 0xd6, 0xb3, 0xfd, 0xf1, 0x76, 0x56, 0xd8, 0x9a, 0xa9,
+ 0x94, 0xe3, 0xf1, 0x51, 0x76, 0xdd, 0xa8, 0xd2, 0x3c, 0xa2, 0x1f, 0x55,
+};
+static const unsigned char kat4283_nonce[] = {0};
+static const unsigned char kat4283_persstr[] = {0};
+static const unsigned char kat4283_entropyinpr1[] = {
+ 0x43, 0x33, 0x5f, 0xc7, 0xd4, 0x32, 0xbd, 0x49, 0x04, 0xfe, 0x35, 0x28,
+ 0x0f, 0xe6, 0x61, 0x72, 0xe5, 0x27, 0x99, 0x44, 0xe3, 0x1d, 0x38, 0xba,
+ 0x64, 0x7a, 0x99, 0x8a, 0x23, 0x2b, 0xa2, 0x5a, 0x62, 0x58, 0x05, 0xa0,
+ 0x92, 0x00, 0x58, 0x47, 0xae, 0x3b, 0x7e, 0xe4, 0x66, 0x96, 0xc6, 0xee,
+};
+static const unsigned char kat4283_addinpr1[] = {
+ 0x77, 0x95, 0x4e, 0x74, 0x04, 0xcf, 0x5b, 0xdb, 0xeb, 0xf4, 0x42, 0x9e,
+ 0x43, 0xf6, 0x38, 0x5e, 0x3e, 0x77, 0xaa, 0xd0, 0x64, 0x16, 0x31, 0xaf,
+ 0x3e, 0xe1, 0x2f, 0xbd, 0xc0, 0xf4, 0xa7, 0x48, 0x57, 0x30, 0x2c, 0x80,
+ 0x5a, 0xcc, 0xa1, 0xc5, 0x56, 0xc3, 0x20, 0xd6, 0xca, 0xa0, 0xcb, 0x2e,
+};
+static const unsigned char kat4283_entropyinpr2[] = {
+ 0xba, 0x19, 0x25, 0x2c, 0xf5, 0xff, 0x90, 0x17, 0x91, 0x86, 0xe9, 0xaa,
+ 0x1d, 0x08, 0x96, 0x9e, 0x8e, 0x79, 0xe5, 0xa6, 0x1c, 0x54, 0xb9, 0x07,
+ 0xc9, 0x16, 0x34, 0x69, 0x4b, 0x06, 0xc7, 0x3c, 0x62, 0xaf, 0xe8, 0x37,
+ 0x6a, 0xa9, 0xf3, 0x99, 0x38, 0x21, 0xba, 0xd5, 0x76, 0xf5, 0x9d, 0x9e,
+};
+static const unsigned char kat4283_addinpr2[] = {
+ 0xb7, 0x7e, 0x35, 0xb4, 0x1c, 0xa8, 0xc0, 0x6a, 0xae, 0x16, 0x4e, 0xb2,
+ 0xfd, 0x75, 0x1b, 0x4d, 0x0b, 0x0a, 0x8e, 0xf2, 0x9e, 0xd0, 0x7c, 0x71,
+ 0xb6, 0xf7, 0xab, 0x5e, 0xe1, 0x6d, 0x67, 0xff, 0x02, 0x56, 0xf7, 0x4d,
+ 0xd9, 0x5c, 0x78, 0x9c, 0xb5, 0x38, 0x2c, 0x03, 0x01, 0xe2, 0xd6, 0xa8,
+};
+static const unsigned char kat4283_retbits[] = {
+ 0x18, 0x27, 0xb8, 0xd2, 0xae, 0x59, 0xdb, 0x2d, 0x9f, 0x4b, 0xe5, 0x14,
+ 0x17, 0x82, 0x6e, 0xa7, 0x83, 0x36, 0x23, 0x8a, 0x7f, 0x0c, 0xbb, 0xc8,
+ 0x04, 0x8f, 0x2d, 0xa3, 0x93, 0x24, 0x44, 0xa2, 0x0a, 0x3e, 0x17, 0xf5,
+ 0x6a, 0x34, 0xef, 0x72, 0x72, 0x77, 0x32, 0x15, 0x0c, 0x81, 0xf4, 0xc5,
+ 0xa9, 0x65, 0x33, 0xe3, 0xfb, 0x87, 0x2b, 0xe8, 0x7e, 0x0b, 0x8b, 0x85,
+ 0x0d, 0xc8, 0x5e, 0x1c,
+};
+static const struct drbg_kat_pr_true kat4283_t = {
+ 7, kat4283_entropyin, kat4283_nonce, kat4283_persstr,
+ kat4283_entropyinpr1, kat4283_addinpr1, kat4283_entropyinpr2,
+ kat4283_addinpr2, kat4283_retbits
+};
+static const struct drbg_kat kat4283 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4283_t
+};
+
+static const unsigned char kat4284_entropyin[] = {
+ 0xb6, 0x55, 0xcc, 0x6a, 0x23, 0xe5, 0x09, 0x20, 0x27, 0x85, 0x25, 0x95,
+ 0xb1, 0xa9, 0x36, 0x83, 0x1d, 0x96, 0x0a, 0x2b, 0x7f, 0xc9, 0xc1, 0x03,
+ 0x8c, 0xb7, 0x04, 0x8b, 0x88, 0x8b, 0xbf, 0x72, 0xba, 0x06, 0x70, 0x89,
+ 0x34, 0x92, 0x45, 0x82, 0xca, 0x49, 0xd1, 0xe7, 0xa8, 0xf1, 0x95, 0x04,
+};
+static const unsigned char kat4284_nonce[] = {0};
+static const unsigned char kat4284_persstr[] = {0};
+static const unsigned char kat4284_entropyinpr1[] = {
+ 0x3d, 0x0d, 0xab, 0x5d, 0x34, 0x16, 0xcd, 0x8b, 0x3b, 0xb5, 0x65, 0x61,
+ 0x7a, 0xd0, 0x52, 0x5e, 0x7e, 0xea, 0x2d, 0x8d, 0x81, 0xeb, 0x2f, 0x08,
+ 0xe1, 0xdc, 0xea, 0xd8, 0x10, 0x90, 0x4e, 0xa8, 0x86, 0xaa, 0xe2, 0x33,
+ 0x14, 0xe2, 0xe5, 0x6f, 0xc1, 0x84, 0xf2, 0x71, 0x5c, 0xc8, 0x05, 0xe9,
+};
+static const unsigned char kat4284_addinpr1[] = {
+ 0xb3, 0x34, 0x20, 0x61, 0x12, 0xbe, 0x7d, 0x8e, 0x06, 0xee, 0xf7, 0x79,
+ 0xd3, 0xab, 0xbe, 0xf7, 0x0b, 0xbf, 0xb6, 0x2a, 0xa1, 0x68, 0x7c, 0x93,
+ 0xee, 0x59, 0x11, 0x25, 0xc9, 0x31, 0x2f, 0x6a, 0xf6, 0x38, 0x9b, 0xe4,
+ 0xe2, 0xfb, 0x78, 0x33, 0x5d, 0x1b, 0xc0, 0x53, 0x56, 0x9f, 0xc7, 0x68,
+};
+static const unsigned char kat4284_entropyinpr2[] = {
+ 0x6a, 0x80, 0x36, 0x75, 0x67, 0x60, 0x95, 0xa5, 0x7e, 0x08, 0x4d, 0x81,
+ 0xd7, 0x74, 0xd7, 0x8d, 0x51, 0x66, 0x41, 0x16, 0x53, 0x43, 0xdc, 0x8f,
+ 0xb8, 0x07, 0x31, 0x14, 0x4d, 0x75, 0x83, 0xe1, 0x6f, 0xa5, 0x48, 0x21,
+ 0xea, 0x5b, 0xdd, 0xdb, 0x38, 0x64, 0x59, 0xd3, 0x6a, 0xfb, 0x16, 0xe1,
+};
+static const unsigned char kat4284_addinpr2[] = {
+ 0xb4, 0xd7, 0x40, 0xdd, 0xa6, 0x16, 0x13, 0xef, 0x19, 0x5f, 0xe8, 0xf8,
+ 0x74, 0x50, 0x79, 0xf5, 0xce, 0x1e, 0xe7, 0xb4, 0xbf, 0x1b, 0xbb, 0x1e,
+ 0x25, 0xd9, 0xf7, 0x52, 0xf2, 0x71, 0xef, 0xe8, 0x3e, 0xdc, 0x1f, 0xc7,
+ 0xce, 0x4c, 0xcc, 0xfc, 0xfb, 0xbd, 0xfe, 0x85, 0xd7, 0x66, 0xe5, 0x9b,
+};
+static const unsigned char kat4284_retbits[] = {
+ 0x43, 0x52, 0x01, 0xc9, 0x27, 0xfe, 0xdd, 0xa6, 0x74, 0x5c, 0x7d, 0x4b,
+ 0x8b, 0x3e, 0xf9, 0x7b, 0xa4, 0x91, 0x60, 0xff, 0xf2, 0xdf, 0xa5, 0x6a,
+ 0xb8, 0xf5, 0x00, 0xfb, 0x91, 0x3c, 0x5d, 0x34, 0xfc, 0xe8, 0x33, 0x17,
+ 0xba, 0x60, 0x58, 0x6c, 0x30, 0xd7, 0x38, 0x0b, 0xab, 0x9a, 0x05, 0x0d,
+ 0x0e, 0x11, 0x1f, 0x0b, 0x38, 0x1f, 0x88, 0x09, 0x8b, 0x98, 0x0c, 0xfa,
+ 0xc0, 0x9d, 0x73, 0x75,
+};
+static const struct drbg_kat_pr_true kat4284_t = {
+ 8, kat4284_entropyin, kat4284_nonce, kat4284_persstr,
+ kat4284_entropyinpr1, kat4284_addinpr1, kat4284_entropyinpr2,
+ kat4284_addinpr2, kat4284_retbits
+};
+static const struct drbg_kat kat4284 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4284_t
+};
+
+static const unsigned char kat4285_entropyin[] = {
+ 0xad, 0xe9, 0x82, 0xb1, 0x13, 0x76, 0x9a, 0x15, 0x46, 0x57, 0x11, 0xcf,
+ 0x71, 0x26, 0x3d, 0xc8, 0x53, 0x9d, 0x75, 0xd4, 0x4d, 0x5d, 0x01, 0xc8,
+ 0xe1, 0xc6, 0xb6, 0xf3, 0xca, 0x0b, 0xb4, 0x29, 0xd2, 0x8a, 0x3d, 0xd0,
+ 0x23, 0x2c, 0xa4, 0xb5, 0x2a, 0x7f, 0x78, 0xb8, 0x1a, 0x39, 0x58, 0x5f,
+};
+static const unsigned char kat4285_nonce[] = {0};
+static const unsigned char kat4285_persstr[] = {0};
+static const unsigned char kat4285_entropyinpr1[] = {
+ 0xfd, 0x17, 0x95, 0x31, 0x5d, 0x41, 0x62, 0x61, 0xf0, 0x43, 0x24, 0xba,
+ 0x0e, 0xaa, 0xac, 0x2f, 0xd8, 0x36, 0x12, 0x5e, 0x78, 0x61, 0x18, 0xbd,
+ 0x4a, 0xd4, 0x85, 0x7d, 0xab, 0xc8, 0xa5, 0x10, 0x09, 0x4a, 0x48, 0xdb,
+ 0x1f, 0xec, 0x1c, 0xfd, 0xef, 0x90, 0x98, 0x07, 0xe1, 0x2d, 0x6a, 0xbf,
+};
+static const unsigned char kat4285_addinpr1[] = {
+ 0xd6, 0xfd, 0x18, 0x0e, 0x56, 0x56, 0x2a, 0x41, 0x6f, 0x1b, 0xd0, 0x0e,
+ 0x39, 0x23, 0xd9, 0x3d, 0xb9, 0xf4, 0x15, 0x4e, 0x2b, 0x58, 0xe5, 0x7c,
+ 0x6e, 0x83, 0x36, 0x44, 0x5d, 0xf3, 0xfe, 0x68, 0x26, 0x51, 0xba, 0xec,
+ 0xd8, 0x43, 0x7f, 0xce, 0x06, 0x7a, 0x46, 0x7b, 0x44, 0x8b, 0xe2, 0x38,
+};
+static const unsigned char kat4285_entropyinpr2[] = {
+ 0x49, 0xae, 0x3e, 0x32, 0x3a, 0x72, 0xac, 0xf2, 0x49, 0x48, 0xd8, 0x52,
+ 0x84, 0x36, 0x19, 0xb5, 0xcc, 0xa9, 0x98, 0x8a, 0x61, 0x1c, 0x90, 0xbb,
+ 0xa2, 0x3f, 0xf4, 0xae, 0xef, 0xec, 0x49, 0xf2, 0xb5, 0xc9, 0x7c, 0x7d,
+ 0xb7, 0x28, 0x1a, 0xa3, 0x92, 0xa4, 0x0e, 0x2d, 0x04, 0x88, 0x73, 0xdc,
+};
+static const unsigned char kat4285_addinpr2[] = {
+ 0x87, 0x53, 0x50, 0x6f, 0x14, 0xd6, 0xda, 0x4a, 0x8f, 0xa7, 0x13, 0x3c,
+ 0x92, 0x0c, 0xfe, 0x5a, 0x67, 0xc4, 0xdc, 0x37, 0x53, 0xa2, 0x85, 0xd7,
+ 0x61, 0xbe, 0xee, 0x41, 0xf6, 0x3a, 0x46, 0x86, 0x40, 0xd2, 0x81, 0x0a,
+ 0x37, 0xd9, 0x52, 0xa6, 0x63, 0x3b, 0xbe, 0x8c, 0xad, 0x02, 0x64, 0x03,
+};
+static const unsigned char kat4285_retbits[] = {
+ 0x32, 0x43, 0xe6, 0x44, 0xfc, 0xc6, 0xaf, 0xf6, 0x93, 0x3e, 0x12, 0x95,
+ 0x86, 0x7f, 0xe6, 0x64, 0x40, 0x17, 0x50, 0xc1, 0x2d, 0xa6, 0x0a, 0xb5,
+ 0x24, 0xc1, 0x5c, 0x3f, 0xc4, 0xe6, 0x01, 0x74, 0xa2, 0x7b, 0xff, 0xd4,
+ 0xb5, 0x51, 0x77, 0xf1, 0xd5, 0x6e, 0xbc, 0x7c, 0xb0, 0x92, 0xff, 0x42,
+ 0xe8, 0x0e, 0x5b, 0x52, 0xc9, 0xcb, 0xc5, 0xd7, 0x0d, 0xee, 0x69, 0x9d,
+ 0x77, 0x27, 0x96, 0x10,
+};
+static const struct drbg_kat_pr_true kat4285_t = {
+ 9, kat4285_entropyin, kat4285_nonce, kat4285_persstr,
+ kat4285_entropyinpr1, kat4285_addinpr1, kat4285_entropyinpr2,
+ kat4285_addinpr2, kat4285_retbits
+};
+static const struct drbg_kat kat4285 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4285_t
+};
+
+static const unsigned char kat4286_entropyin[] = {
+ 0xf4, 0x7f, 0x2f, 0xdf, 0xc9, 0x18, 0xfc, 0xb9, 0x7f, 0x43, 0x27, 0x21,
+ 0xf2, 0xc8, 0x11, 0x0a, 0xaf, 0xa5, 0x3b, 0x54, 0x75, 0xaf, 0x79, 0xd1,
+ 0x98, 0xe1, 0xcd, 0xe9, 0xe2, 0xf5, 0x4e, 0xf4, 0xf2, 0x24, 0xd2, 0xa3,
+ 0xbb, 0x17, 0x06, 0xef, 0x6f, 0x55, 0xc5, 0xae, 0x03, 0x20, 0xb6, 0x42,
+};
+static const unsigned char kat4286_nonce[] = {0};
+static const unsigned char kat4286_persstr[] = {0};
+static const unsigned char kat4286_entropyinpr1[] = {
+ 0x8b, 0xb7, 0x8d, 0x09, 0x2e, 0x84, 0x3d, 0xe9, 0xd1, 0x37, 0x82, 0x4e,
+ 0xb6, 0xdf, 0x04, 0xa7, 0x31, 0x0d, 0x52, 0x05, 0x00, 0x28, 0x99, 0xbd,
+ 0x68, 0x85, 0x02, 0xe5, 0xc0, 0xb0, 0x57, 0xda, 0xb9, 0x29, 0xc4, 0x20,
+ 0xe5, 0x91, 0x7c, 0x55, 0xd8, 0x62, 0xa0, 0x43, 0xe3, 0x2a, 0xec, 0x0b,
+};
+static const unsigned char kat4286_addinpr1[] = {
+ 0xe2, 0x4e, 0x60, 0x9c, 0xf1, 0x87, 0x62, 0xfc, 0xff, 0x59, 0x08, 0x42,
+ 0xb2, 0x86, 0xb9, 0xc1, 0x34, 0x14, 0x40, 0x36, 0xd8, 0x4f, 0x0c, 0x35,
+ 0x2e, 0x16, 0xa0, 0x0b, 0xb0, 0xf2, 0x24, 0x3d, 0x7a, 0x41, 0x82, 0xa5,
+ 0x8d, 0x93, 0x07, 0x4f, 0x49, 0x79, 0x69, 0x4d, 0x49, 0xdd, 0x46, 0xd0,
+};
+static const unsigned char kat4286_entropyinpr2[] = {
+ 0x19, 0x95, 0x66, 0x84, 0xb9, 0xcf, 0x99, 0x36, 0x98, 0xed, 0x43, 0xf0,
+ 0x4c, 0x88, 0xcb, 0x08, 0x9d, 0x5a, 0x1e, 0x5b, 0x99, 0x8d, 0x97, 0x19,
+ 0xd6, 0x77, 0x4a, 0xb0, 0x44, 0xef, 0x54, 0x2f, 0xda, 0x20, 0x89, 0x17,
+ 0x44, 0xcb, 0xa0, 0xe2, 0x47, 0xcd, 0xcb, 0xa5, 0x53, 0xdf, 0xb5, 0xf9,
+};
+static const unsigned char kat4286_addinpr2[] = {
+ 0x2b, 0xdf, 0xb7, 0x27, 0x39, 0xc5, 0x16, 0x70, 0x4b, 0x5a, 0x91, 0x2b,
+ 0xea, 0xc3, 0x62, 0xa2, 0x9c, 0xcf, 0xce, 0x78, 0x46, 0x98, 0x9a, 0x7f,
+ 0xcc, 0x3c, 0x38, 0x1d, 0x20, 0x01, 0x1e, 0x89, 0x18, 0xd6, 0xf5, 0x0e,
+ 0xa7, 0x43, 0x3b, 0xa8, 0x34, 0xca, 0xea, 0x4b, 0xc0, 0x16, 0x54, 0xfb,
+};
+static const unsigned char kat4286_retbits[] = {
+ 0xb4, 0x54, 0x38, 0x31, 0x74, 0x52, 0xc7, 0xf0, 0x43, 0x70, 0x5c, 0xd5,
+ 0x40, 0xe4, 0x9a, 0xfb, 0xf0, 0xfd, 0xb2, 0x13, 0xe7, 0x0c, 0x7a, 0x78,
+ 0x17, 0x47, 0x31, 0x18, 0x38, 0x77, 0x23, 0x10, 0x87, 0xf2, 0x72, 0x74,
+ 0x2f, 0xd6, 0x65, 0x8c, 0x51, 0x8c, 0x01, 0x01, 0xa0, 0xe6, 0xee, 0xaf,
+ 0xc9, 0xe0, 0x8a, 0x62, 0x7b, 0xe1, 0x36, 0x90, 0x48, 0x9d, 0x07, 0x07,
+ 0x32, 0xa9, 0xb0, 0xd0,
+};
+static const struct drbg_kat_pr_true kat4286_t = {
+ 10, kat4286_entropyin, kat4286_nonce, kat4286_persstr,
+ kat4286_entropyinpr1, kat4286_addinpr1, kat4286_entropyinpr2,
+ kat4286_addinpr2, kat4286_retbits
+};
+static const struct drbg_kat kat4286 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4286_t
+};
+
+static const unsigned char kat4287_entropyin[] = {
+ 0x9b, 0xdc, 0x52, 0xc7, 0x36, 0xc0, 0x51, 0x8d, 0x6b, 0xa3, 0x6e, 0x6b,
+ 0xbc, 0x0b, 0x63, 0xd4, 0x9c, 0xcb, 0x61, 0x71, 0xb5, 0x7d, 0xa0, 0xcb,
+ 0x13, 0x71, 0xc7, 0xff, 0xe2, 0x03, 0x27, 0x7e, 0x36, 0x3b, 0x95, 0xb0,
+ 0xcc, 0x05, 0xb8, 0x87, 0x3f, 0x2b, 0x80, 0x4d, 0xdd, 0x95, 0x07, 0xc2,
+};
+static const unsigned char kat4287_nonce[] = {0};
+static const unsigned char kat4287_persstr[] = {0};
+static const unsigned char kat4287_entropyinpr1[] = {
+ 0x10, 0x04, 0x53, 0xf6, 0xd6, 0x36, 0xc6, 0xc4, 0x4d, 0x72, 0x1a, 0xa6,
+ 0x21, 0x6f, 0x00, 0x4e, 0xfd, 0x88, 0x34, 0xed, 0x74, 0xf0, 0xe3, 0x08,
+ 0xd1, 0x74, 0x61, 0x7b, 0xc6, 0x66, 0xe8, 0x35, 0x46, 0xcd, 0x8f, 0x6c,
+ 0x8a, 0x73, 0x12, 0x85, 0x8a, 0x04, 0xc5, 0x81, 0x08, 0x8e, 0x75, 0x3c,
+};
+static const unsigned char kat4287_addinpr1[] = {
+ 0x6e, 0x79, 0x6d, 0x36, 0xdf, 0x6d, 0x9f, 0x6b, 0x09, 0xba, 0x3e, 0xa7,
+ 0xce, 0x89, 0xaa, 0xcf, 0x02, 0x28, 0x14, 0xf4, 0xa7, 0xc8, 0x55, 0xa7,
+ 0x92, 0x0b, 0xb6, 0xf2, 0xb9, 0xb0, 0x59, 0x2d, 0x4b, 0xeb, 0xb3, 0xb5,
+ 0x29, 0x40, 0x8d, 0x05, 0x0e, 0xb6, 0x74, 0xaa, 0x7e, 0x85, 0xa8, 0xd8,
+};
+static const unsigned char kat4287_entropyinpr2[] = {
+ 0x08, 0x8d, 0x05, 0x76, 0x55, 0xdd, 0x9e, 0x4a, 0x92, 0x7e, 0xc9, 0x01,
+ 0xac, 0xa3, 0xa7, 0x53, 0xf0, 0x1b, 0xb4, 0xa5, 0xd1, 0xa3, 0xd9, 0x6a,
+ 0xad, 0x04, 0xec, 0xc9, 0x36, 0x70, 0x94, 0xb5, 0xfd, 0x68, 0x78, 0xa1,
+ 0x29, 0xd7, 0x32, 0x20, 0x47, 0xb2, 0xbd, 0xce, 0xc6, 0x1c, 0x91, 0xad,
+};
+static const unsigned char kat4287_addinpr2[] = {
+ 0x57, 0x3a, 0xad, 0x63, 0xc3, 0xad, 0x08, 0xc5, 0xd7, 0x7b, 0xa7, 0x95,
+ 0xa8, 0xa7, 0x27, 0x86, 0xe4, 0x55, 0xfa, 0x72, 0x3e, 0x79, 0x88, 0x84,
+ 0x73, 0x43, 0x57, 0xe8, 0xf1, 0xda, 0x9f, 0xfb, 0x2d, 0x61, 0x2e, 0xa0,
+ 0x04, 0x4e, 0x6f, 0xc3, 0xad, 0xa4, 0x8d, 0xae, 0x1f, 0x21, 0xf4, 0x1c,
+};
+static const unsigned char kat4287_retbits[] = {
+ 0xb3, 0x28, 0x24, 0x79, 0xd2, 0xde, 0xfa, 0x6d, 0x62, 0x92, 0x90, 0x22,
+ 0x68, 0x22, 0xf4, 0xcf, 0xa7, 0x3b, 0xd0, 0x44, 0xad, 0xdb, 0xef, 0xde,
+ 0x05, 0x52, 0xf2, 0x03, 0xfc, 0x8b, 0x39, 0x36, 0xec, 0x31, 0x8d, 0x33,
+ 0xf5, 0x04, 0xbc, 0xc5, 0xff, 0x37, 0x58, 0x97, 0x8b, 0x1d, 0x28, 0x05,
+ 0x67, 0x45, 0x9a, 0xf5, 0x07, 0x8d, 0xff, 0x40, 0xf7, 0x44, 0xee, 0x96,
+ 0xfe, 0x86, 0xd4, 0x78,
+};
+static const struct drbg_kat_pr_true kat4287_t = {
+ 11, kat4287_entropyin, kat4287_nonce, kat4287_persstr,
+ kat4287_entropyinpr1, kat4287_addinpr1, kat4287_entropyinpr2,
+ kat4287_addinpr2, kat4287_retbits
+};
+static const struct drbg_kat kat4287 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4287_t
+};
+
+static const unsigned char kat4288_entropyin[] = {
+ 0xaa, 0xd1, 0xea, 0x87, 0xc4, 0x81, 0x3f, 0xb7, 0xfc, 0xd1, 0x8e, 0x4a,
+ 0x6c, 0x9b, 0xc0, 0x20, 0x7d, 0xa0, 0xbf, 0x14, 0x72, 0xb9, 0xc0, 0xc2,
+ 0xdf, 0x03, 0x35, 0x23, 0x3c, 0x65, 0x94, 0xcb, 0x23, 0x87, 0xd5, 0xb9,
+ 0xc7, 0x8d, 0xd7, 0x70, 0x41, 0x94, 0x84, 0x9b, 0x95, 0x2f, 0xf4, 0xde,
+};
+static const unsigned char kat4288_nonce[] = {0};
+static const unsigned char kat4288_persstr[] = {0};
+static const unsigned char kat4288_entropyinpr1[] = {
+ 0xb0, 0xca, 0xc0, 0x48, 0x86, 0xa8, 0x57, 0xed, 0xa8, 0x37, 0xfa, 0xb1,
+ 0xb2, 0x56, 0xd0, 0x89, 0xa7, 0x7b, 0x6e, 0x79, 0x0b, 0x6c, 0x5c, 0x10,
+ 0xbc, 0xc1, 0x33, 0xac, 0x25, 0x64, 0x58, 0xa3, 0x95, 0x82, 0x46, 0xda,
+ 0x25, 0x89, 0x00, 0x2c, 0x57, 0xbe, 0x44, 0x33, 0xc6, 0x00, 0x45, 0xb3,
+};
+static const unsigned char kat4288_addinpr1[] = {
+ 0x0e, 0x75, 0x0c, 0x1c, 0xa7, 0x4b, 0x4a, 0xce, 0xaa, 0x3d, 0x29, 0x5c,
+ 0x83, 0x33, 0x39, 0x5f, 0xae, 0xa0, 0xf8, 0x46, 0x3d, 0xc8, 0x51, 0xa6,
+ 0x1b, 0x7b, 0x16, 0xfc, 0xa8, 0x9c, 0x5b, 0x27, 0xcf, 0x21, 0x47, 0x58,
+ 0x7e, 0xfc, 0x73, 0x08, 0x9f, 0x97, 0x8d, 0xed, 0xe6, 0xe0, 0xa0, 0x8a,
+};
+static const unsigned char kat4288_entropyinpr2[] = {
+ 0x59, 0xde, 0x12, 0x2a, 0x53, 0xb4, 0xc3, 0xdd, 0x78, 0x77, 0x4c, 0x7a,
+ 0xe5, 0x20, 0x13, 0xfc, 0x74, 0x16, 0xeb, 0xc6, 0x34, 0x9e, 0x5a, 0xee,
+ 0x12, 0xff, 0x74, 0x55, 0x3d, 0xf2, 0x31, 0x18, 0xf7, 0x71, 0x01, 0xdd,
+ 0x30, 0xf3, 0xdc, 0x56, 0x7d, 0x9a, 0x29, 0xe4, 0xaf, 0x1e, 0x0b, 0x68,
+};
+static const unsigned char kat4288_addinpr2[] = {
+ 0x98, 0xc5, 0xb9, 0x8c, 0x16, 0xc4, 0x3c, 0xcc, 0x19, 0x24, 0xd2, 0x37,
+ 0xb4, 0x5a, 0x4b, 0x82, 0x69, 0xa4, 0x3b, 0x2d, 0xf4, 0x7d, 0x73, 0x56,
+ 0x0b, 0x8b, 0xb8, 0x48, 0x7a, 0x1a, 0xc7, 0x7a, 0x63, 0x15, 0x29, 0xa8,
+ 0x61, 0xb7, 0x3e, 0x8d, 0xf3, 0x7a, 0xcf, 0x24, 0x36, 0x8a, 0x65, 0x5e,
+};
+static const unsigned char kat4288_retbits[] = {
+ 0xe4, 0x87, 0x12, 0xfd, 0xfa, 0x9e, 0x44, 0xd3, 0x83, 0xa2, 0x66, 0x82,
+ 0x11, 0x8d, 0xdc, 0x09, 0x6f, 0xcd, 0x1b, 0x63, 0x07, 0x5a, 0x33, 0x23,
+ 0xd6, 0xf5, 0x87, 0x76, 0x13, 0x71, 0x63, 0x3e, 0x69, 0x22, 0x09, 0xb2,
+ 0x7c, 0xf7, 0xd9, 0xda, 0x91, 0x7d, 0xd1, 0x5b, 0xdf, 0x56, 0x03, 0x60,
+ 0xc9, 0x85, 0x6d, 0xa6, 0x82, 0x2e, 0xbc, 0xf6, 0xa0, 0xb6, 0x89, 0x2a,
+ 0x14, 0x54, 0xd2, 0xb7,
+};
+static const struct drbg_kat_pr_true kat4288_t = {
+ 12, kat4288_entropyin, kat4288_nonce, kat4288_persstr,
+ kat4288_entropyinpr1, kat4288_addinpr1, kat4288_entropyinpr2,
+ kat4288_addinpr2, kat4288_retbits
+};
+static const struct drbg_kat kat4288 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4288_t
+};
+
+static const unsigned char kat4289_entropyin[] = {
+ 0xca, 0xe1, 0x80, 0x0a, 0x14, 0x71, 0x91, 0x37, 0xde, 0x13, 0xce, 0x82,
+ 0xcf, 0x37, 0xc5, 0xa1, 0x54, 0x8f, 0x7f, 0xb1, 0x49, 0xdc, 0x57, 0xa1,
+ 0x95, 0x2c, 0x8f, 0x1f, 0xcd, 0x29, 0xec, 0x2d, 0xcb, 0x16, 0x77, 0x14,
+ 0xb0, 0x6a, 0x31, 0x39, 0x09, 0x8c, 0xf3, 0xf9, 0xe2, 0xe8, 0x7f, 0x1d,
+};
+static const unsigned char kat4289_nonce[] = {0};
+static const unsigned char kat4289_persstr[] = {0};
+static const unsigned char kat4289_entropyinpr1[] = {
+ 0xee, 0xf4, 0x6a, 0x29, 0x3a, 0x48, 0xdb, 0x99, 0xd5, 0x6f, 0x0e, 0xff,
+ 0x12, 0x8e, 0x56, 0x7e, 0x8d, 0x32, 0xeb, 0x4e, 0x14, 0x5f, 0x85, 0x3f,
+ 0x5a, 0x40, 0xd3, 0x67, 0x55, 0xca, 0xcc, 0xae, 0x08, 0xd2, 0x28, 0x9a,
+ 0xa8, 0xca, 0xf8, 0x26, 0xdd, 0x44, 0x2a, 0x71, 0xeb, 0x84, 0x60, 0xb6,
+};
+static const unsigned char kat4289_addinpr1[] = {
+ 0x47, 0xf8, 0xf0, 0x08, 0x15, 0xab, 0xe4, 0x55, 0x54, 0x67, 0x79, 0x86,
+ 0x8d, 0x03, 0x3e, 0xed, 0x33, 0xc3, 0xf4, 0xc1, 0xf9, 0x7e, 0x08, 0x64,
+ 0xf1, 0x61, 0xc1, 0xa2, 0x1c, 0x96, 0x42, 0x3c, 0xf5, 0xc9, 0x49, 0x25,
+ 0x81, 0xcf, 0x06, 0x27, 0xba, 0x74, 0xd7, 0xcb, 0x71, 0x95, 0x16, 0x7d,
+};
+static const unsigned char kat4289_entropyinpr2[] = {
+ 0xe2, 0xe6, 0x1e, 0x0c, 0xb0, 0xae, 0x58, 0xe4, 0x8b, 0x17, 0x89, 0x8d,
+ 0x81, 0xa6, 0x97, 0x19, 0x95, 0x3e, 0x86, 0x34, 0x83, 0xe6, 0xee, 0x3d,
+ 0x96, 0xa5, 0x75, 0xb2, 0x16, 0xc9, 0x43, 0xfc, 0x90, 0xd3, 0x00, 0xbe,
+ 0x87, 0x33, 0x8d, 0x3c, 0xc6, 0x53, 0x87, 0x30, 0x1f, 0xa9, 0xf3, 0x4a,
+};
+static const unsigned char kat4289_addinpr2[] = {
+ 0xf6, 0xe3, 0x02, 0xe9, 0xeb, 0xd0, 0x5e, 0xcb, 0x61, 0xeb, 0x52, 0x24,
+ 0x64, 0xe0, 0x2d, 0x13, 0x9b, 0x07, 0x67, 0x25, 0xce, 0xfd, 0xde, 0x59,
+ 0xf1, 0x62, 0x12, 0x01, 0xa8, 0x0e, 0xef, 0xef, 0x1b, 0xf3, 0xfa, 0x5d,
+ 0x65, 0x5e, 0xca, 0x75, 0x5d, 0xf3, 0x1e, 0x0e, 0xab, 0x49, 0x64, 0x1f,
+};
+static const unsigned char kat4289_retbits[] = {
+ 0x0d, 0x8d, 0x79, 0x67, 0x6b, 0xff, 0x41, 0xad, 0xf2, 0xeb, 0x63, 0x3d,
+ 0x08, 0x25, 0x14, 0xb4, 0x5c, 0x7e, 0x07, 0xb3, 0xe8, 0xb7, 0x2b, 0xa8,
+ 0xaf, 0x64, 0xf2, 0xbe, 0x64, 0xf1, 0x70, 0xa2, 0x86, 0xe3, 0x0d, 0xe8,
+ 0xa5, 0x3a, 0x9f, 0x22, 0xd4, 0x2e, 0x71, 0x18, 0x52, 0x43, 0x68, 0x04,
+ 0xe2, 0xf0, 0xd9, 0x0e, 0x97, 0x4b, 0x96, 0x34, 0x9e, 0x2c, 0x63, 0x0f,
+ 0x13, 0xce, 0xc6, 0x66,
+};
+static const struct drbg_kat_pr_true kat4289_t = {
+ 13, kat4289_entropyin, kat4289_nonce, kat4289_persstr,
+ kat4289_entropyinpr1, kat4289_addinpr1, kat4289_entropyinpr2,
+ kat4289_addinpr2, kat4289_retbits
+};
+static const struct drbg_kat kat4289 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4289_t
+};
+
+static const unsigned char kat4290_entropyin[] = {
+ 0x67, 0x6d, 0xd0, 0x00, 0xba, 0x12, 0xbc, 0xc4, 0x1c, 0xae, 0xf7, 0x44,
+ 0x22, 0xde, 0x16, 0xff, 0x6a, 0x5d, 0x02, 0xe8, 0x99, 0xd9, 0x3d, 0xd7,
+ 0x57, 0xaa, 0x23, 0xd8, 0x77, 0xa4, 0x07, 0x12, 0xc1, 0x16, 0x8c, 0x30,
+ 0xc3, 0x18, 0xdc, 0x61, 0xc4, 0x5d, 0x77, 0x5e, 0x26, 0x89, 0xd3, 0xc4,
+};
+static const unsigned char kat4290_nonce[] = {0};
+static const unsigned char kat4290_persstr[] = {0};
+static const unsigned char kat4290_entropyinpr1[] = {
+ 0xcc, 0xb3, 0xf0, 0xe7, 0x11, 0x5f, 0xb7, 0x22, 0x88, 0xf3, 0x8b, 0xea,
+ 0x76, 0x72, 0xbd, 0x19, 0xb4, 0xdf, 0x06, 0xa6, 0xca, 0xfc, 0x59, 0xa4,
+ 0x97, 0xc7, 0xe3, 0xbb, 0x5e, 0x7e, 0x45, 0xc8, 0xcb, 0xce, 0xbf, 0x09,
+ 0x66, 0x16, 0x1c, 0x96, 0xc0, 0x0a, 0xed, 0xb7, 0xa0, 0x27, 0x73, 0x86,
+};
+static const unsigned char kat4290_addinpr1[] = {
+ 0x6a, 0x5c, 0x30, 0xc8, 0x7f, 0xac, 0x76, 0x8e, 0x99, 0x37, 0x8a, 0x73,
+ 0x7d, 0x47, 0x86, 0x3a, 0xc5, 0x83, 0xdc, 0x54, 0x15, 0xb1, 0x31, 0x92,
+ 0x33, 0xaa, 0xba, 0x79, 0x0f, 0x21, 0x88, 0x21, 0x8f, 0x5b, 0x5b, 0x66,
+ 0xa5, 0x93, 0x2e, 0xae, 0x31, 0x5c, 0xaa, 0x23, 0x61, 0xb1, 0x5c, 0x2e,
+};
+static const unsigned char kat4290_entropyinpr2[] = {
+ 0xca, 0x50, 0x99, 0x74, 0x9a, 0xa7, 0xf1, 0x95, 0xe0, 0xfd, 0xe5, 0x26,
+ 0x2c, 0x56, 0xad, 0x35, 0xc1, 0xd5, 0x20, 0x69, 0x00, 0x1f, 0xbb, 0x65,
+ 0x80, 0xd4, 0x78, 0xf5, 0x0d, 0x1d, 0x69, 0xf6, 0x94, 0x1d, 0x7e, 0xa4,
+ 0xfa, 0x66, 0xe4, 0x74, 0x1c, 0xad, 0x70, 0x1a, 0x67, 0xf9, 0x29, 0x33,
+};
+static const unsigned char kat4290_addinpr2[] = {
+ 0xdb, 0xe9, 0x1f, 0xfe, 0x3b, 0xfb, 0x71, 0x9b, 0xeb, 0xbb, 0x0e, 0x3b,
+ 0xb6, 0x0a, 0xa9, 0x07, 0xca, 0x6e, 0x04, 0x11, 0xc0, 0x5a, 0x7d, 0xed,
+ 0x76, 0x66, 0x74, 0xcd, 0x4d, 0x2b, 0x02, 0x4d, 0xad, 0xe1, 0xdd, 0x3b,
+ 0xab, 0x8e, 0x92, 0xb8, 0x1d, 0x40, 0xfb, 0x00, 0x7a, 0xb9, 0xa8, 0x1f,
+};
+static const unsigned char kat4290_retbits[] = {
+ 0xa1, 0x35, 0x64, 0x1f, 0x33, 0xe2, 0xaa, 0x59, 0x75, 0xa3, 0xbe, 0x70,
+ 0xb0, 0x5e, 0x0b, 0x8c, 0x48, 0x37, 0x2e, 0xf7, 0xc6, 0x76, 0x8e, 0xed,
+ 0x8e, 0x6c, 0x2b, 0x4e, 0x91, 0xd9, 0x15, 0x3e, 0xea, 0xd2, 0x17, 0xea,
+ 0x47, 0xbf, 0x96, 0xb1, 0x41, 0x2a, 0xf4, 0xe0, 0x8c, 0x31, 0x14, 0xd2,
+ 0xc8, 0x5f, 0x2e, 0x29, 0xfb, 0xe9, 0x3c, 0x26, 0x01, 0x46, 0x77, 0xbd,
+ 0x14, 0x26, 0x6e, 0xcf,
+};
+static const struct drbg_kat_pr_true kat4290_t = {
+ 14, kat4290_entropyin, kat4290_nonce, kat4290_persstr,
+ kat4290_entropyinpr1, kat4290_addinpr1, kat4290_entropyinpr2,
+ kat4290_addinpr2, kat4290_retbits
+};
+static const struct drbg_kat kat4290 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 0, 48, 64, &kat4290_t
+};
+
+static const unsigned char kat4291_entropyin[] = {
+ 0x11, 0xb3, 0x24, 0x41, 0xb5, 0x80, 0x03, 0x47, 0x34, 0x7e, 0xd8, 0xba,
+ 0x1d, 0x0b, 0x81, 0xa8, 0x81, 0x0a, 0x9b, 0x7e, 0xb4, 0x14, 0xb1, 0x5d,
+ 0x27, 0x78, 0x1a, 0x99, 0x8f, 0x9c, 0xcc, 0x4b, 0xcc, 0xc8, 0x4a, 0xae,
+ 0x7e, 0xda, 0xa3, 0x82, 0x50, 0x2a, 0x0e, 0x59, 0x76, 0xbf, 0xd7, 0x80,
+};
+static const unsigned char kat4291_nonce[] = {0};
+static const unsigned char kat4291_persstr[] = {
+ 0x7c, 0x91, 0x05, 0xda, 0xba, 0xc2, 0xa1, 0xa5, 0xca, 0xc8, 0x22, 0x7f,
+ 0x46, 0x70, 0xe4, 0x64, 0x00, 0x9f, 0x6a, 0xbe, 0x9a, 0x8a, 0xd6, 0xe1,
+ 0x6c, 0x87, 0xc2, 0x28, 0xbc, 0x8b, 0x70, 0xeb, 0x4e, 0x54, 0x4f, 0x64,
+ 0x3a, 0x27, 0xc7, 0x07, 0x1e, 0xb4, 0xee, 0xfe, 0x32, 0x6c, 0x30, 0x2c,
+};
+static const unsigned char kat4291_entropyinpr1[] = {
+ 0x57, 0xeb, 0x8e, 0x25, 0x99, 0x2d, 0xbd, 0xc3, 0xfc, 0x10, 0x6a, 0x79,
+ 0x01, 0x68, 0xce, 0x67, 0x55, 0x27, 0x07, 0xa1, 0xd7, 0x2e, 0x82, 0x13,
+ 0xf5, 0x8a, 0xb7, 0x08, 0x5a, 0x92, 0x0d, 0x3a, 0xc9, 0xe4, 0x82, 0x58,
+ 0x40, 0x99, 0x55, 0x67, 0x3d, 0x07, 0x46, 0x4b, 0x26, 0x83, 0xdd, 0xb2,
+};
+static const unsigned char kat4291_addinpr1[] = {0};
+static const unsigned char kat4291_entropyinpr2[] = {
+ 0xf4, 0x52, 0xa2, 0x34, 0xce, 0x66, 0x98, 0x85, 0xf3, 0xa2, 0x4e, 0xf6,
+ 0xc8, 0xa8, 0xa2, 0x15, 0x69, 0x0b, 0xba, 0xf5, 0xbb, 0x6c, 0x90, 0xf1,
+ 0xe9, 0x72, 0x53, 0x47, 0xf9, 0x87, 0x29, 0xa3, 0x39, 0x1f, 0x88, 0xd9,
+ 0xe8, 0x2b, 0xf2, 0x9e, 0x18, 0xf4, 0x25, 0x7d, 0x86, 0x5d, 0x10, 0xcf,
+};
+static const unsigned char kat4291_addinpr2[] = {0};
+static const unsigned char kat4291_retbits[] = {
+ 0xe6, 0x4b, 0x1d, 0x53, 0x8e, 0x87, 0x93, 0xd4, 0xba, 0x07, 0x34, 0xa8,
+ 0x34, 0x90, 0x51, 0xdc, 0xd8, 0xee, 0x1d, 0x68, 0xf0, 0x10, 0x96, 0xbc,
+ 0xc9, 0x75, 0x21, 0x50, 0x8c, 0x8f, 0x41, 0x7d, 0xbf, 0xff, 0x25, 0x48,
+ 0xf5, 0xd9, 0x8d, 0x9d, 0x00, 0x2c, 0x3a, 0x8a, 0x64, 0x0b, 0x5e, 0x26,
+ 0x53, 0x3e, 0xae, 0xc0, 0x74, 0xd6, 0xf3, 0xfb, 0xa8, 0x8c, 0xb9, 0x8f,
+ 0xb1, 0xa4, 0x0c, 0x47,
+};
+static const struct drbg_kat_pr_true kat4291_t = {
+ 0, kat4291_entropyin, kat4291_nonce, kat4291_persstr,
+ kat4291_entropyinpr1, kat4291_addinpr1, kat4291_entropyinpr2,
+ kat4291_addinpr2, kat4291_retbits
+};
+static const struct drbg_kat kat4291 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4291_t
+};
+
+static const unsigned char kat4292_entropyin[] = {
+ 0xc3, 0xa6, 0xa1, 0x91, 0xd8, 0x8f, 0xe1, 0x84, 0xf3, 0x5f, 0xad, 0xc0,
+ 0xc7, 0x05, 0xc8, 0x0c, 0xa6, 0x10, 0xf9, 0xf9, 0x7f, 0x3a, 0x27, 0x8f,
+ 0x3e, 0x14, 0x23, 0x47, 0x19, 0x25, 0x96, 0x8c, 0xec, 0x2d, 0x56, 0x5c,
+ 0xb9, 0x21, 0xc9, 0xa5, 0xae, 0xda, 0xba, 0xbe, 0xde, 0x7f, 0xee, 0xff,
+};
+static const unsigned char kat4292_nonce[] = {0};
+static const unsigned char kat4292_persstr[] = {
+ 0xc9, 0x96, 0x40, 0x3d, 0x3d, 0xf3, 0x66, 0x7d, 0x97, 0x0b, 0x0b, 0xd3,
+ 0x9d, 0x4c, 0xdb, 0xcd, 0xfa, 0x80, 0x97, 0xde, 0xd8, 0x7e, 0xa9, 0xc0,
+ 0x5b, 0x68, 0x76, 0x37, 0x10, 0xdc, 0xec, 0xb5, 0x84, 0x08, 0x2f, 0x37,
+ 0xcf, 0x1d, 0x4e, 0xc7, 0x9b, 0xce, 0x9a, 0x1a, 0xcb, 0x90, 0x10, 0xee,
+};
+static const unsigned char kat4292_entropyinpr1[] = {
+ 0x49, 0xca, 0x85, 0x1a, 0x07, 0x6d, 0x69, 0xf4, 0x2b, 0x26, 0x31, 0x58,
+ 0xc8, 0x88, 0x41, 0x8f, 0x89, 0xe6, 0xe2, 0x40, 0x08, 0x14, 0xaa, 0x04,
+ 0x93, 0x85, 0x4d, 0xa3, 0x40, 0xdd, 0x6c, 0x56, 0x27, 0xad, 0x0a, 0x2e,
+ 0x2c, 0x92, 0x1b, 0xec, 0xa9, 0x1f, 0x2a, 0x1e, 0x16, 0xf3, 0x5f, 0x05,
+};
+static const unsigned char kat4292_addinpr1[] = {0};
+static const unsigned char kat4292_entropyinpr2[] = {
+ 0x19, 0x21, 0x87, 0xf4, 0xf0, 0x8a, 0xda, 0x51, 0x6c, 0x69, 0xf7, 0xde,
+ 0xa3, 0x1d, 0x97, 0x5e, 0x42, 0x5c, 0x63, 0x22, 0x80, 0x04, 0xe4, 0xe1,
+ 0xb2, 0x76, 0x5f, 0x99, 0xf7, 0x7d, 0xb5, 0xce, 0x1a, 0xb7, 0x5c, 0x06,
+ 0x36, 0xcb, 0x01, 0x79, 0x1e, 0x26, 0x85, 0xdd, 0xbb, 0x1f, 0xb3, 0x19,
+};
+static const unsigned char kat4292_addinpr2[] = {0};
+static const unsigned char kat4292_retbits[] = {
+ 0xb2, 0x41, 0x1f, 0xd6, 0xb5, 0xb8, 0xe2, 0x71, 0x57, 0x48, 0x53, 0xfd,
+ 0x7e, 0x82, 0x08, 0x7e, 0x2d, 0x8a, 0x3c, 0x4f, 0xf1, 0xfa, 0x79, 0x68,
+ 0x99, 0x77, 0x0c, 0xbf, 0x27, 0x91, 0xb6, 0xc7, 0x28, 0x58, 0x17, 0xac,
+ 0x54, 0x84, 0xec, 0x59, 0x46, 0xa0, 0x39, 0x04, 0xd0, 0x41, 0x11, 0xc3,
+ 0x99, 0x75, 0xf1, 0xc2, 0xdf, 0x3c, 0x80, 0x62, 0x8b, 0xc8, 0xf2, 0xee,
+ 0xe7, 0xf2, 0xa2, 0xe5,
+};
+static const struct drbg_kat_pr_true kat4292_t = {
+ 1, kat4292_entropyin, kat4292_nonce, kat4292_persstr,
+ kat4292_entropyinpr1, kat4292_addinpr1, kat4292_entropyinpr2,
+ kat4292_addinpr2, kat4292_retbits
+};
+static const struct drbg_kat kat4292 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4292_t
+};
+
+static const unsigned char kat4293_entropyin[] = {
+ 0x16, 0x55, 0xda, 0x2c, 0xdd, 0x0a, 0xa3, 0xd9, 0x5c, 0x59, 0x06, 0xbb,
+ 0xeb, 0x2d, 0x9b, 0xcf, 0xb2, 0x9d, 0xb0, 0x85, 0x26, 0x5b, 0xd6, 0x59,
+ 0x06, 0x85, 0x43, 0x50, 0xa9, 0x6f, 0xd1, 0x9e, 0x9d, 0x78, 0x3e, 0x5f,
+ 0xaa, 0xf1, 0xfa, 0xbf, 0x1d, 0x15, 0xa3, 0x6a, 0x4e, 0x28, 0xa3, 0xe6,
+};
+static const unsigned char kat4293_nonce[] = {0};
+static const unsigned char kat4293_persstr[] = {
+ 0xdd, 0x02, 0xc2, 0x9e, 0x91, 0xfb, 0x7f, 0x1c, 0x1f, 0x79, 0x90, 0x7e,
+ 0x57, 0xde, 0x14, 0xca, 0x3d, 0x0b, 0x43, 0xb0, 0x25, 0x25, 0x20, 0x0f,
+ 0x91, 0xb7, 0xce, 0x08, 0x1c, 0xd9, 0x37, 0xec, 0x7f, 0x15, 0x2c, 0xd1,
+ 0xc7, 0x64, 0x45, 0x67, 0x2b, 0x1b, 0x9e, 0xb4, 0x36, 0x0b, 0xd2, 0x59,
+};
+static const unsigned char kat4293_entropyinpr1[] = {
+ 0x9f, 0xd8, 0x0e, 0xf5, 0xe5, 0xc7, 0xee, 0x6b, 0x69, 0x52, 0x8e, 0x2a,
+ 0x7b, 0x15, 0x2e, 0xf3, 0x11, 0x61, 0x69, 0x7e, 0x78, 0x09, 0x16, 0x6e,
+ 0xd4, 0x82, 0x66, 0x1f, 0x6b, 0x65, 0x91, 0x93, 0xd9, 0x55, 0xbc, 0x51,
+ 0xd6, 0x69, 0xa5, 0xca, 0xdf, 0xcd, 0xc1, 0x96, 0xee, 0x60, 0x23, 0x64,
+};
+static const unsigned char kat4293_addinpr1[] = {0};
+static const unsigned char kat4293_entropyinpr2[] = {
+ 0x9b, 0x60, 0x13, 0xa6, 0x4e, 0xa1, 0x6b, 0x6f, 0x75, 0x53, 0x68, 0xdb,
+ 0x24, 0x1a, 0x8f, 0x41, 0xc7, 0xdd, 0x89, 0xce, 0x5f, 0x86, 0x96, 0x84,
+ 0x3f, 0xed, 0x7b, 0xcc, 0xcf, 0x88, 0xc5, 0x8f, 0x9e, 0x77, 0x5c, 0x63,
+ 0xcf, 0x30, 0xb2, 0xc2, 0x48, 0xee, 0x68, 0xd5, 0x6d, 0x49, 0x10, 0xa1,
+};
+static const unsigned char kat4293_addinpr2[] = {0};
+static const unsigned char kat4293_retbits[] = {
+ 0xe6, 0xff, 0xf1, 0xde, 0xb8, 0xb9, 0xa8, 0x67, 0x95, 0xcd, 0x96, 0xfd,
+ 0xb5, 0xdb, 0x3d, 0xb0, 0x13, 0x30, 0xee, 0xa6, 0xa4, 0xc4, 0x04, 0xa6,
+ 0xad, 0xd9, 0xab, 0x01, 0x81, 0x1e, 0xa9, 0x2f, 0xe3, 0x66, 0xe9, 0xc0,
+ 0x9c, 0x84, 0x53, 0x0e, 0x75, 0x5b, 0x67, 0x68, 0xdb, 0xa3, 0x77, 0xcd,
+ 0x10, 0x97, 0x4a, 0x46, 0xf0, 0xaa, 0xad, 0xbf, 0x77, 0x0f, 0x95, 0xe8,
+ 0xae, 0x33, 0x4b, 0xf9,
+};
+static const struct drbg_kat_pr_true kat4293_t = {
+ 2, kat4293_entropyin, kat4293_nonce, kat4293_persstr,
+ kat4293_entropyinpr1, kat4293_addinpr1, kat4293_entropyinpr2,
+ kat4293_addinpr2, kat4293_retbits
+};
+static const struct drbg_kat kat4293 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4293_t
+};
+
+static const unsigned char kat4294_entropyin[] = {
+ 0xb3, 0x43, 0x4a, 0x6e, 0xbd, 0xff, 0xe5, 0x81, 0xf2, 0x7e, 0xf7, 0x6b,
+ 0x7c, 0xb4, 0xad, 0x31, 0x05, 0x47, 0x55, 0xeb, 0x73, 0xce, 0xa5, 0xc6,
+ 0xe5, 0x84, 0xce, 0x17, 0xa2, 0x69, 0x86, 0x8f, 0x1e, 0x7b, 0x0c, 0x8b,
+ 0xb5, 0x16, 0xa9, 0x34, 0x38, 0x0c, 0x96, 0x67, 0xc4, 0x29, 0x7e, 0xb2,
+};
+static const unsigned char kat4294_nonce[] = {0};
+static const unsigned char kat4294_persstr[] = {
+ 0x81, 0xf8, 0x6a, 0x4e, 0xd6, 0x5b, 0x65, 0xb4, 0x1c, 0xc9, 0xc6, 0xdb,
+ 0xd8, 0x3a, 0x5e, 0xf4, 0x1f, 0x4d, 0xd8, 0xd5, 0xaa, 0xad, 0x55, 0xb7,
+ 0xdc, 0x82, 0xe8, 0x75, 0xc1, 0xbe, 0x53, 0x78, 0x80, 0xe0, 0x2b, 0x29,
+ 0xd9, 0x81, 0x1f, 0xee, 0x88, 0x5b, 0xe8, 0x9f, 0xff, 0x7e, 0x29, 0xec,
+};
+static const unsigned char kat4294_entropyinpr1[] = {
+ 0x78, 0x54, 0x0a, 0xa8, 0x36, 0x56, 0x5f, 0x5a, 0x36, 0x93, 0xff, 0xfd,
+ 0x91, 0xd0, 0x65, 0xe9, 0xb7, 0x2e, 0xf4, 0xd0, 0x6d, 0xf9, 0xad, 0xb7,
+ 0x89, 0xbd, 0x9c, 0x3a, 0x80, 0x0d, 0x82, 0xfc, 0xc7, 0x7a, 0x80, 0x3c,
+ 0x0f, 0xc8, 0x1a, 0xb2, 0x4f, 0x01, 0x18, 0x74, 0xe0, 0x40, 0x51, 0x9f,
+};
+static const unsigned char kat4294_addinpr1[] = {0};
+static const unsigned char kat4294_entropyinpr2[] = {
+ 0xda, 0xd2, 0xd8, 0x02, 0xe5, 0xbb, 0x22, 0xf4, 0x9f, 0x60, 0x33, 0x65,
+ 0xe2, 0x06, 0x80, 0x00, 0x63, 0xeb, 0x0b, 0x5e, 0x3f, 0x14, 0xd3, 0x08,
+ 0x12, 0x71, 0xd0, 0x2a, 0x8c, 0xda, 0x03, 0xac, 0x24, 0xd0, 0x3d, 0x80,
+ 0x5a, 0x7c, 0xf8, 0x17, 0x3f, 0xdf, 0x12, 0xa8, 0x4f, 0x21, 0xd5, 0x10,
+};
+static const unsigned char kat4294_addinpr2[] = {0};
+static const unsigned char kat4294_retbits[] = {
+ 0x87, 0x92, 0x3f, 0x78, 0x58, 0x65, 0x24, 0x85, 0x30, 0x99, 0xcf, 0x30,
+ 0x3d, 0x66, 0xf5, 0xd5, 0x43, 0xcb, 0x48, 0xaf, 0x68, 0xac, 0xd9, 0xe7,
+ 0xd4, 0x3f, 0x29, 0xd7, 0xee, 0x9b, 0xa5, 0x7f, 0xc2, 0x8b, 0xd9, 0x82,
+ 0xf6, 0xfb, 0x87, 0xc8, 0xe0, 0x22, 0xfc, 0x3c, 0x41, 0xcf, 0x90, 0x19,
+ 0xbd, 0xf3, 0xb8, 0xda, 0x6c, 0x50, 0x88, 0xf2, 0x68, 0xa4, 0x1a, 0x4a,
+ 0xfe, 0x54, 0x50, 0x09,
+};
+static const struct drbg_kat_pr_true kat4294_t = {
+ 3, kat4294_entropyin, kat4294_nonce, kat4294_persstr,
+ kat4294_entropyinpr1, kat4294_addinpr1, kat4294_entropyinpr2,
+ kat4294_addinpr2, kat4294_retbits
+};
+static const struct drbg_kat kat4294 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4294_t
+};
+
+static const unsigned char kat4295_entropyin[] = {
+ 0x0f, 0xd4, 0x0a, 0x3a, 0x74, 0x0c, 0xd9, 0xab, 0x09, 0x57, 0x3d, 0x73,
+ 0x2c, 0x13, 0xe3, 0x10, 0xc3, 0x5e, 0x98, 0x33, 0x5c, 0xef, 0x71, 0xe2,
+ 0xfb, 0x05, 0x94, 0x39, 0x30, 0xa9, 0x57, 0x41, 0x89, 0x82, 0x23, 0x03,
+ 0x4f, 0x6c, 0x78, 0x7e, 0xa8, 0xf1, 0xbe, 0xb4, 0x7b, 0x0a, 0x9b, 0x6a,
+};
+static const unsigned char kat4295_nonce[] = {0};
+static const unsigned char kat4295_persstr[] = {
+ 0x80, 0x51, 0x34, 0xd7, 0xec, 0x1a, 0x6b, 0x22, 0x43, 0xb3, 0xf0, 0x39,
+ 0x2b, 0xde, 0xee, 0x7d, 0xb7, 0xf7, 0x96, 0x64, 0xeb, 0x43, 0xc4, 0x1a,
+ 0x7b, 0x70, 0xd5, 0xc9, 0xd1, 0x01, 0x7e, 0xa5, 0x51, 0x93, 0x77, 0x1d,
+ 0x9d, 0xfb, 0x5e, 0xcd, 0x82, 0xb6, 0xaf, 0x0f, 0xb4, 0x25, 0xef, 0x0d,
+};
+static const unsigned char kat4295_entropyinpr1[] = {
+ 0x7e, 0x56, 0x35, 0x24, 0xdd, 0xaf, 0x24, 0x2f, 0xfa, 0xf1, 0xf6, 0xa0,
+ 0x7b, 0xf3, 0xd7, 0xf8, 0x05, 0xc6, 0xe9, 0x67, 0x97, 0x7e, 0x22, 0xce,
+ 0xdc, 0xc2, 0x7f, 0xcb, 0x96, 0x15, 0x28, 0x2c, 0x72, 0xc5, 0x90, 0x6c,
+ 0x2f, 0x43, 0x50, 0xe1, 0x2e, 0x60, 0xa5, 0xa7, 0x54, 0xb2, 0xcb, 0xd5,
+};
+static const unsigned char kat4295_addinpr1[] = {0};
+static const unsigned char kat4295_entropyinpr2[] = {
+ 0x95, 0x2d, 0xcf, 0xd7, 0x0f, 0x95, 0xf8, 0xa2, 0x2e, 0xb7, 0xc9, 0xd2,
+ 0x99, 0x51, 0xa9, 0x37, 0xe9, 0x9a, 0xc9, 0xfb, 0x2b, 0x30, 0xc9, 0xce,
+ 0x0e, 0x05, 0xc1, 0x94, 0x89, 0x65, 0x6a, 0x7b, 0x09, 0x01, 0x2b, 0x2c,
+ 0xca, 0x06, 0xa5, 0x1d, 0x40, 0xef, 0x2c, 0x25, 0x5f, 0x6c, 0xab, 0xcd,
+};
+static const unsigned char kat4295_addinpr2[] = {0};
+static const unsigned char kat4295_retbits[] = {
+ 0xb3, 0xbc, 0xa0, 0x9d, 0x48, 0x1e, 0x7d, 0x11, 0x2c, 0xe5, 0x83, 0x26,
+ 0x4a, 0x1c, 0xe2, 0x68, 0x26, 0xe3, 0x39, 0xf7, 0xd4, 0xbb, 0x86, 0x10,
+ 0x6a, 0x65, 0x1a, 0xf5, 0x39, 0x97, 0x52, 0x27, 0x10, 0xff, 0xb9, 0x71,
+ 0x96, 0xef, 0x2d, 0xd3, 0x9e, 0x8d, 0xdd, 0xf9, 0x9d, 0x56, 0x5c, 0x16,
+ 0x62, 0x67, 0x4c, 0x82, 0x37, 0x0a, 0x10, 0x46, 0x29, 0x77, 0x2c, 0xa2,
+ 0xc5, 0x41, 0x4d, 0x5e,
+};
+static const struct drbg_kat_pr_true kat4295_t = {
+ 4, kat4295_entropyin, kat4295_nonce, kat4295_persstr,
+ kat4295_entropyinpr1, kat4295_addinpr1, kat4295_entropyinpr2,
+ kat4295_addinpr2, kat4295_retbits
+};
+static const struct drbg_kat kat4295 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4295_t
+};
+
+static const unsigned char kat4296_entropyin[] = {
+ 0x2e, 0xbf, 0xf3, 0x42, 0xae, 0xf5, 0xea, 0xc5, 0x04, 0xf0, 0xbb, 0x9d,
+ 0x22, 0x26, 0x07, 0x48, 0x30, 0xcd, 0x1b, 0xa2, 0x48, 0xee, 0xcf, 0xf0,
+ 0x58, 0x2c, 0xb8, 0x6c, 0xe8, 0xf7, 0x66, 0x16, 0x8d, 0x69, 0xae, 0x20,
+ 0xc6, 0x9d, 0x1d, 0xfc, 0x02, 0x3b, 0x60, 0x09, 0x89, 0x8c, 0xd2, 0x8c,
+};
+static const unsigned char kat4296_nonce[] = {0};
+static const unsigned char kat4296_persstr[] = {
+ 0x0c, 0xa9, 0xca, 0xed, 0x2b, 0xe8, 0x4f, 0xe3, 0x44, 0x3d, 0x06, 0xd6,
+ 0x58, 0xde, 0x31, 0x93, 0xf9, 0x23, 0x48, 0x50, 0x1d, 0x14, 0x64, 0xc4,
+ 0x78, 0xf1, 0x3d, 0x5b, 0x11, 0x80, 0x01, 0x9f, 0xc2, 0xee, 0x6d, 0x21,
+ 0x90, 0xb6, 0x6f, 0x9e, 0x85, 0xc0, 0x17, 0xb8, 0xb5, 0x5a, 0x60, 0xa5,
+};
+static const unsigned char kat4296_entropyinpr1[] = {
+ 0x87, 0x11, 0x22, 0x34, 0x46, 0xf4, 0x74, 0xbb, 0x06, 0xf3, 0xba, 0x2b,
+ 0xd6, 0xe4, 0xa2, 0xd3, 0xf1, 0x3b, 0x04, 0x80, 0x0a, 0x17, 0xac, 0x04,
+ 0xcf, 0x7c, 0x07, 0x75, 0xe3, 0xa5, 0x96, 0xd6, 0xc7, 0xa3, 0x02, 0x37,
+ 0x27, 0x22, 0xc0, 0xac, 0xe8, 0x57, 0xa1, 0x31, 0x71, 0xcb, 0x88, 0x79,
+};
+static const unsigned char kat4296_addinpr1[] = {0};
+static const unsigned char kat4296_entropyinpr2[] = {
+ 0x7d, 0x57, 0xe6, 0x7c, 0x65, 0x7d, 0x05, 0xdb, 0x4f, 0x42, 0x4d, 0x7b,
+ 0x29, 0xb1, 0xf8, 0x4e, 0x0e, 0xfe, 0xad, 0xa9, 0x06, 0xf0, 0x15, 0x30,
+ 0x78, 0xe8, 0x3c, 0x5c, 0xbd, 0x55, 0x21, 0x65, 0x59, 0x78, 0x05, 0xf1,
+ 0x07, 0x15, 0x93, 0x23, 0xe5, 0x8a, 0xc5, 0x81, 0x6b, 0x28, 0x7d, 0x15,
+};
+static const unsigned char kat4296_addinpr2[] = {0};
+static const unsigned char kat4296_retbits[] = {
+ 0x7f, 0x30, 0x5f, 0xba, 0xc9, 0x11, 0x45, 0xa8, 0x40, 0x20, 0x5b, 0xe1,
+ 0x8a, 0x98, 0x2e, 0x78, 0x80, 0x57, 0x51, 0x22, 0xfd, 0x43, 0x8c, 0x84,
+ 0x81, 0x0b, 0x14, 0xf1, 0x26, 0x97, 0xbf, 0x92, 0x74, 0x22, 0x20, 0x02,
+ 0x9c, 0x1c, 0x36, 0x17, 0x8a, 0x66, 0x69, 0xe4, 0x80, 0xbc, 0x79, 0x04,
+ 0x4b, 0xce, 0x8b, 0xd4, 0x50, 0x57, 0x4d, 0x6b, 0xaf, 0x18, 0x5f, 0x01,
+ 0xe5, 0xc7, 0xee, 0xb2,
+};
+static const struct drbg_kat_pr_true kat4296_t = {
+ 5, kat4296_entropyin, kat4296_nonce, kat4296_persstr,
+ kat4296_entropyinpr1, kat4296_addinpr1, kat4296_entropyinpr2,
+ kat4296_addinpr2, kat4296_retbits
+};
+static const struct drbg_kat kat4296 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4296_t
+};
+
+static const unsigned char kat4297_entropyin[] = {
+ 0x2a, 0x3c, 0x27, 0xfa, 0xa5, 0x45, 0x83, 0xee, 0x6f, 0x3c, 0x24, 0x81,
+ 0x3a, 0xd6, 0xe1, 0x24, 0xfc, 0x32, 0xa4, 0xc3, 0x07, 0xe3, 0x35, 0xbb,
+ 0xa6, 0xf3, 0x4c, 0x8d, 0x66, 0xde, 0x04, 0x35, 0x92, 0xe7, 0x98, 0xb4,
+ 0x38, 0x9e, 0x9a, 0x75, 0x3b, 0x74, 0x9b, 0x75, 0xa3, 0x44, 0x1a, 0x97,
+};
+static const unsigned char kat4297_nonce[] = {0};
+static const unsigned char kat4297_persstr[] = {
+ 0x4e, 0xaf, 0x68, 0x42, 0x05, 0x9d, 0x1c, 0x70, 0x3a, 0xad, 0x56, 0x06,
+ 0xe2, 0xd3, 0xe7, 0xbb, 0x61, 0x8b, 0x04, 0xc2, 0xca, 0xc4, 0xc5, 0x9b,
+ 0x44, 0x26, 0x78, 0xb1, 0x0e, 0x69, 0x21, 0xb1, 0x6b, 0x3c, 0x84, 0x30,
+ 0xa8, 0xd3, 0xff, 0x99, 0x54, 0x93, 0xf1, 0xe5, 0x1c, 0x7b, 0x42, 0xb5,
+};
+static const unsigned char kat4297_entropyinpr1[] = {
+ 0xda, 0x0c, 0x67, 0x28, 0x4a, 0x0f, 0x0a, 0x9b, 0x12, 0xc9, 0xa8, 0xd9,
+ 0xcf, 0x93, 0x43, 0x75, 0xbc, 0xec, 0x05, 0xc8, 0xac, 0x68, 0x35, 0xa3,
+ 0x7f, 0x17, 0x9b, 0x76, 0xcd, 0xa8, 0x91, 0xbc, 0x48, 0xfe, 0x0c, 0xde,
+ 0x82, 0xb6, 0x73, 0xd2, 0xba, 0x9a, 0xef, 0x3d, 0x90, 0x27, 0x0d, 0x2e,
+};
+static const unsigned char kat4297_addinpr1[] = {0};
+static const unsigned char kat4297_entropyinpr2[] = {
+ 0x83, 0x5b, 0x75, 0x29, 0x46, 0x00, 0xa3, 0xc6, 0xd2, 0xb0, 0xac, 0x46,
+ 0x3f, 0xc6, 0x6c, 0xba, 0x57, 0x3d, 0x63, 0x17, 0x70, 0x3a, 0xfa, 0x75,
+ 0x88, 0x90, 0x38, 0xae, 0x6d, 0x14, 0x0d, 0xac, 0xf8, 0x20, 0x83, 0x69,
+ 0x94, 0x6d, 0xf9, 0x55, 0x4e, 0x6f, 0xf4, 0x27, 0xb0, 0xf7, 0xdd, 0xf8,
+};
+static const unsigned char kat4297_addinpr2[] = {0};
+static const unsigned char kat4297_retbits[] = {
+ 0xb8, 0x69, 0x18, 0xec, 0x64, 0x51, 0x8e, 0x68, 0xd4, 0xa2, 0x83, 0xab,
+ 0x15, 0x19, 0xec, 0xfe, 0x99, 0xfc, 0x12, 0x83, 0xb5, 0xfa, 0xd7, 0x9b,
+ 0x24, 0x69, 0x42, 0xcd, 0xc0, 0xc9, 0xb4, 0x3d, 0xea, 0xb9, 0x40, 0x9a,
+ 0x28, 0x67, 0xa4, 0x16, 0xb7, 0x49, 0xec, 0x80, 0xe7, 0xba, 0xc2, 0x5e,
+ 0x84, 0x70, 0x45, 0x44, 0x47, 0xab, 0xba, 0x9a, 0x81, 0x6c, 0x61, 0xce,
+ 0xed, 0x83, 0x05, 0x26,
+};
+static const struct drbg_kat_pr_true kat4297_t = {
+ 6, kat4297_entropyin, kat4297_nonce, kat4297_persstr,
+ kat4297_entropyinpr1, kat4297_addinpr1, kat4297_entropyinpr2,
+ kat4297_addinpr2, kat4297_retbits
+};
+static const struct drbg_kat kat4297 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4297_t
+};
+
+static const unsigned char kat4298_entropyin[] = {
+ 0x8c, 0xc1, 0xfe, 0x7b, 0x81, 0xca, 0xa3, 0x5c, 0x1c, 0xd5, 0xc5, 0x78,
+ 0x6d, 0xe5, 0x0d, 0x7e, 0xa3, 0xf7, 0x64, 0x15, 0xfb, 0x2f, 0xb8, 0xed,
+ 0x07, 0x21, 0x65, 0xc2, 0x41, 0xc1, 0x34, 0x71, 0xfa, 0x7d, 0x5d, 0x3b,
+ 0x56, 0x17, 0x16, 0xfb, 0xc4, 0xf8, 0x60, 0x45, 0xc6, 0xfb, 0x49, 0x8f,
+};
+static const unsigned char kat4298_nonce[] = {0};
+static const unsigned char kat4298_persstr[] = {
+ 0x10, 0xbe, 0xc5, 0xf7, 0x24, 0x5b, 0xdb, 0xaa, 0x8e, 0x25, 0xf6, 0xd3,
+ 0x30, 0x71, 0x7a, 0x3f, 0xf9, 0x9b, 0x37, 0x4c, 0x83, 0x07, 0x1d, 0xf8,
+ 0x2e, 0x9e, 0x94, 0x22, 0x08, 0xa8, 0xdb, 0x74, 0xb4, 0x80, 0x76, 0x80,
+ 0xc8, 0x8a, 0x5f, 0xe7, 0x1c, 0xff, 0x72, 0xaf, 0x43, 0xc7, 0x91, 0xb8,
+};
+static const unsigned char kat4298_entropyinpr1[] = {
+ 0xf7, 0xb1, 0x00, 0xc5, 0x69, 0x5b, 0x9d, 0x41, 0xe6, 0x20, 0xaa, 0x5a,
+ 0x7a, 0x7c, 0xca, 0x07, 0xbb, 0x13, 0xd3, 0x24, 0x47, 0xdb, 0xf0, 0x4d,
+ 0x82, 0x8e, 0x16, 0xe4, 0x3b, 0xef, 0x1e, 0xbe, 0xf7, 0xd0, 0x0a, 0xb4,
+ 0x37, 0x3b, 0x4c, 0x8f, 0x20, 0xe4, 0xbf, 0xfb, 0x61, 0x88, 0x8d, 0xb9,
+};
+static const unsigned char kat4298_addinpr1[] = {0};
+static const unsigned char kat4298_entropyinpr2[] = {
+ 0xf5, 0xb6, 0xd8, 0xce, 0x7d, 0x22, 0x90, 0xe2, 0x06, 0xb2, 0x99, 0xd6,
+ 0x59, 0xa6, 0xf1, 0xa6, 0x4e, 0xf8, 0x47, 0xec, 0x9b, 0x2b, 0x5f, 0x29,
+ 0xc6, 0x93, 0x1b, 0xa7, 0x4f, 0xf2, 0xe2, 0x69, 0x72, 0xda, 0x4a, 0x1b,
+ 0x43, 0xb1, 0xae, 0xee, 0x94, 0xcd, 0xf1, 0xb2, 0x11, 0x49, 0x04, 0x64,
+};
+static const unsigned char kat4298_addinpr2[] = {0};
+static const unsigned char kat4298_retbits[] = {
+ 0xbc, 0x22, 0x55, 0x2a, 0x9f, 0x89, 0x10, 0x9b, 0xe2, 0x1e, 0x0b, 0x7a,
+ 0x6b, 0x92, 0x69, 0x04, 0xa5, 0x78, 0x9c, 0xde, 0xb4, 0xb4, 0x26, 0x6b,
+ 0xd7, 0x53, 0x7c, 0x05, 0xd6, 0x56, 0x1b, 0xae, 0x80, 0x9e, 0xc4, 0x78,
+ 0x03, 0xd6, 0x63, 0xba, 0x48, 0x46, 0xd2, 0x28, 0x3c, 0xf5, 0x31, 0x3d,
+ 0xef, 0xf9, 0x05, 0x51, 0xcd, 0x1d, 0xae, 0xf3, 0xf9, 0xcb, 0x0e, 0x7f,
+ 0xd9, 0x36, 0x0d, 0x83,
+};
+static const struct drbg_kat_pr_true kat4298_t = {
+ 7, kat4298_entropyin, kat4298_nonce, kat4298_persstr,
+ kat4298_entropyinpr1, kat4298_addinpr1, kat4298_entropyinpr2,
+ kat4298_addinpr2, kat4298_retbits
+};
+static const struct drbg_kat kat4298 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4298_t
+};
+
+static const unsigned char kat4299_entropyin[] = {
+ 0x06, 0x0f, 0x8a, 0x56, 0xc5, 0x13, 0x8b, 0x71, 0x9f, 0x98, 0xd2, 0xca,
+ 0x3e, 0x25, 0x86, 0x6b, 0x23, 0xf1, 0x94, 0xbe, 0x2b, 0xc6, 0x9f, 0xbc,
+ 0x8b, 0x46, 0x75, 0x5f, 0x27, 0x02, 0x18, 0x72, 0x4d, 0xe0, 0x22, 0x18,
+ 0xa4, 0xd7, 0xd7, 0x6e, 0xd4, 0xa0, 0x5f, 0x80, 0x6c, 0xca, 0xad, 0x0b,
+};
+static const unsigned char kat4299_nonce[] = {0};
+static const unsigned char kat4299_persstr[] = {
+ 0x98, 0x0d, 0x41, 0xad, 0xa5, 0x6e, 0x74, 0x75, 0xee, 0xff, 0xc6, 0x2c,
+ 0xce, 0x6c, 0x0e, 0x8f, 0x2c, 0x16, 0x19, 0x37, 0xfa, 0x58, 0x67, 0x7e,
+ 0xd6, 0xd3, 0xd9, 0x6b, 0x08, 0x63, 0x3c, 0x2c, 0xf6, 0x67, 0xe1, 0x92,
+ 0x73, 0x3d, 0x97, 0x13, 0x85, 0x11, 0x09, 0xdc, 0xf1, 0x36, 0x6c, 0x01,
+};
+static const unsigned char kat4299_entropyinpr1[] = {
+ 0xdc, 0x66, 0xae, 0x4f, 0xda, 0xa6, 0x6a, 0x1b, 0xca, 0x4c, 0x98, 0x30,
+ 0x04, 0x85, 0x3e, 0x7c, 0x08, 0x07, 0x5c, 0x5f, 0xca, 0xdc, 0xc8, 0x75,
+ 0x63, 0xad, 0x2a, 0xe9, 0xc6, 0x25, 0x32, 0x43, 0x94, 0x60, 0xf9, 0x58,
+ 0xe4, 0x4a, 0x6f, 0x9b, 0x0b, 0x80, 0x11, 0xa9, 0x60, 0xad, 0xcf, 0xd1,
+};
+static const unsigned char kat4299_addinpr1[] = {0};
+static const unsigned char kat4299_entropyinpr2[] = {
+ 0x95, 0x10, 0xe7, 0x4d, 0x12, 0xf8, 0xa1, 0xb1, 0x1c, 0x54, 0x4c, 0xbc,
+ 0x4d, 0xa1, 0x80, 0x3f, 0x19, 0x47, 0xf7, 0x31, 0x11, 0x10, 0x18, 0x4f,
+ 0x66, 0x7f, 0x58, 0xe1, 0x53, 0xdb, 0x3f, 0xde, 0x87, 0xfb, 0x5d, 0x77,
+ 0xaa, 0x99, 0xdd, 0x27, 0x27, 0x83, 0xb3, 0x8b, 0x9f, 0xa9, 0xa8, 0x91,
+};
+static const unsigned char kat4299_addinpr2[] = {0};
+static const unsigned char kat4299_retbits[] = {
+ 0xc0, 0x50, 0x6d, 0xeb, 0xc2, 0x8c, 0x7c, 0x81, 0x72, 0xd3, 0x21, 0xa3,
+ 0xd7, 0xd6, 0xe9, 0xec, 0xa4, 0xac, 0xb9, 0x6c, 0xaa, 0x41, 0xa5, 0x43,
+ 0x7a, 0xcf, 0x48, 0xc1, 0x40, 0x10, 0x22, 0xd1, 0x4e, 0x19, 0xab, 0xe6,
+ 0x48, 0x35, 0x7a, 0x81, 0x5d, 0xf8, 0x71, 0x61, 0x6d, 0x0c, 0x60, 0xe7,
+ 0x69, 0x8b, 0x01, 0x89, 0xfc, 0x6c, 0x2d, 0xf6, 0x9f, 0xf0, 0x9f, 0x9d,
+ 0x63, 0x85, 0x72, 0x16,
+};
+static const struct drbg_kat_pr_true kat4299_t = {
+ 8, kat4299_entropyin, kat4299_nonce, kat4299_persstr,
+ kat4299_entropyinpr1, kat4299_addinpr1, kat4299_entropyinpr2,
+ kat4299_addinpr2, kat4299_retbits
+};
+static const struct drbg_kat kat4299 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4299_t
+};
+
+static const unsigned char kat4300_entropyin[] = {
+ 0x46, 0xf5, 0xe2, 0x33, 0x03, 0xbd, 0x0a, 0xa0, 0x98, 0x84, 0x43, 0xf0,
+ 0x3b, 0xec, 0xd4, 0x03, 0xdc, 0x05, 0x9b, 0x10, 0x5b, 0x2f, 0x4a, 0x06,
+ 0xdf, 0xc1, 0xae, 0xba, 0x34, 0xb1, 0x1b, 0xcc, 0xc9, 0x76, 0xa8, 0xdf,
+ 0x37, 0xb9, 0xf1, 0xe5, 0x2e, 0x8e, 0x5e, 0xfd, 0xfb, 0x04, 0x71, 0x1b,
+};
+static const unsigned char kat4300_nonce[] = {0};
+static const unsigned char kat4300_persstr[] = {
+ 0xfa, 0xa1, 0x6e, 0xbc, 0x9c, 0x16, 0xea, 0xca, 0x52, 0x6e, 0xb2, 0xa5,
+ 0x1e, 0xa2, 0x9d, 0x6d, 0x8c, 0xeb, 0x73, 0x9a, 0xe0, 0xad, 0x6b, 0x4c,
+ 0x48, 0x27, 0x66, 0x03, 0x55, 0x7b, 0xf0, 0x2f, 0xac, 0x8e, 0x65, 0xc8,
+ 0x8f, 0x72, 0x77, 0x1e, 0xe4, 0x4b, 0x2c, 0x96, 0x74, 0x28, 0x3c, 0x3a,
+};
+static const unsigned char kat4300_entropyinpr1[] = {
+ 0x51, 0xbf, 0x8f, 0x5d, 0xcc, 0xaf, 0x17, 0xaf, 0x2a, 0x72, 0xe4, 0xae,
+ 0x06, 0x23, 0xaf, 0x4a, 0x80, 0x2d, 0x77, 0x2e, 0xeb, 0x56, 0xbd, 0xb7,
+ 0xb2, 0x0d, 0xba, 0x83, 0x9e, 0xc2, 0x38, 0x58, 0xfd, 0xbd, 0x83, 0xd3,
+ 0x15, 0xc3, 0x21, 0xba, 0x1e, 0x15, 0x7b, 0x75, 0xfd, 0x2d, 0x38, 0x8e,
+};
+static const unsigned char kat4300_addinpr1[] = {0};
+static const unsigned char kat4300_entropyinpr2[] = {
+ 0xc4, 0x08, 0xb8, 0xad, 0x63, 0xdc, 0x65, 0x77, 0x91, 0x52, 0xed, 0x79,
+ 0xea, 0xc4, 0x28, 0x2e, 0x26, 0xb8, 0xa1, 0x94, 0xf3, 0xc6, 0xae, 0xad,
+ 0x7e, 0x4b, 0x36, 0xc3, 0x98, 0x8c, 0xb3, 0x18, 0xc7, 0x98, 0x2b, 0x7c,
+ 0x15, 0x44, 0x4e, 0x82, 0x7f, 0x8e, 0x1e, 0xbe, 0x4a, 0xf9, 0xde, 0x9e,
+};
+static const unsigned char kat4300_addinpr2[] = {0};
+static const unsigned char kat4300_retbits[] = {
+ 0x2b, 0x78, 0x21, 0x3f, 0x52, 0xdb, 0x9f, 0x63, 0x56, 0x03, 0xee, 0x17,
+ 0xed, 0x2f, 0xa2, 0x34, 0x54, 0xa9, 0x4e, 0xf2, 0xc5, 0xcf, 0xa2, 0x25,
+ 0xa8, 0x10, 0x53, 0x0a, 0xc8, 0x63, 0x13, 0x09, 0x79, 0xfd, 0x46, 0x46,
+ 0x09, 0x42, 0xe0, 0x66, 0x3c, 0xd6, 0x2c, 0x20, 0x8c, 0xd2, 0x41, 0x60,
+ 0x0e, 0x0c, 0xc3, 0xac, 0x0f, 0xcf, 0xf5, 0xf4, 0xf1, 0x26, 0x81, 0x32,
+ 0xea, 0x55, 0xf8, 0xc6,
+};
+static const struct drbg_kat_pr_true kat4300_t = {
+ 9, kat4300_entropyin, kat4300_nonce, kat4300_persstr,
+ kat4300_entropyinpr1, kat4300_addinpr1, kat4300_entropyinpr2,
+ kat4300_addinpr2, kat4300_retbits
+};
+static const struct drbg_kat kat4300 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4300_t
+};
+
+static const unsigned char kat4301_entropyin[] = {
+ 0xc3, 0x55, 0xfb, 0x1f, 0xed, 0xbd, 0xae, 0x30, 0x02, 0x42, 0x57, 0x2c,
+ 0xa8, 0x61, 0x14, 0xa1, 0xbc, 0x36, 0x8f, 0x6a, 0xf7, 0x41, 0xeb, 0x2e,
+ 0x18, 0xdf, 0xfb, 0xfd, 0x42, 0x39, 0x11, 0x58, 0x14, 0xf2, 0x63, 0xc3,
+ 0xfe, 0xfa, 0xd0, 0x27, 0x20, 0x57, 0x62, 0x9d, 0x0c, 0x98, 0x17, 0xb4,
+};
+static const unsigned char kat4301_nonce[] = {0};
+static const unsigned char kat4301_persstr[] = {
+ 0x1d, 0x61, 0x53, 0xbd, 0xa4, 0xf5, 0x03, 0x0f, 0x41, 0x6d, 0x59, 0xc1,
+ 0x5a, 0x6f, 0x3f, 0x7f, 0x63, 0x00, 0x09, 0x84, 0xec, 0xfc, 0xbc, 0xc7,
+ 0x09, 0xaa, 0x7c, 0x0f, 0xdd, 0xa4, 0x24, 0x56, 0x4e, 0x0d, 0x82, 0x6a,
+ 0x5c, 0xa7, 0x3c, 0x9f, 0x08, 0xe8, 0x29, 0x63, 0xb4, 0x99, 0x60, 0x54,
+};
+static const unsigned char kat4301_entropyinpr1[] = {
+ 0xb6, 0x90, 0x54, 0x4d, 0xbe, 0xdc, 0x86, 0xd0, 0x8f, 0x5b, 0x1d, 0x56,
+ 0x4a, 0x43, 0xbd, 0xcb, 0xb0, 0x42, 0xd9, 0xf7, 0x35, 0xdd, 0xd3, 0x71,
+ 0x59, 0xd0, 0x05, 0x18, 0xc6, 0x52, 0xc8, 0xd2, 0x54, 0x59, 0x58, 0x3c,
+ 0x82, 0xa6, 0x86, 0x14, 0xac, 0x67, 0xee, 0x6d, 0x7f, 0xa6, 0x0d, 0x59,
+};
+static const unsigned char kat4301_addinpr1[] = {0};
+static const unsigned char kat4301_entropyinpr2[] = {
+ 0x87, 0x97, 0x8d, 0x77, 0x5b, 0xd0, 0x7c, 0x4e, 0x01, 0xce, 0xb7, 0xa2,
+ 0x6e, 0xc9, 0x2f, 0x18, 0x74, 0x46, 0xd6, 0x23, 0x4f, 0x83, 0x11, 0x80,
+ 0x69, 0xa8, 0xfb, 0xa6, 0xea, 0x15, 0x02, 0x26, 0xd8, 0x2f, 0xba, 0x38,
+ 0xa5, 0x82, 0xa9, 0x91, 0xaf, 0x7d, 0x2a, 0xce, 0x5b, 0x71, 0x40, 0xe2,
+};
+static const unsigned char kat4301_addinpr2[] = {0};
+static const unsigned char kat4301_retbits[] = {
+ 0xa9, 0x98, 0xc5, 0x49, 0xc7, 0x0b, 0x31, 0x82, 0xbd, 0xf2, 0x25, 0x3b,
+ 0x0e, 0xaa, 0xc2, 0x8a, 0x5e, 0x9e, 0x8b, 0x5d, 0x85, 0x69, 0x79, 0xb8,
+ 0x43, 0x06, 0x30, 0x4e, 0x1c, 0x69, 0x2c, 0x6a, 0x86, 0xd9, 0x08, 0x8f,
+ 0x4a, 0x53, 0x9c, 0xcc, 0x4d, 0x97, 0x9c, 0x53, 0x8f, 0x80, 0x99, 0xca,
+ 0x41, 0x6e, 0x0c, 0x2b, 0xe0, 0xe7, 0xed, 0x86, 0xcd, 0x8c, 0x63, 0xcb,
+ 0x84, 0xbd, 0x0d, 0x06,
+};
+static const struct drbg_kat_pr_true kat4301_t = {
+ 10, kat4301_entropyin, kat4301_nonce, kat4301_persstr,
+ kat4301_entropyinpr1, kat4301_addinpr1, kat4301_entropyinpr2,
+ kat4301_addinpr2, kat4301_retbits
+};
+static const struct drbg_kat kat4301 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4301_t
+};
+
+static const unsigned char kat4302_entropyin[] = {
+ 0xed, 0xd6, 0x1c, 0x76, 0x92, 0x52, 0xce, 0x8b, 0xc4, 0xed, 0x1d, 0x1a,
+ 0xa9, 0xea, 0x47, 0xc6, 0xfd, 0x87, 0x99, 0x73, 0x3e, 0x44, 0x00, 0xf7,
+ 0xdb, 0x75, 0xb6, 0x39, 0xd6, 0x44, 0x36, 0x5b, 0x1d, 0x2d, 0x06, 0xf4,
+ 0x19, 0x80, 0x9d, 0xc0, 0x17, 0x9f, 0x84, 0xc3, 0x4b, 0xc9, 0xa9, 0x57,
+};
+static const unsigned char kat4302_nonce[] = {0};
+static const unsigned char kat4302_persstr[] = {
+ 0x2e, 0xe1, 0x8e, 0xd0, 0xd5, 0x33, 0xe9, 0x42, 0x75, 0xb9, 0x81, 0x7c,
+ 0xb3, 0xe3, 0x65, 0xde, 0xe1, 0x6e, 0x05, 0x56, 0x0d, 0x98, 0x83, 0x84,
+ 0x03, 0x2e, 0xc4, 0x2e, 0xbb, 0x19, 0xc7, 0xce, 0x26, 0x9b, 0x14, 0xbe,
+ 0x8f, 0xdb, 0xec, 0x1a, 0x65, 0x09, 0x6f, 0x8d, 0xaa, 0x92, 0xb8, 0x0b,
+};
+static const unsigned char kat4302_entropyinpr1[] = {
+ 0x7a, 0x17, 0xf8, 0x7b, 0x47, 0xc0, 0x66, 0x1b, 0x54, 0xf4, 0x40, 0x8c,
+ 0xed, 0x12, 0x94, 0x37, 0x40, 0x8b, 0xed, 0x98, 0x0b, 0x45, 0x18, 0xa6,
+ 0xad, 0xae, 0x87, 0x03, 0x1e, 0x3a, 0x76, 0x76, 0x35, 0x11, 0xbe, 0x79,
+ 0xf4, 0xbb, 0xf1, 0x25, 0xe7, 0xe2, 0x79, 0x4c, 0xc2, 0xac, 0x7f, 0x4f,
+};
+static const unsigned char kat4302_addinpr1[] = {0};
+static const unsigned char kat4302_entropyinpr2[] = {
+ 0xa6, 0x2c, 0x44, 0x49, 0x4a, 0x9a, 0x7d, 0x2e, 0x39, 0x85, 0x19, 0x66,
+ 0xe8, 0xe4, 0x36, 0x26, 0xfd, 0x62, 0xd1, 0xec, 0x2b, 0xa7, 0xb9, 0x04,
+ 0x8d, 0xbe, 0xde, 0x23, 0x94, 0xe2, 0x38, 0x2f, 0xa9, 0xd2, 0xa4, 0xc4,
+ 0xed, 0x7c, 0x49, 0x61, 0x5b, 0x5f, 0xa5, 0x01, 0xd9, 0xc9, 0x64, 0x8d,
+};
+static const unsigned char kat4302_addinpr2[] = {0};
+static const unsigned char kat4302_retbits[] = {
+ 0x36, 0xf5, 0x6b, 0x86, 0x26, 0x7a, 0x78, 0x3f, 0xc9, 0xd3, 0xb5, 0xe6,
+ 0x6c, 0x0b, 0x4f, 0x15, 0x5b, 0x11, 0x52, 0xc5, 0x0b, 0xfa, 0x0d, 0x39,
+ 0xe5, 0x4b, 0xa9, 0x83, 0x75, 0x97, 0x09, 0x4e, 0xd8, 0xef, 0xfc, 0x80,
+ 0x52, 0xe3, 0x8a, 0xe4, 0xb6, 0x92, 0x9f, 0x71, 0x87, 0x00, 0x4b, 0xeb,
+ 0x30, 0xb5, 0x83, 0xd4, 0x7b, 0x89, 0x2c, 0xbd, 0xac, 0x8e, 0x27, 0x99,
+ 0x55, 0x47, 0xdf, 0xcb,
+};
+static const struct drbg_kat_pr_true kat4302_t = {
+ 11, kat4302_entropyin, kat4302_nonce, kat4302_persstr,
+ kat4302_entropyinpr1, kat4302_addinpr1, kat4302_entropyinpr2,
+ kat4302_addinpr2, kat4302_retbits
+};
+static const struct drbg_kat kat4302 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4302_t
+};
+
+static const unsigned char kat4303_entropyin[] = {
+ 0xb1, 0x49, 0x2c, 0xf3, 0x03, 0x6b, 0xf4, 0x2e, 0x20, 0x19, 0x46, 0x6d,
+ 0x81, 0x80, 0x92, 0x52, 0x8a, 0x24, 0x78, 0x51, 0xd3, 0x08, 0x04, 0x14,
+ 0x69, 0x9b, 0x94, 0x2d, 0x67, 0xea, 0x79, 0x5f, 0x85, 0x06, 0x86, 0x65,
+ 0x75, 0x4f, 0xe3, 0x5e, 0x7b, 0x04, 0x06, 0xd5, 0x4e, 0x69, 0x41, 0x68,
+};
+static const unsigned char kat4303_nonce[] = {0};
+static const unsigned char kat4303_persstr[] = {
+ 0xce, 0xae, 0xc0, 0x8a, 0x19, 0xf8, 0x2a, 0xc6, 0x1f, 0x57, 0x1a, 0x48,
+ 0xcc, 0x48, 0xdb, 0x10, 0xe1, 0x9b, 0x2e, 0xf1, 0x5a, 0x91, 0xe0, 0x74,
+ 0xf5, 0x45, 0xf8, 0x05, 0x55, 0x91, 0x4e, 0x4b, 0x14, 0x64, 0x06, 0xca,
+ 0xd8, 0x11, 0x24, 0xbc, 0x6b, 0xd5, 0x50, 0xf4, 0xe4, 0x74, 0x80, 0xe5,
+};
+static const unsigned char kat4303_entropyinpr1[] = {
+ 0x01, 0x2a, 0xca, 0x64, 0xe0, 0x27, 0x00, 0x10, 0x1b, 0x45, 0x36, 0x81,
+ 0xe2, 0x56, 0xe3, 0xab, 0x86, 0xa4, 0xa6, 0xea, 0x64, 0x76, 0x4f, 0x92,
+ 0x0c, 0xe1, 0xdf, 0xb7, 0x04, 0x05, 0x20, 0x0d, 0x03, 0x37, 0x86, 0x0d,
+ 0x8f, 0xdd, 0xbb, 0x8f, 0x74, 0x83, 0x7e, 0x57, 0xd8, 0xf4, 0x73, 0xa5,
+};
+static const unsigned char kat4303_addinpr1[] = {0};
+static const unsigned char kat4303_entropyinpr2[] = {
+ 0x88, 0xa8, 0xf0, 0xc3, 0xb8, 0x2b, 0x25, 0xa2, 0xdb, 0x28, 0x0b, 0x0e,
+ 0x8f, 0x80, 0x65, 0x6b, 0x3e, 0x49, 0x93, 0xb8, 0x93, 0xba, 0x80, 0x20,
+ 0x00, 0xb8, 0xcd, 0x92, 0xdf, 0x1d, 0x05, 0x42, 0xc8, 0x76, 0xcc, 0x8d,
+ 0x3c, 0x91, 0x79, 0x83, 0xdc, 0xab, 0x6f, 0xbf, 0xeb, 0x1b, 0x2b, 0xff,
+};
+static const unsigned char kat4303_addinpr2[] = {0};
+static const unsigned char kat4303_retbits[] = {
+ 0x9e, 0x7f, 0xe5, 0x3c, 0xde, 0xbe, 0xc6, 0xdc, 0xbd, 0xce, 0xa9, 0xef,
+ 0xef, 0x1e, 0xea, 0x2e, 0x7b, 0x74, 0x5e, 0x50, 0x34, 0xec, 0x1d, 0xa4,
+ 0xe0, 0x84, 0x4d, 0x64, 0xec, 0x4a, 0xdb, 0x5c, 0x29, 0xc1, 0xe2, 0x2f,
+ 0xa6, 0x30, 0x5f, 0x45, 0xa8, 0xe1, 0x44, 0xf2, 0xaf, 0x0d, 0xdc, 0xab,
+ 0x4f, 0xef, 0xc9, 0x09, 0x3c, 0x0e, 0xc4, 0xd4, 0xb2, 0x05, 0x51, 0x50,
+ 0xaa, 0x72, 0x6f, 0x83,
+};
+static const struct drbg_kat_pr_true kat4303_t = {
+ 12, kat4303_entropyin, kat4303_nonce, kat4303_persstr,
+ kat4303_entropyinpr1, kat4303_addinpr1, kat4303_entropyinpr2,
+ kat4303_addinpr2, kat4303_retbits
+};
+static const struct drbg_kat kat4303 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4303_t
+};
+
+static const unsigned char kat4304_entropyin[] = {
+ 0x5c, 0x99, 0x49, 0xd7, 0xc5, 0x40, 0x60, 0xbf, 0xf7, 0x33, 0xe5, 0x17,
+ 0xe5, 0x5a, 0x69, 0xa2, 0x7b, 0x17, 0x48, 0x0b, 0xf8, 0x54, 0x9c, 0x39,
+ 0x00, 0xde, 0xbd, 0x80, 0x34, 0xff, 0x2d, 0x34, 0x50, 0x9f, 0x15, 0x60,
+ 0x67, 0xa1, 0x05, 0x15, 0x59, 0x8a, 0x9b, 0x3a, 0x88, 0xb9, 0xe3, 0xc9,
+};
+static const unsigned char kat4304_nonce[] = {0};
+static const unsigned char kat4304_persstr[] = {
+ 0x09, 0x06, 0x50, 0x2d, 0xd6, 0xf7, 0x37, 0xce, 0x49, 0x75, 0x3b, 0x67,
+ 0xa5, 0x44, 0x32, 0x8f, 0x21, 0x6e, 0x59, 0xe0, 0xad, 0x38, 0x25, 0x68,
+ 0x78, 0xf5, 0x56, 0xf7, 0xdd, 0x9b, 0x8c, 0x5f, 0x2d, 0xd5, 0x21, 0xcd,
+ 0x57, 0xa4, 0x65, 0x86, 0x7f, 0x86, 0x14, 0x38, 0x03, 0x7e, 0x25, 0x27,
+};
+static const unsigned char kat4304_entropyinpr1[] = {
+ 0x6f, 0xc9, 0xbd, 0xfa, 0xe7, 0xf0, 0xa2, 0x0d, 0x8d, 0x86, 0x85, 0xe1,
+ 0xc8, 0x27, 0xef, 0x35, 0x34, 0x46, 0x3f, 0x96, 0x52, 0xff, 0xd3, 0x60,
+ 0x78, 0x23, 0xa9, 0x01, 0x65, 0x30, 0x94, 0xa6, 0xac, 0xfd, 0x69, 0xaf,
+ 0xcf, 0x0a, 0xcf, 0xc5, 0x41, 0xfa, 0x4f, 0xb5, 0x9b, 0x15, 0xbd, 0x60,
+};
+static const unsigned char kat4304_addinpr1[] = {0};
+static const unsigned char kat4304_entropyinpr2[] = {
+ 0xf6, 0xc9, 0x94, 0x27, 0x16, 0xe1, 0x68, 0xce, 0xb1, 0x98, 0xfd, 0xe6,
+ 0x80, 0xd8, 0x58, 0x24, 0xd7, 0x84, 0x55, 0x3d, 0x84, 0x18, 0x3c, 0xcb,
+ 0x79, 0x21, 0x84, 0x3f, 0xe7, 0xe9, 0x86, 0x9c, 0x27, 0x9d, 0xc5, 0x7b,
+ 0xfa, 0x65, 0x0d, 0x12, 0xb5, 0x2e, 0x2d, 0x82, 0x44, 0xfc, 0x38, 0xd9,
+};
+static const unsigned char kat4304_addinpr2[] = {0};
+static const unsigned char kat4304_retbits[] = {
+ 0x5e, 0x31, 0x39, 0x4e, 0xf7, 0xba, 0x43, 0x90, 0xad, 0xf1, 0x01, 0x12,
+ 0xb1, 0x91, 0x96, 0xef, 0xab, 0xbb, 0x80, 0x45, 0xfc, 0xca, 0xb2, 0x58,
+ 0xf0, 0x35, 0xde, 0x14, 0xc3, 0xc7, 0xe4, 0xad, 0x7f, 0x32, 0xc6, 0xec,
+ 0x1c, 0x94, 0x68, 0x10, 0x62, 0x35, 0xf5, 0x8a, 0xab, 0x6a, 0x81, 0xda,
+ 0xa7, 0x5d, 0xb1, 0x89, 0xfd, 0x29, 0xd0, 0x93, 0x87, 0x82, 0xf3, 0x27,
+ 0x59, 0xf4, 0x19, 0xd3,
+};
+static const struct drbg_kat_pr_true kat4304_t = {
+ 13, kat4304_entropyin, kat4304_nonce, kat4304_persstr,
+ kat4304_entropyinpr1, kat4304_addinpr1, kat4304_entropyinpr2,
+ kat4304_addinpr2, kat4304_retbits
+};
+static const struct drbg_kat kat4304 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4304_t
+};
+
+static const unsigned char kat4305_entropyin[] = {
+ 0x84, 0xee, 0x83, 0x85, 0xc8, 0x0c, 0x0f, 0xa6, 0x23, 0x66, 0x2d, 0x21,
+ 0x08, 0xe7, 0x8b, 0x97, 0x4b, 0xd4, 0x69, 0xac, 0x23, 0x89, 0xd2, 0x01,
+ 0xdf, 0x2b, 0x67, 0x5a, 0xc7, 0xe6, 0xc6, 0x14, 0x2b, 0xfa, 0x35, 0xa1,
+ 0x62, 0xf2, 0x23, 0x2c, 0x56, 0xe5, 0xa1, 0x11, 0xa3, 0x4f, 0x5c, 0x57,
+};
+static const unsigned char kat4305_nonce[] = {0};
+static const unsigned char kat4305_persstr[] = {
+ 0x9e, 0x85, 0xb8, 0x92, 0x70, 0x70, 0xe5, 0xa2, 0x7b, 0xfd, 0x63, 0x38,
+ 0x45, 0x83, 0x18, 0x3e, 0xa1, 0x46, 0xd8, 0x58, 0x64, 0x14, 0xad, 0x89,
+ 0xd3, 0x00, 0xde, 0xdd, 0xb1, 0xdd, 0xd1, 0xd4, 0x61, 0xb0, 0x18, 0x4d,
+ 0xac, 0xe4, 0x29, 0x02, 0x04, 0x42, 0x2b, 0xc6, 0x4f, 0xca, 0x95, 0xbf,
+};
+static const unsigned char kat4305_entropyinpr1[] = {
+ 0xc3, 0x44, 0x42, 0x61, 0x96, 0x23, 0x86, 0xb5, 0x7d, 0x6c, 0x5f, 0x12,
+ 0x5d, 0xc3, 0x04, 0x36, 0x78, 0xaf, 0xe1, 0x96, 0x2d, 0x55, 0xd9, 0xe6,
+ 0x20, 0x4f, 0xba, 0x22, 0x9e, 0x78, 0x1f, 0xd0, 0x63, 0x6d, 0x07, 0xfe,
+ 0x6a, 0x05, 0x2e, 0xd6, 0x8f, 0xe2, 0x7e, 0x2c, 0x60, 0x1c, 0x01, 0xa4,
+};
+static const unsigned char kat4305_addinpr1[] = {0};
+static const unsigned char kat4305_entropyinpr2[] = {
+ 0x1f, 0xd8, 0x95, 0x06, 0x8a, 0xec, 0x8d, 0xf2, 0x68, 0x47, 0x84, 0x00,
+ 0x79, 0x49, 0xe0, 0x37, 0x05, 0x78, 0x67, 0x6c, 0x65, 0x37, 0xa0, 0x9d,
+ 0xd9, 0x05, 0x67, 0xb9, 0x5f, 0x61, 0x38, 0x80, 0x9e, 0x70, 0xbc, 0xc9,
+ 0xfc, 0x9e, 0xfc, 0x03, 0xdf, 0xd8, 0x3f, 0x03, 0x67, 0x78, 0x4b, 0xde,
+};
+static const unsigned char kat4305_addinpr2[] = {0};
+static const unsigned char kat4305_retbits[] = {
+ 0x89, 0x4f, 0x3b, 0xc0, 0xfc, 0xbd, 0xb7, 0x6b, 0x01, 0xdf, 0x80, 0xf0,
+ 0x5d, 0x0c, 0xa6, 0x36, 0xbd, 0x51, 0x43, 0x8f, 0x5e, 0xe2, 0x82, 0x50,
+ 0xf2, 0x7e, 0x8e, 0x47, 0x96, 0x8c, 0x9c, 0x86, 0xa8, 0x47, 0x97, 0x00,
+ 0x90, 0xd5, 0x1b, 0x0a, 0x60, 0x98, 0x4e, 0xbb, 0x50, 0x79, 0x01, 0x7a,
+ 0x5c, 0x5b, 0xac, 0x39, 0x4e, 0x96, 0x44, 0xbe, 0xfc, 0x56, 0x6e, 0xdd,
+ 0x47, 0x68, 0xd9, 0x19,
+};
+static const struct drbg_kat_pr_true kat4305_t = {
+ 14, kat4305_entropyin, kat4305_nonce, kat4305_persstr,
+ kat4305_entropyinpr1, kat4305_addinpr1, kat4305_entropyinpr2,
+ kat4305_addinpr2, kat4305_retbits
+};
+static const struct drbg_kat kat4305 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 0, 64, &kat4305_t
+};
+
+static const unsigned char kat4306_entropyin[] = {
+ 0xd1, 0x02, 0x23, 0x69, 0x87, 0xb3, 0x56, 0x2b, 0x63, 0x1c, 0x79, 0x15,
+ 0xb1, 0x92, 0x58, 0xc0, 0x19, 0xcd, 0x16, 0x52, 0x17, 0xb3, 0xf6, 0xda,
+ 0x30, 0xf7, 0x1e, 0x40, 0x9c, 0xe2, 0xad, 0x2f, 0x7a, 0xc8, 0xb6, 0xde,
+ 0x86, 0x69, 0x6e, 0xd2, 0x7b, 0xc0, 0x25, 0x17, 0x01, 0xa4, 0xe2, 0x20,
+};
+static const unsigned char kat4306_nonce[] = {0};
+static const unsigned char kat4306_persstr[] = {
+ 0x0d, 0x76, 0xf1, 0x0e, 0x4b, 0x15, 0x26, 0x3d, 0xee, 0x96, 0xa2, 0x88,
+ 0x4f, 0x3e, 0xb3, 0x8b, 0x6a, 0x9c, 0xba, 0x0c, 0x37, 0x2d, 0x75, 0x4a,
+ 0xdf, 0xf9, 0x2c, 0xbc, 0xd5, 0xf9, 0x78, 0x4c, 0xbe, 0x37, 0x1d, 0xce,
+ 0xd8, 0x33, 0xfd, 0x76, 0xe4, 0x33, 0xc8, 0xe6, 0x1f, 0xe5, 0x46, 0x79,
+};
+static const unsigned char kat4306_entropyinpr1[] = {
+ 0xce, 0x72, 0x8d, 0x3f, 0xdf, 0x9c, 0xa9, 0x16, 0x9b, 0xb0, 0x9d, 0x07,
+ 0x70, 0x75, 0x37, 0x04, 0x83, 0x0b, 0x7a, 0x74, 0x22, 0x5a, 0xd6, 0xb0,
+ 0x91, 0x74, 0xbb, 0xfd, 0x0c, 0xec, 0xfc, 0x69, 0x38, 0xd0, 0x86, 0x7e,
+ 0xf6, 0x29, 0x0c, 0x59, 0x49, 0xe9, 0xf6, 0x7f, 0x96, 0x72, 0x7d, 0x66,
+};
+static const unsigned char kat4306_addinpr1[] = {
+ 0xd3, 0xe5, 0xec, 0x40, 0x2d, 0xbd, 0x70, 0xd5, 0x3b, 0x87, 0x52, 0xeb,
+ 0xb6, 0x93, 0xee, 0xe7, 0xf9, 0xbd, 0x91, 0xb8, 0x4c, 0x21, 0xcb, 0x48,
+ 0x68, 0x12, 0x52, 0x4d, 0x5d, 0xec, 0x45, 0xd6, 0xd9, 0xd6, 0xa3, 0x69,
+ 0x55, 0x84, 0x0b, 0xa7, 0xb9, 0x75, 0x4c, 0xaf, 0x83, 0x4a, 0x9a, 0xd4,
+};
+static const unsigned char kat4306_entropyinpr2[] = {
+ 0x6e, 0x86, 0x43, 0x5f, 0xc3, 0x9e, 0x96, 0xee, 0x9d, 0xaf, 0xef, 0x7a,
+ 0x45, 0xa7, 0x3e, 0x28, 0xf5, 0x59, 0x4a, 0xbc, 0x87, 0xe8, 0x8a, 0x44,
+ 0xc0, 0x34, 0x86, 0x29, 0xa6, 0x79, 0x97, 0x2f, 0x32, 0x21, 0x64, 0xce,
+ 0x2b, 0x19, 0x1b, 0x29, 0xa9, 0xd2, 0x14, 0x55, 0xd7, 0x31, 0x0c, 0x4d,
+};
+static const unsigned char kat4306_addinpr2[] = {
+ 0x1a, 0x9f, 0xe5, 0x52, 0xc1, 0xa2, 0x99, 0xf1, 0x4d, 0xac, 0x88, 0x9a,
+ 0xcd, 0x3f, 0x6d, 0x02, 0xc6, 0xb5, 0x81, 0xcc, 0x58, 0x02, 0x4f, 0x07,
+ 0xc4, 0x9d, 0x6e, 0x67, 0xcc, 0xb7, 0x47, 0x20, 0x44, 0xae, 0x5e, 0x30,
+ 0x4c, 0xdc, 0xf6, 0x23, 0xe4, 0x67, 0x7d, 0x13, 0xec, 0xda, 0x89, 0x2a,
+};
+static const unsigned char kat4306_retbits[] = {
+ 0xe2, 0x0b, 0x30, 0xf4, 0x96, 0xae, 0x9d, 0xef, 0x70, 0x20, 0x74, 0x7e,
+ 0xe5, 0x34, 0x8b, 0x4a, 0x53, 0x1a, 0x6b, 0xa1, 0xb6, 0x2e, 0x74, 0x3f,
+ 0x31, 0xa7, 0xd3, 0xd3, 0xca, 0x81, 0x60, 0x81, 0x9f, 0x57, 0xd6, 0xe1,
+ 0x4f, 0x52, 0xfe, 0xde, 0x07, 0x14, 0xa9, 0xe3, 0xbb, 0x71, 0x88, 0x7c,
+ 0x3b, 0x50, 0xaa, 0xcd, 0xf5, 0x30, 0x60, 0xb3, 0x00, 0x03, 0x09, 0x2e,
+ 0x97, 0x76, 0x87, 0x01,
+};
+static const struct drbg_kat_pr_true kat4306_t = {
+ 0, kat4306_entropyin, kat4306_nonce, kat4306_persstr,
+ kat4306_entropyinpr1, kat4306_addinpr1, kat4306_entropyinpr2,
+ kat4306_addinpr2, kat4306_retbits
+};
+static const struct drbg_kat kat4306 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4306_t
+};
+
+static const unsigned char kat4307_entropyin[] = {
+ 0x4f, 0x43, 0x49, 0x9c, 0x07, 0x5d, 0xa8, 0x13, 0x43, 0x1f, 0x6c, 0x18,
+ 0x35, 0x5b, 0xe4, 0x1a, 0x3c, 0x76, 0xa1, 0xf4, 0x5c, 0x30, 0x1c, 0x83,
+ 0xd7, 0xf9, 0xe2, 0x54, 0x78, 0x56, 0x7d, 0x9e, 0x23, 0xbb, 0x7b, 0xf8,
+ 0xe0, 0x1e, 0x75, 0x98, 0xa6, 0xba, 0x09, 0x23, 0x52, 0x58, 0x2d, 0x97,
+};
+static const unsigned char kat4307_nonce[] = {0};
+static const unsigned char kat4307_persstr[] = {
+ 0xf4, 0xf5, 0xf7, 0xdb, 0xe8, 0x49, 0xfb, 0xdb, 0xcc, 0x1b, 0x3f, 0x57,
+ 0x3a, 0xd1, 0x95, 0x1f, 0xed, 0xb0, 0x1d, 0xa0, 0xd6, 0x13, 0x37, 0xff,
+ 0x0c, 0xa5, 0xd8, 0xaf, 0xe2, 0xc3, 0x80, 0xd3, 0xd5, 0x49, 0x91, 0x69,
+ 0x96, 0x3b, 0x73, 0x5d, 0x03, 0x15, 0x95, 0x04, 0xf0, 0xa0, 0x32, 0x81,
+};
+static const unsigned char kat4307_entropyinpr1[] = {
+ 0xb7, 0x18, 0x56, 0x3a, 0xa7, 0x38, 0x67, 0x5c, 0x24, 0xa5, 0x8f, 0x01,
+ 0x17, 0xe0, 0x60, 0x7c, 0xf1, 0x56, 0x87, 0xcc, 0x7f, 0x26, 0x57, 0xe5,
+ 0x61, 0x39, 0xd6, 0x73, 0x62, 0xe3, 0x31, 0x49, 0x97, 0x18, 0x10, 0xe5,
+ 0x55, 0x34, 0x98, 0x8c, 0x9e, 0x92, 0x3c, 0x55, 0x87, 0x13, 0x65, 0xdc,
+};
+static const unsigned char kat4307_addinpr1[] = {
+ 0xa2, 0x72, 0x86, 0xc9, 0xbe, 0xc1, 0x28, 0x35, 0xc5, 0x2b, 0x70, 0x2b,
+ 0x3b, 0x65, 0x4c, 0x90, 0xc8, 0x0e, 0x01, 0xe6, 0xd5, 0xf8, 0x4b, 0xb8,
+ 0x0c, 0xf0, 0xb4, 0x6d, 0x1e, 0x3d, 0xc6, 0x0c, 0x03, 0x8c, 0x10, 0x5c,
+ 0xa3, 0x0e, 0x1a, 0x94, 0xeb, 0x73, 0x3b, 0x00, 0x4c, 0x76, 0xec, 0x4f,
+};
+static const unsigned char kat4307_entropyinpr2[] = {
+ 0x35, 0xfe, 0x74, 0x10, 0xdf, 0xe6, 0x5c, 0x6f, 0xde, 0x71, 0x15, 0xfa,
+ 0xf2, 0x03, 0xe0, 0x10, 0x56, 0x33, 0x13, 0x32, 0x07, 0xc8, 0xaf, 0xf2,
+ 0x9c, 0xc8, 0x57, 0x80, 0xf7, 0x49, 0x99, 0x9f, 0xc5, 0x65, 0x59, 0xa9,
+ 0x56, 0xc2, 0x8c, 0xc3, 0xae, 0x2a, 0x4d, 0x54, 0xca, 0x49, 0xbe, 0x32,
+};
+static const unsigned char kat4307_addinpr2[] = {
+ 0x3e, 0x25, 0x77, 0x5d, 0x56, 0xa1, 0x56, 0xd8, 0x6a, 0x20, 0xf8, 0xfa,
+ 0xa7, 0x7b, 0x1c, 0xa3, 0x32, 0x58, 0xf9, 0xa1, 0x2c, 0x10, 0x74, 0x8c,
+ 0x1f, 0x36, 0x3d, 0x5f, 0x7b, 0x10, 0xa6, 0x81, 0xdf, 0x65, 0x38, 0xd9,
+ 0xf6, 0x15, 0xc6, 0x3c, 0xd2, 0xc9, 0x7e, 0x1b, 0x6e, 0xe8, 0x2e, 0x7a,
+};
+static const unsigned char kat4307_retbits[] = {
+ 0xf7, 0x63, 0xd0, 0x01, 0x55, 0x78, 0x49, 0x27, 0x83, 0x7c, 0xfd, 0x3d,
+ 0x54, 0x74, 0x0f, 0x48, 0x39, 0x8e, 0xc8, 0xec, 0xae, 0x66, 0x4b, 0x16,
+ 0x0d, 0x07, 0x8e, 0x81, 0xec, 0x6b, 0x02, 0xc6, 0x52, 0x83, 0xbe, 0x80,
+ 0x7a, 0x8e, 0x08, 0x7f, 0x5d, 0x36, 0x00, 0x23, 0x3a, 0x52, 0xcc, 0xba,
+ 0xa5, 0x93, 0x20, 0x39, 0x25, 0x42, 0x7e, 0xab, 0x16, 0xf4, 0x34, 0xd7,
+ 0x37, 0xbc, 0x6c, 0x48,
+};
+static const struct drbg_kat_pr_true kat4307_t = {
+ 1, kat4307_entropyin, kat4307_nonce, kat4307_persstr,
+ kat4307_entropyinpr1, kat4307_addinpr1, kat4307_entropyinpr2,
+ kat4307_addinpr2, kat4307_retbits
+};
+static const struct drbg_kat kat4307 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4307_t
+};
+
+static const unsigned char kat4308_entropyin[] = {
+ 0x15, 0xc9, 0xd9, 0x23, 0xb9, 0x37, 0x1e, 0x58, 0x5c, 0x81, 0x6e, 0xe4,
+ 0xa2, 0x03, 0xb9, 0xec, 0x93, 0xa1, 0x6f, 0x0f, 0x25, 0x25, 0x47, 0x4a,
+ 0x30, 0x2f, 0x50, 0x7c, 0xa0, 0xd6, 0xea, 0xa4, 0xbe, 0x94, 0x5f, 0x0c,
+ 0x88, 0x4d, 0x12, 0xac, 0x89, 0x3b, 0x8a, 0xfd, 0x44, 0x62, 0x46, 0xa4,
+};
+static const unsigned char kat4308_nonce[] = {0};
+static const unsigned char kat4308_persstr[] = {
+ 0x54, 0x5b, 0x32, 0x69, 0x2a, 0xa6, 0x46, 0x40, 0xa7, 0x9f, 0xac, 0x5c,
+ 0xe3, 0xb0, 0x2a, 0x02, 0x03, 0x71, 0x1a, 0xf0, 0xe8, 0xfc, 0xe4, 0x5d,
+ 0x4a, 0xf2, 0x1f, 0x94, 0x99, 0xdb, 0xa9, 0xbf, 0x03, 0xf3, 0x0e, 0x03,
+ 0x5a, 0xcb, 0xa8, 0x16, 0xde, 0xfc, 0xc6, 0xf5, 0x0c, 0x0d, 0xa7, 0x2d,
+};
+static const unsigned char kat4308_entropyinpr1[] = {
+ 0xf0, 0x22, 0x56, 0x0f, 0x3b, 0xb3, 0xaa, 0x16, 0x72, 0x52, 0x31, 0x6c,
+ 0xdd, 0xc7, 0x70, 0x35, 0x23, 0x4f, 0xc1, 0xd1, 0x71, 0x89, 0x44, 0xd4,
+ 0x17, 0xbe, 0xcd, 0x40, 0x57, 0x1b, 0xf2, 0x07, 0x5b, 0x9f, 0x39, 0xc9,
+ 0x36, 0x56, 0xd3, 0x88, 0x04, 0x2c, 0x6c, 0x0f, 0x34, 0x78, 0x47, 0x79,
+};
+static const unsigned char kat4308_addinpr1[] = {
+ 0x67, 0x4a, 0x45, 0xa1, 0x1c, 0x29, 0xd7, 0x3d, 0x35, 0x61, 0x80, 0xee,
+ 0x98, 0x3b, 0x34, 0xcb, 0xbb, 0x06, 0x08, 0xa6, 0xce, 0xbd, 0xde, 0xb3,
+ 0x37, 0xd6, 0xa5, 0xf7, 0x19, 0x34, 0xe1, 0xf2, 0xeb, 0x51, 0xf0, 0x80,
+ 0x66, 0x12, 0xd1, 0xf1, 0xc7, 0x1b, 0x93, 0xa8, 0x19, 0x25, 0xd8, 0x21,
+};
+static const unsigned char kat4308_entropyinpr2[] = {
+ 0x7e, 0x4f, 0x97, 0x3d, 0x64, 0x37, 0x8b, 0x21, 0x91, 0x62, 0xde, 0x5c,
+ 0xcb, 0x28, 0x43, 0x6b, 0x81, 0x79, 0x17, 0xf9, 0xd4, 0x7c, 0x76, 0x86,
+ 0x02, 0xcd, 0x90, 0x1c, 0x23, 0xa1, 0x7d, 0x66, 0x49, 0xc6, 0x83, 0x0f,
+ 0xf6, 0x2e, 0x3e, 0xdc, 0x57, 0x71, 0x85, 0x3e, 0xde, 0xe6, 0x9a, 0xb5,
+};
+static const unsigned char kat4308_addinpr2[] = {
+ 0xc4, 0x6e, 0x29, 0x62, 0x67, 0x14, 0x53, 0x2b, 0xf5, 0xc6, 0x5f, 0x65,
+ 0xeb, 0xb5, 0xaf, 0x38, 0xf1, 0x07, 0x35, 0x92, 0x0b, 0xc0, 0xf0, 0x22,
+ 0x12, 0x21, 0x45, 0xd3, 0x3c, 0x84, 0xd8, 0x80, 0x56, 0xfd, 0x26, 0xd9,
+ 0x6d, 0xcc, 0x1b, 0x69, 0xef, 0xbf, 0x2a, 0x7a, 0xe7, 0x36, 0x0c, 0x24,
+};
+static const unsigned char kat4308_retbits[] = {
+ 0x9d, 0xf1, 0x64, 0xfb, 0x08, 0xb8, 0x57, 0x94, 0xd2, 0xea, 0xe9, 0x2a,
+ 0x03, 0x99, 0x54, 0xc3, 0x7a, 0x9c, 0x41, 0x2e, 0x22, 0x4a, 0x24, 0x26,
+ 0x81, 0xfa, 0x4a, 0x70, 0x69, 0x4b, 0xbc, 0xd5, 0xff, 0x9d, 0x10, 0xb5,
+ 0x5d, 0x0f, 0x5a, 0x06, 0xdc, 0xdc, 0xde, 0xad, 0x90, 0xf3, 0x4a, 0x65,
+ 0xa2, 0xd0, 0xc9, 0x7b, 0x1e, 0x21, 0xda, 0x12, 0x90, 0xcd, 0x20, 0x8a,
+ 0x33, 0x27, 0x11, 0x1b,
+};
+static const struct drbg_kat_pr_true kat4308_t = {
+ 2, kat4308_entropyin, kat4308_nonce, kat4308_persstr,
+ kat4308_entropyinpr1, kat4308_addinpr1, kat4308_entropyinpr2,
+ kat4308_addinpr2, kat4308_retbits
+};
+static const struct drbg_kat kat4308 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4308_t
+};
+
+static const unsigned char kat4309_entropyin[] = {
+ 0x03, 0xe7, 0xdf, 0xaf, 0x67, 0x09, 0xc6, 0x81, 0x88, 0x46, 0x90, 0x33,
+ 0xb4, 0x18, 0xd3, 0x9f, 0x90, 0x89, 0xd5, 0xaf, 0x55, 0x72, 0xfc, 0xcd,
+ 0xb3, 0x15, 0xf7, 0x35, 0x01, 0xf3, 0xcd, 0x89, 0x97, 0x97, 0xf3, 0x92,
+ 0xe9, 0x4a, 0x51, 0x83, 0x5b, 0xa8, 0x5a, 0x17, 0xc2, 0xa6, 0x76, 0x35,
+};
+static const unsigned char kat4309_nonce[] = {0};
+static const unsigned char kat4309_persstr[] = {
+ 0x11, 0x0f, 0xc1, 0xae, 0x4f, 0xbc, 0x7d, 0xff, 0x71, 0x8b, 0xc0, 0x02,
+ 0x52, 0x17, 0xcb, 0xce, 0x60, 0x63, 0x16, 0xa1, 0x8a, 0xc0, 0x29, 0x57,
+ 0x64, 0x42, 0xfb, 0xb9, 0x4e, 0x12, 0xf9, 0xeb, 0x46, 0x45, 0x45, 0x4a,
+ 0xf0, 0x1e, 0x1b, 0xa2, 0xed, 0xb4, 0xf0, 0x43, 0x84, 0xdb, 0x9c, 0x2e,
+};
+static const unsigned char kat4309_entropyinpr1[] = {
+ 0xb0, 0x40, 0x49, 0x74, 0x93, 0xa0, 0x08, 0xd2, 0x5a, 0x09, 0x24, 0xd9,
+ 0xaa, 0x18, 0x93, 0x17, 0x47, 0x39, 0x5c, 0xfb, 0x65, 0x54, 0xea, 0xd0,
+ 0x55, 0xaa, 0x80, 0xfc, 0x87, 0x62, 0x9f, 0xd2, 0xbc, 0x16, 0x2c, 0xa5,
+ 0x73, 0x0c, 0x73, 0x17, 0x1f, 0xd3, 0x8b, 0x7b, 0xd7, 0xa4, 0x4e, 0x19,
+};
+static const unsigned char kat4309_addinpr1[] = {
+ 0x4e, 0x1e, 0x98, 0x8a, 0x66, 0xe0, 0x41, 0x50, 0x4e, 0x46, 0x5f, 0x6c,
+ 0xf0, 0x55, 0xfd, 0x7a, 0x34, 0xb6, 0x89, 0xf6, 0x4f, 0x48, 0xc0, 0xdf,
+ 0x04, 0xd2, 0xff, 0x7f, 0xd2, 0x5e, 0xd8, 0xdf, 0xa7, 0xfc, 0xa3, 0xd9,
+ 0x62, 0xda, 0x1e, 0x7d, 0xbf, 0x1a, 0x4e, 0xdd, 0xa7, 0x98, 0x54, 0x66,
+};
+static const unsigned char kat4309_entropyinpr2[] = {
+ 0xf9, 0xc8, 0xae, 0xa3, 0x50, 0x61, 0x46, 0x8f, 0x83, 0x6b, 0x1e, 0xb4,
+ 0xf9, 0x7d, 0x92, 0x20, 0x57, 0x7f, 0xbd, 0xf8, 0x61, 0x94, 0xa9, 0x92,
+ 0x14, 0x18, 0x6c, 0xc5, 0x92, 0x50, 0xed, 0xb3, 0xff, 0xef, 0xeb, 0xb2,
+ 0x5f, 0xef, 0x8f, 0x50, 0x68, 0x26, 0x5a, 0xb6, 0x78, 0xb1, 0x80, 0x36,
+};
+static const unsigned char kat4309_addinpr2[] = {
+ 0x96, 0xf1, 0x0d, 0xce, 0x1f, 0xf8, 0xd8, 0xe0, 0xc9, 0x92, 0xe1, 0xf3,
+ 0xea, 0x03, 0x44, 0x86, 0xf8, 0x90, 0x8d, 0xf4, 0xe1, 0xd4, 0xb9, 0xf3,
+ 0x5b, 0xd4, 0xed, 0x6f, 0x91, 0xa0, 0xde, 0xda, 0x7a, 0x5b, 0x23, 0x8e,
+ 0xe0, 0xb6, 0xc7, 0x83, 0xf7, 0xf1, 0x01, 0xcf, 0xaf, 0xad, 0x79, 0x86,
+};
+static const unsigned char kat4309_retbits[] = {
+ 0xac, 0xfc, 0x84, 0xfd, 0x40, 0x83, 0x7e, 0xc9, 0x4c, 0x4d, 0x37, 0x65,
+ 0x6e, 0x65, 0xd5, 0x16, 0xc0, 0xab, 0x45, 0xa7, 0xa4, 0x48, 0x56, 0x78,
+ 0xf3, 0x0e, 0x51, 0xaa, 0x08, 0x52, 0x0c, 0xfa, 0xca, 0x31, 0xd7, 0x86,
+ 0xba, 0xc0, 0xf3, 0xdd, 0x3f, 0x15, 0xc7, 0xc5, 0x20, 0x8e, 0xd1, 0x44,
+ 0x73, 0xc4, 0x72, 0xb5, 0x37, 0xe3, 0x66, 0x2e, 0x20, 0xd8, 0xca, 0x9e,
+ 0xd7, 0x7d, 0x4b, 0xaa,
+};
+static const struct drbg_kat_pr_true kat4309_t = {
+ 3, kat4309_entropyin, kat4309_nonce, kat4309_persstr,
+ kat4309_entropyinpr1, kat4309_addinpr1, kat4309_entropyinpr2,
+ kat4309_addinpr2, kat4309_retbits
+};
+static const struct drbg_kat kat4309 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4309_t
+};
+
+static const unsigned char kat4310_entropyin[] = {
+ 0x74, 0xd1, 0x01, 0x9b, 0x4d, 0x8d, 0x76, 0x75, 0x4b, 0x9b, 0x57, 0xab,
+ 0x96, 0x09, 0x7b, 0xa8, 0x2e, 0x40, 0x46, 0xb3, 0x57, 0x2d, 0x8d, 0xd3,
+ 0xc1, 0x49, 0x8c, 0x47, 0x2b, 0x5e, 0x8d, 0x08, 0x05, 0x0e, 0xd7, 0xed,
+ 0xfb, 0x3a, 0xfa, 0xc2, 0x9e, 0xc0, 0x98, 0x38, 0x81, 0x62, 0xa7, 0xe4,
+};
+static const unsigned char kat4310_nonce[] = {0};
+static const unsigned char kat4310_persstr[] = {
+ 0x6e, 0x3d, 0xd8, 0x2c, 0xf1, 0x28, 0x87, 0xa6, 0x17, 0x05, 0x14, 0xa6,
+ 0x73, 0x7a, 0xb2, 0xa6, 0x01, 0xd6, 0xb1, 0x7e, 0x57, 0x64, 0x75, 0x49,
+ 0xad, 0x5a, 0x49, 0xe6, 0xb2, 0x32, 0x89, 0x50, 0x9e, 0x09, 0x4d, 0x7c,
+ 0x61, 0xa8, 0x58, 0xdf, 0x26, 0xec, 0xc7, 0x5d, 0x7c, 0x61, 0x11, 0x5b,
+};
+static const unsigned char kat4310_entropyinpr1[] = {
+ 0x06, 0x89, 0x72, 0x1b, 0x78, 0x43, 0x17, 0x49, 0x55, 0xc9, 0xaf, 0xeb,
+ 0xd7, 0x41, 0xa5, 0x7a, 0x60, 0x0c, 0xf6, 0xe7, 0x0a, 0x28, 0x80, 0x42,
+ 0x25, 0x25, 0xfa, 0x16, 0xd3, 0x44, 0xc6, 0xd7, 0x18, 0x81, 0x83, 0xc2,
+ 0xfb, 0xd6, 0x48, 0x86, 0x92, 0xe1, 0x9f, 0x0b, 0x6a, 0x95, 0xeb, 0x59,
+};
+static const unsigned char kat4310_addinpr1[] = {
+ 0x33, 0x46, 0xf0, 0xc0, 0xea, 0xdb, 0x16, 0x6b, 0x15, 0x4a, 0xb1, 0xd9,
+ 0xe1, 0x66, 0x58, 0x67, 0xd2, 0x78, 0x4e, 0xc5, 0xd9, 0xef, 0x18, 0x43,
+ 0xb7, 0x18, 0xc3, 0xb5, 0xa1, 0xe0, 0x24, 0x01, 0xeb, 0xdb, 0xb3, 0x06,
+ 0xa4, 0x0e, 0x00, 0x2a, 0xbc, 0x39, 0xe9, 0x42, 0x8a, 0xe4, 0x8b, 0x83,
+};
+static const unsigned char kat4310_entropyinpr2[] = {
+ 0x1e, 0x26, 0x17, 0x39, 0x11, 0x0b, 0x9b, 0x97, 0x08, 0xe0, 0x63, 0x7d,
+ 0x90, 0x97, 0xb5, 0xab, 0x34, 0xaa, 0xe8, 0x8b, 0x14, 0xa9, 0xde, 0x53,
+ 0x55, 0x26, 0xb9, 0x38, 0x4a, 0x24, 0xa5, 0x43, 0x3d, 0xc4, 0x34, 0xf3,
+ 0xa8, 0x97, 0x84, 0x7a, 0x3b, 0x77, 0x02, 0x18, 0x76, 0x0a, 0x98, 0x10,
+};
+static const unsigned char kat4310_addinpr2[] = {
+ 0x08, 0xc2, 0x20, 0xe7, 0x85, 0xbd, 0xa0, 0x80, 0xf1, 0x6a, 0x1b, 0xbf,
+ 0x26, 0xa7, 0x90, 0x03, 0xa8, 0x14, 0x6d, 0x6f, 0xd5, 0xea, 0x63, 0xc4,
+ 0x28, 0xa4, 0x4b, 0xc5, 0x81, 0x6c, 0x72, 0xbc, 0xb9, 0x3b, 0x94, 0x64,
+ 0xb9, 0xd2, 0xd1, 0x6f, 0x21, 0x22, 0xc4, 0xe9, 0x92, 0x0c, 0xa0, 0x73,
+};
+static const unsigned char kat4310_retbits[] = {
+ 0x57, 0x57, 0x65, 0x51, 0x85, 0x51, 0xe0, 0xac, 0x40, 0xdb, 0x70, 0x56,
+ 0x72, 0x65, 0xf0, 0x1c, 0x90, 0xf9, 0xd8, 0x02, 0xdc, 0x40, 0x84, 0x9a,
+ 0x7c, 0x24, 0x3b, 0x98, 0x78, 0x82, 0x28, 0x4f, 0x85, 0xe5, 0x94, 0x28,
+ 0x21, 0xb5, 0x51, 0x92, 0x3c, 0xf3, 0xf8, 0xa9, 0x91, 0xe1, 0x10, 0x7c,
+ 0x59, 0x78, 0xa5, 0x70, 0xf5, 0x1c, 0xd6, 0x53, 0x2c, 0x27, 0xc1, 0x25,
+ 0x99, 0x06, 0x8d, 0xd4,
+};
+static const struct drbg_kat_pr_true kat4310_t = {
+ 4, kat4310_entropyin, kat4310_nonce, kat4310_persstr,
+ kat4310_entropyinpr1, kat4310_addinpr1, kat4310_entropyinpr2,
+ kat4310_addinpr2, kat4310_retbits
+};
+static const struct drbg_kat kat4310 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4310_t
+};
+
+static const unsigned char kat4311_entropyin[] = {
+ 0x8f, 0x0b, 0x90, 0x46, 0x55, 0x95, 0x1a, 0x0f, 0xad, 0x5a, 0x01, 0x4b,
+ 0x01, 0x8d, 0x9d, 0x1f, 0x78, 0xaf, 0xa1, 0x3d, 0x50, 0x4b, 0x4c, 0xec,
+ 0x55, 0x9d, 0x35, 0x32, 0x0c, 0x13, 0x60, 0xdd, 0x5b, 0x4e, 0x2e, 0x67,
+ 0xd3, 0xed, 0x23, 0xf6, 0xb1, 0x29, 0x7b, 0xde, 0x8d, 0x1d, 0x98, 0x71,
+};
+static const unsigned char kat4311_nonce[] = {0};
+static const unsigned char kat4311_persstr[] = {
+ 0xb7, 0x8b, 0x65, 0xb6, 0x6c, 0x61, 0x03, 0x67, 0x84, 0x46, 0x03, 0x2d,
+ 0xb3, 0xb3, 0x14, 0x52, 0xf7, 0xa6, 0x63, 0x88, 0x4e, 0xfe, 0x66, 0x10,
+ 0xa4, 0xba, 0xfd, 0x5f, 0x8a, 0x6d, 0x35, 0xd3, 0x3c, 0x41, 0x69, 0xf2,
+ 0x4d, 0x79, 0xaf, 0x17, 0xd8, 0x80, 0xe3, 0xb4, 0xcf, 0x95, 0xaa, 0xa5,
+};
+static const unsigned char kat4311_entropyinpr1[] = {
+ 0x2d, 0x83, 0x8a, 0x98, 0xf8, 0x93, 0xf3, 0x4e, 0x73, 0xdc, 0xf0, 0xaf,
+ 0x1d, 0x2f, 0xf5, 0x80, 0xef, 0xc4, 0xc0, 0xed, 0x66, 0x1e, 0xb2, 0xa8,
+ 0x2c, 0xf1, 0x84, 0xeb, 0xc3, 0x6c, 0x3d, 0x9a, 0x6a, 0xd5, 0x36, 0x36,
+ 0x14, 0x44, 0x63, 0x63, 0x57, 0x1c, 0x70, 0x5e, 0xff, 0x09, 0x3a, 0x5f,
+};
+static const unsigned char kat4311_addinpr1[] = {
+ 0x3e, 0x76, 0x0e, 0x8d, 0xba, 0x84, 0x2b, 0x59, 0xdb, 0xb9, 0x07, 0xfd,
+ 0x12, 0x27, 0x45, 0x14, 0x5c, 0xea, 0x52, 0xfa, 0xe5, 0xdb, 0xb5, 0x9a,
+ 0x8a, 0x16, 0xed, 0x2f, 0x7d, 0xd2, 0xa2, 0x92, 0x7a, 0xc9, 0x82, 0x82,
+ 0x52, 0x38, 0x1c, 0x97, 0xfd, 0x93, 0x1e, 0x72, 0xcd, 0x02, 0x05, 0xfc,
+};
+static const unsigned char kat4311_entropyinpr2[] = {
+ 0xb3, 0xa7, 0x1b, 0x8e, 0xa6, 0x88, 0xfe, 0x94, 0x0e, 0xf2, 0x61, 0x2b,
+ 0x9e, 0x59, 0xc7, 0x99, 0xd7, 0xdb, 0x23, 0x4a, 0x78, 0xb5, 0x48, 0xd6,
+ 0xe9, 0x61, 0x77, 0x81, 0x4b, 0xe9, 0x41, 0xc2, 0x76, 0x02, 0xb6, 0x43,
+ 0xa2, 0x2b, 0x46, 0x65, 0xd4, 0x32, 0xad, 0x97, 0x04, 0xd5, 0xa1, 0xaf,
+};
+static const unsigned char kat4311_addinpr2[] = {
+ 0xbd, 0xde, 0x90, 0x43, 0x9c, 0xb0, 0x11, 0x2a, 0x68, 0x94, 0x3c, 0x5e,
+ 0x23, 0xfc, 0x92, 0x82, 0x53, 0x4e, 0x20, 0x40, 0x54, 0x3e, 0x73, 0x8b,
+ 0xdd, 0x51, 0x3e, 0x59, 0x10, 0xac, 0x86, 0xe7, 0xa5, 0xd3, 0x0d, 0xde,
+ 0xee, 0xcd, 0xdc, 0x38, 0xd1, 0xb7, 0xb9, 0x01, 0x21, 0xcb, 0x21, 0x35,
+};
+static const unsigned char kat4311_retbits[] = {
+ 0x24, 0xbb, 0x14, 0x55, 0x2f, 0xd5, 0x5b, 0x8a, 0x8d, 0x31, 0x06, 0x6e,
+ 0x97, 0x4e, 0x9b, 0xfb, 0xba, 0x35, 0x1f, 0x85, 0x28, 0xda, 0x5b, 0xef,
+ 0xe0, 0x96, 0xbf, 0xb7, 0x72, 0xeb, 0x28, 0x79, 0x00, 0xfb, 0xf7, 0x15,
+ 0x68, 0x69, 0x7e, 0x1d, 0xd2, 0xde, 0x8f, 0x94, 0x51, 0xec, 0xd6, 0xa7,
+ 0xe7, 0x0f, 0x14, 0x0e, 0x56, 0xaf, 0x6e, 0x36, 0xf7, 0x7c, 0x25, 0x6d,
+ 0xc0, 0x58, 0x2c, 0xf8,
+};
+static const struct drbg_kat_pr_true kat4311_t = {
+ 5, kat4311_entropyin, kat4311_nonce, kat4311_persstr,
+ kat4311_entropyinpr1, kat4311_addinpr1, kat4311_entropyinpr2,
+ kat4311_addinpr2, kat4311_retbits
+};
+static const struct drbg_kat kat4311 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4311_t
+};
+
+static const unsigned char kat4312_entropyin[] = {
+ 0xbd, 0x21, 0x3a, 0x2e, 0x83, 0xd3, 0xf4, 0x1e, 0x85, 0x2d, 0xcc, 0xf3,
+ 0x94, 0xc6, 0x92, 0x0e, 0x15, 0xf3, 0xc2, 0x2c, 0x76, 0x1b, 0x5c, 0xc7,
+ 0x05, 0x71, 0xec, 0x06, 0x11, 0x46, 0x64, 0x3d, 0x9f, 0x63, 0xc0, 0x6d,
+ 0x76, 0x98, 0xbc, 0xc3, 0x09, 0xf6, 0x61, 0x8f, 0xca, 0xe4, 0xd8, 0x02,
+};
+static const unsigned char kat4312_nonce[] = {0};
+static const unsigned char kat4312_persstr[] = {
+ 0x0a, 0xb1, 0x6f, 0x1d, 0xb7, 0xc5, 0x33, 0xb4, 0xbe, 0xa2, 0xf1, 0xb9,
+ 0xd9, 0x2f, 0xc1, 0x43, 0xf0, 0x1d, 0x78, 0x56, 0x52, 0x7f, 0xff, 0xe4,
+ 0x86, 0xcf, 0x80, 0x13, 0x5c, 0x6d, 0xc4, 0x97, 0xf6, 0x0c, 0x14, 0xef,
+ 0xe2, 0xc1, 0x50, 0x11, 0x16, 0x21, 0x38, 0xaf, 0xe5, 0xd2, 0x11, 0x3a,
+};
+static const unsigned char kat4312_entropyinpr1[] = {
+ 0x0d, 0x92, 0xba, 0x73, 0xd2, 0xd6, 0x93, 0x07, 0xbc, 0x6e, 0x05, 0x3e,
+ 0xf9, 0x2f, 0xed, 0x43, 0x20, 0x9f, 0xc1, 0xc7, 0xe4, 0xeb, 0x5f, 0x93,
+ 0x13, 0xae, 0x91, 0xa6, 0xd0, 0x7e, 0x24, 0x37, 0x9e, 0x03, 0x08, 0x08,
+ 0x79, 0x80, 0xf6, 0x95, 0xbe, 0x20, 0x1e, 0x1d, 0xf0, 0xe5, 0xc9, 0x94,
+};
+static const unsigned char kat4312_addinpr1[] = {
+ 0xc5, 0x66, 0xb2, 0xc3, 0xd6, 0x0a, 0x76, 0xd5, 0x55, 0xd6, 0x51, 0x5e,
+ 0x7e, 0x96, 0x45, 0x23, 0xe6, 0x8f, 0x72, 0x27, 0x2e, 0x77, 0x8a, 0x58,
+ 0x02, 0x6d, 0x94, 0x29, 0x78, 0xbd, 0xf5, 0xc4, 0x6d, 0xf6, 0xde, 0xca,
+ 0xc8, 0x27, 0x1f, 0xe3, 0x2c, 0x40, 0x00, 0x00, 0x30, 0x31, 0xd4, 0x50,
+};
+static const unsigned char kat4312_entropyinpr2[] = {
+ 0xaf, 0x24, 0x68, 0xe5, 0x63, 0x9f, 0xea, 0x72, 0x9b, 0xb2, 0xfc, 0x79,
+ 0x95, 0xa5, 0xce, 0x92, 0xff, 0xc0, 0x45, 0x50, 0xe7, 0xe6, 0x04, 0xb9,
+ 0xfa, 0xd1, 0xe0, 0x69, 0xf1, 0x97, 0x7a, 0xff, 0x5b, 0x1a, 0x37, 0x1e,
+ 0x6c, 0x80, 0x96, 0x54, 0x8a, 0x03, 0xc5, 0x21, 0x0e, 0xba, 0xe6, 0x02,
+};
+static const unsigned char kat4312_addinpr2[] = {
+ 0xc6, 0xaa, 0x59, 0xd6, 0x47, 0x3d, 0xcf, 0xdb, 0x35, 0x8e, 0xf2, 0x2f,
+ 0xc5, 0x29, 0xc9, 0xe8, 0xa3, 0x31, 0xd3, 0xba, 0x8f, 0x53, 0x56, 0x68,
+ 0xe5, 0xc7, 0xeb, 0x87, 0x67, 0x53, 0x8b, 0x4e, 0xe4, 0xba, 0x50, 0xd2,
+ 0x57, 0x79, 0xc5, 0xda, 0xc1, 0xef, 0xe6, 0x47, 0xf3, 0xdf, 0x92, 0x8e,
+};
+static const unsigned char kat4312_retbits[] = {
+ 0x9f, 0x18, 0xf1, 0xdf, 0x7f, 0xf3, 0xcb, 0x47, 0xc6, 0xe5, 0x26, 0x60,
+ 0xaf, 0x2e, 0x5c, 0xaa, 0x7b, 0xd4, 0x4c, 0xfc, 0x33, 0xaa, 0x92, 0xc5,
+ 0x58, 0xbc, 0x03, 0x5a, 0x6b, 0x34, 0x66, 0xb6, 0xfb, 0x83, 0x5f, 0x8d,
+ 0x15, 0xd9, 0x6d, 0xa0, 0xb6, 0x6f, 0xdf, 0xfb, 0x4b, 0x6c, 0x26, 0xc0,
+ 0x48, 0x13, 0x55, 0xf1, 0x35, 0x84, 0xe3, 0xb4, 0xe4, 0x2d, 0x11, 0xbc,
+ 0x37, 0x27, 0x19, 0x21,
+};
+static const struct drbg_kat_pr_true kat4312_t = {
+ 6, kat4312_entropyin, kat4312_nonce, kat4312_persstr,
+ kat4312_entropyinpr1, kat4312_addinpr1, kat4312_entropyinpr2,
+ kat4312_addinpr2, kat4312_retbits
+};
+static const struct drbg_kat kat4312 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4312_t
+};
+
+static const unsigned char kat4313_entropyin[] = {
+ 0xc4, 0xd2, 0xf3, 0x50, 0xa4, 0xf2, 0xa7, 0x89, 0xc6, 0x01, 0x56, 0x59,
+ 0xb6, 0xc0, 0x2a, 0x12, 0xcd, 0x09, 0x34, 0x30, 0xa9, 0x56, 0x2b, 0x97,
+ 0xb0, 0x6d, 0x95, 0x00, 0xe0, 0x19, 0xfe, 0x0a, 0xae, 0xb8, 0x79, 0x58,
+ 0x3f, 0x8b, 0x58, 0xbd, 0x6e, 0xca, 0xd5, 0x21, 0xd2, 0x7d, 0x1c, 0xa1,
+};
+static const unsigned char kat4313_nonce[] = {0};
+static const unsigned char kat4313_persstr[] = {
+ 0xc5, 0x66, 0xca, 0xe3, 0xd5, 0x47, 0x4e, 0xca, 0x06, 0xa0, 0x77, 0x51,
+ 0x54, 0x40, 0x93, 0xe2, 0x22, 0x4a, 0x73, 0x20, 0x59, 0x2e, 0xbb, 0x55,
+ 0x60, 0x6c, 0x73, 0xf7, 0x85, 0xf3, 0x95, 0x0f, 0xab, 0x2e, 0x03, 0x95,
+ 0xb0, 0x21, 0xf0, 0x26, 0x0d, 0xf5, 0xf5, 0x11, 0x2b, 0x3d, 0x56, 0x8a,
+};
+static const unsigned char kat4313_entropyinpr1[] = {
+ 0x6c, 0x50, 0x04, 0x85, 0xe2, 0x2f, 0x76, 0xfe, 0x2d, 0x2c, 0x1f, 0xcf,
+ 0xa2, 0x6f, 0x82, 0x3a, 0x3d, 0x96, 0xf2, 0x85, 0x1f, 0x2d, 0xe2, 0x16,
+ 0xe8, 0x49, 0x23, 0xca, 0x6a, 0x81, 0xc1, 0xb7, 0xff, 0x5f, 0x39, 0xd4,
+ 0x38, 0xb0, 0x9b, 0xbc, 0xc1, 0xf7, 0xbe, 0xe5, 0x3a, 0x8f, 0x65, 0x40,
+};
+static const unsigned char kat4313_addinpr1[] = {
+ 0x44, 0xea, 0x34, 0xf3, 0xa8, 0x3d, 0x35, 0xa1, 0xa1, 0xdf, 0x84, 0x32,
+ 0xdc, 0x00, 0xea, 0x17, 0x06, 0xee, 0x7f, 0xe7, 0xd1, 0x18, 0x15, 0x49,
+ 0x44, 0xda, 0x8b, 0x85, 0x0d, 0xb1, 0xa6, 0x8f, 0xd9, 0x6f, 0x39, 0x60,
+ 0x04, 0x28, 0xca, 0x9b, 0x73, 0x33, 0xc4, 0x68, 0x2f, 0x41, 0x54, 0x7b,
+};
+static const unsigned char kat4313_entropyinpr2[] = {
+ 0x8a, 0x3f, 0xa7, 0x86, 0x1e, 0x35, 0xff, 0x9e, 0x12, 0x93, 0x46, 0xfa,
+ 0xb3, 0x48, 0x6d, 0x8c, 0x2c, 0x9e, 0x1e, 0x79, 0x31, 0xda, 0x36, 0x03,
+ 0xd3, 0x89, 0x8b, 0x12, 0x11, 0x6a, 0x3a, 0x76, 0xc5, 0x69, 0xa7, 0x90,
+ 0x17, 0x57, 0x0b, 0xea, 0x10, 0x05, 0x4e, 0x71, 0xcc, 0xdf, 0x88, 0xb7,
+};
+static const unsigned char kat4313_addinpr2[] = {
+ 0x36, 0x56, 0x5e, 0xcb, 0xaa, 0x75, 0x5c, 0x0e, 0x78, 0xd9, 0x0a, 0x60,
+ 0x2c, 0x9a, 0xe1, 0x30, 0x3f, 0xe0, 0x7f, 0x36, 0xf6, 0xc1, 0xb1, 0x0b,
+ 0x62, 0x50, 0x21, 0xf3, 0x79, 0x8d, 0xd9, 0xa1, 0xc9, 0xa2, 0x10, 0xeb,
+ 0x2e, 0x33, 0x67, 0xfc, 0x6a, 0xbe, 0xc7, 0x21, 0xd8, 0x3a, 0x41, 0x2d,
+};
+static const unsigned char kat4313_retbits[] = {
+ 0xf2, 0xa1, 0xb2, 0x84, 0xa2, 0x17, 0x16, 0xaf, 0xae, 0x69, 0x21, 0xdc,
+ 0x85, 0xdd, 0xcd, 0x3c, 0xe3, 0x27, 0xce, 0x5f, 0xa8, 0x11, 0x29, 0xf6,
+ 0xb4, 0x1e, 0x23, 0xfc, 0x43, 0x5b, 0xa7, 0x65, 0x9a, 0x9b, 0x21, 0x61,
+ 0x5d, 0x51, 0xdd, 0x43, 0x6c, 0x78, 0xad, 0xe4, 0x27, 0x0a, 0xcd, 0x8b,
+ 0x06, 0xcd, 0xf3, 0xc8, 0x39, 0xc1, 0xce, 0x05, 0x20, 0x7b, 0x8a, 0x8c,
+ 0x66, 0xa1, 0xe6, 0xdb,
+};
+static const struct drbg_kat_pr_true kat4313_t = {
+ 7, kat4313_entropyin, kat4313_nonce, kat4313_persstr,
+ kat4313_entropyinpr1, kat4313_addinpr1, kat4313_entropyinpr2,
+ kat4313_addinpr2, kat4313_retbits
+};
+static const struct drbg_kat kat4313 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4313_t
+};
+
+static const unsigned char kat4314_entropyin[] = {
+ 0x89, 0xf5, 0x83, 0x7e, 0xa2, 0xec, 0x6c, 0x11, 0x68, 0x20, 0x16, 0xfb,
+ 0x00, 0xbd, 0x26, 0xab, 0x50, 0x01, 0x7a, 0xf3, 0x71, 0xe5, 0xd4, 0x6d,
+ 0x34, 0x23, 0xf2, 0x63, 0x92, 0x97, 0x99, 0x4d, 0x39, 0x09, 0x9e, 0x96,
+ 0x02, 0xea, 0xc9, 0x5d, 0x03, 0x49, 0xca, 0x70, 0x98, 0xa1, 0x4f, 0x0d,
+};
+static const unsigned char kat4314_nonce[] = {0};
+static const unsigned char kat4314_persstr[] = {
+ 0x47, 0xe7, 0xd6, 0x39, 0x9a, 0xe2, 0x0b, 0x93, 0x40, 0x46, 0x06, 0x12,
+ 0x4c, 0x98, 0x03, 0x7c, 0x31, 0x30, 0x43, 0x35, 0x97, 0x7a, 0x92, 0xd2,
+ 0x52, 0x62, 0x71, 0x5f, 0x34, 0x9f, 0x05, 0xbb, 0xdd, 0x44, 0x26, 0x17,
+ 0xba, 0x2b, 0xb0, 0xf3, 0x86, 0x04, 0x54, 0x35, 0x81, 0xd9, 0x0e, 0xaa,
+};
+static const unsigned char kat4314_entropyinpr1[] = {
+ 0x78, 0x75, 0x37, 0x65, 0x50, 0xc6, 0xe0, 0x88, 0x2f, 0xc9, 0x50, 0x5b,
+ 0x0e, 0x90, 0x5a, 0x99, 0xa8, 0xd6, 0xc3, 0x40, 0xd1, 0x19, 0x27, 0x98,
+ 0xaf, 0xe3, 0x3f, 0x31, 0xe7, 0x93, 0xde, 0x12, 0x89, 0x48, 0x72, 0x72,
+ 0xe9, 0x89, 0x15, 0x99, 0xfe, 0xe5, 0xca, 0xba, 0x3a, 0x70, 0x48, 0x34,
+};
+static const unsigned char kat4314_addinpr1[] = {
+ 0x4c, 0xe3, 0x60, 0xd6, 0x83, 0x51, 0x12, 0x30, 0x57, 0x12, 0xfc, 0x20,
+ 0xd5, 0x2d, 0xc6, 0xd3, 0x0e, 0x32, 0x25, 0xd6, 0x2e, 0x35, 0xa4, 0xb5,
+ 0xaa, 0x31, 0x87, 0xea, 0xa7, 0x10, 0x4b, 0xac, 0x81, 0x67, 0x75, 0x75,
+ 0x0d, 0x6b, 0xe0, 0x70, 0x30, 0x5d, 0xed, 0x17, 0x32, 0xf3, 0x4e, 0x4b,
+};
+static const unsigned char kat4314_entropyinpr2[] = {
+ 0x59, 0x4b, 0xe9, 0xed, 0xcc, 0x63, 0x24, 0xc2, 0x89, 0x16, 0x17, 0x21,
+ 0xfb, 0xda, 0xc2, 0x52, 0xdd, 0x2f, 0x0b, 0xd2, 0xb6, 0xb8, 0x36, 0xf7,
+ 0x68, 0x35, 0x8b, 0xd0, 0x91, 0x4d, 0x38, 0xb4, 0xab, 0x40, 0x24, 0x6e,
+ 0xc1, 0xb5, 0xee, 0x94, 0xe5, 0x90, 0x38, 0x45, 0x75, 0xec, 0x80, 0x87,
+};
+static const unsigned char kat4314_addinpr2[] = {
+ 0x98, 0x06, 0x3a, 0xe8, 0xf1, 0xe5, 0x6a, 0x8c, 0xea, 0x17, 0x7f, 0x45,
+ 0x16, 0x77, 0x21, 0x4a, 0x7f, 0x41, 0x95, 0xd6, 0x20, 0x5f, 0x22, 0x0f,
+ 0x0d, 0xee, 0x8e, 0x84, 0x34, 0x51, 0x73, 0x5f, 0x6e, 0xbd, 0x94, 0xff,
+ 0x56, 0x1b, 0x09, 0xdd, 0x46, 0x3d, 0xba, 0x32, 0xde, 0x32, 0x54, 0x75,
+};
+static const unsigned char kat4314_retbits[] = {
+ 0x41, 0x5b, 0x18, 0xd5, 0x89, 0xe9, 0xfe, 0x68, 0x47, 0x3e, 0xfd, 0x2a,
+ 0x1a, 0x70, 0x06, 0xd8, 0x5e, 0x8e, 0xc6, 0xc0, 0x39, 0xe4, 0x5d, 0xa9,
+ 0xcc, 0x3d, 0x84, 0x8e, 0x2b, 0x3e, 0xd9, 0x09, 0x04, 0x4a, 0x55, 0xd5,
+ 0x7d, 0x46, 0xe1, 0x53, 0x63, 0x60, 0x09, 0x15, 0x08, 0x9d, 0x0a, 0xa2,
+ 0x25, 0x16, 0x88, 0x95, 0xa2, 0xa7, 0x1a, 0xa9, 0xf5, 0xa8, 0xfa, 0x91,
+ 0x32, 0x1b, 0x96, 0x0f,
+};
+static const struct drbg_kat_pr_true kat4314_t = {
+ 8, kat4314_entropyin, kat4314_nonce, kat4314_persstr,
+ kat4314_entropyinpr1, kat4314_addinpr1, kat4314_entropyinpr2,
+ kat4314_addinpr2, kat4314_retbits
+};
+static const struct drbg_kat kat4314 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4314_t
+};
+
+static const unsigned char kat4315_entropyin[] = {
+ 0x90, 0x91, 0xe7, 0x24, 0xf6, 0x5e, 0x07, 0xd1, 0x17, 0x8c, 0xee, 0x5a,
+ 0x18, 0xfa, 0xed, 0x55, 0xdb, 0x1c, 0xb6, 0x4f, 0x53, 0x4b, 0x5f, 0xaa,
+ 0xf0, 0x19, 0xb8, 0x9d, 0x92, 0xcb, 0x08, 0xfc, 0x49, 0x9c, 0xbd, 0xee,
+ 0xf0, 0x5f, 0xda, 0xcf, 0x51, 0xdc, 0x01, 0x84, 0x58, 0x98, 0xf3, 0x65,
+};
+static const unsigned char kat4315_nonce[] = {0};
+static const unsigned char kat4315_persstr[] = {
+ 0xa1, 0xc3, 0x81, 0xa3, 0x6c, 0xe0, 0xa8, 0x37, 0xc7, 0x4d, 0x33, 0xe4,
+ 0x16, 0x32, 0xae, 0xcc, 0xa2, 0xec, 0x14, 0xea, 0x28, 0xa0, 0xc1, 0x53,
+ 0xf9, 0xde, 0xcc, 0x47, 0xe3, 0xf9, 0x77, 0xcb, 0x34, 0x95, 0x2e, 0xd3,
+ 0xe6, 0x43, 0xc8, 0x7b, 0xcd, 0xdf, 0x32, 0xf1, 0xa1, 0x17, 0x32, 0x6f,
+};
+static const unsigned char kat4315_entropyinpr1[] = {
+ 0x77, 0x7e, 0x58, 0xa9, 0x72, 0x73, 0x99, 0x8b, 0x60, 0x03, 0x68, 0xa8,
+ 0x3a, 0x91, 0xef, 0x4b, 0xeb, 0x5d, 0x4c, 0xb2, 0xc5, 0x8b, 0x4e, 0x01,
+ 0xb0, 0x1a, 0x74, 0x45, 0x2e, 0xc2, 0xb2, 0x82, 0xb6, 0x1e, 0x93, 0x89,
+ 0x83, 0x77, 0xeb, 0x20, 0xf3, 0x35, 0xe8, 0x86, 0x74, 0xca, 0x8a, 0x3c,
+};
+static const unsigned char kat4315_addinpr1[] = {
+ 0x23, 0xcb, 0x47, 0xc2, 0xc2, 0xa2, 0xce, 0x80, 0x58, 0x98, 0x75, 0x19,
+ 0x80, 0xd9, 0x54, 0x5e, 0x3a, 0x7e, 0x67, 0x80, 0xc9, 0xd3, 0x28, 0x8b,
+ 0xe0, 0xcc, 0x75, 0xd1, 0xc7, 0xa9, 0x53, 0xe6, 0x04, 0x4a, 0x15, 0xba,
+ 0x1a, 0xdc, 0xec, 0xea, 0x2a, 0x1e, 0x17, 0x48, 0xbb, 0xc5, 0xe9, 0x48,
+};
+static const unsigned char kat4315_entropyinpr2[] = {
+ 0x55, 0x78, 0x4a, 0xcf, 0x5a, 0xc2, 0xf8, 0xfe, 0x0c, 0x85, 0xf1, 0xc5,
+ 0xd7, 0xff, 0xea, 0x80, 0x9e, 0xca, 0x75, 0x0d, 0x4c, 0x66, 0x1b, 0xc9,
+ 0x73, 0x21, 0xb3, 0x94, 0xd6, 0xff, 0xcd, 0x74, 0x27, 0xf0, 0x74, 0xf4,
+ 0x28, 0xc3, 0x86, 0x24, 0x32, 0x63, 0x63, 0xa8, 0x01, 0xea, 0x02, 0xcd,
+};
+static const unsigned char kat4315_addinpr2[] = {
+ 0x13, 0x65, 0x8c, 0xe4, 0xf9, 0x1d, 0x31, 0xb7, 0x55, 0x13, 0xac, 0xc2,
+ 0x5b, 0x8b, 0x57, 0xd9, 0xc6, 0xdf, 0x39, 0xbf, 0xd7, 0xc2, 0x5b, 0x9d,
+ 0x27, 0x81, 0xb7, 0x13, 0x2d, 0xbc, 0x0d, 0x39, 0xf2, 0x0a, 0xd5, 0x25,
+ 0x40, 0x4f, 0xb7, 0xeb, 0x15, 0x74, 0x8c, 0x86, 0x84, 0x38, 0xef, 0x3f,
+};
+static const unsigned char kat4315_retbits[] = {
+ 0x28, 0xe4, 0xce, 0x4a, 0xd7, 0x53, 0x43, 0x6b, 0x13, 0x44, 0x78, 0x1d,
+ 0x65, 0x59, 0xd4, 0xe0, 0x4c, 0x58, 0x93, 0x88, 0xc6, 0xf4, 0xea, 0xa0,
+ 0x06, 0xdd, 0x0a, 0x0a, 0xd0, 0xa3, 0x6f, 0xee, 0xe9, 0x85, 0xd7, 0xec,
+ 0x37, 0x6e, 0xac, 0x4d, 0xfa, 0x9f, 0x80, 0x44, 0xca, 0x32, 0xa5, 0x9e,
+ 0xb6, 0xc1, 0x65, 0xac, 0x21, 0x51, 0x09, 0x56, 0x85, 0x42, 0x40, 0xb4,
+ 0xfb, 0x50, 0xa9, 0x88,
+};
+static const struct drbg_kat_pr_true kat4315_t = {
+ 9, kat4315_entropyin, kat4315_nonce, kat4315_persstr,
+ kat4315_entropyinpr1, kat4315_addinpr1, kat4315_entropyinpr2,
+ kat4315_addinpr2, kat4315_retbits
+};
+static const struct drbg_kat kat4315 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4315_t
+};
+
+static const unsigned char kat4316_entropyin[] = {
+ 0x90, 0x64, 0xd7, 0x26, 0xc2, 0x45, 0x5c, 0x2f, 0xf0, 0x3c, 0x84, 0x2e,
+ 0x7e, 0xe4, 0x8d, 0xe2, 0x46, 0x3e, 0xe0, 0x0c, 0xe9, 0x7e, 0x31, 0x76,
+ 0x6f, 0x41, 0xb3, 0xc5, 0x1a, 0x6a, 0x73, 0x55, 0x9f, 0x60, 0xe2, 0xef,
+ 0x21, 0x12, 0xbd, 0xf5, 0x58, 0xc4, 0xca, 0x33, 0x25, 0xc1, 0xe6, 0x50,
+};
+static const unsigned char kat4316_nonce[] = {0};
+static const unsigned char kat4316_persstr[] = {
+ 0x45, 0x69, 0x6a, 0x91, 0xe7, 0x9c, 0x49, 0xa6, 0x53, 0x0c, 0x9d, 0xb1,
+ 0x9d, 0x06, 0x80, 0x5b, 0xbb, 0x21, 0xc4, 0xa3, 0x30, 0xab, 0xb5, 0x91,
+ 0xca, 0xe8, 0x0f, 0xb9, 0x8c, 0xdf, 0x01, 0x15, 0x0c, 0x24, 0x47, 0x71,
+ 0xee, 0x45, 0x88, 0xab, 0xba, 0xdd, 0xd7, 0xfd, 0x91, 0xd6, 0xd6, 0x9d,
+};
+static const unsigned char kat4316_entropyinpr1[] = {
+ 0xbd, 0xbb, 0xad, 0xb3, 0x34, 0xd2, 0x7c, 0xf1, 0x49, 0x39, 0x3c, 0x6c,
+ 0x57, 0x47, 0xf3, 0xb3, 0x8e, 0xd8, 0xca, 0x41, 0x57, 0x2e, 0xff, 0xfd,
+ 0x2f, 0x24, 0x1f, 0x8d, 0x68, 0xa5, 0x18, 0xc3, 0x8f, 0xa6, 0x9c, 0x2a,
+ 0x3f, 0x53, 0xf2, 0xe6, 0xb2, 0x89, 0xb5, 0xab, 0x61, 0x33, 0xa2, 0xd8,
+};
+static const unsigned char kat4316_addinpr1[] = {
+ 0x6f, 0x1c, 0x7e, 0xe9, 0xa8, 0x4d, 0x5d, 0x23, 0x8f, 0xef, 0x80, 0x6c,
+ 0xab, 0x76, 0x5a, 0xa5, 0x73, 0x97, 0xd0, 0xa9, 0x84, 0x31, 0xc3, 0x0e,
+ 0xfd, 0x05, 0xe9, 0x57, 0x94, 0x4c, 0x6a, 0xf5, 0x93, 0xca, 0x74, 0xab,
+ 0xb9, 0xd6, 0x5b, 0x58, 0xd5, 0x67, 0xd6, 0x34, 0xab, 0x8c, 0xa0, 0x33,
+};
+static const unsigned char kat4316_entropyinpr2[] = {
+ 0x30, 0x58, 0x5b, 0xae, 0xd3, 0xca, 0x02, 0x3f, 0xd2, 0x20, 0x3a, 0x58,
+ 0x35, 0x4f, 0xe9, 0xd5, 0x5b, 0xc8, 0x53, 0x3f, 0x39, 0xdb, 0xe3, 0x7a,
+ 0x74, 0xf4, 0x3a, 0x01, 0xe5, 0xf0, 0x93, 0xa7, 0xd9, 0x52, 0x24, 0x2e,
+ 0x8a, 0x20, 0xaf, 0x3a, 0xb6, 0xf5, 0xa8, 0x84, 0x45, 0xdb, 0xd9, 0x44,
+};
+static const unsigned char kat4316_addinpr2[] = {
+ 0x30, 0x25, 0xd1, 0xdd, 0x9e, 0x8b, 0x89, 0x72, 0xba, 0x7d, 0x51, 0xb2,
+ 0x09, 0xa7, 0xea, 0x38, 0xa9, 0x82, 0xbc, 0xe7, 0xa2, 0xe5, 0x90, 0x76,
+ 0x49, 0x63, 0x80, 0xfd, 0xe4, 0x97, 0x2d, 0x5a, 0x07, 0x47, 0x1b, 0xa7,
+ 0x70, 0x42, 0x05, 0xc4, 0xc0, 0x31, 0xd8, 0xe0, 0x41, 0x57, 0x5f, 0xac,
+};
+static const unsigned char kat4316_retbits[] = {
+ 0x47, 0xd5, 0x41, 0x6e, 0x0e, 0x21, 0xb9, 0xbc, 0x9d, 0x4a, 0x69, 0x0a,
+ 0xc1, 0x93, 0x19, 0xb5, 0xf4, 0x5a, 0x23, 0x1c, 0x36, 0x64, 0xb7, 0x04,
+ 0xd5, 0xf4, 0x8d, 0x82, 0xd4, 0x7e, 0xf5, 0x9c, 0xd2, 0xc2, 0x81, 0xb7,
+ 0x89, 0xd7, 0x13, 0x4c, 0x2a, 0x2a, 0x97, 0xf4, 0x5f, 0x5f, 0x84, 0xbf,
+ 0xe1, 0xec, 0x4f, 0x12, 0x84, 0xaa, 0x8e, 0x02, 0x87, 0x98, 0x86, 0xdc,
+ 0xd2, 0xea, 0x55, 0x81,
+};
+static const struct drbg_kat_pr_true kat4316_t = {
+ 10, kat4316_entropyin, kat4316_nonce, kat4316_persstr,
+ kat4316_entropyinpr1, kat4316_addinpr1, kat4316_entropyinpr2,
+ kat4316_addinpr2, kat4316_retbits
+};
+static const struct drbg_kat kat4316 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4316_t
+};
+
+static const unsigned char kat4317_entropyin[] = {
+ 0x0d, 0xdd, 0x70, 0xf8, 0x96, 0x8c, 0x35, 0x9a, 0xff, 0xa0, 0xe4, 0xba,
+ 0x9c, 0x6f, 0x22, 0x9b, 0x35, 0x35, 0x5e, 0x09, 0x1a, 0xae, 0xf3, 0x9f,
+ 0x1a, 0x7c, 0x99, 0x7c, 0xb9, 0x81, 0x94, 0x38, 0x63, 0x34, 0x32, 0xac,
+ 0x01, 0x66, 0x2f, 0xbd, 0x59, 0x01, 0x7d, 0xfc, 0xd0, 0x2b, 0x1f, 0x65,
+};
+static const unsigned char kat4317_nonce[] = {0};
+static const unsigned char kat4317_persstr[] = {
+ 0xdb, 0x86, 0xbc, 0x6b, 0xdd, 0x84, 0xc3, 0xf6, 0xcb, 0xc1, 0xea, 0xc5,
+ 0x2d, 0xda, 0x93, 0x0c, 0xb8, 0x50, 0x4e, 0x89, 0x40, 0xf0, 0xdb, 0x5b,
+ 0x01, 0x23, 0x39, 0x1a, 0xb4, 0x21, 0xd1, 0x6d, 0xc5, 0x5f, 0x47, 0xf6,
+ 0x42, 0x2c, 0x28, 0x0b, 0x77, 0x23, 0x90, 0x3c, 0x29, 0x60, 0x46, 0x70,
+};
+static const unsigned char kat4317_entropyinpr1[] = {
+ 0x70, 0x64, 0xeb, 0x18, 0x0e, 0x86, 0xba, 0x63, 0x1c, 0x24, 0xcc, 0xbd,
+ 0x63, 0x2b, 0xfe, 0xc8, 0x69, 0xcd, 0xf0, 0xa0, 0xb7, 0xaa, 0xe3, 0xe6,
+ 0x85, 0xa3, 0x3e, 0xb8, 0x08, 0x93, 0x5d, 0x25, 0x8b, 0xc7, 0xe6, 0x9f,
+ 0xa7, 0xf1, 0x57, 0xeb, 0x6c, 0x97, 0x47, 0x4e, 0x85, 0x88, 0x41, 0xdd,
+};
+static const unsigned char kat4317_addinpr1[] = {
+ 0x79, 0x79, 0x33, 0x80, 0x11, 0x14, 0xb3, 0x69, 0xb4, 0xa3, 0x6b, 0x36,
+ 0xcf, 0x84, 0x70, 0xda, 0xb2, 0xd4, 0xc0, 0x00, 0xc6, 0x3f, 0x86, 0x06,
+ 0xba, 0x7a, 0x14, 0x85, 0x77, 0x5f, 0x9d, 0x77, 0x0f, 0x37, 0x3c, 0x1b,
+ 0x2a, 0xe1, 0xe2, 0x0b, 0xa1, 0x4c, 0x1b, 0xf5, 0x75, 0xd0, 0xd8, 0xf2,
+};
+static const unsigned char kat4317_entropyinpr2[] = {
+ 0xa2, 0xe4, 0x88, 0x43, 0xd5, 0x9a, 0xbf, 0xa3, 0x32, 0xf9, 0x9f, 0x8f,
+ 0x24, 0x50, 0xe8, 0xe7, 0x26, 0x5e, 0xa0, 0x08, 0xe7, 0xa7, 0x5c, 0x99,
+ 0x05, 0x1a, 0xd6, 0x5f, 0xcd, 0x38, 0xed, 0x95, 0xa2, 0x03, 0xa7, 0xc7,
+ 0x03, 0x12, 0xe0, 0x09, 0xbf, 0xa1, 0xa9, 0x34, 0x79, 0xa2, 0xaf, 0x3a,
+};
+static const unsigned char kat4317_addinpr2[] = {
+ 0x70, 0x98, 0xea, 0xe9, 0x8b, 0x98, 0x34, 0x5f, 0x67, 0x54, 0xc9, 0xfb,
+ 0x48, 0x6a, 0xcd, 0x1b, 0x7a, 0xe0, 0x20, 0x70, 0x19, 0x72, 0x5f, 0xdf,
+ 0xeb, 0x89, 0xe0, 0x5e, 0x7f, 0xa9, 0x0d, 0x15, 0xcb, 0x79, 0xb5, 0x45,
+ 0xaa, 0x99, 0x5a, 0xce, 0xdb, 0xa4, 0x2b, 0x6d, 0xf5, 0xa1, 0xc8, 0x90,
+};
+static const unsigned char kat4317_retbits[] = {
+ 0xdf, 0xc7, 0x66, 0x0a, 0xca, 0x6c, 0x7b, 0x99, 0x58, 0x44, 0x98, 0x5f,
+ 0xc4, 0x00, 0xf4, 0x83, 0x0a, 0x02, 0xc4, 0xdc, 0x51, 0x81, 0xd4, 0xa0,
+ 0x64, 0xe3, 0x37, 0x34, 0xc2, 0x87, 0x85, 0x39, 0x81, 0x3e, 0xe1, 0x82,
+ 0xdc, 0x7a, 0x4f, 0xef, 0x1d, 0x94, 0x62, 0xdc, 0xe1, 0x9e, 0x01, 0x2b,
+ 0x3d, 0x5c, 0x97, 0x1e, 0xa1, 0x75, 0x1d, 0x56, 0xed, 0x35, 0x9d, 0x70,
+ 0x6a, 0xe3, 0xa3, 0x69,
+};
+static const struct drbg_kat_pr_true kat4317_t = {
+ 11, kat4317_entropyin, kat4317_nonce, kat4317_persstr,
+ kat4317_entropyinpr1, kat4317_addinpr1, kat4317_entropyinpr2,
+ kat4317_addinpr2, kat4317_retbits
+};
+static const struct drbg_kat kat4317 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4317_t
+};
+
+static const unsigned char kat4318_entropyin[] = {
+ 0xb4, 0x02, 0xc6, 0xe8, 0x20, 0x4e, 0xce, 0xed, 0x81, 0xec, 0x53, 0x46,
+ 0x8e, 0xae, 0x4b, 0x25, 0xcc, 0xf6, 0xcf, 0xc3, 0xe3, 0xeb, 0xe0, 0xe5,
+ 0x9b, 0x87, 0xcc, 0x07, 0x52, 0x03, 0xef, 0xad, 0xb7, 0xe9, 0x81, 0x12,
+ 0xc5, 0xdf, 0xc2, 0xcd, 0xb7, 0xe5, 0x5f, 0xa5, 0x7b, 0x09, 0x95, 0xd4,
+};
+static const unsigned char kat4318_nonce[] = {0};
+static const unsigned char kat4318_persstr[] = {
+ 0xfa, 0x2e, 0x8c, 0x7a, 0xe9, 0x54, 0x94, 0x45, 0x57, 0xb3, 0xcd, 0xea,
+ 0x7b, 0x39, 0x6c, 0x96, 0x20, 0x30, 0x3a, 0x5d, 0x5f, 0x74, 0x9d, 0x22,
+ 0xaf, 0x03, 0x81, 0x5d, 0x88, 0xe7, 0x48, 0xb1, 0x56, 0x52, 0x11, 0xf6,
+ 0xae, 0x7b, 0x0c, 0x85, 0xc8, 0x4b, 0xdb, 0x0b, 0x72, 0x40, 0x5e, 0x5b,
+};
+static const unsigned char kat4318_entropyinpr1[] = {
+ 0xd9, 0x54, 0x11, 0x03, 0x11, 0x0d, 0xf3, 0xa6, 0xd2, 0x85, 0x2c, 0x76,
+ 0x8c, 0x1b, 0x31, 0x2d, 0x2c, 0xd4, 0xe5, 0x11, 0xb3, 0x1b, 0xc7, 0x70,
+ 0xb7, 0xc1, 0x1f, 0x2b, 0xad, 0x3f, 0x82, 0xe8, 0x95, 0xd5, 0xc2, 0x8c,
+ 0xc6, 0x8b, 0xf8, 0xb0, 0xcb, 0x9f, 0x19, 0x1a, 0x93, 0xba, 0x2e, 0x9c,
+};
+static const unsigned char kat4318_addinpr1[] = {
+ 0x37, 0x43, 0x25, 0x94, 0x93, 0xfa, 0xfc, 0xa8, 0x38, 0xf3, 0xdf, 0x52,
+ 0x7d, 0x75, 0xad, 0xe8, 0x3a, 0x0f, 0xbd, 0x6a, 0x6c, 0x1f, 0x79, 0xe2,
+ 0xf1, 0x40, 0xb0, 0xad, 0xad, 0x9b, 0x42, 0x5e, 0x02, 0xef, 0x80, 0x4a,
+ 0xdb, 0x84, 0x51, 0x7f, 0x99, 0x36, 0xcb, 0xbe, 0x67, 0x0f, 0x4f, 0xec,
+};
+static const unsigned char kat4318_entropyinpr2[] = {
+ 0x41, 0x7b, 0xfb, 0x46, 0x0c, 0x4e, 0xa3, 0xcd, 0x8a, 0x9e, 0x35, 0x09,
+ 0x85, 0xab, 0x04, 0xef, 0xfe, 0x9c, 0xef, 0xb5, 0x9c, 0x6e, 0x61, 0x94,
+ 0xb7, 0x9d, 0x25, 0x2e, 0xea, 0x00, 0x88, 0xd4, 0xd0, 0x7f, 0x9e, 0x5c,
+ 0x74, 0xca, 0xa3, 0xa3, 0x34, 0xa7, 0x9e, 0x90, 0xad, 0x01, 0xe3, 0x3f,
+};
+static const unsigned char kat4318_addinpr2[] = {
+ 0x9f, 0x90, 0xc6, 0xdb, 0x02, 0x8e, 0x49, 0xea, 0xc2, 0x0b, 0x0c, 0xc2,
+ 0xdb, 0x9c, 0xe1, 0x0e, 0x41, 0x36, 0x62, 0x1a, 0x8e, 0xbe, 0x26, 0x95,
+ 0x4e, 0x77, 0xea, 0xcd, 0x08, 0x2c, 0x46, 0x7f, 0x08, 0xdd, 0xfe, 0x31,
+ 0x3b, 0xce, 0x0b, 0x11, 0x7d, 0x36, 0x95, 0xc3, 0x60, 0x99, 0x95, 0xee,
+};
+static const unsigned char kat4318_retbits[] = {
+ 0xfc, 0xf2, 0xc7, 0x3d, 0xfb, 0x68, 0x49, 0xdf, 0x7f, 0x0a, 0xab, 0xaf,
+ 0x41, 0xcd, 0x8f, 0x19, 0x7a, 0xde, 0x73, 0xf6, 0x40, 0x65, 0x6e, 0x5e,
+ 0x31, 0x00, 0x90, 0xd1, 0x3b, 0x58, 0xce, 0x24, 0x6c, 0x5b, 0xf0, 0xa2,
+ 0xfc, 0xb9, 0xec, 0x8e, 0xc1, 0xce, 0x52, 0x50, 0xee, 0xc3, 0x4a, 0x39,
+ 0x0d, 0x06, 0x17, 0x9e, 0x89, 0xb2, 0x52, 0xd7, 0x57, 0x4c, 0x5a, 0x8a,
+ 0x52, 0x8a, 0x3a, 0x45,
+};
+static const struct drbg_kat_pr_true kat4318_t = {
+ 12, kat4318_entropyin, kat4318_nonce, kat4318_persstr,
+ kat4318_entropyinpr1, kat4318_addinpr1, kat4318_entropyinpr2,
+ kat4318_addinpr2, kat4318_retbits
+};
+static const struct drbg_kat kat4318 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4318_t
+};
+
+static const unsigned char kat4319_entropyin[] = {
+ 0xd8, 0x2f, 0x8d, 0x6a, 0x96, 0xfa, 0x88, 0xc4, 0xf7, 0x36, 0x62, 0x26,
+ 0x91, 0xf9, 0x66, 0x60, 0x6a, 0xf4, 0x19, 0x3d, 0x8e, 0x09, 0xa7, 0xcb,
+ 0x80, 0xcc, 0x3a, 0x5a, 0x94, 0x36, 0x97, 0x19, 0x4c, 0xca, 0xea, 0x0f,
+ 0x83, 0x26, 0xff, 0x4e, 0x6f, 0xaf, 0xcf, 0xcc, 0x6d, 0xf2, 0x0d, 0x15,
+};
+static const unsigned char kat4319_nonce[] = {0};
+static const unsigned char kat4319_persstr[] = {
+ 0x35, 0xf2, 0x25, 0x6c, 0x8b, 0x1a, 0x18, 0x65, 0x9f, 0xcb, 0xf7, 0x37,
+ 0x8a, 0x8f, 0x8f, 0x2f, 0xd3, 0xae, 0x20, 0x81, 0x87, 0xe1, 0xf6, 0xb8,
+ 0xf9, 0x98, 0xe9, 0x82, 0x40, 0x7a, 0xab, 0x6a, 0x12, 0xb2, 0xb7, 0xbb,
+ 0x6a, 0x6e, 0xb3, 0x7e, 0x77, 0x88, 0xf6, 0x50, 0x67, 0x9d, 0x61, 0xcb,
+};
+static const unsigned char kat4319_entropyinpr1[] = {
+ 0xaf, 0x13, 0xfc, 0x68, 0x12, 0xb0, 0x98, 0x32, 0xf2, 0x8b, 0x54, 0xd6,
+ 0x69, 0x43, 0x25, 0x51, 0xb7, 0xa2, 0xb0, 0xb9, 0x83, 0x67, 0xb6, 0x61,
+ 0x60, 0x01, 0xbb, 0xed, 0x2b, 0x1f, 0x91, 0x97, 0x61, 0x2d, 0x11, 0xb0,
+ 0x15, 0x69, 0x8e, 0x06, 0x1d, 0x70, 0x1e, 0xd9, 0x5f, 0x31, 0xab, 0x8f,
+};
+static const unsigned char kat4319_addinpr1[] = {
+ 0xf7, 0x31, 0x74, 0x06, 0x93, 0x98, 0xdd, 0xd8, 0xc2, 0x6e, 0x4c, 0x69,
+ 0x05, 0xc7, 0x0d, 0x09, 0xeb, 0x2c, 0x6b, 0xa9, 0x5c, 0xda, 0x87, 0x90,
+ 0x88, 0xea, 0xc2, 0x72, 0x5c, 0xc2, 0x0d, 0xdb, 0xa4, 0xb4, 0x23, 0xe0,
+ 0xff, 0x51, 0xa0, 0xf5, 0x12, 0xdd, 0xad, 0xb9, 0x16, 0xec, 0x60, 0x62,
+};
+static const unsigned char kat4319_entropyinpr2[] = {
+ 0xcc, 0xe4, 0x4c, 0x6d, 0x3c, 0x45, 0x74, 0xf4, 0x87, 0x64, 0x53, 0x20,
+ 0x56, 0x79, 0xf0, 0xc2, 0x76, 0x84, 0x72, 0xa9, 0x47, 0x78, 0xec, 0x4f,
+ 0x03, 0x85, 0x1e, 0x36, 0x9a, 0x62, 0x33, 0x8c, 0x85, 0x20, 0xcc, 0x53,
+ 0xf3, 0x16, 0x30, 0xf6, 0x62, 0x87, 0x9d, 0x70, 0xd6, 0xe9, 0x3f, 0x74,
+};
+static const unsigned char kat4319_addinpr2[] = {
+ 0x58, 0x72, 0xb2, 0xab, 0x09, 0xe8, 0x37, 0x20, 0x04, 0x25, 0x3a, 0xa2,
+ 0x9b, 0xf5, 0xca, 0x82, 0x0b, 0xc8, 0x5c, 0x2a, 0x01, 0xcf, 0x31, 0x72,
+ 0x15, 0xfc, 0x97, 0xba, 0xdf, 0x81, 0x4f, 0xbe, 0xe3, 0xe0, 0x26, 0xd3,
+ 0xd3, 0xa5, 0x24, 0xad, 0xe8, 0x8c, 0xf9, 0x72, 0x08, 0x36, 0x69, 0x47,
+};
+static const unsigned char kat4319_retbits[] = {
+ 0x9a, 0x19, 0xf4, 0x2e, 0xfe, 0xdf, 0x09, 0xef, 0x0f, 0xdd, 0x24, 0xe7,
+ 0x21, 0x8f, 0xb5, 0xd5, 0xe7, 0xac, 0xcd, 0x7a, 0x36, 0x42, 0xb3, 0x6a,
+ 0x84, 0x10, 0x00, 0x3a, 0x49, 0x38, 0x55, 0x48, 0xc1, 0xc7, 0x2e, 0x6f,
+ 0xeb, 0x0e, 0x30, 0x5e, 0x9c, 0x2a, 0x3f, 0x35, 0x29, 0xf8, 0x11, 0x0e,
+ 0x08, 0x4f, 0x02, 0x80, 0x8d, 0xf1, 0xe0, 0x87, 0x4b, 0x10, 0xdd, 0xe2,
+ 0xf0, 0xa9, 0x2f, 0x52,
+};
+static const struct drbg_kat_pr_true kat4319_t = {
+ 13, kat4319_entropyin, kat4319_nonce, kat4319_persstr,
+ kat4319_entropyinpr1, kat4319_addinpr1, kat4319_entropyinpr2,
+ kat4319_addinpr2, kat4319_retbits
+};
+static const struct drbg_kat kat4319 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4319_t
+};
+
+static const unsigned char kat4320_entropyin[] = {
+ 0x5a, 0x6e, 0x33, 0xd1, 0x56, 0x67, 0x27, 0x28, 0x14, 0xb1, 0xb8, 0x3e,
+ 0x37, 0x24, 0xf9, 0x95, 0xaf, 0x0f, 0xb0, 0x5c, 0x24, 0x72, 0x03, 0xc3,
+ 0x4a, 0x07, 0xa6, 0x74, 0x36, 0xe7, 0xde, 0xdc, 0xd7, 0x17, 0xa2, 0x4c,
+ 0xa4, 0xa9, 0xd9, 0xf9, 0xd4, 0x7a, 0x6b, 0x6b, 0x84, 0xb6, 0x3b, 0x88,
+};
+static const unsigned char kat4320_nonce[] = {0};
+static const unsigned char kat4320_persstr[] = {
+ 0xf3, 0xfe, 0x7a, 0xd7, 0xd0, 0xd6, 0xb8, 0x60, 0x93, 0x12, 0xf0, 0x49,
+ 0xf7, 0x5a, 0x2e, 0x9c, 0xe6, 0x43, 0xc9, 0x35, 0xd8, 0x2a, 0xce, 0x41,
+ 0xdb, 0xa5, 0xb0, 0xc1, 0xc9, 0x85, 0x68, 0x43, 0x28, 0xfe, 0x31, 0xc4,
+ 0xe7, 0x7d, 0xb6, 0x0f, 0x25, 0x14, 0x38, 0xed, 0x74, 0x83, 0xef, 0x19,
+};
+static const unsigned char kat4320_entropyinpr1[] = {
+ 0xb4, 0xe1, 0x56, 0xfe, 0x5a, 0x63, 0x56, 0xcf, 0xcb, 0x2c, 0xbb, 0x79,
+ 0xa1, 0x81, 0xe4, 0x0a, 0x1d, 0x8f, 0xd0, 0xe1, 0x0f, 0xc4, 0x77, 0x58,
+ 0x93, 0xb8, 0x51, 0x32, 0xed, 0xe0, 0xca, 0x22, 0x26, 0x8e, 0xad, 0x5a,
+ 0x40, 0xb6, 0xde, 0x69, 0x84, 0xce, 0xe2, 0xfc, 0xa6, 0x2f, 0xdb, 0xee,
+};
+static const unsigned char kat4320_addinpr1[] = {
+ 0x56, 0x1d, 0x2a, 0x23, 0x52, 0xab, 0x0e, 0x73, 0xf3, 0xec, 0x11, 0x35,
+ 0xe4, 0xf2, 0xdd, 0x22, 0x6d, 0x5f, 0x3e, 0x4b, 0xc3, 0xc4, 0xd8, 0xc4,
+ 0x6d, 0xe8, 0x66, 0x44, 0x65, 0x99, 0x44, 0x6d, 0x0f, 0x15, 0x8b, 0xda,
+ 0x30, 0xc3, 0xee, 0xc2, 0x03, 0x3d, 0xbe, 0x09, 0x92, 0x4c, 0x94, 0xb1,
+};
+static const unsigned char kat4320_entropyinpr2[] = {
+ 0xd0, 0x04, 0xfa, 0x7a, 0xe5, 0x59, 0x65, 0x6f, 0x6a, 0x8f, 0x85, 0x25,
+ 0xc6, 0xe5, 0x5d, 0x24, 0x5c, 0x8d, 0x7f, 0x58, 0x0c, 0xfe, 0x63, 0xba,
+ 0x84, 0x57, 0x5c, 0x5b, 0x6e, 0xf8, 0xbb, 0xf6, 0x13, 0x0f, 0xda, 0x8f,
+ 0x01, 0xfd, 0x87, 0x30, 0x79, 0x23, 0xe0, 0x63, 0x9a, 0x23, 0xf4, 0xe8,
+};
+static const unsigned char kat4320_addinpr2[] = {
+ 0x1f, 0xc6, 0x76, 0x04, 0x93, 0x0d, 0xec, 0xe4, 0x93, 0x7f, 0x2b, 0x01,
+ 0xaa, 0x4c, 0x44, 0xeb, 0x63, 0x70, 0xa5, 0xfb, 0xe1, 0xe1, 0x68, 0xa8,
+ 0x4c, 0x26, 0xfa, 0x3c, 0x6d, 0xd0, 0xfd, 0xa4, 0xe2, 0x07, 0x16, 0x96,
+ 0xe3, 0x24, 0x6d, 0x34, 0x85, 0xf4, 0xd5, 0xf1, 0x9c, 0x6b, 0x18, 0x53,
+};
+static const unsigned char kat4320_retbits[] = {
+ 0x65, 0xfa, 0x1b, 0x5c, 0xd3, 0xbc, 0x6f, 0x0a, 0x6a, 0x89, 0x90, 0x14,
+ 0xf8, 0xdd, 0x94, 0xc6, 0x24, 0xcb, 0xd6, 0xde, 0xef, 0xa5, 0x0b, 0x3f,
+ 0x65, 0xa1, 0x06, 0x7a, 0x1a, 0xfb, 0x95, 0x2f, 0x13, 0x4f, 0xf7, 0x33,
+ 0x35, 0x81, 0x84, 0x33, 0x52, 0x60, 0xd2, 0x85, 0xc1, 0x76, 0x71, 0x8f,
+ 0xcc, 0x58, 0xf0, 0xd2, 0x82, 0xa2, 0x48, 0x11, 0xb8, 0x60, 0x8f, 0x3d,
+ 0x75, 0x3d, 0xe0, 0x68,
+};
+static const struct drbg_kat_pr_true kat4320_t = {
+ 14, kat4320_entropyin, kat4320_nonce, kat4320_persstr,
+ kat4320_entropyinpr1, kat4320_addinpr1, kat4320_entropyinpr2,
+ kat4320_addinpr2, kat4320_retbits
+};
+static const struct drbg_kat kat4320 = {
+ PR_TRUE, NO_DF, NID_aes_256_ctr, 48, 0, 48, 48, 64, &kat4320_t
+};
+
+const struct drbg_kat *drbg_test[] = {
+ &kat1, &kat2, &kat3, &kat4, &kat5, &kat6, &kat7,
+ &kat8, &kat9, &kat10, &kat11, &kat12, &kat13, &kat14,
+ &kat15, &kat16, &kat17, &kat18, &kat19, &kat20, &kat21,
+ &kat22, &kat23, &kat24, &kat25, &kat26, &kat27, &kat28,
+ &kat29, &kat30, &kat31, &kat32, &kat33, &kat34, &kat35,
+ &kat36, &kat37, &kat38, &kat39, &kat40, &kat41, &kat42,
+ &kat43, &kat44, &kat45, &kat46, &kat47, &kat48, &kat49,
+ &kat50, &kat51, &kat52, &kat53, &kat54, &kat55, &kat56,
+ &kat57, &kat58, &kat59, &kat60, &kat61, &kat62, &kat63,
+ &kat64, &kat65, &kat66, &kat67, &kat68, &kat69, &kat70,
+ &kat71, &kat72, &kat73, &kat74, &kat75, &kat76, &kat77,
+ &kat78, &kat79, &kat80, &kat81, &kat82, &kat83, &kat84,
+ &kat85, &kat86, &kat87, &kat88, &kat89, &kat90, &kat91,
+ &kat92, &kat93, &kat94, &kat95, &kat96, &kat97, &kat98,
+ &kat99, &kat100, &kat101, &kat102, &kat103, &kat104, &kat105,
+ &kat106, &kat107, &kat108, &kat109, &kat110, &kat111, &kat112,
+ &kat113, &kat114, &kat115, &kat116, &kat117, &kat118, &kat119,
+ &kat120, &kat121, &kat122, &kat123, &kat124, &kat125, &kat126,
+ &kat127, &kat128, &kat129, &kat130, &kat131, &kat132, &kat133,
+ &kat134, &kat135, &kat136, &kat137, &kat138, &kat139, &kat140,
+ &kat141, &kat142, &kat143, &kat144, &kat145, &kat146, &kat147,
+ &kat148, &kat149, &kat150, &kat151, &kat152, &kat153, &kat154,
+ &kat155, &kat156, &kat157, &kat158, &kat159, &kat160, &kat161,
+ &kat162, &kat163, &kat164, &kat165, &kat166, &kat167, &kat168,
+ &kat169, &kat170, &kat171, &kat172, &kat173, &kat174, &kat175,
+ &kat176, &kat177, &kat178, &kat179, &kat180, &kat181, &kat182,
+ &kat183, &kat184, &kat185, &kat186, &kat187, &kat188, &kat189,
+ &kat190, &kat191, &kat192, &kat193, &kat194, &kat195, &kat196,
+ &kat197, &kat198, &kat199, &kat200, &kat201, &kat202, &kat203,
+ &kat204, &kat205, &kat206, &kat207, &kat208, &kat209, &kat210,
+ &kat211, &kat212, &kat213, &kat214, &kat215, &kat216, &kat217,
+ &kat218, &kat219, &kat220, &kat221, &kat222, &kat223, &kat224,
+ &kat225, &kat226, &kat227, &kat228, &kat229, &kat230, &kat231,
+ &kat232, &kat233, &kat234, &kat235, &kat236, &kat237, &kat238,
+ &kat239, &kat240, &kat241, &kat242, &kat243, &kat244, &kat245,
+ &kat246, &kat247, &kat248, &kat249, &kat250, &kat251, &kat252,
+ &kat253, &kat254, &kat255, &kat256, &kat257, &kat258, &kat259,
+ &kat260, &kat261, &kat262, &kat263, &kat264, &kat265, &kat266,
+ &kat267, &kat268, &kat269, &kat270, &kat271, &kat272, &kat273,
+ &kat274, &kat275, &kat276, &kat277, &kat278, &kat279, &kat280,
+ &kat281, &kat282, &kat283, &kat284, &kat285, &kat286, &kat287,
+ &kat288, &kat289, &kat290, &kat291, &kat292, &kat293, &kat294,
+ &kat295, &kat296, &kat297, &kat298, &kat299, &kat300, &kat301,
+ &kat302, &kat303, &kat304, &kat305, &kat306, &kat307, &kat308,
+ &kat309, &kat310, &kat311, &kat312, &kat313, &kat314, &kat315,
+ &kat316, &kat317, &kat318, &kat319, &kat320, &kat321, &kat322,
+ &kat323, &kat324, &kat325, &kat326, &kat327, &kat328, &kat329,
+ &kat330, &kat331, &kat332, &kat333, &kat334, &kat335, &kat336,
+ &kat337, &kat338, &kat339, &kat340, &kat341, &kat342, &kat343,
+ &kat344, &kat345, &kat346, &kat347, &kat348, &kat349, &kat350,
+ &kat351, &kat352, &kat353, &kat354, &kat355, &kat356, &kat357,
+ &kat358, &kat359, &kat360, &kat361, &kat362, &kat363, &kat364,
+ &kat365, &kat366, &kat367, &kat368, &kat369, &kat370, &kat371,
+ &kat372, &kat373, &kat374, &kat375, &kat376, &kat377, &kat378,
+ &kat379, &kat380, &kat381, &kat382, &kat383, &kat384, &kat385,
+ &kat386, &kat387, &kat388, &kat389, &kat390, &kat391, &kat392,
+ &kat393, &kat394, &kat395, &kat396, &kat397, &kat398, &kat399,
+ &kat400, &kat401, &kat402, &kat403, &kat404, &kat405, &kat406,
+ &kat407, &kat408, &kat409, &kat410, &kat411, &kat412, &kat413,
+ &kat414, &kat415, &kat416, &kat417, &kat418, &kat419, &kat420,
+ &kat421, &kat422, &kat423, &kat424, &kat425, &kat426, &kat427,
+ &kat428, &kat429, &kat430, &kat431, &kat432, &kat433, &kat434,
+ &kat435, &kat436, &kat437, &kat438, &kat439, &kat440, &kat441,
+ &kat442, &kat443, &kat444, &kat445, &kat446, &kat447, &kat448,
+ &kat449, &kat450, &kat451, &kat452, &kat453, &kat454, &kat455,
+ &kat456, &kat457, &kat458, &kat459, &kat460, &kat461, &kat462,
+ &kat463, &kat464, &kat465, &kat466, &kat467, &kat468, &kat469,
+ &kat470, &kat471, &kat472, &kat473, &kat474, &kat475, &kat476,
+ &kat477, &kat478, &kat479, &kat480, &kat481, &kat482, &kat483,
+ &kat484, &kat485, &kat486, &kat487, &kat488, &kat489, &kat490,
+ &kat491, &kat492, &kat493, &kat494, &kat495, &kat496, &kat497,
+ &kat498, &kat499, &kat500, &kat501, &kat502, &kat503, &kat504,
+ &kat505, &kat506, &kat507, &kat508, &kat509, &kat510, &kat511,
+ &kat512, &kat513, &kat514, &kat515, &kat516, &kat517, &kat518,
+ &kat519, &kat520, &kat521, &kat522, &kat523, &kat524, &kat525,
+ &kat526, &kat527, &kat528, &kat529, &kat530, &kat531, &kat532,
+ &kat533, &kat534, &kat535, &kat536, &kat537, &kat538, &kat539,
+ &kat540, &kat541, &kat542, &kat543, &kat544, &kat545, &kat546,
+ &kat547, &kat548, &kat549, &kat550, &kat551, &kat552, &kat553,
+ &kat554, &kat555, &kat556, &kat557, &kat558, &kat559, &kat560,
+ &kat561, &kat562, &kat563, &kat564, &kat565, &kat566, &kat567,
+ &kat568, &kat569, &kat570, &kat571, &kat572, &kat573, &kat574,
+ &kat575, &kat576, &kat577, &kat578, &kat579, &kat580, &kat581,
+ &kat582, &kat583, &kat584, &kat585, &kat586, &kat587, &kat588,
+ &kat589, &kat590, &kat591, &kat592, &kat593, &kat594, &kat595,
+ &kat596, &kat597, &kat598, &kat599, &kat600, &kat601, &kat602,
+ &kat603, &kat604, &kat605, &kat606, &kat607, &kat608, &kat609,
+ &kat610, &kat611, &kat612, &kat613, &kat614, &kat615, &kat616,
+ &kat617, &kat618, &kat619, &kat620, &kat621, &kat622, &kat623,
+ &kat624, &kat625, &kat626, &kat627, &kat628, &kat629, &kat630,
+ &kat631, &kat632, &kat633, &kat634, &kat635, &kat636, &kat637,
+ &kat638, &kat639, &kat640, &kat641, &kat642, &kat643, &kat644,
+ &kat645, &kat646, &kat647, &kat648, &kat649, &kat650, &kat651,
+ &kat652, &kat653, &kat654, &kat655, &kat656, &kat657, &kat658,
+ &kat659, &kat660, &kat661, &kat662, &kat663, &kat664, &kat665,
+ &kat666, &kat667, &kat668, &kat669, &kat670, &kat671, &kat672,
+ &kat673, &kat674, &kat675, &kat676, &kat677, &kat678, &kat679,
+ &kat680, &kat681, &kat682, &kat683, &kat684, &kat685, &kat686,
+ &kat687, &kat688, &kat689, &kat690, &kat691, &kat692, &kat693,
+ &kat694, &kat695, &kat696, &kat697, &kat698, &kat699, &kat700,
+ &kat701, &kat702, &kat703, &kat704, &kat705, &kat706, &kat707,
+ &kat708, &kat709, &kat710, &kat711, &kat712, &kat713, &kat714,
+ &kat715, &kat716, &kat717, &kat718, &kat719, &kat720, &kat721,
+ &kat722, &kat723, &kat724, &kat725, &kat726, &kat727, &kat728,
+ &kat729, &kat730, &kat731, &kat732, &kat733, &kat734, &kat735,
+ &kat736, &kat737, &kat738, &kat739, &kat740, &kat741, &kat742,
+ &kat743, &kat744, &kat745, &kat746, &kat747, &kat748, &kat749,
+ &kat750, &kat751, &kat752, &kat753, &kat754, &kat755, &kat756,
+ &kat757, &kat758, &kat759, &kat760, &kat761, &kat762, &kat763,
+ &kat764, &kat765, &kat766, &kat767, &kat768, &kat769, &kat770,
+ &kat771, &kat772, &kat773, &kat774, &kat775, &kat776, &kat777,
+ &kat778, &kat779, &kat780, &kat781, &kat782, &kat783, &kat784,
+ &kat785, &kat786, &kat787, &kat788, &kat789, &kat790, &kat791,
+ &kat792, &kat793, &kat794, &kat795, &kat796, &kat797, &kat798,
+ &kat799, &kat800, &kat801, &kat802, &kat803, &kat804, &kat805,
+ &kat806, &kat807, &kat808, &kat809, &kat810, &kat811, &kat812,
+ &kat813, &kat814, &kat815, &kat816, &kat817, &kat818, &kat819,
+ &kat820, &kat821, &kat822, &kat823, &kat824, &kat825, &kat826,
+ &kat827, &kat828, &kat829, &kat830, &kat831, &kat832, &kat833,
+ &kat834, &kat835, &kat836, &kat837, &kat838, &kat839, &kat840,
+ &kat841, &kat842, &kat843, &kat844, &kat845, &kat846, &kat847,
+ &kat848, &kat849, &kat850, &kat851, &kat852, &kat853, &kat854,
+ &kat855, &kat856, &kat857, &kat858, &kat859, &kat860, &kat861,
+ &kat862, &kat863, &kat864, &kat865, &kat866, &kat867, &kat868,
+ &kat869, &kat870, &kat871, &kat872, &kat873, &kat874, &kat875,
+ &kat876, &kat877, &kat878, &kat879, &kat880, &kat881, &kat882,
+ &kat883, &kat884, &kat885, &kat886, &kat887, &kat888, &kat889,
+ &kat890, &kat891, &kat892, &kat893, &kat894, &kat895, &kat896,
+ &kat897, &kat898, &kat899, &kat900, &kat901, &kat902, &kat903,
+ &kat904, &kat905, &kat906, &kat907, &kat908, &kat909, &kat910,
+ &kat911, &kat912, &kat913, &kat914, &kat915, &kat916, &kat917,
+ &kat918, &kat919, &kat920, &kat921, &kat922, &kat923, &kat924,
+ &kat925, &kat926, &kat927, &kat928, &kat929, &kat930, &kat931,
+ &kat932, &kat933, &kat934, &kat935, &kat936, &kat937, &kat938,
+ &kat939, &kat940, &kat941, &kat942, &kat943, &kat944, &kat945,
+ &kat946, &kat947, &kat948, &kat949, &kat950, &kat951, &kat952,
+ &kat953, &kat954, &kat955, &kat956, &kat957, &kat958, &kat959,
+ &kat960, &kat961, &kat962, &kat963, &kat964, &kat965, &kat966,
+ &kat967, &kat968, &kat969, &kat970, &kat971, &kat972, &kat973,
+ &kat974, &kat975, &kat976, &kat977, &kat978, &kat979, &kat980,
+ &kat981, &kat982, &kat983, &kat984, &kat985, &kat986, &kat987,
+ &kat988, &kat989, &kat990, &kat991, &kat992, &kat993, &kat994,
+ &kat995, &kat996, &kat997, &kat998, &kat999, &kat1000, &kat1001,
+ &kat1002, &kat1003, &kat1004, &kat1005, &kat1006, &kat1007, &kat1008,
+ &kat1009, &kat1010, &kat1011, &kat1012, &kat1013, &kat1014, &kat1015,
+ &kat1016, &kat1017, &kat1018, &kat1019, &kat1020, &kat1021, &kat1022,
+ &kat1023, &kat1024, &kat1025, &kat1026, &kat1027, &kat1028, &kat1029,
+ &kat1030, &kat1031, &kat1032, &kat1033, &kat1034, &kat1035, &kat1036,
+ &kat1037, &kat1038, &kat1039, &kat1040, &kat1041, &kat1042, &kat1043,
+ &kat1044, &kat1045, &kat1046, &kat1047, &kat1048, &kat1049, &kat1050,
+ &kat1051, &kat1052, &kat1053, &kat1054, &kat1055, &kat1056, &kat1057,
+ &kat1058, &kat1059, &kat1060, &kat1061, &kat1062, &kat1063, &kat1064,
+ &kat1065, &kat1066, &kat1067, &kat1068, &kat1069, &kat1070, &kat1071,
+ &kat1072, &kat1073, &kat1074, &kat1075, &kat1076, &kat1077, &kat1078,
+ &kat1079, &kat1080, &kat1081, &kat1082, &kat1083, &kat1084, &kat1085,
+ &kat1086, &kat1087, &kat1088, &kat1089, &kat1090, &kat1091, &kat1092,
+ &kat1093, &kat1094, &kat1095, &kat1096, &kat1097, &kat1098, &kat1099,
+ &kat1100, &kat1101, &kat1102, &kat1103, &kat1104, &kat1105, &kat1106,
+ &kat1107, &kat1108, &kat1109, &kat1110, &kat1111, &kat1112, &kat1113,
+ &kat1114, &kat1115, &kat1116, &kat1117, &kat1118, &kat1119, &kat1120,
+ &kat1121, &kat1122, &kat1123, &kat1124, &kat1125, &kat1126, &kat1127,
+ &kat1128, &kat1129, &kat1130, &kat1131, &kat1132, &kat1133, &kat1134,
+ &kat1135, &kat1136, &kat1137, &kat1138, &kat1139, &kat1140, &kat1141,
+ &kat1142, &kat1143, &kat1144, &kat1145, &kat1146, &kat1147, &kat1148,
+ &kat1149, &kat1150, &kat1151, &kat1152, &kat1153, &kat1154, &kat1155,
+ &kat1156, &kat1157, &kat1158, &kat1159, &kat1160, &kat1161, &kat1162,
+ &kat1163, &kat1164, &kat1165, &kat1166, &kat1167, &kat1168, &kat1169,
+ &kat1170, &kat1171, &kat1172, &kat1173, &kat1174, &kat1175, &kat1176,
+ &kat1177, &kat1178, &kat1179, &kat1180, &kat1181, &kat1182, &kat1183,
+ &kat1184, &kat1185, &kat1186, &kat1187, &kat1188, &kat1189, &kat1190,
+ &kat1191, &kat1192, &kat1193, &kat1194, &kat1195, &kat1196, &kat1197,
+ &kat1198, &kat1199, &kat1200, &kat1201, &kat1202, &kat1203, &kat1204,
+ &kat1205, &kat1206, &kat1207, &kat1208, &kat1209, &kat1210, &kat1211,
+ &kat1212, &kat1213, &kat1214, &kat1215, &kat1216, &kat1217, &kat1218,
+ &kat1219, &kat1220, &kat1221, &kat1222, &kat1223, &kat1224, &kat1225,
+ &kat1226, &kat1227, &kat1228, &kat1229, &kat1230, &kat1231, &kat1232,
+ &kat1233, &kat1234, &kat1235, &kat1236, &kat1237, &kat1238, &kat1239,
+ &kat1240, &kat1241, &kat1242, &kat1243, &kat1244, &kat1245, &kat1246,
+ &kat1247, &kat1248, &kat1249, &kat1250, &kat1251, &kat1252, &kat1253,
+ &kat1254, &kat1255, &kat1256, &kat1257, &kat1258, &kat1259, &kat1260,
+ &kat1261, &kat1262, &kat1263, &kat1264, &kat1265, &kat1266, &kat1267,
+ &kat1268, &kat1269, &kat1270, &kat1271, &kat1272, &kat1273, &kat1274,
+ &kat1275, &kat1276, &kat1277, &kat1278, &kat1279, &kat1280, &kat1281,
+ &kat1282, &kat1283, &kat1284, &kat1285, &kat1286, &kat1287, &kat1288,
+ &kat1289, &kat1290, &kat1291, &kat1292, &kat1293, &kat1294, &kat1295,
+ &kat1296, &kat1297, &kat1298, &kat1299, &kat1300, &kat1301, &kat1302,
+ &kat1303, &kat1304, &kat1305, &kat1306, &kat1307, &kat1308, &kat1309,
+ &kat1310, &kat1311, &kat1312, &kat1313, &kat1314, &kat1315, &kat1316,
+ &kat1317, &kat1318, &kat1319, &kat1320, &kat1321, &kat1322, &kat1323,
+ &kat1324, &kat1325, &kat1326, &kat1327, &kat1328, &kat1329, &kat1330,
+ &kat1331, &kat1332, &kat1333, &kat1334, &kat1335, &kat1336, &kat1337,
+ &kat1338, &kat1339, &kat1340, &kat1341, &kat1342, &kat1343, &kat1344,
+ &kat1345, &kat1346, &kat1347, &kat1348, &kat1349, &kat1350, &kat1351,
+ &kat1352, &kat1353, &kat1354, &kat1355, &kat1356, &kat1357, &kat1358,
+ &kat1359, &kat1360, &kat1361, &kat1362, &kat1363, &kat1364, &kat1365,
+ &kat1366, &kat1367, &kat1368, &kat1369, &kat1370, &kat1371, &kat1372,
+ &kat1373, &kat1374, &kat1375, &kat1376, &kat1377, &kat1378, &kat1379,
+ &kat1380, &kat1381, &kat1382, &kat1383, &kat1384, &kat1385, &kat1386,
+ &kat1387, &kat1388, &kat1389, &kat1390, &kat1391, &kat1392, &kat1393,
+ &kat1394, &kat1395, &kat1396, &kat1397, &kat1398, &kat1399, &kat1400,
+ &kat1401, &kat1402, &kat1403, &kat1404, &kat1405, &kat1406, &kat1407,
+ &kat1408, &kat1409, &kat1410, &kat1411, &kat1412, &kat1413, &kat1414,
+ &kat1415, &kat1416, &kat1417, &kat1418, &kat1419, &kat1420, &kat1421,
+ &kat1422, &kat1423, &kat1424, &kat1425, &kat1426, &kat1427, &kat1428,
+ &kat1429, &kat1430, &kat1431, &kat1432, &kat1433, &kat1434, &kat1435,
+ &kat1436, &kat1437, &kat1438, &kat1439, &kat1440, &kat1441, &kat1442,
+ &kat1443, &kat1444, &kat1445, &kat1446, &kat1447, &kat1448, &kat1449,
+ &kat1450, &kat1451, &kat1452, &kat1453, &kat1454, &kat1455, &kat1456,
+ &kat1457, &kat1458, &kat1459, &kat1460, &kat1461, &kat1462, &kat1463,
+ &kat1464, &kat1465, &kat1466, &kat1467, &kat1468, &kat1469, &kat1470,
+ &kat1471, &kat1472, &kat1473, &kat1474, &kat1475, &kat1476, &kat1477,
+ &kat1478, &kat1479, &kat1480, &kat1481, &kat1482, &kat1483, &kat1484,
+ &kat1485, &kat1486, &kat1487, &kat1488, &kat1489, &kat1490, &kat1491,
+ &kat1492, &kat1493, &kat1494, &kat1495, &kat1496, &kat1497, &kat1498,
+ &kat1499, &kat1500, &kat1501, &kat1502, &kat1503, &kat1504, &kat1505,
+ &kat1506, &kat1507, &kat1508, &kat1509, &kat1510, &kat1511, &kat1512,
+ &kat1513, &kat1514, &kat1515, &kat1516, &kat1517, &kat1518, &kat1519,
+ &kat1520, &kat1521, &kat1522, &kat1523, &kat1524, &kat1525, &kat1526,
+ &kat1527, &kat1528, &kat1529, &kat1530, &kat1531, &kat1532, &kat1533,
+ &kat1534, &kat1535, &kat1536, &kat1537, &kat1538, &kat1539, &kat1540,
+ &kat1541, &kat1542, &kat1543, &kat1544, &kat1545, &kat1546, &kat1547,
+ &kat1548, &kat1549, &kat1550, &kat1551, &kat1552, &kat1553, &kat1554,
+ &kat1555, &kat1556, &kat1557, &kat1558, &kat1559, &kat1560, &kat1561,
+ &kat1562, &kat1563, &kat1564, &kat1565, &kat1566, &kat1567, &kat1568,
+ &kat1569, &kat1570, &kat1571, &kat1572, &kat1573, &kat1574, &kat1575,
+ &kat1576, &kat1577, &kat1578, &kat1579, &kat1580, &kat1581, &kat1582,
+ &kat1583, &kat1584, &kat1585, &kat1586, &kat1587, &kat1588, &kat1589,
+ &kat1590, &kat1591, &kat1592, &kat1593, &kat1594, &kat1595, &kat1596,
+ &kat1597, &kat1598, &kat1599, &kat1600, &kat1601, &kat1602, &kat1603,
+ &kat1604, &kat1605, &kat1606, &kat1607, &kat1608, &kat1609, &kat1610,
+ &kat1611, &kat1612, &kat1613, &kat1614, &kat1615, &kat1616, &kat1617,
+ &kat1618, &kat1619, &kat1620, &kat1621, &kat1622, &kat1623, &kat1624,
+ &kat1625, &kat1626, &kat1627, &kat1628, &kat1629, &kat1630, &kat1631,
+ &kat1632, &kat1633, &kat1634, &kat1635, &kat1636, &kat1637, &kat1638,
+ &kat1639, &kat1640, &kat1641, &kat1642, &kat1643, &kat1644, &kat1645,
+ &kat1646, &kat1647, &kat1648, &kat1649, &kat1650, &kat1651, &kat1652,
+ &kat1653, &kat1654, &kat1655, &kat1656, &kat1657, &kat1658, &kat1659,
+ &kat1660, &kat1661, &kat1662, &kat1663, &kat1664, &kat1665, &kat1666,
+ &kat1667, &kat1668, &kat1669, &kat1670, &kat1671, &kat1672, &kat1673,
+ &kat1674, &kat1675, &kat1676, &kat1677, &kat1678, &kat1679, &kat1680,
+ &kat1681, &kat1682, &kat1683, &kat1684, &kat1685, &kat1686, &kat1687,
+ &kat1688, &kat1689, &kat1690, &kat1691, &kat1692, &kat1693, &kat1694,
+ &kat1695, &kat1696, &kat1697, &kat1698, &kat1699, &kat1700, &kat1701,
+ &kat1702, &kat1703, &kat1704, &kat1705, &kat1706, &kat1707, &kat1708,
+ &kat1709, &kat1710, &kat1711, &kat1712, &kat1713, &kat1714, &kat1715,
+ &kat1716, &kat1717, &kat1718, &kat1719, &kat1720, &kat1721, &kat1722,
+ &kat1723, &kat1724, &kat1725, &kat1726, &kat1727, &kat1728, &kat1729,
+ &kat1730, &kat1731, &kat1732, &kat1733, &kat1734, &kat1735, &kat1736,
+ &kat1737, &kat1738, &kat1739, &kat1740, &kat1741, &kat1742, &kat1743,
+ &kat1744, &kat1745, &kat1746, &kat1747, &kat1748, &kat1749, &kat1750,
+ &kat1751, &kat1752, &kat1753, &kat1754, &kat1755, &kat1756, &kat1757,
+ &kat1758, &kat1759, &kat1760, &kat1761, &kat1762, &kat1763, &kat1764,
+ &kat1765, &kat1766, &kat1767, &kat1768, &kat1769, &kat1770, &kat1771,
+ &kat1772, &kat1773, &kat1774, &kat1775, &kat1776, &kat1777, &kat1778,
+ &kat1779, &kat1780, &kat1781, &kat1782, &kat1783, &kat1784, &kat1785,
+ &kat1786, &kat1787, &kat1788, &kat1789, &kat1790, &kat1791, &kat1792,
+ &kat1793, &kat1794, &kat1795, &kat1796, &kat1797, &kat1798, &kat1799,
+ &kat1800, &kat1801, &kat1802, &kat1803, &kat1804, &kat1805, &kat1806,
+ &kat1807, &kat1808, &kat1809, &kat1810, &kat1811, &kat1812, &kat1813,
+ &kat1814, &kat1815, &kat1816, &kat1817, &kat1818, &kat1819, &kat1820,
+ &kat1821, &kat1822, &kat1823, &kat1824, &kat1825, &kat1826, &kat1827,
+ &kat1828, &kat1829, &kat1830, &kat1831, &kat1832, &kat1833, &kat1834,
+ &kat1835, &kat1836, &kat1837, &kat1838, &kat1839, &kat1840, &kat1841,
+ &kat1842, &kat1843, &kat1844, &kat1845, &kat1846, &kat1847, &kat1848,
+ &kat1849, &kat1850, &kat1851, &kat1852, &kat1853, &kat1854, &kat1855,
+ &kat1856, &kat1857, &kat1858, &kat1859, &kat1860, &kat1861, &kat1862,
+ &kat1863, &kat1864, &kat1865, &kat1866, &kat1867, &kat1868, &kat1869,
+ &kat1870, &kat1871, &kat1872, &kat1873, &kat1874, &kat1875, &kat1876,
+ &kat1877, &kat1878, &kat1879, &kat1880, &kat1881, &kat1882, &kat1883,
+ &kat1884, &kat1885, &kat1886, &kat1887, &kat1888, &kat1889, &kat1890,
+ &kat1891, &kat1892, &kat1893, &kat1894, &kat1895, &kat1896, &kat1897,
+ &kat1898, &kat1899, &kat1900, &kat1901, &kat1902, &kat1903, &kat1904,
+ &kat1905, &kat1906, &kat1907, &kat1908, &kat1909, &kat1910, &kat1911,
+ &kat1912, &kat1913, &kat1914, &kat1915, &kat1916, &kat1917, &kat1918,
+ &kat1919, &kat1920, &kat1921, &kat1922, &kat1923, &kat1924, &kat1925,
+ &kat1926, &kat1927, &kat1928, &kat1929, &kat1930, &kat1931, &kat1932,
+ &kat1933, &kat1934, &kat1935, &kat1936, &kat1937, &kat1938, &kat1939,
+ &kat1940, &kat1941, &kat1942, &kat1943, &kat1944, &kat1945, &kat1946,
+ &kat1947, &kat1948, &kat1949, &kat1950, &kat1951, &kat1952, &kat1953,
+ &kat1954, &kat1955, &kat1956, &kat1957, &kat1958, &kat1959, &kat1960,
+ &kat1961, &kat1962, &kat1963, &kat1964, &kat1965, &kat1966, &kat1967,
+ &kat1968, &kat1969, &kat1970, &kat1971, &kat1972, &kat1973, &kat1974,
+ &kat1975, &kat1976, &kat1977, &kat1978, &kat1979, &kat1980, &kat1981,
+ &kat1982, &kat1983, &kat1984, &kat1985, &kat1986, &kat1987, &kat1988,
+ &kat1989, &kat1990, &kat1991, &kat1992, &kat1993, &kat1994, &kat1995,
+ &kat1996, &kat1997, &kat1998, &kat1999, &kat2000, &kat2001, &kat2002,
+ &kat2003, &kat2004, &kat2005, &kat2006, &kat2007, &kat2008, &kat2009,
+ &kat2010, &kat2011, &kat2012, &kat2013, &kat2014, &kat2015, &kat2016,
+ &kat2017, &kat2018, &kat2019, &kat2020, &kat2021, &kat2022, &kat2023,
+ &kat2024, &kat2025, &kat2026, &kat2027, &kat2028, &kat2029, &kat2030,
+ &kat2031, &kat2032, &kat2033, &kat2034, &kat2035, &kat2036, &kat2037,
+ &kat2038, &kat2039, &kat2040, &kat2041, &kat2042, &kat2043, &kat2044,
+ &kat2045, &kat2046, &kat2047, &kat2048, &kat2049, &kat2050, &kat2051,
+ &kat2052, &kat2053, &kat2054, &kat2055, &kat2056, &kat2057, &kat2058,
+ &kat2059, &kat2060, &kat2061, &kat2062, &kat2063, &kat2064, &kat2065,
+ &kat2066, &kat2067, &kat2068, &kat2069, &kat2070, &kat2071, &kat2072,
+ &kat2073, &kat2074, &kat2075, &kat2076, &kat2077, &kat2078, &kat2079,
+ &kat2080, &kat2081, &kat2082, &kat2083, &kat2084, &kat2085, &kat2086,
+ &kat2087, &kat2088, &kat2089, &kat2090, &kat2091, &kat2092, &kat2093,
+ &kat2094, &kat2095, &kat2096, &kat2097, &kat2098, &kat2099, &kat2100,
+ &kat2101, &kat2102, &kat2103, &kat2104, &kat2105, &kat2106, &kat2107,
+ &kat2108, &kat2109, &kat2110, &kat2111, &kat2112, &kat2113, &kat2114,
+ &kat2115, &kat2116, &kat2117, &kat2118, &kat2119, &kat2120, &kat2121,
+ &kat2122, &kat2123, &kat2124, &kat2125, &kat2126, &kat2127, &kat2128,
+ &kat2129, &kat2130, &kat2131, &kat2132, &kat2133, &kat2134, &kat2135,
+ &kat2136, &kat2137, &kat2138, &kat2139, &kat2140, &kat2141, &kat2142,
+ &kat2143, &kat2144, &kat2145, &kat2146, &kat2147, &kat2148, &kat2149,
+ &kat2150, &kat2151, &kat2152, &kat2153, &kat2154, &kat2155, &kat2156,
+ &kat2157, &kat2158, &kat2159, &kat2160, &kat2161, &kat2162, &kat2163,
+ &kat2164, &kat2165, &kat2166, &kat2167, &kat2168, &kat2169, &kat2170,
+ &kat2171, &kat2172, &kat2173, &kat2174, &kat2175, &kat2176, &kat2177,
+ &kat2178, &kat2179, &kat2180, &kat2181, &kat2182, &kat2183, &kat2184,
+ &kat2185, &kat2186, &kat2187, &kat2188, &kat2189, &kat2190, &kat2191,
+ &kat2192, &kat2193, &kat2194, &kat2195, &kat2196, &kat2197, &kat2198,
+ &kat2199, &kat2200, &kat2201, &kat2202, &kat2203, &kat2204, &kat2205,
+ &kat2206, &kat2207, &kat2208, &kat2209, &kat2210, &kat2211, &kat2212,
+ &kat2213, &kat2214, &kat2215, &kat2216, &kat2217, &kat2218, &kat2219,
+ &kat2220, &kat2221, &kat2222, &kat2223, &kat2224, &kat2225, &kat2226,
+ &kat2227, &kat2228, &kat2229, &kat2230, &kat2231, &kat2232, &kat2233,
+ &kat2234, &kat2235, &kat2236, &kat2237, &kat2238, &kat2239, &kat2240,
+ &kat2241, &kat2242, &kat2243, &kat2244, &kat2245, &kat2246, &kat2247,
+ &kat2248, &kat2249, &kat2250, &kat2251, &kat2252, &kat2253, &kat2254,
+ &kat2255, &kat2256, &kat2257, &kat2258, &kat2259, &kat2260, &kat2261,
+ &kat2262, &kat2263, &kat2264, &kat2265, &kat2266, &kat2267, &kat2268,
+ &kat2269, &kat2270, &kat2271, &kat2272, &kat2273, &kat2274, &kat2275,
+ &kat2276, &kat2277, &kat2278, &kat2279, &kat2280, &kat2281, &kat2282,
+ &kat2283, &kat2284, &kat2285, &kat2286, &kat2287, &kat2288, &kat2289,
+ &kat2290, &kat2291, &kat2292, &kat2293, &kat2294, &kat2295, &kat2296,
+ &kat2297, &kat2298, &kat2299, &kat2300, &kat2301, &kat2302, &kat2303,
+ &kat2304, &kat2305, &kat2306, &kat2307, &kat2308, &kat2309, &kat2310,
+ &kat2311, &kat2312, &kat2313, &kat2314, &kat2315, &kat2316, &kat2317,
+ &kat2318, &kat2319, &kat2320, &kat2321, &kat2322, &kat2323, &kat2324,
+ &kat2325, &kat2326, &kat2327, &kat2328, &kat2329, &kat2330, &kat2331,
+ &kat2332, &kat2333, &kat2334, &kat2335, &kat2336, &kat2337, &kat2338,
+ &kat2339, &kat2340, &kat2341, &kat2342, &kat2343, &kat2344, &kat2345,
+ &kat2346, &kat2347, &kat2348, &kat2349, &kat2350, &kat2351, &kat2352,
+ &kat2353, &kat2354, &kat2355, &kat2356, &kat2357, &kat2358, &kat2359,
+ &kat2360, &kat2361, &kat2362, &kat2363, &kat2364, &kat2365, &kat2366,
+ &kat2367, &kat2368, &kat2369, &kat2370, &kat2371, &kat2372, &kat2373,
+ &kat2374, &kat2375, &kat2376, &kat2377, &kat2378, &kat2379, &kat2380,
+ &kat2381, &kat2382, &kat2383, &kat2384, &kat2385, &kat2386, &kat2387,
+ &kat2388, &kat2389, &kat2390, &kat2391, &kat2392, &kat2393, &kat2394,
+ &kat2395, &kat2396, &kat2397, &kat2398, &kat2399, &kat2400, &kat2401,
+ &kat2402, &kat2403, &kat2404, &kat2405, &kat2406, &kat2407, &kat2408,
+ &kat2409, &kat2410, &kat2411, &kat2412, &kat2413, &kat2414, &kat2415,
+ &kat2416, &kat2417, &kat2418, &kat2419, &kat2420, &kat2421, &kat2422,
+ &kat2423, &kat2424, &kat2425, &kat2426, &kat2427, &kat2428, &kat2429,
+ &kat2430, &kat2431, &kat2432, &kat2433, &kat2434, &kat2435, &kat2436,
+ &kat2437, &kat2438, &kat2439, &kat2440, &kat2441, &kat2442, &kat2443,
+ &kat2444, &kat2445, &kat2446, &kat2447, &kat2448, &kat2449, &kat2450,
+ &kat2451, &kat2452, &kat2453, &kat2454, &kat2455, &kat2456, &kat2457,
+ &kat2458, &kat2459, &kat2460, &kat2461, &kat2462, &kat2463, &kat2464,
+ &kat2465, &kat2466, &kat2467, &kat2468, &kat2469, &kat2470, &kat2471,
+ &kat2472, &kat2473, &kat2474, &kat2475, &kat2476, &kat2477, &kat2478,
+ &kat2479, &kat2480, &kat2481, &kat2482, &kat2483, &kat2484, &kat2485,
+ &kat2486, &kat2487, &kat2488, &kat2489, &kat2490, &kat2491, &kat2492,
+ &kat2493, &kat2494, &kat2495, &kat2496, &kat2497, &kat2498, &kat2499,
+ &kat2500, &kat2501, &kat2502, &kat2503, &kat2504, &kat2505, &kat2506,
+ &kat2507, &kat2508, &kat2509, &kat2510, &kat2511, &kat2512, &kat2513,
+ &kat2514, &kat2515, &kat2516, &kat2517, &kat2518, &kat2519, &kat2520,
+ &kat2521, &kat2522, &kat2523, &kat2524, &kat2525, &kat2526, &kat2527,
+ &kat2528, &kat2529, &kat2530, &kat2531, &kat2532, &kat2533, &kat2534,
+ &kat2535, &kat2536, &kat2537, &kat2538, &kat2539, &kat2540, &kat2541,
+ &kat2542, &kat2543, &kat2544, &kat2545, &kat2546, &kat2547, &kat2548,
+ &kat2549, &kat2550, &kat2551, &kat2552, &kat2553, &kat2554, &kat2555,
+ &kat2556, &kat2557, &kat2558, &kat2559, &kat2560, &kat2561, &kat2562,
+ &kat2563, &kat2564, &kat2565, &kat2566, &kat2567, &kat2568, &kat2569,
+ &kat2570, &kat2571, &kat2572, &kat2573, &kat2574, &kat2575, &kat2576,
+ &kat2577, &kat2578, &kat2579, &kat2580, &kat2581, &kat2582, &kat2583,
+ &kat2584, &kat2585, &kat2586, &kat2587, &kat2588, &kat2589, &kat2590,
+ &kat2591, &kat2592, &kat2593, &kat2594, &kat2595, &kat2596, &kat2597,
+ &kat2598, &kat2599, &kat2600, &kat2601, &kat2602, &kat2603, &kat2604,
+ &kat2605, &kat2606, &kat2607, &kat2608, &kat2609, &kat2610, &kat2611,
+ &kat2612, &kat2613, &kat2614, &kat2615, &kat2616, &kat2617, &kat2618,
+ &kat2619, &kat2620, &kat2621, &kat2622, &kat2623, &kat2624, &kat2625,
+ &kat2626, &kat2627, &kat2628, &kat2629, &kat2630, &kat2631, &kat2632,
+ &kat2633, &kat2634, &kat2635, &kat2636, &kat2637, &kat2638, &kat2639,
+ &kat2640, &kat2641, &kat2642, &kat2643, &kat2644, &kat2645, &kat2646,
+ &kat2647, &kat2648, &kat2649, &kat2650, &kat2651, &kat2652, &kat2653,
+ &kat2654, &kat2655, &kat2656, &kat2657, &kat2658, &kat2659, &kat2660,
+ &kat2661, &kat2662, &kat2663, &kat2664, &kat2665, &kat2666, &kat2667,
+ &kat2668, &kat2669, &kat2670, &kat2671, &kat2672, &kat2673, &kat2674,
+ &kat2675, &kat2676, &kat2677, &kat2678, &kat2679, &kat2680, &kat2681,
+ &kat2682, &kat2683, &kat2684, &kat2685, &kat2686, &kat2687, &kat2688,
+ &kat2689, &kat2690, &kat2691, &kat2692, &kat2693, &kat2694, &kat2695,
+ &kat2696, &kat2697, &kat2698, &kat2699, &kat2700, &kat2701, &kat2702,
+ &kat2703, &kat2704, &kat2705, &kat2706, &kat2707, &kat2708, &kat2709,
+ &kat2710, &kat2711, &kat2712, &kat2713, &kat2714, &kat2715, &kat2716,
+ &kat2717, &kat2718, &kat2719, &kat2720, &kat2721, &kat2722, &kat2723,
+ &kat2724, &kat2725, &kat2726, &kat2727, &kat2728, &kat2729, &kat2730,
+ &kat2731, &kat2732, &kat2733, &kat2734, &kat2735, &kat2736, &kat2737,
+ &kat2738, &kat2739, &kat2740, &kat2741, &kat2742, &kat2743, &kat2744,
+ &kat2745, &kat2746, &kat2747, &kat2748, &kat2749, &kat2750, &kat2751,
+ &kat2752, &kat2753, &kat2754, &kat2755, &kat2756, &kat2757, &kat2758,
+ &kat2759, &kat2760, &kat2761, &kat2762, &kat2763, &kat2764, &kat2765,
+ &kat2766, &kat2767, &kat2768, &kat2769, &kat2770, &kat2771, &kat2772,
+ &kat2773, &kat2774, &kat2775, &kat2776, &kat2777, &kat2778, &kat2779,
+ &kat2780, &kat2781, &kat2782, &kat2783, &kat2784, &kat2785, &kat2786,
+ &kat2787, &kat2788, &kat2789, &kat2790, &kat2791, &kat2792, &kat2793,
+ &kat2794, &kat2795, &kat2796, &kat2797, &kat2798, &kat2799, &kat2800,
+ &kat2801, &kat2802, &kat2803, &kat2804, &kat2805, &kat2806, &kat2807,
+ &kat2808, &kat2809, &kat2810, &kat2811, &kat2812, &kat2813, &kat2814,
+ &kat2815, &kat2816, &kat2817, &kat2818, &kat2819, &kat2820, &kat2821,
+ &kat2822, &kat2823, &kat2824, &kat2825, &kat2826, &kat2827, &kat2828,
+ &kat2829, &kat2830, &kat2831, &kat2832, &kat2833, &kat2834, &kat2835,
+ &kat2836, &kat2837, &kat2838, &kat2839, &kat2840, &kat2841, &kat2842,
+ &kat2843, &kat2844, &kat2845, &kat2846, &kat2847, &kat2848, &kat2849,
+ &kat2850, &kat2851, &kat2852, &kat2853, &kat2854, &kat2855, &kat2856,
+ &kat2857, &kat2858, &kat2859, &kat2860, &kat2861, &kat2862, &kat2863,
+ &kat2864, &kat2865, &kat2866, &kat2867, &kat2868, &kat2869, &kat2870,
+ &kat2871, &kat2872, &kat2873, &kat2874, &kat2875, &kat2876, &kat2877,
+ &kat2878, &kat2879, &kat2880, &kat2881, &kat2882, &kat2883, &kat2884,
+ &kat2885, &kat2886, &kat2887, &kat2888, &kat2889, &kat2890, &kat2891,
+ &kat2892, &kat2893, &kat2894, &kat2895, &kat2896, &kat2897, &kat2898,
+ &kat2899, &kat2900, &kat2901, &kat2902, &kat2903, &kat2904, &kat2905,
+ &kat2906, &kat2907, &kat2908, &kat2909, &kat2910, &kat2911, &kat2912,
+ &kat2913, &kat2914, &kat2915, &kat2916, &kat2917, &kat2918, &kat2919,
+ &kat2920, &kat2921, &kat2922, &kat2923, &kat2924, &kat2925, &kat2926,
+ &kat2927, &kat2928, &kat2929, &kat2930, &kat2931, &kat2932, &kat2933,
+ &kat2934, &kat2935, &kat2936, &kat2937, &kat2938, &kat2939, &kat2940,
+ &kat2941, &kat2942, &kat2943, &kat2944, &kat2945, &kat2946, &kat2947,
+ &kat2948, &kat2949, &kat2950, &kat2951, &kat2952, &kat2953, &kat2954,
+ &kat2955, &kat2956, &kat2957, &kat2958, &kat2959, &kat2960, &kat2961,
+ &kat2962, &kat2963, &kat2964, &kat2965, &kat2966, &kat2967, &kat2968,
+ &kat2969, &kat2970, &kat2971, &kat2972, &kat2973, &kat2974, &kat2975,
+ &kat2976, &kat2977, &kat2978, &kat2979, &kat2980, &kat2981, &kat2982,
+ &kat2983, &kat2984, &kat2985, &kat2986, &kat2987, &kat2988, &kat2989,
+ &kat2990, &kat2991, &kat2992, &kat2993, &kat2994, &kat2995, &kat2996,
+ &kat2997, &kat2998, &kat2999, &kat3000, &kat3001, &kat3002, &kat3003,
+ &kat3004, &kat3005, &kat3006, &kat3007, &kat3008, &kat3009, &kat3010,
+ &kat3011, &kat3012, &kat3013, &kat3014, &kat3015, &kat3016, &kat3017,
+ &kat3018, &kat3019, &kat3020, &kat3021, &kat3022, &kat3023, &kat3024,
+ &kat3025, &kat3026, &kat3027, &kat3028, &kat3029, &kat3030, &kat3031,
+ &kat3032, &kat3033, &kat3034, &kat3035, &kat3036, &kat3037, &kat3038,
+ &kat3039, &kat3040, &kat3041, &kat3042, &kat3043, &kat3044, &kat3045,
+ &kat3046, &kat3047, &kat3048, &kat3049, &kat3050, &kat3051, &kat3052,
+ &kat3053, &kat3054, &kat3055, &kat3056, &kat3057, &kat3058, &kat3059,
+ &kat3060, &kat3061, &kat3062, &kat3063, &kat3064, &kat3065, &kat3066,
+ &kat3067, &kat3068, &kat3069, &kat3070, &kat3071, &kat3072, &kat3073,
+ &kat3074, &kat3075, &kat3076, &kat3077, &kat3078, &kat3079, &kat3080,
+ &kat3081, &kat3082, &kat3083, &kat3084, &kat3085, &kat3086, &kat3087,
+ &kat3088, &kat3089, &kat3090, &kat3091, &kat3092, &kat3093, &kat3094,
+ &kat3095, &kat3096, &kat3097, &kat3098, &kat3099, &kat3100, &kat3101,
+ &kat3102, &kat3103, &kat3104, &kat3105, &kat3106, &kat3107, &kat3108,
+ &kat3109, &kat3110, &kat3111, &kat3112, &kat3113, &kat3114, &kat3115,
+ &kat3116, &kat3117, &kat3118, &kat3119, &kat3120, &kat3121, &kat3122,
+ &kat3123, &kat3124, &kat3125, &kat3126, &kat3127, &kat3128, &kat3129,
+ &kat3130, &kat3131, &kat3132, &kat3133, &kat3134, &kat3135, &kat3136,
+ &kat3137, &kat3138, &kat3139, &kat3140, &kat3141, &kat3142, &kat3143,
+ &kat3144, &kat3145, &kat3146, &kat3147, &kat3148, &kat3149, &kat3150,
+ &kat3151, &kat3152, &kat3153, &kat3154, &kat3155, &kat3156, &kat3157,
+ &kat3158, &kat3159, &kat3160, &kat3161, &kat3162, &kat3163, &kat3164,
+ &kat3165, &kat3166, &kat3167, &kat3168, &kat3169, &kat3170, &kat3171,
+ &kat3172, &kat3173, &kat3174, &kat3175, &kat3176, &kat3177, &kat3178,
+ &kat3179, &kat3180, &kat3181, &kat3182, &kat3183, &kat3184, &kat3185,
+ &kat3186, &kat3187, &kat3188, &kat3189, &kat3190, &kat3191, &kat3192,
+ &kat3193, &kat3194, &kat3195, &kat3196, &kat3197, &kat3198, &kat3199,
+ &kat3200, &kat3201, &kat3202, &kat3203, &kat3204, &kat3205, &kat3206,
+ &kat3207, &kat3208, &kat3209, &kat3210, &kat3211, &kat3212, &kat3213,
+ &kat3214, &kat3215, &kat3216, &kat3217, &kat3218, &kat3219, &kat3220,
+ &kat3221, &kat3222, &kat3223, &kat3224, &kat3225, &kat3226, &kat3227,
+ &kat3228, &kat3229, &kat3230, &kat3231, &kat3232, &kat3233, &kat3234,
+ &kat3235, &kat3236, &kat3237, &kat3238, &kat3239, &kat3240, &kat3241,
+ &kat3242, &kat3243, &kat3244, &kat3245, &kat3246, &kat3247, &kat3248,
+ &kat3249, &kat3250, &kat3251, &kat3252, &kat3253, &kat3254, &kat3255,
+ &kat3256, &kat3257, &kat3258, &kat3259, &kat3260, &kat3261, &kat3262,
+ &kat3263, &kat3264, &kat3265, &kat3266, &kat3267, &kat3268, &kat3269,
+ &kat3270, &kat3271, &kat3272, &kat3273, &kat3274, &kat3275, &kat3276,
+ &kat3277, &kat3278, &kat3279, &kat3280, &kat3281, &kat3282, &kat3283,
+ &kat3284, &kat3285, &kat3286, &kat3287, &kat3288, &kat3289, &kat3290,
+ &kat3291, &kat3292, &kat3293, &kat3294, &kat3295, &kat3296, &kat3297,
+ &kat3298, &kat3299, &kat3300, &kat3301, &kat3302, &kat3303, &kat3304,
+ &kat3305, &kat3306, &kat3307, &kat3308, &kat3309, &kat3310, &kat3311,
+ &kat3312, &kat3313, &kat3314, &kat3315, &kat3316, &kat3317, &kat3318,
+ &kat3319, &kat3320, &kat3321, &kat3322, &kat3323, &kat3324, &kat3325,
+ &kat3326, &kat3327, &kat3328, &kat3329, &kat3330, &kat3331, &kat3332,
+ &kat3333, &kat3334, &kat3335, &kat3336, &kat3337, &kat3338, &kat3339,
+ &kat3340, &kat3341, &kat3342, &kat3343, &kat3344, &kat3345, &kat3346,
+ &kat3347, &kat3348, &kat3349, &kat3350, &kat3351, &kat3352, &kat3353,
+ &kat3354, &kat3355, &kat3356, &kat3357, &kat3358, &kat3359, &kat3360,
+ &kat3361, &kat3362, &kat3363, &kat3364, &kat3365, &kat3366, &kat3367,
+ &kat3368, &kat3369, &kat3370, &kat3371, &kat3372, &kat3373, &kat3374,
+ &kat3375, &kat3376, &kat3377, &kat3378, &kat3379, &kat3380, &kat3381,
+ &kat3382, &kat3383, &kat3384, &kat3385, &kat3386, &kat3387, &kat3388,
+ &kat3389, &kat3390, &kat3391, &kat3392, &kat3393, &kat3394, &kat3395,
+ &kat3396, &kat3397, &kat3398, &kat3399, &kat3400, &kat3401, &kat3402,
+ &kat3403, &kat3404, &kat3405, &kat3406, &kat3407, &kat3408, &kat3409,
+ &kat3410, &kat3411, &kat3412, &kat3413, &kat3414, &kat3415, &kat3416,
+ &kat3417, &kat3418, &kat3419, &kat3420, &kat3421, &kat3422, &kat3423,
+ &kat3424, &kat3425, &kat3426, &kat3427, &kat3428, &kat3429, &kat3430,
+ &kat3431, &kat3432, &kat3433, &kat3434, &kat3435, &kat3436, &kat3437,
+ &kat3438, &kat3439, &kat3440, &kat3441, &kat3442, &kat3443, &kat3444,
+ &kat3445, &kat3446, &kat3447, &kat3448, &kat3449, &kat3450, &kat3451,
+ &kat3452, &kat3453, &kat3454, &kat3455, &kat3456, &kat3457, &kat3458,
+ &kat3459, &kat3460, &kat3461, &kat3462, &kat3463, &kat3464, &kat3465,
+ &kat3466, &kat3467, &kat3468, &kat3469, &kat3470, &kat3471, &kat3472,
+ &kat3473, &kat3474, &kat3475, &kat3476, &kat3477, &kat3478, &kat3479,
+ &kat3480, &kat3481, &kat3482, &kat3483, &kat3484, &kat3485, &kat3486,
+ &kat3487, &kat3488, &kat3489, &kat3490, &kat3491, &kat3492, &kat3493,
+ &kat3494, &kat3495, &kat3496, &kat3497, &kat3498, &kat3499, &kat3500,
+ &kat3501, &kat3502, &kat3503, &kat3504, &kat3505, &kat3506, &kat3507,
+ &kat3508, &kat3509, &kat3510, &kat3511, &kat3512, &kat3513, &kat3514,
+ &kat3515, &kat3516, &kat3517, &kat3518, &kat3519, &kat3520, &kat3521,
+ &kat3522, &kat3523, &kat3524, &kat3525, &kat3526, &kat3527, &kat3528,
+ &kat3529, &kat3530, &kat3531, &kat3532, &kat3533, &kat3534, &kat3535,
+ &kat3536, &kat3537, &kat3538, &kat3539, &kat3540, &kat3541, &kat3542,
+ &kat3543, &kat3544, &kat3545, &kat3546, &kat3547, &kat3548, &kat3549,
+ &kat3550, &kat3551, &kat3552, &kat3553, &kat3554, &kat3555, &kat3556,
+ &kat3557, &kat3558, &kat3559, &kat3560, &kat3561, &kat3562, &kat3563,
+ &kat3564, &kat3565, &kat3566, &kat3567, &kat3568, &kat3569, &kat3570,
+ &kat3571, &kat3572, &kat3573, &kat3574, &kat3575, &kat3576, &kat3577,
+ &kat3578, &kat3579, &kat3580, &kat3581, &kat3582, &kat3583, &kat3584,
+ &kat3585, &kat3586, &kat3587, &kat3588, &kat3589, &kat3590, &kat3591,
+ &kat3592, &kat3593, &kat3594, &kat3595, &kat3596, &kat3597, &kat3598,
+ &kat3599, &kat3600, &kat3601, &kat3602, &kat3603, &kat3604, &kat3605,
+ &kat3606, &kat3607, &kat3608, &kat3609, &kat3610, &kat3611, &kat3612,
+ &kat3613, &kat3614, &kat3615, &kat3616, &kat3617, &kat3618, &kat3619,
+ &kat3620, &kat3621, &kat3622, &kat3623, &kat3624, &kat3625, &kat3626,
+ &kat3627, &kat3628, &kat3629, &kat3630, &kat3631, &kat3632, &kat3633,
+ &kat3634, &kat3635, &kat3636, &kat3637, &kat3638, &kat3639, &kat3640,
+ &kat3641, &kat3642, &kat3643, &kat3644, &kat3645, &kat3646, &kat3647,
+ &kat3648, &kat3649, &kat3650, &kat3651, &kat3652, &kat3653, &kat3654,
+ &kat3655, &kat3656, &kat3657, &kat3658, &kat3659, &kat3660, &kat3661,
+ &kat3662, &kat3663, &kat3664, &kat3665, &kat3666, &kat3667, &kat3668,
+ &kat3669, &kat3670, &kat3671, &kat3672, &kat3673, &kat3674, &kat3675,
+ &kat3676, &kat3677, &kat3678, &kat3679, &kat3680, &kat3681, &kat3682,
+ &kat3683, &kat3684, &kat3685, &kat3686, &kat3687, &kat3688, &kat3689,
+ &kat3690, &kat3691, &kat3692, &kat3693, &kat3694, &kat3695, &kat3696,
+ &kat3697, &kat3698, &kat3699, &kat3700, &kat3701, &kat3702, &kat3703,
+ &kat3704, &kat3705, &kat3706, &kat3707, &kat3708, &kat3709, &kat3710,
+ &kat3711, &kat3712, &kat3713, &kat3714, &kat3715, &kat3716, &kat3717,
+ &kat3718, &kat3719, &kat3720, &kat3721, &kat3722, &kat3723, &kat3724,
+ &kat3725, &kat3726, &kat3727, &kat3728, &kat3729, &kat3730, &kat3731,
+ &kat3732, &kat3733, &kat3734, &kat3735, &kat3736, &kat3737, &kat3738,
+ &kat3739, &kat3740, &kat3741, &kat3742, &kat3743, &kat3744, &kat3745,
+ &kat3746, &kat3747, &kat3748, &kat3749, &kat3750, &kat3751, &kat3752,
+ &kat3753, &kat3754, &kat3755, &kat3756, &kat3757, &kat3758, &kat3759,
+ &kat3760, &kat3761, &kat3762, &kat3763, &kat3764, &kat3765, &kat3766,
+ &kat3767, &kat3768, &kat3769, &kat3770, &kat3771, &kat3772, &kat3773,
+ &kat3774, &kat3775, &kat3776, &kat3777, &kat3778, &kat3779, &kat3780,
+ &kat3781, &kat3782, &kat3783, &kat3784, &kat3785, &kat3786, &kat3787,
+ &kat3788, &kat3789, &kat3790, &kat3791, &kat3792, &kat3793, &kat3794,
+ &kat3795, &kat3796, &kat3797, &kat3798, &kat3799, &kat3800, &kat3801,
+ &kat3802, &kat3803, &kat3804, &kat3805, &kat3806, &kat3807, &kat3808,
+ &kat3809, &kat3810, &kat3811, &kat3812, &kat3813, &kat3814, &kat3815,
+ &kat3816, &kat3817, &kat3818, &kat3819, &kat3820, &kat3821, &kat3822,
+ &kat3823, &kat3824, &kat3825, &kat3826, &kat3827, &kat3828, &kat3829,
+ &kat3830, &kat3831, &kat3832, &kat3833, &kat3834, &kat3835, &kat3836,
+ &kat3837, &kat3838, &kat3839, &kat3840, &kat3841, &kat3842, &kat3843,
+ &kat3844, &kat3845, &kat3846, &kat3847, &kat3848, &kat3849, &kat3850,
+ &kat3851, &kat3852, &kat3853, &kat3854, &kat3855, &kat3856, &kat3857,
+ &kat3858, &kat3859, &kat3860, &kat3861, &kat3862, &kat3863, &kat3864,
+ &kat3865, &kat3866, &kat3867, &kat3868, &kat3869, &kat3870, &kat3871,
+ &kat3872, &kat3873, &kat3874, &kat3875, &kat3876, &kat3877, &kat3878,
+ &kat3879, &kat3880, &kat3881, &kat3882, &kat3883, &kat3884, &kat3885,
+ &kat3886, &kat3887, &kat3888, &kat3889, &kat3890, &kat3891, &kat3892,
+ &kat3893, &kat3894, &kat3895, &kat3896, &kat3897, &kat3898, &kat3899,
+ &kat3900, &kat3901, &kat3902, &kat3903, &kat3904, &kat3905, &kat3906,
+ &kat3907, &kat3908, &kat3909, &kat3910, &kat3911, &kat3912, &kat3913,
+ &kat3914, &kat3915, &kat3916, &kat3917, &kat3918, &kat3919, &kat3920,
+ &kat3921, &kat3922, &kat3923, &kat3924, &kat3925, &kat3926, &kat3927,
+ &kat3928, &kat3929, &kat3930, &kat3931, &kat3932, &kat3933, &kat3934,
+ &kat3935, &kat3936, &kat3937, &kat3938, &kat3939, &kat3940, &kat3941,
+ &kat3942, &kat3943, &kat3944, &kat3945, &kat3946, &kat3947, &kat3948,
+ &kat3949, &kat3950, &kat3951, &kat3952, &kat3953, &kat3954, &kat3955,
+ &kat3956, &kat3957, &kat3958, &kat3959, &kat3960, &kat3961, &kat3962,
+ &kat3963, &kat3964, &kat3965, &kat3966, &kat3967, &kat3968, &kat3969,
+ &kat3970, &kat3971, &kat3972, &kat3973, &kat3974, &kat3975, &kat3976,
+ &kat3977, &kat3978, &kat3979, &kat3980, &kat3981, &kat3982, &kat3983,
+ &kat3984, &kat3985, &kat3986, &kat3987, &kat3988, &kat3989, &kat3990,
+ &kat3991, &kat3992, &kat3993, &kat3994, &kat3995, &kat3996, &kat3997,
+ &kat3998, &kat3999, &kat4000, &kat4001, &kat4002, &kat4003, &kat4004,
+ &kat4005, &kat4006, &kat4007, &kat4008, &kat4009, &kat4010, &kat4011,
+ &kat4012, &kat4013, &kat4014, &kat4015, &kat4016, &kat4017, &kat4018,
+ &kat4019, &kat4020, &kat4021, &kat4022, &kat4023, &kat4024, &kat4025,
+ &kat4026, &kat4027, &kat4028, &kat4029, &kat4030, &kat4031, &kat4032,
+ &kat4033, &kat4034, &kat4035, &kat4036, &kat4037, &kat4038, &kat4039,
+ &kat4040, &kat4041, &kat4042, &kat4043, &kat4044, &kat4045, &kat4046,
+ &kat4047, &kat4048, &kat4049, &kat4050, &kat4051, &kat4052, &kat4053,
+ &kat4054, &kat4055, &kat4056, &kat4057, &kat4058, &kat4059, &kat4060,
+ &kat4061, &kat4062, &kat4063, &kat4064, &kat4065, &kat4066, &kat4067,
+ &kat4068, &kat4069, &kat4070, &kat4071, &kat4072, &kat4073, &kat4074,
+ &kat4075, &kat4076, &kat4077, &kat4078, &kat4079, &kat4080, &kat4081,
+ &kat4082, &kat4083, &kat4084, &kat4085, &kat4086, &kat4087, &kat4088,
+ &kat4089, &kat4090, &kat4091, &kat4092, &kat4093, &kat4094, &kat4095,
+ &kat4096, &kat4097, &kat4098, &kat4099, &kat4100, &kat4101, &kat4102,
+ &kat4103, &kat4104, &kat4105, &kat4106, &kat4107, &kat4108, &kat4109,
+ &kat4110, &kat4111, &kat4112, &kat4113, &kat4114, &kat4115, &kat4116,
+ &kat4117, &kat4118, &kat4119, &kat4120, &kat4121, &kat4122, &kat4123,
+ &kat4124, &kat4125, &kat4126, &kat4127, &kat4128, &kat4129, &kat4130,
+ &kat4131, &kat4132, &kat4133, &kat4134, &kat4135, &kat4136, &kat4137,
+ &kat4138, &kat4139, &kat4140, &kat4141, &kat4142, &kat4143, &kat4144,
+ &kat4145, &kat4146, &kat4147, &kat4148, &kat4149, &kat4150, &kat4151,
+ &kat4152, &kat4153, &kat4154, &kat4155, &kat4156, &kat4157, &kat4158,
+ &kat4159, &kat4160, &kat4161, &kat4162, &kat4163, &kat4164, &kat4165,
+ &kat4166, &kat4167, &kat4168, &kat4169, &kat4170, &kat4171, &kat4172,
+ &kat4173, &kat4174, &kat4175, &kat4176, &kat4177, &kat4178, &kat4179,
+ &kat4180, &kat4181, &kat4182, &kat4183, &kat4184, &kat4185, &kat4186,
+ &kat4187, &kat4188, &kat4189, &kat4190, &kat4191, &kat4192, &kat4193,
+ &kat4194, &kat4195, &kat4196, &kat4197, &kat4198, &kat4199, &kat4200,
+ &kat4201, &kat4202, &kat4203, &kat4204, &kat4205, &kat4206, &kat4207,
+ &kat4208, &kat4209, &kat4210, &kat4211, &kat4212, &kat4213, &kat4214,
+ &kat4215, &kat4216, &kat4217, &kat4218, &kat4219, &kat4220, &kat4221,
+ &kat4222, &kat4223, &kat4224, &kat4225, &kat4226, &kat4227, &kat4228,
+ &kat4229, &kat4230, &kat4231, &kat4232, &kat4233, &kat4234, &kat4235,
+ &kat4236, &kat4237, &kat4238, &kat4239, &kat4240, &kat4241, &kat4242,
+ &kat4243, &kat4244, &kat4245, &kat4246, &kat4247, &kat4248, &kat4249,
+ &kat4250, &kat4251, &kat4252, &kat4253, &kat4254, &kat4255, &kat4256,
+ &kat4257, &kat4258, &kat4259, &kat4260, &kat4261, &kat4262, &kat4263,
+ &kat4264, &kat4265, &kat4266, &kat4267, &kat4268, &kat4269, &kat4270,
+ &kat4271, &kat4272, &kat4273, &kat4274, &kat4275, &kat4276, &kat4277,
+ &kat4278, &kat4279, &kat4280, &kat4281, &kat4282, &kat4283, &kat4284,
+ &kat4285, &kat4286, &kat4287, &kat4288, &kat4289, &kat4290, &kat4291,
+ &kat4292, &kat4293, &kat4294, &kat4295, &kat4296, &kat4297, &kat4298,
+ &kat4299, &kat4300, &kat4301, &kat4302, &kat4303, &kat4304, &kat4305,
+ &kat4306, &kat4307, &kat4308, &kat4309, &kat4310, &kat4311, &kat4312,
+ &kat4313, &kat4314, &kat4315, &kat4316, &kat4317, &kat4318, &kat4319,
+ &kat4320,
+};
+
+const size_t drbg_test_nelem = OSSL_NELEM(drbg_test);
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbg_cavs_data.h b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbg_cavs_data.h
new file mode 100644
index 000000000..c04b01298
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbg_cavs_data.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/*
+ * Known answer tests (KAT) for NIST SP800-90A DRBGs.
+ */
+
+#include <stddef.h>
+
+#ifndef OSSL_TEST_DRBG_CAVS_DATA_H
+# define OSSL_TEST_DRBG_CAVS_DATA_H
+
+enum drbg_kat_type {
+ NO_RESEED,
+ PR_FALSE,
+ PR_TRUE
+};
+
+enum drbg_df {
+ USE_DF,
+ NO_DF,
+ NA
+};
+
+struct drbg_kat_no_reseed {
+ size_t count;
+ const unsigned char *entropyin;
+ const unsigned char *nonce;
+ const unsigned char *persstr;
+ const unsigned char *addin1;
+ const unsigned char *addin2;
+ const unsigned char *retbytes;
+};
+
+struct drbg_kat_pr_false {
+ size_t count;
+ const unsigned char *entropyin;
+ const unsigned char *nonce;
+ const unsigned char *persstr;
+ const unsigned char *entropyinreseed;
+ const unsigned char *addinreseed;
+ const unsigned char *addin1;
+ const unsigned char *addin2;
+ const unsigned char *retbytes;
+};
+
+struct drbg_kat_pr_true {
+ size_t count;
+ const unsigned char *entropyin;
+ const unsigned char *nonce;
+ const unsigned char *persstr;
+ const unsigned char *entropyinpr1;
+ const unsigned char *addin1;
+ const unsigned char *entropyinpr2;
+ const unsigned char *addin2;
+ const unsigned char *retbytes;
+};
+
+struct drbg_kat {
+ enum drbg_kat_type type;
+ enum drbg_df df;
+ int nid;
+
+ size_t entropyinlen;
+ size_t noncelen;
+ size_t persstrlen;
+ size_t addinlen;
+ size_t retbyteslen;
+
+ const void *t;
+};
+
+extern const struct drbg_kat *drbg_test[];
+extern const size_t drbg_test_nelem;
+
+#endif
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbg_cavs_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbg_cavs_test.c
new file mode 100644
index 000000000..4573e2b0b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbg_cavs_test.c
@@ -0,0 +1,278 @@
+/*
+ * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+#include "internal/nelem.h"
+#include <openssl/crypto.h>
+#include <openssl/err.h>
+#include <openssl/rand.h>
+#include <openssl/obj_mac.h>
+#include <openssl/evp.h>
+#include <openssl/aes.h>
+#include "../crypto/rand/rand_local.h"
+
+#include "testutil.h"
+#include "drbg_cavs_data.h"
+
+static int app_data_index;
+
+typedef struct test_ctx_st {
+ const unsigned char *entropy;
+ size_t entropylen;
+ int entropycnt;
+ const unsigned char *nonce;
+ size_t noncelen;
+ int noncecnt;
+} TEST_CTX;
+
+static size_t kat_entropy(RAND_DRBG *drbg, unsigned char **pout,
+ int entropy, size_t min_len, size_t max_len,
+ int prediction_resistance)
+{
+ TEST_CTX *t = (TEST_CTX *)RAND_DRBG_get_ex_data(drbg, app_data_index);
+
+ t->entropycnt++;
+ *pout = (unsigned char *)t->entropy;
+ return t->entropylen;
+}
+
+static size_t kat_nonce(RAND_DRBG *drbg, unsigned char **pout,
+ int entropy, size_t min_len, size_t max_len)
+{
+ TEST_CTX *t = (TEST_CTX *)RAND_DRBG_get_ex_data(drbg, app_data_index);
+
+ t->noncecnt++;
+ *pout = (unsigned char *)t->nonce;
+ return t->noncelen;
+}
+
+/*
+ * Do a single NO_RESEED KAT:
+ *
+ * Instantiate
+ * Generate Random Bits (pr=false)
+ * Generate Random Bits (pr=false)
+ * Uninstantiate
+ *
+ * Return 0 on failure.
+ */
+static int single_kat_no_reseed(const struct drbg_kat *td)
+{
+ struct drbg_kat_no_reseed *data = (struct drbg_kat_no_reseed *)td->t;
+ RAND_DRBG *drbg = NULL;
+ unsigned char *buff = NULL;
+ unsigned int flags = 0;
+ int failures = 0;
+ TEST_CTX t;
+
+ if (td->df != USE_DF)
+ flags |= RAND_DRBG_FLAG_CTR_NO_DF;
+
+ if (!TEST_ptr(drbg = RAND_DRBG_new(td->nid, flags, NULL)))
+ return 0;
+
+ if (!TEST_true(RAND_DRBG_set_callbacks(drbg, kat_entropy, NULL,
+ kat_nonce, NULL))) {
+ failures++;
+ goto err;
+ }
+ memset(&t, 0, sizeof(t));
+ t.entropy = data->entropyin;
+ t.entropylen = td->entropyinlen;
+ t.nonce = data->nonce;
+ t.noncelen = td->noncelen;
+ RAND_DRBG_set_ex_data(drbg, app_data_index, &t);
+
+ buff = OPENSSL_malloc(td->retbyteslen);
+ if (buff == NULL)
+ goto err;
+
+ if (!TEST_true(RAND_DRBG_instantiate(drbg, data->persstr, td->persstrlen))
+ || !TEST_true(RAND_DRBG_generate(drbg, buff, td->retbyteslen, 0,
+ data->addin1, td->addinlen))
+ || !TEST_true(RAND_DRBG_generate(drbg, buff, td->retbyteslen, 0,
+ data->addin2, td->addinlen))
+ || !TEST_true(RAND_DRBG_uninstantiate(drbg))
+ || !TEST_mem_eq(data->retbytes, td->retbyteslen, buff,
+ td->retbyteslen))
+ failures++;
+
+err:
+ OPENSSL_free(buff);
+ RAND_DRBG_uninstantiate(drbg);
+ RAND_DRBG_free(drbg);
+ return failures == 0;
+}
+
+/*-
+ * Do a single PR_FALSE KAT:
+ *
+ * Instantiate
+ * Reseed
+ * Generate Random Bits (pr=false)
+ * Generate Random Bits (pr=false)
+ * Uninstantiate
+ *
+ * Return 0 on failure.
+ */
+static int single_kat_pr_false(const struct drbg_kat *td)
+{
+ struct drbg_kat_pr_false *data = (struct drbg_kat_pr_false *)td->t;
+ RAND_DRBG *drbg = NULL;
+ unsigned char *buff = NULL;
+ unsigned int flags = 0;
+ int failures = 0;
+ TEST_CTX t;
+
+ if (td->df != USE_DF)
+ flags |= RAND_DRBG_FLAG_CTR_NO_DF;
+
+ if (!TEST_ptr(drbg = RAND_DRBG_new(td->nid, flags, NULL)))
+ return 0;
+
+ if (!TEST_true(RAND_DRBG_set_callbacks(drbg, kat_entropy, NULL,
+ kat_nonce, NULL))) {
+ failures++;
+ goto err;
+ }
+ memset(&t, 0, sizeof(t));
+ t.entropy = data->entropyin;
+ t.entropylen = td->entropyinlen;
+ t.nonce = data->nonce;
+ t.noncelen = td->noncelen;
+ RAND_DRBG_set_ex_data(drbg, app_data_index, &t);
+
+ buff = OPENSSL_malloc(td->retbyteslen);
+ if (buff == NULL)
+ goto err;
+
+ if (!TEST_true(RAND_DRBG_instantiate(drbg, data->persstr, td->persstrlen)))
+ failures++;
+
+ t.entropy = data->entropyinreseed;
+ t.entropylen = td->entropyinlen;
+
+ if (!TEST_true(RAND_DRBG_reseed(drbg, data->addinreseed, td->addinlen, 0))
+ || !TEST_true(RAND_DRBG_generate(drbg, buff, td->retbyteslen, 0,
+ data->addin1, td->addinlen))
+ || !TEST_true(RAND_DRBG_generate(drbg, buff, td->retbyteslen, 0,
+ data->addin2, td->addinlen))
+ || !TEST_true(RAND_DRBG_uninstantiate(drbg))
+ || !TEST_mem_eq(data->retbytes, td->retbyteslen, buff,
+ td->retbyteslen))
+ failures++;
+
+err:
+ OPENSSL_free(buff);
+ RAND_DRBG_uninstantiate(drbg);
+ RAND_DRBG_free(drbg);
+ return failures == 0;
+}
+
+/*-
+ * Do a single PR_TRUE KAT:
+ *
+ * Instantiate
+ * Generate Random Bits (pr=true)
+ * Generate Random Bits (pr=true)
+ * Uninstantiate
+ *
+ * Return 0 on failure.
+ */
+static int single_kat_pr_true(const struct drbg_kat *td)
+{
+ struct drbg_kat_pr_true *data = (struct drbg_kat_pr_true *)td->t;
+ RAND_DRBG *drbg = NULL;
+ unsigned char *buff = NULL;
+ unsigned int flags = 0;
+ int failures = 0;
+ TEST_CTX t;
+
+ if (td->df != USE_DF)
+ flags |= RAND_DRBG_FLAG_CTR_NO_DF;
+
+ if (!TEST_ptr(drbg = RAND_DRBG_new(td->nid, flags, NULL)))
+ return 0;
+
+ if (!TEST_true(RAND_DRBG_set_callbacks(drbg, kat_entropy, NULL,
+ kat_nonce, NULL))) {
+ failures++;
+ goto err;
+ }
+ memset(&t, 0, sizeof(t));
+ t.nonce = data->nonce;
+ t.noncelen = td->noncelen;
+ t.entropy = data->entropyin;
+ t.entropylen = td->entropyinlen;
+ RAND_DRBG_set_ex_data(drbg, app_data_index, &t);
+
+ buff = OPENSSL_malloc(td->retbyteslen);
+ if (buff == NULL)
+ goto err;
+
+ if (!TEST_true(RAND_DRBG_instantiate(drbg, data->persstr, td->persstrlen)))
+ failures++;
+
+ t.entropy = data->entropyinpr1;
+ t.entropylen = td->entropyinlen;
+
+ if (!TEST_true(RAND_DRBG_generate(drbg, buff, td->retbyteslen, 1,
+ data->addin1, td->addinlen)))
+ failures++;
+
+ t.entropy = data->entropyinpr2;
+ t.entropylen = td->entropyinlen;
+
+ if (!TEST_true(RAND_DRBG_generate(drbg, buff, td->retbyteslen, 1,
+ data->addin2, td->addinlen))
+ || !TEST_true(RAND_DRBG_uninstantiate(drbg))
+ || !TEST_mem_eq(data->retbytes, td->retbyteslen, buff,
+ td->retbyteslen))
+ failures++;
+
+err:
+ OPENSSL_free(buff);
+ RAND_DRBG_uninstantiate(drbg);
+ RAND_DRBG_free(drbg);
+ return failures == 0;
+}
+
+static int test_cavs_kats(int i)
+{
+ const struct drbg_kat *td = drbg_test[i];
+ int rv = 0;
+
+ switch (td->type) {
+ case NO_RESEED:
+ if (!single_kat_no_reseed(td))
+ goto err;
+ break;
+ case PR_FALSE:
+ if (!single_kat_pr_false(td))
+ goto err;
+ break;
+ case PR_TRUE:
+ if (!single_kat_pr_true(td))
+ goto err;
+ break;
+ default: /* cant happen */
+ goto err;
+ }
+ rv = 1;
+err:
+ return rv;
+}
+
+int setup_tests(void)
+{
+ app_data_index = RAND_DRBG_get_ex_new_index(0L, NULL, NULL, NULL, NULL);
+
+ ADD_ALL_TESTS(test_cavs_kats, drbg_test_nelem);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbgtest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbgtest.c
new file mode 100644
index 000000000..2aff4aaf0
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbgtest.c
@@ -0,0 +1,1029 @@
+/*
+ * Copyright 2011-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+#include "internal/nelem.h"
+#include <openssl/crypto.h>
+#include <openssl/err.h>
+#include <openssl/rand.h>
+#include <openssl/obj_mac.h>
+#include <openssl/evp.h>
+#include <openssl/aes.h>
+#include "../crypto/rand/rand_local.h"
+#include "../include/crypto/rand.h"
+
+#if defined(_WIN32)
+# include <windows.h>
+#endif
+
+
+#if defined(OPENSSL_SYS_UNIX)
+# include <sys/types.h>
+# include <sys/wait.h>
+# include <unistd.h>
+#endif
+
+#include "testutil.h"
+#include "drbgtest.h"
+
+typedef struct drbg_selftest_data_st {
+ int post;
+ int nid;
+ unsigned int flags;
+
+ /* KAT data for no PR */
+ const unsigned char *entropy;
+ size_t entropylen;
+ const unsigned char *nonce;
+ size_t noncelen;
+ const unsigned char *pers;
+ size_t perslen;
+ const unsigned char *adin;
+ size_t adinlen;
+ const unsigned char *entropyreseed;
+ size_t entropyreseedlen;
+ const unsigned char *adinreseed;
+ size_t adinreseedlen;
+ const unsigned char *adin2;
+ size_t adin2len;
+ const unsigned char *expected;
+ size_t exlen;
+ const unsigned char *kat2;
+ size_t kat2len;
+
+ /* KAT data for PR */
+ const unsigned char *entropy_pr;
+ size_t entropylen_pr;
+ const unsigned char *nonce_pr;
+ size_t noncelen_pr;
+ const unsigned char *pers_pr;
+ size_t perslen_pr;
+ const unsigned char *adin_pr;
+ size_t adinlen_pr;
+ const unsigned char *entropypr_pr;
+ size_t entropyprlen_pr;
+ const unsigned char *ading_pr;
+ size_t adinglen_pr;
+ const unsigned char *entropyg_pr;
+ size_t entropyglen_pr;
+ const unsigned char *kat_pr;
+ size_t katlen_pr;
+ const unsigned char *kat2_pr;
+ size_t kat2len_pr;
+} DRBG_SELFTEST_DATA;
+
+#define make_drbg_test_data(nid, flag, pr, post) {\
+ post, nid, flag, \
+ pr##_entropyinput, sizeof(pr##_entropyinput), \
+ pr##_nonce, sizeof(pr##_nonce), \
+ pr##_personalizationstring, sizeof(pr##_personalizationstring), \
+ pr##_additionalinput, sizeof(pr##_additionalinput), \
+ pr##_entropyinputreseed, sizeof(pr##_entropyinputreseed), \
+ pr##_additionalinputreseed, sizeof(pr##_additionalinputreseed), \
+ pr##_additionalinput2, sizeof(pr##_additionalinput2), \
+ pr##_int_returnedbits, sizeof(pr##_int_returnedbits), \
+ pr##_returnedbits, sizeof(pr##_returnedbits), \
+ pr##_pr_entropyinput, sizeof(pr##_pr_entropyinput), \
+ pr##_pr_nonce, sizeof(pr##_pr_nonce), \
+ pr##_pr_personalizationstring, sizeof(pr##_pr_personalizationstring), \
+ pr##_pr_additionalinput, sizeof(pr##_pr_additionalinput), \
+ pr##_pr_entropyinputpr, sizeof(pr##_pr_entropyinputpr), \
+ pr##_pr_additionalinput2, sizeof(pr##_pr_additionalinput2), \
+ pr##_pr_entropyinputpr2, sizeof(pr##_pr_entropyinputpr2), \
+ pr##_pr_int_returnedbits, sizeof(pr##_pr_int_returnedbits), \
+ pr##_pr_returnedbits, sizeof(pr##_pr_returnedbits) \
+ }
+
+#define make_drbg_test_data_use_df(nid, pr, p) \
+ make_drbg_test_data(nid, 0, pr, p)
+
+#define make_drbg_test_data_no_df(nid, pr, p) \
+ make_drbg_test_data(nid, RAND_DRBG_FLAG_CTR_NO_DF, pr, p)
+
+static DRBG_SELFTEST_DATA drbg_test[] = {
+ make_drbg_test_data_no_df (NID_aes_128_ctr, aes_128_no_df, 0),
+ make_drbg_test_data_no_df (NID_aes_192_ctr, aes_192_no_df, 0),
+ make_drbg_test_data_no_df (NID_aes_256_ctr, aes_256_no_df, 1),
+ make_drbg_test_data_use_df(NID_aes_128_ctr, aes_128_use_df, 0),
+ make_drbg_test_data_use_df(NID_aes_192_ctr, aes_192_use_df, 0),
+ make_drbg_test_data_use_df(NID_aes_256_ctr, aes_256_use_df, 1),
+};
+
+static int app_data_index;
+
+/*
+ * Test context data, attached as EXDATA to the RAND_DRBG
+ */
+typedef struct test_ctx_st {
+ const unsigned char *entropy;
+ size_t entropylen;
+ int entropycnt;
+ const unsigned char *nonce;
+ size_t noncelen;
+ int noncecnt;
+} TEST_CTX;
+
+static size_t kat_entropy(RAND_DRBG *drbg, unsigned char **pout,
+ int entropy, size_t min_len, size_t max_len,
+ int prediction_resistance)
+{
+ TEST_CTX *t = (TEST_CTX *)RAND_DRBG_get_ex_data(drbg, app_data_index);
+
+ t->entropycnt++;
+ *pout = (unsigned char *)t->entropy;
+ return t->entropylen;
+}
+
+static size_t kat_nonce(RAND_DRBG *drbg, unsigned char **pout,
+ int entropy, size_t min_len, size_t max_len)
+{
+ TEST_CTX *t = (TEST_CTX *)RAND_DRBG_get_ex_data(drbg, app_data_index);
+
+ t->noncecnt++;
+ *pout = (unsigned char *)t->nonce;
+ return t->noncelen;
+}
+
+static int uninstantiate(RAND_DRBG *drbg)
+{
+ int ret = drbg == NULL ? 1 : RAND_DRBG_uninstantiate(drbg);
+
+ ERR_clear_error();
+ return ret;
+}
+
+/*
+ * Do a single KAT test. Return 0 on failure.
+ */
+static int single_kat(DRBG_SELFTEST_DATA *td)
+{
+ RAND_DRBG *drbg = NULL;
+ TEST_CTX t;
+ int failures = 0;
+ unsigned char buff[1024];
+
+ /*
+ * Test without PR: Instantiate DRBG with test entropy, nonce and
+ * personalisation string.
+ */
+ if (!TEST_ptr(drbg = RAND_DRBG_new(td->nid, td->flags, NULL)))
+ return 0;
+ if (!TEST_true(RAND_DRBG_set_callbacks(drbg, kat_entropy, NULL,
+ kat_nonce, NULL))) {
+ failures++;
+ goto err;
+ }
+ memset(&t, 0, sizeof(t));
+ t.entropy = td->entropy;
+ t.entropylen = td->entropylen;
+ t.nonce = td->nonce;
+ t.noncelen = td->noncelen;
+ RAND_DRBG_set_ex_data(drbg, app_data_index, &t);
+
+ if (!TEST_true(RAND_DRBG_instantiate(drbg, td->pers, td->perslen))
+ || !TEST_true(RAND_DRBG_generate(drbg, buff, td->exlen, 0,
+ td->adin, td->adinlen))
+ || !TEST_mem_eq(td->expected, td->exlen, buff, td->exlen))
+ failures++;
+
+ /* Reseed DRBG with test entropy and additional input */
+ t.entropy = td->entropyreseed;
+ t.entropylen = td->entropyreseedlen;
+ if (!TEST_true(RAND_DRBG_reseed(drbg, td->adinreseed, td->adinreseedlen, 0)
+ || !TEST_true(RAND_DRBG_generate(drbg, buff, td->kat2len, 0,
+ td->adin2, td->adin2len))
+ || !TEST_mem_eq(td->kat2, td->kat2len, buff, td->kat2len)))
+ failures++;
+ uninstantiate(drbg);
+
+ /*
+ * Now test with PR: Instantiate DRBG with test entropy, nonce and
+ * personalisation string.
+ */
+ if (!TEST_true(RAND_DRBG_set(drbg, td->nid, td->flags))
+ || !TEST_true(RAND_DRBG_set_callbacks(drbg, kat_entropy, NULL,
+ kat_nonce, NULL)))
+ failures++;
+ RAND_DRBG_set_ex_data(drbg, app_data_index, &t);
+ t.entropy = td->entropy_pr;
+ t.entropylen = td->entropylen_pr;
+ t.nonce = td->nonce_pr;
+ t.noncelen = td->noncelen_pr;
+ t.entropycnt = 0;
+ t.noncecnt = 0;
+ if (!TEST_true(RAND_DRBG_instantiate(drbg, td->pers_pr, td->perslen_pr)))
+ failures++;
+
+ /*
+ * Now generate with PR: we need to supply entropy as this will
+ * perform a reseed operation.
+ */
+ t.entropy = td->entropypr_pr;
+ t.entropylen = td->entropyprlen_pr;
+ if (!TEST_true(RAND_DRBG_generate(drbg, buff, td->katlen_pr, 1,
+ td->adin_pr, td->adinlen_pr))
+ || !TEST_mem_eq(td->kat_pr, td->katlen_pr, buff, td->katlen_pr))
+ failures++;
+
+ /*
+ * Now generate again with PR: supply new entropy again.
+ */
+ t.entropy = td->entropyg_pr;
+ t.entropylen = td->entropyglen_pr;
+
+ if (!TEST_true(RAND_DRBG_generate(drbg, buff, td->kat2len_pr, 1,
+ td->ading_pr, td->adinglen_pr))
+ || !TEST_mem_eq(td->kat2_pr, td->kat2len_pr,
+ buff, td->kat2len_pr))
+ failures++;
+
+err:
+ uninstantiate(drbg);
+ RAND_DRBG_free(drbg);
+ return failures == 0;
+}
+
+/*
+ * Initialise a DRBG based on selftest data
+ */
+static int init(RAND_DRBG *drbg, DRBG_SELFTEST_DATA *td, TEST_CTX *t)
+{
+ if (!TEST_true(RAND_DRBG_set(drbg, td->nid, td->flags))
+ || !TEST_true(RAND_DRBG_set_callbacks(drbg, kat_entropy, NULL,
+ kat_nonce, NULL)))
+ return 0;
+ RAND_DRBG_set_ex_data(drbg, app_data_index, t);
+ t->entropy = td->entropy;
+ t->entropylen = td->entropylen;
+ t->nonce = td->nonce;
+ t->noncelen = td->noncelen;
+ t->entropycnt = 0;
+ t->noncecnt = 0;
+ return 1;
+}
+
+/*
+ * Initialise and instantiate DRBG based on selftest data
+ */
+static int instantiate(RAND_DRBG *drbg, DRBG_SELFTEST_DATA *td,
+ TEST_CTX *t)
+{
+ if (!TEST_true(init(drbg, td, t))
+ || !TEST_true(RAND_DRBG_instantiate(drbg, td->pers, td->perslen)))
+ return 0;
+ return 1;
+}
+
+/*
+ * Perform extensive error checking as required by SP800-90.
+ * Induce several failure modes and check an error condition is set.
+ */
+static int error_check(DRBG_SELFTEST_DATA *td)
+{
+ static char zero[sizeof(RAND_DRBG)];
+ RAND_DRBG *drbg = NULL;
+ TEST_CTX t;
+ unsigned char buff[1024];
+ unsigned int reseed_counter_tmp;
+ int ret = 0;
+
+ if (!TEST_ptr(drbg = RAND_DRBG_new(0, 0, NULL)))
+ goto err;
+
+ /*
+ * Personalisation string tests
+ */
+
+ /* Test detection of too large personalisation string */
+ if (!init(drbg, td, &t)
+ || RAND_DRBG_instantiate(drbg, td->pers, drbg->max_perslen + 1) > 0)
+ goto err;
+
+ /*
+ * Entropy source tests
+ */
+
+ /* Test entropy source failure detection: i.e. returns no data */
+ t.entropylen = 0;
+ if (TEST_int_le(RAND_DRBG_instantiate(drbg, td->pers, td->perslen), 0))
+ goto err;
+
+ /* Try to generate output from uninstantiated DRBG */
+ if (!TEST_false(RAND_DRBG_generate(drbg, buff, td->exlen, 0,
+ td->adin, td->adinlen))
+ || !uninstantiate(drbg))
+ goto err;
+
+ /* Test insufficient entropy */
+ t.entropylen = drbg->min_entropylen - 1;
+ if (!init(drbg, td, &t)
+ || RAND_DRBG_instantiate(drbg, td->pers, td->perslen) > 0
+ || !uninstantiate(drbg))
+ goto err;
+
+ /* Test too much entropy */
+ t.entropylen = drbg->max_entropylen + 1;
+ if (!init(drbg, td, &t)
+ || RAND_DRBG_instantiate(drbg, td->pers, td->perslen) > 0
+ || !uninstantiate(drbg))
+ goto err;
+
+ /*
+ * Nonce tests
+ */
+
+ /* Test too small nonce */
+ if (drbg->min_noncelen) {
+ t.noncelen = drbg->min_noncelen - 1;
+ if (!init(drbg, td, &t)
+ || RAND_DRBG_instantiate(drbg, td->pers, td->perslen) > 0
+ || !uninstantiate(drbg))
+ goto err;
+ }
+
+ /* Test too large nonce */
+ if (drbg->max_noncelen) {
+ t.noncelen = drbg->max_noncelen + 1;
+ if (!init(drbg, td, &t)
+ || RAND_DRBG_instantiate(drbg, td->pers, td->perslen) > 0
+ || !uninstantiate(drbg))
+ goto err;
+ }
+
+ /* Instantiate with valid data, Check generation is now OK */
+ if (!instantiate(drbg, td, &t)
+ || !TEST_true(RAND_DRBG_generate(drbg, buff, td->exlen, 0,
+ td->adin, td->adinlen)))
+ goto err;
+
+ /* Request too much data for one request */
+ if (!TEST_false(RAND_DRBG_generate(drbg, buff, drbg->max_request + 1, 0,
+ td->adin, td->adinlen)))
+ goto err;
+
+ /* Try too large additional input */
+ if (!TEST_false(RAND_DRBG_generate(drbg, buff, td->exlen, 0,
+ td->adin, drbg->max_adinlen + 1)))
+ goto err;
+
+ /*
+ * Check prediction resistance request fails if entropy source
+ * failure.
+ */
+ t.entropylen = 0;
+ if (TEST_false(RAND_DRBG_generate(drbg, buff, td->exlen, 1,
+ td->adin, td->adinlen))
+ || !uninstantiate(drbg))
+ goto err;
+
+ /* Instantiate again with valid data */
+ if (!instantiate(drbg, td, &t))
+ goto err;
+ reseed_counter_tmp = drbg->reseed_gen_counter;
+ drbg->reseed_gen_counter = drbg->reseed_interval;
+
+ /* Generate output and check entropy has been requested for reseed */
+ t.entropycnt = 0;
+ if (!TEST_true(RAND_DRBG_generate(drbg, buff, td->exlen, 0,
+ td->adin, td->adinlen))
+ || !TEST_int_eq(t.entropycnt, 1)
+ || !TEST_int_eq(drbg->reseed_gen_counter, reseed_counter_tmp + 1)
+ || !uninstantiate(drbg))
+ goto err;
+
+ /*
+ * Check prediction resistance request fails if entropy source
+ * failure.
+ */
+ t.entropylen = 0;
+ if (!TEST_false(RAND_DRBG_generate(drbg, buff, td->exlen, 1,
+ td->adin, td->adinlen))
+ || !uninstantiate(drbg))
+ goto err;
+
+ /* Test reseed counter works */
+ if (!instantiate(drbg, td, &t))
+ goto err;
+ reseed_counter_tmp = drbg->reseed_gen_counter;
+ drbg->reseed_gen_counter = drbg->reseed_interval;
+
+ /* Generate output and check entropy has been requested for reseed */
+ t.entropycnt = 0;
+ if (!TEST_true(RAND_DRBG_generate(drbg, buff, td->exlen, 0,
+ td->adin, td->adinlen))
+ || !TEST_int_eq(t.entropycnt, 1)
+ || !TEST_int_eq(drbg->reseed_gen_counter, reseed_counter_tmp + 1)
+ || !uninstantiate(drbg))
+ goto err;
+
+ /*
+ * Explicit reseed tests
+ */
+
+ /* Test explicit reseed with too large additional input */
+ if (!instantiate(drbg, td, &t)
+ || RAND_DRBG_reseed(drbg, td->adin, drbg->max_adinlen + 1, 0) > 0)
+ goto err;
+
+ /* Test explicit reseed with entropy source failure */
+ t.entropylen = 0;
+ if (!TEST_int_le(RAND_DRBG_reseed(drbg, td->adin, td->adinlen, 0), 0)
+ || !uninstantiate(drbg))
+ goto err;
+
+ /* Test explicit reseed with too much entropy */
+ if (!instantiate(drbg, td, &t))
+ goto err;
+ t.entropylen = drbg->max_entropylen + 1;
+ if (!TEST_int_le(RAND_DRBG_reseed(drbg, td->adin, td->adinlen, 0), 0)
+ || !uninstantiate(drbg))
+ goto err;
+
+ /* Test explicit reseed with too little entropy */
+ if (!instantiate(drbg, td, &t))
+ goto err;
+ t.entropylen = drbg->min_entropylen - 1;
+ if (!TEST_int_le(RAND_DRBG_reseed(drbg, td->adin, td->adinlen, 0), 0)
+ || !uninstantiate(drbg))
+ goto err;
+
+ /* Standard says we have to check uninstantiate really zeroes */
+ if (!TEST_mem_eq(zero, sizeof(drbg->data), &drbg->data, sizeof(drbg->data)))
+ goto err;
+
+ ret = 1;
+
+err:
+ uninstantiate(drbg);
+ RAND_DRBG_free(drbg);
+ return ret;
+}
+
+static int test_kats(int i)
+{
+ DRBG_SELFTEST_DATA *td = &drbg_test[i];
+ int rv = 0;
+
+ if (!single_kat(td))
+ goto err;
+ rv = 1;
+
+err:
+ return rv;
+}
+
+static int test_error_checks(int i)
+{
+ DRBG_SELFTEST_DATA *td = &drbg_test[i];
+ int rv = 0;
+
+ if (error_check(td))
+ goto err;
+ rv = 1;
+
+err:
+ return rv;
+}
+
+/*
+ * Hook context data, attached as EXDATA to the RAND_DRBG
+ */
+typedef struct hook_ctx_st {
+ RAND_DRBG *drbg;
+ /*
+ * Currently, all DRBGs use the same get_entropy() callback.
+ * The tests however, don't assume this and store
+ * the original callback for every DRBG separately.
+ */
+ RAND_DRBG_get_entropy_fn get_entropy;
+ /* forces a failure of the get_entropy() call if nonzero */
+ int fail;
+ /* counts successful reseeds */
+ int reseed_count;
+} HOOK_CTX;
+
+static HOOK_CTX master_ctx, public_ctx, private_ctx;
+
+static HOOK_CTX *get_hook_ctx(RAND_DRBG *drbg)
+{
+ return (HOOK_CTX *)RAND_DRBG_get_ex_data(drbg, app_data_index);
+}
+
+/* Intercepts and counts calls to the get_entropy() callback */
+static size_t get_entropy_hook(RAND_DRBG *drbg, unsigned char **pout,
+ int entropy, size_t min_len, size_t max_len,
+ int prediction_resistance)
+{
+ size_t ret;
+ HOOK_CTX *ctx = get_hook_ctx(drbg);
+
+ if (ctx->fail != 0)
+ return 0;
+
+ ret = ctx->get_entropy(drbg, pout, entropy, min_len, max_len,
+ prediction_resistance);
+
+ if (ret != 0)
+ ctx->reseed_count++;
+ return ret;
+}
+
+/* Installs a hook for the get_entropy() callback of the given drbg */
+static void hook_drbg(RAND_DRBG *drbg, HOOK_CTX *ctx)
+{
+ memset(ctx, 0, sizeof(*ctx));
+ ctx->drbg = drbg;
+ ctx->get_entropy = drbg->get_entropy;
+ drbg->get_entropy = get_entropy_hook;
+ RAND_DRBG_set_ex_data(drbg, app_data_index, ctx);
+}
+
+/* Installs the hook for the get_entropy() callback of the given drbg */
+static void unhook_drbg(RAND_DRBG *drbg)
+{
+ HOOK_CTX *ctx = get_hook_ctx(drbg);
+
+ drbg->get_entropy = ctx->get_entropy;
+ CRYPTO_free_ex_data(CRYPTO_EX_INDEX_DRBG, drbg, &drbg->ex_data);
+}
+
+/* Resets the given hook context */
+static void reset_hook_ctx(HOOK_CTX *ctx)
+{
+ ctx->fail = 0;
+ ctx->reseed_count = 0;
+}
+
+/* Resets all drbg hook contexts */
+static void reset_drbg_hook_ctx(void)
+{
+ reset_hook_ctx(&master_ctx);
+ reset_hook_ctx(&public_ctx);
+ reset_hook_ctx(&private_ctx);
+}
+
+/*
+ * Generates random output using RAND_bytes() and RAND_priv_bytes()
+ * and checks whether the three shared DRBGs were reseeded as
+ * expected.
+ *
+ * |expect_success|: expected outcome (as reported by RAND_status())
+ * |master|, |public|, |private|: pointers to the three shared DRBGs
+ * |expect_xxx_reseed| =
+ * 1: it is expected that the specified DRBG is reseeded
+ * 0: it is expected that the specified DRBG is not reseeded
+ * -1: don't check whether the specified DRBG was reseeded or not
+ * |reseed_time|: if nonzero, used instead of time(NULL) to set the
+ * |before_reseed| time.
+ */
+static int test_drbg_reseed(int expect_success,
+ RAND_DRBG *master,
+ RAND_DRBG *public,
+ RAND_DRBG *private,
+ int expect_master_reseed,
+ int expect_public_reseed,
+ int expect_private_reseed,
+ time_t reseed_time
+ )
+{
+ unsigned char buf[32];
+ time_t before_reseed, after_reseed;
+ int expected_state = (expect_success ? DRBG_READY : DRBG_ERROR);
+
+ /*
+ * step 1: check preconditions
+ */
+
+ /* Test whether seed propagation is enabled */
+ if (!TEST_int_ne(master->reseed_prop_counter, 0)
+ || !TEST_int_ne(public->reseed_prop_counter, 0)
+ || !TEST_int_ne(private->reseed_prop_counter, 0))
+ return 0;
+
+ /* Check whether the master DRBG's reseed counter is the largest one */
+ if (!TEST_int_le(public->reseed_prop_counter, master->reseed_prop_counter)
+ || !TEST_int_le(private->reseed_prop_counter, master->reseed_prop_counter))
+ return 0;
+
+ /*
+ * step 2: generate random output
+ */
+
+ if (reseed_time == 0)
+ reseed_time = time(NULL);
+
+ /* Generate random output from the public and private DRBG */
+ before_reseed = expect_master_reseed == 1 ? reseed_time : 0;
+ if (!TEST_int_eq(RAND_bytes(buf, sizeof(buf)), expect_success)
+ || !TEST_int_eq(RAND_priv_bytes(buf, sizeof(buf)), expect_success))
+ return 0;
+ after_reseed = time(NULL);
+
+
+ /*
+ * step 3: check postconditions
+ */
+
+ /* Test whether reseeding succeeded as expected */
+ if (!TEST_int_eq(master->state, expected_state)
+ || !TEST_int_eq(public->state, expected_state)
+ || !TEST_int_eq(private->state, expected_state))
+ return 0;
+
+ if (expect_master_reseed >= 0) {
+ /* Test whether master DRBG was reseeded as expected */
+ if (!TEST_int_eq(master_ctx.reseed_count, expect_master_reseed))
+ return 0;
+ }
+
+ if (expect_public_reseed >= 0) {
+ /* Test whether public DRBG was reseeded as expected */
+ if (!TEST_int_eq(public_ctx.reseed_count, expect_public_reseed))
+ return 0;
+ }
+
+ if (expect_private_reseed >= 0) {
+ /* Test whether public DRBG was reseeded as expected */
+ if (!TEST_int_eq(private_ctx.reseed_count, expect_private_reseed))
+ return 0;
+ }
+
+ if (expect_success == 1) {
+ /* Test whether all three reseed counters are synchronized */
+ if (!TEST_int_eq(public->reseed_prop_counter, master->reseed_prop_counter)
+ || !TEST_int_eq(private->reseed_prop_counter, master->reseed_prop_counter))
+ return 0;
+
+ /* Test whether reseed time of master DRBG is set correctly */
+ if (!TEST_time_t_le(before_reseed, master->reseed_time)
+ || !TEST_time_t_le(master->reseed_time, after_reseed))
+ return 0;
+
+ /* Test whether reseed times of child DRBGs are synchronized with master */
+ if (!TEST_time_t_ge(public->reseed_time, master->reseed_time)
+ || !TEST_time_t_ge(private->reseed_time, master->reseed_time))
+ return 0;
+ } else {
+ ERR_clear_error();
+ }
+
+ return 1;
+}
+
+
+#if defined(OPENSSL_SYS_UNIX)
+/*
+ * Test whether master, public and private DRBG are reseeded after
+ * forking the process.
+ */
+static int test_drbg_reseed_after_fork(RAND_DRBG *master,
+ RAND_DRBG *public,
+ RAND_DRBG *private)
+{
+ pid_t pid;
+ int status=0;
+
+ pid = fork();
+ if (!TEST_int_ge(pid, 0))
+ return 0;
+
+ if (pid > 0) {
+ /* I'm the parent; wait for the child and check its exit code */
+ return TEST_int_eq(waitpid(pid, &status, 0), pid) && TEST_int_eq(status, 0);
+ }
+
+ /* I'm the child; check whether all three DRBGs reseed. */
+ if (!TEST_true(test_drbg_reseed(1, master, public, private, 1, 1, 1, 0)))
+ status = 1;
+
+ /* Remove hooks */
+ unhook_drbg(master);
+ unhook_drbg(public);
+ unhook_drbg(private);
+ exit(status);
+}
+#endif
+
+/*
+ * Test whether the default rand_method (RAND_OpenSSL()) is
+ * setup correctly, in particular whether reseeding works
+ * as designed.
+ */
+static int test_rand_drbg_reseed(void)
+{
+ RAND_DRBG *master, *public, *private;
+ unsigned char rand_add_buf[256];
+ int rv=0;
+ time_t before_reseed;
+
+ /* Check whether RAND_OpenSSL() is the default method */
+ if (!TEST_ptr_eq(RAND_get_rand_method(), RAND_OpenSSL()))
+ return 0;
+
+ /* All three DRBGs should be non-null */
+ if (!TEST_ptr(master = RAND_DRBG_get0_master())
+ || !TEST_ptr(public = RAND_DRBG_get0_public())
+ || !TEST_ptr(private = RAND_DRBG_get0_private()))
+ return 0;
+
+ /* There should be three distinct DRBGs, two of them chained to master */
+ if (!TEST_ptr_ne(public, private)
+ || !TEST_ptr_ne(public, master)
+ || !TEST_ptr_ne(private, master)
+ || !TEST_ptr_eq(public->parent, master)
+ || !TEST_ptr_eq(private->parent, master))
+ return 0;
+
+ /* uninstantiate the three global DRBGs */
+ RAND_DRBG_uninstantiate(private);
+ RAND_DRBG_uninstantiate(public);
+ RAND_DRBG_uninstantiate(master);
+
+
+ /* Install hooks for the following tests */
+ hook_drbg(master, &master_ctx);
+ hook_drbg(public, &public_ctx);
+ hook_drbg(private, &private_ctx);
+
+
+ /*
+ * Test initial seeding of shared DRBGs
+ */
+ if (!TEST_true(test_drbg_reseed(1, master, public, private, 1, 1, 1, 0)))
+ goto error;
+ reset_drbg_hook_ctx();
+
+
+ /*
+ * Test initial state of shared DRBGs
+ */
+ if (!TEST_true(test_drbg_reseed(1, master, public, private, 0, 0, 0, 0)))
+ goto error;
+ reset_drbg_hook_ctx();
+
+ /*
+ * Test whether the public and private DRBG are both reseeded when their
+ * reseed counters differ from the master's reseed counter.
+ */
+ master->reseed_prop_counter++;
+ if (!TEST_true(test_drbg_reseed(1, master, public, private, 0, 1, 1, 0)))
+ goto error;
+ reset_drbg_hook_ctx();
+
+ /*
+ * Test whether the public DRBG is reseeded when its reseed counter differs
+ * from the master's reseed counter.
+ */
+ master->reseed_prop_counter++;
+ private->reseed_prop_counter++;
+ if (!TEST_true(test_drbg_reseed(1, master, public, private, 0, 1, 0, 0)))
+ goto error;
+ reset_drbg_hook_ctx();
+
+ /*
+ * Test whether the private DRBG is reseeded when its reseed counter differs
+ * from the master's reseed counter.
+ */
+ master->reseed_prop_counter++;
+ public->reseed_prop_counter++;
+ if (!TEST_true(test_drbg_reseed(1, master, public, private, 0, 0, 1, 0)))
+ goto error;
+ reset_drbg_hook_ctx();
+
+#if defined(OPENSSL_SYS_UNIX)
+ if (!TEST_true(test_drbg_reseed_after_fork(master, public, private)))
+ goto error;
+#endif
+
+ /* fill 'randomness' buffer with some arbitrary data */
+ memset(rand_add_buf, 'r', sizeof(rand_add_buf));
+
+ /*
+ * Test whether all three DRBGs are reseeded by RAND_add().
+ * The before_reseed time has to be measured here and passed into the
+ * test_drbg_reseed() test, because the master DRBG gets already reseeded
+ * in RAND_add(), whence the check for the condition
+ * before_reseed <= master->reseed_time will fail if the time value happens
+ * to increase between the RAND_add() and the test_drbg_reseed() call.
+ */
+ before_reseed = time(NULL);
+ RAND_add(rand_add_buf, sizeof(rand_add_buf), sizeof(rand_add_buf));
+ if (!TEST_true(test_drbg_reseed(1, master, public, private, 1, 1, 1,
+ before_reseed)))
+ goto error;
+ reset_drbg_hook_ctx();
+
+
+ /*
+ * Test whether none of the DRBGs is reseed if the master fails to reseed
+ */
+ master_ctx.fail = 1;
+ master->reseed_prop_counter++;
+ RAND_add(rand_add_buf, sizeof(rand_add_buf), sizeof(rand_add_buf));
+ if (!TEST_true(test_drbg_reseed(0, master, public, private, 0, 0, 0, 0)))
+ goto error;
+ reset_drbg_hook_ctx();
+
+ rv = 1;
+
+error:
+ /* Remove hooks */
+ unhook_drbg(master);
+ unhook_drbg(public);
+ unhook_drbg(private);
+
+ return rv;
+}
+
+#if defined(OPENSSL_THREADS)
+static int multi_thread_rand_bytes_succeeded = 1;
+static int multi_thread_rand_priv_bytes_succeeded = 1;
+
+static void run_multi_thread_test(void)
+{
+ unsigned char buf[256];
+ time_t start = time(NULL);
+ RAND_DRBG *public = NULL, *private = NULL;
+
+ if (!TEST_ptr(public = RAND_DRBG_get0_public())
+ || !TEST_ptr(private = RAND_DRBG_get0_private())) {
+ multi_thread_rand_bytes_succeeded = 0;
+ return;
+ }
+ RAND_DRBG_set_reseed_time_interval(private, 1);
+ RAND_DRBG_set_reseed_time_interval(public, 1);
+
+ do {
+ if (RAND_bytes(buf, sizeof(buf)) <= 0)
+ multi_thread_rand_bytes_succeeded = 0;
+ if (RAND_priv_bytes(buf, sizeof(buf)) <= 0)
+ multi_thread_rand_priv_bytes_succeeded = 0;
+ }
+ while(time(NULL) - start < 5);
+}
+
+# if defined(OPENSSL_SYS_WINDOWS)
+
+typedef HANDLE thread_t;
+
+static DWORD WINAPI thread_run(LPVOID arg)
+{
+ run_multi_thread_test();
+ /*
+ * Because we're linking with a static library, we must stop each
+ * thread explicitly, or so says OPENSSL_thread_stop(3)
+ */
+ OPENSSL_thread_stop();
+ return 0;
+}
+
+static int run_thread(thread_t *t)
+{
+ *t = CreateThread(NULL, 0, thread_run, NULL, 0, NULL);
+ return *t != NULL;
+}
+
+static int wait_for_thread(thread_t thread)
+{
+ return WaitForSingleObject(thread, INFINITE) == 0;
+}
+
+# else
+
+typedef pthread_t thread_t;
+
+static void *thread_run(void *arg)
+{
+ run_multi_thread_test();
+ /*
+ * Because we're linking with a static library, we must stop each
+ * thread explicitly, or so says OPENSSL_thread_stop(3)
+ */
+ OPENSSL_thread_stop();
+ return NULL;
+}
+
+static int run_thread(thread_t *t)
+{
+ return pthread_create(t, NULL, thread_run, NULL) == 0;
+}
+
+static int wait_for_thread(thread_t thread)
+{
+ return pthread_join(thread, NULL) == 0;
+}
+
+# endif
+
+/*
+ * The main thread will also run the test, so we'll have THREADS+1 parallel
+ * tests running
+ */
+# define THREADS 3
+
+static int test_multi_thread(void)
+{
+ thread_t t[THREADS];
+ int i;
+
+ for (i = 0; i < THREADS; i++)
+ run_thread(&t[i]);
+ run_multi_thread_test();
+ for (i = 0; i < THREADS; i++)
+ wait_for_thread(t[i]);
+
+ if (!TEST_true(multi_thread_rand_bytes_succeeded))
+ return 0;
+ if (!TEST_true(multi_thread_rand_priv_bytes_succeeded))
+ return 0;
+
+ return 1;
+}
+#endif
+
+/*
+ * Test that instantiation with RAND_seed() works as expected
+ *
+ * If no os entropy source is available then RAND_seed(buffer, bufsize)
+ * is expected to succeed if and only if the buffer length is at least
+ * rand_drbg_seedlen(master) bytes.
+ *
+ * If an os entropy source is available then RAND_seed(buffer, bufsize)
+ * is expected to succeed always.
+ */
+static int test_rand_seed(void)
+{
+ RAND_DRBG *master = NULL;
+ unsigned char rand_buf[256];
+ size_t rand_buflen;
+ size_t required_seed_buflen = 0;
+
+ if (!TEST_ptr(master = RAND_DRBG_get0_master()))
+ return 0;
+
+#ifdef OPENSSL_RAND_SEED_NONE
+ required_seed_buflen = rand_drbg_seedlen(master);
+#endif
+
+ memset(rand_buf, 0xCD, sizeof(rand_buf));
+
+ for ( rand_buflen = 256 ; rand_buflen > 0 ; --rand_buflen ) {
+ RAND_DRBG_uninstantiate(master);
+ RAND_seed(rand_buf, rand_buflen);
+
+ if (!TEST_int_eq(RAND_status(),
+ (rand_buflen >= required_seed_buflen)))
+ return 0;
+ }
+
+ return 1;
+}
+
+/*
+ * Test that adding additional data with RAND_add() works as expected
+ * when the master DRBG is instantiated (and below its reseed limit).
+ *
+ * This should succeed regardless of whether an os entropy source is
+ * available or not.
+ */
+static int test_rand_add(void)
+{
+ unsigned char rand_buf[256];
+ size_t rand_buflen;
+
+ memset(rand_buf, 0xCD, sizeof(rand_buf));
+
+ /* make sure it's instantiated */
+ RAND_seed(rand_buf, sizeof(rand_buf));
+ if (!TEST_true(RAND_status()))
+ return 0;
+
+ for ( rand_buflen = 256 ; rand_buflen > 0 ; --rand_buflen ) {
+ RAND_add(rand_buf, rand_buflen, 0.0);
+ if (!TEST_true(RAND_status()))
+ return 0;
+ }
+
+ return 1;
+}
+
+int setup_tests(void)
+{
+ app_data_index = RAND_DRBG_get_ex_new_index(0L, NULL, NULL, NULL, NULL);
+
+ ADD_ALL_TESTS(test_kats, OSSL_NELEM(drbg_test));
+ ADD_ALL_TESTS(test_error_checks, OSSL_NELEM(drbg_test));
+ ADD_TEST(test_rand_drbg_reseed);
+ ADD_TEST(test_rand_seed);
+ ADD_TEST(test_rand_add);
+#if defined(OPENSSL_THREADS)
+ ADD_TEST(test_multi_thread);
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbgtest.h b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbgtest.h
new file mode 100644
index 000000000..c11b8a2b4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/drbgtest.h
@@ -0,0 +1,579 @@
+/*
+ * Copyright 2011-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/*
+ * Known answer tests for SP800-90 DRBG CTR mode.
+ */
+
+
+/*
+ * AES-128 use df PR
+ */
+static const unsigned char aes_128_use_df_pr_entropyinput[] = {
+ 0x61, 0x52, 0x7c, 0xe3, 0x23, 0x7d, 0x0a, 0x07, 0x10, 0x0c, 0x50, 0x33,
+ 0xc8, 0xdb, 0xff, 0x12
+};
+static const unsigned char aes_128_use_df_pr_nonce[] = {
+ 0x51, 0x0d, 0x85, 0x77, 0xed, 0x22, 0x97, 0x28
+};
+static const unsigned char aes_128_use_df_pr_personalizationstring[] = {
+ 0x59, 0x9f, 0xbb, 0xcd, 0xd5, 0x25, 0x69, 0xb5, 0xcb, 0xb5, 0x03, 0xfe,
+ 0xd7, 0xd7, 0x01, 0x67
+};
+static const unsigned char aes_128_use_df_pr_additionalinput[] = {
+ 0xef, 0x88, 0x76, 0x01, 0xaf, 0x3c, 0xfe, 0x8b, 0xaf, 0x26, 0x06, 0x9e,
+ 0x9a, 0x47, 0x08, 0x76
+};
+static const unsigned char aes_128_use_df_pr_entropyinputpr[] = {
+ 0xe2, 0x76, 0xf9, 0xf6, 0x3a, 0xba, 0x10, 0x9f, 0xbf, 0x47, 0x0e, 0x51,
+ 0x09, 0xfb, 0xa3, 0xb6
+};
+static const unsigned char aes_128_use_df_pr_int_returnedbits[] = {
+ 0xd4, 0x98, 0x8a, 0x46, 0x80, 0x4c, 0xdb, 0xa3, 0x59, 0x02, 0x57, 0x52,
+ 0x66, 0x1c, 0xea, 0x5b
+};
+static const unsigned char aes_128_use_df_pr_additionalinput2[] = {
+ 0x88, 0x8c, 0x91, 0xd6, 0xbe, 0x56, 0x6e, 0x08, 0x9a, 0x62, 0x2b, 0x11,
+ 0x3f, 0x5e, 0x31, 0x06
+};
+static const unsigned char aes_128_use_df_pr_entropyinputpr2[] = {
+ 0xc0, 0x5c, 0x6b, 0x98, 0x01, 0x0d, 0x58, 0x18, 0x51, 0x18, 0x96, 0xae,
+ 0xa7, 0xe3, 0xa8, 0x67
+};
+static const unsigned char aes_128_use_df_pr_returnedbits[] = {
+ 0xcf, 0x01, 0xac, 0x22, 0x31, 0x06, 0x8e, 0xfc, 0xce, 0x56, 0xea, 0x24,
+ 0x0f, 0x38, 0x43, 0xc6
+};
+
+
+/*
+ * AES-128 use df no PR
+ */
+static const unsigned char aes_128_use_df_entropyinput[] = {
+ 0x1f, 0x8e, 0x34, 0x82, 0x0c, 0xb7, 0xbe, 0xc5, 0x01, 0x3e, 0xd0, 0xa3,
+ 0x9d, 0x7d, 0x1c, 0x9b
+};
+static const unsigned char aes_128_use_df_nonce[] = {
+ 0xd5, 0x4d, 0xbd, 0x4a, 0x93, 0x7f, 0xb8, 0x96,
+};
+static const unsigned char aes_128_use_df_personalizationstring[] = {
+ 0xab, 0xd6, 0x3f, 0x04, 0xfe, 0x27, 0x6b, 0x2d, 0xd7, 0xc3, 0x1c, 0xf3,
+ 0x38, 0x66, 0xba, 0x1b
+};
+static const unsigned char aes_128_use_df_additionalinput[] = {
+ 0xfe, 0xf4, 0x09, 0xa8, 0xb7, 0x73, 0x27, 0x9c, 0x5f, 0xa7, 0xea, 0x46,
+ 0xb5, 0xe2, 0xb2, 0x41
+};
+static const unsigned char aes_128_use_df_int_returnedbits[] = {
+ 0x42, 0xe4, 0x4e, 0x7b, 0x27, 0xdd, 0xcb, 0xbc, 0x0a, 0xcf, 0xa6, 0x67,
+ 0xe7, 0x57, 0x11, 0xb4
+};
+static const unsigned char aes_128_use_df_entropyinputreseed[] = {
+ 0x14, 0x26, 0x69, 0xd9, 0xf3, 0x65, 0x03, 0xd6, 0x6b, 0xb9, 0x44, 0x0b,
+ 0xc7, 0xc4, 0x9e, 0x39
+};
+static const unsigned char aes_128_use_df_additionalinputreseed[] = {
+ 0x55, 0x2e, 0x60, 0x9a, 0x05, 0x72, 0x8a, 0xa8, 0xef, 0x22, 0x81, 0x5a,
+ 0xc8, 0x93, 0xfa, 0x84
+};
+static const unsigned char aes_128_use_df_additionalinput2[] = {
+ 0x3c, 0x40, 0xc8, 0xc4, 0x16, 0x0c, 0x21, 0xa4, 0x37, 0x2c, 0x8f, 0xa5,
+ 0x06, 0x0c, 0x15, 0x2c
+};
+static const unsigned char aes_128_use_df_returnedbits[] = {
+ 0xe1, 0x3e, 0x99, 0x98, 0x86, 0x67, 0x0b, 0x63, 0x7b, 0xbe, 0x3f, 0x88,
+ 0x46, 0x81, 0xc7, 0x19
+};
+
+
+/*
+ * AES-192 use df PR
+ */
+static const unsigned char aes_192_use_df_pr_entropyinput[] = {
+ 0x2b, 0x4e, 0x8b, 0xe1, 0xf1, 0x34, 0x80, 0x56, 0x81, 0xf9, 0x74, 0xec,
+ 0x17, 0x44, 0x2a, 0xf1, 0x14, 0xb0, 0xbf, 0x97, 0x39, 0xb7, 0x04, 0x7d
+};
+static const unsigned char aes_192_use_df_pr_nonce[] = {
+ 0xd6, 0x9d, 0xeb, 0x14, 0x4e, 0x6c, 0x30, 0x1e, 0x39, 0x55, 0x73, 0xd0,
+ 0xd1, 0x80, 0x78, 0xfa
+};
+static const unsigned char aes_192_use_df_pr_personalizationstring[] = {
+ 0xfc, 0x43, 0x4a, 0xf8, 0x9a, 0x55, 0xb3, 0x53, 0x83, 0xe2, 0x18, 0x16,
+ 0x0c, 0xdc, 0xcd, 0x5e, 0x4f, 0xa0, 0x03, 0x01, 0x2b, 0x9f, 0xe4, 0xd5,
+ 0x7d, 0x49, 0xf0, 0x41, 0x9e, 0x3d, 0x99, 0x04
+};
+static const unsigned char aes_192_use_df_pr_additionalinput[] = {
+ 0x5e, 0x9f, 0x49, 0x6f, 0x21, 0x8b, 0x1d, 0x32, 0xd5, 0x84, 0x5c, 0xac,
+ 0xaf, 0xdf, 0xe4, 0x79, 0x9e, 0xaf, 0xa9, 0x82, 0xd0, 0xf8, 0x4f, 0xcb,
+ 0x69, 0x10, 0x0a, 0x7e, 0x81, 0x57, 0xb5, 0x36
+};
+static const unsigned char aes_192_use_df_pr_entropyinputpr[] = {
+ 0xd4, 0x81, 0x0c, 0xd7, 0x66, 0x39, 0xec, 0x42, 0x53, 0x87, 0x41, 0xa5,
+ 0x1e, 0x7d, 0x80, 0x91, 0x8e, 0xbb, 0xed, 0xac, 0x14, 0x02, 0x1a, 0xd5,
+};
+static const unsigned char aes_192_use_df_pr_int_returnedbits[] = {
+ 0xdf, 0x1d, 0x39, 0x45, 0x7c, 0x9b, 0xc6, 0x2b, 0x7d, 0x8c, 0x93, 0xe9,
+ 0x19, 0x30, 0x6b, 0x67
+};
+static const unsigned char aes_192_use_df_pr_additionalinput2[] = {
+ 0x00, 0x71, 0x27, 0x4e, 0xd3, 0x14, 0xf1, 0x20, 0x7f, 0x4a, 0x41, 0x32,
+ 0x2a, 0x97, 0x11, 0x43, 0x8f, 0x4a, 0x15, 0x7b, 0x9b, 0x51, 0x79, 0xda,
+ 0x49, 0x3d, 0xde, 0xe8, 0xbc, 0x93, 0x91, 0x99
+};
+static const unsigned char aes_192_use_df_pr_entropyinputpr2[] = {
+ 0x90, 0xee, 0x76, 0xa1, 0x45, 0x8d, 0xb7, 0x40, 0xb0, 0x11, 0xbf, 0xd0,
+ 0x65, 0xd7, 0x3c, 0x7c, 0x4f, 0x20, 0x3f, 0x4e, 0x11, 0x9d, 0xb3, 0x5e,
+};
+static const unsigned char aes_192_use_df_pr_returnedbits[] = {
+ 0x24, 0x3b, 0x20, 0xa4, 0x37, 0x66, 0xba, 0x72, 0x39, 0x3f, 0xcf, 0x3c,
+ 0x7e, 0x1a, 0x2b, 0x83
+};
+
+
+/*
+ * AES-192 use df no PR
+ */
+static const unsigned char aes_192_use_df_entropyinput[] = {
+ 0x8d, 0x74, 0xa4, 0x50, 0x1a, 0x02, 0x68, 0x0c, 0x2a, 0x69, 0xc4, 0x82,
+ 0x3b, 0xbb, 0xda, 0x0e, 0x7f, 0x77, 0xa3, 0x17, 0x78, 0x57, 0xb2, 0x7b,
+};
+static const unsigned char aes_192_use_df_nonce[] = {
+ 0x75, 0xd5, 0x1f, 0xac, 0xa4, 0x8d, 0x42, 0x78, 0xd7, 0x69, 0x86, 0x9d,
+ 0x77, 0xd7, 0x41, 0x0e
+};
+static const unsigned char aes_192_use_df_personalizationstring[] = {
+ 0x4e, 0x33, 0x41, 0x3c, 0x9c, 0xc2, 0xd2, 0x53, 0xaf, 0x90, 0xea, 0xcf,
+ 0x19, 0x50, 0x1e, 0xe6, 0x6f, 0x63, 0xc8, 0x32, 0x22, 0xdc, 0x07, 0x65,
+ 0x9c, 0xd3, 0xf8, 0x30, 0x9e, 0xed, 0x35, 0x70
+};
+static const unsigned char aes_192_use_df_additionalinput[] = {
+ 0x5d, 0x8b, 0x8c, 0xc1, 0xdf, 0x0e, 0x02, 0x78, 0xfb, 0x19, 0xb8, 0x69,
+ 0x78, 0x4e, 0x9c, 0x52, 0xbc, 0xc7, 0x20, 0xc9, 0xe6, 0x5e, 0x77, 0x22,
+ 0x28, 0x3d, 0x0c, 0x9e, 0x68, 0xa8, 0x45, 0xd7
+};
+static const unsigned char aes_192_use_df_int_returnedbits[] = {
+ 0xd5, 0xe7, 0x08, 0xc5, 0x19, 0x99, 0xd5, 0x31, 0x03, 0x0a, 0x74, 0xb6,
+ 0xb7, 0xed, 0xe9, 0xea
+};
+static const unsigned char aes_192_use_df_entropyinputreseed[] = {
+ 0x9c, 0x26, 0xda, 0xf1, 0xac, 0xd9, 0x5a, 0xd6, 0xa8, 0x65, 0xf5, 0x02,
+ 0x8f, 0xdc, 0xa2, 0x09, 0x54, 0xa6, 0xe2, 0xa4, 0xde, 0x32, 0xe0, 0x01,
+};
+static const unsigned char aes_192_use_df_additionalinputreseed[] = {
+ 0x9b, 0x90, 0xb0, 0x3a, 0x0e, 0x3a, 0x80, 0x07, 0x4a, 0xf4, 0xda, 0x76,
+ 0x28, 0x30, 0x3c, 0xee, 0x54, 0x1b, 0x94, 0x59, 0x51, 0x43, 0x56, 0x77,
+ 0xaf, 0x88, 0xdd, 0x63, 0x89, 0x47, 0x06, 0x65
+};
+static const unsigned char aes_192_use_df_additionalinput2[] = {
+ 0x3c, 0x11, 0x64, 0x7a, 0x96, 0xf5, 0xd8, 0xb8, 0xae, 0xd6, 0x70, 0x4e,
+ 0x16, 0x96, 0xde, 0xe9, 0x62, 0xbc, 0xee, 0x28, 0x2f, 0x26, 0xa6, 0xf0,
+ 0x56, 0xef, 0xa3, 0xf1, 0x6b, 0xa1, 0xb1, 0x77
+};
+static const unsigned char aes_192_use_df_returnedbits[] = {
+ 0x0b, 0xe2, 0x56, 0x03, 0x1e, 0xdb, 0x2c, 0x6d, 0x7f, 0x1b, 0x15, 0x58,
+ 0x1a, 0xf9, 0x13, 0x28
+};
+
+
+/*
+ * AES-256 use df PR
+ */
+static const unsigned char aes_256_use_df_pr_entropyinput[] = {
+ 0x61, 0x68, 0xfc, 0x1a, 0xf0, 0xb5, 0x95, 0x6b, 0x85, 0x09, 0x9b, 0x74,
+ 0x3f, 0x13, 0x78, 0x49, 0x3b, 0x85, 0xec, 0x93, 0x13, 0x3b, 0xa9, 0x4f,
+ 0x96, 0xab, 0x2c, 0xe4, 0xc8, 0x8f, 0xdd, 0x6a
+};
+static const unsigned char aes_256_use_df_pr_nonce[] = {
+ 0xad, 0xd2, 0xbb, 0xba, 0xb7, 0x65, 0x89, 0xc3, 0x21, 0x6c, 0x55, 0x33,
+ 0x2b, 0x36, 0xff, 0xa4
+};
+static const unsigned char aes_256_use_df_pr_personalizationstring[] = {
+ 0x6e, 0xca, 0xe7, 0x20, 0x72, 0xd3, 0x84, 0x5a, 0x32, 0xd3, 0x4b, 0x24,
+ 0x72, 0xc4, 0x63, 0x2b, 0x9d, 0x12, 0x24, 0x0c, 0x23, 0x26, 0x8e, 0x83,
+ 0x16, 0x37, 0x0b, 0xd1, 0x06, 0x4f, 0x68, 0x6d
+};
+static const unsigned char aes_256_use_df_pr_additionalinput[] = {
+ 0x7e, 0x08, 0x4a, 0xbb, 0xe3, 0x21, 0x7c, 0xc9, 0x23, 0xd2, 0xf8, 0xb0,
+ 0x73, 0x98, 0xba, 0x84, 0x74, 0x23, 0xab, 0x06, 0x8a, 0xe2, 0x22, 0xd3,
+ 0x7b, 0xce, 0x9b, 0xd2, 0x4a, 0x76, 0xb8, 0xde
+};
+static const unsigned char aes_256_use_df_pr_entropyinputpr[] = {
+ 0x0b, 0x23, 0xaf, 0xdf, 0xf1, 0x62, 0xd7, 0xd3, 0x43, 0x97, 0xf8, 0x77,
+ 0x04, 0xa8, 0x42, 0x20, 0xbd, 0xf6, 0x0f, 0xc1, 0x17, 0x2f, 0x9f, 0x54,
+ 0xbb, 0x56, 0x17, 0x86, 0x68, 0x0e, 0xba, 0xa9
+};
+static const unsigned char aes_256_use_df_pr_int_returnedbits[] = {
+ 0x31, 0x8e, 0xad, 0xaf, 0x40, 0xeb, 0x6b, 0x74, 0x31, 0x46, 0x80, 0xc7,
+ 0x17, 0xab, 0x3c, 0x7a
+};
+static const unsigned char aes_256_use_df_pr_additionalinput2[] = {
+ 0x94, 0x6b, 0xc9, 0x9f, 0xab, 0x8d, 0xc5, 0xec, 0x71, 0x88, 0x1d, 0x00,
+ 0x8c, 0x89, 0x68, 0xe4, 0xc8, 0x07, 0x77, 0x36, 0x17, 0x6d, 0x79, 0x78,
+ 0xc7, 0x06, 0x4e, 0x99, 0x04, 0x28, 0x29, 0xc3
+};
+static const unsigned char aes_256_use_df_pr_entropyinputpr2[] = {
+ 0xbf, 0x6c, 0x59, 0x2a, 0x0d, 0x44, 0x0f, 0xae, 0x9a, 0x5e, 0x03, 0x73,
+ 0xd8, 0xa6, 0xe1, 0xcf, 0x25, 0x61, 0x38, 0x24, 0x86, 0x9e, 0x53, 0xe8,
+ 0xa4, 0xdf, 0x56, 0xf4, 0x06, 0x07, 0x9c, 0x0f
+};
+static const unsigned char aes_256_use_df_pr_returnedbits[] = {
+ 0x22, 0x4a, 0xb4, 0xb8, 0xb6, 0xee, 0x7d, 0xb1, 0x9e, 0xc9, 0xf9, 0xa0,
+ 0xd9, 0xe2, 0x97, 0x00
+};
+
+
+/*
+ * AES-256 use df no PR
+ */
+static const unsigned char aes_256_use_df_entropyinput[] = {
+ 0xa5, 0x3e, 0x37, 0x10, 0x17, 0x43, 0x91, 0x93, 0x59, 0x1e, 0x47, 0x50,
+ 0x87, 0xaa, 0xdd, 0xd5, 0xc1, 0xc3, 0x86, 0xcd, 0xca, 0x0d, 0xdb, 0x68,
+ 0xe0, 0x02, 0xd8, 0x0f, 0xdc, 0x40, 0x1a, 0x47
+};
+static const unsigned char aes_256_use_df_nonce[] = {
+ 0xa9, 0x4d, 0xa5, 0x5a, 0xfd, 0xc5, 0x0c, 0xe5, 0x1c, 0x9a, 0x3b, 0x8a,
+ 0x4c, 0x44, 0x84, 0x40
+};
+static const unsigned char aes_256_use_df_personalizationstring[] = {
+ 0x8b, 0x52, 0xa2, 0x4a, 0x93, 0xc3, 0x4e, 0xa7, 0x1e, 0x1c, 0xa7, 0x05,
+ 0xeb, 0x82, 0x9b, 0xa6, 0x5d, 0xe4, 0xd4, 0xe0, 0x7f, 0xa3, 0xd8, 0x6b,
+ 0x37, 0x84, 0x5f, 0xf1, 0xc7, 0xd5, 0xf6, 0xd2
+};
+static const unsigned char aes_256_use_df_additionalinput[] = {
+ 0x20, 0xf4, 0x22, 0xed, 0xf8, 0x5c, 0xa1, 0x6a, 0x01, 0xcf, 0xbe, 0x5f,
+ 0x8d, 0x6c, 0x94, 0x7f, 0xae, 0x12, 0xa8, 0x57, 0xdb, 0x2a, 0xa9, 0xbf,
+ 0xc7, 0xb3, 0x65, 0x81, 0x80, 0x8d, 0x0d, 0x46
+};
+static const unsigned char aes_256_use_df_int_returnedbits[] = {
+ 0x4e, 0x44, 0xfd, 0xf3, 0x9e, 0x29, 0xa2, 0xb8, 0x0f, 0x5d, 0x6c, 0xe1,
+ 0x28, 0x0c, 0x3b, 0xc1
+};
+static const unsigned char aes_256_use_df_entropyinputreseed[] = {
+ 0xdd, 0x40, 0xe5, 0x98, 0x7b, 0x27, 0x16, 0x73, 0x15, 0x68, 0xd2, 0x76,
+ 0xbf, 0x0c, 0x67, 0x15, 0x75, 0x79, 0x03, 0xd3, 0xde, 0xde, 0x91, 0x46,
+ 0x42, 0xdd, 0xd4, 0x67, 0xc8, 0x79, 0xc8, 0x1e
+};
+static const unsigned char aes_256_use_df_additionalinputreseed[] = {
+ 0x7f, 0xd8, 0x1f, 0xbd, 0x2a, 0xb5, 0x1c, 0x11, 0x5d, 0x83, 0x4e, 0x99,
+ 0xf6, 0x5c, 0xa5, 0x40, 0x20, 0xed, 0x38, 0x8e, 0xd5, 0x9e, 0xe0, 0x75,
+ 0x93, 0xfe, 0x12, 0x5e, 0x5d, 0x73, 0xfb, 0x75
+};
+static const unsigned char aes_256_use_df_additionalinput2[] = {
+ 0xcd, 0x2c, 0xff, 0x14, 0x69, 0x3e, 0x4c, 0x9e, 0xfd, 0xfe, 0x26, 0x0d,
+ 0xe9, 0x86, 0x00, 0x49, 0x30, 0xba, 0xb1, 0xc6, 0x50, 0x57, 0x77, 0x2a,
+ 0x62, 0x39, 0x2c, 0x3b, 0x74, 0xeb, 0xc9, 0x0d
+};
+static const unsigned char aes_256_use_df_returnedbits[] = {
+ 0x4f, 0x78, 0xbe, 0xb9, 0x4d, 0x97, 0x8c, 0xe9, 0xd0, 0x97, 0xfe, 0xad,
+ 0xfa, 0xfd, 0x35, 0x5e
+};
+
+
+/*
+ * AES-128 no df PR
+ */
+static const unsigned char aes_128_no_df_pr_entropyinput[] = {
+ 0x9a, 0x25, 0x65, 0x10, 0x67, 0xd5, 0xb6, 0x6b, 0x70, 0xa1, 0xb3, 0xa4,
+ 0x43, 0x95, 0x80, 0xc0, 0x84, 0x0a, 0x79, 0xb0, 0x88, 0x74, 0xf2, 0xbf,
+ 0x31, 0x6c, 0x33, 0x38, 0x0b, 0x00, 0xb2, 0x5a
+};
+static const unsigned char aes_128_no_df_pr_nonce[] = {
+ 0x78, 0x47, 0x6b, 0xf7, 0x90, 0x8e, 0x87, 0xf1,
+};
+static const unsigned char aes_128_no_df_pr_personalizationstring[] = {
+ 0xf7, 0x22, 0x1d, 0x3a, 0xbe, 0x1d, 0xca, 0x32, 0x1b, 0xbd, 0x87, 0x0c,
+ 0x51, 0x24, 0x19, 0xee, 0xa3, 0x23, 0x09, 0x63, 0x33, 0x3d, 0xa8, 0x0c,
+ 0x1c, 0xfa, 0x42, 0x89, 0xcc, 0x6f, 0xa0, 0xa8
+};
+static const unsigned char aes_128_no_df_pr_additionalinput[] = {
+ 0xc9, 0xe0, 0x80, 0xbf, 0x8c, 0x45, 0x58, 0x39, 0xff, 0x00, 0xab, 0x02,
+ 0x4c, 0x3e, 0x3a, 0x95, 0x9b, 0x80, 0xa8, 0x21, 0x2a, 0xee, 0xba, 0x73,
+ 0xb1, 0xd9, 0xcf, 0x28, 0xf6, 0x8f, 0x9b, 0x12
+};
+static const unsigned char aes_128_no_df_pr_entropyinputpr[] = {
+ 0x4c, 0xa8, 0xc5, 0xf0, 0x59, 0x9e, 0xa6, 0x8d, 0x26, 0x53, 0xd7, 0x8a,
+ 0xa9, 0xd8, 0xf7, 0xed, 0xb2, 0xf9, 0x12, 0x42, 0xe1, 0xe5, 0xbd, 0xe7,
+ 0xe7, 0x1d, 0x74, 0x99, 0x00, 0x9d, 0x31, 0x3e
+};
+static const unsigned char aes_128_no_df_pr_int_returnedbits[] = {
+ 0xe2, 0xac, 0x20, 0xf0, 0x80, 0xe7, 0xbc, 0x7e, 0x9c, 0x7b, 0x65, 0x71,
+ 0xaf, 0x19, 0x32, 0x16
+};
+static const unsigned char aes_128_no_df_pr_additionalinput2[] = {
+ 0x32, 0x7f, 0x38, 0x8b, 0x73, 0x0a, 0x78, 0x83, 0xdc, 0x30, 0xbe, 0x9f,
+ 0x10, 0x1f, 0xf5, 0x1f, 0xca, 0x00, 0xb5, 0x0d, 0xd6, 0x9d, 0x60, 0x83,
+ 0x51, 0x54, 0x7d, 0x38, 0x23, 0x3a, 0x52, 0x50
+};
+static const unsigned char aes_128_no_df_pr_entropyinputpr2[] = {
+ 0x18, 0x61, 0x53, 0x56, 0xed, 0xed, 0xd7, 0x20, 0xfb, 0x71, 0x04, 0x7a,
+ 0xb2, 0xac, 0xc1, 0x28, 0xcd, 0xf2, 0xc2, 0xfc, 0xaa, 0xb1, 0x06, 0x07,
+ 0xe9, 0x46, 0x95, 0x02, 0x48, 0x01, 0x78, 0xf9
+};
+static const unsigned char aes_128_no_df_pr_returnedbits[] = {
+ 0x29, 0xc8, 0x1b, 0x15, 0xb1, 0xd1, 0xc2, 0xf6, 0x71, 0x86, 0x68, 0x33,
+ 0x57, 0x82, 0x33, 0xaf
+};
+
+
+/*
+ * AES-128 no df no PR
+ */
+static const unsigned char aes_128_no_df_entropyinput[] = {
+ 0xc9, 0xc5, 0x79, 0xbc, 0xe8, 0xc5, 0x19, 0xd8, 0xbc, 0x66, 0x73, 0x67,
+ 0xf6, 0xd3, 0x72, 0xaa, 0xa6, 0x16, 0xb8, 0x50, 0xb7, 0x47, 0x3a, 0x42,
+ 0xab, 0xf4, 0x16, 0xb2, 0x96, 0xd2, 0xb6, 0x60
+};
+static const unsigned char aes_128_no_df_nonce[] = {
+ 0x5f, 0xbf, 0x97, 0x0c, 0x4b, 0xa4, 0x87, 0x13,
+};
+static const unsigned char aes_128_no_df_personalizationstring[] = {
+ 0xce, 0xfb, 0x7b, 0x3f, 0xd4, 0x6b, 0x29, 0x0d, 0x69, 0x06, 0xff, 0xbb,
+ 0xf2, 0xe5, 0xc6, 0x6c, 0x0a, 0x10, 0xa0, 0xcf, 0x1a, 0x48, 0xc7, 0x8b,
+ 0x3c, 0x16, 0x88, 0xed, 0x50, 0x13, 0x81, 0xce
+};
+static const unsigned char aes_128_no_df_additionalinput[] = {
+ 0x4b, 0x22, 0x46, 0x18, 0x02, 0x7b, 0xd2, 0x1b, 0x22, 0x42, 0x7c, 0x37,
+ 0xd9, 0xf6, 0xe8, 0x9b, 0x12, 0x30, 0x5f, 0xe9, 0x90, 0xe8, 0x08, 0x24,
+ 0x4f, 0x06, 0x66, 0xdb, 0x19, 0x2b, 0x13, 0x95
+};
+static const unsigned char aes_128_no_df_int_returnedbits[] = {
+ 0x2e, 0x96, 0x70, 0x64, 0xfa, 0xdf, 0xdf, 0x57, 0xb5, 0x82, 0xee, 0xd6,
+ 0xed, 0x3e, 0x65, 0xc2
+};
+static const unsigned char aes_128_no_df_entropyinputreseed[] = {
+ 0x26, 0xc0, 0x72, 0x16, 0x3a, 0x4b, 0xb7, 0x99, 0xd4, 0x07, 0xaf, 0x66,
+ 0x62, 0x36, 0x96, 0xa4, 0x51, 0x17, 0xfa, 0x07, 0x8b, 0x17, 0x5e, 0xa1,
+ 0x2f, 0x3c, 0x10, 0xe7, 0x90, 0xd0, 0x46, 0x00
+};
+static const unsigned char aes_128_no_df_additionalinputreseed[] = {
+ 0x83, 0x39, 0x37, 0x7b, 0x02, 0x06, 0xd2, 0x12, 0x13, 0x8d, 0x8b, 0xf2,
+ 0xf0, 0xf6, 0x26, 0xeb, 0xa4, 0x22, 0x7b, 0xc2, 0xe7, 0xba, 0x79, 0xe4,
+ 0x3b, 0x77, 0x5d, 0x4d, 0x47, 0xb2, 0x2d, 0xb4
+};
+static const unsigned char aes_128_no_df_additionalinput2[] = {
+ 0x0b, 0xb9, 0x67, 0x37, 0xdb, 0x83, 0xdf, 0xca, 0x81, 0x8b, 0xf9, 0x3f,
+ 0xf1, 0x11, 0x1b, 0x2f, 0xf0, 0x61, 0xa6, 0xdf, 0xba, 0xa3, 0xb1, 0xac,
+ 0xd3, 0xe6, 0x09, 0xb8, 0x2c, 0x6a, 0x67, 0xd6
+};
+static const unsigned char aes_128_no_df_returnedbits[] = {
+ 0x1e, 0xa7, 0xa4, 0xe4, 0xe1, 0xa6, 0x7c, 0x69, 0x9a, 0x44, 0x6c, 0x36,
+ 0x81, 0x37, 0x19, 0xd4
+};
+
+
+/*
+ * AES-192 no df PR
+ */
+static const unsigned char aes_192_no_df_pr_entropyinput[] = {
+ 0x9d, 0x2c, 0xd2, 0x55, 0x66, 0xea, 0xe0, 0xbe, 0x18, 0xb7, 0x76, 0xe7,
+ 0x73, 0x35, 0xd8, 0x1f, 0xad, 0x3a, 0xe3, 0x81, 0x0e, 0x92, 0xd0, 0x61,
+ 0xc9, 0x12, 0x26, 0xf6, 0x1c, 0xdf, 0xfe, 0x47, 0xaa, 0xfe, 0x7d, 0x5a,
+ 0x17, 0x1f, 0x8d, 0x9a
+};
+static const unsigned char aes_192_no_df_pr_nonce[] = {
+ 0x44, 0x82, 0xed, 0xe8, 0x4c, 0x28, 0x5a, 0x14, 0xff, 0x88, 0x8d, 0x19,
+ 0x61, 0x5c, 0xee, 0x0f
+};
+static const unsigned char aes_192_no_df_pr_personalizationstring[] = {
+ 0x47, 0xd7, 0x9b, 0x99, 0xaa, 0xcb, 0xe7, 0xd2, 0x57, 0x66, 0x2c, 0xe1,
+ 0x78, 0xd6, 0x2c, 0xea, 0xa3, 0x23, 0x5f, 0x2a, 0xc1, 0x3a, 0xf0, 0xa4,
+ 0x20, 0x3b, 0xfa, 0x07, 0xd5, 0x05, 0x02, 0xe4, 0x57, 0x01, 0xb6, 0x10,
+ 0x57, 0x2e, 0xe7, 0x55
+};
+static const unsigned char aes_192_no_df_pr_additionalinput[] = {
+ 0x4b, 0x74, 0x0b, 0x40, 0xce, 0x6b, 0xc2, 0x6a, 0x24, 0xb4, 0xf3, 0xad,
+ 0x7a, 0xa5, 0x7a, 0xa2, 0x15, 0xe2, 0xc8, 0x61, 0x15, 0xc6, 0xb7, 0x85,
+ 0x69, 0x11, 0xad, 0x7b, 0x14, 0xd2, 0xf6, 0x12, 0xa1, 0x95, 0x5d, 0x3f,
+ 0xe2, 0xd0, 0x0c, 0x2f
+};
+static const unsigned char aes_192_no_df_pr_entropyinputpr[] = {
+ 0x0c, 0x9c, 0xad, 0x05, 0xee, 0xae, 0x48, 0x23, 0x89, 0x59, 0xa1, 0x94,
+ 0xd7, 0xd8, 0x75, 0xd5, 0x54, 0x93, 0xc7, 0x4a, 0xd9, 0x26, 0xde, 0xeb,
+ 0xba, 0xb0, 0x7e, 0x30, 0x1d, 0x5f, 0x69, 0x40, 0x9c, 0x3b, 0x17, 0x58,
+ 0x1d, 0x30, 0xb3, 0x78
+};
+static const unsigned char aes_192_no_df_pr_int_returnedbits[] = {
+ 0xf7, 0x93, 0xb0, 0x6d, 0x77, 0x83, 0xd5, 0x38, 0x01, 0xe1, 0x52, 0x40,
+ 0x7e, 0x3e, 0x0c, 0x26
+};
+static const unsigned char aes_192_no_df_pr_additionalinput2[] = {
+ 0xbc, 0x4b, 0x37, 0x44, 0x1c, 0xc5, 0x45, 0x5f, 0x8f, 0x51, 0x62, 0x8a,
+ 0x85, 0x30, 0x1d, 0x7c, 0xe4, 0xcf, 0xf7, 0x44, 0xce, 0x32, 0x3e, 0x57,
+ 0x95, 0xa4, 0x2a, 0xdf, 0xfd, 0x9e, 0x38, 0x41, 0xb3, 0xf6, 0xc5, 0xee,
+ 0x0c, 0x4b, 0xee, 0x6e
+};
+static const unsigned char aes_192_no_df_pr_entropyinputpr2[] = {
+ 0xec, 0xaf, 0xf6, 0x4f, 0xb1, 0xa0, 0x54, 0xb5, 0x5b, 0xe3, 0x46, 0xb0,
+ 0x76, 0x5a, 0x7c, 0x3f, 0x7b, 0x94, 0x69, 0x21, 0x51, 0x02, 0xe5, 0x9f,
+ 0x04, 0x59, 0x02, 0x98, 0xc6, 0x43, 0x2c, 0xcc, 0x26, 0x4c, 0x87, 0x6b,
+ 0x8e, 0x0a, 0x83, 0xdf
+};
+static const unsigned char aes_192_no_df_pr_returnedbits[] = {
+ 0x74, 0x45, 0xfb, 0x53, 0x84, 0x96, 0xbe, 0xff, 0x15, 0xcc, 0x41, 0x91,
+ 0xb9, 0xa1, 0x21, 0x68
+};
+
+
+/*
+ * AES-192 no df no PR
+ */
+static const unsigned char aes_192_no_df_entropyinput[] = {
+ 0x3c, 0x7d, 0xb5, 0xe0, 0x54, 0xd9, 0x6e, 0x8c, 0xa9, 0x86, 0xce, 0x4e,
+ 0x6b, 0xaf, 0xeb, 0x2f, 0xe7, 0x75, 0xe0, 0x8b, 0xa4, 0x3b, 0x07, 0xfe,
+ 0xbe, 0x33, 0x75, 0x93, 0x80, 0x27, 0xb5, 0x29, 0x47, 0x8b, 0xc7, 0x28,
+ 0x94, 0xc3, 0x59, 0x63
+};
+static const unsigned char aes_192_no_df_nonce[] = {
+ 0x43, 0xf1, 0x7d, 0xb8, 0xc3, 0xfe, 0xd0, 0x23, 0x6b, 0xb4, 0x92, 0xdb,
+ 0x29, 0xfd, 0x45, 0x71
+};
+static const unsigned char aes_192_no_df_personalizationstring[] = {
+ 0x9f, 0x24, 0x29, 0x99, 0x9e, 0x01, 0xab, 0xe9, 0x19, 0xd8, 0x23, 0x08,
+ 0xb7, 0xd6, 0x7e, 0x8c, 0xc0, 0x9e, 0x7f, 0x6e, 0x5b, 0x33, 0x20, 0x96,
+ 0x0b, 0x23, 0x2c, 0xa5, 0x6a, 0xf8, 0x1b, 0x04, 0x26, 0xdb, 0x2e, 0x2b,
+ 0x3b, 0x88, 0xce, 0x35
+};
+static const unsigned char aes_192_no_df_additionalinput[] = {
+ 0x94, 0xe9, 0x7c, 0x3d, 0xa7, 0xdb, 0x60, 0x83, 0x1f, 0x98, 0x3f, 0x0b,
+ 0x88, 0x59, 0x57, 0x51, 0x88, 0x9f, 0x76, 0x49, 0x9f, 0xa6, 0xda, 0x71,
+ 0x1d, 0x0d, 0x47, 0x16, 0x63, 0xc5, 0x68, 0xe4, 0x5d, 0x39, 0x69, 0xb3,
+ 0x3e, 0xbe, 0xd4, 0x8e
+};
+static const unsigned char aes_192_no_df_int_returnedbits[] = {
+ 0xf9, 0xd7, 0xad, 0x69, 0xab, 0x8f, 0x23, 0x56, 0x70, 0x17, 0x4f, 0x2a,
+ 0x45, 0xe7, 0x4a, 0xc5
+};
+static const unsigned char aes_192_no_df_entropyinputreseed[] = {
+ 0xa6, 0x71, 0x6a, 0x3d, 0xba, 0xd1, 0xe8, 0x66, 0xa6, 0xef, 0xb2, 0x0e,
+ 0xa8, 0x9c, 0xaa, 0x4e, 0xaf, 0x17, 0x89, 0x50, 0x00, 0xda, 0xa1, 0xb1,
+ 0x0b, 0xa4, 0xd9, 0x35, 0x89, 0xc8, 0xe5, 0xb0, 0xd9, 0xb7, 0xc4, 0x33,
+ 0x9b, 0xcb, 0x7e, 0x75
+};
+static const unsigned char aes_192_no_df_additionalinputreseed[] = {
+ 0x27, 0x21, 0xfc, 0xc2, 0xbd, 0xf3, 0x3c, 0xce, 0xc3, 0xca, 0xc1, 0x01,
+ 0xe0, 0xff, 0x93, 0x12, 0x7d, 0x54, 0x42, 0xe3, 0x9f, 0x03, 0xdf, 0x27,
+ 0x04, 0x07, 0x3c, 0x53, 0x7f, 0xa8, 0x66, 0xc8, 0x97, 0x4b, 0x61, 0x40,
+ 0x5d, 0x7a, 0x25, 0x79
+};
+static const unsigned char aes_192_no_df_additionalinput2[] = {
+ 0x2d, 0x8e, 0x16, 0x5d, 0x0b, 0x9f, 0xeb, 0xaa, 0xd6, 0xec, 0x28, 0x71,
+ 0x7c, 0x0b, 0xc1, 0x1d, 0xd4, 0x44, 0x19, 0x47, 0xfd, 0x1d, 0x7c, 0xe5,
+ 0xf3, 0x27, 0xe1, 0xb6, 0x72, 0x0a, 0xe0, 0xec, 0x0e, 0xcd, 0xef, 0x1a,
+ 0x91, 0x6a, 0xe3, 0x5f
+};
+static const unsigned char aes_192_no_df_returnedbits[] = {
+ 0xe5, 0xda, 0xb8, 0xe0, 0x63, 0x59, 0x5a, 0xcc, 0x3d, 0xdc, 0x9f, 0xe8,
+ 0x66, 0x67, 0x2c, 0x92
+};
+
+
+/*
+ * AES-256 no df PR
+ */
+static const unsigned char aes_256_no_df_pr_entropyinput[] = {
+ 0x15, 0xc7, 0x5d, 0xcb, 0x41, 0x4b, 0x16, 0x01, 0x3a, 0xd1, 0x44, 0xe8,
+ 0x22, 0x32, 0xc6, 0x9c, 0x3f, 0xe7, 0x43, 0xf5, 0x9a, 0xd3, 0xea, 0xf2,
+ 0xd7, 0x4e, 0x6e, 0x6a, 0x55, 0x73, 0x40, 0xef, 0x89, 0xad, 0x0d, 0x03,
+ 0x96, 0x7e, 0x78, 0x81, 0x2f, 0x91, 0x1b, 0x44, 0xb0, 0x02, 0xba, 0x1c,
+};
+static const unsigned char aes_256_no_df_pr_nonce[] = {
+ 0xdc, 0xe4, 0xd4, 0x27, 0x7a, 0x90, 0xd7, 0x99, 0x43, 0xa1, 0x3c, 0x30,
+ 0xcc, 0x4b, 0xee, 0x2e
+};
+static const unsigned char aes_256_no_df_pr_personalizationstring[] = {
+ 0xe3, 0xe6, 0xb9, 0x11, 0xe4, 0x7a, 0xa4, 0x40, 0x6b, 0xf8, 0x73, 0xf7,
+ 0x7e, 0xec, 0xc7, 0xb9, 0x97, 0xbf, 0xf8, 0x25, 0x7b, 0xbe, 0x11, 0x9b,
+ 0x5b, 0x6a, 0x0c, 0x2e, 0x2b, 0x01, 0x51, 0xcd, 0x41, 0x4b, 0x6b, 0xac,
+ 0x31, 0xa8, 0x0b, 0xf7, 0xe6, 0x59, 0x42, 0xb8, 0x03, 0x0c, 0xf8, 0x06,
+};
+static const unsigned char aes_256_no_df_pr_additionalinput[] = {
+ 0x6a, 0x9f, 0x00, 0x91, 0xae, 0xfe, 0xcf, 0x84, 0x99, 0xce, 0xb1, 0x40,
+ 0x6d, 0x5d, 0x33, 0x28, 0x84, 0xf4, 0x8c, 0x63, 0x4c, 0x7e, 0xbd, 0x2c,
+ 0x80, 0x76, 0xee, 0x5a, 0xaa, 0x15, 0x07, 0x31, 0xd8, 0xbb, 0x8c, 0x69,
+ 0x9d, 0x9d, 0xbc, 0x7e, 0x49, 0xae, 0xec, 0x39, 0x6b, 0xd1, 0x1f, 0x7e,
+};
+static const unsigned char aes_256_no_df_pr_entropyinputpr[] = {
+ 0xf3, 0xb9, 0x75, 0x9c, 0xbd, 0x88, 0xea, 0xa2, 0x50, 0xad, 0xd6, 0x16,
+ 0x1a, 0x12, 0x3c, 0x86, 0x68, 0xaf, 0x6f, 0xbe, 0x19, 0xf2, 0xee, 0xcc,
+ 0xa5, 0x70, 0x84, 0x53, 0x50, 0xcb, 0x9f, 0x14, 0xa9, 0xe5, 0xee, 0xb9,
+ 0x48, 0x45, 0x40, 0xe2, 0xc7, 0xc9, 0x9a, 0x74, 0xff, 0x8c, 0x99, 0x1f,
+};
+static const unsigned char aes_256_no_df_pr_int_returnedbits[] = {
+ 0x2e, 0xf2, 0x45, 0x4c, 0x62, 0x2e, 0x0a, 0xb9, 0x6b, 0xa2, 0xfd, 0x56,
+ 0x79, 0x60, 0x93, 0xcf
+};
+static const unsigned char aes_256_no_df_pr_additionalinput2[] = {
+ 0xaf, 0x69, 0x20, 0xe9, 0x3b, 0x37, 0x9d, 0x3f, 0xb4, 0x80, 0x02, 0x7a,
+ 0x25, 0x7d, 0xb8, 0xde, 0x71, 0xc5, 0x06, 0x0c, 0xb4, 0xe2, 0x8f, 0x35,
+ 0xd8, 0x14, 0x0d, 0x7f, 0x76, 0x63, 0x4e, 0xb5, 0xee, 0xe9, 0x6f, 0x34,
+ 0xc7, 0x5f, 0x56, 0x14, 0x4a, 0xe8, 0x73, 0x95, 0x5b, 0x1c, 0xb9, 0xcb,
+};
+static const unsigned char aes_256_no_df_pr_entropyinputpr2[] = {
+ 0xe5, 0xb0, 0x2e, 0x7e, 0x52, 0x30, 0xe3, 0x63, 0x82, 0xb6, 0x44, 0xd3,
+ 0x25, 0x19, 0x05, 0x24, 0x9a, 0x9f, 0x5f, 0x27, 0x6a, 0x29, 0xab, 0xfa,
+ 0x07, 0xa2, 0x42, 0x0f, 0xc5, 0xa8, 0x94, 0x7c, 0x17, 0x7b, 0x85, 0x83,
+ 0x0c, 0x25, 0x0e, 0x63, 0x0b, 0xe9, 0x12, 0x60, 0xcd, 0xef, 0x80, 0x0f,
+};
+static const unsigned char aes_256_no_df_pr_returnedbits[] = {
+ 0x5e, 0xf2, 0x26, 0xef, 0x9f, 0x58, 0x5d, 0xd5, 0x4a, 0x10, 0xfe, 0xa7,
+ 0x2d, 0x5f, 0x4a, 0x46
+};
+
+
+/*
+ * AES-256 no df no PR
+ */
+static const unsigned char aes_256_no_df_entropyinput[] = {
+ 0xfb, 0xcf, 0x1b, 0x61, 0x16, 0x89, 0x78, 0x23, 0xf5, 0xd8, 0x96, 0xe3,
+ 0x4e, 0x64, 0x0b, 0x29, 0x9a, 0x3f, 0xf8, 0xa5, 0xed, 0xf2, 0xfe, 0xdb,
+ 0x16, 0xca, 0x7f, 0x10, 0xfa, 0x5e, 0x18, 0x76, 0x2c, 0x63, 0x5e, 0x96,
+ 0xcf, 0xb3, 0xd6, 0xfc, 0xaf, 0x99, 0x39, 0x28, 0x9c, 0x61, 0xe8, 0xb3,
+};
+static const unsigned char aes_256_no_df_nonce[] = {
+ 0x12, 0x96, 0xf0, 0x52, 0xf3, 0x8d, 0x81, 0xcf, 0xde, 0x86, 0xf2, 0x99,
+ 0x43, 0x96, 0xb9, 0xf0
+};
+static const unsigned char aes_256_no_df_personalizationstring[] = {
+ 0x63, 0x0d, 0x78, 0xf5, 0x90, 0x8e, 0x32, 0x47, 0xb0, 0x4d, 0x37, 0x60,
+ 0x09, 0x96, 0xbc, 0xbf, 0x97, 0x7a, 0x62, 0x14, 0x45, 0xbd, 0x8d, 0xcc,
+ 0x69, 0xfb, 0x03, 0xe1, 0x80, 0x1c, 0xc7, 0xe2, 0x2a, 0xf9, 0x37, 0x3f,
+ 0x66, 0x4d, 0x62, 0xd9, 0x10, 0xe0, 0xad, 0xc8, 0x9a, 0xf0, 0xa8, 0x6d,
+};
+static const unsigned char aes_256_no_df_additionalinput[] = {
+ 0x36, 0xc6, 0x13, 0x60, 0xbb, 0x14, 0xad, 0x22, 0xb0, 0x38, 0xac, 0xa6,
+ 0x18, 0x16, 0x93, 0x25, 0x86, 0xb7, 0xdc, 0xdc, 0x36, 0x98, 0x2b, 0xf9,
+ 0x68, 0x33, 0xd3, 0xc6, 0xff, 0xce, 0x8d, 0x15, 0x59, 0x82, 0x76, 0xed,
+ 0x6f, 0x8d, 0x49, 0x74, 0x2f, 0xda, 0xdc, 0x1f, 0x17, 0xd0, 0xde, 0x17,
+};
+static const unsigned char aes_256_no_df_int_returnedbits[] = {
+ 0x16, 0x2f, 0x8e, 0x3f, 0x21, 0x7a, 0x1c, 0x20, 0x56, 0xd1, 0x92, 0xf6,
+ 0xd2, 0x25, 0x75, 0x0e
+};
+static const unsigned char aes_256_no_df_entropyinputreseed[] = {
+ 0x91, 0x79, 0x76, 0xee, 0xe0, 0xcf, 0x9e, 0xc2, 0xd5, 0xd4, 0x23, 0x9b,
+ 0x12, 0x8c, 0x7e, 0x0a, 0xb7, 0xd2, 0x8b, 0xd6, 0x7c, 0xa3, 0xc6, 0xe5,
+ 0x0e, 0xaa, 0xc7, 0x6b, 0xae, 0x0d, 0xfa, 0x53, 0x06, 0x79, 0xa1, 0xed,
+ 0x4d, 0x6a, 0x0e, 0xd8, 0x9d, 0xbe, 0x1b, 0x31, 0x93, 0x7b, 0xec, 0xfb,
+};
+static const unsigned char aes_256_no_df_additionalinputreseed[] = {
+ 0xd2, 0x46, 0x50, 0x22, 0x10, 0x14, 0x63, 0xf7, 0xea, 0x0f, 0xb9, 0x7e,
+ 0x0d, 0xe1, 0x94, 0x07, 0xaf, 0x09, 0x44, 0x31, 0xea, 0x64, 0xa4, 0x18,
+ 0x5b, 0xf9, 0xd8, 0xc2, 0xfa, 0x03, 0x47, 0xc5, 0x39, 0x43, 0xd5, 0x3b,
+ 0x62, 0x86, 0x64, 0xea, 0x2c, 0x73, 0x8c, 0xae, 0x9d, 0x98, 0x98, 0x29,
+};
+static const unsigned char aes_256_no_df_additionalinput2[] = {
+ 0x8c, 0xab, 0x18, 0xf8, 0xc3, 0xec, 0x18, 0x5c, 0xb3, 0x1e, 0x9d, 0xbe,
+ 0x3f, 0x03, 0xb4, 0x00, 0x98, 0x9d, 0xae, 0xeb, 0xf4, 0x94, 0xf8, 0x42,
+ 0x8f, 0xe3, 0x39, 0x07, 0xe1, 0xc9, 0xad, 0x0b, 0x1f, 0xed, 0xc0, 0xba,
+ 0xf6, 0xd1, 0xec, 0x27, 0x86, 0x7b, 0xd6, 0x55, 0x9b, 0x60, 0xa5, 0xc6,
+};
+static const unsigned char aes_256_no_df_returnedbits[] = {
+ 0xef, 0xd2, 0xd8, 0x5c, 0xdc, 0x62, 0x25, 0x9f, 0xaa, 0x1e, 0x2c, 0x67,
+ 0xf6, 0x02, 0x32, 0xe2
+};
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dsa_no_digest_size_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dsa_no_digest_size_test.c
new file mode 100644
index 000000000..88c6036f5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dsa_no_digest_size_test.c
@@ -0,0 +1,245 @@
+/*
+ * Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "testutil.h"
+
+#include <openssl/evp.h>
+#include <openssl/err.h>
+#include <openssl/rand.h>
+
+#ifndef OPENSSL_NO_DSA
+#include <openssl/dsa.h>
+
+static DSA *dsakey;
+
+/*
+ * These parameters are from test/recipes/04-test_pem_data/dsaparam.pem,
+ * converted using dsaparam -C
+ */
+static DSA *load_dsa_params(void)
+{
+ static unsigned char dsap_2048[] = {
+ 0xAE, 0x35, 0x7D, 0x4E, 0x1D, 0x96, 0xE2, 0x9F, 0x00, 0x96,
+ 0x60, 0x5A, 0x6E, 0x4D, 0x07, 0x8D, 0xA5, 0x7C, 0xBC, 0xF9,
+ 0xAD, 0xD7, 0x9F, 0xD5, 0xE9, 0xEE, 0xA6, 0x33, 0x51, 0xDE,
+ 0x7B, 0x72, 0xD2, 0x75, 0xAA, 0x71, 0x77, 0xF1, 0x63, 0xFB,
+ 0xB6, 0xEC, 0x5A, 0xBA, 0x0D, 0x72, 0xA2, 0x1A, 0x1C, 0x64,
+ 0xB8, 0xE5, 0x89, 0x09, 0x6D, 0xC9, 0x6F, 0x0B, 0x7F, 0xD2,
+ 0xCE, 0x9F, 0xEF, 0x87, 0x5A, 0xB6, 0x67, 0x2F, 0xEF, 0xEE,
+ 0xEB, 0x59, 0xF5, 0x5E, 0xFF, 0xA8, 0x28, 0x84, 0x9E, 0x5B,
+ 0x37, 0x09, 0x11, 0x80, 0x7C, 0x08, 0x5C, 0xD5, 0xE1, 0x48,
+ 0x4B, 0xD2, 0x68, 0xFB, 0x3F, 0x9F, 0x2B, 0x6B, 0x6C, 0x0D,
+ 0x48, 0x1B, 0x1A, 0x80, 0xC2, 0xEB, 0x11, 0x1B, 0x37, 0x79,
+ 0xD6, 0x8C, 0x8B, 0x72, 0x3E, 0x67, 0xA5, 0x05, 0x0E, 0x41,
+ 0x8A, 0x9E, 0x35, 0x50, 0xB4, 0xD2, 0x40, 0x27, 0x6B, 0xFD,
+ 0xE0, 0x64, 0x6B, 0x5B, 0x38, 0x42, 0x94, 0xB5, 0x49, 0xDA,
+ 0xEF, 0x6E, 0x78, 0x37, 0xCD, 0x30, 0x89, 0xC3, 0x45, 0x50,
+ 0x7B, 0x9C, 0x8C, 0xE7, 0x1C, 0x98, 0x70, 0x71, 0x5D, 0x79,
+ 0x5F, 0xEF, 0xE8, 0x94, 0x85, 0x53, 0x3E, 0xEF, 0xA3, 0x2C,
+ 0xCE, 0x1A, 0xAB, 0x7D, 0xD6, 0x5E, 0x14, 0xCD, 0x51, 0x54,
+ 0x89, 0x9D, 0x77, 0xE4, 0xF8, 0x22, 0xF0, 0x35, 0x10, 0x75,
+ 0x05, 0x71, 0x51, 0x4F, 0x8C, 0x4C, 0x5C, 0x0D, 0x2C, 0x2C,
+ 0xBE, 0x6C, 0x34, 0xEE, 0x12, 0x82, 0x87, 0x03, 0x19, 0x06,
+ 0x12, 0xA8, 0xAA, 0xF4, 0x0D, 0x3C, 0x49, 0xCC, 0x70, 0x5A,
+ 0xD8, 0x32, 0xEE, 0x32, 0x50, 0x85, 0x70, 0xE8, 0x18, 0xFD,
+ 0x74, 0x80, 0x53, 0x32, 0x57, 0xEE, 0x50, 0xC9, 0xAE, 0xEB,
+ 0xAE, 0xB6, 0x22, 0x32, 0x16, 0x6B, 0x8C, 0x59, 0xDA, 0xEE,
+ 0x1D, 0x33, 0xDF, 0x4C, 0xA2, 0x3D
+ };
+ static unsigned char dsaq_2048[] = {
+ 0xAD, 0x2D, 0x6E, 0x17, 0xB0, 0xF3, 0xEB, 0xC7, 0xB8, 0xEE,
+ 0x95, 0x78, 0xF2, 0x17, 0xF5, 0x33, 0x01, 0x67, 0xBC, 0xDE,
+ 0x93, 0xFF, 0xEE, 0x40, 0xE8, 0x7F, 0xF1, 0x93, 0x6D, 0x4B,
+ 0x87, 0x13
+ };
+ static unsigned char dsag_2048[] = {
+ 0x66, 0x6F, 0xDA, 0x63, 0xA5, 0x8E, 0xD2, 0x4C, 0xD5, 0x45,
+ 0x2D, 0x76, 0x5D, 0x5F, 0xCD, 0x4A, 0xB4, 0x1A, 0x42, 0x35,
+ 0x86, 0x3A, 0x6F, 0xA9, 0xFA, 0x27, 0xAB, 0xDE, 0x03, 0x21,
+ 0x36, 0x0A, 0x07, 0x29, 0xC9, 0x2F, 0x6D, 0x49, 0xA8, 0xF7,
+ 0xC6, 0xF4, 0x92, 0xD7, 0x73, 0xC1, 0xD8, 0x76, 0x0E, 0x61,
+ 0xA7, 0x0B, 0x6E, 0x96, 0xB8, 0xC8, 0xCB, 0x38, 0x35, 0x12,
+ 0x20, 0x79, 0xA5, 0x08, 0x28, 0x35, 0x5C, 0xBC, 0x52, 0x16,
+ 0xAF, 0x52, 0xBA, 0x0F, 0xC3, 0xB1, 0x63, 0x12, 0x27, 0x0B,
+ 0x74, 0xA4, 0x47, 0x43, 0xD6, 0x30, 0xB8, 0x9C, 0x2E, 0x40,
+ 0x14, 0xCD, 0x99, 0x7F, 0xE8, 0x8E, 0x37, 0xB0, 0xA9, 0x3F,
+ 0x54, 0xE9, 0x66, 0x22, 0x61, 0x4C, 0xF8, 0x49, 0x03, 0x57,
+ 0x14, 0x32, 0x1D, 0x37, 0x3D, 0xE2, 0x92, 0xF8, 0x8E, 0xA0,
+ 0x6A, 0x66, 0x63, 0xF0, 0xB0, 0x6E, 0x07, 0x2B, 0x3D, 0xBF,
+ 0xD0, 0x84, 0x6A, 0xAA, 0x1F, 0x30, 0x77, 0x65, 0xE5, 0xFC,
+ 0xF5, 0xEC, 0x55, 0xCE, 0x73, 0xDB, 0xBE, 0xA7, 0x8D, 0x3A,
+ 0x9F, 0x7A, 0xED, 0x4F, 0xAF, 0xA2, 0x80, 0x4C, 0x30, 0x9E,
+ 0x28, 0x49, 0x65, 0x40, 0xF0, 0x03, 0x45, 0x56, 0x99, 0xA2,
+ 0x93, 0x1B, 0x9C, 0x46, 0xDE, 0xBD, 0xA8, 0xAB, 0x5F, 0x90,
+ 0x3F, 0xB7, 0x3F, 0xD4, 0x6F, 0x8D, 0x5A, 0x30, 0xE1, 0xD4,
+ 0x63, 0x3A, 0x6A, 0x7C, 0x8F, 0x24, 0xFC, 0xD9, 0x14, 0x28,
+ 0x09, 0xE4, 0x84, 0x4E, 0x17, 0x43, 0x56, 0xB8, 0xD4, 0x4B,
+ 0xA2, 0x29, 0x45, 0xD3, 0x13, 0xF0, 0xC2, 0x76, 0x9B, 0x01,
+ 0xA0, 0x80, 0x6E, 0x93, 0x63, 0x5E, 0x87, 0x24, 0x20, 0x2A,
+ 0xFF, 0xBB, 0x9F, 0xA8, 0x99, 0x6C, 0xA7, 0x9A, 0x00, 0xB9,
+ 0x7D, 0xDA, 0x66, 0xC9, 0xC0, 0x72, 0x72, 0x22, 0x0F, 0x1A,
+ 0xCC, 0x23, 0xD9, 0xB7, 0x5F, 0x1B
+ };
+ DSA *dsa = DSA_new();
+ BIGNUM *p, *q, *g;
+
+ if (dsa == NULL)
+ return NULL;
+ if (!DSA_set0_pqg(dsa, p = BN_bin2bn(dsap_2048, sizeof(dsap_2048), NULL),
+ q = BN_bin2bn(dsaq_2048, sizeof(dsaq_2048), NULL),
+ g = BN_bin2bn(dsag_2048, sizeof(dsag_2048), NULL))) {
+ DSA_free(dsa);
+ BN_free(p);
+ BN_free(q);
+ BN_free(g);
+ return NULL;
+ }
+ return dsa;
+}
+
+static int genkeys(void)
+{
+ if (!TEST_ptr(dsakey = load_dsa_params()))
+ return 0;
+
+ if (!TEST_int_eq(DSA_generate_key(dsakey), 1))
+ return 0;
+
+ return 1;
+}
+
+static int sign_and_verify(int len)
+{
+ /*
+ * Per FIPS 186-4, the hash is recommended to be the same length as q.
+ * If the hash is longer than q, the leftmost N bits are used; if the hash
+ * is shorter, then we left-pad (see appendix C.2.1).
+ */
+ size_t sigLength;
+ int digestlen = BN_num_bytes(DSA_get0_q(dsakey));
+ int ok = 0;
+
+ unsigned char *dataToSign = OPENSSL_malloc(len);
+ unsigned char *paddedData = OPENSSL_malloc(digestlen);
+ unsigned char *signature = NULL;
+ EVP_PKEY_CTX *ctx = NULL;
+ EVP_PKEY *pkey = NULL;
+
+ if (!TEST_ptr(dataToSign) ||
+ !TEST_ptr(paddedData) ||
+ !TEST_int_eq(RAND_bytes(dataToSign, len), 1))
+ goto end;
+
+ memset(paddedData, 0, digestlen);
+ if (len > digestlen)
+ memcpy(paddedData, dataToSign, digestlen);
+ else
+ memcpy(paddedData + digestlen - len, dataToSign, len);
+
+ if (!TEST_ptr(pkey = EVP_PKEY_new()))
+ goto end;
+ EVP_PKEY_set1_DSA(pkey, dsakey);
+
+ if (!TEST_ptr(ctx = EVP_PKEY_CTX_new(pkey, NULL)))
+ goto end;
+ if (!TEST_int_eq(EVP_PKEY_sign_init(ctx), 1))
+ goto end;
+
+ if (EVP_PKEY_sign(ctx, NULL, &sigLength, dataToSign, len) != 1) {
+ TEST_error("Failed to get signature length, len=%d", len);
+ goto end;
+ }
+
+ if (!TEST_ptr(signature = OPENSSL_malloc(sigLength)))
+ goto end;
+
+ if (EVP_PKEY_sign(ctx, signature, &sigLength, dataToSign, len) != 1) {
+ TEST_error("Failed to sign, len=%d", len);
+ goto end;
+ }
+
+ /* Check that the signature is okay via the EVP interface */
+ if (!TEST_int_eq(EVP_PKEY_verify_init(ctx), 1))
+ goto end;
+
+ /* ... using the same data we just signed */
+ if (EVP_PKEY_verify(ctx, signature, sigLength, dataToSign, len) != 1) {
+ TEST_error("EVP verify with unpadded length %d failed\n", len);
+ goto end;
+ }
+
+ /* ... padding/truncating the data to the appropriate digest size */
+ if (EVP_PKEY_verify(ctx, signature, sigLength, paddedData, digestlen) != 1) {
+ TEST_error("EVP verify with length %d failed\n", len);
+ goto end;
+ }
+
+ /* Verify again using the raw DSA interface */
+ if (DSA_verify(0, dataToSign, len, signature, sigLength, dsakey) != 1) {
+ TEST_error("Verification with unpadded data failed, len=%d", len);
+ goto end;
+ }
+
+ if (DSA_verify(0, paddedData, digestlen, signature, sigLength, dsakey) != 1) {
+ TEST_error("verify with length %d failed\n", len);
+ goto end;
+ }
+
+ ok = 1;
+end:
+ EVP_PKEY_CTX_free(ctx);
+ EVP_PKEY_free(pkey);
+
+ OPENSSL_free(signature);
+ OPENSSL_free(paddedData);
+ OPENSSL_free(dataToSign);
+
+ return ok;
+}
+
+static int dsa_exact_size_test(void) {
+ /*
+ * For a 2048-bit p, q should be either 224 or 256 bits per the table in
+ * FIPS 186-4 4.2.
+ */
+
+ return sign_and_verify(224 / 8) && sign_and_verify(256 / 8);
+}
+
+static int dsa_small_digest_test(void) {
+ return sign_and_verify(16) && sign_and_verify(1);
+}
+
+static int dsa_large_digest_test(void) {
+ return sign_and_verify(33) && sign_and_verify(64);
+}
+
+void cleanup_tests(void)
+{
+ DSA_free(dsakey);
+}
+
+#endif /* OPENSSL_NO_DSA */
+
+int setup_tests(void)
+{
+#ifndef OPENSSL_NO_DSA
+ if (!genkeys())
+ return 0;
+
+ ADD_TEST(dsa_exact_size_test);
+ ADD_TEST(dsa_small_digest_test);
+ ADD_TEST(dsa_large_digest_test);
+#endif
+ return 1;
+}
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dsatest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dsatest.c
new file mode 100644
index 000000000..fa2ec4af1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dsatest.c
@@ -0,0 +1,141 @@
+/*
+ * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include <openssl/crypto.h>
+#include <openssl/rand.h>
+#include <openssl/bn.h>
+#include <openssl/dsa.h>
+
+#include "testutil.h"
+#include "internal/nelem.h"
+
+#ifndef OPENSSL_NO_DSA
+static int dsa_cb(int p, int n, BN_GENCB *arg);
+
+/*
+ * seed, out_p, out_q, out_g are taken from the updated Appendix 5 to FIPS
+ * PUB 186 and also appear in Appendix 5 to FIPS PIB 186-1
+ */
+static unsigned char seed[20] = {
+ 0xd5, 0x01, 0x4e, 0x4b, 0x60, 0xef, 0x2b, 0xa8, 0xb6, 0x21, 0x1b, 0x40,
+ 0x62, 0xba, 0x32, 0x24, 0xe0, 0x42, 0x7d, 0xd3,
+};
+
+static unsigned char out_p[] = {
+ 0x8d, 0xf2, 0xa4, 0x94, 0x49, 0x22, 0x76, 0xaa,
+ 0x3d, 0x25, 0x75, 0x9b, 0xb0, 0x68, 0x69, 0xcb,
+ 0xea, 0xc0, 0xd8, 0x3a, 0xfb, 0x8d, 0x0c, 0xf7,
+ 0xcb, 0xb8, 0x32, 0x4f, 0x0d, 0x78, 0x82, 0xe5,
+ 0xd0, 0x76, 0x2f, 0xc5, 0xb7, 0x21, 0x0e, 0xaf,
+ 0xc2, 0xe9, 0xad, 0xac, 0x32, 0xab, 0x7a, 0xac,
+ 0x49, 0x69, 0x3d, 0xfb, 0xf8, 0x37, 0x24, 0xc2,
+ 0xec, 0x07, 0x36, 0xee, 0x31, 0xc8, 0x02, 0x91,
+};
+
+static unsigned char out_q[] = {
+ 0xc7, 0x73, 0x21, 0x8c, 0x73, 0x7e, 0xc8, 0xee,
+ 0x99, 0x3b, 0x4f, 0x2d, 0xed, 0x30, 0xf4, 0x8e,
+ 0xda, 0xce, 0x91, 0x5f,
+};
+
+static unsigned char out_g[] = {
+ 0x62, 0x6d, 0x02, 0x78, 0x39, 0xea, 0x0a, 0x13,
+ 0x41, 0x31, 0x63, 0xa5, 0x5b, 0x4c, 0xb5, 0x00,
+ 0x29, 0x9d, 0x55, 0x22, 0x95, 0x6c, 0xef, 0xcb,
+ 0x3b, 0xff, 0x10, 0xf3, 0x99, 0xce, 0x2c, 0x2e,
+ 0x71, 0xcb, 0x9d, 0xe5, 0xfa, 0x24, 0xba, 0xbf,
+ 0x58, 0xe5, 0xb7, 0x95, 0x21, 0x92, 0x5c, 0x9c,
+ 0xc4, 0x2e, 0x9f, 0x6f, 0x46, 0x4b, 0x08, 0x8c,
+ 0xc5, 0x72, 0xaf, 0x53, 0xe6, 0xd7, 0x88, 0x02,
+};
+
+static const unsigned char str1[] = "12345678901234567890";
+
+static int dsa_test(void)
+{
+ BN_GENCB *cb;
+ DSA *dsa = NULL;
+ int counter, ret = 0, i, j;
+ unsigned char buf[256];
+ unsigned long h;
+ unsigned char sig[256];
+ unsigned int siglen;
+ const BIGNUM *p = NULL, *q = NULL, *g = NULL;
+
+ if (!TEST_ptr(cb = BN_GENCB_new()))
+ goto end;
+
+ BN_GENCB_set(cb, dsa_cb, NULL);
+ if (!TEST_ptr(dsa = DSA_new())
+ || !TEST_true(DSA_generate_parameters_ex(dsa, 512, seed, 20,
+ &counter, &h, cb)))
+ goto end;
+
+ if (!TEST_int_eq(counter, 105))
+ goto end;
+ if (!TEST_int_eq(h, 2))
+ goto end;
+
+ DSA_get0_pqg(dsa, &p, &q, &g);
+ i = BN_bn2bin(q, buf);
+ j = sizeof(out_q);
+ if (!TEST_int_eq(i, j) || !TEST_mem_eq(buf, i, out_q, i))
+ goto end;
+
+ i = BN_bn2bin(p, buf);
+ j = sizeof(out_p);
+ if (!TEST_int_eq(i, j) || !TEST_mem_eq(buf, i, out_p, i))
+ goto end;
+
+ i = BN_bn2bin(g, buf);
+ j = sizeof(out_g);
+ if (!TEST_int_eq(i, j) || !TEST_mem_eq(buf, i, out_g, i))
+ goto end;
+
+ DSA_generate_key(dsa);
+ DSA_sign(0, str1, 20, sig, &siglen, dsa);
+ if (TEST_true(DSA_verify(0, str1, 20, sig, siglen, dsa)))
+ ret = 1;
+
+ end:
+ DSA_free(dsa);
+ BN_GENCB_free(cb);
+ return ret;
+}
+
+static int dsa_cb(int p, int n, BN_GENCB *arg)
+{
+ static int ok = 0, num = 0;
+
+ if (p == 0)
+ num++;
+ if (p == 2)
+ ok++;
+
+ if (!ok && (p == 0) && (num > 1)) {
+ TEST_error("dsa_cb error");
+ return 0;
+ }
+ return 1;
+}
+#endif /* OPENSSL_NO_DSA */
+
+int setup_tests(void)
+{
+#ifndef OPENSSL_NO_DSA
+ ADD_TEST(dsa_test);
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dtls_mtu_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dtls_mtu_test.c
new file mode 100644
index 000000000..f20edf02d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dtls_mtu_test.c
@@ -0,0 +1,196 @@
+/*
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/dtls1.h>
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+
+#include "ssltestlib.h"
+#include "testutil.h"
+
+/* for SSL_READ_ETM() */
+#include "../ssl/ssl_local.h"
+
+static int debug = 0;
+
+static unsigned int clnt_psk_callback(SSL *ssl, const char *hint,
+ char *ident, unsigned int max_ident_len,
+ unsigned char *psk,
+ unsigned int max_psk_len)
+{
+ BIO_snprintf(ident, max_ident_len, "psk");
+
+ if (max_psk_len > 20)
+ max_psk_len = 20;
+ memset(psk, 0x5a, max_psk_len);
+
+ return max_psk_len;
+}
+
+static unsigned int srvr_psk_callback(SSL *ssl, const char *identity,
+ unsigned char *psk,
+ unsigned int max_psk_len)
+{
+ if (max_psk_len > 20)
+ max_psk_len = 20;
+ memset(psk, 0x5a, max_psk_len);
+ return max_psk_len;
+}
+
+static int mtu_test(SSL_CTX *ctx, const char *cs, int no_etm)
+{
+ SSL *srvr_ssl = NULL, *clnt_ssl = NULL;
+ BIO *sc_bio = NULL;
+ int i;
+ size_t s;
+ size_t mtus[30];
+ unsigned char buf[600];
+ int rv = 0;
+
+ memset(buf, 0x5a, sizeof(buf));
+
+ if (!TEST_true(create_ssl_objects(ctx, ctx, &srvr_ssl, &clnt_ssl,
+ NULL, NULL)))
+ goto end;
+
+ if (no_etm)
+ SSL_set_options(srvr_ssl, SSL_OP_NO_ENCRYPT_THEN_MAC);
+
+ if (!TEST_true(SSL_set_cipher_list(srvr_ssl, cs))
+ || !TEST_true(SSL_set_cipher_list(clnt_ssl, cs))
+ || !TEST_ptr(sc_bio = SSL_get_rbio(srvr_ssl))
+ || !TEST_true(create_ssl_connection(clnt_ssl, srvr_ssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ if (debug)
+ TEST_info("Channel established");
+
+ /* For record MTU values between 500 and 539, call DTLS_get_data_mtu()
+ * to query the payload MTU which will fit. */
+ for (i = 0; i < 30; i++) {
+ SSL_set_mtu(clnt_ssl, 500 + i);
+ mtus[i] = DTLS_get_data_mtu(clnt_ssl);
+ if (debug)
+ TEST_info("%s%s MTU for record mtu %d = %lu",
+ cs, no_etm ? "-noEtM" : "",
+ 500 + i, (unsigned long)mtus[i]);
+ if (!TEST_size_t_ne(mtus[i], 0)) {
+ TEST_info("Cipher %s MTU %d", cs, 500 + i);
+ goto end;
+ }
+ }
+
+ /* Now get out of the way */
+ SSL_set_mtu(clnt_ssl, 1000);
+
+ /*
+ * Now for all values in the range of payload MTUs, send a payload of
+ * that size and see what actual record size we end up with.
+ */
+ for (s = mtus[0]; s <= mtus[29]; s++) {
+ size_t reclen;
+
+ if (!TEST_int_eq(SSL_write(clnt_ssl, buf, s), (int)s))
+ goto end;
+ reclen = BIO_read(sc_bio, buf, sizeof(buf));
+ if (debug)
+ TEST_info("record %zu for payload %zu", reclen, s);
+
+ for (i = 0; i < 30; i++) {
+ /* DTLS_get_data_mtu() with record MTU 500+i returned mtus[i] ... */
+
+ if (!TEST_false(s <= mtus[i] && reclen > (size_t)(500 + i))) {
+ /*
+ * We sent a packet smaller than or equal to mtus[j] and
+ * that made a record *larger* than the record MTU 500+j!
+ */
+ TEST_error("%s: s=%lu, mtus[i]=%lu, reclen=%lu, i=%d",
+ cs, (unsigned long)s, (unsigned long)mtus[i],
+ (unsigned long)reclen, 500 + i);
+ goto end;
+ }
+ if (!TEST_false(s > mtus[i] && reclen <= (size_t)(500 + i))) {
+ /*
+ * We sent a *larger* packet than mtus[i] and that *still*
+ * fits within the record MTU 500+i, so DTLS_get_data_mtu()
+ * was overly pessimistic.
+ */
+ TEST_error("%s: s=%lu, mtus[i]=%lu, reclen=%lu, i=%d",
+ cs, (unsigned long)s, (unsigned long)mtus[i],
+ (unsigned long)reclen, 500 + i);
+ goto end;
+ }
+ }
+ }
+ rv = 1;
+ if (SSL_READ_ETM(clnt_ssl))
+ rv = 2;
+ end:
+ SSL_free(clnt_ssl);
+ SSL_free(srvr_ssl);
+ return rv;
+}
+
+static int run_mtu_tests(void)
+{
+ SSL_CTX *ctx = NULL;
+ STACK_OF(SSL_CIPHER) *ciphers;
+ int i, ret = 0;
+
+ if (!TEST_ptr(ctx = SSL_CTX_new(DTLS_method())))
+ goto end;
+
+ SSL_CTX_set_psk_server_callback(ctx, srvr_psk_callback);
+ SSL_CTX_set_psk_client_callback(ctx, clnt_psk_callback);
+ SSL_CTX_set_security_level(ctx, 0);
+
+ /*
+ * We only care about iterating over each enc/mac; we don't want to
+ * repeat the test for each auth/kx variant. So keep life simple and
+ * only do (non-DH) PSK.
+ */
+ if (!TEST_true(SSL_CTX_set_cipher_list(ctx, "PSK")))
+ goto end;
+
+ ciphers = SSL_CTX_get_ciphers(ctx);
+ for (i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) {
+ const SSL_CIPHER *cipher = sk_SSL_CIPHER_value(ciphers, i);
+ const char *cipher_name = SSL_CIPHER_get_name(cipher);
+
+ /* As noted above, only one test for each enc/mac variant. */
+ if (strncmp(cipher_name, "PSK-", 4) != 0)
+ continue;
+
+ if (!TEST_int_gt(ret = mtu_test(ctx, cipher_name, 0), 0))
+ break;
+ TEST_info("%s OK", cipher_name);
+ if (ret == 1)
+ continue;
+
+ /* mtu_test() returns 2 if it used Encrypt-then-MAC */
+ if (!TEST_int_gt(ret = mtu_test(ctx, cipher_name, 1), 0))
+ break;
+ TEST_info("%s without EtM OK", cipher_name);
+ }
+
+ end:
+ SSL_CTX_free(ctx);
+ bio_s_mempacket_test_free();
+ return ret;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(run_mtu_tests);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dtlstest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dtlstest.c
new file mode 100644
index 000000000..1d7b105fb
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dtlstest.c
@@ -0,0 +1,349 @@
+/*
+ * Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+#include <openssl/bio.h>
+#include <openssl/crypto.h>
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+
+#include "ssltestlib.h"
+#include "testutil.h"
+
+static char *cert = NULL;
+static char *privkey = NULL;
+static unsigned int timer_cb_count;
+
+#define NUM_TESTS 2
+
+
+#define DUMMY_CERT_STATUS_LEN 12
+
+static unsigned char certstatus[] = {
+ SSL3_RT_HANDSHAKE, /* Content type */
+ 0xfe, 0xfd, /* Record version */
+ 0, 1, /* Epoch */
+ 0, 0, 0, 0, 0, 0x0f, /* Record sequence number */
+ 0, DTLS1_HM_HEADER_LENGTH + DUMMY_CERT_STATUS_LEN - 2,
+ SSL3_MT_CERTIFICATE_STATUS, /* Cert Status handshake message type */
+ 0, 0, DUMMY_CERT_STATUS_LEN, /* Message len */
+ 0, 5, /* Message sequence */
+ 0, 0, 0, /* Fragment offset */
+ 0, 0, DUMMY_CERT_STATUS_LEN - 2, /* Fragment len */
+ 0x80, 0x80, 0x80, 0x80, 0x80,
+ 0x80, 0x80, 0x80, 0x80, 0x80 /* Dummy data */
+};
+
+#define RECORD_SEQUENCE 10
+
+static unsigned int timer_cb(SSL *s, unsigned int timer_us)
+{
+ ++timer_cb_count;
+
+ if (timer_us == 0)
+ return 50000;
+ else
+ return 2 * timer_us;
+}
+
+static int test_dtls_unprocessed(int testidx)
+{
+ SSL_CTX *sctx = NULL, *cctx = NULL;
+ SSL *serverssl1 = NULL, *clientssl1 = NULL;
+ BIO *c_to_s_fbio, *c_to_s_mempacket;
+ int testresult = 0;
+
+ timer_cb_count = 0;
+
+ if (!TEST_true(create_ssl_ctx_pair(DTLS_server_method(),
+ DTLS_client_method(),
+ DTLS1_VERSION, DTLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ return 0;
+
+ if (!TEST_true(SSL_CTX_set_cipher_list(cctx, "AES128-SHA")))
+ goto end;
+
+ c_to_s_fbio = BIO_new(bio_f_tls_dump_filter());
+ if (!TEST_ptr(c_to_s_fbio))
+ goto end;
+
+ /* BIO is freed by create_ssl_connection on error */
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl1, &clientssl1,
+ NULL, c_to_s_fbio)))
+ goto end;
+
+ DTLS_set_timer_cb(clientssl1, timer_cb);
+
+ if (testidx == 1)
+ certstatus[RECORD_SEQUENCE] = 0xff;
+
+ /*
+ * Inject a dummy record from the next epoch. In test 0, this should never
+ * get used because the message sequence number is too big. In test 1 we set
+ * the record sequence number to be way off in the future.
+ */
+ c_to_s_mempacket = SSL_get_wbio(clientssl1);
+ c_to_s_mempacket = BIO_next(c_to_s_mempacket);
+ mempacket_test_inject(c_to_s_mempacket, (char *)certstatus,
+ sizeof(certstatus), 1, INJECT_PACKET_IGNORE_REC_SEQ);
+
+ /*
+ * Create the connection. We use "create_bare_ssl_connection" here so that
+ * we can force the connection to not do "SSL_read" once partly connected.
+ * We don't want to accidentally read the dummy records we injected because
+ * they will fail to decrypt.
+ */
+ if (!TEST_true(create_bare_ssl_connection(serverssl1, clientssl1,
+ SSL_ERROR_NONE, 0)))
+ goto end;
+
+ if (timer_cb_count == 0) {
+ printf("timer_callback was not called.\n");
+ goto end;
+ }
+
+ testresult = 1;
+ end:
+ SSL_free(serverssl1);
+ SSL_free(clientssl1);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+#define CLI_TO_SRV_EPOCH_0_RECS 3
+#define CLI_TO_SRV_EPOCH_1_RECS 1
+#if !defined(OPENSSL_NO_EC) || !defined(OPENSSL_NO_DH)
+# define SRV_TO_CLI_EPOCH_0_RECS 10
+#else
+/*
+ * In this case we have no ServerKeyExchange message, because we don't have
+ * ECDHE or DHE. When it is present it gets fragmented into 3 records in this
+ * test.
+ */
+# define SRV_TO_CLI_EPOCH_0_RECS 9
+#endif
+#define SRV_TO_CLI_EPOCH_1_RECS 1
+#define TOTAL_FULL_HAND_RECORDS \
+ (CLI_TO_SRV_EPOCH_0_RECS + CLI_TO_SRV_EPOCH_1_RECS + \
+ SRV_TO_CLI_EPOCH_0_RECS + SRV_TO_CLI_EPOCH_1_RECS)
+
+#define CLI_TO_SRV_RESUME_EPOCH_0_RECS 3
+#define CLI_TO_SRV_RESUME_EPOCH_1_RECS 1
+#define SRV_TO_CLI_RESUME_EPOCH_0_RECS 2
+#define SRV_TO_CLI_RESUME_EPOCH_1_RECS 1
+#define TOTAL_RESUME_HAND_RECORDS \
+ (CLI_TO_SRV_RESUME_EPOCH_0_RECS + CLI_TO_SRV_RESUME_EPOCH_1_RECS + \
+ SRV_TO_CLI_RESUME_EPOCH_0_RECS + SRV_TO_CLI_RESUME_EPOCH_1_RECS)
+
+#define TOTAL_RECORDS (TOTAL_FULL_HAND_RECORDS + TOTAL_RESUME_HAND_RECORDS)
+
+static int test_dtls_drop_records(int idx)
+{
+ SSL_CTX *sctx = NULL, *cctx = NULL;
+ SSL *serverssl = NULL, *clientssl = NULL;
+ BIO *c_to_s_fbio, *mempackbio;
+ int testresult = 0;
+ int epoch = 0;
+ SSL_SESSION *sess = NULL;
+ int cli_to_srv_epoch0, cli_to_srv_epoch1, srv_to_cli_epoch0;
+
+ if (!TEST_true(create_ssl_ctx_pair(DTLS_server_method(),
+ DTLS_client_method(),
+ DTLS1_VERSION, DTLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ return 0;
+
+ if (idx >= TOTAL_FULL_HAND_RECORDS) {
+ /* We're going to do a resumption handshake. Get a session first. */
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_ptr(sess = SSL_get1_session(clientssl)))
+ goto end;
+
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ serverssl = clientssl = NULL;
+
+ cli_to_srv_epoch0 = CLI_TO_SRV_RESUME_EPOCH_0_RECS;
+ cli_to_srv_epoch1 = CLI_TO_SRV_RESUME_EPOCH_1_RECS;
+ srv_to_cli_epoch0 = SRV_TO_CLI_RESUME_EPOCH_0_RECS;
+ idx -= TOTAL_FULL_HAND_RECORDS;
+ } else {
+ cli_to_srv_epoch0 = CLI_TO_SRV_EPOCH_0_RECS;
+ cli_to_srv_epoch1 = CLI_TO_SRV_EPOCH_1_RECS;
+ srv_to_cli_epoch0 = SRV_TO_CLI_EPOCH_0_RECS;
+ }
+
+ c_to_s_fbio = BIO_new(bio_f_tls_dump_filter());
+ if (!TEST_ptr(c_to_s_fbio))
+ goto end;
+
+ /* BIO is freed by create_ssl_connection on error */
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, c_to_s_fbio)))
+ goto end;
+
+ if (sess != NULL) {
+ if (!TEST_true(SSL_set_session(clientssl, sess)))
+ goto end;
+ }
+
+ DTLS_set_timer_cb(clientssl, timer_cb);
+ DTLS_set_timer_cb(serverssl, timer_cb);
+
+ /* Work out which record to drop based on the test number */
+ if (idx >= cli_to_srv_epoch0 + cli_to_srv_epoch1) {
+ mempackbio = SSL_get_wbio(serverssl);
+ idx -= cli_to_srv_epoch0 + cli_to_srv_epoch1;
+ if (idx >= srv_to_cli_epoch0) {
+ epoch = 1;
+ idx -= srv_to_cli_epoch0;
+ }
+ } else {
+ mempackbio = SSL_get_wbio(clientssl);
+ if (idx >= cli_to_srv_epoch0) {
+ epoch = 1;
+ idx -= cli_to_srv_epoch0;
+ }
+ mempackbio = BIO_next(mempackbio);
+ }
+ BIO_ctrl(mempackbio, MEMPACKET_CTRL_SET_DROP_EPOCH, epoch, NULL);
+ BIO_ctrl(mempackbio, MEMPACKET_CTRL_SET_DROP_REC, idx, NULL);
+
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl, SSL_ERROR_NONE)))
+ goto end;
+
+ if (sess != NULL && !TEST_true(SSL_session_reused(clientssl)))
+ goto end;
+
+ /* If the test did what we planned then it should have dropped a record */
+ if (!TEST_int_eq((int)BIO_ctrl(mempackbio, MEMPACKET_CTRL_GET_DROP_REC, 0,
+ NULL), -1))
+ goto end;
+
+ testresult = 1;
+ end:
+ SSL_SESSION_free(sess);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+static const char dummy_cookie[] = "0123456";
+
+static int generate_cookie_cb(SSL *ssl, unsigned char *cookie,
+ unsigned int *cookie_len)
+{
+ memcpy(cookie, dummy_cookie, sizeof(dummy_cookie));
+ *cookie_len = sizeof(dummy_cookie);
+ return 1;
+}
+
+static int verify_cookie_cb(SSL *ssl, const unsigned char *cookie,
+ unsigned int cookie_len)
+{
+ return TEST_mem_eq(cookie, cookie_len, dummy_cookie, sizeof(dummy_cookie));
+}
+
+static int test_cookie(void)
+{
+ SSL_CTX *sctx = NULL, *cctx = NULL;
+ SSL *serverssl = NULL, *clientssl = NULL;
+ int testresult = 0;
+
+ if (!TEST_true(create_ssl_ctx_pair(DTLS_server_method(),
+ DTLS_client_method(),
+ DTLS1_VERSION, DTLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ return 0;
+
+ SSL_CTX_set_options(sctx, SSL_OP_COOKIE_EXCHANGE);
+ SSL_CTX_set_cookie_generate_cb(sctx, generate_cookie_cb);
+ SSL_CTX_set_cookie_verify_cb(sctx, verify_cookie_cb);
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ testresult = 1;
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+static int test_dtls_duplicate_records(void)
+{
+ SSL_CTX *sctx = NULL, *cctx = NULL;
+ SSL *serverssl = NULL, *clientssl = NULL;
+ int testresult = 0;
+
+ if (!TEST_true(create_ssl_ctx_pair(DTLS_server_method(),
+ DTLS_client_method(),
+ DTLS1_VERSION, DTLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ return 0;
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL)))
+ goto end;
+
+ DTLS_set_timer_cb(clientssl, timer_cb);
+ DTLS_set_timer_cb(serverssl, timer_cb);
+
+ BIO_ctrl(SSL_get_wbio(clientssl), MEMPACKET_CTRL_SET_DUPLICATE_REC, 1, NULL);
+ BIO_ctrl(SSL_get_wbio(serverssl), MEMPACKET_CTRL_SET_DUPLICATE_REC, 1, NULL);
+
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl, SSL_ERROR_NONE)))
+ goto end;
+
+ testresult = 1;
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(cert = test_get_argument(0))
+ || !TEST_ptr(privkey = test_get_argument(1)))
+ return 0;
+
+ ADD_ALL_TESTS(test_dtls_unprocessed, NUM_TESTS);
+ ADD_ALL_TESTS(test_dtls_drop_records, TOTAL_RECORDS);
+ ADD_TEST(test_cookie);
+ ADD_TEST(test_dtls_duplicate_records);
+
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+ bio_f_tls_dump_filter_free();
+ bio_s_mempacket_test_free();
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dtlsv1listentest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dtlsv1listentest.c
new file mode 100644
index 000000000..4ce11aacb
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/dtlsv1listentest.c
@@ -0,0 +1,357 @@
+/*
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+#include <openssl/ssl.h>
+#include <openssl/bio.h>
+#include <openssl/err.h>
+#include <openssl/conf.h>
+#include "internal/nelem.h"
+#include "testutil.h"
+
+#ifndef OPENSSL_NO_SOCK
+
+/* Just a ClientHello without a cookie */
+static const unsigned char clienthello_nocookie[] = {
+ 0x16, /* Handshake */
+ 0xFE, 0xFF, /* DTLSv1.0 */
+ 0x00, 0x00, /* Epoch */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Record sequence number */
+ 0x00, 0x3A, /* Record Length */
+ 0x01, /* ClientHello */
+ 0x00, 0x00, 0x2E, /* Message length */
+ 0x00, 0x00, /* Message sequence */
+ 0x00, 0x00, 0x00, /* Fragment offset */
+ 0x00, 0x00, 0x2E, /* Fragment length */
+ 0xFE, 0xFD, /* DTLSv1.2 */
+ 0xCA, 0x18, 0x9F, 0x76, 0xEC, 0x57, 0xCE, 0xE5, 0xB3, 0xAB, 0x79, 0x90,
+ 0xAD, 0xAC, 0x6E, 0xD1, 0x58, 0x35, 0x03, 0x97, 0x16, 0x10, 0x82, 0x56,
+ 0xD8, 0x55, 0xFF, 0xE1, 0x8A, 0xA3, 0x2E, 0xF6, /* Random */
+ 0x00, /* Session id len */
+ 0x00, /* Cookie len */
+ 0x00, 0x04, /* Ciphersuites len */
+ 0x00, 0x2f, /* AES128-SHA */
+ 0x00, 0xff, /* Empty reneg info SCSV */
+ 0x01, /* Compression methods len */
+ 0x00, /* Null compression */
+ 0x00, 0x00 /* Extensions len */
+};
+
+/* First fragment of a ClientHello without a cookie */
+static const unsigned char clienthello_nocookie_frag[] = {
+ 0x16, /* Handshake */
+ 0xFE, 0xFF, /* DTLSv1.0 */
+ 0x00, 0x00, /* Epoch */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Record sequence number */
+ 0x00, 0x30, /* Record Length */
+ 0x01, /* ClientHello */
+ 0x00, 0x00, 0x2E, /* Message length */
+ 0x00, 0x00, /* Message sequence */
+ 0x00, 0x00, 0x00, /* Fragment offset */
+ 0x00, 0x00, 0x24, /* Fragment length */
+ 0xFE, 0xFD, /* DTLSv1.2 */
+ 0xCA, 0x18, 0x9F, 0x76, 0xEC, 0x57, 0xCE, 0xE5, 0xB3, 0xAB, 0x79, 0x90,
+ 0xAD, 0xAC, 0x6E, 0xD1, 0x58, 0x35, 0x03, 0x97, 0x16, 0x10, 0x82, 0x56,
+ 0xD8, 0x55, 0xFF, 0xE1, 0x8A, 0xA3, 0x2E, 0xF6, /* Random */
+ 0x00, /* Session id len */
+ 0x00 /* Cookie len */
+};
+
+/* First fragment of a ClientHello which is too short */
+static const unsigned char clienthello_nocookie_short[] = {
+ 0x16, /* Handshake */
+ 0xFE, 0xFF, /* DTLSv1.0 */
+ 0x00, 0x00, /* Epoch */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Record sequence number */
+ 0x00, 0x2F, /* Record Length */
+ 0x01, /* ClientHello */
+ 0x00, 0x00, 0x2E, /* Message length */
+ 0x00, 0x00, /* Message sequence */
+ 0x00, 0x00, 0x00, /* Fragment offset */
+ 0x00, 0x00, 0x23, /* Fragment length */
+ 0xFE, 0xFD, /* DTLSv1.2 */
+ 0xCA, 0x18, 0x9F, 0x76, 0xEC, 0x57, 0xCE, 0xE5, 0xB3, 0xAB, 0x79, 0x90,
+ 0xAD, 0xAC, 0x6E, 0xD1, 0x58, 0x35, 0x03, 0x97, 0x16, 0x10, 0x82, 0x56,
+ 0xD8, 0x55, 0xFF, 0xE1, 0x8A, 0xA3, 0x2E, 0xF6, /* Random */
+ 0x00 /* Session id len */
+};
+
+/* Second fragment of a ClientHello */
+static const unsigned char clienthello_2ndfrag[] = {
+ 0x16, /* Handshake */
+ 0xFE, 0xFF, /* DTLSv1.0 */
+ 0x00, 0x00, /* Epoch */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Record sequence number */
+ 0x00, 0x38, /* Record Length */
+ 0x01, /* ClientHello */
+ 0x00, 0x00, 0x2E, /* Message length */
+ 0x00, 0x00, /* Message sequence */
+ 0x00, 0x00, 0x02, /* Fragment offset */
+ 0x00, 0x00, 0x2C, /* Fragment length */
+ /* Version skipped - sent in first fragment */
+ 0xCA, 0x18, 0x9F, 0x76, 0xEC, 0x57, 0xCE, 0xE5, 0xB3, 0xAB, 0x79, 0x90,
+ 0xAD, 0xAC, 0x6E, 0xD1, 0x58, 0x35, 0x03, 0x97, 0x16, 0x10, 0x82, 0x56,
+ 0xD8, 0x55, 0xFF, 0xE1, 0x8A, 0xA3, 0x2E, 0xF6, /* Random */
+ 0x00, /* Session id len */
+ 0x00, /* Cookie len */
+ 0x00, 0x04, /* Ciphersuites len */
+ 0x00, 0x2f, /* AES128-SHA */
+ 0x00, 0xff, /* Empty reneg info SCSV */
+ 0x01, /* Compression methods len */
+ 0x00, /* Null compression */
+ 0x00, 0x00 /* Extensions len */
+};
+
+/* A ClientHello with a good cookie */
+static const unsigned char clienthello_cookie[] = {
+ 0x16, /* Handshake */
+ 0xFE, 0xFF, /* DTLSv1.0 */
+ 0x00, 0x00, /* Epoch */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Record sequence number */
+ 0x00, 0x4E, /* Record Length */
+ 0x01, /* ClientHello */
+ 0x00, 0x00, 0x42, /* Message length */
+ 0x00, 0x00, /* Message sequence */
+ 0x00, 0x00, 0x00, /* Fragment offset */
+ 0x00, 0x00, 0x42, /* Fragment length */
+ 0xFE, 0xFD, /* DTLSv1.2 */
+ 0xCA, 0x18, 0x9F, 0x76, 0xEC, 0x57, 0xCE, 0xE5, 0xB3, 0xAB, 0x79, 0x90,
+ 0xAD, 0xAC, 0x6E, 0xD1, 0x58, 0x35, 0x03, 0x97, 0x16, 0x10, 0x82, 0x56,
+ 0xD8, 0x55, 0xFF, 0xE1, 0x8A, 0xA3, 0x2E, 0xF6, /* Random */
+ 0x00, /* Session id len */
+ 0x14, /* Cookie len */
+ 0x00, 0x01, 0x02, 0x03, 0x04, 005, 0x06, 007, 0x08, 0x09, 0x0A, 0x0B, 0x0C,
+ 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, /* Cookie */
+ 0x00, 0x04, /* Ciphersuites len */
+ 0x00, 0x2f, /* AES128-SHA */
+ 0x00, 0xff, /* Empty reneg info SCSV */
+ 0x01, /* Compression methods len */
+ 0x00, /* Null compression */
+ 0x00, 0x00 /* Extensions len */
+};
+
+/* A fragmented ClientHello with a good cookie */
+static const unsigned char clienthello_cookie_frag[] = {
+ 0x16, /* Handshake */
+ 0xFE, 0xFF, /* DTLSv1.0 */
+ 0x00, 0x00, /* Epoch */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Record sequence number */
+ 0x00, 0x44, /* Record Length */
+ 0x01, /* ClientHello */
+ 0x00, 0x00, 0x42, /* Message length */
+ 0x00, 0x00, /* Message sequence */
+ 0x00, 0x00, 0x00, /* Fragment offset */
+ 0x00, 0x00, 0x38, /* Fragment length */
+ 0xFE, 0xFD, /* DTLSv1.2 */
+ 0xCA, 0x18, 0x9F, 0x76, 0xEC, 0x57, 0xCE, 0xE5, 0xB3, 0xAB, 0x79, 0x90,
+ 0xAD, 0xAC, 0x6E, 0xD1, 0x58, 0x35, 0x03, 0x97, 0x16, 0x10, 0x82, 0x56,
+ 0xD8, 0x55, 0xFF, 0xE1, 0x8A, 0xA3, 0x2E, 0xF6, /* Random */
+ 0x00, /* Session id len */
+ 0x14, /* Cookie len */
+ 0x00, 0x01, 0x02, 0x03, 0x04, 005, 0x06, 007, 0x08, 0x09, 0x0A, 0x0B, 0x0C,
+ 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13 /* Cookie */
+};
+
+
+/* A ClientHello with a bad cookie */
+static const unsigned char clienthello_badcookie[] = {
+ 0x16, /* Handshake */
+ 0xFE, 0xFF, /* DTLSv1.0 */
+ 0x00, 0x00, /* Epoch */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Record sequence number */
+ 0x00, 0x4E, /* Record Length */
+ 0x01, /* ClientHello */
+ 0x00, 0x00, 0x42, /* Message length */
+ 0x00, 0x00, /* Message sequence */
+ 0x00, 0x00, 0x00, /* Fragment offset */
+ 0x00, 0x00, 0x42, /* Fragment length */
+ 0xFE, 0xFD, /* DTLSv1.2 */
+ 0xCA, 0x18, 0x9F, 0x76, 0xEC, 0x57, 0xCE, 0xE5, 0xB3, 0xAB, 0x79, 0x90,
+ 0xAD, 0xAC, 0x6E, 0xD1, 0x58, 0x35, 0x03, 0x97, 0x16, 0x10, 0x82, 0x56,
+ 0xD8, 0x55, 0xFF, 0xE1, 0x8A, 0xA3, 0x2E, 0xF6, /* Random */
+ 0x00, /* Session id len */
+ 0x14, /* Cookie len */
+ 0x01, 0x01, 0x02, 0x03, 0x04, 005, 0x06, 007, 0x08, 0x09, 0x0A, 0x0B, 0x0C,
+ 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, /* Cookie */
+ 0x00, 0x04, /* Ciphersuites len */
+ 0x00, 0x2f, /* AES128-SHA */
+ 0x00, 0xff, /* Empty reneg info SCSV */
+ 0x01, /* Compression methods len */
+ 0x00, /* Null compression */
+ 0x00, 0x00 /* Extensions len */
+};
+
+/* A fragmented ClientHello with the fragment boundary mid cookie */
+static const unsigned char clienthello_cookie_short[] = {
+ 0x16, /* Handshake */
+ 0xFE, 0xFF, /* DTLSv1.0 */
+ 0x00, 0x00, /* Epoch */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Record sequence number */
+ 0x00, 0x43, /* Record Length */
+ 0x01, /* ClientHello */
+ 0x00, 0x00, 0x42, /* Message length */
+ 0x00, 0x00, /* Message sequence */
+ 0x00, 0x00, 0x00, /* Fragment offset */
+ 0x00, 0x00, 0x37, /* Fragment length */
+ 0xFE, 0xFD, /* DTLSv1.2 */
+ 0xCA, 0x18, 0x9F, 0x76, 0xEC, 0x57, 0xCE, 0xE5, 0xB3, 0xAB, 0x79, 0x90,
+ 0xAD, 0xAC, 0x6E, 0xD1, 0x58, 0x35, 0x03, 0x97, 0x16, 0x10, 0x82, 0x56,
+ 0xD8, 0x55, 0xFF, 0xE1, 0x8A, 0xA3, 0x2E, 0xF6, /* Random */
+ 0x00, /* Session id len */
+ 0x14, /* Cookie len */
+ 0x00, 0x01, 0x02, 0x03, 0x04, 005, 0x06, 007, 0x08, 0x09, 0x0A, 0x0B, 0x0C,
+ 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12 /* Cookie */
+};
+
+/* Bad record - too short */
+static const unsigned char record_short[] = {
+ 0x16, /* Handshake */
+ 0xFE, 0xFF, /* DTLSv1.0 */
+ 0x00, 0x00, /* Epoch */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* Record sequence number */
+};
+
+static const unsigned char verify[] = {
+ 0x16, /* Handshake */
+ 0xFE, 0xFF, /* DTLSv1.0 */
+ 0x00, 0x00, /* Epoch */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Record sequence number */
+ 0x00, 0x23, /* Record Length */
+ 0x03, /* HelloVerifyRequest */
+ 0x00, 0x00, 0x17, /* Message length */
+ 0x00, 0x00, /* Message sequence */
+ 0x00, 0x00, 0x00, /* Fragment offset */
+ 0x00, 0x00, 0x17, /* Fragment length */
+ 0xFE, 0xFF, /* DTLSv1.0 */
+ 0x14, /* Cookie len */
+ 0x00, 0x01, 0x02, 0x03, 0x04, 005, 0x06, 007, 0x08, 0x09, 0x0A, 0x0B, 0x0C,
+ 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13 /* Cookie */
+};
+
+typedef struct {
+ const unsigned char *in;
+ unsigned int inlen;
+ /*
+ * GOOD == positive return value from DTLSv1_listen, no output yet
+ * VERIFY == 0 return value, HelloVerifyRequest sent
+ * DROP == 0 return value, no output
+ */
+ enum {GOOD, VERIFY, DROP} outtype;
+} tests;
+
+static tests testpackets[9] = {
+ { clienthello_nocookie, sizeof(clienthello_nocookie), VERIFY },
+ { clienthello_nocookie_frag, sizeof(clienthello_nocookie_frag), VERIFY },
+ { clienthello_nocookie_short, sizeof(clienthello_nocookie_short), DROP },
+ { clienthello_2ndfrag, sizeof(clienthello_2ndfrag), DROP },
+ { clienthello_cookie, sizeof(clienthello_cookie), GOOD },
+ { clienthello_cookie_frag, sizeof(clienthello_cookie_frag), GOOD },
+ { clienthello_badcookie, sizeof(clienthello_badcookie), VERIFY },
+ { clienthello_cookie_short, sizeof(clienthello_cookie_short), DROP },
+ { record_short, sizeof(record_short), DROP }
+};
+
+# define COOKIE_LEN 20
+
+static int cookie_gen(SSL *ssl, unsigned char *cookie, unsigned int *cookie_len)
+{
+ unsigned int i;
+
+ for (i = 0; i < COOKIE_LEN; i++, cookie++)
+ *cookie = i;
+ *cookie_len = COOKIE_LEN;
+
+ return 1;
+}
+
+static int cookie_verify(SSL *ssl, const unsigned char *cookie,
+ unsigned int cookie_len)
+{
+ unsigned int i;
+
+ if (cookie_len != COOKIE_LEN)
+ return 0;
+
+ for (i = 0; i < COOKIE_LEN; i++, cookie++) {
+ if (*cookie != i)
+ return 0;
+ }
+
+ return 1;
+}
+
+static int dtls_listen_test(int i)
+{
+ SSL_CTX *ctx = NULL;
+ SSL *ssl = NULL;
+ BIO *outbio = NULL;
+ BIO *inbio = NULL;
+ BIO_ADDR *peer = NULL;
+ tests *tp = &testpackets[i];
+ char *data;
+ long datalen;
+ int ret, success = 0;
+
+ if (!TEST_ptr(ctx = SSL_CTX_new(DTLS_server_method()))
+ || !TEST_ptr(peer = BIO_ADDR_new()))
+ goto err;
+ SSL_CTX_set_cookie_generate_cb(ctx, cookie_gen);
+ SSL_CTX_set_cookie_verify_cb(ctx, cookie_verify);
+
+ /* Create an SSL object and set the BIO */
+ if (!TEST_ptr(ssl = SSL_new(ctx))
+ || !TEST_ptr(outbio = BIO_new(BIO_s_mem())))
+ goto err;
+ SSL_set0_wbio(ssl, outbio);
+
+ /* Set Non-blocking IO behaviour */
+ if (!TEST_ptr(inbio = BIO_new_mem_buf((char *)tp->in, tp->inlen)))
+ goto err;
+ BIO_set_mem_eof_return(inbio, -1);
+ SSL_set0_rbio(ssl, inbio);
+
+ /* Process the incoming packet */
+ if (!TEST_int_ge(ret = DTLSv1_listen(ssl, peer), 0))
+ goto err;
+ datalen = BIO_get_mem_data(outbio, &data);
+
+ if (tp->outtype == VERIFY) {
+ if (!TEST_int_eq(ret, 0)
+ || !TEST_mem_eq(data, datalen, verify, sizeof(verify)))
+ goto err;
+ } else if (datalen == 0) {
+ if (!TEST_true((ret == 0 && tp->outtype == DROP)
+ || (ret == 1 && tp->outtype == GOOD)))
+ goto err;
+ } else {
+ TEST_info("Test %d: unexpected data output", i);
+ goto err;
+ }
+ (void)BIO_reset(outbio);
+ inbio = NULL;
+ SSL_set0_rbio(ssl, NULL);
+ success = 1;
+
+ err:
+ /* Also frees up outbio */
+ SSL_free(ssl);
+ SSL_CTX_free(ctx);
+ BIO_free(inbio);
+ OPENSSL_free(peer);
+ return success;
+}
+#endif
+
+int setup_tests(void)
+{
+#ifndef OPENSSL_NO_SOCK
+ ADD_ALL_TESTS(dtls_listen_test, (int)OSSL_NELEM(testpackets));
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ec_internal_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ec_internal_test.c
new file mode 100644
index 000000000..4b849312b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ec_internal_test.c
@@ -0,0 +1,205 @@
+/*
+ * Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "internal/nelem.h"
+#include "testutil.h"
+#include <openssl/ec.h>
+#include "ec_local.h"
+#include <openssl/objects.h>
+
+static size_t crv_len = 0;
+static EC_builtin_curve *curves = NULL;
+
+/* sanity checks field_inv function pointer in EC_METHOD */
+static int group_field_tests(const EC_GROUP *group, BN_CTX *ctx)
+{
+ BIGNUM *a = NULL, *b = NULL, *c = NULL;
+ int ret = 0;
+
+ if (group->meth->field_inv == NULL || group->meth->field_mul == NULL)
+ return 1;
+
+ BN_CTX_start(ctx);
+ a = BN_CTX_get(ctx);
+ b = BN_CTX_get(ctx);
+ if (!TEST_ptr(c = BN_CTX_get(ctx))
+ /* 1/1 = 1 */
+ || !TEST_true(group->meth->field_inv(group, b, BN_value_one(), ctx))
+ || !TEST_true(BN_is_one(b))
+ /* (1/a)*a = 1 */
+ || !TEST_true(BN_pseudo_rand(a, BN_num_bits(group->field) - 1,
+ BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ANY))
+ || !TEST_true(group->meth->field_inv(group, b, a, ctx))
+ || (group->meth->field_encode &&
+ !TEST_true(group->meth->field_encode(group, a, a, ctx)))
+ || (group->meth->field_encode &&
+ !TEST_true(group->meth->field_encode(group, b, b, ctx)))
+ || !TEST_true(group->meth->field_mul(group, c, a, b, ctx))
+ || (group->meth->field_decode &&
+ !TEST_true(group->meth->field_decode(group, c, c, ctx)))
+ || !TEST_true(BN_is_one(c)))
+ goto err;
+
+ /* 1/0 = error */
+ BN_zero(a);
+ if (!TEST_false(group->meth->field_inv(group, b, a, ctx))
+ || !TEST_true(ERR_GET_LIB(ERR_peek_last_error()) == ERR_LIB_EC)
+ || !TEST_true(ERR_GET_REASON(ERR_peek_last_error()) ==
+ EC_R_CANNOT_INVERT)
+ /* 1/p = error */
+ || !TEST_false(group->meth->field_inv(group, b, group->field, ctx))
+ || !TEST_true(ERR_GET_LIB(ERR_peek_last_error()) == ERR_LIB_EC)
+ || !TEST_true(ERR_GET_REASON(ERR_peek_last_error()) ==
+ EC_R_CANNOT_INVERT))
+ goto err;
+
+ ERR_clear_error();
+ ret = 1;
+ err:
+ BN_CTX_end(ctx);
+ return ret;
+}
+
+/* wrapper for group_field_tests for explicit curve params and EC_METHOD */
+static int field_tests(const EC_METHOD *meth, const unsigned char *params,
+ int len)
+{
+ BN_CTX *ctx = NULL;
+ BIGNUM *p = NULL, *a = NULL, *b = NULL;
+ EC_GROUP *group = NULL;
+ int ret = 0;
+
+ if (!TEST_ptr(ctx = BN_CTX_new()))
+ return 0;
+
+ BN_CTX_start(ctx);
+ p = BN_CTX_get(ctx);
+ a = BN_CTX_get(ctx);
+ if (!TEST_ptr(b = BN_CTX_get(ctx))
+ || !TEST_ptr(group = EC_GROUP_new(meth))
+ || !TEST_true(BN_bin2bn(params, len, p))
+ || !TEST_true(BN_bin2bn(params + len, len, a))
+ || !TEST_true(BN_bin2bn(params + 2 * len, len, b))
+ || !TEST_true(EC_GROUP_set_curve(group, p, a, b, ctx))
+ || !group_field_tests(group, ctx))
+ goto err;
+ ret = 1;
+
+ err:
+ BN_CTX_end(ctx);
+ BN_CTX_free(ctx);
+ if (group != NULL)
+ EC_GROUP_free(group);
+ return ret;
+}
+
+/* NIST prime curve P-256 */
+static const unsigned char params_p256[] = {
+ /* p */
+ 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ /* a */
+ 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
+ /* b */
+ 0x5A, 0xC6, 0x35, 0xD8, 0xAA, 0x3A, 0x93, 0xE7, 0xB3, 0xEB, 0xBD, 0x55,
+ 0x76, 0x98, 0x86, 0xBC, 0x65, 0x1D, 0x06, 0xB0, 0xCC, 0x53, 0xB0, 0xF6,
+ 0x3B, 0xCE, 0x3C, 0x3E, 0x27, 0xD2, 0x60, 0x4B
+};
+
+#ifndef OPENSSL_NO_EC2M
+/* NIST binary curve B-283 */
+static const unsigned char params_b283[] = {
+ /* p */
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xA1,
+ /* a */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ /* b */
+ 0x02, 0x7B, 0x68, 0x0A, 0xC8, 0xB8, 0x59, 0x6D, 0xA5, 0xA4, 0xAF, 0x8A,
+ 0x19, 0xA0, 0x30, 0x3F, 0xCA, 0x97, 0xFD, 0x76, 0x45, 0x30, 0x9F, 0xA2,
+ 0xA5, 0x81, 0x48, 0x5A, 0xF6, 0x26, 0x3E, 0x31, 0x3B, 0x79, 0xA2, 0xF5
+};
+#endif
+
+/* test EC_GFp_simple_method directly */
+static int field_tests_ecp_simple(void)
+{
+ TEST_info("Testing EC_GFp_simple_method()\n");
+ return field_tests(EC_GFp_simple_method(), params_p256,
+ sizeof(params_p256) / 3);
+}
+
+/* test EC_GFp_mont_method directly */
+static int field_tests_ecp_mont(void)
+{
+ TEST_info("Testing EC_GFp_mont_method()\n");
+ return field_tests(EC_GFp_mont_method(), params_p256,
+ sizeof(params_p256) / 3);
+}
+
+#ifndef OPENSSL_NO_EC2M
+/* test EC_GF2m_simple_method directly */
+static int field_tests_ec2_simple(void)
+{
+ TEST_info("Testing EC_GF2m_simple_method()\n");
+ return field_tests(EC_GF2m_simple_method(), params_b283,
+ sizeof(params_b283) / 3);
+}
+#endif
+
+/* test default method for a named curve */
+static int field_tests_default(int n)
+{
+ BN_CTX *ctx = NULL;
+ EC_GROUP *group = NULL;
+ int nid = curves[n].nid;
+ int ret = 0;
+
+ TEST_info("Testing curve %s\n", OBJ_nid2sn(nid));
+
+ if (!TEST_ptr(group = EC_GROUP_new_by_curve_name(nid))
+ || !TEST_ptr(ctx = BN_CTX_new())
+ || !group_field_tests(group, ctx))
+ goto err;
+
+ ret = 1;
+ err:
+ if (group != NULL)
+ EC_GROUP_free(group);
+ if (ctx != NULL)
+ BN_CTX_free(ctx);
+ return ret;
+}
+
+int setup_tests(void)
+{
+ crv_len = EC_get_builtin_curves(NULL, 0);
+ if (!TEST_ptr(curves = OPENSSL_malloc(sizeof(*curves) * crv_len))
+ || !TEST_true(EC_get_builtin_curves(curves, crv_len)))
+ return 0;
+
+ ADD_TEST(field_tests_ecp_simple);
+ ADD_TEST(field_tests_ecp_mont);
+#ifndef OPENSSL_NO_EC2M
+ ADD_TEST(field_tests_ec2_simple);
+#endif
+ ADD_ALL_TESTS(field_tests_default, crv_len);
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+ OPENSSL_free(curves);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ecdsatest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ecdsatest.c
new file mode 100644
index 000000000..ad2f4048a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ecdsatest.c
@@ -0,0 +1,339 @@
+/*
+ * Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <openssl/opensslconf.h> /* To see if OPENSSL_NO_EC is defined */
+#include "testutil.h"
+
+#ifndef OPENSSL_NO_EC
+
+# include <openssl/evp.h>
+# include <openssl/bn.h>
+# include <openssl/ec.h>
+# include <openssl/rand.h>
+# include "internal/nelem.h"
+# include "ecdsatest.h"
+
+/* functions to change the RAND_METHOD */
+static int fbytes(unsigned char *buf, int num);
+
+static RAND_METHOD fake_rand;
+static const RAND_METHOD *old_rand;
+static int use_fake = 0;
+static const char *numbers[2];
+static size_t crv_len = 0;
+static EC_builtin_curve *curves = NULL;
+
+static int change_rand(void)
+{
+ /* save old rand method */
+ if (!TEST_ptr(old_rand = RAND_get_rand_method()))
+ return 0;
+
+ fake_rand = *old_rand;
+ /* use own random function */
+ fake_rand.bytes = fbytes;
+ /* set new RAND_METHOD */
+ if (!TEST_true(RAND_set_rand_method(&fake_rand)))
+ return 0;
+ return 1;
+}
+
+static int restore_rand(void)
+{
+ if (!TEST_true(RAND_set_rand_method(old_rand)))
+ return 0;
+ return 1;
+}
+
+static int fbytes(unsigned char *buf, int num)
+{
+ int ret = 0;
+ static int fbytes_counter = 0;
+ BIGNUM *tmp = NULL;
+
+ if (use_fake == 0)
+ return old_rand->bytes(buf, num);
+
+ use_fake = 0;
+
+ if (!TEST_ptr(tmp = BN_new())
+ || !TEST_int_lt(fbytes_counter, OSSL_NELEM(numbers))
+ || !TEST_true(BN_hex2bn(&tmp, numbers[fbytes_counter]))
+ /* tmp might need leading zeros so pad it out */
+ || !TEST_int_le(BN_num_bytes(tmp), num)
+ || !TEST_true(BN_bn2binpad(tmp, buf, num)))
+ goto err;
+
+ fbytes_counter = (fbytes_counter + 1) % OSSL_NELEM(numbers);
+ ret = 1;
+ err:
+ BN_free(tmp);
+ return ret;
+}
+
+/*-
+ * This function hijacks the RNG to feed it the chosen ECDSA key and nonce.
+ * The ECDSA KATs are from:
+ * - the X9.62 draft (4)
+ * - NIST CAVP (720)
+ *
+ * It uses the low-level ECDSA_sign_setup instead of EVP to control the RNG.
+ * NB: This is not how applications should use ECDSA; this is only for testing.
+ *
+ * Tests the library can successfully:
+ * - generate public keys that matches those KATs
+ * - create ECDSA signatures that match those KATs
+ * - accept those signatures as valid
+ */
+static int x9_62_tests(int n)
+{
+ int nid, md_nid, ret = 0;
+ const char *r_in = NULL, *s_in = NULL, *tbs = NULL;
+ unsigned char *pbuf = NULL, *qbuf = NULL, *message = NULL;
+ unsigned char digest[EVP_MAX_MD_SIZE];
+ unsigned int dgst_len = 0;
+ long q_len, msg_len = 0;
+ size_t p_len;
+ EVP_MD_CTX *mctx = NULL;
+ EC_KEY *key = NULL;
+ ECDSA_SIG *signature = NULL;
+ BIGNUM *r = NULL, *s = NULL;
+ BIGNUM *kinv = NULL, *rp = NULL;
+ const BIGNUM *sig_r = NULL, *sig_s = NULL;
+
+ nid = ecdsa_cavs_kats[n].nid;
+ md_nid = ecdsa_cavs_kats[n].md_nid;
+ r_in = ecdsa_cavs_kats[n].r;
+ s_in = ecdsa_cavs_kats[n].s;
+ tbs = ecdsa_cavs_kats[n].msg;
+ numbers[0] = ecdsa_cavs_kats[n].d;
+ numbers[1] = ecdsa_cavs_kats[n].k;
+
+ TEST_info("ECDSA KATs for curve %s", OBJ_nid2sn(nid));
+
+ if (!TEST_ptr(mctx = EVP_MD_CTX_new())
+ /* get the message digest */
+ || !TEST_ptr(message = OPENSSL_hexstr2buf(tbs, &msg_len))
+ || !TEST_true(EVP_DigestInit_ex(mctx, EVP_get_digestbynid(md_nid), NULL))
+ || !TEST_true(EVP_DigestUpdate(mctx, message, msg_len))
+ || !TEST_true(EVP_DigestFinal_ex(mctx, digest, &dgst_len))
+ /* create the key */
+ || !TEST_ptr(key = EC_KEY_new_by_curve_name(nid))
+ /* load KAT variables */
+ || !TEST_ptr(r = BN_new())
+ || !TEST_ptr(s = BN_new())
+ || !TEST_true(BN_hex2bn(&r, r_in))
+ || !TEST_true(BN_hex2bn(&s, s_in))
+ /* swap the RNG source */
+ || !TEST_true(change_rand()))
+ goto err;
+
+ /* public key must match KAT */
+ use_fake = 1;
+ if (!TEST_true(EC_KEY_generate_key(key))
+ || !TEST_true(p_len = EC_KEY_key2buf(key, POINT_CONVERSION_UNCOMPRESSED,
+ &pbuf, NULL))
+ || !TEST_ptr(qbuf = OPENSSL_hexstr2buf(ecdsa_cavs_kats[n].Q, &q_len))
+ || !TEST_int_eq(q_len, p_len)
+ || !TEST_mem_eq(qbuf, q_len, pbuf, p_len))
+ goto err;
+
+ /* create the signature via ECDSA_sign_setup to avoid use of ECDSA nonces */
+ use_fake = 1;
+ if (!TEST_true(ECDSA_sign_setup(key, NULL, &kinv, &rp))
+ || !TEST_ptr(signature = ECDSA_do_sign_ex(digest, dgst_len,
+ kinv, rp, key))
+ /* verify the signature */
+ || !TEST_int_eq(ECDSA_do_verify(digest, dgst_len, signature, key), 1))
+ goto err;
+
+ /* compare the created signature with the expected signature */
+ ECDSA_SIG_get0(signature, &sig_r, &sig_s);
+ if (!TEST_BN_eq(sig_r, r)
+ || !TEST_BN_eq(sig_s, s))
+ goto err;
+
+ ret = 1;
+
+ err:
+ /* restore the RNG source */
+ if (!TEST_true(restore_rand()))
+ ret = 0;
+
+ OPENSSL_free(message);
+ OPENSSL_free(pbuf);
+ OPENSSL_free(qbuf);
+ EC_KEY_free(key);
+ ECDSA_SIG_free(signature);
+ BN_free(r);
+ BN_free(s);
+ EVP_MD_CTX_free(mctx);
+ BN_clear_free(kinv);
+ BN_clear_free(rp);
+ return ret;
+}
+
+/*-
+ * Positive and negative ECDSA testing through EVP interface:
+ * - EVP_DigestSign (this is the one-shot version)
+ * - EVP_DigestVerify
+ *
+ * Tests the library can successfully:
+ * - create a key
+ * - create a signature
+ * - accept that signature
+ * - reject that signature with a different public key
+ * - reject that signature if its length is not correct
+ * - reject that signature after modifying the message
+ * - accept that signature after un-modifying the message
+ * - reject that signature after modifying the signature
+ * - accept that signature after un-modifying the signature
+ */
+static int test_builtin(int n)
+{
+ EC_KEY *eckey_neg = NULL, *eckey = NULL;
+ unsigned char dirt, offset, tbs[128];
+ unsigned char *sig = NULL;
+ EVP_PKEY *pkey_neg = NULL, *pkey = NULL;
+ EVP_MD_CTX *mctx = NULL;
+ size_t sig_len;
+ int nid, ret = 0;
+
+ nid = curves[n].nid;
+
+ /* skip built-in curves where ord(G) is not prime */
+ if (nid == NID_ipsec4 || nid == NID_ipsec3) {
+ TEST_info("skipped: ECDSA unsupported for curve %s", OBJ_nid2sn(nid));
+ return 1;
+ }
+
+ TEST_info("testing ECDSA for curve %s", OBJ_nid2sn(nid));
+
+ if (!TEST_ptr(mctx = EVP_MD_CTX_new())
+ /* get some random message data */
+ || !TEST_true(RAND_bytes(tbs, sizeof(tbs)))
+ /* real key */
+ || !TEST_ptr(eckey = EC_KEY_new_by_curve_name(nid))
+ || !TEST_true(EC_KEY_generate_key(eckey))
+ || !TEST_ptr(pkey = EVP_PKEY_new())
+ || !TEST_true(EVP_PKEY_assign_EC_KEY(pkey, eckey))
+ /* fake key for negative testing */
+ || !TEST_ptr(eckey_neg = EC_KEY_new_by_curve_name(nid))
+ || !TEST_true(EC_KEY_generate_key(eckey_neg))
+ || !TEST_ptr(pkey_neg = EVP_PKEY_new())
+ || !TEST_true(EVP_PKEY_assign_EC_KEY(pkey_neg, eckey_neg)))
+ goto err;
+
+ sig_len = ECDSA_size(eckey);
+
+ if (!TEST_ptr(sig = OPENSSL_malloc(sig_len))
+ /* create a signature */
+ || !TEST_true(EVP_DigestSignInit(mctx, NULL, NULL, NULL, pkey))
+ || !TEST_true(EVP_DigestSign(mctx, sig, &sig_len, tbs, sizeof(tbs)))
+ || !TEST_int_le(sig_len, ECDSA_size(eckey))
+ /* negative test, verify with wrong key, 0 return */
+ || !TEST_true(EVP_MD_CTX_reset(mctx))
+ || !TEST_true(EVP_DigestVerifyInit(mctx, NULL, NULL, NULL, pkey_neg))
+ || !TEST_int_eq(EVP_DigestVerify(mctx, sig, sig_len, tbs, sizeof(tbs)), 0)
+ /* negative test, verify with wrong signature length, -1 return */
+ || !TEST_true(EVP_MD_CTX_reset(mctx))
+ || !TEST_true(EVP_DigestVerifyInit(mctx, NULL, NULL, NULL, pkey))
+ || !TEST_int_eq(EVP_DigestVerify(mctx, sig, sig_len - 1, tbs, sizeof(tbs)), -1)
+ /* positive test, verify with correct key, 1 return */
+ || !TEST_true(EVP_MD_CTX_reset(mctx))
+ || !TEST_true(EVP_DigestVerifyInit(mctx, NULL, NULL, NULL, pkey))
+ || !TEST_int_eq(EVP_DigestVerify(mctx, sig, sig_len, tbs, sizeof(tbs)), 1))
+ goto err;
+
+ /* muck with the message, test it fails with 0 return */
+ tbs[0] ^= 1;
+ if (!TEST_true(EVP_MD_CTX_reset(mctx))
+ || !TEST_true(EVP_DigestVerifyInit(mctx, NULL, NULL, NULL, pkey))
+ || !TEST_int_eq(EVP_DigestVerify(mctx, sig, sig_len, tbs, sizeof(tbs)), 0))
+ goto err;
+ /* un-muck and test it verifies */
+ tbs[0] ^= 1;
+ if (!TEST_true(EVP_MD_CTX_reset(mctx))
+ || !TEST_true(EVP_DigestVerifyInit(mctx, NULL, NULL, NULL, pkey))
+ || !TEST_int_eq(EVP_DigestVerify(mctx, sig, sig_len, tbs, sizeof(tbs)), 1))
+ goto err;
+
+ /*-
+ * Muck with the ECDSA signature. The DER encoding is one of:
+ * - 30 LL 02 ..
+ * - 30 81 LL 02 ..
+ *
+ * - Sometimes this mucks with the high level DER sequence wrapper:
+ * in that case, DER-parsing of the whole signature should fail.
+ *
+ * - Sometimes this mucks with the DER-encoding of ECDSA.r:
+ * in that case, DER-parsing of ECDSA.r should fail.
+ *
+ * - Sometimes this mucks with the DER-encoding of ECDSA.s:
+ * in that case, DER-parsing of ECDSA.s should fail.
+ *
+ * - Sometimes this mucks with ECDSA.r:
+ * in that case, the signature verification should fail.
+ *
+ * - Sometimes this mucks with ECDSA.s:
+ * in that case, the signature verification should fail.
+ *
+ * The usual case is changing the integer value of ECDSA.r or ECDSA.s.
+ * Because the ratio of DER overhead to signature bytes is small.
+ * So most of the time it will be one of the last two cases.
+ *
+ * In any case, EVP_PKEY_verify should not return 1 for valid.
+ */
+ offset = tbs[0] % sig_len;
+ dirt = tbs[1] ? tbs[1] : 1;
+ sig[offset] ^= dirt;
+ if (!TEST_true(EVP_MD_CTX_reset(mctx))
+ || !TEST_true(EVP_DigestVerifyInit(mctx, NULL, NULL, NULL, pkey))
+ || !TEST_int_ne(EVP_DigestVerify(mctx, sig, sig_len, tbs, sizeof(tbs)), 1))
+ goto err;
+ /* un-muck and test it verifies */
+ sig[offset] ^= dirt;
+ if (!TEST_true(EVP_MD_CTX_reset(mctx))
+ || !TEST_true(EVP_DigestVerifyInit(mctx, NULL, NULL, NULL, pkey))
+ || !TEST_int_eq(EVP_DigestVerify(mctx, sig, sig_len, tbs, sizeof(tbs)), 1))
+ goto err;
+
+ ret = 1;
+ err:
+ EVP_PKEY_free(pkey);
+ EVP_PKEY_free(pkey_neg);
+ EVP_MD_CTX_free(mctx);
+ OPENSSL_free(sig);
+ return ret;
+}
+#endif
+
+int setup_tests(void)
+{
+#ifdef OPENSSL_NO_EC
+ TEST_note("Elliptic curves are disabled.");
+#else
+ /* get a list of all internal curves */
+ crv_len = EC_get_builtin_curves(NULL, 0);
+ if (!TEST_ptr(curves = OPENSSL_malloc(sizeof(*curves) * crv_len))
+ || !TEST_true(EC_get_builtin_curves(curves, crv_len)))
+ return 0;
+ ADD_ALL_TESTS(test_builtin, crv_len);
+ ADD_ALL_TESTS(x9_62_tests, OSSL_NELEM(ecdsa_cavs_kats));
+#endif
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+#ifndef OPENSSL_NO_EC
+ OPENSSL_free(curves);
+#endif
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ecdsatest.h b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ecdsatest.h
new file mode 100644
index 000000000..63fe31902
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ecdsatest.h
@@ -0,0 +1,10214 @@
+/*
+ * Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#ifndef OSSL_TEST_ECDSATEST_H
+# define OSSL_TEST_ECDSATEST_H
+
+/*-
+ * NIST CAVP ECDSA KATs:
+ * https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/dss/186-3ecdsatestvectors.zip
+ *
+ * sha256sum e0d9bee3f760ca3fabb82bd43dd04c13ee64ca9e0b719c6ea64fd52c9f0dd929
+ * 720 KATs from the SigGen.txt file.
+ *
+ * There are also 4 X9.62 KATs; two for prime fields and two for binary fields.
+ */
+
+typedef struct {
+ const int nid; /* curve NID */
+ const int md_nid; /* hash function NID */
+ const char *msg; /* message to sign */
+ const char *d; /* ECDSA private key */
+ const char *Q; /* ECDSA public key: Q = dG */
+ const char *k; /* ECDSA nonce */
+ const char *r; /* ECDSA signature (r,s) */
+ const char *s;
+} ecdsa_cavs_kat_t;
+
+static const ecdsa_cavs_kat_t ecdsa_cavs_kats[] = {
+ /* prime KATs from X9.62 */
+ {NID_X9_62_prime192v1, NID_sha1,
+ "616263", /* "abc" */
+ "1a8d598fc15bf0fd89030b5cb1111aeb92ae8baf5ea475fb",
+ "0462b12d60690cdcf330babab6e69763b471f994dd702d16a563bf5ec08069705ffff65e"
+ "5ca5c0d69716dfcb3474373902",
+ "fa6de29746bbeb7f8bb1e761f85f7dfb2983169d82fa2f4e",
+ "885052380ff147b734c330c43d39b2c4a89f29b0f749fead",
+ "e9ecc78106def82bf1070cf1d4d804c3cb390046951df686"},
+ {NID_X9_62_prime239v1, NID_sha1,
+ "616263", /* "abc" */
+ "7ef7c6fabefffdea864206e80b0b08a9331ed93e698561b64ca0f7777f3d",
+ "045b6dc53bc61a2548ffb0f671472de6c9521a9d2d2534e65abfcbd5fe0c707fd9f1ed2e"
+ "65f09f6ce0893baf5e8e31e6ae82ea8c3592335be906d38dee",
+ "656c7196bf87dcc5d1f1020906df2782360d36b2de7a17ece37d503784af",
+ "2cb7f36803ebb9c427c58d8265f11fc5084747133078fc279de874fbecb0",
+ "2eeae988104e9c2234a3c2beb1f53bfa5dc11ff36a875d1e3ccb1f7e45cf"},
+ /* prime KATs from NIST CAVP */
+ {NID_secp224r1, NID_sha224,
+ "699325d6fc8fbbb4981a6ded3c3a54ad2e4e3db8a5669201912064c64e700c139248cdc1"
+ "9495df081c3fc60245b9f25fc9e301b845b3d703a694986e4641ae3c7e5a19e6d6edbf1d"
+ "61e535f49a8fad5f4ac26397cfec682f161a5fcd32c5e780668b0181a91955157635536a"
+ "22367308036e2070f544ad4fff3d5122c76fad5d",
+ "16797b5c0c7ed5461e2ff1b88e6eafa03c0f46bf072000dfc830d615",
+ "04605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eabf5cc733b17decc"
+ "806ef1df861a42505d0af9ef7c3df3959b8dfc6669",
+ "d9a5a7328117f48b4b8dd8c17dae722e756b3ff64bd29a527137eec0",
+ "2fc2cff8cdd4866b1d74e45b07d333af46b7af0888049d0fdbc7b0d6",
+ "8d9cc4c8ea93e0fd9d6431b9a1fd99b88f281793396321b11dac41eb"},
+ {NID_secp224r1, NID_sha224,
+ "7de42b44db0aa8bfdcdac9add227e8f0cc7ad1d94693beb5e1d325e5f3f85b3bd033fc25"
+ "e9469a89733a65d1fa641f7e67d668e7c71d736233c4cba20eb83c368c506affe77946b5"
+ "e2ec693798aecd7ff943cd8fab90affddf5ad5b8d1af332e6c5fe4a2df16837700b2781e"
+ "08821d4fbdd8373517f5b19f9e63b89cfeeeef6f",
+ "cf020a1ff36c28511191482ed1e5259c60d383606c581948c3fbe2c5",
+ "04fa21f85b99d3dc18c6d53351fbcb1e2d029c00fa7d1663a3dd94695ee9e79578f8988b"
+ "168edff1a8b34a5ed9598cc20acd1f0aed36715d88",
+ "c780d047454824af98677cf310117e5f9e99627d02414f136aed8e83",
+ "45145f06b566ec9fd0fee1b6c6551a4535c7a3bbfc0fede45f4f5038",
+ "7302dff12545b069cf27df49b26e4781270585463656f2834917c3ca"},
+ {NID_secp224r1, NID_sha224,
+ "af0da3adab82784909e2b3dadcecba21eced3c60d7572023dea171044d9a10e8ba67d31b"
+ "04904541b87fff32a10ccc6580869055fec6216a00320a28899859a6b61faba58a0bc10c"
+ "2ba07ea16f214c3ddcc9fc5622ad1253b63fe7e95227ae3c9caa9962cffc8b1c4e826003"
+ "6469d25ab0c8e3643a820b8b3a4d8d43e4b728f9",
+ "dde6f173fa9f307d206ce46b4f02851ebce9638a989330249fd30b73",
+ "04fc21a99b060afb0d9dbf3250ea3c4da10be94ce627a65874d8e4a630e8373ab7190890"
+ "326aac4aacca3eba89e15d1086a05434dd033fd3f3",
+ "6629366a156840477df4875cfba4f8faa809e394893e1f5525326d07",
+ "41f8e2b1ae5add7c24da8725a067585a3ad6d5a9ed9580beb226f23a",
+ "a5d71bff02dce997305dd337128046f36714398f4ef6647599712fae"},
+ {NID_secp224r1, NID_sha224,
+ "cfa56ae89727df6b7266f69d6636bf738f9e4f15f49c42a0123edac4b3743f32ea52389f"
+ "919ceb90575c4184897773b2f2fc5b3fcb354880f15c93383215d3c2551fcc1b4180a1ac"
+ "0f69c969bbc306acd115ce3976eff518540f43ad4076dbb5fbad9ce9b3234f1148b8f5e0"
+ "59192ff480fc4bcbd00d25f4d9f5ed4ba5693b6c",
+ "aeee9071248f077590ac647794b678ad371f8e0f1e14e9fbff49671e",
+ "04fad0a34991bbf89982ad9cf89337b4bd2565f84d5bdd004289fc1cc35d8b6764f28c81"
+ "63a12855a5c266efeb9388df4994b85a8b4f1bd3bc",
+ "1d35d027cd5a569e25c5768c48ed0c2b127c0f99cb4e52ea094fe689",
+ "2258184ef9f0fa698735379972ce9adf034af76017668bfcdab978de",
+ "866fb8e505dea6c909c2c9143ec869d1bac2282cf12366130ff2146c"},
+ {NID_secp224r1, NID_sha224,
+ "c223c8009018321b987a615c3414d2bb15954933569ca989de32d6bf11107bc47a330ab6"
+ "d88d9b50d106cf5777d1b736b14bc48deda1bc573a9a7dd42cd061860645306dce7a5ba8"
+ "c60f135a6a21999421ce8c4670fe7287a7e9ea3aa1e0fa82721f33e6e823957fe86e2283"
+ "c89ef92b13cd0333c4bb70865ae1919bf538ea34",
+ "29c204b2954e1406a015020f9d6b3d7c00658298feb2d17440b2c1a4",
+ "040e0fc15e775a75d45f872e5021b554cc0579da19125e1a49299c7630cb64fe462d025a"
+ "e2a1394746bdbf8251f7ca5a1d6bb13e0edf6b7b09",
+ "39547c10bb947d69f6c3af701f2528e011a1e80a6d04cc5a37466c02",
+ "86622c376d326cdf679bcabf8eb034bf49f0c188f3fc3afd0006325d",
+ "26613d3b33c70e635d7a998f254a5b15d2a3642bf321e8cff08f1e84"},
+ {NID_secp224r1, NID_sha224,
+ "1c27273d95182c74c100d85b5c08f4b26874c2abc87f127f304aedbf52ef6540eba16dd6"
+ "64ae1e9e30ea1e66ff9cc9ab5a80b5bcbd19dde88a29ff10b50a6abd73388e8071306c68"
+ "d0c9f6caa26b7e68de29312be959b9f4a5481f5a2ad2070a396ed3de21096541cf58c4a1"
+ "3308e08867565bf2df9d649357a83cdcf18d2cd9",
+ "8986a97b24be042a1547642f19678de4e281a68f1e794e343dabb131",
+ "042c070e68e8478341938f3d5026a1fe01e778cdffbebbdd7a4cd29209cde21c9c7c6590"
+ "ba300715a7adac278385a5175b6b4ea749c4b6a681",
+ "509712f9c0f3370f6a09154159975945f0107dd1cee7327c68eaa90b",
+ "57afda5139b180de96373c3d649700682e37efd56ae182335f081013",
+ "eb6cd58650cfb26dfdf21de32fa17464a6efc46830eedc16977342e6"},
+ {NID_secp224r1, NID_sha224,
+ "069ae374971627f6b8503f3aa63ab52bcf4f3fcae65b98cdbbf917a5b08a10dc76005671"
+ "4db279806a8d43485320e6fee0f1e0562e077ee270ace8d3c478d79bcdff9cf8b92fdea6"
+ "8421d4a276f8e62ae379387ae06b60af9eb3c40bd7a768aeffccdc8a08bc78ca2eca1806"
+ "1058043a0e441209c5c594842838a4d9d778a053",
+ "d9aa95e14cb34980cfddadddfa92bde1310acaff249f73ff5b09a974",
+ "043a0d4b8e5fad1ea1abb8d3fb742cd45cd0b76d136e5bbb33206ad120c90ac83276b2fa"
+ "3757b0f226cd7360a313bc96fd8329c76a7306cc7d",
+ "1f1739af68a3cee7c5f09e9e09d6485d9cd64cc4085bc2bc89795aaf",
+ "09bbdd003532d025d7c3204c00747cd52ecdfbc7ce3dde8ffbea23e1",
+ "1e745e80948779a5cc8dc5cb193beebb550ec9c2647f4948bf58ba7d"},
+ {NID_secp224r1, NID_sha224,
+ "d0d5ae3e33600aa21c1606caec449eee678c87cb593594be1fbb048cc7cfd076e5cc7132"
+ "ebe290c4c014e7a517a0d5972759acfa1438d9d2e5d236d19ac92136f6252b7e5bea7588"
+ "dcba6522b6b18128f003ecab5cb4908832fb5a375cf820f8f0e9ee870653a73dc2282f2d"
+ "45622a2f0e85cba05c567baf1b9862b79a4b244e",
+ "380fb6154ad3d2e755a17df1f047f84712d4ec9e47d34d4054ea29a8",
+ "044772c27cca3348b1801ae87b01cb564c8cf9b81c23cc74468a907927de9d253935b096"
+ "17a1655c42d385bf48504e06fa386f5fa533a21dcb",
+ "14dbdffa326ba2f3d64f79ff966d9ee6c1aba0d51e9a8e59f5686dc1",
+ "ff6d52a09ca4c3b82da0440864d6717e1be0b50b6dcf5e1d74c0ff56",
+ "09490be77bc834c1efaa23410dcbf800e6fae40d62a737214c5a4418"},
+ {NID_secp224r1, NID_sha224,
+ "79b7375ae7a4f2e4adad8765d14c1540cd9979db38076c157c1837c760ca6febbb18fd42"
+ "152335929b735e1a08041bd38d315cd4c6b7dd2729de8752f531f07fe4ddc4f1899debc0"
+ "311eef0019170b58e08895b439ddf09fbf0aeb1e2fd35c2ef7ae402308c3637733802601"
+ "dd218fb14c22f57870835b10818369d57d318405",
+ "6b98ec50d6b7f7ebc3a2183ff9388f75e924243827ddded8721186e2",
+ "041f249911b125348e6e0a473479105cc4b8cfb4fa32d897810fc69ffea17db03b9877d1"
+ "b6328329061ea67aec5a38a884362e9e5b7d7642dc",
+ "ab3a41fedc77d1f96f3103cc7dce215bf45054a755cf101735fef503",
+ "70ccc0824542e296d17a79320d422f1edcf9253840dafe4427033f40",
+ "e3823699c355b61ab1894be3371765fae2b720405a7ce5e790ca8c00"},
+ {NID_secp224r1, NID_sha224,
+ "8c7de96e6880d5b6efc19646b9d3d56490775cb3faab342e64db2e388c4bd9e94c4e69a6"
+ "3ccdb7e007a19711e69c06f106b71c983a6d97c4589045666c6ab5ea7b5b6d096ddf6fd3"
+ "5b819f1506a3c37ddd40929504f9f079c8d83820fc8493f97b2298aebe48fdb4ff472b29"
+ "018fc2b1163a22bfbb1de413e8645e871291a9f6",
+ "8dda0ef4170bf73077d685e7709f6f747ced08eb4cde98ef06ab7bd7",
+ "047df67b960ee7a2cb62b22932457360ab1e046c1ec84b91ae65642003c764ca9fc1b0cc"
+ "2233fa57bdcfedaab0131fb7b5f557d6ca57f4afe0",
+ "9ef6ebd178a76402968bc8ec8b257174a04fb5e2d65c1ab34ab039b9",
+ "eef9e8428105704133e0f19636c89e570485e577786df2b09f99602a",
+ "8c01f0162891e4b9536243cb86a6e5c177323cca09777366caf2693c"},
+ {NID_secp224r1, NID_sha224,
+ "c89766374c5a5ccef5823e7a9b54af835ac56afbbb517bd77bfecf3fea876bd0cc9ea486"
+ "e3d685cfe3fb05f25d9c67992cd7863c80a55c7a263249eb3996c4698ad7381131bf3700"
+ "b7b24d7ca281a100cf2b750e7f0f933e662a08d9f9e47d779fb03754bd20931262ff381a"
+ "2fe7d1dc94f4a0520de73fa72020494d3133ecf7",
+ "3dbe18cd88fa49febfcb60f0369a67b2379a466d906ac46a8b8d522b",
+ "04b10150fd797eb870d377f1dbfa197f7d0f0ad29965af573ec13cc42a17b63ccefbe27f"
+ "b2a1139e5757b1082aeaa564f478c23a8f631eed5c",
+ "385803b262ee2ee875838b3a645a745d2e199ae112ef73a25d68d15f",
+ "1d293b697f297af77872582eb7f543dc250ec79ad453300d264a3b70",
+ "517a91b89c4859fcc10834242e710c5f0fed90ac938aa5ccdb7c66de"},
+ {NID_secp224r1, NID_sha224,
+ "30f0e3b502eec5646929d48fd46aa73991d82079c7bd50a38b38ec0bd84167c8cf5ba39b"
+ "ec26999e70208af9b445046cd9d20c82b7629ca1e51bdd00daddbc35f9eb036a15ac5789"
+ "8642d9db09479a38cc80a2e41e380c8a766b2d623de2de798e1eabc02234b89b85d60154"
+ "460c3bf12764f3fbf17fcccc82df516a2fbe4ecf",
+ "c906b667f38c5135ea96c95722c713dbd125d61156a546f49ddaadc6",
+ "043c9b4ef1748a1925578658d3af51995b989ad760790157b25fe0982655648f4ff4edfb"
+ "899e9a13bd8d20f5c24b35dc6a6a4e42ed5983b4a0",
+ "b04d78d8ac40fefadb99f389a06d93f6b5b72198c1be02dbff6195f0",
+ "4bdd3c84647bad93dcaffd1b54eb87fc61a5704b19d7e6d756d11ad0",
+ "fdd81e5dca54158514f44ba2330271eff4c618330328451e2d93b9fb"},
+ {NID_secp224r1, NID_sha224,
+ "6bbb4bf987c8e5069e47c1a541b48b8a3e6d14bfd9ac6dfaa7503b64ab5e1a55f63e91cf"
+ "5c3e703ac27ad88756dd7fb2d73b909fc15302d0592b974d47e72e60ed339a40b34d39a4"
+ "9b69ea4a5d26ce86f3ca00a70f1cd416a6a5722e8f39d1f0e966981803d6f46dac34e4c7"
+ "640204cd0d9f1e53fc3acf30096cd00fa80b3ae9",
+ "3456745fbd51eac9b8095cd687b112f93d1b58352dbe02c66bb9b0cc",
+ "04f0acdfbc75a748a4a0ac55281754b5c4a364b7d61c5390b334daae1086587a6768f235"
+ "bf523fbfc6e062c7401ac2b0242cfe4e5fb34f4057",
+ "854b20c61bcdf7a89959dbf0985880bb14b628f01c65ef4f6446f1c1",
+ "a2601fbb9fe89f39814735febb349143baa934170ffb91c6448a7823",
+ "bf90f9305616020a0e34ef30803fc15fa97dffc0948452bbf6cb5f66"},
+ {NID_secp224r1, NID_sha224,
+ "05b8f8e56214d4217323f2066f974f638f0b83689fc4ed1201848230efdc1fbca8f70359"
+ "cecc921050141d3b02c2f17aa306fc2ce5fc06e7d0f4be162fcd985a0b687b4ba09b681c"
+ "b52ffe890bf5bb4a104cb2e770c04df433013605eb8c72a09902f4246d6c22b8c191ef1b"
+ "0bece10d5ce2744fc7345307dd1b41b6eff0ca89",
+ "2c522af64baaca7b7a08044312f5e265ec6e09b2272f462cc705e4c3",
+ "045fad3c047074b5de1960247d0cc216b4e3fb7f3b9cd960575c8479fce4fc9c7f05ff0b"
+ "040eb171fdd2a1dfe2572c564c2003a08c3179a422",
+ "9267763383f8db55eed5b1ca8f4937dc2e0ca6175066dc3d4a4586af",
+ "422e2e9fe535eb62f11f5f8ce87cf2e9ec65e61c06737cf6a0019ae6",
+ "116cfcf0965b7bc63aecade71d189d7e98a0434b124f2afbe3ccf0a9"},
+ {NID_secp224r1, NID_sha224,
+ "e5c979f0832242b143077bce6ef146a53bb4c53abfc033473c59f3c4095a68b7a504b609"
+ "f2ab163b5f88f374f0f3bff8762278b1f1c37323b9ed448e3de33e6443796a9ecaa466aa"
+ "75175375418186c352018a57ce874e44ae72401d5c0f401b5a51804724c10653fded9066"
+ "e8994d36a137fdeb9364601daeef09fd174dde4a",
+ "3eff7d07edda14e8beba397accfee060dbe2a41587a703bbe0a0b912",
+ "046dd84f4d66f362844e41a7913c40b4aad5fa9ba56bb44c2d2ed9efac15f65ebcdf2fd9"
+ "f8035385a330bdabec0f1cd9cc7bc31d2fadbe7cda",
+ "7bb48839d7717bab1fdde89bf4f7b4509d1c2c12510925e13655dead",
+ "127051d85326049115f307af2bc426f6c2d08f4774a0b496fb6982b1",
+ "6857e84418c1d1179333b4e5307e92abade0b74f7521ad78044bf597"},
+ {NID_secp224r1, NID_sha256,
+ "2b49de971bb0f705a3fb5914eb7638d72884a6c3550667dbfdf301adf26bde02f387fd42"
+ "6a31be6c9ff8bfe8690c8113c88576427f1466508458349fc86036afcfb66448b947707e"
+ "791e71f558b2bf4e7e7507773aaf4e9af51eda95cbce0a0f752b216f8a54a045d47801ff"
+ "410ee411a1b66a516f278327df2462fb5619470e",
+ "888fc992893bdd8aa02c80768832605d020b81ae0b25474154ec89aa",
+ "044c741e4d20103670b7161ae72271082155838418084335338ac38fa4db7919151ac285"
+ "87b72bad7ab180ec8e95ab9e2c8d81d9b9d7e2e383",
+ "06f7a56007825433c4c61153df1a135eee2f38ec687b492ed40d9c90",
+ "0909c9b9cae8d2790e29db6afdb45c04f5b072c4c20410c7dc9b6772",
+ "298f4fcae1fe271da1e0345d11d07a1fca43f58af4c113b909eedea0"},
+ {NID_secp224r1, NID_sha256,
+ "1fa7201d96ad4d190415f2656d1387fa886afc38e5cd18b8c60da367acf32c627d2c9ea1"
+ "9ef3f030e559fc2a21695cdbb65ddf6ba36a70af0d3fa292a32de31da6acc6108ab2be8b"
+ "d37843338f0c37c2d62648d3d49013edeb9e179dadf78bf885f95e712fcdfcc8a172e47c"
+ "09ab159f3a00ed7b930f628c3c48257e92fc7407",
+ "5b5a3e186e7d5b9b0fbdfc74a05e0a3d85dc4be4c87269190c839972",
+ "04897089f4ef05b943eeac06589f0e09ccc571a6add3eb1610a2fc830f62ba3f6b3e6f0f"
+ "062058b93e6f25b6041246c5be13584a41cae7e244",
+ "5b6f7eca2bcc5899fce41b8169d48cd57cf0c4a1b66a30a150072676",
+ "f12c9985d454ffbc899ebbbb6cf43e3debcac7f19029f8f2f35cce31",
+ "12fcb848adbd8b1b4c72b2b54a04d936e4a5f480ae2a3ea2e3c1baae"},
+ {NID_secp224r1, NID_sha256,
+ "74715fe10748a5b98b138f390f7ca9629c584c5d6ad268fc455c8de2e800b73fa1ea9aae"
+ "e85de58baa2ce9ce68d822fc31842c6b153baef3a12bf6b4541f74af65430ae931a64c8b"
+ "4950ad1c76b31aea8c229b3623390e233c112586aa5907bbe419841f54f0a7d6d19c003b"
+ "91dc84bbb59b14ec477a1e9d194c137e21c75bbb",
+ "f60b3a4d4e31c7005a3d2d0f91cb096d016a8ddb5ab10ecb2a549170",
+ "0440a4ab1e6a9f84b4dedb81795e6a7124d1cfdfd7ec64c5d4b9e3266683aa32a3c2fc06"
+ "8e62626f2dafce5d7f050e826e5c145cd2d13d1b27",
+ "c31150420dfb38ba8347e29add189ec3e38c14b0c541497fb90bf395",
+ "bf6c6daa89b21211ea2c9f45192d91603378d46b1a5057962dafaf12",
+ "cb6b237950e0f0369323055cd1f643528c7a64616f75b11c4ddd63c7"},
+ {NID_secp224r1, NID_sha256,
+ "d10131982dd1a1d839aba383cd72855bf41061c0cb04dfa1acad3181f240341d744ca600"
+ "2b52f25fb3c63f16d050c4a4ef2c0ebf5f16ce987558f4b9d4a5ad3c6b81b617de00e04b"
+ "a32282d8bf223bfedbb325b741dfdc8f56fa85c65d42f05f6a1330d8cc6664ad32050dd7"
+ "b9e3993f4d6c91e5e12cbd9e82196e009ad22560",
+ "c8fc474d3b1cba5981348de5aef0839e376f9f18e7588f1eed7c8c85",
+ "0466f49457ed15f67ed4042195856f052fe774077f61cebcb9efddc3653a6e3f3423eec7"
+ "308a69eb1b0416d67cc3b84d24f251d7cbdb45c079",
+ "5e5405ae9ab6164bb476c1bb021ec78480e0488736e4f8222920fbd9",
+ "7b7beaf9f696ca1a8051527478c4c075ab45aa4768937886dbf38618",
+ "93d4cf110a37c5a6f15c4e6024822118539e860dee2f60b8c3f462f6"},
+ {NID_secp224r1, NID_sha256,
+ "ef9dbd90ded96ad627a0a987ab90537a3e7acc1fdfa991088e9d999fd726e3ce1e1bd89a"
+ "7df08d8c2bf51085254c89dc67bc21e8a1a93f33a38c18c0ce3880e958ac3e3dbe8aec49"
+ "f981821c4ac6812dd29fab3a9ebe7fbd799fb50f12021b48d1d9abca8842547b3b99befa"
+ "612cc8b4ca5f9412e0352e72ab1344a0ac2913db",
+ "04ef5d2a45341e2ace9af8a6ebd25f6cde45453f55b7a724eb6c21f6",
+ "048d642868e4d0f55ee62a2052e6b806b566d2ac79dbde7939fe72577379505a57cd5690"
+ "4d2523b3e1281e9021167657d38aeb7d42fc8ec849",
+ "ec60ea6f3d6b74d102e5574182566b7e79a69699a307fee70a2d0d22",
+ "2fd7fcbb7832c97ce325301dd338b279a9e28b8933284d49c6eabcf6",
+ "550b2f1efc312805a6ed8f252e692d8ee19eaa5bcd5d0cda63a1a3f0"},
+ {NID_secp224r1, NID_sha256,
+ "4cc91f744ac858d3577e48813219aa3538dd813b186b42d1e6218376f07cc1cc448ddd6b"
+ "37240e98bf953f49cf54d65c12878b33c0bf6eb1c60254f0b6fa974f847e53abc56773ee"
+ "f6f29885dfc619e6a48fc15a667ca94001a0c945b6357a53221b0f4b266181456b0d2d25"
+ "e90708777f1a6f85971c00140c631c1991e0fd06",
+ "35d4bbe77d149812339e85c79483cb270bdac56bbf30b5ef3d1f4d39",
+ "047924b1d7f5920cce98e25094e40f2eb3eb80d70b17e14b3d36c3671c26c5af35f71e61"
+ "858582b7cc2b41790597c53ee514ffdf7a289d108c",
+ "751869c1d0e79eb30aae8fbfb6d97bfa332123fd6b6c72c9cd3c1796",
+ "26bb1b92b0f01e94eba5fa429271371db527ce857abba13bd1103f64",
+ "836aba9c63e1252c2b2d72a21e6a41b82241ebe32647e7f814652bcb"},
+ {NID_secp224r1, NID_sha256,
+ "58f43cc1924de4bc5867664adbc9d26b4f096a43aca47c27c52851b006dc2a658919ef9c"
+ "e5b5ac48372703be15ac51631c2bd84b88f479f113b0569a9a09e230ec1e8e573474c607"
+ "5284d3e57d973829af35325d9e7dab4a5f9b065155bbcaff3642a82ef4c9b9e127d3575c"
+ "050721653da3b087d3fa394192897a5519527d19",
+ "2c291a393281b75264c9b8817af684fa86a1cdc900822f74039dc5d6",
+ "0418cb5826ad60e6696bf07655032a3749f6577ca36da3ccd6e66a137c194e14820fe02d"
+ "784fd1363ff7a30399518309765bd3f4412d646da2",
+ "e2a860416229dfd3f5a5cc92344ca015093a543943a0d8f73bf2b2fd",
+ "00e300c1ef4a8c4ca5da6413856f8981db49de29bdf03f32ffc3ceab",
+ "f250f18a51ba5f63e1584097841099fa6ae4e98ee458c061d1d5aed7"},
+ {NID_secp224r1, NID_sha256,
+ "113a2806b052fde683ee09453098e402204155afb3776fd1cad3a9103421d327eab8f9ec"
+ "0dd050ffcc83f93b34ea707705fabeccfe43ab1a71c95298fd3ec769d99ead1066950eee"
+ "677d225816e0faad19cf69e1b35d16771689e2092cafe16d7c0dd7b0db73fffb8d0f3eae"
+ "d83004dd21e753530ec939c89ba25578fa5f785b",
+ "831ea25dbeda33d272a1382c5def0e83929170ab06a629eed6ee244b",
+ "04076518e393940d42dfd09819409d66966d8c9189c83d554a9cc8a08244d0ceaf4c0f50"
+ "e46bea4a52e30423ce3ada19edd363ac5694c65cb8",
+ "6be6dd9f6a083915ccba54626caf12d246d3aece0a7eda7d8d85599c",
+ "ff1460946e06fb6f5d35e8d2625ca70ffb9b45308e3fabf6ad8351b1",
+ "6029aa3990918e8cb8a388d53b0772e5cdfff49c3405fe0d3a95933a"},
+ {NID_secp224r1, NID_sha256,
+ "64cbfc8f2e2149a31b3e8a80c4a552f6c62aaeb7990b6e0ee55500a9d17be04213406578"
+ "caf315951086dff5c2af3b5ce17d425d185101ef26f86396ba3a129a4f3f8e2dd595f59e"
+ "fb6c0f5c2dcc394569d7268695e9ac7daa84203f1f1895f1f9e4b514a5c9cd23baa63454"
+ "710144fe735ad9b8f42d8c43267aa434a26d7e5f",
+ "70f74c7324ef137318b610ead8ddc5b964e0eed3750b20612fc2e67b",
+ "04279649e2a2918e683520cde3fc98b0ae58a7100e8de35e7c9cc797b6aa4de6be34be61"
+ "f02880139787b9038f4554a8ef1c994b887c2974b5",
+ "8e984864f86f7a2a73f3edda17dbccd13fac8fa4b872814abf223b1b",
+ "3b18736fa11d04e27e2614cda03a63ec11a180f357b0b3192920d09c",
+ "2f0f3dbd570727b14fbb29155538e62c930dd51c4035275c1365dc60"},
+ {NID_secp224r1, NID_sha256,
+ "a10a11c8e30fff118d371daf824f16c08200b83ea059436466a4611ccac93b2dea2de8c1"
+ "006f946196aef7fe9b0c251a391b0340f21797798278b412ff2b53842eec6450728e2bca"
+ "062f8337a2c204b9ea04ff660cd4d4db559f2f11c4d8ef199021339fcc82396f7a93926c"
+ "f5f247e37d8067fe50692de54f102bd5ab51925c",
+ "026be5789886d25039c11d7d58a11a6e1d52cb1d5657561f2165b8a8",
+ "043fa617c50b177da1a2bdb98b780ad21ad1195c4bd24465f6187de3c9e3fd8d8876dfd0"
+ "3a4a4e31a1acad3a08d983826d286c250c4e5620c1",
+ "0128b8e3f50731eb5fcc223517fc0cf6b96cd1d2807eb4524bc46f77",
+ "3a6b633f96f3d0b6d54f7fb29ac33709e4f0dd8fa0e51606ed9765ca",
+ "63e8c119dfa51784decd864f6911f2210a80f8f02d472d88df10d119"},
+ {NID_secp224r1, NID_sha256,
+ "b3f720bf566ffa369259f4361959ae0641d2755ec264a4c4349981df2b02563275b2b9ad"
+ "b5aee47f7a456760a971991ffed6b17809bb9694138d1677fa916123795239353158fc6b"
+ "22d10f20d26f5d2dcd8c56c44373eea5b93067dba2d7c5318dac2e9e8714873cb1b37f58"
+ "c011fd14fa1e535554efe05f468bfc8e11cd8b99",
+ "e79c18d935c2839644762867aa793201f96a3cde080c5968412ce784",
+ "04b7ae1e992b1c7fde1141f40bd913358538ca0f07f62b729f13cea327811252d12120e0"
+ "4805fc171a439d382c43b68a21e1a0bdf5e4ec1da4",
+ "7abedab1d36f4f0959a03d968b27dd5708223b66e0fc48594d827361",
+ "d35047d74e1e7305bb8c1a94e8ae47cb1591c3437a3e185e00afe710",
+ "d9c425c9d5feb776ac8952e6c4eee0ecd68aef2f0e7bff2e49c9185e"},
+ {NID_secp224r1, NID_sha256,
+ "0a398a46df7ccc48d1e7833f8bbc67100f1ef77a62dc78bbc115b2a662f9591fbaaa91ad"
+ "3d788e2fdd1b3164e45293d4f5686c151296901768028ac80ded4bf89c647ad35f0c7c4c"
+ "b318c0c757c1d83c44d850e5fd4677281b3f13b1ee54de79c8c042813f9d3312dcc6111a"
+ "68299cb7e829557d7f3d96e702f65aefc6499415",
+ "0d087f9d1f8ae29c9cf791490efc4a5789a9d52038c4b1d22494ad8c",
+ "04cd95cf8fb1cd21690f40d647f2353672a1076cc6c46bddaad2d0fc56934262f74d9ee0"
+ "f8a2754f64cb7415923d64bf00c94a39b52803f577",
+ "557d0e3995dc6377b3911546dd7aeaeec62a6d8f2af6a274382fc37f",
+ "56df0ea6afdcc232ceb41729eec00cf906b69b6e28423a36d3c92cc5",
+ "f4f70fd948c9a147f55317fdea7b8a84c33e721014552d5800d63edc"},
+ {NID_secp224r1, NID_sha256,
+ "8c33616821a6038b448d8918668977fcf1ef5aa0cf7c341837b39bbcc9bca875a3757f4b"
+ "392630e9995b9bbe4eb66978b877586adaa02f99d2344dae082a7603351d8ffcfca081ab"
+ "403cd0acb90d078dd1d0789c2eb3185c62bff2d9f04cd38e509e3b83c12ed0a5c6808fc4"
+ "2f7ba5b06acdc496c8ad9be648ee6a4505f8560f",
+ "0830aebb6577d3a3be3ba54a4501c987b0e0bb593267b9bbadb66583",
+ "04b88652020e083ccc1c43dc83d1881884dd4c7e3b4e3460b344b1ea6422b69b517f86d7"
+ "c26dc37c0f8feb4bb07fe876149fbcc3334fd2805b",
+ "e4f4a3280574c704c2fde47ca81ec883d27f2c5a961a294db7cda9d2",
+ "b30b8a0079d9a134b5e1618c2ac63e3fbe0e95866b9dbc5f423f2707",
+ "3dc36746610271ef66e0aa52cc2ccadc5c9b08dc769e4dc4f6538c11"},
+ {NID_secp224r1, NID_sha256,
+ "94d56535fd4edfe67a0daa6579f9d53bf6b7b8830ae2aeb62892ff59f18756ddf2811b44"
+ "9c7d20d65d54f8507de4e7c50eaa084830637812aa4b250a4d61ab67845be36e4a41cdc0"
+ "a70f8d6e3a63d4514f0dc197e6486015046a316153d5f3a3a4a0ae1ed7ea5fa55e12e73d"
+ "333333685c02e0eb636234ea7e6d4b76b4b76b5a",
+ "2acc9b97e625263e8e4cd164302c7d1e078bfcdd706111a13ccda5b2",
+ "04ce1a06f82df874dded37cca03b56c0648e4e8917ecd40ee73ee61588ceb6177b8f1ac7"
+ "c5c6e6e1f7737cc3026952ee392badd2cd7af32f9d",
+ "e401fa80f96480d437ed4f61a783888062ec33d530b188fd48016a6d",
+ "28674f447c4742e4087bbccfb522fbad4e18b56031d2ce8f532b078a",
+ "a5a7a13d15b423dd17771f73cea98d89dbffa846cc209b45c0e29b76"},
+ {NID_secp224r1, NID_sha256,
+ "5d8ebdf9eb28b47bdafaa36bf0b66a9eaf99b6c83959da4f2b1151b4f4ecd28fb115a64c"
+ "0cb9491093a7e9b9c53ec423e4c72e7765bb9c818da0e8c428667e44474a71db4867130c"
+ "77c40bfd8544b2d7b9d6464d2b8e6a48482153256a32437c3a747231f51134dd14c70340"
+ "7e31146a6fcde23bededcf16950486e90ca69ac0",
+ "f4e873d4fb944fb52323406f933815092b7672221de4d1c45917f3fc",
+ "040dc2cdddb990341adb1de73f02d87fc3822485a659a15145f4251d5fcf78b2a83c7352"
+ "eda1af2c74e1804ea04b35f76c04e89d90281dc2bb",
+ "5d1476c682a64162fd2fdc82696fc8cab1469a86f707ea2757416e40",
+ "82982b38ed465138df4018d7cfb835edcb591cb57446ca49d163782b",
+ "8ef1d7b326cabee7f7ab95b7b98d3c27a069c0fd95a1599c0ccb422b"},
+ {NID_secp224r1, NID_sha384,
+ "25e4416695f77551fdce276355528ccf1ddc2483821c5d22d751d50111ca2fadc6593b52"
+ "c74f4b5957494f1df25b0b2f86950d0d19229ec6506fee8581d2dd09d48418b146ff16bd"
+ "84a17ca0dc83b1888eb407376da6c8a88fa1e60b8c2a2471dfde4b3996ef673d5bde3d70"
+ "c434dc9f2488e9de16ae657d29e5e59ec922a1ec",
+ "62c572ee0d6f81b27e591d788bfc2f42b5105d2663078dfb58069ebd",
+ "04bd6ba605639b98fa8113a16a3bb004ddfaec901c98a931206165f4a5a3190b10ef39e8"
+ "8abd60b2293b4707512b45c6c5ed5794cc11454427",
+ "0f0bb1e428bcdebf4dc62a5278068efc0f8ce75f89e89b3630f102b2",
+ "aac0ea27e129f544abcc77f110e70bbdd5aa3e425dc39d5e8887025d",
+ "10e5dd06aee6b8419a04aa33d9d5678b0039c3acc3c4b61fe106bfdc"},
+ {NID_secp224r1, NID_sha384,
+ "9164d633a553deccf3cbd2effccf1387fa3177cd28c95d94a7d1a3e159c5e5c027758cc2"
+ "6493301b2f4d141d8d07a5fe5fead987ce5f30abeafcb48c302afc6c2309f0e93d9b6818"
+ "cbb6972d222cb7b01302dfe202ae83b89f53150ae4a0e2b8fc0fd1091f19b4ab2e6ab213"
+ "ab322d04f2c5f57113bfad3c5675227237abf773",
+ "e2f86bf73ba9336fa023343060f038e9ad41e5fe868e9f80574619a3",
+ "04f5d5346f17898ea6bbdfff19c216a8757a5dc37b95315f5481628381ae61fd172ac8b7"
+ "a4f13870a932dece465834cbd4f50bbcfb802c824e",
+ "35724ac043e3b44b73b5a7919cf675190306d26aa67c27c28c873534",
+ "535147c265af138eec50c7fb570bcc8d2e6f675597b0fcc034e536bc",
+ "743812c188a1dddf9fb34b90738f8b2e58760d6cd20ccceb1bb9c516"},
+ {NID_secp224r1, NID_sha384,
+ "019df05929321ecea7ee1de4f412aba1c8d3c24437db04b194a68a0a59dd871be10bd3a4"
+ "be6edf551350ea49fc7155a4d887e1221486291abe77a30633a4c4f7868fe2df24311cba"
+ "0c73804883954460e122387ed414111ff96ff1aebac8b6a6491d8a0d16e48a63bf3d027c"
+ "0f68ee4a4b234d73b412196706af8ea022b4dcef",
+ "b0a203438e2586d7575bc417a4a798e47abc22aa3955b58fc2789f17",
+ "04dc5d217862a1e5b00c95affa9d8b925a72b9beaeb7a86dc397e788d85f05f8e976ae1e"
+ "b1036eca6d683a82850795bf9127dee5f8b2859445",
+ "408e9c8b1f33136d6ddb93ff3a498bc09d4eee99bf69cdd5af0aa5a2",
+ "1b5a964c8b1fc634c6e2b82322499df1d7f0c12a4d2a77723c816ab8",
+ "cf54599a36ca064fae0aa936de5266f87704409d22a15d28c01b7f2a"},
+ {NID_secp224r1, NID_sha384,
+ "5d09d2b1d3fa6e12c10d8b26dc9aabc8dc02bd06e63ff33f8bb91ede4b8694592a69e4ed"
+ "4cdf6820069e2b9c7803658949e877ffe23bf90bcf5ce1409c06c71d86885a94048b05ac"
+ "0ec9db193e489a5a2bfa367caf6aa8ecdb032be366174343f6875d2fe1785e8d77334f5f"
+ "469cec64998e08d3303e5c9a1923b34fdc105d65",
+ "efcfa50fad6fb2065f9a55f28c0c42fa24c809ccb19b6fc6d8ffb085",
+ "0461521a0cfb72be77ba33cb3b8e022743cd9130ff49e97093b71aa178ce0819aedaf6fc"
+ "e639d0e593f8ab0147eeb6058f5f2b448231584ea9",
+ "d1eea821f286eae6ebc1f61b08f9ad4323a3787e94af4c32cd31351b",
+ "b37caaa71103752ac559f9eb4943324409ebfa8b585f684dcaa5c411",
+ "7c28e7619e2944ab4b7be022878c8052ebdf2cae5dff4f976c49686a"},
+ {NID_secp224r1, NID_sha384,
+ "50f6dfc81c6cf189e0a310f992907fe93356cee9dea9a41c7671a8daf3f4cfe0c459ce61"
+ "22c1e731dbf7593419d7114cb73b46956158a982c5d52c72f43f0f822046093c69aeff1f"
+ "7e4cd8af00ba655c5baa2e7b6a400b4be1f6fd51b3e4cfb35a69c80a28c5cafb771b6c2e"
+ "52e0aeef0e3fd045e8d40745f3f8b74fd969f816",
+ "61a17816937987764cdc064dc7b5b4f5b16db1023acdfe25902957dd",
+ "04a7e975c0a8f87c683bb8e31bc160843a7b69c945f4850bd60e1c08c08930a454dcc2aa"
+ "13bed7ea89368b2c9d689d816b2acf4e52585ee9c4",
+ "44b1fdec2629f9075f89c134ac28ff19bfddaa9db02a5d7f853582b4",
+ "b0f5635d8bc9c53a1d54a3ec63de59ed66e6b2358d4ab79755414326",
+ "67c68fe265c7e5aba4232deeafb88545a2aa266fb9f2c2bb3f3ae8d2"},
+ {NID_secp224r1, NID_sha384,
+ "e90129ac6672c85bb7b6b18e9dc199c96c81fd65034b53c77818364d512366fb9cd1bc7c"
+ "82404c451e561fc1ed916c0948f6ac561b33a1ccca093f07684b8c2bafa9e966377bd208"
+ "556018a5bafb9edcecf70498c7140fe9c8cf3ad8b8c3b0aa489df797944465047465415b"
+ "b0e24333235fcdd59a98829a3941eaaf62033e82",
+ "79d5367314ec664aa0f6ca36f95549502a05bf8400bf532d669fab8d",
+ "043191f0237102dac159032ab2dde53cf56c9ec827b5caddfe9e83c02ab496b1bdcca443"
+ "4ac0d0d91ea38ff3bc33f9f54095bfe17796d5a9e2",
+ "da529c52f5cc1f435d873109cd991d6cd7e1631d9ff1dd9521dd5db6",
+ "8e0ac63903f4921755430572c3f08bc272790639bdf1009fe2a9a714",
+ "6278c841a2d0a270791fe54b36c49d426d67907aa4e4f59c8638ad97"},
+ {NID_secp224r1, NID_sha384,
+ "3c9a483c9bee33b601549c592a82e95b4319b1e74b777877f0971bcb4273716b268e8f99"
+ "f876e42f942f4cf08284896bbc1ffbf094ac0956c3cedfc3580cffa8c74fc6db29a371f2"
+ "da2d05edb9185ece741fe0d3fabfe9d5b4d373755ebed13dc6840cfa3283b9ea46ec8b95"
+ "c434f253ae86998182e9cc0e95ee64f323fc74b0",
+ "1320eedad4745121793a7eaf732b0b4498f7cb456cac8cf45a1f66f0",
+ "049fdd99906ab77fd29e9021bde947d05a7a9eb153612269bfb0899bc9681b65b9ac8e4c"
+ "2899bb622dafb253b7bf5a6e38e5f6595f997c291a",
+ "66ed8d8934633f4125f593cf1b1d3745c4db1f15dde60cf46ca1c7f2",
+ "80199485a3a96447b39f7679cd47412a78675ba17dcbd10465dc5b48",
+ "a251fd9f136a3cb0dd0bc80659ae032e4a761ba7045da0034553fb8c"},
+ {NID_secp224r1, NID_sha384,
+ "bfc073fdda63c5fccaa0ca8770c293e8154e7aec56128bbac4fdbd541d602216ebf7ca1e"
+ "02b514d6e396f20683802ba3f334310a9226576926e3bb19ceee27738d13377cbafeb09d"
+ "091043501702a07aa31d1f29d50ddc55adcf16ffd40578e734a4e6cb6535f26ad48e0c62"
+ "ad90e79720000e87d419e92dca3e11f943655b03",
+ "e18821329447d3f65ba7279e96bd4624ffa1b32b90f6e8331b1e876d",
+ "0446c9ed837232c47022df2f1a1578fbe65ac9f2e81c98a74cc22ea31a6fc5e9568ae62b"
+ "31412a0b0b367242e9fd7e518c83aa06a069e1d90d",
+ "a4c1eb402a2fb3af26e0e14a3d2fc8ed3bc1a8b2475270356a79fdd3",
+ "d478b68733d8ad44be46766e7b66af782fbdc7ff7ed0b191176da98a",
+ "5eae9160ccf71fd1d359d89cecce72ef8afaeee2365f6ba828aa450a"},
+ {NID_secp224r1, NID_sha384,
+ "08079955d1a1f33728128c73673ec9f21a6ce138dcab5adc4dc068e6ab57314b9fbd8b01"
+ "3123b2fdafa9524fbdd0288777a233de8055cccfad83046ada6a19f01c47817496667bba"
+ "8fc8b9456fc0e044a562d931dab1adcb66af8b66325bdf28d83ded3e2937958ccd19da54"
+ "0d70ef2c189f55a506c9c0d63406394c5bd3823b",
+ "f73e030d5a696b358986d3efaca121cf71f775f8835a21e6135145d7",
+ "049ca2c6ea87ac8dd3a23a5b4010841a7c8af309038882ae44634bcf55b0a347dbd5ded3"
+ "b8702ac5a457e8b32bd4de06fd315095fa1b7d5fe1",
+ "e3cc786c1288ea567836c51d6d69dd0cab5c015987d936ccc3a4beb3",
+ "f1234da71761b7a0f49e661a419d2a739bdc4544bf87690e3d2f96db",
+ "096d16bf8020c3d3c233894ad8eb81206010e62c6e692a215e088fd4"},
+ {NID_secp224r1, NID_sha384,
+ "23900b768f6cd42b8a8df0dcbc9cb5daec8de36b9d5c619adcc1ba2b649103d5af123746"
+ "cdf19c3fd0665a6fb9338156182aa06181e3c6e37ce56979612af2927440424f89cef43f"
+ "c754854b8a5c43370808cf5f9929cf47712512ce2f8a2a20d2e9f568c2848b27dfbe0914"
+ "2843c83905ffa5da3b15501761b03dbc2c5398b6",
+ "7a0789323f8741c157a1753ae165ecaf8e8b03a60561f8b80cee467c",
+ "04101271a9addd4bd1f19d00bf116c8524f52cefd598e85dc381597acb2f17d14f4d8ccb"
+ "28b216553718152ba7c104646d8eca986dd9ddea39",
+ "d169f04f05b60c625cda864d187938863964dab7bb3b9dfc04b05519",
+ "e4a51be686a764b709da23ab48b1985e153c6ee238d945e743907afc",
+ "118a8f1ffe3cd556ce6345bd1a398dd9cc3729b7fd6d8af9bfd82f40"},
+ {NID_secp224r1, NID_sha384,
+ "1eb28c0bcdd18f73e347f957ece15b4cc83a771b0877e1feaac38e24028fb38ccea8b54e"
+ "e017dc7c3d5a1327bc6f40b294aa65d7dc487f278846cd101ee84202f14b38aa2c275046"
+ "aa2577f65ebaea41cd383e8def2fd0b4444dcf426fa75c4082cd7fa035cdb1e0d34a3c79"
+ "d42130f5b0273eae75bc701dda3aebe7358f41b5",
+ "78e795d0edb11fd9e28dc26b21e751aa89bea0d87932ef11c95c0e18",
+ "049edd544107977134bf6360d43ccabb3c94d627c03963c0a04b439627ece4c61d319a0e"
+ "41f3de7863e7c355bac94395aaa74cdb5f74a87a5b",
+ "36f7c0f76808b826a0a974a1fd6e155e00a73f1d34674a8f88be405a",
+ "3e319444438bc2cc92f323ea842cb402b3c3c2448c89869ef7998edb",
+ "3420cc38f058f41c31e71f4b1ad488f801111c73541de69fcee60695"},
+ {NID_secp224r1, NID_sha384,
+ "efab51855407438fd5c250670366bca3c026ecec4a59394f00d8a4b51746d0c456436665"
+ "6d507e3e13e62fe7abeb976b8859895848dbaecf6582f1898ea06f00d4247702ed9721bd"
+ "375aa83ae4c67c2eaa6e080777ea5ecf2cf787d785389560ac91cf63a52f0373c3185e18"
+ "a3b8a466e21b61a239f1b77624eb1acacc76c4e1",
+ "bee02d8bc5bffb3fd3b4c9d6f686409f02662d10150d1e58d689966a",
+ "048848f964c847fe9dddc774618d4588c9cd56bbe588d7b1fb369c8bfaebbb699fbd0dc0"
+ "8859fe9132285fe20dff3b9d561c0640b6e0717607",
+ "59f1450d857b40e5552a4b8cd4ab0df2f01716635d172c1106840f21",
+ "a206d8398a16a991bc217f77f23c6f648384f254f255a8a876404444",
+ "eb1169cb5b1423dc0bfaffe565ae57f986e00de06405e3e7b605862e"},
+ {NID_secp224r1, NID_sha384,
+ "31c29ca10279a417f0cc9b1382cf54dbfdfc89f2e6ef08c403c11f580cbf8674b141ed1a"
+ "417563282d99a55fc616d836421cde9424815c95e7fb7668bf3f137b29937f14882d74e0"
+ "34b732d78d91af7721aac4950734f5fa5d4b4d35534974f8cab6d2e6dca75ddb57e99148"
+ "c8a59df9fc5bcd723e546e8356f671cf2f65640a",
+ "dc0ddf6e501418bb8eafc5d7ccc143369e2aa441df8fc57d5f94a738",
+ "04063a5d632f4144376e14cfb03ad8ccf1489b613acd184d20dff66545e77727f057b043"
+ "d8a0f7458196b72e92d11f85b0891c6aaa9d915f58",
+ "ff0e5cae2671db7a1b90e22c63e7570bdd27352d45bac31e338debe0",
+ "5bc0b4998481ecbd3b6609184a84ca41d69b08c37138097f559259f8",
+ "0df8828eb1ca85e46405b94e1a2972c34c5e620a54e2f640f04aecc5"},
+ {NID_secp224r1, NID_sha384,
+ "8db476f92e332519c1a0ece5d8deded6efbd2d8e8784eea0a6b4c3b4296c35f5f8de4317"
+ "e5c1627b91fb1973fee86c06e4992aa5a20cb7475c8808ff1da354d07a488dffa7838c6e"
+ "c1e3f99e3acba831f27bee8434eeda3eb36d0c6df3658883cd40068b1bed841310f6eb38"
+ "d4a3d07d85848770ff7933c054cd8b34662660b1",
+ "229d89b2fcf8441ffc95ebb2ac2ef156e25825782044b2b8bd6a3e01",
+ "04de616848d8044a44789ef1ba3a6dd66fe9257ddc57f7534e59a701be26cbf74a6d25e5"
+ "b34b96d30f327abd574cff7f7dbe6686573a7d6c5c",
+ "3b18ca6ec8e8e255ac88f64302745ca0b73ff94b2b2d48be95b4aaee",
+ "fa94fd8b827c06115c1eefd50afc02ce5926ee0e789667783c01c34b",
+ "edf766a66973cfc33e4159966c07321a7f6549c3c60e8586ef41402b"},
+ {NID_secp224r1, NID_sha384,
+ "fcb272c828fe8fd3c6f8de9410c7b6e2b36717c1b0e5e359e9109bd7fc378978aa98182a"
+ "9d99961898ed88999b050d3b64d1457d7a899d6d273b9f4dde2aafa36d76329d62509043"
+ "c338f265fc4c7d938459b7fa3b230a9f6cb632b61489546bb4181a5ad7f0d7369b8caced"
+ "48eb374b075b2b325bc86add0f3b680cd9e80acd",
+ "97d747068147c0393a0bb5c159e2c9f1bd538f6204823294883abe28",
+ "043858a576eef2ce24d01766997fb81b3f3f78b6104cd188610be221d795ffc677ac7bfe"
+ "3e0bb4cffb17355a964c8356a807151b3cba5d1f4e",
+ "c1a2ec1ef16cfd5107c892790daefbed061be78bd8576696b60f64d5",
+ "18c908541843fcdac99b9ff6bb397f3f8094d16b42670216e4eaa2d7",
+ "c107a8a508ff57c5d4f78f86cc37e129c864d1c44ed5e73909613b74"},
+ {NID_secp224r1, NID_sha512,
+ "7522492bdb916a597b8121f3e5c273b1d2800ef8c1db4f7dcbae633b60d7da5193ba53a6"
+ "3d7a377b351897c3b24903ae1cd1994211b259be3e6ae2cbc8970e4957fdf782c7d1bc7a"
+ "91c80c8ef65468d4ef35428f26e2940ae8b0bd9b8074236bf6c00d0ebe83f9ddb2ade0f8"
+ "35138d39f33b59f244e0037c171f1ba7045a96f5",
+ "ba5374541c13597bded6880849184a593d69d3d4f0b1cb4d0919cbd6",
+ "04ac635fe00e8b7a3c8ef5655bdfb7f83e8532e59c0cc0b6534d810ffa1d067aebeba66e"
+ "79b28ecfe59ac6fdf5e1970dc3a84499c9d90cd8e2",
+ "187ed1f45c466cbafcd4b9577fb222408c011225dcccfd20f08b8d89",
+ "f83d54945997584c923c09662c34cf9ad1e987da8bfd9be600e7a098",
+ "4ff2dba9dba992c98a095b1144a539310e1a570e20c88b7d0aa1955c"},
+ {NID_secp224r1, NID_sha512,
+ "61097114ff855c3e34a62d9b853f8982d35f29cfa4a89893badbca7849e5fb437a1a38d6"
+ "451bf0ca5a0d528e352b8e4b57f2ea359a7fc8841d49dd3e570f9b016f14156b0bbc4be8"
+ "22e260bd147ec081454969e11cb0034b7450ef4deb7ed6edb977e2f4ed60121aa095fb0a"
+ "b40240dc329ecc917f5c64b4410612af065ee9dd",
+ "1e27187134d0a63542adf4665fba22f00cfc7b0a1e02effe913ceedc",
+ "04ecaea8ceea55c3bd418fd34a4ff2499e25e66a104eed846bc00c31d23933a356ab1f2d"
+ "abc303ff0a5d076131e77032e6f502336883bf78a7",
+ "34cb597deae9a3b1cada937abcd247161b19b2b336b20e2e42ae01f1",
+ "58177ba46fb291490b39368774accf72736412c1fb5ee0f27b9b1e02",
+ "58337d78b95a080bfcabb5809bee012501b4da84b8ef310a4628f11c"},
+ {NID_secp224r1, NID_sha512,
+ "dd09ae6c982bb1440ca175a87766fefeacc49393ff797c446200662744f37a6e30c5d33b"
+ "a70cbd8f12277fd6cc0704c17478bbab2a3047469e9618e3c340a9c8caaff5ce7c8a4d90"
+ "ecae6a9b84b813419dec14460298e7521c9b7fdb7a2089328005bd51d57f92a1bcbeecd3"
+ "4aa40482b549e006bbf6c4ce66d34a22dda4e0e0",
+ "0905b40e6c29bfcbf55e04266f68f10ca8d3905001d68bb61a27749b",
+ "04d656b73b131aa4c6336a57849ce0d3682b6ab2113d013711e8c297626328335ffc2029"
+ "afbfe2a15cc5636978778c3f9dab84840b05f2e705",
+ "dc82840d147f893497a82f023d7d2cbf0a3a5b2ac6cc1b9b23e504be",
+ "583af080e0ec7c1ba5a491a84889b7b7b11ccfe18927c7c219b11757",
+ "b23700035349df25d839f0973bef78a7515287de6c83707907074fa6"},
+ {NID_secp224r1, NID_sha512,
+ "37a73e2774d3b274db426c89b945696daa96035031f72cea01894b24508c7f81961ec254"
+ "d36ed6a0f448e11cf7950af769dc6cd2c47e52c6caf0ea92c270974f0214b4db436c36a6"
+ "0fb722060a6bb544462a82e1714f5906ec32886f7d59ebf289541c3a00ec1e004892ef2b"
+ "1286a0194f55d083c6ec92c64b8fd1452e1c68ba",
+ "afbaede5d75e4f241dd5b53220f3f5b9c1aa1d5d298e2d43236452dc",
+ "04fe83e59fc8ea8b939355d3258fe53a64d45f63031a0716b7cc416173f151d23060f1c8"
+ "56eb7f1f58be72a7228c3af89e43b56e9695b558c7",
+ "0fbbe7b40136c81a8fb894498d5502157a1cf5a89d0643de92cd38f6",
+ "24f3f457c7b72b7e759d5a8afbf330e31c5d8d2e36f92c0e79c5d87d",
+ "36fd1193def34f12a960740fd79fb38bf2b480726ccad540eb42cdf8"},
+ {NID_secp224r1, NID_sha512,
+ "9dc2046ffdc6804544db964481abe5d2d276a2a9eeec4c7ad40215b1de23561d402db69b"
+ "d0f6eec2254711eea4487c64d9a6b62c3ebaf5ffa8db6e7e3a6e17154d126967a47a853a"
+ "6f8339bdca9be306a13c7f992ded7619b0da59909a49b1e0930360e05b47f18628a36d69"
+ "b2f87f2bfddd6a5d4a72f84dc76dbdd43f3a6a35",
+ "950b07b0c2b7539a21b5135bfede214733f2e009647d38d8b21d760c",
+ "04f43d13bbfcee3b724063b3910fea49fd591b81e86fdb813b1a492d0c6b4c8d6fa5dc66"
+ "1889e3cf5ec64997a78222837885f85d2fe9b684fb",
+ "83e110d0d1e700d2f36543028737d2a2f1474aa3b4b28998a39e4793",
+ "2685265bc878e85d10ab13293dec190881a57c4a467f8fc2170432ea",
+ "80a347bb49036522369339bd6485a967cdda818915d8eb947302fcf9"},
+ {NID_secp224r1, NID_sha512,
+ "d9c6847fce688c5e7525a1098b545cb6c15dcd21a02761fc82fc664372a667390680135f"
+ "91c01a2fa5430c634b1a6d1cd6002d8aa021e7bf5956a7901c2f81bc25d502ba5f55a55f"
+ "30c0323dc68205cbefec0538e68654e7b327ac1743641896c3e740d8f66f400902b304ea"
+ "faa4e0d8cffae140536f0922444cc3216a675697",
+ "015bd9f5dfef393b431c3c7fced24385d861ccb563542574a5d2a9bc",
+ "04e868690641e2cda13b289a6c5d2fb175940396044d9cf27b4f2240af4c78c9abdf2b7f"
+ "c67ed4497001d7bcf1daca1739dc14a661f91d7c40",
+ "e2374350f47c08f3c1359d4edf87e61d1ba4e7dd1540d8d9062efa79",
+ "e12dc088d2bc032bb214c77d0e0fb749fc8e61ebe1ed72996f1084b6",
+ "0ab58aa31e0bba5fbc76855e6549f1036fba0a589aeab978ab01b8fb"},
+ {NID_secp224r1, NID_sha512,
+ "69df8a01b66f04930efd2012ff2243874f256ca8758145d2a9e4ecc84d0dbdbd0dc494ae"
+ "06db0ccbe819918137c90957114558580d6623efbafdd342b38dad9f08708084d32f874f"
+ "ba04782ce26aaab78de2102ad171f8a8f2b30b5bd3d55fdac5fa3acd6f7def7e61c25339"
+ "38572b331ba6d1c02bd74bfdbf7337ade8f4a190",
+ "0a3c259df933247445acffb6d8265b601d597fb9997dc2a1eb4deef4",
+ "04e67f4385a9da54253cc371ee9bc6739ae6385a4b87669c7baf0c460d2bb00b6ddd7b67"
+ "d9ac5653ec04ca8529fbf16f815c04da3c2e58e82d",
+ "8bf5859665b6a23e6b05a311580f60187ba1c4ae89e44877fb48af66",
+ "653675fb993c3fa9e57b32e33029ec230b966e8077c72c1ec90ddefc",
+ "792723bf87e315147cd4303de7f1dfe95cd7658ebb95c38c1a196140"},
+ {NID_secp224r1, NID_sha512,
+ "927524982b8d60777c1105c86fac05f634abf58c73f84fb95d81ba0b86e1e43592c4fcad"
+ "2e395a40fbe7005697d86088e2fb3bb7287eb3f917d4f2dc281f5cbe65d05b4f9623bca8"
+ "49b10a03beca6aa2056a12ebb91cf257ac448c5e9a78f8349a6a29b17c8978bef43a443c"
+ "bb8a149eb23f794844fc41693f2dbb97181444be",
+ "a1c8ef463f9e7e3dd63e677412f87cf9ea4ac9a6a2dae629da5b9916",
+ "04400e5cd4b315ceb309545cd3277acb70bdae2073fda6ad896ea14b27fbe1d2466cd2e1"
+ "16f38248bd5cabaa6cbe6c4a2694d998abd7b0c991",
+ "82f55a25d3ed6e47c22a6eed0fa52ed0818b87d6ea7950281dfefc09",
+ "16305a46a3f6f9e216ef8f6a6f5f0760d064a885657c864e1c1ea035",
+ "58fd97050bfbca6f87e64e1458c4ad80bae26e280356da344ad3b25d"},
+ {NID_secp224r1, NID_sha512,
+ "5f9042283561e7f19a436d01c7ef5a950a6d77ede5629cd7e43c0a5d58e8c5673c37945a"
+ "453291d12938253c71dbe12c8b022ba7276eda6be034ef5ec1ec77dbd1e08f0d7b8e7725"
+ "b7ec671c075e008a20f77f4ab266f97079b0aa6337df59a33b881954084057b21f294dd1"
+ "4bcb0869a4a6f1f597955ec7bf9d19bb3537a66a",
+ "fa511dbf6fef7e5e9c73e4555eb75d435f7884322d9faf5d78cacc0b",
+ "04e8dccd706c31f895f2f261ab979cbab51b8ae28196bcc12a42046380ec246be8e71ea3"
+ "859cb717a59990fe22e4b76858ff49becd70739a01",
+ "a37d665fe4314aa4cd03eb8e6a1f366b43e11fdb419c96b48f787b62",
+ "05e4909bcc172ab4140be291aad4660e375032bce2d762b6269ba764",
+ "e347a1c9d3670690e1d8d1d4cd9579848f442199c10526488da5cebf"},
+ {NID_secp224r1, NID_sha512,
+ "c2ae5573d3bf396523bfb703db8502fd0760cd1be528f6ddbfb95aad399e0b19f3bd9e0f"
+ "abdb05d49e3f893dffec5b627c9c2f7ad5f32e92e4e27a38cb5c28657657377fdfa1b66c"
+ "d7ac3d15c6d49df92d284db99f69744f37dc7cb4e7d52920fdb200a7942623a7057ba82e"
+ "467dcccaa5da416b48510d8364446a6a5e2a5aa8",
+ "a58bd53646400a646f0e4208320dc679a9664d1c6bfb27fdc8eac7ea",
+ "04e22e0dc4ecd96eb0071b72ba4b4988bf784f3fe73cb81bfb93d9ac4fb3e213e518bee1"
+ "367a4fb3703b9008bac9d95a1fc4aa61225fff9f3c",
+ "42c5b6f87d3bb1ed74f5ee8398d8f8c61e9e50ffa7a1da12d39893f9",
+ "5c0e5c6f057de1e99ef5d237a60d7a07fa9a42b120a82f573d9fb7b2",
+ "2fffc0bf550bd2f650fed085a84501cacfa6a1bb984df1f9237eaa59"},
+ {NID_secp224r1, NID_sha512,
+ "03c1a1cd30a039d0dcb22fee2450a7fa79495a0d0f4f43d2de4d75bce003c0334a8860f5"
+ "c164dbd94888a9f751235a3e570d31070e3e1293a7be616af7176600585d36ac01360015"
+ "7d2569d491da4b8a3bf3630c26e0b9925412189f50b0ae6f04c86477932e2ecd8c354610"
+ "6ae1ebc684cc3adb27ed665eddece886adea4ce3",
+ "64bd4452b572cc95510ac2e572f41136299ff17f6e8448f4ffb571d0",
+ "0492521fa25c2e034d127e0921efdb167f0b2ff8b20504487ed87fa264e72c770e37375a"
+ "d7dc2c4e63e5701826f6606f6ffb9461ee61b4e872",
+ "eaf76ee4d7e00d13d8a6d03dffd07ad9a8bb6dc8176c9f93059b1b7f",
+ "cf5058e2a6cf5e61a138b013eb292f38a1b9f07239ae5941dbce8919",
+ "d14198621650d985d270bc997da6e78588fd0ef843b874c66a3de3c3"},
+ {NID_secp224r1, NID_sha512,
+ "888f6d9bc7c86c0079fbfd42d8c08d6958f40f6e570fb0b1f03d2f8f8a63df4fcc87b379"
+ "a222cf835820a999d34996e08961f13b86b075e7fd1c303cd3baa44de42168561589012f"
+ "7e5300da4f8bdf470c07119a5d9f7ba7293568cd7c6a1b7fc1e41cda40bed7d46e5a28af"
+ "67ae2aabfefe67a86a1c601e6f5ee543e09bd7b6",
+ "7f3edb710df9d982f486233d0c176aa88f5a0ee81efa9b8145020294",
+ "04e7611e013e7b43ff5b8b57ad83333bffcc9e469ad23070b5791dc5947784da0a11dbe1"
+ "6208c6e0b6d5029e71fbec4dffc9fa046d3eeb71c9",
+ "94db7ef9a232593091eb9a74f289529c7e0d7fef21f80b3c8556b75e",
+ "a971f45bab10b1d16d7234ca8e4ec987da20d9e867f28aa063296e23",
+ "e38c538d65a7e1a28fd3ec53f015a7e5beb60e9d309f1e3ba4b2c3d2"},
+ {NID_secp224r1, NID_sha512,
+ "48453340f1317769e6ee6e103153714365731163dc18f84e9f2fa4b120f9c5a9645ee2f9"
+ "b66c84c26d95912b422b009b64af96aa418b2427a4209f2e7513ba8e43ec8cf20b34e752"
+ "9b22eb1199545afe9a9f7d9bcb320aec9ee0162f91c0d1dd9674c9c284f25199c5e109f6"
+ "f84d7ed0d269cc6413edb81bc2c83e37d644d8b9",
+ "b569f8296ff1d9cc01fffd9919016e5730c1858bdb7b99527153751a",
+ "04242f34959516a4706172f7dede23110efa314bff22eb320ab88feeff45e3227710900a"
+ "8acfc9bcce728119d042f64ca40876c2b380ee46e0",
+ "ae61523866a8f43e6cdd42ba27a34ed06527e8a5842901a64c393f76",
+ "c2732a4e0815f9f785500e80147e9486994446beccf8a6a352b97585",
+ "6ecaece6487d7920e398f7f951ab7c7aba5832dabf03704106ad1244"},
+ {NID_secp224r1, NID_sha512,
+ "4bdfd3b91d83108409ad765b256e0c9b9937ecf647f8e6f9fc807e2e72af8246178b3fe0"
+ "46b4ea10170450d71a4eec790ecb05f03d7077341de26c4db7eeae24d55c9a9093e837df"
+ "db38168fe8230cb9605825a1282fecd741989bfcdb34678fe077477927f66bd26d003e5d"
+ "da22043341a14dd31841ba483ad5ce2701e0f68e",
+ "41a4dd8eee39232b728516e2f21e66011e7426a6b25986c3ffa237e4",
+ "04c32988171caab178bf50dc7310bc7f604df5a9d19a8e602519c72d8af8985d112ad9de"
+ "05969e5364d943c1cc5cd198359f4c62b19da0e117",
+ "827d4999da81fa920c8492ccc1e2d5cdafed9754cf7382a859952071",
+ "89c61da7422ccd676baec07e2185c12e947a2374eede87847304be6c",
+ "2685379624717ea28422e8d001c090405a130b4ef9f1ac726c3ca502"},
+ {NID_secp224r1, NID_sha512,
+ "e6cdee8558bc1eacc24e82f0624ce8d02cc8d925b4dd3dec3a72f4a4e0fb76076bfa3ef2"
+ "e2c33bdd7c27b322bdc09bbfee8fe46f75dbd7bbd2af09690b7137943efe21706e0a1b6d"
+ "3089540fc58d85ddb55ea836616db573e36c521be008893f40a0a7c349602cc178ea43be"
+ "59d31ec6449e7ff2c5379379f7d7645134df1bc3",
+ "67fa50569257c8cc89ac0325db4902003a62f30b917f53e4035a7e04",
+ "046773a0436a9c42635730413b19aa4166f08c69c0e5002953da42253b555138290b093b"
+ "f2fe79acda9131d920cd1e7ac43fb8775776cd713c",
+ "557cb45fd3a30b3bdbf08c56eabbd4478736024aaa52bf8448096453",
+ "8e92cf7a674aa5f7542dd95c695589a05747431692edd04804299b8f",
+ "af4908b41f8180b71a6ff10fd51f3d143147af6ddddf7534d3284ed9"},
+ {NID_X9_62_prime256v1, NID_sha224,
+ "ff624d0ba02c7b6370c1622eec3fa2186ea681d1659e0a845448e777b75a8e77a77bb26e"
+ "5733179d58ef9bc8a4e8b6971aef2539f77ab0963a3415bbd6258339bd1bf55de65db520"
+ "c63f5b8eab3d55debd05e9494212170f5d65b3286b8b668705b1e2b2b5568610617abb51"
+ "d2dd0cb450ef59df4b907da90cfa7b268de8c4c2",
+ "708309a7449e156b0db70e5b52e606c7e094ed676ce8953bf6c14757c826f590",
+ "0429578c7ab6ce0d11493c95d5ea05d299d536801ca9cbd50e9924e43b733b83ab08c804"
+ "9879c6278b2273348474158515accaa38344106ef96803c5a05adc4800",
+ "58f741771620bdc428e91a32d86d230873e9140336fcfb1e122892ee1d501bdc",
+ "4a19274429e40522234b8785dc25fc524f179dcc95ff09b3c9770fc71f54ca0d",
+ "58982b79a65b7320f5b92d13bdaecdd1259e760f0f718ba933fd098f6f75d4b7"},
+ {NID_X9_62_prime256v1, NID_sha224,
+ "9155e91fd9155eeed15afd83487ea1a3af04c5998b77c0fe8c43dcc479440a8a9a89efe8"
+ "83d9385cb9edfde10b43bce61fb63669935ad39419cf29ef3a936931733bfc2378e253e7"
+ "3b7ae9a3ec7a6a7932ab10f1e5b94d05160c053988f3bdc9167155d069337d42c9a70566"
+ "19efc031fa5ec7310d29bd28980b1e3559757578",
+ "90c5386100b137a75b0bb495002b28697a451add2f1f22cb65f735e8aaeace98",
+ "044a92396ff7930b1da9a873a479a28a9896af6cc3d39345b949b726dc3cd978b5475abb"
+ "18eaed948879b9c1453e3ef2755dd90f77519ec7b6a30297aad08e4931",
+ "36f853b5c54b1ec61588c9c6137eb56e7a708f09c57513093e4ecf6d739900e5",
+ "38b29558511061cfabdc8e5bb65ac2976d1aa2ba9a5deab8074097b2172bb9ad",
+ "0de2cde610502b6e03c0b23602eafbcd3faf886c81d111d156b7aa550f5bcd51"},
+ {NID_X9_62_prime256v1, NID_sha224,
+ "b242a7586a1383368a33c88264889adfa3be45422fbef4a2df4e3c5325a9c7757017e0d5"
+ "cf4bbf4de7f99d189f81f1fd2f0dd645574d1eb0d547eead9375677819297c1abe62526a"
+ "e29fc54cdd11bfe17714f2fbd2d0d0e8d297ff98535980482dd5c1ebdc5a7274aabf1382"
+ "c9f2315ca61391e3943856e4c5e616c2f1f7be0d",
+ "a3a43cece9c1abeff81099fb344d01f7d8df66447b95a667ee368f924bccf870",
+ "045775174deb0248112e069cb86f1546ac7a78bc2127d0cb953bad46384dd6be5ba27020"
+ "952971cc0b0c3abd06e9ca3e141a4943f560564eba31e5288928bc7ce7",
+ "a0d9a7a245bd9b9aa86cecb89341c9de2e4f9b5d095a8150826c7ba7fb3e7df7",
+ "b02a440add66a9ff9c3c0e9acf1be678f6bd48a10cbdec2ad6d186ffe05f3f2a",
+ "a98bea42aec56a1fcecec00a1cc69b01fcbcf5de7ac1b2f2dcc09b6db064f92b"},
+ {NID_X9_62_prime256v1, NID_sha224,
+ "b64005da76b24715880af94dba379acc25a047b06066c9bedc8f17b8c74e74f4fc720d9f"
+ "4ef0e2a659e0756931c080587ebdcd0f85e819aea6dacb327a9d96496da53ea21aef3b2e"
+ "793a9c0def5196acec99891f46ead78a85bc7ab644765781d3543da9fbf9fec916dca975"
+ "ef3b4271e50ecc68bf79b2d8935e2b25fc063358",
+ "7bbc8ff13f6f921f21e949b224c16b7176c5984d312b671cf6c2e4841135fc7f",
+ "04f888e913ec6f3cd8b31eb89e4f8aaa8887d30ae5348ed7118696949d5b8cc7c108895d"
+ "09620500d244e5035e262dea3f2867cd8967b226324d5c05220d8b410c",
+ "21c942f3b487accbf7fadc1c4b7a6c7567ce876c195022459fa1ebf6d04ffbaa",
+ "2e6cc883b8acc904ee9691ef4a9f1f5a9e5fbfde847cda3be833f949fb9c7182",
+ "2ac48f7a930912131a8b4e3ab495307817c465d638c2a9ea5ae9e2808806e20a"},
+ {NID_X9_62_prime256v1, NID_sha224,
+ "fe6e1ea477640655eaa1f6e3352d4bce53eb3d95424df7f238e93d8531da8f36bc35fa6b"
+ "e4bf5a6a382e06e855139eb617a9cc9376b4dafacbd80876343b12628619d7cbe1bff675"
+ "7e3706111ed53898c0219823adbc044eaf8c6ad449df8f6aab9d444dadb5c3380eec0d91"
+ "694df5fc4b30280d4b87d27e67ae58a1df828963",
+ "daf5ec7a4eebc20d9485796c355b4a65ad254fe19b998d0507e91ea24135f45d",
+ "04137c465085c1b1b8cccbe9fccbe9d0295a331aaf332f3ed2e285d16e574b943bd3e8d5"
+ "a24cd218c19760b0e85b35a8569945aa857cbf0fd6a3ce127581b217b6",
+ "343251dffa56e6a612fec7b078f9c3819eab402a72686b894a47a08fd97e6c23",
+ "775e25a296bd259510ae9375f548997bec8a744900022945281dc8c4d94f2b5b",
+ "d87592ceab773ae103daebbb56a04144aaccb1e14efc1024dc36c0e382df1f70"},
+ {NID_X9_62_prime256v1, NID_sha224,
+ "907c0c00dc080a688548957b5b8b1f33ba378de1368023dcad43242411f554eb7d392d3e"
+ "5c1668fad3944ff9634105343d83b8c85d2a988da5f5dc60ee0518327caed6dd5cf4e9bc"
+ "6222deb46d00abde745f9b71d6e7aee6c7fdfc9ed053f2c0b611d4c6863088bd012ea981"
+ "0ee94f8e58905970ebd07353f1f409a371ed03e3",
+ "8729a8396f262dabd991aa404cc1753581cea405f0d19222a0b3f210de8ee3c5",
+ "0482b1f1a7af9b48ca8452613d7032beb0e4f28fe710306aeccc959e4d03662a355e39f3"
+ "3574097b8d32b471a591972496f5d44db344c037d13f06fafc75f016fd",
+ "6de9e21f0b2cacc1762b3558fd44d3cf156b85dbef430dd28d59713bfb9cfa0b",
+ "a754b42720e71925d51fcef76151405a3696cc8f9fc9ca7b46d0b16edd7fb699",
+ "603924780439cc16ac4cf97c2c3065bc95353aa9179d0ab5f0322ca82f851cf2"},
+ {NID_X9_62_prime256v1, NID_sha224,
+ "771c4d7bce05610a3e71b272096b57f0d1efcce33a1cb4f714d6ebc0865b2773ec5eedc2"
+ "5fae81dee1d256474dbd9676623614c150916e6ed92ce4430b26037d28fa5252ef6b10c0"
+ "9dc2f7ee5a36a1ea7897b69f389d9f5075e271d92f4eb97b148f3abcb1e5be0b4feb8278"
+ "613d18abf6da60bfe448238aa04d7f11b71f44c5",
+ "f1b62413935fc589ad2280f6892599ad994dae8ca3655ed4f7318cc89b61aa96",
+ "04e0bbfe4016eea93e6f509518cbffc25d492de6ebbf80465a461caa5bdc0181593231ee"
+ "7a119d84fa56e3034d50fea85929aec2eb437abc7646821e1bf805fb50",
+ "7a33eeb9f469afd55de2fb786847a1d3e7797929305c0f90d953b6f143bb8fc6",
+ "96d1c9399948254ea381631fc0f43ea808110506db8aacf081df5535ac5eb8ad",
+ "73bf3691260dddd9997c97313f2a70783eacf8d15bdfb34bb13025cdfae72f70"},
+ {NID_X9_62_prime256v1, NID_sha224,
+ "a3b2825235718fc679b942e8ac38fb4f54415a213c65875b5453d18ca012320ddfbbc58b"
+ "991eaebadfc2d1a28d4f0cd82652b12e4d5bfda89eda3be12ac52188e38e8cce32a264a3"
+ "00c0e463631f525ae501348594f980392c76b4a12ddc88e5ca086cb8685d03895919a862"
+ "7725a3e00c4728e2b7c6f6a14fc342b2937fc3dd",
+ "4caaa26f93f009682bbba6db6b265aec17b7ec1542bda458e8550b9e68eed18d",
+ "04e3c58c1c254d11c7e781ad133e4c36dd1b5de362120d336a58e7b68813f3fbee59760d"
+ "b66120afe0d962c81a8e5586588fd19de2f40556371611c73af22c8a68",
+ "c0d37142dc8b0d614fad20c4d35af6eb819e259e513ddeac1e1c273e7e1dc1bb",
+ "25dd8e4086c62a40d2a310e2f90f6af5cb7e677b4dfdb4dc4e99e23ea2f0e6dc",
+ "90ad62c179b0c9d61f521dde1cd762bfd224b5525c39c3706f2549313ddb4f39"},
+ {NID_X9_62_prime256v1, NID_sha224,
+ "3e6e2a9bffd729ee5d4807849cd4250021d8184cda723df6ab0e5c939d39237c8e58af9d"
+ "869fe62d3c97b3298a99e891e5e11aa68b11a087573a40a3e83c7965e7910d72f81cad0f"
+ "42accc5c25a4fd3cdd8cee63757bbbfbdae98be2bc867d3bcb1333c4632cb0a55dffeb77"
+ "d8b119c466cd889ec468454fabe6fbee7102deaf",
+ "7af4b150bb7167cb68037f280d0823ce5320c01a92b1b56ee1b88547481b1de9",
+ "04cb3634ec4f0cbb99986be788f889e586026d5a851e80d15382f1bdb1bda2bc7551e4e4"
+ "3bc16fb114896b18198a1aebe6054ba20ed0c0317c1b8776158c0e6bfb",
+ "98edd59fafbcaee5f64e84eb5ed59fff45d14aabada47cee2fa674377173627a",
+ "261a1cdb0fd93c0fb06ea6068b6b03c330a12f621a7eba76682a1d152c0e8d08",
+ "7ca049bad54feee101d6db807635ffb8bdb05a38e445c8c3d65d60df143514c5"},
+ {NID_X9_62_prime256v1, NID_sha224,
+ "52e5c308e70329a17c71eaedb66bbee303c8ec48a6f1a2efb235d308563cd58553d434e1"
+ "2f353227a9ea28608ec9c820ed83c95124e7a886f7e832a2de1032e78dc059208f9ec354"
+ "170b2b1cab992b52ac01e6c0e4e1b0112686962edc53ab226dafcc9fc7baed2cd9307160"
+ "e8572edb125935db49289b178f35a8ad23f4f801",
+ "52ad53e849e30bec0e6345c3e9d98ebc808b19496c1ef16d72ab4a00bbb8c634",
+ "047cca1334bfc2a78728c50b370399be3f9690d445aa03c701da643eeb0b0f7fa83f7522"
+ "238668e615405e49b2f63faee58286000a30cdb4b564ac0df99bc8950f",
+ "8650c30712fc253610884fbba4a332a4574d4b7822f7776cab1df8f5fa05442a",
+ "a18194c7ac5829afc408d78dde19542837e7be82706c3941b2d9c5e036bb51e0",
+ "188ead1cdf7c1d21114ff56d0421ffd501ab978ef58337462c0fa736d86299af"},
+ {NID_X9_62_prime256v1, NID_sha224,
+ "d3e9e82051d4c84d699453c9ff44c7c09f6523bb92232bcf30bf3c380224249de2964e87"
+ "1d56a364d6955c81ef91d06482a6c7c61bc70f66ef22fad128d15416e7174312619134f9"
+ "68f1009f92cbf99248932efb533ff113fb6d949e21d6b80dfbbe69010c8d1ccb0f3808ea"
+ "309bb0bac1a222168c95b088847e613749b19d04",
+ "80754962a864be1803bc441fa331e126005bfc6d8b09ed38b7e69d9a030a5d27",
+ "040aaeed6dd1ae020d6eefc98ec4241ac93cbd3c8afed05bb28007e7da5727571b2dda1d"
+ "5b7872eb94dfffb456115037ff8d3e72f8ebdd8fcfc42391f96809be69",
+ "738e050aeefe54ecba5be5f93a97bbcb7557d701f9da2d7e88483454b97b55a8",
+ "8cb9f41dfdcb9604e0725ac9b78fc0db916dc071186ee982f6dba3da36f02efa",
+ "5c87fe868fd4282fb114f5d70e9590a10a5d35cedf3ff6402ba5c4344738a32e"},
+ {NID_X9_62_prime256v1, NID_sha224,
+ "968951c2c1918436fe19fa2fe2152656a08f9a6b8aa6201920f1b424da98cee71928897f"
+ "f087620cc5c551320b1e75a1e98d7d98a5bd5361c9393759614a6087cc0f7fb01fcb1737"
+ "83eb4c4c23961a8231ac4a07d72e683b0c1bd4c51ef1b031df875e7b8d5a6e0628949f5b"
+ "8f157f43dccaea3b2a4fc11181e6b451e06ceb37",
+ "cfa8c8bd810eb0d73585f36280ecdd296ee098511be8ad5eac68984eca8eb19d",
+ "04c227a2af15dfa8734e11c0c50f77e24e77ed58dd8cccf1b0e9fa06bee1c64766b68659"
+ "2ce3745eb300d2704083db55e1fa8274e4cb7e256889ccc0bb34a60570",
+ "2d6b449bb38b543d6b6d34ff8cb053f5e5b337f949b069b21f421995ebb28823",
+ "5e89d3c9b103c2fa3cb8cebeec23640acda0257d63ffbe2d509bfc49fab1dca6",
+ "d70c5b1eeb29e016af9925798d24e166c23d58fedd2f1a3bbdb1ef78cdbfb63a"},
+ {NID_X9_62_prime256v1, NID_sha224,
+ "78048628932e1c1cdd1e70932bd7b76f704ba08d7e7d825d3de763bf1a062315f4af16ec"
+ "cefe0b6ebadccaf403d013f50833ce2c54e24eea8345e25f93b69bb048988d102240225c"
+ "eacf5003e2abdcc90299f4bf2c101585d36ecdd7a155953c674789d070480d1ef47cc785"
+ "8e97a6d87c41c6922a00ea12539f251826e141b4",
+ "b2021e2665ce543b7feadd0cd5a4bd57ffcc5b32deb860b4d736d9880855da3c",
+ "04722e0abad4504b7832a148746153777694714eca220eced2b2156ca64cfed3ddf0351b"
+ "357b3081e859c46cad5328c5afa10546e92bc6c3fd541796ac30397a75",
+ "b15bbce4b382145de7ecd670d947e77555ef7cd1693bd53c694e2b52b04d10e1",
+ "9d086dcd22da165a43091991bede9c1c14515e656633cb759ec2c17f51c35253",
+ "23595ad1cb714559faaecaf946beb9a71e584616030ceaed8a8470f4bf62768f"},
+ {NID_X9_62_prime256v1, NID_sha224,
+ "9b0800c443e693067591737fdbcf0966fdfa50872d41d0c189d87cbc34c2771ee5e1255f"
+ "d604f09fcf167fda16437c245d299147299c69046895d22482db29aba37ff57f756716cd"
+ "3d6223077f747c4caffbecc0a7c9dfaaafd9a9817470ded8777e6355838ac54d11b2f0fc"
+ "3f43668ff949cc31de0c2d15af5ef17884e4d66a",
+ "0c9bce6a568ca239395fc3552755575cbcdddb1d89f6f5ab354517a057b17b48",
+ "044814d454495df7103e2da383aba55f7842fd84f1750ee5801ad32c10d0be6c7da0bd03"
+ "9d5097c8f0770477f6b18d247876e88e528bf0453eab515ffab8a9eda3",
+ "d414f1525cdcc41eba1652de017c034ebcc7946cb2efe4713d09f67c85b83153",
+ "84db02c678f9a21208cec8564d145a35ba8c6f26b4eb7e19522e439720dae44c",
+ "537c564da0d2dc5ac4376c5f0ca3b628d01d48df47a83d842c927e4d6db1e16d"},
+ {NID_X9_62_prime256v1, NID_sha224,
+ "fc3b8291c172dae635a6859f525beaf01cf683765d7c86f1a4d768df7cae055f639eccc0"
+ "8d7a0272394d949f82d5e12d69c08e2483e11a1d28a4c61f18193106e12e5de4a9d0b4bf"
+ "341e2acd6b715dc83ae5ff63328f8346f35521ca378b311299947f63ec593a5e32e6bd11"
+ "ec4edb0e75302a9f54d21226d23314729e061016",
+ "1daa385ec7c7f8a09adfcaea42801a4de4c889fb5c6eb4e92bc611d596d68e3f",
+ "04f04e9f2831d9697ae146c7d4552e5f91085cc46778400b75b76f00205252941dbd2671"
+ "48174cd0c2b019cd0a5256e2f3f889d1e597160372b5a1339c8d787f10",
+ "7707db348ee6f60365b43a2a994e9b40ed56fe03c2c31c7e781bc4ffadcba760",
+ "5d95c385eeba0f15db0b80ae151912409128c9c80e554246067b8f6a36d85ea5",
+ "db5d8a1e345f883e4fcb3871276f170b783c1a1e9da6b6615913368a8526f1c3"},
+ {NID_X9_62_prime256v1, NID_sha256,
+ "5905238877c77421f73e43ee3da6f2d9e2ccad5fc942dcec0cbd25482935faaf416983fe"
+ "165b1a045ee2bcd2e6dca3bdf46c4310a7461f9a37960ca672d3feb5473e253605fb1ddf"
+ "d28065b53cb5858a8ad28175bf9bd386a5e471ea7a65c17cc934a9d791e91491eb3754d0"
+ "3799790fe2d308d16146d5c9b0d0debd97d79ce8",
+ "519b423d715f8b581f4fa8ee59f4771a5b44c8130b4e3eacca54a56dda72b464",
+ "041ccbe91c075fc7f4f033bfa248db8fccd3565de94bbfb12f3c59ff46c271bf83ce4014"
+ "c68811f9a21a1fdb2c0e6113e06db7ca93b7404e78dc7ccd5ca89a4ca9",
+ "94a1bbb14b906a61a280f245f9e93c7f3b4a6247824f5d33b9670787642a68de",
+ "f3ac8061b514795b8843e3d6629527ed2afd6b1f6a555a7acabb5e6f79c8c2ac",
+ "8bf77819ca05a6b2786c76262bf7371cef97b218e96f175a3ccdda2acc058903"},
+ {NID_X9_62_prime256v1, NID_sha256,
+ "c35e2f092553c55772926bdbe87c9796827d17024dbb9233a545366e2e5987dd344deb72"
+ "df987144b8c6c43bc41b654b94cc856e16b96d7a821c8ec039b503e3d86728c494a967d8"
+ "3011a0e090b5d54cd47f4e366c0912bc808fbb2ea96efac88fb3ebec9342738e225f7c7c"
+ "2b011ce375b56621a20642b4d36e060db4524af1",
+ "0f56db78ca460b055c500064824bed999a25aaf48ebb519ac201537b85479813",
+ "04e266ddfdc12668db30d4ca3e8f7749432c416044f2d2b8c10bf3d4012aeffa8abfa864"
+ "04a2e9ffe67d47c587ef7a97a7f456b863b4d02cfc6928973ab5b1cb39",
+ "6d3e71882c3b83b156bb14e0ab184aa9fb728068d3ae9fac421187ae0b2f34c6",
+ "976d3a4e9d23326dc0baa9fa560b7c4e53f42864f508483a6473b6a11079b2db",
+ "1b766e9ceb71ba6c01dcd46e0af462cd4cfa652ae5017d4555b8eeefe36e1932"},
+ {NID_X9_62_prime256v1, NID_sha256,
+ "3c054e333a94259c36af09ab5b4ff9beb3492f8d5b4282d16801daccb29f70fe61a0b37f"
+ "fef5c04cd1b70e85b1f549a1c4dc672985e50f43ea037efa9964f096b5f62f7ffdf8d6bf"
+ "b2cc859558f5a393cb949dbd48f269343b5263dcdb9c556eca074f2e98e6d94c2c29a677"
+ "afaf806edf79b15a3fcd46e7067b7669f83188ee",
+ "e283871239837e13b95f789e6e1af63bf61c918c992e62bca040d64cad1fc2ef",
+ "0474ccd8a62fba0e667c50929a53f78c21b8ff0c3c737b0b40b1750b2302b0bde829074e"
+ "21f3a0ef88b9efdf10d06aa4c295cc1671f758ca0e4cd108803d0f2614",
+ "ad5e887eb2b380b8d8280ad6e5ff8a60f4d26243e0124c2f31a297b5d0835de2",
+ "35fb60f5ca0f3ca08542fb3cc641c8263a2cab7a90ee6a5e1583fac2bb6f6bd1",
+ "ee59d81bc9db1055cc0ed97b159d8784af04e98511d0a9a407b99bb292572e96"},
+ {NID_X9_62_prime256v1, NID_sha256,
+ "0989122410d522af64ceb07da2c865219046b4c3d9d99b01278c07ff63eaf1039cb787ae"
+ "9e2dd46436cc0415f280c562bebb83a23e639e476a02ec8cff7ea06cd12c86dcc3adefbf"
+ "1a9e9a9b6646c7599ec631b0da9a60debeb9b3e19324977f3b4f36892c8a38671c8e1cc8"
+ "e50fcd50f9e51deaf98272f9266fc702e4e57c30",
+ "a3d2d3b7596f6592ce98b4bfe10d41837f10027a90d7bb75349490018cf72d07",
+ "04322f80371bf6e044bc49391d97c1714ab87f990b949bc178cb7c43b7c22d89e13c15d5"
+ "4a5cc6b9f09de8457e873eb3deb1fceb54b0b295da6050294fae7fd999",
+ "24fc90e1da13f17ef9fe84cc96b9471ed1aaac17e3a4bae33a115df4e5834f18",
+ "d7c562370af617b581c84a2468cc8bd50bb1cbf322de41b7887ce07c0e5884ca",
+ "b46d9f2d8c4bf83546ff178f1d78937c008d64e8ecc5cbb825cb21d94d670d89"},
+ {NID_X9_62_prime256v1, NID_sha256,
+ "dc66e39f9bbfd9865318531ffe9207f934fa615a5b285708a5e9c46b7775150e818d7f24"
+ "d2a123df3672fff2094e3fd3df6fbe259e3989dd5edfcccbe7d45e26a775a5c4329a084f"
+ "057c42c13f3248e3fd6f0c76678f890f513c32292dd306eaa84a59abe34b16cb5e38d0e8"
+ "85525d10336ca443e1682aa04a7af832b0eee4e7",
+ "53a0e8a8fe93db01e7ae94e1a9882a102ebd079b3a535827d583626c272d280d",
+ "041bcec4570e1ec2436596b8ded58f60c3b1ebc6a403bc5543040ba829630572448af62a"
+ "4c683f096b28558320737bf83b9959a46ad2521004ef74cf85e67494e1",
+ "5d833e8d24cc7a402d7ee7ec852a3587cddeb48358cea71b0bedb8fabe84e0c4",
+ "18caaf7b663507a8bcd992b836dec9dc5703c080af5e51dfa3a9a7c387182604",
+ "77c68928ac3b88d985fb43fb615fb7ff45c18ba5c81af796c613dfa98352d29c"},
+ {NID_X9_62_prime256v1, NID_sha256,
+ "600974e7d8c5508e2c1aab0783ad0d7c4494ab2b4da265c2fe496421c4df238b0be25f25"
+ "659157c8a225fb03953607f7df996acfd402f147e37aee2f1693e3bf1c35eab3ae360a2b"
+ "d91d04622ea47f83d863d2dfecb618e8b8bdc39e17d15d672eee03bb4ce2cc5cf6b217e5"
+ "faf3f336fdd87d972d3a8b8a593ba85955cc9d71",
+ "4af107e8e2194c830ffb712a65511bc9186a133007855b49ab4b3833aefc4a1d",
+ "04a32e50be3dae2c8ba3f5e4bdae14cf7645420d425ead94036c22dd6c4fc59e00d623bf"
+ "641160c289d6742c6257ae6ba574446dd1d0e74db3aaa80900b78d4ae9",
+ "e18f96f84dfa2fd3cdfaec9159d4c338cd54ad314134f0b31e20591fc238d0ab",
+ "8524c5024e2d9a73bde8c72d9129f57873bbad0ed05215a372a84fdbc78f2e68",
+ "d18c2caf3b1072f87064ec5e8953f51301cada03469c640244760328eb5a05cb"},
+ {NID_X9_62_prime256v1, NID_sha256,
+ "dfa6cb9b39adda6c74cc8b2a8b53a12c499ab9dee01b4123642b4f11af336a91a5c9ce05"
+ "20eb2395a6190ecbf6169c4cba81941de8e76c9c908eb843b98ce95e0da29c5d43880402"
+ "64e05e07030a577cc5d176387154eabae2af52a83e85c61c7c61da930c9b19e45d7e34c8"
+ "516dc3c238fddd6e450a77455d534c48a152010b",
+ "78dfaa09f1076850b3e206e477494cddcfb822aaa0128475053592c48ebaf4ab",
+ "048bcfe2a721ca6d753968f564ec4315be4857e28bef1908f61a366b1f03c974790f6757"
+ "6a30b8e20d4232d8530b52fb4c89cbc589ede291e499ddd15fe870ab96",
+ "295544dbb2da3da170741c9b2c6551d40af7ed4e891445f11a02b66a5c258a77",
+ "c5a186d72df452015480f7f338970bfe825087f05c0088d95305f87aacc9b254",
+ "84a58f9e9d9e735344b316b1aa1ab5185665b85147dc82d92e969d7bee31ca30"},
+ {NID_X9_62_prime256v1, NID_sha256,
+ "51d2547cbff92431174aa7fc7302139519d98071c755ff1c92e4694b58587ea560f72f32"
+ "fc6dd4dee7d22bb7387381d0256e2862d0644cdf2c277c5d740fa089830eb52bf79d1e75"
+ "b8596ecf0ea58a0b9df61e0c9754bfcd62efab6ea1bd216bf181c5593da79f10135a9bc6"
+ "e164f1854bc8859734341aad237ba29a81a3fc8b",
+ "80e692e3eb9fcd8c7d44e7de9f7a5952686407f90025a1d87e52c7096a62618a",
+ "04a88bc8430279c8c0400a77d751f26c0abc93e5de4ad9a4166357952fe041e7672d365a"
+ "1eef25ead579cc9a069b6abc1b16b81c35f18785ce26a10ba6d1381185",
+ "7c80fd66d62cc076cef2d030c17c0a69c99611549cb32c4ff662475adbe84b22",
+ "9d0c6afb6df3bced455b459cc21387e14929392664bb8741a3693a1795ca6902",
+ "d7f9ddd191f1f412869429209ee3814c75c72fa46a9cccf804a2f5cc0b7e739f"},
+ {NID_X9_62_prime256v1, NID_sha256,
+ "558c2ac13026402bad4a0a83ebc9468e50f7ffab06d6f981e5db1d082098065bcff6f21a"
+ "7a74558b1e8612914b8b5a0aa28ed5b574c36ac4ea5868432a62bb8ef0695d27c1e3ceaf"
+ "75c7b251c65ddb268696f07c16d2767973d85beb443f211e6445e7fe5d46f0dce70d58a4"
+ "cd9fe70688c035688ea8c6baec65a5fc7e2c93e8",
+ "5e666c0db0214c3b627a8e48541cc84a8b6fd15f300da4dff5d18aec6c55b881",
+ "041bc487570f040dc94196c9befe8ab2b6de77208b1f38bdaae28f9645c4d2bc3aec8160"
+ "2abd8345e71867c8210313737865b8aa186851e1b48eaca140320f5d8f",
+ "2e7625a48874d86c9e467f890aaa7cd6ebdf71c0102bfdcfa24565d6af3fdce9",
+ "2f9e2b4e9f747c657f705bffd124ee178bbc5391c86d056717b140c153570fd9",
+ "f5413bfd85949da8d83de83ab0d19b2986613e224d1901d76919de23ccd03199"},
+ {NID_X9_62_prime256v1, NID_sha256,
+ "4d55c99ef6bd54621662c3d110c3cb627c03d6311393b264ab97b90a4b15214a5593ba25"
+ "10a53d63fb34be251facb697c973e11b665cb7920f1684b0031b4dd370cb927ca7168b0b"
+ "f8ad285e05e9e31e34bc24024739fdc10b78586f29eff94412034e3b606ed850ec2c1900"
+ "e8e68151fc4aee5adebb066eb6da4eaa5681378e",
+ "f73f455271c877c4d5334627e37c278f68d143014b0a05aa62f308b2101c5308",
+ "04b8188bd68701fc396dab53125d4d28ea33a91daf6d21485f4770f6ea8c565dde423f05"
+ "8810f277f8fe076f6db56e9285a1bf2c2a1dae145095edd9c04970bc4a",
+ "62f8665fd6e26b3fa069e85281777a9b1f0dfd2c0b9f54a086d0c109ff9fd615",
+ "1cc628533d0004b2b20e7f4baad0b8bb5e0673db159bbccf92491aef61fc9620",
+ "880e0bbf82a8cf818ed46ba03cf0fc6c898e36fca36cc7fdb1d2db7503634430"},
+ {NID_X9_62_prime256v1, NID_sha256,
+ "f8248ad47d97c18c984f1f5c10950dc1404713c56b6ea397e01e6dd925e903b4fadfe2c9"
+ "e877169e71ce3c7fe5ce70ee4255d9cdc26f6943bf48687874de64f6cf30a012512e787b"
+ "88059bbf561162bdcc23a3742c835ac144cc14167b1bd6727e940540a9c99f3cbb41fb1d"
+ "cb00d76dda04995847c657f4c19d303eb09eb48a",
+ "b20d705d9bd7c2b8dc60393a5357f632990e599a0975573ac67fd89b49187906",
+ "0451f99d2d52d4a6e734484a018b7ca2f895c2929b6754a3a03224d07ae61166ce4737da"
+ "963c6ef7247fb88d19f9b0c667cac7fe12837fdab88c66f10d3c14cad1",
+ "72b656f6b35b9ccbc712c9f1f3b1a14cbbebaec41c4bca8da18f492a062d6f6f",
+ "9886ae46c1415c3bc959e82b760ad760aab66885a84e620aa339fdf102465c42",
+ "2bf3a80bc04faa35ebecc0f4864ac02d349f6f126e0f988501b8d3075409a26c"},
+ {NID_X9_62_prime256v1, NID_sha256,
+ "3b6ee2425940b3d240d35b97b6dcd61ed3423d8e71a0ada35d47b322d17b35ea0472f35e"
+ "dd1d252f87b8b65ef4b716669fc9ac28b00d34a9d66ad118c9d94e7f46d0b4f6c2b2d339"
+ "fd6bcd351241a387cc82609057048c12c4ec3d85c661975c45b300cb96930d89370a327c"
+ "98b67defaa89497aa8ef994c77f1130f752f94a4",
+ "d4234bebfbc821050341a37e1240efe5e33763cbbb2ef76a1c79e24724e5a5e7",
+ "048fb287f0202ad57ae841aea35f29b2e1d53e196d0ddd9aec24813d64c0922fb71f6daf"
+ "f1aa2dd2d6d3741623eecb5e7b612997a1039aab2e5cf2de969cfea573",
+ "d926fe10f1bfd9855610f4f5a3d666b1a149344057e35537373372ead8b1a778",
+ "490efd106be11fc365c7467eb89b8d39e15d65175356775deab211163c2504cb",
+ "644300fc0da4d40fb8c6ead510d14f0bd4e1321a469e9c0a581464c7186b7aa7"},
+ {NID_X9_62_prime256v1, NID_sha256,
+ "c5204b81ec0a4df5b7e9fda3dc245f98082ae7f4efe81998dcaa286bd4507ca840a53d21"
+ "b01e904f55e38f78c3757d5a5a4a44b1d5d4e480be3afb5b394a5d2840af42b1b4083d40"
+ "afbfe22d702f370d32dbfd392e128ea4724d66a3701da41ae2f03bb4d91bb946c7969404"
+ "cb544f71eb7a49eb4c4ec55799bda1eb545143a7",
+ "b58f5211dff440626bb56d0ad483193d606cf21f36d9830543327292f4d25d8c",
+ "0468229b48c2fe19d3db034e4c15077eb7471a66031f28a980821873915298ba76303e8e"
+ "e3742a893f78b810991da697083dd8f11128c47651c27a56740a80c24c",
+ "e158bf4a2d19a99149d9cdb879294ccb7aaeae03d75ddd616ef8ae51a6dc1071",
+ "e67a9717ccf96841489d6541f4f6adb12d17b59a6bef847b6183b8fcf16a32eb",
+ "9ae6ba6d637706849a6a9fc388cf0232d85c26ea0d1fe7437adb48de58364333"},
+ {NID_X9_62_prime256v1, NID_sha256,
+ "72e81fe221fb402148d8b7ab03549f1180bcc03d41ca59d7653801f0ba853add1f6d29ed"
+ "d7f9abc621b2d548f8dbf8979bd16608d2d8fc3260b4ebc0dd42482481d548c7075711b5"
+ "759649c41f439fad69954956c9326841ea6492956829f9e0dc789f73633b40f6ac77bcae"
+ "6dfc7930cfe89e526d1684365c5b0be2437fdb01",
+ "54c066711cdb061eda07e5275f7e95a9962c6764b84f6f1f3ab5a588e0a2afb1",
+ "040a7dbb8bf50cb605eb2268b081f26d6b08e012f952c4b70a5a1e6e7d46af98bbf26dd7"
+ "d799930062480849962ccf5004edcfd307c044f4e8f667c9baa834eeae",
+ "646fe933e96c3b8f9f507498e907fdd201f08478d0202c752a7c2cfebf4d061a",
+ "b53ce4da1aa7c0dc77a1896ab716b921499aed78df725b1504aba1597ba0c64b",
+ "d7c246dc7ad0e67700c373edcfdd1c0a0495fc954549ad579df6ed1438840851"},
+ {NID_X9_62_prime256v1, NID_sha256,
+ "21188c3edd5de088dacc1076b9e1bcecd79de1003c2414c3866173054dc82dde85169baa"
+ "77993adb20c269f60a5226111828578bcc7c29e6e8d2dae81806152c8ba0c6ada1986a19"
+ "83ebeec1473a73a04795b6319d48662d40881c1723a706f516fe75300f92408aa1dc6ae4"
+ "288d2046f23c1aa2e54b7fb6448a0da922bd7f34",
+ "34fa4682bf6cb5b16783adcd18f0e6879b92185f76d7c920409f904f522db4b1",
+ "04105d22d9c626520faca13e7ced382dcbe93498315f00cc0ac39c4821d0d737376c47f3"
+ "cbbfa97dfcebe16270b8c7d5d3a5900b888c42520d751e8faf3b401ef4",
+ "a6f463ee72c9492bc792fe98163112837aebd07bab7a84aaed05be64db3086f4",
+ "542c40a18140a6266d6f0286e24e9a7bad7650e72ef0e2131e629c076d962663",
+ "4f7f65305e24a6bbb5cff714ba8f5a2cee5bdc89ba8d75dcbf21966ce38eb66f"},
+ {NID_X9_62_prime256v1, NID_sha384,
+ "e0b8596b375f3306bbc6e77a0b42f7469d7e83635990e74aa6d713594a3a24498feff500"
+ "6790742d9c2e9b47d714bee932435db747c6e733e3d8de41f2f91311f2e9fd8e02565163"
+ "1ffd84f66732d3473fbd1627e63dc7194048ebec93c95c159b5039ab5e79e42c80b484a9"
+ "43f125de3da1e04e5bf9c16671ad55a1117d3306",
+ "b6faf2c8922235c589c27368a3b3e6e2f42eb6073bf9507f19eed0746c79dced",
+ "04e0e7b99bc62d8dd67883e39ed9fa0657789c5ff556cc1fd8dd1e2a55e9e3f24363fbfd"
+ "0232b95578075c903a4dbf85ad58f8350516e1ec89b0ee1f5e1362da69",
+ "9980b9cdfcef3ab8e219b9827ed6afdd4dbf20bd927e9cd01f15762703487007",
+ "f5087878e212b703578f5c66f434883f3ef414dc23e2e8d8ab6a8d159ed5ad83",
+ "306b4c6c20213707982dffbb30fba99b96e792163dd59dbe606e734328dd7c8a"},
+ {NID_X9_62_prime256v1, NID_sha384,
+ "099a0131179fff4c6928e49886d2fdb3a9f239b7dd5fa828a52cbbe3fcfabecfbba3e192"
+ "159b887b5d13aa1e14e6a07ccbb21f6ad8b7e88fee6bea9b86dea40ffb962f38554056fb"
+ "7c5bb486418915f7e7e9b9033fe3baaf9a069db98bc02fa8af3d3d1859a11375d6f98aa2"
+ "ce632606d0800dff7f55b40f971a8586ed6b39e9",
+ "118958fd0ff0f0b0ed11d3cf8fa664bc17cdb5fed1f4a8fc52d0b1ae30412181",
+ "04afda82260c9f42122a3f11c6058839488f6d7977f6f2a263c67d06e27ea2c3550ae2bb"
+ "dd2207c590332c5bfeb4c8b5b16622134bd4dc55382ae806435468058b",
+ "23129a99eeda3d99a44a5778a46e8e7568b91c31fb7a8628c5d9820d4bed4a6b",
+ "e446600cab1286ebc3bb332012a2f5cc33b0a5ef7291d5a62a84de5969d77946",
+ "cf89b12793ee1792eb26283b48fa0bdcb45ae6f6ad4b02564bf786bb97057d5a"},
+ {NID_X9_62_prime256v1, NID_sha384,
+ "0fbc07ea947c946bea26afa10c51511039b94ddbc4e2e4184ca3559260da24a14522d149"
+ "7ca5e77a5d1a8e86583aeea1f5d4ff9b04a6aa0de79cd88fdb85e01f171143535f2f7c23"
+ "b050289d7e05cebccdd131888572534bae0061bdcc3015206b9270b0d5af9f1da2f9de91"
+ "772d178a632c3261a1e7b3fb255608b3801962f9",
+ "3e647357cd5b754fad0fdb876eaf9b1abd7b60536f383c81ce5745ec80826431",
+ "04702b2c94d039e590dd5c8f9736e753cf5824aacf33ee3de74fe1f5f7c858d5ed0c2889"
+ "4e907af99fb0d18c9e98f19ac80dd77abfa4bebe45055c0857b82a0f4d",
+ "9beab7722f0bcb468e5f234e074170a60225255de494108459abdf603c6e8b35",
+ "c4021fb7185a07096547af1fb06932e37cf8bd90cf593dea48d48614fa237e5e",
+ "7fb45d09e2172bec8d3e330aa06c43fbb5f625525485234e7714b7f6e92ba8f1"},
+ {NID_X9_62_prime256v1, NID_sha384,
+ "1e38d750d936d8522e9db1873fb4996bef97f8da3c6674a1223d29263f1234a90b751785"
+ "316444e9ba698bc8ab6cd010638d182c9adad4e334b2bd7529f0ae8e9a52ad60f59804b2"
+ "d780ed52bdd33b0bf5400147c28b4304e5e3434505ae7ce30d4b239e7e6f0ecf058badd5"
+ "b388eddbad64d24d2430dd04b4ddee98f972988f",
+ "76c17c2efc99891f3697ba4d71850e5816a1b65562cc39a13da4b6da9051b0fd",
+ "04d12512e934c367e4c4384dbd010e93416840288a0ba00b299b4e7c0d91578b57ebf883"
+ "5661d9b578f18d14ae4acf9c357c0dc8b7112fc32824a685ed72754e23",
+ "77cffa6f9a73904306f9fcd3f6bbb37f52d71e39931bb4aec28f9b076e436ccf",
+ "4d5a9d95b0f09ce8704b0f457b39059ee606092310df65d3f8ae7a2a424cf232",
+ "7d3c014ca470a73cef1d1da86f2a541148ad542fbccaf9149d1b0b030441a7eb"},
+ {NID_X9_62_prime256v1, NID_sha384,
+ "abcf0e0f046b2e0672d1cc6c0a114905627cbbdefdf9752f0c31660aa95f2d0ede72d179"
+ "19a9e9b1add3213164e0c9b5ae3c76f1a2f79d3eeb444e6741521019d8bd5ca391b28c10"
+ "63347f07afcfbb705be4b52261c19ebaf1d6f054a74d86fb5d091fa7f229450996b76f0a"
+ "da5f977b09b58488eebfb5f5e9539a8fd89662ab",
+ "67b9dea6a575b5103999efffce29cca688c781782a41129fdecbce76608174de",
+ "04b4238b029fc0b7d9a5286d8c29b6f3d5a569e9108d44d889cd795c4a385905be8cb3ff"
+ "f8f6cca7187c6a9ad0a2b1d9f40ae01b32a7e8f8c4ca75d71a1fffb309",
+ "d02617f26ede3584f0afcfc89554cdfb2ae188c192092fdde3436335fafe43f1",
+ "26fd9147d0c86440689ff2d75569795650140506970791c90ace0924b44f1586",
+ "00a34b00c20a8099df4b0a757cbef8fea1cb3ea7ced5fbf7e987f70b25ee6d4f"},
+ {NID_X9_62_prime256v1, NID_sha384,
+ "dc3d4884c741a4a687593c79fb4e35c5c13c781dca16db561d7e393577f7b62ca41a6e25"
+ "9fc1fb8d0c4e1e062517a0fdf95558b7799f20c211796167953e6372c11829beec64869d"
+ "67bf3ee1f1455dd87acfbdbcc597056e7fb347a17688ad32fda7ccc3572da7677d7255c2"
+ "61738f07763cd45973c728c6e9adbeecadc3d961",
+ "ecf644ea9b6c3a04fdfe2de4fdcb55fdcdfcf738c0b3176575fa91515194b566",
+ "04c3bdc7c795ec94620a2cfff614c13a3390a5e86c892e53a24d3ed22228bc85bf70480f"
+ "c5cf4aacd73e24618b61b5c56c1ced8c4f1b869580ea538e68c7a61ca3",
+ "53291d51f68d9a12d1dcdc58892b2f786cc15f631f16997d2a49bace513557d4",
+ "a860c8b286edf973ce4ce4cf6e70dc9bbf3818c36c023a845677a9963705df8b",
+ "5630f986b1c45e36e127dd7932221c4272a8cc6e255e89f0f0ca4ec3a9f76494"},
+ {NID_X9_62_prime256v1, NID_sha384,
+ "719bf1911ae5b5e08f1d97b92a5089c0ab9d6f1c175ac7199086aeeaa416a17e6d6f8486"
+ "c711d386f284f096296689a54d330c8efb0f5fa1c5ba128d3234a3da856c2a94667ef710"
+ "3616a64c913135f4e1dc50e38daa60610f732ad1bedfcc396f87169392520314a6b6b9af"
+ "6793dbabad4599525228cc7c9c32c4d8e097ddf6",
+ "4961485cbc978f8456ec5ac7cfc9f7d9298f99415ecae69c8491b258c029bfee",
+ "048d40bf2299e05d758d421972e81cfb0cce68b949240dc30f315836acc70bef035674e6"
+ "f77f8b46f46cca937d83b128dffbe9bd7e0d3d08aa2cbbfdfb16f72c9a",
+ "373a825b5a74b7b9e02f8d4d876b577b4c3984168d704ba9f95b19c05ed590af",
+ "ef6fb386ad044b63feb7445fa16b10319018e9cea9ef42bca83bdad01992234a",
+ "ac1f42f652eb1786e57be01d847c81f7efa072ba566d4583af4f1551a3f76c65"},
+ {NID_X9_62_prime256v1, NID_sha384,
+ "7cf19f4c851e97c5bca11a39f0074c3b7bd3274e7dd75d0447b7b84995dfc9f716bf08c2"
+ "5347f56fcc5e5149cb3f9cfb39d408ace5a5c47e75f7a827fa0bb9921bb5b23a6053dbe1"
+ "fa2bba341ac874d9b1333fc4dc224854949f5c8d8a5fedd02fb26fdfcd3be351aec0fcbe"
+ "f18972956c6ec0effaf057eb4420b6d28e0c008c",
+ "587907e7f215cf0d2cb2c9e6963d45b6e535ed426c828a6ea2fb637cca4c5cbd",
+ "04660da45c413cc9c9526202c16b402af602d30daaa7c342f1e722f15199407f31e6f8cb"
+ "b06913cc718f2d69ba2fb3137f04a41c27c676d1a80fbf30ea3ca46439",
+ "6b8eb7c0d8af9456b95dd70561a0e902863e6dfa1c28d0fd4a0509f1c2a647b2",
+ "08fabf9b57de81875bfa7a4118e3e44cfb38ec6a9b2014940207ba3b1c583038",
+ "a58d199b1deba7350616230d867b2747a3459421811c291836abee715b8f67b4"},
+ {NID_X9_62_prime256v1, NID_sha384,
+ "b892ffabb809e98a99b0a79895445fc734fa1b6159f9cddb6d21e510708bdab6076633ac"
+ "30aaef43db566c0d21f4381db46711fe3812c5ce0fb4a40e3d5d8ab24e4e82d3560c6dc7"
+ "c37794ee17d4a144065ef99c8d1c88bc22ad8c4c27d85ad518fa5747ae35276fc104829d"
+ "3f5c72fc2a9ea55a1c3a87007cd133263f79e405",
+ "24b1e5676d1a9d6b645a984141a157c124531feeb92d915110aef474b1e27666",
+ "04b4909a5bdf25f7659f4ef35e4b811429fb2c59126e3dad09100b46aea6ebe7a6760ae0"
+ "15fa6af5c9749c4030fdb5de6e58c6b5b1944829105cf7edf7d3a22cfb",
+ "88794923d8943b5dbcc7a7a76503880ff7da632b0883aaa60a9fcc71bf880fd6",
+ "6ec9a340b77fae3c7827fa96d997e92722ff2a928217b6dd3c628f3d49ae4ce6",
+ "637b54bbcfb7e7d8a41ea317fcfca8ad74eb3bb6b778bc7ef9dec009281976f7"},
+ {NID_X9_62_prime256v1, NID_sha384,
+ "8144e37014c95e13231cbd6fa64772771f93b44e37f7b02f592099cc146343edd4f4ec9f"
+ "a1bc68d7f2e9ee78fc370443aa2803ff4ca52ee49a2f4daf2c8181ea7b8475b3a0f608fc"
+ "3279d09e2d057fbe3f2ffbe5133796124781299c6da60cfe7ecea3abc30706ded2cdf18f"
+ "9d788e59f2c31662df3abe01a9b12304fb8d5c8c",
+ "bce49c7b03dcdc72393b0a67cf5aa5df870f5aaa6137ada1edc7862e0981ec67",
+ "04c786d9421d67b72b922cf3def2a25eeb5e73f34543eb50b152e738a98afb0ca5679627"
+ "1e79e2496f9e74b126b1123a3d067de56b5605d6f51c8f6e1d5bb93aba",
+ "89e690d78a5e0d2b8ce9f7fcbf34e2605fd9584760fa7729043397612dd21f94",
+ "07e5054c384839584624e8d730454dc27e673c4a90cbf129d88b91250341854d",
+ "f7e665b88614d0c5cbb3007cafe713763d81831525971f1747d92e4d1ca263a7"},
+ {NID_X9_62_prime256v1, NID_sha384,
+ "a3683d120807f0a030feed679785326698c3702f1983eaba1b70ddfa7f0b3188060b845e"
+ "2b67ed57ee68087746710450f7427cb34655d719c0acbc09ac696adb4b22aba1b9322b71"
+ "11076e67053a55f62b501a4bca0ad9d50a868f51aeeb4ef27823236f5267e8da83e14304"
+ "7422ce140d66e05e44dc84fb3a4506b2a5d7caa8",
+ "73188a923bc0b289e81c3db48d826917910f1b957700f8925425c1fb27cabab9",
+ "0486662c014ab666ee770723be8da38c5cd299efc6480fc6f8c3603438fa8397b9f26b33"
+ "07a650c3863faaa5f642f3ba1384c3d3a02edd3d48c657c269609cc3fc",
+ "ec90584ab3b383b590626f36ed4f5110e49888aec7ae7a9c5ea62dd2dc378666",
+ "13e9ad59112fde3af4163eb5c2400b5e9a602576d5869ac1c569075f08c90ff6",
+ "708ac65ff2b0baaccc6dd954e2a93df46016bd04457636de06798fcc17f02be5"},
+ {NID_X9_62_prime256v1, NID_sha384,
+ "b1df8051b213fc5f636537e37e212eb20b2423e6467a9c7081336a870e6373fc835899d5"
+ "9e546c0ac668cc81ce4921e88f42e6da2a109a03b4f4e819a17c955b8d099ec6b282fb49"
+ "5258dca13ec779c459da909475519a3477223c06b99afbd77f9922e7cbef844b93f3ce5f"
+ "50db816b2e0d8b1575d2e17a6b8db9111d6da578",
+ "f637d55763fe819541588e0c603f288a693cc66823c6bb7b8e003bd38580ebce",
+ "0474a4620c578601475fc169a9b84be613b4a16cb6acab8fd98848a6ec9fbd133d42b9e3"
+ "5d347c107e63bd55f525f915bcf1e3d2b81d002d3c39acf10fc30645a1",
+ "4d578f5099636234d9c1d566f1215d5d887ae5d47022be17dbf32a11a03f053b",
+ "113a933ebc4d94ce1cef781e4829df0c493b0685d39fb2048ce01b21c398dbba",
+ "3005bd4ec63dbd04ce9ff0c6246ad65d27fcf62edb2b7e461589f9f0e7446ffd"},
+ {NID_X9_62_prime256v1, NID_sha384,
+ "0b918ede985b5c491797d0a81446b2933be312f419b212e3aae9ba5914c00af431747a9d"
+ "287a7c7761e9bcbc8a12aaf9d4a76d13dad59fc742f8f218ef66eb67035220a07acc1a35"
+ "7c5b562ecb6b895cf725c4230412fefac72097f2c2b829ed58742d7c327cad0f1058df1b"
+ "ddd4ae9c6d2aba25480424308684cecd6517cdd8",
+ "2e357d51517ff93b821f895932fddded8347f32596b812308e6f1baf7dd8a47f",
+ "047e4078a1d50c669fb2996dd9bacb0c3ac7ede4f58fa0fa1222e78dbf5d1f41860014e4"
+ "6e90cc171fbb83ea34c6b78202ea8137a7d926f0169147ed5ae3d6596f",
+ "be522b0940b9a40d84bf790fe6abdc252877e671f2efa63a33a65a512fc2aa5c",
+ "a26b9ad775ac37ff4c7f042cdc4872c5e4e5e800485f488ddfaaed379f468090",
+ "f88eae2019bebbba62b453b8ee3472ca5c67c267964cffe0cf2d2933c1723dff"},
+ {NID_X9_62_prime256v1, NID_sha384,
+ "0fab26fde1a4467ca930dbe513ccc3452b70313cccde2994eead2fde85c8da1db84d7d06"
+ "a024c9e88629d5344224a4eae01b21a2665d5f7f36d5524bf5367d7f8b6a71ea05d413d4"
+ "afde33777f0a3be49c9e6aa29ea447746a9e77ce27232a550b31dd4e7c9bc8913485f2dc"
+ "83a56298051c92461fd46b14cc895c300a4fb874",
+ "77d60cacbbac86ab89009403c97289b5900466856887d3e6112af427f7f0f50b",
+ "04a62032dfdb87e25ed0c70cad20d927c7effeb2638e6c88ddd670f74df16090e544c5ee"
+ "2cf740ded468f5d2efe13daa7c5234645a37c073af35330d03a4fed976",
+ "06c1e692b045f425a21347ecf72833d0242906c7c1094f805566cdcb1256e394",
+ "eb173b51fb0aec318950d097e7fda5c34e529519631c3e2c9b4550b903da417d",
+ "ca2c13574bf1b7d56e9dc18315036a31b8bceddf3e2c2902dcb40f0cc9e31b45"},
+ {NID_X9_62_prime256v1, NID_sha384,
+ "7843f157ef8566722a7d69da67de7599ee65cb3975508f70c612b3289190e364141781e0"
+ "b832f2d9627122742f4b5871ceeafcd09ba5ec90cae6bcc01ae32b50f13f63918dfb5177"
+ "df9797c6273b92d103c3f7a3fc2050d2b196cc872c57b77f9bdb1782d4195445fcc6236d"
+ "d8bd14c8bcbc8223a6739f6a17c9a861e8c821a6",
+ "486854e77962117f49e09378de6c9e3b3522fa752b10b2c810bf48db584d7388",
+ "04760b5624bd64d19c866e54ccd74ad7f98851afdbc3ddeae3ec2c52a135be9cfafeca15"
+ "ce9350877102eee0f5af18b2fed89dc86b7df0bf7bc2963c1638e36fe8",
+ "e4f77c6442eca239b01b0254e11a4182782d96f48ab521cc3d1d68df12b5a41a",
+ "bdff14e4600309c2c77f79a25963a955b5b500a7b2d34cb172cd6acd52905c7b",
+ "b0479cdb3df79923ec36a104a129534c5d59f622be7d613aa04530ad2507d3a2"},
+ {NID_X9_62_prime256v1, NID_sha512,
+ "6c8572b6a3a4a9e8e03dbeed99334d41661b8a8417074f335ab1845f6cc852adb8c01d98"
+ "20fcf8e10699cc827a8fbdca2cbd46cc66e4e6b7ba41ec3efa733587e4a30ec552cd8dda"
+ "b8163e148e50f4d090782897f3ddac84a41e1fcfe8c56b6152c0097b0d634b41011471ff"
+ "d004f43eb4aafc038197ec6bae2b4470e869bded",
+ "9dd0d3a3d514c2a8adb162b81e3adfba3299309f7d2018f607bdb15b1a25f499",
+ "046b738de3398b6ac57b9591f9d7985dd4f32137ad3460dcf8970c1390cb9eaf8d83bc61"
+ "e26d2bbbd3cf2d2ab445a2bc4ab5dde41f4a13078fd1d3cc36ab596d57",
+ "9106192170ccb3c64684d48287bb81bbed51b40d503462c900e5c7aae43e380a",
+ "275fa760878b4dc05e9d157fedfd8e9b1c9c861222a712748cb4b7754c043fb1",
+ "699d906bb8435a05345af3b37e3b357786939e94caae257852f0503adb1e0f7e"},
+ {NID_X9_62_prime256v1, NID_sha512,
+ "7e3c8fe162d48cc8c5b11b5e5ebc05ebc45c439bdbc0b0902145921b8383037cb0812222"
+ "031598cd1a56fa71694fbd304cc62938233465ec39c6e49f57dfe823983b6923c4e86563"
+ "3949183e6b90e9e06d8275f3907d97967d47b6239fe2847b7d49cf16ba69d2862083cf1b"
+ "ccf7afe34fdc90e21998964107b64abe6b89d126",
+ "f9bf909b7973bf0e3dad0e43dcb2d7fa8bda49dbe6e5357f8f0e2bd119be30e6",
+ "04f2a6674d4e86152a527199bed293fa63acde1b4d8a92b62e552210ba45c38792c72565"
+ "c24f0eee6a094af341ddd8579747b865f91c8ed5b44cda8a19cc93776f",
+ "e547791f7185850f03d0c58419648f65b9d29cdc22ed1de2a64280220cfcafba",
+ "4782903d2aaf8b190dab5cae2223388d2d8bd845b3875d37485c54e1ded1d3d8",
+ "dfb40e406bfa074f0bf832771b2b9f186e2211f0bca279644a0ca8559acf39da"},
+ {NID_X9_62_prime256v1, NID_sha512,
+ "d5aa8ac9218ca661cd177756af6fbb5a40a3fecfd4eea6d5872fbb9a2884784aa9b5f0c0"
+ "23a6e0da5cf6364754ee6465b4ee2d0ddc745b02994c98427a213c849537da5a4477b3ab"
+ "fe02648be67f26e80b56a33150490d062aaac137aa47f11cfeddba855bab9e4e028532a5"
+ "63326d927f9e6e3292b1fb248ee90b6f429798db",
+ "724567d21ef682dfc6dc4d46853880cfa86fe6fea0efd51fac456f03c3d36ead",
+ "0470b877b5e365fcf08140b1eca119baba662879f38e059d074a2cb60b03ea5d395f56f9"
+ "4d591df40b9f3b8763ac4b3dbe622c956d5bd0c55658b6f46fa3deb201",
+ "79d6c967ed23c763ece9ca4b026218004c84dc2d4ccc86cf05c5d0f791f6279b",
+ "2ba2ea2d316f8937f184ad3028e364574d20a202e4e7513d7af57ac2456804d1",
+ "64fe94968d18c5967c799e0349041b9e40e6c6c92ebb475e80dd82f51cf07320"},
+ {NID_X9_62_prime256v1, NID_sha512,
+ "790b06054afc9c3fc4dfe72df19dd5d68d108cfcfca6212804f6d534fd2fbe489bd8f64b"
+ "f205ce04bcb50124a12ce5238fc3fe7dd76e6fa640206af52549f133d593a1bfd423ab73"
+ "7f3326fa79433cde293236f90d4238f0dd38ed69492ddbd9c3eae583b6325a95dec3166f"
+ "e52b21658293d8c137830ef45297d67813b7a508",
+ "29c5d54d7d1f099d50f949bfce8d6073dae059c5a19cc70834722f18a7199edd",
+ "043088d4f45d274cc5f418c8ecc4cbcf96be87491f420250f8cbc01cdf2503ec47634db4"
+ "8198129237ed068c88ff5809f6211921a6258f548f4b64dd125921b78b",
+ "0508ad7774908b5705895fda5c3b7a3032bf85dab7232bf981177019f3d76460",
+ "acd9f3b63626c5f32103e90e1dd1695907b1904aa9b14f2132caef331321971b",
+ "15c04a8bd6c13ed5e9961814b2f406f064670153e4d5465dcef63c1d9dd52a87"},
+ {NID_X9_62_prime256v1, NID_sha512,
+ "6d549aa87afdb8bfa60d22a68e2783b27e8db46041e4df04be0c261c4734b608a96f198d"
+ "1cdb8d082ae48579ec9defcf21fbc72803764a58c31e5323d5452b9fb57c8991d3174914"
+ "0da7ef067b18bf0d7dfbae6eefd0d8064f334bf7e9ec1e028daed4e86e17635ec2e409a3"
+ "ed1238048a45882c5c57501b314e636b9bc81cbe",
+ "0d8095da1abba06b0d349c226511f642dabbf1043ad41baa4e14297afe8a3117",
+ "0475a45758ced45ecf55f755cb56ca2601d794ebeaeb2e6107fe2fc443f580e23c5303d4"
+ "7d5a75ec821d51a2ee7548448208c699eca0cd89810ffc1aa4faf81ead",
+ "5165c54def4026ab648f7768c4f1488bcb183f6db7ffe02c7022a529a116482a",
+ "ebc85fc4176b446b3384ccc62fc2526b45665561a0e7e9404ac376c90e450b59",
+ "8b2c09428e62c5109d17ed0cf8f9fd7c370d018a2a73f701effc9b17d04852c6"},
+ {NID_X9_62_prime256v1, NID_sha512,
+ "1906e48b7f889ee3ff7ab0807a7aa88f53f4018808870bfed6372a77330c737647961324"
+ "c2b4d46f6ee8b01190474951a701b048ae86579ff8e3fc889fecf926b17f98958ac7534e"
+ "6e781ca2db2baa380dec766cfb2a3eca2a9d5818967d64dfab84f768d24ec122eebacaab"
+ "0a4dc3a75f37331bb1c43dd8966cc09ec4945bbd",
+ "52fe57da3427b1a75cb816f61c4e8e0e0551b94c01382b1a80837940ed579e61",
+ "042177e20a2092a46667debdcc21e7e45d6da72f124adecbc5ada6a7bcc7b401d5550e46"
+ "8f2626070a080afeeb98edd75a721eb773c8e62149f3e903cf9c4d7b61",
+ "0464fe9674b01ff5bd8be21af3399fad66f90ad30f4e8ee6e2eb9bcccfd5185c",
+ "f8250f073f34034c1cde58f69a85e2f5a030703ebdd4dbfb98d3b3690db7d114",
+ "a9e83e05f1d6e0fef782f186bedf43684c825ac480174d48b0e4d31505e27498"},
+ {NID_X9_62_prime256v1, NID_sha512,
+ "7b59fef13daf01afec35dea3276541be681c4916767f34d4e874464d20979863ee77ad0f"
+ "d1635bcdf93e9f62ed69ae52ec90aab5bbf87f8951213747ccec9f38c775c1df1e9d7f73"
+ "5c2ce39b42edb3b0c5086247556cfea539995c5d9689765288ec600848ecf085c01ca738"
+ "bbef11f5d12d4457db988b4add90be00781024ad",
+ "003d91611445919f59bfe3ca71fe0bfdeb0e39a7195e83ac03a37c7eceef0df2",
+ "047b9c592f61aae0555855d0b9ebb6fd00fb6746e8842e2523565c858630b9ba00d35b2e"
+ "168b1875bbc563bea5e8d63c4e38957c774a65e762959a349eaf263ba0",
+ "ef9df291ea27a4b45708f7608723c27d7d56b7df0599a54bc2c2fabbff373b40",
+ "66d057fd39958b0e4932bacd70a1769bbadcb62e4470937b45497a3d4500fabb",
+ "6c853b889e18b5a49ee54b54dd1aaedfdd642e30eba171c5cab677f0df9e7318"},
+ {NID_X9_62_prime256v1, NID_sha512,
+ "041a6767a935dc3d8985eb4e608b0cbfebe7f93789d4200bcfe595277ac2b0f402889b58"
+ "0b72def5da778a680fd380c955421f626d52dd9a83ea180187b850e1b72a4ec6dd63235e"
+ "598fd15a9b19f8ce9aec1d23f0bd6ea4d92360d50f951152bc9a01354732ba0cf90aaed3"
+ "3c307c1de8fa3d14f9489151b8377b57c7215f0b",
+ "48f13d393899cd835c4193670ec62f28e4c4903e0bbe5817bf0996831a720bb7",
+ "0482a1a96f4648393c5e42633ecdeb1d8245c78c5ea236b5bab460dedcc8924bc0e8cbf0"
+ "3c34b5154f876de19f3bb6fd43cd2eabf6e7c95467bcfa8c8fc42d76fd",
+ "efed736e627899fea944007eea39a4a63c0c2e26491cd12adb546be3e5c68f7d",
+ "cf7fc24bdaa09ac0cca8497e13298b961380668613c7493954048c06385a7044",
+ "f38b1c8306cf82ab76ee3a772b14416b49993fe11f986e9b0f0593c52ec91525"},
+ {NID_X9_62_prime256v1, NID_sha512,
+ "7905a9036e022c78b2c9efd40b77b0a194fbc1d45462779b0b76ad30dc52c564e48a493d"
+ "8249a061e62f26f453ba566538a4d43c64fb9fdbd1f36409316433c6f074e1b47b544a84"
+ "7de25fc67d81ac801ed9f7371a43da39001c90766f943e629d74d0436ba1240c3d7fab99"
+ "0d586a6d6ef1771786722df56448815f2feda48f",
+ "95c99cf9ec26480275f23de419e41bb779590f0eab5cf9095d37dd70cb75e870",
+ "0442c292b0fbcc9f457ae361d940a9d45ad9427431a105a6e5cd90a345fe3507f7313b08"
+ "fd2fa351908b3178051ee782cc62b9954ad95d4119aa564900f8ade70c",
+ "4c08dd0f8b72ae9c674e1e448d4e2afe3a1ee69927fa23bbff3716f0b99553b7",
+ "f2bc35eb1b8488b9e8d4a1dbb200e1abcb855458e1557dc1bf988278a174eb3b",
+ "ed9a2ec043a1d578e8eba6f57217976310e8674385ad2da08d6146c629de1cd9"},
+ {NID_X9_62_prime256v1, NID_sha512,
+ "cf25e4642d4f39d15afb7aec79469d82fc9aedb8f89964e79b749a852d931d3743650280"
+ "4e39555f5a3c75dd958fd5291ada647c1a5e38fe7b1048f16f2b711fdd5d39acc0812ca6"
+ "5bd50d7f8119f2fd195ab16633503a78ee9102c1f9c4c22568e0b54bd4fa3f5ff7b49160"
+ "bf23e7e2231b1ebebbdaf0e4a7d4484158a87e07",
+ "e15e835d0e2217bc7c6f05a498f20af1cd56f2f165c23d225eb3360aa2c5cbcf",
+ "0489dd22052ec3ab4840206a62f2270c21e7836d1a9109a3407dd0974c7802b9aee91609"
+ "ba35c7008b080c77a9068d97a14ca77b97299e74945217672b2fd5faf0",
+ "c9f621441c235fc47ec34eef4c08625df1ec74918e1f86075b753f2589f4c60b",
+ "a70d1a2d555d599bfb8c9b1f0d43725341151d17a8d0845fa56f3563703528a7",
+ "4e05c45adf41783e394a5312f86e66871c4be4896948c85966879d5c66d54b37"},
+ {NID_X9_62_prime256v1, NID_sha512,
+ "7562c445b35883cc937be6349b4cefc3556a80255d70f09e28c3f393daac19442a7eeced"
+ "cdfbe8f7628e30cd8939537ec56d5c9645d43340eb4e78fc5dd4322de8a07966b262770d"
+ "7ff13a071ff3dce560718e60ed3086b7e0003a6abafe91af90af86733ce8689440bf73d2"
+ "aa0acfe9776036e877599acbabfcb03bb3b50faa",
+ "808c08c0d77423a6feaaffc8f98a2948f17726e67c15eeae4e672edbe388f98c",
+ "04b0c0ad5e1f6001d8e9018ec611b2e3b91923e69fa6c98690ab644d650f640c42610539"
+ "c0b9ed21ac0a2f27527c1a61d9b47cbf033187b1a6ada006eb5b2662ed",
+ "1f6d4a905c761a53d54c362976717d0d7fc94d222bb5489e4830080a1a67535d",
+ "83404dcf8320baf206381800071e6a75160342d19743b4f176960d669dd03d07",
+ "3f75dcf102008b2989f81683ae45e9f1d4b67a6ef6fd5c8af44828af80e1cfb5"},
+ {NID_X9_62_prime256v1, NID_sha512,
+ "051c2db8e71e44653ea1cb0afc9e0abdf12658e9e761bfb767c20c7ab4adfcb18ed9b5c3"
+ "72a3ac11d8a43c55f7f99b33355437891686d42362abd71db8b6d84dd694d6982f061217"
+ "8a937aa934b9ac3c0794c39027bdd767841c4370666c80dbc0f8132ca27474f553d266de"
+ "efd7c9dbad6d734f9006bb557567701bb7e6a7c9",
+ "f7c6315f0081acd8f09c7a2c3ec1b7ece20180b0a6365a27dcd8f71b729558f9",
+ "04250f7112d381c1751860045d9bcaf20dbeb25a001431f96ac6f19109362ffebb49fba9"
+ "efe73546135a5a31ab3753e247034741ce839d3d94bd73936c4a17e4aa",
+ "68c299be2c0c6d52d208d5d1a9e0ffa2af19b4833271404e5876e0aa93987866",
+ "7b195e92d2ba95911cda7570607e112d02a1c847ddaa33924734b51f5d81adab",
+ "10d9f206755cef70ab5143ac43f3f8d38aea2644f31d52eaf3b472ee816e11e5"},
+ {NID_X9_62_prime256v1, NID_sha512,
+ "4dcb7b62ba31b866fce7c1feedf0be1f67bf611dbc2e2e86f004422f67b3bc1839c6958e"
+ "b1dc3ead137c3d7f88aa97244577a775c8021b1642a8647bba82871e3c15d0749ed343ea"
+ "6cad38f123835d8ef66b0719273105e924e8685b65fd5dc430efbc35b05a6097f17ebc59"
+ "43cdcd9abcba752b7f8f37027409bd6e11cd158f",
+ "f547735a9409386dbff719ce2dae03c50cb437d6b30cc7fa3ea20d9aec17e5a5",
+ "044ca87c5845fb04c2f76ae3273073b0523e356a445e4e95737260eba9e2d021db0f8647"
+ "5d07f82655320fdf2cd8db23b21905b1b1f2f9c48e2df87e24119c4880",
+ "91bd7d97f7ed3253cedefc144771bb8acbbda6eb24f9d752bbe1dd018e1384c7",
+ "008c1755d3df81e64e25270dbaa9396641556df7ffc7ac9add6739c382705397",
+ "77df443c729b039aded5b516b1077fecdd9986402d2c4b01734ba91e055e87fc"},
+ {NID_X9_62_prime256v1, NID_sha512,
+ "efe55737771070d5ac79236b04e3fbaf4f2e9bed187d1930680fcf1aba769674bf426310"
+ "f21245006f528779347d28b8aeacd2b1d5e3456dcbf188b2be8c07f19219e4067c1e7c97"
+ "14784285d8bac79a76b56f2e2676ea93994f11eb573af1d03fc8ed1118eafc7f07a82f32"
+ "63c33eb85e497e18f435d4076a774f42d276c323",
+ "26a1aa4b927a516b661986895aff58f40b78cc5d0c767eda7eaa3dbb835b5628",
+ "0428afa3b0f81a0e95ad302f487a9b679fcdef8d3f40236ec4d4dbf4bb0cbba8b2bb4ac1"
+ "be8405cbae8a553fbc28e29e2e689fabe7def26d653a1dafc023f3cecf",
+ "f98e1933c7fad4acbe94d95c1b013e1d6931fa8f67e6dbb677b564ef7c3e56ce",
+ "15a9a5412d6a03edd71b84c121ce9a94cdd166e40da9ce4d79f1afff6a395a53",
+ "86bbc2b6c63bad706ec0b093578e3f064736ec69c0dba59b9e3e7f73762a4dc3"},
+ {NID_X9_62_prime256v1, NID_sha512,
+ "ea95859cc13cccb37198d919803be89c2ee10befdcaf5d5afa09dcc529d333ae1e4ffd3b"
+ "d8ba8642203badd7a80a3f77eeee9402eed365d53f05c1a995c536f8236ba6b6ff889739"
+ "3506660cc8ea82b2163aa6a1855251c87d935e23857fe35b889427b449de7274d7754bde"
+ "ace960b4303c5dd5f745a5cfd580293d6548c832",
+ "6a5ca39aae2d45aa331f18a8598a3f2db32781f7c92efd4f64ee3bbe0c4c4e49",
+ "04c62cc4a39ace01006ad48cf49a3e71466955bbeeca5d318d672695df926b3aa4c85ccf"
+ "517bf2ebd9ad6a9e99254def0d74d1d2fd611e328b4a3988d4f045fe6f",
+ "dac00c462bc85bf39c31b5e01df33e2ec1569e6efcb334bf18f0951992ac6160",
+ "6e7ff8ec7a5c48e0877224a9fa8481283de45fcbee23b4c252b0c622442c26ad",
+ "3dfac320b9c873318117da6bd856000a392b815659e5aa2a6a1852ccb2501df3"},
+ {NID_secp384r1, NID_sha224,
+ "39f0b25d4c15b09a0692b22fbacbb5f8aee184cb75887e2ebe0cd3be5d3815d29f9b587e"
+ "10b3168c939054a89df11068e5c3fac21af742bf4c3e9512f5569674e7ad8b39042bcd73"
+ "e4b7ce3e64fbea1c434ed01ad4ad8b5b569f6a0b9a1144f94097925672e59ba97bc4d33b"
+ "e2fa21b46c3dadbfb3a1f89afa199d4b44189938",
+ "0af857beff08046f23b03c4299eda86490393bde88e4f74348886b200555276b93b37d4f"
+ "6fdec17c0ea581a30c59c727",
+ "0400ea9d109dbaa3900461a9236453952b1f1c2a5aa12f6d500ac774acdff84ab7cb71a0"
+ "f91bcd55aaa57cb8b4fbb3087d0fc0e3116c9e94be583b02b21b1eb168d8facf39552793"
+ "60cbcd86e04ee50751054cfaebcf542538ac113d56ccc38b3e",
+ "e2f0ce83c5bbef3a6eccd1744f893bb52952475d2531a2854a88ff0aa9b12c65961e2e51"
+ "7fb334ef40e0c0d7a31ed5f5",
+ "c36e5f0d3de71411e6e519f63e0f56cff432330a04fefef2993fdb56343e49f2f7db5fca"
+ "b7728acc1e33d4692553c02e",
+ "0d4064399d58cd771ab9420d438757f5936c3808e97081e457bc862a0c905295dca60ee9"
+ "4f4537591c6c7d217453909b"},
+ {NID_secp384r1, NID_sha224,
+ "5a3c80e608ed3ac75a6e45f6e94d374271a6d42b67a481860d5d309cc8b37c79cb61f171"
+ "6dc8aa84cb309ef9d68eb7fc6cf4b42333f316a5c30e74198c8b340926e340c5de47674a"
+ "707293c4aa2a1a2274a602f01c26b156e895499c60b38ef53fc2032e7485c168d73700d6"
+ "fa14232596a0e4997854a0b05d02e351b9d3de96",
+ "047dd5baab23f439ec23b58b7e6ff4cc37813cccb4ea73bb2308e6b82b3170edfe0e131e"
+ "ca50841bf1b686e651c57246",
+ "04de92ff09af2950854a70f2178d2ed50cc7042a7188301a1ea81d9629ad3c29795cb7f0"
+ "d56630a401e4d6e5bed0068d1e6135adbd8624130735e64e65ecbd43770dcc12b28e737b"
+ "5ed033666f34c918eb5589508e4a13b9243374a118a628dd0b",
+ "f3922351d14f1e5af84faab12fe57ded30f185afe5547aeb3061104740ecc42a8df0c27f"
+ "3877b4d855642b78938c4e05",
+ "38e181870cb797c1f4e6598cfd032add1cb60447d33473038d06df73919f844eddd16f40"
+ "f911075f8a4bacc0d924e684",
+ "a58dd1ca18aa31277de66c30c3bb7a14b53705ce6c547ed2cb0e336f63c42809422efffc"
+ "c722d1155f2254330a02b278"},
+ {NID_secp384r1, NID_sha224,
+ "e7d974c5dbd3bfb8a2fb92fdd782f997d04be79e9713944ce13c5eb6f75dfdec811b7ee4"
+ "b3859114b07f263846ae13f795eec8f3cb5b7565baff68e0fdd5e09ba8b176d5a71cb03f"
+ "bc5546e6937fba560acb4db24bd42de1851432b96e8ca4078313cb849bce29c9d8052586"
+ "01d67cd0259e255f3048682e8fdbdda3398c3e31",
+ "54ba9c740535574cebc41ca5dc950629674ee94730353ac521aafd1c342d3f8ac52046ed"
+ "804264e1440d7fe409c45c83",
+ "043db95ded500b2506b627270bac75688dd7d44f47029adeff99397ab4b6329a38dbb278"
+ "a0fc58fe4914e6ae31721a6875049288341553a9ac3dc2d9e18e7a92c43dd3c25ca866f0"
+ "cb4c68127bef6b0e4ba85713d27d45c7d0dc57e5782a6bf733",
+ "04324bd078807f6b18507a93ee60da02031717217ee5ce569750737be912be72da087ac0"
+ "0f50e13fdf7249a6ae33f73e",
+ "b2752aa7abc1e5a29421c9c76620bcc3049ecc97e6bc39fcca126f505a9a1bfae3bde89f"
+ "b751a1aa7b66fa8db3891ef0",
+ "f1c69e6d818ca7ae3a477049b46420cebd910c0a9a477fd1a67a38d628d6edaac123aebf"
+ "ca67c53a5c80fe454dba7a9d"},
+ {NID_secp384r1, NID_sha224,
+ "a670fda4d1d56c70de1d8680328043b2b7029633caf0ee59ffe1421c914bb937133d5a0f"
+ "9214846b2e0b350455a74c4ab434c56de65a17139bb8212bf1c76071a37536fa29348f87"
+ "1dbb26baa92eb93d97e923a6d2ffd9be25cbc33075e494e6db657bd8dc053fe4e17148d8"
+ "cf6e2058164f2b5766750eb01bbe7b361cdb848c",
+ "dabe87bbe95499bac23bc83c8b7307fe04be198f00059e2bf67c9611feaffb2c8f274f6a"
+ "a50eb99c3074186d8067d659",
+ "04c2aa0a695125279705917e02a4f258cade4c3ff9140a071414babf87764f426f7f36ff"
+ "da9d5f3394375d24864235476f8f9808da0ce0227cf453f9e456f557db9752e23b45cce4"
+ "baad5fee3844ddd7e1112bcec01ea9d67c7a76f3535bd0cb58",
+ "65a0305854033cbc6fe3ca139c40ca354d45801ecb59f4a923c251dc6b25d12d452d99b5"
+ "d6711fdb5efac812aa464cc4",
+ "c7fc32997d17ac79baf5789e4503f5f1a8863872bc350a91f12dd3ef8cf78c254e829217"
+ "809e8e00b6b8d4d85be3f1fd",
+ "1422e1838a22496df93486bce1142961dbd8478ae844b8dda54e210afdae0d9e930d587c"
+ "91bb600b0bde7237186d94e6"},
+ {NID_secp384r1, NID_sha224,
+ "7843f918fe2588bcfe756e1f05b491d913523255aa006818be20b676c957f4edb8df863c"
+ "6f5f8c15b3b80c7a2aa277b70d53f210bdfb856337980c406ea140e439dd321471407f37"
+ "4f69877b2d82367eed51e3c82c13948616dcb301d0c31f8f0352f2846abd9e72071f446a"
+ "2f1bd3339a09ae41b84e150fd18f4ba5d3c6bfa0",
+ "df43107a1deb24d02e31d479087bd669e2bc3e50f1f44b7db9484a7143cdca6a3391bddf"
+ "ea72dc940dbce8ec5efbd718",
+ "0476bd4be5d520471162cb5c36f80038301b325f845d9642204a84d78b3e721098932827"
+ "bf872bde0a9f86383953667d29415116b8b878f896a5aa4dbbdc21076f27135d8bbcaaca"
+ "02489ef639d742bd63f377da0c8e8ab36ff19b4a7cc5d4ceb4",
+ "798abad5a30d1805794540057388ee05e2422901c6335f985b9d4447b3ef75524751abfe"
+ "ab6409ad6bf77d4ae3014558",
+ "98744e5c6742fa5118a74a70db4957647a3cc12add4e876b45974a6a8707809f871daadb"
+ "fc0b865e01624f706b65f10c",
+ "9e256e8da8eff5a0c83baaa1ef4f7be798eba9543bf97adb0fff8719f5406ea1207a0cf7"
+ "03d99aa8f02169724b492273"},
+ {NID_secp384r1, NID_sha224,
+ "caa83d5ab07febbd2e0fe2d63738b9b7b8752594bea7aaf50345b3d2f316653a8c9222f2"
+ "b7877b64679e9573e81461a426029e45b8873a575094a1d572e0d32a9f0a9c6bcb9a2868"
+ "543b7d8bbe4a69a09e7321f05f8366cced1b72df526f895b60aed2c39c249653c7839538"
+ "770d4e5f47d3926ec0d168ab6a1af15bf1dca1f7",
+ "ea7a563ba2a7f5ab69973dca1f1a0d1572f0c59817cd3b62ad356c2099e2cdca1c553323"
+ "563f9dfbb333b126d84abc7f",
+ "04cf4717c5f5de668b785f06bdc9845df5a09e4edd83f4669756407cbb60807305c632bc"
+ "49f818f4a84b194369aa07736f7391e4982af8a2218f704f627d01f0508bfc8304992a2d"
+ "598a420bf2eb519f33bd7caf79380793733b3dba0cc5e2b9d8",
+ "7b9606b3df7b2a340dbc68d9754de0734e1faeb5a0135578a97628d948702235c60b20c8"
+ "002c8fcf906783e1b389e754",
+ "0d680010bed373287f9767955b5d2850e150b6713b49e453eb280148e45230c853d99ea2"
+ "d2f8fcbd3ddcba19aeec0af1",
+ "64329763a930ab5452afdb0557fef16ff71810d6343dfc9c6ae18905c3d274db6554cdc6"
+ "9d6078a1ca03284474a94f30"},
+ {NID_secp384r1, NID_sha224,
+ "594603458d6534974aeeafba919c4d0f4cb6843a3af41204bbb88aeb2fca2772d305163d"
+ "ba863da050aabedbaf89db521955d1715de95bbcef979ecdc0c976181ece00355385f8a8"
+ "f8cce127c9eac15ce3e958a3ed686184674ec9a50eb63271606ee7fdcb1323da3c3db8e8"
+ "9cad1fb42139a32d08abcfbf0d4ccfca18c89a86",
+ "4cc70cb35b3ddeb0df53a6bd7bd05f8ff4392a2db7344f2d443761484b3a468a4ee3d1a8"
+ "b27113d57283fd18b05f7829",
+ "0440e1fe21df34bb85a642a0abe819ebd128f7e39b84d8dcc4a9a599b372fb9588da1484"
+ "600ec28b1297bb685f9ae77831f3aa69ada57879fdcbe8df19cefabc308add7d03b17b1f"
+ "ac2f7783fece6a8dfe20bc36f518692677d96e3f730a67a671",
+ "8eda401d98f5688c34d8dbebcd3991c87c0442b0379154eaa2e5287dabe9a9e34cfc1305"
+ "d11ff68781df25d5611b331d",
+ "ff2d772786e159448bba26afd8c3281941a4cb0c56fec6f5cccb4c292c4ee0f7af9bd39b"
+ "be2d88148732585e104fdb30",
+ "07a1d890770daa949a17797dca7af3e8163da981ec330c03d63d1a8312c152be6a718163"
+ "205ffa08da7dcc163ba261f4"},
+ {NID_secp384r1, NID_sha224,
+ "733252d2bd35547838be22656cc7aa67eff0af0b13b428f77267a513c6824c3dbae53306"
+ "8b6817e82665f009560affcfe4b2ddb5b667a644fc1a42d24f24e0947e0dc50fb62c919b"
+ "c1fe4e7ded5e28f2e6d80fcf66a081fb2763526f8def5a81a4ddd38be0b59ee839da1643"
+ "eeeaee7b1927cec12cf3da67c02bc5465151e346",
+ "366d15e4cd7605c71560a418bd0f382fd7cd7ad3090ff1b2dfbed74336166a905e1b760c"
+ "f0bccee7a0e66c5ebfb831f1",
+ "04a143f277ab36a10b645ff6c58241ea67ffdc8acf12d60973068390f06b4d8f4d773b10"
+ "c1ebf6889b1cfa73ebb90f6ca17a17cad29bb507b309021f6f92cb5c10ba535f4a3e317f"
+ "cc68cfd02d3ccd269f465169c73d30ff308f5350d881b08aec",
+ "dbe545f920bc3d704c43d834bab21e40df12ec9e16a619a3e6b3f08760c26aae6e4fd91f"
+ "ad00f745194794b74bb1baee",
+ "cdc39b12bba30da66fe9554713c05880ddc27afa4d2d151440f124c351fb9496dc950465"
+ "16b0921083347d64369846ac",
+ "797d0344e49f9ba87a187c50f664e5015d449e346b1a7bd9427c5be559fc58173651880d"
+ "5aadf053f81899d3368d6181"},
+ {NID_secp384r1, NID_sha224,
+ "5a182bd174feb038dfae3346267156bf663167f713dea1ce936b0edb815cd9b8c8e4d411"
+ "c786ba2494a81442617255db7158b142e720d86c9b56680fb9efd4298cdd69079a281534"
+ "94c42a24251c7ad42ecf7e97eabc1b3997529b2a297cbad2474269b87a0b1e385f2d7f8b"
+ "6eb8d1cd75eaf7e91d1acbecd45d7b2bfbbe3216",
+ "e357d869857a52a06e1ece5593d16407022354780eb9a7cb8575cef327f877d22322c006"
+ "b3c8c11e3d7d296a708bdb6d",
+ "04ce9a2185a68d6094aa5849a6efe78b349946f7380f0c79aa9664246cfcc71a879e90ad"
+ "78a0474f58644c6a208168150e8354fa47673cb3e07d446521345706c5515584b2602f92"
+ "1c3b9c44dded9e2c3f90ce47adb36d7e5f9f95a8c5ad8af397",
+ "1e77367ac4e10924854d135ad2f2507f39e2bafdbce33ff256bcbe9a7329b8d27185218b"
+ "cc3550aafbe3390e84c77292",
+ "df3182d49ad70959fb0c95bc7312750ce70fc87f1a328d39d9b29ac05d31305ce7209d6c"
+ "24d13225d9567b489f7a187b",
+ "d812b05abab0e96de13291e1f0da6479444ed5cd9d959b76f6cb43d394769035364f7c83"
+ "1a104dc7b5bd9b4a8e64df64"},
+ {NID_secp384r1, NID_sha224,
+ "aaa99fb1c71340d785a18f6f668e898c25cf7a0ac31d13c5b388b7233408493a5a109af6"
+ "d07065376b96f4903df7aba2b2af671a18772bb0472490d1240cde28967680727dd4acd4"
+ "7e0308920a75da857a6eeedee5b6586d45dff3d8a680599665aa895c89dd7770b824b7de"
+ "e477ac5e7602d409d3cc553090c970b50811dbab",
+ "745a18db47324a3710b993d115b2834339315e84e7006eafd889fb49bd3cc5a8b50c9052"
+ "6e65e6c53bddd2916d14bead",
+ "04f692578c6f77531210aef55c9e004ce3b66cf268c6900dde31a8bbb76e7562e3fb7624"
+ "2de34ca330d2501030aa11946640965833b28de926c46de060aa25beaeda98f8415a6b1e"
+ "3564aa77870cf4c89bd4fde92c8f5d9bf0eb41721586859d8e",
+ "11b9b36720abcac084efdb44c9f5b7d039e3250cb1e9c47850189ba3cfc1489d858b2a44"
+ "df357772b61d919c7e729c0f",
+ "02b252c99820cf50e6ce060ab55bd4f682276e29b4ae4197417432e6a7bfb8cf0bac89df"
+ "e105456af805d822cee77696",
+ "8e248bbf7d7028d63177e565c9d1666ee5be4d1ffbfffc9c7814b0cd38f74b98f3f2cd59"
+ "be42b9f132bfe5ee789cd96c"},
+ {NID_secp384r1, NID_sha224,
+ "1fadfa8254d3a0b82d137cfdd82043d5dc1fef195d5297b09cc5cfb061f59c933451c0dc"
+ "2a11b4037f34f88dacb803251f8880c4b72585c3c196e6fb23484ca43a191f8e41b9b9a3"
+ "7e2e6fcaab6738c3c62d1c98e1c620bb788b7b51a04f998a510efdba0d3418622fe8ce20"
+ "3b3fcd553b9b4206365a39031797ad11e49745ec",
+ "93f20963ea5011ff4f26481e359309e634195f6289134087bd2e83eee008c962780a6797"
+ "84ee7ac6acda03d663ed27e0",
+ "040edcde3533ea019e18f1a3cd97b7962e8823dda36c389f8f9287549f796d11376392b8"
+ "a01c7a80f127a8f75795e04f5463d7c458dccfc02f5148d755d59f9bbc8e3c3ea3490877"
+ "7928440747795955741296abcdd5386676419ed8049fedb489",
+ "3ad308faf04c42ee5ac69d36bc0aa9a96aacf55ea0f27dac4f52e088f023d206340a6324"
+ "874ffad169ff80624de24c96",
+ "209b72f9aae72c4339813573c3a8408a9e0be641ca863d81d9d14c48d0bf4cd44a1a7985"
+ "cff07b5d68f3f9478475645b",
+ "f6292e599b22a76eda95393cf59f4745fa6c472effd1f781879ad9a4437a98080b0b07da"
+ "dad0c249631c682d2836a977"},
+ {NID_secp384r1, NID_sha224,
+ "9ecb6f5ed3ba666a8536a81ef65012c2cb8b433508798d84708abb06dfb75503886f7838"
+ "4fb8c7a4d2d49ef539d9b8a0b60938c7f07471dda91f258b0d99691b38a8403a2bb3f956"
+ "bdfd09baba16d9b6877097a9b6213481b47a06e139d23ec7abad5668d21f912fdb70d31b"
+ "b9adf9b3ce80e308252fa81a51674f88d02db72b",
+ "f175e6ac42fd48ec9d652c10707c039c67c4cc61d8c45a373dcda6e4ca6c53e947e49c24"
+ "e01b48e7cdf92edfe6d316a1",
+ "04a40c64f595491ce15790a5a87fbe64c1800247b42acd08fe5257700719f46afc8acce0"
+ "e4ede0517a312092d5e3d089cdd565df9dc2f381cc0c5d84f382a43a98018524c0b4708a"
+ "44b3e2817f9719f29fbf9c15803591ed9b4790c5adaba9f433",
+ "812dcaa6d4f9a43ccc553288065d13761581485aa903a500a690ccafbd330ba4818c977b"
+ "98c4bb57f8a182a1afacfae9",
+ "d000f18d3e4c162ff0d16f662e6703e7a6f5bff7a333ed266fa4f44c752415946c34945c"
+ "342c20f739677186b1d80ab3",
+ "ae7f1271c89e0aaa238710d039ea73a69110cc28fcf426f2fe6754b63a59e417fa84f903"
+ "cf7dccb5468b43ff083bbfd5"},
+ {NID_secp384r1, NID_sha224,
+ "e55bfca78d98e68d1b63688db12485578f36c489766f4d0bfaa0088433ff12133aaca455"
+ "805095f2e655940860958b3ead111d9070778ee3bbf3e47e43d9eba8b8d9b1fdf72f793f"
+ "cde2bcaa334f3e35fa2cca531ea7cf27fe9ccba741e38ac26129b2d612bf54a34e0ae6c1"
+ "66c0fef07fcd2b9ac253d7e041a500f7be7b8369",
+ "46c4f0b228b28aaa0ec8cfdf1d0ed3408b7ae049312fb9eaf5f3892720e68684cc8ad298"
+ "44a3dc9d110edf6916dfb8bb",
+ "0413ddec844731b7e30c467451df08ca11d6c581cb64abd8a257671cffd26f5ccad4df7b"
+ "9ee8924047a88a5d2d7567609cd74ca94f590fd1d13e190cc1e03c3da6c3faab15c7dda0"
+ "34af3deefee8aeec3628fa8b1978c54cfcd071baa319a46ec0",
+ "2a9dd520207c40a379cd4036adef9ee60fa8bc8c0d39b3ad91850ac93fd543f218b16885"
+ "81f23481a090b0e4c73792ac",
+ "94e08cca20fe3866f643f53ec65faf3f2b4d80cd9bcc8ff8f88bb28da9eada324fc2d048"
+ "908dd3d08a9e0ebb547731bc",
+ "8e6f82c4d3069b14f4c844b4ca133a9503493265c9f77a7d4775eda67de76798a23dd7ea"
+ "48e0ac3c337dd62bf058319d"},
+ {NID_secp384r1, NID_sha224,
+ "02c6b3c83bd34b288d96409162aa4ff114e9d134bf948046eb5ebcc0c7fe9dfceadda83e"
+ "d69da2fac00c8840f6c702a3fc5e6959d70f7e8af923e99e4937232ae3b841ffefd2e62f"
+ "ab3671a7c94a0281b8ea5bc176add57c5c9b6893fe7f5d48ce7256b96510810c4e046168"
+ "a3c5be9843b84d5268a50349b3444341aa5490dd",
+ "1d7b71ef01d0d33a8513a3aed3cabb83829589c8021087a740ca65b570777089be721a61"
+ "172b874a22a1f81aef3f8bb6",
+ "048d2721370df8f097d5a69396249a315f6037dc7045b3da11eacae6d43036f779d5de70"
+ "53d101768b42cc2b1283a3aaeaa046039ae662141f9954d278183eaa2e03917fe58583e3"
+ "2d344074d59d60caa5b0949c53066525d5cca923e2f201502e",
+ "d1b25ad25581cad17e96f1d302251681fee5b2efbb71c3c15ff035b2145d015d18e0e52d"
+ "c3187ab5a560277b3a3929b0",
+ "d836f52b14c7391744868daa2d5cf27eb9380b9b6176195573d5b04842e9f2fc3794d6cf"
+ "877feafee63d11b05f6a6bee",
+ "8b89042fef2c04d4bd6c9d66a06a010514321d623a5f8d57ba5ac3686872eaabca9e0ba2"
+ "d058ae7028e870acf03ca32d"},
+ {NID_secp384r1, NID_sha224,
+ "94f8bfbb9dd6c9b6193e84c2023a27dea00fd48356909faec2161972439686c146184f80"
+ "686bc09e1a698af7df9dea3d24d9e9fd6d7348a146339c839282cf8984345dc6a51096d7"
+ "4ad238c35233012ad729f262481ec7cd6488f13a6ebac3f3d23438c7ccb5a66e2bf820e9"
+ "2b71c730bb12fd64ea1770d1f892e5b1e14a9e5c",
+ "cf53bdd4c91fe5aa4d82f116bd68153c907963fa3c9d478c9462bb03c79039493a8eaeb8"
+ "55773f2df37e4e551d509dcd",
+ "043a65b26c08102b44838f8c2327ea080daf1e4fc45bb279ce03af13a2f9575f0fff9e2e"
+ "4423a58594ce95d1e710b590cefe9dcbcb2ec6e8bd8ed3af3ff0aa619e900cc8bab3f50f"
+ "6e5f79fac09164fb6a2077cc4f1fed3e9ec6899e91db329bf3",
+ "df31908c9289d1fe25e055df199591b23e266433ab8657cc82cb3bca96b88720e229f8df"
+ "d42d8b78af7db69342430bca",
+ "6770eea9369d6718e60dd0b91aee845ff7ed7e0fcc91675f56d32e5227fd3a4612bbcb15"
+ "56fe94a989b9e3bcc25bb20e",
+ "c43072f706c98126d06a82b04251e3ecb0ba66c4bb6cd7c025919b9cc6019cdc635256d2"
+ "a7fa017b806b1e88649d2c0d"},
+ {NID_secp384r1, NID_sha256,
+ "663b12ebf44b7ed3872b385477381f4b11adeb0aec9e0e2478776313d536376dc8fd5f3c"
+ "715bb6ddf32c01ee1d6f8b731785732c0d8441df636d8145577e7b3138e43c32a61bc124"
+ "2e0e73d62d624cdc924856076bdbbf1ec04ad4420732ef0c53d42479a08235fcfc4db4d8"
+ "69c4eb2828c73928cdc3e3758362d1b770809997",
+ "c602bc74a34592c311a6569661e0832c84f7207274676cc42a89f058162630184b52f0d9"
+ "9b855a7783c987476d7f9e6b",
+ "040400193b21f07cd059826e9453d3e96dd145041c97d49ff6b7047f86bb0b0439e90927"
+ "4cb9c282bfab88674c0765bc75f70d89c52acbc70468d2c5ae75c76d7f69b76af62dcf95"
+ "e99eba5dd11adf8f42ec9a425b0c5ec98e2f234a926b82a147",
+ "c10b5c25c4683d0b7827d0d88697cdc0932496b5299b798c0dd1e7af6cc757ccb30fcd3d"
+ "36ead4a804877e24f3a32443",
+ "b11db00cdaf53286d4483f38cd02785948477ed7ebc2ad609054551da0ab0359978c6185"
+ "1788aa2ec3267946d440e878",
+ "16007873c5b0604ce68112a8fee973e8e2b6e3319c683a762ff5065a076512d7c98b27e7"
+ "4b7887671048ac027df8cbf2"},
+ {NID_secp384r1, NID_sha256,
+ "784d7f4686c01bea32cb6cab8c089fb25c341080d9832e04feac6ea63a341079cbd562a7"
+ "5365c63cf7e63e7e1dddc9e99db75ccee59c5295340c2bba36f457690a8f05c62ab001e3"
+ "d6b333780117d1456a9c8b27d6c2504db9c1428dad8ba797a4419914fcc636f0f14ede3f"
+ "ba49b023b12a77a2176b0b8ff55a895dcaf8dbce",
+ "0287f62a5aa8432ff5e95618ec8f9ccaa870dde99c30b51b7673378efe4ccac598f4bbeb"
+ "bfd8993f9abb747b6ad638b9",
+ "04b36418a3014074ec9bbcc6a4b2367a4fb464cca7ec0a324cb68670d5c5e03e7a7eb07d"
+ "a117c5ea50b665ab62bd02a4914ea299c30e7d76e2c5905babada2d3bb4ee5eb35a5a236"
+ "05cdb0d5133471a53eb9e6758e49105a4eaf29d2267ba84ef2",
+ "935eeab3edeb281fbd4eead0d9c0babd4b10ff18a31663ee9de3bfa9ae8f9d266441158e"
+ "a31c889ded9b3c592da77fd7",
+ "738f9cb28f3b991335ef17b62559255faf75cad370a222464a492e27bb173c7f16b22100"
+ "ada6b695875c7e4b1a28f158",
+ "bc998c30e1491cd5d60dc7d1c38333165efe036b2a78db9b8f0e85ee68619cfba654e11a"
+ "e5ca5ee5a87099c27cf22442"},
+ {NID_secp384r1, NID_sha256,
+ "45e47fccc5bd6801f237cdbeac8f66ebc75f8b71a6da556d2e002352bd85bf269b6bc7c9"
+ "28d7bb1b0422601e4dd80b29d5906f8fcac212fe0eaaf52eda552303259cbcbe532e60ab"
+ "d3d38d786a45e39a2875bce675800a3eaeb9e42983d9fd9031180abd9adccc9ba30c6c19"
+ "8b4202c4dd70f241e969a3c412724b9b595bc28a",
+ "d44d3108873977036c9b97e03f914cba2f5775b68c425d550995574081191da764acc501"
+ "96f6d2508082a150af5cd41f",
+ "04c703835d723c85c643260379d8445b0c816fe9534351921e14a8e147fe140ec7b0c4d7"
+ "04f8dc66a232b2333b28f03deec5d0bb054053fd86c26f147c4966757aa04b00513a02d4"
+ "27b8d06c16055c607955efdc518d338abfe7927c195dc28588",
+ "c80f63e080650c8a21e4f63a62ec909adfb7d877f365d11ee1cb260baf112eb4730c161c"
+ "1d99dba98fc0d5bbd00dc97d",
+ "81de2810cde421997013513951a3d537c51a013110d6dbb29251410bcb5ba001a9686b84"
+ "90f1e581e282fd2ed0974b22",
+ "9cab0bbaffe91c7677ec3dd1f17060211a3cc0be574cbca064aa8c4b66ba6e64f3d80e83"
+ "da895042ca32d311c388d950"},
+ {NID_secp384r1, NID_sha256,
+ "c33ff63b4e6891e00b2349b3f2907c417ca355560544a91e24a7a0ee260d6850aeded29f"
+ "c0176b6039ca6187e8333391047cceaf14b1077df8f147dad84d36b2dac5666dc2f69dc9"
+ "b58b88cc73956efdb3b47f91831d5875051c76b0c4e9fc087012a1f03eeee85d6745b46a"
+ "a50bd9cb0110c2c94508765cec162ee1aa841d73",
+ "d5b72cbb6ec68aca46b9c27ad992afd8ffa02cb3067b234fcfa6e272e3b31be760695ff7"
+ "df988b57663057ab19dd65e3",
+ "04135a6542612f1468d8a4d01ff1914e532b1dd64d3627db9d403dc325651d3f82b0f6f0"
+ "fd1dbdeca2be967c4fb3793b5fcbbd40f6d3a38d0dfb64582ff4789d7b268241bc0c36de"
+ "2884bccfaeeff3b7b2b46a30bb35719804e0d11124b4e7f480",
+ "9da6de7c87c101b68db64fea40d97f8ad974ceb88224c6796c690cbf61b8bd8eede8470b"
+ "3caf6e6106b66cf3f0eebd55",
+ "17840911ecdf6ae0428b2634f442163c2c11b8dbf0cc7a5596fbe4d33e3e52f9d99e99ad"
+ "169867b1f39e89c9180cedc2",
+ "dd7ed67e480866d0474379ea4afff72870746f4feef2153be42f13bf472b1613d7faa5c0"
+ "abb7f7464070f94d7cf3f234"},
+ {NID_secp384r1, NID_sha256,
+ "f562f2b9d84b0e96a52532c3b43c39c8018c738bd8dc3797a7de7353971b2729d522d696"
+ "1b1f2e4df3f6a4bd3653e6d72b74fc0dba92ab939c4b542e994e5db6dd8ed4f56f651e69"
+ "9052e791237ae1f552f990ad156226ae8f7bf17fcbfa564f749604f97e9df0879d509857"
+ "47d981422a23040fe52f5ec74caf1d4aaad8a710",
+ "218ee54a71ef2ccf012aca231fee28a2c665fc395ff5cd20bde9b8df598c282664abf915"
+ "9c5b3923132983f945056d93",
+ "0401989ff07a7a452d8084937448be946bfedac4049cea34b3db6f7c91d07d69e926cce0"
+ "af3d6e88855a28120cf3dba8dfeb064e029d7539d4b301aabafe8de8870162deffe6383b"
+ "c63cc005add6ee1d5ced4a5761219c60cd58ad5b2a7c74aaa9",
+ "c5d39b436d851d94691f5f4aa9ef447f7989d984f279ae8b091aef5449ac062bcc056774"
+ "0f914624ad5b99fc32f9af0b",
+ "07d5b1b12877e8cb5e0aa5e71eeeb17bf0aa203064c7e98b3a1798a74dc9717252dc47c7"
+ "f06aaf1d5fe15b868323bbb9",
+ "69428cf101a7af5d08161a9fd7af212e02e33b6062aebdce4c96bf3a0684b5394cb902ca"
+ "7c2dec6e2f01f40c4576009d"},
+ {NID_secp384r1, NID_sha256,
+ "ace953ae851f571d71779aa120915f27450b236da23e9106f8d0756abdd2586193794122"
+ "8d225d5fb1aa1b1ebf759b1e326aeb3b6cd0cd87edd2ab9f6a7ad67b63d2c501d6a550ed"
+ "b2e7c9d216cc8af78dd33546af64d00abed4d0d2cfc5c9a7b5a055dbe8f7547902d185cf"
+ "46937314832bc5c602419a82ab83dbd9d3bd5aff",
+ "e6ab171f6937c000e144950801ad91023ae8e8476856c2592d9f7d5bb7180fd729211803"
+ "d39a412ead6c0be761cfa5d1",
+ "0438bc42b8c9d8866d09b214398d584b1b24a488dfacc3420d1e9506aa825b19fdf1ba74"
+ "e7b8f547f47b571467fe8c4d1f5179d62668d3f6a7ab5c8e3761a685e12008fb87d0529a"
+ "97645f65cfb5364376c1b6682e0ffcddd0bcd995c41d013ad3",
+ "05e9718aea9669c9e434f73866da5f252dec6d24c47a1c4ee3233450b6ec626de9746ebe"
+ "095b285558dfc89fc1b622fe",
+ "df9bab9dd1f22ec6f27116f38831cb2089aa78aa8c073024a0faddd9a48e810a5e8e2cad"
+ "d80fbf8dbd6088c71fe30b5b",
+ "1e0e8718567d12d18558c57f9e87a755c309e4ffb497335a3adfc8d7475ce8fd882d5dc3"
+ "3a8f5a16274b7ad74bb7862a"},
+ {NID_secp384r1, NID_sha256,
+ "9635ab832240be95301bedb94c5aec169eedc198cbbdfedcf41e9b586143d829b4597a6b"
+ "2a81902828332825fd84a785f187a3894e21bd99d22c4f94dcf34453fc052f15ec64d144"
+ "7c932cb38fcdd30b7be851963409c11881438cbaad7e96f9efbde317f2235d66af804477"
+ "a5dfe9f0c51448383830050ecf228889f83631e1",
+ "14acd516c7198798fd42ab0684d18df1cd1c99e304312752b3035bed6535a8975dff8acf"
+ "c2ba1675787c817b5bff6960",
+ "0429909d143cf7ee9c74b11d52f1a8f3ebd4a720c135612ca5618d3f432f03a95602ee75"
+ "a2057e1d7aab51d0648ac0b334404b6c5adffbadfa1b0380ae89fed96ec1ca16cc28661e"
+ "623d0f1c8b130fbaa96dd7257eae2bf03c2d3dcbc3dbc82c58",
+ "7f623c103eaa9099a0462e55f80519c565adaeffcb57a29993f3a8a92e63a560be8f0fb9"
+ "d23dc80bff1064bb41abad79",
+ "932ab291950c16b2b19a8036cd2e905714c6229cb190a73b3ea49c48dd8e76063a453c7c"
+ "3267a57597d2973678216296",
+ "d17d4c5ddbb9c27beebf526f113b416c8abfad53d11c4224813c7f351ba41a77dd4e77d6"
+ "e4a65bef2c9f62cc37a469a5"},
+ {NID_secp384r1, NID_sha256,
+ "d98b9a7d4fe9d0fd95de5056af164a8b7882cd34ab5bde83a2abb32dc361eb56a479a3a6"
+ "119db3b91dcad26a42d2206749567f0d97c34a981a91fc734921821a429f6a53401743a5"
+ "c406ba9d560f956203abc9d1f32f1a13e7d7b290f75c95fdbf857ea597021461c06a3aac"
+ "fa554ede3d69e4ff03bbbee5b7463ec77de2b3b2",
+ "2e780550984f3a00cb1e412429b33493c6eb6cd86d12f9d80588c247dcf567bd04296d2d"
+ "4b24b889d9c54954b7f38f57",
+ "0437dac42ef04663238443ef33e8addee2e78c40d50a1751913a7f5c37d1f23a26c7f86e"
+ "16055c788b8ca9554f06b2f2efbbed1549652904e3d00c39b01cc0460dbaf3185e6190c2"
+ "705677a9701de1fe56dff4f4d8418ee15059ff8fc36800982d",
+ "b788ca82811b0d4e4841765c71eafaa1e575378beedcd3860d8b92db3d070ac5aef7c425"
+ "067860fbee6c50cf0c642bbb",
+ "7292b3851870daeb2555a8a2fb198ead78739fcfb75327e5c32a82c6b77d58983e5ad548"
+ "ccb75dcf9411039c9576d9b9",
+ "a378c61802d9f1dd062b6e18f16416a954018f77df4df95ad1b983570377d5cfce4cc786"
+ "1759e802c52f81abc4f49aac"},
+ {NID_secp384r1, NID_sha256,
+ "1b4c754ac1c28dc415a71eac816bde68de7e8db66409af835838c5bb2c605111108a3bf1"
+ "3606ed5d8ade5ed72e50503e0de664416393d178ea4eec834d8d6f15039847b410080fd5"
+ "529b426e5aadd8451c20ebd92d787921f33e147bcbeb327b104d4aab1157fc1df33e4d76"
+ "8404b5ccb7110055c2508c600f429fd0c21b5784",
+ "a24d0fe90808aecc5d90626d7e6da7c9be5dfd4e1233c7f0f71f1b7c1c6fd318fafe1855"
+ "9c94718f044cf02ed5107cb1",
+ "04ec8ae1fb9bb88589d27d6f27d790392853396f37bc0c381631d85800fc668eea0886bf"
+ "1c6cff801147df19778d5b16041e1a8336c1e2506f8ee388b55cc648ae73b9295ea78467"
+ "979d2affb364536fad28120f51ec62a67cbb6ce7784780389f",
+ "755d025509b73cf1ea8817beb772ad150b4c17a52378be187daffe3db0158921e5e552d1"
+ "ca3c85df28519939f3cb794d",
+ "23ff2ffa62bbd427d49995d9c9950116e0d5a06ef076a4553448bc109e6482c5e87d4c83"
+ "3bc88de0bc722bc98cae2e61",
+ "9aea13d487c3ea6917e16374caafcf0321c12a80d28902dd8cd81909bb04b8c439e2491e"
+ "504756742d0d0bfb15a9c34c"},
+ {NID_secp384r1, NID_sha256,
+ "3cd8c053741dd9f974c6c5dbf8a1e5728e9b5eafb1cbcfc3452f5fbbda32a8c7564dee15"
+ "7e8d902c52514361da6d972934a56b3276e2a9379e328e24282e0db697c5bc29090fc489"
+ "ec46b7b188325dd4e96494c250de0f4a89fe2ccf919eaefcfb50c288113e6df92714feb7"
+ "f46e0822478c796d0f4ff3447a32997e892693ce",
+ "1c172e25732555afee7ded67a496f3f11babc0875898619f4519c29321e201e8ba1149f2"
+ "c20b48e5efba235d58fea7c3",
+ "0413e9e2c8bbcfe26e8f5f43c86268c5980ee693236a6b8777f3a7323718baa21005b482"
+ "d08aafc6fa6e3667d91353544c9ba181b3ee505be030f87ecd249b00670a791489b42af0"
+ "4976013483ff95b630c91c01e95757e906129f2f9b4ce719a8",
+ "08aec9a9e58bdc028805eb5dc86073d05fff1f5fb3fd17f510fc08f9272d84ba7aa66b6f"
+ "77d84fe6360bd538192bf01a",
+ "2b4337c3dfbc886ffad7858ae2480cb62227e12205a70361c42f1a5ca9e658ee30fc3cf4"
+ "030d85bd065edad83b99821f",
+ "2550cef8574bf17fb3d6b0c9d04ab266962bac3621bac233ff2e4989712d2a4a07171c0a"
+ "ebd3040cd6a32c3bd3efb8b5"},
+ {NID_secp384r1, NID_sha256,
+ "ed955dda6d9650124804d3deb6aeef900e520faf98b1ef6f14efcada7ca2433f09329b70"
+ "897305e59c89024d76e466b28fe02cb2a9b12e2478c66470259d7c282137a19e5a04ffad"
+ "ea55245c0f34a681593fedc42931d8b3321b3d82e9cc102cd00540ad311ec7bd8c9d06db"
+ "21bea4ca3dc74d98931ae0d40494aefc2345132c",
+ "5b96555dbd602e71d4d5d3aee19fd1ea084ee23d4f55c10937056762bc2015cbded2e898"
+ "a487f5482ab7e1e971245907",
+ "046e14c17bb831b0112d7f3543c5fd17c78379a516c9e0539b03b8b4bfdead2820343fc8"
+ "4b0382807573ded6c4d97b70037f60021d2de77546db666721c9aec84c3e2ba8de0ba774"
+ "43600dc77e6839bbf9316271adb22d4cb47d08f745ecb1dafd",
+ "7ad6f4ffd2b429ba10c6f112f800cacf1ad508cf8eba880893bb9659c1ddaaec57dcdc09"
+ "3a114500460d457bdde324f2",
+ "faea950ca513806bc59028c638d6302ffc86978c3ff1f06db015dd7c4777050186cb8dd8"
+ "71f5e926e1416539c1939c2f",
+ "2c592240eabb8a1f9878e1b5c9d5d3ced7b3a7ae571f5a86494ed2ca567a36eb72e7bea8"
+ "934bded29594bccf67ca84bd"},
+ {NID_secp384r1, NID_sha256,
+ "ce395b001da2a58e49691605d44af4206306f62f561bf2394060d2a5591a350277166bed"
+ "043819035f1e60b5b3fb5ae113ddd0473f8ef6b2b050c472c2a264e1d8b3ca82a4f158c4"
+ "0f2d78d9ce5e5ea6de243f2e1f13f47f6c6f403b270912c81c636be35b396ca58468b3fb"
+ "60aa83911d61441a0528d973bc31f965d4059080",
+ "8df9c3c710a25192f3dea970910bb3784e3509874cccf4334823eb9f7a8d05b067f2d812"
+ "d61e878e24b093089a0b8245",
+ "0492c9e32b20cbe6d4ed0727c6c942cf804a72031d6dfd69078b5e78ebce2d192268f1f5"
+ "e2abce5aaf1f8d6a35f136837fd5167905fa7689e03b9fb1487c566f62b36f2bc1c4a2bf"
+ "b6a836113b5c8d46f7c1ca51b628b14397fbc06ec9a07f4849",
+ "258dd05919735cd48627c9fe9fac5c252604aa7c2ae0460d7c1149cd96b7bd2ba195ad39"
+ "3bf392a2499f06aead5ba050",
+ "413793bcce52eda0f5b675a8d687cce86d5c9e1659b38a89e96246b5e05f8b0934d17dbb"
+ "a3b2ea44c838aa5fd87125d1",
+ "ce7309fc2d6e3438818a1a29a997410b025b0403de20795b97c86c46034a6b02afeed279"
+ "aeb06522d4de941bfdf50469"},
+ {NID_secp384r1, NID_sha256,
+ "ffefe316455ae4ffdb890bb804bf7d31424ea060ecacff419d0f7134ff76ad434063c0ec"
+ "0f8bb7059584d3a03f3625bb9e9f66ace1a47ac4b8f3e76fc7c420c55edb1427d1fa15b3"
+ "87ad73d02b0595c4e74321be8822752230a0dcfb85d60bfa186da7623a8ec3eb1633f0a2"
+ "94b23ae87216b14ccee9ef56418dcfab9427371e",
+ "6002cb01ad2ce6e7101665d47729c863b6435c3875de57a93f99da834f73e3e6e2b3880e"
+ "06de3e6bd1d51ea1807ab0d7",
+ "04e4216e1a20af8e8e3e74653ac016545001066e53e64af679ad1c85841bb475aed3e00e"
+ "ad052ae9955f48d675ff4ace568804c17641be21d4c6386902c9c5c888af25d97ca38370"
+ "3ea4a85cf93bbab360c0bbd2993374da499a303778650270b9",
+ "6b9507fd2844df0949f8b67b6fde986e50173713ac03df2edf65cb339859321cd3a2b9aa"
+ "b8356f95dec62460ab19c822",
+ "018891f6381ed358b422f79a299cf0789cee783ba388af4d82cbbe17f3709751b7fd9400"
+ "e9702820c28b9afc62fdf489",
+ "aef73bd590802b2fd2a65c4f7fec89f9b24ecc199a69254785925f334cd1977c5e1f858b"
+ "d9830d7d7d243ea707b1af0b"},
+ {NID_secp384r1, NID_sha256,
+ "304bccb718b3a9e12669913490cc5bcc1979287b56c628fad706c354241e88d10e81445a"
+ "2853e3fc32ece094ba1abc3fdcab61da27f9a0fca739371049fed462ee6b08fa31cde127"
+ "20f8144a6f00ce9b1a7a6eadd231f126717074b4efb5c72ce673ca5859000a436f67a338"
+ "d698759f12c461247c45a361fb6cb661fdbe6714",
+ "d8559c3543afc6f7b3dc037a687bad2630283757ba7862fd23ed14e2151a4cf5fed3d249"
+ "268f780e0b96b6b46274a2d5",
+ "045f94223918f2ec9f0a08342cb99e724881c92453957c59672860f69daac01b660331a0"
+ "f5845e50f1f27766b219c89e7ed76d83396130d10d1168d76c7fc83742ffffbe66d9f4da"
+ "4ca3f95f5ad6dac8cc7bb65d16d317d37aa99fdbf30ec7439c",
+ "4ad5a92b5b8e170b71c8a7ed419dc624c7680004562b8d16a37b6e639f581ce81d5f0d98"
+ "cce44d54c4e7136229148340",
+ "f7baa6a5488ab462ea59aa31a36402b15880c68110b6069f51ede0c3b52a7b1e5bf926fd"
+ "be95768931b7d5f87058835c",
+ "28b1c4ef448a432f7c91b98b0c6471691e888211b6af907369a8930859b8cdb2e94f466a"
+ "44f4e52f46df9b0d65e35de6"},
+ {NID_secp384r1, NID_sha256,
+ "64f9f05c2805acf59c047b5f5d2e20c39277b6d6380f70f87b72327a76170b872bfe4b25"
+ "c451602acfb6a631bb885e2655aee8abe44f69c90fb21ffde03cef2a452c468c6369867d"
+ "fd8aa26ac24e16aa53b292375a8d8fbf988e302bf00088e4c061aa12c421d8fe3cbd7273"
+ "b0e8993701df1c59431f436a08b8e15bd123d133",
+ "b9208cbfd186ddfa3efd5b71342ae1efb01a13ebc4c2a992a2cbee7254b7846a4252ece1"
+ "104b89d13d835911f8511224",
+ "04166e6d96cb60d916fd19888a2dd945a3306ff0d7b0a5e30729f47d3dac3de2be3fd5cd"
+ "7437e9a80d6c48cf960d2d36f8e6b2b70f131092ae210f29cc6bad701318bddb31bddf92"
+ "1695855c6208941100d0cee5d10799f8b835afe3ea510e8229",
+ "da706ab5f61531f2378b3c0a2b342108cd119eadaa88b859df64923bccfb0ec2393fd312"
+ "826f65c15a6587d1d460015b",
+ "d9124c42858080c62400e4d4d8136304e03d910cbe9b9b3487f4d27c7e0540a314d34bef"
+ "8c850045c8746ca631c11c42",
+ "bbf6424a3b70166fa799f49e918439d515327039258ef9bd88435a59c9c19659f8ec3c86"
+ "60720b0c08354ff60e0f5a76"},
+ {NID_secp384r1, NID_sha384,
+ "6b45d88037392e1371d9fd1cd174e9c1838d11c3d6133dc17e65fa0c485dcca9f52d41b6"
+ "0161246039e42ec784d49400bffdb51459f5de654091301a09378f93464d52118b48d44b"
+ "30d781eb1dbed09da11fb4c818dbd442d161aba4b9edc79f05e4b7e401651395b53bd8b5"
+ "bd3f2aaa6a00877fa9b45cadb8e648550b4c6cbe",
+ "201b432d8df14324182d6261db3e4b3f46a8284482d52e370da41e6cbdf45ec2952f5db7"
+ "ccbce3bc29449f4fb080ac97",
+ "04c2b47944fb5de342d03285880177ca5f7d0f2fcad7678cce4229d6e1932fcac11bfc3c"
+ "3e97d942a3c56bf34123013dbf37257906a8223866eda0743c519616a76a758ae58aee81"
+ "c5fd35fbf3a855b7754a36d4a0672df95d6c44a81cf7620c2d",
+ "dcedabf85978e090f733c6e16646fa34df9ded6e5ce28c6676a00f58a25283db8885e16c"
+ "e5bf97f917c81e1f25c9c771",
+ "50835a9251bad008106177ef004b091a1e4235cd0da84fff54542b0ed755c1d6f251609d"
+ "14ecf18f9e1ddfe69b946e32",
+ "0475f3d30c6463b646e8d3bf2455830314611cbde404be518b14464fdb195fdcc92eb222"
+ "e61f426a4a592c00a6a89721"},
+ {NID_secp384r1, NID_sha384,
+ "d768f41e6e8ec2125d6cf5786d1ba96668ac6566c5cdbbe407f7f2051f3ad6b1acdbfe13"
+ "edf0d0a86fa110f405406b69085219b5a234ebdb93153241f785d45811b3540d1c37424c"
+ "c7194424787a51b79679266484c787fb1ded6d1a26b9567d5ea68f04be416caf3be9bd2c"
+ "afa208fe2a9e234d3ae557c65d3fe6da4cb48da4",
+ "23d9f4ea6d87b7d6163d64256e3449255db14786401a51daa7847161bf56d494325ad2ac"
+ "8ba928394e01061d882c3528",
+ "045d42d6301c54a438f65970bae2a098cbc567e98840006e356221966c86d82e8eca515b"
+ "ca850eaa3cd41f175f03a0cbfd4aef5a0ceece95d382bd70ab5ce1cb77408bae42b51a08"
+ "816d5e5e1d3da8c18fcc95564a752730b0aabea983ccea4e2e",
+ "67ba379366049008593eac124f59ab017358892ee0c063d38f3758bb849fd25d867c3561"
+ "563cac1532a323b228dc0890",
+ "fb318f4cb1276282bb43f733a7fb7c567ce94f4d02924fc758635ab2d1107108bf159b85"
+ "db080cdc3b30fbb5400016f3",
+ "588e3d7af5da03eae255ecb1813100d95edc243476b724b22db8e85377660d7645ddc1c2"
+ "c2ee4eaea8b683dbe22f86ca"},
+ {NID_secp384r1, NID_sha384,
+ "6af6652e92a17b7898e40b6776fabaf0d74cf88d8f0ebfa6088309cbe09fac472eeac2aa"
+ "8ea96b8c12e993d14c93f8ef4e8b547afe7ae5e4f3973170b35deb3239898918c70c1056"
+ "332c3f894cd643d2d9b93c2561aac069577bbab45803250a31cd62226cab94d8cba7261d"
+ "ce9fe88c210c212b54329d76a273522c8ba91ddf",
+ "b5f670e98d8befc46f6f51fb2997069550c2a52ebfb4e5e25dd905352d9ef89eed5c2ecd"
+ "16521853aadb1b52b8c42ae6",
+ "0444ffb2a3a95e12d87c72b5ea0a8a7cb89f56b3bd46342b2303608d7216301c21b5d292"
+ "1d80b6628dc512ccb84e2fc278e4c1002f1828abaec768cadcb7cf42fbf93b1709ccae6d"
+ "f5b134c41fae2b9a188bfbe1eccff0bd348517d7227f2071a6",
+ "229e67638f712f57bea4c2b02279d5ccad1e7c9e201c77f6f01aeb81ea90e62b44b2d210"
+ "7fd66d35e56608fff65e28e4",
+ "b11db592e4ebc75b6472b879b1d8ce57452c615aef20f67a280f8bca9b11a30ad4ac9d69"
+ "541258c7dd5d0b4ab8dd7d49",
+ "4eb51db8004e46d438359abf060a9444616cb46b4f99c9a05b53ba6df02e914c9c0b6cc3"
+ "a9791d804d2e4c0984dab1cc"},
+ {NID_secp384r1, NID_sha384,
+ "b96d74b2265dd895d94e25092fb9262dc4f2f7a328a3c0c3da134b2d0a4e2058ca994e34"
+ "45c5ff4f812738e1b0c0f7a126486942a12e674a21f22d0886d68df2375f41685d694d48"
+ "7a718024933a7c4306f33f1a4267d469c530b0fed4e7dea520a19dd68bf0203cc87cad65"
+ "2260ed43b7b23f6ed140d3085875190191a0381a",
+ "de5975d8932533f092e76295ed6b23f10fc5fba48bfb82c6cc714826baf0126813247f8b"
+ "d51d5738503654ab22459976",
+ "04f1fabafc01fec7e96d982528d9ef3a2a18b7fe8ae0fa0673977341c7ae4ae8d8d3d674"
+ "20343d013a984f5f61da29ae381a31cf902c46343d01b2ebb614bc789c313b5f91f9302a"
+ "d9418e9c797563e2fa3d44500f47b4e26ad8fdec1a816d1dcf",
+ "fc5940e661542436f9265c34bce407eff6364bd471aa79b90c906d923e15c9ed96eea4e8"
+ "6f3238ea86161d13b7d9359d",
+ "c2fbdd6a56789024082173725d797ef9fd6accb6ae664b7260f9e83cb8ab2490428c8b9c"
+ "52e153612295432fec4d59cd",
+ "8056c5bb57f41f73082888b234fcda320a33250b5da012ba1fdb4924355ae679012d81d2"
+ "c08fc0f8634c708a4833232f"},
+ {NID_secp384r1, NID_sha384,
+ "7cec7480a037ff40c232c1d2d6e8cd4c080bbeecdaf3886fccc9f129bb6d202c316eca76"
+ "c8ad4e76079afe622f833a16f4907e817260c1fa68b10c7a151a37eb8c036b057ed4652c"
+ "353db4b4a34b37c9a2b300fb5f5fcfb8aa8adae13db359160f70a9241546140e550af007"
+ "3468683377e6771b6508327408c245d78911c2cc",
+ "11e0d470dc31fab0f5722f87b74a6c8d7414115e58ceb38bfcdced367beac3adbf1fe9ba"
+ "5a04f72e978b1eb54597eabc",
+ "041950166989164cbfd97968c7e8adb6fbca1873ebef811ea259eb48b7d584627f0e6d6c"
+ "64defe23cbc95236505a252aa141ef424b5cb076d4e32accd9250ea75fcf4ffd81814040"
+ "c050d58c0a29b06be11edf67c911b403e418b7277417e52906",
+ "e56904028226eb04f8d071e3f9cefec91075a81ca0fa87b44cae148fe1ce9827b5d1910d"
+ "b2336d0eb9813ddba3e4d7b5",
+ "c38ef30f55624e8935680c29f8c24824877cf48ffc0ef015e62de1068893353030d1193b"
+ "f9d34237d7ce6ba92c98b0fe",
+ "651b8c3d5c9d5b936d300802a06d82ad54f7b1ba4327b2f031c0c5b0cb215ad4354edc7f"
+ "932d934e877dfa1cf51b13fe"},
+ {NID_secp384r1, NID_sha384,
+ "00ce978603229710345c9ad7c1c2dba3596b196528eea25bd822d43ca8f76a024e292177"
+ "03dd0652c8a615284fc3edcc1c5ad1c8d5a8521c8e104c016a24e50c2e25066dcb56596f"
+ "913b872767e3627aa3e55ec812e9fdac7c2f1beade83aef093e24c9c953982adf431a776"
+ "880ae4583be158e11cdab1cbca3ad3a66900213d",
+ "5c6bbf9fbcbb7b97c9535f57b431ed1ccae1945b7e8a4f1b032016b07810bd24a9e20055"
+ "c0e9306650df59ef7e2cd8c2",
+ "042e01c5b59e619e00b79060a1e8ef695472e23bf9a511fc3d5ed77a334a242557098e40"
+ "972713732c5291c97adf9cf2cf563e3fe4ad807e803b9e961b08da4dde4cea8925649da0"
+ "d93221ce4cdceabc6a1db7612180a8c6bef3579c65539b97e9",
+ "03d23f1277b949cb6380211ad9d338e6f76c3eedac95989b91d0243cfb734a54b19bca45"
+ "a5d13d6a4b9f815d919eea77",
+ "abab65308f0b79c4f3a9ff28dd490acb0c320434094cef93e75adfe17e5820dc1f77544c"
+ "faaacdc8cf9ac8b38e174bef",
+ "11b783d879a6de054b316af7d56e526c3dce96c85289122e3ad927cfa77bfc50b4a96c97"
+ "f85b1b8221be2df083ff58fb"},
+ {NID_secp384r1, NID_sha384,
+ "54a255c18692c6162a46add176a0ae8361dcb8948f092d8d7bac83e160431794d3b98128"
+ "49bf1994bcdcfba56e8540c8a9ee5b93414548f2a653191b6bb28bda8dc70d45cc1b92a4"
+ "89f58a2d54f85766cb3c90de7dd88e690d8ebc9a79987eee1989df35af5e35522f83d85c"
+ "48dda89863171c8b0bf4853ae28c2ac45c764416",
+ "ffc7dedeff8343721f72046bc3c126626c177b0e48e247f44fd61f8469d4d5f0a74147fa"
+ "baa334495cc1f986ebc5f0b1",
+ "0451c78c979452edd53b563f63eb3e854a5b23e87f1b2103942b65f77d024471f75c8ce1"
+ "cc0dfef83292b368112aa5126e313e6aaf09caa3ba30f13072b2134878f14a4a01ee8632"
+ "6cccbff3d079b4df097dc57985e8c8c834a10cb9d766169366",
+ "c3de91dbe4f777698773da70dd610ef1a7efe4dc00d734399c7dd100728006a502822a5a"
+ "7ff9129ffd8adf6c1fc1211a",
+ "f4f477855819ad8b1763f53691b76afbc4a31a638b1e08c293f9bcd55decf797f9913ca1"
+ "28d4b45b2e2ea3e82c6cf565",
+ "7c26be29569ef95480a6d0c1af49dc10a51a0a8931345e48c0c39498bfb94d62962980b5"
+ "6143a7b41a2fddc8794c1b7f"},
+ {NID_secp384r1, NID_sha384,
+ "692a78f90d4f9d5aee5da536314a78d68c1feabbfe5d1ccea7f6059a66c4b310f8051c41"
+ "1c409ccf6e19a0cbd8b8e100c48317fe8c6d4f8a638b9551ce7ee178020f04f7da3001a0"
+ "e6855225fb3c9b375e4ed964588a1a41a095f3f476c42d52ffd23ce1702c93b56d4425d3"
+ "befcf75d0951b6fd5c05b05455bdaf205fe70ca2",
+ "adca364ef144a21df64b163615e8349cf74ee9dbf728104215c532073a7f74e2f6738577"
+ "9f7f74ab344cc3c7da061cf6",
+ "04ef948daae68242330a7358ef73f23b56c07e37126266db3fa6eea233a04a9b3e491523"
+ "3dd6754427cd4b71b75854077d009453ef1828eaff9e17c856d4fc1895ab60051312c3e1"
+ "db1e3766566438b2990cbf9945c2545619e3e0145bc6a79004",
+ "a2da3fae2e6da3cf11b49861afb34fba357fea89f54b35ce5ed7434ae09103fe53e2be75"
+ "b93fc579fedf919f6d5e407e",
+ "dda994b9c428b57e9f8bbaebba0d682e3aac6ed828e3a1e99a7fc4c804bff8df151137f5"
+ "39c7389d80e23d9f3ee497bf",
+ "a0d6b10ceffd0e1b29cf784476f9173ba6ecd2cfc7929725f2d6e24e0db5a4721683640e"
+ "aa2bbe151fb57560f9ce594b"},
+ {NID_secp384r1, NID_sha384,
+ "3b309bb912ab2a51681451ed18ad79e95d968abc35423a67036a02af92f575a0c89f1b66"
+ "8afe22c7037ad1199e757a8f06b281c33e9a40bab69c9874e0bb680b905d909b9dc24a9f"
+ "e89bb3d7f7d47082b25093c59754f8c19d1f81f30334a8cdd50a3cb72f96d4b3c305e60a"
+ "439a7e93aeb640dd3c8de37d63c60fb469c2d3ed",
+ "39bea008ec8a217866dcbdb1b93da34d1d3e851d011df9ef44b7828b3453a54aa70f1df9"
+ "932170804eacd207e4f7e91d",
+ "045709ec4305a9c3271c304face6c148142490b827a73a4c17affcfd01fffd7eaa65d2fd"
+ "edfa2419fc64ed910823513fafb083cda1cf3be6371b6c06e729ea6299213428db571193"
+ "47247ec1fcd44204386cc0bca3f452d9d864b39efbfc89d6b2",
+ "3c90cc7b6984056f570542a51cbe497ce4c11aeae8fc35e8fd6a0d9adeb650e8644f9d1d"
+ "5e4341b5adc81e27f284c08f",
+ "d13646895afb1bfd1953551bb922809c95ad65d6abe94eb3719c899aa1f6dba6b01222c7"
+ "f283900fe98628b7597b6ea6",
+ "4a9a38afda04c0a6b0058943b679bd02205b14d0f3d49b8f31aac289129780cdb1c555de"
+ "f8c3f9106b478729e0c7efaa"},
+ {NID_secp384r1, NID_sha384,
+ "f072b72b8783289463da118613c43824d11441dba364c289de03ff5fab3a6f60e85957d8"
+ "ff211f1cb62fa90216fb727106f692e5ae0844b11b710e5a12c69df3ed895b94e8769ecd"
+ "15ff433762d6e8e94d8e6a72645b213b0231344e2c968056766c5dd6b5a5df41971858b8"
+ "5e99afbf859400f839b42cd129068efabeea4a26",
+ "e849cf948b241362e3e20c458b52df044f2a72deb0f41c1bb0673e7c04cdd70811215059"
+ "032b5ca3cc69c345dcce4cf7",
+ "0406c037a0cbf43fdf335dff33de06d34348405353f9fdf2ce1361efba30fb204aea9dbd"
+ "2e30da0a10fd2d876188371be6360d38f3940e34679204b98fbf70b8a4d97f25443e46d0"
+ "807ab634ed5891ad864dd7703557aa933cd380e26eea662a43",
+ "32386b2593c85e877b70e5e5495936f65dc49553caef1aa6cc14d9cd370c442a0ccfab4c"
+ "0da9ec311b67913b1b575a9d",
+ "5886078d3495767e330c7507b7ca0fa07a50e59912a416d89f0ab1aa4e88153d6eaf0088"
+ "2d1b4aa64153153352d853b5",
+ "2cc10023bf1bf8ccfd14b06b82cc2114449a352389c8ff9f6f78cdc4e32bde69f3869da0"
+ "e17f691b329682ae7a36e1aa"},
+ {NID_secp384r1, NID_sha384,
+ "cf4945350be8133b575c4ad6c9585e0b83ff1ed17989b6cd6c71b41b5264e828b4e11599"
+ "5b1ae77528e7e9002ac1b5669064442645929f9d7dd70927cb93f95edeb73e8624f4bc89"
+ "7ec4c2c7581cb626916f29b2d6e6c2fba8c59a71e30754b459d81b912a12798182bcff40"
+ "19c7bdfe929cc769bcc2414befe7d2906add4271",
+ "d89607475d509ef23dc9f476eae4280c986de741b63560670fa2bd605f5049f1972792c0"
+ "413a5b3b4b34e7a38b70b7ca",
+ "0449a1c631f31cf5c45b2676b1f130cbf9be683d0a50dffae0d147c1e9913ab1090c6529"
+ "a84f47ddc7cf025921b771355a1e207eece62f2bcc6bdabc1113158145170be97469a290"
+ "4eaaa93aad85b86a19719207f3e423051f5b9cbbe2754eefcb",
+ "78613c570c8d33b7dd1bd1561d87e36282e8cf4843e7c344a2b2bb6a0da94756d670eeaf"
+ "fe434f7ae7c780f7cf05ca08",
+ "66f92b39aa3f4aeb9e2dc03ac3855406fa3ebbab0a6c88a78d7a03482f0c9868d7b78bc0"
+ "81ede0947c7f37bf193074ba",
+ "e5c64ed98d7f3701193f25dd237d59c91c0da6e26215e0889d82e6d3e416693f8d58843c"
+ "f30ab10ab8d0edd9170b53ad"},
+ {NID_secp384r1, NID_sha384,
+ "d9b5cf0b50416573ff3c63133275a18394dd4326be2041e8d97e6e4e3855a4a177e9d26d"
+ "fd223fe8aa74564edb49bd72de19916fb6f001f44530d5c18e2c332bce1b7415df5927ec"
+ "e5f3824f34d174b963136b53aef1fb78fb0c06a201a40b2db38e4d8216fc1e392a798c8a"
+ "b4b3a314496b7f1087804ebfa89bf96e9cdb80c0",
+ "083e7152734adf342520ae377087a223688de2899b10cfcb34a0b36bca500a4dfa530e23"
+ "43e6a39da7ae1eb0862b4a0d",
+ "0470a0f16b6c61172659b027ed19b18fd8f57bd28dc0501f207bd6b0bb065b5671cf3dd1"
+ "ed13d388dcf6ccc766597aa6044f845bf01c3c3f6126a7368c3454f51425801ee0b72e63"
+ "fb6799b4420bfdebe3e37c7246db627cc82c09654979c700bb",
+ "28096ababe29a075fbdf894709a20d0fdedb01ed3eeacb642a33a0da6aed726e13caf6cf"
+ "206792ec359f0c9f9b567552",
+ "ee2923f9b9999ea05b5e57f505bed5c6ba0420def42c6fa90eef7a6ef770786525546de2"
+ "7cdeb2f8586f8f29fb4ee67c",
+ "50ef923fb217c4cf65a48b94412fda430fac685f0da7bd574557c6c50f5b22e0c8354d99"
+ "f2c2f2c2691f252f93c7d84a"},
+ {NID_secp384r1, NID_sha384,
+ "9e4042d8438a405475b7dab1cd783eb6ce1d1bffa46ac9dfda622b23ac31057b922eced8"
+ "e2ed7b3241efeafd7c9ab372bf16230f7134647f2956fb793989d3c885a5ae064e85ed97"
+ "1b64f5f561e7ddb79d49aa6ebe727c671c67879b794554c04de0e05d68264855745ef3c9"
+ "567bd646d5c5f8728b797c181b6b6a876e167663",
+ "63578d416215aff2cc78f9b926d4c7740a77c142944e104aa7422b19a616898262d46a8a"
+ "942d5e8d5db135ee8b09a368",
+ "04cadbacef4406099316db2ce3206adc636c2bb0a835847ed7941efb02862472f3150338"
+ "f13f4860d47f39b7e098f0a390752ad0f22c9c264336cde11bbc95d1816ed4d1b1500db6"
+ "b8dce259a42832e613c31178c2c7995206a62e201ba108f570",
+ "7b69c5d5b4d05c9950dc94c27d58403b4c52c004b80a80418ad3a89aabc5d34f21926729"
+ "e76afd280cc8ee88c9805a2a",
+ "db054addb6161ee49c6ce2e4d646d7670754747b6737ca8516e9d1e87859937c3ef9b1d2"
+ "663e10d7e4bd00ec85b7a97a",
+ "fcc504e0f00ef29587e4bc22faada4db30e2cb1ac552680a65785ae87beb666c792513f2"
+ "be7a3180fc544296841a0e27"},
+ {NID_secp384r1, NID_sha384,
+ "0b14a7484a40b68a3ce1273b8a48b8fdb65ba900d98541c4bbd07b97e31bcc4c85545a03"
+ "e9deab3c563f47a036ff60d0361684ba241b5aa68bb46f440da22181ee328a011de98eff"
+ "34ba235ec10612b07bdfa6b3dc4ccc5e82d3a8d057e1862fef3def5a1804696f84699fda"
+ "2ec4175a54a4d08bcb4f0406fdac4eddadf5e29b",
+ "ed4df19971658b74868800b3b81bc877807743b25c65740f1d6377542afe2c6427612c84"
+ "0ada31a8eb794718f37c7283",
+ "0433093a0568757e8b58df5b72ea5fe5bf26e6f7aeb541b4c6a8c189c93721749bcacecc"
+ "f2982a2f0702586a9f812fc66febe320d09e1f0662189d50b85a20403b821ac0d000afdb"
+ "f66a0a33f304726c69e354d81c50b94ba3a5250efc31319cd1",
+ "d9b4cd1bdfa83e608289634dbfcee643f07315baf743fc91922880b55a2feda3b38ddf60"
+ "40d3ba10985cd1285fc690d5",
+ "009c74063e206a4259b53decff5445683a03f44fa67252b76bd3581081c714f882f882df"
+ "915e97dbeab061fa8b3cc4e7",
+ "d40e09d3468b46699948007e8f59845766dbf694b9c62066890dd055c0cb9a0caf0aa611"
+ "fb9f466ad0bbb00dbe29d7eb"},
+ {NID_secp384r1, NID_sha384,
+ "0e646c6c3cc0f9fdedef934b7195fe3837836a9f6f263968af95ef84cd035750f3cdb649"
+ "de745c874a6ef66b3dd83b66068b4335bc0a97184182e3965c722b3b1aee488c3620adb8"
+ "35a8140e199f4fc83a88b02881816b366a09316e25685217f9221157fc05b2d8d2bc8553"
+ "72183da7af3f0a14148a09def37a332f8eb40dc9",
+ "e9c7e9a79618d6ff3274da1abd0ff3ed0ec1ae3b54c3a4fd8d68d98fb04326b7633fc637"
+ "e0b195228d0edba6bb1468fb",
+ "04a39ac353ca787982c577aff1e8601ce192aa90fd0de4c0ed627f66a8b6f02ae5131554"
+ "3f72ffc1c48a7269b25e7c289a9064a507b66b340b6e0e0d5ffaa67dd20e6dafc0ea6a6f"
+ "aee1635177af256f9108a22e9edf736ab4ae8e96dc207b1fa9",
+ "b094cb3a5c1440cfab9dc56d0ec2eff00f2110dea203654c70757254aa5912a7e73972e6"
+ "07459b1f4861e0b08a5cc763",
+ "ee82c0f90501136eb0dc0e459ad17bf3be1b1c8b8d05c60068a9306a346326ff7344776a"
+ "95f1f7e2e2cf9477130e735c",
+ "af10b90f203af23b7500e070536e64629ba19245d6ef39aab57fcdb1b73c4c6bf7070c62"
+ "63544633d3d358c12a178138"},
+ {NID_secp384r1, NID_sha512,
+ "67d9eb88f289454d61def4764d1573db49b875cfb11e139d7eacc4b7a79d3db3bf720819"
+ "1b2b2078cbbcc974ec0da1ed5e0c10ec37f6181bf81c0f32972a125df64e3b3e1d838ec7"
+ "da8dfe0b7fcc911e43159a79c73df5fa252b98790be511d8a732fcbf011aacc7d45d8027"
+ "d50a347703d613ceda09f650c6104c9459537c8f",
+ "217afba406d8ab32ee07b0f27eef789fc201d121ffab76c8fbe3c2d352c594909abe591c"
+ "6f86233992362c9d631baf7c",
+ "04fb937e4a303617b71b6c1a25f2ac786087328a3e26bdef55e52d46ab5e69e5411bf9fc"
+ "55f5df9994d2bf82e8f39a153ea97d9075e92fa5bfe67e6ec18e21cc4d11fde59a68aef7"
+ "2c0e46a28f31a9d60385f41f39da468f4e6c3d3fbac9046765",
+ "90338a7f6ffce541366ca2987c3b3ca527992d1efcf1dd2723fbd241a24cff19990f2af5"
+ "fd6419ed2104b4a59b5ae631",
+ "c269d9c4619aafdf5f4b3100211dddb14693abe25551e04f9499c91152a296d7449c08b3"
+ "6f87d1e16e8e15fee4a7f5c8",
+ "77ffed5c61665152d52161dc13ac3fbae5786928a3d736f42d34a9e4d6d4a70a02d5af90"
+ "fa37a23a318902ae2656c071"},
+ {NID_secp384r1, NID_sha512,
+ "45db86829c363c80160659e3c5c7d7971abb1f6f0d495709bba908d7aa99c9df64b3408a"
+ "51bd69aba8870e2aaff488ef138f3123cf94391d081f357e21906a4e2f311defe527c55e"
+ "0231579957c51def507f835cceb466eb2593a509dcbee2f09e0dde6693b2bfe17697c9e8"
+ "6dd672f5797339cbe9ea8a7c6309b061eca7aef5",
+ "0a3f45a28a355381a919372f60320d6610cfb69c3e318eb1607db3cadfc42b728b77a6a9"
+ "e9e333de9183c58933daf60f",
+ "04832cbb7061a719a316e73dbad348fa67cd17c33f40b9000a3d3b691a2a2cd821052566"
+ "717c3ead01089b56086af1366f1e15a048d1dce642d9ebcbfac7f92b1bcee90fd0240cc7"
+ "9abd29e32e0e655c4ee1fd34fb88178bba92aca100e7794ed0",
+ "2a78e651623ba604c42cf094fc7d046629306f508853427ba091448800d1092c041bb232"
+ "3035fc9d19a8d44950f7dcc3",
+ "0db0cc9a2bda8dd7e565ad36f91b1c5756d78164dc8a72a5bee4b6bc45ea38c7a16b01d0"
+ "5b1893d4e06b62db24c30385",
+ "abd383edaeda7d0b8de1b54fcd3c28874fed62ab266f1f84c8ba796a7b54e5e0695fdb43"
+ "ce7fe90ed00fa468d87bca64"},
+ {NID_secp384r1, NID_sha512,
+ "4672fce0721d37c5be166bffa4b30d753bcf104b9b414db994b3ed33f36af4935ea59a0b"
+ "b92db66448b3f57dad4fc67cef10ce141bf82c536be604b89a0bc0e8bca605b867880049"
+ "d97142d30538fc543bd9d4fab7fdbe2f703815cdb6361beb66acff764bc275f910d16624"
+ "45b07b92830db69a5994857f53657ed5ca282648",
+ "2e408c57921939f0e0fe2e80ce74a4fa4a1b4fa7ab070206298fe894d655be50e2583af9"
+ "e45544b5d69c73dce8a2c8e7",
+ "04a2b24a5ad4a2e91f12199ed7699e3f297e27bf8b8ea8fbe7ed28366f3544cd8e680c23"
+ "8450f8a6422b40829d6647b25c2732be0075536e6519f6a099b975a40f8e0de337fa4d48"
+ "bd0762b43f41cab8deafdef9cfbb9973e457801e3bf9c93304",
+ "b10b6258afdde81f9c971cc1526d942e20cafac02f59fee10f98e99b8674636bff1d84a6"
+ "eaa49c0de8d8cfdc90d8ce84",
+ "be428a8de89a364a134719141ee8d776a3a8338f1132b07e01b28573d8eaf3b9008b6330"
+ "4c48821e53638b6141f9660b",
+ "866181dbef5c147d391bed6adcee408c339982c307adc718c2b9ab9e5642d8dedc36dd64"
+ "02559a3ab614c99c1e56b529"},
+ {NID_secp384r1, NID_sha512,
+ "9ae48fdd9bfc5cb0f4d4761e28b2073bda05a3e3fe82c212e66701dc4573cc67a829b0f8"
+ "2d7520b1bf11db0c6d1743822bbe41bb0adbd7222aa5fae70fbd1a31f2d4453a01c81e06"
+ "4d775388468be96f6063f8673b7b8d4455fe1bd4c801ad5e625a015eaa4a1a18da490d2a"
+ "f8642201eaba3c611cbd65f861d8e19ca82a1ee6",
+ "1c285da72a8eb1c3c38faab8d3bb4e68dc95c797082b9a3991a21c1de54759071ecf2265"
+ "fb1eff504ab24174bc6710cf",
+ "0411acb1b5cc59a4f1df1913a8d6e91cbdafb8206dc44aff7d9da45906b664fc33194d99"
+ "35a82aa4d62f39618897c86025832ed0b9575fff52a3603bfe89f312751b4c396da98324"
+ "117a61b3f525d27b2266f6cfb22be07e50b6874435e380ed62",
+ "2513075e02cc7fb3cff7b7adde46da31c5493749b5cf02758bd5b098a838bfd4d5e4c7fb"
+ "8268bdc37e219c30efebe878",
+ "b3d638b3be45f14f170da5bdc22d2114deac93ab340a25b3af2b5c18584bb9147e00dc6c"
+ "67a2274f79aa4838793eb63f",
+ "876112bdca2c725eb2f6dbd76d07710a31f0c16d38430cb0817f320a25a9ecfec8a66137"
+ "d0304612ae29a6a484fd3319"},
+ {NID_secp384r1, NID_sha512,
+ "817d6a110a8fd0ca7b4d565558f68b59a156744d4c5aac5c6610c95451793de2a756f774"
+ "558c61d21818d3ebeeeb71d132da1c23a02f4b305eccc5cd46bd21dfc173a8a91098354f"
+ "10ffbb21bf63d9f4c3feb231c736504549a78fd76d39f3ad35c36178f5c233742d2917d5"
+ "611d2073124845f1e3615b2ef25199a7a547e882",
+ "9da37e104938019fbdcf247e3df879a282c45f8fb57e6655e36b47723af42bec3b820f66"
+ "0436deb3de123a21de0ca37b",
+ "04722d0ea6891d509b18b85ca56f74deb5c3030d2a30433824123d430d03c99279572c3b"
+ "28ecf01e747b9db8acc55d0ba37e2605ea7092214f366f3639037bffd89fe103c646e990"
+ "839d3a1ced8d78edb5b9bc60d834fd8e2a3c17e920bdae023a",
+ "c8c18e53a9aa5915288c33132bd09323638f7995cd89162073984ed84e72e07a37e18c4c"
+ "023933eace92c35d10e6b1b6",
+ "6512a8a2be731e301dcf4803764297862bbfa0ac8daed64d8e98b34618ecb20520fc5d3c"
+ "f890b7783edf86e7ea407541",
+ "4ff10301f7b4168fae066361376007c1d7aa89a75c87719d0b54711ffef5ef3726f3eef8"
+ "4f7ebc025c110bde511b17f6"},
+ {NID_secp384r1, NID_sha512,
+ "464f10ec6fb229a51db5fd0e122f2cb8a9a022117e2987f4007bf5565b2c16aba0714e2e"
+ "3cdd0c100d55ac3017e36fc7501ad8309ab9572aa65424c9eb2e580a119c55777676ec49"
+ "8df53ef6ae78fd8a988130ee0e6082bf1ef71cd4c946021018a8ca7154d13b174c638912"
+ "613b0bdb9001c302bf7e443ad2124ab2c1cce212",
+ "0661ab3bf9f7bef51bec7dff758de289154557beb9ce18cc4b8cc09a871e8322af259cf1"
+ "88b593dc62f03a19e75f7f69",
+ "04b4f100558043858efa728082d9b99ad5192b59b0947434f5ba7ff2514508a6d71ba54e"
+ "7221c31cb0712103272b3f6fa434f6df4eeb2da11498044635067c2715ed15ae251c78ff"
+ "b9030d87909ea8539b66394e93109ca54c0406cf99960c3e93",
+ "84a87137edb6894f96c5a8e94a3765162034feb84dfea94e1c71411170c285a80321ec79"
+ "99e25861844143209804882c",
+ "4dc9d1b949b36e3c3847ac1c7ed114e1bc9cbe76119cf6fcd3f1b69ee6ee54e3255f1bb2"
+ "88fe2f8bd6d4049a21793c27",
+ "56a561d647b62ccae1e6df818b1a6fbde66c82ef0ff69ee415f183e7daf76be22630c7e0"
+ "2cd3fd729dfa490f26824584"},
+ {NID_secp384r1, NID_sha512,
+ "4e3e0fb96320ddccde8b463c273654c4f7164920b1d63430921d2e808dee403e6420eedd"
+ "a0a557b911d00736a4f8798dd4ef26673efd6d190988ad4929ec64f8685cfb76070a36cd"
+ "6a3a4bf2f54fb08a349d44642b6f614043fef9b2813b63457c76537d23da7b37310334f7"
+ "ba76edf1999dad86f72aa3446445a65952ac4e50",
+ "66e7cfdeb7f264cf786e35210f458c32223c3a12a3bc4b63d53a5776bc9b069928452484"
+ "f6241caa3781fd1a4109d4db",
+ "043c7682de540ab231daf21bf9fc80bda6abf7e17dcc79d476c7b7c3bd4d42d386877fd8"
+ "ba495c1b0333e04fb5fd2a15050a1582e4f4d72abea9d3476aff8369c41261f0c5dddf2c"
+ "a82e10f7a163f73df09473d9e5e2552187104e4cc7c6d83611",
+ "2fa266f5cce190eb77614933ca6a55121ad8bae168ff7a9043d96d13b5ca2fe70101ff9f"
+ "e1e2b2cd7413e6aa8f49abde",
+ "e7ecda9da0c52d0474a9f70094dc8f061d7d6a22210d3b69a7be8f389aa666f256322099"
+ "b87d16ad35357ea856574dba",
+ "ba348eb40a2830ec5a1130264ac0a8675420b1ae243e808a778135809ece21f42c0c8811"
+ "66321102b4f02df4c5c7ed9d"},
+ {NID_secp384r1, NID_sha512,
+ "c466b6b6baf7e6ffa876ec06105e2d43534e0517c07b1c4c9fb67ba81ce09525a7721ec3"
+ "c290f2b1f65b6463d41598e7a25b2238501629953a5ca955b644354fb6856733a2e5bb8f"
+ "5bc21a0c803493f5539f9fb83aab3dba2c982989c2270c61ab244b68bfe1b948d00c2ed9"
+ "75e09c29b5f8a7effcad8652a148cc880d503217",
+ "92c2f7ee64af86d003ab484e12b82fcf245fc330761057fec5b7af8f7e0a2d85b468c21d"
+ "171460fcb829cae7b986316d",
+ "04ca43a306479bf8fb537d4b9ff9d635bbb2a0d60d9e854d5b7e269d09d91f78c6b90b61"
+ "6e4c931629453645a2bb371e14356c4d7f10e690614eaf7f82ba0f9dc1aad98130c0ad9f"
+ "e353deec565cc04bef789a0a4242322e0058b46cd02f2de77d",
+ "6ec81fb74f8725ba225f317264460ee300cfd2f02092000989acbdad4799cf55c244a65c"
+ "557113328fe20282e6badb55",
+ "cd7a4309bcebc25a8e10899fe2eda5f8b2dbcf329cd2f3d65befd67393e83fba2f8a67a1"
+ "5c01a6ac8314f9f5e87a9dca",
+ "6dcfc0426bc148e67e91d4784e3d7e9bc3b7ce3676be62daa7f3f55dfdff6d9dc735b5e3"
+ "e0bbd0785db1f76f7ac065f3"},
+ {NID_secp384r1, NID_sha512,
+ "feac892b7720af80b3c9eede51e923f18d3d0c5de4c31f4aa75e36df7c7c2fd8f4177885"
+ "1a24b69e67dccb65e159dd5c383243bad7cfedcc5e85c8a01c34b0b94ba8e07e4c024c09"
+ "d279b3731e8b62f9562d3c4f5042567efe42a9d0eaaabab28bc6f11232fc8ceaaf4518d9"
+ "f3b2bebf020294496b7f6b879e69503f75fecd3d",
+ "15347caaad1067f1848a676bd0a8c52021ae604b79d02775a0459226e0391a3acd26653c"
+ "916fcfe86149fb0ee0904476",
+ "04e5a0463163964d984f5bad0072d45bc2059939e60a826ccca36c151460ae360f5d6679"
+ "f60fe43e999b6da5841c96e48a30f2dd425a3fa2c95d34124217250b39e3b4a14f3e6e41"
+ "5ae8e5b0409eb72f43f78b64d0ce6f2d49980d6f04cd1391db",
+ "1a2d224db4bb9c241ca5cab18920fad615fa25c1db0de0f024cb3ace0d11ef72b0568854"
+ "46659f67650fdff692517b1c",
+ "87b4de0fb21df38dfc9a4b1e350da67547e307f55b5b9dd6615e408afe7c3553a6e02722"
+ "847367439e636074faa2182b",
+ "375d965753b9ed6c6c08576726f8308c2f8dbd2737824464e71265d47907e26f615bbeb8"
+ "203ec617520d4ecd1851dc44"},
+ {NID_secp384r1, NID_sha512,
+ "cf2982e3bf174ce547741b969403cd11e9553067e6af8177d89511a0eb040db924530bdb"
+ "a65d8b1ff714228db0737c1756f509e1506014a10736e65be2f91980a73891496e90ff27"
+ "14a3601c7565cdcef5a395e2e0e1652f138d90d61eaa9cba993b823245647f6e07cec9b8"
+ "b4449cd68a29741cd1579c66e548ca0d0acf33aa",
+ "ac1cb5e59bda2eff3413a3bab80308f9fb32c595283c795de4c17fdae8d4647b5f108fd0"
+ "801aee22adb7db129283b5aa",
+ "04bc6b1a718284803553c173089c397870aaaecca579bb8e81a8cfa12473cd2057567fa8"
+ "726a19ed427cc035baeec2c55114f82997d1129b669f0015350e47ad561b1b13441af4fb"
+ "44656f15ed0c5706984d66655accc52f2e943eef39cb1cdc21",
+ "8053a46e875f446056b06d4318fa3e8977622de7207cbf0996bf35b0e9b19aaa507f642b"
+ "cf0be9f048f1af09806f6946",
+ "a994eb15b64114ce8a9342d18b5edda96a6d76314a5ac03da723699177d352a4a9f3b712"
+ "1b11a91e43a6af4025da51d6",
+ "8183ae33a888e99aa76882da0a6705ad102f2bbd9572fad0d2e4d6d70151970469e00c52"
+ "20e59c14724d771c1384b302"},
+ {NID_secp384r1, NID_sha512,
+ "bf9fdd4107ef5a6070108771ac9eee4f0c8043bf0d04db772a47294f4137e2439d94b337"
+ "114b074e57e0cb78d0ccf352a2833e9788ee2a1a9ffeacd34f38fcefb86653d70c7dadd4"
+ "cf6548d608e70acdef6c7530974b92c813798add659752a8c72b05e1ad9c65c21834ce6f"
+ "be49d8a1426b5a54270794436d284364fac6ec1a",
+ "205f1eb3dfacff2bdd8590e43e613b92512d6a415c5951bda7a6c37db3aae39b9b7ec6ed"
+ "d256609e75373419087fa71f",
+ "04c9f1f63a18c761b077a1ec35fbb2de635db9b8592c36194a01769b57728c7755d4c79b"
+ "3d5b97a1a4631e30c86d03f13cf8c4a38770054d5cc9bb9182e6d4638242c4fd16e869ac"
+ "22e44c4b9402d594e0c6f5df6a9a7de32a4893d9f6588f1950",
+ "ecd395c5d8b7d6e6b2b19644e0d2e6086c912c6a0f5b8ed4b94b7290b65852c9741ce8ee"
+ "b08d8751ead8a183e17d76c6",
+ "e81331d78b438b0b8d98c1be03385ba5d614af182f1677f259126cc3de7eaac6c19b02be"
+ "955d936b6bf9c27c6796e6f0",
+ "17c2b7a8e0fc93909762aa9f86f9561e759ecb88f02337b2018363be6095d9e4324a6d32"
+ "96046686624b5efad6b52878"},
+ {NID_secp384r1, NID_sha512,
+ "5d634fb39a2239256107dc68db19751540b4badac9ecf2fce644724401d6d632b3ae3b2e"
+ "6d05746b77ddc0c899878032248c263eda08d3d004d35952ad7a9cfe19343d14b37f9f63"
+ "2245e7b7b5fae3cb31c5231f82b9f1884f2de7578fbf156c430257031ba97bc6579843bc"
+ "7f59fcb9a6449a4cd942dffa6adb929cf219f0ad",
+ "e21e3a739e7ded418df5d3e7bc2c4ae8da76266a1fc4c89e5b09923db80a72217f1e9615"
+ "8031be42914cf3ee725748c1",
+ "040f753171922b5334f3dd2778a64ce2da8295121939beae71ad85e5344e893be0fd03cf"
+ "14e1f031adec098e0c4409449c45c10a0ffc0eb2f1cec5c89b698061108313ee7d449ad5"
+ "80efad344f0e7cf35be8a18fca620f112e57bdc746abdace55",
+ "d06bea06b25e6c30e866b1eb0657b45673e37b709013fb28fd7373afc8277cbc861354f8"
+ "21d0bd1927e52ec083a0f41f",
+ "e8d4a31dd0e7d2522be62a32608e744c3775ceb606dc897899f0c73f1a40ce9a8be854cd"
+ "506e65cd81fd7fa2c616cb7b",
+ "8151b681b6b6046d3c36f332d06d9ba7751e740631cdb759f88c50a25a8e950d5023df8a"
+ "15c77243743733c4feaf21d5"},
+ {NID_secp384r1, NID_sha512,
+ "c9b4ff721b3e886f0dc05856ffff0aabb64a8504b1746a47fdd73e6b7ebc068f06ac7ffa"
+ "44c757e4de207fc3cbfaf0469d3ac6795d40630bcafe8c658627e4bc6b86fd6a2135afbc"
+ "18ccc8e6d0e1e86016930ca92edc5aa3fbe2c57de136d0ea5f41642b6a5d0ddeb380f245"
+ "4d76a16639d663687f2a2e29fb9304243900d26d",
+ "93434d3c03ec1da8510b74902c3b3e0cb9e8d7dccad37594d28b93e065b468d9af4892a0"
+ "3763a63eae060c769119c23c",
+ "04a52c25f2af70e5bc6a992ecef4ea54e831ed5b9453747d28aec5cffb2fcfee05be80c5"
+ "cbab21606b5507aa23878adee12cf2a9afeff83f3041dc8a05f016ccae58aa1a0e0dc6be"
+ "9d928e97f2598c9ba5e9718d5eb74c9cfb516fd8c09f55f5b9",
+ "13d047708ae5228d6e3bbada0e385afdb3b735b31123454fdf40afe3c36efed563fd2cce"
+ "84dcc45c553b0993d9ca9ec3",
+ "a0203f6f2c456baac03538ed506a182e57a25151802cf4b2557613b2fb615ebd4c50ddc5"
+ "05f87c048a45bad3b2fc371c",
+ "0eab56457c4080400fa3af124761d5a01fef35f9649edba8b97d22116386f3b8b363e97e"
+ "f3f82616d5d825df1cf865ef"},
+ {NID_secp384r1, NID_sha512,
+ "db2ad659cf21bc9c1f7e6469c5f262b73261d49f7b1755fc137636e8ce0202f929dca446"
+ "6c422284c10be8f351f36333ebc04b1888cba217c0fec872b2dfc3aa0d544e5e06a9518a"
+ "8cfe3df5b20fbcb14a9bf218e3bf6a8e024530a17bab50906be34d9f9bba69af0b11d8ed"
+ "426b9ec75c3bd1f2e5b8756e4a72ff846bc9e498",
+ "e36339ddbe8787062a9bc4e1540690915dd2a2f11b3fe9ee946e281a0a2cbed426df405e"
+ "d9cb0eca42f85443efd09e0c",
+ "04a1ffb4b790d1593e907369b69de10b93cddbb02c6131f787422364d9d692768ef80979"
+ "70306cce16c97f2b10c538efa7d0692028601ea794d2563ffe9facc7273938fab47dd00b"
+ "8960be15549a9c2b3f8552583eb4c6cd212fe486c159c79153",
+ "2226f7329378cecd697f36ae151546643d67760856854661e31d424fae662da910e2157d"
+ "a9bb6dfbe3622296e0b5710c",
+ "20dcc25b67dd997621f437f65d78347fb57f8295b1b14453b1128203cda892bcfe726a2f"
+ "107d30975d63172e56f11d76",
+ "51cff592cbef75ef8321c8fa1e4229c4298b8180e427bee4e91d1e24fc28a729cf296beb"
+ "728960d2a58cf26773d8e2e2"},
+ {NID_secp384r1, NID_sha512,
+ "dbd8ddc02771a5ff7359d5216536b2e524a2d0b6ff180fa29a41a8847b6f45f1b1d52344"
+ "d32aea62a23ea3d8584deaaea38ee92d1314fdb4fbbecdad27ac810f02de0452332939f6"
+ "44aa9fe526d313cea81b9c3f6a8dbbeafc899d0cdaeb1dca05160a8a039662c4c845a3db"
+ "b07be2bc8c9150e344103e404411668c48aa7792",
+ "5da87be7af63fdaf40662bd2ba87597f54d7d52fae4b298308956cddbe5664f1e3c48cc6"
+ "fd3c99291b0ce7a62a99a855",
+ "0454c79da7f8faeeee6f3a1fdc664e405d5c0fb3b904715f3a9d89d6fda7eabe6cee86ef"
+ "82c19fca0d1a29e09c1acfcf18926c17d68778eb066c2078cdb688b17399e54bde5a79ef"
+ "1852352a58967dff02c17a792d39f95c76d146fdc086fe26b0",
+ "1b686b45a31b31f6de9ed5362e18a3f8c8feded3d3b251b134835843b7ae8ede57c61dc6"
+ "1a30993123ac7699de4b6eac",
+ "9dbfa147375767dde81b014f1e3bf579c44dd22486998a9b6f9e0920e53faa11eed29a4e"
+ "2356e393afd1f5c1b060a958",
+ "e4d318391f7cbfe70da78908d42db85225c85f4f2ff413ecad50aad5833abe91bdd5f6d6"
+ "4b0cd281398eab19452087dd"},
+ {NID_secp521r1, NID_sha224,
+ "58ec2b2ceb80207ff51b17688bd5850f9388ce0b4a4f7316f5af6f52cfc4dde4192b6dbd"
+ "97b56f93d1e4073517ac6c6140429b5484e266d07127e28b8e613ddf65888cbd5242b2f0"
+ "eee4d5754eb11f25dfa5c3f87c790de371856c882731a157083a00d8eae29a57884dbbfc"
+ "d98922c12cf5d73066daabe3bf3f42cfbdb9d853",
+ "1d7bb864c5b5ecae019296cf9b5c63a166f5f1113942819b1933d889a96d12245777a994"
+ "28f93de4fc9a18d709bf91889d7f8dddd522b4c364aeae13c983e9fae46",
+ "0401a7596d38aac7868327ddc1ef5e8178cf052b7ebc512828e8a45955d85bef49494d15"
+ "278198bbcc5454358c12a2af9a3874e7002e1a2f02fcb36ff3e3b4bc0c69e70184902e51"
+ "5982bb225b8c84f245e61b327c08e94d41c07d0b4101a963e02fe52f6a9f33e8b1de2394"
+ "e0cb74c40790b4e489b5500e6804cabed0fe8c192443d4027b",
+ "141f679033b27ec29219afd8aa123d5e535c227badbe2c86ff6eafa5116e9778000f5385"
+ "79a80ca4739b1675b8ff8b6245347852aa524fe9aad781f9b672e0bb3ff",
+ "06b973a638bde22d8c1c0d804d94e40538526093705f92c0c4dac2c72e7db013a9c89ffc"
+ "5b12a396886305ddf0cbaa7f10cdd4cd8866334c8abfc800e5cca365391",
+ "0b0a01eca07a3964dd27d9ba6f3750615ea36434979dc73e153cd8ed1dbcde2885ead575"
+ "7ebcabba117a64fcff9b5085d848f107f0c9ecc83dfa2fa09ada3503028"},
+ {NID_secp521r1, NID_sha224,
+ "2449a53e0581f1b56d1e463b1c1686d33b3491efe1f3cc0443ba05d65694597cc7a2595b"
+ "da9cae939166eb03cec624a788c9bbab69a39fb6554649131a56b26295683d8ac1aea969"
+ "040413df405325425146c1e3a138d2f4f772ae2ed917cc36465acd66150058622440d7e7"
+ "7b3ad621e1c43a3f277da88d850d608079d9b911",
+ "17e49b8ea8f9d1b7c0378e378a7a42e68e12cf78779ed41dcd29a090ae7e0f883b0d0f2c"
+ "bc8f0473c0ad6732bea40d371a7f363bc6537d075bd1a4c23e558b0bc73",
+ "0400156cd2c485012ea5d5aadad724fb87558637de37b34485c4cf7c8cbc3e4f106cb1ef"
+ "d3e64f0adf99ddb51e3ac991bdd90785172386cdaf2c582cc46d6c99b0fed101edeeda71"
+ "7554252b9f1e13553d4af028ec9e158dbe12332684fc1676dc731f39138a5d301376505a"
+ "9ab04d562cc1659b0be9cb2b5e03bad8b412f2699c245b0ba2",
+ "1dc3e60a788caa5f62cb079f332d7e5c918974643dca3ab3566a599642cd84964fbef43c"
+ "e94290041fe3d2c8c26104d9c73a57a7d4724613242531083b49e255f33",
+ "12592c0be6cce18efb2b972cd193d036dcb850f2390fa8b9b86b2f876548bc424fb3bc13"
+ "c1e5c415fa09d0ecfcae5bf76fb23e8322d7eecb264a2ae6d20ef50d405",
+ "11bc9713be88e3b9912a3e5f5d7b56f20573e979b1a75d04ce339f724bddffa4665d2599"
+ "5fe24d32507d8a07c5e10169f5338ef2827737f7b0291752b21237217e3"},
+ {NID_secp521r1, NID_sha224,
+ "7ba05797b5b67e1adfafb7fae20c0c0abe1543c94cee92d5021e1abc57720a6107999c70"
+ "eacf3d4a79702cd4e6885fa1b7155398ac729d1ed6b45e51fe114c46caf444b20b406ad9"
+ "cde6b9b2687aa645b46b51ab790b67047219e7290df1a797f35949aaf912a0a8556bb210"
+ "18e7f70427c0fc018e461755378b981d0d9df3a9",
+ "135ea346852f837d10c1b2dfb8012ae8215801a7e85d4446dadd993c68d1e9206e1d8651"
+ "b7ed763b95f707a52410eeef4f21ae9429828289eaea1fd9caadf826ace",
+ "04018d40cc4573892b3e467d314c39c95615ee0510e3e4dbc9fa28f6cd1f73e7acde15ad"
+ "7c8c5339df9a7774f8155130e7d1f8de9139ddd6dfe1841c1e64c38ea98243017021782d"
+ "33dc513716c83afe7ba5e7abef9cb25b31f483661115b8d6b5ae469aaf6f3d54baa3b658"
+ "a9af9b6249fd4d5ea7a07cb8b600f1df72b81dac614cfc384a",
+ "0c24acc1edb3777212e5b0bac744eadf4eda11fa150753b355bf96b189e6f57fc02284bb"
+ "22d8b3cd8bba7a09aae9f4ea955b382063425a6f8da2f99b9647b147172",
+ "183da7b8a9f9d5f08903359c1a2435b085fcf26a2ed09ab71357bb7634054acc569535e6"
+ "fe81d28233e4703005fc4bf83ce794d9463d575795aa0f03398e854cefd",
+ "0b3621145b9866ab7809139795cc30cd0404127a7f0fafa793660491009f6c53724fdb0b"
+ "1ffbf0fd51c131180b8a957fe66e76d2970247c024261c768dee9abbfb9"},
+ {NID_secp521r1, NID_sha224,
+ "716dabdb22a1c854ec60420249905a1d7ca68dd573efaff7542e76f0eae54a1828db69a3"
+ "9a1206cd05e10e681f24881b131e042ed9e19f5995c253840e937b809dfb8027fed71d54"
+ "1860f318691c13a2eb514daa5889410f256305f3b5b47cc16f7a7dad6359589b5f4568de"
+ "4c4aae2357a8ea5e0ebaa5b89063eb3aa44eb952",
+ "1393cb1ee9bfd7f7b9c057ecc66b43e807e12515f66ed7e9c9210ba1514693965988e567"
+ "fbad7c3f17231aacee0e9b9a4b1940504b1cd4fd5edfaa62ba4e3e476fc",
+ "0401e855c935139c8092092cfa733db1292530506eeb2bbb1687f9602c36d97a6714e998"
+ "892d5d3b842d1896a6ece9d549e9792881a256256137b3dff180c96cc5d07b018d83b6e9"
+ "3cd287311f7bf7c1d7f9eeabcf0b69c12f2d8f40e333e81e956d968532a37a4c04d76187"
+ "4df293b484cd7053b03fdbc2fdcd3b4c412d6f272fb7c93fe6",
+ "1d98619bdc04735d30c222fc67da82c069aea5f449af5e8c4db10c1786c0cb9e6f2cc0bb"
+ "66fa6be18c485570d648dafcd0a973c43d5c94e9a9dacbd3170e53fa2a0",
+ "0bf47fabe107ce0ec03e2ad60a79b058e1bebb18568b6a8cdbe86032e71aa30c15766105"
+ "b2ea952cfa79bcab046df601159f96e179bbcf252dc68ac73d31481fdae",
+ "1f918fec69cd07d90f9d892b7117e7519c3224947f4262f1fd97077dd5386a6c78aeddff"
+ "3ee97e59ea353f06029f1336f0d6ef5c0f4b17ca59343a55319b7bfc3db"},
+ {NID_secp521r1, NID_sha224,
+ "9cc9c2f131fe3ac7ea91ae6d832c7788cbbf34f68e839269c336ceef7bef6f20c0a62ea8"
+ "cc340a333a3002145d07eba4cf4026a0c4b26b0217a0046701de92d573d7c87a386a1ea6"
+ "8dc80525b7dcc9be41b451ad9f3d16819e2a0a0b5a0c56736da3709e64761f97cae2399d"
+ "e2a4022dc4c3d73c7a1735c36dbde86c4bc5b6f7",
+ "179fa164e051c5851e8a37d82c181e809a05fea9a3f083299b22684f59aa27e40dc5a33b"
+ "3f7949338764d46bfe1f355134750518b856d98d9167ef07aac3092c549",
+ "0401857cc7bbed20e87b3fd9a104956aa20c6502192910e0e7598410526ebfe1c99397b8"
+ "5189612a60c51fb8f4dd5cb08a8cd2e702563062dcb043410715c5323a004601fce8d135"
+ "284310d2f38c216030634b32cd223222f0d9d8d2b7c55477c4b8b74fc6c96a6092f34b05"
+ "ca44d3633a5037c2166c479a032bb4f949f89fc1ba5236d07d",
+ "16d9704c0cee791f2938bb2a8a595752a3635c2f557efeecefd719414b5f2aaf846080f5"
+ "82c76eae7a8fddf81859b49d0131c212524d55defa67dca1a9a28ca400f",
+ "1c9a4e51774384e8362876a87c572e6463a54413c7c6252c552ebb182f83e45ace436ade"
+ "4ca373d8a7216e83efb62c8b41c4d5132a0afa65078f16d189baca39187",
+ "1e92a7dd5fea29a666398e1df5775cbb5664fe6943fe4c1d2bba516b7543c84df584458e"
+ "53919c4ffab579a26fb3c892a5d1a77b0a07428c89350f8b559e627b014"},
+ {NID_secp521r1, NID_sha224,
+ "14c69f8d660f7a6b37b13a6d9788eff16311b67598ab8368039ea1d9146e54f55a83b3d1"
+ "3d7ac9652135933c68fafd993a582253be0deea282d86046c2fb6fd3a7b2c80874ced28d"
+ "8bed791bd4134c796bb7baf195bdd0dc6fa03fdb7f98755ca063fb1349e56fd0375cf947"
+ "74df4203b34495404ebb86f1c7875b85174c574c",
+ "13dabca37130ba278eae2b3d106b5407711b0d3b437fbf1c952f0773571570764d2c7cb8"
+ "896a8815f3f1975b21adc6697898e5c0a4242092fc1b80db819a4702df4",
+ "0400bc2aebf40cd435bc37d73c09d05f2fd71321111a767c2b0d446f90dd4a186839c694"
+ "ceb734e027e7ee948f0f63e4d3f1656d3d543df23c342a599306909b34710901f4c98ac0"
+ "3f0718e58d5d1762c920445b11dbdd60ec7f60095809204e14965a4ecb0be6fea06adbac"
+ "8ba431d6f144c75c199225df2a619a34be99897125b3a10af8",
+ "0401187c8b89945a1e48cda9ee52167789f4121e67482a7ac797899f5d3d2e623aed31e4"
+ "adae08a8d43e69028fa074d2650317cbc765f6ed191cf0317b4bae57881",
+ "1e572afed754016fba43fc33e352932c4db65efcb84e2bd159b40fc5925893b161effc40"
+ "240be28d8c07154d2615f605c6f0451b976522d95afd37f46602df7a12a",
+ "030370c1c5352c2b663ac1858b42f69545b2f58ed5b2c007f303726977d3c756b5d644ec"
+ "6788f94c886f78269aa190a3d8d1ae10e4fd24d937c4556fb9e1953fd6d"},
+ {NID_secp521r1, NID_sha224,
+ "8d8e75df200c177dbfe61be61567b82177ea5ec58e2781168d2277d2fd42668f01248ca3"
+ "eb29ffa2689b12ae40f9c429532b6d2e1f15891322b825a0a072a1c68fa09e78cfdef3e9"
+ "5ed6fdf7233a43cb68236560d49a3278f0b3f47cb08f475bd9ab2f60755ea4a1767de931"
+ "3b71a1b9ea87ef33f34682efbda263b0f8cc2f52",
+ "198681adbde7840d7ccd9cf1fb82056433fb4dd26bddf909af7b3b99da1ca2c05c8d4560"
+ "ecd80ba68f376f8b487897e374e99a9288ed7e3645cc0d00a478aae8d16",
+ "040057ce3777af7032f1f82308682e71fe09f88bf29dacd5018a725e1caa4b1e2bfdd894"
+ "fe618f9266f31ba089856dc9c1b70e4a2faa08b4b744d1aafcd5ae99e2c7360199bcfef2"
+ "021bc5890d7d39ec5dc0c26956801e84cae742cf6c50386eb289b6e97754dd25a94abf81"
+ "f1cb1b36935b5eb29f4b32a6516d2ff6a7d23064a0daec94b3",
+ "19d2d74ad8ee2d85048f386998a71899ef6c960b4ab324e5fd1c0a076c5a632fd0009500"
+ "076522e052c5c9806eef7056da48df6b16eb71cdf0f1838b0e21715fce0",
+ "18ecacbcffd5414bbb96728e5f2d4c90178e27733d13617e134ec788022db124374bbaa1"
+ "1e2c77fe3f38d1af6e998e1b0266b77380984c423e80ffa6ff2bcafd57a",
+ "1c727f34b6a378f3087721a54e9796499b597ecf6666b8f18312d67e1190a8a66e878efc"
+ "2367b551267494e0245979ef4deed6d2cbf2c3711af6d82ccfeb101a377"},
+ {NID_secp521r1, NID_sha224,
+ "10631c3d438870f311c905e569a58e56d20a2a560e857f0f9bac2bb7233ec40c79de1452"
+ "94da0937e6b5e5c34fff4e6270823e5c8553c07d4adf25f614845b2eac731c5773ebbd71"
+ "6ab45698d156d043859945de57473389954d223522fbafecf560b07ef9ba861bcc1df9a7"
+ "a89cdd6debf4cd9bf2cf28c193393569ccbd0398",
+ "08c4c0fd9696d86e99a6c1c32349a89a0b0c8384f2829d1281730d4e9af1df1ad5a0bcfc"
+ "cc6a03a703b210defd5d49a6fb82536f88b885776f0f7861c6fc010ef37",
+ "040164ac88ed9afe137f648dd89cdd9956682830cac5f7c1a06d19a1b19f82bb1d22dfee"
+ "fea30d35c11202fed93fd5ce64835d27c6564d6e181287fa04a2d20994986b005cb83669"
+ "265f5380ccefe6b4f85fdf0049e6703f6f378a0b2e52ed0fbbcf300afebb722f4ed48e38"
+ "19cb976c1d60e2ba05646b478f6dfecfbae730e9644c297f00",
+ "189801432cba9bf8c0763d43b6ec3b8636e62324587a4e27905b09a58e4aa66d07d096db"
+ "ce87824e837be1c243dd741f983c535a5dd2f077aac8beee9918258d3cb",
+ "0917723f7241e8dc7cd746b699ab621d068dd3a90e906aaf0a4862744b96fd4e5ccdb9c7"
+ "796c27f7196e693d06ec209464c3ea60ad6313e9b77cceaa14767e6651c",
+ "0957b0ecdc3668f6efa5d0957615bcfffd6419c5e57579b74f960f65ae3fb9e8284322ff"
+ "710b066f7e0959ac926d3cf9a594bdb70bbec756c96910b26a2486dee9e"},
+ {NID_secp521r1, NID_sha224,
+ "80aad6d696cbe654faa0d0a24d2f50d46e4f00a1b488ea1a98ed06c44d1d0c568beb4ab3"
+ "674fc2b1d2d3da1053f28940e89ba1244899e8515cabdd66e99a77df31e90d93e37a8a24"
+ "0e803a998209988fc829e239150da058a300489e33bf3dcdaf7d06069e74569fee77f4e3"
+ "875d0a713ccd2b7e9d7be62b34b6e375e84209ef",
+ "1466d14f8fbe25544b209c5e6a000b771ef107867e28ed489a42015119d1aa64bff51d6b"
+ "7a0ac88673bbc3618c917561cff4a41cdb7c2833dab5ebb9d0ddf2ca256",
+ "0401dc8b71d55700573a26af6698b92b66180cf43e153edadb720780321dbb4e71d28e0a"
+ "488e4201d207fc4848fe9dd10dcabec44492656a3ff7a665fe932445c82d0b01920b1633"
+ "1b7abeb3db883a31288ef66f80b7728b008b3cc33e03a68f68d9e653a86e3177bbc00014"
+ "fa5ea4c1608c0d455c2e2ac7bd8ab8519ebf19955edf1baf8d",
+ "160d04420e0d31b0df476f83393b1f9aff68389cc3299e42ef348d97646f7531a722b66d"
+ "dfb9501bbb5c4a41d84c78be7233b11489bceb817d23060e6017433fab8",
+ "08077aabd0a342f03f912007c586cfedfc63f93d1118f720d5b62b3ce141a60f86f111df"
+ "d8fc2e31a6778981f1a5e28f29a7369bd7897bb41240c8d3a9c170e0ee0",
+ "00abc75fc154b93840579457820957e89d1260fee0a4b9bb1946f61ca1e71afd76bb5e10"
+ "77b3e38ceb39d1fac5ef8b217c4110617b3ad118e02b3fcc2a39ef38613"},
+ {NID_secp521r1, NID_sha224,
+ "8a7792a2870d2dd341cd9c4a2a9ec2da753dcb0f692b70b64cef2e22071389c70b3b188d"
+ "ea5f409fb435cbd09082f59de6bc2ff9e65f91b7acc51e6e7f8e513148cb3c7c4664f227"
+ "d5c704626b0fda447aa87b9d47cd99789b88628eb642ed250312de5ba6b25f3d5342a3cb"
+ "b7ebd69b0044ee2b4c9ba5e3f5195afb6bea823d",
+ "01a99fcf54c9b85010f20dc4e48199266c70767e18b2c618044542cd0e23733817776a1a"
+ "45dbd74a8e8244a313d96c779f723013cd88886cb7a08ef7ee8fdd862e7",
+ "0401912d33b01d51e2f777bdbd1ada23f2b1a9faf2be2f2a3b152547db9b149b697dd718"
+ "24ca96547462e347bc4ef9530e7466318c25338c7e04323b1ba5fd25ea716200bbe9b1e3"
+ "a84accd69b76b253f556c63e3f374e3de0d1f5e3600fc19215533b2e40d6b32c3af33314"
+ "d223ea2366a51d1a337af858f69326389276f91be5c466e649",
+ "14fafd60cb026f50c23481867772411bb426ec6b97054e025b35db74fe8ea8f74faa2d36"
+ "e7d40b4652d1f61794878510b49b7b4fe4349afccd24fc45fec2fd9e9e7",
+ "18b1df1b6d7030a23a154cacce4a2e3761cc6251ff8bf6c9f6c89d0a15123baef9b338ad"
+ "a59728349ce685c03109fcde512ed01a40afd2ca34e1bc02ecf2871d45c",
+ "0a399f9b9e21aeddf450429fec2dc5749e4a4c7e4f94cee736004dcc089c47635da22845"
+ "992cd076a4f0a01d2cc1b0af6e17b81a802361699b862157ad6cad8bd1d"},
+ {NID_secp521r1, NID_sha224,
+ "f971bcd396efb8392207b5ca72ac62649b47732fba8feaa8e84f7fb36b3edb5d7b5333fb"
+ "fa39a4f882cb42fe57cd1ace43d06aaad33d0603741a18bc261caa14f29ead389f7c2053"
+ "6d406e9d39c34079812ba26b39baedf5feb1ef1f79990496dd019c87e38c38c486ec1c25"
+ "1da2a8a9a57854b80fcd513285e8dee8c43a9890",
+ "1b6015d898611fbaf0b66a344fa18d1d488564352bf1c2da40f52cd997952f8ccb436b69"
+ "3851f9ccb69c519d8a033cf27035c27233324f10e9969a3b384e1c1dc73",
+ "040110c6177ceb44b0aec814063f297c0c890671220413dbd900e4f037a67d87583eaf4b"
+ "6a9a1d2092472c17641362313c6a96f19829bb982e76e3a993932b848c7a9700f6e566c4"
+ "e49b2ee70a900dc53295640f3a4a66732df80b29f497f4ae2fa61d0949f7f4b12556967b"
+ "b92201a4f5d1384d741120c95b617b99c47a61e11c93a482d6",
+ "1a88667b9bdfe72fb87a6999a59b8b139e18ef9273261549bc394d884db5aa64a0bc7c7d"
+ "38a8ef17333478d2119d826e2540560d65f52b9a6dc91be1340cfd8f8f8",
+ "015f73def52ea47ddb03e0a5d154999642202e06e6734ac930c1dc84756c67bbb1cca9f2"
+ "1f92d61bfdb2052c5dd2833349610f68139393d77250a7662ef7bd17cbe",
+ "155c744a729f83b27d1f325a91e63a0d564fe96ff91eaa1bad3bff17d2abffa065d14a1d"
+ "20a04dd993f6ed3260b60bcc6401e31f6bc75aaafe03e8c1a9cd14d2708"},
+ {NID_secp521r1, NID_sha224,
+ "ec0d468447222506b4ead04ea1a17e2aa96eeb3e5f066367975dbaea426104f2111c45e2"
+ "06752896e5fa7594d74ed184493598783cb8079e0e915b638d5c317fa978d9011b44a76b"
+ "28d752462adf305bde321431f7f34b017c9a35bae8786755a62e746480fa3524d398a6ff"
+ "5fdc6cec54c07221cce61e46fd0a1af932fa8a33",
+ "05e0d47bf37f83bcc9cd834245c42420b68751ac552f8a4aae8c24b6064ae3d33508ecd2"
+ "c17ec391558ec79c8440117ad80e5e22770dac7f2017b755255000c853c",
+ "0401a6effc96a7f23a44bf9988f64e5cfafdae23fa14e4bee530af35d7a4ddf6b80dcd0d"
+ "937be9dd2db3adcda2f5216fecbce867ee67e7e3773082f255156e31358c2f01e7760190"
+ "dfbe07ec2df87067597087de262c1e0a12355456faba91b2e7277050d73b924e14c0e93b"
+ "8457a8b3e1f4207ce6e754274f88ad75c000d1b2977edc9c1a",
+ "18afea9a6a408db1e7a7bb1437a3d276f231eacfc57678bfa229d78681cbe4e800e60653"
+ "32a3128db65d3aa446bb35b517dca26b02e106e1311881a95b0302d15e8",
+ "01c49b3c1d21f1678bdbe1ac12167e95e06617190bdee1a729c1c649210da19e2e210f66"
+ "89e1310513bfe2ac6c0f4ee5f324f344b31b18df341eaadb826d07adc9b",
+ "129d4931ba457443012f6ffecd002f2abc3a4b65a58fee8457917ebcf24b29a1d3055b7f"
+ "c62939a74ebb0c3582172ee7c3c75e0b2fa2367c6e04df63a7a91d593ad"},
+ {NID_secp521r1, NID_sha224,
+ "d891da97d2b612fa6483ee7870e0f10fc12a89f9e33d636f587f72e0049f5888782ccde3"
+ "ea737e2abca41492bac291e20de5b84157a43c5ea900aef761006a4471072ab6ae6d515f"
+ "fe227695d3ff2341355b8398f72a723ae947f9618237c4b6642a36974860b452c0c62026"
+ "88bc0814710cbbff4b8e0d1395e8671ae67ada01",
+ "1804ab8f90ff518b58019a0b30c9ed8e00326d42671b71b067e6f815ac6752fa35016bd3"
+ "3455ab51ad4550424034419db8314a91362c28e29a80fbd193670f56ace",
+ "0400a79529d23a832412825c3c2ad5f121c436af0f29990347ecfa586ce2e57fd3c7e062"
+ "4d8db1f099c53473dbc2578f85416ad2ac958a162051014fb96bf07f9e1d17017c0750f2"
+ "6df0c621d2d243c6c99f195f0086947b1bf0f43731555f5d677e2d4a082fb5fe8da87e15"
+ "92a5fa31777da3299cede5a6f756edf81c85b77853388bb3ab",
+ "042d7c36fec0415bc875deb0fab0c64548554062e618aee3aa6670ffd68ab579fe620d3a"
+ "9316357267fd3111c0ed567dca663acd94b646d2ba0771953cd9690ef42",
+ "0d01dfbef126febbdfa03ef43603fd73bc7d2296dce052216e965fed7bb8cbbc24142bfc"
+ "ddb60c2e0bef185833a225daa0c91a2d9665176d4ad9986da785f4bfcf0",
+ "16627e2614dbcd371693c10bbf579c90c31a46c8d88adf59912c0c529047b053a7c77151"
+ "42f64dcf5945dbc69ff5b706c4b0f5448d04dd1f0b5a4c3765148bf253d"},
+ {NID_secp521r1, NID_sha224,
+ "924e4afc979d1fd1ec8ab17e02b69964a1f025882611d9ba57c772175926944e42c68422"
+ "d15f9326285538a348f9301e593e02c35a9817b160c05e21003d202473db69df695191be"
+ "22db05615561951867f8425f88c29ba8997a41a2f96b5cee791307369671543373ea91d5"
+ "ed9d6a34794d33305db8975b061864e6b0fe775f",
+ "0159bff3a4e42b133e20148950452d99681de6649a56b904ee3358d6dd01fb6c76ea0534"
+ "5cb9ea216e5f5db9ecec201880bdff0ed02ac28a6891c164036c538b8a8",
+ "04012d7f260e570cf548743d0557077139d65245c7b854ca58c85920ac2b290f2abfeccd"
+ "3bb4217ee4a29b92513ddce3b5cbf7488fb65180bb74aeb7575f8682337ef50175601862"
+ "30c7e8bff0bffce1272afcd37534f317b453b40716436a44e4731a3ec90a8f17c53357bc"
+ "54e6ff22fc5b4ca892321aa7891252d140ece88e25258b63d5",
+ "14b8a30f988cefdc0edec59537264edb0b697d8c4f9e8507cf72bc01c761304bd2019da1"
+ "d67e577b84c1c43dd034b7569f16635a771542b0399737025b8d817e1c3",
+ "0fc50939ebca4f4daa83e7eaf6907cb08f330c01d6ea497b86becda43dfcad47cb5c48f5"
+ "eb2cc924228628070bcd144088c449a7873242ba86badf796097dbecd6d",
+ "0ccb6463c4301ba5c043e47ed508d57dd908fd0d533af89fd3b11e76343a1cf2954ce90b"
+ "0eb18cbc36acd6d76b3906612d8a0feec6ebed13d88650ed9c708b28a11"},
+ {NID_secp521r1, NID_sha224,
+ "c64319c8aa1c1ae676630045ae488aedebca19d753704182c4bf3b306b75db98e9be4382"
+ "34233c2f14e3b97c2f55236950629885ac1e0bd015db0f912913ffb6f1361c4cc25c3cd4"
+ "34583b0f7a5a9e1a549aa523614268037973b65eb59c0c16a19a49bfaa13d507b29d5c7a"
+ "146cd8da2917665100ac9de2d75fa48cb708ac79",
+ "17418dfc0fc3d38f02aa06b7df6afa9e0d08540fc40da2b459c727cff052eb0827bdb3d5"
+ "3f61eb3033eb083c224086e48e3eea7e85e31428ffe517328e253f166ad",
+ "04000188366b9419a900ab0ed9633426d51e25e8dc03f4f0e7549904243981ec469c8d6d"
+ "938f6714ee620e63bb0ec536376a73d24d40e58ad9eb44d1e6063f2eb4c51d009889b920"
+ "3d52b9243fd515294a674afd6b81df4637ffdddc43a7414741eda78d8aa862c9cbbb618a"
+ "cec55bb9a29aac59616fc804a52a97a9fc4d03254f4469effe",
+ "1211c8824dcbfa0e1e15a04779c9068aed2431daeac298260795e6a80401f11f6d52d36b"
+ "cee3cfa36627989c49d11475163aa201d2cd4c5394144a6bb500bbaf02b",
+ "1d59401b8ac438855d545a699991142685077a409de2418c7ccfe01a4771b3870e76287a"
+ "9654c209b58a12b0f51e8dc568e33140a6b630324f7ef17caa64bf4c139",
+ "143af360b7971095b3b50679a13cd49217189eaee4713f4201720175216573c68f7ac6f6"
+ "88bfe6eb940a2d971809bf36c0a77decc553b025ed41935a3898685183b"},
+ {NID_secp521r1, NID_sha256,
+ "8ab8176b16278db54f84328ae0b75ef8f0cd18afdf40c04ad0927ed0f6d9e47470396c8e"
+ "87cde7a9be2ffbfe6c9658c88b7de4d582111119c433b2e4a504493f0a1166e3a3ea0d7b"
+ "93358f4a297d63f65a5e752f94e2ee7f49ebcc742fa3eb03a617d00c574245b77a200338"
+ "54d82964b2949e2247637239ab00baf4d170d97c",
+ "1e8c05996b85e6f3f875712a09c1b40672b5e7a78d5852de01585c5fb990bf3812c32455"
+ "34a714389ae9014d677a449efd658254e610da8e6cad33414b9d33e0d7a",
+ "04007d042ca19408524e68b981f1419351e3b84736c77fe58fee7d11317df2e850d960c7"
+ "dd10d10ba714c8a609d163502b79d682e8bbecd4f52591d2748533e45a867a0197ac6416"
+ "111ccf987d290459ebc8ad9ec56e49059c992155539a36a626631f4a2d89164b985154f2"
+ "dddc0281ee5b5178271f3a76a0914c3fcd1f97be8e8376efb3",
+ "0dc8daaacddb8fd2ff5c34a5ce183a42261ad3c64dbfc095e58924364dc47ea1c05e2599"
+ "aae917c2c95f47d6bb37da008af9f55730ddbe4d8ded24f9e8daa46db6a",
+ "09dd1f2a716843eedec7a6645ac834d4336e7b18e35701f06cae9d6b290d41491424735f"
+ "3b57e829ad5de055eaeef1778f051c1ee152bf2131a081e53df2a567a8a",
+ "02148e8428d70a72bc9fa986c38c2c97deda0420f222f9dc99d32c0acba699dc7ba0a2b7"
+ "9ce5999ff61bd0b233c744a893bc105bca5c235423e531612da65d72e62"},
+ {NID_secp521r1, NID_sha256,
+ "c4bc2cec829036469e55acdd277745034e4e3cc4fcd2f50ec8bd89055c19795a1e051ccf"
+ "9aa178e12f9beab6a016a7257e391faa536eaa5c969396d4e1ade36795a82ebc709d9422"
+ "de8497e5b68e7292538d4ccdc6dd66d27a3ece6a2844962b77db073df9489c9710585ba0"
+ "3d53fa430dbc6626dc03b61d53fc180b9af5dea6",
+ "0b65bf33b2f27d52cbfabcadce741e691bf4762089afd37964de1a0deda98331bf8c7402"
+ "0a14b52d44d26e2f6fa7bcddbe83be7db17a0c8a1b376469cf92c6da27c",
+ "04010038bb9a7aea626de68c14c64243150e72c69e2f8a1ab922bfbdaa6f33d24fb4542c"
+ "0324357b0dd640bbcd07632ecd253f64ca2bfbfbf3de9b24fffd0568ab82da00faf867d9"
+ "5308cc36d6f46844a0f535dc70f9768eed011a2464d2f308fa1d8e72c3616aec7e705169"
+ "08183ffce7fdd36984a15f73efaa3858c2edf16a784d40e6c2",
+ "14aeb96c57d99677a1f5e4588064215e7e9af4027bfb8f31ff6126dbf341b8e6f719465e"
+ "4273e91ba32670feca802549808322b7ee108bb20653cf20f93284d365f",
+ "075ead62edf7d86c5d1bc2443d1aeb5dc034fd999e6ea012cef7499d9d050cd97d262095"
+ "884e9fc89a42e15bd3dee80fe3c1ba10f4caabc4aabb86347023028b663",
+ "129a992a6ff66d41948d11fa680f732b1a74315b804c982805190ed9d2fae223f2b14998"
+ "0b9241998cdea0c5672595a8a49d5186a0ef7a46c0a376f925bdda81726"},
+ {NID_secp521r1, NID_sha256,
+ "1c1b641d0511a0625a4b33e7639d7a057e27f3a7f818e67f593286c8a4c827bb1f3e4f39"
+ "9027e57f18a45403a310c785b50e5a03517c72b45ef8c242a57b162debf2e80c1cf6c7b9"
+ "0237aede5f4ab1fcaf8187be3beb524c223cc0ceff24429eb181a5eea364a748c7132148"
+ "80d976c2cd497fd65ab3854ad0d6c2c1913d3a06",
+ "02c4e660609e99becd61c14d043e8b419a663010cc1d8f9469897d7d0a4f076a619a7214"
+ "a2a9d07957b028f7d8539ba7430d0b9a7de08beeeae8452d7bb0eac669d",
+ "0400fb3868238ca840dbb36ecc6cf04f5f773ea0ab8e8b0fdcf779dc4039a8d7146a4175"
+ "04e953c0cb5e7f4e599cc2c168deda8b7f16084b5582f89f2ece4cae5167f701f90b5c15"
+ "eeda48e747cf3ee8183166a49dbfac6161cbd09d29d40a6854f4c495e88a435892a920cd"
+ "aad20d41985890b648badd4f0a858ffcbd9afdfc23134ede18",
+ "1f875bbf882cd6dd034a87916c7b3ba54b41b2ea2ce84ebaf4e393fcf7291fee09dec2b5"
+ "bb8b6490997c9e62f077c34f0947fe14cec99b906dd6bf0b5d301e75ca1",
+ "07aa70425697736b298233249f5d0cf25c99e640c9ff88035ef1804820e1bfe7d043755f"
+ "02d7a079494f7fa6dc26740c4e6b7b430c63f29c67bbd3a5c88d2f0e8d1",
+ "0e0d42e4ff11cf5be37a9fda348514d5097a662f214687cbfb28ff42d635b13029871ca4"
+ "f464bb1fbce02d5da4d5fb61b2a071844259fc863d136197bec3a61e7c7"},
+ {NID_secp521r1, NID_sha256,
+ "adb5f069b2b501a3ebb83d4f1808eb07710ac4a7b12532996855a20bcc54b2f76812915f"
+ "632163c3654ff13d187d007152617cf859200194b59c5e81fc6cc9eb1ceb75d654050f26"
+ "0caa79c265254089270ccd02607fdcf3246119738c496dc3a4bd5d3be15789fc3d29a08d"
+ "6d921febe2f40aef286d5d4330b07198c7f4588e",
+ "17c3522007a90357ff0bda7d3a36e66df88ca9721fb80e8f63f50255d47ee819068d018f"
+ "14c6dd7c6ad176f69a4500e6f63caf5cf780531004f85009c69b9c1230c",
+ "04013a4bea0eed80c66ea973a9d3d4a90b6abbb5dee57d8affaf93390a8783a20982eba6"
+ "44d2e2809f66530adeeee7f9a1da7515447e9ba118999f76f170c375f621f7012f9dfaee"
+ "40a75d8442b39b37a5c19ea124b464236e9b9a31bae6780cfd50f7ea4a700154b5ea0fee"
+ "b64e9b35a1b0e33e46900cca1f34d13bb17e5017769841af27",
+ "18388a49caeda35859ef02702c1fd45ff26991998bd9d5e189c12c36cdae3f642ddd4a79"
+ "561bd1d3e1cd9359de8f5c9e1604a312d207a27b08a6033f2741794ced5",
+ "15c6264795837dfea19f91876455f564f073c5c84a3c9d76e67872ae0447ba0d4850d872"
+ "1302b25bec7ebfedd2721de140b2f3dead547042b24b0876117e7093cc1",
+ "060eb74236c189a28ed20bd0822eb22d75f7d97c9043a3c8e3f6d4c90bc8ca02ac4d37c1"
+ "171c799a1c7dfd2fcbf83406b5e48c051e0fbf0fd937bfe6c3db4e18154"},
+ {NID_secp521r1, NID_sha256,
+ "f253484d121d1ce8a88def6a3e9e78c47f4025ead6f73285bf90647102645b0c32d4d867"
+ "42a50b8b7a42d5f6156a6faf588212b7dc72c3ffd13973bdba732b554d8bffc57d04f816"
+ "7aef21ee941ee6ffb6cce0f49445bd707da8deb35dca650aaf761c3aa66a5ebccddd15ae"
+ "e21293f63061a7f4bfc3787c2cd62c806a1a9985",
+ "0c4dad55871d3bd65b016d143ddd7a195cc868b3048c8bbcb1435622036bdb5e0dec7178"
+ "ca0138c610238e0365968f6ddd191bbfacc91948088044d9966f652ff25",
+ "040014858a3b9bd426b678fdcf93fc53d17e7a9e8fe022442aaaba65399d12fd3a6a3819"
+ "58fb0f07ac6088f4e490506ec0f1ab4d0dbd461126f7eb46ff69cfa8bd88af018c18ce29"
+ "ecc6d79d26a2de0cd31c4b32e84b5e90f6ba748f86c5afbd89618aceb9079460cbd1a826"
+ "1ed5476973e61bf1d17ea78b022387443800c9247d21dde550",
+ "05577108f4187a173e5c29e927a8fc8f5ffd37e184254a6e381ff1018955aec91a35f300"
+ "85e8cee6a7555c10f9efdce26d62f2b4b52dfdbaeafc3a30983e2d50d5b",
+ "0344375ae7c804cbe32ced7a20976efae5d9c19eb88b6e24514d1d0cfb728b0f4601098b"
+ "18b2e98f42b5222dd5237d4d87767007bf5acb185c5526d72047e2cb1a1",
+ "02de4cfa908c73c1102d6fb7062baf54a056a9517701e036c9c51e09899d60051612d593"
+ "48945f845dffebec5aa395b2fac7229929033615788777306ccad96d0a3"},
+ {NID_secp521r1, NID_sha256,
+ "33bab1c369c495db1610965bc0b0546a216e8dd00cd0e602a605d40bc8812bbf1ffa6714"
+ "3f896c436b8f7cf0bed308054f1e1ff77f4d0a13c1e831efbd0e2fcfb3eadab9f755f070"
+ "ba9aeaceb0a5110f2f8b0c1f7b1aa96a7f2d038a1b72e26400819b1f73d925ea4e34d6ac"
+ "af59d0a461a34ce5d65c9c937a80e844e323a16d",
+ "03d4749fadcc2008f098de70545a669133c548ce0e32eec1276ff531bcff535331445557"
+ "28ad8906d17f091cc0514571691107350b6561858e90dbe19633aaf31bf",
+ "04010fe5986b65f6e65d13c88c4d2aed781a91026904f82129d46779bdadaf6b733c845a"
+ "934e941ab4a285efdea9c96ecc9dc784d87e4d937b42c337b3a9cb111a96000077853768"
+ "a2a4d6f596f57414e57ec60b76d3cd5ece8351cd1f335ebcb8801a3d91fb82c65caaeb5c"
+ "31eea9918367bb5906863ff3ccaf7a6cee415e0d75c15ac2e0",
+ "1fbb4de337b09e935a6dc6215ffcfcb85d236cc490585e73251a8b8bac37cfa36c5d1df5"
+ "f4536d33659be1e7a442529a783452f7efda74a4f661b6a127f9248aaf7",
+ "09d8f10eeff6178594c89d6e8184f9502117384813243ddf9ccf3c8eac5dc6502c472dfc"
+ "1487a5caffc569f7dedd14a8ebcb310e9bacdb79fb6655aba026cdf87f2",
+ "0f74236c7915d638708d17c9f10e39dda358faf9bbb821d8dcda0d151aac143bfb165ad0"
+ "a23a65cd3de532e32cad928728f5ae1c16f58fc16577f3ca8e36f9e708b"},
+ {NID_secp521r1, NID_sha256,
+ "08c8b7faaac8e1154042d162dca1df0f66e0001b3c5ecf49b6a4334ce4e8a754a1a8e4da"
+ "f8ec09cf1e521c96547aed5172ef852e82c03cddd851a9f992183ac5199594f288dbcc53"
+ "a9bb6128561ff3236a7b4b0dce8eaf7d45e64e782955ee1b690ce6a73ece47dc4409b690"
+ "de6b7928cbe60c42fc6a5ddf1d729faf1cc3885e",
+ "096a77b591bba65023ba92f8a51029725b555caf6eff129879d28f6400e760439d6e69ce"
+ "662f6f1aecf3869f7b6057b530a3c6ff8ed9e86d5944f583ee0b3fbb570",
+ "0400fdf6aed933dba73913142ef8bdcd4b760db8500831cd11d7707ab852a6372c05d112"
+ "a1e7fbc7b514c42142c7370d9f4129493cd75cc6f2daf83747078f15229db600ef91dffb"
+ "3c43080a59534b95ca585ee87f6145f6a0199b2b82c89f456d8bd8e6ac71c78039c08177"
+ "184484eb2ebd372f189db3a58fab961a75a18afec1ee32764a",
+ "13aa7b0471317a2a139c2f90df1c40d75e5a8a830fbaf87030fffdb2ef6f2c93d1310c9e"
+ "d7fe9d7bcd4fe46537ff2495bc9c4f0aaff11461f5e4bebbfbce9a8740a",
+ "1c7a21800962c91d4651553633b18612d931bb88bff8b743ed595b4e869437e50f8e84fb"
+ "f334c99061db123a1c40b73b07e203790561a37df65a660355ba2017d78",
+ "1301e1782559a38f1ca0eebe9bed0f5c7c33103d506a24f8a688f500ee1fe37f97b66853"
+ "19279e82e6fe43cfd823ccbc123309974cffa76c4f8d41ec02a3cbc45f1"},
+ {NID_secp521r1, NID_sha256,
+ "ba74eed74282811631bd2069e862381e4e2a1e4e9a357b1c159a9ce69786f864b60fe90e"
+ "eb32d8b72b099986fc594965a33285f7185b415df58fead7b8b50fc60d073680881d7435"
+ "609ad1d22fd21e789b6730e232b0d2e888889fb82d6ad0337ab909308676164d4f47df44"
+ "b21190eca8ba0f94995e60ad9bb02938461eee61",
+ "015152382bfd4f7932a8668026e705e9e73daa8bade21e80ea62cf91bd2448ebc4487b50"
+ "8ca2bdaaf072e3706ba87252d64761c6885a65dcafa64c5573c224ae9e6",
+ "04000b8c7c0186a77dc6e9addd2018188a6a40c3e2ba396f30bbd9293dba2841d57d6086"
+ "6b37f587432719b544d8bf7eb06d90a8c0dc9c93b0c53d53b2f667077228ca01dd2e5c73"
+ "ab908ae34f701689f1cd3cf5186d3a2bc941e208bf3ef970e5e429ee9b154d73286b2e5d"
+ "a423e75b7c7b78c7bdf915da92279db43265a0cdefca51f86a",
+ "0d03506999f5cc9ec3304072984a20a9c64a22ad9b418495ca904f4bbddc96e76d34672c"
+ "b52763339d3f3bc5b1701c00a675b972797e3a086314da1a8d338436566",
+ "085406c0ff5ec91f598bb579ad8714ad718c3e133d5dcc2e67c5d2339c146b69919cac07"
+ "f3bc2bda218f4c7c8be04855e2ca6fff7fbdc4fc0fda87c8c3081cad4f5",
+ "1b45f2066e583636215ae135afc202b8bf3f301eccff2e1c0198b9aeddf695fa8179488e"
+ "7b622fc307f601e2f6551815117cc836bb09ef888f8e64a45d9c84ad30c"},
+ {NID_secp521r1, NID_sha256,
+ "dc71f171a28bdc30968c39f08f999b88dc04c550e261ecf1124d67f05edeae7e87fe9b81"
+ "35a96fe2bc3996a4f47213d9d191184a76bd6310e1ee5cb67ea7fc3ef6f641a0ba165198"
+ "040fa668192b75a4754fc02c224bd4a74aade5a8c814adf151c2bfeda65165a04ef359e3"
+ "9847c84e312afb66d4cd1db50d41ef3fe5f31296",
+ "1750ff0ca0c166560b2034bc5760fe0b3915340bc43216e9de0c1d4a76550e8b2036e8b8"
+ "74230f8d29354aed43e183610f24fd4abd4b0be2f111dae942bd7a121f7",
+ "0401b4b8947192a7c0166c0e0b2791e217370836283e805f3ee11cfb78445aba3c5bc39f"
+ "e594e01916617ad59e7c8e740d8f2d07d88905d3f33bd5e51aafd4943c5dc601175d1172"
+ "32836c28e717ce2a55e59f4ec550effde30d18e3d99e42c6aa2283c7b3e7f2f6ff1fca60"
+ "5dde78c3a5bffa689347b4c93f51ba59a1787bb7d5e43861dc",
+ "023645023d6bdf20652cdce1185c4ef225c66d54f18632d99ccf743bf554d04c214c88ce"
+ "52a4f71ec75c899ad1b3c07c34112ca20b55c217ff1d72c9528e2774ce8",
+ "1e933f68ce0f8403cb16822b8e0564b1d39a35f27b53e4ae0bcdff3e051759464afbc349"
+ "98ba7c8a7ee34ef6c1aaa722cffe48356fd0b738058358d4c768b3186c1",
+ "0a67368a305508ce6d25d29c84f552a4a513998990fef4936244f891a2909c30d5fdc9e8"
+ "a267ecbf3c597138f4a08f7e92bee57d5420eadd700fee864bf78b2614b"},
+ {NID_secp521r1, NID_sha256,
+ "b895788d7828aaeace4f6b61a072ffa344d8ea324962ba6dab5efda93f65bf64a0f2ac6d"
+ "5721d03ee70e2aef21cdba69fd29040199160e3a293b772ffb961ed694a8dc82800dab79"
+ "367a4809a864e4aff6bc837aaa868e952b771b76591c0bb82249034e3208e593d85973d3"
+ "fea753a95b16e221b2561644535c0131fe834ae7",
+ "023048bc16e00e58c4a4c7cc62ee80ea57f745bda35715510ed0fc29f62359ff60b0cf85"
+ "b673383b87a6e1a792d93ab8549281515850fa24d6a2d93a20a2fff3d6e",
+ "0400ba3dc98326a15999351a2ec6c59e221d7d9e7ee7152a6f71686c9797f3f330d31501"
+ "23620d547813ba9d7cc6c6d35cc9a087d07dff780e4821e74ad05f3762efd6018b051af9"
+ "824b5f614d23ecadd591e38edbfe910ad6cbebc3e8a6bec11ea90691c17deb3bc5f34a4a"
+ "3acd90b7b10f521f6ee7b3cfbfdc03b72d5a8783a4a77c3e4c",
+ "06099d2667f06c58798757632d07d8b3efbe9c1323efb0c244be6b12b3b163ba1b7cf524"
+ "6c98dcc0771665a66696d687af5f28ed664fd87d5093df6427523d4db84",
+ "10dc80ea853064a2ba5a781f108aca3785c5ec0aa45aa05ba31d4de671170797589e863d"
+ "54a3a986aadf6f670277f50355713dfb27d4ec7e348f787910b3cd668cd",
+ "018572bfad4f62e3694d1f2e6ffd432faed2e2b9d7e3611a07138212f1e79e6c394839f7"
+ "cfae96bc368422630016fb9346681eadc5f9699e7331c3b5fde6d65e4c6"},
+ {NID_secp521r1, NID_sha256,
+ "2c5bd848c476e34b427cfe5676692e588e1957957db7b5704492bd02104a38216535607f"
+ "5d092dc40020130c04a3aaf0f1c52409834926d69a05d3f3188187a71d402a10ba34eac8"
+ "629b4c6359b1095f30f710219298bf06b9f19bfc299981d7e251ca232a0a85338a7e0246"
+ "4731d1b25d4a1f68baf97064516590644820c998",
+ "02b8b866ce4503bb40ffc2c3c990465c72473f901d6ebe6a119ca49fcec8221b3b4fa7ec"
+ "4e8e9a10dbd90c739065ad6a3a0dd98d1d6f6dcb0720f25a99357a40938",
+ "0401b8c7a169d5455f16bfe5df1ba5d6ec9c76e4bad9968d4f5f96be5878a7b6f71d74bf"
+ "ac0076dd278bc4630629f3294646f17d6b6c712b0087e2c4d576039cfdc8b9018faffd54"
+ "22dfd1b61432fa77b9a288b2b7d546656c0dcca3032179e6f45ee3cf61d6a447fc51731c"
+ "b54457343a41569fcf78cef42895f4da5efcb14ea1fc065f8d",
+ "0ac89e813f94042292aa1e77c73773c85cf881a9343b3f50711f13fa17b50f4e5cb04ac5"
+ "f6fc3106a6ef4c9732016c4e08e301eefac19199459129a41a7589e0628",
+ "05bc7a253a028ee8b7253979b8d689d41d8df6fae7736341f22e28b6faf0cbbdebbd2ef4"
+ "d73e56d2021af2c646dc15539a7c1e1c4dc9c7674808bd7968d8a66f947",
+ "0fd71575837a43a4cf1c47d0485cfd503c2cf36ebcea0fdef946ad29acb7fb2e7c6daf6b"
+ "4eb741eb211081aed6207d02569f1518988f275ad94c7fd4735cb18a92e"},
+ {NID_secp521r1, NID_sha256,
+ "65a0b97048067a0c9040acbb5d7f6e2e6ac462e1e0064a8ce5b5bbf8e57059e25a3ef8c8"
+ "0fc9037ae08f63e63f5bdb9378c322ad9b2daf839fad7a75b1027abb6f70f110247da7e9"
+ "71c7c52914e5a4f7761854432fa16b2a521e7bcaee2c735a87cad20c535bf6d04a87340c"
+ "229bf9af8647eedca9e2dc0b5aa90f7fea3cdc0a",
+ "0a43b32ad7327ec92c0a67279f417c8ada6f40d6282fe79d6dc23b8702147a31162e6462"
+ "91e8df460d39d7cdbdd7b2e7c6c89509b7ed3071b68d4a518ba48e63662",
+ "040172fb25a3e22c2a88975d7a814f3e02d5bb74cfb0aaa082c5af580019b429fddd8c7f"
+ "9e09b6938f62e8c31019b25571aaceef3c0d479079db9a9b533ee8e1670abd00ff551622"
+ "3b6cc7c711705f15b91db559014e96d3839249c5c849f2aced228a8998177a1e91177abb"
+ "b24b57a8ea84d944e0c95da860ae0925f1b40c0e1b7c9e0a46",
+ "0383eda042e06c0297fbd279a2ad40559c5c12ad458f73458eebcc92b308d3c4fcec20a5"
+ "b59f698e16fa6ea02dba8661b6955f67c052f67b0a56460869f24cfdf7d",
+ "1b9c35356b9d068f33aa22a61370dae44a6cb030497a34fb52af23c6b684677370268f06"
+ "bb4433be6795a71de570088aec17ce0c9933d2f76c7edce7f406f62fedd",
+ "06f07ea453cfa20ad604ba855332f62834657b0b795684d50c1562a675456e37f4dae45f"
+ "0df47d8e27e47bc9ce9c9cbba1554c5b94b0b17401b73c8d0c0902c6cc4"},
+ {NID_secp521r1, NID_sha256,
+ "d6e366a87808eea5d39fe77cac4b8c754e865a796062e2ec89f72165cd41fe04c4814806"
+ "8c570e0d29afe9011e7e7a2461f4d9897d8c1fa14b4ff88cab40059d17ab724f4039244e"
+ "97fcecb07f9ffeec2fb9d6b1896700fe374104a8c44af01a10e93b268d25367bf2bef488"
+ "b8abcc1ef0e14c3e6e1621b2d58753f21e28b86f",
+ "03c08fdccb089faee91dac3f56f556654a153cebb32f238488d925afd4c7027707118a37"
+ "2f2a2db132516e12ec25f1664953f123ac2ac8f12e0dcbbb61ff40fb721",
+ "040193301fc0791996ca29e2350723bd9aa0991ddbb4a78348ee72bdcd9ed63ce110ba34"
+ "96f2ce0331b5c00d4d674c1b70114e17ce44a73c3e16bab14ed1ee924202e400aea9b288"
+ "cfb2933ec0a40efa8e2108774e09b3863b3193d0dac6cc16ccaa5bd5f9ce133aec5cd3b6"
+ "2cbaeec04703e4b61b19572705db38cfaa1907c3d7c785b0cd",
+ "0d0e90d5ee7b5036655ad5c8f6a112c4b21c9449ca91c5c78421e364a2160bbac4428303"
+ "657bc11ea69f59fb0fe85a41b8f155a362343094456fd2a39f2a79e4804",
+ "1a8c23a2965d365a4c2ffd0802ae8b3a69c6b84a1ba77fd8a5f2f61e8ec3a1dcb336f136"
+ "e2a997252eaa94caf9b5ad6c9ecff5bf33abf547ca84985bb89908a11d7",
+ "1cc42a2dd97aa42b9df5ea430e0d4cb13106dd6da6e8c9315c96ed7b052db365bbde6960"
+ "c9a965954a4398c18ea7db9593bbfc3c3b6b3466ff806fccac3de6424ab"},
+ {NID_secp521r1, NID_sha256,
+ "f99e1d272d0f5fb9c4f986e873d070ec638422bc04b47c715595e2cf1a701cdf88bc6c4b"
+ "20085b357bad12ccba67cac8a5ca07f31ba432f9154ff1fadefd487a83a9c37e49fb70a2"
+ "f170e58889cab0552e0a3806ccfa2a60d96e346851d84b7de6d1a4b8cf37567dc161a84f"
+ "13421e3412457d4bc27f6213453c8519a2d7daa2",
+ "0969b515f356f8bb605ee131e80e8831e340902f3c6257270f7dedb2ba9d876a2ae55b4a"
+ "17f5d9acd46c1b26366c7e4e4e90a0ee5cff69ed9b278e5b1156a435f7e",
+ "0400fc7ae62b05ed6c34077cbcbb869629528a1656e2e6d403884e79a21f5f612e91fc83"
+ "c3a8ac1478d58852f0e8ba120d5855983afd1a719949afa8a21aec407516c300aa705da6"
+ "459a90eaa2c057f2e6614fb72fc730d6fdebe70e968c93dbc9858534768ea2666553cd01"
+ "db132331441823950a17e8d2345a3cab039c22b21bfe7bd3b9",
+ "19029260f88e19360b70c11107a92f06faa64524cfbd9f70fecf02bd5a94f390582a7f4c"
+ "92c5313bb91dc881596768d86f75a0d6f452094adbe11d6643d1a0b2135",
+ "07f2158e9b9fa995199608263969498923cf918fdc736427c72ce27ce4a3540dce2e8e5e"
+ "63a8fc7ba46f7fa42480efbf79c6ed39521f6e6ec056079e453e80a89d9",
+ "08e349eed6f1e28b0dbf0a8aeb1d67e59a95b54a699f083db885f50d702f3c6a4069591a"
+ "faa5b80b3c75efb1674ebd32c7ead0040d115945f9a52ee3a51806cad45"},
+ {NID_secp521r1, NID_sha256,
+ "91f1ca8ce6681f4e1f117b918ae787a888798a9df3afc9d0e922f51cdd6e7f7e55da996f"
+ "7e3615f1d41e4292479859a44fa18a5a006662610f1aaa2884f843c2e73d441753e0ead5"
+ "1dffc366250616c706f07128940dd6312ff3eda6f0e2b4e441b3d74c592b97d9cd910f97"
+ "9d7f39767b379e7f36a7519f2a4a251ef5e8aae1",
+ "013be0bf0cb060dbba02e90e43c6ba6022f201de35160192d33574a67f3f79df969d3ae8"
+ "7850071aac346b5f386fc645ed1977bea2e8446e0c5890784e369124418",
+ "040167d8b8308259c730931db828a5f69697ec0773a79bdedbaaf15114a4937011c5ae36"
+ "ab0503957373fee6b1c4650f91a3b0c92c2d604a3559dd2e856a9a84f551d9019d2c1346"
+ "aadaa3090b5981f5353243300a4ff0ab961c4ee530f4133fe85e6aab5bad42e747eee029"
+ "8c2b8051c8be7049109ad3e1b572dda1cac4a03010f99f206e",
+ "1a363a344996aac9a3ac040066a65856edfb36f10bb687d4821a2e0299b329c6b60e3547"
+ "dde03bdbd1afa98b0b75d79cf5aac0ef7a3116266cadf3dfbd46f8a4bfc",
+ "1ff097485faf32ce9e0c557ee064587c12c4834e7f0988cf181d07ba9ee15ae85a8208b6"
+ "1850080fc4bbedbd82536181d43973459f0d696ac5e6b8f2330b179d180",
+ "0306dc3c382af13c99d44db7a84ed813c8719c6ed3bbe751ead0d487b5a4aa018129862b"
+ "7d282cce0bc2059a56d7722f4b226f9deb85da12d5b40648bf6ec568128"},
+ {NID_secp521r1, NID_sha384,
+ "dbc094402c5b559d53168c6f0c550d827499c6fb2186ae2db15b89b4e6f46220386d6f01"
+ "bebde91b6ceb3ec7b4696e2cbfd14894dd0b7d656d23396ce920044f9ca514bf115cf98e"
+ "caa55b950a9e49365c2f3a05be5020e93db92c37437513044973e792af814d0ffad2c8ec"
+ "c89ae4b35ccb19318f0b988a7d33ec5a4fe85dfe",
+ "095976d387d814e68aeb09abecdbf4228db7232cd3229569ade537f33e07ed0da0abdee8"
+ "4ab057c9a00049f45250e2719d1ecaccf91c0e6fcdd4016b75bdd98a950",
+ "04013b4ab7bc1ddf7fd74ca6f75ac560c94169f435361e74eba1f8e759ac70ab3af138d8"
+ "807aca3d8e73b5c2eb787f6dcca2718122bd94f08943a686b115d869d3f40600f293c1d6"
+ "27b44e7954d0546270665888144a94d437679d074787959d0d944d8223b9d4b5d068b4fb"
+ "bd1176a004b476810475cd2a200b83eccd226d08b444a71e71",
+ "0a8d90686bd1104627836afe698effe22c51aa3b651737a940f2b0f9cd72c594575e550a"
+ "db142e467a3f631f4429514df8296d8f5144df86faa9e3a8f13939ad5b3",
+ "02128f77df66d16a604ffcd1a515e039d49bf6b91a215b814b2a1c88d32039521fbd142f"
+ "717817b838450229025670d99c1fd5ab18bd965f093cae7accff0675aae",
+ "008dc65a243700a84619dce14e44ea8557e36631db1a55de15865497dbfd66e76a7471f7"
+ "8e510c04e613ced332aa563432a1017da8b81c146059ccc7930153103a6"},
+ {NID_secp521r1, NID_sha384,
+ "114187efd1f6d6c46473fed0c1922987c79be2144439c6f61183caf2045bfb419f8cddc8"
+ "2267d14540624975f27232117729ccfeacccc7ecd5b71473c69d128152931865a60e6a10"
+ "4b67afe5ed443bdbcdc45372f1a85012bbc4614d4c0c534aacd9ab78664dda9b1f1e2558"
+ "78e8ac59e23c56a686f567e4b15c66f0e7c0931e",
+ "04ceb9896da32f2df630580de979515d698fbf1dd96bea889b98fc0efd0751ed35e6bcf7"
+ "5bc5d99172b0960ffd3d8b683fbffd4174b379fbdecd7b138bb9025574b",
+ "0400e7a3d30d5bd443549d50e9b297aaa87bc80b5c9e94169602d9d43d6d0c490c0bed8c"
+ "c2170288b106bdbf4c9f1ce53fd699af0b4c64b494b08520e57dc01ab9a8b001d81056d3"
+ "7aec8a75d588f6d05977416e6f24ad0117a7f4450036d695612e7bc2771caed80e580314"
+ "eebc88c8fc51c453f066e752481f212b57165d67f8a44f375a",
+ "046639c5a3ec15afae5e4a7a418ac760846512d880c359bc2c751b199ce43b10887e861b"
+ "14127809754dbea47f6cc0140d2817e3f5b9a80ce01abd81f81b748433a",
+ "0f913de91e19bd8f943d542ae357bacc942a0967abc9be6c06239a379db8cc733fa50013"
+ "e0b0f088bce9d630262feaa33b30d84f91bcf5ce9976e4e740fcb112f84",
+ "08a73a5c9c24235e0d9cecaac653f68ce5a6fb186ce67fa058d6ddbbd4d0a8c4d194e571"
+ "148e8ad6c8882b4e33d2f60fb23dd7d07a1ae60864e8277918f592b3dc6"},
+ {NID_secp521r1, NID_sha384,
+ "6744b69fc2420fe00f2352399bd58719e4ecdd6d602e2c80f194d607e58b27a0854745bf"
+ "d6d504de2eb30b04cee0f44af710dd77e2f816ac3ac5692fad2d1d417893bb0edba2707a"
+ "4c146a486f8728ca696d35cc52e9c7187c82d4bdb92eb954794e5ad15133f6bfea1f025d"
+ "a32ada710a3014cf11095b3ff69a94d087f17753",
+ "00a8db566bd771a9689ea5188c63d586b9c8b576dbe74c06d618576f61365e90b843d003"
+ "47fdd084fec4ba229fe671ccdd5d9a3afee821a84af9560cd455ed72e8f",
+ "04004f5b790cbe2984b71d41af5efed6c6893d15e13f31816d55a9c2926a104eee66f1ad"
+ "a83115d1388551218773b8b9d1138e3e3f027bb4392c90c14fd232580b4a1100660eb160"
+ "e9bfc8c5619e70e948e238c6fd37739bc1bb657b8e8436e63628f91992be7e63d9a73596"
+ "23a1340642777b22026feb51116a6c50c54c3589b9bd39b6cb",
+ "1e7b5e53571a24bd102dd7ad44a4b8d8a4e60e5957bc3c4e5d3c73109f55233f072e572c"
+ "7892f425ba5e64d3cb7966096bb34a47e26cd5b3e3b44108b310d9f681b",
+ "1a88bcd7e2bdff6e497d943dde432fb3f855a7177c466319cb53b701230c299db0302762"
+ "69685857d1e3f28110e690f2f529c8d18115eb381f313bc891d92ad278e",
+ "146f1984ea879274dfd5e86ad92e564a4de081523ddbb1c397b8f9595911ef2e6501bc08"
+ "1584d5340f7aa47e1af036234ac6f27a5ac31f78dd3b0ff1a62693c630d"},
+ {NID_secp521r1, NID_sha384,
+ "16001f4dcf9e76aa134b12b867f252735144e523e40fba9b4811b07448a24ef4ccf3e81f"
+ "e9d7f8097ae1d216a51b6eefc83880885e5b14a5eeee025c4232319c4b8bce26807d1b38"
+ "6ad6a964deb3bdca30ee196cfdd717facfad5c77d9b1d05fdd96875e9675e85029ecbf4f"
+ "94c524624746b7c42870c14a9a1454acf3354474",
+ "1a300b8bf028449344d0e736145d9dd7c4075a783cb749e1ec7988d60440a07021a25a3d"
+ "e74ea5e3d7bd4ab774d8ad6163adae31877ef0b2bd50e26e9e4be8a7b66",
+ "04005055b9ad726ba8a48219b0ecbfffb89f8428de895b231f676705b7de9f2022d9ff4e"
+ "0114ebb52dea342f9bf76b2fb060c020e29d92074ebb1fbfe5290a58c8bc1000415af7f2"
+ "0a6e945315adbf757316bb486c80780a0a3a15b4b9609f126d7341053a2b726ab63cb46f"
+ "eee527b0bf532b32b477e5671aea23d9b3c3e604b9029954b5",
+ "05a2e92717bb4dab3ee76724d4d9c2d58a32b873e491e36127985f0c9960c610962ca1c4"
+ "510dba75c98d83beebdc58b1d8678e054640951d11db1bd2d8a4ab8476b",
+ "104a78ce94f878822daaf00ee527fbdbf6cceb3cbb23a2caa485e4109466de8910252f92"
+ "379ab292cac8d1eda164f880c0067696e733fc8588a27703a3e1f5b8f1f",
+ "1ffe23e8ab5a31668a81161a234ea14879771fe9866f8872eb6edb672e0fe91d2bb75c97"
+ "67a2dfbac7c15c802211236b22ea41ecd055a0b8b311ffc4255f86d5c67"},
+ {NID_secp521r1, NID_sha384,
+ "a9824a7b810aa16690083a00d422842971baf400c3563baa789c5653fc13416111c0236c"
+ "67c68e95a13cec0df50324dcc9ae780ce4232607cb57dd9b2c61b382f0fa51fd4e283e2c"
+ "55ffe272597651659fbd88cd03bfa9652cd54b01a7034c83a602709879e1325c77969beb"
+ "fd93932ce09a23eae607374602201614ff84b141",
+ "06a253acd79912a74270fc0703ed6507ab20a970f2bc2277f782062092cf0e60ae1ca1bb"
+ "44dec003169bc25ef6e7123dd04692f77b181a6d7e692e66b09d35a540c",
+ "0401f15c6b1df156fdd8381cd7446e039435e445f8f36f0247475058da0e371bf72753f6"
+ "e39f98066bc79370b038c39687ba18e16cb118fe6538b7568c5403c251f6b7012d2b4f46"
+ "b854eeae75f1c63f55b76bf0c604d47f870c28a50ecdeb52bba1dd9a0ff12e680804ff86"
+ "4111207652da7dd10b49edf66bb86be00bc06672de91982457",
+ "165faf3727e42fd61345cfa7b93e55fb4bf583b24bdc14ce635b6c99dbd788012f14da9a"
+ "210b677c44acdd851e672f1a48188d6b8946c0efeebfe8a597ba0090a2c",
+ "1ad9463d2759abd568626548578deefdcd8b2d050ce6d9c7ed05feca20167484b86e89bd"
+ "cc936fd647e0f8aedd7b6add2b8cf13ff6ff013c2b5540c6c56fda97a0c",
+ "1645a7d0e11015256cfb034adca198695eea6aedd44d9fbf496850ccfed950f43fffd8db"
+ "f41e113f2d3837d8a5dd62b2ed580112ff05800b1f73196e5576810e15b"},
+ {NID_secp521r1, NID_sha384,
+ "90d8bbf714fd2120d2144022bf29520842d9fbd2dc8bb734b3e892ba0285c6a342d6e1e3"
+ "7cc11a62083566e45b039cc65506d20a7d8b51d763d25f0d9eaf3d38601af612c5798a8a"
+ "2c712d968592b6ed689b88bbab95259ad34da26af9dda80f2f8a02960370bdb7e7595c0a"
+ "4fffb465d7ad0c4665b5ec0e7d50c6a8238c7f53",
+ "0d5a5d3ddfd2170f9d2653b91967efc8a5157f8720d740dd974e272aab000cc1a4e6c630"
+ "348754ab923cafb5056fc584b3706628051c557fce67744ee58ba7a56d0",
+ "040128a4da5fc995678e457ceb3929adee93c280f851abe900fa21f4f809dafad4e33b38"
+ "1e0cd49ce8dd50e2e281cea162bfd60a1d6a1c0ee2228e6a011e171b559ab8006eb0917c"
+ "d72256992c49ea527f6bb0315f13d8047794a0f1da1e93737703b1c2a74a00441ef3b47b"
+ "6a2ff789c49ae32d91cabe7b29247aeec44f6c40a76597a2ca",
+ "03269983a5c2bcc98e9476f5abf82424566b1f08b17204d29e310ece88f99eb677a537f8"
+ "6fe2529e409cfef2c12929644100099e0de2f27c0f0ac11105a4dca935b",
+ "1a5257ae1e8187ba954f535b86ff9b8d6a181a3b95c250d090cb4e9c3bfbd03aa64696a7"
+ "6c569728ef67780d6338d70ce46da40b87a3e49bfe154b93930890dfa93",
+ "05b6ccdfd5c63c7db76d3a0478064a2a376e0e050cb093be795a72a549247c2e4adba918"
+ "3145c63d46479dbbdcf09986a6f64c09c7e16abc4853f6376c9558b014a"},
+ {NID_secp521r1, NID_sha384,
+ "09952b1e09995e95bf0022e911c6ab1a463b0a1fdd0eec69117b34af1103c720b5760021"
+ "7de7cd178fef92de5391e550af72a8dcf7badf25b06dd039417f9a7d0f5be88fcd4e9655"
+ "931d5b605452a667c9d1bae91d3476e7d51cff4108f116a49966fb3a7cff8df1c09734ce"
+ "5620faf2dccb3dc5d94e7e9ac812da31f6d07a38",
+ "1bcedf920fa148361671b43c64e3186e1937eb1bd4b28cbd84c421472394552889bc0550"
+ "9aa732ef69d732b21b750523fdfd811f36467690fe94e01e64c9d5cbbe9",
+ "0400d33c151d202a5d4d831348e940b027ee32e4b0b9b48d823a05c67ff3bdaee0189fc6"
+ "680565f352c062e99968afc643208b4f9c7af185b861658a88c4ad0fcc8ba200e4441ddb"
+ "546468ad8ffa6074f137edfbb81e82e0e7d8f05c4c54598aa996a9cde54cb371f642bfdd"
+ "4ae7eca5b769696030027129a4183da93567ad142a2dff5183",
+ "046e619b83aac868b26d0b3cbfab55e630e0b55c461985b5d00f94ff3a5ce90ff412cebf"
+ "46bbd84550d2031d573ca27d924624428360708c8d8491c29eb01d30f2e",
+ "08427c0f0ac0263472cd423c0fb554bf3c851b9c775c566ab0f6878717bd57665830767b"
+ "05b7789c5c0b078195bd943dc737325552d32877ecb04a7c41bd07cd80c",
+ "10bb6652d6a624c40a7dd06828f15774130d02369ceb1a7d03b553e16e17b7fa5b5401f1"
+ "5885d5e4fc2e55c0c7a1b97871ab02f76386b93a16aa6e7eb65debac6dd"},
+ {NID_secp521r1, NID_sha384,
+ "0bb0f80cff309c65ff7729c59c517d50fc0ed5be405ef70cb910c3f62c328c90853d4473"
+ "530b654dda6156e149bc2222a8a7f9be665240e2fbe9d03f78a2356af0bacd1edb84c480"
+ "1adc8293a8a0bd6123d1cf6ba216aca807a7eb4dca76b493eb6e3dbb69d36f0f00f85622"
+ "2f24d9b93ec34c3b261be2fca0451c00571928e5",
+ "03789e04b3a2a0254ade3380172c150d2fad033885e02ea8bea5b92db3f4adbab190ae42"
+ "3080a1154dfedec694c25eab46ce638be3db4e4cba67bc39f62d6e7db2d",
+ "0401dbc2cf19627bdccf02432b1761f296275230c150cdde823ce3141ec315d7d05e16b2"
+ "c29e2a67491078d5316883e933d85b4b10d4f64c477d3c4e0442dc928983a2007562e720"
+ "807dd118d3d8b265b3abc61a71fce43e3dce0e7b5ae18b7a4cb01ecc00d39c1f22e150a9"
+ "a8728997e502144f5b3f6fa9b4cb8a4136212b082ca394e3f6",
+ "0fbccd8d7804bdd1d1d721b5ec74d4ba37603bc306f9fce2ec241853d8e07334e6b4b12c"
+ "4ecca0c54bd71193dd7146507933a20737c5f3e15085830fab9b30ca57b",
+ "181915a3998d8fa214f9715f4ca928d09c36de168dc15c6970a8a062b5cea2dc969b2437"
+ "ca17b684f78a1fd583aad8e6c762c8f4ab0c91b86a497145e3ca440d307",
+ "15a6c18c5c77f5470b27d061eafdc26b78561941a3b2ab0f5c81d40899fc053c3d9ed12d"
+ "7d61e298abbae470009c7b2157731c58d7b16a66fa5abaf5e8a1b8ed394"},
+ {NID_secp521r1, NID_sha384,
+ "7efacf213382ce30804e78b7256854d759147dba9729c51b2759465715bf2c421034c23d"
+ "c651c13d6cce95f71fe6a84dfbee5768163ac5789ac0474c5ddf4115684683c5f7c204b3"
+ "3b8bcc0c03ac58f66cef2f53b721fe2fac91ad841126101a88f512a7c2ded38549d9f050"
+ "d4b7961dda48a1489f026c5d111701762418cfe3",
+ "124700aa9186353e298edefc57bec0c7d0201cca10c1d80dd408d5d71040592b0ac59fac"
+ "dadfa8712445f5977ef8d4854022720c3f02d60e0732dbb2f171fcf1490",
+ "0400c80fc4cecae5d53348524ddba6a160b735c75b22fdb39af17e2a613d09246e3bb0fd"
+ "3f2978577f6db5d2118e05c7898024808f8eb8e021d7969cdcf7fc981200bb01a880c939"
+ "43fd446d4b3923b574d2221c1bb7b645fb5534dda60e827b497666ff586b77921f7e7f60"
+ "5147947194cffd2fef0678880b89cc0bc7fb74fa96d4b112d7",
+ "01a05238d595ded5c61d3bf6fde257dbf13095af8a5cb3a2e579e8e4c550fe31d12b71cc"
+ "2dbcb295e6c4fd0fb8c22d1b741c097cc59d826ced1a8771f09983143c4",
+ "132762bc81e9922a8d642e3a9d0218affa21fa2331cfcb9e452545c5981c64a8f7e4cc8e"
+ "68056023b2aa78bead59061d19c7f646c931163a91e544b106b3be8de9e",
+ "0c3a1b0b000c3169984132add51d611e2cb7069a262a6983d2ae72b459c36e6469509bdb"
+ "0f473600b8686700b08910779dee9ba83f82e755d4a4ef5f124eb09397f"},
+ {NID_secp521r1, NID_sha384,
+ "28edff8b9d85f5f58499cc11f492abdfab25e8945975bbaeee910afa2b8fc1295ec61406"
+ "309ce4e09f4ab4f462959fc2a2786802466eb26d3b01be6919893ae75d0fdc2dc8a82e66"
+ "2550f9fce9627dd364188aaba5c6faa1b2d8a2235adfa5ad0dc140f88a2b2f103f5690e8"
+ "77d07fe8fd30d02d2b2729bd3d8eb5b23a21f54c",
+ "1f532d01af885cb4ad5c329ca5d421c5c021883bd5404c798d617679bb8b094cbb7e15c8"
+ "32fb436325c5302313ce5e496f9513455e7021ffad75777a19b226acfa1",
+ "0400c0bd76b0027b85bdd879052220da1494d503f6a4bb972105a48ae98e7dda8c2d9fd9"
+ "336f5646385b961ef68e8464e3a95b00f96614b1a408ceaa2c87b077b6a8fb017eb7eb5c"
+ "78db7819af92e8537d110d9f05a5e24f954f4dde21c224d4040f059ec99e051702f39041"
+ "3d2708d18f84d82998c61847475250fb844b20082cbe651a6b",
+ "14e66853e0f7cd3300ebcae06048532e19cbb95bee140edc1c867ce7310637651445b6df"
+ "eb1d99d2e32f2ffb787ebe3fe35032277f185d3dad84f95806924550abe",
+ "0c5b3a57161098e2e8e16e0a5ae8ecf4a14df14927eea18ed4925d11dc429dda14515932"
+ "3ba970174b194b9b4608a8fa2373b7a825c5e8bd80574e49698285c2c82",
+ "1a0c038a51796158b42eb5b0dac37aff9ab93b903a47e06ebbdd15946e4bcc9a3b3875b1"
+ "8cf6294c33fc6c3693cef04ed1a43d08951e664c760e2cf3fb4e47490d2"},
+ {NID_secp521r1, NID_sha384,
+ "bae2a8897c742fd99fbf813351cd009d3f2e18d825ca22e115276484bce8f82f8c7c0c21"
+ "dd2af208404d8ef45bb5a6c41693912b630897d5246801bf0775aa9bbac8be98cb861d17"
+ "2c3563dc59e78a58ed13c66dea496471b3ad0eeae8995293e4ab97373edc1837ffc95ff1"
+ "cc0c1e90e64ea8680b2ca5f1e09bf86b99b343b6",
+ "11abf508bca68a85a54bc0659e77efad3c86112c9db04db2883e76144aa446918bb4bb07"
+ "84b0b6a0e9aa47399fe3de5aaecfd8894a0d130bb0c366c40d9d5050745",
+ "04005c0ea363a3a12633ea39d564587ebdd3a22a175ef32b9ebfc7311304b19cb3a62b5a"
+ "dc36f6afb6a6f7fabbf810ee89fdb72854fefd613e7798e9b9ff5938ea54c600bd06a85e"
+ "47b885c08124b55a3fcc07ca61647cda6efbfdbd21b24d1ea7a4c7300d46cd798e76063a"
+ "a979adef6f0698b15e5b7ae8a2ab39ab4f50b2d20614db6317",
+ "19cadb8c7eb10565aa4567e0709873918720f0e4b42b4817afb0b0547c70cd1100229dea"
+ "e97a276b9c98ea58b01d4839fee86336d749d123b03e8b1a31166acc110",
+ "0667448a8bbef1c810d40646977dc22f3dfb52a4d80928ded5e976e199cbed02fbd5a085"
+ "46756ece14548d721a6eb380d0e1a71ad0660dbcac6163c776eedd3e249",
+ "0ae7f0a238daaddb7fb4a1707fe5132daf653f8e19f732347134c96f1dd798f867c479a4"
+ "a4609a568a15b61afed70790adbde13ac5f68c468d0230852c1a2c22581"},
+ {NID_secp521r1, NID_sha384,
+ "d57a26a9593e72bfc87322524639bcaae5f2252d18b99cdaa03b14445b0b8a4dd53928f6"
+ "6a2e4f202fb25b19cad0eb2f1bfda2ab9b0eb668cdcd0fe72f5d9ef2e45e0218590f7ab9"
+ "d2c9342202610c698bc786cce108a7d4a6730a13e9ea1b470e781f1237d3f84f44abde80"
+ "8516975546bd89075ef9a9732bfd7ee33b6f4399",
+ "18dbf520d58177e4b7a0627674d220137983f486dd2fd3639f19751804e80df0655db6af"
+ "d829cdf75238de525e1a7a9f048049b593dd64b4b96cc013f970c05ea1f",
+ "04018b872690c37995be324ddb5c2bd5462841bb062f8e63da248a853de79c3d6bb9a2eb"
+ "1e6933afda0998ca43491cc807b08ace2d5336a43d0ab50563a2d3d98755f00002ff3122"
+ "1aa32aa6546f35e8fe5b9361f938362a5e89e77ae130ba8bce3729e912dfac35a2fd21ef"
+ "e84b45b8be2a340850e4b574e1885b35c2afbe196b57c6cf4c",
+ "098faeb73054639cb2e4442cd68e7b3a13f4b3f397a7b26f303afa40789f8ddd3d918f1c"
+ "e4f0be53c8cb69c380744e2297d7fc01e2b3daef4ce64dd3a2644234753",
+ "09c0e7649f814f70a8416cb78bc4601472a363fe97f5c587305778169677860dd97f87b5"
+ "ab07c3a953bc4615fc34634509d6a25621bdded33ed42446d059509c190",
+ "120b90e1cfb8a1b5e530df7b17d1128bc051ca4f1a65dd9c9d9d3c59d2f00c7c1e994c52"
+ "b8671d40294b4d574d2c04475d5bebeacd3a0d3870a54dc7a4805614f40"},
+ {NID_secp521r1, NID_sha384,
+ "8fdcf5084b12cfc043dd3416b46274e021bbed95d341d3c500c102a5609d3a34de29f8fa"
+ "9f0adb611a1f47a97ad981f8129d718fc0d6c709eab1a3490db8d550f34eb905b9e00663"
+ "543afc5bc155e368e0bc919a8b8c9fa42093603537a5614927efa6be819ed42ececbf1a8"
+ "0a61e6e0a7f9b5bc43b9238e62d5df0571fea152",
+ "002764f5696aa813cd55d30948585f86288ae05aeb264ca157cd09e1d09a10515a849b07"
+ "91b755ccc656a34707be9e52f5762d290a7d2bcd6de52c600ff862eaf4e",
+ "040127279c88719dc614db387f102e55104ea1c704ac7f57f3bca936f728439b76556730"
+ "dd7cde2ac1ad0a4c2c2f036ab6f00cf34cb87ea36113571f300713044106d20134a0786c"
+ "31f5f2291b83c50fb579ae4c620b95e5a8bdc0c7e1ee6b996c89d764f1b20403e7faa203"
+ "f397425ada297045dd8ba0e4b155d4900da249e934faab7991",
+ "08bffb0778cbb06466cecc114b9e89ca243a2b2b5e2597db920bc73a8bbcbe3f57144ad3"
+ "3409ef7faaab430e13f4c42d304d11347360c84972ca20b1539cce3a288",
+ "1f8f504e64a502e51e7c129517931c3b71f0d8a63b19cfe01ff7c951c6525249608b3ef5"
+ "d00061d77eb6b3d69581adeaa3732c773bbb9b919c3e7c71fdc09f44d06",
+ "058044fc64b340604ffd02a5b2918d76fd6fb59ea895feab7aa218e6f1e8c8f226eb9ee3"
+ "45ef8140183a69272582005077b008006aab11597e808d7ff1e8382c924"},
+ {NID_secp521r1, NID_sha384,
+ "00669f433934992257bed55861df679804107d7fa491672574a7624949c60049b0533383"
+ "c88d6896c8de860704c3e6a6aefce83efa57c4d57e9ab253da5d15e1f53ab6dce218b592"
+ "772ab0bc01fee8e63368e85c0639301456fe2d44cd5396a7f2b22761cd03b80eba7883ee"
+ "de8249a2f5db2183bf00550c5c002f45a5e4fb31",
+ "1b0c9acd3eeb618b4b0de4db402206f0f29adc69d7ad324b6db6601b351f723ac8fe949e"
+ "eacd34228649bf0126276e5aceb0137d00c30dd858aef2d6b6449de2e89",
+ "0401811c8884486aaa083ddee1c51cb6e861cb830bd5eaa929f72efadbbd1286566ae7e7"
+ "ba7fde7e02529900d35ee64591652d28798bfc1bed0d192602a9cf5a7d22e3006d7fc9dd"
+ "494816cfd29613d4689af67f7d0a2e6fbad5d4d6e0130189172a1ab601c5ca71deaa8bfc"
+ "b5a190d49da191672ff6fc048e146cb902acec5eae6d87e60a",
+ "1fdc4f108070af3c66c9ba7b6c1f2603a19ceb4760399df81228cfc7eafde1082b5a0716"
+ "a3ff82fbe84726f14dd0db3376ca184a78c3c60679bab6cd45f77f9b9ce",
+ "1ec310339ff056faeb341c4499c43782078b04be1725ae9a6cdcb6011c46d1a4eb3d75c3"
+ "58225e4ec142fd1cd344186f5eb597f7ba559ddfa954824365d5b6edaec",
+ "005b679a33fdb7e04834f071cd0ac514c04add9f2614ab9bbd9b407b1420fed3f3e02a10"
+ "8e7e279899e43dcf64ae4083c289a87cd7d2103bdc036a95d36800ac7c6"},
+ {NID_secp521r1, NID_sha384,
+ "4be81dcfab39a64d6f00c0d7fff94dabdf3473dc49f0e12900df328d6584b854fbaebaf3"
+ "194c433e9e21743342e2dd056b445c8aa7d30a38504b366a8fa889dc8ecec35b31300707"
+ "87e7bf0f22fab5bea54a07d3a75368605397ba74dbf2923ef20c37a0d9c64caebcc93157"
+ "456b57b98d4becb13fecb7cc7f3740a6057af287",
+ "181e1037bbec7ca2f271343e5f6e9125162c8a8a46ae8baa7ca7296602ae9d56c994b3b9"
+ "4d359f2b3b3a01deb7a123f07d9e0c2e729d37cc5abdec0f5281931308a",
+ "0400cfa5a8a3f15eb8c419095673f1d0bd63b396ff9813c18dfe5aa31f40b50b82481f9e"
+ "d2edd47ae5ea6a48ea01f7e0ad0000edf7b66f8909ee94f141d5a07efe315c018af728f7"
+ "318b96d57f19c1104415c8d5989565465e429bc30cf65ced12a1c5856ac86fca02388bc1"
+ "51cf89959a4f048597a9e728f3034aa39259b59870946187bf",
+ "09078beaba465ba7a8b3624e644ac1e97c654533a58ac755e90bd606e2214f11a48cb51f"
+ "9007865a0f569d967ea0370801421846a89f3d09eb0a481289270919f14",
+ "19cf91a38cc20b9269e7467857b1fc7eabb8cea915a3135f727d471e5bfcfb66d321fabe"
+ "283a2cf38d4c5a6ecb6e8cbee1030474373bb87fcdfcc95cf857a8d25d0",
+ "1cf9acd9449c57589c950f287842f9e2487c5610955b2b5035f6aacfd2402f511998a1a9"
+ "42b39c307fc2bcab2c8d0dae94b5547ddccfb1012ca985b3edf42bbba8b"},
+ {NID_secp521r1, NID_sha512,
+ "9ecd500c60e701404922e58ab20cc002651fdee7cbc9336adda33e4c1088fab1964ecb79"
+ "04dc6856865d6c8e15041ccf2d5ac302e99d346ff2f686531d25521678d4fd3f76bbf2c8"
+ "93d246cb4d7693792fe18172108146853103a51f824acc621cb7311d2463c3361ea70725"
+ "4f2b052bc22cb8012873dcbb95bf1a5cc53ab89f",
+ "0f749d32704bc533ca82cef0acf103d8f4fba67f08d2678e515ed7db886267ffaf02fab0"
+ "080dca2359b72f574ccc29a0f218c8655c0cccf9fee6c5e567aa14cb926",
+ "040061387fd6b95914e885f912edfbb5fb274655027f216c4091ca83e19336740fd81aed"
+ "fe047f51b42bdf68161121013e0d55b117a14e4303f926c8debb77a7fdaad100e7d0c75c"
+ "38626e895ca21526b9f9fdf84dcecb93f2b233390550d2b1463b7ee3f58df7346435ff04"
+ "34199583c97c665a97f12f706f2357da4b40288def888e59e6",
+ "03af5ab6caa29a6de86a5bab9aa83c3b16a17ffcd52b5c60c769be3053cdddeac60812d1"
+ "2fecf46cfe1f3db9ac9dcf881fcec3f0aa733d4ecbb83c7593e864c6df1",
+ "04de826ea704ad10bc0f7538af8a3843f284f55c8b946af9235af5af74f2b76e099e4bc7"
+ "2fd79d28a380f8d4b4c919ac290d248c37983ba05aea42e2dd79fdd33e8",
+ "087488c859a96fea266ea13bf6d114c429b163be97a57559086edb64aed4a18594b46fb9"
+ "efc7fd25d8b2de8f09ca0587f54bd287299f47b2ff124aac566e8ee3b43"},
+ {NID_secp521r1, NID_sha512,
+ "b3c63e5f5a21c4bfe3dbc644354d9a949186d6a9e1dd873828782aa6a0f1df2f64114a43"
+ "0b1c13fe8a2e09099e1ed05ef70de698161039ded73bcb50b312673bb073f8a792ac140a"
+ "78a8b7f3586dffb1fc8be4f54516d57418ccc9945025ce3acf1eb84f69ceee5e9bd10c18"
+ "c251dbc481562cd3aae54b54ab618cb1eeda33cf",
+ "1a4d2623a7d59c55f408331ba8d1523b94d6bf8ac83375ceb57a2b395a5bcf977cfc1623"
+ "4d4a97d6f6ee25a99aa5bff15ff535891bcb7ae849a583e01ac49e0e9b6",
+ "04004d5c8afee038984d2ea96681ec0dccb6b52dfa4ee2e2a77a23c8cf43ef19905a34d6"
+ "f5d8c5cf0981ed804d89d175b17d1a63522ceb1e785c0f5a1d2f3d15e513520014368b8e"
+ "746807b2b68f3615cd78d761a464ddd7918fc8df51d225962fdf1e3dc243e265100ff0ec"
+ "133359e332e44dd49afd8e5f38fe86133573432d33c02fa0a3",
+ "0bc2c0f37155859303de6fa539a39714e195c37c6ea826e224c8218584ae09cd0d1cc14d"
+ "94d93f2d83c96e4ef68517fdb3f383da5404e5a426bfc5d424e253c181b",
+ "1a3c4a6386c4fb614fba2cb9e74201e1aaa0001aa931a2a939c92e04b8344535a20f53c6"
+ "e3c69c75c2e5d2fe3549ed27e6713cb0f4a9a94f6189eb33bff7d453fce",
+ "16a997f81aa0bea2e1469c8c1dab7df02a8b2086ba482c43af04f2174831f2b176165879"
+ "5adfbdd44190a9b06fe10e578987369f3a2eced147cff89d8c2818f7471"},
+ {NID_secp521r1, NID_sha512,
+ "6e0f96d56505ffd2d005d5677dbf926345f0ff0a5da456bbcbcfdc2d33c8d878b0bc8511"
+ "401c73168d161c23a88b04d7a9629a7a6fbcff241071b0d212248fcc2c94fa5c086909ad"
+ "b8f4b9772b4293b4acf5215ea2fc72f8cec57b5a13792d7859b6d40348fc3ba3f5e7062a"
+ "19075a9edb713ddcd391aefc90f46bbd81e2557b",
+ "14787f95fb1057a2f3867b8407e54abb91740c097dac5024be92d5d65666bb16e4879f3d"
+ "3904d6eab269cf5e7b632ab3c5f342108d1d4230c30165fba3a1bf1c66f",
+ "0400c2d540a7557f4530de35bbd94da8a6defbff783f54a65292f8f76341c996cea38795"
+ "805a1b97174a9147a8644282e0d7040a6f83423ef2a0453248156393a1782e0119f746c5"
+ "df8cec24e4849ac1870d0d8594c799d2ceb6c3bdf891dfbd2242e7ea24d6aec316621473"
+ "4acc4cbf4da8f71e2429c5c187b2b3a048527c861f58a9b97f",
+ "186cd803e6e0c9925022e41cb68671adba3ead5548c2b1cd09348ab19612b7af3820fd14"
+ "da5fe1d7b550ed1a3c8d2f30592cd7745a3c09ee7b5dcfa9ed31bdd0f1f",
+ "10ed3ab6d07a15dc3376494501c27ce5f78c8a2b30cc809d3f9c3bf1aef437e590ef66ab"
+ "ae4e49065ead1af5f752ec145acfa98329f17bca9991a199579c41f9229",
+ "08c3457fe1f93d635bb52df9218bf3b49a7a345b8a8a988ac0a254340546752cddf02e6c"
+ "e47eee58ea398fdc9130e55a4c09f5ae548c715f5bcd539f07a34034d78"},
+ {NID_secp521r1, NID_sha512,
+ "3f12ab17af3c3680aad22196337cedb0a9dba22387a7c555b46e84176a6f841800455238"
+ "6ada4deec59fdabb0d25e1c6668a96f100b352f8dabd24b2262bd2a3d0f825602d54150b"
+ "dc4bcbd5b8e0ca52bc8d2c70ff2af9b03e20730d6bd9ec1d091a3e5c877259bcff4fd2c1"
+ "7a12bfc4b08117ec39fe4762be128d0883a37e9d",
+ "15807c101099c8d1d3f24b212af2c0ce525432d7779262eed0709275de9a1d8a8eeeadf2"
+ "f909cf08b4720815bc1205a23ad1f825618cb78bde747acad8049ca9742",
+ "040160d7ea2e128ab3fabd1a3ad5455cb45e2f977c2354a1345d4ae0c7ce4e492fb9ff95"
+ "8eddc2aa61735e5c1971fa6c99beda0f424a20c3ce969380aaa52ef5f5daa8014e4c83f9"
+ "0d196945fb4fe1e41913488aa53e24c1d2142d35a1eed69fed784c0ef44d71bc21afe0a0"
+ "065b3b87069217a5abab4355cf8f4ceae5657cd4b9c8008f1f",
+ "096731f8c52e72ffcc095dd2ee4eec3da13c628f570dba169b4a7460ab471149abdede0b"
+ "63e4f96faf57eab809c7d2f203fd5ab406c7bd79869b7fae9c62f97c794",
+ "1e2bf98d1186d7bd3509f517c220de51c9200981e9b344b9fb0d36f34d969026c80311e7"
+ "e73bb13789a99e0d59e82ebe0e9595d9747204c5f5550c30d934aa30c05",
+ "12fed45cc874dc3ed3a11dd70f7d5c61451fbea497dd63e226e10364e0718d3722c27c7b"
+ "4e5027051d54b8f2a57fc58bc070a55b1a5877b0f388d768837ef2e9cec"},
+ {NID_secp521r1, NID_sha512,
+ "a1eed24b3b7c33296c2491d6ee092ec6124f85cf566bb5bc35bffb5c734e34547242e575"
+ "93e962fb76aee9e800eed2d702cc301499060b76406b347f3d1c86456978950737703c81"
+ "59001e6778f69c734a56e5ce5938bd0e0de0877d55adeee48b0d8dfa4ac65fd2d3ce3e12"
+ "878bac5c7014f9284d161b2a3e7d5c88569a45f6",
+ "18692def0b516edcdd362f42669999cf27a65482f9358fcab312c6869e22ac469b82ca90"
+ "36fe123935b8b9ed064acb347227a6e377fb156ec833dab9f170c2ac697",
+ "0401ceee0be3293d8c0fc3e38a78df55e85e6b4bbce0b9995251f0ac55234140f82ae0a4"
+ "34b2bb41dc0aa5ecf950d4628f82c7f4f67651b804d55d844a02c1da6606f701f775eb6b"
+ "3c5e43fc754052d1f7fc5b99137afc15d231a0199a702fc065c917e628a54e038cbfebe0"
+ "5c90988b65183b368a2061e5b5c1b025bbf2b748fae00ba297",
+ "161cf5d37953e09e12dc0091dc35d5fb3754c5c874e474d2b4a4f1a90b870dff6d99fb15"
+ "6498516e25b9a6a0763170702bb8507fdba4a6131c7258f6ffc3add81fd",
+ "14dfa43046302b81fd9a34a454dea25ccb594ace8df4f9d98556ca5076bcd44b2a9775df"
+ "aca50282b2c8988868e5a31d9eb08e794016996942088d43ad3379eb9a1",
+ "120be63bd97691f6258b5e78817f2dd6bf5a7bf79d01b8b1c3382860c4b00f89894c72f9"
+ "3a69f3119cb74c90b03e9ede27bd298b357b9616a7282d176f3899aaa24"},
+ {NID_secp521r1, NID_sha512,
+ "9aace26837695e6596007a54e4bccdd5ffb16dc6844140e2eeeb584b15acb2bbffd203c7"
+ "4440b6ee8db676fd200b4186a8c3e957c19e74d4d865ada83f80655323dfa3570907ed3c"
+ "e853b6e8cc375ed2d758a2f5ad265dd3b47650517a49b3d02df9e0c60c21576378c2b3a0"
+ "8481eec129b2a75608e13e6420127a3a63c8a3f1",
+ "0a63f9cdefbccdd0d5c9630b309027fa139c31e39ca26686d76c22d4093a2a5e5ec4e230"
+ "8ce43eb8e563187b5bd811cc6b626eace4063047ac0420c3fdcff5bdc04",
+ "04014cab9759d4487987b8a00afd16d7199585b730fb0bfe63796272dde9135e7cb9e27c"
+ "ec51207c876d9214214b8c76f82e7363f5086902a577e1c50b4fbf35ce996601a83f0caa"
+ "01ca2166e1206292342f47f358009e8b891d3cb817aec290e0cf2f47e7fc637e39dca039"
+ "49391839684f76b94d34e5abc7bb750cb44486cce525eb0093",
+ "01e51fd877dbbcd2ab138fd215d508879298d10c7fcbdcc918802407088eb6ca0f18976a"
+ "13f2c0a57867b0298512fc85515b209c4435e9ef30ab01ba649838bc7a0",
+ "11a1323f6132d85482d9b0f73be838d8f9e78647934f2570fededca7c234cc46aa1b97da"
+ "5ac1b27b714f7a171dc4209cbb0d90e4f793c4c192dc039c31310d6d99b",
+ "0386a5a0fc55d36ca7231a9537fee6b9e51c2255363d9c9e7cb7185669b302660e23133e"
+ "b21eb56d305d36e69a79f5b6fa25b46ec61b7f699e1e9e927fb0bceca06"},
+ {NID_secp521r1, NID_sha512,
+ "ac2175940545d4fbab6e2e651c6830aba562e0c11c919e797c43eff9f187a68a9e5a128e"
+ "3e2a330b955a3f4577d3f826529ad1b03d7b60f7ad678f005053b41dc0f8d267f3685c6a"
+ "be1a0e9a733c44b2f3ca48b90806f935141c842e3a6c06a58f5343d75e3585971a734f4a"
+ "e1074ce5b54f74bd9342f4bbca738d260393f43e",
+ "024f7d67dfc0d43a26cc7c19cb511d30a097a1e27e5efe29e9e76e43849af170fd9ad57d"
+ "5b22b1c8840b59ebf562371871e12d2c1baefc1abaedc872ed5d2666ad6",
+ "04009da1536154b46e3169265ccba2b4da9b4b06a7462a067c6909f6c0dd8e19a7bc2ac1"
+ "a47763ec4be06c1bec57d28c55ee936cb19588cc1398fe4ea3bd07e6676b7f014150cdf2"
+ "5da0925926422e1fd4dcfcffb05bdf8682c54d67a9bd438d21de5af43a15d979b320a847"
+ "683b6d12ac1383a7183095e9da491c3b4a7c28874625e70f87",
+ "1c1308f31716d85294b3b5f1dc87d616093b7654907f55289499b419f38ceeb906d2c9fe"
+ "4cc3d80c5a38c53f9739311b0b198111fede72ebde3b0d2bc4c2ef090d2",
+ "00dbf787ce07c453c6c6a67b0bf6850c8d6ca693a3e9818d7453487844c9048a7a2e48ff"
+ "982b64eb9712461b26b5127c4dc57f9a6ad1e15d8cd56d4fd6da7186429",
+ "0c6f1c7774caf198fc189beb7e21ca92ceccc3f9875f0e2d07dc1d15bcc8f210b6dd376b"
+ "f65bb6a454bf563d7f563c1041d62d6078828a57538b25ba54723170665"},
+ {NID_secp521r1, NID_sha512,
+ "6266f09710e2434cb3da3b15396556765db2ddcd221dce257eab7399c7c4901359251129"
+ "32716af1434053b8b9fe340563e57a0b9776f9ac92cbb5fba18b05c0a2fafbed7240b3f9"
+ "3cd1780c980ff5fe92610e36c0177cabe82367c84cee9020cf26c1d74ae3eb9b9b512cb8"
+ "b3cb3d81b17cf20dc76591b2b394ef1c62ac12ee",
+ "0349471460c205d836aa37dcd6c7322809e4e8ef81501e5da87284b267d843897746b330"
+ "16f50a7b702964910361ed51d0afd9d8559a47f0b7c25b2bc952ce8ed9e",
+ "04000bbd4e8a016b0c254e754f68f0f4ed081320d529ecdc7899cfb5a67dd04bc85b3aa6"
+ "891a3ed2c9861ae76c3847d81780c23ad84153ea2042d7fd5d517a26ff3ce400645953af"
+ "c3c1b3b74fdf503e7d3f982d7ee17611d60f8eb42a4bddbec2b67db1f09b54440c30b44e"
+ "8071d404658285cb571462001218fc8c5e5b98b9fae28272e6",
+ "00eb2bd8bb56b9d2e97c51247baf734cc655c39e0bfda35375f0ac2fe82fad699bf19895"
+ "77e24afb33c3868f91111e24fefe7dec802f3323ac013bec6c048fe5568",
+ "14bf63bdbc014aa352544bd1e83ede484807ed760619fa6bc38c4f8640840195e1f2f149"
+ "b29903ca4b6934404fb1f7de5e39b1ea04dba42819c75dbef6a93ebe269",
+ "05d1bcf2295240ce4415042306abd494b4bda7cf36f2ee2931518d2454faa01c606be120"
+ "b057062f2f3a174cb09c14f57ab6ef41cb3802140da22074d0e46f908d4"},
+ {NID_secp521r1, NID_sha512,
+ "3de9e617a6868dca1a1432d503f923535da3f9b34426b2a4822174399c73b1c1ee673114"
+ "10a58c17202ac767844b2024d8aa21a205707d93865693ac25a24fc87034fa3a7a7e27c3"
+ "344cb03b87602c15180a5fe6a9dd90cd11af4a0f150207bf2d83f55b12c088adae99aa8c"
+ "fa659311b3a25beb99056643760d6a282126b9b2",
+ "07788d34758b20efc330c67483be3999d1d1a16fd0da81ed28895ebb35ee21093d37ea1a"
+ "c808946c275c44454a216195eb3eb3aea1b53a329eca4eb82dd48c784f5",
+ "0400157d80bd426f6c3cee903c24b73faa02e758607c3e102d6e643b7269c299684fdaba"
+ "1acddb83ee686a60acca53cddb2fe976149205c8b8ab6ad1458bc00993cc43016e33cbed"
+ "05721b284dacc8c8fbe2d118c347fc2e2670e691d5d53daf6ef2dfec464a5fbf46f8efce"
+ "81ac226915e11d43c11c8229fca2327815e1f8da5fe95021fc",
+ "0a73477264a9cc69d359464abb1ac098a18c0fb3ea35e4f2e6e1b060dab05bef1255d9f9"
+ "c9b9fbb89712e5afe13745ae6fd5917a9aedb0f2860d03a0d8f113ea10c",
+ "07e315d8d958b8ce27eaf4f3782294341d2a46fb1457a60eb9fe93a9ae86f3764716c4f5"
+ "f124bd6b114781ed59c3f24e18aa35c903211b2f2039d85862932987d68",
+ "1bcc1d211ebc120a97d465b603a1bb1e470109e0a55d2f1b5c597803931bd6d7718f010d"
+ "7d289b31533e9fcef3d141974e5955bc7f0ee342b9cad05e29a3dded30e"},
+ {NID_secp521r1, NID_sha512,
+ "aa48851af7ef17abe233163b7185130f4646203c205e22bcc2a5a3697bcab998c73a9ffe"
+ "1d3ea0b7978ce7df937a72586eb5ca60b0d939a7d1c115c820171c89c8116b7e2c7b98cf"
+ "0f14e4c4df3cb2f319ad3ab0ea25ff14526ddc037469f000bf82100acd4cdf94feb4eba4"
+ "ea1726f0569336604a473aee67d71afebb569209",
+ "1f98696772221e6cccd5569ed8aed3c435ee86a04689c7a64d20c30f6fe1c59cc10c6d29"
+ "10261d30c3b96117a669e19cfe5b696b68feeacf61f6a3dea55e6e5837a",
+ "04007002872c200e16d57e8e53f7bce6e9a7832c387f6f9c29c6b75526262c57bc2b56d6"
+ "3e9558c5761c1d62708357f586d3aab41c6a7ca3bf6c32d9c3ca40f9a2796a01fe3e5247"
+ "2ef224fb38d5a0a14875b52c2f50b82b99eea98d826c77e6a9ccf798de5ffa92a0d65965"
+ "f740c702a3027be66b9c844f1b2e96c134eb3fdf3edddcf11c",
+ "1a277cf0414c6adb621d1cc0311ec908401ce040c6687ed45a0cdf2910c42c9f1954a457"
+ "2d8e659733d5e26cbd35e3260be40017b2f5d38ec42315f5c0b056c596d",
+ "0d732ba8b3e9c9e0a495249e152e5bee69d94e9ff012d001b140d4b5d082aa9df77e10b6"
+ "5f115a594a50114722db42fa5fbe457c5bd05e7ac7ee510aa68fe7b1e7f",
+ "134ac5e1ee339727df80c35ff5b2891596dd14d6cfd137bafd50ab98e2c1ab4008a0bd03"
+ "552618d217912a9ec502a902f2353e757c3b5776309f7f2cfebf913e9cd"},
+ {NID_secp521r1, NID_sha512,
+ "b0d5d52259af364eb2d1a5027e5f7d0afe4b999cc5dd2268cfe76f51d2f17b541bdd7867"
+ "e23a1bb897705153d9432a24012108979c6a2c9e2567c9531d012f9e4be764419491a52e"
+ "ae2e127430b0ab58cb8e216515a821b3db206447c235bf44ee304201b483b2a88844abaa"
+ "18bca0147dfff7e502397dd62e15524f67eb2df2",
+ "13c3852a6bc8825b45fd7da1754078913d77f4e586216a6eb08b6f03adce7464f5dbc2be"
+ "a0eb7b12d103870ef045f53d67e3600d7eba07aac5db03f71b64db1cceb",
+ "0400c97a4ebcbbe701c9f7be127e87079edf479b76d3c14bfbee693e1638e5bff8d4705a"
+ "c0c14597529dbe13356ca85eb03a418edfe144ce6cbf3533016d4efc29dbd4011c75b7a8"
+ "894ef64109ac2dea972e7fd5f79b75dab1bf9441a5b8b86f1dc1324426fa6cf4e7b973b4"
+ "4e3d0576c52e5c9edf8ce2fc18cb3c28742d44419f044667f8",
+ "1e25b86db041f21c2503d547e2b1b655f0b99d5b6c0e1cf2bdbd8a8c6a053f5d79d78c55"
+ "b4ef75bff764a74edc920b35536e3c470b6f6b8fd53898f3bbc467539ef",
+ "1dce45ea592b34d016497882c48dc0c7afb1c8e0f81a051800d7ab8da9d237efd892207b"
+ "c9401f1d30650f66af8d5349fc5b19727756270722d5a8adb0a49b72d0a",
+ "0b79ffcdc33e028b1ab894cb751ec792a69e3011b201a76f3b878655bc31efd1c0bf3b98"
+ "aea2b14f262c19d142e008b98e890ebbf464d3b025764dd2f73c4251b1a"},
+ {NID_secp521r1, NID_sha512,
+ "9599788344976779383a7a0812a096943a1f771ee484d586af1a06207478e4c0be9c200d"
+ "42460fe837e24b266c8852d80d3c53cc52ffb1913fc3261145fc6da575611efd16c02605"
+ "9a2e64f802517ffd1b6b34de10ad2909c65c2155e8d939b8115400c1d793d23955b15f5d"
+ "1c13c962ff92b4a815cee0e10f8e14e1f6e6cd38",
+ "1654eaa1f6eec7159ee2d36fb24d15d6d33a128f36c52e2437f7d1b5a44ea4fa965c0a26"
+ "d0066f92c8b82bd136491e929686c8bde61b7c704daab54ed1e1bdf6b77",
+ "0401f269692c47a55242bb08731ff920f4915bfcecf4d4431a8b487c90d08565272c52ca"
+ "90c47397f7604bc643982e34d05178e979c2cff7ea1b9eaec18d69ca7382de00750bdd86"
+ "6fba3e92c29599c002ac6f9e2bf39af8521b7b133f70510e9918a94d3c279edec97ab75e"
+ "cda95e3dd7861af84c543371c055dc74eeeff7061726818327",
+ "1b7519becd00d750459d63a72f13318b6ac61b8c8e7077cf9415c9b4b924f35514c9c28a"
+ "0fae43d06e31c670a873716156aa7bc744577d62476e038b116576a9e53",
+ "183bddb46c249e868ef231a1ebd85d0773bf8105a092ab7d884d677a1e9b7d6014d6358c"
+ "09538a99d9dca8f36f163ac1827df420c3f9360cc66900a9737a7f756f3",
+ "0d05ee3e64bac4e56d9d8bd511c8a43941e953cba4e5d83c0553acb87091ff54f3aad4d6"
+ "9d9f15e520a2551cc14f2c86bb45513fef0295e381a7635486bd3917b50"},
+ {NID_secp521r1, NID_sha512,
+ "fdde51acfd04eb0ad892ce9d6c0f90eb91ce765cbe3ce9d3f2defe8f691324d26b968b8b"
+ "90e77706b068585f2a3ee7bf3e910528f7403c5af745a6f9d7ba6c53abd885c3b1be5834"
+ "15b128f4d3f224daf8563476bd9aa61e9c8518c144335f8f879c03696bddbe3ac37a8fbe"
+ "de29861611feaa87e325e2f60278b4893ed57fb0",
+ "1cba5d561bf18656991eba9a1dde8bde547885ea1f0abe7f2837e569ca52f53df5e64e4a"
+ "547c4f26458b5d9626ed6d702e5ab1dd585cf36a0c84f768fac946cfd4c",
+ "04012857c2244fa04db3b73db4847927db63cce2fa6cb22724466d3e20bc950a9250a15e"
+ "afd99f236a801e5271e8f90d9e8a97f37c12f7da65bce8a2c93bcd2552620500f394e37c"
+ "17d5b8e35b488fa05a607dbc74264965043a1fb60e92edc212296ae72d7d6fe2e3457e67"
+ "be853664e1da64f57e44bd259076b3bb2b06a2c604fea1be9d",
+ "0e790238796fee7b5885dc0784c7041a4cc7ca4ba757d9f7906ad1fcbab5667e3734bc23"
+ "09a48047442535ff89144b518f730ff55c0c67eeb4c880c2dfd2fb60d69",
+ "1d7ce382295a2a109064ea03f0ad8761dd60eefb9c207a20e3c5551e82ac6d2ee5922b3e"
+ "9655a65ba6c359dcbf8fa843fbe87239a5c3e3eaecec0407d2fcdb687c2",
+ "161963a6237b8955a8a756d8df5dbd303140bb90143b1da5f07b32f9cb64733dc6316080"
+ "924733f1e2c81ade9d0be71b5b95b55666026a035a93ab3004d0bc0b19f"},
+ {NID_secp521r1, NID_sha512,
+ "beb34c997f905c77451ac392f7957a0ab8b23325bd5c63ca31c109ac8f655a1e3094240c"
+ "b8a99284f8091de2ab9a7db2504d16251980b86be89ec3a3f41162698bab51848880633e"
+ "0b71a38f8896335853d8e836a2454ecab2acdcc052c8f659be1d703b13ae1b090334ac50"
+ "ab0137ddb5e8b924c0e3d2e5789daaef2fdd4a1e",
+ "0972e7ff25adf8a032535e5b19463cfe306b90803bf27fabc6046ae0807d2312fbab85d1"
+ "da61b80b2d5d48f4e5886f27fca050b84563aee1926ae6b2564cd756d63",
+ "0401d7f1e9e610619daa9d2efa563610a371677fe8b58048fdc55a98a49970f6afa6649c"
+ "516f9c72085ca3722aa595f45f2803402b01c832d28aac63d9941f1a25dfea01571facce"
+ "3fcfe733a8eef4e8305dfe99103a370f82b3f8d75085414f2592ad44969a2ef8196c8b98"
+ "09f0eca2f7ddc71c47879e3f37a40b9fecf97992b97af29721",
+ "0517f6e4002479dc89e8cbb55b7c426d128776ca82cf81be8c1da9557178783f40e3d047"
+ "db7e77867f1af030a51de470ee3128c22e9c2d642d71e4904ab5a76edfa",
+ "1c3262a3a3fb74fa5124b71a6c7f7b7e6d56738eabaf7666b372b299b0c99ee8a16be3df"
+ "88dd955de093fc8c049f76ee83a4138cee41e5fe94755d27a52ee44032f",
+ "072fd88bb1684c4ca9531748dfce4c161037fcd6ae5c2803b7117fb60d3db5df7df38059"
+ "1aaf3073a3031306b76f062dcc547ded23f6690293c34a710e7e9a226c3"},
+ {NID_secp521r1, NID_sha512,
+ "543c374af90c34f50ee195006d5f9d8dd986d09ad182fcbefa085567275eee1e742bfe0a"
+ "f3d058675adeb5b9f87f248b00a9fbd2aa779129123a5b983f2f26fc3caf2ea34277550c"
+ "22fe8c814c739b46972d50232993cddd63a3c99e20f5c5067d9b57e2d5db94317a5a16b5"
+ "c12b5c4cafbc79cbc2f9940f074bbc7d0dc71e90",
+ "1f0ec8da29295394f2f072672db014861be33bfd9f91349dad5566ff396bea055e53b1d6"
+ "1c8c4e5c9f6e129ed75a49f91cce1d5530ad4e78c2b793a63195eb9f0da",
+ "04009ec1a3761fe3958073b9647f34202c5e8ca2428d056facc4f3fedc7077fa87f1d1eb"
+ "30cc74f6e3ff3d3f82df2641cea1eb3ff1529e8a3866ae2055aacec0bf68c400bed0261b"
+ "91f664c3ff53e337d8321cb988c3edc03b46754680097e5a8585245d80d0b7045c75a9c5"
+ "be7f599d3b5eea08d828acb6294ae515a3df57a37f903ef62e",
+ "0ac3b6d61ebda99e23301fa198d686a13c0832af594b289c9a55669ce6d6201138476901"
+ "3748b68465527a597ed6858a06a99d50493562b3a7dbcee975ad34657d8",
+ "0cef3f4babe6f9875e5db28c27d6a197d607c3641a90f10c2cc2cb302ba658aa151dc76c"
+ "507488b99f4b3c8bb404fb5c852f959273f412cbdd5e713c5e3f0e67f94",
+ "0097ed9e005416fc944e26bcc3661a09b35c128fcccdc2742739c8a301a338dd77d9d135"
+ "71612a3b9524a6164b09fe73643bbc31447ee31ef44a490843e4e7db23f"}
+# ifndef OPENSSL_NO_EC2M
+ /* binary KATs from NIST CAVP */
+ , {NID_sect233k1, NID_sha224,
+ "f23f784fe136c9fc0d169503d361e9c6148b0f1fbdcae0a97fae1af7033ddef25cb7489c"
+ "9963cfcb009a8cbfe44a8510a64a073eb1deae4c324ceb9302008c92c69b2dafcc9077fd"
+ "3cc3c7c119edc3ced36d176ceaa55ac036bf7f07f6fa215e8bb8196e59a5e1c9af4f98b9"
+ "0ab4970885bd7015fa26a09e03c7cf6b4b23d929",
+ "04c1d414696cc3657dd9df73ace56eda2636769ce7082e064c260be45a5",
+ "0401f228c0a75b057eb07fe7ce8223ed4163148c1fdab61e0f787271f836a900cdfa5655"
+ "d96ffd5ffb6027bfaa04da7b5d8fbdbb6202c8bb79f056ce43",
+ "058f8511089fcd59324469f6736b92693afe26bd4719e198f1f2287dc5f",
+ "016bafefb4933ffd00bd1db6d6c4fac8a06375603adc0aa2a5664083ff4",
+ "03bcb84b8f1990cfc7b88f2b8cc817105cd8e150808e7c87b310cdc47e3"},
+ {NID_sect233k1, NID_sha224,
+ "400bcb297552bb37f2f8135a9314a35f5126788bb6fa4dc74152731ff64c5dab4b902103"
+ "d85443dec20e16b1d6629930cdc2bd183d4099f0e96295a63c2fe266f5e9d050c401a868"
+ "1b4a438efe53cbd8f2f43e2a31e9f88926a9c82917d873f6e8cd5ff5eb8c1ca36126b0bf"
+ "c8c2b0e85a7c9e7a45f1875ca9c82019ebedb729",
+ "027cb1d84865a16992476c9e353283d5d6a40c349a8e9179d1b1f403531",
+ "0401191227d064176f4ab020faea61330df5eb59163ecb4ea59c23e6f1f6c8012dbfbf85"
+ "b3624b9f56446f840602f9b839bab1368295b3ae919cb07c07",
+ "01a41af270269be052a62a9879638e3432a1479b05776ce61f45c0c361b",
+ "041a5f1d28b70bfa2925b9428ab8bac9fa174d88ae27d754824c7d16ead",
+ "044d359065672b3d3dfe8389fbc6fc751ca6a46820626c466174fb9b922"},
+ {NID_sect233k1, NID_sha224,
+ "5f74d4b35c49fa454c97c05fdb6b9f6822cf1a2295f15bd766dbcb413d77c910bd8f4147"
+ "e8f317fac2300fa21cb80134d1b6f8ae8e50518c1f648a28506e419f5a6e8f05abffdb3d"
+ "d2587606c7e9c223ecff4f46b121216730ea13202b59128a7616bb2fd23a7e4a5aa08641"
+ "cc07b669641313febfc88d64d99447353dae3f06",
+ "031b443f46c4b5224237fac1022ee1570173f664aba0c84dbaa4246bdc1",
+ "04005f57b0e5f2e175006f4058cbb4ca9a0cac912c551ef1b94e97498fcc5a00f3a554d0"
+ "77b751478f8a2b7c2a9cf15effed958e0ac1a9e3db1e023c5f",
+ "07ff6ef3026c5a960e632beeb7313b3bca0baec76cea1fd9b82cedc3245",
+ "0099741698549c32a4e86aab6194527cea703ff869849c538a938585a83",
+ "02ad706c6f5dcff512498d84f1877eb997dfbe9b3d13b339917632d3cb1"},
+ {NID_sect233k1, NID_sha224,
+ "8f92096876d9f81bcd992369d42d0b5877ac969004d17c8627c58d8b8b7bbf7a37e8cb6a"
+ "fa962b9b043bbbaa5bef4a5ee38d8bd31cb5866b828265a2f4102a616f87009cd346fcb8"
+ "af5519fb577c60d8792472232f33dc615655e53d2b715b15a2697b492f108b7906e1e359"
+ "7c6911f8cc30c7121ae338a6b747ec368f8e4a36",
+ "048f6ca29f35f253a4962734357c995920967b9eeff1ba5fd2080bfede5",
+ "04012b7ca7c21292f8795b2fbfd63a28c5a4ec8c850d6240f973c903bc817001be9855e5"
+ "c5a5064c27d1862010b2fd0d7be5a0180c861a288ceac89d6d",
+ "07dcb9725323fd7668991ce9a907b7129d53fae9016e253c53d057d195d",
+ "0498c4fca6ed7c2998347b464d3e562a74b0e4f3a6c1dc453aaa61bb710",
+ "03a77a13f011404d5c5341dcd2ca44dc2b08f21f09f524045c281fb221e"},
+ {NID_sect233k1, NID_sha224,
+ "3d275dbde44494c45fc15fe89e2ae32aa26426a17e923e895c7941a5582fb95df4d49873"
+ "ab1bde358017f336b911b886b626b744806ab8113418473c441f1964159ded1b12122d53"
+ "ac56573167588e4b55f36b8bca8c67823883a51fb6e7f204d1c6b07ea49b577bfab9ca6b"
+ "8d51f72268b022e3a4db6f9d265ee8382f9b7b66",
+ "019b940eabbe682f961d9f3d90432e347fef3910e641656825d775705b1",
+ "0401efcc9f4576047c43eab1c13e0547b1c5ec1cd2afd2345fda72b5e1b50f00c7b5968a"
+ "f47e58f4ec15c0cd82ccd0b9f5bfde06c7f86fe5cd0105d693",
+ "03f783a94d1de73e4593f5d6d02238cfa0486e3ddf2bc0b95a528038e3c",
+ "013c467531f3f6508534ad072edb210e4182ce5a798d8a46674e92a0b4d",
+ "0685982aa8e2f3e46ecc03e00e7323f3b891da437235cfe9800139ee8d7"},
+ {NID_sect233k1, NID_sha224,
+ "d2fa68e1f7dad02916b12fa38f1849d6d409dbad0344438520b4dd9b77d62d39ac9ae3cd"
+ "eab03ccbcfd4de703c6e798873671731c108f322b9f2a68145e3e210c9b15b879798e5c5"
+ "3c5022742e9819b99edabb2f44d89ae221f7a99dc84421a6905695ff91928db608f86174"
+ "5f17584d56e34b75c47281435b1b0b34e490692d",
+ "07a884b22e29fa9fe945e9ba13c0df8d786dc87cef0f77f069e182dd56c",
+ "04011e831647d0ffd53d75e44abceda753ab470b3cc93b457590617d925a19003db5bd0a"
+ "ecd6504d904bcf9dcce131abd239aeadb9a64a9811eac823cc",
+ "00241b763c6245b83afe61762b161c41467ef35b7f27a9c1066f02babd3",
+ "0514adca3481ac5f99287e6e966a5c223296b07a9456eb582ec5568688c",
+ "07ff6a2f7cb1d2594a11d8d0adb6fe50b4e740f025e7b4333ee26163d92"},
+ {NID_sect233k1, NID_sha224,
+ "3830f75cf9df4eb2998c7c1b5fe11c1476bcf849c3a8fa7d3d0b5bc2292e5d07465ab8cc"
+ "9381c575d909e509c5dac49c78817c04e4bef18bd51bb09aa5897f21634633a5ce6d20bb"
+ "4638cb6c3927351eaec7b62cf4a33956916045c392f325adafb10a88a5f86d7e41dd7790"
+ "8fa7284210071c22aa40ef40da6339c02da05392",
+ "05da61f881d5a0dc085bb93764f584352882923cd237d878220ec624c1a",
+ "04018d740441eff1f785a14d04da4ba69540cbb469780ffd36e1dfae4f1de2018072ab30"
+ "e999ae26b872ef46a9a0604296d02c08fba9477d9e03f0f75d",
+ "000f95c5678fd08dda790cc60bfa578118f8687228a2ef5f31e71a6884b",
+ "074a6599b8cab75e0cf752e3f41288fbc673d52074950edb14f76524949",
+ "03523804351e3224e816cd4fb7191f332585f68053ddb32a85cc0fadc03"},
+ {NID_sect233k1, NID_sha224,
+ "65b9fe15e6c35d453caa6bad39ee78a720a04b60d8a0a0f049186d2f777e48ae2d657e17"
+ "4df53edb7beb9f7d8f21904ed674add0cda5b62a7308de76c324a144021e8c6d387daaba"
+ "4ce48bf7dfe9c8aeee2c64e434ece1fa5ddcafcf3e5d0013a1eeec1742a00d384cc2ec0d"
+ "7eda83bb4dccfb0e57045ebfc27a4f404d03da37",
+ "03fe9f04647f6d82b13ec1ae5a8c2e49bc66b05649ad778eb16149ad83a",
+ "040158eecc6b8918e7813ef990217c603b28ed1774c740382a8af5c9af613301bbffeccd"
+ "41107c7e6f83e24c822d634a7ec064fae125dc8a3ecc4fc9b3",
+ "07731edfb3ef523a165a1b5817ab2805a5cf88043c98ea2393898e19551",
+ "01fa44fa18ebafee6f419fdb9de0e8365520617558b57e9ee89f2c8fc88",
+ "053f1b2da4cabad04fea1111d525f341417587823fce71e5bfd2353c2f1"},
+ {NID_sect233k1, NID_sha224,
+ "d26521fd41eb5d46ece6836e188bf9cb1b461d011c41e002a935d256654d01725378e845"
+ "920ec4a7fd3f379df54772493df50d312c7c6aa4e909e7b83f2442c3a5e85c37d68aa015"
+ "098ecfb0a5e077370f4576f4bc63bf37e1dee06d780a3b6949af5e21c2a0960fcd20821e"
+ "f5f17bebf5fd5b3bdda260842cbbfad45667287a",
+ "05ebce648ace4cd555413de6a456fc487d14bf4b0b9a72311ef480d2f26",
+ "040020b46ecbdc36b4dc01111932090ba185eab2cdc4fa89775f2a6177c5920104cac1c8"
+ "00103c79642321a216bcfae497b037b29888cf9f70c507114e",
+ "027733120626e564b06ba71c4946c9c8bfae43f88511ec6352d2a52f407",
+ "0592de5184510e6ecb7be8a011f862470b918354a1ad82458cf716137fe",
+ "010a9c5fb6e4b70571a35c56744b57baf0108728bea2bf639af1960d1dc"},
+ {NID_sect233k1, NID_sha224,
+ "b778c021b1a92c41dbd09963da07018075d73e54d62df5c2b7bf8abe137151650d1c1c6a"
+ "bce7eebd8f32e8c3e6d1433773f257bb3ba4a4fb6a02c0db1e47d03c27d3a90898ebd192"
+ "7c21df24c4c5443ca5b81f8ef2cc0f5e8b3d08f472bf07085df737adaedec63d99acd77b"
+ "87ba98225f198b791124ac2d9b191cb9251b4b00",
+ "056653c2f85593f789a926ba49fa3da9d7f946d8f1020508c5a527ce813",
+ "04010d65f6f5415dd86a83bb10118abfc1b1670a1664eb6dae99fb68b85019012c1e673e"
+ "575086ec1e76b90d59c2cbd2727f726f88298552b678ba7e60",
+ "021e26c098c9f9da9c782857fe640ff6abb21caf20a093f2277845bd10d",
+ "01d67cbc8209494dca1a74cee5d9894f98f03728214f7bbdac29b0c0e78",
+ "02215f758fcf0d8dd603e79658a8061ab45bfe6d854e52ea7074fd5654e"},
+ {NID_sect233k1, NID_sha224,
+ "ec14e07f615960015a489ef999e308b42a4c571473b9bd64b433dabd9a1b1ad02e33eee9"
+ "100064405175928a94543a80f440040afa2965b4e5f95f768e7fab6d3c0a5f5e1bf1df78"
+ "22f78384e80f2955ea85f044ac60537d895747979f935bb0cd3673193c4a32dd7803e48d"
+ "7daf70a71bc2aa97236615b6411e28fc9a652145",
+ "049a91d320783cc70a5952c32036cfc75d41f1aa84127db2dc759fb291c",
+ "040190528df8fc3ae4db6e12930f176ec9c833d1668ac5808f1046366445a401f647d55c"
+ "e80b18a9add47fd1a8e4aa725297d9da03246f5c1ce503dd56",
+ "01eb80e2596d6c01431e7a4fd9e22903ea85547a31d675ff157a789a137",
+ "04523776d88199ebac2f96f9faa434bd81bde770ad4458ef126fde9198a",
+ "054665f31f92f8897482d34fcb63141a7539577037c84496167e9d3389f"},
+ {NID_sect233k1, NID_sha224,
+ "89c645339ad0eb850e4e2fe583cee175b35feb02ed7541d7e9aace24cdd3939584f73ad3"
+ "9526de6399c86b36de77a018e2c70b532bd0f032f9137d10480acc30c49f9baaa86f9df0"
+ "033b77e98b485bf7a69cb5c281e527d3ccd1fce2415f0dda4a268ce68a0a34b16afda54e"
+ "d922cd6810ac8dc766df2a3a6c5e55972e9786fc",
+ "016a20016602fc7088a60469843e1d29ad67e3c3cb9500b1e2a00d4050a",
+ "04004f157541dc3a8bc8a2ad4dfb3933039b67e331b7353a2fa9ede322f4ad01348a7b8c"
+ "9495bcbecd556870715faf3d543cb8f2368805473bca17b82e",
+ "01df1ee39217d7f0d838e8b2d30a1159d8003b06e50a00d637edf08d6d1",
+ "045d16826bbc425637e7a05b826bc907f7453c70141d1bbd2cda63dd490",
+ "01ae1703cf179dfd1d5407ba2b7324cc7cac15235ee9c3756177444e122"},
+ {NID_sect233k1, NID_sha224,
+ "ace14c4b101d2d8453c2bc22b756af016b5de537df9c3e639d208ad04ae0bf6232dc90b9"
+ "0c33228dc85de956db771ffde05fb4d0b15e4f218ed2771d703ae5bf981252a5bcd60c16"
+ "f14483131a481cbe04dc0adb1fb8aa32cb48bb5008e8a8e5c7b7465be2fd7afbc811cf5e"
+ "a6293b1a464669b49f55f57b93a8707e6042fda6",
+ "00ba922149bada2551b7be1c3df076f3f97ce93c13c50c285fef3f42363",
+ "04012daff2cfab994b9d1d1ba73bd2f8e7883b2d92f760b0d16351ec125fd40115666f7c"
+ "65b95ec2d713c5ab1a3eeaaf0f931b1859733416c3c778aa2a",
+ "07fc7c9503fabba0972e0e8892ec6331e0812c6452d211c5561fde79048",
+ "06477ec9d8d8d45418b9efe7ae47c0863ff94c43d8f392c079b870a7cf4",
+ "06b5a5d020b3d980b9d7880130802435ddb4e7362e36a70d193f18a7fe6"},
+ {NID_sect233k1, NID_sha224,
+ "cec2ba0d1772c87e87d5bbbd67220692bea4301aa1a66e8dbdd7e651d45c26dc2a0d45cf"
+ "c32c34d76ae3e1c61db7b0fe1863457b93937d929e6ece7462ebd16adfd708353d6f7c27"
+ "aafe06593c76da7149b0cc574a4290b0d8fe219f3eada7082aca38dba3f78ed0d5942d09"
+ "5fa5556fc8bcef331ff0a6d5d1f4e6c51d4ff5af",
+ "02d635e12a58cc6dea44e71e87c37f91e8d08659f0b7955d24f65ab55ba",
+ "0401dd33d8224ffe63a32f2de5d4fcb0e5f1fca7ca2ade5b35ffbe75cdc65800bfbe9dfe"
+ "13f99258c787af82631ce2133dc73207c579b29869c7463943",
+ "04ef333049c575d6688aa04f87a6162185e4a57bb752a7f903e3aff86ff",
+ "01ade04af08ea1c1877779fbf6335156b1a1437f3e449f07458d700c67e",
+ "010fa82467d39e5ad51cda8fcedc72ee6a78dccd0c90544814e53ba9cb4"},
+ {NID_sect233k1, NID_sha224,
+ "ffa13cd0f51ae2643d5d4edecb493ddd653e9faddcffc370e7e958abf726a5d67a2ab36c"
+ "ef42ea8ebe22a6f01b9c31f6ffad01e6894487d979acb5e618f765ac0ec3550ac5dbbced"
+ "e8f9fdbe52fbaba5c087ff382b6d7a09b2b5084227d324d98ff98793040884799b96d2ca"
+ "593201f4414f18c43b51c53c5e5059e0641aca02",
+ "0073883e5064e06814fc4de32e15f7a6cf825d2daf6eb1df8c83e25d80a",
+ "04000d3c79d627ee0d2d88f2de2dd082112c20dbc5ed66089454f7b8fd9f8101a2580e77"
+ "9753bcb023acba1b0852492b989c767f664c7047de8e6689fb",
+ "020231e05166271f47a91dd883c580ee313e9a07195ae511f0ee62173ec",
+ "0303eb4a0df97577c4cff531b3f54aa282e76669c0c5ebf4c9779c9bb82",
+ "0692432a7dfde09db7743f08130b3d3327dd98cbdc323627603518f70d7"},
+ {NID_sect233k1, NID_sha256,
+ "c73e3dbac9513d0361dabe94071faf03a11cba18c06d131a172d5f0125b01a5eeb6055bf"
+ "72c7106fe3f4be3bd2b1771cbe7f85366dccfbc3bac20538510c3f51179cc540ddafb2f3"
+ "b05a0d276899674ab1d7d8fb4f6838f04e4f9e26b8c6af31540f63f4953c85840af4c57d"
+ "fa78c704f637dfc8dd750fe45e2c1e149986d127",
+ "01532271bfae8d4dfe60f69b88d3006d58e28aacfa701861cde8d624db6",
+ "040041c1ca965338976b4c45c28b1cb64836b3b4d3e7ba2b1323ea26fbcca201a177d042"
+ "fba7903007db122eabc459e37c2c7fe82e42752b267fafe4b0",
+ "06a54894825644901baf2ec3681ce5aaf93a18757d93ec9cbce7ccd9d65",
+ "03edb77fc7686b520493604db18fc69edb4cad8195a958e27ef289c4bac",
+ "004337ecfac57abb9271909aa43ff4e32851df7818dcd87216d051189c0"},
+ {NID_sect233k1, NID_sha256,
+ "d00dcd0f3212a3167403abed91c20e76f5e7a7678a4fd970f944d11e6a8cd149d0aa6fd3"
+ "164c5a74c0f55193a4fa3d8ba6f99cabed10544625a7bd92b3e0b46edbd4a269bbc10518"
+ "c5268c3910a2aea567ccd32d4c7a0cbef09ea42c20b636d1f711d220e23dacdb9d1146e0"
+ "494401349749e5ed88e38295232a7effbae3aed6",
+ "0550406c0db882c6aee6cf3b6baf377375208c3e90cc44a067cee43efcf",
+ "040073348eaa8f2885fca3baf31830a2b28bfe983e3046418561f62ac5d24700033de5ae"
+ "e6d0bd4de286f1de1e80bf72e5e17083032bd4dc24577b6d2d",
+ "05c0e7ad0f9bbd522c862326a5734a766423fff7efbe57c51c315fa574c",
+ "02103f1a0200883850b6476c7d7e7d2b3e2f60923d028ee6f8227b1ec48",
+ "007cbbc3c6295ceafb3d9cf8411f85a045b11ef8472c5ed45346d26192a"},
+ {NID_sect233k1, NID_sha256,
+ "3d36221f87157ca4db84884b8666660c4e2b6af330480c516cded9f3bfe132543626a39b"
+ "b6aed1964eb5c33ea0b95b9841665417679fceb95d199d55accfce35dd3f2283c1a7ced5"
+ "7d0c4b9ebe3da6e1ff2f979b6440db27caf9f6a4bbfa47e20d29ae304f4d0551fce9cc40"
+ "97eb2fbedb9b24680bb17d207bdccdbe799d5b0d",
+ "0257dc63752920b6854d6c2d1cca68589a38418c3d036e73760a12214ab",
+ "04011a42e9f66ecf030d0446cfb751136347d4df0ee4e031058ebdcc04df8000fb7161fa"
+ "c8cc5ad7bc4477a39350e419776f76f184e28abce886ae9cc5",
+ "00391d36c4044896ddcd68604d5f677d1df298f46abc00eb12f1165e8a1",
+ "04e19bdc6755a603085b66355256bce98d5fdd49b4f06b628e3e185574a",
+ "07697b29ce5546de969c9c4bbb5ea65f712d6cda3410f3dbfa0cd5b1a8c"},
+ {NID_sect233k1, NID_sha256,
+ "033d82a42d0eddf58fbe3e91ddff7190e3f9fc2b1e2eede977d2c0473b358b5fce1f981c"
+ "a6f88fd61ce2f79e453e3a2b77d1baab2b970ed28d5dcff58873a620e195085e61c4b848"
+ "0d829525a1a944e8a4b63352f0291f0311f1f98ceb262804beec1c74947618f8e3b06786"
+ "6255878c2502966cefcdda4f5fa2b13d92ce7840",
+ "029025352297a7be850f8852411c09259b83219135e0e8949c1bd5b94c1",
+ "040184345e37f07077cc8df5947c1b1fcd8404b3c31586d6ebd91b240cf42b019dbc9091"
+ "a5d282fd6e62c34676a06a425e098567b990c47e61ef14d77e",
+ "02b2663a449ead3f8cce2459e04cf84333376624d994fd9312401ae57f1",
+ "03af223fd3a6b6b240e59dca83ce2477a577494438ddee3fd09632ea67f",
+ "0606576d89f2094572f0bbcb58a15d9a4bf10ae3667d4e35cdd8da32102"},
+ {NID_sect233k1, NID_sha256,
+ "671a7c81b64b2919722d7b258bdbd90165bb757b53106e0af03d0eef27452942f40cf52b"
+ "c95cc7f6567df2613cce795f8bcfc723b2735efc35375c001d37c58480d89343697146b5"
+ "24835df3dbd333f7c06c98e36d3c4592ecd1f34ab57c341bb0f4c785f5b8372775f74b4b"
+ "ce60763fad1788e77ea158d735a64861320b36c6",
+ "02dc82d0e69e498528925c0e62a13fda9af8cefd047c10c3ffc2e41da3e",
+ "0400e5463926235ce53a85b489c3c278320ed986003962a5fc7ad4cbab0d9f01453e6edd"
+ "e95670a4653186ebd8246c28a94dd84f5a669bd3293176f1f0",
+ "034a8dfbbdc98bb1d9b175600bffd866306dffadcc4bbb6f24e7f918da5",
+ "03cf1407445cf1a619a280e139242056c23c58979f0b3f0aa7e1fc074e2",
+ "02e55f27593f2c76fafccb71493f14daf50073b35cc85f002528cc6d691"},
+ {NID_sect233k1, NID_sha256,
+ "0ef677f4799298f4aab73b7393598041f56e902ced1726af49657b6601a06186212e3ee8"
+ "cd4bd33b760dfa2ea3c38884f94358d51dd479f2ccc8b0b352fa4e44fcfdcfbb24919d04"
+ "e6ee1108527b8e8d60e8d1b467c30c18c5455e5835d483161d3fc26b4a67d6df9e3ddd93"
+ "31247cb18450188752a1ca219f3396a872cb13d8",
+ "041535fff5d279bcd744b04e643458ce20b81df8a9e01b1181d52bb14e4",
+ "040021e1227457be78e49db22335139a136ba290d34871f90ab5e6a8db6ac100df43b381"
+ "a4d757864c39ce8d0b64d6a32e9e8be30f92a10a252d46a2e2",
+ "03019bd459b34133dc7331caa8976bee67f76db3a45b1793cb545e26c68",
+ "0025611bd4e3473aaea85228b2bf37eb1b4458d8166012aa098d9c1cab8",
+ "07acd38506e984fb7f1607b50837018f9b4246623dcfc9d7aceb486e76d"},
+ {NID_sect233k1, NID_sha256,
+ "9290df0cc50c3cab6655f3a6de1f4cf613d9bc06ea7c99f38038369ff2fadefa57a3c7ae"
+ "7940c1b98bb1d03503cc271f7a891bf38eec93c31dcec7892dfd2e1ab337bedde3e5325e"
+ "d8d9cb7fa3096f6fafc3beb3a66cba66ba826d1032debfb4908cc9dded8c0099c85072da"
+ "ac4373fbc428fcaa9a6da02181ebc33f0cf926fb",
+ "000ecfe580a624df66c25e87e7689fc3b471d205970ff9ab51a64aa12ed",
+ "04002ca7b9c98bb8106ae14a87d5f9f7ae1f99a5524992116e68af89da6daa00a2fbee76"
+ "9eec313cf3c8519d3f96167477f0f06dcc470408e3f637b6c2",
+ "044f065c49bb7ff0772d628104bc2e222f1fde42aaa8b9345d324d7f936",
+ "046301f3f07922d338d5b7d82104597fc50941e4bc0a15ab5e0408f9fa1",
+ "03495e335905b4842b97f00b344313ca7d6a4ff60cfeaa5d589e0a31782"},
+ {NID_sect233k1, NID_sha256,
+ "855c7be75fda372f062709827f333630acf28954a62a5193ff675f0dfeb63f32bca418f7"
+ "cbdb346bf388d62315b19a592267ca407120db93d4e3d7125b867c4c4670b7a57a76f617"
+ "34cead2caf2425eb9ff0a63293e8cd6defc9648257b401463f4533a2425e0024f1ea9336"
+ "5eeee3c6da20d25928602ec8b426f9b39f97f3fe",
+ "013c72c73358ffa168423149ecdd897f0a5f75a641de008649f00134944",
+ "0401c70e1b6c01477f95e718f193e13c093b101e9f16024082ac699ed6ebb601f8013a88"
+ "264266cb5cc5bd38e477fe0a1aa49ae4a5ff94cb58439a7c1b",
+ "07ad8a117f34bf2fcf7d689b8124e08118e28ebd172f8c220d57d3f0b88",
+ "012bc7d380192f2efe55625e39927ef799993af9451c662b562a239dfe7",
+ "035961b27e88d6731220f70e96d555f63853d14149df7bf6d24fc29441d"},
+ {NID_sect233k1, NID_sha256,
+ "9c896f800281812ed57d31623d563377a5c725cec84313472b90e73f77d400f5d4fb2362"
+ "55741b73d46f7e5254d04099bec274db8a9af5fc7cc220d42cc172cbd3c3595c49ff74bf"
+ "aab7b5e46c90855b611f74753ccdbbabf92e011d52e9ba753b83ed2a251a632e1bd5c6d3"
+ "46e38e743950c8ce0f394a837028575fa44bcc26",
+ "00ac60e2e70b7c4cda64071c7738f68773c94df9456a8ec3bbb468fa7f8",
+ "04000109614a2ca27b7a749e53777e0f3ee2f57013ee83ea539ada6d98d8a9005668f4b2"
+ "7213a8a024455b398de2cd7635cb620d7401f5deb4fa9ab2f4",
+ "00098489f0966e27555268a94378b7b8685ac610fb0964694aae9aa716d",
+ "06d151437a0aac232a472af038b0fac095d224ce0e5487510e30c31d605",
+ "0563dbfd021c1b77f980530d0120e93c9ee4f1f092a268bd8aba7d3110e"},
+ {NID_sect233k1, NID_sha256,
+ "139a14ead998d1a962fa47c47ef2953aa136bd912fe940709b8c560bc2a0c4bf8f3aab30"
+ "a8e21b7d5f487d30b0097e3da723f11b5cb4e8c5724f5a2fe0d68ee4bacbb85e5eacf180"
+ "94d2a8ec4506cf8497836a4a905059a998ea750adc54c27c69cbd0b0c1f9743a62f3d988"
+ "f3fa0a9865a73fc071f526623085a2ef12838888",
+ "060bf720052e8b9508a801340c213cf53bbecf4975faee63d4b44fc647a",
+ "040196e37671def44b35c9e8c719130389b40c7ebc0ed5ae354dc73e0c40c700d3fa0a45"
+ "a3cc5dfb61085290f6d18d710ad5d0d3ab31ce65b0e6915a72",
+ "0729c7e1de10e92634857a65a2ed75103df6bd4bf63b1ad6383c37a0435",
+ "06808491ffebf088476de7daf541bca3fd943d4c2089b848a130abdc0d3",
+ "02c0dcfff06a07e928c15a1fc2aceaa4b4dd6fe8eb67ccd4d01240f249f"},
+ {NID_sect233k1, NID_sha256,
+ "cf4a8e754b23d0fffc1c5c80b0cb11deeaba3064b315bc2cee96db5b9881baf90d30af4b"
+ "69066f757b3020706def77a5fc1632d96bafba22a9c8cd3b52d535d941b3c7cc02b7fe6b"
+ "51639d5e2084478ab3a29d2f5e0e16639fc2833a47b58e2c3fb5b2ea1830fe2ff68e571a"
+ "8f281617a23d9a28db1c64ddfb1083d055030e5a",
+ "07cf3c216592febd8630a478b5b3e3a605084020322adb13ac0a626bc7b",
+ "04008eee2ea13a08d4e4d71ecd2547f6d80b8f88879c9edfab5a675831fef2005117c0d8"
+ "a0442ad7b95cac1a984dfb9efbb7eb3c3866955da60e6cea8a",
+ "038de0be25c23cbde9ed9fb259cd9a06b69bf15dafed723970dfcb91307",
+ "051c9c5fe50eb81a11c8e7b2db145c6b5dbff2c51def56f4981774c357c",
+ "053887c6cc2f21bff461c9182c17f634ee2b301c3cc4af0bb1d3075f74e"},
+ {NID_sect233k1, NID_sha256,
+ "ae64030d4af9b36c8d3a6af0aff34e5ab201df04274691fb420b7d5c40c401ed7f3ade96"
+ "065d34f2490d17943e27156e7bed83cd7222d0d5a73d167855fbe7ff6c3ed87f20986ad8"
+ "bbbd80fed5f9705c6c783b423f641d40ff1f367f9648af5a79ea3cea0236997558bd9dcb"
+ "011ea4dc64d61ea1e1f85b4f696ed586bc7705be",
+ "061eda5999e5a9ed4485d2a0ac5510549b76ca37df858ea5d95aeed571b",
+ "0401642d56359cc0a5f261fdc405030d45b0d6f9c08a182d354bf2687dd9d5011bf0dcbf"
+ "62749a99e4b02b284aa7a6479b59b363d25319a5315423a589",
+ "03094fac5381a1b31e53f43a537d9e22ebe6bd2c149f2f69d792bd56f53",
+ "053c8c4f9a30e0500e01100bb97c00ce98f5cc6578686daa1bdbd679373",
+ "047086a88ea014f06d6345608bd0a6010e650b9f6f984b6efea9a4fb277"},
+ {NID_sect233k1, NID_sha256,
+ "94a9d9cd9efa3e4ccf2a37f904dd9cab5624ec9393cf8816ea591c5e70cccd2f105388ae"
+ "133708fb974998ae61d218c71785f9eb808d1c28d953cc7eed00dd9854b6b4568c5ed5ee"
+ "3df3b58a1e04c64f1c87fee4365ec9aa41b08a6bae234dc43a0bf2f61420acdb891a40f1"
+ "7f246972afee75a4c0b249dee0fc8f9b9c8a243d",
+ "07e7e73171e4d2f2989dc024757c186485435b82544a448f5cfca05f281",
+ "040181c8cf579d9259020461184979757b097d5a94245a2b9a1f8a6931ee0a014baf1b76"
+ "1a0af3dd9c0521c6489f9a778da824283c94087698daa7cf78",
+ "02b57fabe6b866fd25ad8802c6b02b680c137ea9b623457b35a24d5a5f3",
+ "07421dbfa83859354345b9c3f1ce6242605094d924a4d38c7bd952e3910",
+ "05ee48a3a5119bb3433b53a625101492216421ce67fc04dacf947ec600e"},
+ {NID_sect233k1, NID_sha256,
+ "4db998df7b90678b8aa4ec6233c9b4629800ad1f3e2cf8f7afcac62fc6982dcb290e4458"
+ "7015eca8dfe77dbb4a80f9bffe75b11e961e70deed14555db6dae47d49e73004f000eb86"
+ "77c18f7e8234bf0a5a104266167a05ef07152e7acc2f0368b37efe69c0c2feb51eedf733"
+ "8cf9ed398f066cf1f66bacd89ab9376d41da35a2",
+ "05f7270764a0444c7159d2db867930fdb0fb9fa6b8fc80ca02e11753095",
+ "04006806c7164a09e11629e16608b7312d9d988acefa626fe8e34e03203d11019c4200c9"
+ "522618dab8a16e217beb3011599ed6cc09291fe9d451f0cf02",
+ "04a8958c80481a18c6e0893da9ab2d48fa6ae30a0f1d0512196e658eba0",
+ "01d301da51eccd15e09ce0bc2d0bdcb215a43ed13792084e2969260d46f",
+ "031f96a2f322d27d0bef23ba7c457fdc45a6e612f7d13e9277d36c8def3"},
+ {NID_sect233k1, NID_sha256,
+ "dbf9b8a4ae316bd2df0c80db1cb5d7038364a2634925ff957d7c03511b57d486274b2ecf"
+ "191746827c325a14dc94daacd66ad86d369e3f598f176c4f0eadec7e9edd13e34043efbe"
+ "0a801b75b8186b4a6d89ceae4fb250ab570d65b6dd7c04382738fe3f6f6c867a7d84b35b"
+ "20720cb0036a5d81a87126f236833831d9ff00b1",
+ "0179b924afa4acf30ecbe2b3c12de533a1f9675687876a7e5e5ddc8e03b",
+ "040175bf95ac8e768727d3b4a74c2b8a04b221247a3b8386ddf35fc39976ad0122f32f94"
+ "1066150c151b9db92b86f86a10cab0828a77e4f0d5c4026540",
+ "0210c75a63699b424585f65497c6e46988c28eff3e0977e3ade599581dc",
+ "06087e46c0677e3ca64a0cf030236583935d0dc03c896685dc6e446d9e2",
+ "0252e42b8f03b085f38c6849bd420837d985c9fe14750a654b584c4cc5d"},
+ {NID_sect233k1, NID_sha384,
+ "986d9e5d636526f4deb7545c037fe81b09c74496ddb8e42e61650c74b6fe348593f0cf8f"
+ "8eca5e839baf62f17bf6ad96ec0c71dc44fdf11259dbfe7499157e402f6bd50769723541"
+ "50723afb632799a990c44cd0a4fa9609ec4db133e3b4700be3ea4a338e8ba1873d345e80"
+ "163ed60d0de274d7617a8382980bc2138b0a2a01",
+ "02c9eb4d392d7f2eef606e1861183acb1fc753d666225f0f154d9eda147",
+ "0400d58fd7b5aa570b1c4b2190ec413fbcc9ef44d33ef191b6e23abcb386900173e85377"
+ "bdd8dac58222cd1d0f7ed98d73d6fb6c2eaf34819b08ececa9",
+ "064f9fb13784c99185f334700ccfcc4ff60b7f4d613c3de6dc5d1b8dd5a",
+ "03bff54e3610ade656bbe002867168db1b521c49225eb9662950b01955c",
+ "01da3fd8c08d8e17692059c669da3c7c4c146df6d3cbeaf34598d28eaae"},
+ {NID_sect233k1, NID_sha384,
+ "68d0be2883598bfb1433886aff118349157708690380c42b8919859d96db069c7fde6e11"
+ "7a3669f2cff94a0f1b66b27b09e3f1b24d26299e11552a084be428446f3174da2e041465"
+ "5bdceb38e58fcb065b6661190862db39c6545dead34a03584632e988d0459659dc7c7c78"
+ "d4d00fc2aa10465cf24b2410f14e2a62173c9962",
+ "024661c89b77b2c743cc175a6130904461138ddc4ef771ffb9fc2c8679a",
+ "040090383de7ca48f1e71a43845565a9f0c53d2c9f8c2e0f6c4ec7eb6437fc0167658227"
+ "2e7ebc9fd56e1010a570d744ae4fa70eed3e6eeaeb0e0eda7c",
+ "05cc5b36c7300a1cc3f624e9e663861b4e296f7e7a27e8f8f0a2d54eecd",
+ "039c6f5b484411c434ee161ebeda7aa21b7bb26bde0301d9ff92921337e",
+ "02aaae737aedecfd5d53af56ef154ac6430a45ff03a3495a34a5fe0e97e"},
+ {NID_sect233k1, NID_sha384,
+ "f0ba0407485fecd7337f4b22236533a926cc744a5f06dd08276750196f1bf7ea7984278f"
+ "789f92dd07e36895a8bfe297ea43d4a1177c0368900e3b969d3083cbe626f0e27e7ab38e"
+ "185c923dff46d9ba187b2acb9cf4b23ec8eedbb8044b96b5263d956e50cd6240c66d5d96"
+ "517130c743752404ed09473f05d0004dc5971ff5",
+ "0065e20e5ce534576d7c17616cd4ede3bf4f500894850723bcc9f895f4b",
+ "04001413f6dd5349e94311f1d25e400b69c0f0ea446294eba4bbeb10278b850066a05055"
+ "d856621161d4f0e33dac82e5c0cd91ed8aa56e9abba9ec80cb",
+ "07377147b59dba008ed0e6b366e511f94c7f7c9088615c6d46f46736b97",
+ "05515a6bdfde3b4b78489194d39f4bb439f58a6b3c3f9e16c8a71590b14",
+ "00778f79083d11efc8ff959f607c4cee7cc8f38b855028ea248fe291adc"},
+ {NID_sect233k1, NID_sha384,
+ "3827276694e413c886129c452c9a66e7d09dee84f5f09bf34e4baa308b4627e096c7d45c"
+ "f6ef45ba1d9a4019a60399feec10fa80e333e2aff1251c85ca48574d9b9e1affb9666828"
+ "dff5afcef3edaf5e8cae823505a0c73afe76c1bf130399fb06b092ba34ab0ae15ac6c682"
+ "f9ee8479b065ce75b57213b8aae0f55e4e386de5",
+ "014c85f66fbbd653f1e4e590cffe62c343ba6062df4b271fbd02e5d42f7",
+ "04018930b4a59a1c0e92febe650347c49e29a4e83cb8c507e30ad835dbc94b00a237bcd1"
+ "30235e34b4439293f15e7a3913d659089e38e5619fa52e3c0c",
+ "03c1f8d076fb4fbea91a97800607b2db3fb5a45149c0d30dce79f07e963",
+ "04b9d2c66d8cc55b64f3f62dc629ce8e50ae0bad8a4d14e8b6567fc87e4",
+ "00b9dfdbeecb061a455dd052258f3828d4b7174af972c65bd0043a9776f"},
+ {NID_sect233k1, NID_sha384,
+ "d1afb8965b48d66b9acb1ece674d9548f83395275f2d8135554cfcc7ceb96450d850dd87"
+ "4529433883709483d0743798db5e0dee955a4f30ba328c7934b8dd9207f3c336cf89141a"
+ "175ebe23d2faed629eb4236a8aea8300604c3eb7704512f240fda66acedf1494a85058dc"
+ "6a31bf9531958c332b93cfe5545046876c6b99e0",
+ "030ac7a78593b570b29f6d3d267abb6ba7e5870ee1c8ee4f1ab2f141051",
+ "0400a409e90eb4314f95967607ea3de9817a0fdb439cf406135262624e7fac004b1dd719"
+ "434e8dfa5861887736f32ecd635878ed4b9e290c423da09059",
+ "027c4987ff872fe499039b4432dc889960ea8e3f07be42e36a5827b3964",
+ "06829b5e02b5849689d152ceacdddbfa8f68d782b3ae8da23ea48b1acbd",
+ "03dba0d2b4400495ee098325ae4450b32b83689349e82a69b799dac2cbc"},
+ {NID_sect233k1, NID_sha384,
+ "4f95b71669fdfe5dc46d4b951b085e099de349fc740535175337127910acf24e9a0e4b2f"
+ "23196ad23880da47b740d77d74fe9bcfdcc44dd7d8d1a181ac290de5cf4da22d5034cda3"
+ "d8020bcc776dde8cef1786c9ce4d2c2cfb035da61406af745efb7ef1a55f2eccc5000319"
+ "cf1d6380963025dcea641cfd15a3106751fec286",
+ "06d7516aa040f7d559cae248e485834e8d9bb608279ed4d4f7e1dbcd2b3",
+ "040127a92888fdac8d4ba9c0243c9aca516bcb431911254bc2cf51883623a100606c30fb"
+ "b9958fb1140643f32c5dd582c2319f71bff197d58ba3e598bb",
+ "01104b6ad82327b0445e75cff0efa1281d266a9dfe4019ba2ed22dd6976",
+ "01f247b2850463e362ff8879054d3459b2cbae84b9d4bc005a2ccf4736b",
+ "05b3dbdf04758d546e54c43ca5973bd8ceba646a4dd5d17ae5d2f8ec516"},
+ {NID_sect233k1, NID_sha384,
+ "2ad9e17780c824c4f2d1e1cbf19ab85638f2f71cb4fa3518f08085b8b358f54d4f08394a"
+ "5ac29cbb3cab828c5f07f41eec51e6cd61a5f2cf44dbfa46834370cebdeb328fd3bf681e"
+ "61011b5c2ebc8945ac7a2a8467606051008b15c89390e111999255bfe28634ce9bc2850a"
+ "2b55a4af1c4c2f94403c78aba1ebc87386ab7b32",
+ "0137050d7b455f43a8dc2516cfff5a91062c1a2727b27df41488f3dcf18",
+ "04015ccc90a5f3906469e3ecf7a70c429f5b50fd0ce74065d41f1bd6dccc1f00fe5611b8"
+ "b1b35a907bc188ad2b1fb7507d1043d148283911af3ad782e9",
+ "04881e879d7c76eb2ee61fe1844567316d7efaef047b96979e6dceb7858",
+ "03799e90bc64cfd7d0246a7fc89a4d8ed0399277cab2af40fa2ec8196d8",
+ "067e8728f4d8398e4e1c25775620865bcc2d4cfe635a1f4c6b7306f6d9f"},
+ {NID_sect233k1, NID_sha384,
+ "958773c37d3eba003aa5c489f72118b3022c52b93399e9d8001695664918b86893f4922c"
+ "7b6e55b1855ed0fd1d8de5dc61af403ad660fec60d7c44bd0102c069957ed804d0d416fa"
+ "cdc1a95355ef58554606579ef89b1842f1055cfa2ae118abbc485356824cc09dddb77d06"
+ "71cb3011b33bc86cac526e3f6bb3293c7bdca1ff",
+ "001fd447b33a2ee3595b9f885c290d241422afdd74c3dc4981955a7e9ad",
+ "0400e706408803188263cb149428c60de57ac757f0776e5b27a2d5a859f58c0153b5e13f"
+ "17f0178cd90427f7d608a5659b9e03effebc89da65d59698d5",
+ "0339300c00cf7e8c6195ffb71e509613018e6a417782e4f52704026a510",
+ "0227c80e36e3571e1c783358c9ffed237b251332e8ed05a8d3b454c53b5",
+ "0679a32cee8ae001a18d9a9d0ed7e99e5ae67ffcd54de7b48c62e76ac8c"},
+ {NID_sect233k1, NID_sha384,
+ "9cb2c496b1bc7f040228571e005e7e936e48e8f469e295edf914f5648701249a20bff6b9"
+ "8b5e862603dd9f12bb71c160aafe9df02e2e383e9b8a9a9d700f4425ce408feabbf754be"
+ "543f52204c849fed6c9d3e36e03dfbd9e35c18d7bb2295f1c484a66e73440a0a5aece5fe"
+ "80b9ade9321ef18cde3eb2db15e4b18e788b0441",
+ "06a061e10b4a6e7001d95411cb31bdea9c84670a59ed61b14fbbb05c8e7",
+ "04000ad2b726b805919cabc90d058c78896d2dd8a78484c1fec5bd5fb0e07b007e048ddb"
+ "487f667633d6d030338ded21a2ac5f65373ddcfe1e4a3424ae",
+ "013b4a86b70f0e4de6efdafd7ecc993f0d6f231b3d743ee5adf82db1515",
+ "0541c2d3b2c6f0655dd415e327f0ef07b03356f8047117c41e704169698",
+ "00300f45026200b8cc84fd564778281bd1d7e03727c242a249d9ad33338"},
+ {NID_sect233k1, NID_sha384,
+ "9a4bc0a029e97742ed3bca207d5912cb568e4403cda106b00247520ea02008b14c041b8c"
+ "9b976294252da835f4ff27456039d79d90315abcb0b9b6958a22352672e229665457ec79"
+ "571ca80447c8ff2a86e6af3dabe7427c8bdcae65e3c6746a56079ce2cf8d22235180f466"
+ "46a21cd9e86032cfad874cb9c67f882fb037a13f",
+ "027ec31ca31acb4d2fbacb49fc085f1261b0042cc755cc97f9b199e7a37",
+ "0401d521f7abc2fd3b0a10732ed641cc1b7fdd7b49cf61909b215220c5253e0019e9095c"
+ "67af1b89ae6c486c4f9889c3f2994743eafe55bd9eafe438d9",
+ "0151aa44fd97be14578d68f87dbb884c960ab59d950c392e607ecae6bac",
+ "07be427f46958538004186d52aa50a0f83d184a9d2f4da2974163854eec",
+ "029d4ea73ab5b336ed44556f6944e734e531a5c71dc6c929e7253323906"},
+ {NID_sect233k1, NID_sha384,
+ "8d89e22cf802dc68ff22d43c436c79311e705ff6fd845e77c880f399f403e6d5e9e2b355"
+ "11553c978171189e288cb2200fd95f84ec5ee9865c0eb9190aff6dacf783ef200e82027f"
+ "a992741876456472bdf27f2bd8ee55db15408c957a120eb64cd24d299818726a73fbb069"
+ "7eba726a326719765735b37a2dcff0c853c906bd",
+ "04c6f4d88e5a4f4f83196f2dda9dcf2a66eaf94d50c851f59bfcea1d876",
+ "0401e2677c1305f545472e373615d195d1f7a315f592e26fbbf44c4255805001638140f4"
+ "8bad525625a87d0e537db5500f034e71e60e8a8c48eea04108",
+ "02185d8ec6f35d5c3f965cd00597d93caf45bbe186d4128bf877ec304eb",
+ "075199f4d8af090e4666754a7dac0c1599c207735c0f54c9f11e305727c",
+ "008cadf59a224f812d64c2f492e7ad4a923f3463b878dffc75eca5f8fb2"},
+ {NID_sect233k1, NID_sha384,
+ "aa1bf5a79e5339fb9ef6c2817bd95725551d064bc5064d6586c5a879901adf808dc2ef7c"
+ "78ec3b434b84569988db58b5e8e9782b1cbc2cc7c9b68e66f32d4ac4ebe7e75b345f654c"
+ "7b8a5e650acc9f170f75b7aaa3957cce248cc69cf93faf8d72abc6fc1cfa9ae2d18a7b31"
+ "ce720147e88e84f6563b2197882fe302449ac5ce",
+ "01aa169ea84365c22981bb766bfdad27e373440850569957544b0f9332a",
+ "0401f97d91302c70798e2278348e36bbe01587e0031ac3c422141e3d4c150400a95108f6"
+ "b7ff41546c98f4ea4d1b587a3280e49c6cd0d33abdebf9a1e7",
+ "03c9efc0f72d88168c2b1f7fa1c6e275839303c2bddca136dd19ef446c9",
+ "0639d1a1066465b4b2f443cd9677cfe3bf5bb33e3e9b14cab2d37f4a859",
+ "04582792ba78f782f112711ceaf36f5f0774b92a6fcaee327d687658835"},
+ {NID_sect233k1, NID_sha384,
+ "475664d5e22cbe0da0d0289ca9a666a37270dc71c81cffac91f6229fa39315c1d55f7e0a"
+ "89b6a7a07df7d391dbdf8fb7af63d2da46ecc3b60110dbcd842da97f98d2b67f562b0364"
+ "ef8e1c589519024177c8ea079794f271f6d35554c0e9d0a39062383c95721b72f4e74eaa"
+ "fb6fbfbda02cb670a7c4c94f67b8ebc6442e84e3",
+ "04a665b92c0c33a3f8b9eb4b0ec061d40b603de36c87096455102ffe57b",
+ "0400f0ac5238553f0cd74e6f34f7f82563cb01138e5c9bac6d5e7b8b7ad4fe01903e9fd8"
+ "a5a2aa32913b18bddef20667061f919f8d61a5b3c814ba4aab",
+ "070ef25950a795b5e22fe4cf5402f49029c5d97cf9f57f0806c0bbb5855",
+ "01248dcf1993ac2eeacd062f853ebb4b2072357e728f0589258399ea95a",
+ "069800eb2e2b3a9162196dbaaf67cab4ae123ea817f223acb6e889f6d7b"},
+ {NID_sect233k1, NID_sha384,
+ "9e5397d94465390a82a3c07e3ebf21b515776d18b4463aa5810e6b2f96ca61e92d13e034"
+ "fa853c3fa45411f51f79df6f799a2c6906e6a5b7896a4576a4464f9e0be2b529a43e1f50"
+ "3fb640d79db6b68f3a3a7deac1b5832fbe86673784ff6db1f8438f7dd332cdd1e7ad9df8"
+ "b6731aad1b6a72bde52e6bc62d80b8da57822c48",
+ "00531540d94823e19ab2b95cbc6e7492e1effcbabce875de6ba96f53aa9",
+ "040031ba225249916a5380235220b9657162eef43d59ccab507639e19bcd6c0062e85d61"
+ "366a73b62255c741a065708701c8fa024a15401a4cd58640b0",
+ "05375df0a23646e8033ec9e3ad269e7167a663b97b4f52cf18fbb5f50f4",
+ "05bdf7d643ffde5ea191553a9c99eb42fba9a8b6e2013dcc520298d224d",
+ "06cdd9e0d58bd4c5cfe66589ed7c7d15331f3e164dff562b6971af1a41d"},
+ {NID_sect233k1, NID_sha384,
+ "3cc4c4192f317e52df6f8cefba6d4cd823c942aaee11b9a0ef5de5c2d181073b7085a558"
+ "05e9554def8dc13eb978e7396044d4f4a14be2c7605998c062095c929b9c23b2b1b2fa73"
+ "dd19a0c0af44ca4789f9841fa62dee8a5f91b3cc4b3264f5f67334c3f0772b30bd7431c3"
+ "fbbf1f34318ce1889b6e8a76ce6d42079a451e56",
+ "022a89addd8b85809e87e0aa2c038593ec277054842854de1197833a51c",
+ "04008e760b282d0ae4eeb2fcbbfdec851468fd8e04c4dec71fc2d5d3a98a1300849a56b9"
+ "b0b0a1ede6b9f9522685e7ace3baa57f72709aba705814d138",
+ "05515b025d6196ffdc8bf275479d72b29a752eb3e70ebf07d4c4e7bf74d",
+ "041902f9b7bc81d3a88066b03e4111ad8ff4d99dd868d5608d1f43eead4",
+ "059adb96af9f404d2f04d89fb39cf38ba5689f47bda749ae9aa1ecb097a"},
+ {NID_sect233k1, NID_sha512,
+ "72cdef5bdf710978e0aa334b86b8ff4a58630da314eabe98b4d611aab56f55c526983d54"
+ "d19bbbf9ddba30a84b18aa0bae9f9503e9b222f842f084db83aa39625403213ca321cc0d"
+ "9c8a136c826e6ea4ec108b913dd0a9ce9d5b8c7e3af53c3876e56a2037ebd6d99f037a09"
+ "7111c837647bedfe4c494e4288ed6427c15969e3",
+ "01df252a11ff97b4421b3a2361db94e908e8243cd50d9179f9e03e331f1",
+ "040129f011fd5fedf3526f0437ae800a110435db907af60e16912d58523202008026ed86"
+ "afa7ec80277f322dfc8cf693089968ed9ceb8c95c930415a23",
+ "04fce14bc83be6f862f06680a32e9a51d1a569fdf1d9b10a89eb9fef4bf",
+ "04d7b8d19dd9cabc3c2245a9d2c8431c3151eeb6f49676a865e78c26c2f",
+ "0373e69da1fe35ce41ff344447fa7ffe6fc71e28dc68244372745739fc2"},
+ {NID_sect233k1, NID_sha512,
+ "8e4eb88c0b2d525b2c58b8e00f32def90e6dd382301de49e0ac053dbc6b61afe926d8519"
+ "3e2c4948f7402a3d7c614cb2c58e060362b0516a1ba4a7425f1b3d09aa20d4c3c8993a38"
+ "7a3248aeec51e6efa8f558dbdcfcaa13ee08413227c8351e3107e9a3e3ac124224aaea91"
+ "bfe50c11c1c8ae582e718f50bc5d5c06076517d6",
+ "01d7125c299ebd0dbcc050f07de931c7ad0450af590d0a2d0228a66ac5d",
+ "04013ebde8790a113bdde87c11ccdcbc39e354b193d772921b86657f53f74a00aae910b0"
+ "e22f1a2505f55fef2eae47ab6d47db6e49190a5469b4b6dce5",
+ "0113d1737bee59f9f477f71f77a0ac1aea86aa67002c34a1b31c421cd7c",
+ "066f9871da9a22f07c9b2a44fb6c01ac74ba17649cecc33b729afcb488b",
+ "037fad90c288510d0cd8e99e5d930f4fe197df779dfd6088da48986c601"},
+ {NID_sect233k1, NID_sha512,
+ "370fdd80f330311dbb3959666001bba61cdacf20f72f78953d946fa6cba02d24b5003f54"
+ "52d535609e489b9434f192011f99f918defe877d51349870e7e75502f61145f7c261dbd2"
+ "a0840926d824ebe9be3c5a77a3a84340aea930378367ed3615a47e3f792c7773f83f91eb"
+ "ea718a05fc62e9ed1d78629b2c27ae44fe8f8d4e",
+ "021238e66119844b146d40e48341f522f6ac2f9c8a0b33aaf95a3099a41",
+ "0401dc3ac1ecb670f867337b752cdbf48bed9f32589366f7c6ba7424af1d6601e3a38ded"
+ "8148bf45484ab6b77e0beff759812493347e32d2d54a322a2a",
+ "03626adf8e70506e74ea27ce740f7eed1c8b37d50415be6a2681c67ad2b",
+ "07a9c9056b51f1fe3e7733c6f54ed96662aa7f5a08a961f91fd6d0276df",
+ "05e7600e9fda45bb966fbbb5a9404af961058a128824b6d84d9d47ebdbf"},
+ {NID_sect233k1, NID_sha512,
+ "f86c4433787c3ec3cb1663389ccf53d62f9425274ccef05fd14b1b8fef676208867764eb"
+ "98d16d006ee6ebdc27b8d9a8ddd303d941fdd82b630694cdc698bbe6bd52441190783428"
+ "6c94b24ee199fe6d646064277f244b7df3ea2d9d52a9dc6a33d7c8d6dbc919da0fa987a6"
+ "7621ef0829e48310e0ea2bb86fedcf4effc0b94b",
+ "015e1bdfdacd87c42ed439f3e243abf27fd42e54f3ebdfb47f60dbae5fe",
+ "0400fb7fa51c1a96baab65fc85c3b769ac84ca7b63a1fe9f507a2ee0c49395005d450aed"
+ "449f8f1aeaa9df0131f696c2bcd4528808d2f52b6a73f72811",
+ "070ca3f5dc30c70e576e2d2b30935b05b6e68598eeaafa1bfcb9e156e05",
+ "07e3cdc4207456773aa52b44156801b316a7ac850b3a9e717a9ae7fcdb0",
+ "07ad6de3ba8730ac887f045cae80fe2fb5237a8594e7125c4792d478594"},
+ {NID_sect233k1, NID_sha512,
+ "4117d593aa92e3eae1124ec7482737cd3573fe5f0f2a5051a7ce86946a2abb9e47a0c6ea"
+ "75b262689b0b486476d2ab09a20efc2fb921419b1811b51a2e15891ae9e45a17ab4b96c6"
+ "65c6c423fc00e2d66df5804a164f0f3c958df6f25d7da6829b1fe162a0a8cf130858c83f"
+ "3555d6ad627db70cb41303cc6380f7b3fed2563e",
+ "00e09410548c17bbbf28a68c3963a52d39743a4f1ac28e6dfe7a6ede281",
+ "0401f5f36a21a3b7fc5ea37528566da695922d7d9b7e6800af9c1a00f68242003df4e2ba"
+ "0c8648cb1fa19663f31786b850e6b80068b8c007f41de08608",
+ "03c0a2a4bea270eaf66adfb297c0e3213254cd87b11edcd90cfcd6f3104",
+ "07b684e337d6778f84bdb7a6835e91877b41d6af4b76311258fbb8339d8",
+ "064a0c22057a858b153ecdf4d275cf5523dacafdfcb46423b5613c85691"},
+ {NID_sect233k1, NID_sha512,
+ "882ecaff3ec8f4023df5397167f238869f78a5c499be19aea85c7486e73f66f0e08e71cf"
+ "85f3f1b6f6a70796bf46a18e6b555a0a87c2088640ca73051b3dd59ebfef922be0372208"
+ "fce602d8001681297b285701dbbe24ccb42541b5db4aac1a1c7f407e11c83db15b38cdbc"
+ "25e930fdc6558f64d9503e214571a435d890169b",
+ "049f5bea6e72d98579b78cb07d89f64503f8759dd7a73cd73713c120428",
+ "0400974dcd68cd85117f363812a0473e972c89551e31c74c8d99f1073eaafc00f306c905"
+ "1cf3b84803307beb3dc0d34a9758a4f535100e846462a49053",
+ "022a5564b468e706762e3ff934aa22d9aea0bf2b116b61182c9f7be19fe",
+ "02e050afb84e1b0591fb64d46dd7d4a939552d68bdb4213f16c5d7ec5ec",
+ "063225df0057d5368b2e103eb2181ff5760e6b2a9c13c83da042722c3e4"},
+ {NID_sect233k1, NID_sha512,
+ "99b3b8f876f8359bd6369ce84f9261581c52d744b90261a1427ab9e447e6d833b6b3e89a"
+ "f8dc770f1dd55692d01c8bbc4277a729fddfa7cbdb2ec99133201dde44ac691a77904ca8"
+ "16feb0a1aaacbb9fba85048bc63d73506eb908ecd697caf582747051a3a38ac8930c9a43"
+ "65f407ed94ca7f2d26913c53f4c010c7ed9d7ca4",
+ "005eaa818690d1ca4838f0bc667be5721d178c3869884260fb230277c3b",
+ "0401f7b3b50167cb2ff7482240bade95f2850a02805742e6e29eabf7f9ad3400f8038a8c"
+ "ffa0f798a01e333251996662bc3c0ee56d94c392269b63edb7",
+ "064d518f7b8c87325d8edfd42a52793d87ef8db283606dd676be8584562",
+ "07128123004a515e277dd5b571e31bbc877cc966e27ed5b2ab2c16e881b",
+ "051d70485148996ec30f92097e4a12b5edf804e03e312072336bd912268"},
+ {NID_sect233k1, NID_sha512,
+ "8c1a83023930a85c5b2f9930521b8b8963d5523a3323d87f862a17d3505ccee01246ee10"
+ "29b8b8c2b608772c4096d1e914cb398f027d91184a8e94e4feeae121eabb504a2a35c8bc"
+ "9294edd15ddd979946c14c792ad787dc2d4deffa284830fc90b3f8c0ced6a99fc6de7c41"
+ "b9ed261402a6b3d702ff86a9392731ecc37430c0",
+ "0603d89cd2f741d734587e77554fe6bbb1e5739d5ff73084d4de8ed69c4",
+ "040122f2b7802917e4164ac2f54033621c78cbc7040217e5ded6b9217f95bb01f867df74"
+ "3e73806957066c2ab45c04bf1af158e146a9d1eda9e974e0d4",
+ "076850b8ca9e454bdb320da624c0dc63e14ad279185e4f8c9e49905666c",
+ "04bc63bafd5bad022fe5db246680a0a0ccd0b50ff50482d3849c92eec7e",
+ "07b6d8a8446ddfc64392af0aa1763d45877023c0be9ec78db47efd3c366"},
+ {NID_sect233k1, NID_sha512,
+ "f3c9dedd7115339dd3ede7d8d06a44de66bf80b4888ab7bc386cd40a92789042440a13d2"
+ "cc90dbcacca5feeec1e0e3c51724146e2c4904ed6b05c7b4e9b49d7f458ada695c5d2fc3"
+ "6f1193329b87c1268aa38eda9151430aa0bc004e5d2a61b9390accfc699f2efabfec785e"
+ "b34f52b1beff1e4c5492e922acc348667d2a3986",
+ "07977b3aba53616dac27b4d74930da23966a88ad98f1769674789c0be3d",
+ "0400aa61b4bd2fa9c61914ae306d69d3ade7d6cf621399e5791dda8a054dcd012e8d9274"
+ "d5593f5074c49ca34a7e2d64f9d9ccdf42df6087134b811762",
+ "03b8ee56bebb59207e107bb0c16938cab707e425f38b70f0bc918fc1b8a",
+ "068502a3e5e51f5481aad31eb6614152f4957eef1becfe3a297b023a94c",
+ "07b6b43be63aa79c10876179703b69caf9b03c5401b999a3c5be4737999"},
+ {NID_sect233k1, NID_sha512,
+ "d878c4ee0bd6c84652d7f9e68df7b90cc78776d8d1b60f3e4d7465032bf401f1527ca7bf"
+ "d4a3dd916e13e93fadaa5e5f20c9f47d12f8fc922a9a3aaeeeef294c221ca1adf7df85b8"
+ "88faec8002f17ff202da1be837827619904121167bee2d2cd694a263d9a99062cada3399"
+ "dcbfcb283597a96ebec129c65e0850ec4cb4e2d7",
+ "050cd20e7eabd29008cc977d0a17e1195d79587b8f15ac2447e15daafc0",
+ "04001ff23ff4ea1f30663b17d8f1c67ea37b8c5df7009d0c0301db483803a400ec6bde92"
+ "921b83d4d84be8a67a23e1718e575101b93d9a800550a20e7d",
+ "041ba36d2e810e47c3de583772e9b5908c257b2aec232d855669d4dae2e",
+ "079e96ed1dfc4e31774159ef311805b5f8001203cf37a72921efaf5cbe5",
+ "00b8abcd623b17357f65ac365301a8823365ab948ae3f7fc6a4a0b8ab5d"},
+ {NID_sect233k1, NID_sha512,
+ "ac3c118cc9cbc8eb3b74d8ccc9ecbd81d1996fb25ca43c8a43bffeb244f722b93c9e9692"
+ "41d45d5b81fda0b399f1e3623687190e428dae077e54cad1eff75ec2f7fbb9434bf71683"
+ "3421bc2634885677579c237340f76787b2eb19b446d56c0f2206099b81493349f4db0eca"
+ "d0e2dbe85dbff7d7070abb3d3b12ef0cec828af4",
+ "02dbb24fcaf9f3cd5d50d209937f0e2d134fa20ee3c9c2f1fff3dfbf302",
+ "0400a07240c52e385ecf75525201f9810859123bfd8ce04a5e8f4dc4ec88b2009bd81119"
+ "6ca9ac45b28031b9f65f9a5c4ec497d995f7dec6eb06dd2874",
+ "05785beb1ff70c7bea89b1fa14be09332ef94b09eebcc9fb1150bfe0d55",
+ "05279bb1b1ad8174e88bec4c723d65eda768c1d08d1c64c332a240a284f",
+ "015a90383c2c40ddcf721067b3435915a843f9c4708cc133fd1ee53f442"},
+ {NID_sect233k1, NID_sha512,
+ "700313698cdfdcf0044ca07bf9e5f0702ece7cc66e35decb28d5f8cb7e7e5367a95cc172"
+ "8a90cc9a53a2b5fcd4702028b742538e9b386f5d8b4a2411579ed9553021a95bd00a73f0"
+ "3c4184a6145aaa367e3af76659d677fe7a2e98f9ddf4aa20eb8d1a1db72c3f5590598801"
+ "be7ebf44255fd7376d89d998b7068bd1296fdc38",
+ "0047142197d3d43fa46545b547968680ec81688589d1ec8d7c7e90eb969",
+ "040179450d83cd6dd1609830ec78011143eb64d2d1509ed1adfa085a58d786003ee40673"
+ "ac564c6b5732868d0f8a57727150a23c484228890d768dae54",
+ "064f8892245a198c9c819152edc168e69dc7b562ef1f54dcc1960cc7db1",
+ "0293f2f989fb6b6e7cf304faf3f63eef61ab89a626cf8152e15f38bf93b",
+ "04948643075cea6413b1c88a9bf11aa176611f56d027f2b165d00d46e87"},
+ {NID_sect233k1, NID_sha512,
+ "0374673e1a685bdee55504ce3cd333f70084dd4ae685464a16924eccea34531663fda602"
+ "29166478b30193459a3113253cd6494dc26154156252dc6e822552c7c04d790eb9f8fcef"
+ "2ea8dd79e72f881f7f20fff93cd73ad303c0918ec27c6486c4da61f82bcd55422d16650c"
+ "c68bfd4b0132c1e7075bbf17dad919095860d445",
+ "031352b49ecde5434aac05f898e6ce4337304845d748f114c14319fe97f",
+ "040187ae6bc9167d9c69ce5544ad650055cb9a4e69c1772322d5722e68e7e000042187e9"
+ "d11a921adafc694b5cc8da9226ddad1b65f764274954b17333",
+ "0761189e63fc0c3b5db92b281e5a4bc0d6fdb30bd14f8e69ca85a211bc7",
+ "0453560e6e725a2bfe0383884ba3b3dd0816d8522d9e0762f781f6b6340",
+ "01aaec4bd98c765e4830de6593280779d1222918d4acf08c8fc3d0aa351"},
+ {NID_sect233k1, NID_sha512,
+ "8b237085f135d6e94592f8d855ca397c8c1028236a3b412adefdac888245874f586d0695"
+ "0ee18118f751bfe26f4c31465ec34b578caa44cf1b7109ac4f6eab7f97ff9699b34271df"
+ "035d3bf58a2ed4bcbf7577cf8e5792b1945ebb9389b680baeb8518c8fdc5540e192aa4fd"
+ "e0eed0d7c82be2e362b286f582d65752c8db7038",
+ "0176f124c24e4420f6e726a6ca25f09dfa0c5a37e5bf879e7bdd36c3b65",
+ "040098c37cbd44aac5d5c749524b840fd849652349fb3e02cc8f8fd0a237900151a9a88d"
+ "a407ae41e52b3dad1ea6031c7a36bd834007c0cb1e2c2f2f0f",
+ "022e299985cf289f2fbe2b1b270fbf12ba818cd2b506f642e659cd541bf",
+ "0686ac0c09f90a077cb446c910e07fdf23e845487d0333efc65b9b84147",
+ "01688b18cb42082bea69f18511b0fd9fa35da83d738763cf13ef92a119b"},
+ {NID_sect233k1, NID_sha512,
+ "e3a086ec15574f7017b3cd5f5a47ab7a73980f11074333490dfe9f8ad8926f9ea7c82271"
+ "aaa74e77133b1025b0b22a6900fbb71251bb6549341a23d194e79d03462cdad52ee0d1b6"
+ "f5d0d14e1136026961fa3467ccf0864bf7ae3fcc3b68cb35df7324bd9bbe58fc8aa9f63c"
+ "19feedf19d935b71bf5981c74fb2a487f84e453c",
+ "0755c48c3dbaf71042c58cb137f3632e3cf9d90b7b9a58fd378feef3d19",
+ "0400bd9a720553afbfc5349e4a65a21fed0444c30304f7018ec1ff6fc8d1f90109a1d6b9"
+ "cc4fbd0e888d0a2b6883fd06a5da347c0d4f7882fd29eabcf0",
+ "04fedf8785c6648798748504b1c9b6a066ab6606bc9a69534f93e908f4f",
+ "001e71744a1b683858444da0d270f43b0d5644424f2b38ef48a639685b3",
+ "07ff8199ffe723abacf1947a828e8596dc49ce655319087e4aca6ca34ee"},
+ {NID_sect283k1, NID_sha224,
+ "ef90f85fbda05e693006e4c64e1dac56223becaf0890f73b5274e6e289a5a1de2c141b82"
+ "5c24d595b3fd18ca855b5c1aa60dac6b5356275b11be670692cdbe5f282f93ac7b2e410a"
+ "96cb9e9f80defcde98f3449f99e192bfd62040421a0ab8f99acb85369f25e5efbf81439e"
+ "fa8a5e1d9cf781355a0f47b037b09fe4086389a0",
+ "1e846c830a8ec04e8572d1a9d2df044ab47352fb346f67403a3bf87243871b164511c53",
+ "04012e43e20941f2641154bb66a56f2e0428a7ad22d607fb8af658df0b382bedc7d5ae22"
+ "cc022f226cd65052071066963b112aa302973fe2b5fdd7bb827d13da7634dd2fb9e3852d"
+ "db",
+ "03a76f87ede2b5d40a0f10e15e90e29198fc3a03943efea39ddf7afc37ed4e18832af8b",
+ "1be2c776c707098438fbd0561de578e4b9449f955a25626f2fbea257fc578ffa1bbbb70",
+ "1aeef69983da1a535b10a47e66d890c4413c7a8cd6a2511a1a670a4c573d4808f46e23a"},
+ {NID_sect283k1, NID_sha224,
+ "a3ebc17c867cc9c7c28797f6364f6574b80c7ec5b2d8e1542a6f5db8568c15032f92cfbc"
+ "eefa3fe4ee654f690b0455ee5d38dd84bb8665ffc1ff8c849bdbc4aa0ddfdbbca4eb3797"
+ "2fcbcee8cecc1aae21ec736ef61781716b60247b7551ec4e552d0b59a53cec5964c67cf7"
+ "988787cedf769eabcc9cd5243f58034d96f0e43d",
+ "101c5ed48231a56ca0ea85eb45de0e395e6df2efd4987a226ae36489dd8b2dfbf7c465c",
+ "0407011260f504d809baefb54af48c890f94fa5984c8bf228baa4b6ea14d46372390d1a8"
+ "ac02bbfabb680659aa2611435c4058ed773467a41cdda8250f3490e4f491f1bbae452c5c"
+ "36",
+ "12a3c7f0b3d64614ff97133873d75c7c1406e316e8cf60d22139dba462055baffe6c8f5",
+ "0a9933496d60716a39e1c3f3bf22a7da546eafebef80dc6f25d0c109ecbc430fdb3e80a",
+ "0be56197a0098b022a7914c10f40207da58403d6c7d04edaf7efc96de740cd71f67e0de"},
+ {NID_sect283k1, NID_sha224,
+ "60269efa4d0ffafbbc655f6f00578eadce7fc0a7eb7db923dca49b6f2bf3e13f7f829cc6"
+ "133e022c3c92143c075ab9ced0531a91e6e79848194ab98bb852f40c84e7aebe71fb8bc0"
+ "fd1f97ed5bb6bad6783d8dc048df42738e841d978456e055e1b8a781dfecfce2218701c7"
+ "af77e7894ccac5bfff360aab0b6136b978bc39c4",
+ "019679dc589440b11f82b3716e5b2a2bd42c3b1c83e88a28e304cf5148877faf760b4de",
+ "040743ae04e4b07d154ca0749a011c97a31ac68d8e1da3491f331136873598896e5320dd"
+ "cf0776c05891c27fd912267ac166bc9acbaecbf80ccdd887aded2d7b8c2a4a5d139833aa"
+ "d3",
+ "099ad7fba5284e406f6cf200a39e398aa0426448c09b95e691f653d6096a63adbd39965",
+ "0285a82340d9a6d96ed9ad0fd0916216fd20edf979df41a55835ef8fafa00d242ef6f11",
+ "0a8548b405c171d2a428507f7adda4944bade7cda6dc580b1d3f94e15d7e10f0a08e008"},
+ {NID_sect283k1, NID_sha224,
+ "59d704d5b1f3a0605f1497f22f71b8f45b26138bc86371f00a4517554e7f6e7fa5d35189"
+ "fc656ce68bd2cb8510fa3e3c3df815dfdd749b2b6ac997d443f3954c7a927e138b579801"
+ "ffd035cea90840733e7884ccfe43d8d3a4a26b430673274aae312abe4ac1e1d7c67b7358"
+ "0fedf2d8de46572493c9205ebf0e8b4d75ccc88c",
+ "1703c21fb1e09f8947e12fddf166fda6f685221fbd803d75a0ae377a54a1e494e6c5e7b",
+ "040767564e13ae544dab22c3763c5d330a5571e07ff8f2f5ba3fd729379709b1fb184f99"
+ "0c027f9e5efbd1ff6ac53a6174670eb463b12f70a603354e25c577ea292b13b8e5f022ac"
+ "9c",
+ "10d875acb4d0dc211a82e78c0249e74de16768003b53830bf5648cf911fef6a57f8f048",
+ "02af92243b9dadcf21561ce32ca0744810478f8d5be8e0f83d9632ecd8e86ff467268b6",
+ "1f6c50fb3bdea228a6b623be9e2ea2c371dcfeb0e604ef1029b6766c43b193d86c02f27"},
+ {NID_sect283k1, NID_sha224,
+ "12c8fdba3bc5f68e13f7ff8e7bee876fa68a970afc6924314dae0c2482763ced8d4752ce"
+ "c29ea288d350acd8a06c69289ae41ad345a1b88bcccaac903f2bff39015c289a8ad60860"
+ "6bfd65270a7bcdb5fb10c89bbc2d16dcb91fc9735d66103f6b1f3575622cf4d820929031"
+ "5b033ee1f79968939410f465a2d37add46af2d59",
+ "071de8eb14cbfb88e61b908990ce08b81e624ef4f2cd9cdf3dd7ca9097d5ffed9ae9a71",
+ "040136d50e1aa8203a0cd2c2d545b81d00b95c6b43b74b1fba3a6402abf756d38087affd"
+ "49046bec77240de7bde85ca4345f27c6df341c72a4eccd2cd495e86376c183ccb34f271c"
+ "d6",
+ "1d80734927505d8d4818b3bdf1aa2e5c557e5f717a5b3fb856ca9a2161bfd74a130ee38",
+ "07894bf10885a698899b118f57e7da22222e3d187a0aabfb99fac0ce0e134b6b44a5f90",
+ "07b4a87592004d6ef8345415064b4b4672db2943c7e6098a9e6d59ee3324847e753703e"},
+ {NID_sect283k1, NID_sha224,
+ "26013a3ddf687bb2f37d9700923906f118d5cba5d8ed5113a0e3e84cff00918125108f74"
+ "f4b243e351aa5d07fa7c6ece29f5700f23e50286447883d2a058c3258a12e4ed8770cabe"
+ "627ebea7ef6e8c77811ed7d9a19c53287093e39226236587ddbc63b7ad5e7ad9895c64d1"
+ "d03ee432d45a067afe27d4cca920ae88a7a68db1",
+ "1d156eb15762ed00c4021884adbfc2426e910b18a5bc474268196f4b74e593a8f38702b",
+ "0400a99b45860615d7caab2f4e9bc01196a61f52f95c6c7fef615a4746d48553692d5fcf"
+ "13056f81a0088dec1382f8a3a863901d3443c8792cd13ce13a8f63b02d107b66d9d23bc4"
+ "92",
+ "1999524ce9525d85b562fd13634fd9ac50fb76d83b9d72d6976d6fbc47af7e1f354eee7",
+ "067748d49389c9b87a85b518f84f41b18f52569ba531985b8fe5e1f0cf9cffa958da3f0",
+ "00c44a583c704f69160c6258332f3121b022759b163c74c7c96058fa8e3a9928afee948"},
+ {NID_sect283k1, NID_sha224,
+ "c4dbf70b9a2165e7279122460d05ceb8e43e03fbe2ae7c314007fe2b1d8567cac727a10f"
+ "ba5cbead0ddb167d387da8e8f3d6bc0ad851cc32885809d07a776fd4a95a979fe3833610"
+ "af89df0f454d9edfabe12495a118fe83add5eabb2acf54ba7ba7c4be20fc77478c0a0f07"
+ "26c4e60317422a612a234a7567648603b63f1c12",
+ "17d6eb1219cab8577168be86b61f372b27ca70fb1f1a767947895c185344e966db17aea",
+ "04065d8e43a290a6957230501509b95a208a6c37ddcacd1e882d97c73c38b2a256caef5e"
+ "8b002169cefa6ce170ce20a0b5463f5bd146224e0813acff304307da88830b0777b86cd3"
+ "d2",
+ "1519e37a66b4e665b2e3e59b8e836869a886c879aa1ed47901a6c8a8f365efbc67fb410",
+ "1734a8bc9a13f51d921a297bc6b2d38610c20b32b0adfd5efdd01a4db5084f3b0697904",
+ "0f9f00b25a33b166f09e2a819dfda80d87f6a2419a7b4162e435ee02c0fc10a669df6d4"},
+ {NID_sect283k1, NID_sha224,
+ "b1d53b6af1face9b59af11c726b0099111d1adb3666209ba46b1744a528ed0f72be5a1b8"
+ "2423153b896384faebef0362343e2a4599803c08b8513708938aa8a498145fca1c63ba41"
+ "aff06d1a18aa2a045fce7fcd7e5552a2b98d0df97b6876f06a9cf52a7a40fb737996adda"
+ "97c3cedf7fe421235ac6951060eba9c0377e72a2",
+ "10ede9be6615b3b2a294d67da78127ffbf3a15bdba6f4fd78be7a60415b5d1a097c0cff",
+ "0406418eac385ce94c1982c216ffeb0b26f9c061ccdfd785ded75efc6a329385898331fd"
+ "a307d41f9cf1248a37fb8baea7f3545bbca707a903966019ad56e4dc810b6863e243968b"
+ "48",
+ "134ac4de6ed71106d11fa736960eef2873223aa87b1c5bf5c823de6c78092cba4726ec8",
+ "12a37587ddf224faaf8dab61210310792d4ccef650c98155a227bf468b7f323575115cd",
+ "10982c965331cf8529ef6adfe17dc3fde63dc2a557cab451d7c9408a089229e22b73d43"},
+ {NID_sect283k1, NID_sha224,
+ "e78f538b1ac21602b00a09e3db243ef4803b447329c94a1476cd91a88ff790da71421b60"
+ "092c8a6e55327c7982e7655eb1fd6e40fa9b9fd2f10107dfc585994dfc5bc2143d18794a"
+ "39f7f69ae679b27dd11ed22040d5e93aa83f71783525a4db0c3fd7b43e57dafd0033d531"
+ "7680df19c2ecaadcb37ef896c61a758a5e455206",
+ "14f237cface123b64e8578ff33f86bfd2a8181b9c81f36b9ca31e2a446f0d91dbbe2249",
+ "0407aa347c03d8845f1566bbc3fa1d66ecb41ed1dab0a402405d8300591a1f3078f9fa53"
+ "2c063bd10274437c2690ed6df60ea632f3d4faefcc07a72ae8d85c2f999bafd373053265"
+ "dd",
+ "0570bf3b42aa44c11603d94e14b524b8cb1363306196924082ae71021707c3138503031",
+ "10f7f4af1c1e3f9e8e0c95f991c348bce6725f60aa12ee7b398be64728242088a469a58",
+ "17145a39fa4dd237e31a98daf3974138638b9462a31b87ada3eade6bf7f597195eb28b6"},
+ {NID_sect283k1, NID_sha224,
+ "8a6ca8ec436d2c706fcbec6486b5665b21c174edee7ebe108211c388b1219a8224179f74"
+ "38e0bb7d6e41ac4a67337b52d4cd9a069fe6c88960ae20be29c8060efd7c62cb7a9a3713"
+ "6a250e68f253e7f27755df53ce7c570135641ad49b43507e5483e17b919cedffdc0d4913"
+ "b1d5e0ca0629876c0a551841a0fc2090d2857cce",
+ "08dbecb26587cb2ed7df2404e680fcfa5bf8cf6a58e87a350a1600211b3c844ca86daa5",
+ "04066610ce348821a77e8a6eb74a675ad9312b2622ad2e1e6d8dcd0be8b27d8384844a72"
+ "340014c15776bbd144c0c24bf419237db9401fb7f97a7c4c0ef50a9afd27c3964088f796"
+ "43",
+ "0204586a9314bc14bef8ccce8b9ca3874572b375d01c6b4a41c743c16502a27e91a9fb4",
+ "0fabfeb17bb8c1a57af7af81d99cfb7b0ecbf4e5e4a6ed483aee4be8ee4c70c2ef23941",
+ "08071e162dfeb068e3cad256c3603e07ae48b35f1bafdb726cf4ce32844e1a2181f23f9"},
+ {NID_sect283k1, NID_sha224,
+ "95bee02b423d2c6e60252da4632f693a2d8f6597b4f9c6e356f670c3a9e4e80063e92fac"
+ "b6421d0325b99dc150464ed2ec1d0bac72a042b35d56d33d2fda686a75d582d475652221"
+ "8b4ddd25ed45503d90d3d185cba6cf0ac211b22aa4e1318a8316c369186f7130446dafad"
+ "64f7966f5414f43af37a87127534060a23c6165f",
+ "191badec2d28cbbe62c072c6b57eb5d4644d0c0b3283951bb66096cd15edd43a1bbde53",
+ "040020224b00428031056ed370147c51e68ffc02e7fe269ca15b22310a2974d383c6c83f"
+ "cc01686568fc4768158e75b4ef0427d8e262cd0638801ab158311749e0f432d5b69a667f"
+ "0d",
+ "03b1b6ca5e627f00176b599b68fe54e1b5a272c323a06b55e4871875c0e729c4c79326a",
+ "1ade251b9360a6ca1b48c2fce0768a01193a415bd23956fee1e5c4c5076b3571abae082",
+ "0adff25020af4e2b4908a33ce1d75c793934921267b6c4a0542924300fce40fc0031021"},
+ {NID_sect283k1, NID_sha224,
+ "ccd7f7c0e04d1ef9a3c5617d77480bc624beed6582bc28e9e3a369b12144fcd96b735ee4"
+ "1713f4173b64b28c6102d82dcfc7876e06e76fc497d1d238bf6d85bb5feca630bbd0c0f0"
+ "fa7c0c72e28e9259087698973ac66244bc6e69c04deb22eaeaee7b20da239ab6333576f0"
+ "1349c76f594498620933b8969450ac2bae66db8b",
+ "0ff5e3d66eb57fd35ba4472effd6e7a016ca461e39000a7125e99080f6ab6ef4380dd7a",
+ "04019d8c1d9aca39de0e627981d21e35a628c35fd4096aaa86f61625fcd078f0400f615c"
+ "d5052ba2854ccd64407f6779c5e259917b251c9e34ec0d95c05488f30802b82cf4b25b53"
+ "89",
+ "16c9cabed653c57676ee46c8912cbc507b246078834f1667d0708e4c666346299c1fc03",
+ "12ac0ec9501ac91a2b57220e9c00ec6e815399ede94a658c36f9e89bbf1674316d65dc4",
+ "0c9480160c4e9db4e82b4ad26cb79e083e9e2056e68a2ea554aca45802bbb188389bc4f"},
+ {NID_sect283k1, NID_sha224,
+ "65e9124a2606c8784c9489add2999f4cbe6186395df20838d653b263a207ec46995d2685"
+ "b55d1874e7ef05a6a3bb5b60a7be6751ad568cef1bcea2debfc494d1e2ece0dc8028c88f"
+ "1b2c6e4ee26b639c5e81f6448bd25b73ec4608a8e8cf4e0155c29b6f0a62781493b03bb7"
+ "384c9808529d5f87da6564ae196a365bd282f46f",
+ "1f3591eec4a8a3fe6ae6debe230d238a6b73cf3791cb735add1abee64239bb100f15166",
+ "040483e7e2b8f7ff95b86008c3042ab83a4b6a48f15ce1cedbaf3b586b56ab606e6f23a4"
+ "ef0287cbc8c609426f1665976e8120afb8de96b43978762ed44bea5aa1418b9af6922c60"
+ "66",
+ "08165da5f5427b38c447382c8dd0940c3bddf8f048185e6cad260031f7c0a2ffb83027e",
+ "09034633dbd735cec6208bb6f4455b295b7d730c9301bbd1c0e9f101399f2b3425a13fd",
+ "0204ec149b416ca3467e92194449cf2ca0f41ca1fde79145f3af856085b298149a3253b"},
+ {NID_sect283k1, NID_sha224,
+ "e793c60fc725fd537d5fd38e9b4fb52e268722ae6bde5a058de8d20db301f5e8d8e1ad85"
+ "532198835a04b76f27ca3c972be5617a55677cffa8219eb64fe53ced242efe1b88999097"
+ "9227dbaaa15ed39d3b6be8c5a3237ebe12bd96f333d947f80048463d3859e34f865d83fa"
+ "f03894c2243a06cc96788ed952e606c2d8948271",
+ "05af03cdb45961e7ff35fb0146904ddd6c2bfd3cce814073d3aa56eaa9f13b4f7423926",
+ "04070bf676b9b0db558eeb8bb94a1248bcb599d1e8975ee13cd37dcb78af19307d1b7e57"
+ "d506ed9bf30c627062b99ff9d05ca03441b6194c34364cbe7b73b46ec9716ad8a9970cbc"
+ "99",
+ "192c7b1fa8f221edecbeaa51447818474dd9fc89e962e8e87400938ef0dff432a6c4b86",
+ "1df1a4f9578e9cae8102aab5eac70eddbabe4ced99b5bab1b1dee59c41b81e392968c14",
+ "0f2b1319335ee497fe3ebf1891a71cded59704365774e1ed9950f79100e70950783bc7c"},
+ {NID_sect283k1, NID_sha224,
+ "a57682d21cebb48190199e9f57493696eae3a59acd22f64d5ef4729decf6c2615b326817"
+ "a6bc118bb7234bebfc7276dd998838c009a7348e46431574638dadc48538d6048d572e50"
+ "d9c5974d2049ebe1837dd857bcd1447b1514b62808a4e7a88162ae1bb08a0f6d3db6f258"
+ "74c6cd0cd4ca6333f1bd57bd192ef67e4616d182",
+ "1ec9710ada06e6270720692a06d488ae2ba863b905dd2fc323e7ce68dedacb35fc8c7d8",
+ "0405cda72b5b068f70b3c431def41b8ca1d4381e8c2fdf0821cfc17eceadf5e3eabf7987"
+ "b7079ae508354fe31899cda71e01cbc80e5192d24f1f13c954208d2ab8412802407ae376"
+ "3f",
+ "04f7b9372a8fed536396f0b87d4b20494786bdb8db77200c1aac1896486a05d3c940cb5",
+ "072ecde2a8f506f0fef273c8915a9edc29e440d48fc6cefb50e7117492fb4a13e123bed",
+ "0010dbd6229d770c468f5d8bd20edd6928bd8824b7fc2b10dc45fbd3242191e7557b984"},
+ {NID_sect283k1, NID_sha256,
+ "f646e7334e191c2bf0056d3bfd23f03ef7f0777b923f962519a8399d311b8f68414c689c"
+ "a34b96871fae99eb7ea534fcd83e788e56eeef817cbfe33677283c736b99bf6a626f9515"
+ "291e842bf99f694e4e8aa7c9911c591a87d5f112b3d96b064594e2b368e6d1bf1a1cd343"
+ "d54916a66da22c26355266aa2884120fffb8b94d",
+ "0668de088c6913640fbefbe6d2c44ab26e481802dbf957044a4957c3c5d0a0fde331501",
+ "0400d3a50cb9d347cfe45d2a313813fec8b928a9b1defca6ff4b89c4787717f275c6b733"
+ "7f0762e47b0669f625c39c74d50e2b46875ef366b7c3b005c16ede69a2fba161faf6b3d0"
+ "db",
+ "0b24bf54795fa02eb9527f21ead5497a6db2bcc7849a16d206239f830df313dfb7a2716",
+ "0852d8b6fe93b0b36af5d99530eed08669eb9a25972fbea59f32dafe88b722bada98ab5",
+ "0e5b08d410f2252f724dfcecaedb37b92a6c09cde646ff6237007f4199068f945ebebe2"},
+ {NID_sect283k1, NID_sha256,
+ "a2d7e69ea381d3edfde4664c56c4cb140d01cc4425df757975cedc995b89640dc016ab41"
+ "9b137ff25a6a6d64a309b23890439d2ba157262393cf93d15ca1b1ffd19373ef12367f88"
+ "98aaf56d5544c2f019a4854f69b3d8d320e03135bb7b675e588a5c3fe4b703938fa0f964"
+ "916501297cee2fd04af767155c7739419f9dbb7b",
+ "0e6af57cf47de1e6f07041eb5e1a413fb7ddd82f8c7f7ce957eb28a118004930bec4dbd",
+ "04021e31c4e4d412a261e40483b9106bbc1b0d7e7414e53d7b9fd84175229c8cefbbf6de"
+ "fc046ff2dc601dd407883af7dc71a6ef4286cd3b1b6ccee4fd861865bff8fb38ad51b63d"
+ "49",
+ "08f9e2113d0b223c04e678e8ebdd3aab4816681a9ef08b18a38afecc57d79c971421469",
+ "0d2c9113a18bd51008fd327a55c214c9584b6f1b816cf3b95e7346080da2cb07dcef8aa",
+ "19167051872759c36ba9eeb5d620cafd3289e8b7660fc847ff385b5143b3aca38780639"},
+ {NID_sect283k1, NID_sha256,
+ "7088f60e9375ec6a42f705f851fc76cc833c4dcbb3352adcce9f59197c1b7121e7aa661c"
+ "4f8ad9f4ef280af3a2981e90c01291f7d1cf7d3ae2d96b37fe6975e11b7c6c02b8ef044d"
+ "1470b1a26b9c72e8c4e7b1dd83c8acc9542e2fc7d211b87841dcceea2ab8128d0ff7bb62"
+ "2b60faa4a89ea7008f7d55f8f9de675bc4596fd8",
+ "19f9b63fde8c6aa6177f2a38981505d04f8ac62bcc21007b05615d028cfe851ab9cbbc6",
+ "0405a3e567b227869f948180547c2713703c90698dc04864140d22b24bdf81b3996829ac"
+ "a505b2ba535040afed0bf6f9d850713e54013729bc6dcbaa336ebbfb9c461f7ac61af480"
+ "01",
+ "051e20545a0a98dc3fec59e4ebdf101c6aa2768f344c1e19424c1eaae4aaf7ffeb5205f",
+ "05fb3329f63587e8febcdec49f92de88366a9f75d0b9a0f374dadc6e7a62b833753e990",
+ "12edfabf1ce434c850b58804f1f31f8afb20fbb36ee69b68668e231e4c04fa75e658478"},
+ {NID_sect283k1, NID_sha256,
+ "ffd6044ab991849939e8a29184b4d0ac3e07acb63c7e6b886df9e8254073fa800d5910b9"
+ "fe34fceb547565a2344eed4de394ce2251ed51ec882ee9207eb7340464c742d9d140fa09"
+ "64f6bcb1efcc2d13919af4f727953de41b20728ab975c1ae0ce784865f23ed1325c68daa"
+ "95ed5c932893610179be94f13b9a4149f09833b3",
+ "17704c1f436beb52f7ec97192e23e206ec09f9e8986e06bef71467c192bad6f0066b3c2",
+ "040329294a36ceae2b2c56bb6e21e52ec32af11aca9ab7785be9c2d79652e7960c0cf7a8"
+ "ae0658a89a48fb95cb7028252fa9792d91b989d7cef3fda8ba9c8e4ffaf19269f2a69f0a"
+ "24",
+ "0aa8d2e210ae40ba1f9f051ad85d37f7cdea43aad890ef802519cc5773e9a0984fe5d6b",
+ "1908e3a2740fa04ec0b23c964c4c3cca51c4603e7553461dd02f8319a7ca2ca09d0aef5",
+ "12d7860d7b438df4653fe40fb9e986cb035b1384464e061bc4ee3bb29aec74d16b0a694"},
+ {NID_sect283k1, NID_sha256,
+ "c9f81c9ff7d80011fd41f2de97a6c1e6a22cc2da7b2b9e4c50e1354c3e139b44529ac786"
+ "ce795fc501dcbf11a935d4728a7bba44b4e86b5e5990fed4d3e24fa5ab6f303e1842918f"
+ "156e00dccebed6897c852207ae5941c630014a41696882066c2b296d39cd8658cb5830ee"
+ "e78e29a00335a99a0ba90722ceca5a2e9a99a2c6",
+ "0c7d1ac8faa689698f5c6325a3b3f35e7730bdbddabd0693f2bfdc5c838bd62f84508d4",
+ "040095a930071ce56f28a79a66b751283c756c4f2566ebc2a10770ca60cced6914bc9a0d"
+ "77046f70021e7a949c7f55b059d4c8e81ee23b13809a35932d83b8398fc8684c5a90f3ec"
+ "71",
+ "038ae832c25dcd30c1ee3f5fbe84bd8779c876c0641907695aa598132b0e581ea528332",
+ "0eb27c86d3ca86ef53aef0465d257e6b681f891a6357cfbf51260dc6e35a82799de0e97",
+ "0e8207959e8be94e7407543df80d38d9e662106ed68e1456dd1826602c5b73f27ddc901"},
+ {NID_sect283k1, NID_sha256,
+ "a60de761eb32490184dc1d29e21fa33889295ca587b994746874c7289eb9c83e9c7bacbb"
+ "4066c761a06b65ecd78d701bd41f305cd7eb258c630f3febfbb0a367ad16737b146fd793"
+ "dab23562e8001cd113135b1c981d1ca23eb3be0fe3e24fe3fe1089caf9fd8f4f0d1f90dc"
+ "c7dbea4a9e2357793b65daf342b8e6d109c6dd10",
+ "1a173d158866db0ec665ee632b5fc397893f6a44ee17c348e7452800aadd8ce676e7fdc",
+ "0406a9369a93e0b5165ac6e692db035495c5cdd6df243d9756098385ad616374ac1e1efe"
+ "e2032f72a02c36954cd8221126e4eaec02668f454214e4508cf72b6d945e14d9b7c5d404"
+ "c8",
+ "0200713a78f58c755db4897f9b7e52057a087816a07fc388d66d34ea9e0bcf2f47e182a",
+ "11a26ee24610e705a42329f86aaa80d78934b4bbf19314f06eec46067d85c8377e04d91",
+ "077e35add124574e98e0056bbb106cd28ba8c3bc0c47063ceebbbf2684983a2a0061950"},
+ {NID_sect283k1, NID_sha256,
+ "2cd0320cc73120ef13e83c8144b270c9a1f2049a9250ef7ee83ccc7584025140a51e2227"
+ "a5ebb824deff55b3affcda63ecb1fd3f337c67c08054dc82fdace0c4bb9cef1bea9dd792"
+ "635f655363d05903cd6b5ed50ee669bcd8157509366cd85aa40d19593265da26e5641590"
+ "ccf04672a6df52badd4b99964a8643d9687b499d",
+ "05523cfacf4ed3b74ebc30f608292e45173001d80cc801f729c5f71fc213b243f041ad5",
+ "040410751ae7d8bb2295f584ba3d55eda41a80b8520b02bb4e5ca669a1003d6f2829e0a0"
+ "1e05fe16244f76f0c8b24bd3ca3b53c697097e3ab0e2b44962ea534a655d6c7d80b857c2"
+ "1e",
+ "0a634f4cef0ba37c9ab211c57fe6574c67933280c91c8b175fa4164755bcde867fe1772",
+ "0b9f6946a578ee38433e98478a4c31b67e838939cbf128f023090c4848471482fd1dec7",
+ "157159e15a2d16da2e913c5ef00833a8e5513ee4e7d6cdc849fd822c59886d0ca3695ec"},
+ {NID_sect283k1, NID_sha256,
+ "a743d8337bdefc4753f937e869a36439da1f8c75e1278c3f6a4a969d93787dac93293818"
+ "b1cbef5b8636e1a6cb3acaac1e15dbe0841c8001512b689292f3f4805997ae26ff52f7fe"
+ "1842512a020c448ed01af2a061f3638689446ed5f6bed9fc70726ce4104bc11142de6387"
+ "3fa7039830223e8f152996388417c48e0c1fa81b",
+ "09f6bd008c04b8823ccc3ee7d5aca535c211f35e9d9e7cfaec518b98647fbe6d28283de",
+ "04070019957dac0e9be0fce6abdfc00ca737096ba2d2bea9ba570acab6d73eae2132d7eb"
+ "060559545f82741ddd1cbb9dab0cd06454fda8abbd9d1eca752e57ec05498b14e4189f1b"
+ "9e",
+ "0fe407c226fb15bc63d37cc9840a1a1fb0ac4fc2939fbbcb6e1236831379d367669ffd9",
+ "0e96e301bf1193dfdd2815597e016e0a282d6e8f9d1d67a7f7e7d05288594f1ea92584e",
+ "07488687f13c3a2b9ae90536db7868f2bde1529ccdc0c84eb85c53ea979228d1fda7c94"},
+ {NID_sect283k1, NID_sha256,
+ "6a7a3ad614a3a09d2dc5a80204815d0c6471057acc0fa73f3cbbf1801902c3e1cba3c113"
+ "4a79a8ce61994a94a5afa85ae1a44b2cdcf5153f8625713c872da36aba0afcc5c2f26636"
+ "dc3f60e04c256a5b023e20e2e7a3f7305bd5b3033fcf05368589f19021f8c9096a886799"
+ "04b657bbe5b9bee67d6e53d176fce1de9e54c64b",
+ "150d2812505c82584201e93f6e0cb875d29dc7bd99d9c0f98e0ed20128886e67e1f1071",
+ "04012c7750172bea15487a05580891aed51bf81548f4b65c51c6c54b990bae8857a20115"
+ "b003db9e7a17dc8b24ff080d80842f0488f17f7d43a40ce6ffad52c65f5a875b4b33efe3"
+ "fd",
+ "0c5c52dfb50b210ae13c2f664d958b2491bfa91ced638f925941234bcc4d66de1eeeb73",
+ "03887a270eeb515a59a7387d8acbb4e72dcdf13f317a6a93ace5cc98d69a79c64a9e7ea",
+ "0e922b2d021cd71e213bdb36ce3ebf56a34617d4dcca30fc05f238a1c097e38d7cbcf91"},
+ {NID_sect283k1, NID_sha256,
+ "65bcd77a3ab345cc99b9c1300755288102a6ccf140bc7d1ad25df246ef01fd57a8614b35"
+ "2033b88cc6ffffe5b38b99ecf03baa365ab5529d6751a3c020d0198561969aade0909143"
+ "4d84ffe13b46df043d0a61e20a08e9c32b646771fea1b29e202d40aae1c7079873c3af49"
+ "4ecf6ef5eda855736c9338b4a5c29a086a8266fa",
+ "1b3fb9e1ff70f94bc9d7742ea535ca982215af3df381b5ebdf1db40c7c849a7978ceb98",
+ "040769a897a443c41ae7a8c1e45290ef39c40887ab8f4aa3f9ee8f3096921222ed7de457"
+ "39072621bfa30973da61fb6d363d66db25daf818ce79dd3268ac0520fc99ca7917fa3a23"
+ "60",
+ "03fa84ee38587f9c848b65b07c47551e27f15e7a87ed0ab705c99c8b7a4ee9e86a8e4ea",
+ "11b214ebe67eda2bd6e84c33be05c4373d2536e2cccf152e56b1569cc96d261e50910cd",
+ "0e100646cbffa016664bb57c1a67108645238573867c0b595c46e6053f844e5482a993a"},
+ {NID_sect283k1, NID_sha256,
+ "ed1acc360d02ee6c36bbc223d91bc1d2009a3e8f8dfc4c3796cd8555b0d2b46716f4c805"
+ "8bf34c2d4954e098274ab9c2cbacff46a0578a14e77fe104196cbc6d2753e3bb5422b8b7"
+ "9fd004ac0aa920eea94925c016ece16ed4dea916fd92563ec65692a61b28ee84bef00071"
+ "20bb1e31bb75b8ecf68406a71af9a18b4edf5320",
+ "147fa46fccf0805d14c1b84ea59bb8b8283d54ca0ceefb29b5585e7141340c55b7232f7",
+ "0404ace4c65ce07fe5ec22c560bc553bd791434a691c2d865c52b5e38d541ef191ef4190"
+ "67076250c829de137b6549d22a12f196629d9d34cdd83758e5daf45fae41872c9b15190c"
+ "e5",
+ "18c4f89cc022236a0da6105f19c6661a8325d36fa285e3ca71c1a4af3dccb016cac186a",
+ "0271b421fd572de8a71d1b18ad2325bc0fb58cabaabacc1f015ee6b14bec49762f1f8ce",
+ "12e679010ccb143b7de0c3f6c82cf99a961a4f154be6c87abb111cde2d721d864d7a1bf"},
+ {NID_sect283k1, NID_sha256,
+ "2debdb95a21d72b69c545988727366a42b819ca6398a82129c5e3772aea93fac0aae9a27"
+ "b11969ff0ffb9dc0301132ca2452cd863316cf24ae7696422d4dc68e37316161abc146e8"
+ "6f04b72d9a27a350d8545cca245b2be43c33bb822dd813d13e08a718f784845df8a4ef49"
+ "b02529871ec76bb3fc1ba31089359f2ede73e767",
+ "0fae097ea56b35a517be5480802f450eb832b244558d0cc922cd4a5b40b84d02ef11216",
+ "0404f6bda2dcb9560174ffa54f13fa5edf17bebd41399a1dce1fe13e82a2b487eddfe25a"
+ "19076dd375f2c5f24c342a8e2491271cebf5b97ac666aacecc8d693a85ebd2a93eaccd40"
+ "59",
+ "05e3a67091b9e10c7fd20fd70d51162e5d78555059802d0c3b133f49b89f37be6a119ad",
+ "0ddf93ef8797571af3cc9a66660c569445a2b5384f95a12d680c570694bce49bf2264cf",
+ "02f50d68bda006b88798d87c232f5ed1796c841074f063da03a471e0c00f08b10f410b3"},
+ {NID_sect283k1, NID_sha256,
+ "e4e0c6c8fc01244abf81e139c961b6a6e2d95de5dff1083e8a48b40e3e5b9ed909152c92"
+ "b1cf2263179629cdf76ae553b58bb2e9223ce4f9ffb5f170f5f0c5ec97294c34a7529a89"
+ "7e9397f71198cbcd68bb4055cb8cd6b690290761b3b73303f82788379df145358afe28f2"
+ "997d191d968929b7a4b9a0f6228797dfaa17c613",
+ "026cd72e6ae19b3f4c53493fba1e8082a8df1fb7da6dc111b47a41f713f49b33f618d0c",
+ "0401c411f5e298c9b61023fb26765cf4132cc78ed77c07c3e815fd43032cdf0ae8b8920f"
+ "96035647b4c0807b287014043560d70c9b14651cddff4bdf6d44ead5e87720294ff89544"
+ "06",
+ "10e9bc449e8480474afffd20b8acd6dd08344981c4a6cc789c5338ad7e486c526d6c4fa",
+ "0e81594f1064e018aa3504bac75946d77f9e745673043417a47c0c82488e224cc4104d7",
+ "111bf8635b1bc3f6cb7f9b685077b38d67160d143ede2bd8b6ae93327d7f55c5317f00f"},
+ {NID_sect283k1, NID_sha256,
+ "04710947b7c90855ba4e59107b919d4a1df22b503c5c4c33b286b6b08e451e6fbef8ba40"
+ "852f9f0ee62c9217abe6156bed46ad6f0e25f70f528f3a73d099338c578bebd6879d810e"
+ "6e173c2b0af1f7caacb3531ff0e6a7856e4c84db355d110febdb21c683223eb5990ef203"
+ "8d462ddb7962bc0feea5f850954943d53041f66a",
+ "198e13c7d95bbbb6e226688719639bda988867764ffa9b029018b5547850daecf58fe1f",
+ "04030b511d719217c485866273ffe2996a19e0a670b7a3fb077944a21f63ca2f22fe5a52"
+ "4a03a4d9a808e8d77c9dfcec6d033139fc33e67d7c8dfd7329c895bfb77f565391c37c8d"
+ "8f",
+ "1721f1ad4adf3c32614feb7f8df3374e24f76a32e27854a57dcafcbaaa3082b13e461ce",
+ "14b2622432adcfed7c2ecd2b52e43be7f611680ceb4bedbfa9dd9af54532911a07440de",
+ "0ece991128b10399188b18933c0d185e85d111ad401baee5ac376b84c523f130f70fee2"},
+ {NID_sect283k1, NID_sha256,
+ "c62d07bb1ef756b6b2fad355c66b5be086b6dc387b37cbc4a63c841dba3fce65b09d3de8"
+ "f239e3649382d172f065b78f8a53e0283cf345de06b4ee0b4b7d8611bfce92a7d993b193"
+ "8419afe817611bc6df3ef74191e7e39ca2339fcb5b5cfee3166d09cd52a1a7d3779722ae"
+ "c328d326a11bbafb6aa417920225ac453146b9b7",
+ "19098a39956747de24ded56435fa1e6c30cc2b8088fe9a75f5d07b2f5939c7a60db64ad",
+ "04068cf5a2023753717d89d12d6861c8411e6081c3158339573dc5598b1700148d00b39d"
+ "c5076a22dcd4ff4f062eeff83a58d2ce6a1808af8733ae254f5157efa8ea35a85cc74469"
+ "2b",
+ "142e4907ce239cdaba562d1fa7305bacff05a75e2927800c7b7ea322b47c9ea47846e12",
+ "104620d752b73379e1e5d35e5b24a793d7a309685c00f8bdb97bba9876999ed9c763d0b",
+ "059cab3abb0738d8af4ea6dcbfca6d0ef11b6e591ca109b040347d7d4736724953cd9fa"},
+ {NID_sect283k1, NID_sha384,
+ "e4d8d49c9bc566261d9134d5e237d9cbd6b67d2619a9bd06b7c9c139e091aa10682cbede"
+ "114e1d4777d9cd67a16b7d64278e99eed62bbf25ec5a5a8fabcb0a3468b0e73fd02ac653"
+ "3e04b1110d29da3e34f33eaa228b78341b357a5d892a61beb2168c3bd5e66bffe3f2080a"
+ "1e246f55a41ebf9d579e188d16991aa060460d6a",
+ "1636bd2be121e07ee83ac5e880cfdfca6a56f2b9d0badff003e872348368c7c2cd96b6c",
+ "040007acf46ab68744a9baaa33ebf6be20c1c093242b0056bb9885d93a4a9bb4640f17b2"
+ "ef015415c1b671e98f00c1fa364bd69cf998c0ae140485159b0a341994a4e27000e108f4"
+ "fb",
+ "0d0d4886c3500bff68455c41f5840d0313f33ac0155a693d27c66fbdb12791c2b5f8552",
+ "0256b8ff7d37fff7dcc8cc4461984a9bd9661643fd3a68d07fd30d426d10b8c7f4dfa34",
+ "1f516f8ed4372780380a798d2da04d691aec379483bc0d10560ca79edaab453d3e77585"},
+ {NID_sect283k1, NID_sha384,
+ "2d1358fdffc14630fbc421b443d3c22ba10ef34f15c6c5bb3c73a9b8714e4c411de69b9c"
+ "d6628fe2eba5efc4862af66ff916505023e0514f564164b389ea422d0f1beb92adcd65ba"
+ "f43556614eba25e43852ba65af78f62d64b36696519ef8284ef7316ea52c365b99f63a39"
+ "e6701f81ad520d7445cfc0113c38ecdad4bf5b7a",
+ "15e5f555119c19b055b15b0c0d2813068bfc184f864e250b202384f5728bbbda1cb0f5a",
+ "04013cae2f0c3ba04d039c42cae27de4cf5842a3e24be35d7a3cc7f05083f02951cbeaa6"
+ "3b05d69ad5b7d64d6b19772a1794562b1fa5c2fea03909bc509e7d47b0e8144acb3c26fd"
+ "dd",
+ "1b881d95b7de9aed9fb5ff0085ca4da2fbd413b9b947066c98aa0257142c9000bbb30e2",
+ "176f9e3c9e9f98b2f5f352ca74310badf9f598f4d42cd2b26e5ea0999ae31e3c678fad2",
+ "1f2dba4e17470cdf7e1815d30771f352807b38080d44465f86044f5969b017c9059daf3"},
+ {NID_sect283k1, NID_sha384,
+ "d6336faa5c3e838f4fa58626eb353d4cff9ba8f0aa0e6c3d0d850e8b22f5b0f047afc977"
+ "67f1afe2040b85d4e401ba688a4da7a0caca7fac450899092c4fea789231ba9b07782010"
+ "720f45d16d353798867dd7fef4a324520014ad5cb32684ec50cab742b750e05db040ff51"
+ "140e8d740f6774a059feeb493b10d8ac722f23fa",
+ "190c8f17bdd38669e345440d2c7631d67cee9c6548c4e7b9452377adb9303430efeda0e",
+ "0403235a8b7981b3ff376b6b0959a42cb56631fbb9f82f1694b9e273e6b7131e758fa0d3"
+ "700444e5747420d7f5ffd6119ef43b998d4ea4a58da13ff6fe7f241ccdfd4b6fd33aa93e"
+ "3d",
+ "0b2a690793107257d7bdc37c492eca48c4c9650ba0d657e6eb62042b16169fbe27f8984",
+ "168a83fcc67e0c155f1fa2329363729872e254f2e0c3ef85f3b3c84fa3406de4191b6e8",
+ "18c0f8e6b486e6d7d16b4103506d74bb2021232c0b1638858295a63ca35e0d6d26a6266"},
+ {NID_sect283k1, NID_sha384,
+ "07384a3f650bd270b14ca388a441af201b7767a2d47e9033f50cefd3af8257ecb38f5267"
+ "e141cbbb2ab7327d8fc78cf27198ca3543d39553e178390bf1b921618432ad895e4f8153"
+ "783a7ac22f4ca3cad4560e64f1ee4a7bcad05df98ea49a3847dc2143b27c243e48be59c8"
+ "69a547988e2205358e8db98b635ca21b745df4d2",
+ "0dbbc2a0409ca58a9e39e33b95fdd15080443c1dbdb5874bee991bd1b127047f08ec9f3",
+ "0405a687605e54e49e3c40fc5ee8fc014a62d72e8595280a66ce7d367aac2df4d16b98de"
+ "b3030abd03dfc224f459dccd1606287cc30016be317c6207532a0725c957ca5fde692a9c"
+ "43",
+ "16bc5aa29cea64ce3297172f36fe4ce820c943908c21c9967697db0cd93bb8a12e42348",
+ "1b1fdf26a6eb2d736b8c1ab165af2ac31a4c206c5410f61ac7805a68992dbd62b457708",
+ "14e9a22ce703d942a4fe2e84a4c1c1b44538a33fbfe904bfbb17af6490d372acae4668e"},
+ {NID_sect283k1, NID_sha384,
+ "824f26dcb4ce0ca020982814d5c727e629cbeeaa818c49668f8f6d743f0d0ad362b24cba"
+ "c48027898f386889ca5411d7d1f9afc69493b1d9ae4d7b695c9fa0a30bb59e6be2cbff79"
+ "231767e96cd8bba349fa2f97955d56f05430ab4ebd007064e3d5add94dfe255b6deff196"
+ "50883ce9966e1a2affaf84d9540f65c87ab1f936",
+ "05495e6c59ca1873f36b756579632fd47f9fb95b64f52589d70f2739aa6a3bf8cf8c198",
+ "0406df40d8259be64c8ac64a28359290bd52e843f330a68c2b605ba4f777d7bd7a798e93"
+ "440458667cd7021b291c3415d64f9b054db71d3fe20f232f2a2286aede89ddaf1ee8c68a"
+ "a0",
+ "138f05303ea63bad47c4c9a9d43c52c264725a668db5b631d9892daa1b71f62656cbf73",
+ "05e35c1f3b30b43cc9d60bf8779f3b31e053de0a390da50ea676dc9722a17ef00d68aec",
+ "1691ecfb826fef1ea0895242129cc3e9a14e1f84fac49d62ffc0a3455ad9c97becd5980"},
+ {NID_sect283k1, NID_sha384,
+ "07de1e4bb9be15a710a74806d4447b093bc08ed04392d1bd5abb414f5f4b4d9d43520d0e"
+ "46fc81c2a97e71086b28e53242449ed37fd7ed1c5772dbabc430fcf82ad20437b38eac15"
+ "820421e51912325c872894452c3f8a10ddb040b35308e583c155c3707b52df467c4945f4"
+ "e1071126ed46611a3253c297f5cbca9e27f58448",
+ "1724987c9b698519b6c225cf1261b77d0300045e5fd774dcbf13f285e6bd74512cb7edf",
+ "04046adc9bd5f0cc0d8bc64f4ba491eae3b7f6fb4229bf94b804807c6137787adc0fed4b"
+ "2f041375e2c89da41af84529811ce7aef26b983ea8add6e37c32f2b00bd47f23f25e5fe1"
+ "94",
+ "02ea4ed0e87687a50dc3acc7f4c089040ddd367d1a3f470a711501ccaad63c201b87ea6",
+ "1be198a1b6e91453018513902f0a8a085c76a2798a2a0538ede30dab65afb6b9b0496d7",
+ "16342f87a813780aec006ee218a615c4e1c78c0c759d48d4094639b5b4c32a9658c4d9a"},
+ {NID_sect283k1, NID_sha384,
+ "1edbbbe71057bf7d0bfda922be21a3a4dff57b017ebf6fa99651246cd173bdc9b11eefd0"
+ "48ea599c1f98e907932aa04f64ed0a007831f30daf186c88807400970904d6090b2cf181"
+ "e0f65f03b4234aceeb420867812562e47f452152bb1ddaaa48487170d06e47c5e9a7c0fa"
+ "a4fe494663d2fec22f7665ceffffc214b21c6b8f",
+ "1a5489091cfd51a0970508ee3e8449081ed175928ff8386592c83043a7911bbc2f8778b",
+ "0400aa1562c94bd16a3f8a1d6c465908ce3b83ba6711e7d8b0b9353d3c55d13dee213aba"
+ "700103a789854f63a139e31348f1b2608f1e71c88b5d42809f2460642ff46a470ad85735"
+ "43",
+ "18435a6d3bc02b3019e1b156ddd6f3e1bb9c5af70d1a2cd2089e677cbacc21624ec8947",
+ "031f561b668aeeb4df43a3a34716c4e67232f56959104b7237b26e3c95dd40e15eb076b",
+ "0f2ddb6e6d18a7393425c16b3e5a5aa232cc48198d63e46a601cd3ed221a8427178a0bb"},
+ {NID_sect283k1, NID_sha384,
+ "db5cf1de38a5187af11c1f0f19a36db52f8417de997229e83072fb51a3b7152a3b383e99"
+ "19c1b8427582e53d4e7e25433d46cdf01492021c237ea0a87d38c71634743115a6b2aba6"
+ "6d3faa8003158340a5078171e0bd55a6e5d8c7fb2631a31c1204e1479bbfe79ac70d5e58"
+ "23af502922a900576f0088a33e42ec3e26c0089e",
+ "1a45ecda0788fbd7cb7a716dcf4c6e83d4148bf63ed58078690ebd238c00329c462590a",
+ "0407a1e2fb4e8e79e3946086fa65042362418db0dce51541121c73972a435aecb99f6340"
+ "23006bb02df9899ac3f207732fa7cdbc36a60c17592af7ce06b8df4255110e26a02b2318"
+ "00",
+ "1c986f88ba3d5109c0afa2c213dda8df462282f024cc8efc758a5342a0de91c40452443",
+ "1efbd9e0d912e170c9c55bfbdfa6106fea4a4e013e7dc26628a1aea4f6b806a51866003",
+ "0b1347f4f85adef612f5c3a436cfa59eaced5c7cfdbb69444936d71812a2ab2461bbb5b"},
+ {NID_sect283k1, NID_sha384,
+ "4adaa850eec8272d25d76600aacf2cf66e754f6c5efa65c55a2a31b7bc69437d9a7e47c6"
+ "f51c5da93895a45221f5f92c2e20ee6a95eed3cc7249688261a35d82872284900eb54dd1"
+ "df6024ec48963ce43e8ed8b8cca8ed22beee8f0aadeae53726cca05443316537840ab824"
+ "cd1b595f36064e9a19333748d4f4972178e7f5ae",
+ "11461776c33f20b176dc8f2b0cb2446a9b69e55b6c7bc7457a7fb4639116b452b79661a",
+ "040043ba7157559659954ac58b44f19262bef9e3a00829c70af66d07cef08ad899d7f8ec"
+ "2301e8dd9c947b5a6decd1a26fc5d0eecc9605d22abda747fca038571bb37036d9034e80"
+ "61",
+ "18b231de7fc499b461afed9b80f4405bc005011865cdfeb25570b7c0ff79b6ae94b6ce9",
+ "0fb203f47a4e2e9365ce070ee7fd4540f3f7e9ecf69b4400eeded0f5a7bf6e5a5c6d004",
+ "0e635dc65233f27b8350db22b90a3b8611e6fd1b3e0f515e42fe8788b1376079816308e"},
+ {NID_sect283k1, NID_sha384,
+ "11d212a99c39fb5e4ca0096bbe6c81ae1490e1b8e07374b4e773bee4fdd24a3c13d65391"
+ "9db663d2c32aa4db140c4ae2d472d4f878946e527ad33b3dc93012d97458f96cb622ddb5"
+ "6f1ce7c2474ad0d5291dc35545de47b7053d137a8e79dabe06757ab53e26eaf751111bd2"
+ "7690e57ffdab5337eb6f81889e9d1b1ac729012f",
+ "025a65f627db2b4d6cf83c5b0c00265b9b63f7656c5e3382139e4992bcdf3cab502844a",
+ "0405a35e7e0b914a3e01ce3a885192d2ecd27418e09898631de122db0c48e8b58658720f"
+ "cc0009eab47197d5f56927848855b6ff96db7c36f810ee7c89b305ef780ba8c993d65537"
+ "ab",
+ "18516ceafb61cf2c7e7c511a8918bfe394c7fb2fbc40fb3052e156cd4020fc674684f84",
+ "1892ac13b86ad00e38ce2427c8c78c93b08605a75ca22b3658132dcf9d9df7c4b5540a0",
+ "0437b33615c16a85ccb8c4769ee7c5f94122d31e2b5fe66291b401fd90257ebefe33818"},
+ {NID_sect283k1, NID_sha384,
+ "9e4ec74c09528fdf3153a0f6955f20c70915ff524b2e19c991ec4c5b41ea9185e3e876a0"
+ "2ed6f27c9b3479dba951bee8680c4c99be1a626808114408856994be7444ccbd5ef9859f"
+ "a479b1050bb836034e20c531b4d618f5843fe1d4b613a731895b489a2363f3f5397d5ff9"
+ "64cf037e9b11e3ff5e1c3d403e5a46b8387c1241",
+ "173b28fc29f10245221a907778708b3ee62e0480aa9051d4c3eb4e8d552e6aad5509943",
+ "04024bb9bdef975af892ddc1bbd31314926a9c81f8f1864829edafdfe2744e793c100c04"
+ "83028ddde61b4361ced9c391c86c28ece9b902c48d14c61684962007dfd69d0468dfd65e"
+ "7f",
+ "199af64f79ebbc5b789d4676a07c224e4f6fd33285e5a555ac90cf65d0b669bc58ced4f",
+ "137d746d515b90890a413685bd9b26a1c05efee4c11a4b40bb621c9fa2580c46c20a687",
+ "1647f70ab7c68a0f522420893a466940ccf79067b323d940369f8b8694ccc3fc0daccad"},
+ {NID_sect283k1, NID_sha384,
+ "5fe8253d2134c434cb0866796013722e82184638b024a5a30938039929ccd8415c71f71f"
+ "239c5c5a81f7a9cb493dde209f189bcf766c17c6d9589cd0c7de7f07ff9f24d2320669b5"
+ "89d084f8a8ea71127b9760b7355b162616afb34bcdcd416f1a062035102e29b70069b2b4"
+ "dbf70179b8d60bc2ee5a455efd40194533bf560a",
+ "0624616adcd45e1fdc6cfeab2b17230d73d91fe0b39f4664f3c6891554f9b8e238257f7",
+ "04010917ef84bd5c0b36c97cb5586d3057a34f2827f239cab2af2e6081c5bdffd48dccb0"
+ "b2078ab47fe1bd3e28055c688c78e617ddcf6c5060123e9d65c562df2e94cac973ab3b18"
+ "07",
+ "0795e229185bc1b3d6d69b08189fdd7a822cd18ac55971e4b35e51838bf12eacbc50e2e",
+ "185483378a162b8edd6a12f44e3aa4ff829630fe3a1c9ccc66e34775f69bb6a94282489",
+ "01662cde6cd497be7966a0a77b0626ba3c4b82e20bb3f2e839178a31aaf440aa0e059cd"},
+ {NID_sect283k1, NID_sha384,
+ "db49891838fe23f0530abd4a4fbba5ea970afa5747f6a0a10d2cf4d841581ea2178705c1"
+ "203f00cafec91d0a72d25448072c9cf7d7ca5580b39f8589ec63128faa95cb0689574a6b"
+ "ebd515049a1eb9699922cde0366b5cd58aa8f3d3e847706896f7e1cac667fbfe94b2eca9"
+ "e7be79a810806ca4bf53f219bb30532ca2254c11",
+ "199757ffaa2c59e198d66824eaad37cc42d49b2e241b6a60382d05e425e800eaaf32470",
+ "0406ad18bdb3e51cc053f56b9f9c35e2d6eaecbc9749f41a9ffbf54634838d7745ca0648"
+ "9005dd77c42b31aebbbb46277176df08d81919ee0d9ddf14c3e4c0cccb207bf649c48fc8"
+ "b9",
+ "109d6332ceec5ea211f642a746a6ce055986b4a2feeed7e847904f7f411bf8361318d92",
+ "1a49fe690a34151056d290790a6bfa7b70958e69e9baeb30c55efc61dc5dc4934f2fc95",
+ "1710a4ba5b404d65f66a8fca2751a920224db0cc0266f7b0bc054069ea4cc51b1f017bb"},
+ {NID_sect283k1, NID_sha384,
+ "29d385d09c1142a7c181fe4b6e6132e414c15aa8605b44208c0399464613b966edcc2d46"
+ "cf203a3f85d943d8eae658695dac74366224a0d0348083bec0106f5eb8809ae8d07f792f"
+ "dd7c48fb1a25d5ef3bb9acd40b20c61c821024a9acb2ede321bd2d0dda849c22d76f421c"
+ "bd8d51565d3c4266f666455ca1c0c3777aa44107",
+ "06e51381dcf21050aef2e9b97e35303cf3bd91956854ecf9b6b9827871d2efbe8201c5e",
+ "04052fee805d7938b8b97459b9fcb4b80cbe29f20a9aaebc07ac019539a4a966c5ee4175"
+ "1d078aaae02974de6530f285b4bbe87fd5d0c9a2ecfde5fdc9a3303e4b988f673c778004"
+ "bc",
+ "0b426ebda6628125d73efd84e6bbab6c4c8fcf7fa29ffb3c8d6b0a861dbf81cd18d088f",
+ "1270045e963b59e4a4f1237c2240a5b26a7ba8e28ea01326fbec00e5d95d40e859d88b3",
+ "1d721477ee1df1388e1b7f92c048e5759c060ce1291098a2fa647974a62a258a189b4cd"},
+ {NID_sect283k1, NID_sha384,
+ "774c1cb8fb4f69ecfb5c7857d46415568d88f1f9f05a4bf64a1e1ff6d64aec16e1d09292"
+ "010d1f067c68dddbcde06ea49be2ad3838053f0b9c0c2383edc451ef0188565118e7b3c6"
+ "6a4fa372b96633dc8a753106283b02d0322df273d58cc9bd061ec219f1e1a9c8ca1400e5"
+ "e39c1b2c254273377dc98a1a2c44e5c2a5b89167",
+ "018adcc22cb9a2db64bad3d60f1608c353e091637b948914115ebd43679904f955c8732",
+ "0400630bdd8937e961d5396f9ea5310123a340ba316fbb7d79bf8573f27a0065c6fd6f88"
+ "900737a0ac1116e0e2979f973cd705588a71cec5e2a9f22e7e81fc61a4375624f55a6182"
+ "bc",
+ "10a0c04762d02f9d3014bbff287864743426cee14daa43b22149ce73d1ba609c0ba6be6",
+ "0ac29b041a6b95f9ab685470f50445d416df5f7ee06313185794f2b542fcc00606bed69",
+ "00a4241b97b6ccf0dcd533a15867f5889349ec353395d47e31c9eb6b8785736b3e285cf"},
+ {NID_sect283k1, NID_sha512,
+ "c406aa4295f85c854b4db2de5a7a2defae53a319866921a3673af5b48c85ef22f6eb4cef"
+ "892c790d8e64530fc20c729b2821b5f5e515560b1ac764106560c3a6a05657e34cd6dead"
+ "fe2884bd288cef4ca92e1f25adde7d68a30fb0a1b3678156ced62e466718e68e9d67099a"
+ "d82613b8d06bdda1a7b867c2455422818ae9eeac",
+ "1898276f159c10d92d8d4b6ae214d68c72792a4b5f1f79936ca3c063dc8d9a88be439e2",
+ "040394cf9bb273923c88be7a1c49412ab8599e0cc5509926102c122326bc0b34243f7d1c"
+ "f3072330906f47e8fe95f63d0f0aca1115e77fc702a923c32a16505bcd9021da05fd9cf6"
+ "3b",
+ "058772fbb30227a136de616ace4a0334be0996d60e9772ae9bf672b7c38fe3ee1b24f98",
+ "10e0cd3fccd1728e99e2294efd6dd4797b6492ad95a789aab7fbd177475a047f1e5d38f",
+ "0c5e0b2d1991718355be14bc57e2d6ff9fa63e0812b9adae69f64da610cc6cbe36fe4c5"},
+ {NID_sect283k1, NID_sha512,
+ "cb2809152f8258660933472c06ddcdb65f6d5221fa29d5b0efec9c2a7914dbbf9ce0a468"
+ "ce146fb333d26f510a87a6bb01bf8816756a1b5df81c5f65360957cae84ba038e37e8877"
+ "7580e91c34e2f5aef4fb55af7b81ad28aeba05e0b1c64a15381a6719fd2c16e38a441516"
+ "e1b394952d984baf9e051b1dc1bda2e12f8ba5b8",
+ "12ff37c808c3cc029a9cfbb67a5ed21f3bf362b49270d4ed0f1e38fad25ebd79f112a50",
+ "0400cc00fb36bf62e777a9f6048761e53633b92866158200c43900db95aa1342b5760290"
+ "90055d7e57221ad939f5639282cbfc203114ee69baab4fdf194f4d2a937d8a57b70b54a9"
+ "07",
+ "163d8eec726d01a1bbb19995777919f68689f7c2920f3549fef966593c4fb012a5c3a1e",
+ "0cbf5c3bf1ee58869e1d3c15a05c23217f1c252da97f79334bc79efe3f5c62164669ac9",
+ "1fd51644f471ea497b0560b65fdfa2fd0a6cef469021303f97753d22ce1993d1ae5b96f"},
+ {NID_sect283k1, NID_sha512,
+ "e060af96d4a7fe512bbf26be9a27bb6a8ff37547d4a7bbbfa710db24cffcfc760dac120f"
+ "89f642880db2df6307f9ea5441d5932d49762d182b29d8e7fb067a61ab0df622f75cecc9"
+ "17e27d0326085d34581e052c85f50a37713e27518aed7c4434f86970e00a0a4b8503989e"
+ "72614131b7164c1bdc82d2b6aeac0787f9838476",
+ "02b8c1fef9c6def32b5f4127273ce384b6add4aecec957c1662f52334f5ee97f49852d4",
+ "04036a4fe1d77bc431012d25ff49fb5468f975353be70e7507d71966a0ef433df51dc323"
+ "24058d705cc883a690641f0ab85af4959ef4258a7ba9cde36dab77c125a1de1d39536658"
+ "4b",
+ "0865f59502382b324e1dbd75db150f342336fb19145fb43a733971da555ac5828a3457f",
+ "1ccb2e56c02cbe8038bf78dea256704ee6e51054668ba8c2ba11aef4ac6f9320d46ee8d",
+ "030e662c0e7d47cb3b835c63599d0c9c2e77ca47dbecd7ac834c2babeb039eb630cd0ef"},
+ {NID_sect283k1, NID_sha512,
+ "d235c31f0a82957a087c7597673970aa39321d4c2640685a03df8388b5eae4825d1fee29"
+ "926f416d5e62a2e9ca1ea7cefffd31607e750fa9675983608e0f8dc895371b190574d065"
+ "c5c0c23ffdaf49e65362914363a3fffbc2c1bb487cbd4f69ec22dda5c7dc3bbab805c81f"
+ "aa85787cc176bc0e5703924f395d8c9e7e7701e2",
+ "0afb1c45e9a9f02942b8e04da4b815498454dde6643de186625a98b3c1c6993abc8bba4",
+ "04002fed49c59e9d5c09202a5dc29d8dd527a870a180feded66ea6fc94ee094122ae9765"
+ "6b03620820bdd5910037f5877649be38db3571a9c6ac632602d2013d0d5abe1f00133f6c"
+ "de",
+ "1fe749d9916f11100af525ee343b3b74a493f92339e432a482dc8e86ffb5affc4630037",
+ "120f6f13331cd4d1a5b9707483c74dc0722452062cd4534e94cf40840d22ae263244a51",
+ "0bc2e37a481478f879de612cf4a833f7e12b8df33f5b0d6ac5f5aa431678ff053e2bc1a"},
+ {NID_sect283k1, NID_sha512,
+ "1a2559777a5fd8f269048feda82c4d9fceca95803f84a813789d6ed070422240e443789c"
+ "5231d63d5268ddebc060dfb99c4eff2ff115d2984d8bbc5c05314562ea6864fd543e7e0a"
+ "3b8572c017d8ae3563027d79bbe164d40a5bab354720e45094b9b26391ceb55339592fc2"
+ "f10b97dc9c2649f7227648f5cd2fc46d78d31c0e",
+ "0ff537d73a4da0ae3a4894016b71dccef3bc886f3d24a5abb7dd96cf8fdcbdf0fdc5e51",
+ "04001bd0537dfb29f727f91fb469c31164e1bb0ee192a5b89b880f3fa40e3e5437f0d2f9"
+ "e106df9bab2f9198494094a63f2ea091f60108449f0741806400694a93702f61fb0351a8"
+ "1e",
+ "0bbc511c6e1772ca6cd1cd308126c18c5db498055a4b3f1cb0dba3285f6d38b083e647f",
+ "1ba756f3c89b732398b90bfa2f92b2a77159c530a8020b75cdb9697c6d75c18d36040b4",
+ "18207cf326bfe97d657ac4197ee5c20c75431ee552681a92a5815db0d984fe597700bbf"},
+ {NID_sect283k1, NID_sha512,
+ "658c0d3f764bbc952fa55a258bac16a5bb5184bfa76cee06baf9ee6b9ac3f116e08bb240"
+ "6b1dd4be487b057f3b29c2043ebc33019b2017c4deccb86f50ff15fc9248ea5fb6426112"
+ "0b1960525aec3cc18827c23291722c5add8a3761ff8516c61956c62b8cbb13f3d92bf3eb"
+ "45a70704c01bb3625d21c38ffa83a6db086ee968",
+ "16000d2e879906d1040b32eb6ba3caff700e5565871ac75f10c5c15b509964bbe5e14c7",
+ "0402ba89255d1c89e42518662611e2efe3b5e3b8043926ae9c43974ee2986185269246a4"
+ "3302b87762b9ada81bde958d1f9b81246f49098695391ba3b4b3b9ac5727f19fe42fd079"
+ "46",
+ "14e837476e628007b2df21b5035a39c24cd4869bb52dbbe13c9666ddd8a7e3eeae29f65",
+ "1b5091fc755c0f908ee13ef9bee40dd16a5710befd1e265a312e595842d52cc135fd722",
+ "0fa25f43c3c074d702e45d216e3704d942e9d67b3c0728645ac6c53b9be7300061e5fe5"},
+ {NID_sect283k1, NID_sha512,
+ "4f10001e3517c2c1f973b555f4827681e096d860c4db08f1f4aef8000c9c24bebe59f8bf"
+ "3d7d3cac959a1a5477bb0ea43f2e746b5d14ed48a58ef35484b0ac786d2fec669f945e84"
+ "6ad73e6b77a9e47012a951b398941566330d89125eb3c1fbb2f06adb951ff5f047d102fd"
+ "f28b5cadb4a3e1a10412eb3474d2ed5c3fce78f5",
+ "019528d505bf0584628d0214bc857150a929d3f59619bf8f3acab545fff0977c9bcdc97",
+ "0400cc8863e1443e61fedc61abaff87d80450345489728d78c333b36fa28d8754a29cf3b"
+ "a100205ae70c35396c07f9f96aa7c59cf8a28aa2a365b4a1b68e7414d8c4ae5220c8bae9"
+ "ae",
+ "13d555426101fa3c239b7830fe0b6cf08a1c01f9a991f806c84baae20daddf5dec8f868",
+ "0af8bd9856dfd783217cf81b09b464614aa824b0298f35308e6427c679607853eb66c7d",
+ "0e6c1933d6ce25d0a00effbaf1db2cb2542cbe7521330c34286cf3bdffc20c001cd7722"},
+ {NID_sect283k1, NID_sha512,
+ "c43ec3c3232cae59bdea7cfaf18a4672035dbd2b8b6b1b44ede376b36cc2d8baeb921e41"
+ "6aa177f5977da8bf1d713509e5251278b6622790056271715cd5feac58bee5baf50b216e"
+ "8eb886279c5a384cdb696470275b7487fe9ac4c506706f6b0f9809d1ccb102546a4297d2"
+ "017c2a8df9f02f30d3d1bd9aebf6a92a02e0d202",
+ "067795ce117bc0a389397fc22a01cfd9422cfbfb5aa44131938a8c45e48e1d5a718539c",
+ "04007924de08acfae6260009cc2f02daa2fc2a809e6ab4cd8858a9e9c2c15b17e29f1bc5"
+ "ee004f36cc2d36df63474a579b96f6e59b890782ad8fa865efd80abd798ca2938bacbf82"
+ "12",
+ "1bf3242e75f8331fe70113ec8e14ad0814850bb8cb262c7d0a44ca69de52d32dfcabd0c",
+ "145148d59c5be2b6d39dfa33e904c161456822ec0ad64b9dc52befbd6496c9303fc062f",
+ "0b75c3c404d694e086c0f5aafd534e7d8596601f675b2fac9384fca6084711e35149f9c"},
+ {NID_sect283k1, NID_sha512,
+ "9b7d675a3d2cdeb280ea28289b5fc2a3ef6b535ebee8ad242fb031e2e1f364e8ee806568"
+ "b2f8627c5a5b4f51f4f65c71acdc1152c08b9211b81907b551e0ff47f5a6aca45dcfa06f"
+ "09bf195d19d7b165b52111b601fbd97b192f62465f8ba20773b1599c8041e91448eac7a5"
+ "763ca0628f40768324c5304e1119ca6a1fdb0778",
+ "19269dbfe4184249952a651a507584746c5b62c64cb3b17e0158aaf4d086a4afb0330c1",
+ "0406c60a475f2a3635fa523e1b138edc36f51e94a34e75989c2cacdf8949115d96f11ae7"
+ "520494d5e23ba9071b3e52c58b1d0740cf90cee7b084b9ef7a4a7be8aa47ce7b3d97c8c5"
+ "1d",
+ "111f4dc771b6ce5cc2f42172d3d70fe77c73683bdd2ea331ff711b7e9d8c3e4f2d7d6cb",
+ "027f224c01847c52ebc180ae81009923ae3453be1e0d94b5c2934603577f36653ecfccb",
+ "1e7b771631e5e72b7ddfb9c73f684b93270269ba4216cf3926e43b2ceb49756e7e7e0e6"},
+ {NID_sect283k1, NID_sha512,
+ "f4a08daf8f66ce57a986f14b918099bcadcc4308bcde7c169ce8536a40d94a928cfc0968"
+ "180a2c2a242c59df73ff79a03687998c421cf9a0e661630378779a4744ae2a6cd24ff61d"
+ "7fcd6c11a4c8bcaf358075e96f864df0998ee98ee393b37bb38747b70bb7a208740959b4"
+ "5174a60153ee566e0f62528e9a5e4466186fa650",
+ "03835814de0d6441cd80a44e40350cc8bd62ffcc81e939a4410bb9c9259e30463c453b5",
+ "0405ce9f6c979bc1d6bc41f41095b7677cc184da8918265a7f0e5b9dbece2ca9e0667cfb"
+ "ad039a395aeaa04f5168de809164285974d306e474a610d89fd401c375c9b73f0d23dbbc"
+ "f0",
+ "0b714d734d063aa81a389be69c56dcc23bcced3517e330572f79c769645e7dd2fd55c20",
+ "0e4d4494f91e79f2b1d1c0e22ebf744ef448f57c951f1b5f4da3592fe60008ab00f5f7e",
+ "02edaa4d8731b598c24b993dc5bb4888ea3c2dfe2807daf88170982667e69b76a8ecfe0"},
+ {NID_sect283k1, NID_sha512,
+ "864647405c70939fdb4c026bcad53218ba1d438d82c9138f0f0ecac815dbfb242307cca5"
+ "2c84826cf6556c51082a23f14252dfaea43ba229f7493db2bf8ae9cdb0228dab9e25cf38"
+ "5b504b92cca94f813acceaa1f18de851b8936c4dfe9e4e17002f02dded6b4c231ea5e614"
+ "ab46fcdd637b8c6193e8d0c2df1b3d883b97e1e8",
+ "0aee83dbed3b703cb6e60d51e373eb20e298ac005fa6a572d02fa1e6da0345558ad2a46",
+ "0400dc25760af992a8ecc108373281bd0d246f95933ec943f6346c1b2b941a03b33951f6"
+ "2206e35f02d225ba11d2ed7ea392898f78ca0deb2a47871eba6cd2be7440a410d910097d"
+ "e2",
+ "1df142187f8b27f4888075a3784aebe0fb7d80b0b6d3497a7adbb88cb6bd26cb82109c4",
+ "05a530bf1135ea6d599928cb0383f5d391d19be333b1577ee4eb6f2a78b54e4aac0e09b",
+ "06f3033cf392f698d1a1141cabf138c411f4e20687920f2915e17e805e8657a887c7953"},
+ {NID_sect283k1, NID_sha512,
+ "c87c8f3ad5c28a027b28ae5021dbe8d425f74181d519451f1fead7a1f9dd102fa6785b14"
+ "7b610610cb59bfa91fa363bb79ea602a7d7e1439f874c5dce748e5c320560c2d9676f3a9"
+ "48754c72b6db249478b7e19c9829ab4de2e344535d3e0b7c20c272f82556a280ef491524"
+ "b255c4fafb9c8ecb87b0149ddd9d7bf6159e3337",
+ "17b65c66514019ff935e9d571a4e68e9ee4463b7b9a754b93f4f7741693f4399879fa8a",
+ "0405bfb704629596ed05096783e49864a11874f319b4020917f1ba700ddb0606e6e72c17"
+ "93069194592be64c33c2f63771af0e4100d060e9750031048002680541815b311ba8f7ff"
+ "a9",
+ "171b5c698175300b95dfd5ed8d3fd7cf4e19105ed7193b6013103555808743501ee8c46",
+ "13f001f287dd5c7ad9af8d0105b47caed66ede41dc1e121a602610ce20e41af91cbe586",
+ "1433d5263d5233c40c0ca526b3657fcce8cb88ee65105b5f5ec82b26e12bfff11c8812a"},
+ {NID_sect283k1, NID_sha512,
+ "ac7da7611e2ade20aad64b418a16e02e79ab4894d758550210eb10013a9b5533132be701"
+ "f8843c840807c4167c38d21dff168d3baa65d5bcf285b73dcbb75819f8d7a20a849de335"
+ "e19bae2aab2ca560b93d340731f291599a5b28afd7737460d291105cbba6d0290e836f6f"
+ "6c1113d1b2faf90ac5de7c64e25206d79380a4ed",
+ "17d2071f39ba35515a8ec977ddd36ca15983e15bcda626f15af61d87d58114f4c80a8be",
+ "0406f09c255fdaf78d7d341fde4586526fcdec34a28448c7fe65685a67b6c33564ce9249"
+ "a3024ae4483fcbe3f823a7ce53db96ef2f6c68670e107e68cee4f358dfa844112d6b2144"
+ "e1",
+ "1403078da10f55724fe7b56dfc55990507307386ba82ca8f6340d33769ab1f6ca894bdd",
+ "0a54a35767a1cc77b2332b04694404fe5a31ed8851ccc2abfa5542b0f5acd9be9b1f02e",
+ "0577e0a1937172a6d45177c2b328d72f75a08a8a774a31151b89fd451d531348695d870"},
+ {NID_sect283k1, NID_sha512,
+ "5757c472fa2f81430dd920f39b61066a28c870b80e6c96f822f8f19b398c3574d159cc22"
+ "120454dcd7e97be8211916e4bc8db365b2dbb99a6e597d06e6645046a0abdccbd06741e9"
+ "c0eedf33cb78d78a540c2a390719acc498331e694e6b0118cf4f787b51c7b7237458a614"
+ "9d6dbd0a08bae8097e919f970fde920485e9a0ac",
+ "11504659e12235855fe55220287a101e511d39a627f8a0d414446385d4a88f31507fe74",
+ "040192fb9bcd157c7ef385d48470c3173ccf1ef9650da7d680d8473d45ab2064a073232a"
+ "c3014ddf872b711157d121b0a61b88a7eeb7cd260f1f82ec5f62fa2681e28c7f2640e305"
+ "e7",
+ "17e10962721f041946bb5ffcce724c9f284b1c8970f974a069c36dd4391adb8cecb8bde",
+ "1546450d25e2536aa14b8751e3b3e7eeec8a6c1cd967ba0f03e6bfe64c0a59072280636",
+ "0159c8d6499fcfe8ac7b2e84990a714d7888d883c16c016c4b165f36d62c3493afa67f1"},
+ {NID_sect283k1, NID_sha512,
+ "e350383d04af0f4081bf09b95d1d53040e7acc64e56b13b653df31dd119617b800e0cdfe"
+ "b935dfa5d94f1d7814688d8ce41021810958759cec76560e1e5c0581456acd1a02016584"
+ "9b2203f1c11d318d816697f36a86b59f160faeac7dba71682d3c031d0d547725ef69cbaa"
+ "28345512e38b75ab011911d8924b2d17a857a96b",
+ "16e4cbabb03215767249ba2a608708b78d7387be9e77f5efd2462467fa05e8dcde2c036",
+ "040112b7ea5d21df8ce52772a1b76a52ef6f0da62cb7718a467a034618b7ce701a05cd24"
+ "670649e0ad181437b4eeec87e202d8fab1c240f9dd9b31311284c24d89160b1895be5413"
+ "19",
+ "120e4bce412311d3e7adb36dc11d4cc1da8a4b9d6cd5219e772b3dc2b2b8ce08833748f",
+ "1ff2d53a8e6c1c23807eee681156a146e8f2cc1a8c262850dc69dece31860bf094e7f73",
+ "1e8906c0bf2a5f922ca271def90d704a1425e5cacc64bc5761b000c7df0f8f9fab51f2c"},
+ {NID_sect409k1, NID_sha224,
+ "f153cc61981a46d8a47d17d29ec157fa93fcf644beb84558db7c99c57fb131dcbc5b6558"
+ "1ced5ff0b29bfdc66ff703ecdd4290f7c353c02a3e6d6867f33f3dccd1a0b6752b8a35fa"
+ "143f8921a5078af9c85b212564c5b795da9858c7955095938fcd10c21e35e1abe905e84c"
+ "8b4bc05f2a06091ce876d9519b96951d08c7ac9e",
+ "011c6528939672bed3e8c905b7ba594c3ce95f37fb28044f210cccd01dfdb42c10e8e1a0"
+ "b5d6fc757834ca7f08e98cbc52b0edd",
+ "04000b570ec1fd09d7b4d102f83cf37129d94c9cf2f982b702c5d1172bae2df558008518"
+ "493c08dac6f76a6646156f123c4f33e79800e3cfe1aafbf25a5a4536d6c0cfe13a540b4a"
+ "3c97d4e7bc6c0346addb4b0c32dce089a7a5385e8a3e67606b45e2062c642bbbad",
+ "027cecbe83853037cf46aa98e1e1e552a96af0bb24e57756d8239fea5d769b51b83f195b"
+ "7801b562259ee644ab4047764d130a0",
+ "06a1601e07dfdff9d3b4ffdbff124b717403490853099fb4a00ea98f84ddd64e908f99b4"
+ "0a2ba6ab88b2491a8d948fcc2f207db",
+ "0741d27c0dddca3641b56ba1e9bacb0da1fcee46b9e33ecc6990b98cf0db74668ef1009a"
+ "50e5d55f80e6642ea48689a529c8a08"},
+ {NID_sect409k1, NID_sha224,
+ "258c91524423b5c876432b1930c7b07b56eb5e3945f1e2296a4e5bfb9b9123f800ad195d"
+ "6104641b1f1970bca553c2032f83d17252e52403a9381c1fc18eaffdf026f7537aa27d84"
+ "c5e3d6e39e651a92a41139cec5181fe794457f556b390943093be719acd23fa1ddf7ff0a"
+ "af0479484a381a309b4f681af74bf97caef08c22",
+ "07e3b714496dd118d8f3f597961eec5c43d0265bf85723b0b9b0616977e0acc2cf686cb6"
+ "afa6cdc19114e27ab000e762dfe467b",
+ "04007dea0ceb73b9bfaff7147a36436cfa7955eab02ce7fe9b60dcff3e088c5c9281be59"
+ "07de3e06ebb2e21dce8bf3ff85feeed50001cfa9b30af20612666e5df798f91eb4647d8f"
+ "5e1747c1b18adc6b73a848d987434c56d13ad78b775c4096e9f20d4878bbd9572c",
+ "028a8353c05129dcaa7caf0343130bf2e2186b9cb5ed0a27a565e1c24eb882617cc299d4"
+ "86be76fe0f8f3c52678b6992288d7c8",
+ "034299ca2aaaad51f12c90e8205da305523713516ba6e7d245eed8ef94a1b2409b98ae93"
+ "476aed6c9b9aef50406860b4e490db6",
+ "01a1adc76c65d77ea686d769dcd007c0101b4cdd0934402fa47dac22f8ecac28fc05c2f6"
+ "763a6781655ed5e7d84c41157255a4c"},
+ {NID_sect409k1, NID_sha224,
+ "a16a0d6fd57240fe88c7c36b9f7f9040cfcaa9afc4beeb8300818c5f90cce73b819a12c3"
+ "1d42af33146399cdfa4ed4954d068dbb0f1f342269dd29f1fe357e7224304b67b0f924b7"
+ "94780fe7e6aa9dfa3380252fe7177b43e7b1789718949b9ec1b943c83ed4399491482f0f"
+ "59d2cb8050ab6f8b5854d76c50651428cd29c40a",
+ "0182d1e937b037bf7f84144f7d4c94c935269c9aae7d500aa459a7a0ec113b232dcf2829"
+ "08eee4c84b8106cd38cdc41db3f89e1",
+ "0400bd4f1ee6a967123d70d488dbf0fb43aa5e93dee5794b4492277fe559776f74075485"
+ "0477e275cee9f1c375403a4933dc9869200191a544b98ba954cc6e060ba26a52fecbd1f0"
+ "dc7c15381004cccb799a9f7960a3cedd02d36fcaeb0ceb844bb4683998d776dc5b",
+ "07904af733742716366f8ba07086f924697ac8a01bb4895bdb5715081ee89eaeafbff4ce"
+ "c44eb0ce14e774dba71bb9b091d2594",
+ "0723b2068957c4f2ac1df69378fc013797a3b071de30b514c3e610002dc8bfced32bd2f9"
+ "e8f692b653e736696cf818b0ecc1e10",
+ "058455b8f9abd5fcc28a4ef839ac0245c3feda1fdcbc3c171b6928c6abc931e8b0ec3438"
+ "2d63e414657e9319d2965fdc9eb74cc"},
+ {NID_sect409k1, NID_sha224,
+ "d02ff569828fd1add21f6bd1c50cbdcd09222e458ee79fd5dfdba3cbb84e9d926fcf196c"
+ "ccedece77d5aa17f8c8cbf3a9facf0f02c71d5c1c8aeda9d75f6fd7b6f2c5c70dff992ef"
+ "6e02c438fb3c66da5a503b3c39acbe2a069da457595b542190d818015d462670b0807c40"
+ "1e36b1bfe05baff3a8ccf8d1f5f8de7840e87993",
+ "07ed09428f460724c8a5225a31151e031d9949493fff5703369c401762345d002c4ce424"
+ "294baab22d9e71edc4f854510cf0e6a",
+ "04007fcd003a8cde5503f5582a42738738ac7efc6cdb3813a00c072fc114006be9881c0a"
+ "881ca35988dcfb8088f3d07a03943cf23000e7041e666c1bed3b80a691ecff60ad4afe3a"
+ "544ce58030bbbcc130045e2c611d65f322ec78aff6757cb5df8ad54ee8a09616ea",
+ "02828c8c4bb1722b0f03262de32ca8a605c4046badb20d8eb9f19aecc5c69f199aa48d09"
+ "b61f285254425cb4bb5e0763dd471bb",
+ "06c99d796c5d4fa21c5cb7cee0b7570edc9d7e9d7c3604f5ca3766b17e44bc71d8a74ac2"
+ "68b8713cc2ea0adc3dc1971c062b4a1",
+ "075962e0ccbda2280e502559f48c8d37704964f67f8cd3b443b89be740976f1bd929c175"
+ "560fc8cfb282661c0fa792a5b200401"},
+ {NID_sect409k1, NID_sha224,
+ "57befce973b225cfce7f996fa5a1a43acd160681b88a87b7de04544eb7b6a719718f1ca7"
+ "f559b6531bfc18fca3836d2be7f7a6e48387b7579a6845796d30e46f0dda9d82680f8c96"
+ "c5f0989741adef9762c3db763cae2699cb6c112543635e20ed5cfb4b55ca2ccb32d2d139"
+ "36085a8ff95ed658a54be73f80c912ccfe5f0ca0",
+ "0390f05b9619c27b800e99aeaf61ef7f6249367d5cfaeae3c7b523a8b29153eb8a77132f"
+ "6c4412545a842d6deb7b7aea7e2bda5",
+ "0401cbcfc492a2a6bb8a7341df67ef2bcdcd706afabad5e7ed1d63387ad9b0dbc47ed17b"
+ "82de6de936752632e43c393a93fc5cec0e0111768994b2dfe9677d9dbc45d4b55fbbafda"
+ "aa2b2638ba1605c35301fa557d628a87d0a7febcad9f8eb4b51fc9c807652579f6",
+ "00b8d236a9f8edba7b5207b4c7848807b933b214fa25cfc5a0e73f750d30051264bb9f67"
+ "02837b0f65a451d4ef24f047ec4e9dd",
+ "076bd4755427fda22a0f177624477c59de12a12621aac274b980b5e1ce5dc700591eec13"
+ "dc5bb48c5c8643de287a07a48a6a7fd",
+ "065a5b0a00548bcd7f59518f122d79c7552ca6097f3867604b462201add5f326807f0e87"
+ "79f2177f277e5ed25253885ca81220b"},
+ {NID_sect409k1, NID_sha224,
+ "4277ba40cb462860ca722cb4ee71c61836d2ceba18bc91f3fad7dea478972c6da0ebc028"
+ "15eaaada1d1a5e93d7ab353855ccfdfc94a5742fe18daee2328871e06c1ab0a9a989d123"
+ "9df2d2d27f96c415e7ef9a941f06c6790675361173cc229aac7045f49eaca207f59c4976"
+ "19ba32e932b5c1c6576812ee5b146e2cc7de5e62",
+ "007d18652732596add3db31f7a0ce6020d03f3df58131b0c7c633faf619b8210cd309d6c"
+ "0c4083aef1a1b6d2a756adad0bfe344",
+ "04015ad0682962b4dfc8901a0dc77d548ed616286733cd9b3ede937cdf4401ab8b3e3516"
+ "d466ba43b6ab5356c4e72845767d55d27c017e4de3288ed44b48e7c47b16e2afb513c976"
+ "3d5bf4cbf9a357c128c94a758e3ff946957df461531def2b8d8411b81f45f0c2dd",
+ "01a896c30fcfdbe583d6b0119f467f47758ee01d4d601eb698f444ed0f76515c2b8053b1"
+ "1ae7abd0eef7aa61145a53d12d560d7",
+ "053b1cd57dfdd8d1802f3e295e450a155c366bdc2bd222d18a4d08369c25e53f1f633958"
+ "b22d80755ecaf8362d548b28dff1ba8",
+ "069339fc6058762a99576a96e76f75275f848102bcbc281e59fda26c98fc48a3f1061755"
+ "e80740a233e03287f510f4549bb1874"},
+ {NID_sect409k1, NID_sha224,
+ "57ff6792ed4b12220d179bc0ea57ff217f322c85bd3676a681d32d7e4a3e0c8e891fd267"
+ "df17caba5992f68c35ff670b60b4bbdfff82404f6ed996c30539bc395120f97d4d7a652e"
+ "aee82bd8f9360bf8bb73748b8bbda9f9480eb54f7eaf2609d4259329e8a5ea020521e7db"
+ "d3ec56f23c849932cbdf2875f5d5c774a9d6b0c9",
+ "02a91244ea4623b63403dba807d60b914ca3b901a2523244c322f2f11251446d3f15e869"
+ "d086ebecfa1a39ce304e8b5c8de23e2",
+ "0400b7ad8f0a52ec21e54e28ef603d76652dbfecc7dd2427cfaaff3d280f0d1f62187d77"
+ "effcb433b5bd44c3d0c0d26c38d3f5930e0080641bb0163130be4444f79c500ceb8d6a9b"
+ "2cac42d21d31b2fb29da075bd41c6613f278944adfe92d3c99d494be9d4714e9b6",
+ "070125c89a1262a88f22e874c55ed149de6d961d6abaab2d13db9174e3cecb8f49752995"
+ "7058a0afe5361ddf9d3a5a3b923c7ef",
+ "01a28cfad13969c6449e5a0f879e01ef7dc1cdcd0bc77d20f3989c588a9cad12a4b52743"
+ "c12f4f6e2154ad963bf234ec96263f5",
+ "066d7f0b364a640c6c620e3d030448d155cffc9ffd46a6adfa1c13e1b01892463a472446"
+ "5aba3eb07009fa604f3af18109cb72b"},
+ {NID_sect409k1, NID_sha224,
+ "f85113eda64478f460b60f8084220134933de049200a5f37884da7901471542e26690a5f"
+ "abc3cbf9e679ade71b6e54d869bc136c3d34cc4a9efcafb777abf046b5ae5429136112a9"
+ "a36a475121eb1f33f1f43481286fc1ada98a41064a1fa38c89e99a93065bb2a119348a9e"
+ "452497fd5a0d2b83a66b09da9f47a0583732adf4",
+ "0068c56c6b5d50d1d4e13d3837d8c5e8ba2f825e121b63e97603fdfe78bb6899600ff0dc"
+ "87b6b3b6868ad0d2f62b7b7a31603ff",
+ "0400d9a4f5992308013573f97864c23b98d276975d80cd6455e9f0d8a62d6674f3aee3d2"
+ "7dec15903da4e9d5908cebeb765ee02c80001f61189caacb05dfb982bcccd603a769d0e1"
+ "be8f9223288b5426e7f88854356fe825f11a88918085692f33b0f4c61ab09a861f",
+ "02ea7f0d81fbe3d4c865ff5315d1cc38f9e9a8653fc91dbdf445b62fe09b30ccddf50878"
+ "3ad87c8a48a6ccd5c9e817fe2977f90",
+ "02d7847479c16c4cba834ce5962724f185be06cc04a9a8d710cc72e6063a7b64fbf2694f"
+ "5b62de65d3d347d34c0dbfd5a4d93b7",
+ "069e32bb19d20e873d0e62b306db4d5663576e4b2fe75e8ec79b7a63f38c8f1007a817ce"
+ "30612e8578d48c63b04b1d34904010f"},
+ {NID_sect409k1, NID_sha224,
+ "42811e9ee6dc509572e1cddbe5baf00afeb0c5c13e3755b922eee9e210001676082bc9ed"
+ "c3d78db2b5bebea7a2c0cd2b369226c2b8f83b28f33fb513407ab9d287d14b112d6c3be2"
+ "493805ace5cf6fd366d03cfb28f4ce3f0f060880db64d6962e997463ba7c05b6fcd1e66b"
+ "abe4b94afc5c2d38c7050c69571d27b66ef0090b",
+ "03c88084f8b78446db431bd6e240a0c050813d2a763675b0ea869cbe183df697146cf29c"
+ "03479af3d34587a95cd257027fbeed8",
+ "04015a09436de00d8d129e297ea60e04b704c0a8183d64a77d1c527189e25e21d6bb62be"
+ "8ef5eb2dbd833e5f9c7d5c3e69c9c018820001c32ba376d2e9de28fca644b0d567ce1f4e"
+ "f0aaddb2adec6213d03bc8cc99f9140005bed3cb6c3c0f5533275734aaec47404c",
+ "0132f4763959863a32919eb591799ffb8613797bd0b617c73654ec9eb32e2fb86631b66e"
+ "28e1b4cc4aeba65ba8c75aa1cfacd73",
+ "05fe0ccbd430d9459e0093cfe2c1d1d3edff8c1ae7111299d2e04f414c46ed2cc88ce9cc"
+ "9e23e187e87ef551de993f52214d609",
+ "0557acfe6347baafe031dc16032c45559693e2793d9b6d372670b09757c6f4a3e5ae5e55"
+ "264137d1859c8d9f8f03c25de409bf9"},
+ {NID_sect409k1, NID_sha224,
+ "b38f76ede7441ae0887e689d556f43155b38dab7cde487ce9ef9a46f2957c830d4d28006"
+ "873fe2368197a6931f6fcaad755102686a457a7edccc8d344e2d2a9162e3d71d41c09a02"
+ "2539ae6d404955a6ad748231aee1f974d4f159940532fb3b1fa0254bfc5805d2fc686968"
+ "56fadea386c542d3cefd1be3af04ca595e54be25",
+ "051af7b63bf3297ae20517faaa1552f4fde65819dbbff6a52721611e5b7dc1242ed6e697"
+ "68cdc37ea8cdfd1a5971f06b84b5803",
+ "04009cd1280a2a79b182ddbd1712dbfd12cee3345a89636d7673a5fc3e1e51400603176e"
+ "27d538e90005625aacf5cadcc8a8c25532008b5aabedce498476b4c65ab3cdc81f819c2d"
+ "b670a7236c0357a86f9087b83e7568cc6e5139fb92f81975756d7dc4f48be87df2",
+ "00bba308a3eee9e3ab6d2482bb728bf44cde9eedde15af7300c57c2c1e6fed2ee4e404ae"
+ "ee3923e7871a2ff4ba6df64f9d01a87",
+ "07a9e69664b7b81edc5d47c014696d194b2ca4705b2e79af692b285ec476169d041dd9ee"
+ "f20f7d496fc49b8597574d2602757ca",
+ "01521d7cf6aeaf1c8dd54a7776cfac02967983083770346d9768a2629d606be90d58ea82"
+ "377413a0fcc3e4e66f05a0d05d933ef"},
+ {NID_sect409k1, NID_sha224,
+ "356dc86cef7979148e995fc5abe2b14a7d5e4e42c9b3509b4363bb80c581a66f4e7e4aa5"
+ "3a4bfd37f9a7eccf75fdd726f348f6a3f779e6599f61bd1d668517f40453b39bcf35db08"
+ "52a6a6218198f52b7ceda2ec55fca5abe8e5d93af9a42b9ae4de9530c5870211bacc27c3"
+ "9aa094013db703de2fd3121f08d7e97dbd4e8946",
+ "03d65bdec48972d03811b78150a06956eb22d337dbec5416bbd8185a6322cd8c0ff80002"
+ "10dbd1326422289071cab65175f5d10",
+ "04000c9c1bb0a80c4b4863d78003e21ee60fc553ff72968c165f6eb6940250a6cb7d545c"
+ "6aed3760e42370df79b0d37c2d1433c486001a9d994828ac09a86c18b9758b3f6b91a577"
+ "5931a7a6e4d8b052204c972b993a3b420eb8ff7e91df77253a9f5847c5968b5636",
+ "0156d12708324cd30037753c78225d183723d3f15930f23bae854f121094bfffb5d7dece"
+ "1fca93bbe7457a2237760aef3db8e3f",
+ "071466e80e2a7cd8e6cb6dfde259a08619f880a71899c58bd4cd33c29f7b321d26953372"
+ "0101f2ef70f5b8e8f05c9cbe1ebc303",
+ "077330e08712ad709f855d92355cfb7d565efd806c6a853712916f7c943bfc79e496366d"
+ "eba79ef7491abad23086db341f339e5"},
+ {NID_sect409k1, NID_sha224,
+ "06fd39a50bf25e89f1071ff81fec5d1e35b6dd68990414ee403dfdebb792627b6a4ae3d2"
+ "236c159e4441ff90b61ec87b1592c538515f0486b19e58583394a05e6411e69b4285d6d6"
+ "589982ac0eeb2c912c4948789cad741183663fc070943389d4e9a1150b8f6088fc506059"
+ "15e9e24b2d98a1f539024770e4820e14ae42ea8e",
+ "01f1a8b5f35dbbf82c102df550c72216a243f986f0325920f6186a16d1da74228cc02be6"
+ "024c7411160c183c923c743354f9438",
+ "040157ae8d90fe2416f70a7ce0669acdc0b5064ba650cb5416e59e6672e45b591774ebb2"
+ "f793c3a58e953da1ac08272d0b949e7b50006d49b9784f8423812967b857e25dc3af1312"
+ "a6ff29579f6acb6e155b6848ffac6fbce51bd2d41a22ef955f690e2487a4bbff00",
+ "04cc45e00847818397c6abb3d176cb8bd77814abfc253e3b0d799dff2c3e09a5195ed5e6"
+ "232873f2783c8e670b52a839e06bc30",
+ "067b418a5395216b83ab00d5568eeb62ae0693af2b0e4d052c6feb70562dcc06ef852002"
+ "687099dda114477871b924775e8460a",
+ "061d1e4d713689b2036272ad41571759b52a78e0f8a84d1f3a277aaa33ad558f0b71f3c5"
+ "a99d403e49df1afab66059db20f9f32"},
+ {NID_sect409k1, NID_sha224,
+ "6daaa41150ea252a3e966a338377307d909b95080e006f13027f2be5059d9208930c5a32"
+ "9994c0b794ef50eb059bc6c215f68cf42260bd410f9bd86d2ad5ab7179c7c92de4a93a5f"
+ "6aa17de5aefea815e7c0b78a8cc53c21dc4dee037b29c9df4e12343109283ffd5d8a3b81"
+ "fba1b5e95506c7e01ac056c86dd0ee23bc21af0a",
+ "031dc621200cd174193d95e9092ffb86189c52cdbb9ed937593f2cde7c4a0264b9100e1b"
+ "8407336c8dfb5520d28a18dc4e39a89",
+ "0400904bb904d50bff09bae5dd21f425c808b41001ac917b022f7e1cda6e46504781a69b"
+ "aab4a6f0f100c4fff9ced26f871159cd30015cc300b0efbac707635c72bf855de4290f1b"
+ "8b70c16f9bd0cb771ed5c760ada04d0ff648f118d64e0aff6a6de16def15cf7437",
+ "07e32b1fc1cebeec3d84f56a67c8ea2b78723e7010a725ca4745e849e573e8e4a4ce11d1"
+ "af4ee508b80fb5336de3cb53161bf44",
+ "071cd81dfbacbb67be5903cbcbe402c0420adfa9d14148bea600b178fd06278572d34eb4"
+ "6d857085a2a4f48cd4ee9109d607dae",
+ "0347b1029e67a6ea2a45af1f7410dc951db813eabfd3c7f3e2c294b81e1c54fa8c98569e"
+ "fc580b68007bfa316424ac6eb353ac2"},
+ {NID_sect409k1, NID_sha224,
+ "6378dd1c12c5197b57d47dc46a67949bdd1e0809004e94d49b0234126a08ad5bf8723ebf"
+ "d132145813136d8b7dd096f56c34248f09a65c34f60c2f80f9a51b3795f3d2518b11aaea"
+ "f6dd45a323794080b78f85d629e5fa719b6ab0b14c78cd908befeaef0dbfaa08cec9318b"
+ "bcb376d48b11b68735c9554a45293db5e9239ae1",
+ "016e6750245a88340b0f0665b890459f8038e9b1366f2fc1326245a88d4c523ec94429f2"
+ "1869ce3dbf75126e58f77241c99efaa",
+ "04010184fd47e8e1e4d534ca1cf67f15bc8a80921b07e251c22eb88f25395e08d7a92837"
+ "74aed204fb5c14aa13c63a94ee691b4ff401252ad972bb8c0b286c222f42f7d42ca6561b"
+ "ac5e517921bda53e51043f13e711da8a813bb6880678e4d6a16820bab819d62e59",
+ "07f18539d00152f5b9a75d4f114812b87024e8a8f9c9a8d12139d0a74d87986f4305bde6"
+ "0375918ff2dfdb88b6deda640e17364",
+ "0735a15e7bd1f69f4e90739d42ae239a8e9238ad28b63ce291b57cb5b99922fbd5dbb7f7"
+ "4fcc23117243efbd036eded6ee0f28b",
+ "07bb3dc77cdd4138a02e2d5fd4f6ff8516b4c95b8255c629132ea8705c399fc60f8fb660"
+ "ed3aae52db283aabc3626a5559dfe85"},
+ {NID_sect409k1, NID_sha224,
+ "b898d0f9bd80e083fa541f457d14d853bba55b120424a95e1d9511c8833f48444329e034"
+ "9d68204c4b4581ef1c4dee23ed0a4445727a72e1e6cde422f7c10ae132a3fe681f9d741f"
+ "da263e73f7cdf10759467c9d76164086abf6780ad474772771eee22d195339bb8f6235e0"
+ "d992bbe282b13ce4fe01417f507a2c4fa155e108",
+ "0788fabdafeebb72f6385301e30024b56639e629a400f9c50d402cfc9b5817844f06a451"
+ "fbda29c7ece41dc9ffcfc625fe0ff0a",
+ "04009b2c36d221d18189e1617cb2f2ddcd64cdf8a42ba6acc55f04e9722b11588f7fa861"
+ "a3940820d9dabbab631d7fd4106c60f37e00da099cdb10dfe2d7c0a16ed332b459e7be31"
+ "f44b0b2d595dc948f0b073ac4e439f24f215fba5ed50aef3702731d6561eee1986",
+ "00581369aca680beb705f52b6bef075de83ad29034c3d6b2949b551a0bbd100897a079b4"
+ "9d41d5030e1a6950fdb14d70dbbdb41",
+ "04f62415c99c8e6750f9c41c31cf050eb58f61f62eb0b0023d61dfc30e7879d4f5a87e88"
+ "faf55522631a29fb69d16e15c354323",
+ "06df238f34b5ae664860b43ea11defe3120591cfa371367096006c03e83d372bfb70da6f"
+ "789665136b7dd1c59894a2fc5038c4b"},
+ {NID_sect409k1, NID_sha256,
+ "dbe04561ea8579672a2b3afa94426a3cbc274b55263989d41a778bcb082da797d84d930c"
+ "a847a481789524940701cd5f1d11b460bdac0bffb0b3a3abe1ab689c519700de85a0a571"
+ "494ba0cfc3c865450eba7a9e916b7fa9df55e8a1c246c992e6a0b44b78274e008472bed8"
+ "d8411633e6520e1a906c5d0c8aafd572fe6f1f64",
+ "01b8dfd64563dc219d6eeb53f2e3ad1d771140d0960b211dc1f757af5e297dc7548d6133"
+ "ddb574711d466688f80dbd65a7bbcdc",
+ "0401ec530638ea0663cd3a9b237dd66402adf50d3094391f2343d7d6c52c1d14145c2454"
+ "64a3b771e4b1894462fbfaf440e53eef7e018349e244b24c8353811c29a60d8e02caf195"
+ "a424aeafdfd0361846d5ce5eb83da1901700f00fcb85a0c2543b49a8a3ccbac157",
+ "026a26cd09c9329cd45ceb4c798846dd81af67759794f5cadab84de19a835f8a0ae49b12"
+ "853b1e92822477a73891f85acce4216",
+ "04d83a5f9dad246717135bec6e386ec6b73be9ea6d1a17334ea2003a723d510914167d13"
+ "6254d6cb64b16ef7eec5044b8f2ba28",
+ "03e81601d0c66b507a491c530075edc5b09d770633a4c2355b3b1c7df9b200ebc7dcb706"
+ "be1696aab70d4c6e1c4a7e532284670"},
+ {NID_sect409k1, NID_sha256,
+ "48a8300820fea2ad83c83f7d6b24192715329c3f159d56644e11ed25efcbd3d31600a813"
+ "b909812987b97d1087e74a63b4494cc031c63492b6615e9d6e5b36f62cb2ef88b9f73659"
+ "5800de465789f43811165a5fc093ee6d776008739de8de2a84e878748641be8bd52e5b89"
+ "1c4145f52bbd46644852a43108e93d86352b2a3c",
+ "0422131829608ff730c24ddf7e8b4a2600eaa9681eaf45432daa7d41fe2fb488fd0199d4"
+ "31a1ed823801ce21f4f01a4dd4248ca",
+ "04006ff24eb0ab812303bdc9a23719caa789eb75775e686b9511bf6e07d60447d1601a48"
+ "ae7f3041cef5aaf3ed2adb6feb422fbc54009a351fdc9422a81ebef5407d0d74b52a348c"
+ "af3cf6e1c6c2af722c408941de154619a1d54bc23a9dfc0c4964f3936d62daa6a4",
+ "0313ec63c34ed325d770664aed3bfd1a16eb636516eb686e806b0acf6f0d117998b30fd5"
+ "2068a36f03d0db3ec13e6989c6f196a",
+ "0088167f96d807bdd61e65fadaf0c56b623db42b831909d12641e4d00e7bca6077b36cfa"
+ "759fcbbf087c31f294f20a09e0bdc96",
+ "01cbd06232b4c73cdd13208dd254ebf9351745ee6196e3a94b9213e931f141e4cc71f3d3"
+ "18a67e7b8060e11e88783fca0be41cb"},
+ {NID_sect409k1, NID_sha256,
+ "276e3a986ce33256014aaa3e55cc1f4c75fe831746b342eadb017676b0cba7c353b3a2b5"
+ "54522c12e6aeaf1364cd2eb765a404b3d0aa61258194a30219d76d2bfa98ad20e7e91756"
+ "cf65e50d7914157f283f2ba3930c0ad3a97532cc747b1cb9c806fff497f0322025a3d02f"
+ "f407fc7b5808585b91d95523c9d5864efdf7d983",
+ "0095ae8e4c7e55eb5da01acc05ecfe72a4dcd8ec152f1c8dc165014f70eb4e4a7861aeb2"
+ "b96c418b2d4db58659e76184e013a49",
+ "0400a3987d7262dc30e8ec11458ff7091ca993bc61f142ee535d544a2c88a47f96011076"
+ "19617a5e65cdd6d5e1a034aaa22304434201fc8af29d5134ca9baf92041b6d6aefabccac"
+ "a4013c55c1581ac05db6141290235ea09650a289907785d282cef1b9efb381ae66",
+ "066015a77c99015ed6983bb379772bd90e03b9c010e695853ebf8e461a20fc12b20bdda4"
+ "7eef856f162dfbd9fd4fc1ec49105d3",
+ "067c49b96e5bfb6a6d625346c3ecff13b8c8b7e59c764b73b256ac970aa4056460000e59"
+ "9a8195f2d235a75cee8e5634acfa7ed",
+ "03ce25ef1af0784645f0579da381542f5b8aef377e5b79193314f84853e2a07a4f1aaa4d"
+ "8210f3a3c249a879cfa3ea8af43a929"},
+ {NID_sect409k1, NID_sha256,
+ "6a4fc1827c3a7256faa8ec6a0f3d23559d6949f8cc20e7f76111dc4ebd59213951cbf0ea"
+ "dacaeb8862d6baa0cb298645e4314b1c303bd0d5e9893304d4b7fbd36ab05fb6a5edc3fe"
+ "f763e3a4124d61539eb616b359c5cb55b5e2bec50c91dd95fc39ddf521aa854216eb5a70"
+ "7819fa6f067b316a17a3b146e7cc2dd517f7d63f",
+ "006f2075bd730f34df111ebda919167b1d3358ada32cd6747cb3353bcfb814a77ac70cd5"
+ "1b31a0e538539453bf9eaf9d8b384c9",
+ "0400bbc153deaec0bcc36c03d24afd20dacd9e78d104d94c279278d04b597ccccae43cd3"
+ "e64c9e1e58fb5408f376dd7827ede9dc3a015ae0d803acf12d9d3fd41f74357b1c93cec0"
+ "480f2e586d0e18f15e569d27d3d106e192ee0c1c570351eff1f463dc07d3bea933",
+ "0314330098250e38145d11a48f5043190c6b44f8572ae57cf83b1f3c4c03ce38b90ed5e1"
+ "57464c2613c82943d78c938fcde89d7",
+ "0160b20c370ef4b9cca3f7dd3c23f70efe6bd80751ca021731bdfb0f45ae07e5f2144c77"
+ "795aafdb0c3a92ebbef75fb2d334dee",
+ "045188dd2402ad36ae4278a9910648ed5e71d64737651c133aa89850e3bef2207d58ba41"
+ "69e471a4737962f5fafd50a37a28e1b"},
+ {NID_sect409k1, NID_sha256,
+ "4b088199bd8c94775d8ee508377d672dbf50f6d2c7370e99821ec8f9387492fb2eebdbea"
+ "473ea18465565f79e2af418555f10c4a527e05a9e20c9c00b807dc8b350cd4ccc2d87e91"
+ "f66addf02ce4f43597aa258ac6fbe9365cc2c8e8bbe5c884abc929710e8423cd6722a8f4"
+ "73bb55804159a92a3d8b6661a536b4fb9293bb0a",
+ "03887d284e9ad17d38bc6da9d83c192a434c509340a7f233cebb032b09ab7c4c6e8730b4"
+ "a80844898616c9abcd16b753c6bb4c5",
+ "04012a6d5c5690ebf14ecfa54ac97b73e88e16e757c34c6bbfdc9a3a119f298860d330af"
+ "295756dec41eedeadc5257b202451faa06019f40ff28bb72af659d5319286fe21f018199"
+ "52d471ce2433ade745042a47c2dae798199c364ceb99029c2dd5cf57ef5daa2b00",
+ "035945b45221300f83c5fafbaf0645a7386e209d025b3e1dc367819728f630663fb732b2"
+ "51a019e08dde0f64dd3f60a10065c50",
+ "00c323c86e8cc548123d1337936d4be948bd4bce4631a2194c2bf04e1fd714df2c90e368"
+ "1e41a21d58d9567a5df9fc478dca8e8",
+ "0493d3f4d22cf8517c301f15bde52cef17c05fed2482f3ef15cdbe32c5f0975e054d45b1"
+ "3faf906896201942f29e5693bfbb229"},
+ {NID_sect409k1, NID_sha256,
+ "848a13465ddcfb2dc14f7bc0db0756832c22dde1e31e4d8b3ae0dd1aafbdf15e954889e9"
+ "5d3bdfd6e5ebb6171fad62592c23277a89e8ba53978c9b1afedfef7e1c3f6d9f31077530"
+ "460b47834b30bbd84a4da601be988738aa815d3d7e72043243a5288751ee08b4815a017f"
+ "b5d9bd55833698a0d526b1ed79da35ef0fac93da",
+ "02ea5430610864257c9dc393c3addcd0d8d5bc8aab1067643b08857210464428aa85cf1a"
+ "e6c743fd2682255d4c8eaa46ca21e73",
+ "0401e502d3f47823ac7207861855fe6f6aad1fa4f2149bff2643b079da23fb270599f744"
+ "669b3c8ceb4cb0989aabd43d26d93c814600cdcfc138451bb59f34dc82b8128088b5ae0c"
+ "b8a77dce1895d5ffdfc8b4be24a206b9856954508b82b80d0163b276683489074a",
+ "0426b90275d720d19c6ef5c8c74c568a636257740530e3ad10de0d518c4eaad8bc58cf45"
+ "06cf5cdf7f2b03edd1caadb28fa3787",
+ "0123ad87c094c4ccfe4346dadad54a6b1ee1bffaa1b7b9094fe2e6ae785a2b77ce3f5e56"
+ "8e43e8b7fa997206262645f56078657",
+ "00d56cd5cc64736ff7ea0d9840916b1e1c94e11611f93b1b11c2ee98c79d92a8af1a560c"
+ "9938dc4bdd0b84252e259ae5669d1c3"},
+ {NID_sect409k1, NID_sha256,
+ "d1850545c04ea65528849973c220205c35eae98826d169348970d1420b4d872ce233af1d"
+ "aa9e62f6a562544ae3a0633a954a493e9766dd5d87e47486559fdf86229a7c9e1726de21"
+ "895abdcf2422d438f4ad98d88b45c56742694ad5e11894253270997c049f0f419842482f"
+ "21c792fbe5613e2defecd485585f1835b6f4c578",
+ "062c757c92eaef41f5d81169ec4968145b5aa2bc1d2a3a5fd000634777748ecb93677b3d"
+ "a12e3be33272a8f0a52300f4a5a37c4",
+ "040139660fb8bbba59e8f4e95e5ee5b97227220f0e1b293901fedcc6dab86e7c5a9d20c1"
+ "a097ee2e926a934cce679fb8dcd8d2ed6c008ac510ddf735184e8fa9693da264194fb78d"
+ "a5d1cdc0bf5faadb33950ca191fe233eb8dac8adcbfe15b4f7c09d5ddeef6bcd1a",
+ "026868bf1764993d650aaebf117521cd146ea20067cc14a5843f726a3d68e41c3fba82a8"
+ "3d406b2275b3459748b3bd1a8d32f1a",
+ "05b17d13ae4d9535d062a2653bae4d15b9b859a87c33e175adc3ef04781bced888f3e93e"
+ "9804b2251a40b9344c0f8c6bd5be0ba",
+ "01ec3322c5beba4423b13a0528c71739a6b39f7b0e0e58a8274a8386167cadef51e5560a"
+ "3e9d97447e3d3c06288459fe6569345"},
+ {NID_sect409k1, NID_sha256,
+ "421c9784d6fd507c82904e1054edf9bdd1efb58a0b211340086069ad38b7b0dd15c2345f"
+ "a8767ef71254ed1bd5c35f742b1d3f4765ff9007a5477ba9e5d3d5a5cb5fab4efc1cad73"
+ "701d4776c6c4343f42b5d94a9eb78ae428dfe5fbdd8e6ece09d5b75cf4346cf27db85635"
+ "2225ab04e6ea56661554fbc39916accebecb3935",
+ "048a313c0c11489939fc0cffc6ccb9f179093c4e13141b92dbbaac441b7ae878c9d41206"
+ "6e95615174a24692555cbbe904a14cf",
+ "0400677c2d364fa86b8b0c79af754e675ea3e806d5583e62087e01590b824d2730e31326"
+ "591167f02bdd29f8178787c4e1ba9d249600e7f78c423baeebf6defe9feb8ada8874ceca"
+ "b083ca2e71d9d8a3fbe846eda69262a1f5b4a3baccaaa4f2cc87220edb1fa6b6bf",
+ "012b8df87dd935775b80c62ed6c76974fa5772939a9e7372cb74e033fbae4f78d75b8bfb"
+ "b82240cf91009b5bef4d63ded04cbc9",
+ "000590a9e8de60b5cb181a1c11c2f6115c66b05e71e0c558ae203ee18e54de68016f4c7e"
+ "d2f01cb0cbaf1bdc45218c0fe2b1552",
+ "0521844eee9168a501e235de5fd19c84f052445fb0e68bba687ace45d8630070ddd3b730"
+ "34d1d65788a51acf91273fd187a24ed"},
+ {NID_sect409k1, NID_sha256,
+ "7910bab15b6429947655e33a67f41b76f1d7b71534f8904d6a0472c2faded038565272d0"
+ "b5f51aa915e0d624e9ff48d50ebfa2f09324864f26c29ab73eb39b436c5c459c7cff4d2b"
+ "62992e3489cb4ddfc05d7366b161a463aa1b782641d93507de43c8cd0a0a0a9d1c644f45"
+ "54e3edaf7fd794248110ca9387e73ae5d00d299e",
+ "046e2adfe5d3549e1e6fa1fe69a7cbb4ac9b111c8903d544268f8318b0b47d4b78fe3e56"
+ "eb5e639ad5382e7cd5bd4b2c3e70ef6",
+ "04012902439be50c97aae7b40328984934d6c843415f76f3821c8e8323aba96ee41359e2"
+ "ce5ad3179063ea5e2c7deeda4d728d585201eb59fe96b269cc973b1fe1f3720aa9aa6ec4"
+ "cf303c5cccbaaebe6ef7c9f5356ec5e76b26b09479d9831d9f5aa41ae1d61f4c47",
+ "031893aef1baee0e21b50cff7002435b058d73dc4d8301ffdcf1e0c315d18c2b16f282e5"
+ "b294dc88369b25e2a1a19abffb578ab",
+ "039281ef10b9a2664b755a2db67b3c410276a424edf7681a5c97244eaac5826368a8095f"
+ "1b9b76f8e490e2783694d5bcf3565ea",
+ "039edd50721dd35d1704167e8cb609f309b9ed73d3c1eece181f9582aabc647c5ec8bd25"
+ "8e5802fb0647372e4c3929cf59ae2d5"},
+ {NID_sect409k1, NID_sha256,
+ "e6fc96e060b956c25d50ad25443f3c30a12d199a47451a49ce88307201dfb15ed816982e"
+ "8888a28daa92eaf3c5584ca6ab2ca9e14577f84396de2e0ac214b24a2279f5e7b344fb73"
+ "87e9afc8f0a2b77a4d024a20ce6183499b17096947444bbb753d9b39e5c694239d28f9c4"
+ "54bb05468d17ab564ee6cea3741747ccb7f108af",
+ "0480103fd6180a431c837643566706e2b9597de0a1346a224d176a5b2c54aa4d064418ed"
+ "654a5d39f4773fb509f86473ebb373f",
+ "0401d39e2772ff3d26c5936ab347bd5a2940ece42b1964f030c59ab453acd7f44716ba9d"
+ "88f0828de1a4e730ab27fe1859915818c60140b1b66b0a87de29ba2cfa799d944b3b898f"
+ "e7ac43de68b01fb41464506e2f014e0d11bbc0c24996428c93bc1a5ecee5956bb2",
+ "06e9bd0290548d35168f7db7fc292bc161a7710b78ac49ec6a42c9423afea1310597e597"
+ "8b22b4dfa192489323b2317e4714d37",
+ "055dbf88b6221dff098345226d59d396b6773611ca6e747d26d5d758760d830693df0f5c"
+ "602859f9caffd0dc3790dfa08c527c2",
+ "03e679447b622c4b06871f2337f5a24150e76efcef9698c6fd463867508e9d7b803667c3"
+ "2989a881c98a90998944c070aa58b17"},
+ {NID_sect409k1, NID_sha256,
+ "c8a8a0d41f35537e6fd523ee099eb45e1ad6ab54bed4d3e315e20227db03292e39dc1a91"
+ "bab439c0d20e36e7fea6ef08983f390a6b5551ac3b4f1895220b2867fab95552cef9bd87"
+ "02962839bd9b2c72772640e7d3be3c5889d226acbefdcb448432bc503e5a5fe7ae9ae769"
+ "6c720a799f9882c64ae0385f656074dd8a6821f5",
+ "013c489e8311c6bef02c8f58903b2ba2a98a27cb935d75a30d320af9a14fa3cbc6adcce0"
+ "9235a9eaf333dd05f4b2f1694985dc4",
+ "040046a1c0e7753cb499d19b2805df770ba54f1c6e03611c302c73c72902867c51c1cf9e"
+ "d154b8f30f72002421029de7ba2d8fad22002aef9c34c7c8216a805a58dd88185f404930"
+ "86213cb4c85e4d226bb5e892aa37be353d9123e9900f8b0790a43d55a19d78c48a",
+ "0491dcc881731112ad5e9e1df459c27381a7bf8270f97743466e178bf5ca903971b362b7"
+ "3fdbef8a75d4292e63e225396c7b32f",
+ "048425b76147427b8b1969bba3809dd70f0fda24cfb0e92509a7824f027b61cd38441a69"
+ "1efe213f3c331da8c82f94bbde511d9",
+ "00df36683f22e9e86c88097d75409ea297d391550440e4327f67b7af1b09141a0e7a1db4"
+ "0c4b0bf4d60376a6636dbeeff0b6b91"},
+ {NID_sect409k1, NID_sha256,
+ "3407cd6d2845197cd7414a30fc3df7184da204222ffd65c4d16a12cadabf603de8043ea1"
+ "4f5e6ddcc22d3572dc06dec1a23cd924e1847ae285ecf01754e2d1247876431eb98e897e"
+ "47412a2330bb32990f9714122109e94b38f82cfdbbf2eeb4c6f88f5dbf9f0ccb47939df8"
+ "be321dcd9bfd9bb99cac9f94885fee7d443fbd87",
+ "02419bd2200f8e1d87db848b0379741685e680d9affe693eed49d82931030b6cb05d21a4"
+ "965f4e1df2045c8513a8f574ca9f2e7",
+ "0400641a6ac72455ceb142e00d6854acc5f8b86db7bb239a5054c1ed48dffb6d050458ff"
+ "ea8adb68613ad3cf5977ea7330268abaa201a954ab7d62796e5aed370285d3bf91ddd34e"
+ "ff3b995d04967db41c2171cb2157d85032c998795ed476c891702d63ff0108f45a",
+ "02e9928f427a86c4491a47b31454ea7d497435af81c07bc96fa61f4507494fbe4ffc1fff"
+ "a8faadc2a44c7e69c4f976661750f8b",
+ "01e8ff4cb8c58fa48aaf61488cc4118df90e8c06cbd88234cc920e5795597ffdc0ab967f"
+ "a7461082a49de56f02f84cd9d564316",
+ "06e77ac43fc7af3c126f997fe15011fa87a27479fbd5af48e28ccc2c1bedb6c0695291dd"
+ "67beeec3f17cbfecefbea46b6325fdd"},
+ {NID_sect409k1, NID_sha256,
+ "ad43f8440071285d01fd79244907803601aff4bc5d14c77483a87cd742144d41c68269d7"
+ "6c9a83c09d2178bbcbdf99f927b378497ffdc907a75a3b0ad019e69758dfffa480871eb6"
+ "e1e17c8539373de611a557fad120d0bd147f8debe5f09a02e56fb607e9c1253ed592071f"
+ "042e42fee39775b407225a2b86a950d81bb7d7ef",
+ "0722951879a65bfcb414e11712ee9431eeb32319e0ff28601112f89276ffc2b96eb65c7f"
+ "d77d023f09914a53e2aae2c84652bad",
+ "0400a0304caec1b68b34c822a2a031145677fe515dda977f6932ea2a3291c6bb4fe8f297"
+ "b7d3c632f9b3806a8cd26e32403c27fc7a00012d4c3231898a4202f3f251802c690353ae"
+ "9cc28ae5089e259149bce444d31a38927dcb42ed613d4818e235884749057ebd02",
+ "0331611e81d3e6e3a24cc829c1cb9087a8c6f64c286e5f1acfb1ba764eea5ca55be544d3"
+ "cb95fb98407fb6c8f9eb1b3f7ae7386",
+ "056901f11ec69f91b31f7f41f7856752568b7d34ff3af1a2259fe15ae0b01391eeaffb62"
+ "9976525fce5d182663b7b23a8001bb3",
+ "04e89c3155afda2e64c749536392554cc299b70020362e6701e3a649f0a63ae5a5da4efe"
+ "d5c73b5e8098c0cf47d6f4c45c6fab9"},
+ {NID_sect409k1, NID_sha256,
+ "d61a3765229dcd0b4fa6c57280f851ec2bd54d3ee2436935cd6d94e0120d0844adda1639"
+ "95fbc4cd9d7275da859ad8ebf30af9efbdcfc31c7c9ef42bce9011d37cf9d15fb018e117"
+ "bbc102f7d05750e5072f73d02c2f45509a55627a78cbd9082cbf36807759d1fe2ecbb92a"
+ "b30cf28434941712d38bdd100955d611987b5968",
+ "03f5b5a772d24bd5454bf26759dbd433fcc7bae4f5c593664c4d75da0cdf9430d7d9162b"
+ "ce3d7f6e13a344259da5a7d6a1635bb",
+ "0401ca1441b1f6e13138880196e69743206ce09c439a507a11c0fed069d4ed23676b27a3"
+ "a337c976c276809ae725229c9001708742013c47b14e3069af070869c12f0f39e35a6f33"
+ "4d98210d33c9da01ac80057911f5a392fb5c8cafeea01c1953e97d47e744160243",
+ "01484461d02c0337e8113e51aa7d46330f57d423b79b580a544d372524a853db9dac0c0d"
+ "16f733b273bf888271135a5162e70f2",
+ "0256d7ab133904a792987f8cea69e8e3cc674cd3c577f40ef6f12b31f52ac6366a2a3ea2"
+ "b2272c7bab8be00ca0d17989b6801a5",
+ "020d82cb9b3b1f25d993fc18b7303db4cfab91c03a97b249176f9bb2aa5ae7f589c74060"
+ "d25058c7acb6de1e888ff44481185b1"},
+ {NID_sect409k1, NID_sha256,
+ "1f3c23636414ced48fab6763eed5b22537968e6bf08c178b3d31fb1f6ea773c697975970"
+ "1d94bc1bee7c354272811edec58eff50c93331b22723d460e56dbee90466b894354777b2"
+ "3b13a37d15a84c762caca70c01518bf34d0c2f072145d274b3b6c932b48bd815fe81161d"
+ "8507ffbc2f783bd212c29b2887af6d2ffa9d2b4d",
+ "046bb4a141c9099d531dd23ac440eff1f5b10f7cf34920b6b702311d490d25344c665ed5"
+ "211d401def24986c8094165d10f8934",
+ "04013db47ac0e33af0cc7d74f6ce647fd80cdc1849b15c349bf501c95893be5a440f85b9"
+ "b029713339fb888d7a93632ea4e0bd813601f26f7009cede02e054d6499c9280794184e2"
+ "12e3e1091032fe0e3c189de26d04aa8a5909569017cf06ac2a20acf579ca81f3fd",
+ "046e55a908f13441bab63e5327ac346781399d5a9035a72aa21df708b814b67e420b455e"
+ "1410014cb53e6ab00f526ceb396bcf6",
+ "06db7a7b03d6a85069a943fcc332cb8c54ac978810374b12eaed4a5fa5342c8eabaec238"
+ "bfc6107fd03d75dc2c6d258c218a186",
+ "010a4115161765dd0c22a0915a0d8cc01905de91d3f08c6d2d85a6a92e1dc00904f3be67"
+ "fef000ce19f57157deb9afba7582b59"},
+ {NID_sect409k1, NID_sha384,
+ "ec69f2937ec793aaa3486d59d0c960ee50f640a9ce98a3becffc12d6a6c1c6c2f255d37d"
+ "29f9b4d068373a96beadac98fd5203a9f229bfc70bcd449640165ae5128e3f8d057769e2"
+ "8356e73e35d8e9af7876f608390090892c67391ddfcc1c332aa61efbf72d54bc615998b3"
+ "be8ab0a9d372784bea48c9fab244482c75cb2de3",
+ "06f2c6e9ea8109223d9a349fce14927618fc4fa95e05ecf9aba1546619eaeaca7b5815cc"
+ "07e97ae8cd1e9973ac603f84d838393",
+ "0401f5a9824584cbb0d5ed57f677caf62df77933ce19495d2df86855fb16456a50f157d1"
+ "8f35ff79b8a841a44ee821b36ea93b4f4001a88299000c07a9ad0e57c22fa8f15218cd90"
+ "ea1de5b8c56d69506ad0fd12b513ffbd224cb6ad590b79c7677a8eda47a8bdc484",
+ "042325aded3f71fc3ff0c84106f80a10af08d76d5e710a35d462e880e015a36d06359957"
+ "3ce2044537b9f62b51ed4fd2ed8b860",
+ "0667c74ee2d632aed13cad47e0b46a5176940652d7da613e4965876e7e22d89994bdeadd"
+ "6b5d9361c516fd51a4fb6b60b537e9c",
+ "026a01220a1166a4d0172428753e98caf0aaac5b0a09c5a3f11b2645d243991d141f59d6"
+ "cc502ac44b70e7c48d6b0d7b6ec4869"},
+ {NID_sect409k1, NID_sha384,
+ "70e11efc78d7f079ae41ac3c31c96d3220f4abfe23814a2a4a78d9b1a25e838c3408bd41"
+ "6062e4b0a5cdadf0c6e16a11e00f59711b417751f5e4b43ecad99efbdb2a81c91a034e89"
+ "edc94eb552c3eba62808563cdf64453a1db07daff8742aea4a9fa738e1322da316b26dbc"
+ "a2954b2bc0de6da7518d28e6677dec6ba8af4285",
+ "004212b7fd913d794fc6bb33e0276e349c052c969ecbf6afc89b28f75a599a9242acf74d"
+ "ec9f374361ba296ba42a38407f9b7d6",
+ "04019220ebacedc60762877881262c0c3dc0c8a709fe2ea16cdaad3b680d7cc8aae8617f"
+ "0acc9b5c9861ede651481f39927a24ecb2018afd77bc7fe54266275fcadc0fe8d4c0dba7"
+ "a1264c79bc31479f4bcd02245cde991791a7b7e65fbfa907457fb6d450c0985ae4",
+ "04c01ff477786304b24cb9c95ed70ba376ed6e4f6b3ab2f99ac575c92d3801e7f43bab07"
+ "2268705d61d3e2fd881f754b9c84235",
+ "00987cf8ef2b382fb25a6a542e688aa96c098f5d16be0c7d46e961b4a4152c372cc06839"
+ "93843bf5a04f81e6068843582fca48c",
+ "036fba32f80cd2e66bf31baf87616027c5b107f72f11fc766b42e2774e29e10e860577c0"
+ "d3a27a3b49754e6a189680b7a638408"},
+ {NID_sect409k1, NID_sha384,
+ "d922fa515e3bed60b517a2d37cafe4c041e5ab4b5c8d8d4011bf9fc4013dd8abf7add71f"
+ "cfde5e71d6abe76bd0f749e960cbed55711c87b5629a2c39cff48ed7d0feaf5cc4765e57"
+ "6a4959521f9a45fcba0dc65ae618826447e02ce6e1cab5ce8d6c96c3211adbb0660de7df"
+ "7453f3aa726016941d00d8ee536cc106a603d126",
+ "06baeebb5ffc89c94c3e8b37b9b0904e7c4b251d204894655bf3b1235710215c29820b9d"
+ "401c9ca7df1404d2d62d708aafe208a",
+ "0400a0b2a185ad7ddcaa0d8d21b643a14948d3552e25875506d64e236a90d274ad1ca678"
+ "e628acc208bfe6b56c02df9f5a36aa94ec00fef210c7137237da8ecfc2f069cb9390c132"
+ "d1c6ce961f2bb3ca925ee727c967f8a46727c8811c94ef66f20836c661a5cd1c59",
+ "02185be104ad16abfe4fb83de5db067d37ca58510b786b109514debef56cceb4dd6ebe53"
+ "b25127b85faf9c28b56d6586c26d60e",
+ "0404831192b4bd453c0a7e850815ac3fad88c7a2da27d29e83ca6f22213635a366018ac0"
+ "038b1fb1e4c512cac15b614fb69b3e2",
+ "06f677c361547c91428d0e200dd00777262a138afcd828238d132c56b2c232e2b446cc69"
+ "3fdc4013f05ce7021aea5b5b2f1b34f"},
+ {NID_sect409k1, NID_sha384,
+ "4f64d0f6bfc542a0d4347576935bd68ca88524ead03b8d2c494061d0658e6c3e14576b5b"
+ "cea5f2f992f54cfb52b5c7cf1dfc517205e0454510eef1b7054a8cd06ab53ed2468193f9"
+ "8ff0dd62faf076549ab2a270f259276d5729996c120792c6f466a74ab65035bf38ff2c05"
+ "5b43e2a8b8e2449a2375ddbfc18242157bd905f8",
+ "008e5f66ba53e7caad1feda122a80c32c82d2c32a7237b8ee8ead44ea8f2f01d77c7056b"
+ "9dd60b92d051f060da8532c1fd0e8f4",
+ "0401a3d020a0c7e3f3fe5b3d9fa6b6148cd0c481b4f9e14dc85aeffff35e62545654fc31"
+ "3f930ca2e33dced28ec28d0fce6ceaeaa2013c1ac166c3c088e8a4a9d44556e3344e52e8"
+ "741ed1a8b526a45268086e2fe54c24d398553d509439ad4957454eb68af594e683",
+ "0095caaf063abba5073aa7123b2c0e1666d29bfdfdfb0c484e18931d756ed0845ea15dee"
+ "1e9abcbbe4576113a8806aab9476b16",
+ "04d6e33001933221e9eaa78da5874f639749c7396dae90f2da4ccfca15b50ee9e50521cd"
+ "84d78a098e0c383fab0186b3dfe1b3e",
+ "001e17cc7baa3e9ff4d882da970caf7d55b4e0fb7f0cdaaaa8290fe2fc9cc31d51b34b5d"
+ "cc825bf6799ce22fc95382d46f3f98c"},
+ {NID_sect409k1, NID_sha384,
+ "7047d478ec5282d55db8c19c97af10951982d908c759ff590f27d57e2664f08d526cbb2b"
+ "fde39bdbb1aa3dca5a8d3feb50b868be6651f197abccc9d8040b623de367e2ea1d20ecd3"
+ "02afb9e273f4be9f3f64f2c2eb3f92d5e0e375db6549da2a589f0604bc7146562ccefd15"
+ "995a7c4208f640e7a17afbca69cda4e173380523",
+ "04ecb22b44e809f89b16abb10be062c89b41ee34e110403e42a20ce59a99afdc22f6f6dd"
+ "a56e1d9d1b8ce1d057f390db111def3",
+ "0400dbb4a6ed11f36eb78417269c1b1e9725eba1666591afaffb5582c8b4d5bee1d73922"
+ "b0164a05bf21a12052171abbdd3130555201eb385afe8588ceaac9f39a5cb4455e02bca4"
+ "8f3d2242730e0f9e06ff1db24344379f96356531676cd5af234a120f4b61f7e041",
+ "01cc97a718ebeffed4ca7a9a4389d6b0fafb73ab000463b68b5580267aec203b6231cfb5"
+ "afbf7ad8192f0947c7f40d9e060ab32",
+ "021a29f56c31227daf0dc5dc919434978943b80f4b18748bb5f7d6702153b966a0a4af6f"
+ "209ecfa3aae0e4f32a1b7c6ae58a55f",
+ "06921b2e2ab81517a0785c4ac3be3d7d4b4c917d7a1e4313b123ae96056a2a4a66d9e008"
+ "19d8c1cca5bc0d75e4e05477c1fcbff"},
+ {NID_sect409k1, NID_sha384,
+ "1a8384b4771a410663e56eb36c5d9ede8d161a8fb0e31d3f74bcb017b9e31232bb2e2f4c"
+ "65a2d85bcd1cedd93ef08d4bb4af0095731574ab3f2762788a1ba3bf0ee46684da8d9dd3"
+ "84432fee99ed3c69213d790a5d81b351063eaf2bda71ca4868ac36be1b571024a8bf0903"
+ "9b347fa996d5d161078314e24b7d073e05cb3d48",
+ "051f9500c15ae73d6d479b9f3d2caccc2039d8d03820befc2aae3bbaf65d59bd9cb3c4e3"
+ "aa8bed5b3acb70a5566047ffad80729",
+ "0400ee8ca7f55225760c515bae053ebbf4ab23567f95c7091fee2acfff079eda297ec6a7"
+ "e9d526e12e5976431f9d7e52a2318ddcd80185e2c17705a2555fbb8afbe8e41ced8ace95"
+ "c83e198be3c7dcdeac8c2c5bdd988800f1194e553bd0348ebe6c29c16f35d50895",
+ "073f96451cab2d3ca9810e265b3461e0fbe7f32fd6702f06891b97969b133eafd68e53b5"
+ "26b5e32b0d06ab61ecd75e1bbb21b7c",
+ "067d55e709f6966cb2082d8021a313850c53305a3bcc926b6f9a122181665328fdc8e05a"
+ "88de812357be85d22c61c919876fec3",
+ "063d5ee4a63b1fae39f266a9f826754f5bca4d7bd414dedd16858b5c6ac2d4162e28ab57"
+ "215c6713320d3d6960f6b55e3f1897b"},
+ {NID_sect409k1, NID_sha384,
+ "43513d6dd8bb0af7a6f5a2b35f99957d335a48d54f2c4019ce9518b35441d4935518976a"
+ "b1df37110b5b53532cd9e2c66d9f87ae7f683d7efdbe1775a6c15eecee84c6f879999d07"
+ "06f6779dc158c111fe8d7201983883bc8334f51dec60004eb1087347bfdab20f8f2f2605"
+ "56681e05fdbb8a6139857fd3bb2df5bc1f2dc143",
+ "00cf01dc4462cca764f4f8cbef48c51980737b9b98d1384b8de9f4c733829db7718a9b5e"
+ "aa46a8475c2144fe4454cb8eeb0a443",
+ "0400806457fbb7fc577497c937600c5a9c4df2c20cf7dad4510e5ad617fb2849bfe6956c"
+ "3efeab6b805cb7b63bf5d1c94e5ddb456e00915071cee2094efdcc155f893da8d83d9a5c"
+ "234d0f04f738b7af5b8fddaf1d3aa152fc11894a13caee0009bc106a64323e9dda",
+ "024968902b50febf13be11821d0d316f2daaa07737af45ce2e855aea6ed58f226d2279eb"
+ "e4295c5d7674104bff75b899609561a",
+ "0549f18f1d654f26ca134df4707694e5d9b3693bb34ab5123ce4d9e4c2b2d9756ddad957"
+ "a4169fc9bcea29944903080f6f5d01b",
+ "021887355c6360bc4ee59f1badb5325763e9428e60b31a7abed06ef03bff0b1265662d60"
+ "4dd2e0140c355c70fce1b56ab143201"},
+ {NID_sect409k1, NID_sha384,
+ "752300bc5066d0efaf807183a41725e349907b7339d77c79921ead3c685b616b0eb97e70"
+ "8f3880fce0136c510c8cb53b22cb424af6f1c34633600939a0647c02d8f9601f9416f1d2"
+ "4a51657241fb559c25dfba91402cea43bca1a13718b3945b048725f3df560e6717cfc6eb"
+ "d894e29bff1e0c7763f15b8ea93e67385f059598",
+ "063a9a565497974c6dd459bea0d1196d74f263f333c31b7e8591499960e1cd79e2ef4cc8"
+ "709f6d54713f873b16e7b0be42f71c8",
+ "04018872e9d9410dbde671fc050ab88101f01d146a72d62b630b29790b20fc02cb62cd0e"
+ "bb5b453a46c60ec2d2c66de8715c32057801b6af51db1c42b743b89be0900d23f7da80b1"
+ "5f2e7a2a965c7bc13800bf58589560af4697f873b6155194badf5a19a653e63da3",
+ "01d3278e6e78386146fc15006258d7a62a1345db3c2e44fb8d3bf8101727bef254a9fbff"
+ "157072326a85b5ef4e17c5b0212bedd",
+ "07bd5b54d9c6d6f9c87f4a66472be2c4bb7f521ae56c1dd71781d95440b0a151d206ddf6"
+ "27e5ed3f9c7df2fc914a78454e97616",
+ "075e39ff66ab0e0d1b46f9679b95d10b692874d45fd6898c569aac28a53569646bb29f85"
+ "56e529ef83a15c574ad5e1c82878154"},
+ {NID_sect409k1, NID_sha384,
+ "f620603489944769c02e2f902c2299dd5f32b5fb463c841b7e1fc0249a85d2c31684bd3d"
+ "aacd97de8291c5d39e84d6e59d3dde1b30c181bfe8d31b8d8e080bd191690a67fa00024a"
+ "c8c1b10981b40d4f88789ecc58fc69b15417fff34834e23453bb9933a43d08afab74d056"
+ "f366b40ad167b51ee5f008db151a12b467d3eaa2",
+ "041074dc186193d30aac7cc6d269b938ab40b257d095e54ba79967a377a91b8f73671470"
+ "cd07f0a3d1db7cf0a31ba9070625e43",
+ "04018fe9848dc599a759d90530480a6f11d052d2ce21a7275769ba02a61658c3b69ecc54"
+ "6aa6599e6699353ee1d65ce533c69fb2180192b9c41bfeb2af4f29dcd1c43d3fe72a070b"
+ "5d085d070acdb8c02f0dba00c9471df1dcca1006709676bc08b8ddad97310e25bc",
+ "036447681292dc781f7f4ed60126945354ad1df5987266038c5049d698b2ae12965b6fc5"
+ "8f3e944c4751406087859973d8afcd2",
+ "0541c22a6cb984cafddb3269ba3ee56af64cb36d03b7cd1693b112a7df20f0422219f85c"
+ "6820130ad53ef69fb66f3326bb863a9",
+ "00fa66b163ec3582760b048ba9a0fba9443d7e908b67d749d732ac9b6e89c1fcbc6d3ff4"
+ "e02a43ee41414b15ead0cb83749e0a9"},
+ {NID_sect409k1, NID_sha384,
+ "5575f610762b42ce4e98d7bcf45a7a6a0d66ec7f27d6b8b17f1961249d905bc7e58e2ce0"
+ "806d467f106b16285dce4544c72666d08b5e2276cd0c4e13187cbda8aecf57b1855afedf"
+ "8fad39ee4fe009f204e60bdbec79b123456ec2d85631d382b8a2f2c7634af3992e4707f7"
+ "b4215e2c9d3b0aa8fb08267953883a4213669d33",
+ "010820db54ccf0226161aeaee79cfd2797f87702b4ee91adf8543b3c9e79579d0df8a889"
+ "e366ec1e0718e039b87a37c24d620e9",
+ "04002eb4e313f158ba7497130e2d64804ac45a7db207c55d41f39979e0303dd2641c8105"
+ "0fb7f24f2fd2485b90f60985cbb15d56be00a190fb6c81c104164578da6bd4f2b193cd11"
+ "935e1f87f14e824c2bf8c82c39f0be1a6de3dfc6dd68af8cb14f6a78f38773a7ca",
+ "0118e911f676f004fe581d1855e5795e5f4ddb33fb8d409d557aeea87895b7c23a513ca0"
+ "010f98b3a63f2c65da5e3b6c37cf5f0",
+ "060c7f7c47c16b294867cee3e65eac8fc828229a5d3adf8e68e14dee620e9d4e7b78c8b9"
+ "02b5042b5f19c94e621c52836c95ba8",
+ "008d036087b23319553faf835b793c73204cdbe2c1c2463e74de8f404e66ff15ce9384d2"
+ "6149e7300ed1a109afd1f915edef912"},
+ {NID_sect409k1, NID_sha384,
+ "81cf067411dde2d0ab04fe5fa1e28e6975cdcc571588de60a35bd956a535fbbda4affd08"
+ "03d244f3f7e6902a2c9a7ef2488691b6bef7f8ffb33be09ccae4c5285265e4957f7928ea"
+ "5cbabd6823297f59a7cfc9939a49f26bde74c4c69e2d38c1efbacbcfdef0112138431580"
+ "72be84ed3c1781f67a0e2d4e9ba76a585c17fc0a",
+ "059d2a06e8bfd5e14a9bc8777958b85be5e97af892d2cdeb0ecbd2d5017952b5042349db"
+ "5fedba2e26e7b85bbb31ad313d99434",
+ "0400af276952a1216ac88ca7a194f5b27b7c98c78c42f852dfc1a2cd4c1a477ed16eebfd"
+ "c90f613b6e264576a35c45f49aef8a564c00639625074b69346dc6c617d624d63ce415a3"
+ "6154a817f4e18c59a3b09e01589407077b19bbbdd57b04ef8fc2cc23c673d52910",
+ "002728f7e9b4772ab790af0be9ed5b3eab697c4710249169d2a5782ab3797b8fa21bf8c1"
+ "de659e3060af5a286353402ab982320",
+ "02a7027c6f94cc236dc8cbae35f9c38102a663b84f66143e2fbf9a152b1a6478bd803bf3"
+ "171f933f63509d539a54dd348002ef5",
+ "0549ecf85ca1bae6d9f0038dcef90c93121a654552780f5583a7d44a73a9360c6799e76a"
+ "632bc8907ce4626c0439f1518e3a250"},
+ {NID_sect409k1, NID_sha384,
+ "8ea18387940035cff2f37278d321b344231075db43c7fa7fee9bd3fdefe5e8f03e7af9de"
+ "afa1022eb108e19ec11fae34536a4fbac2e8c8139a081a997c080cbe8f3e2d2a72ff26ed"
+ "cc5338b21372fa1498e439e4d9bb12d51cc539f859047957b1b1f1fc30b90231eb06b365"
+ "a4d404a1fd5a0e5cef171fc95b04d0b557d78ebf",
+ "0405590893cbbe18f4ad99df28b5f9d17f8f1882269aff0b7eee9392859d68927a99c942"
+ "a3075269ddec6d69c0df2d76ab9d801",
+ "04006ce67ace45a9cfa0cb45e8e1d0eeb44e94bd7527fed6b563f1069140a3f36e010f85"
+ "e1ae5ef14d626c78465cae43230090baa601a66a58d87621b63ca662130ea342db029acc"
+ "2d99bf76cf6ec4e53ba71bde4b00e508d332081055a65fc6f44a96f4e947d729dd",
+ "0035f09e0c15b41c958596ad3f5c4bd4a3685ac94f19fb97503fb5fa29115cb18fdff4bd"
+ "104535847ff36650b7461550dacf2a3",
+ "051775fe1503ce80b3d581ea3e5ba761665568ce0eb7d6a7163d8d025d76002ca7bcf6d6"
+ "88b6477ae85d09c0d4017aba5ea8019",
+ "035cbe69edfb6fb99c9e45240b7a587c3805ab2ed6b0399c7dd8dd76187363b2ba1def66"
+ "b2c3dae4bc2e40d164bf0f4837798d8"},
+ {NID_sect409k1, NID_sha384,
+ "6a253c1aa17b2b1e6624afc8e7456d366ef5b1bd78e740538260f395481148a64da0b6a5"
+ "8cd53d7e06c691beae1a616547cd95c4d259a371e51c2c0e334c8a5311ae31e4c7af3256"
+ "86ff9f7a36f731010ee1a9b8a29169ceac36a060dd23611dc9713c615424888bb574ad5f"
+ "5755d7311bd169336ae986c977a394bf16487c4e",
+ "062bbb4f565aa0f23b88ab9029d33b995729d10fcfc33ba7c4051e2fbc72f15636a834e3"
+ "ebfe604b927cdfc89f53c57f36890db",
+ "040125242acf14c7e08e9f2f0194f734841758b1eea1e37ba80b9855a14100a5f0b57bc5"
+ "2a0200cb640121d96769e9cabc45362f5600dcf52cb899470943a37d260aa85fe83c3869"
+ "c862001021660ad09b4d73f7739ad331b3566bffad590534207c6db9acf98399b5",
+ "06095b4ed8d51e37f6c723648af4cd4585d9d250d7519139f58a93c75f197c4bbd1142da"
+ "59769a5fe178415c677caed1c3da667",
+ "041b212a54d4396ddea2898dadc363ac3ec5385c9b3b8ef1ea17c3d2f751d4f791372385"
+ "48ad759b5e1700d7d78072df3bf84e3",
+ "0149242afc524b0c3583037da153f539aad85aa0c19c6c70852e3c3923df8c3abd0189a2"
+ "abba872932eee2e6f45e02f98e810bf"},
+ {NID_sect409k1, NID_sha384,
+ "0f91d0f0139faf3b90a3d4bebd7e96ff6bb6f90f6c68321fb392637d8ab2a60d649a7b73"
+ "64ee6e4e274e1a8d342caee36cc11c56c54247fb0a8e8ef81ac4322b454dc9a195dc5456"
+ "7bf47ec8d4fa4cd32e76d78ea2d08bcbce3edbb68fd8597e56d5a9f2df4e47b2701046df"
+ "89615961db601bd8204584a6a6cfbb627e2a1190",
+ "03fad7031cf8810544a3e4bd1382c0a2e22c5a9fe4804ce67b27591fc516ee81dbac841d"
+ "399327168aa6abd79e2b5ef85df1528",
+ "0401ef0f918c683be57eeab95d5d1850bd492ace7f4b37785863647774a028e963ee2c0e"
+ "ea801838aa8217fad75c5780f1c36e8d4c01d5dfc69bcad46bde5539c58ebc89e1db2a3f"
+ "65069ed963280cc2cf228b2568bd53c6e0e164d6b63a5d3c2b8e3be9d5139a62ef",
+ "00eb16d784e2aed724cf1e4b72fe76b00dc80948c07f9c7524eb0e83bc59c12a8ed16fa7"
+ "ff21dffb8bbaa82925848a19c93884b",
+ "04a07e79b4f771363ad4c46cde0aadf3df4a233740a89168c97b54559029c51dc2c79b7c"
+ "c94a0e4e3d2f94e376fe47993da28bb",
+ "0360f559d37a777119b2aeebf00cc17e2edf04a2cbdf74366f5d34368d2eb2c92958e4dc"
+ "2b7453d5a509407a4d4643cc0235f57"},
+ {NID_sect409k1, NID_sha384,
+ "50c17c1fe4dc84648e5c3c3ab8f7c971d4c58d8d56d2b5ddd92e35e6792111ed8dac7644"
+ "ac8a07ca8bb4e38e071aa47b22ffe495e9083f9bf781ac1b5fba571862c909c7aaa7b8d0"
+ "5ddfb7ef61c99700de734d5658f44ae9fc908c85a2dac8e7f854d6d24be805fcd7f873a9"
+ "1252985c5c73129c60177ba8fd99daa87b25a073",
+ "03db41b4f637fe7977c90e4f1a21799baaddd1826c667102414877138436cfae1b995984"
+ "2b8097b5276f15f2b982ee59df263c8",
+ "04018eb25bbdeb41c5d14edc675fcac8a523acbfadd6456632bd593ab5f694a7734b163a"
+ "ceb6e6b3d8ed83fa1cf7b5adb9871a6626014975abca1cb769a243936e65123167e53527"
+ "9197a37d8c92c7b138f31cad4e95c5f62b06f438f94c1a61634b34be7b96f09fbb",
+ "055fce73c9c385f007256253281c6b9d0930d127939026495d0a30f25f77fdb6b334043c"
+ "39fad4223852f7101fce72746ea205c",
+ "01d7c26e0236afeac032fc5f3dbffc8c03b04417b514adc26d6a4f697b4e87a008d5ae97"
+ "544a274c25ff66b98111d7c651c9381",
+ "07954191fad321e7f2de95a87d5a9c4527e658ef85faa6622d5f34f8bc2b84c881ededbe"
+ "0281456e9b70eaf7a207e253d216533"},
+ {NID_sect409k1, NID_sha512,
+ "3583a3226e2dc463a462fefa97024e6e969c1b13bdc1d228e2d7823d9f7c09012390c253"
+ "5baf086588000e908309090daac6e6d2b06d2ede6fae838ed47f30b5b481185f607a3586"
+ "f6dea47c8f84e9d3b96d5b0ebae2462fde1e49d84d36658e87dccf5e30c0937feefd8862"
+ "dcdb1a1ca373f6ae41641502ac54df6633a8cec1",
+ "065b76c6093d9c49591293471286df1a4444e60d9d06cfa114e175afb5f119d2abeb273b"
+ "0596019a0ec5db5b5869f2cc827b364",
+ "0400266321fd15bf6b1af862496f467069819e3860f74a07825e68f3d023985bfbb838a4"
+ "9b6a41b6515cacf404ebf12ce0bd3d6d70001593c7a8e629599e63d3282cbea780235182"
+ "77e6731fe8d88cbe525ded554b51a7f8803ab9e330f210619dd07df8f67e1066a4",
+ "035682af873829e16b72bb86f3ee99b5d9f052e4a631b07f87d3b361c8d8260a877231db"
+ "cb3f4d461b4a1d4467824a26a5a6414",
+ "00a483dc2dc6408c256fdf63b04d71d3c58a08db7167da217f466cbbfb2d68444c10e87a"
+ "9a1bb04efd71135c00226e58414d407",
+ "078acfad2f2492f74b0281d53e4224c7544588ca9ceaeb16bf759b20c2f3d3ed69c64615"
+ "c247213d51800569dc8b00078de68ef"},
+ {NID_sect409k1, NID_sha512,
+ "60ca58462d53d074b370127132f4e59f5eb8d15594dc721a94286afd082a8934e52462c9"
+ "c1c3910f8b50d7aa3671dafa5972958d876d7992467b2fee3795a6f9d8a7bd3003a8582e"
+ "a8c003aa1e02c08ab6804d85bcfa13a815d75c938671f0af0706c68bc70a6155708ca755"
+ "cac2fbb68b2952208d63e0e2e3d816f04c61bc03",
+ "07e9993f3fc1fdc4c376ef77ecded96006ac1159740bd1b2dc6ae3d97e15a67383f1fc93"
+ "1e460b9af3fe14a54e47919667ed06c",
+ "040189b82003b546f94c066963239c7a590e064b88bb4548678853545920e413f2be3212"
+ "5e40efb82d2c9582d2d8269c1d408a7ff0011583b267727ba6c1e17a244ba7acdcd83698"
+ "6089860ee312b6dc2d88a984b1fa232eb0419730db8fb94a5e077009c1d55979bf",
+ "07574dbe04e1ac2bb34e40f32d6f6db364a95cc5770b79888d72b74bd4dbce9fd91136e9"
+ "e1152424d76688dc995bbf2bea34175",
+ "009e42a63b41877e200829356a2191fbb6f2a9a234be58c76b0852e4f348ca61e7492f90"
+ "a37feb8b95a6dd6df9d1a2e61c63b4b",
+ "01499fdcc804fee8193de080b085b7513eb8022503de5f64dc12c04c0ba24af30e30f63f"
+ "0e3eac2c82eb20c6672336f8732ec5a"},
+ {NID_sect409k1, NID_sha512,
+ "c749f9bb92ca9957ca6d0124206ebf65e860ff38a225e241950bf4526cef3f4fa9184ec8"
+ "3f71f813fe852dc08eca6b45b14fc7f2c6a19296529bfda007efe9d0d26492de2a902b45"
+ "ed39603e22f0a763dfa5deadd97ef6feb859d860baa2cfd1d066c0be0f9f4e0e2fafa69c"
+ "c51b12e814ad2e33b0acc0bcbe1df8cf018dcd4f",
+ "00c11e2979498695c660a2bdfd105b115bc4ff8664ea15cfb40c725406c6fc9a13027bd1"
+ "d72ffff6258f29e4e19b845243444a7",
+ "0400904a9bfebc23607c7c89b7aa89315343852cb894f54fe42ba4225285e58c6bc318b5"
+ "5691aa6a6ef22eb11f44cbda89f157d7a8019cc1826280e54832b455f0ce0cf89bdb62e9"
+ "73a8e819fb776b1a202b4f207b8baf9072929c9e3f6a8ff996d6d529de899b024e",
+ "070fe023c9341df9348f08882bef47bd8dd7f13db7215d1cd52cdbe7919031a62455ca96"
+ "9a8cc6db0a05a0b4befb47c142c4f34",
+ "035e7130d59d92ff8c4f264fb2c346e052bc305c7f57549a0fe43cc7cdac6aadf2ce1939"
+ "222decef4e1f900e3c2fb2c52bf53f5",
+ "0008d5ec1ed2091309ac11eb88157ba5122bb9b5c858a46769a130f7a941818445664ac7"
+ "8325e0b6d2a11bc89d08fe0e87a5bcf"},
+ {NID_sect409k1, NID_sha512,
+ "4de8414780ea20f7943b1f1adae5e3962d96e828fee43bdbf2831bd71bd25df2976a3be3"
+ "7a7a667c7fbe1200de578920090d131a750c9bc09bd95b261234ea8cc25423c4ddfff565"
+ "6d6b32da6e2f6f530e6673a8660aeca31273bb9a3a21bbd7031a2fa71ba37c004d3d1c64"
+ "b2c0798783e47b2efe1a208959ac16e35d444245",
+ "068dfc23c6635bd1fa1076dcbd456ad6e8df7ce7c1370fe275803befc4ffad007fd062a6"
+ "1cf1d50b93aeb9afe1aab47a65af82a",
+ "04005591f8cb59ccea17bfbcb74e69f05218d16175f0547ab95f507ef8d7426c077b52b8"
+ "2dcd06baf6eae7a66bc72422236e589e420126a01d5c2331a2d00949e07ea9242ebb50d8"
+ "30b0aaa74bce841d4e43bbaa9e9aaa01ba25db7a8a2f4d72977c0f016f625cdebb",
+ "070682c9659089a703dd9fcdf2f3fa0c1d1ef5fae3f8f1b3dda55d9b611770244f892689"
+ "8c904f6952c1847d287bca21db4dd59",
+ "02734111e3b736ae795929f835701bf290dd50c0fd625738ab2769242c1403197a3f4dc2"
+ "9ca618c2e292c6bec6dccff71adb698",
+ "0755292cc5363fa74e0193a806879d3a275b4beebc97250fb230efbb8364b2a30098c048"
+ "8bcc6e20449622d6a5fd2ae24d7abe0"},
+ {NID_sect409k1, NID_sha512,
+ "a081d54232f84bb19dbd52ec3812748e2e6486f6cf1b177b27929504ca878036547eb435"
+ "31bb5b3edc81bfe105370427e92831d2239cca0106d031d9fa8da9cf89c6fb6401377d59"
+ "36b6329ccad854e5567181b8f16a37c35f333eaa0ffe91d727d183fbab935fdac2d5670d"
+ "afb3fba59e4fa2df1746c58dd8360fa08af7f4e6",
+ "040807fb888e1d9fd33604546656a493629d94d4a0a9de2608962225ed158167f9e2438a"
+ "be2d12a11e2adb6c2b66ed78215b0b1",
+ "0401787c0e6c55acd69bde9b0a84d6022796d5b5c60fe5357bc0fa4386c16f61b38bfead"
+ "b6cfebee7e7701bde24418b8b5642afefa00d9579d271ba3d5e2327eb863cfdca3970700"
+ "55b97714e385ffc2fc23528f696dac1a4d0e535641f6c876f1819f2672a8c31cdb",
+ "010b8f5356d8a029659492c444876f1d274b82681d4f600cdb5fb2afde13598ddb71676d"
+ "9ed86e83351c70678886e8237a865d1",
+ "0304f43f9705d189f47ee09a079494030b0756993a93e4c6ee6b5e664f63431f99e50574"
+ "7c24377e5930f13492483e6cd06ebdc",
+ "0580d4707c97f0330f908042a6cb2a2b313f07bab34774ee03bbee63a4ff881b68def47c"
+ "d300fb49deb49829bf486d1efad39b8"},
+ {NID_sect409k1, NID_sha512,
+ "ea60266f1538565b3ff42fa4bbfe319be070329059c52c8bc04a7da2824f209c1145a05e"
+ "551ea59ded8ca8439c328f6907da4e81d658937df614be98c7b8648818ea80ef40e49aaa"
+ "4431f4a211d62acf2611f5d60c446b2b25745078c643859be1b12b3141a09ab765dd63ea"
+ "1f2a2df015eca0840087a5db378c4c4cce76cba7",
+ "033bda0a02badae08fe40c239b9d59e5bfe1c4d4b9b7a5acda6790bfd77ad08dde5e93a2"
+ "da80ec54a7f88146d72218bbb88aa10",
+ "04002dec536832c8acf007daa66a47e4eeecfb6991a359f8c412299ef56c6ca2faaf18c4"
+ "db708493e84786a7837ab74c5fe0644cee00906c8f603b579cc2384e0803d31d577f7c91"
+ "c55406db3b2db91bbca323fdf3cb6d010617ad1aae7bf414c4d974f22e6f05af53",
+ "051e8d027e62db2397e4a807d98a24455a76eff6dc259ada89e794dec1484b44724894ee"
+ "ba842f60b73287642570460896dbe77",
+ "031769e6777444095d934d05dcdf82405c43ae91ad5fa9201568ae2aba25712717f1af2b"
+ "8f49f6eef373237bd70c34889d0d271",
+ "0023498aa50ee095f33a4081bfd70a9484089c85fc7a4569f560ed67243745c823cc0217"
+ "d29e2938f06ba9c8790650d10fa5b1e"},
+ {NID_sect409k1, NID_sha512,
+ "82f38c9405ef0d26bcdd5b3fce4fb0060c3095f61403418e17c337933f0563c03691fabd"
+ "32ab5e896c593439e7492a9970ae325c67196d9e83fe0f9780409a930326f7e6efae035e"
+ "f8c321cb9ad12461edd5cde66c04739fe079db65406b3c2d22f2d04b1a4335285513d4ce"
+ "b901d2ca2ad10c508302266c2cd6079ff14eff4b",
+ "04ff431769d26b8837d3e1295f5464fe82be29edefba76323e92078a6483ea0daa962215"
+ "49102509a1bdcfd46a5a2e5de10c39f",
+ "0401beb74d427d849705cf26e26312446f27a7c5ff26ea9dc1aadca763254fe53a622de2"
+ "9cba4fa81ee2f9e0319e752f72be46cc7e008dfcda35a00ab77c3c47dbc05b0678cf561f"
+ "575369507097833e86e523dec879e0ae9583b4261f7a73c9dbd417accd4ae6688f",
+ "005aff3ad332af23e0dc38c16853252825076d602ed4c6d947be751af5dff3f59611e616"
+ "6c31740b5e5a167260adf2a5466289f",
+ "035c4e8e1858b9694cfef3e864ed959638ba309ba2066a28fb9d0e02a66cd4c187dc6fd8"
+ "ca5fabe68acbc2074168157b685aa6c",
+ "04ec2db89645018f9845b7ae31b8418a767e3570d401f41db18e424fe861bf09114d7860"
+ "6a056617613447d125a283be5bdb6ae"},
+ {NID_sect409k1, NID_sha512,
+ "d8506fab4f681ba4ae86066aed447571eba4fe04e6585fe3be6af2ab1000a3da68c5b0c7"
+ "11a85ddf3a40cb7c8944eef81f2094650459e14f5b848e6add7e580b0198070f873eb3ed"
+ "5d0728eabd92bc1398764b94cbb4cdd7cc2027b9762dd10782658cd9e8a5022ac062fec5"
+ "35d892198c8a387b3d2b6f7c92b1af6ab7dd9e4a",
+ "03f85ca1169ca7e9df44cbc6bc7d2868c9d94e8f8b699a42ca492dca0914eb5789a90322"
+ "18dcef7f95f959c9554a1cd83360439",
+ "0400aa3c77dd4324258bebe7da5338c772d3496e3fd0e57f455459542f1a1c5b47692f51"
+ "c3815c9549d0c23fdc1ff610fff6847ea8005e626d6aeb86dc51f3b359b10862cd33ac99"
+ "27e38127f7f17426f2369d62132a2a62fb6b8354c5ca0b3e5c7c87117b4f777a0e",
+ "0495099cc73c9930333ae3f9d0b7057d7c70e2bc7c805c0c6a44404739b3fb68f9fafa53"
+ "033b54b7ad7bfaf4bbf7baba0dd5a0f",
+ "005612fe87c6a3a164d269da902aa43c5a4e0333770ea6334f05750be3f31ee758d16929"
+ "1e15b1540d40b60d1bda279599f254e",
+ "011a633bbc058550a597585bbc9f33099eb517795600b019255f649493d4a6dd533be8b0"
+ "965d9f9d9698677491bf929198ff34a"},
+ {NID_sect409k1, NID_sha512,
+ "b3f30d34f252a4c26f396079e773142bf61c0981d912333ade3de4e27cbc72cd8a16b318"
+ "07f0c46116f87accb854487d83ec8c6a61565e6fca145eab70048245db08616779d7047d"
+ "b63aabd90dd15acbb05eaa510072c151c0518f1b34582b95f43ec7b9484b2993c176de79"
+ "e84566764467f72392ef31619426d159c91816d4",
+ "03a97deb36d68f81f50c8829d412ee5de7f9d775633cb69c09dac558182039e275fc2582"
+ "40517a7c4aa592e364765321f27cb12",
+ "04013f0f4c16a47ec3a46e7a088c1b6a63ef61eaea46aa9b2c532d8df84dbf64991bdc2c"
+ "81ced3635e562d1403dbcf6aab2f8aa9da003aaded3b99a454b820fed989dbf6430ddcda"
+ "67db58e356397d06aa137fbdb365ec43994abd9c0a9fadd2887da9539bb4ab3c44",
+ "06620ad14a5835b9e9e104607c317cc599416683a60ed8865acf78ae1e861246567cf9d9"
+ "1f759c2d4c82cec835a4784d3c231f4",
+ "068faabcb7c716fd73f129ebc6625f5b4660a88e47dc7dbcebab321051a61e46b74409e2"
+ "b0af420e1671ef4efe04973c43471ff",
+ "06851e5da033da0f28a89dbbdabe93ef11331c55cc03d5b096c0522370be681241fbe71d"
+ "1349f219ce57761c85fbe208ac36a36"},
+ {NID_sect409k1, NID_sha512,
+ "0fb13b7c09467ad203852738eda5ddd25b17d330e82c279630b0e1f0c86681f67f6e537f"
+ "b00da9419114973c8559306de58b0387d86e52d821d982a60769d2f15fd5ac2ee6dc55d8"
+ "ac04ee247282cb2866b8cb8b4d7b4b6cfb33bfefdff09a73d727193e5fb939ff66ac5fcb"
+ "644a44f9083a790888cc538c5eb435243c6a34a8",
+ "03b1da0ffed24e1a3b5ba22bd684337f6b08053591620541bdad50c761d66201a2cf21a4"
+ "cc636426456525b598e96baf97d9851",
+ "0400116a1790e621272b56cb4579ffe6ab629a2d077b779b73e039d74f58c476283c110b"
+ "b18b9c9ed63de7288dd678064de68b7df60122b43afccb88982f2e07ff35468178572bd7"
+ "2b644322d9e1ee68f78880169a83a5bb88c6c994762a7e8d80e09333487ac30fa4",
+ "06d7a24f0fcad549e9c36dbc70ce264a75eb37b74db98b1f6a824ad1e5635be9818f45c7"
+ "544927807dc0fb3bb5fd38556e8656e",
+ "0232339b50bdb772d15f2cb8973f6dd9397af45cebb69adfc089bb802e9c4029dfb2078a"
+ "8a26d7197de10638ce512e5904ccc5d",
+ "056add03244174966d53105c570e8fa660ae8c5d53316a24cd26f24e29e4b7459f4c9dae"
+ "f07442247b63665f97a3c07d91a8706"},
+ {NID_sect409k1, NID_sha512,
+ "f9b8124281628cf4e1da0cb4f021c8d19d815644cd80c7c8de4cc62722904ec4cddd26cc"
+ "4891f30b15098a25ba6923c6abf4774deb6e1883fbb409862f94467e75a725e7154be860"
+ "fd58347577c83adbf18535c54b102220197afa062cc1c84f6094490ce488af4a08d2c5b8"
+ "08a2572e18a59de96c87162f88413795351cedc1",
+ "040bac7e0d3b54c7753c79d43469e310d876015d948fac4e3a9765444754476af72330e8"
+ "8d79ee6119697aafac8435ab5690754",
+ "0400bd4fe8daffe47bfdfc43deca20b15da7c999084bee8983c62e3dd33740143c38d8f4"
+ "32cbacea51e6f53994265b2d8f4c393f6e006d88c33c31f4e143b13bedd5738bc1191fe6"
+ "815a099fb7b44617fdeb08daa0cb74edab7f9a8c67ac1e9c0f0fb21a9f02ef4b6b",
+ "020f2f6fcb3e471d47f21fb15301784f7cf3632dad3627a9ebfce587c0097871eca580bd"
+ "a051b100f991aa6de5edd3a7684e839",
+ "014f8884b5107e9ee5cf6f5d137ec9d59a85a6fa0431053d58a1400fbf0d518e8910179d"
+ "a1160de2c6cc8ea8ba8f3af8e0e1f6a",
+ "019aa8d55c8d876989f9b9559db0576f91c4610dc9187c74aae2d4f212cd94d90dd81ee4"
+ "483d88d866aec1ed469c5e3eed7d90c"},
+ {NID_sect409k1, NID_sha512,
+ "4e3cd6100520db050af0daa69fe3cfe6603a223d4f2a6318fc5836db8640d4c7fb80bb78"
+ "1302036d2d6fb8e552b4eaef3133b98ba2d36b9ef0b86243b0391413c73d48ecbf1d1917"
+ "0f1b3b781b35ffd316afb1d55d1dda8e91eed5553780cb2714a93e7ece698b832e853e25"
+ "89c5ba2b8a997bbbbf625071ded66762af8cad42",
+ "025b7eb3bdefba3c5134438caf968f615b315204f348006f82e8d61057a8a8a853230cf0"
+ "500f9d0b8c1551a59b9184862dd2ed9",
+ "04017d2029cb711e52df416c54b63a95a66602a1d15c3761d91071964e0128c91ea766b3"
+ "d409f72d9fbb5161a459c3fd7990f87d8801e71a9c66a4d4dcf199aa329e44b99f80640f"
+ "c760fa7326f29c273aa13b153df5277feb3c049e407630173fdc9f735d7aee4e10",
+ "0575aade2692534b5a1a17d36c36973d24dc501c75c3b0b497a3d2fec80c67be7107988e"
+ "47199d4863044fe9176762497b5aff3",
+ "024c6004fa92cad446b8339917f517f04d22db47b3f9bdb83d863dadb5431866ce21b13e"
+ "780495bd66152ab33eeff8830cf8538",
+ "034aa568aca7be851d276d2235e42b6624df1cce2b97f6413dd3fc506f0f18483f95f911"
+ "feb0eb220415ac593f2c93dca0808fb"},
+ {NID_sect409k1, NID_sha512,
+ "5411708381a65bef4381c9e13a04cdd5ba0c15829f7f25ccadf695f635384d8e4704cb56"
+ "2741747831b33852567f42fedbd190d2980f1bc921ce01c17d659d4bdd7eb787b3927fce"
+ "e659dd3b65132496c687f2249272a473d46326e66b3cb78dafbb522390162c168f73bdec"
+ "88adb145e6afecd561979846ea4c8cee38dc1686",
+ "0673b3a2985c95904732632e5d988d8d437a60db13215bb6aa880b348f011c609a1e8604"
+ "61427a8cf0d622abc47f910f5c97ffa",
+ "0400c4f1c0cdc44d867ed38d093eb967bfe285df897868c83ffcc0c53463e3852a1b2039"
+ "506d9508bf01d0d79ae537e42fa2070a5e00c2bd9343041c2c4100c5d795ef355c796a6e"
+ "a7954cd729e11063b14a27fc2c3a9ffdb3647613b44238eee17d9cc49e8c5dfbe0",
+ "019a9509f5f6d947532638a3c80782b556c553edaee9ade91e457f7b5d2c9055572fb116"
+ "f52cf4d3a2a0eca72fcb32b2f58e952",
+ "02def440e968d17d9904c5640619af2f447f74b7c067537db4a15be87df4fe68f4489704"
+ "7fa8af146462ceed4beae36d54e1aaa",
+ "013d5b00fef639c556d66420090c2cab1edc57b7257dc35addd62a5337300e94ea7ee116"
+ "e06b744da1b575d90da81e8ae2cd424"},
+ {NID_sect409k1, NID_sha512,
+ "23757fa60fcabf543e603d8b31ef0cc99b3ed16b4816a84e01dbfc858872fcb79fd03d2f"
+ "8a1d4f28c25dc42a39e20c34f81ebccda1682ee9bd22fe323e7f8ea90cf4a2a6ebb634cd"
+ "1153cdc35f7306f28a2efd822bf23131baa1543d0ed5ab4c8168d3199983fbee117085f9"
+ "0550ec3ffa2b06070d3add1d707fc2593285ff58",
+ "00db7dcac414010b816236cad584dabeaec1da76c97182d1b62f87bb7fe2946a64d10430"
+ "571b2b29ccf2ef72c969a9f045f1f3b",
+ "0401f2a6cbb9c1fabc8db2848c74d918312267888d822b7dfd1634a543dcca4be7c99723"
+ "9f6281d1d8b5da9adc694706b7b19cfb0c01bde57a2ac15f4e6b26a373a624588a3379c8"
+ "eec758f3c68695e2eb1856075d90085f43283d982526c5e57913cca5e2b4169f8f",
+ "05a3d856ad1d6164993cc59e70f8551e2408da92c7e6cd52df51b37dc22e9ebc42fbe6b8"
+ "3c332eedffd4086a382056175ad7009",
+ "0489b0344ae4278a0376dcc64ef9ba8595bc2fd62ad22d42fb431d2863d8ca353cd9e59d"
+ "e4ac10108fc247d6ee9ef643f6bdb3f",
+ "06aa27335e15dc910515385764387798cd4a9b4cd6d99d7c42e07fc04e2bfedf8dfaa7bd"
+ "a396f88253357d3e2545e895d9aa3b8"},
+ {NID_sect409k1, NID_sha512,
+ "b976314d2f066f8893307a726f450dcf2cf865c170e90e6908ce9787eec48e1e2119a731"
+ "b2bec3c12fd4e6282a393774251bcaef91af6ce57c63a8b45bedd72ab862cd169b7c84b8"
+ "f6a72084ff823a96f2f8eff3483a7ebfabdabf0998377c5a6836d88135cf61c65a0ca7ca"
+ "57727da68047dc635c17ad13731035fe9a6402af",
+ "04717efef16e1ae267e155aa1daabafc68515aa391dfeb73c13d01f3132bd22c984228dd"
+ "dc4dff4c39979e7585acd3f730cfcfa",
+ "0401526c58a3de46c95cb0527869f7d637f9441cb5504e6a01f339907c6df3d079361a41"
+ "571cf0a0f11996028a41682dab5decf78601581903be8a19bf8bde1d89bee0d436f061ca"
+ "1a3ddded4b7793fbc32ff852671103f34e16d469eacdbfa457643d1b18dd1c4107",
+ "05c846bf61c068b421efc472469ab1ff8d9f34847ae0065ba6f4a000be53727b3fcf97a7"
+ "80362566e13ebab84b9ed5f0cbbc225",
+ "00aa138e742ae81eafa820632f31e87bdcfce6b909d85805e46d87d1cdb8b968907470c7"
+ "ef5806accbf6245628c70d264fdd95d",
+ "04df507115384327f7b8311dfd1227c19a6124cb9bb5901bed45d8d5ca45db0903f53e7b"
+ "bf136350e66bf2b4f3d978f8bc546a5"},
+ {NID_sect571k1, NID_sha224,
+ "964ad0b5acc1c4db6674e86035139f179a9d5ec711b5bae57d2988456bb136d3aade7ac9"
+ "ef10813e651ae4b9602308b071d75a934a6c012eb90c5eb9b2947b50fc97b1d36c5bf9eb"
+ "13a7b06c94212c3dcdab402a563262298defff62b836ead1f78f9d20713710fb48115cc5"
+ "045ba15140fbb4bdf516e4150d830d02cf30963d",
+ "19cf4f4d06825499949f9e0b442586fe1bfe3459813a2b92cd8de0f775a4735e02655702"
+ "ead8e60824180761808d9e816d60bdb0238e1e8039ca7bb63c92e1cf8433ef447e64ead",
+ "04007b9cb1728cba80367b62872a986e4fc7f90f269453634d9946f79b1fedf42ca67af9"
+ "3e97ee0601bb3166e85357e8b044e39dcc19e608eaaa8a0066ffc48aa480c0e1e8d5569c"
+ "bf0580858ab9223c2b2ea58df506d703d64b387a78ef43846894e7a2e47c02252bd2c1e3"
+ "d21ada7c21d50a08cef0f9a189c4e850c058cc57c37918251b5aaaff2321d7355b6b5556"
+ "44",
+ "0726d5e317f888dddc94c73acb14b320ff509908052868f8c6b14e531ca467c1f7c82874"
+ "76674efd0d636ca94c24a69d15210bb43a368a11d3453d69ca80430cbfb8b6e45d8f21a",
+ "04ec6205bdd8f7eab414110ed620dd3fbbda4cb3ad9e5559a114ca9344782847621961a3"
+ "577cbbe43d94eff6ffc8dd7dd09c049239f026a928301ffcddcc910bf196853edc86d31",
+ "16535b1af98a75b9bc0f122ca3ce23a01800fa33b43584a94fd8a8d6f40077eb739f07c9"
+ "f0e179a157a28023735fc8da2e2ebbee5f7308925900e657fae7c3b321f14fc45346f89"},
+ {NID_sect571k1, NID_sha224,
+ "baddec4794effa668cde267016dda67bc70b847919a9aa595f93ba9dc27354399ef7a607"
+ "fbead31e57a8ce698beabb10f313d393980425e67cf95be45d512f00e950c0c5409573dd"
+ "c3d556f23daf056259ee8914e860562a674311452fed780b3e0317a7fe93baa81fb98df3"
+ "ae4328b28ad0ac8f8ea33efe24faee658ad026f6",
+ "098521a732e72ed945a549afc92318fef7156ed1d1ed9bab93b581478cb2339eb32bcef7"
+ "05c9bf61cf2873ddbadff8ff3806740a2e30ce67d1807a8179dfd5d952e6f8a583baf81",
+ "0401e09410bf4f84d53a2abf8d106fc64e643edefaea263dc98c308aea16ec75f083b3e6"
+ "b442ab261226c59ca5fa622db68f5cb5f2d1d465b01d0048554b0ccbf67c0aaf934d2365"
+ "f60361e5b43d313a62c7b3897c7db8a42116127138a1009f0bf9892981fb4fd6ae231b89"
+ "40e7509f96e2a49285143010dfb4516ff810a91a4d9d2974c522ff343e93e8aad00aaa78"
+ "b9",
+ "128056de96666acd09b93c5db7ba1b8fabf57251ec480d42b702940b5847d2a59b04eb51"
+ "01bb3990c3ae2a41181f19a2afcf08424f8b922a95df6b292b1856dc4a9dbb1c717ba5d",
+ "163483a7e0d1012695ce0c113ec8fae3694bccd40fc038d4038f81bd39e71c969cc7f0af"
+ "8313a9fdd3d028ab24a43279569dcba73fd78ad74897964ae715928b1cf7fcb779b12af",
+ "10aac6929432a6bc7e12ffa86e4d2421e0535fc44a1160fcfbee477c29a987e783a7f753"
+ "eb2278ce08954c7e90284d2ce7c42de103a9c59d8e4c459b457688ad515cf156cfc56f8"},
+ {NID_sect571k1, NID_sha224,
+ "7ef7138fc657492d229054f8a50dcafcfcd1dc06f1c16640af3f658907e2969248b54416"
+ "066eb119adbfa23b8dc578aef18bba79610b9cc109394b900a25e55a779230bb858b2ddd"
+ "9499a7775d392328db9177aa9571c2f61dd52010b48502154e914a0c55a54edcc04a6713"
+ "cf7bda8744a893926118b09df877d1a4f3d95e8c",
+ "0336fb21549e397a190beac38a1ee10f0551952da15f71e11dfda415e5ee08da2356f114"
+ "d450c661f52b2b32cfc7b9be61732672691a079f0927989b7e9f4efe6095a242155b641",
+ "040316800fa2d8f8f3f9aa87ffb628dd7b2f63d4d8389ee86ed41bd4c3eecd3f3836ba92"
+ "e2ff7ee5626213f9ddb41b43561c5dc0bcc3df0a872e4b8026c09c7b52b89b4975a43f60"
+ "b00207f956df58f75286232967dc1d3e6507634f45c0014c48b42868fecce5b9434463ab"
+ "fcd2b3722a7f5ed25607270148466f6ffad6a8c86e538640ece80e84f7368d33c68807fe"
+ "d6",
+ "1517b3524b6d43dcf3964f7c35c89bf14dd1542c37606452e2035ff0bd0cd1edd6d7b801"
+ "ecb1f573e957131c0b3f30d5006f6e4748a11b9db10fad41961f4ae53e848c6dc6e1a52",
+ "1ffd4865dae7387ed797c5ffe58a929cffeab521e48284bd7d4427d5856e9d2582b91363"
+ "f1d353a0ab1aabfc132a778a516d4033c64cbc991d724115d72ff8e94ab4f95a9514843",
+ "10f010aaf1bb714042fb8cf06a9501dfd1ffa598d6b3e68e7addefe00e18f3a5db8414d6"
+ "25e374d9ae70bea43b57c6be4a590c28e50a548cdb2e30dd9d6e3ed1d9cdada9f8b0049"},
+ {NID_sect571k1, NID_sha224,
+ "d58e1ff1d49a471d0567ecf8f29173dab5fe5f6184ab4cdd095c231fa7b82551f99a4829"
+ "94a46c3d8ebc07297fc9e952a5dee7d5f199b119f6f8b250f8fba45701ac252db725e75c"
+ "4da27ad77d59a4eac448e54a277986740dfee6596811e59afc9755e53d24b826c09e497e"
+ "29e69a22bbc85be11763064e9ecad7ae66458ca0",
+ "0e287ebfd9ba294128cbd484fc5121d271cd33e685bb1804f09b40aaacf64b5a9f2cde9b"
+ "30a4a02d3a9bda97d92f46bb8787b3c61f280b1e1a0680f1f0679d3bb34d53725d62e52",
+ "04052903a7afc17cce078b4b658766a67f2f75ac04e296757fd762fc05d6a7b4e4151598"
+ "a872eb4618efcd06c43cdc3e54f437c0ef1b091ab5e4927d3ab4227fb24d4413e0327abb"
+ "840385e808bee8dad1a1b84d644aa29fec324dac2242709421479fa7a712d18b54db5977"
+ "8724ccaf4e51a27da090c6dd0b7967024db0a8684944b77295c9624ce3aba24ff48c86ac"
+ "85",
+ "15e8cb22e371965801d99407d96200015ba58fd7eaea52c03269d8a374fc7aef17fbfd44"
+ "80d29b781292e179936a68ed175802f34043018ed1d6b5a4df667d859cd2ae53ed3cfcf",
+ "0d3a57af73b7504ef18c03ed2c52aefe1d1a3f0e27f78c11d45e9825647d5ff6e97af51a"
+ "5e366e52e01e5e832e4264a1d5b6967cd9debda59c955568e4c8bf804d843a49a0c5401",
+ "064fd7ecf4470f07b4df3b3046041e49f310a463210571606f00a1915c5220a27bb7a28c"
+ "d0bcdbe374651aac06d4d9e017e31879b7819301eabfe3a7afe4b53f75ccc465815b4cb"},
+ {NID_sect571k1, NID_sha224,
+ "4949ba765c14c31f68ee0ca26bb42ba2edee63537de4a6f5c42bbd862c21288d6ff48145"
+ "260365193c6fd2b56dfb014da26b8a483776b717c6874f627c9a622154b824565b23e178"
+ "240f53ee9748c45759ba5c035b584df0f09504e95eb9bce0301653aadb860bb25e6ea6b9"
+ "606e0ec3bdb8089e6aa0d5763d331757490715f9",
+ "149de496fa8f88b2741864d0c35b3df666b87179b7bd06cd426a45f13bc87ea9f50dea85"
+ "e1fd02a532630e0e3a231cc3e7fbb7c7ba85b40cff1124e72c677c6a3ea6aa40ffc64b7",
+ "0400bb610e4308e229e4b4ddddff5c4633ef2ab40bf74514433bd068c7d59a6260ac7936"
+ "6dcdc039d5585e660a4cbee990a2cb55a99ea3d26dd9df856b0f3ee5b968bcc349240a9a"
+ "2d03e3ef4be63fde6ca09f12f8220e1d9b5016f267ca5aa09a2dca8a0e0feda9647fe0e1"
+ "f7ecae7147a10ff893f69a4f74172c6e9a62f0c5bd96d49b47379c9c84f5ef8e59dea104"
+ "bb",
+ "1cffdb963c2c8b8609809e998075299776b44d2808df509773f310124b5f318d7431f1ef"
+ "8b38fac5cd5580348abc41e6e6396767f4780656361dc9a71dcc8e7c9239d6eec5cdb94",
+ "0982b9989c92e1a5d25dce832bd8a3f602f0eaea69abcfda285cb3841fe3f019503e6faf"
+ "8a693712380a48a6af8844b6bd718f0edf3b57662a4fe82ee28d036ecc4cfc7310871c0",
+ "1678bec58d69def3fe35a64810b27fd06bc29d165593990f6f42c4c7676fd5d4a965fc92"
+ "cf20ab8616c7ac7b4b308ce6290c5e8b4edf6859fd6f6f01878f2601e22acaeb5ce1f36"},
+ {NID_sect571k1, NID_sha224,
+ "5bc63e5c50b1650f0ed4a599960f1e4e11f6c151b2123fd71d9e3c44662312a74b685429"
+ "0628e20b30eaba81555acb2fb49b640bdab2528619c7fcad0f2a2880c7ea232d427d7c93"
+ "5fba2313370fda8863a7e7e203d63ea15d0cfa083e716ce6068c63fa616ddc225c9e413e"
+ "694cdf6b355cb1293af5d6cdea51168f5634e878",
+ "17605d7c5873d870462375d741b4bc6375f3d47f7f5e9d998917adf2137a81e63b66917b"
+ "3dda8968930c4b850f2270eb3187fc756e2beeaa67fe0d73053e6cc0ff0004a21250551",
+ "0400d8ac3e76c25cdf4902426569763f4ae0638ebb1fbcee6e12a4e0b89d6d451cf420d1"
+ "0441a0a9984710dcac13bfd7ba70370afdfb58e2d982ac367e178f6834b4cd2d232e7f24"
+ "6e012b5fd5b686e58df08b695fc333937eafad6006be5a7bfb1426206102a79bc32fd9ef"
+ "46e19869448fed0e917fe059b76c8b5a9c403c3921ad07e6c19ca7bbfeff5491b22f8bb9"
+ "61",
+ "09179b3ea906137dcdbb97b27f3690bbe3bc4f1f57c46ed60b8503cae97602717a0724e0"
+ "55a5c52199ae3f08f1586b87fbbe514667d2eef2fe44092f3c916976c7b71eed67e8fb5",
+ "05b28342703c83ec2df898458fea6f71030e4e9c567d140ab09cc95df29ccfe199837cd5"
+ "8ed00d07241988bf3c863504d065ebbeb8ed11cdcb02da0a945ff38ca58d629f76832f1",
+ "01442a5606791569749b5a9f20ba8eaaedd1a2ceaab2ef55d5d41271ba23f6a5b6a33c76"
+ "763fc99b291b07283122596a3331fcc9ac038447f3e0cb54872c140300fea65d7809191"},
+ {NID_sect571k1, NID_sha224,
+ "610f6633718e49d232b3798654095e2efa0de11f41258b27aa01956480c870d901efa77e"
+ "109d5f95f1f5101d3c90fc51312d9b3019d2e42e0067eed7b457dc7fbe5466923b62c83d"
+ "7347e4dada571b57813bb9c21d5e308519b8eedb7a7706508ad04aa69698e03636eb30fd"
+ "9fb363ef3a185756494ee01175b16847f5b68076",
+ "09214dc2da0967912c31995cb8f5bcf4bfa832c5a2d3610f3a9857e5eee7c77100d599d9"
+ "ed003b4106013155dffd6c48859b846e45e0ddbc5fe24f4891c9b2df51407e9cddbd974",
+ "04064376a92c1227c1c479260c7497147760c103bfa5be95ca1593f29a851daf2e5c3a5c"
+ "73c1fe3e6e2506fcea710254ab5eb2daf8aaefc19cbce7b1c4afbaa2fcda1ef85750fc0a"
+ "3e070638482e5c7c17a82980b863cde11294c0df717bfa4b9f884cbbbbf80a64dd2cc7c7"
+ "d89ed21e10561260d372da2fb726de71863f0f60e8ad0fa5e74fb5d29bae0cbe8ad6b32f"
+ "6b",
+ "0621176102c6ebc2c810eabab9f60feb71083c07751c66f719370713ec2de9ee3957bba8"
+ "d768b076885db1f226a9d37588abf1b141d81b70f0af711c52edd30e92e34a1d3ed214f",
+ "1a21d460ae85d0703b4b10a2f77547e45135048ffea590ce86e0a1c049f8a4aa7b395f72"
+ "3b7480cc84e33f4772df8f181f3919f3c0b0b4f276b0f855174103a2f7bd757584425cf",
+ "0b56bbdf6e2be1b9e754f9b48b3ba9a13403c17c5cfcc4910112704aceea9a34209df406"
+ "ee40e0a10cbc26d03839f95e775e80ec5e29b156fa277a5ac68abd99c7005ea6ba2695b"},
+ {NID_sect571k1, NID_sha224,
+ "c548f0546cee0c0400401cd540a0aa9377f27ac64492e6baaf38e794db4df83e64ca3d83"
+ "b67bbb46a6c269c04c2725287cce0dee984a0d468c9ce495a7e554a6835d72c7493bfe88"
+ "dbd5a044a148c89001b8087fb03e57c2b7212d0b175d616333a9affd8a1802dd49ba9be3"
+ "ab6c6d9f99a5578d26cc4707a5860c6c804d69ce",
+ "042f2682e9ac8b76f3c0880e12c292524601dce9ea6982dcf68bfdb0d3fbfb50dc9229e5"
+ "4149ef09b95bbf624eb04ce1427077f30d8536be9f69970ddb449ca22ab8368d2689ed4",
+ "040116135b273ef876453b9c4c39e4be5a815874857f4a72602f0d03b4ecd9a4ad73b906"
+ "00c71111e317df0782fc92e6ce2b194c204340bc11e68cc22ced38e99f90dbaf0f917e97"
+ "0d036dfa65a6e9d0ba521ade7daa2f6b01e1d14fbe7b5abd29ae71c4eff66c390914bf46"
+ "f09f4ab8a06dc0fad6fa257a85f993d6829b5e0add5086b8fe2ecb8027d08eec1bea981c"
+ "c4",
+ "0bf116711b31ca347d41a6cee5aa13a74e042ffbf79d2ae9448598e6950d721b3773ae6f"
+ "25d7b49ca9dbcd62feb011d5d556bb9f8a55a7acc9a3a166a4169351bc31a293db68eed",
+ "11dcb7f4103e814439df22764f776a74aa86ce9717585712b224803f0ff193d5f541d941"
+ "42812c726b75e8c2c37f2a4c33db6af118af73d3ec4fda49cfc911fef1eda9a470ff200",
+ "15fa4ada3a6e95164aa8972f14ab7572a3b898feb6cde160b8f25094f67343d35e6efdfa"
+ "b18793f77e09e5a42f56bae747b2b66fa9fe1e4a97e5e05ca743c058b1024cc848393b8"},
+ {NID_sect571k1, NID_sha224,
+ "9431c6c5237f6b4b35682a0c32f68752035c8b295a1763c5dbdfd73466cea64a00ecc113"
+ "56d02d2a9211dc54548f5db1651e4471898402c887fbf45005a3bda271df0158c98319d4"
+ "d6751b8ca6b07100182957d5fe0d97c4e2294406f83e9afcae4850bb089f2252490417b5"
+ "afd8f07f4c795fa84c9c7cdcce26bd97273c0072",
+ "17ed9a9c75cf66528428e85b0f019e3488af8b893b12023ff1b4ca9c3691b74e594539af"
+ "a0f4d7c3863d15399b862f15e27bb077392d6bbd546ddfd46728c75177338466eb2f4ff",
+ "040760779389124c702686d8d7c25dccfa74fb333317bdb414965d2c271ca5e687c4cca5"
+ "7e6f6149e1714551761abd4d651e7b04451d8be8e58c0c9e361fe0c6771e3d547d6ac3e8"
+ "cd052d5725d14b9aef93b83d638377f5a19e3cd6e3584121fdfc2c3ba1a588491d7e9892"
+ "be081c9e7585a15b37a9cd4c204054dadf06a9f4ebe98f95f6554941982faf109c2af98c"
+ "65",
+ "104ba3049a642d9b49c4302e9173a9efaf215b67e060c5e9673521641c9c2a5b14bad25a"
+ "448e46faf73810979a3a50104ec8c5230a909ae588213161fbc10381d7c75b35c84046e",
+ "1bf3e89fb0beb1ab854a5513278dbd8b9c6b05c94ab67145ceb1ffcd93d1a2aa374db46e"
+ "f327043518a7f272b957dbbf9d6cbd6708f4c89f05865932b7e816b12a59647d972f6e5",
+ "13a8c121c9c170b244ae3a55aa2d53f4ae5af91b1f72c066207e3f52e44723bd4ae419d2"
+ "4821b83648cd64fa70536605912a5a9319dc446a6b2b639cb99ed2485271acafc2bc988"},
+ {NID_sect571k1, NID_sha224,
+ "417cd5f60416f17081d2c70e9a510114e08be83573bf9deae75fbc3095dffc8a7f7325f6"
+ "1f9d6565381710eda871388cb17619e4448836076338ee309a2bba5f737319002e259b4a"
+ "875cce1bb97996101c9a7abe0278dcac203a712f0809eb3c4b85a9c380550ab0bbc5067a"
+ "8edfa78abf03c09b5c08f21714e1022ebfcada4a",
+ "1bcc09b3f2f1d26ab9955bff7e8c0f85c8a61293511a196b53d7963f4a4503849c96fb4d"
+ "aa68c9852ad9185e01a35f0bf298e34a09ec352cb6da34f89a1f23e8ea27712a8f43aa7",
+ "0401326341764a4aea222e7413a4a6f7bdc0c35ba246e3c68728ce06bdb19f2e1b9102ad"
+ "d88a8511130ff48c0cbe4012ab52de93329670a319f6b1e7e7dbf177667d4a98d3891ec1"
+ "4707a4aaa73713bf8fb3907d49e5653cf82a9587518c2f8269cd1e556a3be3589dad4c23"
+ "8e4c80681e141be93c318f0efddee3e378cd46512d778b9033dc8706bb843a3c3546e76e"
+ "4a",
+ "13412a98a2c14a9672ecd42db9c079a689b147ad91869c3d45a7046aa9dfd3f31edb43ce"
+ "6b84e9edcd7e3ac6b96d89f13878cf5befb052a6f8a4e5577bdf916adb10d908d5e99b0",
+ "11c8a92044a30be397007a71d9af3e4222556a10f3a07a1521c1bcef73b4ddb94fefdebb"
+ "a5944d5bd91313560718a8f520bb5cd5666539756a5e9b66a1b2d18fde5ae72e61d584c",
+ "1ea510e23ccc7596db529dfbea78c99fc78ae53da32ad7c7bdb1df01039310988ea60182"
+ "8fdfc59a0cd237110cfee9de8711c073be44dd4d04bca4b1cbec278b1a9ef175d93f70e"},
+ {NID_sect571k1, NID_sha224,
+ "eced8c412a153a643ccd69596389f83b6a36880286f8aeede503452bef8305942d95734f"
+ "b5733f37ffeceb1c2dae7b1396c3323de11089082745c28a1756f784423fa7ad68bbfbf0"
+ "d93ff8b7ad62220500df6d6895788402c1f5c69c06dd9ef55e2401cf297184e411be87c1"
+ "bba657f847208c0e750f94a3df92f253b377b4da",
+ "0ec52fc3d9c272ca80623e06b15c35f349b13548ef7ee400bbfa04196850b3b8cc7b2392"
+ "38c827f9b0a3160cd97969ce21d66752791f5896e0385b0527d4d77e4b9fc70f04d73b2",
+ "0405cd2e63dcd48fc793c18776d030398dfe3f8b6978eec6d23f49240581fe1e141f6674"
+ "98421f4c40a9430587fa282441a78bb641894cb79d929c299f1aede218a0078c247f7402"
+ "5200cd2843ca87d98f6336c0adb97bbb9c5293a03e5b86d5534e2849ebbd73dff837ffa4"
+ "88fad7d134908234d0d7fdac8c7fafb4729ecf0516c42995fc9337f60db2f36eeac69a4e"
+ "42",
+ "1c40a15fca0c959852afcb4ca6cbcc99fb680950c64ba18ae5388bf783052b6ef3730b1f"
+ "b1487189ad983b6a68bcfbb707466092da52ea8893d8bc4898eb133fd771e78379b9c13",
+ "14485cb1caf1527350587d6695ee3df2b21c13084df0c093ca5109d7c192e7e5df2232ed"
+ "e11dbe5ff2f46b13dc2dedb709a0fc1641c1f32857040147599d8f179fea6b2f2417646",
+ "1a16ebf12c11d2d0a64b7ea124623ffdfe2650fc9603ded571e76dbd7e3b27cd32fcb709"
+ "e2ba04aee0e8e1b942a4e829cd0c9683aee67eec27d4244a2cefc36f84f7de209e22a62"},
+ {NID_sect571k1, NID_sha224,
+ "30e83ea39a92036e22b7bed7639eab5e5be1d00c20b4a9b9afa9a0d1653369cbef363c11"
+ "9cc6f921c8f84663949c8b8dc9b743ac2b1861a480476e9b64c8f333f34b6fa0e1ddf09d"
+ "49618ee4f3c1f46751b5595f0aea413d4ca46f3c26b974b112cbe99c813a96a4423764c0"
+ "69454946f213c5f066ec38108f947abeeeb02fb8",
+ "06403de7627de22d1dcf6b8da5af62f9ec59ec065cc1ca1311bb98aa439a6d5985619b17"
+ "c17a70f59e17cf180ea6828ef57f5f1f8ef05680a9fc12ab7faad5af61e4e11fb45d341",
+ "0405575c329d73f261ab6897153d7261f87e9730eb5dad49c05d782cb02e483fac4a9ddf"
+ "f31d2fb695a62cdc44edef6398be8f4f84aea1d63d0b3a771fe91889dfac4780063d2583"
+ "250183e63ee783abbd00547567bb99e9b578ad8ce63d229db41c6877534487568c423d4c"
+ "389154af9627708d8d8f863597bc668e88f9412b21a6696d07bba06fe7aef93b26950c69"
+ "ed",
+ "0e751a4918643ba3e68bd9406a4386e876d0d66342aefb4ef75bc4dcb8cb2e2d9f8378bd"
+ "02c388c776535ba85d24b206f5bef4b2f23a1c99fe2f2e8ea201009ca468e5b2e21dcda",
+ "0ad6792fdff4c621219549834cf03808645171d944088f5a6d3cf1bd826b5588544a32f2"
+ "31e8428a03ec02d6c1c1243fb6b79b1cc6d732be5be8f2cedf03c1e5588822eec559b7c",
+ "178b64bc5f9fcedab17822e831fa52d49ed10afef1c5912893df4bd8dc960b474ed25883"
+ "ddc343341b696fdebd06e177f234ea45553cc83920a8c799ada2deccf1ddf1dd9aed863"},
+ {NID_sect571k1, NID_sha224,
+ "3ed244dc16a5cb292db4b1433b0ca3226913f07377faa20c6c1402cb4d026de808ca74a6"
+ "d4ecdd7c4e662105bff6edb9fae0117c50aa053aef677c0750c7a446edbb879110030758"
+ "912e8fa666489d702d8fceb719963b24a256429bbcc869a1f4ab9de9db89263e3684d4da"
+ "a1df2ed94bb59dde2abba63793e5f82aa2e4db83",
+ "01fb980aef64254aeb9bb613ff2fc6967503db4bc1f337882f1566cbeb57489cf32e34f3"
+ "10549f41cba1b951f487453c29753a184e33330e90d4b973d2e406c99a239a5c3f96233",
+ "04036ea761ccc71ba55aeab229aaf874a7c2d1ec15d821401e2988dccf02798c4e7bea80"
+ "d9fb8d30be213fc80475a17f45d60c53249b66858d29c73e73117162934dd71096d74674"
+ "2e049bc28f4d45d29c3560915698d03271028f56c29f0ead0608cb72dd0b62490f95bbd6"
+ "7145a6c0adff0d6ef396b4deea6a5e2a33f242bf17e907b136c039c127d6012c88b76aab"
+ "3d",
+ "0ed404ee6b59ffc445b16f11b9b1471249443f8a7309ad8a662b7cb44c94866828c906fd"
+ "64784c699cd29d3d972e5db3d42157452630f14536eca23cbbdd1d37e199e5a586fc352",
+ "1056938496df511d745f2cb88acad279ec2d58bb36498fcd8139d426d596de6d145b765a"
+ "5b3e8366845fceae91d14075356a32515134e577937ce2af7e732b4e89a9164d083adaa",
+ "0d5156c776f2184babd69c1f200b8bd94289d45a2f8b7cd8e8afb1455e8901d8c3ed14b7"
+ "a23b0976b85a22b86f3ccff4ae91e286f696f39646188b675895684f33f0368098fa7ca"},
+ {NID_sect571k1, NID_sha224,
+ "40343935d9423ad30f3fb1832bb08a5d20ddb3a55b59057cd275320db4a5835471c96cfb"
+ "7d67f41ef860cf5879897b8dcf307bd1a52a6226847b768ea38ff1858f59e64cd635b51e"
+ "6863773cc6c64b363ec47ca39266422406264668415c189e2f92447ac4c63ee5d74e95d1"
+ "e6af05016917ad237f482ea0b02aecadd370a8bb",
+ "1d96dc09dfaf602789c1dffa5c9ba130832badcf180429660daadf4cf1be5cca92fe9713"
+ "173861670eebfe3a0ba25bcc76aecac60a756f07b69687e05c7e25984a39556469f62b4",
+ "040452b1cd70e3c88bec1fd0e4b8f8e9bd5f844ffc12f3d6769eeb1c9ea90e5996199086"
+ "82eb5e43b1d6eea63ba9353fb64b59d6549d19cd95f2f54156c81fba53aa0dc91244e7ab"
+ "8b020926ca366dc657d133f0ff9149738738ce68f3cc2f61dad590e2502e8fea714b8954"
+ "3f43d97b46b7075c58375efa379cde208ce769a16be9a377a111a8ac51459840a223f346"
+ "95",
+ "1dfd064dbe64c25a832faea1819cd836d22583fc40b2ecbc19b1f5173c25f33ca8cb7f30"
+ "bcd619ef73a4c14c46e610c8996059612728f508bf7db7ab3191ad61955e8b1ba409692",
+ "03cbb0ae5f7c0978ad8c10c4ff099767465ed6fefb7358f3eb58a79366707107cc88b305"
+ "661526f2972bd16923375dd898ae72e81f290b86cf9a4dec086d7ef04d7a7bba5087f8e",
+ "09f77a86f0da4e35c395978603cbb9c4dcccf126b7cc924cf62732593bb1aff0dabb6d58"
+ "321debad4410dbfa1fb8fe249bfc336db7669e4ee13485ccf8dbde01ca4cdb9acfe5e74"},
+ {NID_sect571k1, NID_sha224,
+ "274567f8841183e68c4f6c6b36c5a52fb0e88492e4076b9cd768bf571facf39dad6affeb"
+ "68941ee326ee461ce1f33c26e4bfb3c9e0cae8241fbcc14cc69c1af68701fd0be3def1e8"
+ "7b7d52b682ebbe1cc225c1bd177b0886e3698a06d0e410a1f92c9bdf7239189f6acde0d0"
+ "653815a72987671b415d1e8a70e685d6e5b14c33",
+ "09d98b32c8eacd135ffb8e13223690ef02c0c1f29ea8b4da193502c8cb3f39f9eed608c0"
+ "2fd457f2fb685ec4595e8fc8f388d26778d225d2b18c9bc8b199d8b65c0d1a6af33854a",
+ "040775560724ab7d98407e20af12b03634a757037f8b3854957e11900d58460ca20d93ef"
+ "06436921f8d4481ff9123a9eff3973e17d441511df3cd88d0d6dfc8016d2cbfb89633784"
+ "6303082aa4a81d4e6f0ffc94511327202f2baed72c08026e05a288eaaeaa36a1a4961f40"
+ "0b4712ce68778ff38be43adc2222a986ef0fecde62f861575842429816c8fc77797af018"
+ "c6",
+ "1f4acd3430931ecba5e9d986c6712467526ed94a0bfff36135da3ba7dd9870ceb38fa0b6"
+ "58dd391ce658774c6725360dc20e5ef41daa9cf52fa863840ca91053e7287ed29ac69f5",
+ "0502abe544fc3262663524cf88a5bc256b20829b7bed3e2779f559506adce3c4f3a89e18"
+ "bfd31819f78ae3809d9d0710c6591b2fc90039328678aed9df2fae38a74b66f69295d82",
+ "0b2f055248d9633cafa4db3b3cef0b76ee02f6bda3d508e19c68870e76a02c69dd1013a0"
+ "3fd741e854cb34f815432bf48138203177141be7209e957f4db1a958fcd45421a213c98"},
+ {NID_sect571k1, NID_sha256,
+ "d9c99b8da92d3c2e40dea3c4025dc37770e867c4d2746c4d726b6de24250591a586c166c"
+ "88acb8ed340e161d4c81b9d14c919a1b06f1feb22c5ce5fca2693bdaf4994ac72c8983c8"
+ "7f331473fd094eccb3d5f3528e69d487562fb5a65c150a8217192f8aabfa7adcfd0b6916"
+ "d5000248fbbddf1ca2f38e3d9ed2b388998b7cfc",
+ "04d873ac744c4f68bb044783ad69e1a733cb8b8f483f2695bbd90c4211282036ad7914a5"
+ "3b25c3e890c6824643cffbdc4138d7ff457e3fbb99387494eb5cf2bdf1ad243a3a1e644",
+ "0404644456a4e5c543af7a086640fa9ff6627c2d9f17066d255c3e805db31fb1ba895682"
+ "e94f6ab96d6ca449b0c3f76bfd6593d182f422689b31d9dc3bc0b70df210a96d19af9ec2"
+ "ac01d38f8572a06ce22c1586a8329f9421414b334352f1e8b961f7e0732ee01e838eb975"
+ "bfb2f62132bbfd9acc6ef8899b4fd388c2b59e564fc3670da7a008ca016de678d6dded13"
+ "7c",
+ "0b050aa7266201a42dbee063ae2a21398ee1d2a190de9fbbce2468836e416b3ec18d7340"
+ "c81fd2a5283713f9aba33e8cbb105eaa2abbf0b687fe2713921bcbc02a4b77df21f762f",
+ "08351115714bc8f29b84a6e3f0a23bdc219d4271a9ee18bdab54c3acc9cb3468beb1f89b"
+ "0f981da5aa7d7ec7ad451bc5e91bc98440fe20f5877a4e73614820b9ab6f2bad3e2e609",
+ "0c64baaeed68178f5a1d8f095b0932fb73f9a02462df5e8378746ecf17d05971a0a287d5"
+ "a8e0317db055b02d4f4b5864597d0f9a9cb1ae68577dcaf7db09c55bf3d3575197295c9"},
+ {NID_sect571k1, NID_sha256,
+ "d2b88a01fa17703c99e5b867c645e98feec0d6d1afaa20a97b5fce9c23f0594460142af4"
+ "e36a5739b8d26d3ba35a0263caa5429b4abba157f359fce701c43372500fd2ae1bc2ed80"
+ "bfcaf8cab7016ff93d4a27f565b7e67fe7dde22bf02c48be12114fbff2421517c825019c"
+ "0ccc72d927bef156140d7f0e9b6ee37af78c3efa",
+ "18d2eb947297a054f8a789771dd875b12b26ef057fb91235dff3b062916f85aab3365609"
+ "bd2a38a861439c8514e33f174c198139354e63766942f605107cb1b9709b782622b295a",
+ "0403f6454f1dd032a925c6bc3e1c62892c1dfaa700d3badf83f07c1185c31ea817641865"
+ "a129572f3351340fec331f5ed466db7bea3ffa9723c951b518ce6f3c9263a7bd6866c8b0"
+ "b40188877b68c10cd6ee543cc5638bf0f82db25b9327b2d81269dc61250eecb976d6568a"
+ "9df29277836b97973e3615e0a4345e610b33909c2340a23c61dcc6e2baf2bc363a333818"
+ "02",
+ "0ec6af799d92ab52c51cebda61ab642d4876f374edb17253a1de3e880048355e58367096"
+ "d3bc0402e4b93fa6a6c8d55c529b9fd68a27962c19274393ebe1bd0b1197a28125275bf",
+ "095c42b3ef01c0f9ab96693526e903ef3ccf0d843776089d15e77093fa9d010872d65cee"
+ "1801f821bcce747ddc5875eaa462b00424e6cdf0995b87c6cf33c37d4463848a6ad7fee",
+ "0c4f0edd4b2dff4f9fd1fea5addef6d483bb51c27bf5c7aa13f9482243e5ed5571bbe0a6"
+ "58543c69b731de56b6b34de27795095b3676375cb4686b45d48010fe8c941208cffded3"},
+ {NID_sect571k1, NID_sha256,
+ "a704a1428cc894f958774368979fe075353b56790555386e3b043dc6a2919b94a11c7f85"
+ "883f46b4d47b324d349c28c667bf9a000daaca1d7191f2a0fd97a4867aa9f72422134a69"
+ "0625408a9ea4b723704690b69152655f9e9dd5fa3dd94814d97dd4f13e85c3f9bca76949"
+ "1c2461fbd17e28afac00bfa81371d5039013da8c",
+ "0594fc0b7a5cc0216d2e78eeeb6394c8225de795f4b73bec48b2f4ede185ba622b59a16d"
+ "d3eedf8cf2c94f2ccd6dcd205f64c97cf1b7f1e34129e94b5129502909f43940dba0746",
+ "040271cbd3e0d73ac19b975559450d686ed67eeaab4175435b2801e8989966d7c5ba81ee"
+ "7d749e43dffa12efba820462bdb274a57d04cd7e92c180cdf555686c78aad58444d5f171"
+ "2907c407b46e93d4c2b12c967cd3e41320ea8535a2ff24372a5791fac9e95865e14d545d"
+ "d3627dcb4aad2350db248ef49469ff4d59a879a84a19d1c0e5d7ad3db432af927c88aa5d"
+ "48",
+ "1e730d50a9747c7c1ce2918fda7575bb81a74757cf9625d0f0619aab7f1eb6954dbaab74"
+ "9e573290406e599eddd7d3376dcb3fb98c116ed7b65729dd04ece3eab1d7b4bed52326c",
+ "00d59ebcfb30d7b27c87d56ec2fc9286b04b39e68dc49b395f374e19647bcc58f2fdce1c"
+ "0dc815cb2aad55cf863a4786efd6c3a0ce56c1d92aa20a19245e74550c17fdaf7a08340",
+ "134e80d63c9b328e02ebafb75eabf0fafba886f48b25206cca9086e03658ce2047c94a52"
+ "22a206c6c5a57ddb8f59c5ba1408fc56668066fef4557124c430cbd1267455e0b31a8bb"},
+ {NID_sect571k1, NID_sha256,
+ "f8a87c4acadee27a908718461e3b45060ae4ebb009b10a15926460bf219cb7e75dc3a993"
+ "fb9a741b94e2fd71615c50f6df958568f452b2cc284f0516816bc0d2e2d45f663155660a"
+ "26326f63f4aa42a6e1cc8462a2ec620a365257ec042f55e4047b62af689592a1a072553f"
+ "f174dd629a4f51837780ca232cf479a68c1ebdda",
+ "0f000631106c5851e8ae0802b01e7a8a8540b427a8a3956a1d36f0600be89318032320cc"
+ "420931d825cc964e823745c60aad3437ebc1c91d32004472e9677605fb708e5a71a0d83",
+ "04034136cc7b8e2dcade5cbb9b3d0e0857c485ee791f862273749b5d3757d072bbeccdd8"
+ "eb81c67fa6927c1aa54d823193c370fc596d0d903214d7967b905292f4b96549b3dbc9b4"
+ "7d056f69b42b29ea82b9f2fc377e874b58ee785010bb7f5814907fb5531789606810b716"
+ "13a36035cd257864e414fe0e6ea353f398745df87ccf25b3a25cce1c78f61f5039d66241"
+ "e6",
+ "009781f5d960870a289cc20f6b1af56602e5e12d9a7353e81b89a90b0a9675686f155111"
+ "57d9fb70b82e8b2e25534f8ad22e14ed518e62a88f1ae21c56d4ab7763808851762d3ec",
+ "0f3eba5ddbb8c127419fe5e8cc1aae2239bfbcd2ab43a006020b96c9e7db832fb09e0bc8"
+ "87aaf24848491d4de935b78141f426875f7dcf2937748afb303ec5eebd01b6a82a8c4df",
+ "17acc35bd81cf24f983072585ee1e096459b408da909fd82b5ea86b77154ecfbffa7fe97"
+ "271f50b67ca3c29ce704b28186b831300db0aa0dd6147d2d160e4aff14348ba76e6f711"},
+ {NID_sect571k1, NID_sha256,
+ "10b5438294a77c7e517ecfe8f8cd58d75297b14116aa93e574996ec4acb21837e6297cc0"
+ "e7e7b5861e862062f192f2206a01b1caf42c6d7181d02c7d62b76c2881f8479449b02d32"
+ "c6f792714d8f70f0c75e81c7d9abb996be87f5ad9a01fe42b75855558d5f00df392b62ae"
+ "0d258f3f67dbeaf07208952e679a2c573aca941b",
+ "1023997206341c6147c536d034a9c38b4012035dc2c9b7ef0bb9cfe65e7d788296f055d5"
+ "08a1fd957b2dc7f9eb10c27790f15f30d81670945e54a508c57b70b46b4a09f4c769289",
+ "04066bd3f503cf42a20cea4a55cab75940907f38fac7fb024c55245f02d72d80336574a7"
+ "2fb248b1b61e3205b31489ed789ee78d88e487db3f5a1cd48efa1487916b8707e72e4be7"
+ "e6010b6e4330af0270abeccf0901dad2f8f64f4993ca93a7c5281dfd71c6ec405f9a9bd7"
+ "8008fd22fef76fb79e20a571df16c4d97244c7356e3ad16cc489d3a9b2e3fdcd5f23b48e"
+ "26",
+ "09137bd8436dd126924943e8599c87f64564297117766580e6344aa3c02056c811fb996f"
+ "264ac4f8f0cb33eaed5ef8f120d43a1d2b3e5e34697765ff9db4b4683ce5c1596d74723",
+ "03b684a66e92d352847f63196181160db3de7a304b6e43679340eaa9fc828322b5b9c16a"
+ "1772c981ff0febb474488daf998d4acd867e78019b61804bb675a98cef24fdad088afcb",
+ "02649a94d2bc243e997bdf27be7d6364459c38845c3bc8d1c8b549ad4689c8a4b4fd5519"
+ "3ac769b1da607dc96458e2f6abc602bb4048cf6b0933da6785795d04d10f22e439748a8"},
+ {NID_sect571k1, NID_sha256,
+ "d83a52d43216fdb16b1b40469863ca8eff4df9fa358deccb5ffd18b3e22a9d654aedc98f"
+ "3dbdc4f5b4e56b4299e25d8a5a38d01b34eb93de382df1ae4d1c7f966e84b84c393d167a"
+ "ecc6f1192c4b42cae83748b1ee3d9147ce7de74cebd122695b455e8082f86e3e488fb0f5"
+ "1b3b7edcd579940d1cb9d045296e5e38f201b7ef",
+ "11ebf320ecf6a908ea5b868afb8e22246ce84e743e1076d6185ec65dd79043380708bf8d"
+ "a4ba802c3b93b8d15509bb7d7de9dc29f1e9fb0f0f2cb97a26698f955b1f7ef668122be",
+ "04038b2760315b0999f9629922bcdff65cfdee4938d4aab8cc3d200aa9c1db843fcbfeb9"
+ "da10afbf10280110c49f0c18f15c2aac4f39af35a79557c68eb6cf6afaab973538b98b0a"
+ "6c07da55796396e919f9b5967608af06bd01e8870354317e76bcb8597a379129e35bcb69"
+ "bbf6b38911a03c3076f7fbbe9b179e078b442c604519e330282f6f6c21aba515d6d73c02"
+ "57",
+ "1c219274e54a4c5e1e1aee3bf805a7002bbfe1c030cd4c8a1617dcea2a14b1d537a64cb0"
+ "7c5a1385edd76f3e4ea9a38e38b458d2c7bf8eb56a57fd33166bf59a8af2e9639106929",
+ "08677167a7ea1aec4de76d1c5effdb5a1655965850bd6498aaa4fb3fa50f213fa4d99caf"
+ "4145b4ba87e34797babfe614dce6ac21d9c13dd0fcd9802b1414aa92dfa18318c7e57eb",
+ "048d6161a3739fbb3ee1c223bc82a46255d10a86a605f6c8e1934b13f1a8662f30f8e95f"
+ "53848119c61f08037ee5a2440c8faa11a6b1800078ed476b2a3f4cfdb25367c8dc2989f"},
+ {NID_sect571k1, NID_sha256,
+ "eddf5553ed4db6e8ce72cbcb59fb1eb80671c884ebd68e24bd7abe98bb1f40806de646f4"
+ "d509be50a3fabfa85c5630905ce81abfad8a55f4cd80208afffb9056bc67d9dd7f4660a5"
+ "f924af2a3745eec2daec39a3fe36131fe9eea444b92d31f6a125f12125159ba095f89968"
+ "a7028549466f41ad45668a861f671050d2a6f343",
+ "0746d5c824d78f42a1fd63d8fcca61f154ba3e75788b7a0b87f53e5420e23a935b02eaf6"
+ "7bace8dd8a8e7c1caee30154c2428e0a437cf12e235f41c416f92fb54528865fd4766d1",
+ "04063645fd3810e2458d15b43287f329c354b07324c0707f19847c544f129e4de1799996"
+ "f805fab7dd356567970e10eb21d875e8ee7bbce56c666511f9b4a4cca986683e937d6f0b"
+ "3e0595485c9a7f2a97fa7f8453df13b75682931fae10f3441042199fedba91a58c105df5"
+ "7b83d2a3911a2d34a2d41e451d0d2549b0a0a65b42aca40aaa618c252baec171da7937d8"
+ "12",
+ "0674788e75eb9d5ceaadad9fae036f129178fde1a584d73cf284acae3b4cbcc208ae7a5d"
+ "35aa473f4e1201c19ee5bbe685ff9218a8e2188f3428ab45bf09b6b600fcf81fadd8d69",
+ "060d6dc42329687012a93ffc5b846b4dce3df46ad12eb61437832f81f4fcdea7392582fd"
+ "75e701e106e5b83521759da6a22a21addb63b73783592d3f29347f3d484e05c19db148e",
+ "197f3b2d4f3e10425f4cb60dd1ae84fd8c87f62a2cc822342d5f0be4f0841623227c5cb0"
+ "f8bf83fef483a061e30ecac86cea0210036083a99fa1247b49e19a7f401a815cb68ab3b"},
+ {NID_sect571k1, NID_sha256,
+ "3db94335f6d1a125309622c0a9d71bde1da09371f0285a93bd0aac255fa8f10a56074e0f"
+ "6057f1b1aecf2d86a2319590ead96a2ad1336fe844e09339b456be32374ba2e659fbe9d0"
+ "f2cdd83444d117d2ce3204ce4b4294dd05405634b84747ffb4227160c4e5c2c9da9815b0"
+ "c6d20f55705f16cdbaa13d107ae666d707ccbe6c",
+ "00670e72ac2de50dd2cdd975a6cdab10ac45e37ef7a28c685d77447051496b5e161f8b1b"
+ "93f6c7f32fce8ea05e94ed35fd7cb28c44bf51ea29cbaf5aaa31d6abca30a89430323dc",
+ "04054db4acd0815aa7ebec4f7661d80465c64f1fd4147507549352bc07dfcc6041ad309b"
+ "fb1434b60f73b3d61ebde91f849004d55257e98b6ebbbeeabe960f9429a55a36ff75c112"
+ "4e05b6f36f76b3b3c780b6a70bb8ea150e9cd6895ff6a6765a3516acbb4f5efa91434def"
+ "52dd0ab81f618ff28db10fcf39264be8e7ea76e06516335ac5ae33ba5393080f11418911"
+ "0c",
+ "0f74a0ec1a7496043d78891e308c82b4660606642ea669e4406683d44b79dd6e6a1b8102"
+ "92bcd6a9f59bcc2e590518bdf2e9224755654026d85cf2a3d9768d909278448f0d63fe3",
+ "047d808febc1065646e6a5608d62d1445d922084487a64e9ced5fafff2977eb3a7e29984"
+ "230946e3fc77a766820747122fdbbb9100c591ad7c9dd29d07efa2e8a43357e3c47762d",
+ "04dd6c8ce75bf2792ef227cd5a3102d30a9a31690ff5c21354f8dac9f826c86ebfaa0465"
+ "3f0ead103b1c8ea59f0a78f5d4e8eab597ec6c028ebcc57f4ce4103ac14579bd6e15166"},
+ {NID_sect571k1, NID_sha256,
+ "69166ba40768d0a3930325405edfd85f3272f7b8e600b0b319f070274c91f9f03d0e6ec4"
+ "bfc7b4445e91b87cecabfecf5e77c7301ee3c6b0affca2fa02c92216698705eb75443eec"
+ "c25438db2d2fb4b24f4195d6b9c05c53e0868d3e58477100607ffdc31b18c40b4ad7202b"
+ "b034e58653daec0f6b33c024d42a3fc84bd8f86b",
+ "0369a3bb96f884983c23281bcd04e24a3e5f6359f81e3c8e46f3f6b865eb6bdf98a630e9"
+ "0646275c587e41b546d3ca7688cc207afda15cf9b25cf83bd6ad27908647f3f9de59de7",
+ "0400eb02f6e741b3f83a9dc50853828b8a6e0861ffc644162515a264730c662ba388ac0d"
+ "705f8b36f5388894df5c1bbc3582c85de141abb7712caadd2d616da589bdffdd9258808a"
+ "4105dbf831f450da6f8e503c19a7788c1317ebe556a458e2bfbf3137f986c9c966a14ca9"
+ "0344be1b76457159c9d70f13af7fe0013cf605010a8a3b84bc0fe187c7d93e4cfb2639de"
+ "57",
+ "0ce22f7f2f01355280ba2d2cda06a55771e66f598bf79c65171e08a98f1d954e4beb3ec7"
+ "7ab06ee60c5fd156a7098023558e3d630641579cc179739bda6d860f8ba1d5ef717ebb2",
+ "0ae86b40d10ca45c20bdb3db55a6dc12e9b75754679eccb44c40fa57351c23c062282e1d"
+ "a9e1703176e4b8f7f224982f2474494772a20269c43a18a7a03fd12d8ebb975b83ade0f",
+ "15ff7b34c3316d9e7ee3d7b48ebf97d98453ca32f3fc67fd08761d93cf34cfa5a2314fd0"
+ "752d263c3eb7cf842aeac395d41ad3c04c1a9d3808b4fb7489e880d130c35a26b702952"},
+ {NID_sect571k1, NID_sha256,
+ "f64cb668b72f1e6dd026a478505c0eb33446ae9a2993bc7648aaed02e172fa9a0e05eeec"
+ "61e756ba246c1dad7e85d3f01baf734b1905c5bbd1b08d833c2cf1e079eca75b866d705c"
+ "407eea8618d23ebbaf269c7185984b3bd4117ecfb295ee6b47eecc8d3a78bb96552f6be3"
+ "14656f91caff793838226662c75cd7804b6bef79",
+ "026717b039df834855511815d5665ff9b654facab469390ae257b7f0eb4dfe66ea0dc037"
+ "242ed0c13bf229b8f7ff26da9b55fe4750d3451c62804aad493c179ae45d08ece5af085",
+ "040191a6d1ab9cdda2d593d5598a966efff829c04c421804c2297e658adc5c9a6092e146"
+ "b25c730ff7ee65cb9812ac9ea0c18dc6b60deda948b4b7568e8b8e14411a6969d7764652"
+ "ae03744af98387421d958b26971d21928b73bbf5b0f0ef183e9f606d0348fa715f153a60"
+ "b6c7991dcefead2ebb875d0c1dbd3665dc42a241c565ea0fb0e6349b4319c3de633883a5"
+ "16",
+ "0dcd28cdfe9028a4a6df1d41019bc58e4a1540ca94b717d258f2afe8bec560f3028e15ec"
+ "1e8bfd422415961516659fa2b006256745e85e488c359e8cbc94cd2592bbb892a19c45e",
+ "07ba5911415a3d21a3d98b400f61eb63ddda689bfff0c8c3ab83668b1e4bf8a703c853d3"
+ "585b8bdc29aa2fdc41d5e7534850f4656ec949f0a13fd18295b662c9829723e5a7fe3a1",
+ "1b027e38283d74c962fe0e7b58dfbf5e21ce1d9c91651bc98284008f44fddfe4cec94419"
+ "94e690d72a8ff3ba2b538718aa678e7de046b653403f3b7c064ee07c9c3c6d23e1b068f"},
+ {NID_sect571k1, NID_sha256,
+ "51ee0b98eb6a3e3c1afcb35a33697c048dbf61374629ac5702a57801fafbea4d6fa5a26c"
+ "9d1b79d1c58257ac0106387fab2d4a1b7f8c0dadcbe7c830613531b3c209bc17f792bdba"
+ "1c1fae1b7528aac53dc86c2094b40194577325c05d2258303a2d17c854e7449489c43991"
+ "b6877a50692a6340a528a6b188440ac0cddd4c4b",
+ "1d642f2d393ed4abea37173e4a79534af87adf534ead4a0a1c46fb047619221e3577e6b8"
+ "bcc776114d01159c736ab78af3e53feac339d7afe58be8e7a8ed290f1dad960f1b5de94",
+ "04023d1ea50229b70b46578df6904fd528e9930985426eb2f1ce10eecbc0c16583959483"
+ "80c4047d67bc4072be2a2624d62a301da41a5265f040642d1937fbbb7cbd205e1db85b86"
+ "850625c82ccff6047b1ef4b08f1913f7366c4f6c0312c21e5ab01b598d1a9618cf5c22cd"
+ "dc64a4732b477dd5c06e332b846c8015a2e5a195326bca46c29cedcc2f24d37ebdb7c2ea"
+ "ee",
+ "0c9066831d61a4192ad9de23efcaf578a5d5774960a2b3e3e292e0decaef62d1701b86ec"
+ "6183d8e17a699d418ef9d084b982c97a55bd76c8b038ac5c639451096ca4d331f070ad8",
+ "005778acb38b1961195d38463abd9c19d9e07dcd997f19676633fa3c44caa44ad1a9bd63"
+ "435f3138ad8f22a731e749a81161c5448eb462fcbcd69ec2255cc2923ac697ed319316c",
+ "1a1aa90113952608dd17dbf391ed56231ecfa7d649f3274774ed2b6034a2207c05c6d8b6"
+ "cec480ae27b58495a50b1e5b74a17ce6cf2e43aa273c2b813c0e6c79976882b7e4b1c93"},
+ {NID_sect571k1, NID_sha256,
+ "feee50aeacaccb6b1c3d95c6524044edb78322ee836d8159c4a4c2cc6982480567c4c6cc"
+ "4806a564876622266e1ebd45f2f4be851b79da025bd57d0e6acce1ec1c8c255eb89713a1"
+ "e4897d4ee0f7a248b9d4bd3ad5dc0e57f60ebfb65691e164bc908956a019083e923cfd33"
+ "dcf37c735af3462768a1e14a8051d7aee74d5228",
+ "08cb70be29e83f697a3e2f67d86f1c1ec9a163b5335cb4a06004b6634948bf60b8ad9df9"
+ "b27d2bedc4975265ce44a7884e57082d521320ca4372d38fc77b18d3fa05ad8aa5c43d6",
+ "0404c042bde9e90b38b48e60551d832a7c80377a81e8c5b010d0e491cf765c432b5edb07"
+ "71aaa5f672edf3ba108dc71459d245ad60f3884b8cf33f8cf797f36b20e4be39c8389e66"
+ "b4075f2454c41c0323ee1a640755077d36a65be7c2a014db36719ec217e21a9c004bae5b"
+ "efb499bf6be67e82d3da70475abf9dfb751c84c409fe838cf1c6ae109d27f24d75c02cc5"
+ "b3",
+ "186f16dfdd7a71f20a5e634ffc465356914bb52286d3d5ac00f3ebc02497112fcd592e1e"
+ "cb2ebbc819e07ea092e465e66f3e58da7a2ddd41c8787f57c135ba4c168539b4743c3a5",
+ "1c2140d294fafe3d9effb33ce73bb7e5485c93c7aa9d33b7535c7053831a1dbe79075713"
+ "794c87e52bc887ded969d2dfa6a1e2630cff96760310e04cd2a75be6fa020a12fc84d3b",
+ "110aa165707b7de1b3a8e05e4502701abb5ade0a27deb04fd93c6eb24ed2b67ade6c49d7"
+ "8e874d25247e948f704d3c5b925f84c5b07c9b289c4f8507e75d0f8927c6dad6dbce885"},
+ {NID_sect571k1, NID_sha256,
+ "b115f7370d6a93a90fd9dfdfb292956be34b61992ce1fa5627c5e928d74bcdeea66d4040"
+ "c473306a0070fa8363c4303bea32f73ea3639b5c6676fa5a1d68a2cc1f91f00580d7453a"
+ "23ae70af4cb1f1657aa82c5b305374effe5d67d559e46a6cee6360503d21070506f1af30"
+ "bb000d2f2f85caa6465810f89968f33abae81cb3",
+ "1eef463771f9c6285f3257691dea0844687606d4dd00b6020517f190891cc1be97cfad21"
+ "d147ed8881b5a6e19b22ceeae30e1132476325f2de0e9af2e14c80b8c780a9d2d6c96de",
+ "04024de3ebe03d2d91b88794a77635aae6743e597410ae10c356a51e3af88fa7f9c4d648"
+ "c7d1fdb887c8313914ed554eede282b24a2e66aeafcc0cc96907bb2f3877eeb97df491be"
+ "f301ce1f9fd4d7d3870997f34f54f2ba8f08ac94ea94f74a766f2dbc02e4d5149802e313"
+ "5a2d762e3b8abb01461968f1e88cfc8c7fda49c099e392e80d57f0c14de9c4fa1eea2573"
+ "2b",
+ "026b545702baa340fb6d1bc2bb96f7fb1a77a2428cc122ea380a258c747d4e0625bbf4e3"
+ "dbc2ca2f15bcfea92f2417cd5d22f2bb5f38a9ba313b3bded506d3e570dcbcb86c2debd",
+ "091c162d040a12f08a416296a43501d92e2ecd6be302b5e1754b9ec119fb8a572626c509"
+ "855c7c868a07b263f66070ac986f95e4c83150a5a492d5ea8a7f8ebf556c17ad2bcc996",
+ "00c217fee7bb202d6399f6b1ae4e5811d9361573ed4fe1b3fe5d474cf06d0236d59dd358"
+ "0145dc0bc7632c721b6463c69490a67d1be1fae99e34318af6df939f9f7f36a9bb8d5e9"},
+ {NID_sect571k1, NID_sha256,
+ "726782eb0d9720daa64e4a77b5d8dd67a1a193f15eb6b5162e3d89c925ba63b7c7e1c4bf"
+ "c8d6f11915b0e14d16ab53ab015317bd5958b0beb6074199e05181915496575768d026c2"
+ "3e92e06016598de008c3718aaabcda8b68bebca0a73ecfc7327e8d3646106b7d114dabc4"
+ "6cfe56265c326ee56fd2ca87abb5bed8f997c735",
+ "13bd452b0880b101df1aa65724fb60d5d85b37ed5419027481661a3617e0fb37bda1151b"
+ "9b5b41f908ba832011f7850b75a07b678e5b8cb35c5fc8b94a625e4398cd5ada2b04cc9",
+ "04031d88b62d2edd5f6ed29258c143bbcb3d29413afd8f86873698a9efb8d2021186415d"
+ "301599232989a0df5ea91ca222c5781314f200c708de30751feadc277d50e64842dd355b"
+ "a501c76f19ceb1be48f5540265b8b018da62fc225cc0d2d1675bf7df71456cc8e35b002a"
+ "220e2e80691600a2c1ae31e980d0cd22b4741c25bfbd413f10b375a4d8adf70a65c48ff0"
+ "06",
+ "1b9235221a6df49e39b4cde6650e994f624fcb5084daaa62aef54bc154949f4da9074636"
+ "c44f50ea40da1a3f01bf67e9b62a725ac0537a4e37ba33fdea8ba8b2286bf82901a933b",
+ "01dffcb5b5eb23694da4978419110ed2bc7961c571a2e68daebe21e598c8b483b34f3178"
+ "978708db6d78455cc1fb4f73c5ab7607cbb4f05d4d008c7bbeac88562fdaf7a370ba394",
+ "057018fc97d7b16d69af2b7dd4a859f09dc178a6025e1bd6839ec7c75c0383c59eee7079"
+ "fe61aa6bfb3e2c780d4ac0ee074e6b13223c239aa60ea1187ca4937864f89e2c65056b9"},
+ {NID_sect571k1, NID_sha256,
+ "1c2418243fcd89c6382b7c3b2a8c341f26d08174a9e9296c4a5c98c5793a0fa48dce51e3"
+ "0811a96b515aa22bf9af89a43de06d696be1e531c5dece1f69fa6ecb7f20be063c602a16"
+ "454ddafb14385ae3f8246c3f989d0566e06e7ed1864502896ea19df8393259c4dab3b338"
+ "0a4a80b4103cbef4f38cb69198b7cf74ce94883b",
+ "1288141ec2244e4bb3f62daf4ee588aed09ce22be55e3d42e9085a947c1f8cd16533635d"
+ "170bd64ae0b417346fa4670c25d41387acb2a8e14407a1931d9f7c5358a14eca40974bb",
+ "0407ccb7b12a7d6997ed2a11eead3278a3f45ea284dfda8e17f6d926ddd6881a44d02a0f"
+ "7504dadbbcb0cbd6b85c113aa0d3b4efef1ca151cc38cab1aa8360a6d22e3d6fbc0ed980"
+ "d3031b85dc2d2096bbba6c465629ea09ae3421cacc5581770ce3479070f23b3aa938333c"
+ "7c691d9cb93a4533b2ce389ae34dbebe8f333cef530abe17cd21448f701608febd42d9bd"
+ "c0",
+ "1e411ab53c48cfc1ef9eda97002dc9181a78352de13fbee3bed86cb00c10e7406033fa0e"
+ "a97b50764b0eb2dc6eb8ea83e47bb3150ecb9437179c124f15fac6ac19b0c8bc324f171",
+ "14420d78f2f9f1010018848b0442ff6e6203c1dc06a4d523802190f462ed3c11c7aa7678"
+ "bd03ba27df01cacf4121309551877d3a2bbcfee116c59926daafce55a4e0a7d69c5c938",
+ "16de0b369c28ffa0bd6ed8802a503929cebb5c0a4bf0c0e99b14659b48aabfd08bcb64bc"
+ "2e39855d7d514d7525b3c4dfd2244f37019b5f86254cdda599bb144c8fdbaad5525cfad"},
+ {NID_sect571k1, NID_sha384,
+ "1de4b642ec7220c64b91561caed7832044d6e811ac909f3b199cceb0d8a7db91bcdc8014"
+ "12044f5c34b355b95a2c6170fe497f6d5259bc20715a38cb0341c88e93029137e94d895b"
+ "ab464bca6568b852340a5c5d6a225475f6eefe2fc71ffa42f857d9bab768ccaf4793c80c"
+ "4751a5583269ddcfccf8283c46a1b34d84463e61",
+ "01fe06b94a27d551d409b0eb9db0b163fadcf0486e2a6074bafe167f9a3b4ce8ac11f42c"
+ "f72f9a1833a126b9473163d29bca2ad139dd1a5e7fedf54798bf56507326fae73a3e9a2",
+ "04038d4dce42bf8fffc39a5b6583a1a1864de288ef8479449d599115bfa35b37954ab288"
+ "ffbe81e69d58693e2c8c81639df12e4b36f62b2ab042e92a0715b518c63d0ec630051d4b"
+ "e1059c72c0bfb0ea1ac5e2fdd4fc380d08037a3d0eeed4990ff02e6cf5a16817ea598085"
+ "e28f8269da86c547e7b34e16a06724ee73776529c5b5dea4ce3321fb168827ca1cbdf885"
+ "6d",
+ "0a3b18c8c9f17badd123c674869ff428d533d2ecb8c74f9784220be7a90dda591003df52"
+ "59c5dfb612ac7398aa04cc9e82863eb0cbe66b6e7f45dd15dad252f74a538d5f4354c96",
+ "09c368c80f697c1718c55482b2c6c5c0edd7257a3a53f7193515629aa40a9716cc889d41"
+ "c120516b54f3a106a171082364886e5d3a1e9482a103f072988f61de68f034d658bd976",
+ "0e782ef47b250f40c56e3ac4de112347174bd59fd4cc991a2b538ca90cdb222d048fec62"
+ "e2773492a1d327152d1d6591740706fe2f8e1d65de888d47fdf173b2645813ac0fc3078"},
+ {NID_sect571k1, NID_sha384,
+ "70279be7d7ac72a32606642ecd81b5d4d0f95fbc3c0b07d85c16adf2788601e44dedb8e5"
+ "5e0f9e0b4ca3ca35f5be7511b0e69224a05204af67aae11ce154af6d594d47f6e3142ad1"
+ "83969544aa95cae1edf42bc699137f60178c12b10a67698e37ab9f3edbfb3acdf1b3513d"
+ "62fe3db33b16cbb4e1f9dfe732c107f9d0c953f6",
+ "09cdc7e4945c485a41728f83d5188f539e372ff4fe38fffcaacbcb4522428e4f93ef4972"
+ "556f4398fe17bdd885768f0fb5590df495badc794d4d274e22f2f4a2535555922fa43f9",
+ "0403c6f046aa3007ba7f883bc1e0bb43a9a0a1daecdea3e2b6c10b2481d11a834af241d6"
+ "0cad7cab27b677c9ac11f2e5b5226c0a3de13029229af00e5a092340af9b230e0ed992ac"
+ "f406326ffcd62e1a68b63ac680a743130b1440bbcd3966207dbc8a8f4336eb6a7986aa53"
+ "cfa4fd7bf363b30706b4fae01568020b41caa70ee3d51db982de66b0ee39777da3fecf5b"
+ "01",
+ "0c717523a308418eeb2aeb816346b74149d56b9620774cab582f01681bec73adb779bcc7"
+ "462fff35685a4e1e114c8fba474c68fe2650344fc9cf610908966a9dd1779f76bce0cdd",
+ "0061067f377bff6a9be30c9c79d8abb7f54cc8f09eaacdc190beb27b1e6d297cd32b043b"
+ "31feb49958745b78e42ac074b8722e1a7653bf03611d87c44fd3891ae410b23a2140b83",
+ "00edbe756a5dc78c8a29baac9e2059154294e3adac9a5adeb7b27ac6e4d4086821cbd554"
+ "67266946ed8f6f03abff35b59434afe84067c1daa1e0bb62ee7c56b85e7f831eea99047"},
+ {NID_sect571k1, NID_sha384,
+ "4d7e0ad520445b6a5cb46b7c77fbd367614044ae6004494c2b3a89089287e2836c73b799"
+ "cd8c90139eac427ebe335804c3788f3728ffb8edd7f49a4bcc76a9e24ce3c2299cea88c0"
+ "4645b82033115380f81b0c1d823e470631008d350cf0c0dba1915519985b8a389ccd8c80"
+ "9dbd5bb5051a79e631916e0d052d9b6cca18e0ef",
+ "02bc753d007c4491cfb8ce0a6c96455acd16d37e02c982db216b8cc1afd6d10c6be4e15a"
+ "3988b8b8b86b2b5b59a5c1939889024849317f27ee08a06bd8e7524d4ad83a1de208564",
+ "0400ea922b09e902ce3847f14d3b3afc5562dddf15811cb2e7b9e06e1b919d795f8451a3"
+ "dffcb92b418d30bbbd1a7ccf827ea0f1f6554387fa2fc51755799040133d7a655c7800b7"
+ "1301f12439a0c0df9f6ef08e89eb1a62e2cedafc0460030810b2483ad9427c48dc061e46"
+ "40ebbd9b4a398841c863a6e3d510e5c66934d66b317b1640bd05018a35677c6ac2c78397"
+ "06",
+ "0385f9caee4731627276875dd8d725fe79626c18841562e8a13fa7531c7be9adca565c22"
+ "459d519d643ea22478d7c51b4c286920b050bfa54ab7d42966e389c485b52cdb4fa1a0e",
+ "02ac84262fd121bbec43e81021c0f0610fd2fc0b26d66581ddaa78714ce58be469652838"
+ "51241d792ad6bc79af39f09d2d4bda83996ab41f1fd206b8293cdb6c4eb9d96f39efa25",
+ "1d9c9bc330adeee8f58ebfe8c1ba401d4433efa04a44185b0e8e20b634691bfe058770d0"
+ "74289e636af3e96c118edf31d72b5766c30f6fe84ade42f284fc7f2707bf27b3a309638"},
+ {NID_sect571k1, NID_sha384,
+ "d49903f38b5c9b17542310425e59377f61f5b4f4740cd97371ee2116083f7758e69e7e2c"
+ "1b0950ec6b76f96e3c91c721d6f2843afde8c7505a559c8a64bca2e665aa1131b75bdf86"
+ "fb5b90581c7d3b61c2cff88f3fccf356ddf5ed282e27727be061b6925c51ea7f1a495f47"
+ "1dc8a5ca1a88bbe29e92338d3c9361460398965a",
+ "02082c6e61d0d72f040905d8c1c20d47b029f41ec68d6cbf43ce97c3b2a0a770557a33cb"
+ "803c432cfbd3958fda30ec1bba77a6613c318597a85ad02b26c44bb77ca96d9cc1194ea",
+ "04059ff339d505b307e05adb45aa314d47f2450e1b1aad840b5550a67c11940d0e786547"
+ "55a8e28fb651e12e48c66cc1ce0338114bc1ffb00965b342ef3a3caf495f1d73a69c3f3d"
+ "170724e9474e6de57b9f8cbf6f6bb4f73f5769e6cb0e006a34c2510b379995c9e054cc49"
+ "81c709ca85a3aebdf29090ca07dce5bd3c313c6153b551012d72a8f84600350e8754bc4a"
+ "bd",
+ "18d65ca6c2ef1fb32dddfb9ad4603e03c7cb1791a9ec7b41266cb68b6048aa111f5971f3"
+ "cbef3f0dbb9ce409b59c31cc59bd6f100ee5247f8c36f26ca77cb252331fc3be7346b5b",
+ "12853f9d695b8ac4431c1ccc8498f3fc4916eb6a5e66b3795a3693f3f5a29ad13e58dcda"
+ "ca5774f1f295e2d2d3c63c69abbcd9f388a3383371028fdcc8bd77f7554d6aa3f0431e8",
+ "0d1c324afdf01ea19e9453d2b7397584d773716d6a08b6e38f9a9fb104122ecfcc9de7bf"
+ "1e5a6cfd52a08b7cecb002ebc21798d474f035fe7d4554bf632f237bce14aad88b47d4d"},
+ {NID_sect571k1, NID_sha384,
+ "0e3f4afc3e7b25c1bf2d98098a5a87db1224d9bb45adc6e434732b8722a708ab80a1f3f6"
+ "ef3c5aa70d2e1dad3e4416b12cc59171f05736c4b58bd084602c344f2f0bf3cfdcfe04c6"
+ "4e87597a99de23ded64b33607f7c273ec321f6462518715b11e91361e89ce5415bfc2ef5"
+ "20bfec378244a3bd2a4b9b6b3d68815f2f75baf6",
+ "0e298c93351323e2c5304015a4878997ae4e79d1c32f1dc64262e534d4f2c4b3e222356f"
+ "fce746763373fdfb936fd330d3214a18c07f1205b20c9a941331cd676040ba1fe3dbce7",
+ "0406ee4952a83477d89ea05ae63d5169cb0f7c7ff22f15728c6d69dfb30d1f28158e2667"
+ "f9342cfd9b32f2fd537dad47c190d82f72c03043f2a9c5d97cd09d07ed4c35b961040425"
+ "54026d5935dcebc0ed5a07b7ffa50de3c8aac309dddb61b8c560230379696d81d72bda3c"
+ "819c46387e7f026b384bb0f7b2ca90c402bb67b5e37d343cc21a8d1a0f822dbb2766030d"
+ "73",
+ "12d23969d230e0e2712f96b11e196202dd3e6ac755c824f92b9c765e3fc808d4e7236c8a"
+ "3c06ca2c8272c7ac953fdb936db30d892246cbdcb7f98c43177e1c30afcc162af511364",
+ "022f6dff5bc1eac1ef568588e2e512103cf56ebcb610e124a125fb004064a28291c19e83"
+ "ea08171bd1b14ac729392c7c46354e795d63e3bb087fd100642465efd817b79924408a1",
+ "1785e1fd773446e3b90b8704cc2723b8da2f99d1d699e817c3c4622015d178b0cebc19b3"
+ "a6dd972f75eb3828a386973c0a5e67ca192d69f1a84c825d1253f1062a990c3f1a947c7"},
+ {NID_sect571k1, NID_sha384,
+ "8fe32671f6927272fd3cd8dd4e34d44d27fac8c88b41bf9a48039e914990bf06d1633b38"
+ "b9200ce1c2a275b9c55498e5da2d0707322c3ea0a0fd7aff598fb801628264e13047c800"
+ "8153e8595a0dc95d54e70b882ac2ac9314d2b78e7b93922da818d7075215e354708994af"
+ "66958954c92c074d132dbb2488e5a531c755a8e2",
+ "104f4ad56594c5cec2a988c5596d73adaa5a81802b40110dbae698ddb1f0b271fd1479c3"
+ "8abcdb9b234e69cd0da8a0328d2135c287d5b130a09fa0b899058e7800eb2dfcee95c1a",
+ "0404e8151aaf2aa6a6159622baad134be41c404982bb0101e820eac8f0a52166546c5392"
+ "7d9b419604e9b025757eaffac526d4fbebde5fba0841c6812dff2e9bab5054d4074a125f"
+ "fa04413639ad72d6eba870e1760c71966544f3f881f88880fdef1edeff47cf6c235e8dfe"
+ "f1eb1d8df51f9c48b985912f1f70b61fd3d4b859e052887560872fe6e95db0f435778d5c"
+ "4c",
+ "0cccd1bf3424d8bb0513fda3db93e81bd34175d84aefafd26b37eda9e767618247bdc94e"
+ "d2b1882bcae4c83eafc30a7a4a80806fda10a5e70b8827287eed8eac2721939a63c2175",
+ "05b1460e856548287683dfbb93efc869e80333a9ddcf292e2fa3b3c8d430563a01340685"
+ "c6db1059aaa8b298c8db9e8281f36e3a9664faa17f413cb439ef24cbdc1a4d58872ff6b",
+ "0c6faac191c95738f7c6ad0eceb035e5d22ae85e4bd0e27f2e65ab293717c0491be3d1b5"
+ "ace80f4cb4bac7e33258706010c2aa48d84c9e39c95e30805fa7669c42bad84386f7754"},
+ {NID_sect571k1, NID_sha384,
+ "a8fa01136a0a78313a5d160c32fe5d1805eeb3730c18ca0c47818e82c48eb4c9e5b2dfe3"
+ "ee5facef9ec59b68f4e6f3213f77fba9f8ba06dcde546ae348d343233883894f4423331b"
+ "536f62373a495852977a51cb192cfbec04b5582b4ece69f345979e234de32da7a120138a"
+ "057a7119735c4cb19099bf48bb202e7ffac04def",
+ "0c4989bf33b3136bcb4ba67906eaff2bcbc6567635aa4b057acb7353ee87ba3cb4cb9838"
+ "f8f679729d5c6ed98e6c4199cf58605f009c6873a1b8321f83cd3c0973b7a3cfd9dbaa5",
+ "0403871c7781f2b4f653f0d49a224576bd1e5363d5171bd21da89f590f49fc212d8a57ac"
+ "8a140d923c2949ca287bea803afd763f15f909c099a07297e8ba1b37c70e1e8f0fd1fe9d"
+ "1c05806bd5b4858ba0814da2167d232d55bb5c41ea0a36fb28a0a151c1b79b22cb16613c"
+ "cd9dbf92174e42578ef88f4da6eb44918acf427fb7e4022da3376243e75410ba6ae012dd"
+ "fe",
+ "0a9eb767077886c48bc54503a0d2d62f0192d3581bd9ec253107092c22f68a15293d7c3e"
+ "7aff56282f0cd35e86a2b3c55c9eec079201d99b5f49946780ce6aa18b225c2dfd72cf8",
+ "03eec6ffb390ecb2af4f5ca17fa8a7fd6938667b319f0f61e5c7523efb77afccddddb511"
+ "4ca8c461b1c28dfe7eb85ab156e24e891cc6f9511d703e8b3c8443d04fd8de80f5d65f9",
+ "10cf3156cf71dafea6a0d6abbd503d72b13e6a684076ac900f390059cf3fc325966b3548"
+ "b58e14a82bf291d9689783b899db7d4baba524b0b63d31f9900a84fbabc2ccad95742f3"},
+ {NID_sect571k1, NID_sha384,
+ "ba2d83b21c783d6ef2f3b7b10e910a418a9b9f49ae0fd37990335b3a3d15627846c9a12a"
+ "1f31a3d0e062ad1bec5650606ed4dd06c30e50c1e8761a29f4ea1a20f74635d5dac22e5b"
+ "787ac10f4ee82b338a641484f91771c128c84d31cdab0a6b9616078c898665655ee9dd4a"
+ "e73d33b94bf091b064928b959623aa71ff73b4db",
+ "1a96f2ad56e31397e236cafc108087479c9823589a5fbc3dc7488d0e5d1199cf245d7f21"
+ "f524cc0e8b47feca14c93fb760e631434a91188b32965053942f3bd39b3714f9d6f1a11",
+ "0400195bfb66e20ae295cd22d59b27b3880a890fc44ef5c720b568bf7f72266293841dcf"
+ "0572063a96c62736d9d4a9cce31b10c03016305a409858a79070477d3e989481ec555c81"
+ "460491122a199176e2492e07fae4ddbf02d2a40a21bbd99b8f742b546db2018cac27fb4b"
+ "1c03cff55f61b7caf13b0f3b097ffc8e1549eacab89225e0cf1e96b268eab7f9a1a69258"
+ "f1",
+ "097e28225aee5bc9a970a150502dd14bee900d3b040b0da9cb52f5824e66af46a991bbf6"
+ "423fe1e089cba47593af555b07b45e47b0f4141b0412ddf6e91153213c5b8645ae7bab2",
+ "1439928b55917e93d59341532cd1f9d09de1f6e0d9a04514bd4b692603f2cfb75a579301"
+ "b39b8cd92fbfc8832839691c23e0ad3efd3b4c7c3e9a366c1554c6dd13c50dd087b3055",
+ "1fb432e72be6fc524a7106b21d03fa71852c18c67edcb8b265db3b144214e7e6d10caad9"
+ "1f81616e03ae7913fea1e8d11e90d54b17705e8d04c8c20f0f4f46f117cc423ca178ff5"},
+ {NID_sect571k1, NID_sha384,
+ "ea2d5f4e9797bfc2f33f0fccaf530db2bdf8abcec00f09a0338eefdba318221ec0e050ca"
+ "d1a85c3f76b784c6e8c18da2b062f333eeff18b7b781e67d6d0a4368b8231a892e0f4103"
+ "012348e5df53ac745e4d34e2cd1ee9369f97d4801ff485fc144b2007008036bbc07cb1c3"
+ "02a00054b54f3713919191e1d5052978c9c2895e",
+ "0c08ed8e0e0f8b0d0714b46a2164b933f8147692f18da97e5a108c44d5a5cf221cb50536"
+ "e41832b83bff4026c6df156386235cf5e3e9a67b7cf9b2fa7707c5e0ff33a91601b8e34",
+ "0402d516bdd1914c83aec1cb242710ed79efa61cbb31dcf8d238d8f5e089158b2ee2bab4"
+ "07e01996a1621b1a869a98227c12296cc2a71c1ef2d0f26bd6614f2ac77008048abeedaf"
+ "cf0151474bef5965c455eb95ca2ffe1d589107dc251d22635f4a9fc7270358b64e4d2b81"
+ "666b60c4a5c49902b0fa9963197b22f90a09cab97007842816f64fc49e351710db849800"
+ "32",
+ "01125bde6086753b3bcf29b7d5a4fb0a8abffa6503b4f0b39960eba226062bdade57e4d7"
+ "3e8c1621792626203e83fd5c231a53b0ce10890881460802788d481f233466060f73359",
+ "199a1e40229786b966592ae6e275874ace23d5605d0c3371a4f9eca7ce4858927958bc1c"
+ "2780e9f2f79767c1c72117c79c408f972006841cb621837ac002cc6510e0432d99a1f64",
+ "17f4e5e23e494ef149e4abce2d8a1ab10e3e6c2cc93998fc63baed6565ed350b220b2828"
+ "55e2824f398ae76b8679201b43450f62237f6fec643ea659e6c86abc24a63d82d9bf219"},
+ {NID_sect571k1, NID_sha384,
+ "b2293b0a09f41decd9d8e637b1b08c2efe612f33c9c0beebb6e05033c6103b958f8aacd1"
+ "25d7c810b4c287349f5f922d2c6ed554be597fb8b3ba0e5a8c385ed8ae70d5ae19685298"
+ "f20e8d844fb5ad98db12ba7e5f45baed9045c3e86b3cac9bd55b614b82fd075954fc59bf"
+ "c6124cbd68edae988596575f379d8921b594c75d",
+ "144090a0ee38cfa21fabcc24d35139a99656911ad4f6dbffb77dbe74e7993edfa9fd63d2"
+ "c4f6bbdbc8ec21ba13c9f4a3576b5d6e3abeab5af5ac81b1f2bb6d4c42dde645d854d9c",
+ "040208729b3c7abadfc221cfad8be642588d5d1c20989fea731cfccef25886905e4b1e61"
+ "cf9548d89c24f5706f5243dc8aa7d5b2675c2c6d2755ce6a12e5b12c28a2cd9c597b7dac"
+ "b303db73ee445ffc0f6c77467f3add3b1e97061117e221687f5589a030f5248bb959bc2e"
+ "d98c9fb66da8679dea3949b77652dcf83ab9c50a00f6a9c22bd8d16e093b2deca4b0c759"
+ "6a",
+ "0adcadb26626eb9f8db9ae98c6808840b65d6f886a3f0c45f0b993a8bc62bb5c08dcd879"
+ "40dfef4f220f5e50234fba3a55e7127fcbb967ff78ce4fd6938a9bb653747116541cb85",
+ "18f7fb6ee028c3dd754d6e7b687560fa269b5a5fabb1d98529e0a27dc66bdb1ed79b7b5c"
+ "64fb71e767d9497b9255f26b8150b9903caedb25f51594f5b7ec2870515f701bd68faf5",
+ "09ca9519388402d5d96dd9ef2d4ebfd0ebcfa58bf8c1970d04851b2409671c9d5e4aa833"
+ "555df374469a4d277aab93b8df8d553399908c930f81c2d9769f1b30a13f61c02b16852"},
+ {NID_sect571k1, NID_sha384,
+ "acce54270252e7d9e983c08c993cd6b7e3caf482a9149036afe4665bd3d0662a68180471"
+ "87872862d5718b8ac063477f693caf1a9baa8bdf2f36d411a796f2b46ab56f66bc949242"
+ "29f8264016d6769c85d9bbb7d6bb042fefdb8fde1be026b86af2017aacfe38c97309b468"
+ "9b23fff94f1de880064f1d3ad9d74dc804c41f41",
+ "1df26b672b2e3617b6b6c631d3c6be0cb49c0a690de49643e0f416215bcdaefc03fa9c70"
+ "8471f1d87476d58c8f147517ec8a14aa945ef001fa01984d5c3d81f7083ea500558fef4",
+ "040767ca8fe8f3a7addf01b230b99499b33c83db95db05e1956fb1891fed60406865291d"
+ "79b0daca0c307a3ec8b1bf2ac2cbab728c6ec65c013e01775ee21a29305e9403f72883a1"
+ "3800acfb786b09e5185dbd8abf831d12967107dc57a040d7c800d904b530eed1e19a8e52"
+ "e653fe8bb824cc424d7254532d0fee62e8ee7ce8e871cbf6e4ca3bc040444585b9a4e397"
+ "cc",
+ "13e5e47048122c8301258c638bc0f00f8f9646cba927335535f68f4f4f51f23ac5398ecc"
+ "21eb0bfe8fa6a2084e11fe67587bfa791cfbe2527797a4d98046f9df37662cb7e86a5a7",
+ "164b3500ad14063101b6c5ebabba53dc5acb4d6771d3b05a505e6a67727ca8ff73d996e1"
+ "329c0f6d8f738237ee0f0be415003e2db515ef93931e09bdd853b9497826929eac9e9a8",
+ "06b65511990c061a6d2a97fe2a5053c775ce2bc5471865abb7261d0436a04b79baf41a0a"
+ "852a57600cd4c6a114b3a8466f721a684aac2592640bc149980545daa271fa9b146f2fd"},
+ {NID_sect571k1, NID_sha384,
+ "e25274ded4840df0d71d3369007118f002b83e2d375c78f7e29ade067db15cce21842611"
+ "f3f015db2efec57da77cb9d16eb1e00a8c1444d48dfda569e29fca1ebf40a22fc646a9fd"
+ "44460f0e473bde487634bfbdac2c312f66a1c2982c6fe76c54ac72b6c8cc9345e47cb319"
+ "a974b3cc4bb40634df74b4ad7e18adfa9a71ddd5",
+ "189918b832e9fa30161fdd927bfc267f6405335df3d66d225e17173af52a671138883bcb"
+ "94c4403ca3e001fcf09ef4c6488934d6775af2b1da30a8f331579af2d0fbb530298d8f9",
+ "04053e6b43c0551f32b7b34467d188985600c5c0ed12448f2e763609f40039f92002bc8e"
+ "70d8dd3e337c3507fc996a1557d5f2fb3132507e49ce653482cdc86f6ca5903b77fa1619"
+ "d904a9ac78a2c23be0841b96cdb1d55862e4854b530f1fa3f469ba9f7185e3f91c28d03c"
+ "27d9666345bdbc7a44764595b303f49cc43bc2d0e944862913d280273cfd00e15b6b55f8"
+ "5b",
+ "0b47a185140b583c330c64a10d50748e019134bacf153cb4a23753f140a4d607d5771a8f"
+ "0f535f9c35baae5ab6c37a55f38acd12f15be18d5bd9662383b30e4d0ce487e8cb553e9",
+ "1a2ae62cc9560590177aa544945377ff6ab1b34e7e32a25140f99996c130e17001563664"
+ "7756a5e8522c936eb1389c206ac74c012941269165f3772373047521f69510c7f3e6acf",
+ "1d86f4a6ab2bba7f6305c2df754652bad40d7c273ba2aadfbbe65c07ede4ac0e65fc0a37"
+ "a0139a6ecab296f58c6c2532701bb008bd9e1ecac2771d9384aca094537fcab47f3ef06"},
+ {NID_sect571k1, NID_sha384,
+ "d8a4aed87c316012482819b03a1d91691f2ad11a2f46082497ea8f64880d686891f7da55"
+ "0b2ac17199c657d4eb9d04d5cb8eaa180f743b87d23b1c86103f9e9bb60f4e19f0ff9d16"
+ "0f180aed7735130c03adb62502e69be5c624ed7bda2301f30580ae0921b02e103a638f56"
+ "23c02c186e3bfe6ff134c762a2bcac1f879a9353",
+ "0bdcc175eca3a399b944eb0334ff33c4fd130999c8ac0e7b52ac5b774fbad53ccc3a3102"
+ "4f5262b2eecfeb2104b14bb244307effe3dbe8ed25686dbf46a42c4b6f8e34010ad826a",
+ "0407ab1a9279a8408828c2bd21ae6c643ad82633d636d36fd91498cfee49c8a635313f56"
+ "993d02cc46da3f5b78fd243516cd23c14a4c8d79cf27dfcb05f52f0cee59cad5646a9389"
+ "b80799beb1ada93a48819ab70b74c36d2dcc3c5cca1f7a57ec58e643924c3ceb7a90c9cd"
+ "9bf7ec762a2c428d16ef431a45cd5d069cd828601f903cb0a28182af2392b5ad12ac3a24"
+ "c6",
+ "04ad8d2759df82dd70ebe9f3402d3d533a1b4635dfd0024deeee52b32373550f550b9fd4"
+ "126aaa6c3a9b1f352c40c86e13f78e259abb17f85f0041e0cca9e2ae59f4ee3ba2fbc83",
+ "1cf9ce41dd5dbc3bee9f46f82e4bef10cefe79a87e8e00d002097045b9acd46364560e0f"
+ "d27b0be6655e73b5cff272c8764b4c80ce0e1c91a94b8d05209a28b553f589ee2fa1b11",
+ "149fe587b144c37df2c48c2b7749c509421cfebab734003e51383cfb773c3ef5a24fbac0"
+ "255cb807f5b95607121c5848d3f9656227b61d5a14042351de084d9b88745be242b6158"},
+ {NID_sect571k1, NID_sha384,
+ "acbaa5ffc4eee0850075c0e502a70cc7a897a919f5e7bca4e798385601a26f411fdae546"
+ "6ba9f6b6d8d7f819a749b799fbf4a3bda9105063e74914e8583ed8b31ea4d22164bee6f1"
+ "4bf53afca269b901c80cb3265be32ffd4ca4bc4ddb83e11eff82ead6d75dc4aec8e5c67f"
+ "35d58a8a156cd1c0351abdccc0c5396c8fbe6920",
+ "007ab5a55a1d8ecb7f5dca2afdf9ef465569a4b0374716f604ad42a6e0271e934b09655e"
+ "8e2529784b69b2894bb399b02aeeae30e9e7ae70a2a8e56b9e775bd978a04c728e3951e",
+ "0402df88e368c8162c1dcea5ceee3a4c52cfc8d6121eb81c31236ba26dfd1874c61586d2"
+ "daacd96cb5ebc7053be57641bf53bf2651cfacf370cf470db86e1470bf285c7166c197e0"
+ "94030067763f9fa6a9082ea16dcbf53c2b6f11c9ba1817198e5a4e189dd98141ab682ba4"
+ "de0b3f873ae54efc080a2a03f755efeba3c0ade8ea67228b1a5a11d730302f1eb7c6bc37"
+ "37",
+ "0d3dd75ec61e0f87737812fe1ac86ba336b1512bb9f7ceac2c7d1a5b4d5dbafca57a5209"
+ "028cef9468ebdacb2a35988531baa094a1c901d9650f2c5d8e03a1621fb33ea85e2b506",
+ "184a98dec91b9afe52d4dd6b2d9f2d7e3c42e8e614332080aafd2621136ac7965beb4e8f"
+ "97b222c1b2e5448b79534db4e710331a2f877f8fc2a9259129f0b24d24289495da22542",
+ "0fa384a04c4b0b0745abea373aabc09404a6037f302e234e7a2840ff39c2b86ae37c814e"
+ "8bf3f3f7cf743748f2b88d02d66a3adef2028de94013c07075fb73f00555aa900337149"},
+ {NID_sect571k1, NID_sha384,
+ "9a57b63a4f418404e8f5dcf3052b9bc04a4f6d2c33bde8651506d9cbc5542ffb9023292d"
+ "ea463111fb78913ccdcd182faabbff9164219b8900c7f9fb394f7d9678f77b18f8d58526"
+ "ec64d7c1328953b983a7c416583e05a069cd76aefe26e5f5687b70abfbf9f58f052dc086"
+ "3b4fc3bef805cc3bb05bf76a83235af9d6adfe66",
+ "1e7d4da72b1d82e17a066fe387f2a0a7fa4c60ab993ee09710531789186077f2f32b42dd"
+ "da497d5fb57356383e1f96973df043307f0b6519430c3f0d40d62954032872fceb7dce9",
+ "04037c59e95132f0027f661511d1bedc3018bffa62aad7f44d7370f5b169d683882fca3d"
+ "d0c4260fa8f72a47a44fb0fdcf0d7776ff0632378022bdd223753c66f98dc04904344ac7"
+ "4102d7f19468b8e4f32eeeaabd6e402a35f38dbb9f2476cf07881d8bcff170b0a6e1ff8c"
+ "b1bfdcaff734a32ae9bf34a909ae7fee689e3f1ae777812a45dd46ce13fe648016353c6b"
+ "b7",
+ "18ad70fb9c5673e5a39b3a1655ff76eb84519555a6cd88e86a26f9448a54f04516c2449b"
+ "ab3f75e74a8d15c69926ac43fe01ebbe7e1c97e73870e3cc4c0ca431cf614f35659e3eb",
+ "12abdbfb2eb08e326289fdf5615057d912749db4f17848c1ac73bf6a51fbe3e1b2732d4e"
+ "b656715a6c459c6c3065b67b577f21b8eaca7d657c3b3171e8a4849f55024c69487e50d",
+ "09609da5049092e0aa8ebcf10c204de54c968b09b9bfb3eff90b80bc675d557967b35f52"
+ "e459f37fd198a83a858e5d7f9f5aff8b2ef7272b236dba5857e88515ed471a60bf6da49"},
+ {NID_sect571k1, NID_sha512,
+ "97b79c76d9c637f51294369e0bb52c4189f2fd3bd0607f91834aa71b3555605a89ff68e8"
+ "4fb5bda603f502f620e14e8b0c7affefafa2f0b303009ee99653ae4550a05315e551dd12"
+ "a4d8328279b8150d030b03c5650ed4f8d3ba7c3a5361f472f436b200b321e7863c771e20"
+ "ddd7bdf739c51de3676f953a5501e4477aed1bd8",
+ "15b7271d4319db5743119c8103a7d4c6d57e9c62f3eb93762156d2ebd159980aa57cea94"
+ "8e416717d715a2e458851f1b2e9ad4172bbcc53861db29c3ee0ba8e82617a5866170847",
+ "04003a5b9559b2058299161770166766aa65e151ac6a22a90205afd27de5eb99c5b1db36"
+ "9ad52f09141d3bf08884b96414c283b2669ec2a2a60c960a2f03d425dc4c229c0bb369d9"
+ "0f0024f3a9cf3dd257043dceefe6617a98e222e1cc820f3e19e63c64fdcf7ce8d9c7af73"
+ "23c9aaaef4df02e498597581082fa3767c8a38f508f4ca2c1eed6f298dc8142668a00274"
+ "90",
+ "0c585e425ae4a34f9b7b9205f095ea07599716f1eab1a8bbd934219ad760c4606ebbeb06"
+ "cbfd3952e045a040b8ce20603aea4f965d1b6e87eac7a61672823fb2de7767e3466c730",
+ "129162cce6fb05e1fc8630ec6c3a16d108bcd251719d89631497177e6fe6d1373f114ad9"
+ "dde6e04a4ee0b4747f91c78703012e5a058c132d54f2ccccfc0f9326b27d60322b497e4",
+ "140163edb5f3c4b49228e4614bfc6da9f73674eab82678ad9947b2a635f733dbce99ce32"
+ "09f613e2a75e62ed84db4d7d13de6d789b7cfedc0cb6a028d8316db8831db66c91791c5"},
+ {NID_sect571k1, NID_sha512,
+ "564ad0e37c9c37a60872a4780a723d08d1159ddc77bd834d74c1025cdf3cbd5338c3fc07"
+ "a904fcad9b979b2a2ceb1a0139af35e5112305fd662a57af6312624b9bdd3a64849f95f5"
+ "9a46ca8feb2ed56f87f258518947474c1729275c4d89b7dd286ed65f286cbac76002cc63"
+ "b92a73ab6bd13c4adef282f32297e441bdd8fd36",
+ "07219ea7917d174a5386df985d0dca798ac9f8e215ab2f0003aee929a2dbd91e37fedead"
+ "0ed95b1e8aabcf516bdf54337b4aff7ace4c6b3179f2e919a49db50a41c9d4d58d4f636",
+ "0402fd7f6ea770e0a6f1eeb3318b6b609c0e76ffeaa34e75f56910e8f658b70940cd7a59"
+ "18328473b279f882816955b2e3702c22e0b3e03863f8d99c64f3a2c9d1c68f59a28eaf25"
+ "ad06c2cca84218aa019326cadae9639069dd27df4d1e95a4c8e7d7cb426e70e2d38650b3"
+ "82e325dc3835afa719145d16a29e4ff67de37ac8949641f0d140072f59718450a6699732"
+ "06",
+ "03413376b32f18385cced4549e231e514eadfe05fffa0b252732f5c88d13d9c6e0c35be3"
+ "dbf72029be5e4573b8f8829f6efbf58a12b5c161bb7055d1944eecc93f82c12c5c56d9e",
+ "1c45c25f3e8eef9b92142f12e4119842122ed7672fdd82c14b3c34ade3243a4c50495c06"
+ "b5984d0260376c4fa44c60b2e34b0084066d693943071bb663a44884927352668efcc62",
+ "08cdac0f4498173bf4e59de98ac9a26fc2c752cfea7a5b75141d4e1d019e25d70a717ac3"
+ "ebb82884436ebe1007b0488c4ff29fa31fdf02f77fd99535c99b69c9d4e5f432516da77"},
+ {NID_sect571k1, NID_sha512,
+ "072ed5b14754fddaf54e20da42432df49bef38f4a3b1841b2db457ff86c44880727aca94"
+ "5770adb41269df41fc17f6a687bcaffaa45a3e59070526ed53b8dc3b78cf9a80a85461ea"
+ "f4b477e44d5ec4c2bab9c05aa747a5a520b35fd09e8b44539d060ba1c3470267e0dda111"
+ "b15dbb587614a46e1e477127f963a16cf3a43ee5",
+ "0bc623152253da24bf8d752bd78aedf7d5f6a2f889453ccdec14e10753335ea8bea83fd1"
+ "81a1f3680ed50f2324fbeaadae160cc85831750e021f3e44121ea1b1efc29a7d0069479",
+ "040003f3a6cc6964ab2f6da95c0a2a7b75afe4f77faff16fa28aa67809afd9495cde1f5d"
+ "ce079ec4e15ec8c1a2095a12e8adc409fe8729d865f50ff31ee75d7d807afd2c15cb142b"
+ "e9076b15c1ce931ba06dd56dd8e4f544425fba4f37f951a188c8e7eb13a2850c93b8ce60"
+ "f10b3783647a2d053e2764a957656a184a385e95c2013685d4954a2b2aa20e4a15dbc43b"
+ "78",
+ "1e091f4febd694879f78e83842572280daa48db65c463e66d9a7ea57b82fda531f116800"
+ "530a03cef2cf7e5be5eeb6e420213ff757c27b8e8a94513e417f4acc62adc02a76a4fdd",
+ "0264c499f7daa6ccaaf191d3502e86458ef088c9bf2ad989851c221364b24a1a3f4404fb"
+ "d0eb44a41938ac6ab67002faba0bdde7f44ffe6bc10def8317c4e2807c3ca711cb6cd33",
+ "1b91c18fc55635c5e3cff70503e7a49572ba52b11bac193230c88d6eb65eff6b2d9a01f5"
+ "3ab0eb34f5e208538136811157f872a8255b4d249b6ffe021b0c0763cde4d7a7e72b0b3"},
+ {NID_sect571k1, NID_sha512,
+ "e660dbdf3e61af39b83b95d3f1970f66d616f03273f7dddb98f768452b21cd39604a31cf"
+ "80590d4a5e4b0d4917519e10fd325dd4ab7a52d70d154506329baefe0d5816f514ae1094"
+ "83122b4fa8fa1ebd7fdf1fc4e21e8d278a50c05d81c8f489596633d949c6c8fea96fe914"
+ "30c01522a5afbd5042be8aa47da04581b2bd21cc",
+ "0645947d981d258f2954558c31022a3b6ba5fa7b675312f794cb61bfff1d9ce87267e4a1"
+ "dacb7c8fc58624d31c85ebe22f80d26a620fed5df5bf38515e0903f0b69a606048197d8",
+ "0402d03e05c4b555943fd69a299249e7148e99633b286da69bbcda64e7b06ce9321d62be"
+ "ad7b8d095a68d9a3ab9e9cf1aeb1d8c4904a073c21806830451a79fe7a907b32df15ea45"
+ "67023cba4f6f1815cbe1934734a901206596c6f482011f6cb6d452329f9412d2ef456642"
+ "9e7d35f2d247eaa7849ee141bb16914b64920fffe6b7923cfb19759fed6e1f80d6c40a0a"
+ "e5",
+ "18955bb752f0af7d7aaccd0628dcf1f52d836fb91dc78b0fecf21ff5992d9c1f891f0eb3"
+ "c139803b88736ce10ba4733a523854c4ae9ac35421beff9b20e0c8daf90bece46737579",
+ "110a428aa96277c9a13d4529f58ecc57cd7209a7340b4a78694dd9ec800f36c9c306221f"
+ "a110e0b3fd65b9dcb67307b7d7678997a3143c04ba96d72be83a1cd6b01ef22acd0f82c",
+ "0b7ae2da5cd36006a92a5b2e6369afc2728a93edc845ccb1500e551be361f8658819f7d3"
+ "eb82ad41d7f2beea1a1cab6f103238a6025acbf03a2b08339841694022c17db8c6c6886"},
+ {NID_sect571k1, NID_sha512,
+ "8c9acbdc431565feae60e08bc7da113e12372ed373f1e1fdd581f98c8a7b0c79ac4aa42c"
+ "7ffbc963fb4970fe26c5b5dd314b7051fe971c1186ebcb5650f7f7011a924de893f06961"
+ "b8c75da7bff331847feead4abd2e8b9d6ecbedac18f4eac207b948e6e4215e4d5cb483e5"
+ "c66ce7ad788cb89604d3a3e051539094079e7bdb",
+ "14cf93ca69d94ee8fbea0c8da9d76aea092b73073d8f5385b65c6dd4d567fe86bc2cfb8e"
+ "8be890c3c6cd9abf7dc3a17eaecee3d7a9455887863e496c48dc3e47821bd3d825b6bed",
+ "0403dfd1fac02ac4bd3e3017a3d94f29575238937824f80ba0b2eec185ce8c641e9fc721"
+ "94323c779dde8c4fd6e748e09d66e82c82add75106a0e1739f2b977d40ecd3cb15a1eca4"
+ "2006a73dd31226adba7ed8d08476b5af10a806fe8de72251400a83f6c9f6edf5e0cd6bd1"
+ "fa8f3595c3ab32b4c4548729c455e4eaf83230e1335cf181cfea6b6bfa6cd4ad75ac3278"
+ "cf",
+ "176972d9402d5d6c9753532e5ea907f256a872c100f87bd390c4d610bc00c408a97bd55d"
+ "ff2de1ef2fa8b9716e33a5a39bb6ed2ab541848685040656ad0468b360f42c3742c1fd0",
+ "00be28427524a3b0979cd82fea407463647a77ac45c489744a9998b545a13516abb9213a"
+ "b0d89a2f5f872d927ad48dfa502de95524f94f34b174933f3faa7b554a1c2c3a688a0ed",
+ "1d49594454516c1876f23f2ba0b1fa4dd8bee028bed5524b7635a2df5b8459f4832b3db5"
+ "f6074cf07c169cbfd9099a85ec2f5c42043c5b851c81a71c87affba34b11eda67e0ab69"},
+ {NID_sect571k1, NID_sha512,
+ "53ef87d6ac7b9698f40b3ea9f3442e7b64207b140b7f66f73fb7d5f8f98452d30a4e493b"
+ "6c0e3268371e88e612b818d4d847f032ed4983817d020411a52d81fd2a17b58ebdec199d"
+ "817c2a8ba77042bbd747a6fd4bcc7e844ea829fd8461b389aa0b5957d92962b6d4e86385"
+ "a8fbca90b8fac40944607117e9a4ef6dccb8fc1e",
+ "033feeaaaa28f16bfaf5ea9c7319cf4561ba4fc55327a8477b6cd58ef6ccad3962ee1f3e"
+ "db243f3a04e7e49c8e23509fa2d63252adb186b8bc7e9255cd61fa9bc45242d42da3a68",
+ "0406fc62c39bdd41ef7083ae10dad59e38dad217c55864a55a6a80bffe2f5e7da977d79d"
+ "b9ed8c9ac22d6f096129a0c680ac93fd77da4ad96e292a19b48454f91c93a3132559fecf"
+ "07066f1f737ad3af3df674637aa5efbb844bbc441966bae73973481628e5c2c67cb74553"
+ "a7c8f2c5fc478edd8265bd6c99d6ce122a245e46fbfc21992b950f04cbda5eb220261316"
+ "c5",
+ "0a5b86b76f98310a25111cc3d1b0b70fd0c20208cd0bfd8007cb569a187c3a97edd8e716"
+ "aac938900c3ad8ed3a0d091a18555ab532b50f25184454d84af2beafadf754862b8ec74",
+ "0de2eade32f537727eeb82dce610b48106b277d15d8fbdb77cd312ab9983ab21bed05f05"
+ "186a5cb2b530ba72c8c68b768c26d942f9224c6e6b9e7827c48e129833cb679c70aeb29",
+ "15e4fb92190bbf8dcf7548057d1bd5e5ec54a6edf54f6b88f50e96ac87ed7a7b7c0fe1e1"
+ "174ba3e822fb7e7c083948296cdcdcfbdc4bde036a07f84d210001ded91c554ace71efe"},
+ {NID_sect571k1, NID_sha512,
+ "dca1b7a9a313ead11c2d54739d9017ae27f9d08b3544e418aee862bb57e427636cb6aedd"
+ "a28e10f12aa15d2355f4f8ef112a86fec5dc46e6acef693cb8fc37c3e4885f3be3d3ab31"
+ "ea4d73a0de904e95c7135a149f77b621d642f9bd8ba192d39cfc58b6f19a797c4f3b4f3a"
+ "87054298e3ce5eda0ff7f44f8134c9a108285dfa",
+ "05613dfb53149bf5fdc4e08ccc1c752b0b66ab43aef2d008ed40f3df40fcbb2938d2c41e"
+ "3ea2dd4428aeba9059a97efe5593119673866a19d27a2ee37dd357e22b6bc849e7e22cc",
+ "0407ef12ccf6b64c7ca64b5da45937281ec770ede572b9a8eb685f3614bc358ce550195e"
+ "74666af9bb54379c1fe1304b76430d1e51a9976bba02e5781154c9bc187a31201ad99cb4"
+ "8e043d4ca20f06b26d75be1454e96f0568bd740165a2bc6e5b8429d557a79666bb7b9cfa"
+ "597d392cc5b8ecd180c37f9fe2088d7908e59ff644ab05568d974ab42ec9e01676e1b241"
+ "69",
+ "10b4b67007af35942216e9aab1d6561bf7684f334a80c7d909a6154cfde8ef06a148af10"
+ "4d534d7dda59b5cec7949de4086ae669edcc4d68b88347d2445edd3037525c97564ce78",
+ "15bfb47a27c6970fbb3256410d5c2f6c04eb308569a966790636899fdb3122f9e3015455"
+ "c4b50a6bd8cf519afc22ea845794f51e6994214feacf48322af48590d02cc9812960917",
+ "090c61f6c64381845491dac81d5273d58c59d9cfeed214527a52c8f23b0146431692a25c"
+ "bfd77abba22d4bc61ef24093c593c827ef645853bc8deef7c3b07bae919152b90c17f4d"},
+ {NID_sect571k1, NID_sha512,
+ "aff61d62c8f5c31bbb7d0a64a6ac589e918bbf2f13e7ad13abb9ac26405e267249a7c992"
+ "2139bc28140833e10976b87e91cf28285274b2b48b63d24ac94c85c70fafa78f8ad05955"
+ "c0ce6c02b841ee196dab12306e3e3d6138371217e2b474f7e67a80bbb78a47e374ffe2c9"
+ "f86292e471c551da50d46e7b5c8331029f369767",
+ "11b92c8b72b86c51903387a65aa206988d443d1988253329ad3a89c902ff1ef8cf73b7f2"
+ "e4aaa352443bcb833712d94c3e637ec12cbe4c2d4606878576b17fae1512fc77785b737",
+ "04022440b63bb4557996b63faf19d9f391c5085cdc2cda3755622a6cedc676222ceb5a56"
+ "ec36e220e507973c0f07e4b2e2d565a69967804ad311f0658a9854b1eddfb5270f4a86b7"
+ "69050199c9e443555123f153249cf7256dc3e82c5d8cb611adca0cd4fbb0a9a90296bfa7"
+ "70c1b0c0b43e4363b0227273a9ec9f00ecf83afc605b0dd2e5e24f739dd0b4ef6bb11950"
+ "a0",
+ "0e5ebd85f5fd9a9a81067fdf51b1906023e68672d160ddcedeb35787688dcdc314359ff5"
+ "347907b685a718ce38a69be17de292eaef189fb9ee8c63271bd6818904cd246503dd227",
+ "051387b0d057985dce86cb962bbca7d9a047f70d96c20539ae7d6b7cb8bffff606f03b83"
+ "15f15a53049c6c1c227f86d395c2217d32aec32bbd406c790a6cd2706775ed8a0ba1ebe",
+ "0c7f3b7e4a8b65a58c1280110f6c2486cd2d2df7d48b49074e98accdfca4a72fa7d43bc2"
+ "5c6576279f4a70f22c98135ba79158bcc3452940963b556304da8e1ae88973d827bee32"},
+ {NID_sect571k1, NID_sha512,
+ "721017294f17ef351e41256b57a64a79f3636628c4bcbe676ac9a2d96076b913dc4b246c"
+ "9945183ec9bd2d251441b5101eac44e2fa1bef59dec03ccd7fa5accf3b7d094d68dcf78c"
+ "8de4e2f19f56bf0dcb3b66b9421ec3f8b353b9fd74feb2e9affe0bf9aa421b6f03eeba3f"
+ "fd58fba56b3ebd094880e50de01ee62a108a24cf",
+ "0c3c90d5ce4375a08b85575faa78ee6bbd9e5571ce5a90582042617b807339c282cdc3b0"
+ "03d82006264b1c08c20af4ad4549fbde53d262facb98d923d81b8eb6093374b6a1e84cb",
+ "0401d900b4f64c07cb959049f2bfa18012f9bc2dccec5a73e9a48a9d5d65499e31ec4a16"
+ "15c4c50177c032d388263eba1a90e07ea68f081e10272e88a41389bd2626961b646c76ed"
+ "8e05c094fedfb5b118accd64d5d46ca2ed92b3123a62042a556ffee9e3bf709092fff882"
+ "31a26917d368db51d1959ad3285c7faac16ca57677651b070aa0abad96f07d35c5fb8a0e"
+ "e0",
+ "14d4070307cd269cc1a3c048ec0847edbff46f64c1ba5b734d8a800e50a0a02af57cf247"
+ "50d292e2c247ef1b860a9d7b5069a32f5b0546fe9e019e04af62316eb79507281fbef6d",
+ "1cda7f743c47ae93a9fa533145feab4c46252afabe3d54990663b5891b4979c645ccaa05"
+ "c744420ed6fa235952f370f5aa187250d7b069aea1123f19f0f18da18fde98100ff6ff0",
+ "180b4163f2eba6e3769d8345dd8cb003ea120164442efa885eda5bacd75f8d705b7f1bae"
+ "2976f67cdfe984430e36f93455ee7528fa6febfe92e42a002da165c63dba8fc589e7851"},
+ {NID_sect571k1, NID_sha512,
+ "e2d1f33681759adb7954bb5248b0db3c3885fea0d4c1c0c226eb1e6d2d3ef1b9ac281a0f"
+ "1c2fe5175b67114b6a501e2426d1454bd5790dcbc4c232cf06b017de8a9bb39e6033f1ed"
+ "b5003e8de3b44cc3d6150c3c952afb442952483cc688908337b7c1a8b5c9da70937ccfa9"
+ "8b2b0098c530ff848010b8e8ee0a8d65283481a8",
+ "10f184c16228d9034271332178ed485d10b6aa76003efc160d63fea26fbbdf5552205ac7"
+ "df0d8c852a1210cf0ba512f20b798827b36ad56b12a826fa7dc1db45aed264ca6822659",
+ "0402637543ed8a11271bbbabb2cf72999f65df0104758c2fd6fbf3e1c5132ff1c1111fa5"
+ "504ee86bed8f219d5025f8ae07055a7849314d2d439408ea2b2ddc40320c57f5d41255d0"
+ "a6014e360137ae33ce6930b844d42bcda4050b25f349e9e19fc4fe82f5e4f73cf9bb5021"
+ "2ea875a5735faaa1d5494f1685d6c8177448dbf356b408ffc2ba0726c9befb9de9f0cebe"
+ "32",
+ "1146574a96394c82972eed1ab7ec98bd08f27653c565f0626fecb431ee4fc6f830554df3"
+ "5fa62b5f82eaad49524d3d4b0598cc7a2181ce9860e271812373d21be9536fc181c3f12",
+ "0dbf465de2c5242fb527f6e4a4188adb96a2030ed8417cd9431365173f569bfdd3e420f8"
+ "6947da10a703370d7f38dc43e2249a2476690829545992645c9c83d82af8adae893780d",
+ "1499782e0163f80de68e3a580ed08fdec8d6552ec69f186a74be89480be28a0df6acdf7c"
+ "65a72f115f8a59fbc28bb94af64cb3bb3cab20bd25265237a010370d9a5c781c1e26f3c"},
+ {NID_sect571k1, NID_sha512,
+ "414fc5d2bd56b30040e105cb891788792da595583b11b8fcc7320f40dbf64d9263532dc5"
+ "7344dd17573c95eedf851668b5d552e8796af205f3a0043af1a829fabc2e93d9af9091fd"
+ "d9e0fcbcc9d6d9ec960aa60e4e2964c29a2f375400366480e513f63d124db7745847310e"
+ "69a38c8455e4e602056a6a4a14a8694155e0a9bf",
+ "181baf9d497159f837cba58a11ca435c442e5ca792ea559bff9f6a1f562c05bf6bb5914a"
+ "fbd1bcaea75b35f88bdd832314b249a5298622c89462344d3f28a44ba3d059df432fc71",
+ "0406f3915f884e250034db97327470197d13f0716d1d810e43055757460dc252f5281717"
+ "b3ef3fdd51085e65a0e073e78b697a21bc33137213981fc05d9b34caf7dca7a4f99be785"
+ "96047a96ab5ebec6201b7c65ce7a6e70effeaeea1c095a0172e9e2c7bfc88f7b05ea5750"
+ "76caeab189f810258373cff2484f4fb9c8167989f61aa61ae27113b5140c95f7faa505d2"
+ "d0",
+ "10e9e6047651362accc816389b26ea6befb0e34fe7363126f8c4ff9333266f46d63c4d45"
+ "075480da9ebdd0f8da7224b470d914ea1d68cd821f563b574bdeffdd0b3ed73ecb9133a",
+ "00e36644cf0861f45b333092d44fdd99f56e89bf3607f75a06920dfab0ccb1831208296a"
+ "a2431bdb75c5d50f15bbea2e13d185db6d7175c221858fd2b22afbeca7431c290b15d3f",
+ "023ee3b9ce817eb0a6733c85062cc3bc5f1ae62bdf3a74e3ec704baab05784dbb5ed01a6"
+ "a2a73c80a3e754c013ba886108d9eed2bc210f29a4774bfe5508ecd876ab47a8527c530"},
+ {NID_sect571k1, NID_sha512,
+ "3b592cc8972a4782870e079b82a50f84b4c2d8ca90bd500d1ce5678982e266c391c556d8"
+ "162ac3aab967154d072dbc0ba1dab5545cf2651753dee2881eca5abd412fe624bf3f9d17"
+ "d33692d21ce23ad15ccffdfd250cb1949e73c9e40a64ebebb03852e92692dad1d7baef97"
+ "fe109f35b7a492b343d4b643a4a7b1723eaecb64",
+ "083fae86ab96bce99a53e50b7eecff38e4e25b21c4b0f6a4986915de245eae24f16b6a00"
+ "a4db159ebc27f5a6a072da94ab6be5bf75f5eb3f75c4452bf4ea7014392eb1e02706fb4",
+ "04078003779e0287bee54df31f64c58951df7999b48b647a6bac416f844485a4cd7a53a6"
+ "4170f9d2d31fdef0194a0c262b90e5bd33a1782d2ad56c210cf80abb5fb118cffd71ad79"
+ "c1073f89ebdf0e255205a7525cc12b7e1c58303ac3b3417183179c216ab8e47f33d0af32"
+ "38e3ae64d418ee89ef3a2cb4bc67a1d2fb1923947b9dbf3f4fa39ff82327d0ce3db24d23"
+ "24",
+ "13d126fc4033f537b00a81372031026f6a7a2062863a68e36c6909c548833d1a8f5fb5fe"
+ "25c7d9f2c65b1dfa974630204f71e96d657095b93cb54b00cb88f32adc08eeff4036654",
+ "09be9f4bcd7b8ef111337fb665379509b8b17a2212a80d5fecc685f1f362c45f930acaef"
+ "9df47c33c6028cf7aae424264575b4635a11edd6b005ad26cf2021051501fdd1b77d2dd",
+ "0dd196343ef76bec527c5929e02fbd5d02d5b0a4b5f2c8561978e600856de56d42943f1d"
+ "74cb81b67010bae98de0efddfcddea5d354c60c1fa76138801f6cdc5bc932c136309b6c"},
+ {NID_sect571k1, NID_sha512,
+ "0079a02cbab3dc02601fcb5c8607d555beef7cd71a66911ab6514a4ae21c5a9c0e166f8c"
+ "f5fb198ec5a49a96e17cf041f35f00406b79270ebfe56dc6b8417d2529fd625686ffbc8f"
+ "69685aefa2fd30a937c02f25b48be4679e6fde821de928b33b12470867def874bb8c7c80"
+ "38ab6594346a2c44b39210d3610994ba60a05e06",
+ "1a663efa7bf4d8479bc535fad71e9b5e4f4281aec55967baa008ba17ac2f89cc3398d305"
+ "73edef29d590fddce8cb157f655e92779f59e7a18d0327d02e7daf4c1216143b3688fed",
+ "0406b4bb31856dc516be60a0d2d9f42508738edd4f925eca9c72a13cf136720867babb38"
+ "622fe97df70a1edb35735365f34c74baef9aca539aa1dfdead3324f41a16ca69bdf86b43"
+ "f706c4a91d3fac9e7647a6aec6e4369158bdcca2275866bcdc5a09b2f0f1eba10551da96"
+ "13eeb1e8d3233316b62a5f4641d6aaf669b975dfc511f2437d43c9eebe53c5115fb4741b"
+ "80",
+ "0a843d0cf776878fa9ceb163d7aaebd29ba3aea0808c3459036b258b99ccae4e2444bc32"
+ "11b5898c0769b7d7e036c07803497e13803132b3c6301412af3be8eb4a853e939a247a7",
+ "00356e282c096fe1690fdac4c0c66eda155ec42356dfc4783cff0160e1d76b33a99442d4"
+ "ee0e3f6e1c5bde4a16c8e18bd18f98a178c3fa4a560d8fb8b4b1d72663576f8baf8672f",
+ "0c5018c1383fc3847819726e1e940028892e1abd164b413293fe50f219f2059105218e4e"
+ "3b952b912a3258c4ae52dcc03ac5f027fdfa448a8d58e3aa5c21e790b3b47bdfbf21175"},
+ {NID_sect571k1, NID_sha512,
+ "88573bd94ef50459814806efa868ebf92b066fbc2f7a4be9d2fa06b9dc1a72f72d783a6b"
+ "cbc107b18a6314511bff217037a2252e7a5cd34cf9d5b2fe9c7846931f0133b2e95876cb"
+ "800dc4ed7c4a4e4cc4f1195acf99fb0ec224b1f8fa8af71f72d390eca9d6be3879032a31"
+ "8734a63fec336c79035a43f70271def10c4955d3",
+ "0088d1a2c0219696a94337cd56516252b74139ea0733b17fdcbf7692c3e5f6c3989e5da2"
+ "aaed7468e65a5d578571928ca273ec3b6aa72cd196f560f05095cdc8346e5d31c4c2e0c",
+ "040357801cec0888461ffde22d83afa9ca008ac88518f4b09074d29a846f5900e024a8e5"
+ "947bc25ed0e5c980a58fd5e9aadfbfab31db8bec575fe886deda80134d91b3de96254653"
+ "020710806c7ed33f6879374c59ea144326f5948980c8013144345c5070122c0ddb7e18e9"
+ "f752eadf2a9b0854dfb7d9b2f0d80ff0ba46197ce6017885939e9f59b642a8fa41639ea7"
+ "5e",
+ "16940f69013026bafb6f400c037272176b04e35e9f1563d382dc9982968a186e3e152577"
+ "5d27150b34b8ce5e70b537f0149ce1a521d056b52e75da7e39ee8a529ed987c70b8234d",
+ "199058e36449ee1a3388d7357c9c1020b2e4c02144aea14b041bc584a752c94fb6e47495"
+ "9b24bd2c0c104f5ecfe223ebdede672298c29195033aaad5db1852ce4dc3185ba2409a6",
+ "11f3defd9b442378c461e2c68b239d2e4afaed691238c5ac4e0be46ebd461639a60176f9"
+ "884133900f988e2d730d34df5e2bd8a14681014c0a213f8d233b3c50ae3064fc38d1a19"},
+ {NID_sect571k1, NID_sha512,
+ "d0e02045ece6e338cc8ab41d4a064c982ccb1748c48fc2fe0a6f10bdc876094358a6a90a"
+ "45facec798a83cc95c6795cf0f0d7c66b77e22cb114c1432bfdaa1485ff35b6a58107cac"
+ "3b7e58cb4f6c87c68db60b751e78f1fdfa54b8923b98caad0a4f31226956d065c083ace5"
+ "f1e9e91944dcca51879d782e40358d58ca758750",
+ "16cc8a0fd59455ed8d4de561fd518df2e008f7dfaa5f7f29ac2489a411e233917b43eb3e"
+ "be2596fc824be58871949545e667dbcf240dfb5e0c615ade0179d9ea2a1b1ebb8ab9384",
+ "0402477e678793593e2abe837961895c7ecef71af1feb882ff27cfbabfa0ba3ed771b792"
+ "23e7b2d2388efd371d5c325854cd60e48484f818e1a8146fbb780cd6ce06ba63c0db67df"
+ "8a001b696114838bb972ec6d536abd809d3a436650191c43b2bfeefab2b400d5921a7eb7"
+ "8e307266acc190e05f3869017f0a66f886bd6556c58aafb1042478cc768a4f86758e9f4c"
+ "32",
+ "1e1b851bb95d2913d6d35b756d49fba6f4c127dbed80fe4068260cab89c1d42f7a6843f7"
+ "31e83b379ccd8a4915d2e29550f3f6ccde607cd0b066dd5fa41ac2bf37bdcfc26cd4d04",
+ "10d4291346685fe070b267edad91154df83664dc115f058ea036c712929634d53662586b"
+ "b50cb6473c2170db5d4ee43be0c50532015937202e193d15d5189870691ba65aead7f3e",
+ "0b2a15f1ef00204bcfb5108d8f1da96ac3297aa041074b68989ff5b6b276380de7887753"
+ "fe3d416ba691ba0b2ad7fc065ace02815b2323fe17f6445b0fa66dba5d99d8e7d557cd5"},
+ {NID_sect233r1, NID_sha224,
+ "f1b67fde01e60e4bb7904d906e9436a330c5cb5721fd4e0a3c75b83dade868736bb1d21c"
+ "fb1b5c6407c373e386ee68ec2239b700e763728eb675a153b8ac44cf2a87be85fe8ed668"
+ "3430cf4b7d718891cbf8d583d0a37cc952cc25fe803a7aa4fda80f05541a2f1f2601cdd0"
+ "c095f7110f2a84f7d641b8531572269b21cbe77b",
+ "056673197bfeea9bd7a8b820b4ae51a50411bf118a692bb9ed3d304da53",
+ "04003489be62e53910c20cb508de019c3e326f65051f26749944b4454f156a00f775ac38"
+ "baf19499675725e8190aeea16f52346b1c890d9583b38c7521",
+ "0a6c9914a55ef763913273b062475fd0188eb2d5af9c8c1dd97cb3cefc3",
+ "08601a42d7f7eb047e8ed9820ddce665c7277f8ef38c880b57109b7160d",
+ "026d6f50f0508953657df5d753c595ffb8e1c19f8d092f8ce8db54f76d0"},
+ {NID_sect233r1, NID_sha224,
+ "1d496d96b533c632ed6a91f6e3653cdffaa5b8cc0008b35e49b2dd52fe261105c2ec7ee7"
+ "1a4ad5d51fdc3d36d688a3b7ccb3b3b0c3a65be17b8d8aa172e3005cfbf37a2d1b1a6e26"
+ "8c090c6f318e7e96f9ec9b9f5a8fbcc7558d89e840f7e76e44bed91c26ca48e6f5cbc253"
+ "ca2fe8cb81c484cabd24070e488f9c00cd96ad4f",
+ "0468f01d483144e514ec257f2e5fdee28a927f2adb19714c1f3524dd0d3",
+ "04016b3cad89cc42b80bb730431963526e26ae3b415b421575dfb6ed973e1701acaf7de0"
+ "6e20262efae01fc80969cdc1a281f68e8c8bc0d2d4fbba3a3d",
+ "04d261304678301985f5bb3f6ae465f11c9fe0e5031b31f194969252703",
+ "0878a87b2867c03f55726ea2a6db822788f4aa4e9ef609997940ee8c8b6",
+ "03545153f0554a8f55301d4b948043de3057cace62c8032c8ef8a11dbf8"},
+ {NID_sect233r1, NID_sha224,
+ "723400655027f474446843645757f7e2cd466bf97275067b4bc4c9d79bb3b19b2421835d"
+ "69db916f24b77c381fa771fc1e7a19d2b4d09411ae55acccc615b16fd24705762b441ab6"
+ "7083a921fd4ae569ce0de69449aa96f5b977ac7dc022fdc8335656853796f54b3fbd1185"
+ "77f98920624eb0a00204f1ef83827245c06646cc",
+ "074052d027f05465a8083a59cdbf32600224e1f563f653b34314651517f",
+ "04006999290db440eb5b3291bd4bb4a1af6386654fc4d275ef136c0e03dbca01fed0b1f9"
+ "284e488c7fa2a010766c340bc25dc132c7679c2598e423c3c6",
+ "06e38460379ac3fb13f64d4de654d4fa30bd8178da0bfc29fab2a1e2e39",
+ "01b18bafe55e5c24fa2df4c09112b44d24e78dd09557349ceb1b916d280",
+ "0ad7cfa003267a6b7a99894f75720cedc9cbf820d355a6b840709f42f62"},
+ {NID_sect233r1, NID_sha224,
+ "155860cb31a142082bcc0bad828d747e916392d21f1873b3a3c1d28ca3ff9d45ddb66a71"
+ "2e3856b6afd07c8d2b2a7badab296a9775b03f6fec0befa2d8d6d00fe3938df244ab46e8"
+ "36a3e686c8b4f918da49f0bb3940bba34a9aa22c7caf02df7758b0de01d9f47af6146344"
+ "b9be3842d9c055eaf0fb399cd8db95c544a62d8a",
+ "01856e7544223f55f80de72a6ef3822fa8fbd68eb397d06e2d76ddd35e0",
+ "0401a117e52f09080625f85fbaad8ebe0d3ad410f034242bf48365e88ff7350008b8bb79"
+ "58d191265901a3f15b2919142505efeea13df6e42da8b0dc1d",
+ "0aa106ad1461353865706bee9aa092b00fcf1b0108ecc1266ad5d8b6579",
+ "0bd6fcf49029df32fe0fa47f39cb9428d95d00a84a5afb392d7b4b365e0",
+ "0b17734befefebf03d1c79e59c12ed3c57e7d120dfd993bf276de559588"},
+ {NID_sect233r1, NID_sha224,
+ "cbd6e305cc9f0dc90caee6e65a74582e9357bd25c78e33a7b14e1ac7e9397ff4466f192f"
+ "b432143e6df6d61a0ab808ec0a361a6d95a357a38cd3e241fe03ed883ccc364b248ee2a0"
+ "8702110745c2688bdcefa33c1a45b9c8b200e45cddf3e3f66b8d37eff07fbb3366ea1558"
+ "ef304085613c56707095724b3e134c7a7d3f8dbf",
+ "0860aa2b589f2defc617be73e191502e5d9952bf60547fef19eeccbca26",
+ "04006abc5619422b7d548c612e54df0385c293632d4d97c21e2e15ad98d0c5006c36c072"
+ "603681c1b03f6a023c8e987f39d931bc2a200eff82239ee38f",
+ "084fb252dae9a96a44212d18e15cc52d179cd5e3392ab9da57d04cd5a9d",
+ "037cd554e7815699f033ca9187ddb116777ef847b92353f613152c4216b",
+ "05f806dd062043420dd056998bdb9822b3177406a536d766c4aacdeee81"},
+ {NID_sect233r1, NID_sha224,
+ "812a218ff1ee1472c189f63386e5b8ab341671c3a4dad27a8c6249d1c0f9a29338b471b6"
+ "179f17a078b6504e804ac55ca3b13e68a623041bc1a092ea2adf3fa1124bbfeb161e6d7c"
+ "483433f1548763b84da00352a6386e1339f674d45dab13898147ede468e0e01d2c4e0ed6"
+ "6b395a16cc3ded3e952ac739205f35a83376cbce",
+ "0d0dec052a00ccebd0c0c5d9a08272f75744a2582cec7ddd924a2b022b2",
+ "04016bb8c3d319b93731f1055756e57bd56d50b6b9ffbe42735925cf6f7675009dad7b87"
+ "a749df130b45d9cac8011101c15abb7e64bd4fbdd94107fa31",
+ "04098547601430c723ebcb04b23e0f1ce8b1f79ff7ed3d05ba130922b01",
+ "070ea6221c0d62930b019faaa856ad2c84c3989ec54040bffc42d8dadb8",
+ "0aa20fc58beae8ccc880e7fcb48a471faa5baeb36bbe5aee71ed9f8adb9"},
+ {NID_sect233r1, NID_sha224,
+ "0204b1fca831919e89e108cf140b3770f531a696b1d9a4d1fb68809eb10afccc257cc90c"
+ "d36717c02b2f3d6d3d1d8a93cc5c48aa7ab9f9fddfe121ce9143376535a0c65e247c6558"
+ "eac49fd1d6d1bf431ba918c471cb3d536ad485ec51f6471a340ac75f160c4c54cd3ffb9d"
+ "cc123124b42df1fd2eaa005e3377c5d2d55938c6",
+ "08a017d717d6d1213f2b74c53281b07258738c0c7db649ea1ac46b9a3b6",
+ "0401eb379e27de6c04c5320cbc18e79ed9e8993710ac70ce823f1ab5762b6700f5521926"
+ "45d350361762aae79ffba39c33c2c5c0df208219f1b339016a",
+ "00e4822b2cffa327a8396301b21554da6fa52f418d67114bd58e850d935",
+ "0d64dbdadb4ada2d3a8892049f7fda3c733030522b44cd72ab850b77bd0",
+ "06fbae2d8e4fc04abd8a6e9cb011974ac851ec108e38f9c72603f7a04fc"},
+ {NID_sect233r1, NID_sha224,
+ "2033eb48756638cb56e2cc39a3e775cfa11fce86cf71f04487dcdbc7f262bc8350a30ced"
+ "54d1fcb697b28a6e96f88f782947c997872307ed963e1d68985f756435af77f57755cacb"
+ "b4c6b50ed419deec9f39f0a549a13e54254fa0a5832dba2d943ad4aed8688889a2dd29dc"
+ "b4ea12abd6a6c50eabcb3981c3a0c1ca5f0b9629",
+ "01b56c14442b084cfd22aeef0f8028ec57c8b571c9fc1e43de05c45e47f",
+ "0400d450c533b13b211b8c91dad0738402a5c811460426ee2f35ae068f2c12015e1c9f9d"
+ "398925c619f8aa0bac746eb7907d3d510814cea185a7efe771",
+ "0dca09773730a2758b7f4d9257a8e6bd942c141e46bde5ca54a79468c4f",
+ "0379773ebb7a2860f3422d8f8f714b234e5abd8860defb19c659c9c6179",
+ "0cb9272a27661604425ab84632f586048483b9f9cb80b9697898e745117"},
+ {NID_sect233r1, NID_sha224,
+ "2986ab1cfe8873009e932dc68d4727d77ccbbf378e43fe4aa7c54416346b036b89c0aad1"
+ "b82977c9fbc39a00f1dc916c0561d8dd70298c02b6cbfe572e0ef2058641e841c6875e85"
+ "15f3c1082765e046c90c956d984b76e0e8e6eb433ce26c1757ac5b13422479141971c201"
+ "02e9621d18f51096ae3173c2753facee2862d66e",
+ "05afce37c5594586ac46a34ae291f591eacb9880a7de92701977f447fbf",
+ "04002a069ef14f2989d2b715c5006642ba966cc84df88bbc27e713e15c47bd00f001f60b"
+ "8a8102a971faa2c42d3ea9cec37b49c7e6ec0cae9f7fb35713",
+ "09756db630ed9b708bf1ab8aae6a7559bc235c4e9f4002ed26e2f019aa1",
+ "06b9b2c1d214373647d9a2d24ba69741218064004614368915d5cfaacaf",
+ "090dd607329c27483fe43b7be137c3f51c23217c939baae40b53e65af2f"},
+ {NID_sect233r1, NID_sha224,
+ "aabf5aa90ceef91c2155f90660adbcb0eedb996f5242cee15468ae217058ebeaad8cd4ff"
+ "8cdc754a8ab85ba43c59fbab6386686fad5e27ad3848fe52191c7e4b203720841501792a"
+ "625aef2acb6e36493b792fa55f253effca682946ad8c77e01f44e92ec3c258d0dd98d318"
+ "3f4dc4a0bd3eca183794abd6232a6f9e4add8f57",
+ "00696df05dc7a54a9908a73eb18416a155cc8df4ab26032539d86eae537",
+ "04008f9f494ddf8d0030746a8c0b8d215dda6cc2724f411a7ea407629294c301ea2e9f85"
+ "f06412d29c677aecf624a83c2fbd86482dc0d564906a91d97d",
+ "0d62b06628d3884f0a329a7b6b4f832fabea4ebc85ee03e63f2967e7810",
+ "02e39824f272d4b74810594810957963c777207217e53a672010605b9de",
+ "0e64bc44af64b6f879f0d32f814acfbb98795ef7b2f246b3f91cacb55cc"},
+ {NID_sect233r1, NID_sha224,
+ "29ff209eabbde02b10b3fd559671fa53e418750c32c4a18d31cc0186d1077581bbefb877"
+ "0ed079f536e866414a07431ae6633955bf42a2389b6f8a565d6e4ffb4444336e00300938"
+ "76a26d4e3106e9ac697788e41f8a21c755eeb86a7c60f18e5e1069f16408a4c375a6a68d"
+ "42959f2fab7ac09736c7b37c80c05897d8566ce8",
+ "05ca31e88c5b2e96e433af2023a66095161710628e7bfa428944d6676b8",
+ "04008232d4bbe25536ea7f83c145a8d2b1cd72c383eefc2adaa1ce72c7dd9a0100b738c6"
+ "f1551b3240293ee8e8ec29fad0cc485ffc2cfded96b68162bb",
+ "0df9e1b418ca1d41d749ee998446ba1cc54bc8bf72eac6f30929b40b5c9",
+ "0d4248e0bb60fe46abf7bdb2effe804b9d394d8a5514a5791e149d435d3",
+ "0b89a459fb99cccebda754c4b2ae264c9aef7b5b610427f42c35dbe7d3a"},
+ {NID_sect233r1, NID_sha224,
+ "97765d876c80819f4004a36d09ccba78e600efc71eb7e869d3a00f658d2ace6769c7ab1e"
+ "f590f41fb070aa8e08615e138df45ffbb6473d4a86ba5fdf17dd6dc9ea9ee19c0332563c"
+ "99e6a3451c211d286d69102b47bfa6e07d468d9bde82e5c2063fb1ebbbed6086f542cf68"
+ "ba46d4f214634afb1146dd5a6f3d50912ef5b824",
+ "0ef8fe84727a2ad8bf4e646ef28a492adfaf785a3a2ba6e6f985c649a8c",
+ "04003435eb25ce9891a78c120098992c666940103eefd80d9bd64f1d4ba37b00ddd6a4a0"
+ "1e443c92afbc247f634b85f1c858a2aaad35a26f57ad4c9126",
+ "09753a236759eb32e13f19b9d2ad06f7b4db4ac7b1df96813463d0cd557",
+ "08408fc46149dcce0753d7cae0f50c8c5fcc97acf7a1a02a9f68c0b80c7",
+ "0b5ffba104acc6d0cba87523382ff928859718122c4d0d2298e74985d89"},
+ {NID_sect233r1, NID_sha224,
+ "21cf768d087d1e4eaa8a05e2008020e243116206d675c09be42ef2bc93617ecbb0575c87"
+ "3c6510ede9979215531b62126552738862fc4323d487992754e39d8f0d7e111e165ff254"
+ "200e05082f59a57ef649bccaef6f980094fad3b7ef93bceb161760e200f0a2e396fbb6b6"
+ "142dc84d872311bf932b84616b22231747937d58",
+ "03edb94b8c62f9af30c14a790c0f5d65e362a21cd8569b9725916d534c0",
+ "040065133691b888cd2513964b5a905ed9334cff6367e25c09db1743045d5801408e1ac7"
+ "21bfe2198086c1834d484b6e5692c037e09928cff87f4b5a88",
+ "01d8f800ba05d8173b0f1bb3aac0aff68c6b24cf98c28f5a69b0b5a52cf",
+ "097c07d4352e39e1878c42fe97ebd4c3ba5098706879fad9be4bb2dc2f7",
+ "0bc669db3a488e613665cd26da7927c6b6a073ba6b0951c00d22ab1ffd1"},
+ {NID_sect233r1, NID_sha224,
+ "7b8e58eecdab3e40212bba6bf284f9379265b3d2baec3e4625aa08d0ced851da193c292e"
+ "c793dab42732c07b4e94d8b19c83aed796a7e3a6c2b954a7a9a1ff9b2bd4ca62592c8b68"
+ "f709f1ad38a5c8033ebb3f33d176945bfc68e9ef2b0cee2d45a13ce89d238a33c09ce2c0"
+ "c63c4233aba5717b85c4c161dd7648a41a5e39d8",
+ "00a7519be62562318da1b67d22cf8e720353d22641e0cee11c7a352bb93",
+ "04013b63dd8ca9044a3e518a67999a781a5b62994b6e20454003a9bdb8715c01a2f9bfaf"
+ "528b7f5bc8c3b02eccb71666c83e4a598b4077de999d90fe27",
+ "0992ba1a8331bc4d88be7dee06f96098bc2ea56668f345e187f32f38171",
+ "0c55b45bc7bc3092ffa82234b06ad45525b45f8904011f1bd6cd356f0cc",
+ "0e6163e70ab56d43fa27211b98b48f1cade127237bec1c6556020d39990"},
+ {NID_sect233r1, NID_sha224,
+ "f8f268d2b04fe47e5052c8d0d653787384b9654f0bd2138a6f52b80713feeed452b976a9"
+ "0eea4edcfbb62d04f3eafe172ddebd7cdc3701ecd6008e3d82e8eb217b13b5228839f610"
+ "75159f3bd1e1409c08903874b6dfee2789dd72c208ae769ec8c7d52552a2b1fd73dad24d"
+ "e8b571f88e2184d0ee7d063a121187f97e746f2f",
+ "0264022fd7dc2328a6436b522793ad9406d7a586667a0daaf1bce927338",
+ "04012d7e7f8519a7e357510adfca2f50182dc5fa12fb2a77409fb781ed500d00ceaa9a22"
+ "b7ef9febd8a9962ce21d83fd2a2a938b9d7a78d669dd233974",
+ "026fb8fa6e746106500dd29ee32bbd03b94302ec3a123356b23b3055e51",
+ "0f416418f7aa4d437e7606afedf961b968a67d9a1524d60fe3f6df4d3d0",
+ "08d3afc975a8147fa8230fef4b16e3024180a9768702038f955357ce8df"},
+ {NID_sect233r1, NID_sha256,
+ "d288768cbd066fad4bb2500b5683fa9e4eaedfb3dbb519b083f6b802efda0a022355565c"
+ "5fc6babeccb22f3adbbda450ce5d633193d1431e40c0fe631a295cf85965cd3f5937b318"
+ "66bd6a5300eaef9941daf54d49832acfceed90e572ef34ccc94eacd0fd6b903fee3c572b"
+ "963d21e2881656a214d2a4c125778dbe3bbeebca",
+ "0da43214e2efb7892cc1ccde6723946d2a8248a6b4d6c8872fad525ec3b",
+ "0400db09738bf0a0dd777f67e82be50dc8c2d8e91598bc0b8d4486f67c04a5008ef463e2"
+ "f37ac7c3d276676cbedf17ae11e767ec577da7ccd90cde3b74",
+ "0249cbd55e307a0fd10a0c70b1c0d5e2416f4d7f144779ddc11911f4a08",
+ "04d1c99f9d486fb92b132d68c0173df891ca757572f7acc03cb41d46bbf",
+ "07de2deeb58d55d65fb37f600d916cfa49f889f02ef53dcce412703d1c9"},
+ {NID_sect233r1, NID_sha256,
+ "bf0ab46e0a756c11229b0ea961f8d57218be5b00ab8b0e91d7664cdf5e0341c412c0e992"
+ "d26ab12115197db39df2d1a6e18ed26a91be461432a2dfc21d98cb16003e339b0b0b1f10"
+ "0e4e6f4824ddac5442f22a1fac26326ed8a89cc91343d7223986d485cc8c64424e84d56b"
+ "e536c57e4dc5faee459b1958efd79e07e90a9811",
+ "0aeafa49d776b61f6a30d66ff64bd40dd8d79891dd5293c1b5cd3b46a7c",
+ "0401ba1b87b16122e6939da5dcadb8902177a9f9ef09194c8695008b80b588008f51ee5c"
+ "ea1f4fc9c44c70df57326ff121268bf4e02cd9b2626fe7c1ed",
+ "09d640ede5bb60b9aa78e393ed453b1643f6dade4aa20e994db53e81fac",
+ "0277bbfb7479077d5fb6813670fbc7f46055718199550130b122a7cb8b3",
+ "0f8dd350bc0bd2d84cdd374c56ff2341de4102269a1e80df7e35969d4cf"},
+ {NID_sect233r1, NID_sha256,
+ "c7b1eeb7c19eb16e7f42b61d79e421b71de797a6cab4e0baee522fee7acdb533f7bbf585"
+ "5316544e1b82b4f2a18ad0a2311e7622549332122171f32fc62a90e408207e0fb90d1b05"
+ "2821dede9c41b15b6e07d84d5d7b9e31e6396a8ed229fb6232b3051298dc5321aa589f4e"
+ "289d27169f14c8cc93644916d9b72dbc92c43488",
+ "0e95db309f4305b621f51f93588a2678cb19aad0932f365fa0aaa3a3895",
+ "0401177eefc44b6070e2c41537e75c91e2f08908c0d950bc90cd2f4720b33500f751312d"
+ "de55b1bcabf31665deb6c12d043d5ccc89800622a557a7ed37",
+ "00015798ef57a771d62d194389817c93de1b225398fcc0d2b81d94054a0",
+ "0eef7161a167f69a6c89b0f173db2c4a7033b5d801c0d89642ce65e377b",
+ "04043f8985bbe0221fd595f9355c33e1930b5e10a1452e81c31259e1e3d"},
+ {NID_sect233r1, NID_sha256,
+ "a738eb074e1f277dc665118ca055e6328059ab26da188c16f56384c566e43df8cff3d2a1"
+ "0d2d15c3c1406de8f734b20be5dd1ce937a4289f0ddfd7bddabd03586556eb8233b8feef"
+ "edaa1f49bdec6d45fd562c2a83fa9fcfc2013bdd77900857199e51fa9c7cbeab925ba8f6"
+ "c3c5fae46bf8e9c574b302f1e5f9c44400152a78",
+ "0d4319cc8e409b8755880827f3200d3f0f1c64d6356fe74eb1f5aa42499",
+ "0400bf65953f2d08477f7fd0428c31125184e3bad4d5da00c91991949e056200f1669d0d"
+ "116817d625128ae764b3fde956432552d24d98f08a12925afc",
+ "05e8704febc38bb8ea76f3c6433c1f0421dc5e5af959723a5a2f0e9a970",
+ "0307c0b838c65d1a47792cb367253bf7c9f627435f1c7ed74494b318446",
+ "00031a9b35e935be6620243f4878a38d4e617fb25f7a4883893366f39cd"},
+ {NID_sect233r1, NID_sha256,
+ "b28103d77e5457c42e026e713ea6ff03722a36512da17197140117442a976f9e2139c54a"
+ "759fc26af5811b455e5a0d3a95362d9939c1e738045be9237b469ae2106ceed7e7842b44"
+ "cc0a475d5af6d781e32ff1dd1f4e1833dbc7f82b27dc7e1562d0e29213fd8911105104a7"
+ "a16f665b926aa137f70d868c90e72f8ee2c95b64",
+ "09e556c945052e5954915c773b2d47970c521fcc99139269c3ef46093b7",
+ "0400db68c16ffe64bede4a849812df0b8e202f74500cb7d5349aacf7f3f0260084b5892e"
+ "a74835e96e9dfb1bb201a4dcaf32da25dc00dca019d806f5c9",
+ "0d0c9e0b6d4526d5f6494d2c72f812fb8d26e17c7a44f6b5e3f9e684cad",
+ "0a379ac253f3aaf94cc49e91fe3f2908107a9e1a4d102e02395eb18cf08",
+ "0854c2f6ecbfe95cfd14045faf71ad47561e365c1dd5f515d8817c3198e"},
+ {NID_sect233r1, NID_sha256,
+ "463d04c84521ae671bb35c0a7acb3ae509b1b0470f39b8fe7ae5f3c9fbadbeb2bcc3a87e"
+ "284cbdff07407a351f7ba743aeac50c4a1fef7375b90eb4af8ea2df040776bbf3e4389e7"
+ "a80bea40530842642b9895ab9ef5ac8ed6c9ce7917d7b3ebcf80b801da845943313988c1"
+ "970e7748cc306f914c37414f8247d648b580000f",
+ "0becc76f8a77615c4f92ae1f91645bf5bb908e75ef22fd544aae63a3c8e",
+ "04018cd93bfe8fc8ceef2b9be14fa947b60fb122f5099cb5bcfad0cdc601e8016de11e67"
+ "3011e30f6fd92025a60d7938412ac63b19d23e45bbf53c6c4a",
+ "04e75a7b92c42ba0581eb1201fa5b3fb2ac82460e953c26ce6bc60e145f",
+ "067bad23ecac0883d218b1368d822b3bf9b82453c0e5f3e336777c6a507",
+ "03788a331249463533384a61c47232aee6f057634c37560ee25895b2a03"},
+ {NID_sect233r1, NID_sha256,
+ "8b2379b5553ae7db6023cb010e26ae91322bc3f94dbaa369481936f90a886e5d3827d995"
+ "ccf03ca59f46805fbac0337d31a8f117cc7044218a934d5bf507090e7e21178a7162c8fc"
+ "b39111e6967803dbf9d752f3ae737ba024d0f4f7627e08be58efbe997a164106bfe37f67"
+ "d2f19c0fcc7a6c7eebd96a72582a9c7bdf881896",
+ "020572c2a3dc3ea430cd8cde9d642081c21658e8bda165550cd9a5d37d9",
+ "04016117486794f14d171dfc3ccffef0396cc9fe5aa45d6d39ce0f252c416801b6a12fe2"
+ "adb279dbbefa4eafa273a2ddbafb2c6401067a5ef5e859fdcc",
+ "0edc8d0b64496da309b10630e9e5917c9a807ccd7cc7bab14360873eeab",
+ "0e1fdd3b7849806fe587ad93aef737ba0472409b7239981f0d325785fa2",
+ "0829449a0c39071a832664e8148e762efc36fda9e030e0d062458728273"},
+ {NID_sect233r1, NID_sha256,
+ "3090bf7373731cc44c00372c1ac59280b0f36e627ccf763fa68a7be37bb0ac8cbd4f70db"
+ "54fc652566c78ad268f78f015e4bb1e41516fa56ac303a3bb4a52e1fe897d8338db5a6e3"
+ "7cad685e704b994504bd231c7dec0002dbd907a7ebfa809833e32eb23fffdb44fe4a18e1"
+ "1fa19d67356cfd703cf39a75b1a290b8a7c73afb",
+ "0769cfbf2dd8248ea1e0ac9b275c9d6ddcf923fe762079b9ed62ccbaa89",
+ "0401aadeee0e31ba9505da3e195d883643d260dac9fe5e86102c8ed7f88eef00d925bd5f"
+ "d700fcdec60cef9c9fdd304faa102d9d721b4f21291f8c96a4",
+ "0f2e203410107c075e25c4adc2f55dcc277883d679ea307df7d52060fa3",
+ "02fc0975c2e70328da4a0ad2b8bd344a8171c2c500c55b1c92270230c27",
+ "08871b6791f7d03796a3aa537fa820f0eac8f2463c9f918468e7588b784"},
+ {NID_sect233r1, NID_sha256,
+ "c37389cbe3f46eeebdda343e354ccd543e96b0c2a87e057aa6b9c4895a403de706d658bb"
+ "c9066c140e50fef4b56af2db1f42efb70b8021254649983f1e11d04d6b10169d5a1c2093"
+ "b6ab89227b88a30537c776bb7575749c3ed87bcb29effd8e4f17915b4d5dff6cab9678d8"
+ "8f33abead1e73dbdc5c3307ff3d3b2d5fd7bfa83",
+ "040ea4a37b388f0cc464f7e2bf92173107b268ff77a8acf5f517b4ec0e4",
+ "04008acee84d29638a7285654d20f8e0653c7386140aba0bd2fc157d51764301482ba5eb"
+ "b82ba46654aa1eaa6a5f01e030177318921a0c99fa3f6eee9f",
+ "0a6fbf938e9cdd009c838196ffeb61f7f545f7e7e9a6cb18d1f595a87b1",
+ "096a80172a7b3b65c0a8acfa8b89cedf9cb19f6eaa5d38436c300b7c0f4",
+ "0b7bb96ddfc9d1324bea96836c557cf88d6ede9a93ada8fbfdfcfe56244"},
+ {NID_sect233r1, NID_sha256,
+ "8884def8c3b9c5f856b9c2352c85ea71aae3c8d0e84ca74e70e404a21467159fc9826548"
+ "d16dd1ec5a75dc2c23ca37b30312f25e1194e0f9385a0499db34c855412bbf58979ffce7"
+ "fc3afeb7b8dbf9898df44023200d809f520db99eae315b5cf85674fab008a20340fae8f6"
+ "974034fd3e55bf08c5522a460680218f9757e368",
+ "037fc7898df9b37b5390537352f5c0b8de22659166c19d7d4df31c3938d",
+ "040198674b40d2a68ed94d5b2c51102393d1332404f75187130669b9de0df9013ee77d85"
+ "4a60f1aa74041ef1fb58727c09f13039bb4b33a818dfe9af2a",
+ "0cf92eebec59605b1d45848f5d06e93ff2767dfa282929208ba801a9fec",
+ "0f7bd93dd4df06219fb974a4e85030840c7d4877f131adccbd98cbd25de",
+ "0c2c4a864459488eb5498a06b0b56ce7fc98fb29b1eb9b6238da8cc8f52"},
+ {NID_sect233r1, NID_sha256,
+ "f1fc154d469433f56c2bd42aa52237a4a4bfc08fb6d2f3f0da70a62f54e94e3f29c629c8"
+ "37e7adf0474fa8f23251b9b349a16848942c0d9cf5db1d0fd99527020dbe21cf0b94a9aa"
+ "21f376bf74da72d36f87b306b0696771efa7250c6182b426a4500ac14de4a1804b38db8d"
+ "4f3beefb8c9bb619ac82cb63fb37c2e1d22951f7",
+ "05d5069425e7a9925d2cfc6360a708147b2c1b55ede243591885147ef3b",
+ "0401f35f161ce0963dca70066b3a6de2a74ea1941a27cdfabd9e433d8084c701d5d9cca5"
+ "b741b2321d8511a777fcc2515c99ff8d13ff20266a163c94b9",
+ "01b9c83d36ada7e9367790ee850163ef4420104e0dd3299ef6d65191d7c",
+ "0dca4e804bf74aa496c15025acb4232c637c9b81e9e26d6f2065d6be21d",
+ "012014f77a4ddb7b266abf2c65a653988ee6f913e700f3f83f3e78c88ab"},
+ {NID_sect233r1, NID_sha256,
+ "885cd348f7983a0721f96c0e866821223d3e5a95178b16d18652b4062b1b2278aed6f54a"
+ "b06f7e37ae6ce1020aa3eb812d215194bcd212302da5b971fd86aee1dcb23057dbedb569"
+ "bd0bbef80df538da69ae2358cb03bb77c64d3ead475c8c5ae5bfbdd75684b421a26f1a7b"
+ "0c37548fa32d805acdc91230dd70a48232a12846",
+ "0ffe3e7b82ca62b96e057ee072a4718ca20a6cc9a3e51e4fe8ed7b4b9f9",
+ "04010f774adc83c1893894855366f1db1962bc697b8e1d047a01a08b12da4a0078c6ff63"
+ "4d5dc8ffc4d8b1a53bbf94046023095a8c2b41618c4330a4de",
+ "005a4a50de4e97280d6ed1324214d91b271deb649a2dae18d21a0182022",
+ "04bc8ba9ffbca81b5f19f0d8b1306900ee642bc5cd9a9dc9867a4531b04",
+ "0353567acc062b83459017c70cff4f3b8ef0925032b51d7300261408549"},
+ {NID_sect233r1, NID_sha256,
+ "ca3b0e2f1c7db4e73c699f06e432bb0f63705ba66954bec4a259bf31c161bb4861476e2f"
+ "2f7dde9d841d1ea6bd0990cc793cd7a10432e38735c3eeda7a0d786e8821239bdd6c4972"
+ "c96c2cf68ec5b935391f963a50fe16af2719c9029943b539ff0f1f5645962a6ac46c75d2"
+ "037fa0c7cd46deadcdfc66e1ddcaada3a376acbf",
+ "007a9cb5ce27c763646de414ca2a4dcdb774d69ed2bde7a817baddbc9de",
+ "040086d4ac1e3d54f7c154c5370f5c9a2d22cbe8f794df68974706bdc9172c017770a2cc"
+ "ac923423137731a14e97f6ca65a8cb3642eceb4e70c78ee929",
+ "0538b86e0a899281ab56d28f40bf3b7435f9a57e334a3269233766049a6",
+ "007ceaac3aa0e260c371843104f5cb91a057741b38889ee796e69f920e9",
+ "035eedd44b036b843deadb8e8df9d96b16e719ba350a634553457ae71a1"},
+ {NID_sect233r1, NID_sha256,
+ "4b0a31b746763beee77cecd318b90acf50fac4172cf4bfb354e5a440f651cb89d7a515e0"
+ "9ab19e9850803ab9167c2aee3b395a5da10dc9aff799d73756dfb0a9961d93bc32f15a96"
+ "bf13962a03d5bd42ddc8b5928def7fc48fb063f42866fc5f96cf88fe0eb125b7c01906ad"
+ "6a7fdade28ccb0a421ceff50ae03a974671b2c27",
+ "0c03fa9e38dc1c697f70bc6381f2bacaf860bb5632fc837f728da959ac9",
+ "040195f386c7efe108fd1d580f0a77031e180e45a23911ba983217207a904b01a6837095"
+ "a64f71ec53ab1c0d9a3a39d69a514065d83f1af26870e41741",
+ "0d4f48085b367787a614b57c06ee8018b2e95e989c2e8cf355e71db1091",
+ "0391710f815babf07b6287b7aab8b9d2ce04bee2a144f4d4a46fd17cf77",
+ "0ef29cbd771b8a6f414ecb73b7937ffe0a108593ffc6899f28d4030a9eb"},
+ {NID_sect233r1, NID_sha256,
+ "3011d42792b21c0f1719faf6f744d576f72c5fdfd22b1a520d0e8d47e8c2b06823d853b1"
+ "3c9fa039fa30a6f2e3e27bb2100c6a35f55703806bbf0f79b09d0f629f8042ec63fa0406"
+ "2f15f2edb92b19237980005566f02bb12a40b4ec66e4ba6c599d928b33f72d7437c0e399"
+ "a8e6a9068d1fef24917fc4f9ab5464ea6684dde9",
+ "087dba00e3fe4802e01718017510094924496bd2785d4ac1a352c530473",
+ "0401198518db2d1255aef955b9b80471aba60cf6d8fd1feae6d8e048ab140301833332a1"
+ "16214e4d9fb37c8e0ab7552b87348434a67a0c41f73972dc9c",
+ "0378578acdfa572b1de4e032158b28bcf00ab7dbaf07b0e772c39603216",
+ "0be2cb45d527a7685139290f1098de975b69957fff2c5c29059ce417950",
+ "06abf4afdcd2990121723b94ab8145d01cc4917cd70416620ef100c67bd"},
+ {NID_sect233r1, NID_sha384,
+ "05a5d3a3b79f4e51b722e513620c88092a9bb02408f5f52a32e782fd4923f4fd3094fc55"
+ "36caf4b645d830260eba91b5173f3833dd65600fb9e246aec968b1f6ebdfddb4059fb2de"
+ "7e636ed60bb7affdb74aefd158e54485d5f26be373cf944c6570daf8fd7e4b77fad57300"
+ "667d6decf5c65db99ab8763bb4ecbb09fdf47e3a",
+ "05a387e7affc54a8fbb9157b5ebd400c98e2d7bd5c3e095538987d4f8d9",
+ "0401a97224cafc063967b25cd1a43283daa5411f3eabe9386b8b14c9768c29002cefaec5"
+ "141bcb084cbc9aebf28fc59780897ad1424fd439eb43eb911e",
+ "0fb7ec3804654b9c3675f7b3c427f6d01f83872e96de2742e59c93151fd",
+ "0808d829d78e65eea47122c92f8c2cbf5a8d6717a057ef1659fb6f8cd3c",
+ "0ef338e09dac0b12fa6109d15924efb694a0b672afb4ef05f4e6f2f7b88"},
+ {NID_sect233r1, NID_sha384,
+ "247a101c8196eb93a440280650ad463795690bc620e46e8118db6900a71eb493d03fbcf2"
+ "f73a79bb47aa8e2d8c87ef70e4cfae36fae5c45fe247d8cd0f7d0718dad106526945014b"
+ "4f3bec324897d8e1fa2f457b8a68e61873b7fa0350fde3b87b7b001c13953c2050a24f71"
+ "fb77eb455053e49200ebcbba7299485c0f1a40db",
+ "0adae709a930d6f5a5c0e3d8ef4aab004d741d23f0ffb8287f7059890c0",
+ "0401541eaf3dca942957c48d693d2eaf2a456646d2fb3eb8df1779b917a9b00097379582"
+ "76dc31852e57063119f1d2d061616b6a2fd35b4a1a3f046954",
+ "0390d5ed395f8ee3478c2765525c235587dbf5bb2316df3a1e8c664185b",
+ "0ebcc4f84bf2deb9b3d669158998fc96d7516580675e24348ca58d70d2c",
+ "0b99462b85e6ce6b46e5aca221250ac9de7ccf3e63b38919b61700be866"},
+ {NID_sect233r1, NID_sha384,
+ "a16678c71976a3ce3362ca379b3272b92e8ca7085b43752473db34e4d6b61eeed3875f49"
+ "f3328366fc9d0644824e0104817de458e4c1036636b18b83dbaf063f2f99818959224906"
+ "571c7b28873d9c702360888df151e9ad1a7003e6130033203acf8a69889be6ebd90816f2"
+ "abf0764f10be68653b1e56766ecc3150bef8b042",
+ "035d391411e6d679751092c4ea5a079c591e77ebdcb57c1d9006ae70d90",
+ "04001298e6f1612f90dbd2eedadfa8ecce22dff1da2d1cf057c41bd37d4b060073136a1c"
+ "af7dae2aaaac571a900135a51ef031643e9d5f01934333b864",
+ "09e343003670f61db85aedc0249db21953d232bc45488c3d6ceaa6072bb",
+ "04ac435e88f8e487b9b217e7d68fbba9bdea0b9685769878818f25e661c",
+ "074d8f4dd58c922d7e79f30950bd54c10c1cc52ae3b8d00b675c8e501a4"},
+ {NID_sect233r1, NID_sha384,
+ "bc2f080a7f0b69a6b142b8f3fb481a43bd71d07418df4f3b802568073c1a8d35729ad197"
+ "f34a4e941a6dd511c63f201d1f6c34a1b66545bd5f43508c10bda1d6ef60ee5bdd25dde9"
+ "75e50c61f76cd36d50ee3bd8dfa2dff59524db9ef12f1e28d109b552cb42f021963f559c"
+ "843476b5c889fc567b7840297c5a480e18c221dc",
+ "084e79093f1947d6ab9cf399782436e36ef87c59a4c090930c9a74ddb10",
+ "04008e756774def210e2d6f76d6e4b0b43d86adca0880f017abfc911bafb5a0147e6a20c"
+ "1aad897829339630c5edd327ef9a7e40795630504318cb71d6",
+ "0ce780ea99a344d67de7921feba6ae062817101068266d5d1a140d2b49e",
+ "0fb2474b854b8e5d6920ed90e69b5b386a1b26a947b1cf28a13f7c5d3ac",
+ "072722017a67ea6754873f833fc51318d41d6ef598d3ec2d3e0eb5bf41d"},
+ {NID_sect233r1, NID_sha384,
+ "ea71cede8b63ddc5648eb244184bae265cd65d50f77a9e25ff93f02b132487c08732544c"
+ "b88936d4fff7c0fedb39685822dd1c9be1158f647c605c9bb5f6a1ae34722fa08882c14b"
+ "36b6c93cab33c9a269c7c10f755b6453ed045ea3e56f29e95a9404ba189a0b4884812039"
+ "2b4dcac43148b706c3d9e4c03db410cbe5dca3da",
+ "079b6be015b8006f86fd81c2792bec6b42c08bee2d295cf9dc214c326ab",
+ "0400e24338d5e33ad12d41eb623ad0905f64d5b75835fec4e693eebf9bba100101b4297b"
+ "5b62fcca7c61637a2a57365e911d3bc7eb0fc7adb0a9dc7bad",
+ "0f06b001e5f874d16632e3c8d49f13d70f48ed4eecaff9d3b741f9d02e6",
+ "0de16d8fd7bb1783a2cc4b9ac1563eff3f87e4e6d75e6a32a4aed1ecb02",
+ "040bdb1197ee8ee51e4ecccb8d42dd985913809c131aa9224049425a052"},
+ {NID_sect233r1, NID_sha384,
+ "319b41d16e18059a1324c37161c937e882192cd949c420ce9c59208a0ac208ebb06f894a"
+ "7fd78df2a3c5f23f25dee6595d3dacb25a699f115dd482ccd36fc54ba29dda279335424c"
+ "86b07a1b1fa76a5411bcecaf4d37065b229cdce0bac75b666c6626ec37a716e9841be93c"
+ "907f87453ad91d36846561f284421a89013b88c3",
+ "0ca9d751a060fde64336cdc88122819f4b3cd1b4e7df42d495197787894",
+ "04009549785f4f9c71f20133f5a1d409b244df55445beec404cf8cd4d2cadb01b246647d"
+ "7570f052840d4cc01182d1dc3bf357b25e5966434e1c3c2a30",
+ "09e99fe741cb23f7eb039f5df8414d069b5c2e3c144dcd6cbc6da56ef43",
+ "0cf00f519c18e7a0fcc84c1e338158399f16929ad89842ba97a4afb5bf2",
+ "05854ee1a6aa5a6a74bec0b4696e80aa275210183c86f45dde7002d7ae3"},
+ {NID_sect233r1, NID_sha384,
+ "aebeee215e7b3d4c3b82db243a47506ffbf2263f6fe9de5b69286e8649d9218367c36ba9"
+ "5f55e48eebcbc99de3e652b0fecc4099714ee147d71b393de14a13e5044b1251e40c6791"
+ "f533b310df9e70a746f4c68c604b41752eca9ce5ce67cdc574a742c694ada8f20b34d0eb"
+ "467dce5566023f8533abfa9688d782646420c77b",
+ "01dde4b2d49338a10c8ebf475b3697e8480227b39bc04253a0055839e9e",
+ "0400504bd3a97baf9852d6d46ef3db78ee7555db752120d020cd056b1b4e50018dd305f6"
+ "a15e91fa46d2a6d30f2ec8fbe2baec491e26d9a2ac81155c85",
+ "03b78d2772b8ce01a00ffe2e6be2f9e2ca2c89ea3b29bec6d6cf31afe33",
+ "0c0c51fba155f98900eaa2d2935acd615e917f9dd979dc8d92f1d6e00c9",
+ "08c8354f95e24ed13d8ff3755e1122dbb4117c76b21b3bdc7f4dd856f8d"},
+ {NID_sect233r1, NID_sha384,
+ "8d353a6b6f35590baef59b638914d3e934d0145b045d221d846517ceddc8ff5e3d28826d"
+ "3459f8ce1260f705e80923f39abc73d5949aa7aa8ad1734be0e992bff0c9a8f4cc9bdfa4"
+ "30d4cf52e29d3737b0cd3231b72b16e15e1a9040b832e4a920b4a1d94c4964ac6c8abb75"
+ "bbbdb10825f882ae44c534c7154c446421a04d87",
+ "02c8bea2803fd746c874fa110a716538c179c82712f38d33d0f6d037e7a",
+ "0400a034560353561cde19db89dbcad5c9dcb74e239efc604e86ff38a0577e0185e0b02c"
+ "48be2e90c916a7c8ef2b41a57ea8d4f21d8cd3a0878a03875b",
+ "02e39f851c57643bd799c4f3b2fcc5eec8ff7f9e9e279efa647f969cc6a",
+ "09b2ad7efc7ed60d9cd3dedbd4159b1e05f05ce5ec2d2cdf7a0e0657482",
+ "03fcbd4ace6a140c8bfebe36ff30848966bb0d3eec323cc8ddda55faf00"},
+ {NID_sect233r1, NID_sha384,
+ "847f134b90f10ba3636ec24f36a94111f26d58428fda5bba4501e58c7bb55809f52320cb"
+ "e9e0df55af1e40bbac9f3eaa26a55d78b60621d4356d090d98363662f406367601eaa9eb"
+ "9568b1a1b319730bad7bf6a7ddf1b45eb6922faf8d065c540b671c50df758ebf8c4aca6f"
+ "01878e5e0012dd038c58833e2b13ebdb9a9f3fc3",
+ "0b9119b3b4b30cbfb98ddf0a4f6953417e515fcf0e5a94e83ebc1d1d14d",
+ "0401be65d340f7e99067bbbf961c2b357e1fd47a74393cae5f93a40c5dc28000c04cd8ca"
+ "3ee253b99e44ee6bc0e52d2f016b16f59c738b9f2bd8c1b9d8",
+ "02c851ba0123ff0543808931ab3857b5c15d7c10c343f232913f6e0c92e",
+ "0ba2b33550878e223cacb80e45e382dae84e76bca5a2ef8371b84d08572",
+ "08c370f82506e97cc15837f59e9779448decbd87bde0a463bc14b18edca"},
+ {NID_sect233r1, NID_sha384,
+ "99d23950493bdd931915e9f9b65e4cd1329866c0071a19d4f7d6fd190689275b7b10fc07"
+ "503dd1c27a4da274dbeb3aa5cb0e71e9b7b03fc2697729b7be913756e6760098951d7015"
+ "df181cf14b1e0b954e6260276af553e3e59907794b863e941950718ef154669c5c262946"
+ "ba120892e0239e05910c2194f712db46e37e53b7",
+ "0f4ab2a573f3771d1e4222e251faf14e06cefed544e804c299c9a8395f5",
+ "0400b1f973d6495d277e24320622b9b99fccef8eb5c1c6952f35b82d4479ef0161dceea4"
+ "d3c9caa4f640f51b37fcbd5b8932642a94c8e7aaed5db17fdd",
+ "034ff28a5ed6958514c603b3af5a991e2e9b4cc2c0a7aa73ab2d70bd05d",
+ "01abe4a7b27395a37089f91eab27ccf29001ced1bb3348a6f919d466477",
+ "057449e55d3f2a4004d647ad6e8fbbd516adbb4de40b1a872ad8ecf67e2"},
+ {NID_sect233r1, NID_sha384,
+ "7bef2487bc2bbbcbcc1570bbd4ed437c0dbcbbf63f666a3355aec49ea6ef593da25aefe9"
+ "ae0d94db50692475425dee3c88cdea975794ac69142c25732f3541457d68d9101c8be069"
+ "f2b515aadadea2019dc7abefa6c12cb3f76d9f4b5e46546f77eaf636aa8f232913092211"
+ "1151a4df913d18b7cf9d0308f01ad84d878adde7",
+ "0f4649cf30d4a5269296a45977de2652cb06d3ca2aff4475bb24517b927",
+ "040100ddcc8e09ba2122a6535c6a0a2dae83abf9e17687b5f6aae7ec6a2df10048f55873"
+ "60ee251925b7ed02de82307ba219a707705623727f98346a26",
+ "0a38b2bd0e9a5044db19d4312ec88d19ce1a9bf0eede8c357f898b0bc67",
+ "0d0ebabc8761ea215808a2c3035b14b614f64be0c2741b3d7789a8659ff",
+ "0f9e742bdca44c11bcab196f910c0d887e90f250817ee7027f6df8207a0"},
+ {NID_sect233r1, NID_sha384,
+ "87c717eef6dd3c7434b2c91de05723783bef603d170f654b49a04b067b077c405d2d757c"
+ "e780101b930196ca4261efcfbd3fc1ebb762cc0eecf101072988aca508c41581936526d3"
+ "f337053000dcf77b16172492c5d654c6612bbd2523a6ad5966d7091697a29ce882fe331f"
+ "79a7eb59e5a3fe536263083cc59b8133bfd33c1d",
+ "0cca24ad914c24c011f41f80d27ea41caf41fcc8dc9dc6dff5248b2b474",
+ "0400175b73db13324a678b8afe086944a7ad257cd33fe9538c59b9177d1064016a98ac9e"
+ "0ff59de1ad94b50f8c709ccf4342f983c7530be64c3f1548fc",
+ "029c83def3a5c386b0bc3cf2663b8f4b02f26c6e3e14fcb17e9460087f3",
+ "061df783609ceb355aba3b1753d38f42434bd75c8354029966e7a788be0",
+ "01e8a093f53a1d73d5a994b97f2b2f210125ecd3dcdf77c68ea3199856c"},
+ {NID_sect233r1, NID_sha384,
+ "9bf48c2aebf473b3a4a928b3b6a4d2fb7e9193c9e60bc2067f9f03083a8cc7b892bdbf05"
+ "601118bcc34dd283e7be996bf19b0bd36727eb9d65276b6517bf0c77ae0a9091e7a9e461"
+ "82a2586eb22324939801034e5ba94ba30d1bde7d8fed51eb71036fab6224f8ff30a00842"
+ "2efcff7ea239ff23b9f462777e62b41b396c5dc5",
+ "0f5e12d536ef327e3b0ba65ac5fc3f7f4880f5968f3340eb8868c1d47da",
+ "0400b2910f5de9475486b3975ce91c02187e8803e68586f3a1df14df67648e00f28af536"
+ "3ed851c42daaa810afa1fd0d2e001da7764671fd44fb6737c5",
+ "02a018753965bdfda98512c7f9da3e9235a4a77aab9804437b652182347",
+ "0b6fd02b2d84b7baf1a5eb592cde667ed6d4c2c821ca336027a72d9abdf",
+ "02253faa5935885945121a374010b2257123cd5db4c54a2aa0e08c8197b"},
+ {NID_sect233r1, NID_sha384,
+ "716d25519ae8f3717da269902be4a7566d6f62b68cd0faae94bce98c8a4ac6f66215ebac"
+ "5407d6f64adf9d53f79f02e50921b6f0e8c805926a839443d30d9294eaa802faa7c5471d"
+ "81fd1db148cdc621a8dd0c096e06fb0b71943337d5325e1bca77062684873fe904ed9012"
+ "474ceae5b138e079f941a665a995026d13d7eed9",
+ "08c30d93536b8cb132277645021775d86c2ba8f199816c7539d560ac6de",
+ "0400d69332763cf533d48e56065e1b5255790f8c0eb23471fac9b945e6219500292df8c7"
+ "7d9a6803f60bf0722ed57ae2aa3bc816403b000fe2940e02dd",
+ "050967928d6089da5b16c88b7927de210325c8d8f5e727fa1ba3bd95b5e",
+ "02434697cb5c2ad95721943154bc81e2ae16332fa6629788f505bbc1522",
+ "09a5a6792b1b9c2e200ace5a3d50c04f69084dd9222c021ef5fce14d4b6"},
+ {NID_sect233r1, NID_sha384,
+ "01e76755007b2ee5ac9e1d4c8adabad6d0f9c1c08ac6e2622b7c1ead89bd3ad0921b9525"
+ "b49a780a262fe8fc0904a80391717ad7cac9607de55f7c744af8a132ec45ce79723f4a4a"
+ "8c8b9ef658b360bd3890df164c9f1cd74eafb74feea251a34514ff2a57ae7a6d4bec2067"
+ "cbf6ee4fdaabf13721bf9ae178b9034ac5e9665b",
+ "0fa3f15a506ccf7b50bbbad0a54d3223f5a95eb54f0d1f4e5d0cc21469b",
+ "0400e797527d57fb3a18c71d1e82e7935e37e719439952d4b972f0c1e0c83500a345bef4"
+ "c5015e97a148b8991bed4b7ef48947b12f316b5621e94d49d5",
+ "075afdc12d4d50a7495f5a7d309696dca23e9356a0cab11c3b3d7b8c54d",
+ "0960ef460000fe8c761038bab7e29d665100494d0874b6556862c2808aa",
+ "08d3c004426dde6c18b1c9ae00a44ac947e36755d8c40eecf47bfa963fe"},
+ {NID_sect233r1, NID_sha512,
+ "e95abeeb2c51a8cb75ab74253dbe130b5560cd52e2a63d501d26e1458aa568aca6694be9"
+ "1eee5fdfcf582c47c1c727084ee2b2c810281cf9b095808bf7e7c668eff00a6e48b06df3"
+ "fe6a445e092c24d5687d7d89acc8063275caac186c441bc697b2f67aa71b03294e1adeb7"
+ "e557c296dd91304ba0587cda3c984619f1eb4f2b",
+ "06400a4830889115aa88b860b3fb65905b01fd126c4aec2785518c2543a",
+ "0401a2051662c1681bbbf6bccbd33c44c7c7fc80b81a1bce14caa36a73f7a8011583d3ba"
+ "8f22080488471d8103f868100a97af94809b58bff1435b16a9",
+ "0ceac6e5d10c55888b9ecab8d3f6ada7f4d0bde2f109699157d194efa42",
+ "0c148f2337008ccc3e61501dc5df3ec95d3596d97eae96a7ab085a915d8",
+ "036d1debebaaef50243005e25c791b9674cd6fa986dc3d32e089fbfb2ec"},
+ {NID_sect233r1, NID_sha512,
+ "bb8d8515365d240b2071daef0d80558fd3d0e059be9f6abb7b7a0a5f47e2ddca7d1b3b51"
+ "01d5c583143258520ce8db0a87f877a395615c9bf879ef46f2f20f68bbc9706f82781fad"
+ "69019396b27f292cdc70fff1772e90205a2225f80889f9daece1d03914d8776ac5bad24d"
+ "8fb190ba10a2ca17768b918c2e079d83734eb372",
+ "0c7b73c324250f14fac0edc941f79bdbc6933ee8f64bf94b847bee5eef6",
+ "0401af7266ee56bf0518f2875d4f4d9ec508a01769d9c1fd0a885a48bbd80c0084167ada"
+ "99502475478465315bf8163870a9ec1b43f15d68f0304ab03c",
+ "03badc9b8098c3b4d7e943a2365093028b579519031a8643b50c0f81eec",
+ "07ad4fc96c21963395f56eb63e1b0b4d2c93d827626e7bd4448697ded97",
+ "0e7504e6a9f662472e3e6f18a40f7645922fad2ef7313d600a5a6ee314d"},
+ {NID_sect233r1, NID_sha512,
+ "cd8b2403435fac9caeffa21b55eaba52d7efee0f89df7142340cdffeb89556303ca01a80"
+ "0429397e2ff6c746743b6bc60a87133274282d4cac02e4ca90ad95d80c93b84163b96296"
+ "f67d40b2a1124b2b6534ab6b60fdee312fbcdf468d0e84eb85fce4ff360136bb31ced399"
+ "8d29cfaa3ae685e638ee272058f123c4f35f8b6b",
+ "03db7f28e161abf52ab0adc8c4c8544fc989af081303b8688f22b7b2eb7",
+ "0400ab94312e53832265b929f3d529bec33dbcc5c17b969e0afbe2d559ec3901d53b2c1b"
+ "e229e2c224e6e9fcb8bb0f044f3f9f5677c60bc9454f36eb06",
+ "034a8f980896284fe6d28b0b49703f1384d799e3f11a04b1e62da12965c",
+ "0e374fb355f30d7e427bc5db99ed76a914d6e286099c72f28c07302c741",
+ "08d5ffd41f8a1fd3de6c433635fddcfc2b21809d91496ac17571afbb856"},
+ {NID_sect233r1, NID_sha512,
+ "4bb08eeb202564efb5bda40777d71f1bcc4c7c10b611e803e5c570876f3e319e9e2bc2d3"
+ "2031c56a32fc0d1fcf620d4e4377d881e9e1695bcdb78acba370b849115b86c1c4b83edf"
+ "a03299da8e7fd14c7cadb81a8e4911c8e427e32c8c9b67e317575331967cf58085cff0c0"
+ "d48ee0b8e7dc0b49687bb1c70c703a5dad08ec81",
+ "07e9d2fdd017d6da6029e88f78927d9ac9437f542db1f1fa99e32bfcf1a",
+ "04018429bf08752aa470a8f0801170a7ab96adfb168ee8212d76ab0b994e460072a5071c"
+ "e308d7daefb3e8f4da4681842ffe0f35dd8b071f0775c83f82",
+ "0a0f330e011d34714875500b70c881ff6b1c9e96da930eef75ec78ac120",
+ "0439bcdb86d40e8f64db5dbead95d85d6a771d811480c5765ffcbf75422",
+ "06c01f64e2812d18b0946ea4e6599e8cfca0a2b606c3c35c803ef2cfed3"},
+ {NID_sect233r1, NID_sha512,
+ "0bce683d835fe64e6484328aa13e18b0956f6887b5e4442fce36ff09aed015889794e79d"
+ "a8aa60b4be565c78685674c51e1e7ac60db6a763c777198a56e382a03aff8b40862f961a"
+ "e23e8b8683b76a5577769422418972ab0049119382edde9e752b42e8b93f403c1ef8665d"
+ "7ce8530ce4ed9ebf6d397827cba6b7645e177231",
+ "0c94052760fc74c2b405ee4dd5dd2a7d38ebc16df9cc32df706075450b5",
+ "0401d2a5ee02d97f82ea9c8833b825cc57b0cb51d3f2a2cfa7577eba676eca0149c68d98"
+ "d0e9cb242962326a26164f3e3cb6d81b51f281474b0f8d333b",
+ "0fdd3ade90da682676d40008cebeadb9b2378d8a821e9e9428018cdc768",
+ "0f6d244daea95002daff2ff6513da694eee58f8b6c2d47ad121be87559a",
+ "0b04788fbb5655a053d0fb7a38c39e1fef68ff17860442ec8b8ad049842"},
+ {NID_sect233r1, NID_sha512,
+ "a6defc770426daad4dafba3bbd2a69881334f7c31269b297e440926db54cdad3fd7ad200"
+ "f5ada2b72ad221ad99a06ecac9c2563a8deed89f0d0896991d1a652f6fa282affefbdb1c"
+ "1985652300d1792725071631d75a182b683a48448063c7d2563ec3d430e0fd3acea33a35"
+ "cd38ec0b5b07af96af71d0bfcd879d9864ededf3",
+ "04076b93487c2da8aeaeb4725fb53b7b41b465315335c18c6ca041175b4",
+ "040158755fd290910498f6c8eed83bcebcd1fcafef4878c860da118efa250c01781fdae5"
+ "01c2c147eca2c6c809d9428fff2f853b57c7d6add70fcfaa0e",
+ "07debe933553ba3420aa06e1bc52a1653f8a19b59c0bc9c47212389442e",
+ "09e09c6d96e33c845535468ec7f5b79cf30123538011d0b5ffd935d168f",
+ "0963bbae921317666f5852759e9ebf05cd026a5d9f026942835ff0daeb2"},
+ {NID_sect233r1, NID_sha512,
+ "7803cdf4758c199962b62943f475c6c31356f5d9b997a12e21146a2399cd0dd3b97a860b"
+ "2ce639e2801571599136d4a8cdbfb12fd1a5ce22374991e090533ff42823a2c58d2076b7"
+ "72814eea7fd7a1fde68263ef912681c72c7aa3e5a7cc44ee8c65e72228b7631e600121ea"
+ "35bfbbc783b6ae3c0c8f80198ada218be533760b",
+ "076ddd73ee4fc1f5e6766e229cc7236cdfce312417ea291f7c3328d5ab1",
+ "04015185e029c0d4eb5102e0fe900ef3c921acc744feb44570a288015d090800ed56bf93"
+ "394a434cd84b521040d40452bb39755da5e273a05e8c0ba792",
+ "084e9e4a9c84a602c18bbb6b183d06969c8b8538e2ff901f1c2794d5eb5",
+ "0fde8e9b1959477ddb3423661df1e7182e4b583849d6d17fafd7dc5406c",
+ "01a12bd30e9c8b74912c670c0845ff5ecc77f29797160bd4992efa61f4c"},
+ {NID_sect233r1, NID_sha512,
+ "e789461e1dad0b6e21abeb6ae2e96385549d1bae39415188c8f833233da6a3328144c97d"
+ "db36e0ff4d9e19d84f869e79e609c51b32de59892fb0446dd28cc164a3e53534c950d26f"
+ "87fb74e682db2038cde778bde06c3ee2eca2a077d8fcc2b0332e352e0e7e6487444a8ad6"
+ "0e78ff213b16fda9faf374dc6d27b7a3c4c6d196",
+ "07e1f8988ad804aae7d09a99be19384cc599e7652c02c391542be74b17b",
+ "0401fa4751e507740a7345e06a8964022fc6caa901cf0c2077a2c0fb86be8a00683c593a"
+ "0bcd123d958deb6b430d49d5a2386d44706f4149dc526ad896",
+ "01d288de55b90dbe72cd8f1f86a3ffbc2902f4b5f0cf4e641d32aec6f20",
+ "0048d16d87dbf4fb8e994dd874c10d5d16846b9ce2cbd43d09df62ca970",
+ "0e2ee47f422095d629c188df97e2839fc6239b9e2dc26baf8161b037236"},
+ {NID_sect233r1, NID_sha512,
+ "9b58c145d1b6c887f2b25fb672cd49c3a1117224be697c15182d4048be92968a6500f8bc"
+ "f747fcf33145c13a8d72e891a6e0c4c7310c2b62f3181bf586fe32f1ecf4feee8c2c8bf6"
+ "c2bfdf9d5f88981ce080095c93e49a772d8e7b59f9cffccec3ca2f212ef4c6748f64e224"
+ "f4f098334d83108bf6f8c7b43c5eb549f1526897",
+ "09b2292b0244c2aabe8b43d95039984d504ebe05eaff318760e4dee739f",
+ "04012618d89f50b7f83ac470705dbe9ed81beb03929732a3f2aa7a636eaf59015f0f70c8"
+ "08e053b112a8c32ee422aac2b926c5b6a279a787fddf819990",
+ "0fb38174a83ceb9236fec8ea39be2b3c77c3dd2cf42d140e27838202d08",
+ "084941856a387a56022727f81a939d77d12b01dab603ea0cdef6d9cd6c0",
+ "0bb9fc30595f94d664a590ed4f163e4526809819baf96bbee629ff86bd9"},
+ {NID_sect233r1, NID_sha512,
+ "52310a901fe9681a23dd6e02f12974d57f2c4f653322d9a0ff8b338cc6c2bd9f4765c90c"
+ "6b3c9fb17df3f492e67d204e39d81a8fdeb92c852a1dcc6151ed6c63049037235c6751c9"
+ "a902748163a567b714725b4d3995e0edbde03215c645b1a1da3147f7406245432800c50f"
+ "823a1f991c863427ff4c68e4e16d1b106ee40dd9",
+ "07ca463b50fdd92d9163f1c2bdfce2ee45ba1437b79162e3e959b814cab",
+ "04008eeeb146216c73ccff0096e1100008f8b1f3f0c5754c0abc4ed39f7f63018c9228b1"
+ "1888edd66b2e661284f583a0e8d3c3e922932cd9fc1568f959",
+ "0025291ec0dc2b0c709c5e69695980564552545c2497636b814aa049ccd",
+ "098dc98457ce6e69f77123d5d2460ff569786dd60fe07e847ed5bc14da9",
+ "0cd320afad2a4247fea5b74d78dc3df8967ab3159b4c8b191814d368dc2"},
+ {NID_sect233r1, NID_sha512,
+ "ff419c011601cfaf833067cf28dbe6e935ebeddf8b5111a97f6eebf3bb28376334f329cd"
+ "877a134b074790a073db766efe018fce666a34650cbac285ae856fb6b3b8b96877282bc1"
+ "1cd9f9c8e510ed1f69bc2725a44a1d2b35de1edfd8bc9d20c7525ab0bbc27662a7cfc1bb"
+ "d1e0f4fce5b88411521e3893e027cc8c73acdabd",
+ "0c3844750f63fe0c2e930bc38fe88522f4e72a2fd0db9778ade20e939b3",
+ "040075acb00b5999f8b272a15a2cbdf8cb630dc3eeb1e78e58f58e467396f2016711aca4"
+ "24ca335878d273eca75d804d3f009a1f3628568530ef265eaa",
+ "0a63e7a20d100f14b8b709f0a6c383166c2151a36dc471f061b0f20dac6",
+ "04063be9d8e4f0f9afe0c79374c69b36910b5d2b1010e0f4db2e4cd23da",
+ "06a6eb90659aa79e4a2360ea9ffb99a415175dac6c3efef104bef6fd57e"},
+ {NID_sect233r1, NID_sha512,
+ "05a89c4824c5de66587875011e704bc6e06e991ba8f3aed331cfffe55aa266a08c729f77"
+ "b8d082dca4d286b2d451ea838d726cc2cf298fddf2d7376714c5e37b64506f353917caec"
+ "525a1209391449c078c5197a371feade74f8fc8a1a1d67576edfda13c14ad324342fc0b0"
+ "9277941dc072ec0d39434ff1cb91fc59478fcde7",
+ "0a3bea235dea86506be4476eb7999dcb8e584a34238c4a894ad6823b93f",
+ "04014093a072c21c44d1c4beddc5c8dd9a2845db0935bbb4e1c4edb0aee032013286ed58"
+ "4deb744c9c35d7ae7eb9cad1c7ba2b670642de0399b230716d",
+ "078eda19f0cced2f84c1a7b354e5a79bec035b8bb279473f32d60f5d17f",
+ "0964e817f0cdc251eede4157a9bd830c476627c3f27d2931b4f593b0178",
+ "08dbf34e597ae06ad92b13900a4944e54a5bf0f16f586baad157da6dc96"},
+ {NID_sect233r1, NID_sha512,
+ "13e6b5241365d9d0ef9e8b05cabb3248afd221ec02eab92284b98bda3d9272184bfe5251"
+ "d35705defba5085381430e99b33a3ab77d7870e5102757d065862372df2434a25556b76e"
+ "54ebc39d4e6c3aba5cd6acf0c335756f7d9385c1068d4cfa37526a9a58c0ccc7f87a8189"
+ "176c5d4f201499236058ec061357dcdb5acdba40",
+ "09a367cd1cffd8dfcca179e167ea437ee48e9b6f42559dda9224701d3f6",
+ "0401052d751901f6f8e61858d3b15eb59dedd21e4e997531ef65622d5750290112737be6"
+ "7ec621509d73cd613d7b448035397fa66eb881f90a6d531ea4",
+ "0d8dd8f1cab623ba6a4e840962fb31de97a4d14aa6dd34dd21154105030",
+ "0a8276d0f069f34c60b26a55d47df69e4c9ae2981afc59e14b5bfcaa498",
+ "09351c4b3a06b839eb2e9f450d9c3d15efa45509886ea3f2610ee1dd156"},
+ {NID_sect233r1, NID_sha512,
+ "139a1a5090b97afb8fecfff8745efacf7dcf91a4393a7b629564e598d58d5be39c05c583"
+ "0d4c8ca85d29e9e2c31ad0447864e867d0ef4788ac734f8d871daebceda98d449308c2af"
+ "be97724c3af8a468f1925065f39e52ba4b7d15728a744b1252a20476dcfff7bcb82aa72c"
+ "209e72abb3c24419bc26191390ffed340c1b9c6f",
+ "046f4ad2522e78b9b35297d28f361fb0ce82306322aedc119251d8241be",
+ "0400b976c53a966e0834d5f6bc3af10a5f12cb6d16cb2303a3c6cee7d35f2201a1097cb5"
+ "6662265f4f2f52df375d70af086264752477c34c6af522f1ec",
+ "06a0d21e5aadcb0c9e3f9fedd2d896b0236dc90e33778fb114e970122bc",
+ "068063fe0a31b7e7925cf8959c3486985d98f58224d5f67cd0218af192b",
+ "0f11a22ced98173040062ff9e69d1b2a1b5a939eda0a6944e96fc62fa4a"},
+ {NID_sect233r1, NID_sha512,
+ "3315e5cda5f252e3291b61e493ab919c20a8af1286d9660cfa2f5ca38b6defe19ebecf82"
+ "0787fe692d04eae8a5f5d37abfb593309569cedf45efd0cecef6951b718924c8380ba52e"
+ "8ab8c9bfb2261ed5f01cc5a5f9fc5fcdd269a0f122c597afdd9a836cf8f96838c3e8962c"
+ "1788c3ce4128719b3ef4fc88569643dcad6da16f",
+ "0ac82137e9c7a5ecfb8b1a7df9ab50732934566a392a6c8915ee8ca8144",
+ "04000f7f835f8223fa6c49eaf6650e33dc9d09e1d2bb098925d908606570b2006e659ce8"
+ "623767e8214b076d7588746bfdcbbed59b75bb19477366cc78",
+ "080655784e3e31c6a498a63d4d84f7e5a353a66641ca17d4e223441bb1d",
+ "07faf31d1d31ef4edac1c63072350536df84c417e0ef808c6be39617e74",
+ "089023aeb53ddd3e475d11c53479863739e62dd64348646581012784689"},
+ {NID_sect283r1, NID_sha224,
+ "067f27bbcecbad85277fa3629da11a24b2f19ba1e65a69d827fad430346c9d102e1b4452"
+ "d04147c8133acc1e268490cd342a54065a1bd6470aabbad42fbddc54a9a76c68aceba397"
+ "cb350327c5e6f5a6df0b5b5560f04700d536b384dd4b412e74fd1b8f782611e9426bf8ca"
+ "77b2448d9a9f415bcfee30dda1ccb49737994f2d",
+ "299ff06e019b5f78a1aec39706b22213abb601bd62b9979bf9bc89fb702e724e3ada994",
+ "040405030ce5c073702cffd2d273a3799a91ef916fcd35dfadcdcd7111c2315eba8ca4c5"
+ "e3075988c6602a132fa0541c5fda62617c65cfa17062a1c72b17c975199ca05ab72e5fe9"
+ "c6",
+ "2af633ac1aee8993fc951712866d629b43ed4d568afa70287f971e8320fe17b69b34b5d",
+ "165ce308157f6ed7b5de4e2ffcaf5f7eff6cc2264f9234c61950ad7ac9e9d53b32f5b40",
+ "06e30c3406781f63d0fc5596331d476da0c038904a0aa181208052dc2ffbdb298568565"},
+ {NID_sect283r1, NID_sha224,
+ "44adcb7e2462247b44c59608cbe228ada574ecb9f6f38baf30e42b589fb9b157bb0560e5"
+ "a2aa5523b71cc0d7f583b502bec45d9b8352f29ee1842f42a17a5b16136feaa2efa4a0ae"
+ "306402940ecd6b71e57d1467c98e7960de2a97f88b43487e4f4016af1292381d70c18c7e"
+ "6eed99a14cdeb5b3caf73688658e4c5b54c81e08",
+ "09c2804f8cab768248fb3fff8a055b3f4585c00de5c1615a19f9425b9432ea09afba8f2",
+ "0402570ff62b03a5124f08f752aa71ddc57944cd94197fd286d5a2a107b116d7b8ff1b04"
+ "21037714d9abe9aa0a9668fce89a3fcd5cf2e4548102a181a777c9b3f1008ac6e8d3a31a"
+ "2f",
+ "0dab5ef658ae3e2ce2bc5c88a8b8022a0ca5eb8524815ffae414327e3afaea5fcb8a7cf",
+ "2d99f82d92c9554722bb793988af0fd0bea776c5608f5939db7c8634eeb24ffd381dbef",
+ "27ceb1d01ec9a3ec0e74d79e08024359e117488020de6458fbbcad28b173918fc7d129c"},
+ {NID_sect283r1, NID_sha224,
+ "cffee6252c7eb6d91d8fe100a1e62f0ad9f862d78ca2b747a6c17b8c9ea8980dc239b3b6"
+ "73310e6e7483582399163e39d889abc1a613fe77849ebc09b4f7f4fe0688b8a9869ae918"
+ "a88294c7ee199be50ee9460db14725ae70b449d0cb48f30e7d817ec02c0cd586119341db"
+ "a0b74f0279330807cfccc99c8c340b72c1764a45",
+ "2e625a6bc6d0ce7c06231de827068bdb0abc8ffb57c82b35ee3a0f873b9473905974d34",
+ "0400458bf39974812a4e0964c31f40083300454104c0d65f22c5688bfff3c256b7ea9589"
+ "000738dd33e32b9af93ade2dddf4147187a9270543afdfd66a0f2a53d6d3d815ef59795f"
+ "60",
+ "0a9388815c528fdadcc5d3b125c7a38db57fa8c163ba795ee00e8e307bf760619e705c9",
+ "2481571400ecf9dd31dbd9c905fa1006cd5bc7afae759da3312ead8d5a7dd0c25a37ab9",
+ "13952fa427d348b6347b9e93d4cb2c4cae3429dbea6aafd1e58d5a34805098722b3b8da"},
+ {NID_sect283r1, NID_sha224,
+ "d058ab5dc07228253707ef224897ea0fcd09c3d5cc91fdce9e03c1c59c53fb4596be2ed9"
+ "29c7455e67ac7f4891aed3eb06ad88f2c4aaaabff045b959f900d1019d706b6052637585"
+ "1bb891494e99995928e4cd51c9616aa651ec77bd7e398916bb9ed3156391bf7fb1e29181"
+ "e2b011dae2edaf803607def2ac6b194929a57f45",
+ "376ac24e1b86f8a55c052d92a0bdc6472fa03acdcdbccbf7c321ec0ccd97aa0a66b4181",
+ "0407247c755b23bddf944e29348da82495b4f61d02a482c6111d8698cc77e8dda4c341f2"
+ "0b00f8c199138e1f4f8344facd90ac62d55f3c9a15ba7a672ce40241aa26419af790cf7d"
+ "d6",
+ "25d07c7afc5a335c2bd7863c1965a48c12f2687b2a365a7c2700b008ee8a0e8e35a68a1",
+ "23fc2837a879b79e470305088acf596eb0159edc2008478cc4c3841a1bd66fab34bbb5e",
+ "0a909b83bf77e74511063366ea1d1308a8a544864783459a60fb2669785ab1af8f4cb06"},
+ {NID_sect283r1, NID_sha224,
+ "c86f2cc7ab5df5cf1a236fd83792769474cef464032800ffe98a44cf29dbfb6f24088160"
+ "eb31a11a382ff2a49f3e05e983462f5304272f96c0a002b69af3d233aebe867ee63fa466"
+ "66760a6889d022c18645b491f8d71b6a3b6b4ef058e280cf625198715b64b025bf044944"
+ "5d3dd7e1f27153926e617bd2c96638345431d1ed",
+ "2b50a6395fc02b9ac1841323de4520292f913519bc0d6a471aa28021322fc4dbcd7b802",
+ "040696d5ac4bc40e679524e246210b7bb0f93ccfe7dc506ba87be3fd018f829c93e62ad1"
+ "d8065953e01d9db8fc5d64516d864a33aa14af023e601d69875ac0f7af92a1e78aff0e47"
+ "5d",
+ "0aa25b43329de4e7739fd9134e4f4b3d68a64e55af47a2f6ccf71f518f19059b68d34cc",
+ "1338a5dda5fa09667604a6a7666b0e54e6b688b98b31c25d037ddf55ee6bee7565dad09",
+ "00aec025232c16e778f90785ded5348f3d5345b8344b2a762480383777328e0a0b11cb3"},
+ {NID_sect283r1, NID_sha224,
+ "c1328d8d2e5b6ffc850a9600bd6482518ddd9cee3fc9140febb72bcd444b0cd7e8074587"
+ "d51b62cce4b3d4f34ad3355353fabe363369cf790db2df9fdac3a0ec4757e2dfb3b683ea"
+ "a3e26531691ce765742e1c0bdc0e1028d347b6085fc459df0989c6a144271454eaffe413"
+ "cae2ad7c8b2371fd2df1afffe56df727009765a2",
+ "24e5889722f6c35e18ca47effa9e415b1ba790066a91fb3c9f7b001ce28fc732b09bc23",
+ "0407d4a57e6aaec6b51dce5408f6a7fbe9ba9d55f5abe2da55fcf015ca25dd74eb61c155"
+ "6c02123390178b2992059151afb51ac652b364f562c65451eccc65d968e9e7210921c93c"
+ "9c",
+ "320d2a7f48cf3583e8d7e712b330d40ddbe4b6c128be5a43d72bf57d4227603762de7f0",
+ "09806a8e70742c6c4a9ee6f77fe7a36489e1fe8c442ddf9cdcfa61f019ab9b41241d949",
+ "061fda247ba7c198aa532906bc01d509088d6c2ba0f14ca3ecc5ba36f3595db1df3e64c"},
+ {NID_sect283r1, NID_sha224,
+ "7176b7013ea27e94281977eacb976bb31c753bf80fa09680a29128a6fc15234f79f0e990"
+ "0aff3217ce9be72c378042c6c34fced0158740073d1a985fa25987fb218002e425868fda"
+ "5a47de51abfd04de34e2b8634cebfbdc98e80f93d94096193eaa82dc8778fc23f3765c7a"
+ "cdad94fdaa272df0ff0f28190c10a462ee78ac92",
+ "056d15b81f40b6378588a5efe43e21b95e18120d514bfdda0e7759a1d0766a8a35ce5ac",
+ "040306cb78fa576bdd2f43cf7b71d7e66a98b850d87ac087dd2e1ff62596a2e8d4cfff13"
+ "4403b1e3b12db842e00c2faef04d3e39cdb71546e4e3ecf21eacb6131c3501fa30edcc0b"
+ "70",
+ "1e8969d6cad41a40d8306d2a8db3290d547106eb59f661e0d0eeb163044a92aee4483fc",
+ "06786637c3bd5a95eba5ce015f151d99845255175ebb9e593d912c75cc45723612c4ed5",
+ "384471c17c45ddcf62b588993835bb913be88f7a8e46e52e211972ffb3b7768410bcb7a"},
+ {NID_sect283r1, NID_sha224,
+ "4c3642ba040a9955b9d50dcd1c936688c17c363854358afa8ca49c6abd906dfdc4d89bb4"
+ "cab0bbc363fb5b74e1f004d4b09ec9dfeed4c0bfb482a9061a1f487a3d79195ff7b65a05"
+ "04bced3a28db0ebe8fcf8ab1ee4a3ae91324d15d890ac4c479144dd5538d2e36d3a58776"
+ "9ee9cd2d5c6f85a03362a022fe0efc4a3902b71a",
+ "12fb2fb5bf5f7e42a500154823a174ba2d05af71e3b0cf47fab46e673ea1822f1563def",
+ "0402414d172d74a6281169835d18bfaae91f1f1cdfa9ed451884466e63160ecdd4a2c790"
+ "6f02d892bb19b47a4fd9d851d3b101ba99acf6d11345596635cedd5d7557427a2896a913"
+ "c9",
+ "20786f42d77195bea5761f86dbed8b452f858b447d2f3775ba2a4865d738122363b50e3",
+ "334507412368f08bd0992a5d56581ea7139e8adc88abe4bd80dfeefdc7a37a481b18609",
+ "0fd8404df06a02618cdbf6c28610d5dfac9907635d9e5f2887f11a7f18cb8b7ac95b5d5"},
+ {NID_sect283r1, NID_sha224,
+ "e471f39c18b081362adc7da47dec254dab8d765f005ac574640d78c14222639245563912"
+ "d942f3be212ee3cef134407334c8fe3602fa0e1629de5331643d76715dc1b0ffcebd484d"
+ "86c5211be4b285a31688b205fa988e6c15b36daf396ccdcc209c7dde2a732f5c31c84c7e"
+ "a041408ebf15e56632583af0131bd7f531b5fc45",
+ "30096c54fd480647e017f8cdbbdef292e799f054e3279d228b09816a757566a744a8266",
+ "0402d4b28fec18cd888017fd5a27a375131bec3aa7195c0a4f255eeb3616437079e356a6"
+ "cc027c607dcf0b068418eaa7de8da6f9707650e8d95aec571f7ec794415fc175061b4515"
+ "19",
+ "36880905a376faa594978713c2de1a90c8e27baee65bc60b1fa6508fab5abf843f66ecf",
+ "295193f1c64181bdf749987bbc8ff2a188126131f8f932bb8ca952ffa201f109762e18a",
+ "381c496b4035bba880225dcfe74fcf101103e38f9518d9427c74a5ec86ebf8f7183694e"},
+ {NID_sect283r1, NID_sha224,
+ "8a93fe53e83075c4025228540af7e96a588520da34e3eadeb99a4ab2f3dbbb8f85fe63a3"
+ "b86c1f4ec912e665ca05b43e869985eae3791b91205afb1380e16c25b74e6793fa63e4a5"
+ "5dcf25dc22d03f09deddeb9042b620434111afe08c5657c7d754af66ad91a1b5423301b1"
+ "e8e6389a1404060d1b6a99fe0f89598482979e42",
+ "0a1b7e9c8c2dc25b494b5ef3195b294e41cd3c2c35235ab42542bd3e2a52d5826662bf9",
+ "0406232063dbb66a56e2a92dbdfd9b3c136eade9c214d831691d9b49c56a3962d20f14b8"
+ "a901b47b85bc223fde1918abf6308b74dff7f3e686af9c9d7a1855a1b77984d258c1f9ae"
+ "da",
+ "29b4221eebe151fe758218138535d81182c991c3b7fed93f9a6117e98c1c2f97e546937",
+ "1f8040fad671e2f32a1094413ee955ea5426bc906b8e034d87d7408e63db173b05afbfa",
+ "22a353c431a9e9315ff69facfa4e15f6e6ee1be2750472823db31b49b17fc759e6b94db"},
+ {NID_sect283r1, NID_sha224,
+ "e193a8ef6f454ca1aed38bb67aca6d08280d421b196d89938c0582b7cde74dafd71716f3"
+ "818940af412d4a7ff3960a8517aee108ae03576b68ee7557d35e6f1ab823d124de7243dd"
+ "02b542591f62c80d822608572889573e4c9dc62f99d68e07800da6f83cb6f5e03d1f2ac1"
+ "5f90e38b4f25e0a75e354e4b60cc81c0bbe81d39",
+ "059b1a8fb84530bba7a607ee88310e31bc6ea6a6881603567a1081a05a3a9ff87e719ef",
+ "0400b9a71aa3cb4cff37586b1e522b0e332ad5962eec3dfeffcef3851976baadf611ae52"
+ "2606b1bf0b43b406b5edc6782fd391d9fb070fa3570d3cd5b2b66d7a95dbc45ccb162617"
+ "2c",
+ "00a77307da9845ec4572a24c9e74a17b76b6393da87a9d7b1b8456235473ff39d243ec7",
+ "36721835be490b5ffc4a42bee3c6d231417f7038c367efd9ecaf7fb3618ae8492906de0",
+ "237833bcc3e4a721e2079e579d1aaf2519c01cc238056fe0c0990dac7fe50e75eaf6f96"},
+ {NID_sect283r1, NID_sha224,
+ "8a99b9db191f6cabc88b430bc2293e6774d5180f019d871839289e25aec29379f14606e7"
+ "42190b7aa062e3b29fe0254146d9614856c5140c7315015abb98ac00da2c7e33cbcc82c2"
+ "4b797366f12767322c4381454d9d1eeaedb616b0ea5c66d1422da459f18081f4f966d05c"
+ "e279c6ee69b1bf94b8388d38d4b770d9ed69025f",
+ "30ddc2c7a4ce300cc2b75f0f977033f16c1f8bb13aae3d494c381f9a6dc8622499ae4df",
+ "04047bdfd7c77ae0c53e327c15c30d90ab1c9b670fe2241dc0ffa939fec3cf6d3c1f493f"
+ "3a06a286aa2310a4d0468b62f3144a9da2e66d15bf86f60045824278e8986ff87a276119"
+ "20",
+ "38afc3d11c66eba3441a5ea298fa593eec57b84ea29973c306ac9d46bb8d8e2f4c8b049",
+ "06c830f6c0be99fea4712f1c75f5a4e439800dcf062a16d93135c3255d3cd04bef5bc7b",
+ "1eddfda0d0e02d382ae243e604f76939dc21f3ce106243b2d20aa562b78e620fb456428"},
+ {NID_sect283r1, NID_sha224,
+ "5c437b331831530aa94623b1736f00b986172699f0a02a5e5df0008bf25341787e2e6604"
+ "6f2c929dfe0058c3cb89fc5bebbe1025bb1edd1ee31522ed568e7b5b4ca3991afdc76a68"
+ "cbc2c4f81863e27fdaf6a564fab2c6354e5c657de81390f8a4132669fd24a48580c716b5"
+ "b7961a9c091f614d11cf45dfdaec8946a54a11d8",
+ "07899928922fbfdb5407517725edf231d15a8b62d90b7fb6d8c8d20424850dc44f797ed",
+ "040614257f54514cf37df2cd78850658a85ee362764ab8186423aa0f9a1ff486557f8f16"
+ "7f03ceae9d1370df045d20f576931ca63bdba8885f463d5c82e5edca5116ed3d2c2b0c48"
+ "61",
+ "3395493478e69e6e1088166f622a4f9ec7feb998aa552b54bcf0fc67c06079f45a14993",
+ "3f31ad171dd59c9deb21851e631f223584b17f72a6807d5239ae31373512def954d5ebe",
+ "28f095ae43ba5bdd899573ce6823eccd8e127c6c03cb59dff43c087ca24e1ce5504d1ed"},
+ {NID_sect283r1, NID_sha224,
+ "91aa08567d8da4c90684dc06068f69deae240212842ff1786f04ec41b40d9187aa92c764"
+ "01f9fcedced62876a34df82ad7c1e63b68bb2a972257ea8542bda6a7f1a020c9b122943b"
+ "6d651abda8b8d322a8fb762eee376daa2d3637a71ed6c4f5cf96f61c0da2d6e1dda3370d"
+ "80e51da2cbd8aef3267168c67359523faf910dfb",
+ "2a2af63d1171930758bd3e5bfdac62cca1a83a3b55a49b3f80cf0d9ee4b2082757beac0",
+ "0407dd6fd0868ec478e7e5c08965fa4f1efe8db4d0c04f0b6c63b5dfa397607a0d9d5ce9"
+ "09054ff4fba9058179a2c61951fb4955cb637b01267f8f08b3aad614738c562f602d498f"
+ "04",
+ "179482dddd033e8849abfd4991304137044d7433d7bf858a794340ea1cd66e736b821fb",
+ "071f4cb000ca1c51c698c867a78961e6d7defbd60109f79d1d165ed045a653ddebabd10",
+ "1e2975f4a1fce0b3b0e13c3f50005fa664ee9319cf774d2e107c406d36158bcecb0e5bc"},
+ {NID_sect283r1, NID_sha224,
+ "eb5297bf408c1a55e400a20a3c10acbc5c2bc6d6ccfcc0941fb7a6fd4d2834415a6df86c"
+ "3a6c4b867d1215aeb8222153da8cbbb1576c92c07ca2c36d8f243fd911f9a057e39ee258"
+ "32454e28d7ed52a8d04169b9b9677a16b32d5d211b8573a8986e9bf36d7206417ad2771d"
+ "aa11bc21fd7ee1029b65ff7c9b2705a6dc9cf9cb",
+ "35994e89e13916ad82608f74a639e6aceb756ff913aec440519946d6434af9a60a6af49",
+ "0401f7805dfc9f90d4f8a1b241dc9d68aa41cb77b63d530cb3733cede23bb87ee5118e5b"
+ "be01c3f1aa3a1218de78a94ee8f88d3f787fdc68674e31792d919dbca681a6db1dabe89b"
+ "61",
+ "2116684a4307c67a3d8c1014b33b928a962a8daf86c4031b0c1d47315d74bad7dab2aad",
+ "33cab952e9382dc074d666f1f2ab2bd72ba394a404ce2fd02a6f7a4dc096d713827c94b",
+ "33b2886738d882146c0cd715701fe4e8b94b0d28c73a6b79d2899391119ba910bcbe3be"},
+ {NID_sect283r1, NID_sha256,
+ "f415d0adcd533dd8318b94560f86732c262ad2c6dff9dc83e2435543f429a2158cd2fbab"
+ "0d96c027f71008c4895ecc644c2ceaefa80937f6cc6338d15d36e459a16bd9387a361a6d"
+ "800acfd834ad5aecf442e30b70f5bfa164747cf9f89325b80976052a83a5e896c00c54f8"
+ "1472b14329cf23bec10a8e693005de2a506ba83d",
+ "29639da33f48e4fb0d9efdf50bba550e739f0d2476385cba09d926e789191b6fb0a73ff",
+ "040770f9693777e261db9c700eb1af0b9e9d837ce5eabd8ed7864580bfb7672ced8ffca5"
+ "98068aef01c8126889204aaca8f3ccb089596f85e2aca773634bc5775ee4d27c77f2af83"
+ "e7",
+ "32a930fdb1ba2338554a252d1bf7f0169d18750a4ec4878d2968c5e735f98b9d0c25edb",
+ "30cd65f1097d3fa0d05e1d6072675f1377a883b683c54b8a1f4960f90d68f3ee8c7bd98",
+ "15c61ddf43386a2b8cf557760200ac06a480797e21c92e45e6a311e1a508b03c4d9632e"},
+ {NID_sect283r1, NID_sha256,
+ "b178d86c9335b85e02178fc4551769db589ab91d823fac219c7e14e2f029753b20396238"
+ "9476723832f8d9631dd7764e6dd35da290afa42a794476f5c7727b3688aced848dabc995"
+ "4201578cc7b25801710931f45cba1199d3788d64dc0188412e70723fb25b8ecb67183581"
+ "50c4037b5b81466dac1686cb5270bb1c72d34bb1",
+ "0583a7ecbf2a975a32d07428d27ac82e5dc13d1466c4fdfc1e6a05a8d9a289f1010617d",
+ "0403775ec793ee4bff15027c70d9bb5dedfb7d2e41af8895faddddd4589cc5a00bd222b3"
+ "bb0300f7cd572d82f2f0a2d99a83977ed2034e03fdd76a0267455a524bd8199424ae5b81"
+ "ca",
+ "1e58b1f66c927f4ae16143856d67193d889debdac8eb03936f1b36d550c2f2639e13f8f",
+ "0f897dbc8ea12f4370fcd08e8700e5e4c68dff97495f401d01b782f2ebbe259bc0dcf25",
+ "3c32424fdcca39f411663284658b8f0c1f950f0cea4354f02f4b359f18e3fefac0976e1"},
+ {NID_sect283r1, NID_sha256,
+ "c8bfe9fa7c848531aa2762d48c153cd091100858aa0d79f994fd0e31b495ec662209a9c8"
+ "761cd1d40c3d8c4262cf4dc83c4a2549a5cd477726ab6268b4b94a78b1c4a7e700812872"
+ "d7f41912a723dd9abc305420ea1e1fb1fee41bf643f3a24abd6e8fbf6fde2475e2905277"
+ "24a6f99fd75374bf7cb01b34d3e60d8db33c4de1",
+ "0f817ab1b49131fb9bbe8c112c25a36f064efa85de7506fb9cd29d81b326bf276277f7f",
+ "0402b3a06e07fce1848494d3227ff77d1c43f4ec3c037ad73ffebfebeeae87d3bff7f7e5"
+ "9a075df52e6a34229266ff28b1c217538ae23b3912e4bae8de5cad9b57b7c1c9ca8aabb2"
+ "e8",
+ "0ac57fbb899193b88fbf4ff2c502af72943b133e8d40459a833275212f6644f566f5c58",
+ "3e13307d5fc2b7ad24e9422355150578c78e1c99a6f9a24f9ca2e8bc6856936c5c4af2d",
+ "05e8b77b580cdacc2660e6f8a1877d93c5983d135d63ca0e0b06aa8daedf855c9f661fa"},
+ {NID_sect283r1, NID_sha256,
+ "9a5f563d0f9fd1f31f3a822de628ae970954f4e71292492d727109036491c29e66b9b0f2"
+ "c90c26abe94c08502f5e923a9ddaf6a7d91e9541ce90d0a49f03ce4e4769753d5b7d922e"
+ "1ceaac4b4cfa4262732a09550aa076b8ff9d46a50fa17de17e3b6bd606698464d116fcd5"
+ "f1ae11bf45b0c48d3b738427cb47b0d1272b03cc",
+ "2782af76ffebf3e2bfc0576b70e4f4bb87c762e2bb230d278ce776310a14f5b678f29af",
+ "04000dc21b3be7efaba5c7f9f22591327f0f97083d4d844415d3148d227931256d026ec9"
+ "d401276f1d9e131f13bb129a1192fa24602fb508c9679ad2124e49c70a891777cd601955"
+ "fe",
+ "0255972b5329863f380de945574793beb0430dc416a8f2543330a125ce8d69f72dbdddf",
+ "25bcb54e188aef6e362a62fd88daaacc8e697dceadc8a6b6f804ce4a36856c8da6de97b",
+ "1e12e18e1e281606c16ed1f49804f8cfb33c29b0ae92c072d5c41ee3e6836cf1813d722"},
+ {NID_sect283r1, NID_sha256,
+ "3d6b065721da9de82cb33ec2c27107eb399b1e69ac8fa51145ed4147e20d72e27434104e"
+ "76af988a3bc94f55e36677a05182fe2376dbe38195fc6a30673a4dca87336c7304f3f31d"
+ "49216fbdfea00fd1e105d8b0c13ab11f8892e0045e915c17dfaab07b24ed21b06af5a8ca"
+ "d4f45fbee5a25bb6e87466a7bc422c0bb896440b",
+ "31b827b88f14d3822244809096157df3c0aa99da90c00cd9f0b18dfe306f6881834e6b6",
+ "0407b3ed076a2901ab2625bf05fa6db10a8c156412fd2d26741738f5eeb6a91891575269"
+ "4606a8cc2061352c36f264d23dc2857fbe02af34397ae5130c582e885f50f2c112f141c0"
+ "7f",
+ "0b36f5d6da409c4a27f38ff9686cbf5f4714f4e17234fbee6e6deec97c9f0d4c585d42d",
+ "356911114c9ff9ae4f3a4fcc5379c987b9d298554cdd39ce124f04707e7fd1ea25231e9",
+ "13c0a321c4c5a1e89dacddae38a9b3dda32a20627e53dcdf28ee26a550797c255eefe6c"},
+ {NID_sect283r1, NID_sha256,
+ "d125f0e2e6135567adec9e77da2afc6862e28d618416632ced829d14ee8b61116da59dfb"
+ "44098a40a0b927731125617e3d2f32cfbd1546a6e758c1ab6597e75db07add52ecb61d37"
+ "da2e9ed04df95b36ac249f4cbd794cb561655cbbe4b34834c497b3d392d78ed0db8db683"
+ "aff0076fb6e43acba3fa2b91210cc6cf3fa594b0",
+ "27da4916f1c471cff80bfa14d12aa10270fc3b26caed010c0111f6e5a40d914a3927763",
+ "0407d8202c88fb915446c521884fb756375a2b8d178f6a87306c1c8b67b926e830c8285c"
+ "150224dcebb8a7c46902532870ff855c780b2884dbce2956cd34dd6ffef8dc365b967534"
+ "49",
+ "3fcb1e759418e4539f9be76354cc1914ccf9a111338890eef723431925fa132ebad8695",
+ "0d4d4f23408db58a72495aaec6dc335ce85309fedccb6ade053c23347abdc9e77a81aa1",
+ "129b6b322573dcc79704d08921cb54f31c571573da78cb09d0aab40c4036ee8f195d88a"},
+ {NID_sect283r1, NID_sha256,
+ "b380f97687ba24d617a42df1b14e5506edc4b62dfec35ed9fd886bb769832cec7f9adae1"
+ "0c21b7cd9152588797b4efc6b2b30a873d3f25e683ea9be070dd69731949a51121e534fa"
+ "bfa3a2eae0ee90a454182248bedf2595cd47ad08614177d58f7a773f5023b538f5f56868"
+ "2c83fb60e3fb1aa859948d01bf7b214e7f2dc719",
+ "10608eb51dc0ee97d6e488a23c582ecf0ea1df9a24db77094d87b3fb6ca98507280a934",
+ "040399b3e571caecdfa1efb243323159a45618702600b870954cd614e494bccd70e381f6"
+ "8a02e2fc57721a500611badf48fb435a6e399cea356d281e853f55ef2cf9fc5f70dc8b3d"
+ "a2",
+ "0a8045b4f55115dedd8d742545f9f2bd6e5ab81cdbd318747aebfe9f74b0cbc964b6040",
+ "2d022631bb7e05d316a1b130faaca5af5eac67dd25ad609e6e2a067ff74fd4ba534db2b",
+ "04595f184068433962d250394680701fbd2e2bd613a47e5de68fa1eb83cb08fb425571f"},
+ {NID_sect283r1, NID_sha256,
+ "3f9ec57e4228e1a6ec49df02c58d756515305e48763ba1dc67298be9a1548576c28c82b4"
+ "e9b3f62357d9b3c522b16d5c496a39effbdc8290edd2cadc0019e6b9fae1e61238b13b62"
+ "65ad2ff413a5a0684babdb0013e7632051455e6fd943815213c555dba96cba8911e006bf"
+ "ddec6c3353065004538f37e48df9e339498d85c6",
+ "123f9eb8babed548df08cc3afc1d3b3bbed52b538d4654f2088fe76062fbea75b85a560",
+ "0403b2e980ae7a847394720a9cb982fc1e41f9381b0f2e08b87fdff1bf891b9637cb2248"
+ "5e04a367d593edfaa4e17113b6b1ea3ad185b3155b1bcbd9f00f4482e509b43bf7eb67a4"
+ "48",
+ "2adaba166d703d4d2d431a26200acea7fb47216fd04882f91c5730a55c349770d58a452",
+ "2c83e6a7b4fd48e1ba4fda8ed7891425213764078926d8862d0eb64765ee2900b3deccd",
+ "3561a949d583b7de9263d07ac427bc175b75dc52f43f3ebedf996218c94e51684ed5f9f"},
+ {NID_sect283r1, NID_sha256,
+ "bdbd7b7bf3337bd9d21a3c6db379f95408c17e49dd394e94737ceae889f45dc0ff5d48ca"
+ "dc53703a16b5589939506b548f8dfd34c577c084f372166cbea320c8fd07c809b211e074"
+ "9ea639e68f890affa1569b66bd763c7c710989e491011371eb1d93ed9479ff0216b7f79c"
+ "901a2023e2cf80b565d1c0517e73117190cd2f02",
+ "06a18e626452111922e02e31d662f4301319946a204ae8a34f06b91dd1b5b96456365e3",
+ "04077c1fbe6a645b85fa0316ae412e8dc558c7c066d9aba900650749eb7b14a149ee57a2"
+ "5901b2f3002ff4936653412c8ccb8a67dcae18d78dcf6dcaaa75061013d2134af2c3fa0e"
+ "69",
+ "21bf4ca10d03a93d4675baa26285aaa554836bd0bab6e7fe42600ffe9137d5e304847e1",
+ "20702aa5b5cb45cbe8025b4ddda0a42a1ab746117d45382d018b2055b62791ad91abf54",
+ "12c31f9bdc096236d3ec46c4e6cdbcea47e4fba0e28d4df0fbc19e8740ce6dc0577b242"},
+ {NID_sect283r1, NID_sha256,
+ "436b288512ea57bc24f84fdd117da9dc1858bae8c11637f99295d88fa9d05e3c053a2584"
+ "a6fe200ad190b3077d9a1608f660349dda405066c1562f6897ef69b6b674d6bc11fa470d"
+ "0b96a7cf8f6e098c9ac03b0ef415aa045867ac7c11d16cee78ecf08850ccabf70f761682"
+ "b561d0d0e4a889d840dc74932648ca2fb58259f7",
+ "3307fd717015b12a2dc76ada21442ac1d97519f66898b214c2ea317ab0f0905e819e4e9",
+ "0404ff9b8d60ed177df635a3953c0f5f5c0254224bc48d34329136706d6e8fa1b16ba091"
+ "6a02e50ef73f43ea9a5ad07c6bd68a82b7239534e195ee929aae7788c073dbe9e968c282"
+ "8b",
+ "14d8339f610b348f4639ac20dfe2b525517218f0c71b1908d407603b25f19971a1b5b4d",
+ "2acf3dc4e3569e5038fe97920de626ddb36bf213afa0f939785dec8319eb8321234c574",
+ "01db40fa416527266a3949211fd9fec158412c447c392ed6a7c7f159a1129da864d33be"},
+ {NID_sect283r1, NID_sha256,
+ "672faa156dc188bf16bf8933d65e091c633f294486049ce96a4a403dca28a149f4f840e8"
+ "bef47412285363e9e89006614b013a41baad9885f1d9980cc897ffbd5f8a7d0e63feaeb4"
+ "2c07776efb307ed680ba1cebf470dd9bd8a2a9efc2b1daa569524394f9a50398add1a5bd"
+ "2f7c263f9e63c2d49461acf98444fd23341ce78d",
+ "14f9f412e3c7d770626e800d43cfcbba3ae6aec8563af748e8a97b67d244334b6e6d2b3",
+ "0402293b37c84e7514564635e517bbdb9bda0b4a41217ca64c38e94a4bd00753255b4cc3"
+ "890088c10bd909964ecfe10c373214544c6f60ab85b8f5545afb0fd2ac03d036db7ea9e6"
+ "7a",
+ "19b21a4d73012dd2a2ec3ee280a9b855b89e6ad53438431cdb5d2cec0e5ba21300e9bd6",
+ "3baaac69d182bf1a12a024dbc9a52ba244a654716e2756c36ddf8ca634129cf9d2b23b2",
+ "13ed92730d0a6d75f2a4a56b39f82d063e1be988dc58f0ba5f553fa88b6510116005727"},
+ {NID_sect283r1, NID_sha256,
+ "4321334cc8ee44f1cb392a4b280a95561809dd3639ddf43b6e11cb73067597988d95b864"
+ "3d86c76c3c6b932d9262b9b8b55a04fba0666dd8b8ff1e8fdf799ae3945b6e30d3af3966"
+ "f1a6d634d5e012710d66cb447fc3375130968a2e1e647780aada2609d87247c90338dd71"
+ "c3bcc3902311caba27d5d4ea4d73ccea960d4bfa",
+ "3091a6a8bdac1e43542dce752694972e734dca31c061c7d1000754296d0748055db3f09",
+ "0405c0761d01020a30c478617313c67008a1332a0e6f295c5a9f01b3411eef585a9dafc6"
+ "9300eadfc6f7bb9986b0dd221b77b54287042ae8d1ae5788706b79a354fe785c66145bfe"
+ "81",
+ "0afb2e2e29b26a686368b127e38c2f5726fd55a13e9f87cf00e831d3fe19d9511d07e81",
+ "2685f634a8c16ee79acf62b7a1fb3acaec0db47c6ff5f2c97a804e9550494b128b2287b",
+ "12b545bd76b8d2cdfc5452291d5e4748a5e981c400daeb65c20812a65bbe936bc613219"},
+ {NID_sect283r1, NID_sha256,
+ "2087e22094570d39fa937f15a3ef0601709a66666344186a33b487d041793fbb9709a95a"
+ "f250b1df0762ea98e911aeb3ff1fa19f0aca53fd4179e454e0e91636e55cc5b17cad9e15"
+ "75c82ad265dc34c4a66b7a31ecb9ef9dc756f2ac1d9dab35369a6bad4a0f47e629daab91"
+ "addc6d297d1e5d81477b3966d8c3b607ed194d88",
+ "1195921b91353db9bcd00510efffe009c94f6bd8d790f5fb3e5a0101c9ca5d21c6ef2eb",
+ "0405dd8aa95e24c054d508bc5081546677b9a8e8dad40d3f8a184af7cf07cdb09ffa2e04"
+ "9805032f208dc3bbad6aaab63211e13e17656c750c6c2a6e3caaf55a7c30ae5ba241d864"
+ "1b",
+ "3223c6439db7255e89c28aeb046e906ba79f4e9b8222ba5ec201b964d3666301f74967b",
+ "0fb7e194dae6420ac447e7d4f882da3c4859f53a948833a0a08f918acbe03c2e915d1eb",
+ "2336f1206b46b3166b28918bdc1c817b22ab16b355030cfd635ab3dade20d2dbde08b6a"},
+ {NID_sect283r1, NID_sha256,
+ "15c7bca449a73b03bbfa783f5a91ca0b7916889a5d99d541e2e8593c3b176a5b634ba20b"
+ "34407fbd94ae1c1398f5313cab7402f3bcd7ad277a8c66d09a6df5dd086b20a0a3823fbb"
+ "b80980cd86bd13e527eee15656cc977103e80113539e26695addd9eef6a1f56986168d9a"
+ "53f8b5de833f8962c3826cca106ae9e8c00208d2",
+ "29dc20446e9abacb43823e12a83737b46e6e577466b5a3925e0f9d496824dadb4d4b50c",
+ "0404b3c1d41d8172ba15fc92d9586f29716821ea82274ac8e4fb3452ccca3e34925f1e73"
+ "6c023e22cec962d759bc659841f259de954911aa289e9994bd76a30149a73711bc41b299"
+ "04",
+ "0931ef56f08c379d1ddce0649f45ec21eccf3dcfa178616f45b200a06f82172b91bffe1",
+ "178348d533217543af694c8d3cee8177e22740b657bc6ce6df9e57f0c1f14fc9407c440",
+ "3eb25dc4ed42495b54679653ab1cd4d61c854207994a7318026afdfd44c89cda9247388"},
+ {NID_sect283r1, NID_sha256,
+ "d12fbb82ee7a57eaf76b63fd6bc6c0a65c85f135f019d43ff7bc295cad15d53729d904fe"
+ "d63d69d3ffe8b82c0ebaf0399e2717ece40e011f710b5db46aa457c23b85545953398b81"
+ "4816a1e7a8ab5b0b14c4a0451b0bda9d0d2ec4a374bcaae208b7fe8056bfa17d6b7ffd4b"
+ "a2e9179f49b9cd781b0c06f6ce3eec26cd428cb6",
+ "3b9b77d19a42e9a555da8ab70aa5638890b2ed21daefa28ca6323fc658662dabcbfaf52",
+ "040632fdf8ebbb755c960ebf8fa5d6b679416e488faeeb021c0782352279a7ae00eed330"
+ "94041aa517eff6854ba04e2de6794848823e53ca580353f2b25e45fd4efd3a369cf80fbe"
+ "57",
+ "2450beeca6f1ebac3e82e3aa3239a5031f54ffe65fa6a45e2bf2ccbda448a2cf6988141",
+ "28664212774e23b6513f73a9b2da97f5eeafd10efe742e314f6913a6d0c0e3e581cc6cb",
+ "025bc733edffbc1330689e7aee0dc121b64a72dff19e1d7c5990206d6daae5bae75d0b9"},
+ {NID_sect283r1, NID_sha384,
+ "eab0a37915c6b43b0d1e3ef92e6317b3afc8b8301b22f6059da8271fc5fe0e419ca6097d"
+ "aba213915855631af64e10d8382d70599d903d1535e25cbf74da3a12ba2f13c33a8562e0"
+ "db03edce791f1d39af8850fd1feff0eb25f9ad0a86dfab627b96e65831bffc5f6d9693d2"
+ "0493bc9dd6eb3e9325dea50b055768e8aa30d49c",
+ "0b9f8f3e89e9c1ef835390612bfe26d714e878c1c864f0a50190e5d2281081c5083923b",
+ "040542ea231974c079be966cf320073b0c045a2181698ae0d36a90f206ce37fa10fb9051"
+ "8607e6eccfe1303e218b26a9f008b8b7d0c755b3c6e0892a5f572cdc16897dcf18433f9a"
+ "10",
+ "31789e96e2ae53de7a7dbc3e46e9252015306d88af6bd62508554f89bb390a78fdbaf6b",
+ "0fba3bd1953a9c4cf7ce37b0cd32c0f4da0396c9f347ee2dba18d636f5c3ab058907e3e",
+ "15d1c9f7302731f8fcdc363ed2285be492cc03dd642335139ba71fbf962991bc7e45369"},
+ {NID_sect283r1, NID_sha384,
+ "fdb93afd5dd1e3eaf72c7ea9a6cddb07fc2054499ffe152cb2870163eee71ace5bd420b8"
+ "98cb4fa80ea53fbbaece2a1eef6427b632320e9c97e38acb16b62fdbf6585b54fabf0a70"
+ "3307ca50f86387bed1815a05b0c8991e0743d10cdf49c8facfd7ddeb8d4a7b706b5a29e1"
+ "d00ac88b0ee88b3153185495ac8388cc70104154",
+ "3a30a1c15b9ed71e102341f97c223a9b5ea3e6a335861c3cf407ef691a18cc639dbe74c",
+ "04040937b263c87461eb5d409008255d4e14c54d7a86d6e3eaf2ad9c559f7a6b9d258254"
+ "2b07562e3a04f22ad37a1df0250215c163b45a6bd04a4b96c30fe2e2b7ded5486b172ef0"
+ "9d",
+ "13e745c76b33e6e91f47f8423653b0056014841f4df890121655ac2044f3a6d58b9e213",
+ "22467497bf1b5d29476f24aaf5f88d905be7900406c64033913fc88601c62063a924456",
+ "19cb024c7d6be51d15337a207e66fb0e473956932faf6d755393dd5a899bf63610ff887"},
+ {NID_sect283r1, NID_sha384,
+ "c78e35d1a5b1bbb0ec21e7ba7b7c74c859d88f3e100e40ae34128cf093885dae4e87cd09"
+ "f3239dd8e79e25305220880dd352a650225d9bd193b9b84e488c458b0b5fde1af941c0c9"
+ "fdf952d2fa41f665918dccae27ab7923da4710f8c27ac8ed424992568dd6f0a6c3ecead2"
+ "1650ed162e0292104eef3c2d8551be866a88d279",
+ "083330123cc64c11888c1fd388629d0b329a50ef31a476b909a182c930ff02d0c389b93",
+ "0402e3a3e712676bede22893a8911ad6a683306e86487d24585bd6fe4f2657281f0bae2d"
+ "c80773889a95e9bd579be379fbf84dc8d26d47335253356e5b01c09eb8ed57474d6c0b04"
+ "91",
+ "0d630f20623e93c274239200393cc552d03da6bb9e74f4a44a518e2642e84e761dff7a9",
+ "27b8997fb98ad04488f5dc8ae5dc88b2a3231fca76d7320550c74cc540110c0cee5d8fc",
+ "1824f1050e85d527847faff236b7195965e7b93343ebac889b23425dc27226d50a5266c"},
+ {NID_sect283r1, NID_sha384,
+ "e05435f695997229cce314e50065f3c5f71981988dddccaae6efb81f936b22cb48813f50"
+ "6d1edf5ebd69b0be34f278592c5935f0f6db0cca1ef9d62834fbf3c4c03f4da0596cb4d6"
+ "7b7b767e85dde7b7c6fbef7d89babe6f97b876b33594a9e36ab87079861ee556fb03274a"
+ "d4af527342a4794192b8933f28c6220f954c77de",
+ "1dc2b656c207eabc9e0d6272099babca8d149c9c4258b779c2f06de75f76d77505271c0",
+ "0402b03407b65809825a32ab50f1b556a65c3bbbd65cfcec898514637ce606182517fa1a"
+ "4d021c97e293ec74dee17c89b962356b7bd50c7b23fcc30ec7fdd0a629d11373e28380a8"
+ "c8",
+ "2d0dc9317a2af5a7d0a23c00d126b7fae4c06bda0a5c50462ba26bddf575adb091d0e50",
+ "211c396875b5dc71ba87ff2483b0ffbff60cc3656132fda7422a81964f1bfbcb5ecca23",
+ "0a0ed7bf1ca853b9b19924c706eff373b97585b692b4b535ad71cc4362073caf8f61a3f"},
+ {NID_sect283r1, NID_sha384,
+ "0f9f36477076c4b5a7d1ceb314a397fb14646695b0803e36e98908c8a978770269f165a1"
+ "fed8f4b655d4efd6ad283d7f5d51b6e1e302d360e8ebf4e887c7523a757ffd55384e114b"
+ "bfc6b7a0ec8511079507b919065ca018573418f9e394854c5704227772161707b4d0246e"
+ "bceb91192f0eb2ea994ce61fd98a6d14cc8246c5",
+ "0081772348ff2d7a3fd57fe703555ab2e14f5d203c4cf0292f944e827e884d95f3b1d83",
+ "0403f7174e88ffa8bc0a770fffa4bc30a436fce331dbe7154f6e2fc0cdd09e76840f089b"
+ "3f0561e6aa3feffb2033ea716ae94b9a7402bccfed1fc4a137cb96fcdfe4685314f73a8b"
+ "b5",
+ "3a8c40754ef7ddd0e289b2cdac5e06c72dc3d6ae9d0351d9295aedfd6f0e88809674bae",
+ "1443b46c0e6bce31642dcf3037e25b6ba2b42daa9a83f5c0bbfb2487ce717c37b91f46b",
+ "3f59d5a925fe19c795b4992c265a3c61b2452237eb34efb9aba30208ce07d1ad47e2279"},
+ {NID_sect283r1, NID_sha384,
+ "1d38b1c342b6611dbaf412a66c1c0b8397692755f576df33b31c2bd12b7f0707cc423376"
+ "391f7b00aa4e7b7fe54532e2b39c3c5284b9c8ccce48eaf9308ed338992f1d4ecde6cbe3"
+ "52e46339d7d602942158387881d9b493fd40cc59d4f9b53ee4191d42352c6f7bf32c331f"
+ "0c5afbd44a92901a4b713c7cf6ccddf7de4cc6e4",
+ "1eb6bf2ca1b5ffe6f6a795733eaeed12de6e87c53571e702635b9dbd0d96b47df4a005b",
+ "0400e64dbc1a08acf6ff0e820593cad79a46e3bd818ddef5ca0960fde799abacc7b840ed"
+ "db06115d3de2bdd011ad053550471368581a5f125eb0d32090646fe4407980a42988e551"
+ "aa",
+ "3b28fc6d0e4a7fc449b811b78900fb9f89885f4d4f70cb5a2b3d4f8ab87bd5448f4bfd2",
+ "2601923909c8c953087b0c0acda57d8c01f814dc9722171d8409d0acd2fa4d9c1314693",
+ "3eb316cacba93bd473a4b4acae4f2b5a5b2ac9856519032e63a0c718698956e8f35673b"},
+ {NID_sect283r1, NID_sha384,
+ "3353ad05ef90e9762bcfedd6ef44a1e8ea0392ebef30cffd48ae620f3e567e1cd44882d5"
+ "14e7c6759200d4bcab18afd3038c3d3f8c50f7bba32a04eee5a4b1cfb8c349939e4efe0a"
+ "46fd047d02ed000d8fa1b98b0af5586f120d9ad174b3aea33905b979ece1eb3660b1e070"
+ "c8821b32df41904ad68bbd8ed247aabd94066f16",
+ "3b2a3e65e5a306bf8e3955b60e856dfa9bf68c1275a678ca056207a0ec67c96eb3f8309",
+ "0402c542cef892b06372af7d9c321ed5309995c1cbbf1a466e70bd30f3856ab7c5d18f4e"
+ "3d02a8acdc12a7cc0b54f4dec9cf61c484a5cf86c4cf6cb5ed615479123ef1c6ecbb6c7a"
+ "e4",
+ "09bb5e49188621466440a0841b007525000c2203d9821f4c6afab63ac2b97cb5e2e3dcf",
+ "00a09da1c4bedff47945898f4f4ee9a0857bb56be535544aff9d729ae44e23d678fc71f",
+ "2390be08ba0861b32ca35ba27a0c8dd1a4e96d28cb007133a096b52afa0126bf2a2abee"},
+ {NID_sect283r1, NID_sha384,
+ "e7ec162185fe9a5803c6b03d98041422315ccdac67e48fbd07a1ef3c5661158710abc679"
+ "1bd0a75d56791b4ac0e7695d53c5989d9fa6a3b037583b2a80d2b154b024f1c36b63548b"
+ "e9afe1d51f2f68b2ba94d4ca1e69a35ac10e15ba72242aac20f7526b12ff9d3cde9a9bfd"
+ "70d55adf9bd92c66d092d7d08e9764c84bf7f329",
+ "1fd4d1af0bb7c79ed5fea7bb45574e46534387bd916649485ef15207352d7302e81dc01",
+ "04077057d3f93011440a78718a3cfded73e4196e7fde96e794465c51be8b679f912c10ed"
+ "cf059873441c590c43e0f00f80afad5b0166f94b62214ea45da29174874e44356b29eda6"
+ "b9",
+ "3f224b35737e78ec5bc9b081a601d8fe19e33b4787449d3353d2ad225358211cf9f7f0c",
+ "1a7bfe92c30ed1af478282786bdf7b5b89cd0fdba5e534bdf13899dab5af108803d73f6",
+ "2ba14810de4f5cf48b56e94bd6c439d230dfced3cb698c77627f59faff0ac5a42c43067"},
+ {NID_sect283r1, NID_sha384,
+ "87c8f2e3f4fdebce0ca9300fc1ebcaa934f51a12b6b8f2cb6bb6eb77965468663044afeb"
+ "2a1334cb5a81e74b8427267f8b34b5e9ff0cf157a9f18be2b1942e32ca61dc23ea13c3f9"
+ "fcfa16df8fe05e067938b6994982676463fb12842d4ec532cb904cf222aa805dd0d86ab9"
+ "a33a83e294c6d81e8dfa273835e62e9041dc8ff6",
+ "20380b1136b5283e9b7f54b7535ebda33b129ceb177bf5d3d07b1daed5edd9fb3862530",
+ "0405e7d0931db006c6abe04671d1aede760f2b1ac5c866570f8e5a24ed356fdab49cc5cd"
+ "ea07004920fdb0a744cc545068bf82bc5d7a46edf9265fd7c5979b9559f5421c9a98f6db"
+ "89",
+ "3cfbb1204caf6011fceb8d4be987d9a41b81bcdd95b94919b220647d0e7a18feef4cd01",
+ "07096beda28c20d2e62d9b0750142d3d21b54c38c7fad1ed65e4f9b386f3dcfcc43a3c2",
+ "3d0af02aa39e329e4c39f2a1d6797f0e3d14554dedbcab9abbd158273a3c7116225abab"},
+ {NID_sect283r1, NID_sha384,
+ "2ac53e8a50c4afe3b38904255b7cbf150c5f79dc15932dc0ac9aa631521f68a0d4b6bc5a"
+ "04d55c99a36531fd4886a23a8d99f262ecd2a9feea925d7a96ebe9b6979a207b7f9378af"
+ "be404fc8e959b0333572a2c911f8743c0ba64eebc7ef12fe5435d2cb0e5091ae518b6e42"
+ "33489efe3c16c6f21abf4e2c6808b733914e5a7d",
+ "19f815b98836948e0a0dc9c30828c31b13e175f1e79f23d084ae1bbe64823f4866214b5",
+ "0405109d8ce934972f5520101730d0a14b99213ea17772e3e7637d622a5de13fd2ffe3bf"
+ "fa0502927e0c7baedc4bb3ed2bd1b15fd2d06dd43424393b246dd530d5d8598b56dfcb3c"
+ "b7",
+ "10359d5cd8a9b7532c9902bbf1cb83d0d34bf37e73e7c0f5729b62a10bd4d8faa0f53a3",
+ "3503410a6feec71fde2feb14375d50f99ff9a2c8bef47e676bcc6c3045efa9948891ab4",
+ "159b1f65fd566ecfdc08b87e4ecf99ceea3088a750e2c3c9d868bb432de6a61f289d06f"},
+ {NID_sect283r1, NID_sha384,
+ "0b201469cac4c078f587edecdcdb6efd5752cb4a3f43ab540463c4d908c27527aa3592f2"
+ "f9acad85dd94a3c056bd28618317ebdf2e7dd6c5ad26fa3c31dd8e5c50c60418d91c93bc"
+ "bb59ec1adb1db791f485ded78a5cdcddd23dd1cfa4f13443468d8a5f2d648059b9c4470d"
+ "0f4fe7733d56a28a2c24456b6923703ef32cf0b8",
+ "01854e954654e726cf4bebc0e5a840e8809fd716059211c6ffeaed36829808363164684",
+ "0407a6e7c542860e815d3fa24fbaf99989e8b9c812b08399056ae4f9a850a6711a7385b6"
+ "2200dde6bff33891a64744dce6456600f5a6a11049906608e77f8afc38b922972c805af2"
+ "58",
+ "2c9cfd376903122625c7fdca50e93d4c216f0c7d07f33b3b51e54e666e13b67dc89d290",
+ "18321f9ee35d47648060213df1275ae89c2ec7d17abe8093d8a431ced23aa61d3f8df4f",
+ "09e5a05a62b006a7787c97be38df6fb9fbc1433aa2241b5a788fa727229a18e07d7a8aa"},
+ {NID_sect283r1, NID_sha384,
+ "fc5e4dddf4c4a328b685035ee79069770fbebcc56c14e31afb4bbcdd5220e025f31eba79"
+ "4fd6c05e64f19678dab33ce4f084bc32790392f14bf35669d75b6466b4214ec30d58ca90"
+ "ae285c9058f5804a1fc9d7a995958f2a0e84ee52e8a78b601bec04ab607ffc2091749cc5"
+ "48c6754ed14e2e5f92315bdacaa7a12823ef76bf",
+ "3548f8020819588b3202f4c1ac62eaec6a47c2a19b2900c5a3cf5b4ba5804231141c647",
+ "04038563f2482a399bf1c13f42f8b85ef64a3599c22da9688b97530718bfefdabca3ae86"
+ "3705c4aabf6d8a90af345008d5a244d0671cbe1afd08000c4eb37702a9bcba6dbc058ba6"
+ "da",
+ "32649876d776117003305f0ec9cdab5cd84bbdc747d3dad5d8d54a8fdc84d519d50df45",
+ "1f5160851981772c502088eef209f7f89a7c8ab35e630d16330bec7723e398fb37c84b1",
+ "073a7333a7037e1257d4d70be87c30bef770f9d728dd7e2615d47b399ec650aedc867c4"},
+ {NID_sect283r1, NID_sha384,
+ "284cad790e6207e451a6a469cee3befc3ec43e047cf91b9dff1485718aa29de36a43f7c5"
+ "1eacd8589f0c3a96ec18e8ccfa92941b50b2132e3612d5b45e16f60d411d1c53e373e1ba"
+ "451352e28970ada9dcb9802102518a385dc571dcf6900971b00346098a58042e0d1d129b"
+ "d6801fa640a895a458a45b31318fe63ebb30c6e3",
+ "3cc4505005c41142308f1489226b7b542e2e7f24f1d3089ff6b92a4b0013f490ad52e60",
+ "040280b77ddc6648d9cc3f5557d406ea2a089c8179d4320781b2eb76ab07fcafd2535b91"
+ "de005f23bf4171aabbf0fd50049aa017c0dae70b065964c685bc03b958cee2fc3249149d"
+ "31",
+ "2ef488215648524f6caf85233736eddcd9d1d838c6a2799c3a68580492d40f9800bd119",
+ "3e8e13db22c97281307edd4037f0a75d2c70a070614e94e02c860f36a53aa738fa0db2f",
+ "356f2651b51a6be0c697300a8c2641bfaa1795397eac208385c3729248e36baefc173ae"},
+ {NID_sect283r1, NID_sha384,
+ "6d46e57abea9d115deda48b69fe8e0b36144df2f6a659509ce1b514c8cc4769d46e5f71d"
+ "f2a084f1db4a22fdd3ef0c2f90394f2898ce291b9f279c0664aa01419f5f6bee1fc12998"
+ "71b27ecd57a5ac548f99d01871b8c238a6b46044c953b2e78e22346a0c7663af4db62799"
+ "038ffb5c21ee512e26d01e70a4ed967377ab8405",
+ "144a2fc8e0aa63506e14e4307df36416f963dd9da78655832f5b991af8c3eb97df78efc",
+ "0403fe8867b560bfb21dda517b8f4d50578a11e1d0ab7ed4ab3796580d31bdf710e8e222"
+ "8405a302baa3795e2d132c55d90858d14d4b17aea0ab70632b135f94bb23112d163357f8"
+ "ca",
+ "0b5225132f19419715170f5a3f26919b4127a05b4f0406f895af1e4bba95786daf95259",
+ "0651d17b00ed9a06bfc6a913883b5cdf51bd5f2dd22307cc5ad3bb545f623516232bb6e",
+ "01128d4784fc0fc050af0b97f859616d764b22f40734ba65aa15e2cf80e7bba3d15f42f"},
+ {NID_sect283r1, NID_sha384,
+ "dd750b39bd8753f4e473c4484e2b36ce2da7576813ebe05861c339ffae1d029bc793173e"
+ "d394091c00685ad82f0550cb21ed1c68f0c27cb7396922239cfb886647af204e88a9101b"
+ "7453a8ab662e270b87a8a13f2fe61d695597382cabeb781933bebfd7d0dcd33f77266e43"
+ "e32d937f2dc89f67525e522977ce73e9ad36c8e1",
+ "24ffeaf139043ff25a395e4c560c7680c1c2155191378917eb25194136b4a69597dc277",
+ "0400402bf61c0e36385e5fa8371a553ed8652466fdc3ed9d4a3ce1bcc567d1f451f6703d"
+ "d104dbea6f67e1117116f30fe42e84383768b0da770f8a2b4cd8a4fec330a0034554a138"
+ "08",
+ "3e4e78f012eaf1778c086a3bbd9e996da0ddde651236ebdb6348062f56b36f63a901561",
+ "1e2312720f6fbf44d7a6449a7f30019c38e69f2e6424d4bd1054f40798e9fe58d080b86",
+ "379d1b610a976730dfdf3300280f1c61109ad13c788e8f8f9a8d5e0130ca9482ee417da"},
+ {NID_sect283r1, NID_sha512,
+ "4736e59fe5812f63737eed57a570182c065538abd9fb0a1c9c2059199e7052ba57d84b5f"
+ "a1cda2ad9f216610361ce1dfb9334816b6bea509283756a03aaae2e5b0597f492d078b6b"
+ "015a40c9785dcc5d2ae266176980db04f5cffef40e16661a50ef871c5f531d73fd5d114f"
+ "a19bae9dd2da4267a131fc31849da38c2b78d1af",
+ "1d1f2e0f044a416e1087d645f60c53cb67be2efe7944b29ac832142f13d39b08ac52931",
+ "04010b2d7b00182ee9666a6a2bf039c4358683f234ae41a9e5485fd6594e3daa880c0dfe"
+ "0f00a419b2f40e573dc2dae4b22e6f56e842e50d631b6126153178585bd05a8b9e6e87e4"
+ "c8",
+ "3e4d36b479773e7a01e57c88306404a46b6e62bf494b0966b4ed57e8a16169b9a1bbfe3",
+ "30513169c8874141cdf05a51f20273ac6b55fe12fa345609a2fede6acbeb110f98471af",
+ "33fd50b214f402deed1e20bd22eba71b156305e4f5a41ab9374b481ee344ab3f27f4bcd"},
+ {NID_sect283r1, NID_sha512,
+ "e573fa7d4bf5a5601e320130de91f4ad87eb7ca6b8998488afcef69c215b0cccd221b8b6"
+ "6eb0af9d699af9ad6c4b4a580e82941f31e4c0a9bd83995dd076c5ac9bebb34481061e7c"
+ "b1b26f6e8c6b26ee4bdf9887f7ae2eb9fad3115a21dcc96acce85d23a040c0ebbe0a56e7"
+ "5714dbfa803d6e279b2f4280bcb993f96ba321e1",
+ "1337362609df74d25f7adee382225e6a04dd6ee4c6b45fa31499ce9edb0ec046325caf9",
+ "040287b288ce6f65fed9f95c99fa4b8c1aaf6de65ca563df30ac67c1066d2ba2f5a554e0"
+ "9c025567fe183dd400d256c333da92dda2e364afe84492ede9fa0e913ca7f12069b5a44b"
+ "48",
+ "31b84ec438302155f2e84dd118c0d8479267f8d19c8c5d96d21177e20b23e0180dd6d33",
+ "08133e49644044bf9ba3b4c8bdc3973647d650c58fae4a7ea5a5fffabafed56e759010a",
+ "1d8cc410cd04b188418b20cebc8f66ab0dc29a42f9067aa2926dbadee39abce79deb396"},
+ {NID_sect283r1, NID_sha512,
+ "7862864d0d78b44e2a28af44a0a16d8e9b1b8c4b794db0410c0a863ba011018ef43e1e11"
+ "f2fcda2f56fdb2a69cc817df425c9cb3b458922ba00d710190cae16d61af3c304a42fbb3"
+ "d0c4a74a297253fccd70aca414865b41f68b01c561be281265fa89f63f975d3101334886"
+ "e85929a5a47fa8dc459b663548faf8ed7484958d",
+ "1be00aa0afdfe92e24a2536594d4b41701ad4dfb223aab35ff49310bdba7566057fe8ac",
+ "04013583d8cd163fdef7c11e91f36c1d3eb2f7957d219244db883708a7c5777611b00668"
+ "1207a1f4df45073b838277d8da7daa7147b0f10aa98b5ec02fbbf97c89ee17f3a7ab4f3f"
+ "27",
+ "26b42f369ff9b2740147914a2698cf1ec9bab44caa3b5f05957ceb9a32073729aef0fc3",
+ "37640dcfa11483b3754ea027f5f239500894dda4f4c8308f0623db256eba2113c41ae61",
+ "2096767a1f8210b175334fad61b4c7fb4e2d6c7811b5d22521af7750f101077e2fd4e44"},
+ {NID_sect283r1, NID_sha512,
+ "e73c96d1a84cf7cc96065b3c6a45db9531cd86a397e434072a38d5eeb9a90f62bf5d20ba"
+ "e22b926cfe967647d2bbb5dd1f59d6d58183f2cf8d06f4ac002ead026409ca6a1f868b40"
+ "6c84ff8887d737f65f9664f94801b2cd1f11aec336c0dbd4ec236d1cc4fc257489dc9709"
+ "dfa64eae3653ac66ab32344936c03eeb06d5852d",
+ "12ad0aa248db4fbc649f503e93f86104cb705d88c58e01d3ae0099590a69aa006aa7efb",
+ "04008d262f57f9528d55cc03c10bd63ded536bee9ecc617221d9892ae1a75b7cdee175cb"
+ "330754e40e8823e89fe23dd2748fb74e9e93c3b33f188f80377a32bc66f6a92da1804c04"
+ "cd",
+ "2405a351a3bf9a6dd548e8477452c4d9d719e32762754cd807a90abddd3ad380e197137",
+ "28c5d807ea1c3ddb7f2c90f3af644c5d6a2757336ae46c2c148752a2fc150e8183cfd83",
+ "397c8c52fd67b99792229194a787518db5be8e8c291b1a30e105b00f108ce41f8ec8fa9"},
+ {NID_sect283r1, NID_sha512,
+ "a73fb0aaec838d011110d49c5e94395ce07408917bacf7689d2cfe0948c582214b263c6b"
+ "80e0a55f1e159086817605723740569eeaa1bae96b979679165c5c35ef2142525e943e59"
+ "5e6b4b160acd7ebe41de19775346363f779b1f80b6d5f0785b92a648028e456af8496102"
+ "d19dc6526247a654bdae3368f075fa9ee92b2f4a",
+ "2cfbb8f340cae8e2e2322829148981cd9e509b0c65497fd8d9da5dee9dcfd39b0f7556c",
+ "040260bb17da74429f049f3a7eb73fea9cbeb5b14ce553d7772a365376d0114ed2ef3087"
+ "d005889e41bca54c09be20dd406a6e1f11f9d31d720e0c4e2e88f381ba89a97f12fa9faf"
+ "f0",
+ "3fd7cb455cd97f7f9cb888444f39569114589612b108657ac59178ffe31a33569c9f0bb",
+ "048a10915fd3bf9ffab1cb13632359466ccc539128cd98c6273d5d8d26c64d57520394a",
+ "2d0f67f9baffbb34094c5fce36f47cb73a537ff984c89e38d073678c21148056bdd6893"},
+ {NID_sect283r1, NID_sha512,
+ "eda775984c7c9f7db47af30dab314d070fb77e9b623baa6b73e2cbda800f167b20fdc2e7"
+ "219391efacf908f4ceed9b9b6bd3541b52ea087177e18c97391214758cf6455311fad336"
+ "ab56cfdce57a18add8cf85b0a0bd6fa7297dbaa34bfc8585b0f06a0aae055186658c227e"
+ "19cddb65de88d260f09f805c2e8854dcc524189d",
+ "070e82a1f3fa6158d15b7346dd56150faee5c98c9d07c996e01a06dc9b211b12ff62d60",
+ "0403d3ca5fe316a0820e84a8bb5d231bb14c810a87c7392d7f960e7cecacc56c337f88b0"
+ "ea027ac0ded5633a98ec5734db9de1399c83a181d522037266d856c83e5c8047c4eff2c4"
+ "e3",
+ "311b23487750c3c4b23b28424c33328c39d6f594d2a9b459a883508b985d8aca039a2b5",
+ "1465736c3c9e30e895b1544690e05108ca221cf2352ee4af1b5ee4130029a82b277b076",
+ "2819b94dca3a58cc5a96790871640fe0fae38883de6fb4712126c1c1cbfcb0c005c5af0"},
+ {NID_sect283r1, NID_sha512,
+ "a4a13e0bfa761b9bf37fade6570d41c161e20558874911ff3bee38e5649849b159beccf3"
+ "21c6bc7243f99c01a2fadbab9e157e9952ca65d8ea676c74fdc976d00501c626b8465c6c"
+ "f0e4fd1a7d1260aea987161b821528b0b423e62ecc5193a0a49442b0c3e4ec9c4786a3a8"
+ "6b199c07dd3a17033d430d2c83c100f54e0a7c31",
+ "0b471bbc5f7a07996e370da4a09e71e2119ab3a562a273f079401951fbe4df39a4493da",
+ "040333e9d5e077bc64d022e49d5d207385a19282aff1b73b307523b0f861b4ce4219308c"
+ "8205414e431f3b90a2d4a454d073cdd81f8b224180ac4139104166ec33ab33d079dd147e"
+ "bf",
+ "3e431c39ef6f4b7674a1bf414460b58998ed7aa5b1af7ddab746cbcd2ed9f42ae3827d8",
+ "151df78c0f453d396d71528032933566e176eb7f6910fa9df2e9b2f5ebb6038777ef209",
+ "08a1c4a1e21cc63fc15a78f0a11a1bc7a59a5a31f57091a12896fa670dfdc05c04053b7"},
+ {NID_sect283r1, NID_sha512,
+ "7ceda7a7248640f7055309ae712c19d741375d6a7e0608e07f0135bb830dc3e8863ee9e7"
+ "a75331a5e1bd38c42cdd484d4f45a26c2c1d4e05ce0d0ca941f4e94ecc6b371102f31633"
+ "629e9861de558bcb6407d66eb91f1062ac0e0409db68b9f2855296a7f42fc92359a7dae1"
+ "6c73fd2dddea52bd866a4d501aedd8fe3b3ea733",
+ "3c65cf80bfb507dff52f9bf2f93df0642020d41619b3990009409e7210fd7130ac44ffe",
+ "0403beb5b9b8785c5601093086b709c0a05955be42eca3d217e625349e5a875efa82d75e"
+ "d4007cd4e64475d628e6f562f0ac9c3f91075626063a52c2b621796e557799ab2f1ebf8d"
+ "bb",
+ "16212ce91eed7153fef806d2561912be1d988410641d5eb72d586cd4e6782deae4538a0",
+ "26ea04dded2cbeca81e75503932982c7fb5cc7d38a45a3fff8c4ed7f844dc759d8da302",
+ "061d3756e3da1c7816f0d72a8c84dd1f3b93624b631f5051c801af4e472fcf82d896c18"},
+ {NID_sect283r1, NID_sha512,
+ "609815edfd58c0e26a4b06dded831d2f33466a130754b96d8d7c3b4d99fd4b0789ec719b"
+ "c25338d0ae8c5880560c02687d352d77c291e406eae865c3b26d00f2e63dc644ce7e01d6"
+ "e96ceeac8bc1eeb257d36cbb25d89b5fff6e30b6051506a0ae54cfaf6214f30985d54cab"
+ "78f708029c1fc0175bc58e888db89dea8d300abc",
+ "0f4d33a9c7e6744ab3c441828bf0f1866ae1c042cc54abc754e3801263a96cbb3955dfc",
+ "0404b925b97bbe67adbb6e918acbcae0ced8dcf11d012e1a97875b750bbb7d01945bd64d"
+ "f304591cc9caabc0db8fe9047e6b1f8d850ac4389fe67bb84f6846b631dc3524c8dbe6a0"
+ "6d",
+ "0483aefcad5e382351125b333dcede8ef50914b1d1f1843b075f242acba18c290c742cb",
+ "1fb791c288e2cd52d3837c56b02fc99f53a6ee27ad6dd9c0a31ca08d8fa64eefccc5c87",
+ "0a041ca35422d8985c1c706dcb0b8ece64b65285bd0a934cdb41fc08223885147281869"},
+ {NID_sect283r1, NID_sha512,
+ "82d8ebba707b72655497320200ce719520c1ae7f46f38122958fd99322c25c9f4d4344bc"
+ "b77a6658df0eece5df163412ecdca58475d56b0c2d14a0361e4cef458df146925d473a43"
+ "692b15e9bbec550f1bde3444f2a5b2ecb55d2abd273ae999f16a32333529d94455e485ca"
+ "4585e6b07bedbfc2bd1eb766abf0d28bdb1ae6ec",
+ "3a4824bdcea6a144d85f1b194431724cc49849b6cb949b4766d641ae95477d1ec3d1464",
+ "0402c9eb36eca01dc2fe921933f4cebe8046b3679abed80d2f8fbcf8f254bf17be3d551a"
+ "56034c836aa4e946425fc9f49f3f62e33d8a0afd320292a34d0ef8bde8ad79a10e3f95f2"
+ "f1",
+ "23d8725af57d835018e8737fb4e8b2eed3ec5a83fda137c710fc1df875416ff82fba90a",
+ "0d9f57ba8b6a9a1cbba67adfbb938211ed2d267468f79ad39ea1eca7271d135bb67c18c",
+ "0f09a600d97c69ab521bd1ed6bcf0c0f69255c334e0aea06c68bba81d53e810cc553c9d"},
+ {NID_sect283r1, NID_sha512,
+ "9c6fce18a6a96349b10c9f2f5f1505c8ab727a650b44bc0782a5f39fcb48b45fc7c1b821"
+ "80d5f229b8abfc807071f931d333d265fc940c93fae7520d8d40ef59d7c6e3678c6a2ecd"
+ "e52b6a8827b1ffc6ed269cb9832feb20e593a7e3d4708309342875199eb2ffceba7ecd70"
+ "7b122516c815e83e27872eda812e3ea52ee3c4a8",
+ "27ba543ea785df1d53d4ae4c1bd0a3a994cddf0c25d2b4e8ff17ea7aa00619e858da1a5",
+ "0407d375a9e78ccee85fd795e3fe6bc07f50af3456edda1ab00303f6de6b5b02fe09859c"
+ "63008d0d54ab9a239b5ff955452b32bfd2372fe095751bea4b56d52f79b4fda0fa635f57"
+ "f9",
+ "00ee7010af4a517502cc5d5433d98916f6750e8a9009ea04b8132268673d4a02a3e2031",
+ "3c147b66efa47a842eb90371eeae907f0c813ca0937e488da95ff8ee16d389f3ab902ff",
+ "01469d005eacd9ac84a140c93ed0aee09083a4822730a28df35058cad29267eacf03968"},
+ {NID_sect283r1, NID_sha512,
+ "5eac15a64c7653d125605869012b8f036804817aedacbb5a5248a595ee0c12329f91e817"
+ "9c187192d3ed0d4ca2e202d8d4d9c93ad3f3ed931121c193af5b47a8a5dc39775b6c2d70"
+ "2708e5134f77a31bd62eaf87e39e6fd3f2b9f782c3057e162dd53b3addf92bf0ab99835c"
+ "7f6649abd1c5322a1ebb2ba313df9464a74c14d3",
+ "0708d0907d14dcd5f40e2903e1e90e48a0ffaa6d4d9b84ca14df4e985c294f74eb9f2d2",
+ "0406fb0fe1c3d5bfee5399c98518bc3ff135e0c351243fa0540717a9b1f7990eb8cf4359"
+ "7f05212fd4d6a50c08cd99ee5988103fa639b1123c878d416cc553639bdcee1f8e927bdc"
+ "8f",
+ "151465f40204d76f3bfc2e4052549869c19da82c678c332f536ef24567ea034358866c8",
+ "0803d3e8c876d46a9198f2f769faa76c4f66bc5ff4298b9640ccb8e67ff8d10f86342c4",
+ "00da3344354114d163d14d4c288785adbf9a8b31371c6e4420383c80ba0a430019c6acf"},
+ {NID_sect283r1, NID_sha512,
+ "df735a7e60bc267b18f313ad56bff830be5ef119baf43ce27c6368ff1dd89f010afd4f48"
+ "740b11c12101c5903bfa71d6cb3d6462cf875bbd55a570ffedf3564088dfe8c8d3148231"
+ "b78b5adaa6c53696737d4704daa59eab8d986fc6e519e81540f201e77b923a6a4af65d71"
+ "73635b3b19b2023022186a7b8e869e1ed51717ab",
+ "21fb0a6b94080da8b8299b87457dc09d21bc430ba5f3359d92aacc1151be9941739567e",
+ "040179831c55ead3d11844fea2e18d25cd4d658822e626550aef1afe37d88aadbcc9bfd6"
+ "66075f8087d759ede340157667c1bb12be272b8318aedf2e8f8b487f4bcd12a50ca66f92"
+ "81",
+ "37833e9aab843a6b967264fdb705b419ed63fbb09c12170491019acc7c21b9ee28a00ba",
+ "1c9601440d109a3f4eb69a1a669bdaab9f4222a34a04ace8ae313b10bbb66811bea7d5b",
+ "3d2f9ad7595dcff69b65f035ce600f2667f8499d3bd25f789d3f3c1bf83d2855f68eafc"},
+ {NID_sect283r1, NID_sha512,
+ "bb107b0eeaf175a786a61db923bc6d51dad5e922e85e57536118e032167b197b1a1f62d9"
+ "bbcde04922fde781665c1094181c16ac914cf6fbbfb27bb8346b2134f05c55a8c6b9b481"
+ "273758e380666d6e22c28577c29446cecc5c3df9ed9f1be060ca55ab2b7fda36a147aeb4"
+ "6df0275bb923e0876b703452fab42f6b7ad2ceb0",
+ "2c80151f91301fb6b0c7685bd172f20515b46bf94dbc4160d0720fbaedd40ec00084447",
+ "0404a62b0c9749ae9ff00dc1d50d2b4a4941741abfdf13c8e416549ea27fc26b14f191f2"
+ "4302c9cdab7c6512c322bd200167eb9657f8e8c84864b57480a80a3c6efbaa289ab8cbe4"
+ "d8",
+ "3df951f8c4490fc7c2d50a72a93e0e82c5a20be8d91afd890d6846bfd146169ab58b382",
+ "1f2accc7f7c4b5f877e12cc17b227e1ba110577c9f4e1785e6dacd8491bc6017129d798",
+ "27a167e6f2b43ce9663b810ed4f8ef15029fb6f2be2ddf25c014d844953f501d1dcf6d6"},
+ {NID_sect283r1, NID_sha512,
+ "f47e49ae30b09b7666600b7a95e81b0afa1553da5e01fd917e4ce1b58dfaddb8dc8c03c0"
+ "f5591f533610deb6a7bb5faf5dd1ec4103a587a1a4c58a110a706b0f301a5c408b3d984c"
+ "210d5b4a0b347d2b5447271f25b527b3c7864f7cdfa735dfded47c63b723fa0f0413c57a"
+ "24ffde9a95c35f743f892ab1ed1df704cde82d9c",
+ "1538abd7ce8a6028d01604b1b87db3aaf720e04220edf4d1d28c2d731aa25f509e58f2f",
+ "0403076b5c3a12b8a2e1368c7e3458458dd7ba6c5a6dda8c82cc6b30d1ef767d36e01520"
+ "7f0369c7a80cf01e9f32c08f9924db08a7d0dfa5e9a8e0e29b57f5eea8506841e6e3da04"
+ "f0",
+ "3f0052ba6ae6bd7a7aeb077a764d21caced6b241f63616ae4e4f0d98d2bfc0e44dca592",
+ "01281bc0bd36ba1f3e1c262d98ddf4e9bf1d80dbf97db02089fdf1d2e625abb5733ec3d",
+ "076db2215d9f33054efb397c449f05db198d38a24749f046ee20032f5899dc142052e37"},
+ {NID_sect409r1, NID_sha224,
+ "f2380acb0d869d1cf2e25a6bd46ebe49d1c9270624c5507be4299fe773749596d07d10f7"
+ "c2be1c0b27e86f27b4a6f8dff68cfe5c0b4c58dad1b4ebec7bd00ab195fdd635d9fa8a15"
+ "acf81816868d737b8922379648ed70022b98c388ede5355e4d50e6bc9ec57737d8843fab"
+ "da78054e92777c4b90466a5af35dd79e5d7a81ce",
+ "0beb0df3b0e05a4b5cf67abef2b1827f5f3ada4a0e6c3f23d698f15a3176cb40e85bf741"
+ "c9fbc78c9e207fa7302657527fd92fb",
+ "0401da1761981a65cb5c77ec50ebf7acc11eaf44bdd2f70242340ec26ffada7a4b5f661e"
+ "13d6e7ad341cd7dd1ca491cb7a0b580be3019ba11e4c4f2f5507d6bd2aa2f96b03510a03"
+ "d5f8c38bcc8acd08080d9effd1f8ae5a5586603b2e112964514c831bf786b2fcb2",
+ "091e575fc79444fd2d9021bc267a1a076438d73464726bd0fe4ac2884a374e71bd462b15"
+ "16b3e97c3202854bd0a286214b9e92c",
+ "057ab9d5cf4d18f05eaf17d3b5a4af96c3eda8ee48acf5e02eefdfe2f542cde32a37c04f"
+ "285794ddccbb14383a645db040bda81",
+ "05275de4157b32723366a0d63831e6512241e3e4416f3af02e22da8faeabbddd76116030"
+ "4927a71cfff4d6e8937347c9b78cd3b"},
+ {NID_sect409r1, NID_sha224,
+ "22a97fc0a9694dabc6f274ab52eb592dbbe8beeb646ebe6cef60eff341a13017eef980ab"
+ "a6d24ab3afd976e2f6a84cf652654d4a54a36b2f2f62fab8858f8b0479a48fe9f47f8fd5"
+ "a4a1f3141a91cbca186507b2bbfef5e4c4d2df525f04ef7c4720fb443ccad540f03a2be4"
+ "68d88c9545d1dad579fd7cbcd103bbebc9e9f961",
+ "0504865a30984a9b273d1bc289d734d10e0aa56e93ab14720f1a42a27d8cc932cb8804b9"
+ "63175de6fe57d8eafa8ab7ea0592dfa",
+ "04002de5872c40a79d5238722fcb94d5158009e28fb41ea012e92028dc3c87855fba71f5"
+ "0e6d0dff709867de185f9a9671e7a91e2f00fbf607f69609ae96982bda3f0317fe46ad1e"
+ "0207030fdca702cd97fb5d5732f3abab24b10669875a64bd2a74c8603897c78d22",
+ "032d0f950d10d028db6e9115e9944e7c768e2da731df49dc9128bf145a747662de08cbe0"
+ "517fca6fa185abdfcc4e3ab604e196f",
+ "0e7d16daa689ddeb08074285f5293bd9f1c051ca5589e69e4b62c32af110b6f3981d9624"
+ "df15c7cac0ddd62aee9c41c7b6d690b",
+ "02f6bdcc551aef0e4e8da2df38288dcc29fe600de2f8b6cd8149f88146150790915148f0"
+ "69372151c3bdc4d719526eff252e610"},
+ {NID_sect409r1, NID_sha224,
+ "af36c04af0e3fd64bf52dedf52fb788d2d1bd67fe05d98880cc7ad3c20436abf02f637fc"
+ "ec209fbf888903fdec8682717299f8a4386768153b7faeb6581db57fb9aaf4615b4ea8d9"
+ "24198fdd158363a1f40312527d6bd14c13d19985b668c6b88a7548104b1ff057d07082ee"
+ "a421f50062a315bc3866378f2d2d634f03fbc0cf",
+ "0cc08a4ea5ebe32027885a8c212870e7c45b6c610117994d6a42a284c05199414a3a0e8e"
+ "6645ac5c2ebf21c505a601f69c62b85",
+ "04009d2beb607f2bab64451327e1dc67f04f7569ffc0c67b410c6db06dc04edddb1362ce"
+ "8d8b8220be77c447640e7d0c676e5ad1d500ab813e800e75b6012faea43be56fe9d5a22c"
+ "d46fb1f4f1ba65eab19f75f2ce9d8187e4940fddc485c42cd18d40d47415a80b02",
+ "0cfcc307f847eb696f16af32502690711ffbaa2e60e75f80cbcf7704152d5eeb9ddeb701"
+ "952dd58fefb159926a83245fefa6196",
+ "068d1c646dca56393caf3239d9fb30d1dc56f991a8dfdbc0a7b69d273aec69a53056d955"
+ "3e105c7917e522ffe446cbea23227c8",
+ "01db30aceed2b126cf45163b9d878a6590e9ac8284a31ccb0faeba2202679f181eaebb66"
+ "4b5537f408b693800f24da590082dfe"},
+ {NID_sect409r1, NID_sha224,
+ "6bd6f52a6204b60f37929aeff28c87ef61ddeecc231e52a7772275f9329add899c130956"
+ "f8c50ac2698aad3654fdb49b74a6427a62a11eca0a8ee8b719b8c0df7b9f0bb0af5fef49"
+ "18a8c83367d29fddd04b6a1ecad904471e5b59c8fe3cdb06b4f8f96419518dda960845d8"
+ "3c49a49f1b1f2fd1d2682a9d60c25fe3ce982cf7",
+ "07156ef0a74ee1119532a2a7e8c02be1559c3c21897af9d5b34553c3d0feca4a8d5929d1"
+ "945df824478e0c0b92a6fac8c84f639",
+ "04001df419310cf133408e9bdb32fd85f8f0950263e1886f2e2e108a596e7e76153ec47b"
+ "f9b33f69c1128dfbf52557f3c382de85f1016a15517a811c77cc67ec4fe2bcba1290e498"
+ "1880c071318aee28e30854692ed2d6bfb71e6e74fa97af750889ae8d010189733c",
+ "063f127c38160e85acdd4d5dee1db1c32cd9da6075b2d2f46b010636e374e0262a045339"
+ "4aaa8bbb5fe7b2dbcbcd62ad601cf51",
+ "0250cf50d52a5950999b9c0ddef219218f76dd9f22a2213def9ba98d258c2f8359d08d0e"
+ "fc208e23ea3614c9e27b2e4576b9c12",
+ "063479550873dea8a3ec0306ffa9252739c34c87bbac56d3d9138764347d5220bea9c27d"
+ "6a308dc2ec53724d6d3ac4862d1735a"},
+ {NID_sect409r1, NID_sha224,
+ "0eb8de25f63abc9cba16823270e9b6f3fdedf0fb90f6652a34688970932e3ae98f6d3bf0"
+ "fefc5f247f72960a6975bff1f1acc2188a1775fe8974b2bb2b4c8d226ceb735113a14009"
+ "e8ce66d58808fada4e6f697fd016829913352c0f659b6be354a067df00cf74919580750a"
+ "a6064f21264d89dcb28b3b2d4d699115c36d1310",
+ "0a95c7abffa92e2c637611ccba66ff9d2ab121b40a85c5b71454cb0dca1f098ce1be8d9e"
+ "a4933d1a91bcd270c5a33687835d6e4",
+ "040048e6b8614c0c7156dc41884e17e36ef528a493c28c9e6275c3454d83beb939ccc749"
+ "52732c18424ba21b8ea9c528966c692141000ef9efe1145029d8d60d14dcf079d43e3cea"
+ "0e18010f680bddc2729ffbff9a981cef2cb595a69142b25a0a39863a929adb635a",
+ "0f43af45b0dd631bfe38d85979ff1612140b9cf80b4504857df17279d9d8ea12d5bcd292"
+ "0fcec81326f15832df6774b9c4bf5b9",
+ "099f403ced566fde4d9755258445b6d6c2a4e234f99425aaa78ef118321f8579fb513ccb"
+ "b71cc2732e31668a6a6bb0fdc7f4018",
+ "0d8568971a4f219d6d3d8bea6aecb4bf7de53886d2e6bbb0f71d054c63768c34d4d18830"
+ "00019c59168fbb32f4317330084f979"},
+ {NID_sect409r1, NID_sha224,
+ "cad58ca7a3b9967dc0ab62a43037764f8074ef9177d60bd98f623d693333971c24a575ed"
+ "03cb61f4dc2e3d6285fb1204502a540f3c0bbbf23f5bbbd1544f322ce35d949d8b1d8ede"
+ "b82e90927ac67ad49c91007056bf5096bd690d15ac00e1874fe33293d8003a4a2b094078"
+ "cf09af799dde384143350c54a99e1f99cc31f2d1",
+ "02c438b07c6e0685d1f94a4bbafc013f8f21265d893f54e54c3ac2071606ad1ffacace0b"
+ "8367aad724b1d9508c65ce52282e397",
+ "0401fca66bdddefcc3c2072ea32f026c975a2c392dd7ed7e93e94a810e1125ec161bed69"
+ "8d8305830eb66fca5eeb71934ab3fd79b10189c22a2c9f1fd7624f805fdf4faeeb931709"
+ "d745a3feaa3cf04824f5fa58bbda144d4e96d83ce1e3282bd5fc9c50bcd68f5408",
+ "09230aa7b58505e2dc2f205b70a09cb9f4d8272f465b7380195ede0f7770af2a33f7623c"
+ "310a0520e7436835cfcaf32467f154e",
+ "013d0e70d8f4b1563efbd3c46feee15b88358562f769046f39df6d00477815e6b8763c02"
+ "3807eda87a86338c7b64214784fa2cb",
+ "0662f43fabd03a0c05ebba700203fa2188e16504f8655bfd0fd090b109e68220122dff7a"
+ "6cbb8bae08612e0d516e9f95ac15368"},
+ {NID_sect409r1, NID_sha224,
+ "281ce2643799bbfacc7d5993683a4fa656040517854f3c2dc7c4f8848dc305382e34e894"
+ "d433caf12d8b493020a6a08d1fa05b08bf6c53127ad5f33bbe75b9db0615e3dd94408d02"
+ "8dcf3cb7598f6e7cb4c787681dabac7cba2cc06fccb7506fece6c7c1c1bf622d525ae973"
+ "7085ab4ac578905950002024f30159cf0d99f50c",
+ "09e8658f8f9e6cd98c0f4f0fd20d64d725653aeba339504def17f3ad12a63dc6157d8080"
+ "4e5f43f4ff48fc5573fde2c615ed31b",
+ "04015088531d914113a25f1598ba1d3cc611e27ea92ce8dc807fe8d446db14ef62ae2f06"
+ "c293bcdd739f916cfedfc481fd941b4feb00a9135dc1b0384e7169fb4648973559e50831"
+ "9235a3f41ba174d5f58307448671cf22a3649168495c36b0bced09ac6df98f14db",
+ "0d398fbed52228fe16d32a6ef539e4ee3858a1df327bec999ca25cdbc357de5a75903909"
+ "973bbb0a5d0269862a74623a38da515",
+ "0e38910abb3d84b2b26ed17d2124f4787dc5612942e98521d9f94baac3d14159eeef9e09"
+ "b9b20c807b479ba84640730a4ced4c8",
+ "0e370e575302ab0d8d08d5270fe89ba524b5bf21e43e70c4d335ec1525ff5696ced37f0d"
+ "e17e109fd833e5d179bcd4df42d7882"},
+ {NID_sect409r1, NID_sha224,
+ "0c061da1a16f2be130ae3b20b89745e840bee09633fb49671db28ec9a051545f57ee07e2"
+ "410ae7ebc61c9af79868d3047705bfc64ac0c04ef0b286e579b650c7165443631e49e6a5"
+ "3c84cefa5625b1e1035a6ed89b8e839540040151132a937666524265e099272c1849f806"
+ "db0fdf2be64960d5b5853965099459968e5beb32",
+ "0c4c13f65eacce85a51881caa6f82d9e48ec2ac574947d2751823a7f072d38bd9da0cdf3"
+ "0b6f19084a6d291052e7bbc2e1349e1",
+ "0400af93430dd77e6016d1b076a52126a729f77e34bb3db11328d9edd56e29a7a09a7b6a"
+ "54f72076fcba886ea78ab6ad81de43a82101419e1bc339c03a8b4413ff009d76f9a19e20"
+ "1876ebbfbb3dc771b7df07bc19eb893ce23e40c679d7909c33af2bcd7d6306c0bc",
+ "0889be0918e7ef34d3ed226f967301a10fc30111b3559e37f5fa5a57dd5c73ff672c5279"
+ "d096c5b04c68b71d55e549d019281a5",
+ "0a4bddba9b7a402b584ceb82a54baab61e81973b7347e6dc9e3ce0f1e50dc21c9569d8ec"
+ "f8a7da97c38e92e52636eb13d3b4c02",
+ "063c7291656466f7bd647073a50f410a2cd9e8c938aa1fd3b28ddc1cbdd7b78b757689dd"
+ "661f5173f79896780ac3fdd4f3171ac"},
+ {NID_sect409r1, NID_sha224,
+ "74ac2e1303297efc3ed8e624722df505df55b7f33964cc0d270604cc48b58205d8a11952"
+ "232a8feb0079baa30d7d33660268b56a5a3dd90105f0703abef8f6636a99bc63bd47d9df"
+ "100351bee32d8205dab0dbd2af36fd173409ff8d1fb7b24570f3c1e968458f58aea5aa2f"
+ "46731ee91ffd6d3a060af6b3d5020daf1362af3e",
+ "0da591461791ae7847e6d8dd8df46a63d3021644abe9520e158406c96540d8fd82ecfb1c"
+ "3f6f5cfd7688c7656cc3e3dc94e586e",
+ "0401f48c95301956c62e2fd931df49953519b88ec3915c8de495dcb4ccba97bee023b1a6"
+ "cd9a66dca29aeef8f4f1117eb954e47cdb010db6bf78cfeb92d29a922c4b05daa3cdff39"
+ "17ba6978fe738296956ed141c749a938ca9f8f13f711aec930e0f1948ce7daf9f6",
+ "00576a91862cd63acc067563626977fee6f074d5726cf4f68e80d25029d4b8efe5ea8457"
+ "45c45e4cd42879e52854c3f385a10b1",
+ "0806435400248ec38a6d362e8b2cafc3f3bd46ba5baf538cd97683f76a733ba2b4ca85fa"
+ "7d13b99f4076e7616e68d66f05ebd8b",
+ "00ecae395fb324b4366f238f0df22d011bde5db6b0cf4189e3ad47101067ba87336ca47d"
+ "637f09f7a40a1bc64de8c4aef7f497c"},
+ {NID_sect409r1, NID_sha224,
+ "2afd17344552ccc577b0118caeb7dd56a0766e25f84df17c0505f9798931374b48df89a4"
+ "8c64e199108c36e00c0bf00a97ccde55787bb97c6765601765ab5417f3e75e35a9fe5e0f"
+ "85a721d9f08440ed617afcdc200b318940a1e496040a6ad9090476b0fb4fcceee77b3fea"
+ "11de09e7fb14853d1fff8ab12d66c101257e2d4f",
+ "0b5eb943f0dd390b737510e2bb703a67f2dd89dc9f6dca6790bc7a260cb2d0fb8e1a81ad"
+ "6009ed51010e7686d5b48233c6c1686",
+ "04001ac00da454bc329f7c13950c848392cb4f31594fb7837f0986f61601fe244eca3db6"
+ "c4f92accc2fbd1a4b8597b70e72d88b103009a364065a9f67a0aa7518b75a0b4a9140787"
+ "a67f852fa31342d6275c14713d484dec3116b9dbbb8af1d4945639997ded09cbc7",
+ "049176093dcde8549f95a8f1d1c87230046fd4b18a73243c3599815d4df8387a843bc8fe"
+ "1fd67f3c6bbe394547e11866f41acaf",
+ "09d7c4ddee55f61c5c4c2ac6efbba6164900344004976381c7b18c1de541a97cb58e14d1"
+ "4b6e433c4eb6d4bfe6d3e0a4e457469",
+ "0a9acf355bad544b3b120522365bcaa1e1dc6f1d3df1e30d3beb94f639e26147a81d154a"
+ "684bbafac965bc39974c505fd0f811d"},
+ {NID_sect409r1, NID_sha224,
+ "174b2b083541f8284645a810801e72631a11bd7bb805f684a7159e055afc44357f2c80df"
+ "2b7853678d34a04144e0ede2327d03db6df23769ec41194a8d9d86af74d51c5bc11ea878"
+ "c6a80689af71d3fdaf1c651003385332a512e03dd040c33d9c328ca89ec7ee9026bbacf3"
+ "0a7f3a68e0d894fb9f7100ffbc64bf17679dedd1",
+ "09cc63f32152284fca27ab2837bf1343144336a1fdf15b9727c47e877ac69ac9cf4c97b4"
+ "bf42f1ab10d73de8597a554ed099efa",
+ "040044e655ad66ca9af330c33bc6d00ccbe4533a4c6a44a3f23c921b62eeec8cc1918e19"
+ "956f3ed848fed93a7fd7ddea57096d1f23003a71b221c85607821cd864af6f533f216b64"
+ "1ceae104b8e16dbfdfe7edcb2cf9ee0dc1679b696149ff42a051c51c861a3c7530",
+ "0db9bfe4c2e659006d31a7b44eb7bcd6dd23810f27c74dd587ab9af23aa5962dd18aef1e"
+ "95da4ebf4aabfd558cbf72d2951bd44",
+ "0c3b91bf0794eca7faf227c4ee4085eac6d6918803242bff4da9c5dbac2e23fc32a4d4a1"
+ "92d7737be22810812558f820b0a2c13",
+ "03120a558c0edb58ae7ba36e886084801e7604558238c85a199af6c9e7506ea4e748791b"
+ "04f3a92354a4f1407837d87faab66ad"},
+ {NID_sect409r1, NID_sha224,
+ "758df71a952cdcffdc417b9fffdfb57582ab5c5473a8bdf0c2101953b023b77824263353"
+ "dea0e2ede1f800a5757ec6ac0e1e4e3ab5a4cd85567d2d19acc6b7069a6e7368401cba2b"
+ "6e642373654bec0ddd19fbf032794c15b7ef7e714e13e36875262c01e77766ed53cbcf73"
+ "5936dc9b33eaf2152a396349c82ca0297dbae4a5",
+ "09950355e8667bea8bbe3a2c4988436ab5394551b375e27fdc0c1a1d1b07ae957932f428"
+ "f1aca0a486e54cd0b5bb0a5c5650641",
+ "04002f623f81fb9a299b71ea8c58d5bd7d89e7be66ed8cfd7370de515eaceac903644383"
+ "38a3fcf9981f1b6f0b30bc61c4b7c15791016130b7c4061422d70b21251fa9c3d4e9636f"
+ "5a08cea794a0fddf74ff5ab1b750cce0f2768d54fb2fb75e2851c2296b39c0ddd2",
+ "038e8c70cd35591012f45f27980095c4bcbb3bd36bec594927968d3747618c7f5810ea9e"
+ "0a126e4d3e1e08185b031dbe0b37e5c",
+ "0cf957d59b03aed0e48189d2b9256b5472c8a48b4911f9cec14adce5c6b4aa22d093a116"
+ "364bcae01c1a739a4023da12a29c058",
+ "04cc2c22b243064758f52264ed84e757ff67c4f6596edcfe956b70f777d865d01e529f0a"
+ "8a9a6e1895168780ab60950a62d2d2c"},
+ {NID_sect409r1, NID_sha224,
+ "b96d9f66b2000e9408d602096f032b112f0e05ea874229ab9daf6e05bee49b4722e4f2d8"
+ "bf2eeaab9dad94438c76b7cc64dcbb59cb4e03f9ac70487a1d24d8d6b72d7462fe738a17"
+ "edf381d52179b3acc0c0177c113eb4d10e8e78041deac1d56abda0ddf892edb8be956d28"
+ "5e7236bc6794168f8a180f622dd5f2b9e690c275",
+ "0a995493d6971c2d7e8fac3da9f8c0b5afd877cfb94924cfecc167f9d87002136ab253e3"
+ "a4f9ddf5c9c99bb1dc1af0c6a3a3c4c",
+ "0400ac0e558dbca0fa6f013b7282e02717e91eb73304b4f7ac5e04f12f55824c441faebe"
+ "5bb5af82189044827007bffb1e2655794101178bb726242c718b416b21cdc9fd90b31ba6"
+ "a8350f9b4ce3a188b1b5dffd0e8894ae6a417c4d74c920fda585624eed4c1d3f99",
+ "0d581293ab1e509baa50852bd3f21f6493cc524a2c16206e461e320c7f2c1c201b9d2a1d"
+ "d4207227592a6457670a67cb72eeb58",
+ "022624cbbae5214d2c29e273c334b9ea78e10c7efff3611574d5fdf6f67a81472b606e02"
+ "36aa47106097b9147fc1b56d062966e",
+ "08895d107ba789d88a17c30a537402591ed788206487697a72f69285ee5eb4f03cdad6c2"
+ "604e174ef4b9bb919d8b39bee6231c7"},
+ {NID_sect409r1, NID_sha224,
+ "e7ae60ac55e6ba62a75d5328bbc15269d4638764169de0bf0df043d15f9152bed909b1fb"
+ "8c7a8d8e88ac4f552c1092b62db00958a3a827f64896f6de4bbd8fa5258d6c36e3904d82"
+ "d3eacf6eedba50b0242eb6b01212288448c3a9821c4fa493869c01149ff1850e8115cf9d"
+ "e1618cb8744626b1951d1de305745507c8b21045",
+ "070daf435cdc26ad66c3186267ad12d10f28d32d863f950cbfcf042fe9dfce553750ad09"
+ "8f82f7f1650c1126b3e4451bee6e11f",
+ "04019b41af3b557c274cf117d501ce7ccd04d8bff2dfc737d7efcd7888f2dda24737a678"
+ "8f16b3b6cd589d3f65bd95194799d65659011983077a2c371fcadbf47b10494f6ffc7ca8"
+ "873b3d812c45a87c48e1b49edacc0ac37e5038cf1aba20360b74c0903c23a62331",
+ "043fb8cb87591747d12f4897dfbbc79644b87907bdefdbd7ff0f6f2e7970c7d40bb2fc08"
+ "c17443d029a92487869f640607af460",
+ "05ea3493a8c04723de9de2cbd523481e3a8593ae8f010ecbd5add6db5a82d9b13ee7d24e"
+ "cb417419639d0e9f4e68d14f6799829",
+ "0a9bbaded0a2894e384184e166bc06e1b2fabdc70536caeb3d0cd46b955743cfa8ac6edd"
+ "03760d1b613fb445367734fa4270139"},
+ {NID_sect409r1, NID_sha224,
+ "666b0dc2ddffaa7ffd57ea3b2768f02d4b77c16fa007c6d1918400d195f068cae2dcaa69"
+ "817e6e4c70d5b29c5598efe2d957bd12d0fafdcf5ac52dee80a2d46e77fc18cce2a49bfd"
+ "787ff77b942c753974d22434742bdb494590d17c42af725b1309e54566276af3bcfbf5e1"
+ "74d3cf191b85903faafa1583282c97e66c5da6c4",
+ "0f8121980dfbe9ad0bf92383c7cab95fb72d5caba96e1de7772c6a179e85414802fbb86d"
+ "725401451329287305570ec7fdd873a",
+ "0400c62f4e7eaf3f1bbae71734c86b8a40ed1297b9ba1151729f9363824425193e8605c2"
+ "bcd6094aecc9d7ef2a41aa6b12877291cd01882a45555b68596dbc8bb093dbf1aab9900c"
+ "f46653c58f5656f3688fbc72c5236297be2f0586a4031279b9014f2d3655adef41",
+ "0b4b5b19922bf6a34a00454374589f9c89745eb194b0352061a79401e23c0c0e1fecd759"
+ "7b5a7cc1c463b76cce7ab921867de00",
+ "0f1fcb80a4fb49348fb326e808d8ed8c21c376f0713429a22bfe16d68cab0295b21d4402"
+ "9083769761c4fb853662d440eba4cfa",
+ "0252a94a40008cc2c1a69113d8e14e989e7fe13918a2852de6930973a91784eb35e20d8a"
+ "e150a88c459167f8ece998cbf6c5eb7"},
+ {NID_sect409r1, NID_sha256,
+ "3e967cbc2bd936e0b6125dc5cf885735bdcd2d95b2f764de6931c4578ac8e0e87abdf963"
+ "75481df67dbe1b6c43537e84ec62bfca6672cc5f3ea4125abd4a4119edffe04e42411d33"
+ "8e8b10abb1f1f818c50a9631a3f89feb5be5367bdcb0a8a82c96a427ba6ce99f9631d441"
+ "1a2b7f5b14d32cb3901dc9d285e4cf5508940942",
+ "047682b2e3bcb5800a531858e8137692a9b1ee98ea74e929ce4c919c26ae3b3f1d4122d0"
+ "7fd9a70d8315fab727ccb67004187a3",
+ "04017ffffc1d2009e844f8e625a3bf11749a8b4ea0b0fe3532d124112edddf72d518ef57"
+ "7f160962b88ee38b11445fdd356a26bcc500ca356fa8e90325aafb1826a694a55a80b2af"
+ "52e70ad8d507d48946392da8b9fa27b8ff6927fe5130c69809d9a2c4b1d7eff309",
+ "058edc8f3665ff9166af55e69aab9d468f576bcc8f652e950082a48224b4923cb9396ed4"
+ "ae06f05bcf7797352035484fdc501fe",
+ "09b46600fb3b8204d4cb63ddfaad1482dd8cf8652f63c926895b8b8ebfe27295c052b3bb"
+ "81dddd8687f4864f258a433010c89d0",
+ "0832f7674eea791b5f17db7cf9e2ab13253d870c6ab46ad01cdda30e78db8b8f51fd377d"
+ "d55ec7786ccc92b17364a3c17ad5be4"},
+ {NID_sect409r1, NID_sha256,
+ "ca1c90012eba4e7c5f01d8cb3814c58f48c03a16be6ed86934014365eee547070b870d1d"
+ "26a872cfd28b60d9ee0a66dea223e9eaa90ee28076188d6091f26f665684f4b486af7066"
+ "9555db9058d485c677b2a34d4a98aa8d6f43bf6f44aff2a23c5d765e98f0438ab81be058"
+ "5a5be29daece5d4116f44ce6062753a3ddc505f3",
+ "040cd1a06233ac27f3ddd108de7c6c0982793ee620d71982697713be9fd5143658929924"
+ "cc88747a680779bb00da8a44e1e7d3f",
+ "040164e518a6719b1ad61a38a214ebb06dfb0553bc760799e668b1d0d098ae3f06dffd9b"
+ "84c16de90db19043d72bed2601fda14b1d018e022ceb850eb1db59e6cf63c4a7c73bea0b"
+ "70448a7dea77d5ee8a2e1a36cbc46454bacd5954792de82f3ec21ca6a509b0c7aa",
+ "04a936fccec003bd9e8eb45d27c0eaedbd452e6fe99abaa62cbd0739bcf259cfb6884d1e"
+ "60b82522c6146f081663f6f863576c9",
+ "0dec1635f2698d4666df2c217fbe3e644d27592c5607a5549c877257cba7bee29a8cac75"
+ "a044e72d039747d0d18de1c34acf072",
+ "0138493216ffc3b8aa2e0c26f4fafaccd6609e6b15f767da7c907db64b5181bfdb447d73"
+ "ede786144c70ddce7df7eff46dee4f2"},
+ {NID_sect409r1, NID_sha256,
+ "a54c4351ebdb075d6a42a787647390f864b2bbfd8bb3d0e0ea9d767200fa344d1a9ff091"
+ "bddb186acd69bcaecd767068efe4d752d185bfe63f6674279d0e7192d2077c400bbc0d55"
+ "99ee28507c1253f05eae0687b965a015e1f3a292b4650106765266f5c95b77ad2d82a6a6"
+ "e012f233169eb6b8d83576901cfd4a927c54d7f4",
+ "01ca6f752aae4eb7fc9c73a08d6fbd96bfde5030d759a2507bd45b6e1d1487e53abbe98f"
+ "ad4f41976364e0a1d830910ccf97abc",
+ "0400f6b7220bd24652572b37a0ff25e75f72d583c71c159857482ca9944b956a117a6b2f"
+ "f96614898757b8a587e3c2b78d9943003d0118fe425768bbf3a4acade281c41c745c9ac9"
+ "46c2f8b95d65787fb6b64deb71e6b38fd8c721e01c87efc7c2a6d8066fe3b35a0c",
+ "04963aa161b5ffbe5d7e5058f0b1457ca1b9cd61d731a0470beefe5f8998904cf4594f98"
+ "dcb41283f66e2b07c5c5d6a6c587826",
+ "0abf824d43d993107b552d7ded13f49ea0ae7bb845e56ad7e53cc5f9d64f99f9f250e430"
+ "5ccd9f6594c92defa7f6860fab1c349",
+ "090a541f1844357f618e5ea34c0398ccbdab0cb363e266980ad304dfd675bc81c0345a4d"
+ "723fbcc76ab5ed4cb0ba0af1b71bcd9"},
+ {NID_sect409r1, NID_sha256,
+ "6723dbddc8720feeb75e2a061b7fc49079f999fbc79ec8a8e01ab8d35b438b7049da5a23"
+ "c49a58101742791f84f45d5f5cf551cd7de6926a0e2c4ffa1e378f038da597368c62df8c"
+ "d8349bf046de46d02183dc05b3a3575f5f232dd2970057200e2c9cb60eaa6b4d72f8b73d"
+ "4d40b98d1cc801d1a69cb5ed780a75a4064623b2",
+ "0fb9b1a9597d216028902abf743d25944258b48c9762d4589fe660396130b75f6006cacf"
+ "de60f6204463cb8c18b032de1dd68d2",
+ "04019b07f7f4ba100aa9e749bcf93a2c9955c442730c5e1f6f72c1b1d132b780d92f414a"
+ "533282f7b66677c8cc8a3d5ba8b3cd3cf7006ec6e9c495ccf600f8c19597e9cfdb639406"
+ "b04f57a29dcd1a7a843c2c44e8321bb8508953e9c0503f77d36bdef24d5d39f85b",
+ "0757f6acf74eb02b7ff3161b476dfd8349854154186c959179f11b9a15da3dface40ae6e"
+ "d771096e053976866433382e640283a",
+ "08fe276e7f63ce5f85fce19d1739a8a9986cd3c3fbe26fd59324efd98826f9db3b228321"
+ "b3ad1d96145ca23cc02616d9e9d7aa6",
+ "016e06de8e3e0abf4a4f52bd2f827ca4c57412adcce3271fb4014069713f3723a038bf56"
+ "0788d8dd48430d3b30faf15ad9c0d69"},
+ {NID_sect409r1, NID_sha256,
+ "ed53cec5e5500d62d38c829002916c657674ede4439c6f405ba672327ec677490e656bdd"
+ "698f114c2ab5e6a1fc94a1a8d64466cfe9eaabd23a8b5c37f76a3c0decdef73b3e7b751c"
+ "bf3b0817f4079560b5ea34cead88ba374201236bffc48eaf289bbaa4e828afa7d732473c"
+ "228ad00588c9b443d65b998f21c3d7a9e9196c08",
+ "032109202d754da290c266f74f47805a06e6b5c3f721a72fc97a3bffeb8887e0c642d49a"
+ "6bd034847d0a5ba09239c5dfdf0772d",
+ "0400f4dc8b94dfe0a27d4d41399005b242c3e5b14bc7cec55ff3a1561c894d73f365fa8f"
+ "a2ccde1fd7bf3760b96ab2db78d2d50b03013ac66e95c335b71fd1a98f101a392dd4696a"
+ "806239fbdd0708acc69333febb48d4b649f14f42841d66ce03f1fb557a361c12c1",
+ "0b010ef786c13ece3a10eaff79b93ef3899aa385dcc1914e16abba90de0ca6389d664082"
+ "fa727fa7c7907dc4c88bd621e6124c1",
+ "0488b8956c5999c317830206fc8b9f6760845c31bc4ba77584925dfe25c05a1e7d298a62"
+ "e9748c7278eba622713df59accdd78c",
+ "082701053ddfaa376c99cc42ad4587d84a358d9d8a9533888cc382623114aef51170de77"
+ "ecf64af02e09bee203851abb22f5d11"},
+ {NID_sect409r1, NID_sha256,
+ "13829401bd41e9fe01329e9f5a002f90f1a6ecbf25fc63e7c1345f265ff02e496230f706"
+ "c6ab377ea52d8707b54f8fc5c7f089044e2bec1dfc66a07da76ee12fb9ea0697d87706b0"
+ "ebf677600bd2fe117f6cdefb8bd636a1b6b97549ee78f992c24acdf3a946053f06fd012a"
+ "9c703efb8bd929a66aa74b05d61bff0395232b00",
+ "080536e820fac59b3203aea928475043b2576446619001647e35693a9e65d15236c3cbc1"
+ "2e1bbe0eb305973535c882b70197a92",
+ "04016d7448c0afe992f8c59b19d6cec64d8fc5b10026a806760bbdbbf0012063f46d31e5"
+ "21a34771f826669c4d1ddd58d3aa13ebc901a3742a6f231546f0704345b9b83c72d50365"
+ "22449cf60c1b3bdfa4c8d36e499d4ce62e6e7bb05c6132bed1ae44eed17414d2da",
+ "042753a515e607cf9992dd1f249820dafe53993b59b1e57d8f2f9100f609cc15713d27f5"
+ "dff4007e078d6da1061ddd36c169c21",
+ "07eeb1cc19ac45f52c0b63ff8ecf4f4f35958e86cc3e3a071a35446d490a426b48b6c287"
+ "027b003488573a4834a06dad48520c3",
+ "01410d85f3f2adf065b60a126170c43e34e0883338118cd33b0b3eafea1d142480b236ce"
+ "49d35fefd1ce4ad3d25e0cc9268b1d2"},
+ {NID_sect409r1, NID_sha256,
+ "e696acdfcc96a6c088069b7595ea9516a36d8fe04dedeb789fbd965db0cc64b7017a8210"
+ "15f6210b6989e515def5a9605fec0d337e4ac59f3101a505168bf72ab6d98ec62a71d2f9"
+ "4071fc05b95e98d4efc59fedc138e3e49c5d0b44d1f48f7b1e7c1944ee189b242950d2bc"
+ "804d31c7eeb45283c84638f043ab9533976433a4",
+ "0b05e5f0dad9583ea18fb8fc4d8c75fd2e3cf9e92cdd9b737485c953620d345006c31c28"
+ "8b380258b6500b84f729ce6730e5303",
+ "040157c083ad9789966905c212dcfd7c049a8ba3863fd4886e4b118b3f06445fb0d4745c"
+ "2a8a1193dc68915722089d0d382253b67500867e8efb575800f834c978ee2ecf0f84f72e"
+ "75dbbac86926b73fab8b47f38eee17a63baa02e3edb9d4f6b2fd2afc88b6de36bb",
+ "0c72eb08acb1d422999ee8d51f9ddef9f897dccfafd886998edd3ddf30a638dbd0ed59d6"
+ "8885ce242fb838f022bccd4f3b5f854",
+ "01f4dddcacb088f6e24d331e8b111e390735a41e1fc29da8f5ffdbf7342f4b9056786f2a"
+ "67159d1e57570bd69d69235ec562416",
+ "0809840df1ef8fce9b2edf8f970c07bdb5fb755e9d5bacd7996275c4f890173142c39299"
+ "ce9eeb51d21a32acfc7761d5a2cd7ef"},
+ {NID_sect409r1, NID_sha256,
+ "4058b9a8cc15ac148909eb97fa32aafbb6077b168dde91a411dbc973df7db056dc57ff78"
+ "f0abcb70f70f800bd752197d681f44df4a7817c0e7f60f8f65489ecb6167c14b525e91fd"
+ "2cc5d8b80ba380a83d031d5827c8b1262c687c90ef0e62723d9b565557f9f6fed0db48f3"
+ "799274c2cd60a14303406c35802cba6261121296",
+ "0be1d277813e79051ca1611c783d66003ef759b9e104f32298017fb97667b94dcee1ce80"
+ "7dc6b4d62416e65d4120523bf6a4edc",
+ "0401fed0171b5b3c6d9092a6592944680a08a0d4f99f08a3ad1c22b5bbf11c0e4ab3cdae"
+ "9526b0ca2b1bbd961362faccd5caeb1d3701ae7d57db848e5c86c31f542f1995c76e916d"
+ "ea9aba882865febca630bc6a10ceb6732bd5f07f51bf2f37ecae7b7fbbca618ae0",
+ "09e3585213c6d6706524e3c8e753a2eb0edced626498eacd842d44a73c602d801a079f94"
+ "b781ae1ac5d44209e8e3c729ed4e820",
+ "01098d98cf83c705515494cdef8c3f50ea8316d95b3ca5f9a1296f09021de57930184ee4"
+ "b9f563aebf5fd0d5abc0885cd24c0f2",
+ "0d9706f4474a8fb0c701505516699025fde546a21a3fe519a173a3ac01f683d40b4db264"
+ "2330bcdfe188693b15a476cd9339ae7"},
+ {NID_sect409r1, NID_sha256,
+ "e793237d46e265ab84ba9929b196405faa3b0e4686e8693567e53f68e6991e5767797467"
+ "7682a2510c4c35b1968a90b32c4941af7813775c061c008a60f9f671cf7419c94253d610"
+ "6b61e65034497f2d273a5058379bd986e3d917f708f0a2bebdba150f6d78a3af9c722a24"
+ "30ab0f4bad602e91e18aaf258e3785fee78e4502",
+ "073c807bd7e07379782ab790720de4ae5106f16d34e80ed70da5b1594e660c9b775db940"
+ "66b93e74f855f57d88b6ecc6228aace",
+ "0400301526b630ac3fca5085f633deadec27af353233e6f241772c7fdbfa42e47a04b0d3"
+ "ae38c04eef2109390a71fa9fda652343cf0137eacd97a8449ce83f19a13a248af52e512c"
+ "fab3e2ce1ceb789874cb08757dd9e47ac21b5c0846498d8d7cd90122c437602d52",
+ "09245ba1873114ee2a3e642c5b15049a3566a2f003cb3d25250028655fba98203feef5f3"
+ "07a9f4c77f232976d83723f2621eaa6",
+ "0c8136d4b998ca0544ca1430abf55601f259aac7756c75d1371de63d1471053c789833c5"
+ "cc257e323a71f80e21783df4efa169a",
+ "0e2ecc6f0a418bee5de7c2418c4ad85d981b18048f94865821de696488ee19291912ae7d"
+ "a1cf5fe9708e2beb18e6cad4e3f7849"},
+ {NID_sect409r1, NID_sha256,
+ "ffb8bc80e7619a562d8506eba7658bef0c25ace3dc1d01bdc2ef00933d4fa07b80364e5e"
+ "5826074edd46a707dbc3b0ab19eec7ea8990839d7fc0a80b70661204c52bcbef57c1a7bd"
+ "c861c10766033a82dafbead283d911a9502d5f9ef0a39d35ef26f3616212d4bafcd413ff"
+ "d18b424fe09b48ba02ca5d97ec996205cd49d22e",
+ "0a68379b2296a6c944ad5dacb593b302d8ef0b05873ce12bbc371d705f308c739d21f343"
+ "349524aa72f05341e64f7435daef112",
+ "04007fa0f698535b011833dac1ac96f3739ecf0c29f7fc1f8bd635f4f98daa70a3931061"
+ "1ef51b2fdc8b37eee3573dc34cd2528d3900be1a9dc30dabee3403da4f2dac6622e6fb84"
+ "96e72f3f17c169e7b554efd84ac655e727ae9520feaecc752601d5391270cf0cfc",
+ "0630547017103c3f97de48ab6b942db94b2db9ed7dab0391ea9e71c1b788c547abc90088"
+ "de5b3e36c9ee4280bb454c7c3710999",
+ "0916aac91ad329d6f330cb051941c781b9e59bfbfe45c4d4f6ce0d1aca982e1c612952bc"
+ "ea06784c57c121b14cc0dcca783d0c2",
+ "06a83d93f9bb81c61ac290906d74e2d3b964c39b4e96370f19cfb4a55a3f7901bca3deef"
+ "4bb79ca6a798fb9b3a9b0137c5a9324"},
+ {NID_sect409r1, NID_sha256,
+ "946bde90a5b903dd281a51d7fa93d80f3fed07eaf50c18fe9fac5acf67326bb18effa314"
+ "4e25c151efc006a50a274ec6c6a5d573051c4e2d117ceb0fa125acad07a10fb6534a8e5f"
+ "5b3da2a1136779c51377bf76c3a4a93c0c6158f729f2293e414fcb952c9509f228c804f0"
+ "adc1daa327a8991d48ccf4f3957c5f8ccbe3ad4a",
+ "026046bbb269ddb1ec14ade56175482343a21b7c265026cef3c7d6a1ae0f6a68166b9e6c"
+ "49a6e733ad2ad64df7137ef230038fb",
+ "0400d09d8118519f9d00df7514d2ff99483473f680b750604580b61017513870a3cf1c40"
+ "3495cba488309e2c084079d53139a3695300d25e41038c18e4ba6f4e9d14f210b71f27b8"
+ "ef2c1d4cdd5f63edf8fe11d548d070177e9ddae382fed2b163ff2b58546f10a99a",
+ "0d6b0e5d83155a035248ccea95feb0b4d1af818e5ac6d5f41f1a255dd8b482a94de0f4e0"
+ "37b10339d1805dbb6b22af6ba834219",
+ "08059524790304a37f2a0d57bb2b93cec79a827b1fdc9ce2d7dfd4d277e0f71844d33531"
+ "4a30bbec5598a399e197a852b5528dd",
+ "0e7870e2a0ed16cf340a04fed4d2048e4e231cb8918345e1852bcd3e30413a2219864851"
+ "121a34fc98dd99976e2b20cf1d1bf2e"},
+ {NID_sect409r1, NID_sha256,
+ "07f3fe1369ebfcbcacd66675bd4ab22edbbff72e68709cb57d4f590e49440f01691f490c"
+ "58b5117bd24aa2fe2101b59c61c417c918ea08ea34bbb9b8aa17491ae5d9329affe894f4"
+ "2d7586017877fae3ce35bb80c97f92a004380374ec91e151995166e14ac00505fd1fa810"
+ "cf02981bacbcebf5f81b2e633d3a3db6737890f4",
+ "0bbcda66978ea526f7bd867c3303b625f11b94dd9ee6e2c2f8688ff07f2bba83c662949d"
+ "47ad47fa882cb7d203a7f0ef5dbc52a",
+ "04004cf5bc624553e833ffbee05ab863e5def062e0d57c28e71d758d6ffd3839504d7ed9"
+ "d3b1a040bdce8e187ae0b4ca23aa565b0100fc1a15b4f273737eb92a56928395f6518e05"
+ "bf946afb65ebca3787f7f8bb3d946dfd26c4831cfd171b4c66c2237409ebf224d9",
+ "0a2cd205d957a20c79699e91684cd22746c476a79245f11e7cdf7e6b74f07cf2fd9eea65"
+ "eda97e8994aaf51942e15695545abc3",
+ "0aa1da120fc19523e8162e6018e4ee053eb680ebc7e31d00db34f7b177c74c5e6ea344bb"
+ "a3c39ab7ebcd92996a1c156180b7dc9",
+ "071aa4588741208344b323642fe03f1cea73865ba645169df9c84bdbf7488829b83b8da1"
+ "72f1927de1c8cc318ede545c748c782"},
+ {NID_sect409r1, NID_sha256,
+ "3a1cb13438e3bac9ad4ab1d319e90e2c9f118dcf1eb54d6333c674a665d41451f93cd4a9"
+ "334cd057a44c010edb668254517a63700a31eb0ca474c84873e486f2f8e158a1a7735362"
+ "ea0cff8ef17d959ffd851b21a91412709b3c729474d2cb40f6ca0e397030eb2611b40291"
+ "6e4b656f0fd868247d80be3ce33d52054b7661f0",
+ "09be3dd3442e0330750f0a6252bf9cb317f32f942ae516a4038dea2c40ca6484fb33611b"
+ "ef016cc64baf166c122e87c15466fd8",
+ "0400f05a6fdbe6f80c0f5ef3322d8accda4b9ae28c91b6198b888be713afa5e652e907e5"
+ "ca9aff5fe77b6546115b4c732bbd4010fd000923d07aeb8c947688e7d3dcb16ca69440e2"
+ "a89539a41b8fbb797523d3b766b46d257b87472f5084992422cebdc4e45556f5e4",
+ "094fe051a13ea8dbc89c4cc5511881a48ef5554de265f0badf8741ae5027eef25c617bb6"
+ "a3f454a992fc68f5a548903809de09f",
+ "0162687730f0ab2f57e348476d1fa4eaf13199ee44f44dad5807bbea4e5ba79e92556f28"
+ "7cacbbf1fdec9a8b78f37e78e52dc1c",
+ "01acc734e2d0c81a56ee8c0465661c365edae56228ca43184ea1d7503da3d38e7607b159"
+ "0f59f5190e5c7264cd0d7a39be71069"},
+ {NID_sect409r1, NID_sha256,
+ "e58e7b881a563d54772125b2863718690a5276c93d9e1c5feabbdb5d6f7c7293ff0f8980"
+ "5b53663bb417fdd46874b8e6a466e7e3ff6737930a0662af1d5879b071b0dc4d014778df"
+ "f26a2eca5992e763bf4c4698c382ac947215aa116515876008a56e5bf547857049c38a2d"
+ "3737ed3393705fd346897c3beb80caab88e5b8cf",
+ "0ed321fa283c662e87eaab99b7715e6cdc9b42e14fa5bbe2c56fdfb381369191a42da7e5"
+ "74839f90a85577485f19446fccaf6cd",
+ "0401bbb34e6bfb1c1335c48e8b44cddd8a46486fad4313581df216002b382db1d58adcae"
+ "74af0d38445cac2f6cd9e2b439d106f5950084473a5da9f910b4807ec5ff450be353a187"
+ "af6ace821b18e096c47752b6336dbedfc4b481e356e689fd9c03ffcdbf3e4ea39f",
+ "06ae69e55ac1f7b0f844f5ee0b583e652e0e5bbfa4eae85c59eea1485148e34f4d33c9dd"
+ "d7ac071a28ac0a6191d5ed03e88bb86",
+ "0c3509b6c0356e4a30a82fa7411d1fe17ed190b7eebf9310c44fd568494c894a4f4a1a09"
+ "e58a4d030d47227e54f7220f3f79f4d",
+ "0d44ccff47d9fe82627393c03f882d4b98633961a897381ce8b2cd18f38d69742802d18e"
+ "6c988a23eb425b294f2c1b84cf42cd1"},
+ {NID_sect409r1, NID_sha256,
+ "8889ea1da1cbed98963941f6ac24f47253ff6af52de920765214f2024aeb04f7ad469368"
+ "30a8eb04d95aba64ed7cda6ef242f454b67bc2de38a46b6524bd5c96739c4b580e89829a"
+ "61a8249ec8dc27a50f43b8554cfb6f4fa4ca6875983d4b60a1c6b49f32ddff6fac0cafb6"
+ "4d55c6f594b195c207a9bd920dcf20e0080920bf",
+ "0396b805073f3c3b552b1024dcf35559ac44f255b688871a3c6657f727a4b09f3806cbb7"
+ "5d26a00ae1728be632387e804775a8c",
+ "04009957f897a17241eec5b8415ed7ec1bde5df11583255e0a8136d076d72ef377ab3f55"
+ "3d6f56c054332a24098aed6d12878abbd301f58eee295765e8a55e388e235e833bc5cdc5"
+ "d51a1d98e13429bcb7891b25487b7fd8ed804b1856cb6071cc28756bf00924bf1e",
+ "021959970a6ad070d1ac518493e309289f3d9d6e2a8933bca715f53cee4ab9000ba2d014"
+ "7282495e15e63f258dca87a5db7eaca",
+ "0d1ca34413341c115f780e647519547602e0361ed4d70402f42d735353696eac6e4024ed"
+ "2eacf9577252d40c27297e9389d1f7e",
+ "08cd5bd43794b32d5bd2ccf7ae4deafffa0e0deb92b1eef9d3ef807d456e459f92e9f106"
+ "27b7e7574ebe3c2faa858bd3e62e187"},
+ {NID_sect409r1, NID_sha384,
+ "55053af9370901e38622734a5bc5589f6a20e258627f381fb0c366f3dbe58394e5997e97"
+ "8eb7ebbc530f6e6186f48294149b8594fb551c31c50521a8c4d67e5862921695604afb23"
+ "977b6a69b21abe75966fdd11bfbdb6b51ab0a474c5fa07c4de7872a3bd81acc417655090"
+ "558dfcd5af449b3347e61fa9e839bb9457de64c1",
+ "0a8fe323f6736bcabe971c7d964e75dece70cb54561da48a11c40027ebddb23e41c7b486"
+ "00f569500fe8ea2abebdf480171dde4",
+ "040020f2dfee967949643b6cb8a3810524044a4b873a4984e9795e4dd7976536a2d748b8"
+ "cc636ef5c8fc92aba5677c4a0951a3332700956ec5433d73162c9683558f0dfe8870cfe6"
+ "6575f2c34c765372c7c3bc3b291e95c4e3665e4ec5e72131975f0b1f5f30b0c844",
+ "013f26e13d43ba05e01f92457374fe2ad1ccf94ebf22334447f9360f7f9748bf3665ec30"
+ "58ff6184fbfdbf7de9e1e2131cd3991",
+ "013c4c290cf89789bd6dc523deffa20c94e92e88a76eebe88457e30cddb066c7a43aadeb"
+ "0493b264cdae67532db7dadf879d991",
+ "043bb7a8db3d79938beedcd6ce02f375e26ce807a2afd4fc446f372fb09a69fb34734df5"
+ "dc8f6393f86577a8d29014494379624"},
+ {NID_sect409r1, NID_sha384,
+ "c4264330534a6c2bbd8a3b757e0912558302ce302f835ad8c5474993832fd30036fdef40"
+ "b10ee37293e871db5b0b149654f9e543e22111f9709ef45732125f713c031ccfbc9a2f3a"
+ "ba160c241d27be4dab87ab2fa9a795752ab2daf20f9d06a98d90d01c07133adfe83cb11d"
+ "5176525e1bba6a9ba70ea48b224d46ddd8103f65",
+ "0105938ba9f25034da3e032dee121bdb192ac2128b50a2ed4bca042e96cfaf4660c9d35f"
+ "3e67bafd4c99f9447e6dc408e0c4471",
+ "0400f1a9243920d7cc26741eb828bb55e34c140b0e52837792ed6274a9aa6b5534cdc5c5"
+ "96a1141a746dee380c0d9c2f77094c36ef01393ed8c609751550ffd077347712f3b27a86"
+ "9cfb1b532c5b19c381365ae5dc8fbffcb2182777a17690616d71c66524017d861b",
+ "0fc52aa8c590aa28c5353568c9dc69734adfae840f1e0642b57863dc7f4faa37bf3ca789"
+ "a3d7afb32c57f66a61780e253f50af4",
+ "0c45b1629bbf3273c0e785a28cb8187ef387502ac4438a3372a5c72206a15d7c5ecf9203"
+ "ecfd7e0ac910b6ceee3be50c6664f81",
+ "0a0c2d31a47ad5f9dc2d42dc36714cdce47666f6e2f05ce0e7136f166647540d1e5fbdc7"
+ "c9fa0def8962f44f2f8bc9addc10057"},
+ {NID_sect409r1, NID_sha384,
+ "3236f1ad164e1b25d828f5202e3513c80c72a577aa9af56f041fd96cf5a3363f4b827723"
+ "b1511a2f16360e32eac90ac55f4ee1146791420ef9e2af333c17d157b00e43992ef6f2be"
+ "2d2f211361e468413dd93fb69232f0a0d110bc5fff361c0410344aa0636bf809062c73a7"
+ "ac7c142063912b6ad7e1626fd2a384f35faffaad",
+ "0ce11677ca818537dbaeb880fc967dc8bead203a2538a55e756679c4a9e7975b9b3e6aba"
+ "4e6c6eab4152d0c0939027e9b0bd92a",
+ "040023c78eda396efa28c92b120c4ca1e19dc6c467234f9f73701d8966bd0826c20122af"
+ "5f7c9ad5a5b855b6dc517c22131fb0b5af01ea47619f91ed4a010dd49ece7ec78c5e9829"
+ "7220b4c239ff4a8c29aaec008011acbf7e4f985c02311ca703bf4ce4ba43412ecd",
+ "0dae763fced0e498e3efa1c6c412a25774c9bd6cd4bce25ab0a7266705cdd54040ec55bd"
+ "7e6708e71b09ffe9c19af9a1ed9c878",
+ "0a70694fe5da7646184b23b4b434bca1b754257b8e7fa9994dce4a7a92b7ec8c7f8cc69f"
+ "18d17915c6bbca24f6621f9563f7c35",
+ "009e6ba97ac2be8537afe7f8f8b9cde8841323b5cc63cf2ed46a7913096ff8d96040296a"
+ "1bf9aad691b60e1f18233964a421fe1"},
+ {NID_sect409r1, NID_sha384,
+ "6c400ed098d8369dab6fde3553afbbd4d47836d0d12dd16015f15cb8d067a39391c85ca4"
+ "e78c62b8b72c1592349ff8dc52db8ccb7fd80c085fae456dba6f4a2378e184dd59238c92"
+ "cf04e40d43a66b342d2a1325a0bab12b1ac857f0564c27b35e6abed02ff5bbbdc3770ddb"
+ "b2ee0513df48bcba925da6d61583076cd3129603",
+ "05a239ae0f40d76d8d3589f1662b5ca12176a4b2784faa8339b54e96a1e1294433a4d83b"
+ "f904196f939bd8b33bdb4be340ec703",
+ "04009d03b7985647027a17c06b30ce9fa1b43d0484195f584fc347f7003802613b524cb5"
+ "641db3425ab4b3839e12c012853ea8384300818f5e270baf5a771627b098a6f9ad8a8262"
+ "e331c299fa0722a0df6ca09bdb9c92d22d72a73567cd5497d06639aa47349df207",
+ "0c22251c73998a3a49b3fc65acf01438941a8885d1c5072a5d41d779af70c044153fed40"
+ "80151b524af402a4e8ede4448b717d4",
+ "02d3a7ebe5de23e0e601c6e41616bf2a9a7fb6193fef8e3f0a7fb8128a925f7bec383366"
+ "9d1a304652b7bb1af5186b2f612da1e",
+ "0b7bb17155068a8d9b3412d04d407556ee133e1a704ec5da87ed19dfde60517501af345e"
+ "2e744d35d844f8ac8ad08b13b17c498"},
+ {NID_sect409r1, NID_sha384,
+ "039a149eaef2de30b0ae457b376ce6fbf88afd4cfdec02d3c5e00400d3b0484c1cd6ba74"
+ "db5de65d6f2fe39871349b30fdf1ef29bcbb9e182eb3ec5629d07d98354a5dfa82d7f0db"
+ "3dd10d1510c0dce086848a198893ca5ad24a663494f0596b4eee86199ea85e7e8f2f76e7"
+ "a6bd4a052c54287f61b391f1e52f96b606151c34",
+ "0077390c62ac41aca995640fde0c79c76f4ea8a8dbb22323ed812bee837ab8798c5d0ba9"
+ "76c7aa634d4b1c2c155de2709e7352c",
+ "0401a9357770270c528f2af991c447bed86194d458f693a871ca38f271a9e6a566f5b9ba"
+ "3ef3d2f9bde959e42934c95867b280e9d1001f3a0516fed36d3622fae3f44d87c4bc67ce"
+ "e0a995cea242e530451d43781f2ebd163f6f521497fd7a1a6c7b93d33b77083a5c",
+ "02555cc113c8516d741b47ca41f53ed07d509845f140dfe7dffbd01a3f751ea9f22e12c9"
+ "39a2ecb1827c0e56b1b1c5459b66aa2",
+ "0e88333875a507520d0b62b35146e37e7ce4e2f2478a61adfcbc6e1aa9fd0195a4960c63"
+ "3d9d6aa9a79323b7ee00ab802768436",
+ "094595255e8862d14980893c095608113737f42b05b561771f56ac1d54eb521bcefeb392"
+ "8917c07c1bae74cb9aa80dbd34962d0"},
+ {NID_sect409r1, NID_sha384,
+ "08617d04fffd6644c40f7dd57919f7dcf3c888f4147535d12ca658302305bb8e220bb17c"
+ "cdc480254004b9035b357120580882ef86aa5a061b2850100285b7d61588a664dd4f5394"
+ "f5478e68a80f610c9204d056009c1c9e902161eda33ef61aa902e96b6f094a9f05313569"
+ "2182943d38b9763055a38739a2a2d133c5dbee89",
+ "08bf23b09fbbed1b55769907aafb97f4759cec98649b2c9da5157517d4f85bb70157076b"
+ "5e4aaa7a940af042302f8be06a84ab6",
+ "0400883c31c474333f74ab2b86f3eac865c4b2b54975ce19c5cfd23682d041ef3deaa43c"
+ "9f9e2c194ccd3add6677de31fc9e07dfad00a5a36b54f4eea6b300491ca22054280b3f09"
+ "b202b2a6b55df9e3271c763b6d8360a330c16f936d69fa463bc0c4071707c9cf95",
+ "0812c83aa9dc4139f8c3f7c55509f9e10e6cceed30e16afc028b1904b4d260ed0e77acc2"
+ "6e711a7a8e24c75fd780ed893c0bbca",
+ "0fce07c6f791a05de29609b59d55b7062e82fb554341b2b2a8187baecb9c95b01ca5dbf8"
+ "ac88c60babe10af2edf5985b35e10db",
+ "02bd026a3e45ac439647a483261107829411c1b4a9ab603c080b92f605cf742754b65498"
+ "1460cf7aa72b5186b59d224dd015314"},
+ {NID_sect409r1, NID_sha384,
+ "34c959f549a307f21b850ae105f41299b8bc94fc292aefc61aefbe0a1bf57576ba8d9b80"
+ "caac635e4edeb22530163fa9629665fcd43959f68eee32482f1845a78ed7278e6e43d09e"
+ "d6fedf465001afc0d61f1d2e1d747623e82a762576b879c7024e34f43104593cdd691d53"
+ "bccaeb8f212dc29bec6bc94cf69d0a8491db124a",
+ "0082ad05d19b8e16f80e53a4cccf6869ab5128c5e622ed146fa8555985ccd2aa3b9957dd"
+ "374586115d4d75b1c01cf98ecfc3646",
+ "04004428d05366b0a46e6578fc7528d185a3f85da06c4179e9c9055dc0a7fb4afbc53c94"
+ "954f268e36d2ba8731882bdd27d9684c810136ba6048ec672601987e9b7402fea24f88c1"
+ "a94717ed5a83794add0f31680592d6cafdec147dfbc400e73a6ba1d23d4cb0d707",
+ "0c00c897edea7bbfe1913e3da303d64d0d657a83c1eac9c111722b17c65391f2cf67b782"
+ "19e748ceb269d6c65f01e92e6952979",
+ "0624c5bcfd8e0ef22ee6b34a8b26bc051912cabac102cbf56c364a743e8150195fc55a3f"
+ "ec90a8fabed5eacc1799b565745bfd1",
+ "0cddd4937da8176ddf0de7f52a4babb1f6fccf861533f796a487f35d060ad9ed4435e5a6"
+ "7166782b53c20bc06fd1b36c265c1b0"},
+ {NID_sect409r1, NID_sha384,
+ "514f4de08a6f49edbb6797c9dad6d33bfa367cc1a1b58a5becfe646c7f3352d5c5d95f74"
+ "56e7112c4ddc746b9076b9756ae3916c07bbe6d3823895774a42d25d44b3309d18bfe7e3"
+ "ccb1f85dacfec1654778c19e2981a853c1f40a7eafd16d331093110698c957fe9f1d8658"
+ "2706a6885543248b944bb70cdf9d2ea89190cb02",
+ "0af7e581aa4f9be5815f0c447e39de00da9194eee5e5f609668b9b69930b5b48a948614c"
+ "2250260d1917f0ebcb00ebda4bb52f8",
+ "040044703e0b49437315a64e397085ea2ba3f2e2c383b168f31a922e5916d590344906bd"
+ "2a911074b7481aae7f3f8f4807b110f2e1005a13607a3bb89a2a88e27d5eb5cac4eb498d"
+ "34e6ea861c80271ed0c73e1fa893adce0c1982b8a8af6a0249796e5276d369c3f7",
+ "08e7fcadc844456f14ce9354b218d519d86c0c5211d62904c937d6fbe8cb16264d7d41d9"
+ "8a15e9f73a636ac3739770738d6b46d",
+ "07aebfd1681bd5a2f995ad4a709e8681da742649c0530684fac251494263e98d67247e1e"
+ "4fc174b409e7e24a7b055500920cc82",
+ "07b83b9b5133aec165316021472307b8b481e6381754a9d0b4f9d683c2ee7cac94ed4d8a"
+ "72cef61fa1f6349b6c4a54ec38975cf"},
+ {NID_sect409r1, NID_sha384,
+ "4e5d16cb1dcaa1abab1e371e1de02f31ef4e0944dfe1fdec45ab64326435b2af9aaf1a6e"
+ "d8fdf1a6ab1182bb53a844c7cfd66da30aec0d41757f5988ada0017c4ca752597a9fd363"
+ "7668bc1a92bb1556553f28d66805bb47f1ef91908ce098d452872da9800e77e1fbd43ffb"
+ "0ed6fe6a62185d4be73ae96c9241b82cefb2da22",
+ "06d14107b08354e6a41d7d7d50c004419db8bdc50db43428df5e86084551237223c498bc"
+ "e71a17e25695bc438c5c09e009c60e2",
+ "040088c1517355cd417a698b648508fd07a457ac13a49d1bad17dbfbc9735ee58343316e"
+ "3eca570bca130c753e17a69fe5bd7baff301397a697d2113d94daefe6be491ed3edce944"
+ "9c707a57af3a164d172cafece564d686fe0d25725c2919c60889af4d0354b05117",
+ "0f3bb2dd9eece25c56159f501af8b619a8c279d7ecbc08ee2af6b82ead80375e9c07227b"
+ "73a10918d8c89d1a2b12cb76427a7b4",
+ "0407b224d8d9c0f11a8e09ac8d654dc6e1119e2c2804510a84ec61f9017899f9613e37d8"
+ "166e0fcaae16c3cc11e9f739968c687",
+ "08c2bd7d02c4c537a308fa40db786ec64fbc2dd4c142b18cf9bcad66199afd4f44cbf221"
+ "adb3837e84173d174e9c0d534720ad3"},
+ {NID_sect409r1, NID_sha384,
+ "e29e75269754ec1194270f5c9e8267dfdd8c696008b5ebc92bb840981fd065672f07f6a0"
+ "f1b19841adfc51b478371e1a0db9c3346a9f0a4ccbdecb7040191a00ddfd0a8faa0e69fc"
+ "f544319c0155d02797eeef99fabbc55078f9d852927c23fd931685424249b87ed0c70a4a"
+ "3e2d3b9a2f92830e7d8f7650c0bffa8f8986b7d5",
+ "099d96d2dc9c79549f031bd5346cf6a8544c312a3fbfc560dc8e378efdfe025b0e6e61e0"
+ "9c04c8bf4133396f993b0906c33dd30",
+ "0400883e00d72c60f22ab085a90901ba3e8a510f19c3d62dcb3ee5066e0be094cceb30bf"
+ "bed7068d0bfdf634a53e2fd002dc9e454d0194baa5d7ae2399965fc4009ea83273676e66"
+ "a56fd35a5939c26ccaf85633adf78b33dbed6da305979077418c625354c7fb6283",
+ "0c213540a452c4f2ef275dd844402dd5ea590f7df41ad35523edff09b7fbb096f8ae8a4b"
+ "aee95428fee03a9e6f6a14ceb90e289",
+ "071779b477245007ba1ef5f05446c4a08d1c2eab550db9c053e4588c9935f07ba87764f0"
+ "fce14d4a7b982ebba89cb056aad8cec",
+ "08174bb56cc85ebe7bca1de1f44cf93cf478d7fe59001c5947c66b837bd3a6d116f99dc4"
+ "f9acb4f378b0321228518e1ba0057e2"},
+ {NID_sect409r1, NID_sha384,
+ "1a538eb447c18494ad5a5ad27be67fa60eb2c5cb2404eec1dbd7244cd802b17ca5497e77"
+ "9d5f779b981b165dab53ad19fd7bf2ea7dbb9b4baea782a43d758202f147e59d6b6b8ed5"
+ "4f4ea084bc18519943f6894d603e253ba3e8e339a6933bc3a0a47126087038e1c813c3f2"
+ "997aae321b7c95a802b4b73fc7db95897b7c91e3",
+ "049f347dfd361a65910e97fcefbf60013a54837f2ae657d65e02397f59dc6bca27704fed"
+ "3affdc3d833fdc621cc5e5f99b92a63",
+ "04017942b58d42da750a366d7e4cf4cf465c856cd911e5352b50bc8a12704c1ac6ad54f9"
+ "465e4fc5402b373d8bd4e4f8519341f133010abcea49c66730ddad7734eb1311b2626b75"
+ "ebbb299a28c9d60937e6833a9b3dda052379fbcf7875f18680924274fa1764158c",
+ "0134c70f031648bf470ccca4ec19c837051bf700c851df564ef3ceb99d7d41439293bcea"
+ "0c656c0e5361db92a03def51d7e4f26",
+ "06c0f9935abc5034a8b0a05e8d04de699b5916cb367e834f13642f0003510bfb68714be7"
+ "5c9e35b5e593eba45fe151d1df56d40",
+ "0930baf426b33eb4afbed64869a22712591db11acee7c4d3a221a1e98048f05900fe1481"
+ "6006854cb90631de5797f91176fdcd7"},
+ {NID_sect409r1, NID_sha384,
+ "7502c755bbd385079a4001b8cd653287dc3054f3b57de19d0ff8f63c0308c64c56f03511"
+ "7a8971d43654f89b52e923947e4760ac72be073136da70c5ad7ca1658cc0a2d2a880d3a0"
+ "c0fe636fdb27b77ff260c4c1ef8a18da8e9fd777d732a37ae9906e6c4f381f0a3d941048"
+ "d5a1f6f2cb8593873fa4bb1621a44bc2bebfbcd1",
+ "0dd226de602af4e9f8e25784bd1bbd4cadb0a8aef525d5e2d57b9f3555feb698765672c5"
+ "099a7d6dd5faaded69d8d68b4804f26",
+ "04007ee34cc7a24e2e693f9409f52796427ed86fa71bf88c923db305ebd5a83bf3b6f761"
+ "2847f16d00f4a25614299a2df92bb693c301f63f177b54f8dd5c907ff318b66c2bfc1cee"
+ "09348c035a4413fa3cf5acde0db1c8af4fb8deaaf8a3a6f8f06b0acfd20c6f0049",
+ "0e19c21b05c82dd8c873e5f30c1e3aa9348327f959a4dbd9c741e233c649a426cf7bd9d8"
+ "e93232e496d0b93ce835f80fbcfdb2d",
+ "042a3907a480329a6169b439a6945cdbe8e4572779c43fa6cd1f15062559dae9eda27124"
+ "02ccbdf03d88a8a68b691f1f16f8f52",
+ "0d09fa4966d171a662a9ba6827fda830b5404f96f635edd8482ee009ec5c7b64a2a6c177"
+ "93993610ae8297efa9fe4c35ceb5001"},
+ {NID_sect409r1, NID_sha384,
+ "95eca932d03f1df2e8bc90a27b9a1846963437cdafc49116ccf52e71e5a434cdb0aad5ec"
+ "cb2b692ca76e94f43a9f11fa2bdf94fe74af5c40e6bfd067a719523eea6b4e65730365ee"
+ "498ac84c46e1588b9b954f1c218920cbf71b167fc977ee2a89429590f43bf637eecd91b0"
+ "ce3be2d66bac5847205f76c06b914a970f543e59",
+ "0b6fdbc9c8c76cb2b822a940d8675889ca6f5132429da795462381ce29313a23bc132976"
+ "fbeb346ed4c691e651028f873ce7971",
+ "040147647d267afb4bdadf54baa3f5131e79dae8103f5b2ddf70e4652f9fc5495123be97"
+ "215b811554241c53023a247936053288bd015205cd5bf0c5154b2dad8367e1b487689b89"
+ "8acbbf44f9ed67a37babbec739804dfe737b324ad663cd2cad79274344397099e7",
+ "07321d12d616dd2ee5f843d6ed7e92d18968b3a76c0e4ccc167790afabad1b7c0dd53d82"
+ "aacac93d98679b203bad88d5ef0cd75",
+ "0672c5607acc646c67456ee77f2c02117cabd241f728ace5117626bdf91662323e756543"
+ "8f46a3e25c048a8e2130e27fa1fa2d3",
+ "064aaebf9f2fcbc843ae1128eb6c7e7d1fce2b9901dae0f60afbcb08c7f2ea1b550e1599"
+ "47deb87dd8959921846e2923880db6c"},
+ {NID_sect409r1, NID_sha384,
+ "8ff68cb00d03e730dddb05fe0b2344689529096c3da6eeecaf097f22c7fa340593106b1f"
+ "6726f06b7ce7358edbcf801ead959438a42f94cdb467b3cd5b17fbbcf75739805f9eadc8"
+ "69c33c604cc58f81591b0b8bf4d42bd53a801f0f829a31af6c129fb4f20f1250f959754e"
+ "ff8c629b85a716b6a18465b6495798c0c5166c8c",
+ "0203d77fac64591eb9a18de20a9d5eacaa1c3ec58a5ecdb3008c2d642e197141d16b3a9f"
+ "dffe61429264f5b420f5e9926659a4c",
+ "04000f66ca09d15d0991b48ce7afde9a148565b73807e435ae0f16c14cd439454745f8ae"
+ "153786d7c40cce3f43a8aa4f0564cdcbc3000f4c919b7a97beba2559a8ad0f85dee40e8d"
+ "f28e23732d7de655262209a5170f94791e255e77e8c8cd64c8c9900092e0ff9d5c",
+ "0859bc752300d4ba5014e302aa4cd2a979b3097dcfde5c59f4bafc5bc8a99411174d2ef3"
+ "f7377df5a09269e3d9461be61801942",
+ "0691ea76acbd5e8137924bee13326ceac8231688af8595718e210bb857d6619c152e1fb4"
+ "6e03fa83bd6b5d81e2463f9260407eb",
+ "054df52eb86c679d8f8514a09f5a3062d2424cdc19fbf6927f744aaa8c444223f1c28ddc"
+ "84b1d135a886eb7ac7eab3c7b0a42e7"},
+ {NID_sect409r1, NID_sha384,
+ "01451c4f09720cd53377a5ed04c907a735477378ed960235a833049d6bad6e6e89958b4c"
+ "4249bf0f6d4f043530c9e5426deb0ec3a12b7feb4860757b41bf602ca95655155356ec35"
+ "a2db8e2657998f56529be4b714364f83a140846308a2973907ed7b08e935173ebbce5e29"
+ "afe1444cd51c92824ede960056439555e7e74450",
+ "057a2e6a59d4871c3d547690237dd9846d6d5dc4ec0678aafc9c8669af8a641eed67bfea"
+ "4b05fd6b3b5357ec4d0caf352691ea4",
+ "0400351aaee4207bdac826ba17e3b08dd7f94c0c8ba0d9829d7bf0eeee7e6375458b5457"
+ "bd787f0ff38564734b3a0412bbddd7c37100e09c4dfbc33d61d69b5a8517baf5e4e16149"
+ "20cbdd89bb05f0420be757253fb92308dfe1de8db822f57b67b393d8a70d989b26",
+ "0fbe560003dc220e4c966b21c874b828874a33a93bb69c49909376df67e5df1652fd91a1"
+ "d73c7733f26c121e7a3b2d1246c9a61",
+ "08b85cf3a14fdfc69cd42750baf362286940994479f6ed7ce1d87af12c5ae075b311754f"
+ "1d37d8ed10bea092bd3d9f7afd2f1e2",
+ "02360bc1f7a98cc87ee2a4feadb98554cce59aa0fbfc087747c7253e54c38815cf91c851"
+ "7f5692f95bc7c3a713fb6ac43a34f7d"},
+ {NID_sect409r1, NID_sha512,
+ "ccd494ca005ad706db03a3df6d5c6e876ef859ec77a54de11fe20d104377df1900b6b192"
+ "126c598944d19a2364b2ae87ad7fd32265d59e1f22be5833f20767793677b628f18e9619"
+ "f8ca32f3af3b41c31e87a98d1527e5e781bff33c1a8be3a82ea503e76afec5768d7f7dd1"
+ "f17dc98a9e7f92fd8c96fca0db518bd143d82e6d",
+ "00a3da7a6633608fcee9ce4253bbcec08d41ee6b00178ceb017de74e24d48fd89107c9f2"
+ "db3556063abe3cb011938f4b4871795",
+ "0400a6123b122d7d0d766897b15ba6b18b3a975d3d8058c9d359c6c6594cc0dc07d9ef60"
+ "33224b4aed63d319cc2747c0660e38897b01ab5fad5e78f380aeffca8d15e60731720184"
+ "ed456800967b2ca47d482957d38409ca07ea798bd892b529774e44080eb8510e6a",
+ "0da042642b3117f30ea5f4b354047b164bd128696b8c00cc6fcc767246daf7483284e411"
+ "009e05218246830940178cb4ebabf1b",
+ "0e4ce613e6976e9e1c30c0c93214a0a37f0632de85eaa25464b69a251d592560b2039fc5"
+ "9b15ed7045c29c268693d7c9e06d8ce",
+ "0ff3ad5ca70aac94facd842fecdf6a28afbceab80b549507954b7dea6da06d1facd11e0a"
+ "88e9c2a549e6971a08d1af75aba8363"},
+ {NID_sect409r1, NID_sha512,
+ "5719e50d939a8d74efb444eb5a77cda48cbb59e7f976cdb2ea2848bfc558718b39ce27b8"
+ "93c229db94bf77992222d1746f8f52f858f85124a28193ae0da039c53d484681785f3367"
+ "f6516fbb8a86560aea9e3428551facc98cdb1e9df8e2f37db823a7abc589f667b5c93c4c"
+ "47061400220a2014197d514217fc252cef5a2433",
+ "0384723c8b4a316b450d1fce0b2645912b8acaeb3cad50860cca43bdc0206ed5b3b60ebd"
+ "c29b3eda305d0d60eeaec261edc24d5",
+ "0400fb89d87ca4282ccd048606e4d321e7ca73244b4d0c9d3df87d54e038a14939138bff"
+ "33c81a9ddd64abdfd698bf103e45c96f97004ff7e1706688a53a5544f4ed0f3f5e1f0fbd"
+ "6f21174166d25a690f260766646cc6fb39020de9327199225e44f3d95c5984fda9",
+ "03a9f5f26eac81dc8ca0a17acc44322d43bfd18edcbafe24113f5e5fad0ef0a3db75ad1b"
+ "2422c7321593e41e76eb2a767a14268",
+ "0c311000c27539247059e4a8d789ed4db93fbaea021272a90045bf6fdd70f4f32cd1e195"
+ "b99ee6f03f4fb57c3a115ffeb459af1",
+ "00db8bb46fe0f99b4e6e1394a5db283e310b24d6006319986dd2c4cc169c775c89d4ad98"
+ "d0fdbc3c0bef6b7fb6b43ef21049bd8"},
+ {NID_sect409r1, NID_sha512,
+ "c84e5702a339259a61b5ba8ec1957f23ffc4f1eeef3a58f383d3731bbaabfcf49ce2ebb5"
+ "97960ac5115a2af1c62b193d4ab6c24433d5f168a1752e40145f19aeb6dee889a53a4fad"
+ "d13eef60e28fcc7ed6a9b8b0ca286c1b3d66a4b2c327a629d15c148049e3a0ccdccf05cf"
+ "22c31956014595e417060627c8125bd7c00f8850",
+ "0bd3136647572fef3de51b12e64b36460bd3a27dc660c164fc705417339cab21f9e1f9be"
+ "0f3da926df459c5ba58b701d306e67a",
+ "0400f45e18834d1933a2a26e95467b6db85d8c3da372e607907798745cd9847bb8f8b51f"
+ "996c7293b51550144f227933ba26722685005d8b108eb3591b164745d116c80afdd48701"
+ "87061c75af9b0c3e87dc8262586af14f4d6b1504d274c07c8e89247196d8ce8166",
+ "047a494645b99a3469369b72cc918708ebf453957b49ac4e209f2edd7a4861d014543754"
+ "e37e1d1a0f477951a0ac2b5826a470a",
+ "09de9e0147e1a268f80836d7db43779ce12e7947caa851d109273ba7e7dc7fc52c601f5b"
+ "f69cffd5adf0695cd7db8de2a64781f",
+ "0561aa76e1e9f2c1d4aaf6e2da143f67166f09199e1705b631d650528e94d643768cd611"
+ "467284a9f543e50520e3e738e5d56b9"},
+ {NID_sect409r1, NID_sha512,
+ "c90bf11d04a708e64b6f94d4cca64b92463eae878c377b188c82c1c5f05a038be20eca2e"
+ "18034d46f00d9a6fc73c4084981748ee9d2915d87aee4e2321f4f9e11c176f01281913e3"
+ "24700d9cb474b7134fcc408fb4a7006acd9e63d4578ed4c2729d8e0d01b1e6174a43a024"
+ "ad261eb644ae98979c3cdab75af357f6dbdf5db1",
+ "0495be0b0a9d357f6155fac008cec90442200bb842d89292fde38b7256e4117284a60249"
+ "b3101b3f19f778b680c0d1d7422b84a",
+ "04011119cd910d4e962f54c9776c9180e7eac2f71cb9748ace4b7dfd2d2b3caef4964c7a"
+ "55caa9763e008de600b727068eda9b98650000b48246cfb7c86e9dff4ba77a3a53dbb1ce"
+ "fa168026b8929c42c3b0251fee5746897916e50f07dfe8b57baab7964447a2fea9",
+ "0ad4ab5ecb84118c33a4b06d1a9f5d2c4f1f3dd1cf71af596eea771f851d0371d2d72593"
+ "c926d7b69b39cdf72931f6bb11d10cb",
+ "0e959201622673d81ca16ed94e9e5be3f38bb8db48f9c09a585aa31ff39f14128d79d604"
+ "a5f93c80aa961c85bbf99e276937f4d",
+ "083099697856c780936ac01aea5e3a4d9b6e183639cd200464a5cc05232df30ff5220dce"
+ "4e2af714c580d561b72dc4969166a6a"},
+ {NID_sect409r1, NID_sha512,
+ "e9b2a33906a1079280100039787377c2971c378b92e70a38ab41dc23979d6fb0c41e53a2"
+ "1b37632407adac6f212341cf6af8605b4978c85c9c16960e1674247f1795cd73b99ff28c"
+ "dca024f5078490513c77114c2f52288f5376872c331151d7b2c08f7794f2c1f9e0d849d3"
+ "2d73636f0aa899988ca561a76f74543b37cbf3a3",
+ "079626354dfc4eeeb51fcf232ee9e6b0130c9bd40f15ed45606bb7faeca8f359e0c3e18b"
+ "f12769254522fd4077eb24bd5454871",
+ "04007ad047bb38bde6ae2593e1e41c36b7efbce1e0ad08def9b23d25b7ea9aa336eaf102"
+ "17df16d32ada4af03dc193d44e6c77e67700d2b9466ecf321605b9f4f952812410800720"
+ "3ac32cfdc7cb87e1790ebf4bae497fb87011e0a81068e66a840d29583bb970e24c",
+ "0074548d1a3df580e45babda6096f4c78cd70945ff190d9da463fbb03a511c45d45dd1c4"
+ "6dc0b9521579fb506bf015f8b835680",
+ "09e04e9ffc2cafdefb600cf61e803eb78cb416304210165fa7c93c1bfefb02cd4a255512"
+ "622d524141de02c2cbd193991dcef67",
+ "01a7960232455f27768acd825b8ef91d4efacc38684d05a900a8512682ce19787033cd08"
+ "c1f2412b481b88ad02dacc0ddaa0ec2"},
+ {NID_sect409r1, NID_sha512,
+ "672db3fb8cc8e5f831be700498d3ab3aef14b7548e8011b21351215fb6dfa09460d18f52"
+ "c02c8815baf396d856a429bb9afd602a10c213af34db80447f4c06ab4bd28873c88eb963"
+ "9b199042d4b2cb13cc364f734fd4ab7bebede7dd4da63decc0cc1f84e34d760013f66d71"
+ "641073f16c08078880b67230f2d6c6bfe17d206b",
+ "0ab42bc7d0e3c23f8bcf928e25f9f027b56f270398a1d37bea0ee5426b944a9c9ba6d0d7"
+ "796899543feedb470f70b2ab148234f",
+ "0401415fe81100f208ec8afd5e882e5773a0c1d46e44627732900c7e1722cd77b3ae2443"
+ "8a8463bf571fd6bb422d7c583439c07cff019c3ef3688ed397640e873dcb20cee9755437"
+ "d0023646d05612e8c360717a2e80e80f2b85860d71f9876f3a68548da7099f601d",
+ "08b44ec25214602de46046b2c94a45f64e9d0903f6148dfedb76a80b8e6314e87bf7dce8"
+ "e73b14bb274a88fa39136a00537779b",
+ "00ec4c5bc88a959a1234413026700bf5d4287a0263fe75daa16693bf74cb5071a64eb187"
+ "78da0a31210347aaa33130602f6b597",
+ "0b6c29b9177e89880f3eee3aff204b866020b3bf77d7c31204af383d9770804660711a85"
+ "79a3f1ffe325f225fc7e7894ecc601f"},
+ {NID_sect409r1, NID_sha512,
+ "d7fd06b89226cfd66671ce5b4b656228c52d986afa7f6f30161680eb0c9cca177992a8a8"
+ "c40167a64165c518c55f678702125709361b536bd928567c97737bd750d0e2e6e0c00296"
+ "a6ca565f7c05cc8c54ae7a4e0c334c6a968fc18a959c18ebbd924457701316a4e999fb11"
+ "084520dac68dc2d69187134c40891af0355ba89b",
+ "07f7aa2216164ba689459ee5d5ca29e70ef75a5b2a4416ab588df1dcb9164330c0b405a9"
+ "d80c3acc41c19f58e24e17ecbc0fa7b",
+ "0401decae837c7258ea9d90314ac87c57aa6d49828787054cc068edc1955245271acae72"
+ "dce5c9cba422bee54f22e11810721c1ed50024cdc9e1b27e5d4bd024654df000bc9a0181"
+ "f7c0f4a90572c75e16b679f4362446993f9920e2244527801e8f6b1e9398bd8382",
+ "0463202dff25e6b9c633b60a3edcffc1a22031cff44dc1b0a5769214693ba02038fe5dcf"
+ "b4a48db7ec49b33068061616daf2fa9",
+ "08c06b72b73dc2655645892447fc0c0f8055838b194e8fad99fc6bd50774e1ed08313eba"
+ "4141018af33af95a3faa20b69bcc0bb",
+ "0958f104326df6008135bfbaf5c2980cba2833af1b4f04b5918bb51ab0a0df637d6a4af9"
+ "02a5e07db3022c134c72315f25972c2"},
+ {NID_sect409r1, NID_sha512,
+ "83b7e9d3ec638fef51d2885fff5490c94e2509c126608f82660e5fc523032f3e85d69d9b"
+ "76af145f6bd916dda35775abbb6d1902bf38880f8b9259822055c5b1bc726c51029972cf"
+ "7474cf2a812f3251aa71813476bff55598d079f075a40c6c41498bd865ce960c518bef75"
+ "a873b9d010965f342dc4b35ef5c5972efe6fdd18",
+ "021d84f070c6823a70f1a74225a472118c93ce9dc509aa6064051ca4574939dcfa96be86"
+ "2069424bdf1a23f62f2868326422e64",
+ "0400f568f018b0dc4400bca3e9e4b0e5bd5245f15dc7acbcf4360b0be2ea5abbb87a3cd7"
+ "6aa653d32858438051cbefbcc4feee6f6b01fdf1e1bd7a2d3825df14f8bf8d5de8250956"
+ "63c3014f2eeedb9bed3c3416d56f805b623f40b847090d6b4b3bd5abc98ea55e48",
+ "03344dc1cd950a9c3d039b6fb6af8c5745395d2a3343d86dc6670580e331d59f6c003436"
+ "7a6df52423a625d70292893961ceddc",
+ "0fb010ba41d651fcc854762fa1437262eadfcabb95b9502a40b50f20cb34fa19ec570dad"
+ "2e0521809ecdb2bff3f4e7055c02bec",
+ "05a9c2dc0c1f946ce33f2f434c156c236b09098365a7f31e238b4685e7cd8c86a0b2455e"
+ "5c83907167c1324bbb37e66e0b2768d"},
+ {NID_sect409r1, NID_sha512,
+ "c62c7bcc860f0e175128e1127dacf935ce62ae794cc4a0ce7966bceb023ac0498641d728"
+ "1fbc86f9ef470bbc77f608f83f8d0dd6299cf08f2cdacc7a9642e4246df131820220e5c0"
+ "5d0dbfceda7f16b86add4793e9b6244d96b5c07cfa23574ceb43e8e8b5483192a92b301a"
+ "a3b37702b8f94f0129d8af1617896b34990c9b02",
+ "0b6645344d17528968c719091b6e2072388881dc10bdb4c7fbf41906cadf3699b30f9c1d"
+ "bfb4796d009480664e6276c0359e5db",
+ "0400b164b075b80fc8b8ec785d5c2ef84d49f2f4d276546c9cf2e17ea4d367828e9aaab9"
+ "85c5cd0882204e293dba0359d47d9bdc0500a0c61f181d5d06ff20d0c41cf6d6cf7fea86"
+ "0075cdcbbab2efa0950e2276dafd4258a39c0fe4c45f3c04f76efa7d41392b4d34",
+ "0c497c621c5cd230fb1e4a4cb3af1cc9d8edf4af5c4af7f15c4ad0a8835b54de52d83bdb"
+ "3433808a67628912a85c5d00aa222c9",
+ "00b22e5773aca4d97d2da846c3947bf9cf2474101a6f0d39d31629a6aa2a4c3a77076a67"
+ "1e37aeb4cee0a94e82e914c8c553e04",
+ "06ccd79ab93e344e6f112c1e4a39e8505a2aaf5cf85595cadc6ddd1afb0b1583d9334cf1"
+ "c48f26e5baa38e05b6b52f9f12c141f"},
+ {NID_sect409r1, NID_sha512,
+ "b5bf38fd9e822925254418475a1ce762a94e336f12b156b1625a4574fee11ee472d537ef"
+ "94b4a4b1c0a73b0140d0b818cd06636653e6c07f0f100118242a7703756f1cb1119b3477"
+ "c4ced99cf45e07e83b7f2749c1a5f8d8c9272d221fe17f7c6a5fb0f8a16af46f232ce406"
+ "aaf565c6b2766a2f6528c82e74fa1c0a7fcfd49e",
+ "0f8c2f770cf5f8e1f900e996ecdcd84fcff5cd959777fd005d721a419123221a3237e398"
+ "34b270d37752470deaa6cea023c5058",
+ "0401f861984fa06f15b801216a1c33672cff43740f0f736b4f4abed5656a1bee33a2aec4"
+ "31680942f2b0b0dce9a9196b49263fe183018633f4e057bb6d70a434f919b9ce4b7d9e61"
+ "fbf46c1d9638100d77881755fe9829a69d696d555b1a26e25ac1a1c27b40f909a2",
+ "0bdd99022dd964306955c57b226aef036527eca481622618fa7395f53e60aa95a275f1f2"
+ "d6e7354d8b55d3e83c85819e818199d",
+ "02f1330f41a86c09205004215c24f42fe582da189906fb23fbcc52136fcb4970a33b8961"
+ "13eeabcec8151cf3b150eaf1ec2dd88",
+ "0439507edbd36ebe4fa5df34d220c1441e1a4175c9b0373fc85669facebb5bda7a4b415c"
+ "269a7add207b461525c6cc94b7f7b22"},
+ {NID_sect409r1, NID_sha512,
+ "6d3474770933ec01b76be789304b6fda423b12a0ae8c87a5ea8d7ee9f71300f39440e1c7"
+ "f5aa4b47c1a8628cfc3a490b15ef292a741344f40a8fcdd02cf3863bf3e32d53031f5037"
+ "03deab17fc52b3d4032f4e237dcc27231b85d3fd60b49ed7ee40c3344948d87c3f47564d"
+ "20a11d50e4e520bd16c8701694fc70901a5da625",
+ "0144adae951fe897d5812ee4a16c0be4c86c5e57e615c398f5768a1223a9be20fa82cecc"
+ "f8a16a31432bbfd17e594a4cd8a6a07",
+ "0400bce072255f7cbaf565f82db122e9c582ffcfbefadab6d79680b2506792028b200ca7"
+ "732a98322c290916c66c8a8ef77df6a2e501b4b6f65e678223bdbe5f8ecb68573ae3d7f1"
+ "11dac37d4fe3c0eb768c461187fc5859b13452381fe676257aa445bc7f38b4919d",
+ "0128c12479b7f0630374880b214aa26e4e8626deca57148a6c6a0e37a97e89da8acbadbb"
+ "fe7db28a0c5bd17303e1342af711f25",
+ "0a95124ec95e35747fb568e6659ff31867a4cb7c00985b36584201d1bac0775653e0a8b5"
+ "4cd9a9067ab3de434bc2cdf29ae287b",
+ "0257e5410a6f0bd94fb3b5b10500fb45b501a3734f0c718035a9a1516d2f88e10d1e38b7"
+ "0c791028e262e0c3128cb84e6064ea3"},
+ {NID_sect409r1, NID_sha512,
+ "92ba7aaf71f625f7a2e024058dc8739da3567c306da4a812ed9e1542b7d1e982c1608216"
+ "6a59720203f4524c3bd463a662c26a82ec7b4376545206e650eed0d3dd7909dfe3810981"
+ "393070d15c45dc4a75a8c5bdeba533cad1ec34fd20466a61e4cde3b25af9a80a9a54afdd"
+ "7de1cf2a74ba32d4ea0082a037775413c61a8d1f",
+ "0a51f065fb32c55bf4ff6f18ba9d488d35d9f8da593adb0ab1632533284e0adc43ccdbda"
+ "9d9507b9862ac63b5ae7b0f78b479bb",
+ "040080e2f7ef17a11ae66172cf1c18eab12aca4c2ae06b8106aa1066677a93538e3dca06"
+ "26e836249eb884a382c3b726736565c3c301e98d37a17ea736ae58eab093fa7dce3f1079"
+ "1ee9ef5ec00bfb27bf3c705dd633badc94642c385dcc276f9b1fd5e01dd76ce944",
+ "0d5cf7b3d28459db8dd69c314f6464f770c31f239a12656368c84c64693f23733661081d"
+ "20dca9bec9c9659a8124b57a71ffd55",
+ "072ba8c1b4bfeca62e96a5649e851e9a311d7685603a11c1c299f5ed8605adaf27cae656"
+ "cd31335a7ae363cbae5dc7a39512c1b",
+ "01bb9819d25a211548461de4ff973ffbf475230baa161558d9cb7ee6f2e682dad21a465f"
+ "c2ae058121224f8680296d30e3692cc"},
+ {NID_sect409r1, NID_sha512,
+ "b3fb9e48c333201324755a81f3ae5d4f0e2ae7cd24238fcc66d858e3aeb1ee03328660d6"
+ "399676eb1b7d8285ba571e214d935bb45516fccfab57b8eb4c3d5f1d7357c768eb7b5e7b"
+ "5710f599614bd4e92706eaba31f8a5e7e57af7ed13066af50b4540ccdc126b677789920c"
+ "ef8543907f0ba9dc92aae343d3425bd784ef483d",
+ "095351c0bc07acfabe6477fe85f97eab520dc96bdd58b44b036328ceadaa56a1904d2217"
+ "c5fd25155ff2aaf9005a3e2687fec81",
+ "0401c1311230cfdf5824323448c68ead5e5885ba540a21ff90b951f85d84d78e26da035b"
+ "fd99341b5901e1ebb18648a8dbb996fc9d0017a037929496e560cd1c936d9eb15f79fbff"
+ "737201dd880a69dfec31209faf5bd2846e3e664c668ad3d6500c5ed620f1bcc970",
+ "02234bafb54cad0d0d51f4b8508dbc8d014c303d90d21bc3f749ed7acc42f0335c5ab6d6"
+ "0002d3bb57cf07018e9c13b92c0a39f",
+ "04d0609f06320d69870a3e66f19cd46a2e0e3e13fb8b7785163a7b567bf2c0f437b4e30c"
+ "c67da288a3b34ce3110f6d87affe0f5",
+ "06c46d0248f7c309c1e5b80ac4b1459bf897e42f8f037031f5bbce0fde50af50cfdc4f60"
+ "d5ad3d1af152298cfe77dcab287874d"},
+ {NID_sect409r1, NID_sha512,
+ "9ec5f7d65082264b8a50be772c44277a73ed19199eb275fe5976f9799d8629fcb4a59a8d"
+ "55074cd2eb2a0e02062d3f7cdeb05e62931a24fd1aaf14c257944d1b42eebd52726d6fe2"
+ "81211b39038e52baae077ea4df89675d860d6ba5a0f998d049614201b872e134367acc90"
+ "066ac602e478ac3e43c3ddf4b0ca0aac1a68591a",
+ "050245c1682344fef23bd549ac8d1e8e44b2840c43eec1cecd33daa4e9ef6b53f496104d"
+ "7432e14248682cfd6f5b4853b65adac",
+ "0400d2f8fe524b2108e375c9603598b555d6c4c7724c7d11039178037b3a4dc82b66c3ae"
+ "ffcccd89cc34dc2b2f6695892323bdd80501f98df95fc1837ec4d5239cf55e97d6b489b0"
+ "a8d7bf12c1ccf95f689ad23e46dcf20dbb531f5179e754f0c29c8757a1dc67493b",
+ "0c683f98253406c6587d87c57991fe5caa3f43b451875859feeb81176b732f1c1eed0ee4"
+ "4d1905d41922878617e03dac53562a7",
+ "00cdc9bc7d670a1b6794fd7da82d2ad1a0e92b82ae32656ddec3aca4de75f407f20fe782"
+ "daa0004317fa3f12cefc48518298d5d",
+ "03ee7c75810c2c05946b53e2f24feaa697af35174402c069b9fb03d89d73964c997eca4a"
+ "5d6f9482cb23c8ce337a374ffc3e186"},
+ {NID_sect409r1, NID_sha512,
+ "61d657bf472676301503f6784b7286fb39fb4186bb88abf1edacb4a2693d0a1e2b77bbf2"
+ "758c84f2cbfd1753e20841b1cd4b456400d53f4d686e666943f9b6ffcdb77f510be97536"
+ "e9698fc84ae347d483bc8984548d1cf86b9b40d360f9c0dc5bd1c55868e26fce1460ba94"
+ "ef5e94eb63c9f0776a0f446c0cfd4106d9f36352",
+ "08d3b0277f0e9fe54581d3a9499ccd7f015c08339591326859af969d2a26284e3b3beac4"
+ "a0b74d324ce5cb5f38c7995e4e3a41f",
+ "0400ae18564ac04b54769e17df84aa54903df58decb870591dad73dbd712693d901f3f9a"
+ "d43a71f23b77705de2b4ec1c3bc616356f019810f92e80560979ac6e72bee505dcdef15b"
+ "4146185d2f8f5a955a4555523d982c34bbfc1326024410dbad3349e4c4e01c242d",
+ "0e52dea77fc59298cb06fb1401d11c662a04500f0470965c4cfaded13b339bde52f4fa04"
+ "c76a955faac16784f443b1ad9dfa0bc",
+ "00c917d487d2aae1651d76147de2a706a01c8b3d223afde7d20c9dd77cc2329bd3e0e4fc"
+ "01255b7c4ed1baae7d26667bc2e9ec6",
+ "0058c766fd514a405de91a4b9e99fc0b0146d954dc2e2decc2f3f066d0fe192832ad37a9"
+ "40949ca4e9abae0602248b3b56100ce"},
+ {NID_sect571r1, NID_sha224,
+ "8e14f713a2c427b1f79491033994f76acbead614d12e73ac6f3f518f2052a10c1273aabe"
+ "628ab38e0d3d5f8ff254802e9f44a51367bf80325b6fc39d907a37f731372864747b1074"
+ "9ea5cb3d3a83da39c21a7b02885a8c1770e4397cedc958e4baa21d5007569dc9dd1e45d2"
+ "181709d900a394454090badbd0cd9c2cd2369aad",
+ "0f42afce7f7b3d45f3f925ab29fc3882a89c9f585177887584703cf8bd8fc572e677adfa"
+ "55b402446fe1e90dc855358d92c3267c35be9674b40c2ad5ce8dbe6a533c44b0ad8d2b2",
+ "04063dbcfc2d9171a7cc1835c1f56ecadcb59aa6d5852fde264ab25603f06817a20f2787"
+ "446445be8b2ba05c70fa25d9b9e34d5374febffeb536facd3da52d43d69fa7af4d4792c7"
+ "9207686e0629de47916af19f9013f65fa3b5f9d196916cab2f765aff31adb5a959515e83"
+ "fe3e00e91843c532041ba15f047e978bf2fc69627bb5cd7f3ecd74cdf1a8d623c1efd23f"
+ "c0",
+ "3fae665eb7a54f51c522ad5721d9e2648f13f3d84e3d64c8148d59c662872b5cb7d911c2"
+ "7bf45884f2ef717d72bd0569d9901f2308d9a68d128c042effea148cc963a8252f1426e",
+ "1df705ef13ce900ed61babed02e121dacd55a881ae32bd4f834fa8e362d059223b29ff3d"
+ "b835fa2b2db8fdb98c21dda5ef744cf24d0a798f501afa3a720a238ebd4fe3976a179b8",
+ "1b1e98db422fd48f1dfa049f38865f8bf9ec5618fdbfb50f21cc838051a1493e4b1e4f9e"
+ "a81156481e5fd84124fbab740421173862c63920e3a833aebf0762e7b5b39a1591d27c8"},
+ {NID_sect571r1, NID_sha224,
+ "38b60d27ff08fb191811036dbfd5b39e1cc3427ff70efb67c851e9cb407f9fac6f348d28"
+ "9df98d055eec73299fcac068bd0fd9ffa3c5d244659e4f714a58d79f6727f323a7ee2636"
+ "9000e90e34e106f99f5ae2ae1b64ee89e5a1d304ef20c071a7773e9b977ed3d49f467d30"
+ "0a881c8371041394910f9c366942449045568f01",
+ "2f36613043cbf53ad36e2b38998bb867503359ae082d07d040e5a10a43e06ba9c91e7c73"
+ "308e41e2391b65e634f83b162cbdf4e7a44ad818fb93a978af00f06be06731d8c5886c6",
+ "0400fe1afd356670e1dc6bc195f9513f1dc6b03017416b5252c7b56153da538422e557d9"
+ "918298ba6c78283efa0288c0ac61298846a6f8adf74df21747cbe7c18a2b825a330e843c"
+ "d8018b7659f0a7e8e7ae5d636ea4d1d5f3a1f846d4bf3dfbd96c6ae874354db6faedf02f"
+ "75c4d1d8bd6a3b61e70ce58e38ea5de8cc16828f87a0667614f6640a3023b7f4aa93fba5"
+ "77",
+ "3fe351ff6ddf50752f7dfd8e5a72c9faad77dbea303fd97dc939eaad3aa7fed466fc8939"
+ "a7a6bb7abee63455284a5338e59dc067236dd699bdeeae1424d993a9c76fb2fe9595423",
+ "04a0e13a9fde9f2fef417199f8584d0f60b2f04aa6b7524cd2a2826d63043b2188ca977c"
+ "9567fc1ff292ed480dabc01589db8734c15aadb4ff54a552a7d9e66829fec1dc919dae6",
+ "01bc7d2c4ca9300d7a3001755ef25231d2852a7b9a3e91baf21f2a2bd2ff305be8a9de1d"
+ "1bcd7bd9eac4ce12ecf8a91c0a409726085382fb8d2428adf1b42b37b50c9e8e0535d7e"},
+ {NID_sect571r1, NID_sha224,
+ "21709eeaf9e1953822294a478dfacfb205fc25f447a73a76a32601c00784cbf2f9ebd41c"
+ "22721d70cdb3842dcaff4a4f208d41c0816990e421cc4b8538ac2f347cdd0aa2a39f1aa2"
+ "6ace8cb6a606b23f6244894d4594a0f6a5b8f6a695fd66e1a41e2eb6a377017177fec56b"
+ "b58c837e311cd04c5b50575faee32606b9636ec1",
+ "2e74948c46930cbcd9dbe2325539c7dfdd910f309fd610e6599d425aad9ae230a8d46819"
+ "70a14f2a71fd08030d0a40ff40dade7de1b06a80441bbf7e2fcf1809cff39c7ef88bf9f",
+ "0401b75f2d281592c288fe6d5479a4e21ef626471819850cbbdf814593bae7e6ce2a35a9"
+ "78aea354649d979f161543fd4c12dae0efcdc2d95e82ae5874b9c04a2143535097b8a17c"
+ "6800c7160c2efa3aea1d18afc1a00b47209dfc750a5317ddebff04bc4d181f238d339a76"
+ "90c24e55be2cb0c01719d34ec986a07727f2e412aa72434efef4d64ecf7c16e2e75ebd7a"
+ "d8",
+ "0d3ae3d8e5e01ad838a7cc9a4d9b3e41eaf9894aed1d1ba597458391d4a2ae38c5d6efdb"
+ "4d91761a415812d77fd9ceaebbf1ad49c282e693d71d89f0e2d1bbd94698a47f1f30890",
+ "1e2e9e2633885c85f70208de30ae9b7f72950e2de980607f6d0e73fc1fb2a4a8afc63882"
+ "06c11b081540bb528a94e5386ce77a2d5c7830fca19223d57c1efe7ac488e69ae07e660",
+ "1250d1b920324919ef81865513db461409f6f8ad82f658dbfccfae4425906da306ba10ca"
+ "c84cf5379b6c1d8b252f3c6f86439413c617deadfad38a234bf2b0050fdabf7719bcc9e"},
+ {NID_sect571r1, NID_sha224,
+ "3a131fabf3dc97334f212fce41c44300440d16de1d6060450875f7276f53c026e2a51168"
+ "1b5a8d75fc0d578546339542833145f7ee13c708df33e584445a75a5538829286480d339"
+ "be7c777c03c998a6d3f037b25799ab2d541021502a0b02a9b9c337a8b176c4f30e5b1864"
+ "85a6103b1d1563ad4ae73ca806a5e4daa92e9100",
+ "1b5fab1d36f6f6d559f65d8b01edba610620fc3a38307b1fb1c5bd63e7ffbd4a9098cb8b"
+ "df50975a873f5d047ee2b627b090897a7fb5f56d3f4a0f3528179e7c969926fc0d3b0e5",
+ "0405eb8c5a2bfc86aa9a82830d665296f74aeffa9c5b38750d0ff51d01c2dd0fb6f2209f"
+ "8ba89ff07297ab9b1b06168757f48cb6eee618a7b44f1b3902187c33208288f35a066659"
+ "2005334c203f4ee44fdfd5f99686b18696b3433f203dd148324dcfaa03a0a250cf606486"
+ "ef11ebcc1ed1839a76ad70909d835a4b30a014104a6ecbb284b33f50bfec33d8b5ede85a"
+ "c5",
+ "243889e7ad32076a3ea436356eb572c1b4ae402d0218d3ee43927eca0b4fc21a19926eea"
+ "35c37f09de4766f54e6079c34fb3c174afb953be1aac46d675bd300e717dfc2d0c3fae7",
+ "1d87b52dde9f502f02a502e7a331ca6dfc6204922fb94886efbe3013446d08240f6dba12"
+ "10a76eaf804562aa92a14d220d59b6310d6caea0274a5e1e8aa3c6b57f239191a71fe3d",
+ "2a5342df6908841b719f80ff905cee0ec3fd8be46396922c3f2f142393714b97128e0839"
+ "07a3a2343f0cf9aac73313279ed29eb44017e2a1cdd0fc86e4b7c536e9f7eb1bbd192a7"},
+ {NID_sect571r1, NID_sha224,
+ "679d85a762f2574b0b31b516270b7d33d5e166c83e91a0f48e0f3db20b52f42f9e6ee964"
+ "8cf58267ffe3b713723cf3df52b5fab5c14db1e7189f7cb7170bc6ec7cc71946745e152b"
+ "39180f828688a5b6c0b2957ab94283b90052a3c6e36843c391aa8810f9253b639a8d5a69"
+ "aec10070603ad7a99dcedb544858d057a1d66b89",
+ "383e70c71b431eedd4574f65d01fb0304f7744d668408c847f7899eae44770a7f3243109"
+ "740f177d7146a27748886b7b77ecf3792b512e8d8e37c3bf4ecef2b1253df7066498f01",
+ "040769dd91fad550980225877d98f7c86963c88be141f91f7a3f1607e0cc6dab767aaa6c"
+ "eabaf46b65a7c80b6a494b0dac1da5d2fc8c5b07ef7085ed1bbdf4273da3665a6517ea1e"
+ "5a0282fb94b4726472248f01ee43607f7ef969446313e849998fbf0058c8ad5e24457006"
+ "b84fc0460b74d86ca281caa174e69fbb68673e1d28ccba17eae045eabc1839870831246a"
+ "14",
+ "336909099a1540e6f69172d55e0c88a1afa99808005bf09cc803ae1e4e4fbeac2f77f984"
+ "bddb482f1f13e4430e25e36962b1a4cae00f1fcd7f2c7a17372c91673d8286f9829bbdc",
+ "290055d578012a5b7d88fe2f70581a0fff976756b4581875cf5db07e01f09c0bdf6ab70f"
+ "fb5839567583d53c68e31a27c3fde12bd4f1e1315af2f742746277b1fb1349141ed3043",
+ "1480c63c8b90c7b51e092597fd8391a237b07f0ff7dbf615e6bdddd5aa880db29c9b9add"
+ "5bde7e0e81d9a37f852c26f21d750cd2f95520d16da7404c2c3feee1489aff09f298d7f"},
+ {NID_sect571r1, NID_sha224,
+ "236152ad31ce2ffc0dead3c142cf6c770672cd2e75af4a82fda1a72e1c775cec9b481c6f"
+ "3e411644df7e7ee901c501405620af4b6e9667dfd46091788daa95ef2c6c9f5c240c06b1"
+ "5cb0df51f5f058d8a7934bd7845f007a35f99fa97200b20f3b5b14fbf1e372507f3b2f37"
+ "7e8d07d30fd3e222f398f26d8f428e320327f901",
+ "02261d4ead21f02fab19bbb0da8c272286704c8f0c6842ba47ded121e5cddef79fb34e6b"
+ "9694f725ca502949faecfb21e3cc062a2b4c654bd542d9a1fe8d97bdd0905c510aa0999",
+ "0403ef03980ea9b754b655948da63469fe526ff0ba2c0f572981d02f5693bff620b55b8e"
+ "9e9f9d553a78a0138072369775c7976f028631e65887cbed62fb447c9f41da86022f4b41"
+ "ef04446eed90f2716a7aedefa1385db9f5f803434517fcd80571adc9b7f086c9787b7630"
+ "6380a375668b05fbed30922746fecc0cc16f189dddab676516ed1fe4d02855a34a909753"
+ "89",
+ "0b309f6c53dee8a8956358df45e72126ec76266d38babff185d4db1d449c8fa9baa4b065"
+ "1af5f5b0aa70dee3dd55623060097e2f94ed12636961a7c0744b38f2f137bca239f974b",
+ "2b42395206ae79bd9df1c729856101ec3c4a719616701f836c9d69b542b59ce973d91951"
+ "853f89a0717abd4b929bc69e59cc379c941349dfb4f98d49f9dff572c614242fd370e56",
+ "1ecad482a8eadec6800a9d876a382125eafaa7bbd950fe5f0588126764126eb1b3844240"
+ "15c52ed6a335668506f25124aa78d98ec5739fe282af0c143c07da0fca53b9733e159b8"},
+ {NID_sect571r1, NID_sha224,
+ "ba3f02c4847fae035d747db246fe4e82fb9224ff9cf568a6ae548f5dc2befb2079541d2c"
+ "f9aaa6b18c281a05e7ddfcdbcefb25f41dd91cb3092b3343e16985e91c912215cd99ae4a"
+ "099baf628e33a7b277e3c36a13aaef85418fca99f64d73b789f23ecbb76c3095ade0a5f7"
+ "f34836a98c5be933b44a94a2eaa3f99b1d8e7937",
+ "316c78f289e1860bb623082be9d9238b88e38c5e978a868bb90f776235bdff4eff591877"
+ "b7f350cf14c40356922b2b6aa51d64990360b2b0e44d6941b5dd9492b4f4e1f42ca163a",
+ "0406f4137a2c63b6b79138027464135021b034f97bcb2493943df6be844f1657a97632ac"
+ "80541a3b43ccc828789517efdd9f86ba171c1262a07a6b337bdb0c8d5f018302a8046a1a"
+ "8c0425cf553554d18f6cc97f0caca2a7eebbf266d57030014273f701562d5b1444240b9d"
+ "22060ac9bebb37deec393cebdad21ec7f13fe5c7f1752b4261cc2feddeb737284a6eec36"
+ "63",
+ "1e0321344bf364f1ede39a49c8051f36875ad78e4b080ece9088111739041b121f3f334c"
+ "6e923777fd716a52be669d6e45f381da11262fb4d09ad66dea74ca115838e19fe94b7f9",
+ "04f24ec978c52ffc7675a09334a895e044eb8eaf04d26c094d7607b77ac4168a02a972f5"
+ "77880a0d0c73f218815e3a7a70c91c50734c08d374a15fb42fd13367dbbe08fe9c2d4b5",
+ "060740270df0e1fdfb8e829c9601b9901223b19d07e9d7d422b9bade88a50fd6d4ec9684"
+ "2afc45900a0107ce85ea6d083d66ae202dba3a32e50c7c3af951cac7acdc6f4c406740b"},
+ {NID_sect571r1, NID_sha224,
+ "6d0372b40559e075af56af853cbe18ba2d471b0fc8917764abcc69102b03d5bbe1fc1245"
+ "8215be66409c26c89f67c72a8933677a07f88993af6918acb074fa915fe883b24bc3d191"
+ "ff1b08852f07eda98977e70eba072d8bf189cd545230f59559ac05f1fa3f4e65886d0bc2"
+ "74a6e02e2399812b2bf91abae81e21279c5de996",
+ "2c1bc13f8320d97a82f3d9354e195481902214e16a4fd89332a0499208e91d50e5cabeb4"
+ "927ba030cb42f5bc53b10f500fa646a8c88508cb0d63ebfce5c4bd574c527d686c735ce",
+ "0402210791ca48aafed20de84ef9896a9c7584081f850b75884908c7b3dccc94e221401a"
+ "6ffd982f292a9d5f9c1d066ed493da948ac7e93977dabd7b820bfc0fd21cd8d99c072bb6"
+ "9c033574c6ce7da749ceb480b4e00bb1a58203bbbca5c16923992cc9767aba5483e4d46e"
+ "d39e71000a1fe920a4c1c211a14e63ace03635a2d77e72808e0664334890b819b3caff64"
+ "a3",
+ "2e3db2d82c4b9de2bc0dd0a93c1c5b385f75ad03d0da527a034da2876b42e43cd88dc648"
+ "33efef54af902d85c568bb8e71684bb16b28c32d80bb3e9911cb1b74be6ec520d99b381",
+ "065f4715e87ca3541ea695878ed5ccb7d2ea6eed5d6fc5ec29f9aa8deb4001cc7c06185d"
+ "6ab2dde4347344d44f8300a1e92513af4690d713762336d2e6a94d3324a224f06eeadeb",
+ "20104e0767530ce2f4351af4977b52339f34d13e458de0482bcd58ab38ee041c9adc7b05"
+ "650260d919b2648e2f820407fd60a8d6b4b991b86eaf29c2c4d12d3b0b45cac2ab22c5a"},
+ {NID_sect571r1, NID_sha224,
+ "bbfe66c82bc060bd14fd0e40769d9b3a026eb447550dd9f118c30d8448f725f8366edef0"
+ "42447962ba7f7f833b9e9094d0ff600714697e632626e7d12a592e040bdcee166dcda939"
+ "52323191021bd12f3b1647d0f25a41739994659dcbb19333ca30f46f539c6f0a5c354cda"
+ "8969a1eda572a309950c84c7607eb8ac20163912",
+ "13bd80eafa67663e75d7ae139bf285d2b9f1e03d8e32153c73e26d06e86d7acad22bde9f"
+ "121a3f1ea674dcc1fe67bc7f5398d5e92555056bc046a02b0ba86c2a0dfe32e91add5b6",
+ "0404c01fef7f2fd8ee61726af1a2d046c7ac67716403b99e021082e96d733368c6c64d04"
+ "6986fb01a6b55cc930517762387eb2fa4a8eda23c700d88065bced8595188760170881a3"
+ "290189bfdc8e7a710522ab5416182c9579ca255c5009e6ee6604ab033c1388639c0f7aad"
+ "84642290954db9f4f7fbffd17481eabed38151160457d68ebdfd8695b5035e4e6e06532c"
+ "0d",
+ "3c5868345c5314aad5ed3a74488a85b2f049396022cdd1de855a0b33c2877f72e871805a"
+ "f3ed8fd7e7a392c4ff63acac6a6f0c431ce7af680984e8c81d0350abe491a01f0f9268f",
+ "0c7e96b9e9a5935ccd51b901aadab6e01ebde44f57e6f0b84e7b58ab4f62ffc0f3f3f980"
+ "665c581ee3de233ee49d11599529348f1ad3d362837c041cf98192bb324f577e973e1c7",
+ "2226922271fe8307bf597742618ea9c1c271c22c25b49aaa7c9292a81ecce2a55250415e"
+ "a2ec8ffec54bf0508e64426cb9cd7177265fecc40e056e96cab661485e789f0c435b72b"},
+ {NID_sect571r1, NID_sha224,
+ "b35e9bf686717ce3b16a59963a32a2116130453b161a4e7ceb27b755856add836d779696"
+ "edcaee3b5c986523891c8836109d431e55c23afbca022437ad19e6777efabb6da3bba1f5"
+ "f44f905395b4cc7c9210590fd38da621582d059598e5e4569e904358e0dfc0dbfda4ce75"
+ "538aa97480912852bccd433a9b96c9c66e9597d2",
+ "30834b0a4284097cdda2ada6947c6c281f7290a49b56becefea1e2788ea3ef78fb968076"
+ "33c47c25138341768b241164ce0d42f7301728b928be2c047f2eb60fc2f844ab77306d2",
+ "04003a21f0d8e01a64b235cc455c291e3fec8de12682f05544de207d910c7c24c4cd56f3"
+ "354500d994380ebaa0b49a7604c6233a9aa24934c550c0e609f65fd4073cd6c1ee4170d7"
+ "7e067c83513e4acbdeb8343b3add40261edbf7c8fe0af7417264830edabfc40200283b92"
+ "484630741378b997c3f8bed7285decc6ef8633aa804b3846d3b4517e5ad836dbb1df4758"
+ "18",
+ "0031afb24fbc52b01480754837cd84a5165d5f2ad1a1d572b92ab546c049413806f0f523"
+ "9a77c751af4d57a84786ed1c11bc76123a82e7db3c0495b2fdc5fb9c8720eb7afb640c1",
+ "07a222cddfaea617f1190a0bd88af4d1983d2543dfba25c5036fe24529bbe2e382de89dc"
+ "1e36c1f6df59c8291d1c4277198084902e5619b64128c265bcf03b7d8cd6b663c225f11",
+ "1ca84c146ebbd16300b813621d503d8c754e4b11446d5ee31cbebc71f4b85ed09c5c94bb"
+ "dfc3570e8882ef790393234c5ee9e52f7d5b74ff4171d930af817eafc40ef203a1ce613"},
+ {NID_sect571r1, NID_sha224,
+ "57b5ae7e95c638b258d1e09b3fcb4341e203f5706862e199b103c8fdac72cbc5155e5cf8"
+ "b300a0b3fb0ce1f897c45f7aefcc528182f73dd450cd84d5fe9eadff3f704dc2a01b4e84"
+ "7c22df430efd1c66b0199f3e5b59348af5386962a5ef25204fd230b54d58d7fae801c086"
+ "f8f405d3d0aa7a9a9da15c22b868817cd897d853",
+ "0c81a79ced1eaaafc31b69a40d9939f4e484d625db6364a8e589b6b4d336d458b44287ea"
+ "6c6aa7661113fc07806b147ff98216fa0c08708dc9d651821b922741deda522b4e436ad",
+ "04025f9b767b8796466c1cc8a1fe6286d591c04a0d115133fc7910640032b898a5c86547"
+ "f57794e5aac0148996151d3ecbe0d5939dbff5722679ecff378e3f21bbf1354b1eb294d1"
+ "a30074c2b91ef3472e60426d2fe182ccc678aa0abb8dda15a428e4f6f1ac401b015b2b7d"
+ "83535a0a92770cff7666659e1cd33941bea1168cffde82db0ea83668c2d387e6f4bdf28c"
+ "c5",
+ "27b407a29553203b829a87eb25d6d140e41184634ae1c64c6ec38e9012d0b06a1f4ad987"
+ "7d7ac4236a22145095990233e6c102a0052ba18cf6e47e289cce4f2ca21514d8868bd68",
+ "02416e11fe2f8e4738ecff1710dc827f4e03c8e7f04a4f52e755f0c1676abbd122eb9751"
+ "ec1fdf6c7ba04b4e29f8dee52bff7e9e726e28cb3de6f9abf2dbf58c0519ccc7d70f076",
+ "0b96f107a26097a468c1d410bf90e223cd72c5ec98d4ee4ec2e32259d7670d7e7689e62d"
+ "36549086139f6111884530e20f908d7be1edab75180c81a70ece341f7eda6e4a43a5ad3"},
+ {NID_sect571r1, NID_sha224,
+ "daebfef74b452f039c999ba0528be3bd9e16deb5f46f6eae87b63db8b89952c949fd7db0"
+ "8311871eb2596865eed107aa065f030226ea675ee3256c31a3f85ddf4c21760582144e07"
+ "af208f33c5f47cc026db5403186a65a47940691ea2d74ffb1245676260ef5717dd879d8b"
+ "5b72d96f87fef5f762d4fd17454cb5ed83d8a11f",
+ "2f24670c0f77d2ca0266a743023d2c7413d56d0b5ec77b454ac59087efc4ea4d46179e10"
+ "278e4ba416ffd8c3f9786ed202faf8251c0ef5a9ea5371fbb35b7afe3d15a9cb4bad975",
+ "0402da72b8ae64c5ee717c33758ec26153a342936f9d41dcbb136590e1303b0e220ee84c"
+ "8a06b83d4d9fc924b8808de94dbd780cc8243bc4448efd27dfaa1572aae6abe574be6649"
+ "3903b3a95d962c48a81c48713247801e4ee630ec7956c9989023ba16f02f5bd1ef2edcdd"
+ "1c8d314be933225c64b7f8a80542b209b944e1f3fab95795ffa134e7e28e82307dc62c29"
+ "62",
+ "2bbb9abd2732994011c8d294c5342e8b1f7f3c1f5718187e9f75832604b43bf75abad5dd"
+ "c85e8d92cdc42656cc9f3349afad3f9022ccbb4937d9ffa9cf48314b604e82bda13475e",
+ "3986059f2e096a3675215698e23b53f471c578891f6d721a34a0d231d16348d5bf9853c7"
+ "9c4f4aa94642ad06cb7bfd11f724800cb5477636b6fc0586fb6efb8eb9bbef62329a884",
+ "2beda064eb3ffa1c3b5336613704b3bc3d4ff7b0e977df16477c7e33d480d678804bbdc0"
+ "8088186fbc4764be398a26c13f88bdd23e844be0d7ce598bb87c1b3430da02ae96b3767"},
+ {NID_sect571r1, NID_sha224,
+ "62af0493ae79d71b552c4647d1fb7ab2f282a91cd44aebd8ef344dfd77b521b0c0a3f72e"
+ "4513c8ecc0e4b84efef3df9482a07ccc1b740c571c5e69cb913740a792aa231b9dc87edf"
+ "b72bac188293c6c6e788cb3dff32e8f483f8f34e21ee7efec71302cc3bdbfa47908a135f"
+ "6ef3ff179dcef26d1a3987f7be967a6c0f799b0c",
+ "20985f2c6fe3ea04bdbab66a8b6167e5969c073b9d53cf3c77cebbf73f4dbf75e601620e"
+ "c9c3107bf3fbfc6c79f8f063409bf8fe1d14b19e323d857e23dc05157d270c7514137e4",
+ "040010712d50ba7752962b140cfb943d9e8dc3bfa497bfe81c42606f4da5157656fe2ba5"
+ "cfd33ddffa0f27fabef8e267688943514df45e642ee0454e05b49f7c00f5785777897d22"
+ "5b01a2c7db6595c6d4c55110210c564cf102739760e7f5a29706fcb2515d99ca00949d5b"
+ "4f291716d0aa1e3a47efb9632410f60e2fee1ada47171f902f632bee85da75c7f3c895c2"
+ "4e",
+ "2f26eaba6452e687af452d5e1208fa011e4c84ada92a38f0a204a254641c23ffe1c184fa"
+ "8bfaff047db590ab40accda408717e4f30811b75cf3a5877ef99279476ab924d92565bf",
+ "1280adcac1c79352635f4165f9c5c1b6e1e6e33bd74d781773f483f637462f80340f8d22"
+ "cb24c9db5e49ace95a676df3dde53c8721f672006382ff806410bfcdbceda50e53285e6",
+ "07dd52973ef30dbd480047732622fb1b695fe3cfd080264d2aa30a6ff3dab4ab362518c4"
+ "f3de4fae042fce78c0c8fa0e763eb187eae2ff8f2e79b3f38cc3c1aea897e1f28b71a19"},
+ {NID_sect571r1, NID_sha224,
+ "566f17851951777ebea3f8285610cd8ee5f882a68e7a4205e6fc9e2d66d210ee2505ee73"
+ "d6503169f7b903012d43e7e99efa493a8e6ef926b16b9ad8f52156840ab561fc6b680120"
+ "a88714fd66d1d0742189bf06c155e1138ee5314707173f7352e2cea0fc26e1553643f249"
+ "0428718e44afd8372cbb7bf5b88234318ebf4355",
+ "2b3d641607b8a141f876f6d285ee46aea543880e772dadd5dd83d595b9643191d9597218"
+ "e1d6adb081df133304037bcd2c05c24a54e6c4cca64fb2cc4569d6882315360059496d8",
+ "04042f2bffe25142ac6c1af26643b0f1c317b34950a8a0f112a0cd4ea4131303674328e0"
+ "bed5d9bc7ffcbb9712387cf67129365b4fa8a9e785b787c170463b24f6a7962c1e003c87"
+ "320070962ac4d3220f367f18caa7ceaadcb82fdba45cd2c034a97aab71f7f7546c09736c"
+ "b080c10d9a95a5f984aa4a3ed32d22636a7b3d5ab29c86d85db59f6f17ba29eb220bb141"
+ "b5",
+ "23d7021f5376e7b11be07288a0e47b4326c026df80d7e08c9a0fff11deccdadd479dad50"
+ "3ef2d4fa3f0ab2aada604b57fa7e09dbf5c8d493070b5faebb27cf68ad0b78bb6f3a9aa",
+ "3059720e7a2dfff03789e7a514f75f2af5ed18cf1568fa2a5354dcddc9d3c7a90605e9b9"
+ "a3d0d6fbfebddd615cdd52845ff922873079e06c4f349f7798410ee18e0c69045193668",
+ "1cc40209692cf5f8ed8b82372c95033e4199d378a28b9edcba516820ba21af1bcf5c5df2"
+ "ef4146b91fd37dff89ec8f9962eecce5c5e285d76a5f03eaf99fa132e98cc40ad66c296"},
+ {NID_sect571r1, NID_sha224,
+ "25155825fc4f9a1c4dd1db837008e7e2594a879052431f5bfc76d0d2565b8fa726008bef"
+ "aeddceef73f3c60fa2cdf6d9a70e56d27210bd013034b38861ae49640ef208d3fe294ac4"
+ "362f8eea44f58af3af8a9167a36b5acafb7ec95652d5885a0e08067ce1dfbb45a0c89ad1"
+ "acb53eb404bf88fa5c3c463a0f912b5a2522a0d9",
+ "1afeb5ca87c81025ddf09c2b2c5ee22ba0105c0e619b67a324467485bd839030d149fee4"
+ "4d8bac6f5902a1245a50c3437046b7c89a84116b2147cddc645b6d2fd24d68e8d53bf5b",
+ "040119c46988a79e3ae8833ef096b0a1e2886c4b114ccfe881886859abc031df2b1e7581"
+ "8c82be8c5abafcbc5d7b3b8344e98e3f413d737938845e6eab5aec7e507f7baf0d339a36"
+ "2f03190912dfb5a1a31fbbbb50784b18051489a3cc0f44c42c71d3a54886ecf40507c324"
+ "0395e8ced37b5253b915fdedd38f75bb26df2a0a8edba865f898a15f2d96f632f7f06388"
+ "64",
+ "1facccc127c856db1994c4d9e9c76de6bffff81a88d7aa0ca1645e250e07674fba734479"
+ "11c5b47a1aae815d5e96164854636d3168d0344b2d2d913127011b6434d5a5e545d3bcd",
+ "21da49326f39577ee9f65cee64006525de88a834365a00f4f8cfb9a01dcfd6349a3d06bf"
+ "95990a2c17b7e95cc0589714b7a795c7016b29bc844ae9031488ca354548976eed68415",
+ "3364def38a8ee3116cbd971794c859776107154234d8b198efb19655647bb9228c7c6be2"
+ "e703672f795ed37481e994b6764d0b7c1bbeb2bd1db90b34f460278a54bd480bf4e9adf"},
+ {NID_sect571r1, NID_sha256,
+ "29acb0fca27e2a10d7b9e7e84a79af73e420abdb0f80dd2665696638951b52dd39ca0281"
+ "66b47a3b6a2eaeceb1a11c152383f0bec64e862db1c249672b3770909f775b794e0b9b28"
+ "a5ec8635a996d912d837a5f22471b40ec2e84701a8804127a9f1a0b3c96ff654700bad31"
+ "67240c2518fb5dedcc1be9f56a807083e587bc56",
+ "32c97639b69c7cdbf419286d0a1b406d9b1f2886521a8b979a36118d2a368aace5b02dd8"
+ "c515f2041e6fb9f026d1e82e789dc826a56d2ef732b1bb0f49be2b696ab5d3d5694a2de",
+ "0400087ff1d8a4644edebd43c2d43d49e140940d215f272676fdfb72ccf58a12021de3d6"
+ "68f2766848044ac404fb45cf6e18fc6700f87aa53b4fac1e35e1731814f8a9d0233e2942"
+ "d7029fad3638177541d8392111064837bfa77b4455c21c5f7652e3fb302f4bff4a35b74d"
+ "e8aff3806538ef9ac86964cff755a81cb3002b6fb241ffcae8ac9621b8e034967d650836"
+ "ee",
+ "16a06e3d25873f6dae16bb2e569720ee9c6ae7b5ba36854c321a80be8b4be502b895e1a3"
+ "d161b001f6cbcf53d164b5485d8a5efa0476f581f9c79b3a291025be01a435e2fc5ded3",
+ "347138a43f3ed1a1a26f5f11549eb8a41f64aad302b6383879886216ebb6d08a4ce270d0"
+ "7a5bec6018eb313430ff017c1bbf78556436d9255e97aba1481f0f16b85e7320df79d69",
+ "28f35e1aeae288122b043deff9ac87d39478607da60cc33d999b6add6209f452f631c6ce"
+ "896afd92ab871387f5ea0eae5f6d5cf532e7a6ab44dcf44acb1fd1daafaf1ad5423d8e8"},
+ {NID_sect571r1, NID_sha256,
+ "c92d67cf6536f5046e15b02158da698bcbba4ff1e4e9e9c882cda67f817210402ef917ae"
+ "93682c9c3dd817b21b73c6c00b7bf92ea80ecbbef2e67f4f4379d078a2b0f297742b2bb9"
+ "c3fa3297a7e8079f488555bd37715eec92b4b1cbf897640ae8a1d2a0fbcee5423ab31a37"
+ "629f98630275e35094a896cc574be0a449bb1bc3",
+ "0f93672159276c5a293582b9f49607bbdb970112f6c63b2b3b5d32ad3c8240c86b1af13a"
+ "8dff6502c6b6a17712cfd988f8cd23a60693d64104143b3f91adb37f852e9e11a0ef110",
+ "04019dda59a839aa2ed28f69a62a3e3a753c6fc789fe0d8551bf59095f009d0327386e6d"
+ "f5437846c6803df2442e0359a367d04f117e3965397576d4287398b4b8c92ad278df4a44"
+ "7f04159ced60503f7cfcfcd587bb3608699f54693068101a838d575715de02fff81058d0"
+ "25dbdda430e176f60e423e6fcbba889914f6409ce51d51e89e4cd7bbde6d24404e5b043e"
+ "79",
+ "10dd216d4b3da2fa6a75de60f722f1f128776741cba002c055d1445581242a175318291f"
+ "ae313eea11fd905b20d26cec845f57a3d5bf23ae4dc93d886c0594f1cf7be4f59f3e3eb",
+ "128d5c00a48c7352eb980d9c80781f8abcfdc1ddae415b7ac94b4d85c3d7d4f7316e2b33"
+ "44ca50c6ae82938bc728e640e59e2d733f0c7f7025e66c15c81e98a845c1ed4843b589d",
+ "1ab59ce5e54bffc68fda96c920b839fe03d1976ab36978bedd973715ed631bfc8e3edd10"
+ "0043ac527aeb5ca121da848bce4ec9799f55b22454e9af32848943058b257e815b04056"},
+ {NID_sect571r1, NID_sha256,
+ "15413f614c4551e3b138b64f66d15f8964c40326a42b0afce820778eee4a88edb127fbf5"
+ "75da5263e5a2627b5461d311813ea868e6417615e7c4938313675009caac28bc7a2f4c0b"
+ "c37572d9bf36a3b1794294e09c0121ceecaa4b916df45b0dd31225415e6c87cfeeb092a0"
+ "08fce2c543cd62365779ae28f29fa02a15d9dcd5",
+ "3db080bc99c5fe7e06d5032167af56783cb423fae59fb5b3c6bce5fbedf56b7b39b17810"
+ "e48ea9a172881aa1f42f5e267349b60294d4a208b4437666b44abcfee5a1829e9467908",
+ "04059d1b3f680da784b49dde3b361eee819d67339447d7bdf7965550264eb63bcc7674b0"
+ "921f02e15d45466dee52b4c0a50c2bbbdf226af1662086476a9eb1236e3d4c2b6219af1b"
+ "db04e3466200dd6ecbc268cdc1937ac5123cbe33f32110cfdb8b7536987ddf5c9ef2464d"
+ "2334f315b9b489cf227a6300b6e054fe40d36c057a692f2fd3e762624069e2adefb65d24"
+ "d7",
+ "37fb32a902eae0c5d7cc9f9018a5d1a906a3d1b9adf5bfb696ff63f105cb2e736d9bc196"
+ "1677fc897fd3a9e9bedd370be6f25a03fad425b5a293c66180df78db33aec4a188d3db6",
+ "3aa8ab9fc9073429e52469088aea91f00cfba271b9dbb84818460883effa0c51d6a48c19"
+ "05d6f58d1312af073dc8735c29957f30324b467797acf86e028410de016338b972013ab",
+ "198a746411333172daef76359e7ad23035a0f5d14c283cb268828bd876b96b5f767e0c1e"
+ "2796def7a51429f39ab2332ac25d8e4f263f8dfb9c4c98da2ccc398fb3bb9a6b28ca28b"},
+ {NID_sect571r1, NID_sha256,
+ "9f901557451ae2f8ec79b6d4adc794cbfd9b2e6d28f19409532d91682820205308b41498"
+ "a4e1ca247a2baa8da93de95e3c0f7afd6ca46bafdbdcc6d3374a12684676a50988b86a96"
+ "0a82180648c8c1e38f8fd9af604c7be3be4b24799f4544ac96d6360cdb83d1d0847fda21"
+ "642934fd6cf65385b50d86d4656987901fb88d0c",
+ "06ee767f6f36bb8f364f324d8346455c899a49237d759003dd52cfa13b9baa4c71347b13"
+ "4b24ecaee32d247c34e3787a0c64bc5d299b55c86f64b47521d22f2c09db225b0c84cc6",
+ "0403f971125860f4598fa310eb7a8c6b4e0c31bb721fdc17ce6df9af557beded6006b8ea"
+ "b10ebe7f3c4f3d759d4a87dcfc1fb767ef87beb1f5c845e3f41503a33b28b2b5aa1644dd"
+ "1a03296062514d4e89d2105dda5bd65a315b9770c45afe4050d8c3d15001405b1e32be58"
+ "67ee90cafbe4e239dd44d030b4fda855182f1fcf80963c1300cb842459aaa8c282737187"
+ "6c",
+ "2b247e2dd0024f534ed2797110df6ea4ba166c34d91c94e43b045c0ff80f124bfec1cf3b"
+ "e3da7c58389d352c8c5c1bc2a2e876a7e56301b1e688a085ea0222697fc63141564365c",
+ "2858eadd14373aeca65ee5a2cbbaceae4b54a50e0941a696406dd86d05c07c5599379c06"
+ "6b2288d01b2a43c9ae34bcb8c36f59d490aa8d066fd3d7e539ebc620a7176507ccfb232",
+ "33c20d26dca20af2c56982fcfa6f085bc5c317d01f3b1dfe0ade1ef6e3e960b18b626d17"
+ "d6696c936f04090ecd9606c2a6ecea1cd1883bbbca8b3dce3b0acb2688fb2834aaf922a"},
+ {NID_sect571r1, NID_sha256,
+ "959fe5a19d7aea2ba611c7203e19f8e3f3cc101e03a98f91adfef602c424c580d5a86865"
+ "9368a930f9883d699fc633bd07f6cf8de474937db0bea86fa7cd140ec2f202663813033a"
+ "757b93bd72afba15be5e47a4eb93e8a666aa1c72c241ca3922547d63fa3732fec54afea7"
+ "ade84302e2f044275bb67433fb6b125b7913143c",
+ "38e2571d9f22309a636586d62863ed67a70538287f3ef88b88c3c2fa1a2900d48c342b6f"
+ "15c26b8e7fb4875cda4093b7de7ceda48fe1e2cc2975afe958040881de61f309931e48d",
+ "0405a221634ca85059543e2caf8bdf79c43bb78deb35e9c89e07d553bafb6b31750a1d85"
+ "ffa7689e528c11d8a3dae442b4fb2a4a21238d636eb04ccc04c8b5d794b0a213fe0480b1"
+ "d20225ff457b6cbc12d152b08025cdb7e1e921ee553add9cbf83228d678d5a9f5d3d1fb4"
+ "327a74c1dcb5d69a5b98f3ed1aebef0af09bd49d253a903636ef5a66844c500fa221470f"
+ "2f",
+ "3b4de49d57040141f3584ff596eda457e2835085d350b75391d90abe728723e1d1ac6413"
+ "979d4fc3eba98d72a01248e6510c722df15df876da881ad50539e4248facafcf311b464",
+ "00f259038b4d3d036bde101aab29f4558e88e604c62f967bc7a35eeacc6a56294268f8ab"
+ "00a34f9a0319b07754f502c98718e8b5c91093cdbff2c8496fd63d6fc2c50a35f87f423",
+ "2350d5406922e8822a91f7c95cfe8524f017a14cf7174ce534c60aeb351510d06ac20dc1"
+ "249129247b21c72c14b02b710c26c10899bcf995143aee632e294176e903645b660e998"},
+ {NID_sect571r1, NID_sha256,
+ "97b9688d9ed5101b8cfb19e84b89cd644262ca1c7ee18944e29ddd3b4cca78e06338b270"
+ "385b00a5e8b91ca5e628de3bba50e36ecc695b3ea737a9cf8b36871c473a54ba17819f49"
+ "e730c0f253b0c769aefa6c16366fd2dd612f330e95fb119fcf3bf7f3e254438c0ab635ec"
+ "04a8b2424a05b483ecf65b74a93636fbab7bf1d8",
+ "0c8f5736f1ae65592f3ca850f43d06441aaad8c03820f3b08d8a6db46488dcfb828459f8"
+ "b3f34af73cce8dc7a5e3834e085a64523d890028e194214cef4003210e6eb530005b01a",
+ "040667ce3db45b8772f717ce20755ffaba968aa1314d75c84073042436823fb54bf8dda3"
+ "4a6bb45a61d610745b1fc10eb0eef71c4f55b26acceb442d822d6e2a27761c73b740f472"
+ "89056035da1adaae894e361f5283b3ea07b7d9f64a298be11de9fb487c2479b120381f1c"
+ "60cefe5d32d37e4644ac86a170f82b1c4443eb71b940b21c7a016b559c6c79835532c276"
+ "fd",
+ "190468668989a607a3aa966cad071ca8e8eb152b0dfca9205bc9417a3d612ca1105c7b90"
+ "340b04acd96a5223658adda16bf6b598ea9f32a2f8d1b61c2c2bdc08d6a49de246240b3",
+ "291e1fb18edb7a93badd6fab6f56ee0d390f3b6d298e97312d5277358511fc7621534ac0"
+ "35f3518cb140fa4ad5ef7d889c0d5f3f52a4e4d06bc9f647f99695531f85a4b76cb1184",
+ "2d916734e02b0a98406bb5a9723486a7ed40bdd0b39c4cb802af4bafd519803d23c6bed5"
+ "9a80c256a14eb878229942f67e0b8159d5cbf24b719043171b3958fd669adfc72eb7289"},
+ {NID_sect571r1, NID_sha256,
+ "f08b250bf4a3980cb455338b3f4173723b3f44c97bacc9cf550149794a71426e398cb4a7"
+ "4bde141d8b7b4a72942f1c069676a9918e27792cb8f085ee037c78e3c468adea5123c4c6"
+ "4d8ca6a39f2f90140c5d2d80b669cbf0d1ccb466b18ded83a1d5f042c36188a04111c34f"
+ "f769abba9aedda40a87be1e24b700225e2078056",
+ "1ee68c3994adaaa9e0d61bfcd3bc1cdf198d3fbfe28a44e5dd518867ea04b20e795eadac"
+ "c48bfcf8e8216dceeaa069b756e8e99ed87b6b1d31154cc9310bc3b4555162a890b0c6c",
+ "0403efc83ad15d9bf889c9afbd769bdd1dc8925b0462c93868d85ca7554b540d8c3ef7b9"
+ "a63becc85981972eee8a70b7f948098ac050ad594ef2ec249cc3b557844bae9cb2cacbf3"
+ "97042a012b3a1d9e46cece4fc3460a2bedc9af4ce0289e95f69550eb3544f7c105b5769f"
+ "a52234ac88f9045ea5cdd4937664846d26deecf511ba6996ce4072e763e8ebdfe7096608"
+ "88",
+ "031df03a6cec2346b92d9ae7d3d983edf577d9a1bb88098f886f38536d8d8cf25def5772"
+ "6790604e674d036cbcb864bdedf8475ba9c850d510ef93b844c037e04348d5f48098c20",
+ "112dcafb63bb125d9610e59883df481bfde43589e46656b5952cdd72238cfbcfee79e916"
+ "5e3c9b89c9ffed12d303225ba2af19e00048e20e4edd3968807e4885003d148403321ef",
+ "2ded1456df54a24214d8c1d3fb314db52b046ca31458bed69bb3aeb6a9ece509ee521fb8"
+ "046ed43accc7e605440a09fd96db659c98a7dd606758c0c47e47acfa326b9ed73ba4b28"},
+ {NID_sect571r1, NID_sha256,
+ "1cabd16fc29d7d919622810dc8b23c770b790b98b119eeab1b20900fa94fc2ebaf76be4f"
+ "5eea91fc5276c5621c8677d4d117c4a5a782ee2ca1d5b0db997fdc8a05b6b3fbb833d7a7"
+ "b81c3c615c2a662929760a96feefcf89e46b563314c9b77c86bf34438458b43b694ceba7"
+ "41b97dfcdacc0ed57652ae62856ce10ed2690770",
+ "3a6fbf66ebc1365ea7699c72cdac2dd85907ec59cd26e2d18713354b619ccb83b7fc0db9"
+ "193aa8493c1855f1a83fd987cbbb65de17c59fbe79256aa5392f4eba045346e9ba26592",
+ "040559dd556241f9b11d0f91c5458ef6adb783f9f5051bc12cac9f0b214f836f7b149d00"
+ "ba8218e873410a50445da9fbf68673f3282d783988981fb221d0579341892ba6824e0cf4"
+ "a5005dd0e594ce41122882538e51e9bf29d159fcbb8b29b97c5546582390ad5c59c97527"
+ "1c58ba1e75d70c3898fea929ef7316ee830eeefbdc69bd80d7b0e8133b977cd573a3b422"
+ "ee",
+ "1c5a193179ab859ec1166575007c3cacb30d31f341a0e82ed6d4ddb32da909dce08acfa1"
+ "0fb14183258caa743010fac6f7d0fb1f8c8f55c246e49a97f2bf571129144c23de8d68c",
+ "2625d0bdf37396585d22811a12ae7e0c3f512ffdd0bf4d048379434af46c03c6067dbe7c"
+ "271c417ac5307123bf58a9f2064bd2b3a2d4b4efa3027959bfe63e13a851f46a21da6e6",
+ "13f16b211b314a7e9918f3254da2f1aceb5340713985610f03ec1d0a33ecf9217d61076e"
+ "b153d8f27aa31aed3c9b165be52f8d857de362b2c88db5dccfd708a996a46b76b4ebd09"},
+ {NID_sect571r1, NID_sha256,
+ "7bc8bbf5ebeacf40b3c82eb6eba5d994dcc6a3f2e12ef741f90f90e176d20c21e006ecda"
+ "f14cb5beef35bff46b2c374d9ee224516679b1a9e9255cd8ad8e60ed234f8ee7e0fc53c9"
+ "021488158217d4b4369cc597d6053746efa1e73340bdd73c1bd2eed57b92426fd4d278d6"
+ "a86e8be0f0a66ab3dfadefca8831b2f488636251",
+ "145748871a0b5c1cee628de04a12fd68ff2b154fda96e47afaa96389d66d22802968584f"
+ "6753d36618d49ed205260f09d3f5ccc2b27a34390ce58179b9834ff92a86d66ea0a97ca",
+ "0406cc7ce2782dd67cf1fc16f1b24ae46fd085b969d936fefc409a9bde354cfd33a154a3"
+ "113e837cfb88284d75a96f5fbe85274fdd0990af4a033a6c40b904a5e0f666e4d8b8bc35"
+ "3207adfea166087502657bf9e2c437beb2f62dab041553a06411f6c9dae83a2a2749a4e5"
+ "a2a36fbe23d40816b1b8d206b9f5cea20ef200b9150061ca22fee2076e31c88d60a006ef"
+ "4c",
+ "26c820dc92f97dbf545f51db7d5ba649333dde38eaa47d8a7edad9a3cf3e6780442db234"
+ "632458ff17e1d7b70019916708c128601ff547ac84dfb0173cf0a3c5d69ac96c3d7d395",
+ "338c88d1bbd0b93f3f1fe1ccfcbda65fa1667ec471730a40eda87f57b3eb63d979d8d6d8"
+ "19b974619799c90b09f33c051b8b522c3a1acede101857265ce1b58cc7eb5698049f494",
+ "3637bf89f9b66c7ebd8f91a8324eb70a510284b39f0f2e45578f26f5f1e4504ad70a3894"
+ "27f4d58960cbd918c2f8279de52096e25a1b0b0c3929fd5ef56bab6cde7c0d8e9d2fb30"},
+ {NID_sect571r1, NID_sha256,
+ "0cd2a45392871c0c262e7e6f036946354bb41f9c2187b8c4d399231280682f3e0a09731f"
+ "bfd52c76ee63b9828c2d731f4cefee0a8c46419c398205b2ff80c67d7756db300a0a8385"
+ "fa287dd37d9126f75998ae1cbab5136560592118db52fbf102b7ff0a1ed45b8a91a7d99d"
+ "13a0f7fd4366392264aa1248d7324901467457ca",
+ "3c71911d24ad19c20fc1d8a044d63c9bb417abc3778d7e6234c6af79b898cbfc2f278724"
+ "4708d2fe203be786edbdc4c9b12b413156b7b0bab0be8af895d191d853cd58aafe1ccce",
+ "0406cc47aa586a73acddbc91398ff5782457e6da2b10e265153c678789d3d7fcfc485b03"
+ "b089eb67e6d6955d5c8c7ed5f933d84853576e76fc60332e5f0a62c3ab23690317bf1b42"
+ "3e015604d94ab9f2ae1d74fe46b1a070160513709de2ba8e74fbf9922e9bbe7f6e743b25"
+ "701a13f73eae0db0c98dc80c5f8528e16610fcf18f60eda3357ad5878add2554a6befc9d"
+ "39",
+ "3681fcc5fc1f0d7d413abf2e44cb5cce9a4a252ec449ec4f550df4a172305eecc072454e"
+ "fe2040aabaf4fee58ed19c9090061d3c4835c5fec38996f013e5512c0147cb14a4f0fe7",
+ "0d3c26796bb86b1a20ed4935bc3824bcb9742513ce91a66dd523a3c0d8a5abe63488aabb"
+ "806b5b113e90d3f3c80e3ffa01ad051e6b0d4edfc641689953ed65fafbaf3e554be31ff",
+ "2e3129ff95b06c274f7ac08882dc1da6660269f3dbd21a3e48377a628f6d81326084bbb8"
+ "d32b794fcbde8e574f853636fbbaba480fb36960b0994210bea319a99a46e29b79217b3"},
+ {NID_sect571r1, NID_sha256,
+ "e97092625b09c9ae6e152e1cbee207d83361f34cb9b0e727c816a5ed851f12f91fbf88ad"
+ "9d4c8f9d07350f5d828fd8574eafc768bc72a2b18aaf4d2b48fb10f7c3431137b5185015"
+ "4de9706487d69a40a8f4cb2c799f48c5d8f518aff752500de93cbb94ab04ae1e0c7183a3"
+ "2d79a27291dd07b5fb6e6a4fab76e85c3a8607e2",
+ "18bd74698bac36ef11add6b3e3fad227ecd868f370ec04569462565d2f0af2340bf79348"
+ "6953a7b79ab04f0ab1f0e4fd16bf6b576cce677d543e73aa8edb0e50372f24ddfbff966",
+ "040231f891e63bc1c43377faa56c5799eb1c877954ca2cafdeb4883ae40bd78816ca5634"
+ "f48f5ef5c22dc7d3d0df208bab4149815274d7b134cadb700d166a5e3fc73e9be1bab725"
+ "220469ea29ef860adf24afdd386347763008ef6fe2488d902c4d513bc0183fc52742782a"
+ "6fe500d6b581902ccd4f9bf077f975bd5fa89bf240723b99f726c9fab4f953380745ff9e"
+ "17",
+ "1590570de563ea96eddd900e4a0a7efa2e4a0b389854e96af32bb7555f098a8cb52d160a"
+ "bcfbde65998c34f91338a40d40cc03e4a9a241d3b16b0e893d3f7ffdbf8912f35c7f538",
+ "32402fbee4831b16d762ea2cb218279f4db5e20bc8b6e2e53e89a2ef3646cfb0abbac361"
+ "16c8c708a1342db2fa0abd39d149e09db57aef65ad8092f37f7962f98c28331f0f20b64",
+ "2d1e38f40965e2697abc7df5896cf051ce5646f135d1ea0bb470a43250af8df0abf2a04c"
+ "a1e0f1f31013025b4136a8a6bdaa474bf50752c571f883829bc3a5482ec20e2b4a72c90"},
+ {NID_sect571r1, NID_sha256,
+ "ae6723b8df5d6ab5fcfaa22d32fdf106d211514cb1892c7c43ca6cd85c2532f85929c8a2"
+ "59ed251215063cf92e1502528d1e22d5cf67efa0b8ef21e8eb2f5dff881ba1433e8bcf2b"
+ "6af8742ecb2bccde081e534615a305562cc22d3398f61f277d8ca785842bda85d8a40438"
+ "d9bf1aceaedcfc22c85533794a69cfc320931d3f",
+ "335699bfd058ee2e6163f55d1816bf3669acea8b73be9c4ddfe775230925e6093cff7a66"
+ "813adf22222c8376faa106d85ac9f3c67929bc58d8986795b6d35d5b9fa546dceabbedc",
+ "0407995e02dd3d40f9bc2e6f4cb1c0d29923c9022169e64532d1b357f36264d18059c44a"
+ "8617a6f1136e72648c9051a27714a0dc833428762275a1b5635a3ad91e65d2713236c20f"
+ "5006167d5839cd4476a638c50db218979a93da44dbf97281d90daa8b9b530960c689279f"
+ "ff6c342af97880db1e9c5ae57b91d7be727fd1c6210ec59416d1b675f4dd666e0b121d14"
+ "4b",
+ "3f037ebe0e4c3910953e123becc09c0862490e7f590245c4cdf9ea5fce930a7d7ca5d17f"
+ "5689edae1ce706b90efdf84cd82e06e4ab95e9e2368db91d50110eb91cf44e50cdce2cc",
+ "2baaf025290897a5d68c5e63543256523fb086a6f1166ddfd3d50fb307e0f0cf78b5fa89"
+ "5f8b71944a7b67b8afe5f3e10f2d248aedf573860c42cd7aff258055ee7cce472e8efb1",
+ "0f4d239f5af023ff6c94ad7f66d43201c7e40262cd92467c4ab54be8d2b8e6577d143750"
+ "64fbd00a6327da62f03f75262392add0ec119d820205065aa6238433fadc8d1734b8481"},
+ {NID_sect571r1, NID_sha256,
+ "ee20c6b61886e02ed94359dff3559522ff550ca126fed4b2240ea7d999a182b7bb618c50"
+ "528fcbd261d5e497a991fbac0cf4c105c0f664d6a00a9001c1ed522962fb44dd4159677c"
+ "e8f1531019f86457c055c9cea6247086cdfe0442485cbbc4386ad002b4bd39a1a1877524"
+ "37f04569705cb7adc0c68f0fd059d946deb63f0b",
+ "2c3eaf801330b3f1b0504f2399f1d24455db29911f750c246ba0a134c3b59da8b3562911"
+ "197764699a92ea1d95a2aac587e24f743df1dad3e1cf7edf955203e24a0225717f8d2df",
+ "040703d69e2dfb13fb6e695b0b30b31d89c8789e8523a7eea15673aeb4f1909192c06c27"
+ "558eb55f0315f395b1f3ce84d9c304905cfda1d119bec33af9ade4420de2edbe75cc5460"
+ "e3075e35b2d6a8550969d49ac5d656afacf68d3a1dc6d17666f46ce3413c855b627f0891"
+ "912e373af2ba91211c20f067d66056e6bbc0814ff3921d944008b25d8772cc8d696bfe1d"
+ "09",
+ "0a9ebaea478893aa0e3bbfd5d007bcec5ad787d9bb5a8e9b8b79865c584966f0bf040d36"
+ "f62a8e97c123d2adb7f38eb49a86e9c2ce1294d04fef1b6fec7908c4ca1a70bd1699a9e",
+ "2d495eb5f6fb187a0ee1fa772ccefbb969e854abb445ec19ac3860f40ee65f53b92f6a79"
+ "7003574bccf0b9de8014ad4e5745ed264eb3ae88040ef6518809b4c66f691d496a85d51",
+ "1840b2977ff137f2a8f2f7c25e347cf1262fd128e008e30e4752315deb5231098c65e9a5"
+ "85496a9d6b5b56cd0b6d7dcb7150a077fd199be2d2de0262aa84dad414e100ac6162346"},
+ {NID_sect571r1, NID_sha256,
+ "734a9eb8288e32f5a67cc1d88704523ca2c68b798d90e188d871d9f50d2da2063baf1ee6"
+ "685c45832a1818aabc9afc0bc935e97969dc983a484f16d2bedb3c7c0b8221408be2480a"
+ "5562d5d1e5d8763d1e474bf2826aa93a68c3b870e3bf34f4941cf590d88e1f5a8cd782a3"
+ "3992213f3f6b4b4f6dbfb3c3c8f21f5eaf4ef609",
+ "1c3ff067497e5d387f31f0ecc9c67b3c0dd6ec8c81318c492aad83c9dec6c99e4fa47447"
+ "f6f7082d636c2591d0df940b947d0a4ae3778e2b7cc8fb92214638399def894ada276b8",
+ "0402e56655e37b3e753f35eedca95f8ec07b7a3d3e14e365ec041cd9003bdb78a7a8b8ad"
+ "277a67da5d63dcdeb0ee8d8efb68fe61aad9b1fbef4373ab13c44efacf68cc499faf5b5d"
+ "be047bbec643d74874b77f0fdbbd2df3f3ff0d35f4b3e1534b2c4d5c76b8cc51693a70e1"
+ "7d1d4cd64713c5c05966c826458fb5411ac840ab5998bf3cd64a0769c3e075259a70aaf9"
+ "4d",
+ "149848f4534eeeb45fc38ddeace59e8f83f0bfb4cfcd2b8b7acd0bf19303051a6a8fe75d"
+ "4cdec1be036645beb075c772aef4a58785c16d984eb43b9b0317446bc3b3abfe7ec2cb7",
+ "17eb68556224f995733077501ed295088cc1184fa3872f5f11e97cf67c7bc1febebd3120"
+ "6a406c4479b60246a517cada5859d4f1aeb98dfc108e96e9898c6e71e59e39b6284895e",
+ "22904497dc7a98fbe117e4427d74f4ecfc4e14d4467c99227427e3abb8d3dcc406f3704a"
+ "7783d822ec1118a1d91d5945d5b902a2ad325bcc9c17c68ddf8b5323df9c2bde392710d"},
+ {NID_sect571r1, NID_sha256,
+ "68e27cc72fec8f3f1f3882c6efa08efdf21d74d13be5171da35ef2855666ad2ea6919d21"
+ "dbc1cb6d296663dcbceeba2fe47a2c6507d3d4a67a61b55b0f81c93412d7e1fbe15a590e"
+ "342a05f55daa55f8591171303154e615e81189a523b855829a5c96621ad118f522e397e2"
+ "eea05c2603eeae6e3591215e29b2289bc384d8d4",
+ "04b4e04281b210fe78d516a5b69f878b7fa058941ee9ae8cc63b061d1eb9e12c3e0ecb87"
+ "17ff4623ff5bbbcdb53c48adbd9c69636506ab929c5507d7ebafae5654aad65a263e48d",
+ "040538049d071158c62f0102fb664a47431afe320474a173463819d5f83f6737b43880ed"
+ "378470d774d32ad59cd9d75e5bb06b118f1297af3f6fa910f40aaffe11e46cd56cbd29aa"
+ "5100a4a843af9841e2427357bdf26817656637bf4650e443ef303dd458ed092dca3cacf2"
+ "857d10aa190c256467ff834bc804f8557f6c3bdde89927a5f2bd55bb9d9f1f08a044cbc2"
+ "08",
+ "1191110485f56335f0e65fe04b9ad8fac1c3573cb4690db3e9f62086312d394b0e354890"
+ "c0f74e3df7c43e718ecf18caf6904e03bd6c0912f906de1d2bb4c49823bc6c0dbfe37f4",
+ "0dff371ac365cb7de248ddb2b2fdee624c527c6c1908dd287a294bb43a4be94c130bfa83"
+ "710b0655f21695dd91703acca64fe2e7927eaf9c2b9b230de8002798224f9505379bf34",
+ "2f30f31c863bdd68fae16f97fba756e033eada18cb0a23d7d4b2c9ea3c832e61b52185fc"
+ "d654d9eb281b92a9b102c3b17ebf02422a0e4a7a56a73974208371ef65434c38f4d7d1d"},
+ {NID_sect571r1, NID_sha384,
+ "e67cecedf35058b80787589514a9c81c6b9f4bced4260411d2af75bc46b8b2c962dc9d26"
+ "0dc99ebbf8ee64950766efc0e394184bdc8e2891d66bd3300ecc880e9d6a3d0eb6153223"
+ "78afc3dba89938704e9a8d0c949d4bae9838805c00377e3fe5ec6a1a98ad7eaaba6b5009"
+ "73dac48b26b7fb2e1b9889f8c387de535d4b2363",
+ "30f2849a713aeac95fde5ce3af853e9d070ee60709eccf35a076567be2c43f0fa34420b0"
+ "fc097ff577221275a3a56e759efc32183be2d76058a7d20e5dd59f00415114d73a15b8f",
+ "0406d4ed3cf180e0e307745faa49247f269c3fa0a69042b3b78ad645f43eaa50d479622e"
+ "27429a6b6b1889944f85975fec8018d3321ed38f6c7d91f2efc98467a027ba4a02c7f231"
+ "b405f2ebf6abf7d53fa32865a9b6ada9bee51c1fe26cad74dd6ef78f13872f340d641700"
+ "31becb5073001fbca373be4e32ac3425d705ee942e6c4e639bf72379e34776680a387a0c"
+ "6d",
+ "0da9d8647d0950f558a3831b47858168b3379656e603f2bd44046ac7546892d1a7318c5a"
+ "9873c6ff85683edd3881a0f1af5501d17939f0825ed37bfc9a2d95faf43d3be92b237ef",
+ "0fc7eaeef74806606fe51882c6928a06bf552d18dcc4d326d44a540abb728146657048b2"
+ "0e5fe2868beb5f04f32d43e9ac23a7f22c6bf325bca24f5e3161c868911ee61baa8a3c6",
+ "33d63693268f3762635373fc901fd72e525965ac17e2cc009177f03bd3524107b30e4c6d"
+ "80bbc4f87fb1f288ed56812994541fe063f1d91afa7213bed8be5693dc6c17ec9a0714f"},
+ {NID_sect571r1, NID_sha384,
+ "2baa1ac3f07e34b67b6af087400f261e138b070c8475378063286c16fa73578303380236"
+ "a4af2484ea01ba56c1c619f6ae4e5e6ac2594c8e5aae7e7f196f96fc5d0f507bebedd4d8"
+ "18e77b9120e5b4bc01c7ab6339e88b71d0886631cc7fd89659bf513faf149c61eb14d550"
+ "60c8dfc7e6e4c2b4ec8edaaa6bc36eca50a6feef",
+ "2ebb73d04e6e5361e20629e3ad119b33db5163ed91fd9a8aec4b774898784b6822a08992"
+ "118a8fe6013094bad0be1e9bf01b27c069e4335bff7e0abd28a10443818f6b825e9cef1",
+ "04001710eb0167e8c948d381e3a75aa1e036b70c414f69260aab434ee20b6724dd7393fc"
+ "487b5b3822e5e8065b06d0785a4a7be7193352d5b9eee66755ba106ba6e40f98a08c730a"
+ "0c06006f98fc25a641a7c6e67fedd37aaad77a9102be3e1e7d32dcb4c68029e623a42f4c"
+ "a7d1ea725bfd475756b80e18904107c460fc03b9bd68aa46f9dfbd60618670c4d9a68a32"
+ "87",
+ "1861e2a356a6fa8096418cde7fa17f1b893a7b63810f3fd807a82bf4c745aafdc4963eb7"
+ "a0ad0488a776e915b64d2b684e46d244703eb63b77835167908f2d6b06a2ed7b53f0717",
+ "046688e12d26cd96bb05d3f418d8ec34f4426f594acd2bfd8e9abd79405e612d60737007"
+ "440424bc4f546c54b7402d11880f68edd996f49277b729450f7dda5d05986b014b5244f",
+ "341a80e74f3a69b966ef81ae95dbdd60ed5a0446416653c4df431ff7c4b4272665a52337"
+ "9d76725e9fbe196018f0e747100084c823b95d7c7b1785d3623e52e9adbe773b81b49d3"},
+ {NID_sect571r1, NID_sha384,
+ "0e640581f573068d8ebd2899a6aaeed0bf987ee11e22b05d25e88e9a1c3451f45ee3800d"
+ "976f4603c18a041febef07a01086832a6f7ecd5d498d52e796a9d90758c87c36f4a5b704"
+ "a39c456aaee2d5278183d5815d619c193da9fbc427d701bab0874bded848cb4bb066f56e"
+ "119b637c78aeb6eaa387c41bec6cdd4bf7b2061a",
+ "1bfab717d6f6e16d9bc6e89d2ffac7cbe0f808cc8ca2eb515af7ecce5f3b230303775710"
+ "a21bd25c2cc4566bb53c78c78e3774a9f306c751cc6e149929e45eef60f56c1d2388c6d",
+ "0406935c3e8b58f7bacd045e745054c227687800ddd86d6e0c8b1e426f4df0e4b71feede"
+ "fa9172c43becebbeee8ee382a75396fc5f29ef3d2cc55f8afa9232038609b5034513b222"
+ "cf0138463efe3b32259dd90b759062f848deda84f2bcc0d687c410f1ad2dd745517c96c3"
+ "451432b1e490902208cabb68bb872ec493eabdf1f3b07595d23a54c53e512777abffb7fc"
+ "65",
+ "00025bd48e2dbbf1ed8bd9c1514303dc503dd0799c7815870b902249cd1d7368380853d3"
+ "6f7fdefad973700ded1e0d66950181b0aeac73eb622c880571315f09504ed26e28e85a1",
+ "1b9d6ccb19b208022d3a579a66957429682517e84a71be42fd571fbbd0247609d0b5b338"
+ "08189efb52d21e6421d3b08821d82900577791b1c54e239b0d908bfbcdc060cfedaefb2",
+ "3356320389ffde577496c5b46a0de6d53005f5ae3489c0d292c5f460a3b7adc5bd204bc5"
+ "0a3bcc8538e0f8319c79b9024b065223b7ed9b0f211c5c224d363f5bdfe04db97f99e19"},
+ {NID_sect571r1, NID_sha384,
+ "51a2a560ba226d629127ce1ea7e812219ceaddd23561256331458c9f11fe73990f21d0dc"
+ "d974a3773040090cfdc8e0f01692d951a0cbb60f8448a016c67abf46a9c150466ac77e65"
+ "6ea827b0ea7d1e77ea32071ba8314fc8a2edf69008f498bd1c18061d7d00f3340a7e2cd7"
+ "3e9766862378d8702e804a1870b442beb2d0aa14",
+ "00cc53bf7f1cad5e3dede4b4f4b082831604c92dd2b147869cdf1107259305b1d5035964"
+ "7f9f3d7d4e1e608865c65dc7c9ea46bc324dcb8423b554dc369d621743cbfb592b70eb5",
+ "04020187d7de90652caf1210703ef65cada3b88f978e14ce6055847be7127602ba7a5391"
+ "cef0fc9b009134105da7b09b49beb7ba2f961b84e6d66bd818ea99ec106c6e8428b17394"
+ "a60197aef36e47b571ccc0b41f948392d6061060063137d8c3b999ae507b76132fea1563"
+ "775be555616cb5816b9b19e42b34f9673aab833f4beb9d1a0848a4bbf2f6f44cd0398274"
+ "8c",
+ "08acd0f8f9660d21d62f391112908be73a4342767328d3375a8806dffd2598b6d77fcb47"
+ "93e69f2390389a78c2b11866cf0f03666a60ad088d2c77bbc49fff6efc5b7283d02bf36",
+ "1004bfb78dc0e4fc0f2624bec6893d717a476fc76bb5c1d94c1dbf157aab5d1dc80f98a3"
+ "aeabaac94d9cf9e26e1dd172f5d8fcd5b2d48cb3b7f0a4863813357b5cf8eae84478e44",
+ "30b1c8857977181d12c53cc2efc53a427801cde2890cf2ea2c99c6958b6869d0ac78ee2c"
+ "846c241362c885835af49c47d20c30f3cbfab27d9cfeaa6d858694bab059229e30bf845"},
+ {NID_sect571r1, NID_sha384,
+ "90eeecff0a2e37df318c441df220dfea013ef29774ee92a56b213e13a798858f31e52b6c"
+ "cb7599e7314f12b48a89884b113c1ba0526a54f3e9a33c940944319e084bff320cf5f391"
+ "c02c731c4c4f8b05afa273374a1705d6c85337782ba7d36b9c00767180cad6422c11c581"
+ "672ff631fa4c49d41b02481568ec87ea97220400",
+ "2b009530cb9d586e35dd8951ccb686833afb7a37ec253e547e85b253ba999f0f186b6d4b"
+ "a41091615fe57678e9801b4dc94fa683511da25637b2acc9fe60936be15af16234c4ee7",
+ "0405913ab6a2287d946b5b6d1e6c3d64117e085da7cf6388e333cf58d22494f4b067c684"
+ "dca770ddbcea5db73f048b296e9c17284a8912b3cb722d9eaa17b6b1209311fb8e8757cb"
+ "f50007124ac6c48ac56746563db247bcfe6b20215ccc5cfb1d43c923daa07d429c8f0513"
+ "bd1ff1180ef0f7927fa23fda1af25d20b22c935c426f9ccb402c358b57b812516c431117"
+ "79",
+ "27a80a19e9c320b57146845fcf97d6debcffbcae877c33c62aec62a3351ef40bd90ef4c2"
+ "ca39f9e51086931d82eec4ee7870365cb14e9c54ae735069801ef12c571bf1c7c1cf6e6",
+ "1de22c8984c593a0948164e6cc8631489133972482f6a7fb1c3c13f97e4584604930d369"
+ "224850a1d24f267f41bc6fca04ad79326aef61f0d429e0e1b9e9d9686ee10f2bc52b104",
+ "085c6b34687081e280a180cd0c4ffe95cebbb0ad6d3b20a7341e467812f88c23973701cb"
+ "f3cd2bcd2811415d0bf0cd9df229a88754f4cb0c225a2d11f57369a29edfd7b04639055"},
+ {NID_sect571r1, NID_sha384,
+ "d3740cad41e2e365d80ae81da97fdf06d8b6c278b505e34cb683fb55ddc5189da5435409"
+ "14c0accd405dbf0063f6222885fda4b316dad4a83fd03e8d7b7e936f87fc0a5b095defc8"
+ "a4b22fa97f00b394e672d5efd3e0a230c7e44dfeebda88641143502a400ed62e2a51f956"
+ "1e5d652a43d616f16699e875deb9610c77de8e1c",
+ "2cc2d0d7189cc8fb3565a039aee7633ddc00ff427cafad32fd2010b10fe249c9724d9178"
+ "5e7080203626038109158e3a61a3970aa3e51688aa7f5184b22f63af63f80d3540ec023",
+ "0405fe95a030efac2e5d9522680da58606e3e7544a317a3f24d726b69238367d30fa5868"
+ "64d8c143c3695126ce8dffbc7e7fb789f956dbf53aabbc38af988ce50f1fb30294ea3e2d"
+ "480193d1e745d82781ae5c3b3d2233e502959d6862fa7987c6416584504f65639ca76557"
+ "8378b75d3844df179cefdeccff3c4c43aeb8865063e176fd43a27c93e329f8d4f6fd5bad"
+ "21",
+ "02df3920fe4d328315353ff11b0264045248b32f48e860dc59d931ad65f39e97e3a683c7"
+ "b5c64b21c3fa50a9685fa11f49df9b14ddaae03eb02754b01e03f60fc6aef1e5d6d7d3c",
+ "1b91c4217b1580cfab56812c16bb5aefc1534ee8d049aa2e1d52a5bfc11519ff89f0d36e"
+ "a2bfdfce8b5d3cf1527dcf700c0208a70595e9ebe4feafd0eb597e05df54212fd6eca3e",
+ "21ce52440267fb16e713eabb8bf2d502c81939799f9d09cf48a50dce5da999f3b457dcd7"
+ "3c212d5d070056b1f373b07ad06e90d96febb7f8cdb4c423ef946f0799c038a3ee68ff4"},
+ {NID_sect571r1, NID_sha384,
+ "5eb53b5f92121396c5ff30e0c92da48db4fbbdbf27297f9bc82614ab78f7fd863e34096c"
+ "615a02e349d8bc7ae4b0700130704bedf32756b5ee6af10da1cd717d624fadc57a9aa6db"
+ "4a6c5d6254c0e8f8c3c0d4d03c264eeeafd52cac2c1968d9d85b106167a49d0ccdbefb20"
+ "bdc10a2555f8149203af52853169a02db94e5e2a",
+ "3d8936c00c131e38c6566d2464c4e207c878070bbf681695a6cd98cab2c6e80fe98cda80"
+ "c66a5cf584e90a071144dda59c07b8fc7bb42464dbee5b6f739b0f2ee5fdff7e5a4e7cf",
+ "0400fc3a8a320e816305772bd5116cec2795d58633a9f490be8a1a360f21d2aebed6038c"
+ "a4a5081288b6bdb1066307c26897ce38c24f8ccc98a63e371ff6b54f6016917b430c267a"
+ "f7069719c868d8fd25a38a7338811904e3330a7b2289a8384bf24f6dad5312160f0093bf"
+ "556fa061ca5e52d6676a8f1a3e4656740c82d3cddf0ac4f903ea885d42610bf1b45d9e57"
+ "a1",
+ "050da632cd7aa58340adeb20389a2cb9897b8ec944c47e7177da65d9386a9dec5d63be7b"
+ "b2d0f5b4943932e1fd7d87d5d7a80bc50a63dfd101a6a28005c894c6a6fa4c652dc519c",
+ "0e6152b9050127bf306662f6beee81d024492b91efe87a56e70596a4a72cd02dd2f10b97"
+ "0c9a69909f85bf4783dcd3c32505d7c148166ab43b503ab098b6d95ef09a7932359f60e",
+ "1f7d68d53ba161b61eeb17139eeae1587a6bd148e288c1f73a6bfb3a0d1f6dd8f9cdc27f"
+ "a9e8c7a681410500c097ad01f320303421f1239b4a9c4d5446562b5b3cb2fc45a6fe239"},
+ {NID_sect571r1, NID_sha384,
+ "5aced64f702a57ed7fabd045a40c967a485d2a70b0a5e82561d5141ef329469b2da5964a"
+ "34df203a980111a77adca376c643b9030aa74516f054648c1534d912ea66582adf3c655d"
+ "bd71ca55e47412315df5e2893e43b2e2dfe6e4dedf426f11846ebef34a99f5615460ce04"
+ "75f7bc54b4a4fd99e83c982097c3136ac6188a5c",
+ "3dc7de970bce28a943d7599f2a9010fc99435b93bc4ba884d42503ac2941aa63fd07db34"
+ "bcbb1127d56d6a4e277d6ca32051ea3467e376f74f98c3999d2f276b282ef8a28cf0cbc",
+ "0402066a50b9f961a58620f473fcf7d5eb635da47f4ce362f428669ea578d50d1c1513c1"
+ "45adcc03ba98f3d67bb422141c73e2f94ef9559ccfdc0be20eb206d3d114a5db302bd075"
+ "1f04437e655bd255e7f013d197210bed70c5c1a6cc1daccb96145c9c438c8a44b4074629"
+ "830d8df9914166c9378b33040d71918cdd0f47fa64b7c69f43eee0f34414b8f64882f90a"
+ "c3",
+ "3b2e20f4e258b7f0cf69a460fece9b4794a12a37c0f8e7aa6f4f51dbfaf508f6f1e0160a"
+ "b4388891efb09f0ca1f73178f0e8598750c9debd3ff856cb3a2872762ef9e16487a9513",
+ "2f265aa99ff806ffeacbf9ef7be575ce5300d3cfd4225b1835774ee075d7e530c9fdcd68"
+ "1584223f84a497119b4eb1fe34cd31d654c2fa262d7549acc251cece9530b26cfa3ab35",
+ "2c05ce4b35544bd1f20a68eae7f3483e0a0628dbb53f0466166257f69a7a110d2838a76d"
+ "204e7a955a8977508e65f2ef6d7deee13e4e2ec0f2b9a8b4bedc26b3502813b0334a1b0"},
+ {NID_sect571r1, NID_sha384,
+ "43c24aea343d4e088bea25be69a332c631275c36677093e057de69cc83a4c5e70ab270e5"
+ "a8930f55846f1a22ec10e03007dcf0942c6761e89c65c6a4f032eed97dc3a2c7f7ed1e82"
+ "552fe48828a132ba16c41f6bd82a49335428a24fa1679522000e6a1d12c646e0e4b4c584"
+ "398577ea9493bb334fa3cee8bfdb6c2e66f46436",
+ "2de6ee12eefa7a4a736484b19b42a513dfc059a060976edc3b0aa4b50e98d72df6506fed"
+ "0499ff8480986748e938289e54a5e86c0c29733a9bcf5985aa63d8a2b57933a04a8e8e0",
+ "040073fa1b62d469f2991d54f1472b60da87ba51be0a9dea361d417b91a4a75373695e9f"
+ "27b3c672322315d7b566b1f22b96c54adce3e958080fa8a02836955f6264dad3a87fd11f"
+ "060452c0a07ff65fff741c96851657a5afc7eeca239622e1260414ed736a04e487157c52"
+ "da98a7845bcf6f311e0f2e59bb92248b6d47dcb93da6f7e0af644b7aec7603a01950293d"
+ "8c",
+ "1c87653066057636f9a98a7c69a84e103df480a92739abc4d5ba53891591e3aaaef6ef3e"
+ "f5e89213abbf71af9c84d3b30898580e782f557a03694446492afb05ab801d7dd631c8c",
+ "086d539546c61e82d74319f0180411172acaf08b5296dc6435d4ed7bd50cf23d3a071deb"
+ "3be01f74408e64ad244f069cd41227ba127145df5a357489f944b61606ec75e8377db81",
+ "0a34d9975fbd601614d04aa41506b03fc15189ee8102c0431272d691a322f3e77bcfd19d"
+ "8bddd19b307012b6c6349f5ecf88b5a69e83588b0e18096117f207304b38c16a9a8592b"},
+ {NID_sect571r1, NID_sha384,
+ "e89210565959d93b483659e62cf41f0a0147ea23890c2f1a694c377a826165e363860e4b"
+ "084016cda878a43eb68465f81f397ecd50087a25215ce7c4ededa3552218071fa3acd7ae"
+ "380655fc8fa884998209ffc8a2c26f1ca19dfcfee455dad35a4e72caecd8da47eb9ee21b"
+ "889162f5d3032724abfd1a31e68612e18bfa9006",
+ "05468f0df2c9854f5f655743e79c750fd8812db28b096d97207bae7f5aafc6b6090c9c63"
+ "6ead9e0fde32a1ff8d539b53813733ca812b41b58ff85a941abe4f128d59fdf9847baa4",
+ "0406591750fbc104f82c213fe88aa620e8a960fd6140598e2e6282e0d5c5ecffd09d22ed"
+ "94166109561a7f4f694e171189056d8b300b54c8134485500effc7123aaa23862e897912"
+ "42005bf8ec10a9ac6a92c54e7fb2135e2aa4f84da571d33227bde0aa2e6c153207488223"
+ "5f3103d9a51e80b7a9a19067f35047ddc52462db7c634c291e8fc5eb2154f6913bd0846b"
+ "88",
+ "242308c430de514be1b9084a7e6c96894cd5615a7c71ea22316e539986e9702080ff6cee"
+ "f2980144c55d9749830c20c9ea90b93dfcdd28fd862b6a15748dbb3d982e4a275129c75",
+ "361e1b7a0f981bcc65480b370c5e09b1c2e2a67cf41646f6a3d829f663c0911589223740"
+ "0317601fcee78a04269411d267dad3e8fc6f069529fbdf0bcf9b5f13c9c6de1681e8b0a",
+ "2620c29f86cbf698cca5f79de364ae131345a802c0cccfaefdd7375dcc9ba6ccac91f709"
+ "43eb606506e51e2ced50491eb8f48769810b6dc178d56702838f1c2f0930f2a9e4f1db6"},
+ {NID_sect571r1, NID_sha384,
+ "48629ec97f56273599cd9903f8a84ac2ba74275b40e1e42fa47649568babe05cf63c8417"
+ "d828251acc2eec525b56dc9082b68d51b0c2bbaa7389fbee15d058cf482993b2bedc5a91"
+ "01f1afdc79989a812478245d191550109fc17215679553c508c84e3d4cfdea377088d09e"
+ "b214e6f92410facee4790beeecafe72b2e3ed192",
+ "3d3c6a7ab9450c94aa3b8a1ffb678e5b647af24cbfd66ee3944e6f264f406295b8037674"
+ "71fc67936fdfed1714b4b8761a07eec86543b7c4da6bd2fcb33fa8cda4077737f398e18",
+ "04042d536f1b15a22f4ba80066798d8d1c2704988eeb9423319c1850a1ae6bba4097307b"
+ "515640ed3112e93f1f6ae67c60a4b0d2b6634aa7038a60b52b2b447fd1651857b71711c9"
+ "75079eb18cc7493a1c7f2f9b621969b9ce9ee37fc0701f6cf56f5d5dc6efb13a384517a3"
+ "87f253aae1e93bb0a919b0c22e4d6cbc79b449b268a068b7eb2853324b96715d75b8c26f"
+ "27",
+ "23ce112d60a2f7c29d77d64acd9f587e0eb75ef8e739b8548e154681efc24243594eef5e"
+ "33d845b1e4e89bac56f2e9586e042e0fff38bcf79c73fc9aa5fc908261df5cd2c6cb821",
+ "3a770df8a2bc35e122c1bd551c38400be47f2499ff57618ccd01e14a2e35e87a67b0e40f"
+ "9a10eee7efcc3d37b474f2840fb8c24a9adf93734680ae6b25818369c8608a2f8f338f1",
+ "0728a4eae5f5638a51579e224a24ecd4c997001bb8681e23a7476fbf78b4fab84497000f"
+ "20c1e67e8a4e4116498bcee49ff00026009af31c1037172188aacd264fde8db15c97167"},
+ {NID_sect571r1, NID_sha384,
+ "aa3a9fe467b1ca638dd0622c9ea235a418b39b2e15ad81fee01b6892b240783d8db3c72e"
+ "16c13df8016dac6addbfb85232158325bd7432fca3b8bf5db3abd0b4c5ccd0999609dc42"
+ "199ca4680692a0805cdd68108bcb493a558ab507cec0a2782a9e976928985352edb2abc0"
+ "c07078b59d2fd86fda7fc76cfe573181d934c46c",
+ "01ce010ea8e6e1a0c26ab22eb90f0700dc73b232c429d36371e68e429792afb7223f1032"
+ "7708bcff779ea55fb5f22ad87aa054e84d10f5450f1bc9a89279062ea2173f55ab0f76c",
+ "0404b2b5acef5921e691f10ade81b91ba8e68e73b33a2494cf4ca6617707861f334eb07c"
+ "a96dfd681dd63f78102f8d792d66102117b739d477e431d9a3efd79bfcc18cea156db58a"
+ "0e07e421337d4cb7a98cf9c9c6fdf9fa242904d9906d8a6759ef64a82cbf923b2a57073e"
+ "a0eabd14aa4295bec84d50a1722fecad3e5f064bd3171facdfff45b170e49f185a3c193f"
+ "2a",
+ "326b62065b7c779dc398ee03a8332cfb940b0f24a7d3de4a90323d9e390ad3fb1f0036ab"
+ "f6f525d8d88ab6641302d10db447b78780d366f32ce36ae571e323124b21984c48aea7d",
+ "3d2b207b428829ed5100a92f7276e16978e374c734834b0d627cddf6aff5cab72dafefc6"
+ "c038a91426e35ee0f2c1acc11c55a34a89874100b89588aba7b02e19490e66eb49ef6ed",
+ "3259fef5c2a0779ae408b26e6c7d581fa973156cdb07c329dde0c12b6c498e7a94577719"
+ "865b7fcc0db078ba72a27bf338ec6b8aa41c15963538c329c55dee67833faebe3b643ad"},
+ {NID_sect571r1, NID_sha384,
+ "6c3937014361799f1461f652841b5137eb0dcaf01dd293298d002f27e9a770b9e1a30367"
+ "e35c04603881f0c814cf8ecfbe1619cc49cd516b1d60d27de37ed52a5e1cc300e2face46"
+ "69f308ebe6747255a3d386f16778e494a7cdd10b45171b2bfcdabd91b805bf24857708c1"
+ "b75e368edb2874321324f83a19154d3a1578c767",
+ "1e7410d012aeef02b3723346d24ebafd684c99087ecccaea1cf3735d52c4c81dda41812c"
+ "09f1e874dc964d858ca240a19963d5dc89451f5dd6764426ae41cb23f19cbfdca0fc562",
+ "040400a3bb3ff07a339ff98f7c45fe032cf42c0e25de8dee2934ce42dfb0c9894f4fce27"
+ "fef299b41beb8579270efc7b01c0663c3f72d7bdd9f6ff5186eca9c42d15faaef8784211"
+ "a5006fe998f7a0db06efed050d178865a2b7de6ca7c789cedff7f2158a5e07ac1d335ec0"
+ "dbd213fc9465399028fad8b7f4d2cd16fb8ceae4d3d53abefd2b4037efd7f7245296bfdf"
+ "9d",
+ "2bb0fb9c428e42482d5dbdb35157ad0fa713fe732dac8604c0194e3f9738fac5cf3874bd"
+ "863718712a3da45b7c4612c8685465ecaec0930d9fec32ab25818d2f25fad580009b698",
+ "1062386d3e77043298eb88be46bd4e6f33c83a7358926b30ca06a6b7139815f6e1630f73"
+ "d352a2cb9bc0619d08a89d4bde1636c74b6580543ed743073eec2ae0037bea2b3c9228e",
+ "1ceef759d804ff7de526559636d0bc7930c096c7b959f04f8fec5d7e96129fba14c8341b"
+ "0ed84a64c6cce7cd5b058fab7f44dcf3e714544c9b6f9c1d46ce512870deb51856e9dec"},
+ {NID_sect571r1, NID_sha384,
+ "12fea55ffda15db902aa6a4388b9807c89c193cbf75b5d2a4c95206fa43dedc45974c800"
+ "79933451bdc5b3ea015ed3ca2c54156dc61afb1bc82adefed1491302a48b9d3d2f474ab4"
+ "5343c611677d360515b93fb36da7a1c1b2341c9cce185c881c0beef33d43967134a190c0"
+ "9034ae3261f3295b79aebd3fe123616f73cf2089",
+ "2139839ce38eb879d266065dde5e5ea227244323b330e3ad5a0bc690f3c210f794cf18f0"
+ "d730693887548bfbc434f48ee10ed34cb41d52172b06e448df938170a5e17311cab8e88",
+ "0402ecf46b90616b534ea25cc9993942fd7576a1c4f2f443d3b1f56d4490bf0af669c9eb"
+ "9d110fe2a65609875e1a924bc4b9ed2ed2315047bbaeadaa1029b38a7a87dd8751d4128e"
+ "8002aec3a2f2557c7152a4907af68aa39485274f20927b2da70823440fbd09cbc308d46e"
+ "30bd6b705f615b7074fe5421ca36b4aa53861983eceae9a69649495952e75b0f060b5d26"
+ "e4",
+ "2e3412b61eb23d33ca2910dc25dd14c04d2c8b403d8077a72b9511d71ee9da6d7e1db093"
+ "b92287f8fb00aea0576f6712c56d80cc4e3554e0faa9c7d911e3d17682de831bf649bd9",
+ "06a3075efec81a86175cd1dc2bfe82e83aff1db640184a6a3ed7a0dcdef51aa0be0005c5"
+ "4ac05f9b65af265af7f2ec3d1d7c137184b0d695d701ff1aed194faf2efa98ce6c5e502",
+ "237d7ff92480fa7d6d1f5a0564a2608afe5e95ce2c29dd88853d1ad9d4d2beb8d1f0423e"
+ "db883faadd592394f52048bf2dc26d2dc19279477ed86621c7a5960ee3c3e2d345fda29"},
+ {NID_sect571r1, NID_sha384,
+ "c8395546842ddb545d8ea3db4efe970453dcb06025ac3b7a25aa5ef62070f3021b9a1fea"
+ "91ff7055b6c398073e7886a6f71afe53c82c47b71377dfe291972503bbeb25bd477bf0e7"
+ "adc8a5d3f8b34ccd0080d61e121214e1b29802b711cdd8a6bb2275a2395c467ec2c15719"
+ "52992e448d736d8bd70ee629c75b5e32b8323a00",
+ "274f70fe69e4dbb55c5d404e39f5196335047113087f8711f2f67f2be4964e4fbcb86568"
+ "0758df1c401cd677b0971654b7a6aeb7bee0d6d80ac0de14d4f46f356b2d5545c185aa6",
+ "0402b2321e0a1df083919628dd8b4c318b9ded8a3e660ce5585b21e46843228b4d32da76"
+ "5a3776c181654aad0ce90724bf85b01b051d236342b48d41a1dbda1e9904d659c98a039a"
+ "97020227182fcf099d46d9882c0b0f26b0595a2a3166248898df2f3fd27c78e7c0b8b59e"
+ "f0ed6745660c0dea1acb567f9d943928864dd1e94f8eb6b5b8473c0c91485643189cf679"
+ "d2",
+ "2f234066c936625fca10dd080cbbb1228c4d2054cbdeafc8a0a248c0d22807fc92c661b4"
+ "f69586ecf9469bc4c22895cc73ecf492fb2165a12b027194d409677e7185de24f6870a3",
+ "3a48daa8e379b3b2f377049a4d462530c9ea67019752f4af4b4192b02d6e028386dcb9ef"
+ "95c8019e90e09dfc8dff5e6f6812df491906ced39befedf16caef614d8c174e7ea95fc1",
+ "33f18738cb26d88c8c048c58a210c7be70c71636dc62c022df1bd7747d8c67bfcf5ff2fb"
+ "3990ed35becf6c77755ac62aed480df55efea578671bd8d50536a10e2c0192bd42d78e2"},
+ {NID_sect571r1, NID_sha512,
+ "10d2e00ae57176c79cdfc746c0c887abe799ee445b151b008e3d9f81eb69be40298ddf37"
+ "b5c45a9b6e5ff83785d8c140cf11e6a4c3879a2845796872363da24b10f1f8d9cc48f8af"
+ "20681dceb60dd62095d6d3b1779a4a805de3d74e38983b24c0748618e2f92ef7cac257ff"
+ "4bd1f41113f2891eb13c47930e69ddbe91f270fb",
+ "03e1b03ffca4399d5b439fac8f87a5cb06930f00d304193d7daf83d5947d0c1e293f74ae"
+ "f8e56849f16147133c37a6b3d1b1883e5d61d6b871ea036c5291d9a74541f28878cb986",
+ "0403b236fc135d849d50140fdaae1045e6ae35ef61091e98f5059b30eb16acdd0deb2bc0"
+ "d3544bc3a666e0014e50030134fe5466a9e4d3911ed580e28851f3747c0010888e819d3d"
+ "1f03a8b6627a587d289032bd76374d16771188d7ff281c39542c8977f6872fa932e5daa1"
+ "4e13792dea9ffe8e9f68d6b525ec99b81a5a60cfb0590cc6f297cfff8d7ba1a8bb81fe2e"
+ "16",
+ "2e56a94cfbbcd293e242f0c2a2e9df289a9480e6ba52e0f00fa19bcf2a7769bd155e6b79"
+ "ddbd6a8646b0e69c8baea27f8034a18796e8eb4fe6e0e2358c383521d9375d2b6b437f9",
+ "2eb1c5c1fc93cf3c8babed12c031cf1504e094174fd335104cbe4a2abd210b5a14b1c3a4"
+ "55579f1ed0517c31822340e4dd3c1f967e1b4b9d071a1072afc1a199f8c548cd449a634",
+ "22f97bb48641235826cf4e597fa8de849402d6bd6114ad2d7fbcf53a08247e5ee921f1bd"
+ "5994dffee36eedff5592bb93b8bb148214da3b7baebffbd96b4f86c55b3f6bbac142442"},
+ {NID_sect571r1, NID_sha512,
+ "b61a0849a28672cb536fcf61ea2eb389d02ff7a09aa391744cae6597bd56703c40c50ca2"
+ "dee5f7ee796acfd47322f03d8dbe4d99dc8eec588b4e5467f123075b2d74b2a0b0bbfd3a"
+ "c5487a905fad6d6ac1421c2e564c0cf15e1f0f10bc31c249b7b46edd2462a55f85560d99"
+ "bde9d5b06b97817d1dbe0a67c701d6e6e7878272",
+ "2e09ffd8b434bb7f67d1d3ccf482164f1653c6e4ec64dec2517aa21b7a93b2b21ea1eebb"
+ "54734882f29303e489f02e3b741a87287e2dcdf3858eb6d2ec668f8b5b26f442ce513a2",
+ "04036f1be8738dd7dae4486b86a08fe90424f3673e76b10e739442e15f3bfafaf841842a"
+ "c98e490521b7e7bb94c127529f6ec6a42cc6f06fc80606f1210fe020ff508148f93301c9"
+ "d304d39666ebe99fe214336ad440d776c88eb916f2f4a3433548b87d2aebed840b424d15"
+ "c8341b4a0a657bf6a234d4fe78631c8e07ac1f4dc7474cd6b4545d536b7b17c160db4562"
+ "d9",
+ "378e7801566d7b77db7a474717ab2195b02957cc264a9449d4126a7cc574728ed5a4769a"
+ "bd5dde987ca66cfe3d45b5fc52ffd266acb8a8bb3fcb4b60f7febbf48aebe33bd3efbdd",
+ "3d8105f87fe3166046c08e80a28acc98a80b8b7a729623053c2a9e80afd06756edfe09bd"
+ "cf3035f6829ede041b745955d219dc5d30ddd8b37f6ba0f6d2857504cdc68a1ed812a10",
+ "34db9998dc53527114518a7ce3783d674ca8cced823fa05e2942e7a0a20b3cc583dcd930"
+ "c43f9b93079c5ee18a1f5a66e7c3527c18610f9b47a4da7e245ef803e0662e4d2ad721c"},
+ {NID_sect571r1, NID_sha512,
+ "ba6be551bc60653192401ed8ff9e1acd9013d8811a7a1389528bf07438366f5772cd7aed"
+ "ad010c19c47622cec03a4d35b8003b39ed901b720629ab59de55a03c1ca50a62987f8da1"
+ "59e356245df58d5ae1936e65f3cd3acbe03ad1d0fcab4aaf2a7a947549ae776772201efb"
+ "c6fab1aebfa1d99994d4f43dc28f39c0f279b992",
+ "2a69bc1df069c6e89722521a63675f318252be629e7558f3716917998e660ac960b0b750"
+ "562846fe6c12ef492951e51e224754bab84a6eacd4147a5f26ae85ee4381bb14ec2a8c7",
+ "0404685c0358ca31883cdfd7d609afa8b1e47540a97f473e0ebe98b0aaaab9418877aeea"
+ "d3a26fb01a4725fda20e7223a4fe7de0df6891c0812555b8b146918d3b80edd11615d95b"
+ "77067c92736447946c7577965b613e18950d813a4df049a6000895f9dac34d73ea46a83c"
+ "6a4e7c83831af0d33026825664c44090953521175b9da2a7ac563a0fc5e13c85d34aaf49"
+ "f2",
+ "1700d9ac00a987ff3a1d0be4290979317fe60f4f8ce1e0e72a026fc89e28c0070b76ada1"
+ "4f7a1a66ac2e8aef17eec18b568ada4fd59c05414e55356fc17d9e5079e6cabfc1f220d",
+ "23a279662efec48f6cf8c7334862525b52ac37a9b03da6a063da2849f878015632427834"
+ "34fca02fa23e32249666ddc6f596e07750ed21de303f4f10de56f1d37101cb0826bb8bf",
+ "3b449467b150cba0d7c2b44280c5ac452f1217384ce121c979625d313394f6cef501b819"
+ "80a02567ca55da2bc313dc0754b5256b08d8e3b63ea033253b205cc5dcb014574b8e9a0"},
+ {NID_sect571r1, NID_sha512,
+ "295720a79ac8201f40a66b06ae5d970afb15f36582897eed25cd92edcd00f70ac8e31c55"
+ "6eed4375ea044c2e8b227a8e02c0a3e996c9272d52ac7b3ad43b80f217295dddc84b177c"
+ "f1e800ad08bf7fdd021fb2f49b54162092f8d628679c4ee335abbc90c027264c8b288c6e"
+ "16eca3172eaa297ba50626b00fe0a0ad3a9dbeeb",
+ "0d11ed1b78b22b3420df4ddc4acc7c2286d9569dd6dd88e0fa3ecae69bcced68bb81bbb4"
+ "ca6e9b54e67856e7fdf39155aa27aecb9cc827ccb9cdcf9ac633561b27d8eebfc261aee",
+ "0401868a1335058a69e3ce24ea4e6e8dc25851777bb28d3a5da67b741ec9c46e26f2d2ae"
+ "70a48c3e4feabb3b15b3c3ebd561f667ef3b95a587621de6073b9c8a904755566c5f7a3b"
+ "4206365a03c3f3066eca1af17bbbd08cd52e89f8095075b415cd4b82f3364cbff008fe36"
+ "42fe71e8a8c634ad0e5d9979251e6cedd42cb97c2203f743210051f5ee1b70c861d2a72c"
+ "00",
+ "075e49d2ff6f2aa8b44fad90446474ee0e72323a3c39e731b6c2b075cce0cb9d193bc335"
+ "6f8fdae0e0143603a57028836ee6451cab101a6eb550042cb41b5c4233d3ad3e87034d1",
+ "207a8eed0b87efe65ec558a0ccbecb13b9215e176abd93c1a4803fcae713927ece70ec6c"
+ "41c621357d78a13a950958871a52621f1de7ab74befd964a0e8f4820b84af3e0811bc67",
+ "2f02017714f54089652e02af36ac5165e44ac4a83747c805a9e003fde4bdb29561dcead2"
+ "c76b02c195074396a2dcc1b93a256c721716f8eeda8dae443c3eea446118fec3cebc4dc"},
+ {NID_sect571r1, NID_sha512,
+ "a9cff41c6dfdc4a12f31dc375a5455950077ae323d0b7a3d9a8dde73b76e9d7b94ddf9c8"
+ "8ae8e6c262d704052ac47681fc35adfc56c904baaa6e146eb653984369d76a85596cb744"
+ "941aa7b558c945ff2e81bd5ef7f00ecb4f43af23b4cea3bd4ba7b1899f1868a0c0ecfc62"
+ "ccb1d588955597ffbbaf34cab2838efc2b866669",
+ "2c36ef754b5bd065e9eadde684750acc52795be80f54dd3d7a7d743d968a18f7e404bd71"
+ "f8a76eb0395f396df5a7c2ff7e0ab6de35df34282fda6ee01fe5b9b68ecb4e378dbe32e",
+ "0404805e1a23b6eadcf91647b40903bc1fd3b9921861c942fc24d2c03d0544e7c01f004c"
+ "aeed04b5c4ebbce366a098a878c322cbebe7910bfb0f91b284ac1aef344152fc5831669b"
+ "7904f589ddb4da482ba1e9a59241b1dfbc7e9b9b69e8f69f8e90460ad58fdecc48a56842"
+ "ea6aa0537abec0a605ebfb713e588685a98f62e05a7d52082bfd57e3d68fb7851b37ec55"
+ "67",
+ "2f2002bdde0c0b0fd92e96abe76c0858e42fd7d94a181c711fc6753572539e18effa8155"
+ "cde7b1e9ceab2394f9eba874b7ea257d7c308c8ac08500f4944af5f33057650608db8fe",
+ "27f9109799bced42730faecdeea68259383a45033c6d5dc8d87adf994b46beb34177e013"
+ "700b13f1253cf756a8866218e9c8adc180f3c242c56b3de28405b36940d53c2aab24f1a",
+ "20a762ffb2f5a88b0e1356964fb558b555c424946109d16c7548f41a33cfe41da1f48327"
+ "6a27b188faf948a56670716ddf3b187570c9f514869c4492d7773d6ce453a075f9bc64f"},
+ {NID_sect571r1, NID_sha512,
+ "efa6c582d7fcf5e431aa89b3b00180c0e78efd7ccb0384d90b80e59a115a13e55001d951"
+ "528c42860132531c9b8ab29dda7a657c53c2ce96fd85549f6f1810e121eb89961295335e"
+ "aa0e40532d85814a4206e6fffdf9bff76599da9b2e71a22ed572910b0e3bae38ad72c704"
+ "2579f106739a8628dea5a745168bd918736e488a",
+ "19ffee50be5496507e3ef5c40ee88a49625e46d1dd1686a52b09ad4a8e3ee9ef364f953b"
+ "fcd97c52104eecb6138067192997cd4ebadaccb73c7b2560879289a46353a756b73cc43",
+ "04077dca410e722009ef11b37742c2c003ab3015d0ca0328a70d9d41aae04cb64f7746f1"
+ "c348b08458eb3bb1788f9ffe7d0570a9b689a9b7aca43e05400bace7630d598f5b484d13"
+ "c407291f74cddd9ff69470cf0d92afaaddcc4c8c274d4a7a64fd94292ddc8bf080606795"
+ "376bb725ab4d32c72ef77dff34cfedd34aff2f463d635bfcd7e1fd002d84383dc5bf8d5d"
+ "23",
+ "2ea37750fc3bbdeec100694068d55f92fdf35bff9ed49251c4b8bbfb2dec2dd4446999af"
+ "8848e05c7b819aeb1864430ab4e8c1d684e1cf78947a71b04d5ab8ad61cc7e3e4e24205",
+ "12ff1852eaff37fee997531039adb1fb2f9b4f4199670c022e8534625fff1fa93390ee9b"
+ "c7204ad2ba3efc2233260943f1d2381a3cc025b78c6d1f660a7bd6f42e5ed3c123055a9",
+ "1b4d8abb28ef1a9d77066921ed50eba64b8433cf00c66b8467269a4a914f568cdb86c766"
+ "a7a6a52437c5d98cfc9a2130dfaba20f3c2001f31bba7071647d51fb9fbd5fc67ee120f"},
+ {NID_sect571r1, NID_sha512,
+ "211acebfaf13bba33a9dd16722ec53baab92a140127d61372cbf1850f2fc894e942e25d7"
+ "80778235f880743953d04eca7a9205602e388172aec2abf35412b483490751f93b51239b"
+ "6701cb0aab14e5179b0d7f55d8586358381dd83e3e436bf69a6820317d1701750cb1fea1"
+ "293467ba589eec5f5779c2dbf2a9b8f28c4dc239",
+ "3129e96fd28c4198cc5242c1e3531a3979fae643d527044e98d7721aa56b5b4b45dfddfa"
+ "17a4115e10a2b4f46d92f81cbdd7e86e588a4c6d8c2b3a83f54cebcee1d1dd33e85d81a",
+ "04073a92abcc991e3f89d82c47fa0fec48e3e7c4d97e2525f8dc2d24da39f616af4a5a80"
+ "4d2603703f6db7cc9324c5b56a21009373f6605f561c8503394e7746e51273b5722ffbc2"
+ "3d00684c842f03a53a60cce087f4fcdbf23b7a28c48b6b6544f583342a65d97dd87037c6"
+ "fef176a1f00513713468273494a5be683b68c5e75bc08995fde763bb6f965da1acb7e894"
+ "f1",
+ "0165e52640fcaf8cbdbfe73cb8058c53045e7670aafb2def28d2c9eceb5ed1634b5339cc"
+ "47ba981eb6eb03ba714c7717e9ed5acc15c8f304702a0409bd4508015d4626cfc5484b1",
+ "27dcdf16b7156a7a05a752da28b5bd6b233e8a7c16eb7f9030f29c4352e6508f8424d1b5"
+ "ba789dac4152ac4812ff7975cce69908371a81a4d7d9dd70a8dabebdc4e3af27234f0d0",
+ "32a654a31f09a9803e502a1440c2bcf122780f4f47aa37e15991d9a548583fdca4880080"
+ "4712816b212cd3c657e6bd4cb7443a0288592541473c5086e1277250612c21346538374"},
+ {NID_sect571r1, NID_sha512,
+ "ee592e20e0a45c18089c2e41460e65a7d22ed9714379f095d43a308bdd383128aaa6fb24"
+ "e9d35fd28fc95c5b792ad75c980d2cdf0f460ac60b12c5919d3cb28dac4d488196be6c2d"
+ "fe462b1b0ce59f8501692255840f5215c0fd8b74b1996a267a5e3b22d2841cf0a0b6315e"
+ "f4ec7180f1c8494f4c07d5869c01fa2711739efc",
+ "3d723d2697cd07dd8444f992f2ab4a063db334034c25ea9be99fd7a1f495e3a644e5ea03"
+ "3a41264e0d24a911e55741d0cab80a0bd678eaec2bd1e60424d4491eb86d664900d907e",
+ "0400c7a229b5fb9fc774c1b6250f3bba2f0972d1aada7080641c014d012db0637a0656a4"
+ "3024ec0ea25ff70012646dc19eeb1033aebcc96a001ba876b2f5def6e198b8d4a53f7c7f"
+ "4a009228a68eafaac214fdfa19923a0c19629de31ac0967c9d02c53dbf221f9affb735d3"
+ "bad732f381f1ca414d70920231a78f742254d895a33ffab492f8e6094a542e77962a324b"
+ "a4",
+ "3b3724a5933353bb9ff5f742f59385e780caa517a963590b7fc89882bed95cf90ca6365c"
+ "e8b882f2d96e56bd866a5c437733b681308c570c51ec893ea95fede66c7aaf4561173f7",
+ "2a487c1fc29426e8e85f0a35c177cd168a444959b2f5cd4519b9edd52af3ea829cfe964a"
+ "c2b59198af8e2d3859ebdf9885ebf57bdf5767da1611d3958de286f91ef397230d65599",
+ "10fc01efcb22b982f992efb71887bc79c3f32a9088bc2011c269924cee0f47c36452399d"
+ "499f2933587081b872e9fd2191c20cd5cd94927839228ebcf22cf7acdf4608a2fa66310"},
+ {NID_sect571r1, NID_sha512,
+ "fffca41927debbd53455821441d9115db99fb31bfc69752a382f57bc7abe021f148346ee"
+ "29e17512c64b4918ab2391d12d6e5643bee6b5682885dc28177b292e23a37ff99b359b9c"
+ "f7578432af56e0ad1028a6cce7428980654c145af8daf09addbb3be11228d3c742defca9"
+ "d3b1667f48c63091fe3307ecf72667b02e008f24",
+ "1999ab45d66cd1d3a0fe6aa43bf5ef1e2a67637d53674f6fbbfb9b582be91fc42a12cdca"
+ "d94b50b0fc7ac55030de24a0b99fbc4314fa743ef4b5198bcc5f54d8b669fbed78e2e91",
+ "0400cbf3b0bb4a2e6c225aa922bea3b233da4661df5da7e0a1cd343a9b6655ee87fc60cd"
+ "763dee21eaa2b81c4dd5af6f4fadc3ceea643b37a6b17a6501e1b9b689fb0c4716911c1f"
+ "10014b5a9ae025f09066fffa6797ddf95f27eeade06b8ca5be5738f770362d5213c46ecf"
+ "ca58e3c60cb2bae1f8ab1bf0577c80b4fdad02819fc174cafb33df64fc0ec79713f7b252"
+ "09",
+ "253b533d3ad1c7095363e3fc80cb32471061e44dab3f9ae0ea6252f6ef169cee8badd3ec"
+ "cb77096ae9224f89baeee7e183058579680661655fb689419e36a61e8573de5ecb4cd09",
+ "3ba94f7682fb61de725a35caf1d4d799c4b05a1d1c44eb1c251dd8efab6b7d713c3fb917"
+ "776902a1bb202f9226558f4c1e75964349717e6dff938d0befea07a9ca1bbd429dd6318",
+ "226f43be8e24062180c726b5cb721cc04ffd3acd82183925523ff9e8631aecbec2c224d5"
+ "a291bb225f0da726d256aa822ee7cc2c7d69df3f2a5beb21132d91bea22e4c5db900cec"},
+ {NID_sect571r1, NID_sha512,
+ "a2f71619ea04f7057e6943c2cece8594b341ec3b96c3915d924f94ba13fd7aaeed41ffa0"
+ "e842ade414784f1ef825fcf2dbcf7bd8263b802def45f94de596aec0c121fc06558c7bb0"
+ "6b9f27a9bf56c42090b5dc344e82b69c4f528d33be166764a593483f6fda0cf56e6000ff"
+ "363ba220f5ea0ea2c3191615c7ae3bb4fa575324",
+ "2ce1cae0716205330d730e6bc6dbfb6b951dc83ee3b4a7dae75d057e32e8a46e22be75b5"
+ "f09135452b29c34dfe81a9be2e8dcd243fbd946a0ed14a832a7802e20cfe1abfd3d6e4b",
+ "04075971399fa621ce535144ec1d57f544d798a0a59207166c3d657e5a80ac00e8f5b643"
+ "448e3546064d68ae624aaabf36face3016561a248256ff9131950ab8b04710551e12222d"
+ "0c0224a50f321647f47de3db4fbe1bf1e3a3dce8a834312779f66037315e3326721e3fd6"
+ "3d4d6ef92b7ba1fa9aeb70f92e2a6701458ac8da49ac386491f2306adcd8dd781fe75e99"
+ "e1",
+ "0ad95aa69cf9f40e13f8a72ed6d93388168abc8001670ee4d95fb4b726b1f958205ab2f4"
+ "58df8bb9ccf2405680d0e6951abbb922cc11d47cfded93c0efdb70caf0c54e7ae96d7e5",
+ "09ce019161bf29eeaf323933045f59d2efc372904ba50c4a6602b8305234a851d95f06a5"
+ "b56193ad5d28488102ec25e3f421a5f5c4626b435b423d612e6ab60e0a4fe5d4952e2c5",
+ "04f7b7ac787b361c2bdfa767da9c22152e402184a7ac133f651fdcd928239215dc917401"
+ "122a6d41e78299b4235e085399e594465b7f8dbfaae9bf302d83470b4295ea06bb9bd1e"},
+ {NID_sect571r1, NID_sha512,
+ "b60415a831eca2cf60c79a334ef2f327a76d290846ee588d5d33d0a826bb0c7ec3e11dbb"
+ "384a7f89c8d180425dfae7463e0ea6497d2eec1dde112f1c1efccb532a2e2b66a28e2d36"
+ "d4252a4c3b12850d465fe21bddc441b92e6a7b0f67744f7f6e7812a0603211a26518b311"
+ "a5b190ed890ad852bed4f6ed13377cab3eebedf4",
+ "2c9d0fcfcee7e75c3245ba955ae04188b1033c55ec9c821d8de7685276bda3e9a93c3ae1"
+ "b003e5ea722913e7b169d67b1aa2dc8cd42adbd9368672a3f81a6817bf3e5529dcb0c8b",
+ "04019cba4c8ddadb596d7303331f2a22461849ebfbc78ea69277f72dcfe23d08397025ff"
+ "6691c61ed9958d68a9c5dd8a32048a89a2553afb9077ec43358763756b1473ab2cd8f25b"
+ "530319eeaa78444b7cc5d8cff4e9199ddd2c6dc7bd935a1be1d8b1c657dd5ac49bc92b0c"
+ "d91304ef44ddb7ecac05518301bfa0e533402043533f99549621e31dcc282a52186478df"
+ "2b",
+ "385e12170ed0b23c9c65ff7edd413145fd343dd841e85c498fae5f36e577641688999028"
+ "17d4dc39127010faa1da68000a511ac69f80708be5afe1631432f3bab7aaec2bdeb11b4",
+ "231ef400c6a3a0c7b26ba1b92341b72e138ca62d04ea2172854631c40c48081a18a57e9f"
+ "055748245d3e83d10d21af39935b0e50c9c86956ac46c1ea03ac4ae023d84b24f830973",
+ "24d37d67afafb0676cd7b5da2960cabfc804b0b3244b5e6739f8fe43d0841693d28c61b8"
+ "e76181f8aa24940d76fc5ea8ef3a95f72f67303e1ed85ad6e83cd2c44fd0e0f3f2f44f4"},
+ {NID_sect571r1, NID_sha512,
+ "5d15a08226cc74cf495be681b795d0bde26b19f29aca1a8c6ef77d50271ebdcb4e5fa2df"
+ "23961fe11620b1c6580183f6ebdceb2c09516c8127be576496fb71449bbbf0a9d3d1c48a"
+ "25024619b97c3e0d8b165897db96ae9758d13ac28441d7cbfb75b23cb423e0002046358b"
+ "b6d64779974a5995dfe54b398f95f7d64fc52d96",
+ "10c057bbaa44ef0f565edc288bfe66d4f6acd8686899359bca418ba89fb690429489a37b"
+ "d3c6c9f3a8714b2ca225868c6a45fee360e378a676f7ea39321790f32a4b005b81dce43",
+ "04043b1e7d7b2aee3563813a6692f0b4b61ba82b801697c3e23724a2fbab2af80a2c56be"
+ "55af41def0a90cbfce7a45ec61629906055a8b2a5013740e96859e580c444ae9f0ddf73a"
+ "fe06742f13244f1bf156d321eab2c3095ca548c3182c405187c3de2fbcb01d0e16e1fef2"
+ "46012c87d4d32378629a75b694572ec8583ae0cc813ac64f10bb05a9e52e4805590482f2"
+ "89",
+ "2b8076102a6448bd4c4e192e93cdb96ea9a6c7f6753818267ee9e67644df1a4a6c9ff64b"
+ "be9f64904648cc640fb7f0cce69f9e02878ee950b91ad559a9ec0ae15b676d933f1620f",
+ "1ad97f4997037adfe306f3859d550f9fd89bce8b566e657d5742feb17466b6b8d507d581"
+ "0a8cbba44d671b043ddb557df084bf5d1de74ef8bbd6a93690459fc16a17b80dd6c0f28",
+ "3262ef6e4175e7afe095d18157f67b3d12564d54954e9964e991c31bcfe1dee7e86b3549"
+ "1ce818400cc0f83b819f478f2f2c2d21c6c7a6be43938841559e09bce70b0d61fe51245"},
+ {NID_sect571r1, NID_sha512,
+ "9eca4bd88200baf61b901fca53dc1f1e7e3f83b94d58a6cc6a2adbc9b1a35fe3f8ec6178"
+ "7c76ed9a0d696167cd4fe46e1a0883fda564666131753c576a720125e0b712db1da02780"
+ "67cb899bdb14eec08737e864544663abb1d62f34a2114be07e8e3cf56e2d17099299ce6b"
+ "6d83b1a34e6153d7c6a32a72c7b1bf4583fcbcf7",
+ "2c182df7976ea93d996f3ba5d2221f3cb755cc7847bc3fe9e022fa4285046f5bfb426baf"
+ "a3580beea206de36f87593ae561b4b74a03fcd61fbd0e8d6fd5668f2148819a88a650aa",
+ "0406004b26a184ed710a5fb67e9d042f7fb9c8f5584b1f70a91b0b3be41c3fd2cd1a537e"
+ "962fdac8756df33f80fce2bb1bc7241d325bfc36dbaef7cf625918d589b6352fa7447189"
+ "10036a29b04a494abfe809d956c3cd6f84ea51a7fa28cb39a52f16137a13f72f0726a84f"
+ "6ae53ae24f5b468733f4cbfa0ce5bbbc1cc7b348fb996d33a45ff656a6a7557619f598a6"
+ "b7",
+ "2ab349232bcb4f4816b26bd0049e130fffc90ca0b9308edd50fb9055358a87fe798d0014"
+ "0b0ae01ed8b1f6bb9bfb726b253c3d4949ce9eecaa6c7fa84d1ef812669fa929f26be0f",
+ "0bbf2f9765b12742224ba7d064358c0305fb63e9b54a831e302a4546aa02cace798d82a1"
+ "88d2f536d78544c1571f481289d6ec69d117648026490e781f1eb9fca59bee05234ba7e",
+ "27e07ee0a1a99c90753cdc8c0291da25a82c116e62ec58b93f91086ac1cc039b35ce7d8b"
+ "53cdaa92a5ade65a7684b6e7ab79873dce33dcd467c39d0c764ee390b7fb25ca18912c3"},
+ {NID_sect571r1, NID_sha512,
+ "707450bd84141f3b61beb12ffa5ae89d812dd11badcdf6a88a2d50fc70e23f6d822ff447"
+ "7047abc58cdfa28f97ad7f4911ae0773c04ebed1f51bb2308cf6e5712c4aaed461edd698"
+ "7fdd1796aab70198276b601241f6a14225dce575830ff60f935fd9f567d1d210652e4710"
+ "922fa793da78c8fdc30c273cb08365c9fc887f50",
+ "2d3a65bbe133cc98cf0eb56ee1362195968b4eab960a1d55d8b762f1361fc21348d6f275"
+ "d4bea1de7158fb97c995e20b92a9c887a3e332d154667ad167acc632eb88a0ead6113a2",
+ "04034355b54d00c3df7c2762ee2982cb777491aaf78e550c4d2ff5d5a893416eb3517671"
+ "dbe522b8c553fd71edfe0306cd7628324f4f748091fc5d84ad8af33b896985674649a6f4"
+ "e507e322a04eb600a3faf3e045959f1e9f798e1c965ced40fd4c0383c0d4e79a96bf693a"
+ "91d7662780990d0c9dfca77a9bc0e13551d2ab35af8a153fa34ea903961fe66996ca053b"
+ "64",
+ "0a59ac1240bcefc52456486ce23b780cc92c8b89314b8442a6898c373bd0adc3725e3eba"
+ "c580546d1ec82ebfb2e04c608441d962d759ab5f5af1596c6623487e1347537a3c35bf4",
+ "0c47ef55d93ac36cee537160bbe39c3d4504184188533edfe589a5ab6e5a3e06ef413aa4"
+ "8710d304f0b2bc380fd69a34aa0b8e2e9466fd8a131cb056dffe4b809a59fd83e594483",
+ "2d8de1e8e2a52dd1be08435cda69e673b328573edeb1767849536e6f2d5fc8f18f7bfde9"
+ "36d8c32ecbfa97bf976133d65641320ca1c41e81c388fd6088884bbd89274b1976470fc"},
+ {NID_sect571r1, NID_sha512,
+ "d5ce9d59391cdc47ef942dd2a818d024ae3917deea8a5a4214e4db6a0c5e6b0936f3e632"
+ "fdb68a3f0006e05c44b7232013e1da5f877cd197f44fd6f60c1fd2378995e9a47534948c"
+ "5a09e33750f07a7165072ab38095373b07a50bc1391eb6b650ee13acd63d0352e7d9c316"
+ "95ea1ec6323f9b5f57b426ace56aa7fdbf419be0",
+ "2a920e8dc928acdd56e3655b2340d4371c793e66f67405fb7a90f31e9c4ef466cc44331d"
+ "1d2fe3ff7391d2576dc6640772166ef8c154a5ff1808f5dab2f03061070ec8b3f786c36",
+ "0405edc0fb974314e21ad40d73524d5620b7279084e3ecb9e58b06340ae53d2383efd206"
+ "b8b1eb3dd60c38f593efc05e2ba5fb8989472bac7db60fcada2d18d4108ab36e8c20cc71"
+ "0d00444cf65175f6bbaf647739cfd8407e7036fc6cc6208ccb9d776eb13e13b377136c68"
+ "3e108775d85b6bc5638926432a17344de965d45e042a0a8e0b63c7fc3a36fc15cf718f3b"
+ "af",
+ "35a0215892d0c52ece29559ebfa061011da8d597af6b3d1ee988ea4819be194c79a42681"
+ "476140738b1b5dc191485bd20c96c282ab38ddbc3987343155366b6a5d1ce7053efcd83",
+ "1a69a9a51f6b0dc196b2a8db2e8bf61764d4c65b038f43b5ed6b5dc2673971c32928606f"
+ "92b7caafb4dab3cd61ee724bba71a0d5c788cde4b96ef6b453f2a69126dafc20dbc7c82",
+ "13b5463636b8462cd9f479de8d114e29e7011489bcb9735ffe9ca0707a07df3c0aba0504"
+ "3eab387bfedd9fe982fbf04968f2be200e9e052cb4b02223b8579913d713acf94e7dc80"},
+ /* binary KATs from X9.62 */
+ {NID_X9_62_c2tnb191v1, NID_sha1,
+ "616263", /* "abc" */
+ "340562e1dda332f9d2aec168249b5696ee39d0ed4d03760f",
+ "045de37e756bd55d72e3768cb396ffeb962614dea4ce28a2e755c0e0e02f5fb132caf416"
+ "ef85b229bbb8e1352003125ba1",
+ "3eeace72b4919d991738d521879f787cb590aff8189d2b69",
+ "038e5a11fb55e4c65471dcd4998452b1e02d8af7099bb930",
+ "0c9a08c34468c244b4e5d6b21b3c68362807416020328b6e"},
+ {NID_X9_62_c2tnb239v1, NID_sha1,
+ "616263", /* "abc" */
+ "151a30a6d843db3b25063c5108255cc4448ec0f4d426d4ec884502229c96",
+ "045894609ccecf9a92533f630de713a958e96c97ccb8f5abb5a688a238deed6dc2d9d0c9"
+ "4ebfb7d526ba6a61764175b99cb6011e2047f9f067293f57f5",
+ "18d114bdf47e2913463e50375dc92784a14934a124f83d28caf97c5d8aab",
+ "03210d71ef6c10157c0d1053dff93e8b085f1e9bc22401f7a24798a63c00",
+ "1c8c4343a8ecbf7c4d4e48f7d76d5658bc027c77086ec8b10097deb307d6"}
+# endif /* OPENSSL_NO_EC2M */
+};
+#endif /* OSSL_TEST_ECDSATEST_H */
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ecstresstest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ecstresstest.c
new file mode 100644
index 000000000..4f05d237b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ecstresstest.c
@@ -0,0 +1,149 @@
+/*
+ * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL licenses, (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * https://www.openssl.org/source/license.html
+ * or in the file LICENSE in the source distribution.
+ */
+
+#include "internal/nelem.h"
+#include "testutil.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+#define NUM_REPEATS "1000000"
+
+static int64_t num_repeats;
+static int print_mode = 0;
+
+#ifndef OPENSSL_NO_EC
+# include <openssl/ec.h>
+# include <openssl/err.h>
+# include <openssl/obj_mac.h>
+# include <openssl/objects.h>
+# include <openssl/rand.h>
+# include <openssl/bn.h>
+# include <openssl/opensslconf.h>
+
+static const char *kP256DefaultResult =
+ "A1E24B223B8E81BC1FFF99BAFB909EDB895FACDE7D6DA5EF5E7B3255FB378E0F";
+
+/*
+ * Perform a deterministic walk on the curve, by starting from |point| and
+ * using the X-coordinate of the previous point as the next scalar for
+ * point multiplication.
+ * Returns the X-coordinate of the end result or NULL on error.
+ */
+static BIGNUM *walk_curve(const EC_GROUP *group, EC_POINT *point, int64_t num)
+{
+ BIGNUM *scalar = NULL;
+ int64_t i;
+
+ if (!TEST_ptr(scalar = BN_new())
+ || !TEST_true(EC_POINT_get_affine_coordinates(group, point, scalar,
+ NULL, NULL)))
+ goto err;
+
+ for (i = 0; i < num; i++) {
+ if (!TEST_true(EC_POINT_mul(group, point, NULL, point, scalar, NULL))
+ || !TEST_true(EC_POINT_get_affine_coordinates(group, point,
+ scalar,
+ NULL, NULL)))
+ goto err;
+ }
+ return scalar;
+
+err:
+ BN_free(scalar);
+ return NULL;
+}
+
+static int test_curve(void)
+{
+ EC_GROUP *group = NULL;
+ EC_POINT *point = NULL;
+ BIGNUM *result = NULL, *expected_result = NULL;
+ int ret = 0;
+
+ /*
+ * We currently hard-code P-256, though adaptation to other curves.
+ * would be straightforward.
+ */
+ if (!TEST_ptr(group = EC_GROUP_new_by_curve_name(NID_X9_62_prime256v1))
+ || !TEST_ptr(point = EC_POINT_dup(EC_GROUP_get0_generator(group),
+ group))
+ || !TEST_ptr(result = walk_curve(group, point, num_repeats)))
+ return 0;
+
+ if (print_mode) {
+ BN_print(bio_out, result);
+ BIO_printf(bio_out, "\n");
+ ret = 1;
+ } else {
+ if (!TEST_true(BN_hex2bn(&expected_result, kP256DefaultResult))
+ || !TEST_ptr(expected_result)
+ || !TEST_BN_eq(result, expected_result))
+ goto err;
+ ret = 1;
+ }
+
+err:
+ EC_GROUP_free(group);
+ EC_POINT_free(point);
+ BN_free(result);
+ BN_free(expected_result);
+ return ret;
+}
+#endif
+
+static int atoi64(const char *in, int64_t *result)
+{
+ int64_t ret = 0;
+
+ for ( ; *in != '\0'; in++) {
+ char c = *in;
+
+ if (!isdigit((unsigned char)c))
+ return 0;
+ ret *= 10;
+ ret += (c - '0');
+ }
+ *result = ret;
+ return 1;
+}
+
+/*
+ * Stress test the curve. If the '-num' argument is given, runs the loop
+ * |num| times and prints the resulting X-coordinate. Otherwise runs the test
+ * the default number of times and compares against the expected result.
+ */
+int setup_tests(void)
+{
+ const char *p;
+
+ if (!atoi64(NUM_REPEATS, &num_repeats)) {
+ TEST_error("Cannot parse " NUM_REPEATS);
+ return 0;
+ }
+ /*
+ * TODO(openssl-team): code under test/ should be able to reuse the option
+ * parsing framework currently in apps/.
+ */
+ p = test_get_option_argument("-num");
+ if (p != NULL) {
+ if (!atoi64(p, &num_repeats)
+ || num_repeats < 0)
+ return 0;
+ print_mode = 1;
+ }
+
+#ifndef OPENSSL_NO_EC
+ ADD_TEST(test_curve);
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ectest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ectest.c
new file mode 100644
index 000000000..5c01cc95d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ectest.c
@@ -0,0 +1,2138 @@
+/*
+ * Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "internal/nelem.h"
+#include "testutil.h"
+
+#ifndef OPENSSL_NO_EC
+# include <openssl/ec.h>
+# ifndef OPENSSL_NO_ENGINE
+# include <openssl/engine.h>
+# endif
+# include <openssl/err.h>
+# include <openssl/obj_mac.h>
+# include <openssl/objects.h>
+# include <openssl/rand.h>
+# include <openssl/bn.h>
+# include <openssl/opensslconf.h>
+
+static size_t crv_len = 0;
+static EC_builtin_curve *curves = NULL;
+
+/* test multiplication with group order, long and negative scalars */
+static int group_order_tests(EC_GROUP *group)
+{
+ BIGNUM *n1 = NULL, *n2 = NULL, *order = NULL;
+ EC_POINT *P = NULL, *Q = NULL, *R = NULL, *S = NULL;
+ const EC_POINT *G = NULL;
+ BN_CTX *ctx = NULL;
+ int i = 0, r = 0;
+
+ if (!TEST_ptr(n1 = BN_new())
+ || !TEST_ptr(n2 = BN_new())
+ || !TEST_ptr(order = BN_new())
+ || !TEST_ptr(ctx = BN_CTX_new())
+ || !TEST_ptr(G = EC_GROUP_get0_generator(group))
+ || !TEST_ptr(P = EC_POINT_new(group))
+ || !TEST_ptr(Q = EC_POINT_new(group))
+ || !TEST_ptr(R = EC_POINT_new(group))
+ || !TEST_ptr(S = EC_POINT_new(group)))
+ goto err;
+
+ if (!TEST_true(EC_GROUP_get_order(group, order, ctx))
+ || !TEST_true(EC_POINT_mul(group, Q, order, NULL, NULL, ctx))
+ || !TEST_true(EC_POINT_is_at_infinity(group, Q))
+ || !TEST_true(EC_GROUP_precompute_mult(group, ctx))
+ || !TEST_true(EC_POINT_mul(group, Q, order, NULL, NULL, ctx))
+ || !TEST_true(EC_POINT_is_at_infinity(group, Q))
+ || !TEST_true(EC_POINT_copy(P, G))
+ || !TEST_true(BN_one(n1))
+ || !TEST_true(EC_POINT_mul(group, Q, n1, NULL, NULL, ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, Q, P, ctx))
+ || !TEST_true(BN_sub(n1, order, n1))
+ || !TEST_true(EC_POINT_mul(group, Q, n1, NULL, NULL, ctx))
+ || !TEST_true(EC_POINT_invert(group, Q, ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, Q, P, ctx)))
+ goto err;
+
+ for (i = 1; i <= 2; i++) {
+ const BIGNUM *scalars[6];
+ const EC_POINT *points[6];
+
+ if (!TEST_true(BN_set_word(n1, i))
+ /*
+ * If i == 1, P will be the predefined generator for which
+ * EC_GROUP_precompute_mult has set up precomputation.
+ */
+ || !TEST_true(EC_POINT_mul(group, P, n1, NULL, NULL, ctx))
+ || (i == 1 && !TEST_int_eq(0, EC_POINT_cmp(group, P, G, ctx)))
+ || !TEST_true(BN_one(n1))
+ /* n1 = 1 - order */
+ || !TEST_true(BN_sub(n1, n1, order))
+ || !TEST_true(EC_POINT_mul(group, Q, NULL, P, n1, ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, Q, P, ctx))
+
+ /* n2 = 1 + order */
+ || !TEST_true(BN_add(n2, order, BN_value_one()))
+ || !TEST_true(EC_POINT_mul(group, Q, NULL, P, n2, ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, Q, P, ctx))
+
+ /* n2 = (1 - order) * (1 + order) = 1 - order^2 */
+ || !TEST_true(BN_mul(n2, n1, n2, ctx))
+ || !TEST_true(EC_POINT_mul(group, Q, NULL, P, n2, ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, Q, P, ctx)))
+ goto err;
+
+ /* n2 = order^2 - 1 */
+ BN_set_negative(n2, 0);
+ if (!TEST_true(EC_POINT_mul(group, Q, NULL, P, n2, ctx))
+ /* Add P to verify the result. */
+ || !TEST_true(EC_POINT_add(group, Q, Q, P, ctx))
+ || !TEST_true(EC_POINT_is_at_infinity(group, Q))
+
+ /* Exercise EC_POINTs_mul, including corner cases. */
+ || !TEST_false(EC_POINT_is_at_infinity(group, P)))
+ goto err;
+
+ scalars[0] = scalars[1] = BN_value_one();
+ points[0] = points[1] = P;
+
+ if (!TEST_true(EC_POINTs_mul(group, R, NULL, 2, points, scalars, ctx))
+ || !TEST_true(EC_POINT_dbl(group, S, points[0], ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, R, S, ctx)))
+ goto err;
+
+ scalars[0] = n1;
+ points[0] = Q; /* => infinity */
+ scalars[1] = n2;
+ points[1] = P; /* => -P */
+ scalars[2] = n1;
+ points[2] = Q; /* => infinity */
+ scalars[3] = n2;
+ points[3] = Q; /* => infinity */
+ scalars[4] = n1;
+ points[4] = P; /* => P */
+ scalars[5] = n2;
+ points[5] = Q; /* => infinity */
+ if (!TEST_true(EC_POINTs_mul(group, P, NULL, 6, points, scalars, ctx))
+ || !TEST_true(EC_POINT_is_at_infinity(group, P)))
+ goto err;
+ }
+
+ r = 1;
+err:
+ if (r == 0 && i != 0)
+ TEST_info(i == 1 ? "allowing precomputation" :
+ "without precomputation");
+ EC_POINT_free(P);
+ EC_POINT_free(Q);
+ EC_POINT_free(R);
+ EC_POINT_free(S);
+ BN_free(n1);
+ BN_free(n2);
+ BN_free(order);
+ BN_CTX_free(ctx);
+ return r;
+}
+
+static int prime_field_tests(void)
+{
+ BN_CTX *ctx = NULL;
+ BIGNUM *p = NULL, *a = NULL, *b = NULL, *scalar3 = NULL;
+ EC_GROUP *group = NULL, *tmp = NULL;
+ EC_GROUP *P_160 = NULL, *P_192 = NULL, *P_224 = NULL,
+ *P_256 = NULL, *P_384 = NULL, *P_521 = NULL;
+ EC_POINT *P = NULL, *Q = NULL, *R = NULL;
+ BIGNUM *x = NULL, *y = NULL, *z = NULL, *yplusone = NULL;
+ const EC_POINT *points[4];
+ const BIGNUM *scalars[4];
+ unsigned char buf[100];
+ size_t len, r = 0;
+ int k;
+
+ if (!TEST_ptr(ctx = BN_CTX_new())
+ || !TEST_ptr(p = BN_new())
+ || !TEST_ptr(a = BN_new())
+ || !TEST_ptr(b = BN_new())
+ || !TEST_true(BN_hex2bn(&p, "17"))
+ || !TEST_true(BN_hex2bn(&a, "1"))
+ || !TEST_true(BN_hex2bn(&b, "1"))
+ /*
+ * applications should use EC_GROUP_new_curve_GFp so
+ * that the library gets to choose the EC_METHOD
+ */
+ || !TEST_ptr(group = EC_GROUP_new(EC_GFp_mont_method()))
+ || !TEST_true(EC_GROUP_set_curve(group, p, a, b, ctx))
+ || !TEST_ptr(tmp = EC_GROUP_new(EC_GROUP_method_of(group)))
+ || !TEST_true(EC_GROUP_copy(tmp, group)))
+ goto err;
+ EC_GROUP_free(group);
+ group = tmp;
+ tmp = NULL;
+
+ if (!TEST_true(EC_GROUP_get_curve(group, p, a, b, ctx)))
+ goto err;
+
+ TEST_info("Curve defined by Weierstrass equation");
+ TEST_note(" y^2 = x^3 + a*x + b (mod p)");
+ test_output_bignum("a", a);
+ test_output_bignum("b", b);
+ test_output_bignum("p", p);
+
+ buf[0] = 0;
+ if (!TEST_ptr(P = EC_POINT_new(group))
+ || !TEST_ptr(Q = EC_POINT_new(group))
+ || !TEST_ptr(R = EC_POINT_new(group))
+ || !TEST_true(EC_POINT_set_to_infinity(group, P))
+ || !TEST_true(EC_POINT_is_at_infinity(group, P))
+ || !TEST_true(EC_POINT_oct2point(group, Q, buf, 1, ctx))
+ || !TEST_true(EC_POINT_add(group, P, P, Q, ctx))
+ || !TEST_true(EC_POINT_is_at_infinity(group, P))
+ || !TEST_ptr(x = BN_new())
+ || !TEST_ptr(y = BN_new())
+ || !TEST_ptr(z = BN_new())
+ || !TEST_ptr(yplusone = BN_new())
+ || !TEST_true(BN_hex2bn(&x, "D"))
+ || !TEST_true(EC_POINT_set_compressed_coordinates(group, Q, x, 1, ctx)))
+ goto err;
+
+ if (!TEST_int_gt(EC_POINT_is_on_curve(group, Q, ctx), 0)) {
+ if (!TEST_true(EC_POINT_get_affine_coordinates(group, Q, x, y, ctx)))
+ goto err;
+ TEST_info("Point is not on curve");
+ test_output_bignum("x", x);
+ test_output_bignum("y", y);
+ goto err;
+ }
+
+ TEST_note("A cyclic subgroup:");
+ k = 100;
+ do {
+ if (!TEST_int_ne(k--, 0))
+ goto err;
+
+ if (EC_POINT_is_at_infinity(group, P)) {
+ TEST_note(" point at infinity");
+ } else {
+ if (!TEST_true(EC_POINT_get_affine_coordinates(group, P, x, y,
+ ctx)))
+ goto err;
+
+ test_output_bignum("x", x);
+ test_output_bignum("y", y);
+ }
+
+ if (!TEST_true(EC_POINT_copy(R, P))
+ || !TEST_true(EC_POINT_add(group, P, P, Q, ctx)))
+ goto err;
+
+ } while (!EC_POINT_is_at_infinity(group, P));
+
+ if (!TEST_true(EC_POINT_add(group, P, Q, R, ctx))
+ || !TEST_true(EC_POINT_is_at_infinity(group, P)))
+ goto err;
+
+ len =
+ EC_POINT_point2oct(group, Q, POINT_CONVERSION_COMPRESSED, buf,
+ sizeof(buf), ctx);
+ if (!TEST_size_t_ne(len, 0)
+ || !TEST_true(EC_POINT_oct2point(group, P, buf, len, ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, P, Q, ctx)))
+ goto err;
+ test_output_memory("Generator as octet string, compressed form:",
+ buf, len);
+
+ len = EC_POINT_point2oct(group, Q, POINT_CONVERSION_UNCOMPRESSED,
+ buf, sizeof(buf), ctx);
+ if (!TEST_size_t_ne(len, 0)
+ || !TEST_true(EC_POINT_oct2point(group, P, buf, len, ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, P, Q, ctx)))
+ goto err;
+ test_output_memory("Generator as octet string, uncompressed form:",
+ buf, len);
+
+ len = EC_POINT_point2oct(group, Q, POINT_CONVERSION_HYBRID,
+ buf, sizeof(buf), ctx);
+ if (!TEST_size_t_ne(len, 0)
+ || !TEST_true(EC_POINT_oct2point(group, P, buf, len, ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, P, Q, ctx)))
+ goto err;
+ test_output_memory("Generator as octet string, hybrid form:",
+ buf, len);
+
+ if (!TEST_true(EC_POINT_get_Jprojective_coordinates_GFp(group, R, x, y, z,
+ ctx)))
+ goto err;
+ TEST_info("A representation of the inverse of that generator in");
+ TEST_note("Jacobian projective coordinates");
+ test_output_bignum("x", x);
+ test_output_bignum("y", y);
+ test_output_bignum("z", z);
+
+ if (!TEST_true(EC_POINT_invert(group, P, ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, P, R, ctx))
+
+ /*
+ * Curve secp160r1 (Certicom Research SEC 2 Version 1.0, section 2.4.2,
+ * 2000) -- not a NIST curve, but commonly used
+ */
+
+ || !TEST_true(BN_hex2bn(&p, "FFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF"))
+ || !TEST_int_eq(1, BN_is_prime_ex(p, BN_prime_checks, ctx, NULL))
+ || !TEST_true(BN_hex2bn(&a, "FFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC"))
+ || !TEST_true(BN_hex2bn(&b, "1C97BEFC"
+ "54BD7A8B65ACF89F81D4D4ADC565FA45"))
+ || !TEST_true(EC_GROUP_set_curve(group, p, a, b, ctx))
+ || !TEST_true(BN_hex2bn(&x, "4A96B568"
+ "8EF573284664698968C38BB913CBFC82"))
+ || !TEST_true(BN_hex2bn(&y, "23a62855"
+ "3168947d59dcc912042351377ac5fb32"))
+ || !TEST_true(BN_add(yplusone, y, BN_value_one()))
+ /*
+ * When (x, y) is on the curve, (x, y + 1) is, as it happens, not,
+ * and therefore setting the coordinates should fail.
+ */
+ || !TEST_false(EC_POINT_set_affine_coordinates(group, P, x, yplusone,
+ ctx))
+ || !TEST_true(EC_POINT_set_affine_coordinates(group, P, x, y, ctx))
+ || !TEST_int_gt(EC_POINT_is_on_curve(group, P, ctx), 0)
+ || !TEST_true(BN_hex2bn(&z, "0100000000"
+ "000000000001F4C8F927AED3CA752257"))
+ || !TEST_true(EC_GROUP_set_generator(group, P, z, BN_value_one()))
+ || !TEST_true(EC_POINT_get_affine_coordinates(group, P, x, y, ctx)))
+ goto err;
+ TEST_info("SEC2 curve secp160r1 -- Generator");
+ test_output_bignum("x", x);
+ test_output_bignum("y", y);
+ /* G_y value taken from the standard: */
+ if (!TEST_true(BN_hex2bn(&z, "23a62855"
+ "3168947d59dcc912042351377ac5fb32"))
+ || !TEST_BN_eq(y, z)
+ || !TEST_int_eq(EC_GROUP_get_degree(group), 160)
+ || !group_order_tests(group)
+ || !TEST_ptr(P_160 = EC_GROUP_new(EC_GROUP_method_of(group)))
+ || !TEST_true(EC_GROUP_copy(P_160, group))
+
+ /* Curve P-192 (FIPS PUB 186-2, App. 6) */
+
+ || !TEST_true(BN_hex2bn(&p, "FFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF"))
+ || !TEST_int_eq(1, BN_is_prime_ex(p, BN_prime_checks, ctx, NULL))
+ || !TEST_true(BN_hex2bn(&a, "FFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC"))
+ || !TEST_true(BN_hex2bn(&b, "64210519E59C80E7"
+ "0FA7E9AB72243049FEB8DEECC146B9B1"))
+ || !TEST_true(EC_GROUP_set_curve(group, p, a, b, ctx))
+ || !TEST_true(BN_hex2bn(&x, "188DA80EB03090F6"
+ "7CBF20EB43A18800F4FF0AFD82FF1012"))
+ || !TEST_true(EC_POINT_set_compressed_coordinates(group, P, x, 1, ctx))
+ || !TEST_int_gt(EC_POINT_is_on_curve(group, P, ctx), 0)
+ || !TEST_true(BN_hex2bn(&z, "FFFFFFFFFFFFFFFF"
+ "FFFFFFFF99DEF836146BC9B1B4D22831"))
+ || !TEST_true(EC_GROUP_set_generator(group, P, z, BN_value_one()))
+ || !TEST_true(EC_POINT_get_affine_coordinates(group, P, x, y, ctx)))
+ goto err;
+
+ TEST_info("NIST curve P-192 -- Generator");
+ test_output_bignum("x", x);
+ test_output_bignum("y", y);
+ /* G_y value taken from the standard: */
+ if (!TEST_true(BN_hex2bn(&z, "07192B95FFC8DA78"
+ "631011ED6B24CDD573F977A11E794811"))
+ || !TEST_BN_eq(y, z)
+ || !TEST_true(BN_add(yplusone, y, BN_value_one()))
+ /*
+ * When (x, y) is on the curve, (x, y + 1) is, as it happens, not,
+ * and therefore setting the coordinates should fail.
+ */
+ || !TEST_false(EC_POINT_set_affine_coordinates(group, P, x, yplusone,
+ ctx))
+ || !TEST_int_eq(EC_GROUP_get_degree(group), 192)
+ || !group_order_tests(group)
+ || !TEST_ptr(P_192 = EC_GROUP_new(EC_GROUP_method_of(group)))
+ || !TEST_true(EC_GROUP_copy(P_192, group))
+
+ /* Curve P-224 (FIPS PUB 186-2, App. 6) */
+
+ || !TEST_true(BN_hex2bn(&p, "FFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFF000000000000000000000001"))
+ || !TEST_int_eq(1, BN_is_prime_ex(p, BN_prime_checks, ctx, NULL))
+ || !TEST_true(BN_hex2bn(&a, "FFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE"))
+ || !TEST_true(BN_hex2bn(&b, "B4050A850C04B3ABF5413256"
+ "5044B0B7D7BFD8BA270B39432355FFB4"))
+ || !TEST_true(EC_GROUP_set_curve(group, p, a, b, ctx))
+ || !TEST_true(BN_hex2bn(&x, "B70E0CBD6BB4BF7F321390B9"
+ "4A03C1D356C21122343280D6115C1D21"))
+ || !TEST_true(EC_POINT_set_compressed_coordinates(group, P, x, 0, ctx))
+ || !TEST_int_gt(EC_POINT_is_on_curve(group, P, ctx), 0)
+ || !TEST_true(BN_hex2bn(&z, "FFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFF16A2E0B8F03E13DD29455C5C2A3D"))
+ || !TEST_true(EC_GROUP_set_generator(group, P, z, BN_value_one()))
+ || !TEST_true(EC_POINT_get_affine_coordinates(group, P, x, y, ctx)))
+ goto err;
+
+ TEST_info("NIST curve P-224 -- Generator");
+ test_output_bignum("x", x);
+ test_output_bignum("y", y);
+ /* G_y value taken from the standard: */
+ if (!TEST_true(BN_hex2bn(&z, "BD376388B5F723FB4C22DFE6"
+ "CD4375A05A07476444D5819985007E34"))
+ || !TEST_BN_eq(y, z)
+ || !TEST_true(BN_add(yplusone, y, BN_value_one()))
+ /*
+ * When (x, y) is on the curve, (x, y + 1) is, as it happens, not,
+ * and therefore setting the coordinates should fail.
+ */
+ || !TEST_false(EC_POINT_set_affine_coordinates(group, P, x, yplusone,
+ ctx))
+ || !TEST_int_eq(EC_GROUP_get_degree(group), 224)
+ || !group_order_tests(group)
+ || !TEST_ptr(P_224 = EC_GROUP_new(EC_GROUP_method_of(group)))
+ || !TEST_true(EC_GROUP_copy(P_224, group))
+
+ /* Curve P-256 (FIPS PUB 186-2, App. 6) */
+
+ || !TEST_true(BN_hex2bn(&p, "FFFFFFFF000000010000000000000000"
+ "00000000FFFFFFFFFFFFFFFFFFFFFFFF"))
+ || !TEST_int_eq(1, BN_is_prime_ex(p, BN_prime_checks, ctx, NULL))
+ || !TEST_true(BN_hex2bn(&a, "FFFFFFFF000000010000000000000000"
+ "00000000FFFFFFFFFFFFFFFFFFFFFFFC"))
+ || !TEST_true(BN_hex2bn(&b, "5AC635D8AA3A93E7B3EBBD55769886BC"
+ "651D06B0CC53B0F63BCE3C3E27D2604B"))
+ || !TEST_true(EC_GROUP_set_curve(group, p, a, b, ctx))
+
+ || !TEST_true(BN_hex2bn(&x, "6B17D1F2E12C4247F8BCE6E563A440F2"
+ "77037D812DEB33A0F4A13945D898C296"))
+ || !TEST_true(EC_POINT_set_compressed_coordinates(group, P, x, 1, ctx))
+ || !TEST_int_gt(EC_POINT_is_on_curve(group, P, ctx), 0)
+ || !TEST_true(BN_hex2bn(&z, "FFFFFFFF00000000FFFFFFFFFFFFFFFF"
+ "BCE6FAADA7179E84F3B9CAC2FC632551"))
+ || !TEST_true(EC_GROUP_set_generator(group, P, z, BN_value_one()))
+ || !TEST_true(EC_POINT_get_affine_coordinates(group, P, x, y, ctx)))
+ goto err;
+
+ TEST_info("NIST curve P-256 -- Generator");
+ test_output_bignum("x", x);
+ test_output_bignum("y", y);
+ /* G_y value taken from the standard: */
+ if (!TEST_true(BN_hex2bn(&z, "4FE342E2FE1A7F9B8EE7EB4A7C0F9E16"
+ "2BCE33576B315ECECBB6406837BF51F5"))
+ || !TEST_BN_eq(y, z)
+ || !TEST_true(BN_add(yplusone, y, BN_value_one()))
+ /*
+ * When (x, y) is on the curve, (x, y + 1) is, as it happens, not,
+ * and therefore setting the coordinates should fail.
+ */
+ || !TEST_false(EC_POINT_set_affine_coordinates(group, P, x, yplusone,
+ ctx))
+ || !TEST_int_eq(EC_GROUP_get_degree(group), 256)
+ || !group_order_tests(group)
+ || !TEST_ptr(P_256 = EC_GROUP_new(EC_GROUP_method_of(group)))
+ || !TEST_true(EC_GROUP_copy(P_256, group))
+
+ /* Curve P-384 (FIPS PUB 186-2, App. 6) */
+
+ || !TEST_true(BN_hex2bn(&p, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE"
+ "FFFFFFFF0000000000000000FFFFFFFF"))
+ || !TEST_int_eq(1, BN_is_prime_ex(p, BN_prime_checks, ctx, NULL))
+ || !TEST_true(BN_hex2bn(&a, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE"
+ "FFFFFFFF0000000000000000FFFFFFFC"))
+ || !TEST_true(BN_hex2bn(&b, "B3312FA7E23EE7E4988E056BE3F82D19"
+ "181D9C6EFE8141120314088F5013875A"
+ "C656398D8A2ED19D2A85C8EDD3EC2AEF"))
+ || !TEST_true(EC_GROUP_set_curve(group, p, a, b, ctx))
+
+ || !TEST_true(BN_hex2bn(&x, "AA87CA22BE8B05378EB1C71EF320AD74"
+ "6E1D3B628BA79B9859F741E082542A38"
+ "5502F25DBF55296C3A545E3872760AB7"))
+ || !TEST_true(EC_POINT_set_compressed_coordinates(group, P, x, 1, ctx))
+ || !TEST_int_gt(EC_POINT_is_on_curve(group, P, ctx), 0)
+ || !TEST_true(BN_hex2bn(&z, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFC7634D81F4372DDF"
+ "581A0DB248B0A77AECEC196ACCC52973"))
+ || !TEST_true(EC_GROUP_set_generator(group, P, z, BN_value_one()))
+ || !TEST_true(EC_POINT_get_affine_coordinates(group, P, x, y, ctx)))
+ goto err;
+
+ TEST_info("NIST curve P-384 -- Generator");
+ test_output_bignum("x", x);
+ test_output_bignum("y", y);
+ /* G_y value taken from the standard: */
+ if (!TEST_true(BN_hex2bn(&z, "3617DE4A96262C6F5D9E98BF9292DC29"
+ "F8F41DBD289A147CE9DA3113B5F0B8C0"
+ "0A60B1CE1D7E819D7A431D7C90EA0E5F"))
+ || !TEST_BN_eq(y, z)
+ || !TEST_true(BN_add(yplusone, y, BN_value_one()))
+ /*
+ * When (x, y) is on the curve, (x, y + 1) is, as it happens, not,
+ * and therefore setting the coordinates should fail.
+ */
+ || !TEST_false(EC_POINT_set_affine_coordinates(group, P, x, yplusone,
+ ctx))
+ || !TEST_int_eq(EC_GROUP_get_degree(group), 384)
+ || !group_order_tests(group)
+ || !TEST_ptr(P_384 = EC_GROUP_new(EC_GROUP_method_of(group)))
+ || !TEST_true(EC_GROUP_copy(P_384, group))
+
+ /* Curve P-521 (FIPS PUB 186-2, App. 6) */
+ || !TEST_true(BN_hex2bn(&p, "1FF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"))
+ || !TEST_int_eq(1, BN_is_prime_ex(p, BN_prime_checks, ctx, NULL))
+ || !TEST_true(BN_hex2bn(&a, "1FF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC"))
+ || !TEST_true(BN_hex2bn(&b, "051"
+ "953EB9618E1C9A1F929A21A0B68540EE"
+ "A2DA725B99B315F3B8B489918EF109E1"
+ "56193951EC7E937B1652C0BD3BB1BF07"
+ "3573DF883D2C34F1EF451FD46B503F00"))
+ || !TEST_true(EC_GROUP_set_curve(group, p, a, b, ctx))
+ || !TEST_true(BN_hex2bn(&x, "C6"
+ "858E06B70404E9CD9E3ECB662395B442"
+ "9C648139053FB521F828AF606B4D3DBA"
+ "A14B5E77EFE75928FE1DC127A2FFA8DE"
+ "3348B3C1856A429BF97E7E31C2E5BD66"))
+ || !TEST_true(EC_POINT_set_compressed_coordinates(group, P, x, 0, ctx))
+ || !TEST_int_gt(EC_POINT_is_on_curve(group, P, ctx), 0)
+ || !TEST_true(BN_hex2bn(&z, "1FF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA"
+ "51868783BF2F966B7FCC0148F709A5D0"
+ "3BB5C9B8899C47AEBB6FB71E91386409"))
+ || !TEST_true(EC_GROUP_set_generator(group, P, z, BN_value_one()))
+ || !TEST_true(EC_POINT_get_affine_coordinates(group, P, x, y, ctx)))
+ goto err;
+
+ TEST_info("NIST curve P-521 -- Generator");
+ test_output_bignum("x", x);
+ test_output_bignum("y", y);
+ /* G_y value taken from the standard: */
+ if (!TEST_true(BN_hex2bn(&z, "118"
+ "39296A789A3BC0045C8A5FB42C7D1BD9"
+ "98F54449579B446817AFBD17273E662C"
+ "97EE72995EF42640C550B9013FAD0761"
+ "353C7086A272C24088BE94769FD16650"))
+ || !TEST_BN_eq(y, z)
+ || !TEST_true(BN_add(yplusone, y, BN_value_one()))
+ /*
+ * When (x, y) is on the curve, (x, y + 1) is, as it happens, not,
+ * and therefore setting the coordinates should fail.
+ */
+ || !TEST_false(EC_POINT_set_affine_coordinates(group, P, x, yplusone,
+ ctx))
+ || !TEST_int_eq(EC_GROUP_get_degree(group), 521)
+ || !group_order_tests(group)
+ || !TEST_ptr(P_521 = EC_GROUP_new(EC_GROUP_method_of(group)))
+ || !TEST_true(EC_GROUP_copy(P_521, group))
+
+ /* more tests using the last curve */
+
+ /* Restore the point that got mangled in the (x, y + 1) test. */
+ || !TEST_true(EC_POINT_set_affine_coordinates(group, P, x, y, ctx))
+ || !TEST_true(EC_POINT_copy(Q, P))
+ || !TEST_false(EC_POINT_is_at_infinity(group, Q))
+ || !TEST_true(EC_POINT_dbl(group, P, P, ctx))
+ || !TEST_int_gt(EC_POINT_is_on_curve(group, P, ctx), 0)
+ || !TEST_true(EC_POINT_invert(group, Q, ctx)) /* P = -2Q */
+ || !TEST_true(EC_POINT_add(group, R, P, Q, ctx))
+ || !TEST_true(EC_POINT_add(group, R, R, Q, ctx))
+ || !TEST_true(EC_POINT_is_at_infinity(group, R)) /* R = P + 2Q */
+ || !TEST_false(EC_POINT_is_at_infinity(group, Q)))
+ goto err;
+ points[0] = Q;
+ points[1] = Q;
+ points[2] = Q;
+ points[3] = Q;
+
+ if (!TEST_true(EC_GROUP_get_order(group, z, ctx))
+ || !TEST_true(BN_add(y, z, BN_value_one()))
+ || !TEST_BN_even(y)
+ || !TEST_true(BN_rshift1(y, y)))
+ goto err;
+ scalars[0] = y; /* (group order + 1)/2, so y*Q + y*Q = Q */
+ scalars[1] = y;
+
+ TEST_note("combined multiplication ...");
+
+ /* z is still the group order */
+ if (!TEST_true(EC_POINTs_mul(group, P, NULL, 2, points, scalars, ctx))
+ || !TEST_true(EC_POINTs_mul(group, R, z, 2, points, scalars, ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, P, R, ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, R, Q, ctx))
+ || !TEST_true(BN_rand(y, BN_num_bits(y), 0, 0))
+ || !TEST_true(BN_add(z, z, y)))
+ goto err;
+ BN_set_negative(z, 1);
+ scalars[0] = y;
+ scalars[1] = z; /* z = -(order + y) */
+
+ if (!TEST_true(EC_POINTs_mul(group, P, NULL, 2, points, scalars, ctx))
+ || !TEST_true(EC_POINT_is_at_infinity(group, P))
+ || !TEST_true(BN_rand(x, BN_num_bits(y) - 1, 0, 0))
+ || !TEST_true(BN_add(z, x, y)))
+ goto err;
+ BN_set_negative(z, 1);
+ scalars[0] = x;
+ scalars[1] = y;
+ scalars[2] = z; /* z = -(x+y) */
+
+ if (!TEST_ptr(scalar3 = BN_new()))
+ goto err;
+ BN_zero(scalar3);
+ scalars[3] = scalar3;
+
+ if (!TEST_true(EC_POINTs_mul(group, P, NULL, 4, points, scalars, ctx))
+ || !TEST_true(EC_POINT_is_at_infinity(group, P)))
+ goto err;
+
+ TEST_note(" ok\n");
+
+
+ r = 1;
+err:
+ BN_CTX_free(ctx);
+ BN_free(p);
+ BN_free(a);
+ BN_free(b);
+ EC_GROUP_free(group);
+ EC_GROUP_free(tmp);
+ EC_POINT_free(P);
+ EC_POINT_free(Q);
+ EC_POINT_free(R);
+ BN_free(x);
+ BN_free(y);
+ BN_free(z);
+ BN_free(yplusone);
+ BN_free(scalar3);
+
+ EC_GROUP_free(P_160);
+ EC_GROUP_free(P_192);
+ EC_GROUP_free(P_224);
+ EC_GROUP_free(P_256);
+ EC_GROUP_free(P_384);
+ EC_GROUP_free(P_521);
+ return r;
+}
+
+# ifndef OPENSSL_NO_EC2M
+
+static struct c2_curve_test {
+ const char *name;
+ const char *p;
+ const char *a;
+ const char *b;
+ const char *x;
+ const char *y;
+ int ybit;
+ const char *order;
+ const char *cof;
+ int degree;
+} char2_curve_tests[] = {
+ /* Curve K-163 (FIPS PUB 186-2, App. 6) */
+ {
+ "NIST curve K-163",
+ "0800000000000000000000000000000000000000C9",
+ "1",
+ "1",
+ "02FE13C0537BBC11ACAA07D793DE4E6D5E5C94EEE8",
+ "0289070FB05D38FF58321F2E800536D538CCDAA3D9",
+ 1, "04000000000000000000020108A2E0CC0D99F8A5EF", "2", 163
+ },
+ /* Curve B-163 (FIPS PUB 186-2, App. 6) */
+ {
+ "NIST curve B-163",
+ "0800000000000000000000000000000000000000C9",
+ "1",
+ "020A601907B8C953CA1481EB10512F78744A3205FD",
+ "03F0EBA16286A2D57EA0991168D4994637E8343E36",
+ "00D51FBC6C71A0094FA2CDD545B11C5C0C797324F1",
+ 1, "040000000000000000000292FE77E70C12A4234C33", "2", 163
+ },
+ /* Curve K-233 (FIPS PUB 186-2, App. 6) */
+ {
+ "NIST curve K-233",
+ "020000000000000000000000000000000000000004000000000000000001",
+ "0",
+ "1",
+ "017232BA853A7E731AF129F22FF4149563A419C26BF50A4C9D6EEFAD6126",
+ "01DB537DECE819B7F70F555A67C427A8CD9BF18AEB9B56E0C11056FAE6A3",
+ 0,
+ "008000000000000000000000000000069D5BB915BCD46EFB1AD5F173ABDF",
+ "4", 233
+ },
+ /* Curve B-233 (FIPS PUB 186-2, App. 6) */
+ {
+ "NIST curve B-233",
+ "020000000000000000000000000000000000000004000000000000000001",
+ "000000000000000000000000000000000000000000000000000000000001",
+ "0066647EDE6C332C7F8C0923BB58213B333B20E9CE4281FE115F7D8F90AD",
+ "00FAC9DFCBAC8313BB2139F1BB755FEF65BC391F8B36F8F8EB7371FD558B",
+ "01006A08A41903350678E58528BEBF8A0BEFF867A7CA36716F7E01F81052",
+ 1,
+ "01000000000000000000000000000013E974E72F8A6922031D2603CFE0D7",
+ "2", 233
+ },
+ /* Curve K-283 (FIPS PUB 186-2, App. 6) */
+ {
+ "NIST curve K-283",
+ "08000000"
+ "00000000000000000000000000000000000000000000000000000000000010A1",
+ "0",
+ "1",
+ "0503213F"
+ "78CA44883F1A3B8162F188E553CD265F23C1567A16876913B0C2AC2458492836",
+ "01CCDA38"
+ "0F1C9E318D90F95D07E5426FE87E45C0E8184698E45962364E34116177DD2259",
+ 0,
+ "01FFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFE9AE2ED07577265DFF7F94451E061E163C61",
+ "4", 283
+ },
+ /* Curve B-283 (FIPS PUB 186-2, App. 6) */
+ {
+ "NIST curve B-283",
+ "08000000"
+ "00000000000000000000000000000000000000000000000000000000000010A1",
+ "00000000"
+ "0000000000000000000000000000000000000000000000000000000000000001",
+ "027B680A"
+ "C8B8596DA5A4AF8A19A0303FCA97FD7645309FA2A581485AF6263E313B79A2F5",
+ "05F93925"
+ "8DB7DD90E1934F8C70B0DFEC2EED25B8557EAC9C80E2E198F8CDBECD86B12053",
+ "03676854"
+ "FE24141CB98FE6D4B20D02B4516FF702350EDDB0826779C813F0DF45BE8112F4",
+ 1,
+ "03FFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFEF90399660FC938A90165B042A7CEFADB307",
+ "2", 283
+ },
+ /* Curve K-409 (FIPS PUB 186-2, App. 6) */
+ {
+ "NIST curve K-409",
+ "0200000000000000000000000000000000000000"
+ "0000000000000000000000000000000000000000008000000000000000000001",
+ "0",
+ "1",
+ "0060F05F658F49C1AD3AB1890F7184210EFD0987"
+ "E307C84C27ACCFB8F9F67CC2C460189EB5AAAA62EE222EB1B35540CFE9023746",
+ "01E369050B7C4E42ACBA1DACBF04299C3460782F"
+ "918EA427E6325165E9EA10E3DA5F6C42E9C55215AA9CA27A5863EC48D8E0286B",
+ 1,
+ "007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFE5F83B2D4EA20400EC4557D5ED3E3E7CA5B4B5C83B8E01E5FCF",
+ "4", 409
+ },
+ /* Curve B-409 (FIPS PUB 186-2, App. 6) */
+ {
+ "NIST curve B-409",
+ "0200000000000000000000000000000000000000"
+ "0000000000000000000000000000000000000000008000000000000000000001",
+ "0000000000000000000000000000000000000000"
+ "0000000000000000000000000000000000000000000000000000000000000001",
+ "0021A5C2C8EE9FEB5C4B9A753B7B476B7FD6422E"
+ "F1F3DD674761FA99D6AC27C8A9A197B272822F6CD57A55AA4F50AE317B13545F",
+ "015D4860D088DDB3496B0C6064756260441CDE4A"
+ "F1771D4DB01FFE5B34E59703DC255A868A1180515603AEAB60794E54BB7996A7",
+ "0061B1CFAB6BE5F32BBFA78324ED106A7636B9C5"
+ "A7BD198D0158AA4F5488D08F38514F1FDF4B4F40D2181B3681C364BA0273C706",
+ 1,
+ "0100000000000000000000000000000000000000"
+ "00000000000001E2AAD6A612F33307BE5FA47C3C9E052F838164CD37D9A21173",
+ "2", 409
+ },
+ /* Curve K-571 (FIPS PUB 186-2, App. 6) */
+ {
+ "NIST curve K-571",
+ "800000000000000"
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ "0000000000000000000000000000000000000000000000000000000000000425",
+ "0",
+ "1",
+ "026EB7A859923FBC"
+ "82189631F8103FE4AC9CA2970012D5D46024804801841CA44370958493B205E6"
+ "47DA304DB4CEB08CBBD1BA39494776FB988B47174DCA88C7E2945283A01C8972",
+ "0349DC807F4FBF37"
+ "4F4AEADE3BCA95314DD58CEC9F307A54FFC61EFC006D8A2C9D4979C0AC44AEA7"
+ "4FBEBBB9F772AEDCB620B01A7BA7AF1B320430C8591984F601CD4C143EF1C7A3",
+ 0,
+ "0200000000000000"
+ "00000000000000000000000000000000000000000000000000000000131850E1"
+ "F19A63E4B391A8DB917F4138B630D84BE5D639381E91DEB45CFE778F637C1001",
+ "4", 571
+ },
+ /* Curve B-571 (FIPS PUB 186-2, App. 6) */
+ {
+ "NIST curve B-571",
+ "800000000000000"
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ "0000000000000000000000000000000000000000000000000000000000000425",
+ "0000000000000000"
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ "0000000000000000000000000000000000000000000000000000000000000001",
+ "02F40E7E2221F295"
+ "DE297117B7F3D62F5C6A97FFCB8CEFF1CD6BA8CE4A9A18AD84FFABBD8EFA5933"
+ "2BE7AD6756A66E294AFD185A78FF12AA520E4DE739BACA0C7FFEFF7F2955727A",
+ "0303001D34B85629"
+ "6C16C0D40D3CD7750A93D1D2955FA80AA5F40FC8DB7B2ABDBDE53950F4C0D293"
+ "CDD711A35B67FB1499AE60038614F1394ABFA3B4C850D927E1E7769C8EEC2D19",
+ "037BF27342DA639B"
+ "6DCCFFFEB73D69D78C6C27A6009CBBCA1980F8533921E8A684423E43BAB08A57"
+ "6291AF8F461BB2A8B3531D2F0485C19B16E2F1516E23DD3C1A4827AF1B8AC15B",
+ 1,
+ "03FFFFFFFFFFFFFF"
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE661CE18"
+ "FF55987308059B186823851EC7DD9CA1161DE93D5174D66E8382E9BB2FE84E47",
+ "2", 571
+ }
+};
+
+static int char2_curve_test(int n)
+{
+ int r = 0;
+ BN_CTX *ctx = NULL;
+ BIGNUM *p = NULL, *a = NULL, *b = NULL;
+ BIGNUM *x = NULL, *y = NULL, *z = NULL, *cof = NULL, *yplusone = NULL;
+ EC_GROUP *group = NULL, *variable = NULL;
+ EC_POINT *P = NULL, *Q = NULL, *R = NULL;
+ const EC_POINT *points[3];
+ const BIGNUM *scalars[3];
+ struct c2_curve_test *const test = char2_curve_tests + n;
+
+ if (!TEST_ptr(ctx = BN_CTX_new())
+ || !TEST_ptr(p = BN_new())
+ || !TEST_ptr(a = BN_new())
+ || !TEST_ptr(b = BN_new())
+ || !TEST_ptr(x = BN_new())
+ || !TEST_ptr(y = BN_new())
+ || !TEST_ptr(z = BN_new())
+ || !TEST_ptr(yplusone = BN_new())
+ || !TEST_true(BN_hex2bn(&p, test->p))
+ || !TEST_true(BN_hex2bn(&a, test->a))
+ || !TEST_true(BN_hex2bn(&b, test->b))
+ || !TEST_true(group = EC_GROUP_new(EC_GF2m_simple_method()))
+ || !TEST_true(EC_GROUP_set_curve(group, p, a, b, ctx))
+ || !TEST_ptr(P = EC_POINT_new(group))
+ || !TEST_ptr(Q = EC_POINT_new(group))
+ || !TEST_ptr(R = EC_POINT_new(group))
+ || !TEST_true(BN_hex2bn(&x, test->x))
+ || !TEST_true(BN_hex2bn(&y, test->y))
+ || !TEST_true(BN_add(yplusone, y, BN_value_one())))
+ goto err;
+
+/* Change test based on whether binary point compression is enabled or not. */
+# ifdef OPENSSL_EC_BIN_PT_COMP
+ /*
+ * When (x, y) is on the curve, (x, y + 1) is, as it happens, not,
+ * and therefore setting the coordinates should fail.
+ */
+ if (!TEST_false(EC_POINT_set_affine_coordinates(group, P, x, yplusone, ctx))
+ || !TEST_true(EC_POINT_set_compressed_coordinates(group, P, x,
+ test->y_bit,
+ ctx))
+ || !TEST_int_gt(EC_POINT_is_on_curve(group, P, ctx), 0)
+ || !TEST_true(BN_hex2bn(&z, test->order))
+ || !TEST_true(BN_hex2bn(&cof, test->cof))
+ || !TEST_true(EC_GROUP_set_generator(group, P, z, cof))
+ || !TEST_true(EC_POINT_get_affine_coordinates(group, P, x, y, ctx)))
+ goto err;
+ TEST_info("%s -- Generator", test->name);
+ test_output_bignum("x", x);
+ test_output_bignum("y", y);
+ /* G_y value taken from the standard: */
+ if (!TEST_true(BN_hex2bn(&z, test->y))
+ || !TEST_BN_eq(y, z))
+ goto err;
+# else
+ /*
+ * When (x, y) is on the curve, (x, y + 1) is, as it happens, not,
+ * and therefore setting the coordinates should fail.
+ */
+ if (!TEST_false(EC_POINT_set_affine_coordinates(group, P, x, yplusone, ctx))
+ || !TEST_true(EC_POINT_set_affine_coordinates(group, P, x, y, ctx))
+ || !TEST_int_gt(EC_POINT_is_on_curve(group, P, ctx), 0)
+ || !TEST_true(BN_hex2bn(&z, test->order))
+ || !TEST_true(BN_hex2bn(&cof, test->cof))
+ || !TEST_true(EC_GROUP_set_generator(group, P, z, cof)))
+ goto err;
+ TEST_info("%s -- Generator:", test->name);
+ test_output_bignum("x", x);
+ test_output_bignum("y", y);
+# endif
+
+ if (!TEST_int_eq(EC_GROUP_get_degree(group), test->degree)
+ || !group_order_tests(group)
+ || !TEST_ptr(variable = EC_GROUP_new(EC_GROUP_method_of(group)))
+ || !TEST_true(EC_GROUP_copy(variable, group)))
+ goto err;
+
+ /* more tests using the last curve */
+ if (n == OSSL_NELEM(char2_curve_tests) - 1) {
+ if (!TEST_true(EC_POINT_set_affine_coordinates(group, P, x, y, ctx))
+ || !TEST_true(EC_POINT_copy(Q, P))
+ || !TEST_false(EC_POINT_is_at_infinity(group, Q))
+ || !TEST_true(EC_POINT_dbl(group, P, P, ctx))
+ || !TEST_int_gt(EC_POINT_is_on_curve(group, P, ctx), 0)
+ || !TEST_true(EC_POINT_invert(group, Q, ctx)) /* P = -2Q */
+ || !TEST_true(EC_POINT_add(group, R, P, Q, ctx))
+ || !TEST_true(EC_POINT_add(group, R, R, Q, ctx))
+ || !TEST_true(EC_POINT_is_at_infinity(group, R)) /* R = P + 2Q */
+ || !TEST_false(EC_POINT_is_at_infinity(group, Q)))
+ goto err;
+
+ points[0] = Q;
+ points[1] = Q;
+ points[2] = Q;
+
+ if (!TEST_true(BN_add(y, z, BN_value_one()))
+ || !TEST_BN_even(y)
+ || !TEST_true(BN_rshift1(y, y)))
+ goto err;
+ scalars[0] = y; /* (group order + 1)/2, so y*Q + y*Q = Q */
+ scalars[1] = y;
+
+ TEST_note("combined multiplication ...");
+
+ /* z is still the group order */
+ if (!TEST_true(EC_POINTs_mul(group, P, NULL, 2, points, scalars, ctx))
+ || !TEST_true(EC_POINTs_mul(group, R, z, 2, points, scalars, ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, P, R, ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, R, Q, ctx)))
+ goto err;
+
+ if (!TEST_true(BN_rand(y, BN_num_bits(y), 0, 0))
+ || !TEST_true(BN_add(z, z, y)))
+ goto err;
+ BN_set_negative(z, 1);
+ scalars[0] = y;
+ scalars[1] = z; /* z = -(order + y) */
+
+ if (!TEST_true(EC_POINTs_mul(group, P, NULL, 2, points, scalars, ctx))
+ || !TEST_true(EC_POINT_is_at_infinity(group, P)))
+ goto err;
+
+ if (!TEST_true(BN_rand(x, BN_num_bits(y) - 1, 0, 0))
+ || !TEST_true(BN_add(z, x, y)))
+ goto err;
+ BN_set_negative(z, 1);
+ scalars[0] = x;
+ scalars[1] = y;
+ scalars[2] = z; /* z = -(x+y) */
+
+ if (!TEST_true(EC_POINTs_mul(group, P, NULL, 3, points, scalars, ctx))
+ || !TEST_true(EC_POINT_is_at_infinity(group, P)))
+ goto err;;
+ }
+
+ r = 1;
+err:
+ BN_CTX_free(ctx);
+ BN_free(p);
+ BN_free(a);
+ BN_free(b);
+ BN_free(x);
+ BN_free(y);
+ BN_free(z);
+ BN_free(yplusone);
+ BN_free(cof);
+ EC_POINT_free(P);
+ EC_POINT_free(Q);
+ EC_POINT_free(R);
+ EC_GROUP_free(group);
+ EC_GROUP_free(variable);
+ return r;
+}
+
+static int char2_field_tests(void)
+{
+ BN_CTX *ctx = NULL;
+ BIGNUM *p = NULL, *a = NULL, *b = NULL;
+ EC_GROUP *group = NULL, *tmp = NULL;
+ EC_POINT *P = NULL, *Q = NULL, *R = NULL;
+ BIGNUM *x = NULL, *y = NULL, *z = NULL, *cof = NULL, *yplusone = NULL;
+ unsigned char buf[100];
+ size_t len;
+ int k, r = 0;
+
+ if (!TEST_ptr(ctx = BN_CTX_new())
+ || !TEST_ptr(p = BN_new())
+ || !TEST_ptr(a = BN_new())
+ || !TEST_ptr(b = BN_new())
+ || !TEST_true(BN_hex2bn(&p, "13"))
+ || !TEST_true(BN_hex2bn(&a, "3"))
+ || !TEST_true(BN_hex2bn(&b, "1")))
+ goto err;
+
+ group = EC_GROUP_new(EC_GF2m_simple_method()); /* applications should use
+ * EC_GROUP_new_curve_GF2m
+ * so that the library gets
+ * to choose the EC_METHOD */
+ if (!TEST_ptr(group)
+ || !TEST_true(EC_GROUP_set_curve(group, p, a, b, ctx))
+ || !TEST_ptr(tmp = EC_GROUP_new(EC_GROUP_method_of(group)))
+ || !TEST_true(EC_GROUP_copy(tmp, group)))
+ goto err;
+ EC_GROUP_free(group);
+ group = tmp;
+ tmp = NULL;
+
+ if (!TEST_true(EC_GROUP_get_curve(group, p, a, b, ctx)))
+ goto err;
+
+ TEST_info("Curve defined by Weierstrass equation");
+ TEST_note(" y^2 + x*y = x^3 + a*x^2 + b (mod p)");
+ test_output_bignum("a", a);
+ test_output_bignum("b", b);
+ test_output_bignum("p", p);
+
+ if (!TEST_ptr(P = EC_POINT_new(group))
+ || !TEST_ptr(Q = EC_POINT_new(group))
+ || !TEST_ptr(R = EC_POINT_new(group))
+ || !TEST_true(EC_POINT_set_to_infinity(group, P))
+ || !TEST_true(EC_POINT_is_at_infinity(group, P)))
+ goto err;
+
+ buf[0] = 0;
+ if (!TEST_true(EC_POINT_oct2point(group, Q, buf, 1, ctx))
+ || !TEST_true(EC_POINT_add(group, P, P, Q, ctx))
+ || !TEST_true(EC_POINT_is_at_infinity(group, P))
+ || !TEST_ptr(x = BN_new())
+ || !TEST_ptr(y = BN_new())
+ || !TEST_ptr(z = BN_new())
+ || !TEST_ptr(cof = BN_new())
+ || !TEST_ptr(yplusone = BN_new())
+ || !TEST_true(BN_hex2bn(&x, "6"))
+/* Change test based on whether binary point compression is enabled or not. */
+# ifdef OPENSSL_EC_BIN_PT_COMP
+ || !TEST_true(EC_POINT_set_compressed_coordinates(group, Q, x, 1, ctx))
+# else
+ || !TEST_true(BN_hex2bn(&y, "8"))
+ || !TEST_true(EC_POINT_set_affine_coordinates(group, Q, x, y, ctx))
+# endif
+ )
+ goto err;
+ if (!TEST_int_gt(EC_POINT_is_on_curve(group, Q, ctx), 0)) {
+/* Change test based on whether binary point compression is enabled or not. */
+# ifdef OPENSSL_EC_BIN_PT_COMP
+ if (!TEST_true(EC_POINT_get_affine_coordinates(group, Q, x, y, ctx)))
+ goto err;
+# endif
+ TEST_info("Point is not on curve");
+ test_output_bignum("x", x);
+ test_output_bignum("y", y);
+ goto err;
+ }
+
+ TEST_note("A cyclic subgroup:");
+ k = 100;
+ do {
+ if (!TEST_int_ne(k--, 0))
+ goto err;
+
+ if (EC_POINT_is_at_infinity(group, P))
+ TEST_note(" point at infinity");
+ else {
+ if (!TEST_true(EC_POINT_get_affine_coordinates(group, P, x, y,
+ ctx)))
+ goto err;
+
+ test_output_bignum("x", x);
+ test_output_bignum("y", y);
+ }
+
+ if (!TEST_true(EC_POINT_copy(R, P))
+ || !TEST_true(EC_POINT_add(group, P, P, Q, ctx)))
+ goto err;
+ }
+ while (!EC_POINT_is_at_infinity(group, P));
+
+ if (!TEST_true(EC_POINT_add(group, P, Q, R, ctx))
+ || !TEST_true(EC_POINT_is_at_infinity(group, P)))
+ goto err;
+
+/* Change test based on whether binary point compression is enabled or not. */
+# ifdef OPENSSL_EC_BIN_PT_COMP
+ len = EC_POINT_point2oct(group, Q, POINT_CONVERSION_COMPRESSED,
+ buf, sizeof(buf), ctx);
+ if (!TEST_size_t_ne(len, 0)
+ || !TEST_true(EC_POINT_oct2point(group, P, buf, len, ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, P, Q, ctx)))
+ goto err;
+ test_output_memory("Generator as octet string, compressed form:",
+ buf, len);
+# endif
+
+ len = EC_POINT_point2oct(group, Q, POINT_CONVERSION_UNCOMPRESSED,
+ buf, sizeof(buf), ctx);
+ if (!TEST_size_t_ne(len, 0)
+ || !TEST_true(EC_POINT_oct2point(group, P, buf, len, ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, P, Q, ctx)))
+ goto err;
+ test_output_memory("Generator as octet string, uncompressed form:",
+ buf, len);
+
+/* Change test based on whether binary point compression is enabled or not. */
+# ifdef OPENSSL_EC_BIN_PT_COMP
+ len =
+ EC_POINT_point2oct(group, Q, POINT_CONVERSION_HYBRID, buf, sizeof(buf),
+ ctx);
+ if (!TEST_size_t_ne(len, 0)
+ || !TEST_true(EC_POINT_oct2point(group, P, buf, len, ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, P, Q, ctx)))
+ goto err;
+ test_output_memory("Generator as octet string, hybrid form:",
+ buf, len);
+# endif
+
+ if (!TEST_true(EC_POINT_invert(group, P, ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, P, R, ctx)))
+ goto err;
+
+ TEST_note("\n");
+
+ r = 1;
+err:
+ BN_CTX_free(ctx);
+ BN_free(p);
+ BN_free(a);
+ BN_free(b);
+ EC_GROUP_free(group);
+ EC_GROUP_free(tmp);
+ EC_POINT_free(P);
+ EC_POINT_free(Q);
+ EC_POINT_free(R);
+ BN_free(x);
+ BN_free(y);
+ BN_free(z);
+ BN_free(cof);
+ BN_free(yplusone);
+ return r;
+}
+# endif
+
+static int internal_curve_test(int n)
+{
+ EC_GROUP *group = NULL;
+ int nid = curves[n].nid;
+
+ if (!TEST_ptr(group = EC_GROUP_new_by_curve_name(nid))) {
+ TEST_info("EC_GROUP_new_curve_name() failed with curve %s\n",
+ OBJ_nid2sn(nid));
+ return 0;
+ }
+ if (!TEST_true(EC_GROUP_check(group, NULL))) {
+ TEST_info("EC_GROUP_check() failed with curve %s\n", OBJ_nid2sn(nid));
+ EC_GROUP_free(group);
+ return 0;
+ }
+ EC_GROUP_free(group);
+ return 1;
+}
+
+static int internal_curve_test_method(int n)
+{
+ int r, nid = curves[n].nid;
+ EC_GROUP *group;
+
+ if (!TEST_ptr(group = EC_GROUP_new_by_curve_name(nid))) {
+ TEST_info("Curve %s failed\n", OBJ_nid2sn(nid));
+ return 0;
+ }
+ r = group_order_tests(group);
+ EC_GROUP_free(group);
+ return r;
+}
+
+# ifndef OPENSSL_NO_EC_NISTP_64_GCC_128
+/*
+ * nistp_test_params contains magic numbers for testing our optimized
+ * implementations of several NIST curves with characteristic > 3.
+ */
+struct nistp_test_params {
+ const EC_METHOD *(*meth) (void);
+ int degree;
+ /*
+ * Qx, Qy and D are taken from
+ * http://csrc.nist.gov/groups/ST/toolkit/documents/Examples/ECDSA_Prime.pdf
+ * Otherwise, values are standard curve parameters from FIPS 180-3
+ */
+ const char *p, *a, *b, *Qx, *Qy, *Gx, *Gy, *order, *d;
+};
+
+static const struct nistp_test_params nistp_tests_params[] = {
+ {
+ /* P-224 */
+ EC_GFp_nistp224_method,
+ 224,
+ /* p */
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001",
+ /* a */
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE",
+ /* b */
+ "B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4",
+ /* Qx */
+ "E84FB0B8E7000CB657D7973CF6B42ED78B301674276DF744AF130B3E",
+ /* Qy */
+ "4376675C6FC5612C21A0FF2D2A89D2987DF7A2BC52183B5982298555",
+ /* Gx */
+ "B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21",
+ /* Gy */
+ "BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34",
+ /* order */
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D",
+ /* d */
+ "3F0C488E987C80BE0FEE521F8D90BE6034EC69AE11CA72AA777481E8",
+ },
+ {
+ /* P-256 */
+ EC_GFp_nistp256_method,
+ 256,
+ /* p */
+ "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
+ /* a */
+ "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",
+ /* b */
+ "5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",
+ /* Qx */
+ "b7e08afdfe94bad3f1dc8c734798ba1c62b3a0ad1e9ea2a38201cd0889bc7a19",
+ /* Qy */
+ "3603f747959dbf7a4bb226e41928729063adc7ae43529e61b563bbc606cc5e09",
+ /* Gx */
+ "6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",
+ /* Gy */
+ "4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5",
+ /* order */
+ "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
+ /* d */
+ "c477f9f65c22cce20657faa5b2d1d8122336f851a508a1ed04e479c34985bf96",
+ },
+ {
+ /* P-521 */
+ EC_GFp_nistp521_method,
+ 521,
+ /* p */
+ "1ff"
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ /* a */
+ "1ff"
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc",
+ /* b */
+ "051"
+ "953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e1"
+ "56193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00",
+ /* Qx */
+ "0098"
+ "e91eef9a68452822309c52fab453f5f117c1da8ed796b255e9ab8f6410cca16e"
+ "59df403a6bdc6ca467a37056b1e54b3005d8ac030decfeb68df18b171885d5c4",
+ /* Qy */
+ "0164"
+ "350c321aecfc1cca1ba4364c9b15656150b4b78d6a48d7d28e7f31985ef17be8"
+ "554376b72900712c4b83ad668327231526e313f5f092999a4632fd50d946bc2e",
+ /* Gx */
+ "c6"
+ "858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dba"
+ "a14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66",
+ /* Gy */
+ "118"
+ "39296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c"
+ "97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650",
+ /* order */
+ "1ff"
+ "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"
+ "51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409",
+ /* d */
+ "0100"
+ "085f47b8e1b8b11b7eb33028c0b2888e304bfc98501955b45bba1478dc184eee"
+ "df09b86a5f7c21994406072787205e69a63709fe35aa93ba333514b24f961722",
+ },
+};
+
+static int nistp_single_test(int idx)
+{
+ const struct nistp_test_params *test = nistp_tests_params + idx;
+ BN_CTX *ctx = NULL;
+ BIGNUM *p = NULL, *a = NULL, *b = NULL, *x = NULL, *y = NULL;
+ BIGNUM *n = NULL, *m = NULL, *order = NULL, *yplusone = NULL;
+ EC_GROUP *NISTP = NULL;
+ EC_POINT *G = NULL, *P = NULL, *Q = NULL, *Q_CHECK = NULL;
+ int r = 0;
+
+ TEST_note("NIST curve P-%d (optimised implementation):",
+ test->degree);
+ if (!TEST_ptr(ctx = BN_CTX_new())
+ || !TEST_ptr(p = BN_new())
+ || !TEST_ptr(a = BN_new())
+ || !TEST_ptr(b = BN_new())
+ || !TEST_ptr(x = BN_new())
+ || !TEST_ptr(y = BN_new())
+ || !TEST_ptr(m = BN_new())
+ || !TEST_ptr(n = BN_new())
+ || !TEST_ptr(order = BN_new())
+ || !TEST_ptr(yplusone = BN_new())
+
+ || !TEST_ptr(NISTP = EC_GROUP_new(test->meth()))
+ || !TEST_true(BN_hex2bn(&p, test->p))
+ || !TEST_int_eq(1, BN_is_prime_ex(p, BN_prime_checks, ctx, NULL))
+ || !TEST_true(BN_hex2bn(&a, test->a))
+ || !TEST_true(BN_hex2bn(&b, test->b))
+ || !TEST_true(EC_GROUP_set_curve(NISTP, p, a, b, ctx))
+ || !TEST_ptr(G = EC_POINT_new(NISTP))
+ || !TEST_ptr(P = EC_POINT_new(NISTP))
+ || !TEST_ptr(Q = EC_POINT_new(NISTP))
+ || !TEST_ptr(Q_CHECK = EC_POINT_new(NISTP))
+ || !TEST_true(BN_hex2bn(&x, test->Qx))
+ || !TEST_true(BN_hex2bn(&y, test->Qy))
+ || !TEST_true(BN_add(yplusone, y, BN_value_one()))
+ /*
+ * When (x, y) is on the curve, (x, y + 1) is, as it happens, not,
+ * and therefore setting the coordinates should fail.
+ */
+ || !TEST_false(EC_POINT_set_affine_coordinates(NISTP, Q_CHECK, x,
+ yplusone, ctx))
+ || !TEST_true(EC_POINT_set_affine_coordinates(NISTP, Q_CHECK, x, y,
+ ctx))
+ || !TEST_true(BN_hex2bn(&x, test->Gx))
+ || !TEST_true(BN_hex2bn(&y, test->Gy))
+ || !TEST_true(EC_POINT_set_affine_coordinates(NISTP, G, x, y, ctx))
+ || !TEST_true(BN_hex2bn(&order, test->order))
+ || !TEST_true(EC_GROUP_set_generator(NISTP, G, order, BN_value_one()))
+ || !TEST_int_eq(EC_GROUP_get_degree(NISTP), test->degree))
+ goto err;
+
+ TEST_note("NIST test vectors ... ");
+ if (!TEST_true(BN_hex2bn(&n, test->d)))
+ goto err;
+ /* fixed point multiplication */
+ EC_POINT_mul(NISTP, Q, n, NULL, NULL, ctx);
+ if (!TEST_int_eq(0, EC_POINT_cmp(NISTP, Q, Q_CHECK, ctx)))
+ goto err;
+ /* random point multiplication */
+ EC_POINT_mul(NISTP, Q, NULL, G, n, ctx);
+ if (!TEST_int_eq(0, EC_POINT_cmp(NISTP, Q, Q_CHECK, ctx))
+
+ /* set generator to P = 2*G, where G is the standard generator */
+ || !TEST_true(EC_POINT_dbl(NISTP, P, G, ctx))
+ || !TEST_true(EC_GROUP_set_generator(NISTP, P, order, BN_value_one()))
+ /* set the scalar to m=n/2, where n is the NIST test scalar */
+ || !TEST_true(BN_rshift(m, n, 1)))
+ goto err;
+
+ /* test the non-standard generator */
+ /* fixed point multiplication */
+ EC_POINT_mul(NISTP, Q, m, NULL, NULL, ctx);
+ if (!TEST_int_eq(0, EC_POINT_cmp(NISTP, Q, Q_CHECK, ctx)))
+ goto err;
+ /* random point multiplication */
+ EC_POINT_mul(NISTP, Q, NULL, P, m, ctx);
+ if (!TEST_int_eq(0, EC_POINT_cmp(NISTP, Q, Q_CHECK, ctx))
+
+ /*
+ * We have not performed precomputation so have_precompute mult should be
+ * false
+ */
+ || !TEST_false(EC_GROUP_have_precompute_mult(NISTP))
+
+ /* now repeat all tests with precomputation */
+ || !TEST_true(EC_GROUP_precompute_mult(NISTP, ctx))
+ || !TEST_true(EC_GROUP_have_precompute_mult(NISTP)))
+ goto err;
+
+ /* fixed point multiplication */
+ EC_POINT_mul(NISTP, Q, m, NULL, NULL, ctx);
+ if (!TEST_int_eq(0, EC_POINT_cmp(NISTP, Q, Q_CHECK, ctx)))
+ goto err;
+ /* random point multiplication */
+ EC_POINT_mul(NISTP, Q, NULL, P, m, ctx);
+ if (!TEST_int_eq(0, EC_POINT_cmp(NISTP, Q, Q_CHECK, ctx))
+
+ /* reset generator */
+ || !TEST_true(EC_GROUP_set_generator(NISTP, G, order, BN_value_one())))
+ goto err;
+ /* fixed point multiplication */
+ EC_POINT_mul(NISTP, Q, n, NULL, NULL, ctx);
+ if (!TEST_int_eq(0, EC_POINT_cmp(NISTP, Q, Q_CHECK, ctx)))
+ goto err;
+ /* random point multiplication */
+ EC_POINT_mul(NISTP, Q, NULL, G, n, ctx);
+ if (!TEST_int_eq(0, EC_POINT_cmp(NISTP, Q, Q_CHECK, ctx)))
+ goto err;
+
+ /* regression test for felem_neg bug */
+ if (!TEST_true(BN_set_word(m, 32))
+ || !TEST_true(BN_set_word(n, 31))
+ || !TEST_true(EC_POINT_copy(P, G))
+ || !TEST_true(EC_POINT_invert(NISTP, P, ctx))
+ || !TEST_true(EC_POINT_mul(NISTP, Q, m, P, n, ctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(NISTP, Q, G, ctx)))
+ goto err;
+
+ r = group_order_tests(NISTP);
+err:
+ EC_GROUP_free(NISTP);
+ EC_POINT_free(G);
+ EC_POINT_free(P);
+ EC_POINT_free(Q);
+ EC_POINT_free(Q_CHECK);
+ BN_free(n);
+ BN_free(m);
+ BN_free(p);
+ BN_free(a);
+ BN_free(b);
+ BN_free(x);
+ BN_free(y);
+ BN_free(order);
+ BN_free(yplusone);
+ BN_CTX_free(ctx);
+ return r;
+}
+
+/*
+ * Tests a point known to cause an incorrect underflow in an old version of
+ * ecp_nist521.c
+ */
+static int underflow_test(void)
+{
+ BN_CTX *ctx = NULL;
+ EC_GROUP *grp = NULL;
+ EC_POINT *P = NULL, *Q = NULL, *R = NULL;
+ BIGNUM *x1 = NULL, *y1 = NULL, *z1 = NULL, *x2 = NULL, *y2 = NULL;
+ BIGNUM *k = NULL;
+ int testresult = 0;
+ const char *x1str =
+ "1534f0077fffffe87e9adcfe000000000000000000003e05a21d2400002e031b1f4"
+ "b80000c6fafa4f3c1288798d624a247b5e2ffffffffffffffefe099241900004";
+ const char *p521m1 =
+ "1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe";
+
+ ctx = BN_CTX_new();
+ if (!TEST_ptr(ctx))
+ return 0;
+
+ BN_CTX_start(ctx);
+ x1 = BN_CTX_get(ctx);
+ y1 = BN_CTX_get(ctx);
+ z1 = BN_CTX_get(ctx);
+ x2 = BN_CTX_get(ctx);
+ y2 = BN_CTX_get(ctx);
+ k = BN_CTX_get(ctx);
+ if (!TEST_ptr(k))
+ goto err;
+
+ grp = EC_GROUP_new_by_curve_name(NID_secp521r1);
+ P = EC_POINT_new(grp);
+ Q = EC_POINT_new(grp);
+ R = EC_POINT_new(grp);
+ if (!TEST_ptr(grp) || !TEST_ptr(P) || !TEST_ptr(Q) || !TEST_ptr(R))
+ goto err;
+
+ if (!TEST_int_gt(BN_hex2bn(&x1, x1str), 0)
+ || !TEST_int_gt(BN_hex2bn(&y1, p521m1), 0)
+ || !TEST_int_gt(BN_hex2bn(&z1, p521m1), 0)
+ || !TEST_int_gt(BN_hex2bn(&k, "02"), 0)
+ || !TEST_true(EC_POINT_set_Jprojective_coordinates_GFp(grp, P, x1,
+ y1, z1, ctx))
+ || !TEST_true(EC_POINT_mul(grp, Q, NULL, P, k, ctx))
+ || !TEST_true(EC_POINT_get_affine_coordinates(grp, Q, x1, y1, ctx))
+ || !TEST_true(EC_POINT_dbl(grp, R, P, ctx))
+ || !TEST_true(EC_POINT_get_affine_coordinates(grp, R, x2, y2, ctx)))
+ goto err;
+
+ if (!TEST_int_eq(BN_cmp(x1, x2), 0)
+ || !TEST_int_eq(BN_cmp(y1, y2), 0))
+ goto err;
+
+ testresult = 1;
+
+ err:
+ BN_CTX_end(ctx);
+ EC_POINT_free(P);
+ EC_POINT_free(Q);
+ EC_POINT_free(R);
+ EC_GROUP_free(grp);
+ BN_CTX_free(ctx);
+
+ return testresult;
+}
+# endif
+
+static const unsigned char p521_named[] = {
+ 0x06, 0x05, 0x2b, 0x81, 0x04, 0x00, 0x23,
+};
+
+static const unsigned char p521_explicit[] = {
+ 0x30, 0x82, 0x01, 0xc3, 0x02, 0x01, 0x01, 0x30, 0x4d, 0x06, 0x07, 0x2a,
+ 0x86, 0x48, 0xce, 0x3d, 0x01, 0x01, 0x02, 0x42, 0x01, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x30, 0x81, 0x9f, 0x04, 0x42, 0x01, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xfc, 0x04, 0x42, 0x00, 0x51, 0x95, 0x3e, 0xb9, 0x61, 0x8e, 0x1c, 0x9a,
+ 0x1f, 0x92, 0x9a, 0x21, 0xa0, 0xb6, 0x85, 0x40, 0xee, 0xa2, 0xda, 0x72,
+ 0x5b, 0x99, 0xb3, 0x15, 0xf3, 0xb8, 0xb4, 0x89, 0x91, 0x8e, 0xf1, 0x09,
+ 0xe1, 0x56, 0x19, 0x39, 0x51, 0xec, 0x7e, 0x93, 0x7b, 0x16, 0x52, 0xc0,
+ 0xbd, 0x3b, 0xb1, 0xbf, 0x07, 0x35, 0x73, 0xdf, 0x88, 0x3d, 0x2c, 0x34,
+ 0xf1, 0xef, 0x45, 0x1f, 0xd4, 0x6b, 0x50, 0x3f, 0x00, 0x03, 0x15, 0x00,
+ 0xd0, 0x9e, 0x88, 0x00, 0x29, 0x1c, 0xb8, 0x53, 0x96, 0xcc, 0x67, 0x17,
+ 0x39, 0x32, 0x84, 0xaa, 0xa0, 0xda, 0x64, 0xba, 0x04, 0x81, 0x85, 0x04,
+ 0x00, 0xc6, 0x85, 0x8e, 0x06, 0xb7, 0x04, 0x04, 0xe9, 0xcd, 0x9e, 0x3e,
+ 0xcb, 0x66, 0x23, 0x95, 0xb4, 0x42, 0x9c, 0x64, 0x81, 0x39, 0x05, 0x3f,
+ 0xb5, 0x21, 0xf8, 0x28, 0xaf, 0x60, 0x6b, 0x4d, 0x3d, 0xba, 0xa1, 0x4b,
+ 0x5e, 0x77, 0xef, 0xe7, 0x59, 0x28, 0xfe, 0x1d, 0xc1, 0x27, 0xa2, 0xff,
+ 0xa8, 0xde, 0x33, 0x48, 0xb3, 0xc1, 0x85, 0x6a, 0x42, 0x9b, 0xf9, 0x7e,
+ 0x7e, 0x31, 0xc2, 0xe5, 0xbd, 0x66, 0x01, 0x18, 0x39, 0x29, 0x6a, 0x78,
+ 0x9a, 0x3b, 0xc0, 0x04, 0x5c, 0x8a, 0x5f, 0xb4, 0x2c, 0x7d, 0x1b, 0xd9,
+ 0x98, 0xf5, 0x44, 0x49, 0x57, 0x9b, 0x44, 0x68, 0x17, 0xaf, 0xbd, 0x17,
+ 0x27, 0x3e, 0x66, 0x2c, 0x97, 0xee, 0x72, 0x99, 0x5e, 0xf4, 0x26, 0x40,
+ 0xc5, 0x50, 0xb9, 0x01, 0x3f, 0xad, 0x07, 0x61, 0x35, 0x3c, 0x70, 0x86,
+ 0xa2, 0x72, 0xc2, 0x40, 0x88, 0xbe, 0x94, 0x76, 0x9f, 0xd1, 0x66, 0x50,
+ 0x02, 0x42, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa,
+ 0x51, 0x86, 0x87, 0x83, 0xbf, 0x2f, 0x96, 0x6b, 0x7f, 0xcc, 0x01, 0x48,
+ 0xf7, 0x09, 0xa5, 0xd0, 0x3b, 0xb5, 0xc9, 0xb8, 0x89, 0x9c, 0x47, 0xae,
+ 0xbb, 0x6f, 0xb7, 0x1e, 0x91, 0x38, 0x64, 0x09, 0x02, 0x01, 0x01,
+};
+
+/*
+ * Sometime we cannot compare nids for equality, as the built-in curve table
+ * includes aliases with different names for the same curve.
+ *
+ * This function returns TRUE (1) if the checked nids are identical, or if they
+ * alias to the same curve. FALSE (0) otherwise.
+ */
+static ossl_inline
+int are_ec_nids_compatible(int n1d, int n2d)
+{
+ int ret = 0;
+ switch (n1d) {
+# ifndef OPENSSL_NO_EC2M
+ case NID_sect113r1:
+ case NID_wap_wsg_idm_ecid_wtls4:
+ ret = (n2d == NID_sect113r1 || n2d == NID_wap_wsg_idm_ecid_wtls4);
+ break;
+ case NID_sect163k1:
+ case NID_wap_wsg_idm_ecid_wtls3:
+ ret = (n2d == NID_sect163k1 || n2d == NID_wap_wsg_idm_ecid_wtls3);
+ break;
+ case NID_sect233k1:
+ case NID_wap_wsg_idm_ecid_wtls10:
+ ret = (n2d == NID_sect233k1 || n2d == NID_wap_wsg_idm_ecid_wtls10);
+ break;
+ case NID_sect233r1:
+ case NID_wap_wsg_idm_ecid_wtls11:
+ ret = (n2d == NID_sect233r1 || n2d == NID_wap_wsg_idm_ecid_wtls11);
+ break;
+ case NID_X9_62_c2pnb163v1:
+ case NID_wap_wsg_idm_ecid_wtls5:
+ ret = (n2d == NID_X9_62_c2pnb163v1
+ || n2d == NID_wap_wsg_idm_ecid_wtls5);
+ break;
+# endif /* OPENSSL_NO_EC2M */
+ case NID_secp112r1:
+ case NID_wap_wsg_idm_ecid_wtls6:
+ ret = (n2d == NID_secp112r1 || n2d == NID_wap_wsg_idm_ecid_wtls6);
+ break;
+ case NID_secp160r2:
+ case NID_wap_wsg_idm_ecid_wtls7:
+ ret = (n2d == NID_secp160r2 || n2d == NID_wap_wsg_idm_ecid_wtls7);
+ break;
+# ifdef OPENSSL_NO_EC_NISTP_64_GCC_128
+ case NID_secp224r1:
+ case NID_wap_wsg_idm_ecid_wtls12:
+ ret = (n2d == NID_secp224r1 || n2d == NID_wap_wsg_idm_ecid_wtls12);
+ break;
+# else
+ /*
+ * For SEC P-224 we want to ensure that the SECP nid is returned, as
+ * that is associated with a specialized method.
+ */
+ case NID_wap_wsg_idm_ecid_wtls12:
+ ret = (n2d == NID_secp224r1);
+ break;
+# endif /* def(OPENSSL_NO_EC_NISTP_64_GCC_128) */
+
+ default:
+ ret = (n1d == n2d);
+ }
+ return ret;
+}
+
+/*
+ * This checks that EC_GROUP_bew_from_ecparameters() returns a "named"
+ * EC_GROUP for built-in curves.
+ *
+ * Note that it is possible to retrieve an alternative alias that does not match
+ * the original nid.
+ *
+ * Ensure that the OPENSSL_EC_EXPLICIT_CURVE ASN1 flag is set.
+ */
+static int check_named_curve_from_ecparameters(int id)
+{
+ int ret = 0, nid, tnid;
+ EC_GROUP *group = NULL, *tgroup = NULL, *tmpg = NULL;
+ const EC_POINT *group_gen = NULL;
+ EC_POINT *other_gen = NULL;
+ BIGNUM *group_cofactor = NULL, *other_cofactor = NULL;
+ BIGNUM *other_gen_x = NULL, *other_gen_y = NULL;
+ const BIGNUM *group_order = NULL;
+ BIGNUM *other_order = NULL;
+ BN_CTX *bn_ctx = NULL;
+ static const unsigned char invalid_seed[] = "THIS IS NOT A VALID SEED";
+ static size_t invalid_seed_len = sizeof(invalid_seed);
+ ECPARAMETERS *params = NULL, *other_params = NULL;
+ EC_GROUP *g_ary[8] = {NULL};
+ EC_GROUP **g_next = &g_ary[0];
+ ECPARAMETERS *p_ary[8] = {NULL};
+ ECPARAMETERS **p_next = &p_ary[0];
+
+ /* Do some setup */
+ nid = curves[id].nid;
+ TEST_note("Curve %s", OBJ_nid2sn(nid));
+ if (!TEST_ptr(bn_ctx = BN_CTX_new()))
+ return ret;
+ BN_CTX_start(bn_ctx);
+
+ if (/* Allocations */
+ !TEST_ptr(group_cofactor = BN_CTX_get(bn_ctx))
+ || !TEST_ptr(other_gen_x = BN_CTX_get(bn_ctx))
+ || !TEST_ptr(other_gen_y = BN_CTX_get(bn_ctx))
+ || !TEST_ptr(other_order = BN_CTX_get(bn_ctx))
+ || !TEST_ptr(other_cofactor = BN_CTX_get(bn_ctx))
+ /* Generate reference group and params */
+ || !TEST_ptr(group = EC_GROUP_new_by_curve_name(nid))
+ || !TEST_ptr(params = EC_GROUP_get_ecparameters(group, NULL))
+ || !TEST_ptr(group_gen = EC_GROUP_get0_generator(group))
+ || !TEST_ptr(group_order = EC_GROUP_get0_order(group))
+ || !TEST_true(EC_GROUP_get_cofactor(group, group_cofactor, NULL))
+ /* compute `other_*` values */
+ || !TEST_ptr(tmpg = EC_GROUP_dup(group))
+ || !TEST_ptr(other_gen = EC_POINT_dup(group_gen, group))
+ || !TEST_true(EC_POINT_add(group, other_gen, group_gen, group_gen, NULL))
+ || !TEST_true(EC_POINT_get_affine_coordinates(group, other_gen,
+ other_gen_x, other_gen_y, bn_ctx))
+ || !TEST_true(BN_copy(other_order, group_order))
+ || !TEST_true(BN_add_word(other_order, 1))
+ || !TEST_true(BN_copy(other_cofactor, group_cofactor))
+ || !TEST_true(BN_add_word(other_cofactor, 1)))
+ goto err;
+
+ EC_POINT_free(other_gen);
+ other_gen = NULL;
+
+ if (!TEST_ptr(other_gen = EC_POINT_new(tmpg))
+ || !TEST_true(EC_POINT_set_affine_coordinates(tmpg, other_gen,
+ other_gen_x, other_gen_y,
+ bn_ctx)))
+ goto err;
+
+ /*
+ * ###########################
+ * # Actual tests start here #
+ * ###########################
+ */
+
+ /*
+ * Creating a group from built-in explicit parameters returns a
+ * "named" EC_GROUP
+ */
+ if (!TEST_ptr(tgroup = *g_next++ = EC_GROUP_new_from_ecparameters(params))
+ || !TEST_int_ne((tnid = EC_GROUP_get_curve_name(tgroup)), NID_undef))
+ goto err;
+ /*
+ * We cannot always guarantee the names match, as the built-in table
+ * contains aliases for the same curve with different names.
+ */
+ if (!TEST_true(are_ec_nids_compatible(nid, tnid))) {
+ TEST_info("nid = %s, tnid = %s", OBJ_nid2sn(nid), OBJ_nid2sn(tnid));
+ goto err;
+ }
+ /* Ensure that the OPENSSL_EC_EXPLICIT_CURVE ASN1 flag is set. */
+ if (!TEST_int_eq(EC_GROUP_get_asn1_flag(tgroup), OPENSSL_EC_EXPLICIT_CURVE))
+ goto err;
+
+ /*
+ * An invalid seed in the parameters should be ignored: expect a "named"
+ * group.
+ */
+ if (!TEST_int_eq(EC_GROUP_set_seed(tmpg, invalid_seed, invalid_seed_len),
+ invalid_seed_len)
+ || !TEST_ptr(other_params = *p_next++ =
+ EC_GROUP_get_ecparameters(tmpg, NULL))
+ || !TEST_ptr(tgroup = *g_next++ =
+ EC_GROUP_new_from_ecparameters(other_params))
+ || !TEST_int_ne((tnid = EC_GROUP_get_curve_name(tgroup)), NID_undef)
+ || !TEST_true(are_ec_nids_compatible(nid, tnid))
+ || !TEST_int_eq(EC_GROUP_get_asn1_flag(tgroup),
+ OPENSSL_EC_EXPLICIT_CURVE)) {
+ TEST_info("nid = %s, tnid = %s", OBJ_nid2sn(nid), OBJ_nid2sn(tnid));
+ goto err;
+ }
+
+ /*
+ * A null seed in the parameters should be ignored, as it is optional:
+ * expect a "named" group.
+ */
+ if (!TEST_int_eq(EC_GROUP_set_seed(tmpg, NULL, 0), 1)
+ || !TEST_ptr(other_params = *p_next++ =
+ EC_GROUP_get_ecparameters(tmpg, NULL))
+ || !TEST_ptr(tgroup = *g_next++ =
+ EC_GROUP_new_from_ecparameters(other_params))
+ || !TEST_int_ne((tnid = EC_GROUP_get_curve_name(tgroup)), NID_undef)
+ || !TEST_true(are_ec_nids_compatible(nid, tnid))
+ || !TEST_int_eq(EC_GROUP_get_asn1_flag(tgroup),
+ OPENSSL_EC_EXPLICIT_CURVE)) {
+ TEST_info("nid = %s, tnid = %s", OBJ_nid2sn(nid), OBJ_nid2sn(tnid));
+ goto err;
+ }
+
+ /*
+ * Check that changing any of the generator parameters does not yield a
+ * match with the built-in curves
+ */
+ if (/* Other gen, same group order & cofactor */
+ !TEST_true(EC_GROUP_set_generator(tmpg, other_gen, group_order,
+ group_cofactor))
+ || !TEST_ptr(other_params = *p_next++ =
+ EC_GROUP_get_ecparameters(tmpg, NULL))
+ || !TEST_ptr(tgroup = *g_next++ =
+ EC_GROUP_new_from_ecparameters(other_params))
+ || !TEST_int_eq((tnid = EC_GROUP_get_curve_name(tgroup)), NID_undef)
+ /* Same gen & cofactor, different order */
+ || !TEST_true(EC_GROUP_set_generator(tmpg, group_gen, other_order,
+ group_cofactor))
+ || !TEST_ptr(other_params = *p_next++ =
+ EC_GROUP_get_ecparameters(tmpg, NULL))
+ || !TEST_ptr(tgroup = *g_next++ =
+ EC_GROUP_new_from_ecparameters(other_params))
+ || !TEST_int_eq((tnid = EC_GROUP_get_curve_name(tgroup)), NID_undef)
+ /* The order is not an optional field, so this should fail */
+ || !TEST_false(EC_GROUP_set_generator(tmpg, group_gen, NULL,
+ group_cofactor))
+ /* Check that a wrong cofactor is ignored, and we still match */
+ || !TEST_true(EC_GROUP_set_generator(tmpg, group_gen, group_order,
+ other_cofactor))
+ || !TEST_ptr(other_params = *p_next++ =
+ EC_GROUP_get_ecparameters(tmpg, NULL))
+ || !TEST_ptr(tgroup = *g_next++ =
+ EC_GROUP_new_from_ecparameters(other_params))
+ || !TEST_int_ne((tnid = EC_GROUP_get_curve_name(tgroup)), NID_undef)
+ || !TEST_true(are_ec_nids_compatible(nid, tnid))
+ || !TEST_int_eq(EC_GROUP_get_asn1_flag(tgroup),
+ OPENSSL_EC_EXPLICIT_CURVE)
+ /* Check that if the cofactor is not set then it still matches */
+ || !TEST_true(EC_GROUP_set_generator(tmpg, group_gen, group_order,
+ NULL))
+ || !TEST_ptr(other_params = *p_next++ =
+ EC_GROUP_get_ecparameters(tmpg, NULL))
+ || !TEST_ptr(tgroup = *g_next++ =
+ EC_GROUP_new_from_ecparameters(other_params))
+ || !TEST_int_ne((tnid = EC_GROUP_get_curve_name(tgroup)), NID_undef)
+ || !TEST_true(are_ec_nids_compatible(nid, tnid))
+ || !TEST_int_eq(EC_GROUP_get_asn1_flag(tgroup),
+ OPENSSL_EC_EXPLICIT_CURVE)
+ /* check that restoring the generator passes */
+ || !TEST_true(EC_GROUP_set_generator(tmpg, group_gen, group_order,
+ group_cofactor))
+ || !TEST_ptr(other_params = *p_next++ =
+ EC_GROUP_get_ecparameters(tmpg, NULL))
+ || !TEST_ptr(tgroup = *g_next++ =
+ EC_GROUP_new_from_ecparameters(other_params))
+ || !TEST_int_ne((tnid = EC_GROUP_get_curve_name(tgroup)), NID_undef)
+ || !TEST_true(are_ec_nids_compatible(nid, tnid))
+ || !TEST_int_eq(EC_GROUP_get_asn1_flag(tgroup),
+ OPENSSL_EC_EXPLICIT_CURVE))
+ goto err;
+
+ ret = 1;
+err:
+ for (g_next = &g_ary[0]; g_next < g_ary + OSSL_NELEM(g_ary); g_next++)
+ EC_GROUP_free(*g_next);
+ for (p_next = &p_ary[0]; p_next < p_ary + OSSL_NELEM(g_ary); p_next++)
+ ECPARAMETERS_free(*p_next);
+ ECPARAMETERS_free(params);
+ EC_POINT_free(other_gen);
+ EC_GROUP_free(tmpg);
+ EC_GROUP_free(group);
+ BN_CTX_end(bn_ctx);
+ BN_CTX_free(bn_ctx);
+ return ret;
+}
+
+static int parameter_test(void)
+{
+ EC_GROUP *group = NULL, *group2 = NULL;
+ ECPARAMETERS *ecparameters = NULL;
+ unsigned char *buf = NULL;
+ int r = 0, len;
+
+ if (!TEST_ptr(group = EC_GROUP_new_by_curve_name(NID_secp112r1))
+ || !TEST_ptr(ecparameters = EC_GROUP_get_ecparameters(group, NULL))
+ || !TEST_ptr(group2 = EC_GROUP_new_from_ecparameters(ecparameters))
+ || !TEST_int_eq(EC_GROUP_cmp(group, group2, NULL), 0))
+ goto err;
+
+ EC_GROUP_free(group);
+ group = NULL;
+
+ /* Test the named curve encoding, which should be default. */
+ if (!TEST_ptr(group = EC_GROUP_new_by_curve_name(NID_secp521r1))
+ || !TEST_true((len = i2d_ECPKParameters(group, &buf)) >= 0)
+ || !TEST_mem_eq(buf, len, p521_named, sizeof(p521_named)))
+ goto err;
+
+ OPENSSL_free(buf);
+ buf = NULL;
+
+ /*
+ * Test the explicit encoding. P-521 requires correctly zero-padding the
+ * curve coefficients.
+ */
+ EC_GROUP_set_asn1_flag(group, OPENSSL_EC_EXPLICIT_CURVE);
+ if (!TEST_true((len = i2d_ECPKParameters(group, &buf)) >= 0)
+ || !TEST_mem_eq(buf, len, p521_explicit, sizeof(p521_explicit)))
+ goto err;
+
+ r = 1;
+err:
+ EC_GROUP_free(group);
+ EC_GROUP_free(group2);
+ ECPARAMETERS_free(ecparameters);
+ OPENSSL_free(buf);
+ return r;
+}
+
+/*-
+ * random 256-bit explicit parameters curve, cofactor absent
+ * order: 0x0c38d96a9f892b88772ec2e39614a82f4f (132 bit)
+ * cofactor: 0x12bc94785251297abfafddf1565100da (125 bit)
+ */
+static const unsigned char params_cf_pass[] = {
+ 0x30, 0x81, 0xcd, 0x02, 0x01, 0x01, 0x30, 0x2c, 0x06, 0x07, 0x2a, 0x86,
+ 0x48, 0xce, 0x3d, 0x01, 0x01, 0x02, 0x21, 0x00, 0xe5, 0x00, 0x1f, 0xc5,
+ 0xca, 0x71, 0x9d, 0x8e, 0xf7, 0x07, 0x4b, 0x48, 0x37, 0xf9, 0x33, 0x2d,
+ 0x71, 0xbf, 0x79, 0xe7, 0xdc, 0x91, 0xc2, 0xff, 0xb6, 0x7b, 0xc3, 0x93,
+ 0x44, 0x88, 0xe6, 0x91, 0x30, 0x44, 0x04, 0x20, 0xe5, 0x00, 0x1f, 0xc5,
+ 0xca, 0x71, 0x9d, 0x8e, 0xf7, 0x07, 0x4b, 0x48, 0x37, 0xf9, 0x33, 0x2d,
+ 0x71, 0xbf, 0x79, 0xe7, 0xdc, 0x91, 0xc2, 0xff, 0xb6, 0x7b, 0xc3, 0x93,
+ 0x44, 0x88, 0xe6, 0x8e, 0x04, 0x20, 0x18, 0x8c, 0x59, 0x57, 0xc4, 0xbc,
+ 0x85, 0x57, 0xc3, 0x66, 0x9f, 0x89, 0xd5, 0x92, 0x0d, 0x7e, 0x42, 0x27,
+ 0x07, 0x64, 0xaa, 0x26, 0xed, 0x89, 0xc4, 0x09, 0x05, 0x4d, 0xc7, 0x23,
+ 0x47, 0xda, 0x04, 0x41, 0x04, 0x1b, 0x6b, 0x41, 0x0b, 0xf9, 0xfb, 0x77,
+ 0xfd, 0x50, 0xb7, 0x3e, 0x23, 0xa3, 0xec, 0x9a, 0x3b, 0x09, 0x31, 0x6b,
+ 0xfa, 0xf6, 0xce, 0x1f, 0xff, 0xeb, 0x57, 0x93, 0x24, 0x70, 0xf3, 0xf4,
+ 0xba, 0x7e, 0xfa, 0x86, 0x6e, 0x19, 0x89, 0xe3, 0x55, 0x6d, 0x5a, 0xe9,
+ 0xc0, 0x3d, 0xbc, 0xfb, 0xaf, 0xad, 0xd4, 0x7e, 0xa6, 0xe5, 0xfa, 0x1a,
+ 0x58, 0x07, 0x9e, 0x8f, 0x0d, 0x3b, 0xf7, 0x38, 0xca, 0x02, 0x11, 0x0c,
+ 0x38, 0xd9, 0x6a, 0x9f, 0x89, 0x2b, 0x88, 0x77, 0x2e, 0xc2, 0xe3, 0x96,
+ 0x14, 0xa8, 0x2f, 0x4f
+};
+
+/*-
+ * random 256-bit explicit parameters curve, cofactor absent
+ * order: 0x045a75c0c17228ebd9b169a10e34a22101 (131 bit)
+ * cofactor: 0x2e134b4ede82649f67a2e559d361e5fe (126 bit)
+ */
+static const unsigned char params_cf_fail[] = {
+ 0x30, 0x81, 0xcd, 0x02, 0x01, 0x01, 0x30, 0x2c, 0x06, 0x07, 0x2a, 0x86,
+ 0x48, 0xce, 0x3d, 0x01, 0x01, 0x02, 0x21, 0x00, 0xc8, 0x95, 0x27, 0x37,
+ 0xe8, 0xe1, 0xfd, 0xcc, 0xf9, 0x6e, 0x0c, 0xa6, 0x21, 0xc1, 0x7d, 0x6b,
+ 0x9d, 0x44, 0x42, 0xea, 0x73, 0x4e, 0x04, 0xb6, 0xac, 0x62, 0x50, 0xd0,
+ 0x33, 0xc2, 0xea, 0x13, 0x30, 0x44, 0x04, 0x20, 0xc8, 0x95, 0x27, 0x37,
+ 0xe8, 0xe1, 0xfd, 0xcc, 0xf9, 0x6e, 0x0c, 0xa6, 0x21, 0xc1, 0x7d, 0x6b,
+ 0x9d, 0x44, 0x42, 0xea, 0x73, 0x4e, 0x04, 0xb6, 0xac, 0x62, 0x50, 0xd0,
+ 0x33, 0xc2, 0xea, 0x10, 0x04, 0x20, 0xbf, 0xa6, 0xa8, 0x05, 0x1d, 0x09,
+ 0xac, 0x70, 0x39, 0xbb, 0x4d, 0xb2, 0x90, 0x8a, 0x15, 0x41, 0x14, 0x1d,
+ 0x11, 0x86, 0x9f, 0x13, 0xa2, 0x63, 0x1a, 0xda, 0x95, 0x22, 0x4d, 0x02,
+ 0x15, 0x0a, 0x04, 0x41, 0x04, 0xaf, 0x16, 0x71, 0xf9, 0xc4, 0xc8, 0x59,
+ 0x1d, 0xa3, 0x6f, 0xe7, 0xc3, 0x57, 0xa1, 0xfa, 0x9f, 0x49, 0x7c, 0x11,
+ 0x27, 0x05, 0xa0, 0x7f, 0xff, 0xf9, 0xe0, 0xe7, 0x92, 0xdd, 0x9c, 0x24,
+ 0x8e, 0xc7, 0xb9, 0x52, 0x71, 0x3f, 0xbc, 0x7f, 0x6a, 0x9f, 0x35, 0x70,
+ 0xe1, 0x27, 0xd5, 0x35, 0x8a, 0x13, 0xfa, 0xa8, 0x33, 0x3e, 0xd4, 0x73,
+ 0x1c, 0x14, 0x58, 0x9e, 0xc7, 0x0a, 0x87, 0x65, 0x8d, 0x02, 0x11, 0x04,
+ 0x5a, 0x75, 0xc0, 0xc1, 0x72, 0x28, 0xeb, 0xd9, 0xb1, 0x69, 0xa1, 0x0e,
+ 0x34, 0xa2, 0x21, 0x01
+};
+
+/*-
+ * Test two random 256-bit explicit parameters curves with absent cofactor.
+ * The two curves are chosen to roughly straddle the bounds at which the lib
+ * can compute the cofactor automatically, roughly 4*sqrt(p). So test that:
+ *
+ * - params_cf_pass: order is sufficiently close to p to compute cofactor
+ * - params_cf_fail: order is too far away from p to compute cofactor
+ *
+ * For standards-compliant curves, cofactor is chosen as small as possible.
+ * So you can see neither of these curves are fit for cryptographic use.
+ *
+ * Some standards even mandate an upper bound on the cofactor, e.g. SECG1 v2:
+ * h <= 2**(t/8) where t is the security level of the curve, for which the lib
+ * will always succeed in computing the cofactor. Neither of these curves
+ * conform to that -- this is just robustness testing.
+ */
+static int cofactor_range_test(void)
+{
+ EC_GROUP *group = NULL;
+ BIGNUM *cf = NULL;
+ int ret = 0;
+ const unsigned char *b1 = (const unsigned char *)params_cf_fail;
+ const unsigned char *b2 = (const unsigned char *)params_cf_pass;
+
+ if (!TEST_ptr(group = d2i_ECPKParameters(NULL, &b1, sizeof(params_cf_fail)))
+ || !TEST_BN_eq_zero(EC_GROUP_get0_cofactor(group))
+ || !TEST_ptr(group = d2i_ECPKParameters(&group, &b2,
+ sizeof(params_cf_pass)))
+ || !TEST_int_gt(BN_hex2bn(&cf, "12bc94785251297abfafddf1565100da"), 0)
+ || !TEST_BN_eq(cf, EC_GROUP_get0_cofactor(group)))
+ goto err;
+ ret = 1;
+ err:
+ BN_free(cf);
+ EC_GROUP_free(group);
+ return ret;
+}
+
+/*-
+ * For named curves, test that:
+ * - the lib correctly computes the cofactor if passed a NULL or zero cofactor
+ * - a nonsensical cofactor throws an error (negative test)
+ * - nonsensical orders throw errors (negative tests)
+ */
+static int cardinality_test(int n)
+{
+ int ret = 0;
+ int nid = curves[n].nid;
+ BN_CTX *ctx = NULL;
+ EC_GROUP *g1 = NULL, *g2 = NULL;
+ EC_POINT *g2_gen = NULL;
+ BIGNUM *g1_p = NULL, *g1_a = NULL, *g1_b = NULL, *g1_x = NULL, *g1_y = NULL,
+ *g1_order = NULL, *g1_cf = NULL, *g2_cf = NULL;
+
+ TEST_info("Curve %s cardinality test", OBJ_nid2sn(nid));
+
+ if (!TEST_ptr(ctx = BN_CTX_new())
+ || !TEST_ptr(g1 = EC_GROUP_new_by_curve_name(nid))
+ || !TEST_ptr(g2 = EC_GROUP_new(EC_GROUP_method_of(g1)))) {
+ EC_GROUP_free(g1);
+ EC_GROUP_free(g2);
+ BN_CTX_free(ctx);
+ return 0;
+ }
+
+ BN_CTX_start(ctx);
+ g1_p = BN_CTX_get(ctx);
+ g1_a = BN_CTX_get(ctx);
+ g1_b = BN_CTX_get(ctx);
+ g1_x = BN_CTX_get(ctx);
+ g1_y = BN_CTX_get(ctx);
+ g1_order = BN_CTX_get(ctx);
+ g1_cf = BN_CTX_get(ctx);
+
+ if (!TEST_ptr(g2_cf = BN_CTX_get(ctx))
+ /* pull out the explicit curve parameters */
+ || !TEST_true(EC_GROUP_get_curve(g1, g1_p, g1_a, g1_b, ctx))
+ || !TEST_true(EC_POINT_get_affine_coordinates(g1,
+ EC_GROUP_get0_generator(g1), g1_x, g1_y, ctx))
+ || !TEST_true(BN_copy(g1_order, EC_GROUP_get0_order(g1)))
+ || !TEST_true(EC_GROUP_get_cofactor(g1, g1_cf, ctx))
+ /* construct g2 manually with g1 parameters */
+ || !TEST_true(EC_GROUP_set_curve(g2, g1_p, g1_a, g1_b, ctx))
+ || !TEST_ptr(g2_gen = EC_POINT_new(g2))
+ || !TEST_true(EC_POINT_set_affine_coordinates(g2, g2_gen, g1_x, g1_y, ctx))
+ /* pass NULL cofactor: lib should compute it */
+ || !TEST_true(EC_GROUP_set_generator(g2, g2_gen, g1_order, NULL))
+ || !TEST_true(EC_GROUP_get_cofactor(g2, g2_cf, ctx))
+ || !TEST_BN_eq(g1_cf, g2_cf)
+ /* pass zero cofactor: lib should compute it */
+ || !TEST_true(BN_set_word(g2_cf, 0))
+ || !TEST_true(EC_GROUP_set_generator(g2, g2_gen, g1_order, g2_cf))
+ || !TEST_true(EC_GROUP_get_cofactor(g2, g2_cf, ctx))
+ || !TEST_BN_eq(g1_cf, g2_cf)
+ /* negative test for invalid cofactor */
+ || !TEST_true(BN_set_word(g2_cf, 0))
+ || !TEST_true(BN_sub(g2_cf, g2_cf, BN_value_one()))
+ || !TEST_false(EC_GROUP_set_generator(g2, g2_gen, g1_order, g2_cf))
+ /* negative test for NULL order */
+ || !TEST_false(EC_GROUP_set_generator(g2, g2_gen, NULL, NULL))
+ /* negative test for zero order */
+ || !TEST_true(BN_set_word(g1_order, 0))
+ || !TEST_false(EC_GROUP_set_generator(g2, g2_gen, g1_order, NULL))
+ /* negative test for negative order */
+ || !TEST_true(BN_set_word(g2_cf, 0))
+ || !TEST_true(BN_sub(g2_cf, g2_cf, BN_value_one()))
+ || !TEST_false(EC_GROUP_set_generator(g2, g2_gen, g1_order, NULL))
+ /* negative test for too large order */
+ || !TEST_true(BN_lshift(g1_order, g1_p, 2))
+ || !TEST_false(EC_GROUP_set_generator(g2, g2_gen, g1_order, NULL)))
+ goto err;
+ ret = 1;
+ err:
+ EC_POINT_free(g2_gen);
+ EC_GROUP_free(g1);
+ EC_GROUP_free(g2);
+ BN_CTX_end(ctx);
+ BN_CTX_free(ctx);
+ return ret;
+}
+
+/*
+ * Helper for ec_point_hex2point_test
+ *
+ * Self-tests EC_POINT_point2hex() against EC_POINT_hex2point() for the given
+ * (group,P) pair.
+ *
+ * If P is NULL use point at infinity.
+ */
+static ossl_inline
+int ec_point_hex2point_test_helper(const EC_GROUP *group, const EC_POINT *P,
+ point_conversion_form_t form,
+ BN_CTX *bnctx)
+{
+ int ret = 0;
+ EC_POINT *Q = NULL, *Pinf = NULL;
+ char *hex = NULL;
+
+ if (P == NULL) {
+ /* If P is NULL use point at infinity. */
+ if (!TEST_ptr(Pinf = EC_POINT_new(group))
+ || !TEST_true(EC_POINT_set_to_infinity(group, Pinf)))
+ goto err;
+ P = Pinf;
+ }
+
+ if (!TEST_ptr(hex = EC_POINT_point2hex(group, P, form, bnctx))
+ || !TEST_ptr(Q = EC_POINT_hex2point(group, hex, NULL, bnctx))
+ || !TEST_int_eq(0, EC_POINT_cmp(group, Q, P, bnctx)))
+ goto err;
+
+ /*
+ * The next check is most likely superfluous, as EC_POINT_cmp should already
+ * cover this.
+ * Nonetheless it increases the test coverage for EC_POINT_is_at_infinity,
+ * so we include it anyway!
+ */
+ if (Pinf != NULL
+ && !TEST_true(EC_POINT_is_at_infinity(group, Q)))
+ goto err;
+
+ ret = 1;
+
+ err:
+ EC_POINT_free(Pinf);
+ OPENSSL_free(hex);
+ EC_POINT_free(Q);
+
+ return ret;
+}
+
+/*
+ * This test self-validates EC_POINT_hex2point() and EC_POINT_point2hex()
+ */
+static int ec_point_hex2point_test(int id)
+{
+ int ret = 0, nid;
+ EC_GROUP *group = NULL;
+ const EC_POINT *G = NULL;
+ EC_POINT *P = NULL;
+ BN_CTX * bnctx = NULL;
+
+ /* Do some setup */
+ nid = curves[id].nid;
+ if (!TEST_ptr(bnctx = BN_CTX_new())
+ || !TEST_ptr(group = EC_GROUP_new_by_curve_name(nid))
+ || !TEST_ptr(G = EC_GROUP_get0_generator(group))
+ || !TEST_ptr(P = EC_POINT_dup(G, group)))
+ goto err;
+
+ if (!TEST_true(ec_point_hex2point_test_helper(group, P,
+ POINT_CONVERSION_COMPRESSED,
+ bnctx))
+ || !TEST_true(ec_point_hex2point_test_helper(group, NULL,
+ POINT_CONVERSION_COMPRESSED,
+ bnctx))
+ || !TEST_true(ec_point_hex2point_test_helper(group, P,
+ POINT_CONVERSION_UNCOMPRESSED,
+ bnctx))
+ || !TEST_true(ec_point_hex2point_test_helper(group, NULL,
+ POINT_CONVERSION_UNCOMPRESSED,
+ bnctx))
+ || !TEST_true(ec_point_hex2point_test_helper(group, P,
+ POINT_CONVERSION_HYBRID,
+ bnctx))
+ || !TEST_true(ec_point_hex2point_test_helper(group, NULL,
+ POINT_CONVERSION_HYBRID,
+ bnctx)))
+ goto err;
+
+ ret = 1;
+
+ err:
+ EC_POINT_free(P);
+ EC_GROUP_free(group);
+ BN_CTX_free(bnctx);
+
+ return ret;
+}
+
+#endif /* OPENSSL_NO_EC */
+
+int setup_tests(void)
+{
+#ifndef OPENSSL_NO_EC
+ crv_len = EC_get_builtin_curves(NULL, 0);
+ if (!TEST_ptr(curves = OPENSSL_malloc(sizeof(*curves) * crv_len))
+ || !TEST_true(EC_get_builtin_curves(curves, crv_len)))
+ return 0;
+
+ ADD_TEST(parameter_test);
+ ADD_TEST(cofactor_range_test);
+ ADD_ALL_TESTS(cardinality_test, crv_len);
+ ADD_TEST(prime_field_tests);
+# ifndef OPENSSL_NO_EC2M
+ ADD_TEST(char2_field_tests);
+ ADD_ALL_TESTS(char2_curve_test, OSSL_NELEM(char2_curve_tests));
+# endif
+# ifndef OPENSSL_NO_EC_NISTP_64_GCC_128
+ ADD_ALL_TESTS(nistp_single_test, OSSL_NELEM(nistp_tests_params));
+ ADD_TEST(underflow_test);
+# endif
+ ADD_ALL_TESTS(internal_curve_test, crv_len);
+ ADD_ALL_TESTS(internal_curve_test_method, crv_len);
+
+ ADD_ALL_TESTS(check_named_curve_from_ecparameters, crv_len);
+ ADD_ALL_TESTS(ec_point_hex2point_test, crv_len);
+#endif /* OPENSSL_NO_EC */
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+#ifndef OPENSSL_NO_EC
+ OPENSSL_free(curves);
+#endif
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/enginetest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/enginetest.c
new file mode 100644
index 000000000..c3dc5bb7f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/enginetest.c
@@ -0,0 +1,371 @@
+/*
+ * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <openssl/e_os2.h>
+
+# include "testutil.h"
+
+#ifndef OPENSSL_NO_ENGINE
+# include <openssl/buffer.h>
+# include <openssl/crypto.h>
+# include <openssl/engine.h>
+# include <openssl/rsa.h>
+# include <openssl/err.h>
+
+static void display_engine_list(void)
+{
+ ENGINE *h;
+ int loop;
+
+ loop = 0;
+ for (h = ENGINE_get_first(); h != NULL; h = ENGINE_get_next(h)) {
+ TEST_info("#%d: id = \"%s\", name = \"%s\"",
+ loop++, ENGINE_get_id(h), ENGINE_get_name(h));
+ }
+
+ /*
+ * ENGINE_get_first() increases the struct_ref counter, so we must call
+ * ENGINE_free() to decrease it again
+ */
+ ENGINE_free(h);
+}
+
+#define NUMTOADD 512
+
+static int test_engines(void)
+{
+ ENGINE *block[NUMTOADD];
+ char buf[256];
+ const char *id, *name;
+ ENGINE *ptr;
+ int loop;
+ int to_return = 0;
+ ENGINE *new_h1 = NULL;
+ ENGINE *new_h2 = NULL;
+ ENGINE *new_h3 = NULL;
+ ENGINE *new_h4 = NULL;
+
+ memset(block, 0, sizeof(block));
+ if (!TEST_ptr(new_h1 = ENGINE_new())
+ || !TEST_true(ENGINE_set_id(new_h1, "test_id0"))
+ || !TEST_true(ENGINE_set_name(new_h1, "First test item"))
+ || !TEST_ptr(new_h2 = ENGINE_new())
+ || !TEST_true(ENGINE_set_id(new_h2, "test_id1"))
+ || !TEST_true(ENGINE_set_name(new_h2, "Second test item"))
+ || !TEST_ptr(new_h3 = ENGINE_new())
+ || !TEST_true(ENGINE_set_id(new_h3, "test_id2"))
+ || !TEST_true(ENGINE_set_name(new_h3, "Third test item"))
+ || !TEST_ptr(new_h4 = ENGINE_new())
+ || !TEST_true(ENGINE_set_id(new_h4, "test_id3"))
+ || !TEST_true(ENGINE_set_name(new_h4, "Fourth test item")))
+ goto end;
+ TEST_info("Engines:");
+ display_engine_list();
+
+ if (!TEST_true(ENGINE_add(new_h1)))
+ goto end;
+ TEST_info("Engines:");
+ display_engine_list();
+
+ ptr = ENGINE_get_first();
+ if (!TEST_true(ENGINE_remove(ptr)))
+ goto end;
+ ENGINE_free(ptr);
+ TEST_info("Engines:");
+ display_engine_list();
+
+ if (!TEST_true(ENGINE_add(new_h3))
+ || !TEST_true(ENGINE_add(new_h2)))
+ goto end;
+ TEST_info("Engines:");
+ display_engine_list();
+
+ if (!TEST_true(ENGINE_remove(new_h2)))
+ goto end;
+ TEST_info("Engines:");
+ display_engine_list();
+
+ if (!TEST_true(ENGINE_add(new_h4)))
+ goto end;
+ TEST_info("Engines:");
+ display_engine_list();
+
+ /* Should fail. */
+ if (!TEST_false(ENGINE_add(new_h3)))
+ goto end;
+ ERR_clear_error();
+
+ /* Should fail. */
+ if (!TEST_false(ENGINE_remove(new_h2)))
+ goto end;
+ ERR_clear_error();
+
+ if (!TEST_true(ENGINE_remove(new_h3)))
+ goto end;
+ TEST_info("Engines:");
+ display_engine_list();
+
+ if (!TEST_true(ENGINE_remove(new_h4)))
+ goto end;
+ TEST_info("Engines:");
+ display_engine_list();
+
+ /*
+ * At this point, we should have an empty list, unless some hardware
+ * support engine got added. However, since we don't allow the config
+ * file to be loaded and don't otherwise load any built in engines,
+ * that is unlikely. Still, we check, if for nothing else, then to
+ * notify that something is a little off (and might mean that |new_h1|
+ * wasn't unloaded when it should have)
+ */
+ if ((ptr = ENGINE_get_first()) != NULL) {
+ if (!ENGINE_remove(ptr))
+ TEST_info("Remove failed - probably no hardware support present");
+ }
+ ENGINE_free(ptr);
+ TEST_info("Engines:");
+ display_engine_list();
+
+ if (!TEST_true(ENGINE_add(new_h1))
+ || !TEST_true(ENGINE_remove(new_h1)))
+ goto end;
+
+ TEST_info("About to beef up the engine-type list");
+ for (loop = 0; loop < NUMTOADD; loop++) {
+ sprintf(buf, "id%d", loop);
+ id = OPENSSL_strdup(buf);
+ sprintf(buf, "Fake engine type %d", loop);
+ name = OPENSSL_strdup(buf);
+ if (!TEST_ptr(block[loop] = ENGINE_new())
+ || !TEST_true(ENGINE_set_id(block[loop], id))
+ || !TEST_true(ENGINE_set_name(block[loop], name)))
+ goto end;
+ }
+ for (loop = 0; loop < NUMTOADD; loop++) {
+ if (!TEST_true(ENGINE_add(block[loop]))) {
+ test_note("Adding stopped at %d, (%s,%s)",
+ loop, ENGINE_get_id(block[loop]),
+ ENGINE_get_name(block[loop]));
+ goto cleanup_loop;
+ }
+ }
+ cleanup_loop:
+ TEST_info("About to empty the engine-type list");
+ while ((ptr = ENGINE_get_first()) != NULL) {
+ if (!TEST_true(ENGINE_remove(ptr)))
+ goto end;
+ ENGINE_free(ptr);
+ }
+ for (loop = 0; loop < NUMTOADD; loop++) {
+ OPENSSL_free((void *)ENGINE_get_id(block[loop]));
+ OPENSSL_free((void *)ENGINE_get_name(block[loop]));
+ }
+ to_return = 1;
+
+ end:
+ ENGINE_free(new_h1);
+ ENGINE_free(new_h2);
+ ENGINE_free(new_h3);
+ ENGINE_free(new_h4);
+ for (loop = 0; loop < NUMTOADD; loop++)
+ ENGINE_free(block[loop]);
+ return to_return;
+}
+
+/* Test EVP_PKEY method */
+static EVP_PKEY_METHOD *test_rsa = NULL;
+
+static int called_encrypt = 0;
+
+/* Test function to check operation has been redirected */
+static int test_encrypt(EVP_PKEY_CTX *ctx, unsigned char *sig,
+ size_t *siglen, const unsigned char *tbs, size_t tbslen)
+{
+ called_encrypt = 1;
+ return 1;
+}
+
+static int test_pkey_meths(ENGINE *e, EVP_PKEY_METHOD **pmeth,
+ const int **pnids, int nid)
+{
+ static const int rnid = EVP_PKEY_RSA;
+ if (pmeth == NULL) {
+ *pnids = &rnid;
+ return 1;
+ }
+
+ if (nid == EVP_PKEY_RSA) {
+ *pmeth = test_rsa;
+ return 1;
+ }
+
+ *pmeth = NULL;
+ return 0;
+}
+
+/* Return a test EVP_PKEY value */
+
+static EVP_PKEY *get_test_pkey(void)
+{
+ static unsigned char n[] =
+ "\x00\xAA\x36\xAB\xCE\x88\xAC\xFD\xFF\x55\x52\x3C\x7F\xC4\x52\x3F"
+ "\x90\xEF\xA0\x0D\xF3\x77\x4A\x25\x9F\x2E\x62\xB4\xC5\xD9\x9C\xB5"
+ "\xAD\xB3\x00\xA0\x28\x5E\x53\x01\x93\x0E\x0C\x70\xFB\x68\x76\x93"
+ "\x9C\xE6\x16\xCE\x62\x4A\x11\xE0\x08\x6D\x34\x1E\xBC\xAC\xA0\xA1"
+ "\xF5";
+ static unsigned char e[] = "\x11";
+
+ RSA *rsa = RSA_new();
+ EVP_PKEY *pk = EVP_PKEY_new();
+
+ if (rsa == NULL || pk == NULL || !EVP_PKEY_assign_RSA(pk, rsa)) {
+ RSA_free(rsa);
+ EVP_PKEY_free(pk);
+ return NULL;
+ }
+
+ if (!RSA_set0_key(rsa, BN_bin2bn(n, sizeof(n)-1, NULL),
+ BN_bin2bn(e, sizeof(e)-1, NULL), NULL)) {
+ EVP_PKEY_free(pk);
+ return NULL;
+ }
+
+ return pk;
+}
+
+static int test_redirect(void)
+{
+ const unsigned char pt[] = "Hello World\n";
+ unsigned char *tmp = NULL;
+ size_t len;
+ EVP_PKEY_CTX *ctx = NULL;
+ ENGINE *e = NULL;
+ EVP_PKEY *pkey = NULL;
+
+ int to_return = 0;
+
+ if (!TEST_ptr(pkey = get_test_pkey()))
+ goto err;
+
+ len = EVP_PKEY_size(pkey);
+ if (!TEST_ptr(tmp = OPENSSL_malloc(len)))
+ goto err;
+
+ if (!TEST_ptr(ctx = EVP_PKEY_CTX_new(pkey, NULL)))
+ goto err;
+ TEST_info("EVP_PKEY_encrypt test: no redirection");
+ /* Encrypt some data: should succeed but not be redirected */
+ if (!TEST_int_gt(EVP_PKEY_encrypt_init(ctx), 0)
+ || !TEST_int_gt(EVP_PKEY_encrypt(ctx, tmp, &len, pt, sizeof(pt)), 0)
+ || !TEST_false(called_encrypt))
+ goto err;
+ EVP_PKEY_CTX_free(ctx);
+ ctx = NULL;
+
+ /* Create a test ENGINE */
+ if (!TEST_ptr(e = ENGINE_new())
+ || !TEST_true(ENGINE_set_id(e, "Test redirect engine"))
+ || !TEST_true(ENGINE_set_name(e, "Test redirect engine")))
+ goto err;
+
+ /*
+ * Try to create a context for this engine and test key.
+ * Try setting test key engine. Both should fail because the
+ * engine has no public key methods.
+ */
+ if (!TEST_ptr_null(EVP_PKEY_CTX_new(pkey, e))
+ || !TEST_int_le(EVP_PKEY_set1_engine(pkey, e), 0))
+ goto err;
+
+ /* Setup an empty test EVP_PKEY_METHOD and set callback to return it */
+ if (!TEST_ptr(test_rsa = EVP_PKEY_meth_new(EVP_PKEY_RSA, 0)))
+ goto err;
+ ENGINE_set_pkey_meths(e, test_pkey_meths);
+
+ /* Getting a context for test ENGINE should now succeed */
+ if (!TEST_ptr(ctx = EVP_PKEY_CTX_new(pkey, e)))
+ goto err;
+ /* Encrypt should fail because operation is not supported */
+ if (!TEST_int_le(EVP_PKEY_encrypt_init(ctx), 0))
+ goto err;
+ EVP_PKEY_CTX_free(ctx);
+ ctx = NULL;
+
+ /* Add test encrypt operation to method */
+ EVP_PKEY_meth_set_encrypt(test_rsa, 0, test_encrypt);
+
+ TEST_info("EVP_PKEY_encrypt test: redirection via EVP_PKEY_CTX_new()");
+ if (!TEST_ptr(ctx = EVP_PKEY_CTX_new(pkey, e)))
+ goto err;
+ /* Encrypt some data: should succeed and be redirected */
+ if (!TEST_int_gt(EVP_PKEY_encrypt_init(ctx), 0)
+ || !TEST_int_gt(EVP_PKEY_encrypt(ctx, tmp, &len, pt, sizeof(pt)), 0)
+ || !TEST_true(called_encrypt))
+ goto err;
+
+ EVP_PKEY_CTX_free(ctx);
+ ctx = NULL;
+ called_encrypt = 0;
+
+ /* Create context with default engine: should not be redirected */
+ if (!TEST_ptr(ctx = EVP_PKEY_CTX_new(pkey, NULL))
+ || !TEST_int_gt(EVP_PKEY_encrypt_init(ctx), 0)
+ || !TEST_int_gt(EVP_PKEY_encrypt(ctx, tmp, &len, pt, sizeof(pt)), 0)
+ || !TEST_false(called_encrypt))
+ goto err;
+
+ EVP_PKEY_CTX_free(ctx);
+ ctx = NULL;
+
+ /* Set engine explicitly for test key */
+ if (!TEST_true(EVP_PKEY_set1_engine(pkey, e)))
+ goto err;
+
+ TEST_info("EVP_PKEY_encrypt test: redirection via EVP_PKEY_set1_engine()");
+
+ /* Create context with default engine: should be redirected now */
+ if (!TEST_ptr(ctx = EVP_PKEY_CTX_new(pkey, NULL))
+ || !TEST_int_gt(EVP_PKEY_encrypt_init(ctx), 0)
+ || !TEST_int_gt(EVP_PKEY_encrypt(ctx, tmp, &len, pt, sizeof(pt)), 0)
+ || !TEST_true(called_encrypt))
+ goto err;
+
+ to_return = 1;
+
+ err:
+ EVP_PKEY_CTX_free(ctx);
+ EVP_PKEY_free(pkey);
+ ENGINE_free(e);
+ OPENSSL_free(tmp);
+ return to_return;
+}
+#endif
+
+int global_init(void)
+{
+ /*
+ * If the config file gets loaded, the dynamic engine will be loaded,
+ * and that interferes with our test above.
+ */
+ return OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL);
+}
+
+int setup_tests(void)
+{
+#ifdef OPENSSL_NO_ENGINE
+ TEST_note("No ENGINE support");
+#else
+ ADD_TEST(test_engines);
+ ADD_TEST(test_redirect);
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/errtest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/errtest.c
new file mode 100644
index 000000000..e464d08bc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/errtest.c
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <openssl/opensslconf.h>
+#include <openssl/err.h>
+
+#include "testutil.h"
+
+#if defined(OPENSSL_SYS_WINDOWS)
+# include <windows.h>
+#else
+# include <errno.h>
+#endif
+
+/* Test that querying the error queue preserves the OS error. */
+static int preserves_system_error(void)
+{
+#if defined(OPENSSL_SYS_WINDOWS)
+ SetLastError(ERROR_INVALID_FUNCTION);
+ ERR_get_error();
+ return TEST_int_eq(GetLastError(), ERROR_INVALID_FUNCTION);
+#else
+ errno = EINVAL;
+ ERR_get_error();
+ return TEST_int_eq(errno, EINVAL);
+#endif
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(preserves_system_error);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/evp_extra_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/evp_extra_test.c
new file mode 100644
index 000000000..a74f6332a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/evp_extra_test.c
@@ -0,0 +1,1213 @@
+/*
+ * Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <openssl/bio.h>
+#include <openssl/crypto.h>
+#include <openssl/err.h>
+#include <openssl/evp.h>
+#include <openssl/rsa.h>
+#include <openssl/x509.h>
+#include <openssl/pem.h>
+#include <openssl/kdf.h>
+#include <openssl/dh.h>
+#include "testutil.h"
+#include "internal/nelem.h"
+#include "crypto/evp.h"
+
+/*
+ * kExampleRSAKeyDER is an RSA private key in ASN.1, DER format. Of course, you
+ * should never use this key anywhere but in an example.
+ */
+static const unsigned char kExampleRSAKeyDER[] = {
+ 0x30, 0x82, 0x02, 0x5c, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81, 0x00, 0xf8,
+ 0xb8, 0x6c, 0x83, 0xb4, 0xbc, 0xd9, 0xa8, 0x57, 0xc0, 0xa5, 0xb4, 0x59,
+ 0x76, 0x8c, 0x54, 0x1d, 0x79, 0xeb, 0x22, 0x52, 0x04, 0x7e, 0xd3, 0x37,
+ 0xeb, 0x41, 0xfd, 0x83, 0xf9, 0xf0, 0xa6, 0x85, 0x15, 0x34, 0x75, 0x71,
+ 0x5a, 0x84, 0xa8, 0x3c, 0xd2, 0xef, 0x5a, 0x4e, 0xd3, 0xde, 0x97, 0x8a,
+ 0xdd, 0xff, 0xbb, 0xcf, 0x0a, 0xaa, 0x86, 0x92, 0xbe, 0xb8, 0x50, 0xe4,
+ 0xcd, 0x6f, 0x80, 0x33, 0x30, 0x76, 0x13, 0x8f, 0xca, 0x7b, 0xdc, 0xec,
+ 0x5a, 0xca, 0x63, 0xc7, 0x03, 0x25, 0xef, 0xa8, 0x8a, 0x83, 0x58, 0x76,
+ 0x20, 0xfa, 0x16, 0x77, 0xd7, 0x79, 0x92, 0x63, 0x01, 0x48, 0x1a, 0xd8,
+ 0x7b, 0x67, 0xf1, 0x52, 0x55, 0x49, 0x4e, 0xd6, 0x6e, 0x4a, 0x5c, 0xd7,
+ 0x7a, 0x37, 0x36, 0x0c, 0xde, 0xdd, 0x8f, 0x44, 0xe8, 0xc2, 0xa7, 0x2c,
+ 0x2b, 0xb5, 0xaf, 0x64, 0x4b, 0x61, 0x07, 0x02, 0x03, 0x01, 0x00, 0x01,
+ 0x02, 0x81, 0x80, 0x74, 0x88, 0x64, 0x3f, 0x69, 0x45, 0x3a, 0x6d, 0xc7,
+ 0x7f, 0xb9, 0xa3, 0xc0, 0x6e, 0xec, 0xdc, 0xd4, 0x5a, 0xb5, 0x32, 0x85,
+ 0x5f, 0x19, 0xd4, 0xf8, 0xd4, 0x3f, 0x3c, 0xfa, 0xc2, 0xf6, 0x5f, 0xee,
+ 0xe6, 0xba, 0x87, 0x74, 0x2e, 0xc7, 0x0c, 0xd4, 0x42, 0xb8, 0x66, 0x85,
+ 0x9c, 0x7b, 0x24, 0x61, 0xaa, 0x16, 0x11, 0xf6, 0xb5, 0xb6, 0xa4, 0x0a,
+ 0xc9, 0x55, 0x2e, 0x81, 0xa5, 0x47, 0x61, 0xcb, 0x25, 0x8f, 0xc2, 0x15,
+ 0x7b, 0x0e, 0x7c, 0x36, 0x9f, 0x3a, 0xda, 0x58, 0x86, 0x1c, 0x5b, 0x83,
+ 0x79, 0xe6, 0x2b, 0xcc, 0xe6, 0xfa, 0x2c, 0x61, 0xf2, 0x78, 0x80, 0x1b,
+ 0xe2, 0xf3, 0x9d, 0x39, 0x2b, 0x65, 0x57, 0x91, 0x3d, 0x71, 0x99, 0x73,
+ 0xa5, 0xc2, 0x79, 0x20, 0x8c, 0x07, 0x4f, 0xe5, 0xb4, 0x60, 0x1f, 0x99,
+ 0xa2, 0xb1, 0x4f, 0x0c, 0xef, 0xbc, 0x59, 0x53, 0x00, 0x7d, 0xb1, 0x02,
+ 0x41, 0x00, 0xfc, 0x7e, 0x23, 0x65, 0x70, 0xf8, 0xce, 0xd3, 0x40, 0x41,
+ 0x80, 0x6a, 0x1d, 0x01, 0xd6, 0x01, 0xff, 0xb6, 0x1b, 0x3d, 0x3d, 0x59,
+ 0x09, 0x33, 0x79, 0xc0, 0x4f, 0xde, 0x96, 0x27, 0x4b, 0x18, 0xc6, 0xd9,
+ 0x78, 0xf1, 0xf4, 0x35, 0x46, 0xe9, 0x7c, 0x42, 0x7a, 0x5d, 0x9f, 0xef,
+ 0x54, 0xb8, 0xf7, 0x9f, 0xc4, 0x33, 0x6c, 0xf3, 0x8c, 0x32, 0x46, 0x87,
+ 0x67, 0x30, 0x7b, 0xa7, 0xac, 0xe3, 0x02, 0x41, 0x00, 0xfc, 0x2c, 0xdf,
+ 0x0c, 0x0d, 0x88, 0xf5, 0xb1, 0x92, 0xa8, 0x93, 0x47, 0x63, 0x55, 0xf5,
+ 0xca, 0x58, 0x43, 0xba, 0x1c, 0xe5, 0x9e, 0xb6, 0x95, 0x05, 0xcd, 0xb5,
+ 0x82, 0xdf, 0xeb, 0x04, 0x53, 0x9d, 0xbd, 0xc2, 0x38, 0x16, 0xb3, 0x62,
+ 0xdd, 0xa1, 0x46, 0xdb, 0x6d, 0x97, 0x93, 0x9f, 0x8a, 0xc3, 0x9b, 0x64,
+ 0x7e, 0x42, 0xe3, 0x32, 0x57, 0x19, 0x1b, 0xd5, 0x6e, 0x85, 0xfa, 0xb8,
+ 0x8d, 0x02, 0x41, 0x00, 0xbc, 0x3d, 0xde, 0x6d, 0xd6, 0x97, 0xe8, 0xba,
+ 0x9e, 0x81, 0x37, 0x17, 0xe5, 0xa0, 0x64, 0xc9, 0x00, 0xb7, 0xe7, 0xfe,
+ 0xf4, 0x29, 0xd9, 0x2e, 0x43, 0x6b, 0x19, 0x20, 0xbd, 0x99, 0x75, 0xe7,
+ 0x76, 0xf8, 0xd3, 0xae, 0xaf, 0x7e, 0xb8, 0xeb, 0x81, 0xf4, 0x9d, 0xfe,
+ 0x07, 0x2b, 0x0b, 0x63, 0x0b, 0x5a, 0x55, 0x90, 0x71, 0x7d, 0xf1, 0xdb,
+ 0xd9, 0xb1, 0x41, 0x41, 0x68, 0x2f, 0x4e, 0x39, 0x02, 0x40, 0x5a, 0x34,
+ 0x66, 0xd8, 0xf5, 0xe2, 0x7f, 0x18, 0xb5, 0x00, 0x6e, 0x26, 0x84, 0x27,
+ 0x14, 0x93, 0xfb, 0xfc, 0xc6, 0x0f, 0x5e, 0x27, 0xe6, 0xe1, 0xe9, 0xc0,
+ 0x8a, 0xe4, 0x34, 0xda, 0xe9, 0xa2, 0x4b, 0x73, 0xbc, 0x8c, 0xb9, 0xba,
+ 0x13, 0x6c, 0x7a, 0x2b, 0x51, 0x84, 0xa3, 0x4a, 0xe0, 0x30, 0x10, 0x06,
+ 0x7e, 0xed, 0x17, 0x5a, 0x14, 0x00, 0xc9, 0xef, 0x85, 0xea, 0x52, 0x2c,
+ 0xbc, 0x65, 0x02, 0x40, 0x51, 0xe3, 0xf2, 0x83, 0x19, 0x9b, 0xc4, 0x1e,
+ 0x2f, 0x50, 0x3d, 0xdf, 0x5a, 0xa2, 0x18, 0xca, 0x5f, 0x2e, 0x49, 0xaf,
+ 0x6f, 0xcc, 0xfa, 0x65, 0x77, 0x94, 0xb5, 0xa1, 0x0a, 0xa9, 0xd1, 0x8a,
+ 0x39, 0x37, 0xf4, 0x0b, 0xa0, 0xd7, 0x82, 0x27, 0x5e, 0xae, 0x17, 0x17,
+ 0xa1, 0x1e, 0x54, 0x34, 0xbf, 0x6e, 0xc4, 0x8e, 0x99, 0x5d, 0x08, 0xf1,
+ 0x2d, 0x86, 0x9d, 0xa5, 0x20, 0x1b, 0xe5, 0xdf,
+};
+
+/*
+ * kExampleBadRSAKeyDER is an RSA private key in ASN.1, DER format. The private
+ * components are not correct.
+ */
+static const unsigned char kExampleBadRSAKeyDER[] = {
+ 0x30, 0x82, 0x04, 0x27, 0x02, 0x01, 0x00, 0x02, 0x82, 0x01, 0x01, 0x00,
+ 0xa6, 0x1a, 0x1e, 0x6e, 0x7b, 0xee, 0xc6, 0x89, 0x66, 0xe7, 0x93, 0xef,
+ 0x54, 0x12, 0x68, 0xea, 0xbf, 0x86, 0x2f, 0xdd, 0xd2, 0x79, 0xb8, 0xa9,
+ 0x6e, 0x03, 0xc2, 0xa3, 0xb9, 0xa3, 0xe1, 0x4b, 0x2a, 0xb3, 0xf8, 0xb4,
+ 0xcd, 0xea, 0xbe, 0x24, 0xa6, 0x57, 0x5b, 0x83, 0x1f, 0x0f, 0xf2, 0xd3,
+ 0xb7, 0xac, 0x7e, 0xd6, 0x8e, 0x6e, 0x1e, 0xbf, 0xb8, 0x73, 0x8c, 0x05,
+ 0x56, 0xe6, 0x35, 0x1f, 0xe9, 0x04, 0x0b, 0x09, 0x86, 0x7d, 0xf1, 0x26,
+ 0x08, 0x99, 0xad, 0x7b, 0xc8, 0x4d, 0x94, 0xb0, 0x0b, 0x8b, 0x38, 0xa0,
+ 0x5c, 0x62, 0xa0, 0xab, 0xd3, 0x8f, 0xd4, 0x09, 0x60, 0x72, 0x1e, 0x33,
+ 0x50, 0x80, 0x6e, 0x22, 0xa6, 0x77, 0x57, 0x6b, 0x9a, 0x33, 0x21, 0x66,
+ 0x87, 0x6e, 0x21, 0x7b, 0xc7, 0x24, 0x0e, 0xd8, 0x13, 0xdf, 0x83, 0xde,
+ 0xcd, 0x40, 0x58, 0x1d, 0x84, 0x86, 0xeb, 0xb8, 0x12, 0x4e, 0xd2, 0xfa,
+ 0x80, 0x1f, 0xe4, 0xe7, 0x96, 0x29, 0xb8, 0xcc, 0xce, 0x66, 0x6d, 0x53,
+ 0xca, 0xb9, 0x5a, 0xd7, 0xf6, 0x84, 0x6c, 0x2d, 0x9a, 0x1a, 0x14, 0x1c,
+ 0x4e, 0x93, 0x39, 0xba, 0x74, 0xed, 0xed, 0x87, 0x87, 0x5e, 0x48, 0x75,
+ 0x36, 0xf0, 0xbc, 0x34, 0xfb, 0x29, 0xf9, 0x9f, 0x96, 0x5b, 0x0b, 0xa7,
+ 0x54, 0x30, 0x51, 0x29, 0x18, 0x5b, 0x7d, 0xac, 0x0f, 0xd6, 0x5f, 0x7c,
+ 0xf8, 0x98, 0x8c, 0xd8, 0x86, 0x62, 0xb3, 0xdc, 0xff, 0x0f, 0xff, 0x7a,
+ 0xaf, 0x5c, 0x4c, 0x61, 0x49, 0x2e, 0xc8, 0x95, 0x86, 0xc4, 0x0e, 0x87,
+ 0xfc, 0x1d, 0xcf, 0x8b, 0x7c, 0x61, 0xf6, 0xd8, 0xd0, 0x69, 0xf6, 0xcd,
+ 0x8a, 0x8c, 0xf6, 0x62, 0xa2, 0x56, 0xa9, 0xe3, 0xd1, 0xcf, 0x4d, 0xa0,
+ 0xf6, 0x2d, 0x20, 0x0a, 0x04, 0xb7, 0xa2, 0xf7, 0xb5, 0x99, 0x47, 0x18,
+ 0x56, 0x85, 0x87, 0xc7, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x82, 0x01,
+ 0x01, 0x00, 0x99, 0x41, 0x38, 0x1a, 0xd0, 0x96, 0x7a, 0xf0, 0x83, 0xd5,
+ 0xdf, 0x94, 0xce, 0x89, 0x3d, 0xec, 0x7a, 0x52, 0x21, 0x10, 0x16, 0x06,
+ 0xe0, 0xee, 0xd2, 0xe6, 0xfd, 0x4b, 0x7b, 0x19, 0x4d, 0xe1, 0xc0, 0xc0,
+ 0xd5, 0x14, 0x5d, 0x79, 0xdd, 0x7e, 0x8b, 0x4b, 0xc6, 0xcf, 0xb0, 0x75,
+ 0x52, 0xa3, 0x2d, 0xb1, 0x26, 0x46, 0x68, 0x9c, 0x0a, 0x1a, 0xf2, 0xe1,
+ 0x09, 0xac, 0x53, 0x85, 0x8c, 0x36, 0xa9, 0x14, 0x65, 0xea, 0xa0, 0x00,
+ 0xcb, 0xe3, 0x3f, 0xc4, 0x2b, 0x61, 0x2e, 0x6b, 0x06, 0x69, 0x77, 0xfd,
+ 0x38, 0x7e, 0x1d, 0x3f, 0x92, 0xe7, 0x77, 0x08, 0x19, 0xa7, 0x9d, 0x29,
+ 0x2d, 0xdc, 0x42, 0xc6, 0x7c, 0xd7, 0xd3, 0xa8, 0x01, 0x2c, 0xf2, 0xd5,
+ 0x82, 0x57, 0xcb, 0x55, 0x3d, 0xe7, 0xaa, 0xd2, 0x06, 0x30, 0x30, 0x05,
+ 0xe6, 0xf2, 0x47, 0x86, 0xba, 0xc6, 0x61, 0x64, 0xeb, 0x4f, 0x2a, 0x5e,
+ 0x07, 0x29, 0xe0, 0x96, 0xb2, 0x43, 0xff, 0x5f, 0x1a, 0x54, 0x16, 0xcf,
+ 0xb5, 0x56, 0x5c, 0xa0, 0x9b, 0x0c, 0xfd, 0xb3, 0xd2, 0xe3, 0x79, 0x1d,
+ 0x21, 0xe2, 0xd6, 0x13, 0xc4, 0x74, 0xa6, 0xf5, 0x8e, 0x8e, 0x81, 0xbb,
+ 0xb4, 0xad, 0x8a, 0xf0, 0x93, 0x0a, 0xd8, 0x0a, 0x42, 0x36, 0xbc, 0xe5,
+ 0x26, 0x2a, 0x0d, 0x5d, 0x57, 0x13, 0xc5, 0x4e, 0x2f, 0x12, 0x0e, 0xef,
+ 0xa7, 0x81, 0x1e, 0xc3, 0xa5, 0xdb, 0xc9, 0x24, 0xeb, 0x1a, 0xa1, 0xf9,
+ 0xf6, 0xa1, 0x78, 0x98, 0x93, 0x77, 0x42, 0x45, 0x03, 0xe2, 0xc9, 0xa2,
+ 0xfe, 0x2d, 0x77, 0xc8, 0xc6, 0xac, 0x9b, 0x98, 0x89, 0x6d, 0x9a, 0xe7,
+ 0x61, 0x63, 0xb7, 0xf2, 0xec, 0xd6, 0xb1, 0xa1, 0x6e, 0x0a, 0x1a, 0xff,
+ 0xfd, 0x43, 0x28, 0xc3, 0x0c, 0xdc, 0xf2, 0x47, 0x4f, 0x27, 0xaa, 0x99,
+ 0x04, 0x8e, 0xac, 0xe8, 0x7c, 0x01, 0x02, 0x04, 0x12, 0x34, 0x56, 0x78,
+ 0x02, 0x81, 0x81, 0x00, 0xca, 0x69, 0xe5, 0xbb, 0x3a, 0x90, 0x82, 0xcb,
+ 0x82, 0x50, 0x2f, 0x29, 0xe2, 0x76, 0x6a, 0x57, 0x55, 0x45, 0x4e, 0x35,
+ 0x18, 0x61, 0xe0, 0x12, 0x70, 0xc0, 0xab, 0xc7, 0x80, 0xa2, 0xd4, 0x46,
+ 0x34, 0x03, 0xa0, 0x19, 0x26, 0x23, 0x9e, 0xef, 0x1a, 0xcb, 0x75, 0xd6,
+ 0xba, 0x81, 0xf4, 0x7e, 0x52, 0xe5, 0x2a, 0xe8, 0xf1, 0x49, 0x6c, 0x0f,
+ 0x1a, 0xa0, 0xf9, 0xc6, 0xe7, 0xec, 0x60, 0xe4, 0xcb, 0x2a, 0xb5, 0x56,
+ 0xe9, 0x9c, 0xcd, 0x19, 0x75, 0x92, 0xb1, 0x66, 0xce, 0xc3, 0xd9, 0x3d,
+ 0x11, 0xcb, 0xc4, 0x09, 0xce, 0x1e, 0x30, 0xba, 0x2f, 0x60, 0x60, 0x55,
+ 0x8d, 0x02, 0xdc, 0x5d, 0xaf, 0xf7, 0x52, 0x31, 0x17, 0x07, 0x53, 0x20,
+ 0x33, 0xad, 0x8c, 0xd5, 0x2f, 0x5a, 0xd0, 0x57, 0xd7, 0xd1, 0x80, 0xd6,
+ 0x3a, 0x9b, 0x04, 0x4f, 0x35, 0xbf, 0xe7, 0xd5, 0xbc, 0x8f, 0xd4, 0x81,
+ 0x02, 0x81, 0x81, 0x00, 0xc0, 0x9f, 0xf8, 0xcd, 0xf7, 0x3f, 0x26, 0x8a,
+ 0x3d, 0x4d, 0x2b, 0x0c, 0x01, 0xd0, 0xa2, 0xb4, 0x18, 0xfe, 0xf7, 0x5e,
+ 0x2f, 0x06, 0x13, 0xcd, 0x63, 0xaa, 0x12, 0xa9, 0x24, 0x86, 0xe3, 0xf3,
+ 0x7b, 0xda, 0x1a, 0x3c, 0xb1, 0x38, 0x80, 0x80, 0xef, 0x64, 0x64, 0xa1,
+ 0x9b, 0xfe, 0x76, 0x63, 0x8e, 0x83, 0xd2, 0xd9, 0xb9, 0x86, 0xb0, 0xe6,
+ 0xa6, 0x0c, 0x7e, 0xa8, 0x84, 0x90, 0x98, 0x0c, 0x1e, 0xf3, 0x14, 0x77,
+ 0xe0, 0x5f, 0x81, 0x08, 0x11, 0x8f, 0xa6, 0x23, 0xc4, 0xba, 0xc0, 0x8a,
+ 0xe4, 0xc6, 0xe3, 0x5c, 0xbe, 0xc5, 0xec, 0x2c, 0xb9, 0xd8, 0x8c, 0x4d,
+ 0x1a, 0x9d, 0xe7, 0x7c, 0x85, 0x4c, 0x0d, 0x71, 0x4e, 0x72, 0x33, 0x1b,
+ 0xfe, 0xa9, 0x17, 0x72, 0x76, 0x56, 0x9d, 0x74, 0x7e, 0x52, 0x67, 0x9a,
+ 0x87, 0x9a, 0xdb, 0x30, 0xde, 0xe4, 0x49, 0x28, 0x3b, 0xd2, 0x67, 0xaf,
+ 0x02, 0x81, 0x81, 0x00, 0x89, 0x74, 0x9a, 0x8e, 0xa7, 0xb9, 0xa5, 0x28,
+ 0xc0, 0x68, 0xe5, 0x6e, 0x63, 0x1c, 0x99, 0x20, 0x8f, 0x86, 0x8e, 0x12,
+ 0x9e, 0x69, 0x30, 0xfa, 0x34, 0xd9, 0x92, 0x8d, 0xdb, 0x7c, 0x37, 0xfd,
+ 0x28, 0xab, 0x61, 0x98, 0x52, 0x7f, 0x14, 0x1a, 0x39, 0xae, 0xfb, 0x6a,
+ 0x03, 0xa3, 0xe6, 0xbd, 0xb6, 0x5b, 0x6b, 0xe5, 0x5e, 0x9d, 0xc6, 0xa5,
+ 0x07, 0x27, 0x54, 0x17, 0xd0, 0x3d, 0x84, 0x9b, 0x3a, 0xa0, 0xd9, 0x1e,
+ 0x99, 0x6c, 0x63, 0x17, 0xab, 0xf1, 0x1f, 0x49, 0xba, 0x95, 0xe3, 0x3b,
+ 0x86, 0x8f, 0x42, 0xa4, 0x89, 0xf5, 0x94, 0x8f, 0x8b, 0x46, 0xbe, 0x84,
+ 0xba, 0x4a, 0xbc, 0x0d, 0x5f, 0x46, 0xeb, 0xe8, 0xec, 0x43, 0x8c, 0x1e,
+ 0xad, 0x19, 0x69, 0x2f, 0x08, 0x86, 0x7a, 0x3f, 0x7d, 0x0f, 0x07, 0x97,
+ 0xf3, 0x9a, 0x7b, 0xb5, 0xb2, 0xc1, 0x8c, 0x95, 0x68, 0x04, 0xa0, 0x81,
+ 0x02, 0x81, 0x80, 0x4e, 0xbf, 0x7e, 0x1b, 0xcb, 0x13, 0x61, 0x75, 0x3b,
+ 0xdb, 0x59, 0x5f, 0xb1, 0xd4, 0xb8, 0xeb, 0x9e, 0x73, 0xb5, 0xe7, 0xf6,
+ 0x89, 0x3d, 0x1c, 0xda, 0xf0, 0x36, 0xff, 0x35, 0xbd, 0x1e, 0x0b, 0x74,
+ 0xe3, 0x9e, 0xf0, 0xf2, 0xf7, 0xd7, 0x82, 0xb7, 0x7b, 0x6a, 0x1b, 0x0e,
+ 0x30, 0x4a, 0x98, 0x0e, 0xb4, 0xf9, 0x81, 0x07, 0xe4, 0x75, 0x39, 0xe9,
+ 0x53, 0xca, 0xbb, 0x5c, 0xaa, 0x93, 0x07, 0x0e, 0xa8, 0x2f, 0xba, 0x98,
+ 0x49, 0x30, 0xa7, 0xcc, 0x1a, 0x3c, 0x68, 0x0c, 0xe1, 0xa4, 0xb1, 0x05,
+ 0xe6, 0xe0, 0x25, 0x78, 0x58, 0x14, 0x37, 0xf5, 0x1f, 0xe3, 0x22, 0xef,
+ 0xa8, 0x0e, 0x22, 0xa0, 0x94, 0x3a, 0xf6, 0xc9, 0x13, 0xe6, 0x06, 0xbf,
+ 0x7f, 0x99, 0xc6, 0xcc, 0xd8, 0xc6, 0xbe, 0xd9, 0x2e, 0x24, 0xc7, 0x69,
+ 0x8c, 0x95, 0xba, 0xf6, 0x04, 0xb3, 0x0a, 0xf4, 0xcb, 0xf0, 0xce,
+};
+
+static const unsigned char kMsg[] = { 1, 2, 3, 4 };
+
+static const unsigned char kSignature[] = {
+ 0xa5, 0xf0, 0x8a, 0x47, 0x5d, 0x3c, 0xb3, 0xcc, 0xa9, 0x79, 0xaf, 0x4d,
+ 0x8c, 0xae, 0x4c, 0x14, 0xef, 0xc2, 0x0b, 0x34, 0x36, 0xde, 0xf4, 0x3e,
+ 0x3d, 0xbb, 0x4a, 0x60, 0x5c, 0xc8, 0x91, 0x28, 0xda, 0xfb, 0x7e, 0x04,
+ 0x96, 0x7e, 0x63, 0x13, 0x90, 0xce, 0xb9, 0xb4, 0x62, 0x7a, 0xfd, 0x09,
+ 0x3d, 0xc7, 0x67, 0x78, 0x54, 0x04, 0xeb, 0x52, 0x62, 0x6e, 0x24, 0x67,
+ 0xb4, 0x40, 0xfc, 0x57, 0x62, 0xc6, 0xf1, 0x67, 0xc1, 0x97, 0x8f, 0x6a,
+ 0xa8, 0xae, 0x44, 0x46, 0x5e, 0xab, 0x67, 0x17, 0x53, 0x19, 0x3a, 0xda,
+ 0x5a, 0xc8, 0x16, 0x3e, 0x86, 0xd5, 0xc5, 0x71, 0x2f, 0xfc, 0x23, 0x48,
+ 0xd9, 0x0b, 0x13, 0xdd, 0x7b, 0x5a, 0x25, 0x79, 0xef, 0xa5, 0x7b, 0x04,
+ 0xed, 0x44, 0xf6, 0x18, 0x55, 0xe4, 0x0a, 0xe9, 0x57, 0x79, 0x5d, 0xd7,
+ 0x55, 0xa7, 0xab, 0x45, 0x02, 0x97, 0x60, 0x42,
+};
+
+/*
+ * kExampleRSAKeyPKCS8 is kExampleRSAKeyDER encoded in a PKCS #8
+ * PrivateKeyInfo.
+ */
+static const unsigned char kExampleRSAKeyPKCS8[] = {
+ 0x30, 0x82, 0x02, 0x76, 0x02, 0x01, 0x00, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x04, 0x82,
+ 0x02, 0x60, 0x30, 0x82, 0x02, 0x5c, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81,
+ 0x00, 0xf8, 0xb8, 0x6c, 0x83, 0xb4, 0xbc, 0xd9, 0xa8, 0x57, 0xc0, 0xa5,
+ 0xb4, 0x59, 0x76, 0x8c, 0x54, 0x1d, 0x79, 0xeb, 0x22, 0x52, 0x04, 0x7e,
+ 0xd3, 0x37, 0xeb, 0x41, 0xfd, 0x83, 0xf9, 0xf0, 0xa6, 0x85, 0x15, 0x34,
+ 0x75, 0x71, 0x5a, 0x84, 0xa8, 0x3c, 0xd2, 0xef, 0x5a, 0x4e, 0xd3, 0xde,
+ 0x97, 0x8a, 0xdd, 0xff, 0xbb, 0xcf, 0x0a, 0xaa, 0x86, 0x92, 0xbe, 0xb8,
+ 0x50, 0xe4, 0xcd, 0x6f, 0x80, 0x33, 0x30, 0x76, 0x13, 0x8f, 0xca, 0x7b,
+ 0xdc, 0xec, 0x5a, 0xca, 0x63, 0xc7, 0x03, 0x25, 0xef, 0xa8, 0x8a, 0x83,
+ 0x58, 0x76, 0x20, 0xfa, 0x16, 0x77, 0xd7, 0x79, 0x92, 0x63, 0x01, 0x48,
+ 0x1a, 0xd8, 0x7b, 0x67, 0xf1, 0x52, 0x55, 0x49, 0x4e, 0xd6, 0x6e, 0x4a,
+ 0x5c, 0xd7, 0x7a, 0x37, 0x36, 0x0c, 0xde, 0xdd, 0x8f, 0x44, 0xe8, 0xc2,
+ 0xa7, 0x2c, 0x2b, 0xb5, 0xaf, 0x64, 0x4b, 0x61, 0x07, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0x02, 0x81, 0x80, 0x74, 0x88, 0x64, 0x3f, 0x69, 0x45, 0x3a,
+ 0x6d, 0xc7, 0x7f, 0xb9, 0xa3, 0xc0, 0x6e, 0xec, 0xdc, 0xd4, 0x5a, 0xb5,
+ 0x32, 0x85, 0x5f, 0x19, 0xd4, 0xf8, 0xd4, 0x3f, 0x3c, 0xfa, 0xc2, 0xf6,
+ 0x5f, 0xee, 0xe6, 0xba, 0x87, 0x74, 0x2e, 0xc7, 0x0c, 0xd4, 0x42, 0xb8,
+ 0x66, 0x85, 0x9c, 0x7b, 0x24, 0x61, 0xaa, 0x16, 0x11, 0xf6, 0xb5, 0xb6,
+ 0xa4, 0x0a, 0xc9, 0x55, 0x2e, 0x81, 0xa5, 0x47, 0x61, 0xcb, 0x25, 0x8f,
+ 0xc2, 0x15, 0x7b, 0x0e, 0x7c, 0x36, 0x9f, 0x3a, 0xda, 0x58, 0x86, 0x1c,
+ 0x5b, 0x83, 0x79, 0xe6, 0x2b, 0xcc, 0xe6, 0xfa, 0x2c, 0x61, 0xf2, 0x78,
+ 0x80, 0x1b, 0xe2, 0xf3, 0x9d, 0x39, 0x2b, 0x65, 0x57, 0x91, 0x3d, 0x71,
+ 0x99, 0x73, 0xa5, 0xc2, 0x79, 0x20, 0x8c, 0x07, 0x4f, 0xe5, 0xb4, 0x60,
+ 0x1f, 0x99, 0xa2, 0xb1, 0x4f, 0x0c, 0xef, 0xbc, 0x59, 0x53, 0x00, 0x7d,
+ 0xb1, 0x02, 0x41, 0x00, 0xfc, 0x7e, 0x23, 0x65, 0x70, 0xf8, 0xce, 0xd3,
+ 0x40, 0x41, 0x80, 0x6a, 0x1d, 0x01, 0xd6, 0x01, 0xff, 0xb6, 0x1b, 0x3d,
+ 0x3d, 0x59, 0x09, 0x33, 0x79, 0xc0, 0x4f, 0xde, 0x96, 0x27, 0x4b, 0x18,
+ 0xc6, 0xd9, 0x78, 0xf1, 0xf4, 0x35, 0x46, 0xe9, 0x7c, 0x42, 0x7a, 0x5d,
+ 0x9f, 0xef, 0x54, 0xb8, 0xf7, 0x9f, 0xc4, 0x33, 0x6c, 0xf3, 0x8c, 0x32,
+ 0x46, 0x87, 0x67, 0x30, 0x7b, 0xa7, 0xac, 0xe3, 0x02, 0x41, 0x00, 0xfc,
+ 0x2c, 0xdf, 0x0c, 0x0d, 0x88, 0xf5, 0xb1, 0x92, 0xa8, 0x93, 0x47, 0x63,
+ 0x55, 0xf5, 0xca, 0x58, 0x43, 0xba, 0x1c, 0xe5, 0x9e, 0xb6, 0x95, 0x05,
+ 0xcd, 0xb5, 0x82, 0xdf, 0xeb, 0x04, 0x53, 0x9d, 0xbd, 0xc2, 0x38, 0x16,
+ 0xb3, 0x62, 0xdd, 0xa1, 0x46, 0xdb, 0x6d, 0x97, 0x93, 0x9f, 0x8a, 0xc3,
+ 0x9b, 0x64, 0x7e, 0x42, 0xe3, 0x32, 0x57, 0x19, 0x1b, 0xd5, 0x6e, 0x85,
+ 0xfa, 0xb8, 0x8d, 0x02, 0x41, 0x00, 0xbc, 0x3d, 0xde, 0x6d, 0xd6, 0x97,
+ 0xe8, 0xba, 0x9e, 0x81, 0x37, 0x17, 0xe5, 0xa0, 0x64, 0xc9, 0x00, 0xb7,
+ 0xe7, 0xfe, 0xf4, 0x29, 0xd9, 0x2e, 0x43, 0x6b, 0x19, 0x20, 0xbd, 0x99,
+ 0x75, 0xe7, 0x76, 0xf8, 0xd3, 0xae, 0xaf, 0x7e, 0xb8, 0xeb, 0x81, 0xf4,
+ 0x9d, 0xfe, 0x07, 0x2b, 0x0b, 0x63, 0x0b, 0x5a, 0x55, 0x90, 0x71, 0x7d,
+ 0xf1, 0xdb, 0xd9, 0xb1, 0x41, 0x41, 0x68, 0x2f, 0x4e, 0x39, 0x02, 0x40,
+ 0x5a, 0x34, 0x66, 0xd8, 0xf5, 0xe2, 0x7f, 0x18, 0xb5, 0x00, 0x6e, 0x26,
+ 0x84, 0x27, 0x14, 0x93, 0xfb, 0xfc, 0xc6, 0x0f, 0x5e, 0x27, 0xe6, 0xe1,
+ 0xe9, 0xc0, 0x8a, 0xe4, 0x34, 0xda, 0xe9, 0xa2, 0x4b, 0x73, 0xbc, 0x8c,
+ 0xb9, 0xba, 0x13, 0x6c, 0x7a, 0x2b, 0x51, 0x84, 0xa3, 0x4a, 0xe0, 0x30,
+ 0x10, 0x06, 0x7e, 0xed, 0x17, 0x5a, 0x14, 0x00, 0xc9, 0xef, 0x85, 0xea,
+ 0x52, 0x2c, 0xbc, 0x65, 0x02, 0x40, 0x51, 0xe3, 0xf2, 0x83, 0x19, 0x9b,
+ 0xc4, 0x1e, 0x2f, 0x50, 0x3d, 0xdf, 0x5a, 0xa2, 0x18, 0xca, 0x5f, 0x2e,
+ 0x49, 0xaf, 0x6f, 0xcc, 0xfa, 0x65, 0x77, 0x94, 0xb5, 0xa1, 0x0a, 0xa9,
+ 0xd1, 0x8a, 0x39, 0x37, 0xf4, 0x0b, 0xa0, 0xd7, 0x82, 0x27, 0x5e, 0xae,
+ 0x17, 0x17, 0xa1, 0x1e, 0x54, 0x34, 0xbf, 0x6e, 0xc4, 0x8e, 0x99, 0x5d,
+ 0x08, 0xf1, 0x2d, 0x86, 0x9d, 0xa5, 0x20, 0x1b, 0xe5, 0xdf,
+};
+
+#ifndef OPENSSL_NO_EC
+/*
+ * kExampleECKeyDER is a sample EC private key encoded as an ECPrivateKey
+ * structure.
+ */
+static const unsigned char kExampleECKeyDER[] = {
+ 0x30, 0x77, 0x02, 0x01, 0x01, 0x04, 0x20, 0x07, 0x0f, 0x08, 0x72, 0x7a,
+ 0xd4, 0xa0, 0x4a, 0x9c, 0xdd, 0x59, 0xc9, 0x4d, 0x89, 0x68, 0x77, 0x08,
+ 0xb5, 0x6f, 0xc9, 0x5d, 0x30, 0x77, 0x0e, 0xe8, 0xd1, 0xc9, 0xce, 0x0a,
+ 0x8b, 0xb4, 0x6a, 0xa0, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d,
+ 0x03, 0x01, 0x07, 0xa1, 0x44, 0x03, 0x42, 0x00, 0x04, 0xe6, 0x2b, 0x69,
+ 0xe2, 0xbf, 0x65, 0x9f, 0x97, 0xbe, 0x2f, 0x1e, 0x0d, 0x94, 0x8a, 0x4c,
+ 0xd5, 0x97, 0x6b, 0xb7, 0xa9, 0x1e, 0x0d, 0x46, 0xfb, 0xdd, 0xa9, 0xa9,
+ 0x1e, 0x9d, 0xdc, 0xba, 0x5a, 0x01, 0xe7, 0xd6, 0x97, 0xa8, 0x0a, 0x18,
+ 0xf9, 0xc3, 0xc4, 0xa3, 0x1e, 0x56, 0xe2, 0x7c, 0x83, 0x48, 0xdb, 0x16,
+ 0x1a, 0x1c, 0xf5, 0x1d, 0x7e, 0xf1, 0x94, 0x2d, 0x4b, 0xcf, 0x72, 0x22,
+ 0xc1,
+};
+
+/*
+ * kExampleBadECKeyDER is a sample EC private key encoded as an ECPrivateKey
+ * structure. The private key is equal to the order and will fail to import
+ */
+static const unsigned char kExampleBadECKeyDER[] = {
+ 0x30, 0x66, 0x02, 0x01, 0x00, 0x30, 0x13, 0x06, 0x07, 0x2A, 0x86, 0x48,
+ 0xCE, 0x3D, 0x02, 0x01, 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03,
+ 0x01, 0x07, 0x04, 0x4C, 0x30, 0x4A, 0x02, 0x01, 0x01, 0x04, 0x20, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xBC, 0xE6, 0xFA, 0xAD, 0xA7, 0x17, 0x9E, 0x84, 0xF3,
+ 0xB9, 0xCA, 0xC2, 0xFC, 0x63, 0x25, 0x51, 0xA1, 0x23, 0x03, 0x21, 0x00,
+ 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xBC, 0xE6, 0xFA, 0xAD, 0xA7, 0x17, 0x9E, 0x84,
+ 0xF3, 0xB9, 0xCA, 0xC2, 0xFC, 0x63, 0x25, 0x51
+};
+
+/* prime256v1 */
+static const unsigned char kExampleECPubKeyDER[] = {
+ 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02,
+ 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03,
+ 0x42, 0x00, 0x04, 0xba, 0xeb, 0x83, 0xfb, 0x3b, 0xb2, 0xff, 0x30, 0x53,
+ 0xdb, 0xce, 0x32, 0xf2, 0xac, 0xae, 0x44, 0x0d, 0x3d, 0x13, 0x53, 0xb8,
+ 0xd1, 0x68, 0x55, 0xde, 0x44, 0x46, 0x05, 0xa6, 0xc9, 0xd2, 0x04, 0xb7,
+ 0xe3, 0xa2, 0x96, 0xc8, 0xb2, 0x5e, 0x22, 0x03, 0xd7, 0x03, 0x7a, 0x8b,
+ 0x13, 0x5c, 0x42, 0x49, 0xc2, 0xab, 0x86, 0xd6, 0xac, 0x6b, 0x93, 0x20,
+ 0x56, 0x6a, 0xc6, 0xc8, 0xa5, 0x0b, 0xe5
+};
+
+/*
+ * kExampleBadECPubKeyDER is a sample EC public key with a wrong OID
+ * 1.2.840.10045.2.2 instead of 1.2.840.10045.2.1 - EC Public Key
+ */
+static const unsigned char kExampleBadECPubKeyDER[] = {
+ 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02,
+ 0x02, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03,
+ 0x42, 0x00, 0x04, 0xba, 0xeb, 0x83, 0xfb, 0x3b, 0xb2, 0xff, 0x30, 0x53,
+ 0xdb, 0xce, 0x32, 0xf2, 0xac, 0xae, 0x44, 0x0d, 0x3d, 0x13, 0x53, 0xb8,
+ 0xd1, 0x68, 0x55, 0xde, 0x44, 0x46, 0x05, 0xa6, 0xc9, 0xd2, 0x04, 0xb7,
+ 0xe3, 0xa2, 0x96, 0xc8, 0xb2, 0x5e, 0x22, 0x03, 0xd7, 0x03, 0x7a, 0x8b,
+ 0x13, 0x5c, 0x42, 0x49, 0xc2, 0xab, 0x86, 0xd6, 0xac, 0x6b, 0x93, 0x20,
+ 0x56, 0x6a, 0xc6, 0xc8, 0xa5, 0x0b, 0xe5
+};
+
+static const unsigned char pExampleECParamDER[] = {
+ 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07
+};
+#endif
+
+typedef struct APK_DATA_st {
+ const unsigned char *kder;
+ size_t size;
+ int evptype;
+ int check;
+ int pub_check;
+ int param_check;
+ int type; /* 0 for private, 1 for public, 2 for params */
+} APK_DATA;
+
+static APK_DATA keydata[] = {
+ {kExampleRSAKeyDER, sizeof(kExampleRSAKeyDER), EVP_PKEY_RSA},
+ {kExampleRSAKeyPKCS8, sizeof(kExampleRSAKeyPKCS8), EVP_PKEY_RSA},
+#ifndef OPENSSL_NO_EC
+ {kExampleECKeyDER, sizeof(kExampleECKeyDER), EVP_PKEY_EC}
+#endif
+};
+
+static APK_DATA keycheckdata[] = {
+ {kExampleRSAKeyDER, sizeof(kExampleRSAKeyDER), EVP_PKEY_RSA, 1, -2, -2, 0},
+ {kExampleBadRSAKeyDER, sizeof(kExampleBadRSAKeyDER), EVP_PKEY_RSA,
+ 0, -2, -2, 0},
+#ifndef OPENSSL_NO_EC
+ {kExampleECKeyDER, sizeof(kExampleECKeyDER), EVP_PKEY_EC, 1, 1, 1, 0},
+ /* group is also associated in our pub key */
+ {kExampleECPubKeyDER, sizeof(kExampleECPubKeyDER), EVP_PKEY_EC, 0, 1, 1, 1},
+ {pExampleECParamDER, sizeof(pExampleECParamDER), EVP_PKEY_EC, 0, 0, 1, 2}
+#endif
+};
+
+static EVP_PKEY *load_example_rsa_key(void)
+{
+ EVP_PKEY *ret = NULL;
+ const unsigned char *derp = kExampleRSAKeyDER;
+ EVP_PKEY *pkey = NULL;
+ RSA *rsa = NULL;
+
+ if (!TEST_true(d2i_RSAPrivateKey(&rsa, &derp, sizeof(kExampleRSAKeyDER))))
+ return NULL;
+
+ if (!TEST_ptr(pkey = EVP_PKEY_new())
+ || !TEST_true(EVP_PKEY_set1_RSA(pkey, rsa)))
+ goto end;
+
+ ret = pkey;
+ pkey = NULL;
+
+end:
+ EVP_PKEY_free(pkey);
+ RSA_free(rsa);
+
+ return ret;
+}
+
+static int test_EVP_Enveloped(void)
+{
+ int ret = 0;
+ EVP_CIPHER_CTX *ctx = NULL;
+ EVP_PKEY *keypair = NULL;
+ unsigned char *kek = NULL;
+ unsigned char iv[EVP_MAX_IV_LENGTH];
+ static const unsigned char msg[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
+ int len, kek_len, ciphertext_len, plaintext_len;
+ unsigned char ciphertext[32], plaintext[16];
+ const EVP_CIPHER *type = EVP_aes_256_cbc();
+
+ if (!TEST_ptr(keypair = load_example_rsa_key())
+ || !TEST_ptr(kek = OPENSSL_zalloc(EVP_PKEY_size(keypair)))
+ || !TEST_ptr(ctx = EVP_CIPHER_CTX_new())
+ || !TEST_true(EVP_SealInit(ctx, type, &kek, &kek_len, iv,
+ &keypair, 1))
+ || !TEST_true(EVP_SealUpdate(ctx, ciphertext, &ciphertext_len,
+ msg, sizeof(msg)))
+ || !TEST_true(EVP_SealFinal(ctx, ciphertext + ciphertext_len,
+ &len)))
+ goto err;
+
+ ciphertext_len += len;
+
+ if (!TEST_true(EVP_OpenInit(ctx, type, kek, kek_len, iv, keypair))
+ || !TEST_true(EVP_OpenUpdate(ctx, plaintext, &plaintext_len,
+ ciphertext, ciphertext_len))
+ || !TEST_true(EVP_OpenFinal(ctx, plaintext + plaintext_len, &len)))
+ goto err;
+
+ plaintext_len += len;
+ if (!TEST_mem_eq(msg, sizeof(msg), plaintext, plaintext_len))
+ goto err;
+
+ ret = 1;
+err:
+ OPENSSL_free(kek);
+ EVP_PKEY_free(keypair);
+ EVP_CIPHER_CTX_free(ctx);
+ return ret;
+}
+
+
+static int test_EVP_DigestSignInit(void)
+{
+ int ret = 0;
+ EVP_PKEY *pkey = NULL;
+ unsigned char *sig = NULL;
+ size_t sig_len = 0;
+ EVP_MD_CTX *md_ctx, *md_ctx_verify = NULL;
+
+ if (!TEST_ptr(md_ctx = EVP_MD_CTX_new())
+ || !TEST_ptr(md_ctx_verify = EVP_MD_CTX_new())
+ || !TEST_ptr(pkey = load_example_rsa_key()))
+ goto out;
+
+ if (!TEST_true(EVP_DigestSignInit(md_ctx, NULL, EVP_sha256(), NULL, pkey))
+ || !TEST_true(EVP_DigestSignUpdate(md_ctx, kMsg, sizeof(kMsg))))
+ goto out;
+
+ /* Determine the size of the signature. */
+ if (!TEST_true(EVP_DigestSignFinal(md_ctx, NULL, &sig_len))
+ || !TEST_size_t_eq(sig_len, (size_t)EVP_PKEY_size(pkey)))
+ goto out;
+
+ if (!TEST_ptr(sig = OPENSSL_malloc(sig_len))
+ || !TEST_true(EVP_DigestSignFinal(md_ctx, sig, &sig_len)))
+ goto out;
+
+ /* Ensure that the signature round-trips. */
+ if (!TEST_true(EVP_DigestVerifyInit(md_ctx_verify, NULL, EVP_sha256(),
+ NULL, pkey))
+ || !TEST_true(EVP_DigestVerifyUpdate(md_ctx_verify,
+ kMsg, sizeof(kMsg)))
+ || !TEST_true(EVP_DigestVerifyFinal(md_ctx_verify, sig, sig_len)))
+ goto out;
+
+ ret = 1;
+
+ out:
+ EVP_MD_CTX_free(md_ctx);
+ EVP_MD_CTX_free(md_ctx_verify);
+ EVP_PKEY_free(pkey);
+ OPENSSL_free(sig);
+
+ return ret;
+}
+
+static int test_EVP_DigestVerifyInit(void)
+{
+ int ret = 0;
+ EVP_PKEY *pkey = NULL;
+ EVP_MD_CTX *md_ctx = NULL;
+
+ if (!TEST_ptr(md_ctx = EVP_MD_CTX_new())
+ || !TEST_ptr(pkey = load_example_rsa_key()))
+ goto out;
+
+ if (!TEST_true(EVP_DigestVerifyInit(md_ctx, NULL, EVP_sha256(), NULL, pkey))
+ || !TEST_true(EVP_DigestVerifyUpdate(md_ctx, kMsg, sizeof(kMsg)))
+ || !TEST_true(EVP_DigestVerifyFinal(md_ctx, kSignature,
+ sizeof(kSignature))))
+ goto out;
+ ret = 1;
+
+ out:
+ EVP_MD_CTX_free(md_ctx);
+ EVP_PKEY_free(pkey);
+ return ret;
+}
+
+static int test_d2i_AutoPrivateKey(int i)
+{
+ int ret = 0;
+ const unsigned char *p;
+ EVP_PKEY *pkey = NULL;
+ const APK_DATA *ak = &keydata[i];
+ const unsigned char *input = ak->kder;
+ size_t input_len = ak->size;
+ int expected_id = ak->evptype;
+
+ p = input;
+ if (!TEST_ptr(pkey = d2i_AutoPrivateKey(NULL, &p, input_len))
+ || !TEST_ptr_eq(p, input + input_len)
+ || !TEST_int_eq(EVP_PKEY_id(pkey), expected_id))
+ goto done;
+
+ ret = 1;
+
+ done:
+ EVP_PKEY_free(pkey);
+ return ret;
+}
+
+#ifndef OPENSSL_NO_EC
+
+static const unsigned char ec_public_sect163k1_validxy[] = {
+ 0x30, 0x40, 0x30, 0x10, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02,
+ 0x01, 0x06, 0x05, 0x2b, 0x81, 0x04, 0x00, 0x01, 0x03, 0x2c, 0x00, 0x04,
+ 0x02, 0x84, 0x58, 0xa6, 0xd4, 0xa0, 0x35, 0x2b, 0xae, 0xf0, 0xc0, 0x69,
+ 0x05, 0xcf, 0x2a, 0x50, 0x33, 0xf9, 0xe3, 0x92, 0x79, 0x02, 0xd1, 0x7b,
+ 0x9f, 0x22, 0x00, 0xf0, 0x3b, 0x0e, 0x5d, 0x2e, 0xb7, 0x23, 0x24, 0xf3,
+ 0x6a, 0xd8, 0x17, 0x65, 0x41, 0x2f
+};
+
+static const unsigned char ec_public_sect163k1_badx[] = {
+ 0x30, 0x40, 0x30, 0x10, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02,
+ 0x01, 0x06, 0x05, 0x2b, 0x81, 0x04, 0x00, 0x01, 0x03, 0x2c, 0x00, 0x04,
+ 0x0a, 0x84, 0x58, 0xa6, 0xd4, 0xa0, 0x35, 0x2b, 0xae, 0xf0, 0xc0, 0x69,
+ 0x05, 0xcf, 0x2a, 0x50, 0x33, 0xf9, 0xe3, 0x92, 0xb0, 0x02, 0xd1, 0x7b,
+ 0x9f, 0x22, 0x00, 0xf0, 0x3b, 0x0e, 0x5d, 0x2e, 0xb7, 0x23, 0x24, 0xf3,
+ 0x6a, 0xd8, 0x17, 0x65, 0x41, 0x2f
+};
+
+static const unsigned char ec_public_sect163k1_bady[] = {
+ 0x30, 0x40, 0x30, 0x10, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02,
+ 0x01, 0x06, 0x05, 0x2b, 0x81, 0x04, 0x00, 0x01, 0x03, 0x2c, 0x00, 0x04,
+ 0x02, 0x84, 0x58, 0xa6, 0xd4, 0xa0, 0x35, 0x2b, 0xae, 0xf0, 0xc0, 0x69,
+ 0x05, 0xcf, 0x2a, 0x50, 0x33, 0xf9, 0xe3, 0x92, 0x79, 0x0a, 0xd1, 0x7b,
+ 0x9f, 0x22, 0x00, 0xf0, 0x3b, 0x0e, 0x5d, 0x2e, 0xb7, 0x23, 0x24, 0xf3,
+ 0x6a, 0xd8, 0x17, 0x65, 0x41, 0xe6
+};
+
+static struct ec_der_pub_keys_st {
+ const unsigned char *der;
+ size_t len;
+ int valid;
+} ec_der_pub_keys[] = {
+ { ec_public_sect163k1_validxy, sizeof(ec_public_sect163k1_validxy), 1 },
+ { ec_public_sect163k1_badx, sizeof(ec_public_sect163k1_badx), 0 },
+ { ec_public_sect163k1_bady, sizeof(ec_public_sect163k1_bady), 0 },
+};
+
+/*
+ * Tests the range of the decoded EC char2 public point.
+ * See ec_GF2m_simple_oct2point().
+ */
+static int test_invalide_ec_char2_pub_range_decode(int id)
+{
+ int ret = 0;
+ BIO *bio = NULL;
+ EC_KEY *eckey = NULL;
+
+ if (!TEST_ptr(bio = BIO_new_mem_buf(ec_der_pub_keys[id].der,
+ ec_der_pub_keys[id].len)))
+ goto err;
+ eckey = d2i_EC_PUBKEY_bio(bio, NULL);
+ ret = (ec_der_pub_keys[id].valid && TEST_ptr(eckey))
+ || TEST_ptr_null(eckey);
+err:
+ EC_KEY_free(eckey);
+ BIO_free(bio);
+ return ret;
+}
+
+/* Tests loading a bad key in PKCS8 format */
+static int test_EVP_PKCS82PKEY(void)
+{
+ int ret = 0;
+ const unsigned char *derp = kExampleBadECKeyDER;
+ PKCS8_PRIV_KEY_INFO *p8inf = NULL;
+ EVP_PKEY *pkey = NULL;
+
+ if (!TEST_ptr(p8inf = d2i_PKCS8_PRIV_KEY_INFO(NULL, &derp,
+ sizeof(kExampleBadECKeyDER))))
+ goto done;
+
+ if (!TEST_ptr_eq(derp,
+ kExampleBadECKeyDER + sizeof(kExampleBadECKeyDER)))
+ goto done;
+
+ if (!TEST_ptr_null(pkey = EVP_PKCS82PKEY(p8inf)))
+ goto done;
+
+ ret = 1;
+
+ done:
+ PKCS8_PRIV_KEY_INFO_free(p8inf);
+ EVP_PKEY_free(pkey);
+
+ return ret;
+}
+#endif
+
+#ifndef OPENSSL_NO_SM2
+
+static int test_EVP_SM2_verify(void)
+{
+ /* From https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02#appendix-A */
+ const char *pubkey =
+ "-----BEGIN PUBLIC KEY-----\n"
+ "MIIBMzCB7AYHKoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEAhULWnkwETxjouSQ1\n"
+ "v2/33kVyg5FcRVF9ci7biwjx38MwRAQgeHlotPoyw/0kF4Quc7v+/y88hItoMdfg\n"
+ "7GUiizk35JgEIGPkxtOyOwyEnPhCQUhL/kj2HVmlsWugbm4S0donxSSaBEEEQh3r\n"
+ "1hti6rZ0ZDTrw8wxXjIiCzut1QvcTE5sFH/t1D0GgFEry7QsB9RzSdIVO3DE5df9\n"
+ "/L+jbqGoWEG55G4JogIhAIVC1p5MBE8Y6LkkNb9v990pdyBjBIVijVrnTufDLnm3\n"
+ "AgEBA0IABArkx3mKoPEZRxvuEYJb5GICu3nipYRElel8BP9N8lSKfAJA+I8c1OFj\n"
+ "Uqc8F7fxbwc1PlOhdtaEqf4Ma7eY6Fc=\n"
+ "-----END PUBLIC KEY-----\n";
+
+ const char *msg = "message digest";
+ const char *id = "ALICE123@YAHOO.COM";
+
+ const uint8_t signature[] = {
+ 0x30, 0x44, 0x02, 0x20,
+
+ 0x40, 0xF1, 0xEC, 0x59, 0xF7, 0x93, 0xD9, 0xF4, 0x9E, 0x09, 0xDC,
+ 0xEF, 0x49, 0x13, 0x0D, 0x41, 0x94, 0xF7, 0x9F, 0xB1, 0xEE, 0xD2,
+ 0xCA, 0xA5, 0x5B, 0xAC, 0xDB, 0x49, 0xC4, 0xE7, 0x55, 0xD1,
+
+ 0x02, 0x20,
+
+ 0x6F, 0xC6, 0xDA, 0xC3, 0x2C, 0x5D, 0x5C, 0xF1, 0x0C, 0x77, 0xDF,
+ 0xB2, 0x0F, 0x7C, 0x2E, 0xB6, 0x67, 0xA4, 0x57, 0x87, 0x2F, 0xB0,
+ 0x9E, 0xC5, 0x63, 0x27, 0xA6, 0x7E, 0xC7, 0xDE, 0xEB, 0xE7
+ };
+
+ int rc = 0;
+ BIO *bio = NULL;
+ EVP_PKEY *pkey = NULL;
+ EVP_MD_CTX *mctx = NULL;
+ EVP_PKEY_CTX *pctx = NULL;
+
+ bio = BIO_new_mem_buf(pubkey, strlen(pubkey));
+ if (!TEST_true(bio != NULL))
+ goto done;
+
+ pkey = PEM_read_bio_PUBKEY(bio, NULL, NULL, NULL);
+ if (!TEST_true(pkey != NULL))
+ goto done;
+
+ if (!TEST_true(EVP_PKEY_set_alias_type(pkey, EVP_PKEY_SM2)))
+ goto done;
+
+ if (!TEST_ptr(mctx = EVP_MD_CTX_new()))
+ goto done;
+
+ if (!TEST_ptr(pctx = EVP_PKEY_CTX_new(pkey, NULL)))
+ goto done;
+
+ if (!TEST_int_gt(EVP_PKEY_CTX_set1_id(pctx, (const uint8_t *)id,
+ strlen(id)), 0))
+ goto done;
+
+ EVP_MD_CTX_set_pkey_ctx(mctx, pctx);
+
+ if (!TEST_true(EVP_DigestVerifyInit(mctx, NULL, EVP_sm3(), NULL, pkey)))
+ goto done;
+
+ if (!TEST_true(EVP_DigestVerifyUpdate(mctx, msg, strlen(msg))))
+ goto done;
+
+ if (!TEST_true(EVP_DigestVerifyFinal(mctx, signature, sizeof(signature))))
+ goto done;
+ rc = 1;
+
+ done:
+ BIO_free(bio);
+ EVP_PKEY_free(pkey);
+ EVP_PKEY_CTX_free(pctx);
+ EVP_MD_CTX_free(mctx);
+ return rc;
+}
+
+static int test_EVP_SM2(void)
+{
+ int ret = 0;
+ EVP_PKEY *pkey = NULL;
+ EVP_PKEY *params = NULL;
+ EVP_PKEY_CTX *pctx = NULL;
+ EVP_PKEY_CTX *kctx = NULL;
+ EVP_PKEY_CTX *sctx = NULL;
+ size_t sig_len = 0;
+ unsigned char *sig = NULL;
+ EVP_MD_CTX *md_ctx = NULL;
+ EVP_MD_CTX *md_ctx_verify = NULL;
+ EVP_PKEY_CTX *cctx = NULL;
+
+ uint8_t ciphertext[128];
+ size_t ctext_len = sizeof(ciphertext);
+
+ uint8_t plaintext[8];
+ size_t ptext_len = sizeof(plaintext);
+
+ uint8_t sm2_id[] = {1, 2, 3, 4, 'l', 'e', 't', 't', 'e', 'r'};
+
+ pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_EC, NULL);
+ if (!TEST_ptr(pctx))
+ goto done;
+
+ if (!TEST_true(EVP_PKEY_paramgen_init(pctx) == 1))
+ goto done;
+
+ if (!TEST_true(EVP_PKEY_CTX_set_ec_paramgen_curve_nid(pctx, NID_sm2)))
+ goto done;
+
+ if (!TEST_true(EVP_PKEY_paramgen(pctx, &params)))
+ goto done;
+
+ kctx = EVP_PKEY_CTX_new(params, NULL);
+ if (!TEST_ptr(kctx))
+ goto done;
+
+ if (!TEST_true(EVP_PKEY_keygen_init(kctx)))
+ goto done;
+
+ if (!TEST_true(EVP_PKEY_keygen(kctx, &pkey)))
+ goto done;
+
+ if (!TEST_true(EVP_PKEY_set_alias_type(pkey, EVP_PKEY_SM2)))
+ goto done;
+
+ if (!TEST_ptr(md_ctx = EVP_MD_CTX_new()))
+ goto done;
+
+ if (!TEST_ptr(md_ctx_verify = EVP_MD_CTX_new()))
+ goto done;
+
+ if (!TEST_ptr(sctx = EVP_PKEY_CTX_new(pkey, NULL)))
+ goto done;
+
+ EVP_MD_CTX_set_pkey_ctx(md_ctx, sctx);
+ EVP_MD_CTX_set_pkey_ctx(md_ctx_verify, sctx);
+
+ if (!TEST_int_gt(EVP_PKEY_CTX_set1_id(sctx, sm2_id, sizeof(sm2_id)), 0))
+ goto done;
+
+ if (!TEST_true(EVP_DigestSignInit(md_ctx, NULL, EVP_sm3(), NULL, pkey)))
+ goto done;
+
+ if(!TEST_true(EVP_DigestSignUpdate(md_ctx, kMsg, sizeof(kMsg))))
+ goto done;
+
+ /* Determine the size of the signature. */
+ if (!TEST_true(EVP_DigestSignFinal(md_ctx, NULL, &sig_len)))
+ goto done;
+
+ if (!TEST_size_t_eq(sig_len, (size_t)EVP_PKEY_size(pkey)))
+ goto done;
+
+ if (!TEST_ptr(sig = OPENSSL_malloc(sig_len)))
+ goto done;
+
+ if (!TEST_true(EVP_DigestSignFinal(md_ctx, sig, &sig_len)))
+ goto done;
+
+ /* Ensure that the signature round-trips. */
+
+ if (!TEST_true(EVP_DigestVerifyInit(md_ctx_verify, NULL, EVP_sm3(), NULL, pkey)))
+ goto done;
+
+ if (!TEST_true(EVP_DigestVerifyUpdate(md_ctx_verify, kMsg, sizeof(kMsg))))
+ goto done;
+
+ if (!TEST_true(EVP_DigestVerifyFinal(md_ctx_verify, sig, sig_len)))
+ goto done;
+
+ /* now check encryption/decryption */
+
+ if (!TEST_ptr(cctx = EVP_PKEY_CTX_new(pkey, NULL)))
+ goto done;
+
+ if (!TEST_true(EVP_PKEY_encrypt_init(cctx)))
+ goto done;
+
+ if (!TEST_true(EVP_PKEY_encrypt(cctx, ciphertext, &ctext_len, kMsg, sizeof(kMsg))))
+ goto done;
+
+ if (!TEST_true(EVP_PKEY_decrypt_init(cctx)))
+ goto done;
+
+ if (!TEST_true(EVP_PKEY_decrypt(cctx, plaintext, &ptext_len, ciphertext, ctext_len)))
+ goto done;
+
+ if (!TEST_true(ptext_len == sizeof(kMsg)))
+ goto done;
+
+ if (!TEST_true(memcmp(plaintext, kMsg, sizeof(kMsg)) == 0))
+ goto done;
+
+ ret = 1;
+done:
+ EVP_PKEY_CTX_free(pctx);
+ EVP_PKEY_CTX_free(kctx);
+ EVP_PKEY_CTX_free(sctx);
+ EVP_PKEY_CTX_free(cctx);
+ EVP_PKEY_free(pkey);
+ EVP_PKEY_free(params);
+ EVP_MD_CTX_free(md_ctx);
+ EVP_MD_CTX_free(md_ctx_verify);
+ OPENSSL_free(sig);
+ return ret;
+}
+
+#endif
+
+static struct keys_st {
+ int type;
+ char *priv;
+ char *pub;
+} keys[] = {
+ {
+ EVP_PKEY_HMAC, "0123456789", NULL
+ }, {
+ EVP_PKEY_POLY1305, "01234567890123456789012345678901", NULL
+ }, {
+ EVP_PKEY_SIPHASH, "0123456789012345", NULL
+ },
+#ifndef OPENSSL_NO_EC
+ {
+ EVP_PKEY_X25519, "01234567890123456789012345678901",
+ "abcdefghijklmnopqrstuvwxyzabcdef"
+ }, {
+ EVP_PKEY_ED25519, "01234567890123456789012345678901",
+ "abcdefghijklmnopqrstuvwxyzabcdef"
+ }, {
+ EVP_PKEY_X448,
+ "01234567890123456789012345678901234567890123456789012345",
+ "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd"
+ }, {
+ EVP_PKEY_ED448,
+ "012345678901234567890123456789012345678901234567890123456",
+ "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcde"
+ }
+#endif
+};
+
+static int test_set_get_raw_keys_int(int tst, int pub)
+{
+ int ret = 0;
+ unsigned char buf[80];
+ unsigned char *in;
+ size_t inlen, len = 0;
+ EVP_PKEY *pkey;
+
+ /* Check if this algorithm supports public keys */
+ if (keys[tst].pub == NULL)
+ return 1;
+
+ memset(buf, 0, sizeof(buf));
+
+ if (pub) {
+ inlen = strlen(keys[tst].pub);
+ in = (unsigned char *)keys[tst].pub;
+ pkey = EVP_PKEY_new_raw_public_key(keys[tst].type,
+ NULL,
+ in,
+ inlen);
+ } else {
+ inlen = strlen(keys[tst].priv);
+ in = (unsigned char *)keys[tst].priv;
+ pkey = EVP_PKEY_new_raw_private_key(keys[tst].type,
+ NULL,
+ in,
+ inlen);
+ }
+
+ if (!TEST_ptr(pkey)
+ || (!pub && !TEST_true(EVP_PKEY_get_raw_private_key(pkey, NULL, &len)))
+ || (pub && !TEST_true(EVP_PKEY_get_raw_public_key(pkey, NULL, &len)))
+ || !TEST_true(len == inlen)
+ || (!pub && !TEST_true(EVP_PKEY_get_raw_private_key(pkey, buf, &len)))
+ || (pub && !TEST_true(EVP_PKEY_get_raw_public_key(pkey, buf, &len)))
+ || !TEST_mem_eq(in, inlen, buf, len))
+ goto done;
+
+ ret = 1;
+ done:
+ EVP_PKEY_free(pkey);
+ return ret;
+}
+
+static int test_set_get_raw_keys(int tst)
+{
+ return test_set_get_raw_keys_int(tst, 0)
+ && test_set_get_raw_keys_int(tst, 1);
+}
+
+static int pkey_custom_check(EVP_PKEY *pkey)
+{
+ return 0xbeef;
+}
+
+static int pkey_custom_pub_check(EVP_PKEY *pkey)
+{
+ return 0xbeef;
+}
+
+static int pkey_custom_param_check(EVP_PKEY *pkey)
+{
+ return 0xbeef;
+}
+
+static EVP_PKEY_METHOD *custom_pmeth;
+
+static int test_EVP_PKEY_check(int i)
+{
+ int ret = 0;
+ const unsigned char *p;
+ EVP_PKEY *pkey = NULL;
+#ifndef OPENSSL_NO_EC
+ EC_KEY *eckey = NULL;
+#endif
+ EVP_PKEY_CTX *ctx = NULL;
+ EVP_PKEY_CTX *ctx2 = NULL;
+ const APK_DATA *ak = &keycheckdata[i];
+ const unsigned char *input = ak->kder;
+ size_t input_len = ak->size;
+ int expected_id = ak->evptype;
+ int expected_check = ak->check;
+ int expected_pub_check = ak->pub_check;
+ int expected_param_check = ak->param_check;
+ int type = ak->type;
+ BIO *pubkey = NULL;
+
+ p = input;
+
+ switch (type) {
+ case 0:
+ if (!TEST_ptr(pkey = d2i_AutoPrivateKey(NULL, &p, input_len))
+ || !TEST_ptr_eq(p, input + input_len)
+ || !TEST_int_eq(EVP_PKEY_id(pkey), expected_id))
+ goto done;
+ break;
+#ifndef OPENSSL_NO_EC
+ case 1:
+ if (!TEST_ptr(pubkey = BIO_new_mem_buf(input, input_len))
+ || !TEST_ptr(eckey = d2i_EC_PUBKEY_bio(pubkey, NULL))
+ || !TEST_ptr(pkey = EVP_PKEY_new())
+ || !TEST_true(EVP_PKEY_assign_EC_KEY(pkey, eckey)))
+ goto done;
+ break;
+ case 2:
+ if (!TEST_ptr(eckey = d2i_ECParameters(NULL, &p, input_len))
+ || !TEST_ptr_eq(p, input + input_len)
+ || !TEST_ptr(pkey = EVP_PKEY_new())
+ || !TEST_true(EVP_PKEY_assign_EC_KEY(pkey, eckey)))
+ goto done;
+ break;
+#endif
+ default:
+ return 0;
+ }
+
+ if (!TEST_ptr(ctx = EVP_PKEY_CTX_new(pkey, NULL)))
+ goto done;
+
+ if (!TEST_int_eq(EVP_PKEY_check(ctx), expected_check))
+ goto done;
+
+ if (!TEST_int_eq(EVP_PKEY_public_check(ctx), expected_pub_check))
+ goto done;
+
+ if (!TEST_int_eq(EVP_PKEY_param_check(ctx), expected_param_check))
+ goto done;
+
+ ctx2 = EVP_PKEY_CTX_new_id(0xdefaced, NULL);
+ /* assign the pkey directly, as an internal test */
+ EVP_PKEY_up_ref(pkey);
+ ctx2->pkey = pkey;
+
+ if (!TEST_int_eq(EVP_PKEY_check(ctx2), 0xbeef))
+ goto done;
+
+ if (!TEST_int_eq(EVP_PKEY_public_check(ctx2), 0xbeef))
+ goto done;
+
+ if (!TEST_int_eq(EVP_PKEY_param_check(ctx2), 0xbeef))
+ goto done;
+
+ ret = 1;
+
+ done:
+ EVP_PKEY_CTX_free(ctx);
+ EVP_PKEY_CTX_free(ctx2);
+ EVP_PKEY_free(pkey);
+ BIO_free(pubkey);
+ return ret;
+}
+
+static int test_HKDF(void)
+{
+ EVP_PKEY_CTX *pctx;
+ unsigned char out[20];
+ size_t outlen;
+ int i, ret = 0;
+ unsigned char salt[] = "0123456789";
+ unsigned char key[] = "012345678901234567890123456789";
+ unsigned char info[] = "infostring";
+ const unsigned char expected[] = {
+ 0xe5, 0x07, 0x70, 0x7f, 0xc6, 0x78, 0xd6, 0x54, 0x32, 0x5f, 0x7e, 0xc5,
+ 0x7b, 0x59, 0x3e, 0xd8, 0x03, 0x6b, 0xed, 0xca
+ };
+ size_t expectedlen = sizeof(expected);
+
+ if (!TEST_ptr(pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_HKDF, NULL)))
+ goto done;
+
+ /* We do this twice to test reuse of the EVP_PKEY_CTX */
+ for (i = 0; i < 2; i++) {
+ outlen = sizeof(out);
+ memset(out, 0, outlen);
+
+ if (!TEST_int_gt(EVP_PKEY_derive_init(pctx), 0)
+ || !TEST_int_gt(EVP_PKEY_CTX_set_hkdf_md(pctx, EVP_sha256()), 0)
+ || !TEST_int_gt(EVP_PKEY_CTX_set1_hkdf_salt(pctx, salt,
+ sizeof(salt) - 1), 0)
+ || !TEST_int_gt(EVP_PKEY_CTX_set1_hkdf_key(pctx, key,
+ sizeof(key) - 1), 0)
+ || !TEST_int_gt(EVP_PKEY_CTX_add1_hkdf_info(pctx, info,
+ sizeof(info) - 1), 0)
+ || !TEST_int_gt(EVP_PKEY_derive(pctx, out, &outlen), 0)
+ || !TEST_mem_eq(out, outlen, expected, expectedlen))
+ goto done;
+ }
+
+ ret = 1;
+
+ done:
+ EVP_PKEY_CTX_free(pctx);
+
+ return ret;
+}
+
+#ifndef OPENSSL_NO_EC
+static int test_X509_PUBKEY_inplace(void)
+{
+ int ret = 0;
+ X509_PUBKEY *xp = NULL;
+ const unsigned char *p = kExampleECPubKeyDER;
+ size_t input_len = sizeof(kExampleECPubKeyDER);
+
+ if (!TEST_ptr(xp = d2i_X509_PUBKEY(NULL, &p, input_len)))
+ goto done;
+
+ if (!TEST_ptr(X509_PUBKEY_get0(xp)))
+ goto done;
+
+ p = kExampleBadECPubKeyDER;
+ input_len = sizeof(kExampleBadECPubKeyDER);
+
+ if (!TEST_ptr(xp = d2i_X509_PUBKEY(&xp, &p, input_len)))
+ goto done;
+
+ if (!TEST_true(X509_PUBKEY_get0(xp) == NULL))
+ goto done;
+
+ ret = 1;
+
+done:
+ X509_PUBKEY_free(xp);
+ return ret;
+}
+#endif
+
+#if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305)
+static int test_decrypt_null_chunks(void)
+{
+ EVP_CIPHER_CTX* ctx = NULL;
+ const unsigned char key[32] = {
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b,
+ 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1
+ };
+ unsigned char iv[12] = {
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b
+ };
+ unsigned char msg[] = "It was the best of times, it was the worst of times";
+ unsigned char ciphertext[80];
+ unsigned char plaintext[80];
+ /* We initialise tmp to a non zero value on purpose */
+ int ctlen, ptlen, tmp = 99;
+ int ret = 0;
+ const int enc_offset = 10, dec_offset = 20;
+
+ if (!TEST_ptr(ctx = EVP_CIPHER_CTX_new())
+ || !TEST_true(EVP_EncryptInit_ex(ctx, EVP_chacha20_poly1305(), NULL,
+ key, iv))
+ || !TEST_true(EVP_EncryptUpdate(ctx, ciphertext, &ctlen, msg,
+ enc_offset))
+ /* Deliberate add a zero length update */
+ || !TEST_true(EVP_EncryptUpdate(ctx, ciphertext + ctlen, &tmp, NULL,
+ 0))
+ || !TEST_int_eq(tmp, 0)
+ || !TEST_true(EVP_EncryptUpdate(ctx, ciphertext + ctlen, &tmp,
+ msg + enc_offset,
+ sizeof(msg) - enc_offset))
+ || !TEST_int_eq(ctlen += tmp, sizeof(msg))
+ || !TEST_true(EVP_EncryptFinal(ctx, ciphertext + ctlen, &tmp))
+ || !TEST_int_eq(tmp, 0))
+ goto err;
+
+ /* Deliberately initialise tmp to a non zero value */
+ tmp = 99;
+ if (!TEST_true(EVP_DecryptInit_ex(ctx, EVP_chacha20_poly1305(), NULL, key,
+ iv))
+ || !TEST_true(EVP_DecryptUpdate(ctx, plaintext, &ptlen, ciphertext,
+ dec_offset))
+ /*
+ * Deliberately add a zero length update. We also deliberately do
+ * this at a different offset than for encryption.
+ */
+ || !TEST_true(EVP_DecryptUpdate(ctx, plaintext + ptlen, &tmp, NULL,
+ 0))
+ || !TEST_int_eq(tmp, 0)
+ || !TEST_true(EVP_DecryptUpdate(ctx, plaintext + ptlen, &tmp,
+ ciphertext + dec_offset,
+ ctlen - dec_offset))
+ || !TEST_int_eq(ptlen += tmp, sizeof(msg))
+ || !TEST_true(EVP_DecryptFinal(ctx, plaintext + ptlen, &tmp))
+ || !TEST_int_eq(tmp, 0)
+ || !TEST_mem_eq(msg, sizeof(msg), plaintext, ptlen))
+ goto err;
+
+ ret = 1;
+ err:
+ EVP_CIPHER_CTX_free(ctx);
+ return ret;
+}
+#endif /* !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305) */
+
+#ifndef OPENSSL_NO_DH
+static int test_EVP_PKEY_set1_DH(void)
+{
+ DH *x942dh, *pkcs3dh;
+ EVP_PKEY *pkey1, *pkey2;
+ int ret = 0;
+
+ x942dh = DH_get_2048_256();
+ pkcs3dh = DH_new_by_nid(NID_ffdhe2048);
+ pkey1 = EVP_PKEY_new();
+ pkey2 = EVP_PKEY_new();
+ if (!TEST_ptr(x942dh)
+ || !TEST_ptr(pkcs3dh)
+ || !TEST_ptr(pkey1)
+ || !TEST_ptr(pkey2))
+ goto err;
+
+ if(!TEST_true(EVP_PKEY_set1_DH(pkey1, x942dh))
+ || !TEST_int_eq(EVP_PKEY_id(pkey1), EVP_PKEY_DHX))
+ goto err;
+
+
+ if(!TEST_true(EVP_PKEY_set1_DH(pkey2, pkcs3dh))
+ || !TEST_int_eq(EVP_PKEY_id(pkey2), EVP_PKEY_DH))
+ goto err;
+
+ ret = 1;
+ err:
+ EVP_PKEY_free(pkey1);
+ EVP_PKEY_free(pkey2);
+ DH_free(x942dh);
+ DH_free(pkcs3dh);
+
+ return ret;
+}
+#endif
+
+int setup_tests(void)
+{
+ ADD_TEST(test_EVP_DigestSignInit);
+ ADD_TEST(test_EVP_DigestVerifyInit);
+ ADD_TEST(test_EVP_Enveloped);
+ ADD_ALL_TESTS(test_d2i_AutoPrivateKey, OSSL_NELEM(keydata));
+#ifndef OPENSSL_NO_EC
+ ADD_TEST(test_EVP_PKCS82PKEY);
+#endif
+#ifndef OPENSSL_NO_SM2
+ ADD_TEST(test_EVP_SM2);
+ ADD_TEST(test_EVP_SM2_verify);
+#endif
+ ADD_ALL_TESTS(test_set_get_raw_keys, OSSL_NELEM(keys));
+ custom_pmeth = EVP_PKEY_meth_new(0xdefaced, 0);
+ if (!TEST_ptr(custom_pmeth))
+ return 0;
+ EVP_PKEY_meth_set_check(custom_pmeth, pkey_custom_check);
+ EVP_PKEY_meth_set_public_check(custom_pmeth, pkey_custom_pub_check);
+ EVP_PKEY_meth_set_param_check(custom_pmeth, pkey_custom_param_check);
+ if (!TEST_int_eq(EVP_PKEY_meth_add0(custom_pmeth), 1))
+ return 0;
+ ADD_ALL_TESTS(test_EVP_PKEY_check, OSSL_NELEM(keycheckdata));
+ ADD_TEST(test_HKDF);
+#ifndef OPENSSL_NO_EC
+ ADD_TEST(test_X509_PUBKEY_inplace);
+ ADD_ALL_TESTS(test_invalide_ec_char2_pub_range_decode,
+ OSSL_NELEM(ec_der_pub_keys));
+#endif
+#if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305)
+ ADD_TEST(test_decrypt_null_chunks);
+#endif
+#ifndef OPENSSL_NO_DH
+ ADD_TEST(test_EVP_PKEY_set1_DH);
+#endif
+
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/evp_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/evp_test.c
new file mode 100644
index 000000000..abb51384e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/evp_test.c
@@ -0,0 +1,2728 @@
+/*
+ * Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <openssl/evp.h>
+#include <openssl/pem.h>
+#include <openssl/err.h>
+#include <openssl/x509v3.h>
+#include <openssl/pkcs12.h>
+#include <openssl/kdf.h>
+#include "internal/numbers.h"
+#include "testutil.h"
+#include "evp_test.h"
+
+
+typedef struct evp_test_method_st EVP_TEST_METHOD;
+
+/*
+ * Structure holding test information
+ */
+typedef struct evp_test_st {
+ STANZA s; /* Common test stanza */
+ char *name;
+ int skip; /* Current test should be skipped */
+ const EVP_TEST_METHOD *meth; /* method for this test */
+ const char *err, *aux_err; /* Error string for test */
+ char *expected_err; /* Expected error value of test */
+ char *func; /* Expected error function string */
+ char *reason; /* Expected error reason string */
+ void *data; /* test specific data */
+} EVP_TEST;
+
+/*
+ * Test method structure
+ */
+struct evp_test_method_st {
+ /* Name of test as it appears in file */
+ const char *name;
+ /* Initialise test for "alg" */
+ int (*init) (EVP_TEST * t, const char *alg);
+ /* Clean up method */
+ void (*cleanup) (EVP_TEST * t);
+ /* Test specific name value pair processing */
+ int (*parse) (EVP_TEST * t, const char *name, const char *value);
+ /* Run the test itself */
+ int (*run_test) (EVP_TEST * t);
+};
+
+
+/*
+ * Linked list of named keys.
+ */
+typedef struct key_list_st {
+ char *name;
+ EVP_PKEY *key;
+ struct key_list_st *next;
+} KEY_LIST;
+
+/*
+ * List of public and private keys
+ */
+static KEY_LIST *private_keys;
+static KEY_LIST *public_keys;
+static int find_key(EVP_PKEY **ppk, const char *name, KEY_LIST *lst);
+
+static int parse_bin(const char *value, unsigned char **buf, size_t *buflen);
+
+/*
+ * Compare two memory regions for equality, returning zero if they differ.
+ * However, if there is expected to be an error and the actual error
+ * matches then the memory is expected to be different so handle this
+ * case without producing unnecessary test framework output.
+ */
+static int memory_err_compare(EVP_TEST *t, const char *err,
+ const void *expected, size_t expected_len,
+ const void *got, size_t got_len)
+{
+ int r;
+
+ if (t->expected_err != NULL && strcmp(t->expected_err, err) == 0)
+ r = !TEST_mem_ne(expected, expected_len, got, got_len);
+ else
+ r = TEST_mem_eq(expected, expected_len, got, got_len);
+ if (!r)
+ t->err = err;
+ return r;
+}
+
+/*
+ * Structure used to hold a list of blocks of memory to test
+ * calls to "update" like functions.
+ */
+struct evp_test_buffer_st {
+ unsigned char *buf;
+ size_t buflen;
+ size_t count;
+ int count_set;
+};
+
+static void evp_test_buffer_free(EVP_TEST_BUFFER *db)
+{
+ if (db != NULL) {
+ OPENSSL_free(db->buf);
+ OPENSSL_free(db);
+ }
+}
+
+/*
+ * append buffer to a list
+ */
+static int evp_test_buffer_append(const char *value,
+ STACK_OF(EVP_TEST_BUFFER) **sk)
+{
+ EVP_TEST_BUFFER *db = NULL;
+
+ if (!TEST_ptr(db = OPENSSL_malloc(sizeof(*db))))
+ goto err;
+
+ if (!parse_bin(value, &db->buf, &db->buflen))
+ goto err;
+ db->count = 1;
+ db->count_set = 0;
+
+ if (*sk == NULL && !TEST_ptr(*sk = sk_EVP_TEST_BUFFER_new_null()))
+ goto err;
+ if (!sk_EVP_TEST_BUFFER_push(*sk, db))
+ goto err;
+
+ return 1;
+
+err:
+ evp_test_buffer_free(db);
+ return 0;
+}
+
+/*
+ * replace last buffer in list with copies of itself
+ */
+static int evp_test_buffer_ncopy(const char *value,
+ STACK_OF(EVP_TEST_BUFFER) *sk)
+{
+ EVP_TEST_BUFFER *db;
+ unsigned char *tbuf, *p;
+ size_t tbuflen;
+ int ncopy = atoi(value);
+ int i;
+
+ if (ncopy <= 0)
+ return 0;
+ if (sk == NULL || sk_EVP_TEST_BUFFER_num(sk) == 0)
+ return 0;
+ db = sk_EVP_TEST_BUFFER_value(sk, sk_EVP_TEST_BUFFER_num(sk) - 1);
+
+ tbuflen = db->buflen * ncopy;
+ if (!TEST_ptr(tbuf = OPENSSL_malloc(tbuflen)))
+ return 0;
+ for (i = 0, p = tbuf; i < ncopy; i++, p += db->buflen)
+ memcpy(p, db->buf, db->buflen);
+
+ OPENSSL_free(db->buf);
+ db->buf = tbuf;
+ db->buflen = tbuflen;
+ return 1;
+}
+
+/*
+ * set repeat count for last buffer in list
+ */
+static int evp_test_buffer_set_count(const char *value,
+ STACK_OF(EVP_TEST_BUFFER) *sk)
+{
+ EVP_TEST_BUFFER *db;
+ int count = atoi(value);
+
+ if (count <= 0)
+ return 0;
+
+ if (sk == NULL || sk_EVP_TEST_BUFFER_num(sk) == 0)
+ return 0;
+
+ db = sk_EVP_TEST_BUFFER_value(sk, sk_EVP_TEST_BUFFER_num(sk) - 1);
+ if (db->count_set != 0)
+ return 0;
+
+ db->count = (size_t)count;
+ db->count_set = 1;
+ return 1;
+}
+
+/*
+ * call "fn" with each element of the list in turn
+ */
+static int evp_test_buffer_do(STACK_OF(EVP_TEST_BUFFER) *sk,
+ int (*fn)(void *ctx,
+ const unsigned char *buf,
+ size_t buflen),
+ void *ctx)
+{
+ int i;
+
+ for (i = 0; i < sk_EVP_TEST_BUFFER_num(sk); i++) {
+ EVP_TEST_BUFFER *tb = sk_EVP_TEST_BUFFER_value(sk, i);
+ size_t j;
+
+ for (j = 0; j < tb->count; j++) {
+ if (fn(ctx, tb->buf, tb->buflen) <= 0)
+ return 0;
+ }
+ }
+ return 1;
+}
+
+/*
+ * Unescape some sequences in string literals (only \n for now).
+ * Return an allocated buffer, set |out_len|. If |input_len|
+ * is zero, get an empty buffer but set length to zero.
+ */
+static unsigned char* unescape(const char *input, size_t input_len,
+ size_t *out_len)
+{
+ unsigned char *ret, *p;
+ size_t i;
+
+ if (input_len == 0) {
+ *out_len = 0;
+ return OPENSSL_zalloc(1);
+ }
+
+ /* Escaping is non-expanding; over-allocate original size for simplicity. */
+ if (!TEST_ptr(ret = p = OPENSSL_malloc(input_len)))
+ return NULL;
+
+ for (i = 0; i < input_len; i++) {
+ if (*input == '\\') {
+ if (i == input_len - 1 || *++input != 'n') {
+ TEST_error("Bad escape sequence in file");
+ goto err;
+ }
+ *p++ = '\n';
+ i++;
+ input++;
+ } else {
+ *p++ = *input++;
+ }
+ }
+
+ *out_len = p - ret;
+ return ret;
+
+ err:
+ OPENSSL_free(ret);
+ return NULL;
+}
+
+/*
+ * For a hex string "value" convert to a binary allocated buffer.
+ * Return 1 on success or 0 on failure.
+ */
+static int parse_bin(const char *value, unsigned char **buf, size_t *buflen)
+{
+ long len;
+
+ /* Check for NULL literal */
+ if (strcmp(value, "NULL") == 0) {
+ *buf = NULL;
+ *buflen = 0;
+ return 1;
+ }
+
+ /* Check for empty value */
+ if (*value == '\0') {
+ /*
+ * Don't return NULL for zero length buffer. This is needed for
+ * some tests with empty keys: HMAC_Init_ex() expects a non-NULL key
+ * buffer even if the key length is 0, in order to detect key reset.
+ */
+ *buf = OPENSSL_malloc(1);
+ if (*buf == NULL)
+ return 0;
+ **buf = 0;
+ *buflen = 0;
+ return 1;
+ }
+
+ /* Check for string literal */
+ if (value[0] == '"') {
+ size_t vlen = strlen(++value);
+
+ if (vlen == 0 || value[vlen - 1] != '"')
+ return 0;
+ vlen--;
+ *buf = unescape(value, vlen, buflen);
+ return *buf == NULL ? 0 : 1;
+ }
+
+ /* Otherwise assume as hex literal and convert it to binary buffer */
+ if (!TEST_ptr(*buf = OPENSSL_hexstr2buf(value, &len))) {
+ TEST_info("Can't convert %s", value);
+ TEST_openssl_errors();
+ return -1;
+ }
+ /* Size of input buffer means we'll never overflow */
+ *buflen = len;
+ return 1;
+}
+
+
+/**
+*** MESSAGE DIGEST TESTS
+**/
+
+typedef struct digest_data_st {
+ /* Digest this test is for */
+ const EVP_MD *digest;
+ /* Input to digest */
+ STACK_OF(EVP_TEST_BUFFER) *input;
+ /* Expected output */
+ unsigned char *output;
+ size_t output_len;
+} DIGEST_DATA;
+
+static int digest_test_init(EVP_TEST *t, const char *alg)
+{
+ DIGEST_DATA *mdat;
+ const EVP_MD *digest;
+
+ if ((digest = EVP_get_digestbyname(alg)) == NULL) {
+ /* If alg has an OID assume disabled algorithm */
+ if (OBJ_sn2nid(alg) != NID_undef || OBJ_ln2nid(alg) != NID_undef) {
+ t->skip = 1;
+ return 1;
+ }
+ return 0;
+ }
+ if (!TEST_ptr(mdat = OPENSSL_zalloc(sizeof(*mdat))))
+ return 0;
+ t->data = mdat;
+ mdat->digest = digest;
+ return 1;
+}
+
+static void digest_test_cleanup(EVP_TEST *t)
+{
+ DIGEST_DATA *mdat = t->data;
+
+ sk_EVP_TEST_BUFFER_pop_free(mdat->input, evp_test_buffer_free);
+ OPENSSL_free(mdat->output);
+}
+
+static int digest_test_parse(EVP_TEST *t,
+ const char *keyword, const char *value)
+{
+ DIGEST_DATA *mdata = t->data;
+
+ if (strcmp(keyword, "Input") == 0)
+ return evp_test_buffer_append(value, &mdata->input);
+ if (strcmp(keyword, "Output") == 0)
+ return parse_bin(value, &mdata->output, &mdata->output_len);
+ if (strcmp(keyword, "Count") == 0)
+ return evp_test_buffer_set_count(value, mdata->input);
+ if (strcmp(keyword, "Ncopy") == 0)
+ return evp_test_buffer_ncopy(value, mdata->input);
+ return 0;
+}
+
+static int digest_update_fn(void *ctx, const unsigned char *buf, size_t buflen)
+{
+ return EVP_DigestUpdate(ctx, buf, buflen);
+}
+
+static int digest_test_run(EVP_TEST *t)
+{
+ DIGEST_DATA *expected = t->data;
+ EVP_MD_CTX *mctx;
+ unsigned char *got = NULL;
+ unsigned int got_len;
+
+ t->err = "TEST_FAILURE";
+ if (!TEST_ptr(mctx = EVP_MD_CTX_new()))
+ goto err;
+
+ got = OPENSSL_malloc(expected->output_len > EVP_MAX_MD_SIZE ?
+ expected->output_len : EVP_MAX_MD_SIZE);
+ if (!TEST_ptr(got))
+ goto err;
+
+ if (!EVP_DigestInit_ex(mctx, expected->digest, NULL)) {
+ t->err = "DIGESTINIT_ERROR";
+ goto err;
+ }
+ if (!evp_test_buffer_do(expected->input, digest_update_fn, mctx)) {
+ t->err = "DIGESTUPDATE_ERROR";
+ goto err;
+ }
+
+ if (EVP_MD_flags(expected->digest) & EVP_MD_FLAG_XOF) {
+ EVP_MD_CTX *mctx_cpy;
+ char dont[] = "touch";
+
+ if (!TEST_ptr(mctx_cpy = EVP_MD_CTX_new())) {
+ goto err;
+ }
+ if (!EVP_MD_CTX_copy(mctx_cpy, mctx)) {
+ EVP_MD_CTX_free(mctx_cpy);
+ goto err;
+ }
+ if (!EVP_DigestFinalXOF(mctx_cpy, (unsigned char *)dont, 0)) {
+ EVP_MD_CTX_free(mctx_cpy);
+ t->err = "DIGESTFINALXOF_ERROR";
+ goto err;
+ }
+ if (!TEST_str_eq(dont, "touch")) {
+ EVP_MD_CTX_free(mctx_cpy);
+ t->err = "DIGESTFINALXOF_ERROR";
+ goto err;
+ }
+ EVP_MD_CTX_free(mctx_cpy);
+
+ got_len = expected->output_len;
+ if (!EVP_DigestFinalXOF(mctx, got, got_len)) {
+ t->err = "DIGESTFINALXOF_ERROR";
+ goto err;
+ }
+ } else {
+ if (!EVP_DigestFinal(mctx, got, &got_len)) {
+ t->err = "DIGESTFINAL_ERROR";
+ goto err;
+ }
+ }
+ if (!TEST_int_eq(expected->output_len, got_len)) {
+ t->err = "DIGEST_LENGTH_MISMATCH";
+ goto err;
+ }
+ if (!memory_err_compare(t, "DIGEST_MISMATCH",
+ expected->output, expected->output_len,
+ got, got_len))
+ goto err;
+
+ t->err = NULL;
+
+ err:
+ OPENSSL_free(got);
+ EVP_MD_CTX_free(mctx);
+ return 1;
+}
+
+static const EVP_TEST_METHOD digest_test_method = {
+ "Digest",
+ digest_test_init,
+ digest_test_cleanup,
+ digest_test_parse,
+ digest_test_run
+};
+
+
+/**
+*** CIPHER TESTS
+**/
+
+typedef struct cipher_data_st {
+ const EVP_CIPHER *cipher;
+ int enc;
+ /* EVP_CIPH_GCM_MODE, EVP_CIPH_CCM_MODE or EVP_CIPH_OCB_MODE if AEAD */
+ int aead;
+ unsigned char *key;
+ size_t key_len;
+ unsigned char *iv;
+ size_t iv_len;
+ unsigned char *plaintext;
+ size_t plaintext_len;
+ unsigned char *ciphertext;
+ size_t ciphertext_len;
+ /* GCM, CCM and OCB only */
+ unsigned char *aad;
+ size_t aad_len;
+ unsigned char *tag;
+ size_t tag_len;
+ int tag_late;
+} CIPHER_DATA;
+
+static int cipher_test_init(EVP_TEST *t, const char *alg)
+{
+ const EVP_CIPHER *cipher;
+ CIPHER_DATA *cdat;
+ int m;
+
+ if ((cipher = EVP_get_cipherbyname(alg)) == NULL) {
+ /* If alg has an OID assume disabled algorithm */
+ if (OBJ_sn2nid(alg) != NID_undef || OBJ_ln2nid(alg) != NID_undef) {
+ t->skip = 1;
+ return 1;
+ }
+ return 0;
+ }
+ cdat = OPENSSL_zalloc(sizeof(*cdat));
+ cdat->cipher = cipher;
+ cdat->enc = -1;
+ m = EVP_CIPHER_mode(cipher);
+ if (m == EVP_CIPH_GCM_MODE
+ || m == EVP_CIPH_OCB_MODE
+ || m == EVP_CIPH_CCM_MODE)
+ cdat->aead = m;
+ else if (EVP_CIPHER_flags(cipher) & EVP_CIPH_FLAG_AEAD_CIPHER)
+ cdat->aead = -1;
+ else
+ cdat->aead = 0;
+
+ t->data = cdat;
+ return 1;
+}
+
+static void cipher_test_cleanup(EVP_TEST *t)
+{
+ CIPHER_DATA *cdat = t->data;
+
+ OPENSSL_free(cdat->key);
+ OPENSSL_free(cdat->iv);
+ OPENSSL_free(cdat->ciphertext);
+ OPENSSL_free(cdat->plaintext);
+ OPENSSL_free(cdat->aad);
+ OPENSSL_free(cdat->tag);
+}
+
+static int cipher_test_parse(EVP_TEST *t, const char *keyword,
+ const char *value)
+{
+ CIPHER_DATA *cdat = t->data;
+
+ if (strcmp(keyword, "Key") == 0)
+ return parse_bin(value, &cdat->key, &cdat->key_len);
+ if (strcmp(keyword, "IV") == 0)
+ return parse_bin(value, &cdat->iv, &cdat->iv_len);
+ if (strcmp(keyword, "Plaintext") == 0)
+ return parse_bin(value, &cdat->plaintext, &cdat->plaintext_len);
+ if (strcmp(keyword, "Ciphertext") == 0)
+ return parse_bin(value, &cdat->ciphertext, &cdat->ciphertext_len);
+ if (cdat->aead) {
+ if (strcmp(keyword, "AAD") == 0)
+ return parse_bin(value, &cdat->aad, &cdat->aad_len);
+ if (strcmp(keyword, "Tag") == 0)
+ return parse_bin(value, &cdat->tag, &cdat->tag_len);
+ if (strcmp(keyword, "SetTagLate") == 0) {
+ if (strcmp(value, "TRUE") == 0)
+ cdat->tag_late = 1;
+ else if (strcmp(value, "FALSE") == 0)
+ cdat->tag_late = 0;
+ else
+ return -1;
+ return 1;
+ }
+ }
+
+ if (strcmp(keyword, "Operation") == 0) {
+ if (strcmp(value, "ENCRYPT") == 0)
+ cdat->enc = 1;
+ else if (strcmp(value, "DECRYPT") == 0)
+ cdat->enc = 0;
+ else
+ return -1;
+ return 1;
+ }
+ return 0;
+}
+
+static int cipher_test_enc(EVP_TEST *t, int enc,
+ size_t out_misalign, size_t inp_misalign, int frag)
+{
+ CIPHER_DATA *expected = t->data;
+ unsigned char *in, *expected_out, *tmp = NULL;
+ size_t in_len, out_len, donelen = 0;
+ int ok = 0, tmplen, chunklen, tmpflen;
+ EVP_CIPHER_CTX *ctx = NULL;
+
+ t->err = "TEST_FAILURE";
+ if (!TEST_ptr(ctx = EVP_CIPHER_CTX_new()))
+ goto err;
+ EVP_CIPHER_CTX_set_flags(ctx, EVP_CIPHER_CTX_FLAG_WRAP_ALLOW);
+ if (enc) {
+ in = expected->plaintext;
+ in_len = expected->plaintext_len;
+ expected_out = expected->ciphertext;
+ out_len = expected->ciphertext_len;
+ } else {
+ in = expected->ciphertext;
+ in_len = expected->ciphertext_len;
+ expected_out = expected->plaintext;
+ out_len = expected->plaintext_len;
+ }
+ if (inp_misalign == (size_t)-1) {
+ /*
+ * Exercise in-place encryption
+ */
+ tmp = OPENSSL_malloc(out_misalign + in_len + 2 * EVP_MAX_BLOCK_LENGTH);
+ if (!tmp)
+ goto err;
+ in = memcpy(tmp + out_misalign, in, in_len);
+ } else {
+ inp_misalign += 16 - ((out_misalign + in_len) & 15);
+ /*
+ * 'tmp' will store both output and copy of input. We make the copy
+ * of input to specifically aligned part of 'tmp'. So we just
+ * figured out how much padding would ensure the required alignment,
+ * now we allocate extended buffer and finally copy the input just
+ * past inp_misalign in expression below. Output will be written
+ * past out_misalign...
+ */
+ tmp = OPENSSL_malloc(out_misalign + in_len + 2 * EVP_MAX_BLOCK_LENGTH +
+ inp_misalign + in_len);
+ if (!tmp)
+ goto err;
+ in = memcpy(tmp + out_misalign + in_len + 2 * EVP_MAX_BLOCK_LENGTH +
+ inp_misalign, in, in_len);
+ }
+ if (!EVP_CipherInit_ex(ctx, expected->cipher, NULL, NULL, NULL, enc)) {
+ t->err = "CIPHERINIT_ERROR";
+ goto err;
+ }
+ if (expected->iv) {
+ if (expected->aead) {
+ if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_IVLEN,
+ expected->iv_len, 0)) {
+ t->err = "INVALID_IV_LENGTH";
+ goto err;
+ }
+ } else if (expected->iv_len != (size_t)EVP_CIPHER_CTX_iv_length(ctx)) {
+ t->err = "INVALID_IV_LENGTH";
+ goto err;
+ }
+ }
+ if (expected->aead) {
+ unsigned char *tag;
+ /*
+ * If encrypting or OCB just set tag length initially, otherwise
+ * set tag length and value.
+ */
+ if (enc || expected->aead == EVP_CIPH_OCB_MODE || expected->tag_late) {
+ t->err = "TAG_LENGTH_SET_ERROR";
+ tag = NULL;
+ } else {
+ t->err = "TAG_SET_ERROR";
+ tag = expected->tag;
+ }
+ if (tag || expected->aead != EVP_CIPH_GCM_MODE) {
+ if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG,
+ expected->tag_len, tag))
+ goto err;
+ }
+ }
+
+ if (!EVP_CIPHER_CTX_set_key_length(ctx, expected->key_len)) {
+ t->err = "INVALID_KEY_LENGTH";
+ goto err;
+ }
+ if (!EVP_CipherInit_ex(ctx, NULL, NULL, expected->key, expected->iv, -1)) {
+ t->err = "KEY_SET_ERROR";
+ goto err;
+ }
+
+ if (expected->aead == EVP_CIPH_CCM_MODE) {
+ if (!EVP_CipherUpdate(ctx, NULL, &tmplen, NULL, out_len)) {
+ t->err = "CCM_PLAINTEXT_LENGTH_SET_ERROR";
+ goto err;
+ }
+ }
+ if (expected->aad) {
+ t->err = "AAD_SET_ERROR";
+ if (!frag) {
+ if (!EVP_CipherUpdate(ctx, NULL, &chunklen, expected->aad,
+ expected->aad_len))
+ goto err;
+ } else {
+ /*
+ * Supply the AAD in chunks less than the block size where possible
+ */
+ if (expected->aad_len > 0) {
+ if (!EVP_CipherUpdate(ctx, NULL, &chunklen, expected->aad, 1))
+ goto err;
+ donelen++;
+ }
+ if (expected->aad_len > 2) {
+ if (!EVP_CipherUpdate(ctx, NULL, &chunklen,
+ expected->aad + donelen,
+ expected->aad_len - 2))
+ goto err;
+ donelen += expected->aad_len - 2;
+ }
+ if (expected->aad_len > 1
+ && !EVP_CipherUpdate(ctx, NULL, &chunklen,
+ expected->aad + donelen, 1))
+ goto err;
+ }
+ }
+
+ if (!enc && (expected->aead == EVP_CIPH_OCB_MODE || expected->tag_late)) {
+ if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG,
+ expected->tag_len, expected->tag)) {
+ t->err = "TAG_SET_ERROR";
+ goto err;
+ }
+ }
+
+ EVP_CIPHER_CTX_set_padding(ctx, 0);
+ t->err = "CIPHERUPDATE_ERROR";
+ tmplen = 0;
+ if (!frag) {
+ /* We supply the data all in one go */
+ if (!EVP_CipherUpdate(ctx, tmp + out_misalign, &tmplen, in, in_len))
+ goto err;
+ } else {
+ /* Supply the data in chunks less than the block size where possible */
+ if (in_len > 0) {
+ if (!EVP_CipherUpdate(ctx, tmp + out_misalign, &chunklen, in, 1))
+ goto err;
+ tmplen += chunklen;
+ in++;
+ in_len--;
+ }
+ if (in_len > 1) {
+ if (!EVP_CipherUpdate(ctx, tmp + out_misalign + tmplen, &chunklen,
+ in, in_len - 1))
+ goto err;
+ tmplen += chunklen;
+ in += in_len - 1;
+ in_len = 1;
+ }
+ if (in_len > 0 ) {
+ if (!EVP_CipherUpdate(ctx, tmp + out_misalign + tmplen, &chunklen,
+ in, 1))
+ goto err;
+ tmplen += chunklen;
+ }
+ }
+ if (!EVP_CipherFinal_ex(ctx, tmp + out_misalign + tmplen, &tmpflen)) {
+ t->err = "CIPHERFINAL_ERROR";
+ goto err;
+ }
+ if (!memory_err_compare(t, "VALUE_MISMATCH", expected_out, out_len,
+ tmp + out_misalign, tmplen + tmpflen))
+ goto err;
+ if (enc && expected->aead) {
+ unsigned char rtag[16];
+
+ if (!TEST_size_t_le(expected->tag_len, sizeof(rtag))) {
+ t->err = "TAG_LENGTH_INTERNAL_ERROR";
+ goto err;
+ }
+ if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_GET_TAG,
+ expected->tag_len, rtag)) {
+ t->err = "TAG_RETRIEVE_ERROR";
+ goto err;
+ }
+ if (!memory_err_compare(t, "TAG_VALUE_MISMATCH",
+ expected->tag, expected->tag_len,
+ rtag, expected->tag_len))
+ goto err;
+ }
+ t->err = NULL;
+ ok = 1;
+ err:
+ OPENSSL_free(tmp);
+ EVP_CIPHER_CTX_free(ctx);
+ return ok;
+}
+
+static int cipher_test_run(EVP_TEST *t)
+{
+ CIPHER_DATA *cdat = t->data;
+ int rv, frag = 0;
+ size_t out_misalign, inp_misalign;
+
+ if (!cdat->key) {
+ t->err = "NO_KEY";
+ return 0;
+ }
+ if (!cdat->iv && EVP_CIPHER_iv_length(cdat->cipher)) {
+ /* IV is optional and usually omitted in wrap mode */
+ if (EVP_CIPHER_mode(cdat->cipher) != EVP_CIPH_WRAP_MODE) {
+ t->err = "NO_IV";
+ return 0;
+ }
+ }
+ if (cdat->aead && !cdat->tag) {
+ t->err = "NO_TAG";
+ return 0;
+ }
+ for (out_misalign = 0; out_misalign <= 1;) {
+ static char aux_err[64];
+ t->aux_err = aux_err;
+ for (inp_misalign = (size_t)-1; inp_misalign != 2; inp_misalign++) {
+ if (inp_misalign == (size_t)-1) {
+ /* kludge: inp_misalign == -1 means "exercise in-place" */
+ BIO_snprintf(aux_err, sizeof(aux_err),
+ "%s in-place, %sfragmented",
+ out_misalign ? "misaligned" : "aligned",
+ frag ? "" : "not ");
+ } else {
+ BIO_snprintf(aux_err, sizeof(aux_err),
+ "%s output and %s input, %sfragmented",
+ out_misalign ? "misaligned" : "aligned",
+ inp_misalign ? "misaligned" : "aligned",
+ frag ? "" : "not ");
+ }
+ if (cdat->enc) {
+ rv = cipher_test_enc(t, 1, out_misalign, inp_misalign, frag);
+ /* Not fatal errors: return */
+ if (rv != 1) {
+ if (rv < 0)
+ return 0;
+ return 1;
+ }
+ }
+ if (cdat->enc != 1) {
+ rv = cipher_test_enc(t, 0, out_misalign, inp_misalign, frag);
+ /* Not fatal errors: return */
+ if (rv != 1) {
+ if (rv < 0)
+ return 0;
+ return 1;
+ }
+ }
+ }
+
+ if (out_misalign == 1 && frag == 0) {
+ /*
+ * XTS, CCM and Wrap modes have special requirements about input
+ * lengths so we don't fragment for those
+ */
+ if (cdat->aead == EVP_CIPH_CCM_MODE
+ || EVP_CIPHER_mode(cdat->cipher) == EVP_CIPH_XTS_MODE
+ || EVP_CIPHER_mode(cdat->cipher) == EVP_CIPH_WRAP_MODE)
+ break;
+ out_misalign = 0;
+ frag++;
+ } else {
+ out_misalign++;
+ }
+ }
+ t->aux_err = NULL;
+
+ return 1;
+}
+
+static const EVP_TEST_METHOD cipher_test_method = {
+ "Cipher",
+ cipher_test_init,
+ cipher_test_cleanup,
+ cipher_test_parse,
+ cipher_test_run
+};
+
+
+/**
+*** MAC TESTS
+**/
+
+typedef struct mac_data_st {
+ /* MAC type */
+ int type;
+ /* Algorithm string for this MAC */
+ char *alg;
+ /* MAC key */
+ unsigned char *key;
+ size_t key_len;
+ /* Input to MAC */
+ unsigned char *input;
+ size_t input_len;
+ /* Expected output */
+ unsigned char *output;
+ size_t output_len;
+ /* Collection of controls */
+ STACK_OF(OPENSSL_STRING) *controls;
+} MAC_DATA;
+
+static int mac_test_init(EVP_TEST *t, const char *alg)
+{
+ int type;
+ MAC_DATA *mdat;
+
+ if (strcmp(alg, "HMAC") == 0) {
+ type = EVP_PKEY_HMAC;
+ } else if (strcmp(alg, "CMAC") == 0) {
+#ifndef OPENSSL_NO_CMAC
+ type = EVP_PKEY_CMAC;
+#else
+ t->skip = 1;
+ return 1;
+#endif
+ } else if (strcmp(alg, "Poly1305") == 0) {
+#ifndef OPENSSL_NO_POLY1305
+ type = EVP_PKEY_POLY1305;
+#else
+ t->skip = 1;
+ return 1;
+#endif
+ } else if (strcmp(alg, "SipHash") == 0) {
+#ifndef OPENSSL_NO_SIPHASH
+ type = EVP_PKEY_SIPHASH;
+#else
+ t->skip = 1;
+ return 1;
+#endif
+ } else
+ return 0;
+
+ mdat = OPENSSL_zalloc(sizeof(*mdat));
+ mdat->type = type;
+ mdat->controls = sk_OPENSSL_STRING_new_null();
+ t->data = mdat;
+ return 1;
+}
+
+/* Because OPENSSL_free is a macro, it can't be passed as a function pointer */
+static void openssl_free(char *m)
+{
+ OPENSSL_free(m);
+}
+
+static void mac_test_cleanup(EVP_TEST *t)
+{
+ MAC_DATA *mdat = t->data;
+
+ sk_OPENSSL_STRING_pop_free(mdat->controls, openssl_free);
+ OPENSSL_free(mdat->alg);
+ OPENSSL_free(mdat->key);
+ OPENSSL_free(mdat->input);
+ OPENSSL_free(mdat->output);
+}
+
+static int mac_test_parse(EVP_TEST *t,
+ const char *keyword, const char *value)
+{
+ MAC_DATA *mdata = t->data;
+
+ if (strcmp(keyword, "Key") == 0)
+ return parse_bin(value, &mdata->key, &mdata->key_len);
+ if (strcmp(keyword, "Algorithm") == 0) {
+ mdata->alg = OPENSSL_strdup(value);
+ if (!mdata->alg)
+ return -1;
+ return 1;
+ }
+ if (strcmp(keyword, "Input") == 0)
+ return parse_bin(value, &mdata->input, &mdata->input_len);
+ if (strcmp(keyword, "Output") == 0)
+ return parse_bin(value, &mdata->output, &mdata->output_len);
+ if (strcmp(keyword, "Ctrl") == 0)
+ return sk_OPENSSL_STRING_push(mdata->controls,
+ OPENSSL_strdup(value)) != 0;
+ return 0;
+}
+
+static int mac_test_ctrl_pkey(EVP_TEST *t, EVP_PKEY_CTX *pctx,
+ const char *value)
+{
+ int rv;
+ char *p, *tmpval;
+
+ if (!TEST_ptr(tmpval = OPENSSL_strdup(value)))
+ return 0;
+ p = strchr(tmpval, ':');
+ if (p != NULL)
+ *p++ = '\0';
+ rv = EVP_PKEY_CTX_ctrl_str(pctx, tmpval, p);
+ if (rv == -2)
+ t->err = "PKEY_CTRL_INVALID";
+ else if (rv <= 0)
+ t->err = "PKEY_CTRL_ERROR";
+ else
+ rv = 1;
+ OPENSSL_free(tmpval);
+ return rv > 0;
+}
+
+static int mac_test_run(EVP_TEST *t)
+{
+ MAC_DATA *expected = t->data;
+ EVP_MD_CTX *mctx = NULL;
+ EVP_PKEY_CTX *pctx = NULL, *genctx = NULL;
+ EVP_PKEY *key = NULL;
+ const EVP_MD *md = NULL;
+ unsigned char *got = NULL;
+ size_t got_len;
+ int i;
+
+#ifdef OPENSSL_NO_DES
+ if (expected->alg != NULL && strstr(expected->alg, "DES") != NULL) {
+ /* Skip DES */
+ t->err = NULL;
+ goto err;
+ }
+#endif
+
+ if (expected->type == EVP_PKEY_CMAC)
+ key = EVP_PKEY_new_CMAC_key(NULL, expected->key, expected->key_len,
+ EVP_get_cipherbyname(expected->alg));
+ else
+ key = EVP_PKEY_new_raw_private_key(expected->type, NULL, expected->key,
+ expected->key_len);
+ if (key == NULL) {
+ t->err = "MAC_KEY_CREATE_ERROR";
+ goto err;
+ }
+
+ if (expected->type == EVP_PKEY_HMAC) {
+ if (!TEST_ptr(md = EVP_get_digestbyname(expected->alg))) {
+ t->err = "MAC_ALGORITHM_SET_ERROR";
+ goto err;
+ }
+ }
+ if (!TEST_ptr(mctx = EVP_MD_CTX_new())) {
+ t->err = "INTERNAL_ERROR";
+ goto err;
+ }
+ if (!EVP_DigestSignInit(mctx, &pctx, md, NULL, key)) {
+ t->err = "DIGESTSIGNINIT_ERROR";
+ goto err;
+ }
+ for (i = 0; i < sk_OPENSSL_STRING_num(expected->controls); i++)
+ if (!mac_test_ctrl_pkey(t, pctx,
+ sk_OPENSSL_STRING_value(expected->controls,
+ i))) {
+ t->err = "EVPPKEYCTXCTRL_ERROR";
+ goto err;
+ }
+ if (!EVP_DigestSignUpdate(mctx, expected->input, expected->input_len)) {
+ t->err = "DIGESTSIGNUPDATE_ERROR";
+ goto err;
+ }
+ if (!EVP_DigestSignFinal(mctx, NULL, &got_len)) {
+ t->err = "DIGESTSIGNFINAL_LENGTH_ERROR";
+ goto err;
+ }
+ if (!TEST_ptr(got = OPENSSL_malloc(got_len))) {
+ t->err = "TEST_FAILURE";
+ goto err;
+ }
+ if (!EVP_DigestSignFinal(mctx, got, &got_len)
+ || !memory_err_compare(t, "TEST_MAC_ERR",
+ expected->output, expected->output_len,
+ got, got_len)) {
+ t->err = "TEST_MAC_ERR";
+ goto err;
+ }
+ t->err = NULL;
+ err:
+ EVP_MD_CTX_free(mctx);
+ OPENSSL_free(got);
+ EVP_PKEY_CTX_free(genctx);
+ EVP_PKEY_free(key);
+ return 1;
+}
+
+static const EVP_TEST_METHOD mac_test_method = {
+ "MAC",
+ mac_test_init,
+ mac_test_cleanup,
+ mac_test_parse,
+ mac_test_run
+};
+
+
+/**
+*** PUBLIC KEY TESTS
+*** These are all very similar and share much common code.
+**/
+
+typedef struct pkey_data_st {
+ /* Context for this operation */
+ EVP_PKEY_CTX *ctx;
+ /* Key operation to perform */
+ int (*keyop) (EVP_PKEY_CTX *ctx,
+ unsigned char *sig, size_t *siglen,
+ const unsigned char *tbs, size_t tbslen);
+ /* Input to MAC */
+ unsigned char *input;
+ size_t input_len;
+ /* Expected output */
+ unsigned char *output;
+ size_t output_len;
+} PKEY_DATA;
+
+/*
+ * Perform public key operation setup: lookup key, allocated ctx and call
+ * the appropriate initialisation function
+ */
+static int pkey_test_init(EVP_TEST *t, const char *name,
+ int use_public,
+ int (*keyopinit) (EVP_PKEY_CTX *ctx),
+ int (*keyop)(EVP_PKEY_CTX *ctx,
+ unsigned char *sig, size_t *siglen,
+ const unsigned char *tbs,
+ size_t tbslen))
+{
+ PKEY_DATA *kdata;
+ EVP_PKEY *pkey = NULL;
+ int rv = 0;
+
+ if (use_public)
+ rv = find_key(&pkey, name, public_keys);
+ if (rv == 0)
+ rv = find_key(&pkey, name, private_keys);
+ if (rv == 0 || pkey == NULL) {
+ t->skip = 1;
+ return 1;
+ }
+
+ if (!TEST_ptr(kdata = OPENSSL_zalloc(sizeof(*kdata)))) {
+ EVP_PKEY_free(pkey);
+ return 0;
+ }
+ kdata->keyop = keyop;
+ if (!TEST_ptr(kdata->ctx = EVP_PKEY_CTX_new(pkey, NULL))) {
+ EVP_PKEY_free(pkey);
+ OPENSSL_free(kdata);
+ return 0;
+ }
+ if (keyopinit(kdata->ctx) <= 0)
+ t->err = "KEYOP_INIT_ERROR";
+ t->data = kdata;
+ return 1;
+}
+
+static void pkey_test_cleanup(EVP_TEST *t)
+{
+ PKEY_DATA *kdata = t->data;
+
+ OPENSSL_free(kdata->input);
+ OPENSSL_free(kdata->output);
+ EVP_PKEY_CTX_free(kdata->ctx);
+}
+
+static int pkey_test_ctrl(EVP_TEST *t, EVP_PKEY_CTX *pctx,
+ const char *value)
+{
+ int rv;
+ char *p, *tmpval;
+
+ if (!TEST_ptr(tmpval = OPENSSL_strdup(value)))
+ return 0;
+ p = strchr(tmpval, ':');
+ if (p != NULL)
+ *p++ = '\0';
+ rv = EVP_PKEY_CTX_ctrl_str(pctx, tmpval, p);
+ if (rv == -2) {
+ t->err = "PKEY_CTRL_INVALID";
+ rv = 1;
+ } else if (p != NULL && rv <= 0) {
+ /* If p has an OID and lookup fails assume disabled algorithm */
+ int nid = OBJ_sn2nid(p);
+
+ if (nid == NID_undef)
+ nid = OBJ_ln2nid(p);
+ if (nid != NID_undef
+ && EVP_get_digestbynid(nid) == NULL
+ && EVP_get_cipherbynid(nid) == NULL) {
+ t->skip = 1;
+ rv = 1;
+ } else {
+ t->err = "PKEY_CTRL_ERROR";
+ rv = 1;
+ }
+ }
+ OPENSSL_free(tmpval);
+ return rv > 0;
+}
+
+static int pkey_test_parse(EVP_TEST *t,
+ const char *keyword, const char *value)
+{
+ PKEY_DATA *kdata = t->data;
+ if (strcmp(keyword, "Input") == 0)
+ return parse_bin(value, &kdata->input, &kdata->input_len);
+ if (strcmp(keyword, "Output") == 0)
+ return parse_bin(value, &kdata->output, &kdata->output_len);
+ if (strcmp(keyword, "Ctrl") == 0)
+ return pkey_test_ctrl(t, kdata->ctx, value);
+ return 0;
+}
+
+static int pkey_test_run(EVP_TEST *t)
+{
+ PKEY_DATA *expected = t->data;
+ unsigned char *got = NULL;
+ size_t got_len;
+
+ if (expected->keyop(expected->ctx, NULL, &got_len,
+ expected->input, expected->input_len) <= 0
+ || !TEST_ptr(got = OPENSSL_malloc(got_len))) {
+ t->err = "KEYOP_LENGTH_ERROR";
+ goto err;
+ }
+ if (expected->keyop(expected->ctx, got, &got_len,
+ expected->input, expected->input_len) <= 0) {
+ t->err = "KEYOP_ERROR";
+ goto err;
+ }
+ if (!memory_err_compare(t, "KEYOP_MISMATCH",
+ expected->output, expected->output_len,
+ got, got_len))
+ goto err;
+
+ t->err = NULL;
+ err:
+ OPENSSL_free(got);
+ return 1;
+}
+
+static int sign_test_init(EVP_TEST *t, const char *name)
+{
+ return pkey_test_init(t, name, 0, EVP_PKEY_sign_init, EVP_PKEY_sign);
+}
+
+static const EVP_TEST_METHOD psign_test_method = {
+ "Sign",
+ sign_test_init,
+ pkey_test_cleanup,
+ pkey_test_parse,
+ pkey_test_run
+};
+
+static int verify_recover_test_init(EVP_TEST *t, const char *name)
+{
+ return pkey_test_init(t, name, 1, EVP_PKEY_verify_recover_init,
+ EVP_PKEY_verify_recover);
+}
+
+static const EVP_TEST_METHOD pverify_recover_test_method = {
+ "VerifyRecover",
+ verify_recover_test_init,
+ pkey_test_cleanup,
+ pkey_test_parse,
+ pkey_test_run
+};
+
+static int decrypt_test_init(EVP_TEST *t, const char *name)
+{
+ return pkey_test_init(t, name, 0, EVP_PKEY_decrypt_init,
+ EVP_PKEY_decrypt);
+}
+
+static const EVP_TEST_METHOD pdecrypt_test_method = {
+ "Decrypt",
+ decrypt_test_init,
+ pkey_test_cleanup,
+ pkey_test_parse,
+ pkey_test_run
+};
+
+static int verify_test_init(EVP_TEST *t, const char *name)
+{
+ return pkey_test_init(t, name, 1, EVP_PKEY_verify_init, 0);
+}
+
+static int verify_test_run(EVP_TEST *t)
+{
+ PKEY_DATA *kdata = t->data;
+
+ if (EVP_PKEY_verify(kdata->ctx, kdata->output, kdata->output_len,
+ kdata->input, kdata->input_len) <= 0)
+ t->err = "VERIFY_ERROR";
+ return 1;
+}
+
+static const EVP_TEST_METHOD pverify_test_method = {
+ "Verify",
+ verify_test_init,
+ pkey_test_cleanup,
+ pkey_test_parse,
+ verify_test_run
+};
+
+
+static int pderive_test_init(EVP_TEST *t, const char *name)
+{
+ return pkey_test_init(t, name, 0, EVP_PKEY_derive_init, 0);
+}
+
+static int pderive_test_parse(EVP_TEST *t,
+ const char *keyword, const char *value)
+{
+ PKEY_DATA *kdata = t->data;
+
+ if (strcmp(keyword, "PeerKey") == 0) {
+ EVP_PKEY *peer;
+ if (find_key(&peer, value, public_keys) == 0)
+ return -1;
+ if (EVP_PKEY_derive_set_peer(kdata->ctx, peer) <= 0)
+ return -1;
+ return 1;
+ }
+ if (strcmp(keyword, "SharedSecret") == 0)
+ return parse_bin(value, &kdata->output, &kdata->output_len);
+ if (strcmp(keyword, "Ctrl") == 0)
+ return pkey_test_ctrl(t, kdata->ctx, value);
+ return 0;
+}
+
+static int pderive_test_run(EVP_TEST *t)
+{
+ PKEY_DATA *expected = t->data;
+ unsigned char *got = NULL;
+ size_t got_len;
+
+ if (EVP_PKEY_derive(expected->ctx, NULL, &got_len) <= 0) {
+ t->err = "DERIVE_ERROR";
+ goto err;
+ }
+ if (!TEST_ptr(got = OPENSSL_malloc(got_len))) {
+ t->err = "DERIVE_ERROR";
+ goto err;
+ }
+ if (EVP_PKEY_derive(expected->ctx, got, &got_len) <= 0) {
+ t->err = "DERIVE_ERROR";
+ goto err;
+ }
+ if (!memory_err_compare(t, "SHARED_SECRET_MISMATCH",
+ expected->output, expected->output_len,
+ got, got_len))
+ goto err;
+
+ t->err = NULL;
+ err:
+ OPENSSL_free(got);
+ return 1;
+}
+
+static const EVP_TEST_METHOD pderive_test_method = {
+ "Derive",
+ pderive_test_init,
+ pkey_test_cleanup,
+ pderive_test_parse,
+ pderive_test_run
+};
+
+
+/**
+*** PBE TESTS
+**/
+
+typedef enum pbe_type_enum {
+ PBE_TYPE_INVALID = 0,
+ PBE_TYPE_SCRYPT, PBE_TYPE_PBKDF2, PBE_TYPE_PKCS12
+} PBE_TYPE;
+
+typedef struct pbe_data_st {
+ PBE_TYPE pbe_type;
+ /* scrypt parameters */
+ uint64_t N, r, p, maxmem;
+ /* PKCS#12 parameters */
+ int id, iter;
+ const EVP_MD *md;
+ /* password */
+ unsigned char *pass;
+ size_t pass_len;
+ /* salt */
+ unsigned char *salt;
+ size_t salt_len;
+ /* Expected output */
+ unsigned char *key;
+ size_t key_len;
+} PBE_DATA;
+
+#ifndef OPENSSL_NO_SCRYPT
+/*
+ * Parse unsigned decimal 64 bit integer value
+ */
+static int parse_uint64(const char *value, uint64_t *pr)
+{
+ const char *p = value;
+
+ if (!TEST_true(*p)) {
+ TEST_info("Invalid empty integer value");
+ return -1;
+ }
+ for (*pr = 0; *p; ) {
+ if (*pr > UINT64_MAX / 10) {
+ TEST_error("Integer overflow in string %s", value);
+ return -1;
+ }
+ *pr *= 10;
+ if (!TEST_true(isdigit((unsigned char)*p))) {
+ TEST_error("Invalid character in string %s", value);
+ return -1;
+ }
+ *pr += *p - '0';
+ p++;
+ }
+ return 1;
+}
+
+static int scrypt_test_parse(EVP_TEST *t,
+ const char *keyword, const char *value)
+{
+ PBE_DATA *pdata = t->data;
+
+ if (strcmp(keyword, "N") == 0)
+ return parse_uint64(value, &pdata->N);
+ if (strcmp(keyword, "p") == 0)
+ return parse_uint64(value, &pdata->p);
+ if (strcmp(keyword, "r") == 0)
+ return parse_uint64(value, &pdata->r);
+ if (strcmp(keyword, "maxmem") == 0)
+ return parse_uint64(value, &pdata->maxmem);
+ return 0;
+}
+#endif
+
+static int pbkdf2_test_parse(EVP_TEST *t,
+ const char *keyword, const char *value)
+{
+ PBE_DATA *pdata = t->data;
+
+ if (strcmp(keyword, "iter") == 0) {
+ pdata->iter = atoi(value);
+ if (pdata->iter <= 0)
+ return -1;
+ return 1;
+ }
+ if (strcmp(keyword, "MD") == 0) {
+ pdata->md = EVP_get_digestbyname(value);
+ if (pdata->md == NULL)
+ return -1;
+ return 1;
+ }
+ return 0;
+}
+
+static int pkcs12_test_parse(EVP_TEST *t,
+ const char *keyword, const char *value)
+{
+ PBE_DATA *pdata = t->data;
+
+ if (strcmp(keyword, "id") == 0) {
+ pdata->id = atoi(value);
+ if (pdata->id <= 0)
+ return -1;
+ return 1;
+ }
+ return pbkdf2_test_parse(t, keyword, value);
+}
+
+static int pbe_test_init(EVP_TEST *t, const char *alg)
+{
+ PBE_DATA *pdat;
+ PBE_TYPE pbe_type = PBE_TYPE_INVALID;
+
+ if (strcmp(alg, "scrypt") == 0) {
+#ifndef OPENSSL_NO_SCRYPT
+ pbe_type = PBE_TYPE_SCRYPT;
+#else
+ t->skip = 1;
+ return 1;
+#endif
+ } else if (strcmp(alg, "pbkdf2") == 0) {
+ pbe_type = PBE_TYPE_PBKDF2;
+ } else if (strcmp(alg, "pkcs12") == 0) {
+ pbe_type = PBE_TYPE_PKCS12;
+ } else {
+ TEST_error("Unknown pbe algorithm %s", alg);
+ }
+ pdat = OPENSSL_zalloc(sizeof(*pdat));
+ pdat->pbe_type = pbe_type;
+ t->data = pdat;
+ return 1;
+}
+
+static void pbe_test_cleanup(EVP_TEST *t)
+{
+ PBE_DATA *pdat = t->data;
+
+ OPENSSL_free(pdat->pass);
+ OPENSSL_free(pdat->salt);
+ OPENSSL_free(pdat->key);
+}
+
+static int pbe_test_parse(EVP_TEST *t,
+ const char *keyword, const char *value)
+{
+ PBE_DATA *pdata = t->data;
+
+ if (strcmp(keyword, "Password") == 0)
+ return parse_bin(value, &pdata->pass, &pdata->pass_len);
+ if (strcmp(keyword, "Salt") == 0)
+ return parse_bin(value, &pdata->salt, &pdata->salt_len);
+ if (strcmp(keyword, "Key") == 0)
+ return parse_bin(value, &pdata->key, &pdata->key_len);
+ if (pdata->pbe_type == PBE_TYPE_PBKDF2)
+ return pbkdf2_test_parse(t, keyword, value);
+ else if (pdata->pbe_type == PBE_TYPE_PKCS12)
+ return pkcs12_test_parse(t, keyword, value);
+#ifndef OPENSSL_NO_SCRYPT
+ else if (pdata->pbe_type == PBE_TYPE_SCRYPT)
+ return scrypt_test_parse(t, keyword, value);
+#endif
+ return 0;
+}
+
+static int pbe_test_run(EVP_TEST *t)
+{
+ PBE_DATA *expected = t->data;
+ unsigned char *key;
+
+ if (!TEST_ptr(key = OPENSSL_malloc(expected->key_len))) {
+ t->err = "INTERNAL_ERROR";
+ goto err;
+ }
+ if (expected->pbe_type == PBE_TYPE_PBKDF2) {
+ if (PKCS5_PBKDF2_HMAC((char *)expected->pass, expected->pass_len,
+ expected->salt, expected->salt_len,
+ expected->iter, expected->md,
+ expected->key_len, key) == 0) {
+ t->err = "PBKDF2_ERROR";
+ goto err;
+ }
+#ifndef OPENSSL_NO_SCRYPT
+ } else if (expected->pbe_type == PBE_TYPE_SCRYPT) {
+ if (EVP_PBE_scrypt((const char *)expected->pass, expected->pass_len,
+ expected->salt, expected->salt_len, expected->N,
+ expected->r, expected->p, expected->maxmem,
+ key, expected->key_len) == 0) {
+ t->err = "SCRYPT_ERROR";
+ goto err;
+ }
+#endif
+ } else if (expected->pbe_type == PBE_TYPE_PKCS12) {
+ if (PKCS12_key_gen_uni(expected->pass, expected->pass_len,
+ expected->salt, expected->salt_len,
+ expected->id, expected->iter, expected->key_len,
+ key, expected->md) == 0) {
+ t->err = "PKCS12_ERROR";
+ goto err;
+ }
+ }
+ if (!memory_err_compare(t, "KEY_MISMATCH", expected->key, expected->key_len,
+ key, expected->key_len))
+ goto err;
+
+ t->err = NULL;
+err:
+ OPENSSL_free(key);
+ return 1;
+}
+
+static const EVP_TEST_METHOD pbe_test_method = {
+ "PBE",
+ pbe_test_init,
+ pbe_test_cleanup,
+ pbe_test_parse,
+ pbe_test_run
+};
+
+
+/**
+*** BASE64 TESTS
+**/
+
+typedef enum {
+ BASE64_CANONICAL_ENCODING = 0,
+ BASE64_VALID_ENCODING = 1,
+ BASE64_INVALID_ENCODING = 2
+} base64_encoding_type;
+
+typedef struct encode_data_st {
+ /* Input to encoding */
+ unsigned char *input;
+ size_t input_len;
+ /* Expected output */
+ unsigned char *output;
+ size_t output_len;
+ base64_encoding_type encoding;
+} ENCODE_DATA;
+
+static int encode_test_init(EVP_TEST *t, const char *encoding)
+{
+ ENCODE_DATA *edata;
+
+ if (!TEST_ptr(edata = OPENSSL_zalloc(sizeof(*edata))))
+ return 0;
+ if (strcmp(encoding, "canonical") == 0) {
+ edata->encoding = BASE64_CANONICAL_ENCODING;
+ } else if (strcmp(encoding, "valid") == 0) {
+ edata->encoding = BASE64_VALID_ENCODING;
+ } else if (strcmp(encoding, "invalid") == 0) {
+ edata->encoding = BASE64_INVALID_ENCODING;
+ if (!TEST_ptr(t->expected_err = OPENSSL_strdup("DECODE_ERROR")))
+ goto err;
+ } else {
+ TEST_error("Bad encoding: %s."
+ " Should be one of {canonical, valid, invalid}",
+ encoding);
+ goto err;
+ }
+ t->data = edata;
+ return 1;
+err:
+ OPENSSL_free(edata);
+ return 0;
+}
+
+static void encode_test_cleanup(EVP_TEST *t)
+{
+ ENCODE_DATA *edata = t->data;
+
+ OPENSSL_free(edata->input);
+ OPENSSL_free(edata->output);
+ memset(edata, 0, sizeof(*edata));
+}
+
+static int encode_test_parse(EVP_TEST *t,
+ const char *keyword, const char *value)
+{
+ ENCODE_DATA *edata = t->data;
+
+ if (strcmp(keyword, "Input") == 0)
+ return parse_bin(value, &edata->input, &edata->input_len);
+ if (strcmp(keyword, "Output") == 0)
+ return parse_bin(value, &edata->output, &edata->output_len);
+ return 0;
+}
+
+static int encode_test_run(EVP_TEST *t)
+{
+ ENCODE_DATA *expected = t->data;
+ unsigned char *encode_out = NULL, *decode_out = NULL;
+ int output_len, chunk_len;
+ EVP_ENCODE_CTX *decode_ctx = NULL, *encode_ctx = NULL;
+
+ if (!TEST_ptr(decode_ctx = EVP_ENCODE_CTX_new())) {
+ t->err = "INTERNAL_ERROR";
+ goto err;
+ }
+
+ if (expected->encoding == BASE64_CANONICAL_ENCODING) {
+
+ if (!TEST_ptr(encode_ctx = EVP_ENCODE_CTX_new())
+ || !TEST_ptr(encode_out =
+ OPENSSL_malloc(EVP_ENCODE_LENGTH(expected->input_len))))
+ goto err;
+
+ EVP_EncodeInit(encode_ctx);
+ if (!TEST_true(EVP_EncodeUpdate(encode_ctx, encode_out, &chunk_len,
+ expected->input, expected->input_len)))
+ goto err;
+
+ output_len = chunk_len;
+
+ EVP_EncodeFinal(encode_ctx, encode_out + chunk_len, &chunk_len);
+ output_len += chunk_len;
+
+ if (!memory_err_compare(t, "BAD_ENCODING",
+ expected->output, expected->output_len,
+ encode_out, output_len))
+ goto err;
+ }
+
+ if (!TEST_ptr(decode_out =
+ OPENSSL_malloc(EVP_DECODE_LENGTH(expected->output_len))))
+ goto err;
+
+ EVP_DecodeInit(decode_ctx);
+ if (EVP_DecodeUpdate(decode_ctx, decode_out, &chunk_len, expected->output,
+ expected->output_len) < 0) {
+ t->err = "DECODE_ERROR";
+ goto err;
+ }
+ output_len = chunk_len;
+
+ if (EVP_DecodeFinal(decode_ctx, decode_out + chunk_len, &chunk_len) != 1) {
+ t->err = "DECODE_ERROR";
+ goto err;
+ }
+ output_len += chunk_len;
+
+ if (expected->encoding != BASE64_INVALID_ENCODING
+ && !memory_err_compare(t, "BAD_DECODING",
+ expected->input, expected->input_len,
+ decode_out, output_len)) {
+ t->err = "BAD_DECODING";
+ goto err;
+ }
+
+ t->err = NULL;
+ err:
+ OPENSSL_free(encode_out);
+ OPENSSL_free(decode_out);
+ EVP_ENCODE_CTX_free(decode_ctx);
+ EVP_ENCODE_CTX_free(encode_ctx);
+ return 1;
+}
+
+static const EVP_TEST_METHOD encode_test_method = {
+ "Encoding",
+ encode_test_init,
+ encode_test_cleanup,
+ encode_test_parse,
+ encode_test_run,
+};
+
+/**
+*** KDF TESTS
+**/
+
+typedef struct kdf_data_st {
+ /* Context for this operation */
+ EVP_PKEY_CTX *ctx;
+ /* Expected output */
+ unsigned char *output;
+ size_t output_len;
+} KDF_DATA;
+
+/*
+ * Perform public key operation setup: lookup key, allocated ctx and call
+ * the appropriate initialisation function
+ */
+static int kdf_test_init(EVP_TEST *t, const char *name)
+{
+ KDF_DATA *kdata;
+ int kdf_nid = OBJ_sn2nid(name);
+
+#ifdef OPENSSL_NO_SCRYPT
+ if (strcmp(name, "scrypt") == 0) {
+ t->skip = 1;
+ return 1;
+ }
+#endif
+
+ if (kdf_nid == NID_undef)
+ kdf_nid = OBJ_ln2nid(name);
+
+ if (!TEST_ptr(kdata = OPENSSL_zalloc(sizeof(*kdata))))
+ return 0;
+ kdata->ctx = EVP_PKEY_CTX_new_id(kdf_nid, NULL);
+ if (kdata->ctx == NULL) {
+ OPENSSL_free(kdata);
+ return 0;
+ }
+ if (EVP_PKEY_derive_init(kdata->ctx) <= 0) {
+ EVP_PKEY_CTX_free(kdata->ctx);
+ OPENSSL_free(kdata);
+ return 0;
+ }
+ t->data = kdata;
+ return 1;
+}
+
+static void kdf_test_cleanup(EVP_TEST *t)
+{
+ KDF_DATA *kdata = t->data;
+ OPENSSL_free(kdata->output);
+ EVP_PKEY_CTX_free(kdata->ctx);
+}
+
+static int kdf_test_parse(EVP_TEST *t,
+ const char *keyword, const char *value)
+{
+ KDF_DATA *kdata = t->data;
+
+ if (strcmp(keyword, "Output") == 0)
+ return parse_bin(value, &kdata->output, &kdata->output_len);
+ if (strncmp(keyword, "Ctrl", 4) == 0)
+ return pkey_test_ctrl(t, kdata->ctx, value);
+ return 0;
+}
+
+static int kdf_test_run(EVP_TEST *t)
+{
+ KDF_DATA *expected = t->data;
+ unsigned char *got = NULL;
+ size_t got_len = expected->output_len;
+
+ if (!TEST_ptr(got = OPENSSL_malloc(got_len))) {
+ t->err = "INTERNAL_ERROR";
+ goto err;
+ }
+ if (EVP_PKEY_derive(expected->ctx, got, &got_len) <= 0) {
+ t->err = "KDF_DERIVE_ERROR";
+ goto err;
+ }
+ if (!memory_err_compare(t, "KDF_MISMATCH",
+ expected->output, expected->output_len,
+ got, got_len))
+ goto err;
+
+ t->err = NULL;
+
+ err:
+ OPENSSL_free(got);
+ return 1;
+}
+
+static const EVP_TEST_METHOD kdf_test_method = {
+ "KDF",
+ kdf_test_init,
+ kdf_test_cleanup,
+ kdf_test_parse,
+ kdf_test_run
+};
+
+
+/**
+*** KEYPAIR TESTS
+**/
+
+typedef struct keypair_test_data_st {
+ EVP_PKEY *privk;
+ EVP_PKEY *pubk;
+} KEYPAIR_TEST_DATA;
+
+static int keypair_test_init(EVP_TEST *t, const char *pair)
+{
+ KEYPAIR_TEST_DATA *data;
+ int rv = 0;
+ EVP_PKEY *pk = NULL, *pubk = NULL;
+ char *pub, *priv = NULL;
+
+ /* Split private and public names. */
+ if (!TEST_ptr(priv = OPENSSL_strdup(pair))
+ || !TEST_ptr(pub = strchr(priv, ':'))) {
+ t->err = "PARSING_ERROR";
+ goto end;
+ }
+ *pub++ = '\0';
+
+ if (!TEST_true(find_key(&pk, priv, private_keys))) {
+ TEST_info("Can't find private key: %s", priv);
+ t->err = "MISSING_PRIVATE_KEY";
+ goto end;
+ }
+ if (!TEST_true(find_key(&pubk, pub, public_keys))) {
+ TEST_info("Can't find public key: %s", pub);
+ t->err = "MISSING_PUBLIC_KEY";
+ goto end;
+ }
+
+ if (pk == NULL && pubk == NULL) {
+ /* Both keys are listed but unsupported: skip this test */
+ t->skip = 1;
+ rv = 1;
+ goto end;
+ }
+
+ if (!TEST_ptr(data = OPENSSL_malloc(sizeof(*data))))
+ goto end;
+ data->privk = pk;
+ data->pubk = pubk;
+ t->data = data;
+ rv = 1;
+ t->err = NULL;
+
+end:
+ OPENSSL_free(priv);
+ return rv;
+}
+
+static void keypair_test_cleanup(EVP_TEST *t)
+{
+ OPENSSL_free(t->data);
+ t->data = NULL;
+}
+
+/*
+ * For tests that do not accept any custom keywords.
+ */
+static int void_test_parse(EVP_TEST *t, const char *keyword, const char *value)
+{
+ return 0;
+}
+
+static int keypair_test_run(EVP_TEST *t)
+{
+ int rv = 0;
+ const KEYPAIR_TEST_DATA *pair = t->data;
+
+ if (pair->privk == NULL || pair->pubk == NULL) {
+ /*
+ * this can only happen if only one of the keys is not set
+ * which means that one of them was unsupported while the
+ * other isn't: hence a key type mismatch.
+ */
+ t->err = "KEYPAIR_TYPE_MISMATCH";
+ rv = 1;
+ goto end;
+ }
+
+ if ((rv = EVP_PKEY_cmp(pair->privk, pair->pubk)) != 1 ) {
+ if ( 0 == rv ) {
+ t->err = "KEYPAIR_MISMATCH";
+ } else if ( -1 == rv ) {
+ t->err = "KEYPAIR_TYPE_MISMATCH";
+ } else if ( -2 == rv ) {
+ t->err = "UNSUPPORTED_KEY_COMPARISON";
+ } else {
+ TEST_error("Unexpected error in key comparison");
+ rv = 0;
+ goto end;
+ }
+ rv = 1;
+ goto end;
+ }
+
+ rv = 1;
+ t->err = NULL;
+
+end:
+ return rv;
+}
+
+static const EVP_TEST_METHOD keypair_test_method = {
+ "PrivPubKeyPair",
+ keypair_test_init,
+ keypair_test_cleanup,
+ void_test_parse,
+ keypair_test_run
+};
+
+/**
+*** KEYGEN TEST
+**/
+
+typedef struct keygen_test_data_st {
+ EVP_PKEY_CTX *genctx; /* Keygen context to use */
+ char *keyname; /* Key name to store key or NULL */
+} KEYGEN_TEST_DATA;
+
+static int keygen_test_init(EVP_TEST *t, const char *alg)
+{
+ KEYGEN_TEST_DATA *data;
+ EVP_PKEY_CTX *genctx;
+ int nid = OBJ_sn2nid(alg);
+
+ if (nid == NID_undef) {
+ nid = OBJ_ln2nid(alg);
+ if (nid == NID_undef)
+ return 0;
+ }
+
+ if (!TEST_ptr(genctx = EVP_PKEY_CTX_new_id(nid, NULL))) {
+ /* assume algorithm disabled */
+ t->skip = 1;
+ return 1;
+ }
+
+ if (EVP_PKEY_keygen_init(genctx) <= 0) {
+ t->err = "KEYGEN_INIT_ERROR";
+ goto err;
+ }
+
+ if (!TEST_ptr(data = OPENSSL_malloc(sizeof(*data))))
+ goto err;
+ data->genctx = genctx;
+ data->keyname = NULL;
+ t->data = data;
+ t->err = NULL;
+ return 1;
+
+err:
+ EVP_PKEY_CTX_free(genctx);
+ return 0;
+}
+
+static void keygen_test_cleanup(EVP_TEST *t)
+{
+ KEYGEN_TEST_DATA *keygen = t->data;
+
+ EVP_PKEY_CTX_free(keygen->genctx);
+ OPENSSL_free(keygen->keyname);
+ OPENSSL_free(t->data);
+ t->data = NULL;
+}
+
+static int keygen_test_parse(EVP_TEST *t,
+ const char *keyword, const char *value)
+{
+ KEYGEN_TEST_DATA *keygen = t->data;
+
+ if (strcmp(keyword, "KeyName") == 0)
+ return TEST_ptr(keygen->keyname = OPENSSL_strdup(value));
+ if (strcmp(keyword, "Ctrl") == 0)
+ return pkey_test_ctrl(t, keygen->genctx, value);
+ return 0;
+}
+
+static int keygen_test_run(EVP_TEST *t)
+{
+ KEYGEN_TEST_DATA *keygen = t->data;
+ EVP_PKEY *pkey = NULL;
+
+ t->err = NULL;
+ if (EVP_PKEY_keygen(keygen->genctx, &pkey) <= 0) {
+ t->err = "KEYGEN_GENERATE_ERROR";
+ goto err;
+ }
+
+ if (keygen->keyname != NULL) {
+ KEY_LIST *key;
+
+ if (find_key(NULL, keygen->keyname, private_keys)) {
+ TEST_info("Duplicate key %s", keygen->keyname);
+ goto err;
+ }
+
+ if (!TEST_ptr(key = OPENSSL_malloc(sizeof(*key))))
+ goto err;
+ key->name = keygen->keyname;
+ keygen->keyname = NULL;
+ key->key = pkey;
+ key->next = private_keys;
+ private_keys = key;
+ } else {
+ EVP_PKEY_free(pkey);
+ }
+
+ return 1;
+
+err:
+ EVP_PKEY_free(pkey);
+ return 0;
+}
+
+static const EVP_TEST_METHOD keygen_test_method = {
+ "KeyGen",
+ keygen_test_init,
+ keygen_test_cleanup,
+ keygen_test_parse,
+ keygen_test_run,
+};
+
+/**
+*** DIGEST SIGN+VERIFY TESTS
+**/
+
+typedef struct {
+ int is_verify; /* Set to 1 if verifying */
+ int is_oneshot; /* Set to 1 for one shot operation */
+ const EVP_MD *md; /* Digest to use */
+ EVP_MD_CTX *ctx; /* Digest context */
+ EVP_PKEY_CTX *pctx;
+ STACK_OF(EVP_TEST_BUFFER) *input; /* Input data: streaming */
+ unsigned char *osin; /* Input data if one shot */
+ size_t osin_len; /* Input length data if one shot */
+ unsigned char *output; /* Expected output */
+ size_t output_len; /* Expected output length */
+} DIGESTSIGN_DATA;
+
+static int digestsigver_test_init(EVP_TEST *t, const char *alg, int is_verify,
+ int is_oneshot)
+{
+ const EVP_MD *md = NULL;
+ DIGESTSIGN_DATA *mdat;
+
+ if (strcmp(alg, "NULL") != 0) {
+ if ((md = EVP_get_digestbyname(alg)) == NULL) {
+ /* If alg has an OID assume disabled algorithm */
+ if (OBJ_sn2nid(alg) != NID_undef || OBJ_ln2nid(alg) != NID_undef) {
+ t->skip = 1;
+ return 1;
+ }
+ return 0;
+ }
+ }
+ if (!TEST_ptr(mdat = OPENSSL_zalloc(sizeof(*mdat))))
+ return 0;
+ mdat->md = md;
+ if (!TEST_ptr(mdat->ctx = EVP_MD_CTX_new())) {
+ OPENSSL_free(mdat);
+ return 0;
+ }
+ mdat->is_verify = is_verify;
+ mdat->is_oneshot = is_oneshot;
+ t->data = mdat;
+ return 1;
+}
+
+static int digestsign_test_init(EVP_TEST *t, const char *alg)
+{
+ return digestsigver_test_init(t, alg, 0, 0);
+}
+
+static void digestsigver_test_cleanup(EVP_TEST *t)
+{
+ DIGESTSIGN_DATA *mdata = t->data;
+
+ EVP_MD_CTX_free(mdata->ctx);
+ sk_EVP_TEST_BUFFER_pop_free(mdata->input, evp_test_buffer_free);
+ OPENSSL_free(mdata->osin);
+ OPENSSL_free(mdata->output);
+ OPENSSL_free(mdata);
+ t->data = NULL;
+}
+
+static int digestsigver_test_parse(EVP_TEST *t,
+ const char *keyword, const char *value)
+{
+ DIGESTSIGN_DATA *mdata = t->data;
+
+ if (strcmp(keyword, "Key") == 0) {
+ EVP_PKEY *pkey = NULL;
+ int rv = 0;
+
+ if (mdata->is_verify)
+ rv = find_key(&pkey, value, public_keys);
+ if (rv == 0)
+ rv = find_key(&pkey, value, private_keys);
+ if (rv == 0 || pkey == NULL) {
+ t->skip = 1;
+ return 1;
+ }
+ if (mdata->is_verify) {
+ if (!EVP_DigestVerifyInit(mdata->ctx, &mdata->pctx, mdata->md,
+ NULL, pkey))
+ t->err = "DIGESTVERIFYINIT_ERROR";
+ return 1;
+ }
+ if (!EVP_DigestSignInit(mdata->ctx, &mdata->pctx, mdata->md, NULL,
+ pkey))
+ t->err = "DIGESTSIGNINIT_ERROR";
+ return 1;
+ }
+
+ if (strcmp(keyword, "Input") == 0) {
+ if (mdata->is_oneshot)
+ return parse_bin(value, &mdata->osin, &mdata->osin_len);
+ return evp_test_buffer_append(value, &mdata->input);
+ }
+ if (strcmp(keyword, "Output") == 0)
+ return parse_bin(value, &mdata->output, &mdata->output_len);
+
+ if (!mdata->is_oneshot) {
+ if (strcmp(keyword, "Count") == 0)
+ return evp_test_buffer_set_count(value, mdata->input);
+ if (strcmp(keyword, "Ncopy") == 0)
+ return evp_test_buffer_ncopy(value, mdata->input);
+ }
+ if (strcmp(keyword, "Ctrl") == 0) {
+ if (mdata->pctx == NULL)
+ return -1;
+ return pkey_test_ctrl(t, mdata->pctx, value);
+ }
+ return 0;
+}
+
+static int digestsign_update_fn(void *ctx, const unsigned char *buf,
+ size_t buflen)
+{
+ return EVP_DigestSignUpdate(ctx, buf, buflen);
+}
+
+static int digestsign_test_run(EVP_TEST *t)
+{
+ DIGESTSIGN_DATA *expected = t->data;
+ unsigned char *got = NULL;
+ size_t got_len;
+
+ if (!evp_test_buffer_do(expected->input, digestsign_update_fn,
+ expected->ctx)) {
+ t->err = "DIGESTUPDATE_ERROR";
+ goto err;
+ }
+
+ if (!EVP_DigestSignFinal(expected->ctx, NULL, &got_len)) {
+ t->err = "DIGESTSIGNFINAL_LENGTH_ERROR";
+ goto err;
+ }
+ if (!TEST_ptr(got = OPENSSL_malloc(got_len))) {
+ t->err = "MALLOC_FAILURE";
+ goto err;
+ }
+ if (!EVP_DigestSignFinal(expected->ctx, got, &got_len)) {
+ t->err = "DIGESTSIGNFINAL_ERROR";
+ goto err;
+ }
+ if (!memory_err_compare(t, "SIGNATURE_MISMATCH",
+ expected->output, expected->output_len,
+ got, got_len))
+ goto err;
+
+ t->err = NULL;
+ err:
+ OPENSSL_free(got);
+ return 1;
+}
+
+static const EVP_TEST_METHOD digestsign_test_method = {
+ "DigestSign",
+ digestsign_test_init,
+ digestsigver_test_cleanup,
+ digestsigver_test_parse,
+ digestsign_test_run
+};
+
+static int digestverify_test_init(EVP_TEST *t, const char *alg)
+{
+ return digestsigver_test_init(t, alg, 1, 0);
+}
+
+static int digestverify_update_fn(void *ctx, const unsigned char *buf,
+ size_t buflen)
+{
+ return EVP_DigestVerifyUpdate(ctx, buf, buflen);
+}
+
+static int digestverify_test_run(EVP_TEST *t)
+{
+ DIGESTSIGN_DATA *mdata = t->data;
+
+ if (!evp_test_buffer_do(mdata->input, digestverify_update_fn, mdata->ctx)) {
+ t->err = "DIGESTUPDATE_ERROR";
+ return 1;
+ }
+
+ if (EVP_DigestVerifyFinal(mdata->ctx, mdata->output,
+ mdata->output_len) <= 0)
+ t->err = "VERIFY_ERROR";
+ return 1;
+}
+
+static const EVP_TEST_METHOD digestverify_test_method = {
+ "DigestVerify",
+ digestverify_test_init,
+ digestsigver_test_cleanup,
+ digestsigver_test_parse,
+ digestverify_test_run
+};
+
+static int oneshot_digestsign_test_init(EVP_TEST *t, const char *alg)
+{
+ return digestsigver_test_init(t, alg, 0, 1);
+}
+
+static int oneshot_digestsign_test_run(EVP_TEST *t)
+{
+ DIGESTSIGN_DATA *expected = t->data;
+ unsigned char *got = NULL;
+ size_t got_len;
+
+ if (!EVP_DigestSign(expected->ctx, NULL, &got_len,
+ expected->osin, expected->osin_len)) {
+ t->err = "DIGESTSIGN_LENGTH_ERROR";
+ goto err;
+ }
+ if (!TEST_ptr(got = OPENSSL_malloc(got_len))) {
+ t->err = "MALLOC_FAILURE";
+ goto err;
+ }
+ if (!EVP_DigestSign(expected->ctx, got, &got_len,
+ expected->osin, expected->osin_len)) {
+ t->err = "DIGESTSIGN_ERROR";
+ goto err;
+ }
+ if (!memory_err_compare(t, "SIGNATURE_MISMATCH",
+ expected->output, expected->output_len,
+ got, got_len))
+ goto err;
+
+ t->err = NULL;
+ err:
+ OPENSSL_free(got);
+ return 1;
+}
+
+static const EVP_TEST_METHOD oneshot_digestsign_test_method = {
+ "OneShotDigestSign",
+ oneshot_digestsign_test_init,
+ digestsigver_test_cleanup,
+ digestsigver_test_parse,
+ oneshot_digestsign_test_run
+};
+
+static int oneshot_digestverify_test_init(EVP_TEST *t, const char *alg)
+{
+ return digestsigver_test_init(t, alg, 1, 1);
+}
+
+static int oneshot_digestverify_test_run(EVP_TEST *t)
+{
+ DIGESTSIGN_DATA *mdata = t->data;
+
+ if (EVP_DigestVerify(mdata->ctx, mdata->output, mdata->output_len,
+ mdata->osin, mdata->osin_len) <= 0)
+ t->err = "VERIFY_ERROR";
+ return 1;
+}
+
+static const EVP_TEST_METHOD oneshot_digestverify_test_method = {
+ "OneShotDigestVerify",
+ oneshot_digestverify_test_init,
+ digestsigver_test_cleanup,
+ digestsigver_test_parse,
+ oneshot_digestverify_test_run
+};
+
+
+/**
+*** PARSING AND DISPATCH
+**/
+
+static const EVP_TEST_METHOD *evp_test_list[] = {
+ &cipher_test_method,
+ &digest_test_method,
+ &digestsign_test_method,
+ &digestverify_test_method,
+ &encode_test_method,
+ &kdf_test_method,
+ &keypair_test_method,
+ &keygen_test_method,
+ &mac_test_method,
+ &oneshot_digestsign_test_method,
+ &oneshot_digestverify_test_method,
+ &pbe_test_method,
+ &pdecrypt_test_method,
+ &pderive_test_method,
+ &psign_test_method,
+ &pverify_recover_test_method,
+ &pverify_test_method,
+ NULL
+};
+
+static const EVP_TEST_METHOD *find_test(const char *name)
+{
+ const EVP_TEST_METHOD **tt;
+
+ for (tt = evp_test_list; *tt; tt++) {
+ if (strcmp(name, (*tt)->name) == 0)
+ return *tt;
+ }
+ return NULL;
+}
+
+static void clear_test(EVP_TEST *t)
+{
+ test_clearstanza(&t->s);
+ ERR_clear_error();
+ if (t->data != NULL) {
+ if (t->meth != NULL)
+ t->meth->cleanup(t);
+ OPENSSL_free(t->data);
+ t->data = NULL;
+ }
+ OPENSSL_free(t->expected_err);
+ t->expected_err = NULL;
+ OPENSSL_free(t->func);
+ t->func = NULL;
+ OPENSSL_free(t->reason);
+ t->reason = NULL;
+
+ /* Text literal. */
+ t->err = NULL;
+ t->skip = 0;
+ t->meth = NULL;
+}
+
+/*
+ * Check for errors in the test structure; return 1 if okay, else 0.
+ */
+static int check_test_error(EVP_TEST *t)
+{
+ unsigned long err;
+ const char *func;
+ const char *reason;
+
+ if (t->err == NULL && t->expected_err == NULL)
+ return 1;
+ if (t->err != NULL && t->expected_err == NULL) {
+ if (t->aux_err != NULL) {
+ TEST_info("%s:%d: Source of above error (%s); unexpected error %s",
+ t->s.test_file, t->s.start, t->aux_err, t->err);
+ } else {
+ TEST_info("%s:%d: Source of above error; unexpected error %s",
+ t->s.test_file, t->s.start, t->err);
+ }
+ return 0;
+ }
+ if (t->err == NULL && t->expected_err != NULL) {
+ TEST_info("%s:%d: Succeeded but was expecting %s",
+ t->s.test_file, t->s.start, t->expected_err);
+ return 0;
+ }
+
+ if (strcmp(t->err, t->expected_err) != 0) {
+ TEST_info("%s:%d: Expected %s got %s",
+ t->s.test_file, t->s.start, t->expected_err, t->err);
+ return 0;
+ }
+
+ if (t->func == NULL && t->reason == NULL)
+ return 1;
+
+ if (t->func == NULL || t->reason == NULL) {
+ TEST_info("%s:%d: Test is missing function or reason code",
+ t->s.test_file, t->s.start);
+ return 0;
+ }
+
+ err = ERR_peek_error();
+ if (err == 0) {
+ TEST_info("%s:%d: Expected error \"%s:%s\" not set",
+ t->s.test_file, t->s.start, t->func, t->reason);
+ return 0;
+ }
+
+ func = ERR_func_error_string(err);
+ reason = ERR_reason_error_string(err);
+ if (func == NULL && reason == NULL) {
+ TEST_info("%s:%d: Expected error \"%s:%s\", no strings available."
+ " Assuming ok.",
+ t->s.test_file, t->s.start, t->func, t->reason);
+ return 1;
+ }
+
+ if (strcmp(func, t->func) == 0 && strcmp(reason, t->reason) == 0)
+ return 1;
+
+ TEST_info("%s:%d: Expected error \"%s:%s\", got \"%s:%s\"",
+ t->s.test_file, t->s.start, t->func, t->reason, func, reason);
+
+ return 0;
+}
+
+/*
+ * Run a parsed test. Log a message and return 0 on error.
+ */
+static int run_test(EVP_TEST *t)
+{
+ if (t->meth == NULL)
+ return 1;
+ t->s.numtests++;
+ if (t->skip) {
+ t->s.numskip++;
+ } else {
+ /* run the test */
+ if (t->err == NULL && t->meth->run_test(t) != 1) {
+ TEST_info("%s:%d %s error",
+ t->s.test_file, t->s.start, t->meth->name);
+ return 0;
+ }
+ if (!check_test_error(t)) {
+ TEST_openssl_errors();
+ t->s.errors++;
+ }
+ }
+
+ /* clean it up */
+ return 1;
+}
+
+static int find_key(EVP_PKEY **ppk, const char *name, KEY_LIST *lst)
+{
+ for (; lst != NULL; lst = lst->next) {
+ if (strcmp(lst->name, name) == 0) {
+ if (ppk != NULL)
+ *ppk = lst->key;
+ return 1;
+ }
+ }
+ return 0;
+}
+
+static void free_key_list(KEY_LIST *lst)
+{
+ while (lst != NULL) {
+ KEY_LIST *next = lst->next;
+
+ EVP_PKEY_free(lst->key);
+ OPENSSL_free(lst->name);
+ OPENSSL_free(lst);
+ lst = next;
+ }
+}
+
+/*
+ * Is the key type an unsupported algorithm?
+ */
+static int key_unsupported(void)
+{
+ long err = ERR_peek_error();
+
+ if (ERR_GET_LIB(err) == ERR_LIB_EVP
+ && ERR_GET_REASON(err) == EVP_R_UNSUPPORTED_ALGORITHM) {
+ ERR_clear_error();
+ return 1;
+ }
+#ifndef OPENSSL_NO_EC
+ /*
+ * If EC support is enabled we should catch also EC_R_UNKNOWN_GROUP as an
+ * hint to an unsupported algorithm/curve (e.g. if binary EC support is
+ * disabled).
+ */
+ if (ERR_GET_LIB(err) == ERR_LIB_EC
+ && ERR_GET_REASON(err) == EC_R_UNKNOWN_GROUP) {
+ ERR_clear_error();
+ return 1;
+ }
+#endif /* OPENSSL_NO_EC */
+ return 0;
+}
+
+/*
+ * NULL out the value from |pp| but return it. This "steals" a pointer.
+ */
+static char *take_value(PAIR *pp)
+{
+ char *p = pp->value;
+
+ pp->value = NULL;
+ return p;
+}
+
+/*
+ * Read and parse one test. Return 0 if failure, 1 if okay.
+ */
+static int parse(EVP_TEST *t)
+{
+ KEY_LIST *key, **klist;
+ EVP_PKEY *pkey;
+ PAIR *pp;
+ int i;
+
+top:
+ do {
+ if (BIO_eof(t->s.fp))
+ return EOF;
+ clear_test(t);
+ if (!test_readstanza(&t->s))
+ return 0;
+ } while (t->s.numpairs == 0);
+ pp = &t->s.pairs[0];
+
+ /* Are we adding a key? */
+ klist = NULL;
+ pkey = NULL;
+ if (strcmp(pp->key, "PrivateKey") == 0) {
+ pkey = PEM_read_bio_PrivateKey(t->s.key, NULL, 0, NULL);
+ if (pkey == NULL && !key_unsupported()) {
+ EVP_PKEY_free(pkey);
+ TEST_info("Can't read private key %s", pp->value);
+ TEST_openssl_errors();
+ return 0;
+ }
+ klist = &private_keys;
+ } else if (strcmp(pp->key, "PublicKey") == 0) {
+ pkey = PEM_read_bio_PUBKEY(t->s.key, NULL, 0, NULL);
+ if (pkey == NULL && !key_unsupported()) {
+ EVP_PKEY_free(pkey);
+ TEST_info("Can't read public key %s", pp->value);
+ TEST_openssl_errors();
+ return 0;
+ }
+ klist = &public_keys;
+ } else if (strcmp(pp->key, "PrivateKeyRaw") == 0
+ || strcmp(pp->key, "PublicKeyRaw") == 0 ) {
+ char *strnid = NULL, *keydata = NULL;
+ unsigned char *keybin;
+ size_t keylen;
+ int nid;
+
+ if (strcmp(pp->key, "PrivateKeyRaw") == 0)
+ klist = &private_keys;
+ else
+ klist = &public_keys;
+
+ strnid = strchr(pp->value, ':');
+ if (strnid != NULL) {
+ *strnid++ = '\0';
+ keydata = strchr(strnid, ':');
+ if (keydata != NULL)
+ *keydata++ = '\0';
+ }
+ if (keydata == NULL) {
+ TEST_info("Failed to parse %s value", pp->key);
+ return 0;
+ }
+
+ nid = OBJ_txt2nid(strnid);
+ if (nid == NID_undef) {
+ TEST_info("Uncrecognised algorithm NID");
+ return 0;
+ }
+ if (!parse_bin(keydata, &keybin, &keylen)) {
+ TEST_info("Failed to create binary key");
+ return 0;
+ }
+ if (klist == &private_keys)
+ pkey = EVP_PKEY_new_raw_private_key(nid, NULL, keybin, keylen);
+ else
+ pkey = EVP_PKEY_new_raw_public_key(nid, NULL, keybin, keylen);
+ if (pkey == NULL && !key_unsupported()) {
+ TEST_info("Can't read %s data", pp->key);
+ OPENSSL_free(keybin);
+ TEST_openssl_errors();
+ return 0;
+ }
+ OPENSSL_free(keybin);
+ }
+
+ /* If we have a key add to list */
+ if (klist != NULL) {
+ if (find_key(NULL, pp->value, *klist)) {
+ TEST_info("Duplicate key %s", pp->value);
+ return 0;
+ }
+ if (!TEST_ptr(key = OPENSSL_malloc(sizeof(*key))))
+ return 0;
+ key->name = take_value(pp);
+
+ /* Hack to detect SM2 keys */
+ if(pkey != NULL && strstr(key->name, "SM2") != NULL) {
+#ifdef OPENSSL_NO_SM2
+ EVP_PKEY_free(pkey);
+ pkey = NULL;
+#else
+ EVP_PKEY_set_alias_type(pkey, EVP_PKEY_SM2);
+#endif
+ }
+
+ key->key = pkey;
+ key->next = *klist;
+ *klist = key;
+
+ /* Go back and start a new stanza. */
+ if (t->s.numpairs != 1)
+ TEST_info("Line %d: missing blank line\n", t->s.curr);
+ goto top;
+ }
+
+ /* Find the test, based on first keyword. */
+ if (!TEST_ptr(t->meth = find_test(pp->key)))
+ return 0;
+ if (!t->meth->init(t, pp->value)) {
+ TEST_error("unknown %s: %s\n", pp->key, pp->value);
+ return 0;
+ }
+ if (t->skip == 1) {
+ /* TEST_info("skipping %s %s", pp->key, pp->value); */
+ return 0;
+ }
+
+ for (pp++, i = 1; i < t->s.numpairs; pp++, i++) {
+ if (strcmp(pp->key, "Result") == 0) {
+ if (t->expected_err != NULL) {
+ TEST_info("Line %d: multiple result lines", t->s.curr);
+ return 0;
+ }
+ t->expected_err = take_value(pp);
+ } else if (strcmp(pp->key, "Function") == 0) {
+ if (t->func != NULL) {
+ TEST_info("Line %d: multiple function lines\n", t->s.curr);
+ return 0;
+ }
+ t->func = take_value(pp);
+ } else if (strcmp(pp->key, "Reason") == 0) {
+ if (t->reason != NULL) {
+ TEST_info("Line %d: multiple reason lines", t->s.curr);
+ return 0;
+ }
+ t->reason = take_value(pp);
+ } else {
+ /* Must be test specific line: try to parse it */
+ int rv = t->meth->parse(t, pp->key, pp->value);
+
+ if (rv == 0) {
+ TEST_info("Line %d: unknown keyword %s", t->s.curr, pp->key);
+ return 0;
+ }
+ if (rv < 0) {
+ TEST_info("Line %d: error processing keyword %s = %s\n",
+ t->s.curr, pp->key, pp->value);
+ return 0;
+ }
+ }
+ }
+
+ return 1;
+}
+
+static int run_file_tests(int i)
+{
+ EVP_TEST *t;
+ const char *testfile = test_get_argument(i);
+ int c;
+
+ if (!TEST_ptr(t = OPENSSL_zalloc(sizeof(*t))))
+ return 0;
+ if (!test_start_file(&t->s, testfile)) {
+ OPENSSL_free(t);
+ return 0;
+ }
+
+ while (!BIO_eof(t->s.fp)) {
+ c = parse(t);
+ if (t->skip)
+ continue;
+ if (c == 0 || !run_test(t)) {
+ t->s.errors++;
+ break;
+ }
+ }
+ test_end_file(&t->s);
+ clear_test(t);
+
+ free_key_list(public_keys);
+ free_key_list(private_keys);
+ BIO_free(t->s.key);
+ c = t->s.errors;
+ OPENSSL_free(t);
+ return c == 0;
+}
+
+int setup_tests(void)
+{
+ size_t n = test_get_argument_count();
+
+ if (n == 0) {
+ TEST_error("Usage: %s file...", test_get_program_name());
+ return 0;
+ }
+
+ ADD_ALL_TESTS(run_file_tests, n);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/evp_test.h b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/evp_test.h
new file mode 100644
index 000000000..5402e1e80
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/evp_test.h
@@ -0,0 +1,11 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+typedef struct evp_test_buffer_st EVP_TEST_BUFFER;
+DEFINE_STACK_OF(EVP_TEST_BUFFER)
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/exdatatest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/exdatatest.c
new file mode 100644
index 000000000..bc39a145e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/exdatatest.c
@@ -0,0 +1,265 @@
+/*
+ * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <openssl/crypto.h>
+
+#include "testutil.h"
+
+static long saved_argl;
+static void *saved_argp;
+static int saved_idx;
+static int saved_idx2;
+static int gbl_result;
+
+/*
+ * SIMPLE EX_DATA IMPLEMENTATION
+ * Apps explicitly set/get ex_data as needed
+ */
+
+static void exnew(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
+ int idx, long argl, void *argp)
+{
+ if (!TEST_int_eq(idx, saved_idx)
+ || !TEST_long_eq(argl, saved_argl)
+ || !TEST_ptr_eq(argp, saved_argp)
+ || !TEST_ptr_null(ptr))
+ gbl_result = 0;
+}
+
+static int exdup(CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from,
+ void *from_d, int idx, long argl, void *argp)
+{
+ if (!TEST_int_eq(idx, saved_idx)
+ || !TEST_long_eq(argl, saved_argl)
+ || !TEST_ptr_eq(argp, saved_argp)
+ || !TEST_ptr(from_d))
+ gbl_result = 0;
+ return 1;
+}
+
+static void exfree(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
+ int idx, long argl, void *argp)
+{
+ if (!TEST_int_eq(idx, saved_idx)
+ || !TEST_long_eq(argl, saved_argl)
+ || !TEST_ptr_eq(argp, saved_argp))
+ gbl_result = 0;
+}
+
+/*
+ * PRE-ALLOCATED EX_DATA IMPLEMENTATION
+ * Extended data structure is allocated in exnew2/freed in exfree2
+ * Data is stored inside extended data structure
+ */
+
+typedef struct myobj_ex_data_st {
+ char *hello;
+ int new;
+ int dup;
+} MYOBJ_EX_DATA;
+
+static void exnew2(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
+ int idx, long argl, void *argp)
+{
+ MYOBJ_EX_DATA *ex_data = OPENSSL_zalloc(sizeof(*ex_data));
+ if (!TEST_int_eq(idx, saved_idx2)
+ || !TEST_long_eq(argl, saved_argl)
+ || !TEST_ptr_eq(argp, saved_argp)
+ || !TEST_ptr_null(ptr)
+ || !TEST_ptr(ex_data)
+ || !TEST_true(CRYPTO_set_ex_data(ad, saved_idx2, ex_data))) {
+ gbl_result = 0;
+ OPENSSL_free(ex_data);
+ } else {
+ ex_data->new = 1;
+ }
+}
+
+static int exdup2(CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from,
+ void *from_d, int idx, long argl, void *argp)
+{
+ MYOBJ_EX_DATA **update_ex_data = (MYOBJ_EX_DATA**)from_d;
+ MYOBJ_EX_DATA *ex_data = CRYPTO_get_ex_data(to, saved_idx2);
+ if (!TEST_int_eq(idx, saved_idx2)
+ || !TEST_long_eq(argl, saved_argl)
+ || !TEST_ptr_eq(argp, saved_argp)
+ || !TEST_ptr(from_d)
+ || !TEST_ptr(*update_ex_data)
+ || !TEST_ptr(ex_data)
+ || !TEST_true(ex_data->new)) {
+ gbl_result = 0;
+ } else {
+ /* Copy hello over */
+ ex_data->hello = (*update_ex_data)->hello;
+ /* indicate this is a dup */
+ ex_data->dup = 1;
+ /* Keep my original ex_data */
+ *update_ex_data = ex_data;
+ }
+ return 1;
+}
+
+static void exfree2(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
+ int idx, long argl, void *argp)
+{
+ MYOBJ_EX_DATA *ex_data = CRYPTO_get_ex_data(ad, saved_idx2);
+ OPENSSL_free(ex_data);
+ if (!TEST_int_eq(idx, saved_idx2)
+ || !TEST_long_eq(argl, saved_argl)
+ || !TEST_ptr_eq(argp, saved_argp)
+ || !TEST_ptr(ex_data)
+ || !TEST_true(CRYPTO_set_ex_data(ad, saved_idx2, NULL)))
+ gbl_result = 0;
+}
+
+typedef struct myobj_st {
+ CRYPTO_EX_DATA ex_data;
+ int id;
+ int st;
+} MYOBJ;
+
+static MYOBJ *MYOBJ_new(void)
+{
+ static int count = 0;
+ MYOBJ *obj = OPENSSL_malloc(sizeof(*obj));
+
+ obj->id = ++count;
+ obj->st = CRYPTO_new_ex_data(CRYPTO_EX_INDEX_APP, obj, &obj->ex_data);
+ return obj;
+}
+
+static void MYOBJ_sethello(MYOBJ *obj, char *cp)
+{
+ obj->st = CRYPTO_set_ex_data(&obj->ex_data, saved_idx, cp);
+ if (!TEST_int_eq(obj->st, 1))
+ gbl_result = 0;
+}
+
+static char *MYOBJ_gethello(MYOBJ *obj)
+{
+ return CRYPTO_get_ex_data(&obj->ex_data, saved_idx);
+}
+
+static void MYOBJ_sethello2(MYOBJ *obj, char *cp)
+{
+ MYOBJ_EX_DATA* ex_data = CRYPTO_get_ex_data(&obj->ex_data, saved_idx2);
+ if (TEST_ptr(ex_data))
+ ex_data->hello = cp;
+ else
+ obj->st = gbl_result = 0;
+}
+
+static char *MYOBJ_gethello2(MYOBJ *obj)
+{
+ MYOBJ_EX_DATA* ex_data = CRYPTO_get_ex_data(&obj->ex_data, saved_idx2);
+ if (TEST_ptr(ex_data))
+ return ex_data->hello;
+
+ obj->st = gbl_result = 0;
+ return NULL;
+}
+
+static void MYOBJ_free(MYOBJ *obj)
+{
+ CRYPTO_free_ex_data(CRYPTO_EX_INDEX_APP, obj, &obj->ex_data);
+ OPENSSL_free(obj);
+}
+
+static MYOBJ *MYOBJ_dup(MYOBJ *in)
+{
+ MYOBJ *obj = MYOBJ_new();
+
+ obj->st |= CRYPTO_dup_ex_data(CRYPTO_EX_INDEX_APP, &obj->ex_data,
+ &in->ex_data);
+ return obj;
+}
+
+static int test_exdata(void)
+{
+ MYOBJ *t1, *t2, *t3;
+ MYOBJ_EX_DATA *ex_data;
+ const char *cp;
+ char *p;
+
+ gbl_result = 1;
+
+ p = OPENSSL_strdup("hello world");
+ saved_argl = 21;
+ saved_argp = OPENSSL_malloc(1);
+ saved_idx = CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_APP,
+ saved_argl, saved_argp,
+ exnew, exdup, exfree);
+ saved_idx2 = CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_APP,
+ saved_argl, saved_argp,
+ exnew2, exdup2, exfree2);
+ t1 = MYOBJ_new();
+ t2 = MYOBJ_new();
+ if (!TEST_int_eq(t1->st, 1) || !TEST_int_eq(t2->st, 1))
+ return 0;
+ if (!TEST_ptr(CRYPTO_get_ex_data(&t1->ex_data, saved_idx2)))
+ return 0;
+ if (!TEST_ptr(CRYPTO_get_ex_data(&t2->ex_data, saved_idx2)))
+ return 0;
+
+ MYOBJ_sethello(t1, p);
+ cp = MYOBJ_gethello(t1);
+ if (!TEST_ptr_eq(cp, p))
+ return 0;
+
+ MYOBJ_sethello2(t1, p);
+ cp = MYOBJ_gethello2(t1);
+ if (!TEST_ptr_eq(cp, p))
+ return 0;
+
+ cp = MYOBJ_gethello(t2);
+ if (!TEST_ptr_null(cp))
+ return 0;
+
+ cp = MYOBJ_gethello2(t2);
+ if (!TEST_ptr_null(cp))
+ return 0;
+
+ t3 = MYOBJ_dup(t1);
+ if (!TEST_int_eq(t3->st, 1))
+ return 0;
+
+ ex_data = CRYPTO_get_ex_data(&t3->ex_data, saved_idx2);
+ if (!TEST_ptr(ex_data))
+ return 0;
+ if (!TEST_int_eq(ex_data->dup, 1))
+ return 0;
+
+ cp = MYOBJ_gethello(t3);
+ if (!TEST_ptr_eq(cp, p))
+ return 0;
+
+ cp = MYOBJ_gethello2(t3);
+ if (!TEST_ptr_eq(cp, p))
+ return 0;
+
+ MYOBJ_free(t1);
+ MYOBJ_free(t2);
+ MYOBJ_free(t3);
+ OPENSSL_free(saved_argp);
+ OPENSSL_free(p);
+
+ if (gbl_result)
+ return 1;
+ else
+ return 0;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_exdata);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/exptest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/exptest.c
new file mode 100644
index 000000000..cde4d6bc4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/exptest.c
@@ -0,0 +1,206 @@
+/*
+ * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "internal/nelem.h"
+
+#include <openssl/bio.h>
+#include <openssl/bn.h>
+#include <openssl/rand.h>
+#include <openssl/err.h>
+
+#include "testutil.h"
+
+#define NUM_BITS (BN_BITS2 * 4)
+
+#define BN_print_var(v) test_output_bignum(#v, v)
+
+/*
+ * Test that r == 0 in test_exp_mod_zero(). Returns one on success,
+ * returns zero and prints debug output otherwise.
+ */
+static int a_is_zero_mod_one(const char *method, const BIGNUM *r,
+ const BIGNUM *a)
+{
+ if (!BN_is_zero(r)) {
+ TEST_error("%s failed: a ** 0 mod 1 = r (should be 0)", method);
+ BN_print_var(a);
+ BN_print_var(r);
+ return 0;
+ }
+ return 1;
+}
+
+/*
+ * test_mod_exp_zero tests that x**0 mod 1 == 0. It returns zero on success.
+ */
+static int test_mod_exp_zero(void)
+{
+ BIGNUM *a = NULL, *p = NULL, *m = NULL;
+ BIGNUM *r = NULL;
+ BN_ULONG one_word = 1;
+ BN_CTX *ctx = BN_CTX_new();
+ int ret = 1, failed = 0;
+
+ if (!TEST_ptr(m = BN_new())
+ || !TEST_ptr(a = BN_new())
+ || !TEST_ptr(p = BN_new())
+ || !TEST_ptr(r = BN_new()))
+ goto err;
+
+ BN_one(m);
+ BN_one(a);
+ BN_zero(p);
+
+ if (!TEST_true(BN_rand(a, 1024, BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ANY)))
+ goto err;
+
+ if (!TEST_true(BN_mod_exp(r, a, p, m, ctx)))
+ goto err;
+
+ if (!TEST_true(a_is_zero_mod_one("BN_mod_exp", r, a)))
+ failed = 1;
+
+ if (!TEST_true(BN_mod_exp_recp(r, a, p, m, ctx)))
+ goto err;
+
+ if (!TEST_true(a_is_zero_mod_one("BN_mod_exp_recp", r, a)))
+ failed = 1;
+
+ if (!TEST_true(BN_mod_exp_simple(r, a, p, m, ctx)))
+ goto err;
+
+ if (!TEST_true(a_is_zero_mod_one("BN_mod_exp_simple", r, a)))
+ failed = 1;
+
+ if (!TEST_true(BN_mod_exp_mont(r, a, p, m, ctx, NULL)))
+ goto err;
+
+ if (!TEST_true(a_is_zero_mod_one("BN_mod_exp_mont", r, a)))
+ failed = 1;
+
+ if (!TEST_true(BN_mod_exp_mont_consttime(r, a, p, m, ctx, NULL)))
+ goto err;
+
+ if (!TEST_true(a_is_zero_mod_one("BN_mod_exp_mont_consttime", r, a)))
+ failed = 1;
+
+ /*
+ * A different codepath exists for single word multiplication
+ * in non-constant-time only.
+ */
+ if (!TEST_true(BN_mod_exp_mont_word(r, one_word, p, m, ctx, NULL)))
+ goto err;
+
+ if (!TEST_BN_eq_zero(r)) {
+ TEST_error("BN_mod_exp_mont_word failed: "
+ "1 ** 0 mod 1 = r (should be 0)");
+ BN_print_var(r);
+ goto err;
+ }
+
+ ret = !failed;
+ err:
+ BN_free(r);
+ BN_free(a);
+ BN_free(p);
+ BN_free(m);
+ BN_CTX_free(ctx);
+
+ return ret;
+}
+
+static int test_mod_exp(int round)
+{
+ BN_CTX *ctx;
+ unsigned char c;
+ int ret = 0;
+ BIGNUM *r_mont = NULL;
+ BIGNUM *r_mont_const = NULL;
+ BIGNUM *r_recp = NULL;
+ BIGNUM *r_simple = NULL;
+ BIGNUM *a = NULL;
+ BIGNUM *b = NULL;
+ BIGNUM *m = NULL;
+
+ if (!TEST_ptr(ctx = BN_CTX_new()))
+ goto err;
+
+ if (!TEST_ptr(r_mont = BN_new())
+ || !TEST_ptr(r_mont_const = BN_new())
+ || !TEST_ptr(r_recp = BN_new())
+ || !TEST_ptr(r_simple = BN_new())
+ || !TEST_ptr(a = BN_new())
+ || !TEST_ptr(b = BN_new())
+ || !TEST_ptr(m = BN_new()))
+ goto err;
+
+ RAND_bytes(&c, 1);
+ c = (c % BN_BITS) - BN_BITS2;
+ BN_rand(a, NUM_BITS + c, BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ANY);
+
+ RAND_bytes(&c, 1);
+ c = (c % BN_BITS) - BN_BITS2;
+ BN_rand(b, NUM_BITS + c, BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ANY);
+
+ RAND_bytes(&c, 1);
+ c = (c % BN_BITS) - BN_BITS2;
+ BN_rand(m, NUM_BITS + c, BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ODD);
+
+ if (!TEST_true(BN_mod(a, a, m, ctx))
+ || !TEST_true(BN_mod(b, b, m, ctx))
+ || !TEST_true(BN_mod_exp_mont(r_mont, a, b, m, ctx, NULL))
+ || !TEST_true(BN_mod_exp_recp(r_recp, a, b, m, ctx))
+ || !TEST_true(BN_mod_exp_simple(r_simple, a, b, m, ctx))
+ || !TEST_true(BN_mod_exp_mont_consttime(r_mont_const, a, b, m, ctx, NULL)))
+ goto err;
+
+ if (!TEST_BN_eq(r_simple, r_mont)
+ || !TEST_BN_eq(r_simple, r_recp)
+ || !TEST_BN_eq(r_simple, r_mont_const)) {
+ if (BN_cmp(r_simple, r_mont) != 0)
+ TEST_info("simple and mont results differ");
+ if (BN_cmp(r_simple, r_mont_const) != 0)
+ TEST_info("simple and mont const time results differ");
+ if (BN_cmp(r_simple, r_recp) != 0)
+ TEST_info("simple and recp results differ");
+
+ BN_print_var(a);
+ BN_print_var(b);
+ BN_print_var(m);
+ BN_print_var(r_simple);
+ BN_print_var(r_recp);
+ BN_print_var(r_mont);
+ BN_print_var(r_mont_const);
+ goto err;
+ }
+
+ ret = 1;
+ err:
+ BN_free(r_mont);
+ BN_free(r_mont_const);
+ BN_free(r_recp);
+ BN_free(r_simple);
+ BN_free(a);
+ BN_free(b);
+ BN_free(m);
+ BN_CTX_free(ctx);
+
+ return ret;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_mod_exp_zero);
+ ADD_ALL_TESTS(test_mod_exp, 200);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/fatalerrtest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/fatalerrtest.c
new file mode 100644
index 000000000..66731e640
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/fatalerrtest.c
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+#include "ssltestlib.h"
+#include "testutil.h"
+#include <string.h>
+
+static char *cert = NULL;
+static char *privkey = NULL;
+
+static int test_fatalerr(void)
+{
+ SSL_CTX *sctx = NULL, *cctx = NULL;
+ SSL *sssl = NULL, *cssl = NULL;
+ const char *msg = "Dummy";
+ BIO *wbio = NULL;
+ int ret = 0, len;
+ char buf[80];
+ unsigned char dummyrec[] = {
+ 0x17, 0x03, 0x03, 0x00, 0x05, 'D', 'u', 'm', 'm', 'y'
+ };
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_method(), TLS_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ goto err;
+
+ /*
+ * Deliberately set the cipher lists for client and server to be different
+ * to force a handshake failure.
+ */
+ if (!TEST_true(SSL_CTX_set_cipher_list(sctx, "AES128-SHA"))
+ || !TEST_true(SSL_CTX_set_cipher_list(cctx, "AES256-SHA"))
+ || !TEST_true(SSL_CTX_set_ciphersuites(sctx,
+ "TLS_AES_128_GCM_SHA256"))
+ || !TEST_true(SSL_CTX_set_ciphersuites(cctx,
+ "TLS_AES_256_GCM_SHA384"))
+ || !TEST_true(create_ssl_objects(sctx, cctx, &sssl, &cssl, NULL,
+ NULL)))
+ goto err;
+
+ wbio = SSL_get_wbio(cssl);
+ if (!TEST_ptr(wbio)) {
+ printf("Unexpected NULL bio received\n");
+ goto err;
+ }
+
+ /* Connection should fail */
+ if (!TEST_false(create_ssl_connection(sssl, cssl, SSL_ERROR_NONE)))
+ goto err;
+
+ ERR_clear_error();
+
+ /* Inject a plaintext record from client to server */
+ if (!TEST_int_gt(BIO_write(wbio, dummyrec, sizeof(dummyrec)), 0))
+ goto err;
+
+ /* SSL_read()/SSL_write should fail because of a previous fatal error */
+ if (!TEST_int_le(len = SSL_read(sssl, buf, sizeof(buf) - 1), 0)) {
+ buf[len] = '\0';
+ TEST_error("Unexpected success reading data: %s\n", buf);
+ goto err;
+ }
+ if (!TEST_int_le(SSL_write(sssl, msg, strlen(msg)), 0))
+ goto err;
+
+ ret = 1;
+ err:
+ SSL_free(sssl);
+ SSL_free(cssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return ret;
+}
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(cert = test_get_argument(0))
+ || !TEST_ptr(privkey = test_get_argument(1)))
+ return 0;
+
+ ADD_TEST(test_fatalerr);
+
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/generate_buildtest.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/generate_buildtest.pl
new file mode 100644
index 000000000..f9a663bea
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/generate_buildtest.pl
@@ -0,0 +1,34 @@
+#! /usr/bin/env perl
+# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use warnings;
+
+# First argument is name;
+my $name = shift @ARGV;
+my $name_uc = uc $name;
+# All other arguments are ignored for now
+
+print <<"_____";
+/*
+ * Generated with test/generate_buildtest.pl, to check that such a simple
+ * program builds.
+ */
+#include <openssl/opensslconf.h>
+#ifndef OPENSSL_NO_STDIO
+# include <stdio.h>
+#endif
+#ifndef OPENSSL_NO_${name_uc}
+# include <openssl/$name.h>
+#endif
+
+int main(void)
+{
+ return 0;
+}
+_____
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/generate_ssl_tests.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/generate_ssl_tests.pl
new file mode 100644
index 000000000..47a328c80
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/generate_ssl_tests.pl
@@ -0,0 +1,141 @@
+#! /usr/bin/env perl
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+## SSL testcase generator
+
+use strict;
+use warnings;
+
+use File::Basename;
+use File::Spec::Functions;
+
+use OpenSSL::Test qw/srctop_dir srctop_file/;
+use OpenSSL::Test::Utils;
+
+# This block needs to run before 'use lib srctop_dir' directives.
+BEGIN {
+ OpenSSL::Test::setup("no_test_here");
+}
+
+use lib srctop_dir("util", "perl"); # for with_fallback
+use lib srctop_dir("test", "ssl-tests"); # for ssltests_base
+
+use with_fallback qw(Text::Template);
+
+use vars qw/@ISA/;
+push (@ISA, qw/Text::Template/);
+
+use ssltests_base;
+
+sub print_templates {
+ my $source = srctop_file("test", "ssl_test.tmpl");
+ my $template = Text::Template->new(TYPE => 'FILE', SOURCE => $source);
+
+ print "# Generated with generate_ssl_tests.pl\n\n";
+
+ my $num = scalar @ssltests::tests;
+
+ # Add the implicit base configuration.
+ foreach my $test (@ssltests::tests) {
+ $test->{"server"} = { (%ssltests::base_server, %{$test->{"server"}}) };
+ if (defined $test->{"server2"}) {
+ $test->{"server2"} = { (%ssltests::base_server, %{$test->{"server2"}}) };
+ } else {
+ if ($test->{"server"}->{"extra"} &&
+ defined $test->{"server"}->{"extra"}->{"ServerNameCallback"}) {
+ # Default is the same as server.
+ $test->{"reuse_server2"} = 1;
+ }
+ # Do not emit an empty/duplicate "server2" section.
+ $test->{"server2"} = { };
+ }
+ if (defined $test->{"resume_server"}) {
+ $test->{"resume_server"} = { (%ssltests::base_server, %{$test->{"resume_server"}}) };
+ } else {
+ if (defined $test->{"test"}->{"HandshakeMode"} &&
+ $test->{"test"}->{"HandshakeMode"} eq "Resume") {
+ # Default is the same as server.
+ $test->{"reuse_resume_server"} = 1;
+ }
+ # Do not emit an empty/duplicate "resume-server" section.
+ $test->{"resume_server"} = { };
+ }
+ $test->{"client"} = { (%ssltests::base_client, %{$test->{"client"}}) };
+ if (defined $test->{"resume_client"}) {
+ $test->{"resume_client"} = { (%ssltests::base_client, %{$test->{"resume_client"}}) };
+ } else {
+ if (defined $test->{"test"}->{"HandshakeMode"} &&
+ $test->{"test"}->{"HandshakeMode"} eq "Resume") {
+ # Default is the same as client.
+ $test->{"reuse_resume_client"} = 1;
+ }
+ # Do not emit an empty/duplicate "resume-client" section.
+ $test->{"resume_client"} = { };
+ }
+ }
+
+ # ssl_test expects to find a
+ #
+ # num_tests = n
+ #
+ # directive in the file. It'll then look for configuration directives
+ # for n tests, that each look like this:
+ #
+ # test-n = test-section
+ #
+ # [test-section]
+ # (SSL modules for client and server configuration go here.)
+ #
+ # [test-n]
+ # (Test configuration goes here.)
+ print "num_tests = $num\n\n";
+
+ # The conf module locations must come before everything else, because
+ # they look like
+ #
+ # test-n = test-section
+ #
+ # and you can't mix and match them with sections.
+ my $idx = 0;
+
+ foreach my $test (@ssltests::tests) {
+ my $testname = "${idx}-" . $test->{'name'};
+ print "test-$idx = $testname\n";
+ $idx++;
+ }
+
+ $idx = 0;
+
+ foreach my $test (@ssltests::tests) {
+ my $testname = "${idx}-" . $test->{'name'};
+ my $text = $template->fill_in(
+ HASH => [{ idx => $idx, testname => $testname } , $test],
+ DELIMITERS => [ "{-", "-}" ]);
+ print "# ===========================================================\n\n";
+ print "$text\n";
+ $idx++;
+ }
+}
+
+# Shamelessly copied from Configure.
+sub read_config {
+ my $fname = shift;
+ open(INPUT, "< $fname") or die "Can't open input file '$fname'!\n";
+ local $/ = undef;
+ my $content = <INPUT>;
+ close(INPUT);
+ eval $content;
+ warn $@ if $@;
+}
+
+my $input_file = shift;
+# Reads the tests into ssltests::tests.
+read_config($input_file);
+print_templates();
+
+1;
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/gmdifftest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/gmdifftest.c
new file mode 100644
index 000000000..f7aa1a380
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/gmdifftest.c
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2015-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <openssl/crypto.h>
+
+#include "testutil.h"
+
+#define SECS_PER_DAY (24 * 60 * 60)
+
+/*
+ * Time checking test code. Check times are identical for a wide range of
+ * offsets. This should be run on a machine with 64 bit time_t or it will
+ * trigger the very errors the routines fix.
+ */
+
+static int check_time(long offset)
+{
+ struct tm tm1, tm2, o1;
+ int off_day, off_sec;
+ long toffset;
+ time_t t1, t2;
+
+ time(&t1);
+
+ t2 = t1 + offset;
+ OPENSSL_gmtime(&t2, &tm2);
+ OPENSSL_gmtime(&t1, &tm1);
+ o1 = tm1;
+ OPENSSL_gmtime_adj(&tm1, 0, offset);
+ if (!TEST_int_eq(tm1.tm_year, tm2.tm_year)
+ || !TEST_int_eq(tm1.tm_mon, tm2.tm_mon)
+ || !TEST_int_eq(tm1.tm_mday, tm2.tm_mday)
+ || !TEST_int_eq(tm1.tm_hour, tm2.tm_hour)
+ || !TEST_int_eq(tm1.tm_min, tm2.tm_min)
+ || !TEST_int_eq(tm1.tm_sec, tm2.tm_sec)
+ || !TEST_true(OPENSSL_gmtime_diff(&off_day, &off_sec, &o1, &tm1)))
+ return 0;
+ toffset = (long)off_day * SECS_PER_DAY + off_sec;
+ if (!TEST_long_eq(offset, toffset))
+ return 0;
+ return 1;
+}
+
+static int test_gmtime(int offset)
+{
+ return check_time(offset) &&
+ check_time(-offset) &&
+ check_time(offset * 1000L) &&
+ check_time(-offset * 1000L);
+}
+
+int setup_tests(void)
+{
+ if (sizeof(time_t) < 8)
+ TEST_info("Skipping; time_t is less than 64-bits");
+ else
+ ADD_ALL_TESTS_NOSUBTEST(test_gmtime, 1000000);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/gosttest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/gosttest.c
new file mode 100644
index 000000000..1a31a3396
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/gosttest.c
@@ -0,0 +1,91 @@
+/*
+ * Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "ssltestlib.h"
+#include "testutil.h"
+#include "internal/nelem.h"
+
+static char *cert1 = NULL;
+static char *privkey1 = NULL;
+static char *cert2 = NULL;
+static char *privkey2 = NULL;
+
+static struct {
+ char *cipher;
+ int expected_prot;
+ int certnum;
+} ciphers[] = {
+ /* Server doesn't have a cert with appropriate sig algs - should fail */
+ {"AES128-SHA", 0, 0},
+ /* Server doesn't have a TLSv1.3 capable cert - should use TLSv1.2 */
+ {"GOST2012-GOST8912-GOST8912", TLS1_2_VERSION, 0},
+ /* Server doesn't have a TLSv1.3 capable cert - should use TLSv1.2 */
+ {"GOST2012-GOST8912-GOST8912", TLS1_2_VERSION, 1},
+ /* Server doesn't have a TLSv1.3 capable cert - should use TLSv1.2 */
+ {"GOST2001-GOST89-GOST89", TLS1_2_VERSION, 0},
+};
+
+/* Test that we never negotiate TLSv1.3 if using GOST */
+static int test_tls13(int idx)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(),
+ TLS_client_method(),
+ TLS1_VERSION,
+ TLS_MAX_VERSION,
+ &sctx, &cctx,
+ ciphers[idx].certnum == 0 ? cert1
+ : cert2,
+ ciphers[idx].certnum == 0 ? privkey1
+ : privkey2)))
+ goto end;
+
+ if (!TEST_true(SSL_CTX_set_cipher_list(cctx, ciphers[idx].cipher))
+ || !TEST_true(SSL_CTX_set_cipher_list(sctx, ciphers[idx].cipher))
+ || !TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL)))
+ goto end;
+
+ if (ciphers[idx].expected_prot == 0) {
+ if (!TEST_false(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+ } else {
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_int_eq(SSL_version(clientssl),
+ ciphers[idx].expected_prot))
+ goto end;
+ }
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(cert1 = test_get_argument(0))
+ || !TEST_ptr(privkey1 = test_get_argument(1))
+ || !TEST_ptr(cert2 = test_get_argument(2))
+ || !TEST_ptr(privkey2 = test_get_argument(3)))
+ return 0;
+
+ ADD_ALL_TESTS(test_tls13, OSSL_NELEM(ciphers));
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/handshake_helper.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/handshake_helper.c
new file mode 100644
index 000000000..1742004b5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/handshake_helper.c
@@ -0,0 +1,1772 @@
+/*
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+
+#include <openssl/bio.h>
+#include <openssl/x509_vfy.h>
+#include <openssl/ssl.h>
+#ifndef OPENSSL_NO_SRP
+#include <openssl/srp.h>
+#endif
+
+#include "../ssl/ssl_local.h"
+#include "internal/sockets.h"
+#include "internal/nelem.h"
+#include "handshake_helper.h"
+#include "testutil.h"
+
+#if !defined(OPENSSL_NO_SCTP) && !defined(OPENSSL_NO_SOCK)
+#include <netinet/sctp.h>
+#endif
+
+HANDSHAKE_RESULT *HANDSHAKE_RESULT_new(void)
+{
+ HANDSHAKE_RESULT *ret;
+
+ TEST_ptr(ret = OPENSSL_zalloc(sizeof(*ret)));
+ return ret;
+}
+
+void HANDSHAKE_RESULT_free(HANDSHAKE_RESULT *result)
+{
+ if (result == NULL)
+ return;
+ OPENSSL_free(result->client_npn_negotiated);
+ OPENSSL_free(result->server_npn_negotiated);
+ OPENSSL_free(result->client_alpn_negotiated);
+ OPENSSL_free(result->server_alpn_negotiated);
+ OPENSSL_free(result->result_session_ticket_app_data);
+ sk_X509_NAME_pop_free(result->server_ca_names, X509_NAME_free);
+ sk_X509_NAME_pop_free(result->client_ca_names, X509_NAME_free);
+ OPENSSL_free(result->cipher);
+ OPENSSL_free(result);
+}
+
+/*
+ * Since there appears to be no way to extract the sent/received alert
+ * from the SSL object directly, we use the info callback and stash
+ * the result in ex_data.
+ */
+typedef struct handshake_ex_data_st {
+ int alert_sent;
+ int num_fatal_alerts_sent;
+ int alert_received;
+ int session_ticket_do_not_call;
+ ssl_servername_t servername;
+} HANDSHAKE_EX_DATA;
+
+typedef struct ctx_data_st {
+ unsigned char *npn_protocols;
+ size_t npn_protocols_len;
+ unsigned char *alpn_protocols;
+ size_t alpn_protocols_len;
+ char *srp_user;
+ char *srp_password;
+ char *session_ticket_app_data;
+} CTX_DATA;
+
+/* |ctx_data| itself is stack-allocated. */
+static void ctx_data_free_data(CTX_DATA *ctx_data)
+{
+ OPENSSL_free(ctx_data->npn_protocols);
+ ctx_data->npn_protocols = NULL;
+ OPENSSL_free(ctx_data->alpn_protocols);
+ ctx_data->alpn_protocols = NULL;
+ OPENSSL_free(ctx_data->srp_user);
+ ctx_data->srp_user = NULL;
+ OPENSSL_free(ctx_data->srp_password);
+ ctx_data->srp_password = NULL;
+ OPENSSL_free(ctx_data->session_ticket_app_data);
+ ctx_data->session_ticket_app_data = NULL;
+}
+
+static int ex_data_idx;
+
+static void info_cb(const SSL *s, int where, int ret)
+{
+ if (where & SSL_CB_ALERT) {
+ HANDSHAKE_EX_DATA *ex_data =
+ (HANDSHAKE_EX_DATA*)(SSL_get_ex_data(s, ex_data_idx));
+ if (where & SSL_CB_WRITE) {
+ ex_data->alert_sent = ret;
+ if (strcmp(SSL_alert_type_string(ret), "F") == 0
+ || strcmp(SSL_alert_desc_string(ret), "CN") == 0)
+ ex_data->num_fatal_alerts_sent++;
+ } else {
+ ex_data->alert_received = ret;
+ }
+ }
+}
+
+/* Select the appropriate server CTX.
+ * Returns SSL_TLSEXT_ERR_OK if a match was found.
+ * If |ignore| is 1, returns SSL_TLSEXT_ERR_NOACK on mismatch.
+ * Otherwise, returns SSL_TLSEXT_ERR_ALERT_FATAL on mismatch.
+ * An empty SNI extension also returns SSL_TSLEXT_ERR_NOACK.
+ */
+static int select_server_ctx(SSL *s, void *arg, int ignore)
+{
+ const char *servername = SSL_get_servername(s, TLSEXT_NAMETYPE_host_name);
+ HANDSHAKE_EX_DATA *ex_data =
+ (HANDSHAKE_EX_DATA*)(SSL_get_ex_data(s, ex_data_idx));
+
+ if (servername == NULL) {
+ ex_data->servername = SSL_TEST_SERVERNAME_SERVER1;
+ return SSL_TLSEXT_ERR_NOACK;
+ }
+
+ if (strcmp(servername, "server2") == 0) {
+ SSL_CTX *new_ctx = (SSL_CTX*)arg;
+ SSL_set_SSL_CTX(s, new_ctx);
+ /*
+ * Copy over all the SSL_CTX options - reasonable behavior
+ * allows testing of cases where the options between two
+ * contexts differ/conflict
+ */
+ SSL_clear_options(s, 0xFFFFFFFFL);
+ SSL_set_options(s, SSL_CTX_get_options(new_ctx));
+
+ ex_data->servername = SSL_TEST_SERVERNAME_SERVER2;
+ return SSL_TLSEXT_ERR_OK;
+ } else if (strcmp(servername, "server1") == 0) {
+ ex_data->servername = SSL_TEST_SERVERNAME_SERVER1;
+ return SSL_TLSEXT_ERR_OK;
+ } else if (ignore) {
+ ex_data->servername = SSL_TEST_SERVERNAME_SERVER1;
+ return SSL_TLSEXT_ERR_NOACK;
+ } else {
+ /* Don't set an explicit alert, to test library defaults. */
+ return SSL_TLSEXT_ERR_ALERT_FATAL;
+ }
+}
+
+static int client_hello_select_server_ctx(SSL *s, void *arg, int ignore)
+{
+ const char *servername;
+ const unsigned char *p;
+ size_t len, remaining;
+ HANDSHAKE_EX_DATA *ex_data =
+ (HANDSHAKE_EX_DATA*)(SSL_get_ex_data(s, ex_data_idx));
+
+ /*
+ * The server_name extension was given too much extensibility when it
+ * was written, so parsing the normal case is a bit complex.
+ */
+ if (!SSL_client_hello_get0_ext(s, TLSEXT_TYPE_server_name, &p,
+ &remaining) ||
+ remaining <= 2)
+ return 0;
+ /* Extract the length of the supplied list of names. */
+ len = (*(p++) << 8);
+ len += *(p++);
+ if (len + 2 != remaining)
+ return 0;
+ remaining = len;
+ /*
+ * The list in practice only has a single element, so we only consider
+ * the first one.
+ */
+ if (remaining == 0 || *p++ != TLSEXT_NAMETYPE_host_name)
+ return 0;
+ remaining--;
+ /* Now we can finally pull out the byte array with the actual hostname. */
+ if (remaining <= 2)
+ return 0;
+ len = (*(p++) << 8);
+ len += *(p++);
+ if (len + 2 > remaining)
+ return 0;
+ remaining = len;
+ servername = (const char *)p;
+
+ if (len == strlen("server2") && strncmp(servername, "server2", len) == 0) {
+ SSL_CTX *new_ctx = arg;
+ SSL_set_SSL_CTX(s, new_ctx);
+ /*
+ * Copy over all the SSL_CTX options - reasonable behavior
+ * allows testing of cases where the options between two
+ * contexts differ/conflict
+ */
+ SSL_clear_options(s, 0xFFFFFFFFL);
+ SSL_set_options(s, SSL_CTX_get_options(new_ctx));
+
+ ex_data->servername = SSL_TEST_SERVERNAME_SERVER2;
+ return 1;
+ } else if (len == strlen("server1") &&
+ strncmp(servername, "server1", len) == 0) {
+ ex_data->servername = SSL_TEST_SERVERNAME_SERVER1;
+ return 1;
+ } else if (ignore) {
+ ex_data->servername = SSL_TEST_SERVERNAME_SERVER1;
+ return 1;
+ }
+ return 0;
+}
+/*
+ * (RFC 6066):
+ * If the server understood the ClientHello extension but
+ * does not recognize the server name, the server SHOULD take one of two
+ * actions: either abort the handshake by sending a fatal-level
+ * unrecognized_name(112) alert or continue the handshake.
+ *
+ * This behaviour is up to the application to configure; we test both
+ * configurations to ensure the state machine propagates the result
+ * correctly.
+ */
+static int servername_ignore_cb(SSL *s, int *ad, void *arg)
+{
+ return select_server_ctx(s, arg, 1);
+}
+
+static int servername_reject_cb(SSL *s, int *ad, void *arg)
+{
+ return select_server_ctx(s, arg, 0);
+}
+
+static int client_hello_ignore_cb(SSL *s, int *al, void *arg)
+{
+ if (!client_hello_select_server_ctx(s, arg, 1)) {
+ *al = SSL_AD_UNRECOGNIZED_NAME;
+ return SSL_CLIENT_HELLO_ERROR;
+ }
+ return SSL_CLIENT_HELLO_SUCCESS;
+}
+
+static int client_hello_reject_cb(SSL *s, int *al, void *arg)
+{
+ if (!client_hello_select_server_ctx(s, arg, 0)) {
+ *al = SSL_AD_UNRECOGNIZED_NAME;
+ return SSL_CLIENT_HELLO_ERROR;
+ }
+ return SSL_CLIENT_HELLO_SUCCESS;
+}
+
+static int client_hello_nov12_cb(SSL *s, int *al, void *arg)
+{
+ int ret;
+ unsigned int v;
+ const unsigned char *p;
+
+ v = SSL_client_hello_get0_legacy_version(s);
+ if (v > TLS1_2_VERSION || v < SSL3_VERSION) {
+ *al = SSL_AD_PROTOCOL_VERSION;
+ return SSL_CLIENT_HELLO_ERROR;
+ }
+ (void)SSL_client_hello_get0_session_id(s, &p);
+ if (p == NULL ||
+ SSL_client_hello_get0_random(s, &p) == 0 ||
+ SSL_client_hello_get0_ciphers(s, &p) == 0 ||
+ SSL_client_hello_get0_compression_methods(s, &p) == 0) {
+ *al = SSL_AD_INTERNAL_ERROR;
+ return SSL_CLIENT_HELLO_ERROR;
+ }
+ ret = client_hello_select_server_ctx(s, arg, 0);
+ SSL_set_max_proto_version(s, TLS1_1_VERSION);
+ if (!ret) {
+ *al = SSL_AD_UNRECOGNIZED_NAME;
+ return SSL_CLIENT_HELLO_ERROR;
+ }
+ return SSL_CLIENT_HELLO_SUCCESS;
+}
+
+static unsigned char dummy_ocsp_resp_good_val = 0xff;
+static unsigned char dummy_ocsp_resp_bad_val = 0xfe;
+
+static int server_ocsp_cb(SSL *s, void *arg)
+{
+ unsigned char *resp;
+
+ resp = OPENSSL_malloc(1);
+ if (resp == NULL)
+ return SSL_TLSEXT_ERR_ALERT_FATAL;
+ /*
+ * For the purposes of testing we just send back a dummy OCSP response
+ */
+ *resp = *(unsigned char *)arg;
+ if (!SSL_set_tlsext_status_ocsp_resp(s, resp, 1))
+ return SSL_TLSEXT_ERR_ALERT_FATAL;
+
+ return SSL_TLSEXT_ERR_OK;
+}
+
+static int client_ocsp_cb(SSL *s, void *arg)
+{
+ const unsigned char *resp;
+ int len;
+
+ len = SSL_get_tlsext_status_ocsp_resp(s, &resp);
+ if (len != 1 || *resp != dummy_ocsp_resp_good_val)
+ return 0;
+
+ return 1;
+}
+
+static int verify_reject_cb(X509_STORE_CTX *ctx, void *arg) {
+ X509_STORE_CTX_set_error(ctx, X509_V_ERR_APPLICATION_VERIFICATION);
+ return 0;
+}
+
+static int verify_accept_cb(X509_STORE_CTX *ctx, void *arg) {
+ return 1;
+}
+
+static int broken_session_ticket_cb(SSL *s, unsigned char *key_name, unsigned char *iv,
+ EVP_CIPHER_CTX *ctx, HMAC_CTX *hctx, int enc)
+{
+ return 0;
+}
+
+static int do_not_call_session_ticket_cb(SSL *s, unsigned char *key_name,
+ unsigned char *iv,
+ EVP_CIPHER_CTX *ctx,
+ HMAC_CTX *hctx, int enc)
+{
+ HANDSHAKE_EX_DATA *ex_data =
+ (HANDSHAKE_EX_DATA*)(SSL_get_ex_data(s, ex_data_idx));
+ ex_data->session_ticket_do_not_call = 1;
+ return 0;
+}
+
+/* Parse the comma-separated list into TLS format. */
+static int parse_protos(const char *protos, unsigned char **out, size_t *outlen)
+{
+ size_t len, i, prefix;
+
+ len = strlen(protos);
+
+ /* Should never have reuse. */
+ if (!TEST_ptr_null(*out)
+ /* Test values are small, so we omit length limit checks. */
+ || !TEST_ptr(*out = OPENSSL_malloc(len + 1)))
+ return 0;
+ *outlen = len + 1;
+
+ /*
+ * foo => '3', 'f', 'o', 'o'
+ * foo,bar => '3', 'f', 'o', 'o', '3', 'b', 'a', 'r'
+ */
+ memcpy(*out + 1, protos, len);
+
+ prefix = 0;
+ i = prefix + 1;
+ while (i <= len) {
+ if ((*out)[i] == ',') {
+ if (!TEST_int_gt(i - 1, prefix))
+ goto err;
+ (*out)[prefix] = (unsigned char)(i - 1 - prefix);
+ prefix = i;
+ }
+ i++;
+ }
+ if (!TEST_int_gt(len, prefix))
+ goto err;
+ (*out)[prefix] = (unsigned char)(len - prefix);
+ return 1;
+
+err:
+ OPENSSL_free(*out);
+ *out = NULL;
+ return 0;
+}
+
+#ifndef OPENSSL_NO_NEXTPROTONEG
+/*
+ * The client SHOULD select the first protocol advertised by the server that it
+ * also supports. In the event that the client doesn't support any of server's
+ * protocols, or the server doesn't advertise any, it SHOULD select the first
+ * protocol that it supports.
+ */
+static int client_npn_cb(SSL *s, unsigned char **out, unsigned char *outlen,
+ const unsigned char *in, unsigned int inlen,
+ void *arg)
+{
+ CTX_DATA *ctx_data = (CTX_DATA*)(arg);
+ int ret;
+
+ ret = SSL_select_next_proto(out, outlen, in, inlen,
+ ctx_data->npn_protocols,
+ ctx_data->npn_protocols_len);
+ /* Accept both OPENSSL_NPN_NEGOTIATED and OPENSSL_NPN_NO_OVERLAP. */
+ return TEST_true(ret == OPENSSL_NPN_NEGOTIATED || ret == OPENSSL_NPN_NO_OVERLAP)
+ ? SSL_TLSEXT_ERR_OK : SSL_TLSEXT_ERR_ALERT_FATAL;
+}
+
+static int server_npn_cb(SSL *s, const unsigned char **data,
+ unsigned int *len, void *arg)
+{
+ CTX_DATA *ctx_data = (CTX_DATA*)(arg);
+ *data = ctx_data->npn_protocols;
+ *len = ctx_data->npn_protocols_len;
+ return SSL_TLSEXT_ERR_OK;
+}
+#endif
+
+/*
+ * The server SHOULD select the most highly preferred protocol that it supports
+ * and that is also advertised by the client. In the event that the server
+ * supports no protocols that the client advertises, then the server SHALL
+ * respond with a fatal "no_application_protocol" alert.
+ */
+static int server_alpn_cb(SSL *s, const unsigned char **out,
+ unsigned char *outlen, const unsigned char *in,
+ unsigned int inlen, void *arg)
+{
+ CTX_DATA *ctx_data = (CTX_DATA*)(arg);
+ int ret;
+
+ /* SSL_select_next_proto isn't const-correct... */
+ unsigned char *tmp_out;
+
+ /*
+ * The result points either to |in| or to |ctx_data->alpn_protocols|.
+ * The callback is allowed to point to |in| or to a long-lived buffer,
+ * so we can return directly without storing a copy.
+ */
+ ret = SSL_select_next_proto(&tmp_out, outlen,
+ ctx_data->alpn_protocols,
+ ctx_data->alpn_protocols_len, in, inlen);
+
+ *out = tmp_out;
+ /* Unlike NPN, we don't tolerate a mismatch. */
+ return ret == OPENSSL_NPN_NEGOTIATED ? SSL_TLSEXT_ERR_OK
+ : SSL_TLSEXT_ERR_ALERT_FATAL;
+}
+
+#ifndef OPENSSL_NO_SRP
+static char *client_srp_cb(SSL *s, void *arg)
+{
+ CTX_DATA *ctx_data = (CTX_DATA*)(arg);
+ return OPENSSL_strdup(ctx_data->srp_password);
+}
+
+static int server_srp_cb(SSL *s, int *ad, void *arg)
+{
+ CTX_DATA *ctx_data = (CTX_DATA*)(arg);
+ if (strcmp(ctx_data->srp_user, SSL_get_srp_username(s)) != 0)
+ return SSL3_AL_FATAL;
+ if (SSL_set_srp_server_param_pw(s, ctx_data->srp_user,
+ ctx_data->srp_password,
+ "2048" /* known group */) < 0) {
+ *ad = SSL_AD_INTERNAL_ERROR;
+ return SSL3_AL_FATAL;
+ }
+ return SSL_ERROR_NONE;
+}
+#endif /* !OPENSSL_NO_SRP */
+
+static int generate_session_ticket_cb(SSL *s, void *arg)
+{
+ CTX_DATA *server_ctx_data = arg;
+ SSL_SESSION *ss = SSL_get_session(s);
+ char *app_data = server_ctx_data->session_ticket_app_data;
+
+ if (ss == NULL || app_data == NULL)
+ return 0;
+
+ return SSL_SESSION_set1_ticket_appdata(ss, app_data, strlen(app_data));
+}
+
+static int decrypt_session_ticket_cb(SSL *s, SSL_SESSION *ss,
+ const unsigned char *keyname,
+ size_t keyname_len,
+ SSL_TICKET_STATUS status,
+ void *arg)
+{
+ switch (status) {
+ case SSL_TICKET_EMPTY:
+ case SSL_TICKET_NO_DECRYPT:
+ return SSL_TICKET_RETURN_IGNORE_RENEW;
+ case SSL_TICKET_SUCCESS:
+ return SSL_TICKET_RETURN_USE;
+ case SSL_TICKET_SUCCESS_RENEW:
+ return SSL_TICKET_RETURN_USE_RENEW;
+ default:
+ break;
+ }
+ return SSL_TICKET_RETURN_ABORT;
+}
+
+/*
+ * Configure callbacks and other properties that can't be set directly
+ * in the server/client CONF.
+ */
+static int configure_handshake_ctx(SSL_CTX *server_ctx, SSL_CTX *server2_ctx,
+ SSL_CTX *client_ctx,
+ const SSL_TEST_CTX *test,
+ const SSL_TEST_EXTRA_CONF *extra,
+ CTX_DATA *server_ctx_data,
+ CTX_DATA *server2_ctx_data,
+ CTX_DATA *client_ctx_data)
+{
+ unsigned char *ticket_keys;
+ size_t ticket_key_len;
+
+ if (!TEST_int_eq(SSL_CTX_set_max_send_fragment(server_ctx,
+ test->max_fragment_size), 1))
+ goto err;
+ if (server2_ctx != NULL) {
+ if (!TEST_int_eq(SSL_CTX_set_max_send_fragment(server2_ctx,
+ test->max_fragment_size),
+ 1))
+ goto err;
+ }
+ if (!TEST_int_eq(SSL_CTX_set_max_send_fragment(client_ctx,
+ test->max_fragment_size), 1))
+ goto err;
+
+ switch (extra->client.verify_callback) {
+ case SSL_TEST_VERIFY_ACCEPT_ALL:
+ SSL_CTX_set_cert_verify_callback(client_ctx, &verify_accept_cb, NULL);
+ break;
+ case SSL_TEST_VERIFY_REJECT_ALL:
+ SSL_CTX_set_cert_verify_callback(client_ctx, &verify_reject_cb, NULL);
+ break;
+ case SSL_TEST_VERIFY_NONE:
+ break;
+ }
+
+ switch (extra->client.max_fragment_len_mode) {
+ case TLSEXT_max_fragment_length_512:
+ case TLSEXT_max_fragment_length_1024:
+ case TLSEXT_max_fragment_length_2048:
+ case TLSEXT_max_fragment_length_4096:
+ case TLSEXT_max_fragment_length_DISABLED:
+ SSL_CTX_set_tlsext_max_fragment_length(
+ client_ctx, extra->client.max_fragment_len_mode);
+ break;
+ }
+
+ /*
+ * Link the two contexts for SNI purposes.
+ * Also do ClientHello callbacks here, as setting both ClientHello and SNI
+ * is bad.
+ */
+ switch (extra->server.servername_callback) {
+ case SSL_TEST_SERVERNAME_IGNORE_MISMATCH:
+ SSL_CTX_set_tlsext_servername_callback(server_ctx, servername_ignore_cb);
+ SSL_CTX_set_tlsext_servername_arg(server_ctx, server2_ctx);
+ break;
+ case SSL_TEST_SERVERNAME_REJECT_MISMATCH:
+ SSL_CTX_set_tlsext_servername_callback(server_ctx, servername_reject_cb);
+ SSL_CTX_set_tlsext_servername_arg(server_ctx, server2_ctx);
+ break;
+ case SSL_TEST_SERVERNAME_CB_NONE:
+ break;
+ case SSL_TEST_SERVERNAME_CLIENT_HELLO_IGNORE_MISMATCH:
+ SSL_CTX_set_client_hello_cb(server_ctx, client_hello_ignore_cb, server2_ctx);
+ break;
+ case SSL_TEST_SERVERNAME_CLIENT_HELLO_REJECT_MISMATCH:
+ SSL_CTX_set_client_hello_cb(server_ctx, client_hello_reject_cb, server2_ctx);
+ break;
+ case SSL_TEST_SERVERNAME_CLIENT_HELLO_NO_V12:
+ SSL_CTX_set_client_hello_cb(server_ctx, client_hello_nov12_cb, server2_ctx);
+ }
+
+ if (extra->server.cert_status != SSL_TEST_CERT_STATUS_NONE) {
+ SSL_CTX_set_tlsext_status_type(client_ctx, TLSEXT_STATUSTYPE_ocsp);
+ SSL_CTX_set_tlsext_status_cb(client_ctx, client_ocsp_cb);
+ SSL_CTX_set_tlsext_status_arg(client_ctx, NULL);
+ SSL_CTX_set_tlsext_status_cb(server_ctx, server_ocsp_cb);
+ SSL_CTX_set_tlsext_status_arg(server_ctx,
+ ((extra->server.cert_status == SSL_TEST_CERT_STATUS_GOOD_RESPONSE)
+ ? &dummy_ocsp_resp_good_val : &dummy_ocsp_resp_bad_val));
+ }
+
+ /*
+ * The initial_ctx/session_ctx always handles the encrypt/decrypt of the
+ * session ticket. This ticket_key callback is assigned to the second
+ * session (assigned via SNI), and should never be invoked
+ */
+ if (server2_ctx != NULL)
+ SSL_CTX_set_tlsext_ticket_key_cb(server2_ctx,
+ do_not_call_session_ticket_cb);
+
+ if (extra->server.broken_session_ticket) {
+ SSL_CTX_set_tlsext_ticket_key_cb(server_ctx, broken_session_ticket_cb);
+ }
+#ifndef OPENSSL_NO_NEXTPROTONEG
+ if (extra->server.npn_protocols != NULL) {
+ if (!TEST_true(parse_protos(extra->server.npn_protocols,
+ &server_ctx_data->npn_protocols,
+ &server_ctx_data->npn_protocols_len)))
+ goto err;
+ SSL_CTX_set_npn_advertised_cb(server_ctx, server_npn_cb,
+ server_ctx_data);
+ }
+ if (extra->server2.npn_protocols != NULL) {
+ if (!TEST_true(parse_protos(extra->server2.npn_protocols,
+ &server2_ctx_data->npn_protocols,
+ &server2_ctx_data->npn_protocols_len))
+ || !TEST_ptr(server2_ctx))
+ goto err;
+ SSL_CTX_set_npn_advertised_cb(server2_ctx, server_npn_cb,
+ server2_ctx_data);
+ }
+ if (extra->client.npn_protocols != NULL) {
+ if (!TEST_true(parse_protos(extra->client.npn_protocols,
+ &client_ctx_data->npn_protocols,
+ &client_ctx_data->npn_protocols_len)))
+ goto err;
+ SSL_CTX_set_next_proto_select_cb(client_ctx, client_npn_cb,
+ client_ctx_data);
+ }
+#endif
+ if (extra->server.alpn_protocols != NULL) {
+ if (!TEST_true(parse_protos(extra->server.alpn_protocols,
+ &server_ctx_data->alpn_protocols,
+ &server_ctx_data->alpn_protocols_len)))
+ goto err;
+ SSL_CTX_set_alpn_select_cb(server_ctx, server_alpn_cb, server_ctx_data);
+ }
+ if (extra->server2.alpn_protocols != NULL) {
+ if (!TEST_ptr(server2_ctx)
+ || !TEST_true(parse_protos(extra->server2.alpn_protocols,
+ &server2_ctx_data->alpn_protocols,
+ &server2_ctx_data->alpn_protocols_len
+ )))
+ goto err;
+ SSL_CTX_set_alpn_select_cb(server2_ctx, server_alpn_cb,
+ server2_ctx_data);
+ }
+ if (extra->client.alpn_protocols != NULL) {
+ unsigned char *alpn_protos = NULL;
+ size_t alpn_protos_len;
+ if (!TEST_true(parse_protos(extra->client.alpn_protocols,
+ &alpn_protos, &alpn_protos_len))
+ /* Reversed return value convention... */
+ || !TEST_int_eq(SSL_CTX_set_alpn_protos(client_ctx, alpn_protos,
+ alpn_protos_len), 0))
+ goto err;
+ OPENSSL_free(alpn_protos);
+ }
+
+ if (extra->server.session_ticket_app_data != NULL) {
+ server_ctx_data->session_ticket_app_data =
+ OPENSSL_strdup(extra->server.session_ticket_app_data);
+ SSL_CTX_set_session_ticket_cb(server_ctx, generate_session_ticket_cb,
+ decrypt_session_ticket_cb, server_ctx_data);
+ }
+ if (extra->server2.session_ticket_app_data != NULL) {
+ if (!TEST_ptr(server2_ctx))
+ goto err;
+ server2_ctx_data->session_ticket_app_data =
+ OPENSSL_strdup(extra->server2.session_ticket_app_data);
+ SSL_CTX_set_session_ticket_cb(server2_ctx, NULL,
+ decrypt_session_ticket_cb, server2_ctx_data);
+ }
+
+ /*
+ * Use fixed session ticket keys so that we can decrypt a ticket created with
+ * one CTX in another CTX. Don't address server2 for the moment.
+ */
+ ticket_key_len = SSL_CTX_set_tlsext_ticket_keys(server_ctx, NULL, 0);
+ if (!TEST_ptr(ticket_keys = OPENSSL_zalloc(ticket_key_len))
+ || !TEST_int_eq(SSL_CTX_set_tlsext_ticket_keys(server_ctx,
+ ticket_keys,
+ ticket_key_len), 1)) {
+ OPENSSL_free(ticket_keys);
+ goto err;
+ }
+ OPENSSL_free(ticket_keys);
+
+ /* The default log list includes EC keys, so CT can't work without EC. */
+#if !defined(OPENSSL_NO_CT) && !defined(OPENSSL_NO_EC)
+ if (!TEST_true(SSL_CTX_set_default_ctlog_list_file(client_ctx)))
+ goto err;
+ switch (extra->client.ct_validation) {
+ case SSL_TEST_CT_VALIDATION_PERMISSIVE:
+ if (!TEST_true(SSL_CTX_enable_ct(client_ctx,
+ SSL_CT_VALIDATION_PERMISSIVE)))
+ goto err;
+ break;
+ case SSL_TEST_CT_VALIDATION_STRICT:
+ if (!TEST_true(SSL_CTX_enable_ct(client_ctx, SSL_CT_VALIDATION_STRICT)))
+ goto err;
+ break;
+ case SSL_TEST_CT_VALIDATION_NONE:
+ break;
+ }
+#endif
+#ifndef OPENSSL_NO_SRP
+ if (extra->server.srp_user != NULL) {
+ SSL_CTX_set_srp_username_callback(server_ctx, server_srp_cb);
+ server_ctx_data->srp_user = OPENSSL_strdup(extra->server.srp_user);
+ server_ctx_data->srp_password = OPENSSL_strdup(extra->server.srp_password);
+ SSL_CTX_set_srp_cb_arg(server_ctx, server_ctx_data);
+ }
+ if (extra->server2.srp_user != NULL) {
+ if (!TEST_ptr(server2_ctx))
+ goto err;
+ SSL_CTX_set_srp_username_callback(server2_ctx, server_srp_cb);
+ server2_ctx_data->srp_user = OPENSSL_strdup(extra->server2.srp_user);
+ server2_ctx_data->srp_password = OPENSSL_strdup(extra->server2.srp_password);
+ SSL_CTX_set_srp_cb_arg(server2_ctx, server2_ctx_data);
+ }
+ if (extra->client.srp_user != NULL) {
+ if (!TEST_true(SSL_CTX_set_srp_username(client_ctx,
+ extra->client.srp_user)))
+ goto err;
+ SSL_CTX_set_srp_client_pwd_callback(client_ctx, client_srp_cb);
+ client_ctx_data->srp_password = OPENSSL_strdup(extra->client.srp_password);
+ SSL_CTX_set_srp_cb_arg(client_ctx, client_ctx_data);
+ }
+#endif /* !OPENSSL_NO_SRP */
+ return 1;
+err:
+ return 0;
+}
+
+/* Configure per-SSL callbacks and other properties. */
+static void configure_handshake_ssl(SSL *server, SSL *client,
+ const SSL_TEST_EXTRA_CONF *extra)
+{
+ if (extra->client.servername != SSL_TEST_SERVERNAME_NONE)
+ SSL_set_tlsext_host_name(client,
+ ssl_servername_name(extra->client.servername));
+ if (extra->client.enable_pha)
+ SSL_set_post_handshake_auth(client, 1);
+}
+
+/* The status for each connection phase. */
+typedef enum {
+ PEER_SUCCESS,
+ PEER_RETRY,
+ PEER_ERROR,
+ PEER_WAITING,
+ PEER_TEST_FAILURE
+} peer_status_t;
+
+/* An SSL object and associated read-write buffers. */
+typedef struct peer_st {
+ SSL *ssl;
+ /* Buffer lengths are int to match the SSL read/write API. */
+ unsigned char *write_buf;
+ int write_buf_len;
+ unsigned char *read_buf;
+ int read_buf_len;
+ int bytes_to_write;
+ int bytes_to_read;
+ peer_status_t status;
+} PEER;
+
+static int create_peer(PEER *peer, SSL_CTX *ctx)
+{
+ static const int peer_buffer_size = 64 * 1024;
+ SSL *ssl = NULL;
+ unsigned char *read_buf = NULL, *write_buf = NULL;
+
+ if (!TEST_ptr(ssl = SSL_new(ctx))
+ || !TEST_ptr(write_buf = OPENSSL_zalloc(peer_buffer_size))
+ || !TEST_ptr(read_buf = OPENSSL_zalloc(peer_buffer_size)))
+ goto err;
+
+ peer->ssl = ssl;
+ peer->write_buf = write_buf;
+ peer->read_buf = read_buf;
+ peer->write_buf_len = peer->read_buf_len = peer_buffer_size;
+ return 1;
+err:
+ SSL_free(ssl);
+ OPENSSL_free(write_buf);
+ OPENSSL_free(read_buf);
+ return 0;
+}
+
+static void peer_free_data(PEER *peer)
+{
+ SSL_free(peer->ssl);
+ OPENSSL_free(peer->write_buf);
+ OPENSSL_free(peer->read_buf);
+}
+
+/*
+ * Note that we could do the handshake transparently under an SSL_write,
+ * but separating the steps is more helpful for debugging test failures.
+ */
+static void do_handshake_step(PEER *peer)
+{
+ if (!TEST_int_eq(peer->status, PEER_RETRY)) {
+ peer->status = PEER_TEST_FAILURE;
+ } else {
+ int ret = SSL_do_handshake(peer->ssl);
+
+ if (ret == 1) {
+ peer->status = PEER_SUCCESS;
+ } else if (ret == 0) {
+ peer->status = PEER_ERROR;
+ } else {
+ int error = SSL_get_error(peer->ssl, ret);
+ /* Memory bios should never block with SSL_ERROR_WANT_WRITE. */
+ if (error != SSL_ERROR_WANT_READ)
+ peer->status = PEER_ERROR;
+ }
+ }
+}
+
+/*-
+ * Send/receive some application data. The read-write sequence is
+ * Peer A: (R) W - first read will yield no data
+ * Peer B: R W
+ * ...
+ * Peer A: R W
+ * Peer B: R W
+ * Peer A: R
+ */
+static void do_app_data_step(PEER *peer)
+{
+ int ret = 1, write_bytes;
+
+ if (!TEST_int_eq(peer->status, PEER_RETRY)) {
+ peer->status = PEER_TEST_FAILURE;
+ return;
+ }
+
+ /* We read everything available... */
+ while (ret > 0 && peer->bytes_to_read) {
+ ret = SSL_read(peer->ssl, peer->read_buf, peer->read_buf_len);
+ if (ret > 0) {
+ if (!TEST_int_le(ret, peer->bytes_to_read)) {
+ peer->status = PEER_TEST_FAILURE;
+ return;
+ }
+ peer->bytes_to_read -= ret;
+ } else if (ret == 0) {
+ peer->status = PEER_ERROR;
+ return;
+ } else {
+ int error = SSL_get_error(peer->ssl, ret);
+ if (error != SSL_ERROR_WANT_READ) {
+ peer->status = PEER_ERROR;
+ return;
+ } /* Else continue with write. */
+ }
+ }
+
+ /* ... but we only write one write-buffer-full of data. */
+ write_bytes = peer->bytes_to_write < peer->write_buf_len ? peer->bytes_to_write :
+ peer->write_buf_len;
+ if (write_bytes) {
+ ret = SSL_write(peer->ssl, peer->write_buf, write_bytes);
+ if (ret > 0) {
+ /* SSL_write will only succeed with a complete write. */
+ if (!TEST_int_eq(ret, write_bytes)) {
+ peer->status = PEER_TEST_FAILURE;
+ return;
+ }
+ peer->bytes_to_write -= ret;
+ } else {
+ /*
+ * We should perhaps check for SSL_ERROR_WANT_READ/WRITE here
+ * but this doesn't yet occur with current app data sizes.
+ */
+ peer->status = PEER_ERROR;
+ return;
+ }
+ }
+
+ /*
+ * We could simply finish when there was nothing to read, and we have
+ * nothing left to write. But keeping track of the expected number of bytes
+ * to read gives us somewhat better guarantees that all data sent is in fact
+ * received.
+ */
+ if (!peer->bytes_to_write && !peer->bytes_to_read) {
+ peer->status = PEER_SUCCESS;
+ }
+}
+
+static void do_reneg_setup_step(const SSL_TEST_CTX *test_ctx, PEER *peer)
+{
+ int ret;
+ char buf;
+
+ if (peer->status == PEER_SUCCESS) {
+ /*
+ * We are a client that succeeded this step previously, but the server
+ * wanted to retry. Probably there is a no_renegotiation warning alert
+ * waiting for us. Attempt to continue the handshake.
+ */
+ peer->status = PEER_RETRY;
+ do_handshake_step(peer);
+ return;
+ }
+
+ if (!TEST_int_eq(peer->status, PEER_RETRY)
+ || !TEST_true(test_ctx->handshake_mode
+ == SSL_TEST_HANDSHAKE_RENEG_SERVER
+ || test_ctx->handshake_mode
+ == SSL_TEST_HANDSHAKE_RENEG_CLIENT
+ || test_ctx->handshake_mode
+ == SSL_TEST_HANDSHAKE_KEY_UPDATE_SERVER
+ || test_ctx->handshake_mode
+ == SSL_TEST_HANDSHAKE_KEY_UPDATE_CLIENT
+ || test_ctx->handshake_mode
+ == SSL_TEST_HANDSHAKE_POST_HANDSHAKE_AUTH)) {
+ peer->status = PEER_TEST_FAILURE;
+ return;
+ }
+
+ /* Reset the count of the amount of app data we need to read/write */
+ peer->bytes_to_write = peer->bytes_to_read = test_ctx->app_data_size;
+
+ /* Check if we are the peer that is going to initiate */
+ if ((test_ctx->handshake_mode == SSL_TEST_HANDSHAKE_RENEG_SERVER
+ && SSL_is_server(peer->ssl))
+ || (test_ctx->handshake_mode == SSL_TEST_HANDSHAKE_RENEG_CLIENT
+ && !SSL_is_server(peer->ssl))) {
+ /*
+ * If we already asked for a renegotiation then fall through to the
+ * SSL_read() below.
+ */
+ if (!SSL_renegotiate_pending(peer->ssl)) {
+ /*
+ * If we are the client we will always attempt to resume the
+ * session. The server may or may not resume dependent on the
+ * setting of SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION
+ */
+ if (SSL_is_server(peer->ssl)) {
+ ret = SSL_renegotiate(peer->ssl);
+ } else {
+ if (test_ctx->extra.client.reneg_ciphers != NULL) {
+ if (!SSL_set_cipher_list(peer->ssl,
+ test_ctx->extra.client.reneg_ciphers)) {
+ peer->status = PEER_ERROR;
+ return;
+ }
+ ret = SSL_renegotiate(peer->ssl);
+ } else {
+ ret = SSL_renegotiate_abbreviated(peer->ssl);
+ }
+ }
+ if (!ret) {
+ peer->status = PEER_ERROR;
+ return;
+ }
+ do_handshake_step(peer);
+ /*
+ * If status is PEER_RETRY it means we're waiting on the peer to
+ * continue the handshake. As far as setting up the renegotiation is
+ * concerned that is a success. The next step will continue the
+ * handshake to its conclusion.
+ *
+ * If status is PEER_SUCCESS then we are the server and we have
+ * successfully sent the HelloRequest. We need to continue to wait
+ * until the handshake arrives from the client.
+ */
+ if (peer->status == PEER_RETRY)
+ peer->status = PEER_SUCCESS;
+ else if (peer->status == PEER_SUCCESS)
+ peer->status = PEER_RETRY;
+ return;
+ }
+ } else if (test_ctx->handshake_mode == SSL_TEST_HANDSHAKE_KEY_UPDATE_SERVER
+ || test_ctx->handshake_mode
+ == SSL_TEST_HANDSHAKE_KEY_UPDATE_CLIENT) {
+ if (SSL_is_server(peer->ssl)
+ != (test_ctx->handshake_mode
+ == SSL_TEST_HANDSHAKE_KEY_UPDATE_SERVER)) {
+ peer->status = PEER_SUCCESS;
+ return;
+ }
+
+ ret = SSL_key_update(peer->ssl, test_ctx->key_update_type);
+ if (!ret) {
+ peer->status = PEER_ERROR;
+ return;
+ }
+ do_handshake_step(peer);
+ /*
+ * This is a one step handshake. We shouldn't get anything other than
+ * PEER_SUCCESS
+ */
+ if (peer->status != PEER_SUCCESS)
+ peer->status = PEER_ERROR;
+ return;
+ } else if (test_ctx->handshake_mode == SSL_TEST_HANDSHAKE_POST_HANDSHAKE_AUTH) {
+ if (SSL_is_server(peer->ssl)) {
+ /* Make the server believe it's received the extension */
+ if (test_ctx->extra.server.force_pha)
+ peer->ssl->post_handshake_auth = SSL_PHA_EXT_RECEIVED;
+ ret = SSL_verify_client_post_handshake(peer->ssl);
+ if (!ret) {
+ peer->status = PEER_ERROR;
+ return;
+ }
+ }
+ do_handshake_step(peer);
+ /*
+ * This is a one step handshake. We shouldn't get anything other than
+ * PEER_SUCCESS
+ */
+ if (peer->status != PEER_SUCCESS)
+ peer->status = PEER_ERROR;
+ return;
+ }
+
+ /*
+ * The SSL object is still expecting app data, even though it's going to
+ * get a handshake message. We try to read, and it should fail - after which
+ * we should be in a handshake
+ */
+ ret = SSL_read(peer->ssl, &buf, sizeof(buf));
+ if (ret >= 0) {
+ /*
+ * We're not actually expecting data - we're expecting a reneg to
+ * start
+ */
+ peer->status = PEER_ERROR;
+ return;
+ } else {
+ int error = SSL_get_error(peer->ssl, ret);
+ if (error != SSL_ERROR_WANT_READ) {
+ peer->status = PEER_ERROR;
+ return;
+ }
+ /* If we're not in init yet then we're not done with setup yet */
+ if (!SSL_in_init(peer->ssl))
+ return;
+ }
+
+ peer->status = PEER_SUCCESS;
+}
+
+
+/*
+ * RFC 5246 says:
+ *
+ * Note that as of TLS 1.1,
+ * failure to properly close a connection no longer requires that a
+ * session not be resumed. This is a change from TLS 1.0 to conform
+ * with widespread implementation practice.
+ *
+ * However,
+ * (a) OpenSSL requires that a connection be shutdown for all protocol versions.
+ * (b) We test lower versions, too.
+ * So we just implement shutdown. We do a full bidirectional shutdown so that we
+ * can compare sent and received close_notify alerts and get some test coverage
+ * for SSL_shutdown as a bonus.
+ */
+static void do_shutdown_step(PEER *peer)
+{
+ int ret;
+
+ if (!TEST_int_eq(peer->status, PEER_RETRY)) {
+ peer->status = PEER_TEST_FAILURE;
+ return;
+ }
+ ret = SSL_shutdown(peer->ssl);
+
+ if (ret == 1) {
+ peer->status = PEER_SUCCESS;
+ } else if (ret < 0) { /* On 0, we retry. */
+ int error = SSL_get_error(peer->ssl, ret);
+
+ if (error != SSL_ERROR_WANT_READ && error != SSL_ERROR_WANT_WRITE)
+ peer->status = PEER_ERROR;
+ }
+}
+
+typedef enum {
+ HANDSHAKE,
+ RENEG_APPLICATION_DATA,
+ RENEG_SETUP,
+ RENEG_HANDSHAKE,
+ APPLICATION_DATA,
+ SHUTDOWN,
+ CONNECTION_DONE
+} connect_phase_t;
+
+
+static int renegotiate_op(const SSL_TEST_CTX *test_ctx)
+{
+ switch (test_ctx->handshake_mode) {
+ case SSL_TEST_HANDSHAKE_RENEG_SERVER:
+ case SSL_TEST_HANDSHAKE_RENEG_CLIENT:
+ return 1;
+ default:
+ return 0;
+ }
+}
+static int post_handshake_op(const SSL_TEST_CTX *test_ctx)
+{
+ switch (test_ctx->handshake_mode) {
+ case SSL_TEST_HANDSHAKE_KEY_UPDATE_CLIENT:
+ case SSL_TEST_HANDSHAKE_KEY_UPDATE_SERVER:
+ case SSL_TEST_HANDSHAKE_POST_HANDSHAKE_AUTH:
+ return 1;
+ default:
+ return 0;
+ }
+}
+
+static connect_phase_t next_phase(const SSL_TEST_CTX *test_ctx,
+ connect_phase_t phase)
+{
+ switch (phase) {
+ case HANDSHAKE:
+ if (renegotiate_op(test_ctx) || post_handshake_op(test_ctx))
+ return RENEG_APPLICATION_DATA;
+ return APPLICATION_DATA;
+ case RENEG_APPLICATION_DATA:
+ return RENEG_SETUP;
+ case RENEG_SETUP:
+ if (post_handshake_op(test_ctx))
+ return APPLICATION_DATA;
+ return RENEG_HANDSHAKE;
+ case RENEG_HANDSHAKE:
+ return APPLICATION_DATA;
+ case APPLICATION_DATA:
+ return SHUTDOWN;
+ case SHUTDOWN:
+ return CONNECTION_DONE;
+ case CONNECTION_DONE:
+ TEST_error("Trying to progress after connection done");
+ break;
+ }
+ return -1;
+}
+
+static void do_connect_step(const SSL_TEST_CTX *test_ctx, PEER *peer,
+ connect_phase_t phase)
+{
+ switch (phase) {
+ case HANDSHAKE:
+ do_handshake_step(peer);
+ break;
+ case RENEG_APPLICATION_DATA:
+ do_app_data_step(peer);
+ break;
+ case RENEG_SETUP:
+ do_reneg_setup_step(test_ctx, peer);
+ break;
+ case RENEG_HANDSHAKE:
+ do_handshake_step(peer);
+ break;
+ case APPLICATION_DATA:
+ do_app_data_step(peer);
+ break;
+ case SHUTDOWN:
+ do_shutdown_step(peer);
+ break;
+ case CONNECTION_DONE:
+ TEST_error("Action after connection done");
+ break;
+ }
+}
+
+typedef enum {
+ /* Both parties succeeded. */
+ HANDSHAKE_SUCCESS,
+ /* Client errored. */
+ CLIENT_ERROR,
+ /* Server errored. */
+ SERVER_ERROR,
+ /* Peers are in inconsistent state. */
+ INTERNAL_ERROR,
+ /* One or both peers not done. */
+ HANDSHAKE_RETRY
+} handshake_status_t;
+
+/*
+ * Determine the handshake outcome.
+ * last_status: the status of the peer to have acted last.
+ * previous_status: the status of the peer that didn't act last.
+ * client_spoke_last: 1 if the client went last.
+ */
+static handshake_status_t handshake_status(peer_status_t last_status,
+ peer_status_t previous_status,
+ int client_spoke_last)
+{
+ switch (last_status) {
+ case PEER_TEST_FAILURE:
+ return INTERNAL_ERROR;
+
+ case PEER_WAITING:
+ /* Shouldn't ever happen */
+ return INTERNAL_ERROR;
+
+ case PEER_SUCCESS:
+ switch (previous_status) {
+ case PEER_TEST_FAILURE:
+ return INTERNAL_ERROR;
+ case PEER_SUCCESS:
+ /* Both succeeded. */
+ return HANDSHAKE_SUCCESS;
+ case PEER_WAITING:
+ case PEER_RETRY:
+ /* Let the first peer finish. */
+ return HANDSHAKE_RETRY;
+ case PEER_ERROR:
+ /*
+ * Second peer succeeded despite the fact that the first peer
+ * already errored. This shouldn't happen.
+ */
+ return INTERNAL_ERROR;
+ }
+ break;
+
+ case PEER_RETRY:
+ return HANDSHAKE_RETRY;
+
+ case PEER_ERROR:
+ switch (previous_status) {
+ case PEER_TEST_FAILURE:
+ return INTERNAL_ERROR;
+ case PEER_WAITING:
+ /* The client failed immediately before sending the ClientHello */
+ return client_spoke_last ? CLIENT_ERROR : INTERNAL_ERROR;
+ case PEER_SUCCESS:
+ /*
+ * First peer succeeded but second peer errored.
+ * TODO(emilia): we should be able to continue here (with some
+ * application data?) to ensure the first peer receives the
+ * alert / close_notify.
+ * (No tests currently exercise this branch.)
+ */
+ return client_spoke_last ? CLIENT_ERROR : SERVER_ERROR;
+ case PEER_RETRY:
+ /* We errored; let the peer finish. */
+ return HANDSHAKE_RETRY;
+ case PEER_ERROR:
+ /* Both peers errored. Return the one that errored first. */
+ return client_spoke_last ? SERVER_ERROR : CLIENT_ERROR;
+ }
+ }
+ /* Control should never reach here. */
+ return INTERNAL_ERROR;
+}
+
+/* Convert unsigned char buf's that shouldn't contain any NUL-bytes to char. */
+static char *dup_str(const unsigned char *in, size_t len)
+{
+ char *ret = NULL;
+
+ if (len == 0)
+ return NULL;
+
+ /* Assert that the string does not contain NUL-bytes. */
+ if (TEST_size_t_eq(OPENSSL_strnlen((const char*)(in), len), len))
+ TEST_ptr(ret = OPENSSL_strndup((const char*)(in), len));
+ return ret;
+}
+
+static int pkey_type(EVP_PKEY *pkey)
+{
+ int nid = EVP_PKEY_id(pkey);
+
+#ifndef OPENSSL_NO_EC
+ if (nid == EVP_PKEY_EC) {
+ const EC_KEY *ec = EVP_PKEY_get0_EC_KEY(pkey);
+ return EC_GROUP_get_curve_name(EC_KEY_get0_group(ec));
+ }
+#endif
+ return nid;
+}
+
+static int peer_pkey_type(SSL *s)
+{
+ X509 *x = SSL_get_peer_certificate(s);
+
+ if (x != NULL) {
+ int nid = pkey_type(X509_get0_pubkey(x));
+
+ X509_free(x);
+ return nid;
+ }
+ return NID_undef;
+}
+
+#if !defined(OPENSSL_NO_SCTP) && !defined(OPENSSL_NO_SOCK)
+static int set_sock_as_sctp(int sock)
+{
+ struct sctp_assocparams assocparams;
+ struct sctp_rtoinfo rto_info;
+ BIO *tmpbio;
+
+ /*
+ * To allow tests to fail fast (within a second or so), reduce the
+ * retransmission timeouts and the number of retransmissions.
+ */
+ memset(&rto_info, 0, sizeof(struct sctp_rtoinfo));
+ rto_info.srto_initial = 100;
+ rto_info.srto_max = 200;
+ rto_info.srto_min = 50;
+ (void)setsockopt(sock, IPPROTO_SCTP, SCTP_RTOINFO,
+ (const void *)&rto_info, sizeof(struct sctp_rtoinfo));
+ memset(&assocparams, 0, sizeof(struct sctp_assocparams));
+ assocparams.sasoc_asocmaxrxt = 2;
+ (void)setsockopt(sock, IPPROTO_SCTP, SCTP_ASSOCINFO,
+ (const void *)&assocparams,
+ sizeof(struct sctp_assocparams));
+
+ /*
+ * For SCTP we have to set various options on the socket prior to
+ * connecting. This is done automatically by BIO_new_dgram_sctp().
+ * We don't actually need the created BIO though so we free it again
+ * immediately.
+ */
+ tmpbio = BIO_new_dgram_sctp(sock, BIO_NOCLOSE);
+
+ if (tmpbio == NULL)
+ return 0;
+ BIO_free(tmpbio);
+
+ return 1;
+}
+
+static int create_sctp_socks(int *ssock, int *csock)
+{
+ BIO_ADDRINFO *res = NULL;
+ const BIO_ADDRINFO *ai = NULL;
+ int lsock = INVALID_SOCKET, asock = INVALID_SOCKET;
+ int consock = INVALID_SOCKET;
+ int ret = 0;
+ int family = 0;
+
+ if (BIO_sock_init() != 1)
+ return 0;
+
+ /*
+ * Port is 4463. It could be anything. It will fail if it's already being
+ * used for some other SCTP service. It seems unlikely though so we don't
+ * worry about it here.
+ */
+ if (!BIO_lookup_ex(NULL, "4463", BIO_LOOKUP_SERVER, family, SOCK_STREAM,
+ IPPROTO_SCTP, &res))
+ return 0;
+
+ for (ai = res; ai != NULL; ai = BIO_ADDRINFO_next(ai)) {
+ family = BIO_ADDRINFO_family(ai);
+ lsock = BIO_socket(family, SOCK_STREAM, IPPROTO_SCTP, 0);
+ if (lsock == INVALID_SOCKET) {
+ /* Maybe the kernel doesn't support the socket family, even if
+ * BIO_lookup() added it in the returned result...
+ */
+ continue;
+ }
+
+ if (!set_sock_as_sctp(lsock)
+ || !BIO_listen(lsock, BIO_ADDRINFO_address(ai),
+ BIO_SOCK_REUSEADDR)) {
+ BIO_closesocket(lsock);
+ lsock = INVALID_SOCKET;
+ continue;
+ }
+
+ /* Success, don't try any more addresses */
+ break;
+ }
+
+ if (lsock == INVALID_SOCKET)
+ goto err;
+
+ BIO_ADDRINFO_free(res);
+ res = NULL;
+
+ if (!BIO_lookup_ex(NULL, "4463", BIO_LOOKUP_CLIENT, family, SOCK_STREAM,
+ IPPROTO_SCTP, &res))
+ goto err;
+
+ consock = BIO_socket(family, SOCK_STREAM, IPPROTO_SCTP, 0);
+ if (consock == INVALID_SOCKET)
+ goto err;
+
+ if (!set_sock_as_sctp(consock)
+ || !BIO_connect(consock, BIO_ADDRINFO_address(res), 0)
+ || !BIO_socket_nbio(consock, 1))
+ goto err;
+
+ asock = BIO_accept_ex(lsock, NULL, BIO_SOCK_NONBLOCK);
+ if (asock == INVALID_SOCKET)
+ goto err;
+
+ *csock = consock;
+ *ssock = asock;
+ consock = asock = INVALID_SOCKET;
+ ret = 1;
+
+ err:
+ BIO_ADDRINFO_free(res);
+ if (consock != INVALID_SOCKET)
+ BIO_closesocket(consock);
+ if (lsock != INVALID_SOCKET)
+ BIO_closesocket(lsock);
+ if (asock != INVALID_SOCKET)
+ BIO_closesocket(asock);
+ return ret;
+}
+#endif
+
+/*
+ * Note that |extra| points to the correct client/server configuration
+ * within |test_ctx|. When configuring the handshake, general mode settings
+ * are taken from |test_ctx|, and client/server-specific settings should be
+ * taken from |extra|.
+ *
+ * The configuration code should never reach into |test_ctx->extra| or
+ * |test_ctx->resume_extra| directly.
+ *
+ * (We could refactor test mode settings into a substructure. This would result
+ * in cleaner argument passing but would complicate the test configuration
+ * parsing.)
+ */
+static HANDSHAKE_RESULT *do_handshake_internal(
+ SSL_CTX *server_ctx, SSL_CTX *server2_ctx, SSL_CTX *client_ctx,
+ const SSL_TEST_CTX *test_ctx, const SSL_TEST_EXTRA_CONF *extra,
+ SSL_SESSION *session_in, SSL_SESSION *serv_sess_in,
+ SSL_SESSION **session_out, SSL_SESSION **serv_sess_out)
+{
+ PEER server, client;
+ BIO *client_to_server = NULL, *server_to_client = NULL;
+ HANDSHAKE_EX_DATA server_ex_data, client_ex_data;
+ CTX_DATA client_ctx_data, server_ctx_data, server2_ctx_data;
+ HANDSHAKE_RESULT *ret = HANDSHAKE_RESULT_new();
+ int client_turn = 1, client_turn_count = 0, client_wait_count = 0;
+ connect_phase_t phase = HANDSHAKE;
+ handshake_status_t status = HANDSHAKE_RETRY;
+ const unsigned char* tick = NULL;
+ size_t tick_len = 0;
+ const unsigned char* sess_id = NULL;
+ unsigned int sess_id_len = 0;
+ SSL_SESSION* sess = NULL;
+ const unsigned char *proto = NULL;
+ /* API dictates unsigned int rather than size_t. */
+ unsigned int proto_len = 0;
+ EVP_PKEY *tmp_key;
+ const STACK_OF(X509_NAME) *names;
+ time_t start;
+ const char* cipher;
+
+ if (ret == NULL)
+ return NULL;
+
+ memset(&server_ctx_data, 0, sizeof(server_ctx_data));
+ memset(&server2_ctx_data, 0, sizeof(server2_ctx_data));
+ memset(&client_ctx_data, 0, sizeof(client_ctx_data));
+ memset(&server, 0, sizeof(server));
+ memset(&client, 0, sizeof(client));
+ memset(&server_ex_data, 0, sizeof(server_ex_data));
+ memset(&client_ex_data, 0, sizeof(client_ex_data));
+
+ if (!configure_handshake_ctx(server_ctx, server2_ctx, client_ctx,
+ test_ctx, extra, &server_ctx_data,
+ &server2_ctx_data, &client_ctx_data)) {
+ TEST_note("configure_handshake_ctx");
+ return NULL;
+ }
+
+#if !defined(OPENSSL_NO_SCTP) && !defined(OPENSSL_NO_SOCK)
+ if (test_ctx->enable_client_sctp_label_bug)
+ SSL_CTX_set_mode(client_ctx, SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG);
+ if (test_ctx->enable_server_sctp_label_bug)
+ SSL_CTX_set_mode(server_ctx, SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG);
+#endif
+
+ /* Setup SSL and buffers; additional configuration happens below. */
+ if (!create_peer(&server, server_ctx)) {
+ TEST_note("creating server context");
+ goto err;
+ }
+ if (!create_peer(&client, client_ctx)) {
+ TEST_note("creating client context");
+ goto err;
+ }
+
+ server.bytes_to_write = client.bytes_to_read = test_ctx->app_data_size;
+ client.bytes_to_write = server.bytes_to_read = test_ctx->app_data_size;
+
+ configure_handshake_ssl(server.ssl, client.ssl, extra);
+ if (session_in != NULL) {
+ SSL_SESSION_get_id(serv_sess_in, &sess_id_len);
+ /* In case we're testing resumption without tickets. */
+ if ((sess_id_len > 0
+ && !TEST_true(SSL_CTX_add_session(server_ctx,
+ serv_sess_in)))
+ || !TEST_true(SSL_set_session(client.ssl, session_in)))
+ goto err;
+ sess_id_len = 0;
+ }
+
+ ret->result = SSL_TEST_INTERNAL_ERROR;
+
+ if (test_ctx->use_sctp) {
+#if !defined(OPENSSL_NO_SCTP) && !defined(OPENSSL_NO_SOCK)
+ int csock, ssock;
+
+ if (create_sctp_socks(&ssock, &csock)) {
+ client_to_server = BIO_new_dgram_sctp(csock, BIO_CLOSE);
+ server_to_client = BIO_new_dgram_sctp(ssock, BIO_CLOSE);
+ }
+#endif
+ } else {
+ client_to_server = BIO_new(BIO_s_mem());
+ server_to_client = BIO_new(BIO_s_mem());
+ }
+
+ if (!TEST_ptr(client_to_server)
+ || !TEST_ptr(server_to_client))
+ goto err;
+
+ /* Non-blocking bio. */
+ BIO_set_nbio(client_to_server, 1);
+ BIO_set_nbio(server_to_client, 1);
+
+ SSL_set_connect_state(client.ssl);
+ SSL_set_accept_state(server.ssl);
+
+ /* The bios are now owned by the SSL object. */
+ if (test_ctx->use_sctp) {
+ SSL_set_bio(client.ssl, client_to_server, client_to_server);
+ SSL_set_bio(server.ssl, server_to_client, server_to_client);
+ } else {
+ SSL_set_bio(client.ssl, server_to_client, client_to_server);
+ if (!TEST_int_gt(BIO_up_ref(server_to_client), 0)
+ || !TEST_int_gt(BIO_up_ref(client_to_server), 0))
+ goto err;
+ SSL_set_bio(server.ssl, client_to_server, server_to_client);
+ }
+
+ ex_data_idx = SSL_get_ex_new_index(0, "ex data", NULL, NULL, NULL);
+ if (!TEST_int_ge(ex_data_idx, 0)
+ || !TEST_int_eq(SSL_set_ex_data(server.ssl, ex_data_idx, &server_ex_data), 1)
+ || !TEST_int_eq(SSL_set_ex_data(client.ssl, ex_data_idx, &client_ex_data), 1))
+ goto err;
+
+ SSL_set_info_callback(server.ssl, &info_cb);
+ SSL_set_info_callback(client.ssl, &info_cb);
+
+ client.status = PEER_RETRY;
+ server.status = PEER_WAITING;
+
+ start = time(NULL);
+
+ /*
+ * Half-duplex handshake loop.
+ * Client and server speak to each other synchronously in the same process.
+ * We use non-blocking BIOs, so whenever one peer blocks for read, it
+ * returns PEER_RETRY to indicate that it's the other peer's turn to write.
+ * The handshake succeeds once both peers have succeeded. If one peer
+ * errors out, we also let the other peer retry (and presumably fail).
+ */
+ for(;;) {
+ if (client_turn) {
+ do_connect_step(test_ctx, &client, phase);
+ status = handshake_status(client.status, server.status,
+ 1 /* client went last */);
+ if (server.status == PEER_WAITING)
+ server.status = PEER_RETRY;
+ } else {
+ do_connect_step(test_ctx, &server, phase);
+ status = handshake_status(server.status, client.status,
+ 0 /* server went last */);
+ }
+
+ switch (status) {
+ case HANDSHAKE_SUCCESS:
+ client_turn_count = 0;
+ phase = next_phase(test_ctx, phase);
+ if (phase == CONNECTION_DONE) {
+ ret->result = SSL_TEST_SUCCESS;
+ goto err;
+ } else {
+ client.status = server.status = PEER_RETRY;
+ /*
+ * For now, client starts each phase. Since each phase is
+ * started separately, we can later control this more
+ * precisely, for example, to test client-initiated and
+ * server-initiated shutdown.
+ */
+ client_turn = 1;
+ break;
+ }
+ case CLIENT_ERROR:
+ ret->result = SSL_TEST_CLIENT_FAIL;
+ goto err;
+ case SERVER_ERROR:
+ ret->result = SSL_TEST_SERVER_FAIL;
+ goto err;
+ case INTERNAL_ERROR:
+ ret->result = SSL_TEST_INTERNAL_ERROR;
+ goto err;
+ case HANDSHAKE_RETRY:
+ if (test_ctx->use_sctp) {
+ if (time(NULL) - start > 3) {
+ /*
+ * We've waited for too long. Give up.
+ */
+ ret->result = SSL_TEST_INTERNAL_ERROR;
+ goto err;
+ }
+ /*
+ * With "real" sockets we only swap to processing the peer
+ * if they are expecting to retry. Otherwise we just retry the
+ * same endpoint again.
+ */
+ if ((client_turn && server.status == PEER_RETRY)
+ || (!client_turn && client.status == PEER_RETRY))
+ client_turn ^= 1;
+ } else {
+ if (client_turn_count++ >= 2000) {
+ /*
+ * At this point, there's been so many PEER_RETRY in a row
+ * that it's likely both sides are stuck waiting for a read.
+ * It's time to give up.
+ */
+ ret->result = SSL_TEST_INTERNAL_ERROR;
+ goto err;
+ }
+ if (client_turn && server.status == PEER_SUCCESS) {
+ /*
+ * The server may finish before the client because the
+ * client spends some turns processing NewSessionTickets.
+ */
+ if (client_wait_count++ >= 2) {
+ ret->result = SSL_TEST_INTERNAL_ERROR;
+ goto err;
+ }
+ } else {
+ /* Continue. */
+ client_turn ^= 1;
+ }
+ }
+ break;
+ }
+ }
+ err:
+ ret->server_alert_sent = server_ex_data.alert_sent;
+ ret->server_num_fatal_alerts_sent = server_ex_data.num_fatal_alerts_sent;
+ ret->server_alert_received = client_ex_data.alert_received;
+ ret->client_alert_sent = client_ex_data.alert_sent;
+ ret->client_num_fatal_alerts_sent = client_ex_data.num_fatal_alerts_sent;
+ ret->client_alert_received = server_ex_data.alert_received;
+ ret->server_protocol = SSL_version(server.ssl);
+ ret->client_protocol = SSL_version(client.ssl);
+ ret->servername = server_ex_data.servername;
+ if ((sess = SSL_get0_session(client.ssl)) != NULL) {
+ SSL_SESSION_get0_ticket(sess, &tick, &tick_len);
+ sess_id = SSL_SESSION_get_id(sess, &sess_id_len);
+ }
+ if (tick == NULL || tick_len == 0)
+ ret->session_ticket = SSL_TEST_SESSION_TICKET_NO;
+ else
+ ret->session_ticket = SSL_TEST_SESSION_TICKET_YES;
+ ret->compression = (SSL_get_current_compression(client.ssl) == NULL)
+ ? SSL_TEST_COMPRESSION_NO
+ : SSL_TEST_COMPRESSION_YES;
+ if (sess_id == NULL || sess_id_len == 0)
+ ret->session_id = SSL_TEST_SESSION_ID_NO;
+ else
+ ret->session_id = SSL_TEST_SESSION_ID_YES;
+ ret->session_ticket_do_not_call = server_ex_data.session_ticket_do_not_call;
+
+#ifndef OPENSSL_NO_NEXTPROTONEG
+ SSL_get0_next_proto_negotiated(client.ssl, &proto, &proto_len);
+ ret->client_npn_negotiated = dup_str(proto, proto_len);
+
+ SSL_get0_next_proto_negotiated(server.ssl, &proto, &proto_len);
+ ret->server_npn_negotiated = dup_str(proto, proto_len);
+#endif
+
+ SSL_get0_alpn_selected(client.ssl, &proto, &proto_len);
+ ret->client_alpn_negotiated = dup_str(proto, proto_len);
+
+ SSL_get0_alpn_selected(server.ssl, &proto, &proto_len);
+ ret->server_alpn_negotiated = dup_str(proto, proto_len);
+
+ if ((sess = SSL_get0_session(server.ssl)) != NULL) {
+ SSL_SESSION_get0_ticket_appdata(sess, (void**)&tick, &tick_len);
+ ret->result_session_ticket_app_data = OPENSSL_strndup((const char*)tick, tick_len);
+ }
+
+ ret->client_resumed = SSL_session_reused(client.ssl);
+ ret->server_resumed = SSL_session_reused(server.ssl);
+
+ cipher = SSL_CIPHER_get_name(SSL_get_current_cipher(client.ssl));
+ ret->cipher = dup_str((const unsigned char*)cipher, strlen(cipher));
+
+ if (session_out != NULL)
+ *session_out = SSL_get1_session(client.ssl);
+ if (serv_sess_out != NULL) {
+ SSL_SESSION *tmp = SSL_get_session(server.ssl);
+
+ /*
+ * We create a fresh copy that is not in the server session ctx linked
+ * list.
+ */
+ if (tmp != NULL)
+ *serv_sess_out = SSL_SESSION_dup(tmp);
+ }
+
+ if (SSL_get_peer_tmp_key(client.ssl, &tmp_key)) {
+ ret->tmp_key_type = pkey_type(tmp_key);
+ EVP_PKEY_free(tmp_key);
+ }
+
+ SSL_get_peer_signature_nid(client.ssl, &ret->server_sign_hash);
+ SSL_get_peer_signature_nid(server.ssl, &ret->client_sign_hash);
+
+ SSL_get_peer_signature_type_nid(client.ssl, &ret->server_sign_type);
+ SSL_get_peer_signature_type_nid(server.ssl, &ret->client_sign_type);
+
+ names = SSL_get0_peer_CA_list(client.ssl);
+ if (names == NULL)
+ ret->client_ca_names = NULL;
+ else
+ ret->client_ca_names = SSL_dup_CA_list(names);
+
+ names = SSL_get0_peer_CA_list(server.ssl);
+ if (names == NULL)
+ ret->server_ca_names = NULL;
+ else
+ ret->server_ca_names = SSL_dup_CA_list(names);
+
+ ret->server_cert_type = peer_pkey_type(client.ssl);
+ ret->client_cert_type = peer_pkey_type(server.ssl);
+
+ ctx_data_free_data(&server_ctx_data);
+ ctx_data_free_data(&server2_ctx_data);
+ ctx_data_free_data(&client_ctx_data);
+
+ peer_free_data(&server);
+ peer_free_data(&client);
+ return ret;
+}
+
+HANDSHAKE_RESULT *do_handshake(SSL_CTX *server_ctx, SSL_CTX *server2_ctx,
+ SSL_CTX *client_ctx, SSL_CTX *resume_server_ctx,
+ SSL_CTX *resume_client_ctx,
+ const SSL_TEST_CTX *test_ctx)
+{
+ HANDSHAKE_RESULT *result;
+ SSL_SESSION *session = NULL, *serv_sess = NULL;
+
+ result = do_handshake_internal(server_ctx, server2_ctx, client_ctx,
+ test_ctx, &test_ctx->extra,
+ NULL, NULL, &session, &serv_sess);
+ if (result == NULL
+ || test_ctx->handshake_mode != SSL_TEST_HANDSHAKE_RESUME
+ || result->result == SSL_TEST_INTERNAL_ERROR)
+ goto end;
+
+ if (result->result != SSL_TEST_SUCCESS) {
+ result->result = SSL_TEST_FIRST_HANDSHAKE_FAILED;
+ goto end;
+ }
+
+ HANDSHAKE_RESULT_free(result);
+ /* We don't support SNI on second handshake yet, so server2_ctx is NULL. */
+ result = do_handshake_internal(resume_server_ctx, NULL, resume_client_ctx,
+ test_ctx, &test_ctx->resume_extra,
+ session, serv_sess, NULL, NULL);
+ end:
+ SSL_SESSION_free(session);
+ SSL_SESSION_free(serv_sess);
+ return result;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/handshake_helper.h b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/handshake_helper.h
new file mode 100644
index 000000000..96406dd93
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/handshake_helper.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#ifndef OSSL_TEST_HANDSHAKE_HELPER_H
+#define OSSL_TEST_HANDSHAKE_HELPER_H
+
+#include "ssl_test_ctx.h"
+
+typedef struct handshake_result {
+ ssl_test_result_t result;
+ /* These alerts are in the 2-byte format returned by the info_callback. */
+ /* (Latest) alert sent by the client; 0 if no alert. */
+ int client_alert_sent;
+ /* Number of fatal or close_notify alerts sent. */
+ int client_num_fatal_alerts_sent;
+ /* (Latest) alert received by the server; 0 if no alert. */
+ int client_alert_received;
+ /* (Latest) alert sent by the server; 0 if no alert. */
+ int server_alert_sent;
+ /* Number of fatal or close_notify alerts sent. */
+ int server_num_fatal_alerts_sent;
+ /* (Latest) alert received by the client; 0 if no alert. */
+ int server_alert_received;
+ /* Negotiated protocol. On success, these should always match. */
+ int server_protocol;
+ int client_protocol;
+ /* Server connection */
+ ssl_servername_t servername;
+ /* Session ticket status */
+ ssl_session_ticket_t session_ticket;
+ int compression;
+ /* Was this called on the second context? */
+ int session_ticket_do_not_call;
+ char *client_npn_negotiated;
+ char *server_npn_negotiated;
+ char *client_alpn_negotiated;
+ char *server_alpn_negotiated;
+ /* Was the handshake resumed? */
+ int client_resumed;
+ int server_resumed;
+ /* Temporary key type */
+ int tmp_key_type;
+ /* server certificate key type */
+ int server_cert_type;
+ /* server signing hash */
+ int server_sign_hash;
+ /* server signature type */
+ int server_sign_type;
+ /* server CA names */
+ STACK_OF(X509_NAME) *server_ca_names;
+ /* client certificate key type */
+ int client_cert_type;
+ /* client signing hash */
+ int client_sign_hash;
+ /* client signature type */
+ int client_sign_type;
+ /* Client CA names */
+ STACK_OF(X509_NAME) *client_ca_names;
+ /* Session id status */
+ ssl_session_id_t session_id;
+ char *cipher;
+ /* session ticket application data */
+ char *result_session_ticket_app_data;
+} HANDSHAKE_RESULT;
+
+HANDSHAKE_RESULT *HANDSHAKE_RESULT_new(void);
+void HANDSHAKE_RESULT_free(HANDSHAKE_RESULT *result);
+
+/* Do a handshake and report some information about the result. */
+HANDSHAKE_RESULT *do_handshake(SSL_CTX *server_ctx, SSL_CTX *server2_ctx,
+ SSL_CTX *client_ctx, SSL_CTX *resume_server_ctx,
+ SSL_CTX *resume_client_ctx,
+ const SSL_TEST_CTX *test_ctx);
+
+#endif /* OSSL_TEST_HANDSHAKE_HELPER_H */
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/hmactest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/hmactest.c
new file mode 100644
index 000000000..39955497a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/hmactest.c
@@ -0,0 +1,269 @@
+/*
+ * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include "internal/nelem.h"
+
+# include <openssl/hmac.h>
+# include <openssl/sha.h>
+# ifndef OPENSSL_NO_MD5
+# include <openssl/md5.h>
+# endif
+
+# ifdef CHARSET_EBCDIC
+# include <openssl/ebcdic.h>
+# endif
+
+#include "testutil.h"
+
+# ifndef OPENSSL_NO_MD5
+static struct test_st {
+ unsigned char key[16];
+ int key_len;
+ unsigned char data[64];
+ int data_len;
+ unsigned char *digest;
+} test[8] = {
+ {
+ "", 0, "More text test vectors to stuff up EBCDIC machines :-)", 54,
+ (unsigned char *)"e9139d1e6ee064ef8cf514fc7dc83e86",
+ },
+ {
+ {
+ 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
+ 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
+ }, 16, "Hi There", 8,
+ (unsigned char *)"9294727a3638bb1c13f48ef8158bfc9d",
+ },
+ {
+ "Jefe", 4, "what do ya want for nothing?", 28,
+ (unsigned char *)"750c783e6ab0b503eaa86e310a5db738",
+ },
+ {
+ {
+ 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
+ 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
+ }, 16, {
+ 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
+ 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
+ 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
+ 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
+ 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd
+ }, 50, (unsigned char *)"56be34521d144c88dbb8c733f0e8b3f6",
+ },
+ {
+ "", 0, "My test data", 12,
+ (unsigned char *)"61afdecb95429ef494d61fdee15990cabf0826fc"
+ },
+ {
+ "", 0, "My test data", 12,
+ (unsigned char *)"2274b195d90ce8e03406f4b526a47e0787a88a65479938f1a5baa3ce0f079776"
+ },
+ {
+ "123456", 6, "My test data", 12,
+ (unsigned char *)"bab53058ae861a7f191abe2d0145cbb123776a6369ee3f9d79ce455667e411dd"
+ },
+ {
+ "12345", 5, "My test data again", 18,
+ (unsigned char *)"a12396ceddd2a85f4c656bc1e0aa50c78cffde3e"
+ }
+};
+# endif
+
+static char *pt(unsigned char *md, unsigned int len);
+
+
+# ifndef OPENSSL_NO_MD5
+static int test_hmac_md5(int idx)
+{
+ char *p;
+# ifdef CHARSET_EBCDIC
+ ebcdic2ascii(test[0].data, test[0].data, test[0].data_len);
+ ebcdic2ascii(test[1].data, test[1].data, test[1].data_len);
+ ebcdic2ascii(test[2].key, test[2].key, test[2].key_len);
+ ebcdic2ascii(test[2].data, test[2].data, test[2].data_len);
+# endif
+
+ p = pt(HMAC(EVP_md5(),
+ test[idx].key, test[idx].key_len,
+ test[idx].data, test[idx].data_len, NULL, NULL),
+ MD5_DIGEST_LENGTH);
+
+ if (!TEST_str_eq(p, (char *)test[idx].digest))
+ return 0;
+
+ return 1;
+}
+# endif
+
+static int test_hmac_bad(void)
+{
+ HMAC_CTX *ctx = NULL;
+ int ret = 0;
+
+ ctx = HMAC_CTX_new();
+ if (!TEST_ptr(ctx)
+ || !TEST_ptr_null(HMAC_CTX_get_md(ctx))
+ || !TEST_false(HMAC_Init_ex(ctx, NULL, 0, NULL, NULL))
+ || !TEST_false(HMAC_Update(ctx, test[4].data, test[4].data_len))
+ || !TEST_false(HMAC_Init_ex(ctx, NULL, 0, EVP_sha1(), NULL))
+ || !TEST_false(HMAC_Update(ctx, test[4].data, test[4].data_len)))
+ goto err;
+
+ ret = 1;
+err:
+ HMAC_CTX_free(ctx);
+ return ret;
+}
+
+static int test_hmac_run(void)
+{
+ char *p;
+ HMAC_CTX *ctx = NULL;
+ unsigned char buf[EVP_MAX_MD_SIZE];
+ unsigned int len;
+ int ret = 0;
+
+ ctx = HMAC_CTX_new();
+ HMAC_CTX_reset(ctx);
+
+ if (!TEST_ptr(ctx)
+ || !TEST_ptr_null(HMAC_CTX_get_md(ctx))
+ || !TEST_false(HMAC_Init_ex(ctx, NULL, 0, NULL, NULL))
+ || !TEST_false(HMAC_Update(ctx, test[4].data, test[4].data_len))
+ || !TEST_false(HMAC_Init_ex(ctx, test[4].key, -1, EVP_sha1(), NULL)))
+ goto err;
+
+ if (!TEST_true(HMAC_Init_ex(ctx, test[4].key, test[4].key_len, EVP_sha1(), NULL))
+ || !TEST_true(HMAC_Update(ctx, test[4].data, test[4].data_len))
+ || !TEST_true(HMAC_Final(ctx, buf, &len)))
+ goto err;
+
+ p = pt(buf, len);
+ if (!TEST_str_eq(p, (char *)test[4].digest))
+ goto err;
+
+ if (!TEST_false(HMAC_Init_ex(ctx, NULL, 0, EVP_sha256(), NULL)))
+ goto err;
+
+ if (!TEST_true(HMAC_Init_ex(ctx, test[5].key, test[5].key_len, EVP_sha256(), NULL))
+ || !TEST_ptr_eq(HMAC_CTX_get_md(ctx), EVP_sha256())
+ || !TEST_true(HMAC_Update(ctx, test[5].data, test[5].data_len))
+ || !TEST_true(HMAC_Final(ctx, buf, &len)))
+ goto err;
+
+ p = pt(buf, len);
+ if (!TEST_str_eq(p, (char *)test[5].digest))
+ goto err;
+
+ if (!TEST_true(HMAC_Init_ex(ctx, test[6].key, test[6].key_len, NULL, NULL))
+ || !TEST_true(HMAC_Update(ctx, test[6].data, test[6].data_len))
+ || !TEST_true(HMAC_Final(ctx, buf, &len)))
+ goto err;
+ p = pt(buf, len);
+ if (!TEST_str_eq(p, (char *)test[6].digest))
+ goto err;
+
+ /* Test reusing a key */
+ if (!TEST_true(HMAC_Init_ex(ctx, NULL, 0, NULL, NULL))
+ || !TEST_true(HMAC_Update(ctx, test[6].data, test[6].data_len))
+ || !TEST_true(HMAC_Final(ctx, buf, &len)))
+ goto err;
+ p = pt(buf, len);
+ if (!TEST_str_eq(p, (char *)test[6].digest))
+ goto err;
+
+ /*
+ * Test reusing a key where the digest is provided again but is the same as
+ * last time
+ */
+ if (!TEST_true(HMAC_Init_ex(ctx, NULL, 0, EVP_sha256(), NULL))
+ || !TEST_true(HMAC_Update(ctx, test[6].data, test[6].data_len))
+ || !TEST_true(HMAC_Final(ctx, buf, &len)))
+ goto err;
+ p = pt(buf, len);
+ if (!TEST_str_eq(p, (char *)test[6].digest))
+ goto err;
+
+ ret = 1;
+err:
+ HMAC_CTX_free(ctx);
+ return ret;
+}
+
+
+static int test_hmac_single_shot(void)
+{
+ char *p;
+
+ /* Test single-shot with an empty key. */
+ p = pt(HMAC(EVP_sha1(), NULL, 0, test[4].data, test[4].data_len,
+ NULL, NULL), SHA_DIGEST_LENGTH);
+ if (!TEST_str_eq(p, (char *)test[4].digest))
+ return 0;
+
+ return 1;
+}
+
+
+static int test_hmac_copy(void)
+{
+ char *p;
+ HMAC_CTX *ctx = NULL, *ctx2 = NULL;
+ unsigned char buf[EVP_MAX_MD_SIZE];
+ unsigned int len;
+ int ret = 0;
+
+ ctx = HMAC_CTX_new();
+ ctx2 = HMAC_CTX_new();
+ if (!TEST_ptr(ctx) || !TEST_ptr(ctx2))
+ goto err;
+
+ if (!TEST_true(HMAC_Init_ex(ctx, test[7].key, test[7].key_len, EVP_sha1(), NULL))
+ || !TEST_true(HMAC_Update(ctx, test[7].data, test[7].data_len))
+ || !TEST_true(HMAC_CTX_copy(ctx2, ctx))
+ || !TEST_true(HMAC_Final(ctx2, buf, &len)))
+ goto err;
+
+ p = pt(buf, len);
+ if (!TEST_str_eq(p, (char *)test[7].digest))
+ goto err;
+
+ ret = 1;
+err:
+ HMAC_CTX_free(ctx2);
+ HMAC_CTX_free(ctx);
+ return ret;
+}
+
+# ifndef OPENSSL_NO_MD5
+static char *pt(unsigned char *md, unsigned int len)
+{
+ unsigned int i;
+ static char buf[80];
+
+ for (i = 0; i < len; i++)
+ sprintf(&(buf[i * 2]), "%02x", md[i]);
+ return buf;
+}
+# endif
+
+int setup_tests(void)
+{
+ ADD_ALL_TESTS(test_hmac_md5, 4);
+ ADD_TEST(test_hmac_single_shot);
+ ADD_TEST(test_hmac_bad);
+ ADD_TEST(test_hmac_run);
+ ADD_TEST(test_hmac_copy);
+ return 1;
+}
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ideatest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ideatest.c
new file mode 100644
index 000000000..c80e18f80
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ideatest.c
@@ -0,0 +1,119 @@
+/*
+ * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+
+#include "internal/nelem.h"
+#include "testutil.h"
+
+#ifndef OPENSSL_NO_IDEA
+# include <openssl/idea.h>
+
+static const unsigned char k[16] = {
+ 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04,
+ 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08
+};
+
+static const unsigned char in[8] = { 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03 };
+static const unsigned char c[8] = { 0x11, 0xFB, 0xED, 0x2B, 0x01, 0x98, 0x6D, 0xE5 };
+
+static unsigned char out[80];
+
+static const char text[] = "Hello to all people out there";
+
+static const unsigned char cfb_key[16] = {
+ 0xe1, 0xf0, 0xc3, 0xd2, 0xa5, 0xb4, 0x87, 0x96,
+ 0x69, 0x78, 0x4b, 0x5a, 0x2d, 0x3c, 0x0f, 0x1e,
+};
+static const unsigned char cfb_iv[80] =
+ { 0x34, 0x12, 0x78, 0x56, 0xab, 0x90, 0xef, 0xcd };
+static unsigned char cfb_buf1[40], cfb_buf2[40], cfb_tmp[8];
+# define CFB_TEST_SIZE 24
+static const unsigned char plain[CFB_TEST_SIZE] = {
+ 0x4e, 0x6f, 0x77, 0x20, 0x69, 0x73,
+ 0x20, 0x74, 0x68, 0x65, 0x20, 0x74,
+ 0x69, 0x6d, 0x65, 0x20, 0x66, 0x6f,
+ 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20
+};
+
+static const unsigned char cfb_cipher64[CFB_TEST_SIZE] = {
+ 0x59, 0xD8, 0xE2, 0x65, 0x00, 0x58, 0x6C, 0x3F,
+ 0x2C, 0x17, 0x25, 0xD0, 0x1A, 0x38, 0xB7, 0x2A,
+ 0x39, 0x61, 0x37, 0xDC, 0x79, 0xFB, 0x9F, 0x45
+/*- 0xF9,0x78,0x32,0xB5,0x42,0x1A,0x6B,0x38,
+ 0x9A,0x44,0xD6,0x04,0x19,0x43,0xC4,0xD9,
+ 0x3D,0x1E,0xAE,0x47,0xFC,0xCF,0x29,0x0B,*/
+};
+
+static int test_idea_ecb(void)
+{
+ IDEA_KEY_SCHEDULE key, dkey;
+
+ IDEA_set_encrypt_key(k, &key);
+ IDEA_ecb_encrypt(in, out, &key);
+ if (!TEST_mem_eq(out, IDEA_BLOCK, c, sizeof(c)))
+ return 0;
+
+ IDEA_set_decrypt_key(&key, &dkey);
+ IDEA_ecb_encrypt(c, out, &dkey);
+ return TEST_mem_eq(out, IDEA_BLOCK, in, sizeof(in));
+}
+
+static int test_idea_cbc(void)
+{
+ IDEA_KEY_SCHEDULE key, dkey;
+ unsigned char iv[IDEA_BLOCK];
+ const size_t text_len = sizeof(text);
+
+ IDEA_set_encrypt_key(k, &key);
+ IDEA_set_decrypt_key(&key, &dkey);
+ memcpy(iv, k, sizeof(iv));
+ IDEA_cbc_encrypt((unsigned char *)text, out, text_len, &key, iv, 1);
+ memcpy(iv, k, sizeof(iv));
+ IDEA_cbc_encrypt(out, out, IDEA_BLOCK, &dkey, iv, 0);
+ IDEA_cbc_encrypt(&out[8], &out[8], text_len - 8, &dkey, iv, 0);
+ return TEST_mem_eq(text, text_len, out, text_len);
+}
+
+static int test_idea_cfb64(void)
+{
+ IDEA_KEY_SCHEDULE eks, dks;
+ int n;
+
+ IDEA_set_encrypt_key(cfb_key, &eks);
+ IDEA_set_decrypt_key(&eks, &dks);
+ memcpy(cfb_tmp, cfb_iv, sizeof(cfb_tmp));
+ n = 0;
+ IDEA_cfb64_encrypt(plain, cfb_buf1, (long)12, &eks,
+ cfb_tmp, &n, IDEA_ENCRYPT);
+ IDEA_cfb64_encrypt(&plain[12], &cfb_buf1[12],
+ (long)CFB_TEST_SIZE - 12, &eks,
+ cfb_tmp, &n, IDEA_ENCRYPT);
+ if (!TEST_mem_eq(cfb_cipher64, CFB_TEST_SIZE, cfb_buf1, CFB_TEST_SIZE))
+ return 0;
+ memcpy(cfb_tmp, cfb_iv, sizeof(cfb_tmp));
+ n = 0;
+ IDEA_cfb64_encrypt(cfb_buf1, cfb_buf2, (long)13, &eks,
+ cfb_tmp, &n, IDEA_DECRYPT);
+ IDEA_cfb64_encrypt(&cfb_buf1[13], &cfb_buf2[13],
+ (long)CFB_TEST_SIZE - 13, &eks,
+ cfb_tmp, &n, IDEA_DECRYPT);
+ return TEST_mem_eq(plain, CFB_TEST_SIZE, cfb_buf2, CFB_TEST_SIZE);
+}
+#endif
+
+int setup_tests(void)
+{
+#ifndef OPENSSL_NO_IDEA
+ ADD_TEST(test_idea_ecb);
+ ADD_TEST(test_idea_cbc);
+ ADD_TEST(test_idea_cfb64);
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/igetest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/igetest.c
new file mode 100644
index 000000000..fd1089d27
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/igetest.c
@@ -0,0 +1,454 @@
+/*
+ * Copyright 2006-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <openssl/crypto.h>
+#include <openssl/aes.h>
+#include <openssl/rand.h>
+#include <stdio.h>
+#include <string.h>
+#include "internal/nelem.h"
+#include "testutil.h"
+
+#define TEST_SIZE 128
+#define BIG_TEST_SIZE 10240
+
+#if BIG_TEST_SIZE < TEST_SIZE
+#error BIG_TEST_SIZE is smaller than TEST_SIZE
+#endif
+
+static unsigned char rkey[16];
+static unsigned char rkey2[16];
+static unsigned char plaintext[BIG_TEST_SIZE];
+static unsigned char saved_iv[AES_BLOCK_SIZE * 4];
+
+#define MAX_VECTOR_SIZE 64
+
+struct ige_test {
+ const unsigned char key[16];
+ const unsigned char iv[32];
+ const unsigned char in[MAX_VECTOR_SIZE];
+ const unsigned char out[MAX_VECTOR_SIZE];
+ const size_t length;
+ const int encrypt;
+};
+
+static struct ige_test const ige_test_vectors[] = {
+ {{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f}, /* key */
+ {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f}, /* iv */
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* in */
+ {0x1a, 0x85, 0x19, 0xa6, 0x55, 0x7b, 0xe6, 0x52,
+ 0xe9, 0xda, 0x8e, 0x43, 0xda, 0x4e, 0xf4, 0x45,
+ 0x3c, 0xf4, 0x56, 0xb4, 0xca, 0x48, 0x8a, 0xa3,
+ 0x83, 0xc7, 0x9c, 0x98, 0xb3, 0x47, 0x97, 0xcb}, /* out */
+ 32, AES_ENCRYPT}, /* test vector 0 */
+
+ {{0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
+ 0x61, 0x6e, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65}, /* key */
+ {0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x49, 0x47, 0x45,
+ 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x66, 0x6f,
+ 0x72, 0x20, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x53}, /* iv */
+ {0x4c, 0x2e, 0x20, 0x4c, 0x65, 0x74, 0x27, 0x73,
+ 0x20, 0x68, 0x6f, 0x70, 0x65, 0x20, 0x42, 0x65,
+ 0x6e, 0x20, 0x67, 0x6f, 0x74, 0x20, 0x69, 0x74,
+ 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x21, 0x0a}, /* in */
+ {0x99, 0x70, 0x64, 0x87, 0xa1, 0xcd, 0xe6, 0x13,
+ 0xbc, 0x6d, 0xe0, 0xb6, 0xf2, 0x4b, 0x1c, 0x7a,
+ 0xa4, 0x48, 0xc8, 0xb9, 0xc3, 0x40, 0x3e, 0x34,
+ 0x67, 0xa8, 0xca, 0xd8, 0x93, 0x40, 0xf5, 0x3b}, /* out */
+ 32, AES_DECRYPT}, /* test vector 1 */
+};
+
+struct bi_ige_test {
+ const unsigned char key1[32];
+ const unsigned char key2[32];
+ const unsigned char iv[64];
+ const unsigned char in[MAX_VECTOR_SIZE];
+ const unsigned char out[MAX_VECTOR_SIZE];
+ const size_t keysize;
+ const size_t length;
+ const int encrypt;
+};
+
+static struct bi_ige_test const bi_ige_test_vectors[] = {
+ {{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f}, /* key1 */
+ {0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f}, /* key2 */
+ {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
+ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f}, /* iv */
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* in */
+ {0x14, 0x40, 0x6f, 0xae, 0xa2, 0x79, 0xf2, 0x56,
+ 0x1f, 0x86, 0xeb, 0x3b, 0x7d, 0xff, 0x53, 0xdc,
+ 0x4e, 0x27, 0x0c, 0x03, 0xde, 0x7c, 0xe5, 0x16,
+ 0x6a, 0x9c, 0x20, 0x33, 0x9d, 0x33, 0xfe, 0x12}, /* out */
+ 16, 32, AES_ENCRYPT}, /* test vector 0 */
+ {{0x58, 0x0a, 0x06, 0xe9, 0x97, 0x07, 0x59, 0x5c,
+ 0x9e, 0x19, 0xd2, 0xa7, 0xbb, 0x40, 0x2b, 0x7a,
+ 0xc7, 0xd8, 0x11, 0x9e, 0x4c, 0x51, 0x35, 0x75,
+ 0x64, 0x28, 0x0f, 0x23, 0xad, 0x74, 0xac, 0x37}, /* key1 */
+ {0xd1, 0x80, 0xa0, 0x31, 0x47, 0xa3, 0x11, 0x13,
+ 0x86, 0x26, 0x9e, 0x6d, 0xff, 0xaf, 0x72, 0x74,
+ 0x5b, 0xa2, 0x35, 0x81, 0xd2, 0xa6, 0x3d, 0x21,
+ 0x67, 0x7b, 0x58, 0xa8, 0x18, 0xf9, 0x72, 0xe4}, /* key2 */
+ {0x80, 0x3d, 0xbd, 0x4c, 0xe6, 0x7b, 0x06, 0xa9,
+ 0x53, 0x35, 0xd5, 0x7e, 0x71, 0xc1, 0x70, 0x70,
+ 0x74, 0x9a, 0x00, 0x28, 0x0c, 0xbf, 0x6c, 0x42,
+ 0x9b, 0xa4, 0xdd, 0x65, 0x11, 0x77, 0x7c, 0x67,
+ 0xfe, 0x76, 0x0a, 0xf0, 0xd5, 0xc6, 0x6e, 0x6a,
+ 0xe7, 0x5e, 0x4c, 0xf2, 0x7e, 0x9e, 0xf9, 0x20,
+ 0x0e, 0x54, 0x6f, 0x2d, 0x8a, 0x8d, 0x7e, 0xbd,
+ 0x48, 0x79, 0x37, 0x99, 0xff, 0x27, 0x93, 0xa3}, /* iv */
+ {0xf1, 0x54, 0x3d, 0xca, 0xfe, 0xb5, 0xef, 0x1c,
+ 0x4f, 0xa6, 0x43, 0xf6, 0xe6, 0x48, 0x57, 0xf0,
+ 0xee, 0x15, 0x7f, 0xe3, 0xe7, 0x2f, 0xd0, 0x2f,
+ 0x11, 0x95, 0x7a, 0x17, 0x00, 0xab, 0xa7, 0x0b,
+ 0xbe, 0x44, 0x09, 0x9c, 0xcd, 0xac, 0xa8, 0x52,
+ 0xa1, 0x8e, 0x7b, 0x75, 0xbc, 0xa4, 0x92, 0x5a,
+ 0xab, 0x46, 0xd3, 0x3a, 0xa0, 0xd5, 0x35, 0x1c,
+ 0x55, 0xa4, 0xb3, 0xa8, 0x40, 0x81, 0xa5, 0x0b}, /* in */
+ {0x42, 0xe5, 0x28, 0x30, 0x31, 0xc2, 0xa0, 0x23,
+ 0x68, 0x49, 0x4e, 0xb3, 0x24, 0x59, 0x92, 0x79,
+ 0xc1, 0xa5, 0xcc, 0xe6, 0x76, 0x53, 0xb1, 0xcf,
+ 0x20, 0x86, 0x23, 0xe8, 0x72, 0x55, 0x99, 0x92,
+ 0x0d, 0x16, 0x1c, 0x5a, 0x2f, 0xce, 0xcb, 0x51,
+ 0xe2, 0x67, 0xfa, 0x10, 0xec, 0xcd, 0x3d, 0x67,
+ 0xa5, 0xe6, 0xf7, 0x31, 0x26, 0xb0, 0x0d, 0x76,
+ 0x5e, 0x28, 0xdc, 0x7f, 0x01, 0xc5, 0xa5, 0x4c}, /* out */
+ 32, 64, AES_ENCRYPT}, /* test vector 1 */
+
+};
+
+static int test_ige_vectors(int n)
+{
+ const struct ige_test *const v = &ige_test_vectors[n];
+ AES_KEY key;
+ unsigned char buf[MAX_VECTOR_SIZE];
+ unsigned char iv[AES_BLOCK_SIZE * 2];
+ int testresult = 1;
+
+ if (!TEST_int_le(v->length, MAX_VECTOR_SIZE))
+ return 0;
+
+ if (v->encrypt == AES_ENCRYPT)
+ AES_set_encrypt_key(v->key, 8 * sizeof(v->key), &key);
+ else
+ AES_set_decrypt_key(v->key, 8 * sizeof(v->key), &key);
+ memcpy(iv, v->iv, sizeof(iv));
+ AES_ige_encrypt(v->in, buf, v->length, &key, iv, v->encrypt);
+
+ if (!TEST_mem_eq(v->out, v->length, buf, v->length)) {
+ TEST_info("IGE test vector %d failed", n);
+ test_output_memory("key", v->key, sizeof(v->key));
+ test_output_memory("iv", v->iv, sizeof(v->iv));
+ test_output_memory("in", v->in, v->length);
+ testresult = 0;
+ }
+
+ /* try with in == out */
+ memcpy(iv, v->iv, sizeof(iv));
+ memcpy(buf, v->in, v->length);
+ AES_ige_encrypt(buf, buf, v->length, &key, iv, v->encrypt);
+
+ if (!TEST_mem_eq(v->out, v->length, buf, v->length)) {
+ TEST_info("IGE test vector %d failed (with in == out)", n);
+ test_output_memory("key", v->key, sizeof(v->key));
+ test_output_memory("iv", v->iv, sizeof(v->iv));
+ test_output_memory("in", v->in, v->length);
+ testresult = 0;
+ }
+
+ return testresult;
+}
+
+static int test_bi_ige_vectors(int n)
+{
+ const struct bi_ige_test *const v = &bi_ige_test_vectors[n];
+ AES_KEY key1;
+ AES_KEY key2;
+ unsigned char buf[MAX_VECTOR_SIZE];
+
+ if (!TEST_int_le(v->length, MAX_VECTOR_SIZE))
+ return 0;
+
+ if (v->encrypt == AES_ENCRYPT) {
+ AES_set_encrypt_key(v->key1, 8 * v->keysize, &key1);
+ AES_set_encrypt_key(v->key2, 8 * v->keysize, &key2);
+ } else {
+ AES_set_decrypt_key(v->key1, 8 * v->keysize, &key1);
+ AES_set_decrypt_key(v->key2, 8 * v->keysize, &key2);
+ }
+
+ AES_bi_ige_encrypt(v->in, buf, v->length, &key1, &key2, v->iv,
+ v->encrypt);
+
+ if (!TEST_mem_eq(v->out, v->length, buf, v->length)) {
+ test_output_memory("key 1", v->key1, sizeof(v->key1));
+ test_output_memory("key 2", v->key2, sizeof(v->key2));
+ test_output_memory("iv", v->iv, sizeof(v->iv));
+ test_output_memory("in", v->in, v->length);
+ return 0;
+ }
+
+ return 1;
+}
+
+static int test_ige_enc_dec(void)
+{
+ AES_KEY key;
+ unsigned char iv[AES_BLOCK_SIZE * 4];
+ unsigned char ciphertext[BIG_TEST_SIZE];
+ unsigned char checktext[BIG_TEST_SIZE];
+
+ memcpy(iv, saved_iv, sizeof(iv));
+ AES_set_encrypt_key(rkey, 8 * sizeof(rkey), &key);
+ AES_ige_encrypt(plaintext, ciphertext, TEST_SIZE, &key, iv, AES_ENCRYPT);
+
+ AES_set_decrypt_key(rkey, 8 * sizeof(rkey), &key);
+ memcpy(iv, saved_iv, sizeof(iv));
+ AES_ige_encrypt(ciphertext, checktext, TEST_SIZE, &key, iv, AES_DECRYPT);
+
+ return TEST_mem_eq(checktext, TEST_SIZE, plaintext, TEST_SIZE);
+}
+
+static int test_ige_enc_chaining(void)
+{
+ AES_KEY key;
+ unsigned char iv[AES_BLOCK_SIZE * 4];
+ unsigned char ciphertext[BIG_TEST_SIZE];
+ unsigned char checktext[BIG_TEST_SIZE];
+
+ AES_set_encrypt_key(rkey, 8 * sizeof(rkey), &key);
+ memcpy(iv, saved_iv, sizeof(iv));
+ AES_ige_encrypt(plaintext, ciphertext, TEST_SIZE / 2, &key, iv,
+ AES_ENCRYPT);
+ AES_ige_encrypt(plaintext + TEST_SIZE / 2,
+ ciphertext + TEST_SIZE / 2, TEST_SIZE / 2,
+ &key, iv, AES_ENCRYPT);
+
+ AES_set_decrypt_key(rkey, 8 * sizeof(rkey), &key);
+ memcpy(iv, saved_iv, sizeof(iv));
+ AES_ige_encrypt(ciphertext, checktext, TEST_SIZE, &key, iv, AES_DECRYPT);
+
+ return TEST_mem_eq(checktext, TEST_SIZE, plaintext, TEST_SIZE);
+}
+
+static int test_ige_dec_chaining(void)
+{
+ AES_KEY key;
+ unsigned char iv[AES_BLOCK_SIZE * 4];
+ unsigned char ciphertext[BIG_TEST_SIZE];
+ unsigned char checktext[BIG_TEST_SIZE];
+
+ AES_set_encrypt_key(rkey, 8 * sizeof(rkey), &key);
+ memcpy(iv, saved_iv, sizeof(iv));
+ AES_ige_encrypt(plaintext, ciphertext, TEST_SIZE / 2, &key, iv,
+ AES_ENCRYPT);
+ AES_ige_encrypt(plaintext + TEST_SIZE / 2,
+ ciphertext + TEST_SIZE / 2, TEST_SIZE / 2,
+ &key, iv, AES_ENCRYPT);
+
+ AES_set_decrypt_key(rkey, 8 * sizeof(rkey), &key);
+ memcpy(iv, saved_iv, sizeof(iv));
+ AES_ige_encrypt(ciphertext, checktext, TEST_SIZE / 2, &key, iv,
+ AES_DECRYPT);
+ AES_ige_encrypt(ciphertext + TEST_SIZE / 2,
+ checktext + TEST_SIZE / 2, TEST_SIZE / 2, &key, iv,
+ AES_DECRYPT);
+
+ return TEST_mem_eq(checktext, TEST_SIZE, plaintext, TEST_SIZE);
+}
+
+static int test_ige_garble_forwards(void)
+{
+ AES_KEY key;
+ unsigned char iv[AES_BLOCK_SIZE * 4];
+ unsigned char ciphertext[BIG_TEST_SIZE];
+ unsigned char checktext[BIG_TEST_SIZE];
+ unsigned int n;
+ int testresult = 1;
+ const size_t ctsize = sizeof(checktext);
+ size_t matches;
+
+ AES_set_encrypt_key(rkey, 8 * sizeof(rkey), &key);
+ memcpy(iv, saved_iv, sizeof(iv));
+ AES_ige_encrypt(plaintext, ciphertext, sizeof(plaintext), &key, iv,
+ AES_ENCRYPT);
+
+ /* corrupt halfway through */
+ ++ciphertext[sizeof(ciphertext) / 2];
+ AES_set_decrypt_key(rkey, 8 * sizeof(rkey), &key);
+ memcpy(iv, saved_iv, sizeof(iv));
+ AES_ige_encrypt(ciphertext, checktext, sizeof(checktext), &key, iv,
+ AES_DECRYPT);
+
+ matches = 0;
+ for (n = 0; n < sizeof(checktext); ++n)
+ if (checktext[n] == plaintext[n])
+ ++matches;
+
+ /* Fail if there is more than 51% matching bytes */
+ if (!TEST_size_t_le(matches, ctsize / 2 + ctsize / 100))
+ testresult = 0;
+
+ /* Fail if the garble goes backwards */
+ if (!TEST_size_t_gt(matches, ctsize / 2))
+ testresult = 0;
+ return testresult;
+}
+
+static int test_bi_ige_enc_dec(void)
+{
+ AES_KEY key, key2;
+ unsigned char iv[AES_BLOCK_SIZE * 4];
+ unsigned char ciphertext[BIG_TEST_SIZE];
+ unsigned char checktext[BIG_TEST_SIZE];
+
+ memcpy(iv, saved_iv, sizeof(iv));
+ AES_set_encrypt_key(rkey, 8 * sizeof(rkey), &key);
+ AES_set_encrypt_key(rkey2, 8 * sizeof(rkey2), &key2);
+ AES_bi_ige_encrypt(plaintext, ciphertext, TEST_SIZE, &key, &key2, iv,
+ AES_ENCRYPT);
+
+ AES_set_decrypt_key(rkey, 8 * sizeof(rkey), &key);
+ AES_set_decrypt_key(rkey2, 8 * sizeof(rkey2), &key2);
+ AES_bi_ige_encrypt(ciphertext, checktext, TEST_SIZE, &key, &key2, iv,
+ AES_DECRYPT);
+
+ return TEST_mem_eq(checktext, TEST_SIZE, plaintext, TEST_SIZE);
+}
+
+static int test_bi_ige_garble1(void)
+{
+ AES_KEY key, key2;
+ unsigned char iv[AES_BLOCK_SIZE * 4];
+ unsigned char ciphertext[BIG_TEST_SIZE];
+ unsigned char checktext[BIG_TEST_SIZE];
+ unsigned int n;
+ size_t matches;
+
+ memcpy(iv, saved_iv, sizeof(iv));
+ AES_set_encrypt_key(rkey, 8 * sizeof(rkey), &key);
+ AES_set_encrypt_key(rkey2, 8 * sizeof(rkey2), &key2);
+ AES_ige_encrypt(plaintext, ciphertext, sizeof(plaintext), &key, iv,
+ AES_ENCRYPT);
+
+ /* corrupt halfway through */
+ ++ciphertext[sizeof(ciphertext) / 2];
+ AES_set_decrypt_key(rkey, 8 * sizeof(rkey), &key);
+ AES_set_decrypt_key(rkey2, 8 * sizeof(rkey2), &key2);
+ AES_ige_encrypt(ciphertext, checktext, sizeof(checktext), &key, iv,
+ AES_DECRYPT);
+
+ matches = 0;
+ for (n = 0; n < sizeof(checktext); ++n)
+ if (checktext[n] == plaintext[n])
+ ++matches;
+
+ /* Fail if there is more than 1% matching bytes */
+ return TEST_size_t_le(matches, sizeof(checktext) / 100);
+}
+
+static int test_bi_ige_garble2(void)
+{
+ AES_KEY key, key2;
+ unsigned char iv[AES_BLOCK_SIZE * 4];
+ unsigned char ciphertext[BIG_TEST_SIZE];
+ unsigned char checktext[BIG_TEST_SIZE];
+ unsigned int n;
+ size_t matches;
+
+ memcpy(iv, saved_iv, sizeof(iv));
+ AES_set_encrypt_key(rkey, 8 * sizeof(rkey), &key);
+ AES_set_encrypt_key(rkey2, 8 * sizeof(rkey2), &key2);
+ AES_ige_encrypt(plaintext, ciphertext, sizeof(plaintext), &key, iv,
+ AES_ENCRYPT);
+
+ /* corrupt right at the end */
+ ++ciphertext[sizeof(ciphertext) - 1];
+ AES_set_decrypt_key(rkey, 8 * sizeof(rkey), &key);
+ AES_set_decrypt_key(rkey2, 8 * sizeof(rkey2), &key2);
+ AES_ige_encrypt(ciphertext, checktext, sizeof(checktext), &key, iv,
+ AES_DECRYPT);
+
+ matches = 0;
+ for (n = 0; n < sizeof(checktext); ++n)
+ if (checktext[n] == plaintext[n])
+ ++matches;
+
+ /* Fail if there is more than 1% matching bytes */
+ return TEST_size_t_le(matches, sizeof(checktext) / 100);
+}
+
+static int test_bi_ige_garble3(void)
+{
+ AES_KEY key, key2;
+ unsigned char iv[AES_BLOCK_SIZE * 4];
+ unsigned char ciphertext[BIG_TEST_SIZE];
+ unsigned char checktext[BIG_TEST_SIZE];
+ unsigned int n;
+ size_t matches;
+
+ memcpy(iv, saved_iv, sizeof(iv));
+ AES_set_encrypt_key(rkey, 8 * sizeof(rkey), &key);
+ AES_set_encrypt_key(rkey2, 8 * sizeof(rkey2), &key2);
+ AES_ige_encrypt(plaintext, ciphertext, sizeof(plaintext), &key, iv,
+ AES_ENCRYPT);
+
+ /* corrupt right at the start */
+ ++ciphertext[0];
+ AES_set_decrypt_key(rkey, 8 * sizeof(rkey), &key);
+ AES_set_decrypt_key(rkey2, 8 * sizeof(rkey2), &key2);
+ AES_ige_encrypt(ciphertext, checktext, sizeof(checktext), &key, iv,
+ AES_DECRYPT);
+
+ matches = 0;
+ for (n = 0; n < sizeof(checktext); ++n)
+ if (checktext[n] == plaintext[n])
+ ++matches;
+
+ /* Fail if there is more than 1% matching bytes */
+ return TEST_size_t_le(matches, sizeof(checktext) / 100);
+}
+
+int setup_tests(void)
+{
+ RAND_bytes(rkey, sizeof(rkey));
+ RAND_bytes(rkey2, sizeof(rkey2));
+ RAND_bytes(plaintext, sizeof(plaintext));
+ RAND_bytes(saved_iv, sizeof(saved_iv));
+
+ ADD_TEST(test_ige_enc_dec);
+ ADD_TEST(test_ige_enc_chaining);
+ ADD_TEST(test_ige_dec_chaining);
+ ADD_TEST(test_ige_garble_forwards);
+ ADD_TEST(test_bi_ige_enc_dec);
+ ADD_TEST(test_bi_ige_garble1);
+ ADD_TEST(test_bi_ige_garble2);
+ ADD_TEST(test_bi_ige_garble3);
+ ADD_ALL_TESTS(test_ige_vectors, OSSL_NELEM(ige_test_vectors));
+ ADD_ALL_TESTS(test_bi_ige_vectors, OSSL_NELEM(bi_ige_test_vectors));
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/lhash_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/lhash_test.c
new file mode 100644
index 000000000..162286b7c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/lhash_test.c
@@ -0,0 +1,228 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/opensslconf.h>
+#include <openssl/lhash.h>
+#include <openssl/err.h>
+#include <openssl/crypto.h>
+
+#include "internal/nelem.h"
+#include "testutil.h"
+
+/*
+ * The macros below generate unused functions which error out one of the clang
+ * builds. We disable this check here.
+ */
+#ifdef __clang__
+#pragma clang diagnostic ignored "-Wunused-function"
+#endif
+
+DEFINE_LHASH_OF(int);
+
+static int int_tests[] = { 65537, 13, 1, 3, -5, 6, 7, 4, -10, -12, -14, 22, 9,
+ -17, 16, 17, -23, 35, 37, 173, 11 };
+static const unsigned int n_int_tests = OSSL_NELEM(int_tests);
+static short int_found[OSSL_NELEM(int_tests)];
+
+static unsigned long int int_hash(const int *p)
+{
+ return 3 & *p; /* To force collisions */
+}
+
+static int int_cmp(const int *p, const int *q)
+{
+ return *p != *q;
+}
+
+static int int_find(int n)
+{
+ unsigned int i;
+
+ for (i = 0; i < n_int_tests; i++)
+ if (int_tests[i] == n)
+ return i;
+ return -1;
+}
+
+static void int_doall(int *v)
+{
+ int_found[int_find(*v)]++;
+}
+
+static void int_doall_arg(int *p, short *f)
+{
+ f[int_find(*p)]++;
+}
+
+IMPLEMENT_LHASH_DOALL_ARG(int, short);
+
+static int test_int_lhash(void)
+{
+ static struct {
+ int data;
+ int null;
+ } dels[] = {
+ { 65537, 0 },
+ { 173, 0 },
+ { 999, 1 },
+ { 37, 0 },
+ { 1, 0 },
+ { 34, 1 }
+ };
+ const unsigned int n_dels = OSSL_NELEM(dels);
+ LHASH_OF(int) *h = lh_int_new(&int_hash, &int_cmp);
+ unsigned int i;
+ int testresult = 0, j, *p;
+
+ if (!TEST_ptr(h))
+ goto end;
+
+ /* insert */
+ for (i = 0; i < n_int_tests; i++)
+ if (!TEST_ptr_null(lh_int_insert(h, int_tests + i))) {
+ TEST_info("int insert %d", i);
+ goto end;
+ }
+
+ /* num_items */
+ if (!TEST_int_eq(lh_int_num_items(h), n_int_tests))
+ goto end;
+
+ /* retrieve */
+ for (i = 0; i < n_int_tests; i++)
+ if (!TEST_int_eq(*lh_int_retrieve(h, int_tests + i), int_tests[i])) {
+ TEST_info("lhash int retrieve value %d", i);
+ goto end;
+ }
+ for (i = 0; i < n_int_tests; i++)
+ if (!TEST_ptr_eq(lh_int_retrieve(h, int_tests + i), int_tests + i)) {
+ TEST_info("lhash int retrieve address %d", i);
+ goto end;
+ }
+ j = 1;
+ if (!TEST_ptr_eq(lh_int_retrieve(h, &j), int_tests + 2))
+ goto end;
+
+ /* replace */
+ j = 13;
+ if (!TEST_ptr(p = lh_int_insert(h, &j)))
+ goto end;
+ if (!TEST_ptr_eq(p, int_tests + 1))
+ goto end;
+ if (!TEST_ptr_eq(lh_int_retrieve(h, int_tests + 1), &j))
+ goto end;
+
+ /* do_all */
+ memset(int_found, 0, sizeof(int_found));
+ lh_int_doall(h, &int_doall);
+ for (i = 0; i < n_int_tests; i++)
+ if (!TEST_int_eq(int_found[i], 1)) {
+ TEST_info("lhash int doall %d", i);
+ goto end;
+ }
+
+ /* do_all_arg */
+ memset(int_found, 0, sizeof(int_found));
+ lh_int_doall_short(h, int_doall_arg, int_found);
+ for (i = 0; i < n_int_tests; i++)
+ if (!TEST_int_eq(int_found[i], 1)) {
+ TEST_info("lhash int doall arg %d", i);
+ goto end;
+ }
+
+ /* delete */
+ for (i = 0; i < n_dels; i++) {
+ const int b = lh_int_delete(h, &dels[i].data) == NULL;
+ if (!TEST_int_eq(b ^ dels[i].null, 0)) {
+ TEST_info("lhash int delete %d", i);
+ goto end;
+ }
+ }
+
+ /* error */
+ if (!TEST_int_eq(lh_int_error(h), 0))
+ goto end;
+
+ testresult = 1;
+end:
+ lh_int_free(h);
+ return testresult;
+}
+
+static unsigned long int stress_hash(const int *p)
+{
+ return *p;
+}
+
+static int test_stress(void)
+{
+ LHASH_OF(int) *h = lh_int_new(&stress_hash, &int_cmp);
+ const unsigned int n = 2500000;
+ unsigned int i;
+ int testresult = 0, *p;
+
+ if (!TEST_ptr(h))
+ goto end;
+
+ /* insert */
+ for (i = 0; i < n; i++) {
+ p = OPENSSL_malloc(sizeof(i));
+ if (!TEST_ptr(p)) {
+ TEST_info("lhash stress out of memory %d", i);
+ goto end;
+ }
+ *p = 3 * i + 1;
+ lh_int_insert(h, p);
+ }
+
+ /* num_items */
+ if (!TEST_int_eq(lh_int_num_items(h), n))
+ goto end;
+
+ TEST_info("hash full statistics:");
+ OPENSSL_LH_stats_bio((OPENSSL_LHASH *)h, bio_err);
+ TEST_note("hash full node usage:");
+ OPENSSL_LH_node_usage_stats_bio((OPENSSL_LHASH *)h, bio_err);
+
+ /* delete in a different order */
+ for (i = 0; i < n; i++) {
+ const int j = (7 * i + 4) % n * 3 + 1;
+
+ if (!TEST_ptr(p = lh_int_delete(h, &j))) {
+ TEST_info("lhash stress delete %d\n", i);
+ goto end;
+ }
+ if (!TEST_int_eq(*p, j)) {
+ TEST_info("lhash stress bad value %d", i);
+ goto end;
+ }
+ OPENSSL_free(p);
+ }
+
+ TEST_info("hash empty statistics:");
+ OPENSSL_LH_stats_bio((OPENSSL_LHASH *)h, bio_err);
+ TEST_note("hash empty node usage:");
+ OPENSSL_LH_node_usage_stats_bio((OPENSSL_LHASH *)h, bio_err);
+
+ testresult = 1;
+end:
+ lh_int_free(h);
+ return testresult;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_int_lhash);
+ ADD_TEST(test_stress);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/md2test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/md2test.c
new file mode 100644
index 000000000..c5360d68a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/md2test.c
@@ -0,0 +1,67 @@
+/*
+ * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+
+#include "internal/nelem.h"
+#include "testutil.h"
+
+#ifndef OPENSSL_NO_MD2
+# include <openssl/evp.h>
+# include <openssl/md2.h>
+
+# ifdef CHARSET_EBCDIC
+# include <openssl/ebcdic.h>
+# endif
+
+static char *test[] = {
+ "",
+ "a",
+ "abc",
+ "message digest",
+ "abcdefghijklmnopqrstuvwxyz",
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "12345678901234567890123456789012345678901234567890123456789012345678901234567890",
+};
+
+static char *ret[] = {
+ "8350e5a3e24c153df2275c9f80692773",
+ "32ec01ec4a6dac72c0ab96fb34c0b5d1",
+ "da853b0d3f88d99b30283a69e6ded6bb",
+ "ab4f496bfb2a530b219ff33031fe06b0",
+ "4e8ddff3650292ab5a4108c3aa47940b",
+ "da33def2a42df13975352846c30338cd",
+ "d5976f79d83d3a0dc9806c3c66f3efd8",
+};
+
+static int test_md2(int n)
+{
+ char buf[80];
+ unsigned char md[MD2_DIGEST_LENGTH];
+ int i;
+
+ if (!TEST_true(EVP_Digest((unsigned char *)test[n], strlen(test[n]),
+ md, NULL, EVP_md2(), NULL)))
+ return 0;
+
+ for (i = 0; i < MD2_DIGEST_LENGTH; i++)
+ sprintf(&(buf[i * 2]), "%02x", md[i]);
+ if (!TEST_str_eq(buf, ret[n]))
+ return 0;
+ return 1;
+}
+#endif
+
+int setup_tests(void)
+{
+#ifndef OPENSSL_NO_MD2
+ ADD_ALL_TESTS(test_md2, OSSL_NELEM(test));
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/mdc2_internal_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/mdc2_internal_test.c
new file mode 100644
index 000000000..01e30fdd9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/mdc2_internal_test.c
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/* Internal tests for the mdc2 module */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/mdc2.h>
+#include "testutil.h"
+#include "internal/nelem.h"
+
+typedef struct {
+ const char *input;
+ const unsigned char expected[MDC2_DIGEST_LENGTH];
+} TESTDATA;
+
+
+/**********************************************************************
+ *
+ * Test driver
+ *
+ ***/
+
+static TESTDATA tests[] = {
+ {
+ "Now is the time for all ",
+ {
+ 0x42, 0xE5, 0x0C, 0xD2, 0x24, 0xBA, 0xCE, 0xBA,
+ 0x76, 0x0B, 0xDD, 0x2B, 0xD4, 0x09, 0x28, 0x1A
+ }
+ }
+};
+
+/**********************************************************************
+ *
+ * Test of mdc2 internal functions
+ *
+ ***/
+
+static int test_mdc2(int idx)
+{
+ unsigned char md[MDC2_DIGEST_LENGTH];
+ MDC2_CTX c;
+ const TESTDATA testdata = tests[idx];
+
+ MDC2_Init(&c);
+ MDC2_Update(&c, (const unsigned char *)testdata.input,
+ strlen(testdata.input));
+ MDC2_Final(&(md[0]), &c);
+
+ if (!TEST_mem_eq(testdata.expected, MDC2_DIGEST_LENGTH,
+ md, MDC2_DIGEST_LENGTH)) {
+ TEST_info("mdc2 test %d: unexpected output", idx);
+ return 0;
+ }
+
+ return 1;
+}
+
+int setup_tests(void)
+{
+ ADD_ALL_TESTS(test_mdc2, OSSL_NELEM(tests));
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/mdc2test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/mdc2test.c
new file mode 100644
index 000000000..0658843ce
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/mdc2test.c
@@ -0,0 +1,78 @@
+/*
+ * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+
+#include "internal/nelem.h"
+#include "testutil.h"
+
+#if defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_MDC2)
+# define OPENSSL_NO_MDC2
+#endif
+
+#ifndef OPENSSL_NO_MDC2
+# include <openssl/evp.h>
+# include <openssl/mdc2.h>
+
+# ifdef CHARSET_EBCDIC
+# include <openssl/ebcdic.h>
+# endif
+
+static unsigned char pad1[16] = {
+ 0x42, 0xE5, 0x0C, 0xD2, 0x24, 0xBA, 0xCE, 0xBA,
+ 0x76, 0x0B, 0xDD, 0x2B, 0xD4, 0x09, 0x28, 0x1A
+};
+
+static unsigned char pad2[16] = {
+ 0x2E, 0x46, 0x79, 0xB5, 0xAD, 0xD9, 0xCA, 0x75,
+ 0x35, 0xD8, 0x7A, 0xFE, 0xAB, 0x33, 0xBE, 0xE2
+};
+
+static int test_mdc2(void)
+{
+ int testresult = 0;
+ unsigned char md[MDC2_DIGEST_LENGTH];
+ EVP_MD_CTX *c;
+ static char text[] = "Now is the time for all ";
+ size_t tlen = strlen(text);
+
+# ifdef CHARSET_EBCDIC
+ ebcdic2ascii(text, text, tlen);
+# endif
+
+ c = EVP_MD_CTX_new();
+ if (!TEST_ptr(c)
+ || !TEST_true(EVP_DigestInit_ex(c, EVP_mdc2(), NULL))
+ || !TEST_true(EVP_DigestUpdate(c, (unsigned char *)text, tlen))
+ || !TEST_true(EVP_DigestFinal_ex(c, &(md[0]), NULL))
+ || !TEST_mem_eq(md, MDC2_DIGEST_LENGTH, pad1, MDC2_DIGEST_LENGTH)
+ || !TEST_true(EVP_DigestInit_ex(c, EVP_mdc2(), NULL)))
+ goto end;
+
+ /* FIXME: use a ctl function? */
+ ((MDC2_CTX *)EVP_MD_CTX_md_data(c))->pad_type = 2;
+ if (!TEST_true(EVP_DigestUpdate(c, (unsigned char *)text, tlen))
+ || !TEST_true(EVP_DigestFinal_ex(c, &(md[0]), NULL))
+ || !TEST_mem_eq(md, MDC2_DIGEST_LENGTH, pad2, MDC2_DIGEST_LENGTH))
+ goto end;
+
+ testresult = 1;
+ end:
+ EVP_MD_CTX_free(c);
+ return testresult;
+}
+#endif
+
+int setup_tests(void)
+{
+#ifndef OPENSSL_NO_MDC2
+ ADD_TEST(test_mdc2);
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/memleaktest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/memleaktest.c
new file mode 100644
index 000000000..d239bd23b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/memleaktest.c
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+#include <openssl/bio.h>
+#include <openssl/crypto.h>
+
+#include "testutil.h"
+
+/*
+ * We use a proper main function here instead of the custom main from the
+ * test framework because the CRYPTO_mem_leaks_fp function cannot be called
+ * a second time without trying to use a null pointer. The test framework
+ * calls this function as part of its close down.
+ *
+ * A work around is to call putenv("OPENSSL_DEBUG_MEMORY=0"); before exiting
+ * but that is worse than avoiding the test framework's main.
+ */
+
+int main(int argc, char *argv[])
+{
+#ifndef OPENSSL_NO_CRYPTO_MDEBUG
+ char *p;
+ char *lost;
+ int noleak;
+
+ p = getenv("OPENSSL_DEBUG_MEMORY");
+ if (p != NULL && strcmp(p, "on") == 0)
+ CRYPTO_set_mem_debug(1);
+ CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
+
+ lost = OPENSSL_malloc(3);
+ if (!TEST_ptr(lost))
+ return EXIT_FAILURE;
+
+ if (argv[1] && strcmp(argv[1], "freeit") == 0) {
+ OPENSSL_free(lost);
+ lost = NULL;
+ }
+
+ noleak = CRYPTO_mem_leaks_fp(stderr);
+ /* If -1 return value something bad happened */
+ if (!TEST_int_ne(noleak, -1))
+ return EXIT_FAILURE;
+
+ return TEST_int_eq(lost != NULL, noleak == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
+#else
+ return EXIT_SUCCESS;
+#endif
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/modes_internal_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/modes_internal_test.c
new file mode 100644
index 000000000..a0fa86e62
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/modes_internal_test.c
@@ -0,0 +1,892 @@
+/*
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/* Internal tests for the modes module */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/aes.h>
+#include <openssl/modes.h>
+#include "../crypto/modes/modes_local.h"
+#include "testutil.h"
+#include "internal/nelem.h"
+
+typedef struct {
+ size_t size;
+ const unsigned char *data;
+} SIZED_DATA;
+
+/**********************************************************************
+ *
+ * Test of cts128
+ *
+ ***/
+
+/* cts128 test vectors from RFC 3962 */
+static const unsigned char cts128_test_key[16] = "chicken teriyaki";
+static const unsigned char cts128_test_input[64] =
+ "I would like the" " General Gau's C"
+ "hicken, please, " "and wonton soup.";
+static const unsigned char cts128_test_iv[] =
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+
+static const unsigned char vector_17[17] = {
+ 0xc6, 0x35, 0x35, 0x68, 0xf2, 0xbf, 0x8c, 0xb4,
+ 0xd8, 0xa5, 0x80, 0x36, 0x2d, 0xa7, 0xff, 0x7f,
+ 0x97
+};
+
+static const unsigned char vector_31[31] = {
+ 0xfc, 0x00, 0x78, 0x3e, 0x0e, 0xfd, 0xb2, 0xc1,
+ 0xd4, 0x45, 0xd4, 0xc8, 0xef, 0xf7, 0xed, 0x22,
+ 0x97, 0x68, 0x72, 0x68, 0xd6, 0xec, 0xcc, 0xc0,
+ 0xc0, 0x7b, 0x25, 0xe2, 0x5e, 0xcf, 0xe5
+};
+
+static const unsigned char vector_32[32] = {
+ 0x39, 0x31, 0x25, 0x23, 0xa7, 0x86, 0x62, 0xd5,
+ 0xbe, 0x7f, 0xcb, 0xcc, 0x98, 0xeb, 0xf5, 0xa8,
+ 0x97, 0x68, 0x72, 0x68, 0xd6, 0xec, 0xcc, 0xc0,
+ 0xc0, 0x7b, 0x25, 0xe2, 0x5e, 0xcf, 0xe5, 0x84
+};
+
+static const unsigned char vector_47[47] = {
+ 0x97, 0x68, 0x72, 0x68, 0xd6, 0xec, 0xcc, 0xc0,
+ 0xc0, 0x7b, 0x25, 0xe2, 0x5e, 0xcf, 0xe5, 0x84,
+ 0xb3, 0xff, 0xfd, 0x94, 0x0c, 0x16, 0xa1, 0x8c,
+ 0x1b, 0x55, 0x49, 0xd2, 0xf8, 0x38, 0x02, 0x9e,
+ 0x39, 0x31, 0x25, 0x23, 0xa7, 0x86, 0x62, 0xd5,
+ 0xbe, 0x7f, 0xcb, 0xcc, 0x98, 0xeb, 0xf5
+};
+
+static const unsigned char vector_48[48] = {
+ 0x97, 0x68, 0x72, 0x68, 0xd6, 0xec, 0xcc, 0xc0,
+ 0xc0, 0x7b, 0x25, 0xe2, 0x5e, 0xcf, 0xe5, 0x84,
+ 0x9d, 0xad, 0x8b, 0xbb, 0x96, 0xc4, 0xcd, 0xc0,
+ 0x3b, 0xc1, 0x03, 0xe1, 0xa1, 0x94, 0xbb, 0xd8,
+ 0x39, 0x31, 0x25, 0x23, 0xa7, 0x86, 0x62, 0xd5,
+ 0xbe, 0x7f, 0xcb, 0xcc, 0x98, 0xeb, 0xf5, 0xa8
+};
+
+static const unsigned char vector_64[64] = {
+ 0x97, 0x68, 0x72, 0x68, 0xd6, 0xec, 0xcc, 0xc0,
+ 0xc0, 0x7b, 0x25, 0xe2, 0x5e, 0xcf, 0xe5, 0x84,
+ 0x39, 0x31, 0x25, 0x23, 0xa7, 0x86, 0x62, 0xd5,
+ 0xbe, 0x7f, 0xcb, 0xcc, 0x98, 0xeb, 0xf5, 0xa8,
+ 0x48, 0x07, 0xef, 0xe8, 0x36, 0xee, 0x89, 0xa5,
+ 0x26, 0x73, 0x0d, 0xbc, 0x2f, 0x7b, 0xc8, 0x40,
+ 0x9d, 0xad, 0x8b, 0xbb, 0x96, 0xc4, 0xcd, 0xc0,
+ 0x3b, 0xc1, 0x03, 0xe1, 0xa1, 0x94, 0xbb, 0xd8
+};
+
+#define CTS128_TEST_VECTOR(len) \
+ { \
+ sizeof(vector_##len), vector_##len \
+ }
+static const SIZED_DATA aes_cts128_vectors[] = {
+ CTS128_TEST_VECTOR(17),
+ CTS128_TEST_VECTOR(31),
+ CTS128_TEST_VECTOR(32),
+ CTS128_TEST_VECTOR(47),
+ CTS128_TEST_VECTOR(48),
+ CTS128_TEST_VECTOR(64),
+};
+
+static AES_KEY *cts128_encrypt_key_schedule(void)
+{
+ static int init_key = 1;
+ static AES_KEY ks;
+
+ if (init_key) {
+ AES_set_encrypt_key(cts128_test_key, 128, &ks);
+ init_key = 0;
+ }
+ return &ks;
+}
+
+static AES_KEY *cts128_decrypt_key_schedule(void)
+{
+ static int init_key = 1;
+ static AES_KEY ks;
+
+ if (init_key) {
+ AES_set_decrypt_key(cts128_test_key, 128, &ks);
+ init_key = 0;
+ }
+ return &ks;
+}
+
+typedef struct {
+ const char *case_name;
+ size_t (*last_blocks_correction)(const unsigned char *in,
+ unsigned char *out, size_t len);
+ size_t (*encrypt_block)(const unsigned char *in,
+ unsigned char *out, size_t len,
+ const void *key, unsigned char ivec[16],
+ block128_f block);
+ size_t (*encrypt_stream)(const unsigned char *in, unsigned char *out,
+ size_t len, const void *key,
+ unsigned char ivec[16], cbc128_f cbc);
+ size_t (*decrypt_block)(const unsigned char *in,
+ unsigned char *out, size_t len,
+ const void *key, unsigned char ivec[16],
+ block128_f block);
+ size_t (*decrypt_stream)(const unsigned char *in, unsigned char *out,
+ size_t len, const void *key,
+ unsigned char ivec[16], cbc128_f cbc);
+} CTS128_FIXTURE;
+
+static size_t last_blocks_correction(const unsigned char *in,
+ unsigned char *out, size_t len)
+{
+ size_t tail;
+
+ memcpy(out, in, len);
+ if ((tail = len % 16) == 0)
+ tail = 16;
+ tail += 16;
+
+ return tail;
+}
+
+static size_t last_blocks_correction_nist(const unsigned char *in,
+ unsigned char *out, size_t len)
+{
+ size_t tail;
+
+ if ((tail = len % 16) == 0)
+ tail = 16;
+ len -= 16 + tail;
+ memcpy(out, in, len);
+ /* flip two last blocks */
+ memcpy(out + len, in + len + 16, tail);
+ memcpy(out + len + tail, in + len, 16);
+ len += 16 + tail;
+ tail = 16;
+
+ return tail;
+}
+
+static int execute_cts128(const CTS128_FIXTURE *fixture, int num)
+{
+ const unsigned char *test_iv = cts128_test_iv;
+ size_t test_iv_len = sizeof(cts128_test_iv);
+ const unsigned char *orig_vector = aes_cts128_vectors[num].data;
+ size_t len = aes_cts128_vectors[num].size;
+ const unsigned char *test_input = cts128_test_input;
+ const AES_KEY *encrypt_key_schedule = cts128_encrypt_key_schedule();
+ const AES_KEY *decrypt_key_schedule = cts128_decrypt_key_schedule();
+ unsigned char iv[16];
+ /* The largest test inputs are = 64 bytes. */
+ unsigned char cleartext[64], ciphertext[64], vector[64];
+ size_t tail, size;
+
+ TEST_info("%s_vector_%lu", fixture->case_name, (unsigned long)len);
+
+ tail = fixture->last_blocks_correction(orig_vector, vector, len);
+
+ /* test block-based encryption */
+ memcpy(iv, test_iv, test_iv_len);
+ if (!TEST_size_t_eq(fixture->encrypt_block(test_input, ciphertext, len,
+ encrypt_key_schedule, iv,
+ (block128_f)AES_encrypt), len)
+ || !TEST_mem_eq(ciphertext, len, vector, len)
+ || !TEST_mem_eq(iv, sizeof(iv), vector + len - tail, sizeof(iv)))
+ return 0;
+
+ /* test block-based decryption */
+ memcpy(iv, test_iv, test_iv_len);
+ size = fixture->decrypt_block(ciphertext, cleartext, len,
+ decrypt_key_schedule, iv,
+ (block128_f)AES_decrypt);
+ if (!TEST_true(len == size || len + 16 == size)
+ || !TEST_mem_eq(cleartext, len, test_input, len)
+ || !TEST_mem_eq(iv, sizeof(iv), vector + len - tail, sizeof(iv)))
+ return 0;
+
+ /* test streamed encryption */
+ memcpy(iv, test_iv, test_iv_len);
+ if (!TEST_size_t_eq(fixture->encrypt_stream(test_input, ciphertext, len,
+ encrypt_key_schedule, iv,
+ (cbc128_f) AES_cbc_encrypt),
+ len)
+ || !TEST_mem_eq(ciphertext, len, vector, len)
+ || !TEST_mem_eq(iv, sizeof(iv), vector + len - tail, sizeof(iv)))
+ return 0;
+
+ /* test streamed decryption */
+ memcpy(iv, test_iv, test_iv_len);
+ if (!TEST_size_t_eq(fixture->decrypt_stream(ciphertext, cleartext, len,
+ decrypt_key_schedule, iv,
+ (cbc128_f)AES_cbc_encrypt),
+ len)
+ || !TEST_mem_eq(cleartext, len, test_input, len)
+ || !TEST_mem_eq(iv, sizeof(iv), vector + len - tail, sizeof(iv)))
+ return 0;
+
+ return 1;
+}
+
+static int test_aes_cts128(int idx)
+{
+ static const CTS128_FIXTURE fixture_cts128 = {
+ "aes_cts128", last_blocks_correction,
+ CRYPTO_cts128_encrypt_block, CRYPTO_cts128_encrypt,
+ CRYPTO_cts128_decrypt_block, CRYPTO_cts128_decrypt
+ };
+
+ return execute_cts128(&fixture_cts128, idx);
+}
+
+static int test_aes_cts128_nist(int idx)
+{
+ static const CTS128_FIXTURE fixture_cts128_nist = {
+ "aes_cts128_nist", last_blocks_correction_nist,
+ CRYPTO_nistcts128_encrypt_block, CRYPTO_nistcts128_encrypt,
+ CRYPTO_nistcts128_decrypt_block, CRYPTO_nistcts128_decrypt
+ };
+
+ return execute_cts128(&fixture_cts128_nist, idx);
+}
+
+/*
+ *
+ * Test of gcm128
+ *
+ */
+
+/* Test Case 1 */
+static const u8 K1[16], P1[] = { 0 }, A1[] = { 0 }, IV1[12], C1[] = { 0 };
+static const u8 T1[] = {
+ 0x58, 0xe2, 0xfc, 0xce, 0xfa, 0x7e, 0x30, 0x61,
+ 0x36, 0x7f, 0x1d, 0x57, 0xa4, 0xe7, 0x45, 0x5a
+};
+
+/* Test Case 2 */
+# define K2 K1
+# define A2 A1
+# define IV2 IV1
+static const u8 P2[16];
+static const u8 C2[] = {
+ 0x03, 0x88, 0xda, 0xce, 0x60, 0xb6, 0xa3, 0x92,
+ 0xf3, 0x28, 0xc2, 0xb9, 0x71, 0xb2, 0xfe, 0x78
+};
+
+static const u8 T2[] = {
+ 0xab, 0x6e, 0x47, 0xd4, 0x2c, 0xec, 0x13, 0xbd,
+ 0xf5, 0x3a, 0x67, 0xb2, 0x12, 0x57, 0xbd, 0xdf
+};
+
+/* Test Case 3 */
+# define A3 A2
+static const u8 K3[] = {
+ 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
+ 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08
+};
+
+static const u8 P3[] = {
+ 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
+ 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
+ 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
+ 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
+ 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
+ 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
+ 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
+ 0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55
+};
+
+static const u8 IV3[] = {
+ 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
+ 0xde, 0xca, 0xf8, 0x88
+};
+
+static const u8 C3[] = {
+ 0x42, 0x83, 0x1e, 0xc2, 0x21, 0x77, 0x74, 0x24,
+ 0x4b, 0x72, 0x21, 0xb7, 0x84, 0xd0, 0xd4, 0x9c,
+ 0xe3, 0xaa, 0x21, 0x2f, 0x2c, 0x02, 0xa4, 0xe0,
+ 0x35, 0xc1, 0x7e, 0x23, 0x29, 0xac, 0xa1, 0x2e,
+ 0x21, 0xd5, 0x14, 0xb2, 0x54, 0x66, 0x93, 0x1c,
+ 0x7d, 0x8f, 0x6a, 0x5a, 0xac, 0x84, 0xaa, 0x05,
+ 0x1b, 0xa3, 0x0b, 0x39, 0x6a, 0x0a, 0xac, 0x97,
+ 0x3d, 0x58, 0xe0, 0x91, 0x47, 0x3f, 0x59, 0x85
+};
+
+static const u8 T3[] = {
+ 0x4d, 0x5c, 0x2a, 0xf3, 0x27, 0xcd, 0x64, 0xa6,
+ 0x2c, 0xf3, 0x5a, 0xbd, 0x2b, 0xa6, 0xfa, 0xb4
+};
+
+/* Test Case 4 */
+# define K4 K3
+# define IV4 IV3
+static const u8 P4[] = {
+ 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
+ 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
+ 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
+ 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
+ 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
+ 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
+ 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
+ 0xba, 0x63, 0x7b, 0x39
+};
+
+static const u8 A4[] = {
+ 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
+ 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
+ 0xab, 0xad, 0xda, 0xd2
+};
+
+static const u8 C4[] = {
+ 0x42, 0x83, 0x1e, 0xc2, 0x21, 0x77, 0x74, 0x24,
+ 0x4b, 0x72, 0x21, 0xb7, 0x84, 0xd0, 0xd4, 0x9c,
+ 0xe3, 0xaa, 0x21, 0x2f, 0x2c, 0x02, 0xa4, 0xe0,
+ 0x35, 0xc1, 0x7e, 0x23, 0x29, 0xac, 0xa1, 0x2e,
+ 0x21, 0xd5, 0x14, 0xb2, 0x54, 0x66, 0x93, 0x1c,
+ 0x7d, 0x8f, 0x6a, 0x5a, 0xac, 0x84, 0xaa, 0x05,
+ 0x1b, 0xa3, 0x0b, 0x39, 0x6a, 0x0a, 0xac, 0x97,
+ 0x3d, 0x58, 0xe0, 0x91
+};
+
+static const u8 T4[] = {
+ 0x5b, 0xc9, 0x4f, 0xbc, 0x32, 0x21, 0xa5, 0xdb,
+ 0x94, 0xfa, 0xe9, 0x5a, 0xe7, 0x12, 0x1a, 0x47
+};
+
+/* Test Case 5 */
+# define K5 K4
+# define P5 P4
+# define A5 A4
+static const u8 IV5[] = {
+ 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad
+};
+
+static const u8 C5[] = {
+ 0x61, 0x35, 0x3b, 0x4c, 0x28, 0x06, 0x93, 0x4a,
+ 0x77, 0x7f, 0xf5, 0x1f, 0xa2, 0x2a, 0x47, 0x55,
+ 0x69, 0x9b, 0x2a, 0x71, 0x4f, 0xcd, 0xc6, 0xf8,
+ 0x37, 0x66, 0xe5, 0xf9, 0x7b, 0x6c, 0x74, 0x23,
+ 0x73, 0x80, 0x69, 0x00, 0xe4, 0x9f, 0x24, 0xb2,
+ 0x2b, 0x09, 0x75, 0x44, 0xd4, 0x89, 0x6b, 0x42,
+ 0x49, 0x89, 0xb5, 0xe1, 0xeb, 0xac, 0x0f, 0x07,
+ 0xc2, 0x3f, 0x45, 0x98
+};
+
+static const u8 T5[] = {
+ 0x36, 0x12, 0xd2, 0xe7, 0x9e, 0x3b, 0x07, 0x85,
+ 0x56, 0x1b, 0xe1, 0x4a, 0xac, 0xa2, 0xfc, 0xcb
+};
+
+/* Test Case 6 */
+# define K6 K5
+# define P6 P5
+# define A6 A5
+static const u8 IV6[] = {
+ 0x93, 0x13, 0x22, 0x5d, 0xf8, 0x84, 0x06, 0xe5,
+ 0x55, 0x90, 0x9c, 0x5a, 0xff, 0x52, 0x69, 0xaa,
+ 0x6a, 0x7a, 0x95, 0x38, 0x53, 0x4f, 0x7d, 0xa1,
+ 0xe4, 0xc3, 0x03, 0xd2, 0xa3, 0x18, 0xa7, 0x28,
+ 0xc3, 0xc0, 0xc9, 0x51, 0x56, 0x80, 0x95, 0x39,
+ 0xfc, 0xf0, 0xe2, 0x42, 0x9a, 0x6b, 0x52, 0x54,
+ 0x16, 0xae, 0xdb, 0xf5, 0xa0, 0xde, 0x6a, 0x57,
+ 0xa6, 0x37, 0xb3, 0x9b
+};
+
+static const u8 C6[] = {
+ 0x8c, 0xe2, 0x49, 0x98, 0x62, 0x56, 0x15, 0xb6,
+ 0x03, 0xa0, 0x33, 0xac, 0xa1, 0x3f, 0xb8, 0x94,
+ 0xbe, 0x91, 0x12, 0xa5, 0xc3, 0xa2, 0x11, 0xa8,
+ 0xba, 0x26, 0x2a, 0x3c, 0xca, 0x7e, 0x2c, 0xa7,
+ 0x01, 0xe4, 0xa9, 0xa4, 0xfb, 0xa4, 0x3c, 0x90,
+ 0xcc, 0xdc, 0xb2, 0x81, 0xd4, 0x8c, 0x7c, 0x6f,
+ 0xd6, 0x28, 0x75, 0xd2, 0xac, 0xa4, 0x17, 0x03,
+ 0x4c, 0x34, 0xae, 0xe5
+};
+
+static const u8 T6[] = {
+ 0x61, 0x9c, 0xc5, 0xae, 0xff, 0xfe, 0x0b, 0xfa,
+ 0x46, 0x2a, 0xf4, 0x3c, 0x16, 0x99, 0xd0, 0x50
+};
+
+/* Test Case 7 */
+static const u8 K7[24], P7[] = { 0 }, A7[] = { 0 }, IV7[12], C7[] = { 0 };
+static const u8 T7[] = {
+ 0xcd, 0x33, 0xb2, 0x8a, 0xc7, 0x73, 0xf7, 0x4b,
+ 0xa0, 0x0e, 0xd1, 0xf3, 0x12, 0x57, 0x24, 0x35
+};
+
+/* Test Case 8 */
+# define K8 K7
+# define IV8 IV7
+# define A8 A7
+static const u8 P8[16];
+static const u8 C8[] = {
+ 0x98, 0xe7, 0x24, 0x7c, 0x07, 0xf0, 0xfe, 0x41,
+ 0x1c, 0x26, 0x7e, 0x43, 0x84, 0xb0, 0xf6, 0x00
+};
+
+static const u8 T8[] = {
+ 0x2f, 0xf5, 0x8d, 0x80, 0x03, 0x39, 0x27, 0xab,
+ 0x8e, 0xf4, 0xd4, 0x58, 0x75, 0x14, 0xf0, 0xfb
+};
+
+/* Test Case 9 */
+# define A9 A8
+static const u8 K9[] = {
+ 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
+ 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
+ 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c
+};
+
+static const u8 P9[] = {
+ 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
+ 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
+ 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
+ 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
+ 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
+ 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
+ 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
+ 0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55
+};
+
+static const u8 IV9[] = {
+ 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
+ 0xde, 0xca, 0xf8, 0x88
+};
+
+static const u8 C9[] = {
+ 0x39, 0x80, 0xca, 0x0b, 0x3c, 0x00, 0xe8, 0x41,
+ 0xeb, 0x06, 0xfa, 0xc4, 0x87, 0x2a, 0x27, 0x57,
+ 0x85, 0x9e, 0x1c, 0xea, 0xa6, 0xef, 0xd9, 0x84,
+ 0x62, 0x85, 0x93, 0xb4, 0x0c, 0xa1, 0xe1, 0x9c,
+ 0x7d, 0x77, 0x3d, 0x00, 0xc1, 0x44, 0xc5, 0x25,
+ 0xac, 0x61, 0x9d, 0x18, 0xc8, 0x4a, 0x3f, 0x47,
+ 0x18, 0xe2, 0x44, 0x8b, 0x2f, 0xe3, 0x24, 0xd9,
+ 0xcc, 0xda, 0x27, 0x10, 0xac, 0xad, 0xe2, 0x56
+};
+
+static const u8 T9[] = {
+ 0x99, 0x24, 0xa7, 0xc8, 0x58, 0x73, 0x36, 0xbf,
+ 0xb1, 0x18, 0x02, 0x4d, 0xb8, 0x67, 0x4a, 0x14
+};
+
+/* Test Case 10 */
+# define K10 K9
+# define IV10 IV9
+static const u8 P10[] = {
+ 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
+ 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
+ 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
+ 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
+ 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
+ 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
+ 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
+ 0xba, 0x63, 0x7b, 0x39
+};
+
+static const u8 A10[] = {
+ 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
+ 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
+ 0xab, 0xad, 0xda, 0xd2
+};
+
+static const u8 C10[] = {
+ 0x39, 0x80, 0xca, 0x0b, 0x3c, 0x00, 0xe8, 0x41,
+ 0xeb, 0x06, 0xfa, 0xc4, 0x87, 0x2a, 0x27, 0x57,
+ 0x85, 0x9e, 0x1c, 0xea, 0xa6, 0xef, 0xd9, 0x84,
+ 0x62, 0x85, 0x93, 0xb4, 0x0c, 0xa1, 0xe1, 0x9c,
+ 0x7d, 0x77, 0x3d, 0x00, 0xc1, 0x44, 0xc5, 0x25,
+ 0xac, 0x61, 0x9d, 0x18, 0xc8, 0x4a, 0x3f, 0x47,
+ 0x18, 0xe2, 0x44, 0x8b, 0x2f, 0xe3, 0x24, 0xd9,
+ 0xcc, 0xda, 0x27, 0x10
+};
+
+static const u8 T10[] = {
+ 0x25, 0x19, 0x49, 0x8e, 0x80, 0xf1, 0x47, 0x8f,
+ 0x37, 0xba, 0x55, 0xbd, 0x6d, 0x27, 0x61, 0x8c
+};
+
+/* Test Case 11 */
+# define K11 K10
+# define P11 P10
+# define A11 A10
+static const u8 IV11[] = { 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad };
+
+static const u8 C11[] = {
+ 0x0f, 0x10, 0xf5, 0x99, 0xae, 0x14, 0xa1, 0x54,
+ 0xed, 0x24, 0xb3, 0x6e, 0x25, 0x32, 0x4d, 0xb8,
+ 0xc5, 0x66, 0x63, 0x2e, 0xf2, 0xbb, 0xb3, 0x4f,
+ 0x83, 0x47, 0x28, 0x0f, 0xc4, 0x50, 0x70, 0x57,
+ 0xfd, 0xdc, 0x29, 0xdf, 0x9a, 0x47, 0x1f, 0x75,
+ 0xc6, 0x65, 0x41, 0xd4, 0xd4, 0xda, 0xd1, 0xc9,
+ 0xe9, 0x3a, 0x19, 0xa5, 0x8e, 0x8b, 0x47, 0x3f,
+ 0xa0, 0xf0, 0x62, 0xf7
+};
+
+static const u8 T11[] = {
+ 0x65, 0xdc, 0xc5, 0x7f, 0xcf, 0x62, 0x3a, 0x24,
+ 0x09, 0x4f, 0xcc, 0xa4, 0x0d, 0x35, 0x33, 0xf8
+};
+
+/* Test Case 12 */
+# define K12 K11
+# define P12 P11
+# define A12 A11
+static const u8 IV12[] = {
+ 0x93, 0x13, 0x22, 0x5d, 0xf8, 0x84, 0x06, 0xe5,
+ 0x55, 0x90, 0x9c, 0x5a, 0xff, 0x52, 0x69, 0xaa,
+ 0x6a, 0x7a, 0x95, 0x38, 0x53, 0x4f, 0x7d, 0xa1,
+ 0xe4, 0xc3, 0x03, 0xd2, 0xa3, 0x18, 0xa7, 0x28,
+ 0xc3, 0xc0, 0xc9, 0x51, 0x56, 0x80, 0x95, 0x39,
+ 0xfc, 0xf0, 0xe2, 0x42, 0x9a, 0x6b, 0x52, 0x54,
+ 0x16, 0xae, 0xdb, 0xf5, 0xa0, 0xde, 0x6a, 0x57,
+ 0xa6, 0x37, 0xb3, 0x9b
+};
+
+static const u8 C12[] = {
+ 0xd2, 0x7e, 0x88, 0x68, 0x1c, 0xe3, 0x24, 0x3c,
+ 0x48, 0x30, 0x16, 0x5a, 0x8f, 0xdc, 0xf9, 0xff,
+ 0x1d, 0xe9, 0xa1, 0xd8, 0xe6, 0xb4, 0x47, 0xef,
+ 0x6e, 0xf7, 0xb7, 0x98, 0x28, 0x66, 0x6e, 0x45,
+ 0x81, 0xe7, 0x90, 0x12, 0xaf, 0x34, 0xdd, 0xd9,
+ 0xe2, 0xf0, 0x37, 0x58, 0x9b, 0x29, 0x2d, 0xb3,
+ 0xe6, 0x7c, 0x03, 0x67, 0x45, 0xfa, 0x22, 0xe7,
+ 0xe9, 0xb7, 0x37, 0x3b
+};
+
+static const u8 T12[] = {
+ 0xdc, 0xf5, 0x66, 0xff, 0x29, 0x1c, 0x25, 0xbb,
+ 0xb8, 0x56, 0x8f, 0xc3, 0xd3, 0x76, 0xa6, 0xd9
+};
+
+/* Test Case 13 */
+static const u8 K13[32], P13[] = { 0 }, A13[] = { 0 }, IV13[12], C13[] = { 0 };
+static const u8 T13[] = {
+ 0x53, 0x0f, 0x8a, 0xfb, 0xc7, 0x45, 0x36, 0xb9,
+ 0xa9, 0x63, 0xb4, 0xf1, 0xc4, 0xcb, 0x73, 0x8b
+};
+
+/* Test Case 14 */
+# define K14 K13
+# define A14 A13
+static const u8 P14[16], IV14[12];
+static const u8 C14[] = {
+ 0xce, 0xa7, 0x40, 0x3d, 0x4d, 0x60, 0x6b, 0x6e,
+ 0x07, 0x4e, 0xc5, 0xd3, 0xba, 0xf3, 0x9d, 0x18
+};
+
+static const u8 T14[] = {
+ 0xd0, 0xd1, 0xc8, 0xa7, 0x99, 0x99, 0x6b, 0xf0,
+ 0x26, 0x5b, 0x98, 0xb5, 0xd4, 0x8a, 0xb9, 0x19
+};
+
+/* Test Case 15 */
+# define A15 A14
+static const u8 K15[] = {
+ 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
+ 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
+ 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
+ 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08
+};
+
+static const u8 P15[] = {
+ 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
+ 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
+ 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
+ 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
+ 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
+ 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
+ 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
+ 0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55
+};
+
+static const u8 IV15[] = {
+ 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
+ 0xde, 0xca, 0xf8, 0x88
+};
+
+static const u8 C15[] = {
+ 0x52, 0x2d, 0xc1, 0xf0, 0x99, 0x56, 0x7d, 0x07,
+ 0xf4, 0x7f, 0x37, 0xa3, 0x2a, 0x84, 0x42, 0x7d,
+ 0x64, 0x3a, 0x8c, 0xdc, 0xbf, 0xe5, 0xc0, 0xc9,
+ 0x75, 0x98, 0xa2, 0xbd, 0x25, 0x55, 0xd1, 0xaa,
+ 0x8c, 0xb0, 0x8e, 0x48, 0x59, 0x0d, 0xbb, 0x3d,
+ 0xa7, 0xb0, 0x8b, 0x10, 0x56, 0x82, 0x88, 0x38,
+ 0xc5, 0xf6, 0x1e, 0x63, 0x93, 0xba, 0x7a, 0x0a,
+ 0xbc, 0xc9, 0xf6, 0x62, 0x89, 0x80, 0x15, 0xad
+};
+
+static const u8 T15[] = {
+ 0xb0, 0x94, 0xda, 0xc5, 0xd9, 0x34, 0x71, 0xbd,
+ 0xec, 0x1a, 0x50, 0x22, 0x70, 0xe3, 0xcc, 0x6c
+};
+
+/* Test Case 16 */
+# define K16 K15
+# define IV16 IV15
+static const u8 P16[] = {
+ 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
+ 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
+ 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
+ 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
+ 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
+ 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
+ 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
+ 0xba, 0x63, 0x7b, 0x39
+};
+
+static const u8 A16[] = {
+ 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
+ 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
+ 0xab, 0xad, 0xda, 0xd2
+};
+
+static const u8 C16[] = {
+ 0x52, 0x2d, 0xc1, 0xf0, 0x99, 0x56, 0x7d, 0x07,
+ 0xf4, 0x7f, 0x37, 0xa3, 0x2a, 0x84, 0x42, 0x7d,
+ 0x64, 0x3a, 0x8c, 0xdc, 0xbf, 0xe5, 0xc0, 0xc9,
+ 0x75, 0x98, 0xa2, 0xbd, 0x25, 0x55, 0xd1, 0xaa,
+ 0x8c, 0xb0, 0x8e, 0x48, 0x59, 0x0d, 0xbb, 0x3d,
+ 0xa7, 0xb0, 0x8b, 0x10, 0x56, 0x82, 0x88, 0x38,
+ 0xc5, 0xf6, 0x1e, 0x63, 0x93, 0xba, 0x7a, 0x0a,
+ 0xbc, 0xc9, 0xf6, 0x62
+};
+
+static const u8 T16[] = {
+ 0x76, 0xfc, 0x6e, 0xce, 0x0f, 0x4e, 0x17, 0x68,
+ 0xcd, 0xdf, 0x88, 0x53, 0xbb, 0x2d, 0x55, 0x1b
+};
+
+/* Test Case 17 */
+# define K17 K16
+# define P17 P16
+# define A17 A16
+static const u8 IV17[] = { 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad };
+
+static const u8 C17[] = {
+ 0xc3, 0x76, 0x2d, 0xf1, 0xca, 0x78, 0x7d, 0x32,
+ 0xae, 0x47, 0xc1, 0x3b, 0xf1, 0x98, 0x44, 0xcb,
+ 0xaf, 0x1a, 0xe1, 0x4d, 0x0b, 0x97, 0x6a, 0xfa,
+ 0xc5, 0x2f, 0xf7, 0xd7, 0x9b, 0xba, 0x9d, 0xe0,
+ 0xfe, 0xb5, 0x82, 0xd3, 0x39, 0x34, 0xa4, 0xf0,
+ 0x95, 0x4c, 0xc2, 0x36, 0x3b, 0xc7, 0x3f, 0x78,
+ 0x62, 0xac, 0x43, 0x0e, 0x64, 0xab, 0xe4, 0x99,
+ 0xf4, 0x7c, 0x9b, 0x1f
+};
+
+static const u8 T17[] = {
+ 0x3a, 0x33, 0x7d, 0xbf, 0x46, 0xa7, 0x92, 0xc4,
+ 0x5e, 0x45, 0x49, 0x13, 0xfe, 0x2e, 0xa8, 0xf2
+};
+
+/* Test Case 18 */
+# define K18 K17
+# define P18 P17
+# define A18 A17
+static const u8 IV18[] = {
+ 0x93, 0x13, 0x22, 0x5d, 0xf8, 0x84, 0x06, 0xe5,
+ 0x55, 0x90, 0x9c, 0x5a, 0xff, 0x52, 0x69, 0xaa,
+ 0x6a, 0x7a, 0x95, 0x38, 0x53, 0x4f, 0x7d, 0xa1,
+ 0xe4, 0xc3, 0x03, 0xd2, 0xa3, 0x18, 0xa7, 0x28,
+ 0xc3, 0xc0, 0xc9, 0x51, 0x56, 0x80, 0x95, 0x39,
+ 0xfc, 0xf0, 0xe2, 0x42, 0x9a, 0x6b, 0x52, 0x54,
+ 0x16, 0xae, 0xdb, 0xf5, 0xa0, 0xde, 0x6a, 0x57,
+ 0xa6, 0x37, 0xb3, 0x9b
+};
+
+static const u8 C18[] = {
+ 0x5a, 0x8d, 0xef, 0x2f, 0x0c, 0x9e, 0x53, 0xf1,
+ 0xf7, 0x5d, 0x78, 0x53, 0x65, 0x9e, 0x2a, 0x20,
+ 0xee, 0xb2, 0xb2, 0x2a, 0xaf, 0xde, 0x64, 0x19,
+ 0xa0, 0x58, 0xab, 0x4f, 0x6f, 0x74, 0x6b, 0xf4,
+ 0x0f, 0xc0, 0xc3, 0xb7, 0x80, 0xf2, 0x44, 0x45,
+ 0x2d, 0xa3, 0xeb, 0xf1, 0xc5, 0xd8, 0x2c, 0xde,
+ 0xa2, 0x41, 0x89, 0x97, 0x20, 0x0e, 0xf8, 0x2e,
+ 0x44, 0xae, 0x7e, 0x3f
+};
+
+static const u8 T18[] = {
+ 0xa4, 0x4a, 0x82, 0x66, 0xee, 0x1c, 0x8e, 0xb0,
+ 0xc8, 0xb5, 0xd4, 0xcf, 0x5a, 0xe9, 0xf1, 0x9a
+};
+
+/* Test Case 19 */
+# define K19 K1
+# define P19 P1
+# define IV19 IV1
+# define C19 C1
+static const u8 A19[] = {
+ 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
+ 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
+ 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
+ 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
+ 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
+ 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
+ 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
+ 0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55,
+ 0x52, 0x2d, 0xc1, 0xf0, 0x99, 0x56, 0x7d, 0x07,
+ 0xf4, 0x7f, 0x37, 0xa3, 0x2a, 0x84, 0x42, 0x7d,
+ 0x64, 0x3a, 0x8c, 0xdc, 0xbf, 0xe5, 0xc0, 0xc9,
+ 0x75, 0x98, 0xa2, 0xbd, 0x25, 0x55, 0xd1, 0xaa,
+ 0x8c, 0xb0, 0x8e, 0x48, 0x59, 0x0d, 0xbb, 0x3d,
+ 0xa7, 0xb0, 0x8b, 0x10, 0x56, 0x82, 0x88, 0x38,
+ 0xc5, 0xf6, 0x1e, 0x63, 0x93, 0xba, 0x7a, 0x0a,
+ 0xbc, 0xc9, 0xf6, 0x62, 0x89, 0x80, 0x15, 0xad
+};
+
+static const u8 T19[] = {
+ 0x5f, 0xea, 0x79, 0x3a, 0x2d, 0x6f, 0x97, 0x4d,
+ 0x37, 0xe6, 0x8e, 0x0c, 0xb8, 0xff, 0x94, 0x92
+};
+
+/* Test Case 20 */
+# define K20 K1
+# define A20 A1
+/* this results in 0xff in counter LSB */
+static const u8 IV20[64] = { 0xff, 0xff, 0xff, 0xff };
+
+static const u8 P20[288];
+static const u8 C20[] = {
+ 0x56, 0xb3, 0x37, 0x3c, 0xa9, 0xef, 0x6e, 0x4a,
+ 0x2b, 0x64, 0xfe, 0x1e, 0x9a, 0x17, 0xb6, 0x14,
+ 0x25, 0xf1, 0x0d, 0x47, 0xa7, 0x5a, 0x5f, 0xce,
+ 0x13, 0xef, 0xc6, 0xbc, 0x78, 0x4a, 0xf2, 0x4f,
+ 0x41, 0x41, 0xbd, 0xd4, 0x8c, 0xf7, 0xc7, 0x70,
+ 0x88, 0x7a, 0xfd, 0x57, 0x3c, 0xca, 0x54, 0x18,
+ 0xa9, 0xae, 0xff, 0xcd, 0x7c, 0x5c, 0xed, 0xdf,
+ 0xc6, 0xa7, 0x83, 0x97, 0xb9, 0xa8, 0x5b, 0x49,
+ 0x9d, 0xa5, 0x58, 0x25, 0x72, 0x67, 0xca, 0xab,
+ 0x2a, 0xd0, 0xb2, 0x3c, 0xa4, 0x76, 0xa5, 0x3c,
+ 0xb1, 0x7f, 0xb4, 0x1c, 0x4b, 0x8b, 0x47, 0x5c,
+ 0xb4, 0xf3, 0xf7, 0x16, 0x50, 0x94, 0xc2, 0x29,
+ 0xc9, 0xe8, 0xc4, 0xdc, 0x0a, 0x2a, 0x5f, 0xf1,
+ 0x90, 0x3e, 0x50, 0x15, 0x11, 0x22, 0x13, 0x76,
+ 0xa1, 0xcd, 0xb8, 0x36, 0x4c, 0x50, 0x61, 0xa2,
+ 0x0c, 0xae, 0x74, 0xbc, 0x4a, 0xcd, 0x76, 0xce,
+ 0xb0, 0xab, 0xc9, 0xfd, 0x32, 0x17, 0xef, 0x9f,
+ 0x8c, 0x90, 0xbe, 0x40, 0x2d, 0xdf, 0x6d, 0x86,
+ 0x97, 0xf4, 0xf8, 0x80, 0xdf, 0xf1, 0x5b, 0xfb,
+ 0x7a, 0x6b, 0x28, 0x24, 0x1e, 0xc8, 0xfe, 0x18,
+ 0x3c, 0x2d, 0x59, 0xe3, 0xf9, 0xdf, 0xff, 0x65,
+ 0x3c, 0x71, 0x26, 0xf0, 0xac, 0xb9, 0xe6, 0x42,
+ 0x11, 0xf4, 0x2b, 0xae, 0x12, 0xaf, 0x46, 0x2b,
+ 0x10, 0x70, 0xbe, 0xf1, 0xab, 0x5e, 0x36, 0x06,
+ 0x87, 0x2c, 0xa1, 0x0d, 0xee, 0x15, 0xb3, 0x24,
+ 0x9b, 0x1a, 0x1b, 0x95, 0x8f, 0x23, 0x13, 0x4c,
+ 0x4b, 0xcc, 0xb7, 0xd0, 0x32, 0x00, 0xbc, 0xe4,
+ 0x20, 0xa2, 0xf8, 0xeb, 0x66, 0xdc, 0xf3, 0x64,
+ 0x4d, 0x14, 0x23, 0xc1, 0xb5, 0x69, 0x90, 0x03,
+ 0xc1, 0x3e, 0xce, 0xf4, 0xbf, 0x38, 0xa3, 0xb6,
+ 0x0e, 0xed, 0xc3, 0x40, 0x33, 0xba, 0xc1, 0x90,
+ 0x27, 0x83, 0xdc, 0x6d, 0x89, 0xe2, 0xe7, 0x74,
+ 0x18, 0x8a, 0x43, 0x9c, 0x7e, 0xbc, 0xc0, 0x67,
+ 0x2d, 0xbd, 0xa4, 0xdd, 0xcf, 0xb2, 0x79, 0x46,
+ 0x13, 0xb0, 0xbe, 0x41, 0x31, 0x5e, 0xf7, 0x78,
+ 0x70, 0x8a, 0x70, 0xee, 0x7d, 0x75, 0x16, 0x5c
+};
+
+static const u8 T20[] = {
+ 0x8b, 0x30, 0x7f, 0x6b, 0x33, 0x28, 0x6d, 0x0a,
+ 0xb0, 0x26, 0xa9, 0xed, 0x3f, 0xe1, 0xe8, 0x5f
+};
+
+#define GCM128_TEST_VECTOR(n) \
+ { \
+ {sizeof(K##n), K##n}, \
+ {sizeof(IV##n), IV##n}, \
+ {sizeof(A##n), A##n}, \
+ {sizeof(P##n), P##n}, \
+ {sizeof(C##n), C##n}, \
+ {sizeof(T##n), T##n} \
+ }
+static struct gcm128_data {
+ const SIZED_DATA K;
+ const SIZED_DATA IV;
+ const SIZED_DATA A;
+ const SIZED_DATA P;
+ const SIZED_DATA C;
+ const SIZED_DATA T;
+} gcm128_vectors[] = {
+ GCM128_TEST_VECTOR(1),
+ GCM128_TEST_VECTOR(2),
+ GCM128_TEST_VECTOR(3),
+ GCM128_TEST_VECTOR(4),
+ GCM128_TEST_VECTOR(5),
+ GCM128_TEST_VECTOR(6),
+ GCM128_TEST_VECTOR(7),
+ GCM128_TEST_VECTOR(8),
+ GCM128_TEST_VECTOR(9),
+ GCM128_TEST_VECTOR(10),
+ GCM128_TEST_VECTOR(11),
+ GCM128_TEST_VECTOR(12),
+ GCM128_TEST_VECTOR(13),
+ GCM128_TEST_VECTOR(14),
+ GCM128_TEST_VECTOR(15),
+ GCM128_TEST_VECTOR(16),
+ GCM128_TEST_VECTOR(17),
+ GCM128_TEST_VECTOR(18),
+ GCM128_TEST_VECTOR(19),
+ GCM128_TEST_VECTOR(20)
+};
+
+static int test_gcm128(int idx)
+{
+ unsigned char out[512];
+ SIZED_DATA K = gcm128_vectors[idx].K;
+ SIZED_DATA IV = gcm128_vectors[idx].IV;
+ SIZED_DATA A = gcm128_vectors[idx].A;
+ SIZED_DATA P = gcm128_vectors[idx].P;
+ SIZED_DATA C = gcm128_vectors[idx].C;
+ SIZED_DATA T = gcm128_vectors[idx].T;
+ GCM128_CONTEXT ctx;
+ AES_KEY key;
+
+ /* Size 1 inputs are special-cased to signal NULL. */
+ if (A.size == 1)
+ A.data = NULL;
+ if (P.size == 1)
+ P.data = NULL;
+ if (C.size == 1)
+ C.data = NULL;
+
+ AES_set_encrypt_key(K.data, K.size * 8, &key);
+
+ CRYPTO_gcm128_init(&ctx, &key, (block128_f)AES_encrypt);
+ CRYPTO_gcm128_setiv(&ctx, IV.data, IV.size);
+ memset(out, 0, P.size);
+ if (A.data != NULL)
+ CRYPTO_gcm128_aad(&ctx, A.data, A.size);
+ if (P.data != NULL)
+ CRYPTO_gcm128_encrypt( &ctx, P.data, out, P.size);
+ if (!TEST_false(CRYPTO_gcm128_finish(&ctx, T.data, 16))
+ || (C.data != NULL
+ && !TEST_mem_eq(out, P.size, C.data, P.size)))
+ return 0;
+
+ CRYPTO_gcm128_setiv(&ctx, IV.data, IV.size);
+ memset(out, 0, P.size);
+ if (A.data != NULL)
+ CRYPTO_gcm128_aad(&ctx, A.data, A.size);
+ if (C.data != NULL)
+ CRYPTO_gcm128_decrypt(&ctx, C.data, out, P.size);
+ if (!TEST_false(CRYPTO_gcm128_finish(&ctx, T.data, 16))
+ || (P.data != NULL
+ && !TEST_mem_eq(out, P.size, P.data, P.size)))
+ return 0;
+
+ return 1;
+}
+
+int setup_tests(void)
+{
+ ADD_ALL_TESTS(test_aes_cts128, OSSL_NELEM(aes_cts128_vectors));
+ ADD_ALL_TESTS(test_aes_cts128_nist, OSSL_NELEM(aes_cts128_vectors));
+ ADD_ALL_TESTS(test_gcm128, OSSL_NELEM(gcm128_vectors));
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D1.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D1.ors
new file mode 100644
index 000000000..3fa4a11de
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D1.ors
@@ -0,0 +1,32 @@
+MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBRf2uQDFpGg
+Ywh4P1y2H9bZ2/BQNBgPMjAxMjEwMjMxMDI1MzZaMHUwczBLMAkGBSsOAwIaBQAE
+FKByDqBqfGICVPKo9Z3Se6Tzty+kBBSwsEr9HHUo+BxhqhP2+sGQPWsWowISESG8
+vx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDIzMDcwMDAwWqARGA8yMDEyMTAzMDA4
+MDAwMFowCwYJKoZIhvcNAQEFA4IBAQAJU3hXN7NApN50/vlZTG2p8+QQJp4uaod3
+wyBQ0Ux3DoQZQ9RG6/7Mm4qpOLCCSTh/lJjZ0fD+9eB3gcp/JupN1JrU+dgTyv/Y
+9MOctJz7y+VoU9I+qB8knV4sQCwohAVm8GmA9s4p/rHq5Oymci0SuG/QCfkVxOub
+rI1bWjbHLvvXyvF3PoGMORVHG3SA+jJ9VkHWJyi6brHxY+QR/iYxer8lJsBtpyc7
+q2itFgvax/OHwne3lxsck9q0QgKpmEdJu2LuGyWFIhrEwR3b7ASEu1G/nKClv3dR
+vyOXMm1XIwuUhCjAcpNEKiOMorFwnLS1F8LhfqFWTAFG0JbWpAi8oIID+DCCA/Qw
+ggPwMIIC2KADAgECAhIRISdENsrz1CSWG3VIBwfQERQwDQYJKoZIhvcNAQEFBQAw
+WTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV
+BAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy
+MDkxOTA3NDA1MFoXDTEyMTIxOTA4NDA1MFowgYUxCzAJBgNVBAYTAkJFMRkwFwYD
+VQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu
+ZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDIxFzAVBgNV
+BAUTDjIwMTIwOTE5MDk0MDAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAnCgMsBO+IxIqCnXCOfXJoIC3wj+f0s4DV9h2gJBzisWXkaJD2DfNrd0kHUXK
+qVVPUxnA4G5iZu0Z385/KiOt1/P6vQ/Z2/AsEh/8Z/hIyeZCHL31wrSZW4yLeZwi
+M76wPiBHJxPun681HQlVs/OGKSHnbHc1XJAIeA/M8u+lLWqIKB+AJ82TrOqUMj1s
+LjGhQNs84xPliONN5K7DrEy+Y65X/rFxN77Smw+UtcH1GgH2NgaHH8dpt1m25sgm
+UxZWhdx66opB/lbRQwWdGt7MC0kJFaWHDZq64DTuYoekFYSxAFu0nd0EekEHEJEi
+9mquB9cv/96SuEJl8BcUWU/1LwIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P
+AQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw
+HQYDVR0OBBYEFF/a5AMWkaBjCHg/XLYf1tnb8FA0MB8GA1UdIwQYMBaAFLCwSv0c
+dSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCKRl1iXFmOQtLseDWP
+Y5icDDBGiRi17CGgvIzGJi/ha0PhbO+X0TmQIEnRX3Mu0Er/Mm4RZSjMtJ2iZRh3
+tGf4Dn+jKgKOmgXC3oOG/l8RPHLf0yaPSdn/z0TXtA30vTFBLlFeWnhbfhovea4+
+snPdBxLqWZdtxmiwojgqA7YATCWwavizrBr09YRyDwzgtpZ2BwMruGuFuV9FsEwL
+PCM53yFlrM32oFghyfyE5kYjgnnueKM+pw1kA0jgb1CnVJRrMEN1TXuXDAZLtHKG
+5X/drah1JtkoZhCzxzZ3bYdVDQJ90OHFqM58lwGD6z3XuPKrHDKZKt+CPIsl5g7p
+4J2l
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D1_Cert_EE.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D1_Cert_EE.pem
new file mode 100644
index 000000000..c5b993c0a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D1_Cert_EE.pem
@@ -0,0 +1,38 @@
+-----BEGIN CERTIFICATE-----
+MIIGujCCBaKgAwIBAgISESG8vx4IzALnkqQG05AvM+2bMA0GCSqGSIb3DQEBBQUA
+MFkxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS8wLQYD
+VQQDEyZHbG9iYWxTaWduIEV4dGVuZGVkIFZhbGlkYXRpb24gQ0EgLSBHMjAeFw0x
+MjA4MTQxMjM1MDJaFw0xMzA4MTUxMDMxMjlaMIIBCjEdMBsGA1UEDwwUUHJpdmF0
+ZSBPcmdhbml6YXRpb24xDzANBgNVBAUTBjU3ODYxMTETMBEGCysGAQQBgjc8AgED
+EwJVUzEeMBwGCysGAQQBgjc8AgECEw1OZXcgSGFtcHNoaXJlMQswCQYDVQQGEwJV
+UzEWMBQGA1UECAwNTmV3IEhhbXBzaGlyZTETMBEGA1UEBwwKUG9ydHNtb3V0aDEg
+MB4GA1UECRMXVHdvIEludGVybmF0aW9uYWwgRHJpdmUxDTALBgNVBAsMBC5DT00x
+GzAZBgNVBAoMEkdNTyBHbG9iYWxTaWduIEluYzEbMBkGA1UEAwwSd3d3Lmdsb2Jh
+bHNpZ24uY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqx/nHBP4
+6s5KKMDlfZS4qFDiAWsoPSRn6WO4nrUF/G2S3I/AdJ0IcSDOHb48/3APj5alqbgo
+o4IzdG6KLAbENpHMl0L3pHBq/5tJPTi02SbiYUHfp2fhueMauRo8spfEk6fNRnDn
+QpyMFRkYd7Jz+KMerTO1xAcOH+xp0KkcP0i2jFTEuM3LwR0yTms1rry+RryjDDt5
+7W0DLnNFWhyGd6YymzNkCPeL6weV8uk2uYRKKf2XOAzgIpNo3zU6iakZOzlQB9h9
+qRuIks2AU/cZ89cBkDjHua0ezX5rG3/Url33jAT9cR5zCXHWtj7VzlOjDXXnn16b
+L9/AWsvGMNkYHQIDAQABo4ICxzCCAsMwDgYDVR0PAQH/BAQDAgWgMEwGA1UdIARF
+MEMwQQYJKwYBBAGgMgEBMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2Jh
+bHNpZ24uY29tL3JlcG9zaXRvcnkvMIIBKwYDVR0RBIIBIjCCAR6CEnd3dy5nbG9i
+YWxzaWduLmNvbYIVc3RhdHVzLmdsb2JhbHNpZ24uY29tghF0aC5nbG9iYWxzaWdu
+LmNvbYISZGV2Lmdsb2JhbHNpZ24uY29tghNpbmZvLmdsb2JhbHNpZ24uY29tghZh
+cmNoaXZlLmdsb2JhbHNpZ24uY29tghZzdGF0aWMxLmdsb2JhbHNpZ24uY29tghZz
+dGF0aWMyLmdsb2JhbHNpZ24uY29tghNibG9nLmdsb2JhbHNpZ24uY29tghdzc2xj
+aGVjay5nbG9iYWxzaWduLmNvbYIVc3lzdGVtLmdsb2JhbHNpZ24uY29tghhvcGVy
+YXRpb24uZ2xvYmFsc2lnbi5jb22CDmdsb2JhbHNpZ24uY29tMAkGA1UdEwQCMAAw
+HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMD8GA1UdHwQ4MDYwNKAyoDCG
+Lmh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vZ3MvZ3NleHRlbmR2YWxnMi5jcmww
+gYgGCCsGAQUFBwEBBHwwejBBBggrBgEFBQcwAoY1aHR0cDovL3NlY3VyZS5nbG9i
+YWxzaWduLmNvbS9jYWNlcnQvZ3NleHRlbmR2YWxnMi5jcnQwNQYIKwYBBQUHMAGG
+KWh0dHA6Ly9vY3NwMi5nbG9iYWxzaWduLmNvbS9nc2V4dGVuZHZhbGcyMB0GA1Ud
+DgQWBBSvMoTDlFB0aVgVrNkkS1QSmYfx1zAfBgNVHSMEGDAWgBSwsEr9HHUo+Bxh
+qhP2+sGQPWsWozANBgkqhkiG9w0BAQUFAAOCAQEAgnohm8IRw1ukfc0GmArK3ZLC
+DLGpsefwWMvNrclqwrgtVrBx4pfe5xGAjqyQ2QI8V8a8a1ytVMCSC1AMWiWxawvW
+fw48fHunqtpTYNDyEe1Q+7tTGZ0SQ3HljYY9toVEjAMDhiM0Szl6ERRO5S7BTCen
+mDpWZF8w3ScRRY2UJc8xwWFiYyGWDNzNL1O8R2Y95QIkHUgQpSD3cjl4YvF/Xx/o
+hBEzl884uNAggIyQRu0ImLEetEtHWB2w0pZG3nTAqjOAAAyH2Q8IHoJtjQzvg6fy
+IQEO1C5GoQ7isiKIjKBXVYOm+gKSQXlzwj1BlU/OW6kEe24IiERhAN9ILA24wA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D1_Issuer_ICA.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D1_Issuer_ICA.pem
new file mode 100644
index 000000000..b650f3868
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D1_Issuer_ICA.pem
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIIEhjCCA26gAwIBAgILBAAAAAABL07hXdQwDQYJKoZIhvcNAQEFBQAwTDEgMB4G
+A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
+Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTEwNDEzMTAwMDAwWhcNMjIwNDEz
+MTAwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1z
+YTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBFeHRlbmRlZCBWYWxpZGF0aW9uIENBIC0g
+RzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDNoUbMUpq4pbR/WNnN
+2EugcgyXW6aIIMO5PUbc0FxSMPb6WU+FX7DbiLSpXysjSKyr9ZJ4FLYyD/tcaoVb
+AJDgu2X1WvlPZ37HbCnsk8ArysRe2LDb1r4/mwvAj6ldrvcAAqT8umYROHf+IyAl
+VRDFvYK5TLFoxuJwe4NcE2fBofN8C6iZmtDimyUxyCuNQPZSY7GgrVou9Xk2bTUs
+Dt0F5NDiB0i3KF4r1VjVbNAMoQFGAVqPxq9kx1UBXeHRxmxQJaAFrQCrDI1la93r
+wnJUyQ88ABeHIu/buYZ4FlGud9mmKE3zWI2DZ7k0JZscUYBR84OSaqOuR5rW5Isb
+wO2xAgMBAAGjggFaMIIBVjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB
+/wIBADAdBgNVHQ4EFgQUsLBK/Rx1KPgcYaoT9vrBkD1rFqMwRwYDVR0gBEAwPjA8
+BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29t
+L3JlcG9zaXRvcnkvMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs
+c2lnbi5uZXQvcm9vdC1yMi5jcmwwRAYIKwYBBQUHAQEEODA2MDQGCCsGAQUFBzAB
+hihodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9FeHRlbmRlZFNTTENBMCkGA1Ud
+JQQiMCAGCCsGAQUFBwMBBggrBgEFBQcDAgYKKwYBBAGCNwoDAzAfBgNVHSMEGDAW
+gBSb4gdXZxwewGoG3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAL0m28rZa
+pJWrnlrpK4KbzJBrfHRFIOde2Mcj7ig1sTVlKqVR4FU/9oNntOQ2KbDa7JeVqYoF
+o0X+Iy5SiLQfEICt0oufo1+oxetz3nmIQZgz7qdgGLFGyUAQB5yPClLJExoGbqCb
+LTr2rk/no1E1KlsYBRLlUdy2NmLz4aQP++TPw5S/EauhWTEB8MxT7I9j12yW00gq
+iiPtRVaoZkHqAblH7qFHDBTxI+Egc8p9UHxkOFejj0qcm+ltRc9Ea01gIEBxJbVG
+qmwIft/I+shWKpLLg7h5CZctXqEBzgbttJfJBNxB7+BPNk3kQHNG7BESfIhbNCYl
+TercGL7FG81kwA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D2.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D2.ors
new file mode 100644
index 000000000..dcbd4d4b8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D2.ors
@@ -0,0 +1,32 @@
+MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBTqlwecTarB
+yVdbHxANRLCFYj1mqBgPMjAxMjEwMjMxMDI1MzZaMG4wbDBEMAkGBSsOAwIaBQAE
+FLdXtbacB/gWIxOOkMkqDr4yAaoxBBRge2YaRQ2XyolQL30EzTSo//z9SwILBAAA
+AAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL
+BgkqhkiG9w0BAQUDggEBAEJN4FuPQPnizPIwEj4Q8Ht765gI6QqMNrvj3UykxYeu
+qUajKcqA+V1zaDHTaz+eCQthtmCNKC9T+zVkjGelVsd7Kn2fVKWqp+5wVPI8dVkm
+6Gs/IGZ16HDnQ/siTrY3ILWCRz4Hf6lnHpIErQuQRQyjlGKNcE7RYmjGw4w0bxx8
+vHN/baCMApBL0D0zeBqlpJCMUZqJJ3D1+87HxHYR1MkMZDC9rOPIhlpEP4yL17gx
+ckrPf+w+A/3kC++jVeA3b8Xtr+MaWOFH4xVn6BTxopczZKVl18tSYqgwITlx5/cL
+LpYEdllC0l83E8GRzsOp0SvFxo0NBotgFNZQQujpOzagggQQMIIEDDCCBAgwggLw
+oAMCAQICCwQAAAAAAThXovYBMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF
+MRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw
+GQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw
+NzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu
+di1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh
+bmNoIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP2QF8p0+Fb7ID
+MwwD1gEr2oazjqbW28EZr3YEyMPk+7VFaGePSO1xjBGIE48Q7m7d6p6ZXCzlBZEi
+oudrHSr3WDqdIVKLDrZIDkgEgdjJE72Hq6Pf5CEGXyebbODm4sV96EfewSvOOYLL
+866g3aoVhLDK02ny+Q5OsokW7nhnmGMMh10tZqR5VmdQTiw8MgeqUxBEaEO4WH2J
+ltgSsgNJBNBYuDgnn5ryzVqhvmCJvYZMYeN6qZFKy1MgHcR+wEpGLPlRL4ttu6e5
+MJrVta7dVFobHUHoFog97LtQT1PY0Ubaihswjge5O04bYeCrgSSjr1e4xH/KDxRw
+yyhoscaFAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTqlwec
+TarByVdbHxANRLCFYj1mqDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG
+AQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ
+BgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF
+DZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD
+ggEBAHiC6N1uF29d7CmiVapA8Nr1xLSVeIkBd4A8yHsUTQ7ATI7bwT14QUV4awe7
+8cvmO5ZND8YG1ViwN162WFm9ivSoWBzvWDbU2JhQFb+XzrzCcdn0YbNiTxJh/vYm
+uDuxto00dpBgujSOAQv8B90iDEJ+sZpYRzDRj62qStRey0zpq5eX+pA+gdppMUFb
+4QvJf0El8TbLCWLN4TjrFe6ju7ZaN9zmgVYGQ2fMHKIGNScLuIA950nYwzRkIfHa
+YW6HqP1rCR1EiYmstEeCQyDxJx+RUlh+q8L1BKzaMYhS6s63MZzQuGseYStaCmbC
+fBIRKjnK621vAWvc7UR+0hqnZ+U=
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D2_Cert_ICA.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D2_Cert_ICA.pem
new file mode 100644
index 000000000..459f98e34
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D2_Cert_ICA.pem
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIEdzCCA1+gAwIBAgILBAAAAAABL07hRxAwDQYJKoZIhvcNAQEFBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0wNjEyMTUwODAw
+MDBaFw0yODAxMjgxMjAwMDBaMEwxIDAeBgNVBAsTF0dsb2JhbFNpZ24gUm9vdCBD
+QSAtIFIyMRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAps8kDr4ubyiZRULEqz4h
+VJsL03+EcPoSs8u/h1/Gf4bTsjBc1v2t8Xvc5fhglgmSEPXQU977e35ziKxSiHtK
+pspJpl6op4xaEbx6guu+jOmzrJYlB5dKmSoHL7Qed7+KD7UCfBuWuMW5Oiy81hK5
+61l94tAGhl9eSWq1OV6INOy8eAwImIRsqM1LtKB9DHlN8LgtyyHK1WxbfeGgKYSh
++dOUScskYpEgvN0L1dnM+eonCitzkcadG6zIy+jgoPQvkItN+7A2G/YZeoXgbfJh
+E4hcn+CTClGXilrOr6vV96oJqmC93Nlf33KpYBNeAAHJSvo/pOoHAyECjoLKA8Kb
+jwIDAQABo4IBTTCCAUkwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
+HQYDVR0OBBYEFJviB1dnHB7AagbeWbSaLd/cGYYuMEcGA1UdIARAMD4wPAYEVR0g
+ADA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBv
+c2l0b3J5LzAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLmdsb2JhbHNpZ24u
+bmV0L3Jvb3QuY3JsMD0GCCsGAQUFBwEBBDEwLzAtBggrBgEFBQcwAYYhaHR0cDov
+L29jc3AuZ2xvYmFsc2lnbi5jb20vcm9vdHIxMCkGA1UdJQQiMCAGCCsGAQUFBwMB
+BggrBgEFBQcDAgYKKwYBBAGCNwoDAzAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30E
+zTSo//z9SzANBgkqhkiG9w0BAQUFAAOCAQEAOg/NJk04MAioxvxc2Ah67/ocKgPO
+Mq5EluFSA5UKUtZnr1uWfN0ZizBbNjprbqAVxoKhyzlmAFeLAqJuhfusVVq4FVAa
+kN4JSOyo9lccGDG9xn3IvevCpzlRbaL/HHjeHCcE4c8klegO5NUfsPn7UMrLbp5i
+JniG9cT1eI/dcq9uLtWe3c48y7jHLVRg1+WcAkuGRPBXUSvNCps8sfU6TB2KxfAw
+PmWHxA5fbkqsiqge5/rkM4AVhFZlJZv7njCIy5EWwQXDqSTsIdLVsPy3I0annff3
+xlMSeDe0E3OPN5deBJv5mYuTPiZCl5/9HrXVy4hINKJmoPqsco/dRy+CdA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D2_Issuer_Root.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D2_Issuer_Root.pem
new file mode 100644
index 000000000..f4ce4ca43
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D2_Issuer_Root.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
+MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
+aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
+jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
+xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
+1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
+snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
+U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
+9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
+BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
+AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
+yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
+38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
+AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
+DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
+HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D3.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D3.ors
new file mode 100644
index 000000000..d66439b34
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D3.ors
@@ -0,0 +1,38 @@
+MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV
+BAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML
+Q0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG
+A1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAyMzEwMzkzMFowZjBkMDwwCQYF
+Kw4DAhoFAAQUi6TJyxcpGUU+u45zCZG5JfKDImUEFBa1MhvUx/Pg5o7zvdKwOu6y
+ORjRAgMLs8aAABgPMjAxMjEwMjMwOTU5MTJaoBEYDzIwMTIxMDI1MTAzOTMwWjAN
+BgkqhkiG9w0BAQUFAAOCAQEAYaaAzW26JQGFRyawj9ROtnSdJ9QPJ6B/wfpJif8e
+QU9lmKx0zIDdTum3Mc5tfxML71W025UW9jzowAfQ5bZbqa4nwZlWX5Py3hKebeYo
+WiND4pvhS4BRkheSkycEok0bj1FJYWYiJVpnTqKAPnOKrlL4qvGC2IOHk2toS/Je
+iLyoUwxrPtqaXt4Caoa3I70HE3H1QqvPIGIY6V4bxV7Km/xv99QOutkbfANGiNsx
+W7EDB3TRNhldzMnjEwG58X5Pe3xwEVqjCiBL+wQ8JALn08bJzFn9E04aYrqCGc8s
+gw1dgaBoZt+0vbQUN71KEocwMj5mzJqottOyqNwo7FZnBaCCBL4wggS6MIIEtjCC
+Ap6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex
+HjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy
+dCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl
+cnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE
+BhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD
+QWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD
+VQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCcxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr
+2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0
+3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz
+uzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz
+mogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16
+VDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD
+VR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA
+MA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA
+MAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS
+r5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ
+VNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU
+6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE
+STsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj
+ReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe
+g9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo
+5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9
+HfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1
+VBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a
+wG/pag==
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D3_Cert_EE.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D3_Cert_EE.pem
new file mode 100644
index 000000000..f371ed1f1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D3_Cert_EE.pem
@@ -0,0 +1,31 @@
+-----BEGIN CERTIFICATE-----
+MIIFZDCCA0ygAwIBAgIDC7PGMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jv
+b3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZ
+Q0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9y
+dEBjYWNlcnQub3JnMB4XDTEyMDUwNjE4NDY0MVoXDTE0MDUwNjE4NDY0MVowWzEL
+MAkGA1UEBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYD
+VQQKEwtDQWNlcnQgSW5jLjEXMBUGA1UEAxMOd3d3LmNhY2VydC5vcmcwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDeNSAxSFtymeN6rQD69eXIJEnCCP7Z
+24/fdOgxRDSBhfQDUVhdmsuDOvuziOoWGqRxZPcWdMEMRcJ5SrA2aHIstvnaLhUl
+xp2fuaeXx9XMCJ9ZmzHZbH4wqLaU+UlhcSsdkPzapf3N3HaUAW8kT4bHEGzObYVC
+UBxxhpY01EoGRQmnFojzLNF3+0O1npQzXg5MeIWHW/Z+9jE+6odL6IXgg1bvrP4d
+FgoveTcG6BmJu+50RwHaUad7hQuNeS+pNsVzCiDdMF2qoCQXtAGhnEQ9/KHpBD2z
+ISBVIyEbYxdyU/WxnkaOof63Mf/TAgMNzVN9duqEtFyvvMrQY1XkBBwfAgMBAAGj
+ggERMIIBDTAMBgNVHRMBAf8EAjAAMDQGA1UdJQQtMCsGCCsGAQUFBwMCBggrBgEF
+BQcDAQYJYIZIAYb4QgQBBgorBgEEAYI3CgMDMAsGA1UdDwQEAwIFoDAzBggrBgEF
+BQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmNhY2VydC5vcmcvMIGE
+BgNVHREEfTB7gg53d3cuY2FjZXJ0Lm9yZ4IRc2VjdXJlLmNhY2VydC5vcmeCEnd3
+d21haWwuY2FjZXJ0Lm9yZ4IKY2FjZXJ0Lm9yZ4IOd3d3LmNhY2VydC5uZXSCCmNh
+Y2VydC5uZXSCDnd3dy5jYWNlcnQuY29tggpjYWNlcnQuY29tMA0GCSqGSIb3DQEB
+BQUAA4ICAQA2+uCGX18kZD8gyfj44TlwV4TXJ5BrT0M9qogg2k5u057i+X2ePy3D
+iE2REyLkU+i5ekH5gvTl74uSJKtpSf/hMyJEByyPyIULhlXCl46z2Z60drYzO4ig
+apCdkm0JthVGvk6/hjdaxgBGhUvSTEP5nLNkDa+uYVHJI58wfX2oh9gqxf8VnMJ8
+/A8Zi6mYCWUlFUobNd/ozyDZ6WVntrLib85sAFhds93nkoUYxgx1N9Xg/I31/jcL
+6bqmpRAZcbPtvEom0RyqPLM+AOgySWiYbg1Nl8nKx25C2AuXk63NN4CVwkXpdFF3
+q5qk1izPruvJ68jNW0pG7nrMQsiY2BCesfGyEzY8vfrMjeR5MLNv5r+obeYFnC1j
+uYp6JBt+thW+xPFzHYLjohKPwo/NbMOjIUM9gv/Pq3rVRPgWru4/8yYWhrmEK370
+rtlYBUSGRUdR8xed1Jvs+4qJ3s9t41mLSXvUfwyPsT7eoloUAfw3RhdwOzXoC2P6
+ftmniyu/b/HuYH1AWK+HFtFi9CHiMIqOJMhj/LnzL9udrQOpir7bVej/mlb3kSRo
+2lZymKOvuMymMpJkvBvUU/QEbCxWZAkTyqL2qlcQhHv7W366DOFjxDqpthaTRD69
+T8i/2AnsBDjYFxa47DisIvR57rLmE+fILjSvd94N/IpGs3lSOS5JeA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D3_Issuer_Root.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D3_Issuer_Root.pem
new file mode 100644
index 000000000..3ccc18e8d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/D3_Issuer_Root.pem
@@ -0,0 +1,83 @@
+-----BEGIN CERTIFICATE-----
+MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290
+IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB
+IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA
+Y2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO
+BgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi
+MCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ
+ARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ
+8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6
+zWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y
+fk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7
+w2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc
+G8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k
+epKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q
+laegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ
+QUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU
+fslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826
+YreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w
+ggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY
+gBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe
+MBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0
+IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy
+dC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw
+czovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0
+dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl
+aHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC
+AQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg
+b3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB
+ACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc
+nWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg
+18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c
+gr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl
+Jzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY
+sONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T
+SCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF
+CpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum
+GCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk
+zk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW
+omTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHWTCCBUGgAwIBAgIDCkGKMA0GCSqGSIb3DQEBCwUAMHkxEDAOBgNVBAoTB1Jv
+b3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZ
+Q0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9y
+dEBjYWNlcnQub3JnMB4XDTExMDUyMzE3NDgwMloXDTIxMDUyMDE3NDgwMlowVDEU
+MBIGA1UEChMLQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFWh0dHA6Ly93d3cuQ0FjZXJ0
+Lm9yZzEcMBoGA1UEAxMTQ0FjZXJ0IENsYXNzIDMgUm9vdDCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBAKtJNRFIfNImflOUz0Op3SjXQiqL84d4GVh8D57a
+iX3h++tykA10oZZkq5+gJJlz2uJVdscXe/UErEa4w75/ZI0QbCTzYZzA8pD6Ueb1
+aQFjww9W4kpCz+JEjCUoqMV5CX1GuYrz6fM0KQhF5Byfy5QEHIGoFLOYZcRD7E6C
+jQnRvapbjZLQ7N6QxX8KwuPr5jFaXnQ+lzNZ6MMDPWAzv/fRb0fEze5ig1JuLgia
+pNkVGJGmhZJHsK5I6223IeyFGmhyNav/8BBdwPSUp2rVO5J+TJAFfpPBLIukjmJ0
+FXFuC3ED6q8VOJrU0gVyb4z5K+taciX5OUbjchs+BMNkJyIQKopPWKcDrb60LhPt
+XapI19V91Cp7XPpGBFDkzA5CW4zt2/LP/JaT4NsRNlRiNDiPDGCbO5dWOK3z0luL
+oFvqTpa4fNfVoIZwQNORKbeiPK31jLvPGpKK5DR7wNhsX+kKwsOnIJpa3yxdUly6
+R9Wb7yQocDggL9V/KcCyQQNokszgnMyXS0XvOhAKq3A6mJVwrTWx6oUrpByAITGp
+rmB6gCZIALgBwJNjVSKRPFbnr9s6JfOPMVTqJouBWfmh0VMRxXudA/Z0EeBtsSw/
+LIaRmXGapneLNGDRFLQsrJ2vjBDTn8Rq+G8T/HNZ92ZCdB6K4/jc0m+YnMtHmJVA
+BfvpAgMBAAGjggINMIICCTAdBgNVHQ4EFgQUdahxYEyIE/B42Yl3tW3Fid+8sXow
+gaMGA1UdIwSBmzCBmIAUFrUyG9TH8+DmjvO90rA67rI5GNGhfaR7MHkxEDAOBgNV
+BAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAG
+A1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYS
+c3VwcG9ydEBjYWNlcnQub3JnggEAMA8GA1UdEwEB/wQFMAMBAf8wXQYIKwYBBQUH
+AQEEUTBPMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5DQWNlcnQub3JnLzAoBggr
+BgEFBQcwAoYcaHR0cDovL3d3dy5DQWNlcnQub3JnL2NhLmNydDBKBgNVHSAEQzBB
+MD8GCCsGAQQBgZBKMDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93d3cuQ0FjZXJ0Lm9y
+Zy9pbmRleC5waHA/aWQ9MTAwNAYJYIZIAYb4QgEIBCcWJWh0dHA6Ly93d3cuQ0Fj
+ZXJ0Lm9yZy9pbmRleC5waHA/aWQ9MTAwUAYJYIZIAYb4QgENBEMWQVRvIGdldCB5
+b3VyIG93biBjZXJ0aWZpY2F0ZSBmb3IgRlJFRSwgZ28gdG8gaHR0cDovL3d3dy5D
+QWNlcnQub3JnMA0GCSqGSIb3DQEBCwUAA4ICAQApKIWuRKm5r6R5E/CooyuXYPNc
+7uMvwfbiZqARrjY3OnYVBFPqQvX56sAV2KaC2eRhrnILKVyQQ+hBsuF32wITRHhH
+Va9Y/MyY9kW50SD42CEH/m2qc9SzxgfpCYXMO/K2viwcJdVxjDm1Luq+GIG6sJO4
+D+Pm1yaMMVpyA4RS5qb1MyJFCsgLDYq4Nm+QCaGrvdfVTi5xotSu+qdUK+s1jVq3
+VIgv7nSf7UgWyg1I0JTTrKSi9iTfkuO960NAkW4cGI5WtIIS86mTn9S8nK2cde5a
+lxuV53QtHA+wLJef+6kzOXrnAzqSjiL2jA3k2X4Ndhj3AfnvlpaiVXPAPHG0HRpW
+Q7fDCo1y/OIQCQtBzoyUoPkD/XFzS4pXM+WOdH4VAQDmzEoc53+VGS3FpQyLu7Xt
+hbNc09+4ufLKxw0BFKxwWMWMjTPUnWajGlCVI/xI4AZDEtnNp4Y5LzZyo4AQ5OHz
+0ctbGsDkgJp8E3MGT9ujayQKurMcvEp4u+XjdTilSKeiHq921F73OIZWWonO1sOn
+ebJSoMbxhbQljPI/lrMQ2Y1sVzufb4Y6GIIiNsiwkTjbKqGTqoQ/9SdlrnPVyNXT
+d+pLncdBu8fA46A/5H2kjXPmEkvfoXNzczqA6NXLji/L6hOn1kGLrPo8idck9U60
+4GGSt/M3mMS+lqO3ig==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISDOSC_D1.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISDOSC_D1.ors
new file mode 100644
index 000000000..66a60a27f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISDOSC_D1.ors
@@ -0,0 +1,32 @@
+MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBSpTXftIZX0
+lLT9zwVSQC5Jfp3pqhgPMjAxMjEwMTAxNDU0NDNaMHUwczBLMAkGBSsOAwIaBQAE
+FKByDqBqfGICVPKo9Z3Se6Tzty+kBBSwsEr9HHUo+BxhqhP2+sGQPWsWowISESG8
+vx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDEwMTMwMDAwWqARGA8yMDEyMTAxNzEz
+MDAwMFowCwYJKoZIhvcNAQEFA4IBAQBw5Z+0ggEddRTIq7cXlMoxG9Nrx4HtutsH
+itIUoZp/rlLoxHsJTo/VmdZvTTGIc7Ok9XuoH61lY/x9glAKsGRjz4Myc9+5rx0O
+675lwmOS+uaf3/hRkicVrVr7Pt2ug3R7OXm2MJrohjNKP8lqtLJ0hHP88a8rotKA
+r9uz/qHm7K4Uh7dRt/Pnu9MPG74tZeFNN4M1ONMEiRdG39FqzFDXWxwQ3NmyC0Wo
+DQn+NklZMknr8mm7IBWpzgU1fTD9R0yv0zdhUZGiEXxvdhm7GJrTET5jS30Ksm5j
+o+n39YVu/vGbjyyYx3+WdeQLEyipaGvldSuJpT+R684/RuFWNetcoIID+DCCA/Qw
+ggPwMIIC2KADAgECAhIRIcYjwu4UNkR1VGrDbSdFei8wDQYJKoZIhvcNAQEFBQAw
+WTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV
+BAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy
+MDkxOTA3NDAzMVoXDTEyMTIxOTA4NDAzMVowgYUxCzAJBgNVBAYTAkJFMRkwFwYD
+VQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu
+ZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDExFzAVBgNV
+BAUTDjIwMTIwOTE5MDkzOTAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAxkkb6QhDH3sEDj4zaysjVzYelq9lZ1cso4R2IyQxaoPaG6GkaCmHA4sz6KP+
+m3ADqplibEUBa/mzCxHW8/oy3NhGMFdbezduZrnRFLbzakOTeIo8VEIM3JPfgREv
+CX8nj6Xu7ERD6JO/ZQ9Xr7YVzKKN+3cVZlcMHoGBnOPcO2Sz0AcYyk5m5IsGBRoT
+T86j6Cr9PhOPTVwXL6Wxy1KVHsUZXUwnRacV0O4SHWQ4zM9Sablus9fTbh1CgIqW
+sKDyzVB4yECXkBVeUlA+cuCaRRVHRiR+jPDSgbU62nnNudEpGG7dyoop6IOvXv2O
+ydncWzaukxIVvQ/Ij85kHqs7HQIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P
+AQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw
+HQYDVR0OBBYEFKlNd+0hlfSUtP3PBVJALkl+nemqMB8GA1UdIwQYMBaAFLCwSv0c
+dSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCe4rZg61Dmwygl/Uae
+BJZog64/FvuB1sfCqKLJTjKOfLcugSTX1TT7bLJbzXRGPQuorI3TIZEOwldIw01d
+DTLlsOCHrfHd+bpxgijxPkUuaA4NYnpvqTEMJqPKOC8QYfKupNjAPSuHvwqvqCfO
+RCe3jY6xQDO0WCTZ8/xMsOkw+J/YEYqALETf2Ug7k5eRL/TvfLd8Sgi7vPfmUeiW
+ptlsbhMOWQoQc+JA3vCI01rrjNq+0kIZ/r8nPGvablRr0Aakk6eDuS2dcReaPwuK
+0xE136pJYiXdQ3SA7uwmlorjxmejavyoPCr23TU74DQEt6hhc6uIcabsa4Y8KvJy
+RI4F
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISDOSC_D2.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISDOSC_D2.ors
new file mode 100644
index 000000000..664c8d25f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISDOSC_D2.ors
@@ -0,0 +1,32 @@
+MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBTqlwecTarB
+yVdbHxANRLCFYj1mqBgPMjAxMjEwMTEwOTE1MzNaMG4wbDBEMAkGBSsOAwIaBQAE
+FLdXtbacB/gWIxOOkMkqDr4yAaoxBBRge2YaRQ2XyolQL30EzTSo//z9SwILBAAA
+AAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL
+BgkqhkiG9w0BAQUDggEBAF/9ByrCS+pCCK4qovqUAH/yoWckmpLFCzKJGHkErJeY
+FlUbAJuu/Gs0IdLmLp+2VbStjsL4vLtDU2Q4e417C1fm8+ixh+kP7qPRd8cxyMBx
+cmD2m1v0CgbrflCZEC71cTrrWpcW+6jg623lI4Ug3A4zlizbT/f9IrxuV9VB9/G5
+6kPI5dYOVZM0ColIxmJsafuxfr6ONQLPHKTlZJK3SyWebs25006OmrSyfBi0j26j
+WU5d6B2NJZBKqvDVMXxZ0q6QOgKxOs8WD+6DaA1d1f7gTOl45XJZWz5KnRePyRxM
+Fp0ak6XYbE1y2vHE2RWp1w4lcVJ0BUQXWxx+g86F5W2gggQQMIIEDDCCBAgwggLw
+oAMCAQICCwQAAAAAAThXovYBMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF
+MRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw
+GQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw
+NzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu
+di1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh
+bmNoIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP2QF8p0+Fb7ID
+MwwD1gEr2oazjqbW28EZr3YEyMPk+7VFaGePSO1xjBGIE48Q7m7d6p6ZXCzlBZEi
+oudrHSr3WDqdIVKLDrZIDkgEgdjJE72Hq6Pf5CEGXyebbODm4sV96EfewSvOOYLL
+866g3aoVhLDK02ny+Q5OsokW7nhnmGMMh10tZqR5VmdQTiw8MgeqUxBEaEO4WH2J
+ltgSsgNJBNBYuDgnn5ryzVqhvmCJvYZMYeN6qZFKy1MgHcR+wEpGLPlRL4ttu6e5
+MJrVta7dVFobHUHoFog97LtQT1PY0Ubaihswjge5O04bYeCrgSSjr1e4xH/KDxRw
+yyhoscaFAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTqlwec
+TarByVdbHxANRLCFYj1mqDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG
+AQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ
+BgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF
+DZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD
+ggEBAHiC6N1uF29d7CmiVapA8Nr1xLSVeIkBd4A8yHsUTQ7ATI7bwT14QUV4awe7
+8cvmO5ZND8YG1ViwN162WFm9ivSoWBzvWDbU2JhQFb+XzrzCcdn0YbNiTxJh/vYm
+uDuxto00dpBgujSOAQv8B90iDEJ+sZpYRzDRj62qStRey0zpq5eX+pA+gdppMUFb
+4QvJf0El8TbLCWLN4TjrFe6ju7ZaN9zmgVYGQ2fMHKIGNScLuIA950nYwzRkIfHa
+YW6HqP1rCR1EiYmstEeCQyDxJx+RUlh+q8L1BKzaMYhS6s63MZzQuGseYStaCmbC
+fBIRKjnK621vAWvc7UR+0hqnZ+Y=
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISDOSC_D3.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISDOSC_D3.ors
new file mode 100644
index 000000000..ac2bb25de
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISDOSC_D3.ors
@@ -0,0 +1,38 @@
+MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV
+BAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML
+Q0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG
+A1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAxMTEwMTAyMVowZjBkMDwwCQYF
+Kw4DAhoFAAQUi6TJyxcpGUU+u45zCZG5JfKDImUEFBa1MhvUx/Pg5o7zvdKwOu6y
+ORjRAgMLs8aAABgPMjAxMjEwMTEwOTUyNDJaoBEYDzIwMTIxMDEzMTAxMDIxWjAN
+BgkqhkiG9w0BAQUFAAOCAQEAWX7faLDXkmIdOv/IKBh7awhPmGUhFPVSrMI4dc9/
+fcPDOYhFwWr9evKT/QdXRGpZY493mfa4Z6eEDxRDTexOloaiaJzVpSeV9hoJUxoS
+8NEWDyi33bDlIJH6zru4kk1LpuSMiSWsvLaeoRhHmW3EPDeadpCa5tYX2yNW5hdP
+iCfphDJ34/hWHHwHP6mLd1wEO1Rw6nymqeDbuLk1FviD/ZWXMGzK8Sv++tmsQ0Tg
+7XrkIPcSrozPKOTCf/1iJVF5KeQVIb0Ju1PvGUKtGaVTX8IZQmer2WQ1D6OOUcsS
+cWA6NSpWmScX/0/uBpXdSDX0AnGUS9SNrPNEolz6rA5OUaCCBL4wggS6MIIEtjCC
+Ap6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex
+HjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy
+dCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl
+cnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE
+BhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD
+QWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD
+VQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCcxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr
+2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0
+3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz
+uzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz
+mogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16
+VDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD
+VR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA
+MA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA
+MAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS
+r5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ
+VNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU
+6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE
+STsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj
+ReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe
+g9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo
+5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9
+HfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1
+VBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a
+wG/paw==
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_D1_Issuer_ICA.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_D1_Issuer_ICA.pem
new file mode 100644
index 000000000..b88477532
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_D1_Issuer_ICA.pem
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIIEhjCCA26gAwIBAgILBAAAAAABL07hXdQwDQYJKoZIhvcNAQEFBQAwTDEgMB4G
+A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
+Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTEwNDEzMTAwMDAwWhcNMjIwNDEz
+MTAwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1z
+YTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBFeHRlbmRlZCBWYWxpZGF0aW9uIENBIC0g
+RzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDNoUbMUpq4pbR/WNnN
+2EugcgyXW6aIIMO5PUbc0FxSMPb6WU+FX7DbiLSpXysjSKyr9ZJ4FLYyD/tcaoVb
+AJDgu2X1WvlPZ37HbCnsk8ArysRe2LDb1r4/mwvAj6ldrvcAAqT8umYROHf+IyAl
+VRDFvYK5TLFoxuJwe4NcE2fBofN8C6iZmtDimyUxyCuNQPZSY7GgrVou9Xk2bTUs
+Dt0F5NDiB0i3KF4r1VjVbNAMoQFGAVqPxq9kx1UBXeHRxmxQJaAFrQCrDI1la93r
+wnJUyQ88ABeHIu/buYZ4FlGud9mmKE3zWI2DZ7k0JZscUYBR84OSaqOuR5rW5Isb
+wO2xAgMBAAGjggFaMIIBVjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB
+/wIBADAdBgNVHQ4EFgQUsLBK/Rx1KPgcYaoT9vrBkD1rFqMwRwYDVR0gBEAwPjA8
+BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29t
+L3JlcG9zaXRvcnkvMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs
+c2lnbi5uZXQvcm9vdC1yMi5jcmwwRAYIKwYBBQUHAQEEODA2MDQGCCsGAQUFBzAB
+hihodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9FeHRlbmRlZFNTTENBMCkGA1Ud
+JQQiMCAGCCsGAQUFBwMBBggrBgEFBQcDAgYKKwYBBAGCNwoDAzAfBgNVHSMEGDAW
+gBSb4gdXZxwewGoG3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAL0m28rZa
+pJWrnlrpK4KbzJBrfHRFIOde2Mcj7ig1sTVlKqVR4FU/9oNntOQ2KbDa7JeVqYoF
+o0X+Iy5SiLQfEICt0oufo1+oxetz3nmIQZgz7qdgGLFGyUAQB5yPClLJExoGbqCb
+LTr2rk/no1E1KlsYBRLlUdy2NmLz4aQP++TPw5S/EauhWTEB8MxT7I9j12yW00gq
+iiPtRVaoZkHqAblH7qFHDBTxI+Egc8p9UHxkOFejj0qcm+ltRc9Ea01gIEBxJbVG
+qmwIft/I+shWKpLLg7h5CZctXqEBzgbttJfJBNxB7+BPNk3kQHNG7BESfIhbNCYl
+TercGL7FG81kwQ==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_D2_Issuer_Root.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_D2_Issuer_Root.pem
new file mode 100644
index 000000000..22f34cbbc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_D2_Issuer_Root.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
+MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
+aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
+jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
+xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
+1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
+snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
+U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
+9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
+BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
+AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
+yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
+38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
+AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
+DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
+HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4Q==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_D3_Issuer_Root.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_D3_Issuer_Root.pem
new file mode 100644
index 000000000..c1752e6b5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_D3_Issuer_Root.pem
@@ -0,0 +1,41 @@
+-----BEGIN CERTIFICATE-----
+MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290
+IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB
+IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA
+Y2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO
+BgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi
+MCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ
+ARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ
+8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6
+zWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y
+fk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7
+w2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc
+G8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k
+epKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q
+laegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ
+QUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU
+fslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826
+YreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w
+ggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY
+gBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe
+MBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0
+IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy
+dC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw
+czovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0
+dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl
+aHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC
+AQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg
+b3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB
+ACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc
+nWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg
+18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c
+gr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl
+Jzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY
+sONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T
+SCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF
+CpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum
+GCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk
+zk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW
+omTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVE
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_ND1_Issuer_ICA.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_ND1_Issuer_ICA.pem
new file mode 100644
index 000000000..25bb90fff
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_ND1_Issuer_ICA.pem
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIFBjCCA+6gAwIBAgIQEaO00OyNt3+doM1dLVEvQjANBgkqhkiG9w0BAQUFADCB
+gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
+BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMDA1MjQwMDAw
+MDBaFw0yMDA1MzAxMDQ4MzhaMIGOMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
+YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
+RE8gQ0EgTGltaXRlZDE0MDIGA1UEAxMrQ09NT0RPIEV4dGVuZGVkIFZhbGlkYXRp
+b24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAMxKljPNJY1n7iiWN4dG8PYEooR/U6qW5h+xAhxu7X0h1Nc8HqLYaS+ot/Wi
+7WRYZOFEZTZJQSABjTsT4gjzDPJXOZM3txyTRIOOvy3xoQV12m7ue28b6naDKHRK
+HCvT9cQDcpOvhs4JjDx11MkKL3Lzrb0OMDyEoXMfAyUUpY/D1vS15N2GevUZumjy
+hVSiMBHK0ZLLO3QGEqA3q2rYVBHfbJoWlLm0p2XGdC0x801S6VVRn8s+oo12mHDS
+b6ZlRS8bhbtbbfnywARmE4R6nc4n2PREnr+svpnba0/bWCGwiSe0jzLWS15ykV7f
+BZ3ZSS/0tm9QH3XLgJ3m0+TR8tMCAwEAAaOCAWkwggFlMB8GA1UdIwQYMBaAFAtY
+5YvGTBU3pECpMKkhvkc2Wlb/MB0GA1UdDgQWBBSIRFH/UCppXi2I9CG62Qzyzsvq
+fDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA+BgNVHSAENzA1
+MDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv
+bS9DUFMwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5jb21vZG9jYS5jb20v
+Q09NT0RPQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwdAYIKwYBBQUHAQEEaDBm
+MD4GCCsGAQUFBzAChjJodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9BZGRU
+cnVzdFNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2Rv
+Y2EuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCaQ7+vpHJezX1vf/T8PYy7cOYe3QT9
+P9ydn7+JdpvyhjH8f7PtKpFTLOKqsOPILHH3FYojHPFpLoH7sbxiC6saVBzZIl40
+TKX2Iw9dej3bQ81pfhc3Us1TocIR1FN4J2TViUFNFlW7kMvw2OTd3dMJZEgo/zIj
+hC+Me1UvzymINzR4DzOq/7fylqSbRIC1vmxWVKukgZ4lGChUOn8sY89ZIIwYazgs
+tN3t40DeDDYlV5rA0WCeXgNol64aO+pF11GZSe5EWVYLXrGPaOqKnsrSyaADfnAl
+9DLJTlCDh6I0SD1PNXf82Ijq9n0ezkO21cJqfjhmY03n7jLvDyToKmf7
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_ND2_Issuer_Root.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_ND2_Issuer_Root.pem
new file mode 100644
index 000000000..129eb4b28
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_ND2_Issuer_Root.pem
@@ -0,0 +1,23 @@
+-----BEGIN CERTIFICATE-----
+MIID0DCCArigAwIBAgIQIKTEf93f4cdTYwcTiHdgEjANBgkqhkiG9w0BAQUFADCB
+gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
+BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMTAxMDEwMDAw
+MDBaFw0zMDEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
+YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
+RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3
+UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI
+2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8
+Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp
++2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+
+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O
+nKVIrLsm9wIDAQABo0IwQDAdBgNVHQ4EFgQUC1jli8ZMFTekQKkwqSG+RzZaVv8w
+DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
+ggEBAC/JxBwHO89hAgCx2SFRdXIDMLDEFh9sAIsQrK/xR9SuEDwMGvjUk2ysEDd8
+t6aDZK3N3w6HM503sMZ7OHKx8xoOo/lVem0DZgMXlUrxsXrfViEGQo+x06iF3u6X
+HWLrp+cxEmbDD6ZLLkGC9/3JG6gbr+48zuOcrigHoSybJMIPIyaDMouGDx8rEkYl
+Fo92kANr3ryqImhrjKGsKxE5pttwwn1y6TPn/CbxdFqR5p2ErPioBhlG5qfpqjQi
+pKGfeq23sqSaM4hxAjwu1nqyH6LKwN0vEJT9s4yEIHlG1QXUEOTS22RPuFvuG8Ug
+R1uUq27UlTMdphVx8fiUylQ5PsI=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_ND3_Issuer_Root.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_ND3_Issuer_Root.pem
new file mode 100644
index 000000000..4904a3224
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISIC_ND3_Issuer_Root.pem
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
+MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
+IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
+MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
+FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
+bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
+dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
+H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
+uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
+mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
+a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
+E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
+WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
+VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
+Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
+cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
+IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
+AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
+YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
+6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
+Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
+c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
+mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgU=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_D1.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_D1.ors
new file mode 100644
index 000000000..d28c9ec36
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_D1.ors
@@ -0,0 +1,32 @@
+MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBSpTXftIZX0
+lLT9zwVSQC5Jfp3pqhgPMjAxMjEwMTAxMTU1NDVaMHUwczBLMAkGBSsOAwIaBQAE
+FKByDqBqfGICVPKo9Z3Se6Tzty+kBBSwsEr9HHUo+BxhqhP2+sGQPWsWowISESG8
+vx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDEwMTAwMDAwWqARGA8yMDEyMTAxNzEw
+MDAwMFowCwYJKoZIhvcNAQEFA4IBAQCaiUf6TuPaSmZR2i3hUwqdEfhjcZkcCXPu
+9diWuDZbaL6ubthfeTwx6OsZ0eM3Q+WPhBNlYQ9Sm8PDUQsQiq3YvuYu+QUisChx
+PN6BUEwFQZAGz+FX2h5+kAmK1M/xZeXMBCXJWJCClagiw5hOJfeV0ue7RUZRVuZv
+am0ZjyIeLsxsIrxghlcaJRosFmYNoM++euu5lvclutv1UQ5yyNxlYy0T/jA9gS07
+WJ/i38+zxnXTuAPOm67p5N1IkEAEg/7OPRIG17Ig1C38NctN74vAOdTU1d/ay05V
+Bz4ZiI9PffkUkPgW2QRQCEjv50i80wYkKH5pIbT/mTk4t53DUK1UoIID+DCCA/Qw
+ggPwMIIC2KADAgECAhIRIcYjwu4UNkR1VGrDbSdFei8wDQYJKoZIhvcNAQEFBQAw
+WTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV
+BAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy
+MDkxOTA3NDAzMVoXDTEyMTIxOTA4NDAzMVowgYUxCzAJBgNVBAYTAkJFMRkwFwYD
+VQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu
+ZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDExFzAVBgNV
+BAUTDjIwMTIwOTE5MDkzOTAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAxkkb6QhDH3sEDj4zaysjVzYelq9lZ1cso4R2IyQxaoPaG6GkaCmHA4sz6KP+
+m3ADqplibEUBa/mzCxHW8/oy3NhGMFdbezduZrnRFLbzakOTeIo8VEIM3JPfgREv
+CX8nj6Xu7ERD6JO/ZQ9Xr7YVzKKN+3cVZlcMHoGBnOPcO2Sz0AcYyk5m5IsGBRoT
+T86j6Cr9PhOPTVwXL6Wxy1KVHsUZXUwnRacV0O4SHWQ4zM9Sablus9fTbh1CgIqW
+sKDyzVB4yECXkBVeUlA+cuCaRRVHRiR+jPDSgbU62nnNudEpGG7dyoop6IOvXv2O
+ydncWzaukxIVvQ/Ij85kHqs7HQIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P
+AQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw
+HQYDVR0OBBYEFKlNd+0hlfSUtP3PBVJALkl+nemqMB8GA1UdIwQYMBaAFLCwSv0c
+dSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCe4rZg61Dmwygl/Uae
+BJZog64/FvuB1sfCqKLJTjKOfLcugSTX1TT7bLJbzXRGPQuorI3TIZEOwldIw01d
+DTLlsOCHrfHd+bpxgijxPkUuaA4NYnpvqTEMJqPKOC8QYfKupNjAPSuHvwqvqCfO
+RCe3jY6xQDO0WCTZ8/xMsOkw+J/YEYqALETf2Ug7k5eRL/TvfLd8Sgi7vPfmUeiW
+ptlsbhMOWQoQc+JA3vCI01rrjNq+0kIZ/r8nPGvablRr0Aakk6eDuS2dcReaPwuK
+0xE136pJYiXdQ3SA7uwmlorjxmejavyoPCr23TU74DQEt6hhc6uIcabsa4Y8KvJy
+RI4G
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_D2.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_D2.ors
new file mode 100644
index 000000000..b6c541df7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_D2.ors
@@ -0,0 +1,32 @@
+MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBT0zghPr/K8
+jV5hpjGMML9Q+DwzShgPMjAxMjEwMTAxMjA5NTlaMG4wbDBEMAkGBSsOAwIaBQAE
+FLdXtbacB/gWIxOOkMkqDr4yAaoxBBRge2YaRQ2XyolQL30EzTSo//z9SwILBAAA
+AAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL
+BgkqhkiG9w0BAQUDggEBAGZY28eFWl169g7puLnKSeEzi6Ma5/rErOveFRp052ck
+785B83HWkNmW/Bgw7Ws6Y7jBJce6ZQ5TMhwgNP34HuG/mVyn2ZjtCe4KKFBVnZV7
+mHGx93jgKkQvdp4pbNKxZ504eZDp8UOlR9+uwWOWHVObn7o+2N8iWKErSbZ2uX54
+Ajk8Hg/XN5wI4RUtcK3QpZSf3Ren5iit4NInwCpmTOkDz/IVK96BWaEQICq4VlHG
+ziD0H0SlBQCdcSPzZndGoCtIhNyJEL3O2y3Grg4X1XH7VeeyGesuTLEIAEMHJPJD
+TOVNoe5YPRK9Tqb+6jsubw8X/1b72kw3xVgb6MfC0tqgggQQMIIEDDCCBAgwggLw
+oAMCAQICCwQAAAAAAThXoveHMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF
+MRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw
+GQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw
+NzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu
+di1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh
+bmNoIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDMQY/h5DSRT24n
+mMtD19lrn8WZzOoIl+Z9qOsrLLjEQeTMDlL7JPZh5pLaHHb6kSWT+O/RcEwpw6Dq
+H9jtAgDOsGoN7gCK7wJbIvn4MdmkXZqVBcVl3uLuII3v1CPnlc/zoz5d9qXcZKb6
+YuzseyzhDPecQ+7l2NVAUOFUj8GXOZi//bIveMsm+/zSLMfriIC84Uym2QY649SC
+aFNbtF/tR6upvLCLe0b2D1g+OBfGqZasi3QI5uX6lT0gHbCnPhRo3uxG2+S4KL3M
+9sndMByrR5K6QuVf7UqA1vt0CfbA2OUXwcH5x3/TsHxtXDj2F/fWnC9QBBSN5n4I
+G8K7ZpYtAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBT0zghP
+r/K8jV5hpjGMML9Q+DwzSjBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG
+AQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ
+BgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF
+DZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD
+ggEBAGU9HIQImzhTHkQLyA178dUdnF5E3DdzmNtwVV3cxGrFOLMpciMQLioQ/xp5
+t6j5Mshlp59imFylqowRRxRy4aN5TtMCufNh7yHIxI2Dt4O6qpPM946t5CJkMy+k
+63pXz2xFIxaJDzAmzpWzu70OY0jrh3dZa8NR4AvhtoZ8zFE6suva6ZGK7JIoINaA
+j5uyZ0qU+7vFwV1awdReNV6494z/HRjs1n956mNbalB9mKp9XXyfZlix/nN5mTJd
+NlJqz7QjnCzZRM/Gfamzk8L3/CPS3XmSblFyn6SeZ92Vms4PNqZiEUNa2TMKXQR1
+EMiDRMkyfIIMI80VgRvvzCiOt0c=
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_D3.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_D3.ors
new file mode 100644
index 000000000..a8a2f9122
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_D3.ors
@@ -0,0 +1,38 @@
+MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV
+BAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML
+Q0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG
+A1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAxMDEzMjE1OVowZjBkMDwwCQYF
+Kw4DAhoFAAQUi6TJyxcpGUU+u45zCZG5JfKDImUEFBa1MhvUx/Pg5o7zvdKwOu6y
+ORjRAgMLs8aAABgPMjAxMjEwMTAxMzA1MjBaoBEYDzIwMTIxMDEyMTMyMTU5WjAN
+BgkqhkiG9w0BAQUFAAOCAQEAH1auyXFf1fOdfShSnAFkg5JsRUvajrilUioTkPIn
+IGYV//huaPNZwZGCC2haZIdUuKB6G2OCXeZVskBTXPjt8/6JmoHgsZeI3x5xKXxZ
+vddLC0PgYp0cA3FqjXR2UCpdBF+GK37rnfZsdW2vD9JaEBXxTV4+ICDAg15ZphJW
+lLGmdP3mQqPURIwamcYam8tntARimgEpA0KgfVue2A+izjcxC7qk9BQYG72Fh3hC
+ZFxi5u6xKNUQ2EBF9KXZyP9d2i/bYCZAUeUSRtir+fsOXHlihYRih9npKyAPwpHd
+NqhwK9NhKed8gmkX3cSaK0arBx7ev7avhM4Dqem+BzppjKCCBL4wggS6MIIEtjCC
+Ap6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex
+HjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy
+dCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl
+cnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE
+BhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD
+QWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD
+VQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCcxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr
+2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0
+3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz
+uzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz
+mogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16
+VDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD
+VR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA
+MA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA
+MAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS
+r5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ
+VNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU
+6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE
+STsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj
+ReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe
+g9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo
+5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9
+HfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1
+VBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a
+wG/pag==
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_ND1.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_ND1.ors
new file mode 100644
index 000000000..b23062244
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_ND1.ors
@@ -0,0 +1,10 @@
+MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBSIRFH/UCpp
+Xi2I9CG62QzyzsvqfBgPMjAxMjEwMTAwODU0NDVaMHMwcTBJMAkGBSsOAwIaBQAE
+FEi2DTgjjfhFbk7lhD6jlBEYApefBBSIRFH/UCppXi2I9CG62QzyzsvqfAIQIuEz
+IiCgSN8psr+aMcKbB4AAGA8yMDEyMTAxMDA4NTQ0NVqgERgPMjAxMjEwMTQwODU0
+NDVaMA0GCSqGSIb3DQEBBQUAA4IBAQDHKDxWTbAHRXY7HapfhE99T+OSa/AfRYqX
+H9yIeMRa5VftXMyvBFuvVm/qLRwK6mxhkiVIvF/Pk5yxMjbm7xPO26D+WHOdQML4
++M4OX9BO76FjZRin5x+4b0Xo5SuSU1ulqfvSZnx+nG+hMbt/3Y7ODCEUWCYFoXNp
+U+TXTbv2mwJ9AL8Q/zjL4P8NJHzFJBKjEs+AAVRxTY/5RHHKU9dcm7ux/gsWoDUM
+w677Xxzn6icd8mqn72/HmzPnMrLHKKJFe2escbJn7JlV6qbZ9EWbrr+3OH0IJy5I
+E3LcPIsNZ//QEc6vS6J+j8ljV8Xne6rS1EmiOwV9NgubvYwDCm4R
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_ND2.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_ND2.ors
new file mode 100644
index 000000000..d14efb953
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_ND2.ors
@@ -0,0 +1,10 @@
+MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBQLWOWLxkwV
+N6RAqTCpIb5HNlpW/xgPMjAxMjEwMTAwMDI1NTdaMHMwcTBJMAkGBSsOAwIaBQAE
+FOy+ZAvtiWulchtVZmfKU1ZI9ewTBBQLWOWLxkwVN6RAqTCpIb5HNlpW/wIQEaO0
+0OyNt3+doM1dLVEvQoAAGA8yMDEyMTAxMDAwMjU1N1qgERgPMjAxMjEwMTQwMDI1
+NTdaMA0GCSqGSIb3DQEBBQUAA4IBAQCJRXcrz4wJe7bqWBHULu/QDXVz74OhSNlu
+swI0J4h+UmzJuW1GpdhTwJcTG3ARVwCLKz3evvpvHSumcsop0G3NolryNLP/oGD0
+Vf6PbLrJ8v+NxUNugPbtWM985Ti/B2a+XjbzYlH2vS3KOTL4X1zWSL07IQFNXc2h
+yHBscKpYgt0mZcFZFxN3NTCNpT6IjJzZzTG9xTYZ3hZdMQQ3DYO+/Hv4J+U1/Ybq
+CjuMWRak/0R/BiBDJdGhbThlvV7bNUxYY7DVaOiLER8ptpmhnzlB/vsTAxZqX48J
+mJdv2bxoTby98Pm/BMydEA9qcFqyP1XvqhzIY35ngoS/1XREyW7t
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_ND3.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_ND3.ors
new file mode 100644
index 000000000..3ee7158cd
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ISOP_ND3.ors
@@ -0,0 +1,10 @@
+MIIB1AoBAKCCAc0wggHJBgkrBgEFBQcwAQEEggG6MIIBtjCBn6IWBBStvZh6NLQm
+9/rEJlTvA73gJMtUGhgPMjAxMjEwMDkxNjAxNTNaMHQwcjBKMAkGBSsOAwIaBQAE
+FHyxZlScq9tE7mImFq30ZXv3etWUBBStvZh6NLQm9/rEJlTvA73gJMtUGgIRAKcN
+bJWejX5BTb8DmevkCauAABgPMjAxMjEwMDkxNjAxNTNaoBEYDzIwMTIxMDEzMTYw
+MTUzWjANBgkqhkiG9w0BAQUFAAOCAQEAFnJAzuT8P4KKyTI6sdj5HkQ352qEu5CN
+K9M2kU/eg9kPfwLv8z3yArobwgx+/IDRajbVAKrk8UPCGUqkDc0OiU5c0+jpn+nT
+20VVCtWsBSWDfzKqYln/NGrblhv+/iuFZJpyfud5nWguW5nogPC8IAfgt9FMDMl6
+wlQWLSWEkgAJWvhNR3nzgvyMnuDuMIVQgB9/+vAIxA7nlpEEh6KTswyGqE9+u1yC
+kvrz4PwKZQMT6r1eRCLs6NaagOZT84QHhZ6TAA+QHjfK406KL8F9mFgbGKbW+st2
+QHm+giUhrgZMv+1Yaxe34BjDS439LCPjdZ29On8FeZr3F55T+s3VzA==
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1.ors
new file mode 100644
index 000000000..74527413f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1.ors
@@ -0,0 +1,10 @@
+MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBSIRFH/UCpp
+Xi2I9CG62QzyzsvqfBgPMjAxMjEwMTEwODQxMTNaMHMwcTBJMAkGBSsOAwIaBQAE
+FEi2DTgjjfhFbk7lhD6jlBEYApefBBSIRFH/UCppXi2I9CG62QzyzsvqfAIQIuEz
+IiCgSN8psr+aMcKbB4AAGA8yMDEyMTAxMTA4NDExM1qgERgPMjAxMjEwMTUwODQx
+MTNaMA0GCSqGSIb3DQEBBQUAA4IBAQCNnhlBMxxh9z5AKfzAxiKs90CfxUsqfYfk
+8XlyF9VIfWRfEwzS6MF1pEzLnghRxTAmjrFgK+sxD9wk+S5Mdgw3nbED9DVFH2Hs
+RGKm/t9wkvrYOX6yRQqw6uRvU/5cibMjcyzKB/VQMwk4p4FwSUgBv88A5sTkKr2V
+eYdEm34hg2TZVkipPMBiyTyBLXs8D/9oALtnczg4xlTRSjDUvqoXL5haqY4QK2Pv
+mNwna6ACkwLmSuMe29UQ8IX2PUB4R5Etni5czyiKGxZLm+4NAhuEwWFNEzCyImPc
+087gHGU1zx+qVSlajqMJ/9ZXYjbt7WiWdhOTGEv4VMn8dHhRUs32
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1_Cert_EE.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1_Cert_EE.pem
new file mode 100644
index 000000000..e64616244
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1_Cert_EE.pem
@@ -0,0 +1,36 @@
+-----BEGIN CERTIFICATE-----
+MIIGTTCCBTWgAwIBAgIQIuEzIiCgSN8psr+aMcKbBzANBgkqhkiG9w0BAQUFADCB
+jjELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxNDAyBgNV
+BAMTK0NPTU9ETyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNlY3VyZSBTZXJ2ZXIgQ0Ew
+HhcNMTEwMzMxMDAwMDAwWhcNMTMwNjI3MjM1OTU5WjCCAT8xETAPBgNVBAUTCDA0
+MDU4NjkwMRMwEQYLKwYBBAGCNzwCAQMTAkdCMR0wGwYDVQQPExRQcml2YXRlIE9y
+Z2FuaXphdGlvbjELMAkGA1UEBhMCR0IxDzANBgNVBBETBk01IDNFUTEbMBkGA1UE
+CBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRYwFAYDVQQJ
+Ew1UcmFmZm9yZCBSb2FkMRYwFAYDVQQJEw1FeGNoYW5nZSBRdWF5MSUwIwYDVQQJ
+ExwzcmQgRmxvb3IsIDI2IE9mZmljZSBWaWxsYWdlMRowGAYDVQQKExFDT01PRE8g
+Q0EgTGltaXRlZDEaMBgGA1UECxMRQ29tb2RvIEVWIFNHQyBTU0wxGjAYBgNVBAMT
+EXNlY3VyZS5jb21vZG8uY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEA168izw0zK6cChTGFuAwNARwTu1Ky/z+dXHkSmB0tQrAk3bq7mnUPtmQ+td8r
+G2hlhQPd+YXQVYEW3RuopydmdB9wMlEGCCfU2ZqohsC9uut+HenCVbYvn4sSB0KJ
+VdOXLPCEnfdk/FmcNWcYv73HmoJXZjT0THNQmnfpo6mMGAOerenMgNuCpq1buZ8c
+fFUeUY18ZGLZKZyRNM6GPgVA37Dm8Ru+9Cf8/rm7NSIoVWH4BDztM3Y1BZvZ0d4G
+49jRA4MXbhsDEMYzaSCDmaRHSFhCtrGkN2S4A1ZxoSoxQVCLcnnInVd+J0X8J6pa
+Efio/aD6UQBQq29HyTsWVe6BewIDAQABo4IB8TCCAe0wHwYDVR0jBBgwFoAUiERR
+/1AqaV4tiPQhutkM8s7L6nwwHQYDVR0OBBYEFKvAXKp4bYRmxU4SlM8k8FbWiXiL
+MA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8EAjAAMDQGA1UdJQQtMCsGCCsGAQUF
+BwMBBggrBgEFBQcDAgYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMEYGA1UdIAQ/MD0w
+OwYMKwYBBAGyMQECAQUBMCswKQYIKwYBBQUHAgEWHWh0dHBzOi8vc2VjdXJlLmNv
+bW9kby5jb20vQ1BTMFMGA1UdHwRMMEowSKBGoESGQmh0dHA6Ly9jcmwuY29tb2Rv
+Y2EuY29tL0NPTU9ET0V4dGVuZGVkVmFsaWRhdGlvblNlY3VyZVNlcnZlckNBLmNy
+bDCBhAYIKwYBBQUHAQEEeDB2ME4GCCsGAQUFBzAChkJodHRwOi8vY3J0LmNvbW9k
+b2NhLmNvbS9DT01PRE9FeHRlbmRlZFZhbGlkYXRpb25TZWN1cmVTZXJ2ZXJDQS5j
+cnQwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmNvbW9kb2NhLmNvbTAzBgNVHREE
+LDAqghFzZWN1cmUuY29tb2RvLmNvbYIVd3d3LnNlY3VyZS5jb21vZG8uY29tMA0G
+CSqGSIb3DQEBBQUAA4IBAQC9SoVG+B40khDWAzlz+G0WDBM3OuqK5n8vY/XxdPS5
+qyv6K05S4VRGR/6PQa1UVzMbnhfLh54OWrpnalRGabpTmKDu8Pa912pzDSzMxg4U
+Rff4/hVLd1n/58q+riLxdtkIigLUjtFfwUrE1H89QODOCb4nw7f9BQaDoug+ovM3
+KO9rxVZ/3TshaxW0mPVM/cMbX+6RrQ7+d1y5fdX/fksCZhOW+P25+FPlaorQEWNa
+s0UZNQ6qVuxB7CPmnLqmLBfAKTbeKcQFxx//0eyyZqCkzIvYUNjeRR0Q7DnxXq4C
+Pj1Y6VcPJDmZOeogte5/vNIdU8Wq55IJJ1G/uKXztwVT
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1_Cross_Root.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1_Cross_Root.pem
new file mode 100644
index 000000000..20585f1c0
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1_Cross_Root.pem
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
+MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
+IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
+MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
+FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
+bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
+dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
+H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
+uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
+mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
+a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
+E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
+WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
+VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
+Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
+cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
+IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
+AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
+YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
+6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
+Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
+c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
+mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1_Issuer_ICA-Cross.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1_Issuer_ICA-Cross.pem
new file mode 100644
index 000000000..08f04f69b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1_Issuer_ICA-Cross.pem
@@ -0,0 +1,58 @@
+-----BEGIN CERTIFICATE-----
+MIIFBjCCA+6gAwIBAgIQEaO00OyNt3+doM1dLVEvQjANBgkqhkiG9w0BAQUFADCB
+gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
+BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMDA1MjQwMDAw
+MDBaFw0yMDA1MzAxMDQ4MzhaMIGOMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
+YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
+RE8gQ0EgTGltaXRlZDE0MDIGA1UEAxMrQ09NT0RPIEV4dGVuZGVkIFZhbGlkYXRp
+b24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAMxKljPNJY1n7iiWN4dG8PYEooR/U6qW5h+xAhxu7X0h1Nc8HqLYaS+ot/Wi
+7WRYZOFEZTZJQSABjTsT4gjzDPJXOZM3txyTRIOOvy3xoQV12m7ue28b6naDKHRK
+HCvT9cQDcpOvhs4JjDx11MkKL3Lzrb0OMDyEoXMfAyUUpY/D1vS15N2GevUZumjy
+hVSiMBHK0ZLLO3QGEqA3q2rYVBHfbJoWlLm0p2XGdC0x801S6VVRn8s+oo12mHDS
+b6ZlRS8bhbtbbfnywARmE4R6nc4n2PREnr+svpnba0/bWCGwiSe0jzLWS15ykV7f
+BZ3ZSS/0tm9QH3XLgJ3m0+TR8tMCAwEAAaOCAWkwggFlMB8GA1UdIwQYMBaAFAtY
+5YvGTBU3pECpMKkhvkc2Wlb/MB0GA1UdDgQWBBSIRFH/UCppXi2I9CG62Qzyzsvq
+fDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA+BgNVHSAENzA1
+MDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv
+bS9DUFMwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5jb21vZG9jYS5jb20v
+Q09NT0RPQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwdAYIKwYBBQUHAQEEaDBm
+MD4GCCsGAQUFBzAChjJodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9BZGRU
+cnVzdFNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2Rv
+Y2EuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCaQ7+vpHJezX1vf/T8PYy7cOYe3QT9
+P9ydn7+JdpvyhjH8f7PtKpFTLOKqsOPILHH3FYojHPFpLoH7sbxiC6saVBzZIl40
+TKX2Iw9dej3bQ81pfhc3Us1TocIR1FN4J2TViUFNFlW7kMvw2OTd3dMJZEgo/zIj
+hC+Me1UvzymINzR4DzOq/7fylqSbRIC1vmxWVKukgZ4lGChUOn8sY89ZIIwYazgs
+tN3t40DeDDYlV5rA0WCeXgNol64aO+pF11GZSe5EWVYLXrGPaOqKnsrSyaADfnAl
+9DLJTlCDh6I0SD1PNXf82Ijq9n0ezkO21cJqfjhmY03n7jLvDyToKmf6
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE8TCCA9mgAwIBAgIQbyXcFa/fXqMIVgw7ek/H+DANBgkqhkiG9w0BAQUFADBv
+MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
+ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
+eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow
+gYExCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
+BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMScwJQYD
+VQQDEx5DT01PRE8gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQDQQIuLcuORG/dRwRtUBJjTqb/B5opdO4f7u4jO
+DeMvPwaW8KIpUJmu2zuhV7B0UXHN7UKRTUH+qcjYaoZ3RLtZZpdQXrTULHBEz9o3
+lUJpPDDEcbNS8CFNodi6OXwcnqMknfKDFpiqFnxDmxVbt640kf7UYiYYRpo/68H5
+8ZBX66x6DYvbcjBqZtXgRqNw3GjZ/wRIiXfeten7Z21B6bw5vTLZYgLxsag9bjec
+4i/i06Imi8a4VUOI4SM+pdIkOWpHqwDUobOpJf4NP6cdutNRwQuk2qw471VQJAVl
+RpM0Ty2NrcbUIRnSjsoFYXEHc0flihkSvQRNzk6cpUisuyb3AgMBAAGjggF0MIIB
+cDAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73gJMtUGjAdBgNVHQ4EFgQUC1jl
+i8ZMFTekQKkwqSG+RzZaVv8wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB
+Af8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9j
+cmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVybmFsQ0FSb290LmNybDCBswYI
+KwYBBQUHAQEEgaYwgaMwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRydXN0
+LmNvbS9BZGRUcnVzdEV4dGVybmFsQ0FSb290LnA3YzA5BggrBgEFBQcwAoYtaHR0
+cDovL2NydC51c2VydHJ1c3QuY29tL0FkZFRydXN0VVROU0dDQ0EuY3J0MCUGCCsG
+AQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3QuY29tMA0GCSqGSIb3DQEBBQUA
+A4IBAQAHYJOZqs7Q00fQNzPeP2S35S6jJQzVMx0Njav2fkZ7WQaS44LE5/X289kF
+z0k0LTdf9CXH8PtrI3fx8UDXTLtJRTHdAChntylMdagfeTHJNjcPyjVPjPF+3vxG
+q79om3AjMC63xVx7ivsYE3lLkkKM3CyrbCK3KFOzGkrOG/soDrc6pNoN90AyT99v
+uwFQ/IfTdtn8+7aEA8rJNhj33Wzbu7qBHKat/ij5z7micV0ZBepKRtxzQe+JlEKx
+Q4hvNRevHmCDrHqMEHufyfaDbZ76iO4+3e6esL/garnQnweyCROa9aTlyFt5p0c1
+M2jlVZ6qW8swC53HD79oRIGXi1FK
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1_Issuer_ICA.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1_Issuer_ICA.pem
new file mode 100644
index 000000000..3260db300
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND1_Issuer_ICA.pem
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIFBjCCA+6gAwIBAgIQEaO00OyNt3+doM1dLVEvQjANBgkqhkiG9w0BAQUFADCB
+gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
+BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMDA1MjQwMDAw
+MDBaFw0yMDA1MzAxMDQ4MzhaMIGOMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
+YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
+RE8gQ0EgTGltaXRlZDE0MDIGA1UEAxMrQ09NT0RPIEV4dGVuZGVkIFZhbGlkYXRp
+b24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAMxKljPNJY1n7iiWN4dG8PYEooR/U6qW5h+xAhxu7X0h1Nc8HqLYaS+ot/Wi
+7WRYZOFEZTZJQSABjTsT4gjzDPJXOZM3txyTRIOOvy3xoQV12m7ue28b6naDKHRK
+HCvT9cQDcpOvhs4JjDx11MkKL3Lzrb0OMDyEoXMfAyUUpY/D1vS15N2GevUZumjy
+hVSiMBHK0ZLLO3QGEqA3q2rYVBHfbJoWlLm0p2XGdC0x801S6VVRn8s+oo12mHDS
+b6ZlRS8bhbtbbfnywARmE4R6nc4n2PREnr+svpnba0/bWCGwiSe0jzLWS15ykV7f
+BZ3ZSS/0tm9QH3XLgJ3m0+TR8tMCAwEAAaOCAWkwggFlMB8GA1UdIwQYMBaAFAtY
+5YvGTBU3pECpMKkhvkc2Wlb/MB0GA1UdDgQWBBSIRFH/UCppXi2I9CG62Qzyzsvq
+fDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA+BgNVHSAENzA1
+MDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv
+bS9DUFMwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5jb21vZG9jYS5jb20v
+Q09NT0RPQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwdAYIKwYBBQUHAQEEaDBm
+MD4GCCsGAQUFBzAChjJodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9BZGRU
+cnVzdFNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2Rv
+Y2EuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCaQ7+vpHJezX1vf/T8PYy7cOYe3QT9
+P9ydn7+JdpvyhjH8f7PtKpFTLOKqsOPILHH3FYojHPFpLoH7sbxiC6saVBzZIl40
+TKX2Iw9dej3bQ81pfhc3Us1TocIR1FN4J2TViUFNFlW7kMvw2OTd3dMJZEgo/zIj
+hC+Me1UvzymINzR4DzOq/7fylqSbRIC1vmxWVKukgZ4lGChUOn8sY89ZIIwYazgs
+tN3t40DeDDYlV5rA0WCeXgNol64aO+pF11GZSe5EWVYLXrGPaOqKnsrSyaADfnAl
+9DLJTlCDh6I0SD1PNXf82Ijq9n0ezkO21cJqfjhmY03n7jLvDyToKmf6
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND2.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND2.ors
new file mode 100644
index 000000000..24c1cb2da
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND2.ors
@@ -0,0 +1,10 @@
+MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBQLWOWLxkwV
+N6RAqTCpIb5HNlpW/xgPMjAxMjEwMTAyMzAzMTlaMHMwcTBJMAkGBSsOAwIaBQAE
+FOy+ZAvtiWulchtVZmfKU1ZI9ewTBBQLWOWLxkwVN6RAqTCpIb5HNlpW/wIQEaO0
+0OyNt3+doM1dLVEvQoAAGA8yMDEyMTAxMDIzMDMxOVqgERgPMjAxMjEwMTQyMzAz
+MTlaMA0GCSqGSIb3DQEBBQUAA4IBAQCHn2nGfEUX/EJruMkTgh7GgB0u9cpAepaD
+sPv9gtl3KLUZyR+NbGMIa5/bpoJp0yg1z5VL6CLMusy3AF6Cn2fyaioDxG+yc+gA
+PcPFdEqiIMr+TP8s7qcEiE6WZddSSCqCn90VZSCWkpDhnCjDRwJLBBPU3803fdMz
+oguvyr7y6Koxik8X/iUe8EpSzAvmm4GZL3veTI+x7IezJSrhCS9zM0ZHjySjoDxC
++ljGH0EuWPTmFEqZVGIq3cuahIYzKItUbYnXU6ipi/2p42qbsFeok7eEN0EYsY1a
+vRATHGRmU7Q5HLCq4rQtZC1cis52Mvc9x1W4z/Gt5A3FtgElXXNA
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND2_Cert_ICA.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND2_Cert_ICA.pem
new file mode 100644
index 000000000..3260db300
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND2_Cert_ICA.pem
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIFBjCCA+6gAwIBAgIQEaO00OyNt3+doM1dLVEvQjANBgkqhkiG9w0BAQUFADCB
+gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
+BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMDA1MjQwMDAw
+MDBaFw0yMDA1MzAxMDQ4MzhaMIGOMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
+YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
+RE8gQ0EgTGltaXRlZDE0MDIGA1UEAxMrQ09NT0RPIEV4dGVuZGVkIFZhbGlkYXRp
+b24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAMxKljPNJY1n7iiWN4dG8PYEooR/U6qW5h+xAhxu7X0h1Nc8HqLYaS+ot/Wi
+7WRYZOFEZTZJQSABjTsT4gjzDPJXOZM3txyTRIOOvy3xoQV12m7ue28b6naDKHRK
+HCvT9cQDcpOvhs4JjDx11MkKL3Lzrb0OMDyEoXMfAyUUpY/D1vS15N2GevUZumjy
+hVSiMBHK0ZLLO3QGEqA3q2rYVBHfbJoWlLm0p2XGdC0x801S6VVRn8s+oo12mHDS
+b6ZlRS8bhbtbbfnywARmE4R6nc4n2PREnr+svpnba0/bWCGwiSe0jzLWS15ykV7f
+BZ3ZSS/0tm9QH3XLgJ3m0+TR8tMCAwEAAaOCAWkwggFlMB8GA1UdIwQYMBaAFAtY
+5YvGTBU3pECpMKkhvkc2Wlb/MB0GA1UdDgQWBBSIRFH/UCppXi2I9CG62Qzyzsvq
+fDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA+BgNVHSAENzA1
+MDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv
+bS9DUFMwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5jb21vZG9jYS5jb20v
+Q09NT0RPQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwdAYIKwYBBQUHAQEEaDBm
+MD4GCCsGAQUFBzAChjJodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9BZGRU
+cnVzdFNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2Rv
+Y2EuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCaQ7+vpHJezX1vf/T8PYy7cOYe3QT9
+P9ydn7+JdpvyhjH8f7PtKpFTLOKqsOPILHH3FYojHPFpLoH7sbxiC6saVBzZIl40
+TKX2Iw9dej3bQ81pfhc3Us1TocIR1FN4J2TViUFNFlW7kMvw2OTd3dMJZEgo/zIj
+hC+Me1UvzymINzR4DzOq/7fylqSbRIC1vmxWVKukgZ4lGChUOn8sY89ZIIwYazgs
+tN3t40DeDDYlV5rA0WCeXgNol64aO+pF11GZSe5EWVYLXrGPaOqKnsrSyaADfnAl
+9DLJTlCDh6I0SD1PNXf82Ijq9n0ezkO21cJqfjhmY03n7jLvDyToKmf6
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND2_Issuer_Root.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND2_Issuer_Root.pem
new file mode 100644
index 000000000..dc9981009
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND2_Issuer_Root.pem
@@ -0,0 +1,23 @@
+-----BEGIN CERTIFICATE-----
+MIID0DCCArigAwIBAgIQIKTEf93f4cdTYwcTiHdgEjANBgkqhkiG9w0BAQUFADCB
+gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
+BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMTAxMDEwMDAw
+MDBaFw0zMDEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
+YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
+RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3
+UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI
+2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8
+Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp
++2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+
+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O
+nKVIrLsm9wIDAQABo0IwQDAdBgNVHQ4EFgQUC1jli8ZMFTekQKkwqSG+RzZaVv8w
+DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
+ggEBAC/JxBwHO89hAgCx2SFRdXIDMLDEFh9sAIsQrK/xR9SuEDwMGvjUk2ysEDd8
+t6aDZK3N3w6HM503sMZ7OHKx8xoOo/lVem0DZgMXlUrxsXrfViEGQo+x06iF3u6X
+HWLrp+cxEmbDD6ZLLkGC9/3JG6gbr+48zuOcrigHoSybJMIPIyaDMouGDx8rEkYl
+Fo92kANr3ryqImhrjKGsKxE5pttwwn1y6TPn/CbxdFqR5p2ErPioBhlG5qfpqjQi
+pKGfeq23sqSaM4hxAjwu1nqyH6LKwN0vEJT9s4yEIHlG1QXUEOTS22RPuFvuG8Ug
+R1uUq27UlTMdphVx8fiUylQ5PsE=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND3.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND3.ors
new file mode 100644
index 000000000..20084180c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND3.ors
@@ -0,0 +1,10 @@
+MIIB1AoBAKCCAc0wggHJBgkrBgEFBQcwAQEEggG6MIIBtjCBn6IWBBStvZh6NLQm
+9/rEJlTvA73gJMtUGhgPMjAxMjEwMTExMTM2NDdaMHQwcjBKMAkGBSsOAwIaBQAE
+FHyxZlScq9tE7mImFq30ZXv3etWUBBStvZh6NLQm9/rEJlTvA73gJMtUGgIRAKcN
+bJWejX5BTb8DmevkCauAABgPMjAxMjEwMTExMTM2NDdaoBEYDzIwMTIxMDE1MTEz
+NjQ3WjANBgkqhkiG9w0BAQUFAAOCAQEAfnj3nh6z+USW6VlDWRytWpNmC1ZRwWlg
+P2+G4UF4HE8bMJkuiFLcZEVYTxlTYv+xAEpSFxdInFM2Q5C+O6pWOZ9NbikeR4oZ
+FTI1kAZ0Uw+YMpVM4ztvKBIpUSqlbi69iNJ9WGF6qzxVeqobSOyrjjwtTsuglUbR
++mshp/SP7Br2IIK+KM1vgsmVExPfGPYANyk7ki/Q8uUnjqkreeSa9WC2iJLGcybW
+YavDhYWALebUGukNeedkloYhdjPboPPxDkKNjakwIG8EkbJK7uXewMOHHOFvFTX3
+K388me8u5iQf4f3fj6ilEgs6f5Szzmb+vklPX0zIny/TVk2+Az7HmA==
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND3_Cert_EE.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND3_Cert_EE.pem
new file mode 100644
index 000000000..c6a76d661
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND3_Cert_EE.pem
@@ -0,0 +1,34 @@
+-----BEGIN CERTIFICATE-----
+MIIF3TCCBMWgAwIBAgIRAKcNbJWejX5BTb8DmevkCaswDQYJKoZIhvcNAQEFBQAw
+bzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1B
+ZGRUcnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3Qg
+RXh0ZXJuYWwgQ0EgUm9vdDAeFw0xMDA1MDQwMDAwMDBaFw0xNTA1MDQyMzU5NTla
+MIIBCjELMAkGA1UEBhMCR0IxDzANBgNVBBETBk01IDNFUTEbMBkGA1UECBMSR3Jl
+YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRYwFAYDVQQJEw1UcmFm
+Zm9yZCBSb2FkMRYwFAYDVQQJEw1FeGNoYW5nZSBRdWF5MSUwIwYDVQQJExwzcmQg
+Rmxvb3IsIDI2IE9mZmljZSBWaWxsYWdlMRowGAYDVQQKExFDT01PRE8gQ0EgTGlt
+aXRlZDEaMBgGA1UECxMRQ29tb2RvIFByZW1pdW1TU0wxLDAqBgNVBAMTI2FkZHRy
+dXN0ZXh0ZXJuYWxjYXJvb3QuY29tb2RvY2EuY29tMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAz5MM/mco91yFJNtF3t9c0x/bGds+zGAqJlHBXCR43og+
+3vgsBkCcn5M3PAqmL6XxilpsrEfS6RqtNcLfxwDyl7rr3qpJSM537Km1ZGOTHs0C
+i0JA4YBZFOxBwPO2nHQGD+t9kJx3auFdBLnjJc5Q3jFUmnyJ8D2h3P9BrHgOoIbO
+KYOUc/3zcqE6NttdbiuUMzlad8guhnXlWPCh2NJtNtMLDQxG7DWWDEm/Kt+CdKAR
+jko6kEp7nqBKyujjJoGD2nEtEnuuqiB9n6sgSXR1NGtecJrW8IqIS7hkcsxhGTI9
+jnY73+NiMV3nglejkNseTUdcEi6L94EdifXuVLgEAwIDAQABo4IB1TCCAdEwHwYD
+VR0jBBgwFoAUrb2YejS0Jvf6xCZU7wO94CTLVBowHQYDVR0OBBYEFDXpt6NocCrd
+7XZ2MLUa116TIesKMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8EAjAAMB0GA1Ud
+JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjBGBgNVHSAEPzA9MDsGDCsGAQQBsjEB
+AgEDBDArMCkGCCsGAQUFBwIBFh1odHRwczovL3NlY3VyZS5jb21vZG8ubmV0L0NQ
+UzB7BgNVHR8EdDByMDigNqA0hjJodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9BZGRU
+cnVzdEV4dGVybmFsQ0FSb290LmNybDA2oDSgMoYwaHR0cDovL2NybC5jb21vZG8u
+bmV0L0FkZFRydXN0RXh0ZXJuYWxDQVJvb3QuY3JsMDQGCCsGAQUFBwEBBCgwJjAk
+BggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMFcGA1UdEQRQME6C
+I2FkZHRydXN0ZXh0ZXJuYWxjYXJvb3QuY29tb2RvY2EuY29tgid3d3cuYWRkdHJ1
+c3RleHRlcm5hbGNhcm9vdC5jb21vZG9jYS5jb20wDQYJKoZIhvcNAQEFBQADggEB
+AF2TF6xg8ZoBICoiQvjD2Z0SKcJRw1Dhj3HpGzV9F+Y0e/MxCXhYA+340JZxnC2P
+VA968QKFrNwDWiS9Klc+cs4k3HIeiZp3uHw1ezElqXXNa+S1CrSS03FqWeeugSrB
+xpuXCWDJSfD4DJq835hlEuXgxmAjsbuRUjaq1lxwSWnNoBkfMCCAgVlHtFljTlqq
+nwfBZcnj73+yiERgTvhN4gEL59ZzjFliKEUuXHZoe8klhn73cnY+XoRV0e7wU+Xj
+PzLoAhjGkS35hfDQTHdCwNBaN3iI2Q+HBjhfffAYFdK+Jo3kSXq12s7CJD7utAho
+xxRhA0l1ziJgrEubLi6ItNg=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND3_Issuer_Root.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND3_Issuer_Root.pem
new file mode 100644
index 000000000..20585f1c0
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/ND3_Issuer_Root.pem
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
+MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
+IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
+MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
+FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
+bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
+dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
+H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
+uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
+mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
+a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
+E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
+WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
+VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
+Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
+cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
+IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
+AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
+YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
+6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
+Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
+c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
+mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_D1.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_D1.ors
new file mode 100644
index 000000000..c8ce8d870
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_D1.ors
@@ -0,0 +1,32 @@
+MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBRf2uQDFpGg
+Ywh4P1y2H9bZ2/BQNBgPMjAxMjEwMTExMzI5NDJaMHUwczBLMAkGBSsOAwIaBQAE
+FKByDqBqfGICVPKo9Z3Se6Tzty+kBBSxsEr9HHUo+BxhqhP2+sGQPWsWowISESG8
+vx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDExMTAwMDAwWqARGA8yMDEyMTAxODEw
+MDAwMFowCwYJKoZIhvcNAQEFA4IBAQCX3gEX+JVfxuYmxBBxC9sNCi3o76ODIicr
+XMvm0DTO9VSyDBl7LDsMMgNMIDtO3flQSlBNZ2B9ikwyckXOSWXiXzybZVMdA/uq
+NchgkM9aChrlhG0AHZyYe/+dJSmEBFXkIomy+S6YQ7Mcs2s6WxCeWU7gB4XOy1zO
+/CvWjv0WQV1J2lZZ6pkvtECKAEjrVP275LA38HInFbYvVPXWzl4sDcX2TAxwUa4S
+xAJAfwl+B+oZSerZWGRo6KjZuB/OB31cB5n/lABmRez6Obi27D0UUCRv/eSbwOF4
+Ofaa/XzJt7sF7WpVgoR41HI88W7aN4vtcw1zcVsBmfRMUNYZSqtfoIID+DCCA/Qw
+ggPwMIIC2KADAgECAhIRISdENsrz1CSWG3VIBwfQERQwDQYJKoZIhvcNAQEFBQAw
+WTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV
+BAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy
+MDkxOTA3NDA1MFoXDTEyMTIxOTA4NDA1MFowgYUxCzAJBgNVBAYTAkJFMRkwFwYD
+VQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu
+ZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDIxFzAVBgNV
+BAUTDjIwMTIwOTE5MDk0MDAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAnCgMsBO+IxIqCnXCOfXJoIC3wj+f0s4DV9h2gJBzisWXkaJD2DfNrd0kHUXK
+qVVPUxnA4G5iZu0Z385/KiOt1/P6vQ/Z2/AsEh/8Z/hIyeZCHL31wrSZW4yLeZwi
+M76wPiBHJxPun681HQlVs/OGKSHnbHc1XJAIeA/M8u+lLWqIKB+AJ82TrOqUMj1s
+LjGhQNs84xPliONN5K7DrEy+Y65X/rFxN77Smw+UtcH1GgH2NgaHH8dpt1m25sgm
+UxZWhdx66opB/lbRQwWdGt7MC0kJFaWHDZq64DTuYoekFYSxAFu0nd0EekEHEJEi
+9mquB9cv/96SuEJl8BcUWU/1LwIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P
+AQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw
+HQYDVR0OBBYEFF/a5AMWkaBjCHg/XLYf1tnb8FA0MB8GA1UdIwQYMBaAFLCwSv0c
+dSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCKRl1iXFmOQtLseDWP
+Y5icDDBGiRi17CGgvIzGJi/ha0PhbO+X0TmQIEnRX3Mu0Er/Mm4RZSjMtJ2iZRh3
+tGf4Dn+jKgKOmgXC3oOG/l8RPHLf0yaPSdn/z0TXtA30vTFBLlFeWnhbfhovea4+
+snPdBxLqWZdtxmiwojgqA7YATCWwavizrBr09YRyDwzgtpZ2BwMruGuFuV9FsEwL
+PCM53yFlrM32oFghyfyE5kYjgnnueKM+pw1kA0jgb1CnVJRrMEN1TXuXDAZLtHKG
+5X/drah1JtkoZhCzxzZ3bYdVDQJ90OHFqM58lwGD6z3XuPKrHDKZKt+CPIsl5g7p
+4J2l
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_D2.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_D2.ors
new file mode 100644
index 000000000..1d562fad0
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_D2.ors
@@ -0,0 +1,32 @@
+MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBTqlwecTarB
+yVdbHxANRLCFYj1mqBgPMjAxMjEwMTExMzMwMTBaMG4wbDBEMAkGBSsOAwIaBQAE
+FLdXtbacB/gWIxOOkMkqDr4yAaoxBBRhe2YaRQ2XyolQL30EzTSo//z9SwILBAAA
+AAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL
+BgkqhkiG9w0BAQUDggEBAA0H7bvcULg1GayFtQVrYDyW0feOEMNGLmgaGuwRdrY3
+KuWyNJLUUJKQZnOkdT8A4RpVX8xD4EgVyOqRACUahgdgp0g3QOn+vf2Zyf+NJIgW
+woF5qaJgCOeIOw5O6F4r1vUhp8NvqXHotswgG58Nzz6UMD+uyIgq5o8uzOjryEm6
+wO2X+KvN9sMzkeZhNvAHkgBQL8CG4CggWnzn7At1DmhhsizfhDrosigM4Zr6Sm6z
+v1YfSPznD0b3TQ7RzvpbJPofF2aJXMIMxdKR5pemuevTDR2+JCXjVPsD/ZODFykc
+rsQeqx2vTOIg84PRKboXjCAwHn4rIN7JJtQqebLtD9egggQQMIIEDDCCBAgwggLw
+oAMCAQICCwQAAAAAAThXovYBMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF
+MRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw
+GQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw
+NzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu
+di1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh
+bmNoIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP2QF8p0+Fb7ID
+MwwD1gEr2oazjqbW28EZr3YEyMPk+7VFaGePSO1xjBGIE48Q7m7d6p6ZXCzlBZEi
+oudrHSr3WDqdIVKLDrZIDkgEgdjJE72Hq6Pf5CEGXyebbODm4sV96EfewSvOOYLL
+866g3aoVhLDK02ny+Q5OsokW7nhnmGMMh10tZqR5VmdQTiw8MgeqUxBEaEO4WH2J
+ltgSsgNJBNBYuDgnn5ryzVqhvmCJvYZMYeN6qZFKy1MgHcR+wEpGLPlRL4ttu6e5
+MJrVta7dVFobHUHoFog97LtQT1PY0Ubaihswjge5O04bYeCrgSSjr1e4xH/KDxRw
+yyhoscaFAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTqlwec
+TarByVdbHxANRLCFYj1mqDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG
+AQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ
+BgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF
+DZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD
+ggEBAHiC6N1uF29d7CmiVapA8Nr1xLSVeIkBd4A8yHsUTQ7ATI7bwT14QUV4awe7
+8cvmO5ZND8YG1ViwN162WFm9ivSoWBzvWDbU2JhQFb+XzrzCcdn0YbNiTxJh/vYm
+uDuxto00dpBgujSOAQv8B90iDEJ+sZpYRzDRj62qStRey0zpq5eX+pA+gdppMUFb
+4QvJf0El8TbLCWLN4TjrFe6ju7ZaN9zmgVYGQ2fMHKIGNScLuIA950nYwzRkIfHa
+YW6HqP1rCR1EiYmstEeCQyDxJx+RUlh+q8L1BKzaMYhS6s63MZzQuGseYStaCmbC
+fBIRKjnK621vAWvc7UR+0hqnZ+U=
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_D3.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_D3.ors
new file mode 100644
index 000000000..cbac8e8f1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_D3.ors
@@ -0,0 +1,38 @@
+MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV
+BAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML
+Q0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG
+A1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAxMTE0MDYzNlowZjBkMDwwCQYF
+Kw4DAhoFAAQUi6TJyxcpGUU+u45zCZG5JfKDImUEFBe1MhvUx/Pg5o7zvdKwOu6y
+ORjRAgMLs8aAABgPMjAxMjEwMTExMzU4MTBaoBEYDzIwMTIxMDEzMTQwNjM2WjAN
+BgkqhkiG9w0BAQUFAAOCAQEAjcryO6FUK5+TcPBxJKixVt9q07Xy3qv1e/VFuJ0f
+tnYDcu83Q5yCta49PXaA13nFDFZ445wCDivDBLolS6JKSh+JrLpAxSBzak7Ps8wz
+DPNAtexZz9/hPPzHnGOMlRtew07jk+NX5ZgCxDZGmBHIHOGyab2WoqmpRTll0oP4
+b/DzI3mzrur5lm2NAT3ZJ8bVaWsAJBVTfUye3S4GRWlfGSRVAMk0QHnCkYP42okc
+psIKbvdIoS2gxo6kBTMevxciPV2lPIiSrIWH0IGm7AqGM5+Vz7IdbD6fOQd1I3uw
+O+1NugMYfScB6jCvSW2uESeRZ+qW/HMXQbU1eiH+x88UIKCCBL4wggS6MIIEtjCC
+Ap6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex
+HjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy
+dCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl
+cnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE
+BhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD
+QWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD
+VQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCcxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr
+2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0
+3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz
+uzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz
+mogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16
+VDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD
+VR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA
+MA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA
+MAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS
+r5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ
+VNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU
+6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE
+STsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj
+ReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe
+g9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo
+5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9
+HfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1
+VBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a
+wG/pag==
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_ND1.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_ND1.ors
new file mode 100644
index 000000000..a16476fb8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_ND1.ors
@@ -0,0 +1,10 @@
+MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBSIRFH/UCpp
+Xi2I9CG62QzyzsvqfBgPMjAxMjEwMTEwODQxMTNaMHMwcTBJMAkGBSsOAwIaBQAE
+FEi2DTgjjfhFbk7lhD6jlBEYApefBBSJRFH/UCppXi2I9CG62QzyzsvqfAIQIuEz
+IiCgSN8psr+aMcKbB4AAGA8yMDEyMTAxMTA4NDExM1qgERgPMjAxMjEwMTUwODQx
+MTNaMA0GCSqGSIb3DQEBBQUAA4IBAQCNnhlBMxxh9z5AKfzAxiKs90CfxUsqfYfk
+8XlyF9VIfWRfEwzS6MF1pEzLnghRxTAmjrFgK+sxD9wk+S5Mdgw3nbED9DVFH2Hs
+RGKm/t9wkvrYOX6yRQqw6uRvU/5cibMjcyzKB/VQMwk4p4FwSUgBv88A5sTkKr2V
+eYdEm34hg2TZVkipPMBiyTyBLXs8D/9oALtnczg4xlTRSjDUvqoXL5haqY4QK2Pv
+mNwna6ACkwLmSuMe29UQ8IX2PUB4R5Etni5czyiKGxZLm+4NAhuEwWFNEzCyImPc
+087gHGU1zx+qVSlajqMJ/9ZXYjbt7WiWdhOTGEv4VMn8dHhRUs32
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_ND2.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_ND2.ors
new file mode 100644
index 000000000..5aff2abf3
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_ND2.ors
@@ -0,0 +1,10 @@
+MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBQLWOWLxkwV
+N6RAqTCpIb5HNlpW/xgPMjAxMjEwMTAyMzAzMTlaMHMwcTBJMAkGBSsOAwIaBQAE
+FOy+ZAvtiWulchtVZmfKU1ZI9ewTBBQMWOWLxkwVN6RAqTCpIb5HNlpW/wIQEaO0
+0OyNt3+doM1dLVEvQoAAGA8yMDEyMTAxMDIzMDMxOVqgERgPMjAxMjEwMTQyMzAz
+MTlaMA0GCSqGSIb3DQEBBQUAA4IBAQCHn2nGfEUX/EJruMkTgh7GgB0u9cpAepaD
+sPv9gtl3KLUZyR+NbGMIa5/bpoJp0yg1z5VL6CLMusy3AF6Cn2fyaioDxG+yc+gA
+PcPFdEqiIMr+TP8s7qcEiE6WZddSSCqCn90VZSCWkpDhnCjDRwJLBBPU3803fdMz
+oguvyr7y6Koxik8X/iUe8EpSzAvmm4GZL3veTI+x7IezJSrhCS9zM0ZHjySjoDxC
++ljGH0EuWPTmFEqZVGIq3cuahIYzKItUbYnXU6ipi/2p42qbsFeok7eEN0EYsY1a
+vRATHGRmU7Q5HLCq4rQtZC1cis52Mvc9x1W4z/Gt5A3FtgElXXNA
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_ND3.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_ND3.ors
new file mode 100644
index 000000000..4f8a6eaba
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WIKH_ND3.ors
@@ -0,0 +1,10 @@
+MIIB1AoBAKCCAc0wggHJBgkrBgEFBQcwAQEEggG6MIIBtjCBn6IWBBStvZh6NLQm
+9/rEJlTvA73gJMtUGhgPMjAxMjEwMTExMTM2NDdaMHQwcjBKMAkGBSsOAwIaBQAE
+FHyxZlScq9tE7mImFq30ZXv3etWUBBSuvZh6NLQm9/rEJlTvA73gJMtUGgIRAKcN
+bJWejX5BTb8DmevkCauAABgPMjAxMjEwMTExMTM2NDdaoBEYDzIwMTIxMDE1MTEz
+NjQ3WjANBgkqhkiG9w0BAQUFAAOCAQEAfnj3nh6z+USW6VlDWRytWpNmC1ZRwWlg
+P2+G4UF4HE8bMJkuiFLcZEVYTxlTYv+xAEpSFxdInFM2Q5C+O6pWOZ9NbikeR4oZ
+FTI1kAZ0Uw+YMpVM4ztvKBIpUSqlbi69iNJ9WGF6qzxVeqobSOyrjjwtTsuglUbR
++mshp/SP7Br2IIK+KM1vgsmVExPfGPYANyk7ki/Q8uUnjqkreeSa9WC2iJLGcybW
+YavDhYWALebUGukNeedkloYhdjPboPPxDkKNjakwIG8EkbJK7uXewMOHHOFvFTX3
+K388me8u5iQf4f3fj6ilEgs6f5Szzmb+vklPX0zIny/TVk2+Az7HmA==
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_D1.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_D1.ors
new file mode 100644
index 000000000..ed627ba66
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_D1.ors
@@ -0,0 +1,32 @@
+MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBRf2uQDFpGg
+Ywh4P1y2H9bZ2/BQNBgPMjAxMjEwMTExMzI5NDJaMHUwczBLMAkGBSsOAwIaBQAE
+FKFyDqBqfGICVPKo9Z3Se6Tzty+kBBSwsEr9HHUo+BxhqhP2+sGQPWsWowISESG8
+vx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDExMTAwMDAwWqARGA8yMDEyMTAxODEw
+MDAwMFowCwYJKoZIhvcNAQEFA4IBAQCX3gEX+JVfxuYmxBBxC9sNCi3o76ODIicr
+XMvm0DTO9VSyDBl7LDsMMgNMIDtO3flQSlBNZ2B9ikwyckXOSWXiXzybZVMdA/uq
+NchgkM9aChrlhG0AHZyYe/+dJSmEBFXkIomy+S6YQ7Mcs2s6WxCeWU7gB4XOy1zO
+/CvWjv0WQV1J2lZZ6pkvtECKAEjrVP275LA38HInFbYvVPXWzl4sDcX2TAxwUa4S
+xAJAfwl+B+oZSerZWGRo6KjZuB/OB31cB5n/lABmRez6Obi27D0UUCRv/eSbwOF4
+Ofaa/XzJt7sF7WpVgoR41HI88W7aN4vtcw1zcVsBmfRMUNYZSqtfoIID+DCCA/Qw
+ggPwMIIC2KADAgECAhIRISdENsrz1CSWG3VIBwfQERQwDQYJKoZIhvcNAQEFBQAw
+WTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV
+BAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy
+MDkxOTA3NDA1MFoXDTEyMTIxOTA4NDA1MFowgYUxCzAJBgNVBAYTAkJFMRkwFwYD
+VQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu
+ZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDIxFzAVBgNV
+BAUTDjIwMTIwOTE5MDk0MDAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAnCgMsBO+IxIqCnXCOfXJoIC3wj+f0s4DV9h2gJBzisWXkaJD2DfNrd0kHUXK
+qVVPUxnA4G5iZu0Z385/KiOt1/P6vQ/Z2/AsEh/8Z/hIyeZCHL31wrSZW4yLeZwi
+M76wPiBHJxPun681HQlVs/OGKSHnbHc1XJAIeA/M8u+lLWqIKB+AJ82TrOqUMj1s
+LjGhQNs84xPliONN5K7DrEy+Y65X/rFxN77Smw+UtcH1GgH2NgaHH8dpt1m25sgm
+UxZWhdx66opB/lbRQwWdGt7MC0kJFaWHDZq64DTuYoekFYSxAFu0nd0EekEHEJEi
+9mquB9cv/96SuEJl8BcUWU/1LwIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P
+AQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw
+HQYDVR0OBBYEFF/a5AMWkaBjCHg/XLYf1tnb8FA0MB8GA1UdIwQYMBaAFLCwSv0c
+dSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCKRl1iXFmOQtLseDWP
+Y5icDDBGiRi17CGgvIzGJi/ha0PhbO+X0TmQIEnRX3Mu0Er/Mm4RZSjMtJ2iZRh3
+tGf4Dn+jKgKOmgXC3oOG/l8RPHLf0yaPSdn/z0TXtA30vTFBLlFeWnhbfhovea4+
+snPdBxLqWZdtxmiwojgqA7YATCWwavizrBr09YRyDwzgtpZ2BwMruGuFuV9FsEwL
+PCM53yFlrM32oFghyfyE5kYjgnnueKM+pw1kA0jgb1CnVJRrMEN1TXuXDAZLtHKG
+5X/drah1JtkoZhCzxzZ3bYdVDQJ90OHFqM58lwGD6z3XuPKrHDKZKt+CPIsl5g7p
+4J2l
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_D2.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_D2.ors
new file mode 100644
index 000000000..b89fcf8a9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_D2.ors
@@ -0,0 +1,32 @@
+MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBTqlwecTarB
+yVdbHxANRLCFYj1mqBgPMjAxMjEwMTExMzMwMTBaMG4wbDBEMAkGBSsOAwIaBQAE
+FLhXtbacB/gWIxOOkMkqDr4yAaoxBBRge2YaRQ2XyolQL30EzTSo//z9SwILBAAA
+AAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL
+BgkqhkiG9w0BAQUDggEBAA0H7bvcULg1GayFtQVrYDyW0feOEMNGLmgaGuwRdrY3
+KuWyNJLUUJKQZnOkdT8A4RpVX8xD4EgVyOqRACUahgdgp0g3QOn+vf2Zyf+NJIgW
+woF5qaJgCOeIOw5O6F4r1vUhp8NvqXHotswgG58Nzz6UMD+uyIgq5o8uzOjryEm6
+wO2X+KvN9sMzkeZhNvAHkgBQL8CG4CggWnzn7At1DmhhsizfhDrosigM4Zr6Sm6z
+v1YfSPznD0b3TQ7RzvpbJPofF2aJXMIMxdKR5pemuevTDR2+JCXjVPsD/ZODFykc
+rsQeqx2vTOIg84PRKboXjCAwHn4rIN7JJtQqebLtD9egggQQMIIEDDCCBAgwggLw
+oAMCAQICCwQAAAAAAThXovYBMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF
+MRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw
+GQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw
+NzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu
+di1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh
+bmNoIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP2QF8p0+Fb7ID
+MwwD1gEr2oazjqbW28EZr3YEyMPk+7VFaGePSO1xjBGIE48Q7m7d6p6ZXCzlBZEi
+oudrHSr3WDqdIVKLDrZIDkgEgdjJE72Hq6Pf5CEGXyebbODm4sV96EfewSvOOYLL
+866g3aoVhLDK02ny+Q5OsokW7nhnmGMMh10tZqR5VmdQTiw8MgeqUxBEaEO4WH2J
+ltgSsgNJBNBYuDgnn5ryzVqhvmCJvYZMYeN6qZFKy1MgHcR+wEpGLPlRL4ttu6e5
+MJrVta7dVFobHUHoFog97LtQT1PY0Ubaihswjge5O04bYeCrgSSjr1e4xH/KDxRw
+yyhoscaFAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTqlwec
+TarByVdbHxANRLCFYj1mqDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG
+AQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ
+BgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF
+DZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD
+ggEBAHiC6N1uF29d7CmiVapA8Nr1xLSVeIkBd4A8yHsUTQ7ATI7bwT14QUV4awe7
+8cvmO5ZND8YG1ViwN162WFm9ivSoWBzvWDbU2JhQFb+XzrzCcdn0YbNiTxJh/vYm
+uDuxto00dpBgujSOAQv8B90iDEJ+sZpYRzDRj62qStRey0zpq5eX+pA+gdppMUFb
+4QvJf0El8TbLCWLN4TjrFe6ju7ZaN9zmgVYGQ2fMHKIGNScLuIA950nYwzRkIfHa
+YW6HqP1rCR1EiYmstEeCQyDxJx+RUlh+q8L1BKzaMYhS6s63MZzQuGseYStaCmbC
+fBIRKjnK621vAWvc7UR+0hqnZ+U=
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_D3.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_D3.ors
new file mode 100644
index 000000000..c3d7c9465
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_D3.ors
@@ -0,0 +1,38 @@
+MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV
+BAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML
+Q0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG
+A1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAxMTE0MzkxOFowZjBkMDwwCQYF
+Kw4DAhoFAAQUjKTJyxcpGUU+u45zCZG5JfKDImUEFBa1MhvUx/Pg5o7zvdKwOu6y
+ORjRAgMLs8aAABgPMjAxMjEwMTExNDIzMjVaoBEYDzIwMTIxMDEzMTQzOTE4WjAN
+BgkqhkiG9w0BAQUFAAOCAQEAgdrf+v+BwEhG0ghTLMVmuxWprJr/9VFtpKpxQrTo
+egSoW+5JOPCUAStfw3R3u7QM8sJf9bnPorgoCoY1hPKcWNLhvf1Ng3QlVkNa6NcO
+EonbuI4KE9Rhoflpf//pD/3AFKzU+ecRs04KtYezKrUvC1RayGabd7bgtIpdFss4
+ZCZ22riqjFtqD3+2//AHg7VaqiJMKlRt05CMmGe+HKn5PEN9HaeI52nsTf+L1Jeh
+ItnaDPfV76vFHHXyUhR3iIgnqQDCig0q3yj7BQqH50+K+myiMAY+p8cuVqebno1i
+BzXxxpZl/fw1KnTFdEa7p2jtmXw3KZiHAWAddwg1F1tHTaCCBL4wggS6MIIEtjCC
+Ap6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex
+HjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy
+dCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl
+cnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE
+BhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD
+QWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD
+VQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCcxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr
+2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0
+3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz
+uzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz
+mogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16
+VDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD
+VR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA
+MA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA
+MAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS
+r5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ
+VNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU
+6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE
+STsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj
+ReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe
+g9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo
+5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9
+HfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1
+VBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a
+wG/pag==
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_ND1.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_ND1.ors
new file mode 100644
index 000000000..af4755260
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_ND1.ors
@@ -0,0 +1,10 @@
+MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBSIRFH/UCpp
+Xi2I9CG62QzyzsvqfBgPMjAxMjEwMTEwODQxMTNaMHMwcTBJMAkGBSsOAwIaBQAE
+FEm2DTgjjfhFbk7lhD6jlBEYApefBBSIRFH/UCppXi2I9CG62QzyzsvqfAIQIuEz
+IiCgSN8psr+aMcKbB4AAGA8yMDEyMTAxMTA4NDExM1qgERgPMjAxMjEwMTUwODQx
+MTNaMA0GCSqGSIb3DQEBBQUAA4IBAQCNnhlBMxxh9z5AKfzAxiKs90CfxUsqfYfk
+8XlyF9VIfWRfEwzS6MF1pEzLnghRxTAmjrFgK+sxD9wk+S5Mdgw3nbED9DVFH2Hs
+RGKm/t9wkvrYOX6yRQqw6uRvU/5cibMjcyzKB/VQMwk4p4FwSUgBv88A5sTkKr2V
+eYdEm34hg2TZVkipPMBiyTyBLXs8D/9oALtnczg4xlTRSjDUvqoXL5haqY4QK2Pv
+mNwna6ACkwLmSuMe29UQ8IX2PUB4R5Etni5czyiKGxZLm+4NAhuEwWFNEzCyImPc
+087gHGU1zx+qVSlajqMJ/9ZXYjbt7WiWdhOTGEv4VMn8dHhRUs32
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_ND2.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_ND2.ors
new file mode 100644
index 000000000..99417f792
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_ND2.ors
@@ -0,0 +1,10 @@
+MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBQLWOWLxkwV
+N6RAqTCpIb5HNlpW/xgPMjAxMjEwMTAyMzAzMTlaMHMwcTBJMAkGBSsOAwIaBQAE
+FO2+ZAvtiWulchtVZmfKU1ZI9ewTBBQLWOWLxkwVN6RAqTCpIb5HNlpW/wIQEaO0
+0OyNt3+doM1dLVEvQoAAGA8yMDEyMTAxMDIzMDMxOVqgERgPMjAxMjEwMTQyMzAz
+MTlaMA0GCSqGSIb3DQEBBQUAA4IBAQCHn2nGfEUX/EJruMkTgh7GgB0u9cpAepaD
+sPv9gtl3KLUZyR+NbGMIa5/bpoJp0yg1z5VL6CLMusy3AF6Cn2fyaioDxG+yc+gA
+PcPFdEqiIMr+TP8s7qcEiE6WZddSSCqCn90VZSCWkpDhnCjDRwJLBBPU3803fdMz
+oguvyr7y6Koxik8X/iUe8EpSzAvmm4GZL3veTI+x7IezJSrhCS9zM0ZHjySjoDxC
++ljGH0EuWPTmFEqZVGIq3cuahIYzKItUbYnXU6ipi/2p42qbsFeok7eEN0EYsY1a
+vRATHGRmU7Q5HLCq4rQtZC1cis52Mvc9x1W4z/Gt5A3FtgElXXNA
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_ND3.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_ND3.ors
new file mode 100644
index 000000000..73dc42de2
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WINH_ND3.ors
@@ -0,0 +1,10 @@
+MIIB1AoBAKCCAc0wggHJBgkrBgEFBQcwAQEEggG6MIIBtjCBn6IWBBStvZh6NLQm
+9/rEJlTvA73gJMtUGhgPMjAxMjEwMTExMTM2NDdaMHQwcjBKMAkGBSsOAwIaBQAE
+FH2xZlScq9tE7mImFq30ZXv3etWUBBStvZh6NLQm9/rEJlTvA73gJMtUGgIRAKcN
+bJWejX5BTb8DmevkCauAABgPMjAxMjEwMTExMTM2NDdaoBEYDzIwMTIxMDE1MTEz
+NjQ3WjANBgkqhkiG9w0BAQUFAAOCAQEAfnj3nh6z+USW6VlDWRytWpNmC1ZRwWlg
+P2+G4UF4HE8bMJkuiFLcZEVYTxlTYv+xAEpSFxdInFM2Q5C+O6pWOZ9NbikeR4oZ
+FTI1kAZ0Uw+YMpVM4ztvKBIpUSqlbi69iNJ9WGF6qzxVeqobSOyrjjwtTsuglUbR
++mshp/SP7Br2IIK+KM1vgsmVExPfGPYANyk7ki/Q8uUnjqkreeSa9WC2iJLGcybW
+YavDhYWALebUGukNeedkloYhdjPboPPxDkKNjakwIG8EkbJK7uXewMOHHOFvFTX3
+K388me8u5iQf4f3fj6ilEgs6f5Szzmb+vklPX0zIny/TVk2+Az7HmA==
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKDOSC_D1.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKDOSC_D1.ors
new file mode 100644
index 000000000..d7566cf1b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKDOSC_D1.ors
@@ -0,0 +1,32 @@
+MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBSpTXftIZX0
+lLT9zwVSQC5Jfp3pqhgPMjAxMjEwMTAxNDU0NDNaMHUwczBLMAkGBSsOAwIaBQAE
+FKByDqBqfGICVPKo9Z3Se6Tzty+kBBSwsEr9HHUo+BxhqhP2+sGQPWsWowISESG8
+vx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDEwMTMwMDAwWqARGA8yMDEyMTAxNzEz
+MDAwMFowCwYJKoZIhvcNAQEFA4IBAQBw5Z+0ggEddRTIq7cXlMoxG9Nrx4HtutsH
+itIUoZp/rlLoxHsJTo/VmdZvTTGIc7Ok9XuoH61lY/x9glAKsGRjz4Myc9+5rx0O
+675lwmOS+uaf3/hRkicVrVr7Pt2ug3R7OXm2MJrohjNKP8lqtLJ0hHP88a8rotKA
+r9uz/qHm7K4Uh7dRt/Pnu9MPG74tZeFNN4M1ONMEiRdG39FqzFDXWxwQ3NmyC0Wo
+DQn+NklZMknr8mm7IBWpzgU1fTD9R0yv0zdhUZGiEXxvdhm7GJrTET5jS30Ksm5j
+o+n39YVu/vGbjyyYx3+WdeQLEyipaGvldSuJpT+R684/RuFWNetcoIID+DCCA/Qw
+ggPwMIIC2KADAgECAhIRIcYjwu4UNkR1VGrDbSdFei8wDQYJKoZIhvcNAQEFBQAw
+WTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV
+BAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy
+MDkxOTA3NDAzMVoXDTEyMTIxOTA4NDAzMVowgYUxCzAJBgNVBAYTAkJFMRkwFwYD
+VQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu
+ZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDExFzAVBgNV
+BAUTDjIwMTIwOTE5MDkzOTAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAx0kb6QhDH3sEDj4zaysjVzYelq9lZ1cso4R2IyQxaoPaG6GkaCmHA4sz6KP+
+m3ADqplibEUBa/mzCxHW8/oy3NhGMFdbezduZrnRFLbzakOTeIo8VEIM3JPfgREv
+CX8nj6Xu7ERD6JO/ZQ9Xr7YVzKKN+3cVZlcMHoGBnOPcO2Sz0AcYyk5m5IsGBRoT
+T86j6Cr9PhOPTVwXL6Wxy1KVHsUZXUwnRacV0O4SHWQ4zM9Sablus9fTbh1CgIqW
+sKDyzVB4yECXkBVeUlA+cuCaRRVHRiR+jPDSgbU62nnNudEpGG7dyoop6IOvXv2O
+ydncWzaukxIVvQ/Ij85kHqs7HQIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P
+AQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw
+HQYDVR0OBBYEFKlNd+0hlfSUtP3PBVJALkl+nemqMB8GA1UdIwQYMBaAFLCwSv0c
+dSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCe4rZg61Dmwygl/Uae
+BJZog64/FvuB1sfCqKLJTjKOfLcugSTX1TT7bLJbzXRGPQuorI3TIZEOwldIw01d
+DTLlsOCHrfHd+bpxgijxPkUuaA4NYnpvqTEMJqPKOC8QYfKupNjAPSuHvwqvqCfO
+RCe3jY6xQDO0WCTZ8/xMsOkw+J/YEYqALETf2Ug7k5eRL/TvfLd8Sgi7vPfmUeiW
+ptlsbhMOWQoQc+JA3vCI01rrjNq+0kIZ/r8nPGvablRr0Aakk6eDuS2dcReaPwuK
+0xE136pJYiXdQ3SA7uwmlorjxmejavyoPCr23TU74DQEt6hhc6uIcabsa4Y8KvJy
+RI4G
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKDOSC_D2.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKDOSC_D2.ors
new file mode 100644
index 000000000..757db7542
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKDOSC_D2.ors
@@ -0,0 +1,32 @@
+MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBTqlwecTarB
+yVdbHxANRLCFYj1mqBgPMjAxMjEwMTAxNDU0NDhaMG4wbDBEMAkGBSsOAwIaBQAE
+FLdXtbacB/gWIxOOkMkqDr4yAaoxBBRge2YaRQ2XyolQL30EzTSo//z9SwILBAAA
+AAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL
+BgkqhkiG9w0BAQUDggEBACkGyoGefA2WuktIerofBoPgeyT8Mry57DxF7IEvX8dI
+Adk+MZRo5suYIE2AJty8bohYYiIxS7sZ5nsUM+iyu5cIdmsIwt/YifYsSdHc6DKz
+l3Yh4bS27QX05/Vuok3HmEMsRBmensKATMfvGP+TOwhuFeHWAK8KHSCmUbGZFP3A
+WKtrhRh/qC4qetMt07z/OKZcqHUYegEpO3xqRJ4MdqRJpV1urjdL/852US0mWAOL
+/EPoexWiHiKJmsNy7HAEKFQ+daqdZYM1BTGbS2aj3go/BVqf0xEhRLT0fsdof4Is
+1Cy2ZHGbaVEyOQpXsxUEAqEdJcFRcLFGhdgnUjcQ9lqgggQQMIIEDDCCBAgwggLw
+oAMCAQICCwQAAAAAAThXovYBMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF
+MRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw
+GQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw
+NzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu
+di1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh
+bmNoIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDQ2QF8p0+Fb7ID
+MwwD1gEr2oazjqbW28EZr3YEyMPk+7VFaGePSO1xjBGIE48Q7m7d6p6ZXCzlBZEi
+oudrHSr3WDqdIVKLDrZIDkgEgdjJE72Hq6Pf5CEGXyebbODm4sV96EfewSvOOYLL
+866g3aoVhLDK02ny+Q5OsokW7nhnmGMMh10tZqR5VmdQTiw8MgeqUxBEaEO4WH2J
+ltgSsgNJBNBYuDgnn5ryzVqhvmCJvYZMYeN6qZFKy1MgHcR+wEpGLPlRL4ttu6e5
+MJrVta7dVFobHUHoFog97LtQT1PY0Ubaihswjge5O04bYeCrgSSjr1e4xH/KDxRw
+yyhoscaFAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTqlwec
+TarByVdbHxANRLCFYj1mqDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG
+AQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ
+BgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF
+DZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD
+ggEBAHiC6N1uF29d7CmiVapA8Nr1xLSVeIkBd4A8yHsUTQ7ATI7bwT14QUV4awe7
+8cvmO5ZND8YG1ViwN162WFm9ivSoWBzvWDbU2JhQFb+XzrzCcdn0YbNiTxJh/vYm
+uDuxto00dpBgujSOAQv8B90iDEJ+sZpYRzDRj62qStRey0zpq5eX+pA+gdppMUFb
+4QvJf0El8TbLCWLN4TjrFe6ju7ZaN9zmgVYGQ2fMHKIGNScLuIA950nYwzRkIfHa
+YW6HqP1rCR1EiYmstEeCQyDxJx+RUlh+q8L1BKzaMYhS6s63MZzQuGseYStaCmbC
+fBIRKjnK621vAWvc7UR+0hqnZ+U=
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKDOSC_D3.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKDOSC_D3.ors
new file mode 100644
index 000000000..c33179c37
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKDOSC_D3.ors
@@ -0,0 +1,38 @@
+MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV
+BAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML
+Q0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG
+A1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAxMDE1MTkzOVowZjBkMDwwCQYF
+Kw4DAhoFAAQUi6TJyxcpGUU+u45zCZG5JfKDImUEFBa1MhvUx/Pg5o7zvdKwOu6y
+ORjRAgMLs8aAABgPMjAxMjEwMTAxNDU2MTdaoBEYDzIwMTIxMDEyMTUxOTM5WjAN
+BgkqhkiG9w0BAQUFAAOCAQEAH1Bs3glJoAvCHhgVtN4F/avlKA1St74v7yuD1DIu
+cBf/4YRJdxZATXMI8I0TPjSl8L+rRAiUTVd8sPhWQ9XD9WaYKkTEjuQSPp851/81
+zDihz9Kj5Rzo5PYpFsbSps/ALMQSRkrtuX4DCm9fbK7xC+adpbhQDnWW/GXM1+Ob
+lv3pHDQXLh2GQbRsaJBgLeSUxIIE7RWJv1N+Ugi5zF8rja5qnJ9DnkilEqMeXQp8
+SThaI+TOe+KHK+7wTp5QkFNIE5l/uKgvSNIOwLe9HDevlSl1wYF6e+mAz3uoQyJa
+Ucx8FIoV6CIr+wUd+P8CmNXiQ7M59I8gm3FCDiEvWDQGEaCCBL4wggS6MIIEtjCC
+Ap6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex
+HjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy
+dCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl
+cnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE
+BhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD
+QWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD
+VQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCdxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr
+2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0
+3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz
+uzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz
+mogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16
+VDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD
+VR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA
+MA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA
+MAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS
+r5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ
+VNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU
+6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE
+STsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj
+ReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe
+g9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo
+5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9
+HfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1
+VBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a
+wG/pag==
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_D1_Issuer_ICA.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_D1_Issuer_ICA.pem
new file mode 100644
index 000000000..93fb70d51
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_D1_Issuer_ICA.pem
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIIEhjCCA26gAwIBAgILBAAAAAABL07hXdQwDQYJKoZIhvcNAQEFBQAwTDEgMB4G
+A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
+Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTEwNDEzMTAwMDAwWhcNMjIwNDEz
+MTAwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1z
+YTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBFeHRlbmRlZCBWYWxpZGF0aW9uIENBIC0g
+RzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOoUbMUpq4pbR/WNnN
+2EugcgyXW6aIIMO5PUbc0FxSMPb6WU+FX7DbiLSpXysjSKyr9ZJ4FLYyD/tcaoVb
+AJDgu2X1WvlPZ37HbCnsk8ArysRe2LDb1r4/mwvAj6ldrvcAAqT8umYROHf+IyAl
+VRDFvYK5TLFoxuJwe4NcE2fBofN8C6iZmtDimyUxyCuNQPZSY7GgrVou9Xk2bTUs
+Dt0F5NDiB0i3KF4r1VjVbNAMoQFGAVqPxq9kx1UBXeHRxmxQJaAFrQCrDI1la93r
+wnJUyQ88ABeHIu/buYZ4FlGud9mmKE3zWI2DZ7k0JZscUYBR84OSaqOuR5rW5Isb
+wO2xAgMBAAGjggFaMIIBVjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB
+/wIBADAdBgNVHQ4EFgQUsLBK/Rx1KPgcYaoT9vrBkD1rFqMwRwYDVR0gBEAwPjA8
+BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29t
+L3JlcG9zaXRvcnkvMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs
+c2lnbi5uZXQvcm9vdC1yMi5jcmwwRAYIKwYBBQUHAQEEODA2MDQGCCsGAQUFBzAB
+hihodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9FeHRlbmRlZFNTTENBMCkGA1Ud
+JQQiMCAGCCsGAQUFBwMBBggrBgEFBQcDAgYKKwYBBAGCNwoDAzAfBgNVHSMEGDAW
+gBSb4gdXZxwewGoG3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAL0m28rZa
+pJWrnlrpK4KbzJBrfHRFIOde2Mcj7ig1sTVlKqVR4FU/9oNntOQ2KbDa7JeVqYoF
+o0X+Iy5SiLQfEICt0oufo1+oxetz3nmIQZgz7qdgGLFGyUAQB5yPClLJExoGbqCb
+LTr2rk/no1E1KlsYBRLlUdy2NmLz4aQP++TPw5S/EauhWTEB8MxT7I9j12yW00gq
+iiPtRVaoZkHqAblH7qFHDBTxI+Egc8p9UHxkOFejj0qcm+ltRc9Ea01gIEBxJbVG
+qmwIft/I+shWKpLLg7h5CZctXqEBzgbttJfJBNxB7+BPNk3kQHNG7BESfIhbNCYl
+TercGL7FG81kwA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_D2_Issuer_Root.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_D2_Issuer_Root.pem
new file mode 100644
index 000000000..61db7ae3e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_D2_Issuer_Root.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
+MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
+aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDbDuaZ
+jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
+xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
+1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
+snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
+U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
+9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
+BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
+AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
+yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
+38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
+AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
+DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
+HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_D3_Issuer_Root.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_D3_Issuer_Root.pem
new file mode 100644
index 000000000..f03432b41
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_D3_Issuer_Root.pem
@@ -0,0 +1,41 @@
+-----BEGIN CERTIFICATE-----
+MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290
+IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB
+IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA
+Y2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO
+BgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi
+MCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ
+ARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEAzyLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ
+8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6
+zWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y
+fk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7
+w2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc
+G8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k
+epKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q
+laegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ
+QUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU
+fslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826
+YreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w
+ggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY
+gBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe
+MBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0
+IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy
+dC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw
+czovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0
+dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl
+aHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC
+AQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg
+b3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB
+ACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc
+nWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg
+18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c
+gr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl
+Jzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY
+sONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T
+SCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF
+CpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum
+GCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk
+zk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW
+omTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_ND1_Issuer_ICA.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_ND1_Issuer_ICA.pem
new file mode 100644
index 000000000..f0d981131
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_ND1_Issuer_ICA.pem
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIFBjCCA+6gAwIBAgIQEaO00OyNt3+doM1dLVEvQjANBgkqhkiG9w0BAQUFADCB
+gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
+BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMDA1MjQwMDAw
+MDBaFw0yMDA1MzAxMDQ4MzhaMIGOMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
+YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
+RE8gQ0EgTGltaXRlZDE0MDIGA1UEAxMrQ09NT0RPIEV4dGVuZGVkIFZhbGlkYXRp
+b24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAM1KljPNJY1n7iiWN4dG8PYEooR/U6qW5h+xAhxu7X0h1Nc8HqLYaS+ot/Wi
+7WRYZOFEZTZJQSABjTsT4gjzDPJXOZM3txyTRIOOvy3xoQV12m7ue28b6naDKHRK
+HCvT9cQDcpOvhs4JjDx11MkKL3Lzrb0OMDyEoXMfAyUUpY/D1vS15N2GevUZumjy
+hVSiMBHK0ZLLO3QGEqA3q2rYVBHfbJoWlLm0p2XGdC0x801S6VVRn8s+oo12mHDS
+b6ZlRS8bhbtbbfnywARmE4R6nc4n2PREnr+svpnba0/bWCGwiSe0jzLWS15ykV7f
+BZ3ZSS/0tm9QH3XLgJ3m0+TR8tMCAwEAAaOCAWkwggFlMB8GA1UdIwQYMBaAFAtY
+5YvGTBU3pECpMKkhvkc2Wlb/MB0GA1UdDgQWBBSIRFH/UCppXi2I9CG62Qzyzsvq
+fDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA+BgNVHSAENzA1
+MDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv
+bS9DUFMwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5jb21vZG9jYS5jb20v
+Q09NT0RPQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwdAYIKwYBBQUHAQEEaDBm
+MD4GCCsGAQUFBzAChjJodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9BZGRU
+cnVzdFNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2Rv
+Y2EuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCaQ7+vpHJezX1vf/T8PYy7cOYe3QT9
+P9ydn7+JdpvyhjH8f7PtKpFTLOKqsOPILHH3FYojHPFpLoH7sbxiC6saVBzZIl40
+TKX2Iw9dej3bQ81pfhc3Us1TocIR1FN4J2TViUFNFlW7kMvw2OTd3dMJZEgo/zIj
+hC+Me1UvzymINzR4DzOq/7fylqSbRIC1vmxWVKukgZ4lGChUOn8sY89ZIIwYazgs
+tN3t40DeDDYlV5rA0WCeXgNol64aO+pF11GZSe5EWVYLXrGPaOqKnsrSyaADfnAl
+9DLJTlCDh6I0SD1PNXf82Ijq9n0ezkO21cJqfjhmY03n7jLvDyToKmf6
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_ND2_Issuer_Root.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_ND2_Issuer_Root.pem
new file mode 100644
index 000000000..14d35cf1c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_ND2_Issuer_Root.pem
@@ -0,0 +1,23 @@
+-----BEGIN CERTIFICATE-----
+MIID0DCCArigAwIBAgIQIKTEf93f4cdTYwcTiHdgEjANBgkqhkiG9w0BAQUFADCB
+gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
+BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMTAxMDEwMDAw
+MDBaFw0zMDEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
+YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
+RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0UCLi3LjkRv3
+UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI
+2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8
+Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp
++2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+
+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O
+nKVIrLsm9wIDAQABo0IwQDAdBgNVHQ4EFgQUC1jli8ZMFTekQKkwqSG+RzZaVv8w
+DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
+ggEBAC/JxBwHO89hAgCx2SFRdXIDMLDEFh9sAIsQrK/xR9SuEDwMGvjUk2ysEDd8
+t6aDZK3N3w6HM503sMZ7OHKx8xoOo/lVem0DZgMXlUrxsXrfViEGQo+x06iF3u6X
+HWLrp+cxEmbDD6ZLLkGC9/3JG6gbr+48zuOcrigHoSybJMIPIyaDMouGDx8rEkYl
+Fo92kANr3ryqImhrjKGsKxE5pttwwn1y6TPn/CbxdFqR5p2ErPioBhlG5qfpqjQi
+pKGfeq23sqSaM4hxAjwu1nqyH6LKwN0vEJT9s4yEIHlG1QXUEOTS22RPuFvuG8Ug
+R1uUq27UlTMdphVx8fiUylQ5PsE=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_ND3_Issuer_Root.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_ND3_Issuer_Root.pem
new file mode 100644
index 000000000..ba7fb8dce
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WKIC_ND3_Issuer_Root.pem
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
+MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
+IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
+MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
+FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
+bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
+dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALj3GjPm8gAELTngTlvt
+H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
+uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
+mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
+a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
+E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
+WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
+VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
+Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
+cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
+IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
+AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
+YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
+6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
+Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
+c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
+mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_D1.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_D1.ors
new file mode 100644
index 000000000..658978219
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_D1.ors
@@ -0,0 +1,32 @@
+MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBRg2uQDFpGg
+Ywh4P1y2H9bZ2/BQNBgPMjAxMjEwMTExMTI1MjJaMHUwczBLMAkGBSsOAwIaBQAE
+FKByDqBqfGICVPKo9Z3Se6Tzty+kBBSwsEr9HHUo+BxhqhP2+sGQPWsWowISESG8
+vx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDExMTAwMDAwWqARGA8yMDEyMTAxODEw
+MDAwMFowCwYJKoZIhvcNAQEFA4IBAQAHQBPHdHWNzaFs5bfBvQcvxBWsDnsCFXNs
+a1fECiWDFNt6Nz4MCBY4rC7n0nhQfvg4m1woNcTAZVO8lacYomwUU/5/XpeFM6yc
+NeFcVbfVXA48GWPANitNQCwyRL5hGfIqNy1I9T1BHlBqYusmJKy65r2iqpmld/hD
+7S1dsCd4fXhjBQQORPmBqhKvWEU08Dh5aoaDAuaZoxRH8B1q+mUs0ODOIu34L84y
+JcxTKccd/HCwI8oxwLoBtyXSHb+dCzc7zSjFvQhbT5dOCvJNNe/fk6+EhMtQ6ybC
+D7p9EShCvU5jAdw54bZWk5wIQSvsWk9axUmYFFLYI3hAaoybpFVroIID+DCCA/Qw
+ggPwMIIC2KADAgECAhIRISdENsrz1CSWG3VIBwfQERQwDQYJKoZIhvcNAQEFBQAw
+WTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV
+BAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy
+MDkxOTA3NDA1MFoXDTEyMTIxOTA4NDA1MFowgYUxCzAJBgNVBAYTAkJFMRkwFwYD
+VQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu
+ZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDIxFzAVBgNV
+BAUTDjIwMTIwOTE5MDk0MDAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAnCgMsBO+IxIqCnXCOfXJoIC3wj+f0s4DV9h2gJBzisWXkaJD2DfNrd0kHUXK
+qVVPUxnA4G5iZu0Z385/KiOt1/P6vQ/Z2/AsEh/8Z/hIyeZCHL31wrSZW4yLeZwi
+M76wPiBHJxPun681HQlVs/OGKSHnbHc1XJAIeA/M8u+lLWqIKB+AJ82TrOqUMj1s
+LjGhQNs84xPliONN5K7DrEy+Y65X/rFxN77Smw+UtcH1GgH2NgaHH8dpt1m25sgm
+UxZWhdx66opB/lbRQwWdGt7MC0kJFaWHDZq64DTuYoekFYSxAFu0nd0EekEHEJEi
+9mquB9cv/96SuEJl8BcUWU/1LwIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P
+AQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw
+HQYDVR0OBBYEFF/a5AMWkaBjCHg/XLYf1tnb8FA0MB8GA1UdIwQYMBaAFLCwSv0c
+dSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCKRl1iXFmOQtLseDWP
+Y5icDDBGiRi17CGgvIzGJi/ha0PhbO+X0TmQIEnRX3Mu0Er/Mm4RZSjMtJ2iZRh3
+tGf4Dn+jKgKOmgXC3oOG/l8RPHLf0yaPSdn/z0TXtA30vTFBLlFeWnhbfhovea4+
+snPdBxLqWZdtxmiwojgqA7YATCWwavizrBr09YRyDwzgtpZ2BwMruGuFuV9FsEwL
+PCM53yFlrM32oFghyfyE5kYjgnnueKM+pw1kA0jgb1CnVJRrMEN1TXuXDAZLtHKG
+5X/drah1JtkoZhCzxzZ3bYdVDQJ90OHFqM58lwGD6z3XuPKrHDKZKt+CPIsl5g7p
+4J2l
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_D2.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_D2.ors
new file mode 100644
index 000000000..4e11e4b27
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_D2.ors
@@ -0,0 +1,32 @@
+MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBTrlwecTarB
+yVdbHxANRLCFYj1mqBgPMjAxMjEwMTExMTI1MjVaMG4wbDBEMAkGBSsOAwIaBQAE
+FLdXtbacB/gWIxOOkMkqDr4yAaoxBBRge2YaRQ2XyolQL30EzTSo//z9SwILBAAA
+AAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL
+BgkqhkiG9w0BAQUDggEBAHThkPoy6eA7qX9y5C5b1ElRSwdjzsd15OJSqP2yjQbS
+Ol1K8DWtX0UhTfRH+CrIPoWL40g2HjXtIVeMD6s3hakYimZUenIJ/IRRSVWp+EXU
+MewgTVPz/wJN/9dJIkSbOI/BmpIGlaaBaLwcb39nJjZMq0sXj8jRI5i0isotOAFz
+Zc0R20viBEH099KuGktB2fKKEpVbbWPljTxKzkIBs9SXZBIqd/X2MWzQWcLKzhL0
+oynkvqxTFqNVjjZKcKSXPS/XEUufLrv/E3xQZYAfTJr778kFkyA8JzrXiH6W5DX6
+UbqsnO5DaPZvMDfvlQWETkoS1j+Qgu2mIWzdiw7sPrOgggQQMIIEDDCCBAgwggLw
+oAMCAQICCwQAAAAAAThXovYBMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF
+MRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw
+GQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw
+NzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu
+di1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh
+bmNoIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP2QF8p0+Fb7ID
+MwwD1gEr2oazjqbW28EZr3YEyMPk+7VFaGePSO1xjBGIE48Q7m7d6p6ZXCzlBZEi
+oudrHSr3WDqdIVKLDrZIDkgEgdjJE72Hq6Pf5CEGXyebbODm4sV96EfewSvOOYLL
+866g3aoVhLDK02ny+Q5OsokW7nhnmGMMh10tZqR5VmdQTiw8MgeqUxBEaEO4WH2J
+ltgSsgNJBNBYuDgnn5ryzVqhvmCJvYZMYeN6qZFKy1MgHcR+wEpGLPlRL4ttu6e5
+MJrVta7dVFobHUHoFog97LtQT1PY0Ubaihswjge5O04bYeCrgSSjr1e4xH/KDxRw
+yyhoscaFAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTqlwec
+TarByVdbHxANRLCFYj1mqDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG
+AQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ
+BgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF
+DZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD
+ggEBAHiC6N1uF29d7CmiVapA8Nr1xLSVeIkBd4A8yHsUTQ7ATI7bwT14QUV4awe7
+8cvmO5ZND8YG1ViwN162WFm9ivSoWBzvWDbU2JhQFb+XzrzCcdn0YbNiTxJh/vYm
+uDuxto00dpBgujSOAQv8B90iDEJ+sZpYRzDRj62qStRey0zpq5eX+pA+gdppMUFb
+4QvJf0El8TbLCWLN4TjrFe6ju7ZaN9zmgVYGQ2fMHKIGNScLuIA950nYwzRkIfHa
+YW6HqP1rCR1EiYmstEeCQyDxJx+RUlh+q8L1BKzaMYhS6s63MZzQuGseYStaCmbC
+fBIRKjnK621vAWvc7UR+0hqnZ+U=
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_D3.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_D3.ors
new file mode 100644
index 000000000..61e2d0968
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_D3.ors
@@ -0,0 +1,38 @@
+MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV
+BAYTAlVTMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML
+Q0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG
+A1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAxMTEzMjE0MVowZjBkMDwwCQYF
+Kw4DAhoFAAQUi6TJyxcpGUU+u45zCZG5JfKDImUEFBa1MhvUx/Pg5o7zvdKwOu6y
+ORjRAgMLs8aAABgPMjAxMjEwMTExMjQyMTZaoBEYDzIwMTIxMDEzMTMyMTQxWjAN
+BgkqhkiG9w0BAQUFAAOCAQEAEWd9kKEfaurOXDV98OVtU27TmK4L4MeGEPdkg1i+
+fbPMe1mouWlVm23W6yaM7mM2NMXLW+hTNzqfyMPM7rByXNaFAAniCPTXNO3eJRIA
+Zf0F10OSdBQ/ln4igHQCVZCnXR30/aP5/PMb4u3/LTuC9aW6K7mLXcuCvJztGnXO
+v3r64q/qTGG/b4eS65exykV9riSFuGp1rzLAy5fSYTBWTOBQ679PFjQnL60GkrZA
+Egtxw2ozEDwo+X0WamEouxN8mjX/VQlMdEbykUFDuPD3vZydZ04BV9f18RJZOU9j
+gCwMzd9gb4jUL4ykdWiLmO+YPDWFyNSYEIfnGgk1VvPHuaCCBL4wggS6MIIEtjCC
+Ap6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex
+HjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy
+dCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl
+cnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE
+BhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD
+QWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD
+VQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCcxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr
+2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0
+3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz
+uzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz
+mogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16
+VDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD
+VR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA
+MA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA
+MAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS
+r5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ
+VNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU
+6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE
+STsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj
+ReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe
+g9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo
+5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9
+HfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1
+VBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a
+wG/pag==
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_ND1.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_ND1.ors
new file mode 100644
index 000000000..b6fadc5e9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_ND1.ors
@@ -0,0 +1,10 @@
+MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBSJRFH/UCpp
+Xi2I9CG62QzyzsvqfBgPMjAxMjEwMTEwODQxMTNaMHMwcTBJMAkGBSsOAwIaBQAE
+FEi2DTgjjfhFbk7lhD6jlBEYApefBBSIRFH/UCppXi2I9CG62QzyzsvqfAIQIuEz
+IiCgSN8psr+aMcKbB4AAGA8yMDEyMTAxMTA4NDExM1qgERgPMjAxMjEwMTUwODQx
+MTNaMA0GCSqGSIb3DQEBBQUAA4IBAQCNnhlBMxxh9z5AKfzAxiKs90CfxUsqfYfk
+8XlyF9VIfWRfEwzS6MF1pEzLnghRxTAmjrFgK+sxD9wk+S5Mdgw3nbED9DVFH2Hs
+RGKm/t9wkvrYOX6yRQqw6uRvU/5cibMjcyzKB/VQMwk4p4FwSUgBv88A5sTkKr2V
+eYdEm34hg2TZVkipPMBiyTyBLXs8D/9oALtnczg4xlTRSjDUvqoXL5haqY4QK2Pv
+mNwna6ACkwLmSuMe29UQ8IX2PUB4R5Etni5czyiKGxZLm+4NAhuEwWFNEzCyImPc
+087gHGU1zx+qVSlajqMJ/9ZXYjbt7WiWdhOTGEv4VMn8dHhRUs32
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_ND2.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_ND2.ors
new file mode 100644
index 000000000..251f0df7c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_ND2.ors
@@ -0,0 +1,10 @@
+MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBQMWOWLxkwV
+N6RAqTCpIb5HNlpW/xgPMjAxMjEwMTAyMzAzMTlaMHMwcTBJMAkGBSsOAwIaBQAE
+FOy+ZAvtiWulchtVZmfKU1ZI9ewTBBQLWOWLxkwVN6RAqTCpIb5HNlpW/wIQEaO0
+0OyNt3+doM1dLVEvQoAAGA8yMDEyMTAxMDIzMDMxOVqgERgPMjAxMjEwMTQyMzAz
+MTlaMA0GCSqGSIb3DQEBBQUAA4IBAQCHn2nGfEUX/EJruMkTgh7GgB0u9cpAepaD
+sPv9gtl3KLUZyR+NbGMIa5/bpoJp0yg1z5VL6CLMusy3AF6Cn2fyaioDxG+yc+gA
+PcPFdEqiIMr+TP8s7qcEiE6WZddSSCqCn90VZSCWkpDhnCjDRwJLBBPU3803fdMz
+oguvyr7y6Koxik8X/iUe8EpSzAvmm4GZL3veTI+x7IezJSrhCS9zM0ZHjySjoDxC
++ljGH0EuWPTmFEqZVGIq3cuahIYzKItUbYnXU6ipi/2p42qbsFeok7eEN0EYsY1a
+vRATHGRmU7Q5HLCq4rQtZC1cis52Mvc9x1W4z/Gt5A3FtgElXXNA
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_ND3.ors b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_ND3.ors
new file mode 100644
index 000000000..19641f533
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WRID_ND3.ors
@@ -0,0 +1,10 @@
+MIIB1AoBAKCCAc0wggHJBgkrBgEFBQcwAQEEggG6MIIBtjCBn6IWBBSuvZh6NLQm
+9/rEJlTvA73gJMtUGhgPMjAxMjEwMTAxMzA3NDZaMHQwcjBKMAkGBSsOAwIaBQAE
+FHyxZlScq9tE7mImFq30ZXv3etWUBBStvZh6NLQm9/rEJlTvA73gJMtUGgIRAKcN
+bJWejX5BTb8DmevkCauAABgPMjAxMjEwMTAxMzA3NDZaoBEYDzIwMTIxMDE0MTMw
+NzQ2WjANBgkqhkiG9w0BAQUFAAOCAQEAA70+GYJoFuUBwIN9KHMqmOOtnmoLBBlm
+HL2Su70ZEqSmL4zTt3iHY3m2YaNYSPphgDlQ4lY8zGAkCSrZ3ulpJun3RRy+gD29
+0ks155tChMbYNZrFm46vKWabBjh2p+623daymlcbgizi5Z+P4oJL68VrOqh+DArE
+MpHH16BTGaF+bAjzTRSbS90xUReqwnnEpRBrmcQVo4uKpSkbyrx7iMLqsJ2vGpgh
+xqj1kNPT9g3+gegmdU9QpFV0l9ZV8X/f0uz5nT4I0NL81d/KDHGx2rd+bftLODeL
+ZAWAzFbr5B5EMqPGoh/SQXpcuVOqMHjh8fi8PBXBcitlIFzdDKXDvA==
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_D1_Issuer_ICA.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_D1_Issuer_ICA.pem
new file mode 100644
index 000000000..3f1c05377
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_D1_Issuer_ICA.pem
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIIEhjCCA26gAwIBAgILBAAAAAABL07hXdQwDQYJKoZIhvcNAQEFBQAwTDEgMB4G
+A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
+Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTEwNDEzMTAwMDAwWhcNMjIwNDEz
+MTAwMDAwWjBZMQswCQYDVQQGEwJVUzEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1z
+YTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBFeHRlbmRlZCBWYWxpZGF0aW9uIENBIC0g
+RzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDNoUbMUpq4pbR/WNnN
+2EugcgyXW6aIIMO5PUbc0FxSMPb6WU+FX7DbiLSpXysjSKyr9ZJ4FLYyD/tcaoVb
+AJDgu2X1WvlPZ37HbCnsk8ArysRe2LDb1r4/mwvAj6ldrvcAAqT8umYROHf+IyAl
+VRDFvYK5TLFoxuJwe4NcE2fBofN8C6iZmtDimyUxyCuNQPZSY7GgrVou9Xk2bTUs
+Dt0F5NDiB0i3KF4r1VjVbNAMoQFGAVqPxq9kx1UBXeHRxmxQJaAFrQCrDI1la93r
+wnJUyQ88ABeHIu/buYZ4FlGud9mmKE3zWI2DZ7k0JZscUYBR84OSaqOuR5rW5Isb
+wO2xAgMBAAGjggFaMIIBVjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB
+/wIBADAdBgNVHQ4EFgQUsLBK/Rx1KPgcYaoT9vrBkD1rFqMwRwYDVR0gBEAwPjA8
+BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29t
+L3JlcG9zaXRvcnkvMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs
+c2lnbi5uZXQvcm9vdC1yMi5jcmwwRAYIKwYBBQUHAQEEODA2MDQGCCsGAQUFBzAB
+hihodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9FeHRlbmRlZFNTTENBMCkGA1Ud
+JQQiMCAGCCsGAQUFBwMBBggrBgEFBQcDAgYKKwYBBAGCNwoDAzAfBgNVHSMEGDAW
+gBSb4gdXZxwewGoG3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAL0m28rZa
+pJWrnlrpK4KbzJBrfHRFIOde2Mcj7ig1sTVlKqVR4FU/9oNntOQ2KbDa7JeVqYoF
+o0X+Iy5SiLQfEICt0oufo1+oxetz3nmIQZgz7qdgGLFGyUAQB5yPClLJExoGbqCb
+LTr2rk/no1E1KlsYBRLlUdy2NmLz4aQP++TPw5S/EauhWTEB8MxT7I9j12yW00gq
+iiPtRVaoZkHqAblH7qFHDBTxI+Egc8p9UHxkOFejj0qcm+ltRc9Ea01gIEBxJbVG
+qmwIft/I+shWKpLLg7h5CZctXqEBzgbttJfJBNxB7+BPNk3kQHNG7BESfIhbNCYl
+TercGL7FG81kwA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_D2_Issuer_Root.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_D2_Issuer_Root.pem
new file mode 100644
index 000000000..af1b8b02a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_D2_Issuer_Root.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
+A1UEBhMCVVMxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
+MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAlVTMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
+aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
+jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
+xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
+1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
+snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
+U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
+9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
+BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
+AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
+yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
+38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
+AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
+DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
+HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_D3_Issuer_Root.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_D3_Issuer_Root.pem
new file mode 100644
index 000000000..764797a27
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_D3_Issuer_Root.pem
@@ -0,0 +1,41 @@
+-----BEGIN CERTIFICATE-----
+MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdUZXN0
+IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB
+IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA
+Y2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO
+BgNVBAoTB1Rlc3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi
+MCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ
+ARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ
+8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6
+zWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y
+fk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7
+w2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc
+G8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k
+epKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q
+laegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ
+QUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU
+fslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826
+YreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w
+ggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY
+gBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe
+MBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0
+IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy
+dC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw
+czovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0
+dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl
+aHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC
+AQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg
+b3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB
+ACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc
+nWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg
+18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c
+gr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl
+Jzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY
+sONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T
+SCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF
+CpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum
+GCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk
+zk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW
+omTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_ND1_Issuer_ICA.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_ND1_Issuer_ICA.pem
new file mode 100644
index 000000000..06b690872
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_ND1_Issuer_ICA.pem
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIFBjCCA+6gAwIBAgIQEaO00OyNt3+doM1dLVEvQjANBgkqhkiG9w0BAQUFADCB
+gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
+BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMDA1MjQwMDAw
+MDBaFw0yMDA1MzAxMDQ4MzhaMIGOMQswCQYDVQQGEwJVUzEbMBkGA1UECBMSR3Jl
+YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
+RE8gQ0EgTGltaXRlZDE0MDIGA1UEAxMrQ09NT0RPIEV4dGVuZGVkIFZhbGlkYXRp
+b24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAMxKljPNJY1n7iiWN4dG8PYEooR/U6qW5h+xAhxu7X0h1Nc8HqLYaS+ot/Wi
+7WRYZOFEZTZJQSABjTsT4gjzDPJXOZM3txyTRIOOvy3xoQV12m7ue28b6naDKHRK
+HCvT9cQDcpOvhs4JjDx11MkKL3Lzrb0OMDyEoXMfAyUUpY/D1vS15N2GevUZumjy
+hVSiMBHK0ZLLO3QGEqA3q2rYVBHfbJoWlLm0p2XGdC0x801S6VVRn8s+oo12mHDS
+b6ZlRS8bhbtbbfnywARmE4R6nc4n2PREnr+svpnba0/bWCGwiSe0jzLWS15ykV7f
+BZ3ZSS/0tm9QH3XLgJ3m0+TR8tMCAwEAAaOCAWkwggFlMB8GA1UdIwQYMBaAFAtY
+5YvGTBU3pECpMKkhvkc2Wlb/MB0GA1UdDgQWBBSIRFH/UCppXi2I9CG62Qzyzsvq
+fDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA+BgNVHSAENzA1
+MDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv
+bS9DUFMwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5jb21vZG9jYS5jb20v
+Q09NT0RPQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwdAYIKwYBBQUHAQEEaDBm
+MD4GCCsGAQUFBzAChjJodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9BZGRU
+cnVzdFNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2Rv
+Y2EuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCaQ7+vpHJezX1vf/T8PYy7cOYe3QT9
+P9ydn7+JdpvyhjH8f7PtKpFTLOKqsOPILHH3FYojHPFpLoH7sbxiC6saVBzZIl40
+TKX2Iw9dej3bQ81pfhc3Us1TocIR1FN4J2TViUFNFlW7kMvw2OTd3dMJZEgo/zIj
+hC+Me1UvzymINzR4DzOq/7fylqSbRIC1vmxWVKukgZ4lGChUOn8sY89ZIIwYazgs
+tN3t40DeDDYlV5rA0WCeXgNol64aO+pF11GZSe5EWVYLXrGPaOqKnsrSyaADfnAl
+9DLJTlCDh6I0SD1PNXf82Ijq9n0ezkO21cJqfjhmY03n7jLvDyToKmf6
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_ND2_Issuer_Root.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_ND2_Issuer_Root.pem
new file mode 100644
index 000000000..1b46fcfb6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_ND2_Issuer_Root.pem
@@ -0,0 +1,23 @@
+-----BEGIN CERTIFICATE-----
+MIID0DCCArigAwIBAgIQIKTEf93f4cdTYwcTiHdgEjANBgkqhkiG9w0BAQUFADCB
+gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
+BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMTAxMDEwMDAw
+MDBaFw0zMDEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJVUzEbMBkGA1UECBMSR3Jl
+YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
+RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3
+UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI
+2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8
+Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp
++2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+
+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O
+nKVIrLsm9wIDAQABo0IwQDAdBgNVHQ4EFgQUC1jli8ZMFTekQKkwqSG+RzZaVv8w
+DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
+ggEBAC/JxBwHO89hAgCx2SFRdXIDMLDEFh9sAIsQrK/xR9SuEDwMGvjUk2ysEDd8
+t6aDZK3N3w6HM503sMZ7OHKx8xoOo/lVem0DZgMXlUrxsXrfViEGQo+x06iF3u6X
+HWLrp+cxEmbDD6ZLLkGC9/3JG6gbr+48zuOcrigHoSybJMIPIyaDMouGDx8rEkYl
+Fo92kANr3ryqImhrjKGsKxE5pttwwn1y6TPn/CbxdFqR5p2ErPioBhlG5qfpqjQi
+pKGfeq23sqSaM4hxAjwu1nqyH6LKwN0vEJT9s4yEIHlG1QXUEOTS22RPuFvuG8Ug
+R1uUq27UlTMdphVx8fiUylQ5PsE=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_ND3_Issuer_Root.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_ND3_Issuer_Root.pem
new file mode 100644
index 000000000..4d1f45479
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocsp-tests/WSNIC_ND3_Issuer_Root.pem
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
+MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
+IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
+MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCVVMx
+FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
+bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
+dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
+H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
+uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
+mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
+a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
+E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
+WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
+VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
+Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
+cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
+IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
+AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
+YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
+6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
+Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
+c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
+mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocspapitest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocspapitest.c
new file mode 100644
index 000000000..8e9b7c0a9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ocspapitest.c
@@ -0,0 +1,225 @@
+/*
+ * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+
+#include <openssl/opensslconf.h>
+#include <openssl/crypto.h>
+#include <openssl/ocsp.h>
+#include <openssl/x509.h>
+#include <openssl/asn1.h>
+#include <openssl/pem.h>
+
+#include "testutil.h"
+
+static const char *certstr;
+static const char *privkeystr;
+
+#ifndef OPENSSL_NO_OCSP
+static int get_cert_and_key(X509 **cert_out, EVP_PKEY **key_out)
+{
+ BIO *certbio, *keybio;
+ X509 *cert = NULL;
+ EVP_PKEY *key = NULL;
+
+ if (!TEST_ptr(certbio = BIO_new_file(certstr, "r")))
+ return 0;
+ cert = PEM_read_bio_X509(certbio, NULL, NULL, NULL);
+ BIO_free(certbio);
+ if (!TEST_ptr(keybio = BIO_new_file(privkeystr, "r")))
+ goto end;
+ key = PEM_read_bio_PrivateKey(keybio, NULL, NULL, NULL);
+ BIO_free(keybio);
+ if (!TEST_ptr(cert) || !TEST_ptr(key))
+ goto end;
+ *cert_out = cert;
+ *key_out = key;
+ return 1;
+ end:
+ X509_free(cert);
+ EVP_PKEY_free(key);
+ return 0;
+}
+
+static int get_cert(X509 **cert_out)
+{
+ BIO *certbio;
+ X509 *cert = NULL;
+
+ if (!TEST_ptr(certbio = BIO_new_file(certstr, "r")))
+ return 0;
+ cert = PEM_read_bio_X509(certbio, NULL, NULL, NULL);
+ BIO_free(certbio);
+ if (!TEST_ptr(cert))
+ goto end;
+ *cert_out = cert;
+ return 1;
+ end:
+ X509_free(cert);
+ return 0;
+}
+
+static OCSP_BASICRESP *make_dummy_resp(void)
+{
+ const unsigned char namestr[] = "openssl.example.com";
+ unsigned char keybytes[128] = {7};
+ OCSP_BASICRESP *bs = OCSP_BASICRESP_new();
+ OCSP_BASICRESP *bs_out = NULL;
+ OCSP_CERTID *cid = NULL;
+ ASN1_TIME *thisupd = ASN1_TIME_set(NULL, time(NULL));
+ ASN1_TIME *nextupd = ASN1_TIME_set(NULL, time(NULL) + 200);
+ X509_NAME *name = X509_NAME_new();
+ ASN1_BIT_STRING *key = ASN1_BIT_STRING_new();
+ ASN1_INTEGER *serial = ASN1_INTEGER_new();
+
+ if (!X509_NAME_add_entry_by_NID(name, NID_commonName, MBSTRING_ASC,
+ namestr, -1, -1, 1)
+ || !ASN1_BIT_STRING_set(key, keybytes, sizeof(keybytes))
+ || !ASN1_INTEGER_set_uint64(serial, (uint64_t)1))
+ goto err;
+ cid = OCSP_cert_id_new(EVP_sha256(), name, key, serial);
+ if (!TEST_ptr(bs)
+ || !TEST_ptr(thisupd)
+ || !TEST_ptr(nextupd)
+ || !TEST_ptr(cid)
+ || !TEST_true(OCSP_basic_add1_status(bs, cid,
+ V_OCSP_CERTSTATUS_UNKNOWN,
+ 0, NULL, thisupd, nextupd)))
+ goto err;
+ bs_out = bs;
+ bs = NULL;
+ err:
+ ASN1_TIME_free(thisupd);
+ ASN1_TIME_free(nextupd);
+ ASN1_BIT_STRING_free(key);
+ ASN1_INTEGER_free(serial);
+ OCSP_CERTID_free(cid);
+ OCSP_BASICRESP_free(bs);
+ X509_NAME_free(name);
+ return bs_out;
+}
+
+static int test_resp_signer(void)
+{
+ OCSP_BASICRESP *bs = NULL;
+ X509 *signer = NULL, *tmp;
+ EVP_PKEY *key = NULL;
+ STACK_OF(X509) *extra_certs = NULL;
+ int ret = 0;
+
+ /*
+ * Test a response with no certs at all; get the signer from the
+ * extra certs given to OCSP_resp_get0_signer().
+ */
+ bs = make_dummy_resp();
+ extra_certs = sk_X509_new_null();
+ if (!TEST_ptr(bs)
+ || !TEST_ptr(extra_certs)
+ || !TEST_true(get_cert_and_key(&signer, &key))
+ || !TEST_true(sk_X509_push(extra_certs, signer))
+ || !TEST_true(OCSP_basic_sign(bs, signer, key, EVP_sha1(),
+ NULL, OCSP_NOCERTS)))
+ goto err;
+ if (!TEST_true(OCSP_resp_get0_signer(bs, &tmp, extra_certs))
+ || !TEST_int_eq(X509_cmp(tmp, signer), 0))
+ goto err;
+ OCSP_BASICRESP_free(bs);
+
+ /* Do it again but include the signer cert */
+ bs = make_dummy_resp();
+ tmp = NULL;
+ if (!TEST_ptr(bs)
+ || !TEST_true(OCSP_basic_sign(bs, signer, key, EVP_sha1(),
+ NULL, 0)))
+ goto err;
+ if (!TEST_true(OCSP_resp_get0_signer(bs, &tmp, NULL))
+ || !TEST_int_eq(X509_cmp(tmp, signer), 0))
+ goto err;
+ ret = 1;
+ err:
+ OCSP_BASICRESP_free(bs);
+ sk_X509_free(extra_certs);
+ X509_free(signer);
+ EVP_PKEY_free(key);
+ return ret;
+}
+
+static int test_access_description(int testcase)
+{
+ ACCESS_DESCRIPTION *ad = ACCESS_DESCRIPTION_new();
+ int ret = 0;
+
+ if (!TEST_ptr(ad))
+ goto err;
+
+ switch (testcase) {
+ case 0: /* no change */
+ break;
+ case 1: /* check and release current location */
+ if (!TEST_ptr(ad->location))
+ goto err;
+ GENERAL_NAME_free(ad->location);
+ ad->location = NULL;
+ break;
+ case 2: /* replace current location */
+ GENERAL_NAME_free(ad->location);
+ ad->location = GENERAL_NAME_new();
+ if (!TEST_ptr(ad->location))
+ goto err;
+ break;
+ }
+ ACCESS_DESCRIPTION_free(ad);
+ ret = 1;
+err:
+ return ret;
+}
+
+static int test_ocsp_url_svcloc_new(void)
+{
+ static const char * urls[] = {
+ "www.openssl.org",
+ "www.openssl.net",
+ NULL
+ };
+
+ X509 *issuer = NULL;
+ X509_EXTENSION * ext = NULL;
+ int ret = 0;
+
+ if (!TEST_true(get_cert(&issuer)))
+ goto err;
+
+ /*
+ * Test calling this ocsp method to catch any memory leak
+ */
+ ext = OCSP_url_svcloc_new(X509_get_issuer_name(issuer), urls);
+ if (!TEST_ptr(ext))
+ goto err;
+
+ X509_EXTENSION_free(ext);
+ ret = 1;
+err:
+ X509_free(issuer);
+ return ret;
+}
+
+#endif /* OPENSSL_NO_OCSP */
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(certstr = test_get_argument(0))
+ || !TEST_ptr(privkeystr = test_get_argument(1)))
+ return 0;
+#ifndef OPENSSL_NO_OCSP
+ ADD_TEST(test_resp_signer);
+ ADD_ALL_TESTS(test_access_description, 3);
+ ADD_TEST(test_ocsp_url_svcloc_new);
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/async_bio.cc b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/async_bio.cc
new file mode 100644
index 000000000..cbbabe01e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/async_bio.cc
@@ -0,0 +1,183 @@
+/*
+ * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "async_bio.h"
+
+#include <errno.h>
+#include <string.h>
+
+#include <openssl/bio.h>
+#include <openssl/crypto.h>
+
+
+namespace {
+
+struct AsyncBio {
+ bool datagram;
+ bool enforce_write_quota;
+ size_t read_quota;
+ size_t write_quota;
+};
+
+AsyncBio *GetData(BIO *bio) {
+ return (AsyncBio *)BIO_get_data(bio);
+}
+
+static int AsyncWrite(BIO *bio, const char *in, int inl) {
+ AsyncBio *a = GetData(bio);
+ if (a == NULL || BIO_next(bio) == NULL) {
+ return 0;
+ }
+
+ if (!a->enforce_write_quota) {
+ return BIO_write(BIO_next(bio), in, inl);
+ }
+
+ BIO_clear_retry_flags(bio);
+
+ if (a->write_quota == 0) {
+ BIO_set_retry_write(bio);
+ errno = EAGAIN;
+ return -1;
+ }
+
+ if (!a->datagram && (size_t)inl > a->write_quota) {
+ inl = a->write_quota;
+ }
+ int ret = BIO_write(BIO_next(bio), in, inl);
+ if (ret <= 0) {
+ BIO_copy_next_retry(bio);
+ } else {
+ a->write_quota -= (a->datagram ? 1 : ret);
+ }
+ return ret;
+}
+
+static int AsyncRead(BIO *bio, char *out, int outl) {
+ AsyncBio *a = GetData(bio);
+ if (a == NULL || BIO_next(bio) == NULL) {
+ return 0;
+ }
+
+ BIO_clear_retry_flags(bio);
+
+ if (a->read_quota == 0) {
+ BIO_set_retry_read(bio);
+ errno = EAGAIN;
+ return -1;
+ }
+
+ if (!a->datagram && (size_t)outl > a->read_quota) {
+ outl = a->read_quota;
+ }
+ int ret = BIO_read(BIO_next(bio), out, outl);
+ if (ret <= 0) {
+ BIO_copy_next_retry(bio);
+ } else {
+ a->read_quota -= (a->datagram ? 1 : ret);
+ }
+ return ret;
+}
+
+static long AsyncCtrl(BIO *bio, int cmd, long num, void *ptr) {
+ if (BIO_next(bio) == NULL) {
+ return 0;
+ }
+ BIO_clear_retry_flags(bio);
+ int ret = BIO_ctrl(BIO_next(bio), cmd, num, ptr);
+ BIO_copy_next_retry(bio);
+ return ret;
+}
+
+static int AsyncNew(BIO *bio) {
+ AsyncBio *a = (AsyncBio *)OPENSSL_malloc(sizeof(*a));
+ if (a == NULL) {
+ return 0;
+ }
+ memset(a, 0, sizeof(*a));
+ a->enforce_write_quota = true;
+ BIO_set_init(bio, 1);
+ BIO_set_data(bio, a);
+ return 1;
+}
+
+static int AsyncFree(BIO *bio) {
+ if (bio == NULL) {
+ return 0;
+ }
+
+ OPENSSL_free(BIO_get_data(bio));
+ BIO_set_data(bio, NULL);
+ BIO_set_init(bio, 0);
+ return 1;
+}
+
+static long AsyncCallbackCtrl(BIO *bio, int cmd, BIO_info_cb fp)
+{
+ if (BIO_next(bio) == NULL)
+ return 0;
+ return BIO_callback_ctrl(BIO_next(bio), cmd, fp);
+}
+
+static BIO_METHOD *g_async_bio_method = NULL;
+
+static const BIO_METHOD *AsyncMethod(void)
+{
+ if (g_async_bio_method == NULL) {
+ g_async_bio_method = BIO_meth_new(BIO_TYPE_FILTER, "async bio");
+ if ( g_async_bio_method == NULL
+ || !BIO_meth_set_write(g_async_bio_method, AsyncWrite)
+ || !BIO_meth_set_read(g_async_bio_method, AsyncRead)
+ || !BIO_meth_set_ctrl(g_async_bio_method, AsyncCtrl)
+ || !BIO_meth_set_create(g_async_bio_method, AsyncNew)
+ || !BIO_meth_set_destroy(g_async_bio_method, AsyncFree)
+ || !BIO_meth_set_callback_ctrl(g_async_bio_method, AsyncCallbackCtrl))
+ return NULL;
+ }
+ return g_async_bio_method;
+}
+
+} // namespace
+
+bssl::UniquePtr<BIO> AsyncBioCreate() {
+ return bssl::UniquePtr<BIO>(BIO_new(AsyncMethod()));
+}
+
+bssl::UniquePtr<BIO> AsyncBioCreateDatagram() {
+ bssl::UniquePtr<BIO> ret(BIO_new(AsyncMethod()));
+ if (!ret) {
+ return nullptr;
+ }
+ GetData(ret.get())->datagram = true;
+ return ret;
+}
+
+void AsyncBioAllowRead(BIO *bio, size_t count) {
+ AsyncBio *a = GetData(bio);
+ if (a == NULL) {
+ return;
+ }
+ a->read_quota += count;
+}
+
+void AsyncBioAllowWrite(BIO *bio, size_t count) {
+ AsyncBio *a = GetData(bio);
+ if (a == NULL) {
+ return;
+ }
+ a->write_quota += count;
+}
+
+void AsyncBioEnforceWriteQuota(BIO *bio, bool enforce) {
+ AsyncBio *a = GetData(bio);
+ if (a == NULL) {
+ return;
+ }
+ a->enforce_write_quota = enforce;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/async_bio.h b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/async_bio.h
new file mode 100644
index 000000000..c09e236ae
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/async_bio.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#ifndef OSSL_TEST_SHIM_ASYNC_BIO_H
+#define OSSL_TEST_SHIM_ASYNC_BIO_H
+
+#include <openssl/base.h>
+#include <openssl/bio.h>
+
+
+// AsyncBioCreate creates a filter BIO for testing asynchronous state
+// machines which consume a stream socket. Reads and writes will fail
+// and return EAGAIN unless explicitly allowed. Each async BIO has a
+// read quota and a write quota. Initially both are zero. As each is
+// incremented, bytes are allowed to flow through the BIO.
+bssl::UniquePtr<BIO> AsyncBioCreate();
+
+// AsyncBioCreateDatagram creates a filter BIO for testing for
+// asynchronous state machines which consume datagram sockets. The read
+// and write quota count in packets rather than bytes.
+bssl::UniquePtr<BIO> AsyncBioCreateDatagram();
+
+// AsyncBioAllowRead increments |bio|'s read quota by |count|.
+void AsyncBioAllowRead(BIO *bio, size_t count);
+
+// AsyncBioAllowWrite increments |bio|'s write quota by |count|.
+void AsyncBioAllowWrite(BIO *bio, size_t count);
+
+// AsyncBioEnforceWriteQuota configures where |bio| enforces its write quota.
+void AsyncBioEnforceWriteQuota(BIO *bio, bool enforce);
+
+
+#endif // OSSL_TEST_SHIM_ASYNC_BIO_H
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/build.info b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/build.info
new file mode 100644
index 000000000..12250600b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/build.info
@@ -0,0 +1,6 @@
+IF[{- defined $target{CXX} && !$disabled{"external-tests"} -}]
+ PROGRAMS_NO_INST=ossl_shim
+ SOURCE[ossl_shim]=ossl_shim.cc async_bio.cc packeted_bio.cc test_config.cc
+ INCLUDE[ossl_shim]=. include ../../include
+ DEPEND[ossl_shim]=../../libssl ../../libcrypto
+ENDIF
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/include/openssl/base.h b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/include/openssl/base.h
new file mode 100644
index 000000000..a8d47b86a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/include/openssl/base.h
@@ -0,0 +1,111 @@
+/*
+ * Copyright 1998-2001 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#ifndef OSSL_TEST_SHIM_INCLUDE_OPENSSL_BASE_H
+#define OSSL_TEST_SHIM_INCLUDE_OPENSSL_BASE_H
+
+/* Needed for BORINGSSL_MAKE_DELETER */
+# include <openssl/bio.h>
+# include <openssl/evp.h>
+# include <openssl/dh.h>
+# include <openssl/x509.h>
+# include <openssl/ssl.h>
+
+# define OPENSSL_ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0]))
+
+extern "C++" {
+
+#include <memory>
+
+namespace bssl {
+
+namespace internal {
+
+template <typename T>
+struct DeleterImpl {};
+
+template <typename T>
+struct Deleter {
+ void operator()(T *ptr) {
+ // Rather than specialize Deleter for each type, we specialize
+ // DeleterImpl. This allows bssl::UniquePtr<T> to be used while only
+ // including base.h as long as the destructor is not emitted. This matches
+ // std::unique_ptr's behavior on forward-declared types.
+ //
+ // DeleterImpl itself is specialized in the corresponding module's header
+ // and must be included to release an object. If not included, the compiler
+ // will error that DeleterImpl<T> does not have a method Free.
+ DeleterImpl<T>::Free(ptr);
+ }
+};
+
+template <typename T, typename CleanupRet, void (*init)(T *),
+ CleanupRet (*cleanup)(T *)>
+class StackAllocated {
+ public:
+ StackAllocated() { init(&ctx_); }
+ ~StackAllocated() { cleanup(&ctx_); }
+
+ StackAllocated(const StackAllocated<T, CleanupRet, init, cleanup> &) = delete;
+ T& operator=(const StackAllocated<T, CleanupRet, init, cleanup> &) = delete;
+
+ T *get() { return &ctx_; }
+ const T *get() const { return &ctx_; }
+
+ void Reset() {
+ cleanup(&ctx_);
+ init(&ctx_);
+ }
+
+ private:
+ T ctx_;
+};
+
+} // namespace internal
+
+#define BORINGSSL_MAKE_DELETER(type, deleter) \
+ namespace internal { \
+ template <> \
+ struct DeleterImpl<type> { \
+ static void Free(type *ptr) { deleter(ptr); } \
+ }; \
+ }
+
+// This makes a unique_ptr to STACK_OF(type) that owns all elements on the
+// stack, i.e. it uses sk_pop_free() to clean up.
+#define BORINGSSL_MAKE_STACK_DELETER(type, deleter) \
+ namespace internal { \
+ template <> \
+ struct DeleterImpl<STACK_OF(type)> { \
+ static void Free(STACK_OF(type) *ptr) { \
+ sk_##type##_pop_free(ptr, deleter); \
+ } \
+ }; \
+ }
+
+// Holds ownership of heap-allocated BoringSSL structures. Sample usage:
+// bssl::UniquePtr<BIO> rsa(RSA_new());
+// bssl::UniquePtr<BIO> bio(BIO_new(BIO_s_mem()));
+template <typename T>
+using UniquePtr = std::unique_ptr<T, internal::Deleter<T>>;
+
+BORINGSSL_MAKE_DELETER(BIO, BIO_free)
+BORINGSSL_MAKE_DELETER(EVP_PKEY, EVP_PKEY_free)
+BORINGSSL_MAKE_DELETER(DH, DH_free)
+BORINGSSL_MAKE_DELETER(X509, X509_free)
+BORINGSSL_MAKE_DELETER(SSL, SSL_free)
+BORINGSSL_MAKE_DELETER(SSL_CTX, SSL_CTX_free)
+BORINGSSL_MAKE_DELETER(SSL_SESSION, SSL_SESSION_free)
+
+} // namespace bssl
+
+} /* extern C++ */
+
+
+#endif /* OSSL_TEST_SHIM_INCLUDE_OPENSSL_BASE_H */
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/ossl_config.json b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/ossl_config.json
new file mode 100644
index 000000000..1e5749906
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/ossl_config.json
@@ -0,0 +1,301 @@
+
+{
+ "DisabledTests" : {
+ "*TLS13*":"No TLS1.3 support yet",
+ "FragmentAlert-DTLS":"Test failure - reason unknown",
+ "FragmentedClientVersion":"Test failure - reason unknown",
+ "MTU":"Test failure - reason unknown",
+ "EmptyCertificateList":"Test failure - reason unknown",
+ "AppDataBeforeHandshake-DTLS":"Test failure - reason unknown",
+ "AlertAfterChangeCipherSpec":"Test failure - reason unknown",
+ "AppDataAfterChangeCipherSpec":"Test failure - reason unknown",
+ "AppDataAfterChangeCipherSpec-Empty":"Test failure - reason unknown",
+ "AppDataAfterChangeCipherSpec-DTLS":"Test failure - reason unknown",
+ "AppDataBeforeHandshake-DTLS-Empty":"Test failure - reason unknown",
+ "AlertAfterChangeCipherSpec-DTLS":"Test failure - reason unknown",
+ "FragmentMessageLengthMismatch-DTLS":"Test failure - reason unknown",
+ "SplitFragments-Header-DTLS":"Test failure - reason unknown",
+ "SplitFragments-Boundary-DTLS":"Test failure - reason unknown",
+ "SplitFragments-Body-DTLS":"Test failure - reason unknown",
+ "SendEmptyFragments-DTLS":"Test failure - reason unknown",
+ "SendInvalidRecordType-DTLS":"Test failure - reason unknown",
+ "SendInvalidRecordType":"Test failure - reason unknown",
+ "FragmentMessageTypeMismatch-DTLS":"Test failure - reason unknown",
+ "SendWarningAlerts-Pass":"Test failure - reason unknown",
+ "SendWarningAlerts-DTLS-Pass":"Test failure - reason unknown",
+ "TooManyKeyUpdates":"Test failure - reason unknown",
+ "Unclean-Shutdown-Alert":"Test failure - reason unknown",
+ "V2ClientHello-WarningAlertPrefix":"Test failure - reason unknown",
+ "BadHelloRequest-2":"Test failure - reason unknown",
+ "DTLS-SendExtraFinished":"Test failure - reason unknown",
+ "NoNullCompression-TLS12":"Test failure - reason unknown",
+ "KeyUpdate-Client":"Test failure - reason unknown",
+ "KeyUpdate-InvalidRequestMode":"Test failure - reason unknown",
+ "DTLS-SendExtraFinished-Reordered":"Test failure - reason unknown",
+ "LargeMessage-Reject-DTLS":"Test failure - reason unknown",
+ "KeyUpdate-Server":"Test failure - reason unknown",
+ "SSL3-ECDHE-PSK-AES128-CBC-SHA-server":"Test failure - reason unknown",
+ "SSL3-ECDHE-PSK-AES256-CBC-SHA-server":"Test failure - reason unknown",
+ "DTLS1-NULL-SHA-server":"Test failure - reason unknown",
+ "DTLS1-NULL-SHA-client":"Test failure - reason unknown",
+ "DTLS12-NULL-SHA-client":"Test failure - reason unknown",
+ "DTLS12-NULL-SHA-server":"Test failure - reason unknown",
+ "BadECDSA-1-4":"Test failure - reason unknown",
+ "BadECDSA-3-4":"Test failure - reason unknown",
+ "BadECDSA-4-1":"Test failure - reason unknown",
+ "BadECDSA-4-4":"Test failure - reason unknown",
+ "BadECDSA-4-3":"Test failure - reason unknown",
+ "SillyDH":"Test failure - reason unknown",
+ "VersionNegotiationExtension-TLS1-DTLS":"Test failure - reason unknown",
+ "NoSupportedVersions-DTLS":"Test failure - reason unknown",
+ "VersionTooLow-DTLS":"Test failure - reason unknown",
+ "IgnoreClientVersionOrder":"Test failure - reason unknown",
+ "VersionTooLow":"Test failure - reason unknown",
+ "MinimumVersion-Server-TLS1-SSL3":"Test failure - reason unknown",
+ "MinimumVersion-Server2-TLS1-SSL3":"Test failure - reason unknown",
+ "MinimumVersion-Client2-TLS1-SSL3":"Test failure - reason unknown",
+ "MinimumVersion-Server2-TLS11-SSL3":"Test failure - reason unknown",
+ "MinimumVersion-Server-TLS11-SSL3":"Test failure - reason unknown",
+ "MinimumVersion-Client2-TLS11-SSL3":"Test failure - reason unknown",
+ "MinimumVersion-Client2-TLS11-TLS1":"Test failure - reason unknown",
+ "MinimumVersion-Server2-TLS12-SSL3":"Test failure - reason unknown",
+ "MinimumVersion-Server-TLS12-SSL3":"Test failure - reason unknown",
+ "MinimumVersion-Client2-TLS12-TLS1":"Test failure - reason unknown",
+ "MinimumVersion-Client2-TLS12-SSL3":"Test failure - reason unknown",
+ "MinimumVersion-Client2-TLS12-TLS1-DTLS":"Test failure - reason unknown",
+ "MinimumVersion-Client2-TLS12-TLS11":"Test failure - reason unknown",
+ "DuplicateExtensionClient-TLS1":"Test failure - reason unknown",
+ "DuplicateExtensionServer-TLS1":"Test failure - reason unknown",
+ "ALPNClient-Mismatch-TLS1":"Test failure - reason unknown",
+ "UnsolicitedServerNameAck-TLS1":"Test failure - reason unknown",
+ "ALPNServer-Decline-TLS1":"Test failure - reason unknown",
+ "ALPNClient-EmptyProtocolName-TLS1":"Test failure - reason unknown",
+ "NegotiateALPNAndNPN-Swapped-TLS1":"Test failure - reason unknown",
+ "NegotiateALPNAndNPN-TLS1":"Test failure - reason unknown",
+ "TicketSessionIDLength-33-TLS1":"Test failure - reason unknown",
+ "DuplicateExtensionClient-TLS11":"Test failure - reason unknown",
+ "DuplicateExtensionServer-TLS11":"Test failure - reason unknown",
+ "UnsolicitedServerNameAck-TLS11":"Test failure - reason unknown",
+ "ALPNServer-Decline-TLS11":"Test failure - reason unknown",
+ "ALPNClient-Mismatch-TLS11":"Test failure - reason unknown",
+ "ALPNClient-EmptyProtocolName-TLS11":"Test failure - reason unknown",
+ "NegotiateALPNAndNPN-TLS11":"Test failure - reason unknown",
+ "NegotiateALPNAndNPN-Swapped-TLS11":"Test failure - reason unknown",
+ "TicketSessionIDLength-33-TLS11":"Test failure - reason unknown",
+ "DuplicateExtensionServer-TLS12":"Test failure - reason unknown",
+ "DuplicateExtensionClient-TLS12":"Test failure - reason unknown",
+ "UnsolicitedServerNameAck-TLS12":"Test failure - reason unknown",
+ "ALPNServer-Decline-TLS12":"Test failure - reason unknown",
+ "ALPNClient-Mismatch-TLS12":"Test failure - reason unknown",
+ "ALPNClient-EmptyProtocolName-TLS12":"Test failure - reason unknown",
+ "NegotiateALPNAndNPN-TLS12":"Test failure - reason unknown",
+ "NegotiateALPNAndNPN-Swapped-TLS12":"Test failure - reason unknown",
+ "TicketSessionIDLength-33-TLS12":"Test failure - reason unknown",
+ "ClientHelloPadding":"Test failure - reason unknown",
+ "Resume-Server-UnofferedCipher":"Test failure - reason unknown",
+ "Resume-Client-CipherMismatch":"Test failure - reason unknown",
+ "Resume-Server-ExtraIdentityNoBinder":"Test failure - reason unknown",
+ "Resume-Server-BinderWrongLength":"Test failure - reason unknown",
+ "Resume-Server-ExtraPSKBinder":"Test failure - reason unknown",
+ "Resume-Server-NoPSKBinder":"Test failure - reason unknown",
+ "Resume-Server-PSKBinderFirstExtension":"Test failure - reason unknown",
+ "Resume-Server-InvalidPSKBinder":"Test failure - reason unknown",
+ "ExtendedMasterSecret-NoToYes-Client":"Test failure - reason unknown",
+ "Renegotiate-Server-Forbidden":"Test failure - reason unknown",
+ "ExtendedMasterSecret-Renego-NoEMS":"Test failure - reason unknown",
+ "Renegotiate-Client-SwitchVersion":"Test failure - reason unknown",
+ "Renegotiate-Client-Upgrade":"Test failure - reason unknown",
+ "Renegotiate-SameClientVersion":"Test failure - reason unknown",
+ "Renegotiate-Client-Downgrade":"Test failure - reason unknown",
+ "Renegotiate-Client-SwitchCiphers2":"Test failure - reason unknown",
+ "Renegotiate-Client-SwitchCiphers":"Test failure - reason unknown",
+ "Renegotiate-Client-Forbidden-1":"Test failure - reason unknown",
+ "StrayHelloRequest":"Test failure - reason unknown",
+ "Renegotiate-Client-Freely-2":"Test failure - reason unknown",
+ "Renegotiate-Client-NoIgnore":"Test failure - reason unknown",
+ "StrayHelloRequest-Packed":"Test failure - reason unknown",
+ "Renegotiate-Client-Freely-1":"Test failure - reason unknown",
+ "Renegotiation-CertificateChange":"Test failure - reason unknown",
+ "Renegotiation-CertificateChange-2":"Test failure - reason unknown",
+ "Renegotiate-Client-SSL3":"Test failure - reason unknown",
+ "ClientAuth-SHA1-Fallback-ECDSA":"Test failure - reason unknown",
+ "ClientAuth-SHA1-Fallback-RSA":"Test failure - reason unknown",
+ "P224-Server":"Test failure - reason unknown",
+ "RSA-PSS-Large":"Test failure - reason unknown",
+ "DTLS-Retransmit-Client-1":"Test failure - reason unknown",
+ "DTLS-Retransmit-Client-2":"Test failure - reason unknown",
+ "DTLS-Retransmit-Server-1":"Test failure - reason unknown",
+ "DTLS-Retransmit-Server-2":"Test failure - reason unknown",
+ "DTLS-Retransmit-Client-3":"Test failure - reason unknown",
+ "DTLS-Retransmit-Server-3":"Test failure - reason unknown",
+ "DTLS-Retransmit-Client-4":"Test failure - reason unknown",
+ "Renegotiate-Client-Packed":"Test failure - reason unknown",
+ "DTLS-Retransmit-Server-4":"Test failure - reason unknown",
+ "DTLS-Retransmit-Client-5":"Test failure - reason unknown",
+ "DTLS-Retransmit-Server-6":"Test failure - reason unknown",
+ "DTLS-Retransmit-Client-6":"Test failure - reason unknown",
+ "DTLS-Retransmit-Server-5":"Test failure - reason unknown",
+ "DTLS-Retransmit-Client-7":"Test failure - reason unknown",
+ "DTLS-Retransmit-Server-7":"Test failure - reason unknown",
+ "DTLS-Retransmit-Client-8":"Test failure - reason unknown",
+ "DTLS-Retransmit-Client-9":"Test failure - reason unknown",
+ "DTLS-Retransmit-Server-8":"Test failure - reason unknown",
+ "DTLS-Retransmit-Server-9":"Test failure - reason unknown",
+ "DTLS-Retransmit-Client-10":"Test failure - reason unknown",
+ "DTLS-Retransmit-Client-11":"Test failure - reason unknown",
+ "DTLS-Retransmit-Server-10":"Test failure - reason unknown",
+ "DTLS-Retransmit-Server-11":"Test failure - reason unknown",
+ "CustomExtensions-ParseError-Server":"Test failure - reason unknown",
+ "CustomExtensions-FailAdd-Server":"Test failure - reason unknown",
+ "CustomExtensions-FailAdd-Client":"Test failure - reason unknown",
+ "CustomExtensions-ParseError-Client":"Test failure - reason unknown",
+ "UnknownExtension-Client":"Test failure - reason unknown",
+ "UnofferedExtension-Client":"Test failure - reason unknown",
+ "PointFormat-Client-MissingUncompressed":"Test failure - reason unknown",
+ "PointFormat-Server-MissingUncompressed":"Test failure - reason unknown",
+ "Basic-Client-RenewTicket-Sync":"Test failure - reason unknown",
+ "Renegotiate-Client-Sync":"Test failure - reason unknown",
+ "Shutdown-Shim-Sync":"Test failure - reason unknown",
+ "Basic-Client-RenewTicket-Sync-SplitHandshakeRecords":"Test failure - reason unknown",
+ "Renegotiate-Client-Sync-SplitHandshakeRecords":"Test failure - reason unknown",
+ "Shutdown-Shim-Sync-SplitHandshakeRecords":"Test failure - reason unknown",
+ "Basic-Client-RenewTicket-Sync-PackHandshakeFlight":"Test failure - reason unknown",
+ "Renegotiate-Client-Sync-PackHandshakeFlight":"Test failure - reason unknown",
+ "Shutdown-Shim-Sync-PackHandshakeFlight":"Test failure - reason unknown",
+ "Basic-Client-RenewTicket-DTLS-Sync":"Test failure - reason unknown",
+ "Basic-Client-RenewTicket-DTLS-Sync-SplitHandshakeRecords":"Test failure - reason unknown",
+ "Basic-Server-Implicit-DTLS-Sync-SplitHandshakeRecords":"Test failure - reason unknown",
+ "ClientAuth-NoCertificate-Server-DTLS-Sync-SplitHandshakeRecords":"Test failure - reason unknown",
+ "ClientAuth-ECDSA-Client-DTLS-Sync-SplitHandshakeRecords":"Test failure - reason unknown",
+ "Basic-Server-RSA-DTLS-Sync-SplitHandshakeRecords":"Test failure - reason unknown",
+ "Basic-Server-ECDHE-RSA-DTLS-Sync-SplitHandshakeRecords":"Test failure - reason unknown",
+ "Basic-Server-ECDHE-ECDSA-DTLS-Sync-SplitHandshakeRecords":"Test failure - reason unknown",
+ "Basic-Client-RenewTicket-Async":"Test failure - reason unknown",
+ "Shutdown-Shim-Async":"Test failure - reason unknown",
+ "Basic-Client-RenewTicket-Async-SplitHandshakeRecords":"Test failure - reason unknown",
+ "Shutdown-Shim-Async-SplitHandshakeRecords":"Test failure - reason unknown",
+ "Basic-Client-RenewTicket-Async-PackHandshakeFlight":"Test failure - reason unknown",
+ "Shutdown-Shim-Async-PackHandshakeFlight":"Test failure - reason unknown",
+ "Basic-Client-RenewTicket-DTLS-Async":"Test failure - reason unknown",
+ "Basic-Client-RenewTicket-DTLS-Async-SplitHandshakeRecords":"Test failure - reason unknown",
+ "Basic-Server-Implicit-DTLS-Async-SplitHandshakeRecords":"Test failure - reason unknown",
+ "ClientAuth-NoCertificate-Server-DTLS-Async-SplitHandshakeRecords":"Test failure - reason unknown",
+ "ClientAuth-ECDSA-Client-DTLS-Async-SplitHandshakeRecords":"Test failure - reason unknown",
+ "Basic-Server-RSA-DTLS-Async-SplitHandshakeRecords":"Test failure - reason unknown",
+ "Basic-Server-ECDHE-RSA-DTLS-Async-SplitHandshakeRecords":"Test failure - reason unknown",
+ "Basic-Server-ECDHE-ECDSA-DTLS-Async-SplitHandshakeRecords":"Test failure - reason unknown",
+ "SendUnencryptedFinished-DTLS":"Test failure - reason unknown",
+ "PartialEncryptedExtensionsWithServerHello":"Test failure - reason unknown",
+ "StrayChangeCipherSpec":"Test failure - reason unknown",
+ "PartialClientFinishedWithClientHello":"Test failure - reason unknown",
+ "TrailingMessageData-ClientHello":"Test failure - reason unknown",
+ "TrailingMessageData-ServerHello":"Test failure - reason unknown",
+ "TrailingMessageData-ServerCertificate":"Test failure - reason unknown",
+ "TrailingMessageData-ServerKeyExchange":"Test failure - reason unknown",
+ "TrailingMessageData-CertificateRequest":"Test failure - reason unknown",
+ "TrailingMessageData-ServerHelloDone":"Test failure - reason unknown",
+ "TrailingMessageData-ClientKeyExchange":"Test failure - reason unknown",
+ "TrailingMessageData-ClientCertificate":"Test failure - reason unknown",
+ "TrailingMessageData-CertificateVerify":"Test failure - reason unknown",
+ "TrailingMessageData-NextProtocol":"Test failure - reason unknown",
+ "TrailingMessageData-NewSessionTicket":"Test failure - reason unknown",
+ "TrailingMessageData-ClientFinished":"Test failure - reason unknown",
+ "TrailingMessageData-ServerFinished":"Test failure - reason unknown",
+ "TrailingMessageData-HelloVerifyRequest-DTLS":"Test failure - reason unknown",
+ "TrailingMessageData-ServerHello-DTLS":"Test failure - reason unknown",
+ "TrailingMessageData-ServerCertificate-DTLS":"Test failure - reason unknown",
+ "TrailingMessageData-ServerKeyExchange-DTLS":"Test failure - reason unknown",
+ "TrailingMessageData-CertificateRequest-DTLS":"Test failure - reason unknown",
+ "TrailingMessageData-ServerHelloDone-DTLS":"Test failure - reason unknown",
+ "TrailingMessageData-ClientCertificate-DTLS":"Test failure - reason unknown",
+ "TrailingMessageData-CertificateVerify-DTLS":"Test failure - reason unknown",
+ "TrailingMessageData-ClientKeyExchange-DTLS":"Test failure - reason unknown",
+ "TrailingMessageData-ClientFinished-DTLS":"Test failure - reason unknown",
+ "TrailingMessageData-NewSessionTicket-DTLS":"Test failure - reason unknown",
+ "TrailingMessageData-ServerFinished-DTLS":"Test failure - reason unknown",
+ "MissingKeyShare-Client":"Test failure - reason unknown",
+ "MissingKeyShare-Server":"Test failure - reason unknown",
+ "DuplicateKeyShares":"Test failure - reason unknown",
+ "SkipEarlyData":"Test failure - reason unknown",
+ "SkipEarlyData-OmitEarlyDataExtension":"Test failure - reason unknown",
+ "SkipEarlyData-TooMuchData":"Test failure - reason unknown",
+ "SkipEarlyData-Interleaved":"Test failure - reason unknown",
+ "SkipEarlyData-HRR":"Test failure - reason unknown",
+ "SkipEarlyData-HRR-Interleaved":"Test failure - reason unknown",
+ "SkipEarlyData-HRR-TooMuchData":"Test failure - reason unknown",
+ "SkipEarlyData-HRR-FatalAlert":"Test failure - reason unknown",
+ "SkipEarlyData-EarlyDataInTLS12":"Test failure - reason unknown",
+ "SkipEarlyData-SecondClientHelloEarlyData":"Test failure - reason unknown",
+ "EmptyEncryptedExtensions":"Test failure - reason unknown",
+ "EncryptedExtensionsWithKeyShare":"Test failure - reason unknown",
+ "UnknownCurve-HelloRetryRequest":"Test failure - reason unknown",
+ "UnnecessaryHelloRetryRequest":"Test failure - reason unknown",
+ "HelloRetryRequest-Empty":"Test failure - reason unknown",
+ "SecondHelloRetryRequest":"Test failure - reason unknown",
+ "HelloRetryRequest-DuplicateCurve":"Test failure - reason unknown",
+ "HelloRetryRequest-DuplicateCookie":"Test failure - reason unknown",
+ "HelloRetryRequest-EmptyCookie":"Test failure - reason unknown",
+ "HelloRetryRequest-Unknown":"Test failure - reason unknown",
+ "SecondClientHelloMissingKeyShare":"Test failure - reason unknown",
+ "SecondClientHelloWrongCurve":"Test failure - reason unknown",
+ "HelloRetryRequestVersionMismatch":"Test failure - reason unknown",
+ "HelloRetryRequestCurveMismatch":"Test failure - reason unknown",
+ "SkipHelloRetryRequest":"Test failure - reason unknown",
+ "Peek-Renegotiate":"Test failure - reason unknown",
+ "Peek-KeyUpdate":"Test failure - reason unknown",
+ "DTLS-Retransmit-Client-12":"Test failure - reason unknown",
+ "DTLS-Retransmit-Timeout":"Test failure - reason unknown",
+ "DTLS-Retransmit-Server-12":"Test failure - reason unknown",
+ "DTLS-Retransmit-Fudge":"Test failure - reason unknown",
+ "DTLS-Retransmit-Fragmented":"Test failure - reason unknown",
+ "TrailingMessageData-ClientHello-DTLS":"Test failure - reason unknown",
+ "SendFallbackSCSV":"Current runner version uses old draft TLSv1.3",
+ "VersionNegotiationExtension-TLS11":"Current runner version uses old draft TLSv1.3",
+ "VersionNegotiationExtension-TLS1":"Current runner version uses old draft TLSv1.3",
+ "VersionNegotiationExtension-SSL3":"Current runner version uses old draft TLSv1.3",
+ "ConflictingVersionNegotiation":"Current runner version uses old draft TLSv1.3"
+ },
+ "ErrorMap" : {
+ ":UNEXPECTED_MESSAGE:":"unexpected message",
+ ":INAPPROPRIATE_FALLBACK:":"inappropriate fallback",
+ ":UNEXPECTED_RECORD:":"unexpected message",
+ ":TLSV1_ALERT_RECORD_OVERFLOW:":"tlsv1 alert record overflow",
+ ":WRONG_SSL_VERSION:":"no protocols available",
+ ":BAD_ALERT:":"invalid alert",
+ ":HTTP_REQUEST:":"http request",
+ ":HTTPS_PROXY_REQUEST:":"https proxy request",
+ ":WRONG_CERTIFICATE_TYPE:":"wrong certificate type",
+ ":WRONG_VERSION_NUMBER:":"wrong version number",
+ ":DECRYPTION_FAILED_OR_BAD_RECORD_MAC:":"decryption failed or bad record mac",
+ ":DIGEST_CHECK_FAILED:":"digest check failed",
+ ":TOO_MANY_EMPTY_FRAGMENTS:":"record too small",
+ ":TOO_MANY_WARNING_ALERTS:":"too many warn alerts",
+ ":DATA_LENGTH_TOO_LONG:":"data length too long",
+ ":EXCESSIVE_MESSAGE_SIZE:":"excessive message size",
+ ":ENCRYPTED_LENGTH_TOO_LONG:":"packet length too long",
+ ":INVALID_COMPRESSION_LIST:":"no compression specified",
+ ":NO_SHARED_CIPHER:":"no shared cipher",
+ ":WRONG_CIPHER_RETURNED:":"wrong cipher returned",
+ ":HANDSHAKE_FAILURE_ON_CLIENT_HELLO:":"sslv3 alert handshake failure",
+ ":UNKNOWN_CIPHER_RETURNED:":"unknown cipher returned",
+ ":BAD_SIGNATURE:":"bad signature",
+ ":BAD_DH_P_LENGTH:":"dh key too small",
+ ":PEER_DID_NOT_RETURN_A_CERTIFICATE:":"peer did not return a certificate",
+ ":UNSUPPORTED_PROTOCOL:":"unsupported protocol",
+ ":PARSE_TLSEXT:":"bad extension",
+ ":BAD_SRTP_PROTECTION_PROFILE_LIST:":"bad srtp protection profile list",
+ ":OLD_SESSION_VERSION_NOT_RETURNED:":"ssl session version mismatch",
+ ":RESUMED_EMS_SESSION_WITHOUT_EMS_EXTENSION:":"inconsistent extms",
+ ":RENEGOTIATION_EMS_MISMATCH:":"inconsistent extms",
+ ":RENEGOTIATION_MISMATCH:":"renegotiation mismatch",
+ ":WRONG_SIGNATURE_TYPE:":"wrong signature type",
+ ":BAD_ECC_CERT:":"wrong curve",
+ ":WRONG_CURVE:":"wrong curve",
+ ":INVALID_ENCODING:":"invalid encoding",
+ ":CERTIFICATE_VERIFY_FAILED:":"certificate verify failed",
+ ":BAD_CHANGE_CIPHER_SPEC:":"bad change cipher spec",
+ ":ECC_CERT_NOT_FOR_SIGNING:":"ecc cert not for signing",
+ ":OLD_SESSION_CIPHER_NOT_RETURNED:":"old session cipher not returned",
+ ":RESUMED_NON_EMS_SESSION_WITH_EMS_EXTENSION:":"inconsistent extms"
+ }
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/ossl_shim.cc b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/ossl_shim.cc
new file mode 100644
index 000000000..90d1f1ef4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/ossl_shim.cc
@@ -0,0 +1,1300 @@
+/*
+ * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#if !defined(__STDC_FORMAT_MACROS)
+#define __STDC_FORMAT_MACROS
+#endif
+
+#include "packeted_bio.h"
+#include <openssl/e_os2.h>
+
+#if !defined(OPENSSL_SYS_WINDOWS)
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#include <netinet/tcp.h>
+#include <signal.h>
+#include <sys/socket.h>
+#include <sys/time.h>
+#include <unistd.h>
+#else
+#include <io.h>
+OPENSSL_MSVC_PRAGMA(warning(push, 3))
+#include <winsock2.h>
+#include <ws2tcpip.h>
+OPENSSL_MSVC_PRAGMA(warning(pop))
+
+OPENSSL_MSVC_PRAGMA(comment(lib, "Ws2_32.lib"))
+#endif
+
+#include <assert.h>
+#include <inttypes.h>
+#include <string.h>
+
+#include <openssl/bio.h>
+#include <openssl/buffer.h>
+#include <openssl/bn.h>
+#include <openssl/crypto.h>
+#include <openssl/dh.h>
+#include <openssl/err.h>
+#include <openssl/evp.h>
+#include <openssl/hmac.h>
+#include <openssl/objects.h>
+#include <openssl/rand.h>
+#include <openssl/ssl.h>
+#include <openssl/x509.h>
+
+#include <memory>
+#include <string>
+#include <vector>
+
+#include "async_bio.h"
+#include "test_config.h"
+
+namespace bssl {
+
+#if !defined(OPENSSL_SYS_WINDOWS)
+static int closesocket(int sock) {
+ return close(sock);
+}
+
+static void PrintSocketError(const char *func) {
+ perror(func);
+}
+#else
+static void PrintSocketError(const char *func) {
+ fprintf(stderr, "%s: %d\n", func, WSAGetLastError());
+}
+#endif
+
+static int Usage(const char *program) {
+ fprintf(stderr, "Usage: %s [flags...]\n", program);
+ return 1;
+}
+
+struct TestState {
+ // async_bio is async BIO which pauses reads and writes.
+ BIO *async_bio = nullptr;
+ // packeted_bio is the packeted BIO which simulates read timeouts.
+ BIO *packeted_bio = nullptr;
+ bool cert_ready = false;
+ bool handshake_done = false;
+ // private_key is the underlying private key used when testing custom keys.
+ bssl::UniquePtr<EVP_PKEY> private_key;
+ bool got_new_session = false;
+ bssl::UniquePtr<SSL_SESSION> new_session;
+ bool ticket_decrypt_done = false;
+ bool alpn_select_done = false;
+};
+
+static void TestStateExFree(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
+ int index, long argl, void *argp) {
+ delete ((TestState *)ptr);
+}
+
+static int g_config_index = 0;
+static int g_state_index = 0;
+
+static bool SetTestConfig(SSL *ssl, const TestConfig *config) {
+ return SSL_set_ex_data(ssl, g_config_index, (void *)config) == 1;
+}
+
+static const TestConfig *GetTestConfig(const SSL *ssl) {
+ return (const TestConfig *)SSL_get_ex_data(ssl, g_config_index);
+}
+
+static bool SetTestState(SSL *ssl, std::unique_ptr<TestState> state) {
+ // |SSL_set_ex_data| takes ownership of |state| only on success.
+ if (SSL_set_ex_data(ssl, g_state_index, state.get()) == 1) {
+ state.release();
+ return true;
+ }
+ return false;
+}
+
+static TestState *GetTestState(const SSL *ssl) {
+ return (TestState *)SSL_get_ex_data(ssl, g_state_index);
+}
+
+static bssl::UniquePtr<X509> LoadCertificate(const std::string &file) {
+ bssl::UniquePtr<BIO> bio(BIO_new(BIO_s_file()));
+ if (!bio || !BIO_read_filename(bio.get(), file.c_str())) {
+ return nullptr;
+ }
+ return bssl::UniquePtr<X509>(PEM_read_bio_X509(bio.get(), NULL, NULL, NULL));
+}
+
+static bssl::UniquePtr<EVP_PKEY> LoadPrivateKey(const std::string &file) {
+ bssl::UniquePtr<BIO> bio(BIO_new(BIO_s_file()));
+ if (!bio || !BIO_read_filename(bio.get(), file.c_str())) {
+ return nullptr;
+ }
+ return bssl::UniquePtr<EVP_PKEY>(
+ PEM_read_bio_PrivateKey(bio.get(), NULL, NULL, NULL));
+}
+
+template<typename T>
+struct Free {
+ void operator()(T *buf) {
+ free(buf);
+ }
+};
+
+static bool GetCertificate(SSL *ssl, bssl::UniquePtr<X509> *out_x509,
+ bssl::UniquePtr<EVP_PKEY> *out_pkey) {
+ const TestConfig *config = GetTestConfig(ssl);
+
+ if (!config->key_file.empty()) {
+ *out_pkey = LoadPrivateKey(config->key_file.c_str());
+ if (!*out_pkey) {
+ return false;
+ }
+ }
+ if (!config->cert_file.empty()) {
+ *out_x509 = LoadCertificate(config->cert_file.c_str());
+ if (!*out_x509) {
+ return false;
+ }
+ }
+ return true;
+}
+
+static bool InstallCertificate(SSL *ssl) {
+ bssl::UniquePtr<X509> x509;
+ bssl::UniquePtr<EVP_PKEY> pkey;
+ if (!GetCertificate(ssl, &x509, &pkey)) {
+ return false;
+ }
+
+ if (pkey && !SSL_use_PrivateKey(ssl, pkey.get())) {
+ return false;
+ }
+
+ if (x509 && !SSL_use_certificate(ssl, x509.get())) {
+ return false;
+ }
+
+ return true;
+}
+
+static int ClientCertCallback(SSL *ssl, X509 **out_x509, EVP_PKEY **out_pkey) {
+ if (GetTestConfig(ssl)->async && !GetTestState(ssl)->cert_ready) {
+ return -1;
+ }
+
+ bssl::UniquePtr<X509> x509;
+ bssl::UniquePtr<EVP_PKEY> pkey;
+ if (!GetCertificate(ssl, &x509, &pkey)) {
+ return -1;
+ }
+
+ // Return zero for no certificate.
+ if (!x509) {
+ return 0;
+ }
+
+ // Asynchronous private keys are not supported with client_cert_cb.
+ *out_x509 = x509.release();
+ *out_pkey = pkey.release();
+ return 1;
+}
+
+static int VerifySucceed(X509_STORE_CTX *store_ctx, void *arg) {
+ return 1;
+}
+
+static int VerifyFail(X509_STORE_CTX *store_ctx, void *arg) {
+ X509_STORE_CTX_set_error(store_ctx, X509_V_ERR_APPLICATION_VERIFICATION);
+ return 0;
+}
+
+static int NextProtosAdvertisedCallback(SSL *ssl, const uint8_t **out,
+ unsigned int *out_len, void *arg) {
+ const TestConfig *config = GetTestConfig(ssl);
+ if (config->advertise_npn.empty()) {
+ return SSL_TLSEXT_ERR_NOACK;
+ }
+
+ *out = (const uint8_t*)config->advertise_npn.data();
+ *out_len = config->advertise_npn.size();
+ return SSL_TLSEXT_ERR_OK;
+}
+
+static int NextProtoSelectCallback(SSL* ssl, uint8_t** out, uint8_t* outlen,
+ const uint8_t* in, unsigned inlen, void* arg) {
+ const TestConfig *config = GetTestConfig(ssl);
+ if (config->select_next_proto.empty()) {
+ return SSL_TLSEXT_ERR_NOACK;
+ }
+
+ *out = (uint8_t*)config->select_next_proto.data();
+ *outlen = config->select_next_proto.size();
+ return SSL_TLSEXT_ERR_OK;
+}
+
+static int AlpnSelectCallback(SSL* ssl, const uint8_t** out, uint8_t* outlen,
+ const uint8_t* in, unsigned inlen, void* arg) {
+ if (GetTestState(ssl)->alpn_select_done) {
+ fprintf(stderr, "AlpnSelectCallback called after completion.\n");
+ exit(1);
+ }
+
+ GetTestState(ssl)->alpn_select_done = true;
+
+ const TestConfig *config = GetTestConfig(ssl);
+ if (config->decline_alpn) {
+ return SSL_TLSEXT_ERR_NOACK;
+ }
+
+ if (!config->expected_advertised_alpn.empty() &&
+ (config->expected_advertised_alpn.size() != inlen ||
+ memcmp(config->expected_advertised_alpn.data(),
+ in, inlen) != 0)) {
+ fprintf(stderr, "bad ALPN select callback inputs\n");
+ exit(1);
+ }
+
+ *out = (const uint8_t*)config->select_alpn.data();
+ *outlen = config->select_alpn.size();
+ return SSL_TLSEXT_ERR_OK;
+}
+
+static unsigned PskClientCallback(SSL *ssl, const char *hint,
+ char *out_identity,
+ unsigned max_identity_len,
+ uint8_t *out_psk, unsigned max_psk_len) {
+ const TestConfig *config = GetTestConfig(ssl);
+
+ if (config->psk_identity.empty()) {
+ if (hint != nullptr) {
+ fprintf(stderr, "Server PSK hint was non-null.\n");
+ return 0;
+ }
+ } else if (hint == nullptr ||
+ strcmp(hint, config->psk_identity.c_str()) != 0) {
+ fprintf(stderr, "Server PSK hint did not match.\n");
+ return 0;
+ }
+
+ // Account for the trailing '\0' for the identity.
+ if (config->psk_identity.size() >= max_identity_len ||
+ config->psk.size() > max_psk_len) {
+ fprintf(stderr, "PSK buffers too small\n");
+ return 0;
+ }
+
+ BUF_strlcpy(out_identity, config->psk_identity.c_str(),
+ max_identity_len);
+ memcpy(out_psk, config->psk.data(), config->psk.size());
+ return config->psk.size();
+}
+
+static unsigned PskServerCallback(SSL *ssl, const char *identity,
+ uint8_t *out_psk, unsigned max_psk_len) {
+ const TestConfig *config = GetTestConfig(ssl);
+
+ if (strcmp(identity, config->psk_identity.c_str()) != 0) {
+ fprintf(stderr, "Client PSK identity did not match.\n");
+ return 0;
+ }
+
+ if (config->psk.size() > max_psk_len) {
+ fprintf(stderr, "PSK buffers too small\n");
+ return 0;
+ }
+
+ memcpy(out_psk, config->psk.data(), config->psk.size());
+ return config->psk.size();
+}
+
+static int CertCallback(SSL *ssl, void *arg) {
+ const TestConfig *config = GetTestConfig(ssl);
+
+ // Check the CertificateRequest metadata is as expected.
+ //
+ // TODO(davidben): Test |SSL_get_client_CA_list|.
+ if (!SSL_is_server(ssl) &&
+ !config->expected_certificate_types.empty()) {
+ const uint8_t *certificate_types;
+ size_t certificate_types_len =
+ SSL_get0_certificate_types(ssl, &certificate_types);
+ if (certificate_types_len != config->expected_certificate_types.size() ||
+ memcmp(certificate_types,
+ config->expected_certificate_types.data(),
+ certificate_types_len) != 0) {
+ fprintf(stderr, "certificate types mismatch\n");
+ return 0;
+ }
+ }
+
+ // The certificate will be installed via other means.
+ if (!config->async ||
+ config->use_old_client_cert_callback) {
+ return 1;
+ }
+
+ if (!GetTestState(ssl)->cert_ready) {
+ return -1;
+ }
+ if (!InstallCertificate(ssl)) {
+ return 0;
+ }
+ return 1;
+}
+
+static void InfoCallback(const SSL *ssl, int type, int val) {
+ if (type == SSL_CB_HANDSHAKE_DONE) {
+ if (GetTestConfig(ssl)->handshake_never_done) {
+ fprintf(stderr, "Handshake unexpectedly completed.\n");
+ // Abort before any expected error code is printed, to ensure the overall
+ // test fails.
+ abort();
+ }
+ GetTestState(ssl)->handshake_done = true;
+
+ // Callbacks may be called again on a new handshake.
+ GetTestState(ssl)->ticket_decrypt_done = false;
+ GetTestState(ssl)->alpn_select_done = false;
+ }
+}
+
+static int NewSessionCallback(SSL *ssl, SSL_SESSION *session) {
+ GetTestState(ssl)->got_new_session = true;
+ GetTestState(ssl)->new_session.reset(session);
+ return 1;
+}
+
+static int TicketKeyCallback(SSL *ssl, uint8_t *key_name, uint8_t *iv,
+ EVP_CIPHER_CTX *ctx, HMAC_CTX *hmac_ctx,
+ int encrypt) {
+ if (!encrypt) {
+ if (GetTestState(ssl)->ticket_decrypt_done) {
+ fprintf(stderr, "TicketKeyCallback called after completion.\n");
+ return -1;
+ }
+
+ GetTestState(ssl)->ticket_decrypt_done = true;
+ }
+
+ // This is just test code, so use the all-zeros key.
+ static const uint8_t kZeros[16] = {0};
+
+ if (encrypt) {
+ memcpy(key_name, kZeros, sizeof(kZeros));
+ RAND_bytes(iv, 16);
+ } else if (memcmp(key_name, kZeros, 16) != 0) {
+ return 0;
+ }
+
+ if (!HMAC_Init_ex(hmac_ctx, kZeros, sizeof(kZeros), EVP_sha256(), NULL) ||
+ !EVP_CipherInit_ex(ctx, EVP_aes_128_cbc(), NULL, kZeros, iv, encrypt)) {
+ return -1;
+ }
+
+ if (!encrypt) {
+ return GetTestConfig(ssl)->renew_ticket ? 2 : 1;
+ }
+ return 1;
+}
+
+// kCustomExtensionValue is the extension value that the custom extension
+// callbacks will add.
+static const uint16_t kCustomExtensionValue = 1234;
+static void *const kCustomExtensionAddArg =
+ reinterpret_cast<void *>(kCustomExtensionValue);
+static void *const kCustomExtensionParseArg =
+ reinterpret_cast<void *>(kCustomExtensionValue + 1);
+static const char kCustomExtensionContents[] = "custom extension";
+
+static int CustomExtensionAddCallback(SSL *ssl, unsigned extension_value,
+ const uint8_t **out, size_t *out_len,
+ int *out_alert_value, void *add_arg) {
+ if (extension_value != kCustomExtensionValue ||
+ add_arg != kCustomExtensionAddArg) {
+ abort();
+ }
+
+ if (GetTestConfig(ssl)->custom_extension_skip) {
+ return 0;
+ }
+ if (GetTestConfig(ssl)->custom_extension_fail_add) {
+ return -1;
+ }
+
+ *out = reinterpret_cast<const uint8_t*>(kCustomExtensionContents);
+ *out_len = sizeof(kCustomExtensionContents) - 1;
+
+ return 1;
+}
+
+static void CustomExtensionFreeCallback(SSL *ssl, unsigned extension_value,
+ const uint8_t *out, void *add_arg) {
+ if (extension_value != kCustomExtensionValue ||
+ add_arg != kCustomExtensionAddArg ||
+ out != reinterpret_cast<const uint8_t *>(kCustomExtensionContents)) {
+ abort();
+ }
+}
+
+static int CustomExtensionParseCallback(SSL *ssl, unsigned extension_value,
+ const uint8_t *contents,
+ size_t contents_len,
+ int *out_alert_value, void *parse_arg) {
+ if (extension_value != kCustomExtensionValue ||
+ parse_arg != kCustomExtensionParseArg) {
+ abort();
+ }
+
+ if (contents_len != sizeof(kCustomExtensionContents) - 1 ||
+ memcmp(contents, kCustomExtensionContents, contents_len) != 0) {
+ *out_alert_value = SSL_AD_DECODE_ERROR;
+ return 0;
+ }
+
+ return 1;
+}
+
+static int ServerNameCallback(SSL *ssl, int *out_alert, void *arg) {
+ // SNI must be accessible from the SNI callback.
+ const TestConfig *config = GetTestConfig(ssl);
+ const char *server_name = SSL_get_servername(ssl, TLSEXT_NAMETYPE_host_name);
+ if (server_name == nullptr ||
+ std::string(server_name) != config->expected_server_name) {
+ fprintf(stderr, "servername mismatch (got %s; want %s)\n", server_name,
+ config->expected_server_name.c_str());
+ return SSL_TLSEXT_ERR_ALERT_FATAL;
+ }
+
+ return SSL_TLSEXT_ERR_OK;
+}
+
+// Connect returns a new socket connected to localhost on |port| or -1 on
+// error.
+static int Connect(uint16_t port) {
+ int sock = socket(AF_INET, SOCK_STREAM, 0);
+ if (sock == -1) {
+ PrintSocketError("socket");
+ return -1;
+ }
+ int nodelay = 1;
+ if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY,
+ reinterpret_cast<const char*>(&nodelay), sizeof(nodelay)) != 0) {
+ PrintSocketError("setsockopt");
+ closesocket(sock);
+ return -1;
+ }
+ sockaddr_in sin;
+ memset(&sin, 0, sizeof(sin));
+ sin.sin_family = AF_INET;
+ sin.sin_port = htons(port);
+ if (!inet_pton(AF_INET, "127.0.0.1", &sin.sin_addr)) {
+ PrintSocketError("inet_pton");
+ closesocket(sock);
+ return -1;
+ }
+ if (connect(sock, reinterpret_cast<const sockaddr*>(&sin),
+ sizeof(sin)) != 0) {
+ PrintSocketError("connect");
+ closesocket(sock);
+ return -1;
+ }
+ return sock;
+}
+
+class SocketCloser {
+ public:
+ explicit SocketCloser(int sock) : sock_(sock) {}
+ ~SocketCloser() {
+ // Half-close and drain the socket before releasing it. This seems to be
+ // necessary for graceful shutdown on Windows. It will also avoid write
+ // failures in the test runner.
+#if defined(OPENSSL_SYS_WINDOWS)
+ shutdown(sock_, SD_SEND);
+#else
+ shutdown(sock_, SHUT_WR);
+#endif
+ while (true) {
+ char buf[1024];
+ if (recv(sock_, buf, sizeof(buf), 0) <= 0) {
+ break;
+ }
+ }
+ closesocket(sock_);
+ }
+
+ private:
+ const int sock_;
+};
+
+static bssl::UniquePtr<SSL_CTX> SetupCtx(const TestConfig *config) {
+ const char sess_id_ctx[] = "ossl_shim";
+ bssl::UniquePtr<SSL_CTX> ssl_ctx(SSL_CTX_new(
+ config->is_dtls ? DTLS_method() : TLS_method()));
+ if (!ssl_ctx) {
+ return nullptr;
+ }
+
+ SSL_CTX_set_security_level(ssl_ctx.get(), 0);
+#if 0
+ /* Disabled for now until we have some TLS1.3 support */
+ // Enable TLS 1.3 for tests.
+ if (!config->is_dtls &&
+ !SSL_CTX_set_max_proto_version(ssl_ctx.get(), TLS1_3_VERSION)) {
+ return nullptr;
+ }
+#else
+ /* Ensure we don't negotiate TLSv1.3 until we can handle it */
+ if (!config->is_dtls &&
+ !SSL_CTX_set_max_proto_version(ssl_ctx.get(), TLS1_2_VERSION)) {
+ return nullptr;
+ }
+#endif
+
+ std::string cipher_list = "ALL";
+ if (!config->cipher.empty()) {
+ cipher_list = config->cipher;
+ SSL_CTX_set_options(ssl_ctx.get(), SSL_OP_CIPHER_SERVER_PREFERENCE);
+ }
+ if (!SSL_CTX_set_cipher_list(ssl_ctx.get(), cipher_list.c_str())) {
+ return nullptr;
+ }
+
+ DH *tmpdh;
+
+ if (config->use_sparse_dh_prime) {
+ BIGNUM *p, *g;
+ p = BN_new();
+ g = BN_new();
+ tmpdh = DH_new();
+ if (p == NULL || g == NULL || tmpdh == NULL) {
+ BN_free(p);
+ BN_free(g);
+ DH_free(tmpdh);
+ return nullptr;
+ }
+ // This prime number is 2^1024 + 643 – a value just above a power of two.
+ // Because of its form, values modulo it are essentially certain to be one
+ // byte shorter. This is used to test padding of these values.
+ if (BN_hex2bn(
+ &p,
+ "1000000000000000000000000000000000000000000000000000000000000000"
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ "0000000000000000000000000000000000000000000000000000000000000028"
+ "3") == 0 ||
+ !BN_set_word(g, 2)) {
+ BN_free(p);
+ BN_free(g);
+ DH_free(tmpdh);
+ return nullptr;
+ }
+ DH_set0_pqg(tmpdh, p, NULL, g);
+ } else {
+ tmpdh = DH_get_2048_256();
+ }
+
+ bssl::UniquePtr<DH> dh(tmpdh);
+
+ if (!dh || !SSL_CTX_set_tmp_dh(ssl_ctx.get(), dh.get())) {
+ return nullptr;
+ }
+
+ SSL_CTX_set_session_cache_mode(ssl_ctx.get(), SSL_SESS_CACHE_BOTH);
+
+ if (config->use_old_client_cert_callback) {
+ SSL_CTX_set_client_cert_cb(ssl_ctx.get(), ClientCertCallback);
+ }
+
+ SSL_CTX_set_npn_advertised_cb(
+ ssl_ctx.get(), NextProtosAdvertisedCallback, NULL);
+ if (!config->select_next_proto.empty()) {
+ SSL_CTX_set_next_proto_select_cb(ssl_ctx.get(), NextProtoSelectCallback,
+ NULL);
+ }
+
+ if (!config->select_alpn.empty() || config->decline_alpn) {
+ SSL_CTX_set_alpn_select_cb(ssl_ctx.get(), AlpnSelectCallback, NULL);
+ }
+
+ SSL_CTX_set_info_callback(ssl_ctx.get(), InfoCallback);
+ SSL_CTX_sess_set_new_cb(ssl_ctx.get(), NewSessionCallback);
+
+ if (config->use_ticket_callback) {
+ SSL_CTX_set_tlsext_ticket_key_cb(ssl_ctx.get(), TicketKeyCallback);
+ }
+
+ if (config->enable_client_custom_extension &&
+ !SSL_CTX_add_client_custom_ext(
+ ssl_ctx.get(), kCustomExtensionValue, CustomExtensionAddCallback,
+ CustomExtensionFreeCallback, kCustomExtensionAddArg,
+ CustomExtensionParseCallback, kCustomExtensionParseArg)) {
+ return nullptr;
+ }
+
+ if (config->enable_server_custom_extension &&
+ !SSL_CTX_add_server_custom_ext(
+ ssl_ctx.get(), kCustomExtensionValue, CustomExtensionAddCallback,
+ CustomExtensionFreeCallback, kCustomExtensionAddArg,
+ CustomExtensionParseCallback, kCustomExtensionParseArg)) {
+ return nullptr;
+ }
+
+ if (config->verify_fail) {
+ SSL_CTX_set_cert_verify_callback(ssl_ctx.get(), VerifyFail, NULL);
+ } else {
+ SSL_CTX_set_cert_verify_callback(ssl_ctx.get(), VerifySucceed, NULL);
+ }
+
+ if (config->use_null_client_ca_list) {
+ SSL_CTX_set_client_CA_list(ssl_ctx.get(), nullptr);
+ }
+
+ if (!SSL_CTX_set_session_id_context(ssl_ctx.get(),
+ (const unsigned char *)sess_id_ctx,
+ sizeof(sess_id_ctx) - 1))
+ return nullptr;
+
+ if (!config->expected_server_name.empty()) {
+ SSL_CTX_set_tlsext_servername_callback(ssl_ctx.get(), ServerNameCallback);
+ }
+
+ return ssl_ctx;
+}
+
+// RetryAsync is called after a failed operation on |ssl| with return code
+// |ret|. If the operation should be retried, it simulates one asynchronous
+// event and returns true. Otherwise it returns false.
+static bool RetryAsync(SSL *ssl, int ret) {
+ // No error; don't retry.
+ if (ret >= 0) {
+ return false;
+ }
+
+ TestState *test_state = GetTestState(ssl);
+ assert(GetTestConfig(ssl)->async);
+
+ if (test_state->packeted_bio != nullptr &&
+ PacketedBioAdvanceClock(test_state->packeted_bio)) {
+ // The DTLS retransmit logic silently ignores write failures. So the test
+ // may progress, allow writes through synchronously.
+ AsyncBioEnforceWriteQuota(test_state->async_bio, false);
+ int timeout_ret = DTLSv1_handle_timeout(ssl);
+ AsyncBioEnforceWriteQuota(test_state->async_bio, true);
+
+ if (timeout_ret < 0) {
+ fprintf(stderr, "Error retransmitting.\n");
+ return false;
+ }
+ return true;
+ }
+
+ // See if we needed to read or write more. If so, allow one byte through on
+ // the appropriate end to maximally stress the state machine.
+ switch (SSL_get_error(ssl, ret)) {
+ case SSL_ERROR_WANT_READ:
+ AsyncBioAllowRead(test_state->async_bio, 1);
+ return true;
+ case SSL_ERROR_WANT_WRITE:
+ AsyncBioAllowWrite(test_state->async_bio, 1);
+ return true;
+ case SSL_ERROR_WANT_X509_LOOKUP:
+ test_state->cert_ready = true;
+ return true;
+ default:
+ return false;
+ }
+}
+
+// DoRead reads from |ssl|, resolving any asynchronous operations. It returns
+// the result value of the final |SSL_read| call.
+static int DoRead(SSL *ssl, uint8_t *out, size_t max_out) {
+ const TestConfig *config = GetTestConfig(ssl);
+ TestState *test_state = GetTestState(ssl);
+ int ret;
+ do {
+ if (config->async) {
+ // The DTLS retransmit logic silently ignores write failures. So the test
+ // may progress, allow writes through synchronously. |SSL_read| may
+ // trigger a retransmit, so disconnect the write quota.
+ AsyncBioEnforceWriteQuota(test_state->async_bio, false);
+ }
+ ret = config->peek_then_read ? SSL_peek(ssl, out, max_out)
+ : SSL_read(ssl, out, max_out);
+ if (config->async) {
+ AsyncBioEnforceWriteQuota(test_state->async_bio, true);
+ }
+ } while (config->async && RetryAsync(ssl, ret));
+
+ if (config->peek_then_read && ret > 0) {
+ std::unique_ptr<uint8_t[]> buf(new uint8_t[static_cast<size_t>(ret)]);
+
+ // SSL_peek should synchronously return the same data.
+ int ret2 = SSL_peek(ssl, buf.get(), ret);
+ if (ret2 != ret ||
+ memcmp(buf.get(), out, ret) != 0) {
+ fprintf(stderr, "First and second SSL_peek did not match.\n");
+ return -1;
+ }
+
+ // SSL_read should synchronously return the same data and consume it.
+ ret2 = SSL_read(ssl, buf.get(), ret);
+ if (ret2 != ret ||
+ memcmp(buf.get(), out, ret) != 0) {
+ fprintf(stderr, "SSL_peek and SSL_read did not match.\n");
+ return -1;
+ }
+ }
+
+ return ret;
+}
+
+// WriteAll writes |in_len| bytes from |in| to |ssl|, resolving any asynchronous
+// operations. It returns the result of the final |SSL_write| call.
+static int WriteAll(SSL *ssl, const uint8_t *in, size_t in_len) {
+ const TestConfig *config = GetTestConfig(ssl);
+ int ret;
+ do {
+ ret = SSL_write(ssl, in, in_len);
+ if (ret > 0) {
+ in += ret;
+ in_len -= ret;
+ }
+ } while ((config->async && RetryAsync(ssl, ret)) || (ret > 0 && in_len > 0));
+ return ret;
+}
+
+// DoShutdown calls |SSL_shutdown|, resolving any asynchronous operations. It
+// returns the result of the final |SSL_shutdown| call.
+static int DoShutdown(SSL *ssl) {
+ const TestConfig *config = GetTestConfig(ssl);
+ int ret;
+ do {
+ ret = SSL_shutdown(ssl);
+ } while (config->async && RetryAsync(ssl, ret));
+ return ret;
+}
+
+static uint16_t GetProtocolVersion(const SSL *ssl) {
+ uint16_t version = SSL_version(ssl);
+ if (!SSL_is_dtls(ssl)) {
+ return version;
+ }
+ return 0x0201 + ~version;
+}
+
+// CheckHandshakeProperties checks, immediately after |ssl| completes its
+// initial handshake (or False Starts), whether all the properties are
+// consistent with the test configuration and invariants.
+static bool CheckHandshakeProperties(SSL *ssl, bool is_resume) {
+ const TestConfig *config = GetTestConfig(ssl);
+
+ if (SSL_get_current_cipher(ssl) == nullptr) {
+ fprintf(stderr, "null cipher after handshake\n");
+ return false;
+ }
+
+ if (is_resume &&
+ (!!SSL_session_reused(ssl) == config->expect_session_miss)) {
+ fprintf(stderr, "session was%s reused\n",
+ SSL_session_reused(ssl) ? "" : " not");
+ return false;
+ }
+
+ if (!GetTestState(ssl)->handshake_done) {
+ fprintf(stderr, "handshake was not completed\n");
+ return false;
+ }
+
+ if (!config->is_server) {
+ bool expect_new_session =
+ !config->expect_no_session &&
+ (!SSL_session_reused(ssl) || config->expect_ticket_renewal) &&
+ // Session tickets are sent post-handshake in TLS 1.3.
+ GetProtocolVersion(ssl) < TLS1_3_VERSION;
+ if (expect_new_session != GetTestState(ssl)->got_new_session) {
+ fprintf(stderr,
+ "new session was%s cached, but we expected the opposite\n",
+ GetTestState(ssl)->got_new_session ? "" : " not");
+ return false;
+ }
+ }
+
+ if (!config->expected_server_name.empty()) {
+ const char *server_name =
+ SSL_get_servername(ssl, TLSEXT_NAMETYPE_host_name);
+ if (server_name == nullptr ||
+ std::string(server_name) != config->expected_server_name) {
+ fprintf(stderr, "servername mismatch (got %s; want %s)\n",
+ server_name, config->expected_server_name.c_str());
+ return false;
+ }
+ }
+
+ if (!config->expected_next_proto.empty()) {
+ const uint8_t *next_proto;
+ unsigned next_proto_len;
+ SSL_get0_next_proto_negotiated(ssl, &next_proto, &next_proto_len);
+ if (next_proto_len != config->expected_next_proto.size() ||
+ memcmp(next_proto, config->expected_next_proto.data(),
+ next_proto_len) != 0) {
+ fprintf(stderr, "negotiated next proto mismatch\n");
+ return false;
+ }
+ }
+
+ if (!config->expected_alpn.empty()) {
+ const uint8_t *alpn_proto;
+ unsigned alpn_proto_len;
+ SSL_get0_alpn_selected(ssl, &alpn_proto, &alpn_proto_len);
+ if (alpn_proto_len != config->expected_alpn.size() ||
+ memcmp(alpn_proto, config->expected_alpn.data(),
+ alpn_proto_len) != 0) {
+ fprintf(stderr, "negotiated alpn proto mismatch\n");
+ return false;
+ }
+ }
+
+ if (config->expect_extended_master_secret) {
+ if (!SSL_get_extms_support(ssl)) {
+ fprintf(stderr, "No EMS for connection when expected");
+ return false;
+ }
+ }
+
+ if (config->expect_verify_result) {
+ int expected_verify_result = config->verify_fail ?
+ X509_V_ERR_APPLICATION_VERIFICATION :
+ X509_V_OK;
+
+ if (SSL_get_verify_result(ssl) != expected_verify_result) {
+ fprintf(stderr, "Wrong certificate verification result\n");
+ return false;
+ }
+ }
+
+ if (!config->psk.empty()) {
+ if (SSL_get_peer_cert_chain(ssl) != nullptr) {
+ fprintf(stderr, "Received peer certificate on a PSK cipher.\n");
+ return false;
+ }
+ } else if (!config->is_server || config->require_any_client_certificate) {
+ if (SSL_get_peer_certificate(ssl) == nullptr) {
+ fprintf(stderr, "Received no peer certificate but expected one.\n");
+ return false;
+ }
+ }
+
+ return true;
+}
+
+// DoExchange runs a test SSL exchange against the peer. On success, it returns
+// true and sets |*out_session| to the negotiated SSL session. If the test is a
+// resumption attempt, |is_resume| is true and |session| is the session from the
+// previous exchange.
+static bool DoExchange(bssl::UniquePtr<SSL_SESSION> *out_session,
+ SSL_CTX *ssl_ctx, const TestConfig *config,
+ bool is_resume, SSL_SESSION *session) {
+ bssl::UniquePtr<SSL> ssl(SSL_new(ssl_ctx));
+ if (!ssl) {
+ return false;
+ }
+
+ if (!SetTestConfig(ssl.get(), config) ||
+ !SetTestState(ssl.get(), std::unique_ptr<TestState>(new TestState))) {
+ return false;
+ }
+
+ if (config->fallback_scsv &&
+ !SSL_set_mode(ssl.get(), SSL_MODE_SEND_FALLBACK_SCSV)) {
+ return false;
+ }
+ // Install the certificate synchronously if nothing else will handle it.
+ if (!config->use_old_client_cert_callback &&
+ !config->async &&
+ !InstallCertificate(ssl.get())) {
+ return false;
+ }
+ SSL_set_cert_cb(ssl.get(), CertCallback, nullptr);
+ if (config->require_any_client_certificate) {
+ SSL_set_verify(ssl.get(), SSL_VERIFY_PEER|SSL_VERIFY_FAIL_IF_NO_PEER_CERT,
+ NULL);
+ }
+ if (config->verify_peer) {
+ SSL_set_verify(ssl.get(), SSL_VERIFY_PEER, NULL);
+ }
+ if (config->partial_write) {
+ SSL_set_mode(ssl.get(), SSL_MODE_ENABLE_PARTIAL_WRITE);
+ }
+ if (config->no_tls13) {
+ SSL_set_options(ssl.get(), SSL_OP_NO_TLSv1_3);
+ }
+ if (config->no_tls12) {
+ SSL_set_options(ssl.get(), SSL_OP_NO_TLSv1_2);
+ }
+ if (config->no_tls11) {
+ SSL_set_options(ssl.get(), SSL_OP_NO_TLSv1_1);
+ }
+ if (config->no_tls1) {
+ SSL_set_options(ssl.get(), SSL_OP_NO_TLSv1);
+ }
+ if (config->no_ssl3) {
+ SSL_set_options(ssl.get(), SSL_OP_NO_SSLv3);
+ }
+ if (!config->host_name.empty() &&
+ !SSL_set_tlsext_host_name(ssl.get(), config->host_name.c_str())) {
+ return false;
+ }
+ if (!config->advertise_alpn.empty() &&
+ SSL_set_alpn_protos(ssl.get(),
+ (const uint8_t *)config->advertise_alpn.data(),
+ config->advertise_alpn.size()) != 0) {
+ return false;
+ }
+ if (!config->psk.empty()) {
+ SSL_set_psk_client_callback(ssl.get(), PskClientCallback);
+ SSL_set_psk_server_callback(ssl.get(), PskServerCallback);
+ }
+ if (!config->psk_identity.empty() &&
+ !SSL_use_psk_identity_hint(ssl.get(), config->psk_identity.c_str())) {
+ return false;
+ }
+ if (!config->srtp_profiles.empty() &&
+ SSL_set_tlsext_use_srtp(ssl.get(), config->srtp_profiles.c_str())) {
+ return false;
+ }
+ if (config->min_version != 0 &&
+ !SSL_set_min_proto_version(ssl.get(), (uint16_t)config->min_version)) {
+ return false;
+ }
+ if (config->max_version != 0 &&
+ !SSL_set_max_proto_version(ssl.get(), (uint16_t)config->max_version)) {
+ return false;
+ }
+ if (config->mtu != 0) {
+ SSL_set_options(ssl.get(), SSL_OP_NO_QUERY_MTU);
+ SSL_set_mtu(ssl.get(), config->mtu);
+ }
+ if (config->renegotiate_freely) {
+ // This is always on for OpenSSL.
+ }
+ if (!config->check_close_notify) {
+ SSL_set_quiet_shutdown(ssl.get(), 1);
+ }
+ if (config->p384_only) {
+ int nid = NID_secp384r1;
+ if (!SSL_set1_curves(ssl.get(), &nid, 1)) {
+ return false;
+ }
+ }
+ if (config->enable_all_curves) {
+ static const int kAllCurves[] = {
+ NID_X25519, NID_X9_62_prime256v1, NID_X448, NID_secp521r1, NID_secp384r1
+ };
+ if (!SSL_set1_curves(ssl.get(), kAllCurves,
+ OPENSSL_ARRAY_SIZE(kAllCurves))) {
+ return false;
+ }
+ }
+ if (config->max_cert_list > 0) {
+ SSL_set_max_cert_list(ssl.get(), config->max_cert_list);
+ }
+
+ if (!config->async) {
+ SSL_set_mode(ssl.get(), SSL_MODE_AUTO_RETRY);
+ }
+
+ int sock = Connect(config->port);
+ if (sock == -1) {
+ return false;
+ }
+ SocketCloser closer(sock);
+
+ bssl::UniquePtr<BIO> bio(BIO_new_socket(sock, BIO_NOCLOSE));
+ if (!bio) {
+ return false;
+ }
+ if (config->is_dtls) {
+ bssl::UniquePtr<BIO> packeted = PacketedBioCreate(!config->async);
+ if (!packeted) {
+ return false;
+ }
+ GetTestState(ssl.get())->packeted_bio = packeted.get();
+ BIO_push(packeted.get(), bio.release());
+ bio = std::move(packeted);
+ }
+ if (config->async) {
+ bssl::UniquePtr<BIO> async_scoped =
+ config->is_dtls ? AsyncBioCreateDatagram() : AsyncBioCreate();
+ if (!async_scoped) {
+ return false;
+ }
+ BIO_push(async_scoped.get(), bio.release());
+ GetTestState(ssl.get())->async_bio = async_scoped.get();
+ bio = std::move(async_scoped);
+ }
+ SSL_set_bio(ssl.get(), bio.get(), bio.get());
+ bio.release(); // SSL_set_bio takes ownership.
+
+ if (session != NULL) {
+ if (!config->is_server) {
+ if (SSL_set_session(ssl.get(), session) != 1) {
+ return false;
+ }
+ }
+ }
+
+#if 0
+ // KNOWN BUG: OpenSSL's SSL_get_current_cipher behaves incorrectly when
+ // offering resumption.
+ if (SSL_get_current_cipher(ssl.get()) != nullptr) {
+ fprintf(stderr, "non-null cipher before handshake\n");
+ return false;
+ }
+#endif
+
+ int ret;
+ if (config->implicit_handshake) {
+ if (config->is_server) {
+ SSL_set_accept_state(ssl.get());
+ } else {
+ SSL_set_connect_state(ssl.get());
+ }
+ } else {
+ do {
+ if (config->is_server) {
+ ret = SSL_accept(ssl.get());
+ } else {
+ ret = SSL_connect(ssl.get());
+ }
+ } while (config->async && RetryAsync(ssl.get(), ret));
+ if (ret != 1 ||
+ !CheckHandshakeProperties(ssl.get(), is_resume)) {
+ return false;
+ }
+
+ // Reset the state to assert later that the callback isn't called in
+ // renegotiations.
+ GetTestState(ssl.get())->got_new_session = false;
+ }
+
+ if (config->export_keying_material > 0) {
+ std::vector<uint8_t> result(
+ static_cast<size_t>(config->export_keying_material));
+ if (SSL_export_keying_material(
+ ssl.get(), result.data(), result.size(),
+ config->export_label.data(), config->export_label.size(),
+ reinterpret_cast<const uint8_t*>(config->export_context.data()),
+ config->export_context.size(), config->use_export_context) != 1) {
+ fprintf(stderr, "failed to export keying material\n");
+ return false;
+ }
+ if (WriteAll(ssl.get(), result.data(), result.size()) < 0) {
+ return false;
+ }
+ }
+
+ if (config->write_different_record_sizes) {
+ if (config->is_dtls) {
+ fprintf(stderr, "write_different_record_sizes not supported for DTLS\n");
+ return false;
+ }
+ // This mode writes a number of different record sizes in an attempt to
+ // trip up the CBC record splitting code.
+ static const size_t kBufLen = 32769;
+ std::unique_ptr<uint8_t[]> buf(new uint8_t[kBufLen]);
+ memset(buf.get(), 0x42, kBufLen);
+ static const size_t kRecordSizes[] = {
+ 0, 1, 255, 256, 257, 16383, 16384, 16385, 32767, 32768, 32769};
+ for (size_t i = 0; i < OPENSSL_ARRAY_SIZE(kRecordSizes); i++) {
+ const size_t len = kRecordSizes[i];
+ if (len > kBufLen) {
+ fprintf(stderr, "Bad kRecordSizes value.\n");
+ return false;
+ }
+ if (WriteAll(ssl.get(), buf.get(), len) < 0) {
+ return false;
+ }
+ }
+ } else {
+ if (config->shim_writes_first) {
+ if (WriteAll(ssl.get(), reinterpret_cast<const uint8_t *>("hello"),
+ 5) < 0) {
+ return false;
+ }
+ }
+ if (!config->shim_shuts_down) {
+ for (;;) {
+ static const size_t kBufLen = 16384;
+ std::unique_ptr<uint8_t[]> buf(new uint8_t[kBufLen]);
+
+ // Read only 512 bytes at a time in TLS to ensure records may be
+ // returned in multiple reads.
+ int n = DoRead(ssl.get(), buf.get(), config->is_dtls ? kBufLen : 512);
+ int err = SSL_get_error(ssl.get(), n);
+ if (err == SSL_ERROR_ZERO_RETURN ||
+ (n == 0 && err == SSL_ERROR_SYSCALL)) {
+ if (n != 0) {
+ fprintf(stderr, "Invalid SSL_get_error output\n");
+ return false;
+ }
+ // Stop on either clean or unclean shutdown.
+ break;
+ } else if (err != SSL_ERROR_NONE) {
+ if (n > 0) {
+ fprintf(stderr, "Invalid SSL_get_error output\n");
+ return false;
+ }
+ return false;
+ }
+ // Successfully read data.
+ if (n <= 0) {
+ fprintf(stderr, "Invalid SSL_get_error output\n");
+ return false;
+ }
+
+ // After a successful read, with or without False Start, the handshake
+ // must be complete.
+ if (!GetTestState(ssl.get())->handshake_done) {
+ fprintf(stderr, "handshake was not completed after SSL_read\n");
+ return false;
+ }
+
+ for (int i = 0; i < n; i++) {
+ buf[i] ^= 0xff;
+ }
+ if (WriteAll(ssl.get(), buf.get(), n) < 0) {
+ return false;
+ }
+ }
+ }
+ }
+
+ if (!config->is_server &&
+ !config->implicit_handshake &&
+ // Session tickets are sent post-handshake in TLS 1.3.
+ GetProtocolVersion(ssl.get()) < TLS1_3_VERSION &&
+ GetTestState(ssl.get())->got_new_session) {
+ fprintf(stderr, "new session was established after the handshake\n");
+ return false;
+ }
+
+ if (GetProtocolVersion(ssl.get()) >= TLS1_3_VERSION && !config->is_server) {
+ bool expect_new_session =
+ !config->expect_no_session && !config->shim_shuts_down;
+ if (expect_new_session != GetTestState(ssl.get())->got_new_session) {
+ fprintf(stderr,
+ "new session was%s cached, but we expected the opposite\n",
+ GetTestState(ssl.get())->got_new_session ? "" : " not");
+ return false;
+ }
+ }
+
+ if (out_session) {
+ *out_session = std::move(GetTestState(ssl.get())->new_session);
+ }
+
+ ret = DoShutdown(ssl.get());
+
+ if (config->shim_shuts_down && config->check_close_notify) {
+ // We initiate shutdown, so |SSL_shutdown| will return in two stages. First
+ // it returns zero when our close_notify is sent, then one when the peer's
+ // is received.
+ if (ret != 0) {
+ fprintf(stderr, "Unexpected SSL_shutdown result: %d != 0\n", ret);
+ return false;
+ }
+ ret = DoShutdown(ssl.get());
+ }
+
+ if (ret != 1) {
+ fprintf(stderr, "Unexpected SSL_shutdown result: %d != 1\n", ret);
+ return false;
+ }
+
+ if (SSL_total_renegotiations(ssl.get()) !=
+ config->expect_total_renegotiations) {
+ fprintf(stderr, "Expected %d renegotiations, got %ld\n",
+ config->expect_total_renegotiations,
+ SSL_total_renegotiations(ssl.get()));
+ return false;
+ }
+
+ return true;
+}
+
+class StderrDelimiter {
+ public:
+ ~StderrDelimiter() { fprintf(stderr, "--- DONE ---\n"); }
+};
+
+static int Main(int argc, char **argv) {
+ // To distinguish ASan's output from ours, add a trailing message to stderr.
+ // Anything following this line will be considered an error.
+ StderrDelimiter delimiter;
+
+#if defined(OPENSSL_SYS_WINDOWS)
+ /* Initialize Winsock. */
+ WORD wsa_version = MAKEWORD(2, 2);
+ WSADATA wsa_data;
+ int wsa_err = WSAStartup(wsa_version, &wsa_data);
+ if (wsa_err != 0) {
+ fprintf(stderr, "WSAStartup failed: %d\n", wsa_err);
+ return 1;
+ }
+ if (wsa_data.wVersion != wsa_version) {
+ fprintf(stderr, "Didn't get expected version: %x\n", wsa_data.wVersion);
+ return 1;
+ }
+#else
+ signal(SIGPIPE, SIG_IGN);
+#endif
+
+ OPENSSL_init_crypto(0, NULL);
+ OPENSSL_init_ssl(0, NULL);
+ g_config_index = SSL_get_ex_new_index(0, NULL, NULL, NULL, NULL);
+ g_state_index = SSL_get_ex_new_index(0, NULL, NULL, NULL, TestStateExFree);
+ if (g_config_index < 0 || g_state_index < 0) {
+ return 1;
+ }
+
+ TestConfig config;
+ if (!ParseConfig(argc - 1, argv + 1, &config)) {
+ return Usage(argv[0]);
+ }
+
+ bssl::UniquePtr<SSL_CTX> ssl_ctx = SetupCtx(&config);
+ if (!ssl_ctx) {
+ ERR_print_errors_fp(stderr);
+ return 1;
+ }
+
+ bssl::UniquePtr<SSL_SESSION> session;
+ for (int i = 0; i < config.resume_count + 1; i++) {
+ bool is_resume = i > 0;
+ if (is_resume && !config.is_server && !session) {
+ fprintf(stderr, "No session to offer.\n");
+ return 1;
+ }
+
+ bssl::UniquePtr<SSL_SESSION> offer_session = std::move(session);
+ if (!DoExchange(&session, ssl_ctx.get(), &config, is_resume,
+ offer_session.get())) {
+ fprintf(stderr, "Connection %d failed.\n", i + 1);
+ ERR_print_errors_fp(stderr);
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+} // namespace bssl
+
+int main(int argc, char **argv) {
+ return bssl::Main(argc, argv);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/packeted_bio.cc b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/packeted_bio.cc
new file mode 100644
index 000000000..450baeccd
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/packeted_bio.cc
@@ -0,0 +1,299 @@
+/*
+ * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "packeted_bio.h"
+
+#include <assert.h>
+#include <limits.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/crypto.h>
+
+
+namespace {
+
+const uint8_t kOpcodePacket = 'P';
+const uint8_t kOpcodeTimeout = 'T';
+const uint8_t kOpcodeTimeoutAck = 't';
+
+struct PacketedBio {
+ explicit PacketedBio(bool advance_clock_arg)
+ : advance_clock(advance_clock_arg) {
+ memset(&timeout, 0, sizeof(timeout));
+ memset(&clock, 0, sizeof(clock));
+ memset(&read_deadline, 0, sizeof(read_deadline));
+ }
+
+ bool HasTimeout() const {
+ return timeout.tv_sec != 0 || timeout.tv_usec != 0;
+ }
+
+ bool CanRead() const {
+ if (read_deadline.tv_sec == 0 && read_deadline.tv_usec == 0) {
+ return true;
+ }
+
+ if (clock.tv_sec == read_deadline.tv_sec) {
+ return clock.tv_usec < read_deadline.tv_usec;
+ }
+ return clock.tv_sec < read_deadline.tv_sec;
+ }
+
+ timeval timeout;
+ timeval clock;
+ timeval read_deadline;
+ bool advance_clock;
+};
+
+PacketedBio *GetData(BIO *bio) {
+ return (PacketedBio *)BIO_get_data(bio);
+}
+
+const PacketedBio *GetData(const BIO *bio) {
+ return GetData(const_cast<BIO*>(bio));
+}
+
+// ReadAll reads |len| bytes from |bio| into |out|. It returns 1 on success and
+// 0 or -1 on error.
+static int ReadAll(BIO *bio, uint8_t *out, size_t len) {
+ while (len > 0) {
+ int chunk_len = INT_MAX;
+ if (len <= INT_MAX) {
+ chunk_len = (int)len;
+ }
+ int ret = BIO_read(bio, out, chunk_len);
+ if (ret <= 0) {
+ return ret;
+ }
+ out += ret;
+ len -= ret;
+ }
+ return 1;
+}
+
+static int PacketedWrite(BIO *bio, const char *in, int inl) {
+ if (BIO_next(bio) == NULL) {
+ return 0;
+ }
+
+ BIO_clear_retry_flags(bio);
+
+ // Write the header.
+ uint8_t header[5];
+ header[0] = kOpcodePacket;
+ header[1] = (inl >> 24) & 0xff;
+ header[2] = (inl >> 16) & 0xff;
+ header[3] = (inl >> 8) & 0xff;
+ header[4] = inl & 0xff;
+ int ret = BIO_write(BIO_next(bio), header, sizeof(header));
+ if (ret <= 0) {
+ BIO_copy_next_retry(bio);
+ return ret;
+ }
+
+ // Write the buffer.
+ ret = BIO_write(BIO_next(bio), in, inl);
+ if (ret < 0 || (inl > 0 && ret == 0)) {
+ BIO_copy_next_retry(bio);
+ return ret;
+ }
+ assert(ret == inl);
+ return ret;
+}
+
+static int PacketedRead(BIO *bio, char *out, int outl) {
+ PacketedBio *data = GetData(bio);
+ if (BIO_next(bio) == NULL) {
+ return 0;
+ }
+
+ BIO_clear_retry_flags(bio);
+
+ for (;;) {
+ // Check if the read deadline has passed.
+ if (!data->CanRead()) {
+ BIO_set_retry_read(bio);
+ return -1;
+ }
+
+ // Read the opcode.
+ uint8_t opcode;
+ int ret = ReadAll(BIO_next(bio), &opcode, sizeof(opcode));
+ if (ret <= 0) {
+ BIO_copy_next_retry(bio);
+ return ret;
+ }
+
+ if (opcode == kOpcodeTimeout) {
+ // The caller is required to advance any pending timeouts before
+ // continuing.
+ if (data->HasTimeout()) {
+ fprintf(stderr, "Unprocessed timeout!\n");
+ return -1;
+ }
+
+ // Process the timeout.
+ uint8_t buf[8];
+ ret = ReadAll(BIO_next(bio), buf, sizeof(buf));
+ if (ret <= 0) {
+ BIO_copy_next_retry(bio);
+ return ret;
+ }
+ uint64_t timeout = (static_cast<uint64_t>(buf[0]) << 56) |
+ (static_cast<uint64_t>(buf[1]) << 48) |
+ (static_cast<uint64_t>(buf[2]) << 40) |
+ (static_cast<uint64_t>(buf[3]) << 32) |
+ (static_cast<uint64_t>(buf[4]) << 24) |
+ (static_cast<uint64_t>(buf[5]) << 16) |
+ (static_cast<uint64_t>(buf[6]) << 8) |
+ static_cast<uint64_t>(buf[7]);
+ timeout /= 1000; // Convert nanoseconds to microseconds.
+
+ data->timeout.tv_usec = timeout % 1000000;
+ data->timeout.tv_sec = timeout / 1000000;
+
+ // Send an ACK to the peer.
+ ret = BIO_write(BIO_next(bio), &kOpcodeTimeoutAck, 1);
+ if (ret <= 0) {
+ return ret;
+ }
+ assert(ret == 1);
+
+ if (!data->advance_clock) {
+ // Signal to the caller to retry the read, after advancing the clock.
+ BIO_set_retry_read(bio);
+ return -1;
+ }
+
+ PacketedBioAdvanceClock(bio);
+ continue;
+ }
+
+ if (opcode != kOpcodePacket) {
+ fprintf(stderr, "Unknown opcode, %u\n", opcode);
+ return -1;
+ }
+
+ // Read the length prefix.
+ uint8_t len_bytes[4];
+ ret = ReadAll(BIO_next(bio), len_bytes, sizeof(len_bytes));
+ if (ret <= 0) {
+ BIO_copy_next_retry(bio);
+ return ret;
+ }
+
+ uint32_t len = (len_bytes[0] << 24) | (len_bytes[1] << 16) |
+ (len_bytes[2] << 8) | len_bytes[3];
+ uint8_t *buf = (uint8_t *)OPENSSL_malloc(len);
+ if (buf == NULL) {
+ return -1;
+ }
+ ret = ReadAll(BIO_next(bio), buf, len);
+ if (ret <= 0) {
+ fprintf(stderr, "Packeted BIO was truncated\n");
+ return -1;
+ }
+
+ if (outl > (int)len) {
+ outl = len;
+ }
+ memcpy(out, buf, outl);
+ OPENSSL_free(buf);
+ return outl;
+ }
+}
+
+static long PacketedCtrl(BIO *bio, int cmd, long num, void *ptr) {
+ if (cmd == BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT) {
+ memcpy(&GetData(bio)->read_deadline, ptr, sizeof(timeval));
+ return 1;
+ }
+
+ if (BIO_next(bio) == NULL) {
+ return 0;
+ }
+ BIO_clear_retry_flags(bio);
+ int ret = BIO_ctrl(BIO_next(bio), cmd, num, ptr);
+ BIO_copy_next_retry(bio);
+ return ret;
+}
+
+static int PacketedNew(BIO *bio) {
+ BIO_set_init(bio, 1);
+ return 1;
+}
+
+static int PacketedFree(BIO *bio) {
+ if (bio == NULL) {
+ return 0;
+ }
+
+ delete GetData(bio);
+ BIO_set_init(bio, 0);
+ return 1;
+}
+
+static long PacketedCallbackCtrl(BIO *bio, int cmd, BIO_info_cb fp)
+{
+ if (BIO_next(bio) == NULL)
+ return 0;
+ return BIO_callback_ctrl(BIO_next(bio), cmd, fp);
+}
+
+static BIO_METHOD *g_packeted_bio_method = NULL;
+
+static const BIO_METHOD *PacketedMethod(void)
+{
+ if (g_packeted_bio_method == NULL) {
+ g_packeted_bio_method = BIO_meth_new(BIO_TYPE_FILTER, "packeted bio");
+ if ( g_packeted_bio_method == NULL
+ || !BIO_meth_set_write(g_packeted_bio_method, PacketedWrite)
+ || !BIO_meth_set_read(g_packeted_bio_method, PacketedRead)
+ || !BIO_meth_set_ctrl(g_packeted_bio_method, PacketedCtrl)
+ || !BIO_meth_set_create(g_packeted_bio_method, PacketedNew)
+ || !BIO_meth_set_destroy(g_packeted_bio_method, PacketedFree)
+ || !BIO_meth_set_callback_ctrl(g_packeted_bio_method,
+ PacketedCallbackCtrl))
+ return NULL;
+ }
+ return g_packeted_bio_method;
+}
+} // namespace
+
+bssl::UniquePtr<BIO> PacketedBioCreate(bool advance_clock) {
+ bssl::UniquePtr<BIO> bio(BIO_new(PacketedMethod()));
+ if (!bio) {
+ return nullptr;
+ }
+ BIO_set_data(bio.get(), new PacketedBio(advance_clock));
+ return bio;
+}
+
+timeval PacketedBioGetClock(const BIO *bio) {
+ return GetData(bio)->clock;
+}
+
+bool PacketedBioAdvanceClock(BIO *bio) {
+ PacketedBio *data = GetData(bio);
+ if (data == nullptr) {
+ return false;
+ }
+
+ if (!data->HasTimeout()) {
+ return false;
+ }
+
+ data->clock.tv_usec += data->timeout.tv_usec;
+ data->clock.tv_sec += data->clock.tv_usec / 1000000;
+ data->clock.tv_usec %= 1000000;
+ data->clock.tv_sec += data->timeout.tv_sec;
+ memset(&data->timeout, 0, sizeof(data->timeout));
+ return true;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/packeted_bio.h b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/packeted_bio.h
new file mode 100644
index 000000000..895bd3795
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/packeted_bio.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#ifndef OSSL_TEST_SHIM_PACKETED_BIO_H
+#define OSSL_TEST_SHIM_PACKETED_BIO_H
+
+#include <openssl/base.h>
+#include <openssl/bio.h>
+
+// PacketedBioCreate creates a filter BIO which implements a reliable in-order
+// blocking datagram socket. It internally maintains a clock and honors
+// |BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT| based on it.
+//
+// During a |BIO_read|, the peer may signal the filter BIO to simulate a
+// timeout. If |advance_clock| is true, it automatically advances the clock and
+// continues reading, subject to the read deadline. Otherwise, it fails
+// immediately. The caller must then call |PacketedBioAdvanceClock| before
+// retrying |BIO_read|.
+bssl::UniquePtr<BIO> PacketedBioCreate(bool advance_clock);
+
+// PacketedBioGetClock returns the current time for |bio|.
+timeval PacketedBioGetClock(const BIO *bio);
+
+// PacketedBioAdvanceClock advances |bio|'s internal clock and returns true if
+// there is a pending timeout. Otherwise, it returns false.
+bool PacketedBioAdvanceClock(BIO *bio);
+
+
+#endif // OSSL_TEST_SHIM_PACKETED_BIO_H
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/test_config.cc b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/test_config.cc
new file mode 100644
index 000000000..6e43c8da7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/test_config.cc
@@ -0,0 +1,195 @@
+/*
+ * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "test_config.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <memory>
+
+#include <openssl/evp.h>
+
+namespace {
+
+template <typename T>
+struct Flag {
+ const char *flag;
+ T TestConfig::*member;
+};
+
+// FindField looks for the flag in |flags| that matches |flag|. If one is found,
+// it returns a pointer to the corresponding field in |config|. Otherwise, it
+// returns NULL.
+template<typename T, size_t N>
+T *FindField(TestConfig *config, const Flag<T> (&flags)[N], const char *flag) {
+ for (size_t i = 0; i < N; i++) {
+ if (strcmp(flag, flags[i].flag) == 0) {
+ return &(config->*(flags[i].member));
+ }
+ }
+ return NULL;
+}
+
+const Flag<bool> kBoolFlags[] = {
+ { "-server", &TestConfig::is_server },
+ { "-dtls", &TestConfig::is_dtls },
+ { "-fallback-scsv", &TestConfig::fallback_scsv },
+ { "-require-any-client-certificate",
+ &TestConfig::require_any_client_certificate },
+ { "-async", &TestConfig::async },
+ { "-write-different-record-sizes",
+ &TestConfig::write_different_record_sizes },
+ { "-partial-write", &TestConfig::partial_write },
+ { "-no-tls13", &TestConfig::no_tls13 },
+ { "-no-tls12", &TestConfig::no_tls12 },
+ { "-no-tls11", &TestConfig::no_tls11 },
+ { "-no-tls1", &TestConfig::no_tls1 },
+ { "-no-ssl3", &TestConfig::no_ssl3 },
+ { "-shim-writes-first", &TestConfig::shim_writes_first },
+ { "-expect-session-miss", &TestConfig::expect_session_miss },
+ { "-decline-alpn", &TestConfig::decline_alpn },
+ { "-expect-extended-master-secret",
+ &TestConfig::expect_extended_master_secret },
+ { "-implicit-handshake", &TestConfig::implicit_handshake },
+ { "-handshake-never-done", &TestConfig::handshake_never_done },
+ { "-use-export-context", &TestConfig::use_export_context },
+ { "-expect-ticket-renewal", &TestConfig::expect_ticket_renewal },
+ { "-expect-no-session", &TestConfig::expect_no_session },
+ { "-use-ticket-callback", &TestConfig::use_ticket_callback },
+ { "-renew-ticket", &TestConfig::renew_ticket },
+ { "-enable-client-custom-extension",
+ &TestConfig::enable_client_custom_extension },
+ { "-enable-server-custom-extension",
+ &TestConfig::enable_server_custom_extension },
+ { "-custom-extension-skip", &TestConfig::custom_extension_skip },
+ { "-custom-extension-fail-add", &TestConfig::custom_extension_fail_add },
+ { "-check-close-notify", &TestConfig::check_close_notify },
+ { "-shim-shuts-down", &TestConfig::shim_shuts_down },
+ { "-verify-fail", &TestConfig::verify_fail },
+ { "-verify-peer", &TestConfig::verify_peer },
+ { "-expect-verify-result", &TestConfig::expect_verify_result },
+ { "-renegotiate-freely", &TestConfig::renegotiate_freely },
+ { "-p384-only", &TestConfig::p384_only },
+ { "-enable-all-curves", &TestConfig::enable_all_curves },
+ { "-use-sparse-dh-prime", &TestConfig::use_sparse_dh_prime },
+ { "-use-old-client-cert-callback",
+ &TestConfig::use_old_client_cert_callback },
+ { "-use-null-client-ca-list", &TestConfig::use_null_client_ca_list },
+ { "-peek-then-read", &TestConfig::peek_then_read },
+};
+
+const Flag<std::string> kStringFlags[] = {
+ { "-key-file", &TestConfig::key_file },
+ { "-cert-file", &TestConfig::cert_file },
+ { "-expect-server-name", &TestConfig::expected_server_name },
+ { "-advertise-npn", &TestConfig::advertise_npn },
+ { "-expect-next-proto", &TestConfig::expected_next_proto },
+ { "-select-next-proto", &TestConfig::select_next_proto },
+ { "-host-name", &TestConfig::host_name },
+ { "-advertise-alpn", &TestConfig::advertise_alpn },
+ { "-expect-alpn", &TestConfig::expected_alpn },
+ { "-expect-advertised-alpn", &TestConfig::expected_advertised_alpn },
+ { "-select-alpn", &TestConfig::select_alpn },
+ { "-psk", &TestConfig::psk },
+ { "-psk-identity", &TestConfig::psk_identity },
+ { "-srtp-profiles", &TestConfig::srtp_profiles },
+ { "-cipher", &TestConfig::cipher },
+ { "-export-label", &TestConfig::export_label },
+ { "-export-context", &TestConfig::export_context },
+};
+
+const Flag<std::string> kBase64Flags[] = {
+ { "-expect-certificate-types", &TestConfig::expected_certificate_types },
+};
+
+const Flag<int> kIntFlags[] = {
+ { "-port", &TestConfig::port },
+ { "-resume-count", &TestConfig::resume_count },
+ { "-min-version", &TestConfig::min_version },
+ { "-max-version", &TestConfig::max_version },
+ { "-mtu", &TestConfig::mtu },
+ { "-export-keying-material", &TestConfig::export_keying_material },
+ { "-expect-total-renegotiations", &TestConfig::expect_total_renegotiations },
+ { "-max-cert-list", &TestConfig::max_cert_list },
+};
+
+} // namespace
+
+bool ParseConfig(int argc, char **argv, TestConfig *out_config) {
+ for (int i = 0; i < argc; i++) {
+ bool *bool_field = FindField(out_config, kBoolFlags, argv[i]);
+ if (bool_field != NULL) {
+ *bool_field = true;
+ continue;
+ }
+
+ std::string *string_field = FindField(out_config, kStringFlags, argv[i]);
+ if (string_field != NULL) {
+ const char *val;
+
+ i++;
+ if (i >= argc) {
+ fprintf(stderr, "Missing parameter\n");
+ return false;
+ }
+
+ /*
+ * Fix up the -cipher argument. runner uses "DEFAULT:NULL-SHA" to enable
+ * the NULL-SHA cipher. However in OpenSSL "DEFAULT" permanently switches
+ * off NULL ciphers, so we use "ALL:NULL-SHA" instead.
+ */
+ if (strcmp(argv[i - 1], "-cipher") == 0
+ && strcmp(argv[i], "DEFAULT:NULL-SHA") == 0)
+ val = "ALL:NULL-SHA";
+ else
+ val = argv[i];
+
+ string_field->assign(val);
+ continue;
+ }
+
+ std::string *base64_field = FindField(out_config, kBase64Flags, argv[i]);
+ if (base64_field != NULL) {
+ i++;
+ if (i >= argc) {
+ fprintf(stderr, "Missing parameter\n");
+ return false;
+ }
+ std::unique_ptr<uint8_t[]> decoded(new uint8_t[strlen(argv[i])]);
+ int len = EVP_DecodeBlock(decoded.get(),
+ reinterpret_cast<const uint8_t *>(argv[i]),
+ strlen(argv[i]));
+ if (len < 0) {
+ fprintf(stderr, "Invalid base64: %s\n", argv[i]);
+ return false;
+ }
+ base64_field->assign(reinterpret_cast<const char *>(decoded.get()), len);
+ continue;
+ }
+
+ int *int_field = FindField(out_config, kIntFlags, argv[i]);
+ if (int_field) {
+ i++;
+ if (i >= argc) {
+ fprintf(stderr, "Missing parameter\n");
+ return false;
+ }
+ *int_field = atoi(argv[i]);
+ continue;
+ }
+
+ fprintf(stderr, "Unknown argument: %s\n", argv[i]);
+ exit(89);
+ return false;
+ }
+
+ return true;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/test_config.h b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/test_config.h
new file mode 100644
index 000000000..f95475a42
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ossl_shim/test_config.h
@@ -0,0 +1,88 @@
+/*
+ * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#ifndef OSSL_TEST_SHIM_TEST_CONFIG_H
+#define OSSL_TEST_SHIM_TEST_CONFIG_H
+
+#include <string>
+#include <vector>
+
+
+struct TestConfig {
+ int port = 0;
+ bool is_server = false;
+ bool is_dtls = false;
+ int resume_count = 0;
+ bool fallback_scsv = false;
+ std::string key_file;
+ std::string cert_file;
+ std::string expected_server_name;
+ std::string expected_certificate_types;
+ bool require_any_client_certificate = false;
+ std::string advertise_npn;
+ std::string expected_next_proto;
+ std::string select_next_proto;
+ bool async = false;
+ bool write_different_record_sizes = false;
+ bool partial_write = false;
+ bool no_tls13 = false;
+ bool no_tls12 = false;
+ bool no_tls11 = false;
+ bool no_tls1 = false;
+ bool no_ssl3 = false;
+ bool shim_writes_first = false;
+ std::string host_name;
+ std::string advertise_alpn;
+ std::string expected_alpn;
+ std::string expected_advertised_alpn;
+ std::string select_alpn;
+ bool decline_alpn = false;
+ bool expect_session_miss = false;
+ bool expect_extended_master_secret = false;
+ std::string psk;
+ std::string psk_identity;
+ std::string srtp_profiles;
+ int min_version = 0;
+ int max_version = 0;
+ int mtu = 0;
+ bool implicit_handshake = false;
+ std::string cipher;
+ bool handshake_never_done = false;
+ int export_keying_material = 0;
+ std::string export_label;
+ std::string export_context;
+ bool use_export_context = false;
+ bool expect_ticket_renewal = false;
+ bool expect_no_session = false;
+ bool use_ticket_callback = false;
+ bool renew_ticket = false;
+ bool enable_client_custom_extension = false;
+ bool enable_server_custom_extension = false;
+ bool custom_extension_skip = false;
+ bool custom_extension_fail_add = false;
+ bool check_close_notify = false;
+ bool shim_shuts_down = false;
+ bool verify_fail = false;
+ bool verify_peer = false;
+ bool expect_verify_result = false;
+ int expect_total_renegotiations = 0;
+ bool renegotiate_freely = false;
+ bool p384_only = false;
+ bool enable_all_curves = false;
+ bool use_sparse_dh_prime = false;
+ bool use_old_client_cert_callback = false;
+ bool use_null_client_ca_list = false;
+ bool peek_then_read = false;
+ int max_cert_list = 0;
+};
+
+bool ParseConfig(int argc, char **argv, TestConfig *out_config);
+
+
+#endif // OSSL_TEST_SHIM_TEST_CONFIG_H
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/packettest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/packettest.c
new file mode 100644
index 000000000..6c82d0441
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/packettest.c
@@ -0,0 +1,494 @@
+/*
+ * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "../ssl/packet_local.h"
+#include "testutil.h"
+
+#define BUF_LEN 255
+
+static unsigned char smbuf[BUF_LEN];
+
+static int test_PACKET_remaining(void)
+{
+ PACKET pkt;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, smbuf, sizeof(smbuf)))
+ || !TEST_size_t_eq(PACKET_remaining(&pkt), BUF_LEN)
+ || !TEST_true(PACKET_forward(&pkt, BUF_LEN - 1))
+ || !TEST_size_t_eq(PACKET_remaining(&pkt), 1)
+ || !TEST_true(PACKET_forward(&pkt, 1))
+ || !TEST_size_t_eq(PACKET_remaining(&pkt), 0))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_end(void)
+{
+ PACKET pkt;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, smbuf, sizeof(smbuf)))
+ || !TEST_size_t_eq(PACKET_remaining(&pkt), BUF_LEN)
+ || !TEST_ptr_eq(PACKET_end(&pkt), smbuf + BUF_LEN)
+ || !TEST_true(PACKET_forward(&pkt, BUF_LEN - 1))
+ || !TEST_ptr_eq(PACKET_end(&pkt), smbuf + BUF_LEN)
+ || !TEST_true(PACKET_forward(&pkt, 1))
+ || !TEST_ptr_eq(PACKET_end(&pkt), smbuf + BUF_LEN))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_get_1(void)
+{
+ unsigned int i = 0;
+ PACKET pkt;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, smbuf, BUF_LEN))
+ || !TEST_true(PACKET_get_1(&pkt, &i))
+ || !TEST_uint_eq(i, 0x02)
+ || !TEST_true(PACKET_forward(&pkt, BUF_LEN - 2))
+ || !TEST_true(PACKET_get_1(&pkt, &i))
+ || !TEST_uint_eq(i, 0xfe)
+ || !TEST_false(PACKET_get_1(&pkt, &i)))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_get_4(void)
+{
+ unsigned long i = 0;
+ PACKET pkt;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, smbuf, BUF_LEN))
+ || !TEST_true(PACKET_get_4(&pkt, &i))
+ || !TEST_ulong_eq(i, 0x08060402UL)
+ || !TEST_true(PACKET_forward(&pkt, BUF_LEN - 8))
+ || !TEST_true(PACKET_get_4(&pkt, &i))
+ || !TEST_ulong_eq(i, 0xfefcfaf8UL)
+ || !TEST_false(PACKET_get_4(&pkt, &i)))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_get_net_2(void)
+{
+ unsigned int i = 0;
+ PACKET pkt;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, smbuf, BUF_LEN))
+ || !TEST_true(PACKET_get_net_2(&pkt, &i))
+ || !TEST_uint_eq(i, 0x0204)
+ || !TEST_true(PACKET_forward(&pkt, BUF_LEN - 4))
+ || !TEST_true(PACKET_get_net_2(&pkt, &i))
+ || !TEST_uint_eq(i, 0xfcfe)
+ || !TEST_false(PACKET_get_net_2(&pkt, &i)))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_get_net_3(void)
+{
+ unsigned long i = 0;
+ PACKET pkt;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, smbuf, BUF_LEN))
+ || !TEST_true(PACKET_get_net_3(&pkt, &i))
+ || !TEST_ulong_eq(i, 0x020406UL)
+ || !TEST_true(PACKET_forward(&pkt, BUF_LEN - 6))
+ || !TEST_true(PACKET_get_net_3(&pkt, &i))
+ || !TEST_ulong_eq(i, 0xfafcfeUL)
+ || !TEST_false(PACKET_get_net_3(&pkt, &i)))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_get_net_4(void)
+{
+ unsigned long i = 0;
+ PACKET pkt;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, smbuf, BUF_LEN))
+ || !TEST_true(PACKET_get_net_4(&pkt, &i))
+ || !TEST_ulong_eq(i, 0x02040608UL)
+ || !TEST_true(PACKET_forward(&pkt, BUF_LEN - 8))
+ || !TEST_true(PACKET_get_net_4(&pkt, &i))
+ || !TEST_ulong_eq(i, 0xf8fafcfeUL)
+ || !TEST_false(PACKET_get_net_4(&pkt, &i)))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_get_sub_packet(void)
+{
+ PACKET pkt, subpkt;
+ unsigned long i = 0;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, smbuf, BUF_LEN))
+ || !TEST_true(PACKET_get_sub_packet(&pkt, &subpkt, 4))
+ || !TEST_true(PACKET_get_net_4(&subpkt, &i))
+ || !TEST_ulong_eq(i, 0x02040608UL)
+ || !TEST_size_t_eq(PACKET_remaining(&subpkt), 0)
+ || !TEST_true(PACKET_forward(&pkt, BUF_LEN - 8))
+ || !TEST_true(PACKET_get_sub_packet(&pkt, &subpkt, 4))
+ || !TEST_true(PACKET_get_net_4(&subpkt, &i))
+ || !TEST_ulong_eq(i, 0xf8fafcfeUL)
+ || !TEST_size_t_eq(PACKET_remaining(&subpkt), 0)
+ || !TEST_false(PACKET_get_sub_packet(&pkt, &subpkt, 4)))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_get_bytes(void)
+{
+ const unsigned char *bytes = NULL;
+ PACKET pkt;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, smbuf, BUF_LEN))
+ || !TEST_true(PACKET_get_bytes(&pkt, &bytes, 4))
+ || !TEST_uchar_eq(bytes[0], 2)
+ || !TEST_uchar_eq(bytes[1], 4)
+ || !TEST_uchar_eq(bytes[2], 6)
+ || !TEST_uchar_eq(bytes[3], 8)
+ || !TEST_size_t_eq(PACKET_remaining(&pkt), BUF_LEN -4)
+ || !TEST_true(PACKET_forward(&pkt, BUF_LEN - 8))
+ || !TEST_true(PACKET_get_bytes(&pkt, &bytes, 4))
+ || !TEST_uchar_eq(bytes[0], 0xf8)
+ || !TEST_uchar_eq(bytes[1], 0xfa)
+ || !TEST_uchar_eq(bytes[2], 0xfc)
+ || !TEST_uchar_eq(bytes[3], 0xfe)
+ || !TEST_false(PACKET_remaining(&pkt)))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_copy_bytes(void)
+{
+ unsigned char bytes[4];
+ PACKET pkt;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, smbuf, BUF_LEN))
+ || !TEST_true(PACKET_copy_bytes(&pkt, bytes, 4))
+ || !TEST_char_eq(bytes[0], 2)
+ || !TEST_char_eq(bytes[1], 4)
+ || !TEST_char_eq(bytes[2], 6)
+ || !TEST_char_eq(bytes[3], 8)
+ || !TEST_size_t_eq(PACKET_remaining(&pkt), BUF_LEN - 4)
+ || !TEST_true(PACKET_forward(&pkt, BUF_LEN - 8))
+ || !TEST_true(PACKET_copy_bytes(&pkt, bytes, 4))
+ || !TEST_uchar_eq(bytes[0], 0xf8)
+ || !TEST_uchar_eq(bytes[1], 0xfa)
+ || !TEST_uchar_eq(bytes[2], 0xfc)
+ || !TEST_uchar_eq(bytes[3], 0xfe)
+ || !TEST_false(PACKET_remaining(&pkt)))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_copy_all(void)
+{
+ unsigned char tmp[BUF_LEN];
+ PACKET pkt;
+ size_t len;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, smbuf, BUF_LEN))
+ || !TEST_true(PACKET_copy_all(&pkt, tmp, BUF_LEN, &len))
+ || !TEST_size_t_eq(len, BUF_LEN)
+ || !TEST_mem_eq(smbuf, BUF_LEN, tmp, BUF_LEN)
+ || !TEST_size_t_eq(PACKET_remaining(&pkt), BUF_LEN)
+ || !TEST_false(PACKET_copy_all(&pkt, tmp, BUF_LEN - 1, &len)))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_memdup(void)
+{
+ unsigned char *data = NULL;
+ size_t len;
+ PACKET pkt;
+ int result = 0;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, smbuf, BUF_LEN))
+ || !TEST_true(PACKET_memdup(&pkt, &data, &len))
+ || !TEST_size_t_eq(len, BUF_LEN)
+ || !TEST_mem_eq(data, len, PACKET_data(&pkt), len)
+ || !TEST_true(PACKET_forward(&pkt, 10))
+ || !TEST_true(PACKET_memdup(&pkt, &data, &len))
+ || !TEST_size_t_eq(len, BUF_LEN - 10)
+ || !TEST_mem_eq(data, len, PACKET_data(&pkt), len))
+ goto end;
+ result = 1;
+end:
+ OPENSSL_free(data);
+ return result;
+}
+
+static int test_PACKET_strndup(void)
+{
+ char buf1[10], buf2[10];
+ char *data = NULL;
+ PACKET pkt;
+ int result = 0;
+
+ memset(buf1, 'x', 10);
+ memset(buf2, 'y', 10);
+ buf2[5] = '\0';
+
+ if (!TEST_true(PACKET_buf_init(&pkt, (unsigned char*)buf1, 10))
+ || !TEST_true(PACKET_strndup(&pkt, &data))
+ || !TEST_size_t_eq(strlen(data), 10)
+ || !TEST_strn_eq(data, buf1, 10)
+ || !TEST_true(PACKET_buf_init(&pkt, (unsigned char*)buf2, 10))
+ || !TEST_true(PACKET_strndup(&pkt, &data))
+ || !TEST_size_t_eq(strlen(data), 5)
+ || !TEST_str_eq(data, buf2))
+ goto end;
+
+ result = 1;
+end:
+ OPENSSL_free(data);
+ return result;
+}
+
+static int test_PACKET_contains_zero_byte(void)
+{
+ char buf1[10], buf2[10];
+ PACKET pkt;
+
+ memset(buf1, 'x', 10);
+ memset(buf2, 'y', 10);
+ buf2[5] = '\0';
+
+ if (!TEST_true(PACKET_buf_init(&pkt, (unsigned char*)buf1, 10))
+ || !TEST_false(PACKET_contains_zero_byte(&pkt))
+ || !TEST_true(PACKET_buf_init(&pkt, (unsigned char*)buf2, 10))
+ || !TEST_true(PACKET_contains_zero_byte(&pkt)))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_forward(void)
+{
+ const unsigned char *byte = NULL;
+ PACKET pkt;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, smbuf, BUF_LEN))
+ || !TEST_true(PACKET_forward(&pkt, 1))
+ || !TEST_true(PACKET_get_bytes(&pkt, &byte, 1))
+ || !TEST_uchar_eq(byte[0], 4)
+ || !TEST_true(PACKET_forward(&pkt, BUF_LEN - 3))
+ || !TEST_true(PACKET_get_bytes(&pkt, &byte, 1))
+ || !TEST_uchar_eq(byte[0], 0xfe))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_buf_init(void)
+{
+ unsigned char buf1[BUF_LEN];
+ PACKET pkt;
+
+ /* Also tests PACKET_remaining() */
+ if (!TEST_true(PACKET_buf_init(&pkt, buf1, 4))
+ || !TEST_size_t_eq(PACKET_remaining(&pkt), 4)
+ || !TEST_true(PACKET_buf_init(&pkt, buf1, BUF_LEN))
+ || !TEST_size_t_eq(PACKET_remaining(&pkt), BUF_LEN)
+ || !TEST_false(PACKET_buf_init(&pkt, buf1, -1)))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_null_init(void)
+{
+ PACKET pkt;
+
+ PACKET_null_init(&pkt);
+ if (!TEST_size_t_eq(PACKET_remaining(&pkt), 0)
+ || !TEST_false(PACKET_forward(&pkt, 1)))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_equal(void)
+{
+ PACKET pkt;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, smbuf, 4))
+ || !TEST_true(PACKET_equal(&pkt, smbuf, 4))
+ || !TEST_false(PACKET_equal(&pkt, smbuf + 1, 4))
+ || !TEST_true(PACKET_buf_init(&pkt, smbuf, BUF_LEN))
+ || !TEST_true(PACKET_equal(&pkt, smbuf, BUF_LEN))
+ || !TEST_false(PACKET_equal(&pkt, smbuf, BUF_LEN - 1))
+ || !TEST_false(PACKET_equal(&pkt, smbuf, BUF_LEN + 1))
+ || !TEST_false(PACKET_equal(&pkt, smbuf, 0)))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_get_length_prefixed_1(void)
+{
+ unsigned char buf1[BUF_LEN];
+ const size_t len = 16;
+ unsigned int i;
+ PACKET pkt, short_pkt, subpkt = {0};
+
+ buf1[0] = (unsigned char)len;
+ for (i = 1; i < BUF_LEN; i++)
+ buf1[i] = (i * 2) & 0xff;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, buf1, BUF_LEN))
+ || !TEST_true(PACKET_buf_init(&short_pkt, buf1, len))
+ || !TEST_true(PACKET_get_length_prefixed_1(&pkt, &subpkt))
+ || !TEST_size_t_eq(PACKET_remaining(&subpkt), len)
+ || !TEST_true(PACKET_get_net_2(&subpkt, &i))
+ || !TEST_uint_eq(i, 0x0204)
+ || !TEST_false(PACKET_get_length_prefixed_1(&short_pkt, &subpkt))
+ || !TEST_size_t_eq(PACKET_remaining(&short_pkt), len))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_get_length_prefixed_2(void)
+{
+ unsigned char buf1[1024];
+ const size_t len = 516; /* 0x0204 */
+ unsigned int i;
+ PACKET pkt, short_pkt, subpkt = {0};
+
+ for (i = 1; i <= 1024; i++)
+ buf1[i - 1] = (i * 2) & 0xff;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, buf1, 1024))
+ || !TEST_true(PACKET_buf_init(&short_pkt, buf1, len))
+ || !TEST_true(PACKET_get_length_prefixed_2(&pkt, &subpkt))
+ || !TEST_size_t_eq(PACKET_remaining(&subpkt), len)
+ || !TEST_true(PACKET_get_net_2(&subpkt, &i))
+ || !TEST_uint_eq(i, 0x0608)
+ || !TEST_false(PACKET_get_length_prefixed_2(&short_pkt, &subpkt))
+ || !TEST_size_t_eq(PACKET_remaining(&short_pkt), len))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_get_length_prefixed_3(void)
+{
+ unsigned char buf1[1024];
+ const size_t len = 516; /* 0x000204 */
+ unsigned int i;
+ PACKET pkt, short_pkt, subpkt = {0};
+
+ for (i = 0; i < 1024; i++)
+ buf1[i] = (i * 2) & 0xff;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, buf1, 1024))
+ || !TEST_true(PACKET_buf_init(&short_pkt, buf1, len))
+ || !TEST_true(PACKET_get_length_prefixed_3(&pkt, &subpkt))
+ || !TEST_size_t_eq(PACKET_remaining(&subpkt), len)
+ || !TEST_true(PACKET_get_net_2(&subpkt, &i))
+ || !TEST_uint_eq(i, 0x0608)
+ || !TEST_false(PACKET_get_length_prefixed_3(&short_pkt, &subpkt))
+ || !TEST_size_t_eq(PACKET_remaining(&short_pkt), len))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_as_length_prefixed_1(void)
+{
+ unsigned char buf1[BUF_LEN];
+ const size_t len = 16;
+ unsigned int i;
+ PACKET pkt, exact_pkt, subpkt = {0};
+
+ buf1[0] = (unsigned char)len;
+ for (i = 1; i < BUF_LEN; i++)
+ buf1[i] = (i * 2) & 0xff;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, buf1, BUF_LEN))
+ || !TEST_true(PACKET_buf_init(&exact_pkt, buf1, len + 1))
+ || !TEST_false(PACKET_as_length_prefixed_1(&pkt, &subpkt))
+ || !TEST_size_t_eq(PACKET_remaining(&pkt), BUF_LEN)
+ || !TEST_true(PACKET_as_length_prefixed_1(&exact_pkt, &subpkt))
+ || !TEST_size_t_eq(PACKET_remaining(&exact_pkt), 0)
+ || !TEST_size_t_eq(PACKET_remaining(&subpkt), len))
+ return 0;
+
+ return 1;
+}
+
+static int test_PACKET_as_length_prefixed_2(void)
+{
+ unsigned char buf[1024];
+ const size_t len = 516; /* 0x0204 */
+ unsigned int i;
+ PACKET pkt, exact_pkt, subpkt = {0};
+
+ for (i = 1; i <= 1024; i++)
+ buf[i-1] = (i * 2) & 0xff;
+
+ if (!TEST_true(PACKET_buf_init(&pkt, buf, 1024))
+ || !TEST_true(PACKET_buf_init(&exact_pkt, buf, len + 2))
+ || !TEST_false(PACKET_as_length_prefixed_2(&pkt, &subpkt))
+ || !TEST_size_t_eq(PACKET_remaining(&pkt), 1024)
+ || !TEST_true(PACKET_as_length_prefixed_2(&exact_pkt, &subpkt))
+ || !TEST_size_t_eq(PACKET_remaining(&exact_pkt), 0)
+ || !TEST_size_t_eq(PACKET_remaining(&subpkt), len))
+ return 0;
+
+ return 1;
+}
+
+int setup_tests(void)
+{
+ unsigned int i;
+
+ for (i = 1; i <= BUF_LEN; i++)
+ smbuf[i - 1] = (i * 2) & 0xff;
+
+ ADD_TEST(test_PACKET_buf_init);
+ ADD_TEST(test_PACKET_null_init);
+ ADD_TEST(test_PACKET_remaining);
+ ADD_TEST(test_PACKET_end);
+ ADD_TEST(test_PACKET_equal);
+ ADD_TEST(test_PACKET_get_1);
+ ADD_TEST(test_PACKET_get_4);
+ ADD_TEST(test_PACKET_get_net_2);
+ ADD_TEST(test_PACKET_get_net_3);
+ ADD_TEST(test_PACKET_get_net_4);
+ ADD_TEST(test_PACKET_get_sub_packet);
+ ADD_TEST(test_PACKET_get_bytes);
+ ADD_TEST(test_PACKET_copy_bytes);
+ ADD_TEST(test_PACKET_copy_all);
+ ADD_TEST(test_PACKET_memdup);
+ ADD_TEST(test_PACKET_strndup);
+ ADD_TEST(test_PACKET_contains_zero_byte);
+ ADD_TEST(test_PACKET_forward);
+ ADD_TEST(test_PACKET_get_length_prefixed_1);
+ ADD_TEST(test_PACKET_get_length_prefixed_2);
+ ADD_TEST(test_PACKET_get_length_prefixed_3);
+ ADD_TEST(test_PACKET_as_length_prefixed_1);
+ ADD_TEST(test_PACKET_as_length_prefixed_2);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pbelutest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pbelutest.c
new file mode 100644
index 000000000..3ed5e9672
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pbelutest.c
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2015-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <openssl/evp.h>
+#include "testutil.h"
+
+/*
+ * Password based encryption (PBE) table ordering test.
+ * Attempt to look up all supported algorithms.
+ */
+
+static int test_pbelu(void)
+{
+ int i, failed = 0;
+ int pbe_type, pbe_nid, last_type = -1, last_nid = -1;
+
+ for (i = 0; EVP_PBE_get(&pbe_type, &pbe_nid, i) != 0; i++) {
+ if (!TEST_true(EVP_PBE_find(pbe_type, pbe_nid, NULL, NULL, 0))) {
+ TEST_note("i=%d, pbe_type=%d, pbe_nid=%d", i, pbe_type, pbe_nid);
+ failed = 1;
+ break;
+ }
+ }
+
+ if (!failed)
+ return 1;
+
+ /* Error: print out whole table */
+ for (i = 0; EVP_PBE_get(&pbe_type, &pbe_nid, i) != 0; i++) {
+ failed = pbe_type < last_type
+ || (pbe_type == last_type && pbe_nid < last_nid);
+ TEST_note("PBE type=%d %d (%s): %s\n", pbe_type, pbe_nid,
+ OBJ_nid2sn(pbe_nid), failed ? "ERROR" : "OK");
+ last_type = pbe_type;
+ last_nid = pbe_nid;
+ }
+ return 0;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_pbelu);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pemtest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pemtest.c
new file mode 100644
index 000000000..3203d976b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pemtest.c
@@ -0,0 +1,91 @@
+/*
+ * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+#include <openssl/bio.h>
+#include <openssl/pem.h>
+
+#include "testutil.h"
+#include "internal/nelem.h"
+
+typedef struct {
+ const char *raw;
+ const char *encoded;
+} TESTDATA;
+
+static TESTDATA b64_pem_data[] = {
+ { "hello world",
+ "aGVsbG8gd29ybGQ=" },
+ { "a very ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong input",
+ "YSB2ZXJ5IG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZyBpbnB1dA==" }
+};
+
+static const char *pemtype = "PEMTESTDATA";
+
+static int test_b64(int idx)
+{
+ BIO *b = BIO_new(BIO_s_mem());
+ char *name = NULL, *header = NULL;
+ unsigned char *data = NULL;
+ long len;
+ int ret = 0;
+ const char *raw = b64_pem_data[idx].raw;
+ const char *encoded = b64_pem_data[idx].encoded;
+
+ if (!TEST_ptr(b)
+ || !TEST_true(BIO_printf(b, "-----BEGIN %s-----\n", pemtype))
+ || !TEST_true(BIO_printf(b, "%s\n", encoded))
+ || !TEST_true(BIO_printf(b, "-----END %s-----\n", pemtype))
+ || !TEST_true(PEM_read_bio_ex(b, &name, &header, &data, &len,
+ PEM_FLAG_ONLY_B64)))
+ goto err;
+ if (!TEST_int_eq(memcmp(pemtype, name, strlen(pemtype)), 0)
+ || !TEST_int_eq(len, strlen(raw))
+ || !TEST_int_eq(memcmp(data, raw, strlen(raw)), 0))
+ goto err;
+ ret = 1;
+ err:
+ BIO_free(b);
+ OPENSSL_free(name);
+ OPENSSL_free(header);
+ OPENSSL_free(data);
+ return ret;
+}
+
+static int test_invalid(void)
+{
+ BIO *b = BIO_new(BIO_s_mem());
+ char *name = NULL, *header = NULL;
+ unsigned char *data = NULL;
+ long len;
+ const char *encoded = b64_pem_data[0].encoded;
+
+ if (!TEST_ptr(b)
+ || !TEST_true(BIO_printf(b, "-----BEGIN %s-----\n", pemtype))
+ || !TEST_true(BIO_printf(b, "%c%s\n", '\t', encoded))
+ || !TEST_true(BIO_printf(b, "-----END %s-----\n", pemtype))
+ /* Expected to fail due to non-base64 character */
+ || TEST_true(PEM_read_bio_ex(b, &name, &header, &data, &len,
+ PEM_FLAG_ONLY_B64))) {
+ BIO_free(b);
+ return 0;
+ }
+ BIO_free(b);
+ OPENSSL_free(name);
+ OPENSSL_free(header);
+ OPENSSL_free(data);
+ return 1;
+}
+
+int setup_tests(void)
+{
+ ADD_ALL_TESTS(test_b64, OSSL_NELEM(b64_pem_data));
+ ADD_TEST(test_invalid);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkcs7-1.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkcs7-1.pem
new file mode 100644
index 000000000..c47b27af8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkcs7-1.pem
@@ -0,0 +1,15 @@
+-----BEGIN PKCS7-----
+MIICUAYJKoZIhvcNAQcCoIICQTCCAj0CAQExDjAMBggqhkiG9w0CAgUAMCgGCSqG
+SIb3DQEHAaAbBBlFdmVyeW9uZSBnZXRzIEZyaWRheSBvZmYuoIIBXjCCAVowggEE
+AgQUAAApMA0GCSqGSIb3DQEBAgUAMCwxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRF
+eGFtcGxlIE9yZ2FuaXphdGlvbjAeFw05MjA5MDkyMjE4MDZaFw05NDA5MDkyMjE4
+MDVaMEIxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRFeGFtcGxlIE9yZ2FuaXphdGlv
+bjEUMBIGA1UEAxMLVGVzdCBVc2VyIDEwWzANBgkqhkiG9w0BAQEFAANKADBHAkAK
+ZnkdxpiBaN56t3QZu3+wwAHGJxAnAHUUKULhmo2MUdBTs+N4Kh3l3Fr06+mUaBcB
+FKHf5nzcmpr1XWVWILurAgMBAAEwDQYJKoZIhvcNAQECBQADQQBFGqHhqncgSl/N
+9XYGnQL3MsJvNnsNV4puZPOakR9Hld8JlDQFEaDR30ogsmp3TMrvdfxpLlTCoZN8
+BxEmnZsWMYGbMIGYAgEBMDQwLDELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFEV4YW1w
+bGUgT3JnYW5pemF0aW9uAgQUAAApMAwGCCqGSIb3DQICBQAwDQYJKoZIhvcNAQEB
+BQAEQAX6aoEvx9+L9PJUJQngPoRuEbnGIL4gCe+0QO+8xmkhaZSsBPNBtX0FIC1C
+j7Kie1x339mxW/w9VZNTUDQQweHh
+-----END PKCS7-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkcs7.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkcs7.pem
new file mode 100644
index 000000000..d55c60b94
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkcs7.pem
@@ -0,0 +1,54 @@
+ MIAGCSqGSIb3DQEHAqCAMIACAQExADCABgkqhkiG9w0BBwEAAKCAMIIE+DCCBGGg
+ AwIBAgIQaGSF/JpbS1C223+yrc+N1DANBgkqhkiG9w0BAQQFADBiMREwDwYDVQQH
+ EwhJbnRlcm5ldDEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNDAyBgNVBAsTK1Zl
+ cmlTaWduIENsYXNzIDEgQ0EgLSBJbmRpdmlkdWFsIFN1YnNjcmliZXIwHhcNOTYw
+ ODEyMDAwMDAwWhcNOTYwODE3MjM1OTU5WjCCASAxETAPBgNVBAcTCEludGVybmV0
+ MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE0MDIGA1UECxMrVmVyaVNpZ24gQ2xh
+ c3MgMSBDQSAtIEluZGl2aWR1YWwgU3Vic2NyaWJlcjE3MDUGA1UECxMuRGlnaXRh
+ bCBJRCBDbGFzcyAxIC0gU01JTUUgVmVyaVNpZ24sIEluYy4gVEVTVDFGMEQGA1UE
+ CxM9d3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L0NQUyBJbmNvcnAuIGJ5IFJl
+ Zi4sTElBQi5MVEQoYyk5NjEZMBcGA1UEAxMQQWxleGFuZHJlIERlYWNvbjEgMB4G
+ CSqGSIb3DQEJARYRYWxleEB2ZXJpc2lnbi5jb20wWzANBgkqhkiG9w0BAQEFAANK
+ ADBHAkAOy7xxCAIkOfuIA2LyRpxgKlDORl8htdXYhF5iBGUx1GYaK6KF+bK/CCI0
+ l4j2OfWGFBUrwGoWqxTNcWgTfMzRAgMBAAGjggIyMIICLjAJBgNVHRMEAjAAMIIC
+ HwYDVR0DBIICFjCCAhIwggIOMIICCgYLYIZIAYb4RQEHAQEwggH5FoIBp1RoaXMg
+ Y2VydGlmaWNhdGUgaW5jb3Jwb3JhdGVzIGJ5IHJlZmVyZW5jZSwgYW5kIGl0cyB1
+ c2UgaXMgc3RyaWN0bHkgc3ViamVjdCB0bywgdGhlIFZlcmlTaWduIENlcnRpZmlj
+ YXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IChDUFMpLCBhdmFpbGFibGUgYXQ6IGh0
+ dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9DUFM7IGJ5IEUtbWFpbCBhdCBDUFMtcmVx
+ dWVzdHNAdmVyaXNpZ24uY29tOyBvciBieSBtYWlsIGF0IFZlcmlTaWduLCBJbmMu
+ LCAyNTkzIENvYXN0IEF2ZS4sIE1vdW50YWluIFZpZXcsIENBIDk0MDQzIFVTQSBU
+ ZWwuICsxICg0MTUpIDk2MS04ODMwIENvcHlyaWdodCAoYykgMTk5NiBWZXJpU2ln
+ biwgSW5jLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4gQ0VSVEFJTiBXQVJSQU5USUVT
+ IERJU0NMQUlNRUQgYW5kIExJQUJJTElUWSBMSU1JVEVELqAOBgxghkgBhvhFAQcB
+ AQGhDgYMYIZIAYb4RQEHAQECMCwwKhYoaHR0cHM6Ly93d3cudmVyaXNpZ24uY29t
+ L3JlcG9zaXRvcnkvQ1BTIDANBgkqhkiG9w0BAQQFAAOBgQAimWMGQwwwxk+b3KAL
+ HlSWXtU7LWHe29CEG8XeVNTvrqs6SBqT7OoENOkGxpfdpVgZ3Qw2SKjxDvbvpfSF
+ slsqcxWSgB/hWuaVuZCkvTw/dYGGOxkTJGxvDCfl1PZjX4dKbatslsi9Z9HpGWT7
+ ttItRwKqcBKgmCJvKi1pGWED0zCCAnkwggHioAMCAQICEDURpVKQb+fQKaRAGdQR
+ /D4wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlT
+ aWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAxIFB1YmxpYyBQcmltYXJ5IENlcnRp
+ ZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDYyNzAwMDAwMFoXDTk3MDYyNzIzNTk1
+ OVowYjERMA8GA1UEBxMISW50ZXJuZXQxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMu
+ MTQwMgYDVQQLEytWZXJpU2lnbiBDbGFzcyAxIENBIC0gSW5kaXZpZHVhbCBTdWJz
+ Y3JpYmVyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2FKbPTdAFDdjKI9Bv
+ qrQpkmOOLPhvltcunXZLEbE2jVfJw/0cxrr+Hgi6M8qV6r7jW80GqLd5HUQq7XPy
+ sVKDaBBwZJHXPmv5912dFEObbpdFmIFH0S3L3bty10w/cariQPJUObwW7s987Lrb
+ P2wqsxaxhhKdrpM01bjV0Pc+qQIDAQABozMwMTAPBgNVHRMECDAGAQH/AgEBMAsG
+ A1UdDwQEAwIBBjARBglghkgBhvhCAQEEBAMCAgQwDQYJKoZIhvcNAQECBQADgYEA
+ KeXHoBmnbxRCgk0jM9e9mDppdxpsipIna/J8DOHEUuD4nONAr4+xOg73SBl026n7
+ Bk55A2wvAMGo7+kKTZ+rHaFDDcmq4O+rzFri2RIOeGAncj1IcGptAQhvXoIhFMG4
+ Jlzg1KlHZHqy7D3jex78zcSU7kKOu8f5tAX1jC3+sToAAKGAMIIBJzCBkTANBgkq
+ hkiG9w0BAQIFADBiMREwDwYDVQQHEwhJbnRlcm5ldDEXMBUGA1UEChMOVmVyaVNp
+ Z24sIEluYy4xNDAyBgNVBAsTK1ZlcmlTaWduIENsYXNzIDEgQ0EgLSBJbmRpdmlk
+ dWFsIFN1YnNjcmliZXIXDTk2MDcwMTE3MzA0MFoXDTk3MDcwMTAwMDAwMFowDQYJ
+ KoZIhvcNAQECBQADgYEAGLuQ6PX8A7AiqBEtWzYtl6lZNSDI0bR5YUo+D2Jzkw30
+ dxQnJSbKXEc6XYuzAW5HvrzATXu5c19WWPT4cRDwmjH71i9QcDysWwf/wE0qGTiW
+ I3tQT0I5VGh7jIJD07nlBw3R4Xl8dH9kr85JsWinqDH5YKpIo9o8knY5n7+qjOow
+ ggEkMIGOMA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5W
+ ZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFyeSBD
+ ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eRcNOTYwNzE2MjMxMTI5WhcNOTYwODE1MDAw
+ MDAwWjANBgkqhkiG9w0BAQIFAAOBgQAXsLE4vnsY6sY67QrmWec7iaU2ehzxanEK
+ /9wKHZNuhlNzk+qGZZw2evxfUe2OaRbYpl8zuZvhK9BHD3ad14OSe9/zx5hOPgP/
+ DQXt6R4R8Q/1JheBrolrgbavjvI2wKS8/Psp2prBrkF4T48+AKRmS8Zzh1guxgvP
+ b+xSu/jH0gAAMYAAAAAAAAAAAA==
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkey_meth_kdf_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkey_meth_kdf_test.c
new file mode 100644
index 000000000..f2abcf3ed
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkey_meth_kdf_test.c
@@ -0,0 +1,181 @@
+/*
+ * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/* Tests of the EVP_PKEY_CTX_set_* macro family */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/evp.h>
+#include <openssl/kdf.h>
+#include "testutil.h"
+
+static int test_kdf_tls1_prf(void)
+{
+ EVP_PKEY_CTX *pctx;
+ unsigned char out[16];
+ size_t outlen = sizeof(out);
+ pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_TLS1_PRF, NULL);
+
+ if (EVP_PKEY_derive_init(pctx) <= 0) {
+ TEST_error("EVP_PKEY_derive_init");
+ return 0;
+ }
+ if (EVP_PKEY_CTX_set_tls1_prf_md(pctx, EVP_sha256()) <= 0) {
+ TEST_error("EVP_PKEY_CTX_set_tls1_prf_md");
+ return 0;
+ }
+ if (EVP_PKEY_CTX_set1_tls1_prf_secret(pctx, "secret", 6) <= 0) {
+ TEST_error("EVP_PKEY_CTX_set1_tls1_prf_secret");
+ return 0;
+ }
+ if (EVP_PKEY_CTX_add1_tls1_prf_seed(pctx, "seed", 4) <= 0) {
+ TEST_error("EVP_PKEY_CTX_add1_tls1_prf_seed");
+ return 0;
+ }
+ if (EVP_PKEY_derive(pctx, out, &outlen) <= 0) {
+ TEST_error("EVP_PKEY_derive");
+ return 0;
+ }
+
+ {
+ const unsigned char expected[sizeof(out)] = {
+ 0x8e, 0x4d, 0x93, 0x25, 0x30, 0xd7, 0x65, 0xa0,
+ 0xaa, 0xe9, 0x74, 0xc3, 0x04, 0x73, 0x5e, 0xcc
+ };
+ if (!TEST_mem_eq(out, sizeof(out), expected, sizeof(expected))) {
+ return 0;
+ }
+ }
+ EVP_PKEY_CTX_free(pctx);
+ return 1;
+}
+
+static int test_kdf_hkdf(void)
+{
+ EVP_PKEY_CTX *pctx;
+ unsigned char out[10];
+ size_t outlen = sizeof(out);
+ pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_HKDF, NULL);
+
+ if (EVP_PKEY_derive_init(pctx) <= 0) {
+ TEST_error("EVP_PKEY_derive_init");
+ return 0;
+ }
+ if (EVP_PKEY_CTX_set_hkdf_md(pctx, EVP_sha256()) <= 0) {
+ TEST_error("EVP_PKEY_CTX_set_hkdf_md");
+ return 0;
+ }
+ if (EVP_PKEY_CTX_set1_hkdf_salt(pctx, "salt", 4) <= 0) {
+ TEST_error("EVP_PKEY_CTX_set1_hkdf_salt");
+ return 0;
+ }
+ if (EVP_PKEY_CTX_set1_hkdf_key(pctx, "secret", 6) <= 0) {
+ TEST_error("EVP_PKEY_CTX_set1_hkdf_key");
+ return 0;
+ }
+ if (EVP_PKEY_CTX_add1_hkdf_info(pctx, "label", 5) <= 0) {
+ TEST_error("EVP_PKEY_CTX_set1_hkdf_info");
+ return 0;
+ }
+ if (EVP_PKEY_derive(pctx, out, &outlen) <= 0) {
+ TEST_error("EVP_PKEY_derive");
+ return 0;
+ }
+
+ {
+ const unsigned char expected[sizeof(out)] = {
+ 0x2a, 0xc4, 0x36, 0x9f, 0x52, 0x59, 0x96, 0xf8, 0xde, 0x13
+ };
+ if (!TEST_mem_eq(out, sizeof(out), expected, sizeof(expected))) {
+ return 0;
+ }
+ }
+ EVP_PKEY_CTX_free(pctx);
+ return 1;
+}
+
+#ifndef OPENSSL_NO_SCRYPT
+static int test_kdf_scrypt(void)
+{
+ EVP_PKEY_CTX *pctx;
+ unsigned char out[64];
+ size_t outlen = sizeof(out);
+ pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_SCRYPT, NULL);
+
+ if (EVP_PKEY_derive_init(pctx) <= 0) {
+ TEST_error("EVP_PKEY_derive_init");
+ return 0;
+ }
+ if (EVP_PKEY_CTX_set1_pbe_pass(pctx, "password", 8) <= 0) {
+ TEST_error("EVP_PKEY_CTX_set1_pbe_pass");
+ return 0;
+ }
+ if (EVP_PKEY_CTX_set1_scrypt_salt(pctx, "NaCl", 4) <= 0) {
+ TEST_error("EVP_PKEY_CTX_set1_scrypt_salt");
+ return 0;
+ }
+ if (EVP_PKEY_CTX_set_scrypt_N(pctx, 1024) <= 0) {
+ TEST_error("EVP_PKEY_CTX_set_scrypt_N");
+ return 0;
+ }
+ if (EVP_PKEY_CTX_set_scrypt_r(pctx, 8) <= 0) {
+ TEST_error("EVP_PKEY_CTX_set_scrypt_r");
+ return 0;
+ }
+ if (EVP_PKEY_CTX_set_scrypt_p(pctx, 16) <= 0) {
+ TEST_error("EVP_PKEY_CTX_set_scrypt_p");
+ return 0;
+ }
+ if (EVP_PKEY_CTX_set_scrypt_maxmem_bytes(pctx, 16) <= 0) {
+ TEST_error("EVP_PKEY_CTX_set_maxmem_bytes");
+ return 0;
+ }
+ if (EVP_PKEY_derive(pctx, out, &outlen) > 0) {
+ TEST_error("EVP_PKEY_derive should have failed");
+ return 0;
+ }
+ if (EVP_PKEY_CTX_set_scrypt_maxmem_bytes(pctx, 10 * 1024 * 1024) <= 0) {
+ TEST_error("EVP_PKEY_CTX_set_maxmem_bytes");
+ return 0;
+ }
+ if (EVP_PKEY_derive(pctx, out, &outlen) <= 0) {
+ TEST_error("EVP_PKEY_derive");
+ return 0;
+ }
+
+ {
+ const unsigned char expected[sizeof(out)] = {
+ 0xfd, 0xba, 0xbe, 0x1c, 0x9d, 0x34, 0x72, 0x00,
+ 0x78, 0x56, 0xe7, 0x19, 0x0d, 0x01, 0xe9, 0xfe,
+ 0x7c, 0x6a, 0xd7, 0xcb, 0xc8, 0x23, 0x78, 0x30,
+ 0xe7, 0x73, 0x76, 0x63, 0x4b, 0x37, 0x31, 0x62,
+ 0x2e, 0xaf, 0x30, 0xd9, 0x2e, 0x22, 0xa3, 0x88,
+ 0x6f, 0xf1, 0x09, 0x27, 0x9d, 0x98, 0x30, 0xda,
+ 0xc7, 0x27, 0xaf, 0xb9, 0x4a, 0x83, 0xee, 0x6d,
+ 0x83, 0x60, 0xcb, 0xdf, 0xa2, 0xcc, 0x06, 0x40
+ };
+ if (!TEST_mem_eq(out, sizeof(out), expected, sizeof(expected))) {
+ return 0;
+ }
+ }
+ EVP_PKEY_CTX_free(pctx);
+ return 1;
+}
+#endif
+
+int setup_tests(void)
+{
+ ADD_TEST(test_kdf_tls1_prf);
+ ADD_TEST(test_kdf_hkdf);
+#ifndef OPENSSL_NO_SCRYPT
+ ADD_TEST(test_kdf_scrypt);
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkey_meth_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkey_meth_test.c
new file mode 100644
index 000000000..76537d7c1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkey_meth_test.c
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/* Internal tests for EVP_PKEY method ordering */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/evp.h>
+#include "testutil.h"
+
+/* Test of EVP_PKEY_ASN1_METHOD ordering */
+static int test_asn1_meths(void)
+{
+ int i;
+ int prev = -1;
+ int good = 1;
+ int pkey_id;
+ const EVP_PKEY_ASN1_METHOD *ameth;
+
+ for (i = 0; i < EVP_PKEY_asn1_get_count(); i++) {
+ ameth = EVP_PKEY_asn1_get0(i);
+ EVP_PKEY_asn1_get0_info(&pkey_id, NULL, NULL, NULL, NULL, ameth);
+ if (pkey_id < prev)
+ good = 0;
+ prev = pkey_id;
+
+ }
+ if (!good) {
+ TEST_error("EVP_PKEY_ASN1_METHOD table out of order");
+ for (i = 0; i < EVP_PKEY_asn1_get_count(); i++) {
+ const char *info;
+
+ ameth = EVP_PKEY_asn1_get0(i);
+ EVP_PKEY_asn1_get0_info(&pkey_id, NULL, NULL, &info, NULL, ameth);
+ if (info == NULL)
+ info = "<NO NAME>";
+ TEST_note("%d : %s : %s", pkey_id, OBJ_nid2ln(pkey_id), info);
+ }
+ }
+ return good;
+}
+
+/* Test of EVP_PKEY_METHOD ordering */
+static int test_pkey_meths(void)
+{
+ size_t i;
+ int prev = -1;
+ int good = 1;
+ int pkey_id;
+ const EVP_PKEY_METHOD *pmeth;
+
+ for (i = 0; i < EVP_PKEY_meth_get_count(); i++) {
+ pmeth = EVP_PKEY_meth_get0(i);
+ EVP_PKEY_meth_get0_info(&pkey_id, NULL, pmeth);
+ if (pkey_id < prev)
+ good = 0;
+ prev = pkey_id;
+
+ }
+ if (!good) {
+ TEST_error("EVP_PKEY_METHOD table out of order");
+ for (i = 0; i < EVP_PKEY_meth_get_count(); i++) {
+ pmeth = EVP_PKEY_meth_get0(i);
+ EVP_PKEY_meth_get0_info(&pkey_id, NULL, pmeth);
+ TEST_note("%d : %s", pkey_id, OBJ_nid2ln(pkey_id));
+ }
+ }
+ return good;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_asn1_meths);
+ ADD_TEST(test_pkey_meths);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkits-test.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkits-test.pl
new file mode 100644
index 000000000..2b859b2ae
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/pkits-test.pl
@@ -0,0 +1,905 @@
+#! /usr/bin/env perl
+# Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# Perl utility to run PKITS tests for RFC3280 compliance.
+
+my $ossl_path;
+
+if ( -f "../apps/openssl" ) {
+ $ossl_path = "../util/shlib_wrap.sh ../apps/openssl";
+}
+elsif ( -f "..\\out32dll\\openssl.exe" ) {
+ $ossl_path = "..\\out32dll\\openssl.exe";
+}
+elsif ( -f "..\\out32\\openssl.exe" ) {
+ $ossl_path = "..\\out32\\openssl.exe";
+}
+else {
+ die "Can't find OpenSSL executable";
+}
+
+my $pkitsdir = "pkits/smime";
+my $pkitsta = "pkits/certs/TrustAnchorRootCertificate.crt";
+
+die "Can't find PKITS test data" if !-d $pkitsdir;
+
+my $nist1 = "2.16.840.1.101.3.2.1.48.1";
+my $nist2 = "2.16.840.1.101.3.2.1.48.2";
+my $nist3 = "2.16.840.1.101.3.2.1.48.3";
+my $nist4 = "2.16.840.1.101.3.2.1.48.4";
+my $nist5 = "2.16.840.1.101.3.2.1.48.5";
+my $nist6 = "2.16.840.1.101.3.2.1.48.6";
+
+my $apolicy = "X509v3 Any Policy";
+
+# This table contains the chapter headings of the accompanying PKITS
+# document. They provide useful informational output and their names
+# can be converted into the filename to test.
+
+my @testlists = (
+ [ "4.1", "Signature Verification" ],
+ [ "4.1.1", "Valid Signatures Test1", 0 ],
+ [ "4.1.2", "Invalid CA Signature Test2", 7 ],
+ [ "4.1.3", "Invalid EE Signature Test3", 7 ],
+ [ "4.1.4", "Valid DSA Signatures Test4", 0 ],
+ [ "4.1.5", "Valid DSA Parameter Inheritance Test5", 0 ],
+ [ "4.1.6", "Invalid DSA Signature Test6", 7 ],
+ [ "4.2", "Validity Periods" ],
+ [ "4.2.1", "Invalid CA notBefore Date Test1", 9 ],
+ [ "4.2.2", "Invalid EE notBefore Date Test2", 9 ],
+ [ "4.2.3", "Valid pre2000 UTC notBefore Date Test3", 0 ],
+ [ "4.2.4", "Valid GeneralizedTime notBefore Date Test4", 0 ],
+ [ "4.2.5", "Invalid CA notAfter Date Test5", 10 ],
+ [ "4.2.6", "Invalid EE notAfter Date Test6", 10 ],
+ [ "4.2.7", "Invalid pre2000 UTC EE notAfter Date Test7", 10 ],
+ [ "4.2.8", "Valid GeneralizedTime notAfter Date Test8", 0 ],
+ [ "4.3", "Verifying Name Chaining" ],
+ [ "4.3.1", "Invalid Name Chaining EE Test1", 20 ],
+ [ "4.3.2", "Invalid Name Chaining Order Test2", 20 ],
+ [ "4.3.3", "Valid Name Chaining Whitespace Test3", 0 ],
+ [ "4.3.4", "Valid Name Chaining Whitespace Test4", 0 ],
+ [ "4.3.5", "Valid Name Chaining Capitalization Test5", 0 ],
+ [ "4.3.6", "Valid Name Chaining UIDs Test6", 0 ],
+ [ "4.3.7", "Valid RFC3280 Mandatory Attribute Types Test7", 0 ],
+ [ "4.3.8", "Valid RFC3280 Optional Attribute Types Test8", 0 ],
+ [ "4.3.9", "Valid UTF8String Encoded Names Test9", 0 ],
+ [ "4.3.10", "Valid Rollover from PrintableString to UTF8String Test10", 0 ],
+ [ "4.3.11", "Valid UTF8String Case Insensitive Match Test11", 0 ],
+ [ "4.4", "Basic Certificate Revocation Tests" ],
+ [ "4.4.1", "Missing CRL Test1", 3 ],
+ [ "4.4.2", "Invalid Revoked CA Test2", 23 ],
+ [ "4.4.3", "Invalid Revoked EE Test3", 23 ],
+ [ "4.4.4", "Invalid Bad CRL Signature Test4", 8 ],
+ [ "4.4.5", "Invalid Bad CRL Issuer Name Test5", 3 ],
+ [ "4.4.6", "Invalid Wrong CRL Test6", 3 ],
+ [ "4.4.7", "Valid Two CRLs Test7", 0 ],
+
+ # The test document suggests these should return certificate revoked...
+ # Subsequent discussion has concluded they should not due to unhandle
+ # critical CRL extensions.
+ [ "4.4.8", "Invalid Unknown CRL Entry Extension Test8", 36 ],
+ [ "4.4.9", "Invalid Unknown CRL Extension Test9", 36 ],
+
+ [ "4.4.10", "Invalid Unknown CRL Extension Test10", 36 ],
+ [ "4.4.11", "Invalid Old CRL nextUpdate Test11", 12 ],
+ [ "4.4.12", "Invalid pre2000 CRL nextUpdate Test12", 12 ],
+ [ "4.4.13", "Valid GeneralizedTime CRL nextUpdate Test13", 0 ],
+ [ "4.4.14", "Valid Negative Serial Number Test14", 0 ],
+ [ "4.4.15", "Invalid Negative Serial Number Test15", 23 ],
+ [ "4.4.16", "Valid Long Serial Number Test16", 0 ],
+ [ "4.4.17", "Valid Long Serial Number Test17", 0 ],
+ [ "4.4.18", "Invalid Long Serial Number Test18", 23 ],
+ [ "4.4.19", "Valid Separate Certificate and CRL Keys Test19", 0 ],
+ [ "4.4.20", "Invalid Separate Certificate and CRL Keys Test20", 23 ],
+
+ # CRL path is revoked so get a CRL path validation error
+ [ "4.4.21", "Invalid Separate Certificate and CRL Keys Test21", 54 ],
+ [ "4.5", "Verifying Paths with Self-Issued Certificates" ],
+ [ "4.5.1", "Valid Basic Self-Issued Old With New Test1", 0 ],
+ [ "4.5.2", "Invalid Basic Self-Issued Old With New Test2", 23 ],
+ [ "4.5.3", "Valid Basic Self-Issued New With Old Test3", 0 ],
+ [ "4.5.4", "Valid Basic Self-Issued New With Old Test4", 0 ],
+ [ "4.5.5", "Invalid Basic Self-Issued New With Old Test5", 23 ],
+ [ "4.5.6", "Valid Basic Self-Issued CRL Signing Key Test6", 0 ],
+ [ "4.5.7", "Invalid Basic Self-Issued CRL Signing Key Test7", 23 ],
+ [ "4.5.8", "Invalid Basic Self-Issued CRL Signing Key Test8", 20 ],
+ [ "4.6", "Verifying Basic Constraints" ],
+ [ "4.6.1", "Invalid Missing basicConstraints Test1", 24 ],
+ [ "4.6.2", "Invalid cA False Test2", 24 ],
+ [ "4.6.3", "Invalid cA False Test3", 24 ],
+ [ "4.6.4", "Valid basicConstraints Not Critical Test4", 0 ],
+ [ "4.6.5", "Invalid pathLenConstraint Test5", 25 ],
+ [ "4.6.6", "Invalid pathLenConstraint Test6", 25 ],
+ [ "4.6.7", "Valid pathLenConstraint Test7", 0 ],
+ [ "4.6.8", "Valid pathLenConstraint Test8", 0 ],
+ [ "4.6.9", "Invalid pathLenConstraint Test9", 25 ],
+ [ "4.6.10", "Invalid pathLenConstraint Test10", 25 ],
+ [ "4.6.11", "Invalid pathLenConstraint Test11", 25 ],
+ [ "4.6.12", "Invalid pathLenConstraint Test12", 25 ],
+ [ "4.6.13", "Valid pathLenConstraint Test13", 0 ],
+ [ "4.6.14", "Valid pathLenConstraint Test14", 0 ],
+ [ "4.6.15", "Valid Self-Issued pathLenConstraint Test15", 0 ],
+ [ "4.6.16", "Invalid Self-Issued pathLenConstraint Test16", 25 ],
+ [ "4.6.17", "Valid Self-Issued pathLenConstraint Test17", 0 ],
+ [ "4.7", "Key Usage" ],
+ [ "4.7.1", "Invalid keyUsage Critical keyCertSign False Test1", 20 ],
+ [ "4.7.2", "Invalid keyUsage Not Critical keyCertSign False Test2", 20 ],
+ [ "4.7.3", "Valid keyUsage Not Critical Test3", 0 ],
+ [ "4.7.4", "Invalid keyUsage Critical cRLSign False Test4", 35 ],
+ [ "4.7.5", "Invalid keyUsage Not Critical cRLSign False Test5", 35 ],
+
+ # Certificate policy tests need special handling. They can have several
+ # sub tests and we need to check the outputs are correct.
+
+ [ "4.8", "Certificate Policies" ],
+ [
+ "4.8.1.1",
+ "All Certificates Same Policy Test1",
+ "-policy anyPolicy -explicit_policy",
+ "True", $nist1, $nist1, 0
+ ],
+ [
+ "4.8.1.2",
+ "All Certificates Same Policy Test1",
+ "-policy $nist1 -explicit_policy",
+ "True", $nist1, $nist1, 0
+ ],
+ [
+ "4.8.1.3",
+ "All Certificates Same Policy Test1",
+ "-policy $nist2 -explicit_policy",
+ "True", $nist1, "<empty>", 43
+ ],
+ [
+ "4.8.1.4",
+ "All Certificates Same Policy Test1",
+ "-policy $nist1 -policy $nist2 -explicit_policy",
+ "True", $nist1, $nist1, 0
+ ],
+ [
+ "4.8.2.1",
+ "All Certificates No Policies Test2",
+ "-policy anyPolicy",
+ "False", "<empty>", "<empty>", 0
+ ],
+ [
+ "4.8.2.2",
+ "All Certificates No Policies Test2",
+ "-policy anyPolicy -explicit_policy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.8.3.1",
+ "Different Policies Test3",
+ "-policy anyPolicy",
+ "False", "<empty>", "<empty>", 0
+ ],
+ [
+ "4.8.3.2",
+ "Different Policies Test3",
+ "-policy anyPolicy -explicit_policy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.8.3.3",
+ "Different Policies Test3",
+ "-policy $nist1 -policy $nist2 -explicit_policy",
+ "True", "<empty>", "<empty>", 43
+ ],
+
+ [
+ "4.8.4",
+ "Different Policies Test4",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.8.5",
+ "Different Policies Test5",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.8.6.1",
+ "Overlapping Policies Test6",
+ "-policy anyPolicy",
+ "True", $nist1, $nist1, 0
+ ],
+ [
+ "4.8.6.2",
+ "Overlapping Policies Test6",
+ "-policy $nist1",
+ "True", $nist1, $nist1, 0
+ ],
+ [
+ "4.8.6.3",
+ "Overlapping Policies Test6",
+ "-policy $nist2",
+ "True", $nist1, "<empty>", 43
+ ],
+ [
+ "4.8.7",
+ "Different Policies Test7",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.8.8",
+ "Different Policies Test8",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.8.9",
+ "Different Policies Test9",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.8.10.1",
+ "All Certificates Same Policies Test10",
+ "-policy $nist1",
+ "True", "$nist1:$nist2", "$nist1", 0
+ ],
+ [
+ "4.8.10.2",
+ "All Certificates Same Policies Test10",
+ "-policy $nist2",
+ "True", "$nist1:$nist2", "$nist2", 0
+ ],
+ [
+ "4.8.10.3",
+ "All Certificates Same Policies Test10",
+ "-policy anyPolicy",
+ "True", "$nist1:$nist2", "$nist1:$nist2", 0
+ ],
+ [
+ "4.8.11.1",
+ "All Certificates AnyPolicy Test11",
+ "-policy anyPolicy",
+ "True", "$apolicy", "$apolicy", 0
+ ],
+ [
+ "4.8.11.2",
+ "All Certificates AnyPolicy Test11",
+ "-policy $nist1",
+ "True", "$apolicy", "$nist1", 0
+ ],
+ [
+ "4.8.12",
+ "Different Policies Test12",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.8.13.1",
+ "All Certificates Same Policies Test13",
+ "-policy $nist1",
+ "True", "$nist1:$nist2:$nist3", "$nist1", 0
+ ],
+ [
+ "4.8.13.2",
+ "All Certificates Same Policies Test13",
+ "-policy $nist2",
+ "True", "$nist1:$nist2:$nist3", "$nist2", 0
+ ],
+ [
+ "4.8.13.3",
+ "All Certificates Same Policies Test13",
+ "-policy $nist3",
+ "True", "$nist1:$nist2:$nist3", "$nist3", 0
+ ],
+ [
+ "4.8.14.1", "AnyPolicy Test14",
+ "-policy $nist1", "True",
+ "$nist1", "$nist1",
+ 0
+ ],
+ [
+ "4.8.14.2", "AnyPolicy Test14",
+ "-policy $nist2", "True",
+ "$nist1", "<empty>",
+ 43
+ ],
+ [
+ "4.8.15",
+ "User Notice Qualifier Test15",
+ "-policy anyPolicy",
+ "False", "$nist1", "$nist1", 0
+ ],
+ [
+ "4.8.16",
+ "User Notice Qualifier Test16",
+ "-policy anyPolicy",
+ "False", "$nist1", "$nist1", 0
+ ],
+ [
+ "4.8.17",
+ "User Notice Qualifier Test17",
+ "-policy anyPolicy",
+ "False", "$nist1", "$nist1", 0
+ ],
+ [
+ "4.8.18.1",
+ "User Notice Qualifier Test18",
+ "-policy $nist1",
+ "True", "$nist1:$nist2", "$nist1", 0
+ ],
+ [
+ "4.8.18.2",
+ "User Notice Qualifier Test18",
+ "-policy $nist2",
+ "True", "$nist1:$nist2", "$nist2", 0
+ ],
+ [
+ "4.8.19",
+ "User Notice Qualifier Test19",
+ "-policy anyPolicy",
+ "False", "$nist1", "$nist1", 0
+ ],
+ [
+ "4.8.20",
+ "CPS Pointer Qualifier Test20",
+ "-policy anyPolicy -explicit_policy",
+ "True", "$nist1", "$nist1", 0
+ ],
+ [ "4.9", "Require Explicit Policy" ],
+ [
+ "4.9.1",
+ "Valid RequireExplicitPolicy Test1",
+ "-policy anyPolicy",
+ "False", "<empty>", "<empty>", 0
+ ],
+ [
+ "4.9.2",
+ "Valid RequireExplicitPolicy Test2",
+ "-policy anyPolicy",
+ "False", "<empty>", "<empty>", 0
+ ],
+ [
+ "4.9.3",
+ "Invalid RequireExplicitPolicy Test3",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.9.4",
+ "Valid RequireExplicitPolicy Test4",
+ "-policy anyPolicy",
+ "True", "$nist1", "$nist1", 0
+ ],
+ [
+ "4.9.5",
+ "Invalid RequireExplicitPolicy Test5",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.9.6",
+ "Valid Self-Issued requireExplicitPolicy Test6",
+ "-policy anyPolicy",
+ "False", "<empty>", "<empty>", 0
+ ],
+ [
+ "4.9.7",
+ "Invalid Self-Issued requireExplicitPolicy Test7",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.9.8",
+ "Invalid Self-Issued requireExplicitPolicy Test8",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [ "4.10", "Policy Mappings" ],
+ [
+ "4.10.1.1",
+ "Valid Policy Mapping Test1",
+ "-policy $nist1",
+ "True", "$nist1", "$nist1", 0
+ ],
+ [
+ "4.10.1.2",
+ "Valid Policy Mapping Test1",
+ "-policy $nist2",
+ "True", "$nist1", "<empty>", 43
+ ],
+ [
+ "4.10.1.3",
+ "Valid Policy Mapping Test1",
+ "-policy anyPolicy -inhibit_map",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.10.2.1",
+ "Invalid Policy Mapping Test2",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.10.2.2",
+ "Invalid Policy Mapping Test2",
+ "-policy anyPolicy -inhibit_map",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.10.3.1",
+ "Valid Policy Mapping Test3",
+ "-policy $nist1",
+ "True", "$nist2", "<empty>", 43
+ ],
+ [
+ "4.10.3.2",
+ "Valid Policy Mapping Test3",
+ "-policy $nist2",
+ "True", "$nist2", "$nist2", 0
+ ],
+ [
+ "4.10.4",
+ "Invalid Policy Mapping Test4",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.10.5.1",
+ "Valid Policy Mapping Test5",
+ "-policy $nist1",
+ "True", "$nist1", "$nist1", 0
+ ],
+ [
+ "4.10.5.2",
+ "Valid Policy Mapping Test5",
+ "-policy $nist6",
+ "True", "$nist1", "<empty>", 43
+ ],
+ [
+ "4.10.6.1",
+ "Valid Policy Mapping Test6",
+ "-policy $nist1",
+ "True", "$nist1", "$nist1", 0
+ ],
+ [
+ "4.10.6.2",
+ "Valid Policy Mapping Test6",
+ "-policy $nist6",
+ "True", "$nist1", "<empty>", 43
+ ],
+ [ "4.10.7", "Invalid Mapping From anyPolicy Test7", 42 ],
+ [ "4.10.8", "Invalid Mapping To anyPolicy Test8", 42 ],
+ [
+ "4.10.9",
+ "Valid Policy Mapping Test9",
+ "-policy anyPolicy",
+ "True", "$nist1", "$nist1", 0
+ ],
+ [
+ "4.10.10",
+ "Invalid Policy Mapping Test10",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.10.11",
+ "Valid Policy Mapping Test11",
+ "-policy anyPolicy",
+ "True", "$nist1", "$nist1", 0
+ ],
+
+ # TODO: check notice display
+ [
+ "4.10.12.1",
+ "Valid Policy Mapping Test12",
+ "-policy $nist1",
+ "True", "$nist1:$nist2", "$nist1", 0
+ ],
+
+ # TODO: check notice display
+ [
+ "4.10.12.2",
+ "Valid Policy Mapping Test12",
+ "-policy $nist2",
+ "True", "$nist1:$nist2", "$nist2", 0
+ ],
+ [
+ "4.10.13",
+ "Valid Policy Mapping Test13",
+ "-policy anyPolicy",
+ "True", "$nist1", "$nist1", 0
+ ],
+
+ # TODO: check notice display
+ [
+ "4.10.14",
+ "Valid Policy Mapping Test14",
+ "-policy anyPolicy",
+ "True", "$nist1", "$nist1", 0
+ ],
+ [ "4.11", "Inhibit Policy Mapping" ],
+ [
+ "4.11.1",
+ "Invalid inhibitPolicyMapping Test1",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.11.2",
+ "Valid inhibitPolicyMapping Test2",
+ "-policy anyPolicy",
+ "True", "$nist1", "$nist1", 0
+ ],
+ [
+ "4.11.3",
+ "Invalid inhibitPolicyMapping Test3",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.11.4",
+ "Valid inhibitPolicyMapping Test4",
+ "-policy anyPolicy",
+ "True", "$nist2", "$nist2", 0
+ ],
+ [
+ "4.11.5",
+ "Invalid inhibitPolicyMapping Test5",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.11.6",
+ "Invalid inhibitPolicyMapping Test6",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.11.7",
+ "Valid Self-Issued inhibitPolicyMapping Test7",
+ "-policy anyPolicy",
+ "True", "$nist1", "$nist1", 0
+ ],
+ [
+ "4.11.8",
+ "Invalid Self-Issued inhibitPolicyMapping Test8",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.11.9",
+ "Invalid Self-Issued inhibitPolicyMapping Test9",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.11.10",
+ "Invalid Self-Issued inhibitPolicyMapping Test10",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.11.11",
+ "Invalid Self-Issued inhibitPolicyMapping Test11",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [ "4.12", "Inhibit Any Policy" ],
+ [
+ "4.12.1",
+ "Invalid inhibitAnyPolicy Test1",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.12.2",
+ "Valid inhibitAnyPolicy Test2",
+ "-policy anyPolicy",
+ "True", "$nist1", "$nist1", 0
+ ],
+ [
+ "4.12.3.1",
+ "inhibitAnyPolicy Test3",
+ "-policy anyPolicy",
+ "True", "$nist1", "$nist1", 0
+ ],
+ [
+ "4.12.3.2",
+ "inhibitAnyPolicy Test3",
+ "-policy anyPolicy -inhibit_any",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.12.4",
+ "Invalid inhibitAnyPolicy Test4",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.12.5",
+ "Invalid inhibitAnyPolicy Test5",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [
+ "4.12.6",
+ "Invalid inhibitAnyPolicy Test6",
+ "-policy anyPolicy",
+ "True", "<empty>", "<empty>", 43
+ ],
+ [ "4.12.7", "Valid Self-Issued inhibitAnyPolicy Test7", 0 ],
+ [ "4.12.8", "Invalid Self-Issued inhibitAnyPolicy Test8", 43 ],
+ [ "4.12.9", "Valid Self-Issued inhibitAnyPolicy Test9", 0 ],
+ [ "4.12.10", "Invalid Self-Issued inhibitAnyPolicy Test10", 43 ],
+ [ "4.13", "Name Constraints" ],
+ [ "4.13.1", "Valid DN nameConstraints Test1", 0 ],
+ [ "4.13.2", "Invalid DN nameConstraints Test2", 47 ],
+ [ "4.13.3", "Invalid DN nameConstraints Test3", 47 ],
+ [ "4.13.4", "Valid DN nameConstraints Test4", 0 ],
+ [ "4.13.5", "Valid DN nameConstraints Test5", 0 ],
+ [ "4.13.6", "Valid DN nameConstraints Test6", 0 ],
+ [ "4.13.7", "Invalid DN nameConstraints Test7", 48 ],
+ [ "4.13.8", "Invalid DN nameConstraints Test8", 48 ],
+ [ "4.13.9", "Invalid DN nameConstraints Test9", 48 ],
+ [ "4.13.10", "Invalid DN nameConstraints Test10", 48 ],
+ [ "4.13.11", "Valid DN nameConstraints Test11", 0 ],
+ [ "4.13.12", "Invalid DN nameConstraints Test12", 47 ],
+ [ "4.13.13", "Invalid DN nameConstraints Test13", 47 ],
+ [ "4.13.14", "Valid DN nameConstraints Test14", 0 ],
+ [ "4.13.15", "Invalid DN nameConstraints Test15", 48 ],
+ [ "4.13.16", "Invalid DN nameConstraints Test16", 48 ],
+ [ "4.13.17", "Invalid DN nameConstraints Test17", 48 ],
+ [ "4.13.18", "Valid DN nameConstraints Test18", 0 ],
+ [ "4.13.19", "Valid Self-Issued DN nameConstraints Test19", 0 ],
+ [ "4.13.20", "Invalid Self-Issued DN nameConstraints Test20", 47 ],
+ [ "4.13.21", "Valid RFC822 nameConstraints Test21", 0 ],
+ [ "4.13.22", "Invalid RFC822 nameConstraints Test22", 47 ],
+ [ "4.13.23", "Valid RFC822 nameConstraints Test23", 0 ],
+ [ "4.13.24", "Invalid RFC822 nameConstraints Test24", 47 ],
+ [ "4.13.25", "Valid RFC822 nameConstraints Test25", 0 ],
+ [ "4.13.26", "Invalid RFC822 nameConstraints Test26", 48 ],
+ [ "4.13.27", "Valid DN and RFC822 nameConstraints Test27", 0 ],
+ [ "4.13.28", "Invalid DN and RFC822 nameConstraints Test28", 47 ],
+ [ "4.13.29", "Invalid DN and RFC822 nameConstraints Test29", 47 ],
+ [ "4.13.30", "Valid DNS nameConstraints Test30", 0 ],
+ [ "4.13.31", "Invalid DNS nameConstraints Test31", 47 ],
+ [ "4.13.32", "Valid DNS nameConstraints Test32", 0 ],
+ [ "4.13.33", "Invalid DNS nameConstraints Test33", 48 ],
+ [ "4.13.34", "Valid URI nameConstraints Test34", 0 ],
+ [ "4.13.35", "Invalid URI nameConstraints Test35", 47 ],
+ [ "4.13.36", "Valid URI nameConstraints Test36", 0 ],
+ [ "4.13.37", "Invalid URI nameConstraints Test37", 48 ],
+ [ "4.13.38", "Invalid DNS nameConstraints Test38", 47 ],
+ [ "4.14", "Distribution Points" ],
+ [ "4.14.1", "Valid distributionPoint Test1", 0 ],
+ [ "4.14.2", "Invalid distributionPoint Test2", 23 ],
+ [ "4.14.3", "Invalid distributionPoint Test3", 44 ],
+ [ "4.14.4", "Valid distributionPoint Test4", 0 ],
+ [ "4.14.5", "Valid distributionPoint Test5", 0 ],
+ [ "4.14.6", "Invalid distributionPoint Test6", 23 ],
+ [ "4.14.7", "Valid distributionPoint Test7", 0 ],
+ [ "4.14.8", "Invalid distributionPoint Test8", 44 ],
+ [ "4.14.9", "Invalid distributionPoint Test9", 44 ],
+ [ "4.14.10", "Valid No issuingDistributionPoint Test10", 0 ],
+ [ "4.14.11", "Invalid onlyContainsUserCerts CRL Test11", 44 ],
+ [ "4.14.12", "Invalid onlyContainsCACerts CRL Test12", 44 ],
+ [ "4.14.13", "Valid onlyContainsCACerts CRL Test13", 0 ],
+ [ "4.14.14", "Invalid onlyContainsAttributeCerts Test14", 44 ],
+ [ "4.14.15", "Invalid onlySomeReasons Test15", 23 ],
+ [ "4.14.16", "Invalid onlySomeReasons Test16", 23 ],
+ [ "4.14.17", "Invalid onlySomeReasons Test17", 3 ],
+ [ "4.14.18", "Valid onlySomeReasons Test18", 0 ],
+ [ "4.14.19", "Valid onlySomeReasons Test19", 0 ],
+ [ "4.14.20", "Invalid onlySomeReasons Test20", 23 ],
+ [ "4.14.21", "Invalid onlySomeReasons Test21", 23 ],
+ [ "4.14.22", "Valid IDP with indirectCRL Test22", 0 ],
+ [ "4.14.23", "Invalid IDP with indirectCRL Test23", 23 ],
+ [ "4.14.24", "Valid IDP with indirectCRL Test24", 0 ],
+ [ "4.14.25", "Valid IDP with indirectCRL Test25", 0 ],
+ [ "4.14.26", "Invalid IDP with indirectCRL Test26", 44 ],
+ [ "4.14.27", "Invalid cRLIssuer Test27", 3 ],
+ [ "4.14.28", "Valid cRLIssuer Test28", 0 ],
+ [ "4.14.29", "Valid cRLIssuer Test29", 0 ],
+
+ # Although this test is valid it has a circular dependency. As a result
+ # an attempt is made to recursively checks a CRL path and rejected due to
+ # a CRL path validation error. PKITS notes suggest this test does not
+ # need to be run due to this issue.
+ [ "4.14.30", "Valid cRLIssuer Test30", 54 ],
+ [ "4.14.31", "Invalid cRLIssuer Test31", 23 ],
+ [ "4.14.32", "Invalid cRLIssuer Test32", 23 ],
+ [ "4.14.33", "Valid cRLIssuer Test33", 0 ],
+ [ "4.14.34", "Invalid cRLIssuer Test34", 23 ],
+ [ "4.14.35", "Invalid cRLIssuer Test35", 44 ],
+ [ "4.15", "Delta-CRLs" ],
+ [ "4.15.1", "Invalid deltaCRLIndicator No Base Test1", 3 ],
+ [ "4.15.2", "Valid delta-CRL Test2", 0 ],
+ [ "4.15.3", "Invalid delta-CRL Test3", 23 ],
+ [ "4.15.4", "Invalid delta-CRL Test4", 23 ],
+ [ "4.15.5", "Valid delta-CRL Test5", 0 ],
+ [ "4.15.6", "Invalid delta-CRL Test6", 23 ],
+ [ "4.15.7", "Valid delta-CRL Test7", 0 ],
+ [ "4.15.8", "Valid delta-CRL Test8", 0 ],
+ [ "4.15.9", "Invalid delta-CRL Test9", 23 ],
+ [ "4.15.10", "Invalid delta-CRL Test10", 12 ],
+ [ "4.16", "Private Certificate Extensions" ],
+ [ "4.16.1", "Valid Unknown Not Critical Certificate Extension Test1", 0 ],
+ [ "4.16.2", "Invalid Unknown Critical Certificate Extension Test2", 34 ],
+);
+
+
+my $verbose = 1;
+
+my $numtest = 0;
+my $numfail = 0;
+
+my $ossl = "ossl/apps/openssl";
+
+my $ossl_cmd = "$ossl_path cms -verify -verify_retcode ";
+$ossl_cmd .= "-CAfile pkitsta.pem -crl_check_all -x509_strict ";
+
+# Check for expiry of trust anchor
+system "$ossl_path x509 -inform DER -in $pkitsta -checkend 0";
+if ($? == 256)
+ {
+ print STDERR "WARNING: using older expired data\n";
+ $ossl_cmd .= "-attime 1291940972 ";
+ }
+
+$ossl_cmd .= "-policy_check -extended_crl -use_deltas -out /dev/null 2>&1 ";
+
+system "$ossl_path x509 -inform DER -in $pkitsta -out pkitsta.pem";
+
+die "Can't create trust anchor file" if $?;
+
+print "Running PKITS tests:\n" if $verbose;
+
+foreach (@testlists) {
+ my $argnum = @$_;
+ if ( $argnum == 2 ) {
+ my ( $tnum, $title ) = @$_;
+ print "$tnum $title\n" if $verbose;
+ }
+ elsif ( $argnum == 3 ) {
+ my ( $tnum, $title, $exp_ret ) = @$_;
+ my $filename = $title;
+ $exp_ret += 32 if $exp_ret;
+ $filename =~ tr/ -//d;
+ $filename = "Signed${filename}.eml";
+ if ( !-f "$pkitsdir/$filename" ) {
+ print "\"$filename\" not found\n";
+ }
+ else {
+ my $ret;
+ my $test_fail = 0;
+ my $errmsg = "";
+ my $cmd = $ossl_cmd;
+ $cmd .= "-in $pkitsdir/$filename -policy anyPolicy";
+ my $cmdout = `$cmd`;
+ $ret = $? >> 8;
+ if ( $? & 0xff ) {
+ $errmsg .= "Abnormal OpenSSL termination\n";
+ $test_fail = 1;
+ }
+ if ( $exp_ret != $ret ) {
+ $errmsg .= "Return code:$ret, ";
+ $errmsg .= "expected $exp_ret\n";
+ $test_fail = 1;
+ }
+ if ($test_fail) {
+ print "$tnum $title : Failed!\n";
+ print "Filename: $pkitsdir/$filename\n";
+ print $errmsg;
+ print "Command output:\n$cmdout\n";
+ $numfail++;
+ }
+ $numtest++;
+ }
+ }
+ elsif ( $argnum == 7 ) {
+ my ( $tnum, $title, $exargs, $exp_epol, $exp_aset, $exp_uset, $exp_ret )
+ = @$_;
+ my $filename = $title;
+ $exp_ret += 32 if $exp_ret;
+ $filename =~ tr/ -//d;
+ $filename = "Signed${filename}.eml";
+ if ( !-f "$pkitsdir/$filename" ) {
+ print "\"$filename\" not found\n";
+ }
+ else {
+ my $ret;
+ my $cmdout = "";
+ my $errmsg = "";
+ my $epol = "";
+ my $aset = "";
+ my $uset = "";
+ my $pol = -1;
+ my $test_fail = 0;
+ my $cmd = $ossl_cmd;
+ $cmd .= "-in $pkitsdir/$filename $exargs -policy_print";
+ @oparr = `$cmd`;
+ $ret = $? >> 8;
+
+ if ( $? & 0xff ) {
+ $errmsg .= "Abnormal OpenSSL termination\n";
+ $test_fail = 1;
+ }
+ foreach (@oparr) {
+ my $test_failed = 0;
+ $cmdout .= $_;
+ if (/^Require explicit Policy: (.*)$/) {
+ $epol = $1;
+ }
+ if (/^Authority Policies/) {
+ if (/empty/) {
+ $aset = "<empty>";
+ }
+ else {
+ $pol = 1;
+ }
+ }
+ $test_fail = 1 if (/leak/i);
+ if (/^User Policies/) {
+ if (/empty/) {
+ $uset = "<empty>";
+ }
+ else {
+ $pol = 2;
+ }
+ }
+ if (/\s+Policy: (.*)$/) {
+ if ( $pol == 1 ) {
+ $aset .= ":" if $aset ne "";
+ $aset .= $1;
+ }
+ elsif ( $pol == 2 ) {
+ $uset .= ":" if $uset ne "";
+ $uset .= $1;
+ }
+ }
+ }
+
+ if ( $epol ne $exp_epol ) {
+ $errmsg .= "Explicit policy:$epol, ";
+ $errmsg .= "expected $exp_epol\n";
+ $test_fail = 1;
+ }
+ if ( $aset ne $exp_aset ) {
+ $errmsg .= "Authority policy set :$aset, ";
+ $errmsg .= "expected $exp_aset\n";
+ $test_fail = 1;
+ }
+ if ( $uset ne $exp_uset ) {
+ $errmsg .= "User policy set :$uset, ";
+ $errmsg .= "expected $exp_uset\n";
+ $test_fail = 1;
+ }
+
+ if ( $exp_ret != $ret ) {
+ print "Return code:$ret, expected $exp_ret\n";
+ $test_fail = 1;
+ }
+
+ if ($test_fail) {
+ print "$tnum $title : Failed!\n";
+ print "Filename: $pkitsdir/$filename\n";
+ print "Command output:\n$cmdout\n";
+ $numfail++;
+ }
+ $numtest++;
+ }
+ }
+}
+
+if ($numfail) {
+ print "$numfail tests failed out of $numtest\n";
+}
+else {
+ print "All Tests Successful.\n";
+}
+
+unlink "pkitsta.pem";
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/poly1305_internal_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/poly1305_internal_test.c
new file mode 100644
index 000000000..2b6a529ba
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/poly1305_internal_test.c
@@ -0,0 +1,1576 @@
+/*
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/* Internal tests for the poly1305 module */
+
+#include <stdio.h>
+#include <string.h>
+
+#include "testutil.h"
+#include "crypto/poly1305.h"
+#include "../crypto/poly1305/poly1305_local.h"
+#include "internal/nelem.h"
+
+typedef struct {
+ size_t size;
+ const unsigned char data[1024];
+} SIZED_DATA;
+
+typedef struct {
+ SIZED_DATA input;
+ SIZED_DATA key;
+ SIZED_DATA expected;
+} TESTDATA;
+
+/**********************************************************************
+ *
+ * Test of poly1305 internal functions
+ *
+ ***/
+
+static TESTDATA tests[] = {
+ /*
+ * RFC7539
+ */
+ {
+ {
+ 34,
+ {
+ 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72,
+ 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x46, 0x6f,
+ 0x72, 0x75, 0x6d, 0x20, 0x52, 0x65, 0x73, 0x65,
+ 0x61, 0x72, 0x63, 0x68, 0x20, 0x47, 0x72, 0x6f,
+
+ 0x75, 0x70
+ }
+ },
+ {
+ 32,
+ {
+ 0x85, 0xd6, 0xbe, 0x78, 0x57, 0x55, 0x6d, 0x33,
+ 0x7f, 0x44, 0x52, 0xfe, 0x42, 0xd5, 0x06, 0xa8,
+ 0x01, 0x03, 0x80, 0x8a, 0xfb, 0x0d, 0xb2, 0xfd,
+ 0x4a, 0xbf, 0xf6, 0xaf, 0x41, 0x49, 0xf5, 0x1b
+ }
+ },
+ {
+ 16,
+ {
+ 0xa8, 0x06, 0x1d, 0xc1, 0x30, 0x51, 0x36, 0xc6,
+ 0xc2, 0x2b, 0x8b, 0xaf, 0x0c, 0x01, 0x27, 0xa9
+ }
+ }
+ },
+ /*
+ * test vectors from "The Poly1305-AES message-authentication code"
+ */
+ {
+ {
+ 2,
+ {
+ 0xf3, 0xf6
+ }
+ },
+ {
+ 32,
+ {
+ 0x85, 0x1f, 0xc4, 0x0c, 0x34, 0x67, 0xac, 0x0b,
+ 0xe0, 0x5c, 0xc2, 0x04, 0x04, 0xf3, 0xf7, 0x00,
+ 0x58, 0x0b, 0x3b, 0x0f, 0x94, 0x47, 0xbb, 0x1e,
+ 0x69, 0xd0, 0x95, 0xb5, 0x92, 0x8b, 0x6d, 0xbc
+ }
+ },
+ {
+ 16,
+ {
+ 0xf4, 0xc6, 0x33, 0xc3, 0x04, 0x4f, 0xc1, 0x45,
+ 0xf8, 0x4f, 0x33, 0x5c, 0xb8, 0x19, 0x53, 0xde
+ }
+ }
+ },
+ {
+ {
+ 0,
+ {
+ 0
+ }
+ },
+ {
+ 32,
+ {
+ 0xa0, 0xf3, 0x08, 0x00, 0x00, 0xf4, 0x64, 0x00,
+ 0xd0, 0xc7, 0xe9, 0x07, 0x6c, 0x83, 0x44, 0x03,
+ 0xdd, 0x3f, 0xab, 0x22, 0x51, 0xf1, 0x1a, 0xc7,
+ 0x59, 0xf0, 0x88, 0x71, 0x29, 0xcc, 0x2e, 0xe7
+ }
+ },
+ {
+ 16,
+ {
+ 0xdd, 0x3f, 0xab, 0x22, 0x51, 0xf1, 0x1a, 0xc7,
+ 0x59, 0xf0, 0x88, 0x71, 0x29, 0xcc, 0x2e, 0xe7
+ }
+ }
+ },
+ {
+ {
+ 32,
+ {
+ 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
+ 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24,
+ 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb,
+ 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36
+ }
+ },
+ {
+ 32,
+ {
+ 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09,
+ 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08,
+ 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88,
+ 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef
+ }
+ },
+ {
+ 16,
+ {
+ 0x0e, 0xe1, 0xc1, 0x6b, 0xb7, 0x3f, 0x0f, 0x4f,
+ 0xd1, 0x98, 0x81, 0x75, 0x3c, 0x01, 0xcd, 0xbe
+ }
+ }
+ },
+ {
+ {
+ 63,
+ {
+ 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
+ 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
+ 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
+ 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
+
+ 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
+ 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
+ 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
+ 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9
+ }
+ },
+ {
+ 32,
+ {
+ 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
+ 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
+ 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
+ 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
+ }
+ },
+ {
+ 16,
+ {
+ 0x51, 0x54, 0xad, 0x0d, 0x2c, 0xb2, 0x6e, 0x01,
+ 0x27, 0x4f, 0xc5, 0x11, 0x48, 0x49, 0x1f, 0x1b
+ }
+ },
+ },
+ /*
+ * self-generated vectors exercise "significant" lengths, such that
+ * are handled by different code paths
+ */
+ {
+ {
+ 64,
+ {
+ 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
+ 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
+ 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
+ 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
+
+ 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
+ 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
+ 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
+ 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf
+ }
+ },
+ {
+ 32,
+ {
+ 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
+ 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
+ 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
+ 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
+ }
+ },
+ {
+ 16,
+ {
+ 0x81, 0x20, 0x59, 0xa5, 0xda, 0x19, 0x86, 0x37,
+ 0xca, 0xc7, 0xc4, 0xa6, 0x31, 0xbe, 0xe4, 0x66
+ }
+ },
+ },
+ {
+ {
+ 48,
+ {
+ 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
+ 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
+ 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
+ 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
+
+ 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
+ 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67
+ }
+ },
+ {
+ 32,
+ {
+ 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
+ 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
+ 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
+ 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
+
+ }
+ },
+ {
+ 16,
+ {
+ 0x5b, 0x88, 0xd7, 0xf6, 0x22, 0x8b, 0x11, 0xe2,
+ 0xe2, 0x85, 0x79, 0xa5, 0xc0, 0xc1, 0xf7, 0x61
+ }
+ },
+ },
+ {
+ {
+ 96,
+ {
+ 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
+ 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
+ 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
+ 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
+
+ 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
+ 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
+ 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
+ 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf,
+
+ 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
+ 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24,
+ 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb,
+ 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36
+ }
+ },
+ {
+ 32,
+ {
+ 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
+ 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
+ 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
+ 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
+ }
+ },
+ {
+ 16,
+ {
+ 0xbb, 0xb6, 0x13, 0xb2, 0xb6, 0xd7, 0x53, 0xba,
+ 0x07, 0x39, 0x5b, 0x91, 0x6a, 0xae, 0xce, 0x15
+ }
+ },
+ },
+ {
+ {
+ 112,
+ {
+ 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
+ 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
+ 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
+ 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
+
+ 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
+ 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
+ 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
+ 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf,
+
+ 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09,
+ 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08,
+ 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88,
+ 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef,
+
+ 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
+ 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24
+ }
+ },
+ {
+ 32,
+ {
+ 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
+ 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
+ 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
+ 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
+ }
+ },
+ {
+ 16,
+ {
+ 0xc7, 0x94, 0xd7, 0x05, 0x7d, 0x17, 0x78, 0xc4,
+ 0xbb, 0xee, 0x0a, 0x39, 0xb3, 0xd9, 0x73, 0x42
+ }
+ },
+ },
+ {
+ {
+ 128,
+ {
+ 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
+ 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
+ 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
+ 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
+
+ 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
+ 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
+ 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
+ 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf,
+
+ 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09,
+ 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08,
+ 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88,
+ 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef,
+
+ 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
+ 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24,
+ 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb,
+ 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36
+ }
+ },
+ {
+ 32,
+ {
+ 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
+ 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
+ 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
+ 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
+ }
+ },
+ {
+ 16,
+ {
+ 0xff, 0xbc, 0xb9, 0xb3, 0x71, 0x42, 0x31, 0x52,
+ 0xd7, 0xfc, 0xa5, 0xad, 0x04, 0x2f, 0xba, 0xa9
+ }
+ },
+ },
+ {
+ {
+ 144,
+ {
+ 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
+ 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
+ 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
+ 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
+
+ 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
+ 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
+ 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
+ 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf,
+
+ 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09,
+ 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08,
+ 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88,
+ 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef,
+
+ 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
+ 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24,
+ 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb,
+ 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36,
+
+ 0x81, 0x20, 0x59, 0xa5, 0xda, 0x19, 0x86, 0x37,
+ 0xca, 0xc7, 0xc4, 0xa6, 0x31, 0xbe, 0xe4, 0x66
+ }
+ },
+ {
+ 32,
+ {
+ 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
+ 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
+ 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
+ 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
+ }
+ },
+ {
+ 16,
+ {
+ 0x06, 0x9e, 0xd6, 0xb8, 0xef, 0x0f, 0x20, 0x7b,
+ 0x3e, 0x24, 0x3b, 0xb1, 0x01, 0x9f, 0xe6, 0x32
+ }
+ },
+ },
+ {
+ {
+ 160,
+ {
+ 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
+ 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
+ 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
+ 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
+
+ 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
+ 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
+ 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
+ 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf,
+
+ 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09,
+ 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08,
+ 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88,
+ 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef,
+
+ 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
+ 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24,
+ 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb,
+ 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36,
+
+ 0x81, 0x20, 0x59, 0xa5, 0xda, 0x19, 0x86, 0x37,
+ 0xca, 0xc7, 0xc4, 0xa6, 0x31, 0xbe, 0xe4, 0x66,
+ 0x5b, 0x88, 0xd7, 0xf6, 0x22, 0x8b, 0x11, 0xe2,
+ 0xe2, 0x85, 0x79, 0xa5, 0xc0, 0xc1, 0xf7, 0x61
+ }
+ },
+ {
+ 32,
+ {
+ 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
+ 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
+ 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
+ 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
+ }
+ },
+ {
+ 16,
+ {
+ 0xcc, 0xa3, 0x39, 0xd9, 0xa4, 0x5f, 0xa2, 0x36,
+ 0x8c, 0x2c, 0x68, 0xb3, 0xa4, 0x17, 0x91, 0x33
+ }
+ },
+ },
+ {
+ {
+ 288,
+ {
+ 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
+ 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
+ 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
+ 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
+
+ 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
+ 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
+ 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
+ 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf,
+
+ 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09,
+ 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08,
+ 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88,
+ 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef,
+
+ 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
+ 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24,
+ 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb,
+ 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36,
+
+ 0x81, 0x20, 0x59, 0xa5, 0xda, 0x19, 0x86, 0x37,
+ 0xca, 0xc7, 0xc4, 0xa6, 0x31, 0xbe, 0xe4, 0x66,
+ 0x5b, 0x88, 0xd7, 0xf6, 0x22, 0x8b, 0x11, 0xe2,
+ 0xe2, 0x85, 0x79, 0xa5, 0xc0, 0xc1, 0xf7, 0x61,
+
+ 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
+ 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
+ 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
+ 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
+
+ 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
+ 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
+ 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
+ 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf,
+
+ 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09,
+ 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08,
+ 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88,
+ 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef,
+
+ 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
+ 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24,
+ 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb,
+ 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36
+ }
+ },
+ {
+ 32,
+ {
+ 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
+ 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
+ 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
+ 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
+ }
+ },
+ {
+ 16,
+ {
+ 0x53, 0xf6, 0xe8, 0x28, 0xa2, 0xf0, 0xfe, 0x0e,
+ 0xe8, 0x15, 0xbf, 0x0b, 0xd5, 0x84, 0x1a, 0x34
+ }
+ },
+ },
+ {
+ {
+ 320,
+ {
+ 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
+ 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
+ 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
+ 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
+
+ 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
+ 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
+ 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
+ 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf,
+
+ 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09,
+ 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08,
+ 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88,
+ 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef,
+
+ 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
+ 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24,
+ 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb,
+ 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36,
+
+ 0x81, 0x20, 0x59, 0xa5, 0xda, 0x19, 0x86, 0x37,
+ 0xca, 0xc7, 0xc4, 0xa6, 0x31, 0xbe, 0xe4, 0x66,
+ 0x5b, 0x88, 0xd7, 0xf6, 0x22, 0x8b, 0x11, 0xe2,
+ 0xe2, 0x85, 0x79, 0xa5, 0xc0, 0xc1, 0xf7, 0x61,
+
+ 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34,
+ 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1,
+ 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81,
+ 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0,
+
+ 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2,
+ 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67,
+ 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61,
+ 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf,
+
+ 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09,
+ 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08,
+ 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88,
+ 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef,
+
+ 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8,
+ 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24,
+ 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb,
+ 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36,
+
+ 0x81, 0x20, 0x59, 0xa5, 0xda, 0x19, 0x86, 0x37,
+ 0xca, 0xc7, 0xc4, 0xa6, 0x31, 0xbe, 0xe4, 0x66,
+ 0x5b, 0x88, 0xd7, 0xf6, 0x22, 0x8b, 0x11, 0xe2,
+ 0xe2, 0x85, 0x79, 0xa5, 0xc0, 0xc1, 0xf7, 0x61
+ }
+ },
+ {
+ 32,
+ {
+ 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c,
+ 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07,
+ 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1,
+ 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57
+ }
+ },
+ {
+ 16,
+ {
+ 0xb8, 0x46, 0xd4, 0x4e, 0x9b, 0xbd, 0x53, 0xce,
+ 0xdf, 0xfb, 0xfb, 0xb6, 0xb7, 0xfa, 0x49, 0x33
+ }
+ },
+ },
+ /*
+ * 4th power of the key spills to 131th bit in SIMD key setup
+ */
+ {
+ {
+ 256,
+ {
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+ }
+ },
+ {
+ 32,
+ {
+ 0xad, 0x62, 0x81, 0x07, 0xe8, 0x35, 0x1d, 0x0f,
+ 0x2c, 0x23, 0x1a, 0x05, 0xdc, 0x4a, 0x41, 0x06,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ }
+ },
+ {
+ 16,
+ {
+ 0x07, 0x14, 0x5a, 0x4c, 0x02, 0xfe, 0x5f, 0xa3,
+ 0x20, 0x36, 0xde, 0x68, 0xfa, 0xbe, 0x90, 0x66
+ }
+ },
+ },
+ /*
+ * poly1305_ieee754.c failed this in final stage
+ */
+ {
+ {
+ 252,
+ {
+ 0x84, 0x23, 0x64, 0xe1, 0x56, 0x33, 0x6c, 0x09,
+ 0x98, 0xb9, 0x33, 0xa6, 0x23, 0x77, 0x26, 0x18,
+ 0x0d, 0x9e, 0x3f, 0xdc, 0xbd, 0xe4, 0xcd, 0x5d,
+ 0x17, 0x08, 0x0f, 0xc3, 0xbe, 0xb4, 0x96, 0x14,
+
+ 0xd7, 0x12, 0x2c, 0x03, 0x74, 0x63, 0xff, 0x10,
+ 0x4d, 0x73, 0xf1, 0x9c, 0x12, 0x70, 0x46, 0x28,
+ 0xd4, 0x17, 0xc4, 0xc5, 0x4a, 0x3f, 0xe3, 0x0d,
+ 0x3c, 0x3d, 0x77, 0x14, 0x38, 0x2d, 0x43, 0xb0,
+
+ 0x38, 0x2a, 0x50, 0xa5, 0xde, 0xe5, 0x4b, 0xe8,
+ 0x44, 0xb0, 0x76, 0xe8, 0xdf, 0x88, 0x20, 0x1a,
+ 0x1c, 0xd4, 0x3b, 0x90, 0xeb, 0x21, 0x64, 0x3f,
+ 0xa9, 0x6f, 0x39, 0xb5, 0x18, 0xaa, 0x83, 0x40,
+
+ 0xc9, 0x42, 0xff, 0x3c, 0x31, 0xba, 0xf7, 0xc9,
+ 0xbd, 0xbf, 0x0f, 0x31, 0xae, 0x3f, 0xa0, 0x96,
+ 0xbf, 0x8c, 0x63, 0x03, 0x06, 0x09, 0x82, 0x9f,
+ 0xe7, 0x2e, 0x17, 0x98, 0x24, 0x89, 0x0b, 0xc8,
+
+ 0xe0, 0x8c, 0x31, 0x5c, 0x1c, 0xce, 0x2a, 0x83,
+ 0x14, 0x4d, 0xbb, 0xff, 0x09, 0xf7, 0x4e, 0x3e,
+ 0xfc, 0x77, 0x0b, 0x54, 0xd0, 0x98, 0x4a, 0x8f,
+ 0x19, 0xb1, 0x47, 0x19, 0xe6, 0x36, 0x35, 0x64,
+
+ 0x1d, 0x6b, 0x1e, 0xed, 0xf6, 0x3e, 0xfb, 0xf0,
+ 0x80, 0xe1, 0x78, 0x3d, 0x32, 0x44, 0x54, 0x12,
+ 0x11, 0x4c, 0x20, 0xde, 0x0b, 0x83, 0x7a, 0x0d,
+ 0xfa, 0x33, 0xd6, 0xb8, 0x28, 0x25, 0xff, 0xf4,
+
+ 0x4c, 0x9a, 0x70, 0xea, 0x54, 0xce, 0x47, 0xf0,
+ 0x7d, 0xf6, 0x98, 0xe6, 0xb0, 0x33, 0x23, 0xb5,
+ 0x30, 0x79, 0x36, 0x4a, 0x5f, 0xc3, 0xe9, 0xdd,
+ 0x03, 0x43, 0x92, 0xbd, 0xde, 0x86, 0xdc, 0xcd,
+
+ 0xda, 0x94, 0x32, 0x1c, 0x5e, 0x44, 0x06, 0x04,
+ 0x89, 0x33, 0x6c, 0xb6, 0x5b, 0xf3, 0x98, 0x9c,
+ 0x36, 0xf7, 0x28, 0x2c, 0x2f, 0x5d, 0x2b, 0x88,
+ 0x2c, 0x17, 0x1e, 0x74
+ }
+ },
+ {
+ 32,
+ {
+ 0x95, 0xd5, 0xc0, 0x05, 0x50, 0x3e, 0x51, 0x0d,
+ 0x8c, 0xd0, 0xaa, 0x07, 0x2c, 0x4a, 0x4d, 0x06,
+ 0x6e, 0xab, 0xc5, 0x2d, 0x11, 0x65, 0x3d, 0xf4,
+ 0x7f, 0xbf, 0x63, 0xab, 0x19, 0x8b, 0xcc, 0x26
+ }
+ },
+ {
+ 16,
+ {
+ 0xf2, 0x48, 0x31, 0x2e, 0x57, 0x8d, 0x9d, 0x58,
+ 0xf8, 0xb7, 0xbb, 0x4d, 0x19, 0x10, 0x54, 0x31
+ }
+ },
+ },
+ /*
+ * AVX2 in poly1305-x86.pl failed this with 176+32 split
+ */
+ {
+ {
+ 208,
+ {
+ 0x24, 0x8a, 0xc3, 0x10, 0x85, 0xb6, 0xc2, 0xad,
+ 0xaa, 0xa3, 0x82, 0x59, 0xa0, 0xd7, 0x19, 0x2c,
+ 0x5c, 0x35, 0xd1, 0xbb, 0x4e, 0xf3, 0x9a, 0xd9,
+ 0x4c, 0x38, 0xd1, 0xc8, 0x24, 0x79, 0xe2, 0xdd,
+
+ 0x21, 0x59, 0xa0, 0x77, 0x02, 0x4b, 0x05, 0x89,
+ 0xbc, 0x8a, 0x20, 0x10, 0x1b, 0x50, 0x6f, 0x0a,
+ 0x1a, 0xd0, 0xbb, 0xab, 0x76, 0xe8, 0x3a, 0x83,
+ 0xf1, 0xb9, 0x4b, 0xe6, 0xbe, 0xae, 0x74, 0xe8,
+
+ 0x74, 0xca, 0xb6, 0x92, 0xc5, 0x96, 0x3a, 0x75,
+ 0x43, 0x6b, 0x77, 0x61, 0x21, 0xec, 0x9f, 0x62,
+ 0x39, 0x9a, 0x3e, 0x66, 0xb2, 0xd2, 0x27, 0x07,
+ 0xda, 0xe8, 0x19, 0x33, 0xb6, 0x27, 0x7f, 0x3c,
+
+ 0x85, 0x16, 0xbc, 0xbe, 0x26, 0xdb, 0xbd, 0x86,
+ 0xf3, 0x73, 0x10, 0x3d, 0x7c, 0xf4, 0xca, 0xd1,
+ 0x88, 0x8c, 0x95, 0x21, 0x18, 0xfb, 0xfb, 0xd0,
+ 0xd7, 0xb4, 0xbe, 0xdc, 0x4a, 0xe4, 0x93, 0x6a,
+
+ 0xff, 0x91, 0x15, 0x7e, 0x7a, 0xa4, 0x7c, 0x54,
+ 0x44, 0x2e, 0xa7, 0x8d, 0x6a, 0xc2, 0x51, 0xd3,
+ 0x24, 0xa0, 0xfb, 0xe4, 0x9d, 0x89, 0xcc, 0x35,
+ 0x21, 0xb6, 0x6d, 0x16, 0xe9, 0xc6, 0x6a, 0x37,
+
+ 0x09, 0x89, 0x4e, 0x4e, 0xb0, 0xa4, 0xee, 0xdc,
+ 0x4a, 0xe1, 0x94, 0x68, 0xe6, 0x6b, 0x81, 0xf2,
+
+ 0x71, 0x35, 0x1b, 0x1d, 0x92, 0x1e, 0xa5, 0x51,
+ 0x04, 0x7a, 0xbc, 0xc6, 0xb8, 0x7a, 0x90, 0x1f,
+ 0xde, 0x7d, 0xb7, 0x9f, 0xa1, 0x81, 0x8c, 0x11,
+ 0x33, 0x6d, 0xbc, 0x07, 0x24, 0x4a, 0x40, 0xeb
+ }
+ },
+ {
+ 32,
+ {
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ }
+ },
+ {
+ 16,
+ {
+ 0xbc, 0x93, 0x9b, 0xc5, 0x28, 0x14, 0x80, 0xfa,
+ 0x99, 0xc6, 0xd6, 0x8c, 0x25, 0x8e, 0xc4, 0x2f
+ }
+ },
+ },
+ /*
+ * test vectors from Google
+ */
+ {
+ {
+ 0,
+ {
+ 0x00,
+ }
+ },
+ {
+ 32,
+ {
+ 0xc8, 0xaf, 0xaa, 0xc3, 0x31, 0xee, 0x37, 0x2c,
+ 0xd6, 0x08, 0x2d, 0xe1, 0x34, 0x94, 0x3b, 0x17,
+ 0x47, 0x10, 0x13, 0x0e, 0x9f, 0x6f, 0xea, 0x8d,
+ 0x72, 0x29, 0x38, 0x50, 0xa6, 0x67, 0xd8, 0x6c
+ }
+ },
+ {
+ 16,
+ {
+ 0x47, 0x10, 0x13, 0x0e, 0x9f, 0x6f, 0xea, 0x8d,
+ 0x72, 0x29, 0x38, 0x50, 0xa6, 0x67, 0xd8, 0x6c
+ }
+ },
+ },
+ {
+ {
+ 12,
+ {
+ 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f,
+ 0x72, 0x6c, 0x64, 0x21
+ }
+ },
+ {
+ 32,
+ {
+ 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
+ 0x33, 0x32, 0x2d, 0x62, 0x79, 0x74, 0x65, 0x20,
+ 0x6b, 0x65, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20,
+ 0x50, 0x6f, 0x6c, 0x79, 0x31, 0x33, 0x30, 0x35
+ }
+ },
+ {
+ 16,
+ {
+ 0xa6, 0xf7, 0x45, 0x00, 0x8f, 0x81, 0xc9, 0x16,
+ 0xa2, 0x0d, 0xcc, 0x74, 0xee, 0xf2, 0xb2, 0xf0
+ }
+ },
+ },
+ {
+ {
+ 32,
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ }
+ },
+ {
+ 32,
+ {
+ 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
+ 0x33, 0x32, 0x2d, 0x62, 0x79, 0x74, 0x65, 0x20,
+ 0x6b, 0x65, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20,
+ 0x50, 0x6f, 0x6c, 0x79, 0x31, 0x33, 0x30, 0x35
+ }
+ },
+ {
+ 16,
+ {
+ 0x49, 0xec, 0x78, 0x09, 0x0e, 0x48, 0x1e, 0xc6,
+ 0xc2, 0x6b, 0x33, 0xb9, 0x1c, 0xcc, 0x03, 0x07
+ }
+ },
+ },
+ {
+ {
+ 128,
+ {
+ 0x89, 0xda, 0xb8, 0x0b, 0x77, 0x17, 0xc1, 0xdb,
+ 0x5d, 0xb4, 0x37, 0x86, 0x0a, 0x3f, 0x70, 0x21,
+ 0x8e, 0x93, 0xe1, 0xb8, 0xf4, 0x61, 0xfb, 0x67,
+ 0x7f, 0x16, 0xf3, 0x5f, 0x6f, 0x87, 0xe2, 0xa9,
+
+ 0x1c, 0x99, 0xbc, 0x3a, 0x47, 0xac, 0xe4, 0x76,
+ 0x40, 0xcc, 0x95, 0xc3, 0x45, 0xbe, 0x5e, 0xcc,
+ 0xa5, 0xa3, 0x52, 0x3c, 0x35, 0xcc, 0x01, 0x89,
+ 0x3a, 0xf0, 0xb6, 0x4a, 0x62, 0x03, 0x34, 0x27,
+
+ 0x03, 0x72, 0xec, 0x12, 0x48, 0x2d, 0x1b, 0x1e,
+ 0x36, 0x35, 0x61, 0x69, 0x8a, 0x57, 0x8b, 0x35,
+ 0x98, 0x03, 0x49, 0x5b, 0xb4, 0xe2, 0xef, 0x19,
+ 0x30, 0xb1, 0x7a, 0x51, 0x90, 0xb5, 0x80, 0xf1,
+
+ 0x41, 0x30, 0x0d, 0xf3, 0x0a, 0xdb, 0xec, 0xa2,
+ 0x8f, 0x64, 0x27, 0xa8, 0xbc, 0x1a, 0x99, 0x9f,
+ 0xd5, 0x1c, 0x55, 0x4a, 0x01, 0x7d, 0x09, 0x5d,
+ 0x8c, 0x3e, 0x31, 0x27, 0xda, 0xf9, 0xf5, 0x95
+ }
+ },
+ {
+ 32,
+ {
+ 0x2d, 0x77, 0x3b, 0xe3, 0x7a, 0xdb, 0x1e, 0x4d,
+ 0x68, 0x3b, 0xf0, 0x07, 0x5e, 0x79, 0xc4, 0xee,
+ 0x03, 0x79, 0x18, 0x53, 0x5a, 0x7f, 0x99, 0xcc,
+ 0xb7, 0x04, 0x0f, 0xb5, 0xf5, 0xf4, 0x3a, 0xea
+ }
+ },
+ {
+ 16,
+ {
+ 0xc8, 0x5d, 0x15, 0xed, 0x44, 0xc3, 0x78, 0xd6,
+ 0xb0, 0x0e, 0x23, 0x06, 0x4c, 0x7b, 0xcd, 0x51
+ }
+ },
+ },
+ {
+ {
+ 528,
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b,
+ 0x17, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00,
+
+ 0x06, 0xdb, 0x1f, 0x1f, 0x36, 0x8d, 0x69, 0x6a,
+ 0x81, 0x0a, 0x34, 0x9c, 0x0c, 0x71, 0x4c, 0x9a,
+ 0x5e, 0x78, 0x50, 0xc2, 0x40, 0x7d, 0x72, 0x1a,
+ 0xcd, 0xed, 0x95, 0xe0, 0x18, 0xd7, 0xa8, 0x52,
+
+ 0x66, 0xa6, 0xe1, 0x28, 0x9c, 0xdb, 0x4a, 0xeb,
+ 0x18, 0xda, 0x5a, 0xc8, 0xa2, 0xb0, 0x02, 0x6d,
+ 0x24, 0xa5, 0x9a, 0xd4, 0x85, 0x22, 0x7f, 0x3e,
+ 0xae, 0xdb, 0xb2, 0xe7, 0xe3, 0x5e, 0x1c, 0x66,
+
+ 0xcd, 0x60, 0xf9, 0xab, 0xf7, 0x16, 0xdc, 0xc9,
+ 0xac, 0x42, 0x68, 0x2d, 0xd7, 0xda, 0xb2, 0x87,
+ 0xa7, 0x02, 0x4c, 0x4e, 0xef, 0xc3, 0x21, 0xcc,
+ 0x05, 0x74, 0xe1, 0x67, 0x93, 0xe3, 0x7c, 0xec,
+
+ 0x03, 0xc5, 0xbd, 0xa4, 0x2b, 0x54, 0xc1, 0x14,
+ 0xa8, 0x0b, 0x57, 0xaf, 0x26, 0x41, 0x6c, 0x7b,
+ 0xe7, 0x42, 0x00, 0x5e, 0x20, 0x85, 0x5c, 0x73,
+ 0xe2, 0x1d, 0xc8, 0xe2, 0xed, 0xc9, 0xd4, 0x35,
+
+ 0xcb, 0x6f, 0x60, 0x59, 0x28, 0x00, 0x11, 0xc2,
+ 0x70, 0xb7, 0x15, 0x70, 0x05, 0x1c, 0x1c, 0x9b,
+ 0x30, 0x52, 0x12, 0x66, 0x20, 0xbc, 0x1e, 0x27,
+ 0x30, 0xfa, 0x06, 0x6c, 0x7a, 0x50, 0x9d, 0x53,
+
+ 0xc6, 0x0e, 0x5a, 0xe1, 0xb4, 0x0a, 0xa6, 0xe3,
+ 0x9e, 0x49, 0x66, 0x92, 0x28, 0xc9, 0x0e, 0xec,
+ 0xb4, 0xa5, 0x0d, 0xb3, 0x2a, 0x50, 0xbc, 0x49,
+ 0xe9, 0x0b, 0x4f, 0x4b, 0x35, 0x9a, 0x1d, 0xfd,
+
+ 0x11, 0x74, 0x9c, 0xd3, 0x86, 0x7f, 0xcf, 0x2f,
+ 0xb7, 0xbb, 0x6c, 0xd4, 0x73, 0x8f, 0x6a, 0x4a,
+ 0xd6, 0xf7, 0xca, 0x50, 0x58, 0xf7, 0x61, 0x88,
+ 0x45, 0xaf, 0x9f, 0x02, 0x0f, 0x6c, 0x3b, 0x96,
+
+ 0x7b, 0x8f, 0x4c, 0xd4, 0xa9, 0x1e, 0x28, 0x13,
+ 0xb5, 0x07, 0xae, 0x66, 0xf2, 0xd3, 0x5c, 0x18,
+ 0x28, 0x4f, 0x72, 0x92, 0x18, 0x60, 0x62, 0xe1,
+ 0x0f, 0xd5, 0x51, 0x0d, 0x18, 0x77, 0x53, 0x51,
+
+ 0xef, 0x33, 0x4e, 0x76, 0x34, 0xab, 0x47, 0x43,
+ 0xf5, 0xb6, 0x8f, 0x49, 0xad, 0xca, 0xb3, 0x84,
+ 0xd3, 0xfd, 0x75, 0xf7, 0x39, 0x0f, 0x40, 0x06,
+ 0xef, 0x2a, 0x29, 0x5c, 0x8c, 0x7a, 0x07, 0x6a,
+
+ 0xd5, 0x45, 0x46, 0xcd, 0x25, 0xd2, 0x10, 0x7f,
+ 0xbe, 0x14, 0x36, 0xc8, 0x40, 0x92, 0x4a, 0xae,
+ 0xbe, 0x5b, 0x37, 0x08, 0x93, 0xcd, 0x63, 0xd1,
+ 0x32, 0x5b, 0x86, 0x16, 0xfc, 0x48, 0x10, 0x88,
+
+ 0x6b, 0xc1, 0x52, 0xc5, 0x32, 0x21, 0xb6, 0xdf,
+ 0x37, 0x31, 0x19, 0x39, 0x32, 0x55, 0xee, 0x72,
+ 0xbc, 0xaa, 0x88, 0x01, 0x74, 0xf1, 0x71, 0x7f,
+ 0x91, 0x84, 0xfa, 0x91, 0x64, 0x6f, 0x17, 0xa2,
+
+ 0x4a, 0xc5, 0x5d, 0x16, 0xbf, 0xdd, 0xca, 0x95,
+ 0x81, 0xa9, 0x2e, 0xda, 0x47, 0x92, 0x01, 0xf0,
+ 0xed, 0xbf, 0x63, 0x36, 0x00, 0xd6, 0x06, 0x6d,
+ 0x1a, 0xb3, 0x6d, 0x5d, 0x24, 0x15, 0xd7, 0x13,
+
+ 0x51, 0xbb, 0xcd, 0x60, 0x8a, 0x25, 0x10, 0x8d,
+ 0x25, 0x64, 0x19, 0x92, 0xc1, 0xf2, 0x6c, 0x53,
+ 0x1c, 0xf9, 0xf9, 0x02, 0x03, 0xbc, 0x4c, 0xc1,
+ 0x9f, 0x59, 0x27, 0xd8, 0x34, 0xb0, 0xa4, 0x71,
+
+ 0x16, 0xd3, 0x88, 0x4b, 0xbb, 0x16, 0x4b, 0x8e,
+ 0xc8, 0x83, 0xd1, 0xac, 0x83, 0x2e, 0x56, 0xb3,
+ 0x91, 0x8a, 0x98, 0x60, 0x1a, 0x08, 0xd1, 0x71,
+ 0x88, 0x15, 0x41, 0xd5, 0x94, 0xdb, 0x39, 0x9c,
+
+ 0x6a, 0xe6, 0x15, 0x12, 0x21, 0x74, 0x5a, 0xec,
+ 0x81, 0x4c, 0x45, 0xb0, 0xb0, 0x5b, 0x56, 0x54,
+ 0x36, 0xfd, 0x6f, 0x13, 0x7a, 0xa1, 0x0a, 0x0c,
+ 0x0b, 0x64, 0x37, 0x61, 0xdb, 0xd6, 0xf9, 0xa9,
+
+ 0xdc, 0xb9, 0x9b, 0x1a, 0x6e, 0x69, 0x08, 0x54,
+ 0xce, 0x07, 0x69, 0xcd, 0xe3, 0x97, 0x61, 0xd8,
+ 0x2f, 0xcd, 0xec, 0x15, 0xf0, 0xd9, 0x2d, 0x7d,
+ 0x8e, 0x94, 0xad, 0xe8, 0xeb, 0x83, 0xfb, 0xe0
+ }
+ },
+ {
+ 32,
+ {
+ 0x99, 0xe5, 0x82, 0x2d, 0xd4, 0x17, 0x3c, 0x99,
+ 0x5e, 0x3d, 0xae, 0x0d, 0xde, 0xfb, 0x97, 0x74,
+ 0x3f, 0xde, 0x3b, 0x08, 0x01, 0x34, 0xb3, 0x9f,
+ 0x76, 0xe9, 0xbf, 0x8d, 0x0e, 0x88, 0xd5, 0x46
+ }
+ },
+ {
+ 16,
+ {
+ 0x26, 0x37, 0x40, 0x8f, 0xe1, 0x30, 0x86, 0xea,
+ 0x73, 0xf9, 0x71, 0xe3, 0x42, 0x5e, 0x28, 0x20
+ }
+ },
+ },
+ /*
+ * test vectors from Hanno Böck
+ */
+ {
+ {
+ 257,
+ {
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
+ 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
+
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xce, 0xcc, 0xcc, 0xcc,
+
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc5,
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
+
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xe3, 0xcc, 0xcc,
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
+
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xac, 0xcc, 0xcc, 0xcc,
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xe6,
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x00, 0x00, 0x00,
+ 0xaf, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
+
+ 0xcc, 0xcc, 0xff, 0xff, 0xff, 0xf5, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+ 0x00, 0xff, 0xff, 0xff, 0xe7, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x71, 0x92, 0x05, 0xa8, 0x52, 0x1d,
+
+ 0xfc
+ }
+ },
+ {
+ 32,
+ {
+ 0x7f, 0x1b, 0x02, 0x64, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc
+ }
+ },
+ {
+ 16,
+ {
+ 0x85, 0x59, 0xb8, 0x76, 0xec, 0xee, 0xd6, 0x6e,
+ 0xb3, 0x77, 0x98, 0xc0, 0x45, 0x7b, 0xaf, 0xf9
+ }
+ },
+ },
+ {
+ {
+ 39,
+ {
+ 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
+ 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
+ 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
+ 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x64
+ }
+ },
+ {
+ 32,
+ {
+ 0xe0, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
+ 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa
+ }
+ },
+ {
+ 16,
+ {
+ 0x00, 0xbd, 0x12, 0x58, 0x97, 0x8e, 0x20, 0x54,
+ 0x44, 0xc9, 0xaa, 0xaa, 0x82, 0x00, 0x6f, 0xed
+ }
+ },
+ },
+ {
+ {
+ 2,
+ {
+ 0x02, 0xfc
+ }
+ },
+ {
+ 32,
+ {
+ 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
+ 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
+ 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
+ 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c
+ }
+ },
+ {
+ 16,
+ {
+ 0x06, 0x12, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
+ 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c
+ }
+ },
+ },
+ {
+ {
+ 415,
+ {
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+
+ 0x7b, 0x7b, 0x5c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x6e, 0x7b, 0x00, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x7b, 0x7b, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x5c,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+ 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+
+ 0x7b, 0x6e, 0x7b, 0x00, 0x13, 0x00, 0x00, 0x00,
+ 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+ 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0xef, 0xff, 0x00,
+ 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
+ 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x64, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00,
+
+ 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x20, 0x00, 0xef, 0xff, 0x00, 0x09,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x7a, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+
+ 0x00, 0x09, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc
+ }
+ },
+ {
+ 32,
+ {
+ 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x7b
+ }
+ },
+ {
+ 16,
+ {
+ 0x33, 0x20, 0x5b, 0xbf, 0x9e, 0x9f, 0x8f, 0x72,
+ 0x12, 0xab, 0x9e, 0x2a, 0xb9, 0xb7, 0xe4, 0xa5
+ }
+ },
+ },
+ {
+ {
+ 118,
+ {
+ 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+ 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+ 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+ 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+
+ 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+ 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+ 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+ 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+
+ 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+ 0x77, 0x77, 0x77, 0x77, 0xff, 0xff, 0xff, 0xe9,
+ 0xe9, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac,
+ 0xac, 0xac, 0xac, 0xac, 0x00, 0x00, 0xac, 0xac,
+
+ 0xec, 0x01, 0x00, 0xac, 0xac, 0xac, 0x2c, 0xac,
+ 0xa2, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac,
+ 0xac, 0xac, 0xac, 0xac, 0x64, 0xf2
+ }
+ },
+ {
+ 32,
+ {
+ 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7f,
+ 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xcf, 0x77, 0x77, 0x77, 0x77, 0x77,
+ 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77
+ }
+ },
+ {
+ 16,
+ {
+ 0x02, 0xee, 0x7c, 0x8c, 0x54, 0x6d, 0xde, 0xb1,
+ 0xa4, 0x67, 0xe4, 0xc3, 0x98, 0x11, 0x58, 0xb9
+ }
+ },
+ },
+ /*
+ * test vectors from Andrew Moon
+ */
+ { /* nacl */
+ {
+ 131,
+ {
+ 0x8e, 0x99, 0x3b, 0x9f, 0x48, 0x68, 0x12, 0x73,
+ 0xc2, 0x96, 0x50, 0xba, 0x32, 0xfc, 0x76, 0xce,
+ 0x48, 0x33, 0x2e, 0xa7, 0x16, 0x4d, 0x96, 0xa4,
+ 0x47, 0x6f, 0xb8, 0xc5, 0x31, 0xa1, 0x18, 0x6a,
+
+ 0xc0, 0xdf, 0xc1, 0x7c, 0x98, 0xdc, 0xe8, 0x7b,
+ 0x4d, 0xa7, 0xf0, 0x11, 0xec, 0x48, 0xc9, 0x72,
+ 0x71, 0xd2, 0xc2, 0x0f, 0x9b, 0x92, 0x8f, 0xe2,
+ 0x27, 0x0d, 0x6f, 0xb8, 0x63, 0xd5, 0x17, 0x38,
+
+ 0xb4, 0x8e, 0xee, 0xe3, 0x14, 0xa7, 0xcc, 0x8a,
+ 0xb9, 0x32, 0x16, 0x45, 0x48, 0xe5, 0x26, 0xae,
+ 0x90, 0x22, 0x43, 0x68, 0x51, 0x7a, 0xcf, 0xea,
+ 0xbd, 0x6b, 0xb3, 0x73, 0x2b, 0xc0, 0xe9, 0xda,
+
+ 0x99, 0x83, 0x2b, 0x61, 0xca, 0x01, 0xb6, 0xde,
+ 0x56, 0x24, 0x4a, 0x9e, 0x88, 0xd5, 0xf9, 0xb3,
+ 0x79, 0x73, 0xf6, 0x22, 0xa4, 0x3d, 0x14, 0xa6,
+ 0x59, 0x9b, 0x1f, 0x65, 0x4c, 0xb4, 0x5a, 0x74,
+
+ 0xe3, 0x55, 0xa5
+ }
+ },
+ {
+ 32,
+ {
+ 0xee, 0xa6, 0xa7, 0x25, 0x1c, 0x1e, 0x72, 0x91,
+ 0x6d, 0x11, 0xc2, 0xcb, 0x21, 0x4d, 0x3c, 0x25,
+ 0x25, 0x39, 0x12, 0x1d, 0x8e, 0x23, 0x4e, 0x65,
+ 0x2d, 0x65, 0x1f, 0xa4, 0xc8, 0xcf, 0xf8, 0x80
+ }
+ },
+ {
+ 16,
+ {
+ 0xf3, 0xff, 0xc7, 0x70, 0x3f, 0x94, 0x00, 0xe5,
+ 0x2a, 0x7d, 0xfb, 0x4b, 0x3d, 0x33, 0x05, 0xd9
+ }
+ },
+ },
+ { /* wrap 2^130-5 */
+ {
+ 16,
+ {
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+ }
+ },
+ {
+ 32,
+ {
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ }
+ },
+ {
+ 16,
+ {
+ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ }
+ },
+ },
+ { /* wrap 2^128 */
+ {
+ 16,
+ {
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ }
+ },
+ {
+ 32,
+ {
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+ }
+ },
+ {
+ 16,
+ {
+ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ }
+ },
+ },
+ { /* limb carry */
+ {
+ 48,
+ {
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+
+ 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ }
+ },
+ {
+ 32,
+ {
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ }
+ },
+ {
+ 16,
+ {
+ 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ }
+ },
+ },
+ { /* 2^130-5 */
+ {
+ 48,
+ {
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xfb, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
+ 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
+
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+ }
+ },
+ {
+ 32,
+ {
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ }
+ },
+ {
+ 16,
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ }
+ },
+ },
+ { /* 2^130-6 */
+ {
+ 16,
+ {
+ 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+ }
+ },
+ {
+ 32,
+ {
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ }
+ },
+ {
+ 16,
+ {
+ 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+ }
+ },
+ },
+ { /* 5*H+L reduction intermediate */
+ {
+ 64,
+ {
+ 0xe3, 0x35, 0x94, 0xd7, 0x50, 0x5e, 0x43, 0xb9,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x33, 0x94, 0xd7, 0x50, 0x5e, 0x43, 0x79, 0xcd,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ }
+ },
+ {
+ 32,
+ {
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ }
+ },
+ {
+ 16,
+ {
+ 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ }
+ },
+ },
+ { /* 5*H+L reduction final */
+ {
+ 48,
+ {
+ 0xe3, 0x35, 0x94, 0xd7, 0x50, 0x5e, 0x43, 0xb9,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x33, 0x94, 0xd7, 0x50, 0x5e, 0x43, 0x79, 0xcd,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ }
+ },
+ {
+ 32,
+ {
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ }
+ },
+ {
+ 16,
+ {
+ 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ }
+ }
+ }
+};
+
+static int test_poly1305(int idx)
+{
+ POLY1305 poly1305;
+ const TESTDATA test = tests[idx];
+ const unsigned char *in = test.input.data;
+ size_t inlen = test.input.size;
+ const unsigned char *key = test.key.data;
+ const unsigned char *expected = test.expected.data;
+ size_t expectedlen = test.expected.size;
+ unsigned char out[16];
+
+ if (!TEST_size_t_eq(expectedlen, sizeof(out)))
+ return 0;
+
+ Poly1305_Init(&poly1305, key);
+ Poly1305_Update(&poly1305, in, inlen);
+ Poly1305_Final(&poly1305, out);
+
+ if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) {
+ TEST_info("Poly1305 test #%d failed.", idx);
+ return 0;
+ }
+
+ if (inlen > 16) {
+ Poly1305_Init(&poly1305, key);
+ Poly1305_Update(&poly1305, in, 1);
+ Poly1305_Update(&poly1305, in+1, inlen-1);
+ Poly1305_Final(&poly1305, out);
+
+ if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) {
+ TEST_info("Poly1305 test #%d/1+(N-1) failed.", idx);
+ return 0;
+ }
+ }
+
+ if (inlen > 32) {
+ size_t half = inlen / 2;
+
+ Poly1305_Init(&poly1305, key);
+ Poly1305_Update(&poly1305, in, half);
+ Poly1305_Update(&poly1305, in+half, inlen-half);
+ Poly1305_Final(&poly1305, out);
+
+ if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) {
+ TEST_info("Poly1305 test #%d/2 failed.", idx);
+ return 0;
+ }
+
+ for (half = 16; half < inlen; half += 16) {
+ Poly1305_Init(&poly1305, key);
+ Poly1305_Update(&poly1305, in, half);
+ Poly1305_Update(&poly1305, in+half, inlen-half);
+ Poly1305_Final(&poly1305, out);
+
+ if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) {
+ TEST_info("Poly1305 test #%d/%zu+%zu failed.",
+ idx, half, inlen-half);
+ return 0;
+ }
+ }
+ }
+
+ return 1;
+}
+
+int setup_tests(void)
+{
+ ADD_ALL_TESTS(test_poly1305, OSSL_NELEM(tests));
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rc2test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rc2test.c
new file mode 100644
index 000000000..e64d1a728
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rc2test.c
@@ -0,0 +1,68 @@
+/*
+ * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "internal/nelem.h"
+#include "testutil.h"
+
+#ifndef OPENSSL_NO_RC2
+# include <openssl/rc2.h>
+
+static unsigned char RC2key[4][16] = {
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F},
+};
+
+static unsigned char RC2plain[4][8] = {
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+};
+
+static unsigned char RC2cipher[4][8] = {
+ {0x1C, 0x19, 0x8A, 0x83, 0x8D, 0xF0, 0x28, 0xB7},
+ {0x21, 0x82, 0x9C, 0x78, 0xA9, 0xF9, 0xC0, 0x74},
+ {0x13, 0xDB, 0x35, 0x17, 0xD3, 0x21, 0x86, 0x9E},
+ {0x50, 0xDC, 0x01, 0x62, 0xBD, 0x75, 0x7F, 0x31},
+};
+
+static int test_rc2(const int n)
+{
+ int testresult = 1;
+ RC2_KEY key;
+ unsigned char buf[8], buf2[8];
+
+ RC2_set_key(&key, 16, &(RC2key[n][0]), 0 /* or 1024 */ );
+
+ RC2_ecb_encrypt(&RC2plain[n][0], buf, &key, RC2_ENCRYPT);
+ if (!TEST_mem_eq(&RC2cipher[n][0], 8, buf, 8))
+ testresult = 0;
+
+ RC2_ecb_encrypt(buf, buf2, &key, RC2_DECRYPT);
+ if (!TEST_mem_eq(&RC2plain[n][0], 8, buf2, 8))
+ testresult = 0;
+
+ return testresult;
+}
+
+#endif
+
+int setup_tests(void)
+{
+#ifndef OPENSSL_NO_RC2
+ ADD_ALL_TESTS(test_rc2, OSSL_NELEM(RC2key));
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rc4test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rc4test.c
new file mode 100644
index 000000000..15706ea3f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rc4test.c
@@ -0,0 +1,128 @@
+/*
+ * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+
+#include "internal/nelem.h"
+#include "testutil.h"
+
+#ifndef OPENSSL_NO_RC4
+# include <openssl/rc4.h>
+# include <openssl/sha.h>
+
+static unsigned char keys[6][30] = {
+ {8, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef},
+ {8, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef},
+ {8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {4, 0xef, 0x01, 0x23, 0x45},
+ {8, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef},
+ {4, 0xef, 0x01, 0x23, 0x45},
+};
+
+static unsigned char data_len[6] = { 8, 8, 8, 20, 28, 10 };
+
+static unsigned char data[6][30] = {
+ {0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0xff},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff},
+ {0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0,
+ 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0,
+ 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0,
+ 0x12, 0x34, 0x56, 0x78, 0xff},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff},
+};
+
+static unsigned char output[6][30] = {
+ {0x75, 0xb7, 0x87, 0x80, 0x99, 0xe0, 0xc5, 0x96, 0x00},
+ {0x74, 0x94, 0xc2, 0xe7, 0x10, 0x4b, 0x08, 0x79, 0x00},
+ {0xde, 0x18, 0x89, 0x41, 0xa3, 0x37, 0x5d, 0x3a, 0x00},
+ {0xd6, 0xa1, 0x41, 0xa7, 0xec, 0x3c, 0x38, 0xdf,
+ 0xbd, 0x61, 0x5a, 0x11, 0x62, 0xe1, 0xc7, 0xba,
+ 0x36, 0xb6, 0x78, 0x58, 0x00},
+ {0x66, 0xa0, 0x94, 0x9f, 0x8a, 0xf7, 0xd6, 0x89,
+ 0x1f, 0x7f, 0x83, 0x2b, 0xa8, 0x33, 0xc0, 0x0c,
+ 0x89, 0x2e, 0xbe, 0x30, 0x14, 0x3c, 0xe2, 0x87,
+ 0x40, 0x01, 0x1e, 0xcf, 0x00},
+ {0xd6, 0xa1, 0x41, 0xa7, 0xec, 0x3c, 0x38, 0xdf, 0xbd, 0x61, 0x00},
+};
+
+static int test_rc4_encrypt(const int i)
+{
+ unsigned char obuf[512];
+ RC4_KEY key;
+
+ RC4_set_key(&key, keys[i][0], &(keys[i][1]));
+ memset(obuf, 0, sizeof(obuf));
+ RC4(&key, data_len[i], &(data[i][0]), obuf);
+ return TEST_mem_eq(obuf, data_len[i] + 1, output[i], data_len[i] + 1);
+}
+
+static int test_rc4_end_processing(const int i)
+{
+ unsigned char obuf[512];
+ RC4_KEY key;
+
+ RC4_set_key(&key, keys[3][0], &(keys[3][1]));
+ memset(obuf, 0, sizeof(obuf));
+ RC4(&key, i, &(data[3][0]), obuf);
+ if (!TEST_mem_eq(obuf, i, output[3], i))
+ return 0;
+ return TEST_uchar_eq(obuf[i], 0);
+}
+
+static int test_rc4_multi_call(const int i)
+{
+ unsigned char obuf[512];
+ RC4_KEY key;
+
+ RC4_set_key(&key, keys[3][0], &(keys[3][1]));
+ memset(obuf, 0, sizeof(obuf));
+ RC4(&key, i, &(data[3][0]), obuf);
+ RC4(&key, data_len[3] - i, &(data[3][i]), &(obuf[i]));
+ return TEST_mem_eq(obuf, data_len[3] + 1, output[3], data_len[3] + 1);
+}
+
+static int test_rc_bulk(void)
+{
+ RC4_KEY key;
+ unsigned char buf[513];
+ SHA_CTX c;
+ unsigned char md[SHA_DIGEST_LENGTH];
+ int i;
+ static unsigned char expected[] = {
+ 0xa4, 0x7b, 0xcc, 0x00, 0x3d, 0xd0, 0xbd, 0xe1, 0xac, 0x5f,
+ 0x12, 0x1e, 0x45, 0xbc, 0xfb, 0x1a, 0xa1, 0xf2, 0x7f, 0xc5
+ };
+
+ RC4_set_key(&key, keys[0][0], &(keys[3][1]));
+ memset(buf, 0, sizeof(buf));
+ SHA1_Init(&c);
+ for (i = 0; i < 2571; i++) {
+ RC4(&key, sizeof(buf), buf, buf);
+ SHA1_Update(&c, buf, sizeof(buf));
+ }
+ SHA1_Final(md, &c);
+
+ return TEST_mem_eq(md, sizeof(md), expected, sizeof(expected));
+}
+#endif
+
+int setup_tests(void)
+{
+#ifndef OPENSSL_NO_RC4
+ ADD_ALL_TESTS(test_rc4_encrypt, OSSL_NELEM(data_len));
+ ADD_ALL_TESTS(test_rc4_end_processing, data_len[3]);
+ ADD_ALL_TESTS(test_rc4_multi_call, data_len[3]);
+ ADD_TEST(test_rc_bulk);
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rc5test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rc5test.c
new file mode 100644
index 000000000..d49366d99
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rc5test.c
@@ -0,0 +1,234 @@
+/*
+ * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+
+#include "internal/nelem.h"
+#include "testutil.h"
+
+#ifndef OPENSSL_NO_RC5
+# include <openssl/rc5.h>
+
+static unsigned char RC5key[5][16] = {
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x91, 0x5f, 0x46, 0x19, 0xbe, 0x41, 0xb2, 0x51,
+ 0x63, 0x55, 0xa5, 0x01, 0x10, 0xa9, 0xce, 0x91},
+ {0x78, 0x33, 0x48, 0xe7, 0x5a, 0xeb, 0x0f, 0x2f,
+ 0xd7, 0xb1, 0x69, 0xbb, 0x8d, 0xc1, 0x67, 0x87},
+ {0xdc, 0x49, 0xdb, 0x13, 0x75, 0xa5, 0x58, 0x4f,
+ 0x64, 0x85, 0xb4, 0x13, 0xb5, 0xf1, 0x2b, 0xaf},
+ {0x52, 0x69, 0xf1, 0x49, 0xd4, 0x1b, 0xa0, 0x15,
+ 0x24, 0x97, 0x57, 0x4d, 0x7f, 0x15, 0x31, 0x25},
+};
+
+static unsigned char RC5plain[5][8] = {
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x21, 0xA5, 0xDB, 0xEE, 0x15, 0x4B, 0x8F, 0x6D},
+ {0xF7, 0xC0, 0x13, 0xAC, 0x5B, 0x2B, 0x89, 0x52},
+ {0x2F, 0x42, 0xB3, 0xB7, 0x03, 0x69, 0xFC, 0x92},
+ {0x65, 0xC1, 0x78, 0xB2, 0x84, 0xD1, 0x97, 0xCC},
+};
+
+static unsigned char RC5cipher[5][8] = {
+ {0x21, 0xA5, 0xDB, 0xEE, 0x15, 0x4B, 0x8F, 0x6D},
+ {0xF7, 0xC0, 0x13, 0xAC, 0x5B, 0x2B, 0x89, 0x52},
+ {0x2F, 0x42, 0xB3, 0xB7, 0x03, 0x69, 0xFC, 0x92},
+ {0x65, 0xC1, 0x78, 0xB2, 0x84, 0xD1, 0x97, 0xCC},
+ {0xEB, 0x44, 0xE4, 0x15, 0xDA, 0x31, 0x98, 0x24},
+};
+
+# define RC5_CBC_NUM 27
+static unsigned char rc5_cbc_cipher[RC5_CBC_NUM][8] = {
+ {0x7a, 0x7b, 0xba, 0x4d, 0x79, 0x11, 0x1d, 0x1e},
+ {0x79, 0x7b, 0xba, 0x4d, 0x78, 0x11, 0x1d, 0x1e},
+ {0x7a, 0x7b, 0xba, 0x4d, 0x79, 0x11, 0x1d, 0x1f},
+ {0x7a, 0x7b, 0xba, 0x4d, 0x79, 0x11, 0x1d, 0x1f},
+ {0x8b, 0x9d, 0xed, 0x91, 0xce, 0x77, 0x94, 0xa6},
+ {0x2f, 0x75, 0x9f, 0xe7, 0xad, 0x86, 0xa3, 0x78},
+ {0xdc, 0xa2, 0x69, 0x4b, 0xf4, 0x0e, 0x07, 0x88},
+ {0xdc, 0xa2, 0x69, 0x4b, 0xf4, 0x0e, 0x07, 0x88},
+ {0xdc, 0xfe, 0x09, 0x85, 0x77, 0xec, 0xa5, 0xff},
+ {0x96, 0x46, 0xfb, 0x77, 0x63, 0x8f, 0x9c, 0xa8},
+ {0xb2, 0xb3, 0x20, 0x9d, 0xb6, 0x59, 0x4d, 0xa4},
+ {0x54, 0x5f, 0x7f, 0x32, 0xa5, 0xfc, 0x38, 0x36},
+ {0x82, 0x85, 0xe7, 0xc1, 0xb5, 0xbc, 0x74, 0x02},
+ {0xfc, 0x58, 0x6f, 0x92, 0xf7, 0x08, 0x09, 0x34},
+ {0xcf, 0x27, 0x0e, 0xf9, 0x71, 0x7f, 0xf7, 0xc4},
+ {0xe4, 0x93, 0xf1, 0xc1, 0xbb, 0x4d, 0x6e, 0x8c},
+ {0x5c, 0x4c, 0x04, 0x1e, 0x0f, 0x21, 0x7a, 0xc3},
+ {0x92, 0x1f, 0x12, 0x48, 0x53, 0x73, 0xb4, 0xf7},
+ {0x5b, 0xa0, 0xca, 0x6b, 0xbe, 0x7f, 0x5f, 0xad},
+ {0xc5, 0x33, 0x77, 0x1c, 0xd0, 0x11, 0x0e, 0x63},
+ {0x29, 0x4d, 0xdb, 0x46, 0xb3, 0x27, 0x8d, 0x60},
+ {0xda, 0xd6, 0xbd, 0xa9, 0xdf, 0xe8, 0xf7, 0xe8},
+ {0x97, 0xe0, 0x78, 0x78, 0x37, 0xed, 0x31, 0x7f},
+ {0x78, 0x75, 0xdb, 0xf6, 0x73, 0x8c, 0x64, 0x78},
+ {0x8f, 0x34, 0xc3, 0xc6, 0x81, 0xc9, 0x96, 0x95},
+ {0x7c, 0xb3, 0xf1, 0xdf, 0x34, 0xf9, 0x48, 0x11},
+ {0x7f, 0xd1, 0xa0, 0x23, 0xa5, 0xbb, 0xa2, 0x17},
+};
+
+static unsigned char rc5_cbc_key[RC5_CBC_NUM][17] = {
+ {1, 0x00},
+ {1, 0x00},
+ {1, 0x00},
+ {1, 0x00},
+ {1, 0x00},
+ {1, 0x11},
+ {1, 0x00},
+ {4, 0x00, 0x00, 0x00, 0x00},
+ {1, 0x00},
+ {1, 0x00},
+ {1, 0x00},
+ {1, 0x00},
+ {4, 0x01, 0x02, 0x03, 0x04},
+ {4, 0x01, 0x02, 0x03, 0x04},
+ {4, 0x01, 0x02, 0x03, 0x04},
+ {8, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08},
+ {8, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08},
+ {8, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08},
+ {8, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08},
+ {16, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80},
+ {16, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80},
+ {16, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80},
+ {5, 0x01, 0x02, 0x03, 0x04, 0x05},
+ {5, 0x01, 0x02, 0x03, 0x04, 0x05},
+ {5, 0x01, 0x02, 0x03, 0x04, 0x05},
+ {5, 0x01, 0x02, 0x03, 0x04, 0x05},
+ {5, 0x01, 0x02, 0x03, 0x04, 0x05},
+};
+
+static unsigned char rc5_cbc_plain[RC5_CBC_NUM][8] = {
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01},
+ {0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80},
+ {0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80},
+ {0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80},
+ {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
+ {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
+ {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
+ {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
+ {0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80},
+ {0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80},
+ {0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80},
+ {0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80},
+ {0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80},
+ {0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80},
+ {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
+ {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
+ {0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x01},
+};
+
+static int rc5_cbc_rounds[RC5_CBC_NUM] = {
+ 0, 0, 0, 0, 0, 1, 2, 2,
+ 8, 8, 12, 16, 8, 12, 16, 12,
+ 8, 12, 16, 8, 12, 16, 12, 8,
+ 8, 8, 8,
+};
+
+static unsigned char rc5_cbc_iv[RC5_CBC_NUM][8] = {
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08},
+ {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08},
+ {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08},
+ {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08},
+ {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08},
+ {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08},
+ {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08},
+ {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x78, 0x75, 0xdb, 0xf6, 0x73, 0x8c, 0x64, 0x78},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x7c, 0xb3, 0xf1, 0xdf, 0x34, 0xf9, 0x48, 0x11},
+};
+
+static int test_rc5_ecb(int n)
+{
+ int testresult = 1;
+ RC5_32_KEY key;
+ unsigned char buf[8], buf2[8];
+
+ RC5_32_set_key(&key, 16, &RC5key[n][0], 12);
+
+ RC5_32_ecb_encrypt(&RC5plain[n][0], buf, &key, RC5_ENCRYPT);
+ if (!TEST_mem_eq(&RC5cipher[n][0], sizeof(RC5cipher[0]), buf, sizeof(buf)))
+ testresult = 0;
+
+ RC5_32_ecb_encrypt(buf, buf2, &key, RC5_DECRYPT);
+ if (!TEST_mem_eq(&RC5plain[n][0], sizeof(RC5cipher[0]), buf2, sizeof(buf2)))
+ testresult = 0;
+
+ return testresult;
+}
+
+static int test_rc5_cbc(int n)
+{
+ int testresult = 1;
+ int i;
+ RC5_32_KEY key;
+ unsigned char buf[8], buf2[8], ivb[8];
+
+ i = rc5_cbc_rounds[n];
+ if (i >= 8) {
+ RC5_32_set_key(&key, rc5_cbc_key[n][0], &rc5_cbc_key[n][1], i);
+
+ memcpy(ivb, &rc5_cbc_iv[n][0], 8);
+ RC5_32_cbc_encrypt(&rc5_cbc_plain[n][0], buf, 8,
+ &key, &ivb[0], RC5_ENCRYPT);
+
+ if (!TEST_mem_eq(&rc5_cbc_cipher[n][0], sizeof(rc5_cbc_cipher[0]),
+ buf, sizeof(buf)))
+ testresult = 0;
+
+ memcpy(ivb, &rc5_cbc_iv[n][0], 8);
+ RC5_32_cbc_encrypt(buf, buf2, 8, &key, &ivb[0], RC5_DECRYPT);
+ if (!TEST_mem_eq(&rc5_cbc_plain[n][0], sizeof(rc5_cbc_plain[0]),
+ buf2, sizeof(buf2)))
+ testresult = 0;
+ }
+
+ return testresult;
+}
+#endif
+
+int setup_tests(void)
+{
+#ifndef OPENSSL_NO_RC5
+ ADD_ALL_TESTS(test_rc5_ecb, OSSL_NELEM(RC5key));
+ ADD_ALL_TESTS(test_rc5_cbc, RC5_CBC_NUM);
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rdrand_sanitytest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rdrand_sanitytest.c
new file mode 100644
index 000000000..906752a61
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rdrand_sanitytest.c
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "testutil.h"
+#include <openssl/opensslconf.h>
+
+#if (defined(__i386) || defined(__i386__) || defined(_M_IX86) || \
+ defined(__x86_64) || defined(__x86_64__) || \
+ defined(_M_AMD64) || defined (_M_X64)) && defined(OPENSSL_CPUID_OBJ)
+
+size_t OPENSSL_ia32_rdrand_bytes(unsigned char *buf, size_t len);
+size_t OPENSSL_ia32_rdseed_bytes(unsigned char *buf, size_t len);
+
+void OPENSSL_cpuid_setup(void);
+
+extern unsigned int OPENSSL_ia32cap_P[4];
+
+static int sanity_check_bytes(size_t (*rng)(unsigned char *, size_t),
+ int rounds, int min_failures, int max_retries, int max_zero_words)
+{
+ int testresult = 0;
+ unsigned char prior[31] = {0}, buf[31] = {0}, check[7];
+ int failures = 0, zero_words = 0;
+
+ int i;
+ for (i = 0; i < rounds; i++) {
+ size_t generated = 0;
+
+ int retry;
+ for (retry = 0; retry < max_retries; retry++) {
+ generated = rng(buf, sizeof(buf));
+ if (generated == sizeof(buf))
+ break;
+ failures++;
+ }
+
+ /*-
+ * Verify that we don't have too many unexpected runs of zeroes,
+ * implying that we might be accidentally using the 32-bit RDRAND
+ * instead of the 64-bit one on 64-bit systems.
+ */
+ size_t j;
+ for (j = 0; j < sizeof(buf) - 1; j++) {
+ if (buf[j] == 0 && buf[j+1] == 0) {
+ zero_words++;
+ }
+ }
+
+ if (!TEST_int_eq(generated, sizeof(buf)))
+ goto end;
+ if (!TEST_false(!memcmp(prior, buf, sizeof(buf))))
+ goto end;
+
+ /* Verify that the last 7 bytes of buf aren't all the same value */
+ unsigned char *tail = &buf[sizeof(buf) - sizeof(check)];
+ memset(check, tail[0], 7);
+ if (!TEST_false(!memcmp(check, tail, sizeof(check))))
+ goto end;
+
+ /* Save the result and make sure it's different next time */
+ memcpy(prior, buf, sizeof(buf));
+ }
+
+ if (!TEST_int_le(zero_words, max_zero_words))
+ goto end;
+
+ if (!TEST_int_ge(failures, min_failures))
+ goto end;
+
+ testresult = 1;
+end:
+ return testresult;
+}
+
+static int sanity_check_rdrand_bytes(void)
+{
+ return sanity_check_bytes(OPENSSL_ia32_rdrand_bytes, 1000, 0, 10, 10);
+}
+
+static int sanity_check_rdseed_bytes(void)
+{
+ /*-
+ * RDSEED may take many retries to succeed; note that this is effectively
+ * multiplied by the 8x retry loop in asm, and failure probabilities are
+ * increased by the fact that we need either 4 or 8 samples depending on
+ * the platform.
+ */
+ return sanity_check_bytes(OPENSSL_ia32_rdseed_bytes, 1000, 1, 10000, 10);
+}
+
+int setup_tests(void)
+{
+ OPENSSL_cpuid_setup();
+
+ int have_rdseed = (OPENSSL_ia32cap_P[2] & (1 << 18)) != 0;
+ int have_rdrand = (OPENSSL_ia32cap_P[1] & (1 << (62 - 32))) != 0;
+
+ if (have_rdrand) {
+ ADD_TEST(sanity_check_rdrand_bytes);
+ }
+
+ if (have_rdseed) {
+ ADD_TEST(sanity_check_rdseed_bytes);
+ }
+
+ return 1;
+}
+
+
+#else
+
+int setup_tests(void)
+{
+ return 1;
+}
+
+#endif
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/01-test_abort.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/01-test_abort.t
new file mode 100644
index 000000000..2f121e25b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/01-test_abort.t
@@ -0,0 +1,16 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test;
+
+setup("test_abort");
+
+plan tests => 1;
+
+is(run(test(["aborttest"])), 0, "Testing that abort is caught correctly");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/01-test_sanity.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/01-test_sanity.t
new file mode 100644
index 000000000..f01466d8c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/01-test_sanity.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_sanity", "sanitytest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/01-test_symbol_presence.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/01-test_symbol_presence.t
new file mode 100644
index 000000000..7f2a2d75b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/01-test_symbol_presence.t
@@ -0,0 +1,116 @@
+#! /usr/bin/env perl
+# -*- mode: Perl -*-
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use File::Spec::Functions qw(devnull);
+use OpenSSL::Test qw(:DEFAULT srctop_file bldtop_dir bldtop_file);
+use OpenSSL::Test::Utils;
+
+setup("test_symbol_presence");
+
+plan skip_all => "Only useful when building shared libraries"
+ if disabled("shared");
+
+my @libnames = ("crypto", "ssl");
+my $testcount = scalar @libnames;
+
+plan tests => $testcount * 2;
+
+note
+ "NOTE: developer test! It's possible that it won't run on your\n",
+ "platform, and that's perfectly fine. This is mainly for developers\n",
+ "on Unix to check that our shared libraries are consistent with the\n",
+ "ordinals (util/*.num in the source tree), something that should be\n",
+ "good enough a check for the other platforms as well.\n";
+
+foreach my $libname (@libnames) {
+ SKIP:
+ {
+ my $shlibpath = bldtop_file("lib" . $libname . ".so");
+ *OSTDERR = *STDERR;
+ *OSTDOUT = *STDOUT;
+ open STDERR, ">", devnull();
+ open STDOUT, ">", devnull();
+ my @nm_lines = map { s|\R$||; $_ } `nm -Pg $shlibpath 2> /dev/null`;
+ close STDERR;
+ close STDOUT;
+ *STDERR = *OSTDERR;
+ *STDOUT = *OSTDOUT;
+ skip "Can't run 'nm -Pg $shlibpath' => $?... ignoring", 2
+ unless $? == 0;
+
+ my $bldtop = bldtop_dir();
+ my @def_lines;
+ indir $bldtop => sub {
+ my $mkdefpath = srctop_file("util", "mkdef.pl");
+ @def_lines = map { s|\R$||; $_ } `$^X $mkdefpath $libname linux 2> /dev/null`;
+ ok($? == 0, "running 'cd $bldtop; $^X $mkdefpath $libname linux' => $?");
+ }, create => 0, cleanup => 0;
+
+ note "Number of lines in \@nm_lines before massaging: ", scalar @nm_lines;
+ note "Number of lines in \@def_lines before massaging: ", scalar @def_lines;
+
+ # Massage the nm output to only contain defined symbols
+ @nm_lines = sort map { s| .*||; $_ } grep(m|.* [BCDST] .*|, @nm_lines);
+
+ # Massage the mkdef.pl output to only contain global symbols
+ # The output we got is in Unix .map format, which has a global
+ # and a local section. We're only interested in the global
+ # section.
+ my $in_global = 0;
+ @def_lines =
+ sort
+ map { s|;||; s|\s+||g; $_ }
+ grep { $in_global = 1 if m|global:|;
+ $in_global = 0 if m|local:|;
+ $in_global = 0 if m|\}|;
+ $in_global && m|;|; } @def_lines;
+
+ note "Number of lines in \@nm_lines after massaging: ", scalar @nm_lines;
+ note "Number of lines in \@def_lines after massaging: ", scalar @def_lines;
+
+ # Maintain lists of symbols that are missing in the shared library,
+ # or that are extra.
+ my @missing = ();
+ my @extra = ();
+
+ while (scalar @nm_lines || scalar @def_lines) {
+ my $nm_first = $nm_lines[0];
+ my $def_first = $def_lines[0];
+
+ if (!defined($nm_first)) {
+ push @missing, shift @def_lines;
+ } elsif (!defined($def_first)) {
+ push @extra, shift @nm_lines;
+ } elsif ($nm_first gt $def_first) {
+ push @missing, shift @def_lines;
+ } elsif ($nm_first lt $def_first) {
+ push @extra, shift @nm_lines;
+ } else {
+ shift @def_lines;
+ shift @nm_lines;
+ }
+ }
+
+ if (scalar @missing) {
+ note "The following symbols are missing in lib$libname.so:";
+ foreach (@missing) {
+ note " $_";
+ }
+ }
+ if (scalar @extra) {
+ note "The following symbols are extra in lib$libname.so:";
+ foreach (@extra) {
+ note " $_";
+ }
+ }
+ ok(scalar @missing == 0,
+ "check that there are no missing symbols in lib$libname.so");
+ }
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/01-test_test.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/01-test_test.t
new file mode 100644
index 000000000..efc970e7b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/01-test_test.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_test", "test_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_errstr.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_errstr.t
new file mode 100644
index 000000000..3a04310e1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_errstr.t
@@ -0,0 +1,121 @@
+#! /usr/bin/env perl
+# Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+no strict 'refs'; # To be able to use strings as function refs
+use OpenSSL::Test;
+use OpenSSL::Test::Utils;
+use Errno qw(:POSIX);
+use POSIX qw(strerror);
+
+# We actually have space for up to 4095 error messages,
+# numerically speaking... but we're currently only using
+# numbers 1 through 127.
+# This constant should correspond to the same constant
+# defined in crypto/err/err.c, or at least must not be
+# assigned a greater number.
+use constant NUM_SYS_STR_REASONS => 127;
+
+setup('test_errstr');
+
+# In a cross compiled situation, there are chances that our
+# application is linked against different C libraries than
+# perl, and may thereby get different error messages for the
+# same error.
+# The safest is not to test under such circumstances.
+plan skip_all => 'This is unsupported for cross compiled configurations'
+ if config('CROSS_COMPILE');
+
+# The same can be said when compiling OpenSSL with mingw configuration
+# on Windows when built with msys perl. Similar problems are also observed
+# in MSVC builds, depending on the perl implementation used.
+plan skip_all => 'This is unsupported on MSYS/MinGW or MSWin32'
+ if $^O eq 'msys' or $^O eq 'MSWin32';
+
+plan skip_all => 'OpenSSL is configured "no-autoerrinit" or "no-err"'
+ if disabled('autoerrinit') || disabled('err');
+
+# These are POSIX error names, which Errno implements as functions
+# (this is documented)
+my @posix_errors = @{$Errno::EXPORT_TAGS{POSIX}};
+
+if ($^O eq 'MSWin32') {
+ # On Windows, these errors have been observed to not always be loaded by
+ # apps/openssl, while they are in perl, which causes a difference that we
+ # consider a false alarm. So we skip checking these errors.
+ # Because we can't know exactly what symbols exist in a perticular perl
+ # version, we resort to discovering them directly in the Errno package
+ # symbol table.
+ my @error_skiplist = qw(
+ ENETDOWN
+ ENETUNREACH
+ ENETRESET
+ ECONNABORTED
+ EISCONN
+ ENOTCONN
+ ESHUTDOWN
+ ETOOMANYREFS
+ ETIMEDOUT
+ EHOSTDOWN
+ EHOSTUNREACH
+ EALREADY
+ EINPROGRESS
+ ESTALE
+ EUCLEAN
+ ENOTNAM
+ ENAVAIL
+ ENOMEDIUM
+ ENOKEY
+ );
+ @posix_errors =
+ grep {
+ my $x = $_;
+ ! grep {
+ exists $Errno::{$_} && $x == $Errno::{$_}
+ } @error_skiplist
+ } @posix_errors;
+}
+
+plan tests => scalar @posix_errors
+ +1 # Checking that error 128 gives 'reason(128)'
+ +1 # Checking that error 0 gives the library name
+ ;
+
+foreach my $errname (@posix_errors) {
+ my $errnum = "Errno::$errname"->();
+
+ SKIP: {
+ skip "Error $errname ($errnum) isn't within our range", 1
+ if $errnum > NUM_SYS_STR_REASONS;
+
+ my $perr = eval {
+ # Set $! to the error number...
+ local $! = $errnum;
+ # ... and $! will give you the error string back
+ $!
+ };
+
+ # We know that the system reasons are in OpenSSL error library 2
+ my @oerr = run(app([ qw(openssl errstr), sprintf("2%06x", $errnum) ]),
+ capture => 1);
+ $oerr[0] =~ s|\R$||;
+ $oerr[0] =~ s|.*system library:||g; # The actual message is last
+
+ ok($oerr[0] eq $perr, "($errnum) '$oerr[0]' == '$perr'");
+ }
+}
+
+my @after = run(app([ qw(openssl errstr 2000080) ]), capture => 1);
+$after[0] =~ s|\R$||;
+$after[0] =~ s|.*system library:||g;
+ok($after[0] eq "reason(128)", "(128) '$after[0]' == 'reason(128)'");
+
+my @zero = run(app([ qw(openssl errstr 2000000) ]), capture => 1);
+$zero[0] =~ s|\R$||;
+$zero[0] =~ s|.*system library:||g;
+ok($zero[0] eq "system library", "(0) '$zero[0]' == 'system library'");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_internal_ctype.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_internal_ctype.t
new file mode 100644
index 000000000..daacfe0fe
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_internal_ctype.t
@@ -0,0 +1,17 @@
+#! /usr/bin/env perl
+# Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test; # get 'plan'
+use OpenSSL::Test::Simple;
+use OpenSSL::Test::Utils;
+
+setup("test_internal_ctype");
+
+simple_test("test_internal_ctype", "ctype_internal_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_lhash.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_lhash.t
new file mode 100644
index 000000000..613a10d0f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_lhash.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_lhash", "lhash_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_ordinals.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_ordinals.t
new file mode 100644
index 000000000..473d05b01
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_ordinals.t
@@ -0,0 +1,58 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_ordinals");
+
+plan tests => 2;
+
+ok(testordinals(srctop_file("util", "libcrypto.num")), "Test libcrypto.num");
+ok(testordinals(srctop_file("util", "libssl.num")), "Test libssl.num");
+
+sub testordinals
+{
+ my $filename = shift;
+ my $cnt = 0;
+ my $ret = 1;
+ my $qualifier = "";
+ my $newqual;
+ my $lastfunc = "";
+
+ open(my $fh, '<', $filename);
+ while (my $line = <$fh>) {
+ my @tokens = split(/(?:\s+|\s*:\s*)/, $line);
+ #Check the line looks sane
+ if ($#tokens < 5 || $#tokens > 6) {
+ print STDERR "Invalid line:\n$line\n";
+ $ret = 0;
+ last;
+ }
+ if ($tokens[3] eq "NOEXIST") {
+ #Ignore this line
+ next;
+ }
+ #Some ordinals can be repeated, e.g. if one is VMS and another is !VMS
+ $newqual = $tokens[4];
+ $newqual =~ s/!//g;
+ if ($cnt > $tokens[1]
+ || ($cnt == $tokens[1] && ($qualifier ne $newqual
+ || $qualifier eq ""))) {
+ print STDERR "Invalid ordinal detected: ".$tokens[1]."\n";
+ $ret = 0;
+ last;
+ }
+ $cnt = $tokens[1];
+ $qualifier = $newqual;
+ $lastfunc = $tokens[0];
+ }
+ close($fh);
+
+ return $ret;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_stack.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_stack.t
new file mode 100644
index 000000000..6f906dbd9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/02-test_stack.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_stack", "stack_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_exdata.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_exdata.t
new file mode 100644
index 000000000..da66f9592
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_exdata.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_exdata", "exdatatest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_asn1.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_asn1.t
new file mode 100644
index 000000000..5f27214e9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_asn1.t
@@ -0,0 +1,16 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test; # get 'plan'
+use OpenSSL::Test::Simple;
+use OpenSSL::Test::Utils;
+
+setup("test_internal_asn1");
+
+simple_test("test_internal_asn1", "asn1_internal_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_chacha.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_chacha.t
new file mode 100644
index 000000000..b115392c2
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_chacha.t
@@ -0,0 +1,16 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test; # get 'plan'
+use OpenSSL::Test::Simple;
+use OpenSSL::Test::Utils;
+
+setup("test_internal_chacha");
+
+simple_test("test_internal_chacha", "chacha_internal_test", "chacha");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_curve448.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_curve448.t
new file mode 100644
index 000000000..4decc9858
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_curve448.t
@@ -0,0 +1,19 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test; # get 'plan'
+use OpenSSL::Test::Simple;
+use OpenSSL::Test::Utils;
+
+setup("test_internal_curve448");
+
+plan skip_all => "This test is unsupported in a no-ec build"
+ if disabled("ec");
+
+simple_test("test_internal_curve448", "curve448_internal_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_ec.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_ec.t
new file mode 100644
index 000000000..0d31d0ac0
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_ec.t
@@ -0,0 +1,19 @@
+#! /usr/bin/env perl
+# Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test; # get 'plan'
+use OpenSSL::Test::Simple;
+use OpenSSL::Test::Utils;
+
+setup("test_internal_ec");
+
+plan skip_all => "This test is unsupported in a no-ec build"
+ if disabled("ec");
+
+simple_test("test_internal_ec", "ec_internal_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_mdc2.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_mdc2.t
new file mode 100644
index 000000000..dfc06780d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_mdc2.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test::Simple;
+
+simple_test("test_internal_mdc2", "mdc2_internal_test", "mdc2");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_modes.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_modes.t
new file mode 100644
index 000000000..1f75bd8b6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_modes.t
@@ -0,0 +1,16 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test; # get 'plan'
+use OpenSSL::Test::Simple;
+use OpenSSL::Test::Utils;
+
+setup("test_internal_modes");
+
+simple_test("test_internal_modes", "modes_internal_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_poly1305.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_poly1305.t
new file mode 100644
index 000000000..42f26c124
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_poly1305.t
@@ -0,0 +1,16 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test; # get 'plan'
+use OpenSSL::Test::Simple;
+use OpenSSL::Test::Utils;
+
+setup("test_internal_poly1305");
+
+simple_test("test_internal_poly1305", "poly1305_internal_test", "poly1305");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_siphash.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_siphash.t
new file mode 100644
index 000000000..408a674fc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_siphash.t
@@ -0,0 +1,16 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test; # get 'plan'
+use OpenSSL::Test::Simple;
+use OpenSSL::Test::Utils;
+
+setup("test_internal_siphash");
+
+simple_test("test_internal_siphash", "siphash_internal_test", "siphash");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_sm2.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_sm2.t
new file mode 100644
index 000000000..7a3fc4110
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_sm2.t
@@ -0,0 +1,16 @@
+#! /usr/bin/env perl
+# Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test; # get 'plan'
+use OpenSSL::Test::Simple;
+use OpenSSL::Test::Utils;
+
+setup("test_internal_sm2");
+
+simple_test("test_internal_sm2", "sm2_internal_test", "sm2");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_sm4.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_sm4.t
new file mode 100644
index 000000000..34de203ac
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_sm4.t
@@ -0,0 +1,17 @@
+#! /usr/bin/env perl
+# Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright 2017 [Ribose Inc.](https://www.ribose.com). All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test; # get 'plan'
+use OpenSSL::Test::Simple;
+use OpenSSL::Test::Utils;
+
+setup("test_internal_sm4");
+
+simple_test("test_internal_sm4", "sm4_internal_test", "sm4");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_ssl_cert_table.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_ssl_cert_table.t
new file mode 100644
index 000000000..334e47e7b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_ssl_cert_table.t
@@ -0,0 +1,16 @@
+#! /usr/bin/env perl
+# Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test; # get 'plan'
+use OpenSSL::Test::Simple;
+use OpenSSL::Test::Utils;
+
+setup("test_internal_ssl_cert_table");
+
+simple_test("test_internal_ssl_cert_table", "ssl_cert_table_internal_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_x509.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_x509.t
new file mode 100644
index 000000000..972ff65fc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_internal_x509.t
@@ -0,0 +1,16 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test; # get 'plan'
+use OpenSSL::Test::Simple;
+use OpenSSL::Test::Utils;
+
+setup("test_internal_x509");
+
+simple_test("test_internal_x509", "x509_internal_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_ui.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_ui.t
new file mode 100644
index 000000000..cf2f5acdd
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/03-test_ui.t
@@ -0,0 +1,13 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use warnings;
+use OpenSSL::Test::Simple;
+
+simple_test("test_ui", "uitest", "ui");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_asn1_decode.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_asn1_decode.t
new file mode 100644
index 000000000..4a12b765e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_asn1_decode.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_asn1_decode", "asn1_decode_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_asn1_encode.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_asn1_encode.t
new file mode 100644
index 000000000..dd8121d55
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_asn1_encode.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_asn1_encode", "asn1_encode_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_asn1_string_table.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_asn1_string_table.t
new file mode 100644
index 000000000..041f37215
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_asn1_string_table.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_asn1_string_table", "asn1_string_table_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_bio_callback.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_bio_callback.t
new file mode 100644
index 000000000..1422cb6e2
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_bio_callback.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_bio_callback", "bio_callback_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_bioprint.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_bioprint.t
new file mode 100644
index 000000000..b86e828f5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_bioprint.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_bioprint", "bioprinttest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_err.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_err.t
new file mode 100644
index 000000000..dd7681afa
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_err.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_err", "errtest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem.t
new file mode 100644
index 000000000..c32161111
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem.t
@@ -0,0 +1,108 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+#
+# ======================================================================
+
+
+use strict;
+use warnings;
+
+use File::Compare qw/compare_text/;
+use File::Basename;
+use OpenSSL::Test qw/:DEFAULT srctop_file data_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_pem_reading");
+
+my $testsrc = srctop_file("test", "recipes", basename($0));
+
+my $cmd = "openssl";
+
+# map input PEM file to 1 if it should be accepted; 0 when should be rejected
+my %cert_expected = (
+ "cert-1023line.pem" => 1,
+ "cert-1024line.pem" => 1,
+ "cert-1025line.pem" => 1,
+ "cert-255line.pem" => 1,
+ "cert-256line.pem" => 1,
+ "cert-257line.pem" => 1,
+ "cert-blankline.pem" => 0,
+ "cert-comment.pem" => 0,
+ "cert-earlypad.pem" => 0,
+ "cert-extrapad.pem" => 0,
+ "cert-infixwhitespace.pem" => 1,
+ "cert-junk.pem" => 0,
+ "cert-leadingwhitespace.pem" => 1,
+ "cert-longline.pem" => 1,
+ "cert-misalignedpad.pem" => 0,
+ "cert-onecolumn.pem" => 1,
+ "cert-oneline.pem" => 1,
+ "cert-shortandlongline.pem" => 1,
+ "cert-shortline.pem" => 1,
+ "cert-threecolumn.pem" => 1,
+ "cert-trailingwhitespace.pem" => 1,
+ "cert.pem" => 1
+);
+my %dsa_expected = (
+ "dsa-1023line.pem" => 0,
+ "dsa-1024line.pem" => 0,
+ "dsa-1025line.pem" => 0,
+ "dsa-255line.pem" => 0,
+ "dsa-256line.pem" => 0,
+ "dsa-257line.pem" => 0,
+ "dsa-blankline.pem" => 0,
+ "dsa-comment.pem" => 0,
+ "dsa-corruptedheader.pem" => 0,
+ "dsa-corruptiv.pem" => 0,
+ "dsa-earlypad.pem" => 0,
+ "dsa-extrapad.pem" => 0,
+ "dsa-infixwhitespace.pem" => 0,
+ "dsa-junk.pem" => 0,
+ "dsa-leadingwhitespace.pem" => 0,
+ "dsa-longline.pem" => 0,
+ "dsa-misalignedpad.pem" => 0,
+ "dsa-onecolumn.pem" => 0,
+ "dsa-oneline.pem" => 0,
+ "dsa-onelineheader.pem" => 0,
+ "dsa-shortandlongline.pem" => 0,
+ "dsa-shortline.pem" => 0,
+ "dsa-threecolumn.pem" => 0,
+ "dsa-trailingwhitespace.pem" => 1,
+ "dsa.pem" => 1
+);
+
+plan tests => scalar keys(%cert_expected) + scalar keys(%dsa_expected) + 2;
+
+foreach my $input (keys %cert_expected) {
+ my @common = ($cmd, "x509", "-text", "-noout", "-inform", "PEM", "-in");
+ my @data = run(app([@common, data_file($input)], stderr => undef), capture => 1);
+ my @match = grep /The Great State of Long-Winded Certificate Field Names Whereby to Increase the Output Size/, @data;
+ is((scalar @match > 0 ? 1 : 0), $cert_expected{$input});
+}
+SKIP: {
+ skip "DSA support disabled, skipping...", (scalar keys %dsa_expected) unless !disabled("dsa");
+ foreach my $input (keys %dsa_expected) {
+ my @common = ($cmd, "pkey", "-inform", "PEM", "-passin", "file:" . data_file("wellknown"), "-noout", "-text", "-in");
+ my @data;
+ {
+ local $ENV{MSYS2_ARG_CONV_EXCL} = "file:";
+ @data = run(app([@common, data_file($input)], stderr => undef), capture => 1);
+ }
+ my @match = grep /68:42:02:16:63:54:16:eb:06:5c:ab:06:72:3b:78:/, @data;
+ is((scalar @match > 0 ? 1 : 0), $dsa_expected{$input});
+ }
+}
+SKIP: {
+ skip "RSA support disabled, skipping...", 1 unless !disabled("rsa");
+ my @common = ($cmd, "pkey", "-inform", "PEM", "-noout", "-text", "-in");
+ my @data = run(app([@common, data_file("beermug.pem")], stderr => undef), capture => 1);
+ my @match = grep /00:a0:3a:21:14:5d:cd:b6:d5:a0:3e:49:23:c1:3a:/, @data;
+ ok(scalar @match > 0 ? 1 : 0);
+}
+
+ok(run(test(["pemtest"])), "running pemtest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/NOTES b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/NOTES
new file mode 100644
index 000000000..baafd1560
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/NOTES
@@ -0,0 +1,3 @@
+The cert-*.pem and dsa-*.pem files are generated as manipulation of the
+ASCII text of cert.pem and dsa.pem, respectively -- they should decode to the
+same data.
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/beermug.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/beermug.pem
new file mode 100644
index 000000000..98b04b732
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/beermug.pem
@@ -0,0 +1,30 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC+qeXl4ZUfQZFmcGAPwdt7Mza4NQ6mJHehc4V/hVYc6eepvL/5
+uyyflzuhVy5ufctdi92FlXcIct5nNPdqK0PPdWH5Uzw0t/OjI5y/SJh8ur20krqw
+j/N1IOs63AcGLIVSkwx89iQbxj+2tV+YxFpGunUYyR/bJJWczuDMA/CujQIDAQAB
+AoGBAKA6IRRdzbbVoD5JI8E6NZtEP7DwDZ57uPk6Hq86u1JTEzcmguJ4dJitPBRr
+Mn7yQgwcNQ5EvCKifdqXvXBAaZuiiPFuCS/gfUw04jVHXWvG8ZvBQC3dutUYnFW7
+hdun8QU/Z6a1BethvESi1J1vgY2+XC4cBIvbutTc9HhMhbQ1AkEA8YTKGsVEYoKE
+d7sSx4qjeN4bgzeVgIwRt01wJ1EJN62LhwO+pYSXvTt14aHxiascejJqUhtuWvzR
+nuwydqiDpwJBAMoYgUoWdgW4O/C5ZXjiSia54jzrt7upxSq88njTRo/MCQfuJVbc
+3GUD+15V0zNhx9D7lcI+1uxhfcD7jWbJEqsCQBrE/SG6e7nvfX9H3O0BEN10wNfq
+cUeuPshybNvuv3bMZYqxf5AZAjiXPpmjuYHo1V8191Lid3jeTN2wkGdWhkECQQCI
+Rj3oV3z+Hl1M1bc27GBT/MQxkEE0qiXpy780+kJ6dHsifdNv3z4+X5EA656e5zB2
+Gy/A697BRnwlxXpz9OJBAkAUe7Ap0yU8aO6g5g+gsH+18bF0MftWh81VLOo09rRp
+SOHxNGGJLE5As5XkCGUZVIass1r8Q4N22Wip0QzeSWDi
+-
+- . * .. . * *
+- * * @()Ooc()* o .
+- (Q@*0CG*O() ___
+- |\_________/|/ _ \
+- | | | | | / | |
+- | | | | | | | |
+- | | | | | | | |
+- | | | | | | | |
+- | | | | | | | |
+- | | | | | \_| |
+- | | | | |\___/
+- |\_|__|__|_/|
+- \_________/
+-
+-----END RSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-1023line.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-1023line.pem
new file mode 100644
index 000000000..7ad3103e3
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-1023line.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcNMTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEgj/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF560WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfS
+phwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejv
+N5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7Nk
+ZhSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQY
+JKoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9
+JywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem
+3aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPH
+X30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiV
+ZrvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8I
+AA8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-1024line.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-1024line.pem
new file mode 100644
index 000000000..fd501c2dd
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-1024line.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcNMTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEgj/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF560WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSp
+hwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN
+5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZ
+hSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJ
+KoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9J
+ywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3
+aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX
+30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiVZ
+rvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IA
+A8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-1025line.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-1025line.pem
new file mode 100644
index 000000000..236922931
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-1025line.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVs
+ZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcNMTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEgj/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF560WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSphwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN5
+v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZh
+SC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJK
+oZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9Jy
+wlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3a
+YRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX3
+0YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiVZr
+vUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IAA
+8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-255line.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-255line.pem
new file mode 100644
index 000000000..d7fd1f131
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-255line.pem
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcml
+waHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdml
+kZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhc
+NMTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSB
+HcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1
+lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBww
+WVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQ
+gU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2l
+zMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWF
+yeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSq
+GSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2ME
+gj/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF5
+60WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfS
+phwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejv
+N5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7Nk
+ZhSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQY
+JKoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9
+JywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem
+3aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPH
+X30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiV
+ZrvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8I
+AA8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-256line.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-256line.pem
new file mode 100644
index 000000000..225bdb6f6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-256line.pem
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlw
+aHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlk
+ZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcN
+MTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBH
+cmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1l
+cyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwW
+VG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQg
+U29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lz
+MT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFy
+eSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEg
+j/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF56
+0WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSp
+hwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN
+5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZ
+hSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJ
+KoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9J
+ywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3
+aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX
+30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiVZ
+rvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IA
+A8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-257line.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-257line.pem
new file mode 100644
index 000000000..414b03684
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-257line.pem
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwa
+HJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZ
+W50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcNM
+TcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBHc
+mVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1lc
+yBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwWV
+G9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQgU
+29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lzM
+T0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFye
+SBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqGS
+Ib3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEgj
+/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF560
+WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSph
+wmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN5
+v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZh
+SC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJK
+oZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9Jy
+wlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3a
+YRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX3
+0YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiVZr
+vUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IAA
+8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-blankline.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-blankline.pem
new file mode 100644
index 000000000..3f252886f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-blankline.pem
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVs
+ZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0G
+A1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2
+b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlw
+aHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlk
+ZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcN
+MTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBH
+cmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1l
+cyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwW
+VG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQg
+
+U29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lz
+MT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFy
+eSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEg
+j/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF56
+0WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSp
+hwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN
+5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZ
+hSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJ
+KoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9J
+ywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3
+aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX
+30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiVZ
+rvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IA
+A8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-comment.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-comment.pem
new file mode 100644
index 000000000..a1a493e3b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-comment.pem
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVs
+ZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0G
+A1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2
+b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlw
+aHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlk
+ZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcN
+MTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBH
+cmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1l
+cyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwW
+VG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQg
+U29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lz
+MT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFy
+-MT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFy
+eSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEg
+j/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF56
+0WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSp
+hwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN
+5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZ
+hSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJ
+KoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9J
+ywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3
+aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX
+30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiVZ
+rvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IA
+A8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-earlypad.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-earlypad.pem
new file mode 100644
index 000000000..adb445ed2
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-earlypad.pem
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVs
+====ZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0G
+A1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2
+b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlw
+aHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlk
+ZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcN
+MTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBH
+cmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1l
+cyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwW
+VG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQg
+U29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lz
+MT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFy
+eSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEg
+j/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF56
+0WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSp
+hwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN
+5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZ
+hSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJ
+KoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9J
+ywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3
+aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX
+30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiVZ
+rvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IA
+A8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-extrapad.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-extrapad.pem
new file mode 100644
index 000000000..0b89aa2eb
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-extrapad.pem
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVs
+ZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0G
+A1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2
+b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlw
+aHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlk
+ZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcN
+MTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBH
+cmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1l
+cyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwW
+VG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQg
+U29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lz
+MT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFy
+eSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEg
+j/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF56
+0WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSp
+hwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN
+5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZ
+hSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJ
+KoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9J
+ywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3
+aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX
+30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiVZ
+rvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IA
+A8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=====
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-infixwhitespace.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-infixwhitespace.pem
new file mode 100644
index 000000000..f7e912ae1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-infixwhitespace.pem
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVs
+ZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0G
+A1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2
+b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlw
+aHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlk
+ZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcN
+MTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBH
+cmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1l
+cyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwW
+VG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQg
+U29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lz
+MT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFy
+eSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEg
+j/sx9TaHHqrKys4AiL4R q/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF56
+0WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSp
+hwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN
+5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZ
+hSC2aosQF619iKnfk0nqWaLDJ182C CXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJ
+KoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9J
+ywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3
+aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX
+30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiVZ
+rvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IA
+A8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-junk.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-junk.pem
new file mode 100644
index 000000000..5377e269c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-junk.pem
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVs
+ZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0G
+A1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2
+b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlw
+aHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlk
+ZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcN
+MTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBH
+cmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1l
+cyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwW
+VG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQg
+U29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lz
+!"#$%&()
+MT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFy
+eSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEg
+j/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF56
+0WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSp
+hwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN
+5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZ
+hSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJ
+KoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9J
+ywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3
+aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX
+30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiVZ
+rvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IA
+A8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-leadingwhitespace.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-leadingwhitespace.pem
new file mode 100644
index 000000000..6de4d48d4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-leadingwhitespace.pem
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+ MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+ WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVs
+ ZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0G
+ A1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2
+ b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlw
+ aHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlk
+ ZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcN
+ MTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBH
+ cmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1l
+ cyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwW
+ VG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQg
+ U29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lz
+ MT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFy
+ eSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqG
+ SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEg
+ j/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF56
+ 0WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSp
+ hwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN
+ 5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZ
+ hSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJ
+ KoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9J
+ ywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3
+ aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX
+ 30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiVZ
+ rvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IA
+ A8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-longline.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-longline.pem
new file mode 100644
index 000000000..730448171
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-longline.pem
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVs
+ZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0G
+A1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2
+b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlw
+aHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlk
+ZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcN
+MTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBH
+cmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1l
+cyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwW
+VG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQg
+U29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lz
+MT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFy
+eSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEg
+j/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF56
+0WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSp
+hwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN
+5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZ
+hSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJ
+KoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9J
+ywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3
+aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX
+30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiVZ
+rvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IAA
+8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-misalignedpad.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-misalignedpad.pem
new file mode 100644
index 000000000..caca6e57d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-misalignedpad.pem
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVs
+ZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0G
+A1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2
+b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlw
+aHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlk
+ZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcN
+MTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBH
+cmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1l
+cyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwW
+VG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQg
+U29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lz
+MT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFy
+eSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEg
+j/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF56
+0WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSp
+hwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN
+5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZ
+hSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJ
+KoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9J
+ywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3
+aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX
+30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiVZ
+rvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IA
+A8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-onecolumn.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-onecolumn.pem
new file mode 100644
index 000000000..77eebbf60
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-onecolumn.pem
@@ -0,0 +1,1646 @@
+-----BEGIN CERTIFICATE-----
+M
+I
+I
+E
+z
+D
+C
+C
+A
+7
+Q
+C
+C
+Q
+C
+g
+x
+k
+R
+o
+x
++
+Y
+l
+j
+j
+A
+N
+B
+g
+k
+q
+h
+k
+i
+G
+9
+w
+0
+B
+A
+Q
+s
+F
+A
+D
+C
+C
+A
+S
+Y
+x
+Y
+z
+B
+h
+B
+g
+N
+V
+B
+A
+g
+M
+W
+l
+R
+o
+Z
+S
+B
+H
+c
+m
+V
+h
+d
+C
+B
+T
+d
+G
+F
+0
+Z
+S
+B
+v
+Z
+i
+B
+M
+b
+2
+5
+n
+L
+V
+d
+p
+b
+m
+R
+l
+Z
+C
+B
+D
+Z
+X
+J
+0
+a
+W
+Z
+p
+Y
+2
+F
+0
+Z
+S
+B
+G
+a
+W
+V
+s
+Z
+C
+B
+O
+Y
+W
+1
+l
+c
+y
+B
+X
+a
+G
+V
+y
+Z
+W
+J
+5
+I
+H
+R
+v
+I
+E
+l
+u
+Y
+3
+J
+l
+Y
+X
+N
+l
+I
+H
+R
+o
+Z
+S
+B
+P
+d
+X
+R
+w
+d
+X
+Q
+g
+U
+2
+l
+6
+Z
+T
+E
+f
+M
+B
+0
+G
+A
+1
+U
+E
+B
+w
+w
+W
+V
+G
+9
+v
+b
+W
+F
+u
+e
+W
+N
+o
+Y
+X
+J
+h
+Y
+3
+R
+l
+c
+n
+N
+2
+a
+W
+x
+s
+Z
+T
+F
+I
+M
+E
+Y
+G
+A
+1
+U
+E
+C
+g
+w
+/
+V
+G
+h
+l
+I
+E
+J
+l
+b
+m
+V
+2
+b
+2
+x
+l
+b
+n
+Q
+g
+U
+2
+9
+j
+a
+W
+V
+0
+e
+S
+B
+v
+Z
+i
+B
+M
+b
+3
+F
+1
+Y
+W
+N
+p
+b
+3
+V
+z
+I
+G
+F
+u
+Z
+C
+B
+Q
+b
+G
+V
+v
+b
+m
+F
+z
+d
+G
+l
+j
+I
+F
+B
+l
+c
+m
+l
+w
+a
+H
+J
+h
+c
+2
+l
+z
+M
+T
+0
+w
+O
+w
+Y
+D
+V
+Q
+Q
+L
+D
+D
+R
+F
+b
+m
+R
+v
+c
+n
+N
+l
+b
+W
+V
+u
+d
+C
+B
+v
+Z
+i
+B
+W
+b
+3
+V
+j
+a
+H
+N
+h
+Z
+m
+U
+n
+Z
+C
+B
+F
+d
+m
+l
+k
+Z
+W
+5
+0
+a
+W
+F
+y
+e
+S
+B
+D
+Z
+X
+J
+0
+a
+W
+Z
+p
+Y
+2
+F
+0
+a
+W
+9
+u
+M
+R
+U
+w
+E
+w
+Y
+D
+V
+Q
+Q
+D
+D
+A
+x
+j
+Z
+X
+J
+0
+L
+m
+V
+4
+Y
+W
+1
+w
+b
+G
+U
+w
+H
+h
+c
+N
+M
+T
+c
+w
+M
+j
+I
+z
+M
+j
+A
+y
+N
+T
+M
+2
+W
+h
+c
+N
+M
+T
+c
+w
+M
+z
+I
+1
+M
+j
+A
+y
+N
+T
+M
+2
+W
+j
+C
+C
+A
+S
+Y
+x
+Y
+z
+B
+h
+B
+g
+N
+V
+B
+A
+g
+M
+W
+l
+R
+o
+Z
+S
+B
+H
+c
+m
+V
+h
+d
+C
+B
+T
+d
+G
+F
+0
+Z
+S
+B
+v
+Z
+i
+B
+M
+b
+2
+5
+n
+L
+V
+d
+p
+b
+m
+R
+l
+Z
+C
+B
+D
+Z
+X
+J
+0
+a
+W
+Z
+p
+Y
+2
+F
+0
+Z
+S
+B
+G
+a
+W
+V
+s
+Z
+C
+B
+O
+Y
+W
+1
+l
+c
+y
+B
+X
+a
+G
+V
+y
+Z
+W
+J
+5
+I
+H
+R
+v
+I
+E
+l
+u
+Y
+3
+J
+l
+Y
+X
+N
+l
+I
+H
+R
+o
+Z
+S
+B
+P
+d
+X
+R
+w
+d
+X
+Q
+g
+U
+2
+l
+6
+Z
+T
+E
+f
+M
+B
+0
+G
+A
+1
+U
+E
+B
+w
+w
+W
+V
+G
+9
+v
+b
+W
+F
+u
+e
+W
+N
+o
+Y
+X
+J
+h
+Y
+3
+R
+l
+c
+n
+N
+2
+a
+W
+x
+s
+Z
+T
+F
+I
+M
+E
+Y
+G
+A
+1
+U
+E
+C
+g
+w
+/
+V
+G
+h
+l
+I
+E
+J
+l
+b
+m
+V
+2
+b
+2
+x
+l
+b
+n
+Q
+g
+U
+2
+9
+j
+a
+W
+V
+0
+e
+S
+B
+v
+Z
+i
+B
+M
+b
+3
+F
+1
+Y
+W
+N
+p
+b
+3
+V
+z
+I
+G
+F
+u
+Z
+C
+B
+Q
+b
+G
+V
+v
+b
+m
+F
+z
+d
+G
+l
+j
+I
+F
+B
+l
+c
+m
+l
+w
+a
+H
+J
+h
+c
+2
+l
+z
+M
+T
+0
+w
+O
+w
+Y
+D
+V
+Q
+Q
+L
+D
+D
+R
+F
+b
+m
+R
+v
+c
+n
+N
+l
+b
+W
+V
+u
+d
+C
+B
+v
+Z
+i
+B
+W
+b
+3
+V
+j
+a
+H
+N
+h
+Z
+m
+U
+n
+Z
+C
+B
+F
+d
+m
+l
+k
+Z
+W
+5
+0
+a
+W
+F
+y
+e
+S
+B
+D
+Z
+X
+J
+0
+a
+W
+Z
+p
+Y
+2
+F
+0
+a
+W
+9
+u
+M
+R
+U
+w
+E
+w
+Y
+D
+V
+Q
+Q
+D
+D
+A
+x
+j
+Z
+X
+J
+0
+L
+m
+V
+4
+Y
+W
+1
+w
+b
+G
+U
+w
+g
+g
+E
+i
+M
+A
+0
+G
+C
+S
+q
+G
+S
+I
+b
+3
+D
+Q
+E
+B
+A
+Q
+U
+A
+A
+4
+I
+B
+D
+w
+A
+w
+g
+g
+E
+K
+A
+o
+I
+B
+A
+Q
+C
+7
+M
+O
+I
+r
+q
+H
++
+Z
+I
+J
+i
+Z
+d
+r
+o
+K
+M
+r
+e
+l
+K
+M
+S
+v
+v
+R
+K
+g
+2
+M
+E
+g
+j
+/
+s
+x
+9
+T
+a
+H
+H
+q
+r
+K
+y
+s
+4
+A
+i
+L
+4
+R
+q
+/
+y
+b
+Q
+E
+i
+g
+F
+C
+6
+G
+8
+m
+p
+Z
+W
+b
+B
+r
+U
++
+v
+N
+2
+S
+L
+r
+1
+Z
+s
+P
+f
+t
+C
+H
+I
+Y
+1
+2
+L
+F
+5
+6
+0
+W
+L
+Y
+T
+Y
+N
+q
+D
+g
+F
+5
+B
+d
+C
+Z
+C
+r
+j
+J
+2
+h
+h
+N
++
+X
+w
+M
+L
+2
+t
+g
+Y
+d
+W
+i
+o
+V
+/
+E
+e
+y
+8
+S
+J
+S
+q
+U
+s
+k
+f
+0
+3
+M
+p
+c
+w
+n
+L
+b
+V
+f
+S
+p
+h
+w
+m
+o
+w
+q
+N
+f
+i
+E
+F
+F
+q
+P
+B
+C
+f
+7
+E
+8
+I
+V
+a
+r
+G
+W
+c
+t
+b
+M
+p
+v
+l
+M
+b
+A
+M
+5
+o
+w
+h
+M
+e
+v
+/
+C
+c
+m
+q
+q
+t
+8
+1
+N
+F
+k
+b
+1
+W
+V
+e
+j
+v
+N
+5
+v
+/
+J
+K
+v
+2
+4
+3
+/
+X
+e
+d
+f
+4
+I
+7
+Z
+J
+v
+7
+z
+K
+e
+s
+w
+o
+P
+9
+p
+i
+F
+z
+W
+H
+X
+C
+d
+9
+S
+I
+V
+z
+W
+q
+F
+7
+7
+u
+/
+c
+r
+H
+u
+f
+I
+h
+o
+E
+a
+7
+N
+k
+Z
+h
+S
+C
+2
+a
+o
+s
+Q
+F
+6
+1
+9
+i
+K
+n
+f
+k
+0
+n
+q
+W
+a
+L
+D
+J
+1
+8
+2
+C
+C
+X
+k
+H
+E
+R
+o
+Q
+C
+7
+q
+9
+X
+2
+I
+G
+L
+D
+L
+o
+A
+0
+X
+A
+g
+M
+B
+A
+A
+E
+w
+D
+Q
+Y
+J
+K
+o
+Z
+I
+h
+v
+c
+N
+A
+Q
+E
+L
+B
+Q
+A
+D
+g
+g
+E
+B
+A
+K
+b
+t
+L
+x
++
+Y
+l
+C
+G
+R
+C
+B
+m
+Y
+n
+3
+d
+f
+Y
+F
++
+B
+I
+v
+K
+/
+b
+/
+e
+0
+D
+K
+N
+h
+D
+K
+h
+b
+4
+s
+9
+J
+y
+w
+l
+J
+4
+q
+n
+A
+B
+4
+8
+t
+g
+P
+x
+0
+q
++
+Z
+B
++
+E
+d
+M
+Y
+R
+q
+C
+w
+y
+v
+X
+J
+x
+E
+d
+Z
+7
+P
+s
+C
+d
+U
+e
+U
+6
+x
+I
+2
+y
+b
+k
+h
+S
+d
+U
+U
+f
+Q
+b
+Y
+e
+m
+3
+a
+Y
+R
+G
++
+y
+u
+k
+G
+z
+a
+z
+y
+S
+Q
+J
+s
+8
+l
+G
+q
+x
+B
+l
+R
+M
+F
+l
+/
+F
+G
+C
+g
++
+o
+S
+Q
+/
+I
+3
+2
+e
+G
+f
+8
+m
+i
+c
+D
+s
+k
+j
+2
+z
+k
+A
+J
+t
+C
+k
+U
+P
+H
+X
+3
+0
+Y
+r
+W
+M
+f
+O
+w
+W
+1
+r
+2
+x
+Y
+r
+2
+m
+B
+N
+X
+b
+N
+W
+X
+J
+h
+W
+/
+s
+I
+g
+5
+u
+8
+a
+a
+9
+f
+c
+A
+L
+e
+u
+Q
+c
+M
+X
+k
+b
+s
+b
+V
+o
+P
+m
+C
+5
+a
+L
+d
+i
+V
+Z
+r
+v
+U
+F
+o
+J
+8
+D
+P
+g
+0
+a
+Y
+Y
+w
+j
+6
+4
+R
+w
+U
+0
+B
+5
+H
+W
+/
+7
+j
+K
+h
+Q
+2
+5
+F
+g
+K
+V
+A
+z
+L
+G
+r
+g
+Y
+x
+1
+D
+i
+v
+k
+M
+7
+U
+Q
+G
+d
+W
+Y
+n
+U
+8
+I
+A
+A
+8
+S
+8
+9
+g
+R
+j
+G
+k
+2
+h
+n
+k
+e
+a
+g
+W
+a
+s
+3
+d
+x
+q
+T
+T
+p
+g
+J
+D
+h
+p
+r
+g
+W
+z
+y
+K
+a
+9
+h
+I
+I
+=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-oneline.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-oneline.pem
new file mode 100644
index 000000000..70121fbbc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-oneline.pem
@@ -0,0 +1,3 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgMWlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcNMTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEgj/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF560WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSphwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZhSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9JywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiVZrvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IAA8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-shortandlongline.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-shortandlongline.pem
new file mode 100644
index 000000000..1681e2409
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-shortandlongline.pem
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVs
+ZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0G
+A1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2
+b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlw
+aHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlk
+ZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcN
+MTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBH
+cmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1l
+cyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwW
+VG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQg
+U29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lz
+MT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFy
+eSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEg
+j/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF56
+0WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSp
+hwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN
+5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZ
+hSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJ
+KoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9J
+ywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3
+aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX
+30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiV
+ZrvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IA
+A8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-shortline.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-shortline.pem
new file mode 100644
index 000000000..3c5d2e5bd
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-shortline.pem
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVs
+ZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0G
+A1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2
+b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlw
+aHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlk
+ZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcN
+MTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBH
+cmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1l
+cyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwW
+VG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQg
+U29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lz
+MT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFy
+eSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEg
+j/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF56
+0WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSp
+hwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN
+5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZ
+hSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJ
+KoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9J
+ywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3
+aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX
+30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiV
+ZrvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8I
+AA8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-threecolumn.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-threecolumn.pem
new file mode 100644
index 000000000..eb5503cd8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-threecolumn.pem
@@ -0,0 +1,550 @@
+-----BEGIN CERTIFICATE-----
+MII
+EzD
+CCA
+7QC
+CQC
+gxk
+Rox
++Yl
+jjA
+NBg
+kqh
+kiG
+9w0
+BAQ
+sFA
+DCC
+ASY
+xYz
+BhB
+gNV
+BAg
+MWl
+RoZ
+SBH
+cmV
+hdC
+BTd
+GF0
+ZSB
+vZi
+BMb
+25n
+LVd
+pbm
+RlZ
+CBD
+ZXJ
+0aW
+ZpY
+2F0
+ZSB
+GaW
+VsZ
+CBO
+YW1
+lcy
+BXa
+GVy
+ZWJ
+5IH
+RvI
+Elu
+Y3J
+lYX
+NlI
+HRo
+ZSB
+PdX
+Rwd
+XQg
+U2l
+6ZT
+EfM
+B0G
+A1U
+EBw
+wWV
+G9v
+bWF
+ueW
+NoY
+XJh
+Y3R
+lcn
+N2a
+Wxs
+ZTF
+IME
+YGA
+1UE
+Cgw
+/VG
+hlI
+EJl
+bmV
+2b2
+xlb
+nQg
+U29
+jaW
+V0e
+SBv
+ZiB
+Mb3
+F1Y
+WNp
+b3V
+zIG
+FuZ
+CBQ
+bGV
+vbm
+Fzd
+Glj
+IFB
+lcm
+lwa
+HJh
+c2l
+zMT
+0wO
+wYD
+VQQ
+LDD
+RFb
+mRv
+cnN
+lbW
+Vud
+CBv
+ZiB
+Wb3
+Vja
+HNh
+ZmU
+nZC
+BFd
+mlk
+ZW5
+0aW
+Fye
+SBD
+ZXJ
+0aW
+ZpY
+2F0
+aW9
+uMR
+UwE
+wYD
+VQQ
+DDA
+xjZ
+XJ0
+LmV
+4YW
+1wb
+GUw
+Hhc
+NMT
+cwM
+jIz
+MjA
+yNT
+M2W
+hcN
+MTc
+wMz
+I1M
+jAy
+NTM
+2Wj
+CCA
+SYx
+YzB
+hBg
+NVB
+AgM
+WlR
+oZS
+BHc
+mVh
+dCB
+TdG
+F0Z
+SBv
+ZiB
+Mb2
+5nL
+Vdp
+bmR
+lZC
+BDZ
+XJ0
+aWZ
+pY2
+F0Z
+SBG
+aWV
+sZC
+BOY
+W1l
+cyB
+XaG
+VyZ
+WJ5
+IHR
+vIE
+luY
+3Jl
+YXN
+lIH
+RoZ
+SBP
+dXR
+wdX
+QgU
+2l6
+ZTE
+fMB
+0GA
+1UE
+Bww
+WVG
+9vb
+WFu
+eWN
+oYX
+JhY
+3Rl
+cnN
+2aW
+xsZ
+TFI
+MEY
+GA1
+UEC
+gw/
+VGh
+lIE
+Jlb
+mV2
+b2x
+lbn
+QgU
+29j
+aWV
+0eS
+BvZ
+iBM
+b3F
+1YW
+Npb
+3Vz
+IGF
+uZC
+BQb
+GVv
+bmF
+zdG
+ljI
+FBl
+cml
+waH
+Jhc
+2lz
+MT0
+wOw
+YDV
+QQL
+DDR
+Fbm
+Rvc
+nNl
+bWV
+udC
+BvZ
+iBW
+b3V
+jaH
+NhZ
+mUn
+ZCB
+Fdm
+lkZ
+W50
+aWF
+yeS
+BDZ
+XJ0
+aWZ
+pY2
+F0a
+W9u
+MRU
+wEw
+YDV
+QQD
+DAx
+jZX
+J0L
+mV4
+YW1
+wbG
+Uwg
+gEi
+MA0
+GCS
+qGS
+Ib3
+DQE
+BAQ
+UAA
+4IB
+DwA
+wgg
+EKA
+oIB
+AQC
+7MO
+Irq
+H+Z
+IJi
+Zdr
+oKM
+rel
+KMS
+vvR
+Kg2
+MEg
+j/s
+x9T
+aHH
+qrK
+ys4
+AiL
+4Rq
+/yb
+QEi
+gFC
+6G8
+mpZ
+WbB
+rU+
+vN2
+SLr
+1Zs
+Pft
+CHI
+Y12
+LF5
+60W
+LYT
+YNq
+DgF
+5Bd
+CZC
+rjJ
+2hh
+N+X
+wML
+2tg
+YdW
+ioV
+/Ee
+y8S
+JSq
+Usk
+f03
+Mpc
+wnL
+bVf
+Sph
+wmo
+wqN
+fiE
+FFq
+PBC
+f7E
+8IV
+arG
+Wct
+bMp
+vlM
+bAM
+5ow
+hMe
+v/C
+cmq
+qt8
+1NF
+kb1
+WVe
+jvN
+5v/
+JKv
+243
+/Xe
+df4
+I7Z
+Jv7
+zKe
+swo
+P9p
+iFz
+WHX
+Cd9
+SIV
+zWq
+F77
+u/c
+rHu
+fIh
+oEa
+7Nk
+ZhS
+C2a
+osQ
+F61
+9iK
+nfk
+0nq
+WaL
+DJ1
+82C
+CXk
+HER
+oQC
+7q9
+X2I
+GLD
+LoA
+0XA
+gMB
+AAE
+wDQ
+YJK
+oZI
+hvc
+NAQ
+ELB
+QAD
+ggE
+BAK
+btL
+x+Y
+lCG
+RCB
+mYn
+3df
+YF+
+BIv
+K/b
+/e0
+DKN
+hDK
+hb4
+s9J
+ywl
+J4q
+nAB
+48t
+gPx
+0q+
+ZB+
+EdM
+YRq
+Cwy
+vXJ
+xEd
+Z7P
+sCd
+UeU
+6xI
+2yb
+khS
+dUU
+fQb
+Yem
+3aY
+RG+
+yuk
+Gza
+zyS
+QJs
+8lG
+qxB
+lRM
+Fl/
+FGC
+g+o
+SQ/
+I32
+eGf
+8mi
+cDs
+kj2
+zkA
+JtC
+kUP
+HX3
+0Yr
+WMf
+OwW
+1r2
+xYr
+2mB
+NXb
+NWX
+JhW
+/sI
+g5u
+8aa
+9fc
+ALe
+uQc
+MXk
+bsb
+VoP
+mC5
+aLd
+iVZ
+rvU
+FoJ
+8DP
+g0a
+YYw
+j64
+RwU
+0B5
+HW/
+7jK
+hQ2
+5Fg
+KVA
+zLG
+rgY
+x1D
+ivk
+M7U
+QGd
+WYn
+U8I
+AA8
+S89
+gRj
+Gk2
+hnk
+eag
+Was
+3dx
+qTT
+pgJ
+Dhp
+rgW
+zyK
+a9h
+II=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-trailingwhitespace.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-trailingwhitespace.pem
new file mode 100644
index 000000000..ab0dfe85b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert-trailingwhitespace.pem
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVs
+ZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0G
+A1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2
+b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlw
+aHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlk
+ZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcN
+MTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBH
+cmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1l
+cyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwW
+VG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQg
+U29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lz
+MT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFy
+eSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEg
+j/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF56
+0WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSp
+hwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN
+5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZ
+hSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJ
+KoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9J
+ywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3
+aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX
+30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiVZ
+rvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IA
+A8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert.pem
new file mode 100644
index 000000000..99ddf079a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/cert.pem
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM
+WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVs
+ZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0G
+A1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2
+b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlw
+aHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlk
+ZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcN
+MTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBH
+cmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1l
+cyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwW
+VG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQg
+U29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lz
+MT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFy
+eSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEg
+j/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF56
+0WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSp
+hwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN
+5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZ
+hSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJ
+KoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9J
+ywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3
+aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX
+30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiVZ
+rvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IA
+A8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/csr.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/csr.pem
new file mode 100644
index 000000000..02a966d3b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/csr.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIDbTCCAlUCAQAwggEmMWMwYQYDVQQIDFpUaGUgR3JlYXQgU3RhdGUgb2YgTG9u
+Zy1XaW5kZWQgQ2VydGlmaWNhdGUgRmllbGQgTmFtZXMgV2hlcmVieSB0byBJbmNy
+ZWFzZSB0aGUgT3V0cHV0IFNpemUxHzAdBgNVBAcMFlRvb21hbnljaGFyYWN0ZXJz
+dmlsbGUxSDBGBgNVBAoMP1RoZSBCZW5ldm9sZW50IFNvY2lldHkgb2YgTG9xdWFj
+aW91cyBhbmQgUGxlb25hc3RpYyBQZXJpcGhyYXNpczE9MDsGA1UECww0RW5kb3Jz
+ZW1lbnQgb2YgVm91Y2hzYWZlJ2QgRXZpZGVudGlhcnkgQ2VydGlmaWNhdGlvbjEV
+MBMGA1UEAwwMY2VydC5leGFtcGxlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAuzDiK6h/mSCYmXa6CjK3pSjEr70SoNjBII/7MfU2hx6qysrOAIi+Eav8
+m0BIoBQuhvJqWVmwa1Przdki69WbD37QhyGNdixeetFi2E2Dag4BeQXQmQq4ydoY
+Tfl8DC9rYGHVoqFfxHsvEiUqlLJH9NzKXMJy21X0qYcJqMKjX4hBRajwQn+xPCFW
+qxlnLWzKb5TGwDOaMITHr/wnJqqrfNTRZG9VlXo7zeb/ySr9uN/13nX+CO2Sb+8y
+nrMKD/aYhc1h1wnfUiFc1qhe+7v3Kx7nyIaBGuzZGYUgtmqLEBetfYip35NJ6lmi
+wydfNggl5BxEaEAu6vV9iBiwy6ANFwIDAQABoAAwDQYJKoZIhvcNAQELBQADggEB
+ADgIOZ6OL8SDAGcDTkHuE7d9xOIeiidMU2JU1Dxxk7iZh6JAHxjdgwwUew0nDdPR
+74u84uGzecotX9MByAhmCflhwN+aTQcntxY1R44uAmeE0WJLrCYWQIKHh27YI/2y
+9mMHX9srTtL+Ggrs7s1WLzcFitDpUWB4B+9a+KGJ0fbWPpjNcxDwwjSEiKwzHhpv
+3PdTU2eC5/uvu1BoU4ms//JftvbWlTwHqf4J4P/FZeeOwoTay5d0K5qWDs9hEexP
+m9wRUnCc8L7xPElYvIC9mpgMFvwJ3xMOpE1qAh7WSeAlTX6wE0WvxgCwhgEExISQ
+vRMcwsXoc5VthqU/E8fc9ls=
+-----END CERTIFICATE REQUEST-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-1023line.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-1023line.pem
new file mode 100644
index 000000000..0e5c01a1f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-1023line.pem
@@ -0,0 +1,9 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GMwcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7oupdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQheiSC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+FJf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTGAa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369Kq2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYXzj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mDoH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90mOgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaB
+Io15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws
+6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-1024line.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-1024line.pem
new file mode 100644
index 000000000..185a029fb
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-1024line.pem
@@ -0,0 +1,8 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GMwcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7oupdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQheiSC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+FJf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTGAa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369Kq2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYXzj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mDoH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90mOgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBI
+o15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-1025line.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-1025line.pem
new file mode 100644
index 000000000..fa449c9c3
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-1025line.pem
@@ -0,0 +1,8 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GMwcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7oupdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQheiSC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+FJf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTGAa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369Kq2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYXzj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mDoH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90mOgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBIo
+15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-255line.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-255line.pem
new file mode 100644
index 000000000..36a5b1237
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-255line.pem
@@ -0,0 +1,21 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5
+UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F
+Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4
+vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTGAa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369Kq2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCER
+n9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBY
+Xzj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70m
+DoH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90
+mOgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaB
+Io15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws
+6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-256line.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-256line.pem
new file mode 100644
index 000000000..6ba6c397b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-256line.pem
@@ -0,0 +1,20 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+FJf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG
+Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K
+q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM
+4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn
+9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX
+zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD
+oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90m
+OgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBI
+o15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-257line.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-257line.pem
new file mode 100644
index 000000000..a73d70054
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-257line.pem
@@ -0,0 +1,20 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5
+UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F
+Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4
+vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG
+Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K
+q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM
+4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn
+9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYXzj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mDoH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90mOgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBIo
+15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-blankline.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-blankline.pem
new file mode 100644
index 000000000..6f46e27df
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-blankline.pem
@@ -0,0 +1,24 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5
+UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F
+Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4
+vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG
+Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K
+q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM
+4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn
+9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX
+zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD
+
+oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90m
+OgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBI
+o15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-comment.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-comment.pem
new file mode 100644
index 000000000..bb96ec468
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-comment.pem
@@ -0,0 +1,24 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5
+UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F
+Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4
+vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+-vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG
+Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K
+q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM
+4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn
+9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX
+zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD
+oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90m
+OgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBI
+o15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-corruptedheader.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-corruptedheader.pem
new file mode 100644
index 000000000..7ed4261e8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-corruptedheader.pem
@@ -0,0 +1,23 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCARPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5
+UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F
+Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4
+vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG
+Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K
+q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM
+4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn
+9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX
+zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD
+oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90m
+OgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBI
+o15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-corruptiv.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-corruptiv.pem
new file mode 100644
index 000000000..233e201d7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-corruptiv.pem
@@ -0,0 +1,23 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E464B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5
+UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F
+Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4
+vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG
+Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K
+q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM
+4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn
+9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX
+zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD
+oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90m
+OgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBI
+o15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-earlypad.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-earlypad.pem
new file mode 100644
index 000000000..9f14e3b92
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-earlypad.pem
@@ -0,0 +1,23 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+====gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5
+UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F
+Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4
+vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG
+Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K
+q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM
+4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn
+9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX
+zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD
+oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90m
+OgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBI
+o15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-extrapad.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-extrapad.pem
new file mode 100644
index 000000000..182397374
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-extrapad.pem
@@ -0,0 +1,24 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5
+UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F
+Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4
+vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG
+Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K
+q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM
+4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn
+9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX
+zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD
+oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90m
+OgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBI
+o15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+====
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-infixwhitespace.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-infixwhitespace.pem
new file mode 100644
index 000000000..5755265d7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-infixwhitespace.pem
@@ -0,0 +1,23 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5
+UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F
+Jf77Rv0p48l9ip8i/bqu wukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4
+vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG
+Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K
+q2TMLyexQARJapabBf/ST9zWP7wxz WfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM
+4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn
+9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX
+zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD
+oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90m
+OgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBI
+o15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-junk.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-junk.pem
new file mode 100644
index 000000000..0836c45c1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-junk.pem
@@ -0,0 +1,24 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5
+UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F
+Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4
+!"#$%&()
+vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG
+Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K
+q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM
+4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn
+9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX
+zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD
+oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90m
+OgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBI
+o15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-leadingwhitespace.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-leadingwhitespace.pem
new file mode 100644
index 000000000..8bbf26170
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-leadingwhitespace.pem
@@ -0,0 +1,23 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+ EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+ gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+ wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+ 3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+ pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+ SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5
+ UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F
+ Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4
+ vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+ 2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG
+ Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K
+ q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM
+ 4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn
+ 9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX
+ zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD
+ oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90m
+ OgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBI
+ o15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-longline.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-longline.pem
new file mode 100644
index 000000000..75973ef29
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-longline.pem
@@ -0,0 +1,23 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5
+UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F
+Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4
+vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG
+Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K
+q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM
+4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn
+9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX
+zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD
+oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90m
+OgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBIo
+15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-misalignedpad.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-misalignedpad.pem
new file mode 100644
index 000000000..ad8c366d6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-misalignedpad.pem
@@ -0,0 +1,24 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5
+UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F
+Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4
+vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG
+Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K
+q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM
+4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn
+9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX
+zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD
+oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90m
+OgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBI
+o15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+=
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-onecolumn.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-onecolumn.pem
new file mode 100644
index 000000000..61b8ed52c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-onecolumn.pem
@@ -0,0 +1,1157 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+E
+B
+D
+W
+X
+0
+Q
+f
+a
+r
+l
++
+Q
+N
+s
+H
+g
+C
+U
+u
+d
+L
+y
+b
+6
+D
+k
+C
+4
+z
+y
+a
+D
+U
+/
+v
+U
+q
+W
+y
+H
+X
+0
+m
++
+8
+W
+2
+b
+b
+m
+T
+5
+T
+e
+x
+l
+L
+3
+h
+s
+M
+5
+U
+g
+z
+7
+K
+s
+G
+q
+y
+j
+e
+O
+u
+K
+9
+Q
+T
+5
+L
+O
+M
+4
+V
+y
+K
+6
+B
+g
+m
+h
+q
+p
+Q
+a
+J
+1
+M
+g
+C
+W
+A
+/
+g
+b
+B
+P
+T
+g
+B
+p
+2
+j
+f
+p
+3
+o
+S
+0
+W
+C
+5
+D
+6
+G
+M
+w
+c
+s
+d
+q
+o
+e
+I
+p
+D
+/
+w
+c
+e
+3
+k
+0
+H
+2
+G
+f
+u
+6
++
+r
+I
+N
+B
+m
+b
+I
+T
+t
+n
+4
+D
+T
+f
+3
+P
+k
+O
+c
+D
+I
+w
+d
+D
+c
+e
+N
+2
+q
+k
+Z
+a
+n
+l
+o
+F
+V
+r
+i
+S
+3
+k
+A
+B
+U
+I
+h
+1
+e
+h
+Y
+I
+X
+Q
+i
+b
+L
+R
+F
+Y
+5
+r
+X
+d
+Q
+n
+h
+Y
+2
+C
+Z
+N
+r
+Q
+F
+I
+M
+w
+l
+6
+4
+h
+K
+5
+P
+5
+h
+Q
+b
+c
+y
+J
+K
+G
+D
+H
+A
+Y
+z
+X
+V
+7
+o
+u
+p
+d
+X
+y
+5
+F
+9
+o
+y
+E
+d
+6
+e
+A
+5
+i
+x
++
+n
+1
+j
+K
+F
+R
+B
+7
+P
+m
+A
+p
+Z
+m
+u
+i
+Q
+j
+z
+f
+E
+x
+V
+K
+m
+B
+P
+G
+x
+R
+z
+O
+G
+T
+0
+q
+R
+5
+v
+L
+y
+l
+Q
+h
+e
+i
+S
+C
+7
+7
+n
+k
+e
+r
+a
+w
+U
+y
+j
+A
+2
+Q
+l
+I
+a
+/
+S
+m
+N
+z
+X
+E
+Y
+k
+N
+3
+g
+o
+D
+z
+H
+S
+F
+K
+B
+a
+u
+B
+0
+o
+5
+q
+F
+c
+1
+b
+1
+x
+7
+d
+X
+P
+C
+F
+L
+0
+a
+t
+G
+5
+U
+x
+o
+R
+r
+/
+E
+p
+7
+t
+i
+a
+b
+4
+D
+Z
+m
+Y
+E
+n
+O
+G
+k
+L
+2
+d
+V
+N
+8
+j
+A
+0
+4
+F
++
+H
+Q
+G
+B
+e
+P
+6
+n
+D
+O
+S
+K
+h
+X
+R
+j
+b
+U
+O
+D
+U
+p
+D
+p
+D
+v
+j
++
+F
+J
+f
+7
+7
+R
+v
+0
+p
+4
+8
+l
+9
+i
+p
+8
+i
+/
+b
+q
+u
+w
+u
+k
+X
+l
+M
+e
+d
+3
+O
+4
+d
+6
+r
+n
+E
+w
+k
+g
+g
+d
+y
+S
+S
+5
+i
+t
+i
+S
+h
+w
+a
+V
+L
+P
+f
++
+i
+c
+I
+/
+Y
+d
+4
+v
+c
+P
+X
+D
+P
+U
+H
+T
+k
+j
+1
+X
+m
+o
+Z
+4
+f
+1
+m
+U
+F
+1
+7
+O
+t
+C
+o
+h
+s
+J
+T
+7
+O
+4
+o
+M
+B
+B
+M
+B
+w
+q
+C
+k
+C
+7
+e
+n
+r
+L
+a
+A
+L
+i
+9
+j
+i
+K
+y
+m
+4
+7
+g
+2
+b
+Z
+H
+0
+5
+x
+J
+P
+p
+W
+X
+S
+/
+k
+S
+E
+k
+w
+t
+/
+j
+I
++
+a
++
+o
+4
+C
+u
+D
+P
+l
+y
+3
+X
+h
+I
+c
+Y
+R
+t
+s
+a
+W
+B
+J
+W
+i
+a
+m
+1
+O
+T
+7
+s
+G
+Q
++
+z
+k
+j
+T
+G
+A
+a
+6
+N
+f
+w
+b
+R
+8
+S
+c
+Q
+C
+8
+M
+z
+D
+f
+V
+n
+k
+J
+3
+V
+n
+X
+j
+T
+3
+4
+5
+b
+z
++
+F
+7
+H
+T
+A
+v
+e
+Q
+8
+a
+7
+K
+G
+x
+N
+n
+t
+P
+h
+E
+0
+K
+V
+j
+p
+l
+3
+6
+9
+K
+q
+2
+T
+M
+L
+y
+e
+x
+Q
+A
+R
+J
+a
+p
+a
+b
+B
+f
+/
+S
+T
+9
+z
+W
+P
+7
+w
+x
+z
+W
+f
+r
+E
+b
+X
+3
+O
+E
+Z
+C
+u
+R
+D
+V
+k
+w
+W
+f
+1
+8
+B
+H
+/
+E
+h
+6
+L
+q
+n
+q
+g
+5
+Q
+M
+4
+G
+u
+X
+7
+0
+8
+N
+i
+F
+p
+i
+w
+Q
+t
+9
+p
+/
+D
+A
+u
+Q
+d
+h
+B
+r
+P
+6
+7
+B
+x
+L
+6
+4
+C
+b
+I
+7
+C
+g
+W
+4
+L
+v
+3
+z
+3
+q
+n
+K
+f
+F
+V
+9
+z
+Y
+5
+/
+m
+x
+C
+E
+R
+n
+9
+m
+P
+O
+i
+g
+2
+r
+8
+W
+v
+v
+X
+t
+7
+c
+h
+6
+n
+h
+z
+B
+P
+f
+C
+w
+q
+0
+B
+o
+P
+q
+L
+K
+U
+F
+g
+D
+p
+e
+X
+s
+N
+d
+J
+9
+s
+W
+5
+I
+V
+3
+y
+i
+/
+3
+B
+h
+9
+8
+Z
+B
+Y
+X
+z
+j
+8
+g
+/
+7
+X
+M
+o
+6
+v
+9
+9
+8
+f
+c
+t
++
+E
+i
+H
+P
+s
+c
+u
+q
+e
+Y
+U
+a
+o
+J
+Z
+6
++
+Z
+j
+7
+W
+4
+5
+n
+G
+A
+9
+D
+G
+s
+n
+E
+m
+Z
+0
+W
+u
+x
+2
+t
+T
+j
+7
+0
+m
+D
+o
+H
+/
+/
+2
+1
+T
+i
+R
+A
+x
+6
+y
+p
+P
+P
++
+I
+q
+2
+Y
+D
+z
+q
+h
+7
+V
+X
+c
+/
+g
+s
+s
+O
+n
+/
+v
+U
+1
+A
+j
+1
+9
+g
+z
+L
++
+M
+R
+n
+1
+Z
+5
+5
+S
+M
+r
+A
+7
+n
+O
+9
+0
+m
+O
+g
+O
+y
+E
+P
++
+u
+G
+r
+X
+y
+a
+h
+f
+Z
+G
+P
+b
+m
+p
+g
+I
+x
++
+M
+T
+b
+t
+f
+v
+R
+t
+Z
+B
+s
+G
+3
+E
+c
+X
+y
+W
+9
+N
+n
+H
+J
+f
+k
+4
+O
+8
+x
+N
+3
+h
+Y
+P
+W
+X
+a
+B
+I
+o
+1
+5
+q
+B
+3
+j
+Y
+b
+x
+1
+o
+k
+t
+b
+c
+Q
+P
+o
+0
+h
+z
+a
+N
+v
++
+P
+J
+5
+w
+t
+T
+4
+7
+J
+L
+N
+c
+b
+M
+e
+M
+S
+n
+w
+K
+M
+8
+M
+B
+4
+C
+X
+l
+M
+4
+3
+R
+U
+t
+K
+w
+s
+6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-oneline.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-oneline.pem
new file mode 100644
index 000000000..176f1e803
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-oneline.pem
@@ -0,0 +1,6 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5Ugz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GMwcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7oupdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQheiSC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+FJf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTGAa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369Kq2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYXzj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mDoH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90mOgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBIo15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-onelineheader.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-onelineheader.pem
new file mode 100644
index 000000000..d07095b8e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-onelineheader.pem
@@ -0,0 +1,22 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5
+UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F
+Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4
+vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG
+Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K
+q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM
+4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn
+9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX
+zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD
+oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90m
+OgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBI
+o15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-shortandlongline.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-shortandlongline.pem
new file mode 100644
index 000000000..b9a8333d8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-shortandlongline.pem
@@ -0,0 +1,23 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5
+UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F
+Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4
+vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG
+Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K
+q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM
+4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn
+9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX
+zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD
+oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90mO
+gOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBI
+o15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-shortline.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-shortline.pem
new file mode 100644
index 000000000..6da1ab7c6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-shortline.pem
@@ -0,0 +1,24 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5
+UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F
+Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4
+vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG
+Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K
+q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM
+4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn
+9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX
+zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD
+oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90m
+OgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaB
+Io15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws
+6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-threecolumn.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-threecolumn.pem
new file mode 100644
index 000000000..e6fcc535c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-threecolumn.pem
@@ -0,0 +1,389 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBD
+WX0
+Qfa
+rl+
+QNs
+HgC
+Uud
+Lyb
+6Dk
+C4z
+yaD
+U/v
+UqW
+yHX
+0m+
+8W2
+bbm
+T5T
+exl
+L3h
+sM5
+Ugz
+7Ks
+Gqy
+jeO
+uK9
+QT5
+LOM
+4Vy
+K6B
+gmh
+qpQ
+aJ1
+MgC
+WA/
+gbB
+PTg
+Bp2
+jfp
+3oS
+0WC
+5D6
+GMw
+csd
+qoe
+IpD
+/wc
+e3k
+0H2
+Gfu
+6+r
+INB
+mbI
+Ttn
+4DT
+f3P
+kOc
+DIw
+dDc
+eN2
+qkZ
+anl
+oFV
+riS
+3kA
+BUI
+h1e
+hYI
+XQi
+bLR
+FY5
+rXd
+Qnh
+Y2C
+ZNr
+QFI
+Mwl
+64h
+K5P
+5hQ
+bcy
+JKG
+DHA
+YzX
+V7o
+upd
+Xy5
+F9o
+yEd
+6eA
+5ix
++n1
+jKF
+RB7
+PmA
+pZm
+uiQ
+jzf
+ExV
+KmB
+PGx
+RzO
+GT0
+qR5
+vLy
+lQh
+eiS
+C77
+nke
+raw
+Uyj
+A2Q
+lIa
+/Sm
+NzX
+EYk
+N3g
+oDz
+HSF
+KBa
+uB0
+o5q
+Fc1
+b1x
+7dX
+PCF
+L0a
+tG5
+Uxo
+Rr/
+Ep7
+tia
+b4D
+ZmY
+EnO
+GkL
+2dV
+N8j
+A04
+F+H
+QGB
+eP6
+nDO
+SKh
+XRj
+bUO
+DUp
+DpD
+vj+
+FJf
+77R
+v0p
+48l
+9ip
+8i/
+bqu
+wuk
+XlM
+ed3
+O4d
+6rn
+Ewk
+ggd
+ySS
+5it
+iSh
+waV
+LPf
++ic
+I/Y
+d4v
+cPX
+DPU
+HTk
+j1X
+moZ
+4f1
+mUF
+17O
+tCo
+hsJ
+T7O
+4oM
+BBM
+Bwq
+CkC
+7en
+rLa
+ALi
+9ji
+Kym
+47g
+2bZ
+H05
+xJP
+pWX
+S/k
+SEk
+wt/
+jI+
+a+o
+4Cu
+DPl
+y3X
+hIc
+YRt
+saW
+BJW
+iam
+1OT
+7sG
+Q+z
+kjT
+GAa
+6Nf
+wbR
+8Sc
+QC8
+MzD
+fVn
+kJ3
+VnX
+jT3
+45b
+z+F
+7HT
+Ave
+Q8a
+7KG
+xNn
+tPh
+E0K
+Vjp
+l36
+9Kq
+2TM
+Lye
+xQA
+RJa
+pab
+Bf/
+ST9
+zWP
+7wx
+zWf
+rEb
+X3O
+EZC
+uRD
+Vkw
+Wf1
+8BH
+/Eh
+6Lq
+nqg
+5QM
+4Gu
+X70
+8Ni
+Fpi
+wQt
+9p/
+DAu
+Qdh
+BrP
+67B
+xL6
+4Cb
+I7C
+gW4
+Lv3
+z3q
+nKf
+FV9
+zY5
+/mx
+CER
+n9m
+POi
+g2r
+8Wv
+vXt
+7ch
+6nh
+zBP
+fCw
+q0B
+oPq
+LKU
+FgD
+peX
+sNd
+J9s
+W5I
+V3y
+i/3
+Bh9
+8ZB
+YXz
+j8g
+/7X
+Mo6
+v99
+8fc
+t+E
+iHP
+scu
+qeY
+Uao
+JZ6
++Zj
+7W4
+5nG
+A9D
+Gsn
+EmZ
+0Wu
+x2t
+Tj7
+0mD
+oH/
+/21
+TiR
+Ax6
+ypP
+P+I
+q2Y
+Dzq
+h7V
+Xc/
+gss
+On/
+vU1
+Aj1
+9gz
+L+M
+Rn1
+Z55
+SMr
+A7n
+O90
+mOg
+OyE
+P+u
+GrX
+yah
+fZG
+Pbm
+pgI
+x+M
+Tbt
+fvR
+tZB
+sG3
+EcX
+yW9
+NnH
+Jfk
+4O8
+xN3
+hYP
+WXa
+BIo
+15q
+B3j
+Ybx
+1ok
+tbc
+QPo
+0hz
+aNv
++PJ
+5wt
+T47
+JLN
+cbM
+eMS
+nwK
+M8M
+B4C
+XlM
+43R
+UtK
+ws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-trailingwhitespace.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-trailingwhitespace.pem
new file mode 100644
index 000000000..0b5de58c4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa-trailingwhitespace.pem
@@ -0,0 +1,23 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5
+UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F
+Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4
+vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG
+Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K
+q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM
+4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn
+9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX
+zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD
+oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90m
+OgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBI
+o15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa.pem
new file mode 100644
index 000000000..78ebd1b70
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsa.pem
@@ -0,0 +1,23 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6
+
+EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U
+gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM
+wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS
+3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou
+pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei
+SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5
+UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F
+Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4
+vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g
+2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG
+Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K
+q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM
+4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn
+9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX
+zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD
+oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90m
+OgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBI
+o15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsaparam.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsaparam.pem
new file mode 100644
index 000000000..60563cbb0
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/dsaparam.pem
@@ -0,0 +1,14 @@
+-----BEGIN DSA PARAMETERS-----
+MIICLAKCAQEArjV9Th2W4p8AlmBabk0HjaV8vPmt15/V6e6mM1Hee3LSdapxd/Fj
++7bsWroNcqIaHGS45YkJbclvC3/Szp/vh1q2Zy/v7utZ9V7/qCiEnls3CRGAfAhc
+1eFIS9Jo+z+fK2tsDUgbGoDC6xEbN3nWjItyPmelBQ5Bip41ULTSQCdr/eBka1s4
+QpS1Sdrvbng3zTCJw0VQe5yM5xyYcHFdeV/v6JSFUz7voyzOGqt91l4UzVFUiZ13
+5Pgi8DUQdQVxUU+MTFwNLCy+bDTuEoKHAxkGEqiq9A08ScxwWtgy7jJQhXDoGP10
+gFMyV+5Qya7rrrYiMhZrjFna7h0z30yiPQIhAK0tbhew8+vHuO6VePIX9TMBZ7ze
+k//uQOh/8ZNtS4cTAoIBAGZv2mOljtJM1UUtdl1fzUq0GkI1hjpvqfonq94DITYK
+BynJL21JqPfG9JLXc8HYdg5hpwtulrjIyzg1EiB5pQgoNVy8UhavUroPw7FjEicL
+dKRHQ9YwuJwuQBTNmX/ojjewqT9U6WYiYUz4SQNXFDIdNz3ikviOoGpmY/Cwbgcr
+Pb/QhGqqHzB3ZeX89exVznPbvqeNOp967U+vooBMMJ4oSWVA8ANFVpmikxucRt69
+qKtfkD+3P9RvjVow4dRjOmp8jyT82RQoCeSEThdDVrjUS6IpRdMT8MJ2mwGggG6T
+Y16HJCAq/7ufqJlsp5oAuX3aZsnAcnIiDxrMI9m3Xxs=
+-----END DSA PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/key.pem
new file mode 100644
index 000000000..8de7e65a6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC7MOIrqH+ZIJiZ
+droKMrelKMSvvRKg2MEgj/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN
+2SLr1ZsPftCHIY12LF560WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8S
+JSqUskf03MpcwnLbVfSphwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev
+/Ccmqqt81NFkb1WVejvN5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzW
+qF77u/crHufIhoEa7NkZhSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2I
+GLDLoA0XAgMBAAECggEAcEBMIGoWuji1ybFMtrjbL4tXBxuWhCX3ChPNSpQFctmN
+Cba7+c4GTIqaHG9cHcJ8dCgCZjpGdNYKXZKMQmgBaDVfzujr76WDsprFb3hsCbkE
+YRJ/mIa5cTH7ySaGoLf+5/lDJxcmWqiT/YmUEz8lr0yHfUCNp8HPyalUvYKafbos
+5BiXs8lr4XQ/vxL0CtVQx+5T8pmgU6CmP1jjgBqV4Y9RPewSmPNhxKAqm82JYMND
+9evNHNpZmDpwTMygwwL0oJ0DV0nq0uqzuk1ORcp7YIph7IFGcdi4n7Y4Y2U6B8Ok
+ITY684qpcXgy+qO1A8AwDEJ34wiIWb8Mi8S84KdTIQKBgQDhHmCdpWKzwLETlHQR
+V9wT3ulySmxG0t8kSgNOFRVUZNXQ0ij2v8rOJ7R0QzJ+kCqvdxJ5QHNlUFKkOFMA
+SnSy098iEz5skwRhHof7ZNa3U6oRRSauUcZcThWL+z14nhTIC1m99KpACV6fl3jj
+MVEYYpG6n7jZ0wKUGMStxT1q9QKBgQDU3pOgNLnFasMIujvXI3ARSK6xIpkBTq89
+n6pmn9XeMWs/H6wQRO5wpUXbg+/3/d4tnezrDG9Lg5aPV8ca/zJ7IP8iNyLnhiUY
+c9O6hKAW1fxddt9megzBDvsBgRzhytnv3OSpM+idgtsJ7Tvkevmt4K5j6gitpJpb
+1A1erknoWwKBgCM5zKZ+bZ5xBYRp02uvUtmtJNxkduLyNkaIalH6jJbjHG4LpKtP
+wZ1Wqy8SIMGbL4K7YCGnCyeMVRIrWhmOjQo6iwza9AarTqEf1OlqkwqmxdLj/jSC
+yUZCVa7MxoasPdY7qHRH56gTj0HrwtfSLL1jFyibu6IiGaIw6f3DAmRNAoGAL2sx
+iYOVSnPg5GXQBLnBMih1ucHSQadMhDa4F8pNMwThNhuREcK5NuCqMh8u6phj0NeY
+Ojf35uN2O5I7KTll/mW4T9/mZ5rLUqoipS78FnoukId1dneDtdHnektPqsCsUbFs
+QoDstYG713dAW0JFskUVs+4jZsL/G6ueGtRKZHcCgYEA27sBEJtHGLAgEUGSlwSA
+acmaIlKpF3EMImgWhlzRN3JC7+z8HJAhoHTxQUdnWfJt2Xl4Z+WmXvv+E7U9ofH7
+kH8fbLcaxwvylPm4hAMlhtL3EqnRDSL4hfZHBrqqf3C0Kv+C8naNxzeCNG6iHxcp
+3c7vY4BXTz0dGBGHml6qu5Y=
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/wellknown b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/wellknown
new file mode 100644
index 000000000..632e28f36
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/04-test_pem_data/wellknown
@@ -0,0 +1 @@
+wellknown
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_bf.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_bf.t
new file mode 100644
index 000000000..64c960953
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_bf.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_bf", "bftest", "bf");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_cast.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_cast.t
new file mode 100644
index 000000000..46c61dacb
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_cast.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_cast", "casttest", "cast");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_des.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_des.t
new file mode 100644
index 000000000..2e6a32ba5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_des.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_des", "destest", "des");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_hmac.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_hmac.t
new file mode 100644
index 000000000..2059bcc8c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_hmac.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_hmac", "hmactest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_idea.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_idea.t
new file mode 100644
index 000000000..ca2b76759
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_idea.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_idea", "ideatest", "idea");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_md2.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_md2.t
new file mode 100644
index 000000000..8781af0e9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_md2.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_md2", "md2test", "md2");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_mdc2.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_mdc2.t
new file mode 100644
index 000000000..181c90f1a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_mdc2.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_mdc2", "mdc2test", "mdc2");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_rand.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_rand.t
new file mode 100644
index 000000000..3ae254031
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_rand.t
@@ -0,0 +1,17 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use warnings;
+use OpenSSL::Test;
+
+plan tests => 2;
+setup("test_rand");
+
+ok(run(test(["drbgtest"])));
+ok(run(test(["drbg_cavs_test"])));
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_rc2.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_rc2.t
new file mode 100644
index 000000000..77d938299
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_rc2.t
@@ -0,0 +1,11 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_rc2", "rc2test", "rc2");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_rc4.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_rc4.t
new file mode 100644
index 000000000..a26c9b8e5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_rc4.t
@@ -0,0 +1,11 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_rc4", "rc4test", "rc4");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_rc5.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_rc5.t
new file mode 100644
index 000000000..fda0cd2e0
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/05-test_rc5.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_rc5", "rc5test", "rc5");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/06-test-rdrand.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/06-test-rdrand.t
new file mode 100644
index 000000000..24be8ae96
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/06-test-rdrand.t
@@ -0,0 +1,22 @@
+#! /usr/bin/perl
+
+# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+
+use OpenSSL::Test; # get 'plan'
+use OpenSSL::Test::Simple;
+use OpenSSL::Test::Utils;
+
+setup("test_rdrand_sanity");
+
+# We also need static builds to be enabled even on linux
+plan skip_all => "This test is unsupported if static builds are not enabled"
+ if disabled("static");
+
+simple_test("test_rdrand_sanity", "rdrand_sanitytest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn.t
new file mode 100644
index 000000000..4e38c8f8b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn.t
@@ -0,0 +1,27 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use Math::BigInt;
+
+use OpenSSL::Test qw/:DEFAULT data_file/;
+
+setup("test_bn");
+
+my @files = qw( bnexp.txt bnmod.txt bnmul.txt bnshift.txt bnsum.txt bngcd.txt );
+
+plan tests => 1 + scalar(@files);
+
+foreach my $f ( @files ) {
+ ok(run(test(["bntest", data_file($f)])),
+ "running bntest $f");
+}
+ok(run(test(["bntest"])), "running bntest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnexp.txt b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnexp.txt
new file mode 100644
index 000000000..664f1a9af
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnexp.txt
@@ -0,0 +1,30 @@
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# Exp tests.
+#
+# These test vectors satisfy A ^ E = Exp.
+
+Exp = aa6d7ac431
+A = d0e07
+E = 2
+
+Exp = 12d416b110dbb4e467ff0c89a22122f4da8240
+A = 1a18cf6
+E = 6
+
+Exp = 49a3b33e23d84f1ce0d5d83f5dcb651d50cf3920f0143da2310d0512a90a06cd8f38977df8a756c30883de38df092000
+A = 2a3acbd2
+E = d
+
+Exp = 5b4a0d5a956f885f275712b194459980f24708bfb6393d71bd37dce852ce455724f5ee5030775fb86b4295edc98afaafc097e4d82a97c0078ec0eac763db16549c5145c4cf2d3124f88cf9a5c71da0625afb99b26801786fe49a778415dc025954021753d08691947a208b613f0be5c1
+A = 54b3ae461
+E = 1a
+
+Exp = a0ea5f6a4de49beb8fb7f0dab280d6a32c5a3814c9a5153a7944cec0a9028497846a8a89044348721a0bb5f0c3ded3e980574ea321b0cdb0ead4f4e93841ea7478a7f15d9729b646a8165813a0750e8124f5465dda9b105e1bbeff18fd09c09a2e26610d9176d253b877c3a8908a6be521cbe1e472a7a1b7820e4e890f8f28aacd34609c686e76e15b01bd9324a71290812724ea564d11c874a6765b262c3e57d479da0287a76026a1e8fe53da0b02405da1d379eaa30fc65f
+A = fccec0f6df
+E = 25
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bngcd.txt b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bngcd.txt
new file mode 100644
index 000000000..ea19336b5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bngcd.txt
@@ -0,0 +1,17179 @@
+# Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# GCD tests.
+#
+# These test vectors satisfy gcd(A, B) = GCD.
+# They were generated with sage, independent of OpenSSL.
+
+A = 0
+B = 0
+GCD = 0
+
+# gcd(1,0) = 1
+A = 1
+B = 0
+GCD = 1
+
+# gcd(1,1) = 1
+A = 1
+B = 1
+GCD = 1
+
+# gcd(0,a) = a
+A = 0
+B = 70030ffeeea3deaea19387f4f1d0f460a6954a2a9cb98290602ac09036143ef8eb9692f3eac22961811083e073ee0be1506c24d7b0d4eb0089406758828f7c99dc01692846f88aafb58b2d56a6dd1157b781eeaf807d59496aac6ca754f8830b743ea938ce16cbe03c8fd8675c78ba2420d502f2227a9bbe3979865cd154cbb2
+GCD = 70030ffeeea3deaea19387f4f1d0f460a6954a2a9cb98290602ac09036143ef8eb9692f3eac22961811083e073ee0be1506c24d7b0d4eb0089406758828f7c99dc01692846f88aafb58b2d56a6dd1157b781eeaf807d59496aac6ca754f8830b743ea938ce16cbe03c8fd8675c78ba2420d502f2227a9bbe3979865cd154cbb2
+
+# gcd(-a,0) = |a|
+A = -231f16458c487346cf50a17beec83632f25d19abeea1097c746533cd3e35207b7efd75dc3e9c663a64b6861e88579dad08649f107a13edf2ad43d0056f9240ad2a08c4aba20f05cc4aad23eb47e77cc8031df5b1c735b55103e164ca6c07bd040e12616df28064e5895a8903a26dfde7e88229a8d29fc4cb77711bf81bd04db9
+B = 0
+GCD = 231f16458c487346cf50a17beec83632f25d19abeea1097c746533cd3e35207b7efd75dc3e9c663a64b6861e88579dad08649f107a13edf2ad43d0056f9240ad2a08c4aba20f05cc4aad23eb47e77cc8031df5b1c735b55103e164ca6c07bd040e12616df28064e5895a8903a26dfde7e88229a8d29fc4cb77711bf81bd04db9
+
+# for even i, test:
+# gcd(2**i - 1, 2**(i/2) - 1) = 2**(i/2) - 1
+# gcd(2**i - 1, 2**(i/2) + 1) = 2**(i/2) + 1
+A = f
+B = 3
+GCD = 3
+
+A = f
+B = 5
+GCD = 5
+
+A = 3f
+B = 7
+GCD = 7
+
+A = 3f
+B = 9
+GCD = 9
+
+A = ff
+B = f
+GCD = f
+
+A = ff
+B = 11
+GCD = 11
+
+A = 3ff
+B = 1f
+GCD = 1f
+
+A = 3ff
+B = 21
+GCD = 21
+
+A = fff
+B = 3f
+GCD = 3f
+
+A = fff
+B = 41
+GCD = 41
+
+A = 3fff
+B = 7f
+GCD = 7f
+
+A = 3fff
+B = 81
+GCD = 81
+
+A = ffff
+B = ff
+GCD = ff
+
+A = ffff
+B = 101
+GCD = 101
+
+A = 3ffff
+B = 1ff
+GCD = 1ff
+
+A = 3ffff
+B = 201
+GCD = 201
+
+A = fffff
+B = 3ff
+GCD = 3ff
+
+A = fffff
+B = 401
+GCD = 401
+
+A = 3fffff
+B = 7ff
+GCD = 7ff
+
+A = 3fffff
+B = 801
+GCD = 801
+
+A = ffffff
+B = fff
+GCD = fff
+
+A = ffffff
+B = 1001
+GCD = 1001
+
+A = 3ffffff
+B = 1fff
+GCD = 1fff
+
+A = 3ffffff
+B = 2001
+GCD = 2001
+
+A = fffffff
+B = 3fff
+GCD = 3fff
+
+A = fffffff
+B = 4001
+GCD = 4001
+
+A = 3fffffff
+B = 7fff
+GCD = 7fff
+
+A = 3fffffff
+B = 8001
+GCD = 8001
+
+A = ffffffff
+B = ffff
+GCD = ffff
+
+A = ffffffff
+B = 10001
+GCD = 10001
+
+A = 3ffffffff
+B = 1ffff
+GCD = 1ffff
+
+A = 3ffffffff
+B = 20001
+GCD = 20001
+
+A = fffffffff
+B = 3ffff
+GCD = 3ffff
+
+A = fffffffff
+B = 40001
+GCD = 40001
+
+A = 3fffffffff
+B = 7ffff
+GCD = 7ffff
+
+A = 3fffffffff
+B = 80001
+GCD = 80001
+
+A = ffffffffff
+B = fffff
+GCD = fffff
+
+A = ffffffffff
+B = 100001
+GCD = 100001
+
+A = 3ffffffffff
+B = 1fffff
+GCD = 1fffff
+
+A = 3ffffffffff
+B = 200001
+GCD = 200001
+
+A = fffffffffff
+B = 3fffff
+GCD = 3fffff
+
+A = fffffffffff
+B = 400001
+GCD = 400001
+
+A = 3fffffffffff
+B = 7fffff
+GCD = 7fffff
+
+A = 3fffffffffff
+B = 800001
+GCD = 800001
+
+A = ffffffffffff
+B = ffffff
+GCD = ffffff
+
+A = ffffffffffff
+B = 1000001
+GCD = 1000001
+
+A = 3ffffffffffff
+B = 1ffffff
+GCD = 1ffffff
+
+A = 3ffffffffffff
+B = 2000001
+GCD = 2000001
+
+A = fffffffffffff
+B = 3ffffff
+GCD = 3ffffff
+
+A = fffffffffffff
+B = 4000001
+GCD = 4000001
+
+A = 3fffffffffffff
+B = 7ffffff
+GCD = 7ffffff
+
+A = 3fffffffffffff
+B = 8000001
+GCD = 8000001
+
+A = ffffffffffffff
+B = fffffff
+GCD = fffffff
+
+A = ffffffffffffff
+B = 10000001
+GCD = 10000001
+
+A = 3ffffffffffffff
+B = 1fffffff
+GCD = 1fffffff
+
+A = 3ffffffffffffff
+B = 20000001
+GCD = 20000001
+
+A = fffffffffffffff
+B = 3fffffff
+GCD = 3fffffff
+
+A = fffffffffffffff
+B = 40000001
+GCD = 40000001
+
+A = 3fffffffffffffff
+B = 7fffffff
+GCD = 7fffffff
+
+A = 3fffffffffffffff
+B = 80000001
+GCD = 80000001
+
+A = ffffffffffffffff
+B = ffffffff
+GCD = ffffffff
+
+A = ffffffffffffffff
+B = 100000001
+GCD = 100000001
+
+A = 3ffffffffffffffff
+B = 1ffffffff
+GCD = 1ffffffff
+
+A = 3ffffffffffffffff
+B = 200000001
+GCD = 200000001
+
+A = fffffffffffffffff
+B = 3ffffffff
+GCD = 3ffffffff
+
+A = fffffffffffffffff
+B = 400000001
+GCD = 400000001
+
+A = 3fffffffffffffffff
+B = 7ffffffff
+GCD = 7ffffffff
+
+A = 3fffffffffffffffff
+B = 800000001
+GCD = 800000001
+
+A = ffffffffffffffffff
+B = fffffffff
+GCD = fffffffff
+
+A = ffffffffffffffffff
+B = 1000000001
+GCD = 1000000001
+
+A = 3ffffffffffffffffff
+B = 1fffffffff
+GCD = 1fffffffff
+
+A = 3ffffffffffffffffff
+B = 2000000001
+GCD = 2000000001
+
+A = fffffffffffffffffff
+B = 3fffffffff
+GCD = 3fffffffff
+
+A = fffffffffffffffffff
+B = 4000000001
+GCD = 4000000001
+
+A = 3fffffffffffffffffff
+B = 7fffffffff
+GCD = 7fffffffff
+
+A = 3fffffffffffffffffff
+B = 8000000001
+GCD = 8000000001
+
+A = ffffffffffffffffffff
+B = ffffffffff
+GCD = ffffffffff
+
+A = ffffffffffffffffffff
+B = 10000000001
+GCD = 10000000001
+
+A = 3ffffffffffffffffffff
+B = 1ffffffffff
+GCD = 1ffffffffff
+
+A = 3ffffffffffffffffffff
+B = 20000000001
+GCD = 20000000001
+
+A = fffffffffffffffffffff
+B = 3ffffffffff
+GCD = 3ffffffffff
+
+A = fffffffffffffffffffff
+B = 40000000001
+GCD = 40000000001
+
+A = 3fffffffffffffffffffff
+B = 7ffffffffff
+GCD = 7ffffffffff
+
+A = 3fffffffffffffffffffff
+B = 80000000001
+GCD = 80000000001
+
+A = ffffffffffffffffffffff
+B = fffffffffff
+GCD = fffffffffff
+
+A = ffffffffffffffffffffff
+B = 100000000001
+GCD = 100000000001
+
+A = 3ffffffffffffffffffffff
+B = 1fffffffffff
+GCD = 1fffffffffff
+
+A = 3ffffffffffffffffffffff
+B = 200000000001
+GCD = 200000000001
+
+A = fffffffffffffffffffffff
+B = 3fffffffffff
+GCD = 3fffffffffff
+
+A = fffffffffffffffffffffff
+B = 400000000001
+GCD = 400000000001
+
+A = 3fffffffffffffffffffffff
+B = 7fffffffffff
+GCD = 7fffffffffff
+
+A = 3fffffffffffffffffffffff
+B = 800000000001
+GCD = 800000000001
+
+A = ffffffffffffffffffffffff
+B = ffffffffffff
+GCD = ffffffffffff
+
+A = ffffffffffffffffffffffff
+B = 1000000000001
+GCD = 1000000000001
+
+A = 3ffffffffffffffffffffffff
+B = 1ffffffffffff
+GCD = 1ffffffffffff
+
+A = 3ffffffffffffffffffffffff
+B = 2000000000001
+GCD = 2000000000001
+
+A = fffffffffffffffffffffffff
+B = 3ffffffffffff
+GCD = 3ffffffffffff
+
+A = fffffffffffffffffffffffff
+B = 4000000000001
+GCD = 4000000000001
+
+A = 3fffffffffffffffffffffffff
+B = 7ffffffffffff
+GCD = 7ffffffffffff
+
+A = 3fffffffffffffffffffffffff
+B = 8000000000001
+GCD = 8000000000001
+
+A = ffffffffffffffffffffffffff
+B = fffffffffffff
+GCD = fffffffffffff
+
+A = ffffffffffffffffffffffffff
+B = 10000000000001
+GCD = 10000000000001
+
+A = 3ffffffffffffffffffffffffff
+B = 1fffffffffffff
+GCD = 1fffffffffffff
+
+A = 3ffffffffffffffffffffffffff
+B = 20000000000001
+GCD = 20000000000001
+
+A = fffffffffffffffffffffffffff
+B = 3fffffffffffff
+GCD = 3fffffffffffff
+
+A = fffffffffffffffffffffffffff
+B = 40000000000001
+GCD = 40000000000001
+
+A = 3fffffffffffffffffffffffffff
+B = 7fffffffffffff
+GCD = 7fffffffffffff
+
+A = 3fffffffffffffffffffffffffff
+B = 80000000000001
+GCD = 80000000000001
+
+A = ffffffffffffffffffffffffffff
+B = ffffffffffffff
+GCD = ffffffffffffff
+
+A = ffffffffffffffffffffffffffff
+B = 100000000000001
+GCD = 100000000000001
+
+A = 3ffffffffffffffffffffffffffff
+B = 1ffffffffffffff
+GCD = 1ffffffffffffff
+
+A = 3ffffffffffffffffffffffffffff
+B = 200000000000001
+GCD = 200000000000001
+
+A = fffffffffffffffffffffffffffff
+B = 3ffffffffffffff
+GCD = 3ffffffffffffff
+
+A = fffffffffffffffffffffffffffff
+B = 400000000000001
+GCD = 400000000000001
+
+A = 3fffffffffffffffffffffffffffff
+B = 7ffffffffffffff
+GCD = 7ffffffffffffff
+
+A = 3fffffffffffffffffffffffffffff
+B = 800000000000001
+GCD = 800000000000001
+
+A = ffffffffffffffffffffffffffffff
+B = fffffffffffffff
+GCD = fffffffffffffff
+
+A = ffffffffffffffffffffffffffffff
+B = 1000000000000001
+GCD = 1000000000000001
+
+A = 3ffffffffffffffffffffffffffffff
+B = 1fffffffffffffff
+GCD = 1fffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffff
+B = 2000000000000001
+GCD = 2000000000000001
+
+A = fffffffffffffffffffffffffffffff
+B = 3fffffffffffffff
+GCD = 3fffffffffffffff
+
+A = fffffffffffffffffffffffffffffff
+B = 4000000000000001
+GCD = 4000000000000001
+
+A = 3fffffffffffffffffffffffffffffff
+B = 7fffffffffffffff
+GCD = 7fffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffff
+B = 8000000000000001
+GCD = 8000000000000001
+
+A = ffffffffffffffffffffffffffffffff
+B = ffffffffffffffff
+GCD = ffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffff
+B = 10000000000000001
+GCD = 10000000000000001
+
+A = 3ffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffff
+GCD = 1ffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffff
+B = 20000000000000001
+GCD = 20000000000000001
+
+A = fffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffff
+GCD = 3ffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffff
+B = 40000000000000001
+GCD = 40000000000000001
+
+A = 3fffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffff
+GCD = 7ffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffff
+B = 80000000000000001
+GCD = 80000000000000001
+
+A = ffffffffffffffffffffffffffffffffff
+B = fffffffffffffffff
+GCD = fffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffff
+B = 100000000000000001
+GCD = 100000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffff
+GCD = 1fffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffff
+B = 200000000000000001
+GCD = 200000000000000001
+
+A = fffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffff
+GCD = 3fffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffff
+B = 400000000000000001
+GCD = 400000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffff
+GCD = 7fffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffff
+B = 800000000000000001
+GCD = 800000000000000001
+
+A = ffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffff
+GCD = ffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffff
+B = 1000000000000000001
+GCD = 1000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffff
+GCD = 1ffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffff
+B = 2000000000000000001
+GCD = 2000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffff
+GCD = 3ffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffff
+B = 4000000000000000001
+GCD = 4000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffff
+GCD = 7ffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffff
+B = 8000000000000000001
+GCD = 8000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffff
+GCD = fffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000001
+GCD = 10000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffff
+GCD = 1fffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000001
+GCD = 20000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffff
+GCD = 3fffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000001
+GCD = 40000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffff
+GCD = 7fffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000001
+GCD = 80000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffff
+GCD = ffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000001
+GCD = 100000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffff
+GCD = 1ffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000001
+GCD = 200000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffff
+GCD = 3ffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000001
+GCD = 400000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffff
+GCD = 7ffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000001
+GCD = 800000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffff
+GCD = fffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000001
+GCD = 1000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffff
+GCD = 1fffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000001
+GCD = 2000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffff
+GCD = 3fffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000001
+GCD = 4000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffff
+GCD = 7fffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000001
+GCD = 8000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffff
+GCD = ffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000001
+GCD = 10000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000001
+GCD = 20000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000001
+GCD = 40000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000001
+GCD = 80000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffff
+GCD = fffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000001
+GCD = 100000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000001
+GCD = 200000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000001
+GCD = 400000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000001
+GCD = 800000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000001
+GCD = 1000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000001
+GCD = 2000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000001
+GCD = 4000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000001
+GCD = 8000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000001
+GCD = 10000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000001
+GCD = 20000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000001
+GCD = 40000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000001
+GCD = 80000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000001
+GCD = 100000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000001
+GCD = 200000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000001
+GCD = 400000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000001
+GCD = 800000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000001
+GCD = 1000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000001
+GCD = 2000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000001
+GCD = 4000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000001
+GCD = 8000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000001
+GCD = 10000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000001
+GCD = 20000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000001
+GCD = 40000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000001
+GCD = 80000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000001
+GCD = 100000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000001
+GCD = 200000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000001
+GCD = 400000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000001
+GCD = 800000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000001
+GCD = 1000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000001
+GCD = 2000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000001
+GCD = 4000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000001
+GCD = 8000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000001
+GCD = 10000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000001
+GCD = 20000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000001
+GCD = 40000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000001
+GCD = 80000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000001
+GCD = 100000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000001
+GCD = 200000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000001
+GCD = 400000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000001
+GCD = 800000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000001
+GCD = 1000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000001
+GCD = 2000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000001
+GCD = 4000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000001
+GCD = 8000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000001
+GCD = 10000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000001
+GCD = 20000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000001
+GCD = 40000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000001
+GCD = 80000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000001
+GCD = 100000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000001
+GCD = 200000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000001
+GCD = 400000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000001
+GCD = 800000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+GCD = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+# random KATs
+A = -1
+B = -1
+GCD = 1
+
+A = -e9
+B = -122
+GCD = 1
+
+A = a991
+B = 9c91
+GCD = 1
+
+A = aee38e
+B = -ef35d4
+GCD = 12
+
+A = 11fac5874
+B = -13a37ad53
+GCD = 1
+
+A = -30ba5f2ee8
+B = -15935eabc59
+GCD = 1
+
+A = c85702ba3795
+B = -4646d650b41
+GCD = 1
+
+A = -1804fb46dd79d30
+B = -8d3ebf6a5c5c36
+GCD = 16
+
+A = e0d6ca65ea05ea62
+B = -93acbd36ca94622e
+GCD = 2
+
+A = 15ad06885f13cffb323
+B = 17f0004c657a8977d75
+GCD = 1
+
+A = e7ff96cec9c080a4ce76
+B = -18dc55650afa9072683fd
+GCD = 3
+
+A = 1f04b96580d11dca1a42066
+B = f39f140e2a29fc19c6368e
+GCD = 2
+
+A = 1839733c9c52eef9beb64d92e
+B = -70bb38f2d70b9bfb6d764371
+GCD = 1
+
+A = 157393bc256b25c0a1d107c270b
+B = 171a32af49c010663708c8e4dd6
+GCD = 1
+
+A = -15c0ac453e8b47c0a8da6a95c6d1c
+B = 1fcded9fb7ea85e696b675dedfe3c
+GCD = 4
+
+A = -4f4db668e2b044ee972eec62b06264
+B = -be55936205e72ebb3e0543b8d83628
+GCD = c
+
+A = a8de6c3578a1f2fb69adfdb7cd687eb4
+B = -1371dea9653f87dafa5512b89b2691b4c
+GCD = 4
+
+A = -188f12124f8209f97ae82183cdf31586244
+B = 21943e5fc78521801b7adc83d3ff634eca
+GCD = 2
+
+A = -1e420c37d2a409a1343bb17987d3e94af10e9
+B = d5cd4728f9272d5127dc104340ac89cf1eec
+GCD = 1
+
+A = -1e760bd24fda671fb720885de3256b4d55795f5
+B = -1c6711aff275b54c644371b1aeb6f463006f06
+GCD = 1
+
+A = 2894fbe326e1dc1a2822fd8d262f85fb667ba633
+B = 179f9449f643787ff96fc064da43cd5da2a72a35e
+GCD = 1
+
+A = eadf17a11a74869d40d124c748aa39961f53e83165
+B = 1b428b0c3b619f2001fe8290e8e3849c765b06d3a7c
+GCD = 1
+
+A = -1f8596327f7e3f97be2317163c6452b376bb604845ca1
+B = -1e0c736e66846f8d2b8c785c00db9a586fc5317d0e66d
+GCD = 1
+
+A = -1601684fb83ed9e1d8ffe6b0cfbd98d21a19aaf4da369d8
+B = -c1a63d561ff82329a03c2a49fea26d950a0f58fee95afd
+GCD = 1
+
+A = 1375f0dac727bcd1fe8d4b1d1dd563f236dcc58e1a36fbdfd
+B = a96ba42e882a321930399b7788e0fec9a8f76f44b5432a00
+GCD = 1
+
+A = -1f97ab20b489a029b542fcdd8cb0d057b86e4e34fa3cca7585e
+B = -9bc7742a043afce9a631bac56cd2e319850cc7f73efe3c0a5b
+GCD = 1
+
+A = -9a25f52b7931435209611f2ad2e234f4582bdc42712765a9318e
+B = -1284cf183b2ec1b4dfec71a6a91705f5df295c95b28aeccd247e
+GCD = 2
+
+A = -1809511b69429a5f991744ecd94091c0e56d7777b4a742ba9785f7a
+B = 17b9cb217832e39c4933fe0581369a767a08104d5bebea2895beb6e
+GCD = 2
+
+A = -72334f3e1d30b6bad9557d9f71d4da5de7d70309cb0a723c347e6e12
+B = -1930a381a580375b7de06f0fc9d201326852efa287ad8cf32c17e06bb
+GCD = 1
+
+A = 45d3a8d17d00d181ea1b116f235a98ce63291e9aaa90b41e1a24ad0156
+B = -1d7568b87de073113c8ac7bb800234cb263d67c00e7b4743b297d2e8aa8
+GCD = 2
+
+A = 80ccfa8098eae998bdb17dbea961082c8cd102e92973346238e0c92dda04
+B = dff995ba1133f96e2f35b73bd22626e804b012901ad068316fe84e3c3f6e
+GCD = 2
+
+A = 1dcb28bd5126103759315cf41afec22d1a687ec010b60bd9b316226ebb2a1ea
+B = 9103b9f322cc8ba52c7e28a2d4c56bb61c59c92caa033030a575b0c32aeccb
+GCD = 1
+
+A = 143cc2cc2998897aab5bfd934b96551cc1fd390df3a27d39b4e6b7318e7b2ef4d
+B = 13b18e4776bb567f0908a670ee611ad402ffcd38f3de3c04d7a8a55b783811817
+GCD = 1
+
+A = -14c3c0af075bc68f7b3736141718d8892df43034d13416d84801cc6a0f5e3755bc6
+B = -d28486b18e2da1e97f1437c701e1856a683f0649541de1379bd3efb60b959b4497
+GCD = 1
+
+A = 453270f4a4ece4f6f1715159ce1c79d903923afb61b270c2784752d6ce57b39e0a71
+B = 935c04ebd73f4ba27ee5d538d77ee1ac0a1763b4c06b0f455878ce685409e27f224a
+GCD = 1
+
+A = 1f641676b547c76f4f25bd7b51000be79b301843ad54936f4cf234e772807f6984b400f
+B = -90450f1b6cd63d8d267d610045739be18a9ec4bbf8f6023ae373cf32366b8e6e406f37
+GCD = 1
+
+A = -64b0f11ad58106c02ec6a75bab4c527f8e524d61af3a1a55d4917e0023fa5528259a85a8
+B = 4771313a91911c0bf608f053dce02c3a710b6af607b7af950a125e2726feeceb77881e1a
+GCD = 2
+
+A = 1fcedacaf7e1bf8127b4c3023a31c4ea77728aa5162117f7b49f5d79ec65f614b78839b585
+B = 1506a9f996301e4b442a553e957aee1064b13dbb3d1835e9404c40b66845f897e5b8471ec7b
+GCD = 1
+
+A = -1b8e8aaeb9f4fd373c91a6e16d95bcc3597acbf3ef96d9863c128fd804fd3914ef66119c47c83
+B = -e2e25f6ecde0bfd2f7d0baa4d4a4e44324897ee9ff8e4578fbc6fa26d60660e5618b7bf787f6
+GCD = 1
+
+A = -335c87c3429ff3c97fa7cd2ba7cee0be9eca938b5efcc176f6d997cf4daee639d72d3b468c76fe
+B = -1369edb1cd98b3ec3d5a5ff91213df595848938f50f7c72b5579c62b7577d43fe2d67da2d23570c
+GCD = 62
+
+A = 595e6ff3fe0be024d58d9906ec9655560fe6caf83b10ef5b057565d25cb84603d0ef1942f2de68e0
+B = -123a4ef2b10b3a5af116e04d520440f80a3d69288f15bfe567a9df5f392808de829fdb2a310a7c54
+GCD = 4
+
+A = 1b38edb12c4a5a1fd60fdef562b9c1afbbe4b3c9653353bb5d409959bebde80f70118cb5fe231ce2281
+B = d795459901e5632813ee9c41c62629546a30c9c3aa8547bc1dc1b3308b7f72290962c07d6737eca08e
+GCD = 1
+
+A = -155f92cc303ac4964be78e178d4d9c331981405cf8bfa5c4fd388790ae3ac97ba4ec4ce2fa09d521f4e61
+B = 1c037e98e141acc316573d409b6d3b2b80152b3c99d83ece7ee595fe5a819f21544e63f2691d4e83449b0
+GCD = 1
+
+A = 8ee6db77234a82b5ab5ffd56f3252dbd5c3b85fd6226c4889eab86021fa295e223cec5bfa2920fa222f2ec
+B = 1fdd2fdc9456c648e5c0f71eea76376cb5fc2df0cb807714746f7ad8ffd1d765463a6da88b84c5d755dc18d
+GCD = 1
+
+A = 1326ca90f69200645488c325424c5cabb3b0a399d763ab7c8db84a05738ef94ed69a38c47353fbbc6d87df2cf
+B = 184e654bfdb1ebe9edcb700337e16054f7532f09b28aa588c22ec3eae40f59fe5515bd0158e562b79c472b811
+GCD = 1
+
+A = -1b8282f1d39ade651917fb348de3b0fec54f9af03fc1b25bbbb791762bc3708d6d6d375d6ad55efd24a83d65e93
+B = 2e004f8cc320892c61972596ace48b4e969b439eeff1b4d518ee3e70c40bb1294750ec31acca190912ba43803
+GCD = 3
+
+A = d0005d09b37a3d076f7dd28df6b2ed7f8025b13fc8e5594f90ecb65c56938fc2a45d71d7b741f04e5b9a674c2cc1
+B = 17478ff17cdd349bc5d37f5dc52106542139d5d61bccdd0d5bc233ac8e9cf54ddee1ba7c86822fd175209cca97fab
+GCD = 1
+
+A = 16449bbff3f02e684558cb401cbb885c2bd3f340d1f04e25dbfb1bd4d3d2c754019109386f05727a9ab643f4f6d256e
+B = 2fab68d37b6b5d04c8bad87660ff3623dec88d1f12c0331a161d9294e3506f107939b3d4112b02098ae3858b35f638
+GCD = 2
+
+A = 4969b50d1cb296de0575d6c4aabc96a7af93feef5a9b1a45b5fe47466d884eeaacbead767ac085cfd0ebaaa300d17b2e
+B = -14cd23e34c8ecec92f5b03dc7b23374566ecd5981d368a8421c7f40e0b2c64bc710690feccd6be52028af985103e9260d
+GCD = 3
+
+A = -1e147a7d54c2e3175d29ddfb4da1fd04f3235bedfad0bf6dfb86bd36335e214d8c40fe968d42ad3ce6383e22b18dffd20ea
+B = e50a4e27df90f5f29fa0f4c33a7b3e0b194aee3d1dcb22c0cbd50640546c9248729904e9b7bb96f7e3e9c42edeadf2e7df
+GCD = 1
+
+A = -4fc9395d1de5a27737807b3324a95c542eb13f76fc9c02e5437e9502c1f8eb78a678c64d2fb66d529779299d4b19224a1324
+B = -1e0ee0eab241ab56a2548c98fc0cce9b4d301bccb5d8ca726cf3bc76b76f8e9d256c60361d2083947df784ffdbcd764e89273
+GCD = 1
+
+A = 8e13879d78637b80f874ff12889a7429703e9457a1ea592f623363b4886d55dad202064d308d1cba1d66cb3c4eeb7821174ceb
+B = -1829ff03ec9313562088b8c9c62cf2a102b81800192d55bdbe00d632e05c952773251f775902a7364e0c578adeea635240855d0
+GCD = 1
+
+A = 744c17672b4fb3cade089b2cbce0e508bd632b6d558c1d0cdf9744ab49596051884895f44f348840d1ded9aace7984d76cb76c2b
+B = db0fc616f3da7665f4475f992e665cf5e50df858dd74e7038dbc484839edaaa5c932d2e74bd48c5ad5cf329e37b7094e65da1a0
+GCD = 1
+
+A = -f7e708a624b8a7e892d9e4e3b6749a52244025c60d5cb91efa8bf3173a167af9adff2ff15cd15eb099346fabd51435e9d448aab243
+B = -187a5538713ed86be39629eee68dbf708f05f980b7c8ab8c083faf67fcdb19219b196a1f54d782c922e1c045646f7e65ed2e4c19013
+GCD = 1
+
+A = af952df8a3f4a23bba59f89a4a8d831018b439aa7ba275ac728a34383cc1cabbbbc29b85341e8c8fd7de4ee59ff4a5929a4a1f621841
+B = e89cbcd3fb82682cd2710940b1135ce5b3e96a9313dea51c97a39db8a6baddcef27c5158261802aa516abb45b3af67f65550284dcdf8
+GCD = 1
+
+A = 65e38d0c1b6ae3147288af950370215e9ab97a73f5620f4494bbe3727ab930889e1289f28a2f1f99592116dad19e4accfe14922ba67467
+B = 430b97e4d97b1897a823d716b8ee087cb4d591b5ca15121450d55d988fe65d53e13451a5ba010e8ef382b28ecbbe7ecabb34de61fa008
+GCD = 1
+
+A = a84023af42f1d1f81abec3f39fd7a85319d25a6a14bb3b5b48f699cab506c5aa701754bd68aec40214eb7bded5bc3d502d4cfd970d17ed02
+B = 1997f443a82913a6ff5f0f50739a1b5fffe3fa4ae68b46e28f4e9e124f80efc75c345182cd93c86e79fa57f78a902fccd7d6c6c2646c98644
+GCD = 12
+
+A = 144f099dcc5d0cc0307d510cfaf2b2d4d5cc89e85afe269690ab1094fe5734b1e1a9018583ffa7cdc172b02740002669bafa6fb172a35e7ca26
+B = 18d743f978c4ede6b840d5cf194584fb5d20957bae0f74e877f364a464f0f39729b81e48dbfcf4e1c954d9f7cad60a663947b2f1792f1870cb3
+GCD = 1
+
+A = e6b25ce1ce3b44ac6362793a743d43f2fd7a6c584bf9522c65cd2768446cdb5a980cbca31d2cc90ca354aa21dae34ea13407f3519c07ebde3106
+B = 16f4475cea77b5debeb310d35a9b057e6bfc4bc7edbb4691bd97a8124e9b07605420d358c98435f7ab522559d7ebc271fa72f1c46c2b1a7cba71e
+GCD = a
+
+A = -146a72ffff0699d3e6b78cc3a2953b679f4ef60a191b71c55c2534cb2df65d7ee880b095e9233fa763c7ebe136580153676c45b10471f8765b9facf
+B = 1d39f16825125ef77d02c662b4743c387941021b7fe13a19cc1caa57275e885d0bfdb92c00ae447c707c62c99d9dcfae1f8e38576829be6ddf02c48
+GCD = 1
+
+A = -18cfca9d12d66050fe7487725037b144328c17d0970d1a357e3b6309b4011ae23b496cce3f5e01bdc40dff57379e7ab5479e2f8c4da8acf6905551aa1
+B = 7a33f9b10a683ae6577fbd665dc695679cc9f13d5b55c6340ef4ba8682091f39e5b32fb0d7b49e92cb6344b379f71f022fa6d0d14cf043af352ab3eb
+GCD = 1
+
+A = 1308073b625424e7256155e552c7360479c8daf15dbf28b58ce1a32e71f23391724ca434dcfb8d943f6b1c2605283120b681dcb6fa7e32acacbbb096116
+B = 1368952d59b7beab2529615ed13a82114238d6970ab01f647ad74db8775517832c78b561179ccd9b7d942a0e95ee60b73a2b2da65d15a65d4780251e5ed
+GCD = 1
+
+A = 19e0429f04f48ddbde5c799eb68fc42f16c87e7ad846ec23ca067f6a2646d2439c56fcac63f945ea4e46735ca8aa9861f0f2ae60bf15d0d2b763d4bea4cb8
+B = e92ac7c91d3df4339a4ecf2e7eb7bba54ccf5713550f7be0ce1e88dffc9b9b1f798c96dc8df474d0bd2398620db3fedd6781c803dc58e37aeacbc37f2b11
+GCD = 3
+
+A = -d0574568670990b9006ef9d88fa6a2910b3d4368ba9f9ae1156df24a08f2785a9b95413c8ffea0ca3fc6d2819753f7504af98908299c423a538638adebca38
+B = 1a47702f41a8d8b06beed8c1274249ba4d1894f23d643e334a7cbb467c564c34487abe3d4e10a5ea413d86bf69b3d3d39bd8f41124fb2e2c75ab232b2dbeb9d
+GCD = 5
+
+A = 17472527c16c791804743e11eac47f9cde83d38afaaf015cab6b1977730d817f080e4ab864852a1bebef756c3280f010ce83bb247b9ea9854eb6c273c4495bf66
+B = ce282ec890884d87c803432eca66ae10b1381d77afde9394757e40dea8ead57a84ffa155c50d6da8742422f0ee42e056b6b9a698916dcbfd8a8c62b536792aa5
+GCD = 1
+
+A = -10bae6fe741604054f4801ccf4d310c10a24bad458d2bb9e536ac071b994326ce4dded82c19c73a82c75488ead4b4ca21abcec77fb208c90ee461bf27085a57ae45
+B = 1a5b9c18e755870012147afe400f974c1ac17ac5921171d3d9a4c310a5c0d433e2afd1a2077106220a0b7324ed169c4371a23f8f7334969a6108c888819c897efad
+GCD = 1
+
+A = -1b881dda84158e8b75ae4caefa5b58182acbaf10b121d5b987a4e9cbddcab844ad579b33f840859f03e4e9d9d45715df06a4a84f72c3b14b0cd7919955da3b5d9e4d2
+B = 17b67dd4fbc0f03dba4c5ce29b57d3ccd3b591fe72c6b9419f0cd4e2aa0a752e009f596bfa5eea0ed564543e5b1f2f8554823248f3163fb142bcf4df93bcecdc03ef9
+GCD = 13
+
+A = 68692ec39565ec8b666eb15e4aa878ebe4ab71302b9a88f412d759767504f93d420827dd20d5b9a61d3f0f6b34fb2b7d9290a31b66866695d7ba9a2e841122a25f6e40
+B = 1bdd40ee550fc1521309d51528fd00d1b44b79a3f592e576b44a72ce835016d140aaf690cd7d0cae330d81e5cadd8ce4c42ba04e9e1dad875fd8ca7cb86bc339a3bbf5d
+GCD = 5
+
+A = -b789b091157cf3ebf83eccc253948c80fc5eb6115b91c6b748222aefcac64f253f15254968220d1b2920c601d6b958c048fbf5785f36a0019ec3d914cfdc1bf602ae958
+B = 63e7831ece851cf35b876ed6306cbccf0eecfbcb0061cfafd7299b49b92e7ab6575691a469b971358317debc3aeeb94b0473266ff71e4f04c85d940699de6106ab9788e0
+GCD = 8
+
+A = 14a723c68069b43cad6a293259204444b8003896d1773d0c231178e301d9441a82c088657e4015d09f24da93f3d875ede31f40f2c3e499ee8b3d17b1987c6925a1ab01389d7
+B = fd3e117df477741462b13253420e116370277ac2057ebaf74159ad2e661d833686d7dd0bf12f1932de367b4daef6995db0ac7dcae12f3a1aa5cdd5fc7233fad25ccd0b7f35
+GCD = 1
+
+A = f00a97e17eace2dfbdf29081a798cb9df9d47fad119921b4d17469adcb2f65bc5ae8003b1734ac9f2e66310b3191c99e2ea20f51ac8944ea4c3a4c03f47170a7d34672cac622
+B = 5dd290b928e8acb0423f56526f4064d68165518b250cc77b71f0b10c9e9d78953a4936f8dfef579ebdd69e94985dbacc50d89a74b032cbbf8570154f5e7961c530ae924a61f3
+GCD = 3
+
+A = -2c19e437e1dd0eaa6ef2810e7940e1dfc00b93a94b0698d8403824cc96c38b7709ce158b113df830321e1cf7bc01d5417244d1a00801b983794e523f8e9478bb142f1740ec35f8
+B = e46307358b999c6a166c82f5f7883fa2499833e12f4a9bfa5bd095684751fbf8eed10c7cff6b01d47da3caa8be0123005f9d5fd418071369f6a3ed1d6f79c9176ba33c137f1a7f
+GCD = 5
+
+A = -1ba5e202200eb9e7323b325ba3edbfd42682d4436e4ac17de47a07a2e974c37edf68d5cb6eefc11560a5feb1e462dfbb3506efe6166b5527c5ace949bd34ecaeb4059d5ddf6a2acc4
+B = 1f180b6334ee7a453779a360ad011ac34f00eca053d94aced8ec69c2f868655578717917ce46f903b498b8a74e4fd9540b8c83e7668d9c2d5331a1a8b4a8be7fc1eaa878a7a8d0e7c
+GCD = 4
+
+A = -1c336e766b6012c270dd2c39cb01ca144ea30c905997e1db3e8ac10484f6f47dd124671d62f0dd3e7e301195f7f44661af47b3c30bc40c3fbcfb10ca43d64b4fbfc00dcc9689c955945
+B = 119fcbaa4b1d7f4a044dee464425c148c0a56dc0efc6e9a7c9d698c974535497000e6e900ad1cac61fe0c05edc705bc13d053a5f4e09ab733b1f7ce291f835c9a1c63ca4ba942a53c98
+GCD = 1
+
+A = 1d98bf3a71b81114b19923c433f6ee23ef76f0e00bae5f93541040646103430e28fbf778a537a3e310348126049d8847df6110889d623df5e10b5377cc2491e9ba7cac3e16d7dca7bca4e
+B = -2f3a8298c2d14f45cc22d7f61860b13e4ef909569d1c060f229702fbc45a92a3332ef699fa45f07bc7fae4213920be0731fae62918b05031764749dbbe98614b2d47f9b3476b6029b737
+GCD = 7
+
+A = 188940390dea60de153bcbcb03aa4d3757e9226da394f2d27224f68b067986cdfdc0ea0ea05941f9a38db68fdd26bfa40a4ca69f3fb55ad3ef7a54f41c43547457f59f3a5efc056346d5057
+B = -1c3b8fc51bace9ec1cc95ed06a72b66101e246387c6c67c8b24f60b366e1351ded4ac2e6bb9ac787ff511f9b5c4316001d4b6d8c0cac831ad1c7bf9b53e504bfa12366ee06536f5b14f4ee
+GCD = 1
+
+A = 17b87983b5c88cc7c1b349fc1a93cc7142333363db67a21bbfc4f9bfc963045c47651039c069d5908787c6944820a8081d7224c3d3ca59c04a311e458452897a9e41f137834c21c5eb7f75378
+B = -15a7a339a4a0cd99540f3387ecef5796c8138c715017477b870718bfc2d84b54947b282e4aae25b8bda01b62598bb43e6fd7d0390a7ccc53c22d4dd0d1e6277e351a93fb09e1a3dadbe2c0072
+GCD = 2
+
+A = -1ff3728d4381168a8939ca71b3274288fdf6c3f7fe7e648eb353888463bd456f7a4af2a78b3069bdfa6dd05f9bc795bba29bf879d8ecffa7c60ecb300f465368dc261ac337a2aa516e634f7ef7
+B = -3566c80416f729f4630fa19d45552f1388a42e34bc4f085b3a228b4a1d21e8d64b7f8002efd9c462860f1792448c7df3b6fb6387c5a9f81a3853ae0b4df4bcee54ee093bc904c4c8cb905a993b
+GCD = 1
+
+A = -f86ceadcc60272df13bd98d6ac375821dfaf9ad8f663f65aeabae09d11cccaf87d69ef9f39da40c649ec38bf158578d72e8013868bea2a1a34635184237af7b8cd18af3735ecffff67a066566f79
+B = d8ae668e6ec63b22fca2d0dc48579cc6d64bd321f618a367d87ff161b7a17f00d2795bab9ae68a1c93b9ed750133254ab12724a5c6c315f6ad6701456c33b2e0fa337d8dbc93cb4a18e4014afb2f
+GCD = 1
+
+A = 1e61a136590b6e980e54135800b52a0823beac18d98205aa1438b1aa3b755f13e3c8aa921ba47319040176a3d8951a842978b0bd8f4d80da92d1551f4feaf71164196dbd9ad0f81c155cdf9402e84a9
+B = -c6e5ba1cb842d572cf5875e3f6565208d2091e491447dd4a090dc0de80c00b29567bcb831b83bf610ad2b5cf1f2ab9aed47836b036711b43c5d0ebbc48d876a61e02be1dec4e89e677dd808388f674
+GCD = 1
+
+A = -1f2c93caccde7852e99e65d0b73fd82318041bd225aeeb6f80b21c90d055eaa0607f042dbd9b66960e0ccbeeca32a23a8fd19518f5146e7aa6dd02a0946a3eeecd5f5f000ee9ead8874503624fe965d83
+B = b0aa22dfb0cd46d1462aa02933c65ab242d274fd7271a555762205f1c791821b5aabe781d3ebf932eb8f264d8604e9c14cb4f3b71527593a0658e4a00ea1b7688634677e5effb0b112a7426332dcd2ee
+GCD = 1
+
+A = -1ece1a5ea104db93ce3159622fb40a5c37ae8e427641f7a972892d564aa3332739a60f4ab34e757d460bc5850e766c86d70c77c05d8b8d454dd66fa1e691406bad49a8046b01970848fae8ecd8e343d2f60
+B = 934ccda0b23ccba867a230fa187447289f784f98faffe952f686f40da20a319ccf8f134c111a93ecb31f8c2dbbb644420a50d3c472ed37c7393197a65cfce72a938f317360bca5a930dd2ff196522dcf4b
+GCD = 1
+
+A = 1f8446db527a96e2244e1956d36c00c5c90823512575b79b39971de168f1a6096b4cf705f441b6c419d696c41db8b67f87847fa8333cb9bdcce9958b241328c9437125c2bd983324ef8bed0e7ca202c203cbf
+B = 16f9bd5fbf45d95934429f912b2eea8b346633cf09127be615232e999ec111e73848578b412c42098917d334c9897116c3bf4607b4c8110bfb01a14e8f928ea29d4065101885177676b84438039d6cef0e164
+GCD = 1
+
+A = 1de739d426f8065659d826324e172186a72d89269fb3a1699d62e3d7a2cb096cc89a23de0b762e8d04ff04308ed0317b11b792cfc4030547c1b2c28dcb0b71feefd1519af3d33b199ad6d2d88047047af179801
+B = -139d796fb7325f9633c2069b568a211d6b2843e11646d2ed3689bc44e03e2f30f604f51b5352edaf85032215f5d00188c31fab2aea7edd0b62dbea241ff91e436a075ebfc38fc2887ee0d116137ba586b2d66b1
+GCD = 1
+
+A = 17e6e6d3eefab6ae7c054226765e57940a06ccd9759594a50d322804c1f04ee2db2cc726afe26a5880eae2d3de02b9c3fa18129861b4dfe83a7f945f80843f35cf44b77b72bccb62621cc76ab4e1145671cf4e1fb
+B = -16f61bdeab1cd4fb7c477eadd4a0f14c23bdf8d1f97c297c0576e1e6b9f554bee42dc68535d8d5d4166b906adea41ede1e562d08064beb6e8d01cb48b81eb02880237c4bd78153fadb293747370d284f319a3fede
+GCD = 1
+
+A = 9720f247b2290a3ddf543340c6ac23654cf075fe957c131af99a28844bc5c5c2b9f3cfe1d8d68dbecdfa7086b889a493ddb409e0b363793753a5ff624cdb4f93e89cc39e7f71128469218907e853b026b03128260c
+B = -beab5b719dcedd902a7fee587de6dfac9aa291d8548c350e628b824e08d20ebf45bbf502cc3c5c6f17143ad8be1577578863b7fc648225bb59f03ac32819a381952e2fa90ca3d6b154cc82b80858b7fd12bc972c0f
+GCD = 1
+
+A = -1f47a70253ece49019932a4bc36fa2e249343bad2a1b93b0f1343ff5887bc261465ff81ddc1223c4692d0a58ef0e5561221ec2d9ee6436194d5a90659af8e58cd411bfc47b1b1584ce8032f3939b4fb16c87516c620f6
+B = 1dd2bb04a9d252dd81d985556a285e2a16132f95a17392388f52bb2e5b2793d476db06426479a1d330141198d00457728e96d2a676ab0d186ed44990c548559c1576a2eea8db4688818777b898ecd8b8eb0c035f8108d
+GCD = 1
+
+A = 131ca0dbb4eccd76f3985b15fd623877feafd86f2b1c5c6f6c5d65a4fafbe25c168e633a81a9687f8625767927036b57ef7aa1830169dfe4661e534c72c5863b26ef4c7331d36ff98cd3d31c65f60a123dd7750bd120bbe
+B = 143a3bc7729aa158fdabfb8fcd7e420f5e0a506e09455645f2fcbf3caa29b023536df12667d569382c1c3aef94f332423a8ba46b8976bda06d077e9a4355ee41d70a7f8d1e9f10f41b724435e11ed2f32c640afd96e20a5
+GCD = 1
+
+A = 1b9e7f32245d67206cfc158b05701523cab7178eeb22ab828e65ee6b8cdab4ec70dc3c132fe71942e3e8443f813de8de7bfde4bd3c19c1d0cd9b8cb288a56a7c59229cdfe6142724a5c4915b6e45e07439fe4aa5c1ab75074
+B = -8b264b200be85f0df34c774a95330d8b4c3e4cc6272bcef2e4fb5534abc99f07588258781676b1a9894b37928ae0feca903ba3336ab532930f2b5f0982c0288faa02d6cc613711d0aa302d7ec7d8652789cb597d3a137ac0
+GCD = 4
+
+A = 7ffda115ed00ec00cbdd3db181fb544168fe8d7b3738c4bbe6d43940d806ab5b6000abba31874954cb0156d969ba61f8cc1ea1eb339ac787c285e1800728c71fd6d762a8724691419808379a5946b15ac5e3a50761a1a610b7
+B = d86a6c78030f585e02890588388cbc033f1aa01b7c6bd777ddf13d4f39b7c6417c480d9b5b6c05bc7c1e5881a7fbde0af614099f4ea77205ac335de0a931f9e172d626d86cd2592662a7347220fb70027d00aa3739eb2d4033
+GCD = 1
+
+A = -195b1e890246f1474a735bc881350367dc24dd5029ccc32130add6cb9c0cbee5984c95c5a0ee9dd3bfac814424e24322b62ea995f6bdb82b1558f0052edb830af5a6bc57e5887d671cb6d29ff71157378f6dbc5d1543aba4e8560
+B = 240d197ebdd352432661a8b299dea9987747d46daee9e83fa04e7aa5caa54c37430fb4dc7e011ee0d85273910e517089898029c328a676b95eaead4284628ff34690adbbf4f180f4c51ea9365de02fe759ee91c2110200d1e261
+GCD = 1
+
+A = 1f450515a64fe303b37e2b5e29526e427eb940a31ceec2e9025e668794aebd10e355c9a3df9f0126bc4003e5acefc321811e910c9e3420dca3483914d4868f80ac2ca6c069cf1cd7afefa10de51e19a46622ca936883ada39a3cee3
+B = -7fb7ce1bbd8bed6c8197dd7f3f87c0db2c2bb660f4d044fc5ec425a2dbc7a32e1b882cbd735439359499e21124aa1cdb833bc9ad2583a37f961aaec7b811a9d41e0f3716f76bd5aa82223290ed5ea6b296dea976768d81c0165964
+GCD = 1
+
+A = -1d4c92758a0442547ebda5989a829f649e7d9b07e35d468d3701ba9bd72185d44bc32af11a3014d1ea3d334671f96bfaa285a942c4c0389b5d15bb2b2854bc0975536feea1fc88d827c6833f4d72edd84f4bc931c41f4049f1a69983a
+B = 2c70638a67acd4636028a8c9245d68e2866688b35c85bcb62c5ee970c9580a23d9baa4be36f0ac0d4b7c3b2dbaf3037da13590c0487e2c0615894a26288d598968e4c4e8318f60ee78b496dcb213b4f27d906d3070fb222f7d5facbd
+GCD = 1
+
+A = dfa8e7c654bc1859cd62685a5d01892744fb5e0d5c751be4464833a9d125236b1c74635832d43352c5d3e6370cec200fefab9e2379156506e3bfdef641971b7bfaa76248cb1785d8d096c87f36d18b8465d7e01e167825079b9fc82f93
+B = 2aaf7caeed892768e9ee5fa5e5c545a1a9f6765f23814c65aa175ff46edfc9ccfe7d4fe3c048ab69b8bb7934937c36348535b9530dad20e7375474fd465a16301cfe8c19ef49e6f3e84dc13cea97ac9e0614c64808e2431cb261f440bb
+GCD = 1
+
+A = fb48d53863a542e2b3f312c9eb5d4c1645beff51aca1e6333f5d4aafa9b530d1ebc68127c911f08c029a0a81d80beb4b184420c2427cfae9754629532d14e04b0d65701fea5b4a618471ad2c85f1acc66eddb4d5e856d960ee329f22c235
+B = -15164ba1f25a99e064cbb380e64f10134e1210ef97ef9a356bfe9c7d49e2c7a973f9926abd603d6ad95c54062e420b1740fa6b99e5538d118dd8c8b70e4941defe4a8174d5e450019fa5a2343309cf8b5e3d7451a7556c239216d27ae4a43
+GCD = 1
+
+A = -19293e4a1cbf995b3fcd9f8958b1225d5b91e1e97d44433868bdb418d7302c33b0471c3e90dc1ee9243f4d4e0a14965baccd2d710b96f47c1ceb9f7acd767fc3e343001ea7deb74203b71b5aa016e3f65521f7a784afb1e9e4c8bc66967d1ad
+B = 1371e2b1544befe4b445c8a08fdebcd80b6aa7457c4bff362bdc3860f4cad1220969fdae3e0ded976bee00723545348bc890a7f983184cd7403b37a1677039b47a9c7d88f44829404bf81ea3d00ca195f66d798443969b42c272ff1c053d3f
+GCD = 1
+
+A = -1111d3fd9856b58585345d515e04ed0fe6aab671da3bc8ea033baf7dfde3ac66ac6d532d6f1ebc1968a28afbed56324ae8e7079437cbd4cc6d274c4cd04ad828b1365012b4ac45ed5d8ff6dc829cdc0dc28fbe7892cc4e02cd51d613084fc282b
+B = -1cb3c8c28f4e91ca61b515f06010c4d62f41ea3bb46a6958919f5726ce66b5bab4e139f5af1b9bccf8e4d89d3c328ffc01b81ba513cac4dc452e30b6e2866eed0fb9f35c80d00259b949fb9f5ce18ccf18de63b7ad00482b25551e5bd674dff5e
+GCD = 1
+
+A = 195670341878824e78dbcd7a9bbdf01d7d54e01cfa117f739ab817058ad46dd5dac32470badf593199e18435430480e2fee254b3366d304b6836caa0dac60f72bd253d1609c552c2ba17344f0cb31b04af26892beef7d8b6f3ce13ffd98a9f46883
+B = -c4f0453103a641d9ed6f43d346a46d13f27db35d1c59e8c2b41dcef25d2973606b661bb1146a67605dac9d6c6206ad088e03e7f4fcc9b87359016d65c8cea153ea38c9d05f14f4d8bfebf6a8581f1a8d795180dcbfc1e6f4d6632196a2a160f59c
+GCD = 1
+
+A = -1d79245983fa01e4d163aff7ce0af8f4e7c6163f72b9742bee42d32649e1301902407ea0ad95f4257c606d23322c8e7d40cc85c414f7ba8e1261e17cb11cd31e41c1cedf62f8dc3598197c4e360c9db2de4b61907f08190c6e366d5367d22f1ef954
+B = 1d9b83afae0a98265e6db4d0d1ad6a3347365ac638a67422215bc55df542aa453696dd2d204b88881a327d6c9a94857ff791abc1c93af7433a4c454e2ca5bbc501e7c97d12032aea304c451bf60df7c09ab1d0fbf36d0c0f78fb68d8789fa33b6c7fa
+GCD = 2
+
+A = 799e777775d7394f7a77c6db8e4529df86e558329770e19f3e6a0c3265f977ab9136d17189fc03b4f9bfc15542f043bf36bd23b4ac5f588fbc3397d8a07e4fd0637555c048f0b409dc95144e043ae7eb3f7237220b4e69ea9e9504c5abe51f8c59a5af
+B = -19ea3656e1da17cc2f354c7041dda3f6bb851ac01796d1eb1cf5af31860a06b2293b4aa37d8bab04ff4536f6aeea6832fb43e4fc53d9d1b23b9af9740c3b95a8ab617b5c2e001dd28d4510e6a5365031935b130de2d966f38fe88ec2262d4f5ced94252
+GCD = 1
+
+A = 1310e5826ac225e8b87d9522cbbad948409dd85504c259432ea240107c71966abed2f99d171143d1fe40a72b2bb04e40b60eacd3991599870e6a9895e1c13fbdad65bf1f65e80cefd5106d1f5801f9a0a0b69c9ddbf5296023b5293a4bca25794eac6a85d
+B = -b0ab1e364364263b095716435b5707d8df942a74cbedffb7a8c7839866a3cbc9d7e7ebc7bd595de37e3eae9b911c7b32c4f89f97914da0c34734ce14f6c3a044c29121abc8a2cf4c66c97add14ff7abc6948bae778ad8e2312c88811fed28d99fd7892fe
+GCD = 1
+
+A = -38e054e10212393c1e06b81ea801e5e3f9deb19f04a0d1859eabd710e6a8d84127aa983013a617df35b2490fc1138a03f8086250bfd3c10caea0e135f305243518e68f121f655adbc2e9150a8786534b2f1bb8041ca6507934892e9ff80eb6c48bfe2631b0
+B = b02ad650b74479c61cd2c3e30a752764532ddd364ea6971b81a4ff59eaa31f075291f2efa81ea898ef97bbfcd526c54f76a1b3efa9944bf97fc051cb9bd16a7a92c1841a93c565a720c4a12c36fe24869692e88f5760a6fb08065f1a3dbc9e86069733148e
+GCD = 2
+
+A = 10294a7bef1935e40e5d5a169118fae2dfee679dd25e71e35f9b265adb49818cbd56740d5f91657300467c7f0cce26b1b5f7c9b5f37ae8bac26c07721ae24adb06de97c1d3befd4a162141bf45c90187a1a4c662167b7927cf7e7f016b8556556ba2b40fd2e1c
+B = 1c7889e668fbb811a850d939a8d967d910b670ef4937a5aee3c0c8ac0255dab86be09bb5c65e2c08932a949dfba40298345cb4ba26ff9c69dfd39c1674c784e5498947a96421deb07ad293448809a9ca4bc1f35620069ca1d3b3b31126ee27739eba6147df8
+GCD = 4
+
+A = 193093f8ff4eeeecf48441b80ea2d337dce52077eaa3044fa89638a72cb9362d1b6603251fe2794233ec0afa3df79f8816ebb6c525f5f4870f9ab2379ea5e6ae5cb79bbd4a3cca46f35b5c9dd7c2b4b31624da200c1ad5f8e44447d66048a964d69cad9599bc710
+B = 1dbbb0a1a452b0c5416ea19b76984d4faa77a040e3f45694523ad18fa0554a3ac0613158177eb3c5b88a6bd757dd00f2cc7b53641828f50790fc66f5af17b74d068a4a8c398877d176f7856342051854c77e6d0b197a18dfe98bbd4a3008451f9674785a362b1df
+GCD = 1
+
+A = -adf652d2278ac55fc954b53f5d1ad856912ee4c727eb36a40739803d7fe32437a67aaa0a59cc8394ea84eb096a11956dc611a6fb0d846ac7ec107d5e08e092fc98f34094040845dce29730348500284feca0dd0bf723da6c1a9a79409b3310be848e7b88b11ac3b
+B = 27fa57c1c92a3a60d9708160a8996db66fe590f75ed0fb00c2d6243ff151e9d9dc7eccbf46953a6b0f7b44ae1199b8c61237d1c7410ed413b5fe6b61b5a628e8a387a77e0c59ea4354f9a61db2df57227a9b4acc869d856b849cb20042485034eaf20f9e33e42312
+GCD = 3
+
+A = -14c7d5b904755b8f4d20b0e23b6367aeb453e637b3b5583fcc131938e3a10527f9db281cfb61fa718fec45a1beb19274757ce6ad482caddb80426f63842371ea328102f57d5221fd89324b82e2d091350a0ce628877611d2d16e9674f003199f0368a2beb092e68b181
+B = -1701edb25940b44dfecda504eaa7d092857f46a7da0687ba606388189bb355b6ca8f1a80617eb883faec51709d5ccf63474be8e6af008ad7296a69f47d6a99ee274d420685530e521a4186d327829f0b2be15e6816f22c1ed3f8e5e195e6181d9e76378c0b02e49a670
+GCD = 1
+
+A = -11fe62efdd49137f4171fd1cf7e05d571bc83ecf88e4f25d548aa6d48ac468a1056cfb47f83f1851c5aa5bf37860307bdc4ae21e5641c830eeca0efc1d952352c6da051f2a39931d78e6eb9cabe6694a7b3546085965bb1c8b1911af911faa85d726cdf7995812ed8b4f9
+B = -1e18be71d63252d88a9ba24a4b496307d4ebb799dc8d7d51f0d5bf8c25df4809a06bf5de7ca330c380f4e3e32605340070cc24614ce8c403fb40dbf1a1bfee996121b352acba9b98420b5f34d9cb1e04f75304908fdf23d57ded0e8e3e1cbfdc11c8f37b40b5739393672
+GCD = 1
+
+A = 1e26106a038f96fefa81499b8c071f950f01173fd855cfcffe8efac710846fc4c8acc3176ec63b16720c2bf8aa2f8ae41084e3808824f9c87f8af8b131928d81bfcb203873cabca842c63e5b572f007adc1f21462498c32205ab9a6609a5669b47ceec49c155c874ccc3ba7
+B = -301ca6ea04efce6b833130e716a3c7d33de943c8751bd1b6743247c7b278c2419c8f88346b6dce45c67b3a6248f8114e978fd982f1096f4a49d99037a18e1cdf51546b18f703cb342a6c7511323b25e0da5120703b27605513cdc934026f86a8390ea3cb2a809820245a5d
+GCD = 1
+
+A = -1235c5a143af75f8ee43a9ae17b3422c29732581d99af2cf7caebc8534e0c9083ee532c9e5357b663e5d0895b8d06ba34521dc4f27582e94c20f6fc1bec19a81a5c0e6f3db249132000fe8530676ee7f6104d9440192acfc43a2bd15be5af4e1c702fcecd3f365f81befdb68f
+B = -c59787911815bbc53dbd825493b8114bb6925cf35d5ad5572be33db2134cff7030bfe1b1544fd9c842178c1d8a80a06ed23feb08605425bf8788503a8ab43fcd03737993b41bcf84eee4bfa6d09e753314fad68f7d78ab8c30943e0e4fd8f552126d69d53475851ad79de556
+GCD = 1
+
+A = 3984340a1a2282fc4f08d749f6acf3c49d69be244609d0965ca430dace8147b5c07dec0a2691cbf96c945fca9447de446b9f7e45f328903daf574b7fca299742d4b3c632bd48cc32ee3db771459acb73fda9277c746f4ff5c08161cd1336c4d2a1392b676886b098889715032d
+B = 14569bacb60b94aff13c409f7c045bc2a40f6e7202a61ff7ad367c23aed1f13849b9e67462ca9d4464c8b200ebb5b06d7151047792ab9aa5b043a67883f2d32cc9983004b0e7df001cbfe1fb30da2e81164c27590a4b3946d9a0f529d1803e314d095da05d9732ebfa6e1e74cfc
+GCD = 1
+
+A = -9cc3c8b4daa1042936979deee5a67644d69565aa1acf2ae7b017172e28c01be4df5af1bd30cebd029153f49891fbfaa35f1ff7797478223598d1203da831290b41a31914c20f5d1a636ee142ca61521b3be2bc5ef09992c56722ff282dccbdbf7ec30457625b31f873b1e4353460
+B = -b3bdc786eda280a4f65920f842303f33434da1f7f010f22f0d019daa3b4228fcbd7d1cacab23b414b4ca50a24106fd779eace714b765993fcbaf154ad863e448bd7edb119bfdefacec961a2eb2d95875b5e24cc3678facbf28250d34cd199bd76a1faf2ce777c14dea56b9841bd7
+GCD = 1
+
+A = -f4d600ca23119a9bf6b42b7ae208c12493fff374f899bafb351bffab0fa299892e17377343b4a2a6e2d697266f4acb7f1b1a463b508c98ff60b5a5ca4314b4a70f65011c745bff7a02e0839427eaebf8b420a32d66d11adcf3612655cf46d5246ea4aa1250305c87f476ed61d5cd7a
+B = -122a8d2b5fbca94051404e1e454ce748febc63620003c5c7eb6d7685f0a6ee80d68c64c1e873c653c6ec832581d6f6e3b3c7bef6ee176ac2246a032334b9998627e704f36e959c28ed744f7e89981721e986fcbfca1bb79656eda9608c3194ea5badb6abe7fa27e01a491542deaa9e3
+GCD = 1
+
+A = -12814a364322a7beee32fa9d170d8ff2d6037a43c2d1a37f3d9a8b1fa5cef44194d4255d693355fcf7d6d9750e000bb3374f139f0731564e426a3e67c3577eba178bdd3a8d2d1145c7b2a260fb28ad8dea6381af89cb39e23a68b7ac0d891be092251613d049bf7ab479d1dba3de0e507
+B = 1539c5e522e924f07ba6be9f60db8a2db2c78e3b84585ac17a13042877ac2d027cbaa88e9f45c758f35df06308da1d2626dd6be9ed3abb102295df3cbeacc6b2adcc739c772a3a9c9320e79316ab7db6c32310869aeff56d1bfd0fe0d9d316e1f06eedfe987b56dd3016ebe4d3e280039
+GCD = 1
+
+A = 1538a9f244f81fd697238c252cb3bef4221e525bd915e27fc865674a8b24b25235b6c731c8af6ff1b8f32d818058e3b50c59929517bd728e1f76fb7d320a9b1a4e90cd7e2946eda39342441932c153f72d18fd73ee431dddd62e925916e7e6c4d835a919a371351c4fc0e182b86621a94bf
+B = e127c6009413c8eff6ea59c73b1067d26c1ce42b5a3336b9fa85a4f57724a37734c18d028f2d669baa7d613153fdaf0e482759622c38dcc6aecb2838c577d5b12dc42b8a143dcbec33de26369ed59709410f7cf2cde4b0bd89167f5574fd606019d1bdb3581ba35d004a55bca651bc7b43
+GCD = 1
+
+A = 1079904a6aa766e7147e5ea77b46d82825d452e657b39aef739ee1f3d4c3276cedb11e551f4e82f7a6f9e57b72a61e82ab37a15967435a63499336a0c7751db2ebfb83d4244fa1165175c8535b9900ab015c645b674f7347c99ba63a9a163657c37cd62cb49cd3ec9213e59ce4fff1834716e
+B = 199d3d0b3b117127fa5ba38d7f82b35db7298f75c449ea8b2de1064e22d1ebf42cfe550c16b0e5a706826811b60d71e1dd05519aae7ac82fdb93f5618b6c0c0287d6089cdb8ef6dcb48e0f55495764163d488140f508f44240c9e2d591201359c316fef38fda4e8b231cc35e3b94b38d4b0a1
+GCD = 1
+
+A = -16b5167c502df1df3ec2d91cc247b9b31e326956032cb1b7cfa885018cfac1c42621a1618ea396e6e64bc8b36425a134b2605dbbd058b0ba56ef4b8de60db35dd1816dcdc13246cd222b601257c8074e21777fd2cf3a9f46abbd1072f2d2645d89cc5fb9deb801950fd2106576c900006ff734f
+B = -1d13fff4b34c8cd55aa288fed39984e6c6039e97ee645fd5a2b73ad24c2c691b62c9e3dc467397310e5d5e745ed5a844bf8b32e49042e0e86266ae76a4719c521d08e40297ad4018da5c0a3247e1806f600877d039fd7701c1eb8c47496541ffb866d4dca1a396940c3bdbd747f51db24f5b686
+GCD = 1
+
+A = 1878cbd0524042789e86edcdc8c33eef67054ae306a259d4c6694d1d53e1955071d100ede14f98082b0e0b3889a003a67971d93dcc8dbac6e7ab2d18374af676b37b63df40b1f946be8d6fd3c14674d126824eb1863a1835d15c7fb44e743f036043beedd9bcccc1923d5f896c18635c401965bba
+B = -1bec905d0c60dccad4532b0ce71db2e99659fa111f3bcaa53014bf14ee7013529f731688e09b7eaf07cffe0c4a80543f55943bab6490eff978b60fc27a032748821704314599c94bf7771588631f01ff4a18acaa61a8d6396efbc4bc16290ee7fa84eb41c16a83f7227afd362c0079937bd3870aa
+GCD = 2
+
+A = 1b5859b59da58a2da71faca1a38837689d2a654869396e6644c8c7608354e755caad3317300d106d3cc3d1e1beec59db994345c847edc5c8f38da278553bbd81f7dc862069ad3a4601c96b8624db0657b1b7688e5b1d1886e547766b980fe14f4830277435c213922a7c6dd8313e724aa3aff19f04c
+B = 1e1faa796c2cfacd1e1df1803c8404c707111ca682181a69fe1fd5d5a1265d786991185826d6d8325890afeea0a7c8cd75bf9282c183e60d7c8e2af87567ead0bcc357fccad1726c112db0812e255825d7f27533df1e05520ae9db084bc1d51332e00c3a36dd143e2bfb0a0f01eafe10b8cabbaa8c6
+GCD = 6
+
+A = 94a49f1fc933b6fa4ce049dca65bba377aa28279f3faf8396abc2bb4b8973aaa3e41cdf6786b2b916fc788ff918c02cca1ba9486da57e5a07a68b104f70d240018fbaaa7924a61da6bfbc2f03ee2b32b19000635a62b67049b5fb922c6dec2f4451a02873a57d68fe27f37d4f8068305810b1a8aa238
+B = -1c34702e8fea24f032904aeb6f78a37cac87017cfc781a46b477b5fc35a82e5c37e3fde3aaa813a037ac8724d9153ef7b2d361dc5a1922e8b20d7f31a45c6ad66287ecad59b296c5a851d6f99fe94b3a60f08c7561c7eb1903eacbb1e773945d24b7a2e317caf77b0d523d114d1375cdd06e863fd7577
+GCD = 1
+
+A = -1f1ccca5533c2121ba01e3b30ac867352d401a256c29e05c9624f31f9527758e8c5b1dfa6cea3556bb738c70c18171bbe3f5245ebebd6ab6185c9795383060cd2b4212eb337b45181e7fff2570458d7013d74836784521240bf7a0fafe3c0762b94b9adb3f57c13611f9707369da300a36d459a05385b90
+B = -b06ade579cb5262e1341c317cb139ccd1757455a413b8dce25cf4e2cae6038bd0b8600d8bb79bac469b0403331f4ceed563041caa844dc7f7ec758f09b4191ed12170f5e3649e9417d346eb0618ba068c26888b9d5a45c76852afefe825940ca0a208e028a5f023c864b4304ffb47f99148bb9d2885c73
+GCD = 1
+
+A = -167c33e1738a2d4a1c2f29a1f1a14748a4c3064e44987cff5f0bdea5322d340aff91d4061311be0b92e70b1303debc9f6f2576e91e9823db7aa90738d9695cb9efe9da700db2d7844bc3a3f8ea8591b76714c3779d8ba29998b9596d04377f140aca8e714f0aa3173e92e8f7ac129d4b83c762dbe82154cae
+B = -1b9134739ec8af81a5007128d71e22fcded3040d414dcf844cd385bb3cb61648c63338d3c708afca2d8f32a82a6199acb8f9a60dbea4e3cd85b929829eb2e2c4c1800f2672a20194bfc35887cf96db94375e079f449b28a1c06198b74a8aa5b11d172b2bb91e6139ca077e7e9d5d79519aa836132df381b4d
+GCD = 1
+
+A = 939694bfe167dadfaef933887f49baef88bc9851ca5e977e395e7f493988ba1b3c276101111843ec153b15db6c2148e9ac60ed5f06d3349cb694b04137c2cbd71cb331a5b5ab4a90f8f4ae9290d69d3ca0d8981b530875b6d7d9db9c8ba09a3c066546116a7dac8a34c0ae4d5dcff4058ddbf1b24c938bbd5
+B = 188e2fcfa16300eabf7550e7bb493fb53b92442da890ce10fc4ba493103efd6afd5bb06ea1b0658da0079fe5b9aaf0c787eac6413a50cc687b691b5431c878c194a88902f81f532990acaf715f6163a7038739a220c115f75c44f75abef3e74759b664379c282caeb9b9b721acf7dee2e91a45e0ecb798dba89
+GCD = 1
+
+A = 1ace227a0cbf863cbd6f6cfb62145383516cd36d819ca9506f9098ae53fb943a9080f8450ca21a5daf083924b9370dfc7212608d19cb7ef359dc23618a9480ff47e5a3f4b811980dc5fa1165b0f1aec88d28a1eda55edd694cfbb114548166c02e26922e5f52dc2ce83af42258897dd6c0b09ad691698e4bf45b
+B = 1b9b335bb6d9dccb2f2ba12ffd92308bb7824410950e3643f70d32ba0a2273540c02b18256f14bd37e2ddbc6e5525e201ec9bb82248464f0f3167664b1ae729f0c29f1c74dd9d68da6a8a5b3042b3a9969b7e10c95b1bbf1cfac98b77314adb68368ffcf7f6aea762e736979bfa98296c96f15878a0d7bbbee785
+GCD = 1
+
+A = 12f64c4ea9154b8f80755d20c76288dc3ce8edbe5ed0c3d1d57f29fac2582410a563382955b8060ec9db7642ea7ae03579d748b4b5c28da9c52655e17275734619586ec9fca406ecc58997a338a9e13b6706074549fa7850e3ba67013fa7aab8177da734f08521af8d475625330bc1d5097d2df45215fb9c29f71c
+B = -9e6e781ac14f805a6063b79262c666edecc4f63e8ba7fe13ac13aca681711e2b44a3d282061dc2e5e24b908978fa878ae0ae0f950d98fcc47063a7b1425cdc8f9e3640b32730c66adf484633d0392171264dd6f47fb37aa6f7cda4cd77cd7e2e798a901753adde37211af119809e69aead821cb76fff71e897e630
+GCD = 4
+
+A = 12761b7101002f4559b00ba7687c76abb7570c0404e993c6e88535a71f95e195cbe985f76965c84c0382790b3213d00a352764c41742864aebf46c7907d2426df91775b360fe5141ea80def72368151551b6e06b7fdba5d5ec9a84f36fd62ea8a234ebc3247d7485ae29ed106aadc87a54398e91acf6174c7c4108e6c
+B = d59e9d7560f97d3c36ac6921b33af72fb9f42a241852c29900bc27d8e2be791ba33fd847ac1dbeded097c3684d08d868e6a750f62c036fa01c3772c05c8b5a9f46831dcfcd5047ccd35cfc20e404ba676266c7bff764b0b84485c2de9ab4faff880b189c42b0ce53e78ac3c19d09b056bd14f9387cb125c8dff2d42d
+GCD = 1
+
+A = -a357e493a884ee4d99b45450896404caa2f006ded907335b2b840bba78a04a75a856ea128770c0b7aab27eb56744d7d1accb7861aab23e9805b2ad712eeab69aa26c8f0a1497c5d9da0ac8ec5e3c36ea060574caa3b7cd5c108fb590db671897c58f5f26c78f24e29f054b1bcfe3e345efa0bde0d9d25c3dbeee6c7e15
+B = 3b171c506a7595480490b308d5295848c9a198d51b74042ea5fa9dd3cb40b865516f2762e889fe268655f629984577ceacb913949f73c4e2d8448001979843d04a2f7f43426dedc4a0ba26943bcf33bac63931627b2490ee304123f5e3ff49f07b13c65bc0fbf5ce2bb675e16209efdc5d648435aeee8663ce4b799ab8
+GCD = 1
+
+A = 878d367075d5bbc764d3169441ca9bc06567b372848efa2c763c406f6082288e7b155023127914eb167ba822ce1fb4f77c6d0f4c8211c9d91ebada13599765b708d0c03f25ef7b3aaa5147274357fd6f9589a0c1ca2e0adbfbb8cd37fa1f283f356bd2754e4dca86d7a7b59cefc84392f3f39da132aadc21e621393eea8c
+B = 286fa28479f863ba0655ec460acaeca416a5213a5cbf7c16982efd5a35d03cd222044b2c8515d6b97656977ccff126b6213bca344dee2cbf567c8611fd648d062076317b5b89cc37f754ef1ecfe0cc1b64a826a3dd79b3d030d816155db88164e6c1d20ad81afdd796f6c12b9c10a42ce683d116ff3284ec53ee74523611
+GCD = 1
+
+A = -1b0f16d548eff49f6c89f73a9611ec14035a84d05af4812fbb2eba5db27354bf7e6c517d1e2ca3a71bb076020e89fe060dab0290c37f9faf1daa5dbee056e9778c87039378ad926c178c4f5f240b1eebf20ce1abd61689305ba2fa46800a8ffd89115f27977e7310dced082db1dcdccb359d55aaa6b99125b74bcc3b1363684
+B = 1546179c7ef3bdbd9d122d7d53746057a4749b6796eba332006854f340ceb86ca47fd221c6b17feca8725de22169e08a9c60b6af4c83a3fab9314a5de6874d1c0579bb93b650251d1407f957f8e05109dfe77603c04c3da92a40d2dcb2f1fbbb9a335832653965c3e14a579c62bdb9c3ae179bb6230229caa7d01383620f2e7
+GCD = 1
+
+A = -9477943e646e890512b975233d5c2b6f30295850fc605fe4b5fd3ebf97e99ec33cb3ba8dc06f2b13d1d3795d4de9003abc1c72204b27a1b77fb643724e8a20c79c93c930556a72038848d24be395eabc4901b076f645825cf7cd8372e6543afdd85d6f2947e42372ef897b15c4a8376929ceaf383def428f748d4f40dfc0ee6f
+B = -62089c0c1792712323c027efded0c6f9106f9f298e6ecda72795bd5dc430e41347e84a1bbf266b00ca58008a8b86564cabfd7f45b5b9cd0a7d16c41f627e43ab12a6100060ac5f059854ace166c28eff20af72f6359c26008863f0ac09fb85583a173bf487f7304be48c5129777169783620f7790d0da6044be47c290044ab9a
+GCD = 1
+
+A = -6caccf36a233543e132092e2ea688fa1d46510f190d4f6c9410e2d2a0299f63aa28609c57093f43cf67bf816cc87f8fac3d7f14cfad70b815a42f9980035b38b18d93576595dffcf7f7732303662d091bbaffd3fb56b97204b265e06455e28c040d7b47b22b71b2d489af5ed892f1cc968f6f8567c5dc2eeca6cd3f79369f24b
+B = -38f7ec4ff7e5a9557bd0b88d436e684f6ecb99550b0efa916a6ecfe1320e5adac4d7c4efb57d05163b22584c705b5b143c4cf3e253f1f3a05ed2c1505abe8fed982e8e19aee09c93160109d7008ed6dc9d41b243736a0aca8913ced6cec18cefc9674d0edcfe2dcfdc81eeb2820ae8d4aa813ee7c2183c5539f58796774f2fc5
+GCD = 3
+
+A = bd5d7c2ed417b2875e083725a902fb1a3e260cc68fc7f6c9ae750045f1e69301da60e054119696eb185f218ffe04a19d3faa6230b582e46a4481b6bd1c3a6c900980e0fda0c18338b7ec5f55a2686821da6a0ed5bd4b90cfd2548ed7921b71e6d393e4d39be4e7355c97becb125f1bd7c614400ecc8cd8c305ffc2f887bbe779
+B = 7017b20ff6fbce259291b53a91c09ece87a7834af86cb5dd3249b71ebbe462148a81ac3e653eff29fd544d729be28977384d334c8863f64ad9c2276b20030c87faa2f693e71036753c7e8b98aa27f8daf4399dd83a84a5abe2db8e04cf06b0606adfd321b76459777e265a036b6c59782d097836ee24a75b3cd3bf59d400eaa5
+GCD = 1
+
+A = e33fe12dec47ad538509af5ea67a506814e787b475a4c9e809197c99afd80de66a1f68bfc177f86e8a409305fc9df40ffaed8740e63c5b6fb67b5960ff0444e91e661213e0a62728c37589ce834196bae6ddd6ee53607e41633d70af624731161ea7ac9fedb70b21688075fc0d6a3082b82a1a991b87f1cf3203bbbc3f7bc762
+B = -cfe76cfae757cedd8ca9186077b7fadca17250ce655e5b4af4f30ed872135b47a03ce3876e2850f90e1ce207459f31669eedaec4ebd4a0cb9ace3ea3b9687984388dc2bf298617d7ce6668566c5aaa030eefeb5c5f5665ef1a1c7ba23356167e5b76a2f79564020bbc263fa0f734c6f8913e4ad507aae1f65e3311c7bd7074b0
+GCD = 2
+
+A = -756d0a0ff13b141172ebb82ed364f9a35d1022efbe41b1d0508443a8da55b7c49ae9ed5f804a22752e5629c61a58a9fc466625afee42c09f7a0fdfb520f43d762f1ae069bc4d93a8a869b78cf22f62ccc44e7af6884ca642e048665ba4fb13746dc887939db27c99944c3ced118828c3543e1f04b765e293258abbe0f486f044
+B = ed412544d4eec6ba5986a3b4dc091a5a29226e2a3f0f72296474024054fd3edfe2ab0afc23a4d967220820fff3b7cf0d8251166a76836264416362d0f5c30465d6cfd9c6f1b9af3f7707294ba521971b5e8a9d315010177daedf5851f564d3e47655269bbcf41f0d820ebf9fab8e54e3f7bb96fb5e4a0554fbdec2b52599e275
+GCD = 1
+
+A = -c199bc6851a15c193972f46d4f7ac5e1321fc3a53df1a5559f8450d3d1ccda5fb597ea57409f62b49c89b607694c5b6c699c1190041e0c59d622ea13445f2d0b47520472317c163bbef1be889de648339f7b042bfbd7605ed23ae35cd58d59aed632d1445421746ffeff50cb80445106eea241180abde98c3b3c0054a6392e46
+B = -5f01ec6db256e8ff8b6aba1947ecf18c2f2c8d56964aff26456a6b3b438fd273037f7c82241b00796e0a21505cf82044c7545b0e152c436596d26de7c373015a19e25d334b16486abc43ca4251809d09d70c246887d00efb5a1068fc19f90b725c56333714a06c1d04a45bb42b6a81a69c8af6e10dbbf79b53d9d36b4c4a58bf
+GCD = 1
+
+A = d031613a925e8c33edddda72237f08e3dd38a827368823664cefad36c7bfddc8e2d7d7c768d55d5058e1c1e43d7cc612c441d7e974cf638252e2e7911c1225a03fb7565571fb1e33bd31c0652e4148cd6efbd51b10e8caa28714ee6cab9138c4f0745ea27bd101b01642dfca88de7d22185c1b8ae8303873389d4e6ebd0e83f4
+B = 289dd5fc0aedd8edf9fc7c8790e87c8f7dfba39cc652526e57d6f4c54e34080f9423e74737c0106c40265f8d588a2fe3c4a2d8fb9a2a750240b68b49c3fccf444cd82166656e43c4ddd5956d961c0da0a82b24bf02d27438ee72ea694d50d48689949b8373499c79f99e126d2068aa0b39879cbc6fea9165331da3ad4eef5037
+GCD = 1
+
+A = -55963bda34f328b534120ca4bd3b65deff696e4f3f0fa3849d8c38c5f011dfe3ab2965af91ad87b92e5bfb5e129af532363ae5da50c625b0d64688ec708a483c8f5f1e100fb5d4efd1ac82f431cf9faca2c63864050c642bbfd6e77c0cf5c93ea391272ef66ce806b58576459474697e35485f85b7c1426c0dfa1506b011d8f7
+B = d246117e7ae43d6d8957707a4e86e184643420ea755ef8bbbc98a724b3e8b0197c235b91d2d3701c0ed80420ead84a68f7fc8fe14986e4b2ca89e6cc5235aba8c8916e5752e724418b9a9fb4e16ce9f04c47328af66d8b4ebe384498aac1e81bd993694e9ba66df262e22c6bb66514dbd163d9811adda2a966094dbe98ab0ba3
+GCD = 1
+
+A = -ddb882195f29bafbff1c87925f8dfa8dc51df7799aade28b7e8860c374fccb1491fcbdbabe6c378e1e603d26cf728afb49a332bff65bae40a90f148e611728161212503724fb917481c25c5b869b0b0d6d65f7635a98946ccdc5f74803890ba51a33594b64ec32128e2cd16df93cadf3ca720cd6712db44718c60af59ac34f10
+B = 4927bdf37163fd73c8353ede48248d63c90d7b274d3eb5b24d8bebe295e14ab6dd885b6bd2b90c74b04660435d6f9de29520bcfca89f7a336fb3943e6abe8139db76abeacba8c432051f0227db91f1ca891994126a371cbaa60554389b2763ba191c47ff16b93810f5512c3cc3067cc439834200bb4cbcc927f961f98394f5ed
+GCD = 1
+
+A = -f6f73171e7043d30a6b1ac1492835f49bf0e7fcda58fa949d296be8bd336a8576771265d1d0de02b2b66f0ff4379b149bb3f1cea1841f37b6b0ede0dd910a44b327fbea556080b3efe7200beb50fc157bcecf0c69f58087358134569a997d2d3eda22ce16fe5a1e0a341140914f72c5d473ba0a4efdffe67edf86ca6b83a4f9e
+B = f08ac097be5e56dc27875f6823faed994c1b2364c9b02aef1d4acc3b1a7027589d9504df3f214825cee2bb0a80065de3b960a4b9ac15e7449917e3e1a8048babf7b1c762d259397923599fc954d66bce3ac24b11be318cc939384536861633bbc8c1720ef4f82d979c24b9d43d058ce12cdcd8bf6ff37c1dde4d8e2e3e433068
+GCD = 2
+
+A = 70f1c11cf262d61f1526cbfb8ab7e13b8e1955ee345f644243dde102a8dccfc9d8a1677b85221cb3ceda2a52e497fb00a3dee9734ceda4c4e0e317808498a7e515f80fa9a13007c210c7be8b795c695716549ab4d523050c256139d0e37f37f49a8434e1415c6385fc4727eefcc62a9e47d3897cc99cb830d74750216e15d643
+B = d82855f451b9dc67c65655decf728764ee0c8cd37cea5d0fb17b5093776ba6bbad68d363de994ef484c7c9d119eb00adc9c5b4e6e2ee4ab721989d969dd2b6f5ecb7087f17d58f0c715625410dac2245a482bba7cdb44a4472c354e2ee0b62f48b5786002d21212f44b58225ed8422456e18f292f6184587cc11c0a6c3d32bd6
+GCD = d
+
+A = 3769a82693775d539dc3a85be4a645477f512b31f15e21488507e1c3e58b04310f013de661072c5cd8b86e22dfc45c878af4747b6e84d15561e82dffab77f2404aba54387dc4cf5739dc8b43b961a844ad175d08b2fff50c78ef1d960fc50d482dfeac6bf293b376a7c34564f17f858083499d5fa77069d4c3f09fd669eca6e1
+B = d408ddf12c29827b76183b55af124b4fbe6df4a28c7182dab2f8fdfd88404100c16587ac701357c03da9d2fd23c5cb521ee9a2213af3c3ce8bc80492b2904e1ee2ff5a25b042845307e561e5ddcf17ce48b91fe0c0555ce9be4cfcec2a141e11aeb233e8328d853bb414d4f25b8859b7111f3e8897bc7a7e48915e384708578d
+GCD = 3
+
+A = -9aed513c9b54e793cb9f4f609989cc0c807d3a92c2599de08b5dabb84ab76678740427fdd516a5b065cc5ea48223b187132854320a9f8c6175df4f1e47ad4d6a7c5d83a940c6b7a35acd6d47b286cf3eae563380b6c9f858379965ef66768c372df9c4f0ddcfb1852480cf5b5bb49c8dcf2c7f2862230d32d1621a31903da26b
+B = -b59b3f89c21bef97624fa6d4a9aab2d73058060f5a85845ececedc684f6356991845ec3b2efafe766241464b0aea882707c7fb09bcd41dd0f29ae5ec6307aad950e03d6a61d65b44e51f0b95dfbcef9004c9704edd2965685b58ec3e14338c542cd6159c07082bd6745730a0b48177fb1fbf34d0f126427eb5f669f105caae91
+GCD = 1
+
+A = ff5402a7e3cdf18beefde98b874aaa0f63a320018b2cc476d9da21f0bb0660245f12b8323fd3f216bf923329038a2b79cf81e105ea811cdeb37b324ad87b7b25d7c62d1a33feea288e98af7886f6ec118fd5dc30eef8027e746573adbf99c4de1c4e4422a96e824921d14be5ca3d2e259e57303ec30df721b799af2f16979b6c
+B = 11cc449131049142ac79a1758bddf434ca2079e060c621c9ca7bcb355df93303305dba62cda7a9187ec24ea6a8c6c7d099d6237d8e251f84d9d9fb6661b71b3b6bb8641f2e19892526bae5085039f7873650f087d933f2f41c80eec34cc8f0a14c39552263d0e25165c09bfe63625ca89aadf08ae18984ab93b7fa1bee1e86ca
+GCD = 2
+
+A = 5e44cac87597648bfb5fa4e02567adbbe189e4e7ff8fd6177cc13bf05f107c25ffef9ca6a84db7f2808fa463c4c1e05a83b0a3345af8622c5795b0b9d3dcf569bf277da70f90238cba04926f9e892b162433b40e7fe8329bffa2ddb06ab24c34de42fd57209e0e60763fcc13964dadb28dae00038b365a1fd6c8de8498826aef
+B = 55fcadd42af7356651963ebcab519de6a2a9c95cf44b362882f61a0c2c3b45b30f0b36c0b1919bff845e6252203e9930cab4bb39ca521e03092f2462fac2e5047fd3536654b8deef12d747260de226bdbb79eacaaa1eff609648c4abfe9850181ae6789f01a9c9e798af5afd79f82e479455b6fdfa2bb8a41c18e392bfbe833a
+GCD = 1
+
+A = -65f9e5726db37028eee2330e4171252bc08c7da46904936d016d26d67e6765ebcf811e903df6924aa84c1ec6ed583a2c169476b439cae7a008c1b08b5d5ae3280662504fee3dbfb9203cefea31f8efbe39d0958dbe53c522aaa57334c5af2217df352b84d55f788cc179ffac3bcd2bf914ebd62821c6dfed81daf034c9e636c9
+B = 21c3e3f338d121394144a2084a0b1b4e47f50421658e9d3e42c8b3204db2c4f4a26999dce0e91e3318ba764e599a8a3ce7d799834b1d4158d2172e85a837c2d684e27cd350e4efee98a8bf844204d6a27a21e1cfe77dbbdcaab05db88b0d42b902c67e4e99ea8b3f3b6285773213a901b245e9d2757b60347c30413a0252f64
+GCD = 1
+
+A = 9c55e770567f5523c8c34a40db5c99a65a18cfebf01c408ccd1a14fc449db21c70e1a59ff7e8045b4848cd9072061a8b9a0b0e82b12ac3ce2fb240a3a2f130a56d9a08123cd700ad2ef6a5d540f5088c3fa78eec9e1fd6b440967b9b6f4e29449ce1c2943de4215683e1699c286b1001ccd7ad04984f1dc941732794fdc5d108
+B = ca1d8c8831ae7583627ea61fb6e7df1d2a83c415fcd350995c791d8bd0b53407d65034cae16f498e215fee81b38d5de7b8cea3f1f937eae45eddf4afffbc5969d7dd9e405578fd7d37e36f4cf082ebe8435c5d01f80bec534a43965aa9841dc71866556d7e1415350716fa7575f4a9299ad2746171976e2ff0d2eb26a011d64d
+GCD = 1
+
+A = -82145818e887333c10d64163b49a55a7b3d5755fe499e7ba2f4bf23ba81b20ba8fa07030f2c6e7a3aee019b62dca63114b4f601f09f0120537661dfcd9db012b8ec7c3bf02da8c78eb3a696a63ec265ca09e9da390b6c82505de27a87a062d47a8483cc70408fd559b97f93e84546db4306fd354eebd4fdf19cdbd9b2ec252de
+B = -cb7e2c35be308b92c84cb442ae7a04f57135df7b86eed2e6414dcecf917a1644e3e13b1c348f6e13a30e00f75b1aa8395bfb771c7f577e03a0141975b1842a128f08eb3b2826f43a9c1c9f3934d279c38107dc8c4cb06c5e3fb94b869bf7616277639415196c2a5f0025a2f20237e12091658a838cff6719a45950a07a5d325a
+GCD = 2
+
+A = -a3a579bd080a8dacc7c8b4c338659ae633de7cb248b911d8f9a699e715756864d8be436184abe827005145102db9ed9fac3f769cbbc50db74ab30dda96ab54468d077b62733bb4808d88a2ff8128b50a7942edafde008d0088ff73dbb9d0b457975baa04f9d0344a2447a76414e3c3d4b450499acad3d507b28216722598704d
+B = 5c89960d45ea9507a3251911e9a6a44a431565b976396eadd21d310d4fda77f6bf236e71155aba05862a3135d713c734c3400653750c5d055e3656b57e0d098990824f87cd180753483c5bffb92e7f481506a329e2cf88474d57d6d61eb9aee91cd4b31141b24c4e9ba3e44f9e4c705e8504409f94ff60e18334c97754964602
+GCD = f
+
+A = -34f6460c9f7cdeef668460bb0b25c53bf4583d184d598bbdf3ffbb23016fc47ab5bcb68004bae8c29b7d1352f8bc44ab2dd247efc60792813eaf577dedbb2df88578f6ead9c72146be9120fdd8bc3914ce4eb40259ddf76ef449a1980b531d013dbd70b076ecb5967fc18e7b16b69e294976e0c5cf8e08da6a555d1c5a348d50
+B = -93914aee0405920bb43a1656451777b0b29d18988696120c8355dea64a0c68da342b652263764f9466beb5eb9e6a971d7d00b1957e0160b9ed73204d7c6d36d9098ebe918dea46a07ef55405ea09395d503c6dd013d48e096fdcad8fbe285c16f20f44925d16c4bf51bc1ce41aa3fa242e2668cfb62df5500c7e8f5a5733b2f0
+GCD = 10
+
+A = -c68ab09f465fb56a2ffdfd157708b343e584f095bbfb09c74b50af7885959d001aca824a7aa1dfb5842342ff907781ae622d6818325d88dc87e26d4d4b21ed27c90a00a425f6977dfa4607774c92138da94a911d4442778ed39405fa33cf37cd5a1d985843dc15a2e3dbbe7338f43a5ed9c925a6a4df6820afdf8db4036472ed
+B = 5f88ed05689915d77c0ff4603ebdd8cca4402803d6520adead85a11eb2cb2363917644c7129fe8c6f900de95bbfc3efdf44f8c06ec38f14f627f18c7d15c5c7832b544ae9524bba75df7c92e51e027f447de29e37a6e97ecd6e61859de03dd2bf9177254e79702e53ccab7e8f98deb75829f6f996d4e828bdb2cf345d9c076b9
+GCD = 3
+
+A = f2a1e80f723edc6024afaa3212f6fea834c6954d58b3b53687123d22a32ca933f00b23ec35b29acf208f5a1df459fbeb05d993ad5ec147a7212dbf99601a4e70033fc268c75c1371cbd0e91b4b67fdd0db37f82ae69b64921b6249436b64c2a0ae0717219b202d628722008d4cfa4329a15f95cb552e54edf534b18506ef5732
+B = -36ab5aaf4d66f9a577b141faed35455392464f55346ba2611a45ab90b6cbd1f19af2ae713be4c149759bdf7575834850f5ada15cf15dda3175c6878ed210a822e459ecb3bedca1b50bd8085308e96c8f3c8c90242e5e9fb976bebce004610ee4ba24067c0d31c6ec2a33b2fa0d73df805ceae3ff51fc30be498c5cf66123973e
+GCD = 2
+
+A = 7ddf6a76ee91ad09346a9caad7187a3a2e2e5e3019a517f197412a653c6e0569536b1eaef5b8bc17453eb6d304a4278e84e397d8b8739230b7a7985eab7481cf56e9a7442db229da14d09009a11e80130722cacecfb4186318777fd017d834a68f9f231b0ce895a59a0b37e7086657a70091ec864b15a1f5f5aea40a0d271a74
+B = -ac7ce8a90f6a5d64458f99b9791a174e45a450e5ae5063dde007ef5d6bbc4b9c82dac6433fe3e267e8c0156aebe28b6c1406bfd52488f6c07f00e100420bac2b360a203dde3a105b19d70ff7a771eadd2f72af09658265d652d3c1107bbf37dc710c44f368cbc9ab1436760dd0160602bab5d609e78298aa64da24675c2af3ce
+GCD = 2
+
+A = e1aa7194ebc4a4a97d498f88b4240970903f1e3fc617477efef582f604eb12dee73e71d29300b802afdcadeb98b26c4a73edc9dc3938801c8f1b85f7079d15e1f89ba011fffc06e7f208fcfd60a9a1b3237bf537c7fb7b7d4ea6bfe260630c73a90d98189ced91e4845eb0fefc5970161e87947dc102e24731e5ab91e60551cd
+B = 55ba462127b24e612807dcab3e19411e197f67d57c3adc76266b4dea2eccf80c22b3a66fb100338cf3b03870d5801576c48d668ecbcc832465f8d9b1227e98a941458ad30e05c89a5682ef004e4091c1a13ebe7b3617539490e98fc96a26ea8eb433f02bfff96bcd79a5ff52a8e7d04566d5fb4ac0deee3519770b273f9e5587
+GCD = 1
+
+A = b1406338c3be11cf67a8613b8149e0204e3509073a3ca0fddc0cf3df3df5307befe6aeca29c653505eb9e1f9a658b2f1d8fe46b97a33a417f31b4faad0ae841c7181fc74a70ab91dc6f6e877d4e75b7ce12585f5602d07882afd74b899ffc86c0d27a62e20c8026500b0ba6832ee3d870f20b33cb8bf54adffcf743cb67a1eaf
+B = -9c1f7ce47c1256e9a5bf89a6c86619b88bebd3fe28be55a4401b0d68c864182f358576a47712466d9ac106f10c52030b67217879c913ba19472e5e424d00091a0d7d8668d09e832131d5e8f502646a5c332fe1f6fed7cee86193f68dadd1f42f9aea761c9598563a613e1488ce87b165c879cb99a64f46e691cb7329b341e90c
+GCD = 1
+
+A = 5a5b9982b6af5f2e4c7414150b503fbd22d00efd6a9b7eff48964ba147b8132a80e7e6207b6961b946f32cecdaf83baa78a7dddfa3d175fa594b90d2fc2abc53bf4ee3412a4fc72edd2351f2ede9b41cc97dcfb68d1648c6c6e6d3257e5efc36493c9f02ab7716692442b2670de89084a4c7a9475e4347529cfc4bbc3b8b4500
+B = -49991a89c2d0f7a5de081c22fcd49346530b0f319795146d721fadca7d015f0d524eeec770a7b9888ecb41d48650bef3256edcb22ac77725f96f1b797cfbe8970f65a93718bde7ff948df33408a9e46eaaf03e8fd009ee0bc34a189e43dfaf7a03c06a6e11db25e4110dfcd1bee6b493f7de40f6b0e0c0ef341a243c8edbf905
+GCD = 1
+
+A = -e7484deda086ff745db70a1655aa72ff6537571440092d73b017364f46b5337ebbe8f7a0afed55242e82bd7f0b14559305a6d88f28286c99c27ee5e32daae2db8b3d6ad9dc246ef55c830ad646c58fb44c23682b33abb94e477bbf939e8bb27a4e2f1e27482c30fc7db46bfabe2208c9e89bb40fec3dc24c83f7da3c3d3b6d96
+B = -b9ef8ea30cab0a42c19bed201708a07bbc10509220603aa09d4cea6386280aa6f2548020dfca2e0d0651ba2ef75dfd6fca95876e597a5d8cb102bf9ec6e36cf962d4a29b0531862fd8edccd3c996889c4edd8801dfa3620c9f3488c770320f6e288de3ed763b6223500ebd42099b7b5ecd86ce55ded4c8386c497a0211c4dc83
+GCD = 1
+
+A = db952637b7704ffadafc51db2d418d6727e4da720160b1abb3c73cf3d11d95856761ed7cd490f8b5dde0f8eeab5d71a007223ab33d72596d50d3f660922fec44565da2779990b9b84382645c12fe80c84d7769db36403a6704f899fc2b7474ab784b6eb1dcb19b775d8eff02d225254eebbff9ae67015141e944796069f336fa
+B = 54d5ad2f79175143565445539d8f95a1776012af72784a9769a1d8ec9653367c5e8290e0a2990b7460de28a47768e3ce5930caab841fe19b369879f912804b66ec0794f0471265dac2c59439a3c04c35e6e3b989753fc10b7c536bf114ce49f9d43757ce152baabf2ef2553715c3c637886720d138bb8b59e71ed28d0c61a02b
+GCD = 1
+
+A = -541a341827715392d101b245955096cd5ff54393edb51c90815216c7be8eb6cfbc4f6363587400a7137d5f4ce5f2131e9b86eb9e0ba895b3f0d699bc4c3136d2dfc027deb67682e42cccb2cd58a9353f32469d4e9058087b06905ca17fe5a38111a4f3a43b0ca8ca4e2507aecc77aabc85fe5b477336ca305e049705ee36dfd9
+B = 9e37e6be12098f93cce777141a311509152f47567cf7b5719919511f752acfcd0275b0715df4f81706a7c93ddbed319c5dbf65fa19fb35e16a850bf77cb8fe55ad72e7d288f33d57e695c17e89f7e835b57106baac75be4b22e9ec81b5410278c9d4cd3a860ff89316583c9d8e0291ab77a58942427df6a4f42082341cf8da04
+GCD = 1
+
+A = -db9f0aef07e018d88d03a0cbf06e87f827b793e8e69c5384e6ba77bad80c81465be214b1388f7746ac7e4b038f44842ccf017ae12e5e989eef94c5a005a0f165bf3b3c63f27e7e152fc1a5b880d73996da28f00b5b74deca2bacad56a046e29300c0325b9f068f942e6b7ca45a17acbcc97104562049fac42f03ea6694260c57
+B = -f97a2c761901b15e9e8b1a3ddd2fbbe37bb3d3ce1809d88ccfbbd632bbf2795fa660eb35c733c919444cd4b23d11a8625b073899086e58ffd074281bbfcc4a9c6f7e8fa9d438cb6856fe8f7007d6bc599c7d31e37bccb33fb72cbbdad6eab7b7ca6791f2f87b38553aa34b6f40f91a74d0d76128f04f5fcf730819722a427853
+GCD = 1
+
+A = 92e8f0210ec436e404a353e31b6e6d521758e7176bef0bd97d5e18ce0f7e53e8cda9d0ebdc642cc6f98343fd42f1257332e3f43c640bb17a4627c606bcc4f1a185743c2d8b0f2ac2744403a36226ca32dd91a2bbafc4151e12f0f528046ff5530a5fc0a8f3b5be51a2f4916bec6a2fa9ef7e006102886b2491ed531f362a196f
+B = -2dfa59607d7803576f80f7a1229cfbe646b60a3c9e802041560a1eb666289b3fc2dd1449adbd0c9ec4007977e1973ab6fe81f12099724d5574fb6d3eb4151e9a165fde6d0d8e9b177ef7e1c9961b7af5b7478ade5a3956052070cee6d0a86556ca0533a5fbbfc5202f77f09ef3f2fa0f635bd9d800115cceb29530a9ae188640
+GCD = 1
+
+A = -f9907d01ce6987ee8f322646fffc324909f62ef1c19697f4f0b4ee1c024c2e9708d5df31747783c1a0240034a22e8986f24b34d2df70e5ba75fae03d30682c093f351741639927da0357ffb303bc240fead312a152a5cd830e16301a820a8818fc83e1ffd8d698478a6668035f6a971180564368239db6574f2ce3a7069b4bdf
+B = -1054e20b0f4c034e0afb49af0775fa038130b8146ba8b83754f3fc5be81e08742bcc148b6bdde6fe7a779e484e75c7d7b30bd3cd77e8a5eef8c90ec3dd6f19548f326383d4c807a0a3e51c2eb5e1d9a906cd475815999b46b61e9af17eb37f39caf16a963910bee778923bbd3241936ac0aa0de5532624553aa9d0540afca656
+GCD = 1
+
+A = -acbe447391e96e280ca05a19ca95a07754bac7633b44c3b9bbc4727633feb83f7aa99ce22d43ddc25d4a7c3311afcd9c072f527ceb12315b38da52538089ab9b02893a0f07231b37a8fd1ed1560f4bb57da0fd4e760f5f5bd34b6d13f013f5d73e6744111ed2be31515b92db3f016829a640fee1b574d24abb618f0da7db697d
+B = -90d228694275cf10d180a6da81a5451e2f2c49c7bcfb505894ff65e91db1d938036bcd44542d2033b4c86a85f9fa3d792a5d0d13d522c61326514793159ecf15013b15a79832f258872f5a454289e1d4768e07a5b33f0a31741a49607d0f7f766b7b7748890de31bcda74b1ea8ad20e42daab8d9385bbcd583217d7184387ea3
+GCD = 1
+
+A = d63dc3c811f1873f1583645dd6f196e3949128a314f19a3a6f61ce4034d72636c60d3e6789ec3f1c99a0c55aec8db58e2a56bc609c6cf75ea188ae51503623ab999494c85b78da10f45abf90874e993b8189d5dff711913a205c773c343dc290fac2f674494742b7f0411a94dc1e282f86872f2661953c5d87cba160c0823cf3
+B = cb2e71b2d5bcf60e08b53805645ab23942937d610adead1daf2169b1a73866ca8a00ad52a5caaccc2fc785c549a6d7b1d69abfe0ba2548b6d039e0fb4775f09afb439a6ccc3b043727f977fc6381f09a034f557dd662e20672419d00921c0286d52f11ec7152a64abae1dc7015a2b96d8411461adf101779b707b9a500648b94
+GCD = 1
+
+A = 125422c4df20f12576bc8aa7c8a0fbf94a005eb933907e8293559023ebdf1692e80594d05165630311b2b9c1265300deda5dacb980bb3d3b4819852a1978ee49f46b1a0665252b51b74cb7b40e41c15d204cf768639c6c468c28a17dbf1503f187125a95d17f088e85ffec1aa8b4d6aa94b93a7655991591066696f83b9c374e
+B = -1c01543774f54e9758475361e112f9ab5c871b57a79fbaa070d9a23d05861e89dbc0c244b254b366c13efb600e0a19cad416b9e172d3fe213e55ed125d4a56202ccb36535fc709f2195ec6e10ec38cbc412984e8debd825d082bb8d93d7f81fe024379f2b7e84a2b7e2a5bc9b726c4f03d45c730112fbbe3f0c38884314767de
+GCD = 13a
+
+A = -b7085eb4ec0877f7c275203307471342dd75face1264aa790c000455dccd01f257fe51916fcc87db24cd866333d2993cb1085a1e845c5745680e7c9a075cfcf80ab135dc25b3119ee0bb8eb903293f6366155157754464a0430573f240593f43a38c3e1045e1714a69b749094138a21e76d7e3a66fe98656dd0973a87e52e2c4
+B = ec2ab74f638e649b2c0bd11f165f7d148290a15549a5b92548fdf66779af5f4afa561105969a31cdc3c8019b8923982da9ca564f1bc6233fed708c80693f5c8b377a31c8cfcf8d61c75557bda9d7641ac21e7b86394bc9c719c9634fa2731febabdc0eb41cda6dd8ba558ce368cbbe6cada99e5422f4b1bb7a17cfc5d6bf0d8a
+GCD = 2
+
+A = -29b85f1f9265e9d3871f4f9e8aeb11bb44d3f67b4cb9fb1f123dd2ffb629d55af52d46a0584b0e55a7ff63c578677457c8316587b44eb397d72f51cce3211b6b1058cb4d395783f4feee48c0b992894527f2c82769325b32ca4d88ff06cc6a004b5377d78b204ddc4ed833f3a875bc37e9d60b719c76cfec6634fb0a071a5d51
+B = -d7277f4649e576713e20395cd81ca9e0be8f413a677bc7189424688d8facd220c8927c529fddafa7d1966a4e69b4c6dbfa2dd42d3e883b922bf381634f19c44e8059f70b35cbba226c650c51d5a224352baffccb20a948bbd5ccf2600746bde6b4cb12be91edf2f8a3d0c5d0e68894bea5619b530e24697dce6df590326746b7
+GCD = 1
+
+A = -269f7f6e86e202d21b32584f7fee0276a09d7df3f82aa5fea773d9f778fe3df405d296f37ae3dc4f36eaa954a5677e2bc1a18e9849e98e08fa6d8b052ad34d40fd25809b09c62acd423066b4a2a726fae7568ef10351fa99f267342f0a8b8ee45ccf09226082a1d68ed1de412646fe7a7906fbec7ac49bb776d7f8587b62c395
+B = -3a756ee81e6374fb9b4d6f411194773bc2c34afaa09a882555931470173c2f08756fa183218f7655e5acd5f1f8b42ac4bb2b7e4dee726f3883602423ea79bbcf50cce383a66d797af682e791705defd57537d1e0bae240e93097ef6b6f3d2cd2c534bfd3386bc3af93c1caf8a9d17b83385694c9dd238cb76e0563961bd828b2
+GCD = 1
+
+A = -a9887b259ede2f47e9195370185fa7ce9b0b03dc9c612d3f9cc7d553fcbdf109de2b3ee7fc0a6273c84f657271ceb8dd3fc2789b9ee3327a7fdcaf3140ea1a5f9eadc790f1740cb3ef5cd00462522738aaedb2fd5426bae6d9fb0a4151d5e927838a5aca027dad070f75fc4d523b7080d9d56740bf5d8d9b3cc6152177c3f0bf
+B = -2a7e77778f38491f2ff1cf31e9d2024f1afa0edb75348ce6d9ba21cc081523d4bd609c699455d5036f65d2b3239f7ded4500489ac0f05f2b2ae244876582a3eca3c37766cdef1b806032692ca685de474e6c0aace771486fe3a8c35249113996e006d572a8de579a7e2fa056b2bc1ba9c8dd336fa9c05a4227854aed33b8bc31
+GCD = 1
+
+A = f2518026f344e9ad46a65e0c0382bd6a75f1b1adb98076780663e3efa736fd9629529c83f62cc72245e274f3f4328bf36a39edf740e082f78e030b88aa69e42af9c21e06fd58150efbcdda0693019c9f92902917a3b796094c3f1e6725e933b57d38b3be8015dd7a1d293270fbf4e1c11ab7519cf817b3333f3fd6c4cbfd63aa
+B = 844ed502eebba7ead23859c38d0fcdf6641abba60ebed453b8ee68be67f84ad8b019d16fb2a1681d305bf11dfde9f5119f1e67af891e46ba00e9741af0546395be72ac6d96edebbb93d29956ace4b6da3a4a2773b825afe28e55e129707f42ebbfb36825ff30986abad47a6bcc919af81c70511f816afc3d203b4df48909b650
+GCD = 2
+
+A = -331c7a990370840722a14c9900a512ff6c454eb37890ad6d59dc897258ca668682e563f753e5e6a1121381f2e239e8d9eeb5867c2b89eb6b7e2f58632ad94d66c29b79b980670dff642cadb62781ef36e97631da48278120c534026e15a1f01a2369cafe0cfd47588ec5c3a55cb88fc0d60ffc0af2c0caaeb37e83322816bf09
+B = -d29a675ebb1e842fe43988371ec9fcc0cb6c03c213cced7c58f0b5a3d742820be36db4a7769a7d9ce3d30d3d638b20e777d8f026efefa64ba05e9beaa70e031394b71ca51fed694d6eb36891b5843ff56e9a34cd6760c9d34cdee25db33fffe861e69368498946db5758e95d14ce34c41807f44e629b31d7fca44d2e19a8af39
+GCD = 1
+
+A = -731f7189bdec6588c949aad1ba5584a0230eabc2c6b5f21ea37f8bfb05295c599df6090570e2eb17c443d53da696708b5c70cd6b7d8fb087e7d44ccead85c7986f6120ddda45f851cea93e0405bf54e5e182dabf30033f1e86754cb59c82a7f3402ed8a890be867e8d935f6c4a7df7ea9ed1a5a36016320e78ab830e902c9c8f
+B = cbb25e36feb44b74ed083842f0dfda97df7c8e869c470eff5ad69fcc1660ada9eef10f2f175ed83664dabd70285fd25efe67ad21b9ffe1a7ad51e38899a0b518e312b84056ad6756883f74bf7f55beb1929551bdb9536670a71d61b94a44f244dd1ad88ccde4f3e63c9d971517846f44e29788bf5acefe6c2e8b8418e4d17ff9
+GCD = 1
+
+A = -4d1121e7c0e22c10ecd9506d5cf39fb320ed8c606179a4a1d11c313eafa4ee726d22bbd5f7d3fbc889a55be8a20a0c1a16d26e9768df894124f2219fde34d406db30e25b71796dde1128f77461e0c324f2c05b79cfeaa1d5d4b40838a4e8ff4b7b47f300f77c32056841fa44774d9d6d68c566216cbeec3946cec1a0a3b3ca8
+B = -f3cffd8a72118a4c28389a9ab2b98fb687c445eccf7d74ed1f8f1e06b04d9288c493e73f04df6d8cbf18db95b26f44be721e4414714644c32de8a6da8200448a83ffeb52a624bb11c51458ef69016a20b43085fa8739a5f86da3120aff4985ff086857014dcc9c07e03775842345240af95752d929388d364cee5edab3882819
+GCD = 1
+
+A = 2616b3d49f58e60346539c83cfa58776bb7c3ee25c275d403da500b21f7256d3d4e08f8de77a7d6589c2bc78ced2d8b39e0ee958e4fed9343997b0c77172ad40d290a84c127f1cbf2de13dc24e08a22f287e242ca464e3e67f3f569cd7c317cb7cd8de44d0cf9f5e6d9b6125169722ec8f68ac04cc5cf6b9b7ed9f634ac9091
+B = -15969bc04e5096c938f053682d225a7ee7f9c71379df51c2f57cca68194b59ac71098fb8d3234c3687292b45da7e63b0259cc15b5cde509e89d2260694f85c788c4b2951390acb3c1595c637bfb46535fef18f56db6623dec727f270e2a9e51936d1ac8db7cab76338b3b50d116e8f9722e4c6f69a068c2ef8260c2d88c2e55c
+GCD = 7
+
+A = f665b4d25d8dbee0ab39080c4135270aa21b5d0d04076faf50456fc5b198c0e4599d323d3774b361765817c0279898da833ea235488ce0405fe727cf2a70537d693c5ccc748a370b68491521cb2911bd9e8b5da0bdf08c65843022e71d12292c246a48366c9014187fd82c4619af5ece902267741157f65dcd6d16d4c1a2825
+B = -75d7e8a968302d160115f3da5cc61e443e40ab10a80a1356428de256bfe22ef03302754a35f50dfa54f01646044fc195542ea4302e037c0514ef66f157e9e1a3026a559edb6f74ecffd71112483deeb2576a6be36439ca2bc496667258ee640d7c9f4c81e42c5c337326abb94884cd3b448ddaa2c0d1bc8e2cc5a36cd3c3b867
+GCD = 1
+
+A = 8c6ea052ea27830bb4d6edd1ac608efdf1ef0fc3721c073fa47aaab2a9aae124e70263e16638bc6fe32140c90003ba1c61a0adc083fbb2ec6d542108f226f83b69752666dc92638b90ed8884fefcd98dd809e259a360b3d7410b4c3f131a2c0b1ee2ed62c118009eebf4011a84f4b69d29a80cc49fa4eac22dfd125ece45b251
+B = -6e0d94812db085482960a2345696853e58469df6d8c423e8a822df40b5867b437b6d5d4c493b212132e0b089c1a1221d941c65ced8bbe82bb3c00a1e620dfd3456a64b95988e46237613b6ad736ecfb68d3e16c77ea1efe68af8d192dd9ec07f91bad4736b4e89347756c9ab7edd9f2b0b6765e723f1239b7db1c1bb2779e6d4
+GCD = 1
+
+A = 7e511584681b9bd09d29705f8f722fb83a94d914e7388979606ce99e1d8a6cd55a6b76f8eba238b05f9c5b7f35be534817c3934ec792080dd71f89548211d30280f20bc2034384902606470b9ad60b1a3e133503e0f67d5e30fac447f7b15aab94d2fdf33a575573975905e8a62127a35c820b9f00297e9e2ef5ba015aec64a0
+B = -3ccff0ead3639f375625d4c79196e4e4c3db30970499cf3f62ae0064ea43e9302440454e5d8b974a41f7a90163f1c01dc14489e8023856990b152e05ce2e301e33d5104c90faf09b1edbee5d87ed835c76ec302ec8d22a43bb6d1e28061a18be7752785420a8982d3d4d0f9a31a3d27e0e9ac86b12a628b74c0d830b1aec85d0
+GCD = 10
+
+A = f60d47cc5233fbdce987536ca2686e23ad5bbd1309a911b565a95d467ba756bd91bd1976844272581dfded42f9380cf3be29a19eb6b78172e5a4264578b9466c3a04499ab8f84f817b4e5a287b91d1621df8cad01d291ad14f93b3e33d7a8d54f6d2fe0db966a4ecbf06ece7af95487bc1bdc65b4314d333586027137969527f
+B = 24fa64544f165b1e9d5ae66e597cc2e1da96090c3ff7b183922f161aca617acff7b4069dc0086f47cfa392fa861f1e34d0f4192e18ca5167f647cf55521a97dcb5010c077f41053035deddd2bd36d6b13b8bbdb771748187bfb71a45d4fd6b3c2890db6b52fe6617b945ba9e67866daeb07e536946defc0d17565bd866e5c054
+GCD = 1
+
+A = fdd7ac0c47888486c4b66d071d1a6e71a3b05bd869d57c145005d77a716bc9aa0c6eeffa143149b7a2d811f7e23f7c6288c4e791538e58b10c3d2b4ac8388d41ad5811d51ec8eee49ba3d66fffc683ad7fb397f39cfb6d387e7ed515775e43a004a9aaadfa9cf48c176af7af194c40d80b10919b3c7a56c14bf000528521c9df
+B = 5230bd51b8d7fbd6e59118e74087b4f8c3276bbc4ba969d5177b9e7e0819f396805dc6ea27ae46bcd84a76f885f9f0bd2ca30e9406bfdee2add7d7d6df07d0dc92553b699c485c024a8bc801fbc6da38f638680d8481b7ecf30b331f1eb84ca5e62044f5f4016a80858d8509f760bd7ab2759f3a082ceff15a31a3b229e81e45
+GCD = 1
+
+A = ea3d6fa16c9bab8a046418c590653e2f4702f7e6786c8abadd9af39b277c3176019a7ce4c4c34ed0981d40e9d7b255d5ab4f5d5d143f1339056b860bcb0d81109a818a3830b583f1e81f69b8733607b529a6b98db8ca02e91caa3726cb7531c895ee70bb1b955561cf36f47d9d70907839990cd63db1b4f141879fbb651e605
+B = 7dc4f9578148627746bed3b58209dfdc70352e66ea15bee8c25ff6b9d63b9546df5dad862e2b852d4275bd89d76779bcfb15037a70cd3fa4587f93ae00e2df7d46963cfe378da3ef591fb85178feef5f14a9bf0c151a91f1c4027c6a4b64169ec2164ec5a75d080b1dc3b93fc0ea6c3560cd4d65911919562e6e57aa8047d2
+GCD = 1
+
+A = becdd98079097d92ad6c1a3cc710d15bc504fef0c2b94fc2db76f046f7929d3f7b8c7f5b5c716bb13624f6971b0cdf4a9eb92e6a8ed9b4d67d12a3f16d21bdd9dfa7524a313962562fce2a75c120cd7f891f00bac63cd1f2bff4b4ca2898e25af28d6707a1736abc38025eb2c165f5d652fb589c0f8892e38550174f0ab37ce0
+B = be6ea38ef2cdc9e3f32b824806c6499012b3d2458869879659e27dd229f378b0cbaf8c2d7728143d8a75a080cec0059515d2446bb47d1c74a53fabaca5e922dc78e31c15bc0a667351fa7349cc305d9c734f7f45e86991b6a739f9442aeca3ba6ce5daad23b3567fedf7eddeec804141ca1a08121dc2af1b6d86f7059ca035d7
+GCD = 1
+
+A = ee263ee7997be5793160a715a52f7a6fa80ada06c3cd5f7430706aeb8dd6a3cd3c9b00c8b881ec2cecb0bd6c786dc13fa2f8cdf876376d3d753574b891b01394a5051fdfed5bf319872c303b8077d6fe74e68bdbae86beed1422bbd6cefab10a0f2aa6cd0ed54e6c2e463b5949f14b22185de87760dfce1d58ced45d5dfa9661
+B = f79ccfa144fcdab12f48015030608b3d0975f958fc4a706b8ad8388c5d81ea7f2b8225effe77fe44c79aea7a069fdc02554a205177a6ae2d9088c4e2a09393142d3a0d0e8fe2b87887c2feea4e86068f9672800f7b410c4752f13e33d028aa2ba6666d8e90f0c457bc1d8b4a17469278df25d5957833c83b410bc745c766c326
+GCD = 7
+
+A = -88c7db25489aac465d59fe9a5fb6f8505da0aa910573347d6050e3dadd0faec3f0f70d684ec05f8bf5d47c1a5c808c7bdf791dc30d67ff207a3feb452b3dd185eadaa36eedc5c30d146507d4a8ae3d11c357e54d6639aae4e1d9fb63476b972c9b5e622e797f22270570580b948f238685b84b7a05583266acc0660a2ebb9c09
+B = 9ce8bd067b47223bbcfac7e30a825eadd93b66981c7128d2af314fbf349a2f1565b06c78f1647fd98021b02e4c918a63d8fd078d7fd8561a7a455fb2fca54f550de365451f8457ed438e8b2f147d3fff8c713c42ca3402f5cb886dd1d945aa3e75c988dbda45b635b5177348fcd13641d7826bd341b1ee60de14779e06dc90e
+GCD = 1
+
+A = -6f8fa03b531890b883642bc43d866819780f3d1224aa5e978b9c488b0229d822d5c674d57997fa61a8baccb0bb195d5bf7032f16bd980348295081a5c2221fab862127d3c795b78fda305bf246ea8ccf0527a5351a2eef4e1d478a40dee7a6fec18ccbbea53477c2567f6748b2cbbf2384d628e17c9e920599cc031afef64b13
+B = 76b96251244dcd2b686fcd5d3461ee178e130a4299cfb16d184384442ad91fff5f95be7f65456d906045c3e39fe6aecc030ab944400f44511d9a8ff23d61dafa9714c66d22dd17fe98565bfe156bdc2d4cd3afa9c559163f71b736385f32a512fda979abe8fe642ab9cb121f8d5fe515b79c487c580dc8fdb62e512a5a54690
+GCD = 1
+
+A = -586fce64c6b5c25a93c8150d4f63022db044286130000ffb6b91b0b91bfc0472eaa5de3b4183b4c9017439327db990fefd1dd846bccccdb0122459b423de029edf26c02f69a6ba628dcde89a59a855eccd31f686a7d095125678d03428fae3ba1fae4f2c6ae3bf3bd6cbcb8586287a22f1d974a58fd4f77befb91be133c8dde9
+B = -e007d70c8c1bdbe3fea07a5212a1302296b25aca3082fe1f2f89863d3c410ac84bfd1ca443d45ed4596f778d1a980c18fb9df65b02221a888a5cf0f491a726b29bb94e9e281f9ed5d3f09894f47e6c1506e3ea60c41dfb684ee24f8b7d11820273d270b6ac2806aaaf43790bec020aa3c3f284003fd77b0eaa93502ae3672927
+GCD = 3
+
+A = -4a6bbbe091afdc8fc981b80a24502e5c278a97e71867a617af987b33e9db7dc24befd9534b95f5d38293e438ad711bc25292ca2addde293a47ace50c7b4b625f56cda9251574007a8e505e120e11c9b33ac00a9beb61cbcf5c35bc8dd67957509d9822be52ca1eac5360efe8822befdac45b90bb4b81def0b009091373dc1a4c
+B = 8c18f6202bc786f45563dd3820e17024bad5f0f7db57c49a0384f06e27fe939e6aa27a1213e013fd02a2347a678d554e349d5430df3474ee9494b8add34df811e09b55a275e9e770beebb9fa74c339dece5bcc83c28c35ab8e266ba4f922a21a3d8ae679c9957c45326d9d478eec1ae1662024caeb0e2b42c5c5980187819d22
+GCD = 2
+
+A = 8ace66a3caac6f8739d620c0d30ddde62d0a7404603f3a00a8cecdcaaca41883bdfb66bea0ee114653ade55b7cd0c99df6e0224b0e2c2375607bb432cf568f690823d7ac3223c30fba334590f214e6f7b97835d34a1ab2f9358bea39eb874b68016fe22f2b9e7498a98a85d73af5cebec080f8332055fb8fd71efd47b54809df
+B = -a3be0a142ddd03b2ebc4e0be41ca274d3728ff55ca24ec52c511ac69b613f4f79f13ac56e851fb6e5ff2ab377606a6e92ab9424797fcce761aa86129d7a7307c0b9b382e841e392919bb40a553f880a19a0308bc87f4a7779a613daec10f4e21184bf09348e8bba1ed2d3ec071e61f71fd0029d5be0d754771fb8ee9b935d183
+GCD = 1
+
+A = -ef169664cb3832164098e5ff6245ef3108d2345b35c4f4bb84a61c8ee50011e1afb546025697b9e465802aaec737a0e0924de165d6bac7c6eb5b0f784b39db787c807de3ec8307b8a2e09317fd7b5bb5233f08b8e937685d9e28a2471e64ec1c9c4aa37b95225322f726649baee74281d15865f37a6c4ed98958fae347e084d0
+B = -9c8f59a568e6f7a8a6ce1f929c384a8d4b50f2911edec5947a295624db894608c7eab9718568c3331fcd9386b808a4a0317ad7235b9d9621441f25a14a77ff4cf34a39b19229dcd567b93de080e0ca5f07bd80cf4ecd21d977e4155174173900ee7623f884127422a50d07751c2e0e86c2cfd8e559d3ac39a26185fc27bba81b
+GCD = 1
+
+A = a757fd1000add34d9fea80c97bb42033b6379a7145872a8b53378b50b008b9f9606eeabd49a6bdf569193826f939c308a8de666ee3590dfa68c4067baca2520bdea3507ee2e6ca9278de9ad1c06d14e93a1e4fdb83336f0b492dff110ff09f4ce792df83198787b863dbfdb6b55f7683c407e902b2c5030dca9f018e6de58317
+B = -aa4453270d7de2c15d0014f2b5ce3a20a6a94e4be615c2612f234691ff65652411549c7ee2059bb3f7bd38578bf946b24bce9bba9f2a11e1311c9d18cffcc0cddf97b3d96fa7493da0a19732f0a448d26ed96ae6c0eb0ca8a97d0d73d5cd960e5ea6bc9898e75b7034a4e7bf8b1dc5f8cc971cee2348ae56980e2a6af070b82d
+GCD = 5
+
+A = -3936005e48e2e5751c1d58e5aa27cea790aa37d7d1673a8c276d4b9fadb72745a7cd4e707e3e191dbfa9daa7c70c822f12adec3a881be0316da3dda3c4b023c83d60753ac8e80e3ae8cb8d496c1679c6ba22f3255f1c92fc82130a19a299e01843614d2e18286feb34b1e1ee5348b7f02f33dc95911ea823f9c4fe214d9e3f84
+B = -9c89c45a6f1433296800f17198c4b5f8289347a9d83979c8bbd8b25c510195d749ef038bad3e7e72c4a1462fd48ef576d2edbad0cb5f2e216ed334d0c28fdab2c9f7547a7fea358527c262448c000cb54c36bacf462d0bd4e9e3f351eb5aad6581be1827a6993bef936be9241a022026a587ce6ec9f04c599481936d68277c8b
+GCD = 1
+
+A = b2644a071759709d5ce0a75f3e131ac45aaafebc56a18150cd1840624b8b376cfabcd089b3e12d53e509545fe99d2f56f54b6c47ea1f5ff6123549854cf54bb88d7faa65079d0c41bf92241895f79b4fdabf0a20607b8a80259d49b19f8b3f72bac6a9a65e41ede7e544d644b2222a3290d4bbdedd3c44042258dfcd74992e75
+B = -9b0abb3cc92c14a2c421b13f2ccca25e76cb150128c00d5434b07e0446e5e76ea51355d327ccaca63775c204d0b80da9be66abe9ff04712993a11f1dfdf046b1892b55d8b692b874a4a699188e82b7f6a5226a2e2d522ab560f4790509467a394d56c8300eeef19fb84b93e0fb1618fa97eae99a2bd5999664089875d44a9c4
+GCD = 5
+
+A = -36faa2d37ca1461c0c7919635bfeba03e463d86ab6383bab074c3d4ccc8ff58ab2396bdf1f5eae19f4e271aeaf0b62f1892ec9eebef8d1727e509c18de87ab1a274bf1ab2307a9fd6948673fb4cc8cbc0f0faac3eb5f2c9448dd12e1c4ae3e28836289a858df5457899749cd12ff98909f39649bbe80300ecb022f1347ad09f2
+B = -3d6a8d671af688942f631223cb8b5fad99d5676ab9d2d9e8c36fe1d2907e44163faec6d12fc34d436e1d22bc2988152ed01f440fbdb2547bbf0febe861ea312458db342f0f8c4085bad13ffb3fcf8580573306d9045ac09ff4f65ed2eb31f55c134fca21d9e45fe922906aefca1e3f9574be1eca72bb75cc6eb1ca6aa1531514
+GCD = 2
+
+A = -712c4b770532abe82e0c34b78feca3b65d25d7154e69663d1bc4a3087cf109c1daa84519134e17bda04b77889f1e01342b2c62ae00ed65f87d1a82686ae9944a55a884ec26ef0bbffe89f446c4074f9e074d69eb2628a4479dd4c868aeba976ac95b0db3b615976fa779d10fbb651dccf164c04723f372a91c6d40d7ef2419af
+B = -37f489a682f08f94615c40207d6fb8a4ee0b93709427cf6cc078bb8cfba60d95628f70e88d2798726ea9d3d6ba8f00f29b4cd34398a650e2b5b5620f4b4693e2600310e91005db720a7b6f2b8fbb3b28a542cee58f1b2acb8c43a7607c1c0d944a0f675304995c3a761b6c5b3e2faf9af756affa32e499999236df6eb9785da4
+GCD = 1
+
+A = 4c9f2babe4428ac58e191c98a91f12240f4e682b0866a21756cbb4f6c8feecf4e9e1b0a9e04b1298474c8fa4910197b81972126110b07799f70f0c589a4be7c32f1a285386eb861d23e9c2a7ac35d26d95374438aa8c26700f6673157e6fae40a5f1d48b897a5c38e1fd31d2694aa82025afa747c8f05d422fd37044fafecf22
+B = d53d378df9e232a8c2027b6a292b68621756d4a58af602ac4d9806d5611b3b2177cdd436fee7acf3becbdf733e3de229c8a0e997ea77e7be225fbe6ece7a240255bed4d6ec2035defe1f8f3f7dba416e4521b962806e9653a5d5024dabf0515f0c5723313be1447b0ae2daa3c57d56a23967b3667951f6d3531c57a9b14e0311
+GCD = 1
+
+A = 36e12557c58d0f31c2b8f263daf1495ff8781663c4100e1d379bcff380e1bb0f5a7b8f846371232dabb7af0d125f55c3f17a85df6c667274eb03268c3e2d8e1d5630aecbe12fbd5263f4a05a577c73914de8b54b38cfc03b3a252c7475982851a8989e2fe13250df59b0d085482f9788ffe0061468ee752cebc0ab024f4efce8
+B = -369c2c45787d4761f5c1eed121292f1a36f591fbdc44259002413a81b21da3b75c7505f61ebd061a0ec70bc21cdb18fac7e9262f48b94cbf34c6f9cde2a49dcbf31b2925dadfd688bb990d5b38e5d8c21eeccdd46f94ec82e2ab51fe053f829ab682a6a81eddb2a1bcfba0da8e052954e5757bb20f1959f614cbfffc2e0a0408
+GCD = 8
+
+A = f9de4ff75601ed4403ef42683bf28b12ef9580b0d17a26be539856cce68d65157ecc1bacac58c0f56902adf8cfc8bb123a4c8d9b9842ecfd42219794127d2d225e26c6b7c1ea6449bffc1f04657fb7ae89110d2c735c416790aa0a1c79b2ec082570111a52675df471c92ca246667a024d94946b564f3e6d5ab26a315bbdacb
+B = -21c901305699f787c2a1cd350b48a6af69e00203be480abcda412b0f04ec7a0d8e3033a5c3a06fe4a84c98f285685340cc3994d7de0e2988cef9a3107b322590af11b6b195846759f84216f74fa7d4f4e4b24862e390d6c79decfd14bbd20a4a7a4f0be8086abf23b5c9693274ce1ba5f21d8492b2a41bab277ffa0bc64a8d45
+GCD = 1
+
+A = c609b314fe68253016b123ecf683ddd1d2b7ce7f74cf94d55a352c87a14af98ba45ff8b7facaeacf46f4553cc2cb1cf6df4994d71ad8cfb42aecd8f4c39ab63f1eb9f902fcb5a3c06842595fd29908c517384377717cb9d2ef5634784d56cd45793a79675a5bbe7488b948e6b23c68e4b4d64d5ee42d62924cab5e3bf2ed8f63
+B = -b994ffcdb10fe09f1016a6fd3f01fc95a67d7b6f0d4912e0a13d83fcdefe7eb09f595ef412ec27a51bc31162e7d7895a4fb2df0678623d41e8bcfd48af11a0826c550994ed5bf99a98906e2e5122167ca81437ee1adad8fc39e788e5f1e235bf4b8bb339bb734db649469708b664aa1ad23b695d5c2fb3c653a75e0741ad0a9c
+GCD = 1
+
+A = -622458091a88b3cda0d712b9467753d67cc73893539188e5b70f139b0efd7b0576d2dcd432d79ca7807949de70e7845d35207b9316fa88feb97bf46068101dbf376b8dad46250f81227ff1162536d92e5dd7a24190cb9ffaf75bfaef468a329d003ec7b5a3df084dcbdfd043a782fbc5e6f524151968c645cd391adeacb4bce4
+B = 90ac0c595156d0efc2065153c04c36973ea281c937b9f07a365458996f6140125721cfa4d110a99665a19462718dd5aab8352732df3b3b1ea12f037512047a255c5478a7442313e1d1bee1a8a51b8123d8bce2e3d24af7c6b036e4bae872e983ae32c6ee555240cdcbe1b0de332f27785775e9e2707aad1e92b8ac8e0b09f7ef
+GCD = 1
+
+A = cfdf67331ceab5929d01231db019db73e4a8c8eaa74e8c238286ec9011a26fd94412493d45916692cf4da5a0af56c32892981ba8ff3a9cb982d3bc18b9b21d8a24a96089272bffb23663b5953ca213f2d6b1709ed875ece09a3e8f93fd3052b5c6cbc1f4750beeccba88b645348b6ba9ddec1850f1678e898bbb8c5568eec514
+B = 65c0ed69d499f9dd0526fb1651d0d0a5f6b034c6a0521b4cc855c1dc1b0901c9ef0308c44309c98b61a6a6ffc1e5c2709ab96a9046fa706a23fc55ce5c7bf26f11f31d40ef2be41e05d126d47a005e22c5689619da6676ebb5ace6256f84c3c8705812d91c3bfcaad090e2dda61f0e313697e8ca980663ed4f3db12e347307c9
+GCD = 1
+
+A = -446cd6ae72eb4ec610628fe06f993006505a5fd55cb9b3d03220c3dfc787c58497b54d7d67853355f937cd007b60b0db9e29d9b7437bf40f9f2dea504acaaf59081df03e06aa8ccf4dc96bcb8e1b7d9a02dbeaa242231f3ec2398f00ec939e50ca1f7a49327359b38fd9753ab128afb89024d2e7458ddd756ca1ca3c7c2c157d
+B = 702c4ddd30f22b192700493d415e840ed084e4eea8b06d9f030a3a13dc826930fa149456c2a07a3045e9e6adbbed5481fec5f69048778552ad8634b4c7695f1566cccb00a87bcb9c37d3262fabe85c4b4b08617c8b3c197e8284cf5b9d1b2b31469c58e5ce627c971125721113a4458bc88b8f722aaba7e1c4468fee55f66223
+GCD = 1
+
+A = -f25b9adeabc18c00087c3d9ac1ba29bd9f456179f19439abc6b79dc6d4e7bf0099228bd6528102d58f422dd9cec38a53efddf947c65b9f1082f755c9885a5ff3cc51fb3ef01d324720f322925dc486096a436d183937ec796e6ffdf06ae8dab810d2a6ab82f22ecc3eff597abbbbf0f2c85eb6da4f19ae0f97fe79848ac9b1c4
+B = -c26ab8e23136c8472c223085b77d96e069509be8c46b6ea1d280c8dc149d5bf53403661a3fc62a26282299a6a95de99620346831d3708b9e54ac4516a3bbb7ee63120eabe34ac22a2e021bef9affb3fdbb0bad54ce4758a72f861fcc8e6dd76678bc1e065e486540060f45fd7421d20afcb773ee60be274f4799f15d2ffb17f5
+GCD = 1
+
+A = 9f86c812fba442b45835c1917d6d016fd1f2e42f99ac6247710062e7fb518f3b934ae53194056e2f96d5c6ef7743c018edd670fb8197075da89acd24fff142abf3dd7ed108a2b313fc256b92d0d70097523e2b04e9a5e0973eb47577b38f00435e959370ad27c606996810c342236541beec7fec87c4c223f911ee5cb17e7ad5
+B = -ecb9187dc6b65835da358c0c754038f01e8ce809c97a4abeddebd64140701efc49cb28d15ff12bb9a600e5ec53a1c6e0c60f19053199cb13735ea89d70d07bfb2a3b8b7e02276fa3d47128640bb8587194aa561202c2cf42dc1786c5e01eaae83f528ef05646fc2fffe3d6441c52685fb5b28ad3a2a7e4510249e48ac217fac
+GCD = 1
+
+A = 41a2b641be79fa1b0151e2e53fe9f6d8e5fd639560469ae5ebcbe99d03503e39373d9268d66bd409f8e2c11273a01b21845f62a2c9868580ae6c438ff652af751c3c566ee81b68f04c59596739e379314c2cda2301c750305d475bfc3f53d3eee42ec44ad5c379e07f78ba6a51bed45046e6c41948640777d6fff0dc0c28385d
+B = 8f587b1ed591f3ac3b933e9b3f9075179ed0ac2b03b68453f9c4b1609accf1c5fafc1e8f557b8ee2fe22b448e84383a827c543c9bc797be1be63f12e010dd920e51ea90c9a4e37052b4323d3e3359e7e9389e6ddea8d473d56a43a4cc35ac271f194f433532ba2224fffefefebb0d119b51d5edb1e0c9cd9aff638fff1cfc1c2
+GCD = 3
+
+A = 293e308448427a12bc1772677114178effcfd956bb5d1ba9b922ee4c2ceb16b288530f590a0c33bdf25f4f6cd1a248a036416ebabfe9308b3dac099ff08bf69c0cb0e605c2550ce22739cd9982ba2d0ec3e130f9ae8fd58cc51ce22eead7307b7e3893769d6d5d39613cbd93a9681c3c75996400a1a92d7342e0fa36aa25c155
+B = 48bb591fe3a0c1fd8a0c59cdaf40002ff1d6c4656231572f9db0d98ecbf188633f8a71e0f74080b8dd77c87682f1052f801ff7cadf96565592eeb5bb7ae2c0886d7c2d66076a3ec1188e0bc4c432d5455ea96a6f594a696f0ebc653996832d7026e20c8823586283c6e653a93331015ec30adb729d370abca86476046d022f32
+GCD = 1
+
+A = ce29b2c76a641325a6af0cfaf93c18aabb3d474492cb11f2e05f0d22d84d794743ed6c6ca849740d17fe860db021bc75912a2449a8ce05d547bdf9a28d00dd5ef51cd529137a6f01ca8df3a09c4a3051b189b953a47fed4144c0361748ebdecba64e9e2503810ac8b67b919255d335bab5774d0ab9c0fe9410d43ca50f7e2c1a
+B = 4c3838c0b0163aaecccb2c3da074706220251492da156e040be2582a4824f389b5c6f04a326171e751aa52e9b594b6e6c4a75d919fcba7d540f96d7829302ddaf1bbe7c88715ecbf1db69fb78fe83795925fb9cd9b33e0102427d11cf701aab0ea634e4bef64d3fb09163dbfb60758967b5bf8526248db8409a64cbc180b3f24
+GCD = 2
+
+A = e3db115dc52436e29742b36bedf792a49e109027656d5f4f91907ae46e733af311c55955d1d11f3a84652cc924914438fe264b7cbc0b59b578abb22133d1b04b7245d9759b7053f8bdcc88c153101257b48c82b80e142460bef44c53468d01c7ab5aecf858cadc260a86798f52c3e6124e15d174060effec8378a9d0919d4195
+B = -a29270d84dce9c86f3e984b9cc64a4b2f9a81b730e096213aa9bcab5c860a11bcc6dd9d5b704b66216f6d2b592923bd3e2a38e45343f056c454691bad5cac60567988a06b37b1c2d0a13c7499d6ba06d35d55dfc55b10f7a57f5c4454084f615a9efbcf50d4f0168594ea1611fa4743507ab74c2790e3e93ae7f241c9e4dfac6
+GCD = 1
+
+A = 68705aca194a1c14067ff1e7edfca3bab113a9010d0d8e160099158059939e2eeaa219f854c20bd7616678be2d8bc823a8e76d411e02d3a19ad73c4f573f7146edfe86198ede377a77dc2ce409cb13fe8579b9576e83d7a2b36aed2acdc6ebbe8b298863c07e715c2b1a08fd8ccaea9996408214e59d751cd3d5be6151e8de86
+B = a335c8f59a8de3e76d3069a12393e7265ce88906595022395aef8c95aa5c376395affe55dfbca98e486c4a076715d971bc1407fb3bd66ca7b17a85a4e9a576ee0b3e0b1e21eeee1075ef98d8c9f02aae5cd2710e4f9c6b34f356b4cdec3079defcefb9b959154af09cd084eca6747f71c27ef620df564e53d4979658dd467daa
+GCD = 2
+
+A = ef3db775502b10227df44494c88a3bc0a16cddbc3cb9cedfcf803b327ce6f1885f2baa253d8e2fd2e2e0d19a1c66aafcbc8d9cb6be72d2669e9ea6f15290336bba5e907d5a21c429bdd9b71321989ebbc3e69241afa842fed3999bdd8801a6970c2cf88461d2f26245864fe8efe07f6df8eae87896e06d82daf1264fe86c30
+B = -7e7d5236ff38b82b0d9daa6bb46f3734eb89420a1dad401d2f827eb617f6b1df22f8130631b27301c3b5d368f36a4011127b49b36d2c6f40761de4c48ebaa8e3cb31e418b8d8f4641bb74dc970addd1d915ba8b5b590c4689ee50a17ee854089135a30b61aefe55b2cda7832ff4db48faa526db20ee33f4e446e8250984cec58
+GCD = 8
+
+A = 8e20eb25451d35c3df5b9fd6b02f5cfbc354c4a9f3fc497daa9b13f99bbf710fac1fd0190ba8970dc527f12de3471eeedc6fe09768ce1f8aebc7db6af9a602219b466416e5332b224813d7c98f9ec93061a1b1068fc539c99f0f7053f56e5e518e17ea72069bbf9d45433e7c3f1d36bc51e9c75ed82c547f8ef25f4cea427256
+B = 8ea1a51d0b934fd8eafc5c8c086fd063cf535508897a58502b094eeb0dcfc1f1e2fb441c77ef5110a68e1ef7d439f862be2cbc9f34c05d4ffeccd0276915bceef3bd7939a8fcf170b4769797d4f0f0cdb59667b3831e3769fc1546d17c5e40865af2db0267b3c4459469bac401be53a66432104f944bc45aca942837fcd96a79
+GCD = 1
+
+A = -88415b7af7366fc9276af133f99664f53c1d3148f76f383ef26ceeeed5cbe2af67fd4585bbb4a50fa2d300306273dfb0d286e089dbe594114729ff3b8c882584a3aac44c574de29aefd99bb55b51a6564054cd17f3d3cff5986b6d3371c09272a346feb83abf175169e9b6037f1d73985d67cbace64047fb022bd3dc1c0286e
+B = 3714e6ba7c0f40e3e0f6094a7c6249a348b6e7136e62b5628c5836b3ac992537b32107b3e030c35f58c1a26f18e4162649086f964cca81d86b285dba0c0589218c6bd4b146ae39a2e0a13b13c9ac6398864d773793c17c7da79af99f0bf041316fa52bf144bd1b2ac05d5d10361a26e958894c5993434980793fe8a3c2711177
+GCD = 1
+
+A = -8838d92feb6e074703bf74e06da5d8126e8825829ca69f2dd6ee927aff1dc4e5bfcda527cd5580b70f93d4941b072a982e7c8d82cbe7cd835d251b4a933389ceb23488d0701309e461047532b1be5582e3452e9fc9f1dc13fa524cca55a07475c7f066460b1d15ffc460b1d05e9369a3c58441c47e3e6410a45d784bc50a2d25
+B = d60720d0064eefb830e29068116dc7a7998d1b4994fd8263ba71038f20bc0833e4fb84e910ab5038d0028a1047b5f52862f3a68285638555e5a832ea452332f59af9a65f4c23a708957a971ba99213c02c68d49c93d359a172ba322991a96644fa3a565864efb6f918f58ea9274bd7c323197c4b1f42534b2a463a713dc3e30d
+GCD = 1
+
+A = -7ec8fbb84c65f5984f09336f539ac478469007c2adad8298fc2ec0ab01e666a1fd16fd8ecfa4c5b599a814124c9101bb399bd4fa8e79c43ad6f4b03275610e7742eae7a84f4307b90fdf8e07d8b66dcce539363d290ae6108127e1e2edf3ab7363785b7c6302a97ab7e3cb4b9f8f238a876138aec4ee85d28323f0a5ed569895
+B = cab41f81103882d4fca8d8fd1fde614714a75f6679709e0d40a1d4c91457b1d5ca423b683497a40d1a34575bfb5d9693e6d6cd12d1a4c318a7bf5c74536afa8579851868b0e6fca83490b51510c7c34f67444a0ddfaebe17f0e71d0ac81a62b540ae92732217f00328398b998caae43d814bc96890ea34ccbfb08e01871af032
+GCD = 1
+
+A = -c53b352d778e0d58b7ddb5078252c63a1b00102aefb8747616cc4ea2ce7f251a2a462c19a27c4e4c22e3c8201b4ab47a134b2522fe1e8a74875218a8e00d3ab7b01184fd28d8303ec91e00ce4ca5eb2f53f92624f755d5af462ea78f22929326fc2e256355a04628593fdaaedbf3d4d37dbde52402d069e82321e35c7d207a9e
+B = -17e17759929d0c4cb6340adf3366c3a3428869030a30aa7ac0e6d9fccf28db759802e428e306ace4650ca7b3b852f57c76f8141f0d613da42854380307c740ef45c349efab065b1dc242542549d563228c96bae39f9b9740a552488cd5e5c0e97791e803fbbf5ae0311b69080b3e1dd5cb4746ffe88a56428f932edbf6d65000
+GCD = 2
+
+A = -fad714585a9eaafaa41673c097fefc2be2a86023a4cf0b9434f04b162e3483940ba51c6dfcebb20c8297b40747ca43a6812ef6d5cfa1f25babb2d70be10fce00c96f2104e196ff17b4323677ad68b1e3b6c2c48862c1d847055a875bae92a2e5048ac7fcb6b541e2ed7ce445933637361b07f56476c7b678ea89e584122d89cd
+B = f08499f81ebdd02ce09ad4017a8a812c45fc90740beb4554001ac94f26fb16d29fd480181b5c56ccff243641404c214c21a9e40e6bb8f0e772b510c35ea6643cc1e4743929d8c31337530f10e75e2574c951479b0dbd3b14c74b335ee52a5c95edacf7e2e66b31972e4390b5bd024ea1364042f587f67e33718bc382dcf2c272
+GCD = 1
+
+A = -9002d61ef0fce955f86b86ea536c9c229f231982066870ac4aa5ff171ccba06c348f0a69a2664a77c15aee435cf9f68d9739e05b2361621b554b5776ba27b318d1aa08e74d0e37215a7f5b41e087dc829159a4e981ef24c9c840e964467fdb377137161edaa973016f5065a63406eacc8005f597e5682a6c992ff5182f88e00b
+B = -c346d1060e6565759884b97667c721eedc9f9ab33dfbbd0786ef718975d018036491c39437c4fd118106afeed1e71120130f36b88f3b3617965101cc4135edeb5889471de4534a5ea6cee903c0c15cd05075a6afba6d9c32e35a64beb8a6e71edd2191a8ac3ca2d3c5bc3052cdb3cf100ed0d204b1ec6b96ee2eee332977ee13
+GCD = 1
+
+A = -af58d877f64be3057544f5b0776f607fea0e7c70bff5e6a6dc50ab74eeb9e5d1633ba8223bf0f736d648414bf79ff88602179d0485a0393e61c861024d68bc4199cbfc4d8606171007694a5ab143d437596afc7e0acee003572894ab5c001c97e8875304d1091ad3caa6e6972d19aea9f56513f094884dbdb66c78c087e5623e
+B = c755d5bf3bfa7a76018b546a6f6e0a5362e814a24ac1bb357cafa4a755af652a8501dd32da6e4b9094c332597d9b7c4645fe611fff3603af09b8f46fd1333f499f2005227f50421c0522b1f8740db2c99981d2074da45da96df90abefbe8352dab79f16c6517b3b91fa2e1cddb2724fc9a5725b4b1f9180b2d4cc5699e84ef28
+GCD = 2
+
+A = a7a1384cd960e5b6bf2c38a1426f29dc375d71679a47a82c24ea9273019d0703c36578c278db2589338187603a7223ce88a66c255dbda01182eac3ef822db7753442ce6bb9850e3fadc1e56c6ca8d4088df110a8c265ede7ff1905ef67ea22179accba4415bc767d84bc6c698b570301170e30f34e3e05a96b9d08bb586756bb
+B = 3de72605eb4cdc5661296da8ad8c2b01cca8501ce27e88f79d3f1c167750232e67d96071ff87d22f3271e8322c25dc13075d17512646cf47a052a65fa23cab88e979a913c5da3a18f4c271c9a36704396a523366747f4ec19700b19ba0d93dbfcdac07c861c264aa6ef86dd4ec52959781cdcd49ab9eda5bebfad52797b6cb03
+GCD = 1
+
+A = 5a6b2996b36728bb3ddd2434b437221563431b8bbe8064edd928fb7bb3e8801289f9cc6eb21a29f93e60b60d230eaea10a779a29d0012778f3062a2cf7e784f3a90335baf280ca5b7bf13b79bdd9af79b7406aa3d6e67ada7acaae7e368436be287dbba7c836997311d9dcc299d50ee7d5ed7079c81629f5de94b658ae201d66
+B = -a2ee1abb1f1afbb77a5221bd2b9e40a673d4af94c8645ee93040d5d8c22bbcb706fe2ac8f93f3a9e4023b1efa3e042f45dfb66a3b870093b758f420f098f4d30cb3dc3d9a0eb0b5a3be94806bf67f6be765ea942d7e7cb81d9006701bd7df79e150380eedefcf64a288764c520746e3c551aa330b7728d38ced63405f45f9d5a
+GCD = a
+
+A = 56c31f5c365fa85f77425798ec6dec5427cb977810132bc981ac7850e6beb92155db0d1cec9310de3595839b38fc0110e4fffd893491940cd5c97b27f5c4fc74395f41f16f3c253e5a1e16a1afafc830afff0dcc32ad5fb6e7d9839289b84a52e83abd1f0059a24f3384095639779bdfb43f8fb07e00677681e8da7b1f4069cb
+B = -1fced12e2dc5d274a643fc6564f8519d0660319f233b11217a0e4afa3defd37ace2c52366cb54157e22ad90baadf3f7816c27fa5bc64fc8488ddb0a6094e2cbaaa33d1042732240bc16ed1f52c0cbed980833c0bf3a17a23c40cdba93cdbeeb3de5408bd5ca83fdbe429dda40ac400a773099f5c23b557396df242b108755393
+GCD = 3
+
+A = -6449a272693920f5f5314a1dcd4f5024d563ddcba9b0c6792b5fa9af022531fab83ccd53f84e051407b916dfe63d14d886fdf2b678cf0b3cdb1842a4add6d3f3e5b4778242552b1f56835837023889376f8408bd5c5253a2179d6c6baab9a20a7dafc4984d866554527ff759dd07a7b43dbea15710af4395c55a3fe8eb50defb
+B = 8f5428adff69f073b36fdc029c97235139ff73165ca54ecdb64e5ce0b184928820280efc568a58027af679816e0b76ba3b2994048ef41f85f067b3274ba53aab9bb832ad6c2a5e9e9cc9f38451f2652047a3160f2d058f24e9534589d8854a1b5a69d05abd7aec914ca8a840ce50e83e3436b983ab9417c7bbdd91e0f8f53a1f
+GCD = 1
+
+A = 56769910f83bbbcc7d1b084886925ab19de23bea05ef03a6df1e5bde64f636f71f379b51d5bb550466bafa2141c60c28e3030334b66bdf36e10e7b04ad4941bdcaee06832cc3cf29bd4e1ac3e1b4d3e6f90861dbd692ab90ed6bea34eace1e288a157bb7f7bacf16a28e65de0b2155593d5cb249315e391fcbf03c0e5e0255e9
+B = -f3f2a9e3e20f3685a5c0498e90e0bcf8f6d21f9f0770b389e4a0aeb6884233f8608f0e1e89b5f88ca5bf82eb3fa2905d41fd7b2e77b8a14794230fe5503544f72b34836786aae1093806575c9815d3bf48b156a32c1f4133c7af111d6a8aa6a82d0af3c1d8812ef95784c739ada1d3817cf455572c6bf97ea4156eaaa91abe7f
+GCD = 1
+
+A = 597f0f07fb775416fd2ac373adc1f535a73e683592209c5730c552e4245b1014bfd57aec664c3615aee83322da08157a8b9844bbf1febabdb641609c9ec30e75886d8d35cddee470dd11c2d28cac824a9a4afe67cd70b447d79bafc72e9f3d03e16e8a4a79d1f64f03afc76d18a7ab311d84fb39f9f8eefc01341c7bccded8d8
+B = -b8f58a904eeca1290ba928fec61954d25d74b6085a2579f0f28db13b8da45b5f47e97dfb945be9ac7abfc16ac840193e1246dd8b336846687ac160cb8fee0bb5be52b08560ef17d0ec60830ecfc6612267523a21e63920ace919f157057f8a818c7998bec96fd23def2b7eb7a3306fa05491cedda916048b9f6f6a8e9b8b49b8
+GCD = 8
+
+A = -4e4ed189f9fa439ab2ba8aebecf8686fa3ecd3363299be220f768324da1da45bd4b546b332819d7e737c6ccb2ae67b62aab35a7b51951ccca610c5e500ba82d71e4c27e8889c14a2027ca435fb2d659816ef1b14d825640e2883bf4042651b64a9ab52dbfc1b1e4e9c2245592509a704af25548441c58c6ac1215e374b751554
+B = -6913ac48a89202c3cbe2c8b49a8111f647c94027131e9afdc6a89e7eda92277a48a9b3e54ce84e9e960974bd6fdd56e975d4ad6929bd2ac6f5d2f940ba386601bf4396c6518592793626eba7bbd69c750b62066ba24c14791482cd85585b3dd6cff05fb886812a6ad04a885648b84a7bc797c037c3bff824ae70ee549da439c3
+GCD = 1
+
+A = d30a756c61c77555743af4495300e4e6d238fd301120d90d56f51f35ec9b8b8d1011e73697147706cb1889f08e967addc7a5f413354d5dcdd687637b05e2fefbc702f4b845981a32102613cbce1eaf8c9436698cccdc0196f7a96f10fd16720e0b74fe0eee502306e853f390947ddca4bed09ee113a71c3a24b9b5214a5cfd8
+B = f63b6015c911a67e83cf82240382f0e2d0a256963a272cb660223b21ee2e7df5d01996891703f28621e174d46bb8555716696d077b276245eb794fd74c828f5e36a15aa531ad3277ba431bbe8407df764b84dc49570126769a273793c8767552d599058b267ce84b66ec253d7858f6cdbf9e370ad6705b58f1bb4959a684cebd
+GCD = 1
+
+A = -c15c041370465e4a08caccb78b8b41d0f43d5733db1353b9731498b585fd7bea844bd554200299e188397527589cf0698eff4d2c51c9c317475f8b46e8604ac265cd602af23127698b8140e57698642e18ecc1920ca29a94a9ccd6bc3ce51a3c91c88af16bdfaba141b65e04389018e64636a4dc2b15cc7f338025d76dd87139
+B = e5f7b0c94ab73465ab4cf4c44e5cee16d385b4a1d59aa56f5242c84e5dcd6930d82bcbf187c72914cf60f825e34e59f57769eb706c6ff8e6e2f054fdc28e0d37c4fe7b1fa7b30458fe9ef0667af0a4041771cdd39310c1db2b79bb05bb448a369393fea7aaa05d304d6fb0bdaba6452a32e4a2c37009bc1b7f6a39f5e81c594b
+GCD = 1
+
+A = -651387ccbeeaddebf4aeb2738580b7cd0b7ffc6327b892bf8eb18b7a5ef497add11e39d77c06bc58164eff68f1490d0cc86c1704688841d3ee317c3a0d4e2f620a15d03b0dbe2f0c72a685e318a2f65a82ecec37982d45a69ffaa3b88efa3ab9069af410c16c051448c91c70b7d51e0411ecdf8ed61cda37aa73228400c4ca57
+B = -a46a61c66f1bfda295bc7532d738c34f2c036693c36cc5abc78b5a995ef3ab607e3567175b267e9df3da7498ccde152d260b4843dbaee33f801913f4c1e4b3e11b26885f07c8e979036ee114a9891764121bb7ac16ab430ec69c90acb02ade4f1268e5a2d9153671d73b7a85288a2128cd996f271eb0c797c7177a694d263a9c
+GCD = 1
+
+A = -8f8f2796f50c933d285b375902daef82016b3ff9026f7f29f8bab182e389d596c50f1ea4dbc81b3c8e1628c22fa14dd05ddbf01c423e4c4316e8df7950789ef689bbc07df303261f615b6e14439e767f36c0b03532ce0d434ba3c8c710f1d82ed640fc29e12a81c9e296d820e8e15939578021ed764e63461c11d36a5ef95d06
+B = f580460776c0734ce1235fe588e6cbfbaf02796c168bae6123a3949635e7921225951a44edd7dc7bdb03b5b58cbcf09e13ecf551a8e8c9adc861907a141741c345001a1fc426c4bb44fb2eed20fc7a9fe4df89b0e4c6c243574295abea72418b3e355ead386d0a879c402ea9c9de436558ef19c0df933f5f144864a3cdc236a
+GCD = 2
+
+A = 537ad39fc0c1910ed2a9986119aafe18d391fcfe045b90c45332c28eb8e32e7208c7e7531878455070a4e127bc97c5a1cd849e419f26387436306ce27331e9537253672bf1b66c171946008ed4b263da308343376842f0162bc728143c9aa4768dc89d3fc9b966a5bf44ff5b3638913d8ad299dbd65e7b64c8803b07f00c8ef7
+B = -cdfc498c772846431e47ad9ada196bfdcdf9d3c13ff1f45dd5dccc22d99d66d7dd2641db228c8c0e9ae4c8a2746c7de8e2b54031cfa49e3f8f267e992f4daa9b9134a2f59a2bfb3833a37df0771e7f842f16c651674772474193ccc190cf5c43d966b6628d0b1bbf18b1ff7e7ffe43fd3acf5a89a9192b3407fbbd7d42e47977
+GCD = 1
+
+A = 8231d42ab0bedba1be0dbe324687887f5315da824a1a305544e96f79386fb2ff2d5ada46cee48a3a807bb0694d560cbef9075b0bd100b425105c6806d4edce46245f665f4b10296d7cdf050d1b0d72c3c78b0342ff65e83d7f5ea009e2e0ee2e6435589157ea7b20e3b06e56403dfc01252fc96781b3adbb2945a0b8c8ad9f53
+B = -9daf6408da191228588b602f6415023d2c87bda4c0ada5d2c4ea6becbe1821b32c47c30a572de5e8062db0ab79353773c2653acacf11fbae6208cab76b32b617a03698bbd5e5507efff99b45c92b0b0a7d711b33c08f9f2b152728ee9923b66a66e975ccbf1f7e47cabdc6fa2a0c9b4586b5d7f1d637bbac86d3c77ffa026b20
+GCD = 17
+
+A = -e4f6d805ce00095e90efa2be79ec696ebb3d96571ace17d324bd40df2000613850fe7d84ade95554011d20c5bd68005829a424c8cacba19a95c103f418a3e591fbd2373b27c4b4d783dae73e49c5ab9cdaebe4cae03d59312be770f1194f20471e7a827f0f2b6ad3b58745fe028a4b07bda1baf921543a0d42eef5e12d9a9451
+B = -a3e22d08c1376041d77aaa96e13f7b3c0d56ca03f31fcb8ffc1488fbb0fbec1df6aa037f4ab38f4c0e9f5cff9b03e26960c59d4a129a3fe6e843930ddfed306bc682bd3aa339772796af03f4ced712f3e2cee42014400d9ae489bff652ed17fba4bfbf8ce878844f53ed0b2ddb8bca0b65e430cf8c56986e894daeda72413392
+GCD = 1
+
+A = fae2388a30cad3c7e3b8a62dabb36b368c9f17cd435c382eba3f67aa099f09e2e57beaebde41076f92edc26deba0fc29cacf23b1281c2022f8827029d5f49588ca023c681f59e46d81cf29173eab78f379a8039292900444fbc7053b91cbe261cede83899b644256f44b2ff67fc94347f997be18d22be4505977bf71609d8c99
+B = 6c693c8fde5c8db701685ff0c4432efdec803fbbb092d2b3fafecde614754433a79b24d2176f69b31f04cb8a732137663bbaeeaa1f7907d5d838643fa7d257f3e801565cc90bb4aa9dfb17434f06f66972b04695e51c759a494bb91de0310621bd8ee22843b0d7598afbeef526c3cab503a059b727cd8e73eb5ae1a0efb13fe6
+GCD = 1
+
+A = -cab880fd1d9a277033a0b75d7f622e39a97b02cb21187ceadf0a1182e803d5480d00b991507ed14a67ed29a6d9846df8bb8f9a810f47364a84f8ba0775b7989dae071765ce68630bbfe15ebe0a9f0943ff799b31813c5876c3b6326a9cfc0facb79ea744468545c64d8e69ad40314d6145300c1a0ed7e31752d210b3aa3ed96a
+B = 6a5ae64e8ebce1565aa6b1f5b7552bfc57f546a5b7e30455affd28937f0ef1df1d033acb141db66b1e3b9bb11fadc685066c5bc08477a259246821e2ca3c3c91477dc251076267c4b34b48cf92d7dfe527f353471b97c81dcdd9a5e8b1f96f0fea1b5c64bbf2f81aafd249707c1253dca6f9ce585b2a7f7ab4dd537c5be3fa5
+GCD = 1
+
+A = -847868c03353406e954996143fb4bcbfc316b0d0228f91c6672ce59ffbc924d9cd10e657cbc1ac96f2533fb916a17d94d03b921dbf5266e8f8ed5c83c6fb9088ab84e0d09e35a59987e7718722c360d6cec26fa5067828237f03bdcbfe1be1aadf5877d646bbce112c4c57a7a26abd66e8239a83800a6b56042da5ee3333b7bb
+B = 88d24a64f3cab2699b3e3f436d0aacf75ef5efc3cc469897e4a9ce779c68510fa5f84bf452a2c70c750ee37e7128cc28f94aa7ea4101b5db7bfe13bfb9c1d477ced4791056746aefaa30b4c93bb732c95572a0295d5b6c69afb500e0e1e2706c16b400cf963ea5998c8a825cc8905d63977b90432266030377fffd5750dfbc25
+GCD = 1
+
+A = -797ad41029e0da0f2ea54eb949b477878104f2d2c49e0b9326d39f25e9c7b4dbfa060573d67d355fdc46a9cf9d0a3c219939d8d241e7fe2b73cb2b31b8db3371767e67e333ce388620aaac2cb0ff5fe6cdd4b213d44ca6060e7713334cd833371e33e431c00ea3c4fb2217508d56698cde1766a21d5210c18a4b9929127ff1c3
+B = -ac6a8d9f8d3ec2ee29a66ec531dad42fc625fb91344ef5d2d4a289ebd3016d7da5cf1b3dce9124b9dd5e94d89d38ca1132c02cff9b6ed690d5979103154ea7d86ed9a361dda3b069f4a09130657d0a12e1fdda3f269945c9e9c511ec3b51edf1e65e38a9fa726af1b8a003f94978f5e1e7f905138b122f544766a3c4c5a74ab5
+GCD = 7
+
+A = -4fdfe88d116580526027975ff76568db661ccd5584927a22d120f845683eda279f7f06b24c62c7a3e1707bc67187619e444e0a9551c76e31de27c6d304a3f5dd55c092845b4e2542e54c40af56dd94affc2a3ac70eec42f7e76d44e9b6b1ff7842f7510087fc6b48ad66a5820524f362c44d91c4ebad2a41c5537c64cd9d575f
+B = -e11927492b6d39e92b1d90eeeeab66bd40437d6edace4be32cab78dd0bd42d77ddfa7a3a8f05e46aeec245b91131dc553256396579144fa5ecfa78c1e3ecfbd6ecaaaa40a912aa6fd7115f2517d7288788655c7913c7bcdb943a4a53939b1206611398eb6c359f60d0cda4aa2281401152622b98b2a8c1c506684c06f5d9109a
+GCD = 3
+
+A = -ad9a4a185754428770f6fb5f19daa979ff4ab1c0b2a04742cbdf2cea4be6a8ab7cf9205c461753f0e56bec314ff41eb6e681e56647a486fcf4d23e6140d5b841d5c62fa329d32b71b48a9fb558a180972a4de7be4f3ba83dc9c8649602c5529e3e3d46703092bc9a84d21ec0af7463b87d343651a63e4a34e63889fa7faac6a7
+B = -d76d738de8b47601e139667b36b52e40b425fe45cf28baa2156e8c93e8416d1425c99607efe2e97ac3a55431a1e3e611bec103f81983712e506dc33b65b9c101d3e662a32acb15ab5c421e1b8d2ae9fb81c4ef834d0d3dd53537a72e3ea94c3d70ab496fce31555077152960006e688771730aabd49e1891fa1a7abaf265721d
+GCD = 1
+
+A = ac83070c4d50c5bc45fb5511030770c99937f52f690b1c49871fbbeb71f31a4d0ae2ad43f1c7881a9472338d66c074875a2a2de4558a97f177da656a971c2968473c94b9f3299a7f4bf0de3b25e1cfe2a77a6cff91db65c98191027b59981a9d28408721f2fbff06e4023824ac5633db748049e52293f5cf91c2334b710eb7b0
+B = b1dafddfcd515fc86b29f138ba67f7370e729bbdab2c7c376a00ca9a8025c75e686f9cc6d5bad85ed6e9fefc670a5d48cb8f974d61f86ceecfc2fcd1ab4e1f96c74448541f8a59166c16b94df5a0b70b91c924ba587b71feead48ade625a5bbba996cdf326a2447d0dacf78bb273740e29aa230876c07ced7d9bc26fd51a955f
+GCD = 1
+
+A = ae247d4192f3a4b8b47a16d3864c2fbe49c5e7649ae2a184ac07726d85e0655860901200851bc38896ac68fae2f458dd407418b1382ff6c54fde4ffc25d52c7e0aed16140ab5bbac4ee3c098900d2f844a5fe5f14cc011f275701804d4ed65aff3adfb0e94f1c4b6154a4c3fb6003446b7a86ef71e196a6516cf05a93f195f77
+B = 5f0115ff2a4e71e3d6e78fcc7811e3e45f645cdcce2d384529f9e61397f527ccb17372f38881b485480de01091f9fcd2c552f9eef9b0880d7ec6357b4c1deaa40de9d501a0901e7f7165bd1b207d684f7873ad500aedfada464b2a8a3fc06e24c857e1ab41829274138c98fc28575b2f8270bc8f6145441e80d6f0d0c6637859
+GCD = 1
+
+A = -1c07bcdf9d2c645b8898d9304d9d0fed8289ad52ac993811218755cd2046dd374530588e8d89941e069cea4bafa695bc97c72029f6a8656ac164f26a42fcfe267e73cbd377a54cb97a716680374cdf3ffe246b4019f33784aea178c05d3e767a68572e8eed84fef6a6bdd3489ed542b25beae08b95380e5aa885b3c59829acb0
+B = -dbdcef7539b68c55b20fb50689c2aadb202b77b70597f14c4e21e24d79ca682c3ed0e1a7b3afea0edd6720deab786da11ab0f24e0402b1e3ee0261ca92ee3224affee837f60b8c95a5103cac40cc5fc6865a17804aefb3c89d403459f113f118857067b0d3a9df0a69780b3223178ec30f8963906b7941ecb515dcfb97e8826e
+GCD = 2
+
+A = -baddda78c2d2ba19eb82a3850eab8913085b31582a2832249eb6c287362e4c1a47793a03d879d479461f334ba3ae521530d493e0f3a47cff732178bac5e37b452ffa2f8376df8f82cfd3dc53e0648bbe2b7b357962712c0beffa061aed5741f8a51ff79c2275ade6b9c8f168a1f1a13c124843ec35349b9997a4fd144a030907
+B = -4636d310a5c1c442e3821a7cbba1d814a8a2ce7a97faeb79c7a540c57717b91bcb833cd72a8b5d5cfd0028baf655e3bd6315fc580841d26a1b0018d7f4121b2289979ca41b19791e867cb543bc8f9521bd4ee1b277940c9077afc1d467982e3bb03c9089611f02745199df542d5506b2d9a7131fd09685730685ba75ba695268
+GCD = 1
+
+A = 46baa49c2f7728048d9f5364575b62b2f63b7b10155cd73d7c5526996760603634e50221af5eb57b8025d93771dbc180d6d1eebda2b2b0a25b9755e1c401aca364e9a1e740e3d4b4bd14fb104d450c610dfbfdb11fcc0811d80846cb3b7e19c9c63474737e971e31dd55b6d24615d0c05a51e3efccb3c2dfe36f5b9438acf967
+B = -345016d699e4a527ff4e41f7b39bc28ed4f3a0b3683ae41027ca922610df60287bd05fd7010a5a0e3fcc393e8989b4274089e506b747cdee159fd9c2de53fd892dfff8f5c30b985c980568bb0d5db08a452a510acddddc3d69f1ed094e3dfa17155817c8854a2489d6f575a002375fb09465822932664913ea1bf4b642e0ddc7
+GCD = 1
+
+A = 523d9a78bb927c32264f235207e29d7cc7afbf3257c74421d1d29cd30e2868cca064ba01d256a04a2b6e36d8b9ecf8c4a08a966a9d3adf4404c3f4c780a39d539efb9699626f24fab7042aba81bb8d6a6b49ca08e0644efe3f3310e7ef582cbdffd6b33f873b9fdef3406d06278049458d2d600d47f3cbbcb909be2813f017f7
+B = -e323d7fed66a1c7067696ec71cc338c8eef4273988ca844ef32b2d699a281b795765b31c7eb9fc613567a8e369438892350a6c8dcc2c3031047edb1d09b12534099e3339a73676a225f3afb7fb9fa3f07f928abe09c01a9aa1f657226655935f30e8645c62476f75ce1f61ed3b7ccf0d1091b6e51a2b2a7ee2756a64b23b0a7a
+GCD = 1
+
+A = -65af147cba476771db1e57a7b371a81fe1eff3735c2beea08095e1900e23f7cb03ca9ec3482e8c09f5f82c5db5c787133df367687744e207c4e022463e474a48cd9c04a9781c1f70dfce111d2d7707b7fbf221e9dea7d873bb6ffcf53f336446ab03276e5a5e077bb61a89e3e789de2dc275dccbe56225851953a83f08d01e67
+B = 62a1cb36bd8be8f8f9158a598c93a34c1c4fd845cfc44c1c328e19260d855da650d01cc0f3ccc398fb8845ef488c588738775c1a1f7c8ab546f11e33724f590891a987d554bb6f349ac246a7d15a30157eadaae4556fa97fb038a74c0c67f0c4bb6236852838963dd1237ea5479b73a37fbba2b6baef816d3cecb75736155ee1
+GCD = 5
+
+A = -d58ab10de058b1c1807e694fb50834e4120c903660155dd34ec6c6138367cc5a93755f04e611e993194fa4f400a9eaeec637a184773a4e17564979eb47f1c34888a6ff6e2b2ccfb1451e89d8b622f82c8ee28152b9bc5905ebef33aacc9d20be76205f6c301ff68ffc93b1a6ac6a27ab5011bb0b8b41060011a70d2c40704ccf
+B = -db517c29a3977052e2a0cf6804ab1525f7b5fcf1edf40c1cf526756530e6c1079e594cb604e67ff387cf30098fc3c51e202c257387f19d8f1478ee9e2e9a69a50cc3361e4478fe3740cd6aaa221c8ea0f87f7252840a61e0289844d3c84f9f7a8c3c880283e8a22ad2bc2a9ae96547706b1e33c8c020e222e2707d4507ade472
+GCD = 1
+
+A = -7e18b8dbca30e7dc908e2acea77629c16739d2ed248ffca6cf89b0ec29fa910eb30109e314057bb1e7c3ad4655626ab7c3d8f6e1febe092e24d0f86d78b8e2ee953f7b46be1ebc5b5c72729ae2804d73cb84f02af042dfafaaed3fb9ce280549b278557ac502d6309ddc1ca8976b90416bd785547210c78d03f62b19060858da
+B = ce9b6409cce54edea5bd5c90732dff0347fbe948c75be56f4f636c5269ecd72be8fd269a1d35d0ed3f3d2d2069524f7dd24fe97f3233a2fa19d373e718896789e5423ad9043f801274e66978c2796d190e1fce24f3846711fea654326dd381314ca031bf41fe1d26ae73bc207128bcf67e380108ec09dd67c4a6b9b7a227ef08
+GCD = 26
+
+A = -c19a98626ed1ad7c06df22a846d15e0de0cc5cfb5fb2034fbcc05a42f2e5fb75b8ea200ed7a797fdeb50fbac99db28328e0e9bc621f0fe1f80adeee80ecc9ccd8fab9c3e68e871373ce4d271e7b0a2e106caee1226df33fe525e7e419f07a0c003114639a955007739b7ef399f9cc95974789c0aa364653ced2bf82cb4ca55
+B = e282d29832833a086fbbe98f43f257b401ef1aef702ae69da86a16dd148c7f1ad5e9ba5cba2efe61624e4388a275bd91603d64f841f2db1e957f012f08bafb448d45990edb35e9b45a35898a056f29ae9b8df98e276d5896acc3e0170ccf56f61f28d046ce6d80337706b9bff482cf1f50af881be29ad55144c61e50f60ceaf7
+GCD = f
+
+A = 1ba81942b49375a5dfc0cf3bd2767b333183b0b537432b937b939f792fc73694defce7c9f45b5359a8e096e296fa5cb6806d2dfe16fd0e2c1c3017b6bb8fe1cd42768db5dffe0be6b1a4bf4b3825db1f12792ae78c38fd3356d97dd668693b29a4f8508c7d791a754dfa64aa512afffdd8cb8d39fefbe4e1aa411040ee6ae64e
+B = 55699d1411df1e559260770362f47c9c717ac59fee03a4e9daac5d35bcb1d8da656b794dbc1c3adf9102d9edaa994281dcac2cb6a1feac8085c15aadfa95ffc2eee95850ef3b449ad430ba1f12eb7d2844c58a9fc40d356b2d0e85a76abc83ad7ac7360d4c4bf8575ce83a0a6efd1ed07276b04202a0e378c1952d4c05f0e9f
+GCD = 1
+
+A = 6b1c440daba7b4ff5842a695212129e0f22d652c4f1320afd6260c86a1fbea8d9da9b595029b5031f599fe605f6e45c8ee085be45213d93354a7a9f1063218f6eba3cc1928d4bad9c58e3b29907e3f33d859354dc35bd2052bfb1f73b388031389a1d52e0d7012fef9c16fab753b8a37a18ac0e1dada19e4a18ceeb9580d63f9
+B = -38eb0946cef6fb3501cef13845cc1e41b5b29db4d522d6e750cabaeb196b77812801ce973ae94a6226b76487f8fb4f7c73e4e4f7858eb923460604046687295a0cc829d34106acc100d88ffae5efbc957cd870426d5dc7dfa7270c6cbea6d7465b07118200ade49d25a5b73974202f28d49df55c724616b431486a8ac686e978
+GCD = 1
+
+A = b7bbe000c2b7b01940c9c800c485940db7e118f9e9a8b4cd509224dff6a6109df506921c01cedf12e3a7e94d0a6ad4b26c4b2da406649bbc49733fce0cf83e9bd3ab3fbc61c05224e4fad7f9ce9faed8ed8c810ec83d20622b50e3cb25c9da8edc281037e9683c3be507cec88316229a5572e9fe51392caf8d20a3e19f513497
+B = ab3cca133393ab6f04c981f63769a99cc584b441a07cddce030ae7d8c29be2ecf438840dba17c7257c598ed9362b3a6ae6825571b6c2371e3ca9ffdb46eb0928e8aeded6724c182434e7a6b1c9e785f8d0b2379d2b065dcf520b7d039f58036a15e494011083d7716e87b87027cd06511ceff22c89aba346544d131d459ad4d1
+GCD = 1
+
+A = -3a7671fb793fe4f8860dd6f1f62b2f2e3eb76782030c8ef58d1daff67b500db263b04c93434a6cef6c0c8717f7a1f0b9834d684cb5ff08827811cdd85d2dee649c6d5503dbaabd13b431c79a1da009d3f872dde56593b952b09f38b2d31ed4ae2d552b6899b88633cd25c2b786fb2946882639621f6daf947e3c0dfe962bfda4
+B = 8df16704d43d7a8cf3dfcc4990112db53f1347a0ba589bd521d57020b1e4c32acd0ab1fd5015bd17d68b98f973800f1a5af0cbecad12f3c8e94f0569f7b068843bd09da9c462c120925ab8e0f60569876e0ee4dc089c1b26a8813caec057f0cb153371497fed5fbfb88494509118d7c24b18276e7c863cbfb19e837bd28f09d5
+GCD = 1
+
+A = f699efd4f6602bf7a6ad35145d8378be44215098ce9303084d153381281a2d2d01c7704eb430eedeaa9d80979f4728cbdb69aa6a39f6d82d79480260d848faa76cc3969907bf77c4b95903c67e9f3a41c8b84f3f84d1264fb7a96bd0602fb327eb1ae8b83c49468839d44516a40d6b17f8bb7b721e756dd94112199418b91db3
+B = 68ecbb6460d11e9937b1ae0622d2598c801c77b349cf27d69fd4bc56b6eb7278195ce9d4f10458dd6b23695127200372d9eaec0b86630916ed52da914070ea177ae37ac31e8cc9096495a2221a27412b75e6deac4ccfb34d8197798272b1c31a1c8f120a94b8d7f6fb746259810f74a97bd40116fc0c33b324c2b75b58450eb1
+GCD = 1
+
+A = -eb2f190429e4b06cb8f0d2dfbff6c1f9070b7eae8a124aaa3fae7e5f9d7f08dad78c0c64fe6c7548b87d56c75bb77825db8ed0487825cdf526eced4454d0c643428298034e908a8d85dcf42a80c35834c153c7036aca7d7c6b56f022e976a37dbedf0112aefd5ae6db580be2ec8c81a0fe41e7d3c2201a784427374d187209f9
+B = -4a94e4ab9d10647c27893ce721b326c91fa18ee518deb6b52beaa83e60ac88ae6d7f01adb1c5b11099c014ec9bca3fbedbac7342ab039b35c26b2b037d2598f5331e49c02ed9a75217f81bbe7f83ab984c0cf1658fe4e7c92941fc931b7d033104a090280e81df6116b20315bb52e6be2efe7c28442458bb138ba49ab23f3386
+GCD = 1
+
+A = 5cf919191e7ce00c2f65e95ee0caea264132d72e45bea8b5b60dd80c346652d3fa8842d02154375e32a59fce2beca66334b5b48deff06ecc5e042c1d7996d36c964e1e21fd70db4ec41e359cfbba081835a726bf5f376f2f3c586765f34b8291ff92ba84f10a41dddf1ab7da9fe28e11176158836e5566ca81e991f2b23ae620
+B = dee4170410d1cbab945a5ab63d5c92de054d3896aac9d711bdc7100a6bc069ae2fcb4ab1bb6880da239cd69df3c8a1c9eb0431393f5b53374fe140c5c71628ee5d66124efa4b7006cd8264362dd75ccb04899d63bee78ab9ca7ff09b8dba43acb1df1c4476120ec837c0d3aa2fbc5b84c356e14a2be3e90d360363888558f39
+GCD = 1
+
+A = 915743d518c5b65a1b34b0b5280aedf5efd89efbbc6ed35df99e05365a183891a90a5d7d32f4e1573db2d9dff242bc9a4868d6562b3475e2bf1b5c78b998774023a8d1e7577757784703fefc22e6f70a40aa81ca7eef8ab8b0eb169fe9021f3a9cedcca76725a4b978eeca820965fba42f5db0b4f8167ec6b60d18af55cd8d58
+B = 24be1aa4114edbf7a8c69111d2371558ef441316cddee4b76622a611c2dffc76754d967d49b0b2afc14106c38c807c0734145d8fdba17b03010d696e3ee8d5c19b09eb924a0c025d21168a9033d60e185cb288a06b8164332fa34027612214fc7fbaf1c32d0852305753b5593b9a4c232a746cbf94552659bae327e86ddad9ba
+GCD = 2
+
+A = c2c0b86663a66945321c3fde8ad5061f0a141f876850595c36d0ec2a051a459303d3056180b97308416116a8f810afab6a2b77e02b016251e0010a0520d4f31b360945ec71d984b8600a2f7e27d0c37125440b4f537de469c2b18e811d6eb63cce609b392ca4b3a49b2bd74c2badf748e574cfc0a0b2298e374e58ae8fd0d9ae
+B = -a8299dcab5e527b8300425b251ca07a0fa2cad85eb8c5b9832a13b8266c8484c41bd5e62396d5b75dae7125fd82125a89c706217bd32a014908ab36d8045cba667407717dbd853c7ae0286788715ad909e6340cde365fc4abbfe9456f901b980441f7794279fab6534504e17ba1fc10172ec4d9e6dfedb1b5c0d981e42c1efd3
+GCD = 1
+
+A = -558312feb60f77144171508b358b8fd4d962387d9fc6c24a3760df8fc631e24174d8d9be376ccd395833820fe3492ea37e48c2036e099595c850ffc31bea2f7824e67101552360f200084c425c7499971156a851e5c7f36386d3103dc9987257f9322a6fee94b2ab45330c2e654964c5a3c3d8a14a24ba787af4cfe2dd44273
+B = -cfa1dec0499709a51f57c0f4231761363d18919c92dfaa950085492b76ebc4bb8ec7398a78416e11a9894713621cc4076725756c5c143bc64c03c31c5ca8713804e89503b9ffe477ab3d9c9842d72d93f78636f6fda43ae396ddbc4ad01a61e50d0c39ff922ee0c8f9237c522a1f0af73ae699734b4adc24663f5d3479612b0f
+GCD = 1
+
+A = 24b50ac79018938e673892d1bbb2458b8bf97ddff749c7d2f25c7d7689dd18189c879611b6406dc2f9a9c6cbde9d3d4ccb1930c599fa1063937325d219524b97d2afadf01d5e983d8c8cae43aa62b07c90653549e34e221d70c7c32b404274145153adea759f2db704b510de1a8e8574db95e768a2bbc828578399c7b7555b99
+B = -c17aca09336b02e6b99841cfadbb530bb3668370c30b0af1fd3df5254a2287df44a0d952395648432aa60c4e3a9bad26b14c6c32b50f5bf3da39bb4d2f3de6309d75262080deb9e52ad0d6e690e51a0cc30c131010912bf45952ad7155d271f9f50198a37e283be0797fa5d4aa446b2e05eddc5ac7e5cc24e4d3a27c0ad5181e
+GCD = 3
+
+A = 219358bf26de14de7a281db1c579d17c1385945739d9160ad92078e108c9b177029f6a6bda96a747cc9edcf00ac1fe05c709c4676710756109e834d5975f3818aaba48e142953da8ab5bee5411af26c41f4f59159c4fe7737015729bb1f64d07e9f883e445c1e44636b26872039990bb0135bc07457ed95ad88c65c33b38b022
+B = -4c8a5ad09afdfe6c86d9f1ceb1d63bd42df742c2170ed60386be9e936ff4fc3ff358e444c975d77eac51e112daef11c0106b95856fac4980840206f290f3ff8d869ff82d11d111710d8bafde4c845e2dce269b6dc1ac61b46d6862a094b9434647e5847003e17ad3b687083871fe1f49c400b2fd83306ace5a6c0a9e2c907e21
+GCD = 5
+
+A = f6f8439fcf3abeea0ea57a71bcc7b14b1d977baf4725362e55e48cbdbc79f7cf62881d9a3bc6976ff639a7148ed023935a7dbec412db76fa4ee4da47b715454dcf1316ddd21886ec983f58c9ceca40c55a5980a1958a249bdb0c8920e37cf5aa76f9df2206962b68c4379f9943de8b973990b6face5e94f169edf058309fca8c
+B = -f16353a82dc0880c8e7600b87cb8496425b7e116726dbfafe06bd92acd069e74e08afdabcd69092e0715a583034f4a2d70cb2e2b1f3584cebaca113d233d28997425931f371f5cbda04313df3cfb20f8f896c18bf157605a05ee9f47022f8ebe6078bd24b78f9df15f293af4f524bd558997e6d2ce137e641508c7aeb3fd728f
+GCD = 1
+
+A = -e9927ec088b4dee2b3b147670b6b6e7adb582faebadaa8eb3f6c2653fe7d2d61a0ae5c09479de746ff8b9ba16ef70e9472e01399ff87694584b2146d663ad6921a3f7a3b636b4ed70c166280016203591e68133c243da1d8aeed40e6fff7da11ea84ac04f7663ca1d9f85f342f7bedadaaf4aab167836d571c56a73de35f1bb5
+B = -6bddcd7258d73fc1dc525ca6838dd6b0767998e11f9eda2e379ca4ef315242f4b726b3d6ff700a164e9f87d4d2a910453c838f529c5ed3e762f8d1581d2c3259322290f43e990c3122612e41824c375c7ad6c743c7899b035e43b34e4f375855187ae3ad3c477f96a7610403b92be34be1421d84c88aabe9d99d11ba5a5530b6
+GCD = 1
+
+A = -f150dd297f1ece05d8a2d67636737d2d80626aaa0571de64fab56fceeb8f297625d1c0c46cd2270eb2da105e529ddbdc56228af7b65cd2ecf166b848768be6c9bd7da502ee88fff28052362a6696608dfff05a8f21c087f0cadae4b1b2e14ca98089000f78f5dc0dde8c00858bfdb9a08fc5c52763418aaecde78f362c796a9e
+B = -c14c3208100dd43ad41dafc6a2e5b8451484b54bb30a49489239b2aed80c954a1c9cf78591c5ea4ba8d54ff2ebadd86d7dd6bf3e7d19adb4e6b0427d221e86b70b902ff6765c91ce575a1c6266a6e23e85e728a08798fa8a5a5589389b03f66d9ecba5b59569237f71ef7991be340805f4bb04f4a2191ec2d3022c550be0b71a
+GCD = a
+
+A = -a2a491e9040953e5ad41a12c383623debf2d085cb7b11e99e1618d17c393ce17c0336cf60214ecfc96b18ead55daca28caab9c6ab38e90c1d73ab354298cfc2b6f89613f5d85ec6a88a8f5fbc791df9a60ebb81c564e5a133d3120725b7da543b0e1a7087d59df0179f5f4f315074253717e8140239d95eeb52c7c096c723199
+B = 6106a637f288c73e88fce3d93340096b03c76f95bed973a434882a1b07f64606922c2b01a2b30a6f27375b30b00ddecb2aa939383c8df0832cafac0938351286fda0fef558d9a706fe7451d11255859c984b37b8eedc43fc597d969a72756ac1faf3bbb478f17c6fb5b4dab0e398e0ca6a7b9e152e17e01f6ead8c7fa4f19e86
+GCD = 1
+
+A = -9670618aed5148ea24541bebed25ffb79681f909715c72622cf7c73401154f54f15ef6f1100529fdc1f8716ee66f6bd9744fcafc05db87f51e20428cf65832e3e008ad9cf2ee313d3896344188f4a0a2b569d34534d74e02a550f3531da78a15904414e384a3f564d1ab92046198b70348e958090c09f23054a5a5e8feb45d21
+B = -803ebc2bbb62d9ad33317a89d891a140d4a62913fc0f13b4f9b37cf7178d2f5d201ee1f9a13d682f1e2627bcf379cbead3321951e38efb39fca9bfcfe3729192535e1424cc4d0744373a72887fc06e8221f6232ba9b7243feac70aa97a32ef93aeb2293ab933d103eab2917de36aebf8184550984f8cc9fc9cd660f8b1bfdc5b
+GCD = 1
+
+A = 7f7730bbbac5c500ebef32d68a3c12fb94387f8ec962acd85c6ced74709362061d3334b545b891b200f1c615069c666acea78b293ceb1d32cfe846911cccd980e5a25bd49e767a63616bc7d6df7523ed30a9bd8cf807c59cfb75d5ec296f78a8af99f156a61cdeb70da0d7691ff6824dee195b447f04a424ed0aeeb5bbd60761
+B = 27c093cf983b9c55b17dcb8561f85da15cf34261992f7eb07d61d53c1db5d697a6de52629a90628865bf3dd0b80af571ded7eb9c5a569505dbd4f899697abe5d9675bfa7f5e8d460cb9afd9a40b5f28ea0a0c4d655da45f6246d1431c18084d5513b4e1563b138bdcbaf738968b366114b3b58b1c14f4b7f0ee6fbbe5bf55b6c
+GCD = 3
+
+A = 17a86b2dca7cb017dacb7934122177bc14a3f93ddfdf4b0542dd55ae4aee052a60f4f5a80dfbbb13ce17cf3ba2296dbfd205c2b72b497c3611bdfc0b8657efa10d1ad559d6a6d7a7b7b159fbb993ba9b9a6b10b1ad4320e175bccfeef4c51e79eb133239a85be5251fe1ef544820d8b1e50c8f47f13009c267e13b550b87264a
+B = eae25e90df4e0e9aa81c72d6b11cb17b43a36c9bb544d12236ea42bcb681ff8f6a96e574cf43fd4d7eb8e98a10b78cf3c7c173470965a2b188b3d20181c24f555a692dc19ac0ec4d68cd9f3763c9d467a6f0bfdac1bb90dd4bd264fe61d6e67ac75a4a46da09c23087d6bfe1967db5c71801581f74bcd983052345f63273e541
+GCD = 1
+
+A = -290afffa7c9f4035dd982a856b2173887f96cf6cc273e5372cf10d4024ff4309bcaa17e1871d354e275c9a54bf0739b4a3b6369f7806651f949b9fa5c0f5a838c5098dca2d9f52ae387222541b1b4cea8a35098f2ee8ac7bc79465d19600706e0ff555e7055770b4dae1f9ff3b1c1fbc3080084d6542ac065099f1dd5ef945ee
+B = -9d6156e9541dcf6e71b769cc04cd6919e6daa48577bf2f5e433f98420ae8cc8ac7caa2c7167e646f6c3725a250b14a123fe6c3e50ca16361eedc2109290ca924d2bb8c631cc7567b870b5896e2a9155983a33a5b686deb86eec118147ec0e84e3214a61cf8cd4f394b8879d56cad4fcfd34799bcec954972d1128f0a0732e279
+GCD = 1
+
+A = a587028f54f34472345942f4442f9082f22ff0851dfb06f8b450507f3d50d3cc9dcf356526970a0b945cb87964c87355e4fef9a3e0af7c2184dc929554942fa36e338831829c154a4e3a92451068c797e92ced73a1f1d5719863ff6f2b240f26933232adb514433a52c1f90a414ac1d177f50aad6672913b836fd5213fc73925
+B = ef12b0200d540159c923f152e64aaa59a8af6227cf3883f75a6f0b377438771c49891ddc4859122480c6f6f1dfd7806aabb44f0978f62f76dce3a3ef033a0bdc3ac7f6e27ae2ac0d7a881f369da1907a5627bfb1e20e25cecb4bbe75d97acc528507f7a5c8104bfa6fd7d0720ba4355d101e91658f8b65c5af90867397765ef3
+GCD = 1
+
+A = 5969fcaea1ea024f5310dbfaa8a441e4ce84351eaa6be8dc4f13513681b2e6c3a224fb8f7bf7a2bf41b7843fad0626f21b07d45ab6abcbff554acb2fb2e4ec8527a93de44fb89781495f557b17b671b1d29d313cb4f83b418b19201e57c821d0e9736a30512895c69f790a719820ae161acc1932aa562f03109c64ea2e489c7c
+B = -fc1725597839d78f679b4303dd499b8c72dd44e438bf894517aca5625d8a65920b24b4083caba2980fc4ec4832bcafa60f5847bd23551da6f7185120d4daf6a459221dc3b51f191550ff4e4f3f98fa7c3ccaac897f4de5277e33cf082332d83c58224105d0e734c0d5cbd889c16afce9842c3f57a765333f5365cbd0619bd7ad
+GCD = 1
+
+A = -5c7615d07e8d7705a409672af2d017d4c3e722fc196a7cc38e14d33b54b6352e5610b31dc49685ab4dc8a6d212fc22683cbde6da3d4bd2077cf85199fc5b0a917060d9706438e6f51d10d3a4f93590679111ceca9c8b0bbbbd9b11a61e0f4ea060d8e78973789cefc04cca2edc82033426761dc8b69d9d63ce2a1bb1f89aae64
+B = -ca8d899889f95f9e7540453465f532de8509c4be96a5180649a13031ee3cbbba82a3836d62e2bf4957b4eb24f72d3791efc3dc6924f6ad1638e4fa98574bb139fcf313390ec5069b7dc870b0c4b91efc59a3c5e753c84938eb3a11220778090f122eb7a80b72434f9f72f9c4efb62fe5f8ffc62bd4479e73ea4de411cb4ca2f1
+GCD = 1
+
+A = b228a5dbc8f0fd6813d3e2e0ca3faf737a16da9de30136baa25ece4d18efff8aa8f058b622932ae86b7dc3834d4c5a13bb743af4d9a6cf930abe093a3c13121ba884ffa8ed432bf5530a32f35c74c59988dedf597f92215e77e688b86f8830d3b1718ec1fe98e127243ce0eb8635e5c67ef5298fbe626e5103801d203e5ea68d
+B = 5e8edba6ad295a9ef6de64e83c0a2912f823a26e0ffd29b2bb35ce15d96f26c5fd7d9d458add5ae4fb322ede40be5fa80a3813bdf51c531476e8eca0e510cba764708b22efdbee1c593ba9bd172db351a9e469bc63494acfe4265b59f298a5e7ee943421bdefbccfbc50beb3a4f0534276c54b9f92ce9b1a81549cf0a752f86f
+GCD = 1
+
+A = daaa9df87752053815d2869858a9d90d78c0042797e09bf1efe128e105b8ca1dbd2549fce28d301ac3c207c5115bdaea8491bf9bb618a7a0c1c5dbde5b42f67a5bd7a4e041af156ae8b93bd5b01204322e0c9ec0eede44a4e2652d094805af06fcb2657cbf725548656ee5e943621ae9516a0f4018933003d6b5e60127c00802
+B = -9ba0ad4321b1bcc6dcbf4fb95486263c2d9f91e1d997216538c6f29c687fcaab2d31f8b948d2fba1d932c613c8d373cf2bdbfcc8a7dd08652d1c3cdba9c01f8bdb19534b1194689c361aa69ee8cd735a1e181eaca31750415e965c0f449e1866d3eab00c07590c5854639df4c425e8fda3e97c9d845f0d36a57f46486b1bfb41
+GCD = 1
+
+A = 8ce527e4f770ddc7717e4912de5549c578841c58f0e4b1976f7aca919aac653d5f1a204c11adb28a208d25c01c630d04181ade823140ddd43912225792ea7f3d902d9b2f1ee76bd29711a767cca7c4dea535b11384e70f3c5bc86371aede57e1868274fe971f662977fe3ea7271bdd296482b2b76e641b59aed3aea4ab04e994
+B = -e4eeda96e60840ef8a2647b16f84ebeeb3409029385674c276903c72362a2cd2d55480df6352fb67e63ada4580e31f3bb9ab711ab3b7288c968c6f9c06dc8f3cc7f9fa6383f90ddb82ffba8bc9ae0d05c12b7dbbbb472b4ac19d0f8b3b55ebdde325d80bd2c793fb47e4162d6b8ec1a5aa9851b169782ad4cd7d29b9ffdb7733
+GCD = 1
+
+A = 4f7483ef99d00c8f779d107e62c0898c8ca09860f2a615c9b6ed56a14046175e259cb076560b27aaccd24049b284ab75ba85164bf16b96e02b6415186fa50d33d8335f85026261c6876a45d5deb91a3dd619944a6027fdfc7fb6b52ced11efeca79ab7443f9f9c43b34237fa7c4a7dbb7d1bdf91691558e4a108e7b6633a1237
+B = -ddf27c43f25b08b9bc961c16bb5869b4698c6caf09289c41ca2caa4d7128d5123ab5badeb19c5b0387e3ba9151c5a34767cd9b98ac253901a83301ea86bdc9c6eccc9e844e0a5a62e623470e296f16c563088e512dab76d4de55b640d44cac67d091675958e5cfe950544fd463bb7b2b94a2cc314a5364792c5ae185310e6fd9
+GCD = 7
+
+A = e1eda05210f39acff8e3a55f0b364e9800c94139a18651f263ca80cb1e2cd9b98f1ca7b13bd74d7d300b43bb4ab60e47476640735caddd9b1084576453089b4fa15d76a91a6e04b5fba37573d431ba208f5da3f5bc247caab959cbb1b8de7e33782f5100bdfb27449d0c7d1e4152b411c85dfc4c1ccf915ab0bccebaa05f4181
+B = 409fa219d89403a4c0bd7006a89a729e94745cb5f5c3ad966fa42054af36ea90d67edc26aa83ff7539f45fcfb34879ed4c5c2b91ef0edf290cd5c71a72ee749f319d0433a1b7f3b918d60c8530282599f205490791b36f157716e24cb8e908ac19d1b0ff9da35bf8bcf886d4ef032de77626390d8a02d62d99fb901a2ecd4aab
+GCD = 1
+
+A = -52bfce0d65cb325ff4f39608d61eee613e6ef5359bd64203811b2d417c108af3d7b8d024df882f9dffc4bf4104689bb4d8c9f31846731c883de404e23c5f8d5adb5f86c3a6d1a658e577f0bbce73001ffc35816dbeec761204eb15fdcbc2cf23483eb86c6b9e8437190ea25e0a38a7e80109828d357e0528dc8e393d4327d22f
+B = 34e064103d80cce850df60680f73c4944176ce061e47d1a4e44876ab01d76a089a9adc54de98ad9ece04d88c6b3af4a8460b2d676cf4ea96b2e245973d981112ce034f42500a30d9de3454012ab34bcc5f0d5245dba2b26fab2ea463f6f2a5aa0f0cfb2feb1f685eb220d6e07fbb30749a9350b30972622e28567fcecd4476f9
+GCD = 1
+
+A = ddef3849107b4d977d64bbca913979ed7ef5df6c6efdd9c3d72c99d29f45b07924b045b6cb4c793a5e25f8463e133e1d7468575a020491d15bc9b9b9b7558dc0407b58cbe5ef05055a7847d21a02b9294dbc60dec0b8e3dcddd5373c887a84c9350b2d5c6d8302418bfb4fa298c4e10ff770deab9bbe42683c66851f596749d6
+B = -a3c801853e4a2343936633546e4467d422e70e2c6e441c30b2573d2d18d38fb2daa2fe8bb618c5a0347795578629c1594d261c7ff99f5a2dbf3471a3d87f4bbb97e42dc606522f04df941dfc18afeb3cf10d1eab9fbf53c5df03ef9c52b392fce4639662e2f7d64e46e29e27dc044f9a7452844f1cf3530256a08a49c57afb68
+GCD = 6
+
+A = 6a11eba63ec3cc03182a5deb2cdb3c28ca38c77f15e872b7da67d7f92bf39cc25b229dc6d0df32b41917395b3e3fa5d6a8f507a52c0e552f7d6331ec9808e60bac7cd76f6ba9063a268e73cef4181c025c796b370bdebae04361d86b11cdca768bdba161bb22b40e753f1f17fe3371caf442d862e1046c079e8abf0dd76cca19
+B = 6b548fc229f4e6948a4501e5a0c9ad28a10e5ba3db8b52d300c8fd88f3ee736f84dd7d4eb238fc07d92482eced7f972a94c6a8181934975d924ca7294e39afa9edcae2e14811c676f4d00aee7fc8da8b0a5cae07850a5506cb7f92dd927f62b0bf054a9ddf7eb21d33e59b25fb981592d8e9ca8f7edb9afc75ba2deda519a89d
+GCD = 1
+
+A = 85b61531f5450b92f78aa7a508af38d8742faf288984dd38390d4a0bc65c10c57cfe7121d9cb027ac57c3a8cbe7a4427ffc02e9cc0e492a0cb085d4e47007beebeb99e1c42b832ddc5f823edf232f750a847477c57718dc4bcfc7a42bc3f9487fe37dd1abd3b929c40854e6b7011ff861d6ba0fd38d6273183eb151fa4cb2ae5
+B = 91b3c92fb7ad42b8c51de1378eba3c6352eea245c87ae377587c8049880470ed09d55f8f32c381216104683ea7bc9b29d98d80927330aeac72ec55f7de1f8e5e4de650ce16eb20b2140c8904f6c062598e045a199d606987871c18987cf6759a56900b484f94a842b0071d830005987d8416d38d0a9023aea8fc90534fafae4e
+GCD = 1
+
+A = -7a0c0824694e5437bae51697b12e3ab3d61ea73bcd8f74334c9dd03a36469b457eb0fa39e60a37456e9c1d1791b21da8b63f0b66f4a6182b5f26db5185357742375a25f34e15318647f92618917ec33296a0bd2937e3a16dbb70d6ae925cbedb9918c6d500df98274b312876a08f8dc78609626d774292922c5eb6879278f2d
+B = -fa1e7d2d1a01ce735f902c862dcd34a95f346ceec4afb6fb8db9cd33d542938da9a4a6e152c7ff456fac3cdb2ba05fb75f84dc2e40ac464a36af489239ca6666c919a36b50a62ea1098b4938b6294fdb2978627b07febaa2e331cf27ae287f0c6587f94e5d962dcc54a8ca251c212651e942993839e66ed73d29cfd869d1bbd3
+GCD = 1f
+
+A = -df03041c6b4ed7e36cf098873364bd1ae65c1df89e2c49be706c2869f951a5ff78cd757e2d820f0f803e5681d3563448729938ef42e7d85ecba7876f492a8689fe1a6c1f56f1ab9a5757727695a39242eaa726bccc2eaae2ce7f8f7a3c58737fb3faeb6da259af95a916d2213e8cf2d782cd9a036712d07c99956c4c46144a40
+B = -daf1d8ef715d2bd63e453f49d83d134d73463f5d795a7d4171e4a534dd903f17febde26f1c830b8c52419bd70c8536358c2078de466b585e188abb6c46652bd78cf6e4cba6d2bb17ee69a346182a0630d2711fc529beac3f1b41eb06d890a5256ce02d2f136722a21bbc77a992834b56c7ab662fe1d9bdbe7483af776a39b6f1
+GCD = 1
+
+A = c2dc29d39cb9410a74fbdf4a10ce7ffbffae61892a5947dd1ae3cdcdaafd90001c802bbda712b6e790c88b83c538bbe2965caf597458e5d5adceca705ecf3bb08a75a79c7241b26fa3a64db04460392503222f9b6f7731c83f7a24d939e4fd66d83bfaca198d3baf5a22ff8e87decca01eaa3565dc2d2dac803697c1e9d08597
+B = -7754041afea6e47febf1327b337e7ae40199626827b4c84c279b983dbee675af2c3a0e49e75164fb54f8a56e541cd5154615e6bddbcf2658e2ccd304f24e60bd6a45b1cadc5f6a52ff8639cc2613fbed749664ea5c38cc0c37b4600ac92553c2330ef7d017f7ffc8e98faa40c0abad92e0ca88deb169e2f568450a24ee7a597b
+GCD = 1
+
+A = -a0c69dd5594eef70ac837631f479a9e1fdd6c70461ca18eeb2a2060d7c92b1c85d8684220948f69084aed8e9efde1d83b6953be5cd2f54f48121458975c94c286688816c425180941fe4daa02eed4a289e33d9d01a05e5b850931bb781d46c688f43ef473fb05985d8b86bb5d4e1ea91b3fb21945cd51c712c80e6eb3cc8485a
+B = b7e13a29f6d28caf672d386809e952c04a1aefdd8bd97ab187c80c4ae78c0425199e47eb84e108047b962def2f1b2957fee52a411305945421d3d44b0753774f63be4e2bce6a2cf3c962099c1d498c1d689af4606c0383b965bad058cfe846dd06f0b0cf4a71b972e032deb57986dbb942cc88a959d05cca370203c34a306f19
+GCD = 1
+
+A = -77c5273d0cde3d14944b7ad58f1d923ac53cf9ab0abfdc1338fd751b50908f56a2a6b90b9144805d4049f807f4f4ae836b7759e5091dbd7f39188700ea707d11c6b027a1f0120e3e54beca4a5145bd1befbe9f8f6aad41d41a0160f87579c8c79ffe3b280ab82502b9cc46715d81a06838294b360855e38db7755ad506b0a303
+B = -ed49cd8c1448a03e23dc954d065003556cf105b593e5c6786c78b9b7c578d574dc8ef456efa0ba8f5ca63a52f42e09fd04c1c49b401a585d6ff72d9565ca7d6e2ab70b12c27b08b36c3a5c020d44177e71907f9cf2ef6f5c6307f434c2f63170f74cc52b1c15c59a9f31a7eef8273edf6a621506789ffe2dce9cadb1d1128850
+GCD = 1
+
+A = -22dafea395294540fd1d8d1ea441ff96db011ed2f25b065ae237558cb48c40e60cde2629fac19ca14f6a813e83861c7b8e39eb5aea1cdfdb255fba5139dfc569f0644e529ce294640fbbd596588160b9b7812abca6a0aa3dde8e3dea982342c583cfa589be8d0af09de158d471cf1b68c89117ee51df2cac1010b837db05bebb
+B = -8b9315bbb60d86d23af0268ded41e7e56c5054af37255727d10a5bf985cdfe8f76575f25b9bd0259aeb8862aae8bd01380898efe2a3ec966bfc814c0e5d7cce720ee3372905a84185e59cbf386e8acf835a5c82915412833b32e08be47852ccb87336f4d4b797733a9d3f3423cd6ae00f6d47b11608f532222a3eecc8167c231
+GCD = 1
+
+A = -1efb3f796250b1dca388818d66b58e0c673d8e91433e75947bf911a5055b863e67e8092cd25bd83c6f321c37e781c3a74515166420b14c92f6a4f4d34ed9b720cee54851c824974a6b72ef2bebe159515f128c99ceae1611a5b67285022a832809d208ad42ee7f7e612880cbf3b93e5d67b331ec778ba38764c44e089a3206d2
+B = 2eeb33d29fc7eb0b2f7a1ed0fcff41c2e7c92455a7eaf72ba5008ee7a72ff0dbe21e116c900a7ceb172008f089b0b3e2d1dcbd01b078a6b2cd73c9a483bb038e2101735724201ee57156b8455f023e24e5692ae5e15649e361f19b3295d1aeb0ac8208292261b76ffbb3e11398037f18ace39981fdda814306692565ac2e2a1a
+GCD = 2
+
+A = -6386c2da9064c3cfe7d34173ccced22aeb2d3cfb2fcda0102859b925f2a882c6465f9b06a253868c254ccfcdb857e77170a951e6232d05967c019ee6ba4fc13cec53fd2c8226aa237d122d745d8d28a26f586fd687848bb3fc62c6702db601e5edf9237afab3acd7f90c146f2c1bee57281da808402f2a45ebdc7aa0a184ccd7
+B = -4285b7c728a18cbffada168ffeb5b5709df4610ec97bcd60d8228cb3843ccf538fe542aacce135e5e813b2a0d14374bc4054e2d11b9ae1b5ae5d59452eac6f16361e41e07481fb754bc3c07050b8601bdaf8beecd47aee0d8548d99ab11fcb3a0f22f435eee7b558c12bf6d8c0497d8788f279730fdffed9c1d4e4979c6b9956
+GCD = 1
+
+A = 31376114c9db98be5b1a9fdeb784f31ba28b61142d9ed2f293a0eff0ad64af1019c757f4254983629e3b8e1e6acd7f0e36b77e04a979ae1e37ace4882d3d7526eeb13169838f1ed569ac5eb8c0852b14c9a5a1a6ef8412573c0fc197b32604a8198c0cb08237e47460f360f9a7cfc0ce8b00a9da5edb08e09c72d7e26ed62579
+B = -88873925a5fe8b2d26aca918a08cd118d67c0b7d0f2bcd70ca6fb0ed9079289443bf21cf60a9c70f9879dabbbf76384c3533e01005b2c2a1e2057d87764751ba3ef56aa4eef8de7efe9b1d66a9fb392585756ab1d5bc3bd7cb1f54b0babe334c5d3e5cd6ecf5668a3baed7e273016d31d3cebbc9986633599b1065d7d0725e8c
+GCD = 1
+
+A = 28995270792d3997cb00832c89813bda71d0909df2a08d96999d4e5f4142cc5968204d5245f23838bcb865345ccef36af771271f734c5957435abe68f6e0408a529b52bd794377b4d386b638edad75ff43c9b885cd7fb144da38914d5224af2fc5b2cb9a9f81ba6c458e0eafd3ff79e5630d197a744065e7ee6f9f2cb0b7d813
+B = -fbc89910e2260df6c8187f4de25b38647ac421437cbdf1016bdf8a2196e528b26aeafbd265b9d26d3ee0d126e81c46f4167292404b26c7c725bb09e737ca2f2d548a78b48f720fcb14ff8450ed9a60061746078226aa6462cd0a7f19e817c19c4eb329328c1171a62526ce70e6bd177b3e650395d70cb71e93c842ee8fe44266
+GCD = 1
+
+A = 5720275ab014e106122249d54b704a9bb8ec2d0789938610a50ec8491f6782aff3f87c27741955f046b6adddb3f34935f49c775067de5658b37129860ffa515e9fba3c4669da726ef5b171f99a3fc7e292c936d81c2b088297c90f5b37da8d826e8562648249fb36af81a7f135312d37fc336a427a37311a6b9f654da58cf8db
+B = d02b7bc045fffc3f6f084e71432df357477ddc914a78b24d8cab1f5b08522fd3badc9f0e7bb47e2eee4a00eb27a592d7c1dc70d1532d1ddba9c63352b46a17fb9c8dd7cdd894d9c9c212858ab0ea878e703d403613de189f3ebca37b1a9cd9ede086538e9dd6192f4b07cb74fe4fd5d79de7164343a38abf39f51ddf1ffa81e0
+GCD = 9
+
+A = 58395882946f2a4afb7c07225eea7658def0ad1b9204954747b099b221cc8c2631e344840cee358edd1b9c33ad7c694ba7a2ff4d9cb1d89f5413bc8fc2dfdb39fa04a1e7af2381673993e99cb86c86a75addfeadc9a86076ddbf45e28877dcba9b695e72bf4993258109bc7981388ea441f00b88210fc17533882dfeb9a481d8
+B = -d089cff57827f8408d61b4b32e5a337d9b9e363dd145943af0de7a60b911850aa86ff0a28de1a5d3b15d7881f737aa0f933289ad3951bc5c984a2ff9cc55e112c607d9608eabda8826171464deb39fa93ee0fb317464ca6fc03dc72d2beafa5cf83f72ba22f6672303b134c2ba1af337fbc215ef0a8e9a2c3e50308b11b487d0
+GCD = 18
+
+A = a62185dde2ea6f61bd547596a966f2109b17fc84984e6030326ab6a3163f20bf31f7e29b49e19c1dfbe1d8d2a66e37c00fdd27f601e4977349d5df4e5ebe726b840c521b680540c1d42aa31bad3c56524cbb7892063e10b292cbcbd9795ec38815c50217265afa14304dfae3cc21ef05b654c0733e575d45d33e6c6b7206f010
+B = -d1146b0e499b53bbbd54e009996b5dfe41fff6bbecc74015406f0b5777020418c7f8a58ea5f8881da990981b5384af93d51656e05a2d50f0c23b0fa4a333a92fff2e8450a7fa65e01dcf5325398c359f34dc799a4bc55f8db538529ae6f0aeac86ceeb3d3f00be43ef5e567695cc3c0e27c652407533bdc40995e8ebc23aef02
+GCD = 2
+
+A = -19bb5de4aa684dfd95b64a2efd0a76b82525d6768bb0a1e0b3311e06e694e3f7c3b9dfe92f0fd4ce859525fc9a00655558773efa134b63dbc6246c2deb8ce1a73dc034033c61ef17a91dee0d22155713084cd9d66b9727a842a4bae96a029ea3d212ba4a6fa3227cb267b176b7ada465a2b1a2bfbf310871e537e51cabbf0f
+B = -e11c5295664395f0404b184fd16e7fe6123e2b14e5fc8a017cfbc2c712795ad08d43457a176b1042e2d679b36de4aeb89e0de93a1522bd3b2bd44b631f2c756974e11442be01eab03564e8368164c4fe9e1f5a026545433687ff44b760be40755032cbfbcfd5b66000e5fb886b9d7889c4bb4515fd3587ddf4d186cbd33a8e1e
+GCD = 1
+
+A = -ce06721af0f66ff8a3df8ab2fe46ad49a61f7444f5c2bc55cc651086e5279bee32ba2b5bb3276e83200d8c994d00a36c5901945b11a17c62dc82bbd9a5c7787536d8643a8a7b1d64efee2206f02a7354b185f4c7793b23bf9dada8984396c76da219a0e5d746f15d2fc732e3f13faee869d941d3f4b1c3b61189deb786f73099
+B = cc436e5f3db0da416928a58a03f91038c1ab8fbe79591f8e5a83bd8186a9fecdd505fda88a297c14e7260f7735dec7cdefbaf8133037d70a75416589edb13ca35d8acf7f81c2c4b1bbcf6572c07ea69c6e6868d2e3fa283a191811f6ea180432a8fd7ca9fd6278b145df4cf69afd15637bcc9124094d9df7c90b7be52e5f274f
+GCD = 1
+
+A = -229b42807581eaebcd2c60a39a22236e7a173930e02c37187176664f390461e0be5d9081dc87cb587b415714c3afb0d7867f2e0c2e8675b21e7c0001d1a6452737befcdc3697fd544d69a893ee8574887726d92dd75671167f064107c8700fbe2ad868fdd0271697709f18c20a00539dffdc40584831fdc4ce4425874a7881c
+B = 2cfe0ca4335bbcaecf265dc46cbf3ad927e05a878ce3548cef3c601642ec54d5b382f9e78d5fbf4a97a54e244c7ec0120291855d319cb57086c5f30930d816aeee46f60d356e2d14f587af6ee8c3599553f8b9162dd16f1799637798cb8561b36102a2692db2b1f3f6041c46db8a20a875968845eb445568679148707290b00b
+GCD = 1
+
+A = -64fc5e360d4e3d24bfb31d5ba75455aa4d7a20c090ebff452121462125bf587d76a3c4329578048964a419256ca61a76e8b45e343d8a026e99d0666a3891238e5a9a51da039f7a797895e1418c9b0839c26e78c816e1666888cb3c9a8457f602e1b66e631992639f44830907c63e0b35bb9cd85c87804fe3cd7700e506cf0b64
+B = -95212acf0d73ea524da4679f663ce3099fd570f9118f30cfa0363d088ebfa768812f0079cceb8f51070e07e69062613f66a0ff3bc86ed2508e02a1714327a547069a87afa10856e5491f2bcb6e3fc82155fd198ae7ac34f76d5917a0922b83d8ad581d0b76c1b7ae6a0b0702442da647c655a09833a8bd28aa89c90a414a9d16
+GCD = 2
+
+A = e4131db5487d8d350cb0e927462fe9f6f43564736737f92c245e43fc9d2fc2030fac4d319588150069b61b0c70b34501bfcfc6da6df5b93e84a977d5c5449d051eec2b0c69269c9216946ff6af96e79a824f6d2f37251b402cf3dd2f060d2dac0ba2245c6a0537ad160183e76bc6e694700b1fef703ee546722c462ede23deb9
+B = -84613155c850ebb3235fe00ee513ba33ec1e58ef146b729aeecafa9714b591b57f0d62258d1cf41d6ba5ca2af77726e3b6a5a6fb528620f33cc495ca6ee2683761aa6709333e8c47605bce66a634016a7dec675356443ac57277b3192f164b44768e590907254c705897eddd0c264f8a5ac92c020c059731b3e0f2c834a082c9
+GCD = 3
+
+A = 2dd41432ca896911f6095f28b0851b2245f75d24501c5083403455c0a13acb172ad90a2d127849f2fc02f5055aceb460f6789175db522ead8d5efb1bb009edae75564d2ef90b8b585f77fc7cb11ab79cabcf76a068fc14ee80bec60e6ca524816f57703b2d6671ae5a1a2d1e95cd6971f33a81029943c403b9678aab69aa4b2f
+B = -d8c70da65df7a5aeb580218933a5d4a9f16c108412dc19360b14cec65543011f5c37c2e32e5821626b0cfb34c6a195740ab23cc93321cc9066f9b7d188bd5377486f0638b40a4aed49340340716dbdcc76f44a093399d2760819d8be4f7e63232f36be4c78a460e42dc620f8c3b3ce3320d1e1dbec7da9b7e889d53e5c572873
+GCD = 1
+
+A = 3ee366f91752e139ce9ae8e422acc0444e05ee47754231ba9a0224ce11683c32536689d6826bc5d51559593c1106a273825357f61dd82f8cc8e92b66a20ddcc84299345b603da31866fe8baf43b042505447de6f6dec85ac9397e22887010ab8db03f59c038f98e2dc2e158ca3286be7e88705b6daac344dd14dda542aacf1f9
+B = 9b8e6fcad70b373ba1c536f36d8fb4eaa12e107d8c2542503330b819599ebc2e108f10668d565d39a97e313f28fc32c0241bb12a3bce998e3e78392c48b56ecf7f9e7cfc45bb52142dc4278b63f53a55bfec6569ffedb6dccfb2444caadd26186e4e9f870b0d817ffb8061844a587c73d52a012a147dff70676d5ad57e541209
+GCD = 1
+
+A = -e8d9bf2d06ed0e90c06817fac2280b19a3d0dc5793defc150d364ce35a5c047895389e4f5310f4ef0e60a6d4e7f58e806f75d8398edac251304990d8fe2a8d1a5e4807e3d727da89bb61db5290a417c09eb8971070028eb7ea494ac347f73376e34a06efbceda19235c9165aa218471a5c885a1c4c778c1e69e4bbca13806db3
+B = -6616157bae085ab4c87fb1608e24817e8043999b5421bebd1db2b760da062b6ca3fb3435f376f2d094fcb71df1653eb4e4cdca022084a1ba5d87bf0fe88fb118766cd988ecf52c8ea177c5077512f2895eeb98bf914614b7862041e06257a5a480e41abe0e9d6db29eedfd0722a36f01f4e6d3ae92f34006bf00bc50055ba708
+GCD = 1
+
+A = -dbc449ca5253b53420a8fe2ed301e37299f811dbf5e550565e74d8177230b229b4d4aaf745b29b206eb984db1b68d11412c9c144beacb351b23be5086c66543189ab577c5886b383ef9903f99c03e1cecfa188a4baa468b3b10ecd937165c9d040d6cd908713f6a1f99cf241ed1127d1a022395a36b937579326ee76900e4c6c
+B = f5e38add2508329919c137d0bdfbd353fe9fce70b2d173bf91039a6e52de858e5df35829bb28cf1201a13da91e761cbc972c439c3415e9dc28b0465baa8e34089757e3e0b245abc94268479d4d4c3ea4c32318b2c94163f09883e634e33dbc4231e1b23ed7ae89f6efd53f72e4635d8c06836216d338c82ee5f6ba39e4c45ec7
+GCD = 1
+
+A = -6507585db81fe5872b4204d0a36cc34af63e58e04f077733108f435e801d1e40fa24e752421afe3b4c2cfa1852a0040d5674793e9d7871c108dc00b2062e51caf3924c480b884415bee4a55557b9b9dde7e4d090b2a1f4cfa7206da8369976499894e74ccc3482e6ff641af731aa9c38b2b58690050d254c9d6c4197e6d36cad
+B = -76f11f9bbb4aede3445775e11899c60ae1595881532b62df256dc45957e7ed59e1f5a2d6f10a235c1468f6167f76690548192846519d6f060a99cbf553709fc30020cbc19f30e7d76fa3bde708ce5bba9cbbe4a9d6b6fff67e6bb6a08d85e8d237c39a707bfb62af0890d1775c29d8f1b4a3f4fc145fcbd72c5c65374a8c49d1
+GCD = 1
+
+A = -ba696a5454a099f81bed7b7376f93223720fc2c4af6663197f80c32967e0635d7687dab6ef4885a0f4218d2735d30b1dd8f122d2e7614341255799f587538efe0391e7f29694a3dcb6a1da2c18f775c472d4a4cf3da0b44e2e8fe641551732c88681add226cf69eaff9bf77b944a655fbfc3cebb131f67a13175dd2285eccf87
+B = -4ad9059704e9aaf02d5dda2ced2eda5dfbb09c2c4636d60fb59f6b98a2b2f7679f8ed6d33ffe4117730ed6bffac8cb095253451a34ad9be30854e47efa1ecde722c7809ab8113dbb31cf82288590b19ac873eb682131ac78eef1af33063174e1c3aeb5ada04616303e23f38e3f34cd01c3c7fd1e5eecd49acd469c5edb5f9f7b
+GCD = 3
+
+A = -e64fa114dc5cad58b777372162a0eb0fb52a8653546313c87b66b97009f9aee1c3a12bfc530907a345b14e355b411b0c623993103cf43a8b700d58c107057075c2dbaecf788dd1ac4a7c374773111c86e73660d10a0e8fde421bb05c8e222b52ea7a4b9b32583f7e280a03868407f3f8ce6cbcf0c7ff85b3b503eda8c8b80612
+B = -9ba4a195088c99e4fd50d27c7e17472629f1f860523edb94b7802cb43266a2c1be703e8bfa4f1a898d968c3d0f3035b6ba2dc8e44bc96780a297abaa7b6431131b773cde95f1e1cf5a762d3f9ef2cfe325e6bfd512fac136e0863b5fc4cbbdd9a09802538c42507f32d82252413cceb1048d085beafcc4775e5769c83f989bc9
+GCD = 1
+
+A = 5f87242f516387482d53cee6cf0b57f6cbf5ee7879e73b98d79e1f4967d93e1042ced4ac822a85220a0d8b52b33c3e0405667e9ecc4ca24cd0a7ebf6d5df395958e805ddef68c331c2aced39bdd6a65e0e43e13e2d641bebbe23893780c54ab8b9032e6c345aded119e1dd296e9203507ba3674c89d2e966272f3810e5be7ccb
+B = -34433396a87381c918a68b2f1713e84d4f0090eae7eb104cd160e62bf7636fd950204849e1dff8e651ecb09e5bb68f8565c6b48fa77d688f4b98dad46b5be0b9fa9e3ba39f6fc3ea41c8713a14a264081a8fe524802eb173d235334308220e94bfd0f705f6821a79557d0f13e96e44ba109f794d8f6b6c04f4bb25de327e569
+GCD = 1
+
+A = 9ea2482ab4cf0d17d35b42f231822689e2c0548ef79d2c8ad50843749b7f909967c4851ef63d62973fca1ff86c7868970b7929dd6aa61c9b7b1a3264a8e1262f918619ea751d508eb34a17561514912ef6add8ba7e4a62567e583c573297576c638f1474b86276a5faf06220fd2ff8c3647c5585767aa4701efcab61882f1f98
+B = dfca32cb9380e8f7c09a5373d0c4eee7c3f43b3845df393ac041def309d5f844df6d972bf05ddd6b1bcfdef27837caf7e3c48632d5f528eb7d01dcff1023597b84ebba422e7e2d80f7ded1f7c288cc2ff8c3efe42badfc8612db2cb0becb895f34123d267c1a3d2d9b4abe88617a7f3f46597b10847dc6385f9dc591be6f1666
+GCD = 2
+
+A = dba72cba86404083e73b70bfde6d3c5ddf9392797f08bbbd19ababf69642b0e09cd8a57d7800b9d74ab0168665b56bbc66bd554066337db870c50068d8c11be72bc290b1df01292dc22af695970a18ac8016c2e21d0c72e0981a4d2b7c981d83a7e469bfd97d205b81cc89941c6e7755402406d86967b7f7c7d1eebb5e65083
+B = 9eda382aecbb22b4a1707a4074612eb5a2f986a1ff8c69832f2dd66462c0f48cc1dbe0ad7745c9de125778afa93e609ff22e505c6a13019fcd75ae611d4fc278f554edd63b193722009f2d0c76b497292fe45a7b1b5d9e9fd14a0d7d8288361ef656a3e0a573079f0142ff5ed0a55c1232141fd67bb16ea448bb665683628055
+GCD = 1
+
+A = 7622770fb750c8cb80997c6fc2c4763c1fad1cbdb2069bf192c856c8725079c076870101420f4bb3f7a8e45a6606e0d871e3478863576a414cbdc1bdb45b4b241ea1427bee7efa4cd65b207bf0f97720d26c02f689082f62a0da40766629eb5b5968578edb1cb1a4c381dcee484fb0373d195610c8b33d709b48a6d89995906
+B = ef3caa8ca433bdcd85a54a4e9be3049ff3c4119e8d7b0e842991c6ae0ebc5049bb2bf09717563fdc39672d8ba2111695e0f61ef28afb1ddab25b61c45a085f3d7a4972790adc04c66a26090bea81a67931014ce058e853e961b440510d9f59f615dd4f6eff796b4799dc500b2b3fbe4d712723ce2c1fc0d5f098b94d09987480
+GCD = 2
+
+A = 9c24e4efb9d54bfb72a16152bb939b8ebffea3817b0161fc1aaeb92abd8d193b42ab50bf363ff56f24f78203008b722f50036844ea43757f1925f8768b2ba53434aa5d03f06542999f2df920a7f9aea4e68510f662355cd9a0f72743891773e51e88b0e4f4a73791fd10be490ccdd9d6e4879a7f93e8ab36d26c7b71eb136c9b
+B = 10e87dc04e9e395097b00ff75bbadf213c7c152757570801556fb3f255efde9d1a2f965e7470257d02af73130462a037fe4aed163744cb34adb7fe1a07cab2036785e3a915fb027077f7b9eb66be105c10a33b08d1ba95af296edf845e33520b54862c7e89708df5e31b27c3f022d78823169f6cd616ac8d040c9445c2f8c272
+GCD = 1
+
+A = -f37b32714eaeaf89ac225b055f2afaaed57e6bb3f136028bfcd18638da50e9be829bb6cb691f8d872c576e8b853196a9e3ea4034427a2ecb32da7ec5bc4e63ca30339589b886053a006ed8c9eabee1eec392c4cafab1e31d05ff3530849b6f0ba60d26e15a92b4fb62ffcf2182db2084cbc1f38cfe0b1323a75399b57ba493a4
+B = -112f3273fd768ecec46ddfedf589cad3efd5ad34361ecf124cb5ad8101bb89ec78d6ba6c357d518a31e0b674baf795f84765aecbeec09508d6a660e3754266e5006b44a47dd2ebf2d8256b40ccb4f982f4f4c7cbe5b918c02027b87177651a186adef2604a15659683fcf318ae8644373820a4d36a3e46cbd8fe9f78ecd73271
+GCD = 9
+
+A = -becb79c951239e2e1b74b37132dd589b0803dfb4b63575ca32c6894f85a083a45ea826183a630dac7e3953e251d8ca073f1bc726fe3ae8f6354a08f81f3a601d6c00e149d26a8beff205c1b6846aa7dd65750eaaff52210da28053a181ea4712767ddc20f024307f4fd54b6d8fbeffca6117cdffbdcd7fa5851b74cb095eab93
+B = -c225f9722aacb0d06a17c8134774d2fb41f0a7ed7c2aa1ce15844c8170bb63a5c3d0343311798cce8378a8682dbb97c0c12d6eaf650a88909f196141b25e07b9656bb5b5291b06243b4d41994f15d3877556e3f3279b2187dbad74832361120328ab470b63858c55a5c29f23396b6bfabfe3dfbb375c8d4976b5832663bc6924
+GCD = 1
+
+A = -2fbe6c1020bbd2bb007dc977c809d53e58b05879861d1817db3aafd7762bf9d7429edbd6a98a77ef04fc67e69d5d4d9c835a72298a9b396e778bb8ad20f5c620090e333e3f6f717d943fdf9b0e71dea7ff50836da8d4a6332cbf9cdaaa991eaa1f54f7881d8de7c06c5d0f29206fc83a919c02a6a8a4cbf0bf9d245f5f6fa987
+B = -1c4097c825c37f38bc5bb5455e79479f089315c2bce2594f6cc87cd69a127419ca878cb491eb3096974e2799b0923f3354f5ae642901a5e001fac9073502c2f345c5e7928e1e3de872600473cf1fd5e5098cd6d6d4eba45aa7a19e470c896ac82b118fca177284d35f3d94e9ae399338e344b605bcdd9a7d0961c9dbde86149a
+GCD = 1
+
+A = 77c22f3e8cc59e6d16fd9fecde834a7fb34232ca43948acfd0276ed2ed7a853810d8f8f26b23b4d92b1bc11ac55d294150f335b66854be580cb2f1701e00d94fbacd6cc8208a13e14f9dfb2f6ff5857f0975901cdf83f434fe96fcb48c79a1ac01bca92a1f258953cd0f4d9827c8c2e356b546951ab82cd23b5e436719663396
+B = b0ddea5e48cde4538afd9d654497d209036c155786b934944223cdff235d67f7d1b3bdc2d17d438ed6e3391d7cdb9498101cb77eb68993d0fc31ae4ee2a1e029337d45d17f2b2a112a7e46d57777a26d1d0c5f16056cbf651b764d3dbf09672bd601dbdf8bb92705dd74499d7bb9484ee08efb884549a30e4e4ce69d6b1a3186
+GCD = 2
+
+A = 5eda6669e068a1ba60b72f72c8134be45d11a15fb0d804b0bfe4570054ffc55d70e79a50cc878ca7eaeffb637978f5588b26e86713b3cdfe2a091593ea12566dba239270708dbc8f15e798b1dd831724971dec5eed95175359e1d92e637be58fbbbd70e62e9683055b4c35b978a9f26d59c2cf04f985fecc69fd2d1ba5340191
+B = ed3d33a6444ecbd6f2a5cbb2996e4d0e33a9de4d391935b34fcdf8c5bbe21c4e53f9534080fa991752355c327f2a69b73c71e3b53dae06e6d42ef2df8f5385172661e38f4a59785ae41ed14310827b13378cd623b115db3bd7ec4a20f995f145ae9411a5a05c8d8998b2f4406d7d53f66c4ffa0fd09c201e2740e48fb16d2c33
+GCD = 1
+
+A = -8fdd32108f2b9ed4db0987defef367ed4e79897a67bfb1e0874a07b76f7cdb2170f06a76b4c688396cdbec7fdbdc08445f8a2cf9077fb1b3cf557701ed0ecb52871ca56b797c6a146c098ed3b905b0472f5f9eaa728b4665f6087801dbf3fef50a7ec1541b2b4e393a753fb7a1340c52951decf1ac36a92b992c948112e02139
+B = d38a1bfb7bda21ce6016fa808d0d13fd99c2b0beddd69946bcfd107ee58f4ca92d55167aede394fad4eace8db837b2cb1b1d658fb04697042ccecd358723533f3a0c1ad293f4bf63d9458ecec0b88a1f544c48589ab675b27214660243bdefd71cc5119c0f2c00d722ff145ec4eb97a51303c57d7b9dd4de86e7b715cc53c251
+GCD = 1
+
+A = 141d3696ae5d9bddcee491423e95edc1417011bdc431cf08bb6c1b5816040e7114c3d893014a431677091b9adbb2beb96e414d1c622d4ae6f16f50402094136678d20e976355ec2d9d1bb6e4da2f53ed42d50d7fff1e5898c1fc18dfc73d5f2498d76a584d685a05ad8bad3d35072f6de8f24ca9b9d8bbe91e386a1d087ed994
+B = -ab89309a3f8d5cd159bdb9605bae55b7b8767540c40372d88368d312bb3f56f0278020601efbdb002c9dd82ac41500d3c6fcbdd0a61ba9b26c6418906407fb6cf9bd31c32a05917fcee3e159c635d56d03036874a836b6b56718a92f87b1c0732115f8bc989dcfa6cfff6fd89e10abc3edcbce1123d3f5a95205305b7baacb6d
+GCD = 1
+
+A = -eb6d7f4c979a83cb28751238503d9dea46c2003027987008886e3c36a1cf6eee6911dcb770f02e36e66f1f910c71ac359a0a32bc9015844f2cb6b73b1016ba3da4eab3fc97636043e75e6ee8e9a428b58cee71efa018dcc01194d44c47eba3e51836ddffbd963f71d1e05662b797c61bd1e78f8749025b2cdce2b572772e5d0c
+B = -6e559ec50ceb01590d5fd485d6db7f3d48c626f9cda8a9d71b808e7dbde671b16607637ca894afc62ae7a9f8c633ff80e8cbb1ad6e090b1e22e2507df844b3a09e36f8023859409a5cc8822a074b8a44ad5b4eb437a7d047601d3d12ae7fda35848375ffd6fc0cab63f3cf7baac905f58a3b4f95e26a2c90199383b2432d4835
+GCD = 1
+
+A = f1465dd873ef240dc4335f2bb33d07bf8ae15fe3c94cd7924cd713d00a3429c5064ec235478f797aa1cd24a2934719026d4aacde50c389e06a544bb1e972978a2334c5f8367c36d80f58cce964d52cc83ab714380f3f476d542b40be1c6a53568353508297bba337db8262fe8eb6a821877392bd5beb78ff364bd3492ade2bac
+B = -c9ab219eed80b6efbc26962ad411e9d9afa045b1803f536e06d2dbd04e61d2c35ab79975cc00dfacf7be723d7bbf38a6e9535b2c0b477d87388f7d9f1a8747d148a55c729ca8b1212dd19053b45e7ca661fb263cd25a83bb6902c6227a4a6a84dc8cdace1fbc9853c44fec83a553e0bcb0c6cd9e1b5bc3733941de7dc1bb7df7
+GCD = 1
+
+A = -a1e8f6bc59299ba9d897da4814d1f001db6e818a550faf6e74edfff1a190fb2cb494fdf596f2b26e605d9887605d290b0d2c3fbbffcffff6785e40ac438eebc185ff84eef0b117268a6236f67b679aed1edda5b1646335249057a8c503ccbaae73962ba48f007c5240e3438762e18859085d1e2c53516b16a19634ed36e9ff99
+B = b4c03a06b61ef97735420d752d4bb654b9771dcf7deb718e9a2c3e144afbd0602e51db737b27b6cc5b563a30a0a0d2b4f6ca105fdbcfe7e4a92b20ad75c09352aa1087caecce52d1630d31acaddf631f94c8a087b97d325dd3da4c707ee571e45bc7067f57d296b351f3f4c1590450541943fea9aa39229e98315df01ab818cc
+GCD = 1
+
+A = c889e6a57fde763bab859a8da39f6562f34aea39ab9aa78252658eebd35384698d76d7997e034ab41e992074b8292b940830de7249575db91e726008ee46b49a95426d2d9928312c63f236ddfde746d525119bb36e6d9be88a2de2b65dfb1b7bd9ab6b5455a9e86c990496e7f5af49be2fbcec9984a5b07b3a4ced120fc7baac
+B = f9914fa1cb14addfd683057b7dc4cd1b0a77ad4a89d6098635ddf2cde544ab0b62c9fcbfbdd80e24cc91c09604ae66c867d3322dfbf7728813242dd18805ea4f16b4925b57ebc3b9ff77e6cc84c8f6903176be75243bcd6a9fc7b2c72fa65a4f1717ea2fbbdea31e9c112be6abca89567754c333d9bb0971e2e394147d37f7a7
+GCD = 1
+
+A = 69ad50c29abb11a952ceff86b200ce13e2ed389b188eee0798cb45ac430ede93288fbdf27aade0a22226fc567f60cbb553d660713511b1535ba1a60ad6932a774235395682763d705cc7ee8deb17c0835ca0c68e2c401b28df8132942e3469b0f9b1455bb1a4ca1165f868a0d5d3a95573a174efa15cb258cab439aa25e6b117
+B = 4fc289390ca3760438bbeba3c0643faf9aba231bad37f9dee804afefbdbe405e7474001403fc28d69a131feb19a7dc374966c00fc910ccf08a9bbad00b8d54992d3c6b7b88f7053704b8bbffbdb952ecc9b74ab00fc81487ff145d2c0b114a4d0b3601ecfbf9fdf0c427fe438cd41e0dd4254b41477e17171f2944165c95a764
+GCD = 1
+
+A = a6958b10b000af19622c74c60e835b21b364df3fce9f5c3f426ee379c362a55b3f255b54a98f6300188373ba049f91b186d5cce0774b68400f4c5c09184e8d2dbdb4b02608881fffe4d5f9b32c4bb51b9b4799f1458069c3947485e1dc8bb8b04a21b8a824205050b818dcd2c79b7f935864ae7a686574f3a1fc9684cab8672d
+B = e12f293ca9f9bfccf620b3035df8e15f2a6c0cd6f708fd0fa5f8e22d5209a85e0f30293d2f9785cb40c685ca576c5f202cd56faf995f362990b49cba88a5ee9c9bdc85946bb228797c424fdc52d52cd9a7818a822aaedaa1b05892aa455f4a311bb86b71222f54da47ac466f957b37fd93c498aedf051a9a2eb44fcdd513cce3
+GCD = 1
+
+A = 7e7667d9c324c4b38a6abaa9cf16de74c8831cf96486d563efdfd97ea9fd547e79b10bfc18f05e685ffbbf1784daaad2774f209d745360a45e3285683784ae16408193a2646fc4437f7ad839fd53ad923d1db82c90fd6c7660b7bfe2f9e821b0866d0f6244418dcfe6a477345e54e7aa57cc12d3e6a0ebc96f6e42a953f42e69
+B = 8f7eefd5e9b340e6c31e9550ee8657409267bcccc19cbb2d223c81faee21c7e7c61a5c68daa98ce48c43b655abb5255de29bd3d1136ab7e46fee2a66ca60a231c9e708d568609644e76a4dac5ac5bcb0c7e80a83bc046a8dd3afcc653516ea77ea7ff43e89a2507e75774ef9d17fe62550788548fe7d1345de98849028e2dcf4
+GCD = 1
+
+A = -f4aeefb72ce5bc92be21102f9bde324b71b751ca2cba3396b1a0cf50292a7095ab636d1155f25a389ee219b8384c49b27240ba11bc500546fd88ffad5e6b98fe942991dee7f1ec312c1cd7bd2a29e031f1f3e2daf07cae6b9e7ba0f2255c602db347a82ac6ba9e660acc60e88347deca1bc92d8d74c03a9383ad9a4d8df95faa
+B = ed96f4f15cc3b6ba18153fa6bbbd603c0d5e7a16506f62a07a68b128705d3d0ca4a234cb8bff6b132efd981069305371e2f9017a35e372431ee0c04c52c519781e90afcce3261f41c52fa7996b3d8d0b7e8008a8d0c753254f69f25637ba6bb666696048c2fd57cabdf85c4e7cc1806b4d5098dc3a1d7a05358b73c59f68c686
+GCD = 2
+
+A = ad539ff8790907f93b5d7651a76739c906c2a05a8a91cba1cdc015c0052194c7a00047201982793225bd756cfcff9078550e655ea91a0551a64863b38db92a1a9b670364b2f81f4c531307f3e59216d8cee1c179c5b9ba7b5ecdcdbfe1555b0b90db28ecb444dee04cc19d4376fa969de9661405ffe26b86d862b1985ff24e86
+B = -14dc76cbeb5d0d13cc1fe1a3d7b74ad089d1bc817b8dea5a06f0b10f47636fc7492b5699cc2f4fa1705ef06c4096e2a93924e2c16e0bf934e6f9d84222d46fa6e2c3081dc4aa29746256eecaffa2757b6f2ec06ae21f8d19308d59196fc88ffeb05dc7924627586c44f8e450775efdc85444c86fddb7e61f9799f3854e3f40af
+GCD = 1
+
+A = 42256a176668c404a39223d36216d2f7e7011d298272759e47636173b18514adc8bab0a1e147b3bb8432e1645544d7e6d2591995e5ca6743cabaaa16183ece7b7e846d786c4fd53708ffdf5b7c3933545690c42e9231693905ef8391f9344af8c85015416baf20d36d2ba91c10d4fabd2ddae51f4d2e9ae8fee40221dc0f321d
+B = a01fdb11921bf592401b5735002a4a0c3fcf5496b4d4c51da1948d2fcd5a754f51219d7d82ec312dd330398ac16dda72c15fa4cf4893fc01c647d0e87b8724303c31b2193e1113a2ceb6160fa5b0034426b5e7b16c189abeaf23502920cfa3323a27d86ac2ca026005e8e27f24b036ac1f0796143f97a1bca0505054a27f5a89
+GCD = 1
+
+A = ac294fa2025e419ce04a308b040f002ab6e926797de79092371ecebcbe751563d311fda0b0b49e1c8dd83d6bc36c2de915e7333b88393a9731a3ac17a8881e876688255db23147f489cce94aa12424f6564c8fa25fb0d60edcf0e86fc0b59f9e4228cf89a5add863c214f25e3023d60558e9615d21cb797cdcdb1caaccc01fde
+B = -f9be3436e80285f1659ccffe8e2a54db6b72d9c547fbb08a9ad92efbea1e6804019bcf3766fdb6fc33ade6d95d8558fb811c0a46422abca2d101b9c8ed7ca7184738543d172c71df379a74a03194b36b760b716577481e7e80f9d8728690a2418c94eec9aa54bf6a1867810ccca4cf3010eb7cde36d840627187c6bc2cc881bd
+GCD = 3
+
+A = 1bb748bbdf139e00cee6bb12223e1a1e0c8e4ce80f69edfda0df5bf3eef4364f673579790c88790f1d67655bb4b2f6acfc098a747667b396a3f43e47bdc4efb768e025288953226554978035909de2442212f9f5e18403e49295bda1d823d1c03a3128991fb79f44c6536456988d6457fed5b32fd7abb6c738344ba617c62940
+B = f73ab9fd39a618f4b6bebc775a73299a56484751c0bd87dfc322b702dcc1b932eba527bae1f6df286ed9b79d0dd9e577fa2f7eb0508f8c688c43849087a6738c5154fa00cb995b5a681bf32a4a8b74de5c7d24a1b17cf996371b38292471fe176b070acaa2e7d5944d1bcd3fb41f9f7496aa9d12a1da9753351d831d8689786a
+GCD = 2
+
+A = -62100d0ea245f1c0d4c44c880976dc52a5b56640c266d037c7498527c427caff7cf1ff023c966c996848b198e61655f0bbdb8406fcc55f187d0f96ab1b5ee59e98c98cf066eaba84a40146fd5118bc408f560b57a937c88efcb8be483283178824dfff90f9d03f062aeb31a53a149335692ad9615f4f5591d53f4cc98b03fff9
+B = f9956a7365254b161b2eb8286630889110b3491db671e79debf5c244bfe3aded448b8edbf43f9c1dad3e13d41980cf8dacdb4746419de22f86b2d11d76a1965d8055759bbf2ee1b96470236486359f630a929eb3180b317fc5fe1dbade5532a43a73bfd0ac43b1edbec5290faec53ab2869771d742670655a9be7bcd8971e20e
+GCD = 27
+
+A = -1a89ce2299d269abcfd05aadab7321cecd718b733ae6140d286005483ebec431cc2fddf1583bcf4050d9b527f8a3dd761d03c9bdab6c70a816d3854261ab553ce6c2b8a8d4106030877881c8da4c522f5c690d2576a9438ddd04f0866f3c63ec559c3c1e1c316d4de2b4422769b233df68622503926e7d0d76af31cd909a79d2
+B = -9bdf5847ada9f010ff2d886d635a0423d94d58529d1de24d97535174ac087d98d784125102961791b9d3b2ebb0d26af8d4c858479c1656b735f5433967a534e9dfc6d4a336bc9868c0b80aeb0a6b2b01dea90b6422bf8701fccb0a6726c2479ba00338b71f350724713d7aebc1bf3f372d4b956643859f55f5e7d46d3c7aedba
+GCD = 2
+
+A = 8e6cfa0aed843d7716e2430892a7c296ffae5a7b94dd724a53ca5895d258518934f8c57d108a88a194bc69d26c1df574ca4f3bc8322c78570086467f9e7728d8f23e5ef352cd975069ade419a334a1b7b0e607c3cebb4b47d1004618985fc330862240c7adf83bfe8cb956783d43de28f9b5ccc5100875770e46e320f919db3f
+B = e90e670b795faa3d3b44374355f087305eb84eef68f395f1985a4dce207547a5c1880d89f2284e3fd312e67ebc9ae09ce48d9f7fc25559935bbff5eda3dbcb23b3265c8f25ab91f4c604f9589d48272709a78cbff7bc693c6095f44b931b422734a1d7751cb2f35687b0656d2e9c25eb8f2e1687a2cde452e4c7e13f380a3320
+GCD = 1
+
+A = ea8c5d18a562b2a5059242c12676bca709c309314efa13acd068385637b1bcafaa752ff9d6747fcb028eadc0227436327da6c9ac38cf1c10f49ff599ae149e7fd11e0f87629cb7cfa7ae623a6c902f07974726bedcafc5666ed6c0d4d9be32c36eaeef0eddd81f8f4db807a9dbfb5976c0518393033ba412d7e6c1a717b5dac
+B = 86b840c6ea9f7f1e02899a96dfb00f4495ab9a867e98d38f78fc2fe169c50339564056d650a18490e644886e0a82d91ff9f964e807376673377f8811f1b759ba03dd674f701030d731d9e304364ed3593f6b164859fa96f9616848bf8d3f7df114dca6d978221d491892b72064cf64a8d7bfef322419c55e1f5bcfb9895b7fa4
+GCD = 4
+
+A = b8f1f9f22d2ad3ff7fd61c2207c2b833ac781b683dd83de59f1ee85d036ca933295e60337ba87ff8034a0abf94dce4741c9842c44765c1576797a11951ae97123c642d2c6e71ff974f5a20c8a57f51292c0e15ab538220719531b810ad8fe3e9c9f2ac9b67e7315b9cb786df65e2e87afd2a05629fd679a9f04f9a65b1dfea1b
+B = a974ea619e4ead5de86c2858dccc66b49d7f2edcd33c5ecca22904c6a9c6a804f00516e9098430ad924b12eadab1febb9f59883a84229f19ef22664fd6b47d19e202635aa74ed8827735ce294454aa2ee26e03401430e7c7ff91778c0bcc0b566d25c41d110f8c7b5ec407af3a642c14cdf67ed8279e76805b6031efa946287c
+GCD = 1
+
+A = 9ab3b52f06efc2caf836ab494759c8e53dba44c50b9b7e9c2e1860b975d2ab8ac865480cc5f7c6d55741b20e3bae945be87298cb42a8b462445d0e9c3273c55d744512037e104a5a16be7209c288601c23edf35fa833502305083208436400bc7c7b592e82e957f05fd6bb98e0769c8eec8352279ac62b269d4ee940b942e825
+B = 73e264200bf4dc4b2885d69351543e921ff914bca9b824546a0fa5fd9b176b20a8bee890b9165d7aa781c7f8217d6ac5d70a07211a20d4b41e0e9ada44d2d0688b76244a6837844acd3330fa69bf72c4abc5cc6b1866c9796d42e8f4fb1929554d50cb77ff55a18bf43fe94e3c2609e27e51ffe5893879a889530b345a81e626
+GCD = 2f
+
+A = -18f9692bc1adf8abfbb1b811bf4dabd84b07824813451d67edc865faa055049c45ac51f9115f8f2c19297f9baff1c1f4f59c3d59ede9b038dbd5d2955244599f28cf4886751ded5f810240d45fce790f9df593e1f5710945b3ae7893f3cabac41bf0f249e23d468006f13f69888f2850cb49ca7c929c4a786f85c7603c22bdf7
+B = bc64002d4c69f755ed2e0f7b26d55701b5b2fad5e04f60728505e2e2103ca28f0d99182f49d0c76ca882845289330e9db88926bb6989a480474febeb8b3b64aa0a7815ad3e82937732d6cf994667e309c0b508c950b67b22a20454274be3a3c2fb7ac729ecc2b7733e3cc8df24d78c952f1bf51cc0a341cfb04834e784ddb832
+GCD = 1
+
+A = -5c75650f4c0290f16f532706a9d56a63b7d3a5e0e942e733552ffd78ead7ba9172e1d5dada5888c16fc0abcdc85e01ec0ae41cbd9fefcd6736aaf0599c0014959989f5c09bc2922ab8dd97db74f8140c624d212574fac14c54cc6b3a13e54493940b33950d913db1e27d418dadd44b69d975086a841f71581bbb2846f04f9dd5
+B = 3b42f714d0ab3e7a3d6149f2d952ae870acd9a43cf55300e5bca92ac5866f34e28e1a79e40ea1794a5bef531817222c39259e595e926cf23812ca311bb3435c7efc8b639c42cb1411fcb979925d8fdb53de0d786d20ddb081e1da1272d89a1db2885f388a8b07950cf0cb5199984b7c70901926637e9d9a56b582792b31fd49c
+GCD = 1
+
+A = -aa355a852724adcf7a07c2ec7145afdeeeb1937e5835e75d675e45e81cbe7a60d7c2fed68f6a2f95bcf31dcc4bc15e9399318db8896e9b5bf21f7c63eb74207557151e9fd5cdafdf970a108e77b0e6af46eef3a5ebe21f1b73cdd2a863b47363c962422d220749a04aa598b47fd6babb328d1db4446cd1b954f75f73e54a8f86
+B = -98f99e43a024078df5ef11197328e8abdcf551aed887eff045e2c543ee98d2617bdb69160fdea02ad0492ddc4c4d21155db8f4902ab5c9bbc275a7edb61308689affa1f913d33ca2f5d0a556fd336bd6ae2dd20d1959ff78a931744afed715a09845d5f594fe4ebeb4626bd015e9204966277f9e82175689332514606e284509
+GCD = 11
+
+A = -4c74192a29f90bbccf0503e2e6ebcbfe3880c6723414ce4d8782f158f7d908e143aee42f123afb2486655d1248d14b6624158361b53a15986a406f457200d904adb99ab446467ae6fb95103c34bf23b664171d625b6c876f67dc5e6e7f1a74af5f6fd14e6d8e09a6465f311a012630da46419d46c09c95887d1ac3878e1424b8
+B = ef29f04bbde0a295308eb4c6e416e91c8236a5eceae5ccd8828a3f276ede45e8a8b76a4cb0fe60c4e08194d20c366b499d2e25a7b9c0b7adc875d36f55702953d98b257458c04ea43d4343bad9664444031a398809aa5d0946b6ff9b2c335e18243adcb6659b542d74968bce28d1d95b1c06f07e17cc1620e79b114db0a3089a
+GCD = 2
+
+A = 8158ec0bdab042fe15a5f755e090b81f59d8e1f6d1fbb4c11c21aae1c8e494f1ce6795aa8c653e7884c269586be9294599706496edcd66cfda237799df6c546d917fe071a97a88ff1d77509b0e828d8073fb17697c3bc37a057c337812e8c6aa9026306ec40b622d47b94d5602507b1055d54a97ab7d8fc7b06c7066e52b50c5
+B = -a63457087b14920bf1ab9c63d23382defe14ce5b502abd7dcba2b3f7f78f9569cc111b74ba19951d5047947a573017533021da317f901b11c7f2a62876652ceab888000ef51e3d4fab953f1267db1b91c3d7e3b559932f4a83fb369226b9458e9ce57d98171749effa316a379dd3591f5283af15584d72c4da74dbd16f058bf2
+GCD = 1
+
+A = -46f241adf0dfdf28907dc97ed2fb1a7d3dbac6bd109cbbf200966e014339317ee150b3bd56fecf4637a3ac368ccb353c7799223580882715262448bd7d9808b700ba10d761a547d9b65659efd3c501891e7b1f5d59486bf9263392e554235c080c0b27ccc6c746a8b6816c7cd2e57df346bd618a6e6167aa790ad50a0024c9c8
+B = -cf63bbe406bdf481e370e5071b1d5e4712a3a625a1dafb439a6c9e8282550bc67a56393bb9e7b8fc9cdf0d377c43559e6e72841b470dcd44efa9bc707b579005acc2481728897c6966432093f8971941ab74fc098d3d20f371d32a4345f44f57349259ba4e59f0e1c67ac1438125c41270c375517ea47a9f745cd9acf8c02b3a
+GCD = 2
+
+A = -e5aba3ea8c24bd2a084dd957dee72f3e76878b032b7b194e74f42545fea4becb386e77154aab28d940755f6a03fe4061f513ca1657eaf1663eff9878449b987c70ce25686bdb3f2667cc2fe694520365a9f47e7210b5aac817d9d46fe35305932d8262807421166529f3cdfb749f79df73e29ddd1a322d0689532f68b78a492a
+B = -27693d6cda42168573773f5fead3ba37c9357a9004f270cbb381c8841af9f5b665db287e08076e92cc7e17cb96bda789fda7ac9828a3f50199b57303e8fe0ea4218c18a435be863f27a0db4ab5361e490f806b25123f4b48d099df9e10fa3bc233a76286edcfabb18c27a0c5dd7d05a69623ebcac8919d0f29f21ada1447445b
+GCD = 1
+
+A = ed01a476a5396ec18bea640a4e84bb7bd58ab709196da56e2e1b68f78e728e2a57f4f1b07e783c0985839955188174ca213e8ab41159e15d352570a74f716f581137995fcc226c662c2999c1fd136d51ce56e8b1a241e45a49399d3ac6d9d665e11cc0f6c1ce343ddd09fceb16a40fe4ef4bec198a0ddf4c0f8dea0152769bf4
+B = -39412cf40b9991f1693fa22aa2697ea0332dccca7f3c6c91c0bbbc34253e2e3d3bec4684f660933c96d77ac09a5bac970de56a11a36b898d4eef306581c3ed829836b2767a7fbef0a390a3e75658ede2d32244ac3b88d0625cea38a1724e3050cd56f12999545a9583e5262c791c5c9307953b5246a1342064ce8fff5f55886a
+GCD = 2
+
+A = 45ed2e42cdd46ebd9428b2b16448e3ef9d0a4e62cc24f5db01772d3ddccdaedbb3b326f45641204fa3fe9449a62afafabed9fb46e329bdced67d732b3671df82690fd9176501b4c6703763b02d0726df1d103f6de16f4f1ac11d3ca7479141a8c418d775910ebe2e12d35c3f98be593e077c006d68df2f7566a148d73f89839f
+B = d55b0413877f29d4615e01d77d63c648dc0c49e403cff630aeae507839027fcf3b10c6e529d53c0efe0d78ccb7f2eb160c854a0cbb56296481825736bffa81cf4c53a30ee568b76b1d33a43d8cd6f0c5495fc7c1687fe97f0973e7b2cb196b9e1592ec1805ffd3332c887350ca356c12187c4f6a744ee6f01785cf6b4d3fb629
+GCD = 1
+
+A = -689cc64b461c27f2ba5e0ee0e92eb1169ad4b4fd5ca342312b9768597174035ff3dc60d45b88b807c9df3f96701bf3691bf207542cd44004613e0fdc6fbe17aa3099d365531f8af11920bed14f10aeb2c8145c325003a4e5d661bd308eb023bdfb2d7073e4da382fafbc17e37bfb381b4e1482a6a9cfef75e89403fd5f5ae822
+B = 8c396d16f8f93fa2588d2fe23e4f9290a6f063ffa8902f5ed331ce8e41844ec7fa39190c28ade85e63ac0f8de14390de4365469ed14846c4983493974d90e9a95e746620eaba9210c8e2dc65cd8b736a0b69db069377d2cb528dede5ab1b8187b3113c6dd29ad30336ccab2640f0db8fd87ca3b5efac7646be0ef282b292ad1f
+GCD = 1
+
+A = 2c50be7ddeea610c09882c68f159759092d7f59f015c6e7bfb17dd37086c3781d501e2d0b070435d00c830fc925b69e3376858db4b05de2d334c9b85274eb3f73f1dda800b5ac462cf352b15f7ac9999f5fab3d714ec72a589a727db26ed26c68f89cdaebbe1e34f87a7386909f8fe15b07852b6bbc561a578c32d5aae059fe5
+B = -9238dee9e069e1741534521f74f0eaca7bb444da8722189823a4d0f15dc45410beb94fa3de6a8c32d6278464c1f668013ab49298e956f73e62ddfa29b64fa16a7dbeff63353987d0fd541f5bc12cf941001f31842dc3e904f02926062990f552d5ca8b0110ca414bbbe4a4d63df4794768be41024261233834c4e73b6731a995
+GCD = 1
+
+A = 5fa96a794101f5988bb9c0f9ef767990676326b06df4e17250d5c343e0ef0b8b47061f5200c2e500086d71210e240d75aae00aa1fa581cf377ecd908a560d8cb63984321a2a1c181e300bba2261d3f74c58464dfc198b2381209f448b38557172e734c00e90ace90834b9c1eb4632c9a841301920a99a107721914f802a0a4d9
+B = -2bd44b1061aa83bd81c67fdf8aefa58613270a82f0807ced4834a5be3d048688d1025e3acd80c8962751df5b3ba928e1b5b0fa1d7b3b07007617854d075e7ddd5b3c8f4b984c2c9c386e2c181754c2e5726b80035a3b2295e1bd1890080d9beccce1db010f0a09865b2812c1e624da804d1294b034b6b5e86d23b23783f8194e
+GCD = 1
+
+A = b5c8f36365148bf442d254d79aa3f6ab2220198eb38f2991ab5e541e4b6b85ebec48753b979d39c03d8594438bbb1fe0d382b505f05537c43428ea9680cd4f52f60ab6a23b839efb9d7984e425033ce769d58afbc052c7643d4e08c932b9eb4e49349a3976025555caa874ddf02fa22fd4720947a8b143a2f53a9a822b1161d2
+B = b1b9e9a36bb68e300ca0e903246628e77c98d932ee137e6be07d8e29277d3e773e996b1bd54dc6faf4cddd7a291dc84ffc5f86a7d59f86037d25080f3d44078261be7ab55ab4bbdd4828c8c4eb8e9c842e6c089fcd5bddaab276d7aecf51335958a083176f2421a4c5b77c887f90621f8fb43ad6bca5576ae28402cd58f4a1bc
+GCD = 2
+
+A = -2cc807a3d76dc0860cf497175eca612be4e42167e2200659cc022d2aa8d6838f62771c9bb2c4894bdcc2f13a594877dbc3bba1eecb7d58642f24d30186b2dc334d5c4bb2efd4808d61a7735127e5c51383e430ba547ca8a9e96a4ee73636a86ca9b5762b14b8449ce8609b7fd3be627b0d9747ae3a1fcdbb9e9d1667544fe033
+B = c1ad7129b8c5e39d2d588a9f9a4c15dde7e641e6996ffc4f3efaffec423bda64d0f342c6f992866bac067dff2fce23bab4c761c98c3b2ff4705d503426b84d4ab25bf6ed9646a346739dfa9809cce9ea29f040913e67cd22cdd00d5f6de055da49d1439954402071113a9b72b4dc25c114badd87e05da3cb896457b9d8674a89
+GCD = 1
+
+A = -32f71d850eb1eb3fd4377095b5c5a0de35e45243f1862d4d44b0bfa518ce746c9d051f1e9a64a48888c832195b173edb3dd9b8d2672024b4c3b7c70164fc5027fd0363b30b178ce50eb3d1fd29b1d6183a216608d3661f8a893ea8d553f3e3c96e106a7db0db715c9356c6ff14ca5841d149b03dcf8a2881360c332685800dd2
+B = b2b1eb727bc60c5ab24f8a6f3c547ece158b74f5993a9fe005e1c4942effd1b7ed2a1ea6349a310b85d03b555da4044e362b99865afe15a3671748f75cd5294c62de81c055e3bc116580b75bbe616063705d36e6c468418c836c05ddc753f8cb1346f09a69aa5f54d2997e990110317666ed32a509b1be077443e8b742db743b
+GCD = 1
+
+A = d95a2a9d45147d170debbf4156b55b45af102ee2dccabfc99c8d0fe38828478947431aad87f7ffb084c8652560ab029c70e7a1d0c6d8219bec65dfa4f3b47f62eff44c78e14ae12062713b98ce00d94c0ef459966394d932a3d77cd6ca0a3989c89e3fa5badcec441407088d038196c4afa59593edd209cb0e4b85ad551fa92b
+B = 3697cab3f684261e009892cb528727f0a37cddbfaacfd272333b514e362c2a15c486d99bc2224e7ddf51b8d49dac1445b716901bcf6fa7cb5aa12e69d9f718b1c6256d16bc0187f6f0f9163bc32406cdaed25d47758280907bb604323f6e9492649cf52c7f2961958a54ff5fbc57eb91e2018ca3d41f043a3653c8855f3a0247
+GCD = 1
+
+A = 24ddb0657d11a2f57859018bf81f29f23d5ba0c62e70798ad802979718eb1d50ab501ee26da2b91b2400fc9d2f8456e579a6450c0f636aa8212f9c225747d2f2232a02517d08334ab96c0aeb0daee71afd40fc47ac11507d12526d056527571fde94c940d600c6ef1428c89cb4344fe2dd04807b12b01f64d41bf78a41aa3820
+B = 4a2bd79379a02605482ebafc3b86b2da2883ff897a5aebbead62cc1bd469bb355a397631314025e78af5983c9a475091f0a237a95b4123daaff1f8a49e8dec76cb1e3d210dd1b88c4b686b9dfbe304a8b813ae62ef3b921b77eb836007c34cee38986f8184e3d5d9f99f0676bb2e3fb5009935e5c61cea295f7478f7d7535fa
+GCD = 2
+
+A = -74ba1925c0860eb2507bc3d248cca2272763d4f51334fddd21ebbcd41b74626634b34cb697cf48e5d4ac8310e0d6dfa37360990b78dda47bf32e2fdf33755d908fc63bb191278405697bb3cfb7d785b9a50822960a2b7b453f8060c08327e3f723d7825694f84ee122a185538f434ef6962d6d889950dece705ff25f657ac501
+B = -c144a90bbacb1ed0c5a5ded71780324d6dee78456b67585c57f6f86c7c64e9fae64faa1f36896d9be3252b2b3cc5632baebeb3d82f77bd6470be01897eb17e70b49593db7ba4675f802650d7f031d45544c428522780fc6680c50f0a78b342f8c259d0253582398a2f2245db60eff372b3e705e58cc56d9e621b1e3d718bf454
+GCD = 1
+
+A = -a4536de10f37ed1ef5a256b7a1fe0bec93350c4cec8d151fd53c566898cd3946a353f187c769b3b7f39abba08edf5a3b5987b56e2780605cf224a759be00328fd99d7eb5c76a6800586e8fd6d3030bd9220198e8278499520afe15c7353adbc403865ae2e33f9d75ed703f333414a374a65ecd6d93a72c55d97b5e0f2f14b40a
+B = bc65a4fb99f6edac37bf147b08b8bc9a59988907c719a0064f9d6de1c6cdb8f839809d1ebf744e0a02d02a36c270e879c5a7745fcc85a986ac4dbfd21ea6d2944a239e34af1e8073caf046514ad2fa5032b5c20d8c708d5df47801a076b15d5c1b140620f46a5024b5d9d77cb22eaa557d2db9743445cad2804ae94d97406eb2
+GCD = 6
+
+A = -a545c033a325fe399789ce9a7a645743db86936c5e0aa6d16bcde482a66ba29e43c558a883d9153e17cba30e734679b9528d35ee3d75c1efbfce483501c6dd421f4914725de5304439ae86b05070c7d9c3b3a74f69b5e625138bd5cba8b0970e72798a9e2bfe30abcb5384e6981444b009593cffac3c47107afd5a72a2a07621
+B = -d5611d3282e737ce71460fd387cdba554681aaca0840df41814f378cee57e15963c554f17adae711b6a1488f9f4349676e0f2b59a115f43ff3b16f5b02121121a5e29f7e797341579e43b4a13f5a4b672a2868d843c88c2e3114a68dc33fbccc9c0a0234d9ea64fb3fd97e17f1f4f1f73ea757dd21412906cc3dc25ce18d4d44
+GCD = 7
+
+A = 6014790ff9839cde9e8140ceab2a5cb198098feb5ad5ee17edd581c4e74cb8758b857f59c91525c40b2d147890ad8f1af8acd339af61eddce824dc0fa735efd3a2c05eeec46776fb306af07683dcc10ddd4921d34cdf9acf9e1ed8f798ca556832cdfa5a366ecd9c8630aa62f5f6f1dbd154e7d6660d11293ba76b5b6b8f74fc
+B = -7a82c8643075a3d923de4550ce8718eab9954353b35dfa99f3fe9c8da450338d103274929c6bf0c682b7b1ce3b41998a418d96a4425186fb3efbd256bd0c9edc11e896442d13b3a0a30690cc6de6aa533a55320df2938c04b5bd029a5b308f0ee78a1482495b60daf8823d6503434cbd1c26f776dd088096718a9105304e2492
+GCD = 6
+
+A = 2f94d61eaae0b546bf54b558ed624106bba5c4b6150830e30b46ffd1ce324f2c604a8161adafffb09e1e54248ca0d9a0a17b1f50a4874659b7064d8399430a7cd4de3fa1f0dd66f1ea1971581027e5cbf4c46268ed10a878f0e9410b07c940ed20381a86bf77dcb23fd691f76676bb197d6103f25690f802031bf547fb798741
+B = -3c5544370a941a85aea5ae02c70eeb376eb1b0671a0b77ac40d82e2da46c48991a8ef6a65129584949ccaadeefe238b64efc360137addaf5195675978acf980e7184a4757ba246bfe4fb3e8879ad8e6061c0782e398e2af37963f25294ba5c819f8645a330a57c1cb6f9a58d55acc31be9167b9ce8f6f5e0303fb125262612d7
+GCD = 1
+
+A = -4786d1607a1c67e35da02e38d639d1b81bdbc3878ba01aacf4a8a9d52b8d4ea23e76dc5677e1e4939fe14d0f98515bc0bf43554fe9f1161c155d005d3e96e543c4ce08d2ed891bc581e33a6dbd9661874a62d70c008f5c3b58fd627a22af20a180737742e815616ec6cd80c53932f6e2aaa73e16aea6d95a86e368f0c726e138
+B = 4ef4dca39afbdc86f8f21c53207e7eb6abe43b1fb044265302aaf9570b3a00ec4ab5e18b3910049a5414f409da839f9fee7240c86cd31839e45e73413f0ad3183bd57c0635e2375d0df0742e3dc1e65d92910cb0a74a693e257e0ec1d19a804954b3f08001c3379002bb798c267cc73f9519d100d129c050cf9ba88436a9cd6
+GCD = 2
+
+A = -6e1a665d401db6eeb03978c8495e3a5702c6a48dcee7ebf25711582cf27deaf0403d16c7022a7766024835c92259a6a9878026d91c50cce94ce8975ad0d092a521a197f2975d5a38b9fe48f8b14a247d67f0c6620ebeb11d8702fd298f77ab5a46aa6497e0e3665cb6b889a67139541ad8326097bf4c2e1a47d221856d74bd6b
+B = -59a2474909e5e944b00562cfb5745d828b12a5ba2ca17fc3d68bccce25adc39f029fb993e91002b8edeeb6324458e541131b760f1c113162887ecde888597dd6c46961e953e1a541b45d8b852d201ae6bdd172cfd100c00d76a4da200d7b819fa92517914f5f8d6adb96d365e6f1abe944d927043bfc29cd28ca41a4a4810154
+GCD = 1
+
+A = -950b093253cb0facacc280d0d0ee3fa0a273411c32009962b7e156e0786cbdc21e4695bed9ada656c513d25dce0f0807f695ca386d89d5434cb5f3a72bda6b8c0e5521d55b395b0f613c1fe77eac265abaefe91126ef7fb70bc7c3a859b0d5bc0aa848bd4455a4b50ec2aedbb1d585ca60e1d5fc28c96db7ce532e07c381bb7a
+B = 50f3fb76c9b2098efc136ede4bdbd1a8a4a341361fc0bae9cd12d66e0e64a2d5b5ab407613325dac205e06b645e3a5bc1b60d92c9c3f5367e9026013fc828e9ad4f27b1227b643f880e86c11e2829dfd2d8e619c1dbf497a772cb86f8c63acddf78f9bf460cae7d20416255f3685796887d27a6bc06e49dfa397487397422f8e
+GCD = 2
+
+A = 5dcc986415f0593b9bae27f6d9bef08249239d0310e3e911fc2eb27d75e0c8e5754eff06e2a864981ff69af3bcefdfe0f990fce0b50385988910993417463afc4f7d408664a817fb7921d2171db32dc7dd10fed62d76cd8fb4f59c91f90b58ff973eafc61aca941c3cd9195e67c0381c4820830a36a2392f9976dc87720e5f9c
+B = -ebf3f0a9d7e601b6f7b32d73238e404b01053ef443abe334139b366a927f876f2e5ada10a264a96d993ab73a0b0413d87b5b5f0da0f47d44c317f7dafb1b10abcbdef62fb1e50e4eb6dd4c007b2af3efa398cb0c126920d7527ac14d92afe574208995c62a6a0e57747c52f795b5c14848eb9c6fad9e995ae551e94d6a491930
+GCD = 4
+
+A = 113588007c47c8446bb9327edf9927741b49dd860308265b5599c08671828d884036530f50be121ce42701cda05b48fa6fc0c523d11d6ff9ec77103d43216845026265bbd441c5b0291355dcf6a70ad62113ca9737a2bb380a5ffb2af186e497fdaa536a613d66046e1fb6ceadf734f9609c6c04547e018139f871272bff16ed
+B = 2ee5821cca2bf68179241aefe900b017822f48a2258dc7430c8aa361cf4bc57185dc14fdcc358d3219243bf2031f170b651a9da15af58172edf783092ae3cee1b1152b9e96faed54e36b47ad7cc09c8a9f67991024cdff3c7f02d2c9884b8d6611cf8eaf594f60637a113a1c558badce1ae038f36539f2321d4bb0150166d203
+GCD = 3
+
+A = -f0a5f2f299ff6ecd9ddf7783a146ff16de2c5824046e4817fcdf81f2bf98fb77079523ac29a72441323c0d2f03e6cb1d30507018912935b8d7c744189b938f95d16472838cbb201c3bb13adf06d289102abb45c9897c90530454e1f74e3c6dbb4716c007557ef9dcd2160ec2350fe4defc8d2688a8c23e38faf957bf1fc1e1b9
+B = 998339cc35c2a9c037b87a81a5006f432c1126ba4e730d1ad362bf03895c0a9eb5def7c2dea1c1aaf68ab9c8dc96e82ae7285181d237c5b78a54119e4830809f52668366cdb1ea0ed2813a9d2afdb816b8f5eed82080122effb3fdd126cf1e2da6611b0d08a34184fc7a62421da140be3189d2d6672b8f562be9c83da10aab7b
+GCD = 1
+
+A = -39f3293480aebc9e9ffb9eacd6a5931519b463deda0cb1f17fdf15bd157bbd4e5298a5a26355473b3ec3df00cc10bde46cefdb5b460e68a08162c95a52d3fa9d3dc0ce86c86e02f490a94198c8b367167feb7cd7e5749c2d8aae5064ce3e89dbaef716db72d6b91a742ae136fbf07dce8180e694a12c976ef028b8f55680cc7f
+B = b5ec8f244eb49a949f59226e2d1c2861b5f1730a98c35bd8a17d6b9618619ad5a38d3cea3371979b917e75402535ae3dc27c864957866691dd4378760850f43fc1688612a116d1568bdccacaa2e19a313647fd9e02a749123505ca010c0149837009e1bd7407f930baa68b4c00b5946dd9b2ace8790b0afaa6f7344b86ae27bd
+GCD = 1
+
+A = f20a84c97750699d43ff9e226de9f6b361deacd8d7097322e940f8642ce072e6bca4169b38b860e7103a38714346293b84488bcd5faa606c64daadd186bcbec1595abdd4a43f1170d19f46ea98b205280abb6d51b959654411093c79cf48f7bd48ac045f22d8cef5470d9ba95beaa64d35ca2a6c8449e3ed68b8e2aa633f62de
+B = c33f2010c87dba2b97e3e3a21967fa11e3ccc63093a0e64fa157ea73d9d8b4df08b7252c69751ea52775b16626da8868c31cfd74f4d582688633f8b8557f2cccb80b42f7811c79e4c2ceaeb168c084f5899209b5b79d154941052b43310090da44c4ca540f790c92a4a049ba4c43496dbde310f0575c84e9bb50abcac5f1b917
+GCD = 1
+
+A = 6cc1106b17e4d67848326d4ade3646de27d55397a7b22f620c9db48758307db9af9944d4582550724ac5f37fd8060fb2dd45c8fe3eb7f2a179853eb0cb186a459d447af95a9540e1a2a44d91b697d66cce28eadcd61ba38bd5e818e279531c654c4455f775e4ccb5ff8becf4ad64f9a35e8184b539171f602043e6669056a526
+B = e8c79e03e683b83ba549270d76ae3404d8479995c57e2dadd728ca22d0919b64b4ca36ae53c694b45123d68970d9db4f31acdcee16c375010fbc954f27b37aae4c6b3c1d9d9c762f4db1250b056bb20292216e1066dafdea119ed9eb4748d01018d1b0a66bb1fd9f6c9da05cbca502e6ea24567d1f1f72018ba5bb36bcd04503
+GCD = 1
+
+A = f1a3e6f4dbcb46a93a87a346e734cbbef90eb5fbe1fbcac34a1d676e12a2f9d20e0815fb519c69b5fcafd0bad7c750aea40a518adfa761572577799e196fd727ec31616d6a230d9c7f9c40d27517672f84d063b958140db929a7cae00201e0e6a8cca516f5df0d749f64ded6cbf80646f8f689fdb87a3d2a316b0fe5cee75375
+B = -50383f56f74b4436b1b06d7c5fa850a2352c21052eb22f1f63c441d6bafdd5f42648568b58ce4bc6a52ad67389e47f1106500f46244c71184b8882a1efb94301a1f4df6ec313ce8acf5b910cb90dab0522c3a1cc3f581767d89a7ced685f7ef04832c839e7d9c05b2e3cf017f98c28637b9e6e3d9cb68b63efaa2d0f863e60e4
+GCD = 1
+
+A = cf5874c419c5da8df67fcc5c4e38ad7202fea304e92d222ce9a32240d8c27252b97a750489e6c049696a70e084ad76ed9345bbc400913a7d0a05d399f35d0f89061078341fa071a43b7b2cff7fef6c8665abeae78068914c00d4593e962e294c9e7ba2de84f342332163c72df51fff325f700f37a4624d0a944c851d7ef8d05b
+B = -cf7128b22045180dac29ff129d662076c75e8eaae91dfa30d3cccd3ac68f0f5b41075f0dacea37fadbbf9dc6fc15609ae49bc050664a4b8032821adc5803064aed95745d201933989e473abef9dc3eb818ead872ac06be462e5bd00c739bac1f1945edd3208d93650c3802e2ecebafd99f3a57bf1779ddb004f6d5e91c2f0f98
+GCD = 7
+
+A = -e9dd0c99e2841cde43c0308e62edae5b900e06c6a5f9ac38df37f26e828a701f2d370fe38ba0c21444807132823e925641014a935bc075228bc2077694a77e3f0293ce91cf21575fba9c134970dbef3952ee278138dc0332fd7f272915b46ca671be36b4210cc18f32a3aa295e4f0f1547a2891be16809d32d51c606da7c9184
+B = b114c128ef14e29829be70f79b5572ff84c62a9f475e962817a735b7b5d9769d7c75feabbb7b60f2fa9d85f7304303f50a5974fa2d77aa1603b2c59d4a1a53a79d511508ed081e1f07bee018b5f124bde2ac4d06d89ded82c3785ee6279f5be4376af498bea796dd8118e2d61c5f413afad65da9b48f050958c15dd5ad6dfae5
+GCD = 3
+
+A = -b9c226c716819abbbdbadea4448c67d498c20f48a44c2a0433a8e800cc333477402958c32a56c1d74c37e07a8e59e66b591d6de8ac1f165c995a07ea45aedcbad4b919353d8c18554a4cc016a2fba7f758b98478e0c139a058c847307710f03fed087abd3986b90fbc8a49342d8e3874acf27c5c947cb00fd6c1007a2c5ab6c0
+B = -3853034d982efca21362ace215ad28f524e7b3c82d5a163643729899b56d11863dbfb64f2072b387e7d03e49710a4e51cb09b8c080b7c0bbe1f364c7e654d41653b0a23efc4e9b2195c85791618b9fef7fc6ce841d638b825bb3245acd167181156b490fdbcc47acf1396236e4e9d35b7b634e0ca09f9755df216a86fe868060
+GCD = 20
+
+A = -ca848f790211aa3f9c17b1c8d7ccb7a36eca0a150f13a478a6970995f84db7e4bcd59efd11e5f5a523d691a492f2663d45e63a481a4763364e97935c11adac592e5c054fc9e10919e3a0979e671fad9d2a7e2305c9fb65846bc533a15df8ffff933a4d86cd86e76a17d9388b1ec8dd089ddf3bf2765641e43d22f3653bf65ca
+B = 6945bfc8baaa501d2affaac88af992cace4371865e95562e491fd53b646d020af185330ad3f86b6fa304891e28b1307758fa0e9e09c2c5a8c129eefaf9fbdac2c970c85a86bc2d2726615289ade108996988bc7e0b5ceb3ad8fe7674fbfe38dbb5b2261bfc6cd78ee422643405a36761612ff4a1f5d654e4ffc0c60e0ee1dccb
+GCD = 1
+
+A = 181ee8c341b8dcb5d4b4515297c88bd0bc9819e9fa08a87e2c2f0c9b795d34d566996e62dbc315d9917ede71e9e67618c56d297beb910fed8187ce7ed6d419c83bbc7edf0ad7a0701fe61a8556dec2f186d6e7930f7b9bcbc931806e70a21635a2e8052894d33458f2017300e570e402c0110a47a2aae60ffb29c7dd909346cd
+B = 2e1018a9e9f35473a0c3011be046281b8202596f508aa12699af8ae8e8fcb3a4c055d0d525db02f7db5a0863147a759d2e6ea13a1639d80587d15a9613326119d5bf778d2a0e1af8b8d8ddd8b44df4cb2fb8a260178f5b9d0ab649b93a70e3d55adc96fde81d6a8050229a908762c62b1169bb179973ac3ed3c048b1f011b5ab
+GCD = 1
+
+A = -aad18976b5984713d5d264c4ac56be897bf2d70a496619e2bd61885d3bbce349e30aba60eeb1cb5ddd03cb3514d02447f655625a320d8d2fca5b873b4c38f2ebadeb2ad8ef8f496a7e980af0f8c882063e4603392430f8264c3d572aeae97113d418389adb586f00b4092f69d79342cb560da9cf92e094b967c8bd1911babd50
+B = -3331c0ab5c3a6c72fc14864f6e2c05d178ce177bc1a94989095c5fb73d6c583aa62e35a5138d75ac5d20c83b4544401a1808ce7e05d2365b3743b75d184550c7f1d2557e701109b958f2d1f032143de5e5cdfabb16ebdc2fb17645098ecd693399c0fc11dd664efc2c377b958eb8a562d0b34d1ca0bfe86e4ebd98e85ea0cbfb
+GCD = 3
+
+A = 408b5413fa8d5c237ca6f74452aeaa2dc0fbce1db2d845005e4ae5e73bfa4818ee6a4e1731480418af0e251ed76b9972b756ce2e96f6e390bc2efdba89a2689ac6bcec04296aeeb398e0a3166c89a98a2f14b5935cbb3f91142bb971219ef69305648a99aa042233c3598158bc09ae1474f32f30bfa705ea06fc7bf19be37332
+B = 5082ade7ef9a105e88f4d4f2715f3b6fe8810eef95b1b22e0d9a4de772553751c9c252328063cb48470c417a2be131bdb5e7b409deff69d5f7e9b8ee523d0293780fc7536ad2ec41d3b01d11ef0d3f26ab5ea49efe4ca962c2a1a36f4f92fa0b2165482f466ee3d3bb12ffbb9468a9b437d42b54f10e8f68ea4b1bebd4626796
+GCD = 16
+
+A = 2527f3772ef71811694454e161760461a85bbfbcd23f0cb908b3b581546d978885f07f2cebf7174a51143d5da4dad390f316bb8966d930542b76eb307ff06ebe92092bb6a1b5cf9dbc00977f8f1889a53da233ddec5dbf621adfbb6793ec306b9282596320783ae30be15ec22ca1432b77207121c564fb9545db2f4506819d1c
+B = -982962815ca355599a96257aabfe04f43c520e3b9e9f16f33803be223208bb602bf61dd2bee6bf206ed86eaf09c65b3d5025cddc4554a5cc194f954d6949b9275ee42bdee6951ad8cbdf69a3aa3ed05bc8c37c436a06e48d0989b8d202a224e9f5880ccb56c38fc989f81629bab118b14200d827b39fd45ad86a3c275fb5ebe
+GCD = 2
+
+A = -c721e3e207853ce66001c076a1f95045f3347ff90826bfe976d05f10af4aa6dc65af4df82d246fc05462a1d4319e7bdb01edb242184dc191815e833b5bc143c332dfb3b7a9ee49bd7393866988d71972339078f6c65c591cd06feb24ce8d67ffcbbecfe08610e39fc0cbe9e3fa7c2ca79cd4cfdae0493b53361e7a471a3e23
+B = -919876c963c181859fe87695d2875f2d9fb9c17600cd0bf9f23f39a3f0e3dc129e990d4abe576a243a841473578d75746019a29e315596e159f6f0616cfa58b5e1a4ea53f187f42496a5a4bbc2f9a46cfe138387f1596bdaad06e7895780ec07fb05af359c76833cf9989c7c0ed2f5b37c67fe0e6a4fd0f6bb5b6fa54de684d5
+GCD = 3
+
+A = 59dddfb46824e489198c6d1b256b87e5ea90184585b479ef6aab716dd6d8e8747ae87344db8ced454e1474ffa662e4627fef10b66d9399cf835d2222731bd069a8ac0dd4eac9146ea421d7ab60680f3fd37d12f74c4c6550b9fc002c3a8b2c8301fba23d40035a76cc61ea95a95ea3efd18c0019ae76b1a6d499f915d0275d5d
+B = -b0c96aae71b5627eb00c2b4df9e4c80817ff6148ccdea632e1ade49311df3200481dce42508eb70be7dc90e958011aa00298a0bdffcafdbb06c3a232b45cb16f92a84beb09187c7b38de5da32e9286d7b1abe2a59dcd1b0df7f34baa70501ac41075f4c08d9c06108efd1fa14e6edfb281b4f898c4d0cf0963bc90cad3211271
+GCD = 5
+
+A = -226f4f9ab805a21b13c3af0133778c611447a9da0f716e2cd12a47b509dc1ab4893d6f20040ec27b80cdbfc39566477cc0a4b891ea4d793e253b09370361edb58a0b26810cc2ee325591b3cee525aa63b5fca3c6014ce7d684a92f9013df1f14a31de8cceb91cb89fd29479119ddc9b463d33527eb1a3ab800dcbb15bea8526a
+B = -1223aedf7add6aa6d300f25f53b84c27657ff045a37ebe991718fa8ab3f5b97544356f5184f03c80d49592a8ff051f0f11b5b1ed2d0016d1f7498a58607ff3b3f95552de42668237ffeb73fac6e7f4d74c58436d1635da85de9c0583928698407cb729d338a7224206dba44ac12c996cdff510e68a38adb439ea3ef3b5a0c471
+GCD = 1
+
+A = 9965821b1b2ee6194877c3da96749e7cf7259743662382365b673f1046d84cc719dabb4a98c2af3c4a1406e6f89e848a47be67a4c1c8cc5b36c8c2ad2312d374431697e3a9a0348a261ed2abc676331d798e2dcd14dc03964767c94968bfe2a14d71245123e36389466203a3fb32aa7b9cb251e0a517a27ef60f7cd762882fe6
+B = e079a40bd4075e1c3ab043e919c12e39cd3925bea3eacd8e519ad625b91443fa1a7b7a280f757663e1fd5cc64cdcea0ec5f41e382b3d0949d697f425a26bd2b633c1bbdab2912b99cf8d1b97653844fc8822a7b077d31c6538d8a1e09002745fa492ac04aa7bff09858f5a436232e48e58ac3cde1958dcc4647ff4cf23e25329
+GCD = 1
+
+A = dbf7e77ac155d1ef8e653f636cb7dface45b1f04db8666412db2d9ecebf3a5de12ea0884f4c34736dea4600b0aa892ded72505894734e2906a05d1416d684b00753b9c37868b44a8454bb237bf15a7d63826d6a26b761376ad3592134ae78c141bd063b2e55a26c0ba972c2e0b5957782351c4182a8f77d97d5ccbba78ded8c
+B = 4858f94908c783045a071e14d217f6c46c1adecf0e279bf556113fcc88802cec30d16f5abd7c8f384da4a327a1193f4ce84b8c937aa44538c7d7cf1fea3c235f11d81417a608daa62d374d38d583ad66a794e19424431c03b71891b7eb2d688fe6131ed9b972cbc0d6111746cf551346ce8eea53a985f00277f4d3bed6297c6
+GCD = 2
+
+A = -14bbb77462733e03551d9a0972153048805d0f690f02165db80af21328ee6161622e38a4c9c065243e465f93f9f6da1af68212cdb8515d10a44ca31c01b9c37480fb74e17c054f2c4a7e48ca759490c532457ef79630d9a1d7c5f26347f420ae4d5a8bf884abad3ad783a96154463e2e6b9e0252373807a6fbd4f92f0e4b6f0
+B = 5d6b45d1a99fc1c7c57c8018eceb3a59ea10117a974b549565f9c6535b62b0b411f7caba081e4379c19f482ce4cf6bf716773f31c789da851180ad7cf41031ac4e027fa0fe17ed33078b12b80ec133ab72bfe4c625e5fc6d1d247b094ff1229f2bd1d172a851f53f691921eb61887f6926e6fc2be50b86594312e42804898110
+GCD = 10
+
+A = -765feeec7e34c125f82dcd19b472536c6bae3285dead28633c703883c724de4a4bc497f43a1a57e223928520fb9ac262a2c5bd343517b37931b7d451b49798b2975fe8d14e00fb10bcd149e955f347c70b5b8ed0a0fd080ce5224a5250c6584659509e9f25d76c49feb2875293cfa31451037b0c7126af5bc9d0b79c3c5cc9a7
+B = -6c30c4b72d5a52e551dc154f685d1f34d2e5dc11943ab01160ca8c1dc98c54dba776fb7e39e69572f74d7ff1c21831222d8e6657b732fad5c6aae77e87e7a99552489424c6f3b87ca51fdb45f51b523196df8251b71fa9c0a33579571b80ce533bbc385b8ee7a532adf13e66134250138bbfc5bceba9446d53a58740cc005fa3
+GCD = 1f
+
+A = d1a9567c95f0e09515941b6f0cdd90208410e6b266825a467012c2ee9947b2789b06c06c0adc40e35ad3c2b8118945984caa2d65b03882668c654a8934037ac0043ea053ad58a864d00545d047bd0c69b72c490ca7faead1b9b4eece5e7d2d0dd93a2b4c84cc356f8b398ad546f4dfc1fbd13ea25fcf12eab8738e19e1a70a4c
+B = 1678b02461ceb06bd4b29175c1e11671a0e41a2b951605fc034f0e585f459728d124cd51bd5b42048bab31eb513522410daa306f9955bc48a912a45e3c929c54dda1160b992b1feedbe9ae06f9c0753b87d234d941d2541ca8324a904af0f8d4ac9a0f6a2438a866a0ee1fabd182c29dab29abea0754c8ba1adc2ee6595a67d5
+GCD = 1
+
+A = -6655101cee19096b61bb71f92fa0ddd3cff5ff0ee1986eb9ddf712b2a91cf520b19d4a9625e03e835452cbb2ee89cf4f2f0e0a849dabf4b40c5040ba276046c0e26d8c402ad11164d707cbcdfd33326111b077ff8d33f3abe703198185bbd1fe67ff9b4d1af3f0168ef1809c246816fe41372117d91950c1468fa797519ac67c
+B = -73cf12ed398c635780dc71e5b6b8b35db5edefc42f4a0137701d69d5fff06f5e8bb76366225003c3e363c2adddccea595588db0cbaffde7a88a6c1f5fe4227c0b30436c917f131a3a7243890589bacb81c810c9318d0b26e65af14406ccd9e461470e9a40c1a24de3ebd6ef2b0f906dce3cc7145aad699e01256e6e7218c2a95
+GCD = 13
+
+A = 672cd5d88a3b7ab490e57972c336895d12b22fc316020d2fb9abf419603af35eb536f15ea821483612072a45127980b2639fa2b467743b2337611c62bbdde1547ea604a7acd6b55e7c36ecc74164b19d572d63b83281ebaa3cf3901860c8acf2fc09b78f48052a926202712d33bdbaf3e2f8d8b6a38631232b1143b538784218
+B = -ecba4c9220cc47e34e625ded95c032628a27baf61b13fdfa74b9786b718fc64c8491fa9b80316212b65fb15bb9d97259729004bb9095adbb34fd59c0caacc35ea950cb0bc692996098ad31368621e6f1b1846de058294f739f516f126bdd6d8be93e52887d3d4dfa619bd67295080057856e608641e32f833ede9eb98360ac49
+GCD = 1
+
+A = a59d98ea45597b8a01b406ab885f9b95bc71003ba785d6cddd1a0a4631695c15acbdfaca6aa2f00501b9b55d795c41eec49a7a42b80950d76deebba132797755a4ab9d05479c859f9718c7cc9e7b520db8f5121d34eee810a29b74044d296541da3ba710222c51acbe926165b83c29f1eb8c022a87bc77e8db6cca00d8517683
+B = d18c7a1b2f314ecf2de6e5e6c31de6f02fe0915194d387cbdca76ea12770c75a663a56a91c23e88835fe527eea82423b455157534d8da85204e18ff6f2512174153962b338712efff3c271ee220de7e0e29cccb2f5d06e7d41986f327805349b4094d8eb8b8314e3f53f6bc40b3ffe2c4385694f1f1a025b0f52303d1353023f
+GCD = 1
+
+A = 275972ee388bad072fe497034cc7f38d331028ca1b313538c15a0387a6f5dfc37e377efc4e794b5e42c81bc9be9ff350867f079dad090d387dbc6ba9c12a3244ae0fb3df7b0d8c42e918f13f82ab1ff1bf92eea8a3f74e7ec1a81b90b423f93e477760efab431c131a7bc1496989011cfce4e239ce222fa3bb3c35953cdfa328
+B = -773b70cf799c3158457a236490eaee73cfea16d30dd4e35af28e07c6841c2b512991430a909f65d7a198eba0c8408b96dd5b3d1106b5b9baabb3c6531e426e8b6623f7896fce31687e6c0a3c9b2fe598454a3c83d808e692efc9b7cacc480b9d081b352a37298656a6be0c0e5e8e809de08d9a364c8ccde792d48c709738d6bd
+GCD = 1
+
+A = 50f3a4a3e98386bbed3d3deb76a7ff406c8cbadbfd29d1bf4be6e1856e012cdda9c15dee2eac79199983a36f753d9372c41acb60022d3e67f88883e2b12044bb4ca0baac1cd5a6d2e7c656f5da5a6e0f0969539516d4a938b61b790e5b43a189eb8eee0337e912b4da67f80e41e00d410f9315e802419f9e139b8dcb1a4dc830
+B = a09e8b5cc6f0f713eb27cff04069cbe13cffc6a535903c456c06a721f07ae2b497cc8d03f1ba22b9d4cf59d24574ded090eb4382c4caf84e8b2227bb2a176e7a372dac2836fdcb0389daec0d3cc41e2c6574b0c7661d1b9267e7997def8ce88e03583985f151be7119546f52a1a85a21c2ed149956e759c918e1f7bfd5970a42
+GCD = 2
+
+A = 28b56201b1fd7583e9617471b92b0f9caec80f9d312645f63140934eee31221b37ad6bd48e18d9c896c4247c7803ffedfeed4bc26ad4879839e69b38a202df194c0e8ab99ee68c0d4ce5afadc0a1315e552210ab3747aad2c458a24543fb5b9015d380543a9eb4b3fbfb764618fdb9db80869ffbddd75522a04a00e52351e619
+B = dea8a62d414cb8c815a2a505664b87da35882d3a883443ec683ddee00463d74f3c098a2becf5daa928c0a206fe776790603c89725f92d0ea7567a4ea9bb8190861286b0cec9198a088a37821c462a9b52a86dff1075da3460d240193dc4b843e6c5b6ef0dfd85a978b09c3f5f5e832ced400e49b645ee7c2d19764ff79ad89c4
+GCD = 1
+
+A = -a2d70c04aa7873f30daffa5065e8edc1ef9040fe395e5f7cf5317286460ecf184009ac6e98a777aee6cc2d06b026dfd32e92311d8cf9f2823ea6c5e358003d834033276633a682138e79257a832bad3a5b0865e5ff4312670db2f3df7fff085bfb04682bf946b48e67ee2e1a4af62a830e78d1df182ca1f6c9d6b51ad81935d2
+B = -54f770b408433cea93181b2ce6d02317e397e7fd2b4941527ee1a02bb447eda4ac556e0ded07c179cbb269c1a9d63885fbb5c49ef6b5991f768161f4602bd3ba6dc7e0935403f8dfee99c3f0d626db7a282225c16ad2725f006bbbaca559800931be938d388fe0ecb00cefb6174ddca426e4635a25f7b64e00c0f19ed17d9013
+GCD = 1
+
+A = 9736a7cadc6b84c3976fa42051ba5fb41420ede032e11d75c1d9829996bd3ef61a4f34ab8e9d6ef1e2b011e058c67ecb049b940ffdb180a1aa45165e14954a06a78e0807a144430954122160b3c30488f2787bd1602f1d536d9f206e5265dc13411b6fd86fb7f2481d50bd0789de55261fe8df04d42f5b2d3dfcd6ff928e00dd
+B = 14df228d8533515fc27ae4614f30262e939bdf69ea5781382b00cb1162076187af453ac0c62c49b19f56f2c03d125b1836addfe2b5d19f990573d02388ee86962d9632de49739bcb16aef25321f406fab0dbdd9954040962d9c01e3d5f27818559f606293d5626d0457868b5cb6cb29e7300295977e9b2929f597595691e3fa4
+GCD = 1
+
+A = -6ac8530e4cae087a08ca3f5f99c2125ad7df963ca4f67bc21a3aede4b5a7e3a851f10ed7018dc8166e7d29e8f9afc11a00f3cbc2b3816e6a424cfd2d4ae2512ead649a3c22cf9e0906037e1186d884bb6479458585cda2fc28197b546a52653b58ef6054bc2111980f414a2288e93a3d98d58de7924c4098c7db7f60477735e
+B = -b6001b6bb270892757672f3edc34ebaafa8288a1da76a2780c308e913612f2b95619d103058bc989f22ac74930bf100638fc151202833f22a53cc1965c6b4d840875054dff65af192034e13d2ab496b944b162c841d34048530cfaf68dcd053385538e00dfd2cc361c2420e7e21326ec9862566b3211b4f1b6b0e8765db4e855
+GCD = 1
+
+A = 7ad10bcae33469b823206691058f5006831e5f4cf8c899e8e805c296c2d023fc9fa30ae48629c9121a1b7b7baa7869f41952d976d3325c20d78e365eb71ab9799ce4e532f4ef01cd7890e42d9d9f08106f5d318997376bb39bb770bb53df6ac92a5f12161cfeb1b992bb6942ac07e9dc3f09d1dafd9749a5ace44eecf0c2a2cf
+B = 8121b391b68864fce85167ea74d7fd00ca5debccaa1af7ffdfc351df9034a5ae46ef7e3fc1bc69cb6ce3d3d09ffb34aa97a4e61ae7b1bec3007b10f2685b8485177e9d458fefa1e669a65266cdde1ff9316fae0044de3c9c5f2975ec3fa401c7b103f044803ca59549390cebcb2789fa69f7437764216230cd6ea8de8e2f3de7
+GCD = 1
+
+A = fb162c82917a2526cde13085a3547dbe3386789f38dfe9319005b428ac1a48855a558ac6d5abd3a4f5476ae35f1cb3741fdfc793c97e974239ef5161c33b7ed0644a2df7379d5c6ac4c4a9e8aec886410284d33949d031db8aae609bab887b11a0b43e11ad9318fd4d49e05d5366413aec0a2da7591f06b0f1a9600065c0ca62
+B = -31f66028ce40bd9d2fa06c03f4c6fdff773fdbc2cec0b96708bf713dbfaaab75159ccc7404e2622ead81c4d8143a7dff47d0e03dbb08a1ec7a4c683633a27028ce7ea0ad5681cd323921ee7a858999c85042ddf43656e5dd76601402763d08700017b65886459c0aa6118b6e138b6b33e9449e347c7d0d931e25aed61b3b7b7d
+GCD = 1
+
+A = 152c0081f69dc3e300b502ac728d860094fe3b7835b0a94193e4d24b565b0e5a0f0bac601d770d2de3bee614d9cae108092bbf9bb5cd49341561d9ed337df3e5dd22318a4fb2e86a4ac40113bdef9cf2ccadb23cda530a40ffa9d31fc272fce3a55f6d65cd21a267001ecc98719c74807043b9ab9105c4ff82f5ad221a95480d
+B = 4c39ecf56e2e4aac656aa89eec6b2607acd6a7a707b06d90eff64db77681e4869a21107898330b73daafc3a03c508f0c314d658b74d0b5030602bdeb4146ad158a9441ee120f86b53de8f2668de576f1adc6b426409472591733a0dc323f23562ec3dddd542e34cf43e6698fd1d997162c974d9fa898fcd0f07a0ea883f6972d
+GCD = 7
+
+A = -1a5c5682a4abc09bcdcd8b0a9b5e01ad9ad199d6fb4fe64d2b3fb87c9e436ff8d240fba52d78f84b2b4587c281c161290a7e6e2810c78ee7221057af32c86df8f397cd081e1d9e69087b8c441580ce17f6e6449e21dce1995faadad23b0284ff4fd80093544decf4183b1ff6ba407f46aeb9bc236c5ae1a5ae5cbedd264b85f9
+B = 4a6437c38007fea68f48ed8e816bc4b8295736bb8513e8a97b6992e113df68fb7dfa891794934552e9401aee6fab2f57c6a090197fb6ce24077764453f32962602fae7ef52a6c9be9046b029fadbf0da5869e3ec7632fe797e14db9f8d2d38b3e1a310de89151d6edb33af69d8af0ffa3128e42419c428ffce1bf42da741d948
+GCD = 1
+
+A = -ae54b5651cd7f68978bc22ac1df6e12a0401b44c01364554e5190a47e9b7a7474897723d5438b68122998c08041703d8a4ea6d7b12e34342dcc8672728f907fcee17c0db1c4da54ae89c44c3e7ea07c0f323275fbdc560abf1e6afe94f66cd8c43327c62766cfd68d44981b83ae3a68291eb37d35a871833ebbf1fbba3c66cc4
+B = 9b988e52169bc0b39923ada8603d028e4fea0d6610d978d0da978afa8943af9bbbcbf687a9d44babc490690077d85feaf1061a1fe2e8190622b5464090b655b35f5314bfb0b95dd4644aaafcff093ee5642114ffdbb4d8b6d55bb0a941d6ef838bb15645aa9c379a339df2f8e06ca91e0a2cef3572ad0d2f7b17fcb3e842a6b3
+GCD = 5
+
+A = -b82b4a5f9137a069db269e477edf6f5fc306c26839d29a1580f611ee1a0822fca8a45bda22199b8f46873eef8c81d36b6bca0cf122fb7c9c194faaa7935c655f039b5e9174013315f7da8b666d9ec6f2665ccae864a802299ff2313089b54ceb6bfecf9bf731112cbed2b6ff8402c9d8c545e1110c7208616cd44efcb86f0cfb
+B = -c20bfd4e6c25282c961079f20fa65abedd3c18748984abae47a939f5acb3322b64335ebfb23c275eabb3d20700ff837f09f8fb97a62448c865a5f5a3659363bcf0ba51a762afbdfcbe0f24e4afb342112c912a79e361a2c75f273ced8dced1138088197a3f9f9624f5c239f6781020ba05e347bd1daa5fca56e320745d69fa3
+GCD = 1
+
+A = 1249f09f304ea32e0ce5aef1c661a6b6add1eaed1724f33107c6005bd695385e47ecd3c2f71eb579209a0cea97b9a813f85d19dadf827e8d1544bde457a8b97a7a77c68a57f99c912ee08188d67719efbfe9f4cd0e5108fc22c9ef0faf335b94eb572a4b4131b1b370a97e17b14a69e6dd245d4fea0f2f9da05f926ac69800c2
+B = -cf5e7b49773acb326749ff253c041445250b604c76f435998a61a636efd828d041208883f9c55ba7c005c6ad4af8cff442da0aa0279956a6c381a99db90686a3e7b636e59e2ed84c9935c74ff6460f499e10c597c37604f5af8b5a6d5bbcead2779a2f1393a79d48234c603ec0ade5f22329a18276fb92bf44fc517625adc786
+GCD = 2
+
+A = -12dc61ff7bd4e228a844619b16077cb4953ac320a2382a197c4fb700b4b684047369fda957bd57c4990aff262d571c67a2fe7ce0335ba97ac33974ed7c127b6cf4f43cf82d146b0de727c39057b70e16eca92b187a4ca9fa24efa24a4ae2ba62af895b7ec64d568851a9db2aed699a52d5615a86c3a62f2eec1637c02420bc37
+B = 397b906ebcfb54a9ad2dfdd9dea11cd22ff9a2a7a7505c2399c5914b081bfb3ec9f87b88bc2b09f549ff76b9a7ab09a751be9182895536144705cea87b882d3ee0a7243c0e89dc10d4f1f7aff2f67b582bf9c90b461c6c51ee8d8da5655650a5e556a0236abb74fa0981cdb98d5895b751bb9c46350805481d80e0b238c7992e
+GCD = 1
+
+A = -d44596051e7555297d94b4648c71967019068334fb036929765191011b5c2fc189428fe9146372ca8879ca6e250381b7fc0c9a821d7d33e2ed03bf4aae967c4bf4cc400188ef0848c79605260be1d96ae2d7c77408e18407f7c7cd00710e7d18eb983d42fd0256e939ecd6d1d737401d64e43ce90058bcdcdc9c7f98675b83fc
+B = -cbe542096fedc3832aa562aaef311914d6c5900f3337942854c4efb1eb12f93a3e3c58b9f26d26dad191ca25ee4c6f7c9c4cd59929887c365c040038eb20ab54cbfa95818901e919c308805f25b2fe59ec7d097f2e593df3fd8631dc1afd5964cfb042f3aa185fc966044533f15d084907efa1e60c5a509b60d7dc2d5c23a81f
+GCD = 1
+
+A = 6df3504b7b87167f703e7fd496bd6d19425736674640aef96c21bb6e2231b9f8b02cf344e4bd6dd5d6b5eb4a6ef267fa7b6529971b56fdac8ba3f7a908ebfddc2fc24990e16d3a5a84d184616b4dd17ab41c4b2c8aaab69386803f955d5b3a316111a0982e27082743d55d03c653057cf3a5b1a6c90e3f7c414d19e789a0ad1e
+B = 806a8bce02c84c7997a6a87b6afbecc5c44e1e9d0f7bad7a45b082f9fb335519ce14e21001042d29f662bc8eda29f67c780c46f1b3b71ed6954a04d3d50e359f34b849358c2ed72059e0fd77746584cb13eefb260c8ad4563e67c990d9086ddaa68a4d3c32cf55a5cf0bf105fad2a22ac29feb9b515fa99caddc9aed2e015fc3
+GCD = 1
+
+A = -f6c4b7cdf00f533ac8237f776749b05ff7de4a59b6caf880eeb649379391c4254fcad5ec15d4215fdf5f0d0fae4135e9d48a2e15a263b3d87b303ec8d661ca09051fd5eea45c0e384da73337cc0d1b08cae551d21148b6de0d6418d0b82dcacea5c5f9271253036ac8fb5803984eef0f7dba388d023f0831d9727cf9ea6c012d
+B = cf0f938f35e54bc46633a9c31a118e66727a69b6990e643e6fe530b99e2ce65aab394f138ae2bfb64843ca38fcaaf1f9043e548a944d3b2e199d4fcc9e375fa9af59b9b4bc188028f3cf2f5dfae7e90716eb8c748c438165279d1825f378f4694f5a29e132248ae0b75af135f9d648f72d20b1df9e64709e87bd279f75c570bd
+GCD = 35
+
+A = 7e08abde3aa9c51a2d331e3215a7c5edfb271ac41d984f75f177f4c5d98d8bc4bc03559df8508042cb771781624e52a04203ae37b350656b6e189c3bf739c2d4969ff09b3bd176f4ce25fc961b8d3ed1a5fb14c24cebdf7fe0872f5ad0150a0faa6099a886c42aff58850fd3895c2155a22db644db77948c44dfe56e374efeb6
+B = -eecceb8c5417e5c6b84cbeec9e3c23b70b976b3a2cee213a9de282cc753d7390547dece964e7c2752655092c731d0e2fc65edf7dcae77c3d9e8d4d207188e60200dab768f0a45b39de5ed3643c3a949440f5260d078454734309879ddf6bb8199ae0dea4b593e3e6a64fc67e40746c69c0742daa46a37fc49515a86fcf9e5d63
+GCD = 1
+
+A = 26f5751b949ce3fffce89bf0fadc40a022f85ef0f7303b4855a4590b3c814ec1d504291e3cef1d055a67700b1f7003b017b6a6499f8f02e45ea3e696feb18ee11dd7c2df4f5bf4f93008d6c49bff57337d208176806f134847e3163ab3cba7e1916019a9b8f6f37fde062dda5cb38f1908d34b0a957086350929c3aee52004c1
+B = ae5975d32b09104da4ada12423d84e8b38db6b79f97968b09741f7127a55bf5652bfb740607a6de1238205a082bc20735c245f390bfeab18011ea8ed60a514fce37de604aae1b8ac08484898f698de70d5388238980a50fa9ceaf4e8d93bd07fd1987861e174d9bd802565b17ce4d717f25a9a0bb37e91d5e316514615f802b7
+GCD = 1
+
+A = bd8a84158928af45ba021a6c7c3239539f8ffeea2d8b33d23c8770301835f9b13e86332baf8176d099fee024d0e59838fd4fe380eb5198351b9886354bb7ae24f4596afee3587cbce2f432226855ed58f6450938956966a9959ada06fdf8472401b367880f9f7b419706de0f1319a442e6a093cccfaceeae9f178986a986b87d
+B = -6c9c70ab6bc3f03b44263a545567391484e1dbdf9280a217ea5fd5f196f7d9b57a4258274ab54cbe3c3fbc92b11d5e558481150de5d53d33f6efb7ec88772b4a52fe50829359099897f8f9473974a792be4eedd07bca38de6336235bfc0441280a5bb63e940313412da6608f8ebfec2e40aeae252d8793899dd936f72c783820
+GCD = 7
+
+A = -1b46093736125630aac970a7b45a5ca13cc154f49ddcfe61f09a2818913829f184baf185a9afa044389e1ee00351c07bb6477a65c5ec5095286dd27a4587391278c421a5ba787db4ce0c506079633c8c441ee125ff2054df7bb7a0f7e23b0b575fa5fc4de303bf7cf2f7dd25186a5daedfc3287503b288cf827dc52875fb1b52
+B = -8f9e65ceb82dfb8f9935ef6b080fe47cf19b3cc4997b46e77c605fe8d63c60961dc13d13ea7f6b6713c4b6e98b253c6df6fbff6577682be88df974e1e33eadb992620aff5ab7af2308bfbdf18a9565624ec6d9fb3b5cbe80754adba3feb8166d1feda6ffa4cf042edca49fe00eb95665ee6e9ea58389d03c4ddb50187528aeec
+GCD = 2
+
+A = 86ba4dc8b626d95aa46d5520ccb51c3a45c95360b8c395614ea09a7200028e9573f66b4faaa0a2ceca8511ee205df8a3f4eca52caf1db785a97ed744de6e002cd4a7d8db3a5b897a72497a1c3794bc49448f3fd5425c8dec658bed51ebe393d0ea35e2d19f8cbf990eaad5e1da896f6d517ebf8f49743d8293626794af7e195f
+B = 812eefc8cb684b3db4aa019ca2f08f5c8d930a2be11fef2096120ccdbd9b08ed043995bf70b7381a943a6b9b70d64d3690b75fcc2f0c8b7e143c4f94b72699820ecd7b429e0687a58c7be01b5e9cce8fa643a681f25eaf49240af277fd2cf4673d4de1b4530578d4b1c60b4e243e99312d235b35c3c063bcf2b3eb43408db8d7
+GCD = 1
+
+A = -6a0b4cad8f284fe26e746b9729326d02c5ae6586e686b362e386a159bfc39c0d694ed5c5ea1a7f879c086cfe51282d5fc16704c092f20ebf2ff5b969b11e2618cbba0c17ae8e6b189bbfa5e10ae11beceef45b998fb36ffa3fb266923daaf5e1c90ffcf9fac309469bae974e66de336269caaf1d7ef857836ababa9784b849a0
+B = cfde7ad3cfc2f051c0eead4a686b068025ddef5625ddad97c9bec5ea40eba38428fa360524c953a3add4e81da55699a6aa802b0c545f33b70b15bc94e2fdfb83db6d2fecd0d3eb7f662e8f76dd9de464a5ca4d3c84c1e2c3c2ffc386c05d8027de77579acfc4b02020c8c5cce7c5161204f5aed6fa77a7bae012dd4d00e8bd78
+GCD = 8
+
+A = -7d532cdbd5d32c1510b4c794b34dba600c55b7c4618fb0f70a4910522b6b3b0764e62900d9bcb92dcdca07b7e64694a3d4dbaceb5f4edd568745f17d8f2113b6dfc631cc50df3bac7a6fa0bde84f27b07c11aff4a23ac7f9b5538343154be92bc129367e6f38b07efea352ef9d19c6538c9ed0bf0617a4164a5e53b57de7127a
+B = 4e8a5eb3c193404fb2c6255c70d652106a05c56ff83151d979dc393f2360b9af49e538db08b5d519e0d16480ec95f112d77a70987b9ce618f688f1ff734959a67de03cc15f0c0d27c4b29e61eaf47730d24e1b093e2f66c9774a6306c3e76f7baa2daf43e95fb53c94e787c464c74d0ecdaf1d0a03dc70f32cca4b274e8d6ace
+GCD = 2
+
+A = -8e2c670baf6c5404785ee3e5a5609c1b75b94bac7948dc0306e52401502549ee563483d732acb356e6fc597df29ff45eb4efb114f3826098f1c405a0e8264771dce5cf63a49db23931b11474bb78cbd4592c7bba846a210260193064363eef5f9c7ea34b9167ba6aba693cbf24b1108accb8e1c0fbe717fbfe1d8cb4e9c09060
+B = 8eadfec28a09c920b35acb8a2f1b7ab25812431878860737c18c96afe11ed5ac55465cbdbed96fdf333f07e0568b7c77aa0de151d31b347314ffda288188a71b7f875716a8989894974f415e37490c591df521d1421cd1e3f32820f23c5eef7d78223066e5d4ef1c8a0ab1900eaa3298c4f194586db0c3153810f5bf81df3cc0
+GCD = 20
+
+A = -e810dbe611b08847676ed4478b6e461946e960655e132da494766a5f4daf1d9456697587bed0a5f515aef91700c725f29d2a3522462ea8b069a8a5a0a379b609e91863f7e4df522fc69cd18e4eaedcf97b834a8c7b42b5a53c6628a1b6772f96f6678991d82393b708aea74fbb9916d7b38eae0399720a3dacbdae31189ad1ba
+B = 520cc7e7e8c04041f5b6928048461c00c8a185dcf2aa97df309dfeefc4a03792e388417162a64995721b4f5bf5c14120c02fbad64e8e247ae2816780cef5677ff86189bb5e6cb40da330991bcfa5ef0484f11bd0ffa1394923b5a57c6dceb2220a0636d15e2a337066ad0002ec0fdd5bda17ff0c4fcbef400b4e098823fff6a1
+GCD = 1
+
+A = 7c185ffd2a9d85e9c1e93d8b587a0fe6f82abc742ef883bc3b9ab6108e998279fa31dee70def428789484f854e4621b4e2e1bfae9853fd8117535042094f252f684a0c01092e6865f5f96cc99c3ea002cfea909da83e37c0182b121ffd3049e6d62b60d6fafb3aded2551b1c92defaa6eabee304de9ab23366713470a0bf9360
+B = -cc8938597fb504a423e967d5c5724dfd2f819b59e9e82efc42809218c7c8e32c7a0db6de1fe3003dc37943598ccf7e4db4fbe8d760633e3a2f307a6e108a9a2d7699be3c074cdfe13054522fa03c89ac862db210ae1a17ef93587ca53cc49956b573c000515b98750c94a590d0aaf2cf1519fad1ec97a61b50686147fe54c7e3
+GCD = 1
+
+A = -8667216fec17c48ddbe51724a122cfbf1b55aba17d8917ac2840929a983aaf157dc45f4872a6f7218a4bad4edbb02e7ea616ef14690364d0157d6ecd894827b3b5bc8365df08e838b0db87c2c92b9edfe628cc8734fff5e0dc425a7c82d63408463f754f97a74822e616cbc70724143b0398c845eb6ac61cf254743fb25b20dd
+B = 8de5e505dbfe6c0cde94adffbfaa29f097b9d8148572be4be8de40f61303bdec687e2f450cf2cd7c6055bd4271e9b1cfc281de8b142bf2019cb121aaba325f38290b7030616894940ad00363e4ce4b3cead13bfde4fe7dc4062e2d679b44dcf67781f091ef10e0c7a4b2bffc33e0ca14e3e698ebdcbc1ce70d5ffbabec0600f0
+GCD = 1
+
+A = 4687222223cc6a0c08f499af5aafd0258ed3c77fae15bdc77571af30227f0a04f1f25376e7b6af961f538c3554646a34c7e3897b88d0e3efc58ec37c75eb95bcb177a5af2a963c267627100f89aa81a8156ac440156fb6015752be253f9ebbe6d6d7e51c570c3554f5222e19079900b7f0f8d64547a53844e266e600d4a3bdaf
+B = c49a39e09f1d31553211738c912aedd37757b6b9d1410ff3cc35a4697c84e23ad568bf22b2bbb8246eba878f92d07a6c2499b4b611b5affc0e18054cf95bd6970f11a686bc20c46bebbfbf55281c804262bc9c4bb481cd861ca5429df21e2fb6f115bf40ff86eaa0cedd1911ea889111550f252fe0e6913a569b099c396215c3
+GCD = 1
+
+A = 9cb9ce6a26854e1fb55cc94737b8c66cd115b688cf69b478c9f3ada8f032f30f4df96f405b8245a72fafee05214954a94461e9a630c38e7117badf1b1689caf1f21bfd5f75e9f1b89fba56ddfb9e44654e8e6343d79b8d1ba58b4dd3bcdafcfd365cd45d943e4e02215ac1a8aad1ff6ecec68db4c0b3f628e82460da5695407f
+B = 148180b8a5c3715380063d6de5d7d2b4923beb1a2d155bb7c03d89a5a3fea32ac2619191c6128eed4afd2d367fbc9f115ccbba19c8ee464fa6282771c66760754ecc8151f3d0685beb5ab553828099304dd5cd07338f3465a2320beb7615ce73ace166bc12891e73bf8194e697f2ec7204707eebd1a28f2d51d35ff6a6fc3e96
+GCD = 1
+
+A = -acbf95c6a8ebc77fac5c1e1c9450ec154f3c7bb5e559ec30f83d7bcd27971e90e90f5d543d2be26bc47e4ccc249c97e76045514a9f20ff2d5270c7a5e828c1c85966ed7528c5ef3cfd04dbb3a02662ed0cf08a08d2ec6c9bd5c45604c7d4c5a04c074081a8bccc11e4c168b209fef07d0e6504963b33a75b003caaab8d5b148e
+B = -6cd29d135ddf5dbc5e57c51e6a7ee09376d88c97fa0a58cba92f3ff7837afd6a6ec16fdff14e94b4b52b3312ffdb2896960246f231c7b6831693c86cb488573188785766d0b390ba310d8af0ff291bb9ebbc5fe3569e2c94106f4c1112905b5292383b6548f47cc18d85ab48d08d7c84eb90d2dbc23c4c61fc8402bd352e3149
+GCD = 3
+
+A = c049c5a822187f0a189c9b679d8fb54e4d504786153f317b89311d8c5f36b64cccc21edaf5a325f5b48bf50f87453ff4362667a0fe66ccdb03eba4285160464cee4ade66d0f7eaef51a0ae7d294ef8119dcee96bba53f4dea1c2fdac6a449b848225a35bf4d14afc330c7457258c2575ee76386579741d9f5c9d5f6e0484e9ae
+B = d7b9ecf7a9ade1fc887c37a5dad452a8c6d5b8174b01649effef9b5266bdce523b03186a772c8f7b24845a4d8b059ac9daa4375bbb78fdc1d7ef331c1563f69e62ec39e8df61398d60bba007fe9360233b2514d79919abc7f5dd471f979608a4fff6fa6542c307371706190cf59626110898c4ca0374021ef4593c6d33e4c5f5
+GCD = 1
+
+A = -7c7c4f12564cf218a6234f5a8235e4e077e378d647e674ad70fbf675d047aca85d76a140ac995b1a42bfc17c457bbcb87524540d27546439b7e1107ae8f74ae1fd28f062bc772e1236221d494fa4fe4b50878537a867bb494434b042c025e38d8925f404491f604d302a84dc5176c435718b0e0253ef063dcdf726dd1a61e208
+B = -27c25efe47335f04b2b9fe713366e8d34b6174df9d1aeecad1c5ed23ecaca287a7315f2404e7278dbcb5f8c9a116602727a198c777742658ae846d43048b60328df7c53e40190ba5125c4e7b896dcddc306033d7b86e89bbe95b86c5dc0576d0f1698edcde4274a34e46df6f54c542e11cbc55fa6fc0156de6eface2989a50a6
+GCD = 2
+
+A = -3a0273166cd9d182a69d4f77bc6c285483de210e864ae6c2e25d252876c65d6be5a809b04e724a7f8ca54438b04c0354c03b9ea0167ecc0ef57d24acd72d5c519d916f41a330238d0ee8c33841434dc5eb4941cde78f23d4c66d514669b8b30d42c1cea637937592a0d521db30a7f06d5f9bde1879783477e54349bd4fe8b18b
+B = aac206227045c5d9b12693d052167d65482a95605e22f5b37090ff44471f371595d1a57a937b9fc0d9690355ce790b242bed302d24687428a8da9983175e7e12c2e80f2a4abc893e1532497b366a1e1b277bb1955b4daf642c7da6b77cc729f4fbc2b7955a1d2c0a67d87d82650ac8a10c66d3b7afe4da29aadd3de65de795c8
+GCD = 1
+
+A = dcc0cfcb6aa6d5ef15db367eab2f12e45fb38d9c50ae04f8f591eafe9cd8065a896e3dedeb44c47e1819fc0d216faac828b82ce6815edc87672a29590967f0568bb6016e2b42f8cbcae70551449483efe1e7a8df85db38fc623c1c899a8cc65ff97a0f61ef77e4874ea9132b9762ba8736d0efbe9675e188b63e1007ea64bfb9
+B = 47c814a176bfb8f021e42bda6c9e33a5ecb22275a43b62c90fd8933aa7c64545c92b4627ebd872175c99f951aefb931ac9668aedd17c5a0518590f5bf33b47d3f487fe3ec36dbb6c8f93ab5b0167507c4f0e3c9d1459321e4878063cfd9e4249ccda14cf934d8ed365a739b99921aad7250de194d6fa4698f156a01b50bebbee
+GCD = 1
+
+A = 482f0747a26b07856fcd53041830a5561c66d45dc18ed9c8205c17b1ffb3f1a912f696a16a0fe092d5eb6bde593eaecb2f0e26aa5f2eac21f0eacb14b234834f30fb1e1e59ab12ff6a9b861569222e762d71627b480b75099d021d5e4566a45beac5474903f16bddf0e93aab609e258eab50f2343b79c56e44bdfd1c29ed076b
+B = 4f359f7e9dee0c0a1cf3f48090c6ef316f6a15829f1b616f8215fd04413289587f00029b8e9a58aa24e35054991b9c590c389f23764bf21fbc9a3460cae192d5ee2d2de88a5d0e0e042533bdbd9d6175bacfe3a063c211c59950c48838b9987bb0c35fd3423d644894a374a9dad0e88167538ee302a535820204661d999d55a
+GCD = 1
+
+A = e7998965f59c94163280cd7d68a80eb9a312927e2fd0a58797f396d0f599e4a7086dd001cfad91f0e99fd8289f0e4684d40df0409f00b046dd2016171feffd550eaeb8f6fedbc164a71a5c9babe3e90288352ddab170aa1b03c178cacd205a39e43bce98c53a838c29f98baa93265dea9b1e15e5496f037359826ecb550187a4
+B = b280b894436213be27d51fb5f4c4fd5c3158592653dd62c048203b7c3a5b84d566f56b0a0ab8a69d9e25471edb460a571aa34a8f1b88065448ea15b454acdc8d2f59590f7d3202bfc536d72eb2b2e645e0f22000cf8d8ed246c64a67dbeb836aee2fc8130ed70cde94e95e0e5ce19e07672552d3c0265046b2d673c1219a7840
+GCD = 4
+
+A = -741bd1cc129352202b699f301de9699fffe1b2ed1a9a0143414cf822e99d091a880f4c6e67b81cf953fb09c7d04dfa5318aa602769bd01059cb0eb12de36a5e9d982954014c7e032ad0a187c4c6cd7245e75eccbfd247429cac40b8ec0a0fc7d0cc40877eb03726f895170173ad18c6a839997b9f1243fd49ef71071d382fab5
+B = a0e4ba17a442e28aace9cdf6c46b10e0d3aa025acb68fdd27e2630283795a07908ccc941a09feac2379c7c4f994d4ee0a8fc7624783279b7d8c1173c048bfb6b00f51d89a59f907286d6f310814c6ee0e1e9d1e0850ff1e80c0e65e1b4314ceec71f7029681317bab664626c7c1e1b65dd9cfdb6223ba0ae822d9e75b25d5229
+GCD = 3
+
+A = -cf991a54c2463042d45433217710faddfdd64dfe7a7e2e2fd4d2eaebf86937747a0ac3c524ba9cc1e1f1a6aa44e3134664e26fc1bdb9023f9dc2501de87eb238052a77cb60341a711d3f2dd4febad04f1c0c983e936765e7ea17bc43b20fdf28db5212935dd696103acf3521999028d55f92da5babf6788fedb15ec5f0257543
+B = 3f487c6207bc5f8eb8ffaed70bdf6750afd31ffd02c8eb04e4a69f32e8e5395b826a626057ad65eeb648e4967c5d3e94039877dd5862168295ec2f4269ee33849bf76c7788377050841e1dac646abf960a8a159fa3153566180f2ffcb30990dc4dd660098573a55a18445f7fb63e995b766d227c241cc3a00cb2a0e82c1778ee
+GCD = 1
+
+A = -51ae4101818f249a3418700e19f005fe2f69a9a407382a808462aa37b2d8b9728b7debcf7a6438b68e88de78e36ded56f96317631bf097ed3b52a290ee1af994968d26b478c3d8ee6c115b8f082c514b9734ee3db6d499229aab22bdb66c40322387d0c8b73836a6c700ac9054cab2256953e20326c000055cde801a077e5d8d
+B = -66537e2cb5ab09d0cd5088ba58dbb4c8b8ddd5eddcf68ca5fd35fa57e94d7d1d8d9aeb6ffa128a807358e6a47fb8cef6a89a16edbd56a73355520b7331fecc1823143f385734314e0ab1f5630fa68c2282904db0e243d67df15be3de7b6a18971a1ca4d0c82606c92fe72de29f0fccdccb11fe992df142e9a0b6fdc66875cb78
+GCD = 1
+
+A = -a0e65ac5abbb8946e60c5718e51d5ae27df597411610fb63f2778a5ee4b913a24c48af79f80c4ba343c7b0eb529d0f44f0f660ed94dcd47772dcf53770a132daa4bc1350217629433b223aceab21bba211aed40474e6fc153529323b4af43b4775edac222f356077cc14fe6d8d23dc1b7dc4f89a27c67815851df11b9519b226
+B = 547679d5c75573568a9c799fa97370cb5421cc0371924267ef00603a452582b5dd88a79db6ee2a2aff8e1c1e320bd9d3f75164845b15ceaafd638203583b6d57cbe1d5fa1d992db1c8045926dc229bd2dee5dc1a4ce5584d23ac703c51248c13aaff9c7a27a82f3b86b7c83248157963264b8ad99af86db79ac762ad9c1eeda4
+GCD = 2
+
+A = 4ff8f96feaf2bdc5a311b7c604c3867776aadfa7391e14a5ee54854d08ab82bb630c2e77e80575a93fb56e4a37c62d0decd620173e2ab264f08a4ed6ddc7366fe9725ba2c245c5ba46eb7a4e04486fe478fb6c14c4d748e8aba7f4df3c3929ff27697c2307a3b5b4801ea36535f2ceaa5f6010da4e6854b8910c36b718d383ae
+B = -d1dbfcdf85713c749665987b31a62c9d29a7ecf6bf367b5952b4fd8b1361580dc487b37290d2eb4713c4cd8388048108ebe31a09ab7a08217d12670018f4d02fa3a79f0717d75990c8a03761751391184ad6f18e5c8e2598b722dc7815aa175cc06738c692eb5652cb839cc07f7e34b7a18110803b0d44bac30c9b0feddf67f8
+GCD = 6
+
+A = bcf9ce96c159d304b6b61c873d3b30821571b397f1eff085ec87f224eaf646fa6403db6b422ab6406acef4c3a03a363c69a03cdc2a4d1e549863e8477f8c915c4c93db5fcbae31ce4dfb4f667359d857d73fe8b8d8ecbf5021ce4a762a8cff371e8f172c74d9442c96b203df676ceaadb237643bfd3bb4f18a9eebf8dc37e0d5
+B = -cf0776bccac418b27d95d65121480673de732e76d8ed19127d976e80beb50426123ecd20102b4c3a9757a4fc104a34a620af5a35cd41cc0b77877b4645a5c6856059a98f2d8a771f28ea18650b4e8c96c441822ef9253e039d329f863240ca6605cc153f573761bde7ca782ac7980344c1b15ff6868e94cd64bd8453a8594b3e
+GCD = 1
+
+A = -ebd18c5a63b0b674299c42de80b6f217c9b84ac9425390ac0c146e1256d2609f5372fad2b128cca554942629f74dd179e5a90c84a884f6e609402e5b26b508986a6dae1701844108023cfaf09325fb3d8aea8e7f93c1bd8c7efbe7fc91e7d86d8eac30a97f404b68e3aa471cf0e0882d7837472b22d14258469c6c286481c548
+B = e1cbd621398f15d83c54175fd8d824775c8457e3aff649ab3b59d8a4a715a588a1abca24d76cd91ce5438f2316970edc50f5170a17a178373179177dc90598bc7c6271791fadf2e23af3f889dc875c5f3933729fbee1f84a2dac36ad6084299d2c66d339837e1c2dbf289e073085c827b178fcc97960533000f2104951435777
+GCD = 3
+
+A = -1a451d226934d260b82b691856f6ab490422a27f0fc619506668293f0f99d48601ce6e258ee6825ef2e343d1e1fd1ae3f0f661d2d40bf3c25a382d2f82a5c9af147af05467e2e4bbf6fdc67df5cba086df21945f3dd0b9701a68a456e1954f9499100bcc263a754b415655ec6f47b4de6aaf20af51a13858b02cdfda9d47bfef
+B = a251cc8d0d1eb7ff7e2eff9ac36e01ec3d8faf1c8a8004196bb79887edbf14894e9ce019269e04652ad95c454445bee283a4b609787c2ca307ca5c4c1ac37366226f90009991b3ceb08f0a5cdd1002e33e357dac1cff7b1bff1446ac3f9f75d7258d76b25776062ddbf5df44dfba55a257c6a934c6d9e095c08870296d559d6e
+GCD = 3
+
+A = d593ab06d4321d8fd431c7efee0abecf19955ea34d58675ae54944e1b256762abf06156ddbc24e147fa48dc8f31fc44472594d825bc504415527a6ab9e8350d06d51f08478c74de836d44a361f7e0908e4ff36e718b85fba119db126e8dcb7623270bdb91d81513ac6fc178d1af3535af7dc8a3306319c0548d6093242352568
+B = 4ccb72f21749ea14e64d692853752df499a1edc280eb24be9b0b17871a26c19f0dee7135a048a4c843b70543dcd6cd9a5317928bf27fc741e2e3b2a0465170082d03e08dab3954b711278b68ec73db89d99a2be3d764f3661f645e2557d5cfe0d825cd81ee70c9047d1aa22a3cc054bd7c03fab22a5b990f563db2a8d4782cb9
+GCD = 1
+
+A = -ec6e35796b5e8dbe52ef9ab9b728766e21de21835062167fef2b9cb3cfe0b4a5d103631790549e0e7846a7e3421ffd9146fd1a9c84a68954a194cbc5d730016e8d8df95d7e35c2406c6f1cd2b00328e08bb0f853565ecc6bd262cf95a706a526a2120ebca2bf9a8ff2dd8e25fc290ae2f5294574e2c8647b55114b0800a1b16a
+B = -db4072e1d4bbc7a46b951e549b1e468cd6cfc4205378ee12db794ad6bfe021dc33bfd665940bd52438964ab986f641c5983e74e23768094355590edccce2c1d90987dedaedf8a9a3840f7004e804971d2607daa97974b03df376acf685af258569de2bf29a517ac0aa9085da74855a0076ad31cde94adc45e6dd794d60193a06
+GCD = 2
+
+A = f111f0846dc412346698a07450f2583b73a192b8db4f4d5e63f7d7423d21d5641919f87a5372b60fac786ecc007f5cb407c03e73cbbbe999cab22659ee320862044fb2f33d52d3e7424c12515a87094d1fe26061a0b070de63d55436169646cb0a5742728b161b127ab629cad0d4d74ba66b051e5d9fc3790380d74d582ddd7c
+B = -ea1b527f48dfa797dfa650e7c6ffd255f96c37967d9b8327a8c556401aae49103b4d202ab0de26bdcbe638ae0528707f6772ab0c71d34cbf60de735d6fa4b4736bc93edab15055031cfe56a31a5fc8dddbfdd7829b1399c295934269b018ad4f6e2195da8c2da66d964ae376e0683671776058ef88584baf483e63519b2ee299
+GCD = 1
+
+A = 7076c80ed4000cd1cb5c3d9b89d1e09b57eab0c701d9b1b754cab6faaac932d745ef0e16f1fe26440e34e826ed8f1b8d181a2598104dea50aede6a7e56c666c0eb9c905c05bb159a97b9339fa4bd888449db2e9fc0e1f82f3f90d36917f5e05e24bc4ecea072e9aac7805e9c7e637a8712e3704e9f64e9ff3bb90bd43a84922f
+B = cb9c40f46ab68fbf0d638b0dc394dcb28a51942b88b07b02c282d4ace3d379c49610c0e62f1c8f6a472370955e868d853ca14d1b5ea68fe5cc2fb54708a97e2aa60917fa1925f289bd723da5f9d5e4a7db6bb3ec01ace76d62786fe9476b07fa7408ce54e682fe638ed0d075361178f55280c20776c5f4628c6340b53805a567
+GCD = 1
+
+A = -408a0d198daa8008a0050af3ea2f00c44206537d86469f8dacf7af6f9a29870f7ccdcae54816858bb999c66717e592b1fa46dee9d981006a93e0f320bb6d5acc5436c32ea92777ebf2379ae0e7064043134f3cbccaa49fdad9cb5a8ab72608cfa8fd08c6d9528d12f0de14beadd4280471f1f40f2ac1409a274c0462b03526ac
+B = -b8a358b213b43650105b9eceaeb821b2f984c595d2085c44289fa911ce0bd36820a6b9b4eb4f834227873afadbc2d21bbded12f9f9d686436ba4f787dcbff32d556f40cfdc6715307e1680de5a8cec62ead4673e3b37128708f396e9671947c7f80b0b2129e0128dd99507b6aed0a160184b6d6fd5726c338f5e9d56c70cb781
+GCD = 1
+
+A = -a464435f68a42cb7379060de55bf9a1902f52f3c1a4e918fd8f6b07f255ab9329a58ee56cebd4e793873fb1146973cd0d9f859edc03ebf3a904f46f4b5f4255fdfc81c2b0a80a8e54389c18ca1894ccc16793e93ba98945588c4e50e1a4e0bc790c3ebc1b72f43f2b7197b1c5a407a591acc8fb9c7b71f0399a97d16f88bf51a
+B = 4ed0e3711eab5212783a75db0bfbbf36e1010ef9eae5d923ee6ac5fe65c2022f5d3a5932ab545b4fadf8355a0b351fe2c0525d139cdb9bf7df21461d81615acae275c49d4cc5d6f7488b318a051bffd9701852e068010571f553fd0a16d806f3f3648d85de664c88dea6fbff924857808d62d5a1d3511a82f0e8cb2f0304ba0d
+GCD = 1
+
+A = 6da1881883193493c684e78ab50c8db22bbd20bf526c9076ba6d5daf0a5116a275060698236af798d93a700c01739477ce21c719686514402bc6ce4b6a7a28f0d785a059acb0c08d5d149e78f35bafd718351357f0546f034ca728456b21ecf914e6cd14d27ac8be6db0b1f75a11b018be08aa5005f51e8096f821acc2b6fc10
+B = -5763ff3c2d8d2e39bfa6a952130248076a475320b8c7716827f725f4208db3f21c76b86a5622338223eeca3452910775bda483fef9e5beea46c3e78eca68fa177695bd0cd69f73c804d8ed91553b67083b6aa7b5f7da818b759e8b855ea3b83a2b7a2bf568fec6f017292aeabb1ae0a0b84807a9f692a8689237b0e0cf1fceea
+GCD = 2
+
+A = -db1d35d213eea304a4d800ea6df6f4a8311849966a0562256d116ede3d01fbc6fcbd2961770d8a40a3435b63ddf832c0ff7c7ea3c44b2c2e0e08fa7e3a38c7075a1eb9f97e23f13422f7ced5bc1d13d8fce5048643be6752db6fc165b6da03a018567fecbcb9eb4e357e7afcfa33251ec20e7858d47028255a85775ac4919609
+B = 43d8372dd5babe95c96c7c4abc33c0e0e264e8b70d6adcfd3c8050f2133ea7e94854b55cd0b2e3351880f5f01987a530d1d3ca4d7dd2aff38b96be31417cc6197d0f83a3f585093533b54069ed1116216d7acb41a24ece014093fb5c11b97b23bd631395e344b8887362c2d44ae37940b1d6916fe0ec52c9c9914e5f87aef9c2
+GCD = f
+
+A = dcfe5680e6ab4f7e4b60ed760ed07e762776074a33376cf7040227e9153383319ac415cd64392752f8b9a70a83d8a13014b212a0278258da12a2da9a03dad414fd1f225020c2d9e9aceead6bbaddf3c1d7adec9e9243ab3d550e78e769ca5373bf87e856092420225e0b9cb16a56e12357f1eb6a2a8a5b911236ebc8f30004b5
+B = -5255ba927d7b3dc7e5d26c654f20b897cb1d490f1f598de5c6cc09f69a8ef010590f844f5b7c54c658ae15ff5e68fdf19498848a5f17f075fe54a6ae58780eba1a248f95bceecd05724a74fa0e92d7112004796c362a84ccc86c300603a4afef44c6248986e986e3cdb8d9822471b0295b1e82951999eb69ee8734661987c620
+GCD = 1
+
+A = -ca7876ae7adfa3af16850aae906c2f8536864a4714d423bcbe27d924a41ec3d39791ed7747ac1fe4f289c02495510285a7e6dcd5eca6b44306e106431a777a498951b442260fc2bd68d092ab56b4f26ef8e58bc0f48c09ae0bcab0282886523f13f2a970089508daaced83587fd39b5eef165cd1bd0ba0ff9a6928734e42675a
+B = -3eacc2a2aecfd0c40648b9acf015ad8d8a75f700e8c40dab172f4395e91c8df4c7465b7371bf9d42c0850488f336134265b736149d4fd5088eb19e4f2f87c7b386bb8aaf0a1ab204d7afe03d2cb4ca34d6f0f6f88d911c11f403bcaaf9630da75b270c155bc65234dde727eb71e7e58601e643f4eb1d5a8c2f817e0f60f7b70d
+GCD = 1
+
+A = f92e1d5690812eb4a2a107a4a395b35681b7a8a183ae0aef2bf57c8da663def73935631700d5c4d13e0bf399747c0dbd1a639b42a0c76aa834cf8c9d8853d6c525296e0c9cce5903c98aefd725143e77d66528dafa10efc2970de0d06af959c9c70863c758932580b6aa2a01bb9c3cb28ff1916d686aa6f582c2a1337590e0bb
+B = -58ac2a12249be9e0b9a26741b1e830ded8f1a2375b45f88c1549ae55b9dfd7141ce5476e47a71ec6a1c4ea19d26e29f7dcc60c368729a7497e977c5992cf5dd783a754abcb5507b0b74703c07330866410b5807ec0f7f0b8003353ea01fd8e162b81b9eaa66217a90105a4ad80db46d3a6463ce1c344babbcd881f4d9e5a0b9b
+GCD = 1
+
+A = 92b89a12f6e7f06a2579a95097992e2a21d089796a7c331cc8b8b559ed8afb6b1de33d380c48ba7c8a4a641a5d2ef69d9bcd8bc710496e9e844e079978f93fe9e0f762199775ebd2d9d555b77fdfbb2f4d02717fc4859a15b6eb9089bee47f3748a3f98a0ec1723b4cd6ba972dd880db71080db11eb2b7aa677b22ad38da0f4c
+B = -27839c73bc4d4dfbcde48591297cbd8096cdf3cccb72e51b1df5a835af1f2331a323b47444269dff2107bf6370e80811f1db92ca52e9dbf7d41512563c384783bbb0efad2d56c25d3ba56f351ca8bbcd6db5a82d02b0b71dae250009dd774ced8975bd09789ec5229c5016229fc28cbd06dfbfbef81e020e1cde05f7f1e8a0e7
+GCD = 1
+
+A = 34caec1ca4f9e9cac45b2a1b4130968f20a43109db79e5ac72848ce8f6d01aa25c9f350d1c88294c6c2e6f58ea3755f98ab04a4b438709d17e76ad081d15e1335a6e7c63e7bdf52b46919bf86be1eef654f43ed4c857f454ff9641f90a982700cc4710016bd7e666aedfe9bb81b325feca07782a822f13d3e996060fda1c8619
+B = 6221d8eae89e62172409ff48b3a726109b6e0622cc206aa1f5421b3026c671898aa759c973d2cbbd50fe9ed0b06ac736501aee9de45e2dcd49f8491168894e08d87dabddd5a9977c52902d88d94e2c9106f0a8b1d18fdecd7caa60fcdaa20565ed041b4e688612b4e6bb0ee8ec9ced1b28610dbc81ad37ff6b2f492eb482cdcf
+GCD = 1
+
+A = -ff502eaef742f6cbc13795cb995f91d6596a8fd63eb90a273e78fae0e1d1a46947b8c38dbe87f9eae250bf502bdf3faf06fe8fddfe3e7f1cf230f6b7aa060e8fa2499646d13443a483205afc220767444c5eb40c2b2ef7bf3b17a16eb8253baaf287f118333795dbb23621fb6172df8df2c159169f5e0120c45f46f3d208d8f9
+B = -3ba904be06a57286f6bc4203f9b57f2d76b41e08594841ee17593282f68e3cd8dd2a4740d8fd43afd57653b0381efc36289831cc39ed2620ff316183dd6b13f50347d9cd00339e4e5ea87cb0e445c8cfa8b7924c08bfe0a53875656eb286415cff34c4f213d19ed21cab175e2bcd008343d92f71416703f6946a4ab70cf0ac1d
+GCD = 5
+
+A = 2e9a15576d2705cd48b66f82cf461814348911cab78e5b5e736ce803c58e546f5c2cdee8423c847e712af7f42ae33da4218decbc343b50d7188e91846044f27dd6c09720d0d5243aa52dfe5346a1882aeb68a13f5ab5ad253bfe82ce65b20c1060fb3aff56adfffda839a16772584513237309f583c3b4e279bd31641ca36fed
+B = 42f9ae1c4e870faba371d82704d99b2960573e40bc782044a93e6ef10c8855afeb69c89e43b41172571941b4355ab63f8979505b3ddad2385afa1c920a47dcacd2e974ec230f53b3304921546b350145d7069fac8368f22f98edcc7dc4ba7a9ef618024292e497d58b4421f5795c4e4dced0d963e2a9dbac10c2a9b9cf0c2635
+GCD = 1
+
+A = -abfacb184c39fca4044f0fdae54c4bbcb1d82355e86d13e3ec234a756ed118bf3684c1d33d694e390044429b2d7bc2245bbeb33fedbe48a4e9e0eac364f0a80cd021c774c6ae1d1d1906072c9bb8ec179b7122d1c0b00f6d367d57f45ccf5a722e6598b858dabb859dae632225e6021fa80221523e7d482cc1b467e9536b830e
+B = -7beae7c1941a50dcaca65c1068366e9b91f78eaa0dee8eea08b2c8d74be37fb984d17c39fc388e949f22520c612db684a8cf2b7c1e6b4068bb76a37ce5bcaf8052346b98bb59d29e017633d5fd27262420682c07892481cb62fc4571f0aac9eeabb755ee06d16e579bbb01593f00b4cfcd50b9d738d648fdc93114d917c8ac79
+GCD = 1
+
+A = -bde7be1b0969998361ee9b9f6161e2a2408f9e016484c0781e149998eb168312494afa41dafbfedf035a57dac5bc7402fe111b5dc8fcbe6dd10bf08e254f2652250e3fc7ea1046dd61771d47dbf34e451ba637c57d3f5a991cb0ea840da745d6e30a8aa35521447b44424d89e722e0a60a25820dc56169028122577a3eb23233
+B = dde0f8672eecf6cb5885fd54495432ac26ef19d68df3325d59338367135d1efa4790813f5b03e8ba4f87817675af55afb441705a339aab7262564292edca1de76c949828d533fe89af97fe265236752fe6a2941fe27c6cd695f9145d9d435054264c82796a6d236ffe8f388b4d1abe43b5534e726deeb0552d9d25ff60af9869
+GCD = 1
+
+A = -1cd50237000d29ea623c51302896ddc1c63c9d57c5bea95f2821b553ec9b928b052fcefdbd609823ac265aa6a477452016f01cd4093851a07f97b0f003a5bea56dfe99eff04801edf7529945a6650cbc4a3399c9675a36ba3ff41e958359cc8ef1de225bddefc2d5c0548556161d12018e59808d27267dd0b847c05b63a1669a
+B = -d40e4142e1f5969ea4f839e1808f9684a2486d352bd2b44505d3b19961dd0614f6c1f79022cdf75fbc356136d9d46e618cb8e8b814c2be55415e162862fa43ee102e3dcf78be3f58bb6196454a985b7dc7b7c80714695063b3b00655f891343b7517285bb9dafd950c4287e51aed8a61eef82d54a0ca0a0203239c5f6b5b147d
+GCD = 1
+
+A = -6ce0035cc0a2f898e3aaa5dbc03e5798b73dfcd749378f6503095c8df11c8274053ebb3fe0fbd38f9e3d144520dcb4a2c41b001283471a93aa062e52fc6ccaca649b3af3c0bbaeb44542868f6c31e4341fdf29d106439501891ad0e009fe030d2ee1772a89921cb6890130df6cced53bd394bc1fbac767a9e4a42da929934536
+B = -61870b057b88db401b1d34d4724d0624cef0469aae5ec319f29afb4f3bed8ee2d4b8da9bbba1ad8338594d77408de991ddec50dff443a0593b68d541de6b74950e90ba133d6bd59587f3ceef7e73f72298c177d0ef297b2895b2ccb4bf98781ea6d70df2344c3a95e3c48976b1905dca7b68fe9f653d64be9ddfc6c4a01c55df
+GCD = 17
+
+A = 779f020a5e14b5ff9ebae45799c1b2c6ffde59db1396fb1ad90516a9b7e50b5f98b32f379e47f781d5f8c7a21bf07aa8c6294bd2470f84565ec1dab52740ee009bc20b71bb82c453d628bf9573fbc227d216858a7edbd563181b57c6bbfb575463c6d0199db6e69ba8f36b4455b235be1169e0e81f93c089c81cbb8f74bc9651
+B = -932ed2504702008fcb8e50ae53722439d21e0f14662299a33c72a1b659c76d35514f0c41f265d0f599c61dd15819c97185903277c6b1bc6df8f25b80e56172a5b0b4d03aefbd56748b6536b901cbd4d5ece174791eb2f4656635362db45137103e4e7366d8c5889952968e612e1864ecbf4e5b7beeff2c330f6e33963b468614
+GCD = 1
+
+A = a296053f44bbcb543a97f9a333018dbcebf6148738a0f36bc0ffd9e5b2d68b14ac0cf9e1d9e7ccd19de9217c567be1bf17cf4ee6c6af349b5f0307edefc2051a671306b65e6ee3db624e7c86472752790236c3aabe9f060b41883855943596cfbbb42a1bdf13b9d36d017b42439e24fefe1862bf98e434d65855c9f016833cb7
+B = -955f3923c2f49d4a11a841cfc996453981a8bbaa157e482e5d61345a67e594e71ee2cb899c9f734eb36110789c5c65814d2fa1077aa36c4351b2a873a131aabe65a00b8973408000652bb764591630c7c00e1e72eed85e465d1ed40e8fe8612913a8665523e07e80ca42d70f7a459dec9f60ff3af67261c7e4f2222c8eb1d48e
+GCD = 1
+
+A = -9d54a3e12f3accb2a45fcec3f6b460a074fff1cc770be78aebfb1d694612622f4ce37ef921439b088a2d7350ba0319c9e8a59db1b5cf040d9c09a315c15eed7d76f0677dc055d4946902e28a369f39f8044aaa0d4b41eebd8baf27187a09b6b8ed10e065d24544db6b3d582e1c98d85f96132b0a498abdd6b13ef36e06b80509
+B = a8496c6007f910ffb98c3a0ce1e3cc424cdb06fc4b8bb65c78e62a0f75f24dbd7668e0c20ae4f3dbceae0edae3b11b09506b24550571e9369bc7a5977ca7d6c77a953136e62fb41ba79b328ca095d7c57d6e56a392bab6162c2fdafd168766332fc04c0111d919974a54bdfd49d16e2724a7cd72a6400e40e074c5154ff2e3da
+GCD = 1
+
+A = -a94636ce5d9a5c1c0bd6c37644616f8fb1a013628aefc96e25c639829c69feac88af74e97b7cb28c56e34ceb642c009b2318b8c31feed8b769e882f519ed19ad7403d82481a8eb0a889081800f4059753977efc77063ce879fd229b0782f71c760b91838591da728ce2dafbe0c00a0b365680604e293f86da837c9c8f05047b0
+B = 503216defde871a1789b7c7a09e49ce0fdcc490df96f9ba84271cae34d6f8df83fea328199dbf4e829ad12cadb98bb45e17be6e20cc1c30e060c663259b4338479e4af65b7b7a9353e82fbf7f3662e7b332885cd363062c0fcd4d20788cda471a56c157d04cd1aaf1681be1b458ca65ede55aa2123b8c7e4e108fa7196601a79
+GCD = 5
+
+A = f37e35f0cfd11b54a3f661810012975075bd681b7d62aca0868e35f21ffb336512b0c4e99a6d559a7babd81f3b44bb98f6cbefc2e20a1815613f2aebdf5bf309632547afa3ae5e8d3186f4045d29ec11fca23a0b14a850b31ad161c7a2f8989a83a479217c00b4312abafdeba4de1aa77232b87f3ebb6304c0464a2a50461bef
+B = f957d20d84192c92eedd6ea792e2cf53a4935d1c09a85732f409f8dc6f8083ee6fdad0abef4d9c652a88de8550df2fade5fd95ef8bb33cb58018dfe0435cbc6d0c9b29f3e08d2a1d58db44ea82674aa3a05d7590c6e4fa20932dcb3a1881d1b568df8e5f705e8b314969f626f7f66d621aadbd5e552fc8bd0b815b7b9c3992e3
+GCD = 1
+
+A = -df57a231085a42bc4190aa29a6b061568703861905ee3f979cead10169db6e27e312721e621e252db304329d318cf5f72498ae3e91f0d5268f2032ae80b1aa358edc919cc19a1a688cbd6ee3ec448b18592a83affe1e4d84e0c680104a4c7b9edfbefca9683e58080deec7f8d71b122c4a13198fd99f3a3ae4249a8e427e68db
+B = -e6830d14dec15cb2ea54deb63c6082dfa1647070e9d24a84e8f492ce23de5e1cda94f15854f0221c802ab2e4b540ef6117bf4ec6da6f668546409ee48a7176a523e848a1413a258d339d101cedd5e50abdfdf025f58769144fca8bd8d8e33e61c803a18da1446d1ec07b9b8d4b1a683791e64e2a85f5a4b174a09e62d34bbe3c
+GCD = 1
+
+A = -8c7d5b7b967ab1422971ffbeb22521137a5522d747c592979487af046bcc8c09a282161806efd4da6dfabd484af68a7f0f1e40afa894cdf2f53b25281d01a49a7efb2fb57ad5df9db4a01a3b24f684cb50388f57af885ebbfbb95d5a4d9871c8b39526f3344773a711e772c91aa55d7130ccb10ac4d9a98665cbeba27d6c6e28
+B = 6cacc8362af07bc36dd7f435f0ca65d53720df1e52b8eddf9c084d212f9a2e34818bd35babfb7043e7ba3c3a9f7bf49ce13c9d25cc40d58c806cb7340b3434e4e3f6b518707382bc8f471e8e45a23b47e4aef8273070bcfc380fe4ba9c259705598ec6de7b880e72be01eed3a9139e6bbf568faaf8b288157df55cb08bf409a8
+GCD = 8
+
+A = -4b33b563d997abfbcc574a1b98934a5428d3d2daa232fd588aa84ec9e0f6d29b97f562113422ca004f0e56e0f1879102a94dc5ef816e418dd83bd264dba3e2c2abec323a110924db970e067e0b73bce71d63e1f2110840d10a2ae7b986916fd24b028d7a8321679d4f0e66eb8c783e7dd66a9c13e187ec7bab5305fb894e527c
+B = -21591df1a5406e09297e3027b2c332d7046a30470b08f7e8074f513c07bd16f721842ec872e0a384efa247acb6e067a673a148944549a6b01a67fdc705b987aaf760987130438c7ea73df67fd0460e3ffbed0ba23e3474a9b50a2dcb3008bdc357860ece07bce361a36a7ad26cc844ecec3e0369f9e8e35ee0363497886a33a4
+GCD = 4
+
+A = e76ad50bbfd97378d3f66ad97df9aa8a7ae3614e3c4f3c6272a9de8fcd5baea049642b21bb59e4b497c723b109f6d3dc3fabf55cd38812afb7b7d9e4a1d4778fbc223d9802e6ac624ef6fc5f3e62ce8159b7c37f34374a3a0598ab6a0d64888bf1caf32ca244f16361d40510ec4418b5e69e4efdba9965c12cf478637952705b
+B = -adc2994d3f0ce5d9206bc818702c9cdde9853293d1fbaceb6b5a24272ea900fffa4053a1052d68979d2b20c29fbcf944e9f5be4ff2f51ecd2fe5a96728107096c6914d5f45cf16bcf7044c39cc3c458eb311ed07f94eb8f99efdf1630e0608f78724488b101d39bc4be8f2876b3f9e09390167aedc037f0ce2ce785dba875d57
+GCD = 1
+
+A = -a26d58676dfcba352caa8b7faa5aaec7f1785f0fbc1daf679d2aa6e9211a82745291c1690dada45dba1c69678218d4faa1498222548217c58c74d2db40e661dfd406d38406801e1606323abadaa8d13068595dfa578ad57475cd8b3651d43bcf4bcefc689b52dc7b0e435f4a79db12110948ec98ab112c2d6130a8864477ec8
+B = -ef7c6720aadb401d5ed469c27686663a7d1cc6260db0cb32bc98c567b3bcfff2d34e40c350aae332ff4713f80c0dddf6b2e7c099d40bdf5a8219936e048b3e2ff8965678c5ef7b9678a5ba1bdeb85125d05559ed9bcb712e8395563f29557d024972972fe183567dd01857b463639bf3adc69df512955be05c17bd7da23c4b6f
+GCD = 1
+
+A = df032624bb6ab7476fd8929208f0a3356f459bddabef866b1c37da5c640e236ce34db54f9a5678039cc663dc3674cd2221e2c1083bea754a51faa1f5fd7c9a128e1062bd393f13252c85ae5441b8d89fc1bbfef9a7cbffdc90449df52d6a717c290916b7c143f3f51cb19e68752f0822550e294d161ef60024673b944dd9ae47
+B = -f0882ea223c94de0f7429f7fa58efc81dda38e02eeedf8b6e83ecbc188e6f16a4900c9f5e58e0024ac8a0f5d342cce5f7bccd9e6e92428a0501a6b35fcbac51141b5bf23ccbca35a962f031dcd3c2dfe45198eb6afa41f1ef7db9b5c51062ff1f3fc85bae1b9e4864144220f31327944ef5f9e4921d6cddc9db4d10b9d60cc0d
+GCD = 1
+
+A = 21c379cd46c1653eea675f05b7de1936ea8c6059f379ba432075447f4193418e6695696c39a402d495ae5ff0ef206f6f8728b5dd15c4bcc99cb8df2f05bf1e3269ab54bf559f893d7de0092fbe49af03b7e2838c9d9893ffbe6200d7e7d4ed9b5ba2ca4e9d74397c7f742a019fb2e3c8111f5566552732f9abcf3a080301b08e
+B = -a91705a139ce7019af10fce8e8ddb9bcd3f956ce345cd5d9f5a0c75a164290dfa9e72165d12ef52cc3aadc091eafd873accba9b578a5e4444df0fc704f728beffea0d0da4751d75fe689404d10683baa05438ac2bcb58c2ad9678de6ddfa076a2f235ec0bba35add40999620f668f714f3a198f6d97a920b1e2e37d3b96cffc6
+GCD = 2
+
+A = b268ecd0e391a74a5fd3f1b6cd6d2a6c0fa0a8528d2dfb8688e820e0c86314a4f1b69f6fa618db115574a75e3673f1bf7077fa21e34a7f4f5bb08a485aea73ca984d300a941108d1b637e3486778f63a7d88f8873b2a7471c64e9494349c7ca33c74fe6c889f6e515b10207b5bb8800094362e7b5267d72ab3dbc7fd5de0f8b1
+B = 8ba48fe0806812f28c260759db6aea5a1c5b7d76dc6e7e56c1ea1eb4731a0cbf0a2146245642707a93fdfc4eb2016f74478558326781e4be7801e58f4d360de1030c164bec702d8768107e3871f0e586c319c9c464a5cf01ff39bda5e4fa390d7603a04f553eca09baa1b2b540ad4749fdd544e113c5fe66ddd1b2ab5867c6da
+GCD = 1
+
+A = -81a14d3a351dfb5e769a0fa13ac1ba03adfb44c0e70e859c08515b123304d698f3720c4bb93004dbec54a83b2958e5a1d3c9207e86f2e2980f82383743246db9ea143f28a84ad125ad81f9eeee23f7f89a71532582de802dfa375745899e1cf7e2fb7fe4eab272178a57c6a6518158a348c4638e058f9383fa4d6d099f890004
+B = -e7866f33c29dfb85e07d50fce9f09386a927dacd97bcd535e05c87b460867f9736ca84de2e7b3dee1e8876094ca31a9f3e6888ccaf8691361de6ed22ecacd22ad2025abb804bf082719b9bcdf94e5c107f31201560edf83c194a47ce27ad78640eabbb08f96048c5dca8c957c7f171ed927ddee287d2671b8cfc4b9efcd34d83
+GCD = 35
+
+A = f07fa8c1249c09dfa2a5b5c5666a1eef38d98ec5cb95c24954fab3e619a79f07da25ce5ed0763b6b112db9ea41e0a39043d25b696cd505277d759841913896ab492afd1a3fbbeffa646bb09f375d749728d55f9ee8c0c01d38bf1ac5e1e78281c5d9965a214c78a03fc01a8b22ccd0e8395b9b6c23acb6d3d0e03f8ad8523e3d
+B = -f7992a5509162338e685c18223f9cab1970c599808940bdf68e036041e89daf4ccaa468863ec034433fad37c19f26758b359563efbbc8b1319e14b1538408d8b86df616bf76994e843d9eee7b4b5122dc10e6dd7509dd596d253cc4165f6a4bb41c06861a824a45f576e413a701921ca4035dba6d0ccb627ff50c5cc14c4b155
+GCD = 1
+
+A = -cb8ac44017ba238d4212bb347e8ee1cf66d7c7927e74526abff4a496d552b8a9dba6a2417cd6ac18d619e930859493ee27ca7a4168b82f8cbdc168ce66f150e104239388d2967bf669d098dfd3f7c14b49460c3e6218e3195724996318be3834937a1cd8b4c31d8fa36cc9efac68d430958a705338a3d3a687480680cd622457
+B = -dabf6e2de58d9953d51d5027324d69ebe731d90cbf234bfbe301c3ba64c83c296b318f7bc010de8cb5d97c377a418ece4acf72d447fb282fa74d7c580b689d52945d44a19079f840dda9223ebae08064b5d47d7dfaac5a6e634b19047baac0e3a57dc8412b28a65e21aeb4719d6683eab2c427550c4fa2f4bfcc60f1cff9df1d
+GCD = 1
+
+A = -65b865036fa8636ed1ef024aec9b06255f736375b54859dcb6555a029e7fa46f9cfc8e8cf511ce86401c59b2d2a407b66eb4b8f40dd7074c9708e036220a72902fd32468977b66381aacadbb4a4ecb4bba23d639587c1f252f4c2f51e4f3632619f2c351c7f7e9793c8db97b92378ab360c1c1051e51df4500512653e55ae46b
+B = -981d477aeb1970aa9d1330ac9bf1d1b9ec0966547f62f0d8dd81fca25bc679f160056efd1c4750e6a72b7a0902a1eac992912db780842c1733694d5c42ff4ba4f3a0baa7726fcdf9bb05b12477c0047dbdea40411ca38938cbf3d8188f008dac4a2e9498bb518c0ced1e6a2531ac686cebb871f6574083771270eb67497b7765
+GCD = 1
+
+A = 43a372a3985094c0d6affe0ca94b70c12278e9ba2fdc4b7f3b399200214c618c57dddfb7dc87aa4ba948e89d8795fab80554a96fb820bc70a9240ea7805dabd715842c5998ad16436f72027af12a7e3e4af6dc977c25beef3d14d32b060305f388ae54ff34d3dc01f9737f80946764810fa17ac7c4b3edd90a68f189321a0eb6
+B = 14c1f76b12d6e75a50fdb169565ce361518c4e15cfcd888d3883aeafc8d8a5f7602e0d5f87189a056c4ae44ecd918b0f44a0e3ef39d1f5bc4a1454b495c0be36389fe71a069989b7802314d979180917b90e8cfa4f45606c4bc86f7e71f2e7debd81ce5f4ac78714779c433f15cb907174b7a8ee89a695a9fbd79e7cbcc0d527
+GCD = 1
+
+A = -38b25215785d328a77623832d51ab84755374962facd5d5e717999e78edfee5c3c2d6de6bfb8eb4c23eec80b98e3093c20ca258e6213e2b7c055ea44f048d51dafe9f802ec505a2ced55d6d80046b9b3212e921959762175c5f09f2020e0679c5f9b13e634dee08268eab05e4320367334ad3d9f4897db5ca7dba0f475b704f2
+B = bf0650c4aef678cac150400e06e7281591f7395dc85333af367addd99be31885757a7663646619b631879a442fa299a78bca076fe8bc0326ed62e4f92b8129c0e65711a0f035933df7bec1f4cd0c45be6559d771b2077f333c0940818461e8c8e394a13e1cb1b6349dd97d99a73460ff476bce30103db89de7f53b3446db38f1
+GCD = 1
+
+A = b88fcef1a65c429fc01f8aab9c6ab04696d7c20b747e7622ac1a36a382af92799a6fefa7e395ccd5dd1bf793ee678583f5acc1f733957213d3f9e5faef7f01838ec7949c990eb83407df0c43abc60bc7a5be4821bf914f3cab354aa5289fc1ea9ec4bae896476a2c8cec9910dc7a6c6c0e4d13f1bd30f02bc1660e83d959025c
+B = -8fac4a9109d38f3c5e7ba7064c174bd3d09a452cdb201d4b95d328b3c26f507d96b6762284e0cc47afab8cedb2daf382524238d06e59bc5c2754821c97fbbe1fd713b56c2ca201906e8d42572348bedb1eb94734d34ce5709f1b536fa5bee61cf2ff025b7de2cb41b99540ecaacea9ed6f50be8b6369e66978a797aa7d1a0cbd
+GCD = 1
+
+A = 6d0bed26e9f4889a74fbd6a974a9bec4805b76b74efe8ecb2036712197ecbfcd5c692767d8a53a036e3d744977c00a1cb6515ffd190d856c4a532800cc2c9a7ee58ae7a94e521c4dac3e360d26aa1b75604d13d74c86c600639b69b75778e9b97befd1272270d45fdc1cbeac7dc60e40593dc9fbfd7c41e7058f75cfa76ea15f
+B = 71aeccc1b64c8136e8fc38efd268760660593105dd392b27c993b79ede50c74d69f249b3a5510b2b52f2785fa2a74acd2be549c492fe0ab47474e5d33a221c30234b7f3ffe52473a29157b6b56715bc747132e484ddf343a9495761040a09438e9e5c593a8614558070fa34ee0bc092854e4361566f4378fc90718cb0a316e3a
+GCD = 3
+
+A = -aae79b902e43c29eaf5515ee58a3ec34978b53d2b2f930170de3c722b64caa53faed9c010cf3311bf2370f5de7b23db3f80892a4075ad40c28f17dc576d25910694039d7ae93cca990a81b9440df60805b183810882e3546caf68c606b8b1e4d268db863a6eeff0246f1070b08b4efbeff1d0c2619800ddbb70cfa7555b18937
+B = -418054795ccf579c0ba706461461fccdb9cea4b966e40abbf96c8748eeb95edccbdf79753871be48635b6b63e91649a9a2e19091122cbdbab0a700b56ed31d5f989c6fd33c96b226c53663b331db70c22be07d23004acef438666c007bf3ae1cf68aee5e9d2eba546918f969668d195b54d996719a0f9a780b3283c9a8ee97fd
+GCD = 1
+
+A = daf8cde04e24e01e9c732c2c829a655763e92c9793ee6d3aa9fa587d80c756430447b3b41840be0073709dc86eeb3853516dcb130dd43657b8af64f1e8674c24a410b2f8f8e13ec59594620ac1a6868698a9235c0976d465fdf64a899eabe4af7d2dbc824730b6a35465a5bf30726f2364c0fc3950c1d7853442576244b6a08c
+B = -c1e6213422e3bd2ba3195aeff596ead7d8695717c514766335d999fa8052c8bc440611d34b61e27e020beb3cd5ac3495defd064de1c72dfac99ca6461d79508468ca991fdf487bb4026c8d360decffc01a5b5df36cc90b08bbfe20b8292d48d0f22a289ff38c986f36eefd3eb8fa91031d77b534402374fa8757194f6ecdab87
+GCD = 1
+
+A = 1f13ff29f61ef53ba74a584bba2f876faf30c3a48f14801f2670fc8c3a3f12a6e62e9c69751f6046ac25992e4fbf0939a55ec2a375785367bdce907d4b9fc5f51bf3c59a4f8cfcc157c22fd814de1a5adb87b9c022dc93c2fa0bf8722380da01d82f81e3ab90749b6c5b1b76e21b09e1da1900f2aa70e0a9e2f007c2c3ee1c0c
+B = 6120a7393e915c22efe5c1349fe12e735f114c16361d84ef3909d35628ec556ad9aaaf010bd71cb54c43c958cbbb3e714c5945076636359272282a92250f1ba4ff21376ef85b574516b1eceb0a3e2aa5cd3ac99df188b4e29916d83a3ec033280e5257aa9bab30071e82cff29abda6ac993d0b7cf8a0c1fe5d598bc3caebbe5a
+GCD = 2
+
+A = a712ad383a734b4ac4d9c72a932622fbb2fd0e657a0e09306cc50f2307d4d7f488f5b04678913ddaa00d4c17e5e4a79dd4f4ab86dbd0e223f1c05e10445aa7fd7a58d0295efc04bfa5aaf5d6a810d875ffd9fd0abc89cda17a88fe15fd40407f5cbe53bd813b5408068d8a76282bb0156e1765bf7e9c2d4c4c8bfb804d9f5693
+B = 4776f15c7686fba5de4064e7bb75196c5bd92140f7ca3a118ac06bd35a9c730d71b47bff57f4399b746a8164fd392ae94e2111795c7ce714bf3072162d8e079537e17f3a477ca8799532654f07561e5b3916ba21199fa50512e1e3541cffca5729e2f073f23eec876c0a2460b6fb81fd49fd841082e5deddf4f2e7ba7fcbbf82
+GCD = 1
+
+A = -c6ff0a22603be09f68237d3efa36c1701333b0196c3dd3d7612584fe9431cb13d5ccf753b0c1b3d35b2e4e59c005fd6621891b5d0c0acf9bd47bd20e15bfae3a37cc76f9024f3149127f750629ee19abf1eac01c2ddf9fd87ad55819c5efbc2f542bde99cd8db9f5be25c24da53ebe3dd28ccb07f2de8f0d11a5ea3cc8be5ec4
+B = -5155e77dfa312d2b21b46604fe2fc3a334d3e3e1a918962e9d0d9cf32f7f58ef942b770cb53a740fa464e293207fa2a3fa1fdabf4bde2f30d173beb37a9c314a1fab9c94e7b1b98558238cf523d9b48d4bb5ca638e7ba0306190632e30b92c0956068ba4e5207e7d280c608b96758d824cd7ac51cc074c8b8e194f6f0918b3dc
+GCD = 4
+
+A = fd21d30e49a0305fdc6716f6ab7472d933bd7d4d857228a6f5ebe1966eb74f395a474bc12bad45845717656336530c79452b8e62c8b661c80028d3de7d660dc603d6cc7b34e3dc835f5ddc8ee2496df0a55f628926fc2d3c331025da1972c80a142fb43690fff14edba13093b71b3aba5611cc60a85e8c8269305bacbbb9ae5a
+B = 317c0d2092a5bd71a77b28bcd59599243a2baa5cd6593d553d7c0f322ca20f9b4adab128e7b7331adfee4afd47f2413ecc210d75994f319a75529f6cbe929ccd2244139401b241dc9f349076c6a07f1b41da7f607b1f94f536d62ee2790efef71500e20f076565d712c2bde1e54a5599975cfe726b47cf5f5a8ce308a58aca41
+GCD = 1
+
+A = -a77183cb2c846782bc3c76bd01a48abbbced42256e2469157bbcb0174861bab7658a56125517ab6524940072788912b15a17873d0630c74d0786c7c998d9d6d0ad01c32aa85814a4b6435922b8b9c227d0843ae5dcc1a6487a219793420477ee62319a074f31b4035680bcf7be465b61416cecdb576009f021d648436a62c9a6
+B = 54ad1186b5b7b38611ea9420a9c5acd14f72c5041c989b4f9e1107764da5b664cdc6193d09e24dbfbd69476e56d22ff99d9a9b00ea7602f114164d63d0b10400f53738436353769528827cc5d4a06e6bbf579500ae1340beba7e3df6db3f78d3562571d74a5fb00e6884ee95b5fbebec61c357ac235bcf3114d7a0b757eb0bd3
+GCD = 1
+
+A = d12591808a77326c83cd03d4e8014e5bfbbe90096676a7dece3881f1452bbbd9ad22346663a8e9cccc982d91191c16c7ff652d449b11ccc1d9b9c6d65387bf849f8e9fead8f6b60b45309d83f81b444cd24ee1f562ca06632ddffc00310b168c25ed30cbb04e83ed99ef95091100d1e49b5eae1e1bf13193d54a79d6b89da5f2
+B = a4e5a52af81703a4ca71d63be1eb12479c07aa1413bf978ff5390954249523afc71a74893a1400e9382dd8b47b44756f9e374e76393ea3f76ad00c5e14584d67d3af7a8963218313b5870e1a0c16cad9863762ac89b06d667f57845795e4b8384facd661bd5fc1cf00acec90dce8130cb7114dcc1db64a3566d5fffef0758641
+GCD = 1
+
+A = f1515cd45bc9110dd40a05bdc25513ea453b89405b42588c8272a59f011d926294cb40f1e14eae8383751cfd7a0f7210dba1ec2b3d8135616db29c1b27dfa57758ad9e0d46bcf3b71faa99482fd394bf1aebbce79d25812a6556b06003424bd76f4ddcec7f1296ceee1a4d70a1a5e13758882d7cd35dd9c9dc753674036b081f
+B = 473cf0ba3fd689129f57285191508310684b66cd3c5b5159ee602839bb721169eaa3dea26fc758c71260846a16ed0757a220a3bc262865de0824b3b9f03399cded6194e1229ba5dfd4f0436c75657b7b96cac4cd31f64d62af94373c1dd5a028b88d1f88ace120c0f3a5f22aac0dc2ade9d9c773a72d1bb3e6c7c3f5a804d9e
+GCD = 3
+
+A = 9151a42861828b4488cc0be096108cc04032973871fc889c0588c7a8de390384ad84836ecdceb2a532dfb200defe5ce66809a7d4ff4d31236042be18216d5bec8530d9bcf9deccd4b57dd81a26bc13390ea840d6facf12491ce7861773ef5a571d410f4758e887eaab61420c350e3f87db7a90626e27aefab24faf3dcfc45aa6
+B = 4505c1520f6852d35dd0f3778eba396ddf5efe730a5f3db1cfd594606fbcc1e97572e9d4cc26be153c5f945892a896070fb70d1e92a4155fbe12c1b17b48f0b9be59f73a1a55f248f119c7f28f5f4ef7782f6736c26836777bbc9234687f36308ed01d635ed5d4806628f5723ef8f09c7645080b4902e8c5eed5a80589ca1f42
+GCD = a
+
+A = -3d1b41fa04b57c10234693943c4f63c1703acc6059fec1d735beef5a42d80b7b52ea3bb062d86ec2663519ac664ed46148ad591f605422517f68487eceee7a5cbc6f80e9ae47b6ea4f5e1b6393f2dfd4d2a74a791356582117e255f8fe6388cbef75268d214408e0c96ad2da68c91c17a65687f93e72aa75a337a11b5ff62e57
+B = 87dc371fd217bf4a20a1b227da2ebb6d84380df47872f4a303f00a1f5d531ac4513bdead520dbf3dfc03e7631c1f1d7276a6b4877d9ad112f55631287ee1b281da2c5bd648007355e939077573919413d33cfc8ecb2431380c013bfdf05f364a9a5a8a12e08188ad726853df2973b248ce30634c3a8c4c0220fc81c4441e8b0a
+GCD = 1
+
+A = -7dd56f785f4a548424730a6286300efeecd23642be87da54ff3d492efa629e22467be9b35f324b1f426ce9e8aaccf5ef00a9a3bdc07a94f147e5ce4693ef6a1b1578c6d65435988f95aa979e73b1bd1fa180bf7c927b422a81d6841d51b2388193b69facde06751b54070bdfc6ec49938106188dcabb0d27e41f71907cd55fc5
+B = 676dcc9713c7bc5f48f8623980dc70c8a7416771068c98d92bd9847b7e063ef2140bbb7a47e17f3adb900295a89bb0dda74361c0e281211ac727e5b1051e06373ba4eafdceb6aaddb5ec2ef2413af512e79f31a768c1918624b835dad59220e94eeb506a6840b9149e921d93cb558357f49da6d2fa20050788e6df5df5818004
+GCD = 1
+
+A = -c309840459c0490ff8395dea6392fa5ca8285881d7d5d81a604345740d1c9799b687e7d0806a4ebe9b7eeec64fc248099b50af8e18852814bd9dcc74ddb5de462ecba55a9e0abc79beaeaaa1929a48b1d66dbb74f23dbfa73555a6a2c3748edb351ca2f9e2b80659bcc11b61b595265728148f7575e31cb49cb285a5e112c148
+B = -8c4b3fa57df015461a1c22c625d2233f025644da1f0a05565e4fb14e9d380597bd17fcbf18319b069afb59f4b78a7010ba6c967b7fcc164e1e88cfc0813dde04f467990ba4257378fa1ffbcc6a4388ff9d3f4925232fbed09e07ad262e419492eed3e6cf2bf6f648db9bf3548c6df88cc8ac08582abf27982fecc1f08d38e326
+GCD = 2
+
+A = -2fc99b46f9ca75ce80c4e2673c8e2d1088ee75fac5b944346d92386f58bda65702bb18bc1ecf384c27c5b8af9f680977900d71191853709c71979eca9a8dee53da55472bf483aeebb4f2440fcde48721b378f94e73c94dbfad2f3f8c91df0a4b1598d348e505034e6f47940d81cd265e4fba8175ea548cce777ab6efcd784dde
+B = 7765803dd955c4d3c559425ff1c3aa4201a15014eb8a5fbcd85cad326d26040d66e61e7da9f4de9a56a7dcabc3aba3b993f2c5b90d4c0bbb3c275d8807a37bca9c58aa17877614b8a086c12c0ed3d143cd9c4271864200e128b98cee6da9020979e75453bca9f57c64333df59a214f9897d5c58f327b6bfc13ba15f2611ba0f8
+GCD = 2
+
+A = ed8687ab0438c4208d835b83ffbf8d55d5214b2b39d17c419b6e6d07e3798da5c01c9ebc4dcedda314437cd27168a76195e718384bff709ff51aca1821e40016f920092ad51562777c969e72932cf4014c1b25c0878909c94e775ff5653821028c9c9c64f5a538ef2dc0a0d6f004bc909ec54176b1e2e6ae5c8b3c3c2d445150
+B = bd429f988bf8ed8fa53b5832a8a168cf0d58a992d6362a8d95912714a0fb2050ae5f7356a5dc5da97603e73983ce2276b7a7af4d1e91ba4da4dbfa95ba09dfc8c990e639136312c4172692efffcf6ef5030ffc15a9bddc3ed252b21f345f9f2d74fabc424c86330f92f47afb4b8bc934bfd5fb97ca1446efb0e482afc70d9cfd
+GCD = 1
+
+A = a51054c371b579d89492a0857f4060779ee58fbc1869852e38338a29d1a5a392a2cbc1410167806e6c2346bed7e8ca43cb320c69cb3ad1b564a36a2dcbc7c5d9182a67a8344cabf38111953d6bd7982c570c291e602641fd05434f480323498998b3dee6ead61e0a937bd2bcc0e6b9c580f8b9dcb95a61b1d3cc28518dac1a0
+B = bd5c6d1a4c5f6b5dcac080c571518d107b67aa7ec649122f3d1e9c16db09b746167d21774a8324b8a36f6192414b74d25cd47bc86363a1aa587f1a267a50e65b538d49f668ee923c4790393c94aeb23fbdc7521a7f6b0c0910e4be6ae214800819e6c4a4ee3b3034aaa80b92d5445b6a7061a0c8b0f639077912130e2e3f05f6
+GCD = 2
+
+A = -12f5509130eb7500d7a60e8a21fb7df4b83bc2c3b634ba2cc07638db779ab043b228ed91b863353b9f74533d3fa4d0846d445f078e77f441a533c2650f58c586f4e799e489d5086fdb743a56b0cf0cab246c66462a356d98ee9933fe6eeffcc27b51d1da421bb6c6f267a6d6b9a0d53bacdec37253946e31f8c2c2c05e435031
+B = -f9a1feef60b8cad7cc064391b7533fc40dc209bdf8730419635d6140a5e2104adee7f84bb56cbfe61979b2e64a7699d1556a1bb6aa794c123c41dcb4510d181e0cf0a1f6aed0a80e15f5617f9c282af0378206f970bef7f29bacea5f4f3120268d0269251e2d9537d5a1a7b395c7d6cee062fd216cc3c49c17d3d5424d9fd5d8
+GCD = 1
+
+A = -713365950ca1d0c2e752f6f77b801fc79a079c360dfea91b2763f887c4a76cfa613ee36aed15c8f3c9fdc6912d840ec92616a304803da1e581621fc04ee43c247df101390388dcd36a4528a500376179b8169916d7cad20bf037450ca406f838235fcbce03986d69c857a1288b57dc1d67f6eb37c2e6ad9f0117dc1615ac8e46
+B = -851a56490fbda7a668501c9890e0ec97c26d151be6342e4aac8747749c874df1ee747a22aa763349e59a7f6421e895432f5bd054dfbfcac7a06c27ac9fa27d71a2dd9abd5a92906020e2be5ab8a055a2e7729a3e099dea080a09ace6d4610b0f4fc2bacbafc8e443bcda7b55d5f264b1459d1dce0b74039e536ddbaee59c037
+GCD = 1
+
+A = -a1e5cfb7a0ca45afe7e86a4e4e6021d64ca09bf2820b87c828c0a9bf1878225716bb083abc138f6690c582c39cb1ae0811c4d3225217842d0073b35236de0980d88a4130185a822b87b6036fd7c96e554790afc92315d72533a70517a18d8efea52b86b48eccbbae2d21a418f9154d686c29d4038a42bee17b9bfe1e9fc26ec0
+B = 2573b52de96c92c9135c5836214b07fd67734315a9496221c748f2c3bd52674e8ca70ce29490a3cabf46c82bb19def3f1f244ea1f76ae29a1910251a7be89a7b13b4e0eb81548528c7e84bda9414e767dee4790f43868c54d7945103b939a13da20c0aa81651592bad64b59bbee340b668cd5c90113fc70a7dafbadf7e27fc49
+GCD = 1
+
+A = 55b2b0451786487aa2d5ce08330fdbc73d45009a742546c4aaeb1a342c40eba495717cf01edc6b8bf9a5cbc74f6ec349063b39c07344627d35a8edb57e2c3fec531e2051797e3c52a3db21b65ad940d5f9015c33e03d75050f46b1b1961b9d843b936760bc5f83a26de9c7d68aeb1f0db567ff4adfe1ff8ea07caf7fdbba5daa
+B = f0bdca936ce3d3b32e23a171ced7edc74dbeb98b8221f24091a50643dbdfab8da843be653b938f317ed5eeb621979e7bb78dc5b3d5e93c830cd21369459a68e3685ec1e96ca6b2d290d49f563691d749df977acb80f3d0a4958c306f8999c653c7a690cf196ff34ae52a715a74ed089de90a45530c5ac919dddd6676ec569d66
+GCD = 2
+
+A = -e186af8ac9709acd36e21aedb4c927600a614f58b47fdeec0ee7902e562d99dce69714c6d9a01658dc9d75bda9cf4e5512620a2b8137c747a335022ffe925fed08ee390d3f45c963f594f49a21e235ebe8dc59ffd4e1d41c864a328b8d37b51202380186c0366f74ec008d65f11ca484901e72ca3523e526f16c77e1b9013f30
+B = 595be70c41f6d3380b2dab9181d8c0e975466fd97639dbdbe749a68515a1e4e4752010965fc5459eb0420d1e7637e6b7b5ed312df63a1c50d3d50bf39e0f1909df5628c111cf99f4612e7def00451f9099c05c008e92a0a3cda3de25cdfb8ae3c05a49b558e3f044e0eb337c4c36fdf4d4e088337fab36382333c21074cec29f
+GCD = 1
+
+A = -9d0a4ad5e8428bec2f6faa247074e846d00c7c442949c3cdee5ce54dceb83205eb82f69c38b46f65eed493bd392f9688ed80e4fdeedb6dd8a2a2139d4b1a61977402802762c209008acd2d3cc3291a0de0f9722f9cc28f1a66cbc02f844f9eb83ea207beeda5583e8f39b85a83cbb96eb0266c6eaf25e8b2c8625728ff53a649
+B = -6eb723b317ac30d3658b8296eaa7e3cd58f2fc9785426f5f88ba987551cca52c1ab20ed1f17a6863fa34b062515ec0bb9b124dbd224b3b6581eed8e3e202fffe16422f62dd4ec41d276e91b9b5e26057d10674087e093f05c34378bce5ed59e1fa2368fccd42b2955e54ef8bc0faa59fd0607bf7e35d39ef790e713ed507e4f0
+GCD = 1
+
+A = bebf88341ae86d4b9eb386e189efe8dd88fb7a55e6b10646c3d291fba7d5823d59e7e97a6e995288c8ee8b4b127dd4e9e2e2758ec27f5f608075fdbf16e90d6547be80ce7e97e7f4efabad3475b197caee1470e1ccfcd4f98d401755fa9803aa38cc3ca67f3e2b852272beadf4cb400e9973262ec514545a193d29ea98fae3ec
+B = -4f28e7bd738d006cc40c66af464351e3a353f8d8d35d7388180b3996be158ea7e5a58c898b6db659403a3486297d0e33305ca21460b5b5e5ccf1fdb8b861f85b64c5fcd95faa3fa2f964c6460451e0ddb8ff9517eafbbeee1290c9a296b14917f0d8a8dac43818cd05732340662e1298058611138f4a98d99e1cb0668576bec3
+GCD = 1
+
+A = -cc8a5eee49715ca0173eccb68e5be3eacd5699b5998bb2659f08378a218f7b5e1e45cb3396733a46c231856bf127eff8fd5029c5f281da37c0af07049feba7b19029da345ad5ff0760eaf8fed5798c03a10e311e2fdf23801e8ccdaabd3481e855b2ee73460c21a6b74eb1b3a5571a70d01f24433c87039222dbd045829fe68b
+B = ef908d9cb815fbe02b89154849fd829fa15bd034f46757c2d552193f5bbf75f22926f0d0460172816e52f93e3489b651d5ea146dbc16d42539294d6949c103d5bcf8d802e4d0f5ecbacba1c943e5d08e29b190d1ebd2e725ea3a797a4b7354f1f775a2c6ee3b695c1377e7da40c076a310a6531eb2c65b4de12eb4ff49a1c01
+GCD = 1
+
+A = ee25da44d22b969603fb9f287e4a61d52d6cbc118462b826d5bb389a682556ed1ff15fd04e66d03a053f5dd3a1852a0e1d177b7e7abdaf511f465a517b4a1b890eee2dcac330118177e76fdac9ff7921367b9b315c2c8238b364ea190b54656224ec2af0da888739f3ffa5d9dbdd4d76f9af9722331dad933461f2f323c23d15
+B = 33759eb1d7dad9e7098668acf316a6beed01135177852cb3b1f2ad5abf5b64d1817c9119975d6bac74fa5fea20d19ac72e7d74167753e7f191c36ec7c52301a0a17d96ea499ca183a585f640ff27e76320137503400734ac397cabcecbc7850f31a31a04ff562b31ee7c7e3742d4f4650bb9ec5c324b053518ac63716bfef1d7
+GCD = 1
+
+A = -e8f9574b884d9a87bbf4d5f694e7f9938a537b6dfa1816feb451b48916d6fa3bd2b1a123d61fd9f673d45b2dc71e633db4c6e8e515b4a76419bfcd5e3a9e81e56b535c78e0477856601cabc940d897bb8d718985c98bd35a4155539192909caa1c1044a154b8465b91c70c9621d0fcb8317be48b12d2f3a7c8a15ab0a40c8d81
+B = b33fc45b073853f4616469588d43f294ee43a07cd5b2f150e4f229dfa8ea403e8ca31f52558d54c61f0466d20b082cc579ed674d96749e9db484eba1658ab6b6fdc1ce61684e5a65e7e6934741d7933321336190877bb185a16216b267b2c52fd874d258c89543452f4bb922a11fbcd5dc9bc04c7e2580169975520833209c91
+GCD = 1
+
+A = 691711e53ab60cb76d7af1a47f705b938667078af7a1281c4acd7b00d13caae2f7f125cee919fe6c0a682cce13dac2691722f4f3c887c9f1eb493f07c592e3b0b1ed3cb168cd5f0feaa8052466d057e299f0435167ed9df6ed963e708059bfc1f433a6b8c1a8ea8e4dac62dcd941b00cfac66636a9daa2e865a401bd76e7e208
+B = -7d7f2c632d5cb8277cac8b9cee326ba5dcf63dfd7de20c192f5577b3e40596338bdffac2295c977091b578305479cd6eb52b7382f48e4b33ab4a46fe084694c9705897bd16379c2713b6d6284f5d86c20e37a867b4528c83e0ff6cd86e66e8c40939d0ccd81520cce70446f124b977fd572487a2a5d011cacde11a70b12c75ea
+GCD = 2
+
+A = -131502a0f0b7daf349b54f10bd806a7638589be94462408e424793ed426fc01c9feae83121272daa70e0912be1022ca436f928d02b2de9af001332f37f76388e46167f52ee302941366d00095fd030326d5eb990de7cde35f0057ab394ff34b23f450c0ad7fa5d83de2719de8ba8f62638be4ffd1cf2800d4b462608aab2e1bf
+B = -bbea62f6637917178bf29d7dce9e500d7ef9ce2c042ada06b4a48e80116ac3fd668f03b89605ed3bb3094242251bb2a0d6873eb388019165b261762cbc914c76f9b1ba8f9201246e33f8267e1c7f566758a85839d75ba37dd5689a17d988d69b25ac0ba813483b6d4797a05cc0a6b99d7446108db8d6e1f2e1c1466e3d9921eb
+GCD = 1
+
+A = 705512bddf2091a984dd345e2ff234dc46fbcd7e8ced866651ad5dfa5e1a4b7b035854bac002a53592f0585e72729872272c62414c5ab03c78dbfff3df957a4c042326576462cf6ca15cedd27e0611190048a7b375d6d0433d0b93580d63e969ae558a8e2591abf1c9d4808b6f4060fb382d028c526aee6a6601aefbcc0bdc02
+B = c47c3f0e969b993314fffa9f130f862bdeef386bcc1ce35bbcd1591c3d9381b8d1a635fe2cd52b6f98f384e896b5a0bd5266c3f6ddd836b0b76533eac987af5b4ba273fec63e9f11be465c69a3be84c1c66141990a7365f223f41c811b2af4a3b058fe62edc9eccf2ae8bb7ce872ac7bc010b86b0baf38130d422487ee241e95
+GCD = 1
+
+A = -5f2fa7abd4e3b1f8006b2b1369cce82cfdfba1d839fbe5fda5939fdbd8645b6d64de3b4a980fd19de53df15ea268a1ec78e3e6014637da8df6c9e9bd8b06db939b26c6410c824f77d6ae5617ef70c032d06b33054abe2688114c9951616942dca81b883fc7bc626d1e8e4bb48fad5687c3c4e6211046f947ef8ed44b76d75a04
+B = abfbf22956ffecd9c657bbab651401d0510846500e9e97b77c52caf200ea2580e6d55c3152ec244a765570d32668ffd98dcdfb41dad54865307ba45bdffdcd5db4ec65ee2ca9a30e51cc138ac9557284622b926f87aaf2125fcf03acdbbe12261d33ef9ad92f5e92b0a098591227dfb99e35ae95850ae7ce071a0e727a787c3f
+GCD = 1
+
+A = -993cd61f974a15571945ef82a549dd58c02e10348b158742406aa9322cbc961c914c2aa3cfd1cbb204c185159110500fd43d4ed8b3889940ef70e6d0ecadba1ea0386a4b192e907c0f9f6087ce3ad179ab30fb16b7cdbfeba1b382f7417415be95560c001c18aa2a9757ec07685cea0261c635496ee83288b460f6fa8ba813d
+B = -85e3f76a6ac92e52f08eb6360ef0a39be703fae04658149d05d60a8ece15b399a499d9bfd4b038f4d45bad84480b73be496d571c9ea0febfdfc82afe9ab1fc05a90eaed9fad57c9892e89b489dec6efffded496e9460ee8d93b852c2e6bbcf680affb78035ffe243f912b8dc194cd14aacf25263eaacbc36d64d9dd8c5f3bc14
+GCD = 1
+
+A = -b03254fae82386a8bcbad647de09f2de0c95a12bfbe93e3004a3587dc0a83f51f9e93d2b88528e1338df06b5360fc7c78bf1c834e7411ab56f35d429afc7ce8f973dcd5fef80790ec75693c2d387e350b06571744df16b2f66c0e4303ead719a1ad2cdd212348fb3f63e3aa77a5a0cedf31248f04220a471a7f7d2a965cad144
+B = ca67e06d79442a36b7d7f7efd3cead566162d78194aa44ecc55917ec32d391c8cfc771d9c9bd4ab9527d38cfbbd630917d8ab20902297cd08ca68735738a1c731e924eb17234ae509c86fb27fedbed700b871cfd33cbe2d1d785d7aab7c623ab20e1c76d25baae3666b37952c78959ba9ac68e814651d432b9baa6db52cf51c4
+GCD = 4
+
+A = -a4748b9be73d26de6329b56d377f5bed53240259cd1aafe5c0a9d671ea4752ae38e21029b2601f0709ff044c4b6b9e3889f934b3a8fb5c102833c0971dc142a9609dd3486ea56e4e1890a1067a8113985fd7512e8bc0c91251fe6b8cb50cd23d2a11d34761bcfdfa593d72406150fe62a29bb51bc32d91c94228565f8943d2d1
+B = ddb9785185ea24fd27bfa25dfc9c07452ebdf4d34523ee15fc3cdd8e7551f4a0f50d6dd671fb75c0ab96e4dc721082dc15fe9ed706c57393d6f23b53cf02d44f12201c3c2d8c3a7df033e7775d2da2a27390889f4521fcac964b510eb7b442f311144d18920fa0e9f6ff606fe2585ff5534a2d49f833dc7e09fbd99a24a6760
+GCD = 1
+
+A = ea4519a8212482c2676d24336b4210f66d81b3be2b4bfb3f7ff7d0fd84c84a38e03748d6e3c41fe9c913490b101ca04be999d6841c2c191b3c47edb1a26dd848831e1fd69ed688cffec45571595ef28b7bf7ba521b6a2a3f4b31fc87d4cabe399b817bf22a8658514344d7ce01f434b43bb069ddac3e31612e7209da3e32c5ac
+B = -12624f162e4fc5f59db697911e98690559cc5d75a52904f5ee2577639043387f3c67445ef56465311cf2599d86f77444d289db7ea57cb253391570bfa80e53633cacd4474d6185018abb8cd0c17572484b8c632fb6c27a5731cb4e7238d830f55a812491faa97b637257eb9967dcd70ed7c9a32d6261c916a3510655bd79e169
+GCD = 1
+
+A = e3a593598d81487852037b3ea30bb6755884ec6d7ae7cdd43215bf640b6179a27c85cefb9e9554cd9cd6ee17d559e2f788e4b32fefd117072ac749ddf28bb05ae8b05b606361a21b923dfc8382de9520d7079a55b5bf7bef939d937174082520a3b5a5bc562fbcdd2aca5a31dc9582c8e18d68dadba711e043edccb5fe04f3cd
+B = -729b8646b0052bde7cfcf36d5dd67130988db680b4bd1c4a3f2fd90b370a5f70fe7ce220be8cff784e9fd7d263f090aa71fb7a013b1151aaa3fb220e2e1ff6a51b3481a5954c636fa2f50fabf13d5e899662f695b996715c2e7d0be1f4d3a1759688e16dbf4b02b0c319c639b2eb8f4e3ef20531bc3ea59479bb4773ba30bb92
+GCD = 1
+
+A = -29801fe4acc5548e0cae403299735510d5e50f781f7f0461ab843b1bec6db9c1efee3bbc404fbe752bc604298557c2176935b33331cf19af464a80d65824bb59750935e5a92b763ab3394d14e9730849b4d80f4d4c56c6c8f35966f99c3d569f5d4e80ff79b1c19e6b82082e3d591fa1f15a99e40df28f4b74e85ad2358a88e4
+B = bd83d1d1ba6d7fa16279e6b5664d56c5bcaa35b639c53f62818665b48bcb83abb26092881fb919ac6f45e0b1945cbb9f5794ccef9dc42368adc414554313c71d6c36e4cb4f2ddbb3891aeebc34137e8e86496ea291b7fd0886b61e3e3c2612046e0f13273a37c3fd9a6f43ce639761fcce6b827d969e34b3a842cf410903b27e
+GCD = 2
+
+A = 96f3100a31e2d55b588ddd4a8585babbed9cc64db576b879814354f9fd60b67847cf33684ab53973f6337f89cc324e9787ae49243487cc3bbb5572541f6cf056e02bf1d7d368720455bf614524511aec744f4007e9440acfbc117840194177c5e14950c617f8a9cc3e29ed169c75c6ae3ce57d26cb5a66cb3f0a4ca0686c6d17
+B = -82d1c719dfe6a3f707098cba96416992652580647cb0f13a07d76cd8a6774335399fb2c118ee80cc8eb1746c111843b880b7cd04bc82a36f42bb52d9f93bccd27c83a9822eab6db16e0a8c381c7dcfecf2ef8be73b135304d2c7b20ef40e0c463789e81b4cc8a7e9048b96e694d878403d6b819d6e887e5633b6b60b7494fb34
+GCD = 1
+
+A = 198bb55ae906943b5d2cb9ce80eb78a98318d2f5490c7ecb71d905b477cdb28faba8c855d4f4f2726d10cf34ca7f67e196b8c69b48fef0b53b209e7d0a54cb74e7a9c860659be2fabbd2c043cd9d188e841abd4f9e342650e18fc284e6ea77cd994145b0b69e5fa2a0306937d7d3845b1300563f173f265f1f62100e6f107854
+B = -ec5710f22360c2a7272fcb5ba622f8255eb6c28cea75a7d70d70ca7b18e4f75c08a476aa8462a738d64ca89e48a7258ca6b6a8567a5b040ce3b194ba3018c855ce8bd30ddaa4012e40eca71eb3e37e92617201ec4b1d3c006a638c43c5bc50226ba367733561a50a418024534ee32aa49eea5ae6887d1663b9e81b8b516f1628
+GCD = 4
+
+A = a52e8e57aaad729701cabf25e471016491ed51af3e2463685a581f0af296926ef65677eda1db9e744c8e5f6852c8a42ff75c9d0ba142b0e4443d9030047321034f861d3f34297902bb8400ec10887842d7a59f9f8030d26feb840e128f724136139eecff7f5a549b25e1693f1b1dc4ce50791c62bc064abd422d4e3ef23ce313
+B = ed05bd5ad870b997169059c301bfd5db8e24ae56489671b12bf0355fd25c3d0cf85888a96680dec5a048c1728b1c0efe1812e3644d76ddcdab04d0b82175a436dcf15229fc4f6590d3ce64c38a8d8f0934ad42b0c854da58501ff72c6930de78dc4f04544f9547cb837d08c53c60b0a10190439e74020c05889ed166cdb4c9b7
+GCD = 1
+
+A = b37efa02adc9c60695cf63363717d5c9c3dee6a133a90bf037e9f9f390bd129b3a779d88c2720789b92651524766477fe442e6147c2b72d84d74dc6ef03c204cc700e4a955042cd25e174dbd1cdd08384c30c44dee77f5716ac5da92b5476b5eb1123eaf944863594171098cb78cad9f87593eff2359c1996d81a375ba94f8c1
+B = -cfd3100e357d86156cc763942399bb92fe7ae939a272c7fb1518507581e249da35affc2ad60ba12b2e4ee3d3a71c6aebb1f2ef6001c28f9d0abba7978198f0376bea0f84ec074021e1705251221ec3010fde8a11cd217cb047d9f2d9d781993a7dd2273a32b4d8fd440a0e7145d4d1eba6d1a1268431b9d7ee888698110282bf
+GCD = 1
+
+A = 21236de4a82e95775e0a1d89bae60aa509b8d3237e43c2fda8b21c527bf1f3cecf400601241c39ba28c48662e8da0e26c7509e7224c7499bc880c63bd9dd5c37e4277660cb480c98c6bdb4ab9d5c2aa68ee6e178824f25b555c0fb3df8bf5fa51e3f5ff7c71418d3863c5cc5000ab4ab390d20ac0e0b5124bd802125d5011081
+B = -5d14a86a082daba957cdc8fb467da35c8485790bb1d3860516daea8b0d3b21faff88e38f0e07c3a9f9cfea72ab403d87b3b9492b4d1ab6bef55c4942f9d5cd6d094f082ba6b127ebc7dd8260203129cee7a50fcb43848a9d43ca9c830bb49c1b07155db8177234b2e1bae5413fd35027207ca74c3ba70446f72ab998341468e0
+GCD = 1
+
+A = 72f0e901eb0c525cd292c6715a0375902add862612e9fb274e93fa28793a35536d4ecf6c1491e3a938560775a4a85fd03f2a6d1193482c0c26db067def7c24fa4dc732e6f88191ae9786409f6b47e1891979c6057245bdf4b7bb564762cb155d144f8f9adfa9711d61853c3e6f5e99a001917284ae6311a04610be7a09a36eed
+B = be109a52f49bb471dde043923a45d94ebf2d9c3f378af8efc48d7b8b13d48b20b1fcd34651ff0f47f4eddf66412ea4326b1925825badf57904389a2b0416eeb6c471ce76686dafe04b38113486a3b301a20abfb959a42375b3514f619825ee9b8c0d0958f38d6b291a149319175b84a622917463eda11da1dd575e8e8f2c7d60
+GCD = 1
+
+A = 801a28b718e67bc608a06c153081eaca69dfe6a519bb83853e6c1375ad739ca6d21a7b711c8e32c78e8dd1c404abdb9d950c6f1ed8d88a4d365ecc361af194242330340e77e4ad8d551ab6c7cad7b2729496513b2415e75c33074b8af33770afa10e668fb7ff464eb588e1c08c9df3e8c9335540b967695d6ee1e77c8cc063cd
+B = -c640200cf20216baf64ea4fe7e483493528e691b3fd47a0dd17de0c023493f6b2f027825e8a069a1fc8b7c938a901d1c3303b910ab6c99a70d4116d055c404844eaca03888d73456ccc116932819a4a7eb89084c4bc098e1a4f7615c859df8f8a669e8445f37100b934792d2371b206d34308b7682b63f32cfc16ce1581a83be
+GCD = 3
+
+A = 75d7695e510de5a18da7a4c7dde88471ee2359aa8c9e91d36ea96e53ce1efb159f387e6274c7af95301eed366d68d09cab8721fdbdc8df19e1ab98f7718dd333a04c48ca78b95fdce657bafed5571391dd9256cc7010e885538390ac1c5572eec5a97ea6f4a628601426ed8b27339eaa4e8fb0d86019405964d03fc0e90f4aff
+B = 4ee18dd3b97063c0886948f0ecefe74f2a6791201be4d6ad003333c248567a37af91667f00b8b7e0d81f3a0827d17501db46e7d8805d8055caf17075c8d845d25249de8189edfb9f3a069ebd256e279479b2ed872007b54a4d61d4eb9bf256f767a742c65dcc923c776ebd8925d3e3e4b27b51ea3d3e8fcd1a49318d0dff898c
+GCD = 1
+
+A = -83faa4548144d45b5b288c4582a0b13dc59625aa3fc345af6a4a651fe9cd85d2e91f8ae69b8bbe59b60bb3487a52ff80e8c5c81531e9f308db158a407bbac0dcc5d777894881f91a165e831151880c46eeb7abed2af51b715495e0359775950821597c3e4f352d2968c9c392b02ee88c90f091e387000e1ab915d11a456b2aca
+B = -41637b1bebda55c5c440ba24aa9661938211ba049ad644e5cbb46c12e0aadcb2ffab2c285fba5f560350de24c168d586a455012b1894e960f96c3cc914403bbd611aef7643c8d3d2dbdffe3350b77d600b1dca3895e95120076346ca1449e8b456645e1b32cb2685f96e3a35d8719e43083fd781752ad4bb0300c24557e05941
+GCD = 1
+
+A = db477e9b49bc979a2a70e5ae2f90332d0133bce815d096f3f36e84d81829707ce53c1cbbb3cfb74952341dc96ffb26fc678d32daf5ea994ba9f67bad237d4f32708d1257093ec447c75bf4082ed1c6038803721f54a9e4232a52921a0173595bc9d5acd086385d2d6ddcbb99f27bd16b61adbf3f6bb19de5ecb7031632a65edf
+B = -e940bf7c06c93a5003e31741e59ec68d5b62ba3f59c4e5b84b154d421efc18314836413d9de25ccba4e19252038e0fd00aabd7219f8a808ef4db48c5ebb7805e7467056f39c661d057c168a78525796c833d865425151851f3c349cb0c269c9d9cc2f4a61316b92cfd355becf21a3649e36d09f3190ecbe64564a8c61b04fd02
+GCD = 1
+
+A = ecad43f54394487a8a3cd2b2d653402ecb9160f5c6a64fea3187b895657bcfc67032918c8127f827e464eb23438acee2914f5bf7a91eae71d585ed1a2f6446c113eeb0750cf2283839d6caee0c4e5f21984b3ee092a2b1a3bcd17bd3f48fea94387158041ec46ef8fdeb6b8b77c64e46649c7c13dab159ce04889d009704fc69
+B = 9792f7115c06b3effa9c09ad94bec498daff59a907ad050e4e6b0818cd54d1e7273aad7ec1a06cb902d74299c1b9155d36dcad749caab0239e1dce376469db95037fa171ea3edf088ebdd04fc4471cc460fbc102e269c16a78242030d72d2a07452fb064db088374de708dd5bf21a9f4ccffeb7d8fed526d5f84c4d94c7284d8
+GCD = 1
+
+A = 8b398783e2a3b0a49f721682c15c9f7442be5cc75e2145d05e38d7a460e562d21a6ffb794a035ea055bc5b1e1b77ed09e505509164b36e36eeb6123abc9dd9a7fe2b91edb0d1e1000519dd80c6d1659fb627d9cdfcdd0cb31bde85106141babe8bd068c7102a42706d7df5fe0f03ce97b5b2c9c84017646e501a51e067655a1b
+B = -d72540b308701c303074094979c08c543b9a8ebb16a56004e696280cbe4df4b69c74963bd9c6fd7bffdb12bb9fa2ae756d198d35cb8ebacce6ac50f8d77ea295d8487d73a5e1edeb26566268bdeb5b698f8572df828790617449f64f7b959357c012b570763bee27872498e9cfbfe2c26084a76afa7066df951ff5cd22c32451
+GCD = 1
+
+A = aee9ec9d5348d5a3b6d50df1577aba8623718fb94b024b0723a860dc56438957b15b35f384db7dd06faff838b72e242528e2aead34559d0168449d123246fed18ff0fc7cdee43537923e5dcb7fc85c1c691f1f56216728a3e91554e40d333ad928abdd320eaafd118a77c6e8291b014870ec9e87499ab1878150a9f4619e8c84
+B = -f9cffe32a4d157ffca4897ee22f2eb9138672056eb1647955d3717cb95be322969484ed8a1b24a2bb3dd399209b28b52aa6bcfea77694fd359a929bbf61f383caa114cdc91b5abad97395cc2d4b2fce5a54562190151b1dfed7bc5e7aaacb41d8286da97dc586749db11ed044cbc9c3f075c6e919ecdaafce390882fae8cbe6a
+GCD = 2
+
+A = e5c203885753bf9449a409617ce544748fdcb757eb5552842715a7026d33b9e7907f5f4f8c19383bd5891d914b4ade451f70914a1dde09ee2167b1feb574f21760197fa3cb78169231e8b5a0e0ad264d4bc0216286c8bbb20dc84c0a55eda92376e941dcd29e7a06efa3f100f94ed33f35b87017b4e8f30b1378c71ff2e62b61
+B = -fb4a169aacf5aeac7549e124ed024d010cbb8c46e3e3ed002b32bd31ccf3ad826fbb2712a2139acf35fd61fecd2125290b0ccfb394e750a393fc31bee32bac7429950686923677724190f85c1a776de7791c3ae6fda17871e8ce3cb97c37a3965cdb9c67288dcdebd8a7e492d0670774a996c76e7138f3d36c431ab3d3e60a33
+GCD = 3
+
+A = -9a8e71dc74d5e4a549834af4070397ef98beb1ad463d1ba204210afb048b59c885fdf4837701316746d25cfd53ee15a2be3815982d5d373901390c17f9097886c4c404bcd39702f37246175abb6dc17ce2899c0d85e0e85743d4e6b7889a4805eb80f535a695c37361371037ce88e320ca06e1fd9a204399fe70631584eab0d
+B = -1d88dc050c4233b79cb0f911b3cb6b6824c565fb72ae41dfd6c16f1b57d69b95ed4ad38495f2709030ef061ee82d80364952ac72f31d2e0636d034d4bb6c62a6dbf7a5411331fa7ec3a775f24db2bd49f4ca46413a07bd7892ccd934f3ff1c56f6cea7c5d02e97317cc762e802758faab18bd4a3e57da558e35189780bcdb26e
+GCD = 1
+
+A = 4a2f86a19bbcb564045c7d837378c2f832c7b7f986e7aee15bcab9b5cfe434582220f1caef86ca0f8a5e89b5c1f2ac815da0dee7d33b437d04bf0bb90580e843451e2bef03018d58f58bf54d43835d61433469d75e0afbd68f04b4264229d343af329ecbc1eb9350c250dfdaeb43f85e71c95109834204499d02dac584ac628c
+B = -50e606301fe9a9b04d8a753ec7d52b83e8c4987fae8a11b832edbd5ffbc7a6347a1fdd750d7a89d6232e33714936a49ac3b2dab1c117c62c0e3b3fb2ff6b8b2132d02b14bc6455c3ba223184891ad32748a480d40633694829fd4d7bff81057ee043db86f6c1553d50e54654f38ffd9d6fe31cdb51f9bedae30cca6aadec5b41
+GCD = 1
+
+A = 5ea350766125f5f270534bdb2c75714c568958f9bfd2827b2f89b9fdf04b79d1185b45b2fc8e43b0c6d80a1a9d431d1013a91179da7002a4b6d226776b2ce23676cce751b9e9b0aba865a9e7bd39fa5fc947b719320377d1c80e0e32a1a65e3da72bea5a3567238f0d1806cccb1d8547f1aade9aa8f7456434a57a5c494a3253
+B = 46e84baf9e32d8605fd7f08697e98dd7e60ac6fa033964d86f6179d0e61514b44218c9e4717554260ef2e1debdc811f4bfebc495ccbdd24d3c2202b517a386b9405a5e7a083f6ea6cb138b6fde94a16563df358b7c331fa34fb7afe9303eb20034d8ed3629a09636132c8be73a16840578c2ff3c2d7a9577c6364ed28e9c26ea
+GCD = 1
+
+A = a85c7b2bf60a96256fd28a6b581c2f8f4b4c1c5b3ad704413cfd1c29df88932853ca91897a06107519b37bf7e24db2402602abafe09a339e6d8156059e29eccc49f6a7260007c5b57d3e7f3dd1234564f566eb153f4017b3965436d1da369babcf235e15e4153c91ca50dbe884bd5df53a06aadf9ec368b63c1afba90c6b4041
+B = -cae1434ea2c0f91e740b8783898dadc1f708fd9793d09cb3712538a105a9cfb5bfd28ef029d46c4c6aa414b76358359990e42f27b7baeadfbc3d1bd96827b4f37b574e2add0d89cd2d2435f59202e1a62f9824d33bd2008bbeee091ab6db5fdce31df9b3a343c53ccca991eb779b7266edc0d7afcbe21fe6e326ca429f0a9093
+GCD = 1
+
+A = -693d485b24874479422a67968a05fb83687ec6a02264c3d62cfeb5880fbfd548a8c8d0fab6dfac3d86c68ca482fb9de3d490384150f0d0c2bc89729294dea923b99493b6823f07368b7436fe0f1a1f6ff96f6430d3ce90d72c7a09758a5c67a754627edb008457a40930ca518d3eec883e0f653097012fbee803f4a8662eaaac
+B = 37250a368f1f19afca3b77a2e5e2b18c46fbd2a7c1a588b0c05044aabcd66e990d97624c41037cbd7ad94f1991465b42d208eb235d026bd4fc5510dc178000db7722437ade87d045290d2788dc856a9552efbd7abeb75baa1bccef5ac6f0a87f7e99c23e66916f39bccfd308fdb50e337124d3670e79a80a5e1404c643ad2df
+GCD = 1
+
+A = 86a573b4f14f768a3c20c25fc7eb01ba2a8f134a9f8e6a805609f2a554861db96d838b5c6b6dc504ee7d54e0b83884eab5d091ce9909c0ef87dc58e0534bfc2ea2fe705633f5897ab7bd601fe3d30c32ae9ba911624b392de3d32c58a1223aa5f8b63d1557e502ff1b49923bbd8bfaf4d0d0317dee7d864f05f8767a54fc12e
+B = 51e1571a1bc85c3142342f22af92e5d5bf0f3ebed3ffe327fcb8932219da132c0a43a0fe1e4087bcd57abfd151d071105b714ab148019978d7abb5e31b3210c40d1278e78376fbe31f889d9337e28cdd8213ead71cc5370bffc8c87af20bdc7a223d8cd2348057eb7a3ccec0849098f16598a61d91ce4288fd9439b7bcf9b254
+GCD = 6
+
+A = -14971d9f02697a0fc2b1a29690cccf5019176250c7bc1fc0d87f774d0ed9bfc0f26ba9ace3aa35999dced85797317fccd9fb4696318e7e102604ae9b739783d889d737e39d5259d319c7199e992ab32f0c59b589e934cd7656f94a14d1dad9645a1043ee331d8025029655bbbcbba076e693794dc029bc1442e66ef514b1322d
+B = -8707c577d7fedaf849c12b11b06e0b88f96f85b36b3913377a5fcd070d1ee6b2ccd384ec86915a27ba802fdf56a0c3eb7602682de9635cbba3eef78b36ae6f6ceb1fce725ea2de8ff7f8f8b17318476e3d58617832f9b32fb70bde3bbdcc121de817daa4c8edec0569c75fa0b5129c09b7dc17de24fc1f53f8dbd18750c13e75
+GCD = 1
+
+A = 34c031d312e3b7a0d29e2dc92441221e126dcdb9327b302f6f3ea04e9a3220a9fdb3d0f99ef460976bb5e7f76ce79cf823bbfcaf21659dbe0cd7b0fdd4d0be26491e0ac90830d8e5386be073b2d7a7405ef61edc0eee87da33ea5818fb875ecc63b6a611a07ccabd79e06b19e7a5498bb4ff6e02fb1d522f3ce608bd98e557b
+B = 7e6dfb0c4369314b4f74c2a8de20efcfe3076961b6de0ec0151edfe9c3ff56b25689768798ea745f2f5d02d3d3ce0ba995c6e641d0cd3c0f249fc90db4fba2182160d4e53dd3718534da3d4b33f96ba4ed3c3c318c678fd14d9f57b912e36d520389083b285d62254ff55a0e378bc9ad7598ec370dae040c01efdef2c46437f4
+GCD = 1
+
+A = -bf225604f96c61c230809bb145212311be18072cb03dac10aceb6f39d43567a894861d78b318d3590390f888c9f041bd48d3040d751d45903e9fdcc2755a4fbe07bd9e48603ee6048f6481542ea857b74c93ed6af56e939c5d20f6d6df80d9f3f194a8532e9e109f7a940ca98b9f37612966491e96c221bb43002246194e4070
+B = 7bd29fc8d3c22f7ae8675ddf42a2b1bc35172cc81e8dbbbbd390b24fe65e8259a4c3b0c738368395bc19821a7c79ebb560a5150a8ddab8717ff1f6d964b0542ce2d19dd2c00d5e81f4fcbc95f61a1a9a6b1d8cf06b4e1b287ebf5319a775e4bf8462da0376cf634573cad7f0efa4f8694614aeac8cef5b0166cca75ce7d76b5d
+GCD = 1
+
+A = 92f350832dad95c3c7711dd212bf1bfb0486c6747ac659f754291c0839e7d26d31041c592f6f505b1d8a46469aa48c1b03eb223669211b58b226900915be39e001cf032ede5684093e965a90a34dd23a85ed05e5392d3e106090b7259de9105e1f076fd927bdd9ac6b8e385ccd57e7182f41e4ec0f79e32234511172d4b300fe
+B = b8a602cfe062667fe5b51b6fd8b9f4a658f19f25d3d5f64b87be86bd1c6ed5b2b74dd92dceb9736348395676eb3cf1df0cf7e4e29b50a5d3d09cf424ab88d79a43adeafbfc845319f8e3297a90ef480139597c688f7a276ff4aa3afb57b0339ff57a27e597fe8ae7f6cc2570d7fca4e20a1a2272a8fb15ea097050c9d9842dd3
+GCD = 5
+
+A = 5f230a43ec4b8da17aa115a3e271faedfaf0d79632a8fc6f67a9323711be7f50186fe6c5c0f8d87ad4669a13c54d4756bc5f95d2152e263131c9240708f37a58af890dffcf4010ee09cdfdb0498489a15e80bb50647949751c7c1de1da78e0d59e7202661c64fd075d7e2d720636cd77360c7db00b9fb2fd4a1ed1a46212b7f9
+B = 52d63ac9ba7981032059ef2fa4b3e877ccb00d18abbf057a6c8b4b018fe74acf6bf21e9b5272300e13ee8240c326d358b07a98524b764c1dd8b0016eb6274283337f9e98f66dde6ca0e708d9ddacfbb7a71da2a57da0785945c9560467b4d43f00c36e1519fd990245bcf6c941c4a594798d981552c501c07a1aad47d772e2db
+GCD = 1
+
+A = 5ba80444d4c01405a7735fbf1d2c24f0cd9711098086edf21affe08bbc24d852e38d701ff99bfa2851cafbc12f797082749fa648bad505a0a252cafc073c79962290795566b09af21a79189f9592a319f41da1d51238a3e3cc189153b1d787c77b43ac33136357984add3b1d80ef532e355cdc7209659ecb0b06dff5eb86e364
+B = 767fd7b87418e986b41fd90005017baada3706400dcfbb8ca98a441ae912c083871fb6df4acd7f366c7f6ed2ec0acb893d3e1f10b05075e710d3fad5776bc5eaf9bea5ed081c8443ff4cd94c500e1b1cb7cc08d0330b1230388f09bfaa0f932099e9415531b1dfaa1ecec78a3c12cbb348457e8b35f7a87d299e716869a8c11c
+GCD = 4
+
+A = -65c31f8fe18d57923f4aef6d8b70b9494c9a6449a5367572f85023682260e027aff2a2f70c3bd476874c2a40d7a7d70fb94a6f44c42a4985b35decfb430f012795713a7d652c4d56defc04892bd07d06bf4a02734a6789c9773f18105328d43c3cd78600697547d406be89c3a9506ca93299bf036aa144fad0e7c42925e019a5
+B = -b7c5412a323b279e8a2ac399dc5ff3ff11fc538dabc2deb8078b6272dc85027911852e14438d00a3fbec5543e31d16a24edb724cc73a5fae23c473ea21848733afda433affed5c899f4e7a3651c03940c14fd95cd3dd4d7bb64526ee8b78a92f0548d0b1ee2c1961208ef55de4be67d09c1dc5c76a9911a70c675db974a7b5ba
+GCD = 1
+
+A = b6c7d05d7c95135204634b7fd903b4de3aaf9a05efb3d271804b7f22f4ad07606c2576d0c5c7384b33d976e29783fd8fa87adf51ee9a0b93565f4a0600bb9390d2544dabb3ca8b228cb67abb2368b27bce4d25161a6c9c7dcb59a029b14e094fef1f7cee8582298434dbe6319ceaeeb2f5926febffc998f34e43e6378698f845
+B = d4ad3a0f85f56b26b26e1f7db8a89fab3f019e9664216c8deb9681dc5b189c73b0661df2bd19560055b88cc2a69e5154f947765017254c4048181aa4fd0cfa74241b75838ea3c90596331ee2fd9ac61b30f3f09e1927db5b62345010576af996aea0f598d39917ed02dd6d2d05b941b53f179f598fc9589114ed2aabd9622abb
+GCD = 1
+
+A = 51812a5c838f7c6f4411d4b684727c2474293bf59caa1ca9cfddd5702f71e90583ea256f06a6008c320b41913846781e9b57ed6e9f5d5b70291b3c73905436a3a298b68fe121673071b40709a37783e1c0cf73d0022ccef9135b04d7fc3d9cc896a35210400dc92fc1c7a8e027c4cc035d362f5164ac26ebe0449dd1f400e787
+B = -91737ba876bf8400cdbe7e2c7d154f3b7d5345774aa8b6aa91b00155ba8c058077a25699c3218545b12f345d6724ea3d05c03bc991f3e03df863a99339c6a172497572fda47272fce472ca8b324cf2254fbb249c5913e3eafb10bb567e117383ebc9371bcd4e4323531ff66272d5edc6acd7d38456663f14623f577698df6a38
+GCD = 1
+
+A = b4456585f607e3b73b373099cf1ec781c1dbac06ca40d4cfe08ef102d6f942e7c366016b97b23596dabc11bc636af4ed20ac7988ef48b134ec5bcacc4009214858645869261a5be606e114bec229fb66b972fd68ec5a00ccaa588ccd39b6998af946189ca92bde80ddb2684a7e6303c02e19ab10fa5d7b9f9f141cefc12e7cdc
+B = -9871ea620b9ce7df7743c468fc76993ffb86e91add7e127d59eb55d7650b2c2e4fbb7106c7240dd5f063171c58bdcd76d238998f231835c7f1baa6c10617c0e7f7b695d2ca33e5ad5d73a466306ffc71b07e46813bf4ebfc336b9d934cbc35483a0e57c790be33ec5633e7732c8ff0232ca9a8523720eaab653419550e600809
+GCD = 1
+
+A = 665a6070fe3af81556cbb9ddc9e2d9a3c2957ea3471c778ec9b0da76614fc8f95313526c304e2b5cdae7cf040920ec10799f04851278810751202c407166dfd728b2aae11c6b15765fec0763da8d7e00f92a91bbd3c0ab26235766f40bdb4c748a664a7dd7b0e274e5a7db6d885c8cd4e2d5f473fad31747cb25f2bc9546fbce
+B = da58e2cf0180c0f44be6c165dd10bacff709932410250e6c9b159303bf6738f718e874824cb6cbc1b721567b2b66f63cb4735dd6643896b210e626217e53a130e1446f4b3ab368eaa233292a8e1ec67dc5706bdb77a6288cf68b309cd15fb71936e0eafd4bba427fe6c2372d9c66414e61e42841b8d18918c59955a45244538e
+GCD = 2
+
+A = ba153380652a5100bd67fe0ffebca423c2372d2acc511ef2b2fa6724baf108a08cdbcf5495b5a1a2c8932bdae6dac6587c6617ca1db43b1dfbe557cd341d51293cb73cf3ec8f8bf3ec4cfb84caafd29c169a4e8222bc1734c7f47868ddcb29627fa5d4f06c20b995a411c73b72891699d666c0e9cddda8228de1b8ead951a3f7
+B = -99c7bc61921a2dc8fb9cf3bca8b359f64c0f2403ac55e12f59693347b75f37fdfa5635909f60439ec05a72dd08372ff44be2fc9b9d67da359011eee2a8aa46cd953b350b736a6f5431510f96a992e717c8d43288c490af0f222ca8f98ee25bb5be58a7472c19cb018893d22aad041b628c536eedba84be36a965d1a16044706e
+GCD = 5
+
+A = -aee4a3cf9c778b8461146ff2ca1d6e828e5b2027e3a0bfcbc733106f0c6c8c3bf6e9784e5b799d7bb0578750ab304460d6efe7b64e0cc9c9acacbc6a799b40b738d7da1d93c0f018187a3b55522fcb9b00131cce30e332e20e1ecfa6fe54e45720cca00b41d71495f8cf42e9c2a83ee343d9c2c0bb89ef0f185921d40908c5e6
+B = -7e75c75d4f2eea9010dc6effb6f9f2f533cb3590c0c499e21659fe33c6aa6e796065592c5347ccb84eb58ffedfe80a444a381a7de4e077b9b66eb875e6e8e87fb9dc60192bda856c6daae0ee241eb399a1ac46c5d0b8b3bb04952ffdf3f95805080f407d732a8d51f7dcadcb57c456799d02de2232904f1d9661e2a6918e3e6b
+GCD = 1
+
+A = -b1f8d90061550438c0f0c45d0a892754877472a016d1e63948f934bc48d95a0f2dbdb9401b5fa4a9a4d9c0cbfbd87a72033b81ffc4589401eb49b7e84b6b87e2278a267ad809e8655ac90bf0300b03259d7211cbb2c9a8cc93f01c88a15d950573ce5604db103d8c047a3f4e3592cb859daffbbc845579cc66e71df6a537c713
+B = -eaaf6b7f8c144e671b1c4b9b41b672c77a44dbdacfc17ada74fe2b9c119776765a5919fd74dce0ca105784e00be181bfd70177ad893eccf7228f7cb9673bcf0efe23f72c204c4c2870847a9d0cf4c0f7bc19b43caf58946fc45d4454877ce456aab4258e5e899c352f871e8620a30eb150fdbb286e1c189c0289f49cde003ad6
+GCD = 1
+
+A = b3a6883c444a7c53b096414d08db71b228a11b5ce2b4e6caf4b36f36f0ee707b8a3aee2124c1608583c22d56c10fd01d144beb2773c055bbaf73c5f9c28dd1c46561d0358370ce7921be4dfa9ef64e84260595692502a6b9cc472c2535f8a4a8adc79de5c40b23fd0bedbd0f00a52665cccba215079dadb980ec171d13cac575
+B = -2348df8cc06997a5577098d17a2ff610b75f18476e1e4920ce46f500a275bd0c1853cc920eaf6362ea18c6beb632589032897bcadba0140f9379339e21d2a4d0c05e29e453e3c1b1a0857c638bc37596f4b299d30afdb821b74c66d3f6c28c7d3406ed25df52cf62d36146d8f85be1f7b59ea313d292f3871d7bd1af6be9ee58
+GCD = 1
+
+A = -6d10b44903090e41284205d3c2092351553adb11988ca5a9de89b1e582e5e368ea51ccbbb3bd92c9ef7d305ae1ade3033e9aac661f758354043592c9fc434334f3e26984e13f3e8afa39b3db8de20eaed2a1b85719363b497c453ebd2c35ab09244aa62eee6a417600e32dea74418ee55bb82fbbdbed647d641f942a85589d04
+B = -a0c68e483e6f9abccb8c2d2bab7fe95ff010ae6c1bf3d99daaaa7e25e540addf66fc9d43811452584103e6ff6f75af2560d0242d179fefabb9bd5d795000764f9e7d151b0fa4a8f7593a6c2439eae8cb09cc0c9cf0d6802c35a39501f21c7edd697ebd2d4d640857631a4bb6b08ff888865fcbf388a4d68c71aaf95420944a81
+GCD = 1
+
+A = -8581ca79838842f7b7be22c95f38772e520b4fed76e967d7c522ccd297ba8e26c05e3528c2595e8dac023dbe83a7dbcd08e49346acb8c261ff897fab72fa0c782e7598511ab9c220ac709fe4f05525ffa2db3f13c20daec20de7b49318b68a1bf1f0dc7a107f2abf7eea90a0d87f35f119437b13ce64949f2ed36693acf34d76
+B = -70250f2a5a5ec428fb5b25312187afa01348a3447395a13ecf4227a07265797a31088b086942df4a73d5f929020e8549cc7a597db2227d7f6cfa8a4df6efb7edc11f754336d86b04c074d43321ff56f82578f0d1787d4a16aeb5719a85e248a40b332708018639e3bbe8116f4a5e46fdc66207a28b6b5d8033fa1b92a09fdc77
+GCD = 3
+
+A = -c5f1f2c251d601b350066c4c8a0bcf797c0cf2aa5a6d5c943b3f2709e1da155925ea735009a95a0a97e897522a830ddfd183db2018159c12659cdcf08c988605e2c74e06d5b726099d09f83757f94d35d04f38c19b02842f571178a065c96eb00696c3914335886f6daadb9348e7933daa7a88315445ac632682a63bad183925
+B = -300adf27394df6575ad2b0986ff6f87f442ef30c8c451569687c0b0705d89ebdeb9c6cc8b6935874ced54f9055fd4b137e94ca8b2f09c42d17e5ff60683e5d27e61dc75fc9f4bf4b49dad7ca721fb2bef769f58a4ff8d79072e2ed1f410da0d384f5203493729ba8f8af17deb7ad99eaeda9594aaf805c1c6e0323b555484832
+GCD = 3
+
+A = 3e4c6ad83c4002619fa76d7912b6423f9808d24c6ec9cb5fb262db790b6dd9b79ef87a9ab2a349a0416210ff951548415761fd181a0c95fd903edf400edfa34d5832b2a33e4769e59bf9d67976175489ff547179ffc4be5206e7544954f6a83df03decfb37a36e2e352af1ca4607a9815489332c2dc035e0c2fe3978777797cf
+B = 1fc32d6d0134e17fc482320c1b82fdeed06a0d4b8fc97352f47f456f6c7907793ac9cbd71e648d0e8a952e98a41eab71b3a8867151e0bdfd25685ca001b4d3bc9f1d0af481d43fdcfd0f8b4257ce7bb7eca20cddf59fae7884fd901f563a68a2777a9cfe78155844c927807e62df60e401a8652a617686d593f62d24ea7e2348
+GCD = 1
+
+A = -92eb4b85ecfb5e2a77871124a75f48812b9a26caa08975e4459dbadc383c445270335154270fac96b6137dbd09716b0c304c5b2abe16f744951e991d04b123117c05321522f602646f098f4e6d3cf9872cfbd1402859414d208af5a576f8278019b2d521b283e7c984048fd851ae34e62f8cb6037675120478d35e1bcbd6853a
+B = 52b5242829c14ab42bf8b8e1bbd855d55d41524832bf3937c91773885d853fc4b9f8823e411b481875d5766894e87e186caf17577eeeb89beb9e77a6ead91e383e1f350d278c80e77a880e232ba5d803f192bd9505ba99dae7f659cf5757dc81bc2d5e682c51f6e77426c3b7dcff0f02e03ccc2a15807a781a1342cb4efd6c56
+GCD = 2
+
+A = 7203c851fbbbed75db6773e2f69844a15f501c53522559c6260c4b3f6e2d0ca205d275f9bd976600b19c2dcecf06599ba3885a5f24589b00429a80ca3da4cee54326f23101a3e2eeb62956a3009251123ec2a6fdab76d59d7b58dac7d90bee767eab9a19d0bbe1229ca8c5980da04709293b26fcb06a0b3c26ef1c318a2e1f10
+B = -a3871296b72041485eb2967a3ee023c4430ee4e999d7365a804ee12e936bdb29a5a9595fe83b87cc9d30492462758c065b329d0bcd56708295baf12f2556f6bc6a5e57f1347131113f52d82936fe422ecaf318f9c4ed5e8c17dc55aed006810807ad3d4006dc0d5958aaeae0ce6a7062ee28f72623cd12d5b7f505249c6a7644
+GCD = 4
+
+A = -5d15906368a2f08ead6d7ed2c4f6d191dc2c02dcac4f313e601c606d5e7aa3df20dcf3914ba12b6f9f19f8237dd5f9a34dbd0931dcbbd08a87eda2c18f97bb2c9ed7662c62185710c009585b94a603434707ac135e8e85500da0d61979022a9d5f38a38ea9b13a6be9c299cba090953a7260640716d75494a988819ca71ff9b5
+B = d902c554832452469dace6f1715120a439f5d100c0500c9fe3b3f13c431efc5883f60e08ab1b0536f979eaa25fa19536be14c61fd36d45d74aae61f9fcb71fab5ee72c2bd1cf21958733ef57fe7eac6d6eaf2fab19894dc957292207e1a7c82019dcf97091423ff02f097eeabb7da63718f8df88a03c8b2b6d419434cf87243d
+GCD = 1
+
+A = -6961aded1779f616b02dac22e40adf870e263934006423ad5145fd0e6151cb55d60b84a0fe45c2f1cde563f0c048fcf01e45b596abf62242c4f2ba96a5b9dfbadd0a1322f7455abab6aaa32f148663acf446022bcaa8212ece70da31a65981555a16000eb5170467e9ceafe61181162cc22536512da836f5364c47df1c73257c
+B = 7845d10dc62a825a7025e58211fd99363fd508ded7df7b42aaf171d8422d685928673210ef91239ea0c93f7a120b6c4442daac151260fd1fe6bc53bdadfa05d6e04fd79996dc13f06a376b65d3766a051599d94c3f274564d4e239a3143814b250cf559e7e7de3229030941bfaaad55ccd9678e1d1bf919e05f75ac011139746
+GCD = 2
+
+A = cc5c02d7a747bb018f8dea32912bd2d4e7f6391336d83590630ee37f25fe1d87ef748c620c0b547ff705e44c0217879072157ca0521992fa0e6a787acae451d7ad61c019e2b179ef75ffe1032005fbcdef531173c68dc67bb1eeaba2f478e688559fd6e8356fd8fe3a1085ac2490a377986e1882cb2d2cf988cd8a82b4abd5ae
+B = 46fbd5801b4b0c7af7d6be7a3c559cee008b40100a21fc4e8a5c8352e10de67efb142579cd81dc5118c02739fe83f1f352c8a44d2d11b0f7bb74a128dc9d4a894f6500e3a017b372d71ca871652ab30ddb08aa56034b1c7198f8fa9d30d2530d33ee2d4eaff42d769c3f0b19e5dd428eab536b67c7dea4f649f3d43b3da78288
+GCD = 2
+
+A = 2a40d3727a3c1aa736dd976ce7b1fee07fe5bf1be3c9e9e306ce26653bae7db2b4be2497f715372769292af6ce6640e51dc2a34206d4600ae9dc27910a95cb9844f9fa2b356e6528f6ef76df5e99cd0e40bb45dca29f35f8f2289a63f440504ce55151bf25676ca3345b4f27ee680e43b271457a0217453c482d9a77459581e6
+B = ed7feb69ee618be3e273f25b03a6b109c0db8858d4a637811b9e3b626e567cad6ccef5123fb6502d5e83c3009c950e54228332fdce8c28c4cca6b5029effc948299efa8e8479cf8f7c2d30d07624fee7cd2eeeff102adfb98b37b2850c87b005020118b8ddbb1bc9e239dd51f7ba9330f6b8fc9630d298af8e2adf6738ab1f5f
+GCD = 1
+
+A = d64f98cb4716d4af14d68df3b1e2da6a7eb3ba79dddbb1fabe2fb24c1588e281366b9e90cdd8d7e9a945897b717cf92cc68414b3a955f2e8903c4b7122d26e82e076f23acfd2da0b58e6d00a925a510bb69dbf25ce894ea43e5c05983e31e9f428029036322327f82c3c41e8542e2e904f5c4d9a4180c7144b3468b62101814
+B = 32dc426b9914fa0756e86890118f221ab42f1fc031a6171ab52116f49de8c9b0c38c42685f12e4d61c1ef1e200f1de416db8a08ab2868fbe87bf8cd6a04aaf6a4bc91f2adaa9f82d503ddb38a429b58c83c751142386e018fb4179613d1d27a6a794c501ac5b61ce947a130f5400a7410b0d41f822559e0d114fee6813d91906
+GCD = 2
+
+A = 9369bad19bdd480212e01884222a63a171a3558e9f98dce2854f2355a26b052234be13c69a2417e925c418a0ad43b345f6f87a149b830dcc425bfba82b2e9a6d174b8a385fba73f5e584b5dd2c3555660e6afd99735110dc97d40c6bfeebe08c1772f587fb76dff0c711f12d95ffa93fdaf1b3a7db7841d8c444b1ed62e3f225
+B = -cdac35ddf16d4b46f811c5555be1ab672055e1a6f00df8b4886fabf1ce75d8aea23241248c6a3dc51357ba3377539ffeed520d5077e1b521c01c9c2495f937b29a6c482c59f94a95de47bbe7396086cbe1e3a98902546e1397836a89311541421cc5b85ed3ea89d876f40d4ac7699e4fc0a7015dc759c6c28bdddc6fba059dc6
+GCD = 1
+
+A = -2756a26dc7b9ecb12cc85a38b34ac41f5cf9f2d7d6c824178fd6d45f7b81123072669e2387e2e4402090a49772f124bc4ba3d3f0e204f4a388f3d6ac093e615ddf664fbcddfba4966c59cbdb6d906d9d981a303c7f65c78ff08aac4e04749375d39b65fd2d8267dc5751a789e3c70008b5df5b4f058cc01295ea214b6c582bf3
+B = -bd6c01cdec77975ca37b6080172e9e4c6395b37c7fa0047b9399316a6298d3e33123f92651f8c551512bd3a558d9781c57dced91b5e6c11f4260412f19efb36027b77c6dd028258b4b263709f7298d489147375119d561db6e9ef1c016a58b44c4aaf12d4af762aca4915af8aedd436f24c079e0274415a03d5e33c7d774cebc
+GCD = 1
+
+A = b80cc8f87f1bc1b69fadf81525fea5b3bccc081268315a34d78fb981e7b3bbbd4a0b4a2ce1ef3db4456293a0e137a5f0f9ae3be99d8b52b176cb02f99ad6594bc57744975986a8f80b7f0c3a677ec989f339ef91084e08a325b9a06bf5853db35f58d29a4dd2887ab6878f1408f6d7ace796281ef38bf903c6265b0777c0d9bd
+B = 2a1432d8bf1883530795fba19041d1d39406479428b21ccb77fb0efd003ad80ca4fa6a350cfd9eb74441bf00af7eb10ac478cdf42c86240694b927d17442289d9593dd863ef576ae27f74289849d4346f2282b39a984540d632403bde1e33defde15b07104ec3bd1a4d007cc8b6fd6d704c1b673a950589ff73cef702121eb5c
+GCD = 3
+
+A = -8113d81837c3674966857c786a2e3f814d83cd0e04a7d6f715d54855186907ff59b6b00c870c20cd68da2ac0b91be45c979e83764c5a27bddbdfa903336cffb969dfa11b6ef7ee2e8ac64f7748f2e9e51e5f33280934b25015db1b3ab951e963c32ca8f1478a7cbf74cc94903ff9a19ffc01a64b7455e4c90d2debaa2da67fa7
+B = c4f442ba13097a76657a027f26f4699ec1dcf38fdb97e48464252f617b60133d4fc93f916efbc0af49f209591379f478fe64d30b092a5b0f67897513ea014934e55d8bb9ecb781252f624ff18cc334efa9354bdc0492584c1aa93dda5f271965805803beea5c55417d46f434dee349fa229a420d7d96571cb3b86f97959a1aa4
+GCD = 1
+
+A = -6b671b78377121922223ccd40b7befeb5b9787081ab0a0e1e3d759a8d7022eb3d4968384db22adeee8375f6deeedbf8f3616458fd6741c2689ad92d5354249cbfcb2a6c2c397c78bd4283cb16cf63837b6c018c883903160e74d0f3700ec6fbad6a1deb3ef9edb3d1a5592081261579dcd3991c4fae6c20ae3606f441a6b5888
+B = 9e7b237d74ddbf157695cd632ab52b06bc23ae8474d973f18bb09377058aaba06de37bc2121d02d1c00c56b366dc5a1767ced4013a90c1ec1f56f93e1ca58bd7da4fb52a83f68c39efe8518558265fa94d90c2c7585b46b7210b750e4f4faf8009ee8f94f6e96e67e958a710f8272532059c115130eb7633617feee090986b91
+GCD = 1
+
+A = -21a743ce921b7a2e55ee8d4f26f6f6812aed3a76ad58394ae79cad21737e8585162fe93daad7c69bd1ea316c8dcea617f45f50947477e249b7c3172730921cb596c36a3ce790d1cf0adec21e54eb29a4c4d2e0a5dead6e2b573ef73d34fe1e3be1cabd892b9083e48bfc7d0db4230dc94e4180501ab00da11973c6d48805a349
+B = -b20bd0f1867813bfcb4858c7582eb32381a777fd3d1ceda4d96ae894deefd5cd81361cafa2d5f0f1f53b36df0beeca44feff9cc08f37dc78e2c62eb4a9fdd73e499f6e2b4cf7f46a749079f9eb724526046c74f7b936b3e3a584cb31b6d4adf7e7b48ed63c9a9bb525e3cd0be0b3f6e547048397df724faa8f3f6e78662f6a55
+GCD = 1
+
+A = eb1295c8474521287e78b6121f44e25fc59e015d3501979310065035ae42b898db12a8aaf9b4b7ad55eaa9874b98f557e74a6939d1cc1e754be4ca8513b2a411259016522adfa0cc1ae5149dc12ed6749092fbb464e1a3d6a0ca7bc288d37cfdca179ec19409016d8b3b25fd0fbb1a17e05d8d17785ca53ce6cdf047da22b0f2
+B = afc9494b1fa096724b5c66ecc605a13d2df49cac73ca1cca57e13b74b481cab90488c36f89dd7f89062236113ed66a82821b223fcedc7b8e2532b0d54b02f84aae7bc10b51df1b3acad87caae0d2d3f15978e6e5318e829b4066b66fa21580a9b2e1c6009f37fb648ebd399a8f3a1bf310331f8a71714d226ecfd43bff90bda3
+GCD = 31
+
+A = 1f5915f9f6c6665a2fe99d6981b1ed6895b97a2a5ae35fe9e0813e8904cfcf5ca80d0a5453457bb019c41af3f89ddca41ac9c90945745de0b5156d8c7c8a74c3b3d60fba6cda67529a733b89923c52c4eb249e2a8a3c8035d24b3ee1b4b34a5ef9a54d5557a61f3282d5ff4c858f7c82db57aeec8895895e0759b8cc4501bce7
+B = 97d1c439de6673591ac769b53d92cffd0e6f25c1b6033071cd9a7cd5e73540d1897008d9814d276502c68367797fc0227ad23863fb013bb791d411b69e84e47b57f4941069af08ef0127cd0ccd7eef32e571138207c4f4f885b8c73004ee3773f908d4a9cb514f045cdb1b19f2737b32c9c11cd786fc387ab8eee6db59f5accd
+GCD = 1
+
+A = -d0768522dfdb156d91a654206a0b8650e5e7e67917ae31dad09972f99a7702f8e069ec088ead679076ad8f71444b2a4260aa183dedb1d1cfa36c716dd55a44ff0c88a87af218591a7385a7da8162602f410d76060c10e0895cdc48fbde074b9a554d74c4cf80e1990b0fa6326e30bee460ad34ea707fc4a5bb4837d57919242f
+B = -8e4cb4a9b6e16c9bb86a7a75f70a1e4fb8e9107079610d2ae47e7a9aa685a502789cda0f4be89bd247bdca0aa132d662891cec443c69ecdcbb3fba09946f45f08f453480779fc98b024b6cbbb0bf2c3b0b14b928774610c0ef47b4a308c9b47edcc55b59a3cc0a519e43472e8377247e79795a8cd554b170fd81e774333a04fc
+GCD = 1
+
+A = -32e14aa48faa6b475c46b05f6d6c7479979c577ccd50861ee17a24cce662f99e8e2e5250f50dde5cb19a15c7dc53161fcc64feb68881f45f5a0d8253cad6688fb26f1417b309941c21e2e344aafbe727ce3288cfada655f186fd2866ae9f43ce835aa340aa943bd53fc34241287dc2046efc880767de5d6488ec2957542e66b
+B = -427f2a22ceb8f2237f7ce0b2084b9792dc94ade6e50793d3329bb47d92acc9e2fd614c40fbff3f01ab5696486470450f11aecd1bd0bb0132f611e636e95621ebcc1110ddc03e506c6b6b0ebd3c707a162651606b393877340a767357e0da6d2e49432eba3ec8f844d659c944c042d0b943132d7d63abe7ed5fe6d820be513cd9
+GCD = 1
+
+A = be060325b38818c4b936b38c85e6ed8e9da685524f590160d1b4c12467aec4d43ba1b5d01802fa84c99fc8500934794854a8adb3b3b905741075710b1cd2850e80043ebd4a4f8db732a94dfc946f519c8cf60df393ade40a351912cfd14aae2fb2c9587799aaf2c125049e6f52544cb8adc4dd8776f845d4928d8f20435dbca
+B = 71d7e2811660227968f27035dbf3c8462f7dcb5be64a124d4e87bb83b4420da9a931f7c65ba2031462396489d1e279f2e13859f32e5d98c55aef68380cac681cdc93c041a9e0b4f9c5c12f98a271dbe8a9bfe7ff8bd9138c67c04887a2ed8bc5bdf9746fa5af722e5036f70219336c74c9c023f5f8400d87b7caf02f33b3f680
+GCD = 2
+
+A = a52a4b4011b009accbd85bf9fe12626fe5da30103b8708ae06707675c7a5ef423c5916c53e346d12c622b039cbf043c0ed5a56a8641890b44ad814d7c38a0903994947ba574756b52301620438068b90a88f57b411108a20759347602f9371089025d5ece4cd0f24314f230d661cb32a6e2826bd332372a9a7a6c871512901c2
+B = -281b72cfc24a8c19d9978add4a2ccc09877f25353337eefb01f02e810291a47472aa84878d236e6f5d8d1327438f4126ea2c78de9988c9c43dc062f79512925bc58035ea9a44550b1149e2cd18d3670979c2f5a97a993baf87bfc97af96b1139341e129be53bd340452e0cf02f478ca99f82f99e8dc15b9be54867fb698a629e
+GCD = 6
+
+A = 43cfb41db09dc5e81be7236c6dc542735237345fda5988c2cafdf5df170c68c7f3e5601cfd5f3517f5d13cb5eb5b901289fd17148921a725561be723fabb36437c0ab90683fd7d4080f9bdab6e0613f8fb70d0f8044ed2b33e3cd6e3bd27bbda1d665b740664fd6dcc00cd6e4e4519102042ac1eb4452aca5c5fc509b28ab229
+B = -84eec64003a14784c16e4c77a98702674bad1f7d64ba89f62909a2b599d4e6a2d8d4464702ef77e294ec35c07d167e612a9f9591bf8199814b21081c2a8d2d71bbd2ec4f4a4f906d38fc93e4bc6a64240f08ef0f0d098fdb9a40a3e5c5be440dcce2c0d68a01683b162c6556f65a387b1deb058309d02ebea2deca0f129d61f9
+GCD = 1
+
+A = -d4c2de2f8db5a71b8ad653fbed51d0978df81f9a21e39f8f4e1b405100cc4fc7d071b94d827ea7a06ff3b557c4810acf003fb2f4354005f055bb481100a30d2e738591218a456c61e9a552977c7cbbdc08e418143ceecc15c35858f8bf5231e76d63653419f79b0a7d7cc7d858b373179cf2dc72205f4d294116709130c62958
+B = 96285e10e53fc744a21f6db9e76446cad0cb24d7053f8fbd5cdb056a3890cdb1120b2a86da75bc2706258d23347955bd3765f34b4f1a16d55e574a7631045604b967e8dd671b7e010207f766ee82773cc59e5ea295c73030fd6a7c5e5a34d794b454419017ce1e790758e3f16a122085b4060def65e04e4d9a1c97c7098f4980
+GCD = 8
+
+A = 5a600c3f7e973e7979039b6c6bf1a48cdd6b77744895a3298ff108c5a2664e3a34c92b9dfa628a938b55afa9b61b99a9655d5c0f022c41dc9fe1a4af778cabf553a410b3d6869b2cb5b05cd3c49628135fa9872269a7b5d95617392f4ee5d0e768c0a594af2fc64a8fd367d73d4164c8e923a69610c540175f71657e59f1ea50
+B = 61af413b7ebf7f5402ef6161299551359a17ac11b5880577c6de5ec24e12468d04b1de245670ccdf81f4e6fb7d89dd6a64a48421a0853bd2ca298d4da987b19ebe9c0cbfd4debbfd0b67373018147462beed300a8c69f4832213e393c4e5b56f9a6c643fe757fb61bafac999319336f5eeb0dc72b64084fea8ad00a6a318ac11
+GCD = 1
+
+A = -986e5a6afa9b547527fd5a9a0e8146460294e39e0f8820e5f6e9a004fa36a534e9bd7b0989e394e6ce990bd0b11a797548c880126cbb76e967a959b28211a8d91af1c3127a6e7c30e1b8bf35b3a510b9b59ca60ce434d751bdaf3072c34cabc211bff4f49d5ba5a97d927a8c641bc2dc5f69bf6972fd843a9b28eeb1f33c48e
+B = -60aa14969ca4971c9fbbe71aa4724e3def8c8359f45ff80d9e266dccbc341b426300aa741163e4228d1a928f2810d51fbd9f11c75fa35517a483bc7c5f37c75a3b8c9f0d38d68dae26ef4c68f7120c927ffb7ef5661dd1496eeb985592bfc1434cf2f12296f5a929e3fc1348c2597ed0f7aebfa191dee009cfa13c9c53dbff31
+GCD = 1
+
+A = 4563fd1bfcdcc7ee97924ad79aafdbdc5b7463ccf6a9b28403b2be84a88c40d2260f11920ac4c5c6b44c649e705dd7ef6c806c7bbf26da9485f150132e5144e34fb02d93383e1c25e57652295ba9c1fb47c663e635703fed27a4a8b8998f99b6f99051f8807f6d064a58e57391093ac52508747ff303c33bbe9f56415565d5de
+B = -4ebd1938a076106491f44b8fc83779c5cb24c38a25f962f02625908104a81625dd8ba534ad73f39f75d7593fbbbdd31c734181565ff442deb79fe7897b0d072546c5320f0309ed9921c3bd8fdebfda083bb3672e6b9c4c9a9bbd5c802a3e5a13593b7df44b3c165195dfd47defacb11997557c4607086af9ca5174565c70d947
+GCD = 1
+
+A = -47a3405acd11f9ec276f5083ab4b685d5d54e0d7124e0be653acf880c7e782453e311493b9a76c681b078fc2a37784d18c82cc72db900ce213019528ec9383e57bf64169f27e11ef605837370b42c05b6a9580c406030bfbf8e224f4fa375e88fd01f1e38bce3890b8052184eecb1e19f25423e1321dd8fefddf3b5c43718865
+B = -8fd3e1c8b9cd38bd07dc58f00ca62cd1a601489819c75e70c12a74d38922cde630495e0feec8a624f8c4f3e0381e136855e7fae6d0c891ea63b86569ab4a9f08c13159c304a7166c5c0e04c88f51f36bfc3813046704d923c8e236f5d2b1f34fc6b6ae9bfbc599f4f8286799058c9e85a95c47e359d09c6f69797b72f1c0f3c7
+GCD = 1
+
+A = 97a4c14c32af38be35eb0a2cabaa5bc64d23443cac7aa01ac787994bd11b466be9b931b8162900bb0de32b1d39c7d4cff58573b0e8c78f2dc3aee53c76a6bad44f7c7209b248f65b0cf890ae30f09d518dd7c576c02aecfab1a05194385f70e305c6f61c74f3d372bfc34fe8a9565a7b6b3781f4371ce1577fc1e495683660f5
+B = 99e07c455fcc2b2b37e21ed93d1e0fb9c20cd4ebd117060077d2b51a01bdcf8872956e3fe978fe68fa12493f24da12a7668790d900aef3a8ebf50ca6be0bbe4d804930f423146e6fa09211f949b62df3eb3fd663416d4efe517444fd0f9d198b8d9c28367befd14d3894cc1eada2ed74865b99bbc4d4e28f7307a83539f8f1e1
+GCD = 3
+
+A = d6f0b24dd80506bb67b3f0817c442670eccc37978c3abfacdce1a68bfdb12c27c0c7fdd0611b2814180a32d16f3a4c6f8240123b8e33b9fdc6612c9d913ece8865f919e5f569ee0bd87bab6f38cd1a36f2fc593e6aa04eea739642c64d8be542bce5b1235ca49f1df04841a85d30dcc63bd950dfd636a42f3ddc859865092d55
+B = 69daf80faf2b56a66b8de5c7d1fbd9d8f920ddb016fca362237bca0ead515f942f36f5ff423f8904786f5ec3caabb6ebba3e8e1cc5c512a4ee2feae2c4af53f48eaac8b264696ad4a3e7cd5fe15db754fe2a37d9595c1c69ed250ab57d00fd21781c45316e85cf45964c995519bab81d1d5a426a2a2e875781f1e2ba7fb2f9ef
+GCD = 1
+
+A = -ba0e7d8a3e1fca296442be2497f0dc2fcc2e0dd11e4e1a3777f1bb7c97988a1985976c398b9312e5b633062db11bbc9629bad4346b5106c745886b16d988edeb1d3969b1e8e8da2209211f0b461a6469871c607a22b27ca990f386673186dba3572d899f0be2e9f261a35f6186180e92b3b22506da5641ae6560c1247fb22be8
+B = -4b4a3c7c8def6543c5a2ffa18ae6428e3cfbb376d257edc3c627d07a1672af2df9cb56a99f337d5a1bf8879e4f73d0eaacc05dbe489a97bd530d1818f2574df19ac234ef6a7db007446b3822427a87feccd333bf74fbb67d20cdcc302eb2bf8fbf3faecf2f2f684c6955fe2614026a11a6fd8d175565d8f37a51b2606c17772a
+GCD = 6
+
+A = 3dc5e185a984e8c25f26f7fdee08a7f4978aefcca5f3922d10224c433081a77b2dfa6b472d46d0bc9da183f285fd6fd820e9d4b5cba705a25f9a4523990b78b1b460c9d5836b0e66f14787da002b0a8ef2a162748c16bd06b1e96672b7681dd7aeb526cc324701378fc7c49ebd350fc32549f4896b06ef396d349d8611cecab4
+B = -fed11fa278ecf793c0eb288ab69222f6332548b2ad222eddff1aa2ebc9531480167144b27556db069e11f7624870aef8b204bc90a5b404e1756ef6ce032bac6e7df1c4df263a2c4b2dc7e473ffd80c2202c939642f8313fa0e6daa8a3f5497c43185d1416b1287c73300bcbd3061296a5f594fab7727ce2f4e56e6bb58600bef
+GCD = 1
+
+A = 9e5b8c62a06d72d74ffa4d1d33190859c43dfa2bb9737b1ca10dee2ddcc61306df8177d457ad12c8c649aaf20a8eb6bf28956520e734baa74a83197a4297a6ea21c06a73e9b8e444a5c1ecca9752abe524a6aac676e3b58ac8e6a86c17aa261a71544bd490377ace697853bea46946401e927ff9da2c3dad040eb26173bffbfa
+B = -7edbd4b029dfc0116910d43f28e948cdd7b2daed3a9e5ba47fbe83af539cea788891fdf4111969de3d6793a1ed5e911756d10bb9e139d308038e463c1693f2b2693e79275473db668a33da016021ae7356f288dc29c61eff7b2c9d26d902a2deeeb192b05a69752e7f6b1f6a4ac72a9d503ffa095ea50790f232fc12535366da
+GCD = a
+
+A = 2ffa021fd6b07c011b79c5cca063270401789fc08ca8981ec05692bc485f022c30986f806173bfdf4ab54f89a804a1b6130c5489d72788b014c4a02e6c2fb506c7e51129035daec4bc0bbfd779fe392742266e34079028be31159da88335675894bba96384c19a886c27ebd70b9e86d01ca934ce3e0563b5fa0752699d81c375
+B = -782ede960fb3ee57e1d603f1d655620f0976f754fb6a1278b52617a25dd55571d02db029368887b7a7c468d6280508832d5a41924ebea3b01b78b090499fefd8ed95a754700dd21c29238f4a3aa776fb60bf7b78fc84577db809cfbf8f4f4f436affd562200a148c861e9723b0c153ff08788adde482f4f85c013c915bfce4fa
+GCD = 1
+
+A = -891b497ae124ed0122af774d36b7ba3d69d9d1577b941daaf44cd796f03136a858ad5afda36774db4584f97d7958601678642b25f7362fdbe1feabc14e4bd031268f2b91872f8c8823b4584f79c549c067c42de369885db1f55735615fef293e61a65ab3f783fef37b44cf578e2377c0e9328c8da320a19ac9019d9d58c1e810
+B = 4ba26bf83a16f458865e9843dcd7fbe2d6c4e44d6b7382baec33acd58d4dbbed88a1c861d25b6ef0c739bfc11a4281224e9bbfbf4c9e33be1c9e3aa0525a1b4120c2005cc81619825f3ac03fc5e68850b1d5a8153df54d8c070779e79add76f9fa840690f60f847a84663d8c7d0f5caf774138e863f9be777e1ab4968e788bc0
+GCD = 10
+
+A = ffec42a9b9a2587936cbde6d09ee8948a2df033258331d44431c597cbf243f4a8e2b7708ddb503cb0d667588688a936d6f8fc399877bc1e3068cfe046914c207ac1e9caeb2710bdd439881d58e8a5799ed657a76a0f117a16602ec0139d3c216209476da52f4fd2e57ced80e2a4eeefce81dfca9a296544358e0bd382c91e342
+B = a76760bdcf7a60a1499ae6cc4397a8b9891510a5f9fd3bc50ea9844ec483a4ccdcdb3928dee163ab3029d44c8e10cbf8ffaa26b26f5ce531f739c5675506e060369d546ae93af0e3066fb8e6844f61ef376fd264f3e591f9323dd83f8e889c86d8e85e5982974b51177579ce23bb0da10b114b8240d2ae2f0711355474113687
+GCD = 1
+
+A = 81b04f6d9038e2337a3f3a86e926019805ca5a8ef37da21b14e53a6a2f1b5b8de550ae47bfdf1dde68964e287511d8c98e0e6212ecb13857987ab727f1cbc7662a49d7a232b568aaef8b92f57f2d70ea1566073c222997bd2599457183888a19993afa6f6ac143b13e9ad81f25b10e76b02f60922cc27b711115957727e36404
+B = 6083617c7f3b18801243dc8e90503ce5f232b8756750226a98a05cfad092b0fb058f15e4f8e2d264c13994ab0fd7881c12b7f72767c4e094a01474b4dc2c91210f33777f5acbd6107373abb8342eb258c8e4d6928faa19a69710b650ff56b4184c4f83b4f9404692993025d293fe926a61634358ba99cdb36f84908adb8457bf
+GCD = 1
+
+A = -b4a8f6306d5de531af7cd48349ddf3c3c502139500edf9f15f2c40973cecacb5e5b80508a56228dd8b9c574cd40729e6b78f71b00f040bad1824721e25b87ae1dfd14201bc76d7d6c3cea60039401254fbeeed29dbe18a876758f862bfc4f3d6d0c57cb56a7eba04fed1da50ab4e0d01cc4fe4b2d5dc2df8a4d1877827eb021e
+B = 77d7be21aa9bb385e8dba8674dd0035a0d79bc153a007204d8f3f03ab5d510ee5e0a104f885534453daa40d1d50689fc34f86aadae71bbbbc8e359ee76074edcc56f698aaff48768ab3a12da305c6b4e4211c0e347dc6c9d9c8c41642ccfece0001315afcfa0782269f87388c7ec71d7050934f6d1ae84a868c6aaa7ff1728d8
+GCD = 6
+
+A = -6c2884e8b4dd564eadfb853d14d32cf51ac1abc7bcab2f5a8592feee93fe24b623a3cefe7f28234bafecbf2ab9e05801f57f411c318920b5e05f73551c4ed63ab89e4d8eee9da56e51120dc79388c24f096aad5ea9f83386d6bfe4185436a461ccac454cdc968440f78e73d3e9577d3688f0b12945c6cce03a8e60132df88b6
+B = -285a87e39fa8c39929bfa7640607b622354b1ad7f3b962c7fd4105da6e1dca1949fc7fe6f5bf2584503328a390dace046ff4a3f2538f6c9bfdafd5b41d501bf28bdc33b26838df2299cf4fdb2111ee29a6e99313e88ccca187f5fe8415bce389cbf937c2cf03c19005a63e1baf809e9246166445291b40af609cf90d496c86e8
+GCD = 2
+
+A = -ab2d0dd7e99ada6a16bb7350ae8410e707d6b1565426111154eb74ba38f8994f2836f84b6a16f0d08c19b5db0398526a40030f8caf21830670ab117590b268069b6ae98fbf71620d1004eb040019bd1277ac4c65b7e190f06a6718536c5d3939b8041cf545a4fe3f4c04b69e0c05e70658b73530ae26f6b886434c5f2697cf1c
+B = 99fe9e762d2cbe137244e21812a0f72455618d7b0e2cec511788161a342b7d1b60763442630dd4d02807853ce69388500e195ca6f2b260780d97efc97abaf1db32d0704f9136400707820239d83594cbf562f81a004957643fd103e234d562ced76e64e7ba14877f0e1c6754c61ce3c543c27cf4c554f06131258c90d704052d
+GCD = 1
+
+A = b844e52b0a0bff6bb5df5030a9adb8d7116af7abf342ae12c5c74c6a829f5ad41ce60213bce565e4e284ba34da67e072d625e84ee9948e4f72947832ce725a80720cee385fbefea27645e2f92e6310cdfe09ad539b876ebd587cf2b8afc8440a112c7de191fa9519f8ba744a041650509e680bcf74780d390126888868f6d75a
+B = fd63caa1d98b60aaf8487a3444dad51f3ecf9844195a84104921750ee4a3a2235d3d9224cbf7714446d213577cc93f08ca5a07a5e0876e0e868293d4b3a09f3c32903ae4fb5072e19e5432ea2a6fc90149e385a414af0edd6ae6a2ff4e915a18db10e57a79b65addb961cb39ed858d15ef31a14d9fdb4865933a67922cb576a1
+GCD = 2b
+
+A = -6796c966e24fdf498832e58e2956464f7ab6f7a6e86dd90d117854e0b38fcba307c097beb638d9719e341c83c1cdd1a353c18f0188fc19acf91a7fffc0747b1c4ab21c2a1259da048198c787cacb69ee6e01b78f8acddf738e40cca7d523ba5d2d8d00d09a95cae0ae4c0b3ddd13348259cc4ca1127462ef59db73fdcddaeab7
+B = -7eca244e64d76899158bfc1f14eff176f8c780a912d0b1e11dac867879166949b77cae31a4aed6645e89f07d5de79e0217e3802862f06841e07c4876331629c31ee2bc4005ba10b7cce1f584f729e231f2d06f8406bd966a5db83b15d004aac68c004206eb3072f442b5e30a69c767de35bf3cb1b8714346c8f7a966b341348f
+GCD = 6b
+
+A = -d7a4868b78e2fd83c8e5f68345e30fde35f742adb0cc05c5c3bc282fc559c7a03699d3f7e3303889a5a9e84bf0a38dcb721b62dea0bade5f5115de62fb89257870d7b3272818c9066af713aff49de1572aeca8164bdb6a070aff3c2ea8da6bd16ce2cfe17032b0153e9ed2e2826ae755127758fd28194bfddc1a198c3ca79c03
+B = dd93e4bcde94b3bdf7db555891725ff05e6e4f4845e417c70c32fac49baa694f41cad1b900d7ede8c80301ac628467fdccf09f21e7cf9df51d4a888cd5dd125e270403f344bc2b3f2916b0293ba465d41c3e6c5e108c360cb2fd034ee7978f3ca8f00250ceeca0c78afae61a3ce2caaa974dae10844d9c2ab0a872bf5a450037
+GCD = 1
+
+A = -7411c843ad36f46bcda4091e1b977359e4df4224e174e55a78bcc423d68362a24de62fb83f7a8d3944fc157d6666da9d25470c0b8d00c58e3d76a30418acc0455d76d221fd80a16be58fcd316bdd69b509358b6e822cbe28b857889077fb9c266b2fc5ed4a67c6f9178ba6f3c8c083b8154b2da89b86c5733ae28885ec1df8cf
+B = -1fb06e327b0e995e3be632da3cc1e9dd80a9e767866b9aaef5fdc542fe3394e4584e21ff61f211656db4cd4c78d788f46f84ffbda5ee0fa923d9f13d6a8d45b313cabc5326be496723101d802a8f6581fadb719a5c683dea5b223f4c2e38529f433f2fba765070298094c1ff158cbc6d2240e9f7b2516fb3dc9fdc56b879496b
+GCD = 1
+
+A = 47d4707448896229b676cca6c38c76173c2bdb2c5bb34ed4fb88d54da367905cb0661b9b2ba888e3f1006bb506bcf9459dcd88ee4947525e6d09ec48a335cce9d53c3a2c61a1df175a6c54b88ab91a90b762cc273c72246a5d2fda345d5d35900bb120eb30be948aadfe48f80f21db54b539081c284ce9f589a8332f7bf5f096
+B = 7e71dc426dd4eb2f0eb41bba7a3ea42518852bfad21d9a6325c0b97ac1720dd59261c7636d1ff6ad7b75f11c3aaac76c7f048da473a4dd869b73f26b87679fdc40e4f6f4ee989945501bf6ef2235159f3b7933acfebf295eaed5b37dbef24ae4b6920aea57d9c04182305128c42fcd4e4db9cf22be34349dccdd7b06931c618b
+GCD = 1
+
+A = -b8f867a5b3f4866ee166b5c443e9107d0e41f75dc3eaf6b4eaa71f7ac0194ee70a1ceaad13eace5b885a791e1c76e9b51c5916a54dde1216cb9a43606179d76bf44f081fbc27273c7d82fc27ef656aeddaaad435d600a6978b238a4ec0f68236efa3796ddcb0c6030765009cbf3510a7c6fc6ca31ba9be540adc8275ffd683d2
+B = 1fbbfb546c1078e405da72ff2e76ef3f9d445ffdc1f593ca3f498d95b12ae62dbbfe2c22830f06233583b63af445cc09a64f9882b9fc3151af3239a910a01ef80129de0fe89cd4dcecdb982604cd0cb95294912ff4cd856ab3092f627bc6842effb8e5440974bf0781c7fd6237dd9f7e5ccfa2a3c04fcaca33f60c3ff5411675
+GCD = 1
+
+A = 3403e3153ca94f31e8c4d04285958197c59ccba323dae7c9cac8648d7e0d9ea292744f09befb2951a2ac8b034504e1602c2e1301d6e47ff1ba11a077bc96d7bb4ee5f15155fcf56e4a99661b71e964f533ab7056ea6986317911ec859e99ca31474551851883c2ad6d4df01333ffda8d31bfae10338930541fb14d388f885640
+B = f460857e121aef219f05a8ea2a401aadde30eed3d2d1f928074c87b94f35a052edf8f9ce9379eef26a46eec82eece80f3fd2ad36f4a6d856e119a7ae446a6a23f1e217696be4374a70197a97a34e9027061eeb6b73b5b6c647e655f0f06978b873489d8f1fe872052ed07f92df98453c90367e4dae21e5b7c9bc9c7fe6361bb
+GCD = 5
+
+A = -1f5c949d8d2459b9f52231635df546c74f73e9db87c6ecc50db920a2d53ff40435f73f4ec8f88f5f5040b066a7e2e60f4db762080cea6670024b43eaaf0843b777440d4773135ad8a6a7eea88ed8cf5f579c4350afc32b79bf433c12079dd8e096a50d673d2d44dd18dc4af2f8bac000b31c07b672dee1d7fdea07a2b998538e
+B = 989c554a84e3511cc871e48052fd99080ee510e00e881aebeb1fda7db20d3f478732db7e4498047579dc9eb9ff7cf76480545ab18ed677a677a88b7365e73e067bc21ed9b599d27fa7a1f5c52c113ab363dc567e1cdaadd9fd4d56d86a225946486d752b067e5aad7823dcc497b2ea91b30d547d4485cd5eb8a38246de75235e
+GCD = 2
+
+A = -ba1c94e13d0e68a62c01583bece2ab2b363c21b3c5dbe912cef358563191a236c4f51886181e3417bdc306c0af8df3652ea66e260ba9939d32bda0b93110a15bb9319e13e91a00adf56289421aece7ea362341173c1b9029ebbdb39a5fc1fc84df0b35efe20fd0e5bd26b7307896c0584bfae81cdef40a2460e420a65cb2f0f8
+B = bd4f2d593568d9b4746dc201416b8f4f9c80fcb51549db798c7fbaf2bafd5faaef75fb9f7e72ea8f2051410d4dfe93f6b046a6da915ba170e6040a26ceebcccf4e1df7011f10852dc56d05b26ecae91ddca1cdb54dabe6ef7ad101437b826071f7da3065b6e034db9406dad4da0b8534728a1aef1f2211821ec93e527ead6330
+GCD = 8
+
+A = 9bec3b9e7937d5f0af8f947b3212c5bb7c49fcfb346958ad98aa4b6623ea0477f2b8158358195f32e3a59833772e3f398f24a0afe68dcdd8e2efdc92c4372089cf06b26a6cce98fb8d0a2706227ac5ad1e5a17bc4a37ee75b0dfe069d0b6c291431128e4fe425d72262b92a17bae9ec094d254d6ca0558fca528bc6d87b5da57
+B = -6cf1c0d6c89b90698312a1210d57c45d65a92a8cac77db44fbc1af15832a2aff10ab92f47f7246e76f841b395058e0de3fb6b92c84e3c69a0e78d54317f0779c2a4e124e4826ab717130955cbbbfb99acd80d6971481d62925d05c5896ab843e82aaf866f6e161a301c4735364b10d2d2687ec5fb2142ebef6e66368150b511e
+GCD = 1
+
+A = -c02f379b14681a8e22ef49f3017f68e9a50c12b6fcf4474e7edbc7219b1a84ee8161430f51d66e92d5f6a04ed4bd3f6a4450c36856aefebc42e78cceb1b287d11959a1b92e046bf471573d9cebfdff3b77147bd5645e3c86d48e8deb5276dd8b5fc76533b90d6203c39bbe3fc3e6011a4c694e8e736e65d8721e7cc9e875a3af
+B = -bae310ea9bb9e6a4611560202f47f01a08c7ffac2b64d0fa0e8070974fcafdb0a41a8570d46813097f407d3b57e9a82712b1de72ca861f99b608669d8f59c30b66f225ff9d7a08ba15affd9747e627ac93e67c654273fc2d4522050fa8e78b496030432cef93e7348ab35961489226bae444b5e5038375f25055cf113f03e811
+GCD = 1
+
+A = e58cf8c714130a5ea2094e4370a53a2eca7c0fb6bdd1e9aece299278f2136be69c2b61dbc1870d3df7dd0b543e221e32341f6445b0ddeef2a32c33fff7c51b1092ee81342131c4001604a1e5019e968a51ad6017acbadfb20ce0a08dd4d4274685447692463fefd7a68519ec15cf4605a2fce09bf6342bbe1d6fa13c30287ed5
+B = 5aa56776bb3de86cd6feebf730aeb77c42349f3c983fbbe9f17fdfd6a8f600a08555450333175b4f43787877c097c2f69f00f1fb65a06d41231450727ba20502f5c73e37cc5453d0baaa6af8bbb40dbbcb2e29a0b2df58a40203c6a095c3e4b00c483c05646c0b66c9ca757c4e79bad6d4a0af029acaa129bce5162aca5b7e44
+GCD = 1
+
+A = -5695bfd8edecc0022124b75e5f3b5b9432574e5cc4957b8a580684e32dfc9cfbcbee2c71e941d96c73ceec0768ec8f326804d0cfcedf1699cd8665dc83764c5b333433a3369e216b03ca831ebee1fb39181d02a663462087cddf7ddf6ed2be224a1fb8f66230a3f9712b0c514581c52f9ccd968e31a10ccd1324dc5dc5fa85f9
+B = -cd7df9372e07dca86f3a8168611a4b0921c030970f029ca3afe3e0501e77e874dc2fb8b6cb50e6d7fa7bd912d6e112b535f2c9b2e0045f335b3bc1f71ddc87751fd36421117d575390184f35f39f57bbd474d910a839c0e30c53f24f7cb2a357e7fc57dfdbeafdefc2df72e7faea75c0e8567f8effcdc45934d6b5daa21624d3
+GCD = 5
+
+A = -960954f2604cd4f6687a9910f155ad2e322a5ccd41468ad4c59995a7b8a44c54beb1d7dba4435d5956e5757af287a95360064ac99e3dd3a7038aec5c76e18b79dd2ccdea9a49f77d97e8e5b1efce410bae37672c682956c7ab4656848eb1f11eecb58600d47e3e7e831c0fffb5f20d9276b9f4f287aa1bdc31f62bf8d95d9451
+B = 4208f9518aa2a4bdcc9ca750e46a9b4393fb76e61538585b1503a6c52de8d31c7d24126fd5db04bf00227f22b6a235be39a5c083c343d35914a14b9827b1491e76c47761891305363b195e699b9dfe79d92e1d0899210e505871970e63e7869f4ba07f4205fe22c841268cb5ecd12c7c0d4edf48500a3f91c471c9b1b2b1b711
+GCD = 3
+
+A = a3b7cf019351f252a9a7fa2c38325be698f0837ebe9e859a13b87d406210492a498a9c7c0d74e9a4927910cfb99fd09c05d9b1b0e6e1edbac72d99ad36e8c8f1a57781e3da9d494277aafcec17fb7c3328c6c1e7a80ea12f7a7678c8b83a3fc6cc251a1cfb14a460a08853ab67cd2499ea9528301eb81ea9cab59c2f5915e913
+B = -697374ebe8e633cbb1774914898683c883af7e3875357802e9af48a6a4da2a7029426b64489675feefba1ef5bec0c0bd9de07734576a4efd950cbee4a4c851202ba2b0ddd09fa3195ec96ec0aed780f57bb57bfbe6bb48e0afae8dd5b12d2cb819580bc890aa725c6a5f71217224eb486f9121a2d82ef7a491887568669dba0d
+GCD = 1
+
+A = f1128f3a57db5d0812c1372f6690ca3af699ad2bd9b6956f158a5f78d33c464af85ddf916f2a5464af17ff71f0a22f42ed804d0eae988e971db72ede47c0253d28169113f39356170a1530bb068bbc2e6ecc3931ac70f63881d3fe45cef4372ea03f38552ca3e74f251040721120fef165ef8014f5d647b7d5b02d3c13501cda
+B = -915ed34c40035bdfa6727752d3334cfb5863bce5abb7094af232496690922a8f410895fbb827ba34495df84a466c8a924142bc92641f056ee9d12a64054e125128b71a27335f549a90fa11778646d78b11447cd5afb31f1e5a667f9f4d6784a65c30f9cff34f9b5b3656ce419c3fed1defe0638b21bfbdd42b15fc7a7c789715
+GCD = 21
+
+A = -587f0a997722c76827b3ed1ed6f1bf1b9b74d6aa94ba5e4c735cf96a42334d9a9812010a6296f9c84bb011a329a2ac738417c8791fb062845e84ec3ae2bf4888e6ef902220929bb5d56c5c82abf995f1493991552065a59d9ed65314c7a2bdaf20d4596e710d2099c3db9c833afed1c4b5d9cba8ae5934fc2a753caeec7e7527
+B = 2d2ff327e05cda44287cde4a9b589bca20f0c5a15031b9d7edc36e5624e750f46612a89bceeba2d4964c02c23f9e42498992a594d43fcf3ed8a999e389cb640105074205d3acf0a072628323a3f3ff96f45d4af6cf84a523bcb83be204846b1b84f738bd9e17a2b1bd1c70b6b294346f6e87d08b91493c48adcba8428929a2ee
+GCD = 1
+
+A = 58ec55b033a8bbe72f5e27224ccbddb950cf4a1a02d07cd83addecf9b9a174512b5323966c9db4d3ba6e0f6a90d78e24b348d91f717340a3a354b23cb69d236a5a42661b5f3b183f45ecfc3b78791fa2e59797e85cb555a969f1a6c2fceaa8c373f8117bbffa23b9d387504e5dad627c05881a2a7e1d58fc22174a2b8e29ba59
+B = -1c7fdd15c7415163ac22e766424d6685286fb62f3674cdccdabf0f8cb2764788d7c86afdf8b45fbf43295784069e57a48af7d54c9fb13e2cee1a08be7e7bdc5f75dfa947e88b9486041ff7038605b199c2659f80ae684158ffa942cf8bbf9fff50f03947219fd7c8f2e585cbd8a66223a4778b4271ad179e84214e1c66359ba0
+GCD = 1
+
+A = -c1d3c2c81bcae8b8bbcca7a04df8cea662ca0cd05f8b2d99ed1361412c3fc54be413e72e926f878b436c6708c41bd67d92a9fa26691f5e9b9f435e42670b295ca02052484c0116e915b10011db67fd6d1c8d28823972b2e3041fcf0d04c02f3ffcf431a3636d508a6cffd1f33da17b6dbbc5c043c3537f43cc17c44b7a5c8ac2
+B = 67e4cb08cd8eea1e9600d7dfc602eddb0401939fa90b6f7cb7ee81e4332fcbc0d68920a15d3ed81c462449bed1aa7160eae70d6f20ed9932656e24fc5735f01732daa4ee460caffacf5237b3d5d9c546f6440cec219119a0ec7612d8cbed4714ee50ce1504b398c96b5a229f6226c8b456af4cc54fff95cd6907281db6eefc5
+GCD = 1
+
+A = 41b3860e81a337fc40852b093e727e32084efbec61fbaf59dd28493b197a41224bbf1c15265196537928f181194c3742129822576c1fb5181bc707d81e340cb5bb40ffbdc919d5a418a681118b6f99ac7439fa75f23f35ab0e758e2571dbfcfe4cb3868517d1524b2844626e9308fb1b0430f670d1ee87de76eee5b7a1734fd0
+B = 2854ec0663da374474343a01f74b13d5a0b64d0ea2c3e9af7636dbb8874244541219aa549bee2acd061e05857ee7fcdc1a8ec37d52b731bbc9ef200293956ceecc0846219f97facc3c76b2ed3595fb829c0a6ca0f7f041c8650635ac2da7bf7ac1791e1b250b11874c6ebe5718d7de8f090e5df084078b11c47a7b1d1e5dffca
+GCD = 2
+
+A = -f8cc8bd8fd5197095148a12e48afce61b0c0b0f1a5985aa376f00f4ac8f5631abb293ef3d90440523f76329e6e51cfa0c0f80e52096f2db67c83b987840bfaafb665eb99cc856c3ee66d4c7ff7e2d27e65e56f6d1b33be2082355f7d3d3a518b919ddd67929e8f41772b7110aa6fd0fd5bcc25387b62b78124505648a0614e06
+B = -2793d055589254302469cc9771bc837fedf08a153c6280cd835789d4b074d1a9c77c9a5e15029e3e7c78b61629fa9414574ea4c074777a3442ad0baea50aede74c9b6ab26852152e70c84c86c76b871fa90707dfcdcf9501a23f7b05d95c3fe43bfac67d3d1b7a2b8ddc817774bdbec2f1cc0e513c4b1792c2006ce510c5726b
+GCD = 3
+
+A = 9aac4efc5828f646af7002252fd8553ae5b330051502371db87bdc34eefa0f138e55044c7ec531e80b0570ee207656fada2507368a837c7b94051cefaa745f3a301936a2c846e44caf6ec604378d7347b50a860c86a8340a10f728c819ee0cab892fa178c28f9663ccbfb392c109d3179de3387931ca6becbb4d93ccb463ced
+B = 6ac4b6ce8d3821dc7e350071efa6212bb685175ec32183d00424bb35d9ce467c442552ace65fc72a1fd8e370fa891a04f565f79eeb0e086a405ddda82fe881918826688b3b3d5143c4c4c325e66ed0a544f533b2b9c513fa2c98ffdb85a384d9d81e83138dcdb7645d7c0e1b9b4dc135314264fb2929b902fa97440ee73997ab
+GCD = 1
+
+A = a56b5f2d7d23608fac2b494c72ca764ef581482329faba6595e4be73492e41bd0bbb9e0561c328ea10e3bb1a149a877afb937d202e67c51e7613bfb086dec6f27b7b7048899e02fd7f5085dd44f0a873666ae20f74e69a5ff258f2be9bb777f20b9aa402b2e2f5a0ec892341ad0ac5b3f419a8a531012c082686f1bc44d1f6d1
+B = -af73058c3e51b0818f958e6ffaa34c72ed9653c3f9ced0157ca4dafa770d289607d3fad16deca72a2fb295a74388dfe337f8185d3db5954e25445b7056acff777931424710c55ec7d5db3027255b786241f393e09832f1d113b96bac5f0f8be1728f77e8a1c67bea0e50f38c57d2378b3febf0fcfc5bd9bc8e08d5acf5ccbee8
+GCD = 1
+
+A = -156dc1415d58bfcb020319fc2d23f9fa44732388569906d59aa9ba1be590bcda14c24e5b10401976df50bd01003656ba1ec51786f45f099fae3c3a54804a864c5ae6291e891e386cf0117ddf06999887f6b63c16dbd397f6bfd23de4628304c77b1c21ef564f3b500ff93a8f85cd5cde00b7628dcecb43a2b286bd36b36af2e8
+B = -30853db6fb940a85214412173501e71466b87b30a0ad917cc7c16a86f64f763a356806c1154f42f22603ccb9e19cbf98caa02d87205e9b3c89d7c0b50645d61e86f8319be5e98727f017f5cd139eee71bd6f43bf63495c3548ac100bb1de9f4190084531b88b57b82208fbea59981eac45802bddb1c2e867eec307e37baba12b
+GCD = 1
+
+A = -c58a6bb316fd230fd0ad37906892240138879653cadd519d3e80e0841852017d8bf7a5799846f9988c2ebaf0f7393ce92247704f05df022557bde9bc5cee1d37202655ec283057700696f79644f7db62b838d22292fd2d71e4f8b01bbefa9f33e4a20a4d6b88c0774b435d85fb0533d49aa6b3a3e9b644e8a99b69b0fc839032
+B = 413235192140846471e8039312c6c60b8a17d037f0652fc0fa6f7671c01ee197906b023eb90b59a42a4081d8fb8af1dc909208966e297ebb739e103cca336b20ef4ffdafb1ea5eb4e0f19d09297a6cb6ee24221cc1b17a2e78a66605c346b7a4bf69b91258d75aeb1b1715a82249400c499a07f965835139d4090762ca4d7f5d
+GCD = 1
+
+A = 5c67e06428e845fe7170d0a5227521918ed949ad4887a113395929a2cd70e70e1df88c67de3bc54f2913614f224a259279f2b4afd7ad78d2c26efc3148c6f3b09212f8af2a8973cdd29bb07b9a26b27766100fa75ebdd5a8158612c2b929b6ba972e663128ebe0be86776fa6ed78baa0f342da17c9cb358e1ef2206ff9da33d8
+B = e6b9578994d68bca9fd69875f730313103303a5b81a1599e5af9b0d1bf561f6d6ee21bdba8c85befe37f556bae7be5725cbefb0aa2fd32b3f1281c9236b8329d56a7b19a0a904cd4d2d7976a258af7782953274620d0f29117e0d7b9d91dbdd6f258d97b9e1c0ef6b1950a9933b4f6641d1274b160443e41a70c0106ffb86ca2
+GCD = 2
+
+A = -711666619bfbeaf7f5a7ae3b700c210f36a81a7f10c81a1d4b1be83ad08ec6c30d206a1c8ff968d69d0f9e411003f7891ac5ce4263b00bcf4befead45180edc37dac9f3df132c35e8f0c68b8458d11af5c8d6206062bad23dde4ea230e2405c567c50eb93272b9f95e3f6efaae4baafffe844f5768d948f48f60ffd9027f5676
+B = -89a4eb8d2d5310c4b017aedbb5fc5d29532253da5303068619941352950145c993ea10bf3f21a697eb4e3e3130a183625419a29a1b5c15f3687c68a94ce7fde1561992b1369c4948fab8db9f96a0f7c3e3ba2c3474d57a4edd90439ba7692b2e8a3fd6867be22a7e8bedfc69e1c340dae8fef65628c388d62ac97d1dd4e6df74
+GCD = 2
+
+A = ffe0a3763d69e6ab5e90c7dc9451a7b91c0caf76bf48f3c0badf73071731b57461ed99edaa289b0e74bbf011804c8f34bb6ce0f104509181f8e6f898fcc6082f8d847a1682d84d6894b44ae6d3568389fd7f8c395f2c04bf083f42002ba1392294b003b61dfc0d1e1980922f8873f7eea038d4f9b6b1f3abb5082786ed144814
+B = b1897f83b3df810c440d75c2fee6b1369dea666fcfa2d5734affe33f6dbd44e5a1c6eaa65b8a75842a692e98139bb1be164a9ada60733b875c4f4c00eb108c5c076240addf65c68a4a01700a99b383e0b110ab8c9bc4fa7563548f19f0cbcac7408b4a734f9aa80f1e5e54942330cc2f6caf849f9c2069724543524e259d92fd
+GCD = 1
+
+A = 342acf2dac3e71da54c2ca58eb3fd7a45e0a0afb9959991d167baaa17941736b3c4841436f2f9bad425373a4c742041acea65d485664fa5ce67da7438816060578365e52d9d78b70ee92681dadecf384d4923baf4bd80e888914a5f16ec82b2406a4ce00474695468db8bca2a568c53877e4b4a3a51564216292727c1fcb6314
+B = -1276268cfc6cc7564d2e5c20305e28db261b7dc1c2affc8f80a55872fb2975eec68330c186cb053e90cf5b96a3d91812225864740d429a3755f044b4629abd4d6c55a4e3f91d1a395c4d6a47a69be47b14da2261fa6cb5da95f9c4b255f7596a39bed4b3c93d5a795e445f25c4f7f0536ee9c268a98db8ee34756206826fe0e2
+GCD = 2
+
+A = -99418137b55f8bf8a7851cceff88c95e3648894d39ff3791f05a3cf98dc5ce7769d97501d2348102372df1728ed81eca845e426d36b0ee26f7f047ba67b876db76a15bb6c3a31eeba06be51d494b87f6ae30907a34742e36b4f1e59810ed50553e11132dc2b450eed437fcb20c5f0b2938a5ae387b60881e2bad6bf124092858
+B = -9c3f99f96ca456fa647b93811a7a93189fbda5016b9440bb7363b2da1c26185a23d5e023a1ec08051b527de6b37028cc0a8b182cef931945b81d73a6cb2d5e986a4fc3cef6f19678b81aa9cdd318153e23f0dd20b138a4dbd28ec8cd9f5281b9b216f17bed831142395e5c2edae45eacbeeabede544c2c9798f7bbd8d9dcffd
+GCD = 1
+
+A = 8f9c55d58c5bdd33d9384f015e19a1572b54184f436cacee17873a7b2fa5fff8d1939af314ea62dce2bd38439e12533a09aba4701e562650e5d0555dab503ab23eb6d752004a8bc70fefcb0b2d3195389efba2741ff35901727b136c52f1f4d74f03dec04cc6f4a4ff41425b52f87c4dada161858410b18c2879282728bc50f4
+B = ed94fcbb8f6d0019d73240243dacf1e76e9c791daa0c7274d33e07947249c865ebf9943e4f691632fe39d35ac807f4a062705463c8bbac00dcac4f7b517b8339feb035c622be41084edc18cd2456e537590ce526a8583ff38ba28ec14ac2d78c3662c788afdc02162fff51232482bc2a7f44b4cf4e0d5d0966d97f5700f6437b
+GCD = 73
+
+A = -fc9df267ac76188bb1253754911bbd067b00d6b4af03c6971ba05b938028b635d3c7879f2f501f37071e7ad039557a820d9b452b24e5237c31329d34fbc449304c31c8cef0a357c34b5c20580b36f2c1da0928a6879b655267d026615fc9dc3b457b8dcde594fb632c4c0992740dedf1ca9e5acac32175131a0952a0cceb3d9b
+B = -8e606ac0ec08268e625208a9a65a6d4acfc3524f500e6bc8fa620ec46c1d19565250d7122be3a8c2caacdea259c05bddd632092777c8e9d3c0a251cce559521c11840d2711d946b0ecd81dd4a2f32f61bf7b735ff997d5d18378000f1c38310f34d5de31f002d4a0694932c2e9674acb7e81b3bbf4ae16164ae440aabba805a1
+GCD = 1
+
+A = a80ed58487234dd9fc427dd327ec6d44bcfda741964184a9a4ecbef537b6f4c3b27450f55a337f187ebbbd3951ab5a189d2556ce9656656f9c94bc8809ec023bf5370a69a153d3ee53e2684e4252400c48c3f7b5c6870092d58754ad0e3488316234f58353be97761be8b31551e8c7de02055f4e773b027797bdf59d2ec7ea40
+B = 3b48b28165af0315bf5599a6ad14bfe657f4e25cb29c1d7fd942c07c5ccc2fa6007019c21297131b70c70b2177e5fab2e35fda6b578ab9710d3e18a89861e0b9042758c75e8231cb4cefefe873310cc140fe1be9b71f14eda93d1b3ba18fdf889fe2419b010310a56877f980960abbf62f71ec3ed842ca1e358af2ca49c1fe78
+GCD = 8
+
+A = c0ef4bf8aac609aac78c2d7895702026649a813ae8ec1cdfea00586d28ae8621268f919809553bfda490c1eaff89d939ef579fb498ef11bbbb9ede3949877a4721b40e1345a3f6972c2e2874cee23302675ea85cd7c1c937313311d75e000b181839e0da96b44acb5851f067dc7efdc94260cfac13fec4300873c4f3c5a9fdf9
+B = e64ae7744ad5f564242c4863d878ac4d8c116279c70a8590e3c3b873436e07b170c58c58496bc61b1c1c88e2f1f130292f5343b6a7fbec667b40567433f8f6421bea275fd86890da92ac30cb38897426d0da19146ddf5117ba3ab55c26432e0587615f0b4fabe4833e9a6382e354406ec4826bf64bf868d68d6da862461a516e
+GCD = 1
+
+A = -871b939490bd400aa629e2772b7f22ef120f86d950f503e8aea4a6241e43225200bbb539ec4459b448d4131497468ba4b5d1fa1c5dad0ed0f9a1134133bfdbe39aa379d33cf7ad57b3c8b7082129f3090c176813d3d2e526ba25ba84299a406214bef04a0ae478d2f457edc10f5484b52dcef7124ce3847e6c756f6347a727d
+B = e917c319b1d6ae0dbd657cb4340346be39bebe5211836541bd22638e0ab58e5d60a460676131abcdd07309c3139a430d40d5edf6af558587d3fa16a9f2ac3b4f7c3dff963f5805329ca0b520d1daa96193ac8a777f9cfa46a6677b2353c6fc4d4533407218f37ab81a433d219e9f330054fdd632502e481eade4e6f41979d9d9
+GCD = 1
+
+A = 1b37809529b041170bd78579c85f21023afa2b0b6077cf9663ac4fd87dbce5dbbf72a5772daba717f3b9825e4267ca323d0a394f7ff9e489362517543b2bec50e8e17caa64c67ac837b575ca53958424d7532dc74db431bbb710817399e951fe145fac0ed414bb8d74e4829f02a8791bbe274d49027f2d641912861cdf21646f
+B = c6fa35432508d1b49c8e5a047289027ef2e343a46f75c437cc7edd6f1d8cd1b732e95e1d05ee56cb62e675aef96cf6d0b9ddaa772249e34df232cb7a48199b38fd49cbb0cc17a836f6e9dca24284722e1aab1350ab220f03403a24b9e71bdad8e78f038d52034f61c52fa8d1d149d7b13a36aee6c4704509bb7c448dc4bdbe52
+GCD = 1
+
+A = -dbc538fdcdccc1fe7cb84b1cf5d702bfc7cf161b959184c5282f2cf4431c87128a204ec98cb1b38455d4bc0e4842562e1b7c8e4e5d1425f92f78bd0fcc981ec73d48aa750cd98a0d97ba1ca6e0653725530bc44677c93f2e89bd3fb3b5001a025f9e83561048e4602d31fd1bc08826e9bc0e6492fcc2565e320327a6c150cd49
+B = 63218c14728ea6dc6782f04587d3e0b9c36cbb7877f0755be2c62094e8abcb4cb0366060f9564b2946b5bcb2f32401b99ec7f29220227b997d431291b793e610a45586d66ae2543f75b6fe0d9d39704b0a3773543d919e772d7bd0039497c1d495528d29d97a7f4b42373039778a19b27acf99ece57f7182a28b740da9b443ab
+GCD = 1
+
+A = -b6c0363fd5205b632b7efe4f888f99ad0f24d3b290be0b79f0fc51d3c11ad30ee6c8e566a2612c2f6b07d91efb3c268cd4d2ed1b816c11d0947f996dedf7f3501f98851fd8dc61f1c2b9f572093656e9a1fb78c7f4de416812be2e06c45b61fa735e005ccfd5f87a4ca9c3416181b954742c09ed3ca2e893a4730e88547d307a
+B = -90e1b02be60ff20a16ea0641fc1a19b9ab3401ecacb1a827f6ca5d4476bbab77974e2a8201bf07a12b9527ad4db6661d20bab3b7b7af5528892d32c9102bf3055ef3d08509243fbc1eb8ecdea5ebd02b5b080a6f2bc1fad349b3dc6750f5944084961387e0a282fb3f80868bbb9c336c7a57e3f1118a4f89c333120bde48cc79
+GCD = 1
+
+A = b1967b7db0905871ec69ac90d7dcffe67ecd29c9fbb0f2f8b4543742a2382416ea9d527f80e5ceae9af07dc6a836ee26fca58a02d7ea600d6de51bbe22a7c3e4444ff78afe0c19f82a9044cc82225a3b3629005bd6d7a21e459b943dd0994d84109fffd72d14c3b2060f048b5f92c4b8456daf65526b1dca58ad067ddbd9d154
+B = -3543b5c0ddc94f064b3d4f7f65e63552014144f50adba324c009a0005204b3d2a1eccfceacffb0f21325497e12469108bef898c45ba68f0cb50cb456276e87a2377632a64a8e24ddf7f885be40e4f02488c5f6093af42490d5a90679b71415ad29d651f680f494916551082ee1e2c23c9e997c8681b7c39d1340f4fe57de5636
+GCD = a
+
+A = -1745d1b23d2b993024e718c0ef69993c747af9d9f6c09d7a014728c075ba7514a76360e1bceda5b00018367eb4c2257930daa358afc6c3504a0203f37550a55ac6654572120e7d1e2aeabdb98e2995580d4c2906a09b2207351d2a2a0591ec0bdffe7ef6f3b613b004b635ab4e70e20193aa51477eff01b7f08295592e860d68
+B = -811bef5e7f403d063e89c30e815719c0badddf21e467204c88d7d2d752111ea1d68f3211da12eb36f375a009c3b95b6d722dc650862ce4cfb239aa2656454a8d0d01a5172905778d3feee6e0175b0407657b80cf3454396c0345089ef7a65f0866878943e1e10b941b10f973373aeab633210f796ce3136a3a8230d2da7a1470
+GCD = 8
+
+A = -36461c07fb2fbbce73a2b69dff466bdaac04eadd813977b4d2486f8c57246bd1d00eab0880d163039016a8501712a5c5f34def4738477055f7dab27ebcae415ed4bfe34f7388f27e7c0b7f4dff9ccf4765d760f2ebd85dc965d1efa9ad9e913ac1e819ee6b07bea3bd0338a8a2188d8f6ad404938dd5ea002eb60e0830f861ad
+B = -404a2327270526cf65ce87fd8c2b5b6caeee39dbd6f329e29737d7aa950c594bb4d08109836a1f4b3ee45f67815da9fd4336d382964fbe07087c60beb709b2c2b99a6ec6674ab11c19b270a852c20b28bce8408051e91c68921c0925f1633fba0f212584c879423d51adf123162dd3892866a115e7383deca05c989384e838aa
+GCD = 1
+
+A = 27cf16768a0fc66c47b18fbfca79f8cfe704850d39cfeacce0389c41f45e1bb2b6921c758bb7219a1fd33e93a0e990abf736eb358e272c9bf33d33d511e17f7457650f3f2dd67330c2631a0b754a916b40dd021d00e5476adba99bfce8a4faa825a8f3dc950797ec7b85761872bc03c56866746d87526ebd5729f349bc8dc349
+B = -676d85ac2307ef3bbb049b04f3dd80a52c87ed3cb0275f6be0c818f5bbdcc13249a462a1ce7313acba8fc265b6bd6343425b2fcb7d6090a921a2a2b3194e4a7b842d6801683bcb16c7ce3fd7d75501deaefc49d0a219a07cf2af4a5454467e0b24dfbf8cf56eacafa69c78db266910243047c16a162dd6fd8167f3d755838030
+GCD = 3
+
+A = -174ebf3591f5a2fa379b3cefb9b7cebcb7639ad8850e267358462b9303ebbab3e62c5731ad3c89331f3e1ff8df8600bcb64d93caf33c775c69deb2ace4556e634dd4058951da7f52173a1beb37ef159443d9a0d65a8ef4bf1c80cfe2c759633f84fabd2c7ad26faeb02607786032eea5c503aa1da0ef7849dcd412abd56045e5
+B = c7050c87f19d7e800e48ec4183c019b2169ce690ead0f489a6020012fe0f4703878fab5b737e1c789890dd92f1d295902beaa1ec921b5719ca5add72d0c9712cca0921e32b978330b5d7fda19afa4cea9502f2e2e0bf361aacacb124e8bcdd361c28e288a7fd11d67eafd8882d785174b428b92decf2c043861f55b851a5435e
+GCD = 1
+
+A = 10a05dae8781376ff398c34ddf0d3850e318f9de536a5878d7a165df108fb03b0c829615ff47c6f0410647bd4369f5f073f190a5f2ddcb71b20f2b513fef58d41ac90b122e5e6dfd64555a9d2225563aed21e14356c23f3cc3212e6479b8e545289b62bc70dcdbb78a21abc12186394770bd7d0d34493659cf0b5693e7512c38
+B = -19a0090083b5b7efbd0f98d035da7d7bc15246f0d7c91d51b0505ad73c2250cf85ac64267d0c91785b4cb9acd828d1a0bb748136a104089de7d3bd4668a412861de19878547472357e1a0402431252d6df29be8cf5d05a248502e33a85142893e7c47e492c988d5b6c5d8653cb2f683d93b3dedd44a0dd06e635273f8d66e455
+GCD = 1
+
+A = 61839d34940c97acb76c21a22693240078ba28deffe1702a19d5a10e7dd2a405b6c59d88001bb271da25274e444df4978c40a560a94e7e80cdf2956db23ab77f6560ebc7950e482d97837dddf15c7a1d8df913c58f98974a8f4a622714c23af0374fec49682907fe4737234f93c38c8fbf90a0111e65c4caa13c1267372a391a
+B = 7810d238188ff40418ea2994e0f0f095e699843462cb242799cb00e96e4b2d8d81bbba9d5e3521d24287665eafe957be5bddfefe3f19c5f9d00069049ebd1e586e2b41aa4b975098ff274441b579b0711196c4d581fa9f3e878075f9803d4fa50bd5b404e3f91b3a98713c5f28ae95182e1fde6e9b33bd2f2041b2abc84a084f
+GCD = 1
+
+A = bc5d1252908108e46370a6e6761e7744f1149af2b12a7a4af8cc88324b88f07450ae12173d6913c94448204c80496bed008864c4b8362b1ffd2858a25fa47d2ddd511d3d330224d4181329dac0e149d161ba081068c991c9a8c65a70eb115525fe6e3b17e4c2786b0268ca454e5f72f39e36f8986a4cfdd64b42a3dd77dde4c6
+B = 83f26aad6b361c2ca5143b11efa70709d19d1fafd99b21f65e31cd71303c50fbf5c6a2d1deb48490d96092bbf63e555544eb865bfa35db8ec4edfcb07bf5e0acb91484c1c6f103068dacefe42b01276f9f5731e5c6f2b67472dace47544ab93920574e6727613af47b99072e3eb1d5a68a1dea6d084432c29d1eca4bc5251ed5
+GCD = 3
+
+A = 43cc14a533879f7ab876d003a5e4ff19d5155319911733240d2521512c850c292988a2c69760cbfe8a5bd138f96de7d2f8abe799041f94c917dfb7a750b55cd454d12b21c561181f6ebe15b899511f10628fc54778698a5a4f15bc9378b4e7491ef87261f0a50727249c7e126e21cc20a36321f9fca9669f1058a8bc7896b115
+B = -1a0862d017459bc05010f63d69a30fe93753048e39a3af8be2918b70807160b0056dda9b2463c39083bab5521e7e1c89948586d29a58c545b2adf560a7e4353e609c62adacdeee5cb428623ace09631e7b5122dd129b058959809ec892f78fe315fdf1552943dca104346b50d4de532866657a1e4d829f95bd6b83e6af45ac49
+GCD = 1
+
+A = -4ed6004e462fb6082286a72046efb94f9db9b7bbc1a4d1c82db7eca267092625d0325a9e3ad205c01e765b325dd86c4ed0fba4d58c02c0ec7dbdb67ad11b88d4c96fb349ef3058e240b6491948aaeb1023c74f50d3342411dc56c6ce3ce7e84c4cde0c849a197d9f2c58bc97f13939f13553f9fcc6e0929833901679d9e79748
+B = -84fbe26c9e0739e4228a961649dcf8af26d661392008af3e77c4a454a90f4e47ef99c277253f439678f0870142a520fc5a365671790b7eb8b8215410a0fdc95304d1f795c8fed0c41ec208a7e544e98b16cb9268224ebad34124b2d31554320ffaacdc5b3eec2d6a17ecee6adf8657830c63b21ea6b0d9aa05bf95bec0496d78
+GCD = 18
+
+A = -80b9486fd7bdac1ebc36c5187e21961bff9196da51b0f551f3746fc05952fb2277463ee44a97d16c0f7a8b02bda7c1739eaae39514cf741361c9b28b11f54cd0fcd198b5cb5208a910de0ef328b17ee2ac2bbcc87cd9f3226e155f4711f933d61b2eceaa2d57f8b07d0c491c399f727ea42297dfa9c4f181ef9a6b746f0200f7
+B = e5f39906f90605bd6de11c13fa9fd113c3f0cb852538b68101fb824ee36f28864b12242136c92bbb191c19259d063ce8205dd101c5400732b82584dbec0e51d2f14f45510c62c5c0ff67089a548c48b66f2d9f18f19628fa2b3e49860d9ce63abd1609ee6cce54cddfb2d77a4c848620fa8e1d1621552c00aae5a31afc529397
+GCD = 3
+
+A = -e8f32f3a30a2eb10d994eb5cd0bfc247661b24664d5e2fc352e336b23a5bd394c7a3d482b3b69a6e29a0315bcf9229e85a2fe62dd7e29048547ba47ad65abf56c20f7811483ca98a061ad7273676fe0bb5c839ad477688fbb550d008012a09c1f69f11e94a648c210ecca207d0b4867268219f13f45b5edcb2a8ff7067d9e76c
+B = 7a5e98f36054cdeb7498273fbd124659973ec0df401086601c8fdb869785831ac67024c9025e4a80a496c06824758efc37452fac0cef83ff40c36cb0b60078f9daa70d4570375cd0d86d74986536d46834aa7623f9ed64c2d700899d2a9f2a40e2c8f2ad967fb1ae2dc49a7b29a4db3542cee10cf93a6fc6ae8a1b87024a0f20
+GCD = 4
+
+A = d1541dc85654fc89ec4ca1de9406a1d3a9b1b87b02b81026131b99991db35edb82f245c7c53bfc6d4a1d28cbc27496f3ed7a90bffdad4abcca70a39cc4adb978811d424db7604b05cd7fad0f513421df67dd5ff94666b60ae73f4c0ac4cfa128b949c04b25dcbb6a2f218a6e2cf4fdc440be4200d36442d5433756eddedaff4f
+B = -d4db710b33c51067c22cf349399ad31f43f95cca082856621462a9cd3928f1f9fd09f435e04569702e18fb3afbd71ccf2c4b29541ad36a2106a2a2989b7334029740d07cdbf289ad33f04ce81431e5a401cfbb762a69c2279a2e60a4ab7e39a23802c9b5a2729f0549a5951cd74d7abbcc13b80b6e3bd17a59b291af81f7feef
+GCD = 1
+
+A = -8ef899beaf850c3c2010f364235bfdd5fd46060991a5c189d1d77024cc01a616265429e414af6ea0cdc3757d3b5e639842f2521a77f43941a4152a8d277c570194d88b15f713429faeb550efc0a1ded4a9c8e50a8b02e52d4b5f5ca069a61b6cd4b65f3201f49f50a91c60fa38860a04d0a1727f5e90f78029ce1d5838b79002
+B = -cf54c2b60bb0c9d95d52a8c5b75af42d2091861f34fccaa7e56e54e0e417def230bba28b0f32fbd9f68ae8f94b3e2a279e2ca87cc432980b0c6e56a66825e01377b8d88ed4e8df6ef615565ad006a5fece2475661cd02ba2120210f0e970a8c7cd2bab5069170a6613f257294ebd914787757b7cc5890ec5041e0e0aaa1c2cbe
+GCD = 2
+
+A = -60b243ca9b36e6b6fd48323edf6125957cbb16389ea59db94cb990615f9333a64835b1984d4c21386ee83b626d0ce93ad4c2b92d5f43c8693400f7d3be1320bd7ce3fc2ac84ffb0e23b8c283121c75ee1ba85e7dc0c46d8a59b19457b801c429d86e4ba4fbf36c37475eaf12b813018a7f793806a3d5c9561ebd294cef9a8568
+B = 738ef7b58be6b1051adffeca03c058b5a00345bf349d324271c8fc5ae6a320c40f9ee4ebd1e146e078b01d2299c031891e28f0905911aec07dc96a22c776e65e1fc528220e1790c1ef6c734c50c6673a255c4c2e441006619f85a2a79532fc565a3b6ea744fb4a34039c1c396e34a70ec502ac38a7e63ca9adbec823292f7741
+GCD = 1
+
+A = -733affaba63caff2a964198169497944099f9003261b051f46e64f4651d3b164ee764bc66b3eed8da29622502c40295d9cf02aad043892f4ffa61e23c4d0274f1fb64e104db53e2574cf6dd0f3f6aea4aba6a74e6775adb14a82fca016d32bf55263fc34cac209d39b86ceb90c7dc2ffd2626514e106bd827191236263c9165a
+B = e4ffb3b307dc57a949da31c34f38adf9c613880f52736164fcfc443f7fc77fd7fcb12984ab8d18c16e7bb69847ac80cc3b54f2441866e5769b5b137acde112e808619c2fb23dcac75ea15b0ad06fffd7b2a3f00b50390b005d5dc42992da236c242c0887a0b8f518578b3f50de2a4dde6cff5ad8edddd6590b75c8921ce69ae5
+GCD = 1
+
+A = -8c97c1e3b3de021a55e8cec46a29d8d4eb5d6d46067bfbf4daf42fb1dc355fd11bf8b7934fe3e58532e2c3daabf4c4ec11d8450a9e85e826f59d17a049a6446a2d38865634182e4d5338b084a72e30305ed51119495097a19c2bd16c63c185208669b32c72173e911b3ec1d2327591b7060acdaac473e4d8b1b77b16e450d6c9
+B = -3e50e9d30bb5ef2fb3b1d81b5e5a973df2f6bc020fc6ab0ce4393ce5d88151e399a0e888308133315f1f03538c8e0d4c8d75c25fa635f7e68105b531bc40b30c0c2361bd813ebd7a0c8d599f56f5c3a39f829cf850438d3dd0e33e7090d8fef1d1206a98dcb4713a818b1b9eed3872179851ed54f477070f00af38f5ef1d775a
+GCD = 1
+
+A = -8229f5fa645c9c6801e87025feb3fcf0832db4c07fb42aafa583f965c6dd920c54336a873f6d6404d412c81d3af64671f426c98494557929f4ca24b0a2e5621a35c73574c6e10dbf7ed7f1ba9942d5e8ef6edfe0b7219cea78ec41b24d07ca50857abaffa89c3e9992313bfe8d649758613821496a4be878f9392bb2d60c9ab2
+B = a237b3ae870bec995c99cde0268690a5f23171fa2c847cc2fe348bb9442cbe3345298de3042f1748a9d1cdb2c1eaeebd8d8f6f9bd40c858c60a846d7b3d6d5b85f02a657d6dcd70565e87b36f50bb153a13bd1791038eca8a9b796a6046cce7ede4f654126cbdceb8ef7396f9ef0e065d67d6e1a968a18f414947c36a3c536b0
+GCD = 2
+
+A = c6c178aa82e1c2f9f68e8fd33281941348c5099e2adec7486ee5b644916c543305b193a9816c9dc9da8c81f78a02bb0b71ba8c54cbbd9d4ae9cd58e6f667cc00643846fc652e63681af64e59375211e81ee7cf9922e93aac34988417f8f1c87ace781892f8711068161b2efde557d0476bae43de602a47fff059456d92893812
+B = a0f4bc90562601eed2905f4dc02a531b7aeb0bc6ba32df9d763e42aadd46781f6dd92f7fb4ecd1e32fa3bd828d8140f2cfd89c0eb85e03756aba497f81d228199f2f698e2d4f9b53b783c152347215a145744402d89cf21791c2537df76a8ea4ac45775a2ae21ddced0d9bf814e2ae8d75c8efdddf3d115e078c0f1c914ba78a
+GCD = 2
+
+A = -500005757e01917b74069287273a783792ccf6d9b4e9c7d6044ce13f490053af844f0b01b24455156d5a7030af1d4555f0d9ef12dafc4dd6ca3b64c91eab5e3bd974df5920753cbb5d98adbd61c24199c3396da16c8ea34dbe09713e9888dd82be81b881561a7648ae21a8ef990455bbd6aba81424e99087c47d3c48a06b3320
+B = b3c8b18af39f8828d8fe2c239bc940549e994cba15548ea15ce08026466d0a5c6d1929bb87437412516b57bdd9cefbc442385757035f6b92504edcc6f3f7e717c1e5da27c377d326d66fce8e45cfdaa239b9d812ab7b6fbf0e8844f7ce875b257a0b687d5cd6a6fb800d4e07d354fa13afb27c03816a2ce1713c1b293f4b5c18
+GCD = 8
+
+A = a38e1b6cf1b6e1b54531b0f90492791212ad5cc663dae74540899d1e3a1101064d9a0917cbb766e7d78e467088ff3f8537abd747a880e6f270fd906a0344963dc9388cfc3b2446c0ae4a23018f49574bf0665464dc5ea9a3d883fc7980e691e4a41b41dbf15051e5bc65b9bb05638fbd58ac1e4b954b6017afabe2cbda088dfc
+B = -b5208d9377d780fdfb819eb1ba06e5bb41b1aa8f9a0454028054007d0392721f6d33c00d2fa59f203a02033a801af5b8bd7e1f01ab94a6a5212b99c9a86fda0c5338762a16c948cb3ccde5b9502eacc7a463dcd4bf42a2cf7bb4f11e40783ec36079ac2f467365bb01e748244761d897342fafa0fa4a1c3a9bd42b524cc35933
+GCD = 1
+
+A = -3d16bfff0652d3ffa3724c505b999fe53d2c6cb93c2e1b53c964e87d68c3f9ba4688d968441a6af844a534f8cc7fb5701ba2666d9a0cc5c03b50cd158e39c1aec247a0af8638c1089de26695a1fc3d8b294570a9c7ea649be4726e80a4393f8a753b9e8d03e4a40a3df046c64208c72784ca67e451dbd322b8401d1150ead3a4
+B = -63afe6005395093b7fe182a0054419c5c2f4e3724da3fd3e99c91d6166f73b90442521fb0d9f15f506d5458fa104f4f9921b1745001eee3cc7ce3786e28da529d21e7409844a9e4e9c4726613eeee1cc573c9c8b26ef9a775c2ba03611cfbb9d1089f47426be6b3c0c6a1991a06d051230a25e12c94d6532dba66d8ea7afa540
+GCD = 4
+
+A = -5598f5c9e242569279c3e39d7d1aafd068cd314e091419b6752c77aea6518655a44958ff980898642136cb68ff8023efd6139c9aa832867eadc607598b3514b016392ec831abf678ea80a4c845475f180196b4e72d8e56f04f9f7d4616f1194dcff5265dc7b70d399bbf0bc1328ba4311e40c01054d167e568c8c7935a7ddd97
+B = 62521775d4a8548ad2c69d6e8a5e6ee2dbee7eaeefa344979e7fcc275de18dbea1ac9d3e232b7e8e0b6dcc3f467117f6a9767395ce32daac2feef7474349cb2529334e7b1696676f6ced8d0cf4fd7ea3ab32d50742079232419583f239eb68a9069e837f6bf60bf3775552fecb1db529994cb602c30f4ef3fc41b2f11e21d994
+GCD = 1
+
+A = 816608444e008059f116f9fcf67df60560f4acb07502804983609ccd9fd92662b8ba78b50eaf836aff2eb3f311a9e96995b3909012503d321d7d0bd72f5d8314afe3c23b4dfe9bd40cb55d2b1c5b7d142404fe2f8609f16c6c3498dc3485c3521309da2cd0dad8fd10fba7ddc90d632e01e4f03924e762025712d192cfd6f412
+B = eeaa92e3ffb212ed9f194689fe3458715e5e43fb0796ffe63033cc5cf3a070c71a31f57e3333e4de9510a8679685ab5afb494b2d61c64f8e10ca89bd75e271d235bf6221913c14fabcd35204e72ae738c43b2d80a7bd7d0aced8d292445a85a90b4afe7b0fb8f12382cc4c3a75d306b66dc61a2cdb49ee52a19150c6462cfe07
+GCD = 1
+
+A = 5c90c251515c2c1cdfa38a6b7b9f58ca0f6d31bb868774189cb18edac9de86114e72108d07d09541a651bde54f179ef022d77ab15045fdd65e791e1be31375799d497019c9163d16580f67010344aab3829b2ef93abcaf62be6bfa411f04ccc0968dc42a1cc1ac004fcc3957d91f4a970088d3bb57e6359c80d4b9179b5e5565
+B = 92d8ccc069e840b3fedc5dbb0abd6fae25ee702793f42d9d3dffa73e724aaf52451a525bb5e0c5e3c019904d3577c97ac47561c237dee5550f4ea5daf6fc1fb21bd30583cee44554770dc81e9ab41a64bf7fdcb48eea17af80b348b4b0ca8c90dae675a7e216cd50c05d54ba3c1684d9adc83fb99d1adb99793651185e5a1886
+GCD = 1
+
+A = c861db2bb040f3855e42fe369139bf5e8e01f03cacd4e4d120b1fe14cf3e2744efa751a661a882e993360c678fad65782c5245e355d2539b9319a3c54e0bc0bb1f3c2f6dd7af7c206ac4fcfde5daccd5ee4152d23fce78ef8f6c7fa3b475a2bcd3cd9b2b3528b7d6942fad89246fdf51f156f4d64a315655fd02ab817851bd46
+B = 65f2fec5abe10ef65207bcdaac8dde26be064fb559e73e821573416594c8348e48dbec702f5d2cb44f6c3d74da8466bafc5c470fd3bdc8fb1acb9cbc8f7d2236fdbce057fbf4433f02b1e8591e14fb06b66863a48074fcd0d5a1fe55ecc525e59fbcb08f937ba8ccb0905f748894d35e3531a5921c1af9af1ed3293273686007
+GCD = 1
+
+A = -4202ba4ee82cdcea8ee6df869fb9444ed38b1037fd137246b138cb8f494b5c361e24d620d8c7e6b269c72c30150b34cfd1d94d912676e3b8d275b91189c0969781e508e478232288c04a0ec7c4405b144d4e83aa639fe0caf6b67cbdef8c2d8ae56d410136c23ebee40acb2ef56e3be8e8d42045e728a07aac76e991032faf1e
+B = 95c44b59395040ef34bb977b84eb0b64653bd3236a7c5ff729163909f85ace02990dd4c7d97bf7bec6c72db02c67c66606678f7ed89ad962fee26d76539d7b45b658c613c75ba9dec551e47550494894f4af1f384a27ca0eb7e5501dd5f9ea431f14c83a170c409e6a87f11b636f6f36a7e04c28c3a869d54873e0cdc2bba09
+GCD = 7
+
+A = 30db8ba02221849ec72ce02129ddd99f029e35609b432ac840d9af5a7c1ea2abf54b82652486733fb0a4b11bc40ca6498407a3fb5438f5a1c663b722b1b1232c2babfab2b228c309d3893a9ad23e5e77753da94aa6fb5bfb61167529f7a1b5b7d8110abee949b78726e2008e775ee71f94d87a327f897ea2f77951ff33d60cdc
+B = -afa0403f5b009663bb639424d9ae0313d004cd2aa148d0e90b0e513eca64c4eeac3f45894ecc31fb39e74f6296abfe9917a77e5c2c3291d7864375e9dbe600603707afdd0d356b8b1e2b23f2423314be614302d27148a56b0a62abe48f52c19b8b1acac98311ddc7db9ac20d8fb296e331fe2d752617ca5c4542dd89c1d8a235
+GCD = 1
+
+A = -f84afb555df4a59e9ca24567f9515e0cfe5bdb0978346024b1bd901ccb31e83d2cb3e6ac9f815c4b0cdec3d67063f28bf132f9abeee6c2e0c607463f12206776e344fcf63f18a1ac1f3ba15d10a7df881611cfb60acf97a6f37c577ba1022744862a1c5df18890667590476963db2aa8c40d40d7bd1927f475716f72e8978215
+B = 5a49e2a60f0477745125b1f1b4eb64ba6999cb07d09afbc3a718d66af7804aa0d834e0d654314f6b44cf7c8f354ef695bc363d0580406489d04de1490c98380a6539cf1c145acdbf9877c8e59fb53acd8aecd8a3a8d1509c69899b75319eb252f0f5dbdf544fcb35d333aebd162adccb47533e6657d1f04cf41e7b79aed44069
+GCD = 1
+
+A = 3044a938a096cdeb4d3579789fd1a15d44c7ac60438f40bc6efde1229f7aa287908719473ca590105c5c439b0f9b341db95fb7aab7a50a69214d987e1b73bb804bc7a2fb47422a9ca06df3e6e73f0b875d35ca15e31281b100401b739b6ab1bc4657c32f78185e07949186f94776d83032d8b5de744080e9fc98287141a151d
+B = -fca7a3eebf0e4bfd851ffcccab2cd802b971d251547b74bb7cb8985cc1d681d67528635109ccbb656139b16bb177cc8c2fcc71f52df44035ca15341cb208643abd78979208a3a9874473d78d7827454df0bb04ea92811afc264f08d28a6d6e5537b042d24459816a35edc3f549481e6ff75c74417f680e273c54d794721fcf8e
+GCD = 5
+
+A = 454e13f0954930b3ae6e2dfd34c434ed6d29ffbc4488136d1bdca898b220980c2e2c697ac95e8e09f4d5cce2da2494c09db889d2e4ab73e2744d6729059b22fb5d91b9a592839ca84afe0722cbb397c17eeb0c8bc8477592a38892d757ee30256c88f78caef2427b5763be560c6d92b5b944858c9df191dbca884d241743074c
+B = a9b93a47d05aacbcf95ab7c94e1b35842ce8d6d9cf3cf163e7634e7181fb8d898bd830c2a450f26ab5bf01861845edc3626422f821da53ec7ec2720d0567b2a114c131b7d94454026e9dedf722fae83045ea7a735856b492aff536ff8826c2392f862b54e28a1b004b1be5925c44ba8a536002fdf6e3a99af04be4484a505b7b
+GCD = 3
+
+A = -39da7ea5f607693f629305109147bd579c48503ae33261e78fb55821fcb51f7de1a4f11275b8092baef9e4e782235f75638e56c223ce17c5a168709284461bde012f99246e42a90477dbdcf0be39458ddffaaf2266766f0ff9b75c05531b394fa134b3cd9e69fdf38aae23748dd21c969af1b7cd512311ec99b2eee65d4dee3d
+B = -505797fc6134c0838b6c76401bd7ba25e107bd2310d0c1cd6396d03fc7bde8c7f847c448b1876969f91363157739c4b16e71f3cd917b3924c9f8f32ace43b231458e77ca8f6e4a716f300b05718cc92e02a48203d8ce12dd8511b8c8f395595fc0691a4fa2962958a55cb46b84e0fe3fc2ec37d5ef1b6b9599cf11edff254ddd
+GCD = 1
+
+A = a66e1450eeb5e973b2b7d3cc2ef894d252d5aae380ca8bb6b7efd4d79b89827545dc96c4327e19dd918429fb293eb976a8bc74c55548392a1135f40863ed7e7cf3a989d0e9b0a1c9227ca5df20aa5b67506b9f0d5bf29a3ca566355cff7c37fc55eecc95873021b8d81e8136b806231d8300ec1551b153ab6de25910314c8c3e
+B = -3d5907a265fe552ffa02fb4fa2b786f8540d46f3e8cc6e0cfd12532a14a0c4b25803cdc1a4ff68950226451662a958f16b158f16476b4bc7074f08ed9846993975b6c70fa10fa64c3c5bd8626297c784534157f120989e53ad8c7dc61fa0742aace310111912165aff92416b03a29b34893efcea6f63419df46f713abe701963
+GCD = 3
+
+A = -619b87b3fa88453527005e0568d4a1e69f33072bad4093732d4519af4345d974ca845bdf225012e6c9520c30fa1d4ddd6a4da4e724e32713b134b09b88cba5461dece95e19824e105d75ff6360b319b22c8c8807eaebb118dd1089f1318c386ac6743920025597964e6e9ef5d38dd979d312eadce887030b029cf8fd2bb9f264
+B = -84260bcd7657972590f32e5bebb4fafd5622f9c5c0ea7d14e31d5e040300b04fe17fdc8ce4d33e20ffb11d923b8109d9b2240284b9c929dd99182fd5b9dded803cd2e0df7c5aa0aeaa3a37c4ba755b399cdeec569f21ca541873ee807771bc02a7106fe1bdf6fe2ce84e1a0d8dd67f5f99b4d6328621631d26441257da14b0d4
+GCD = 4
+
+A = -7f0fac4bb9bbbcc4a996836bb8d21d4a17a77b17a7aa5078b8948bab72ba707e714fec911988b22f3ccc912fd1b972ee9846a20666479a22a4fe82cc285c13528117004462b44a2a9c60f51aa3dd360e64009abea5fde183d498a00aff0e763d821d1b647cbdf55305be9ca2610a950c1c9b9fc71abf975cb21c208f899bbb6d
+B = -111bf64821ca5c6654ae4c11ca1b0f45db3848fa0ceed695046ac4dd46d2370b31c49ee104d98de64fc2392507bc4c73eeb1b721bc90dca88089f856ec584f8c6841ead8700b32c26870704696c3800ed0f0a7c4781f686e48939f7f09807e9dad9bf633b71f7d93ab2b88d35353f9f15ee2b59f126be18469820b6e7288e952
+GCD = 1
+
+A = -d73352d32f5009fafec3e83e40550d6bb5d5e55ea5ad4057531a8ac6a5999d10ca2fc0d02399b09eb9cd633728a34cae68eca6cd59d9028c93718aa513ce473574a81dd15f49c78f9c0d143a507619ce9b4aaa8e34f99d427e69ed18d5e019c2ce434d159bcf8ec687ef7a335fee06a9375f074ee49f00c27acdddc7c900c2d4
+B = -51b25820f5bf8d98b397bc5b13bc5dc31bb3bf0240b469da77938e112fb53291750e858f4d6bc9d676b70708aad68d923752255ef6ff9b455a127c3b3323b711764fb8f0678b9b2899dbd60b38742a298e1b0663c5fe96158f9944a904df0b55b59674f3e9a142e5783df01164066842dd07ba7bf5a2fa4f7bc2c93ca96cf7b6
+GCD = 2
+
+A = 6153c1de8eb590ee60cac8ec423321caf49ca270e09f2b22fa5cfa725db98c7a7c1bf741866858f097ff5522c1da7bcbfb505a8ef9fbc62b94d1b111f4adf91d7335773d09c79e55932d5de56d334de4249c6df22185e616502520c643a2d4fcce9209287c4405604463c9a95343d55393c9df09d7f96621f01aba3bcbb263fe
+B = -fbb6c9d45a7b7f74e680c61099231fd6d66858cf104996eb06322babaf954021366f37b47f0a8b8ac2d1cec7b74123bc975bd2628df9ca4a707b74610e05954187ae765757d166ffc38eb57e5f8d15ead55b9f6e802886410e020b62e1bc9540791f1d87a09f2c6d402bd5ec3402b7605ff61354acd0ef41473f6478fc658f83
+GCD = 1
+
+A = -574d2cf9ff62560ecde9af20d6d265abb5b3c96f0a169d23c99ff046f1420300a3efae574742e9c8cc100eb70e2711f4e15fce237d8b6d72ef2ae8b3058ee750013a862eadd720ab8d89a82951b58b82a61d2035adfc109abea315f362a38bde5fa8ecd7d51286ad61241040ede5da5bf539dc777c7e0cfd87146ed54653533f
+B = -448f6ae189500de5e85a5a41edc39b9b6c9e1d750c917f843df94d65cbc86eca46ba7f68603c5f7866a351090e9c65a540ad843a19a4350cb65e989e0e0ebca7ca056c97138fac06bebeafdc33dc672587c5e98a0f390645b583434000e1bf56d72752ff6b920653f09be6130c70a69df1c55446ed75aad63dbddbc76327988b
+GCD = 1
+
+A = -dcfa2f0c71c5d49ba462781a383deb21d22c1b40e95d3f8a97549533abf3c00d9531a1e6f43205d77a723bcfde5ec684b025fdfd182d95db38234c368953e67974fb165322a8903d51b358fbc4c9c03fe80cae5c0a93f4beabc787b8b5a56b90784b7861ab0ec588eca15c666bde4f6d9f838d966a14f8c1fc3b1378d047020
+B = 19a441b933f2b7301a5c87f7b270af630cd4667c7d587d4953e18d33e7c483706507bef68df702e9a6d778a9d3cc84c35a1f058fad8801cbb23f0d3f58e6dc890cf236fa5a9e53961cb89042f07b942cdfd3583a6e4ec6fc88f4937c6189b4dd5c198838fd8977f268de39b6b1ac49f291ba8512ec5ece81f8a57bfd0296aa77
+GCD = 1
+
+A = 2bdf5ef23c35d77343a6e5b545ce767178c6691e4bb5544bf4e5b2516a55f167823a1086f7bf8e0ea8a77f05a7aba5265809ea26d5d4b674b7eaee7daf188cb1db6ea09d2ce71f308d1ff0196d3cf6fcec018885127719d1a78ee27713e9c6c680632dc7e7fdb178f226c484a326bf66641d51cbe086dee1e83f42f5cf1fce57
+B = fdd6ecd8f5ecb061a73ee46278831b7290ae9091d0a32b0c47f99c1f7eda9a53f315ca6e9856594e642f2c14e839ff7175202f8da657212a9267db09eb9324e0010c6d72a7a10c50cfcd234b32607501b0b3b9452e68e87399c41e466b759bd08ac1fa8f08d646a008a8a151b49d487c9ac659e37d96a6dab3244c1d686ce14e
+GCD = 1
+
+A = 18c12b494b0f1916cf8ed47ff8aab286645b3ec752e5969d0a13daf2bee2d10770eeb6247f4e44b789492db476ac11514caff3d49d19cc3ac75d95a07333b9c273b246a08ce424b4d56d406b73a50f08ea2a09b67d3806387c3769efa7fc434a91317782e3b312591b5d25566fb2dd0f3c1bde31b371320613b5acbf13136f88
+B = 7eabc7819faf0d0c01a03c2027cbc938381b3546cb174d45a89af73aae10695a4f4dc820a966249e8c14987dae5bb547cf1025f70ddd7861d71e104d4012e92058ab2621192b1c1e0446eb852a5639821663720cee0ac48391eb2e54fde09aed432334e414e096570f13937f3d20d9b5aa939970d89e6b0130615f020675545c
+GCD = 4
+
+A = 6200bc875c3d4db509932873eaa4ad935b2a479078bb291132897ef445078ad2da29a94033fd909c477a868b43fc0209e5bb148b45a0638b086fa7e867a48ba00967f5244e2492b929d7eb2d840074eaf138deb3a47a4c1c97450428160e9dd489a48714ae505f73a3af06970110c3a2afd89f8c9c933531867c60969712fc6f
+B = -aefb9703388710ec605c6133bf12c0624694748d57b79b0d4ed4f351e02f345c9ff4162b5931c0d4ef36dee9e666cf833523b9ad881b7e1ebf591c5294367fe72d28ec4b92ae20a338854da9c7ff33544d66470bb2072ae86f07257e59d596329a558add940b9ddd9a29ab7dac275d50552de28531eed89e67ae7275a9f082b8
+GCD = 1
+
+A = c390d7788498e438568134f52451b10a0bddccba32a0274b4d939a804e8ca1e4e59c58f2b56148a04d7b769e0524627c744f76961c03c85e6f60f219c139065dc143c1c452d99997b6255a270257e83a296fd77f5044812f89ea818c54bfe1b075923286147ba3008ca05d749903b51332a63c3e0c6dbcb8b0c5692ea773e193
+B = 3cb3129974e2d4c6f4cd64475e020c669499501aba17a17b11ea6a51a5bed7f3bef8c880683a219939ec481b28b8865039d1ac2c5985457f28f96bdff900005e27e8e067f72785a5eb4fd657232c1596072ff8b32eda2177d40fe8b65f66accebc474a452c9647e279a8335ba67e2d5e95a706afacfacc04e7a63c0b67bdef66
+GCD = 3
+
+A = -87e2ab1bf32647d6f72cfac20a2e4c55c1fcaa20ab76dd1234c6bc3a0a0ba695de6d56c1ef1cc81b500d6430350f23036413c56628e9cf71e62d55135ebaae0e2e7af474a5292dc9254d1eb215126f94f2b74bdb29bf486b4b85d1ccc88da9f792738ed7e8e167e88fff53d871e5204937982984b5d72a51ff89679f9ad54508
+B = 6c13ed0236912c7e5aabf1ae54178a47a9d21ee0c3924dc699107be6867bf376ed6c1d8949f1b5f4611ed539d89459c8c24c642840864ea26cf53409379a3ea7569ae7633eca1b5259104c144362e48becf00bd27bac0162f6d8b0693e8eed04e5606d4715a692273942f2fd8c27586b4453ad31e96eecb0f4b075f1343d49e
+GCD = 2
+
+A = 62e81a546ab83254c10061e8f8153e1e19e412306fdf3b5bb348fc7620b6813109b3d9ce760fc1907ba1623faae111ce7a0b978a12b3b21798830fc6285ab14448aacf3596dc21cb060bb71bb4fa2cc7ad52ccbd7f83e78f3294b1913628c6b34cea9f72550757297e12b6b8df548f9645804282ee49845494fa0b7ba9a59ad7
+B = 47411a2f25c67809865dbee588cb8533e243bff4413bb01ef1c17875fc3d77c92fed10136039f01113a658c1534593bf18888f34318f6c942dd34e082f0d9094a438ed10ab7eb119d5a2f742685ff1d76aa546f7f55afc9b82d52776e43a88dd9db442187039e4360a1f7544b53e3630c39f681323652e08ebb4706bf5d10802
+GCD = 1
+
+A = a67bbf5bb5e2d370f27e98d964ff06d441422f7fa02676db1795de9355dd5cc57f4840abfb9efeb86f052153cb9846b82e6d133bfce07388d598faf1fe598be9ccf4ff74d8e7635031b0bf89e430e75e03be06e0e3f7758d402430ad31c58a873c57c7ed3ec290501e8fdfb6251520d483703d2aa079cd1dd07fe48f41dfba46
+B = b6b795eda9c4d88855db1f32bf6c914b9a259fbf392972f0a78158dd5be4e2df99e13010133b235139e8e1fec87a9668500f15ce2aae170c17760e76f024a468ddc6e40c713916ddec1ae28e18ff3e5382996a953e7f586fcbf18c4e3e14f58b14e95affb79905b763d38b618c6830beced0719b3d0f91073aede8a08b14b36f
+GCD = 1
+
+A = 60106e517082f29c14931a457aaa583fb9bb429a4153cf74d3a2e42aac8b618e2e64e930e035db9245a89ee1dd2865b2d6570feb8483a7809a174736e17d688fe913280c4ef1273ef44ed797ac9416721f8d17d4be0d5589338f6dcabe05c48b706d754bf7241dad172999a78cfcc27b46cb95f2c1e771843619d3e44fe370f3
+B = b0f3981e6d0a08d26f381b21530e4a35c5e7de444bbe0f4ba48a6a3339529383daaee7373f36a2df0324ef768b0ba9ce800babd233f4fb9e021e4ff06f96f4f4ccb04b6f5683b98dfd060c71264fad4926a2280d49fbb0fabe1c062917cf9adc996a20ec140a6fc253311b2385809bf533e8509efe7f6bfc96f874d688b74fda
+GCD = 1
+
+A = 49080f966745287e68b82e29bcc54fbc2df5aba1846cd31acaef733ed542b6cbeaff66b7011e28a7875b90543221949f0d9d84554a68ce146553ac1e886da795c19f6118d1d1ea3ed75cc584c1505063404a54fd7eabd3441037b138cbad96fe5729beaf8ad4000f174e0e2ed4a1dface3fb74e35c10fc5eede398de1a76f50d
+B = -ee87023b465c59b2a24c7c0c31504bf2c6550ea8aaad3b8b3d20e0fa646786678a2f0a00b534d8a7e300214b31d85171eb053a5404e5d784b13f9af16945d016c2d59dd0c4903c139d581ea546d82b72384108e8f7261b746f67d2e19aa41febf2c53b2ef470410b7044d4df30ce37c15d501d46d7654f969b2c146428175774
+GCD = 1
+
+A = -2f2578e32586590c8cde13cef25e1005c0f1583a1e208ed6603390db8ccc71b846297ffd0029c58af2d2882b767bc5be05d514b3a0a3addb09771f881ecf635c5d10117b150745d385f689d7b1ef4096696f1d1d44b0be51cb2a329db0d7fca98b8411b8cb307dbc57011633f59712463426b20c694828710bd37a846b4fe9d9
+B = 829c7ab5dacd008be39a74eff2152102ce10e97aa310a32cd3578d76d5e05800f8023f48d6cd71716a2e0f0933d54b88b3c16d1fcbcfebf786d6a28de7cd0308a73a44be86231b55f5377200023d432c9c04d82c09c20dba866f10998bbfbc62d14fa685f76c1db581939fc5d6812e770b7758befc37ba5e044f2a953e558705
+GCD = e1
+
+A = -6ebe34f64732da4e4c6e41ff14dd29b0ad338d2346525c0b2254f8619d40d7cbe9e952c3343117ae0e646cf8e97fd5d2b69f177aa83bcff3804999a95fb5d26f3d94e125fcbe36c0fc62ab20185c433d3cf1cc16234e8176a14209560bc07f24fdf97f9e49e73ff722c4a3bce7db63d63b9f552fad71600f9ad8fca4ba644538
+B = 9e7cc1a655037c6c4e2a519426f9405e1335ef92a54ef5b5926c0d5855ad6b7e8197e21ef3c3c8c0e92d0278f5737a7335099a6fd6e09109bd004745f6ddea7686afdafc6ec495f9b10def94f0c6c716d63596c08d73ea096c6ef7fc8715656c9749dbaab2e31b29f7cceee3690b7e3ca1cd45444f388b6a75f58788d6bce1fd
+GCD = 3
+
+A = ac5bb94f0cdde0558bba2022dae58d439761fd6cd94446a60ca949405375cf5f5b2b98d986f7d669c49ff343bce792ef9ba87a9b415e70f2a76e926adc970c6f13a854ce5b486f929b4d29bb69f6f2068cb32ce693a23127af06ca8f5b3da0fc8eb1fb3d1136fb22c35c8d93a6228cb1f9ad6387f772a07ce7036377437cdbad
+B = aa9cf693451c73a70363ed820aeeb9e54835a27f23a68c25aff34c6c3bb4d21cef73eacb85fecc51bd98f0bdbbb1cd81b8052559da5bb9fe5eaabb46307491d46cc0e60ff83fd0358b100b672789de6317efd7299f9ca65194afc220ffcb1723fcd154920526ad890e55de6b8d597284f712e984fb896a6880f707835be4c910
+GCD = 1
+
+A = c53c947d31f4b3424a8ae10636fde67e80b900feb575c7d93b230d827c793e13051a58b3db0773681bece8ab094ba492d8af1abee4a87ccaa237c762af2a09d37088ebe16115dbe2ece992c286aa6fd6eab4e51f90fe4fd34f471ce25ba53b97db5850cee9b1d7749a2a6e0ab99ca0896b37d26caec5ea0a162565787888989e
+B = 7b2171cf36fb8900419b63f25b77a67016bf72cd3b140e9f3819fb1bb4a346014a85038739693b7f106ceb3a9dda3c8bafb52091e6c74fce337b5d6d4549f016eecad9278bd51b804e901dcb453c8abab3c617fac8129db06b178bbfdf63970ce4604433a902066c10552b0682bf7c87a27f6429ffd9c362eb7d7ddcb4988fa8
+GCD = 6
+
+A = -be8c7b2bf91b752a35a44f1f31d189daee9f1c5b91fd68be66e4e3b775eba0c920e761cdf941133083cc116469ff69400cb0341af694d7bb23a0c1684157ebae9779ec55069a502c535021df1c0db9c22d95fe58c8d96ec8c68c1b0160845567fcb4076010b28ef41d050dabb6686a4be2644b16d26694acd34bf6561651c0ed
+B = -91f629dcf66ff63ea7bc22226857b49876eb216fb4fbaba1c253961ac2520c0dfa78518c2cff8022a27d890d8146fd89b2de5ce81b10e9d4fe5ae1d63fb01db53276351be7904694b7ae38c26fc35c37c4a947cbf73bd1dd17b701c3277298c600831a50c367f94d591f05a5aad66e73e2e2da4eefa0160452fd9732013597d
+GCD = 1
+
+A = -df9ad16c807289807764f63d0027ce58b2cd8d37e8161b8ce8372e26725b01b0e87cae054f611763adb9c5a81adad51821e03833c1c073344295b2e0b1e52aa8824d3e0a3de44f78c7531ad8b291f518f3dbb0e4bda591e18051a97b6a71c390304699d4b69158eef420eca18d4acfd24a933b984bf29664d44cb07182e94f86
+B = 53881209b54e0e2ee9d6f7ee905e8eb9afffe060708d8b721e24cdf7058be3b2661ad02707040af99e1e28c2ba3025ce2b1e37dac2af8c2dded84a5b7e90121893c393c8dcd461f77b542cb6851a7a2d74bcae1847ccc19722b869205315e5f23c80df18a6f40e20b60f926cb66ea32ee5257f12ae6d5a08e56525c8099adbb2
+GCD = 2
+
+A = 109957dce99696dc3c46a5bc784623778e3a5336e55b3d5d4bfcc1ea7823606b303b0490b922d1c1c79f7103931ac0148fc96ae0ed28cae06d8d2782df4e1b55d6ed99a8efb9e4f48561038b5b4190cb4d8536c32ba19058bfcc28e372395cb81bb381c4057dbd6b243f6c56063ae0ed3b122a3c7991ef71df93be71aaa21c77
+B = -d362c327be67bf57bfdd7865641fb35e65b7d956decb52fc6f68272ea65caa59a988db0fb0094a3ade660b84e82fe54bc4b2f423b4107a9dffdab699b73c7043b561b7a913331c61057bc4b861476cbf61e6092a4430b846d353d448172d2df7099b93320af3e1940e12d001e66252b5e1dd37d643c2913a6ba791c63f67614a
+GCD = 1
+
+A = 74bf95ed69a2fa141c60132454bcafcd7129898e9c47517f8a92166f70f5fb8bf04822be8f5d10e7ebeea87caa43df1aeabff75c21ea5f210919e16c89040eeb919da568f91be49c7fecfbde5f220b6e3169996eae8cddc818b06b999c1725ae5ec8097125ccbba12e8173ecff268823618d1179d727b64033d080b07fae693b
+B = -5e05bfae1bdc6b323e206083241686ae0dd51247127fb1194c31b0a831e5a0ff90eecf6afb62497e670d28265352d17d230691aea9c5c9aaf4d88e3cf45c8a9e18dad2310357354c6acd7d2028705ab36f92f0af8d6b975a6e10ce2ed991b3cbb01218361d54206a386b2310e49ce1c26c2998e0dcaacab6edb88854a13e5ca9
+GCD = 1
+
+A = ad1b5bba8c641e28f2564e6169c8cda845327eb2f3195bc4b1c85849c086d12a03e560eaf2ade0f1a823c9b30073aef5594b06b0aaea40cccd253cb87c752252c1a5387b62be6a42f92b13ca302deb94ae9e214a263572f4df8be343da759257f507e7d095baf792d51f57c4b70614d4f0f46a32ee403cec8599589ffcfdf17f
+B = 3c0b273ff69a31a0631713e98421bc68612eb589f5f6381378ebb42462225c62e308400bc06610f941a1dd0a18993c38db541e1ec6cc673406b53bc8804a9f40ca20eb42bd43d2799782807624d81799df7e887b2b996d031a7cc2f8f4905fc88e3342f39d68cca6780de50c7ee9268d3f87477650209d1f2a193244857e5e64
+GCD = 1
+
+A = -1765c51d99ec0fd64d6249cb0c8548b59a4e4cc55d35e9eb68fce159d01a035bba9fce5a8d5dcf5f82db7777adfafa598c5753fac278b8f34741cdd4e36baed37d088e0a09b1ba7b6c5794c4e40d677838ce0225be0de200dbcb0b6b5096667f59dab436e1a0342320f2c64630bdc53d069269fb1910c53a2f1ce2d8edf1043d
+B = -ecb2d9c6b9e4845c5ccc4ca1bb538c3b1d4b6fd440126bdc7308c6242719ccfd7ebbdfc3dabde158d4aab7858460a37de5a191680da4c94bab9d2a25a6529be585b54efec599d62d3a475ce943a7476c9849a888b6d7a6fad60d1cae786c3cd32dc6bb3fec1bdcb47edf92cf00fa3fb3a3643a1cb3db9496122b1ab88fb239d6
+GCD = 1
+
+A = 544e92babdcacabfdca63c6949f88ec4ada3ba0afae53586719acefd5c9246f211e1b46b0cf893fa755945ec2a09a26728b2e35e3c09aecb8407d5d8a01eab121dc006ce18bcef5e3144f64a328a5d1805bcdd5eaff50efd3a124b4ec6632298c121adb712cf0336d6b43ecb5333f918bde61c0a2ee166079b9b193089ceb32f
+B = -ec25a3c75d4d7453951c2f08a676c2b32bf9efc321fe0c3114b9284f5edebdcdc991270588bd539edd9679179e8a8112843fb7ee3049042c216f4b57d8c0a6a4d26acc7f65736a6b390975e0a5f21a1a003852aaa8ee5d4b09cba188f2fed5d71fa0fc11ce4fda6c9247b899381c88b416539548bc47b6d28f51312e15e0d186
+GCD = 1
+
+A = 8af4d6588f782ff57335ebb4683adcdd2e75dda35f17e0b6f559784cc8e079bc30d78a2777208c9524843e1de365df5c05343781b65ece72b6a0795f1bcd87cf8e2a2c74e42cd7fb302e64813353aa9c08b5db4da96276346d1779f89f16f47dc26fa12e9e2eb96f1aeaf61988f49824982309b3ff88e8ec5616387b5a26c342
+B = -9213f21fc297f638959e6de8608295b055ed5432d2ada370597bb5b0a31a532bb259bb6651510893e1e1817bab8ea939c05b62a6d3d52f7c0048d0d90d9101fe6d639d75f21c22ee4f6336fb9a680f9aea0824cf898fd0577faf65c0d035c9851405255f3cf9fab840089658cdded4a76cc2cfbb40927d05f73cef4fe709b83b
+GCD = 1
+
+A = -40b9aa04e53a7c697c3f9b597d6995bdb9560e1943e58e976ba3cad7c058991772b989e1425879ed4223b3c9d5be48b9cf79d045305cf9952b6a152d4bac31edccff549e56cf399d1743cce33d7b5a4d777abc2828b015f02035dbf097ff09315304a1eecb45509ce99da5909454a77e8adbc072b1a7440c8f61ae443affb386
+B = -a9af9c0800dddd44f43882bade9fe97a00fece843c319004e5e1d74c70b1075b651be6eb1cad2d685137d2d66f3a5fc0466e17078f13172debc708b6c2300620e29b3f72cb1e95bd47fd67f3e11c822ede6a279ec2aac2ce0758b0da2bd205bb7d4e4b6fb2212f01269c658bc3fd70fad5d95ef82e45c1ab7528aaaf8f0472c7
+GCD = 1
+
+A = -9e67377c24b7f6b9afc2245056d1b0246d4fc6e76c612fb1a54c6ca9ec33691de0fe9e8fa1cca3c4d3d45b80eabeaacec3c2281f7ab01fd2f8101a21ce217bbee62aeb5121ebad8d380a42df78432f829c50e18ed4dafbe648fbc1c6d754595a27a19b9e44e737af6b49ab47cd628e48d540f2f24923211a88860fcc3634a6f5
+B = -b35a48b380ef0f9440f2c577b1b774c9474bdde01b21313376412a7d52c6be642c21b6170d9bad7a4ba9d125cbaa9e4a87527fa0e145e8a97633613644afae42a2ab2ca530ddfc2e33632ef0a42e8cb08486555c27bc89b156195e55d3ccaa552d6168eec126485234edbc517c60af81c40847eb834c9640caac7d9e083a9c33
+GCD = 1
+
+A = -1dedb6393bcfec75b54d0206539cdeef4bb141bf96d1ecde15a7f9fd82392ed6cb838df37a503646c0e9ce00653e66538f798949f1ceec2abf4cb67a62be4ed8a128221d0017c36f5f204187181937b1e0399801edc2c9101d20bc4484d7a3f7638328b842fe5e2c07487acb9531e15e54510ab42c5878b53b750867cdfa0069
+B = 164741f045a849e2cc4bab01946e57721b49ee7ec01b1ec4728f0918580271fc97bc82183b053c47c60ebd146c1206d2af6be1533113fd9b19c9e1a002941e8c843067022c4c6acf7284dffc8c2aa7f8ffd6d145af0497cd48143593e0be23c628a2a90069d310f7c81d4c398f5a7c88b236584c45eac14d2b4c33c3ab7a09b2
+GCD = 1
+
+A = -cbd51213a9b0f3337a4bad0440002cc8aec8a251e2bff581aead81c896ab4f289be102f6b3c5cdb7ff48c2a8b589237adbcc5d3f5e5979bf09428242c47dfefea54b2ae0fa4317eeaa59cedcdd178038c6ee58ff61b1dc944716144de7913d36262775fc83bcdfb01fc751befb0dc0e67c4da2895979521c3b39788fd65be0b2
+B = 627ce2c0a30033724a49f01d9f0e9ddd72e8d6c8699fc227f581f0b44d70f2056690250f2d78d7abe98314903e5b3b16ceccb00512daebcce268d6ec2dc308e2d717055b351141ca9067e59541605079edf26916ed00a29347a7a337145f8bf9aa76d419f4487c2ef8b6bf78fd7501e691dc952031918036593e491cb87137ed
+GCD = 1
+
+A = -1638b7584c4569de34d87c6f8d034d6df0886a054d5c5642d53f11dbdcba47d36d2e24fa1c5ed0388e1a8ae0edf5237a09ce29637861350a9bb5b3b29d040fdd990008a72f49db40342f566ed246eee87c85664bb72dfb27e8b3cd09b981c31f055638cb574d79be7a473d99b57c491d95d4666d572edc5d667776c9870c656d
+B = -4796bcb8d5146f6d61db50f13ae2eabc45db83dc0860dfef2ad5cad4935d97c85c04545677e552a6e904f60b24765cb2e1f1b31ad975c4e244571b31a6dc5e2801815e7385ecbc4b55d96395b60a8b57d3a848f0cedd2438022116c90a5e96de6f6b43b6930359eb4bb7f7f705af8cbc555d5e28d085fddbb8be65033e5fdd71
+GCD = 19
+
+A = 18eafe6ee3100b8b79b6da5a4b5d774c3c7f9d93d323ad7a7b3256c163a09ae66ae998428c7afe7c3bc7824910d75e43bcf8a7613a6f67254cc3ef7f0b0e00beef0c68be3f2a64c9796cbec78ba0921e281e7ba36a2f55472345f30dc5e631119bf0779987ad50f38736aedabac6b27e884537a07fac6ac4f7d93bb2521273eb
+B = -8e8dd2dfeb32af3d3e94aaddf05add63797c5b481bcb2ddddc3ce26acdc72a5dd5050f2a800fca4ae405f255013d2b95e6e73e8f7d2c5c6c638da8cb6924002f6364e03b9b6fb183954049097d2b40ddb3f9cfa25c07b78e6c5a9cae94424c6009d631e9f4756401adbd4b48270105d9fb31f168e237f2156225a5512e6a1efd
+GCD = 1
+
+A = -ec8c435e15d86278a926c5c4657da8974a0e53c506ddfc88c3b1baaee0dcb9fb85cb10e21904c88cbab68e11521dd1b31c6caf5bd89568bf9c8e3dd5a333cf23508e443347a3dfc43d9301711e884402715f09570f6a59b1a0d00a75bd0f0e1cdc2db56e046d0c301af95000884b5e77a740ef0624e1b2266bf7cdc90978e027
+B = -3bde46956f72125f03f1cdd9d966c7dd486d96d28d0cb95ca06dd4192330a184806e3be63ca8817ae3ace9ce043bc83e7a5909d4f802ed9385952e2e778902d0d9c9f064a9d1456464783dbbf2ef27ad77e4cd4cb6f45a5f365f29174a4e785ce2728f2c805dff131b0e2fbc62fdf0a33b3ec77547403c2269ba910ba9c39605
+GCD = 1
+
+A = bc211d811845832e03d18cbdc470fa61b88e49f129726cbf9b56947cacd655babbf9891ed931bcb4ad30bae0c74ea8f493079e8c7ef32f28ed735192921f42e0e25a74644fa99115b8e5799b9241af4e2c5e6dfdc12426975e2a0d287d47bea84302ba639f17432bb10fd4be41ba5f666a51b51e54e37752521e1fab7c7704f4
+B = 206c5dc07062e2c92bea8fe3e60855895ba69ac90c9ef297d736ec740ab9c4b8bfe657fa6a2e53922481f1ff79aadd12963b8bc31e47fb63176505a516fed3df556dbeeddd224c3b5229cd9532954f1d1539dd249f7cf03e50705f71aa7d11ad6748c8f7a6c559b816a7f41fa51656ad87145a6385c18b02ff6ad8723cfb295f
+GCD = 1
+
+A = -f119636ead254672d1d9693ca78b83643e4eafbaead76a0f6a35646ce0064461c22ae899ff0a32b63cc9142bc19b1ef7efd4c1576e437f7e1e87bc6661863adb4f30ec72bc6e774d531e6fe7ccee0cd04ea1097dff2f04ea99986f0d6637ba3f6aa52906ef0a92c305a9a414e118837a169bbd5b3832a29507f3d5e8d1361f53
+B = -bdf4bb35662c385ae6e2b063761e53a84a61da4bcc9fa5a5339c1ed517afa4b1b1dbe7f41e5d7cde4864019cdbf9a6c660482dd74380cac666eb240756c462c16a4e8ed69deeec8f8a52783ed6ee1cb9cf3a13b5ee998ffff93e98d4aae93ae7b605557b5d7b509c127ed462a1d529c3d22133e26e04314e5915268f062d1a6e
+GCD = 1
+
+A = -6eb12dc070c7bd82172e8027e18be401672f0d5302581e678ce450c68d3776fbf785fe5c7d828a9308d9b634d5584844c46699cae03db59ca3c45d1b5510b718d2b9ff50126e86f5b7e4a35ac0662ddd820f4a61866c332fe97b9a720c2995028b1529d20ae6df83057d55ca0c47117c5752e260c1998655d648f7cd00d537bf
+B = -d11cf0282527809e9918f3307c2d67aa291bf3525ad42e93968a48d9b8bbbb07fa4c151b9b1abc1201556010ab71756224f95ac70180d475da2db8d43c1bc70279f35aa7e0d470f8a9a49d85b1d652bc710f4df8ed43685522f18555e8370276670d39461edf91480f945014e3495ca921c6853ca8ef3bf7d819339630a40a9d
+GCD = 1
+
+A = -d4b69a6e5f61860b38dcc92b8ad150e1610af795d6664b433ded41c844f2eec34721cf2b5fc4f8a5cba9f2389fa221f0b43f743ca6e7519b70a43798cdeb05d26077f2aa5dd326782a235b2f27a7ae41753fe5626aaeff1e2ab26a81350046aa855b5f3432cf004d01181796f24dd4dcddebfe9be6d77c52286d149b6fc4d8d1
+B = -31bc2cdd2c3ba67cb8596a29802456fbe2912751091d3497810c5df6c031014d28f52b833794e131f0d41abb8012f8bc6f909907de42398f03363cd37a0db1796ae6771265fd9daa5ecf0d06de9306fb4706c94cd2c08575469c6630f53a1c694c5883e9c7d3beaacb9ea4991eb779b53291de815031a4321ea55229f2b99875
+GCD = 1
+
+A = -aef1237d1e3d7c468d16741023ef183fa52d2432794040f9ddfe17b960738760fa70d7c5fff5594436623b15b7a8e3aca55daf6b8581e22c5ed359ea2e0c437b81e59d51da05aaf674e935b4a69abb07571b6452bd76f2658b6885e5ea87afe35a464b347b68148784c7a37f6c9d742afb5fb67fc99d3f195f987f22802684c3
+B = 8146d11b6bd45ed5c86913b34180f462b0bb73a41ff7a96a7e83331194dae5a0fcdef7cec619eb3178b3fe70a1d61ddfbc3c624d4cbddb6f204bdd7e1271260d8080e80e22b87d9b783cce892fbebeb0295e1c61d50b3da7887f4d14f5b2d8df7e9b2a2c7bcb14be98468321ee0b83b5e839d28169c2c5c3dfc52ca631e92a3
+GCD = 1
+
+A = 9deaf6a161438426b3de6da68110d899e6307e7a3d5f016f04da2ca3ada69f32baa161f3e151f898bf681eb9ba37faa2649c23ca0d48c6ebe2392e4d813ba509100fef502167d8987edc68beda438c44129c54833907b8833fed81e177a286e530b88e9cd6c09bda88af1c3d5cd612acdf8ba7420dfc6211a870e85fd1b08347
+B = -c1de265bca486c6b43bac6e2482a8d95d8708ec0c0d6099217b9f7e9d9013ee9fc6b5bb55bc088fecd88f315ddabb219fb8edf7a130392fff10d1714243c30737d8cd8ed8f1ec7edcb3c2f2322e02e1fdb807db11f27be86b2cf42c007eb0eba852738c8c0df2796db02c368ca81bacdfc5fe842005fce65afeaefc578b5869d
+GCD = 1
+
+A = -698f5ecf3dc1f35a56b40813d8b38a765fc908c959d24fbdc3d1d87a59f2e6c446d2e4d3df19b76b4c3602428345de40b927bf8c2bf9e2aad4b9dcc06422d23538ecebc520c27792ea1bc5ae686efeff8c060e4c34122159be37e087951e136d936e524234b1b86b581a88632b60be97d15c2792962a8e0439712074e2e58beb
+B = -15352d0ec9fede20325778bd77680b3bae3016f801bc8b9f16d3e9b7b590152995c51c61705830a62f12d105f38f64d1b70ac0c193d03c5cc1944ef70c5e0bace199914d2f944a725c5e10f1850b100f9833dbc90abf87fabfb50c7080b0e97d01aee2e118dd218119a7c6fc1098d64262f54e7cbe2c3c96d1342bea4b826bc4
+GCD = 1
+
+A = f29db7c700e22f97207133e8d38f27f6756edde371c81f2ee93c6760db47d76d6b7bca6743a4eec9727a19751b46a314b7eaa0f44325b05519b6ed9fa3b3ad8e9c4749f7e00b26d2d63a1a473396bce96d891fdebf68c9b89725a38458c47a7cd51b42338a1b15cfeb58945db703347e6cad4068b57e0896769044af10b1245f
+B = -2009e0b579f8e9274afaeba9a13b49a5b673eb7bdeb7fa6a80aa13aafb83dbdf630fe63330e429b954cacac9001014219232740414880cbaf11442b899c904e8d9cef92940c644c15b89b72d30f930a1fa52f7a2844a7cd24f8831f1922ad185e3c2332e515aeecee86362273bbf02b8c2a2c679e5ab996f7e352f27e6cea2ca
+GCD = 1
+
+A = a7e3d09900a1b1b8d220cedf76c70a8edb836e223b6fc47139a8709023e8805c2e90041e72f8e60d4a5e51600c48df624e257e166015517f3fcc6f3c652146ae3bfd8cc803e2e37ea5835cfe49e2433ae761d20bc36799e3efa7ce5f85b21741f10ecc54c4c3a1b46f927eed693edf63e0e46eda9fb7d47b18996f0cdc8429e8
+B = fc1e4e45f28cc46e4174bede7aabce0ffe6104a0f4499f8cd3b664d478e628ec2dc9435c12f729c037d9884b16f0b62f5a577536c431a878640c62b63c8871efe46c776ff0891a1ab37303acebdcfdacea92d13ae382eda3cfb015a1e52476a4caef44c57b95b19ff36797f26900b5c99f33b2ba54beade661ef4fd91266c2d2
+GCD = 2
+
+A = -c514e6370b6ab52d35746bbbdf5a8827a8aeb913d0e31ea5981b3cfe5ffe9b681b18809bccd98c87452740218bfd2e79922cfdcf95f3116d722504e631e01894d697cd07047deeee8bde99c15e9dcb95c4291e26eb82ceac34e01a9a4bbec158ed58d5fa09f0f97e3135f6732650d5a7f13717aa1e8a29fbe4ca801175528183
+B = -e9a2e0cc170101b34167c20d28bfd78745964210b5f113efe83b4be3dcf5ba26a10c8f723c6563cad462fb273f36515aeb9f43361520e098e88634aa37177066d83563130874ba5dc27ba41968b030621c5ba40b07013db9f58ebca18ec10508f262fb63c2d8da6df1a653b613b2faadc344db28bb9584f7c3b0366e36b17c65
+GCD = 1
+
+A = 4976b0d18f434098e97a9f6b8ba43f7d7a233ed341e0935fe051bf63d21e66635a2e16afbfde89da14e84f5ba44930c420b9d6e83e6bff0270c1704c4792f7c330ee69b5faa435ccf0a233306cbc2dca7606b343dbe7f2c0b6cb2d5c072d8f6286f208647642c1a9c08e538f83118ae66dc8033a142be65285bf9e9d07a6816e
+B = 3d557ebeba586390616482db869c981aab3edf3de4c7fce05f99f03036f1b550164f8212668b36f40149129759888e12ad315b9fa497104bdcb2d4a8a2dd252127e522925ea1a530b11b41b0559069ddb4eb0a417fb890fe720bebbbad696285ea6d2929e3a3e2d0a8942e78dc20906ad62436008ae9030e913ff8260df84c4a
+GCD = 2
+
+A = c998e3603ed032713696e8299eed63cc6483bd4e5a44714bfbc28d011745ecebcff75cc14c1d254957bfe6a058282013d0b8553c72bfb2572057353869465861465f14e73ca8c1499eac9fe9eece96d06f288ba1b150986cce21aacbb0dd5d64654c71cd208c38a10ead654e2fd37e6ad8437e713fae84c8050728b8835ed89f
+B = -28784b31434074f3a59e143f51ba6f396f91e3241fb913065de8d6b4843702ca7765c44b3730c2407c0185b4754fbe7736f5e1376cc5570e8dba8517eed816805eda098c5e4e3529c88c29eb38ee147328a36450f833040339fdf596e6845f838564ac397c2ce6e2068efc8ad6d325e82646bb08c4862e6b338c79b9f5c07d49
+GCD = 1
+
+A = -ac872b02ce59f0bc1b1766cb1a85cba4ce1aa5d4326ef3672047b4be318d95dbf0188dfa2bcc5d08c16087552a3510c9f9947f2d014ae8f1c4ed642cb67a29410fb0a769cb8871b42a4309e7c465b843cfa17d6e79fe33ef59d0056a6d2fc384a485c15e32e90339f3aa216bf0ca84cb56e1faa8a648ceeec6a89d261f91d977
+B = -18e879b7555d0c5c1aa9b1cecbbdc2fc3209f215f7b8a8cf9a3f1514836b4480d4a9c113109bb5478b588c7ecb4d967601049d5a5228444243a01b623cf516208a5aa216c8cea68d5ca5b091ba732ea5eb82d9de7e3645a84d41a1ffa11dd23df148f78440a7cb943b548017e82f7316a5ffbccb31125cdba682e53d22509fc3
+GCD = 1
+
+A = a135c563a95890c6adf21c575bf6717bbb6a2481149f3613dc6d6c181e065a0a51561b4d316658dfdcd473873e1dd8b96062a8aa590b4c2ce1a817d3e079c4e6b9b930a5421730e5924936c41a4dc6de3947d88f12bc2fa48910986729bb1ef31cbb154646d40ae7f2ffdc2d7dbde0a6221a8224a3946fe8dfde4f03988c1f43
+B = c85e8ed7bbf6910e4e43d5df972c1367dbf86d5baceb05ac17eaa10c83abfa4de9729e6fcd5795c15888d6783fa7da686687d5d9feefba959e719da0daa5f338c192705a157fdb8c9bbad8b58d36d0571dd9ffe8ba32411a6d796cab0db9a52fe6e2df1d480a2cb3dd8623e9db6a7890ed760243249b6f64ca5c4e73eb621b8d
+GCD = 1
+
+A = 639e2fba5d576f4dfc61214cdd5afa9f5eeaa932fdd7e95d8dcb1f9c09cbdf7dd6909d394e2d4485558a7d87c007ca72dbf2af1dcefa43b8056c6151c71f9f40e8d24769bbc042002bee339e8addd4181dd4b7b71693120e8c4a3ae3976af8a88bdd19edb85654563e41fb478ece1df2a68d1ed8edb7bb736bfb7cdd3b85c21c
+B = 8e57c76667942360df8c9782862619eb959ecb1946fda0dba0edd02b01612f04136de81d1408e579bffd7d61ace9976ba5b4ce45fe53acaaef451b56cf4283bd7d984a4b092ba4c63dbd2b75feb6bbb4491cf14dc9cad1f4bce7bf79757fac2644949bb584b97be06db746f891dbf478598e69547ea2368fd983d03b5f816a98
+GCD = 4
+
+A = -538ec7d8441a229e61189eb52f7c7d91202c730864898f527a52498bd1fa63203df7ab6c79295aad17314437b4c2e174040a7b982e36bcc1c8b3b3273e3f1d898ff1ebe863aec0ed9c2658a01563434ae75e8016fccaf60685397961562979b41d68d2c8ba6d110b145b927e18c3a3691ef3b63e8bc2b659817ccf6f381034b0
+B = -f68ed4bb00e45ffe409527a9a27676a158cb238dc73a329fc8a5e0c86f37bb8ba435aa55a77395fd82f8ed5af7988f6951418abd333d17ec3781ecacde86ef4b15890ceb4afacadef0cc30322183a39a1894c76b1f63667221d3ca5c6c31326ce16836a449ae73396968d100c919307cf0574dbc541c7ef47603ce9e29f96885
+GCD = 3
+
+A = -611cc8a712dc30062e174b550e214678ec349bef5228cfe60eda8c1b318ddc5a00be36457c897746c9709e85e223089b5bb85fd2a24d04221d1659356ddc1db61cc3d645a563a202656db88eab043a82fd3c2ecfd2e4086cb879dfab9f7bfa1523f0346abe9fb672ac4b139468b67c0cda63dc0ac5c07e2a27bc2c09741276cc
+B = e2607ad197a93c925b24d329cace976447c2f577a06a2a826f3345c9535152d32be9b8299fb03bb88f28e39fcbe00cb5b611db5bf69ef669e8a83bff0d7cb4ea9c135d6d4db535ad5b48701b9bee638a6dac8063b569ade1c92fab00e6219541b7e7b80af424a005fe4df9213c2c0ed018de23c88d19945194c33ba628065dc2
+GCD = 1e
+
+A = -b13ee553e1727723347a0b8ed446d25522bbf8cee992aa762426b9163e4605dc2641d709648f6d7c51fc588311900c1b39189ef71c7b60557c1dcb530a33f1ebc12113d292a935dfc49dd4c55f535a9f9f3d5793808b53316ab8d205c13f4f339b2d4e5e810ff1c67f22fbf7787e896a83d248bbc363735b00b6b29951e75467
+B = 3fe8bfb09e9402afde521909af5a4d329b8c377ac01666ba90ec0fad38c92c5b4b35dc7915713a4fa7f34c69b5aeeeabaa0f0c1435cfcce44b159a8ead0094e77939433cf664a97d98ec5ecfa259b91046f06d0f2a5d39f4fa6b655ddd3a26a50ec68c066ac34153e2b502c05620a610d8a6a5280a9f71fd0ae8176df518ecc5
+GCD = 1
+
+A = -419b6c3b67c23b7cb7e53c0ff1d43d5f9e6e8c701808cb2a15eaabd3374fb3d3de2d60850a82bc8f18c79c82125214c0228f4b581da6127d67beb52fd833729b14a584349f0d90cc9f3e5b18feba6ae6ba251ea01b96f79be631608918acbc0e734aab99292d7e1b87402b3e4b15e43d2412e169ba9df8c628a1c18d16101d1
+B = -3927617af93c1bd99199ae39ca78d69cdffdd71568c39630e1574da3d0df4aa8025f06e9eee1dddbbec23b6507d906c0f24bebedcd3a82018dd89db8cbb8a09f7c531610bcf21bc06ff63a8dec7827dbd386475f652676fb94c454f357d6a7eb9eba85bc3f3134b2d6237dadc9586cdb95ef27ea2d29b9f4f21a0e4fae14837d
+GCD = 1
+
+A = 7e69f56c11bd82f0e20812c9e10d7aedfa4b35cfc3d49dbffdaf0b1cd30c2a2cd1abec82bb129ac814ac9df39b01159708a4d56ba518408f6f370545d2b966dc166348d5bcaf8c272536c1cfacb718ad9760de6a4dcef5f55cea837a6fa709226b0760d56f046e411ef5c46b1e532094666d8fa79f12c34ebc942fda4cd36f08
+B = e258725b87f6e91f0de53e200936a2eb8e7a23c2e01f470dbfcc01c92866db5fc0a1c3174287217769b40f6fec2004703fdf1dc5709178c4a5e7354806af9674e6f4c9406169ed14ae6ba2c1fa55bca7f622ca20852516598a7330ed56e563d83bb3fc652ae542fb3370cb4ab8a8a719f98730a15e32a2951ccb69cbb485db97
+GCD = 1
+
+A = -b84640c3490cbd0255fa3944b04fe03453e2f87576256abc29d6740e975358bc4e107284490625f6130265b95e251aaeb6ad5b9339d1ea6e33ad07ddfd32b2725495ae19e4fd63497f89c45254e7d16742f2910b822462dc01660e9ce42a94b8c587934500057474110c5239f719e6184cea4edc27a5794369dcb32e1e852334
+B = -bd89d654257a72a48ef4fe626583f97f59391693bd27ef5654756da297131e13f2d4ebcac1dc5099d89a8476282d2e0c42c8ee4a345d1cc5080fe0796918fefeb2baa0992f3afd05419b1b50a71501ae519f5ae3b13e50456651afe7dd46e2b1f998ce20a6da5d7cba1d9d92ce739f8f32ae30a6b945605c52725ca6dee616cf
+GCD = 1
+
+A = -d52f37da9fcd540f6560121140a09a18562f4762ce95cab8f17c0384158cb41bb448039d6f4ec62a6e6d2a1941512aa54f33f1863a5e9d23eeea026f0ee486764c379d1612a021b3b87db11eb4e31f462523edf4c2926e4bd7bf9cd68598247663a4944bb8a82cec1c9f88839587db12f1201632b256bd92c950984a5a503a2d
+B = 74558224195382da434186436b1dd09a8ebf51db1e2cd7134674ea4d140f8c1493af7f8e78be4b525ea440954e643a5e87adbc7dae0d54ee84a3414606f2852758ad2bebd748245515c4cfde2e9b2cb55461aa43200723b792b731d48919ef87af67e34fd95196825451d2582411538fac8c1f67ca9c85c0585a3145d6079c8f
+GCD = 31
+
+A = c04e4316bd4bfb9e9c00cac5c22ce19a5f7008380d6812ef185f1a8d3ae406548a5dcf15f739f2e68bb8597796a48d52ee2136f30bb00787ba8bbd784debadb255e91c1757b7e8df939958841c7adc95da4298663fe666bd1848553107274a2ce4d589ac1bba494fcab6594d81ba5472ecb1bdc6e1ce5f4386626f313d4ce5de
+B = -1aaf10135159a89433a99fb6ab17aa6df49017bac9296b54f51f2daa01bfef96e01e41d70d4c2f2cc16a95f98a86b9c57040a3dfefa2ade9307a9956f6499e0969d912411b529689c81c77402c4a0cb3da2c1db788c0a350afb8c9081306219cafcab8315110f5d5ecd7a6f0eadad196b42801a33e46188e3b08532f62b2e341
+GCD = 1
+
+A = 5793a0c1d4e107b034cf07d12fa365f3fd156c51387afffa3cc3c4eb6325f777620e5f3ad0bd50e1810238c8b6ec6c7a54fff5a3ececb6ddafb1ec70188c678c146b90e22fbd36a8c5900bdaf4f0f11348e9236dd3e8e998310002a73158cee0003abf31d81ecd29b3d349af726d3d19689e5a6fe8cc67e1a9d1a467f59c05fc
+B = -6dc7282fd7c06f6e79af08e8118bd117aa313dc176c5aba1a078d29d4e925524b2e96dd2135708108dc20416c5c8d435de41ea20c6e3a8baecc0f7eef6d65f3d28e202e8c1dcde8d3ee9814e3aec2b2056ac90ec267a6295354feed30f40ea86860255c9eeed65c646618e137f2f64e2647bb5c364ee75a3de73166b85674e8b
+GCD = 1
+
+A = 8ca0257263d88970d9672aba246619baccb1d7d8d1e9f6bcf6048f30da9d5641d8c507d63e96b08e17e7911d0e3d8338a1a4d110d3b6f138662be0d091091add57f80ed8ae2aeee6060e4107885384a4db00b30e01e81ad20aa9d36e9709b879e46da2750b617d59ef12578d1d15bc5f534565cdcdcca27d6ce5f314d6eeb86d
+B = -3c73040bd6a6bef52b10db3e3293de21f8ebe5438fa0771869d06faa7a7b113674fd331aad905af028331012b10ff4841ba360a2cc89fe9dd68b787183d0db734fec8ae9d1dc78aed03a39424cf07c2d0d139e95614b258e461951387606f59ddf4840a703602c36ca4c59559f54a53e7137300a938dedbaea5a6209d089a619
+GCD = 1
+
+A = 6d700f41de52c707a7ef8692b5a51234c41869aa883b58fa675ae37be3ad81f739b9e62db5a85d48afba5bd72b3e002fa6756129ef99f52f482a646e1c4c9a946ce16a78a706626111c19e4cea52fb5c2473d9729ad40ab8bd874ad6452f28ed8e8cadcda05aa66a5456e6f6ff7116f82294dc9d6f333cec4c5ad7e94893e445
+B = ec2047150a0120ef1949869e055ff76b479e067a7a30b268178fdf4384ad8377a0d0d87e3fb91de288913bdc8ccacd05e2f18fef690623f415f6c4060b7db37310b09b5f500961a94aba6a0f752d81dcffe053e7babd022e7c3f292c2b7b19a1d2b356c202f6334df048c9d282c57eaa00e5037b6bff199554feaf3a20d18a5e
+GCD = 3
+
+A = -71a685c4c883c22612d50168560a95e6073e948e6973e79081cbb308fac7f0e112a5680713f901b18a87a78950dbbecac5e462d8931437c3504ef5d24442c91c3fa50b5aa157be57f2e9dadf803fee227656991f752b097162fe3ff4c1fa02d8a317bd57747ee202faf935f62dd46348e8b1592a56af9e9f2be07f180bd7233
+B = -537d956a8bfd896a9fbb603dc42470ebb200913e2e46263b5aae8f5bfef88c9a885f9f7a9cb244711f0a09536530b5f9caa80cc2484cc4ac767b65a01c77a39985116fc7ca8a0a1417eb316ff51888bab06331ecb8094b84c904fd42156a9923d7f6e09f7e99a89d1acff3f2ff0ce4bff9086cee2f38e403f7ef2a835323842e
+GCD = 5
+
+A = -dfce20b74c30e89efe9b9e199607a6dd26c2fcb5dccb9c1f4ca35a9182102851687daa615d35eb59433b583faee613a07eeee0f177c8eed5e26354c1e190223ce00126e96a36e935346fd9100383835238aa93017bf2a4f77ff80771c2f5dcc4f999f3e6aaaad748004aa7bb18933c1de3d8eece5a6473ba27683d176282677
+B = e2dbd07982ff7104129dfee0faadb2536de485eb101d4dabff2140ab2687ab8a4e77a3b26a7bd1daf62f5e9d2d8a0a3da5b0f136cf59cd27b6b458d8834a5b3d3bdf9fcaef0ac9b72352822f41d91518a7e4d52d63f937954994f636259c3ce13c73c7ff86b9ddebb206ae6bf8d2b1e04e16b1af02c48666a6938d80c7813976
+GCD = 3
+
+A = -13eda4578a7dfbdfa46d6c64e6ba9c955de15ae21826d6476dd2322aabab0bffa3405d9d07551259ae6bb96aee9689008de3965f918841b19c889d47c568e127fe39fc1b4b6be2ef357a3ccf6aa3ecd594af7e9d40464c814c1078a32cda9f8b37e77dca34aa11ed3f3669487b1b16197f9f7e3ddcf115c08420189036deeb23
+B = 53cdfc1c082d1332cf41b228ff94364a86c917ae50b99ea2ffd55d36fb3543c6dcb34bfd66cf91acabdf5015dfee0bcca38803c6faf236e9f8740ddf1d5f74c221b8774ae80be322a944026fb1c45f9ed7f0eeda8398fe1bbd2ec20a6a120efa63f2663271cdf6ad6c14bb06dd07d46c0267016c60697f92b647027c7b10d9ab
+GCD = 1
+
+A = c04fa53c0df1cd8754d2d02227675e68c78389c2873f69f4eda790be543aaa67a08a728423b9df14897aa4f6132fc5f645f85f48c572800051903e4a1b035539e24340521245e3126df97df2af049dab72ef33388f480cd6bf5324119bee3b7e23f48cba93e68e7b5123e74127928abf4501814fc0faab549fd6a0a41bb5f566
+B = cc0e8fc19a001965770a1556f34883e8ca343a6d551e4787e33baa52111982149c1f2348e1a657ea609fa2768e3a01c4ea51e0dbda32d36b184477edef1ce1e1a0326af8b402d24e04a5fafffc001a9c1034e5d6e5ec3ac5e21ada821846be0b17da49969e3fd7d941d49906e75bb89ddedf9675ff7590d4371ecb2be98a8e68
+GCD = 2
+
+A = -4b7445cc1cb1fcef572e342a8a461102bdd0f6cb0a59e771d7310a6d219674991797448107b9297e98af1b07afeb0395be0181c65f50bcc6683570a7b5e36ec180e0ea074155b80879163493e480aca3196029c9dbbb13b61ccf5420ee76125a61c8017b1a0f9d3543d39ebee85812ec46499f1b7f4ba313fc1c82d9d663a95a
+B = -7a6c6f76ba62edd5bff66725b6cf49cf0b00d5875fd435430281c0c4f7cb979643a927962f1a487076cb1d8302c0c930dbea5f870a7d6a519960f8e135870330efc694198afc49d00fbdc024afe5e9da0e30ebb301dd93beb71b440b0201ab45c492fd7a339e29b3faef22f42819e80f161057f03ed02b1cada4f7335c74728a
+GCD = 2
+
+A = -7915966851a302e4b76bbf48ca4e7456cb5e39fdd050aa4a0b8fb09f89e6c2fed20c6815bb2e14632790d94dd2829762487f117fb9234a9514364cfe2b600f502edb4fca5431661d2f5433d2a734f50fbd60c773a7b356315a5878a9fee3d9d444d7365b833da23f4b0dc5f310ccc3d574954b4a0398dc872c4412bf0b80e7e5
+B = 4b971b22bf6fa2c9144d33835e4beffc4951107231e9bbeeca1f4e3d25f5e75c44205195989470ffbdf2135f22b33ee9f26455c8bf1e11f28a150dd492ad6bf1419fda88048ed3621998ec369649ceb820d99f5391736635d44cee6b06cee5b7bf2e16f92674236b3b65b39ff71e44b12252ae8a38cf2546a4531ec56c085464
+GCD = 1
+
+A = -b4653953a6df9866808a1e6d02485952fa8fa5ef70b186d61f4c2d42bdb0323a0610353622f60e6e3ce5b9f39ff3d40962e31b464e1227bdcda945c35d3da2f58899dfeab9e30b7bf50c8b1f677ee5f071a02fb97c941c93781fba49489cbc3339dee3416b7e4c2e434703d5142475f2bb93883de6488b347751c382f4f4029c
+B = 2e3363804655cf0b6348baf83da0fcdc2cb97c9178d8b398ae70efe00c1457ade98373a90d1819bc88e7070f733129f6f719bc925b49bc3e0dfe67ab330297b865c842141bda7f5fbf340523c1eafe44e1c83092d14e62006d883796a4c6ebd9cdc62a440627c1b65507441f8b1e94df7e85547def0e0ea7b5dc5e6dabde8adc
+GCD = 44
+
+A = 1353645bbfda9a372f5c7137b03e589414df9f3f70bfb98b5f10f5a71a3d859af9bfc3e6caaa15e5c9c76af0ea5dd58a4867424296ec0c09e4a6c1886e203ea38abf038608e88fe48ea94a4c8efcd4e58cdfe8558162878dbd354eb72e59df737385ba396a8c1d52228c8b11033573093c99961779c48d3c9ad991d700a6065f
+B = -8e3097c84a7ee74acbdb67f5c66071240d0cd1c37377ab8da302ce8b6112dbc8fce40a3d37376774f7261d8f24035c1eb5083287decdf9edffb0da1899fd88c55d1e8bff9341331e599f1a18dc5fb93b6ff988150727ff14e83d50d4772ed47423eaddbfcb052d796b2b6459e895b71b24856d17a4d0a11a312b68f4b9618816
+GCD = 3
+
+A = da8931532f23b89081fed3430d3d8f158139c5cae9157eaa800926a8ffa5b6056d17973b25449aa3a8b7cbaa430c9fc890d3b4cd9b5b7ab16b60d1ed988a7bd5a80bcb6843ebda22f4f92ba6a14cd18a4b3c209d7e5eb8767f2c468833b44dc99c0463a38ba085362d50a63a2de53a225c2a18884f3b996a0ecadc58533599a8
+B = -cb6f15d26c0885d8dd9774ff5eb8b0cddcc9887eefb1d3c3b58b81492b7904a295ea3b5ea6b9efc42d88a7229dbabf19fbaa34d3935635699bafb859f5fd620c7e625928e6ba526f45051bca802c599e61102685f193c47def95f7c31837cad8895dbf85ad6eba7fe6872a9e346da18b0db7dba32a6929d2507f0e6b73eb2c89
+GCD = 1
+
+A = -9ab625db135647e562b78b028fb7c39678991a2121801ae943a1e04493f8e3086ac6c1881c334ba49fe2ff1e875a983ca38602eeadafd61ac649ef4ec78cfd3c11a6bdbef360fae04fada90d6802292cb90ad0cea6b1d03a83f200a88de82873400fe5eb6ff94a1d6c981a061b1cbb27aea63bd245a680ec44bb5e20f3498b74
+B = -e41eff8c883053e3a009ac93db0e72c495061659291ba567d19b2825149ce68887d898abf73d26058ac2dd9d7dfae7602c590ba619704f7638a9ee011f1a7e257696d504491e10e0a22feff1aea4d68051f9c1cd0372ee336f20ea5f189540990450e18a60bd525b84731e1dc4c004ead9d610758007d25f7538c23434523cd5
+GCD = 1
+
+A = -a55e44fa3a49bd55b502bec1041aa0065977c99bde1f07586ba454fdc461641bca4d4c1fcfee771b7e961917ffb1cb68f7deac84e48002568a53a9c9ec5bc861a23193e52ad0599dd1a52d53ba1cfbccf0a854101cad2e85a76861a844f3719134e431b0acd1056719b45634fd6014ed085a67cbb152d219aa80888bb9c8f5cc
+B = d0603fd46ccba49ec9d635f0080f9a7f988083348dd4bc584116b2cd87efe25b2e900090e593db8a470c11d0801f53cd3bf1d413d417a403639098798388af0a6f3c3b645e14ef06950dcbfa64518403777f595c87b06caa82bee72853512e96320f54869dc73d06962a9885485746a1969bd971d17f3b191204651df5fd003f
+GCD = 1
+
+A = -e0761ec774e4ba1f11d7df5a6206b94247f65be9298e5b808162e4d996f6bc5da42093c8453f7d4f9e5a5d10add00a4e823ecf9f032ec418adb1f57775ecc936e18ccd5b4131a26dac7f0679e9784d192aabc027f04c05758efea54204f054fe3f658f8b5293196cfc16fbe4a504d03aa20e4f36a60900765972c6869667f7b6
+B = a57dd9d36cf7cfff4f95eca89b6ed87c86272e71f98512226f0b7c8ca338da4ebbff13b7c42f768ebc7a8671dbb6f17544df6a03f316283aadc6f4686ed3381e77eb27b4a21f87c03313044df7027820aaf3353eba7fb1c6792ff4a5658ceb6ab44455f108c8f22b1ac3d5c3cc33e377f68150943b7291b072106939f99620c3
+GCD = 1
+
+A = df31b37cb4ec55dd54cb1b91c8116b1e7eddef50f7d2f74ab29d83e85723eaaeac8e141ebe3fdb8411f60814e186e0a22da9db53449a7063fabecc439412d9fc50056ae47dfa9c9ccf27c656c0e5c7ea3e78792eef32dea79b9a3cfec8e0212cd220f8636f9b0134c6d76edbc7a0fb2e22fbd3d454d8534aba50aa162762bf6f
+B = 38109ed7d8a9666f0d7768190868a23bcdf08bf114bc64c29527f7e3e8253fd675d98722f92a9b849f5fc7d53968d1b09a3428119ecf9401c2f7d1c08225201d0424249f9a553197e1b1010f89f2c2037d8dbf136670313c3be87e636e9f322a1a1ea99375f8e988a0bc6ca4c884b42a9047d57a053e4ce29db67aa9f1c01085
+GCD = 1
+
+A = 4b7522b0e3d9b1b2e7bcc9f9a602ec5822a40d5696cb8dd88e8cc1b74a3bb7559ec470ab6e2e14e370ab7f22890c0707d07c0019bd91f097558bace0383318497d27e6f2e98d337d52b076b586ae847ec070f82594bd24bd5b7bef17443a5e1f550e4aed7bbfef7197f1a74c809ca1b289503c65822ffe25f85799ca6270caad
+B = c12f0559273fc7b71a25998ba1e00a1da9dce1d8ef35e0fc96420cd0f5c0c3a9d1fd7ada87896d2f570d43be3e1788bb150cf1eb27d50d98c600bdbad722b7517046366eb52b3bc2bd89e4c098b100d323da6ff8bbd917273e14d0cf57362e7f94f4ca3f0acb878993230146ce8db6a755019b48a4b7aed135addb6a2d74a984
+GCD = 1
+
+A = -f8e741bd10bc64eb911130e05457c0043feca6dc21f0b74f9c53885e3714cf65ef6ad9d199f64c43ab4b89241e675c2369a115faea49f718aa6c51672afda6f4ceea91f94e1c55df38ddcf9ffd3edcced3dd087745dacb60c0b651907c8b40bef0cb68f42c08165e51c915d9c51fc62f9dcd4cda3426f3eaa18d75be0c19d4a7
+B = af1d8918fe0250dc485ea7cb5bcfdd7f3113d46d4cbe25c9a2076e29139303e559c11d3c440011bf754b20780f41b2db031a5992488208b20aded7a5e516daac9c0244fdb5cb5e19016cb6d243eb8fb5edb281cc5f19d22af0a0158ec4e672287dbd19ee97026cab86a74b1415509a7836862858a8ac4952d42bd6027a923eaf
+GCD = 1
+
+A = 6dad2dc4488f6c0ab132cd6bca27b198edcc735386c2d15683a67622ca8772a476b806be8a5970b4cf64a150c7eac469c17fc8c61ed21ff2fa9eb38645c65b8632e9b4096174f6c8a0060ea48ad21e45a0442ddfe0682baac76f12b5947e99f7505cece284ae8c5b794e187e7e3fc4ddd7cd61b17d82e2d0a51224eff1126014
+B = -51381a511393f164fcdf6b17a5dce22b3e902ea3d4551551ca88e21150a6ad2191dc1f34711da2009a23578c4f6dcf76da370066cddcd4fbe67590adb525010f169087f41352452cfc4fa0ff304afd1119d377d7b3849750062e74c6368436b9de926bdd6174c1e25e1e83d02030fffc7907e6e2ee6a793f8fc6cd8aacbe3769
+GCD = 1
+
+A = -44fcf777c30334efebeef67151586b2f337602ca4905e2ddd05b7bd51b24e1510622603af6d17326fe14b476f1bd44b29498f7e4573dae76e3d0acc79876cc4d6fbc1218c99da9514def99f615a5e37e0b95c6849d9b76c3a90249d6ad583ec22bf8801ebecc66fa4513260d5e1b4c65e6744964b0f537ba5891fa44f2ea851e
+B = -20bcc244584a8a859a3293bb21ba5ccda6237f2598af0604f0e9c76fb969e6a1a992ec958df35dd0dc8fe37b3516319296359dcb86faeeb6ab9a48257883b6cbe2064a6215d51dae9ae49fe0aa77febb7b39f1f63487a24b5d3b48ff6ee56eb18816f074db12d6393798648c80474d9a31dda251cb7c487f58b08a12b22a9263
+GCD = 5
+
+A = -c2202239a2b5b74c8bb04abf42656a1ad2601637441e6f37cf0a0759df08628197f50ac650cd4395d9b5b7bde8bc85c31a5f2dc12a11caea2f3b2b56a95f7d89d9cb5e43c83c4d4c85ccd7b1a74a7f5bea1596880f574bf653f2f8131a9976fb233de02645f1320e47421766f5e396d675e1da9ca9a8de8a587f70f8d7d77ebb
+B = -b0075b95e49b4a1457bb911caf8f8bdf2289e5ca47cce4806538cbbbabeec5571f030344b3b8fd3877d562a3ea91d659a4007647d6c92747589b6ad910db0ad116b08a9c046ca77435d8074f2b1f00b18df06101c59d5f83de86fc8c750f2c6a65e21d97436a2d061648339c8336ab936412f77e710a12dea3b133e9c4223de0
+GCD = 1
+
+A = 68d8ee04cf030d2566eff7b8d0cd6a0afb53c9d430325d17125010253ae6ab61aa741f296f5c4d58250de272f43885739c20ba3784b72c734a2ce9811a3aa8cd0c6bc3ea38597e1ea39457a9d7d7033ecd39d697739f70421bbbc56c8813c44117553659b0874ce8bf7e327fab86399dbcfd4a4d69da73d70c8b9e92eda660c2
+B = ba9c80adb3b324e3eea0ba07893b48da9e2fe17374a87c1a678783446d4625fbc12ac9a815e057ac7d3e41319aeae93fc2e2eccee7c92bc15c0a13ad5d6fdb057cab8594b922ac4e51c0f861b46249c9a76f7d1b9583e736d35a58b1744a469a9e77ad66ee84c8ac5a071ae4e8449559b3b5a4e52f0a457f41a3edca74d5a8c3
+GCD = 1
+
+A = d068b4b23c3e4ff3e0d65487134aade29da80c0765ef74e1b2f2b80b3cdf9d1f650d04959c9f5bacad62b4ccab9744b7b2b9adb15a90d140b3f16fde0976b0c63b6fabf9ca2fa838a736a2545dd6b3d927cd94cdd1d60f7c223c41e457a435381e3ae0593bec0c08a4e6fc3f5deb5f3cc07c501007f7084b75a2a9a49d229996
+B = -5d08bbc1c5082dfb7cd66f7cafe0b22644f1487907e7c4f3b9fd41861f9142d9f0ef41088d019bc0db541b0c40b03a91488e46c1aa3c5becbef3596ad283d21b7ca531e2a2d9d9228ab64c86da9e9aa439f5d49fbcecb0e28e5c0aacd7001c756eb6b75f71e847552a07734afea8ab4ec56d0eb2ab52d4b8cd843018e97bf840
+GCD = 2
+
+A = -c99b2f7ca90a10481c0d8c9afcfed463744f7a915a207d4c3a2bf182a1ef0a8792857475804e613411e9d7caf66d62c3cb1673ee654a4270426c738984c204e82b662a22d79e7916cf1075cfcd5f149a0555964a4df879084e12a297a1ebbf7653b7bec92de19388749310243bbd735dd407cda8459a4e5531b9892154764330
+B = 14181d2c758471fa2c1a213df4ef08671d3157f7582f2f4646a66b0b730c1e66bb2120c925b48abf0676b567d2f776e6d257007ab1e46423798728d95961dbcfa2529e53e985d1349b882a5a11395ae35e034cda6738203fb3bf3005c344ad93813a2d5ea49f4ebfa281029c197cef56940af09476d96130d00f9fd00f53baaa
+GCD = 2
+
+A = -f63cbf5915fbfa0f0e4ddbea7deab610187b6e177ab0b07e89208b9bc7523bc0b8ebf8959824309dfb546d476164288bc8e5519cb77ee7ff321e3fd3a78cae8b9b5918aeeaf09561f1a73923d541972a084af5a0bd8e2cf437980deac2646bed44a194e785ec590e998b2623a3d22f2ee57e847b9175f18b082a639a35cdae04
+B = 72b9e8cca1d38a34091abc8ae9cbf551f981d03f0d6062ca7a047dfc29fbc9846583d5edac6d99cd9e13f12655a4520352344d8e88fb2232b4b63cb82147847b6ae4834c0f6d6dee52b5f892dec5843aea7473e4acdaeb75b86e62b08e29d10b0971b1c5ae6f345ca2f1573aca88aad298b4ff0df5ced6e4c51d76d8c77ae199
+GCD = 1
+
+A = 123cf2915d3e2de6a3ee109f3232a4a227fcd05fad8cc15f9717a788c88462fd53f278b72dc87499acf2e3517438be92739e04b20e129f0643bbdf4c7fe4a4982832d1958c7e80985728636ddd4be24b1df902afb53066879df8239004a0872b5760473de85af59931e0f88eb05bfe306395ac941485d6a843d95f9cc211de8
+B = -fb0bab19fced224b475243afa5c308ae32f9d9e0cc7d222611506ec1709f68757a60bfb7a881ca9de80e2e06b4ac8ab9bc95d9532eaf65bb88100ff47d5950831191a5f064e6e65a6561c4e810bdc459a531a7b9abf561612f0ca8c5f94c3e7810630e117b13fb0b443f7216935e855712694e6f6b0a229ca8a867e6ed55ad4b
+GCD = 1
+
+A = -a5c4c4bab4df869fb46ad8a7a3903360f71f057c1653771ef7b60f21ed31114d2909bbeee54c4c01c65b7544c75e1a8ef56f134a882af12bba61f477d2405a7e7f56bb777297cf5a27c7c3e4630af1c0ae9e8810efcee88e13638b41f130df3683ab0256b95e53fb022e57fa14b3c67bc66d6977ccb6a8dec771c4aee4f866fb
+B = -aa14ceb645aa0b3d85557da7b1d43ae4d8e2d819be23d20ab7714848a955a5cd0b318f1844e86917c3f28e19ead03ba5856258e0a699566d302f474708b8a04c98b32e02dce2c19d7c5109605eeb56a0a88451fca376e6021c5011599e1edb9128ea08c746fcdd327d094280f73b0c09eb7d2cc8838830be6b82c4e6a7db2ccb
+GCD = 1
+
+A = c432f60292d6de79ee4d778572aa840476ee43a257d3c971868dfadfeea03e7d941c41d4911ab0a91316ca326f923f5b64c22d1c2bcad055d2d1baf94611736b6a27e09792d2bcb8405b71852583c498cd72d77fcde6e90010a02e08a9a9a89fb2a0192bb14802585f2a6084709c7d9e02b3d8262cc48521d1dc0f9ad2fa73d5
+B = a8dd3cfbfd8fe648a3793273da8b26e36a3e72aad6aa21c9c5dae89d6e875fb8e910d565020392f6890f7c5c9e266de7e5cf5b3fe071f7c302d2db2633c4975823d4df76abe3377cdd9088b70f63ed39c45decc07e0d00db5786b5a3301988d3a98e4c2c1e711aee755ef51efc98dbd35f82b06475b5377a58ac7d917d57cd99
+GCD = 1
+
+A = -ff59beedc1d8bff9a050e66f43d5847245c2488f1a72d031fc05d2c88a7aeb0b161afa0b7007565448d427cc9b14212114950f12a7a85d4fd49869132d932444a109883eabc7f047941c37cd7ba297e5c101ee80ef80f73d7f682d133d9680e52e08a048a4f2451df18938f0316fde5fc6fa4ffab8be8fca298234b83c94da01
+B = 6e09e3c53c00d41adc5d33741ff27ef0cd14aa71369465af8116a072938c16fbecc8c196aaae99ae1189a3ea44558ac1e04df56de714fd331235f6d39faa42c70cee662607afc3c84d7309c231a58da226f9a2d4e40e5a6f72fc966c51aaa70ed32fede5f924230530db6b9c9707a4d6907e3d4a68900fc6156da00159a0bc5a
+GCD = 1
+
+A = -a0fd24f5c020ba8026c0a25208397908e7bb4843f23ff4a11707533a9e2997e3f7e63eb660516f5c7264613e70942b1336758172623dc698c84c91b1dcfddd16805f59674b73fc408b686b4e9f252b982d4d5d7a2162887d63627f1623b228f9fae8c8165804f6212cc31ad0deb8a2791ab1294a7153966c970fad32553ecf2a
+B = 6fb229fe1d4135949b781d9756f8fd6d2318e19722fcfdeb1cd0a1312bd9ff93925db04c4fd73fb40462a431e532a6f4fa4b89932f022eb3c0133dab088fec19865b0b000edfb85d3c0abf8362aaf119a2cbb42cb061adec5b8001af12af505a10308ee92849ea3c51e6af24edb020ad15756081257a70f4be0e85ca829ce2b9
+GCD = 1
+
+A = -a593dbe4a20fb1b6bf4cd8e49e20e808274a3e3ea125c7f9cf33dc82cecb44f028bec1a0030b951ef8a9c5d149f803d07bb65aeaee9ec0788dee93745c4f43dda5101622a8290dd17b4720692202353a893e1e9e4c52c5ebcaadaef9ca34d8ec7f3c132767717e7fc19b70cbc0b82ab5f496e4ae2b6dc6d8bf695df055fb8772
+B = -de18e2c611bff98420607daf82b544735a63bf2fa94764cf215dc6ec1f68370a049144a5331e04ea554736686a13098d885249357bb649c2d1b171ad4ca5045a78c9c2f3b4224b09c8f63733f69e1bc13d79fa1f5815cc7972178f910efa41314605a1a3c5224f608796b43b973be88b29b3844258b0d2fbcfd206f30506e2bb
+GCD = 1
+
+A = -e52da4bc3e5d8f60e2da877d1a0190869162ae1c04669519208d74cfa3683b6097b9a5e5553a775e96ea4d419c0defb3eb499c572e4fe0c394deab2bd4d08cdde4c855decf41222707c16bf6b936fe48d4845d270d5e340bf79360e384c119e2f97923de0e4a44252e39e07d85775ba544090d5aaf7b942cad8dfb9e12c6538a
+B = 39827db4e52434a69677be69d675dcf22ff54c4572421d7b75de9168ab051fc8effcea565d2e6850fc22e2c01eeb035c892503d04165da23e29649a196235fb9da768d8391af44061f73a038bbc9c1d62481c7460e9ec5a89bd0d4af2388553d826644c9973c4b73c568baf205c08c918cff87eeba94d47d544972b56c8d74a0
+GCD = 2
+
+A = -2658c0f75a35f852bb84f6d24671a7315919fb42215873d9303d004020be0428dacaa398bef0be232f0814842ede603cd7d61d7a06e6fc0df33c738a1f0de2e742bd462c757d1799fbd56f3b59a96adf7b37847d594921a32cce54dad3ea31b1d218c38c9cde8ce515767d9d741b3ac1f99201d330aabffd9d0cab11b8b570eb
+B = -39ea3d5a9850d83d73da5fd718611596a2f86afaa757d6f253f14f54a27c8a73ba0ca24f08373e3b8c6b3f0d0916492905b73f764e94ebda60b4d4b79ba93719b74a96d4bab92d4cfd20b38d2b9faa63509d15ca473f8ed7a5b432d31b9afe80c0c198ae9608ab4c787961c4e707c636ff75facc899f204eeb007d4e43bf1e54
+GCD = 1
+
+A = 1e9a54cee94fc9f8b860106f323b5093727b0920d963d5965662c09803ab027e6095ea112efc46736b78026c7761ae0c0376fdaacedf002cdcc6fb50858de2b7868d2bf6691efbb83ca61af718f36986536059e92f24beb5cc3a080e27f89323969abf4a4b8ba218cc4c27169dad86d14d675989cbb42fc9ac3dc9a4b636db87
+B = 1a88f27e8921f140ea52808d7d474c7377c3d2748fd3d1f6143fc6ba5b6260398b2bae9342722ab23ee578f15d8deb32a0bb46f13467bbab7c3e22485e6a7e46b59bbba9776ce17e67a15692b8ba92743b562ba02b54e648a3590d98f5df16ff67788b2a9668b8cec119aa9d602587c61b17b555f9591bd27aa5735f7882d039
+GCD = 3
+
+A = 69c9cf1c4459f359a3ecd0b0d148ffa8535a4e28f13c0bbe2b61e35af07e27ce6d25258f74cc766b91933eb3d6c562bdf45190b9085475dbe675dd5b60192da7fe915798130a23a296d526d5ba4f26d84be4cb1f67b4d496830c09d178cbc0e38d2349625fda6f02c498bbbb3fdab27781f69bf29526ddaebefe8fb4d71aab12
+B = -f7411bee2e363bccf0dd48729a1e24800f74187f3f0eac4b0bffea717099102f59c526a9a4b32b9b60b28d191a00eba0bf94a8c3a7e9318bf985c8c42d59cd185b0f1d774b80a748f55701aeafb858d7a894c8cecc07877b17753079a1437e7104d7527e569797051d6e23b9dc097795ba16994ec46dbe8f9795d50c7e56dfae
+GCD = 2
+
+A = -16a0720f665fe6b5b7f20d9830ec2c6dcee247c2ffc3d209635cc780fa1ab08fa36124d8236b25046460fc2fe2418485849eba87adb5c393c473b319b32b0f094376f63b841ae624303ba03557a80e1695b0adf7d23cef1279a1ac3d2452f96128ea18a5d589f477d6d4e63da337ca954f7666d7a05a3c4b8f64ee42a16ca376
+B = -87563ed277ade1af23cfe99685e0ce3c175f8395e6b30348648ac34d85e789a93199ee2c63c0e9901b34bf8acbc8c34795950f9ad0c9bd9d8670feb20b684c544ecc3a9ef65786675ad9282cf2ce10e1e6eb8743d00e70cead41b6ad97bda344c603128f83f1fc99da061ef7f2e7a2a4c14d191e5772efadbe38496b3b10714c
+GCD = 2
+
+A = 4bf84cd267f0bfe1728bb1dd7c977766efbe0124cb138a74f55afb94118100f13f38c6013fb4c7b057847487b264a0fbef5fefbe04833e061adffa9ee8196023ce6a1c3e073fba41c73df3dcb9afc31e9f957fa70347e309b2ce880a6792d652dfa1a6285b77aad7495bffe1f4851cf9b0fd7a9b65867888226de153eb979b5e
+B = -4dd4863a399d3acc18a010578d725233c93058c84b198f3a9dbd1ea5341dc6bca119248ad6848556cad6678befefef66b9b03017d4bb826e594dba1852092faa4ce944329702ca8ee5f4521ed0fe13acf6dc914e5ee8232426b4fceb7f39082e3cee3e7275f7ee24ad296dadf5a2fd85cd6d9424d2004aa28bdfffd14af494a8
+GCD = 2
+
+A = -fcf0ce69fa81b5c7f869835c15ee2d264e6cf95946d75f0f040c565efdcd017ce20d0688de57e54390c931888c08d482043a24ea048192a98d96cdf0e9a5c7ee33da19592e5210247e081b1fb206cdc6e28a54ea2dbe63e8bfb9e9c002b891b42c99584c6727879781c3c208897247b3f1dec0d55fe152a2e21e77ea868b2a54
+B = b2c2041c93d8877be57775b6a519507546f6f5f5853d57b08d74f66d0f4c2812130b846c4ee689d604d43b6eb42cf8021648fea0ed42b272dee1cf0f7a4c1be591b160b0d93ed1d3e7cd068b2938af4c2eb9395c3e34e04123252544e46e3f9d20fc6323870fd4bc1692fcb52c754452f8b68dc092bfddb29c43a7dae718ac6b
+GCD = 1
+
+A = 4c55ce5424f2c9d6d158eb0971014be3f470a70dd526de94fadff2b247abdf5e7f7c605e7546d220438952a6b41e7d1bb3533dd10a35b34ea2c2c78c2df9f8c66eaa9b29a0c51428a7b1bb2fa4ea3330e19270b5f5f56107a72880fa69865b1ccf2ad0d64f827c3e8e91ff68a2454c9ceb376c5e64243a1cff9137ab38ebf18d
+B = -41ba6b03e2853b202e23108f333b18c512559ef3bd5ff70b733c15d3168e804fedb8ee49a62b416088a9991e244b75754ac40182e521ab6cf546d75f14ef412c4ac43084890599156ee83064e7c73faf45bbd14bba3f1637522cbd1f05160a8ad03486c23df1ff4e018110168e9f636ee6b380a92c0528797226e1fab15db72e
+GCD = 1
+
+A = ccc54150481e9f136a54a6619f10b6492ec57993bc4b2d9cff3c6be964f640f57bca911ff7fdbb55ae6feb9c36d3a599722a37a8c86cdbb52a2688c022b58b3ecfc7e1985008853d9d0315dfea05fff1ee465bcb3a89420d2875c1d39c54418f16dac4b40fc6838e642be03dd14f0680535e2444af8f8197a43bd9b579d5cba4
+B = f0053588d2e792dc522c4aaa6926486c92402357c0408b3452857b22dba26ed5378f2e8b5cafa2876ca321d1f22b040bff3b9d34f511285675e1f04d39da0c956e84d9e140d995d81ad7c7774336ac13e64f45308fbf87e956508abc37338aef402450272369a38390aaa6ecbd0d80f7a820b85a282f4eaa3828f316d7f39a14
+GCD = 4
+
+A = -571d26ad38cdb460292c46e0cc0b1356b0b5665b1ae8a955e80f7dd4887a9633f0d21ffd0dc6f0ee36c2c7ca1a45d4c6f995d9b60361ee944e908e0558e1beda07e1e9e8e88cacc1673e39919dad79802190117ce99f934f2b0c23848bd1dfd9ee7816be4c403509574a043bba1257485522f766d68cd47bb56b3c5e2ca8a7eb
+B = 4af3a2cd3081a3b0c5b386894cb6a40a1075878829ceb8109a8fc47d1f7eb93faddbfa851769d5f1090d591194362e8a685efdc98d421e5780001fd8450033ef77102fe55256b80ee3cfc1c0eb02f55099003d8234b3bd3243ab6da6ae04a7032303fba0f3bb3583fb39d2744f807b03ac680e16cb1eaccfe2f00966a74b9a15
+GCD = 1
+
+A = 4ab43d9387e6ae566ed27ae06a1425cf614e740b3431bc0320be21dcbe4c06cb57df34fa652832de2d6bf0d998fb45888a4926de287a7f6d5fb7d6cf544f31acb7a8431028f62583c08640be503b953b2ed39f9a416d4c883bf7b55eceeda63199e73de9dd1d2e4f950d5d01aba94a8aa14a80b25cc48f4c47b6feccaea32a24
+B = -16c55ad418506c69b9f3ebd148c406c93028fb061ef4983b21a758951d50ff8e79f989a4a9925186d527dc3e1b6eae06f1e42b4e07d1c8da988b033b115300d6c95e45076557a08bdb4e7ef90e8428a3ae9f7614a43262a83f9e73bece979a2cc7e27f73caf5ec39ffab0cf29b56fecc1bac9d15e8173fe02ea9ad84d686e460
+GCD = 4
+
+A = -90c11c9fbe7d26b1fc3e915bdff70866e890fee81958f9e2d818b79a734e4e049c7adb52f3a743e47880856610711d9d07a1ec722fa5a9a896600ba0a3dced41e1c4ede945c9b98cd10ce7980252a857a55fb979a88a1414d6bea2c3b3e4854cd706179491d43de684914759b389e52921b7b358849cb76ea8aeacfe31440203
+B = -7ebaa8cde1150e22f914d2e1b8102dd13cf6e675dfac7cad948a3fe1760588fca53baba7c82a99e50b012a0bd4bd4ed8e5373d48e43a0c9929760e9aafe1d6e87b78ff34b078256e33e9cecac09e52244652ad94813ab8f72405c265186ff9d0cf3e78de1975455a81a71eddc70c84b78540909b1714d7b05b5a4d1115d471c7
+GCD = 9
+
+A = -265358b6f4e45cf818bad085c3ec4eee4611cf1e84d3b29ae14f37b28524d36d08ca644f66b54de177ce8a1f7b07ddd898348849bea4feade555986eef5e3fc34acbe05b910ef15fa4f6cbf6eb25b89f58d78071ad883385a17cdaa3afcec445e71a1afcca7121c5010ad74a0e2a8acc58f1b1927b852ab5937a942d50ff9a1d
+B = 33a0e5636d22caa6dc84c83bb21f7993dd804dd4032fd5cc2076e47dbf60a0189352cc83be6a29451eebea3fd033b92612b6969e997ba1c669a9f7f2a9be522a712ab861ece3657ad6c54fc3da21b2cf0581dc322dc327d721c7373682bef98de32b8b9f385ba211ac222d0d88a467d54895e00f1f9e8349487d75537a1ae0af
+GCD = 1
+
+A = -d37493ce7352d1f8b1b9d47db0411e7607c6b7c81289ff059a95741cb8dc12b03cff4d92092231c5f64e6b7dfe24ddd9e12820ee850d5cdc55dd49c76176b19c589bf67894fdc8f2fd37677bf5d3f0bea2422dd1ec20e1f3b0116702da824d2ebb4d61d6cf1a41b1145c73b4e528b7d4ba25215b8ba808ef75ff280bb47eeb54
+B = -7a978f71b184a07de124b64ca99577485e3b2f30593dab6019b0e9c43f749071bb46356205e0e7a941f35e601365a3d4aefd360d7336f815ce737e293a9c2f3bbfe793756d3f3a2f3b3aeb50c5d2157d1a03022fd26dbed943d0e13f8cd222deb1fb8d6a398d8ce39e61f76874e8df6cf96b77d1486f639dec86be6d96b62201
+GCD = 1
+
+A = 54efebc6b00dfb7b78438c5fd3d0ad25370c7363992ac2250922525e4dbd5f306b0f28995af8e75ab81615f10909064967a2d413724d6aecc6d5bfaebeceeba7bc00670e90d66ef48bf666c47fc01cfe3813d90829bcd5a0c635fc6342cb361ca72d00601d6c99d4028c78214739fe29d501575cf7a5566cbcb1f393e8f0d5d6
+B = 99d116d93c4ef3c7e7932b1c732e027256b86acea78c2cc83176b7273032102c634f173ff875ec60a9aafeb5572209eaf75a13b52013fa71132943fafeae00453eb8aeb5aa3207a940d351d051d56a76bb853a589969e501a82a09338a58db50dba58d33bfc233c9e1e29b96bc5160e8638ddff55fe3ca9e0560f9366ee822dd
+GCD = 1
+
+A = -c1b6275ddbfed8faec4d4d4a097356f51c80f33e6221948c23b3ac1e04860e339b60647ad54dc8594637e935ef26cd6ff5cad45bef840e6eb02dc25fb628b7170f48426273b12b14aecf9584283d3d649678d8530683de873595f77b99ce7c7b7f9affa53a32f8b06533be3ac426d14ee754e0a765d93a83872aef21df4ab3d5
+B = -a9663739cf8ca44afa9fc318b80672c9e2dfe50515e55cf1661393b64dfa5d4c88c1ef0a63d39cb25c0e8ea93096d59d9453adb39ade57062b9c0777d00724fe8bec7a7b939e229f0b486c8c8e5847211b0e674e4ad7f770b95078284197754c0f3bfbe36fd9039d0df6e0c6ca0ee08c0e921f1b3ec8e0cf07f536c5844b0524
+GCD = 1
+
+A = -ec30b08a0264800a55d46125103f0124682e34df5ee5162db1503875f5c57cde9ddda23ac0d4fdec41c463c97f6f006a1aecccdbf599e9afba7d89feb3483df3c4926383f4ec9e1158389d8759860a62d142c6678848c41e926eb95ed4258cc760dd8e713836a3efd7da1fb733e131703378f73f1e42c44bf1a6c258dec5297c
+B = -7e69a3a067739ee949b17175a1ebc4c0fae3ab6109ed354e68b9cb5996572fade11a36065fc65743d886c0fc7f7322f1e5b8c452c993d4a8b6bee2f14a10e3e27757e86b2c0b6d2c4a862ebc7906be9ea316aa0d70a79dbe3764cd96a7aac9ca1d846f27b634ab5a6c53e82d216d73d08e3c139799178f807c0302d84a42b2cb
+GCD = 1
+
+A = -9c5251e2677831fcd399b0ed4bea16d773bdc82f28c9df1075ee50e751ee763dcf4f11724b72fed1082d460affbe4480b23d5d9c056cccf256177fa112170f4a781cebb07ccb67d9c58715abbd2b1678f5269b1ec390b032730d6040d2a6641152637377d6e02d0cd2cc0ead56d1d5b50d2583cd0fa0ea5bd39697b510e44172
+B = 4a4c65e59ddc31de1d1c449d338d736e8e3a223575e13904eb51aa8357a90f9284fe6597e1ed4bfe3efbca4c7a6932762556136428c8f005364421858dea66d915a7bb0825e1234e18d8472b9743bcaae7388319dc9aef9037f6b04bf37b1a364a14b794d1d3b8b4928515c23027d0eac67ad2ee0d76ea8456eda2bc09d5a9a9
+GCD = 1
+
+A = 5004e6511781d7c0a4833e4e5a5c45db4c695abe6a6e3bfb02841607dc8f228be8a3f18a496eea513e8f1e1a8ed9ba848b643fa75808d05a962c9169f7c2bd5a890a7729218c1eb4badf12cbfa61373bd034c71b94c2f50be70faf917070cd9921911d881658a7be955f358fb3280867cdaeb4b52de69934a4d741a949f9143a
+B = 207a7d2e93f97fabcdb84a320878d41b2f79d97b8736ac486ffbca7d261a906a8f16a1f6be417d49df024b84f83ee84015e4113515a8846faf6901972a5c44972e0fd82a18f83bb3279daac2c7868059623889ce1995bdfd530641565c29770221719ea602489fefca922a3335acb3b88306e1b1dba914617f8cb24296348468
+GCD = 2
+
+A = 1180638c68dffbd682ba0aec037cb3326d3b9894daa3cfb02cd22f5568c7653c8d33989eb777a1acd6fa0dc7150e9ed73e40f39b9c6f8b51eb0f7e50d84183dab0f164ce14b98be6d933edf7dfaa519669e6121186e39d21357359a9a8d6017b5c57706a6cfc07d31d6b3f105281783342cf135b2e0a521ffa97db383e2436ef
+B = 16b577daa236efc24a918a5fdeba337e225c86137abfda1cfce0a07f59171abd151b68dca976a30c5fe516fa08a376a34f77aeceeaa3f4114dffd0957a5e92988568b3eaa25627e5e91561b299287f10f3ff30c33086ba27a9b94efe6955febc72884007e35f3003d70b2649320fa644c92d866433915f4db22db93318d044ec
+GCD = 1
+
+A = -7b49594c5e44e2eb920072625f4ae7f4572bfa6c6397a76455cb4f7058460bd70bbdd829dbce99ac5a53daab8c50b25436269a1532babd83aaed2f78c6fa4e18f74341d3ae17b0e2ec0870d96df0f7a7064152378ef36ce3c5e02b7022f3183468993ab1aa309f14451ddc02ff2df5e803f4a110ae876462fbd2a328780a30b7
+B = e346503b86bbea8adc538a111859e577090de776d7b6268589f7fd5df46b6ff5e3f52a4c1660b883492399ec45c15cf7092a30812591840f90ac93c49fabc4b42919f3c605217070b0b428b9bcf2d44726e74de487553832fdc842e14bf7a074a48d6e2732fb628ba75b60f400e296f4fe6c6f263f166eec1bd0a79977492d8c
+GCD = 1
+
+A = 9129392d1731fca0316cc58ec96501921568230569769b13569874b56f9d076fd5a01e4f35f32863dafbb3a882697825380176cf4feb8e660fa4a9121586917f0ed71a2b68cb7608e0389d321589ef9cb324d3e2dd53814042db6238798f672f925379661fbbe339f61670666550cd198a9eab6a5d0df39a3c28438908e18101
+B = 7e20839dc334aa833593fbd59d62e050e6545e5caf0e5f380f329f836b2f98a24dd692425a89dfb4072c64716f43de0ca0256b252bf929b17b61d76f7dca91673063e3c2dcf23f836b7748340168614cdfb60eb486eba92a809efd2f9d61db25e7fa293f27b4dbc1a3c7366679d856878a747d59a0621344a541cd97ce8f0e2a
+GCD = 1
+
+A = -20c565ee8f7ad4b06efb713d4ae987f9547b303a2f679fa5723683e6a413be1c62e221378e96e15a4ddfc0f8397ab1edea2741ccfbc72860120e95bcebecf13d4c5a9e05a1d48ca97c8939eb73b3a46d2e0848e0e5f5454821538a788aa12034d878a10c6719e7e68497052e4ba17c559513b41448c6fd683f01b237a285c73d
+B = -2e4f817928c78c2f9fa5daae4346407437c5c386c500c3cb758afb75b064d89f022b98c8e3a4b9947cc27fbe396ac8d7884ff6e4f33c1641fd28c1f69deffe220b0180cceb5029560c78b2748d418e0d2ddc22194be0bd9163163d95c0574a9d4032086122bf6d106b746dd41d6573ad612bd51472a2c23a344a034e21a3f8e9
+GCD = 1
+
+A = -43f97ef65942bd5a04aff5a2ef0c6b42e744185e6cfc01eb434c41db7a30e035fb7bfdd891be1b343d527cb01a3a861d1921f92f2e5e271483051bf1b9838d6df928f807c2e8bab9af2376545b793eaee1ba14e66f97a35a3141cb9063d28105e2595388e91fbdec83d24353c196a99984c4bdadac4f377556162958063fc67c
+B = 7d14c95fd913f29e8df9a31ac0a9958abe7e6d59f5d09371dfa4df674287e85740743122018f77ea23d786dc38fe5954c4b39f8170e7b0fcb513cb8813be7c078fd1142664662a5e22b7c548c38fbc2e7eceb1f42d774eda99ce5fe6adf1d25d0de9a74b0db186130a67a8c638f227f7a1cdd36ccc31e28883759184b2693979
+GCD = 1
+
+A = -775be0fc4df8f50171bdfc95a5dc848f827bfc58dc101bb1b08c79240eb9de9e0aff378befd46c395abfbadb66a2c7b55767946f457e2851e47f507ad623c18315059b1e59cade01d9aaaa32eb2462be9707a0e825a611ed7fa31102ae7cf6f9e0c589c26909d803a68da529bcdefa3181074ae23c09e16b051b9866b47b4c4b
+B = -a3b6cc062228ee98ecf04c67d27e6e608ef259db854667e826fb4d28065d584723da9bf3690240e3f587b7a90e70216af227a793f26669d306a4de8c10d9b564c648f709fd12a2dca20221d9ff576a9398b878a1513f96e11958da940803d28dabf11abb7ff940b6f4fa697605e9c9205d1f858e6062dbc0ac356bea1742bc24
+GCD = 1
+
+A = 82a42f94197ce8f002cc7109fb011d4d839acc4d1611cf21d6faac649b94b602cecbeaded96206816c417666c74ab14d4e0cba73adc0005a891eedbbdef97651d486f021edcfb5cca1b5aaf35a91bddb0b2c19615b20201b1fb1106fea844ae722a6836d388846fd2886f45a29bc341039bdfd8f3eccca247495aeb5e37fce1c
+B = -f43db37636f5f90d577e81b3a386617db7934b4a3f929e069cb98d71f4db3a786320697efe8e829896178ec352359ee411e2f42b53119297a66355b32b630cad481bfeb37e00254f4458ba006ae2b7381d556fd59808d00619aa902a484405a8547fce6540e78db713e8ab010fe09b0049d0c2254277c4bfc6fc748f3bb5ba0d
+GCD = 1
+
+A = -fc5ece215c712e69a60dbc15b5ca83ee381141030d155b322fcb23363aeef379b7e272c919af83f9bceb2b6b4324b6eceec94628c7b36bc7d9a3bbccd01c3aa7c0d7d4277c332d2ce8eb079b651f009d8896da4f4e6706ca208ca13664ac930fa707c1339e58aad5047e2b7d34cd7984cb3230546434f18ae2e00bacf2f1de69
+B = 3d1cfe6f55721e46ab0b4a869f354f3eb7b49a76d084f724db604d0f2d0525e7207f65933283cb2feb8131b32fe384a7023bbdda54d331d99626e16d41ece61c9df2256b8802706bf3f49e9eec73ca4a2a77242b238f22d312bd298fe643a6baae9533b8be2a8382b2b26448420644e17fc76c49f1fb47566ade430bedd093e3
+GCD = 1
+
+A = -304b9a1db248f1b534112b3a62f4679c4564277047f07494ab42385755841521cec3bddfca8f3c7860b2ec5ef67128f95fcaab7112a32fc332df56f5c26e20cb7b6e338fba11743853733d8b743ee8c9db24f179c1b8e0ccefd190288bd6aadeb6c83142e4820a8546fd15e3127d9b1855fc472afd4878e2925d82c118ea995d
+B = -d2d666e855669e676f59ab900e65939bd20833ed8a3510405e74178aebf3fea12630b8c09e208515acd1c199d96c8e3e42993bef315c64bfd0a06a2cad92f9edb04e623146a6cf74aa12b65a90d73d565661c340914a3b34757e89390268b9b8ec2b6753c7c0e0b39ac2071d33ab9ba605924f78229e38417863d008e59ab0e3
+GCD = 1
+
+A = 75e9642a674b1dcc66b17f15f3c4f4fcf860337b21804f5afe44d42082aceb17d663252531c8434e0cc197429b491f0cabc346d69b3a0d5b558927a4370a7d615419b85e1c435265e01c99c6fd9c916d47e587abf7df5af8dd4df54d666a7d581897b2f6458c574c64eb2258512ea7823d0f6fca7015dbbf7875a6e2bacba638
+B = -ba871b17116132fd6cf9bab257d2857662148bd3becc8ee12629fff8f64cb11cfd69983ad203872afee3a4d03d847f64e0f827d6ad35b30eff5a9783e1d91a0af415d08a7d6d762e1181efea6f0f9373798967b9d56dc39166d19cf5e4553e8b94d7c9ea252a7cbacf2407a8ac486ea9bf528534b6f95f60f51564fa7062160c
+GCD = 4
+
+A = 6512d3ab4d01cef3abc407772193535240a5adc152b5cb66a5901afa56ef8423eaf89003da39e32b81115f3f272d48bec5e68c4b4143b3abaa1c721d48b5592a599426893438925d5c41af167c5cfa49bf209b330ebb8a4393ad459c643a976ae6bf394b332def554ba2be6f3fc5dab010692cde549f3c060768f8774d85759f
+B = 2e6ffd2e1407754b7fa6ef98309f3b5eabb8e0ef19f25552aa0120c67a47cfc538c31c8ec4fcb47a42a94742be77ac4fbb205c7c6bb2002bc1bb5ba23fd089e98fc09d4459229c84321d813d8a238d1283c3a6a34c068ac481b95b194150dd649d4e35261476a10c36652ff90f2e7eb20ccb65f458dbabb6df398ea81256daf2
+GCD = 1
+
+A = -13d2a568f1ac69f569ae28d076c80e6d81c56cd8a5c201e459036481800e2accb339cdcd3680f0a893d7b644fb29e28db25e67cf283637d0bb52065ff88399a13c706740934e9022ec61a180ac31eddfbfc47db9e074a6caf58e9b94420440e1ea731ffe7789a43a4c46ec12972772e077a78e8ecfc2c96f164fe68880c584c4
+B = -22078c08005d8fbc1e8b2321384659d3774a00594b032b89eb144e11e8d1765b1358d4bc6d5a2323378a2da4b48e0ee2babf37e87b587dda73a9d347f26dba4a9567fb91adcc00108485dcd676d0889c0aad00b4c4225d9fcbd0216fbd4ee10c92be9ab175536ce7c15afc1ba983566ab82feee2d93a4406ffcdf1e11af96d1
+GCD = 7
+
+A = cd47224e6a25f404048e1b672fd68b342d97a42668f92329810822923b0c499ddff351336b85ab63594e022357166a35284be2723126905e788cc8fc7bb47f5495480ad9a49aeaf913f18c739c4fd00cb85f4b9d6426010f6830cd4e3d8ef7c082a199891824b83d2936202aba14412ef068930f69e18b48c423805d8fce88d5
+B = 4a662b8e37b7467cae23d99c52fc8ec0f998cd064a36c1b5eec049dcd44b36aa960160cd6aadc66ff10178704df95ec4fe5e0c14e468d026ea3a10492c5babd29de256ac06ecc36b82209101fd55650d0abc30b4497830bb2158af15e8b9d54d31b52d7160dac777ce9826633c50618797ad419dd4e769d74656cd0bdf22cbe9
+GCD = 1
+
+A = -9c7b998c8753061ee14ee19464ec7cfb075e02c41aed1bb129702f3fd5481bbd195f628e0f0e9f27931cfc107a966b55f537ea010f01ad48357b5643d96bbcf54c37d447c79d0cfd8fd08f70cdc1c97bfa1f515ef4bc10a6eebd3b9bde420966e507c756da2c02673830027bf4d6fedce14377c3fc55e6bc5e809d4f949e4a82
+B = 2255e99e2ab71f27df9deef84ef46e56dd42ffe6e10befc0d32d47fda1f111da546327f09ab1a8ff9f761010cb23ed3ff1388286ef19044f3efc0a43f8150544d88e8359bb07728ac35a1e5e80b697ee3ca120f32f7f7817c2e65ddf914fa6ec5c209a337705ef567a558049fbc4ce1a336264530e2d02562099ec99ed8bada1
+GCD = 1
+
+A = -41e4259209ffb0bdfa755f8281b2eb5ee8f16f088091b91c8ddd50995beceaf112445c712f66d13b80bed00acc986ca7ddcb27dda0ac47caac8355e17a67736cc8c0e297f96547b29742f835e42c45e831a58e00ac5c7aca18c8e49df342db914ef0be4954c020c955dbbaf9f3e93e07c01dbcae018eec4e8544ef765a36014b
+B = e22e8243f69740f7030666c886853628d4352e6ce9ab11653dafe30127ac4fe86872fcdbca9bde6d4cf36e223154ef85ff43983e46b09d6edcd7a13c3830e80f374a6d08577925eef2e594b47f858d528ad21bf5748508dc83ecf7d3e86817cfe41c8a9214ad1c29fb49598107c275e2e3b2851d485a0bd0962e8ce84341eb6f
+GCD = 7
+
+A = 3d4d6c213dead6ae9536b0834ad7fff746dc5409d52327b58d65ac2a56dcd892a74c78104b516eb63838e3cf9d29c3cc1d1a1a2154619cdcc9315113d4216e68480dccc48dc986a2eac133ec5443a738ffb9a2e321b9ef4610cbe84877d732c68d801c587212076b8e9b28f1d7c48360b84c17f0ca8240a244b3dd93b16f73f2
+B = -8ab3499ab8a349672d7fc047290271817fc88fe8fd8c717a2b7f5a981e17031ade7d37d33a3ce17b2f8f1d0e522dc7f23c0767e60a31fdc70be1edcefd5bffce598cd7619384e8c0d326790e8ebb2ea511b20d2c6fe9a2f3d1706b3c0abb02711dd210db118018235f9dc6e76b61971b768847706e93723eeb9577b13529f6e6
+GCD = 2
+
+A = -f8834743ad62287445644f9f6e1294b4a1c758deff4efdb833c1913961a26c03e098e397532fa83597b813ee64eb8bb9ef783f08776bd885bc1cc19ee07e2d45abd19a3a324b73f83903c5dc8b564b8e257f17e18cef7cbcd5102e7a5d6bb6d89b219f19e6a34aba1d455fb6652de528d42848bcb67cbdbe59e5b336a52a37b2
+B = -dc42c3591ace769b102cc3437536438de4eb2a43bf8a8c274801d0c72a15cfd5c628bd7b47b144a4826ad55d1fb7f5a5cc9adcc295fd4bc02ea2d14302a2d8e0381a255bea31ce43215fada89937c2c7750cb149940f5f1700b0024a9539fb6b6e53c87452cc254d96a08205f6420b7e14edd2ffaec52a774d5ab26d6df1a4ea
+GCD = a
+
+A = 8d0680b4e798e423132ff0375ebd072acd45e0e642e3c127f2c8683558816e1d3b870efabed4f80e82f722b4cfe228e5ad00ac354568213de22114dc05e8c7de18b2befd2d1deb6cbc4e4ee584f9aaf99f8a5e5084a2b0999c51bfe369d05d0d28e5c5989bf266b5caa90d335d2d71f41284010b0e7527e8582567d3acafa885
+B = -7473f060eda17103bc9804528830fd200d276391ed30c4cc665d503c125362f43ae6287ca40a8726382ee2219149570c69588650e61baf1a0fb9af9d3fec41d58f27a15df936fd2dfa4b9a06c1f0a371a24ad127b3b3c52bc5659390c3ac6813305fc852f3a8abe25fcc492ea23d624b5a2873e1143fe8e75a949a5b21e698ba
+GCD = 1
+
+A = e85b1200fbce33f3504f7a367b01f270ea235cda43c0b656adcb5e3fda544c76ec403151aaff9ee0fa909d8d41c0d9d119f097111843e971da8e8e66c088b12a71464fba781d5c0df5a368971d0b6a00e961b55f6bbf55a4c32aaf9dbf3bfc2c71a3afe3bceec91683e36336dc2d66d9123e3d4b8c870ad8d925372ae716d249
+B = -2682ecd58cf75a3f1a97fd0364a792f3a11da355af5a0104cc814e6d3f21e14e70b761cd4a51a47f7485d8daf1473dc535a21b941aa3e899486dcabb0720a33c1acc0ab4cd1b2db385544aa43cb8860c2d6d7971a9c7238d5f7027387fb088013497384a408fcd9fd2021952940fd492fa02faf10b24ccaf0fdbbcc3687b93f9
+GCD = 1
+
+A = 70a970db644a89cb39124b0a890dbca5b0e07e81169a4c8202ad20bff01a46d8003b130e23af84daa919b53f6c17acfba6726a84ea7664289072aff46c5c984e2971152e18d6cc6f52d1171e1f6c5ccea42db0e4b44a8e5ef5aaedf8f3ace469eba2dfbbb19f1843d11f46ab9e20ca085ae4f029c466c519d92eb9b9c78817db
+B = -15a56f26bf32de8d92a618853a4ede0ed62b41f6466aed56b79b97847087ca7a43d1b8f366e32d776c49c3b59beba5559c2a38662576fc20b6efb78bf76d2b1408999f0d6a74fcc9306fdd02a9bd6e9e872965c98840340f6f9a80db69ab42698dae341311140749184a2ceb8b58f73c2de7396ddbc0ecdd11ef62f8e1b035f1
+GCD = 3
+
+A = -f14b60a87beefa6c57578c08bf63fb803652fdbd687fcd05c215e80882cc76cab77241a9661d4fbe68350c96aedda89a041cacb49dbc0f415efe71153289ffd86b585df721b0269bc550960128dc143a8a779c9b4e729fd29a3ba6274b0f1d6122f05f7baa1171673210be7bb523ef5550a7e0943d61e8c247435666a40dd2d7
+B = -53cab2c18ae5013e477ab1896f728de743bc572cbf1ccea6f423a4eb1e9d7a04a52a1cd61cf1fa9bf9fa87ad22ec4da82531353a36071fd96f1ddf3999b1d0b55a43b810f36a040b0529546ec495a8da1fa174b274ff40cc18b57a43b4efb8e4fcdff42d3553db1891ca533b118bd4bb5228fc2f7cffeaae1ca977087a317e1c
+GCD = 1
+
+A = -30c47419211671851c1af0996ea97fa48c2c46a619ee126aeee5b12f7dd3b06df1e78eeb8b14b5b82dc24f73e69b65a2baf32476cb1585035ebee4c1fab98486434fc2da9702200cece572bd376f121ce441f901272dd8a9631d957cc418efbdf795a788e0204ca468ad2d81522d449e5dc0ebf345cfb5cf04566b504c4871e4
+B = -2238c5087a800599a40f927fe2dfad2b950001ba0148f4b9bfd4f269c12e637367c873b0bec97977b8f122f6cd7669a9af2ffeb712c7c13c8edb8628c675e44842fa5a1a895ec4f116ef9cfd580318e078d77c6fc18af7eb9c1dd7d8bae7fa9e1f0affd494ab624d1b146569dc920294044716f91a34b5554c2eebee9aae42d
+GCD = 1
+
+A = -8f5e734316ba03a2dbe3bb1a6d4609af5034312545f958094f055e02d13333e0ea3114e0afe1815af8fd31710467892bb6b82ef478296545f30c554a9c194ce59b423850d9faacca86a8f60554041c4b579c5671609859cb17694e473b447da40f0c33cd1cf89d90f3cde874b9ac3deefe86273dc248d073a7d73ee009677429
+B = a4f326bf0af69ba18bbdf4d38fd5618482135338316674344c5bcf10c29b07562aae8d8aa44563749add52dee2bf58ca7abbe5ed1457368e0c6f27542250f12af5ec948a12d792da40225fc6379aa1b1eec1feae26bda80e8d7170c5c2039f8a8ba9026b81f97df625e5264901ce3febb02fee1080506903a44c286e1dbb02f7
+GCD = 1
+
+A = -a40591cdf91de26b487846e0a41541f03a266b07e8efc031a60ee7cece0f86e0284ebcbb57d2fd1aa8b888eae75877af379bfba7ec58326560cddf15bbc469b96b32fe1130a47c21d04fcba347a4f427ad75d07200329b1aac3553bc21e73b6d9e26685995807707ab5ff52c6c3aef00d95e778207c83cd727c3f67716e80064
+B = -8fb67e563344508261c6c8fe8f4ee855fac133c604284d98b0d3043c9ea0e552b48eafec7292045ea248006e98ed8b77d3fbe27f8d5cb1d7933c1d2b9787dc8cd747a706b19a30a57f0d070361f6eb866c70d1deb76abd3d2227e57c260a9bb91cfe2396f5911013960e29c1a48f755e9dc2ef66b2360875396d85311f34e82d
+GCD = 1
+
+A = 3a5693a85c4f438027458cb30ae5396b690b0ff23347c786ffe7231e60e67e635e104a3b01bcb25ca51a3c604591b37ba494820ebf5dada145f1df3733544e09094a42a97d4989530c0d67ba57ce3a49e75e4986500abe6fbe455611dbf743d6281b5660d7c5ff0274909769c5ecbbc8e5fcef0a35dcdae7a5d8e672cc228328
+B = cc048c716588c40f593d5cdef7a97db2fefb8add52c70d00ef30f9e31d2f2db96cda9b19aebecf0908017782a5a63693ebe60b356c53acfe18d95cb81fa57a50b2a9fbc737fcefb7132c9e1a918ddd8031faaf5ae382a0ca3a7915047fa6703ecec159462d866c67b9b2dec7e1cc24cbdb5dc305c637f64cce54e9c1278cb151
+GCD = 1
+
+A = e468320ff548ba7074444dd778253ab277afb9b4432b08690af12b62941746bf7814050ab479d5a0bdca6f5038bf0d881fc66c3b9dce0bcf4f5a2ab36e19342037a3dc43895af88065eeeaa2062385a2746b0c09f91834fb775a5e7aa91755a3407efaa5841e1dc8949dba77c6b9ba7531edc2af0673cc6ced0a9230f4fd969
+B = -fa4b86e63d1d3267f88354bb06d59550891db99419ad40234576dd72e6b1785a76be0d2d3ce7dc5e0abdd2bf01fcdac297a16cb5bb293a84484586eb0d7937ef2a79e6be9a8be96e6875fa9a89fbd51966056400b8ae794accf6af533e433b9092148b6b2139d685bf29ecfe090d6fac137d6378251468715d50c220bdf564ba
+GCD = 1
+
+A = -91e7b626d52ad3e98ef15b7c5b995614d7c1980acd7276bbb79e51a6799bfbfebbe473e809fa843edc2a4fc5e00a14a7eca5ba71ec233358b8859ee051ae9e68bfdca6b6bd75daec45de9873ad73afef8724711a897eeb40e09e45ef48d7078dc956998ee1ba7ebc8cbaefcc47605af2dfbc5eb780009171cce20bcf95b410cb
+B = 99ab8c668d78d3cb3e986daed70b81b4995d1090fbf578349e62c66f5546018dc2d4b2f9f18c0ce478483a2f8dc6e45d807b3aa4bd5b2cd68aa1d156f3b9211c1cbd2faf2c459a54ed3136560c7a7aa2c0dd4da3fd8d8da8ea934b498b5689a3f0efa3b56952b35eb80b42ea384eee53d1f9767d0ebad2900cd149a518fbf8f7
+GCD = 3
+
+A = 78a6d44c588df41f522ab06c1779649dc525538f5538e34b1fdec651661254f801f2382580697c49d9ba653c368fc9beef86876252cb411657a386491d32846c898bb648b23cb58d175bac519796f6f8092ad5b0fdd69ca132b129df0ab5ed27b637f6b080cadb6ab5f7cdf0be0ad61acef2b1fb8f70d417ad650daa26d73fd9
+B = -e34154eb0a91bf637a7a3b1f13bc0859d72227db3d7ec1267a6bff10cace80aadcfe86bb0c83d421d9b675868fb59e7b463e4c538df5dac6566b9b1551558e886a41c25f46aa478a70305e547786f966571f22439929b5cc940639d35802155bda1f4b8ff4277ee25035251eeb02ffa3451b81e38c80790a7e099c111850bd83
+GCD = 3
+
+A = 277ba648989987c89d0017ef02818f51f8202f2a5177719e8d210224fcb5e1ef3a24ffbc7084fd02fe0bd293bf732215cbf4cecc302b4ad57441ef4a9e17ec3afab8c49ed41de7fcfcac5399d47a7e89b6bfe925d70310277649b8a921b0fb05102c24b0d783f2186049ac8f55f02f94bd7f523e8ec47f79ec4edfcb67458b13
+B = -f240ccbbb4c09e8c019ddd674fbbec2ef862030fe21c0eac295fb2efd6a937ba047b184fd8f495aa57ab633e571ca1f7782e43d8f3662b2779c29d7c4bcee48ade58db47ecc94c1978fbb528ec8cd500bf08ffc28c4e257bb3448110308cf54c0c827264f5fb2cc4570d06fc0dad32e08b0f461d5df0bbb61a7194e1616887ff
+GCD = 1
+
+A = -25fc2f439faed14765bda423a9705cf3c321ab6265da25e5aebbcb2706c4a97577f0315ef7950108908cf844a7c6f52638814572b0ba1c26b6e0a031ebca0f71175f82348da8e9c80b37117d439c450540396b51cc4f7966d21b4829d6ee59f012114ddb89460858a9d353da1b84ba51df5c8f16fc4fc7418dbabd2335a2c760
+B = f1c6868e1cddfd371550ba9c4f3bc6250b9f46864cddf259370366578140ddfe252e36e82f184fc874f9efda5b4595f39067f04c3854f9578355a4a6ea7a74969529e5c40b12a9d0bd96005bea78f80f425d3ad4554bbabc12917b18dcfcb96ff2aca213bc0b9ade99a2dc81d8c03281e35f5e7d82ffa8e2b4cb771f7972801a
+GCD = 2
+
+A = -27020155555ae28e969e1f307e8dd0672d3a62122abadf7b5bfce320cdd83495734ecf7893f3611aebcca183e7269946ceed043f956b0d91c6a7b63de37314c8f9fcbf1a6b3b5686aedcb51b89f5db357a75ec4346911b2d565e8cfad9b4d8e56fe026323a599e2fbb046e334d0510528573c04c6b7e245c42d596d0d56e1257
+B = -3cd68fc1d0347e90b16ec92f6ddee506aea48575f3f2a615fb74ec19ef0a22924a5bcadb946cd13f98da0dcff4d5f8a5d5418ab4cf9b6275aac694e70092dc0b3a8f242d8e05901714db864be88c674d3a9331096f9da2ebe0ca350c792e0df9113017a98aee589c16705cc2c4c61e7a43642d9e814ee6c27e86be3a7f40e316
+GCD = 9
+
+A = c167d1e88e30299e9ef5c70eb75cbda23149b7d438c69066f321dd16c405369baa196595614ef9ee4d1ddf1982a3218e8eb448a43d4407ce49c3038efbcaca7f04254b885c3786f3e57fe4c8d1b49ec70c7687678211c7d7cc909eb17c9f93fcb8a82413314f7cccea01fd3a23cf8ce75b90bed7f6709e5dbcf0f62527b18d62
+B = 838caf24ad3111a195faff7799f02944d86fba1b473fa3ad7b5bb3a3a4538665370653c460d15dd0ad61f37a0a7a256b9dc15b936157b69a6df393de4a665f87cb4a75c62448f0ffef038ce3433b443e077105ca1598d6da5d192028355284e764fcc49c257c51f17b0561fe33ec4a13b5e28766997cdbc0f5d69538b40cd
+GCD = 1
+
+A = fa2f6442a580092ed7a3888f2c19145e25e6209581db175c4414ab37d47e0e01c15d52efa851169441b3f678ca896599fdcf0fd24a0bf54afa42d43c1ccdf3930955ea5e7499cd94af363477ed2c1ba09e3615e2c2a0d4c1fd5bba8ab009d173b6bea067d58a97246610877c3a5f9b9343f8abdd937ec59bbbb224dbf9f1f6db
+B = -b5c75e19d117f35d14ea948ce0edf3614e8cd7501ce4ad8a85da2baa084c1fb79857e703e2178e6a3ca4d0d5294755a7f420995ba85e435b60f30ade497b472507579ced5d60e58b60af8b452553e9998fe2d15ea1097d637a989d6a057f3b1e172e92fc30a015d6010765c9b3ac365ca558c6e545a2dbfbb460ea2f34d11516
+GCD = 1
+
+A = -c29401ee730abc257fd768e9c115d5e5ed1e9bb5ef7c3674b3ae194b89f5217b44c815d3cfb0acb68ba7c14ef3e8c369fdc34a6a61a0776c0caf77d8d97d388c64181d82d79ddffb7fea81f8fcf0debd101acff8cdd0fa18f0a25cd41e2a94d4d2c8065797b88f057aa035bc9d82262f709222e00ae4535ce39c6640e6f000bd
+B = fcd76c2119bddd7f4d0b12bf309c2c0d61eb99f04cb74dd211efba3d39c6e2a6769892d2ce4695545e8e47d00ae65d660c6fd475f80cf83f004bd08b7d527246b373bf492aaa192e4f40147d8325e9dc5af966326e62909b37b7b820a56fc236e277d764dc183945c8f2bfe5ea14898cded5a7b4d7727c96dbd51e5baa899c0
+GCD = 3
+
+A = 3e39eca99ed7b6278b47b2cbf1cf9a401f3b1696426d469e98db7b5d635189e1cf1e799a63291467bc37757c251a461c3763bd712dcfbae9306d76a58c2d07fad9f080910603d782dc6ac5fc8c56c4cd9ee9dc40226d65aae9543dae3dd400697c8f3335a458db60a02100d8e117097f9a9582759da8693d61fc105b83790915
+B = d9fec1b2060d911af5029d4c395f76b758618ffa87d9778a10578385e655ca711d907c3f61db67a6a07c6911bef7b27620b2a7dded0c70d5da92c31fdc67524ebef05086ed7955a2507bc627bf563f59fa7c36f777680fdaa9d25d369df44e869291196206446499c3b86e4a2c73f8b06a6ee0e25fb271ec64e8877905130108
+GCD = 1
+
+A = bd51200da2c3d0770c5728cca3fdaf620f14c5ae882c3d2fc59d34c12313961c7859546501afb8e3772e56f211829d6db907560b663b9e10bdc90804b601f8da641e3c4276e118e29ebaaeb87d8125b4debf937e07a4cb63facca9a1c0ad00f68289840a44f6532c1e1f864d235a9c17db505acb0275e2f2f9b64bf36b616a4
+B = f70ad24ea5364f726c3eec09aa298cac83cd7b2cfd66db17752e4ba390c772e9a30cb1938f5197867ba066734636ecb4089bb8cfd1ca2a889db8ba0ee5b19d614d03b1e9f1001eccb2e0bdd916160c272ba8b989bb7234e441c62b4a14d00bf2196f3634ecbef017f2d6271831db80931324642f6d8fdb6abfbdd7fe67a7172f
+GCD = 1
+
+A = c49b9eafced537e25f85799ffe36e98da095cc114926606ef3215393d0be949dcf853f00f9d4a56cc3b1fc3280a1d286ea5a185c1f8b439b03b8af825f9df745738abccb8a74f25a504b9c9eb8716dc84dd1b476573b3cb6f47b762f4eee9791a55e4d0d2f3cf7eacf87af65ee6059e2f43b0f743415e13cf8eb33c119a8ed96
+B = -a1f2ec34a2fde73c5bc7b990a064452085797da7bc8ce6856ce93efbb072d944635e9a770d883f9178fcb3ce2a38f34afa55ee6f59a688e7069dec33ee5dc5453a6ca24d17f6f09e754c1a106335dedc947e164bdb843de0f909064487dc283d90a6c9af77394602363209977e74ada675639e1fc25d3fcca80933818b126ce3
+GCD = 1
+
+A = 7b779ba7035f4e9f7f83cfcae89deb28294f1ecc88bc188a5d07949a99da2da06ca0cef147c46569ef4dc00923eb6b5bac470c90208fa116a29a1443c7c3bdc2ff2be17c2c76b585222c60f599f261f25678c7610444dd8f6367bef187f82ca8aa283198290e82c020bc5595a18e45d6371c5355402d5d39dd2a5e9ba35e3d0a
+B = -4f87c64d76e5778452a41277faccba96d955dbf91ca686a43716e507476b4093e1b159013d4a9b8fd7497b0617be8f21de9cf6127e94d71cd201ad7ee2200f30fc2f383ef1ae7e319c6e7ebcc30d227f20592ba9685af229d394b336f9e1d20e3f05a9c3a90493e7e6b3e20d2efd3b3498829ee3259f2bf03142cd57583fa166
+GCD = 2
+
+A = cfe99b0e1f529420242abd47b8c13a56c1e6c492db6ac75b7788999fb69e51fbb00d9c027103e240210b06477f1bf79090d74af5ea44153587ba88c779307c9d855fdc688c422a0fe4202796d4d3b273d2c2d60c0c22d22305db1be15e94748157a4a0331c06c189750f9a9d47244fe36d16138a6497df6d94db70672fc730d
+B = -fd8e7d819c4af7f84f57158b9b1f5ce65e595ead9af02393d6900fdf533dc7f9589c619e09c2479afdfa63109984d59406cadec2157b7152a2c50b04211776063be949270ae88d82cf28921fab1ba8020f05db8e15ba85637e1b96ddfb815cc7245250aa6cd8e1c4a2016291b6755fc83e98cd61774cddfc5e1de6c96197367
+GCD = 1
+
+A = -c940c1e846b0e625370161f33a37e32c486e9d45cc2e9c38e362a3e77e13122f22641c8aa11d3ca185eeb94b3bc77d5b12bb906875ee06734f848434d7d58d1c666bb8fb8d0546c2d00fd491816643c05616968c7a41a8b7e5b9de21fb7b20e94da9aa896243db5bcb9b53e0a2a9c14fa288754c352f5e78ffb18e73c0029bd0
+B = 69f1a766a98e27ed9d66f3d4fa2a4540d3fc3f4474babe926b735a3e7c084fd176ee5036d61da0bae4a517e37e65e724cecc73d94e79cef82bfba9d72415d10d93dce42bede9e79575ab6ec2b245b54adbec85517ea1243b9fb1c89c24ae62c65ac66f84da789d10ab3ef9a10e43dce60d8bee12e5fe6c4b51294630a6a17a13
+GCD = 1
+
+A = -618281bb5de3a32cdf4014834acb9a3de1fa10c5f60484b3f34f06175e5242062cb2f024053c3fd889f7beef0e5a7e3512e67c00744f979cb218b62ed637d1c0a75e56db4f71b09d1c9f75a00311a7fb7af7a7b8fcd02725973eb9ae0094bb9896b741c24f03234b3bf64d333fab7cf3b02895d02017b531461a8bd0555d6863
+B = bd432865f99d5ed5d8acd7dc58cffa98799684ed173afc34ea0e9ef6622f651ef6b7a8aabd45fcacf73b041c48ea04aaf769a1956a2bc7b6c47b9bac121776c0bd4a87e8e98ef3f91d2825370794af1ac22fee25a244ebe4ee7201c7f23065878dbfadd180b740c61ee60d0bb06a1e54d1cbd4378a6725375b53692293a202a3
+GCD = 1
+
+A = -b6d08d3b454bb8dcdd5fb576cc1b96a8326ddfa01bb1ff24b41a703ae9aaf860c06d5050b3636880529c2868959e51a2f9992774e32eb11ec877738b36f693ce369b1784ad0197a1b65f607cdd66980f47fd37c97d98a44615f5fe6590d780f89a9ccd0e728974e9bfaebc8f528fbf84a19fdb9c2e2f62a8c3cf338610f44095
+B = 8e47efbbbb4cfa2dd3be53ec2c4c253327c1c0748601e2f3d190ce5e7c1f601ec049a45618338f7ea99b96cc5825b3c429d4c4eb87468f7dd6e87ca42dd230262b618fa414e27dea2f5e0c02f0ac19d0c5312155e2f493f4fb33b2d0c71d489482d9024e36d329cf8c3fefaf1bf45d659ec36b0fa4e919242633fb156c09924
+GCD = 1
+
+A = -f7f3ca34f2937ee1f6f73fe4d7c97861f95f2eb44f34c31e47f31f7eee5d4ea9e4b953a109fff0559b934b2f89a4c8e92db958c640c8830b8156febcda82a9985d4b5f5f46971ff256e3cf5e96a5ce634b68a34393bb2a0fb0d5002672440ebb031eb084fbc83ba5fd40b8c9cf2b62f0f30a66c9e6b8f32740eac6ead8943509
+B = 4ef0f9c2209ddf98d89566abf4c573a5abfc94c5dee0704c4b22b0f013a232069afac798fb9a0240713704ac36bfd6c5543ccf8d2bec2ad83d6547faff19804486ba996d0c2f326777053681f8c1695a4163509c3e18a0953991883430dc9741b29aa73766d226cc1f8b05fadc735b84074a5ae52353ec113f264202497a61d2
+GCD = 1
+
+A = -3784a23ea6efbeffb28395b11676296c3a3327f647137a06be4a57cd4bee70f064434812c3caac0c7bb98b2ca2e2bde1e66a8026f380719fb8e1467aee380e07d88fa120e1cd826bbcdba6a1c95664f1b1d165543044e5580710d3b754976630af7d5745d39314ca64661ed25706d156c5d5dd0a6d20ccc2708946deac49a61b
+B = 7d262be70acad7ec9ca29045bc60fbd9375415c8309836b16dd06c22c5e3c56f563326fc2f77322559cfe63bd2badfc81a14624d0d620eb29a96fd62fa484376c87404df8ddefc49070d6bb63430e57f9a886e62606b2a6e77b6bd3e3f5ae2e73d7f18dfb1673a4c6d79e26ddea8150723cd898a78d8fd90e1ec9f7f10e98ec1
+GCD = 1
+
+A = 6fedc24b248cc9ba6c353261f5830d54abecd1159fb2df362c97a79baf8c9b122c5db6858663da286754835885b922d3240cf464c831ee660091cd78ffcbb26eb85ba6a32c2949b4fccaa24546ee8d14dfe982d4c864e9be378a9b4ff4b9da0fde86b018661bdb1cf76722e526d48d868dbc125973847d3c551ad260b81922e6
+B = -a0be9223c793c6857de0250f4288f05e1b6ecb93f802063fbaa2437a92d39975883edbbe4a48ad03ea0eea763ce6b4e1b1e47fe510f3406a47b1c4a84eef9f2267ab6643d4e4005456c62d612a84e0a99ab6766f90b968844b3c3846d93c01561605acf58b90124d91e45f3be5e88376deb304fe196174322e21ea407bf0a56e
+GCD = 2
+
+A = -619c08b252791873324f07417640b9080db7bfe159ea7c7e8b75080456d5fdc65fb13f9d4ce5fb8e4cb5a9f4f3b1f972b7067d5ced3b57eb88d01943e1a0566619377ecd6ac5562562f0b8e2820753e9c7ab24509bbfffac5a68c41847b5e96016fba3b04168f56311185bee2a118651f1fd0840564b364a981bd094640b9d5e
+B = -81b4e28ce0df6cb45f386a9115abb06f0aa4f707b6f550123b62284bb020c3f188f937770c2dcee4e341e47e23ce2905febc3100700ca227fe22d0965b6c64962e1ed38bde3e3299c693a30497a1c0f8e2639a25c6cadb5b34b0320c2b7ffd0e24371a19d7f1057e7f449227ebf2795b36755f988c184bdd83d0893a48d3cd82
+GCD = 2
+
+A = -5f7e9a7053dee522ddc0c991502f1aa42f1d9c5e92e775847b96150b9530463f76efcda717e105920ed429c65e1aca990b8e925eec5b3c792afcffdaf4f398a06a0d720b75223ab94ec6bdf922cffe224eea819e14c3632a23c1b92b2fb749f60e05d53c24ee9b4b7c0e72332c9c22822df32ed160a99507165ffc739d1ffe8
+B = 73fa6bd399ac802ce4d9c5700c44e7ba28da2a5698b27fa828c67ace56ee660727f9a3672e05e6f3946be233bf0f406dfc0cbdb141c6d9973138b5ce237eb7aacd78c7fb4498ab1f183ff91fa2dd7d6f44f7052004057460704608f23d27e79fd9be41a05294c88bea241ab7e7b8d934ab419b36d15e71c117e96fbe9835c1bb
+GCD = 5
+
+A = -542e12adc48143ec459693957b9a61eafb545e4384fb430f8628b9c3d112608f1437ba9e9a62741a0e4a388332993f118bde0e042b7d251004c0b2af51d3a31f42b68f2c124f4dc10da1b3d7c9c958ca4efbcccfeb69378b69d5f0e67fc91094ff14a6a19f566643e03686ef6130afb602dd063d2b95cee41db6242b812da9a1
+B = -d2a9224127ee5ab97ecc17116c598e21a62b0c4cd8b71be3d89984786d3a8a87e3c5d7a7e552f609ab2b26990fed85e95f445ad80cd32c8008df04c1dc3c9d5757900b3ad9e5d5a5409139eeae271215d1f0a7832349d3115ddad3aa33b0555e9dcbb6dc80ae201242868f50c6233196c7740e3a8877bb16b805ea43f4604e21
+GCD = 1
+
+A = 478f222b9a864d3cb794885169ef2f6343c4a890d4bc21fd3612efe2b69386a13b126b69ebda353797199350c175939caa31de5d0b01a345cbde438029a5b8b64e6de21cb1957cc236fac64887e1f56137599ef419c302a7b1774f89130a585c90fd0521bce73439ca2b63692656295f3aa82022c24141e98a285d7de6dc48e5
+B = a1edf273b61031f7fcf705963a300b855e3120e574818c2b3f5ec096d0679aba1103551df6ace26461a9eb455fd7114db985a06cdeeccd7ad6b22167581d6830264e28b2561730580b48a8e81ab2d6dcc53f8fda79a4bfb7c69fe20a768ffc943ae62529e142bdfcd148bb4dfdfac808b70eac968e0c8d28a4c1dd1e4eda70fe
+GCD = 1
+
+A = 5639cf8f671877ba7b681cdca449159cee1f35254d224ba447eb223e7985dd714854ea75c43c8dbc0da297505433ab6e8450f244c43543c27d81a01804617a5307ebd112af15c896b8432707d26f6251a4c362303bfd839db699df07ed79ad6323cd75ce65c58a99fe63d931f4c97ce3e60c77ad1d4490d66e01ca0cd02289c9
+B = -f29c9366b73050baeeab2ab07367396741fee501f0205e8fb2a41dc4bce2fedc86dda9f4043a089b22966cdbe11211889310e700de5f42b09d36e48d827ddd88972169391db1896e6e621fee7c94b72b64dab6a9d35ac2b1c446816e5db9dec770a5ef4923194dabf329a13c87ed3a2eba2f6f2912da9e02ec0ffd1c48950012
+GCD = 11
+
+A = -40480842c3c4ef4d5b7f9561d4d21ad617380c67ddc6ae861091ebf36fd2ca8939f11442838b6dc6f3e96503a4ebe3f6f7d96089c5cce5e0342d818edc08184299ce6695a5548149fafb818f224c9d834363f286e39461d491999e122f210def8acfe89d6223ca427802779be936d20ab275880e4cbe8e3f903f50941f36db63
+B = b17d57ddd939d891a688ec98b898ad4e36601f5aba8145005ed906a40606e44a2f21e51dd22d1a15763728c3764922e4f2d80d514cf0f2c3fde727ec2ecb3a015cfafc12531e62136ec10a6ba0aee7726f5241ffab7c6455519d7cf44cdf87944010dd8c0e19509949bc0b66e5df48ce3458c8655448bb42e0843388f2c69f06
+GCD = 1
+
+A = 8d98e252f4d11dab689f23e3af245ae5ea4ba545fe2ef2c8b4caaa5e88eddfa1d873e2da792917c05747c68db67d56d023cc228274eef3cfcb76680bdba05e978124533ccba71c9dca8106e113738b6b6ae0b1331389fa9eeb7456cee6531c69214561222549726d0cf15aa5953eb0fafb0a1cb3c33b9cfe55dc74e4a32f67df
+B = -31ab94aaec376c4f17c63e7fcffe8bd381d10ec2927334443775dacc0a14ff1c7e7a77e56e868b4f977fac8c3da20b0bdf4a1ccfc0b5b5d78dadd5ea655af91a1a5982cf92ef22f858dd723ddcdc96bfd809d44e7ad7d4f92df95a8207765b3a37234366c9dc362344f7997f2a1596337956723ead10a8627417d9d213ef27b6
+GCD = 1
+
+A = -320b45099e6a66688eabede6622d014d890f2a06c6e2830f820b9aeee8435c35e8ea683016a1615ca7d4e604136b968776d044a94a18af819092cc383b07bc9785ed47bfd3d9f73a524ad6829e729fc61ecbc6c48e469b587689f9c96e57a146311dfa4bf92711be0fd69162147b019b968ed4afe8b2c57d64a5df39db013cd3
+B = 92ffa658194707854aafd92140231d6fb3590d414b97a82b2fd43d43695f09814b498f5f6496f64752b2c6796632dca417991fe3b6b9d6beb8feaeb1a56d1e9c45ba38de64a302f10e5d2258b4cb83d2c4dd0b6883e1a8e423655c41df31905cfc6263d7d5e2476904209eb6d18a06db87cd2b8c5e2f774ed897107f7f1e4f5f
+GCD = 1
+
+A = -5741ed6e0e435d18de08555c70aa54525368172faa6963c567378eddffdcd9520dd889a1b5d4240cc99c9d221a868cae16fe0b908b486f29caa80e8a345654068323f07e60a50cc0088bdc39c4391ba4f6e55215746b7a0abaa182b53beb82f637eaed0de6b482524975b549ec51cfc2132d02f30faa1b4aea3fd1a81264dc7f
+B = -a337f261ec03650498f7698a7d2f528ad1968fd530f1977da49693dd8f1afb5192d1f5aedf0d23cba910bf013f1e7af945ab18df8340352f11120216d7bc6fe3c331c7a3f4cdd75179e547be866ca867cab2c32683f679fe06f8d3392961ae5877fd60ddd9d5ce1757c25d4e5108d1f0ea75f8d33436a608ab20ac561deef6f3
+GCD = 1
+
+A = -8daa6ab6a98241735c878f1b8c6a001df49795561216f648b0cf9455b1b01ce4644e024cd46d117d8c57796aa46e7a60e8ed51503d3f044b9c071217caad72df3733ce1f1e077aa830cb8f2f2006ab36c83ac1b17f02d631097d177dfb8bd218d6495a86977eb25c6742d98f55b6bdb330c23216d1aaa511d2f177b7671c6def
+B = -15f573bfaf3b1f373ed67bea2673d58255c6aad8e3d125109f1820a6370b6d53d940cf1136560bd59d76c77732b570138304d0d0de84f89892770dd4fcf23843315f88f882decf5349b499dc431dfff2967d5de8120ba02566e877b94256880a22bc6ab216002052740d10b1cb4e5c6eaed94e55a25f36daa5a6babfdba1a346
+GCD = 3
+
+A = 7c699aa2e2526acb7ee4886483736d4d665ef8337e61fe68773735478a155264970df364965dcd3f3472ead35ab7037c488d114f8316b25afb54c445c803a9cdcbb85bf68fe8d339080f04a232dc1d704cedfb11267a3588983d6747959b7575ed302c4c9a22cd930d28a4326034cb281fc227f600b582092c54b7806d9d7d17
+B = c76516579078a666a4d632bf19a15a47a1d3fb48b03c9834d7fbbb84fac67b4182b3d0521625ff7313aa0f5db0fd7ef5fcdd5c4067d97a947b08d77e8cee7c63611d7cfbd7ada895363402b73b2af6036a3036f6be80268b6c4eb6bd0fc30fde9c6575e9f31d712bca37d947ea2596f0c074cff08b68c1e4e7c62bf0942f5daa
+GCD = 11
+
+A = -b5d722dc81258b4d6ba87e79bf0ae3f191bf5139848bf113ac779d633db02b4562c6ba0a8d2bdfa46065ef1597d5e3b5be8568a9d0bb78affd75af4f3d275648145e1e6884548380160e36a99d709b123af2cec8c388bf090ad1683182636f969b8956ee7633889dca7cad3aec39a86ec76557a230443af99344e41e3d7f8d7e
+B = 3960dc516e526fab4cdab76232384b2a55b516ca9bc8ec1dcf63d06f71a70a572290dca3ac11c0709ca5fb29c19af4f1ae0d2b3b4fb8102a3fa751fd91f720eb7d9d94bb9f12d2a26947e037ee6d31e4455cf597d51e3ec3046c67a482a909b7865e6126d01d6993bd447d6ededc17bb1ef2f90869bcda8a950223a25033b1f1
+GCD = 1
+
+A = 538e4164cc0dc77a0db1ce24a591d97dd844596995036c592cbbf942dd7481723f76e5474eed9e21ed5147724bb764ba440fd130014c7362bd9cfcc8315b2bfad71b5238b194b65d96011fecda888e0b4213deed308ec1a36a3274002ddfb6d568c06a02f7900d182b00eee2f190b98dd7dfd1ae1ac1dac5a1812917369083eb
+B = 28c94320020b50021c3293320427d61b5e1e3ac44c763987c8637e3ffd826bc1dab1e077d3fcf9a0342849a527674540e2a704ca719583b1b4b0140f9e1bb3b44be8ba91c2577640e328f5797cb8a6b87b4fd572ae64496cc75ab6fdf69903d47919af72663d850b0e9cb0fdce5586b3f8755e26ca72b47066589a233a4058b
+GCD = 3
+
+A = -d7c9689c86c2c1aacc998ebfe48ed0480a9a0d7500399bc8bf6d29dbcd47d29be4ec52a8a559a042047661f5d08af1eb51f2ab7c12dbf5505eccfa9dac5c8e239de2f49adafd20e861e8ba6366c62a5dccb3a6885fe0eb87df701f969676f7b154f88e3390fa530a261b5d07e336f6587c63cf95ebe6fc6581302e48d641cf24
+B = b905786cbfb32e6b8daf2a58c25f786ff956937def8679f623b32ff3c1ab7e1f1453f192f47bfd76c1ebe513f3158e52d2925bdc710fbd90cfdb34df9c06cc8c277d33e7d9259a2c12e6875893c59d9d95998585996e14f8c30bbae0bf1e226d03eea2dc0d69b302b6129bc9af4e3a44c0d86ad913168de098fbd4fa0700da18
+GCD = 24
+
+A = 8a2acba391a75a2b7727d83f4e67631ec10cd74476bee8c882281480f44fea9408e7a1499b46079b045d85af502f2ecedc3e630da538f818db0858fb163c2187b0cf1b1f23c3ae2c273fb9fe668c14b6d9282710992c2d86e288b714a75fec1f329c74a0b0921251d1c47fa95c98df77bb9a5b159507d601e50f7a104afc4a0e
+B = d6beb6626cf585023a0a622d8ef5343cad5f57c4e0c2f0fc0c0e7508d49ed9acc0a7f12379f7df61a1f419aaec71193847ead7cfe5a73ed925bcce0097b964d09f9ed0a64bf790a44ebed847415012d809d9f1ed285a5fad05ed66f42221f91a004ccf203dad709de93d0adb1b1d9a5cb275b520a61c1366c849e4912f8c6e58
+GCD = 2
+
+A = 4e6dc0bf488cb214ed0f82cff9cd692233e78808e32be2cbbc066cd86ce29171475c4fc784f51b7b29a21d57acdcd1c0d67401860888e14618705fa78577367a0bf904520b979627620ae33045fbc66050e111fe7b53a99e0faf2dae09d4f177879c3874c8a00674295dd35f9a4b25ed1d9139a1425c56e21ac34222bc8011db
+B = -98461e6cb7bb527e88cacbb6a37750c0839f9458094522fbce1ab20982aed5f810f65b4575e820e9dcdbce1dc98e031a440378dfd4d820f7cf555cac796822581323e8cabe5731980ccc2d609e13d1c92e5fcedc4bc657b4f6f60f0fdb21eda413e2fe0fab5183d885cc8626e2bb55acb3e4191359461aff4e8a91d1125118fc
+GCD = 1
+
+A = -ea19f7f26056f11938975558c0dcc901cd500df7c7c359014deb5d537f4c979edc1e176046e1b0fe444adfd70210a78e6953ecdbdec7f368283a7e658e9cc2cdf8e8b14b638fcea285803ba9908dd8b176622cb414ae69c18a8ae12e5693feb397b5bab0788922be9a369c8423a445650429925e5ae3137ce1172bee4a702108
+B = -fbb016ebf67c48f6c4bc33f252a97888f31b80a56be0840ee9e32e704086aa90171a1fd2c65426ea77ef6663abd6bdaad0bbe7096b8a41b2428a2905f40a1e85deacf90ef2ad75c2303265938c3d728f8c18a5b7b6ee3fe33d197407d7bcc8391f41b78b0fcb3404e59b22e3144f6418a61141c21aaacbe9953dbd918f9dcaec
+GCD = c
+
+A = -c168e74a6cfbc43ee11ae04da1580da40f954a3f87247a1e9cadd3468b3aaeb80995b5ee3208a1e85996b895fb242f0ddef185a2d5fc4e7f4a5528852027a14a73b484eedc45f42b2ffac6ec917542b31546f1b6fe167d65e94d9ad38936b5c232ad8ffe9a3ffbcacab9c103829d24c950057b2aa324b549af1486d58255b487
+B = -90b42a0eb01b4903ddfb4a014152fdebfab31ae3e7d92da65633887e780a70f6f152cd155017af87ec2743d58344d30a422d9c7446a0b3f29c9f7925380da19fdae29dd34fc1be901246bd99c90c15fd8fb11704319c779b1ce2b7f8a7ee333e7512344831ef7083ac0129ce0123c0bd4e18f88534cc05287afd1905f000c6ef
+GCD = 1
+
+A = -79eab93b92fba169951e29a88b60ad572a167ae546ae563037f0e8888286a615204f3c7b3b0a43893917ae208dd33403ae537bdd92249cc756715e8421dad70acb2b67f1a807f0e7f5f5b8bb23f9d83817ebbd8bf5f89d0175eb72928c3715c693e6cac2bdd711e2f1fcf0cce857e050102ef2d011e03d5a153d9e08e8acd629
+B = af6d4c5a9f134c9534476767601f9acde783c89efa3d92d7812907588d524f5c6cb1a90bf28abac8d59d5223f03bcf38451d75fbded9653f522fbb0139df22508e0bd12dbbb6a85dfb3c94d27ab4ad28f91e7c514fd24c88829a1eaa5921279197d37f4f02c639acf2df054845a7fa70d840dc04d119b8a1e34f5a43d83b1e58
+GCD = 1
+
+A = dd98fab0bf32676deba2a6445b5b26e042e74b5245dca2eb758ae4ced364d2b2b0b9bfbc80fe83146f0119d1ad96f15ad59f743ce1ebbeab4ddce88da6077d761fbba548223ae8508ab43cb04d6b4d8efac47ccc31dafeaa7524d8ffe287ca2305ba6df9dfb9a6175e0a89543457fd2f7bcd8c10e42602f928b2100009bc4f63
+B = -cef417a8f1468dcff5a7b53b37316e64d8bac3cd517784c732d3170a07fe268e4cfff7362b82f00cfb7616a014c1c7c42a5aa2cd15353ce692e75d1be114167c0f898bb43309f4a82a81a2259bbd0c5b4ebc78069427b4d01e15777d1966cbe01c5c7076fc840c093405bf96432dc4164b7e3f0e3b8ebb561c009f172d965cfb
+GCD = 1
+
+A = 7f3ea13b447818e00d527e160643649c8e58d5003473d75c5bfbebe2cbb2883d0e32e8793ed8c20241152d2718f0c989c041d4592f1901640a08d4007342fa1aefc0354a4d900c3846a176801d01373999eb7e515a9092168e832cbff4f1caf76fa5f30407d158b10bf47cf058728743c29642e44a5f37b4db66ded9a14ab6b2
+B = 8d035269d413dc066d946e34fc21278c3ad5907e9cb2c9ae693b7565b4978bd4ef527112e2ecdf20e0655b728ea51cf6b2564608f902ff7f03613775f1a36df2008408689b1c05178c36468efadb0383affd69864e3d8f8889ae0b223e1553115d079fddf51e29c5ecdc4abf667023cffb0d98070984f75edea9a27473f3fc2a
+GCD = 2
+
+A = 2d30345d173fb6ba3f9f9502f5a177bd91d532118f2464ae88ff50e595acca7702f8729a2708e59ef66e557c37c0f950c61cd9ec88e44df24db7d51cced07021235c9c873980fb8ae5da3e876d4c3a12f70b35951d3b1ccb30b9827d6616443e1bf24cf47e17690d2da81454ba36759bcaadd9a0db16e6987fcea8c134e60b28
+B = e38335b08b9c7de3d13c956175d4d1379e46b173d16b5b583a1b880ca32a3316bea9a8fd761418c7f44dc9709aad964787b51ba206ec164d035a4c03a5276090bf8ec275aae641b6d0c6119b3dd441784d745dee0061d4a12e205a13a8404d158f3d857008597bb80e9d567413450b3a2fb5c54dfe0c89a16f9fdb16fb6d0e6c
+GCD = 4
+
+A = c7584c68d7befc88830468de6708d1f99aeeebc0bd2f06c270236ddd947eaf0816b2c19e18e3f065ba71e6992b9809150afc32920cf744ec87805aa0f743dd78772f1b90187eff89a8689d2dfb76761ebd5fb111b88fb04fdb32e443d8741be49dd7077cb98a2ea9a7fdad1dbecec1062c4b65b15365ef2b6a77bb64c08e9706
+B = -d4b6ad4a44fc414a86106ff6182f3cea4938fb2bc977e134dcf60b7e44d3ccbfb89b21d9c7ab9e0f050f674dbab1cc37277d2b7eff9a3583ea4bd20986cc7f685e4f1031cbc9f61f71938240ad8a98b5d4116b31e774528cdeb9098cd69b014066d27ddecad6f3a6939a633b61628d4085ce1359c9bf06b9b9cc690aa8fa8492
+GCD = 2
+
+A = f364b05aeabad28e1002baf8ee7a4b09f5271f8338e07d321a76760051ae7460f72f13569bbbcd994be653e1b248142abca49222dc1f08cd2690de35f02b86833406137e091a14e89c7e9a9d449283527c13d0f2c531280659a00170f2e558c5a37c87dd1430a614ade77e78c4e55919b7138e2880522fa6578b3fafd2223930
+B = 363f28c9944a8e044e418d5b0289a282e4ee4a2de19b0f16001609c36b202b54825a2cec13a7e370bed3ea2f417aa35abd2477918127f3779edbb168bb86e029c7f006753d8ac2bc365cf959b7b9248b5feceec9a6156fbc8a5871259e3b238857ba10b30c98266259d6735a6aa8ef84dc0f4c3ce2afc2032b10cbf33ba71a91
+GCD = 1
+
+A = -753dd368a04b19e90657d17040f3402a16b9089858d577ba4f81cd74c6f5ae3262e41ef4328c28e14ecf7d1e896383ff2f9d0eda3bf9e43d063d96d3ab6dd1d298035404d30e100400f2fb92d741cd438d2a9fcf4074c6fde453efa8c2e348cf1b421ba36eda318b957b0a0d4bbe1ce879de0be301d856fa8fa7f510fde826f1
+B = -afc3674cfcb1576dee479d12d3a07e2202931b43748b3a01664b8caffb3523d8af13a1e338400966c5f87e4f234051fcf7395d31fff5e40cf5f1a967f172eafa3899495f77f9bb9239baafa8a79917e01d04dd03bd1939ee56db4fb1b70ad6f669e55f9071fd344eb7139c3754cdc27b5b4a6f741c3cb4b54cceb45a69d9aa16
+GCD = 1
+
+A = -56a51db9aa144a698983f98f2eca90cf37a3326b46a8e8cd3bef8a37504575b413778498c74c70aedfb9e039aadfad3aef06fb3ddd4cc3b8a78e76a88a5d97e8a461284179dc105e7e3f8790fb616cb840d9476ed172fa0258c90632f869ed109beb77d8f4b3e1fa4c03945b5aa772eb037c06251113c24065daf55e794e6d6a
+B = 7b003c772c0db595145e3ffef7fc2eb2ce2ecf6ae0c8a0d3af11d2e43524d7a3cb70b36decc310f80a7428a5c7fb0976f1659e6e43c7aed643f800085b1b0925479775513ac2a24c407dd8820afaea544a86e51e4a156ddf397e9c5581783ac7b33abc57836127d84cdaae847b32842b9bf99d7ba554d0f34a37bbfe847ad317
+GCD = 1
+
+A = -a3d2098694b8c8a27cfb0946b007e21b528a6228a03585a919ca14f37c6b454696be7496f3473345894f56884510724a048958f88a0ef03f5edcce2dffc95579d7afe91fc756466e0b56a4518a724a5dc2283e520f95bf1c0f9d1bfebde2151a3423a356001111295810b530f13fcf8d5b02294dfc06b786adc60c192e63558e
+B = -17080aee3412236e396babdccf73459efd7578fdb465df2458aa08c4198bf4c5a99af40eb8964887e14bd6ab0da5b6f11c4a371933b3268c4e74878e702ea8c6daf374f6dbb4787444ca0fdacfae4155b9d3408e6e7d84145a410e115dfe6e734b0dc7b0661efedf04bf6f542980c4c1618c2499a3aacd7d0de2f0ef605b64af
+GCD = 1
+
+A = 306a0e87294260caed538117fee9ac617a96d316b837249acc519e893ae486449af7bf8222f10d0472ec60aa90d19f8b908a1fc4585b128cc57e6b878d676fac0a1b49e6f9ea685425139fd77ad9f2a09e9f5ba126e4c60c2948493c00dde87d17dda784b39ba2e95bf4103a46b12a7f456f097ffb2fbb59bb5e5ca668301a8d
+B = d36c8d9b20cd3a12be94cb277f78f2193f647c406fac01f0a1087e531222298edb76305f0ed327d32cb42fb1dadc678795cb5755eb6a684c35575a89773c8096cf1741e8cf1345141737cc7af2cd5da38fc6d3c517514d19defc16cf6df692c9e9fd8160549bd9279610d65661c88b95b8de9e817fdb5a3ccfa934c6371d77fe
+GCD = 39
+
+A = -d5be92938f9f1e90f41cfcf1be9ded8ad969ee0f79d2740184be8886f4b3331487e84f9cc2a78e71f62c0dcdca9b7092b5060650eba59554cce56ffadc2f9a9827a0e4df250d23abbf3e887323342b938bd99ecaf44d8afd01211c350d1bd2cee5c21ff43456f3dcb467490fa18ab92aaebe1c3730f2e848379689536b936a28
+B = c51edf7bc148f0ea88cb4b3d112e1f3048a08b9da8c196896535c2e22b22c07e8e5be63f6fa18af23f9f25b7c7e8c9bf3bcb76da94ba82f8affbecac8792e03c5fa2e1624ab999d192a3266c8dfa0fbd53938a6bba729ccdb8e4337a75b6564bda12b4b4b989e470387dd19dae5e9c77666b51f07cd9e28634ef48ad4f4d11d1
+GCD = 5
+
+A = -60f96ae88cc77059cfc3cfdf10d82c5969b843d6c76724243c738cc55ef428b4f9d321a480a3fef80caf7707ea10f6b2854f9441a7a77a1c7d8970dc18cfd03c519ef0950e2914198ea89cd188f633d3a68f0d1cf3ab5cbc0bab9feab6a9e57c191b56f67e7540fff882ddd60ac7c18efc550f101e14d4ecd52363dccf9552dc
+B = -239a2f67237c916e8b6f9b89ccda703ee26c79211d807f396428f1df8feb0bbb75b64de95e88beadf2a3fa958aaf8e61a1b3f96bb3184b657c7f568ba189b3dc08f07d51e50f7e5117a02c865aae34cb3306f49d571e48d73d7916aaf68862e68c16246c2a0bf0d4ca55769bfa7da8bed66d2c1d2c7e6324a0fbe693935ec773
+GCD = 1
+
+A = f49e3092c3ca80d325df2ebea6358f449d47fb27569e1f165976597f003a3e292658d296ef55a3d0b7fe880310fdc5841244390efd4f20910b23862eb3390b42eba8651d9ede27b2c440c3665c7a84d2578cb82a97ab53c49d99d95e6b29762371cb485f6029eb8ccd18430ef904422482d3d2f2721128b9f3f6242d4af92401
+B = -bbd14b4b3fad7eab95114bfcbe44bac79f7055492889f9ab199daded5e2bfb0fe73ba311ac226c0f79a52dc6b0566a51bd5b52a9d2076ead739dc2122e67faaed5358eb049e51ce26adf49dbe06ef80bafdafad83c53c933f67832f2ccdc6dea345feafbc6a9f9d2ab755b35ab691daf8affe2993f8b56f51e292e99f5baab7
+GCD = 1
+
+A = -1591b52098b6fb6e18fa9969b06037cd5a5b2cd9f7bc834e2f8f82097a63e30d8de0b81efd973f0d6cc3f62ad14254cdbd087aaad2c051101c99716095f2c3113f046aced142ea90016124b529456ea7708ea49ff81f5f618d3cd49155a4a68b17bbb7f17902c5ed3aea75222c90465911dfdf01342668891443c90fba2a2371
+B = -356c8a4982053aeb6d34b250b0e20dd25cab372ea6d9e98f1f778d2d856f363a26706224d81a720554e4ae831c4d07ec4b73626a50a83467253b1643ee6121df28fd876386a0c582b8065bc62a74850ea962ccb2d777a43a02751762099d60f8993e92deef694f208007bb3577b98b2ef373d2b0eec1a557e47ad24ca561a151
+GCD = 3
+
+A = 855c4c2e3875fcef52321f69a0366e4bf91b1258a3b6b3226a3bcf4c2c0a8cfd310c47419d1fb30064d23479a70309c73f916b57966eef448360ea39a7c1b12751ec19b35bca228366e4821dc608065ddb8acc97917d398408d3a734d15e25c8adfa0b966a940670955103a4226d5700b29d113b943c58c3fb0ef0981c0dae2f
+B = -52a3a9c73b89185d44016498590922155ab7ec9c9554ba06038fc04e3d4422450ad0bb0557627e46127cfe1a657c41c87a91480fb157e9bcc19d1944346f864cbc5a93864add528142cfcef1c042e61d63c2f8fd12d250c7a0526d413149b29641ee7941c277e211f5518ff572cf5b025b495c3c8df10a4a66af6684aada670c
+GCD = 1
+
+A = 23dc368c3eb9e042546f6fa10b87e7eb945c69eb5f44f37310b68d97e60d5f7401b69a754159f8ae4dc9ac935cd08a827dd19fb2ea5d70aef9cf20f0e4818c596c2c7a0ab607e4ea8176e3e13ccfb84871c0d0aabeb7de0d130d50be98cf44ba6869c588f08ef466ea8f3da672b6b509ff5ce31030c9a9fc4e4eaa6708771d44
+B = -5b25674c433dbdaa030898dade6bf4fc8894837045f212ce3c06d10a8fcbe1d67c1a31f9bfb1aa84c00380208f3bcaa8f55ba7f2892a39a0c412bce55d08104a73e9e699e61023ccf53a524fb938c9bbe0b83b88466522f1aa8c41e6720d3b016a913ffa7c3d27697300249b7923ed55774c03424ce455519a007c265d898aee
+GCD = 2
+
+A = e816bd876e1ca98c2e0953a55ec4c5f22a0d6306b26464d5dca8485efd25036a6e5e77273fc215a37a828b80f3016da6086f63192e0962fc80388b0c88ffd3945eb60e5f673407ad18c4e62b7cb5180f8a961765f08c552950d45ba3b63e24939e1eac4c509a3ddcb4ee47446f56cea9706834249710dc47241dd49147f2cadb
+B = -babf7052e1977b4e6ef4caf0065ae49375021c3cca77ccb4e12dc62900ff3038e78b823078e964b653efc5b519e26c7cb034719be94a69635c33205ef899e3f994a9f776f294158660a959385620846bc2211455f981f34226720913016992031a51155d4fcfb964f27ff3318209a7c5ce9433e38d803adcd01bdbda5a1df20c
+GCD = 1
+
+A = 4063fd1e25f259da4aeb111db384426348695a8554818ea9ca54d234e0b19405b30d75cf47b98293d9bfa2660f5ae8ff92bf663b595ba43fb45e59b9c8d89090cd955a97eebcb7c2d72f361c08b228dac2992899b80ce94c61c9426f0d2797808554377aa6f4f94839bca1ec30bd871c4b077952972fdd5624466b22712b606e
+B = -b4f93303a614bfe88241df365ae6e2b05c2af23ecb547b45155475d7e329da588db707701ce10eb358a829fbf040e687389cade3881674ac7cd24f3453bba830e97b6196e1df2f9206572cc732b4d21f380a98276ad6f353d28b275de2a8f1b33f2e0565cc0b3e4e5a6502b78b9315ea711a340c517c2e3501a503da1f28b199
+GCD = 1
+
+A = -21dd649566da91768470548bd925e11a7c24a9607bb275ed9ddfa34f665fb4246f75b02932d152a05434a5df129ca107b50c353ba303540fa569b93704f0daa212d3b59e9645437119399f4f7d37a1e9cf1e74d626cc0e79eae91d8d487095ed5ef22e0d15a8aef00a6db5f0e50cac13225cfcbe79b13ec05ccf453a4c8106e
+B = -c8e9a63718d59605db093a1284dbce0a0e6128f00fab41f86120b526b3569f79af2f9aab1c911d10f270035541a5fe67311d0a63802650e9baf72314426ff42e8784cd15fa49ec347e8511e2aa246371f7bc035ac33b3cfbc8dc76c7d8c390205ddacc4c146ffc189bdba0dab0f31e57efb8156cb48bedcd5e17a2418b687b0f
+GCD = 1
+
+A = b14b6fa2d09c53234f0594c9be1d1116f7f4457ac2b94d8b484b0e27ef952475528cf0e6d18d3df3b57a07214419150c5186540f94592828ae01051b72f34e9bfdde67c0f57f37286e7a0cbf661c4a8849a82f8e3274b3e1fbaa7e83e4e12a6b97d5e3c1d279976b55fe93318c69d1aedef6ecac5f8f5fbb05d2ff5262dbf8cd
+B = -f07562307b893675106cb458cac34e850904533145d58160eb3cf593330969647595881a9dea91d37d6d7d2de8f1783fcf0fc2fc04d59db604d1fc48fc7a2fd41c4b21bb38301baf24b9bfc5b4012fa96088ab3687512a594b6a51d75355f20be8fbf1435e53eb7cefa46f78204eb19a592b5094df9f3f5a9633e85427148b7e
+GCD = 1
+
+A = de9a0b8674ed240b507261adc010c59a6848a863fd10ceeed6373afabac5fff2e31bacbe1ccad29d10192833c873bd20d4a14df4efa9ffe5ae5ddd16b631a8a385aad345e743d052e9559a461dad52596e4307ea8e277f59f9bfaf330fde27ce1337938f07bc3efcb4048d4b7acdb514b7fe06fc37f4532cfceaa16da49cbc81
+B = 761aea78854bccf7eb0e9442a67a4873759e693c9f7626e49124b27518930e67a700b0be817e801b4a4614351ccd709e4a665a8c0579264151b2419715630c8ca53d6f9ce4f597cc045e69761c01f5429bcc6597b00d0ca92430528dcb3bb56e110466a53b290f1e1f3442efb7e26ac6f59c1aa3dfa7415895332220ee34e95c
+GCD = 1
+
+A = -ab1162d98a163a84f24e46191f2a43624286fc535f9c5a5a17a4931cb1105bcb618c58a79b788fb7959a649a5cc0d3d10dd990cd0a5afa8059de2abb8acb067466cd25c1e433c6c2fde212c08cdd67b4b32030497397d492a684d94dd55b807a5e63c01a4aa938e8495044739f9710a9de685568ed2a9f59b06e1cb501896282
+B = -a5ec30558efd043ac3e80296306244056d38d792a29f2113be809df1639e883a80cddad293b487bf39a3fe60f0e15b0708230be27c297bf93194836b9b1da04f16fa345a1b898d5e68752c2b031194a4359a424a0b592eb4b07f53137ea20c3436606773b2cbbc945bbe51ed6e838f6df398cf55733aef9c66d9d7910b2afc62
+GCD = 2
+
+A = -d2a3fb79378be5427bb771e233f32872f692109d39f4f0d4ae9f831dc7c3b8957bb96d71399f1592545693d24a77bde6efa228694d08fcfdffe3fcbdcdfca2e25aa38adda22d77c95441f0e80ba7773efad08548764fd83172befe3d6f3b73df5a10ca75a13947bb9a93bc20652f7309f7be24493c9af7eaf80c4bca45c8a818
+B = 61b4c66345f0fd8ddb0185767da295baa22d51ee461879ac0b0264fbb09d2d0e59fae902625eb8d7af338fd6e91fca3121c699d5e9e5a20b8992c6295abdd17cc311672ab014a83dfbab26bba482f7997cc39f6e97746c8323dbd4026c7057a67ba248a721ee933441f4f716ad6ac4e834fc5f15c8ba38e5e62690c3faee5591
+GCD = 1
+
+A = -1cc11607588bdb98b926f330a8cc449fe85eb876e138b4234d567b3e8dc9a2ff3142181069d0da06919d782e128ee7ce0e2e95dd201c11ed19b8674f82dea6d5d6253f7c705378f0110f6ceff2d72f0f6e8e62c3351ab84164187630db43eb188775207d27f9f11fffbc70185eaa57d1dbee64aabfe8ba8f7c8b653737970ca7
+B = 2410a6aed9afe750b328610f85ad82fe7b93e22d3c57f35f0dd2c449229dfc10ad9713a1b1756c02170dcabf735038e4212bf34f28749487e9b4d1db8715e7803941baf034f7868ca89e76a3fcf16ebe5e3ad87444ab40a2cdc4286c9629798a69f79c807be9c86fbf0b93bdc0728f2a504ee5637a9011965c85578b5187c4ac
+GCD = 1
+
+A = 961722f18949e64fc2b37ce93b4f10df539f61423fb85f6709e269429eb582a9763406c2466bb499d735dad454726a363c3e54c60d668abfeeb71eef5b636c7ebc047127325ee717d9dd7e95192eafe189344ebb4e19fa543c51d937e9c3adb0fb8986e663840ac377a02bbb9a942ace6c13a78fda252c70cc9bfab4d30b75b9
+B = 65cf045c2ebac15a51f54513153ebbe631419aa7bb0010dee619cf2bed1019812f761cb1ae2195200163d96c1a6eda1a5745a18d1474c351eb680829bb604c8046e5b5ba21d3bb39a1207f3bd14c8da8c0d2538f89dc0311a646ca6faf11b0e1bfd3a21a899890bdfd13ee25238e8161284d7533e51958ea5c5f1d897d9d0236
+GCD = 9
+
+A = -62df09338845dc933d45672198acba7616273acfa347c87d0b588aa1fedd909e0939272970d0204b209a6ccbb361d14c1a55ab1396b800b9a34c1135950a055af81821438b8a1a13c64e2015d28870555291d1a812fb25e25c1454d469627bae7d98a5bc4b28e0fc66fc2120933a1f20c24b0506e06595ddf001fcdca2604777
+B = 384d65066ea4300dddb8aec169ef23a2726258b47ff8f52293f959917738103c6dddd0f80b431d99750b22f66cafa7a5813fd71ac9bfb6380fa65da1feda097fd2c4e7786e0a188f89ccd6b24f06ffcd632285f3acc86f0ed2bd8a69f6bc39fa8fcc471dd22c411b6b34e61bd04a288f3b8209683db4485fc2a6b81c55cd154a
+GCD = 5
+
+A = -857f986de3645f152e0e689ac57034a8b31d51918fcb9a8b3d6cffb6c2529ac4102e9d1bb1210893501e7e305771411fa93b92a459e1406d7c9ef66890a2ec5cec75ff6919bbdc813dccd2d987470ab5f639943b5678be5e6704e1a8bfa3d3b077dad37ecefe34cfa6591b900b9c0add33f8bd282735536f8ec66875f7978190
+B = 16c0adc2d3b86fde6f053d1950b83765a9bdacfc22df0a8bd6c56361c1d24e903e5d4590dfbc64c73ab6333a740055fd9ae97ae476d729f871e0a373c4bc8479f01df5edd7e45a96aebe40b9089e6aeca3e291d87759d5aa371139d4b95ca5ae9e248512c6439288358273a918e0714d5016dd2a7bfa4502082e1022e0c7d92
+GCD = 2
+
+A = -1db55d589bda08bd7360140d0ae579a2706937e0d0e4ec84bc0b5906f5dc33a8267ef04eeb3bf99d11446d9a1818d9fa61daec41df466d129f67a38336e05c25de2f7b3034e3039668cfa7bdafd23d0bb81f03ad0fc1bffd152e89011d7399f1a3ed3aa03e1177657d9496d75964d97b13535818e39392ce49f8c604b8efc49a
+B = f685a5babe5a5ba3031e643ca5c721abd1fbda6c75997f86a994a4da1c38cfd158462c8951f97cec054c86b3c4b082fcf8d55b864f88ed74bf9abf61f6cd49796a4def9310eae7323d7f642cc3d6b3da45bfd458e082da0ad92f44948f6093563218946a4c65778a4057242a4905b00103af41d5f793eec54c04dbc9c8793fb4
+GCD = 2
+
+A = -6cabd38b7f13a98bd4e1962a4766bb29fabda331508ae24bcb63e97d6547fa57fde43b4ec07b6b5dec01a0974a7d3e4c5c2a05191b41910c9df1cc871a71900c9d50d81b0aca3cfc2b5019a151b1e80b7b5d56dcc520de314ab661339238c41c6d70fa5bddbc9387afd6a1c91904fbc7634381b431c0a08395d2dea75bc8d8cc
+B = -7b4b05b727311395960b6826c4defd4bdb12bac43ae7e54d631bcada77a61f2c3d10383a0075fe79fd297bab0dc1b03c6820c6bf926fbdc0122d7b9a6c478f20aad3c4bc14bd7a0d68b2bae7d2000a5e1175511e47e363ae2f50d22d417eb2a1f8e61ddbc2d6be596346844e49d893fffa8e95662875b56c0d0becf67301f5d5
+GCD = 1
+
+A = -24f968b4d5d3d1122c1f4168be1ef884218c8953ffeb07f0f0905342c4f6c073b99e51ad09f432e9882f259da5cfb3fb3c420cf8c3fd9946f4a9a43e367f4bd958972b6ae4c28e730d9f49b16bf1e70a0d1f0d6b6bd68761c672708008d03540062e6493bd43aee1cb4bb2685489eb224953d0ee2f8922bbd718536b19dad4a8
+B = -43d82a51c59a02f290022f399f275da2e51c8e13c214f04d76aad258970d3ded269475c07ea8153c34503f25ec07742df602ef055305c5acc7efefa6474c205707cb41698c3fe409d25c82fd0bd6431fe94fa1b456123ce77cc5d24c5bd62dfdd9cd07db3576689a26d0cbb095a170c1a37654e4fc334daf5eb98387ec4a2acc
+GCD = 4
+
+A = 636d11711f36e260069cb73fa0c1b2aeb06dc1eea13bf1ffd60d07a2f362d4fcc910288fc80725ccfd0a93bdb3db13859d8eb06cc49d21f1a4727845113951c52d800030808d55e53c8c9a2880337dc1a3dacb0000e34f0f6b0aa30c16d1223cccf11811145eb37e7994cf7e2ccc88bb240faf25d8de9925f7522f46fb925319
+B = -bcf2d134049cd275476e4b255a3acdf5d84b3419a932ea153a4faa95d1ec5578e2825eca2cd42b0bc62d4553630e2539ac2a11e4cabbd3d212f77438f8ed9a58159c262fc8ac4c5e3574ff23f907f043a431a9c5801f321c845b40214c3ae5edeaed5f4db8fa364b76e0c5ca7a14879f629030ad59759d3c3426088dee036ab5
+GCD = 3
+
+A = -6b0efb5649ec830c0f46c9da3973eb8e120a8ba25738c8c2ac9a58d8cb74835941e6cca4ef6086a49261afa28c771583f772a82d4e3acc26bb4f4368c62d4e6f918d49ec463e8849f7e06dd77cac5ce257c45736c789a5102f31401aac9703848e7e728015767bb5f46c5180688b967bbf1326cdbb5a9b8f397e7e169e5870a8
+B = 6c556488a56d178367a48de914f3ab7c695c704894f9506b17661cee6d6afc189562a425c3f21384438a9b5fef4dc3eb1e845911f17c202260274aee1d535cc7e90542cb0ea978b3201d4650bfb623d8dd192360f074a19471970f299ab59b110bc767d9c0bac330f8234ed2f5f17b0a14889e3975047b3f07de8c99ee6fc7ac
+GCD = 4
+
+A = 88403cb3f6dac3516fd9190978e668b9e76b9180e6759936d0d744547b41326621d9b5e3b80767f33f2e0de301c918faf56f0203f15a2996d86d5d1665548b392cb35ddb1d52fa31fcf376de79daf7486c453809d8addf1d8c9b12185af90e1d7840969bca66673c63061bb89dadf8a11db77a072061e45415456293e5d4ae9f
+B = -5aaafa59cc04fab48e18cb7edcccb3e2db5858ed4f2a4b5909c41e6dc813ca44c74c76afaf669d03df8492600120b0eb8fffba9b19e39f8aa6b66e9a34b8506da889f7ee7aea0a37506fdca5953d55730e4a3fa348b3c5ac706604b2b2559340233d7b5135b6e323656c6582e6acb46379a57be8e07d17d79e8710152b28d518
+GCD = 1
+
+A = 947dce7834d19fef53447018c986183e1c51c390eb823f12a7364b4d9c328ede24fce7dee0d0b40d9fc5099cd5e6f4550f16ec7066ecc8bcac57b46c7a7e4359773499b0df3c79883cf660d41b72c0da67782f71937b961532c2422e42b8a98647ce985868949abf6b702e3215a77593bb4f6e92db2c0c146008468679a23f93
+B = -784799efa56959587ed3b46901ebd76a5ab7344e3a4e2f69e8ed2ea3b21332e37fd7ee403e2244b411197fe0d95950fa11caa1feadbe145cb538652890bc1bcd526aec7632e19fc05ff403ecdd4ecfd919b7b322b69ff11475767cc5e32fd0c6c2a9fff4f54a474d4ca88f42468932c4a0dc9fcff887159a2adcb7caf253917e
+GCD = 1
+
+A = -55e4d28b74ec6d553d1b364f4db88164a5f6f88ec359fcc0dc46bc393d5271d4b5b0744a70391df7c26a3f05c65a6786774d7cf27327fd5c63d6cf9fe523ec0abeab7c50ad3a0bc7722f5a981db8a71bd8d662332f96da6cebfcec6c613f6801b0e7e20687330951cb27bca867bd74a77e814d9125400698ab727f044a5e8f5c
+B = -9a822fc748950318d69565cefbd036a36d1b80b955fa774d3e129138c14da4199c1a235c0cdedc7b37b7d6f49fb4c50a3bc845380795a1e9925f5c8aec94ccde57a468433205d10005246aa1c4922249e8c27687713e2523db9d4a95cbb5d3ac81eea46e6a0f24fda8c34feae6e4014b6c9f11548c7d560bd3e5dcd7b083dae3
+GCD = 1
+
+A = -f3915579101ae26fd8a042b8966e0a4ebb6f450f62e362a6e80c780941ac5435c7a25704ed63af184195f017424e1b9a6d88865950df314d865e2842c4b0484b04c906cd572910d9a2c1166f42f1a836590993bcc0e8a45d60a2d6be0f7cf2e17b11b0be4a7e24e41f92603a8892df8b92617b07d84858cd381f769809fe394e
+B = -3af27f228fabfd06ddbd22bc7611933e7741a1d1facdbcc9726315e2f22daab36bb9cff0e2e7fca709c66fef35ff6d2b33fbc3a10de6198a8e9654c53728d6679dafbce191c14a1ace250d96e92b46cee1cbe4e9afc8b10cc8fa17b296c14a7bee1c22182e3b7ec42f092c046fb80168a802f55492fc6a0ce5ba3b70621e4886
+GCD = 2
+
+A = -1a9834a5331ff1b7b94ff2b8f5ca2418381763ca987fce6f13c8921741f421ba18e45cf22ab7bae201c3457b0eee8f18c8fbf740d7b6b0c135f0c0f6be70b4f89ee3809c90a1bceea7db85ef93870a2ec238fb27ab4e2ed001b81018bc8c1485e4e75c0a1dab521281422853285b2a142a578196de4c55593890d5328df92551
+B = -4d716c7e05dce86ecc8aa5d44ca078155571752b61d36d97db2d1090bc8cd79310ef60d765a2c1eaebb38191455dd71e133ec8d6a21562cdb1e5ffabb71e95a953bdf849c39fac7aeeacdeaa654ae2fbb9211b915fdd1210bde92a8a468dd959b43fb5cb8928ef388c8a5c1cc864065f0c31f2ef65e405ce9f67783252da1ed8
+GCD = 7
+
+A = -bce66a48544d69e2e5c5ce2588cd3693476f7272c67b5eadb2c14be8f9a0bb086261aa2c7bb4cf87be35524e53ff9fb1cec7893024dd1487b12722f5beaf6ffd358a936f6a43944c053d64b73a340f68bfba9ae9f4ebaa1f6fbb6c5b1d1a0f674e5cc34a7612f2d91d2ea26d5f14daf2afc6ba3b85b69b45b693347bf25e1720
+B = -d4e6369c7aef6c4ff6245a801cbcf984b60b6242d3904dadd4021b3b6ff7614102235aa3486c3da1d89f2ded9a1f507a47511805bfb27d31a702fd79251b90e797927a9f1970780ba80f100928f782e9f894100b1992348d64037e869ca522a3f928e43fd8dd69a21af0f7722e36d4f1876ab67a4d63d52741746256f68bfa21
+GCD = 1
+
+A = 2f9285d79eaa65235ade7169dd1cde738e9a70eee623115497138d95fc3ba0b7160876eb3baf065d06993e26d82244ba27378da5e5df7b1208df3b49c11b516fd0e28b30b618d09e8fcbeedae1479b848d0332e38a77a8337c9ee0fee0b5136079e527fb4f30851a2c854baf762b5144a9dfa7c91e6deafffe68aadbd8a7187c
+B = 2415f627334139d33fce229dda858f790695d936d764ddbe8616d0588885456d41d4f6ee5988ef12bbb196dcfa87172824aca0210ae0d1c86ba429ed9811c2cbde2f8a6da5b27c7a2ec1153d8b59ca4e17b02b9eace9850e3ed1e10c2492d7856b0370241a9178f58786432cc492e9d24ecc7c197de3947b857bf6b8630c8a81
+GCD = 3
+
+A = cec5427203cdf62c6a18a25e1989d6c8b5c68eac54757010294c7d3c312a70452840015f22eaba11a9582d01e6f02bbf0477c7fbe8f0e85088ccc6e64df24bba0ef05837ce6394c5a2da76fa18517e5379bfbc007129f6046027d4600ff4ab1ed2201079ffa77741a713df4b21206373c0a00267ecc2d27b7fe6dcd986cfb33e
+B = cdf34772ca52dbf46dc9018f74c3162f521dd2615a82604e9f6203345236d2f8d7eba85b0d49f1aeb3f660289899b401f01d56ee1316df385c4aad81d85a0c66d412d88a8e4db2f5579c648619ba25ab0b118428e77a6acbc3b234cc6110df96f467260880ee1d2adedcffd5c2137c2845342741337bddd9182507cfb1b17dfc
+GCD = 2
+
+A = 2faf9f2f6eac0a10e6b0a14df59a3a13dd9f2b1a19b2064a38eeda0b8c4d70535d5b6d16ee8cfa115079e0d8677c394efb3a963ff67672c4151a1512741efd5fc124947d13d0ec1a34fdeac999b899f75e10451b3f73a2deb3c6b216ccfc67c8f3a4f588f239d97363916587d109ece92240a3db36245a36725d35d6388c01a4
+B = 23bce02f7b7073e037cccce224f479c689c66bfb5d13709ce2b0aa65155fbc27a343bd2c3bfef891b70391629b05ef5bba2bfc5e0363f406dd3902cfa1655129a5423334537ee07e7b929840a8a0966bb5879ede7b8c7acc6e526bd533be5c0271e4a8ec574cb20d6b6c5ba3aba6b77bd7940885ba6eb93023e737a294d5503b
+GCD = 3
+
+A = a6e08d945a2474842150da5ad2070b2005910429ffbded511f808af86d60cbc076f3850b57da719fbe1885bd7f1afd58125ac9d35276a9ca28e9fecf542fb4d20878ec00e3509046084accbdae052b29e4c573bec72f8a2a0228f93e44e91f233bbaf60d45198a9c2aa0cc77649a2b22ee0bdece8cccf9b87754247599abe0c
+B = 1070bdb20f1af7b35dde9e5caed0a216b21c08bddcc01918fac7ccc5edc1a895a1ce0d733af0269db273ddb72debe3998b4af21d198630f5226b03252e0e4447f1ca04f7757d25ae950fc1154c461aa2a38d0740f0c7f821f75da71d7bb20f8aa2c1ce4c53163e030ea3ac74018f7d64e1251844cb0ddaf8d5b7e6c62841b4d2
+GCD = 2
+
+A = 2cac3f864ec1ded24bfacc4e148b32695498eeca74015dd20bcbcb22fecc5aa1c3700a65dfe821fd0d9016c3d7fbcf2d85a97f4f32f041d0cee7a524e97390eca65f508f9df01bc41358b296b3ad84fd7f07a56fa6600b9823f983a7abae28f019d25bf2339cc58454a7e5948708cbefddb76366ee67587b2b2ec774660e5162
+B = 4849cf4106e3f6c994dd0f9bde071f78ea7ec4a4ed1574f03a9dfee2afe74b6627dfc7cacde8801cc8e56e5fee245ff6382303b68b3e5ea71425ebd595fc0c4afeefe4941fc68591b6b9ff4247c8e04e7bbeaf518b1b133eaf86e46c7bfd7b4e87cbd750913e3fa07e1576bbd4051de5272ef0e753dac18e17803f6f9687878e
+GCD = 6
+
+A = -3629f8989e40503db0693db866615af7a0bc134d590ddc326a219e20b02fb658ac1d5ad968ae557c655103c72d2881ea02e4703fad02d6325c50583f10199c80a91c223657694cf56d1fb3e3211a5a2f667e449e953b58ffd286e532297255755448bf5b5facef29c27c545a07ad51078f24315d97db59814a1be211cc357812
+B = 2dd2b61c456ed397ce4cad3cfc11b4b96c14fe4014af610e962e6b7b8a2fdf86bd61ccf5e16fe1ff37d994bf4c47d90badbc366115a3b3a13c5ad5c62d947b446070e2cf729eea8f3c7f5566090aa642dee5cf5326b1bcdaabc62d5b0b35ae984e20960e6ff33fdbe8b2c77c90a7f2de959884dc8cb8a13d6f5af0903593f63e
+GCD = 6e
+
+A = 9497f2226e1214d85f6c1b20012b4e785e0b0f6d8526b4fa47b84c457a599a3bbcdcbb6e7d1b13bab9225449ab2eda5c1706b35de082bb71902aecc2dd7e0231938685c8a7327b344c8836fae10e41c5757b4313e3fa74cfd2f1bbd45e2adcda1de71e8554118d20da0fc253a9552de41dd30230e0a6ebf69d1bd76e4ce1942d
+B = -900de7a1a6affe8ff2515f5fa70e0746e298f0bb1cf6d11c86b838fe13d601026655583137ae20bffa5d2431d988d0d627fb8cd18e57798f7fdb3552179fab6ed11b48e70d0ee5a626598af8b719a051bb621751f58303258f556e533702175e967f95d217bce0bf751255f3b0c2914a65b2932c5411ba4f2444546f93af78b0
+GCD = 1
+
+A = -532976cd3c8e3fde31abee5c5aa58b0f16b53e23b4e4c9d8024422928c6c7419c18e521c68191535c55d178bfb381487d0f360c5636f92d4f3e9261df7e04ad5cc16ab8544c786d8d1931349d0b85c21ad1e955c0ac79771bbc7b9b53f4a514bb570bbadc1bef54151eb75dc3899e72a04a0f76b583f6cb5b5d3ed9751c18c86
+B = -2347de32a5c1e4ca6329a652172fddee596facc84c873b24d0ac575517ffcc7dfe80974a76b15307c7c0c88894702200b6dd071e2cb1dcce5046a053b0b6187e7b82581adaca73238b689cd869102c874afbd3e5269c98e21512febc40965256241f09c6eb68a4384b9364ac066d824400dd3fe83f4b0ee7f372933942f134bf
+GCD = 1
+
+A = -e63dc5a55722e9391ffd14fb4472752020562d56c3ab1aa8d7bc071bd0dabd2800507033448b62e2539b6c2bedc8b993fdaf0facff097a897cfbe0995f8beb7a02a2b7b3e41276f6b9b9326b75936ed1b307950a5b7a1222d319a8e1045014718bf7e6d5d6024a92f70302421f4636a493f599b1c5473a91d44bc18d3a18c0ee
+B = -63e4441545a8e3e9ec06635a41d6bb9f2058dd8319296c0ba537c872012417f62f61cfb9eac28cfd66d799569330a148ed0c4421a2ae0950fb3c20482b05a747a1c5e2929174c128d69b188b336a6aedd6484b9a3332bfdd07290a11ebc589fa19ffd91c8dee0472e6654ae0d7e437d7160affae650a6694d8486da5b61f0776
+GCD = 6
+
+A = 4fa36f85da1ffc4fa6250cf6d019c77bae7e7383de971716adb46ddb77c905d0878a08839cb31589cb651a18f0f14911dcec8f21a8b24c5490b8539ea66c4db701fd6c5b213ac5e8c3cfba14e84f86df32042d7991778df385f608f75b2d047ee971ba7f537327e8bbd89ab48fb9234e0b8099b9ef93ee1875a2d3c59683d197
+B = 6585c622d838f9036f411e2a46a8ad7422f726e502ee4a2f2f0da92264de787c64882dff0f8fbe208a5df0effa4f3e77b63b88a9875ca416b7441dd6ce355f25dbe42ddae5823097bae4164ac15d8efa7c9fa21aafdfa0bb4cb73b48c312ae98db8d434c31b77de08f6b0c6cf1f00c88114337d6b6b38df298a3b67e14747e4f
+GCD = 1
+
+A = -742bb69c130738fb2cb08e95487a3b53994ad5dc80ea81c0815f0d32dc751be13f5a89bf9f13d2198fb86d7521263cb7678dfeb2667cfaff90c3fc95963c3a7867fefe86a4586d759b849c0a21007a665ec65a9f88d7f9e7eb0ab32cb31a21ae9024ac9b4b63f5a1bcd8cb6932a44f3a9a468e56605d24280ff26dc4b668450b
+B = -c617b9f3bc8ea4ecc0920da679a4410611a20f7396b9aff4abbea2d5d444df78b2df1b9070ab7c5e083a4acb936ae78b8833a9e3e9a46ade5a10150c49019c4a20b9275e5c0dbf87746da29c391cfbc214433417c86d2b10a54419f42fa7884c1ebfa381907e6d2ffefa2d968c44bbd8b9cf670909bb994f504fa4425d361ca0
+GCD = 1
+
+A = 3c2862d5e5e0fc4eaea2768a88c3b57633952ba234f8b513a752c8de99ea08dce506d46203b7b5c49eb0d8179cac6f23d9de74c632f722c7a518a393c48cfb71e4d20bb231765e89743a2f1bb1a5c1a24915272eb9407fed1c1a06eded3110f7576463b82afde4dbf7a4e066b643dc7824cd8960102d384b6b1e2ba4ec8731d8
+B = -2462a09282fa452d2cb30f9356ecc7ba90189cea0f3091b16ebdd420830eb6fe89b301bd70e89d9f4573b4abab6ff7dc2e16a1556fe6a8d7e9cd79d3692bb7fcd123f7a63cf3edb1b538b5fa2b15e2c4412ec707948ab75c39deb307d972a318fd29adb7c231fa18c1ccc7e4480fcadb0c0bd3aef789c411cf073368c8307f6c
+GCD = 4
+
+A = -61f5df558c7438fdc0335dc7175c9a59811ae41af43825829007ad1c52cc4820ff4f65cd6fc65f68aa9b52424b67aac2bf25b8ce555d66c80f530267e4844f133df40ab4c0034641b6dac3a26d88df651da94a54aaeff46ad9c4745d475c83e1a04820c4b246c6862822778772881f1978a39c15929f7187461510e3c350ea58
+B = -c5b7b9552a025eb3d994e9c145e6cdbac5ec2cf5dba21c8ece799398ac032cf051f60e828665e8777a7a646add7de115866f01f444a3f0bf1ac795bc2617be8559495b71b998e785f6835b84a36a59909959f8edd4a0a0972f047bca702186cd6839051aa23140fa98874e7b5e2c8555554bdff981eb533cbb7a5dd36420daa
+GCD = 2
+
+A = 648eec6d8325b0a7374a8c3ab1ddb37fb3c3fff07f7120813187515f4ec3ef56480557c731bd3caaf68c68236b44894300a8249ab5789e4a37725906be8c6d8e3d68e30fd4d83cffecb555ef049ef93ff79907aceaaa3c8bdf1abe09219ed73f4790e750abac9d8e2e97b3a804d401fc5602daef1fe0bc2988c7775ffaa5b3f1
+B = -377d750bff734643261b2ff53c54b7951b1584ce225c1b3fd978213f5105e3394e19f3dc43ab782e74d8928a94c4b24420b6d733f91933ce1905db16725a7d959117b89349a2d18ad18c07851b471924da0995f47c973ba7ca26446db89697dcb97031c7f85fd35c1c86facd91b936f6aecfd0bbdc1e26462d0b148718caf179
+GCD = 1
+
+A = e09852d480c6ecd939dac4c0f38977e4fb516ff5b7c2eaa65d5b1b61bd587bcbbd9e2d7d17e488763e9bba2f5d468340a7dda3581c082f325aa9a3a46413e6728aaa3b4d20d56885c5369287530dd5254377324446ba6fc0b6d10949dea78d1163fdf8a46fdecae602c3280e698bd908d7fa9d8a8392571b5d9ddf2906303ff2
+B = f364abe5b51325e989817221d40d486ad6649b094ee9848d0ba7b1fbf1e98f8065860c33fcdd1e40f03d48faff2def9cf27d48be9764c6fdb22139083c57b83ad1ff24dd7ed25321dd320e5ba42246e861e634d5a26d9ce803f09f92037a6ef20f47e51508539c3639da1c1d1edf237816982dfff3c142b012bb59d88f55b6d
+GCD = 1
+
+A = -8a194b89d328c5b8931d5881c43a70b1c4d79eec0621aeb6fec40a4488de601f267c864929ac642c6679c5f8ef04ef36bbba2715d68d7badcc43e22e1c32cb560eba3f24e314085b36bf75a5d6f9fa3fdc7e5fb0f44d9754df0ca65a9c1efb862538b34f4581d79061bf0d2acec5e5945ed7619b90f740caab115b837eb417db
+B = 166431c8f2cad8bda05bb2c126c891902f6d97dce4eb4e4cfa80dffece6bb738816f3ece6f36218c107e46d37f1d3bb58ffcdc182d806ec4d52df0db16a439a935379e738dc476a6c66dd1d7e010d05022a9bededf356a7c31ec953f51001251a20329408a96ff3daf685d0d3f9b2387e7f2c3b03c3669a37d91060e705c98c1
+GCD = 1
+
+A = fa19148af661450ee78d90098ad641a9a51660bbdf8a137976468e404b5e6741e7ed937c8d358bdb1269716cfa2a116b54518f19051ca93ae9a1f815f26df6ae718962153e6a42cb46bf963bf9651272ecb37211cc34d086dc8fd58fcbba5df21a62e7ce3a86cfce24109a3d7bae57e12c74127e490d5ed4d0c12c1f6c69b94d
+B = -7126e0d273390db965e25cf2e9c48ab5cdc7a621756a60292cd4336e83e20fbf4c8c9307adf54782533a56608490bd54a6eff227d41fc6e994c293c6c9f275b9e9abb8f045edd11228751ae6cdf9b36b60a4571dd5727401b689c07deae87b3d0459bdd703c7c6d5ec8dcf7729b37ea93f8293927a8b7ffc583c760978ad4fec
+GCD = 1
+
+A = b31c7b9116fae736fd91ab67ed6b212f14d7301741914e48a7420f5b4999cf59e160458ab96475db0c84a5cb07737a8296af83dbe30bb46dc016221db50e8243136e0069f2fa7eb4b99e65d7d85174abd142aef3dbad60896eec6b98c95a5e31bda73b3dd29803bdf87ff63662296f92fb8e4faa34d7828e382641faaedf7d7f
+B = -2a5e6b189c70f2d03bc32bd1726b55b4d25e4f0eb9b2f911e6b298fd9aa215e82f429c6ed927cb4de5d26ce671ff0fb62f969ac36d72d6bad9352e2588e32134a2530788df0734dc8550046e9898d5c53b323505dcf13bb4037135a093a15f1d60ba593e1c26c427e496f06f1a29d98c43966fb482b8f751d5bd93ff69233d9a
+GCD = 1
+
+A = 32242ac9e9c4f069d58f3f8701c37693b336ccc05d709c1071dd417c7355353c24e622d331c894588b701acf005b07318de1d2585fc8acd71915b234c937e8faa8ec29b5b5647863cecd09bccc40cd826a14f6b4a7a70d52fe7220af5a05cec6ad3a3f6be1284584d59412a381520dc6efad2c4cbc7e1b4b28e2541eb2ab5070
+B = e4829a217d2ddb8a5e30fa73f943d029f1ad187d9ecd61c3a38438e9107f82c8708e2f8413ecea9c2070cea54023f32e3b5cf082c3e168befa7539bccea262ded34055e296a4760639822c65025f830f52422b5ddb9b925fddd2c2dacbdfe3ed2dbac9378e921331a0a570b207f0532c682add29d6a4bf04e7b692d1b7296208
+GCD = 8
+
+A = 9ee30db91ba625daea6ba8c56bd98be6992d9ba69ec48c81e8fdd8f6be874b0bd7c3c63dad98344dcbac909e780e366d1eccc374e00629ba26ac688223fb6a478f8bbee2068f905ebfb18da1d1dec8243a9cacf3560836a4387dd7ba1d71e7a9cfb50daff55138fe7771d4cb112c307d82b1a9da61bceab8f8f41a237dbd46aa
+B = -99e4e2f7a3a7a4879702fdf8fddba531cab30dee44d1b64226efda08947274a53c2b07ec3ce5a6539ecc2c1225f0d88fa3212ff0ab54a9e7c2d3ede3a82ce2a769854ee5f05b1b79fb8373a7a4da58bde0066fa160a00f4071b400d5e4031f2ace0e9c2811d1dbafc022d4e9042e8094fa9b70357f19cb1081880c61a59475a5
+GCD = 17
+
+A = 654d547d4e6cff2ffa525545518c0bc07d6a337605de87ea82afa133a59355da855cca627c0fded08c77ba6c47294931475b2676a3a68f9c735f008a2038a45e189b1fa62a28a4a27b8df9bb66d2fe0d78f60eae06ea470f5f808557e009178bc66948e1454b3623a8976f397950c614abadbbb43e777afe96694e57ae73eb0
+B = a6bd8b20e09616a14cbe9f0433e0edc8fae02662e58d1e38e9746f4256db17be7b41e0e32384cb2676002b25ad0948c1ae9817b9971d6579e0a8b239976b7bfb2bb60dffb50aba3971a9178a2bfe368eb7ec739b3789af51db460702ab0f875cceafd51ed9091e547d3b7f7dd71522e143ddc9dede6905fd4c80e4ccf09cb987
+GCD = 1
+
+A = 46a9c76e64a99e3f7f97fa30c67952b6c9d5d0056a2a9a099f6e5157b87f84a1dc35376308411cff0f8875a88c28f115210788169937745bbfcd0e2c993929aefe34764e2a03face18ff0e8798f3f78443a9a8bd1b9464c722782ecc0ed347d4553832eda31429aadb516ee32b303d08bf269ad78723b4e67e391cea01ba2266
+B = bb06a0f665c935d6075b97c01e715f01795374f52bfb337651a199852a0e9da0f75f9bdd1a69fa5f48451171d896b5406a0871ed1d9eba06c2811a038b9daccd35849f0280c78d102021e526e4a9bd49397a054ddc1f7f02527a7c86e808e8656846c582ee1ed9eb96516c01cafec2388c73db50d1e1b9f00b7a62512cd62585
+GCD = 1
+
+A = cf42c8afeed139d491563a75fff70cfda42e15c93b55115508b27bc5d10fd0883e507142a89bdb95d07e95f5b2c838f30a4ab1ba1ef8cd0ed332d56458ff91d80de696a46409409d07cdbfb031bf65d64284b86f5c49d780cf3781ad38e1f0c50ae19faa115578e4797705c043b088c2df78425bb277607c3af775e24bc5b121
+B = 421969f9943102e4881975a31c5d06315655e711dc5e9dbcc61d2f1318e3c71caff4bf6abd76fbc236b27bbc203ffde8246f9f122b553729ecf83e197e33305abe00f7f8e0f947fad2238b2e2a8f018046c1d4e9098127ccb2b07dba7b85e4591d52da6b17ac1c20889f2c3798ef9b6afd21cd59af891fb3a1f9d925935bb3d7
+GCD = b
+
+A = -25d3081de644b7c3452fe6b46a5e312297065c1c6ee2831524e17c59b84c8c9b53742793b9de25b9b3cfea51f4439d530accf4b6ce53dfdfde9b1bae3828fa3c50a7f320bc1ad77825ea6c8cf6367bb1fbc9a61ff9d9911980d5cb62dea3cfd5c3d693c4ab6ff140f9844e81af99e065f559ce8932d0e812b48ba1d56beaf9ed
+B = -d5cc6be6bed8577194f848363176d17635907c924e1094aba118ccf69e7e458dabd639feebcf9478cd5ff2db365eeea98d71d046ee02d893bf6de41c46d06a5995a79a4f03085a00dd6ae2ede5a830882bec04410f64218008354c4c060714cd6b7f754ad1225b140ecd7c174df46c074417abba0d8817a55ea08719b2e0ac97
+GCD = 1
+
+A = -a432c6d0a3673797c838dcf4f33a9455223d131d9de0dd8e8446bd50acf3fe95810ddd18847cc5b8619bc80db6af336cdb3ed7d15c68acc3449acd63f0ff45b4d4514d557cfb800016e5a7d76abdd61078dfb12f765463cbac43f106eb7b33ff00b7d1ea00949ae92671bd4ce9aee2c3e9c6781f605309de4731d7ab9c09076b
+B = -bb8c6cf5e36f59285dad4e303de60cfaf9419d7c1cdd9808c7993fd1cc3852d27fcad027bdbecb10c21f6664ddc3d03c0ad41ab9b7cfac0a74ffb89bf8a3330b9fb50635448640a83341a4d421937f62f96b2692e0e5594d809d561f746598d90d5e50dfbffa0520fed9c09f0a965846b74f268dfc8849bec973c7ca2203da40
+GCD = 1
+
+A = 68112027785315d5a9846d5a4cb938e952e0abefe520991717457ab258b95893de7f2b930001502b07cc0b091b94ae27cde34e8a714730516f68ca7f5ed304b2a05425c9dbad7bb79fe81400f38c45c1305a497509fa140201c70732bbb1f7adfd010f40ac03e6296f2c641ff2af4911f8031e66fb68c4e04ad3fa14a9079836
+B = -2311d9ba12b6c475467c7fbd02daba863219426453c2a6a5ae96b962df4a526f89742b50a08a992a8f4d985343e5baac745e1d6f692f7cda84e0af8008ce8814df41941ec058d889d979acaa24651e3f2825d437ef98f62628c80817005a61061603f417136ebba4df3c6ef55bba7b9e0868b295b6d4c6bdb32205aa4f8fc75e
+GCD = 2
+
+A = 49757de67af93c39e02d40787b1233219d7ca51bc9cbe4c93b670903cf002620afae43aff78584843db232f77bb6fddd965e5799089bdfa3fef3409c2051a39a13c676677a08d50c9d0c4f81244c6acf5cec9f06a19ec09bca27953972e2e2eadc46d978bc13558e4cb5636fb3340bbdc61f7f759e743482ef691d4ae9ecdb41
+B = -a5890b9a53f5a64d0a1ab08987085e80b2b9f3b84308d8b5ffeb717c1e327909e4aed2d90437b2a0ecef1aec6835b663299999a09d425f4e132d4ca7823f19b21582f3f57a1c3f83f6920b5b9aecef6b7c2813b89f830bcef1fc039556aac8d68b5f3e0938ebf5bcc55a13911088383913e07567fa86575ca1991c6946817fd2
+GCD = 1
+
+A = -5376df749693c55043baba6a3fc403baedaf9264848ddbf8cfe950db37819a38ac901b18670111ba17f341640a621789b5af06d9dfaa02be8370e49ccb5abd135c9ef8f47f5beddfd9ef1f52606292a28db74d4ffa09532a308967679c1979e58bb40a3efe40a9c75bb147b840174cb3d67f1520abb621f0edc87c393feb9132
+B = 7e4ef050ad98132716fd001efc28d3f690bb5a6cbe4c7d1b59b4c80e199099f90f73ed8ca37daf92727305818e1b66e18ef2838e03ea3d11065bf5020f61871fb62877c871bbf31a282c4652665e01913e8a23c8964fee732b4448ee51fbe13efd63df9bde335b8a9c1af3c42a242d551463d0b3875d222d7c6e60b369719a21
+GCD = 1
+
+A = -4ce385a9d67b1ff8c17daac37f47f422c2a6514ddbea906552e1876b687dbd32bf76326bccd20793a630dcc2545b1325b75d4fe9386491df8eb45c68bdacc3ddc7236e976fca9cdd99641a037ed551c1652f6153a0d6a0bd6fad2a759d866a6e0028d2c0f6e96bd412a4bbc113bd618089e1defc3cb0dc8124163ed1516a96b7
+B = -b982cfca38bc118cd767ff0484657b33e6cb9a63434cab0775e66f7fd7ead8521264bd5ecfb478e3738d1dc2bc984ec5b4971a5bdbb0852598c7560da34bf3caf7a055f53ea15390ee0540d2fcac693e646fc1f97f9e19322312ee462c390a470eb74dc2afe289299b8bc7d0220e626b31db2b0acd6c188db37c4efe2aab66be
+GCD = 3
+
+A = -62cd38ceacdaa2b18c07727f75ff52759a9605ea7fa28d51f211f6a2a1d4f3029b53b54e4e15470fbb50c7f332aaee3dd858e27e8a92965acd9a0e5b6001ee1095d66e5044c2ded4337eb21e32f9cc24ddd3f0051635f8484dac118399736bcb356fb7318311686332c892c6832c00b2399bf4e33259375de7d83da4f9b50d67
+B = 83ebe9f4184fe5a331409dbb1713349683506ff6364f20b7424dfe42df4fd476bbc5383e42418e4f764ec5569c4765852940ec7b012ec4db0ad927c8d097145f53d418c2f070f29ea1d943da571cc79ded165473ac62c0e9e526e768793c89ff70cc57730b8bd70755fc9051eabacccce54c252286f7d997c0c5e28316ed4a83
+GCD = 3
+
+A = -8dc6ab7bfed5a04cf4beb2e3bc9c702284dce10eec9ec958bf0dab3169b7c6b78c53b587fd200dfa2b0df090ab142b0cd8481cda28f7e75f38ac8da54bc6213414c9585db48a852b2e3e2b0766073024f09f5703a7959879f7f2feccb77ce6d0a11216a529cc31f11a0bf7354324b6438475ba27e79ddb2367bfa6ab9b9c4db0
+B = -f1284c3d18b59d4bc93b5c2206b4c52f3e6d9cec5be41bd70b7f224936e69cc7e358828c98f75f5adaf68cf30ccbaab92b4a941f45677e64658c95f4104e0f0382e4b966026cd4bd7efc6f8a756153e3bdab34c4a8b97e12db9f3881eb14bd0c2c935f1dcb668b7cab771b47594865903b0434a88bc127361d29e457a50916f2
+GCD = 2
+
+A = ff315251623d327d939c03e221d6ffb48bf84d27273a8cd66cd0496ebd2a3129a3276d3b37a0ceba7d9c6462f5f8a9e211f86dfb14abedb67f5277bbd7c620157376b4018fbdcfaa6f9700fe02eebcf7b15ab24d1b05f83bf5fdb992b8d0083322e53f07697e8235aecb65104ae7608a010170baf996f5af398d0a53a4051c49
+B = 2623597f80ecce7793b6e339733a5f69c58c577c995cbbdbc1abd75084436e151ae59aaf089d2009022245008baee0ff304b8cac6edfc68c5127281a374fab301e890475723aaed6c68d926f93cab14a0526ba20746f1be937236e69153618b29eb66bec4d9ee3c997e98acb703644ce6475fd6b4bb0650a8c99d697a0f37a73
+GCD = 1
+
+A = -b1704c44dccd3d9320a52f68fb111bbf6582c364a8c90ae73f032edeb55a0519c5957715d6e84e29e4a1df69c0d7e87903bd919c7e443c94bf4dde1bb44013390b5ec007b610f1bed3bab1909aea3dd5aba5139a8c09ee6ac56976c9facff3b3cd39880a6c2b5504fef817f44e17980c9ef5f7a8186e9e62e7c9124f65ddae04
+B = -9852c59d799188ce5ce431d68bbcfa66c196ea4b0a4df5d2ea772d0dce3dac278858f5b9006108cef3e296cb3e370179c79ec44337772f2bdc7b3568101f8a2dd3c693a396ca5bc2206889917bba1346f0a7473b936ed5611d77e9d9ea3c28c8a43daff4513e4385608d94ca6d309cfee178d9f4f5b57620cd2d637a4efd905c
+GCD = 14
+
+A = 3c4415b064d1a9ca2e171def49f94412d8bee09cbb3acdca5250da87952ec224d4ddd779c162ef4848a1c01266527c5423330ba9d8f649b7fc6c76416260419bd30a9f00fc1bb169b25428056b348b90c7c4753d4b7b5db37896cd46c52ea8b558bab805010191e239ccc0ee7d36560c50be58397dcca6b92f1269c6562e933e
+B = 3fcece815d5c010417329c3d5085b094a564f712e4c0886750c31567b4309d8bb645201d03289bb4c986357bb3021258d88a5e7ab7e142123f4eac09221d8f20c5ecffc74aed3e8e4bec52837c24993a18249089ba1f182e911cd7b156d4fd59e88d49a42c02b04dcce1e5ce90b466f69d7a43092f1d94b071cec244d867f2
+GCD = 6
+
+A = -4c54a942bdf922574de41783f3a1d00ce711d3fcfdbb6b92a0698a0cd8a38029073051064373ce749e6a5da2ebecb0b64f401209e52ab1baee52d845340904fd790cc027392b9d818a9b046ef26a0bdf0bcde7b2c195981fc29f8c057e77baaa9b799266f3334e4fc3415c1f47cda88978362b24da9c2b5aeaf376bf00ae732c
+B = -bde86d18485d7edec3a185b9c26be8d6f7b6c2bf8d8d9e720e7ee534a968baa128403faebdaf6f092dde6a439993ec90987fb0d14b9385556c60eb65fa78402b708a62be8060bcacf4f93590b6fc23c4e1e3f2dac1174e233fed12ef81bfe4057cea22b7c8c645bd1e2abd6d166daa2549dd04c97b721a9465c368573fc1f6b9
+GCD = 1
+
+A = -2309fcf49841bae5c5c86f55f25c4b6ee00cf5ce08dee7ff3da46000b8dad6736ff9094191e2dd962000f9e64d21acd12ec4ee6355d339edb17016f6130929c342fce7886e7f525413f46ece6dde9931994c392a5478b6ae8e41e04799b1a0934a2e9069bcdca38868a10a3af35e77240310bcfa7962ef128f412448f3b62688
+B = 97d6d24f6a2f2434827cdd8c28b4912851475b3b00f5a7850bacbd6b4a824dcf23671ad8c844e462507d9be9be4e99888911fc2578097707c4b8d4fa3ad472086105418f29a60c31b6ac728c9b50f8cfa957f228df56b64a7ce940bbe87bbf7a9b49a2c4e37115de0648a73b1e2f26f2fcc0ecfbcbfab2157689d99337144629
+GCD = 1
+
+A = -8b80fbe4b6be1cc83bd6a26d6d9080234c5b07da67358271df77542f6e8790c043fd721ed52a902634aea3913cfe4b25740869e118c9d8e47ef387fc5aefaceab3d138fed594adeb7501063972617691fc9f40d31592dc3c84c50ec348c495053455c51c1dcd56b86cf3a058786c42a34741e56010faec638e1f3d47ba567796
+B = e4f5db9f0b73629fed55b0ef26653eac5582bdadd059563ef1de89b7c592529000bddfcfdda420aa0d658e934d98e436843bb3ead0fc604993f72ff5c312caf8d5ae054b4f7bfded684655b0230c55618a1e75ac9dae0a66654c349a655a37425e5d862ed3d92377fecfc4b5759166afe654d6dc2c0138379fd2ed6e0ff3073c
+GCD = 6
+
+A = -25dd341cb3dadb56db0dc8bb2fac2e9de48768448dc2ca90d283649690d60875054bc0c833b537db9de2ea0d93e0a9c8a1e4dece0bb9860bb68cb09e87f8b67efee82d7ebdda3ace99a09fb20b9f978e3c4c163e181c0a21f2b79fb2035bdd7a649810e35b08e728448064ef7f760471038c87a24916bc9e2c79426fb596505b
+B = -4724a0a3b175442acd9cac6d9436851b030f815954d22cc9fcd47ae8df7c415c231cdffddbc2dc8694ac29fc84e3c7e0136c1ca97a034f9fd7151051e02c500469d479aff5a4655320985a02225a0c9d3b3fb753536f38be41179d3a185b8e12eaf323cb75ab89ce857fc32f68b22238bd893a1f51aeaa5940c5b775d95a0974
+GCD = 1
+
+A = 80241c665a7ed2e7a524ea291c863ca5fad804e9b076a36318fef8ae778d589c81035d991ec0a80374ab5d9885cb2a1380807b460731395155b1e4404b974e48e3a79a2c24f959cfd14baa479401b52ac96be56311556b8777b1f60d73b5dd2a6130cd34f381f7faa3754091183b9d92062ce04c2472aa66232cef266d131dba
+B = c57b452005a700815b74b6ad007a5956a9e7b38fbd1e845fab71ba20f70145232483a9f4ad487de1bcc812454384af134a1fb4e5ac5412e99ca9ec38334f4e7cbdd8b1593b2247bcbf3dfdc6d0035aac4d0a9132cac117a3e5e67ff2df09b74343eec9a00e382c6462f77d498773668b04b0f549ece27910ce4b8154acd9be43
+GCD = 1
+
+A = -deaacadc27f44cd687d7389db02abb38747fc47234d05f89d9849506090b3a2d03f157d037bd2d94635160fe7a94420d22233a3c4a734f73252b0596b7c1df24e7c00ba112d98102878ddbe78c06dca3d25bc496222fafd73a439a40a0f47e856ea2b81e9d94504a78f1b61b5ad80e67db6e412e8d35d2fb8825bcb9a2485065
+B = -c190f03096fcaea2a441de085c818aa1e2da9a6dfe12a5fa03ddd5724c194b96ff0835c82132400e17925468bf8f57c24b515728f74e5a80915430eba481adee6a486a752e6366d622322f3629611c6c0163ec92c631cff8015e628542d4469a80d291eb651fce648e8e7599cfe129889bcedf3089232c37fb39c4fa721d692a
+GCD = 1
+
+A = -dc1f8cb9f7bbfa870194b7ffbbde4fd0f1bc91d1f6bb0fbe11d5254ce3c4c8349ee0870533c910444ae83f853d9c0f6cda9b9524a777bf904b831519b3f5ed90a1374b18dd15fb87e55f62b64fe18e327bb3a558b993076b77ab45031a355c76c9c2c44fa6309af0d8efbc28bedf49846cd82686e107faed5ae114ab838827a9
+B = -2a8023a8ee9d2a7b86ea867f0eed181754ba4b77c3456922b248f70dd54d079a7bf3f1901720bd1a81913bd507abcb40d6193b995b27877eae01c9fe562b96bf096357f3f57178dfc5a2d51abe538977682fc8d1cfbd63781b43dc9f8c88848b56d8da6d3ed7a2d5476afeb59f9fd87df055994a3c98207111c18a05baf7f848
+GCD = 1
+
+A = -b6404963ee730caea819b2768fcc211e65e8b69dac03261f23832df155d59fe095aca53831b62dac7f8f28ce3fdc23fc6415498ba01323153c566108a8ab9f8508196f24894e7881215028ebb50a1a984dc57c01afdb14ecf1526d3cb58155dce2b115ddc16ab6d22a49b35703668e257b81b9c3922015fa73239f64b2a9e2b
+B = 6f3b8d004746f2069870ff11291fd76dcab58ecceef1ce75becd2f0361359b599ea0f8b5ecb210b2816c958a7edddd56cac2e40a6c4c4d88ee13cdc392bd1ef94502591fbe17564d7732a37cbf8cd84ed318d3e3d773b4f69d38165a3eef38fb15f401521feede5aec605c5f5c189b95add893a24e437f79f025f75808732e91
+GCD = 1
+
+A = 2c1e039dc7749eecdeda015b186faef593940045ce5da32416a032dc8df85cf03e29ef8f664031b8d91016bc3bf671c9e70de6f4ed616cd2989814376650887300280582fcc65fc83212998352c69651843d797c9d486b1db1d1463872de1bf2596c16233718a3f6bfba1ea08d4166d05dd17a5fcfb4350bb0d08df2752c73c2
+B = -8ccc222a304c32c804507edbc0a2c84e96c9856658149cd86158e81b1df4b989d3f456c24d5d26b04deaf42b1571679e36ba065d547d88a8b915300d63bc07e0e375ef3e36437161db245d15b9973955a027534a999bfa2a2b361dc82998e900918e8880457f41b7bfb4482a4e05cfe253db16c17108d66bdcc17b01d979b769
+GCD = 1
+
+A = cbf176a710cd55a804818b61b215ce7bb609831c7182fe5d900504b71ee62d2d73ad2851f8729ce1f244e8b7ef6f937e655adc37de625f34a3ca76d4081a3280dca1fcf6f91f2d8f15511179c881ab4fe56436fd2a63b998edd2d405640a7c114901c29eebb713e599b44e6bc2dd70553d6ad86867c75c3ef2f867c9372d073a
+B = 6636f1b74fe94cdcb9aaa132d0d53229a3c2d404af1aa2a14505bf14a495a8ceff5c4ff0271b293d3fb2d120ec8756307c6d11b04d4b0f71a9c68b55e88818454a74fca8b4a9da32ed09f659791dde6938405bf7cd3d1e83464de6bb59752f0962a02c53c83e9c3718f3e39cc962323bd1593eab293427f92c5fed1986c4bb9c
+GCD = 2
+
+A = -58fce44487aed61dfa6a86099cd21c987434aade86b3e45c5989a19a3d99d302e76bdf506500b9792bb5e9d6d738408d7622aeb544a6891a902f2468427ca3fd02ed126b16fff147cc6225375f1cb0c7b6289ca5bf81600548c9e1a2c132aca000e4486e7583d72281720331f2ba2d6bd0a76935c006a05ce415cea3612366dd
+B = d8e9d72f23d2d8b47cda6f4d869dd07379c8f23b31b17e719b794c0547d441e4e82f3c3e1fe8465ff204f8038554b88605be934dcd262401c7fc85faa6674af89a46a82cbd98bd1be814579fdc92a3ad0459009e6936d0d62cc101a78bfbf2bc1ad58c9c08ff764b9ecdde87087b8c718137f7ba52b80bbb776f100d26c88116
+GCD = 1
+
+A = 39f19cbd6f6d057db452da95ac4ab52a3ec56b3eda1cb7149521814949bf04629f76d6358dc4602502974ab0c7090eb27cbfca4cdc83417d03fc7c987992c487ff0e82ef13680510ab43a98956dd315350e81d72dee3a280e04056f49a27de6a0cd56a1c728bffb0a48a784e527eca0b08e47b8272aa0a47171c0a6718d3ef2e
+B = 73caf7c97b71c669563026dba47ad94f816d3b50f230ad64c5d4a5f8780081c6ced803db0cf7f9309409e77c30709060e97c19c198917d01dfc2bb001f79fa5840dd481fb84bc023a70e8405f4176741055f0c69628c7c581963c4b55ad58c3c95a884c0ad527f28d906ead7f8fb2f4bbf19ac9afc688ae6dac6a424207db36c
+GCD = 2
+
+A = -ee15e8ae715d4a9128a6a68e1d740d3ec1777279a1fef0b77135a277ed3338976c8d159f1214343e83b7c66d382fd4a6e10f1f0479a0eba7dce759ff5c9d935ac5897c0890a90ae2cbc94db7816cfb97621da2df4222d77b20877a409dbd2323ce7362fde977d70278dfb5bdbeb27e0dc6b2c0c0a03bd538b62c63aa2828d1ce
+B = -b39a8782878b900795a3e854d0d24353b7a86fa182ae9c9f028ead664354baf03a7635196f919ec9420f3c3784c491c67170bbf3af853174d3b996d3d06a52a903b7b37359b36b946bf601bbabe4d945c64e44876dd727359d69d988f2c6838a9cb94ef4c4ebbf4da9bb1de27ef94f8bdfeccbcf9c852400a642d8edad031adb
+GCD = 1
+
+A = -dd4c7f7a119ad97634c818116155e93cd64d40f7e5c4d17e298309f480917530912377df280e87f3a3dce02efbc5324368cc75109eae70918b0d6a83d3142cebf9729421a99d34757b101ae187e6a25e43d527554cf2b86467ba1b222f5ce6deffe8dd11de40dbb94e864456cf397f9902f3fcea5699056f9ee5bf9a276fd40a
+B = -5dcef43bd093d11148992d7819bdd3e39ab27a2f97c8a4d1e82a7d64a1986213236fd7140b60ce280285d6f33dcbd61d4326abe96d9ba1cd96d8784c75a60f2ea186fc1543c6a104dc93f619a6bffb5da228bd03c9e71b5554747288b7391b3dfbd267312a9c81ced1b919a18b405c3b40a2ae2ed1d3b23fc8388b05f4e04107
+GCD = 1
+
+A = 21e25e87c110dcbc1c88cf83e4fa483522fcfafa811eb3a46126e5b47adbf7bc6e3296fcf973b6277807a8d985dcbed207b920071664338f67a7aa9c27a87b5ad6c08f1ae15161c7c6ac92540649c1d791ae3ad428463732e701074e9d3556da7a381451a87076ac360a3150b45dd14c72770cdfaa5b6d9b7b9905e7de13014a
+B = -7026130a40faa7f8b34264359dcc43c05edf43448e3300b9d0bbad0f91c60041a9d65ab1e00d61380be1b1028508e775aed11154ff65c159ff6106fc098cb6138141a13a8dd6ec7c727f0a1658fa867ab81980164e29b9983c143cb0cbe216f9af59384035f59df15871e9a37dc69f4abe9f4babb91e57b1b03ceab3ea71f0d4
+GCD = 2
+
+A = 28aeea020d00e8a8bc2b52e292f67167799a53eb8937bc5cffaf12d913bb5d7cc7af9a734b53993bf9412a4e8bbcc8a95d2a00c48981c2c13f23142dc6fe6f4e3535056135f9f11e46f20df0911d8f68eaffe197dd179b97cba93bfcf57c3a8d0c3d0a18afbb357c2c3458858c28e40ebbf6b6a34e936a6852a216cc4e9de8ac
+B = a39649af490acc0c517a06b6fdc55c054dbf0b146ea75d0ae95a6966c2fe49c4d02f71cb41cb52943557b2e5d46fb3f070105a2da60b6114de2e18aa480d514c30aa03830482b05a2b46175a1c005bc93661f5b103dc8a027651ad74e05b329476302f38af7f38c3e54e59eb257f0ee1d94adfb37ac981b86e11d5fca3777e20
+GCD = 4
+
+A = -add759f78eb0bf1225e75fd1e444e0cf4c5ced5ab44f07ba306f95590ec019674a08547ac37b69f91d7a4b532df58eb79345d29921349d7ff157d191cb760ab8c3d34dd69a2b23ea75d382fa91c46af3a75536f5cc61b7da2dec41cb59d3638bc89adf62c2024d304d748296a0b4df510d82a7cf8b8b78152d2a0b8d147ae9ac
+B = 6440316fca0c1a607872f52500af7ae546a0fa8839c18a50d650a16a25b718f6381f25691989369e1905f5416cb2d8b0bc1e06f9d4cb159be4a62db2dc637ff66e171beec9400e690628d5c031f986a3a5c604f5ccdd419e9ce64b29ae59efc4da17cf2ce57df4989f0f4c860c186546037e6f8b91568a2573db7316d8fe0499
+GCD = 1
+
+A = -ec6793aec3a80a88d520e1cbf9e0491fc1490b86c91dfea1be7a3bc95c1df0d6805f86c7fbd284072d3ff5813078e728362fc3749810f30507c6bd4e5fa81a59652aec5cb183d09d775e5db809a7403984286eafd9c0f3eb7f6762c87c9cad421760e5bcc91a68542f217fb8b0e51626a35900cce7794bcc57f1ba05c3c85f5e
+B = -95b811cca5cdb0de74b07a3fe61b4fb4240b0b6b8ed33c6a57895c57ca992ffa9de3a54bcc7b8859badb4cb2d598bc1d54598179bf246024f2b0d193c45092a6d3b4c9bedb686daec25e865d9b732bfbb5198da003c35d0520bab11b8bfeacb99236db007ff28554dfcb3487b215ef2f4245c270cc1646f046d52f2e4c42084e
+GCD = 2
+
+A = -bf1e7065f80eb95535baba14d484df406d07d30006546a5adfba8b85c719170416f1d1f511aeb5f2c7a997b82536d90a63bc8becc8695e011f5d48964db8a77cdbd0712274fdabafb11c51dc927657d49d09fd75333cebdd41497d6338ca585527bd5e331ec864c360c8984fb081a01e2b5706e70dc38b1ecde23380a2dab52a
+B = 526cf04b0858eba00bb1e50e061277408d8df1cff759b55e31264025bac191f216c412b7944760b16ce8a7ab5c92df288c703184ff8d9d2774882a76072f0cb5868c091d2d1d3631249dbb5cb52ab5094f51c319594ba9485d26091144e1718b4811f21f6271cf3b4122949a1b67076849750d02422aa3c8342e52fe7b2874c4
+GCD = a
+
+A = 59a2e4b8c8f675e017cb86035f5535eb7a64240277ecd16589ad1a369b9ef2ea793d2e7cb546a319d4d94ee689e79323eafcdbf1a0c87c2101a2ce336405f8d79caa7309cf4cfa6f2de330764ffbf004028fbe5623208872a5ea278cada4b4afb4ff9861ecaf65785679788d81d0f64938e6cd11140431087e5182ddd3b7ce85
+B = -1b1dc27d9a046f43701e96bac5c5060e52355b01131c0ae67c096743870ad0a6e50558595720fe3ff1a804c6e275ada04250e0a60e53078d8cbe39cdb97e3980c591c48f8a07a2fda7bfc5f20991c22e45d8d26ac6338cd59562785a29a7f157c60d9eba7384cb99a1d12afdb83007ea9bae7bb33a54f7a82540a78e6ed981de
+GCD = 1
+
+A = -c5855145684dda3a6157c7f40276faa5b459a96fa41194b16bca9f7883d3cf30de7b15f302f178b10683cc874f9a26b5c7592c0531025c3d98d3aa13dbd8527e0256db203d2967259cd05c395a697943a8d8ab2866b353d9e026a5079d44a1564838d2d784daec76c507f72c4de9ffe11dc3eecabad0ef009a089936f85ee4c8
+B = d73f67c414a4a2f1929d4bc94000b4de88f26bc44b06288bff6b0ba1bccd72291557cdbac24503cf06c4996fbf6489fda8b2313cfef341388865dfdecd0fba849d43a9763aec60be142ca840cf99042f534798491d43f2d3e7f0d0ded2562f94bf82b9aee6fb9f948bc2a16dc097d9dcc8a3dd3342f5157b71c2b96cdc5d6f10
+GCD = 8
+
+A = 1eb6e991c2f63f151fcd868d954cf517ac41af0a3c24f7bfcb6a4a6d8162fe69768a27f8ef7001b9b44cd7708dfdf485cdca104dad9688207f3cad872ba29453d78fefa6c89ad20602678ba6ee50799a8c30cab4b0c07577767448f8a70ab86b0174641140717be570f16f748905b60b65965a275b2d045a18597ec9738f545d
+B = -95efaaa084aa7b21d04d821086eb2a0499c13bc541b52dcd3afb0c67b0b2993631beee8d96d99f094a64e176738862f5c2c095b4f5659d028025c1114e75b7b493e863c61b5a1a3d975cbbf2bbd1425eee932a508f6c45ebd5548fb391bee23dfaf1e6977e1d268f381dcb462c048c2d770b28954de2f309cf60df76b9bf03eb
+GCD = 1
+
+A = e26094b51fceab223e9e4f67f32a38dc4c973316509d290cbd1447410f489ae7ceba0719b38e3ae3003e0ed4b875b09a3bc718a81fd3b979fa2905b51758021d632240362516d48306fffe38acfe357c8f71c472c11d71ff6362e752aba5c4b1daddba2af97c445139223f723a430e6838e3889f622b38fc656ce14e52d1bfe9
+B = b4d080b2d2e99d0a47175e28c9108e90d1abb5abbffcf5f4fdfb13d08cc0e5372f250ac514e1d8defcb00755551c96c9bdf924718290df64ee4dd73cc4758475b4b25dc60a1b71af65b0c9e4e33fa98e753aea82ce5ce2c555e2bf74a555fb0b7f7acebb719c61f2fb757a6a0c421937332c9825ac70d993b034b163860269b
+GCD = 1
+
+A = 8c7c206d06d653c17e31bafdd2ca010741f918f76ddd2b20f47f3e4e888ab7f953857d112209bcc6ac880d52f5cd3f054cc9fa2ccd61ec67b5094984a99eed6228ecdf38b5f61d965ccb13f7412b8d9c76ebe7cf0eef816af6f66d3202c4b43bed95fb9f25ccc0eb9943469f7af2e07d66576512045fd38ccff0d97041f90099
+B = -3e9d4b1ad14e0a58255fa474b416aed7cccbb967949643dd99c3840da40ee5185f56bb51065972eb904c7fd2be5bc20a582143b19083d3226b77291c31add90c19e29dc7b622d01cbab78a341ff37cd53cf78f5b8dc354425764ab628b7f7417f0ddd55a0dd520bc7aa365a4d7dc30c8b953340549f4fef96a3ee9b0c5a7953b
+GCD = 1
+
+A = decfe8c4bb814e0dadabfe91e6592be990c548808bf617b79008a9b9148f577f2f0d44cdc0f61a351e15145c70848c8a533d82841215c508c30dc3c0e06005bb111a39f0807f4b3665dc6dfa8ed60be00ce5ccc6181cc55da73a9546172cf6cd41daabd47cfa95e70daef22802dfbd0f2f3f228e8a5b58937e1050e8ddad06e9
+B = e46f4d5ac9d4694c2e5df86cd67814a6742bc1637a5f5460db961f8ca815ff7c010cfea0ec5fdcab593cae6cc390a62012ae56273ea96a64cf7f23e831a63da74e72862399bb55d46b9899f089be38155c03477f958bfc0fadfdb2defd7b93cc95888b8878633930c8eaf2a335adcac45af126fa5cd152b9289882a582338d
+GCD = 1
+
+A = -108641a52918e3f0bdbd0ba2e35485821aa3b380b0f4c3c38243d17537408aa7e3830aad32c8a1fab51ebb765455a71d0e9c2389cc9ed66ceed519f9c0c6a54fafe05b1397575ecc638f397343a88e226aadbbac0580dc81baff3669211dd867857ca698871e312ec0850e2b2e6c510d9cf691e72143316821b828a1d416ec18
+B = -46c241a009d35d1b5fee0fab2b6b3f368ec1ecbe78cddda786d8e98695059e5d871081fb5dc1e355454790cf5a0de801cb6734c3769fc17346df3d55cac21a84e82d829fc8965bb158efe1cbeb1994298483265660529c9dcee1ff73e8d91a082f7db8869d2504d2ca2eeea5b7b4539b33db24208b4fde855c24314fa5e3f448
+GCD = 8
+
+A = 4720ab93840e403322a193d011ca967448fdecff13a5f28766dd52d4ca71a2f7892585636bef4a3e8fa8dd13afaafedfeefbfbd3b1a9790436207461d871b41bfe1a3239f22fe144057b47ff6c53db5342023368dc0769b324884105ec3f70a29ec81e88e7940c12ae2c8ac351b318c4af9245210df9e3b5fff4630796b3bd05
+B = cc4ab82c443279bedf49cbafb288f64b5ad79439d6f1fa4c8e7b545878fd2b154118ffe2f59f01dd4798239512368a155c26e2f47fd4f762428e2acea296ee4dcdde33c1f92509100fbb5bbbe084d229d53f33d3efad26d9da641e67ab536b7a2bc47b64db5469db452410f81e8b7b236c002e58d8cff0c401409317abbdc6e5
+GCD = 1
+
+A = -965182269555564514c8ca373da444e119e27e8754aeb60e60a3a3b55fd438d61fcf33b8adc9cd1a459f58b96ba78447d5d2f788c5537009ef083195bd2711c3bae1fb592d7cad11deb56b50ee40130e3fd9e7c8005691c3f289b18c5b40d9ac9f0666f20cb5bff1f395b86d2e8e84c2906b247168c21892cc21a0dcefdbbc00
+B = -bfa9c90eb11f3d7c78d2e51767a281ce6a6b6c5c9692f7629e3978817aeca66afdaf6e063d27e407dfe4130d6b5d8fbd72ad2a2f39a5da1983613cd93d04650244f097351836f7a748d8711c86974a78711d88266cb3c0e5e56558e8d30e3be738fefa6cd20f879a8180c19502beb0aa9592e245e2ffb482e06f9b75ea5a994e
+GCD = 2
+
+A = -1bc6d0c4da357def16e0ecd8d61a32927e3a3e0f7cd636295f3d190691293481d3e188f2d824214a24537f93594c7205e6aa805e7ebd931bd9678b6e162349f8acae10f2631693dbb17eb9d17c86379b7af68cfaff7f5d55abc78f3038c6930623eef600937a0ea16dd61461962f15b71e6622650d66b973b78e1b9eb0126964
+B = -7dd3936b644bc7108a50a2d4644cc3449415801264b65ae2a2cfe0aaaf78618e4d2404c458a49e9d4b92c566cd648e875c1e71c16c38f205eddfcdba304fc811ebeec2df0ea4d9bef1efe9b0deaa4093961a9d60bbdff781399175385fa970a3fd36b81dd62c03c0d9ced249379f97faf87a0e17868271029a116a0d8a27c2f
+GCD = 1
+
+A = -609cf5364be77cd9b14bcc5427082d76d8699489b7976661ecb33022cef1b6bb3fd4dc6642f019743159e092edde7f27643183a28f8e7750ed993231a3a89c22990a7f1e9aa48163e62a43129e723e8fc20f93d12bb5104c4538a5e41697211bf2a962e0b9cdd8c2e3f51698a7828b2a3d624a30674d11569ad332936571913f
+B = -54cc20a73c9b5ea6bf4f9b53fef33cf5f00095646698254e1f4fe4c9c9ed32c7843d91b2f0e8551c008cc3e3778912be9a033e4aff024e6a90244a1ce63123c84c328655132d47b8aabdbaec09a62f4c78f04e045b87d9cf31592fbd199cf5c976d1db7c4de78110f3ec1595b3c061e6ce4b30c5ac998551eb11c4e1a7220a19
+GCD = 3
+
+A = -9278ab3412723ee755f31b5562e01bfaabc5063e0982d5d206e39baf99c3e1737b4a769d5897191c0a2715956412c83f85cdfe541460170b1e6f2247b732b31928320bcf576e7ce7a5918af874e78877044d8791149ccb0290cfd061a6d75785f2681d36819d11fe614b6a2802ee14540e7dfab83bec25c98f5e72055dd7c703
+B = -4aac16fe70310304c3e47153a22066dad0be2cfdbdcb18444acf6c8663972b5c0fbc2c0d8e9bc3ca65490a7d8d3de9b71fd0b2ca744f0b7d5153c968cea9d9908beb6d914b6465ec4af997549851be29589fb3c90ee05d066aec4fb11c7f49309ea1b8624b2d7f07b4dd13b6132af1058b3434c126abcffa06c7ddf5b706796
+GCD = 1
+
+A = feb6083cb588971c55d225b3397ec83ca47dc16b9c9852ef6388041cc98c328178bfbb1f01acb5370e7a2788307f13750f51a5089a27eb5c7a0425507410cc8ecddebcd6517be411556325c5bd4787dc400e8014148638ff9b79c1c16fdacbc73f8a2fa3027eb44d9e861639b503fd4bc22548047b7bfb11ba9c94739c318150
+B = -2481f5bea05236fecdf86df84a5a6ebc11540d1ff890126def4a3b4d2f3243ddfbc2e1b92333e64e1925e211ec59908740630c5bc33d80ac0735ab1867d51f6d3fd75d47882c6f638c70e90053d83ed0df56a3a88ed20839ccbcf13dc207389107427acfda235945c4b59a7fcb8f0f16269f1f5fde8b6cabc6babdee7e4925b4
+GCD = 4
+
+A = 4d29230b1fbf92c77173d0c58b6bd77f46178c3675da41927217c0e8be65612b0ab8cee4bffce9e9463ce5634f1b06a2769baf331e3d5cffbe45d33c0ab7c7d6804891d3f1ba305aa4e05b56de7a5e5ea7f81d95304deadf974b1a23132ccc5a2bd3c9448bfac6873ae274e5cd13c2e8fc4c93fc2d523f639c6fa49a818550c7
+B = -2af726c1987c192cc61dd4ffe3795dbf798e913054f88e89d85f9070febf1938562cf3e42f18f520f170a776f23827e593dde61de519dabaf2e2311aee22102935c60ed40feb5c07fe595cd568144918ba205cbef87102ef4530b334864a97f3dbd12c34162d4def59a5481236b05a5224ba2a1a44324b874d69deb014b2ffc7
+GCD = b
+
+A = -dd5614cb4dad71bb4eed045b6a8274c8b95daf78db7b9e7b77996d26f8dc47be1bbdb073145801692e0c26546131ee08e0461f01d9a15d092c189683098b246aab46376552feb1d8dbbe9c57ca86dd67b1942b8220c9dc561b340d569625c17d04a19aa87fd7d3dc925df3751ad641d848349ea15039b37d1bab2ea8eb9230f
+B = -dd5fa9909377cf34eb858ad42b67c241488b816f2ef2b3a80c99b49b3b919833002648d7423e55ccc911496925005241e56e2366fd09f5f20c1892a81ebcf6247d7baccb7c1e76d36a68d25e994854ca444c70b235d940a55f84768c3f68336760e6e3315bc89ce4d438733d87c0e04437666d6c28e3a56a5480665a3b781319
+GCD = 1
+
+A = -915c11047d21a43b83958f7766e33e1bc7b74c9420c7a2ceeda4327d9a489c78e7c968c71aa30e421981c2569ee4fa4732406981bf19fc0e05793c22106bff5d73f281512710593e69529a2054717e8e3bcc52080f093a97b936f827c5500f0b34adc125f0b43032558f0f8d72560aa9ffa2601cd2fb9915c0c7a7bef529b1c2
+B = 9ddb97d4e9e1b49b0b0e9a7da9c38b6a0e4ba0b75d2da4aa423428cc008c7ac34b32b8332caf632e6a51240d7470c5032ae2b940efd6adf2fae22d9f005ebf5c701706fca7f84740100917fef5c9472f8dc9dfb8e78728fd8481f6c9a4bedd3241cbce55b266a72428643a38aceacc115f51b3328f1158900acd0f3a8c823440
+GCD = 2
+
+A = 86612043066c45ae60c979c9b67fa9ae4ee85426b9e32ba7b2e7316df889788c385691c9b24f83de75f3b5ff2b106243720819544ba0653745f22cac59535743cd1d471709834ce7b6fd46b65a3fc7e29f3b384c91de8f8fc6c82d10958b68860c8832fa71d2563245e4adb9f796095297b1652ae6c8ef41ead580750cce1abf
+B = -917733cb7b8d867a089f105eec7621da224c139709294486df873114cf494a7a871944f53acc0be462dafcce0426f4fe9259034bf696d4392fce3488c4748f279b8b629fff872aeb2f60905733d33585fe971a048721e2ba4ba910d4fd69b231ca0623d504c2631fe17cecbd8f9a5934f5db095cfdc490ef378632610a15bac
+GCD = 1
+
+A = a7929e42f128d36dd7818b3ab03dca17519e6c057e3d3bec33832b0ad301c78f8ab8e7b2d07c5b0abc11fa02ef8b57e6821e014c5fa3ef5548295e31a877418768b5620a1b53e38084a4b35e143e2cdb8b76874114dc2b492df26e242203f2a9bffbdcaefa953f94517e3ffcd7e26b36600a67340999b065dcdc11544a1b0065
+B = f4b4ac68aec905b66fc923d96ea9c6ca29fbd892633e363acd507c76d19bedcb70c66b200130f687c4a244a83a8c472f1c0eb5399dc010c26613f037f968205550bed377e81aa73571f91ddb714b3270ef6f52639749890efb68a8a02e82ae414ffabbd302030267a8f556cc1092b08c94b092805a60ccebae506412556ec564
+GCD = 1
+
+A = 9a2fa5625026df897b8d3d66dc721cc70cd1740fc1dbefb91bbfe93c099400b67ca41b02d5712fb51ed21c5f3c6450bc0e1eec7fee773d893c110dd67d64da2d4512969ff9e4ad17ae72231a425c3ae547ce1758e33f35d625ab45eddcb53ea832367b7096d44c3578530dfae9d631b8cfb84587b7dab3ea2ecca2874ed76b2
+B = 8b6f058ac42f82e6b1103fe7df1244cd54f686362fdf88d529636b71c60a1c7b612be33b278f429a8bbc00a0905baba66376be1f2fc6a00d09802d7cb08268cb12583c042daa50047c738b2a2c940a6d4beb974695348e7eb7cc7ebcdd4613496e56b305b3caad71d55bfd1bf08493929549d4fbd1e36c1cb5ccae5190241403
+GCD = 1
+
+A = 93457720b36d35c89f9317d0a16b0a9fc47f29551a173a075bdba8e575c0d5857ef29934df7ad0da049f09d85e3a55cf5b7cb32ddfc5fdb2700f8dca96941ec9803151f4903173c219b6a46bb4bf92be0aecc7d055821ad8dfa2fc8f5b3b329cc1c86556bc286187f29943f8bd603c2bc87155725ea746f4c2f14cfaf8c849f2
+B = -dae7a6bb1fd38e5e319c164b0e011093a90dd166c80a773381594e74d00f735f0683c0bd5aea1a202b88ef0f687f7d83819a2e8680c39a98aafca159d443d411cd9b62209a69ea21a708d7f80598d9d18e169b2e8b4e50969a474afc9bd8bc5deeb1c00dc59b8a587caa385897117ef00ab76aba589ad1dd0b1882dd1c0fe838
+GCD = 2
+
+A = ee29d090e49f432d919a167718a2326c1dc349eb0c440da2b7c2c5f076b63ecaa82e8243c39801ad55e4bb61f4343526ea3f104b726a77d7828b89e497f45f13891e72fffed6292d1397c36084e9f4874ec33138c88271c2f3b5798dd4473d01dd7d671ade1aa089acd55c5c67e9bda517ce483b7ec8a9c3ee07f8d7b2aa90d3
+B = 3a7964d6c34f24b721116517746b50a010581f851175c09ac3925294c11fcf82a6a7dfda5b9a0c8eff004fce8b4137629da9a3a39d8f3cebd4f1882c580c64d205c7d40567a3b23d14fee1c6844c0915df7bab14d3e6c7092e336c364a0054dd4eb973829cf67985fff676cceffeb179847ffca25a904df326e39188f7c802de
+GCD = 1
+
+A = 8f86e06ea9b5a09439d8a3d1882e43747e43eab412d711dbacfeedc35f0a0164568400bae37a9afd31a41de54e56778658c116c0017eb3b1ba2f1cc36dee7ee20c36b7169fa46abae2113a058868cec9f4df74a93fab7a00a1123d47ecd62e769f7418b74543570e814911f2cc1e4a9cb3a949fad92f3ad1d8dd6ebe12ce32ff
+B = -8e24b629a7ac29a0b04b888b8b5d85610136f103012f2a993c986e6ae4ccdb7a5761fe803c08e60007b89c7b3439cbd40fac15ebf482ca5c90338ac30454398423fc227de47291d08009a959d63c266296ca9963a3645c16f705026089196eae7187a7df82831a27ee821b6024e1bb6e8f860b909eedab00dd6362681c4dc83a
+GCD = 1
+
+A = -d2db5230d1d11cfbcbf401a7bb988408bfa92a169568d9c4226b59cb3c10c72d34e548a5251ece69978580a761b4a982c2151d3408ff33e3ffdca34f111ac025cb712ce4a20ae5e833bf92abe28a02ddc554d2f21e5fbadc2a39fa1db87cda271c3b1ad57af5ec7f3af6f108c4ee07fd445c604e7fa73a7f40f7a2512bf896d3
+B = 6e63e8e2f79c0f96c1b44c14f563d0d1a129d03b5bcff5720d84c28ab2d65d101cefeca7f7376b9c40ba7679f4b02b6fb6e6a1d5b1788051736943ebabc57579652cb26b63e4b50d5b445355a82bab195f4ace074004af856bf3b974a40f50e5fadda3571a914b528249b1ae4ade1d77e791f6fd1f096050cff54d3b714051c
+GCD = 1
+
+A = fbbe7a65aed45fe825de3d1e42e3417a0f87bef39e1b3cba51243bf320a6bcb91bb5df0eb934e601033945e4388f8af2b2b5fd7a03635e7b8a2d68e2235ae82eff312d25103cd31aafddc8e88ee01346266760414a46de0ca12b164f7e6420c23b084ff28953ae647018ecfaf9fb1f2f0a4dfb48f6fcae372801d9458b369642
+B = 7d0fc73d3ff7f2f0071f61c8a0c75e774ac6e9a46e120aaa5e851f167ee07ce3994dc525945551936276b036d3ccc0063dde1c963516103a4629125a8eaec15e96c5bf6e536aca39b605c51689a5d7b5b82907702b07f598850f25c9118f401d30e554f8ff450fe4693700ba6179e78e7f19c36147a718f6da62377c9565ec74
+GCD = 2
+
+A = -5c9885a9a4e82efdba48fe9aa163723cbf05b085981d92ecb9669789e171751cc8c16a8fa33b5ef2dbabab27bcdbdbd80492204ae95bddca7fd282b4238bac3aeecb63c0401661dba005fad19f336ec2bb026414ab68b66d3d0be57d845e45c597cc10b93ef23eaf307c0dc6c96fc95ed99b6325917879f6a47d372cf931aded
+B = -56eda4e3fb27ad7d32849038707cb1f9f453169406441f7faf2844edaa161d5d0373dd0dc2b462922ae3aca20165d098f4d123e26d19e55100f4a2186bed4cc34d6dec18c894c3d3beaf1318514ca7debddfa390308286d263a1f03bb44f56305f388bcea1794ee820b6e2c828c607953a466b00b47da8485d27bd85e3df0f1d
+GCD = 1
+
+A = -ea08bde44d189903f2bb180cd15649d611f8b24f4e1176f51816d9ff2413cc429ac7c043bea266345cb9bc4cdb907bc8e6a8de935ca8618474dc61773eb6093474f9476279492daed490a89b1993c8f88f1ee17a3ece6144d37e5385cbaf9a0790406adafef398c13022b54958559a00bf7ce9306c1eb3233e373d94a3a03878
+B = 23208b8db7f2fca5d86fd000801047e615e222ad327b06b0731b58706df0584e98e3d8c0ad3854bcffaaa85d3fcea5c8f11588c460be69e8c7d860d3fdf3b0ef885a7de5020c239a1b7e07f77ee3afa8d9af88cb7d5c819e8fa35d283f33032a0bb14312b0b82f255b123d0ed7d4918b0fc7c59060815cbce0c8196ff9720baf
+GCD = 1
+
+A = 40d7af35d73fcd7bb0db090853b0df75e01e5e460e7e2d1d59b5e7ce8f34f95937093385a306ab9e7dc1453728f0969c6f0373973e17cf9c771ffe81236e705d42a76ba20ecbbf0a2f08e5475b826c614a65865029f5812ca0d43c426073169821eca32801c3fb093b79a7b48f10792d59eb5546d5677a04bc58e311e5d60141
+B = 5b669b76c2bea241fb37b23f2e31a81cab2b40c41a48d91686c9877c0b0d4e291ec26334058210e680d0c98aebd4c49807924e2b2f40e5f9ae4ecd098152b1a658b26cd87c77dfa93218e87a172082f2c5b7949bd86574b4b4407c0409415c465767d3fb2ed1865473cff6fcbcd616e4eb928f45b44d80fe767ef760390050c9
+GCD = 1
+
+A = 35590707d2c08a43b87d483a322ba5807696ab1412f33069f39857e9543e149c5636003205b22a0ff3bdf2b29f7f4079ca21210c88a29e9617951ac6d0101326e9a18b5bfb3d78b391824e46e669571a5cde0e4c862e8cf80699fd1c9047d05decca517f0ea727465a23dff61b4880acf04672df713cec9120a5a0afef7b8311
+B = -911f1422cc364599a185070ebc291953015acc84eca89c3edc27fd7343aaa39ea299f4fa47b38d4be4ab3075f2f658a36afc5c9ddf205d5a484973c83ebddc7ee2359428ef2315de59a5ad5a606b265f42041644a85b93cbbded4fafaddbd65ea4e549a67423441af317ce5b51072a3daa609cc7b7f3f33ad906441ad1903e5d
+GCD = 1
+
+A = 55fa1d4d81cabbd6be4418918b5167aeb56ffc9e2c66e01efb928ec1a64db119aea07d16cd819f3ded475035019a3f5c12a9867c6486dbbaef5a07ed3f36748d4419b4040ba6d1965fa1aded4a410cb7c5c739a31a81ea95a0d460bacec055a6f06f8e8bbb70dd4126eb730140eb5b73ef7b7dbdc1a0e0724cbbaccba27c443
+B = -27107265daa7a6708c938d8aa6018e17186fb15e37f7bc4539d5269dee0d111799e0fdc81092f55e83e49c8560269dbf0531af1bfb8ed97754929c21e842f35045bf6769f053d8f0ea68adfced5a70bfe4a705fbd1a2f95487d5a1a8e200e04860b91d05034c7bfa66fe37fa2822f219184b522041ae964c7cb9e6424682e831
+GCD = 1
+
+A = -be3f07aa74a66505783d44475fa9cb1a54ed573fe324a644605eb052bd3d180bdddb6894fb478dd6de6da624fae5c59efd628ac4d6909bdbfa24b6ff4f77afdcf35c4022ec6ab0eb16da546c4062a8077f7a008dd24e92431d66ceddee1b9c7a07ef053979f12100fd7aa9f57f943b1af49d74542b6c2bfc000d465e07836513
+B = a042dd9632a9264df8e736267522c60cc23da0f7cc1dfe38dd68f7e1f801fbcccc3a16150bee8758e9295de45e23b8a2dd05093288152b4e55b8a51bc8a7fe1c5f36467b6b26a9e5876088e07c1bb518f114afb107524dd392742ccb64bc3ca21dc30019a61ec7409cdea9bbc65303a5b5a0291f891b48d86991a7625331d45d
+GCD = 1
+
+A = c5d510419f102fe480275a07e90cea34f791a21c04818994607c51418f148a7d87d8a9bc061131fb13cd521b39ca711358e3a6260e26e0c985af7ede409e93bc8002a349246b97ad43d36e239107256aa6096420f7b1bd902be95f8d4646a908f4db16adc4fb949821267d1b42a760a49d38f45692a657e899b7993d6254217
+B = -ffc32bab6fb45a67800b70a696430fc6658babe4cdd24a42be661ea59b99f68c9dc615da7b622ba993ddd2fea3b7865628f7588fe3c14a2273986d89ae7d8463aec4b7784a0a848564c49dd61dd91dc18aa136bd30aae70c770b11ebadc9260fc0848a6ece5f7025d9f4b850963a08f65944515830b735832c26203395869d27
+GCD = 1
+
+A = -66a302abae8e8d22837778086c4a5446a9f153b75982d19cef2fa8f34ebb3f8416da8db43730e83978c918cf757ab68237ecffeb6f1f66379c5a5af9aae7fd25df3951746c2a562816d449996a0468b534b9c6f7c32e7ce6271e97fe75df1629715c72a48ee76f54d10f737040da723b25756a01a3f9f83e541605dd6e711c2b
+B = 7862f54384670a8374b931da72d32ef47c97171804cdc227112278e8b128c3e108a2da1e9408eae8124e954ff2bdda0acaa61a7b347fcc8ad48a83e62691ae58a48298e76a9a26703909d24ea7ff04b357d283bfce193b4d613e1d521f38861975e27497c54d9d52c671bca8e56ad517118deebb35828c51b780b7b73ed5fb3f
+GCD = 1
+
+A = f40a35e114b30eda18d139407068b47f3b521731e023e4bb56efdc78e9f2bfb8bc837e9218326803791dcae3d273eeb2305210c480918888723ff54ed1c7af36e195a3282167bded0c971bd124c5940d10328db029c7f2e7ebb1f8a794a69e630ba53b480d5a3e0afa11710d999be86e3865c09ee628afce19603997e907ed04
+B = d178894ee19ff72043f9901fb9fc14ee3c14fb27c4a672e4030149d05570c11f231b7d6b1baff764e6d8fde86cc1f2984713274aaa15102fb2e13c489652aee46db185826381c8c4956e22811e4e9b86dce4b016d51dec1406f8dfbe17032aae4fafce0806057de5ee00e60a87742476cf6ee59bae42825f7fdfde806ede0e5
+GCD = 1
+
+A = -6d2bf7e3b56c003edab5c0a356cd0b46a2b85de63da5de19b86e4e739b3e6a5e180fa2adb56e70a05ed59b9d1cd29b5d243d89ae99767a341aad18cb97d81ecd5c4f0a4ad2dd8e3d39417464700f8cd7486db214591b9f5f9d41e3cd2ca286d2e653c92d75d993f6e37fff343c9470fff6a6a79b5b8badab82a97b374835d973
+B = 13fc8a3a132ecb9746994a95f75827429f73a4342e89d14f67ba7cdb404752055e06fdbf44bd381b815b986d2e621683c869a7031ef5b43c7a38568f100e7a35adc2cb8a5819d95d9ac7c5adb6bb8523283f0fc233ac072778cd526f7c46b3a1df886c7e46dc5c3fc7a768890e7c0e4affe2cdeb4c9fd59706a11323e349aacb
+GCD = 1
+
+A = 23c2506bf90e469e550aebf406dec7218fce3c95dc067abf5b2526d032d0c35570b9cc42488f802cbd14b5cd50b17b4380b94ae125e98179f2ead85da7dfdd3a06828272a57f144f8e228b91a8d323096108c5eb9287e24073925ad119eac54d23e1df805c85dc87b53dbf907b12270de3bb358b50ad352dc08eed4a35ab3a3c
+B = b870fd2a72f1e3059a17417fbfc62ec14331c22fd845015c7a132fd1793910ddf019e04b88eaa27fa04bb71b8a7d65648ece878889607cdd143e140cc50309c5b0b59643262e5a446310c8542b5ad442b5b384b0b044b66be44a8968f5a39aafcebe553914e22965819bc64e5b81babf8423c31b6eac7078c050641a580ddaa1
+GCD = 1
+
+A = d98ba781fab893ebc563f70717b1579b9aec15f4ff543125b2321bfa1062ff212a24a6f12a5c9149c9337dcf90dd02055d1340bfe8c2f43367fa956d595e81904c33593d2d2cf99961d1b0c29167d34f3bae2a1edd59f5a8391f9214fea17e797abd3aa22197697e3dbd5880a14da22e1b5a38f2e7c0582944de093a9b02ce91
+B = -85c9a8585f15bf6d22c013a3eecbacd1f7abe74601e6355b41394ceee24af75e93711ae7176d7c09ee6ff6152254f7c459db995f72298184bd8e4654d41ca83c77a1a441fa497770e60c6a4ebf0469c9500386a12e9fb018bc295a7fc197b6b4bd94b352e48ecc939bbbeeafd5baf8ef15826c8957cfd64facb60558899ad536
+GCD = 1
+
+A = -1fcf241c0ea8adf4bb4b280ba94d2eacb501ca71036f841daf004a8ae5725babe80ca52bd218220a3efaac09800dc6754db380dda1f1b0647b1571d70cdd5364c89a9f8351dca47109b4f3da34c577f3671825082d2d02df0d86db392dc861387b18fc1a40573a5569c5a2bb04cd2410a487895cb226d78f468d0ddc56730dca
+B = -f232f1960071ca338f9798a0d40ebd8b9b42480c8b824ebcdba56950427732cd8eeea8a8ffe10bd704cd09ab41f9f3cf506d2491ba2470cf6e845d9bc9838f4a43f83f48713de57e5590754eb8745254715618e190ccb7dda686fb7c214b0d69b8fa8d5ed64b23d218afb5be68223b9e64631c2f8c0e889e54cae11ea9f173e0
+GCD = 2
+
+A = -d73a6808b73654db2d7af9edec52300d1964a6fea675d363060705de7100a904d0cf54823c870b6934f8c1596ac85373813766e36fe2dfa1cc3008e29fd16ea0a353d70946d07a75fa0b9cca2b7886b2a04ceb8db84cc4b29ed8af2fdc63655da982f9c6901c33e8450e9321b716e4f340190a22ed18001c738c6c2b8c7e73f9
+B = 351dd90eb2a8085bec451a725432485f645e4397ceeebcb53d46a165224fe5327ec955548cb9da36f27728f14814aa1c4e5d44f38313b6978cf1cb6ae89f2dbebe58748809da73b03c8b3f35fb847e1b7ce57172586fd7d28b6e94de4015faaad63beace642b023221193148945d3ef2d75dd6e46c554d96d617ac5f2c23c3de
+GCD = 1
+
+A = 8b273a43a24a73b8583750e5f20a9ee68403d3fdbc5d5cf84726325c468d888e568b8299fab746aca92aa9dbdf547fbd5208aa5b75781582775fb9af329ed090f12c81a28b21641867b584eb1fc433301c980b034fbb13038c86bb9c12da135ce54d9a73d31637f0d2b55000f99d7b730ea1f80be12d61c100d1acf41ee812b9
+B = 5fa5449a098a665d62160bdd0a0f2e3223e745e35ef8b98c316b8c5589146441a352bd6b2a398dd32ff53a6681b48e2da80e099e78df01e23f5368fc8e374bb843fdb403ec103b651ac8ba7ca1a24163f49fd64d5550e18f13365f5d01528a8135e2a8eeb9b862b600a63a4fb6b2bb406b60b97dfa57ffa60aea87785f52f189
+GCD = 5
+
+A = c5bb6dbbd1600dd42f9318b40ee906ec90e830586f2189a1e9b5cb3fb3f34369117e7ad75e9919365487ab5cc246d5e54dd49a16622785b60dc5a5fb0905c0d11930b341b10700911f716eb7edf8e27a60e04e59054028eb637341a859925d3537714e126d036852d66a5cafeb5c5e09cde8e62dcce554fa0bcd44a9e8d0417a
+B = -eda665a311807c185f4ed6a55aa5b88fc2203c170b7d8a9f1af3de49bcda113869218a0bc99ebc277f74dea776b6a88e4e79f5516b804929e39ce6eac07b0d26e582422b347b8378956a641c950a5cb4f53d9b7c9b830fe10f8496e388e9a15005d4706bd9bb0414b4c828fc462de3023796f408e8d6015c11dd999d0d47d4bd
+GCD = 1
+
+A = 64e4fa037fa48604a5bc62db8bc35b542946707e500f67f46d54447673acf3b54ce01b1b0bc141a6c6bc2ce8c48cee4d94c3f7d5f272735374cc4fe40103d39c337be1bb97fa90ad5ba8c5459e96f5a1833de2521f987674ea5e7c2c922cca5b37f7f12f0a847c160bf578495d996beff32717451fcbc8758680fab9ddf13ff6
+B = 2cb7a43f80a8c11b29011853c7b981697bf934e8b476668433e0754b7bee52799dae1622513c958c2008f69acc481722c70a1a30bd26a8598e7d9ff9ab62c437fcc3399134e651e0fe2ff811793cab06fb80ee79727a91c00167b82f2c91ac5fc850d7e348e1f9fd9b43a4ba0752f9cb8cd48beca4dab14498faff4e0a21294b
+GCD = 1
+
+A = -1a18052e2a02e8676b55407d91c3e859d96a0cb155551538a5f22989c52ebb528144216b5f82e43ed722cb057c75a7796c1e1cfa93f8daca2affecd251c53df3bc536d1f3df878f31226e2198cb27451b05d40399ad8748b6b6040f5ceab39f2dbf0b1a0c8f427931f9e87c2e1fb3cfc33c4f3759a3194fb222030b9f30e8e57
+B = -6118ff3b70715c15c2cea688d257e5e791ec872a63509c86e192223b7409ba4d3105487e168392149eed8d7410b982052e65655f6c328e86729eb058fd006eb8af23de42d24de102da1183992edd0ab83007fd0b3b4122ac7a81a9ff20162dfefd00332fdaa1aab941fcdff9a62a8b732734415631185a261975710402c01d90
+GCD = 1
+
+A = -819aea41d2314f118f2a35f2918d9bbb91d66071193711df4e147d899f7d2c4922c546dd8ec850c06c42843c8357a6d237349c6b8ab3f37781508a852e67102933334c0869a13d0885edebfb291f1a280aeae31476fc917d9b446cb178cee7831d4248fbf53337d6eb72bcc4a30410e8060266e7fe5a8d6f8fe925413d7f989c
+B = 73823d98c1ed2414abdf1057012377c0055282639cb8cef9a9a8bd06b4a453ef0ec72560cb853ece804db8c77f374fdb39d872db6ccf6b5a6e0a5dcb4aca53c199817862f40ed9f04428778ef61ea72fabac2eb788c6fb4074f5ec1adaa7910fcd73ba2b84594a2533157de9e5535bcf2a6a4b81a5922e2d14782aad0ac24337
+GCD = 1
+
+A = dcd429b1dd6dfab665e9dfdbe7cbc1e95e67130e6a53127cdf37a8528944227ed8a1650de2098de9ecbd9210ed3c692965f35631214235c5fb58bc4519b8e2802bce00d499796e5d71650359098ad82fea34e06762a72f1fa419340d882b028bee4342295b836375bd6e72bc3efd299340cb3c4908373bdd3760ac2f51163072
+B = c96d1e49011c27f9e66ddc8965f3d2cbbe0b4a0846fe08d0d969093550623804dfe30f5032453ab751dec499ab8dd3f6d5e84ba28b2452ca9e9736bca8738917096b7c1de7f7d5d0b8eac389f479305bffcb50295607b66244f7ffaeef340a8dd94bbcf0398593c9fc34dd86f7a4a3ce8285d245cf2695d2e825df6dab61fea6
+GCD = 6
+
+A = -e47a3a8cab43eaeead21d9b42f8e60fd58c244bb6c654559c7ce635e7a7916b953493d849239ff29ae458aee50e3552828831062bd81c14f4bf0e25dfa00ba954d9d1d235e91428beead92b99b2527a728d7ac919b6d3184cf00173eb53c73d4c5891b2897ce5484753ec1ac58393f8ce6891cfa187520686a900746863658f3
+B = -e872e0a28bb17fcf34b13fa4c81da19eb465e81c8201acc77ec1922ba4457b9d9c56c9499a2660479d2669c56fef85b4db6428212cdec7b251c8e6c6696bea9a5ce47b8598c482d56e34fd654bc4d9a292bdcb82150ecf41d76309e7fa275d9d2b31840e3911ae801bcff8039628c4d9d86c22b12b3978dcd4f51c8821e2e1ee
+GCD = 1
+
+A = a325737a25f0bc388f812d88a061e7e90ff40d1013966f8dc4e98d6798670c221bc264f36cba7c29a0fc2b35062c9d84813844ae987404b611cc8ee76086e0e0db226e4288ad36704bd2dd30169ef00376706e39966e91cca894f68c8126edf2614f3a58c88e02396b5e73fdae0f8e6f1b59f405e1b557d93bfd517f538b0f04
+B = -648ddbad4f339a2054824820900bf35bef95d79ea1b47c3035d9f85889ed2cee5351f0a5acc4251843a6e28d0b7e9e6e8862ae65276d5fa5d42c5db7a3613ce68a6d3b4c78139295234d8f8a506a9e0526b1a2062e6af4019f806f27ed15f50c9455481dfaa6d9ac2878d60b9f54f959019a8fdc2655b6215832d474ae6b74ca
+GCD = 2
+
+A = -a2628d2c301970dc4cc026f468baeb9524c75e6b42f2c680fd2932bb4eaf85e9fcbe2ce3e0c36c20757102ec59d3b7cd78843086c3d9e2276d24a4b17d8af2b39f401f171996c20d55198ec549147b91b87e2c30ed9dca77f4b6490631b8527fd7b9746b56b23eaa2af9e3b8ab2ba7c3fdd6768e9f397240896b070044cffc95
+B = -90e3fcebfaf863b7f2bf393adeaa764dc4b65082511f723699eb6ae4230b808f94b938706c7ee626d7e53e74d5e50f0df0c21b7f013d23ca636a3e1c5d1e0794d91f5dbe6d33fda87d470a150ef0a3350f232e6b0fc8ddd6c41db47c4e5fcd32269343026b7347dbac9b93c560d4b4962dec2cd9160101d62b1ed0b919537b74
+GCD = 1
+
+A = -981e850517d3a94fd1a2c79628489d3e64bdca3b15c0f680a6c2b1de31f35a472248d57e2118507526a0bf25b6573acf9d7acf9477b60ccb0b077cfcaf3a42dc2b1b1f5a34071f3fcce65905f98e754aa90462374100b4c93f381b216ed808abb48ea23fe6402ee3a3fc88118f992effafa2620b17bcc1551819d1dfe6cd55e
+B = -33f6f2b67f5804020de6ac81f61392d3dcb492063505b180d62a16a61956b0e07aa575975ff011db7a04b370236f5399f1e07b9f0a54a662b4535030e916be62b595276d5c6cfccff7a8fa243c96d29cabba3de08183d3382978d459278080162519872f245bb9bf13a1290630986ab5a547e1b59655426015e2cb70b61c6887
+GCD = 1
+
+A = -88287bd6c8d80f5285b856af1cd02b619aff37fd8673fb12ea26ad3c2d3e646ba92bf68206402698b61bfa583585613db1de5cf910a538239c90024dd82f71c315800946f7ce7785fa1628aa5f6ecbb2f6f75427fb07bd031e4b4e4f5d9c4b21e7d7a6e3e797aeb4106d75fdfa564b62b5011e7e9f159e4ce9e388d0e5c81678
+B = -5d3b18470511a0001449c8b4f4d808e65de40ab2f0cceff3e5cff4e02757c0c057a15abd85473125be29f73bf048941c12c0c0ff0908e336bc2549f5273784158e90a2509f765e8cdd9fdfa70214b680c290869718bfd0d7c151e8728a004255bca8c36032b221bf126198cb0396f28942dbdda55173f1e54bccb0f057c8f84a
+GCD = 2
+
+A = -e707ca4c7e05331794d2b91e8849877ada09f2321db4da06ef7a47476a47afe389adfee8a27512203a208ef5e33f3cdb0f4b13c0d326fd103836824d6eff00af234a737b86989a35b99d01bd30c92ac8fbdaf8540a66562bbfcd7dd1fdbe1c5c7f00d4a42dc48a4b0e3908d5fb227c0e6e9e9992847de45117bf6757196da929
+B = -998a728d8ad5c87357b678a546f35c5ccc5f8f32bc3152126a6febbbc338a60a0f0831c5d55eaabe3c996e02330be69671e1690aba744e4efa717c5bd4eb3ee6c213947276a84bb0ee119ff259c9740ee097d2245b94ad7191e625afb9f5c85cf6aa45baadf2a5837ca80253e61367a12318c4128fbb8ffbb34aca9679f6a340
+GCD = 1
+
+A = 489d0db8b879bc4e2e17b7e4d0ab8fbb1cb326952c18a237a178a1d5cf46a28a53fb12be40dc827b89229d93b6d325c36815665846181eb3fa0e2f00def53ba9752d4f1e4b9771878023a0df23fddfa5a7c68fb1b4133706afec677180b414268c94516b3f76d520e12ce8f9241605043fcb46e8c7993cafe18c623404da40c
+B = -54c141f5fd5c3eb3c676320d0f2a556782a566d1e70d7ae1d250befb081ce28341ef8a32eaa7db5c403e7c20b855269fd682510581ff8478f57c9d187575d16fc3b833e6e166a9cc74fcaaa6595016c87e1ae96a80c6f8935cdb6433bfe5fce93c791d0858df626687a9e0bed30233d6ba6770b94ade68a22efc3dafa38cfbf6
+GCD = 2
+
+A = -5f2b3e3657e4fd856c207a6a4948ff5ee2011ede8ac0074c46608a08f875f6380e5bcdb1a57ea99ca05e1736ae34304efebcfe34ccfd0297dcb34298363964d854dc70e9882e3646f50266bb6444fac30625041bb75b68d2bcc1bf25c9029f0959a92a940d49ac59082c7a6d4bd2b7d54367d71211c2b5ee0c3559ecbf8bd106
+B = -d0b57739ea96c3bf58c74fc3990e334c77680d7907a97137e708be7bed12dc4d058be1eceea84f50fc60653e73527e2a1fe790813091dd6c65df97e8258a8df63c288f2ddf36538c533567947e275784211e89815475133bfba7863e4e4b635f70b43c47ddfb439363e2812f9f84d7e20bf0346048e7f19a22c649123e5ea393
+GCD = 1
+
+A = 70d8319092dd9e7d46a45449912beedae9bd9e38417653e83fbe1d5cb58380df617623006bb82b7ea1580ff49a32f9a97f6ed82d69f1074823deb7548e87d7331e0602041017f75cf9e75f79aa3f8a5e289edb86af95d0d9a2ad3f434f3d3c046e89c8f35b4bb7cf4ced0072524a5de7661d164859719624e147195237f26039
+B = -984b2883f46970ec19ac99a031c104f669a8894a88a980594bddba1b4c40856298b892780bb92131fcbca38aaf6be2c24e965e24e70900e00ef837196ba609542a2898d97f41035099fda3d118e1840b77f1f7e77725fd932caf71b7438283b7ba5f5937099bbe016303abf33297375d68b8649eea7546f5c2ca3d2be6b2c42d
+GCD = 1
+
+A = -d1562afbb22aa35e4a1e12eef7de39635c6d10f92572cf3a4eb9527eb76323d041ddf58cc22d8ba29a02fba0ca1ff099718699abd6dc66adafa2f3db0ebf337c18ea75a433a4a7be9e318ad76f31608e7d22a5d1b9fad122f067601c89b2bc03a671694b6f8c12cf475f2372ed4bc90d696fb4dae54279d8442239234aea7e46
+B = c51ef6dba8a9c5a036251a9ed6408120e544b8a2c9e360891d85099ef0cddee4eae91b0935de6cb08e04260ef9dc673830dd8c49dfc59d734b171f83579506c884ca5f167cdf57764c4df1d10508b30cc027682159ad772691ec1c39c586b557aca2e0e766943fdb7b7ca75bf6d0327c1ddd03a380c04ec3c12f80ca55bc7752
+GCD = 2
+
+A = -d376809df7e77b76db511fa04ff9b418d32ea16cca0f27b89cee5c63d8960ff1920dd69b9b6ebd76f7eaf1e8b7e2abdc81f5ac5cc7bcb7955ca33298f0e49aa68c639150e998136410bd3470195f478d14830000a7acf81ae15d162bf7106782843ceacce675ba3a62441e39722305b396b29c030b3e9db6ed15bcee45fee72
+B = 4f4d97e3936b1845c2fd67135658083a89a214ff9f7d0cc0e46e6faf2ad832de0a069f80ccb4969a930780704b72cd3ad375331438ffa55228597e12849f3f857430e078ead5fa023a77dea27fa776f2b8bb51c717ff9dafbe150accbbbb8ea7ef91110b930e078b16d857abb3d6a1cea3c29b761059006592d3ff2a2200f7ab
+GCD = 1
+
+A = 491b8c302ea139cf13c1232f3bd8f952f85c2520da2d601177945909bb8bccd950304ba655cccf2db1e196822c0aeae5adcb4e71680f34f5914faab4480a2816b6630d7e7dfe263011e5b6c7c0e6a7f859e0c03a57714cd00a2671897aa7da1cbc7ad295cc1c0f94bd96124e078b59dfa1e38fd19384f20f639eab818e66244d
+B = 2b30e10ff02d9464c7813af10d74112108bf320802fd2ebd48aaeca72d9d8554d92dc6a9409b0d645f3c61d1dd07a1b3a5da63a7c24121a3a1c8be82a3d024d86c9e2e72a252b4cb2b4309a316c50d97466498f458b62f652c9aea1d6478e068e66f7e2f7aa9cedec4e715ba636c2a082346288632eaaaf0e165d7e8e1084fb0
+GCD = 1
+
+A = 7a1f9eeac0d5a1e063cf102defc67644835003a509ecf4431388d299155e5d16f2654d2c6102f2774d35eb0f6d50e53ed37e57cb4634abbdaebfcfe5f66d65b8579e5cc5c72e1e2d1cbeee8f3db419299ac529a55f8eb94575ce1ec8a248a3d72c0e0c7d311ded04f3fabab61e421638323e79ca6ef5e0cee57e9f32581bb4cd
+B = -c44864128b6cf55e3da20fd5363f3f7019fe0e0eabd99b892df01bd185ecb841c7898bdb9b6bc7002e36fbf4ba05235c76f8eddf49bd98fb06a80c4e4bf47f7165226312641f614c15d52fe72c11193f3dd9353976a49563362ef7595b8e4eb048f2f64436e007d3f1f80cc95b56fd731876b9034cb9c30c95a4dc572c7a5919
+GCD = 1
+
+A = 7aa4b293d7b884c068f99a5e71d4a53c7bb9a7aae198655602a54280abdfc355ceb625769ff94911fffc76679b1970afc97453d9147309f9887f690b799fc41980b984408cc30c34a53d193fbca5d5fd1a78ab292195260c1c719afe66473c7d8242650bb43b3f21e8d0f6d57eacbc63af19968b7614293e01ae2348c4d767c6
+B = -bfe3405e6845b04ecd7503e3a3041a6b881125de8f5142e3a71f459a471ad5f4e7c5e12c8b58e3f9691ade00013f050a3d094c35a121d7af383c700a8c115201b1f49fd606059867372e610fdfdace08bfa195c38646150a1b1f71e72f4a0a84f0be95185d8f1c2a777bde902f474566ee87393a1d73ae452363af398ca6d0ac
+GCD = 5e
+
+A = 154b0d59c72dc6f70b690c088233ac0e3d93e9c474a722675c2a04d07050c778e0850c6083a6abc9e1b1579a65fdd2a254365bb9ed9685d6b0dff07b792bc04ad35a12c577c41f18a46a446c8f91d0d689ab668f5f228bb3f7f52c9d63221d30b03c4d02d10d63dadbbb10b5bced629f88ebb40dd28ae4961894963bc0152bd
+B = -3c885a2244ee49e198d3b751900102f0cbdcb35b0d4a62183443a54929c30a5629954a8ade9f4947c3db81bd6e2b7fe84fd159b41f5315191c1061e9463d2d4cd49dfe343b6103564df3e0e09d74722f3b6bfbd5fc556ec61ffe3fc3b4c5b0a2c1ae6fbe2c070cd9513b78eb025e14e71405e0c616d4c9f30c6c9e8caf8e3559
+GCD = 1
+
+A = aedc3dae0bfe44496648449693b32d9e1288864da804f2755b9baf23a35790292f38120b4ab400919e2527cdecb2a0782e8f2abb2c6f167345b61b9bf961b1d4efa29879c1e949dbb698cd757e1eec9d1b8d2f68a3d52712ca528146dc2efbc303ab71bbea8d668e496b13d80f9c97b7b7aa0fcc7c3bb5fbe49fb3ec12ad52d4
+B = -5dce0a5263492badb406a685554f21822da52f6e6ed6c308c95ab33633fc510a61ca25c34488fc5cadbcfdad10ce75fda83571a8a8d18cc8f88d5fca59925c9bbad78d7535c60efed3b501a7f09e64d75cb2471857b11a430d914d9331e0255e7a1e42f167a4917f94dd5dd23f79ee326080c53d4019900b0b4a811aa45bdf12
+GCD = 2
+
+A = -53201d3cb5116e1ed891a6a51814371a5e6598af0e8638ca58f3b84b39256b3c72130c6d40b0a7612907522fa43c901cf074212cc05ba2024ba55e8993e2cb565dc26b211300cfb3d2bb4df9ab6746def130bb59e3f60323cfb693657f38ff99c7840694ffc292801c921e7670ca3e221fd727677e14a23f59039243ce11b699
+B = -784fdb52ff6f2562892286cfa38e6d27f975e64d68b1f27d7f4b911d89f41d9605cd33bd3e14b12dab59db6f36e700f8b811c5032bd6e1f48cfefd3e527651145c35eb3cb61c6400a943c44cdabad5affadaff9d8bd5b6f1fdcbc0cfd489ab95e63e212d92245421227c0b97bae9c8def6724dbf80021c1be5fda067cce5e818
+GCD = 1
+
+A = 522384feecfa9a7ed6432f8f0c968f7cb4b70dcd64ac92079a676182e1670dd7b5cda1d78b52f0d68fb8eff7a7974a24b6ac2f141456d94607f71366d671d549ad7b22e476c11c32825967d58b149e4fb0d6ef3395062a7006814f6f502f606a714a60ea2a68549b45aa7a2b489479e7234975eb8aa4832b1a5c7ba1eb45e0b4
+B = -66f473cf8daffc708dd2d607aad4302faed9e869c65b32c24538c8ce68ed2ef3e8dbe0113ff9b75a1b94450535b3c38f394dcf6026c7401f9ee5d5d661396ade9d26ab389428d7df8382ba80d79ffc04554419dae5b29a72cc6ad8019b45aa0f239078f4ee8e40087859182538f4808cf90856f5f3dd5f7667f35595ca7cb492
+GCD = a
+
+A = -9f3a8d7f4c5ca5099be8aeb27ac88bc84a7c54953503db48fb22682097d87effb30d7ab99d20a774f1f56587ea21aaee6b18981027a406adaa2e9044151126545d20d3a676bfe4267d0a0cd76f9abbd18143580db1624febb96458de255c519c817898f53062fd9315bbb0104206b0f3c3664468232984cfef31dbe7b4d92183
+B = d5079ef5b65d765fae1f1494f91bdbc16f746f81b5489d6ba9e90442d1ce4ded8ed3543a2a74b2f96c6c24e343157274809087cc9c09d49f1d40788bd00bf2361fcaa2de41895a4de9da3953983ad9d0fe4c66599ff66543044bca600305a50f199f232e8a7dcb461404bf3eb0793dad42d7d4475ff253257ad4460a8d9fd641
+GCD = 1
+
+A = -c29022251da8ea9d1797120a448e8f5c506f7a666153d6f2dd57936ff0d68cb3747b5f9788dccf406e0ca34f6468d78c24506503004d34f297017cd45ed782707ffce61f90a97779b1feaa0b4b527157e8de4557372998183fbc4d49e2d3cc1f33731c8b17a4248073f107fc152d471d96c6430cba0b939ad0a3b2017fef8f95
+B = 167a877ca2c4ecafa18fe4179bb71ef26ca1b50fc2bbf5ed0384e1415c9d7d75ac25d142111e51e3b1496ee00fa916d382304cd525afce6cfd419af212999d761b12846a749476a8c5e7d3a3acb7daa77ec7e4c33e08235e091f6447bf476b2438bbe3f6627089eeb524e5854620e9a3d52f20a6264de93dcfb75ff42e96dc7a
+GCD = 1
+
+A = -f1b01a508c7a5e1b83cb8c7d9ba74419711dfe32b252f284b83daf391a7560cc9006d35a2549cfc9e4cff464d8d9bea34e9a2879a67435932503a8f37f563074d00afa79071cec2dbc85bd9f2e5cbbdd42c3f2e8ef85312368b46b78329d27649aaf15e73aa2fd7ede847b8d7c4ed7033073a7867d025e1cb92b1f466e1d14c1
+B = -87d7d498ef57cc24e0032c3d05de96f3456cc5a1865128edef73a5578259b564f141edf89513ac601dd93a6c79b7d59c2ecba11f2f81f34d954b6fa0ca81e25ef6ae4b03879bedce03642d4f34bbad67837a997200feb3a37a786cfdacc946dcd8a5d49e7c02284f2ce1904313a54654289f9be672b301b8dbdedc6ba6af1a4f
+GCD = 1
+
+A = 48a2ca1d093788100b1ccfd7e2efd28a3b4ca2fc68a9803074ca2fde090c16f88cfcf8d21fc0a0b5d967a28c57616717f855e104799ad1f9cce980f6ee5746fabe7bc3cdb216dc9eb5bb809942159592e2da4530b26b1a48676945a9eaf75da4ceb677ddf7d2d9c0d4f40fcedb5c14d84c06bee4630aa608cbe7bc68e95d7bac
+B = 6fdebfbf71eea092db63cb3dd013b28a7face1169d6fcbb53d94f185fbc01502435e648a1115d019af6ab9fa0f9d754eb04ef4f47b827ef21cfbf0ed55ad367e340786146b81428a16f27734f8a2439e21d39f8e9fdf28b27e49a5877e26a55ec6762cfd9bf0c82fb1dc95173db2e9f8a5138de70d79304d6c9fdb811567ef43
+GCD = 1
+
+A = db659d5c87330bfdfce7cda7e84180787c096ac2adac3f16b8658a1aa1631a5536e96c82038a998fd5d92030c4a7cb4ee65e401461299e9812053888d34c9a1e5faf73bd3dc4e8e92cc818e5a72f29e2f645792a471a480ee644ff5b53d1735137f182b6ce6c13ff3df639261d9285ff700ca12486cdbf8fb1c82d175a0a6c6f
+B = -28d58f1ec6190366035cef8a48338f59591deaa7c15c2ac1f1c95ba0f6070b171a1e7ff0f492c503236cf1458bc47fd5575356141e432ad98c7babb5f9c303a585d78aa6b3a995748178906d7ac92ce52f438e01e2643ad5d1079fa80aad66d0a0f912986241390eb341338d3b39adddf4ff69c8988b431262fcae446171d107
+GCD = 1
+
+A = -72e471a443703c59a0b501bc06120f32b86835b9ccffbac7bf06de790d407afba8daf6b569429653ed56234d458c73ade9e43eb282d823d371d340871b3d37de1a30351ed86e5370aafb9ec3bd5c94b7500f8158d53f73bd4fcdcd0dd8d3d38cc90217fcad6d25fc4b50f5ccbf00ba50aeb0ef3b2a13de07e32d5c5ddbff9b5d
+B = -b1aa46ddfba7df7e6096081cba0270fcdf329ef99e8c0153410cced7e326944063528a3e82f4471cad80a66ae71ba63feebae5ec3a2747612df4a1bf4ac187da956ac6614d1be45ea290e2bc88a2112354640e2d08fc13630fe19da20af2720a810aa4ea51d48e2beacefbd60992d6209604c4ab87ea99a4496d8ea6df537376
+GCD = 3
+
+A = f40f9eba98f5a840c6d133f98351f9cc2a9993246d8b848fac591143d4d390fb6775f468409bed0addbb8b7bd97b9df07ae6d7912ff263e37cf611694dcc860cde7256dc80313f811116b187d87256d807628aceec86ccc0c4cfcf155818a75e6bc219c9f7261f22fd3fa5b3ec00587d12e5e35eec527640ea2a2f607358edf6
+B = -54db122a02aaf1e8356cc80a4dd8e40f5f25934f9d2385da7867f9582f49ff4a1c0b396b12136e8325a729e55cd444337897bd7e9b7c2328b60892ae879e2a7a102f1d20b6cda684486b1cfaf72ec410add82ffd2aa3c3f647e6a9e3aee957700de2eb99669468bf8b6a13a703785d0f5597760752b1ce1e97b659cadf1282b2
+GCD = 2
+
+A = c2919cc5632e2e2664a81140b59f3f11e0276b73893c359e351755d3b5fbf459078fdc0cdab8aed9799b93965f0624d85e094fca1a1d2042bbb904c4ca6b2e123713320abef0c6802af784d144850e468b04ec2248f438c8eb1cf7e35968aef74c4b7edc191fb4a7bcf33b27cb61e73fd99dd1a31939fddcfe7db0872d891730
+B = -d45c6aea632426bed9beafadcfc2e18fe6efe6a7c6a70b37f2812ecea354d70e8f3552c5fb7ca56e326324265240e59cfe7c595d26167c3dbcc7ed1fd6e5fbabe93ea5ded35a63a61ee962698e5798e28922dca9b252f62800c842915677a2a56989fe8c23986b2182b7d7aa09b13e9504232bd460e6a30207e44323301305ea
+GCD = 2
+
+A = 288e3ba8025c171a58e1baa1242057e7e40ea2493b5a191db8009dfc9f049b1fc8ca29cc65910d8ce62ae374c4af805e539f65449c89f6b2b682a2d33143941b96b25b21f638ea0d9d95caa534311faededfbdaf71eb65f1744314c41b6e44e697a3d33637ce8077ca382e89137d1da88b395167c11c2e3059ecf2f8eae0b128
+B = ffa3a37f0a81d560285c2cf391189ce07d3ae622e5d46d624bef6e218f14455fa51d796014f933cbd302b62c08b8e4b6908c14e8bea475fd77ff9e91a4d721617a8a9267885326239887275350e41abf437e95f5c59f567ba38cedc6970245d1bf2202e27e61a28859dba4f75796f74c07ccd55d9a0f847bbf28ff3b6985d963
+GCD = 27
+
+A = 7ef5b5abbc4d37656e1361be70d2d377733105e8468e52adce96597f449b0766d08996da0b94cab6fbb319ff0292d2f057681337ae4ba8e2288c4d99f1fd3dcc4c87a620d1706647243858f822e7628c8ee6fed2d74fac90c11aab7450645e787520473bbfa4325851c811217ba544b776984bb648deaa97b3f616ff44be7f93
+B = 5c632ecffdab62d2222c0eee1a8b294a5a2113335107422839ce141ff768529424ba7dc7a6f7d5d585a21c2a66af43a38b2e92f924b0b00de00a421fe9a852e06ebcf05b42b5871729404aa70134efb32c637d58593eef07dfd5ffa3bdd3f845b65c7226799b0f8a57cc980e213c5fe3ae50e4335607084288ef0dff127d0029
+GCD = 1
+
+A = 140db1546f0baac73208142e1dc6ecba8f85d13e46cfae751a39ff618cb51d359f84639b16157b649abbf060b29d50fa86de5929208bec0c53023bf508389437b46ac304315051b27e65a6e04cdec736392eebccd8fce1cb064206704c1f75351df4f4c9950ba8e5f1bdf9eeea353baee1a5328d992af90692b4f51b0e174227
+B = 2f89690ebfb9ff780b85352071f9b91ff03af4915382cebd1e276700b500210d94c92979fdcf6c31c6499176149dac85422656cc5b8ef675c6ea9521f9f9a0b4278c785f7bb1080530165e660070ee6b7277fd81133a01d1e74382ff9df98e2d93ab653f4f3403734f468ca0c92fe26e0a420dcd7201c51b18a2676474dc11a4
+GCD = 1
+
+A = 84084adb6cf02639893aaab4f35c700748396a18d3b112e04aac9e1aa9599de74bc67941dfc4163ea38d5555a6d4f64267db92cd8a4d9e7eaecd26997ca3ba4f8a1fe01ead6a4ff479b73cdf2c3f737020b77ed78df10173fab4c812aed68b8bcc53c56f90bf7bf73961f78a1bd7f756eefee6f4155a6354165ba721152ea72a
+B = -7c46a32ab5df788177f4eb44595339c1137d99d953cf6fed96c0236eb132ae35e3c5443247732f3b953a1ef84eb2d2765cfe31138635bd5169c46a0e3ca2e3ed58f8c82918cf1559e042ffcbe0511d64d4f4eccbab15f69309e88d34469dabdada53fafe0b8b93954ad540e03a7d30e770cd4895c8f6d465edec4204c749267f
+GCD = 1
+
+A = a981fd251483fc2af4fb7af6ab2dffb689485c04d8e129593029a93b215f5ca4766e8fffc7c09e61a07551bfba9c9df8a664f97aa8bdfadc834c4efd27a05109266283f10f6aef075be86cf11c2bc8d4704514f335ea47a2a1bb1704cddd94077796264e56c77004af7d700d58f8d2ea0f9279cb1a25d73819260477cf4ae567
+B = -6ae7fa3301fe3321d330c1f7090be90eb361c4c0a134a5b6f19cff350d7bb0e48a237d42b34a667e947935c329e49c37f44dd7a2e41a1476c0c49f8b71fb4412ccc64707efe1d4a4198215ed68cbb8936a08c11d33b503695a070eb67cff485e0c86358b417fccdd8f93be49cfef57b07667aa7b7ddc1b9d4c52798d5c8f9bc8
+GCD = 1
+
+A = -b631f8a7641b5d41b3eb612f279c14202b99a4207b3af5686de3a3b3a06af565dc40f175e7fa55370e450eee70664ddd161e72647986a61f2403fd63e28a6916f59f2ca89d2e7f547a59c41663419f0d4f47c3416084ebc55b0e32a7d9946d596829905535ed5ea96ddff540559e403e89070f76ded127a63356a887908970f
+B = 40d83735d70fc67b949d6c9011b424b8610c101e14b6c14e3dcc218cef3ed6b9a6937455df733cf28395a6bbd57b58f1bd6b644d7289c406c02d88a5c90336df76dcdb3915129435a295f8baca607b2d95be6f453cf33f27e54e904fa8efb468d3d3bfe42d205f4d215141bd7a667a081dab56b6bf9ac58a37384960f3d00143
+GCD = 1
+
+A = c283bc231037e4382a9cc3dea35145a0a27d81c58d93ebddf41a99a91593e502b85f309c1abe08400fcc242c92a783492d616c9769015770de653108562f7969b164e269112f93ee1eaad4914415790b64b74c4dc3a1c07d183aa9a868de3c8d2f49494e31c5ae8c849ee15786ddc265347cfff8b23b0cc15161f1a91066b4cf
+B = 1de4a88e80558a547a0883feecead664c4631b1f59d19b4fe1aa5e61376730dea4cf628ac5347c69978be6464e7916af4008824544a06492fce4356061d654a2f730f9d3cdda8ce520be84c9c5e45be0a59507be7d7fda93ee14b343d8db2be812156c3aba8adfabfb3b002ceff06710c662e0d3c962294fcad438977bf3a43c
+GCD = 3
+
+A = 839382ff295caf55e6490afe233722d56e9d7658d5fb649723d1e8093bb40941a452e1f6915b808af12abd65f4417184a7bc28dbdbb43bdb87a6b1d79907cebb3f2e88e408ce8ef7f4847d09c5fbf1a99e3d8c36fda1fc2245febd99d9a345f6b547a42d0cc99a5eabf97e4f5276407e990189e671d16f03fa06f75992136f23
+B = 93c2e1c35b426b9a55eb9eaa6d0a519bbb59f8ebca8ac50c0ab37f5d2d56d942ea3866100b8ddaf150601685f9cb178ca7a1e4a6411f92af4065ca58fca5c35e8b1c36b223b874ea3d3360d2d7540a5583c6d7e3da24b3aa24b3c790841b29ef663170e4492fdbb286f58a6173eb4a8d7bbc72ef887d89b36562443b4f2e169e
+GCD = 1
+
+A = -4a3f82c72925fb805a1dd02a4831fcdb7d0bf1cb0b90f1a97053076b64aafaf9cec3df00f335e25fcbee9f80a80f6ab105db6c80c6b4c9136388c68d20847cf31e402c94946dbf8ef8569917cb7c5eba390cc3e8230398a3386f9c55ce924a108a1d7d42451b1d15268c6241601a58bcc5763d909ded7de1ca6992157bb3e6bf
+B = -ce803dd8eaa66bea9122e4886d11e866517fbe2ddbbf4fcea573403b88764dccbc01de1298bab469bd87deaccf4749c93a5ccda073bfeac05e8ee23a98e09c2b9db7dec899496dc86538cb58022307f3ba95d2ba497541c36825ec0725bbea9ff2557f912e9207399b2e2a6eb8d380bf32d6f9b1dd78437066279aa619c01b08
+GCD = 3f
+
+A = -daea240e1c50452d78975a729483433127094ffe17c1504d20c2d973409065f2f9b04a4671ccbea0ea1246280dc5bd398fcae5a91b11a3b106cb0b04e8ccd0fb2dfd8a1fd5357dbb71b9475f26288cfaa40fce158e523bdb2ab4392d630afbbdc12b0ccd6a22e2db09c2a77c4fcd4637c3efec7d1cc9929c5e952383a17c2ebc
+B = 6c6e38391d5c794d7e4104516a24ce0f0ba77d13c8ea294f07ad8f61870f40f587496707e1906d7c8f46a8584e5aa82b0bd16b26b01e5b276fd2cca76f5e8c09bfde3b4628d237dc6ee35ef64e1136fb4e6baf3ef46268c3f4ea21ac5e7683f143ae1c7bb333a7c9e3ec121fdfca6ec8f22e6cfd64d9f68509abc58aded834c5
+GCD = 1
+
+A = 21bbda00bd3ffb167fe34e01735d432378a6dd2f896d936e1182e0882f17bccb3b3d964272d2c64c2a7e886fa92413e6c01ecf84db9f29c435f2132b9f0c49587dbe985b18269cebfd72a785c165777e293ad7b32f614dac592e0603c531619313729dcfce5dc210e3250b8bf4646b447741c10f1dd9e495f89c55a6a5c11bdb
+B = e303980479317084c56d9bd5a6865b31ab3d1e7675014af88823ca388c915e00046d30f54774f0cd117998d2659de9b04ef7e78898b885012dbd3bd1fbb6f0a608aa47ed8b1328ee3c02feaac84adab461329945b062ec02e690b460ca3b5a0b5063be7a7a0a6634050cbae49091bca19fa229553f412d088c6c1a1ef059bcb8
+GCD = 1
+
+A = d35485a01ae17625e5cfdc384f937e4ebf39be59d8143a1d0131bfda73737837d4f59010e72521e9401ea19409d76bb2f0b1881cbfdd515d9d4c1975cfecaa0e259958d5abd2b3237e7da9a76aefd8b4c21bd8349a4d3a1c8a212c980f7984b2b281195f2df08207b99652ab05263e5ef85eb126492918baf4c4d077461ca1e5
+B = -feb136c65beff472a3c83703fdd3959e4c868e63152ae6b1b708e6303e9c0d81b6bba5c9a18b43635161b9cedd55e558069aad4d31e5aeac224ec34f23cca9830f0000e9239eac525b33d00b8c8a7aa90b391a618ecdf104acb30d09ce42cd3836708b05d1f6ddc3f741fbfd7bea55e504ca573bf94af73008cf7f916b97aa5a
+GCD = 1
+
+A = e6234aee21ea358ed4cc8fe9a1fda68deee6bb7762fa4bf90da04aa9e3c03390e5dd60a5932a3a7e6ad93bf9a6d0f0d79eed7f0cd6a8a714f11a82699aba3e11f953f81dbc592b0a2d2a7de70aa074f592d9b40918c37f02fdb9e7c01e641137bdebb7b3d784a9399ba2c7701de09068e4aeaffa173db361a5e2d573bcacc53f
+B = fc8962f424855af7e0c22c9c424fb6c2afa4c35be6d4051f4b9cb3d762d5324bf318fb7ded05755302af37ac5e6aef2184d8178b53b3bb1ba4f0a54f704ea65cdd34550e20e7cc9acafba64c68667e755e6944bb2a01392125f80df14c2fa6a911f3acf4d9b3737312136f2da0eed34109db21c9dea3cf84c56101c4e7ed2e51
+GCD = 1
+
+A = -f3d77b8eb4c24a2e28668be112ec8bd8ac8ccb71f324b87ffe5e96f6e13881daed223d44b27adc674ad2f1ce83b09889a8bde32ca4d1c140c7c2e25bf824c5dbfc50458d07b0a7616e1b97c8dd7de5f30e0326352a5a81a564e220ac9f8980c874a223a624c171a683005bf98a7d282e78076a13a47ddb3ae09cd3108b8b946c
+B = -89d73a5830fb043739438502b5c5b0b4b31391d13e3e8d926479045d3b55e778e698aa2a593d9936dcdbe3c8213c15b97e34d6fdfcb1bcc42880caa9b4e377438295cb3ffd071f81fb71b13ecaa21da10b04fb0da65b79c363bfcda7e1fd8c3a13a586b8d5a6375dae6c21b5abc433be621cc3d3b462127ac4153032a84be21a
+GCD = 2
+
+A = -60
+B = 3c
+GCD = c
+
+A = 186
+B = d2
+GCD = 1e
+
+A = -113
+B = -1b8
+GCD = 37
+
+A = -b60
+B = 116b
+GCD = 5b
+
+A = 1fea
+B = -ed8
+GCD = be
+
+A = 1b5c1
+B = -148c5
+GCD = 1d1
+
+A = -5a426
+B = -2846a
+GCD = 34e
+
+A = 63800
+B = -94000
+GCD = 800
+
+A = -4638a8
+B = -23f256
+GCD = d602
+
+A = 355d40
+B = 129f350
+GCD = 47270
+
+A = -5ba081e
+B = -3a89072
+GCD = 383e
+
+A = -2014254
+B = -411d534
+GCD = 7004
+
+A = -4c1bb1c8
+B = 28eb8bf0
+GCD = 9ac8
+
+A = -bcbd0f22
+B = 6b2528ce
+GCD = 1544a
+
+A = 3b3ea5246
+B = 9d812da9
+GCD = 38dd9
+
+A = -d341e4963
+B = 897dff148
+GCD = 4bab5
+
+A = 1be090b9d
+B = 10e7682e15
+GCD = b7695
+
+A = f8f4eec48
+B = c1b223b0ea
+GCD = 18d0d2
+
+A = 38b303e10d9
+B = 37338b5cbd7
+GCD = 22fbd1
+
+A = -239480d6150
+B = c9bbdec2573
+GCD = 151fcd7
+
+A = -8bfae4efec8
+B = -5cb3b447464e
+GCD = c6750a
+
+A = -17ffbeda3360
+B = -172360f2b88a4
+GCD = 631bb84
+
+A = 2db19fdfdde20
+B = 1b45394b87c5e
+GCD = 312181a
+
+A = -4495f0e4e9ffc
+B = 9c2cdbe69719f
+GCD = 722c331
+
+A = -220a630cb9dbe0
+B = -3f6d33017bd27a
+GCD = c3a44e6
+
+A = ebf8369df6c6c0
+B = -5e060007b69270
+GCD = 1f09ab30
+
+A = 7b6f0f808af02c0
+B = -6291d40baef1da4
+GCD = 1b51b9314
+
+A = 10763885f54acdb6
+B = 48ad72124b927b2
+GCD = 446be8ee6
+
+A = 1a1835261881c618
+B = -489ad34b6f17877c
+GCD = 1381450b4
+
+A = 501a8657d00fec90
+B = -7d572fe34f1e3f5c
+GCD = 14b7465ac
+
+A = -31d2defd8438d0934
+B = 169de129d42f92a1f
+GCD = 2f5f228d7
+
+A = -f654ddd0674ac42bd
+B = -102942513fe4ff077e
+GCD = 53754c93b
+
+A = 53e625b6193b469bd0
+B = -25339fdb5a2cb8be10
+GCD = 69dbaf98b0
+
+A = -e2136db2a4f5c3b648
+B = -a1222b022d7a60e600
+GCD = 379cabe8c8
+
+A = 4d46abeebca81ce0b62
+B = 4be4576e8dd4460185a
+GCD = 277218eb16
+
+A = fcee21b2537f1e316f6
+B = 8152473e34dc6bf3672
+GCD = 7548bd41fec2
+
+A = -4b2223e1cb3699148261
+B = -c9d5752eb52f007b89c
+GCD = bb2037c85d
+
+A = 1350d1270c3ebd10c35db
+B = 14fc3fdc42f3dcc7e115a
+GCD = 1ba06e1280b
+
+A = 50692071b5ee8a096ff4d
+B = 3976ba57d4058bc12dd0c
+GCD = 2d5d14ad4e9
+
+A = 6a9884789299c2942f1b0
+B = 719653120e442ae6650ce
+GCD = 47175a451ce
+
+A = 72e211d36a45e2f9f2ddda
+B = -5e1085e7003ac906d3cdf0
+GCD = e7f966f04b6
+
+A = 1c947b448d36d1cfae4982a
+B = -6e964fc229dcf41139328
+GCD = 945fc32cf77e
+
+A = 24fcf278c33bd31b63e3216
+B = -49e65692c65d3aec4f6992e
+GCD = 2e7f54c97526
+
+A = -75119da40f9986224346a33
+B = a091e0ab5ecfe93c620471d
+GCD = 4e41cf47726f
+
+A = 40b89aea1ebd3cb5f027dcb8
+B = 29a45f4952aa17040c3a34a4
+GCD = 94a2a8cd851c
+
+A = -df2b6f9d7344fb8f18557e43
+B = -36500a4df1f6a1ace9f0e740
+GCD = 1af85bd617d03
+
+A = 3cb73133275e0c9d970f56530
+B = 454f08b3716fae1e8c9520e18
+GCD = 188bbab2af6a58
+
+A = 17ed791c30dfb55c98a04aeaa7
+B = 120c7fa76ee6ccdcd5eb13d06d
+GCD = 68df2b6f94dc9
+
+A = 69e936e19455efb26b03dcc7d0
+B = -5dbcc1a5e9aa7cfd3610c7e2a8
+GCD = d74ad9c7f8aa8
+
+A = 5108d073a4f96af8478989b920
+B = 1a457913f0fdb4b6252070728c
+GCD = 38d5d2424767b4
+
+A = -8f8f62c3e3098f55785870b258
+B = 2d7b6adb4a62419e44660f494bc
+GCD = 2a57445ed9455c
+
+A = -14d2bfa499ee9db45515af917f60
+B = 7b439debbb28643d36c8321c20a
+GCD = eb4d745e1ee9ee
+
+A = -2a757de40c76d46f3a0c689106c3
+B = -48afc1e13db995e04640fdff13f5
+GCD = c200aed70b3c8d
+
+A = 75cd38babb6944db9278793c44a
+B = a0a9e468c75bdd679bcb25244896
+GCD = 276932887bf3992
+
+A = 48123cf3d27668329869856ffb16
+B = -2552b4e917da9d397885694d1f896
+GCD = 3ff19116559b08e
+
+A = 63156f7b59e4bb5caff950cbdca90
+B = 1a87e98e99598237725543cdc0fac4
+GCD = 7c1b98b8b161e4c
+
+A = 28c3f0e5155df3134fbc202ec5b440
+B = 218e4d504823961c73a752e98ffa14
+GCD = 82f502a9cb94a54
+
+A = 66018fbea01eae81b9798cd07cbb80
+B = -7c443a8771b5a18a4459f3b043d040
+GCD = 1c40989249566fc0
+
+A = 4a7af2c3f8707c504e065e05b1c80b8
+B = 1ff4e92c21ea284ab39c8d0c3764380
+GCD = c1a41e0f6a1f1b88
+
+A = -b3777346ffc00540b7fc277cdeaa120
+B = -1d142b9475c0bcbf157ddef135c6abd8
+GCD = 16b2a3123710d7ab8
+
+A = -54fab06a4720b0d095889274d51933a9
+B = -35b2fa44d46cf20e24ef74f5159ac44e
+GCD = e96ba48429bf2485
+
+A = -36e79bbc0be929b8790f64ccdb9d264a
+B = -e1b9be6e7590db6381f7084207711d16
+GCD = 130af4bf2b0ab886a
+
+A = -2e4ee39b2813741a619d1269c9a5ab874
+B = -334f44bd14e6828f4164e54532062a504
+GCD = a36da43ee906a05e4
+
+A = e750698347c58a88587054d34630be800
+B = d40de7a34ae8aec3069438d1049d6a708
+GCD = a2582199696ccd858
+
+A = -27392efba0d4a4ebf0f0f9ba498e806c8f
+B = 26debce4c2d6c96ef6431473bd9b4a43ea
+GCD = 1e67036d83e93d60b9
+
+A = -1c4c40c4489f36c958801b7dec347165478
+B = c5a7df972998846db2abf3784bcfe3a805
+GCD = 1ecf5da42030d9927f
+
+A = 677c6a306c395c0f39529e5d795e6546dd0
+B = -66238cd10f0b9c567e205c82dd070fb61f0
+GCD = 7908f4ee6786542fb0
+
+A = -15f3c0bd1182b58d8e243c55a24123d06bbf
+B = 886e66cacb7b1725ac4d3770c247d89489c
+GCD = 781ba4691294ea97cb
+
+A = -109d6075209cb53e8164d876dffe810a12e6
+B = 1a78a4bce1ea471a3585fe50cbb7650b3401
+GCD = caeed23752cb0475b5
+
+A = 1202067d091ffb7f976698f3f89e09cbddab
+B = 1bd41e29f9450ca4d064cb51e67c53e2401fc
+GCD = 1ca9a074c9114076b1d
+
+A = -46df2a3b758f612ab5047193a1de42c43c9d0
+B = -3a50bda4ca03e98fd03437ff2f8a84d73aaaa
+GCD = 32776c19a4c5d038ae6
+
+A = c307929b88217259158cf2c615804dc6955f6
+B = -44cd179064d7f47b0f12ae52b442e863d9a0
+GCD = 55bacb5c916360ac886
+
+A = -28e83c0d17135602e6fe937d754e752f92bc5c
+B = -4364326998617e085b6a2cb2c68f579e939b40
+GCD = 928912429b8741a2dcc
+
+A = ec320e05a24f118bb243855461de4bfac2cc90
+B = 71e9d70cc20bfe0f9789c94f599ed42aa0fc95
+GCD = 1e369b04f74afbd9cef3
+
+A = 1ae8d12f2faa8262bc454562953fcaa651545a8
+B = -431ab0d696d3eb7d2dd209d793c81483dc85b74
+GCD = 298f4bee5487a5e31ff4
+
+A = -6ba78b017a29c99be57177f0db6e69e6adb50cc
+B = -161adb15826f168fd50caedcae729119fa4e43cc
+GCD = 6562700e2471a8791b5c
+
+A = -384bc4f58d6f153c42d794a7008458c51edf9ac
+B = 1ddfd41fc2007340874d1ee3b2e98f5dfd353e8a
+GCD = 85db7d6c787a79e0094c6
+
+A = 28301a390f514d6bede850fa603fd01c5a0b741d
+B = -12a7880f4b21e70689f2ccdc4af6b994692f6116e
+GCD = 13edc8737b0d454d7a881
+
+A = -4afb93a6083083909296418bcd17fe1917c0423b6
+B = -19f5cae77162c6992b48abb66b28af7e1590828e4
+GCD = 3062cf438b1a6020552a6
+
+A = 1b01df399f465678baa23632e6f636e6e9995ae978
+B = -33d7e08cd12c7fb51393f4d6529e6b940ed912ff6
+GCD = 1690d80887db5b78ac5e7e
+
+A = 4e163c74a44bb9366fa1fcbf7f5f3466bf76de0b70
+B = 52ee9fd13a73c74ecea641b8647027c0b70cae3cce
+GCD = c95d6705a73e87dfb11e2
+
+A = -18da164408d5151d83e04d5a12729011793e21e328e
+B = 1ab7d2be06dcfa6fc13972bd8eea00e374e644e9dc6
+GCD = 1c86138b2c3aaf3456294a
+
+A = 157a8f34bfc93447b2738f99417504e7ae99df675d8
+B = -9e1072f81e35737e956ada541883e55d187bbe700
+GCD = 6cc66684ca87ba0eda4e88
+
+A = -730413d5dd18a82f6c9e24de0fd2bab0b6f9abc4c5c
+B = 10cadbe97cfb99dca72d5626c7b75fad81c2f4113264
+GCD = e89f52db95f88ba356066c
+
+A = 213e3442e52fabc81ec6312cf2b3324eeccc536d92d8
+B = -4476713c86e51a0a1a63c5c70cb8d74bc115e1572677
+GCD = 9bf30eab8f99017adf5957
+
+A = ae87fd02c6b7bb4cdbdacbec9cc0925ff604559ecd40
+B = -74b6a9328dff01501b1160e51c708d27d1731f960ce0
+GCD = de4c9a887083b1c11affd20
+
+A = 24e3a4757c785e98567559d1f444676832c8fb4cf9173
+B = 1ae906ee7a49fcc0239c0d0efdb18161b8cbeb4ff44b6
+GCD = 321e7bdc7bd26256ece00bf
+
+A = bfaceea21b4b3aeef201c24f7243bef3e896f3476da80
+B = 34966d7a58057e875ae4572bdd7459ded927c2c7b8f20
+GCD = c4ba3ab148294a8e6d47620
+
+A = -5bdd783da99a7e245ca551396e093f4c465322e5844757
+B = 59d33cb08a960e4c9a32bb7b8d6b863d5f6d2ce40b8250
+GCD = d3d6a2bc13e9a41307a10bf
+
+A = -36b5be6ff7a5df0f24c3627304d9fef0b8a79097a7c4c8
+B = -f000375b520dde6f4d09bea91d3cdf6d0380c46f2fbe3a
+GCD = 2f2bbaaf28b95e18a84f583a
+
+A = 710afafd13f2ad4303f6063ccaffe6471a0483185434fc4
+B = 306c5f7848de05605aa30e18280b6476a16db89864e8cd8
+GCD = 1afb372ba598ffd1553677ae4
+
+A = -1b9962f376d3d9010d5ab1982723ec281db0de5198afa8c
+B = -f59b772cbe13508a130c3af0b5ed5f905054b1bc827f5e4
+GCD = b0b0f6c52ef3c37154c1edf4
+
+A = f46660653502988f52f5c5dd41803f6ea0d84e6ec97e810
+B = 2bb7c59422b5dbf6716fbe4ebbdc7022dc4b9dae220c6c20
+GCD = 12927f998fd18a0c976da06b0
+
+A = -1544ac242cf18085bde53c7623f058a4be9e74848f0c054e0
+B = 1036957e8f99ca11234ea87465e024542dda2ec01bc0cc840
+GCD = 170e6faaaaee067ee651575a0
+
+A = 48e10040e36d3689f808b56e57d66dc229863eb156629b6c0
+B = -31781aba8dcdba4462d0b0d76cedd86e26891ab3df6d18780
+GCD = fe73ee3df95ed8dbed6cb60c0
+
+A = -f1ffdd2179159d5574a836051465c918aeb443f34f4beab39
+B = 122d6f913dfc171b7c6dd2c66185a07f61d38b9887db1caea4
+GCD = 41e0e56dce7544c8e606562897
+
+A = -2e6ac0b560dc647868c997776eeabded9cfc6333f2b7fc83ac
+B = 146b44ad06770ad42a0f04b47351a388de00ea4cc2a9461fde
+GCD = cb29dcdb03a8e33fff6929152
+
+A = -1390f1c1c2d496fd3776042fb87bbfe8ccd673cc48220e3262a
+B = -15c3dbb1d024854be4db2138ab168116b210760ebcae99d0cdc
+GCD = 16352e1ead35648e7ff73971ca
+
+A = 4abac232eade22e553c6eb4d5b6cc04250215ead1c8af15f1ea
+B = 245d690f3952b8d5773bd304f743fdd4a902bb056f814338e62
+GCD = 29bc533ba87f0017c45933f64a
+
+A = 1cce1905ebd7a1a50d1dba965af29a161964433daef467990210
+B = -c258c1b1429322eccc9e57fdebf2018ec8bcbf937577ab60a0
+GCD = 2264d81ab8eb97b41233ea04eb90
+
+A = 16feda78c59cc9ab1707decd0970dbc3cbb8445f9b076ac87948
+B = 1cac7d0661010679551cb2fdfc23db05303f8660e5036f8a8637
+GCD = c6da69d30eaf504be7f8ea388b
+
+A = -891f9eeb3b5acbc7102cefcf4a94b834f1bb4fcf2e5f47a005b2
+B = 14666b1967cd12b44073ba7fdc2eed10a63e5bf2d36cf9589acf3
+GCD = 1903c267fa38ed6b2df075decdd
+
+A = 48e276e7a4197633d46a896cd1fbd51d85b7ac70ed8fcf277d3bc
+B = -424594d2ffe7d44d425e5cdb97e26b3c48f52f401c224a6f69fb8
+GCD = e8196796f47fdc5b8bae54e286c
+
+A = -4ce149df26eded2015965c0e0277a713a15af9a281e6d24f3ebf1
+B = fee88bb8c116fa6fce83c086835e399123a9624e9fdb27f93e902
+GCD = 5aa90e8c1be239ad94ed9ffaffd
+
+A = 446a6dd93c81da9bde1a40f88f75227bd0f4d832c0c75c0f0827d5
+B = 3a0a6788e01a5cb9050d7b099db23e540705a8d0b3cf7efce39def
+GCD = 98dd9967174f20a3eaceb608419
+
+A = -1c573c54bbd96a6daeca8ad08f7c1d5ddc9cfd203c3a5cd7d887eae
+B = -e78d1e0c739f5c239fc8c05ccced17235899c6ca080fe619ab304a
+GCD = 1f413e9056074460a4c4b1d109aa
+
+A = -18a1943a102954088a90b0350b68db66564157440bea1b8e4562266
+B = -3b3de5b0847bbfdd3d433b43a260d1fc890d43b50f30ef95fbc24b3
+GCD = 33449e94e1eaf2b7ba235cad97cd
+
+A = 18a54ff0aad2453a79afd79eeaed1ac3178bd4cd1ac9c5fd8774ce60
+B = 8dc9232a0a1729f1e7ddaea824de9fcad4c0065e9eba1469e55e5b0
+GCD = 6db23e322d6f807c9ac8aeaee550
+
+A = 6aa7a289de427771d237fe84355807aeedc56da586108e5c0efa117a
+B = -34aa6adcf13c278992a2496747d95ebd7fb0978fe70a19879a7f8f3a
+GCD = fa59ae7576a407f0cc6c90970d2e
+
+A = 14971ed18ba7d1a94dff70cac54f50f0eb1d0b9962ccf8f95ac9124f0
+B = 124ca1338251f6312bb87a181c84cac83e7db24082cc1002b5ad5a439
+GCD = 198d1e2e86808e583f5e08701610d
+
+A = -26b9cca877235946022af4669b526ec373951e3447eb7d5ace555545d
+B = -3428e2f4c4751a204c1c0fcc90ec2cd6f20404b7117f08e12ef7ef814
+GCD = 2778771a4b25f9c0a2a89634755bb
+
+A = d5e8c7732d8d5ce5b28ae4db0476bedf5d0ef5951fcfe270bbc487c86
+B = e09863c4b9a04887c245137387357fb6570bb112eec5f19c7c4df912a
+GCD = 50225f1ebf464370403cd65778c306
+
+A = 420e509b0f8d2c7fe49c4a7bf1e570fecd9dfa073fc8cd37f395a06cee
+B = 5b481956824e7828a5a0e124dc5b77e1e08cdb563b906601c15205978b
+GCD = dea45f684be34846c97e948807b71
+
+A = -13d0805f87ac3040a011d5587e2dcc7deaef888e712305e103e3c426f82
+B = -1d06c9c7086cc2a5046caf9037eefdb11feec095a3de1d4de9adba7a8b9
+GCD = 1d18a5461f9bf6bd399d50f98cc4e9
+
+A = 43705b3956e56bbdd83b60f5fcf9655efc3c7b675ba2728bb4db1177794
+B = -1637ee6f96e79ede1ab97fd6e7943f424c0f340a58f7ebb11fb6e1dd13c
+GCD = 257eb70891655f00a12a58652f8ff4
+
+A = -1adfea565faf9f612859be5d997c38448e931da3643c797fd15875660593
+B = -99e4ebee8cb4dbbc7f2cf9b8db62dfc39e3ffeeb629bb56b79d9658270e
+GCD = 6c7739624ab895497a5c1e15031a89
+
+A = -3bac0f98360e068ea61509b67027db8b5ed9deff3802d3a26b02e1e48e48
+B = 63af576de3b0f715fc8b9e4897a46d68b7d24c01adf9ca5cdbcb3f00fd0a
+GCD = d5346e1979317cdc43ed40ff2f0a46
+
+A = -4e2912454e3b9ef8f5f70e64e255c7b5d45514dd0261bfc1d3e9d6e198ff
+B = -8b2ef5d1398a63fc22b44d1c9959364146787885909d9ae65c4548749f69
+GCD = 1fbeee7e7e619279f5c7c485d43207f
+
+A = 29301d123239d4cb4a6f849e58493b20bb1e46bac07e44451399eff17ba70
+B = -31eea4ea038d528b2d8793ec97a9c426e41c5dbb6018b0c09be2e6f7b36b0
+GCD = 5ab3487d2e00b2ebb9be6ed84aa20df0
+
+A = 46afaa677429aa21f301d151b225f9389c68ee4a260890cfa8a872b72b5fe
+B = 1679adde5a60aa24bda71376a0354579620f3a13fd194fece23bacb7a4c9b6
+GCD = 5a18519583b27fb2abc7a4d10750626
+
+A = 2fb260963b23665dfba0dd8fb0b7f5f6629eef7c960e75721ff0661a89a002
+B = 3b8c650ebca9fc99009d57a49ff98088550446f566be7377308783dd6d546
+GCD = e385d3223b5fc1ffa244a538dc3108e
+
+A = -f1bd28c7b6f8134cf6443c193ff73d983fe3a18c5f5ce58deb428f5c6c7498
+B = 542937a86d14d83bcbd62930624070dce93230b769f074776415cb384909e8
+GCD = 3c2d81daa41d0a58c513d44fee26b128
+
+A = -59bcb00e6f32df3373988e268d466e06b9827cc455d5506f6143524de2bea1
+B = -22464a4299c48e4ea336b0ce2828b4f48ffe97d7cb7c0a9d9e282bcda8e6736
+GCD = 33d7d0c13d19d12c2450e8d86af98c45
+
+A = -51b06e3e977ed94e2184d3899d383f9b6d2c7e8eb3a625034a814a72d0df619
+B = -ec842ec08aefd32f2c1f797c86d40f41fb9483e534f1cc37fb0834ab4ee5442
+GCD = 7d914fa6356c08855ae1f2b64f50fde5
+
+A = 2fda06466cd332c4cfdfd159ecdbb32fe63a508d28c7986e8db333d8f3e1e664
+B = 2e4d6e4dc2e60ad07ea26db98085a14c839c24746879c90ed8d8cf66ab5468f9
+GCD = 4a0b745733b83cdc9a94f6b06e589f2e5
+
+A = -2255ca5fbd3ccd756513e3d1885af3b06d22a4e7abb72fd876103b4ccfc72216
+B = 681d91c5c012a9372c6991edf3003d6cf8bb0e0608b9349672c80f93a5317429
+GCD = 307368f4350085b9d3572869a6567e9e5
+
+A = 503def4d2eecf1e6f851a8ddc9380b3cc3ac66e46667ee0c3f8687abb3134ead8
+B = 48a92023acdac18324e432c25f50c5c619da709cb5b10412ee3f3265897115a50
+GCD = d1f599335eebb84aa19a2e6e4a5c8ce28
+
+A = -160e04e27276bbe20fcacee78cf1942e064120b3c0d44f902b2139249ef93aedc7
+B = -10e34b4a835b74e3497c55c06956e41074639168738a23e5491f24df2ec0d1c141
+GCD = 14e2fa17ac3b29e0ad84222283f0697ed1
+
+A = 4a3c79f70f46d68c8442a62a487e0fa54dd25d16cf03b907a48c5b352f0771664f
+B = -5e55c73e34fcd075825263681b9037414ec73f9cb9862417acf76b474c8b77094c
+GCD = c7866e19d6ac563848052fd2b902412f1
+
+A = 122e6328908f0fc79e37fb8eefdf29d6a53d3f853bc2262e93be1f8a7f01fd5afe
+B = 6f091073889e4b8db7224298a0f16f69fc086b02c6e99fc80d09d47112f06c9c85
+GCD = 10548afed577b8440b579204978d16491f
+
+A = -4c0aa42cf6b8447cc4912197098379387c8c01a9d2b5c1ddff3b69738d97956daf2
+B = 1102683a5e494615ff1e8f9d2be7469e87fdff0761ed1eccf3129047fccb86b721
+GCD = 2d46776613c8d811b81e3cea6430d84e87
+
+A = 1e243b2ca937fef9c4eefa3afdd98ba5a22f8b77f62aaee7c725370f1d19e5f7c500
+B = -73efe730ab094b786236b87d169a536630eb59bf6685ba70b969233a7a69810cd00
+GCD = f6edfe5cdfca81f7569196ef35f8238100
+
+A = 4df54eaf7061d5d63dd303a63e1664c93f9fe246d6dea6b3e6f099e2a49974342c50
+B = eb83a62a0bb71d53565ef81cc81186895d48487d386d77afcf19e39dec64044e701
+GCD = ae8facfe0c968dba0ccf354b840110229b
+
+A = 4ae250b0b705bb71a0fb080b2e652dd9499a3d426732d9a8c291ee504b5639d28214
+B = 734fac7be4899726b5056f4b5f20a91b872b259c61e8a04ef5f6d477c6fe4da1346
+GCD = 11359b62c6e2f9657943b13110059e15caea
+
+A = 3196454581c2fbd2fc92724caccb8d6e7503817467f190b337e0dfb1f5f8d48f7e044
+B = 1ee50fc646b544d97ac06fdd775bdeb077d73a205a5b84eb9ef05f9ca2558eb315ae1
+GCD = 8610ab99094112e4e3e860a046c0eae1fa1
+
+A = 18a43021634ee11eb2ed2d4382850eed6d1088fe057b9315d669454778b976bdbbb2e3
+B = -18d4cd58b158b026dd5c7ba2d9fc88655cf2eb8ad12f140b8718841551f6e0c586cea3
+GCD = 69ca61df8b4e86b35e52d6a13bb0a070e73
+
+A = -5a86aea7a57d8832b6c6b7ef935842e12bce7fb730ed253d184859e44e9bd45cd4fee4
+B = -355c8bbe93e163f83152acecce650f9f3941ce888cc0f1d9926cadd3a339fcb4407a84
+GCD = c91b3fde4f08ca8a4173728af195a3b1e7c
+
+A = -107e5de99404463e8ad8fcb8af83c737d1d26d582f01390e3ab1c1a865970d8228b6488
+B = -18c644d5dcb4d10a8e04046ed1610d8fd4de08735a2932094c7aa9ba116e82ba2928e76
+GCD = 3e7d3538deaf5f1a687a8f73ea8b493f58e6
+
+A = -5fe7a36623304438423cc7ccdc85467954f0374fcbe69cc798d4106828e50799ce38ae6
+B = ba95d75a5e8656f500cf09303b4beb88e18d7698a0a81e0faf13525c2902fc959af942
+GCD = 36c38306d6019c1e9676f65080ac9480e782
+
+A = -33971ed94e6443381734a8ed2a0a848ddd60aa23f0681736f91ef62fe8347481a804492
+B = -592ef66e68f6dc5ef53ebb6d647d578a67a383414c7d140bfe091199e93e537c8cfef07
+GCD = 5cd86af3e50f365969224beb8c6dfa2002c3
+
+A = 36105fd008a760c86158ff4b53e6d61876c6c2fc6e139ffb266f7f4ad980e894394fd9c2
+B = 3b9332665a89fb140bf4149f688bf8a27f724e6021c6968231bccf6292d0bf5cf3b1fa
+GCD = a081dc6cdacc79a42514a125234dfc424674e
+
+A = 13f23783adfc6c3813ad227be1423d07b631b5f663ee340cd6567aef95dd870c6c3f0254
+B = -ba37e4b55cd2de86b030c670966a4138982c6dac29d0b41d47fd2701798cf3a1b716357e
+GCD = 193c1005980042f1f075f725ae2093fe0c862
+
+A = 3adf066a954791b5069d393ffb546082eb40eee2b077d9e5cea391bde6aa17225d04038e5
+B = 5ef7078626d97edbbfc4f91a85f99e663aa5d8256c898de89f887e1bb37339200728645
+GCD = 20b592800a2b9e5e4d003e1649c798d29f92f
+
+A = -1915bc6156dbfce1a7f245ecadb10afd6613422f178ff692f85b7c9da81451e0439ff75d18
+B = 1503b6c6ba1a180a4d0e17e2916c4ae422422ed21a08220eeadfb4cee618c29037d58ea5a8
+GCD = 139958287b6aa1db5c226322ed12b6d3dacf78
+
+A = -5959fff3629304a16218ab255c20e02bb03f1e53eb1b320b7a572e02833bb485231c545f73
+B = -300b04f5ceccdbe15c9f2ac6512833e163eeacb2fede463bde4e8bd2f8b4d3d88e2b6ee31a
+GCD = cacbba40d3c6186745fd977a496b8e4cd2a91
+
+A = -1256037784047e3c7dd9aa9456359d74a0c99580fd89bd34675876acd3fbfd4ce870626131e
+B = 529135e12eb3b7a0321dcd3477b4ff3d6395d2341511437dc1e8917b641ea0a94f1fca3556
+GCD = 18ccffed86b3bc1e836aa43447831db8c0efe2
+
+A = 3d2813b3d9b280a4c03d3db3601964bb35adefb6dcd31e2d27a44a6fca17864d325eee26fde
+B = -20f1972ee28233cf4dbadfa5adcd399aee25c8ffe77f1bd969adbc3dc081c033b0ce16511c5
+GCD = 6e664481df3c1f9248e28dd9622424a413b013
+
+A = 1629971f08614cbb42410e785d48063802e2564173e8eac978a8d5f02c2fed19f9af85475fec
+B = -cb20d96f3826a4bdadbd3763b35dc03b6ac938968eccdbde422bb2d348ce62681b663ec998c
+GCD = eb2e218bb74cf554a5fe5ade02e78cfc588f04
+
+A = -24e9f690a775d100d99defb230688efae4ec7652c33b8724d4f96f2bf7c0f8b4193aa63093de
+B = -20c7981ca7932686f71eca5b2800b0986424e7a8ec3f6e1afb52f1bfcc0e95d24f831cc81416
+GCD = bc687ac30265ca7040bcdde1deca1eb5f25096
+
+A = 1d8c9ed1ed1af6f441719718852973096b7272b2814a7bfa6a1363e3f07b1cdb17d7f2c8c503
+B = 109e421661fc6a123fd111ddf55f7d4e4236d339aa2e0b0549229a36ed5ee806f7195c7bc6215
+GCD = 136910e0a9647c85dc04f9cda936f2e438eb3c3
+
+A = 1292f188f0c08bb3563e2116f7eb738ccadfd6f02fcb3cfcb617a7e61ef41e94ba7b9a3ac578
+B = 40a9cfbbe61c779eb4b72e5d09bcd9061e0f77d3c5885be65ab42182c8519d8d0827aec5e5047
+GCD = 2a9bc97d63aaea3501e3f1b0f07cdb45140cd11
+
+A = a1dcbfa2ad666112a17d65b01a1aeb38b3ecd987e154c453a1624625fb9340a076ca375ce9546
+B = 14a91adfe7a64cbca34b0374c6ff11ecde62154fa140e8eda24ed8539ae1fbb47afcafe23dc569
+GCD = 7d2adaa9139a4fc7a6d72c804123ded5d07a5bf
+
+A = 65781b766bbb0660f8c0ec78dd8448f3aefdfa2570fbc362efc2f15a903e7b3c29ba4ae994b69
+B = -41b59c298c47be0a4e0fdefdcf76ce2d5ba585f1d213df0abf4b93d295c1a11c49ae473142c8d0
+GCD = 23ad77f235539f36899547c20ba5f3b31d401467
+
+A = -10c5531121b0f9a5f4280196c2bbe765ea280f61a243a5bbf29bf5f6b9838299337aa30d69bac0e
+B = 10ef8d5bcc77ba1638c8339e5059e6a2fe97d1f2af0499c2c01d2732ba52d3d99ca5a2f8ba47ba
+GCD = 2c87b8fa6c5008b7e149aa9edbfcb0865dc4613a
+
+A = bf96f79b3ff7ffd5b4b02ddf56cdd06d4feb2ba314796cd0ab4855eeb4cc2c6f65df8f0d054590
+B = -3b0cde994a55d36705fb4bb03fe07f8595610a603027854df78e7087124af820f61ad846cbb2840
+GCD = 3089792fa413eecf9209b7fa444b98438f1bd0f0
+
+A = -1ada369eadb8c2e586e175de26042ad83a8f6d8e8f63e3d80b05f9ccb2b7b1d868e415c9e6674842
+B = -12bcc5a9bb5bad252b832ca1fdf4f23404b67df872412aea27dfb2bbd6ba568a6b2ecd560ec85049
+GCD = 77acdaa5c92f9f1bc3d29da07fd8f6657026cd99
+
+A = -53aa92e0c3679565d691f13c8183b155422d13e255583836b6e1d0f04b79c4b168b25cfb19e77a37
+B = -5e6f97724e9a787d14772355af7f8e0a6fff3b83369ec8c244e3d350543262e7c554926c2bf962fd
+GCD = 5c6be609709f5b8370d7fd3cf67a113cd4564915b
+
+A = a753912c8aae0d791e814ead46107c3141e4e35fe1292c8ccb0a5ddfe920e9e4a21f0e70f4b2bc72
+B = -7240241f78f45efc98c74523c53986c6da7229b423f24abfd3512f89f5dc58ad7a55c7ef38b917c
+GCD = 1eca14bfc3e333ca231c3b7e491140d03ea14d012
+
+A = 6cc04a74eed0c7765722e6ca29f8a0b2b2bc7d2e85ac3782a87c727dfabc02d575e640c087778b728
+B = -2cfea03bf556a932491a507f96aa914cbf61c179a2b3820a2a2e49d761c965c5bc815994d1697b610
+GCD = 3790682c4276ab8561bf2ce20fa7ee31aecaf8f38
+
+A = -72253f3e1b362cd773ed9ca5e308a062acbf1357c920d6a1537a157d1b927aea5fc3c45b047350978
+B = 54ab091f9d0e5d493f0414f699bc7e203224cf9125fcc55a0483af606670e74349a402fd1fdf876a0
+GCD = 43e5171c76f68a8c133bd6b03917a5a67fd706538
+
+A = 267c4aee22204ea4cd6feb4a539dd7db4e9ccfe5640aa8a016810b454a9ec3d1bf06c1a63bbeedfde0
+B = -2e08d4a67af7cf209baf33e06c04ddc2a33e27d9856f95ff92a3307ebd69949cb8ac6311b880cd78e0
+GCD = 894b2341dfffa75a6db26e7cf2a06387a22c400060
+
+A = 79952c504e7fa3bd735273cad2c642e27fe06b94fddee39bfaed9d418e9f3574f3886fc825e829b23c
+B = 13513535014a3fe8e9aff67fee1ad10f636029a0e861151c6b16b3b6dc6147a0ece6fa278299cf04d4c
+GCD = 5fae988932ea9cef1b5e2036a686450258ab80dd34
+
+A = -1e41753cd6bdeff8541745b6eed07556fb0850de680909bac89c3df987077512831c955ccc8bf4873a8
+B = -363575fb00b8d17f15ce4750333e2c43b357e21e9ba71f5a56c60f6081c0ecf6c2781e2d2e19ea6d720
+GCD = 23b9ec49be337e1b87122a8928bde60b88db8915d8
+
+A = 1a0c150d7430a23cc835e3d01bc2e6fa5ea64286fb8f884ee7a950d0158ed4e900345e6fe5b27761374a
+B = bf7c788ebeeff2ec198a1837537ea7ea34b3799da04cd2b37b638e0fc4bea92ac1753c25b9be166dbbe
+GCD = 793f9064b11103ed1527c3f6bc48086c981a076dde
+
+A = -6580c63f218b672fe57595745c2ba477064d73be75d6c00278ba4931e6ecf5b127cc6735338080aa71c3
+B = 4b6f7ca1ca7190a3bf11f5ff3b27f926c82b229fb5940af33f92c0e46d8c5aa9e4741f82a86d4608a6bf
+GCD = dd231785828eb794328e10606fb81e12647df8c621
+
+A = -cc9da1be18fffe6c682c0c804740e73981c5010fbdbb01beab5ec2212136bd602c1f971196ea9883641f
+B = c9b4e7c5f764913af6711e6639c72fbeb5444958bd44e7acd422a669e502db8387dbb10f906a3d92a488
+GCD = 12c6593a022fa6cfaeeb3132f985795fc7aec930ea7
+
+A = 21fdcf5c6602f088e5cb695b6ab2a7ea8e97efb274c829a350aa993cc6e10332b5490350cc5b0713094da
+B = 255349cf969e1e927599069d437efda8a3712b0f31fcd8ed15cf49271741f37751a647edc3dd63902dd82
+GCD = ba4e6766f6ed19f796dbf7015be73c868c869e9377e
+
+A = 5c7f3f847b12342b82b987d02804dc9799252893a009240d2e158a9bd2ae289b5dceea9ad19a35c40f580
+B = 11d701fc1407a7acbd5539771211933ce9e78db75dba455528ac5996ff7c7fad1251a9d7f75dae616fb680
+GCD = 6fac7e8051f84c3b5de922c50e33907e0dc66c1aa80
+
+A = -6bba5cd79bb14c94184fcd351e25fc8feedb77a0bf5923b0ebf75988ad7f977353c1814f2f882ccbe250bc
+B = 6e0eee1ec51deafa167cc7446d0cdf8675d903ab3fb0bf1bbbfff9422d69a82194ce353aa142d86d9e5f8f
+GCD = e63779a558e7b41b157d3805c8b6088fcdc82eb3a9f
+
+A = -85f8209a86567a693dedd65c1ded8d5d94ae95336650f545589445062d68c210a235c382f508778bb82d12
+B = -4acfd476665bdfd71864857764b784fdfdce90b639a6e7823711a5ed41e06d09db5101d394ce0c549bb431
+GCD = 19dcc8d7005558e81c57499b933479d21c2ca6902b71
+
+A = -2707873a7747ead5abcc6082118078fa544d500bc472c8a908a4e97f04264f937970820d3145bf1d19fda00
+B = -11c97886cfac841ff3b5a75bfcce84c04e076cbfaf7aba9b09d508905ccff5196da54459aaa686fd219d690
+GCD = 20d26819ec5a915caab7efc5bcfdf191f8bd2efc8550
+
+A = 7054701496a1a89bdad2a8b956563285d400a22ead98bd91b6094146954da0b10ef144a5d85273b9a1b3738
+B = 1a997268c77427fa51abf229a02948819922c98ae2af2c7e809bc7194420229c372844195dc32cc0d62c0594
+GCD = d83cfe3fc146c35424163d8af62b1520400ab595d20c
+
+A = -2ac78840f309d76ad80db5be322b61a05860962180f29d9efeb18b5470f0d8842311773c8ef8462af2938b54
+B = 3c2e89dc73201d467f22eb5a927b1ec47d19c1f42c7d84a8650c8dab7f752f71a6953b9784297afba5fbe846
+GCD = da53c6858be7847f60fd8cdea3fba9568147f73c31fa
+
+A = 75203de87af36826d6f8d721ab8f130b01785628659423de381b3d38b44157e316c0fc762631970cbab8249a
+B = -d136743cc99f5a63dcb4a1378b95aebb6db2355062c00a7c6125112a2b5bb37b030acf2890dba1094ccdb7ce
+GCD = 11a447c9bba42dbb352ae60e7aef11bfe7ccfca4e170a
+
+A = -da62eb5663c46a81e290ab358e1625846ab4919a4a5dbaea1a5758fe929a21eca5db6f400e496a1d3a8068ae
+B = -25ef945b2823e5e653d0026e84c098abf56cc254749b461e50a98b0ef04af41ca1de0ade55d98c34a06c6301e
+GCD = d08cb1b353bc3d41ece972a634c6a0f6256b1fc091732
+
+A = -11ea55d281fbc84982279b0e83eca8a1d843cb8eecfa994b5a4bb0628c4b07f2856e0a55ca85e3b8f5763dcaee
+B = -17d851f04af3405d40be76c6edd205c72472d24bf4b64614148a64b499289831a1c688b04c3b89fc879cc47918
+GCD = 1dc89dc7ce1b2587d4b3723019d4dea3b28c39233f68786
+
+A = -1f9098186e2ac730dacbe0ae273ff5d2e84b1a6937a7865c9edaaba36ed44363fb1e5c6db70bd7167cea004848
+B = 32cc1dd56bbeb6e985fc3f62f4e422fdc6a339154284d546206093d4d8f0ac747966a6173b6e2d98259966edc2
+GCD = cff905834a31af69a90b2bdbfce3c0f5bd2ea2006e33e
+
+A = -539fc42ef8067519bf74f91215812cd3682e895feffe8e97f014cf8e649999c03f59d3818b887bcd95c558a228
+B = 4bcdaca533de4848ae48e17d75c862a71860ed167cbb7aa5f5e319771cb98a1700f22d03c28e7f5b497513dfc8
+GCD = 107915cdc26bb1457a8b65a4c5ef68b1d99d74689ec198
+
+A = 345238bf3bb2eadbe74f169a17c7bff63a098bd21e85d51c88a164741eabc6331edc1cd16cdeffe52feafe7bf7e
+B = -26942c82611e486a842366e54f6c32827592fe833dd859c837e6bb27516e960e1be23d6a8539d7e1d7013d0a6c4
+GCD = 205d424e49857c462b875071eae87a65c99f1d37cf9982
+
+A = -c9e3ddd95cc1e289d7863a179b44a6f372fc0fd317dc9764c42eaba3290f31430550a984cc3a139236254db3f2c
+B = -1aed15c9166cc96d8d2c9f2a0c2067d8c4743154a5bb78442ae8336efd5d96e041ad0d0be45d1238738920c300e8
+GCD = 6be5ae23ef79ec1dcf03948f09f8a775039367584bf35c
+
+A = 145def3ae36900db349ffdde9e636f50f59754da5107dd8bf6abd002c885ccbdd727c64a280bff0f0ec3ce60c81
+B = 5026b9a0c78bfacb35f0ef7a2cf815e920ee74ed08a7d1e13b33ac18b789c319c22c3dd7ac3f229fe3a7ab2d56e9
+GCD = f29c53708d66a5be6fb6f64913e2b651b6d3b3492acd0f
+
+A = -16d38f6d87084a3947af97cf4191143fff27c27c03087660106a3a9812b7a0b24a589fbd894a23c5b4c55e6af741c
+B = 129a5a1815ccce0a9e2464f9252a58152d6aa82920f9bddc4bcb8becf588e6feed67a04f025b7b2395e0812408c18
+GCD = 1c4b69c3607775a7497f928e3b1dbfb1b0b57be1609054c
+
+A = 40770565b641268e97fef5cfe1e91c21c25c80cac020c9d23cc7d1d508c0126bd5eec638b34da5c8b9fd12fb05b10
+B = 443966c18fc15502b80bf86e85638b203244077ee13e70993c16d6e98ace1e50548543b736bd776c14b8618ad5a91
+GCD = 2a0e7ceca9b0bbc68cd38628b50faac8a891d0aaa801235
+
+A = 753b2c3ab29e927f2771e34da31e5db3775d0f65a9f2696f4802782ebeb326d9c5b17030cf960df1791e2468b8b6
+B = -67a434ff28697a4e660290757602b27a4d2b3b4015b8df5e272864c6388bcc34ef54178dbfb3d430e720f8e466d1b
+GCD = 78f2a1e5760a41cf422ab7218b801a23413698f8b5b0397
+
+A = -286b0890de2ae79845db79368b2f5b074d9083b2dfc9ac123d22e63a24dab9ad6690f4bf2e26cb188bda8e5f4a23de
+B = 6d53b6b7cdddf234b0dd117c9c1f9bfd673bb1cda7931d359f8ce1e95600898438f5bd85441839787a5cb907dd5832
+GCD = 1f8c81a01f2316dc1ea1164df161b3b8f712eb7a23ce822a
+
+A = 1a763357284ceb368fe9a8e56087b3fd1c2356508e7cbc061c8885e7a5045610cde0c8b5fdde3d6bb8f4f471a3655c
+B = -198498012c7cbe6ad15acb6d5d8550a266a9a5f1af731af23d0b1387a96c23ba032e47e463224fc7006320c1b5b130e
+GCD = 213247acd8b9f495b766695517558e78a572601bbae637e8a
+
+A = -151c47f5c8c79774eb97af0dfdf9ed318fdb9b4f54d79296594f9ed156d2f581fd658bd2701e79a4052bc4f19355cc6
+B = 499661fdd595dbc4cba807601ec18b2b2d872233813d832c4d400436efce01d26969983f8a0cd7429874a7191678246
+GCD = 2533450171229c32872dc8ee91419b870340acf177f14242
+
+A = -6d343221fa5bf1388c517f7bae0b265bc291b9df8495b186e78e87e6403dadc114202b745cf6864a4a5bf4f5e8377eb
+B = 5384f5bbea4325890b2b01ec2b7efd18b50e46335d73cffb2b68a3d89521013073d5518b5843b3c0e0cf72297466614
+GCD = 4000a2508db78b08c335d937598a3a5f3007bd84e07b0ff7
+
+A = -19d805952563485e813690d907d9fcd9982b41d72a5a8c6655a41fa48d1dd87d7600e75e581d52460b509a461ec7c154
+B = 4b7c0bdafcf3198e86b869b06e94144de2a1b70d4e04f1556061c1c8d481b96e36d42cdbcc2fbec87242e71a464fe9c9
+GCD = e14b04c72b12cd34361585c3c0e9bcaaee5614a87b8bb7ff
+
+A = e8018581f5556724c2d85d5749059e8927adb87d9f791cc218b51b547a9aa9c84c5b1e4f59ff70bac41e0bf7f42eba3e
+B = -171dc792518a7cf6dccb26e119108fbb9f0919d563c4c33d78c8ab0b4ce9b1052e48cdb008b96d7348c551c8592ae8cf4
+GCD = 3bdb23ceae81fb76d167450cd9865448507b0ae053e554d3e
+
+A = 3f4e204f801cdaffb8a609e5cbcfff78c717941071a8e03acbc27b45e9d4aeb5fef050896c85588ec1c8a16f928f479c2
+B = 27c6d008f2c65359b1dc1a4b034ffa4b6913da1385bd50720c2844949c70af6e379f8fbd8d7b1abc0d3b273e7a6cb35dc
+GCD = 831a3c10761e9a5b13e9d2eb93787e3c70e805358bfb28326
+
+A = 1558dd8e52b4a450d135fa59167d6157803cd4da1bd276fb9c8f02c4a95692856ed7f0f61f977764359a0bd31d5bf13f3c
+B = -ac9e54f36ed98bf1197b7de094c22ab01f3d692d0637800cb6524adc8ba0ec7f8f2518349f887653c719a274e10c1b966
+GCD = f62d2cdd7599bd724f005c6bced3a26e95cf9f989e8b1d20a
+
+A = -479eb40ee5130182b94bc01ab422bfcc872db6c900a226f350718586de9f7725f35817454cf25720cfeb4e6abd82788f9a
+B = -5508d4d4434cebd8f52319fe9af311cafe1e8b1ca6ee4ebd33b36803d4da56a30de39633c3fa16341f89d92349e8fbb958
+GCD = 15efd7670626a771144651530f20b87a9d81198920ded46a96
+
+A = 88d0048b5022fb3e0b20b658b748f930c6aa74b8ec07a79730edb69af5625787017f58b6fd671f5644047e4f9c474b00dd
+B = -113a3126fcd16ab8962f30daee939442fbbc0b1d8b36a8b6d4aaf40d08c2fca0e40ec3242d632b756a64defa8df81f20641
+GCD = 54a3d46f93fbc776076987d9bfea8186d1d29589a60c36e9a7
+
+A = -1bdc5b8a3404c09a8bc4a2706acd9e4b6f703931a91d099915c522953b6512409e472852c098f21ffa46ec06072137abb8c
+B = -19cdfd062e60822f25372dfd9f0fe3a8e70900ed1efe2a9ebd2c7e4a3f9a8f73b5ae6a3ddd1a616022ce2c66836fd5d63a4
+GCD = cba2aa900ce0b370807872cef627cb6f3636b5503646162c44
+
+A = 14c8c9e610760694c5c67959786c50241a8f123554d614ef07698e686f84f04349f4244866598c39ffe0b297e4840f0aef4e
+B = 7de0d0971de3c2fefb1b1c5f843353deb1d7ab787cab71ec163422da96922c38c00311e89d59b191a3c009badce1424b7f8
+GCD = dabc3eedf6652d65f442dae1df972eac04b623a60ad52fcf8e
+
+A = 3cd7a3b0de35b8912302d76873868b5e55adc0ed48e18c16adacb9cf32e3abb8473e130f32cf08117a741321aba3c8e209ad
+B = 250923c0ae66e1d3119db8a26fea6bff24fa1da2f8fced77ef215ba118df16407515165c6f4957ae7f37942ae4f05d6af123
+GCD = 92b68549280689712ddf5911a87113a38da98181d025b9d8f5
+
+A = 3db7f3753e722cde98f0f816d7f486fc22a5f438746bfbdfd6281ab58568238555ebc2381a296af11ac9b58b98d6852b365a
+B = -d1e854ab08bc351e69add4668fb373c452aaad30887b70f14ac7c7c159de296b7ecf2faa58a150a220b895b2380ee0936f6c
+GCD = 1d00ead564d6fc8d0fb2ef4a025dfda5bd278487c9cb1a6ae7e
+
+A = -4543d77a51431895adeff40dec120080bd8fa697801b73c5e1034d1310813c16b739cdb51ce6585bafed527d074d58e0a0fbb
+B = -1e48df0e1d9432d3c04c6210dfe3d8d2b9e487023d7bb756dbf1cd097c48c04814bfa247fdbc6466a6ee003a144da56afdfe5
+GCD = 2a931574a93c8cee4695a09cb2f28b99111afbc3bea74c4d135
+
+A = 8dfa4e53421c11daf4ad243529cedeb2c8b4e0ab68f19adc259476760e1c5e4e8a0821e4b52911438c531d12c57bfd636d940
+B = 1f2658c0a8692ab10cf012b8ce9a3ffc251b37aa6587ae3ef747f8d4cc9c04e5eb899b83deb3ceb93c3385572c0aa3d877f780
+GCD = 7ecab00f8151a74d219b067ede81719c25a0c265c31a7137740
+
+A = 3d3767ab5f736946bc457b408c2546deba1657da36a9adcfbaef6fd8caea8f0ebfa7c2f6c5628a453bedbff5abf88a4aa1b6c0
+B = 219b090924b36fa57e2127a3a47563bbb9231c296abc2d5521ff1227fb0ca771e7c053b5e9f571060ca1459affed8951cde14a
+GCD = 8fc8bad098e4118abf8709040cd4d5165e683829e7072da5dde
+
+A = -bf4a5a19a95159d4a8862d1ae61893c714e42632e2f33788000922b4c5d91829f57d08e620b068f19f9b7c315a41be52eccf62
+B = 73e318c13b8803640b258df2cf53f54f0ab0abebe99c5d593c103ab9c0e1e611fe58dc9d8e0496463f4f6e7e3df214aef86d98
+GCD = 18fbb584a28e138a7e129bc954bff84b588044c2842420a50e76
+
+A = 4e34092382eb35e7d263b745069008fd18c446327ad915833179008abb4bd3852d71bb648abde0147c2c2f73c3b1b88e03239e
+B = -65daaf978c59591cb6a53e938d4116850ba8579cc74bba340511ef8713119e939df7e1ebf34d2f0e443e4d5c0e1ebc94c098e13
+GCD = 37ccb42cb4eae376fcdcf4b453550b21a4e4cf4d6dabfc38c0bd
+
+A = -b9011701d0c08322f97a831f57f754247a81d4bcb492baf116fdf418d1ab5ec54c15d962053127d7299c8c52d07a3481e30b301
+B = -8a1863ca08e6a2d9d36247047b26201294c36f8d654124603d1cf294fabae963e032aa10534cda7eac6f3c6b3b62dbec7868791
+GCD = 676bca69959743317359428589273f18287d327f338cbeb32547
+
+A = 16cc4d9182c42a6b6c839cd2ba010454d3c672b3bbdc3b54e0a9fc793d81dc3e87a3eecab5b1703aee5c62c1c2ff6d45c76917de
+B = 5022a9079d66e93e0f6b95dd56ae565f434be101a73de4c55ff2ce11c9449950cee02bf9802170ab582721cb5a9085001f09e322
+GCD = c0c6d7316012448f8a36a5f3d177c832b740ec16d350a8b17796
+
+A = -cfb29432f7b6e8ca57bfa645629187784344a45c0b6ab7ff0ab3a33c7d858986587e89a5f2f6e0cdc640c1892309d0e9cd363fa8
+B = 10a03502dcf683ea8edcfb995087c324834796bf6d8652f23e6f672ee0930bb565c7a8860b78e177264b535782b22653a5f2c5e23
+GCD = 133ca4e1201fa1e489ea670c0d538bb399d14370ce00a5f7d7361
+
+A = -3273fe450c5a4d13a662665e2b65c7bd6b84be94ca194628817cbcb7a320330fa929d31c0fffdc2f4d1cbf851265591ad6d60abf8
+B = -1abe1b39a3833d4ef3b29c7479b11d503550fa450f4a01502e824338ff496160680b73df032d8b203d58469bbc8cf8ba7aebada62
+GCD = 76e87645b6fd46b767711cc9db0792fbf747ff09753bee7b018bace
+
+A = cce4ce303bb56f35b0a4a0b1627ab555e0ad5ab8216df6474edfc53a6528126514ced5a620c3f38b0f4801bae834079235cd4dd50
+B = -119a0798fffee9cc2238563e22f18a7a9f504606e7bd8445fed7ffe5aed3ec0bfe1922ececc7a49da978568f78e555bb5672c2c00e
+GCD = 554f895adc399ccd3d4eff3c92af8c5eebc7d928eaa653262f8a6
+
+A = -f542da8fc3fca1970bd95a0bdfc055a3e4dcf4210c0cb1e924beb544260c5977a209600ec901dfae031442f9a099806a900d3c30
+B = 15f656529a87dc4e8f328c7b9d9cb6a50bafe670d85bf37b69ca5bffb62c4b725d7723af0308959e387c5e3f9047501ec17c2c97ec
+GCD = 159f00110db650fa7022913c4be9be5f8db038d21457df67292cfc
+
+A = -3b914518f964cbc1a2179a9089e822ca5a5a79fda2545adc867674abbd3ed3281ea29c1d235b45123e20aae5b9383d2673f19fc0ba
+B = -12b0fc49faa313c83002782c01179de99b1412b57b8a05b9b9bbe38980945c063e533bea34f7ed0d30a1bf7d857f41e9116f0f84880
+GCD = 928695828532755b9fbc6af84f4a9ff75f8ba08b738be1138c7ad6
+
+A = -d75c84375ca7d27e9d2b01257603c7c87d35a51174143b3b53668fabd0294d645ba637a04f31ad24a5b19152a6785fa6d1e4e11738
+B = -15ced90b5e836536c57add07d7cfa1b09a1969493ea064b0ddeab1a4fcceb3653bd98aeecbcd56cb72661f5147fd311aacb282d120c
+GCD = 61a8fa789fd156be601a41782066210b0cec24dd29691a0a83bed4
+
+A = -159b9cc0a3863dfac0ccaa1cc7903a71976b9a29db39e3449f4a17adff7ed1fb44495f64eecfdc40f6c094acd74962e2add4943fc7e0
+B = 10c855361a721dd9732215c66ca8295cbe1b311807c3501dc7cedebd5159665900accf405403c11f3b76f563e9f00b0285a315f44640
+GCD = 635bb3166f93745eae06a1f0b4837afed6156dc9a03f52f79e4260
+
+A = 1235a6ee13f28e3fc211e06cde2a30e07024af731c59a29cc1366bd5ccdc1419914508097193fe551a1cdacb94cb48f875f685609a30
+B = 4062e13e531b0f0ab84829f6e292105bf786328dffc60e71533f28390b339af23b0c57f3b09cda3074efd9267b242d7e8b20a6ab3880
+GCD = ab35c7749c37afd1bd42ff0ecf0530e6a5b3bcffc17e07d5b9ceb0
+
+A = fbf7dc8e478080932a0a141b2a36ef37f015f5d78ecc0b3f5aba836c8f6f433b092e391fefed68fdbf095808728aa233bd336814ce28
+B = -b329794340178361748277a6cd1138191e5df3ac4e10b1f61faa21574f72db767c3addae3c8b3b36f9e86918e6dba15a308349ff800d
+GCD = 15b7aba51d043e81d4833d00ba7d252866edcd7b9d9574c3113eb95
+
+A = 22443fd9b5638191f9d51e16f0ce72ded78a31c8caf4791fed8847070afeda7bc212d713a794aa6fbb6488bdc7ba2f3e0858faff2ce5e
+B = 5990760a8d54ba970d310d97e21d6b90588741d273010a4b81bcaa463bbc874d4e926768808703735294e8efe4d316abec856db0b0bb4
+GCD = 3a49cd38d520446ee1ea5093efcfb51eabc18eb7aa1ca2a5abc3ca6
+
+A = -3364e480f552b00f701193de1dd82e94a997e1401d22a9bade30e9843997495f9b265d33a305634230220af7c1c35ad3e0bebb6ff3569
+B = 131a85a51e1b41f28aa94fab4b35f1349769b61db239aebca57c9d11246fa1263dc4187406aa23ec9da70316b405d1d6d969ec6f90b630
+GCD = 4ea0e98af23428817648851780f0aa6c607bf473cf9573234ac0d3d
+
+A = 649aa1f5552567c880f06bcb7c794cf3a7b0c625e25be7d7512bc8584efd003e95135086856d57f73a2860687440b6de1acd0c034bcdf6
+B = -19b85bfb1afb006875c1a730fd8df9f51e8bc596aff14b054421f2ff3a7f0aa0efa94961339cf0a4e89890653206058a1a712dd6591faa
+GCD = f01f1de7068e1231f256057dd0c109d8f83ea8731195c1f3087b36a
+
+A = 4019768c40712020adad69bd1b8a4883c500e738175b3a2aa9a47029097cb4bd09b0c0898eb7dc1cc3654e6cb8290deec183044032face
+B = 18555037a6818ff4f4f71994e13eae64df48e3ef8291a3e64490e0a628dbe89ac188307c4c4cd781d08b3bf0600bff6641396a129c0d4c
+GCD = 3215d8c73b8cab3280e2ca0064820689c076e2811c3f3361074076a2
+
+A = 3373f2c105a5eba6339a3b0e3c1eeb6372cb6b1e90fed0b78f9aba3c16cf32134810321697cb5d58ed59251ae813b03a547d42d1fd1158c
+B = -300ffe8f4e814569227ee23ade7fab29db2840920bd9cffafabc818eeda9deab45b0adfd3020f4a93a8ab273a6ff0411943086bd2509926
+GCD = 2ff65fb933e30c2a25997c291004dca0c48df55cdca6f32c2d689f2a
+
+A = -9bc948668558e518d69653e034e5c4c6feb9a16acc99f3332a791faa48c4ca8f39cbbbee34f6320760699bd33554c97c1103bffa752e231
+B = -13745de6c2c9fa492252beb8c83d1969ee623fba21b3d7e3474a2186e30a4f28f5f7075052d8f19694d762c4ff49cb40e6048a2f6b5bf2a9
+GCD = 17552b9afd63a0a99f1a94df9555b6e22e0f96765b97cfe6312aa0f2b
+
+A = 22b99eb84f08f637b84f80f0ff8c937448cfa9b792820beaa5e283a42545590ba8bcf844bbb0279eb4825147bc5166524d259ab642175680
+B = -22f9f0b193d5595765a4b3710beba70589a24a3f56770274b349472a05a48ba02c0adf06ed4b8650c407ca9cb45775cc183448be4539bb00
+GCD = a13927cc5c5450d6aee173ad5032f488af2a3ea22794ea42e6aa4880
+
+A = -10e836ea0c86027feada0d19c73908bd09655285f0a2afe4c6a281f1344ebed130f2a98081e2acd3c5c0e5e6fcc729a52f7c652a5991a00b6
+B = -15d547eb5f30213c6c9ece29048e91e57e4efac3075d474157909ffa1788e427aef39d5e39952fd4ca661605834d0e5d5ab87f2e31931ed46
+GCD = 35fc32ce12e5267a0e367b3395977b1bbb718e9754cd7a9cfa1f496d6
+
+A = -660d3e1e6c4786e81c7bfe2e14672244cc915a949a74e5fd81e836d0b5e761edd88448f410daac75e988951ecc3548e0b9973cff77fffa906
+B = e64fb42cf6be4f3254b6d52cd8fdd9618b75f2c2192c8158698209436de33bb5ea391b6d659a0728b54b06fb3b65bc95d99ea9a1b0f0efe7
+GCD = 3bbc4dc6f3cb8078f97c88418af7954de1e4a30ce1303b70d1c32ee87
+
+A = -3770dbf23da5fabb8a67bbac768ca53bb0b4f9c6567692467c8c52b89f56178d1c5cc25bcb0ec8167cee916ad8e3b890cf1d63650a85044ad
+B = -db61f1213c642a989f83c898e3e4d84ce34fa63ef96f8e719b62772cb8e80fdba8243e9dee3f16e2e7694131e8c25c5419265eea60422e973
+GCD = 6ba743f69174958a228e5260c971854a4a52fc14f83c304c6fbeb789b
+
+A = -2a65659b013d56e26355f01e62201dd90eb55466c03bf96eeec6cfb963982f0cbcb7c3ec9b451af8e297a30b217664d150ce38255bd4ffb277
+B = -2083732e388f22e6a9f605d182d3929718fbe06f754c39d40be378c8d5cd5a1db05524fc31942fbe4bf2fe39d94d81a0174a1eaed220bd5873
+GCD = a9afbd0e33ff2e7b98cf5f05331909f7b718b36f9a4bf31ae59147157
+
+A = 19c2d5d67ea12f2b7f7685463f73c5e62defb7b27aeee0bd02462695e2b408ac624adf5ce716119bc3a0e3e3a8f6ca115bf176f131df3c8b1e6
+B = -5e8713b5f2d2b01bfc102d0e0c25f88236f451961b79fed40d0667fb71f207ff95a3b75044d18f02a93639bafc72358448d46846b879b1c8fa
+GCD = 1a8447fd535c9645aad89ac2b790c0d4231bbeb1641273af9994ddfaa2
+
+A = -2d1da410c37d40aafcf457ab53629f15e8e24aada4a2d78633949286458df5491667fd59427c0d292ed9704fb10efbe5444f178e657a3fea228
+B = -4570f051785a46938b9db3f0f75858fd81c5edab48a7298e9537847314ca56feea13dcac9b71a5a567f9be748c9403b752f6b4cfbe03f56037c
+GCD = 16e6ee8fdf7aa7966069b898fa3a5b8bb9e494a89200a27eb841be4b184
+
+A = f80bf37dd6f5c8941d9c269fe80ff8731ae1fb99f45f4240f868d43c24dc8995f0970847a759906b7906fd176a194cf4d1c2d72288718b489bd
+B = 105a371338d22b530b68c058b9f30e641ff5cf7663fb28a1ddc5e4e7a6a93f092eea8145a7c9a56d5669a3f42265b1c599ab54590ba1da789e37
+GCD = 2bb36aa6242fae1c6d99f9b32d36f723b1fa8a0f8b1c64cc7f77d404a17
+
+A = -544514f654fd9f60dbfe770092045a201aa318647463520f70c9b999dcb719b8bab9282c83bfd4fa9833f3f6ca1a06fbd8436d76c23c3c48f602
+B = 1eb1adc9b8386d872192031ed92a02dacb6c36a1ad965965567eb2fd16917793e1d3d637163cf920fbfba75121920f8d7511de622a0e5e39d84c
+GCD = 16531bf534ce1bf9b23463e225fdb3f28f6bc55d1cb6fe9af4e2e26ea62
+
+A = 8e2fbcd406c57293d51cddbe10fa33a2d2b21edf9bd0434a9bdcc02c6df1e56284d56924d030b8830450d560223dbde9fb7ef98f603588be81e0
+B = da7d00c8504366804185bc00851a5782e0d99aa1a6b9bf104a1b9d4a8386feabc57469f0e4f95d981dc0183adf9db6c7eea339ddab00664df8c8
+GCD = 29ddde28ae7ec95a9b3e07407fdcb0ec597ab03bed65b2784ec3f597dc8
+
+A = 7832045bdeba8a0934ca9f4477b67432f54be4a99227d9d8b41671c228e20369f5851a61bdebc88d8153abb0cee83effcf886eab9e573956e4e16
+B = -214dbfa10b4573d7423f635ec00c68ff20e9f68517aeedee4aa9b57f58499ae55657b0459f3215a070932294faec5d4aa3a0e7d3233ac3df1d8fc
+GCD = 44f7f79135a865fee8d94c540740e886ae6965af8a60ba7f558363cdc4f2
+
+A = 187b92238dfc9c1179fc485e6dd5ea9b3b8154123fb89fd41996e7ae59cfbe36882661438aca8a0d23c20876c231679060ce87e76481ae9c3dfb88
+B = febbccbb01af358555e22b3e4d02d8512763b853a2f15558199a46b450e4943c79c9e3683e2b7e093e7e72b66fdca956c7ab099ad33d82bda788
+GCD = e8844f9edfef1fc4b0a8f9e18e47a520186378fae7a1ba3c25fcfcd52f8
+
+A = -5615c997de67d9b0d8596296ddb43b07af45246b4ce44a346415302faefe7ec5635ba23bb456814f74667f7de106f85b94423519332ca1d43e5971
+B = -45ec83798afa6c1080bb3549e9f867f29dece4ebb09edfc8e2019076c2af4c4657124070c73b51e7df41aada76a06097e19e9a20f5fc6a73bee7d4
+GCD = 7c563eee6cc5a6b259e11206e8df35fb259f280a2de68a594d93660689bb
+
+A = 11efeb97d25f7fab38d0e36b9c2c25a70f48b357bf4710cfa3eccfa7d9324cde6f86f3bdc508cc23b3f8871c32f0b5221af44faf4bd411ab6475fd1
+B = 175161b7c93a71b2844ff34d2b2b3aacdda47a76896c7c132078efb80983f9a12cd08bc98d71e2cba6c6cf06a84908068fa9ac385cf163f3c0679fc
+GCD = 1f91daca6d11233a7361255ee1f84dd89ebb94287a0de01cef08b3ccd4c1
+
+A = 3f6c63a6240c783fdd6f86a0631c4128d49665c25fa03b00c137358e34f0f499db355d1b48422412b40dbdf24a7788d15b1878171fb21e1af58078
+B = e82b3f2ef1b02cc840543e67cc4cc7351c4ca1bbaa933b67d7dbdec924f815b6d73f21906f8e7b05b2614e98105d5c4329fe48a5484a368ada155c
+GCD = 56a85156dc1a49fc180f75f9fb389616be527a590718d3564a188ac7169c
+
+A = -b28676e1888399b7225faab2d0592bf24435dbd794bf82cc182eeec5fd6ee01b83efe0ed379847fc452ba2a9264f0ecaa4ec15e35a6fa6dfd51237c
+B = 58d52aeee3cd6341d247c92d26360b2147eb5bdafb63a757fdc3c03f5de308cb0d9fb35698e8be4ce919ba5107c5dac6b801ec0397e9a26d941a590
+GCD = ea955035fd3fd8c827095523ce66903b3e181eea3a6a6b3ad023e26e776c
+
+A = 4b59bf66db0d8e183e53690097de17b048cefa6f956c9d5abb2b9deff2019375336a618a2bef46e0f5538917de46625b44b209e9471f6efb775340da
+B = -2e1fc6caad945ab20340ab7bd17b26e214bcb852c995c8a01235adc8ded2dddba5cae806b2b2b2a6778d91b68e26629f18ab85fb017f0c6126198612
+GCD = ebd2978a2d5667594854425d50885fa298a37eb75cf59f24ffd88876e0f2
+
+A = 1452cdf9df4cf479480cb771f247a14808685183ac297d87989a4afbeecec255d34b4fdfac188e3a4b3797919f67ee029025902585ea223957220109a
+B = 27f16868b878666e9a154964120f3aa91b70164f2f29c1d21ebcfb0fe15839f940d09d7ab3818505a2149753770b211c22af03dfcdac03e357e4dcc0
+GCD = 325dc596026e347ad85b9d829db3ff3d1646256f20c40301c29632ce9c63e
+
+A = -39379342dc473bc2253a217e53c19a3cc20760c592a1f5a17d8bfb07f043d5c5dd0e6de758cbe2e46cea56ea003ba810d4727f74be628cb4dc9e62f07
+B = -1f8ee483bf73f5ed9d92f35ab4db6af78b12eff98f791e14e6953e3bf60305c6784ea85ae5e6488136060914821a2430520672bfffb1656277ecc4839
+GCD = 6aa576478dd4b6de1396d6d98671416dc691e014eb9c4ea3b82f8156d62ed
+
+A = ce4b367a98405ffdaea338cf4dee7a788ba1e9a4dcd5a7c995b22d13e10122df5c2f2ee898d3071236805458776dd471bf6934cba95abc513e3e0ea16
+B = -7f47799ad47d1b75bb48b27cd1ed09306cbd4f6ec5c7eb8b47efe3437bbb7b37ab39647d4b6d845dd34742bd670298f0d8806351fee2aa5d0f3a5348a
+GCD = 55839b6e1fa2e5d1822c2c6abea819796114c49a8e92afadedff98a40d872
+
+A = -59fb45ebd96d6d0bca0c4f0210e610da3caba27549ed5c50645581ceccf4f90a1434f0fcfaf6b400ae4845a308a5e4fb96e5ebc6edb3f62028753bcc02
+B = -51c1740fc914d2d7d96f0c55c1ee0e7e38da7278192d881a2f90d195de6bdad5e0eeae228b5d9c42258578056d60f23b3e8e7990f2b1a5274f6b82c738
+GCD = c102712779abe5875d87989c42227eaa40ce3a655d2e1b74a861e386ea222
+
+A = -fd07da97787af8e0bd5357b8c1bc9b6500938676dc042c17e49ba6bcb9817adf585d0c27c63258445570a27bbba502159aa1f6d4426eca19437b6c9690
+B = 917e769f5623cf324ad65cb8a485ce6cdd0ecc20c34a648c5ece0e29d2e5bbebbf68eee9c296bf0db0c18fc355492444ff191d67e1a84d4b5011e856b8
+GCD = 16551e44fd07889edd641acaf2f58e41b986294b824c4da081bcf023374368
+
+A = -33230047b31359f319996c2f965e7da69781165ee2e40f7979638667d7e14300bf99587be531dd179f64fae8ad6236ac092ab3fe107333123d192c74ce0
+B = -39d8abd8a8c91ccae3a14f72c8ae7ceb3bb0da758c91218591355ed43ec705396c061313835d894835cde56ff585640abc3679ea7c48a30e5b8c9423dc0
+GCD = 319366f35ea031f160d10e41703842d4b1b2f30f77d7547309776514ba7420
+
+A = 6dd03d375ba683681a68c25983ced10c67f8733776d1673f0bb5c0714e08d73d7f21a43e132c78645635d9460cf7a499638f7c9278a6735578ff6c88aac
+B = -c102fc49e3fb9a65465d1fae91a65a229d69ebc93a0ca55b49fff91479c26dc39fe50fb1ea8796ee96168e480e12436b274141dfdff2a63356a0cead8b4
+GCD = 1992c8faa77e11bc09a5493918409c76be82e2a3996df8e5251aeed41b59284
+
+A = 3d6e324e5b758c2424aa866f50271e36804639a1a884e5c14dd173004c38645f0a1be7913ba7ee169ec2bfe72754e2117322c48f1099f4e24bb5cb85d9d5
+B = -1a705c545c832b21cea0127c7fcd785249198a2cb669a9e468b8b5ff0b377dcdfb79893c15aad2242ceb4e5fed856841a83a6560ea9d538b0734ee6180bf
+GCD = 3e905cae3294496daf38abef3b923bc6f30bd1b82ab8d297e20f15534658183
+
+A = -3e38036911fd781f5a293eedd1514a04b8fe0a6ea813b985e1f6cb9f67219ce4a3cbff8e2bdb1f935df6056ea96c33df84c5778d64854a0213873b7cff3
+B = 89b72141c05df7424e513e91d93b539cee0eff67bf0c05b3a6b54371da0d567dc2393188a9b8e8776626742dcf44a73417a3efb017b2227316a156040c2c
+GCD = 119694be1b1ed11e745519ad3eb9a31e8e43cbe3993694bf3484cd5bb6b5753
+
+A = 25a485b78c4e6e1d32a659bfc1bda781bedd0ea14d4d6eb07209d607fd201a3e4c4c25b7c51c952a7388d9970505d88af57f928bed5514558df57ac1beb98
+B = 4eaf58609eead03954b323a16475992264f38554c53732955cc90ff309ff12457734d27286860baa6db8f46655ee4f74fef2a165c2172cc8af4d9a36ad9bc
+GCD = 3dc164a3226224f1054be7b340dc0ab766f4ffe0599dc3ecd2d166fcc5998a4
+
+A = 1234ee006305884dc928662380b96d0c5160fe382fa352690e2abb7a08e37f3266f798c87e5d9aa8def77455a94eef3eb2782fbb5d0d1fe0d98025905ef18c
+B = -cbafe80eaa3830747013758d2eadef1fffdaa6844bd0e66cc979d9d8f3f1777f3faca83b65dc7d5c8ca6e055272aedf5e13fc9b8d6fa16212daa8d98cbcb4
+GCD = 7eb693c6019e37c403e4d9fe55f9c7ae5cb86bb5b4673d77de737c80a54c7bc
+
+A = -233de6f43625060b93a2d48feb30a546eb14ea5ce90154263d6639f89581a168e73917a82599b9aee74d58fc39ae0c282da264d0c6b57cd7b3d93488cc87c
+B = 16bb621a85eae0d1b0ef408ed92a5bafcc95a2ea7630f6084966fe5ab984db5b1183e5927cb29b23ecab67f6acdd5c66ad2527edbcf24ee533730ec4116bf7
+GCD = 26d23ea1d413dadc4423a65d9ebcb207693b94df7b5b758c24cd96c204549deb
+
+A = 128566a053ab6a683cf3bc0fcd20f44385371b0a2591ae058c8dad8192e75f688416e0b4620bf71ef9c6a43f5b0aa89f6d3b37a9a181a28281e2b07c4ea51b8
+B = bad8822127a17348713c442dc568cc85c1431ed23c49bca02f98c312c77d3a998d2cf45a0b30ccc8b17142af5ad31760ae42a3c059e1a76344da48b4ade410
+GCD = 46a3a91ebec75f0a3970ff30aa247dd643b62914ce4e525d5ca6258edace262a8
+
+A = -25d318f5848f8198babaa2fe7fca0888ba3f936ed2f97075788fce7e154009f97d0a4ea8ea91732d91689135d1b9fa83ed0e57ce2cc123d42d099ecf35e6b
+B = -41f01924b0f94baf431713ca686ea57580f8932dc6081fd8323b5bab63463e4b94f073fc6f6a6f6d41577fa051fb9f5ef77b4be4d4ee1570a1905f5cad8faf6
+GCD = 318895c677212a08ca1ac28d1c9f22cd29e9ba7e4340eefe75aac405fd55e96b
+
+A = cf9432ed1d56c3346452d47cbb36895ec7f98e132273efde7d8ec77b9ae65e912aba83c5b70af267802f2a23892515f2d0cebe11a917f712360c80f5aa7660
+B = -13b4dfc2d72e3421f78dc15ddf1ccc1533709122835c2b7cc8b964c168994479c05b9edf1b16e7fd618fbb18fd29c839da73d38063425085d1fdad07c8a66fc0
+GCD = 61b109e7eda91d2c9918c44af0f8d4e54710380d616c74962833ea2eb03707e0
+
+A = -342f13177b19497d300f7898e5f948dff17909738b3ef859019927fea1beeacb02659dca2c56a1a84d7da6e06b8f42cf02fd7e4d171024ef645a9e149d19ab98
+B = 3a5fece79f3b089d22b3274b334aa1b4eefa4d60c99cd318d0195edcf70b1ee35bb81780fc1f14fb14c5b1a7194fc59aa2573e6f43ab70af616e53e7bd9e5288
+GCD = 19ebc98e11cd27a6d0888f18db92f14d03046879152c8576db9190c0ac424fe48
+
+A = -ed0a6f4ef2b90ab306d67eea63c37df4136578e1df0b585fcbba0f2bf0b7229c7ac0d4fec4dc1ba1c57ef531a3d6aefebf56f2f610517e1bbd09088742af2e36
+B = f637bc9f8830331f6b1035c31f826f39e225931d8d19ae9838ac43223cc82d28e28a21c1d4e75a0c2648ffaf907d3a861af6f74d023ef0b11c6d843caed13d2
+GCD = 1d90604c1d3c66c15ddf83175c87117f94b89c4b96ad06c41baa3600f216914de
+
+A = -55433233cd172f9543d392f6084a5617f1e6498b27b96e33dbf33586704185f406bdb2ac18ecf5c3ee6f107705f0cb7d914176534fe6314be52d8a5258b861140
+B = 2a3af71b481d1c4a4512af6a6767d6d00fdb6d11656607b4f92c84302f31e6287ddfb27b174d6398f140cb5d72ce246cd5927c7e6bc5886e4e3499f22c8bd71c0
+GCD = c343e6fc91736ba7ce0f38137a88bdc4d6c7d9e3e16dbcfd694334aa6308a3240
+
+A = -ed0d31f14127fd4e513b60abe1d66f8c601e81b6833df01eff45c0fcee59729a567baaff29c7ed458a5129c7e3ceb00754d803d14f453a93981003a76eaf2364
+B = -1e70bc5636f0d9467a8b8d2c8d6622d392e2bc68b7a3d952cf6d6e1c12db51417895a74fe5e0121b7f1a17ce88d8edddf3e2a434957d90309b45a2204afe377f8
+GCD = 5b23d4a881b4eb3eabaceac2d70c7c98529c955139a644d92288393d254c3cef4
+
+A = -2ae4a14e32ec59b00ee2a645b23b5d6e3eaf4994a3d7d68b64b46990f1faf955f4104a232e5838149608714d08235af9b3fa3ed8bc9863128cde6add41aa9c0f98
+B = 12ecec8bf404396989fa79ed0dd79ca7be1fa690c45f3d293953983679a999ac65d5b3d772d2fcb5b7eeba295e70625b1ef6191e41de62762b55666b1693c042a3
+GCD = f0ec5d66cc8b6b10d77abb58fadffd6f4f8fbe58c7b3f84d1a8caee0bc4fbbf6d
+
+A = 10f919ffdd8dabf2e18cf94c14634a22ad0be7ad91185ffa6a9983239bb72469a4d52dfe8a278d55ec5d3f11ed57406cfbd4ca2c1ff00e33eb383d673dc4bcc07e2
+B = 1d85eda70abde996add633303e27fd13b0b7d48ff8d28d6b527cf153d51d60614df8376b5dffd26403673fdba09403e63f209b2fc8f56d39021b41fd37d493ee228
+GCD = 3c5c6d6d66aff1221b2fa18f184e66f26240384ecc991efa15ece2c23fc0c12896
+
+A = -5ac1bcf25121420198e74192cf1f9ac8bf2c14faaeb37767e44478b7040cd0f9de82e73e01528f3c9d476cb710df631421fcc9548472a82aa243d627bed7c33020
+B = -33328d1923438e9c87d743b081df5f24bf4eaa734ba5b69bbca0d5692e187227c81d5fe0450316e7bb8c435832a8c059f5ebd9afbfc36f3afe3998aa9f62d2e13ce
+GCD = 52bd829e4f57d204a7a737772c2abf0281aa225e898f00ddb0ea2cc0ccd2d89116
+
+A = -14af0bd5386a411301648f9d01d35b4de32464317ac13357f0ac26758a61972243e3a1c70bff08ed5853d23637f543412d39f1b327f61b8a0289154cf4efa0972442
+B = -107655a4273c37eb86fd7620ec60f8cde6b9480f0a9740d351ba2f910cffc5e5232135ddfdb3c64674a89a2a8412a2c72f54dceda4b2497f6a4e1da926dd4c357c16
+GCD = daa258591cbd5839c8894cf98d54ac67a9bc7333d8580bd2feed09430a11296176
+
+A = -4536875469edab4d446a96b93364a7b8d2c3251f254e84fa7f6a9734a50be79382eb024fe7d98816839015e352f489865f8c71f79eca212002c42e962b4de8e9f716
+B = -c1c7fc8c2109dc038548e2399b1a27e25506b1c4953af2bb65f814ab573968556f129cd2c1ad6902f3d6e585d7f8f20d3ae397ebebb030a1d151874bafb353e13ec
+GCD = d320551e0a6b177819c429ac6397069c86b8589b800f2ec9abb8e430285bc7c18e
+
+A = 3c9464bc9e40ab4557409cc04f4aabc99250560ca5daac03ce228e00ccafdef38133668c8582be2560b22afbae0b97b6a8300dccaeabde0e597d421a9482caab627e
+B = 1bfa56fa31149462a820b07201a08cce25b20dd47eca88743ae9236cd07f0a2d653e3532a89677e63e09225992c6eda1cbd40e79f7b07cf6af1179cbbee5e97f2f0c
+GCD = 1094c869a6360ec6b47c6686a025ddd07203f177a893ef777cb154232a696e869b6
+
+A = -17c57ad12e2e9e5d104bab65a762c40b18dcec99612a48f8095f1d103565f479193cd77fd84163ad34f8b4f05b25d8f16e1c55649dcb107cb6178e6c9427607d18d12
+B = 356cf097e12f11b755ad67c3c19f94e435c491b5e350cc7dcfd7f403c99bdae1326758d055dd5deab136c94e17e1dc7b5a475b94b1b300092ea22a80ce36dab1c7514
+GCD = 3f7cb5248e10cbdfdb6647aba7285153e5bdc9e20fe2126b7eedf6b0672ca8fbeaa
+
+A = -778be9de017539446aa522f00703ecc74580ed6b042dbb416a41c9439dc8f177f9123df209b6923fe527037224d87c71ddc8207ba9545adc5aa37c8e7bf4bb40b1451
+B = -992f46b1cd1dad22fdebf5f6b75b096184557cbec0b7f5fd8d90fa8df5a640dde3716992ed81b1c94f0e5fdabdba05684dd0e5b620e4c59ded9c03fcc0bf3e224a770
+GCD = 633c1ae79ec8d5c650b9bb565d4ad505137227435d3f7dd60af9c59771d5429cb95
+
+A = 1d41554a541fabd0fe241f3435891361328889288db187480550a06879add2a4206cc56604da97c5b913036a63728a5476442f433c13ce42718b7ce21c6c863d50aa44
+B = -3d48e135cd06710e8c69f9d249c6457bc584908caa66db4e9d07436f0add7cf0da0ad67abc797d75a37ac839df02ed321463d8c858d03bc69304f310c733cdc09d3358
+GCD = 11d4e55d0e81a25e81aa387d5f02d22d39462bb99bc8ab7943597bddc58317fd38ec
+
+A = -8455634c818f411dc3eb7bf027ea21569aad9e6552f06e308a4d8e9669bcdfd2feb2f914e1899f61fbaca8fe52aac80f414f7a21424770f1fdd0aca61961dd909579ce
+B = -fe5432f3c771084b065d03d5a5776dfadab0b2a3d1d180a0345feeda0d2fadb69a137dbcdd585ef41ecc805f12b6f9e936c983ea25ffd1c471520e14cfb48f85248191
+GCD = 1858ac7a7aa0b2e0423c0dd5f779223036b88c7234eb6a9148bc3032df4c599b8841
+
+A = 49dce9eadc368753b29478e1423b8638766749719bcc3898fb6ad0d8aee5d809e7f356d4132c821a0acdede2a563b5a9d5fdfd020e7f82fea2d875730250da3fb60b554
+B = 4975494eaa93eda843db7fb888a6f658100bd0287f3adfacbdeace982abd0ca337839693cc8a817259419828b12cf2540e93ca0731b1627e2dd97ae5c48a7b2b0f94488
+GCD = 630540195d9d523ccf24df7ff9b5010472f8aa8780d2c20cc922dcf4218265fc75a4
+
+A = -d29a3206fb085767882b99d6c6deda38573a7e2a0a800841c54d5d243976e4c6a9781c63f990c69b6563e4ca2bda91e3931dd40236eb7c9540c8b653190f6791696b0aa
+B = 591a8555617d8bfd3ae9ea04151ae1aa360c559d1b22e8a44dd95d14e4097e59cc0e83ae87ba67604e23ff6a64d9e1ee8e4aabd66caf439c4df1bd96c3bb7c49c242e3c
+GCD = 41fb8a80626b259f10881e242a7d605940ebdd903129e27b96e9576c07a42a27d5fa
+
+A = 3b22d53ff858ad776082cfd170ba82501a35559e76c93b47163fd711f96887b4d94227018ac32a308b99771dc50a93e1c19ae60bfdd611673051ad4ee6789130b67ea4f8
+B = -11d795c6ec29c5f6a0972d77bb5fde0e58fd873cd77634d993087ab5c4e83a5502ef9a2fd9cbf4eaae8670678e5a525b733de5e4ea8006a4d3deda080e00db946441628e
+GCD = 17eabfe8bdec99b627bbd1637687510c6023d2917406866a97e61734325ec94693f4e
+
+A = 3578809697b7f6299a80d653bce567f0ef848bbb70ce9815c821e3d544f81545759d2c662fb8c1d850c91e699caeeecc1d9d7e78969581e57dcd96bfe82ac3fbf2190de6
+B = -25ba0f690067e86d7202aef904198d02de63e42d02ea7bd188cff4ab5e056d4fe600fdc8c88bc1e8b3d69e5090d63dc6e513f7adafee6f104ac55a0a0e4316b663453330
+GCD = 387ce767fa14f3e1cd3930f25204f24fa21b5745a6bb6cb6a9636e3591032b47ea772
+
+A = -d6549891f812e60828ffc0b250872dc661b1a224ab49e0eacf8c00367bccbde5ba5d00c5234b11acdb69c68d1f2948dbed33b6a5bec4599fe66a895664c2fe857ec851c0
+B = 27d89e909c13696cecb65df364c885b6103116ec31efbaba0665caa55a1259d89e537bd04d13c8a5b51675360e208815770a64c66f1b635442fe5697ba797d6f9e943a1ca
+GCD = 4d226b68b283d0213ef9c111249b2aa21729b144426133d4cb485e94249eb3534ca82
+
+A = 106b5b5ae06abc4ff3e191af2eec18dafcd61170473dd3ee64d7b174995f7b6320244e4c82e198ddd8d483c6a5bb610b118182829fbf86ee78235a509f046012ab1d12ff55
+B = 143de6cfbbe172d7b759b282f28464b17766c0ac051b9c588b4bcd9ad170d462278eb3c6cf7e18168fb4c8be6c306ac8decc47e8768908d2dc9ba8a4822d0cb3ab8ca0fe74
+GCD = 686178e74ec3ab68dee87868674f5c2663f46d8ea0960d94c83eba3d7869786307709
+
+A = -38953f2c424f21b7b1984c7908938a9e685b2c123831fc7e7f595e99897792a038d0e1d94cd295ead895e7b5b69291737b9556692832c3536fa2b813122f2b3c9802428034
+B = -342220cdf13c19a40bb2afe4d0a1fcc4976f7ef8c6afd8a50ad15c4854918ae8dba140a71dac7236b791a384a6cdce134a71673a7318c91098322d9408178640bb01824bc9
+GCD = afdf4acbd31bc165bf194748ed48a76396f0934960385461fc2bd977285d7110d51a9
+
+A = 1605ec15abc0f79cb0d82636376b81cce7d6c4172c63e31421252d86785357bc6d123b188ced34a81d09bdb9aa452c47be44c2084f76f73d8f0b9e089216b22cf1c103bae0a
+B = -7cb17b1127fac1fe36218815cd2eab25c3176afe683fa13dc56b420848aeba8f1b6ef5f57af51a565edec386bfa53cdfb8d32e6e1bc56f14facf613e2fe6575b199848cd40
+GCD = 1a1ef87ee5b0610f6b31143911937f282f21e74b86bd683ebc25472159b34429708c7e
+
+A = -59e89e8f9891b5b7cf139132731b1db0442b52d9493b63069d8603a7e5e741fa8f2adb05541cece22eb18f2c1d85be92724d27025b5aeb123a9e108fde2dcbd42951416f68
+B = 42c27f07252745b4cee71ebe52c82c773660c57aa4a7bcbdab12ddd8977dec8b04be844abd52d1d5040668a09bd49ead568375f5ad66561c296f312aeb1a082d1fe1781787a
+GCD = 72cc170721f48c83e6e9108f7c1e0bc72cd81c8d44d5e63df148af05fdea8c74f0feee
+
+A = d90060ac81e621c82ffa2ce8096a025ee40604c4df2abe2be7fb5938186fcafff01bdc828a58c5a598e9f3dc9ca2ef5541dd5255d75d66f8c775aab103c7a371dec1b8c2c37
+B = -1b629538569d3329094c1ed857de81a530aba3362c786a39b7018163adc2dde5ff823886122c996810fce7724cbb5edbc3223ac30ed832be86dfe4f56228aee4f6af5674f2b
+GCD = 79ed2db901e029b59a15260c826e96a3e6c07faa31590c722848ba713fa67df8eebd55
+
+A = -31def5097f198ae2fb17a75dd5b950988f4ed2b83558f00f27b77eabe98f4cb47ecc3e7cccdf0fa2f05258bd2fd9795668ce55c16bb4308e958b24b6f101105a3e5903b41b4c
+B = 62aff5c234abe59794bf464e5f1d9c702f6e698f62791cf2e8332873914b3e8c70d3df026c9bac7e147014f5383e797797fed2bb8118f938af6fd96efda37bbe8b430475c6a
+GCD = 82276595ddd93168e0f0d92b58c0bd53e06f9034bca205a8a6698e118c56f81a4741e2
+
+A = 10c90516d3a36d85a2a603fcfbb355638b53bc469bf41be8793fe974b0e6271d78f3ef0b8794f064f0eb19afe52513eedc985555f22ea1810a64ff85fdbe89a303005daecd5e7
+B = -15966c787a26c08abca751dde8f86dad911a9700a98183f6660b6573404f5852a5f75c114f6f54552f22e010d1e10e99b7754c8527717b4c87a4b54194ac9d02281dd1f2f34a7
+GCD = 1f68f6e5c87a4feb57ad18c6a9ab9e115531ff878e0ad319c0b1061b5a83ad72af5af3f
+
+A = -456e43c4e3b371b8cd10d2d61ea9b858ac07b85688dd4c409833571433b9fe3b133a62557d30b9e9e2ece32e1a1b6bb615ffc2b310a39d454f1320eb816141662818d3bb385d9
+B = -195e597d6dd3140c1d5eedadc031e4527fef05a9c4f41a71dc656fd9fb856f7d0dd0608eb2449cb885b92040935914e779f44f53b375c659992098ea694e747cb15fba85d66a2
+GCD = 2333fa556572c692d6067ec6b77351b427bc9c0754fc34be2db86417857a23f61b5d9ad
+
+A = b29fe2ff288e931c6b8570a7941325c995a084949879d043d8eac1a57dbb08074595d88e837f4e190148897246e69fcd620fdd8ce7ca89a6afcaca0f7418bcc81eefbd8ba9b65
+B = -e7ba9a1f97460dbbdbe50d9dda776853413a651dfbcd9a0a90df597c4e5db4f1c10e85a79c0a1367fd3fabb217194d14f05acf1970e0a0f607e2d128bea59fd3101a6e276fd51
+GCD = 52ad4c875f1128b0e31ef13793b1bb376d27d0de470603e47ad89ccd08516e5b09a67c3d
+
+A = 18b7e4c476db1ef45552f206638cc6efeb96e06a3612489a2fa975bf7631fa742cb4f548b2c0e996bf08e4d499a2a73197b343f61ebf36298a5be42968170a03f94215b2057c03
+B = -2b1eed2ed3b6198516d72ffcf0174d5daa253fe449c2aa33ececf9e8d7ad403f1bb1cf04b16dc530b759714e27db09d4c261de4ccaab5d83852010d82c36759cb8cfab49065548
+GCD = 9739486102c6c7ae4627cc8767fdfc14625fa4a350ade34345badd58f428c5576585ce5
+
+A = 24d6c9b3c658ed9e3a2953b0777d57a37a6703608e4cb7e2c59f4c45ca287ef569b211dc30f96716cc3457b3694c6301228e2ac0f1149d3f2e403ec6bac420e8751a73c5786a3b
+B = ae7154e6dfd32233b96252bb8d9810a7e14f1f3c1e3db698e62e38b8651bc1b807e056992fdc8cb087d64cabf8b392ebc2456270b2763ee9508fe1bfef615388bb7cffe99f9fc7
+GCD = 9fda5651859f8b14f902014bd9041040735e20cdecd618e6a66ed2f23c807ce7c77d5d59
+
+A = 4e2cf679e064177b4f8efc7248721cfe252f76713fe0159f0ab7ef39b234813828e73db7152f146584b228befde8767e4daf6be8c45bb149e64dd8234ccaf1aea61438afd11ae48
+B = ed5e1783976dec850f3b89b74ac3ddda78c3eb0b641a79f93239055bdefd50e029041672c05ad4937fc32dd51544fa1857e0583081df6b66ded34714f6b1c9ee7d8935e084a610
+GCD = 19ec6b5e5a1c1cfe588bfca746cff330281a16f075bc4c9f1d95861029e62888775d54e48
+
+A = 69264575fc4ada8ef417a44d183203df0b6442292cbcf271f64f4d5a56f4072f6bd50b7ba7980012d4796fb39d5a07439d72770e51e9a3024db91324d3d28ef3546dfab1dbe2c38
+B = 1497ef81ee0e887945357bba106ce890fc2c38625abf569df597cc007c42355b09c0bf3883d3154b361729512ad36190fae3abb6bedd6a35593361e86df5920bbd05d43e234bdc58
+GCD = 3e773f31925e4666610e6b4ead5785dd553087e026d4d7c3cdf9058b0cdfceb517afd6a08
+
+A = 31bba84b6ad2237c6f9d6280b7eedf4b5c6befb50ece2d68450c31bb156d593ca18b590ac1c6a996f2484ba62b550d0b1d563d198b6f0e8ad2ab9a5c314efbee4af0d8316c596d4e
+B = 2dee795da75d4db6484796d216fb2ba8197af0f96c80a36770d276ab8daace5946c98ef4a6fb882fa8dd2617c9d3e5766806fde07d9f7645f5eef49b1d166462075d7e197154b2ea
+GCD = 11dc4efe9ee2878d33758b97bc7aa0438663845ebd0a0fd4b1818a799738f0996a94d14ce
+
+A = -78d4623ca18af4dc1f6afeae38d1aefabb7fe9c84ba39fdb8680f725f7f49f69474f1cf71e5683caaffbdbf66ddb66b466362fda1b2f6b64d66046db74c66e1f7a56903eda04a
+B = 9180b6d5c24de225d67ac5949fb455a3a7504a6580eee29073b5883f367d65b957cb243b16b895e9385e5c2c358d0033183a28e5a5fd0f32c3a2eaaffe2108091c92e459bc503202
+GCD = 2441223b7eb40dc44ba1a8214975a8ca21bc2c4062ba735c16ded0da63a9d32102a42c5e6
+
+A = -403ae86522f35dc86e1dca273050020218973d142aeba3e3750535b10316de44e0c61d52eafb09b2f5532259e0fc82343af8df47ff8808ce9de34fc991dea7fc095e894870897e2e7
+B = 28eb27d3a7694a1ad53027196c2f8c9b26963abf519594d29e8f2d275a63f62a0272fd3b46bc5cb3687b8f2c9b93a32aaf0542b6c9168e3b529813b80ca4ac6f0c65479a29d7afb86
+GCD = 363c1cb90394407209515643a2818d01942903e813a0b73636139f70eadff472e14a4e22f
+
+A = 1bc6517483e57e92a1375f55ec93afe6e0b3294c7aa7f57505adb31a2f40ae373dc35b2c5f0e7c3bc44e0ba2d5c8f76a677731a18eff1552cbefd2897d4c2bf65801040d12f00ec78
+B = -e2bcb37b05602612b3756a880aae851ba32ca2b0043c9da2a1175961a41fd72acfee03aefa6ae78e67dfb210ca8f80dbaa534819e69cdaa411244cf7883f6c42275f2b501d2de9bb0
+GCD = 69eb60f28fe604e4eea78fc93783ac0969b79491a88fd943b66c287abb603d0413df43a08
+
+A = -69399414e0ee4338b76b928f0c52ce6e10f3ab65d06bcec7f0acbd8da301e7e11b2e8b3ee3d3e19542f870b2d91d329fa994ac807dbb43c06a498da0860dea4f3e84c192d5eb3a7c1
+B = 19789e9dce980e04c6d488b244c9183303ff3a0161c3ea01fadcaaf1b42bc2c0c2d4e0dc159e79122f78846b2a3d4070b137c47894bf212ce8988b6cd194bff55d624a3cfcca3aa04c
+GCD = 8929efec553396a106734507b3e27b8b66292b99ef47f0b0a629cedc017161bf2af037357
+
+A = -d3486b411b02d1f803551cca36a013d042a85817b45e1a519e6d790ffe47d1ff70ac54bf64249753f43095daaf72b883b22151c0ce5ec357dc250696723b12e1db2eee8faf492756
+B = -ea5e62401b2c8e77809561599482781e46caf4fe210ac6930ecf06604c8d78b414b360a56e46885ca120e3367e5dd6141f99c82073e8e891efc981d1707bdeeafd51befdca0fc92a5c
+GCD = 1f6ee8a486bf730f08fcb731b914ce4aff1b1ab0f14c3220bd00d8c6eed200849a9a6b892a
+
+A = 3740de51a460599bee0b5bd1ab5f00f21518c5fbed4a944aeeebad8a009386d1f332d015279cc227cd5f6eb0bdc8212ef7ddb41d1de040045355a8055698fd38202df929c5260c35f98
+B = -4a05929c085e16e541172c7e9eb1305b0dc76b7a78d0cea6e1f197820ec95d86cdb3c5b5a618b25f49bca20d4110b8354458bbb5c9c7aad17f49e28642f164b21c8fea27b1a23a0d8a8
+GCD = 21571c25c9007d247a2399cf87685253f187f893e1e56f62051aae733ef94788646899ed2a8
+
+A = -bc00c7e60987956be2f4c0db81741c6b33b1f090fa6d71f5f7ea6c7b824dfbc593b49c4ecd591674f44dce089f88201fdd3fda245d9660a44d0fbc922a7835fb27ffc180dec627b346
+B = -d28463ced2d827daf64ac95089b8fc3ca77faf518caef4184b00ecaed0a8c7565878dc7b7d387d7bfbb05ba26fb490c1d4ec0722495902397154d70a781b260592f250540effdc580b2
+GCD = a6b23c0c78493c4857b545d108b4e4153bdb8ff3818d2e7a9834bce524b2ede915a34880ae
+
+A = 40e97bd2794adaaaf96a77778431c80e985435a91dfaa9557fbceb0d2aa568cbbed449b7fe79b38136b5b31d18458b7482c6ec23f769e449eed2a345ae021b0c34ad395bcca2b528161e
+B = d7ce46d5d72a65971a16cbe0ccb42d1536f4e3e9efc04b4b97c8f768d851ace6736e823883229d12b950a58dccf683f2b4f28b991b087d871c5376c174dc30c3296fe3f05e83bd319e7
+GCD = 8ad57139fe71fc8bd3439740470384139be69b6b621ef861541dea10b368a090f001c1c644d
+
+A = 6cb8b8188dbb02f95a65ce042372a64840c736844854466561c0045b0a1e88695f91ee0900fdce0ea24ea7e26897d39d3a001d182b3385da3af36776c14be39d760e0ae5a8f64af1c7b4
+B = -c31ce19e99f40db83fa040b6ae7e98e23ea6651dd61c0c870e35f500a55e7fece074247278c18c9b90cf22d89d7a75d4d2923c20768cedee77514f65976aa9ad37d75db50a5bc6d2c590
+GCD = 19b168b34ccd1e8e0112bb72937bd092d03feec245f528873859b336fe42b4973e1f5532294
+
+A = -8f8894864cddf9c384e42b49a9723957939b3fe54e58a01ebb1b0dd5f8c008c6bb7fd007cff320b06efe407b2b77aed4fd31958e256148d702223e1358467c2658e9e35f00a040c411a
+B = -725787378b623a53fbdb5663ab22eb7b5ad93786361764dec8eff6062af2c74119fc22571b84e88320833aa20d81b3b123a16307d0ffe82ddae681623e4d3c4b950245266cef4b00dd658
+GCD = 7ca9ba977fd596140f91a1b8178d09282db3e7afb245c67f6cfcd44c5343b13fa2d5a2b16fe
+
+A = -135672c5a4985052d791db7a517fb9491029eb60d508e8c0bd3e58a440c0de93c79707661399ccc1456edb39fff5ef10f2f0dd2beb4b9bb68a9b20bf5681029b2a63f4117fb4b474fdf3f3
+B = -18063bde118d96bcc66c868a6f03ba8693fe4509b5a13763f7e6d4b818fbc87b33a7c61e81057b79aa0f8fe128c2a2e44930f94751e6726734edda325c3b87c046bd8f7fde4d99d37f6f05
+GCD = 66159313e37208c2d8372616fc7d259ff7d79e9f429c7b41eeccf1197f0c0e6c9240ad734d1
+
+A = -90443b2a7fffaeede1f05e7fe350a3b356817b2b8dd887ee1268957c9cfe522543a6d7b84796cb1cf788e8681199d53ad8b611ddbe6605ec6e9730437dda752c2fe8d32340fe874f2a025
+B = 1bcb30b58f1d36e171eaa83f225c94e10d04758fd1d56aeda422cf97ac45a86d30fe0d4328e27db59c8ed619e49a9393214f63939214592994c815074530899416d89f25d624379cd569cd
+GCD = 99ef70d3c6705f8844886bbb12581b26028835e0fc63d9106238b9c278754773b3b12412b9f
+
+A = -338ceb3926a560bb0265fc4dd4f4e31c23e83fa9239960f108fc7a5c677094a79e43a7343701fbfa025cb0057bb0a6e0b4c96ce608eb88a4cd2c8683dc03aee23856404ecb587b87d7a864
+B = 11950e1b6fbce7740da6cb5e1fdbd85ba2f94c18d261b777684097271d03c23cab39924364aaedc22552cce8874b81ab52556f8702a6d1f45f102d3e936d58be7fa12c383abffbbfd98b1f6
+GCD = 17549b5b5b2e3a5956149c2872289c5a43f65005286243c38050c5e3cecf8e0b5f1ecadeaea2
+
+A = 56d7cc72cb3c8e9485ed8aecb28e4e8aadbe2b2442de843be1ed980b7f953bd3c6ab87b13332ad4f0ebfcefb2c4776164c837c5201e903022b3ea1b8f9cd4db69d2c6d478f8e61ac98018e4
+B = -69087128431493852b271b64c2d13f7d50d3596c5956baa739e9825f9d0a81a7d99012b37c93be3e8e9334243d95cf36c4351a99394385923169778c1a188d9ac933353b976e17b19e52c18
+GCD = 6cc0dfbcf02887a74126d85ee735bd56fcdcb7ce1f663403b053f1a0bad7f45cba33062174dc
+
+A = -103763b67d15ee7896b2db89aeabce477e6044f79529d3852a8fb9957e7bb894a7ce7f593c2ef0b9918a61fe9cd199c21c7407968d1dc06b9f2eb4197054a14e8d372469521a586d91ad99ac
+B = -3094b56ff3c61403ac076c43fba6557cf17587a3b72a791e24c45043106b3717cc3f749984d4fdd1e113708d46ad1bf981c7059234533b488af256ad776e39699749a8a7119f4e8140ecace
+GCD = 441c03015ce9539b64fd41f34bfa2079909da3db36aa2325b7ad0ae871090326aae811839c12
+
+A = -788f815e412fa104b7777a33e6d2cfa9e4cb1958a709773a2e26a7547cce23622c59c2e02a3f93e56de3b0afe919e915c90e75c1498f8af2a468f562352bce10636f15ad2120149668826e50
+B = 2e4c1c8d63e691dd07efd9140354f4902460ca0aa0cff7d92f0a63305c84acbdf07a1692984c36027c105036baeb11a2871e9ddb6b68c96f8700d61fcca17401cc0ea1f71cb5e4fd9fc7f1b8
+GCD = fc40e59bc22676ec833cd8f0eba4d773ab37e2b11783b55a28b5ff82f6e3e0246437f8109b08
+
+A = 61fc055c5d2e60711e7bbd4e442b4808bd66a3879b7df2cc8e3cbb9152adfab493fb0e5027ecf80e3b9f1bf11321fc68790687a3215fa5f682dbb395e0d28d089debf364c6a48fc0a53040f0
+B = 10e7df4e9f571537b99b2864e3a4339db511dabb69ce51e145848c8e19901a6bfd66d630e95b35a61498834e6edc971b9248991af9cd631f565f87d404fb39f8f6f8205db5fbb3b1c0c52833a
+GCD = 27b6a7061e47e45c2c9c0d18c641ddcf19e625ca774c32b95f19f1e456671aa32071cd904400a
+
+A = 1345294cc9fbed6be364e3c3df8851525a3f6bf045ad171db5e5013b89316d6ee7cdf7904646a7b1d24a6863cdd8e950ec7921f8bde3cb19a4fe52e255c2dd393e6df85558ccfe0be4fe0d380
+B = -5c9e0c9554026913389e75f4af6e8a558c4dcea26c19259af1d2d3b078d2e13e201dd85e376ed3665968c7e14ee0da002748bcd3a35f90236ec5b03024cb8e5b3c5107a62f6b18ce75ce64e8
+GCD = 281a89a0f3702ca93b9fd0ff34c08ef5e223761f5726ea5a827e952c6b6c316034c73b5f30688
+
+A = -4e380e77843ff046af1827015ddbf0b9b7bced42f76ec51ffb577715796891ae48fefd930770e3296421dd4ea4750405b92fb8ec3e606c24bd0e027af8775eb3333efcef768cd7594ca30d11a
+B = -fd594abb8ae3fc4fcf752f00a37016b10702b1ace227618c2b340ec2086cea3af35998ecb34960979ef0664241e5c770b256f45f5e4c429b6f14870b519c434b320765786993b40014680c4a
+GCD = 191733c89832c80a8bd46d347a791eb92837687275240f3e7a2062c44d1fa03ea61a41cddc7dd26
+
+A = -3f24c254338adfda1572ca89ad02a4d5082065ee4b592d3cf24e65c629b4f69e4a78becf76fda65c30c698f036844858ac120b6776973098fdcb880cd27e61cd9559f33b8119bc6eb691056572
+B = -3c3e5d7f9365f1fbc3bd8a0fa171d4ee063d9549c87a2a8bbae955f47bcd1b827a3018e4cb2f0934fa69ed2dad1a4f1ad418c4debb83ed06ac05093c3d5162bdec27411cc2aab89427190aaaf4
+GCD = 17472f7b577d2b479c4386e989954799d40f2dda8c54f325577a538f56f09d4ce2ca9e53c0056e
+
+A = a55de776b8a4fc34369c6ef0c233417a94a2b2e0cad9a06e6665ef8ad71e812b59890465ea01b4e927f4f4c458012b6a1e7b89a2b6f5ba8716d22547b037c34cdb4471b9d4d20128b3fea7372e
+B = -c9f04eb588b439724755d71e95848bc19d7e8ea74c4435d0df8333e61647bc140411124298ad492251a696c66ca9339ef2b1a468e3890cb2c5658c7d7fb34cf493669da6421511810986814007
+GCD = 1c54b2e93095e58d1cfffa70e44e6b2e74ad05be158d15285a1f1c6c17fa1010751187181b9ce7
+
+A = -1d941aee517603203dff6d2dfd94e780a1e7c512e41ec7f8b352202ed9c9640416a674a503fe4b4142713a1af14b84f788446bd10caa806b113bcdf7f14982eed3bbc488c0c42a3989e60214552
+B = 2797b8fc55a53a57744818b388ed03a25068c59e63bf93ec0ebae9b314da45176b0324f83ba06406b8a52dea524f24af3b143cb63131f00d0953191307747ac0028c913e47db0fc5a44af9fda88
+GCD = 1418144a5fde082869dbcb7f8e9e22260ba6432f7affa18511c0b5d038553eed8e25941e8608702
+
+A = -23e07e809c4c21ed1fe202b63374a9ca956275342c41fa248c9dd0bf5af47bc0cfd05890ce47a62535c2cb9d68a3c3d7c6e9f128577a84772d5f4b86bd5e6c76e37f015274199d5d86bc5a218ea
+B = 9255011de765f911a770063cfcdbcb83e6b15dcac04dd968f202af1ff336d349e6874c62174f485c089141a19372ca5cb5e8dc53fba277585c6b39086026b518ccd1288a79b56356ae6b67abca2
+GCD = 49e0b0dcb47cf633e886acbc61368ee07c12667911482a690a58dec15437dd6a3caff7db87f38e
+
+A = -2e489e90c13b94aa5eb371262c5a06540cb4bca27cf63d09fd97e4519abd2f2fc25faaae09b72a63f7f0330d57d56128a6bf80caf19b39420021312c7f4a62bdee7652e32c988c65274dbded0b56
+B = -2eda51c1af53551bc8e193fed6b71e4fe4519374a41462c69ed028ca3c1f3a6bd72985309c8c3345daab6963fe53c595d4595c8938c30cadb2af8e76620fe03a1a0f798f285bbea9409f81e6ed2a
+GCD = 833ad34d73b58fabd1cda79f8e69985813e7124624f6da07d7f097e9991e30a6577a0f94946572
+
+A = 7098c102905e6d3617ffcdcfb5c0111b6bbf93eb5783c2a2967a104a4ef6f588534a087453e951586698561f808c2a960046790c98d3585d17679d062edc268878fd4be3eb39a9f414d7692a7f62
+B = 7e4fc8be44ae742fb209e5b571eb0df24cc19127c3d3e305e521b4c978173e029bce150cd0d1f4ded031d9529c96fb0a2c74dffe860b9a1a5ca63c1d350ac74c92f2bd29107d1364f689084979cc
+GCD = 1a7544fd32ca4e50f95accfcd4c5fc186148468f9ae08350cff879212e38fffcbd31c417c9f554e
+
+A = -4021a5a13bacf5e5ccc79246591842a5004137a35c628f92fd98ed897ac12437161c6ecfd0a2ded65cbef3c4582d8ef42d7c2770c469c471148ed6f8697ba066d336baa601d4e9364d032ff1c3d7
+B = -fe3b70405122ebe7c0d36b4467267d9c0deb5e20dfd20f7db8bed22f2eb8dacd126bc2cd659809c7a706996afbd2d7b2b6a47c461283207a1600cb5c65a942ae84d0fb97609c8753269fd2e20d9c
+GCD = 2bd4d226bf431f5bfc6b20c29b12ac95a7715dc2586e12741b09ec6fea7a804b7400428425cb081
+
+A = -1e5ad39c2fe0213b64aefcb9013bd016f6ce29c275551cb5c377e062c1acc028735a4e69533e4a181b2fb0832e6ce3f73ab135508407122c011fb0188bad8e53b6140171ecb6731c59007c220e504
+B = 18e26e1413d9e67d3ffc44105934505594dd24d270ada1241b0e87ce5bff863a933cd8651ef2cfb773b08b3ada61c6284185e2ca90a7c24e68acbebc6762b6a59bc4daf10eb2ece7e290e6cdb46ce4
+GCD = 4dec65efd6ed794607e938993be3e565de2467e27e1aa37bafe6b24706819fcc593d7b498d50056c
+
+A = -d9680dcb15ff468668b48e7481752bc62e8457c3b87b015a43385607e4df8da6f4daa9ebbe6f77a4368c573926711d03e4d47573c723b229846770e9fda80b0a9b85ad808df2e0f06c345d1ef5d48
+B = -6b57e3763945ea2bbc1bc6a73de734b2cdf24746f69d1573afe6e2666e3ee9cb2441e758218a293d6ecf8e118c756fd545dc0487dc4efa4bb898edbddcd9ec679bbed32091233aae2b35640b1dcfc8
+GCD = e0dc97a11a3756147ba6dc755d50eda8f840730bbd6a00ef7749f2161311ab6632246fbde9cd8c8
+
+A = 978b52b96d783786f63d70c106da9ceecc8e56a326fbec2233d81897d4a0a691a3080d3167ab28002e23ab0795b50a234022ddbff1b3a4e60771c3304fec2bf39cbc185e1f2c07ca94d75f8964f23a
+B = 647b8a1791c509803c1ff63c3e78b5e52a785e451f212913e0b11a9627269e51ea95d0305aa176fe87d1132a35629e96105239a0f45956e58b6a40c5d8d1f7a3bab1b8a05d79d1e4252b68ac9a92a5
+GCD = 103692e2d6d62a6c452c95d6067daaa56dad15ffa2765d315a25a3f255322645aed4a89e9dafbedd
+
+A = c1f0ed4d9b13f63078250707fac8cc061f4d36d2a0e9010d84a0d894c109cefd3cbb3a50a30591656bf4db45f7c092e2d476bdd90bdfec3dfd6fbc089101ff7ecd788b57b8745ebbb80934362398f8
+B = -5781976db214c35cddcc93f4db0a7e614c7e90abfb21951849d417cbf4c16987af67cffab64c49ee1a730603f2bc90867391a7ea8ac9fee952550a07166e82168b7356b1a91074bc807ff0a06228598
+GCD = 2850a44ca85bf7de4ff3bdc347cef8bdca67b1e6853d0b70775e9906ef3cfd994a7bc8a9f42d90a08
+
+A = -13fd588777d7f39a082fc06387247ee9470028d4cdadd30885a5ba06bd871668dbe721e5524b3e68e2ec9760802c761e8bc75cba874ed1ddaaf894f8717f4e5b4a47f44ec75bee217383babaf449bd54
+B = -1818e3197077ac329b3b4d53cd98bc99fcb9d4db55fb0bd4798b269109efddace54b3b61deb4fee0b6e7a0b685887cbfe1b1b454a35f66e48d992d906bcb4a3a18387ac3cbf427b6f83bdc5db216f90c
+GCD = 639de7eb76ec99a9c4b8adf0127695d9df7516637aaf83ecd126336576ac5e4889b8fad1b79865d4
+
+A = -78960d274f09db4bb879808c9b1fbaa58684b1aa0e9d73269396301bb2e1d2c8d195189ada3c35245660b78307c2e7e76787298e950412025357dda00bcd92f4bbb22d61374a0800fcb66e134e41109b
+B = -42df0fb0c28989372a84c67fe9220fdc7752cabc7f122d00acb33e34397c5c8ca1d1770511eb656ebeb395e1cd75df1b081d68e37017ef8ee1a55a317f40fcfc17250af1e2c8ceaad708d51bfa6eb3c0
+GCD = fc7e31d2c798cddb8bcc46e3fed48726f9637ab7cf71f3dbe5fa011faa776de1728e734c6ff06ab5
+
+A = eadb5e642afe41b70e79397fa90c5bbad4d47b1b0c2f146e5c7f672a71ac03ba06e63b53ceab5d658b2e18475c3cdaf68549321f3f4a1331448ce37af78badd96d201be6474eebebf6ec6852cffb5155
+B = c0576ff2f7ab73ff8c6dbccc99c376a54f88b7079fcdf1769fc03fc3394b5bfdecd694fd954d106a0acc951da806750a0f945d64fb8a3e47e04d4d8813ceeaeb97fc93a9759f2461a4ef83c5bed48c60
+GCD = 12f40d90f061dc0b573379b2645195438691859a12a18f1245a6071b8f3af1d3fd96656ba4558d7c7
+
+A = -226cce11f9e926a3560df7438288bbe56bad54f8c91c8578f292288e586dd315829b5b54d58a621044c43fb34cd999ad12e95eaa457bcd3de9884d5c67ca18c18f1c0f17e9d9aacf5e29a9cb807707dce
+B = 140150b54a03a165580a780f40f6b34b1b0dcc14016f16253483e273d43234f5bdfd4de155b61d5f992b6e72d4f451f6bb8fe4e3e51ae9a7161fcd455633a4fa6613eabcba1338fe721b5dd8dd656146b
+GCD = 2ca53db42218d527d2b256a13f734424180bc120b06a978c4bea6f46e532da58e5cb10d359a311c5f
+
+A = -13f64964fe8710a8b1200b25c7c91a11de2cad78d7004eb47a2f2a83a832c775815051d7e442a0cb9bb0c16722f1450f47b8d6699595d49f626947665cfbeea0e97bd6e378ffc9eb9e6f32edcc562168f0
+B = -14da89e7867acf9673b8b0f9e4982c24945e93f82e02c9f02845b3b7c231291c6bd468d0d9bd18425daf69783cbcd762a054e7b2a07a06cb23f694e4f73bef316c6c9b620c5491d1e6807ad067e0d7b460
+GCD = 1d7a7e2efcafacb56a38f5b83ecf79419382459d23c7f1c601fdd8c89e36c044d0a8a825462c774ad0
+
+A = 32ec6c7cb15c2c24996376dd7f005757845b7882f93700f4b60fb423f6022bfdf7986378a458f7eefbbcd59e83849ae5b7764920516df54092a50e2a8040db9837bfc81aca0922b9709d7358213d94a2a8
+B = 15250ee8d63a714d7a18b67cb7c697c803f29e558ce309c07f29ea81507d5edf626dc8e524bf95a1ab118607bd6829d51319641f6d5544707a7645e17939b5648b72e292710c8b7ab63de32779649b30c8
+GCD = ae15fca840483a5e2680a2bdab52c5551e07e6803e8bd21e69feae3118d98765fac45614bf6844d38
+
+A = -1bc676af24215c24fcf65a803d9ee7db799bb9ea986b490c566ca37e1eb5387ddc6cd627e3a72bb23b9e36ad0e6e37a2b6a6d2aacb7391dfea03d3f2426b6cb868be5e03129f0a6423b0328513b8efe9ce5
+B = -17e1c103ea6ba8d089ca3eadd8aafc7c56d002efee3cfc9442db35429e9f2c25625e381de4fd702598acc914d7ec09f295777432352669dbc47a16fd1464ef0a4b2513437c15f9cce07ba4ef0097cf2d2d1
+GCD = 1f21d55c828a2da90a051ca3899c4dfafa8b7c5af6f45daa6d66d5de4e9571012bfe48327395a9574d
+
+A = -50c5f53a340d0cf0c6a756edb7031dd078f670dde2cd8c2fa7218411b171dc23c99cd26bee86217c8605f5fd719ead965c44ac82d1c3deea21d4594f5d48f8674511663fe2a583b42048e701f250b67d6b5
+B = 50cd63208a37ab931b026b3936e798a0bdf51c4c45dcfaa45131b5879973378be2e73c1e1b8a83aef6abee3ea625c25580745e06ddcf8555fe5640193390f62bbe983d02f0748df876daee08085fe1340
+GCD = 29140f139d73cdd7619651eec490d53274ea6e286ca33965439498ece6c2f4796b89041888fc3d49c9
+
+A = 2a225454569c2a65fddba6a46568c8d54ee9c0054e64f1017e42778d131065f429e95badd768ae2d91388afd42ea895607a46c1a18099e7a519a1994d3836ebe0b3d12756c4010fd4903ebd51e4e510f524
+B = 1996542d731b9d6a43c6ff3ce16222c1d2e9e92237adcde1d9296f9a5afbe60bcca76440aab4f6eeb07000be404c89e04ca886d98d3a6a24ba0d02525ff50e1a417b6c2b7593dd636e97b815e7a3d2eff48
+GCD = 48e8a312834ce64f1222121f2c328a2509ac7deef7cea90ca33a973706879b918ea6e624c0c2922c84
+
+A = -50ce10f99532af3a053fac575332a2bdb6d5eb4bcc2714086dfa16e1454d962d67f42aa246fb1bc87bd7185665dbda684edb7725c88594a35bbc8b9933af1444be0f89af522b3ccf462e3c14d4e3b1b40128
+B = -5148e5df93a268567c8fc1468df7fbe5c176d43c6285beccd951874f6174be2058b5aa1cdc320e73b21ef19f8288462f1f6048ad59c595fd303b047a576cf116898c348bb17b1e081d199c623c4149013288
+GCD = 63e748b95b57641f7b366a1aeb3c0c8227fbced13124e3691508002c5a330d4e3eb918423d958eb1b58
+
+A = -1887ca50d93b18fca7faafe3bc608bb16917d9fed22b6639d652077110e7f87c2078cc4872bb8ff733471c2d59e3405bae30dd708158136c975909b6788615463f693aba2fbb1210f09f960091a26a4fde9f0
+B = -16ed78ecb8cb39d464236898f59c11041fe03498ff62812d89f3a90aeb7e6b8ea964870edb2c8e100d617b6aa60e43047e0540328434c17e6d48e66a6d7733415a65582c09d698d098592ed467764a02bbf68
+GCD = 187027b5115f86bfbd58b347f503668c57b79c2a22fea9473d226cba9d068a49d4410f8a584f5dd7a538
+
+A = 4640ef1fc83020f18f2825fc867ffb1fc867dcfad4c48ab18baf8528cd170b7a0189a47c11595c586a28119322663a800062a111cc74ef0402ac877ed6d81cca6025e70c883dbf4bb79209b96eb70707e131
+B = 2a6fd447d5bd8d2a79b3c5f3b252a33fbe98d03e64abafa267c7f30d95f8514cb1d3376665a6ebc857c93ff908d77dcd808e0047f26679fbc6694c8b499111275ec220b8a64add0be99a732c5d5b260ef52a5
+GCD = 296d18aa966f3a7229fad11f7b51498e1a132cfcc4b0a6b1b126d9b1f1ec951733194a152903e02018f7
+
+A = -f18f6ff8edddb59fa3a869acca127c178db9ab6f7bf77d9216aee839677f650f0f914d989c5b53b0d8fa847a9a25e735e26b9a296357175e11f002fb4bbb187167c480fbf5cc81c83bb3e73847413c0ce2340
+B = -1cdcd72ba6f09cda94d94dd11ce0532ab0a50f4616cf91dc56a0bd4e0c5b3420502d298280b96538c09cfc31102cf63f3ad0ebd11eb7b988578f02e8e38aa949adc3a5b275e6410e65c518e1754e04012a0780
+GCD = 2c3190c99d7c600b14e0b40fe80022b60eee0c4a5cac6076b75dc3f9e05d08262855d639de8d58823f40
+
+A = 43508082b6063dc0949ecfc827e5f1ddfeaf76dc2a30fe78561f626e2b6c5f255f69c0a1ff3a147caa39e13bc7e00c89fa36dd2f2b5d51ae10e0816fe36a4cb52d2c42c9c94c28a41045e8c1dbcc19be43a847
+B = a168064ca805c2a9c40c319a37d3de8ecbceb6fd65b76b07c8f0f6be01ceab562d1b955ff71d970d14eb481d95d47ca15d683d571cbeb879f144dc67f4a5f734819674b865241243ecfa7f7a5684f3f36450d
+GCD = b36f69d05297b4731f358351f454766949673f187412905c5b5c5dd209d486edc28c6ab79d6370df4c1
+
+A = -3ec96f1259941cc385c5fd71f985d286d0e4cbeef00a35e25e8539ff9a342875a7b5de194dde0250db4646cb047735f4d457941c46784874c819ae6d3c9bd233d95f49029f95018eef2d53eebec7a9213b2046
+B = -bb7af1519143cb6cf9dfa8b2b52ef16a206e601d4da82b3ac4760a024e84c42b9d6701a27a214a3f187cfc2019b9706448448409cc154b15920fdd58786cfa8f8e17eb6c38b945b50b224e709b2289f0e55c3e
+GCD = 1457ff49cbea3136c7f2efd1e2ceb09a9105926445056b6f99cc3fb7d21c2e41a484b14a339f67993bc6
+
+A = -1055549b0e3a4fd6ed34016975fcc47624a0fcbaed6aa0f4941ec986f6ab070dd3e3440c16a701112690f1340013009870df312c0b128ec28f36581fbc9e7eafadcb768697c19022cc3cc41f00a4a01efc865c8
+B = -1576f648cbe4a93dce7d937bea3bd736b11a15413203d2fb8446aa66511314b60a481c69372765a82165475bc1c83c696c6d3f63d41702bc49a318f2d6403213f3c4d4b4ce6f7a7a312611f30aaebb5706bdff0
+GCD = 44a26f9cd9e7421a16c13c1c145e430807d61f1b6eca9ed9892e2de522206e0cc29569384579a0e43418
+
+A = -fa26b98cd90e24b492840b0b5a227257f4f68435f27005f1dfcf22c8cb7f745425975a72e70825cea71699ae7b7775363b79eab1e1d683fb08a8fc81918e9d23c19a23d8fa4e6cdb582f1d85594f8961fc6158d
+B = -125c47be35e7658ab5e106d490029e90f6e568884014b8ccd8ec3f4eb9318ad209cd831276f04f4e6207934ec711016f673e59450b1f7e1c40b6eedd6abd844cb23b8ee4ff70a25463e874251344d2fc572a4b76
+GCD = 7114d898bd8f5f5b724be1efa2a9bcf951d7d15f7c38550fec2663a44635b171104e7841c1732cad480f
+
+A = -5aabb4f5524a2bd63cfebef7917efce47c02926a3f16ce7e02f9c8d606042ff26c9a751d11dde633698280469861f10411316c6428be89964a658dcfab6e57f14aac3544a2048d59a10ea89d183a4275e10bd0c4
+B = ca3ca786433c7e257bcee88493d570d49914d4bf81ea7646a4e1654c227dd116b2529ac8f1b36a4dd9aeab9488c5a266fa0bf9ff071231eb56406d2d588554c73aa684c2dc5ce8c02a0bdb3f050c513d9e4e98c
+GCD = c37a5a32e0dff74d5c5d94b89116895602792874c4b58d35d68cd1fcbe5d902f901bbc32d906b4fa469c
+
+A = 1052c535699a8624e26791242d0cc8ccf1242a9aff9a065365e675e3b979dc68f5cc7dc172a7b0f332a5e4fd9f1660561747127ffe9ae0f25cd03e44c665b2de821558a230a51bfa6083d8e0c49fee7d47726ed8c
+B = 91d3b5cfd9585d0933a58076cd2b0d8e628ea9f74508e304d8de2c214dd955d41a993032ce8773b7c41f3d3437b60dd5f3ef5d6daaddc417754e2c3f5aa1f27ebf05ba1a8a4743e7a7d0e12c65505a0ef7d944de
+GCD = 20c78a9cd1bd03685b180c1a990c01c5b80af2e3e6ed35a05f3360f72f52c16dce7c9da43e6389e473556
+
+A = 5350062a99c4277f68e2b28a27679fcd01aab0365ceebfb422f14e2bce264063d66d04760c524b7734f071c1c2e541bb2811b4d984d31d8671263a76d4c7cd0b09c3a2fdb589ab4c861c10e1cfbf9f4f8db34501
+B = -e2a03db9d8870be9d5628007632987ce53daea454436ff2117588a7699c45ee56aa2ebd229a86920ea0a7799df4ecec76d450100f6e994c58ae609561b3d2009b54edd307d0c182bc7a1993beb6c67a64bde7f14
+GCD = 374ad4ce14735dae535224c71520e76c9fc28c77f64c4d8b89361ed158b44ac8925195d4222b047626ee5
+
+A = 153526288c3b2f0a28c1045687e0c62c673bc757f261f8b4c8197ddb6368c855c85477fb8f985bd03356e4b810e37325cdda78c05ba74f2524662f1f4b8067edbc05bd34a413cbb57e299f6f1cc85a2373da8aa4da
+B = -7d401b5afaa9262b9a1024ba14b88062419ae5dc686bed09fe9343a914c65325bf5e2fb06d1e1bf47fbfae01706362621a718c5b3da596bfee1affe5c86d1d406334def3362bc43a0d4321bbac6fecbbc43291e03
+GCD = 5eca5a9ad59f03fe20d7e10577d674244126b47018ecbf53519727469f156fbc405036adbe784c876f3c1
+
+A = e5cef90304dda6dfef5f20c8bd36c36972e9deba4294043302e7b0b6eda8ef8a672385809adde58b08d1812be0fddc3950c1db5c0e93b2e45cc013172896bdc792d4ccfac813f247b9c491925b07adad49c356a2c
+B = -24846228bc1853135fd15536e9d6e921a9e57cf183ce8d1ded7aecf16c9c1ca5cfbf6373fe1f69119d400e145b818e7bf4c04352b255caf8b2f908602500a3dedb1a15735d3ea79d5a569899079df41e54c727aa2d
+GCD = 4cf4419991947df086bec5d78e4a30bd4b1d77e07c86ab2f04d9969933ae2043d410c8d17a65a46626b81f
+
+A = -eba20237df851bd3b286bf07ef825c8328d09352c8cc4dfb7695530ba954435b75a1b823bd4bd9364c230e3222ba256a9c6016b4bfb8b8e15e195643cf2865a2cd208b775559810fd8279490d351c9271d0c2ba550
+B = -1dccc6e01096ac4394001b567cb698be61e7b494fe0a36f891c4d00589c36dacf8b6f26344e6299b3139d5fc3456ded687ca8a858c9b0d70896026bf5f4c9d31412b4fb2a80c915f424371585258aac9d4c24e4fe0
+GCD = 1746dcc748628fa6825ab47d557fd756571fc654f1d15c49683f4493d482862d767567c635f8b7eb5a02d0
+
+A = 2499134aba0c05ec1d72ea6ee96b55b93f916e2f33627f9aaa21c8baa5996b419df15fe46fb5e0a5be7e01924a3733c24e193064de749e5a56f36a8c8f873224995bb81995b99a141a2616348cf1b344602b6e1f731
+B = 80a0850fee1232e0d25a8d1277a337c3ce4a5ede9cc7b5556361997d9d3927540b42d9819db2d2bd1a2ccb89ac5da528d81ed3070100b03a51936f49d36ed901fa141b5dcefd3d60833caede7d73a57bfbd686ad00
+GCD = 29e1f8deb7125f1a3c7a28695f716fd263b940c4a0ee950026348b70dfda56f156e349ba1f9df657766c43
+
+A = ad881d62206c6472e45b29a26ef710df56d60c756c2aba41482c7716ae46495bab2ecc9bf0d9b5e0bfd402357bc77d584b1acea4181733992c7b65ee690a8389204baf833c93eaffd3927d52b54847911057a577fdc
+B = 9a3dcfdc21393152ba6e459ae384d1ff79327f1f4b9a4b01db25184df7604ca5d79fd1ab35eb946883c0bd2814d848dc19813f9d011207b252f6b295edf98a9bb2eac4383abc089a48ca287fb4e4dd61aade05af588
+GCD = 50bd18adedd47d38ad8c02c6fe422af0d36cf4e21c5776db651a6577feb776f78f5a6d3b232af7f6698f6c
+
+A = 29ae2d5e9a31f8fbf46a562f91a630f9ddf142d0d05d0d70d744ce7bd8990949067841ef1282f0c46a6f8f317ada80520807e79704dbe7905615267c0e5a6b4fa3098287a31ee388d753e9e19262286e5c918fc50f80
+B = -1cc7bd417908e40c67b7ca990f68911b409e92bb9daf4f17fa98277caf4f17e4446c5080345ae8f00222a000025e052ed53050f4771f6e3965e53eba1bc2cf4eb28d7f069185b25077573c32412397248cdaf72aaae4
+GCD = 88652a1c65b4d39a683f9ab787e94f49ffb60bf67aa949269956972dccb865a8f05ac9453bc302516c0554
+
+A = -faa87d23dde64ef02fb948ff6b75bc0a4aeaafd9418e71c57505ae5461d4bb8b1aa1b16f0835141b3c393bc9a33b39d4354dbcfb5981ebe5bb25c8f60dc21a6032d8326cf7ba8b790299a301b83ce260de2b72946733
+B = -9dbde9e6faa351a69635d71f19f12a0e6a5141d3733ef3728ec0676625faf252da78badea0b3732ab761392d10e5f4cd43a0068235275dab8bf8e01b3b5c0c3b0ade1104aff4200bf09291dea20028e9b4b501d3ad97
+GCD = 17573323514ca4475885584a2f7b2124a2fd13062f282301575448013abb48f7a87011d806964a310dcf245
+
+A = -40acdbb91f8466c598c7b9b43a5df213c1d7e80b2a02db487064769a34f9043f5728206b5046419b40177075db2a9d22431fe33c1b37927a3df053d3dfe07e1ae054509c271b24322605c3e499bb825b914a1786e9dd0
+B = 1daa2cefe34bc1bf2c432a810a965eaba1713bd16e81073d31c3dda7cd6bdb676535c197fa8a3a1688086a7424592cc04dbe5fa8fbb3f7b5f2b75064693dabe72e5f3bf3ebe92df24db2a5340f1de5fbc337ae314687a
+GCD = 573777efbe5fd053c604d0bee1dd02a58069e89e58859f65684bd0d6e962d9feeda072a381a04eeac1a4f8a
+
+A = -67dbcb0ac09bbbfc3b3ba85d2f267a9b1b575e24f654d3c6d7700e35357c8c235c0a2006a2a57e61f26a27b6e75b4a24b52772061e0e597ca1b6dc9e44190c1349984ce086f6583eb94e18871e53ba67a104d8cd1078
+B = -bd07c143d44daf6594ea11a3daa8d4af63d03fd8f645b3767f695b243b6fb7e2a4bbabbf34645a56ef3d3cd4c8d56552fcc71d5e2ca334b52c6c7e49d0915f143bf56f10049f653ab14c33339aa701353378d25db7060
+GCD = 6ec53d40d021d1e5760287408ef6faf8243c224ffd7549067b11c1e761c4fb593b1f73dfc7357fdf686cea8
+
+A = 3008861931d6034b0d1f03461c2f6a9d0922ca42ee1815434c0ac6342b405c2ae8ef88fab9652d9cf204f3020e6828dfaf0b8786c206c3917c4e0376dc842557dc6f9b04876cf3d69583b8582ebf83ba97f2a49720ed7c
+B = -3ea448c66e456d9a2ef90d0d6de765a03da0d9e35c128773a3ed1411efe9eab8b37c91b77da6faa3403a0623e9b5b3139a1065da51aaa290657d89cd20061deedd92d51bb433d7d058aaa18c9a9b8a00612683e920bfb4
+GCD = 12e919311351b55cbe90f45b82cc2153287b8f5187e73897ff1a9c83f351beb71c7c44d8ce68049a101b443cc
+
+A = -9a4e84a13e7f72d5cdb49a2c0d1b3945887ad4c6bbbb6a43cd706b78b3d4a1de7b9ff563c3016d4539d1a74af1cb5243972fa9402ef4e4f9ab554e4eabb626258cae8d21b928808d0ec8ba3cfead0dee6b646b8e4761ba
+B = d286af35169dab0767bd2fd0f20a237e36af16279ac6406c6be3c854d48650e82381eae198f7a8ab8b2e849e5c17bc6d873ec92da385b3c0001403a80103838cbeac51fa7b4cf8518274c99e71949f8756a7fe37e13aa4
+GCD = 1ed4b6bf7c29917b45a366fb793d183a6137da4b073f5c8e5a5d36110b3a019e283a5c12bcdd192207db9cb6
+
+A = 2d34eb938434803d004893f7d8f97fa63f5505fe34a4468a71d0f8f88e840da48e5592ed10f9a85c7d20faa3f1e9c638292949f4a1f3e912703054c392a52f63f270738c93369fc66843e970965583fa03f85253af6dc86
+B = 3fdbbbdec30a0479b799de6673afa51d5a8192d5196851dc05c0a0374e357be0ad021db135af27d19d10dc727e4a028fdcede48605316768666a1bcc2f2e49341f5cc37ed90e13b05fe40c991a2eac996cf4110ceb73d33
+GCD = 2a9a8bfb81c34433756dab82d6c6963d9a5cf8bdb8af1c550eaf507fd5bf62c07006719eee9d655a4df49cd9
+
+A = 7f71b9df25a07af8fe3111718d4a793c8febebdcff4e6e2061ca6d832f9327fe4cea56bf7cfbebe21c3015eac801054a439eb0b48eb872819ddbca284e67bfe84108812a32e730a4060722f3a0e645619d1890333000c04
+B = 1573a1e80fd037a90033c15e4ff2c48d4209b2959325245f9d18130f3cc68750a1611b326a0f5521f3afa791ae01f109036e1b4c36b269f2d7a2d939bd9f38b53ffb0e9ff5f1fde1810965742869c35fa634ec75724bf258
+GCD = 683b82f8bced2a7bfa3c7e0fcbce2a865c177ddefc11f65d2b3d7cba13198016eb86e46b4cc0580009b17f3c
+
+A = 28a39945ca08bdb6614064cce1b8bf688e87da127c186ee7ecd2d171f39595c746c6b59dd9cab8c666c68a4d042164fece4819d815355e6539ea4814ef9b7d59e2c78fbc5b17975c58cd6c8ca93b7d9921798583c73d4d86
+B = -48503c41963820fefb00b166bd05aae1e280b612707f1984d33312b644635de00213a631b70f48fa790757d44dbd04921007e5cb33f1938700c1c156e7ff71a171ae3ff288a5ac19303a457679d49d7328c92ed95d377944
+GCD = 7475b638e1797d8b274fe02223ea4c6e9bfe6a82a7bbd39d022bf70c62d25d5886349ba733741d75e07a1a8b2
+
+A = 2013deb59bcabb803bf40ae891eb9c5dbe91732c76485b94d407d5df7abbc81981dc5cbe41e818a78725b103ec9a8f0ff5d42b54ddd3fc24d089a2b56fadad2a46d7e32838b7491779ac47451b3a18d08e9f8ca357e90856
+B = -52583cbc2803db21d0f0bfa3615383163e6735d101ec563a7283af6b44d53ef09dbb1c42c5757e3f87171cc639d69ae2d044731c0b0ae0eaed9eb3862e90273ca2a29f56f2bc7b5a82c6f60e6167fc71fed29236d7ccbd2
+GCD = 1dd7211f6a23ebd4475b1a7be1dd527f78fde2321e02193b19622b608449cb7a082f278c04484da08f7af74b6
+
+A = -4964c43b1fe8d88c7eee4201cae0318ececfaa7023a1b0ce3092e6eda98b48905d31d9f9b56a1fb1d274cd1e6e32db82bfdd62d0d7aa45b115070a10de2dce0695e8d011accedd05a3cc33d08a2ed4479218ef9cd931b67
+B = -315b5d4d8f2b4a6496be547ddea160fa0ac8ec9a7169b86d6eebf6bafed78ba14920b324477c714e20bfb4bea0c1e1f696a51afa67268130d402879ebf79cde42ff6de511c7d16beacfdb6de2efbb8aaf2ed14bca8f61ae54
+GCD = 349c9c6c33221af97e24d4c6311cd5a2be1d08822def04b01b2263fe7622112f1f3b8aa2732548cc5f8bb3a9f
+
+A = 84ec2b3e4ddcd5b98cfce99cb7f8b8edbc1b6aa188bccbff82f4cfe3b4271150472bc96b8223269691e51d77e812957c9ca38661f8e30690bbf377cd4e4afe496b58982889859887a64def7e18e11b1ffa9d971d43953bed7
+B = 63b91f5fe04342ddc46cba2e29da50e839fe08453a33a0563bd8ed2ac745035a9366f965b8f36c6dd96338f53058faa5d88f79e48c518e9c0c3daa545a35a41cd87410bd9399741469cd1903d744ed39de9c05d39a0d32bd4
+GCD = 42776770d683835e30e77d3878bbe32124104a354c69b08d64a70e360c992729120d29ac7824b129d9beaae03
+
+A = 26d518965fa9c84e17a0ebcedcdf023c53959117e9e586ed76a3ce7188ed83625fa87f97a0e9927678a3cb02334a23f7bf2b0a34fd079d0e606f918d004bf68ffa6884c69ceef98ae73fed4aeb7f3c840cde199d7cf64bf252
+B = 2176833c6789541d22b3acfca832a67817784b2abb9506f040f4a4fabd4858f00abd6ef1e92706c29a005cc272c2075bcdf310edbc3c01de1103b79b09d4d4f12bf6b969834602300caf903cfde16ac7c5cf449452c4283f79
+GCD = 9a1f9f32707f8675732502401caa5dfc9ee2dc287d5200bfb67db087409f7aeee8bf7c0304f41b544dee12015
+
+A = 886d4d5c35d30068625ea91efdb7cc9b038d854f390b340235e80b0b35f0708068eb0c3c6131b05e9559bf676dcaddeae8749cfb22c327bc583d40593c78703bd1ba03ae2712c037c3bead163e12b704361792bbcf9c1a474
+B = 10282958d59d1efe5eb83feec1131ed0eded9ad3c2ab1cf49984b602c5638befb07063dbb79738ab5a795b46a351d2b2683da0a2b5cab99447e37f60670d85030758508d3bc3c77f26abd25202fc6bd966d27b6738f6a016fb5
+GCD = 1221762eca77809976eea5d077facef333256d774b7a09f23513637ea21ecfbe7deefd08e957e9907ecddacf4b
+
+A = -1f4a3f71cba63fe3820bdbc7bbdff8b162e3de997e90ad939a1540f113d5b1b10d76b356c6d2d626d019eecdd5815bec2005db24d8ee7c3baaff0e344a7ce9c22a207953a67f383b4cdeb2fb7c3e61a438d761e8a8f43d1e48e
+B = -455a937aceb14c0b096d6c30c3432a28959a132f8337f288516557fd07e52d8d962046636b69015714c73518f593b6912d0188baf570a237e03c21f00b2653edc4ae3f884d3f954123cb34f17ad9116dda176a7312560d6ab21
+GCD = 2c6dca939e19f8420d9eeed95dcd81f57d0781bf48f5f4d59b84a218e5e78f037fa60c2d9dd5af709358fec2b7
+
+A = -2a170c2d3d0fdf6f0f661f35c24f4f69acbef0282cb56c3db9c386b36a4d537e1f7bdf560d27104504d3b0d5cad1d1872b4d97b8fab354fc2553dadc6e08b3dd487f172d41e9c23f2d814443de220ffe4db8cc5f93a3f14be48
+B = -ff06d01a83752146521f2079e17c79140b072be9c3d3df0768ea789b21d0d475de40ba426a4a9088c853b728625b5cdce2359f5a6ac1589763ad80a9a071b1c544ef9ce846dafebfbe3b64c85d9e3c5d96de1d8db2563c47fe2
+GCD = 44169f4c6e34f7b29d4a9f9a0f435c1c6af2cdf7302245a29d72be01d081348c8d8644a274be113fa2730e27fa
+
+A = 155f7f4d80e7b032db3ef5fc181b93ae5cd6cb905775cdc2f80c1f7c9b32f662599124e20ac8a13034e76da268d3f13a255ca7f3607c7cab9dcdab3abac5fe28f8a4c37338fe221fa33faf62f75919667255b033f3836e5b3566
+B = -4664952dbf5f3160aabea3e59d9520ff4225de7ff7ff00962fdd7c6bb472d3412012c4dc977f697c64e51cf1f23d9674e33309266ca5c40b5acda3a36e5e70b7fb6b6f3c6b7a642eeca031a9e871bf382d746bd1f30a8e694a68
+GCD = 16844896b753ec5fc14bde8316e9e3eeec0b77ad773f0a5f00dab25751d9fbf2c9a05529781f85ef3bf20318032
+
+A = -b44b0dfb392bd8531489b6518f6ab1859fd8dc1cd2b9c6f324b5d09b6b393a910a0e761cb63d4fed114876dcde32e1e9eb51813f5cc3bd6e9a95481ca5df7d60a90b36ae9f0132cf4ac6a8c6cd8c06c7ed9610bc8d18447be56
+B = -42a0ec1e35639241b56ce518462366497cfeb2d1a484a950f9009b098fa137e46e8447a78b26881f7dd750dc286e09900c58f3cd76099e9518eaca2d947b312bb2bd250a2126463fdd9b9f2a495be66f25c99b97a1808ca23148
+GCD = 4000283af135a1ad1333d52e2f863dc8cc0247452c461c6c5755eaf93d4b4a12cdebab8976277261e516eeddb3a
+
+A = -3e9cd5ed9f5f5769d0cd65a3f1c01cb0b306ca607865ab362f6ce3cf05d460d320c3e9cbc7ca1fcd5807c98cfd655632944f01c78a9a29f75e9df0b772e4f1c712c572c89e681de93579ee5fd581e311df5ac6506fca3cb021110
+B = 2b7d630e5ef48c414eac856165c1226efe6d6a81be6969828e3e44f4f0e9377cd7acb722b3d71d7130ef9308bd73f592d5e7f4db445d497da50fb0500e3e270348921ed165bc256044b0ff95ba4aab783afbbda491cac1939c0c0
+GCD = 18524fec60bad39231e2e5511832c3d1fc9806e03389ef6c21a3462d022158b237e1f8de5d1d82f1d65af832a3d0
+
+A = -17f7c0f63c5f37371e0b4d23bb67e968a55c65daaece334708b401267ec4ef57c0d4d694ae177105f7484172071232dbca01f18c4c905b4f16a2e5e1deea79f57326f3f39b123ca06ec936c22f1d9f190f82a3de0ea509c5e5a10f
+B = 12b8f917f1d967cb5aa9e8728e17ca088a33e6868354352ab2c6ac0a7f05d3657e134bc304deb3ab2fe2151a5cccd61a8c9d315b6da7ff142c268fdaab4fad5c91dfb67db6b1514c4b97b1a1fe82fce4d7fa1b7d630d4e2497a0fb
+GCD = 60adea3c9e15f93f75231a866f4114020c8f961f87accf77f540b69b886c3f51f3f001ecd243081e7938a058b31
+
+A = -4c2b0d32e1c36e6296aa8dbf925e80f989a3974b46ed648bec4fabcf494c14985e4edc0f0a2fb014a2d7e48e1587ecc51ed09b4d6c98a95385b94d8a4051e5adbff87dd9e55c663c0d4a0dce0c29db83516cf6f5b20dd483a44606
+B = -4f9db15e7e8f83254b3b16ef64f49525ebf9989b769504c3bc77b6f019435e387a6685dd4823f27ae486dbff3396f4ef35d8c9debf442d53f6d0ed6670e4b199ce97b8474a88fb878021876dc89beb3d4e101f0353024b89da2724
+GCD = 1b950d9d476d485d68bc2efb1859af9d3b8bd5a18b8bfd7da170a0b6400a872394e25777f338a6bf7bd1cce7659a
+
+A = -13ca7f56583fcd0f45f1d1b841c37c414dcae69f8614bbc637ac4ad2b4501531f436961b7e880790ea4bb7f331ad2db31e2524793fac7fbbc9446df1e3cee4d6c6364486afb88be29da297f969709750ba88c3c40ac3c68edbe81ae
+B = -12bb7fa8d6daf398f7fd13ab9895e94aa3e8b91a81f897cab24b6aa0553cf2db296fa3bd070fbccbee9916199398b7d4832deb10912498ef4b82bbd9ecd5cf89830990915091ddecfe9de6d769d3b6391293d40690917f880b74e9c
+GCD = 2ab6b90336298392e19bb820144c441f4b7f2feb6dde96a70e5e7e87ad3f4d9dd1306e35184d2e125174fa601212
+
+A = 1be5400b05c3b6c129bc1ff6554913323fe74cba06107c289618cbc07e0984dbd3ede9b4e43fbf00bb0246a9ae480fe46cbb0a71aaceec8faf375391d86628fbc33ab99ff36b5a6dc0df6aa5eda6325a8f52c42bd3aa52373cdd5f4
+B = 7086d1a975093b0ab5a64e9ec40d2f76e29ea125a1ae48c600ce178bc35701843e03de36a9395b2779fe57fb85a543e970edd58cadf4f6e92c9033bca9dac06d64d62f3471027e65b05b1c119649334877ba9fc4e8ea765a3eb542
+GCD = 37fcec1df7348c917c6beea434bcd45b2a1ce061c6c99aef39b5bb430981ceb91dfe0608fe35f2cc2b25c3370b22
+
+A = f8f353b051b550ecec2c0fdca09ffda96dc67b9c8188828d5d950889176eede1caf23bb9279124ed65faa874083a989331d4609385a76094f81e2fe0c3e9633f7e43d7da30f5b566a153c6edf24718903c19348424e8c426247de12
+B = -359189b51aab04c7511d9208656692959f1f995baa51ab1ebcd1468bb50f20df29a9cd7360feb134d157054fca271814a89e79d76166a4a84870c150360005766dc619ea33332b850801a94177c035b9cd989206700231da3c1859c
+GCD = b30520c708db9fe43a9c520140ae61ca8dc6b586333f44e4004eef28ac51d7aa93415b9136ce194b75e4bbe5d7aa
+
+A = a71d0f5f83bcae29b0949ac67671783383dd032ceeb501eba447b6a1382a13e1741e5117c7de63c66b132b035d82df3ed9f03a418feeb8fe073343690b4ba655c6fa8ec5611dca510c056554327dc1307456503ec1d33bdd02a5b42
+B = -6244dd7b23f1e33c407c89c39f0af31e8577a5ad50ac44735521073789faa780c7fb1e644890556d118170bdb463a4c739154fc43647b693a96ed4231f57067b611010fc6a028b9f88704a167957622c6a5204166709adb1517f59c3
+GCD = e42f2bda40c5b833e518360460382598ba653abd85bd2cebb08cbd0f8d9690a5f403bcc3ceba6255e846f735b4cf
+
+A = 1062ca1b121f45fb4ea09ec5062d30174b043fa14b04ead0dc346bd81e60eae87c6a4a416f16aedb13845a91db112fa7351b29f1a979e423e79cf3fa9eeee32baf19b73714242f84fed3dbfe2708d9b2c876368fa20f09f257ebf62f6
+B = ecd73a16ae56f347e865287412c1722c6bf1d691ab26c7ac73c60fd483817015e325b5c18d1f370ef635ae39b0f504c5172d7bc61628fecb14726b4af5da6de0385cd9a53697382b786f08c51e1e3f161053750dda0338184a24926f
+GCD = 1107cf4f5018fed248083ec145d6959d2af23e77d0fd4a1d335eafd2452ef9f2e11da5dae2e4cfb5cba7c2edd8ad3
+
+A = 28e9c26e11c84f19e26c9f72cc40b86b4d612bb5bbc8677de54d48d7bc35535c3ee84a8369acbcfe641f85aabf8a539c6a0321cdaf2d104871a9a03e02cc5ac0c72c3ac5e22251ed33d1f76937a6540d3340f9787a1a44ce3f414f66b
+B = -30b28f961c2e96c7547973a278d06fce9286e0179a8e047193a9214d3ba27028a483a398698d40edc24bb75cd1bdefc1e57a0e7e15a34429b85d3914085c83d5b9dfa480840a50ac89977aa93c809d0bd8913a2f2b083172f978d9955
+GCD = a8cb1d6827f9bc60d2e7b0532a430bf25d809ee1931aa6e767cd1b5a8056254dbcb54c8f29bb840356b5330576cf1
+
+A = -bec4af5bff53a35e8276575aa346b3cd54344fc4e141924c0fcc3714d6dfef3766b39ebfc2327e55c47648d2e335aebd02ae8cefe3c701bb55467530a99abafaf3a7cbc2ff3e5e2693553a01a3bfb3030de9994178f2191d9f26a8a14
+B = 3b1fc9bf2c4faa4573df2ea913e2277dd2101436e1a7a74621aabed4c87a91456c9e52b10af2617f1f68b2ae3ede795c07af61ae2c8241ba7d75e01560bd691d24af95ad1fec89e80fd81abb938b150cfece785d6f76cbd9249f8bd50
+GCD = 1e78ddad371ab2e05f81f5d98ff197d7f886c0371b0d113ccb73abe2c9b18dd3a08f60134de5a638b08791803132cc
+
+A = -187eb572a45622faf1906e52bc66d24451ed8c16132bd470c0527ac5c26ef3e50241fe2e0b8c162cf187e3351e6ac562e1ae2dd0a4bceaa2ce6dc58b11e601b91d33a098fad4a6b96dc7be83dbc90b60a42cf853f4fb0f500af2efe4d2
+B = -2de57c16b9d8c46bade89d1730a1e332d731c47280a1bc219668f1579dbb07bf0cde72d559da4dcc28c24177740fbc21efa6703c9e277a4fe818f39eaac75c2450724f7db9930b1d460a7f15fcdc32b1ba6f692277d3305cf3a07e663f
+GCD = 86172e2a3a6a3c5bcfdaae14f224ef060f19d9f4b2d51167a1e8c23bfeb3cacbff55364fc769ef4cfe64b27b2bc57
+
+A = -4b9a74706f873c0e7dc05d45f1e8f7dafa27e121ff954bb9aaf104ed2b4b673765f8008ede0d509e4a337bd6cfe41d8c88d891f608b5441bf9f0b19af45dfe7a6a7030e8a17c24d16fa58dca6567f79ec34b8a7c25f3e66b723143cc0
+B = 43ac404d0f16e69edea0d924746771f35da74ddc85a9cbbb770662753eac2c11555037edce8e510623ae561a638912ce0d7d968a8f6938ee20e730b156311cb5f906d0f2cd080815c15fe6789b0bbee3db720418f2e85c2ca373806a9
+GCD = 1efdf68ee94dff7ece65330df32eea3a737a724299519277ab2b73f3fed7200fe8705d29ddece03f0064037020fa7f
+
+A = bc6595be248d4ed48eb911e7d6eae643f13a076c34aecd35ab4b19f17401a117bdce2a4f77b5a4b70f9d8fc4e608835d8d82ad5cad6921d01a3f9f618a8c84105f46f2f344ab4dac2a38deef97dadae519c1e3202de9100dee6a153f8e
+B = 205615896afe769ba625d60c5a7de672d00776c685f7d284f5d3c828d231017f38fdc72d7492cfbfb8022b07251849b4320c3814850368a9a1e57d8ea6751cc08db1c8724fdb3d325e3d4179ec49767f36e8aefae4a0db43c551a76ea52
+GCD = 69a779bec79fc59f00a03703bcdef4a9ec6bf77846d03530cf786eb5d6ac78b67d99600e8b61ec2d3d9c65551699ae
+
+A = f07939abace11b47c69e9fa21dd4b024a6299d6d960e5b833a3dc61f1f8c6020ec9c091043162c38575002f4fe44b9215ed98d67bf5e94552de076b7ae28a00812b1f3c0c4dde10c25a0c7f3c4ee1cd12838e454641457d07122fd49a97
+B = -56df35868ee92fd91fa70a89efee7ef71855488f4d6e78b6d298be2572f5a9747213216a41a7cecf061699c6ed106aa713188115fb0b316d91e147dd4cc1da523e1730c49eee73926a8f9f417be8cafffcd7db50f8a01e09a6dd0fdf0dd
+GCD = 4fd633cbc3e9d190a659c7041e858627765ac3fc9b289afea7a7f0d3d5e0a64a1039e24105e8f385692db1880c920d
+
+A = -48c6a705b62ad1fde4bc878db156bb933698a60271f685cf8aebc0758251294a735e18500a125222a4c94bdb29d9ecbfc7c9035cabaeca2021cefb67e8116574105309467475acefe2ca0907dc74c9638383cfdba9a96cfadadbeb75a86c
+B = -2e53ec4fdbf83e5a143950c07006ac6fb152f7d99ccaa884ba3e1397f7cfa346d22c8e09964fde376ed601c0b8845b338c595fbf08fe9d082ec409f43ea15d48a35a347959c30e7f08017f3ddab3a581953b2911927f5f2897fe8cc5f62c
+GCD = a959e0499771c520193a6ac4693ed620a1ba165efa7ba4b29b7e5f7818c2f4abc0ed1dbf04fa9c4463ab73af6e2cd4
+
+A = c2f608d99d0e913b61cc29633b0a9a65276e9d4fbb56e7e1cda792765a8d85464a051c176505cfcfdec9015860b0a0768a6d2f4ffeab5ad0cfad0a071851fa0099ad2c9dec0d52295ec4bff716575edc970f2fc10ce665b2550b9107b840
+B = 1aef2f8a8ed8954350d54082697191f638ab098a18fc5aa135183b75430c94184072c1220484db75c8215c7ed0706867f0a00fb1e2238aaa0abcda47df1f04c1ded288ce15a09e4ab8f734bb832b16b1c3ffeda26a5b6c86fa069d8936000
+GCD = 199d02e025adcc86b5f7ea830740859380c491850304c066fb9ace057b59d3a01d41af7e84d503633f66e6e36116d040
+
+A = -70429b7d2ea5eeca53292ffa80d74d73dc08ce01c1e1369fdd683f14ee1f507f6f6c2b7280e85fd5e5d84cf50a5fea1de52c7bc95fce48185a47d43255d94e519e8736f96b5563c976478f1894e690f43551ecb477bfe6ccd0e5ad9977a0
+B = 14904d2a8392a13efe95f3620be8bae324f485f29806e605b4a22d3995a826593af291b34909fa50a227635948d319f26ac21ad1c81a30fe880a6c9e60ecae35e323e48a18518522922f881cb7417777020753d07d6d60116ba3f7a561000
+GCD = 2267912b74db239e19d88ff4ca8eeb73b860e5cbb2631c1df16c3d6ff12b1d6f55c2bd693bedfb8f4ad36b324adbea0
+
+A = 7776100db14f0cf58ce1afb8657b72d8f0752db5cc04f50faf2ebf110d93c5744a24044aa8dbc32a0b83a6e90539be8f2a6a7cad132d5033dfdb054d3f7154b5f6050e6673ae99b0f1d801b9f75ba2189402d84b3c11b0d112ec2d667b8c0
+B = 704f03362ac1fe7ef4477f7ad6005f6b718dae79a386508164bf52d47036fbbad0efecefc4328aab3c306ff9bfb44210f246e084eef76dee97b7027379e771e4fb861fb838eacd2c23a2705b877e337defa5d57492a8ab2590ee98b3c6800
+GCD = 4cb8921bb1ed9f93e7d60268cdb1f6bcad4dc4930bbc78867119313164d35a42f8ef169d571402758494240f08a6c40
+
+A = 2f490a067678ba320d0c3763601f86df9cc3cd54cb3c80f1cee219a32a9987ad930a4283ff03d4171c89acfb6b90b8c70cb82013181779e631f703d75f822670f1b74fc114721334adecaa06d9453773273dd162403f1ae4aa2cbe93e65c51
+B = -21ab4336c50a8fe382ca29993192af58491a81120b8ae986c38e0454e55c6ea30d02135ff4d82319a7dbb9b2e9d113fc0e7e3449c9920f6544b35ce52f3216625d4090954c30703df50fb38e0e75cb4ecd5ef2e17ced3c27e4e68271b8c73b
+GCD = 9cfbdd01f4970c4ba2590e78e2161e64e0ff7947ca86c0b897d92ff8f6b4de5570df504bda6cfa506df523eb66be3f7
+
+A = -611c3b6ba26e07b3d37bf994a94ab0abc69a15c9f1b649bb8ed5a4ba4a6c6c686ec72e5664f503d6fe20b10539c8ace71e63904053909ebe045ec84ba639b2228965127ca022a5c6c75815433cb05c2a0e29f05eda3cbc81cdb59fe09fb215
+B = 10fb4231a147ab1bc2a5e82e097b5c62b599420dd1e803e9c09c284e1cb3df653904e1c791a0ec19c6aee376f3297fb6e53e02c0ff85ebd0c63962dd60ed8abae21ab02d8357279dfc7968a99939f12e15bf558ec41a9e4cd12650cebb9b124
+GCD = 18c888131cb1ffc06fe9b0e805215c8f30c72135342102493e8242096698623ea5a5569eea2565b87d33c3b5270fd7bf
+
+A = 65b9557e5e30d73f22b7974963507687bba687e1c3d5f044e2c41376b3c5999a93262822a052d093c680cdc2a55367e17b40030f54ab63f101dd5a45797c4e10d7277f3afe0363356c30046fb1d6ffe68b52e160474b1b7a9d19d354fd1ffec
+B = 5b6930e5790e299e721353aed2d7dde3d729851568ce017504e162b4955cb7e0072bbc68d83e79f136120a0598fc3394abd7518a340f03697bb0498d047bbc4361f37928ec294033789c31859ec7fb15c0dff482c3097cec2ceaf883da13970
+GCD = eaee4f9859aca2f53925dc6b1212591de71a573b07fb4b92165b803c173cb9b0577776b24794054c13dd327949bdb2bc
+
+A = -af52d8577227f64c4dd76c35ad05c2b6828c59a122794387c20dc9216f6fe5ea9cf9e7fc4ca8e47e2be52e8e8e245b3998f7e03f22cc6267270d386bf4823c8c13468bbcb0ddad017ea993368bde3988d7ad2f5de1590d9870f481b13673cc
+B = 9d2d9651b7847f58a7693d41224c6d8360d28e115f8e9ce8f3db541f460f97acf9e1f0f2e72e5956e8b3474e380ee19e58dc528e105547b7edd53fd7ca23992d3085ee1e232ae12570453ef3f0741ba3838a4d0fb5d5a8c249b8de8601c0be6
+GCD = 7817883ee1cde88f0eeb1dd45de78eaace94a27b51d82889e6ada013a5620b2d3a8cd864e34531cb295a3b3fb8791a1e
+
+A = -2d1639db545b9ed6cce5ac24bd9acac4e3eb8639d6a98cf7a6010dd760caafee22f45f76fafcd33ab906e10f10eea3182279d6219b47768407283fb881381b669e4937caea374d5fed66d22ed91024b4cf57907db816566154cbb8e73190d542
+B = -32e17c2e843f232a911e3a40ec94e5ee3a0af39f179a15c1ab05924a62ae4a4986e0bdee7c80782fa61f8bcdf34f43c69f6c78d94b59200129e1fda6b5758e5a43a3ce6ad1f36f2bfbce2ece7d4f6d1ced2dfe0b6d09422634515fc6729b2924
+GCD = 2a9daaee9085ba42c19f6a22ccd4bbf2844dae3c189cb10abaad899083855a89fd5f03e0fc9a29c173c171ea069e52ec2
+
+A = -c1c479bfb428d27fb8d6954d614d47f49527cca253427601c6155f6761051d19a1162cffe12f7ce789c142b29250f6a1adb8342d7822eefdf972385abaef7a9c902c020a311a0e3076f3c3cf9dd262af19760783cc27f61369a5032e59a3db4
+B = -14b799ce82150daf38e7287f45582aed9fcaa7fc515e9f15be128fdc55673d5b87140a21f8f4d88322a9b7a8821435c3fc0d40685b78054fc8c230f59191ab0948ee473c0be9753c7d29698b35dfef2b23def672711b5d7e786c595d9d8c0e8c0
+GCD = 30ad136811b362f9b8b222f0c548b889c6d768675161a8901591c5f7cbf4668532c92fcc827b45db804d508609ecf512c
+
+A = -9dfe5e74cdd9b5ec226c517dc4d2fdb1f1ca900a6ee86a9b391e45bb9bd6dd0811155ae6287b317177eb3a38eae68d135950cff06c27673778de136c5f831dea56ed8d8894017215de43efd5b6b5e42bb05e30bc4e46e6d647f7fa2ecda800c0
+B = 1d5e6872abb66331000851b33c2763476d8be244ac2e0a05c639260845154cb56a03ca1cd63829eea2101e1070a9f53b28429d715d62c85918b628264aae7c9afa920883708c14fca8e323a7465ebfaa0d0aa2c3fbe542c9cfa6f1a07ebd33280
+GCD = 4d2957af237b577df31fd8d59756896856254ec1f5d1feb7422e5a8fd95dfb4a9211a21dbe2e605e291087e4d1cb3ffc0
+
+A = 2336afdde64618b3aa7f34c6f31542762d3c55e8a7dad8b5705390ba7ef61619930fbfc4563bc9b7b6ddc55fdd4ff686a249114a86e1893bb4de0d7dfe2063e99bb806cc948180b8d798ca52b305fb6b71371857d8975d8a45065e25431be4114
+B = 7bb159b33a68c83905028224a106f46622e7256b38591e3ee4201b171f1a945f9ec0e0fb739544093527fab5fd17244fe07158e348f29f9b999c428ed972ffd6569011ebc68f9007b05a677ccc00f001a0079ff3ff0b271d513071e830b59e36e
+GCD = b0143de44b85277123fc1331468dcfe2117f4bc55c94a02658b12e48dfaa2710365c5bbd650630134ef1aae30553d582e
+
+A = 5ec49f56fe8598ae1e816972a3038e5a749370964bf2a21f0d9079863b0b5407eccbe5dce3e92b1de5f096e590edf1df89df3b5ae5b3e4c3aefc9fe9d488a406670c6a41ab764d01e3eda97036dc15287d098e1e3cb808c53d68900b3565d1a02b
+B = -2794644fa7d9c5e908708cec66a4d7a091defaa12f2fa714f7a73e0c364c3e28a8df4b4376f54a8d59f69885305038be2ca13847dca01035a1a8bdb32fb71ff42a25f360bcc2a1fe59d7dbb8fd2ca28d5ea5e5fae41a96f351ae9856273744e8ff
+GCD = 26196015aacadea54dd1ed0b60bc37a032aa6bf40125917ac14898aa20355b03022ce855e814c32e5178b2d561a7320771
+
+A = -581b46edd0b15971e75506fb2040d96c3d396fb0bfd54a1659969495b9ce8ad68a71a98c823e587d97f5ffb4d40bdfc4c962c02af7d04c6912ac8021631d82a0c3e3aca948152c43493fcf2c5fb2caace9f8168f3e6fa8c277794fc2e225d9eed5
+B = -115906ecc3f3058f9061b4a74a65b7720adef86a906f0944eeb042916e8ed6b77e1e98a0fccce8768f9c0c2b34268b61a0a0d7f9b9035c4248136310b9ae246f1bb5dc1caaf568174a5b8744111b793625a02a02229049da46d6fed5b70a9c9bbf0
+GCD = 1b7b7f51e9e1787d361394ac21dc5ea9f8b72efa0a534cd93efc7ff880385c3c25f6e8ddb6b41799e848c864a44fda1807
+
+A = -660a270a9cca98128692b269c097542a92a106c75e7775f04224fc13b51e4628d75a00257e9dd5bc4342bfc3a4b781fc70db8553c0965dfaa91e0418e6744d515c0c6f35f09365b6826c9f71beeca315de79aa983153778f70b4e1db4397b9c14d6
+B = 56bc03117abb87d9c4a85098651fd1a3f03729fd659c813c4f7ecb210b937a2b9da3c7a6427748aabae02ea838cd09a2cf8219188822dee3742ae8d5c93ec00465c9f641a8933487d21dd3c4bde44551df130c0cc0a7bb7b2ba5702571d98cf5f29
+GCD = 10af9a9df8bba7e5ed132105c126a9d650b4735839da049bfa036e16df3677a19482daca70cac49d776a7e626b3a917612f
+
+A = -f5069680be2bc9529260c9d279116d273a97fdac960381d17d7bcfe16ad2afc06f88f625d1a31a58813a14857e74f006c46020c0da12b0d0d225158d15a49c6cf41f5b5890aa861bf4d44c0ce75ea1343e0f29866e7b74b663e34097ccf68395eec
+B = 962529257f52161d87ce6d6b0076d3414b660b4234434f8886bf5b044d3b6706207226c0e9f8ff6ec0738d870ead355b00e855ff07baa3bec793b79af8a530b172b4b6e97411a885f2d8ab859dded8b9ea9abc50440f5e7145df4e1e00af72fbc8
+GCD = 4fc34029a1d7df4aea092502b3b4813822efaf2c4c91f9ab716067edfc9e7a200ef307f0942947b8dfe2efb9b0a195557c
+
+A = 4f5d40c84dc43791f53399250623661528787a609c6b3fb0a1ca8db344446d27071b768191e72ddaa74c049f3b32fbe42e9790887902fe3d93a3eaf2c1d9db2a64090322faad9247922db0e96ef16c99c5a8ce273fb1d13b019c3c5134ffd25b6701
+B = -34d12d06274ed528785d60e56e1c35b27478e907fea092ab4b5bd539202771ade58b23f08507dd54365a3f1be450d5299664915a3191209968f8b87cc048578fce74c6ef755d11f39b90922dde5ae8d0b5fa973a24c7950bfac57ee88b7dffc0a7ef
+GCD = a944496417dfb7bdca1384f396bae1d188e7313982aaf4d8d7ddd8c1628b237d0434342a35876a965e95f9ed12de149915
+
+A = -d6388ed41cf345a5d4a99275492a6a9210c120f102ef5f07e1ad5da418d23d81ea7d4bffabf279b8644962b620fb85600c6aa10e70b91ad3719131299c53bdbdd6aa90d755c4a014abcbf3f01e21d550428d3dad2f6bde1bd3d4f9b00f5b127ba801
+B = 2ae4d11a437dec66ca7a5379185057dd30a38b157f0782b3be73a2824f66297ae22811c6b8d1716bdf2adad3e2de46690abebe39504be0281f5f36de29bd36166073618027e6ec8576e76654b58f4ad36fd93e2f95601c87af454a1f37ef9eeaf32b
+GCD = 12c5077cdd9cf58d1e906ed7d6147b671ed006703bb615c93231dd045366939429ccdee90f45929c5a52d87de6cd9ef9539
+
+A = 2e20018e6f49caeca16b018b47accabde275e7e0e6ccf0910382c678a80af882dc4825d59237740223943c4067fa02f587beff484782481f3d10ab0fa907d8fd2d233bb0ce16057db425593f6c52a9b4a0a2a8974b36e89eb0cc22f6e72917422a841
+B = 4948ae142d762489072bd80ffc647fd390b52c85563294985f7a6f1397f3646bbb53a2d6ffe21ae9a9ec12d47b35732db85bcaaf979cca2d08b2bc9d74996633d015059b208567bbea4fefbc5fc566ab13288c01b47167bf43b943daf9edcd43c2a80
+GCD = 2717fc7e8faaf45f7bc651fc00823c6f2410505713a5722bc170814d24ef8a3682e5a2ebd2afbaaea0c84bc5486c0742b11
+
+A = -327d55aea1a587e4ef04b8c0157245f845845c4ad0b532493231149eb243c608bd8bee05c743b14a044c7c55514c5d2a5288bf96a574c7a2686460caf1f97a510fedbbad526d4c478ef07e478e54b4ec6ff2ad5bd05c187434aa41a5847c6a9ea62d1
+B = 95960fd2cd83aa48f7b294d2f029e1c2f4c915d91a99d4ec332b453bd9f7fccdb2d46955510afcc9ee497bb8560d7bd8286d76a5dcd69b357e373a960e54522fa9e576254a728511843fe372ec4961367684a147e9ce193a19d845b311e65d6daef2
+GCD = 45e4931dfc4254446bf86dcb3d687f2eb26e35a01be02e80d54106555e8601e4e2136eab350f4e9c3cb904c97c4f66aa93b
+
+A = 2b97c3baef4aa2dda514142e8139747da67125eab065bf463a35817d6e2e6f7fb947f1c845238e041727802460ec5414a2a7b658b051e366b81a53f7e860ec0fd0e50ff32f6fe1f22cf9dd59fd966a23b23e688e1cdd0558babd9d5e3c30e67db53f40
+B = -3cfd9e9da52a720e2cea1a821e3710157ee6b1c3b2b75871ad63b3d6d1d1897a46c2358c6a256a423afe4c52ae3c6325f0d1d921e4c8d43312e18666c3d430e81d3814f0ec1cb56e42844fe5f6e4e64df5ac54453ddfd327662babbb79df125788b19c
+GCD = 144b29fa84dcfe98cd20ca9021a7b551beeccaf9cb6188d193217e5b37b27fc16c27028fb42537e61f64e99435ffa548fdd4
+
+A = 1051766a66052f6b8dc88d645b5ca03a98430377b4b72ab65591d751c5757a9b91b9dbdb37094ad2c19550d6cf9af5cd3833d5f69d2448b6f3b3ababe94c19f6a4a57c01bd0e1acae3b32f44afd5e7d29985d624762381112ba8998eb4774de610aa160
+B = d2ecf0aa93e708ac853c8101ee8f0f590971d5c53fe7854b0d443c7f1947c655266766a3b8d6c17f196885b4788431b3df6f0cf76c5ddae4524fc25a411a18ae725054fcd73b634c5487b97eda9e45204c57ddf3ef4e783e888adbeb162e27a2f4b080
+GCD = 3ad165ea0ebe4c834675b9c7c33b6dad0eb27d625097ae7fcaec60d752aa06fe7e9be1dc0acb11d0106a424b150b5f4320e0
+
+A = -154f2f847b731646cec8a03643253b8d6c2c6c3225f81ae1b32b6e5be9888a6db719b4d9ad44c0d5b99781510be262052c6187d48569bdbe5ab9c3910904f44f30f8e43839340fec28c51430bfb03d6e6a9873a8a9189fc84ea4aa9c751b33be05e3fa2
+B = -d11e4a70342a88d4c41882bb2d0bb5cc311be50025f6005a44425a1a51e9c1a99615c4dd7e50507e32fc3ca0ab27351dcf9f19c9ee6e21c44784711c84d6b62867e613bd791d8bb6153ab54e38889e0d03a47333eafb43b1509add41ceb22d088af660
+GCD = 31ef02883c4513704a30e2f6183be889f67a80ce84a94cf1158a2a4dbe9bc270e8ac21cf1dba4d494fb99fb360c1b37a2e86
+
+A = 95637d7294f9bc9217d2bedd34d088df3ce5c6d55e84bd0ebf6a86200b2837be8fdb686b3f5c35c717574d81d2aa2f66ea3003aa735661f5143968c2bea8f130202783662952fdc676ecf5414653f6dadca22bdf681daccfb24688c533b49f1855c23fc
+B = -b41a788caf2de25607529e4981ee9c111acb0f305b27319cfd58f9543fee730217e19123847fcba0b4e34bf48c888e3a907866c66066907d127005e4151d12b7add77852a9d787904a88c4b2f188e5c40620e9e0a866f3bafb61dee67a431e4e69ee402
+GCD = 72024a5650fd974263a5de8d42101c0c0770ebed51f7ec4b452065e023a3cffdb86acd15f13ca55e789204abe44f6d544156
+
+A = 2605d50f90ffc219efca5a0b3eae84c3977f8b0c7c3b90f7eb8f27b3d2de3b6387b57abd3efd699ca6776c254806e5a2be5f1f260a10e4e5fe87025bc6fc3f72044fd04e61bcc61ee85157b598fa1b2abb896b82481739b91bac39dcc4345ee92e55ef24
+B = 3cd19af2cf7667ca153ee67e601fab1d660c92756dac7c51b3cbc3e49ee1ce640da8722e0687e9cda38a4bdaaa74583c7bf308279d0329b5ae0d182170958f8aaa73439f5d9c8a7459d3fc75874fe9f084884a66548c7520cafccc9bfdd367b266559584
+GCD = 876fce900ea175fb034d92a1c883370aa4ca3df3ecd133fee3ccdf2e7f5b35ab0754cdce0917110600146639c1a9f862bb64
+
+A = f64b7603fd1207e5c325a6728f0a08c32036457ed9b2d70022ddabb38f6fd5ff226cc788c1daacdd1567917058b510e9b4dfce12d842cb5e32209bffe7cd28a6b145d4e29f834f18eaf6d77dc2e7504affd6f56a0b8946cccb274d9d194d226041e9310a
+B = 1154be1e8d333fbc45ccefafa94b98e0dff121851af3dd0a8e7cbd0a7ee0d17e39fb2bdf8f9a2999df47f8cd68da787630b60cd23d24bdd4f2c7e3fe0afb61214f7b2942619d9336875a18b6ce2081bb831972f421be15a9974fde93ec347f5e6ef8df016
+GCD = 1fad0c628fdd1b9f098fe53aeb498997bc5984f7bf35ada4e890cd9309613b81c5b7afe331dd3f1e26b24c11ced34099c94de
+
+A = -351e40a2cdbbec70553e013e0f6f13dd24dcc19b6815329dd5ce63328f4d76809c295fb74608084fec0f66dcfcc7d82ac302764544533fcdd8659961ac5049a3ff317f3222bb46aba1391fbc7a0fc655a3bb81e16b362acdc9ddb152d0bd6babc49df93a8
+B = 5246b50e2f3c835c4b15589ffd2af75a49c6802de112b58ecb2ef6653e8107357c992e943a3f6252db147858e42d2092a9ce9c1a1dfef0782b48faec0ad7e614dfb08e42a40ac1e74ac4525eab4e918ed4c61457f7d5e2ec57abd958fc135f3ec0e6f977f
+GCD = 29b7ab484cd02e2c1c3c4a495abe3b104b8bb42b1b20c3411a30c845e2a679e4749f3806f47c6dde03a0ec228d2d46cfbc0d7
+
+A = 23590a5ecf117c9786a73d014ee2a31d9930968192d6367875305fa664e7fa3a23f2a720103a62356825f3ca54ee4b5ce9af3723735dbb529191e63e4ef7cd3e795a8c0f53e0ff52f0cb43d1b5f3a08bf951cae5f9c04b793b9d37f3b0c07dc1aa6c0b696
+B = 8c819a7a35ee2e5d47b6fd74a5a0217203890a3415c11170488fd703977ce5d9735d46eba74e141cb2aa5bc8e2d86fcdbdf3a5b4e299203948c587d214827a7329f388a20cfb9e7361b23fe2fd2edde631158f757453b39e087f74d7d77eedcc6e41c6036
+GCD = 430bc8b6324178616c11aa7dd88b440c4820ac849071defc385f4fe41595af29985690ee81fc06e6fac4d5e96a3e56c35ad806
+
+A = 52850a344bc14d18a758b47042ba3d2a8340f93612f94735cf212f4fcba92873a2f50f9a5897ed17dac3b41b584435cdfb674d8b902e46c22c361ab95c9125c3d3d2e650cf9326b92103d3fc0024de907561a0e6ecfb7cc2dcdcfe1ad4a08bb1ed9f93d07
+B = -4091831cbbfc028b8d39e56003f1128b143fbb9f662b9f21cf9cfdaaa0f237a0767df5d249b384d9cbeff6d18f6b3547275a30f95dc214d6cbd5a2845c7abec9486c47c555e06eef10db56b5f9f1fcd68bc6d34c5458630fa94aa34417de5ec1872ecba18
+GCD = 92b931c239eb1afa212ce792362bd5318a5fef55543a219f9a6c7050309cbf56ffde5b0d38cb8b0bd9937ab621e617977cccd1
+
+A = d7cf5ba09cb8760011b38db1fbbae5702e831643549b393fea88b0166a66b0bb648adbb605051c6dbda8965ff62da60ae2869f3d6280517c5b94cc49244a2d77c0c29c365b7543165f6774d5758aaa4b277ca810788fa00a6fa6b2b9d9f321e651bfd46040
+B = 47ca624b0e6c4e0cb1a874ff8958d07eda4318a21b2f5ba92324d86a5dd303153dcafffcd780156242b814111039ef7d5892b25650328fb305895c3c275a373b3c58eb912ee9dcdcde7e9f68110be97957ff9db4e58856ccc51701a9b7de0b7dc3f37fd910
+GCD = 113f3fe13bc4a628375be0ad05cc6d331c6fa91ae158784bb60168ea87b644c4b5996e916e3262a11e548ef86649597203ead0
+
+A = -ad26371e8bb2e5ebe46e4dd365767a8e7ce09176046b2d55eef959e593b17c1540baaf036ceb644dbf377a70e7e4f95cce5fa3e65b2604b02dfc6902582d73ae0ac118708c225dea76c213d8560f9eec160e2e48b960c1b38b9f1ae1d726d8a6c20002690f
+B = -146b5a80ecef3db0af23277b8498452ee778f7eab3323da323c7597030d84c0b6173a205b33ef160bb92f7dc1f5d74c502b44c21a5ce8b6564af44867521805fabc3c7a3953b85ec4cc7d4d3ae45a760929ba19a24c70762067af33159006fe16868eb76b8d
+GCD = 2c3faf7a6e6911a181341b9a5da00ac41a4c12bd331081aec409f0919af60e6b4913f0157f1a7477be6fbf66165500c267c8d3
+
+A = 11414e2ab4abf6e9bd46d32e1447726555ad1fa1e6f169c27e674351e3a778f6ddf55f47fa8c850347a45cbcfbf1911d0e2bdf148a752a1a09395a52fd8ab3214c268cb3ac7bded4fb132573b1cdb0f800e54fad33ded373abccdbf8f48d6357e6539788b640
+B = -9085c12741394e6ec4d255ae74a7efad1017e193786ee6456f8a33c929c34abfd220c09eea0e4352ca1a2d6ea0245728d37b8e803050846364d255d1a9c6bd383ba6a1688aa06e4d66885ecb4d8543bdbc676ba5093e4df92f3fb43f69b71dad783d8014a0
+GCD = 78404ce9ae13cbc329fdc0b307e4bb74027f21b2f885db34aa64136568dab7692c7ba031d2fde8fb0babf2a338b31e3f0681a0
+
+A = -497ebeeee15a0776132c177655fe8ac2fc2a76a9e061626980ca3b20ba64d987798ac9b50087634b8632e8806783bf1a4a6aec2d151b5fbb329a8e05986bdb36f90c70f8697081de5fb1f4a3b9329b3753b94e68340575c16ff4f980c8e2a09918d2c9b954b6
+B = 5cf8e34b62528c880dc9c76362af2f813452222190cbfd0ceb3236ad8f00a9a638f148310e82263db84e21eed54251c01bab14b92366a098f32e43d842ac33eeb24dc46da5c7e4def146dd1c6f282f84f3346b7c666fcc6b24f90053f82a091252ed90ea77c1
+GCD = c733511737a6264522a7f4ed76ddabbe4dd09901cd866d31630c0c7b4f62a6cbe425b4b8411a3877a1c5f43c421338d9927935
+
+A = 94772a01f39364eea6a231544942189de82aecdc1cb20d984e752880dfe73fc274ef42116e4433426fef89755dbe581fbc264696636674f860da559649db26781c0e8d7fffc3bffa771bb3a9d51158e757f566428d4ec3909e378d55ae63f8ca510fe862a986
+B = f9dbe9a8b1b96ef2178b3ac1c4860c5d809c278aa620111cca122394485caa7d38406d53ec699dc7f740aec2eaa6c2157c53e567dd5d183eef3aec9ebefbccafdda8df71b5b3ce40a4ac48c7aaa6ed3f7197f7f2690ffcea902d63e5189c22e4c72b89c2a2b0
+GCD = 240d217b3c1e749c0baf9f987493734fdb84ca6be82c41c2c120683681bcada315b12239c5c68f56e7153835f8171dcd6aaf596
+
+A = 31697f0876d4c2889d2a47f45dee5d39147a9673df50a56f374c0f32592df51b7314bfea73c4dc51a0701c5de3cc6ebee8ccbfd3104881d8cc14b978fd7c3449d3977015f03b6bdb29b0430768268ace8722c12bd353f33b305a94fb54576ad0693852b11618c
+B = 370613f25e7588ccf96fe08d99afd26ac6d304979de48e31ae3916745410d65e688db7bb5b874400bab273d0b745ea39703bb5c75452ea8245b4d430556024bbb79632acfd748d7aa4ba60309d9700c720e37063825ee9491675d0720882ccdcea8a0dcce5206
+GCD = 21319b80553e8240201e98dd33eb02cd2cdc83a81c8fb0657c929da5cca4a6a63627a809e65b37c2f116b0688098b5ce6a8402a
+
+A = -289f13b51b3fe125f795760192631c01f99fbbd14e124087f363c908222425864a750782c855f04c0ea400214f5dd6d8448c134b799a8cf38776d3c5cf70090e8d799b2d75c109f8bb284bc734499e03351e0421f95d604f142c387ecaf68eab7516fdd03d58c
+B = -8deda9dd77016fdd20d29033c3c9cb6db1546d631413afba6e95416789ffb457547e8b21c26ca9fd213f9d753891e66ebe9896833024b9a55d0e4381d73ebb62ea2dbe4e068b8157b32ed9cb419c13972f80f845807b21995265e1944556410b8441323fce3b4
+GCD = 5425a4020f886d8d4e86dc5f34242031f0abd5eb08757a6f111cae901c3630a18dfb4390029d88009704f08a3177be20e708114
+
+A = -173d7ba64a761f8b717cdad3bfe22e55748c48404ba3fbef96dca11695b8d15e36b654be5b305bf4bc142b0d9d05254e19819805233fbb48b92a82d97fc61dd16327a2dcbab280190af790b7a885f7d49edb90c78bae20c162ffeb8e95be96965795b452a92f04
+B = 45a2e16db55b81605020892145cb89f1cfbcca7cf64c3650549de79eb865e9e8b071647a7ccb7ad234cbc150645b5a9f2db5320e70f85a794f177dbfe998e6d02fbe1dfa4d46146eb41ca56479506d5cf600b008638378e47e64bd3f214677d05298e3ecd76cc
+GCD = 28478e46b77c92f4e13936a2a6bf7801560877b5e94fd861b34b53a120c81bd7c0d77bf7da1ec2b9c907f1312862d4128de3a004
+
+A = be301fe6317d4ffdb8c632bd4df21c40663c5e3cee79f7ed23c8676ea6c5eb02bbab42541abbee582ff4681285053645032f63126a002ef2238477237b689b81c7f6374e1b969555df12482aab56c6e27c19e4f014e1988bd92fa5b08d5a4a9f8716c8a44a1120
+B = f7bad65b19d9c07631842d57327199b0355848744bfcc2422d14700281ebfdb35535850c2a6d547f23434096753aab03eea132d4d94fc931f2abb5dc4968b237047579624aa2d22e3cf554d6756c33cbd237b09da66d3119122dc855d56dd531fafce15ac697a0
+GCD = 1a6e2fbc6104c0b239a3f7e6a03766e6dd5357148f868373859197f69a7642e876002cd4cd1b4d98782df06274ff812aa651aac20
+
+A = -e7d0b110dd122e35af8ed79ae43aa27ef020441ac1388acdebd5b749f27aaf04cdb77fe9c256056a57d038d9eaaeba1219c4bd80cd4810a5228a1d1f02522a2c4165d5c2b6f037c3968f965fe5a76dad1c8821792b5886459dfd4e85ed2ada0d91aa93962b5bf6
+B = f76c3229b089f799480a926a72b690dbccffc855ed037798ad0fc24387985b42c38f7749b2043f4a98e2f08e56893bacdbd32a810de632248ad751f8189e9295dd171820ec3a2e1be166d705727b277318b941b24e09ad7fc15ddf401edec76ee9101bc78e0de0
+GCD = 27db61c8fb818289f8e9f215344b58c74af11a14f914f83284ded8482a15bb8de8a9db38dd34c7405405992844a17ab924d883ea
+
+A = -e2f3d27203187a3e5cf54b9da1411c6f8c9f957f4e0590db3659f7672f7c30f90c39f882ba3dce6e253d7032e12842304d1512f2f8cf2a50cab5d68bf2b2834dd4cefbe53bdb33163de76b64873e5424045313c56d59b80ddade9054789e982a403bb65578328c6
+B = -4c8174139b7e759bead0961cf4f7a0f0ba9d7cb35e7959b6341b8d5c40bccf457ef1d4aa71e34ffdafbca5de545ac21a616630c06b088f66f813b45b895ed03c09ef0db925b1e591944f516d23e84d674af3b3c8b563aa06968e0b7c12ccb268745229b193e9091
+GCD = 404da3111bd24c9d57f33222db8e3d21d422dc47e5c345fafc4583140117700e9af716d45a439c14f6fdf4100c43334cd907c823
+
+A = -2ae801e85fe54a39d7cf57a85a9b587266b13a1a66d0b45f99f6590c27edb66e93ea09de783e0facd674d12451f12e469cdc05cc5504947e0f825f47c56eb9f5a24578a64b2d4969f5e7e58a416ad42eee972583c93e6cff5f7d17a49e7aabb5d3b3067f6674724
+B = 1fb451e42361ecddc973baf000c41627320f97ccc79cf7040000166336842fc8f88492ae0282cd3505dababe1305b28e98b822d61f2b2762e020e990f9c73c02fe05d00ac6a54169f31aecf3de71c2154625e6322b730108b3a0faf3ef8fa9b7846e1fa734fe7d83
+GCD = 175775fe5c314f5472aef5100f5cfd5070d162e208f3aa0dc5881bd0be9d2e2bc2c1a429dba9a87bef0d290fa224f57f3c51421cfb
+
+A = 19a8e72b0d85b767b86e4fed1a56fa7d8bd12806f74324fba2fa0a401e84bdfae41813840923a87870864c3797d366873966ec9c50b5b74312f76fdb2dc90947334ec2759484815ea3f25aaff304d8e2ec9f9601ec0de922e014e47157bdf8dfae523abf5b7ffa92d
+B = 142133075f16db0fc70140604d60f6ad1b381a2e1ba9dd909f49647913849a63046dc796b6211b3d8cc012b81f7ccfcc7c1f34a7a20c758bd9accc6fad1778b205ebe89c6fbc79edbbb52fd2e229b69e9919f219e607e0a183cfe990ae4c33227c5e974c86f46648
+GCD = 1b4502867e44fcc95cb18e6cf7614cfbb7289d627dcf04cb95144222287720dc5a4d6e66a7c67380dfb1bb6e7a134add79d54ef39
+
+A = -6a61f23e7ebb4c529feeb351b113ac3bb0c7c7fd143f4dde7f8477a09e1aa56e7df10fdc032c50ed4ea13d94ba17133f3bca3e75b251569567027314c7713d29c1567e26b25e2ada8eeea64cb11027573f815bb07d3e4f020445018bcb5437928d3a74124ab015980
+B = -3d6507d2040b484f2d6831106074dcdf0dd42283400d3ee91c06cd0d2c011e9b45c908ce57e9ba9e9e8f99795db35f6359b538add1a5f9a89cdd8b0a47d60ba52520efd36b7df2e817ceb0af3173ef26d8a1d51e62c3a1d4565a9ec318fb8d64ccd67c9bc7fa91a66
+GCD = 6d88cedf1171d34bd14f314740a17235d5b42ac5d5ab45bdfeeacec79566ac5d02162d2a4318cef45eb0310526d88972f4ece44b2
+
+A = db6e6d3f7d5378642962715666261bb12bc444dfaaaaafb4ecfb51e3331bfe7bd0f492a9d52089f0ccd439472f27e9884b0c8f0e6ff0d4d918ab1a97a49961f124b685d760298879015b2c55458eb287efa1a584b4d4494aa87f76a1ed2475831c0e9671649328a1f
+B = 545d328c07d7ac5f330e6106aef053cf328c627a6e961fdc8f339243b6b6837e1652c45d711cc63f4f31412d64c5bc743736b5b83fa90f80f9c889454bf3236bd61be290127642c7400e920c4a61d8871f94d44daa12a3ce430c42e396c33293e041df8cdad262d05
+GCD = 219160f378dae36736cd6f2e31f03c0e754e17c90c804e10a7846b0dc83a47cae3a96b4b0fea921fcfaa48ee7171da6e6820f2a9a3
+
+A = 488e091d388da72fa2cb0abed3bcd9e6f27ac58e0c90b8438a9bfaad0571dd13a80ae3a7a432d0d0a98d5aa90c39c1d2ac426fe05bfca9cc8ac268404823c085f6ea58014b173ad8b793b2caac7db80881faa32aae16ce6287f7cabf2c04f6b388be9fce99c86c3177
+B = -52b3abe79c9c9788587f864aa0ea25107806ac6645199177e52daf37d9857e8595abb8d7bf50783ba69665daeb70c2dd5b0134e90b6c0f2e378d4e5e40150d1cdddd175e14e2bb3d037b9e2c17d770f5ad99f38084d9f752f2cc829c3283dfacd334aab5f8ebbaefb6
+GCD = 125cb35f34cceff399212789eaba719d0b45538091a3ddcf05c3d15e65fa7bc34fba50b4914c1b9e903e2a9ae8cdb4a0491aace99cf
+
+A = -181ccf1874f401e08ace42a3228ba457213d53a083b60e1e9a8be244b971cb6680f72ff00de3c9854f0e7e408164711b6f38cbb3496fa3f967e664e125cc17968a1e98392c08017a40642bae1c31cc461660dc2800ad722c3391219eef0780f541ab2883f3b6c703722
+B = -ceb311eae2b8dffe86286065c699a985a2f76d6b1addb5bf452d63c65b205c05a68a66761e94ee7b2df45ccdcd8b3e53d396b4b05d17acd111e3ba2fcdfa7ff7e4f252a613c018c7446f4727be226b7047b40f567ad01ea71701202897ecf2fd1d647d9761374cb0e0
+GCD = 1b542b873375e05818c4aeb64dfea05c8e5597de268442a9736584ac1cda5563f17bf63944f91d75d30e8b2870c14f6c5056509d2a
+
+A = 4095d03187686b2b9b7c7f6c84eabe070c51d08975ee7eb2686d392ab2c93941e72a0e334d850c1b170b9824b0da68423b153eab9ec0e938d7490e28cf2f1f0fec23d9d15d2aea07986ce24cc96e6bffc59e0e014e17873ca50430a0e98adfcdb985800acea4693e9b9
+B = 3e15f947f151396f3ab5d34b9422d83eff10d64e2398dd16b87d4f2e4b318c24ce96d417e21854dbba2fa2ca8eb9153cbe59e954aea408552c11fc1fd9d8914da9640ed2d7f63b71db529d6da7a2480bf2b694049aa5e45fdb006d20da0743862d7505252f6900716c4
+GCD = 26cfe771d7313fc58ec5b3e371615b9980aa87d146e97e5ba3a331d5dc9e6f87ecb1b904b6c12f0ab3aab542e0a4f695b733dfb0fd
+
+A = e999572693d3b0a9623f71dd47baa7e17a581aae029c649467a0dff6e8f5cea5374dc9d84a9415146a0f6c3b5fd6a80361efea5d45d00b9ecf13cd6c8e82d2e8edde26ed0de1c63062292fd174f52c49d5eea8575a31f4da7a6384499860420bb1e3f4f9e127d64bb4b
+B = -2ef614cf1ef09391cf7c8b884779c2b939f1614afe829521143ea9a1cbc4f82af152c14e3dd9404a4c108c33a74fcdd86f5ed2f5de48064785f9a5615c91dccac85583abffa169a000a5d7a99d15dd6e82dbfc25a3c28334764bd8753b5effe891240e83616431dc5b
+GCD = 5c3ae308126e13d2fbd7a2c4edb4f51f6ce9fc344c1663747ac46bc130db84647db2806563e594d5fcb0189eb32197a7136498052d
+
+A = -5e930ea21a9f8b1ac66514aed615ceec44ff5974e50880790cbe158a47cbb87fc50d7700a101ac56b1a36128c7f2734af94dd1622965c01336b5a004438396f5d3672511fd65f96341f0d773ebf9eb3f2c66f966a8c44aa6f7e91896b26445c3d833fd5806f6fe5039d0
+B = -65e79a04cda2712f2e794e8ad1adeb61eb074b920b452f33b8799e60ceaa6cd87c1e2e06f96c90305e94f04c6e83195dd8f43830e516c7c4b46f5ed2674ffc82c9ae277b4d1294414c1819531b32fdb98a099f47a2919af87247313b9731cdbb8ad071c83125529cfcb0
+GCD = fc3c52b89fcd7e6f49a7e438c9fa46b8a55bb6652e2318f8608c36d52e15a19d6348a8095c7f4db73a9e56a8fdfed9c72084f8e9f0
+
+A = -84f13bf6f0d8a29032868ffae98f452edf3527c911ddce819f8b0ec8f114c8081e9e9b1736dd737f9e4d6e3d7b09f7cea0a1cfbda36339ccddb06cbe936d46b73aeb1dc6e0ce92f040d6b02cc9e05f350a55d21b5367514ecb7ca15f51de9622bfd21590804168fd698
+B = -999d27b247b1acfccc7b7b98c65a82169d070527d46f4730531a1164b7e209ff399584510d61112b8b102a8de76eff6aa5b2ff1c83ac5cff7c35b56f3cfb8c5b65012caeda4a01aa23801bc1cea112a5ae9873d1f67d9327323800a694330fedad2ba847933373faa82d
+GCD = 19bd3e4990b2ce78e4e44fc252cde231bf9b82796912a294370050c7fc8bd816055929dd272fb86669a488ba21f48fc017729c11cd7
+
+A = 40ab8abede551d5ca27e7b0a88c17f2874f30751f1656d1c6ad4a5c7ee000c9d30d6b0452059374c3fd802a802b39ef88596c3ebf51286794e023ab1bf943cedc0d4c1dbcffa0f5988b502edd405908ef951172ac1284cf9269f1c659707f5b9c6c6184b1e83a3fac3903
+B = -1ea9afac1f523ceba17f9353d677a234b95951f2eb5b39e237e2e2da7cc8ad7a329dfb0ed4b6f458ec08bbcad3edae1e8ec6c643cfa7d78e37c47ed17fad01471352fced9a4cd175b00daef6c32055d6fa330d579ba79abf1ad23c2b0b6cf845c16a168422966ad6a9521
+GCD = 742c4908e58b723a29dfcaa3c5120ad4c3ae897b6a409ceca1542e3071431a9f4501b2dca936a55a1ea4c52de022415f5496200d5e1
+
+A = -d65e10ea9da6a804efdfb78c2c35bf346f712f8523abf8a64be09d33bcc7048ff875f2dd85e756df59f4cb9d1647ec2e22ac0879b55167eb52368db6b686d9ab1b9f50fc25a51b1a8984b4e56e19ee978665c67bfc3ded2be29cf23497a272d7553f12b193a694a71fc07
+B = -25f0f2de52f719cad71d5e8c49a767279fc07b678cd81d0ee7f6a0259b63075c8cb2749c44cc9aeb222c827fd0e7f500f9cce12b20f8add4a6fddc49ef8069b04b7e9463d8491c40a0d5acdff872d8beb41a8c235c2aa6efc340df105f47d817679faf7b84dcd14bbf9c3
+GCD = 13d763c408389dc6808f678327419c39675d8c3e509822d245704ce2efde4df5ecbca672a8524d20e43609b59ccccc9240d0cc88df99
+
+A = eb5d1fe1490a460026441dbb2154bb80b050e28b2261cd08551b1d8214572bbdeb233bbe53db107cd89e36c10fa707bad729135dd34350f1470fa0056b7b3f040eeb2f89b101ca2eb4858189a5d32a1f522bd365e2ed5708eb513343447e42ce4db3f391c457b343f0b9c
+B = -275c2bbccf82396177099782b6b792ee766b7863dcfbf2919370c0ab8388639654f39738d22e9a15888787d3fccc4b89e97ea25f1928e30518d5b52c87f37326a808b63fc7d6249bcc565c1d480b618e4cc597392042e7f6b80871b4cdcdefe7eba730abb56b3f672478a6
+GCD = a86abccfd65c2d3948c8c66d37c44503b7c954b4ae6ec8a17bd767e566ed950ec76a915d16275b310bce27e8c7774004e5dbb93e89e
+
+A = 3d99f894630629dd0eb4daca0bc9dbf6972d6864983f195efce5764acc3b2e56004dd2043a46f13a07e46f789dd9d849714b6d69399ea8a16ca54b3f83b4d00fdb9a590bb3b0ba8426c24503b36ad877715be61ab94eecbdab0e383a5567314600d87f43173f023b6537a9
+B = -93de92a135c29abdfad741da74e7a62f2f3ce7f0f989ead3c9b0ec92686730f22417492508d1cbcfa99e20e055d446fc35d7c0b19ad915400b79001ac7872353c1bd91efc67e57c0a0e1a20779685b36ac0b0c7772ac86c6bf84596472807364d59e8e0f514358c7a7e076
+GCD = 105d443e7aa1a1fe7901d6cba452bf6e7126e22d0e4a8290b0b6fdcd5d004d61139b0a34fd570f18bf42db39ea0520c8e16bc4ab0a0f
+
+A = 25634b628214a935d3e7fd404872f2c555a995f2bbcc04b6639853a2910cc5923237303da47581d7a6ca8dec026f3a4ed91f5297eeaefe83bfb488b6b6a0e4434b8df6a92b35d1c62b79f12d6568e9b0166bcb3a2022f38c8ae0bafad9beaf482d54ed69f5292335d24ba2a
+B = -13a6f891298a63aea3d3b5534f310df9a5aec26cc5585fba4104a9ec2f8b9fbbbf6c0a3475fe41b404d370e720758a299acef1ccf18adc8f0b4f24f96eaf6cf629ce887783107f525eb900cce5255ac7725b20c61a5f504ce3bbd5867f9e0eb20ff9f1cea54bec97726e946
+GCD = 1eb8cdb0ff88ff52c2fb3bf262da3cb089d8d606458c556e6c0071aa5b6c73bfe9ce0e87c601415aa1aa5514c7390b75c3ca446f8c412
+
+A = 6bf11ac8a63e61eda3f99c2d3bb0f4b1850f0f8bc61fed33a1cdf9fbe9cdea242b7edb16931f37e13b31b0301973db8195be4684dc59a0fd669d715b05a5305f5d0f3f8d934152ee4ae244a70b93c0ff4edd693de85908a45ea7b27eed119ac3094eec9ab7e33136c15fb
+B = f9b63a80daec87ecb5ad2b76b766a5d1d12acaf2580aee55289cfcd74bd9c112df6aed8a5c5289759f4383e91f45936df32ca5c39506b21c7d25dfe5671f7a85e2c23eb0eb169d65d2257ba719db23ae29aae6d67b4b50351257f595c1915b5e928bb083f4afab9e970ebbc
+GCD = 668f6697aef26603d17db4fa223e0c162646e5fda615456b827ada62d3d51eb4d48864d795e1b4b6d26187b9b3da633c79fc0699a0f7
+
+A = 119a81ec841f0d8bd69eecc1acb4c237bd572eaf8f966c9018f837fd749f9c5f82f48a57c180b0ce634ed91858e056157ef6d1ad8d0a0ec5200b83e400b0d25d52db788e35e7bd6ab967498b075782bc7bba32d171724422c87a013bcb0e39d2d5a803ad899371d3e52322df
+B = -41e59655552cb7343616d5e71a557eef92dce58eba99222d0565e24be49eb963190bd67907c4529a1819bda6e50662c717e5705c5b03715ec36aa65a6376849ceeaf18a3041ace1f8855864b9756af48416f71b7467dc9b3bb2e19fe1be639fd4bee32e947d83860d207bc53
+GCD = b43c412d3e3b1c7a7c42b3caf2351500acb33e9f49b56d40d6869edb21d870edcc15799c90b284b2f0b92d126f7f01cacb3955216b45
+
+A = -ba162696a00aadde76f476defa27f401a0b1963e7f368acf83f0a707e8b631d91c1abf1a9c8b7af1cf8904001eca9731d43db59ba3ebd7bea7957b2be16eadd0dd73caa85dcff3a55aa747fbc74becb0b7f4b1da30355a3c5de5d7150bc0b2bc14e576e9c4ef1581409e15e8
+B = -e31b40f21cf9db1765a380ee710170531a3c32f8f4e01a5e0a74d5fe3f47bae1a6058b591e69be101f362cdde3a19e53b36ae953eb4eb9875b960659e64de6bdd5d05e800eb64eda772e2766b75297d61d103cf2aa04793df17847873344056e502fec81629c9f59d3c3cfaa
+GCD = 566b2a150c92fe5cff53fa13081c60a5768338738ddcdb041f6254ae9701fc95f3f6077d490cb718d8047d497a180a71761a985e7bde2
+
+A = 22c0939846a6f38df4f5632d3a534e7eec997883242ac0614d833e5e92feea7e16c95a882137516ba604e8c39843f1998b9e83ab91c875bda4a7015c9b17e79674e851466b97ebc7f307771a4bd64b66dc869ff9b08131dda5f1d11dc81a5f4d0376bce0397dcfc8c2b59b573
+B = 297abf05fe0bb96fb9164a13b0b63d70df175d5224071bf93dd039b13e8144830d52631dd63fa76709da5da5dff517b4ff3e99610415e69e95585da111e926497efd1bf3c3d5ede1a3170abffb5a3825440c627fe8473b74f9655f985599b8ca00f530a5ae44678d29dda6854
+GCD = 24b926de88e2b600d3309a45b549a8086258b5aa0c4b4be2b523f84fac28e79814bdd5a2e4385545a3e0886ed4090adb6dab545147a9f
+
+A = df1e6af71f3ec05cde41d3741290f422bc5df92e854880c034c523e8d9bbd518664fc8f2a4eab867f0ecd0e605d904a98e2425dc51a20701b5e0413ba88602e992c7567d3836f38d27402d23bfc87fb602b202c2e15ef2724281c677bc57820a04856321f3bbb414c13a83e77
+B = 196442299f7a20f04d1532e2e78de70a46490c24c3cc080575d06199edbb1f0c315efcea19ce068eb75dc9249fd37957c3674a7015f0ec891b70f7eadf7734a91f58fe4df449f028487d74ccee0ace1d60ecb70c7f85a2477727605ee73fcdeccdd470b7ccb455f56c2341f9f1
+GCD = 6ab2c0b52cd70100f646b475efca7701db38134549e1e02f29ce74d36f80112fc95634a2a83b86f722e42f4a0da91611b6c538355e0ed
+
+A = 33413ba4d0fc7c3078e987f42b271b1f9c7ec0aac62655d8222525a982fc33f3a6c9e8226676ddcdd4e7d500dcf26efbb2298842fcbb57b12a76ea6ff2ab204478fbf64fe90a36ff8232ca8fb2c19ebecf0ff45054c6331b478cb364f837994bc1929efb06600147b220e61254
+B = 2d3859308e7baee210386e3a2b5892ab91b33e5c37217532a63da06f7ee35b18bc320420c1fae42d2bfc2c874a19d7f135373e4e0e0fae1fa5881765c166444d2ae08d7ab1778a1390244b3c87dcebb2b58b0eff1f4e68dcaee5feab491b5cd4eb7544e82f23169766266715ae
+GCD = ec8bb0341f02b244ace6db766a7476d995e5a1bc301d0f2b1d850e3c179b3952d84685f000626b856706f489af54065e7e69a6db64a0a
+
+A = -11d2d9c8031fc9ea2c73d76063265ebfbb0b8d8ab83f485c37747546e65d3ccb109ffb03d92e65b16e2735b4a2dcbe5b2b48e90564bd1fc1e298d5e405308c7ef62535a24b1e4169644c395c9074938c927963ff7efb53fbfbf3c7826c17c17d1a7a07f612348343aa6f734b282
+B = -2ff6aa64fa271f7fa062c486a45fdba3afff8cb8fb5cdd9207556be7dbd1c78fd1973cdc9da00f38af7d28b11f462b487bb080da8507314e6038d3fcb50af67d44493d13fcaeb0a0ab1751bda935b7dfb6be254bb2bf6c40bae715ebb22d302e5136e748fdf4bbf4be5ade6240
+GCD = 467a3efa7658c8dd0b3adf01a5da18939502d17f71d711c75e6de458a4bb53a7179f72caa88b166301216b319d6d7be0c91bfce3a0b6b86
+
+A = 1c5df0689b31df95b9c11fabfbbc11ce0df9c36365ad97b887dc36ba450df64cd959f377c94d12cba6abca9c3f2e9557015a276d2bedc26536c7ef35c199b631fa265f1b95ce36abe09d729ae2468c8acd8da0f7223e9a78805fae4bb8a5e7bfbcf88090dc71dc8f377b273b9be
+B = -63dc6f8b947723444d1f295fe25f55e0e0fb626be88d5329303c6694547dc4e6582a293172437664ae401e3742fa2c0dbc4842c494cd8b7a7f726ffdfcdfaa59e2cd705e176c27bf3cb1ac70c0f4d18d543142954e4eecfb4b92ef4b644f1bbb1bedf26fa1356c8cdc06dbc366
+GCD = 6f460f3d41c6e84f10944775f81d8fc4f14b14a1d3ece491eb781d5f7e922e19d96568779f8977866264fd8eb3e7209f9bd580dce89f36
+
+A = -abb0ff21b635ead4140b48d39df0bad16d7f2b7868ef1f257d47bd28dd162a703b41842cbe56256513850d2ac3c81b5dba11672e15ae6f75680e838071fcdccb9d7401047bd65a79c34cade8f5a21a5bdf0d0b8497091dcc0b6f7059d802bdf4c7e24b534f09ec234c4628487f8
+B = 7f82b461e0c911a23efd31e84491eb7ba7e6b6785b577c397890fa9192270f2c411c89aaa1bb14c14a36506a63eaef75d8c776ba2e5beadce3b9f2a220b2d784d2976679c8b1f5eb4a04bb716b1d00bfc0a8554743fce3f7938d2ea794f72254bfbea51c99592d4fdae708912fc
+GCD = 810540d59b7dc454ae9695b09857c20b648dff676452f47dd390f0ad937029142cf9d6099385e92785fabb29c0f3ab03a74dae18e273a4
+
+A = -1fbb7bdac932f0bc4de7dc7367f328c6a88899d2575e29b7f3075e4b26678e22fea51482f2f85cafc4e6d6349600d7d5529819c43f99f561e8bad73dc6dde79c80a3f56e2f95937ad77134553da9df81b642e0d80eafef05d15968e614181b92022f04afdf7356398bee31761190
+B = -51b1946ae0768a42470cddd66e74af29b62809620ea04724cd3db4d3c907b16527287252f4abcac7ad3b0fb84e6233174063113b542dc0e952e1bc0546d0e5fa1e09a00972fc5d58f226f6ecdc4671d23c5badf45865ddaa9606e000fed506d2b63390eecba015908586f4e4e750
+GCD = 1ef49f17bb05c77d852ecd3f6eed1ac0a3c339282c399f959ae5f96ddea688daf7941ea033a780a8e5184a5a2f61b2c3766a772ac39d7f0
+
+A = 9daf4d175bf52c34ff1400ee9f0d485badd2edcab3500fb080d6c101c3cc315740a8b25c7705681df5f70198ca36fb2b40c06361c5b547ef0e81ffe5f36d9606edbcfa2a0ddc30b8a548e61dbe44cd4a6ddf9b6f1481311f958db289c88d17f334a0f17368db2a2dead43d47424e
+B = -d86e0c3cd90211e48e4d2e2a2c11e3eb29adc31615739db79f56e3b8dda00ee099fab849cb83677f3e624fe65b26a8dd2dd71448d0e7194a70e48cc9b2abfaa73260353206b1569408360a166dda68feacfb92e9f47ec1d0a1eb737ce77d9b61cae1bee202cedade8bc70137a8f0
+GCD = 121536ec30d88330c55c573680ee87aa5c6ba1bfa57ecb31c47877f8403f37d82e9453757337c723ba9f10398b4e8405bb5c23b2410eb16
+
+A = -3f52d92ce99bf4d01bfe8d8e437c9ba17a4783b99f7db254434baa136cd69f62bf23543285737b1cb2eb25f47e82640a44303c308d0191b129d57e78a968f130920228c8157076f5e7c1b378c8a8d52d9bdd2589d6d6ea34f32615777616e2c92ddc9dd6ff6c9488c4d2116e89a92
+B = a72406b7cfe19e33f19315353e84d52092e77a76db1262fcd3b782812faf40cf302892a96c938aaf03b2dafede08fbd933675d759b38fc5060b9e4d18fc6c0df2048c8ea88c156ee62f929621aa58900d9acaf08acbc11f93ddde681833bb382a9164a5dd6628ff9f4d51c38f4fc
+GCD = 23d35279572f58a32bf8c310bfae00fc0a31703f773360784934631ec4d7e45c2fbf183c02db714827b71b5af149b7098b90103337883a6
+
+A = -70625f1fe61ca55407c478e469848c2f57b2039ee1a1e39cecad40ae2ebe917e725c42cb59d873518665842267b2a4f270fdb9d8c7998badacae48e8cfd47d030c998ea19a7cdfd2629037aebb6cd8a3d6c9edbfc4d7710db5b91dcae5e34faa6988728fa048275bea4133ce333f
+B = -13ed950e9b0b2db27e9536ffb1518687af24258846bdf2da04c0001ca90d9ac8ed89bec4580384fb4cda4efaa66b10446486a281eb4a47e1928a2974038cc26f862b34ce2c5e95503b051852b97c8e74c426c3aee5599b126bce7f9052b468319fc9a5b0f4b6e2f0222599c14e7ae0
+GCD = 6a1a9e6107ff8ab752c26c63cfd8db96a467260ccba0e24bb5105b0038384bd298c9d85feca738f5979be245ff94179952b7d1e440402f7
+
+A = 425150f8b168e3ec884aa0d3dd415360bd4b7dc7ad8fa9dc3ba098bcd4b26cfb751c74f65c91d5501d273a9e9727f96e51c93e3be1ca1fab1657c77e1e94ae3d54d5f13b12688e76852d6f6e5142f33ba325d927492e13a777bd804ac4bc55250061dba9d36268f6b8675678cc9aec
+B = -31769d01ed4b7660266e3a281f77bdc710942946fe95f88fc0d619367e96c2e0e2ebb374691bf3e101f4ddeaae4830ffc584eb5bc4e188c7740286ccb5e711154dce18544bcf7e2eedee03456b106f01bf06aeaa32c563f5055cbbefd214d9963990774d7c06b8ba7b5d4187cea5fc
+GCD = 1e57257d1bb7f7da39a84eb480982e2be899c5cc8695cf1689358d498d2bd1ba5c1b997b73f350b9e57d6fbab2cb604a92016893553fc56f4
+
+A = 152064b0457d1f5ce5199ed307f8d6fb2eb786a26f4baec50227ee329542c91931ec9954e9b2b9bfc02d0e94b14496a7f69da4eb4a9ac80d9ff08a03e08ee7769e7af91858d4c91d22ea0958089762994d188429c50ba1c938a79cef47cab55fafb49298ef78f73699dc5e016452eec
+B = 14ecee89eec01811ffd32ba7dd8057ebb019dce69578fbbe6a92bb9830b9a8a0ab706b0db5cdd26c73604c120ae2a1cb0ec5da42d6e08cf00ec261987ad6bc5c40a5c452eee68b9c12eb07770a309afa1bf7ef46adf9ff6c7b33a59cfaa12b0e71110e2a8ff390d8a018e8629514af8
+GCD = 228c70cc4c350368fdab7d2c11694d09573ac2f45a51205a69515ac44c457700ec1a6160aea10e3154a0d75ca606dfd36822b18cad603ec8c
+
+A = 34d488fa70f96c8550f09be15c8183b9042dbddd18e3a5eae1b749c43f686a72a74d822dd632d05d00e245ab255d5acc46b867b1174347db9260e7cf38bddc640bbb2e1ea63384305ac6736c27a8ebdda385a1e77d7f4830d9717c50f41b8eb83b6971788b308f701a18267674647c1
+B = 6342c841eb02448933ac12e4c0a4c947ad1522d5d9690df2f795e983580f24f3757c7f46d62dd199af7cd2b199c518335c8ec60308c1e024831e3c8129a05a8cd462f72291a1036440420a5dfbdace7bee8e901923a6cf72e91e3b2b8a98140488b1153057dc3324cbf800c619501c
+GCD = 26d8a5a1b445a70749d544168eceaacbc317f7cc9b6d299530dc84c17c032626645773360d62790cf387b448e854b2fe69396d9febaabba5
+
+A = -7d18102a1827dbad01bdd6c7503a2c648eaacae4d59f20fdcb5c4daf9ba50a061b51f2ff2e8892edf8901e7f134a2b41befc218ac3791285f4ad2a71b15151eca7bc0c601964b782aa1ffbd8355a07d1aee65aea46a9ca0effa1347a352510f09307f3d3fb9625de9bf220bb4374931
+B = 13d289867c1c9746429d4d0c76197967677d11574a3d6ae64cea892eb585d6a075f62c67e16ee4eb57831098244fed8796522c9c54bca379d387377b07394a209ac4653024019f37e27aab50a5ed93fc63c1770cde0bcd1e17f07797348a319c08cfe29cb021232a12ff98a7bc437dc4
+GCD = 51eeffe4deaac567e17ead80a7999402a0e206d19d2989ea9f3a3f83bc0fdcd268dda9bf0e027c1701b263ddab78ee3eb02b067f871b3fe9
+
+A = -4d03801708304d7dc21b7188c45b3414ec8032fd0ea7846e697122504426328eca1c26a4afd772304d8b0362339ffd2643bf559b426bb8d00af810b4831f64e28094c87d687b9edc02cd25cc3d4f57f5729211e535d199dca7eac80f627e72b7a92b460fbd70f1181791fd85ce8479e6
+B = -20b0610adf8dcbd0bd4a5378dad5078ee9dc3530a4830eb97dd5612f634c706ca5b49a44178c0a6d0c8c2c4ed495a8de503f117b67854cd32ec4dc8495975adcc599809344e615271413ff7032d43e9972b8442176ec8bf92da77ceb6072d95a2fb3a09a41225b24b50e48329b718696
+GCD = a191944a20a82bec1fa74edd6d9beb50d804b4e34e407a08069b12866ace83d284c0fa7c43c89e08f6b78fa7fe823dd1c5e64b42ebc1b682
+
+A = b299f79ae9db91aac3bbc5bf15ef8304314bfbfb9fb9c64957a0b326bf53969e8464a36a6915f4d03a7d1672717153ed94f6c4961887a453e5144f0f3522fa1032b516293b1ef8e336e10fc25c9e0ef7592ede46ca2a782b9d8943599b8187c4abfda919082ce2954d77068f9023cb0
+B = -fe2a56f915a31d8ac21e8fcc6267fdf5535a09ac4d600506c33758b8eadd10962130d47c149939848c20a859a5cb284b9aef71eeb51398b47ea489637c68295a968b572e179445b0b29ae086159f6c4470983f83d7f3bae03b6483771d775bd415c3872dd38b092309f660e4955522bc
+GCD = 344956c7e865b221e4e877810c66da9ff1393c6c2ea44236fff666255183f925908b6a81ec9947f17cedc29b2eda873703c782368b0a41c1c
+
+A = 21cfcf98fb4ec6038090493313de4c1e8e7bcfda867710ccabd5b54d33e7f1016ef527ff0745c9df0bd1f1665a8a4cca400daa44a69f89aaf21503b264571725680a8c6b13df315766cc3f721ee56a5f5bef3bbf85eb4770924950f9efa90d6a0275b6fdeac1b53fcca3f98580c977075
+B = -124cbdf72fd4b3a7bfe1a0baf4eabf0a5e6786cd0f3c39d2bbac5f32d76d937d035ee36ca6da6178ffa3922d55eae51545f7712e77667e4154c54ff1e9b7fa2b3856002883ea4794aab1efa4979647dde79befcba839d49834cc7a4afaa7cf9a505983cf215380b5ca5b2bb07380d1643
+GCD = 235aac61a6f03eee5ceb6aa8ece87f79b7c3f6ff596765226985d4f870a84ad61ec3d501c0e4486f1fc65a02cbbb38b97d16836d0b3722f8b
+
+A = dabfb52277153dd079e78ff48bc86e2378bd7c35f9c497ca2a58c1a598bc9006e1fc39f7780d45157f07951b0baef0cb73785554061295bb40bc4e0366fc2db7debcf25950b5216e56100e634a6e099d0f1318f63d1b229059d7fa4b08bfa765fd21507eac0a0ec19463fb47ad53d4350
+B = b2cff63048095d44bf3c30c170c9b26356c00798065191a4769e61ed7c1bda05351e001bad901f7af6f069298a8bf232e26853707ee4df12be95237b6655b0e1287e82bbba085b1fd11514a47a87993e76fcd243e1ce749987d1f207d42b204b114690fe649c7a1e2bda8cbb330a1f2c5
+GCD = 420c41343d013942898faed835ef8a004a630f47818afaeaa0fe78395c1618f6867bb14c654a1cdbfca7668b75179f4f9f09c72c01625ad35
+
+A = -592b9ef205ce4cef0cfa8d53a550676c30be5fa85997d8f6a5545296bb5d2c1037cfefa15d7cae50896415d061ba41e00364845f6d48688f0be62c6d88cc74ecb0aebb8d8fcc0fd68bdb49ec1d80c936f707e46104ba1deb95d8cddc248e1273da2e4d0cf76ab0e9f6058723ee57317412
+B = -700104497e0af12aa11807e6e038fd35f916e3be0ab45d6dc826b52b86c6e43ff208c627e6f9674ac508997a871f265fd4f6284dddcf55053865ad53a2e4f00c4b1415d6d0f0e666ecbb858bc71737e19a525c5719ebc2265c5f96f4569c02422dc778e11c740027eccbb2b26f9d54af3b
+GCD = f41da4e774c8cf0411518430d1054e870d59912627a6071b85a3192da4b53be9f945f011e281d8268ed10b07542166b9235b50c1c27186cdb
+
+A = -127986f90596211f77b9821e753c5022a34d784427b4a4f30ceddde83fe9d20abfa8e9a730e28f65f9486bdd6d3f93f54f929af03766c3bde25d8fe4c881d731df113b212e4a5912df537996428f23ae0d2c731923a6780b556077c52d7e65a9369473013457e3fc2da148c80f55349e85b
+B = a0af148d46f9a054a6a2d77b522194db82712645cbeb6cfa6dcb60d658642b8e79d03d573f174b414d2b72052e576ae17d4d6df311e1939c749af34b6dbf45704c0243bc304018ae1d4408dca0f84ea0fb8b68ba142cb25afc1b7fa5d2d27697d05d8f2b0f48a29252e6bb668e554e47b2
+GCD = 3ac63917697d8b851e31e2707246c993f3905ff5064ea40b48998af1a17b837cbdcc36ccb84dc66b46d568e1c86b48e58e96370c08fcdd64ed
+
+A = 21800697751eaabad7b50a1bf3a886531c25868f98569111d287eb0acf3ff9761da66a855b86f1c1141aae8a024ae4e9fba7bcf70e52d29016a46682a3a65766fb2de223acc3de7f23b27d7f3711442f969036e3280a9fd0d5eb687e268c89b1b06389e844e9dadd3ecd0cbb85ed00e66f4
+B = 50ef0e0ebaeff229e3dcac026ba0393fd80c688141ccb394540c8f7aca1e346e01e51c13b8e577a21c81ab647dfab32fa891b208bba4c5adb62e1caf925481db460d34e3ad2601c3319d337072254cf9cde7a686e6c3a3a68f8296d48844389c6ae5a4f1cf5001b228c86c67c4fa61942ac
+GCD = 3c0964d9a5bbf5f02fb5f5ca166c87c2d95fc18d341779716bacb3bb6fac8540b89a7393bcb38028d536abb80eb8a6231ebc388de445c0be74
+
+A = -9be4a14d2eb6059ce4fef51e508f9dae6ed8bea2601e7af37d08ce4a25d4e218cbf6ee64542b15e63a4e9faa6d52844ecd5c0db9cc6abb4197fc391a6487df183182edb387ca71db6bf2ee0cca0c95216c61c3317e0cb2004f395ebc418b772011e297afb323ee66655a2b89c557f3c22e2
+B = 142998ca35994542ddb4477a2408c608efae341ae411f9713bdd6e2655183cbbea4f8d20fdab6dba1d842e11d78f7ff6a144996db296416dd1ee6f7fa6857e7b8566d412cd6ca39ed61f5d40e2db3eec7fe8932d71392b239238412bf0d83d7026d912fd078aefb384fed5ec686838ef442d
+GCD = 75b9053c7343b6dd11be59f1dd9746cf1884b74031ba76b3dcff3a23048c77468950c08f082708bfe8d71ef6d379c69c5ad93d5611cb7ffa23
+
+A = -3f7cc2e64b2b17a3118cd9c6c4a466492bad86b6eac6d58539112e7ede1af981c075f2804db23d9d8b30144d7028dc863ea20db0acd2787d05ca6d36010e28683c95e496c96dbc32cfa2eb7a516ec5b02093fd4a456673c8dc4491651d7e6fca5ea099ca84c82af6f4140e0185139cef5e6b
+B = 1cfcd5f34bdd9cb4697c8ecc165f825dba618954f95b24b71413a6a40894a09d6e4af422e8d0f8f681eab80629be55c0f3a728710126eebe4cf08df78a8ff5eeff12ef1e6558ee05a68f23b92b41e973ed4b72ace6c27519d860d403c3c8a50f6c28abda9e112dcab848a7ce9f07896d218b
+GCD = 8f94443edcee33f32a03e4d0ac350f58b1037fba3c577b68536338fd921a14f16031459eccc515f775677625a6cc8460a03e3cae9071ec4389
+
+A = c87607c87d106cd834f47c0b318b2cc26a097d867e8a2d99a0b57dffbac2a81d9e024ab10975831a2442357dc6cf51db46d0875d26c47776a4b7514e04834d2a7415ab493469617ddb3a3daa42f6b63a0d3945fc88d966e590b969d0d0166003f0f5b87120b82a9fdc2eccbea167263658
+B = e0ec85385e3444b998d097b598f14a3a8bb91507df297629c9edc8cc652baae04e4d2ed2871eb0350d5601f5f005e184b3123d97390347e5ceda80c50bf866dc7f5b467646b443fb569be05b982614c630a6b5ddf869067bb6b00b7c2685a3c1404a35fc5d1adf9922b0a77ec487f6f37d4d
+GCD = 1ac13ed8468055875db58597a872f1923d65aedb6d06b7d779dbc5890815070172a39b7221e701354db329a1d6d229fab23300227bcb6bc7299
+
+A = a8a5ba7e7aa9d60ca7bd3225ade327db4e3a2860501d0c06c2f76ad323055c4c93762c9f9de5e4f91f995f8c30d0124b29fef4b0b5f044e036668488d4524b51501d160809379eaadb2228fa7c72f12d76ad4a7337e82f80ccc4b12040a2dd2bfa6b04b3bc2367e9952b1126bb41b8eee63e
+B = -4b1addced3750962dda3d623895550cdc136a3d8735fd5be0042dbc9b83266f2a04afe7631efd1fae63e07b9e326247d742837187c8391f18e90fd1c8e89ef56d76ef33e9a62d7dd382145390e45d21f968a5bbb98f137e8bd4c12c05ce198722dae28e6303a8b06410964e72c86456bec748
+GCD = 26a41ec2520d0e53241e1ead9dd430e2d0f463a49c2182de48ae651eca7beba2e348227c5de45971e8b50ba1aa77530fa9637ad890fa5526282
+
+A = -74d746195612d73fb3a87bf0b0aebed276dec5bd53b3f627757dae7da2ba904bad275b235fc81cfae0b620b99f8318aecd8192e0ed0d619fb2cb3815ee34d613729662ef3871c05ca2732553303473b92cf56d769b0db68c4d4203b6abc5712f76fb84d26a9d1b6453eca768ca8fde5442a1c
+B = 11a3a2a590175cfb9a35b38b8252aacf833264262f8befdc6d791ab33b7607125d5f132cd91318c9a0f7649d134dd8bdd0d203c52f0496844673434e5fdee36b5dde2d443f120addfa43509c3b0b1751ce854e8ec38ec97a7b3c1c9a9ac4349bde3186b5c574f710818f03720c5ec96e779894
+GCD = 61ec699a16aa56f2bbd6d54545561c739e074230ed76744d5a6a7d6aa117b2b20913ff1ba1ddec41ff4586416c2c525e5b70b2d403e8fe3af74
+
+A = -6ba555e1464e72531d2e5f1487352e2b2de72055adb71cc6666ba9df2208fa8b1039304cb0849bcb00db52033428c7f269c6a5e85ec8601a39918f0d7b01728b47133ea490153be3afba1fe7ec3fde13e0cd4cd9e073fbce2cedb17aaa89e6744ea5fee19c67de63db0db704df33f711535933
+B = 4b380882d27f3eed43f69fada8e33c35d455806352dcf6368f270bd7bfa3339f55c7cee88278b7dfa8c353a019da07f9633f08b536b5423879e1e8a00a7b2990fd3da07e0065fc15954dd625e9d5f9657611b80e953f7ef1d07d09203efa52ec0e94fd9c4378306339e2eaafab831ffa44f3b5
+GCD = ede25177adf92afc77f73bcd13c27fc426c0e71e68c32b3626c1c85d88a3f61c5b613aac5550d234fcf45c0ae8852bbdc809d88baef414f950d
+
+A = -1050f62a8d1afa340bbc96099ad58d71f3330761fdb0a7ea85d0871cf15ca081d7dd3770864caf8a50109827992e23c6de993bc8f2753780379ab0bc6a8d0798dd8ecaa32ee20dd68ef9b3aadac8a6130141b1ef8c4b4c2b5a6b391e027845f866b9785eef0dceee47f8870643320f1f913b6c4
+B = c00aa815a83d0697be1ddb85f09a7fc2163660417e4d78abb898cb31cd8392ad78055a819e6103d0f57154427a7c17012da60a55c00e0e446f6222cd66c713432332a5746fbb1357cf402bd324021ba60579e8569db17cba9b0bb1d2a3be9979410ef3c45dcf1c30bd51a8f0d191bd219f84d8
+GCD = 15f18faf0ea0bc24c457e024f1732f27faa740b800c85eea7f33708154483dfc13bb31bf235dcbe05c19360b138e793149c2cc867c1a3012c1d4
+
+A = -1e7c9043f408ba66ae9e516fe04d091f1b4077710449ea1252b6079292382674cf42360dbb9cc4325fb2904b959f0f96f3e4c189b2a54c5a7b2bed28994805dd81ba88ac42f5e6d515abfd23c2aa6834c52942c4ef351e89597d5a746eba26922504717aa8ba866d596d3f488df76b319405cb0
+B = a39e070db3d12c0ad6d16d0f467743e93ddae20105faf38ebc0604b26cb72c8a5052c580b6a7d9eedfcf6b4dc0c7bff0496240aa93cc161887361772dd917fe73011598aa615d074cd5d531819f8371230915ab0ffda00294c2bfd685d0f2af6a936b61442fd989daf26b45f84c613bd49fd8
+GCD = d75b588b75784ec3f5f930c160b00c2e754134d40a287a0055220c2d44e9639f9ae678260e08808da46da6168aa0adfba9efdf911ebfd025f8f8
+
+A = -10c2cb320c2080bf10a8f7d264c1731aa43c9680e43ec0f0db17e95d525e77c7abe8bac779013c56e7cf9c9719e8662e56c7cab18dc9bc0fa50017de1eef3978715253ec9572e5d25dd15116aa17b21afe28b1724f7493443d811cf0413a8bd0f19083d3924d4f06356571631b00bc7da09e5760
+B = 89143b96367b6ac6575b3b43af2070f5354b00380e76d261029cab24f6affd0cf0ea9a834bbc066e577ff74c0f3b83aa378268599ca1dc6595df5b9c1d9c384c069825d541167a1f8081424ad4a9c479ad17bceb48c6809d6b6087b3b14f7cdac43953c5e43afb604f49017582c80c6e237bb9b
+GCD = 479a4629dd49cd992df32e7061b6e633d5b36f7b0bdf46e5ea1a58957e768322b6d50dbb7cf465b83970dd1d18db4425ef00f4fe15177d19a741
+
+A = 137c584c2e3e8f22402761826526914c94a569bfe637b4c445db819af68bf59c9c4d65f500b5e217fc75a40aa716f53881fb754153353bad32708b27e09090ea23655bbe48eb146fde3b4bfaa18ddd0b0535df0fb271eff6733c295a1e88085504a5f19eade18cb7d6b621f91b3dd0d922e87b79
+B = ca574b12fdd29f9efa96a0bb6927a1e6f5b6079021d272bdf0d3af8ce5474cad90858d5ebe6d4b8ba5bb22354dc3f09e7c02928adfcb2135a234f22a33de4d0c3f6dd76213246471aac83e35433dfaf076aac8980f59395fb1e308b48d7802978a9dfe8cdd6eaf7689a140577f59af3e9ade8e4
+GCD = ab2f03c36ae261dfe73fffcab8220364db9d5d6322eb47b62f0a2fa7bd7144b04d9d62c7d1f2dcbf99678a83dccb63767731600ebc4b151213d7
+
+A = d9bf4b25b423b8d7f918d7c84db26043805edf5dc666d50e64423204d034ca0e04c2196ff6e50e6105d82ed70898e4db5465b94df304047679322d1dfef4b9ccbb86266c197dddc6efd7cdae3f4078bba6f516581abe247a86402e9547017831a27e2954d81af188605a78e9cafc4cce01bec55e
+B = -11664c1ded93b5b17125bb9682cc1022ebe41f2319df909435dc6ed611bbd20c80ef7726a86e7a66e9e924d494ced304107b3b9728a2ca0d5f23ab395c464a26060b58b3c8efcb1beceafe4df58a4db516658b67e212bcdc9300878fe0136b5887c9e7b5c2eb4f1705127f8209a7055c505bda6ca
+GCD = 2dd732fa3470ff80786adb0dd19531aa95ae269ed7156318e468a6e3a4c1c8b4372f43cb7dfa79fae8aa6311f32e4a4cbdaeff248dc8d7ec15b2a
+
+A = 36c86a4c4768f05f89951d00fc1599efa0b6a9a327dd5299218bfcacf8b8aa81c0832b5f77ee061c25dc5f73255467d5a1ddfe05320c33b777b9e4bd5d09bfed75105049e3d55bd90e462a42471519ef6227c7a4f98a3412a89ab522cb8f2e37c72a11d38bb2e2142e2454326fc6707d90953afe0
+B = 3cf3f312c89d5154dc4372e89fc024f3bcda08679974a475e02b32e5892697f996881842532e0adb07186ff59a76ccd64b11ce27c2c54b17bfc3a2959e58095d75128c3cb7c036581f7d74075100a009f52fd16281b264a87f32df8f9da2efe5287eeaed40a7292e0efc12d1ee73fedd4deb23f4
+GCD = 3ab23c322e9cfcf456755bda46951198cda9d5459a6177bfe06156d05d7f7c817fbe1a335ff09e9bb49841d1e43239792b0141506080b3eecb38c
+
+A = 196ce36c230e58ef3b4567eb4c2a57c026af2e65c3b63b3d34b9410f2b8bb210409f14fb93aaf1028066239f18c56d4b28490acff831069dada4a6f93f710ee20990ec07bf754bb67f67049f83fe9ea9d490243449454e12cb73c9b7c247fe03b93a5d95802cef7c2c700f2e89cc74d50ddec3900
+B = -73ec289010c03b2ca31ae5825b002f8d2f8384dc674d53880a50e289b84c1c1a64bd78e035f8e952d8e935332d271ac50917603e334c4ddcc74c0ef7c1495a3b586a63702c5d34f06db2b36b23150845b659c37b397d0a4c7cef144178a386d28e5766837d9a0e374072a902e5be3852ce0519380
+GCD = ebc5468c61f0fd4ea0aa687dc3390778f8c09b3cb3e95a4fe30a7066deb667db88730d6331b3bc1cb47616a46a0c8603a394601becd29a815ef80
+
+A = -2e0e5fc49093a906628e9e46db3e1d740f72a572cb3407749ea43dc32be2ab4a0f14580c29d1a40647c2e778c68bb49cc0419ce9de51c42f2bbd77d64344bfd7f19af846f1ae396961a5f28f8cdcecce1a9a7e1a3624757a75127d047bf1bb4d2ac151760399d9c64d856a89c65019d7a057e2cd80
+B = -11805337a04695510025c7c8583a3b4e2ff969ec75a899ef5f359571c49467d2509faa0ca8009af84798da75632607e1d181a510f81d3f9a3af6b5cb9947afa71bbfc3d9f715968a85375831ba72028299e33f7e4f59b212079cf2edef2f5e18715c4c1e77e73ad8cb0ed235b73398798ebc12bf22
+GCD = 219ecbec4d671fa5b9eefbc8a0fc5ebfad06041589134b7f8559f1c6d5d4ec9fcc6e2fc6793a17323931dda067420067b08eddc8716cfd8bc7d2536
+
+A = 1698769009b130a86faa6cb25aa286d770892edd267adb3b265958c9a49dc382de5361e9ccb26319cc27d16585ffedf0637958738ccddf7bcb5280e45a1c323cad72b34d022f59b7ea813bfb650c740ab47092cddb5ddcadc880c9e5c3fe5bc7c74caef8b88b264bac3632a9527e3834b3290df6403
+B = -a23b83d8eb0993a2a9a6011030177c675fe0cd8e0757e502082fc9384a39c2dac8d4056128d89c7bfc509ef29a818b3ab9da66e781e28010522ed625cebe4172ceeabc0a8191c0db4f9e004824631afe268af7d44e1883e07f71634aac006c60b82898b932e40655d87af6b8bc72fff4d17172e043
+GCD = 184b8443e4a246d6b8b3eece09c8a2f46826476cf5d02645e763fc82d915a4bb2c90b33e45e1671696ecf6c44796d80d00dadac6b1237b76096249
+
+A = -40f89a0e67f77eae8ca0a49f0b66df0a90d75f7cfd08a294cea5d594daca79c13f5d4e74dc31554daeec693ab78378f5cbc2c4853809cc485b43eaabb7fa9265adf3ac5497adbcf2bc746a5023aba4fc8cabd28938a1460b2ff122a3cb3f1c0b831a86e5419e106ab1b4e3b1e38cd9056f36357b9af
+B = -362fefd818d1c5f2a76ede54d0be2728e32cda5fc535885d8f65d90e953a58808d43ace7203d95b125f1308fdfeb00ae2e4b2002c690617fafecffcf5cbdbcf69378418fbe71ad90956e358bae6a0d78d4300f8c40b2382348bd76246169081233991d7bba235c4415c3b640c2df06c8cca611aa8e3
+GCD = 33ac061690bf4548fcc29a05f2804868dffbc0ee311af714fbc873c74b35ffa3dffe04b649bfadf05fe571afdc4bcd1609fe83ddf576c5ec2734f5
+
+A = -15e1f05c1381306b7501c0fea671598fd6cfb53b27778e68e40ee79d0b3ad33d3ce5123f99c1552f2aba31054fe9b579d3d78fa63619c4d90cbb652fcc2e68408046acb69cb1a7b57ba420c0ecf57995d3fe1b970062f17a1c35449e7908da32875ea9ffa886a373179992c9f57c919f756ac2150066
+B = -d9f6b2044c6f95f5ce487ff5cb732670dec617e3740985acb5996d385ab7cefc4f675495e353c7ccb97e8902a891569fc7477c37467ab90236cc0a5e7093f2b477ce37d76dee2b922b4bdd05d4bb214626eae837e72761c32d6769ac9c5d967dc99c4736349ac0ef155aee59cfa4140c33b7504ae5a
+GCD = e9493f51c5342ce3613efb829673772a28bd4425e268684c0286382c1785c1850019927be3aa788ad96ae463162cab7fabd350721f14d628902232
+
+A = -2038137c239f3a7f9e9d2ed434c2f9492350f945d4a4950290df0a156cb94ef41e6a7942708b49e258e9a614cc9dbc7f48b1757192b651305e9ec29677131c636005ce1ea36d4d4d7fc32bd341647f4f842ff14a78294ebeb16fcc44a9b39c69a530444bc0e52a6d79143e846d176de1a2744273d910
+B = 4865069b26c718f0610fc45bbd1dcf3d3f9fdeecede27bf6ed8e0be9a8b77f9e1313f17381120d5adf3880ca0a608308b238d1210a2a7af3e2b4acef515991a4478217848bd46276b74fdcba352d426e64d36d4df5f6a89d565802f6f1a6bc5345b5a065294453e17750713b6465e51783632fb74298
+GCD = b1014148a7ba22acef4eae05bef50e7e45e6ccb04a459ef6f54fa020b8a539f9f47c6ebf79d343af5da7234a55ee45d721e4d5e0b798af53d5a268
+
+A = a35858daa90f4fe0fbc8972983f24fbb68efd917ef8ae21a8d2c9d62d08a6e5da13c5cb5bf72382cd411c5eb89ba63edb54d5b34a193617e6b7149d94479870c8c1072acde2eb9954b51e628358246def27e863efc55322a28aa2082d75c1865a0c7e128a241ca0dfc97c6a6956be06ea8e8477afaf4
+B = -72ab83b853b1fc47ec4f0fded9a2c281f3d4177415e2bec33026e26f3cb8e88200c739e142074d9714407b177a36dcf3c36070063d9057501109ed19c3db5c5f97bfb14e4284f6fc6bcbc9768f4bbfe1c9ee1c3091445f862fe56f8e8bfb8db2996b66e647ed728c2ba3ac7c04938a1bc76b98a31af0
+GCD = 6cefcda22c30ab0fa89b4d82712356d12f5a2672e0d31687cdef039b9f2292b305b847c330e759e3fb5c276ad29ef38f2d60d790e70b1faf83d4144
+
+A = be345e8fc34a17284af741c7cf0d885d1042f48ce5e6475913956cb8519d3506e5e071db788ff6f81c9917b1d0accc7319bf348bbb399ea22d99ad96c76fa89d8b6d4a3e0ffbd22502e3b018cdeb4debbed4269ce6f74dbfbacdc3f83632020960e289f247747277f7336b589cf9f83854553a5bb860
+B = 34131d13ad1fb2c3621f67718a324c4db373141d906802e673bc0229ccb5e205ae6563848fb218d6ef1b1cc97008836e0eaa6ea7c9fc00ff712c3edae0655ee7d58d7ddc03f8475c2b5c098fbf17de0e97efc8eec654af861861c493b57b76d3ddf2bf4b40b8ceb0e2398006c16d81b59b050a1e14c78
+GCD = 2fcf3e304ee24d66dc7a8c3bcf52eccbe508e3c12f1951407aba77cb8ef367323fbbeb9b7700ac96ef08909c94a0154f66f332ad480103a7e6d8338
+
+A = -549d7d178daef5cb05e4e12fb881d3c0a49bfa37eacc23893292b7293082eb86fdcec97745af18aed017d7110e839b3dd907762beff45f5630a598a52a893e726d229e299c4264c0ad2fc4f54bec747537cca1a599ec4951f94cd343434b0bcfb772e91431e22f2892cb280c7fa4b43c5f3538c13fb4
+B = fe8666fddcab4c9520dca891c1757451b778591213a1943ef85f9e23f85bc4db4e1b0d5b7cfd354c84de41c675460a7a20e934df07ff30f93ad00a96fa9990b88caa4754d17429d04b8f3adc29f9d0682cdee2cc783d928cdc154e1b4506d6ec233bf14d0a77448606adb3df648b41472adaf6e86d73e
+GCD = 4ff01f35a245dae14ee3fba70c3f06dc40007a11615dde076a13ecf5cee7a29bbdaad794f4801bf089131614b7a7b731e27c370b11a314ffe2c8442
+
+A = 91fca0655d985d0a48f61070f899e9b1a993730a4e050df46dfcbb87853657a4807c21c14027bb72ed58dee5fd378295b5337f67070a9dd10162720f52da293f28f9f821482ddd2424a2843a7b71011ac40b9e9a024787563fd3bad45132080b8b7fac2525817a1a310fa74e4e6b0164a3c2b5a6d31f4
+B = 49f9fac8189229122779f80602d45d2f114011200d662df9559be0517551f2ab1ff7c4f8cb40ae8c453e1b3f17a8e1ac4ef9614438b8e65200b45fb1555a2f656fd2dc4e5b70b1b8aadebca59fb7ea51b4d28478add3a75f04239125822725458d404d9b0c12c2cfc7e3e3296138532310b7c19a4954f2
+GCD = 9c41888508264fac660b6f13049d0d8aceec75df39233f761f775845fc57ee9991c6d643341da4397ce7b37507c485dab704ecf30fe3375098de4a2
+
+A = -d5636b21254fa09a4afa28c410c7f054d7a343c0b8b02af5bea4b436e50a7d365b530f36a61b81eb888c0cb117e4bea2a7080f238e0337747b3f6d2231e229b0acaeda580528c97932137942c84c5ccf79a88307ffc885e16f44e38b6519daea34a9f771dad78cf678a7c97ef6bd02e9b7b5cccafc3df4
+B = -b4bd518003cab694a4a5a19fa86de14f2aa94c473d24a1daeb1693477258962812562228dd9d7ee8cfe94d26296c081b455bb5387ce8f2da1d32ebd6eb6304e766782986037050f275f2d183beb5193f90842d765b2629107dcfca1622666e5908b0f1faed4fe4026f305bc59e64b8a3fb4ced86dc07e6
+GCD = 2d7f650c9ea137da64ad1ea979a9b37912f8e5460246790f9863c78664ed042c024d22dad8909db33925a5f96ad33ebf72d5fe5be8851dcac662564e
+
+A = 283369b25b345a445db025a9b3ba8b4b16234dd03875c5a3ac716ee7b5f903c7687ad19181e7e3ee928af8d4d29f03048172b84c6906570d27b696d395a16d0c42acf513c1e7ced504cf4f72d057c503800096bc9dd79f87ae34bd734b60b6a9939bbdb30e0268a5968d22a82a258fea497449dc5ba456a
+B = -216cae4a75235a114aa89a9b4d6a5593f17f0b1990297215f213cc9e7a54c67c75289a09db8fcd668d75fccaffc36600e4030b40511e35b4d2c9efdb37f81dd082794d6d14c9d8d8651fd279e12262571731d8e1aff6bcb63d789f7393d1444ef19121755e25dca10c0c21844e16d0315bdbe1f4d2b0164
+GCD = 31303a60581a3924d1bae6e9641d022063e9278ffcf08a2d1a34b65fb9f9578a6f7d4e9b87fc81fd3020f0ef1eb69ddcf49132744d25c096c0e5effa
+
+A = -128ffcd17d717821707bebb8e9f981bf88520b709964c42ed568feb9e18a53c3fcb2b2147d01a64261d31b3c1b7528c21376e8437bb1d255502785022bc3e0dc8787f73440b91090727a51fb996b61b9ffdad9c43e913764839dd982bb1c9741bf905573e70b6e7b0471db298c85e44ee74c7412c06b59d4
+B = 1a771b29a19e8be7216cb670c57d2801364f682064a0bd9a3356a556da2e47b7ed08fed6b7bf16c53745d00ed7fdf6423bd385f72de2e396a1322453e96fa941906ec6ab3dde3c21be503025126d58559495f09b57c38a610b9d90da1e0d857ebc8258a43544e617a730b3c97976492570f969312b663aac
+GCD = 2a4e74db8109672cd0e1b4c45f1b59f67a4fc4f7040048f56063d6e844c5d49412221a155848dd7da30f52d888c8f81639dba4beff684c1e22c786c3c
+
+A = -4e95166758c14a62731988165c67fdc3bc68b02d52e9af110c0c9ce4e911196f03217f8a7d54a6d12a61972ca1df4c8bd253674c847ac159f64f91a24f8e832309199736eca41e407f18f2bf18ebff9fe53f5de87e8d919d544150210014b7690bb006b09821d1bbd75a77138ca8c8a8ff1f5448f9147a88
+B = 5926e17df70df20896814a5dd08d6cf51830019d36b136c009136d518646fd3a77d4ce7dfc1aa9c33648b7946aa65f88544d608af691914d29fe4c29f60f55e58a2171e339333fc32a31edafa568b29590f6d1dd29d842774eb6701dcdff04a91e58d2826c2f024653ab3c92dabc011bdd0f76c03e6893f4
+GCD = d575d16c240a93ee16b05241c69c85edf9d11bb5a24baa9b06818a665c1110d6a82229312da519ddd652ab003d10c1ac442e314bebfc786eeb73ad2c
+
+A = a2ca7519384cb080569980a1ae22c782d773d44452fa405dd3d606e0b43911f82b8270ef948385f814e70ac095eb0def562389a867b042d3348da5caf5d584d189f7f26340e4a08e12d1b1206be7abdabe6ee9c9d0d7b577dbc20f8814a7e04232a8e6b61f13f3cc8c8427003c78f370c45a7b325e2f1d4
+B = -12a401e8d906beac59312ed0cae4dd6ce6a745022a1a704fd492541602d38d2cbfb6443c77eaaf9cf1ab4a2327bb52324be9381912bf538dc9e4442959482c40a9567b9fa6989b652406589dfe2f02b08ccf39cba85cd3c1061d42c905fb369af3c764f30cdcbee7ada624cf5d381dda68ee2dd203e98ba0c
+GCD = 1dabe7e5fc836920b45fccb0ee6fdd36b9b2f5460eff40980cd013c3adeb3fab941215034d98361fed1f3210230189bc7536bd3eedf379e1dd24ab5ec
+
+A = -19c0879ba44d3e3972919ebc0ea6b242b121e593e817682bb419488717726083267cdfb5d9f5f4097d72877b935d973fb224fc35bfa3bef5950089766810e4dbacc04dc528f724d5e848524910a69a01bc899d194de5e3cca2cba60ad86d2bbfac7509d61b8fd4469b64c4ac1458cd48c15b6f987f992eadb
+B = 2d8570618517ebedabe68659fc76b01ba278df8328d75c0fbdfa1530c21910f4e43ab6230717077c8aca4f418270dc8f290c7310363ded726f66de3c4e4992f76c9c6c26de623a32df133e006f5455bc5c72061e321e8d5d1469d937c2337c1299b5ab3822654cea10a503d1dbfa869aa4ceea8257da66bdb
+GCD = 3594f8ff717c30f4c8aabe4dc8086b79330bdbc7c10aef171bfaaa28eeae6663a448157adc33004ee5e9dcde8f2c9d16c43d0cda95b29bc75a5c49923
+
+A = 45896611f96f24b3765d63aeebcef9dadedf84e314c926d5c782da595c2c8bc4223288f616f3456c64635cf84dc3649c6040aa993d13f705e459729661e3ba0bf02a25f0f9108d47c630e92824f3ee76346c7d76cec4d6fe57e0afa67aacca8d534489a27fb23d10a82a44b315b2de982600f6567ff92244
+B = 12b62a7a4e0c0d3e830ce467cb87435d4b5162b780e13e50301fef5c3fa3a61af15d7122ed241b6771b198bdea5f3a38525f94ad4036dbe5fb86f08e40b5a9e0a5cac30c46896745afb52e261ab50b5fc3298e4521e7283ed210f697d5f0e0a69414774e5ad82830f1c56b154720b1c27946f49c00e56d99a
+GCD = 4fd3c3efb8a8108f78a32fa3de1dad6eaf9c5078dd2985378938d6c3f8fa9ed30a2cb072d8d1c430bcf6d45f58e4a6475870b563bb72b945f69fb5682
+
+A = -203c075e25bb76ece9bf8441de82b86e2ac215f4e4217894709b0256819b438a45051838410b7c32238cbb62785e3975a91d77286d584723fb3a0f598440904af00dc055bdb1931fbc8d3fc940e5af8f9d9b159bd2be17607be1d787c411e25b1e014436ccd787802474015c78a49a6e05de42c8d214722814
+B = -5410706a185e0febc19bb3e106d146c1cf63f61ab72d770ac9048c6069c665423216827721911e7c2f2ef6d0c9f2223506e1d3ae5e0a7ad866d7d2e2d1f4a3ad7f966f1ad2c8584146c30a5884f3c45caf60d784f2544541fe688964d3661fff7b03653de7b57543b6990ba4c2201b738ff6452762b65d31fc
+GCD = 1cb76da3e6d75f90901e5a968d994d467180f26eafde55232c8dd72acb136bc044b2b1a1fce1e93e2ccfc01d00e541e208b8092ec77b7f1afce9f6d6ec
+
+A = aca40d6e53c58740ecc2d8e3faca8590390ae0fbfc634c065ddb53062164cd646ac2aa4dcf6107d9a6c74bbc013d8da5cd99ba62e5e90e6ed44dc1a1ade96d402d297a265a4861c2d32d2edee48c02e20a38eef1a7eb698661a03d5f1f11d0c56ff71a34110e5a0003fa83329cc860eb74347e86084f806ee5
+B = 213fd4fd30cb71b48b070590f5e32e479dc5cd3c4647a582e7a259e59fc50ff12d086a637720ed9f77ea7496e233932d2ba95d8375d09d0a559bef64cdaa3e5c3d635d8e32456a9c0d3d9182a2a899de5916a747c5c2493bbae171775d8850df88341872547766f8488acceccc49d88988e2aae3a7942fb005
+GCD = 149f0d624a09ed71cfa35f28d42e0d74ffda6b91a522ca050e3b51b85c57282b3c181ec6a3a792b187c284e99961ca8c1fda63b1d44b48c6d1857a5275
+
+A = -251d8412b8d830274ae7afee7350de4a6f85be2f3137544e060c71da2a134f12a50a12d5fea6ec9f80184c11142a99453e42098fec72c6a7138094576687fc501833ca08532fb66c4c67183c0d1aac05257b26dd2ae69f26bca68b70fd5aa74a625b0d2fd8b3226ff2ae84a2831408d9ed3d186e2dba4e1cea4
+B = -2049c4a7415046d0713ec915d86ba58fe131ddb697231fa35daaabe60bb1ca0e59429062812706a6bfe543d0c659bde19af203666ae289648f068ab574e26704e156c0146acc25e6134c59b070851f502925c8fedacc7a71c4f7f1f6986cc077e80313b2b3d4976a265ba108b792e4fc24a446e1774012386c3
+GCD = 88d12b39d37215c55f3c5d8fbb240c59eefbb4ea896180fc95e7c82bf4125b10fb3e3a2a80a08e8300765609dcf67d7f5672a7c8ac1de07a879de4a243
+
+A = f83eb1415c011049d463038d7db7af6e1557f763e723021c14314cdb37acfe2001eeddc8fb8afb676b2f8f1e1dbf78808c5147b4feafc8c425fc917c54e5b60af824194dc4d2a50b74eb3b14dcc6e99c4ffc068efd67a3d4886f85eeddea92aa09f58199b560d493f6d667ade709d6d469a41e1feca789cfae0
+B = ce7e7861e1c786e9d7e42c0a7131cdcaa7b36cdbe8458e2a7f2d5a16b3feede8e12e91ea24fcc01a832866ddc831f044053545c6182cbf2e9e1e1f6d50d1394920d64c99ac6071b8b8ff8a62de638c6904638d75add920bbf06c79929d6a44a923e60f9c1b9330f196b69571dd7e7397939cb91f52372a97a14
+GCD = 738c2164f5ed456dbefbce33b22fb44dcfd78872accdba08f621b79a78c2dbcc7b12ff67a24f15d183ef1fecb37ae1ce305585b681e83eedcb6563a65c
+
+A = -138af74759224667b0149821b2d1622437a80b8306f243e0f03fae2dd106004b18fd68cdd5a2dc2a2b20678c0cea6b4423154cebac3374880b58c2895122daaafbbba75540b31324f36d26107a32ea056e2bee52234a3f54cb4fc81f75322f5826adb80dca1f416d859e8ee48b6fc3e6962cfce88e89371cf3af
+B = -71480328253bafe5b9968c0a3e6871949eabc3acd98096747db188fc534729f17f564c5324cb6e229e06bab4ad4764b66a0c642ee4fdeeadff48df016f57dabc378c05a348390e9429f49057bb09754ea803fa3fbdeccf8b459733bbeccbff1415241a8c14a6b76a82afae5e71ce49c84b88dda7896e9b92c08
+GCD = bbea99bd98e6a6a293dc79e1628603b7ccd0bccc1713ea5610e1d4e7bf4cf41aa73e4ad7c86047b7b756afa41762917ba81414bcde22e573e5d38be4b3
+
+A = c6ecd02ebaa7fa09eb1b4bab64a0a21a340641ebccd545d05f2d723b711d25c522a9206c5a6b506fe2e19d13da4aaf41284d76ad12c3b9d509914287a8bf4a012bdba4f270f44bacd3d523e3a600bd51a900e414df83a4454d6252709f4c07bb4d9f03a397f3dc1db7ddffaedc119ef769e96b849345d4200ed0
+B = dc4a269266fc3d7a1b84666eed3fd1a1a2387354cdcb8a0a7f84ddbc1954e00a18a73698fcdc5ed75fb262fed30cec241152305fd7af2a7fa8cc7a90f4ddd686c7b4425cf199a8a5161c0552d22f47a13baa30569ea17d7ab13e2db73cd9eb879938229535dffc62f83783388c664f64c6cb037fceed9c0c902a
+GCD = 1242c618cb49b1e5f0414bf98db968d0aaa4ced8b22862e72ad7c06b7d4ee6acaf6a53b2ec54111e23c8698463d44d41bc568ce6aa44e8d39b868915666
+
+A = -68767e6f7b1b1f1b7791c6d124ea675768e43624642c0a18c02c65b17c23b21b21ab7c389bd263d778d85df4e7e9e068151cf54e46956c62a6a3a15990ddc912f672ed3f426300d69737309cb327dbf50fa3abc0e77fbe40a3142a9ca52e773fe988ec5e98a0d4eeb059f27bc39bd23786f6c55fba384cae97db0
+B = 49b702d1f7a2f770a37cd2d80fb5880ec0e567ddef08a26d471287379b7893d1139b5614da27262e303e8901161cec8bee11d8b58ad4c055313a996c401b14a09a0e52f053530d57bb21c0f1cf87bc87195efd2aa06737c4087f4c44ce794be02569fdb8a1d3c14ab31cea1a7b865bc8e007d547e601a5d60c6f8
+GCD = 3ba56275ca3b715d77e7b42b719660165c6da197d768cdb21663cc86ef4ef633d9ef5a32ebbe1784d35a8ce36573589623beef5ee27403d97d78b04b8a8
+
+A = -127aaab3e40c06285a2eccf231e529c4e7a9119beec49c036f2c9c36e7a697d92c123a6dc842053a3a862648bf3f5b5159da1d750ae40b97734157093eb3070924d0c45652e9b003f6c8207556fe7e93d26f3760fdb922aa9667979f33bf82f8941348e354aa8e42d11143544a87991a5d01bf4825be68612a1fe6
+B = -ea59227edde6e23afd14a7ac889dd8ea7a160a63da1cf2ce94a55690b9580426c3df0a51073599138b567e2cc9fa3ffd7eb2ab2262b909052aed284a4b14a15498a03f7c976f4db515a70c799b483463d4c35b794fd72a1fdc6a71974a3ab63636a19e3ebc2a6b7a3763fb5fe7894ec17e03fe105b5a2cd530bf5
+GCD = 4de82f2e206104ead6ca55c0c2cff048d442cf31ffcb73535dafadbfddd1a6c115968c4b428b1ebef88a48093b2b56a09e15f2c12a941c70f772551a289
+
+A = 95a6b512180e78225517d22c10ec89f570041c4d11ac1439aea052c804b81f8d2054021a7f5952d4e3a1ecf8a8d808cc752d2b71569aa8cd62f86c179a7ca1a03eefc68797928820f8bda731edac663d77cc40966a8bf0e4a291260cce7a201ecdd72754cdc4d9c285944e5642414918a3fdbf4ddcfc073b2303a
+B = 3f7302e6a5a72d29302a27941fbcd36bdf744aceb77c0e19e13fc5a53def6defb13a9ac64e602ad3d0577b6b7034484cb0b5c03ce9c4cc042657df7c9f913fb6ee3729b1a82e7f32a798925bd6417689d5fe8df008fd8c3911bcb91274c2e32f892a69ad546a0f77a789dbef9bb0d7bfa5c8eaf5f00728cc60bf26
+GCD = 8977794c5a5e9f46a1f6e84100acf294b57edcbbd2ed9dde67d51eb92885b2738878cbfc5da2bd899434ff43350d4d7ec78aa4944da59ad135ead3c0d3a
+
+A = 693cef3efdf58a4906251a2a3be417188a977fec58353d8945484abb5377aae6f51de48f384c7376ceb4dc60676a538b2e65adc40f5ac6fcba8c745cb0294772c770ecf49f5ad784aa9124e44483537a814c2dc2a75d0dfd57fce4e1294a224dbbaa400de6440ccb594a654cb1d0cdb9a86d74002ec2f6f6c81ba1
+B = -3745231d4c7e85d22d5b2a7b511e34a5e5921fab4650333e0799e6263801d7bb212c97002a0eacdd23c345d8f3bf1dc39187e2f992fc03d6a74943d5505dbc6d99f756c9cd4c007ad555452d1544c189214f04d723eb8e26e8f487e024e06fe45e3d0c7e178d7645fc3e3e404e00a323b701eb27d5e2ff0e24fd22
+GCD = 1e39c2da58a27cc13ed1c28e5ff514304e69bc3a61f002f15916ae6ed530668816fcf158c31cbf4e0bbbd881827afd65428249086245bf5e31ea36dd4225
+
+A = -513b395f1a78a339e9113fd5c86f1f88665a1838bb46401bb049eb868817d6e79041f8b654045f9dd874bdebd02474eb276c7bcc5cd951935d15a3d3319af96697ee288762d4c2bee28ff2713f088d14de57f8418ddadcf1bb3b657f4b02f544cd9200ac8e2a871c8b9400433d99ed7e395895117307cfeada1616a
+B = 3cc965070c64eb6ca304ce8c477855d955f93e712e2b1fe87be8408eec38078d71c4fda775342a34f88ebb2e00fbb4204b0b32f10017b9d64c2901112bc85fcfc4361cd49c6f482982c5e81d53e92cdede2338c3ecdb99af66f56bb64daf57a5c8af9a8ebabf745a7a057f93abf5247f5f8bb348acb8fb7db29550e
+GCD = 7df3ca64d56be96e30807b7bf9e24ca7080b08bff91fd302f58f15750b37d27c3f926629d841b88fd49e922932601fdf16a99fb36b0f27d768e4d7ae5b5e
+
+A = fbcd99875c5084f1a0c59b5d1fe603fa71f69d3c6fbfc143a7bfa726dc9d71401860e3c9680139f1112b40456fcef378e7342892ef8433294d45899ae081b6f4df708a0e74626a433ca8e9214b69f0fcad6aa3c53d65f5ee45564177fb8b66d3868d9b2f1e66f04016ae835f2f2d857a33e553e64ccf204239bc5f8
+B = d977b0fd86671b667777d021cd003325ee3918564fa2a51f6e77aafbcce042b5f565bc95c5fc9e1b8bbe35e17e37c22c2faabf883fde575c92df7a7f01db9b9c0726808ac70f320b9af5ce6cdeede6db98a3592a59cfdebcb14af2aa86bc92c281d70fbe6f4ed3fa0444717bebfeaa715fc4a7ff3d8ea1508759ab0
+GCD = 43a145da2e0e11169332db03d9e65b6f258c36e5a10b9c00bbbb6395e6597b19b23e78568e931984304c841db119ebbba8a0b41ffe5f4e23c7249ccd5c88
+
+A = 38d916967815a8a1b9c77c39e9b9cb68b9f5350da609c2cfb904a77cdb46ec97d27261c1a40da198d6b4bb14c7aa76cc9b57fb2b09fc4bad131a01cef9ea7eff248d158be35c2c185357c43f7b5603c46973e06c151ef7475479c375e3ff408f754cd162bfd6cfd1897ff7ca409284d3e873689e3d9d0e61deb1cb99
+B = 49545674a69872a10218e111c9da7b19f75c87bcc5129349cd29f87a01a5c498870a5318849a92b715e7575c7a46c07b4f17d34b456b7c72f4f78a1017ce9036f1040b135f9f9c0c556ad9255918d939dcc442a8b8ef576f71686e13dce788fb3773c749d8eb93344daa67f039579ad47bd62a1afc4a5818d360c9af
+GCD = b5bc5937a6c81084ee5da4adcde46f5f476b1cd5b42c14d4e1eb30d912bb5fec64c9bb0e5337cc85087bc09cef3debfbf584c21b6c3df913c61346c4711f
+
+A = -bd708af6c65e7bb058bd313bc49ec919309bb291adc7fd28f57f7cbb1f1d981bf870ac738ba863fef2da0f8734c821fe985aaee4fc64db5ad6e7c55f5cb8dd4c9554b804b4f34e15689dcd2763316a84c628c802e58499bc3b5435bae10190f0ada815625fd5cbb6efae464746f191bdaf935343e94ae1e3d1ac7b91
+B = -a23c7040e19ad5414e36e9765b6db062bd8f0c56058abd95b1cfccfd7eb4bf030d19831c802b18b666532c20fe4ebacf1e530da650b8ed47695da3a3f25b7ecce8cffdf4eca155d8d6d2d6e37a3b398156e2f8bc2946161215e195e4a1feb5c8b7c4bbbbd03e706c05ca05e1add1096ad67e58e974c1558417509c28
+GCD = 12cf97727e27ae47b69ff22fe8cb90a81649539c3c6c6128b20c270ca7057953e0d7fd9d79be1bc408c60f6ab2ae27b25961996f1acb272b179676f7185e7
+
+A = 2ab0e6ba66ccfeff73b17a0aee7e9aa1d4abfb9c6755887f98fffc1fb1941c0f6de791ce56ee6a4169e0b0d86277f692a5e1ee871439c12850367c9667c0ddd736e31485f15ca10ac5beface9d7b4f0262fc3a8ebc71b3a3f0a8faeb6955c55f1010250cdb01baec3538f364cb9cee5180f36414531207274db53e338
+B = -8392986106b73f2bad56055c9ad846493527013ce88c38f926a342fb0155f5ef505d1294003fd3078b4bf64c2037df9135992bee219c79bd48c7d25ca40dbda361a9d24174588dfb6825317448ef5ec9f00593cf03e2555f6c7f37cabc73434185ceacc7a1d8bd4dc0abf87c571348f65432a2681a4afeab44e06438
+GCD = 22815e36702fa7487e6cef961cbee77287170245c74b37edefb86302d13a2efcc2e80a1c41b93bff4654d7d126dd6ea358a043f7dc0de17363b206d08dfe8
+
+A = 98660d75d759865da5b72d224d114ac0cd615edf0bee553522878cd58c1e2899f88423f3c3f3cabcf99b20343fc1fe5d2ae9fa7ebdf7693329c96852f3149818c65d72da9d82e7e18b6144eced2f33f1797569f4fbff3d6826de35cacf30f4cbe78dc01166ba5a11673d0a5826e0b24e45675cd1e1f7acb876b8bd5a8
+B = -4ff9dc61cfae64efe7300b8831782a71dc73ce10124598e6610f5b0d99fbda0aca67d52bf77aa2478e654651f94c338d80eab969a6afaa714aaf28f3d76063f7366299cb982db59f873535d4b87c2019b21a5f72340183d93746ae9fa5259e4a14f59077eecc1118f981a333f60e5cdfebdbcc5cc0f04dd054c0fcb88
+GCD = 47760b38bb7ecb7ef17a910843df934dd4c6183b2d3fbc243a61a09a86f520fe26ecb245e10873a1e2eace8c416b0a1ac48e1ffba8c77fb6c639b5c1a2158
+
+A = 2f6e87afcb85ddfadd400724f05f400c6df3fd050df7e82b2b1d13eec135ec933145b6ace02de4fd628485de5754ddad42a7a739d6f92f84161821503431aac74c77ce2d73697d336278d2edb0d4e8ad4963654f83505169f24dd514fecae11e97bb7d845620f9e98c06acd9003c4f5e88d49bf054b42ee10bdb0b87d8
+B = 4bb4cf7d6be4ff65d61b0eb51a9da0f9627b2a2fd47cf200dc2936dec8e447adfdaaf59aa0461a585a7b9e6d09d153f42cde62d5d45fbe76ddca200772c26877a81c4546118d8a4eb1f1e37cb81f69d83b9bf82b30211d1b7d62d3296574148023efc92b87ab0c5b436eb9879ea9473c38a5c0f91e48f4613ebd78ee30
+GCD = d93e2f0f2fc45727ceeb2518f390f16a86766578f20cac064816268b00a2536b9294017dfb6906febb8c2a37e6d759d9469e174be737f80476c4b11690268
+
+A = 4e7982f0c2a5bc14095e232c0fc8c042ac084553304472585d9bc19dda0a67af01c054c252596b493945bf24ebabbc677ca1f17243446ace0ef332c8b274a9e8ce78435e7cb0ec1dbc548e71e9943f618b799524317b3b4bf96b81a609569bf756df84279478eba30e64c28245c9365e6e4529a2309a7d8bbf9c569ef8
+B = 988ba75e045aee5d9ae328204221bff8198026f60732fc237958c461687267a716167dbb8208f57bff67ca01b51509352c09d07b4cdfa3a6b1c2c54a563794f688193bafdf5e1135c7f5f8298364ac39e3a1203fe3d5084022d83f948a9e1eb1d2e2e6962d47c31a4b845bdb7b0e487c81d0325a6fc0e327728f9ff274
+GCD = 3677decdb3cc82c048591e67832d5f1d0d0ec4981b5a1db3c1947aadb8734c66032d8feab033d5f3939e6a7057de6d45062da93e872222c2824458ad06cfc4
+
+A = -14eda5a73a01d371ff172abbf56fb9955cdc957ba14b5bb50bb7d8653edd85bbf77f88b19c0f0a404c432133082275fa0bf0773d284eb0cb22960c7926bc1e155b44effad6a630ed4104e88c745ffc72aebc944fd92c16394fd79ae59e60c253df0b3af16c3c3e9b2f2c8be6af669ed8bc14819f588687d81f2c9e8455e
+B = -4181eefb147341f1ead133ada8563629f09b6bfd0ceedb0b00eac1042a988628330bc5f399fda4c60daac3f07ed43f4d8a35eeb02b63f03a732909ff81be8ea9c8fa3c7da6f44201e950e3dfa8742c92f3bcbf7f246c7cef64439387f0466f1ff8dbb7c3094a6cd79c6bfec33dca8895d13213f831b00ed28eed9b8792f
+GCD = 228ef71b4dd7f5e653351ce15f2f96866658af3f69fd5131069be9d67fe302864062a91605a057077f32705041aab5cdfd9cd9d3b2e40b064efe871c75bda9
+
+A = 919950e68b598cbf741370b1fc2a79fc0807909475ebfb3cca608602dbbd609c2fa0d5eb5a7d4c4001fd60dd68739582af356881dc06ff3a5250348c6b05ff2e345bff7109afb5eec3ee95b3e0b6460d43676a792ea15799b23e1131481e8a2a84a77697b5d481f1efb38ce74260087546f77826a4bc77f027ef51f8808
+B = c6847029954c3f457a4eb7e1729434b1b91b0e91f9cc57723d15dcd22d44ef5e838425d627b9081f7ab2402737a41cd88fdfa587042b0afd380bab111070f37ab9d9cd7c8e451d966166c1259d2be0ee713f5b306a7d3d92ccd53ac4a3542c04bec219545e6496a3bd9edeec46d864f81c445b6ede3480a0b050eb7967c
+GCD = 4ec2fead1ba8656e2c3a7dc3af75f3abcda59b85a7f5881fa70f61cd0584ae84d92e21b3504ed80a42ea2486faf6b1db3e0b2811b5b3cfff028fb35a4a794c
+
+A = 2ccd42079ec1eb205fb71bb5b2de3049710b6d29095d3604f3843b1faec4d42825dc0882a8cf3190cbd643f837cea97d0f71b9cf1a70dd519a5df05ae9dbd879130c151974caa059dceddbbcb779c42cc2c7122fde58c91c5cd1d23b07470df75ef81e1fd7dbaca8966ce8e06423a067f3a280f101ef1c3f2e85b8508fb7
+B = 3243ff9962b4f282ffc4871c26ddee9d1cce6e17a3fe923ac6c301dc6073bbe21cb6f39be6d8392702ab4f9b7b52fa1f7333073724cba5465b5d9287abb1a702119e607c1dcfb2d109375ea729d8f741c7e0e1690e10f91b580132c8038a0901f5146415c1df7c822a5e2b1169b11ba9848ff198991621363989b82afda8
+GCD = d8e3457831ac26b35f7f5e0d759476364c22231ccf31a3fb1757f6f19eb70e72ce638fea07c49cf6e55df46fbd7e6dc736c929b212192d5b10835153cdc5a9
+
+A = 3ab22ca0fb114a3cf0e1a524752badae7b41658e30a13b7422276048acdc1cb77320c9b792f0e7558c0e79891c1457f63e7ce9950a3cdf3445b4a599741f9306dae697672666d5eadfc2a570fdc1917e5a1d360845e89fc1dd4d541dfbf2c8ce54113240d853186f5bd71dac2f336888340905e8f99df0f3c4f4f33e51f6
+B = cf7a7fbdc191b36c7c43ce87e244478ceb0fb26d379bc94262bb0bc2996307172425efb57adc446dbb8b5da556fbb05b2e89135bab0dddba0200c5308c9a104a7ee54b9f6b099fb6164056693f1913636ec753a9c2f429976c7f522cb0bbf22599149f53925f5678f44559563381882353a98f7ad6b08761d89561beec80
+GCD = 1b264ecbb1e5dac047c91b5514d56e098c71c0d98a0fbe7c63f8a38dcbe2f5c37d354d5ad4ef1bdf918c4e15f8dbdd0d75ad44f6ca111fb37ac076f61e62426
+
+A = a1bf367279dab65e06110c2dd811a96e54c2a3de86f7e5144203ccaf83bc59e8f9e3fb65bb3f32675f74eeb27f8c321964d7dbfb56e25074a836d7e559027285da0d97df7170137ea867b5af70c17f764079211e7bf3a5ae9f815237731bee6c5a4d6cc48bfb1eaeee6148b102035340831554df253599be539edf856c92
+B = 2497f8eb01c2c60b5c5f14aa63eea6820059b18be163b2b38cc6c9ab53956e451187ce20f31c0b4f7d2113a79728e6f5c578c3b09739647c1186f18d0f2575ccd47f7b7700715677c25ac4926209d5bd7dd50e33c497e0e0653b57701748d5988bdee1f632476e47771ac1b4894ca5165e9d4872a73b457c8a54c2f54c38a
+GCD = bc70cf3f602b6057f8e672eb7cd6f89de87d52b7926de031456ce68929b824309b5bc6e2f9b0b5653d91d305c21aaf592cd27a71d00c060a1565e81cd8a2602
+
+A = 910f9ad46827e511f8be5fb4a190710bf8a18ebbf2fe45778a4088e2560ff2ee0456c287368e9fbc7d44a539fcb116d6b12c7c8dfe312da6fb3ff1fe8029da86e212772826e9eec7e202e8d5f977d7c7646a3a5116bebea317861beb89fe50f5d03ade992e97d216e143fb60ce773b956764116c6e481ef971a7868277a7c
+B = 80ec11e11511fc5f21caf2f45c38b1e01bdbffbd7bc88c902ebb43a18c14e8ccd80f7d6e48f2b06fd582cdb9b4c9465fd7818b43eeea308ad4211d2e55e745b69514fcb5f623d80095a4334e1261a101c524eb39219ed185afa9d9f1ee84494c4a9fb80985a781eeb2baa5b705b5fc7e11b130f26bee0b18402ccb1fccfc
+GCD = df8c939bf1c3ebc939e26d20722bc605983378877c1bd88e9a7f33890406da770f82bf6802105f388e34bc3fa59ef6b1ed652e88c4c4bd0cc92db814bd2b19c
+
+A = -31110cf46b0ff782c66d87a58f873e7f55f51cb80ef55cebc13f32b09270fb7438313490c600e865799e95acf69f3f9d034c50d7f450c19ad312f00b53e13014440f519e5a6cfa080834defac6be2399a0de7e8b82a40194d505ba98b3043f0dc035549669256333c0c8aa0612b870398bec4f5cd64a0d8c39d5fe4e71419a
+B = -4c7f31f475c282eb7ffd707d0b99330bba1a54466ed6b04c2bab0dbe51eeae73017c4cd45307e518f21e8730bdbf55bead1a70b0016e53cf02660493e805edfa0fc85fc04a4d83c967af98da541403ac815880e8761e458a6a79d35114d3bfc2a145ccb6eb87b3fbc99ac8ee147089a9b99770b96cd380dbfb932717c09946
+GCD = adb1501bd969e78f553e43b80e2b62db8fb62faaf5296e3981228a0cca34848408b2d6db9c7f6b911f5ad64d99adb1cc74b041959576e2683112f8b5080af36
+
+A = 117d79a7564215386488902f48d6e8b50c034bbdb1e810f42a1c27dfe2da840eb89e9f4716a841a15ec7145de969325bab67bcb50e4874756468a2fd160996840d5c0df9295e5e12ea30d657ad1d097eaa2e74c641a9cf73dca638f13479ddeabb40914fb0901ec7b6539b62b7c30bc2ff785752a59f9485bf4c0e41db26b34
+B = f448af3a6583cf606497e82c7e1537350d1da13f008c31c4d1ac4a07632851f6141189dbc0dd03cc5136ec17ec8d3ef4b50b89497777b8514dc2c25057be55dc6cabfcd0d4de1adbbd65b2ed69f39bbb81994f32778c9238b0fe54362534fc105cf8a4ae767fbec8c6bccaf1610334bcf0ad7d8b5463f171f0d531e215cd4
+GCD = 19be1a451384eb66801bfbfc93a17e675b17a4dfc8335a7ccf4fdae172ef6933df35d602701d1d16532e1b8053f3be021f89968463fb47191814c2bdaf08118c
+
+A = -734574d9318e8c540f60023869d9429d619eb9e0de390ae72d7e1cddce372edac46c101e21e2b92b2289953c20d40465178dcae5b744a945dd96ed6a1236b8ff14c66ba8d25fe6cab31d6fd3e0fbd62d2b421f91f185f1d8ad77cb71286489f6159b4305fe665e88daef12c28a77dd61bbde725e852ca09c010e6d6c6c34a9
+B = -6c0f3adfff1e856a75c60cafaa68a0675cf96eafb0b611e42c0194d0b06a957980bb5ba074b04a02f3b8d55bb1d3578e4424de407bca731aecd2c098e99a8bb56252f392847c8589c7cafde16d27a72a7aad96b2245516cbad804a9bea22061634d283bbb2be406c2ae89a84435263518c33ef2b1a50027dbae69ea32b33545
+GCD = 3edcb3fc86abfe9890b558555644e2143fb68f80f63a7a71226c62672786c1dfee151bd28c0193e235c59aecce29f50a12e3a5e1ecd94c4e84db9cc932ade877
+
+A = -15c331aaef740df8cfc9062e52a59f12bfad55ef1eda131ec4607436c87f5fd15393c9e8b6a4234fb5d85199194e06a8f6898f0b1d62a8eb7fb715b27474213cbbcae6a999ae8578442c4ab214487bb12974224e7f9e787b0dc7be2a82a3edc6d7b57689b7e2ff67da9b5b332a9d5db38c0bc080f46198825966a850461a47e8
+B = -28d3dc89c376ea218114791d79e05ad9c6a9666d195fe642c18c971e8c2f26c0089d503cb805ac65f4f475cc25e9bbac40c82570bab7da7071c033259bf720c2a6f9d0ee87b2b27fc9a21a0ff15e2142e9f761c946a2e2fc4b7bf472d2c492635d6b2b94117d3fcda8dac96d96b9eee10060ae233de008726087391b6eeae90
+GCD = 177de3b3b459367dd89048f3ded5a7de235cd417dc70e0e3d381bd5c200e812b307d1c4e09a78fc6d7016d3d30c9927c0eb678c8c3d87c8b539d375c45f459b38
+
+A = 285695b9482127e98e8806fde3da4fa50c2e8245d3fdefdde6d8edbea9ef8e9d16a295794d720d9b652e2e54c42ff349c395f855818b441be2a43119969517f9d541a39c19cdd772b180ae4770022fe5c53361fa34428853d2e7c680d1d90cc3521f2f13213c8cef04cd82203f174336ded2bbfac3bb304036cc1a1c8743bec0
+B = 47cdfd479a80ff62478a8a9cc4628a6bfc4131ef84deb0f02465eac7bf710361199318fd9a4b032c0b385d4c7392af948b8f89bf188620861fdb60bc6cd74bdb544c58634b20b9ee1225ed2f24e7878c62865521c8ad6263a9d19fc3cb0e779e1ea8d370c3f0df037d660ba1b01c7a9fc2f71b416ccdf4f53a3a350e49579374
+GCD = 13e8a2a0a5386b21bd4dcb1585260b9ae40f3c9941a13507396979da9415fcb76fe623cd0ca24bf088cc59f8b05f4daeba906505d5ee6c94902cc18688c9a4a04
+
+A = -14f94518745c5fd856fd8b5080bff3df9631e1e9a4d4dbe038d86f9cfe21ee39aab3ed16e569ce7ac70995a328ce34dffd70565716b372a9af31ff1acb71846a66a37a6c9eea6df183b6c8ca4c57dec2a1bab9bda1bf498fa08c489fc4603f4f8066060eb1f0b29ad82b89c691254c93fe607cf4ee123e0b0d02e907c6e707880
+B = d7c5dbdc000192905bf5631f7828b7f24f183912a3901a2b1432943031cc82cf257ab78fa32adc5c18f6dcc38bfa7da6fcc6c71fce34d317861568dd026aa3a7afd53b31a425477598a4348b833fd85d62aa17bc1ca188c36a67d6ca56210cd2a2205c46797ac9cac519a8ac55f5880ec7a0b207ccd8abcc7f9b0b8e5eeeea4c
+GCD = 2e8cfbf2e67195e00a24c0453dd876590a22c680eed6ea0a790567947e97bf9501a1d4ed29bf0a09a45fbbe8346fd2587f07734c6604589e6d13d654a2deae6ec
+
+A = 3febfd8136abc153063b564a10e4d0bfe9c47c9d193071bf144a56ba6855e06142d3007373d223518382e7e09470f2f2105137d7ab2f8faa1e5d3bf280989068a253982a2a312b2c2e68500f40b4eb582a8fbc338eb80a582939cc7925ecaeded2da499bae15b7625c75b2e90484e0e323efbf953c6bf60be1c99904f573b6823
+B = -11a39f49857c5be8a407e1324c3bdb7bd74e3744d2aca071ff3528a0d86546ac7e86b4fdfbb4adcbf691976d530cc1e45690eb65c1c64a6c67beb53c8f6589dd08b6506d7d515c4206da4b5e072fe0a7dc64c3e5f4d46c32a1e8fa1edefc39ced8f80f49ec160de6d29ccfcaa932680c2a7a59a4aaaa9b300716c3c16b37557a2
+GCD = 36273d81ada020314268b98cd3d7c5c5f198c49aac7ebbef207c93900a53a11ebf8a182e1a99b58cb391b0c11cd68377b471d377f231803003a84d6a9d73a30c3
+
+A = ab69da9bede9e556bdf493c1096c5bf522b116c3a06b0d5705b51b70971c81832a97b6fde4e3cca8e1beb24ed68114954474f0530f1ed8b039a401d5c348c7e3ce3ace1c2ffaede886ab18b1f769f95b9beb6590d5157b39a1f09e12694a11877827b4b2957909b085a6cd2fc4ae84aefd52b8277e7271f3e0b1bb45cbf20d9a8
+B = cd5e6e26686a71497f72cb3a579840129317aeaa3f69a74afec69740af77b2bc0d735708294da2057dccc3ce07ea4371313ef88ba7b0a5e7e883e96a9bd0cc3be1c8048e47638d0598178b65eef20c4df2b9d7a2e0726f6d0ca6f5cecfe3fe4923b23e2b2ee92e2b4a888992ae67732cb6a75c25d9a9c35635b7ec08e09c1fa9e
+GCD = 75f66162283dae4916bb95d00f35d29e514d49b0755cf871f6424dff7010dcba0f5a07e69b7ed097c346c3e8c2ebed2db66f7c946dca8c95cbdec761244d7789a
+
+A = 57af33f645d148750b1ad790d50ba6e97731108bf8bd4c351a79842fea8b595da51dd5a25a9ffdabc75683c4a058b8cad823b22c513eccf215a8f44f70f7a491765a70d1867874377464104949fb0f76a4a20e4bd4049874817049529dd7d2fa5c020bf4e4b4699d130b9a9208274aa3947cee267239042ff0b263343fd7f8c16a
+B = -39dc77cdbbbfe740d05291eba1390db06831af0bce8bc093cb1684d59fcab36a4b26b2efa4bfb20d949d4922ff9cc64e26238648810021eec9d700638efa292f2bbbe68d42fca1680871c37a2731177d4302516baecd5850a59705fd6a471a15be5d19ce108a927a1ef42316c768f242fb7e9dceb385ef388a68cbfbe7d165c304
+GCD = 1b7cc6a8cd7ee5860029fc0657ecaed3a9ff8b7dac0277082995585e79acecb34fba5dcfa64849f67e2d25d129aa09704da1995aec86558c542ccb35019e39bb5e
+
+A = -17eb0227bc4867601423b5578e3af81af1d062074185c77cfbc52b0d629149bcad356d4203abe524b479500d9a54ff21bdbec39ea33b29de6cd9ba67d35105226719a34f7647ec9be5617dc99a651815f67830be1118a957676b997fd3cf8aeaf9e3658c8b858ef32918aa98b9b9bd6c7c7f0ec3b283f80bc7a4acf95e43cbc8a2
+B = 895785843bd944158c829a11236a374bb9a186f6fc397944d9809bde5f1095a355e932835794e01e64f493d1c3de93043979e09aebbf9177295440b616d19014698f0a9c46e03cdaca95e4c2c768801ecb543c11d0ec9643472076f563602652ef5996e5ae3bdccbe52083acfda3f4ab1ed74a279f179401bdf5ce24f7fc2cec7c
+GCD = 22e878c652b96562f3bacfed268adcf3982327e5f5a4d271b7547303f2ca7037565b8075e62040f61bc746b71edaef503868cd53b2e216302535ae687fa0eb73e6
+
+A = 42831fc823be26d259c1a55c2be8c179be174b62ae1d5322e445a2aa0e5a0323edbf8afa3220853322798bdb1f115b421e94e236239064b576f69ef60cfec499d9aea749157dda1a2de4495ec93775afcedfc030366a6630d927db392ba842002e67dc4412ec6a61a4724221107ec433cdf192d944cef4e61f5548df3d3dbac6ed2
+B = 34bc92fcc7a6b235184c18617dcc257000379ed708417900e69eaa9ba1a8931adeb89aa07d2c734186b018934844099b77f4088f17b98e990a696563bb7e9cd2ec4a13e9d1d39465f78428cae6ec1918afb3a4b83af34e7f0cd5982cafddb9f4c16e06bb96520a60f314e9ae311562d2e7d7b709e9a21b0d1ac92265d910acf3cfd
+GCD = 22d817c2334ab652927ddc39965cb39547d0e7f38351b738fb89505b01330b8e221064849d3b24d59ffaaa26f6b6ade2ec7a4834f7791c267438bd91836a4542d7
+
+A = 9d7fe1db937e25604935d50dbfa3aaaa34f082fd4666560cfd0b4f485fa5e9a2a123190c7b5e4e21a9d030f66584448d6d0e3b17671fbc98579cc46fc5dc8d254a989107a385d96c30580fa7629c5ab92497a42120f23a589be56d00e421c54c94e35200752e0c155336ae9c2f3f126e3a8ebb5ecf9c040d86c3e6364dfe3efaa80
+B = -6a1263ed757bb83cf53097523fe0d2b991f0e5857683840bbe062374c96118411452842ca32ff60a1cc2f9cd6e692f2ecf191d6d0ed2413f0addf86ee93fc2267bd17b13178ce23b5cab7d9abcc76a5c4da3b3b2c6f44eeb1d781c6d60606e4f3539cf5036f832ed3787ceb8104d81a15d76b3c3966a391fb54d615f5f231828480
+GCD = 37d0d4ed143057dfe2b8b0d2e06321150aaf64f1f2077b8185107416275fb711bde9005dfe09d451f17e5e0f8ff1d301b43893a1752b678082ed299e97aa33ef5380
+
+A = 5fe5c2cd33a5e6c2e7c2e2f60b84f9dcb284eb592d4ec1d6e70b70b08d72fe768f03345153b4530461090d697c2fbf164b4aec85b11b7683a66690de9649f4b82025cc77ecba25f80fa3a8c218b3dc6b8a6f925d16aa74e4bfdca7fce9022bae3869bf2aeab8e07ee075dc57230fc71fe0323155e3eb4b0fbb0440adb6593295e679
+B = 7055cf3fbc952721bbab8da1a7d689d779c58cba85645552ee8b307c438b25fecf26927fed04b61c2fab944f33c4dd134c1e4a3d5d29017ede3f52d5233c6d16e9365de1ee20a40d790f62016c2ab0d125021867ce8190c237c7197741ab955f990f6f56c2696135638be3642f8206edf35e2a7e82fdcfec2b92e576875acd12c2aa
+GCD = 4e8b6d19f248bf2d35688b32a4a1ff4e8bf540f7726e0789f4de72c3b6ba8ab56175b8e5da1902771fbafe0970ec0b1855deb139e2a672ea91d1e215aa7babeeb97
+
+A = -c73122c4997ebd405efd176b671a30b7712467ffd50648db6536c5324e6ff6069895004ec310af586abe578b48b7434a173deada7740e1c5e5f09163c92a6aad363c2cf759284669dde59302b630d47288ef22c94ed4f4f8c9cbbb4d0a3064e7f458570fc08ed73cc7794cafada0fe5e554e3ed4f97c023e8abd2400ae98f643653c
+B = 4943aeeead98df0ad235163b75a061e683c7b315516125bc612d955700d1628dbdc7cd7c3208e1637ad5c722c0d14d6058116f4766c4f9712153bb1c5aa428405c26b277f4b8cf671fda5d6f2a6b03b53b109847e5ed4fdb5ccf9488d0d69e6fc71616672e89a7a11c7eb7aeb5b1c64b8603e940713fd00bfd6408af7c1db0033a0b
+GCD = 117bbae0438ea8c8ebc648bb6008db88d5df35204df39c1b1ec72a2de826fa9c64696cc2721f681cf0f4b793504b0740c51d98da3ba4530c67d44e636c4a351c33b
+
+A = -68ddc8906eba4ba628dbd1d190e068acd5cca42ab7243c66b453f487efaf76e80c648d84e2e795a77d20df712c7657cba19b6233d3fe98f5770c2297a514908078640208aa0101e14692449fb7ff71007a479703e1468145951f9d1c1dd61888ee2311cd2f4ffa7c1e85d1275efad6ed2332c7d17c151d50b5dff1c1b5038d687bcc
+B = c51f295e6e035d3560949b3b7f40fe1346ee74175873e6322b7453056b2cb2084cb572311a669f7a4886b10df5370239ec4414755902c01d9c6bf1c0afc15b9983862286c2265a36b31e4d710c75e561f1b04cef60c6ae0c36238585273de642790ee4c7666feabba536a0ce5161006d7c2b329721af997b41f47c17fef260671044
+GCD = 16d93374722cf4c1a19397f1febe2dd4e085b8f1665ae4af359cc4f05814bb94f92b43afd8cb6ce81f162d02c5fdf0d7b0e6e8080e56614209cfa002d0dfb45c0364
+
+A = -434b5e0b619a386f9a4bf175152be8a216d08dee40d2926cb5662068391c31bbeb231f661a3d55b4e5fe59c7810877284d07f2536d57f5becb264ad0d1e7ed21ac269f6274fca2389aa1787c6535f6f3a96dd8130c9c7786d70de25444eea1ce27716b20ca751ff9a1071bb359739049ae2d507ea9e3ccb63a54ee065507c17586208
+B = -1a473b5a7cb90b20d1e5933c68a464364f3200d1b175cb189c2b4664e4f68402e773c672970a10791512be983cf7399f3c652bb23c467f4833a90f91b05afda4c18223236af16514d7b8b6fb560547ceaae7c8c03589f97c641b5ec8f29b05d44bdd1a4f73286aac830a66e73f37d7836149fea5eb305a375a5f970fa3f9a8191b19c0
+GCD = 5503230cea1ffe7521d5ce4d2426927f848e6ef7ff09f783a7b17ce6395de6d02f1f47e42b29a161a4d13276d31105b47e8c1e3c737c67e8cec49120a2ed1ddb79e8
+
+A = 21fbbd2951908187a159dbfabb038f7b2435f9343998173d13feff6dcf3aac9d0597e1f079505c9cfae77e6a4719ebab80c5807e187dc40b2636aefecceb7d10f6c32be1b2dcc12e5a3850bc7967aee840427ab451ee84c5d84c949574da81c5bc4ad663393511494c825c4ed01bd8dd66803cb60485a4ce46eae80c7fd574e4c22618
+B = 2dde36213453e526013340533097ae365c2e4f1056db517fcf2280a6f140f23b01800fc55c6ee8ac08d6f27302feff8d099dfa7873b518da687572b15a1da86e398e4854b4f16c9cb586eb096115084eb7d63d228ed30f1d8beb6e3c778efbdbac17bc746fd45541555c4dd5479d837d3985567b303692ba687699b7874eef4b45d379
+GCD = 792fa86813c67adddbfb1f05cfd0e94a5101b9ca786150921c6cdd381fac3eb76b26f47aa9db2a40230b24bd14046f1648f1bced16df698b8d76039b9d92ba4a0657
+
+A = -196e63ea3c7eb3219199b74e52086f891400c116e7038ea64ad817b74e38cdeaf36d4d3d1d502691f6889462699a0402d0c781813a210411c3c152ca3503d8a45952f77ef6c8153ffb68f32ee16106fb8dfc51c2b430b1548c1b2e262dfa40db08b39cb1c2bdb4cdd7be2a40b57daac9b48c9240c2f6dc346cba930d08ff16169a69556
+B = 1c76ba300f9d4ab6ab9d8a1b7938f9ad2078f1146cf14771e525196b393f4bf63e693ba8a1b147966f8436e84bc09c47ea1ab236e578d0601e92ba7730041e6681a60cb5609d34f5fbf2ec599d8f25d5ba1269eec1e479d15472b00aa49720ae6f3272568679977de135d2e01ec611b5a401d5c628bd9a7f0ac049e9864a999df788a8b
+GCD = 1f7a689a2ab07219cbe204a5c98b4757fb4522276a2044eafd3548c620528f2362b27813c8e462def1e0d87c1f3056f43765fa604ff8b4d723f000dee6d27ea9afa5
+
+A = 2f42f42957e2121743bff04ac2a7fed455c995cd3ed05bc9487245fbfbcf5bcc81e3700d3525602451241bd54634929ebc086c4e8d349b30a3002a9d4114891975339e62a566c6a9324f70da3b4225787d01a1fba22eac0652e654330c8f37d347f1110a74226a66170ff6f99464bc998a80dffcaf3c0909d8a1ea6e28839bdfd85f1cc
+B = -372359573918d6ca93a1b8c5bced64be2bc39bab0fe2a0dfd542fc08f7c357a505de4bb12f6379cd52365f2e3285ff9e5aed3af2fe5c7238576148e1d3752ea4d3b12026a1979ca71dfd035ef74484cd490d8157421f702d343c065333aa23ad7c223e2f40acf6ad8ce06d9f77511c00f6357fae438a01fe2b40ba258e8fc969b389858
+GCD = 28d157d4be81321d039b22f34555abce34cc1751078e9c5741d84addfd7535338941a1706379db006ddf194310670a13d5cb32429593e1648d0cadd5c400c66c0cc4
+
+A = 912114ac2e9b3781a7f31461816fd6a0e839839f58138cbc3715936f7c5ea133efd7024b68a444ec004eaea478b6c1d581b95c754345713b70f5e21981bd15a29b7720a855f988febdf57ce8a47cc901f2241cdbc94dd386c46413aa4260ca4dc59df4b9e09b1104c7afba6a4ccbfc408c94e7504a0dd38e568c038d5b4de696a6aea8
+B = df7c28305904522fd91ba1e5c618d5cda6fa1a6a16fa41856f2710f6ff217a75dc5567c70a548277d51634312818d7c308041f663d5c228b3eadf2f3494e207ac8a216e14a5f3482ad09682707b237470adbd4901888451f047f3bf378c976422c0abf222f42d7876cab6c7e3672f8729fd77eaea9b406052b4f812f3eb8a14df04daf8
+GCD = 4b42ae4be3ad7bbbab69a1c5e87ded2a7e4f6587c189b2d58130cb94a7b9aa816d3ba82bb657826903694f9009d78c2eb4e189aba371249f36a7f3225fa9282f4c68
+
+A = -33b0188d6549981d2ff03433f8d15305108b72ddc0440cab7c4db0c3909ac117c72e8432e5b533fac0ee131b3edc4ee263b1bd668d8e378d1aaebec00774c8f625e16ae75475f3c020bb3d9ae0fb5fc25f5c54509e0b2e3468f79a05c761148f8702ee55d7a8ea7d6d950cbc2ab73cc10df51c2bb7a6a0dded863778cba14bf03be93208
+B = -5431e7a0c5dd21f0e5cccf2d7797d13a84fef821bb02ea271d3bcd6b846c2abdc643d2d6102999d8152b78d24c0f03aea900cf74b2641a437ebae20a9a385fd4cdbac714d9504c79c34bcb4b930bfa4c696e99205dd768acd8b0f2bb4a1d528831df879edaf97b781d7352a58810829cd83c263d3282fa73694536c57d9bfde19199340
+GCD = f3d9236df3a220da713eecdc7e2b38982ea486c3e35a8a1c541e71fcf2f91413d59ca3eb6426929df9e7c59ab49f02ad8d7bbdc061bb8156b6f035822671f362d778
+
+A = -78a203c5ad5e1f8ff70933335af7be5aa71f82ada07889af874c62829bfde4f82d9d76ab5ea2b7144f999697921814601cc450c05d72fa42c712c59aa8787c08ac621bd0a5cf6252f65d6324d276ad48bcc8b0a0770602bdf693976528a9606ebdef375f2a1881407d1eb83fd56e4fa3bea37521de704f276c5489b45fa4556ed5cda222
+B = 4bbd77dbab2d574e6359be1342f29dcb037323fd80f5ecee29407008d33a755cd2ceff44294cdba0544a014498e6f114788aa4c7edc9305e1bcc7ac7d74a41ace7e86d29cd2274aff47fde83caa8bc80a58fa6866820ad421e08cffbbb7e724e8742842dbd6870750b87d33a460774203665866130636c515695328acadfea7ef97caa02
+GCD = 101d39e31e422ac5658fe0b3346ed6be5e4f602178be52e13b59e40fee91f733ffc63358bea541b3a3cca19bd1397de4892f460577a26cf568e4d6f4158169879823e
+
+A = 6f7bdc88e41e8db957d98bbc46f04011869201712ea9393d990525ff77ce3fb2ba3e4dc5b4081e1e2d96cd246e06d1f192cbaff38eb5505fc65ab7f48d49c9ab7b84137a589e17fa868e7885950f4b85ab487bff384e0979b6ee1dc6192d4c4b09bb693558a7bcf2a35714bd730daad89dc89811339d23254a38c9cd9be15185306c2ff08
+B = 3a7d3c7b80b8edbad9bbd1d42f96b7df533f822d19faa42fb6474d86479271abe8b9a5f4b8616f1e92af92252922b6591df9be52519da928d040976c5e02668f80474fe3dcc624ff08f798992b97e5e4a16e3fc8e21f44e8df14a37cfc32344d34962b5d53099824e705a283bd769f186de8e2c001d4176e589e93cc5fe21455a9bff6194
+GCD = b47787d07cee830d03c22292412348e0bec6b44cfba0bb885e02f8ee7c5ceeb22ce2f01ec7aee068db65cd5026674d71b845cef83e627a26bec2bda1a9df689daa704
+
+A = -13e379ce4304dd1238d5da15a6d0cc5ff548c67ddcbb3003e28e7caec13e0cc5dae59ff8503de58043f98d58f3cca7979dd1446cdc2478abd02233806db4ba3a873ba492845b6e988dffa20aca1664386a7ce0e51d084ce15de51ca91baefa4f09094b5847253786846e9a6d2d002370def6670d4663b2de1507695575295cdffa48b212fe
+B = -d860662e23be93e65fdf63c01743e7d761b1414dc780412a1ef1f9ed10170bf0795ced718b613f8c2ba28db35f0973304ab22d8ad576b5be0ce296ac3a9ff7e6ae77536ae857d8276dbc02a7432d677434da04235ea9e316c3a6c6ec0ac127a7da243bc2ee64a3b36679d10a1eefc70f6a73d65af0fee46c834a2c061636212c7fc0a1512
+GCD = 5142bb437cb3235b5b0a9eb6e9c1f265f75081d9f3925d84632a7826205a9f51331230594d296714355da6a830a0ee83911017cf252e0ca1cd2d2783390cd5755977e
+
+A = 18697b4097ed7f5a42fd762da26b00954810864e3d82bc9b0c4c0d1be6545c78d848130f8635501ca8427247b8b67bce628159095c7312e1a0687061b33a3f6302845127b1284fa1e43c8941bf8adc5b901b2e49a226c368f5c9008a8c76d625ea2f8dd684732d0da624883e1d160a969671ed178b69a54c93c81e8a3727b57daa37e492ca
+B = 305272df438a07083fe0187ba10551a3110e757a650d8807aa3aa275075f240d4c1fe02ec1623baa24492945ede52715d10b3f9290ad3869ccc528c2d507cba1c08c2ac03e7b6783f9a6df6e49b19008ffb752766762277ce2b71f4b1cbba62347ff8e112b45ff664e8f73d4da33bcb46d1e942cd795e9ce1f7f6a3ed0525f6d899917c4da
+GCD = 1a8d4c87d3a53e005f1f21ee7e9bb7c116bb2b62683fb771315fe38538789855f40a3ad139d35a907b776cc86bdeba49396048d47b5acf521414f3cddf69130af5436a
+
+A = 16fe881d102059f56d851563d9fc16ab6c39bf8317b36a81f73c8a3a04ad39afadf715e76d9376a355745a5645030725487f00394baadadb34a2d458d9eb19623c4f3f9134a954dcd691adb85a92be7bf7b2bbcb7426d19db0db61b1b60a21c98cadfa3ba10aefdd26417128f147a64fc01e7cc628e45959a36239742017b2c388f3f1725a8
+B = -16747526d8d646f19e9cec42182f11ccd98ac3245d2a0d8312639d07de4ca85f91e07a7c6bcd152374714033bb7302b347fb225b5be9afe2cfff95e6f1fe8e4dcbc1a46c049b31360f94fa28d5df1f55cd8efbde5db60384aab8993bed69cf64232d4fd9941c416c4df3074eeae4a7f41fba11c5a2b8b53c15c8b3d1db9bbb8197a69322784
+GCD = 1aacd834d71a4c44cc75219dd054809b1c7392e12409e7a7e315e2be15759580e1d86fdf1970ee382dfd2b43aef663c8a7458d2d0ffe9007bd2406f1e7bd7ad4a7d384
+
+A = 13d4c4fc43bcca1dd8d26845a0895a03325273eceeefbb9a2921f189a8489413c261cd38128e85bbdf833adea94925f2475af98f7c53de6eb39f9addbed750b6a6cdffc4e94f1dcdb9e41283bcf84b851a65fe0e1b59ae13042ff636ac36d8370df76245d74b5feab5ffc06afa8c6a2920c98efe217932e0384fd748fb88e8413a0da6475a8
+B = -2101fbd91773e403855654985a8d2cc6e97ff9cfa3def06420293ee04db7247cd3d720d8374d7d9bf20be5313cbec44f1aef6e13b40032f0c314db1927aa562b467db302614f24c1c3ed83c31ec4f22336e6b5138fb028972b8498945188972fc2867e786dc2de8fbb39a4021c2372ce327d8e306464fdeec7207d86ccadacd0509518159d8
+GCD = 20f4584f9d7fca1ada53f64dcf9e7daa2858560c93b18b30f5f8e09066e56fb75dc1e5f0eb4966128470981b4fde3f219f77862bf4fecce7e50f377280c8b41177cb98
+
+A = 7555eaa8f908aa343ce73e003ee6474bf851d8cec253449016fbe39eae19f375f7cb5684707aaddef5832bf68a9e8f3041bb7998d105f0c3d1559bbd956574adce192ca3e82a7040556236fb6f651a9c7dc49b7144dd658bb4bc9c4e24bad7f07cb187944cbf472fbff452f271fa4d64ed0e5bc12cbc4f284848c28a09c4a00549122758023
+B = -1444ed4ad788362ea000f3838f2b00fe58b1fe31b625d24c566dd7ffe9923726c01d0c67b2b42b49f810c942d4c53bd970490b25d7bc2c06e9bb5ecc04af20db30bc685eeb012cd4ac0a9bf6ebae73bdaaf058afd188fc70cb89288958302252dacd2bf5f565094974ff792f65ca785ac9c3a4ac613d29813172c733bc391951aa6b9867d2b7
+GCD = 703358abcef86f97b51ae70443a419123e510a6265c9d9f203f4bc0123f8f7cf37b8519038f8717c4bcf18aa832e6fad0d92faac3fc46387a002d946661980ba7929a9
+
+A = 30bc428710ba249c0c9522f4567702c8f3e0901417702d43e2a5662c6d71b2ab94b9fd1f303f90eb1f6a1b223535a46920d4c4a4c3dbdc84b02bba63026fb08b2315b5fa4dbd76e3968c5b8ee0b62f95d975b644c7f0db3939da1699c9495c51b8bb0681db31e3d2b27476fb6834de4d70a6bc2e2134ff03fbdc84dace2fc2f4d47eebc6e568
+B = 12865cacc72f44784298b8c11b84b79dc5d46151693c3feba814c01092f059ce06996174ad1cf4db13ca796656a85463aca03240db680e824b2c6272568e77dafd316f34e62c5df3375a178378e36ba0787a4f889c62ffbc7507ae9a07fcc8e664b330e61f327a658cf2f72b2dba2b179d72010d55dd4074c13db4283728d5bb21deb245a194
+GCD = c8d609267d731614a685ee2dcc2ce0d3c0809f859ef92d0e655a1c2f344dcdc170883e33a1f1282ac5d0b55e640f98b319eac83ec56d9730ec173cd5d0305113d6a6b4
+
+A = f28b2bc311cc0e8207ce34783197c341d1134362f2383c988f257ed8b8c7d690da00e5d535004772bf708d494fa13b51520098b362611fb0148f921a01db0cd2cac6c6cf2c68c8aae4155489a118f28f2d05e6d5c23aaa7ba3db59776819367e58288d1c363bbfd7decb81a5602a91ea0d963b0c207034b5fbbc76043741bb4052a3c1b7511a
+B = fd94885d924a51e4bbda4f74f7c2d55ab3ea66330eac3a5710cf8db499d3a6a8fdbb94ee1afe64a5b134a47e3adadbac10b26a8e8fe5aa5bf2ce1ed478a1fa82ac29edb9c2e8404ab38a8d4f18e542f9fec20d6e445b1a5ed2d4bd5615db0d1d58e20bec18f01cc3d17b9e2f275fac08e473df2f8f309c0716b04d99ca5f0e2616837b1f9076
+GCD = cd57d8ed89c357417c4bfe4459620bc0a16b89b1baf19e404e5659b9ca58b9062a0ef6c0a98ff967ddf00ac9ce5e81aefa17771db7a0706275d75d0f1b7d7e19610d492
+
+A = -647ba90322fbaeb96f806dadfbd81b30fa7726527d443d2cb73b9686c8d08186536d2db1c412c88832d071745d824f1fa82c977d9796ae5ce0a7ec308d54957d5f7e59bdfb9831de09daa470a5989139350b199a8b50214a0cbd1ec8ec11e5bae857fb03186bfd69bbdcd773562bca7f36e68be0a88d674240fdc40277fba7ca538d20853a622
+B = 490b12ca23bc84063c8a3d9c7ab7786adc96e53b818aeaafaafd88ca962c128bc69239785373cb5f0a4a91f32ca9ccfa54b26c3f36adf5ab7ff7b7fb82d1750a229a8114ee4aaab155dcbd49b7c84d1c1d64fd98e3e6944c3a434ff6d50003df9ad4efe43d62046b3c9f18466acdc0d88fc041fa143ac09496a6f3a698cbb1addcd9a0a6b67c
+GCD = 7bf1ce1a1c3e3d52c4b53d74a41648dcec6a3610aceca319446a7d0ebdc39f1b09e4483af99aad27b1bdfc93a6a6319d22022eeb01f799b91378b4cd1265b0a97e412ea
+
+A = ccb96cb2f82f8ad40e5d0f5833e2e274bf1633f04a8fea29825a0f360c5ef1c57c70801119140af66168cace4e402806fefb9d581d9e376fc0cb7389db658a9df7953c9bd4bdab44941c70f0057adfefd063dca873a207db9c8bdb18b3ddfa91baa7102d204a7f9f5c3bf84f5c9be4439744e0902ce08bb9ca994aa0bf571e2faf7922424e859
+B = -d71534d2a4f1ed6c64200fd070b7c3b313f09450a07177c1b7c2229f3988ea2a2b52308837d4898e3e63edfb5fbc633abc1885104c3e285341ec86de17b63496a3ab7a4f33fee30c659730933e7e36bf98231c3af4300e5f9e0d3115e7c3de2d8e38e7104ffbf5ffd6b7b108ef4d52cbb6bb54ffe32f9902e34b14f7393c04b48f829e3db4b7b
+GCD = 5c55fbd8899ce296538eadfaa22e84db5eff475d2567018c7cea7b6bd6573116e400b41fc798dd832d4057f38df1ca2a8be73d6d42ba83611eef356fbc1ed2ef37cd5fb
+
+A = 51ea54ad859fac06cf0e7a6d522485a3d42e8552ff2db4983e7d808fe1b8d993c52fb36dfd13ea0b8d634fbc283d4e24c97d88c77f2dfc87387ac39dd705ed0cb6913ff791f92b51279b79dd021a203aabdf3d926995891f1884776cc82dbd087ec2341983b3ffa4f6c6b81aa6869617fbab658e109dfc44d1aeee3a207044ac1ae14868630788
+B = 2008d39e8337d5f397303e1cc67861acd2d4593fb58122afee92a22f01c9c7b8f14e45e5f146b4474c45f79f198dbe6f6e254def50f1d476ce7df9e4bacd81244ab4c1fd9531797c1324870af91cdf87963cbaefe67891bd43114a6c0ff8f5932f5a436ada7878e84b8e92f4a1bb94f33478618e277d7e74ab997a3f1afee8eeecc92b771c47c8
+GCD = 214598e8456a22d3fac7a8b41888873ab857c65d3830742f7a30b2003411b41aec6d1c77718046e4c364861dd8da2757f8cebada69c68240e53693b5d40f7330ab7366d8
+
+A = -122cd6f55e92b864edd26f90ddad77ae64d7faaab8f146ab427a19e9f3c239ac9ad0452f1fa0ae94dc2272b72ccbd6085d024f2703c35895be6785695de298483cc051fab848a2608b20d49aa70d165a3dcc9e92a834a2670c871fa20e8a16805b3c0ac34916ccde0ead3303466c22d1970fee358e626b23144531d39b2d1ffb5dbe782b6b0a66e
+B = 87120757b60840bb60620749af76c8bde55646d622122742d9e074be01d4e9aa7feb96c5efd85a07152f90f9e3b86e2a4ae2f84d88a9d4c77cacbd2906bee66dbff8cd4e171f2c75eb3b217b11acc9c5c54f65a5cfa9508a07fbb5a61f63497920ce9e7d0a8f02e860767e9109549751d26dd2c55b14ddb8aba2ce42f91dc0b4dd839d1cd6ad48
+GCD = 157093a554216c7e675db908e53914f964a9422c7ada1b5af774f505a6d130bc1d8a1c496fe22758c9e9a33be75b3fa296ee55ea5df7ab6c1cdbef48781640c5d2079106
+
+A = -bf4a39586658fcc201ef3a3e7df494eba9456a8524d89158958dea392a41a66541cfb1a72484589a1f50087e67d0772782f7064156bd01082d0b97bdc82d2c1911b1ae77391ec7ac9aeed197b5467d66d64fcf5b82de9fded19804efed393a1c8b5d46292f5dcee940a74d56d430af639569687ef808ccb886ae3d148db408057ea635275cdf35
+B = -2f1471fd7288beed0c99598fc28734050663deff146069f220548360f226b8821217269976a107911d1d94688519bfe6983cd0857b6f0a3f84f9fcb2d40af9676f43575a66da92f450fc5af035cb42baf288f353e164ec99bae3e98c37128febde8cf053168c88ee303f3438e79b6c5df2a63517a8b4107af8002c797555d88e3e201c08d1cf6c6
+GCD = 3b7617127bbf518466b3fd055af4e0ada0d96acc00c27d4ab2e1db5c508604330cf04cd928a67c32cdfd7923758c680b3ab28022c2821341b05be83ad54e38524f00b087
+
+A = -1d8da70741ba0124e19aaf5f39be7395895caedcf545e9057d8bd5acb9e9c9af039ff42b28cd2a41d6c7b3e7ecfd8ebed98b4681bad3b3bc1004fd11c4a769595fc086cb578c407ffddc50fe28609882a6721d61e23f79115475260e2a7032a2324397bbe36a526b96be511069fe6bb9c1375e5f52425093af77bfa0ff882ab275d1be7d6136294
+B = 104f32fd867d65cb3f80efaa8ac029d92caf774323fdc2335a25bee3a337b7ff0255da3af901d0d8a0ed3f6600fc89e4920eaec472c161efec51dba95eb3998dd168a0d4e69c9f33f45cdd5f1f0ee330e0c6cafe7bac86de25470b1750be6156b71ab11ef62ac91daeb56580fcb52d18a9982c04c8d388e68a5a202b1c525cf0804dc824797dc4a6
+GCD = 50254d0ed8eb6fbaccb25b99ad37191a81f7a4f436a8b99f7510f125a8a2743dc68995d7310592f2dbb1f738401abd532498d5295b302d3167d0f2af36dc81cb1a945eca
+
+A = 500f8deb6d9dce4e937bea437e9f87f2b85a7c5200fd64ec6301e5b9c2b924a0e6fd1cda1a9472ac000b76466608e7ad74956641712cbca59ec276e32b59a6962582b07ff2b0afb9c5b5298647e956c70585d94a44e3c69ccb417dd5ba4b62815b6cad2d902ce1cbd9113921b1319591639c850323624cc8abd29bf0af8f38a26fe0ba7e1430043e
+B = -5b9013cde88e7331093b5b3c6c59adef2fb069da4b9d1302579aa3b69aadeceb39b8a729e4e4cca7c8b3e7bec264693a1d3aaf6eed508658e776095ccd0cde96aec37f60eeb0a98af41b6d300e507c6d2a6f52712a63c911f3a881485e738f7b2517075d56c3b3f918abc6690f9761bac57fa1673ea8179087582c8dc16d01db3460cdc5b9809cc2
+GCD = ff38e045d99cbb2f3140aa278f7177d4883e2ae3a0526971c8636d17e2e8cb7ffe924521da966923d747d9910cdce6cf6ccb63d92486a76190f12a29e9cfed62f305d22a
+
+A = -1dc1d3b8dc2960cdf9665c5f5d300fa9bcd1da341261d8d8cad88e12c7ba40e63ea9a8dfc206feb4029e6aaf955bc3dcc049f217452fe3bef0d96ee67dcbd7ec7566a87fcf3ed453e5fc6dd449fcb74a32d5140edb62b0340fe45011d7a662975f37075812735eb10362bbeafbcf3e298cb18465d750cb80c83c0b5b659f912b7956d027f2abc52ce
+B = -55f3d3c95a560d6cdfdfd7e5c45ddfa4451c1a68bb3c62fec817f14b72c20732b847927d34cdb7e354849c147d59478d0b410191e7a24bbc9dabf6a60466cb9610d48e096d52ac84c773e2fc63cc9f10cf3a987e87a5b5986d11bc9f83c31d98d7cec222d6ea1b470d4df3049e3e6c9441674a804e2d131644f1fe905a627b80d33deb8711fc064d
+GCD = 1fec8bf2ab1a085d1b97acd55e42ce90c09ee6c213f0f695cf0669c4f816bd6cabb4d961afb4c2fe4ad42c1fbd3cafb683224c757db5a62fbe40bf00782ec7dc0498f3eef
+
+A = -628b0e2a53cabb32757fff133eed716037115d6b23d8869e08e2082021ba0a740e43736ebc0fc827dcb4ef11b4037107bdafc7729e33ad3410022f79438d82a8b05ade589302dd1ff5f720bd247a5db4589a56553c80afb39f45d4589fb3c142649d8a8cc8ed5c6eed0af66796ced843f2772f38d848265f13674397f4e7b83d974164e0baff43240
+B = -31354213000d57f03a63aefe92be435fe07744f1200cf111f6df57b0b89e0368ebcbe4fda50064de60aeb21d2e88e10027552dfb58c67b9833d6a33f077abc53a3fc272fb446d859d96f00bcf112f4188c62b91b27c780381533003a65433710f20e386bc1cf05d1d772f9b0fbce92a06480adaf675d521c0c87f46458ce46b5baaa9dd651027a570
+GCD = 31af548346fed09ea53dcd763f6c56a0925b3ee7eb2ca36b24eddf447f743dbb341551e51658e45526af3bc2bfc6b3f063d5ec8e00b97103e9e450a9a575ee7e91941cd30
+
+A = -172fe45a5252fbec4dd289c378a8c074c7e0dbe6e17b5d8a9a77503b75dda3d22d82f995ab3f9cbeefcd2c5836fcb84bf1ea5252b4022447c0eff74acd53aac886d96556e3a2152b8f9a67fb8d0ea2c9e11984b3ddb00f3b6cd56f032bd24507a1885c06c0c79fa7ffa967e27608ba0ea5d1c5610dbd5c4c7819f4c4a2e4698cabb83dd7cea5c9327f
+B = 6c8ef1f7ee9937b76d865d54f0e9579748fa3de4363c7d334718ff0e5bca0fbdf436507cb1eb450c17063335ff88dbdfe4fcec973da1713f6e6e7eb4c60a50e3a787e8e6670fc58d3b6f07a08a1cf03058106d076bc8a996f293b7d85f2b88d0d257e9d42473aed894244a7fcc365bf0fe254d15365560c7654e2f6114a0353225e014f2f9326adb0
+GCD = 14972c88494cf36cc349e2793ed601017b6bf916d8db44e691fa20924489a9652f507725a8e1eef174329a696af23b29fd373da8cd45c5e9bf006b7676a054694e6b25e337
+
+A = 2b938a23b7592bf06778359502eea2ed28a56ecdd984dbb45bbe9fa60a4cf35f25443ead6946d87471f6936b205cd4bbaec1f932c3e39589520f664a3a03c65e80796fae9caf24e51f66de3ed19dae4ada8396755b5453a4cc431860dab6d0b8666338a71117c66a8483ea1911efc3cc7400d81ba7730730d0ce7ea4665750405a859e589841c830cd
+B = -40fad12d653450e96425a94c74cd5f9a5d8bc865b5ba7dd189b133be7eb73dd491103987b6a7dd4c92f89f30566fe90520dfac93aa6daa801f60521779e52760fcb0b8faa7223d0586fd329620fe2156685bc7afaadd2a22078dbba42979a4542c46d2dce269716c844a6bdd690b2e46d32d7f030fb68f047f6b820b0aa2ac60b81444d1f3054ffb41
+GCD = d51e1be17d01a5a3a562c9e838f72ec0396442454f8d57d2d5cc3ed067c04d69fcac147050529a41c81d7313e519ff2352448927f847bfd34121119bb5b669b8bcaa500b5
+
+A = -cb258fb9b7527bc8546c218c14a580666c299ddd571d52adad2889dcd9833a939de7f037337f13997e895d91310ceea034dc4a808cc21b1db556a27c57d4846b2ea4d6cceaaa51ee962af5099e6964cb276ceadb56f95d65e95fbd0bb5630b76c778659f7907ccb9bbd62761099f46410bdb1cae3f1530ba99c3b9be6309e9162ae6a1fe102f93d845
+B = -b06ac046635ebcc28e81be9f696e0243fb64ee487793d935cd825515e5ee2cde6eff83cdbe1f35d68a836322f99fb0e48fc49efee3055ec2dac9c9c6c550ea379f61bd8a82bf8cb96fd2024913fb1539438a00c9586d83bb831422069e755ef60cbde73465d0cc4fc64a4835dd76a64b3af090fb53f8f9e2111d6ebf43c536fd81bc37cb1b26d66673
+GCD = 103d50e8d7e183bff76f7a0066ac7efbffc6a6364512769a13010fbd897854350ef583903eb0dc6da86f46109597e4a02fe99d7752b33a7416cf4cec2e83fd97155f318543
+
+A = 99bd621b0b36b5db62b260100c57756ee6dbc018c54722cf8f4e3337210f2326cf3050ac6118ed3b76436420a8e832690ab433773ef682c519bf3680b03e6c35a66681f48f1c160976347e6577794657ce3d242cdc29501fb0ff5d4385c496da441c04b383931680d039a1fe8d89e59b0761c91bfd478238ff0787d791cda6e67b8b0a5f728dc43d50
+B = -3352f27baca38cb00ba3c43aff58e6ae19f76c115c330cdf712d698e638bc8f9c66fb77ea734ca6b633d7495b1bb992e67307ab27c982d4a9696791406ccf6226d68cd2577062049d3187d6e30df09d679b156d637687132890f231039fec719bd6b3801d9d0bb19fcd4918a1c48189a3bc1db5287a87d486a7c78c9ad756ecde4bf7ee434ade8f5b20
+GCD = 2541d6f5419a07c6242b70744215ce7eb19149c640bba839202893bdc063f98dbd1493404a21167338a3470f43733b08ffceccb20e40bbf0370f22bf9986dd9823d9f7bcb0
+
+A = 658c5045e7796579b19cef6619bb689f6ce5ec1091353de6a1aa62d22b2d96566d2e99ac3925ac2a44d763200b8bffff3733f60b871cf8f1f9442c3eb1c4cbacd5367f8c3ef799055de647ba23f9dd9bce1531f3ab5ba078a21f42bd5d5b1d31660554907abeb94e84e8f289885d91fc8a8fa7626c379c2b1edd416ed808e18171879a44e9360da16aa
+B = -154a4ebc05c9675b2c684864cb263d6f6ff22a82621d322b97b3c764c05c18dc9d4667ffafbe781f77c005942fea77403a1a2ba943694455ab9665c64a7a338890897cf6fedcea2ee0596171a6185859ac2c84eb99b67b74a907d7c4d273adebad68541910266f3fd30ad0082207709619593a36f0c9648cd1eb3e102189fd781892fda35f1c0972339e
+GCD = 65af96657a43ff35d51b6694bc1ed0ec22c5c932762b688aac12ad9e3d177c649b05ae6d9172315cb48033483753cb9a2f46341cba0c354bc824e887b75f4ba6d712a3d97a
+
+A = 1e4f64ef6776fb0da068720ab1a83dc5ae761a6b3ce958db32b2b0dee7e2c06a49389fc9a519b1f1f3d7e7d543bac9445706a52df1c73b8f444e31a7c540908dcaf983b4d268462b67a4e126a1c82f9832bd1fdfc7d74ef74672c3a3249006ba27ea108978fb0102d6c480a1443135724017bcda82154656a1325ec4021693860d2d9af6857924e2d4b0
+B = 282090b311b569ffccca865737160c0628e111504b10cb37580e9bda012f49aefa9cda58bd06a0ed1dd990ac85f776ca8bf8f74131977cd8106f5f0f8941a6486b181c251182e20ef75b7b0971f9d95a910fe4e3c065d194395517b79c7262c086ea80af119bdbb90690ee837ca5a70208957dacda4fbbd1c40a509a2a70064ca85d2bf7097b1df8c7c4
+GCD = 8f674fcf35583f7997a36e5947f54e853191ebea29413dc1d68e31c895f34e7b5f236da2519690c778a019d3fecf7c829a30f7c9cb02135a3049b35e85b77e23f401557504
+
+A = -42618b21493dcdc96505929fb8ed9a07dcd300d16e29d2f528757273e596eb521c5e7c8190444a755f142a53dc84d8a756cd0ab52b3d4a586a8027bd69855f074be8d4583584af85ee550488dc00165f8c16da466c252a687efab543c9b34d7a86f5b3dd43324912bc4c12e75d5f43abb1e7b6e014f0969f7f5aa43729494b5a3b1d56fa0e33f047a6fe
+B = 2051e8bbcd1d8a00f0d179b124e8506e0817f5e2125353860458a8dff82a016ebb32908e3a81c7a7d923095832a58cd17064deeea2607642f4fa6ed0c48914c8ab1eb68900f1907a430caad8f6c07109ad7186b6863f4ab15ba0c93b3b1d2606c8a0d552a29f7b795dafc163ab29a4f3e06adbbc3961eb1a94aca2b3fffdb85741acacc82f7ef5c32d40
+GCD = 6a45c6720435ce6abaa6cf141a1f12af2f68471644721976da8e3ed320e42afb61958b9689c9f0db9867fda73d7519cd07ad5fcec3e1e7c477ee80d6902d0ca5f231823906a
+
+A = -468904753b138a65ded2657340ede8c7d79041cfb5c12d30cf79ab60380f724ce5142645141c83f61d014ced6a02d74f32d9ca830741d4772f3eb0c0a996eb9826d23292699f2b5a094fd2e4f21648cc8c225922a675f73f2150b5e720fbc74747c5f16e71f98345271044a3233fb4843f8a6c84b6c120a3581588714b9571582141b3fc16733cc1cef6c
+B = 744b38322466d78c8e92127145e39c8ed8c1c3db291009af3260671e7a096a5026fa8680a522b07d20cd6cb2df919c0dc566eea6afd013d84f9d54242190282407a7791a740b803bf97f5b5b3c5273f73aaef095980214c75696a7288d9b7e6cd9136692ceb6276a082639a4d92321754ed94b589c27ed49e9cd634d7545bf478f9a8db4c5284971d7bd8
+GCD = 7af66d790eb6f312134c56b0081afdd92d30ca38b3a85095cfe951f21009060ea37896f4d7871312b2c829821a802da2b5994a7d34faa9af4eef5f0bfe12e38290b94e2cc1c
+
+A = 759c2137605d4895a69d20f020e57895db4ff81253a8123f13e7bd1ac3c9999effd0376a9a39ed5b94932be051621e4af0145d7749e29dd12b25ce588c5872df7fdd10404f95fe458d36840eb6a841c42023e1f658babfea1bec2b2729f2d3d89a6a6bc02c141deb9c86764e7f93f088bbf862b4a19b51ea22b823d5066eaa9d97a5f2330741f62c82fe8
+B = -12c5942bbad55fa6ef6576c96827e7f5f7a87837510366f189bc5baea618087209a905a1f079ff03ae49fea1c759731bd18377b513030b73ea3453fd3d52498361026c4efcbe99cc56f78e1ca11c54f0c7246686cbf1e9015eb2505a4ebe9e6c73ed31cbb1eb1383741c2201adb80ee633b384f71b09db9730d43c8b8025ea81970f09eab2b6094567ed0
+GCD = 589d64e5cfb79309f63d0b35e3ba4e12cda01e26df479af513c7d80f75f0f84c06d1172c82ded097744161b461d5e70e3f1ed4325595c02468c0c991aecf8564d20a8395938
+
+A = 12bdb41d8d54e99b4f211bcca96343998e6fc66397c32d3f2dde511aca69abab5320e08947551849c19e85d72ee1b410e0777372cdb5daf5b13473e16b4e32f4c1eddb7f7860e5535eb1eaddca0191f200c9b51896b645f080532e43e311f1019303c32f29bbe342645ac6d731f647f84bc1738cc102f080bef4f502eed04bb0a1e1bbb35a761ff060ac6d
+B = 3974d7b94750cddc6a255bad4fc733ee818b742ac40bcf30e1337a75af8f38a82b3c8de508ff43c526a50063ce87a45be5520497e9f457ee5bdce7e293bba6c6871dd0d2a50febc574ef5bf9f77fddca467fcc06379eda15f0150a91c3b551126ff2304bf11544f778a840315e2b8c278c048503fd7a5f4c7c85330d7057530b06f5cedfba4ff4a3d8095c
+GCD = cbad210fe24ee6514782ee5c9b930aad3012dfebc1a2361a06d66a99235717a9741b1bb83a475931d78293a06b9cb2ee7d84936318df924591621c5fbe8b9f1490e8a55b07d
+
+A = 13a73cc4b3c6f51798d53319d4d42370c270903447f906b0ef2f0e1a5d8319a030754ccae0eecc4bb2289cce1986d18285cb65f70e6fc6f2c2700dad5d37cbd06a9b2fc9157adb48d65094f88a2713aa4649c967bd19544448f3edd6b5e9a2e0497de560795ccf9f448911d8cbf41268cc89b6a2028c44618e32369837b36d5c1b4500c0d47fadc59b19bb8
+B = ee6dc9328f3696483ef45f839ca880a63dce610bca83f41bc92c3132234ab4418ca70803fe6fe5be4a44d94c0e9f182c03719979ea6f57b29ad2ec19bdbf55a1b89e9799a6a96ccf1d12449f7adfe51df1713380d93a21abcc5da4337cd77c10fc9f2c18154886d0b2b0ff8a4c937bfd0744ba78d892772fc83b4536a4f963fb37e9cfbb3f949bbc351602
+GCD = 7bd5a801017a66f16fb264c01b78e417e8154ff42c5fb216defe1fef95212f5df16506eb2d8f159ff3c4c5cb40b043c1de4d31ebcaec5367373cb6f5670dee56ad91abe5b696
+
+A = 116013382296fdcb0509ab4fb83c0d3d31ec8781b8af5f3d22b3e678ca68b0ba8108ab8eb64625ea2c31c1bb1d0cbc6772becc091fdc806e437e9b604db9671d7207b2303bbcb615903d2867494dfb3ab727c25e1dd34000bb613e740871b2a4fae5ee7c338650380d1bf1eada4279f601818068ed41685febe4b4e896be5b6cc0114491e910c99bb4f1ab0
+B = 2ebb4655bea88385c3e090c6b30bbac5a7f543186e43eae765291f6e759f96e5d1100d583ceab9f01090903592249a9ec83e9c44b79b90460c738cf452b47d17c0d69f99c06a69b6026d2855afd6e6e8fa50f0a3f4e9c7f894cb073d20d75e97c12541bea23fa05ad4c8873f89e9e1e14bf93d030e1729702acc3fdb359e604dafc0ce9727a4403567472f0
+GCD = 2a3804a44bf2285d7f63a048ccd35e567d7a6af4b9acb00e1cfd4d23b3e342076d4d18d64dbd47c1473867080a77e47a457fcfc868a663f221534a6139c61a2d05611cb58d30
+
+A = ccd52b3197c07b9688271b1f9b4cd8064d040a326d2e8cc782e053d23a448af3b95d677887bc90f359890ccfd8cb151f7f1e002a58e82dc32c5cccd358ebe4bd7337e70c7fa0122c668b8ede36e588c92922a850eef96886b362ad1bb46725cfdfa3f34d1172519596c56df1c2aa6058f76ddc892b5590cc77f8d55d66c4c7b992273b892f2f29576e264d
+B = 167ff7c9b791ef06fa36e4b88332987ca835e924b0d45589bdde5ccdefcf5173deededb1902e300e60a3e25aad9cdd6cef3658dd7a2f5172a9c94ba2885d40a35251617ddbd850c37543d23f08826a343beeb7cdbbc49e10c629ce6fc016b3ea617ebc187cee83db885c2d1225b017233bca0b3a52885ae6a13a6f68dc9260bc4433f011a1f4a77793d8696a
+GCD = 7b2e5073a975969990085a7f1c47c192423cb3e32a1ae1c7dd5d95d113f76b803938fbafa78c6190a5ff5872199aa70ac1c12b59a5679ecfbcda909cf7ed16077fa4527d0fa5
+
+A = 3e993a6d40e09889c281e688338d427fccc7300fc3ad750b499312f0f5810d2a03bdefb98dd72697afb2f0893acff757b8631b39c6e6970ed64e378d95f757f95735e4beaadae3ddd710268fc5f01a5aaaea981fc82fd19dd39b1f18f9240a206b43ad225ef671e7ceefc2eac8b425274a29bae02d8feb9e1c1a11888bc4d85b2158ed8e08c0381791ce86d0
+B = 2a38c3f5948a2eff872b9d7352f927b13cad03b804d39916c6ddbd72ff32e27af0d4629213764976bbb01f2b2654c9e8c61f2c4c933a48d973b46acd7e22fd691ad1cd50435dae979eed76f90d9335df322cc9637621cdef7d55c9f5f4062ff57cd02014104a6c3414555e4d679ca434ca698eeb52c942a84d7ca91e090ed60d36352eaf21b8b19951715960
+GCD = 1694fbbd006933a932fff32df2a7d1f897f60b5901cce46f187919b6a5f52b8d03a266a1b1b8c10820140be300bc49535f8db83a0f32dd5e4fba8f32c349bf7fd8c1c28baecaf0
+
+A = -106c3a237e70b4bd2d349c59581820ba71332357cba7ac2eb5f936e63eef61901f324298f956b42bf349d4b79f4e403c8f86c8c103c22d4263e4db720d26cdcaccf8babcbc9f75ece96f43ed9cddd4c3faaa6fc50c351d46cdf2fae1a74e59736d3ab1593cfdf2dc78f4c23bcf5380df577f9b9388df56d16c6a942998b7c7bb08fa8bee6f2a55f8d5b68e9b6
+B = -52c80b897e0f513dfa880116cf0b3b643cb58d7c7e09e8cee4a237b0a9c308fa9fa56b6383e954e31b7aee7198ef176aa82dd43b6fc82eda558de4938d7b200cb00c0ca0b18acf65fae95f1a172a403e2654ea154645fd47d3c408febff17035755d8ff9474fd02a51286223f6a3fa40fa6b528dae981ecf651466e4bf7852c2237e110c9aa358cdef1600b5
+GCD = 138da5c12d454b942196d826df9e4bd7f06329ffc3e4985cd945e39ec5563bc62727c3b1f906529caeffd207d71a752ab4fc655e1b6c6a32d76ece9cd8544bc68173ce6329701
+
+A = 6e116bb11156442aec05e86262e59532756fdfa0fe2c7a8b3e2a11589e52d385bc08b5a3c546b7416604c5d338ac819c9a38b84155d1d11e02e941e5c9b13b850bd82590cd12bb28b07bdc8ae73a4007feabe6b5709fbdc6a02077035f275797e68fde3c6f0f1733d30a76fa8e03ceaa9f0e0235de4ac5ccfcd458998c2965c6f92d91af53c4bae95437d60ae
+B = 6b8b7bb3ec30e277631d501e4806bd280454efa36f5d420cc3e91a74ea1dbbd0d58122cc04769a9da9d77fa83491126097b404f9e5c0f8e7df62d3f022a3268350820fe4d00e7a860aa2cd17152fb353c567f354ea10460e8cad48d2d7fed192a62a34fbb48c2b6f6e27fddab67a5106572c389982921d73377f2220ca87e330c8ee4fae050b2d4aa08aedfe3
+GCD = 4b80bbd15d8054667664ec7c3edffc88a156d502642707c255bbec9dd16d861d64a8b3852751315d8260c598071c0ef0f783654752273799155fb4a9bea34fde70a547103f8f7d
+
+A = -658b769fe1ec0c9470bebfa6d42c5fa822f0bc7f57f23d7b97a7e2e4daa57f550d1a3154ea91945d1f04307233d2c526f0a007b02451c2ecc3da0fe6c52f2a36fe7ab7b2a227f979acaf58649eb92aeee40b7234b26aa4202f178ebee4e4af432d2397db712355c64119dad797ab1e5a40827d7609dfc502ccaf50bba16eb62b079625e832f1eb939138318e2
+B = -15bee54a8e2eed4bdb26a17b4ab06a17823805d1e7986f02283b71c059011d25cfbe4d17ff83f4d3a6d8831ae691fc1fd379d52a04812acb9bb538a3494648d5284e59c3728a1004553e9d174ce3486e6d90d701b5291633a3e0323a00515f75871e9ccfa3d2a40b3365e8004b3cffdb045509055e62a68a06eb4a581ff3b6cc324c1ed5a92817b47135df1249
+GCD = 118d05fe7839058e457f08551fe5f9c89f9d9ddc727f356aacc94ee805b17b84043526556a87f97a41997b53a13b0db422e0a8b58c7cc4ff065d9af63db5945c3e4152b4190729
+
+A = 3773335e80d7532130b503862e7530c9c5d9440553d23cd423a1697214f4933dc50128b1a38a3df3d2a9f8bb66ae1d08386f0bc7c84b09c7436dd2b6296313f57d8e5af97aff0dbf45572ed9fd5cc7f2ff24a2ef890812be54dfc373279c40c8ecc3c42d4a279c6a0f75eab8d07b52f7b69d62f1b1b5676406248271ba2fbb1e47c33e65568f9e9dee2241dbc8
+B = -3625a177b05c105a93380fe83530e6f415b00b7d5d26ef9ec0b2ae9013cb28c6a446814c6da244a67bfa05fef46cff666079937d742ba87fc4b0e32b907522606fb89a630d317134426c8bea1f5cc62d8d0e246eef7ba8381c35a90cda907b79c7868b3112fc1241e1ea4b126f90925ea47c1c53ac3137a2a45fe2284549d97a1fea360d64fac46d23de77eff0
+GCD = df634cad101563165e1541739fc6041ea443098d69381d9df62e21373622b859cb514af64dee785802ec3c0bb82c8debe46b85eeb4eb6cbe06f42ff60de1fbb635360cc527768
+
+A = 16153809f7c35e4d82547efb033f083cddb73e0d069727028d17dd2dc7eca38e6eef767cb7dbb9adb0cd9b4189440fcf56367ab9c445240276e3283d90ee88b3a562c449ea2ada4a19b0af19250a6b671be6d48e3ca201defce42756ec98947a1aa653d599e0720e90fa2327c262b2739800fc15730ee7dce938cae29c2c9e57b4886eece98b1d9a4895c257514
+B = -3d0815770076c6c347449d2eec96ac6e5c56b32a69ce986a6f0812d5eb7be90d465c0eef362499dbb79a792e39064ffe961949491fa361f6601e534024ea88e8b75d26626b9808552540cf08f9a63eace949b51974d63f6c45fc6abe40ba4332e0a0ab90ff58cba40b716e88565dd6ccc329f18fe6bafd291d3a886b1a9f653c3bacf87f5cde9cb016d79c4582
+GCD = 1a11d0548fd3fcc723ce2d5a58d8052ac63188e427203170e235f7d24fb43d1a69a3ed6ff7623c3a47f09879f7e3524487c1f162d80b4235cd72e0c651aa41da8661c717d7886e
+
+A = 19e4f4acdfa6379561e4fcc72adfe054447cdec7de891ed5179b34ddc9a8728a09201ecdc13316b25b3f9c70b234e8dbae0d226e51793f69036ba109a9318e0fd0ef53a0255ab4c08f1b21ee2e74ef07bc122b910836c71a4e52dbb5e8bec5d7965dd166f3e8c8e7d66efeb8153ef4d773042fab8702962841365e7b0d447f43c0944a78ef78d2c159bf9bf92b0
+B = 23a789a04dc6b013f71a53f66f6ea941e058780b0013cab8bf4c5355659167a78dfd7e708d9bc0a9fa9b3ff2cfa0ce41d60f4369d9b30bef9c09d81d78ceb3d627ebb6e88ba71de5b4332e712406005454e78552ed0a34d36b9ea6cf140e2dc79602d63866a43ccdc34da731297710ed45ae2b4c9b4f4eef7bf0c820a1f9786b4263d600fb376f9c75723bc8388
+GCD = 5fd44646d556f78b05fc93e514f307a0cece74985ffb4c216e7463268ddf418e6b68289d8e7151921f11669536d1f3bbc01975eba6ebb8cf3c12e8f7d8458389e8284d110b2708
+
+A = fedb1db662442f1ecf0c5584c39ef4911ba854228d84f6dea02a3302b101d470897a73a9c2cecdc933ba030c5b2593199d9024b9ecbc1ec516894a3ee8e4f4be289f18d6d11ab117ea8ee4242e0b212800dc70b02fbc74de0a805689439650ac089e98ff24191dfb04054ac28e70c4458a7c5bad0cff9947d2dd15167747194a059dc6dc347be231dbd75042c2b
+B = -666c5ebfad976ab023ca571ba50f850a3d9f8964983397c1c4ab996fc8921dd376bb9dce143bd03a1cdbfd9ee03f2961147c42b53d07308777045f51289a3a3689f2a5db6492d478ce26f866383b23771703a02ee1812b0c3d05c331d1409e1cecaa86c10bdd525e0b0cffd7617238e54ba9956a12d5f384f30284b37193df6ca12a3a2313fef491f43581e3ca3
+GCD = 4c314f61ff0d0da6bf4df52395eaa7ed7d3f3f16f5bb9fa1ab82b07e7dbcee2bd5438e26d5f86073e0062e0dde824c4121a377c537d4d7bdeccfbc67f1629ff1e21ed4c4702f79
+
+A = 1dc0aced92994d2e5c24060c620576c3789738ebe5f7810c4d763ff700574bf63ac366ea3971b76254bc3e9a5b07d87da5a567aced1d7e4a7ab90c67bc2475622402cdab454df5862ecc5b46eb8919d91328713df150d5da542d1b3704def1e92da92b0a18031c87c036e8bdff0c83858944e0c85486d3a44a8fc5b6e279d1c4fd7c551da71b158cbef71b22d0bb
+B = -2c03cdfd2614ca09407ebf500a54179d9c76c92d1ec63aae4b5ce5c7a9b0130684491e2ceac349bf84358474577f99f3b1b5b734358fdc69ca96e3dcf43ff49fe06136aac546ccba54b130459771a317003f0228faadc33d41a88aefcc215bc5ae5297ed41ae8a9c04dbe2f010bc49111db4654a07891fe54676edc8378c4c97f8bab7b9435441c1ece0756db9e4
+GCD = 811a1c35cd903d83c563e1fd437d7f4e76fa8e4ea97a61df30b7e993aa7fe2d7fd491dcbf45e545f52493baa941c122f81f62afc2aa4e6bd853b91fb2760978a061b9ad82b9717
+
+A = -1a599ec72823ddb64c36f739ca42313ce91532ab2a24eb61f85266f5659c1a8691c848f7ea5b19dd91b5a4a4b0d23a045352cd84b522befdbcfb9d6809e81c4370557270ad3137eadbc19113ae21315283b039a5c7064cba8797060620d101dcc9741b9e178e6c845857c31d83771bdfd0672787a3d86e97fc22c46bd9e9dc328b82b6f019f5ee1b6e49dee563108
+B = -15350e9da0fb1739125ff455eb09daba12605c8f28ffabd786e2875150650f36b8a7220eb2c571e1250559163e22f12f65f0c74ae5f49a2cb5301f9bff3192be98636f5e03f127e73473f5059a2f4d9bf9efd7cd6cc1ec9d38e3b9e26ad85c8de6fec79e7bbd195f5fc5cf83277139940534e065f9e3f6b50ff0a2422e12b6db16d3ff72a3164a00e2bb6068ea1d0
+GCD = ede3e5a6a8b7f1c693404abcb0a01519282de1832258bb707e158f643d044c44464cf2a3b41261c78d6ecb37c01794a09fcb44c6f4db85a526361971a3738c45261dac4795e0f48
+
+A = 9d254aa6b5c58362b0ea14e115b8d6cf3facd87d028428042748697b3aa105e8e796f2ef9bed4844aa520bbed84efbede2d9ceaed835575233b24955fcbada6c59af92f36d83ba89813e1f40dbc36f3a9495571f3e63f8e5a7fd6ac30b5ea620fc9ba45336125772315eacfb139e49549648311fdd609a1b14bacc262bab25ff95f881d0d2a35016a11f04202a10
+B = -70d6a02d24ed895ce3881585c57473e0179761a0032d21637a06b6786ef177a13877b4892cf7aff93015525bd331d150b06d393407e46126dfc9ee3c706528f6d18125408c01780082827f57fec2a627ab4ed11ef05b988a78f64441b0b0e5dcb73aa0ef3509c7ba297a33fb395126ff097932e7616284efa85fd1e5a503a6c6a1acfb48c3ab1adfab12d5819b0c
+GCD = 34c2f78abd9938d9b89d15c6cef07694dc6e07df7b581666439b3383ae78c4e8b24413c8b17c969e40fa9f50b7747ad37de23b3d9ce53f966c80a0300810da3ac8722c397627804
+
+A = -1476512b768d51d1357c26becd2455c609f690dc129af9a3b0a3427009b31b72d3a7730bf038bc97de142a670423ae77172ca646e21afa4576c3f8199adff7e20d435234fe189efab488a1f97618159223caadc006bcbf77c11675e05560981db97caf54088948b910bccb0a9208cb5ef66c620db4fa59868dd78092a53a8894b503136f1925ff01550cdaef38dc18
+B = 1391c5ed08d372e87b277f16072e6a63a15dd18e84b079c7d091aaeeb5a73783d857b13d481129e57520c61c0f1e915f7648b0bade62a7f9f7916be6a324552062a0a9c2bcf387aa847c113a61cc647bb9a890d1789460160ad3aa1d9bcf2a01919c91c69e7c1ba92f256b4132f96dad1e51bfcab27ecc88e7ba6d7a3f139a5714c931ca20e5f083253f13e8eaaaca
+GCD = 5420356572d3d9c32cb2a0113749c7da88e86ff4e9bc25ae0a63fe943e8cc9622619a5275976ce61cb2962b81c7d6b59f2a0aec0320d17f6df6f694f5d35ad6c4fe6bda1731fad32
+
+A = 1d739c647b14d9c925c9ea783b2c0470e7e86ed0ad7ac19eabe016976a115b70e4369a2b29b83c7c6f826df023ace50ea8049a1ac94d487224f924626f6acb9d45bca737b9d91bc9c49e121ba88a7cde32383481573a9ebe30f593815c65bd5ff55032ed51d474a289b8e2279ba4339fb8bb9312579412231310649964543061ae5f194cfc00387bedbad475a3e800
+B = -1ab0b0ac966f3c6a0d613bc7492d33acd6f6cc4f9f823c9d8cdac73bdce1bc9eb467ba17841c689e1d24f298f93b28af015b2abea54c90672f4ac9c6d1bc6d57a23795cec60c1cf040a43a81c9c7b57c093c61a2ab83f4886879b30d0272defe06bb1ff39d08737f79f9bf7143d7b7962decba9b6ea5fecd764cf997e27e053a0047069ecd8cdd0ba320d46726f377
+GCD = f27af786acd5823b55e2a9d89fb27db0c71cb62c41e034fb8004a7631cbeda8267802606bd544a1045e01cbfa4c439701b256cce895e97fa8a181f1b37894c97a211d97ccbdb83b
+
+A = -e41ba44ef0a3ef96b0e9829da414f941be4ccd2a1f50bb67a8968b5b56e7c188961e0025809519fa41b65c7e81ad7e8d7407cb27dfb5621f662e3e5b33b3d0da660527a75e72b9c09d979b13edd23ed3f980c45d70401908dd2de61008ea222254f82f94132cb902b70d2422d20fa1252a066b498bce838596bb540d160e4d2c3c513fc76bbb34987e028a16e77cbf
+B = -72120630d549bf03f75b3692196ec006b92ba5d592e8a491d78bdbc88e19d563426559f9c3007881f684cd5c9693623beb8ebe8c2bff5ef471d1f15de9bbb01e73c03378117ad9c8bcf91199f9ae6b89d5b39c3d4f7774ea20a05f94dca9560caa3f7a4a5964e00531d7a77db616e18009ded8ce405cdb43c14db058cae083f6c6ee58390b4201c6a322acb2a87dd6
+GCD = 558bc335731e2605651c347a0c442bc782ac65e74925697f0d91f515a38a0fc80f1bbdedf075170260c020e1dc01730dd8562538267f33f082ee3b6d06c94b6088090f1ee18b4e49
+
+A = -50f616a9f792ccb1ef70f12224666cbd106de6e079d372cdc0a6795aa9dece214bfe9b34477aa7f66852e27b9913e7537ff6e3c551c402a1ff220a617cb0633f9cfb622ff2f186cdf749fd2f18c185a2e8dbb4bba064abfc5f00ce96fc07ce53f2fcc03489dd83ce12844dd143b1faa37637cab420fb96d5553d155bdfd2e8a71e14a38ef1ef1d6ff81a3d2e3c6ecc0
+B = 20de912f3266b0ccd3cb688b964c64915dff91d406d359fb8997de628712dac18d4814c1dbcec039ddaf11a1bdee44ed4b5e313d7d60a87a8320955d4f16131f4c797eacb3cd52a005418ba9dedf878360dc8ef9621ac8a9e35caa6befd180e553393ee6397650271a46b80b70560523ce9c3826b4be8d0aa1015c6b8e1e2444b8f0fc313a704715ffec69d0869c8c8
+GCD = 318c076ddc7149d530d633cb8f2fcd72d1e35e91b6fe929aa9c7e7b4817583cff108b3f068157f4b218d80240b5086f674f04267a1266a8c3b17b2793632e2795c96db19f9ed5e58
+
+A = 60763faad9abc9ed8db507825b827c9ae30b0f9a2ef88ce0b07ca284732418baa3a4bbbc44dc351daf7b5a366ea0b166d1001b2dc6d5fc13dc1eddb4bcf002263a23f926d471c905d92c18f4f9ca82a26759b3d379152598a611bd42bff8c4739e8cdb594d3a777c54219c8adf58f3def18cc036905ee3398d5bec163500cebdc54e5247ad6b40de2f039403a018f08
+B = 25206906ea3af2b5f57257d45fe63e22efd7800d7ef8b59689ff5bc0f6c161d80767220cd610c41976400670283adaaf53189504b6e2b641cfbd02973da9b8dee2f01b19c41ff632ace5254df416d216094cf396737335a4c27d2b22ef9ba82c15272e89f5626fede9c4459b9ed4422e6eaa264df02e0ecf786eeaa0e89b331c3a2a2e551d27bcd67b237fc8a2e0e88
+GCD = 475db32beb7608c2760220455b7095397886cec48c04358eda690743b96624d5f6dcd1090a764e9de83ffed812eef64a197642bab60ccc99dc3f22eb7a26224998cc1a0377f924f8
+
+A = bfa32370445f7222b6afef3d771dbd4d75921b3f45feda0c8088aeec4189b50dbe14246b3ff7df898b11472fab719b65118bb1629803dc5886ff63f7264bdd4033a76c6ccffc7e067185c96ffbf488f3bbf9bc0a8f0400776119f4a995ece92ed63aa18fbe79c8c19b92cbdae8e1c0915291af50795eb405e648599372a6e9ba137e4f3979a53d7b027ac1a8208906a
+B = -4116b938d9ab2312a3dd11cc25eae36114941743f9ef0e60b966f79cfd7447c524d2448f29b78f8653243aa9fbd5f5fe1dac68148d2c83f4b61250d40fb4a2b2566ccd44c3816dd8fe60454a8b1b1f488035daecc7bcbadbe225b6387145cb9b60a6a40b75f08d325f5fab9a0d8ecca578a0cfda41561ef25c1ecbde5b593a45ee6e6a4deb7c77a668493ed467c3166a
+GCD = 6903ade28739da85afcdf76bdb7e02d3cc415f5a8d1c0fac40a21c01f97148a61e23ceefff016dddb1cca68a161124e9a95f3c7adcf2fecbfbfb8bfce0644ced3dfd2fa84e65feaa2
+
+A = -160adbc49f4e15fa9005d726e36a334da8e7904a769be5d80f4997cfddf6c5417b4121de7a9b9e3d228ada2abc7435b39d69cfe6c2bda6d3d90faeafd8e86305885f94cb0533a81ed2ccdac1fcf3f7daeed231a5eac79cb631d75defca88f64f700eccb364241cb232b544ef2173422110d6efc777ac559aad31e1410f23ac7905f6935c7385d1a488260f62652b20424
+B = 47b63fdfeb51b3848c747a75dba319a4c4e93300c53e3d621a08caa20ee37399f9f4a8deab4e718459b2f4474de4f1941953372f13a09ea6e98d1b364e58e4a9eb1c0ddd22a32c91170e068853204858340107058844dceebd4e07e14362eacd71ac44167afdc4af0d5d9b20bf1fbf507cb7c3a9880766b91e75aaa1cba67629e0d8c8519d78d851f9331eb0b480d8d4
+GCD = 16fa1abc9c64ed7e5ef95cd9551c283d1951f1e7422dec2a875b655fd85345b35e648310172d219875d4b4759656e18676a2ce6c6b23b76999b665f2e1cf68718989180583f276714
+
+A = -2a876bb3a1f12cf86fd92902446843eb4245950d16b3a17cfd04213806c6f374ec915e7613b619edfa27da1e9bc9cccaef4f3279295efc31f9405cc8eafaf300e216f026fd4b3cb160226ecc129411f98c04dd5c5d75aaf1c109e1dd9f233765a58bd7bbb47ff98319dfca503edf2768a0e2138117a06f615488f9af12d03a404bf350f32b19f956463341a364ddc7226
+B = 3585f45860e9a23a87053cfe2c5ab15bf579a9cfd6294d2dde1eec8555b708f3c94818f23ef0af3efca2344966828da17e57257ac42ec3cdb3bc305cbf1b8fdae81652abbb91142fb5901ab1c53dffe3cb61f2b65875b9febf98d1e5bbef0d960730c7c8d0ba40e9275260d00e4c58b9058f086ae9296551f462cc1592a10700a6f833868a7a2e5dfdc5fc394e865dc
+GCD = 210331543ac4ff9b3280e87a355ed332c0697cf55948e0e07d88e7895fb16c2f9a9112c4e7380a76e550049fba336fceec74b61f275e31f072df3aa9c671985fff8fcb96df773c42a
+
+A = -eaf58935d789e20af6e90180ad25b0553237c5cafb0b35d1b769bb81639c4092016b6f69aacaaf6e544d8273d4bcd29a1592239242827a886627b911dad4d2b31422747f4941276e2f2ed3d93968ae90eae0f57c036f957e2aeaecb9463518c387d091245edef0b6398d20e296d84c35f170bc3555fde665f055ee22c5df405205ef06a37404b2ac584d63a9d5bc918b2
+B = -c5c974b2ce3c113ba9325265723021a5b263bdf32f6fbe35de43b0a318b266e3b92b7bf0b4065df0f9f4ab2042075ba66208470c654294f53e2253e77580cc5986292d9751dfec0759c96342262ee98f3b9c9655c10e0950e4a126d60a6f907ad7ebecbb8c2c96bb1bac281e1847a678e187542020ca9cd7f6ba819479f7c36edf4e2a56b78a3c182d1b6f020fd4a76a6
+GCD = a748abec8165ac6b084ab18f80332206906307588eae3988575fd63972f0b01d249facce750d9c4085a3f43458466bdb2f80443b4687ccc8aa8ce7d7c3d80945cfd3d5505f4aeae4e
+
+A = -1a2ddba7ca3de7b007d3a611dd6e02f67bd8b9f34facc930215c723926bfbc9adf4f6f034321903fbb378f261f21def2de925d9b5e5e4e257944f9aa1d2ae68f985d1af747ad7dde70d88304c32867fd687ba17b1a779079acbbf96feca068fa57d401731d43933ec17cbf40da0b9010cbf2b593bfcfc15b4e591a3caad2181a8550bd571064b3749141cf9b7373df6ee3
+B = 200f4877f01e8894080741e58e6f8ad6a0f1d3eed613e78bac4e4329081785b721005b8bfc9d6a1e9aaead5d85927dcdf576bfd904bcaf4b5b860b02c2bb1def7da081faf8141dd9bfd5b206e8bcd4e5111bad5a33b11ffb7f913ff61cf579f8cf7f65af8a6eb881508c7a79b549d94f41ddc080d7d8b62edc64da308e341ef621790632f429b4a84ca1ba1f48e4004bcd
+GCD = b0811bd1eb49c9c2cf4f5a58d29f2f9e3291721991e6280b6b84e641a0c3a2518baaa7166e256987bb43e8a6a564872e1213337a62fbb2d01e3bf0d01206801bd76bef10d77665a7b
+
+A = -f8d14349efb35f8c1f91caa7e72144d3da751692a506e1cd7d3309a414f197a87e46aeeab0cc9f17ffc78219facabc3274601e197ea1791b3f0afc05ca0e6a4fdf588c5bb5aec074f3ec2c6fe964a013a7f5f70039bf2ed39325194a6b97c1882750b0f4d39de3b43058a646285f71ceaf3f1f3b6aacf1bc6e443af2706c7b5e851fa713cfb1153c529734083286cd5edc
+B = -a8a0667c624fd770700ab81f486ffcbfbf31c5f5a3b5527e3562c019eefead5caa62d18e4690a5ac0b1f54b45b3bb94198f9214cfa7ec6c913c93c2ec75429ee4d340736dabb028889b9789dc203563c38c0c4d3fa8f0a0b5e5ddf7145fc03b8e847bfb0cf5c03f95b6a11eaf861371d08d410f079432da1938fee4f644a21f29911ae352cbbc78c53cf24e43fe1c452cc
+GCD = 170b537a61b9ca5a169820f72c0fb4ff90b39b74f6b560ceafeb1c7558a005a178ca17b77931543f909559901ee21d38b8642fa79d9b6a788974979fe6b876ebba2d7a8e572d9105cc
+
+A = 41ae9756fa970deab696612859a75d8b64e446820d8b76e81ed081f713a65c7663b31882d1c28a90af05b1d4a171e9cb39b538f15e93f02e8c9b488cf99f9cb5fb551e0ed44dec761f067e87af900df63701f8a1e4867eab59a640ccf9eeda5cecc88f6e4aadb3354d3130e98516472a439d4160056d111ca77bdde0bad1f52f515864668217660bb3988a379bea87d8048
+B = 253b9ab0e304858e5df1e26f5a628a25d0ce8b3bbadd7c451d202d782d80ad2beaddabb0bf0b8e3d575761723d3df42d62c42c16512499e8b4a8b6eda2ae5f919d1bed78ef2274d5a845f709bf8c8ebe896ae8f0508cf0a53e96579357de334ad9d8ea3f8bad168d3d1d93ee1ef2296b578a656ffe1d37eb0824ecfe95da822eb91b49289c2357e04bf9141cc94344583e8
+GCD = d9b78f4a2eb560655a9e06ef684624e0b8703120209778c907abf06ad75b0c923bf93194b7708d36f9eb3a731ac11a7f84ac55a65b84f2e544afafa2d420086ec23a480c129fb4dfe8
+
+A = 1a81ac2de202ded79fc388027b33c256a04d1ba346abf66a47d8b10c60d06410547802f3ebf9082cef504cc1e572fd4f403f84b5c4101f271b784cc92fe443a6b0cfcfafc4af03f8a185e015d80443670e5e52b0c768e70100852fba9fbd173dc158be6ecfbd91b629d58ec5feea6f97e91e516a16c78acf88d01000f696fee4849feafa666545cd4f0b20e0df576dcaff51
+B = -162c7b5fed1ecab532afe3e81200f5d7ed790c39681d7db4e5d5524d359c539a3e5d33d105f0785bf2f9ca963e8721a814bd9b535f0c73942169e80e49de6dc4695d3e5097755c13709541ebe42a2a59a69da7d9e3abb456a9870051dee86fce1cf106a4ea99996532ff602283413127e9ce555891b83574697949df316fae4db30e95a2f8aec9f549f653b679ca12c76352
+GCD = 6f67acdfba992a6a06d55e346e05a5198834bfa3b94ba9af051e6dd777805593dc4b792783c36f171aee92fc04002c744d0cb3dec5ed8d189c2e6fe1b32dd965c51783a1b7a47dc155
+
+A = -62e55f65c5a45433f0eff7d84d4a90684a7adb36af0b05d8e9d4b3c975c8c70e54816a7c455114324e6c08d594656f1641564963e4121f3822a5954fca08c76fea29fca093e556db281bc3ce510246b608becb67a7ae9bf1e5900e6d5d2c860aeffa57c25cd09f8d1290c7c2f71df8eac4ba456f10e66d6a4aa0bbad1c14d0ca7eaf9073379e666dd9ca88026472513491c4
+B = 27dcd52867fe0e75c5b1965271c0220cf022249e1567c2c3b37190cdbcfb05c8c78d0955f36c5a61aefde18259d9dd10223374fe71041d52508be0393f2f026292d187d1c2c04df792cda75e6a5828e4ed353f2ab83c22b661c6ab6d0a242cfb1329cf33060b1356c6f5c8ae323ae5585da70d7770788655f354190e9c29dedb80f45b02d95e785e3190126cbc09e2f209de
+GCD = 5c70ec695161818b41fbf0324cef4a35f6be0f8b537b510e26f07c2a20c7b2c245729b1e1eb3a8ed7999d316c8bb86b3f15002b1c519f61881b984c3f3c5fa5d0043cc8b39d0c2888ce
+
+A = -31b786b561f1f2db190dd971f5f1e2bd87ae388ebe0941595316335e26920145a3e122788ce53b1d42d27dbc8e14517d3199abe0ef5759bc46763ffdd916021585636a00d2b476f6826dfe8412971a74bf4c9b4d6d61b1f16768a4a8aaa4bbbab8a89737da56987c9559a42ba8aef02946932eea76b08be78f8ccc342a90b74a756cbc9ae56f19605d4cf3190433b1e013c
+B = 11ede709c3a2501a61dbfb7b6e841b0fe345b7b3dff540afb724c900f643eb5a30b2e19c2eb1ab76011de1a3b4f6d9c11bbb98dc60f900879e91b80c966cdaf753b64600980506b35d9e6cd38402b545f1a11fdc3805414726820f53feb2b1b5a7a879df56b0b27cd8620f49bb4b334834e272ab58d8917a076f0b4adc99f3542435b0b02928daa323bfffe6b49c7de396ca2
+GCD = 3d50685289251bf777b6c9d61b91e4b645eeaa7a4caa5d7e38fe5eecaf386977750a8d403324e6b6e22e3f7a30b4bf9c48068058a1c5d286d1818480c993ca0be952a061538284ad2ca
+
+A = -1ae5054ca2fb5e9a90cc0e35cbd014ef9c6882c0ff76fb730f3aef494c532a409a018a994d8170a00654a901d76c1db43224d3f12b95d11ee29297bcb7d59a4004d27829353cedc140b08208c89bfc58c9bd9d0e873dc6d8228cd1324c09b0bd91ad908098a823a58e064d65a4d5db384037cb8fd9cd22b5d682c70691bb038065e4454f83166218239ac6ae4a32cef472592
+B = -3a1d124ed840b8bcc770549b78a2904989cb64ecc797a671d9ed2bb1034e5176561574b032ee9ee0915bdb4d68514ee3adc7bfcd1f5b114561cc51fbc485dae29a62562085d6644419c192a6f9f97f4834304582ed5cd545eae322cf07962ac4f12fb53ddd3a6c4c1ff7679310a949f33ffb990da9fb44efd90dd5c26ee04f8e4445354bf6410f0f66c83e5dc00fce811b114
+GCD = 6603bf8fefac8c3d584cc08c9324a891bef616c354b4fbd60d379310e187b7c0bb606194e37bae74dc817037d1a2555a60f5ad3b529cf7b4f2defd82476a2c3e48181ba81976dbec3a2
+
+A = -350e86b67f805ba1c9ee8b5ae4d20dc5bc3d5be3775c37344e324b8cc31410538e43eca744c95e9d24a0cc2716370094e24ea4f1fd8729a59812564b13e37ad1550d07d7deb4fd920d3ebe3c11a392927ef03ef09c141cf828f243a3ac815cbc7c6c50496e19b54614f45e9511b34d571a8150307b5ce9786afb026112ccef51568b04cd4f1d1decdbe44101e172e4eb90148
+B = -fab5cad155fa226f4c3d840c2c4a33a365d9028f48a4faa1397d3289c12d0cce7e1c1d6a0c1b3409dd8bca027c4bda0ae387f8a847176a854d91fc6c82f36112953821816e606be9a06425a91e2ca64781185e11957c1cde65e3aa0a09c5f8d832fffa0440295a6501b3805cc7792b23faa74b8d648d8c733bd4218003f4a1721a3dc088bd7333b46d70e7a8758ec17dbf210
+GCD = 4404c685e043167e72bb9ddb94bac36ce65988cd5efcea67c9f1656ffad2bac3b2d9360156c872a52930a831ea81b4ecaa68c03f30294489fad28bf9fc88f2c52c56e971620f2071558
+
+A = -4626c643aab7cc7c137822fd6afc7eff6c683bcb0cdc66dd8c335cf25a9af0e6e6ea968b458c3c740a4f531d0a14ea16304ed1c60110cb05abb44798da54e436308e84bd124fc987ef0ae756287bdcaf549c9e2f82820996295ca5100e27ca73112c171fe5586eb5c0932c6129514253656a58e37f4ea5fd74269990ca5e2c0be214cc0939107923e540cc657f1b35b305b660
+B = 474abc656d55630f5c355510d4e18f9068d2ccee4fcef73e99597b1fe372c4dfb93d687e63cc8e8277c76df0b130122d9d0e7877be559ad0f25561e2a4860911fdd5412bef2f304a27d383e26fc392e43ee6f2ec0becc9b099a5e60ea49c23670de62a453bfcae9a0f4dde712dab6cde187ac376f0bbdd53fdb35e3aa86e77e362410731aee46e84321610c3ef0c10facc10a8
+GCD = 300dc9d12e176647a62cbffa5ea4369fd5fd3d3aa3aafa1fbe76683dac3e303f15d9cd7b5072ade8760a5f791fa0e2ee22105fade99e0b71807b20c39d03e999190e11a6b72bee481f18
+
+A = 602094e49801835c943e1b40488c873493d58cca6f5765e77a61b6682980b7089dfbfa1371393bd2b199fc5239d97da88207fb384ac533415c2034c6713646b7fe95a397c796c5799609fbd51e024fcadcea6fb24b610596b8acd61eac3ca4643454975375c9fa16de742a98f769ca73ef1e00b2bc457e1c11ad056f80cd02c58bde651d42e1777bc64762459895887e162710
+B = ab39ea7b824bfc261bec70b899656ebf089f12694fa904c5ae9fc38e6331e6ddd39afb19552f491ff25cfe07a86b0f94f06a0d78dd073632aeb0f618beeddb9801d5698c6fd210855e7cd48d54cea02cff8ee58dfdf4822316cb6589df0c5cae76c43b0ad7dd3b8b9c42afc78ba2f95192c14eda3f09b393de6cba225989333890ad59aeaea496818f695a96f7f686fe6175b
+GCD = 165af20abf538bc4abad7d8a38933bb4ddb5bcdda900a829868eb0b6dcf1ca2817a3499fde65ccd7361dd5069ec226a3951dd3c14989e0dc387a2815d08907f2e1d305d1959b446c634d
+
+A = -6dede822eac77dbf0cad2050b60762a3a1fd708470b2b4d681ff942bcefed2b522a23d09ba37bde3aeec22aaa75ba4899cdba3fdef80c6332596163596b5b771125b1245d2e781f4819cf067d27b734f69c5080feda008d27671ab15f2f73723fdb5792bd206b3fb230674cfb736fab0ae2f75f9fc30edae880c5efacf05df7f79a79e2610597fa15994f313401c0d5876b75b
+B = 16f51bb41673fb6c03e78ce6909977a2f9d076eca100f5065a1e090d186ace2cf41f0716a0fe5316df7cc0cd93deef912f8e4ce37da53eac896eaa9bac318f7cce191792525920222050b268585b76ffa93975332a13bde0ba36be5303a4503962ac1f7d3ee174ea088bf3600274321d5acce36cc961d87e03a3cdeabc43eeeaf6673c558da867016e4bc990f99f1ef548f4057
+GCD = 372945b897af6e0590ec74d710280e60391bbc0167b6f4d2b3a7ada91e1dfaf5eff12c41c2fc778e17ca872b6092a1542c7bdfef1f89bf2361f7ecdc807645b607b3751ac96fb16d8c99
+
+A = 1d3b3533c3828ebd09d45343e061999c51d7417af2049320c124fa9911516748eb600936f2f0c28c9c4cebe3181de4d75fd56aec0238d66a050e6a27a3fe9a59da229f20918fd3fb035514281b4909a229b4e077362cf2f841a5e1cf03177cfd22bd2183494cedbadb6113fcb5273e7250c3c5034cf0a97f2d33a2e569eb4498bf573e26efb8e745210358b4dd232d29dd284fb6
+B = 12054d1fed423fa7058f380cc96a754f1107cddb4a5ded5d6e13a3a374ede9b10e36d1e4ca9613a9db02922b3e4654fe126584361615e5ad2cf73239a89211439723e6078f992eb96d2d46464731ef486e0f553a4e5f6be86a0469872cfe430b5f3cc2f354352f7af04a0c58e7e4d8b1911229bdd617eab2dfe02bb18ab9d13f182b527d05a087a01acc0f5f9866c43a34167b84
+GCD = 7dc05ef3638975908fbabcf3ef57505a5f714b20f806cc7305ee9287366caf547a026dbb3ac2744f917fca87b260c8611811cf797cf80f0834b7298eb29242cb6a3b9f7627d2901a0006
+
+A = -47c5112e78a8bb851d1175c9d5b48ed3c37a5b45cb13593f4c0449fd04fccc2a2633c6348e0a7fa9bfc18e6a4935e9db3e315391d1005d92f250abb54cfdb0592645901fcdb4138e80f34d00e37d38ce11b2596a1f7c7937628c41bb28849e0cc25bb5c68f4813efea4ac2b5f386ca9e73966f4effb3d5e3283976edd68d4a281e89dadf275007a7e18b760cbbe6635124721e24
+B = 5cbac0a8858dbd1c95861670920b167c4cec1fb3076eb0020bda54e7851fe57f37ebd488a46afb089fae4c8101dd6367812889f4c02cfb1587439b03b5f123ff425b15a4c9a1e89f67a1b56c010aaf949a8480b62e5a2c87c3182922f97117f478fd6b56aa85cac96dbb79b19288e95a6545176fd14e8ccaf69d8f9c881ef3f0b06742dbc25a0847e4c533e8014a60d667f9dcd6
+GCD = ce7c2709928ebe3d93233ec39c422d4d4bd266156d9651412762627708a40cb6245473e861a24007770fe51114c573b1520bbe62a62a31211520f773e7eb11d4de921a0330fe3ee52502
+
+A = 1422769af71e2d543ec2740d4b9e0dbec99dd7f005a4929ef59a472cd10dfb9698828d17486ce0d759e922e1162c84dadbe1ba21fb1320f8955460f83dd147f7afdda33c98904ad7b7b68dd14fb6536b27b07ab75ee495c816917255408aa736d5bc04f16375a0fc79f40dfb72ee6a52293ec773ac8dae0a2cf95cbbbde9caa9f2fd5143385930e99ae48771837d6bc5cdb9e91e0
+B = -a080e0aa6f4f4559d277f952b2077db758a4140f080207ddb465f978dbfe329fba08ed6d8375a1950092bbabb85eb61060950343a36fe47d17a891986a7c0df2183950a491de337e86084e8da681e4979292b3e59521d5aa4c91acf714da3d5dfb2552c04fab3404222f4b1aae188b797abbbfdc53c7750ec6dd46e2265a837e55cc28e821cba3f9061c4617c3f801defbc57990
+GCD = 2124144025a5c03658bc6a9c3c683c1993dceaa8226e34432f42da465f9ebde8edef30c62e35446e52921f0d2b12adc6d7162748df2aaa2744e75bd3741b4764be48642ca1d04544da45b0
+
+A = -3040e3a6a0a988d404c8d1c390c625a4b4005ea72178af01a348e0e9b39091867d907bd95ed6586a6b796a8e0284da9dd45b88e361ddd101153145a2cf6bd7188cb8b8ab2f9e9be3423983c0d8067686395899927ca4eaa7180b0a94d6b49ab98aedd55af6987ec6f6be2d03506e2ad082f52cf23c7543a7abfe814bb95f6c1d27f9a3e3b2fe82a02b27d9b7a332bb3f0268f1bf7
+B = 727855b3723cf68a0f8b0e56faa914798b23ad3ba1625ebf68498153377f60b7064861cdbf44121ac982e00b7443830b63d78fbbc7fae7c4d38772e128b76c9483eaae6503c338d1922e017dc0862147386a2a9f43f29be4d3854b9715e88be88ea191ecbc427890e07a7bd7c50722b59d0279bbd96cbf54dd6912fcdebfd037673bf6695be2a9635b8a938854cc563a9b93d4c17
+GCD = bd71e442bcb18d2f6ffb6fa3dbe53024c9418481045b8fa7f4b560878ba84bf414e1d3e16c79ab81eb97fe456311d556d83c87f7cc0597cbf62bf2f22af9eb29158e1e4f63bf037149dbb
+
+A = -8584fc510b131c2e91968aba69b8448b0955cad536fecaa1123a4471bd76fb621762be134622a6b73dc1c1b912304955c53e94a0471d3ddd000291798ee53bd1d3ce3aeb6e9e1e7412533771147029cfe5dea66c2a448748abb7839935515de61c89e66ede9a6ff861401d6a49b0f2f38517c43a8c125822f09bc3b1e29d6495cd9e30ae8795b7bf279995f899e191341e76830
+B = 19442bba625c7be7988d554e11035ff7449a9ef5df972fe17f141f7daba01558841af389b22c61ae32b830d8263d2f59c5debef873b9de9e4f151dcce5300fc4efec23203f2513998fe624d17e86810dbbb3d9094ecf176b977400e4a252178be3c054a9cf54fb327ec6d1bbb7785cb19ecbfb0024ac0d755093d60314a92f0941891e62f29468583feb6bda31747177b8d963ab38
+GCD = f1ce3365d8037b9b545293c982035498287716c050db9d93abcad4464e39fb2bb97b922d5471f7c7e68a75a0530aa3c603de525ebbd7c930830d9c75d9ada6bec681b2feea37dfb13e788
+
+A = 69646509f5f87d6ae1736bdb51bee16e9792b0ff7329d254567c3312b70901ad592891515b8221b7a0196037d642056a13d60447469c6e3fee7a3199f4b67feea1eca98655913b8eab2d48684505dc831abb2ab7bc339c8e2845fca854d02fe02aeee5439b653b501220c8b9616a555cd5c9bcf36a8dc0dcabdba21f3b7f8dce69fe14dd099103f15447da2fb0d1ccc51d615844c7
+B = 4c7b5f0dedfa6ab91903884b191987bb00eeca8d6aa2bf12b58f5ee1efe40bfb3bdcd81a55654a9a774856e9f3c81dfb54870ea22647f055799762bb24b90509db14411370fbfc70ec8e0eabb9396c2f4ce4f1e04939c63402ee171ff4fcf5783bab56a989e1192e8bbbaad97d90615d54648485ab493d96225564c6b58f4a31f0776d46df8bbd7cafd46be3cd2ae12cd48d27c835
+GCD = 2e761ee61d22905cfa803106c9f3aa51c8e09c20cfbe026fbb94d5093189aea49538ee7fd8745656c0e93587fd6a0e1ab594b28cd5e0c7637ea8226f58c0c2a63c7a10dcda172d7f9253ad
+
+A = -11ebd1c45f0b69cdda8a9656267e9cd4f7434fd72e0aeb55a7ab0ddbb0d976b21a2c67c6357ff9af57aaa471e76d55567d4eb6c4c687c7e6b98a75a39e5c77204fdde6613d6d2860cd18dffaf62317f7389dd97027b1d1a1dae76bec28522bb94e0cf4d40ecb5b84d93e9398fb87f7aa41b233d3381c550f1d4dd8fba767904dffcf58f9296714b931ab13fccba91841b1c010414a
+B = -48cec63837a1589f4c8800f186f35fa5377667c869dcc2cb1c54ceb02aab1bec0fee256d012eba7d82f63c72bbd648ad292ef6c6a47c3eb67ae848d823d5583fd4f4cb3773aa8d60e11d53a45b792b19aed58bae3544aa8ee708d0f04abc835c07bdbe9612da5aa3af4c08a6557dc1554e751166d8ab426c13753c498a58111f12f8687f80a174157479aab5115039395b669f4eee
+GCD = 2b9fd6762705d9a1d0a22731dce79cf8df7c9bb55ecce498b5ea0a9dda028f34419aa95802bb686ea242fbbf6f1bf518baf618c50c245f2fd1c675da775ac206530e46aade78638785aa4a
+
+A = -2e92acc3745356834ec38e1b3e21f09bbb63350043dd712c12c8880c36296f19949199962d660044d5b188ec31b8982ee8a895929dfb6121b0031d04a3a8645268dd1334039ed6e3d5d6dd3192d6ab6f31ddd23bdcd9b71988a6418f3a97e992c4dca7933693df8c305398ab32a38433cdf287d4f6b2cbe07270d5df5d05de891fb2ba8a82113fb35ed8730283983316a3bf298f08d
+B = -baeaf785f9826ea4a955b15dc7f1513b12cf588974cc86543221029785eed5ad5ff8601f52189def0da883722b7a33f4f9e874b50af7bde2a75fc7688cfd4986d8a672bc50f591f6dcb7ef53f85037e0e6ebb89a6f4ccc0c33a9c3b3e23b4dda431b205d8e481c4b0ebf0a980c0384cf74417b23cb975811cf156982b1f3f3e7a56871c19dd31cdecd58d0e42ca1e957d8e5c02b66
+GCD = 2676645447f9c6673d1d536f0e33c25db66cc20b526cc1572933d9c5cfea00f3aa056b4e49cdf2cbd4fb929d3f2f52f100d977a672814cd389b76d40f558caa61e483fcf21858db49fb3af
+
+A = -6e3de0883dbaae94b7058329fd28fb29c948eb7a3b35bf2650bfe11224a92b2020bf6e33181ee1a288d46fe5db4b9a5ebc8e8d21075d46b9b55585ded50186c51967d3cf59af38927e91aa648afff1b4ae098b16ef583968cd9a9f46aa81e46c224390b1fabc653b3af3fdac53b2efde9d26e88b959e599ba0ca706a176eda4a80ae1cea368e791c6cd51abd76c03ebbb993110521c
+B = f59837df661773a0c4508ad0fed3a6d83bfcffb06eadbca53c99c68c279bb1084d68e367772baafeba2bc79bb7c67fa2fe1329e244b49f92c99e758f3fb14c6c901745ef7baf98055f6090bf4fcdb7df9c909b8c0aeeb2f456447096a39706ff426ab486029ff9d404bd1480f9840ebc1a5ef2454aceea2312b4bb1f07e6df5fbcb4ddbc40cc75d1cd0a849584043acfa1fd8620ae
+GCD = f6d94ab31f68c082524c7de07c66f3efbe8bccc7deca97e331f8d257e0eddd4832c094fef6e024fb6f7b707237cb64059712b91f8c95e9affd13d4b2db075957abb30926bbac9a65ae22a6
+
+A = 1a038147277fd94affbd1b37531a2a442c0a1a7fd8a983c646c29ed71047ec277ad3f41e7c2bcb362cb921cf005d558ded5ab92db67be88861b3987e04bc113b76e7f2ada0aa6d1ebeec15fe78a99021695af9b1e9fab3a3bba690920d1a31421ae876b63233633bbc64b8675c5e40c6436da9d0dbfdd56e1c724d2ede8184632dbdf13a82c3a2c5300734d3bdc6f1a0295246213099
+B = -1425f2a98b63cfcd471a00f21928e48e7b8817daf318b43eeb595b80252ab8531bd354240686eed310a53427cd89b8430779ef8bb610c33dedbcb6a8a800d873335789f76f9265dcff2d059490dbaf84dff06e4a9ffb8e5caa75206edfa448f381179b6bbc8829783cc5563f2ab06d097d25a0d76e7285d163cf0014d2f6ceaf0b58d6794394d42fbbb4cc2d30f0af37d5565c959597
+GCD = b001ebbf5f474aeea9bc7c268e1aa7c7c4d251d1434cee15b7d2de1023bdab467e00f045b4f687da2b05cdf1e0b49d833524ff1fabb5900ec00b56d739a196be3561b7d113e62a5532b911
+
+A = 8abd6652f30d5114f3b08fb47300e9c4f064892dc98e47b03be6122848bd677efa9f0946b9a9e9cfc984cac0be1dbfce2637248cc962578524a647fe9cb8040d09c947510f1b9e83c2a842c65cbf623a957ec99b1dca7df84d01ba617dc51f0f2e814fa0e46d41c917d75475263b89a5460945b30be2506f256a3ed65acce8958c58e3add0cf21d62e8c24e0e1ac87983f465b3aaac5
+B = 71a2ac92dbdfe7b9c394d19099e97d7138a20ac17ad0212d3c6b1acbcd29afe6761c1f752d05c358ef6126647fbeb906e60cd591008f8b6a2e0c6cff637a6eb7baf2ca1582fb5872cfb141ddbbbd15f1d3a76a187df71712ab60ff201c9f044e0741f2015461513555a2a6d91c991272b016acf88a1d165ed7a1ed8fc03069d270a5d5fc83dabfb62c325c3a06f9b3190875aa99b8bf
+GCD = 14aebfa6ef7c22cb429e8f011d2cd5f8d722c8d8f9c603931fd26ad6c02919916136ac7e6c2c9b1a4db9a4ad2ae408909e544eb5251221fade828959ab37d921ceff929aac55ee6c33d7947
+
+A = -121ac8de1eeaa402bebf43a5d63575c2e6d5d49329f9320319182d32e65eadd7bed1dc2913e08c410b01b70e298a709eb09e6246da75947e84860933f4ed07c2f26fb90a702bd9316f77e476df80d1bbf7e8e1f8a43bffd6fa596b8081d16a98ae06dea9203d8f96256a86c3e6528af077acbd337501c3ffbc3bd9e727f22645534e035179be9a62dfb0b451328d7f4535f83de84373e
+B = -3b755b8a63903180eb3a9999aca1d94ade18e021fb56979e20d2a8cfe67edf50119b8a31395c85354a471b2ce19648c0d25b0d09cf8f8de94b94088d69b352ee4425ef78121ce6b02573e4c75f15dbfa540a73e1a8b6bcf1bf378135a891259da0975cd6978ac1292aec14eae596c16099188ca7ddad2940510ae76686a8b6c20b109a227009311dc375d538e754accf0d1ed9e3a583
+GCD = 7d5efa86f82336ff2b554f561670a2b6834678a87fe164baecb402caa76745a4d2a92cd4831eb1c92c01125881880cba737b97be11fa9c78916daa4693a65e2c8e7da0488db3bedab705cd3b
+
+A = 1a2ee9716e653485d99ba938fce257d33b21dc38cd992e97749e44d6d4d8266a94cdd9bb9b2f735d54dd8657b481440094af2c06c9007c9be42ef3e2ec86cbc08664adeffa10f9184ad8d67f152847f7ff3889a789b1fce1b423d772fd4ae9e9526ef2d32e9a84f37b65771fa752710451ad4e8ee257aea2579583538dabbf0d5b53aad6ecd4daeabc5a463deebdd37481041ecbf035af
+B = 18b25bed7f613ff0730f8f59dcbf28e8ef54ed0fa62b1a00baec98d2c2be7e5c5e84674036d8ef334226295492c73ef06cf712366e0561c735d985543cadfb4a377755d63ad0fdbae9d0b22273330d296ac3596c04036d1aaf86e2d657cf6f40dacf60f6921cfec8f1e11858a0293de95271dd02b2a68bd5d05b79060d709f007dfb8137721bbf762c7d3786b1350baff749610dd9de5d
+GCD = 17d64e8dfdaf7a86b15a713888635cb7c5f806d5ca8cefe2fd0b6abfc3ae5fad9888df7abe3bb6d781d9d44041807b34976e64a5209593e48b89c6068c12ecb0cddc3e29ea84b826934a8953
+
+A = 52018eba76e2932a9df722db4e74a980088a7731cf0db7cc135d90051627d6476fc413a718faa56b68397c7c25beaa7480e35dced32788dfac98e2f1899ed442e20f97fb4788c5778a9dd8eca1eec8ad3c573245cb8118868df9aeba962933a683c2a082cf35b1eecd9835c87d9d138a199a4940ef5a8e2529b55a73f5049e48304c589315cb87b40609d14d727ff047ed30ebda9fc969
+B = 2dbfddb374b32e5086e4214b34e65addd6abc54e268868b0e5c752179e4c090b5edcbdbc98bef4cd633d5f031bd0d3e77263e544ac82bc1e15e974a17b6d8a6c80d82cdcafa0286cc1f44067d3e60767c8082409217a44f53c2d4fc638def6b4dbd9831d7905c31644a98e6b8d12d34ce05edc753f545089f21cdecd0d6ccbe8c3c53ffa5914e925e515bb78632b33a365c1e1971fe6c7
+GCD = 4e45533244ce6acabc034e0eef8865a1b15698caa6befa0e29eca392713e432c197b842e1ce868ea635de4583ee55a178bf64bf4a8f6d20e2331881766d89dcf71b6755f05d4464ea08a122b
+
+A = -1378401e3b2fabf055dc0c9cb24e4ca6c553fc1d36b63ee87721f3817422e75ac5eed34f37ef54306e1d215ee72d9e993aa5c507156bb7448528f13fbf34eb3ac279ae628b74818fe658a32c491c6137d4ef23ed75aab40f9253ee1bf393b927194561445509f88500bbbc75a5f75aa7d8a9f9579489e8dbc782f36cc0ca4d1a880eb2c01f4677a48c7c312dae8d9466dadceee4d210b0
+B = -4f77cd1d352d466b4a584175665db1f88c7b6e4750b05a493d0c48a9f977c1cf7a688c4f1831035fd0094d5831405dc1191ce1a2070e0c7d32389c31600b5ab71d78b36bc8329c65e98b629ca5de94980d3b500e0d1e5df9408960c6fe66959401525855af7f5982586aafda276587ae2c989fede042bdf8ad63372ea6ec90997e5f9fd3be21ebd63ed54e75a15dfaeddd16f5503e4ada
+GCD = 182b0d9801f4df448a5d1ee4e21954ebd6efbb7af504a327b416708efa797f22da2e6aee968d8716c1e7b8b4e7b5a937b75067879465d4ada037abca5f4de946a182a9ea57b438283b032466
+
+A = 2a6de8673908af397b7d9ee18d2657b119401df64cf6b20fdec65d6a963b47dabd459704dc1660f62f9f55abff64d9a6866f3ead71f9ade3c6a4109af320c5a3bc3eb67f48594369a598483bcc96d458300f01d5973c90e153c5e66fe372a8ff998084833f30b65b866c459d55343f15c61d1cbb1edd620df04160c37695b863c70d6ce2b2ebb94fa609d0ac43dd8ec2cd02782d43a7000
+B = 27bf09741dc53651b8e5fed688b6c872c976c65bc4b485323261223a7a857f644b355ea1837f3b35cfd10165d33934a0bf73b494db1ced697dd621df4c102fc9251632e586a0984ac3d7f60f9c64885fb400f030ee14bb1d15313f0f07377f65da65d26c63cb30615f761e8582bed3610a7802020ce9006611c7ee9e046aedd047759e308d03bc652c7ae0afba38cca0b3e8fa555b0c000
+GCD = fa9bf4d083cf83140e24ef8923add5e79a1a0deb33cab3120397ae16084f2e037f7e614ba0d966ee7a55b108b56d0f000da4c447999d3832b1484d6b946d7f75f7176405dec9bdfe6a95d000
+
+A = 181f907f9b5c90860b5ca2aca89c3144107b4aeae174e52a7491e4da7be7eb786ce360236d9aab3dbfa1e8fa76719c405b2a0c4686d85639438a5c8e12f61770e99ca065e51f203ba6d640caa7547947d3cc08d98a8d589878e5e52396162c286315e32a7b6be5ca5a86693a9dcf7a2236149651fe30b19b6afa1208f93e2a9a0924c97a2e394d028e6cc94c6b94d83064b2352708787a90
+B = 2d1fd9677f05a05cc8e7ce0bb7a4763c90f00eaaa3a3e34aa9cdc5cb62c8f204b59bc96fd11dfe27736be47dc5dc337554ff8a2d8ac5685f8290c2d3364bf4a4a2c0533a945ed9dc84a656aa24dc984e578104008359d2eb372ce648d35c99aa7059e13251739ce26aee0c01a5852c5efb0d0108e2b31cfd41a80c91a51896cbb3dbf991f6930ace351370f9231733a777eaf2e73cde77c
+GCD = c71b0de446cebc51864abfe48a9383a59705afbbe922ef55b979f80b2744712a70086e61912e603fbc753cdcd8669c7d2ebf0a805a3c39d530afc53f6003a86af968e50869079a0674a59f34
+
+A = 4bddc13f12794628afaa4510c5dddd49370bf3386a087ad82a91d363a6f22979e5f6b56af4d97e3a9c2afac10e40012876d69cebfcb8686832a2df1a21f9b683911ace07dbb66e76ba81341ef1746ab37c2b5a24f4c65df6839f44917baba094bd7772c562506409b71c77476b40f694bcca2e504b1d9ec360f027cc75d1105ef09f06ac3bee1ce963c197cea5e0c2512c76c37d080b7b4
+B = 8a5d482387c2cf7ac99545b29bf69ac65c51b7a41282cad18c4a9267ff3dc2d4cef107e888520e3bc6901c5fa48ed80e21707700cb7680baba8b221b2f786030f7fd33f1951978d73a61f9581656b4e28a02b5ab860310f7c33a9ce349cc5a7fb625b471a650ea2ae41537834f1ac1c2350dcfe428cc116dec090477cf572ca0a0b2aa7646da2abddb81b39e5ea94e6da6a8a834ca90c70
+GCD = 104ee6f1f164d6da363504e3d5d605f810a9b233ed591b3f30e9404cd85438fd3cebb92ee5a7ac97cfbae13acadeff18e8b3f48368717d72ea61cf18c0ae46124de932b3747cc6a32cbb0e434
+
+A = d4ca76de4834f462c57f667bc824ed872cd8a8ddd1959abfa6cd9e6d09bd7f8fc7be2d904698a41966d88ec4af40e61c7bb01ef4b6175140dcfb496070da5dc2c095ff0a9f980a34dbf0bdbf8f715de485e9e113c63e9605d734a065498b0d8c3d11c2f23fa641853047ff70c2be27cec16b67823c96606121b6729262237fdf3acf9e7adb84d1e76956968038f6d618bfd305870aecf928
+B = -5595d52d73e3385840028bdb222b44f30555f659af124179a0066b9e57bcbbdca312378796c32bfd551e44074f5b4b0c36d1205b97141c6353c767d97a0dcfaa5b57c0c11c3a0b21dbe71bd450894723a05310606652ea2d36ada212b2506410cf7c112b8478284b9cf7afd0a23093d7ad05f75ecc0b515b39cae5560d82edbfdab9164c7865bc4554bdf503a7839aba35e59ba1bfd19d8
+GCD = 5c04e7d16f92ac1cb8729bda7f54fb0fae00266958bcdf06ec58b9f4e210880caa8e12dabd3314dbfb3f258aa4c365fb16e12bf1f60a6f05ebb17efa56ba61d7e7d089b290b745a1500aa7d48
+
+A = 2cc15862ae6fd26fd639a7ff6e6f682e1f22524a2073987f5913ffa301b9b6cacc695ca794d946b8279bf3c59bf42e6549b011619e2ee424c477dc2f26b9c59ec822294ee57bce82dbf2cbd696bf297a2f376fdf7aba92beba192a6ce1daf1bb0cb23b656f85273f7bab908eb9f199c1300a21e404fdb69f29bdea40b1d6c64359f30dce71e6cd5435c2da3b8723722a05839e520fdb3d8ac
+B = 270842d84163eb67aaf9eb7ae0b066af3c0660e9e03f9794524900fdd89a336a250a53a7ec83b7d7d2ece779c79febf180e59d744f1b396e7f3657ba7708a1d45a9bc4b21b2d8710a036bb8184a440d4288971f90b631f581c0c90b8739d0bf012642e3b048b9019933fc6c216bb21b8ced9a99ac52bd628f38a0d726fe18516452de6f059582b18365b4ee2ecc5a4bfbe16b8a10213f5810
+GCD = 21f1190be258738083ae42209230e2bd95794317d31990b0825b2c32514a1576abd806b1fe7e5c4690288b7105c6b7f36d192dcd00cc9409822ff8ed6b22b44cd0a1de1fe30de61e4062d0444
+
+A = 5e6f002436329160d3c78ed38b7a1d9dce7cd0bb6550c22ccc3c2ccff68e86b9c2aff78a8fc3ec5c1689afaabbb28321d2c3add4ae5b297bfb42c3b0db18a60526790245983de55781cab420f00bd43d725dd2acfa21f524eda475a8de83e6ce941a1a2242f87887ad7486e72f7f0fcf550dfb9e6776e392de2709712f21ce126486dd123611f0c9d7b6195b7190404c4c0316e5055262f40
+B = 324698b30e6a333ec6e3adb2db883677cc51a593215efc54e98ae142de38572845167c0e4671bf2b397144f2abe6980087bd1c38133157eab312ba9cba7356932fff04f9c4ad05bdc33eec314ca5f502b1234c028a60dad9bfbaa1fc67ca712a1dab8439bfb6203cbcac2e04a3d935d1ce441048d8e927615684261463625078e686aa1bd89dcd1f50810f59ca5e933cd82a4498ff7b250ee
+GCD = 62084be150aa6dcd96fc7f80e8dcd45dcffb9aa2eef16830e4517b36fc98d416e5bd23eae779befd433cabebde0e0d8106387fad9ceb1e7abed5e220de921c62eddb3b5e776f754c31851349a
+
+A = -38d468abc5cb92fabfb0ea82d1885ee1e092cbad90d00a9fe84e8c03430bfeec2722e3a576460419c75169fa47d5ee9ea4d67f8ef3180aa16a8a3eb324f987ea099a9764cfe1d6bb1588e8b58b5e5be3244fe1d5afe2c1f97892c071dff5264cb29938989943f08bc8b9628353db6e41d25cdf04abf63e35f45c116a603ea71e191eba975dd48f69d530e40b91bc48cb3c8221a8ea1b431d14
+B = 101dc13f64746a4895e5d68b8ac38078c2f7fb395a2c46caa7256e610d4c1aba97b2ec2684b0bb0f136baf6da3fe98957c93c8ccbbb27a8a586cf552e895d876b37a5fa8bff7836938b728ba21c60bb24d4787c1a65d4e540ea7f9d1a0a3c87a630fd93c0c44c9dc7aac51c5689eb0462597d09ab341373e8185aeb3ac06e12f998291e7bb0c8278dc3e2f1e91d3e1c0b9ad8ef90bd1aff120
+GCD = 1d4076713ef69e00ba5890ac92add6d5652f3e986e30d2e638b6797b64d66923fbeeaac4a015441f2aa03168528bf42022d09cedf24d7cce88640fcfbc49c19d1d42bd0b195de17d6459be45c4
+
+A = e04abb8fcfe198b85e66eaf1efc0453bb2b4cb594f950a20fe935521f0d423c3b4214c394ce0b1abea152e3c0af0038262fd86b98fde9a4084acffab4f5bd3a5c40d4e8b11b8bda6a427b06cbc8b56122d790247d2da75eb682e3c21dba3dc82344245404866a9017d999290c4abd363474f910021ed61fbe1a650ff219ba6de899394da00d77275216953e59583711526d0a1edc1580ebcd8
+B = 17c48f300e5d74c4b32d5e8abeec6807ab18634ea6524268f653d05a66b9bfc3bae9b2f8a70b778e19cb7bec7304ec357438ead766d6864f89f773cebe9977e42e2ea1ca31124dea5ea9333df48411111714c053c3fc1cc683c51366208df5e7e67e5d917d72dc5b6180a0c2e48f340398ee4091a7612093f8d1e81632e44e1927bc56f823cdca13a22c6f1592038f94c85742b94e22dc2b3f8
+GCD = 7e122720ee9649ca530f8583268e6eb3bb111cddc202a223d552dad06b52a44941bd081f0dd451c840a9ac985fe315f7fbe5f35deae91643f3ae0c27a4e9fd85b0255e13ee1902d6c650981388
+
+A = 42dba7ce0ce53ad8f1eabd7f4b5cecb9a0fb0982326c04143322c19df057eaeb71f4ec7b7fff6e5ab596627e12f6f9fb8da032d12247a928df23b0446b5eda4c89726139c39267b38bae04a56106d0717c5fc43f08676f63aa50e7ca1a84c087c3799a5bf70815b0f04ef2ee038edca689609b78e775bc018ffc090713a2769574b3c5c2dd2b6a52d10d652fdf9f719be0d384d4cc7f4dd54e9
+B = 4bbc94e2a4de9ba761e5dacd1c904d02525934308bbde7bc15745e842b8cf3c008a340a776c407e9143a8e0dce946feed07f0d3fbe91537f1f252d094b1d0071dfa556a5d1fef7fd96d579963eaaada916e30468a2b57069272b6d4ad14000a3fc265362eaa332b28a522200bb99c280329ca0b76fb01f9d34cfa471e7939b1cb534045b7fee18102d0ebc06fb8602c95064f9e76ab3b80f488
+GCD = 2aef8299940daa9285daa3a775b9a11644629d1648fea38e63c939c142d97f04e3c1768cb2d3b9d4efbc7dd3636704bb10395484596d7c5d9f663524581a2bd253d1684d3bbbf6c330419e7d65
+
+A = 4af4fb09cc55aaa8f20b2f80b263a2e41973c360d0e16edd85de66fd33f27c6be21dd6600cc2b9a1a8c32f74b819aeff423b25cf0aca7060a2f7a6018aada7173f78dfd9d908247795c0560e8b4ffba8a309a5b70707bd261a283914264e7daae944f42e4aa733110293fd082a28cae7088ceab7a7a1147dc58602fb6069fbfdf35b9448e86631a94a6d2418e9c016a9082e5a66b9bd2a4d60
+B = 119b492a5e891d4f5bae2e884a69b29eaaceb1d13a4501bf4a1467810027b5903ed34af1b97e8919105cd572ea31b23a63c53b78d2b610cac62b5e9f426e8bcc6c8cb8b9a59e37a0e4b73d7291a73ac1783785496cdbd670c921beff37cc80fbb1a789eab887cf1639a49bce337514f0ae832cdbc143db6141ffc883e6a021f6f8a6303d8deaf3f61a01a9524ee1e55ce595bc5a482f5f56ca20
+GCD = c2210fa02ad93ad54170efccb9fa90b0ede9c1037bc3f15384c1a8f640acefac6b37b17e81f907d4e86cd136fdebc7d2726a5714bf6a9150967e3bcf7ea5f5041b21bb6838a7371d771d715b20
+
+A = 2007a605868586e0628c98583416ee2780b508f472e099fdac69e02fb778726f23dac8bd27afa7327cd503bf0d29dffb9b12582e3b2748fb202f54e25c0f7cf1a1034f4915a6d095c305796ba3e496a9b90054bc6f96def3fb18c87f9b35de12dac3beaa4adab6b4665989e492130f7fd58629cc779eb0b9ce96a776dc2c0aeafd8dfc802b771271d0d0725bb01f6b752f71d81d9a58733127d2
+B = 396bea1845cc6ec5d087bb0e4d9a6068e9066907bd612069edd38818327d34f7a1380d12edcb2a1bd4d58e9c3d010c925ecec2853f2e2525bcca3f107825676079c1628e1ad085e02347d425eb5e986db85d96eef0d5d643e11c41cf6d8c98935d79d6e335806c72b71bbe4a8c2caaaabbf99234e99e565c457e187a6dde3ad4530b0ba53c289add844e343fb682c3c620ede6daeb43afc76eba
+GCD = 908e2b8bfd1de4b4e26c71d46a59a07023e5b971145f09f8d7b522015613198e79e266b72b66889f205b69306ef0845c0f907f1faaf65fc5a2c942fbe1eaa6a95dbd2f95efccd272716311b99a
+
+A = adbf3586aeead2fca9371978c02969645e316f7e337b34a6a3ffbe50ddeb4ef62b2ad59e5a49451783c4b20d7d6d60372064b161b20afa3ab5b5d7bf074636379a2895455b8c80153be5c4856bdd1b99dc1462e93e447524b55d561219219410a00ebcbbaba8ea0dde9e480ceacfa09495bbbaa5207e9155313e7467eea3b5279dea6b91a53a78e87f18d5a59c054dc5f254c9d113842eebf85a
+B = -14d5d48264f1c8f2c5856dc4e597235009c15342522107995b618075861beb4fff65487ab60062d920bff8e678863d94e2755b652032868ca7e49ce95877099743c6bb27cd58b45d6f7098b54dc6a6d7bd1e390eb70d175072ed26858159a2cdcd0de1f62385c6673f53373a17641b975972bb4bbabf559f9a01e167c8f59a0b0d30ba7f2db8e577d05a5a5bbd34d0d84d647aeb78b9148e62d8d
+GCD = 1bc4aec0fe4a6625537015b56df9600b4aedb8e1151099af509dbc567a9bb0e77e202ce85792d5ac7e842110db298836b29552f0e978bfc945b985b72e9361b84de56eef4df5268922af94b95c5
+
+A = 58646c8fe8870c50c2916071259f12d455b9ac5cdaf218aa6c527180531f42556bd2278bbb8c420e064adabab1544485fd4d385beffcb4d66eea27117747716cb8a21ca1a71b6e3ad8d3440549321e65d636ee896e16f26bf352de3af92709c8265b5ad791bf04c23d50ea253be6c586b7ac4583513945b33dfec760257aad9bc6a9293ccd03f7ca4d0857938eab506870feba7c41afa50a30a10
+B = -139e1b1a7f920d6a162865f09f8769a129bed9a60a042f0d3fa2423d4761be65c7556ebe9ee844a04917b80fe8af71b92e0e2956bd9241aea2c71c55b6c6c65439577a66040b3137d62477fe360b93f5ac4bf7495030ab05319a452922fe86a661cab36c96e4867b81430fed04dd3cebaa735280b305726a98e631e780571cb3d61ebb243981b9e21b22d6315b1db30a97e66336670eee2c03d40
+GCD = 175942db2db2901f6d6a3f25e461098563b4366815e469ff6bff97ee511d08565eecd5c411044e26f9850be65aedba6419a4578925c674cc80cf7f6b5520569af364b82106cc2c0e42c9fe4ef4b0
+
+A = -32870601aa13a49fe9e6d91f69a3060795c3380aa892d2457241a4a09a4d6355bfa177ac9a32a4a03526f6fc1c1ae3227c5d8829e7b2e651d50c6b59bb30641a24bd7c25d84e51b4ed3ea4582807cb18dc8dc6a16f24aa990f0997192a367bedc3f404b2713ec5909fb4a7130d1684009130dc2c55b5086c268eae279fef7f72b0ade8755fa937a03771ea2c86b5802d848c1c4749d5c71b9b124
+B = -b9c5a1ef1409f8e9fe224346a6e249b905464b9a00c4870640992a6752a73169a9aa04b356084a7ff086c7352d441b08c9cbf07091913049f65011d1570915e8b9d18db204512a81a6b8f831864e928ded462c12bfb24f1ae482fec0286f4b0a292b62c9888110d82bab37bd405024d25db4fdb80ef02927fc7b6e8653a7af7f081e1a52d4a5843215faa62011db167e5e4463fc74569791a7b60
+GCD = 76d6d56e7f6da82573a9a269e01bb82ec405ad92da07c108de24e9aed8d476dc1be3d612c4a5acdd8b2e9f757b1403c3add69804b482bf7003e5d5bb7948478d8fc2ea97bfdbf4b99dff4242b6c
+
+A = 31c888e7a03340107798150093cda9d0699fcf04a28fecbde5ed2aff96b6777fdabc6124bd61d508098fabd814884e4202ee432296fbeeaffc84025d2147340ae57bad12e5daaa80f7c003806c0bdad595716d9c97fb177400e9ff9e12d66f1853db836b400612f713da67b69ec1ec0329afaddd67b8843addb9840b2bc4e6bc033d76d5ed80000cd7d14f2863d46cd722c2534b656ea8f9c964ee
+B = -3ed3dfdf2c2c4c9e02149655361c99927b53f33a3fe57f7269252d7b0a593c70c3a49abd7936b07234d281986ada0e92c9a988acb784c178dbb1f991cf24df4336cb16b17e3c8bfe5602d343875d0abe880e09b41292e9c447694dc4f31cccdf337145b05ad79ec7803ad372170e8de8ded9119270fa821129bd39b81bb498ea97cc292748b41d0433693b67349eb9ff1e961ab6fda548365624e6
+GCD = a3472a57ac5873609dd19d90be1918fea56ca9bac89b4a877e27a638eac6d5374b1d4dfab9f6a7af2a6edf3df57d16d019ffb145a55e0d93072ebcf3c3a6eefacf1f99a80868c06057b88119d66
+
+A = f5f7be2dbf17f5c1899f5e71f8c99882d3a743915b0929bc2ceeadfe9584eab5a3e5daeaf743fbfb01d412807cf88d3d664da81fbf2b39dd7b94e3d2bd3ab7b5afcc84221c10f9c4145835dd97099bcbff1d750acab9fd55bbdcb6643458af5132a3ba2ecb24b795b18735eab9ec6295c9a50d466aa7be0b09e2033f9ebd852571c1a7133bc48f79e4254f7f0b3b5e6cc14ad05f0805f74ce75696
+B = -5c70585ccb8d7e52a49befe55db178b302bb3ed1192d5a5ba564fabbf314f146ba99eb57878e249647f6ee0a1651867f5eb550be61acd7f20d0a4132871096ad3f4aaea827e4c253ab7d1bb4f3628d573b0b88e7fc34c1f55dca88df7142d3e740411b9fc94d9265b443d04b61c5d6664fd2facc9abf7fa59bc5c81576596f650ab621236bf421b29d2c330392f76f480929163f52f3a81437e3ec
+GCD = 1ff3367d3611b5b629da7c151340a062e89bc289cdb062dec002c43ee413dbd313e6344611c9bb5f1294b08ea985f146c501ac654f08766b1661721df38f63ebce1b66415a3a4ee2c32b703b5862
+
+A = -564ef0b63ce0f4b0a0d8169f64f6662fa8593f698f074ee53f11970ba767f82edf7dabde47c59d48c1e44ab44fbd8f22cc0f6c17f8362bc7beb7990cdb65cd5532389f2a337abab0fe16cc9cf38a4c963ea4d7c2f8e3c40d77b1857c7200fdc08fc6cd415cf6a9fead16ee58ab796f600c3367cfa4e7141b8c9d5c1268cf843a8e96d12641c539ab6c8a7060328dc55090cf7c1bfa73c315143513c
+B = -1b870ea98e7355f81a39d3da1bc5b15fd2ea73e51c94e36a2e457950d229d08b7ca380932e994122625274cb55e992adbf3dba66ff92818eff0b200386d64f2fa27f1e479a9660f8fdeee93d03c43c01f8e7c4d6c343226804d9d36052514cb501960470d98da10569b9221bd8aeb288a8b8fbc27d924da1c20d93ed8049b0e8b01e8d6576bb27d27c81b0fa512a6a2f68b2d96ba7b0e2de6738600
+GCD = 117d942ae2eba96555d67c185a5b9b174085634e8e21684100d096d4a3c8055c3cb717af8071aa072e578ebacf01e9485a94e9ae238e99add64af951635c3d4f70e477a9f16959b21d85cd87e071c
+
+A = 15226b1e2ce794a66ee5a6ead3624fadb25798d01bc5eb02154384ca9f6f94ab6a8826d130ac59e900c9667d538881e0af6fe4ec75ad786c95938bd90677bde58fb9e2387fe80119f179d439c4890ac2b979c19a8bde2adeb3c752055153dd6ebc6e35258376999897b602bba79eca73de68df9707cddc476852bc114fcfbe25da67af1ba285dc0868bd8377348804b094efa627902425af91550f84
+B = -12fa7c984c929aafd893b6006847469e7dcd4cd53e63afad236bbbee60e2910a20ebdba5f139402b7b943aa8945a09d1bd7b8671e327ba5f4afa51c7b77e2132ea71f99cf65856ba72bafe2c0336c0268010e403d3ba36812806fddacd8929fd384b0baa2ee54127eee864b9021f871d5f4f69ac64b6050f376a6bbd54f35bf60a0215530b929848226c25a05d771eb7bcea33adaffb9dee157be24c
+GCD = 552bbbd7c9a970bbb60714f3d89e3153a5544b549d3a3998c17ea7ed4bd8c30eaf2cb58e3d7001cab3e2b4d64b2e3172288a41ba2b0f5e29592b150847f30b50e2eed111c8ddee2a3e1a5511aca4
+
+A = 6533b1d8348bbc3a9890000d368a0291d4e5863837f3485e789b6a6eaaf3cfcb9695ebcaec55553ba472fcc971113632995b77f854cdd188d8eb2af4681a6d4b71ce35b6cafa3ed2170a7cd9a7dd1c5d4d8f67bd2a046cae65788c43e88f966fda91456e21bf71cc316f7ed795dff82c2d4cf389ba2aa0a1370b2401aa607bfa3d0bc77faa2cb45d127fa0c383d6a128166fc344133403b2c7f8059
+B = 496047bd81c7b12f0f86d6266e5eede5f83220fecd13a29ee806cfd1fbfa29a52cb11d60cb388702ab553926945804480e328113d26760b0482e270900a60211a30d226cdabdd318f9ee55bb4fb453e1327ae0eda6299a9928283d3b81da7c05009eb505c46db402e26ada63b087f5d67adf3242c35a2732e65442ad9211d951fc20cd52fab744592cdadce6faf2f28a52a0e236c2eb29980535eef
+GCD = 814b1ee9ca215e0b7679f0fa034ed7444ffff2237ed4da9c119fa76d80671321d569dcca9d45016d6e1c2bc9e11891a31302dfa7d1636273a5a430d7b1b5e2afae809e748d21cfb5ddb6ddfd987b
+
+A = -f78f107e9004947af3904589e7eccda7fdc1e3824307f8c5caf18d729f53fd932db5c380cdf955eb862f9c03124f28851dfdcef4ee2b0a3b6e7357f2ae526a8c78d8de6e8a32adbfb1667dd8bbeeb6084518bc84549c2e2829f3ebb8e097735f4819781bf734b6808ca21c301212d234f2aa250300be247488bb78af837ab64336252178c7183fc4cb14a3bbb65b48bb50d93f4a4ea96d572e891e5e
+B = -b8e6fb094656fdfa338806359a89cb8db9dcaf7ea61cfc9291c1e80171e0df00a1c4948950dcf38d15dfc3e4a5603ec3f47d4a2769f00ae5a290cc98bd73a4099eedee6966690825ba4527a283fa064f4a25d5e13c837e9938c059aaa7af4aea800706e02d43d80dbced7e96a223380c8fe72a5c96b7dc481b5b5c5e01746cc95b18826cc2bcdadcc6035a81413d27276e4f165cf1ed8a87004654e4
+GCD = 106190d22407519b89825cce5030c302a685aac4c03c6ce7a1039b9c5f3efd6d69e69539c1f5adbba35686aed52c3e46669949329bc048f0b732d6d70897b1a2b5b3db9e289610479d2e4ffabf456
+
+A = -18a84b2b1123be65b079aed11e50ccfbdc591224f585bee3f78943bd69c2a807bda189c1dced3cda5425a747e682811c5953eeda5633cba1dccc4f98884d3632ede89df1a3fcfccd13af3b9753d5f742ea3986ce7832906954a19af13e3014909a5f7e4baa9793c51775527c0505c31fb62eef5c118bd17f3736c16142bf25356639399a66a5cbdfe7998c53892f10b6480bc5586bce2982d408f5be2
+B = -2d00c4756a7f3c8f5226f157c5815ffa979924612cb789af5cd3afb0a84ad25ddc9ce6026e23e45d9f78bdd0420d0a5c7028088158d0d786a15e8e1c4ed5d27b527703670a5b2bb36f2b5d160295e9d52dfecc263c8a05cd66760b5fcd11681d64f7851d4883d8356c109dd271a86a91682033ecc2311495278dbea9380f14b1f7436ceb594c563445fb2e9a69bd79b37f932cc7b9d6ba388c9a0269a
+GCD = 6830ca16f9c00ab398116345f665fecd3aeaeac6cc773905518928be45dc98054a04e081cf03eea002113a872922048f0b27907949f7e14da3c59c22d9794b1a993456bc8d2c9c74a0392a0cbe012
+
+A = -1a385c9a54caa898b408d8c8762e43ca11681a52f73d90ad59e81c8f99e2335452a92c153a9cd7c1b48f139b16a728df3c4f51c0d2217613eb235944b08b421880d042f5ff916189e5e308a7c3566d6ea4cc1662fd2d7251afc9427b44e51c3969f4eb5b57cb770d13bffa7bb6f44b5c57e39be1a79873536035b7fe6e9e14602044df959f349c75e7cc1f24225c7bfc6b6a42dbaca0ffc0899190410c
+B = e0687e1255a3d28491a7a5c39f8fd74e04f0c183d43c5daae60ac6d8d6616a30c8ec984fbcdfdd5a3b7edae6ac0ae61a08d14992f11a5755ff69e6ef529531fd5148a6bfd696bd18e8b03b86a412af3596c87987b1f7c6e0c0a3373817a788f2676b6f14cdcd1cd9bd13eac049de3e4ebc512cd94a2f4fde208dc3ec099b819ce2835903c22ff20338fa702a162f6fa3c5ea92d472ae91cd411f90500
+GCD = fc31b2635d9377d8d8e68ca2800298eb84cf66ddf1eba1b402b31f98174b83fbfb62753954d065dfb73b5fec077366fe64e54eec9bb0592eb090da222f8ffbeb8aba20cbd7247ec4ac4ead112166c
+
+A = 2ba6e23083f93313fa20fb17931bcc471817493df912d1cb196c2ea6773130043aa3183884d77e2c68b8f2b49bc895664c1fe8bda5fd3255488c5d4d06cb93f77661abf7e38ba4463b5d1936ac9e814ccde6a6ecca1b96c701aa1fe968f1b34b03841e68df3914397618f4af3b847fd10e974da477e3c541530310f70aac0bc484fc7d344ba7a3db729554908c1af61f2e6b0f3c1d73f3469a135e3376
+B = -1ffcde75881f30657031b1b19e72c3b5c167613547bf4ce805642dccd484f9bbde59469089a02f30eb3f705d3672751bbc3ae5cd1bcc604a142702db8bd5021074add58895ce9fa175db991b6080a98706c2e14ea6d8ae686a92d499255074e0f7b6ac1a35842fd01bf5b070c952b0eb2814adb34db1a7ef325a55f578f4a6967ebcc5dcc384e3125fd4c88fd8ef6bcdc0a12550b622a04de1adbda405
+GCD = 9ac73b7e17d78a0b0c749c96889c366e785b706e42f5a5c62cf26cdd1ef210c35dc80b93e786b81af1db0b3e1e804faf3db469d01f833c1ddfed0c30b67cd70a9a5ce3ad37d4c6f0e1e4fa21a8f5b
+
+A = -119a611a08e0b1d47b8e271865e3c517ff3b15243a76095cf4ecdf906f439e31e5f00657e4b397eef894f29794bdfe099dbc3fe99d9382d75da63334e0090968aede9422af5dcab38ce8054307549cb6fac65ece319c98e0b432159b0229ba7bce8881e91c00724f19dda2d445501c61b07a6f1096582ca017a4473407ded4700b3e09b5e9c5da72de0b19722feb9e2acaed8d8e209918c5d4f591d4ac
+B = 10172318b15c5d9b2e316bf59b23e3c05ef61d2e1c7e94fbec025cc980f6b079c7e54957e58cc498308fd0fcae482e160f319e7420e6a61500ac17919090ca9c86c83068e2fae9cef4a75fcba65db41b69d09b4c7e35c289e9e66a437473f8594553e7e30cb8e9954e26b9dddfc825383e25af0828596d6271632ccae0527b6f743622855c1927fd586b3f295277a88d2d9c5a7db79f5fd916d759cee0
+GCD = a5b0279f6fb918a460636931ea895d469d343de2be28bf387cd6049ef18db62326ee08c629bcb4b5becab054bb77468443720068c6205ca74ad7dbc75596f4c7e0cf0e13592ae50af0ce70640306e4
+
+A = -1c229c1841b818383929a227d4a46aa7f0e8d384000edd9549f7d5bf9a4b768f26d7a60c84caaa4576dbe70592fa48bb6ca265b4a96f2642faf0a74df18886098eacbd1729a34398321141f1576a779b8cb4917ac827ac924d1792c6db76d2950706e2adab452daf232dcf399007a3ee82c86ea8d3a25a9bb32acb0d869f7a68769de0682b971d60b3d3f97980d4632c88a1df25603802f275f0301f38
+B = -2d0daf7ffed556790fa62b984ffe0403732044a172d8ab866211d58d45fd8f358bf5882bf7efccf4b255678d6daeb4538c7953a52045ff2c4050648d4e4d31100124520d04b848af1569b7589ebfdf24a4a9a07011e70f5c804bfea1a01dcfcfb48e73842e9a5d71ad2f30f3a618206eaf3e73a53c311dcf39216621c2b3b2a0ec0a53218431f668459022ff0219c0a25429d38e954f9053120450e2e68
+GCD = 2ae2053b6d15976d4415c92c71a407d0a4568527bdc1eee72e047436c9ec1831c2a32aa73727f8542287b37096ee87b9e20e3a489fc6a02f07ca812e1ae291349fcded3864bf76f82d767833ffab78
+
+A = -11512883cfada5054c4c3c9ff16c6e9f31dc7368f291910fa71117e65d890f8b5531380f5ce7a68d45cc7cda4e73406197cba44c22af3cc01fbec474d4077ac123e9337ca996488e101eba0cf2e5d7cc22be36f7f34029db1482ec63e2276d8bea80c071621481321dddd118c90b98710877000e77b42597e56cd8a13e4bac9a00a396490333d2394c4cf4f779fe08e33645b4b5b9774741048ab4ba9343
+B = cf4728f3249bbefc7ca89614b0ed2b4f699973ff6384190e51866f68aa28ce89bdef7e5514bbcefab17cb3afafdcfbd666479fad44dbce428810f276c96ff741bbdcfec285dc9a1b40e0573d7cf0c04918c1e1760b0703e67c96bdfb23b94cf39dea1a707d9246602df75fc3db49eca0cabaf2a7016dcfda4f940ebf55bd1009c56fe6b49f73797165080eb859f962df9598ddcac381d99afd7919f5180
+GCD = 6b98e6b66b8948d5547aa8a5d7eb202011f17693339beb17154e7afa2be42034d450000a128401a061cedec95484bfa5eb27a1c1c018294808c54662a1c7e45e4ddf8b173b5a2f76ca371891b55de1
+
+A = -39658d70403668d8996b0cb6aaea6289c5a546076c550c306fa0c9e413b26c4c0c54669d4a189141844991a5ddb1786735ce08c56ce5da2bfe295a7e4a96fa0a5042e873a26f19c7c3c4aa3c1226d6da64e2d479ef62eedead5468337bc62df3b55dee45050f16517473494ff20d3aff1bcc73a04372e65d12a5e4f93b5c0810cd19bd717643e5f575300db41070faa92b3492cd72d8d2adfcce5fd99800
+B = 37e41a141858200a5e2e23a8867a74255f259970fc4dc07b95489e98a2834de461852949856a26157911210ab1c6fceda182b94f748db3fad17d4a3c6db79f18ae0bc2709d295fe5d6c5164a7df4556fc6c6e96aaedf497fb157b1824f684901dbcf756f954ebb8e9eafb054e3c0ffa098b050c64548e848e491140bd0af9c600cdd3c4a8587a47c64d520a5ada6da8d56735539038cecb116f40c53d520
+GCD = 8f47724f680f3546964521df9da187ab638caeafa53e676b0d36927ae202c1cd021565900484661d55e7efc93cdb6c966b8e42b32f98cec9d019c6f98cdc7e0aaf7bfdb6f7af53a924a5865026e75e0
+
+A = 12af2dabd799d5f77a8c1af5a61796f19b721485c460a9411d91c03a2b41a64a181ec8a192258e808979f2101f214979c04c3dd2c32185fad5fe7503e50216bbd38c22a7252bed4fce99f264a3ab15f156d4718d26f1df3c2f799f091b911b3baa1941b5453ebd247f4a978235371e5c4782468e845279766d4790b08f3cfb0e04ac7fa9e99028adaea86d2aa4fed8d46f9f004be58b74b181bb9b781e3e0
+B = -21c68056fce2b70a4915e4d52145448cba5ee900646847568024eb0777c83c26b868ce6005a4f1b04889d45ce4694269d13ee36d6d7195807f4a3edc6101b6ceeff71f632d1381ef3ecfb9ea76392439ec45939ed95ea9a66a2d03540b02766a3ffd0312477736e058dc9338c57416eb1cdd44cafe9a4db9a51143690f1bb7b04da5bee0f6e778c15679988c73ffba077c7d0de0257e2b651a5670fcac79
+GCD = 1c3f412419d522ddec1a02b4e659e31f81c83e366bf18cd7915636d2058e5fcef96a9df015981da7e9dc0d00c3ad20ee8a0ab0eccd4e7bab5b49c3b09ebce921c186aa10a69100722cf794b56963431
+
+A = -3fc5a116192dfb88d643f29414952b6d9da348b052154293f831a6c315183327cb8b501d91a021c339a9f6f888682b371db3d787c07e7c101262865827cd26634c2f4ac503aa590c7cf3123a075cfa123eaf57b359cf5006b3b962b3722bcdd323f82276f40baf9f16bb437ba14c424c7f7c940e6df6c245d790cbdacdc37406e2403bc7d4a39adaa46ec0d543c39b0963d2686d2b6ac4104068b8a8a3a58
+B = -a977335dd8ab37fddb331d34db09a447172cc52a5b91aa7b3393c1ff6c7b3f7e3fffb87fec7b8af6928c30b40e477f499bd199da2662176b8e7fc98317d7c7a7324e6032cf95f93b6fb2faccf2f36a4cf417b1e4f31ec2f6c9a1bf4d88fb24713113c854c5886d6c9b296fe8553b1791f9185be29a3ee834d3f0709fcfcd3f25496371d8723935528888e9f3a3d993d1def5b659efb77bac94b1c8a1af38
+GCD = 5c1b73d28eefa4966fb89291f85c257acc33b1d618ee8173df5027817f27f67b792d1de371f635060e1c66a4b12298bc32b27dac176054790a57920510195d75eeca905d7b630b8d4656a20c22c4158
+
+A = -78e763d5a089a7d6568b2efaa0d76bfd03fa98f910a5f870c0f9211cf1d97118cc2cb414a1a75b7eaded20b90776c2240e633938e349976f6ef5bb101d3b88d6f890de73fcd9a145efe3dc778446715f6a66f13d52b61f1259fc1bf8f73d6116d6f92fc91df5fc4ded5102e527d8fa4a7e926de954385084d46a5e94c81620e0ed65e47877595072e11ce2fa737abaafc63aaaa2a639dd08c450a4eb2610a
+B = -18f77f869661a2beb37d54bd8cef3a2493bbc89891dac3f6ccf269e1b54a5c23f20a45ff51b1b3b9cbe77027c22c46e715ea42901b8ba7b118c4ac3291691c95ab2c65b1f052e69df83003908da3b152732baef38ec50037b37a4f9d9a185e30712b1a4d81e0212f8157c725db0a2e08cba76cde3a4d398899a42fe68344ccfee919a767e9540d390636059f82f31e35c7db1248e358db1a4a4bb5bb6cee03
+GCD = 7e6c34362c5d3af1364d6e295de00b12a97a4a47f8da97f7e2b15ae651a6a0e1044f5c59bde90972ed6b1c2814f2ac6ab5e235c76ebfea52cbe46f700533f9fc59370bdd6ea708ef335d5253b71dc6f
+
+A = -4042cb1f17097d6dad28ca72ffc6438496f96f904b59c61360a21b1953e88dc8c54070ca2d00447974275bc00cb5c4d2d8f97648038e17652faf48058f46ac857ab751af432a75cdd097b1b280e41ddd5dcf09d885aa3b6cee9aaf044384020232a86dcdc87f3a41302eebc1298b6c9fca49b3a84347f6f31895d128eada4e4fbb5db5d744a22716fea3486519bd3504852851d05e1894d7033a85dcab7d80
+B = -d8bbaafb35257ecc29ba4bed2dd5891fa95752c37b1313dfcc24b3935c89b4de7d655fcce01abc26057833bcc5c43b85590add8bef2e4e7b71ab8eee48c6f15b526cf58deb32d25aaa473622c9649602d9311c8ff99ef401f624a9571a29aceeae76dfbfb83567277e75e7faf83916ce7b31e1b60436c17af34829778b5e0ca416190714511d3edbf56ad49ab2cd63629121ddb5a9a0a5b147c9dcc33d62c
+GCD = 5170357aa0defc4b91f507e720d5f2f3e5896da5253fce4ae12a5438e46944153f94978c16a7a0187d09af17cbed1e9c5168bb0ff1cf84f3496c7ca7076a58769e895f23f06b023a6cdb1b56b866269c
+
+A = -d5646f9800faf03bfa0b1f54757523bb30589df5bb062b0deef17d27dcb01c50115ce768b71e8294323c9bcb37c7dd880432fb8e6726178fd2244ca2e9318c16caf087fcc5beb4db6b284d3f3cc956142d235c82a96443e6d443b6c07923d9d7c87d6f08826e5139b4f863f027b35522df3f33491171a8423311e6d034ad90bd5315f20b16d21e360dc3ec1fcc87bff901bc057cad089d7c05dd49e6ec4000
+B = c35abacc3da62b0cc14b539344861bf9c42b4ded0728bce10651e8e4eaad999cd1faa9a7ad9cd34ed8829705279512e959b38fc3acebbdaa5b9b53d3421d092a80f1867d3985b6f98f9ba8efc3224022fb434c0e991aaaed449a3324710dcbaba0e6011dbf5564acb73db323f214e3e8fbe9b3afbb7a9b4f33affc828bdee61398c12ed474f32a8db1eaae025fb3809666f961ad38b8e4a2d3f2fdbf86b980
+GCD = f74651c283e71afba05d1d8457a4cbac720a2fafa7e1a75beefe28b56eeb97776185467c151d241ea4365e364e42faaf73f1c357b13dbb969059888260f2aa925f1c71303bd43d1fae045d69d99dbd80
+
+A = -a71a0de3a7c1e449dffebbb2745ac544ac0c210719fdafbf1ffd7c1aa1dc7ba178f59fc08a7be23fe5c35df07c7acaff53aa6230c76ab5906d3753ce7b670b11e1372b3a4e8b281a56a7566ecd9c53931f9bb09914464d8e5d4a441b9c7d03e1b2c5add77f95a5f9b556aa7f0a5eaa03cb421556f5bd6ab7f7badfe4a16196396456eb75ea9052c6a29af000608911268bdad9640b0aa32ad0df3abaafd894
+B = -ebf7bc338388124422f4cec02b8794e53ed7fa6f959ac0671a65baeacdc56fe41b655123bbc9608482c1a766f21c640d137cc08832e600c5bbca1782336adc95507e3a1cf267de7c2a755acf7e2d094a4f738358a9fe2a9ef7dfe0cd43f89d590fc2e6014dc7b17c742f805c0cfc66b13aa575322fff798723996096334e85fd8919c1d623119f33fc006c2ae57e895a7000509d06e36b823f89dd412f1176
+GCD = 20d8b4168129981402cef4af98101235ad8f71f5faf8dee805b75fcbae17169e22f5def4adc598cdda3c79c560b63e31db627e5cc7e4cf263a51d01bac985bd4deb0633649ddb2775e8d3b0d19084ffe
+
+A = e9f6a346b458499060a642ba815dd6a08864b85b141fea0a3cfc0fbe23a878b361283f0d8cd6306294b77340aee04e84c73fa171e39eb560689146e9080a65f7bb14eaa050c1312ce3bf68948a73e9631ced01ca400e04d75d959b13d794c344c90b265e0858efe3393c600a3183c7164873e585938caa800d96e6383618f4f5808364f190bd1fb33aef0250ece196c0e15ad62f3c20b60162c13d15f98bd0
+B = -1f138f9cc0500601990eed3fccbebb6cc63d4380fd15aef2ea70d42a979d891594ae9223192c90ea23bfeab1e9f4fa04244fa17b0cbfc440947106322c65721760f7af35a47df0fc6687c84a298afea438402b0041bc73f5f5e623ffb7c59bf1a939b64a4753caa8e34d12ad3488a237c271ac6d820df136955d778dedee03855aa751d8f102d8bdd15e78ec482b10c08d14bb7e877952b64ee4c40d150615d
+GCD = 5178e11bc6a653b7471521fba22ae4bc5ba84670e6ba6481a4fdd54e513c4f10ac0fd3086ff5c46da631fc9727e2c3d5a9d7e1c34308aaacaa262b789b57a9e7ee5a5786f02868492a1896538ab0423d
+
+A = -9e1e0d0d509927d91abf4c5b2dc4761ade78e7e04de5a72a8788b205ed23d695e7d3ba64fa99f62311154ccf2132edd680c0781c546c4104aed21d6906f1b9b9a3c6796b4ef777d7e8bd1498934d15445c487c8305cfb879aec7aa028b653a22e09fc6fbde1cccad60af8e1776b495c6cd5decc963d1c9a0735b7e0302627b9b352c772c16138db8bad1fd922fe915c5d3487112e77908acefa5f489cb9188c
+B = 38de5ff6da902f592f03fae32ad918856f07124a3e33200ff78b09b9518a0b304e0c22726d2704126560c8ed40d256d067969efd8926220cee18bb4a33c0893925adc188fc32e6165c2de6acc6c73e5e7944fa375c2b5103e55b5739d5569a2da4702f921852481d21fb2234150e14978f290e44b3fba545d3ed0f60743fed951947acbfc89ec52ab0b66ac316b5ecd88d67df06e8f36cdfb8a47ff712b10a24
+GCD = dc73f24667696c99391c4a9defe9c5ca45732f6233cc53ca859cd3e2c4aa90df24bcb0f8a36c354fcb0d79f3bc078b1a0d3730e536d29200afb2cbe7890ececd551725fa0a89f149d08cd7f79aa96c24
+
+A = 424d0764481a415fda9964655ae08861dba717b72a009db2246782275c5ac9c503e204db16cebe9b10ff459e9d60840fcc945d3ef6c6db813a936cd36ec6db1bd112de5c5771e96934fa653271e1bbeeb12248b1f15bf2acf91fa4054b6668e6cec3fbb5bad7852e59df6b061f4d5f0bdaf6dedcd140ad0bbaa15a582099d54c3d43c61b4769c67a0ed66ecbfdb4591413e59552e6293ec13362a354ece6d820
+B = 1a5e8e81757a79341b4e86b04aca38560656accb6efc1e9d982c4e4179bbeac7b36b50d3539fe4ff8b04d9db11c166c161ad1c8072f3829012a9dbd354d414f930182cba135224493408676c3d7aa7eed9014508c2701bb8cc2d2f963cb06bb51aec51e290f4b1203e87b1df8c3c16daca5862814531795cd0f494f7440bef535112667eb797895b6c60a6fa60f96f7156cd869f1d013d89a4924912438eb54c0
+GCD = 6a52bde7a93e30fb969743d8587f14314e2efa53dca0218601f6196ce766e5b3243b0403f476712838eac8e710a03882ea1876a00f64738635c72c357fde60c032ecfd88ada755a8018f35e02b8927f20
+
+A = -15db9e276016c57f9dfc330ad290ec43853d5c45fbfb1cd2fefe427f4c866e22330f57d5f2a752f566cb0aa36a2c62a73d01db1ea33b4903080d5368916204afcc5b5cdd9a1a39ace70f0347383f85eaa661248fdedf37ef01e2cad2fc8f320868d16c23d2668ea333192b4d4aa3ecd2d1a872e63541e971f87f02d272b71b910b483f8862f5f89a20da957bd15e4c86ffd4d167660290559af69e2539741f40c
+B = 4dcf192166752a6f7dd6a00c62b8b3481f339117d8412da06aad82200b2aa9bab2545e6ede82962c6dd09e43b26a5a3d166f69bc0dfd0b8799e908ded998d1e1907cede348ff03014f057e2ef4be4f40fd18eb0a2b200a3cd02550e980c298f340ab183c68a48158be8e2a5b88f0b5b30109e299b6438c3157da607bf2676b1ebeb289e1a8973226e4c6e78d2eafe0db8b4d69412514d297d0e1d02ef64e29bc8
+GCD = dbc2d41161d3f18499ae0356ed22e1d35e8de178d88d1db47d55e57d30e3ab1169223657adb97b7322686d2a760b65bdf05d7bfd4012046c809375e45ec8fe8e4beb18babc539230959db698f6b8d503c
+
+A = bf84863c031c2534fce9e1b1e7c3f776ba329462013beb5d3dc9a1ea0e8ec8b5acf9463c43a590f28bc4fc1dddb2e157b266730820b913a09d4e8237900ddd7dc7261afec182a207848cb12a3bb0e7124d91998e41a5aeeddfd93b38f9756260b06710626e920b3a639a48acf61ea466356caeb50403c163c19e654a69fff86a8190f187c02f90eba8c3801105e21dacdbb9862bed024aaa4d4c15b8ccff9931e
+B = 12d7ac84f45b39d4b66d77eee8e3212794542c556edf9f4c0abc983b056e2ce6962342ab63338b864298f2806a50d1098c60a0680ae4ecc808be8a603c863ae45424dc1b2a1d4fd285745c3ed9baf6f057f4bfe91e5010dcbc4f3a2ccdb1099cc48c9284d0b70421e4c1838240d297391a6036dbbeb25e0ff8701d6304bfcd4b8164f3d468adf1e48a48decf4cf0963b7948ee5fd9cc2ee3a778dc6b9b2da14550
+GCD = ebd69fea03c3509afbebcac25918c8b2b3df76106b663fdc514710373135f6863fb66475054a183a8c80746831582ef7b1b3f8369cad22563c74a07a39c933e400f457390b887a4b145239ed227a2d90e
+
+A = 401421ead1760e4444fe51d0ed157fc26a4b1aa704cdb213bd5d5b820175afb1c3db3fc399efc5c4c539ce4a44eca4ecabca01670390a3308ec235015e416ad6ff79df5313a8d5b4247b62359423b32ef1155d6fc4ef6f3d62d8ba0cda98049b1c3f73d3a8a7cff430d99d88a47183d54950c02e61ce3ab8a57d4e95b122dbd30c67a8c5473200abc0b6657b0d916c129576f661f0b670b921029804c6a7a10af8
+B = 36cc99bcdb2619adfd93e2fa2f6ebb639a18d8227df5751645f76d903f18afe129a0993b0da5c29bd7c2e7049da2b4284ee3a46dda22e918961622fe66c6158bc8c57ad9b00c3f8f95199d0550b5cec929cfd7c11a93b4178fd9839880864fcfd58bad1e2c6c96d4ff464cf42817ba1d9bbb59f570a26b640c1d1dd5863be54d5f96e704eb7353e502b1942fe35cdeee669ad4ca960c87ef6addbc13e4f860b1b8
+GCD = 21fa86999658121fe55845e7dd43a1ffd21c4ca8f37a31af2def0a3e27d8bc51e04ae7eb5e65760302ccaed852b24c45e06a8b6b792c515df4344ecaecb9bc985f100b8898690dd83dd840ecd0655b8b78
+
+A = -18c3f2cf758df5038731c1be874d26a9b072ce26425c64ed74b246926bfae53114c0dcb3f1c0f06cfb09f43f6b7d3e635085e7023be56d3e54bef884c8fb185635927299154ec13943124d4a361f7671ad41c4564e98f73beb9035451fd5e3b66f92afcae903613dc597fcbb443de7b56b493f1ebc6f3e129b2ec595c6afd86d54bd3863bcc83d27b13a57279d6f788a7bdc6a84352d199f6a55004da315b3037c
+B = -85a31a8cc522717473980c0560cf50193d999d7457a6596115b6e640d4ab4482b5ce216872775b7da243aef7eb7c5f104425a4211a07854806662838b58f4fba5613f50104b992c69daa5faca1b2e83d30c45b191b1e7b6b66ee524fdbb912db191902ff72e192d4228b581dcc2e41821c06cbe8f655583d86dc305f05989d54d7d82835c0cd8f16fe0d4832af5fef0f0ab52f19980df538ca8087f85b11f2107
+GCD = 11cf3710ea8f9aaa7662d95dc9ca2e8c051d610fa95bdce9f0f4daa31620b1037296006db1437e16bea23d7d3fd86ede7411556425b52934043278cc4bcdfb565a224c362af57a735ed0d7511417a9b5e5
+
+A = -532dcafcd2ae2d7cf964756dd347bc63d904b671c11d69d1a723dca15df97e8acc465800d6aac4c6a86632221df1e992174b6c02deb796ba19cf1e5ac923063a3d000a0aa3e08800e9eab98d2a035406d133832d576547b13a1c15d86af6d844bc83aa93cbdbdfd3327e1a384d0b7d08d7fd586a5e1fa75a7d7a721e52767331e1b3025b7909c6c85858468ea2dde79bb44c5244865777788969eaae29adde8c6ff
+B = 3f2f6fc19738170b40b3551dc8f27cb13eb4b6f7b80e3e19dbc508fe609b743366aed5d3778760303ad9f3a375922ff06480cb57b9f26406672075657f6b4fa87ccab72ae32aab322306b4af5cc8c3ca858b54e66bafb1ad62b080e6569e9fb72893f5eb09f44be2212ede48454de9f441113ca345e22678c1190e27a0e32d379e4fe7157e5fc517c10de638f909452811617b338961d8b94fb4123a7c3655845df
+GCD = 376426bb3ba481678ab10352f0744dce370bfc0d1a3aaa70dc449f6680e29fdef8e4baa9e957344ed9f0b2daec8afe3908d9fad50771c6e8f4b462e2228a4a13524cb418f3dbdd01836b0cb9b6f4f5a967
+
+A = 4ecf32cc2001115da6179d222580a560477c42bb246308352c7b8214efc9a4e1f0a933cacbb48901c4460671d95ca5639a1a74b993a2ee979086bc589afb4587676b9f5830918613291d6e4d14c9ba84212057af208363a7822f6356fe9d468fe590311f420a42229be8f900b63804ce52a482b29856c69c7a28853a5b2c71bf949dfb0e1fe985eab4f6999cce6b63aaadb7aa4a6b16a14a14c7ed25a607f73f536
+B = -1cad64940069b07660420d1103e5c54d4bb1012c0147a6ef6bbf647ba0f35b5b8b9f176df6c21ec34584114a1ac88e73da3d442c7caa7fe6e22401b7b26bd4ce75dfb55a2818f7648652cd9b980561a21428dd08e3e49e67240f7ffc0c6b47c5fb7224e3e13c8ae241458d7577e96f2acf38de2f3bfa3b42cdf45455bc875aad6755a778e057341c680c84dcbfd18afa697a73628e37ae949cc2ef50845b7f253e50
+GCD = 7985cade73c3d55095ed9dafea25ee23e50d1b07969740df6d70a4f3f7ace2ca17f54c47ccd78c5962edef8e77d44757bf286774c6052fc88741008ea5af3ba8b6378a06274896851c8d27a85bf03baeee
+
+A = 5bc091dbb7696268add9958c0c9bd2140df8b30deda2093d82dce05450232255b969d75b550475d9e3bdf7cb8738869916344cb1aa4309c28979c2e57ec14072ae31c0820334f190011746a2e2c3cfafbc6c48dd20924cd200ec25743713a71be451ee47f8d284940ed0981235acb1ef55b4cdb5f99e9d4dc98d3a927a72edbd9ffd12ef22eca51a1bb38aac5b4e5fda027db16f253ccb9e727c91b6dd1d53c5d60c
+B = -215ca904647d4cce9ee41149f6c03af74a9eb54dd1f43c0ee1e1071e3fe9210b6a5fa23ac95529fdf1207af2d1a2b1c61bb0ff5295a6366f4cedf64077207546f7d1ef6896b00de6e99217fb8b644c3f2ad80f65c9d2f50dc940d74189ee97339e54b4a45b1eb2d3b5626003ccfead467e532fc2bbf5f2737631f03672c0c410afbb288ed15e40126a7b7a023350a742bc5d8086754c2d2887c38e015910414470d0
+GCD = 1c4729f28b86af92d0840cd009e4731e8ac551a192e8de759c5212d4a6bc8725dc5e8a5cd34fa1d7ec9c482efc8b999412337f5e0d4363314fe93147990bf419555ddcd8aa3f9ca655a45ec7face2575c34
+
+A = 1a261d7d2a82303999efd12a471cc73d302b5ab9d1c4dd205fbdd0c6a8039b8fc675d3e5cdd78b0b45a8b195e07a62bbb7b807d8fe2d7b5bc4d6cef0c65aab0dd3042d35ca5ab0f153bb1ba11986cc505c4b7309d439ac2340670da31981a0527dbb2acb43a3f297cc359ae3ec71f44466f5de95f68804358f5419c4d004b7e3a03e4116faafcee5ba852af09639cf662340a7005e598a2f988058b63554be7e4ca8c
+B = c61460ef4326daa99a59f63597d545e49ffb0f169dbefbf48d3c560c3b824f53f8435107464905a23f520dc0548dd6cec9765ab10a737237008b56b9b5288e8e9d3edd387de302781265c434436c3d5e83d74e35ed15569c04649a5ee612e2dd24042e468075e2fd23be46c8d58e445ceece239c8ae3d8f08037cbe0c2adc6c96d44d864ae2cbc7e93488d868751e3786a58a47f15e0d9080a25b592b0399a1a2760
+GCD = 6dc08b6680dbeb60835b34fc41387d27ee9a728d043d95c87ebba8058e033780fe2073a49a4278a3048c68bd9290711f75a8d338b70d17fbc54ac69d0c08474c4d0920db3793cc4f4fa313df5a9f7a62e3c
+
+A = 70e80c25d9e805222b7d6ad6126e1fe0715d57a5322f70076cf62ce91b61194664c7c715cb3bf656d4ff203973b198846c64a1fd92bf11d0ed04351369f5d8433f971e61e2c0ff6d331ca35a651735951694c82a47871d36dca43b1e963660be719ee35dfe4dbcde4f380f08371defc826f1ab2b2ca86b506f7791841d6a7d29c1103afb9e3aa9b7bcc11569457743e6c752cb3b8df362524eb03ac0f9c7fad9aebab
+B = 4c3c5788da48e310686eb58be40d4ddf7572687116fe94d7ae085f001c428c89b0d8c6ea9ac239273659be933c9d5fdc0bac2273b0a0d3a9bbef903da0fa108b0570020df25f97673d302576450cf4a33dcbf41491d972934beaabf3a61eb4d3ae278f82f99c4c64e7eebd9f4ef82f12f871fa665d2d6ddf5aca29a0d5fce1c4665f5b5d3658212e87ce38ed6b79a9c51d61fd4dfe2ef25d5033ac74869c651fa905b
+GCD = 3c09e59543a8cb089b2e54d261f674a55dbd8f9354f8795656785fe641f1b6e91490ef627236119c840796d071bee6a03c6c1d6bfd9892dc6511f28c3ca06f681857ae07a9ce3a3311e592c19c4c718436d
+
+A = -efbccc25630fe209d37e9bdda0b734d1ecc2900037bee9ba10d2c312bf36362931f1625b6b53b1f7b4778677e3c2c9a6251a51ae7bcfdc8a4fcb0e3f6de73f7d2648c14c8a2c4c75a2f867ff6d524455121ed29b149a6e166faa88c772f8d98fdd1c2d34f0fcc0ca1c64de068047caa4350af5794e7ca3cbde87e2d24ed2b6dcf2df69f70b300edd600e9f5b31ca830e60c1e7170d0b293227eecb0f60e45c96e0e81
+B = 434bf8c6b3147dae8d526a2012ff4baa5dc6ffa8239c51a3b95697c65069e375bed7b1fa439dea48e69cbe28f2f183157952779f89d0a9e295e533b8101a4024db5f496766f9c266c7575222f0500db011b437099877e43705d04b028cb41ebec51381eedee14adc67a3a9cfdd6d90dcc44bd885529370258b9241e6fdcbe873d67d4ead4352946094d91b574341fe36e053bc34131ed12b201eb9351ea026ae63308
+GCD = 5895d3316688c60d0ba7a2147c2be7727816ecc0e703a084d5b477ea132a3fd3fa4ae311f4521593ec532d0ed4bd2413d86071360510610a27790e822fcab7ee5c11f7b91c22d62322cac6f4e16dfc3fdd5
+
+A = -29da1816f4c6a61f0e459cdc54dcb4639e7d28f6b74c54cb06380def3c8561adb39a0f790a1b70873c06ed025f12ae8cf31933bbb5a45120ca47624bdc39ef86e572e2b6314bf86e57e9e81b14fe3cf1be57ff1a67f16a63ec8430f10e0066957b21915852686c9da65c03fe7cff5d9db2c8a53194aa274d264baa6ec857d517fb7ae0cae537a4a7fc7cd07a116c831acbc7eae6ea1d5587559cb5e0162e45b2a70da7
+B = 1ec8109d26c1abf8eb91c94fe9a820bbfaaa40ad6d82f641c391d3a917c88a6555f584f3337df1aa16f6d58d4e299a96439155ae279f931b6a89a45c480879b9258f0ddf80ecf68e2a8f682d1c7d86cee01dfaab196c62aca4844f52ba740dd775ca4efb9f52b898f580033c82d51f9de34b821500ba0a9b06d980a04359aa9048c81c66aee2cce29054b3935814b17f5419ceaf588109bc99479873a7c8e55e6e0a0
+GCD = f97988300c811da26d3ef64bebb885b1762f8dc7872c6cdaabc3e688764d4164d1ac51ac33064c326706eb4200fbac4cad0b36fd9b3afbdf72c8dec8dd576c78301d304fcfc405508096346792138820319
+
+A = -16313a0971dd751ccb75411ccabec39c995802f68f84b7f89ca20fc39252481cb8341533b210a22608851344db451a8b6c121b25c030fe2bd8e26b8a0557d292b9d400ae31c9ea576a7f5f3fb0766107d6ce528064289f0a5f08f768634217692bb834f823dd46717d0e05ef97b1f7559d91f2fff6ad2443dd404894f8fd57b76a27d744782aa237236d891d758b8609a4e43bb6630ef429e7b8fb5659f72de22133068
+B = -294335c2a9fcb1f5707416fadf23977509ecb21fd704dfa2ecbc2cbf5ed22a1aebeb55bb98578ab96b277924d530853cb6795f0c480bb1419b7cd9a6d78f3de57cb7f8420d7d890dcc8cc01fcef117242f996f835dd4fefae27b3c0575f974cafbac6a537ce87928633e57c49bcb8c714e6d8c53ba71d3517f3aa19b512ccaa4f299c1e6b6e0c22a4d8aca2bb58c45476f29c5c281e8ea3b4cb0cbc9c9fa7c3fe470a
+GCD = 2d6bebea4991d099b6a061df6fcefe00a6b05c0598694eb2dba0d6f64a06c279db253f095fc60c362322ad0dd70f4737c6d67fe5abfbcc822b3e7a61b6fa4dbf00cefac2b3b91ce4624125e18d15fccd6cde
+
+A = 329d32eae5e3708cf6825da399ec12a842062d0b4389316fb99582721a5a19e4e1601401c8f003b03494d087d84e35c5745fe19e2a2f638de6aa97cd233b2e7afbff9a8c789d5ca362ee51d173fd6b688b36f33eaba68ea705f56e05c841958c5a887d459aa129abf2ac443da537e03cdb4fb8d489b364afb3c06de65bc5550609444763039d7381b351ff02d977fed85320fcef4181f990cb00a2b68c960b17a931307
+B = 10616bdea0e5df2797ec5a5ecf134966f3a309bacd8d1881eb67f8b60a52d0ee2aa81c631b2fed25d922db3846914c1cbeb7f7195546d5a5156e0621d7fc2055f456b4b67a44dc8349ca700b3d1ee947e16c85abefa5f60c301a470c5e30291691d927d6bfedd4a7a02b0f86222eafa139f9ba6c09b7a51268bebe9047766b9e94ca0ba1940822a934a1ed9b88e7ec5a3c0edb5eb851eba448c7695ac943a2886b5d2dd
+GCD = 35055166237bb1af9e01ce90647c1827a79038cd4a8c9fbc2ad4f2d6dbc111a76549786644cf01e803380ee6649821b7b7146956b3a6273b08c6c338ac3748929a59f8133d74ecf9ef36fdcd96af73b5b693
+
+A = 36904bd5a8280f879e08cddd53f4d1c496f12430fc50597ee51778dd6722df6f29049734913edeaedf5ae14d1cebeb2f9f0840e88931edee9e9d0c16663930df00ca0df636b6126752374555bf771ec6414654db5d7935dff47deb669fbd2ff28a136e3ddf3b9373cad67b6f4286cbb7f04e634477a7856b7c850aa3c5d606cdfa5452c78f07fcc505e4339fd0a23c350f30098ff91d3dfb4b8e60ff0e32335aa9fbaa6
+B = -10e983c846b305d2f95e2645620db9865649a44190e8c9323a985fced8a6f5c6198792b844c8d6342c24dcae3e58bf2e4c71658b0e23c7c9f6be8a6d9822ae7af644058b21f1bf848cd3cc30f7230a1769d26ed291ef3cdd741b016de806dd4b664e16dcd22d9e4ca9b532a78ec4c42ddf2b6b6d3d6ce290a55c1cac5b0b856124444964d976fec1cbf39834d8ce7c65490bc517eb4fa081c3c16a34ae83b9e78a0b11a8
+GCD = b30a49f8df4592d567e91202f3113d0a3042d8f83da32f9e384db094fb87c92c953e0ca1f1f5d648c31b24892b71ccf1558ff232754ae613299d0fb08a37acb0d97693dc71f5399a6a1307f5526ff32f7f4a
+
+A = -92d36603e5e2c4ebfa4dcb11e21f059b3b8351f89e2590893619b72f6b5b5bd03099a14f52afb8cb25a42299e2337af648478ad4d21f6f24bed1ae0ab7b401f61331f69ad73d22f4169ada96b405c310355e9e0f40f12310eb64693495ca9811609a4094a8f1c5ea81052715d40796f84ba0b76b6ee9aad312d8347e31ec97c5098a921d89fbe29aa8a8034f0fbdb956d96a62ca0f563d7a13b18f50d542eff534a6c36
+B = -6252eb51798b8bad5b7276af580909389a378edee5fde835ce26b4d7ede5a694cba14cb61ec0e32352df422fe663203226fcfbe686b25b4a1fe0170ebd4ebda0cb11c49e168f4ee2635ecab10da9a8f661588bbf1e118740236a2c92fa213d3a073ea0ea6e4a0c18f12a8290dfc930b85113ff6b6beb5fa03136644ac60cd072a7f408a681d3f8ce43c5d77d2d13e277f5c9d30f61fcd61f494b60e5baf112409c193f9c
+GCD = 2af5d3edd317537e82dace782fdcafee33606808d7747bc9cf2bbe4f966bf5ac2aa7fb6166d4904fa97402e6ee97df8dc545d4612ba427522bf1fdab9ab975fdd442500775756b2019a20d2fbe2a023f297ea
+
+A = -1a39d935ec82e657e1d543211119a4142e21e852a1c1eec13050e0131cd9befa7ac06cbc194f2c61503d3039c810db50e24d6263d271feec5e0a94b8bc27119913945df995c14dcdeb51fcef8fbe9e7b6444963221569906bdc88dad351609d13a15307d5ae615c230414e9fc46a8a7fd053aa1b9eed9bb3a49a9beef39d339e981ed2f29a40a8c1e8ef30b0523d28a7571ca5933d8c0bcb99e6ad0b2eda90e925bfb9790
+B = ad225ec02ab789663525a085d578a5822f76da9b9cc05f9118a9dbfe4fd3e06147e0d6c492a94500ab728600a3e2e2cb0228cf059c449576c15fc3279b373f1e5f9e71c211b3b7c5ee6ea8048de0eba7d405ea149e8e457cf1b76a3ac99d7285f0e3e99e3a4b528f5ce058df799e72e7be1ce459771ca3ea9e0e55ee04fde1dbdab7fe94a30860b9f089ae64103ab46fdf41aa41f6ffba41a6d5d27e793b2c9b7a33c420
+GCD = 1afd7bf54947a0180df0d0765e3d570b9cf5caf805483a5f68d693dcdec5ff2306f013c69000af2acd4e4aaf84f8e7144ac1f7abbac51deb64c3398f508f8e7e02234226240bc93030a26593c1ac750349690
+
+A = -36cdc87cf80cbc81b79a7c0b0cfec2437fc585e7c66d8d09038984d93333f940eb47bb59a7a0945c357fb87307487fb381067b8590db8622ffee9b1a6ea5c81ee4a2f0d2d05dbac5811e69596ea3766b2a950886ec6c0f731765c7cbc9bca7fbc3b9192e7c1a14113a1efa92b6c40abbb4b279c76de0875096c65d38c5effb432098658909788811015e91f83adae3579eee7d03af0c0d332d1297e980fa9a22d1e43fbd4
+B = 4b026196c3a48a799ff2699b398e5001faa52328102d64c66bc92f2fde7dd054f6cf65bf97842d3e8b201de3e520e64f3ea2c2aba0e19ef43a451e3e576afd0aaf1240a3eeceb71e25bf81d0129d0aec630cf20cbd4602250f295e54cdcef0e416712da7c97ead81226119a844d7753bd3d30606a43e04c2d5ed2f8b0b0e494883791025bd297fa3f06f25e9528938614a7bc471d9fb808108fac9a8eb7a89b3852255f46
+GCD = 6f4b0595758ae08b899b898394354466b0e95e27d15d60d3788273fcff330e6d9763cee432adc494f6f30ab274077e667b6da3ae4aa8d4e6ea05d375c411167e959383d39c03147e29e3d12f6855595cc79fa
+
+A = 178d2b2dd5aea994e261c28e702d7d97586309cc4cd2c694bc8a5cc27c20cddd1786088e7b827c98f576517bbab7fff5ab23890651f0bc776202839624b627307f9fa44d6010774872ef18fe574aff2207a72accc462eda36f759dce5e4ed08753b75fe7e9610f1acdf7ddc09b24ec4cfcdd5859f21272be818b8b5aed29ad487253ce96771fba3eb274e3514a1bc1ae0321447f7477cab39f702f8732c213c394fd189c27
+B = 1a9a8bea97eae9d2bf311d86133a9ffcf8746c839ec23b3a61da91fcc0b0981f86a2b33582bd7c57635f9f12b79f118727b7d37de2af2dde2b02fe4a229823e880d79e213f18252d96c185906ea56861a39726f3998bf0f55c754f2b2d769b3de988e94e18bb306ce2ca96a310cfeb28268693c92dd96316340d0989e9b09979d6ab7c276b59eca4b9adce0fd195404d4319930858b108e9c15ec9fbe1269262694ca8f184
+GCD = 7e65b25614174c841b5d1871b2b8414911d5e80124eb768ee0e7ff33679655f69d2426e1d7d1ddddecadcc2b005324cbbd515fcd2d93668917fbd36d182684c271f8e184c94c899bccd9adec28e822f482177
+
+A = 5b5cd404465779d6c27b916243c4352078fd2a36127e031391e85fb6f2aec27176af9c0473434b4fa8521f479b3c8a1ea87ac2594cfed6a614fee936106eb3aee4cabb8cd6c1cf842c6191779e9065251bf33b631f65e57816e3b6bc016083225c44a11dfaaeaec8146c334ff3a97ced48a48ba804c372c2176f37bd6da0c54c7a5b419138d3ad882cfe2ce8643abd67414556c896418b155416844b8308e6138029e68a90
+B = -360166e3fe682f7f49f5a57c4afdfc50c1011d9c7d9e860e02c5f2a8ffc38c2533e7f1f830692a36a769cb0552c7b0bca2632d3999e95f8366ab7057f4c469c84072c5de67c3b72e8fc3dd5f32bd94933ca30287751db74fc558d2ef7e6efbcde9bf72bd125c86da989a3b7e4bc9cdcd8952ba1668324a8639cf018bd9a09a76c4871683b2fcba10ea40da132929aec0fddff0b27687919d5be2aafc519bb90e7dbe6221f8
+GCD = 25966d518128d11cda4f9cd2dc6558cb70f7a706fa26050932978341930191d8e9656fc4e629881820e124cd5a9c510a4ad61d8a212ec9bae6d98756596e52f66b2d927c787bbf280c27421c97355c458760e8
+
+A = -cd4bc6c3c13529268d34e6354fd4d5c56b46b8e0793c7bed82115d29fd4734fb3bb1ec7ffbfcbcca4047b13515de58b8f6933ff2a9f1b58923316caabaccb836fc4572fa34d727da6866539de71bea483b4f2a2380a5d8665423acc9e7bbc8aa7114a6a8a43dddb4cc0c61c2ab9834944c25e5ab0aa8dfdb6bc96d9dcadc9508747c331b70742cf78593e41e4db17b12140439a84ceb03784a824048a89536a1acf124af21
+B = 1a5050a75419d16a46d11d76b31a79c86a585c0cc2462022d32a6bfdfba2e8ed85228c6b77f7978d93d26ef360348c81da5a12f5b93eba3d51d2b7a36771985f6a962f2dcac00205de8c0015048d01be79c8cb9330de91bd014ec243e4dc97c934b392d0ccb3cd4fc82b364a0fbc1362637d2bdc7b6dced6f5e69aa2e4d0f0206de40f7983276c27db7684d3de9b974911068489e803b4ddab8831e6df8848abb2ea94001b7
+GCD = 1d33ff9865126df1c8e5235eab5b72ffc84d7edf36bb8becf5e1b10d58fcdc335353a22219d816e85041a492a4002cd9b7166a7f55a157b2cbd3d40d09b40d335bf5a3a2ffe85f2b02d1459e64c4146445e573
+
+A = 1712a552347c8e4ffe985b423d999a8981c376883a20a61050b377501ef9ce7ba01389cf77919e3c165f875d0317f350a26813febd1d9a74ed0fe2787b51e816e3ea052dec169f0fbd21d353a7948307389b8adefa4f1b7fa283b686a2cc61a02d4794908b221cb327028ea949aedebf8c7b89b821cea04e3ffc2d78f34046bd370e781327eef2e826c23f029552da9277dedde2f4da3480e1c796a162c9e9ab8470e0d960a
+B = -510f4ad313bfc9efeea3716dddc199bcee421420ecfa455d978cda66a574834d0e1f2b559c40815976c612d657ffebb27a3474424912d743f7821856ca2f3ec80985533f348cff3280a07f2ee13a203b8e1c0449dbc416e3b789e4cd29ba1b798264527c74774ded1e4fd4943f813901c3a7764e1f5d8ac78676987ddaaebc3966772f4c4b873d6b9ab2e2e8a8e5190eb87721f784b5d20c58a06eddcc40657abbff94d57d9
+GCD = 30754de8dcd11fee7f17326d3153ef80c9dfc58ef76cf8337ddf47048eab6732ddc9f1d9ff5bc8fc42736474834ff48027e0cb51dacbf8d6ae07725b021342868292f22ef4da35d4639c01217091e868ba915d
+
+A = -fd9caa8e52304ddf94c0c6291729a3d5e7e191c9b1ceae3aa6f2ae8017792c6a51a8520087fb8cc4d60ceeba2bea6d976fe95eb36386549816ff0a0ee90bfbf814bd9f2073df078222fc763bd073a0c98ad4b68cd47e71a580d6ed9ba77f2e98d76205ed196c68479c834cb5446878d8d5897607b17cabd090dfaa8e51b95de8c103b215e067599d334609ecee96a20031d426632cee68af43ecb37063c6d4e127b82f730e0
+B = 12caeb3bac156e415d7bad63a04659fe81040d1b40db05ddd0955f0880aca88b750d6e0308a2c2446fa314fc6007e5750e62ec6d9785d0685a480a1e3bf84eb0d376b4686b321f17268ef297cad1c5e347c9dbe477c9ed9c1b45c491f0611d60d1e659c746c3721cdfda8197fa1c417e372870d8d730537f3eb726f5717f61e79559cbf063b119e6420a4c9e605a892161681416633ce1888f63fb6e15cdbb3a6f541a6a08e0
+GCD = 35ea5c7f74acb11126241f157ab0c26f3e7739ed788e0f11fb949482c44872703591e3ab8567718c792c6dbcc88cd08baa179ab8df2252efa219df690de0b6762b53c3028b7f636d9f50fb4e910ea42c46ec860
+
+A = -20bf133d2f89848dd5d32d38869a02c36ebc2bbf2b686aa42a3ead56fe42e04ffaa5e446fca76c689af6cdcac055d021951c09e71d7e6ff91a08863c4cb0c0499d9ad39438e31735009ef0c94c8e58ca48b4b43ed65703e48a492d5b55f9218e04ed96635e6ffb7f00cd2a3fa1ea38be43b620fe1e12a53ccdded2378d00ed21d7c09e85eaedc199c16433a4de6bcc8e3e1d682e3aadd7cfdee5ff9f97b1a12b829fbc086a88
+B = -49f414cb511d5de559537903e32dc26330200ddbbd9937192f5a8741ff5a8c69114ee63d6240a6433d4fec6e55f075fac24683e47176b17ba31ae997caa3f8c154f38080019cad6ee00c768a65953bdc21b68c98f70d6d097bda7b0d16c1eeda8bd20342b5e5bd12504bae876b74bcb8b0c20c4d516ae6c756777c2b7086c94bff6f38a2e0b64c0e341a14e9ca703496fea9468d6e41f7df70e5f4afd0618e1f1271b11678b4
+GCD = 98c8629c61898cae20781d5c01f7fedf5cbfd10f80fe92f5a7fdd17c1856e0d17473791389f74b07da3c17241b12c1db5a556720ee65b9f1af89a5f1f5921376ad38ecdb6c748b16dca6079d2b652c81f8fc54
+
+A = 1549e7db262eb1036b5dc6af462186b037409e1c712d65e568ca8535ced8ad3a8dca8d28716d2706ac43c33a6f8b3982463199f56806dad1a4510e2ebd461e37fdda268f08dec39e95a89583fc4a6d6b4ae5a774c0586f5bd23203ce784533dd2b223ff02651a455eb2d7700f9e19bb98902eea5303bc2b5817d0954e7ffdc033cf1012cc3f55a8e55bd4f98c1ab7a9246d2df93ac07f76a73a09882ce791d7d0572438987e7d
+B = 155ae0e37ad2ea6125d69e4522aad289a3bc053427fc8beb903033071ba3dacc948a9a8bfff7d9cfdf305acb2ba4dfee543a3a4079b51707f27d5d72c7835cd8e2bc0638dae7eb613befff172ad77d38356f341c67bb88faedb20df5fb6b2376b2cb27246f36c76d8883224e5961d14f205be0f9c655545b408044ed2859a27d93f3e69f596e9abbf3c9bc90e61253d071c74c8ded5ca3fab79d64da119e551de0c918bc58b36
+GCD = 1a884db4cb40c045de5ef62e54956dfe783446ea789af2b3b6ce3f6a197396fc205888616ae914a42076be666c9778574f64c0e5518800ba72aab9683771b4fb9d080033d6d02b43931d7950f2eb651fffca95f
+
+A = -25fcc9d9907e1e47fad29e264691f4b621affe96b469c2edf1e0cff29e8f8a67c0766a73b728cbae4a3abc9533ab25e4311bbfe128209dbc4fe38022beeff6d36e782095d2a02380f9e1377ce4ec02c461e3e2e0951d320d7ab4ec9ea95f4fefe52c7a1d3f3a642b327e8cfca21c4947d9079c7774943eb747edebe0d990a3f137eef270e438420fc72441a2c1867d9c40464ab647d088c11af78af6d0e2095c302f9d40c3d0e
+B = 4df501302608822586ad0c5dab8297b6ef8986569e7810c00381422003ab17c2ab1cd878fd5d4e5d0df7e8de32b0300879e6d772cbf27f525091314a7801efb5585ccf5e1e5e84bc5b69b2c6a5706d10ff47df285ce3440cbecb565a65c003251788818557c35f21ec6e0bdb58a084717204e27d6b9fb56f5644edffe278ed63f73f6ea44d58b74ffce2b8367baf5116d572906c3bdc168dd8e3743e2a244cfd557a12c3d4e1e
+GCD = 4eeb4f4bf9f712cffad8115b4d63984095221e83aa0615cc0d9497b0614587fd294dda9f87e3e9e8edcb0613a7b515eb4de20f87eca081e5df3b1d48e6ab66199336f95ebecc765a4e16c878b171b5cdb0761e2
+
+A = -17e20b7adf1f412b15ab588b58e91083eacbebdb148ebbc93a9cb4b8bf1d2d974a24aa0c17b496fa715537a802421b95dcbe6ff7788696565b0b1b47029447837738f895d0e9a35dd52a10b0cfcec5c79ad0e3369e23a42dbc36c559d9aae58cb59261b7185f087768ac004b6d3d2ca07151fee8d1224846c0ad923b3ee8773d8d9fc31836b46282f10b56d5ff1908ca41f30d1858434ded8c303701f52cc41ae13c87414b0c85
+B = 1c680d414e1b343a829fdbd1c6daf747a1d953bfe9fb0498ef09a9bf3b6d5f5b6b5582e0ee00b9591ea5122d8e798d41a7255a6749235c6e9970c05050a5ce2cbf06e131f9b0693afaef3148644ad6a1399c7b99700385b1f65ba78a557b465de68df50de0325dbd483940cbfb8ffaaa0c7c58a925a60ba462e9a79b2032fc77de45616d979055ad621a1b9efdf18c87857b2829448163111f0120f186962e2467d74334f6c565
+GCD = 790f0cf744978e067668f4da59b3b90291eb5c81bd3feb77d50e2c57904b6f18850ab1e98db71296947f6274075aec399ea9977027d64f8dea7a07cc4cdbc2257e0097edc6cea6115f5b99ae8596d226c3288cd
+
+A = 2e19ff84a9a9b888081ca210eae3e3c0a6a31bd8d540b40dece7fcff0b94950499861b56eb5839aea6b236e8417bf7a36535226ea68089da5fc96b308b2200508b33402e2798b4a2d73e28cc3e2cb522f86003507037d6afc33b532d3d977860db87b493ca0ddc8a5eb0304d0a480960a276f31e72c391bd186757f96b0092bb72e36e29eeac6c786b68a50288bc5b8e8e704cf2ee270316551474447d3e6538ee0cc12dfdedb8
+B = -151ca7bff32d60f1172a9da0927bf5bb0f720e9518762ffa147d5a1b20496961a00c65987866b83837901cb16415c540ab431e6608449bcbc8f92589f4c54c046550b7bac1cbfc76fa2357d4a5e223180dc2c6b3f1cbf1766ff5fce51af2bad4c71f3fc10c16d2e56eddd60b94cde93f31af8e01ec29b8d67700646666e0ae906617c28a4e5369edfc9682e34e1b0c5503ebc5cbb1be9a5643794b0a806a5e84ec24e2376182f8
+GCD = 84ecfb4f8437dd4247e24392b789004752212d5d115708bd95d9a03fb20bc0b3e489b52827b7febf2b8c7424c53d00d5082f343a0e99af320c6a47b54494903dce809077166464da5accdae689c4d1b34cbca88
+
+A = 15512745fbd011f138f17318cd664ed98db7f4a3a2c3be33a213d04120a33ab4458e37eb9917e61f288197ef540d67467a09e932744709d9cff9c8f7e2ae629b9ae2ad4ce997b52bb1c7a3b963775ce6599cce0545c9a37e73d5bdb8b5201b8e3027bba7f0cee33a090e02b576b659356b00cfccfc77ec77f952cf511e611be787e0e1b06bbe85ab951056c41ab4ec001a212b80af2c1bf25e38ad570bcf6ad87191e6ddf7b39a7
+B = -bc9646ad273a8b4975c627d9d7860ff12e3338d9939b33f654362e25581d615239dc1fedf22f12d3bce02dbc7892f4a7e3fe3fa65e254e674db130734759b79afb909cff6a65acd2b5808facc3c50af77ec9ebb6499868cf537f87a8ccbea9eea6f7c3686883803687295c7b077f89d51997202b57ee7560f55eeb75418af6893d2b3ff52ea68dd2081728499db3d08f09fd03d00fb562e73f5ed4c2d7e377499ae3c342c5f40
+GCD = 196a58d478b0c26a8f91763283c06f47b5cb1922eb4461b12fed0602222d3ed64c106ae4fd79da90dc4a85fbaf187885e598a7e203fe751a81f83f492849e1220ec5dee8971cc6431c5234405a9355fbc5e08419
+
+A = 38441533567e323c3e81094a91e486f669e00ebe71c1450216cee42a8111049bde1702a2e9cd4e5f8f8873ed693c907fc5f8275f3d7c5b62353c7efb1708d6edc97ed10ce3fafc08e40fe210d5afe4188a55636d9a07ef06fcbe1928492a72e6962b9cdd539ff3c9622b9d0101a8659181bd5c8b9544c3e057c22d0500b052db92ad8a1615aec3f11e2bf76cde79c5213d093368aa55d8cf069fc6d04d73e95268302958197c7c8
+B = 542710a700b1378f123a45eab1781d51aaedcabb1b87a117c993f95ea69a811d10736ed6c8d0c29826a88a7a34bda1d04b52e997c0fe1d3d7cf596758365a7e91643f9853a32b369e89d107c7ee9f0ac65540633ec717ffa4a631b74565d42a8e8ea99f5eaef60825f510d753a5a28833f5a4fdefdd2e91c05542a03e8246db8e49b90cf09be4c2f76fdd26797923a361250974987c2d991adf90f148c65b9769d282e88a1f5bc
+GCD = 6cd62d01a949b45fff6d5a973fd49716e5d123c137db5113492709f862d31085b4b7a80d8ca5b8a2bbf453a748191567917fae8c9d2ac8b2b5832736aa116bf80bb2dd1e1ea663aca3c759027539f91e6a9c23e4
+
+A = fde1cf508ddb315a775ec5f312160f7e0cdb6007e27ac54f3f04e6fe60a06c266b78d9497a0a5ee84f4ec2068a8abb3982ff6f87554fb72ed8465c7e09045b330b55609ea4b5419eb0b4effb01395647d1acfcfed0c7d06016db94305bb58a6a8d0be078c2a7787841d17ee4aa3f9b4fba057c61b47072cbb5c0b570d7517ad40cb0acb97646b247beafd0c42f3861749cf68b81ec42d1889c7b54ad70fe51c6270ef08d1b5b7e9
+B = 12c68fc67295bd9fa9bc65ddc2aeb6483d67494c0df292cde481dc3423126434b7725eed546d3f920035ba8cbf7842523b7524cd1df83aeed7030fe02aeeab9636ab8229153446c6d38d368c76a65afd9fc8771667ba4ea595bf1b3391540322e07a11a31923ca4629c9b77ee15ffc3edbd546598298f4fd12a5e17539da50f5af66b3fc75effbd4c9f05dd2132e8dced427e28a72c660a4badfa356d4df29ff5e813d0084016d2b
+GCD = 193801a62dc53ff7f3013662412ccb3b64527d6e971a47ec0e3bfd8f8908bb88669c3445afba870847dacd52be8eecbae1b376c2f49700ea303788fbffbfc097bde53992cf9c91479180e44d19550cb2d3454d3eb
+
+A = -132472a5dc1a3cbf5afd3f729650983622784cee23d47209fcc04ca0eb3a4ca0e8894fa1bc64c3ce72066b757250babadd215afe688f5a0878d864358eb02d512a561b4f79a4234afa1ebbb2355b38ce8e0d7051f446017ac8d876dd8fd5de28e361ff2feb47335305cddaa0945c1ce27c2d6be3991332efea77dc5ac18746f7e0a5da389b1a60cd9609a84046239a4535b12a6831f8ed9d0f6d1cf621d5de18181fd84ca4e8d3da
+B = -299b32e1415d646dfc536f6de908f937d9db2e95381da51564a328e10bf65c9cd7f553a9b9adbbe8e9c8d30a60cd68d18feedbb070b6d281c8209b8e2325bac5cc1788a64762d0e6ed9b9341820be7d7059e1613c03a1e69dffbd3e18206b5220f31c49191693b94f7dac8718f6841f10f1285e8bf9fe257c2e25555016e73a81174ae65010f69a4ec135ad94c2ae04c977c215dabba0b28ec1eeb5007c46c9a8e6c9fe203efb604
+GCD = 3ee96bc4062f032952491e7d1ea14e2d692b7f801481e01029369887f34b967f4366d2b3f61f9189caa332f39bb95269ab5956d5cba7fc4cd64d1408d1f1c21fa13f0d6dda63e703d4ab638689219d3275018ca4a
+
+A = 35e70ae7a1fce34516ffa77495a40604d70c7099fc4eb2c0beac82bd72bfd0f51a030caf0e0b3cafafb4420c7dbbf02309a562763b4961398936c26c049fb23302b7e21a1f6cf3c47254d7103f7f3d44137894fb659c3591578058353d6ab5f68690eee0f37fc19b68c4a49c9e915057816a54e2c792e5e1f988b3b7e1e57d165c5de60a1f29e88cda53c0907c19c77f4a6321ec5380c51e8bdf9ebe4a12c19fdd6a26ea8bc6cefa
+B = 1a418f34a6432b7c7499a21215585d3f151db08ed3ace5b9f82dbc4aa7d012da7583c5ff5b7e4e52476bb1418520449fcaa6686b4066dee72cfd6e153c77ecbf25216cb0a5d5183390d70feb41a631892a23981e7da31a3d2f2985014535f07905210098df5a103b46cdbd0deec0e7e6d837630036ed001123c7b538f382e51157f10c2f2d578b54d56d9d224f0b1504487617a5087e7441fc790809a4756014994e40f21db272958
+GCD = 1d78490e789865026c162f108b6bb5c9dc924520ef2a8af2d5e308cacb84fd2b05c0db566b3445101b524f77ea3ee49ffe55691e987256b45e0b9bdc87ec652c2069ae1c9a00ed18307d1044228c43d30570d6626
+
+A = 4ba5d7dfb78447e62bcc2c91deb7ab34486ae55860417d9eb1db637a1eb1bf8926755d301c3e309516c200be8a4e0c6c1854d00cf9c65b8c69cc01ae93574f7b8c69194c7dc053209460d2ae28482872bd282b0136441d3b4fc3bec567fa8bfb38c78b00754eb4485a4d2d59b9ea821157055158edf6d3ee138d5b3674cccccf5be8226b6204598b440bf299502c0ca91b23597eb51178a23b1117700f06fa572ba6fd8e48debaaf8
+B = 413207c997776cb0da827cfebca52c65f5fd87305b3de70ee614240a65c6aceaf997d55d2734531f3c8b0ad11fc4f4cb0affd1ac9f3320e439e9470ca09e8cba5fb97255c5320075a146bfddb44d9153ae18337bb65800b9d2a9cbcbc88c3a1f412eafe2f1de5fcd3f56a90d61fcb4de2ee0ecd9f5cd5619caa8dff3688c557ae72ba8cb94a79970df9c2e9f8bf16c369cc0afe35dadcb00ccf9bfe544d5ee1233a12ec248b84e84
+GCD = 56e620e8c6282ea69fa2c6e459463605eda72fafbb8b27888776ac8e3d2d861339ca24d56aeae3d227549293a6a988235605b89f8bd5a28df37dae254addcf3b346e5e39bf923469824afad5ed9cb50e6da196d5c
+
+A = 62c6a8078685566f99416b21862d67f519d90f3b58587f34abc40c66ec31ff97dff9e28727e555cd28e534ccc8c54aee33332ac827a8a72c69c796db8182792ab3a2cb2876991f0672e8026ea0ab9f42eb5b011d2ee79eccbc6463ca87cbb6633a081a3dca5c66d3a6c6f6eaf2b09aeb7343251db226e464310a1c6f8d46ff0decb396b3d364e64d3b909473d03ca2a51dcc30ea0e0c24a8ebeaa4862def92fb3a8f97401c88d6ef6
+B = 4dd40db96fc6d596467d5dcbc918c28170d1b60ee8882ef747371be72771d1d2dbc6fed637ade6ed3b744580ff1eb936050599c4277551af94bbd7c3fd2b9499e5c65a40eba3791fb169a32e04e1dc121da3a0bf7f242145780926590af4adfef015d1c947af1747fb31de5f34a823aa326cea2f85e64072352ea4f87f7b4104aa2e71efbb57e3e7836a6ff07cc30007ff931e9c73c12f4ca4c3403d964eda9d6b13cd644e977546b
+GCD = 765ea443ee10c0176186891c78d9987965dfa0d1157b5274005d38d00d06f6e1f1cb2b82011ec12adbea84313161dfcc9a84472f006d07fc034fa029ccb9ec22bb84da383d7c6aeb8954305191f6266d7f564d31d
+
+A = 7261adb430d2276980682239cc683be8abca470ec39f450d1e7ec08eb9f16dd0217e35c4ffdb86df642d42312a57ba0b8e4566d16edda08dd7a360e57ce56d8aa5ab3d85b92fcd69907cf200885d9da69390a45050d7a81110f02b1eb4f55481145b50ecbe65f6580fdca674cfb9b4bc98dd947060636b6e7aa164f4330bcbcc90ee538e4e79ad947db0562ca173cfa8fed91d9810d7275b7555450f8ce12011325f9b1c80c550d3e
+B = -3a43e6bffce626583e2f085621d733f37181af78964f314145855f1e4e27b798f2f0917d032c0a597ff10ddf88c2791b773c6d71e203d1e2dbfff279c836fcdc66a04c8ef8bfc6f1c97c966862427649f81f39a443b22764d92e048eca7d5a51e7b65d43d71f85dcdc11c33df524a08049b273c4ef22f9c8b2d051bdb6c81a4cf11d16d51eeb65da98a67b691e04cbe58e0e0a626bd2df2352e95023ee4983ad3924895850fdc9ae9c
+GCD = 1a0ba7d8776db0311d7dfbe98b7f23500737ff2dcfa0a8acf3f9865dc60b784c32535fa94a82e1606a85e030a85f9c533a7830bfa28c06cfa1a8b0ceefb0e5667e8b1dc76044730c67ecf8c1fa187d1fc834ea4416
+
+A = 13ed6d7e4fbaaecb55b4ff46ded919dbe0f2c7e56ce3c4e1af4cf69c2bc72203d53d3d5c69c86a657ac7588ea974d7b9e9aabaa4adb2283b516b7ed6e085eb252dfaba3e2c00bbc9f76d8f13c0e9632c3d3c36c2f54d81ffc51468b959afc879c8a508068ef3d0ca62cf1cddc2dda21db307ce61bf078ecf7a10221ec3b40bd844865e6661cf2dce441d3919fe754d541cf125360ffbe6e318737b71276c3dbaffa0b14a29726a646c6
+B = -1ed4b89fdd2fb106a910583fa7dad5600717ce9ecabbfcbe39852fc080e333adc207a76d86218991af8e30e8c2e2bb66a13818c89a011ce1d0527b97c0a9bee9f8e8d075f0efdf3f89f75357800af625825144a3f38ef557d859d8db501a0c02a20c7d66f2d9e34568dce38697aaf31acde81cff478a5147172a5c05da104b3561f72de906d3559bcdf274a9070a780b51ab6c1bddeb86ed85cadbc1594d98cea4fecbcc3bc39830f28
+GCD = 3e7a282dc36cc24335061d1fc8590bc0d3962340d963e483f0adeb28cebe9471db408cd7cf4548a18f60a7a888e62b25736b8dbbb9b54faaa492b434487717fff68fae0a26749a2e0eee233149d5b7426797e73826
+
+A = 5e32469ef3b5820216d038f09aa952118d19ccaebaac236cb258ec5dc207ad14c3d2ce5c7d932a0a0a4d23c75cfe16694d31e0442fb2c6921b7e2270cb7343afa6df33f1a2105a0a5c14dd5bf4b8b6078b638cc868039c09df400f758f83e92bd7178796471d997b1ed05bf555041834f96f630c19038847ac7a9e485c10f220d8218909bf958cadd3e70101a1fc4e3602f10d8efb047b8fd5ca4be4f74806e9ad4e4425b0c4d3d594c
+B = 2477e1ee4ff956827cd95304d8af3868908408139d2d22a971cc0f57335880da2ebc64404ed11a4430c03bba2df91e29cf03e3e1aa8bdc4938971d5503195e8cd18f42bb138d69ba17bd568741e13c3055ac0aa39bd6cc0bf8e726a0cb4dfd9678f598f95a15d3a3489e920ed7591df8857d316b74a2389da55fae8bfd13e05ada122e87e7cb6259fd5c74132f8b7bba5120853220cd7a72d3be6428fd9086f3385e6fa3a04ca5ad5c4
+GCD = 65a9c9d501397d080210b1eec9406e94c3be8380f53c94500e3601576e469e9aa5d04109e30435c693bf0784e4713a4338f6fd6038e8eddafdc397f9982155bde3ce240bb844d538110f3e8c08bbf56a033a84738c
+
+A = -2fdcaacd3ee0ed9032986deb0477b0b3ebb828d84ac4169c775d03b349c56bd9b8f69e442b85b1d339b62329cc129986f5feacd5ff2d844ac13270fdeb5a2d2b0bdc4906d2fa4f9c6ad929eec769c7c3e64a190cfd134922ab518fff3ba95d74f7b2bb78bedf0d6bd087219b4c87f8d7a24a3138557463a7501cbf5f89b24c254ec021a8143b32d90d15718f0c5b92b905847afd78adf8f54cba00b8328d5e2a929bd6f2d63b9c4dc70
+B = 1efe80568714d3521c9cdaf6bc2299af0ffda74916c4d7be1122924022c0ab8d099bdf52a712369356854aee634674876ae8176afb3aa02061c705ef8ca25ac7cf51ae01318437808f995da5df480def3685d5a59d222c316e23ea71bdce61e39c475aff1411223aa56668db2e55917b3251a24ed12b9f7d06c4028800f372213dbec3af023b4b9e4cab2fe2d92e5938f3212b22bbc3e3580170c01131d7560e673284733de8eb463ac
+GCD = a26b42b0d92547b64c767322c057b9f652c5a912696015dfd74215a7630f15b7a6b10b1661ec955b4ce28a1f60696d0d168399fc3255460e9610faf09771b14e8c1528ffc309ea53f75299d1e8cb649dc7a42def44
+
+A = -5842be67889bce1fb7d42b76bc2bbe12fef44783beca88448b188baa4e8c5d156c4bae8bf5d4b934c92ccbe95f5af56f01882f5c0dca424684031624284f8e28de29db3e66631d926a43b9b762890daba5307de86871579d17fc86bcb1f94090c8eef033d9b0b140d0957bd542cb0a0f2f6d231a0e464a4b1d6dc0de77e7e8b7c9ae79d5790a011ea64566013210fb5f9d2c2298985b66d84b5a910e1f42cc4d979474d81803aef5710a
+B = 35835c55f0ab4e9ebb1494b34155b75abd36b627e921887a6a45d4d0b1d48e994fa4818bb9b1354e1c4a906dcbd7ff0d76b35a2cef15182a88e69f1490d530bf00446bf6c380a1535bce96aa61513a9f00d3c4c9426c69e9e3baca5904f2aba102fa72b8e3e8d4caea9ce98d7afcb5298e74bd0dd7e43f8901bb28279c454b27f8ab0c91859dc5f813bbf3374b7def2b4d66313f8a1d2bf6f854b3eb56a542b811a150d4a562de412fc3
+GCD = ba8c6a5f5eb53be4bd364e25e51f4737d19eec142fb2c166b0e4fdb4ec39c536f64b5efd50fe178f00e074f7f322a5008f47028330a3142d889e8527718b95f53c60a1e164573cbb932242084b956b21b4c33a0077
+
+A = -1476891f3236397c1ffcc2bc68ae74588cd68b28bfce6f166fbbdcdfe32a380733198c60cf88bb4c5bd6a1e3ded4c8360c6ac992bf6441c097eb96c0cb73161cc10466f56d52b1bc5d59a5a21dc19380141344c11426ebef7abf8515e362eacc0d0de342a379fde5b6ba69a1165f1e90c89f859cc25c17d3fec12463c68f23be2d4adab0ced891e00a3ca8c55c73cf0edf1477f7a7721b93aaf017be06a4efab66e37c1482f972d597031
+B = aaf15e5e461b0d5d6f633c887a130a20e896ff369a270e0bfa19bc870da38b267bfbb108e9d2a96cb9ff568987030ef6655d4025539e089d5ba03466c45fd1dd470a86576e91dfd0fb51dc32ee49503adfc77e7daf5b043ad18acaecac3913e6306569b936b624ebafee95eb0c5ef3434d761af8aeeacaa7aeb5b122b440a345edc3dfb28cc3457540716e2cce85114b11c31a278b6183174dafe2d8d42307cc02a913e0681ea413fb1d
+GCD = 16833db0ec92756058522c045d4f2a329da0e550e8e1561a616930d423b40a6349acdaf9039252675e468192557ce5a92cf1f8b86434e7ae6532cd77e2d096d778da6d5af877bd02e5ec8ae44baa81d19722847a993
+
+A = -4b34aa6c23f237858074feb32e348481e84337050d59f293b215fb5b124ed42c42aaffee56eb25c3277f42ae430fc4167258ce10365797712b99aa54a3fd4c33cb64eee458d1e03f52ad95a444091b69b6d0e4ffe455ed28f5d47ca0cdc874908aa48702b992c1285b03f7cb496a61568805db6acfc63aca1f7dfcc9036dfc4a96b90a83a95749630c86006e2d9b839da42da040360a86834a6e2decf20dac1a5ecf5e431d227b3e16ef4
+B = 38d5891e540ec23c8ecd5ed9894f1e7fbed95d0efc4f6f19b9fa688f217162b4d2a242f88f85cabbc94fd20418578f0a0b56b89b68a817223304e42171ca89510c3c97c9b0a1245a5abec9164c3527d26d4293d9fc12502860f49fd50e4a9d2de261ed092b4b64a79cd9531912ae9ad00da267734c86bdf5edf14e9deccfe8d25a70aa9ae6471bd2d76415898c9c33c1107959bbe86139cac02bfca88aaa65cc792d5a3c53c3f8a3eae5e
+GCD = 64f2dbfd8186bbb73044c2bd67df024a0a39968d825e1cbd69778bd177d323e046eab2aaa28671cb5a17f58bd0ba42129ada2f71767958e13f11558c4c2d995107729ac18efb9ba8db0b1faf7bfbdb24ace3e391d0e
+
+A = df51506ac722b32ceccc6f9043a43f01f807387d6e7312a5a077d59bf06c79dfea0f999ebec31d2944f352052b1453f768a710e8eda2eab515811601bc9e0e1df07268fa0dec7d080a1e4b43dee39b4f24f9bb408b6a78edc80a4a5bc55345c1cc8cf425662c259cc7998a0465163044e238559139921f9258a9296cccbf8a48acd8251cb5b1cdd5be58278d13cb91152839b559ff3e11d58f88ac6f1de49c3c499ba90575b100274c166
+B = 15989a29121ce8dee3416cd6a4e687298f7cc8b3028c4f7b9ae6309359ac20fb3b9332375fa5e2c7bf3c83832ceed535ee976ba9299a7d5fa76a6cd642f30060c60f545674a1cb481eda0db82a9fe9e9af21ef376f135c7d7a7d0c8e7a3240fe1c1b68051ca5e9e2af2138f806203fbcff1c86d8b2c4e93f1a698ee23b04d8de4ce592fe3ee2566ea9251aebc09841b2f09919aeb66a5b9e14853627999b1088a0ac0b267b212c99cfc9cb
+GCD = 5a9021a22f75869728307397d0d910f90fd2c70cb770276375393e4d3ee350ceda4e2dd0a536f1429484d56e1ec976779f59d3ce9216d8d293c495601b37ffc3b27b44f0a11fe53d67f3d6c0412b6ab8a7d7970479d
+
+A = 54ca782dbb149cf235a72d5ad953629638d50028fdf95f39a94e6294fc75e35a067b490165a6000aa25db6ae7f2ff4cf9ce2db3be65ab7cd7033bd2c7810a7dd7103984f4d3a7298b072e14b6f78d31675e7e71efae369685ed74fc14eefcbac9fe9273c3c8a1a79ca7faf0eaaa383438df0be4bb96172451a07e4e7b73ffce7b9f6c54ccc4addde5bcfbcfef9f482beec3da6866db40edabdef3d22db8e0c69a8b6c7402e895e336e4d30
+B = 631cf572bcd91f01b112fd347ecb9ab43b1600506c7311d1335119eb7b9196347bf298c62e5ebab1c20b8cb24dcc135a24686e0342418444c5d7d490f1606c6d2b04f8f51f70b8f24849188995c36783487152be62e5353af774bdbccf9d4d59a0eeae78fb957cf2f1ba2753f75721e3f133006c779359b5e09e9aa6113a13d15550deff0e336a6c52c92200fe9f3a464a71e3916627b66efd74eeb0aa7e4557efb1700a87e0287f69bb08
+GCD = d705cd8fc62e0eb5777b81893737de088f1b9509e0d069593cdc6f8610f117f99c40b1f2427f23691b538977708d64deb7aadba10d97bb4bd8c09d40bb416e7fa206673f15bbc1be779ab35372d26ac07bc2ccc55e8
+
+A = -90eefd3f9978e7026cd564fceffced2455b2c42e61925040c7a664e5549c748959bcecb428df43909df652116373ae52c56d7a10c578ff827f262e5aa3d7777ea80e1e8aa7ba650f819e133a2d1a3a776a094110ce18797fdd4513b068d1028e2089bcef766692a43419e3468d8e9a36f7f54c9d3a4f9bf1d782d77481f2ecf56eeb573f2022c2c094443d84006f1185986f8e4194521efc02307db9b2f3e1b2e0ab288cec3b051132577c
+B = -b5a7f20766a8bb9e30d67814685c0ac3a3ff34bbdb42215df89b039683c322ecb6b15799a89b065366e6b458a87494aad80394b5f8aef440261ba7e52dcb127289d49cf2fb9e945faa6dd7e0d8b846573ca6063b040fe5a932128daba61a5745a6f71dc8b6d2470fe90f10eb2e1b09042f8a0df5213f286e6637a0a6283dd57b5a0c1d1e7d83bc50ebac864dd974e0fa2a215953fb92565fc13874782f858e6151f15900008f2fba6180e8
+GCD = 129103ab082602d3202c1a50cd92145329f7d6c09f7eabaee0ef9e08c63bd6459c99e1358467cfba979c3b2d6e6d3c5eec36fd079430f84f2504756b77a58e2450ca0404647ac7f35f54fd8cdbdcd0c03a38400832a4
+
+A = -3eb0797b60adcb6e3d06ab1349c9581bc902d88121d35c4bc239317809c2322cdfa0b48769163e1048948e91b02e2ca69e926ff8ecf6a9c3ffbdd5d8d7df8774de6cdc2e50133c6bbb570e2a229f70e3e8e66cb4aa2c4b5b0fa905e7c6044dfb791d511e5497cd69d0f4628df2d0825208111b5214e3e39cc24edf217e9fad07006c0f013360d3857141d51bd54c4ed1b23c1f3de576d4b46aa990530d9e5b9f8aeb556f54eda909a7b07a0
+B = -3123a6032a395a916463928c6a7f40d6c025dafe61c9477772d3925b68c06eaf6c1a31ee9ae6ffe24799bb98aabda4b6a4a6616f97ef82d703d02dc70b0bafaeab8d171f679e465541aba13125c26ec3f802ed981f40d8c49d507df2e5b84b9856c4c6e803908ae8b564a757f288fe302f4b9180bb681011ed206c237f630ba16ba38da9482975f579f180f3355f7a94b21c66358e33b90b8aa1f53ed5b0b574881a53cc9ffafa69072d7be
+GCD = 342bdea8d1318d08e1f1bf411de00fc3ca4372d92ee3c3fb39e590e3846d6e52f2499e06177868e4f74c3642392ee63cb5d03c399379efc2d14a75a5793df073d71f38c6bcaa056bc7c69f4c1de86caf803ebf992c5a
+
+A = 45814cbd75809f9295b893581d7be1d6c393752e584c296bd9998c15c494522262c61a8877f39c0828bbedd02531617a1cc3994a276a5252ab9ec34308158f61725b850405c95a427171a0210504e0980fea788adcd263e3721c5bcef96fb5c93e6af7a9452e88524dcbe5c40f2d455f83f8e900825efed45c731e791f9ec4be612c63af7da4b7fa4dd7fc1f356fa286b71eb09c7deebc7de6dde963d2841ce137d0500e3f9543d1774f72c
+B = 127ba47156cead29569dfd8f07af990639a55f67808928b8273dcdfbb366ba298c0742456c2741a5af6724449755b009c4b4fa67dcbd310d50c41ad21d9f2613489c4ab76f6368dfbea76306283edda3383698d6e578a0bd8e477f4fffc8f2aa9f9d63f51c06f3cc448dbde50d9b08e43caa23c9002c29a44a30428034799aa226cd427d282181cedbdd829c3a20740780f682bdff71abbe367abba8eaf6b1542c7aa32f473eda7c8493ecf2
+GCD = a4e05cdc8288383f74a35e7300488fbbdb5e7ef5188067bbae47a92def0549fdf1adad1c425fb4ad4dee817f7673b9733b6c9f9d1f1bf2ba6144fb5722d276e29a13a4073c2c77527cab70982d0a06135b1c7d24baca
+
+A = -5c21735fba18eb16703fb4c9385fc5d9bbb68700685a4bd84048be92b330fbf5f59133bfa60a6a28974d85593f674f6c4760e49b3c4e9f930fb18a232b2c7450633c78df5797151df6e75021966c0ff3285460619e056c2b794be9c9051db5533c797a53453d759b89ba8468c5f3ea6cb73da398637b36727fefde474ea97b621589f8b27c6c2b1a3cd94d32b20c2beb4772ead066125469a21bd12c4073cd4a52ecd53226a41f01e6a8fd6
+B = 4cd41cb97102170a8648c96e2635f879cf30ff8af6d2f5933f32eec937ec6b65b5ca0c7bddcfe5b54d9a1a37a114fbb4e3371c8b9eed1d348b48447e08df0d26013fc27a42b69251f0131e9fa2b4baace7de87b18d0e1f3f9df257dfcfb6a942f94408fa325920af7c6512eec710303c3f1758a2673e4191066bce31ebbba9bffa4add667ab959bd32144de805436bffaac1dc6d2a710d93fcfaf071fecde34139b9a5c1bb5d49204b09d83a
+GCD = eec7c90563e8f623b19c2042902b533ab865096fc43abdfc93249badfcb52c43114f8b9738e0eea74d03ebaaaee8f2100445b3522390971b7bfe706708056afebac0752c31910d43023772ec42b025f3e47434cea472
+
+A = d9f077b46fa50251d9f104212bc92cf0e915d90bf24caa755f1453053607dc01fcb874fc12f2f53969eee09716563ab98c354f6f8cfa942db8c7bfa8e9ab05a1ee3e9ffd1a024f3070c6b71a9a9efbdf081e8a005480211e5563bf55f4ef7e8d387449448ee9ff65639d6ef1a9325f51e81eb15e81eec0e7ee34d76bbf53915a46764b9d80b1e1211610902991e56797d3a387a0b87e51d5904880a3ad924e32db134197364829be262a65ea
+B = 14077e2c21c4de0aff41a68c2fe31a5312c59549b8ba29145ecce53734f55d7f858bb39a75c59574134ecb4199a81158155165f0eed2383fd26410b9140adca64e13cec7518e0db3bfbe1d51714e58ac245e0f50d0a1e87eaed5ee01dda2b4d2a8c8e37f58e3a7ddde2ce6348413d67b40ccf364a9b79e4ac3391b60d1ce31a048706477c21d34d802919fa93608aeb7e696aaa4a30063ed858d10d9099737ca6d2b06bbd729e16f9bfd92f32
+GCD = 1a1deec0618b775095611d906b9bacfae3ca7b218ecc3c16d1d32b52a15d420278b0e975d8b517399169ac041fa07173f8df266038b31b0a49c5ebd9f7e8baf238d8fd8f82854c7d4257bb8ebe72b8828664195e8504e
+
+A = -12cf988bb4fd24c883dbb33a3b3fb8ce19a9224299738d3b270147dedddf45f3a377fa491ecb1fd7ad9f9561d0b074385265c8cd5e3715066b46e33433dfc806e5110d49a8586990ede450a89500b063325566bf53a69a36ef945031f62baa28938820debac55b1d6fbbe41c13e7048536d1340643058639bec3f76d3841a788f0b0d6dd44a30f3146e794b1cd33bf32a4c4b858bcc6e2e2755f0d5957bfb9d97212f8781eec339ebf4c683d7
+B = 67cc4e45a58376bb9e4a1ea167a5c1ebe360b52734d9d1378376386af1d0eb49f3dbe7773dd6d4d960ad3f72f7b5a65e0016f6a7dbc539db504093a4a91a3a12d9739aefaa428a731a7fc85076c577fa40f46f6553f0c34e29d9b1e8f175c75090a94c6893684cbc13f8b9630d4a4da114e501072560090fd6510fd8c2c5efb977440bc57afbc628e31587d2527a4cd651d33b8e12f09623f00e7cab719dcea62a76fa2f953126ec0dddd6d26
+GCD = 3c443858e9810b4b144aa123d5b1393e524114342251061d0cc27bce4358b67ce0b88b5ab7c170c09aa5b2b85617caceb814482d90bc605fe9c44f3d5f656e280ae440f9bbc9d0a0b79e8d81965b8e98f579e62d92cab
+
+A = -fc6b7a0be5a94755e9ea7bcffdda73effd9fabbfad9f8025cbacd7ab20985e32df1279ae5306ba4ee8cf31556d1191fad3fa8958062646b3823be82c58dc1213d1e58ab7f72723c22e09cf751616081e97af353590d51ccdee98103ca2eeba50385aa1caa9e2bbed6614516d90ce3cc9bd0ea62280c2e491e612737e1f82ba660538e32e6fbeb06fbed413ca7046aa929464639cf923fac22c610537f1681a322939542a75db3717be2777150
+B = f7c3329cda5c4ff7dcdc1a482b64ebf214b83ea0f99f85ccb1803fc2f2942a93751a26073c7b082a517bf6147a1e557be1ef09872f2c7cc2fc365fbaa4695d876da5bc78ee6c1fdd5d235d8b48d91752f376b1c979958a8badd1a5639c417cbe6ad0315dd201cb06d885fd44021600648524c6e36f501fac9991cc30c9d49df8552af7e8789aa92f4f46bbb15a6bc9be42f1c09e61387595efd1de3cd51b0672d4a5bbf5102515a210b2262ad
+GCD = 7b47800e39a08f0e7c51377eaca79ed2893d43ea440b9346d1d7f2359cfdb11f2800540e87747b006fcd55891743c76c962dad774d1c235252dbbfee423885cedc4015ceee1955f9b0f9a4f65e87937cbba032d52ca0f
+
+A = -517fcbf7ddf911bdc76a2c2d9aa9706e177f73026a869b7e076cdac4620f42dfc24c3a82ca58f968275374bcaeace8fcaad9f51f07b9c1af0de5e47b344820ebe279736cf39a5f4ee87d3ed4e4fbc4d695272a5ca8a5e0138b5aaec988e0ff84e33a2403248113c9afee75f053401bd04365c3aa4e0d8698ebed44b3657d26c6cc9b157f91a28923977e756f6a6755f722ca89f41f3f7d4659b8e20996cbb84cf3f4775310f255648a5af94e8a
+B = 2d9c3ac886c2b29814fb18346d461bad4172551b116f865f79f36f0045efd75bc8137845ac949c05c68f42ac9c9108c84a41b7005e065fda1fe5871fd2f24407d438b761e58c38fd3c68249f383ced8801a64161b609a57090ea15171824a69a2df751236e44bab6e9e51f3db0c01e658d0c1a7750c88b4ef6c563575a197deabb77f362ea53bf3693e6987ede05ef1be11368554d57a773aa85fe983c05f0e691819d5b218f5f82f1e88c9d3a
+GCD = 20d987638d520f54d9913104ef61bdb757b963c876a33ca10a13cc1c6f52771c8b45c201821c23843496b9f0138b9142d28676ecba7781ad5d1bdc3c80590ba5884db2ae80de69bf0c8d40a47a08805cbc4fb6e010fd06
+
+A = f151babed8492ea7e232ccf8c29d87fe30244af1efb4e3c696fa942425bac19e9ce6cae5a9a6ad774d56ed57113d459b7b5bad715a8901b92868acc4bd5e062ed60e503f510bd41e095495b31d2cab9a43287b97165bed0f7d0f6e33e0a1f36cb0846f383d7bbb1f9cfdee7f2bc4588a8b938f4a75c973689deaea4c4a131c8d83fd168e54b46d9633fb619491ba4794cb6e550646097dae9fac47e8241b87238f0ba69151d50c92e75c4e55b6
+B = -e8c75dda971d38b171c1dc2d06ef786a768ce7398f48bbf29761d6d666e9bfcd101b2a75f5bc191866ea3959de2cb897ae099c9a85256d5f033fd9c577318c3149678c7efa84e667c96f03bc5e95bfbba97d039bb78a32cafa7da697171dd1c03c1a1a616d3e058ca3d408a4bdc33a577fc9fede6f2454bedbe96ca9201868784d7ca5de50283078aba9f583b7c8e2d16d7c013b71b385cc19291b1715a8ef094f743f380d67bba711cd76122a
+GCD = 28b4425a7e9ae40b5545c3bec259517689d7de9eb32ab30c4456c3a183b023c0d18d71d86a35186ce264a3818186ed4dd1f952e2dfa70c60d8fd7d54e0099e59d4ec70650764d45475192cf1df22a7de28314c9198546a
+
+A = 2b9953677d97ac64a66547a9f213f56fae7f823b3397a841f65c65362fda0b0949fd99b7e3eec69824a15c1fdbba93c34bdecdb35584ff1e72963ad0f0b34393f731a54c5bce64b800c1ce97aa6744d256632fd49e532f72ee415658f4ab4e8c0c0975077d7b0be468f7302232f3895576f3d2b3b6c59ad2c0720c3a874ea86e2058ca5447af9df8926fad08ad50bf87ea7e8e695780e0deb16471680d39c25e78a24daa17684c10724f0c4942b
+B = 2b6b2e9ef5e03265ef9cdb1a53ae1e8120480c9322d10541c7f340fbc93684a8d95385e1303c4f5a9b3945b29287d429c8e1a04ba97e745a94c8601062b35f797cd4acb496a592fae83a015c6304c5776b2af34bae3e89bc759a4e50849e50520b8c5d8036948a2f963627d5fd76a6a87f4d2bd22cebadacc2eac012c0eba091d309a0a7c6ecb1d055885a8185343fcc3ad1b38ae10628ab1d4873a2ed399730240fd903ecf813c888bc45ba3f3
+GCD = 21d3f3e89c28feae8b54b0d2d137d819ab388498ccc713efe91cb2fca6ba2e0a876e1796a1673ef65588e0bee1b169fee00396cecda8ba94a4b3e4d2972eb8bdac48255a0ce2359f84eec2424433a2df03b8c72da596b7
+
+A = -1838ff2d0f9345a61b45acb7016d2623c8c422165d1210b67085c076d0fa5aa5fb7a549c6f77be830d4bab730c60d721a4136db218c9148af88542a5883f5218e84e2743a20f83632f62e63bd7ea97b4da64138c2dfeb2f1e257255429b1a917bce75dbebc14c4db30edb98fa186adfab94445a43927728e963c4b53176671e269fe965c962d961f42a5196ebe3cf736a8cea5bc84454d658c79c07b1329b57561ef83e23388149bef2499a2d622
+B = 6ef76d82e4ccdac702e4ba64e6f6a80bc29b3e62123daf1c3e2bca81301fc20cf2f959b59c36487ae71f7c1e7186e40b09df54b7f5553b8fd857108144768973746032ea798581122ecad5fb8e1450bf41a6121e5451293166b5360171b15dfdbcf87e6edc6c69e852dcfccd48cf71a4e4562bd4e0317c018b038e940cd943b34735a12c7f5477087b1166a4a6f92fe5021726f296c5b449499ad6ab0e7b88bd14bb9935fea7316ac9dfbc322ee
+GCD = cf85846c99e5cfdc51d599e1b8c8816dc09d7ad6cfabe3aa8756afcd7169dd5cdc0b9d088f33a70891f7cd0d488379c0568c8536aad394c8ebbe91dea92d7fa79560b8628e095732adced45202d22024730bb223651f72
+
+A = -2102c4ded42c24beb3980b71c79cef56612f80382e1849048a09916238a7745e098726ee17b06835fa10fe3128a87d224dc92018ca048ecd611c03a594d5673a987e78c84a918f9d2b6f3eff39260eed33a19ec5d98a4398345d53206114dd97901bc1dce8c8ea3899cca0eb7f36883badf21d07593e8b167bc191d93883583c0fd47ebbc5665f5e423cdc5fb2252fe26ae1c06aa92481d1e49ef4c0c111b8924bf72706769e3f0bfa6d6a138fd0
+B = 3ff6ec2f168c0c153570784ba0386734d1e1ffa0c8032a3db7afa726db0e700f4e194a534cdbb9e0844759e6c85196195e61f47744e7daf88d8b96423614d761156bb2abe2e4f7b9c2d8614b89c66c8389bfa73c1c666b0b4c60a03e5ba47621f8f6d07f9a71614f7366a5fd28c620199dc939c93a15bda5fc6894bb4d0dbd46313aab82deaf307e5c4813d7d6b89d692e8236fad94219f688772eaea386b057b299835a0a55f88856d59a8f2bce
+GCD = 8b34f3b4d9e2470da5fa8439f7c118891c5756ebe430291596acee659746ce6c373db19335cb9637c53ab56439d6dd3804d13ea7145d6959f09a76b9f2958dcd1d97d8ecb39141d1119710a7c2a67dc76f3140c9cbec42
+
+A = ea4c5db4a2b1a44ebf308d4d0b4356a791c5c939908916dbad298dce2626997d04cacd64a27ebba484ca53d406fb295099631e18c75c0714b95c30c4752984bf99d6df6808c7f0e87c173416d1bbeea89e13bd7ac23fe030c53c6e1ff2c9c0a866c8e4455c83759fe3d46fbc5757764ec662dfff01c36af9b58b83ecc9014e1232099156f5404a07d4a04780ec77030a6bb10f62c74204401c7a1dc963a53fc41761b7f01d7a84be385bcafcc4b2
+B = f0d774c287edad48691b027e82f185ae4bcea11f0dcd4ec0012eb057ed521a096822a90691955362338b56745c0e12fd308728da6bdd0f173388165c8e84df5f38b8481bd72dae0e8edcce07f60fc44ab1dd29e7a415fc8b24e271d45e622f9532b79046e1a734d8deb5b5186b8a35bde666c1082125495829a24cc5568173e8c12ec41c76db77b2aaeeb15e7dfed1c38814da2f81da2a0b16ca02fb7ac0f039e841cdd9c675c980494b256ec282
+GCD = 119d1c9938d9c7767e0fa7b0e1b2b155f7210352d87a9b1deb34aa3baad7b186f0fd95d75294abf1466e57f475226b7024b5d84c55be21238e6e4082309c582ea2beb2c1430881b0e846bc426b40ef4b6d0883b6ee3812a
+
+A = -40524f5be9f7a38a393fe5223279f8a0d0a1722f791e387debda63c787bce1137353cfea792e7bae34e90b7416cea44ab86a912556e2b852475232358b48a97b0227a8f51c7a7e5b1f81e2c3fc21e370a69f9ecd1ac4e16eee76058fbebab27158127c311f0ea72b9286fa4ad635e077ab2bf883583618bb3627ff0636ff7dfa4c76b95f07d1e8b9e7e2928fa8bf20cb18b23056ed1a9bb08747604eb6ea76eaaff44d65a9df515a807480f3ca360
+B = 19774ba7d9e651fd425b06d2b6ba6c54b7cda9ca41b295aafc7288f793f242c0154003a931e7aaffd7d177f71ccc5b540c96947c7e4c7cf7d786f4f88f84f540b1e8ec8919b5d2b47b1f46ff00238c10761e16d69344975efb4083f11b7e502a64475714ace7424e41ccc0bb189f5f7a266cbf45d7fd22c0c37792e7cbda37fce0a38826722f186275e60b756ab47ccca5f12e5a0f6ebfc8df19c384277fd7ded28cc59b215866cfe0a4ef028f640
+GCD = 74223ec11152ca8052b60d4fe3b42ae095a49eb01724da91f413fea833f89c38b2b3977c701f411ebd8ef7a4318649ae33dcd2e3ea71209c43aad07971ca612730396bb4ca2da2c74e2bba758b5b066d8dd2b40aefca920
+
+A = 42bf75ebbb33feb9f5ce519643e3fdebd64a4a535f1b2d8b5d224900e62a4306a966899bc3063fd69fa6120bf2fe7257d554c574c74997f4266119b6bb0ccc36c03390399e5536800274d3f7560c32304b33c41ab17755ef47e5b542d4646004f765d4b0d0a4c4f29772ac7ab18656a5c7d7edd0e84071a731bd1f579c13d5108bbb0550caae1c16b8ea3a77efa3e0331b260d118332e261b50f16606403de300ac4cf76a240fea066426f706bbb0
+B = -135afee71965b61c57fba34721d9acecd571faf57e88cbcd571407e1ab9975790de9799761c831cbd3650fcf726115b668d458b6aacac75fadfd912f5b7c2387b111f1606548cc4a0d43c0d75ab3346a610d3ab519a4738d3a39a508ddb823796a93bcbcbd5efcfc7980d7d01faea4b7df352ee4e358c0de22b6e6f8bc00ceadcda808afd372587706086cb5aae3a077b14f234da0147f38a00e0be8d83f7a2e9b947aaa1afd5e02208d566d5a6746
+GCD = 4fddd64fd66bc318a62823ec16745e6db02305975304c18940798b0e2567a8d1494a0e4f7423627bfe82a63651caa1ce27de17aa3f17af5f7280095f5f0f038fee3714019debf1df830c81ada139554ec018a9ee375f126
+
+A = -149547bcff8d0e5a0b0b81f05cea76e3f12ba9aca40f76cab4bdf5250a10345a7b020b5cbe228e6963d01d760407bd6c78c356a9ec6f0e7fdf1ec0243a4a198d65e57c862ef9447ba3c04fa57269d2ddfc26a0c87988ca018d71fa578e8b18f02910505ca8bd746c57c9e856aca9a7344c5cb3be1a7290237e99029eb34c9d6040eefad467be247a16247d9a2dc5f4450ecc9368715a2eaa8b82a9a0d95e93aa7ca701cc7667b2505b9927f22aabc0
+B = -3849452a433e4e3e4a319e25de6ff59de7342fc50ac5e91b68da927459d8a16d0137372d8e6983bd98efa87f2d4f2f558e73c4d3ae176d5a2e72ad3c3a4bbff768b972861df72b98d7bbad953c643bd05eb323ba41d2b243c5d862128beac9de8e3adb0cfd6f51bc79b9ea44083804fba24d29cadaae4619fe90d60a2e7535b0109f54a4d7a12efeaa5e64c5f8de5b629af157b6d3f61f92c15463bcbba18685ba536a58d8a9262db111caf5575680
+GCD = dd09d01585a80a29076270c63275ec42a159290ab4a7b7158a0b358d701c1c746fd9efd7ecb326ee3a106c8c651806053174b6b6b49b0d70d1e316229ba10d534f847a5a530926236d0c383fe9bc3564ee5f31ed4267ac0
+
+A = -b71fe85ef0334a769cecda9f6a2455ee32a78f7d513537a6ebba602c6b7b76352ac825f46abc4ee8d48b56fff2b4c1db159b3eb2be5b475e3e16b55934980a54b43a790943f6e39b2e228cbbbcb5dd588d3e4c25487e7b211d65095dabd151712c806e5a999ea3b0a3b2e2e18e71d003f931603e1991428cd789a99b72970ed0753bcb3e370399452e70bd27378bb36b8cdcb7746127ec497fd87caef4ee861266720a7a7d3254f3340a4b134cec7
+B = -884c8654554413e76ceefa384ef7241b468163cfd8eb3ea0dfad5153e0e1c697ff0277eb3bea62cadcaf945f5700479c5dfdde6ea2311a31aa0cf0c08287465f2fd7847f09c4f64d949fbc222f9755839fa9a91f039679d65c0c8243bbb557bab3e71f8261375d85111dca66889671c7ad5ceca083dcbae4ef7a7049f20faf62cea268329d2f64e2439b258546f9bc4b56181577282d86c1a98774743f9814c97a752713a50aa7ba74d0c65c548949
+GCD = 1711f74d5f7e6822bcad7c634938c9b911e93e33f21aa65f19ccf7840d5db4cd106ac07963faa6b9c6498fc8b0d3fd4cc2f9886e39a0517c3bd973975b5e6a800621dad8ed7f3027d3bc8e2f05962f321809055655b7d30f
+
+A = 3a35d91e7cec417f0a499e734bd4a562b9daa5d7f13908b7aee8aef3a492fb56fd67e26cd271d6cb9d9f469f5cb3045e8136d8335aba5be60ab7bd46b89ae45b062bd719dbb17690bb475b439d0a7a54c47ccbd384ad7ebf9924240bcf54e57782009e109dda8f5fa9483f972302fb211ceead34d8a9c13177a38650e92b86b09bebd9ba8844fafd3339b940440197a612513584b20a659203df192b2395079d5d2390b723d5d067fa61a55ffe1c28b
+B = -464fbfdc84431f7491a66d3652bb3a091653b95804f46ac72d05b6be4f57c622a7a6981c7700a5a19a847059cbb50fc8a182718c77aac51196891bc2ad44b450b17f0b522a36509500a4c806a078b7a03a8974acb206e0805e0cb23986a50e83eb2985cbd07059f196e8dcb9713d9e2a68c86c52885cf8595fcc587fbcb7632ce87a6d13a5830c2b356c2c591f5ded0d457fb21b3944c8382448380a71ef73c7d2d168e8e3fb5ddbe76c370e78a8ed4
+GCD = 273176accbab6342fe9fd769d3b996909579dcb2c5c62d627cd860b0c0fa98ddbab3ac0d8537e8e5c54a780efb7cd9435d766712a063222e140b7d3b25df07cfb545d6d8f58ead02ddb971ff5802840fa4b5a3f00a82e71d
+
+A = 87d2f2f88cfdb6dac71ffd378427d8a8209759f46d967146e105b498ace7c83caa65d1d2083790b3e562350c05060b4a0cf5d69fdf958b4b0a85b0cb05ded56fe8feaa82ca645cf278defeea795d6c4dd927301c55e557648888062ae6e8c51164a746d22f0be5cd45272cd2b5656c7e599ad63498fcbc6b86058fdb7feb92eec91de782db3e458f6925a254aac1726f5ee71ac5b55d29828f1d7d855007d3974695bb74bfa7acdc58c7d8d83de968f
+B = -4bc2d2b73b080665d5c86169585e4081e40c4d5f3c93285de57efacec91f2d7339499f5dfb79f68522e53ea5c98217eb5a7372a016e3d3fd4f8d93b9c45c2dc659511e672e095b8b34d4d66de7a65253c9a21e37d0d58ccd54172d89a93a1a99144ca72d49b3397b407168c27d64eb14fc1eb3706776d8bd80d189e13dd6193e4ca13a266c8819e81e98dd6115637cfa453e29eca559c5257f61aa344ef0dbfc3c2512e3fc543183e2187e079ea6392
+GCD = 75d638e8238514ff5ab0f99d88854128a886fe6973ca09b7c3bc4a6870c126154364e2d5ea25c19619c229b0332cc716f3ad627f4e8fa30b1ab82381b6d976125760157a06859e9b9acb329c2da24a9c719f0581235971ab
+
+A = 3fc450270c1d4a8868aa7090a89e16396746e4e8888ff6742191995cf54f946c6ebd6adb791bdc3d3c6954ea6b8cf9306ff53f8e528ff0ba7ae894281f0f7e775984d11e7ad5997e0b001d1e1bcc80b21b4974b638eb0365845b67927124c490e76b06d99496e55186ef037708307e2b3978a2dccf79ff84e3abb5bed6184631561aace89e517c86155761505aae3b2fa3dd3f08234a85f3278fb02526c27f7103f9b006a358b96a2e1981b6eee3d89f
+B = -2050a940e86713d32b8272008edea1d8a05a3bce12d3de892e346f24cb5782a87574e355a7dba28911a64ffea1442ef0c61c3cb2920cb90903e639cb34fa53d61d8f37fb891ef6ab8e607cea1fb9767cb57e7c2dc0e2e9385d8ce24a00f9e4bdf6442fc4be67b777e12d3df5c0ddc1a3fa2d30c823f6ee436ea7024f1dbfc6d132d52a4c18755ef5b0633e7864889e55df518b7b70f3cc522007212dd239178c2026c645c6de6ed1d153f77d315bce50
+GCD = 201dc5d87c92ef902641b261f6fd863685b73e91c2d7dc593dec368611ae717143f14def1a711f6a3adbfba78735aa79f6e56248b0ecba12b7d3174c9b2864b5ccdfdacf2cbff15dadd02ef7e739a5755a90ce03f7c246777
+
+A = e92650d273635591bdab110806119455b998301adcd3ac90410556b721af81f46573e7c432290a82319e76beaca8ff6a2e433e3bf22f2e0c84c97ba185fb5ee35af5a9569dcf8eb6053ab669404425fb8fd1cd3315bc282984e4ca86b4d1caee3e54e290d6e48968db98d157a1f16fe5d3d1f50712d2312890074d40607be414b8d3147819658d81e6fb61256126b31c9f2b99c2aef9198cc0c9530134601bfc65bf931ce094f87065ff2616f15ac588
+B = 9314a7f4de474d635413aa25d098ba32b6274c7aac0177f55aa932f1664cb744a9d61e665a76c2e73b801f7f7f4dbcbb4bb3779dde12fc6654e2efefe6691a0f521ee93f78415493271b7f8f149abdf5603e1464dac69ae0a0046e5c6b05a5b2ff8303f8eaf22c91bf76dd6047e07978f18c048384a1498de3acdf199f2ade4a42408dcc699688555c7a647a263997115c078a711c29ea6371105faabd34e4d81ee209228e127c4a0f5f7893060e1e54
+GCD = 10010eebf87281cade0a400a61e00b23dcd8486157eb9e48ec6bd919ad09434b2a1aaa1e603d95f692ed6d608b00cc9af8f7c731cf71946737b6c0905f2c071d347640cc1fdfe13d30e3f1bf58d82e107d9086fdbba9bd9fc
+
+A = 443d12cceb80bf41be0007e6e727c5468c3f4558d64442622d03748a00564c737e08f2c42c6f4c936beaab57387afc43ea9089c9b1eeb60b8b6843b153327f5a5c44b7fd73963a4ced84c3362d817e5a837c6b598d4116efd67b1dc94ffc462cd9baa03ce7a192f533dbbec6aef49cb77b18a82c87a163a8817dae9c028c5fa82fc84b82e1eb5774c813a5b5a81ec44e29a9ec7325c31c88517334320f5a254733eb1fde23493fb2cee1bd65840362049
+B = 36806b1a0cf2c54868c3cb1670d8504a575db538de8ff7dabf673d38ec7e04075a7796c9d44589933cf14ebfe95e8a47cb905abcca0bdede63f7d975d4395735cf5404128ab2a0a47addab6fe604c6f069fa5dbfe92c287dbf9d32995f4f1bf39fe67ef257697e895db6b0e453d544df680b953271003b2314a46459d17b123126a3fd543811affc9cf5e37f923a542ce5f3609f497506332963a93e87d5e2f9f3232fd1a70e608e604caf6a164788ba7
+GCD = 6950f453860b69135d070cad279a26abc9b3649230a809309521049b8c1a4c83f7d73140bb1dd6c6a11979e75e6943e716638fb7012647a6dbeffe10eb92bd8b5422626f02fa263a03c8cbf8c5a518461fbccfd207ae1dddd
+
+A = 108663ef079d5e2dda023320bfa0b1c1b336fbdb8d7ed18734f1ef91e255e379c23d16a2338ec8ec9b02a7099ae02fb463776e5eccf3108438b411f17c9af03cfea660a0d6d4e283496c1aef05c1aafab63b5039e491b729abe91d266f72b7cdb64bcef355ee3435735e7740aeb55dd939445d7bf783415dd55fea3ca26f159364ec7a0ffae87b5b4edf8d14ba02eeb4aa80482aef5491f84c8435a4285df8b76fe85aa2dc4249a5353c370df2befade54
+B = -14e2d1a6e133cca1270cbbb5ffacdf95695c8a36666b58950e20363065e93555061fb78356d0207a8be2c6847e464e577f13fc0ba288badfc26b185663d4cf35d609df7e08daec122793226bad3c125ab8e14bc3cc4b887e4a7a681ed81d7b3d0b715a1df04fed2446dcdde5375c318351be5a58b3e9da8db8f037743dff1e7fa39ecc03586c166393abe79090db849b5f9b33f1bcc88c4a57d9960e8b0482da75942e1bbfb3985ca00b3371194e3edde
+GCD = 1cd9fc043b5a4ca167fc896b5014f8cdbc9f7d5a693b8771dc5d3a254d0bd6fc571d01aac50a4ded840b184fbe95a3ca0836e6243aabe51b7e3d5b8dbc62004c6cb1bdd4a5a3a310bbdf4f90d3d9f2ab5f9a3546abae3e5d9a
+
+A = 270ceadbc88535bf0c75c911f2e2ccbc0cf028a9d0b721ecda79f7bb12c0e244a43868015d42cc1c5b45406694b49b54fe44b787d6f26fab0a6ca34d8f96c826a6d69bd01ae169fead3447febd39667ad0e3d3eb47e90944234160509d47a728c480594b54a4be1243436497812aa61aad134aae775927c4cb057965fb640cf71eb613f66954b41f1873cd4a5f83b9ae624ff842c9aa336a260cca41853b8e1dd7f4e1ea9ab441cd1779b496054078e5e9
+B = 299105762db3be09870c3a81c8da37aad1c72e5a756cb9c1f1872e5a991346a621092d622c501b387949425c26748c6cb6657ede3be6e8cd6c093a4b9a0233f49ffb7265a0cd18393f724c88944f913df01a1c16ce6cb25808ff5018c25d1cfa38edadfab9c4925988e5e02182e388bceccad20cc5da73a8ae479618cdb77b80ab069be5d9787ff5941e34892ad404758af0b7c26ac4fa17879e06e73396f0efed08f82c72c584c946d41d860edbefe7ec
+GCD = 8194356c56b9db7fae60c64be7249d44fa7f00259c3be6b6fdc5b697bca142efcc29fbd43375f66484dac1935214f39fac0b98eb37620672157e5c361ab70579a410bb79517058b9095101831a95d1383f7ad972d31ac2823
+
+A = 789c11be89f706751e9ae0a2d3e307be6b81023eb82e26088e83620016f58b876a57b5de15372aa555bd28c6a6019c84c67093fa502eb4ab58394b1a88083382ad92578496aee31f7ddc96ec14b64dcf10fc3c742bd71b5b1c7a932c18f6b9eb2be0b6137c31c3973a4373749e82991b682e4f646689597e58ae5d177f408eda0a6f28c75d7442ef48861ddaabeea6462db634af2d4970445175c27faa7e8fb807027d7fca72d629925aa852e75b959f10
+B = -1ca5f220917cd86ac4f852a99fcf7ef01114446681024c76f1f8d4d3cb3f596598807f1cd04f52bcbc33047137fdb042c58ac713c234d2d661bd7ceeb4bfedf14b3b73eae8e92b781f41fcad46df9ece8f294072f9e586e6d1fb4e13e76f79f31a67f559200705677c41720495fa9e9178d990c25913b19eb7ae2c3337f46510538f2385f6592288b498be95cf115cf863f991aa6e05ce8efce9260bcded59b4d1ec3dc18afd351e60bb415a2c37f60365c
+GCD = 1d24f0716fc0c0a903db6e4255a9029dd2e5a547457db22a846775cbfb3cf662fc589e8219039b24f693de57be12f38fc68b09dde3c1e8f50288738c625b9b2a6764a862dcc53a81df68a5b5005456f81d4d725716d1d8da5c
+
+A = 230121b69016dc721d7c022f1829ba2010e82723bfbdcd2b78e0ed4b4738b30e4c4efef3dcc89f4b41bebff65bca9e5258cd0eb3db39b17ee329a8f1a2d08cbf6049307e3d585815b7bc0294631974e920d3d383dedc81c3b5221bcc895187f9316eb789b1c4921806289e7371a4b2e20eafc00ea875a87025c40d47ba5826bc2cd382c477a72e6404aff1297dad01bb40df7791d1847d069e82ed353994d4322b9ec49d36644c68ff0d8031d2364046d45
+B = 39300819e3f4eb1820d6ef40bec89440cfc5b370e84cdf484ff4341da5580b64c4cc899abc254c188c495195a95438605fa3fdfd9ad86a9eb8705da86f2c2d3c5215a73c80327ca60fd7e277e86c5d2de85ef150209d1e3cfb465970fd354238e367bbfc3195dafe0f95cf3bcbf1da82b585a4836f9bd912f383d62757d8c02a7aafb0a0b0a84d27a2c0dc6d1b3f6756923c690688ea155ee35277178d2f8b0fd699f14866c93d91a084b0dd7ea08a489f6
+GCD = 237921555cc263469cf181ec0d5f1d24bb510b1b5d7f845bc604ad7bd4736e69658904a03ffdf46d84191a2dd1e064f6e2b3352a13c431df6dbc831c1082d69641ec709c28eb264763901c827a781821a686599e73ea0fe3bf
+
+A = 42d803ccebcca5bf684000da4d175ed7db1d9978546743658a9c06b0616164fd526d6358f9dc1bf95f84c7129d6ba3abc4cf2eebc09ae62af5b7da2abcb2c0844305ad5504664b80db990c6c8e705c4e36f1c0c3bd9dedd1b4491703b70aed602ea2c6f804da5f93d62fe7dc11ba8e0a949470251b5290155390ef7ed9ba19a122869849f8a57f7b488e7cc0927abc1a3a52b78a236558e379613e101c7373ef221afc7171dd7b9939750ba18281548c3a0
+B = 79452ab68a9d724b81c9064eccbdd3e565faf7130815e94ce9e182cf5a8d1e64321dd4f6bb69e05b3b46f08f5e1c262ab171dc3a2d35b25501bd38948ae2689fb4e847e24d4726e4115af4580a2273e38744b202adccf7c6c1f80f9185cf1ddf64a807ed84c95046bd4180801816b9f71f231a502efe5bb55e22b7fb6e76c2f4ac156c77120d8e4eb8b740aa05d2d29d91b193c3c828aa1398d014d3f707d9dd1eca3162a38ac480c70e29e230e4a5e6c68
+GCD = 431783dce1522a74b069a73dc23ae16f95b7dc0dfb7e97898731b75bad15269d0d06e0a9adabff33d786a1dbbbb2e0e75d6ab36d7a19c9ff70580100d6ec050fd611d5d7b35810ebb20c56dd61268e7fee128a7d7d82179fe8
+
+A = 4b3ef094190e5a04e9f36a79d85569010be600184b73bbecdc48ce4e30b72d5614e37961eedc406b21ddb903dbf61d224982759c92b101280ed4edc1d7d3828e791f29b0b6fe671b62a537aa129c349bf055c72f7ac44aabe989430e9119682d2179d515a7d03577f38a3ec57a0d7a0e173deed714ac6704bd6cfb75f462fb3bb0ea768ebe14d6e5a9c88b9c0eed03068d7238626bf2020249d22a360ba5bd46c071bcd40e01cf0439ada8c5a97e515dcfe0
+B = -4b5b86ce82f174b0ee6078dd1557625d3fa395105d6551bfe5fe025839c18962c77d4adcf482b1473e230594173124237db0c681b909d643b62c0a05b9afdcad02f6c69d6865b1c2c81d91f9da5dbabf5115e6a9e635c458706f675fc64b68cb041a01a5483cdea6f9f2fc71c939fec3624343eb1b7e04f82547d78f794e46005c7d3b7532219a2aceac7af7cf37b517151a67f265a19c9605334c9edffc5e57e96d4288c9f1c8218e9b77a90632ca111510
+GCD = 1942596cc7b9c487d7d1a8ce2a6ea63be8cc90c8f6179e3e81ca18f379b4e4961dd6293944a68e854ea2c7a784c4d8246e125fa58d0a59b38b2e3a9906ab2a84f1ae22cf7a3cdf1518f045b8f18be2ead9097d1b4b3c4173110
+
+A = -17ee9dd43d74259e4d3d85c68af8f0912bc628babde4bb96b58d2c858cea30c0dd16f6b574899ebda4431001f33f5213d1d23808d9825d57f71c4b0d9a8225f026c22be1db25f3ab027dd1b9fe8b03725e3a5a7d20b09886b0c1929302152f45b53cf6537ded2792ff07cf90f691982e2d6e5ce576c8f09ec4b15743077f24ba1045fbbfc1ccbf55ed137f92422e5482cfa430b4e11716bb5e9d480958f5e4c8c545b9a09395e274c117e3df92a82fcca7c4
+B = 5b3ab6bfe599072fd842401bd36aa227adb8f4bd64e6906e6bf129a1e07f58ba9edbaf1d7a889d06af1dab384d42aa34b3691bfbdb557b7a0debdecbd82718469791adb3af9cf3d96ca2fc6f1d2fc65ff9cc6fe9e4f09d169cc837e9bd1774fd7433c25dc4ec39c28aff1803c02e792ed738cc93a020efcf3b70a4c33ba37e7b4b2306c85883b4870b6e4ec64734cdfc34852b8d0b50037ede450f27ca154a3489e963ebe67daa4454ae6efdd0d3f5523725
+GCD = 128709cf00768373f4766271fc9c669fac66410f08574465e637ee4572e72c80da853158a5091a90bac4ded1bf4dc41fc39c3c51e5ef347e5496193b21011dcbf4a4cb33e7270ec94d04fff621a4a2022ff6e40de359055417f
+
+A = -4bdf6822716e69840ef4a27a95a760ca401ea9530fa70c350ef200b8e64a318248837e171a71ae7b1044924dc436c9490a3ccbed98c0a3d3fe7516e3f86835803a3f89eaeb5949259dc48b0ec2438135f298458d607d390d0c43ed3ea417cdd1cbef781b152d95dee576b5d061dc9dc4447c851c44a1aef290e471fd36e037b53aa8b4857e2d191a46bc0ce67301248803cc74541a21c6eb616aa9cd7e680cf516d0a5d641ef647bca10e20ed447af4f76eec
+B = 15b240b2e7aeb08fc4273e44207d0454f6a504b1fbb4339d2154a41567ff79762a35eb496edf22447eb6517ba14c76d183329199a800709fdafd3d1ce20a9b434632d8627a9064b18dee1252f333403068bccdb5ddc4301beebd8356ec244930e2bbaae9a1235ab66ffce69951b8e167bf1e4509babfea053a4bf635225d8c9de8a4c931d7053a1c9f14604a706037ff55ded8a41dbc034f2208891c1e8047b586f974755c2bce54a2f6298913f922c5581d2
+GCD = c71117ab88689f2e3a601e3be314a4429b25aa1457e7f64f59775ad83ebfbea271acf4f10907c32c9f04851088f007bd880c0e7ac543b06097dc5a7f16fb052a1071372c0888c36780ad90106c3ad71a663f7e4c42353cf4e7a
+
+A = 7441bfeb978cbd3807918e58634089c0f4c555529550fdc9fb9d3717dfd23e699d69c87d88361ce747d3f016cbdc32729fe03be0435f5ecf9e1b8bda1eb56ee29ac71006e60c25fb6fa9c15a97ebacf66574154b7cbc3f21f2cfd8801e760845bdfe6fdfb34061b4d0bf9b727fe16466afd65e289833290c1e07ff9e41489757d2bf1e6bcd50133d2398b6bda0c173cc998f63cc402cd4fc7b2ed04c441f615033123f357a7e8adebc6ea6cfe8138ca8ac2fc
+B = -825023e14739b4a16e28247e7df06d1565ff708fc924581e09297616e208e4995b880b60070714075c69418b2f1c957d94511eb21c6eb21f0368d24e9435daa06b0063491c99e521abd2c9bd71a84c773eda51c29a846b4c64ee40b7a4ded2f113c092e449a6ce13b69b96de8c9d5342aee01591301bed0720b894d138cbb713d768b11c9fb7371ba44c8aa4aef1c74802fef823a03d2fb70e24edabf3d183915086a5b13251aefe3f42b69d2ac1d4e779050
+GCD = 433ad3b37fc80411a8a0d5035148f5effb469ff5aca7dfeba449a11de5078e2a2f3cb70e03833c6b92dc34070a125426f0dbcbfe5f1c1db0856b9b9c1638bf89533009ee1c23a187ea4be5a4be0c716ad1370a6e27a5ed6a58c
+
+A = 291b0868208aade231362daa7fff8f803b1908d53dcf65e03b6ec332ad37243c51c9407abd507e8375a8c02b43a17c13459cfa07121480167420701c0b9da651c22fbb952b2456c7cd56b1ded9ff03ed9b306ea979436fea2b30a04bdc416ba6aa5f96ddfe249abff75b68c08b9b0d17eeea2ba6305b4ec9d3a0614498b553736f8a91ebd7b780c7b61596a062b7dbaa432a78b243b08e0a169083638820a4bdc2ac65f2e4b51e370e98f919ea4da43e528a11
+B = 26ca38c174827630934094816bf366b1a4f8ca2d984a5bfce342e44a4da4f6006f720c613408f89437fe548432f1e2eb4301855a8cca90a05f9a34e96e141c3f2cad75bc3bc7a269eb6b78d70bb8feb4e0a5abe968d996caba943201918b4329bf5adf5dfec5d9a6a289f316aae033e0695ea285701d494cf74bb6dcb6f7bdc5e0d36b960d74ad29eb7f150879317449150ac70102a7d00e4c4df665a5997ef401ad3a86b881212cb345a5dbf72e7eb0c9bc1b
+GCD = 23b564b1c7e4f6bbbae9ee90e35eaf70392601d26b28953377c0be2e6e4510f6d7b3fe3b1ceb0b596d297b539e99d300e07cf392162f186db73621a67b9a72c0520af9b5fc0a6b9f2058320a7e0c59c2597db64332f6d908afcb
+
+A = -af427e803e6a7f089efb4c6157d4e01eda487c3dd7041c63ed785afe3eff2332c74b6a2ecec6955594a290c2cbc3c602fbcb9c752c617152a10fe6b3b0bbac214662a09ec1115a59323c930511b28e426cee2d771bbf0045848e3bf90aa0bcbeee89da74144e900b9c7f38b394b1dcdb9a09ef8e0c5d4fa37e8c987c4319cd7263f8adeda55b732a92bccdee22ef4d2102dbd87560a8cdfb1dcf3a345e6de8a0b9e1931d316905a75f1b8fbd051305ab3bab38
+B = 10b1c679c818623420ed624cb3eb573612aa74cb01fe054bcb1a0e466cf937f2c4c4a2d494db69876135b8f7105cc833e2b27772bbe69efefaeeaf1f3ee522b79ab63f5df172534462559e4fad8b9fadd913386ca27e722be8e983368692017039b6f7f2ec0d8f4a0fc51ce9afc3a9f9f04a73d94e0841b59dd4e03656e9fb46e7c2feb2f236eb71a6e562cf87321795beec20611b201496b25738be4de4f77e89c8cfd77856cd6d8cff3fef8da31161e24ad6c
+GCD = 36813e6571e395a11bed781f203a75fed1dc3a7c2b0657f829c5cb9e46de166538118eb82fb9e56f4d711696a56cfb026be434c508f648bd5ee1d2a111f8fe59d498d32791de1824c434b91771c43805c665b6f0ee0bcfac16dc
+
+A = -485f6af70f3667e7411f3878331cf63faf9193eb22292a7ebba3375c2f01e4e9b6120de8d177fe7c0af6061337ee65c74ea47610d4708ec03bdec80b70053d72145383d85a4f1392f4f558e22813659fd8a9f76fc782f53f05f189457dd1ff3f447d2d34606bf4eb7435dc5beb5bebea05d3cc0d8d2ac26c6d0d8793d39286c45570b4a0079d0401cceb618ad4caa4be6044a9aaa17ae578bc9e825a5edcb96b40d998115bad40176d26822f3e4e37910b882ba
+B = 42c00200737ed42570aa079a41fe4dbf7d27bf6104cc77672a2d8e67a61a09a0a1a9ae67fc08e0168667e398e07cf7cabefe98e682d5e402ca1848ff1b04181900eafab18b1765e90fe32881fc44a4f078c4fe3333ac3bf6ee2b2f8df3716e15866d5e97c1a1bb265bce515f3452f1929c7baaae08edad473dba976ad7c5ebb4997f9529fc9d055a4c6dea15a968486735ace7690e73a6be694f3bf8e0a877295205c8bfa6563c2a7a149381f1a715bd075613a
+GCD = 2de678c56e39cf64c671cc7921df5a1f5eba53c19ca35eb568186429151d32e8cf51c8ce6ad4bde43641297983e8c3e6cf378cfbf50479370b3446d708606bf0063cf3050adb4fb519ba89e004a0d823b7ba41cea89a4af9b68e
+
+A = -1637f1fbaa7e162db33291b8f8304b2b280597467f208834bb1713af9f005c994c681cafc28697367ce01269af117fa3e2f42aae605bbb261e29892b44da54dc3ec24eeba23d8c58bd934ca6889f3ac42b8e6eb72fc440f5146226eded26b806c07d9f292b7d91c49cacbb1cd2e7a56a5d596c49dc7cf14ea1db77a4e13542a648820227e41a21167d9ab72b5469b3d789c6c798979557119c897ec58436c5d0f52e7d94bc9d77c9fa1f9a8e73a5c962f77914ab
+B = 13d4d0857fd2ee6496f1d72f7f523cfa95b8f43947dbee8fc380f05361046a52fc9f52afc31d2ae767ddceea47848d231ad4a7e424ef06416e514466e91a08c15054d1bee22953e56fcd68e19054b749a1391c82d2ca58b5745eccf69ae9d723996572ebbef091759f21374281bacc4cbcde3ce87b7d713a76a22b14f6085e91ff276d564778988de9dea6df08408e06c5f84c3db9ba139c8db7f77b97100cc418b8e772ee0d8ad5206a4c17cbcf1acb9f1d412a
+GCD = 5f055073079ee62b77ac3204176a691c5143cbca5851c50e554bfc0684af47642ad1a80e30d51337d086e434ea1606f1fa244d4677d9ab6b6df8f6acd63e81c4ef1aa030e6eaab176c848b65dfaf781c18f44cd070ceadb06985
+
+A = 223b096e8c446a32712c5668fbfc84de47617192d9ef4a3ba8c975dfdd128f356d654c8a98d9611a1198fb491971b52ce883343d5aec36b9be0ba7f668e3636996d3b2dbd679c144436f4fff41a8637f007e97f02e23002430c818e08f30d4f3b48f3d61212500229574e6d16087abc73675de0410d5b6b5845245916dff90abccaf564b57fee254d59c7556dd14149bf9e92f270a133be98e136d79962510bffcb78de42027e78b80f864963a70ba026eb4db04
+B = 1bd4a89040c7ab24b1ecdc71e870dc83af5a3612177e7dde91aa094f901e7a3691b831a54cc3a60b02595f77e590b25640bedd4f75990573673294fc53be6819f81574cb561cd8bc1467467881cc2d8d7323bfda55dd1e8236ec94064f6c3cb42ffa85ed2902b8a91f5a14d19cc1cf698f24d54c867c5fea84cf5329c991675a12dc2497ed66612701dba0a8e966e5215b745aa87d0bc52c5f6065978e02e230ecdba80933a356921e915c68180a71e2bb497a2c
+GCD = b3304b852de36c9961aea9f17398a985554abb0faefaf378ffc57bb9c598d664612120ca5f3a9250134b53df8f18c474cb56dcfc02b87c34d4ea4f3d46e4a7a339bf32b951d7902f072c7b82339cff5cfdf56fb6ab72280ea954
+
+A = -164f46663dcda80b362f4f9a88be0d3e579c0e11f3844ff8ab203164a73a2fd1bb3d609af800fc0d1f2e01cbc7463734f4229c9ef86130729f3d4ea2d787eb8d98d0ff42797622bc62762bed5ebf17226a4b45d534ef2c61564d2f33a548c302a7b6eb5cd4a3269b3667c0f33306bc6267b93600ad81198af2ab74fe0046683471934b50e0f49798417cca9557c68d1deffd3a3c0b7a4119376c3ad18f06c6ddc8c18f0dadfc6cc0b6f128ae2882e80c2479f8dc2
+B = -104d1b5f238e0e7a026ca7676a043f89377ba53988c078f8e5c04da805666c56932970a4df9939f3143e173f7548f1aec969b125e454e312b857055d559cca4320b470ac0c108ec119993c056adea9e963df92ce54b8239ce47e7de1af6e84a57f7aa9b392722495ae88b8f17a927f2d76a087bf033a97c01356d2215a75f7408e4354f1e00f2f1cb9e5f8f3df5dcb2c177fbdf041efdfc78f761f7ed1ff8e607456a37ba26266cf6f1e58208c9e53a64b5434b7
+GCD = 1a2d589712aee76b21e7da910213242aa14bd521e76cf949234fb137c5e8b679a27aba445186d4577bafb651af3af61ae5762f12c0555ab85aa3cde74d327d45fa25814678d0efb2ebaa738ef7e06a4a021686d3fd7707ee25e49
+
+A = -48edec672e8de18da5525487ae3cc19e858f0580b7627610b150bf7f15f57f734925f9410fec3289dce26069636c0dbd21fea7b05b9f390f502d1e1ded20ef8b5e944cab1dde7e703a00b2af9619b6f41647af823340b1ba3762e3201714c6cabb84a3ce1d09e46fe25a5248e193081de659ee987f0756d59b4102f9b4e24a49ed49d77500e16e731762592140fcfd65cf806d4bfff2e414026af3f74dd8b704f9a9395f713f0ec222f2bf915af1e12bc8fdfd8c0
+B = -a57f98ff0d055bf229e0fa98be06ffc4564166c3c2feffdb0c38206feb986abdeee954d9f93bdfa1c3f325549a4744a9c6f8a4449095f6c54e966e0969cc547e4a55b1664e47647d966acf05ee5561f6b6c44d99026d4ddad7a32bfa0017c4c739bf315e8b25c4a85c737b3417b0fd20d1afa824b1c6e21c67ba38c468d41e438b7a212253b07c7ca548375645e4a47132929b290fb696fb3f2398100dc661cb87cce0238d069525c2815e889fb1a78060f6e938
+GCD = 77dafc8e2b5f342ec0c74d5fadfab795006d559e981c8618b1549fc4f83b97b4cc4e1c5eaabae3a32aef02cb1449b1a36b446bb94b5f9e493dce63f18e089ffa45e3cb120605813725bffcf3d681848e75203cede1ca403573b68
+
+A = 23201ccb157cad7123d94056bbab2b1e1f9f7231671a76e53b177b2d2445e6631f920cc89d626fdcf04d368d522f60edf4b4b64d3f2f93beaafd224c168c844101602bb218146179f458f3e5a0b51d4790c36e1d2094582e19560ac27dba2fa4c6e403731c2c66ecff2260740d226d72c5e1c2af9afa27934f9c678b4b1b91ca51e47d52c0e15af61be06f47a96bb7ed4c734a4d6abe2698b0ef7c2c2d04908f0a957c55e0d8e9a6b6dcf7364f82a23a6648122f0
+B = e4c925cbfb1c32f155ad954a9f87b72978a3870fa5934f67ba03cae8913de65e1f606f4adbf2351bf4deeec92bae14f4cd64a9a5fd904f55fdc528ae5fe29068a6315c36173d903d833b0c78e559325aaca56f93ab629d7b586dca0a83f28563d6b186c799744d01f286500a029ecfda64c49697bd1e894901028b19e4a457db866e344d8808319b920a24ba0f4491bdcc701969a07d46c07b96ba115b4671a571092c44978ccb72986c6cf3020272a01665bd958
+GCD = b846c8e8d8838395758e03eed244ddd6785f67d91626e1994e4eded2ff10e409460e921db681ed0e3c432180f7cb70f8f1a6cde520545bc4561e7ccbdc5f48ab5eaec5de2cec50e65653ffffb07355db32518a9274951ea23e038
+
+A = -19590fe7eb245dc3b0bbe9ad7c43c00674763c91dfc50b2968cef169e04eb4467ef7ec80f2aadd7fb9a3d6cff115519e63ce9e8ec44b484be0ed9b0fc213994cf15964ac17a13a4d1401e9227c76716e77bb92a0214e7bcd1b22b073acace6f5da7337d893839398e07b787ba0f3f08c6a323d52d65a388b512f0784a1610d4d89afa3ee53a0f09324b84fed1a8c7ca2287c21c5c2269aa24210e3c89530e07d137132dff37f489e600727c20cc46ede244014ddc6
+B = 5495d3d0633222e3ea4ab1e46d1717aa3baff445d1bd1f085399bf517b49fbd8a85c32ac2f91600828b150f0898b251e84448502e323ca47b919d2d485b80d7fe5d532a2c59135ac29d47af0f23cb6f547de30b9b4a7145cdc4eaf51bf2af3b24f824bdc5c22618e77892430b89d26a30b13767acab54bfae8747ee99270c7bf6b943bc58f3f1a95b19f461cee35761e86eafdd178da054680583f5ee56f3d3e25da54e6b6ac1bde14d1dd380f27c8fdea5280f43e
+GCD = c70bdf01319378614152136df1f79a97d0f2d1c57ab9cc2eb5bf837d07c33aa7ccd56d2968e0a554608a6cc4123c671915f3800c0b91ff1dcbef32cd3edeb3911612b86f27c7174f1f91687f80eff8287a9e22158c2f73727d442
+
+A = 937498bfc72a1c99b081a3ec5166117d0eb2d26725079ddf822cd4f6b1772774867dc786780f4fd979d94e76acc1d10a6d9dcc48a867d1b73710ad17387c23ba2d5bb345d2960557e96e8592feeaeb980cbc283f583d7b3a293f224bc6e9eb3d83dfd8151e73b17c4d0aa1e8f4602e99e0cd40c0aab341036e5cc32472a68c85e36fa691f36fb68188fdf3e1c8f6474c99d73853957566dc6aa78de628dd48849c0c42c2f5f95fe0b9697675af2b3d299e44080d0e
+B = -82322c9359f39ee3a2f5c8333da0ac53aae946b7321e01242df45fdc0e1dcc6d944853360033c18f338d6fc7e666d005bff1e54513d27cb236f5f5eff33645f79cf8f0086fccdab2584110c2c684cfcfb2d492c38f9a926ee9ac4abc4e10ec787641b3b568ab6b62589b5c8efd7b064b9e29822508148d80f9c3716a3f755aa478fb2e6ae80434f39b030c596d78fc9ee8dff299e64deee3a4ad908032cb00e45f12941d2e6fd24afd20ea5b5f855dc50c6d82f646
+GCD = 7252ba814fef8c3ae82ed59e513ee1097fe6c86f9777a63a61cabf6cd6c32b1a8784ccaf3facef13b902b36030c6ba4821b3636f91e7b6f98bcedd3c8e510db1eb819f225989237eca7ae9f596b38937e884faac2fb6ea8383a87a
+
+A = -70366415fc855f8bb2dd8e4d137473b00eec4890a2d29871c92cacc313bfd8141f3695136502972346504bd198a2369ce4ab7339714feafe9f34ce4a2bacfbad8f3e2a90f1da39f91426bdafe98d93c64a2bd6c72b10d8e906c01eed19c91ccf68c01572e89ac7641b13a3a6453006ba35738d6edc07f178a48b83756708d803313fd54669c56a8b21c03439d7dbdebafb0aa69ab9a66222da58709e0fdf7fcdaf6b79a0399f9ce14b4bf2e1bdba9e8444265c38f30
+B = 2afc05994744d2fc2cf2e764db161a81b68a437b4f80d89b10a7b907e196b945d1daf75f7f346b3e3b9caf38b2de24059316ecb7de7a1191f47677427985bcab0b3c87e5ac7ef5809e720ab77e8c43e1e9ba8dacf4e7b1fa201f90fe75c95b9af49e1d07f1424901c294ed916c65220eb66f98a05749102ec4bd8592dce4be683c52de182d16bf213dbdcc6d0e95cee4a5e08578f50c7b14f324168cc5ff6edf0550c7ec46c4dd27df9aa805042ffd9d6a835d7ec60
+GCD = 39f8ac185898b8127149d632ceba9f6af8be9366a5b77b9c8d8ccfe2c2223270cb909a5163b2ee95fde6d58254fdb53a74c42f55d7087f2de86f8b57ff9fc6287a8563a607bd23074b878dfda0698bc9c54c41a732fcae50b7fe10
+
+A = 170cc2748ef29a0f23ce419f8fc7ac4e49dfbfb381ef719aa42147afbc74e8144d3f863d283b05ca104cc9feb87f47510902fc76ae9ce3765f5e6a5e413a71e36c46e00c604add4c13bdaac334082a5dbaece946db38d91a2c30ea7914ef81a4efda7d1a6c9490f60dceab781485b9403848267589b597ad5989ade971ede7907777f45940e10bb998238cbd873bc4694003179a0bf3d5df7e96e80fd9f1452b90e7da9651259175b5c2c588965d9f1da81924d1ed75
+B = -13106192936017990e8daf776f1ac03afd40760a2ed7a89db5e3fb09b4f0ec82ab84048a9fc4f113128b65cc9807fd5236f6d7e7370ef56b130bb3062fb299a548fa033a33176c09ed719cbc37375fd794968bb8bbcc60950e94795edee12a7ae0a6a9bd6c4fffd20918273035cac233bf51a68704477fb92047cd81573e70822deb1be9761a4422283bb54a91b19f887024b26671d3576843953bd84c3d4dae143a817d416f10dd0f14e75f774d7dd9bc9fda0b4de0
+GCD = 6d64fe5e2fd4519883307e91830a321328af15443a104bd8e730a0f501cd59d126fde254a39faebb5ddd3552b91afef16ae77fd54bd1bc50030355e27baa25cc4c98561f85886aaa0e3ba37aeb268f4344aff7e0349d5f1f6c21e1
+
+A = -4f4aaea41694f3f60bcd11e5d64f17892f38938d8d893370063d5c8f0c83efafe0a1ffa5f83db792b780cdf896cb93afa72ce2aaeed05fbbb267835814f3635e3810676e820dabad59695b87228ff6823305c1f8da2b8110c96be17e3e0137221e48e96bdd9c3ab43a6d4f0ad4b653d7fce173a94286bd620609c5288adde887d6529b0125e613097954d62b5f907ade4412e4097862ee608800862145299e968195045790f3b68b39ec859db96f43c5f6b819ab84b4
+B = -3fe6ff3e85cb26400b5c3eab69e5b46a713166f58260f25cbe3c722156837764362e6e5e9d1b36083dc0d562a6573acf1a2803333b9e20d63114a9a99b54b88a2c5c5a2feb54f83f12b1a8095635b33b08a92b017855211cb1c157e2cffa18ab49d1128acc7a39fd2c2f7610e13167e0b14cd97092cbdc736b52eef7588920ccd05493097b58ee4b473bd66b5e1240f986e8db618e5df6b03397f573f2065e672d8e4dbed3041c792649c95799a1ddeff3a6222b8084
+GCD = 8e786ad5bca1c06f8b0a93ff734885f5f5d7b412ff0a28272a5cac1c3b9fdd662a6e549b1fae00cc58bbbecbb4cd892fd2c44d43b84413ea8da0e9d1356111a06a92c7e28d9042d54d80965392ccd7e9bfcb2db7e1acd1be92d6994
+
+A = -ca8aef521f3b3d7ae9a192d93932ea00da99d85b5a122372d9c647297d19a7dcbe13568fdfdcbff78eba33e598201d427d1bcec32927dbdbad30005c3f3ed8177164cda68040fad8d3423f6d912daeb61773b0e0d585f682ffe7e63db225e5e621175d1ca392ef5029c2651d5fe8f1a519bda584f687bbe9107947de6523a4e85a96cdbe491f9985d09a27fece2be80b8ec84c4422a51162603775741b0f18cd44bea9a753747be2133bd78efb044ba283c645c6cfef
+B = -82e9e7404926b3813164f342380909b4bb7e7b98561cf27cc1dc26c1aaa9e9b5c7196b6ee0f972ac6182a3c871291a20aba75e91842f69b5a911b824508d27931402fb48124c9fa8d81067617a9c4d9127fd79db1e85b3f6f7b2f69f14145c191639467cc9536ea429c036f6308c8771a849f689ece18ae980f707e7ad672d38122e5d83e4e91ef2809a20e2ca035398d7451f81957c1db1d669c93433f98cee1cde4b8b40d9ee4aee25baa4b846de01e52f5e1a90ff
+GCD = 1ba5a5000518d4fc3705994b6517798bbe36c7f3c51b9ef4be10a0ed68a2cc5e035aa3a635198bbc9fe70c5e4cfb420191e3ae7a7de5793a54bbf43fa2428285ba95ee3d5d83474e26f001db1edeb43da7d124e7593e23d964d134b
+
+A = -24a688f8e8bf2e06653cf3c8b384393991d6d3804a3d68b3214cb81df0bb043e364f62d448711a1768699f3095f80636ef1a41a84cfbeb3d7cbec93d9d3bdc87bde29efe4003c8a1c142696ded7ba2949c630eea60dd8225d51ce99ee2215aa349c2180c92a730bf97a47cd071c40ec0de927062942073f3369d5f9c7cc93b172a2511229db783c4c1cc06c172d5d18174aff253a2db9c6250bb74b7fd2785d47957e52c4e428b4ae25c0e88e30854cc5cf9a17540a2a
+B = 33abdc189d00b2b0946a3f7a7cbf2983b5da0f71945ef55ad2e3d00e0a71609ef045a0ac7eee909cfcd688428947f7b08f80710c7c2928945ce4e353eb373d6606012bb32f4589d01e3c0546f45d05ff443368d319cb54b0279a82d1992f45bf2099c4947af1887ec495de9b34c6cdd818622be12e2915187886105f01af9df2f11e962aca9ac78745154054b263c549e7a47bdf052eccfdb228b33ab15d437128376718a220b98e5acb3b9b4ae4a4a9eae8d58db8652
+GCD = 257978a8360352d5e1723aa69977d8f0cd4f51717f0d1e510a45ea163d720ca79680b2dbd941c849f4941371e0368bfafd95b4856ba5132ea621ac46896d6bfc80f9b36584bdb79c15dc7c4b00ef1222b876ff3f64571ee076a8622
+
+A = -5dd39f7bbc0a11778f94ca4e9981fd2afa92dddeab4ad592dc01a72949f6d7f5c2e871a6bbe775d0e2be0c0d11b02c09a228243e62b8f1ffea3fd822761ec5ab047ef94a0d662d2947eda22b1d5053251e34745ca66169b9570345a83373502a3c9dde7360b6d8850bb4d7a9923cb9b227c703f9db23fee96104486c29376f0d6a2b17f3c616f078aff1529c0d18eb3919b5808be87d805ba8f78f9a4115adea3d6b3d84a410fe0824cebd225731cb5f628580bcc30c5
+B = -62baabaa5c6a275cc602f2f6c3506cba4dfcb5df0446843a33a4cbb27c8f9727d1ab82206a96f1dd7bd21faded6a4d382402e237f4a598cb7027e72877c6f851725231b61a234433077069bdc15af7f6ce29a0f34ccef2b020e482c88fd9660798a28519b58434b2f184f1fe42ccdbd2b73d824cce1cbd42fb02f0e69fc6da1822ceb4de2adf2f1cf3b00e8db6f1f8c3186b92ab51e97a28de072688cc04993a2571e90ff47d9fe0bfe5795d38a4fcb84a6379f2d06fd
+GCD = 535795a02fed391ba9dce6c4d2f0943cfeb85ebf08fee668e47a9624ff6560d48179cce2aa68d9b0e7b2d5fe9813f0595c30cde08ea7c7494e0020ccf4de8acc37ae65529db3a8d831aeeaf19d5fabf232b82110cf929f76ec4626d
+
+A = -5f0e8cd5b1c351af4bf4d699641a5e656b1b9fa91f223ab36862ffb575f3381997d51871473a4d4afecb6761559fe591c3a110086b5775b1dd70d30222eea3301c570bc0e131f691fb57da568654b76b221145b037a1f7f105f73a2ae76ccf4e20fc599e97130ced1db18812cd221fa8b49b0e85de79edf54ab64d2a95be4fcfb6d0336231cd6a147d8a0341004678552752ef3fdb69eb4b6faf38612e89491f8cab5a96eb61657f750d988969f04c5b0207cf7cd9f5d6
+B = -52764c018b2d65e7f755874029bf8bbbcc5e9264f77673fa4bfcaef8b723ffa066f698bc19d7ab721469a4365a74523cabc232dba1c46716f9b978e38dd137c25023b4b8f743a6ea895b20e0874145569066837fc30fc2ded5bcf0b80fe1bc830730dfbecd807335215ac84d03bf627733c0efb66c5bde2fdecaf2e77a669beb2ceeba07f5df07f53673b63b58355a58442709cf1fab5c5469d40dd8b11cac7ce51bb35075067e2d835c1e5cc4f78700938a8b6317aa8e
+GCD = 19e45f548d3a5ed6005bde50b3ba779f5293c1b7c1caacca6fe8416bd43713853850b931633e841220779b34f17c3189259e1918fcb387c0c5aab8b9a84d678f890536d9ba8996af54236df0716f628ba7484a27efb7373b61e452f2
+
+A = -135e3c4b8bae82fa117e62ac222a8d363342391f7b92b358028db2a868194841dbee81dc12c2ba38f3a6a2e8dd340262a90879fa9b2a8972f0c274365cc8e941545230b24147c17417ba122bc7b4ac1b340b088d476e026e969926a7c30e182d9c47bab846d83653e25d7b4a46c95d0cd31a95dde12396d8c47cc934ec46de4bdb460a8de4bbab4d8ab78528d66ec8a8027e6411b6de939f09d6c817fa8fb087f397b77d5b57080ad12dce0eedc7c86c5bf4058847f7bdc
+B = -e6ce41ae73b5e3131b077d557b8fa91ac0ace8d1ad8bd66140744963b87a4302d2a5f180a3c2a9bbeca169a36105ba0b33975161bc16694c8cafaabb2f43e8d615559cb2387fc4d95922043b08e3b574a4800510cb0410c1b09817800fdfb0ecabab9803a65988c1718adc0da73fe38f886a20b32a903333f837da8fb6ce30eb21e256b4f6e6277b3bfedf444ec4d61b4c90544a6f59f261983ee0c6714faba622e66b63c25283fabce8a112f36a56a6babed2171851a0
+GCD = 2cdb00e7344c6e33e2d88b25c6e8c40e079ef4d250d96036363d61d3576310f5a92b1435ce55c30c71dd61d33b15473566699e35e8e3fc0ba87eb95532d337508daf826855906f65226e07846d919c98be5434dcf1299b836bd462a4
+
+A = -14e1a1ce285b72a768e39e0765a8e32f4e554245649ed49679bf960426ddc3f9b119025747a520bde71fa55846e2ba2ba0aca2b4d2fa56a92c69b522140bbd7771e60aa70afd50d4da4b5d2bdfe0072f3b9d5e83d2ec57b481b8eec1795f57c90dafdccc4bcd69d7e1deb2cf2e3de2967b3f427e75920bb80c94aea7fe121a37efb17aed031dd5afc2b03c0dec3bfff2fc243e279e76fd80c4f8dcb485eea9865d544a79ca00c485be82a5ea960e602573cb50486af3e42
+B = -167df5b5e649e58cd58d2f77d682b8eadf7f46deced6ea6c94c974c00f145888d21f22157a60c0f3ad4f982b1398d42c34c4076c739da81136840d0227e0296eedae4053b223c87ed2707084fd779d4a7a7d698f1e4dccc2249597ff739d9e9f54303035a8fc955985a6e8968f80d76736797faba4405de22e68858e6ffc5c9749d0d269692e69b9a7a865443211fd9c43d832e2f0b85b2b4adc1f357ebb84bf0ddd2d0d75a064400e20e27e81762c50fbf3a4f4cac23c0
+GCD = 39c387b62b5e841cc195294fd31da851b01f2c7db1a34e30f55cad5b3f72a1837c5e7ec2472a6fcadbe9e10fbf604128f0a6a7af509d25043a9be3388d6f7fe5a125cab09e979833c5971d32cbe5ce962c1d875aadaa80000c3f1fc2
+
+A = -108645f4bdc841cac8c0cb5f9b774bdaa482f8be2c4b443752b4a3bae0407bac40a9e780efa03045d44a242e030c8181ef4562ef81168b9b0e34e2f2a5e6a554d75a79276d189ba880175171ffd00119d79f6c990d8690e253b9cdf877fa91daeee92abde1a6ec6074cd8ad95abab6621bcd321af402984a54a4cf2971cd8e17849be20c5df82fd281cc35684055cfeae9c6e33f97c9591c0ed34d0ce85e899e1faa19314f03031168eb9b33660ce623940a36ccad72a621
+B = 9819cb6792f67e55b30e219c52e59e3a3b91ef9d4e276266ff8643395d67a3da8dfcd4ac371995a582c9d406e04aa4bdd641eb88505376e8d713dca9ba097dc0d045702f8fe91045c735905bd28883526f8aa3fa29cd7aadbe82281a1f680f09a07d72ef3013bdb6aa32cf7fd1b95669a3a80e36042f06f9385e2286b1cea2ab6628747f659782caf098123c4efd6ec3488550d1b33d49284fac8fe229fbdf89baf9a95572cc10db103cfe39b806280d4790aa7f253553f
+GCD = 4f409a349256b7f7209d64cd1294fdeaf85f4cdf9740dfc77aad12fade6bf3025808f813ab5b8d3980c655323818c5a026e6cf401a7e69f5c4a697a9d8bab976a15af22e92e4261e760045330f735f11b16987ee9f1c7be0243f4e81
+
+A = 393d46ceb9421f76c9db7ddaf0d23000b112334ddb12871eb3054f0ffa32fd4b22af6d86581bcd13d3330cd1399772b287539c80f35f557b291c3d2621ca139e0e2c61d1b49c7d22b7894c007270d5f2a3bbaf50e96e4656711ba209ecd7eeb5003b616aaabd9ca31acc32bff72585c82956237fb225f0d25fc1acb8529a86154cafcd07962939a18746cc8c3a867f404e06594f0e2533ac64a8112d7532be3869c50709bcbb6b2d441c5ab6a714df7ad699a1929d9c4587
+B = -1dcb1a07028d32049cf35691ac7df45112eb0fa8620c8a2b92cce874286a209280dfeda74fddde07f107657f935b7efc7ddd6b65be374951e56378b5848e55f8d19877efec0de3632f15a09b20af385f44d0370318c6a1da18056dd5e0288202e2e895fcc6941f05ce7c12ad5c0914380e85085dd377b663a76dfa6f6d81ebd6e0d34ae08f453b98c406c9f21f66492b98bed5d0a6081867752f3116c27284b8053f96f37e497337429672accf730a38106fde6dc997f983
+GCD = b81edd7d0dc9561b52ecccc39d71b5bfcc9952817b13e924b82d44f1896c9f3e407b1f8349cb4bd7347a9d5dec605d4634d3328e99449ab5b92ffe2511c44d2a692be4f0b097f75d47bb74b4997c7f8c6d96409b0ce1c6014f0702d5
+
+A = -15444181c49b9196b94db495519ec7ca5aa14e9df79c25967a890a1c198ed7473b950585259896213aafb4debdfa6224735743afbdf7d1449f8a658b5890461227b0b87771ba5f3f0a265ffc9c9c6319b502b47b8df46f78de1b172094b2352521800e9da1f3132b3b47ae1330b349acd15cd33dea1104b8478c07136beacd3547bc71a53360e8a0f2b0a375a55f49d40aa285aeb0e8cf4dd7889afff0e7548248746ac2d4983870de13b843f3667120450cbebb6e388f56f
+B = -c98ab3680d4595e701a5264e0127337097f11a8acdf9dae43067090023e763fd780cb858efbe5c6047caa0aca4575968eb3244076a73bb730e36cbfba2ddd5d2ef51c43db9837097f8d91172cb91f2cef9e84a6b23049c0ec1ee6bdf44ad10880430a712ea2550f9dfafb3196c4791799a5bfc7ecbb886935ef975a01df8d1d174daf56357ccc1b43fec4b8507373530d5298b4995a88dcf4fac3b97f922fc35f285b66a0748054670819bea3db9dc718e658b5058634480
+GCD = 15dbbb82f5aaa55b78f548385c9d7d8916615dd78be7b1164723cd7c13fcdd8345e3d0685ab8e61388d30ed69495670b7dc90e972225d248ba794098d52530472360ed82ddda7fd8eb360dad049e551b0c90fe7811ae320c7d0b64b7f
+
+A = -316afda744e782716e6434eef2fc0d91994acc80914d3bc594a9aeb00bc29dd36b4be12e643b1f37dfbc16f7af519ce7ab729b7dd71f71d9489e35b9379edeff34f382356d66afdb23d5fbfe7749787ad282bea8f83f5a0d8fed03321d137e0516c0b8a7de6f4fed758828938b3e808fc32b219936a10c0bcf1ff29231bbbf48f18bbf097fd73d44d421c343bf78c86142b7a24b47c7a233c67d709f85fcfede53ed44d9468320a154c4d3e4639bc008af356842a030468a8
+B = -64e249d32f29db88af8600ec23792defbe572bb66ca4734ee7c446873b72c8233ced5e4dc7fa48d5deebc044944073abf6fb14c816ed0ff6e13893ce58a5b82b642b1e44b8896e70bdd59038b87e750207b42d5968886e1c46d4c20dc0be1f8a97210f78d7d1aa46937bee7315cffa249b27c2394a9ab6dcb06770407aaf22ea66a52e51ed44aca9d5c6088ed30e154ccf79ef64d7dd025c6bb4fc3f0f96edd1ff8071789c56dc8b1794f8899778025ff2dc2fb75394e2f7
+GCD = 216c4766f53d1afa59b1cfb6753dba52da29d2ce6e57e6f393685699a355df58c148d73edb9bfc3cbc51aefce6edb5eeaa2149057a59d52a434914cc1743508899bb35ba30b3dfb998cf233925668597cb6d808625ac27a109de605bf
+
+A = a067d8f392a5c8e3d7c5abcb29d3c3161488ca0d5ce4ee7f820cc1bf8a8831bb452a29ec61655c5a0ace54f87ef1cde7bbabadac69a674e1313e6c199fc4d15aa3d5932d037b7df80548f2d2e0db2b4bc7e5e3e47a40e064774bf40b454295dc7ecf80b4d3fb02e355ec3d9457d35266ed20e13137709fd04edf2ff55232bfb62ca9d33ff53b42c7aed320e46ac0b0cc96173034477c6ac4662373dbc9583866c8f1a0068b62f92c20368ac39bd3542766fdc101ed1643d8
+B = 12e65bfdf3b8bb3cf43a935edafda44db6ae054f24053d080d44d366452f1648e04c1813c0b230aa1d954756228ff7e9b0a8498de305b1fed1c800424f03fe9f9da417201756db9010142640ee059d2ee963f904b58691f308cc1dbf8eefdb2353508b329e0c535bc7e05450105d004f0906c6fd1c444aeb22fa9520b265526f72010b84db29a1fa26ef7b7497a1b3182324d8dfcb7086ba221dd166befbc66519ba6aaa5fc8a01faf5884ddaea23dc7360b71991a6232ed0e
+GCD = 4d0d17834c1be77caa433259a55d89849b4140bacb7274c704c272e039ced5579311bf499f7bcfcdf812a45a35d811eddb4623f7dcd3cdefbbd7d8ce4266be109dc73eb60a1c396708673fce78d22c5cf9baad087f82655920476daca
+
+A = -30ef6b0fd55e5bfbba9c45169f4404e07b8896f95764b9a89a6f2a2647aa58199af4d12e9d2d876519bf477ecd3402669aa321ae9a4ac3c8f71d82a74b98af162a18af0c820d78610208b27889793dbf77ef88bded6ed0c61b46214f44886826cdb5a9aeb1e121f6efc8f9b0caf22739c827fbc4b331b98a607296615084aa2177fa9d1f0d7d0ccc6ccb99c2cc7b31683bcc8ee216613b08fdf740c20755f9adfb3848e3a2f4ed855f88896409fe8c97e460a7f42b4b0a28b8
+B = 39dde6cc3d789a25800989f0792ee0e1803084f4328920330372e37e11d0f995057b3a260e410b6bef5ec8a23ab43af52cc3b529e95a2737bab99e50db60060e4cdde56e0713db678da5e3f1d9a93e3e624075a5b3e6adde0517962135d75c895db1a0766aed306853a181333ca393a1b0907b7554032fad51c42358bf781bc86abbcc47e6713baaf88689628030b64b6f7ebfcc359fd74483b3e091e1ea9bfef9bf95cd7c1d5536b29a3a413b94fca7fd7265d60f8e21772
+GCD = 80e0377ee214f93209ab886d6079e03f6c1c5341c81c640ba2ec846cad0644d3a2a70d783f56d5a64e4af899fec3ab4a18b1d48b878413a4ebc872cd9dfffd61423a2ee6cee5772a3bad154bc32ba37a3482013dc1958e6a2cc0bd01e
+
+A = dd0e72f5ff1b184ab3c0096f90ef037d7b80a47af8b6eb92b9148487fa774087dc320b820f2efda9efb145f67bfb26e7d4266c0d29cfc7e9ed3160b285b3d96699975a79ed2ae5af47d1e0efbd883b70a54a2a10754bbe581a881e0209efd5df3de7020812f9b49733d17d56a1f88b22911af5c8d9201ffaeb2790002594fade082008cdede850af0560c894de3138357b51bf444f865edfe12a37b156bc4ef689f3076110f0da119889d67b12d07978a89d46922d555623ba
+B = 19a5303d92007276abb716d376e08550cf4cc5c3ed574d9c10899d1c87384ad14ff56c05aff3deb7423c677261875acf0c2d6d26131e4a0e98d3712d1ef8a669485676398f985dcb2d6e815530d0eefabcdbb9f40b38557d1d8769613f1183af561e931116fb643df7c9e371cecd58d37c1cb3acd60018bac57e6ad48a248b54967d9a86a0305568bc3b5d671a53ee743985dd8f49e03eed24e656ee1f29c1538ab1eaf2925a373d6bf60c74a6a60a881eeea1814092b4d196
+GCD = 36ed85a23324d6917b6d3ef09e645f795917c54ff5d9a4bb70df1bfe9efe993e2fed853a7cab8dad3487996e42badd803e523bc59a5edf6a066a63c73d7b8333e17b94637ff6d2a0ea0771c118e26e4200a27c5410d4b5ab708fa997662
+
+A = -34e7020e63401aca126294e7a15bd3ee50d3a6fead10d18231f65f0ab184871a2cab9a95f3b44d11016852808400bb2d6a9302454efa11cfa28015e91824b00a1338d3faa8f32d04b9b774d77c3366db87e68b9d378ab8a7dfa43fc31fa9613fa35622964b1e58852cabce37b7eb6278aa853759216a10131b9bc1708cb176240b51342a7e63304881211401fbabc7fbcbf5fa92ee0c0564aff0385ca59ecd53b72207c25a465c1630798fc466cef584345d9a017129c8fa57b
+B = -e2abdc1ab0ec8ab52e82e4fdd544b9e00f29d6c0f6142719bc9a6eb2f092ec3026751a99e9ad9989a5099355d169599cad3c8d784db19ed0cdb406db0d8628d7263fef3e7b8fd823ea831206a567705d849d31243347512d795e80c7be707c4208e18747b4ac485a7e4b8313ede011dbf8f1857e2bad20fda6688a1c11ef89a06ce4b3c49c55c7bed1deea3bceb4ed646ad5ab3378c18e19fb7d1cecf20d0d3b37827bf322e5a0a88a9645e1178265560e767edd5d5e6eb0f9
+GCD = 3a222edc8f0e632898cb45b3ba1005b2d350d529b3ae5676f80f755fda5db61b846256155c4f05357df35153e844b9a465e4fcdf63362262ad1193965da4687b2faf37c2c7407decfddb017f578a417c81bc2a50c0108c288cc9697a8d
+
+A = -a752426c0f0ccfac667bc37a750d1d1aba3ca8aac71f78330bb3339d1273b8a1777538e413b8522496b103da4207da94a03c245ff91ba4507e70e52d0e90bdfd99f8992b0db209bd9d30760bed5d6f4aad0b7e845600cc81f61d59e8502f2c48f5f72320ad6402c60fe41d71bec8088cf977361751f6e47a38a079bba38caf05506d080c0d097a68d1c8575ad26e2122408e03d22518365cf9b1d7b4e9f16a8c6a5fc30cd0fb65d428d3f06e9b1ce10a30a8bf58d00d0fc048a
+B = -2de71a8a324bfb5dea5ad270b1e9ed80d15494c8d62e12f31a835eeac499999e81725b923c1e22981fcecde12e9d265e3defc112ff49ecc16737384e21bb7b83f0fd5f9e698c83d81da219d69134f194d686e69ebc516885e86b0bf8aa5c94cfade5f204d6dcfab611f14019e9af35a9c59305f3aa894fafc6d5abb4b7f38d37a3d208a5272e041cb4afa5c38659c7612dd29c4cf219090ec819d6bab6f0617bd4bce8e0c3787037f10fbca6e8cec78c0670d86beccdc5b52cf
+GCD = 4df63a9dba84ec2eafe43410d33b8753c0a11eedfdb796ea333e12dea11bdeb41e6b60f4f24811804266efb7b369b5f874f849405cc645a796a62ad1472290f4bebccddb66de6c9dd7aa51c4da6863a477ad0f3cd6c099ad752b716711
+
+A = -2c6d0fe2ef413d98b113fa992b7238a4ed463d94d5d891bfc038e56cc6a16ef630aca9871d7e281b8e7262bc8739c8c358ce52b744e9c371f640d03cad874bae5830aa818287a710b669d27f6163abaccaa89fa98f4ac8c0c11177b467d30117b7802e563bc996314d8f84ccfaf577eb89268f7a9ffded4371e7996c81b0a071f2943d37063a86b252441365699d8454ee351222dfc13b894ccf483de409e6804635d1136f8c7337af463011351fae93b3a19641399da23eafcb
+B = -4ee5e128e9895c443166a3cc76fb6b46aa40c0e845cdcf85b01c4f36b3f87523d64a623f27d62cd818ee138eef95230de9022242cadbdc7251af5c4503a88b0dc4e72ea38c82652c0f459a712c66ef2dd0ee77f392bcdcb7d4a7a87775b247b51ff5db4e3c8624bb8e98bf83ef70420435310de3358f96dcd746e2d2475d39dbd7a3eb9654dd524993cee6ffa04c4f90269247b91a493e5ba736efb87a05e31a08e752d46516d4d129a84e8f32b8d3f6fdfd0c891d524a010ff1
+GCD = c87533896b5b213ed2a49505683bc75f39601c5d1d57681cdae0d42d24101226aeaa059e51bc14183958d7c6a196d5b698eb194f8c6216a69ee3387c470883ea3d3eea88664671e2623d76a887e918db7281fcd5134b3077840bc14585
+
+A = -bd0fa3e41b10450a6bbb3714073106e5a38bac190885840a7927a3eedc9f4849acf28d72cf000e121b631d982ee5cbee7cd22afc559f4cd05d04d675f5e4769f7a3898395cae10f3062ad483be985803d454c9973883b68753b21069be6eb7be9047698c36d10db9147550fa41eda6c0386d7c50dd02017ccf7fe4669585dc77169fcb668ad0fe6dd3c5efb72613bb7d7b0660c08f109d746c129dbe487e8ae517d4d6e75d00beb324436eeb9c06ffec8694c3f3d2c0a7b535ea
+B = 1f413b0a5b91c93accb04da98aa495d27ecf005dcc9347e685be5723bd8512b8e7f38162bcbaf2d4f7f93ceee46ec7759e428bf525789f5fb59d5bd16fe8e2789068b2a8685ea18583a27f32ce65eceaeb64d9ddcf49c940ca628f74aa4062d3131ec97d83432529b04e1bd1fc6108a6ffce161229d898e5bda1d4d661c8f45ad85e8c90ac60fc53ce5c7956c00378f9487edad5a82290c235037fc99f36f9782cfee5cd3434d886574f6cb681349eeffe1fb1837f2b9ed5523f
+GCD = 11979410fae8473d1f5bdb34b44d7e11a6cf21f343562a5680000f2ad68dc2d1d9c7d2f7119ad7eebcf55d24db4078aaa97316597f351e2c82e3a0e0107d4f029726cd70245141de0bda412e8056f8352271429fa4e0ee7a8c7e99c5353
+
+A = 5f8ddd4e5bc3cd78fa8eaade54c12b9a4247bcee0cea21d8e26a7793becb35a746e96d018b9344739c52c6982c5cc4d46c5b2256687e40d156b8f4791057286875a0ab3ced331d88584e56f0a3580d89023f3d1bee4f4626e635d0c114dcf1772ef007bacd2b0c8b70ea6841bffe8d43be9e53cf7437d6d995ce5bad5c6f0b3f375775273bb3226893406e71ed3a6f1372033a501e69d60d2321160b55e7149d2494effc861c86ee2f1c068a50213ff512557a83f8b8a855a6fcc
+B = 31668a7b453c3df62edc5c9c5a098be6efd88d72c3ef1523d9f7d146ecff154b1085fb3ee21047ca8d8ece6854adf9ed28b96d32e0c63fa76cb833e66181d30f883f4989a6a224cc6be637c0f00163fa3bcf85ccf3c52fd133fa56c96d127724289cb1e5d029b2769d3e90cb7b5880ffce2a445adc75d4934b810c7d2bdffd8d771f77f5d515c4b33d5f2f3e12776e4951d851d379cdfc84afaede440c99940c40a0ec5278c0fc064aca85237088b2289c54d9b5a1c04114d570
+GCD = 3abc4293155c9285d194d9a6090a7bc21e6774f8a485e47b5c1bbca223d3510fc82ffc2b10cc8bb48d71cb047b8fe5ae0097aac81735e645a121560dbecb51bfc66f562a9ba3c0a6bfc8f114aa9abec278b2e375e5e4255e58315c9066c
+
+A = 10c145186b93534cf2a0eca4112eaed93d0306a6dcd69728bc0d2793e54276089386f082f74fbca88e371365a3408f3af48d96efdde0c1bd1b5834662e12c53d232b795274f689249a1cb84a2ae491b47a269c405fee56bf1a315178291449bc8660654131fe3a531f95ee0429c876114cfa7df7524800a127f2c92de2f60cdc7bb3ed1ca358eb14e9be6cead1515055de2b782be054eb2d5ca00ca8e08fe8ca3277ebd95f06a9d247c6f7317486427803cbee192002f882e43300
+B = -1395faef6301135b24663546b8efda0de698fa87b43bfd754c74faaaf709556d208c87d5877e9ae7825df647ff33be0d0660e52fefdc3d431b81b61fd254a3225da1b385d52038d7ae0bb307c92e2f78167e1ccb730dc9ed3d077502a3508e7e834ed5b8d0a236434354f8c1b87ce615f1e257bee383dc48bda318719d97e7afb4bf2e4bb67ae8a1cae0e671563dadca529bb95c2d1fa1f62f2befd1c92e1031dcf809e190092c868cdaa8c9c8745fe1aabedf580beeaf6791bd44
+GCD = 5feda34ef7cd1b55374506ae300f7dd568ef58f1e28c4f7e3187e12b2c09a380bb40ad2969e8095de5dd851ce6ac8b35fdaa90af30f335650fd10a14d586e10eb654bcafe7569a505419412087b5ca9058d68dd75a79e5961eb577b5ec4
+
+A = 33f38e6e451ea0334b00847cda3f772ca9226e2f45db9fcf9e23c5995b453e831a3e4ae921a0e9e0543670007f41b6225961e3b53bfc1a64d07b98589e1e951e8e112565e957677f2a89b90a24338e8ff8ad9feef732733fcf29077cee51c557255e107958a7dd471b0ba5b3c09884e1135207957ce137ff070f87ceb331f33eefb5689700294d77cdc6f339df888c085d10c1c529e52cc2221f2b6496bb229d3b2484578fc77a7b71cbeaf19335ff6a289a1fdcf4cbd7ccfcd906
+B = -4f23607f4bcbdd8f210145b89a54048c7b7a37aa08ce24bc51da01efda95ee0517382c728cf495fb35039781547fe9d187216993003c62ed013870eac3f82880a13ee3b6710c665148dbfb67718841c7b390a07f7d0f314a62826b8c364166b28e369b8a7781e5ed0cf0fca432662051b1a1d9d366efb73750ae18a1adb89dbc6773719b2b0517319f0426849e88ec5c9ef5ee87a09d29e9079dde1a42aa0cf75c2b0697ec0d4e2c4c8ad7321aaaa591b0034809fda0fb69a24030
+GCD = 1685799652d73d1d62ac270e3a265583a7384c4eb5b72d4b1b71781825a0b6841e15c75fec36d0ef44191c2da0980f092de4d83f0ab8fc2339c4d4d02aacfed8ac786cc6f9c844d0efe4670f1256dbdec2bbc963820dde4cc325e684d7a6
+
+A = -fea8d8db29fe24d7cfbd1e4391a77b62f4b6bf9b315068986b187b8031350a89e81fde4d0de1c5dbfabe0f6d83224736e3b3a8c3de3571f4d7178ad8a78e00589b48d7494b77f83a01d99d4d4b00c5521f2781a9f1705cf208db588cf262139bdae33934b43cbc8cfe3225f37e51f9293626c03323457b2339cc1bb261e68916d12413320cbf9435e2836c507c3c7d3bdf21ec7a7565657c6e85b241048adf843d6cab529312bb89d5b03ddd96c9d6f1974b6dc4516dab8e910640
+B = -15d11f25275bd956d3993bb1404f6fe787d4761a3977e2cde42629904646cd6c96306afd54e4e9e7e666c1fc05636c835598a4e0e3c636a1fe2875761853b9234e290ca5096b48158e311e9a1591e594c440c340e6bfb6dfac712cb90cf113cf36234363515698118fce00a9804d641426e3837c9ba288d086960f9ea908761b9dd1df175775c3744c6d7b72fe8eeabf8e75dbe5fb413e1ccac74fbac29693893fada4f14beeae59536e4509d24449614ea9c46c0a4b4383b464c80
+GCD = 1be167db4e8a64dcae6e806a29d7ec96a4942b67b329f10cbdd88363c02e94e2a2bbe6951fa272719a2dbbc515e8fb59bb01a2da887588e12e4b69e2927e292e809faed6df8bacf07516a37a843a1f71540c43da5f022bcf774990595c40
+
+A = -3b7162faacd65ace7eb8094d0522f8feaa3d920c5cccc2f60e92ae1b4a456ec97577ef7d4384c9dbc6e7146bb22b478b1ea6d1479f51efc646f22702a6c01d73d321c7ce093735c389ef2d2660200a527452abfff7e91c8dc271d3d85bd355331178c8ff01e76416c23b26c5ecc81e1332656c92025e78ce53852e3a9c050bc15f57e5618401619ea887099fabe156529c79e5618490ab70233db1e07c62006a48dcb8c907a3c122e279e2fb5a65ebc54d8d44633a438a6203cf0e2
+B = 41a0bfc19f2b8f7de9dff565fd86ec129c3ab27ad884ceea112fc5ca95bae42bb85406611b7ad289deef1ccdc5248f9d89755620b2e58b49a3fe3e9d9544f260e36d0b644dfdd48e4986934d75b131b6998c967390fd5d56b2dd06e1c54d0dcebb0ae3c3cc908e6d75647144679183cc330ce5f9001262f3093cd5b6ee31e6e902eecba72ab79ca8342945424b8fb9ab61fbf615c93f745521988a07b7fa0142f07c150513fff4b5ea673863a861747444df543e10a336238b3a3a6
+GCD = 2083cfed43d42cf163ade1b27b77cf828d0d0bbeaf5f1a024513e5dc6fe533571497cf1a3702f816035830f9f0bf71e83598fb864847fdbcfc12ce9515b2a1ae5606c576723bd251b6d84c8666c01287b336d2c25b9231778e36be0837a5a
+
+A = -3882009372e2a219aadea3975ae6bc5030bf0b7fd08f688cb33cb90c880b08ba9a620a296dce0ad2a7a1995c765eb1136ac53f76e892e0b999d94c4f3633f7c554ef23b8a8f3fb21cef368fe16fcfd2a0147fe9f0b94db71c8846d15cc04009ff83d156d368044f7122c051d1c54f7290acdf26ec5c571f77dcb268b4a40cca8e7bdd171d443e29ca48e04a2224155d5a5652606040e4fa5c928513dd91882372a017647430c259ad9114b0287e08517ec70848fbe77a5c9ccf1ebf
+B = 888de61cf1211367b21ea81b129dff1e05e4e65e78348f60639e6daaa6cd36588140eeec8c2890dacb2625fa24e86e5bad9669d17de48a8661234279844a62862c27e2193f18c8bb3f2cde5dc926399ae762e7952e3439aac4ba9e0eca050e7be0701d9248a934465dd047575419f4b681e2e845c6717cb93a0e45ba785cde93bf20074c0a3ffd2a24c54dc81e4ec75e48215e35bc6edb13f7b03a13d95e10d6a9a12e5f9f2399f696404277b34ad5a7c90fef1ec0eccbf4ab72f3
+GCD = 53c2dbef83aea180e153a69bfb75c6d4cee0349ce7b5c305ad191997141d5d87cd1467c103b244ca8f4abd22f76aca8b6f1bf2fb9b3789625e356f5df89c2a8dca4774ba3ac46a28c5dfd48c5569e8818f073d2345a7ede918051017bafd
+
+A = -45cff50b64f590c8cdbbcf93e1efca53100192c876ed43725f7b22b8abeac5d2905bba71bf9bd8da7e989f9acf12a9bbf6b3eebc3f7a086f4f38bbf545ec08cc86e7dd80325b7ae1186741df777d7fea013c9556e2ec971d69ad3d02483f2987b0cefc515acaffc5b7c5b38299b6012b4052ea58e57bbd8a609942c0e2fde8b223048aca76624f3b5afdc972acf65fdcd21c43ea82e6598cc99e9923ddc2be3584918d8404578641efa9adc39938fcbc861e480f454b7120cfdd5c5a
+B = -a73296866df9b22ffde1d971a081b56d1dfb5396cb16de99c528d946390e24c64c36eee5fa0eda797070ff16596109835711557d91bcd56ee7bb58e4bf5113d22c40d127d8dfc8f621d0e07a849ab7c90e3231f6d550afbbfc0c45de7afff83b74428feac4dce9fc492fb10ab12dc66396d6d217449b12398d66aef94b22152da548998ba783a241f2c8f072017fafbcd764f1e8328e5cf5f776cb0a66b4adabd7387f3817f1ff7a9f464e6f247ecdaa678db9d18a1b0bf3b4b2e2d
+GCD = 912fa0f10b1c113b65dc70a92f0cfc0d11a32627aba2b33763c2e184db5e2e8e35af05f03ad3c300279ca798e404dd29fd141dc8405b567157b4133c1d7ed6f00ea5ff3db568fbcd6d4d0bc7e6ce563e3c23eeda145f80b922d85278c705
+
+A = -13cf497921fad45a1b9ba4f7c26c54215b0a0571d30bb10fe4bdb70a83f406b8918beabb58bf10af95eff1ef650156aa480635893255081d0e7a8142588fcdc3150f6099286b2a2caa59cc3001e80ee343c04a165dd411b502851da7dc688bd1177d1461bd90bd08e5d08727d222ba02bedc5101a8972600819a7a97afa8de2e14976bf1aa2f0d5b3a6142ce07223049bedc33344898fbd28ee57f25324a980d0373e3704a7efbba99aab81ffade447fc6d74295675f4aaa3d10d113c
+B = 8ac932d7bd1e88ed5606c7f16ec9502d5ed891053fdab61ca1281617227a3a59d090b8726c19bd8e359980fed9d499a097d64fb56674a485d5f1097fa9eab486e7b1677599f7ac32d545ac4cfe8ee077263a5f97a1185514e22a5c6c6d909eabf8ae1e6fef51dd95f63d5dae734418862327415b3bc84bb0bb50cdcfdd986a2f669c0aa77008ea86d3c8baa90ba38d4c6ac59b678c24e58f8d75e0352090eb50cb6e7af09305c14b76d6be11ecfc4c197bba65c6ea8643e84b791ca5
+GCD = 1777e197cf67b614481961017f7ac81608170c0afd3198cdc6da43de4eb681f03b3e88c91a10119d3618becc58f7a939c0ec9980bc908e584a66276daa0754bd2f40ac33e36b66521502088a2eeea0c80680cbda285e9995bf60c92a6fea7
+
+A = 383e87fca5ae1b66ad21321a56a70b195bf9921b26d98747ab34a3c6058947749b927566d5e50a70696f9a0ee336b9bfc23799889c2493abd5179867cb7e47d0f898bce268390ebbf60695be60451f48723682194cca95461852358271c7a3b27767e214a563fdba3b26d83c2e3805027ffdaa53eec7c8d8cdffd94660f9d0adf3cfd2e43bee893ce330cc0bfaae486e066b5e67eb2204caaf8820d27944f10e15b025b93d390c3adaeea991c5b530cc7864adfbc969410fa23d48dbe
+B = c9c36c512c12d2d95bea2fefc1f9b6280280bd0e93c093366ddc2161f1d119718c8b8a04b26836deb16e88b7914e4561af2e9677f883118a0ec2da299a8b91634950a0148f1d724d9e51bc4780b288f3cae8eac2e2a4643e0274a8267f2e099a29801041a4154b7fc1984b2429399ced6b56c87fb9612c7e35c8d8c9c47cd9ec5bb006cf1fbf09fdc1d14ced9527e9342c48986595dd4787983b31657a1403132cef1e1879b2ab288036a0dbdd4dc410b1555c19aa1901763a837136
+GCD = 39e8fe73dd597e986fdc5c6ff223ad7182ae3ed249ea4ca732627f5c5caeb58a915147e681b4a0d263e711a2428170ed8084ffdaf5fef57d514bb0506d2b1da4810d5b933e7eff0f95996deda25e759c207af1b092860eb9b2f7c601acb52
+
+A = 153e9781b309ac5bb022c348889c45e07f70ceffbcaa33a954b163e89290805f06254d96ae7bb85f7f11b046ed6877c275052ef09cd64b86de08f76a8906df1987fe71105335657d61541de92ea4ffd495e2a2b4deb50c895425cdbca5037c22d28b128bc6c3137c49f78f540dfb5e9a7b4a657440ff1d7947fe53813c8435a49491313d7e0e919db38530370ec3208e21bc9894c3fd4c829d1c43bfd0a03c0b380225f86138d65fd098a85bdd53e9084e19b6eff67643352a8a9fd0c
+B = -7542a60ffa12ed2330eba8974c8e63dbaa1f4ea7545cca203fe2ee3e96e1b9c62762e7247e3c8158206711bd6112b80f1375d3eab46e26a92a485e2feab46db40e99b4e906980fec76fca7b79b6766dc1d7270ac0193346c45cd4458b9abf93aabffd0b19469dcbf6ee88534db3b5c43375aaa39eb188707e6c4f026d85a2b92b8473b381584bca3da51cb30e03ee965f8223b65dcc0aa0ea810356627305969c2d242a13b46360414aacff6ec80b27422632a71c0dbda4981bca1faa
+GCD = 37a4b8d4ef042b17abb5737566f9b4557c7e6a0154c3b992946b1d25d79ffeac8a1bc0473617314b39b3b667b64ce3edb90aa12d0767ffaf26ff66385bb400979baa5c3ee284b05c0bc7e36ff5d1e28fe3b05bfa6fd8f92229dcd92e3b6526
+
+A = a3bca39bc2d4394ad80edf2610b39577c23c58842c14065eb3a9400f2ad6745cd65ca5dba479e40af7301826c2945bd2e52f9733dc0ca4fb578d0552f5ea89592ca8a730a4e46f2008416a03f78ee1c08b7c5043774c84b5f95b7e77cd06aca2144459e06dfc701b750048d992712dca63bab10ce6c29720a306e8e172da5bff450dd6e9d6ef808e7b7580e1e35dba7970a4dbdb100f89fef04b9396f17c59256a9e8d1021f7ac924fb44537618f13e099ed08f701ef422f0bda03a46
+B = -1176edb6cbb3a409ff23db30990edf979444cdd712bca6d43ae41e56199797d28278e93f880d4132bba0968651d1278100a3b80400f3083aaa98392d4430f1af29012f345b218ca3d5cceb51802bc3a61ab51881c451711040c03d9e1e362e274af9f288cb00985e3da678054ff3dbb21c0a7ca1b6f0696f46de45cb4e1329c6d496bcf35aa23a69f9ac34fa2502c89eced548611bb9af0dfde3b6f088c7bdf4f1960f574f570e8b8ce06921108fc93aa46f405bd06ba2e65af22c03dd
+GCD = cade030b377485b47d602166afbe94f938761fd442aea501ad6e8a2897fdca68586f1ed23815db3b59873790c5c2e3ef1ef65c1e28e94c17e64e9559b3a782ddcfda10f49a990a04baf876e670d38a404724b05d04e2bb29f79e9b184cd79
+
+A = 171f11142e8d0424cd051b20072366a87bf5f3e851eaf3445781667c161e56d064228ea843c81268328cfb30b4d6a0d5bf92fcc501b3e0accc3ec22aad82300379ccfc5a20710337b966a7a47f4567651b1fd9613e3289abd72338b28cce3de9d17c7e15ba4b83261c4df893c3b2eeb3458a9f1ce1662a3e1045db6a76caeddc24095a072b6fb77469654dadd7027e2fba3cf61432ce069a41d44526f8744e0645b121bdeb49c67b1eb0a4b3f8b65727118411b534e923a825a00712ab0
+B = -10f8e0a9173613fee5922fe313fdbb186c793f0720b3685325f5d9e9d3eff55e85a9ddcd7cf18d4c50783835690213d51f7db6dda3c5256082a54eb0e942629974bc284692f02c16765bf24fcb8b10d750d3d8c7213980794606392f5d2cdeb2e47a0ca3e368c5a6c0dd51b5089589acd04a4093dc7c1ddc9492b0de2dd5ed027f9f8525c87f02a60a0d8ede88fc54fb0e47943619c5283d943356d04fb18ae8bc81dabeead0daf920ea5067ebe01ec314bff84cf75724b7b9560013fa6
+GCD = 1bbb7c874fcfdb04344f837bacfeda6846b3af248ccbee49f138229ced34943abe509e1abca5b83028bfdbeb6c62c25c4634f8e93a5e85463f1502855efb1acb3529520fd1d9129a57595fb56180db4a7b3f4f89c5dbed8cc3e5a0b1bc818a
+
+A = -52080b23d46b6aea8fd13266fa88e3520c2922dbfa5d0bf41a171a771fc706d0ec6a6b10d3bf324f0c9d14e8c052d890474de79afa56ae4493bffbd6b6b63ffe3b6c429a2390ab3086eb6165210b7d377fdc55538fbd228dcd4311e0c793b9913fed8f7c8325c041e48e8916808368ad29d1ade10814856a7098b7e0493021b5fe062b33767b2f70e2a41f15b314de3b48c6ea0f5e05f185a770e048e47ed820731573bfae9e6f40a39276194342284fbd0fda9e7fb80bb5deff89bbae8
+B = -56478e1bf5bc2d7a535e89911d3f3627d19d9eec6b24d1290628b205fdb254588ccf055f60966de1d44afdb604b09b9eb48e885a4523f78ae07f742a0e54ccb776cffe091985d9438d8dfe7b039c52a52bb6f8bacf9af67717c6b29f0d9ea74304563154abbf47282de78a821024b0ce1e3f1f51ea78d1da12b2303c320e9267b497c04beb1a5cc8007fdbc43cbc98fd7059a634c36e3e4fc4db9e25e22b95f228d3fa94381a166fd57be1f66b15989bcddc83fffa6aa5aedb07d7c6dc6
+GCD = 3e0c0b78a0745f7ce354771882227e6b99bac48c427bd6c5fc1c2b0529e9d39485a94d225141950475b32bbebed8e331864a63cdfb4a6aedfaf07b39eba9d9c4e8fb1c621c734afab055ef27f0d09f04cfd68d86b895730f634b6a936bba42
+
+A = 6358c13a8109a6521baa86f1edf7f0220328cd4aa5ebf2c1f67e19e0fda95c471970f29af9bf6b947179bca14087ee21fd74fedd5ab669f9f6468fb5c7f9f9353ab5f3dad7ce3fdc4fee39dd6ebe5ee409c5846230a0998c9796f78eed6597679c39d2e6107204b8e2c01d403951f8c2728ebba705d0a97f6f0600bbb1b0d9349e111e388727efd7e88c65dc72aa6e77735754426e595adbf0230e343a8bcb52d90880c44b47e8ebaa37eb364b07cc3a407a9239d105a316f236e69ebaa
+B = 1375dd747402cf3fedec94bf5e5a89edeeb2caa73494dadaf28ea66a337134b4727efb89c18ece039c5e7a3ffee63733903f86dd7906858e747a9cac9d50483132e4f879e295bc17053a0823dade577df8979bb25abf142362b7ce7f0e0ece154dbd82c702b801a6ddafe3a7acea146ef0be931fec3141e154941c50269519ecdd9de50d72da27ab18becb10af5de2f448e38597b15b3c7a54eb79e7440e43b3dbf8d5f8eca470713b7415fe83f3b54840a3f644dff80a5ddb38e220d2d9
+GCD = 60906f336c3627c181f538917cfe666e74c54ba93dd8d013b178a9d1b31afdf9148a47589872c1a3e68a27ea48490fa438f1ec918590fceb665e8eb6446c508f390f07bc993cee9df4ecd6c4791b2909cab513130f278f691776bb6a2e11e1
+
+A = -15a7330abc9c378a42a04c4b798492ce327cdab32fdda4da62eefeb68fc271c9a099f26dc308058fee835605dcd763823d9f947042d6f441a5bf9010d4d9e6b26228819f053f84a8a767e9780f4761c693e93808573e556d7d034255db9d02882115f79ef8d4514143738e5b209099d80682815f136b04206a69c5ad283fc751899db529de2cff3ffd0c12a61ec7c15e6945526f25a8c5114e13e65bb801b4e7541566c48d8321f172d764db5f92367b9eda50844688d882a82fb3c0c3c0
+B = -ce07f69af6ad7179cc052051c99ee5e6149245d6d83797c466ae7df9223765a25bbeba50cf7973fdef40b16f897e06305cc2a8b8d490ed56ad88edc8751038aef620238c97b6b1f8c4e6881109ec24ca2a2001147e489df685ec24c3551a20fc1b8cf0b2e780e10e1a172220839a52907c6b8ccbf4e8928dd67b3e2d012d3a66b2f830925e08669552093c6aff84f9a15fa500696f0051c24615d812d98f952acfa2d473edbdbe41f265da1c5a8253f94fb394d71ac1a70f2b53ebf491e
+GCD = b93ab0924e66785205e35349bf98be32a23346baeafad2b343a1a92d4748bdfc1ad4ed6b48825f070bd85b54e55028551125d3374ab572bbae5dae0d869ecf1094619003d52505edc54997ae517e1e0e3ab685f22144487d6d06f70d2a6b96
+
+A = -10ddcd0194f78d9e9f305d69196f1eebd49935bc658f8e5612519386949324e4a653288339510ed3fcd0900a06efd20d0498822eb63f170d82e2f1d05b33c91428d225ba3b41be5d1f5101619f83330dab2635545d91bc349d23585369ac160ba8ab9f7d2950f0a681c3604fa7dc3026597b702c71c46a5243395e43892370bfc8c4f5d395493dbdeaa3495fe5fe3d4cebdf98914448947ef738fa041fc42b22c2e243d2d71d428f366b01f33aa95c873f1b1cfcc505b679343e8d53e5ed4
+B = 2de68ae2c1bd54ec7582f626ccf34ddbafa1230946cecb2a31ca2f11fbc40c4a1e5da8d125a820be41f9d7a39e7ff7c4bf4cf39d1a1bf4316b1a265fcca2aafccc672cd8e284294993cc1f651ea9cbfbae24c15bf2bbff1cc2f8222e496daf770a859a8766ea5d67bcf1a14a8612aa47f9b0081fcb28bd8885f78ca45cf092d0815eb2d9f7969f65074f6c7abf7cb4f0235768cb74898d9321c403ebe010bd23befd6fa1dbfa65b7fab3af9daf1eb9138c1032b6d9f6987cdb44c37dd1f2
+GCD = d71858582a93f899c5d648a159f2a96d2aeafcfc5521a999794fb41d9f6555972df70bac71dfc45a1548f8f6b70f56417c21dac390efb1351ed54da6bb50da2fde5438bc9d8bb9ab0f1ce8a83a81498300f091c7a4ebfb5bd668fd170010c82
+
+A = 752f49dee1380f2018bbc5cd3f747ecbfef03d5987ba64a830a7453186f69d7196814efaf9a6a1ce85d4866588f2bfae03f6e2ab0d4e22d06cbf3d90d69898f10884e7503e821487e3a80ce76b9ade991db2c25eeecb5fa75d198fb0eeae483781f0ac7e9b51c1a8d8a48cd82fb953b180c263e18d9bc687371bcda75a17065a02e11e734e86b1ff45d0046c70252726e618fc30ba2dcc0fa89bbc984d4ec812581f2d59121d124f74ba96b87754e8911bbd83c9532f5a151186b4986b90a
+B = -c96ed7194229535675ad89f0c34cf58c106f992dfdcf1e3733bf16f3ac0597a6d336dd09acc941e15f284018fe304b573f92139abc33634b677dba353b37e195bd7d7d3fb25debd96d0dbe2c5ce065140ca20e620a11af163f07d043b1415231d33381010f44280235eb0a47869861757724e6d583734f1c114838d3e9a4edc91ea15148b4e2fd460fd1f145cb4785129eb4e9ab7c13bb8b64814da8c8f82cf815c3676dbe9e378765e3df90d4715d7373c16ab98c749eb702e0e538dedb
+GCD = 3c0f1a13934b1dd36b04e0840dd0fbbe485de70d5e763c9fdcb723c6f175c849b0b34f9e4b328f3600e798e14329e5cc2414344c3d0fb4cfa737b5f2db97b54c718157abfcf6d1eb144d77ed6dbc3a6c9eb827ac3f654112f63819fd8170fed
+
+A = -4f22885e92a59c6be618f2e23dd93fbfbda5756837d89b72ae36a99bf1f0903e5912aab5d3dae911a000b90a7f93d6ca0886a04d92f635fe632e20bcfd94879ec7bcf8d105f1ff69b1f0f8745bf5e6cc4be153d938cae44f204e8d95d2b91919e6b8a9e506e4731789cb7c157243084f210cd0664f88a2ea79fcebaa3409a4947dba2742148883f8627c4da184908b793a8c0eacfd5169f3af221df7c2abba84941f7a80297af5e0b7d6b7228deb7776a577f930737a0b8412fb29f8ee2f8
+B = 6ace5ba1d15e78c95ab6a09249103a06cb866b51c7cde2feeac8639ef52d3a2772f168e5d5ab4f6fa00ffee6ab67d5d05635e674c8e1904d9effcbefaad50dfec50f5429de83b75d7080cce4f19be6cbf0f769e4a570cf896405804fffdea35ab35335a67816bab449b19b0998198bf2599fd5405db4705f83858c07720324af3d2625cb479f5cc949aa2f323e7706be2feccc1cf146b824beebab309d969dfd4cb159c7d0fa00881cb9113dd97513b5261c2ed3fde16ac5df19240330369
+GCD = 53cecb07df45e50cd74e12eb97f74d1c63e5e2e3d285cf4c1214b6b097812a3e3fca40e7a4b6a72aceb7a8cc68edfda6718db1b984fbef2658067b5afecc7cbebfe35c829d193d75ffce416233949f610ae92c78e06d9ea2263c7632f97b359
+
+A = -3e4362fc07e4fa12017301c9a4e3af1a0bd20a0f2de52881fb408e09ebbb4e8ad3d922851ccc1ae538e1c0c5a9e1322d3bf6d68da1c876a81d8639e2b60075d818d4f333d5f5d6026ce812e0df7cc4ce8e0ced7d28a98c553e871ff6b6da9fa702e99aaa1b53b126d777d8691045d6121e4cab7f5bd48737e927c7121521705cb92c46b1d26de708269064edf6ec205255601345a2bdd716cab2f04402355650184da4bc03ab3a93caff40943862b3d25d3fa6efb9ece6d366c63b48ef92e6
+B = -3d7d480b261903541fe6e922a4c6f52fdf67772ee0805b3ffb0485f4fcc55395d7f49c0ccdc910daeadc79984f8cf17ed5db9470ab61ab9681ff14ed7ade9052c72dec807e62bb26e791691712ebcab24843df7f64b22f8d4ca8cef028c32086778e570129d5c7fdd9f8b8e47d9830f7b268396dd9ea45c7402757a7597634cd25bb1582f269cf9e04f2f07dacab0f42c6ac3e35bfd4ba7c552c9d9f47fe0d71fefece6a6ac916e398a492d6058d3f69d93b4a1cdebea36d1bf6ee72ab33c8
+GCD = 19db5a143b0b59f4a915feccce1794878df40aab0dbdf6c9fecb620528200d59bd980f1e55e232c3abdde16631e5932e2adf3623af35ed42b4f7143c24cf5155198f61f57598254326eec0f0176d9deabf751d8ce501d41af24de2c58f8e6562
+
+A = -1b6415af858a1d5723020b830eec479ceb72eb6b4005f6b1f1649999366a8b0ffe90cd8c3b6850c8494dbbf978a67313aad8696e2399d8e71aa665d68564ad1ae5c8315a648b1cd70acd316b46c08c63a39f71c23a2811833cf6460eade5e9d8bf154004acbb14bb19cd287c2a133e8fc229e84dea7026fe327df4f9c1156f605b03cd581b5305675f5fe406a8a5c2659a4120aeac6a7f64a26d553a59de17941f1db052e136ce385368d5a03c6f583a9ccdd84c830d6b06a665b0e6df255ec
+B = -1229e2ad72228e981ca63fe686a4f296df232787f3053eedc5bd63a974aabbcea28fe76cbba13017d237a1066124d7f983c39921a7f5e388de21c61254ed9ea9bcbbdf497c62edd714305fdedf924828595335ea40394336ba7c5f530239d4c81674a03b7ca369a22b94548a5f45930fbffa471c5003cfeeeeba57a1ea3498f07da5381fdbd0ecaa3f210ce1f2aef7d657545e714f40445e7e311c291a5ef5d8b97f53a4508cc45e7b1f30064078c26a0115a06b0f879b55b767c000ebfa728
+GCD = 1b8d753b4e1ae6629d08996872ee4533b72fa44620162dfcd69d2f90ed26b14fb95db3ed72f0528ceffa28dd4213deea3aebaf2a4ff494159b9e62007cd78503d638e040ed62f9f785514b873668d43f002ee14d57ee4e5397f0cd34d04e7894
+
+A = -116e457e99491a7ba2f413a366ec885a641c0f694a88caa83a6d2b2ae1c428e2e2f1702d5693ead0b274fff2bc82daca107eabcb801375ba7298094c1e24f58fcb8512d901284b901eede1a11ed28c9a66ab38e850c3bca185dc332af4ee78dafceb4d91a15bccf52d187395dfe5e98c30bcbdede97a4cdda0fa4454c2a9c14a283fe566d2b99a36db8839f9fa07dfa85af432a897bf2a7866567a44c5d4d393c5359247f11b1c228478d790a99d50bfa8de61ab3d41e09cdf57427bcb62a24
+B = 662c90fc7d355e284a889b957fc53fce481b262a6bf57a056fbd22379c7f12d9f033c6f062ca15a56ac1c923038dbf1c50b10739cef85f4df2f8d4429fa1486951d8be614d5cf6f525931c518926d12f96eabbf45774a93127c7a918c869f0a03285df1d378fd0b107c701f0726efe0b3613ecc435459128867ec72237d0da2c00fd941da335ffa143560dd2f6862d9c19488fe05a71c7902c1e22a512d1881f37603a9796fba1dc1522cb5dab52c3713e293a23969debf33732862a87e6995
+GCD = 115bb698c9d06096fd6b226f31b28ef71f3653888f3107d418f35c1fce565e4f81bd4a3f1ec25711096f685c24eab8f6ad31aa394e529b24b3bbd14f125d0c30904aa21c783127314f9921a2deab725860e8408a9afd7e2626280be134edaaf2f
+
+A = 29a3589618ee0b102c2ce5e1d23908b3fdee7b6c767a6bf9584861db17d748e364d98b731c5da72fbb05b2d8e91ba143a23ddbbb3ff305d5a1d92a1993387f847e308543352d9740ff259405f386dd3dbcc7f8cbd0b1f568becb4548acff28a0760e68af31e7c532d8b30e985b738edd351acca267d8fabe97bdb0be633ff541de8c3973c107a41c2f0a89d85158e9cb999758107568682ca4c5fb601b826afe12ac4b7538d9c728552abe517a3859f9213608305dd861365fc44fbfed3b99e
+B = -1508f73927985af5d351c23ff0a8e3ac402c641b111f01d17c36c0938aabfa6d5edace3c83de6e6ce491aca87dd2af561b2672602b9911ea15f424ba1e2d50e37491c5bc52fd02ff50cf6bdedd2649c66d92dafea318f7ae7b3724a3224ec56b6e585440a0a446ddd34871da1bd3affe736e862dffc324ba9288177c3a4504b8bb2e21925abb772c0d58587fb72471a13de67470deb576a91bca1dd253ea4d7f8220902bbfa8aa2847db00d2c78ac60d7951693257553b8d4087a91a654227b4
+GCD = 699a87037694c8e5c46eb62d692add1b20f7b62eb4a73a3269d800030e0106a4365aa642af842cf10e01ad599999a8ce2d4cbd3117e5666e60acb9d20223272b6ea548cb1077d4a8a92b0a9b418e0c790aaa3b71f91f2b2a1769465e8256f6a6
+
+A = -3755bf34cd5fbfd07147db9be999b5e85f010ca9ac457e9aa5a8dd248aeacf2209a368aed237150d62cc22cda4aa1552f98604f7924be80373807bc349a87d7cdda2b4921e9d016db3b9691b6017d3bcd3e30278c0aa274a5dc0a25b81f3c31b62d1effc2bf4dec4cc8ccfa9444172125f5921e42528abfb0d752a098b68555d68c669fe71ebf65c30623a4cc6ebf15ef9c2bb89f33b6869c048c5651b5b40ae10f7b113dc650b430327f32552e6d4c594b0a00daac99f56fe2e87995619fac8
+B = -605774f39ddf7883e6a5bd13cd3782f4b60247b2f5df09e77b7eca5b7d8c98bfb1be397ccf7dab73d8d4e432b367fc80a55321bab19755b247b245eaa9c024b2870296d7bdd32eab5b0daf5164600a4c7e337e334836c10b54053e787088d1267d5b83644f8ffd29e8b09496b7b6a4c9174ffcc7e477fec613c13ee365cb262e1e3e7a991eab31a2bac7ed48e9ce1e361f310667883a9a8c803ac5f8cb572c6c8e93e98c75e8aaf929f57b902e48ca56821cdc6a5e1c1a4ebdb2df7074a5220e
+GCD = e1c50c4699a8247d6ec400ad7a8b207b52ae8766e3555e549e248e10b18f06cbef14b0ad4af33ab311e4f2226c2bbe25b9e6503745b60c5e472dccc7d5151145c1fd9b86607cd6f166bd7f08f0c51f8e1f39dc740810bccb6edb55bb0b647c86
+
+A = -13031a3a39b4556011b08769bb552c083b219b8c03c988cb851fdf26a5844c2ce0526e34f27605d06d2afbcb4c26554dd2a8e1af51a8aa30c972f3f63323342efb342ef8ae5ffb7ab21df7d39fb01d911c73556235e7ce1c7a2e0072455330b03631ed077e0c037f30d133152972d210bf458073bd98e091f5e2bb049485e44f23443c299a02ab4deb2faf70a0daf42d4387f40f22565409a3a885a7465e694340336063f5618af9789afa828971bacdbaed05bbc95ec1f09c169e13147f46800
+B = c50d9f77cb2cfc8f8b832888d34e103978fed3f8db588b201748f9c3a3bcd8030336cf99e48cb31d0cf782a4bb54a13fe74b2be8d11fab69df21743faa6e58b6c4d6fe9d8b21ca8d8dfff9d709e6a1385aeb8059aa7798d7b05e54b2bb531a437aa2c691919df9824c9e264ed39511fb1a8497f71ff7322226a17c87c3d00dc23346734203b94d84caa2cd458b6568545cea6ce6ce629f9f5941f16ceff4a0c4168e1ac182e849417912ec07ae14d88c64c7c63c396548fa7da0ae115e470780
+GCD = 18cd3d0767e7995061a510d667a5a2681ab92d8ea29a6b6ddce87ae4401a3c02b535d410d8b33dc66e97cda209605b3bc10dcc3b5cd2aa5c58d4266faf25bd9592e7ef85541dfa49a2ff20bd2596c729135d1471099ef4d75baea1ce10e05aa80
+
+A = 2b5e7d009b59ffe20f0d376c51c3bad9929925b029ddc2e9cccc213f1e5143a2992ffeacdef5cc6d337afec29402c8096738d62fd8c46a0991225fc1015918f4a581f4336e6998a8add17123d8d69314c0874c744bb091ee2f1fba68b5e7bfda198dc9050df972bba863659d0ed344164ccaea4d7dddbaf37eeb7c3f310463b1f3350c9dc6924bd52f168b59c08b144da1cf2e5ae00f55967cacbaf976c1eac2a35dc26f8b81cd487aaf7075e1ee635f78e855d17a142f8930fe26911dcf34044
+B = -457e693ec38b2429f1a17a0805f129436a18f69e31615e50f9056320f8ca715b58a2f44dc7336951d070b12c4fafd2f611ab2ce52a0e1c55a46db90b626099047426de73aa9abb3951f5c31977f2cebcd14b9263f7dd2cdd7f121bf85ab7fcb6945c979c2af06acf8ff9a52b6d4f8c18008ebb59da98ad6c9de472c42adf3ff6f526c501b87efd69f48927284f9ad219080f923fc221a4f45ccb4f4d12bfc6b06ee32009baa6760dba8088383090219a0eb64349209274bbef180369b5ecdcd0
+GCD = d8856ee87419d6d67c402017f5b22635ac68da342cd726702afef116c964f71acf654ff757e2f41a26c0fe1a6192fe45b217c9245f4b64add4276d0e11a03ffb4a303dedaa8a3280abac053ed4ba4c80167904ce45bffe4d635e61269c0dec9e4
+
+A = -11faf74e5de0661b17b47a5048195ca4c7bc6082cb3e0e63fb1cb1ed7e31ae827676c7fa0866b69481b7872daf2c2cb00a6ccb9cfc224a86a14746d5a67d69a8ea92b9927b3e032d1110979b4741289f4ff276e45e94b0e198ba56098605af5a1aa1bb3f9659ff43a8229e7bbe5e0695499b11b51890f552894185ffe211a45d5c34389ce2d5783cdc3e483223d61ac2b062fdae09c1b6036b10e77940a4b06bfad9e35820d0bc51a6063ec6e0e3d0c1f544f4276ef96711dc7ef8b22429df9b88
+B = 102ea6ddda85e06591610d8165cdaa7cbd61811743d19b73b5df51ec5dcadcc045611241a1b987e2542f2a0400939ee1e26d0570894a37eca0631d837c19500851409c6cf69796a5dbfea92d4a213646a20e119662cf84ddd366b6fb245468f3d98b2105f6f682ecfefedd6ed53b99bafba61f38f487f97b31eb2564a1d71ed7116265b14de4efc1b027b0bd5df1ebb3175d5cf92f1eb0920bdfcd10781047853960061cede6d49d1b462f2b8da0bef4c1d6052b39107ce2888eb1dba734391760
+GCD = 37a9879e5f49a9fd939cada534434a6d19d1eccf974015e0304daf6c66c05f223bd7f9526d8de078dbbe587ab1ee9ea4114fb77a698c9646ef1b4c85092f8459f2046b6dddfe4b6e3366130ab41fbd3e96cf0139c281a254bdab1c0bc02d344898
+
+A = fac9b74e7f36bf643337fe27e889dd6a024ade0958eba72095521beb91398ce01ed19bd83a44f13076f30a21c4ad7ebb6d74b62a63e8fd458baa498f29db5a3fab4e55b999fc2a8954be04937c24b6c4df8ee1f1de61fe9a99722451c46ce16cb875fc393e2fd9b67c0bc8f712c4d3de90958b2106bd3c7d453618ac0b2bbb22868e22874927f1012c99915d52dd28c116e21440a841248732e98a3eae587e5dd07409dd9eae97d0a9272c1a74d7755d1698c90f1105f1ae1284e73429f396d84
+B = -445cd6efcb3f03d125080d2c67d7f8c8bf618de7da2133e34a77dc4553dd458318aa34b6b4eab4e1988c43922ac339f1826db141f1a2fb3f540beecef7f994686621d1531101451ba5b0a05c4ee39bee690f6ce76f7bc93311bfa436865a16cc42a9a333c37233a2335f974c8807ef69d9671e0bb5822a0cfb11ac1fb21d7ec947a4968b399539c4c8a07f9bd64ba8269cc1ca8a567f9eda05ea5f0dd9be8d44bc9d61b5bdd0eac0512229279b16e8ddbe233e636a7a8db5db44259f06f49473f0
+GCD = 97f75404f5c9ceebf7710e2092f504797e578c25efa278dbc785740c9daef899539519e45bec45a1812a08bfa5c7a34cdd9f7f8df8dfea1cfa15fecfde7f3dc24b93750a7cbba0b1c378f00591d4aa899e139e04f6542db95f522b816aa49e864
+
+A = -2ad89fc1e2f64e24a1b124cddefdcec53f6bf8094e681704c24e6d5e381e571fa516046494705ba52a858bc50d72ed7143c5a2da8465aca9f9f5efe240816dec908d91bafb959b3958a8824c48a27a3db56f97ced2beb16295cac4d292d77e092365ca30aba14e12d971250575aadb3f743ef299f72d6f0ba0a04c5621325bad959a883cd69c70710c491bdf2cff53bb59e33ec7b04027691caa5a0f119c213d5ae6a773649c7bc10c7754215b0f85850218d722cdb1ba1bf8644408c81916535
+B = -3579eb843532f8eb9d7726f041b455bccda78bb12e9431f5e4c95d98d3e7d58c5272fea65cd89b2e90cef492044fcc3baa9f0a604bcd699e42543aaac1c769c13152d995c55f347ce3448b6fc308b34f2aa252d574940ec7c8f7f1f3b324aa2cffa2e4ed8475fdb610f0f2a7e9f3915c90c9d91062b44a4195fbfdd3b8aa19a91d3e01f982fd3465e2851bbb7e8ec3b191a16e63726afd3adc6d2ed2f7e1abd0748c8ba97ce07e61ff3c34ae7b5b61a4c03daf6ee8ca0b8cb6c29d920594ff120a
+GCD = 11c1456db647775e9ddd34b6cba2020ea23010d94141d40100e1816c546af35ffd05f7532437719475e39ebcb09910dab940ff99c432e58335f10f6c783769dd0c7e837c5d335fd4e3967690d4cb0b8f6eaa780c1d065f4294747ef842ed70e12f3
+
+A = -7940560cdec3a4d3651d74977e0f3f76ad4bfda3ac9c7c3a8fb2883e4476d9b5e6b10d55437b262aecd2abbb9ac65a7315b56d43f4858b449dbc1b11129d9ccc89442f93889bfb691bceb80da46d2b60ce94cec4b8545f0470940d92e332cdeef2da73d694d0028749099147f7672652f1265151b1a5f767a20f5abe0acf0d50e9a9808afb957f438ff79484215920ebeb156c65883901390c6ce71756a7da0768e6122063f4f5afafdc527fbd0ed9a07a72aa6a19222f06350c92dd996d6b428d7
+B = -16c10472f2725323b0cdc43b6f4093ff527c0726c65713105c0cf4d80e12fcb8ac621ae31eebc24b3d87f7d1d6738ef8d8bcc6e065a5602c2bf8d04e7ef8b0c6aa3a66d885654cacd5aac9fd0442eced9a08e084e8e17dc14d4948e507329e91abbc5ffc7f883f69a06de0f967586edf17c4e03020fbb1ae80049ebffcf5da1d73947e0b2820c40d1d947557f11d3102972829a00e6218ed9d55a91928471af02945a909e709bf9a5ba1ffda783c2dc9a1131700010b817a1d67d9e706e139698ab
+GCD = 3e8d7a6f7c3f8cb9004d43e8a8c6721f228c035e92cde92f1f0e27237f46a171145e5e36a9ba2de9b860f55794816effedd4dbf33f9045cb4598f2d500b6847333affa5852c8a54f87168311fa9f5365a49bf959c744e5d5ea3b2afa494348efd9
+
+A = -15fa44c71af239325e9260e4fbf379f00e67de718bf10388d59e9dacabd2b6a6ad3d39eaee396c39d10e0b991dbb91ecf0afaf5c1f5471a637d2dd205989e29524df9123b43432d7314c3adc6e30e56996db671dcd0aa4295233b92647ac855778313b7721d0f4a2009a34c819915366f0db4313ad78db4a779088b47e902f66d43ad005b4c9c451ff64917afeaf21bece85a540ba04f999ce8364e60d08c1ac88f2cb0ed8312a8bc17387c5fa42be6ae247a46af677a701672a5baa423e1e7e4fe5
+B = 95a309437fb8b0ec7a4b95f54e7a297e71ccebbaeccb3ca21bee8d04d255d9b1a2d3f7cf2d79b75c7d002d713bf49279ab16d7bbc313dfded5d67cc9c6edb210f80c193852409350b1ada2547879d9a6f232ad6f0f14bd8ca7ffe602f3415560a5dee83a98b0a9a98c4728e4b5cdb2299a0806ebba850f51598050bd80269e3cb3555394acef71e9e2914ca61061ee9edfb6ab0b949496abe1ee14dd0b1b8dd3090f62b6bbfd634115e5d2cbf471432dae9f96e974215caa7771e84abcf57a8d577
+GCD = 7d78e98677795446e580a2575d6f6d5af8ac073bcb41f712cb60a83866f5e1f3271b0e502206e6ba5ed4ec7ccc844237dc08496b27a1484553a72ade7601d66851f65d927a7fde908afd682b63275aa3bb9b8c34d574fb1852e46a377a0f39c6a7
+
+A = -4fb36216ac23149576159af96915337f1ce472c924e375590d264f1f8bd8fdf921d7586354d252513fb4b62f1a5c2eea178c8f8485c0af8de936b6102d2433662045e9b980a16c4b33ead273f3e8e1e92d380e391058affe761e09353edecd8b56fccea8d8afedfa782b9884caa033d0a47db5e19e2cb374da5eca60d7398e20d1f8d246a2a82182ad009d517f733ae8bc4f6a282623fe34cbe5b17c1f0de356cae77b6a42c92fc9fe8b31fb7a26a7f403edc2657feb48e49b023e1354b8bfe374d4
+B = 1ebd9bb72a46b52446213338a26ddb6830423335cce495955209ab8a0caa58b839fd608d5c046374c78ef45b79802bc3954cdb5b07b42aa3b69e7161a21c1d1954f4bc74ad5bceb0a4df21d9ece603bc849d68fb44f77cf36f9bb2f054309e9fb02e0477d48f122f40d14d445a032bdf3e3f9d17b0671471e72ae31a301de3655073d77f76cfffaab30b1a636753d6f9c832dc5bf632ddc59fef52bf2daba14ee90dd56b2cf4c2edb74f10cee784ac85f32a38bfbfb9d0cedbde5a819ce8ad7804dc
+GCD = b10689a4b5ad275a4bf1d70bdf4af4a3a9e23c2ca5e2e152bd979bed923bde249be8e63f9690a138cb56302ad1b040d430b1234069fde127d2110eee5982ce8577cdd6f414524b240ef879ca4b4d2358ebee43bc33c194e8a8301b1cc648cdf0d4
+
+A = -997b2a54ddd367301ad8ae5c3c9fe62b4acfba91553a35c9ad42ed20916e31e4750147d7b7bc7dfa58dc0e59d4684893c9453228cf74cb6666d4e8e6e31acd8be307e899959a15f31b300deaa5fcb6962e37c0e0ceef7a1f183ef4c38eee7962bb593b696ad0994b18a874ae033c5a12f5f2c7f021319cd571de566a80c27d24ac325e363418f521bab77ffabe6c564edee6048e72df8fe7b8a75bb7715a6ba62627f81e8f36ae0d84d1e612cd25c9878cb320d648e2909c535d85b4ac958d6e6c0
+B = -b67b0710bc8ff145a49979a7375232ba41973997074ddac30f8b3f348efc98d483e5f63b73ab4fe78769079a4564dd04d49c4420a5d3d4ab0a25e27cb6dd5574d2cbfd164cfd7fa7c2982c5268358de8eead68eab73c46ade9144ccbd46a6e4b7c6fcce126c44af7d706bcb978b8d3c3e0b9ed1203fe541ba9807564e60e7e44bcc4b872ec3791424ea693311ffd0d6a21f2e7243a82658c06897f28f9437c3248e91dc6628e0e675698ac0c5844b1e0fba1564e7b1a2c36c905b57769794dd00ae8
+GCD = 320ce00900e6f2f432fbf7d8d6c47f62a951673aaf76a7fa8d361ba9e968554eae39c281759d270c9b0869448ef6391d39758392409c9b8244337830a1e8975b53d71f8866c6212bfd34ae016469af33dd4ab7821266a1b4937e659e74f99799408
+
+A = 71aa7d9df45dedfc873eff26285941097a2c1f12f044cc6fe84ba6c821a3026e73d67d2a8eddfe43bcf7f0faa0db9fbd2891019cc4edc1bf5f4b4dbb2bf506c64349284ddab7b4b4aa55d79701a856c46f139bfabfd698a709101e431328db2d006604ac624b7cb00105b84fd56e42432e8bfd7db568d2a41702eef95efaa8936d2b799d96c59cd152897f642eff8032f5c04d919b502e81e99beacfeccdedde065099f43cf77c61def35415961d7e088aa2d54d76970496133a51aab1c59a48e2ef2
+B = 477f8fa9aa3afac8eda8083825f8866fcfaff5a90567510df1d271bb2572c38f133e0c3e071831e107587c2baaa1ea26a426885f201ebeb3f4cc3c07331758c6e240f95480e312653187b532000e6a906b20c104bb42054ed4374d0f3509c6fe54675dd556b8432f080c087e1a88de58b65bff2f9bf2dce541b3e12c7ec73ba414d04d73bb2269562970ee7076a380c912e9427b070e8a4cd7f2454975092d25681f4f7d5faa29c02a12531afbadeaf93cd67df29be8a1745a6b0183e1452b61b8b48
+GCD = 67adaffdcf6e6fc974323336f753158ff91837a5f156dac056d4c2e30e2c9b96bdc990097817ebd6bc5088c4694d3444781d0b8054b6a24d0a1db1f009eadc5d6acdefbfcbba2db0b4ac819b62314af48fdc0fb5dc15aaf313900a3bfd239cbb596a
+
+A = -109bcc9b5acc608206d9c03c1c65bfc25754b6896836fb415dacb87d3ca79a1a5941f9beb09d270ae36e7b9e36abe396a40ce8d50784516a06bf1d4b20d186ec32ac4ac554d268e25914a06eabda9086ca7f2811f59fc3a03f421f293bef714813737db9c077da606ddf3bcc5b494b6bf16d1a556fc7f7c9cc3005be39c61391e1cfb63abcc651cc6a77147c374be86ea4eb9a97e2472c51a7dd35e705825baf0694530e69289c4b15c4cbb347e33977573a8b28c9e33a9eb882840cf566032042af94
+B = 16ad52c23583867f853b8f9847e0f4ac758b12b9ecc634c51bb010511b54f858a849d236d5f7b22c02856b47f7ee7549f6402bae859f1bd0542dad481ba826f5baba64cfd906111992addce57535c0f0c8ee0d1fe634e08e1fe9a793cf84fc70e8b9bf8b0a0f0bc14d5d84927b4737d1e97eff6f779767879938a9ca4c5052ae101895fabb8580d0e974616f7e895848c7e446f28bc139bfadb56a8b23e7874e6a2e8ced2dd7da7b93a2490f6f6f4917177722158aa243c010b2a0302044b3062c0c04
+GCD = 1ce060fc15a751ced9a3185743d1ae21df73224a90eb9786870dbe7db9442bccef112d713a1a9d2d7a9d39d9a6d4427e47112f777b0505030bcc4b514872fad8fd4466830cdf0d76f1084cf53768b7d6df333605243dde403857a1d8e08382d074cc
+
+A = -320d7663c393a90592c5947bcf3891d2b78aac9bca762fe79c35f7ffc3307e53cad430065a08f487da1d14fd6a1f821de83218b3b69a560b1ebb4ad3512bc7888c7e56fa31d4bf9fe1d001ae71ec5927a291b2f7a81721293f0990d7fa5d640adbb7147ffab0d2f8abc62be210ee43e2a283de858ddb0662c6f780ef6134bbe1d078b70f6b66289b33b108e3f1da3ed60e35e071e6bd33d9a80b95cdc2baf333876356562ddac9dc832526f706f3f740eb4cd88aaf1661d5ba55780e0e375fd8404cfa
+B = -3e61a205298e015adf6f85c5cce0eeb55017d654ad457969fdd40b8897e1bcd579a95253efeab59a6b96f6775237a8ee1e12e3b8914efc9353f39af123e1bd65d6a9de28d9ea7e09b7d8f8c2136047ed4b7de125468f0c3fcf5e7af084d420513ace61d93b69f1a0f5443f371db388a5a9e560fed09c2d929b111974f8cd67cfa0610d06c403cf00f9cf6c946ec8d62fea43d0709465890a47a16048aa45a2ae9c7dcc061e0b23a21214e01816813e5d3a46c7e6acf92d4d190c43ef3537103aa16085
+GCD = be2427bc76269ac50542be06f4938b86528950d1334d2218bfdced9a66662e86910d82ff50725a97fb626484099109353b97fc32d01787d3e2ba308bee4ea2c8c8ae649ccf94a3e9b1c53d98b02319194927704b904316ed37a2d77df06a0b3c9ef
+
+A = 5cf2aae7bd0d43aaea244ef29ff5d5f78bddb9c7ea633f96642dddfc4a2ef8dc8ec290db003f1d11b3f90d03b0b25234d0d7073099ef57b9b177d13940c41a8d9c3bdf0a7f84948309f2a84d68cea93e9cdf96ee3c9e6310d425c0b03c40d01bbc7db7e4e5e39371d538e1947dfec6b2cf067bd99625d37233bc03a381eb41f50483d9efb87b6cb03b838189e9416fd0d1c64160ae34cfcd2bbeb77c630db0c571e05859e5cc31e398c9cccfeeaf6e1ba0f5f70e5c0fe199be108ca3d377b5c9128de4
+B = 13b630132e60e77e27eb67ca5845a3c48068d02598e6b0b59307ac26e5e1315520a71a8d360933bdc02a1aac05234b8d7a518a44e29b322bb32d466215ed1fefdc3071e0c1130f2c8e2c8080b021e6127b3440a395dd67e1f5515b8258a0b04421e0ab5600cf8d4cffe12fad441aac330919daf551aeb88069bc9d5fbcd0b364e19e0881c23230c29b291c7883d76f4fa0e2195b87811bc1aca3210c256ac2d9ce7ccdd0643025035620ee4832838acd4e4951b675cea702bb15ba8143e0d721282ddd7
+GCD = 1d933b6399aff53344bba97bd6cac0fc8e12028110b531cee84241c054141e551158c242b12505af5424a68487aaa786102eca79126e277f92dd5f4fdc4c99c97da9420406b050d1ba9aa190ea192c2d1486cc56d57e21a49d0413de50822f4e32a1
+
+A = -3aa9180cd6688887184eafb48dd22dc230738306f3b638ec8ff2b3daebd0fd4c5f811e5404676bf16f09338967445d154c1869b010e31b2de3ea21dad9fa6ce769e983960c3417122b3193d079b5f2732e59c6d8f7b2a6db7e889656ba005ddcac2116d192aa6952db7e3d5d456500140d58969f6b0a45e3d7ce709849fca19b481f9f62dbf309536ba07e2ff873ce5c5e2ea61fc1e2796c0bca9f90f61505db8b177991402c19da9f99ab3d83e4c4a69d41d7b2944b177cbb7cb182255f017cf4eada0
+B = caaecfcae71cf27ab410be8281378b8d7f4658bc3fbe63ea53a7a8bc3488c2ba846ce8584db7ad22ac923f01ef5856a18e5af2e1b1f0df3631838f252b139a6b08f22964a949dd20591ec735f8581fe46e4b33874613daf5e2c4d768698f966518ca56e392e5dadf6c555c4a647fc120ea2a8fca0bfe1fe1d706f25c2ec9df8aca9699f21b31bdb48ce805c9a0b05d498a764393b9a22f95d64c63db8436ef4477cd0e8e60e398662988bffb3ffee5e086683e156534554402d4fb692102f511eed110
+GCD = 26476f7570e0953dfcee79b15c46347b79d9400c1aa0c03c18100fdf8df79d8d9bf1bef6941cc969509f10b144fbfacbe973534c1a34006fb76c0beaf6dfcd90d36dff75027c218eb94ddbb130ad240b91e30099ad1c795248f321c066ec9c131470
+
+A = 11b7bba00ee2b94e3eeb03f89b40977e242c37a13f4284cc70b91f87e17d905a3aae5b60d9e9506c844d3d81f6e204d4d57304e690dc17303dc9135d51941645bcd47f62e97059d4da29dbf8281e8eaef04fbc9736715530c8cac368d5b7e305400bcdd20c7fbe35da2284d0bfaba3721809dd6d9a07aae45e356b1e686031785dfcbad42c2d44df90d1b1b56a60547d562d0b54b41ec7589dc3a5dc92d6c3303b6c5c7cd7428ddf5cdd9b4aa2bacb1ed90109ffc872d8bbaa9cd9fd884ca34fcf357e0b
+B = -d5b633efb032e68149dde2fdd02cada1c687cce6635a14b31fd8a21e1a222fd307ecdefcb34d521816a3ed7db3662270f8c20036be798cf90098a40119ad32b3a08555970cad50ca5923028da9fd2efd64c7f4c4da013c1e8399f7f8cf3b99120dba559c70ec4ed8b0b2b4ebc6bbcde716f5884e3af177901e8be6d2f19cf13ff6b0a893ce9397370dda052f873fd446d05bd3de3dcbb0c87575c028fbad95a5adc6ceb149d7da19934965e4987b6d3fbb1ab7c047a94358f7f3e42dbdfc053a7db1249
+GCD = 5659d551ddecb6ccac3466c4f5d40d7be89ca7f12452d6728b0ed63723ee77588fae505d89ca2283ddd59268267721e7d1f5bd1e82a74adc141db003b6ac217cb60c00d99240a0df6aad7b9fd9d8b1a8238dafd8589b052f5a457ef2aec4f8f2dd9f
+
+A = -695c26f5e9a7f84503f14b165d8458669d729db288b143a3de9c32c7ddd1eddeda69f6683453b49c3096d572900e5b740f1174bc6ce963e3308af5ed13721f035fb3471f146939b9130fa6299b8eb23391848aa1dab850b1c4ad6848d72429852a8ad324b57ba400ad888f9ea4d9c2710964cdcb59dae6a384ade2e9100a48205d2d5082b458f6d950413ce899251313f929010160199298c8ebedc791e020e440ddeb155e0a43e423e2227a5f10b6b2aa142ae5a2efc8a999eb8088a4a138dfd717747c
+B = -28a8e610b170d3b246436a6882ebc62e05661856149776d260cf5ae4e9956bcdd0fee765b119bac20a308ca4fd73bdb8c5f72cf3684458395997012b886e7556c40e343e09094246d968de4fee47819a365143eb13cbcc5df1fd6ab98bab489f321ae77d3e4cf7ec7f34555a35e5b1353c5bf2965eb62aab91f2eebf65a2f25039350ffd710bc8d1e66f857adc3e5a3edbe6e9bf573df78d2ae92b13d8b139849dd7571b1ef03f31177c88334422ca016f90f303c4e4286f298128d42f43c518876f95bc
+GCD = 1af5be2ece28034dc8e6172ca51b10b1cffbab170f13b1b3f3573aa2432f192cedf63fdfd291399202027244097fdc24165d417766d73e75500a580cac20e3e579f111b58d672ecb12a0bd3cff06995401a136f2deffd492b1d741cd8a5ee11227bc4
+
+A = 1bf7391a6135c8a61a80b3d73833050f7aafa87cad5a74be8caf6222e0af6cc68aea584192ee4e640b31495a4981a5465b9260103cf502dd3559b10a9104422051b6f559cd8000c9f415d218ef19fc09f7a17c98ad52bca1ff2459d7ef13bba4b0c802c28ce4f65dc0b2ea89875d3420aa23424f30244694f7365e094e304e65d149ba4064c85e3db83bdc3ce5a5eff5eb4a05ca83db90e355375e7e58a9411523320926dc3e2b6a58d663ef47085239f5289dd0f5df6dd4c538b4245a9e0cdac3074b8fa
+B = 285b79ffda0687c16cd380dbb6a9dd14692b1ddfd6b337c576f50e39cece9e7b45e37564ab2c57790f231f0697eca517ea455abe444f04312356b82c9c0ad2b8aec3d2b1d4115ff6ecb965eaa9046292e3292a546513eaf3ee030814b647b21dea92c3cb574b64ee8fe6f8d7064269f19f5b86702d05d92212c2c1768dc5776e54cabbfa2041b3fd7e54fd4c2cc35d73d283f27d597b40d075740dead24c2702c419d702ed964c1e9afc021d9a51d9cfc412602854853f669b8c909692866bdcea1ea0f0
+GCD = 1f7e11a8ce42e2f739a9dd09d3c186fc24be1fd22261580d491e4d96f70b83db80b91c670d7e36fc12e690ec7777c72d11cb0b76459609dfae523def75d4484d030dccf76dbf033958423cd05822b1cfaa3a005deba7584bfcaaf996d78b7925dca96
+
+A = 39e4eefe6c7e509f8d47c39ad468fcda0a2d2442ec94d7789c62acdc85eaaa5457197d8b2d36b52380d4e30ff3fd4f31ab6f07ae3089ff9ad70f1bd09b6b4982c9fbd68f8fd1224dfa16491c7435f7edd894b6ed9798643839b622615a5da088b1f723cadd3b743ef2bb30b783aa96cdf42ed9788cc959ea4757aecd8ccf77cc0688d0c79f77de623a86ebb4825b7cf54d1c278928ba37b976759c47d0077f5621c0d091012a05ffc4a51b52df1c6bb6b367829d8f72b3d5b7bd87bf85f59b34d4d7e8460
+B = -1f9174affdd8c1aa322d5b7b51f88d48e28894618470e787e8f3f2cf6a201848e5f414ef23bf5fb42811ea888cf94f19a5df110a8497636b1b031eca9958ee27f86cb483a0290e1c0739889b71f1dc6fd51151be52b5a43c7e5dd6415245384875172da04328f57951efe1dfc7cf2716bba73b14f7744298f17d9b005b5df2f30a28210ce479f8eec1011b8f4131132908eb13e618398c758718b5585171c60b7f8131b36b58df19a38a441eded741e3b35ddc700061aa6adccbb1f1be3c9fc5d2b073280
+GCD = 228140e4dd67e44b6487826dd57b30892cf69368ba0a14b540bbd13cb45f776763163196faca6649be8ca338b7192d9089b055d9498ad5267f201ec35bf24aba9ec390cd2b035c9395aa698e2f5441f01c2d7eeafdb9c3674c26145cb98ce8d2db2d20
+
+A = 644cc77d65b67b61afd6fee8d89cd9d00ea4b543b3c16b5f33b957b8324e8799ddb135bed175b14c3e5740df1beb7bcb6bd205d341c43ae5f80aa62bcdcf9d6a4afcae3b854f0fec8e173da51e67b027ccac2ec3044c0d0dea2d6a23fb8068ecb54b3a33654298fe7ece6e5fbca4c10b6cf33b2c1194a71dc5ca2ec6bee3cf91dd3485406f94681e3c63e8a9be439d218bae8ba40c21f8c007cc2492a72e83b2015e2f6d7a0d5f7a3a4403acf1dd11690f1d600a02da88ddb5ac9407de26746052333f4cc
+B = -158edd961ffc597e66816ccddc1f5704f160471f0415a41164252309181c39c02269f423978e32485ce961435adf8e987740e0d2021c9ff19e8374122fb87043d59be33fe3bd554469d2b35eaac461ba58dc5654f863e18d666b17e6cf3bfb3559937d99a3a2e1298203184d1d90842709785d13d79ee22e31117fe01795b2ee587e78734acc86e0d28688099c491103d1c78416cc6f40b084c941cb13353d358606e9d535a361beb727f10615ab2262bb2de2d130ea21215d154c38651c269af064535d0
+GCD = 5eae6aaf79de173ea82b71dbd3af23ba52676d8054223922891bd993ec57ddabe7e8ad9616d3d8a8d601a5d7513b332df14adcc699bcd642a093b2806a42f292ab186e2edd43b1c5095dd89d64fb9e6312fafa1a7d52e06b1609585d4a1fa50675efc
+
+A = -422c530adf6e4cb7d955842733b2e0a51761df56ae8d40a2ef13c8452de64cf12be8c8c496f3f8dc6155fe6bd07199d2922b98c345dfc4de57ae8c4b5157f9123e961bbe574cd48b5d9aaa949b26a0079404873bf1efbdcad0f1e8002e24f8a719f7928a5157c0c4ddab1e8a605f23a68b8a369464d36fe3138991531af0490f1d446fe389465ef60c650591b9ddd96669ed6e2980b43d4f6e3570a339dff90d5b6b215b179bc039402b7395961aec27d93549ccac1e1b14fd2efb4d5102725253bfe9768e
+B = 1bcd86f0cd8cc8f2e3b282283ed15f8f0cc75c28732d01ab368425d2215d7dac3e3a4adcd0b431db4a6bf790835413d0abfbe832956d791804596db415508b17ad4aae9da3e481286806777c3a048261d3bf59cc48abffd3025e9ea324797c374099b376bd9d7978ba2d0a3e8a622ca0bbbb6a698c09e0dd4d8d4b434c4375a5ff476ecc7d77557cd3e61c119c9f3c64aa27aa3cfe13984ccbb7a270d57aa5267e82d81ccc471bf23fad29b9521df3f3ce702fc4dd52a9d5f46b1cbaf3fb497efc3dff0351
+GCD = da26cd945d466a236b1c9b36afa60a1af9bcab7016405814858e2c954c763ba9cabe19adaed4fef51db1bf91dd415fc200598cd059a34da861502330db764cdac3c52137b12686716bdbc691ea71f2030ac99e73ba38df50b6d37aac0165a0a1f8249
+
+A = -32f808d3dfcf394d8b153f0ec65eb196fb7db0160623f05e712468790c61176c993bc5c43a36dcfdb9a90d8b09ff0a78e98e87f1985bddc8cd5bbce4d624add27737235fd3283fd2a5aad6c8119c6bb96413e84d372eb4ea4357a77c54e6b3dd82e8a35f6d380bd54d5c3acdca4a775930ac63fdf71f1fa4f9b8a6350057eee8bc94ec31e418c459843cf78e13c58487f01eb8d36aa51f59764d35abe2cab2866468cb3373042db0472c8ad6ce7aea3202777ba0b56a57b75aa050499117b648033dd4e320
+B = 1f7c102fc70a9e89cb47498aadfff197a7995a09401bc1d228c04630d1eda98e91983a61760c00fea04af1dbafeb9b60cf1c51e9168c655d32d11e5b0513865bcb367fd68497e53eadc4c83956b89afec9ba59b674d6d052e93c5bf7878c4c451ce0010bc7feb85b3d3ad20a591c72ac61a5e1f52254e952bd06a0d6be0a757926abd4ea590506aa2bdee018ddff8bac3825b328217f0207c001f1ed933b888978ab7430e504673908f5c120288a67e8ddf3b575a198d790029595b2ff96783edfbce6d6580
+GCD = bdcaf72d9237cfe427df7897474c708a46073930e0ca0ac93849bef751b168210b26ce12513e2f4bd7570b926d21a13e741c71522ea3204be3939cca85e3073b608530720a7afa37d3c6f4b397d5f2f7d599088f3df5f35c305e70e086aad930bc5b60
+
+A = -401305e272e7e9a14db093ed9d2b80b20018a67f7387f98e4e068690ee2ffe73dfce983ebd2640d6babd16e869da39358769292539df36b8bd0e9d1e41b8daf9b93df93e206378675df5ff112e95d56c5c19092b259e23d82cff13a34cd3eb418a0d9637c646a79fa69ee3dc3e5730e1e295bfe755425ccc22fcc633e77131a31880bfba24e7bf3723d6dfd248cfe72776e327f8f8fbfcd955dda598ba6d7d7d28bdc7329008326de5418539b6b9a229c9fc2ae9c51005b61563ff294441e753ea071eabe24
+B = -39aba6a13caed06f8594850f294fd43407c4a5f39c7b0759355e0fe404475cb0d4dbe1e9fe9bb19430a51724fad6bef02210fa51d7e6b3baffd9b19e03a2eec73821242660d11309c5914d7d75faa1833c58dbda2fbae80be5f6cafe9a735e14b3ae5340b939a286d242c0d6bb6787e41d1233516f4786af3dd767cc26f0c8245eb118b73e13226908ee7474db3cccd15ee4c4bfe97bda6d55e6f16f9164cc75c5eb3cca30caaa5ad7e9c555ded9ad8ae454729463bb6f27037f6c0a3f20a1d84dae548d608
+GCD = 296a1bc3c1848d61cc0944faff02a35e2330137eb357d7e4c00edd9fbdadb3923a376510eb1a8f9a93849578ecd8be586221c069ee590cf55ecd10714459bc036d72ec0da61a92a94f77e6d5731b5248a0e53a221f62809312226d7dab11c66b7e59bc
+
+A = 86712a1d494814294ce0d7fa6337e514acef90aa1963c02674de95ec2cbc8a737978acad7c4d831f340f0c6fcdada3546e43d10a23298beadd58bf9327c8defdc06e75835376a9d8f146e2f5c2e213a07cac712608c33dd1f250c11f597b901f640e9136652bee88f275e91bfaaea641c29469177c6888f34a9d75a8ffdd17834a4285e2029d5df943aaa47a2817b356cbc127844585a7ac066bc0fd9be34526a902bbffc58dc71588128025f4bcef09a15ba169b2384351b2a053d5e72764d5939cfb04fd4
+B = 1a069aef8d0bea0bd4316b3c403c998c5edac6272606335eb32cea42fdedec4a3263f2ae2d1c6b4a317e02f8d5eba7485ccf3271a6ab8ca365f47e092afe7c5999becb03ea743f308ec89b8bad21ccae53d678004711ce1ae7ccee56d7aa5ecb2fc910f0063abeae01f4600495b3e8d821d1982ed39e4274fa9babbee5ec89557abe7a0be9fb795cfbb295c065779ec94b8489e7af59990b641f204d53f9b9a991da4ba22a58252f89bbc7c92db6877c88b150662de4f3b10303cfab3cee2542e05caff638a0
+GCD = d457fcfa5c2c8d1386f68ad13e6a9721df829045d0375a34f40f67df66452e63dca9bf8ba3dcc270e95a44b7fa4105dbc0700f71155161dd776423def3b9373228709b2296a2237b7a630e9753374023b6538c41e575c32c6a63db5837534d2439c6e4
+
+A = -5e0f0550a74b8682832697dab0d6edd0d6b98cd049617b964fd663bdcd0299395466b163bcf6b371594c5ef53a94853e89dabf2856a6a9a8d02b8e8a33cbce12465518d1ca1369a6cc71397ce0a04aecba72a63afe9408710fc964bb56398c35c1f0e42396698049cf40bb99e58658c2ea8f7ac6d7448be7c2b3e0a05c4c3f5768db4b83d8221739b2592d5516d1cc8a6611c1a3ce2b33d5082ac82b468c79abaf3686984788301186eb7d2badec1b0606a77cf5d036645f762143c70f6f8d90cd2bd1bca560
+B = 9fa9c99fb2283316b4d44a897c045c862c71ad8fe64f4e5a57337df296839a7fd1525f7eff657318b5c6c049bf69ca63428c23f30aaa8162d68c4464edce2b1ab0671ade48177eaca5e5f8aa93831c813bf7769037470177bd393e652a2de7f2c7c9b93b2728d9d9abf55d3b9b8c784567c4477f646f72cb794a5f7aba80572bfa0cab7923b4783bb2407de5aa1dcaed5b5eeec4b2bc5bdbac83ef6f631bfbc2f8f4aaadfff07a113057140abb45cac7b14d8a7d6f212b303a1233cfedcfa70e14ee83e3d20
+GCD = 45da7875095d075995feb0bff8300b601b290eb7e3ad96c575f1260f6f11fcb9890707f2c82e4ad4ab92f739e8a38740db1899a5671be5439288aae52eae699e78d28a0c9b7ebe3c081bd7115cbe82c0beef65d0851bf22eabc9f331f7eca27f023bce0
+
+A = d26011e952ecdca58fdcdfafe64b56306f0f589f37a9ac094eebdca0cd827f0d9783cdb2e41689489f505cf313874437b96cff001715345a3f2f89881d762112d92832ed282a1d81f3bc3070438846a0bbc5eb9fc27087fb650ab6a7c8c92da898c6ae6d89a43b7f6c5ca7b361c9fe88e61f16465dc9b1d318e0ca72dfa8be261e16913e4d98748b416aadb70fed8a116db796c2d47d4dafce345cdc3c5c92ee8ad2ab4507d7404e454994e47a1f17ffe2d457a2c102bcb22bb99006bc56c696c77f0afeed07
+B = 908f35015d4563be793b5a956898a065218b6ec9c065156dbc5f665752c18ee78ad6115c8b05f402b45f342e34a9c33a77071e9c4b2950cb184c32024ec6c52830d79c107e5b6d1144ba4a2c0768266a49095622eab60a7d41701b883f9db6a887688b5ff8d828c9c0bb9829df7416ef2f992c8ec9b0ad5c98a1ac600ee3ab59228698a2d09fe3bdebe8fd0d7620679a4b69b8eba92f0bf2ade933a9e3a79d10a886254f3377a655239b160811d4e80b33ed04dfd4ae8672c92f83d1261469938d7bbddba6ac
+GCD = 1e1b191be6d4f3db6410c85a3681ab54d7edbbfc83b7ba899e8b2a46864fc159ee83730e7e45fa10807bd83eec8372f8add9a5fcd9a03320c2d5d7ee142a9ca6f1842d3da0ca3603067510df4b8285e35d6d12bef12a90ae773ed516abe0db6cb936b9f
+
+A = -3489ade7022c6ad6118669e7e5d24972ab558badda67a5b9a16d9411442ec8502a5c0a4fbc297074e3d2e923597b76416bd17fdfc1a7b49f7a0e7889a5568cd9c9b388b205a053ee97ff5f8a30507979e9b2d03ddb3f54eb97013e4778b4001eba2723dd9a14050754029d6c3aade4cfb824fd24b4b57e2a7b1267c3ed7ccf16ed9cef3154923f2bfe8ea761961ff2d143c2f8efd19185b131adefdad2c765b57984482d2c6b629f1cf13f9e03f223d33df8154e2c1740d48ff245cd3f3547ae17f62706f1612
+B = -7ac6dbd7fec276931ce753183c21d71d1d2b20a4931b931c9eb973b2dda39590e9b95158c47360b3701ddce8e843678cf88fc7ea90de70644070338725cda4d694918c83ed4c490770097ec83b2984d255404c95ed2013ac119e9e83d148e3fb9c0250edf98e767253890c8672b306c1b9d8abe438ef8681a5c6f60ebe86e0a2dbb961dce73a690fbc0143435bbf912a832b4df1b7155ddbef1d939f30113e01f6937253b6c768f6a0411a56495338e7bf2d21aa126c221d7a9bd8b1bacc7a16ec514e5176a96
+GCD = 7b9737769106c155ac8c20926a401649535e016f68b5732d9247b8498dbdfc49043cd2c8bca28c95e1f381c47f4b032bd6dc135a8ea1b2e48b0b4497c90d063e23df950d7d1fa6e75ad3c5e5d050014d5711cc0a0140a387c60762e9e7a8423c00d1d46
+
+A = -5dd8db2d99489626dda66b067aaa96f395a9bbad26a93176ecfe52e3a71bc0fc1b70b2c811445b7a9a4dd9a8ab30a934e993e6f18bcd01d2bd4a812f1473915275c9c5a5bbb67aa06be725022b99442715813454ba612a85cb1df6d48ea8dce8b896bb55a0bcc9b94fc1ab81592d3735415db2a6d3b8261c1eae2bcb15dc7a1f598ed684a4f6c7d40e78aab84b0c68d4de1a86520c1eed8e172d7758b23b9d42d73eef532be31c0ea6a01bcdd0a4b48e744d18c63ec0e3e7f49c9f219b1b92d7d12ccd4be00a0
+B = 16acd6d305384892e53eede09c586bb10d905a06ced4a0260be887c6c14d6bfa95edad6ce334b7f252eec9c66ac71d8976148acf50927f9ed84dbe71fd350c8558b0c67009a1b131d14e317b16d127e4618cc8fb6f2524eff9d4db519a12143a9259d1ca5151df2ef85f372d15bd8bb50e71b50f5399e580db9853ac14dfc505fb57fb2c6f00003853e23944b1db5177733dfc5bfc7601b05a83c508121a4f1ee6b7e617f6b6fa319932c17446100bb50cc82a0d48c9a6d5312c098c4a6e36328883e309961e88
+GCD = 1e717809d1cb24d62b0c1680dfae01ec4cf1532ed989789ca847af25d38e082b3e7fae8c3535e308811acbcd1ccd3a4dcc8178ac968bc9c3c4319c3fa499943e02d342e8cc84d5fa51d020355b052a56fdf407404452d560ecb575af580132f8428dec28
+
+A = -17877ecc7b471e7ae5c7d40e163946178abc88db713589d1968042ac4e3ebf2499dab854643d0aa5cf56fc102cf87583656da11683efde0b1f7487429da4ab0fa1931f8b58a7e1df14dae0b1b30c534118ea7e1a3673fa3fb1556ea07bd1c893ae663f18f9bfcfe13d889fa536d605fbaaed1576626ff377a95584a01be912424925f331aa2d9cd76f288e0d69359f7f4ba1947fdb00539c9ffc210629b6c55413807e103aa678f5e73a3797c4c0bf134d13c45f35ce444c3f506621859f2ca3fb66189571f690
+B = -12c4588c9da5e78115800d028d19f30a8a85c8c47f708dad881548fec80f51caea08955554cd1dbab36e62aed8f0ddb14f30fc6fb618feb92bde94acf67cdef5e9b4bd55186df482c50cca46385c7b779d1e17b9394e7a32571d6a7d1a24306444106a0364183cd972f9351959f7b462afe860956fbe36e93671d13b55c9c001273a01dbfaa5c3ae906bc5a2ee98485e8c531665fcf588868fbb2a7e0b84d06d20cc507d8edb01ed38065eb044ce556b21f3a34fc88b0ab317b27950538850c6c07b5bc5ffe8c0
+GCD = d5963bb1feaec15dccb278d3c47e09d9550c500a23dc192ee3a5e990d0f13cc0badc218738a7bde407e657bff4a979f7e387946483fb1f0c15ad85d6f2e977c68a06ca49a43d3bfa91b03707f824d569a60adfac9e607ac0c681208db395f8bd17f2b70
+
+A = 4ee8ad35a25975f31965c362c4f43350160e7909edeb21cd702caab319e806f522d511c4f15082dc88d70c210eb8127d389d9413acfedca32f9059a76004648871e55991c44be932f5d0b6d3d9686dc7ff14f411fdd605d9499473d273c3a531657de0801577db7b2592506d9f1c4e8f2dfd93702637dbaba8aff8615427fb6c7371da1fbe9cc753fb919f7a5caabf0e5f9b3ed1d1b9c8be56b5fe5f5057357a42ab372d5c249c0a7a3f5cab08b6f4e53f8d0a1cc7a46f0aee86be2db9d29814f69f67fa14a364
+B = -196343ce38250328c3936bcecfd807604210f53a5c72b4af4867beee558604769663c097afd442c5ff7d08d13b1330e00cd82b84e2ce0ce45fdf77d040379800bb95db6c09753f58d41b1003ab4e90d2fe32443cc66af3c62225789164a64519f715f85363ecd5ee6c37dcbd3f048f92ee439f92062b06edc43fb2b09e0825054f0a91cb08a66ce0981c1c41d19b5faffd3b30334a6a300e2d651e11e60e625c906474330e1ed167e33bb1c1b97395279168f52a6805d09e66f1a7c98de52f175dd42f4039134d6
+GCD = 1f69c9385e3538c6e25670d9a0fe0d2237f84f2cc4b131c7b71844cd835206c3f5470bb2b6d47f828e3336dbf94a02927d692c7f7569bd2a69fcaa5e72c0acd9665a02c97429d0ac5cf8036fd931f331718c9ea1c5ae9fa7d2d359ce862bc76e15d45b2a
+
+A = -27c651e570d2c625c7b4bec0841fdd09675d4365ef57796ce2d9b469733aa20c50e14f3cf665e8f80004be44823b2b986977b4aa08d633fc32fc793e3a9d60a19834b5af8aac69a712286661baedb749baa6dba37835897d9dafd1fd307da6c116b89ed6010cbbf8685fe94666c1ef57c0f833b21fee4d6c5182cb157db2ff74ecd2dee6f16727edb2b741fc48681d04c94c0df990771f140cb7f6c0a25d4114086ecbd5965f1259773b05a60fd55e77cbadae4bef733fc06bb6a834242729b1e3ecf151949fe04
+B = 3504084a47db590c812c672586ae99635dacc48c3a42bdbfc706120dbf0273c08f73dbda651c22e7196054c9f2c832f720492b329873024771b35108a9d8b1263c77241d636df47c3590cc8fee14ab3c7d8cf18387ac4ea616f954a3b90e296660515a9403c4fb1cc2c36fe6491366c525d224339d44887771221aeb08ea1c51c913ec3f2982b257aa826404350568969557a12978951f4aafef2566d4a76873b121df9434f2afdea96b233475584b698d74a07e13224c1f7de10f68b0080fb4c6db3ce34298cd6
+GCD = 519fc7daedd5d32f9351fa4764942e1568b78f4469fc2a8d9e43fdc9d213aee766a001d0e83f80122394b487e3831a0550772c21ce3cc69669578ba63f79c75fa4ffa16a8c2dbf04049ab59b645efe17e36c6388957c4438d02409383dc96a841211efe2
+
+A = 1196d041205af939a013b26bbacf6296bf76833afe634d5cf57827710307e98962f8757dbf236ce11a8f1cb94a1a8c5a7a4d6bf7227c4e404941996e63956f160e0a83b5c2a3b26c9b3d10050375977b20d5e61dd752b6a9ce9b733bc744631928a092a5f1d06d370a1bc0fe7beb17e6b742e7ea3925ea2021575930dbc05cf435d5936e18b28dd21d80aa626dba30ef13f48d86a7e10de95e3f9a9e479e3709da31310e25538dc9a8ed344f54f269250a6b95262f7a313a11fada099dba04664a878f5d2f121da2
+B = -b4643d5232b27c3aa1966d5d19a2b38ae378dc2a42d8a281e37319dbc9683763c022b508316e150d7ee3059c196a50d879cf0b4cc763c38fbe6321fb69f60a23e35287286c304ec77be43180a2e68fc4a315a54a12bf6b829e3b4823174863dd0f25f3d1a841101f7da4e3732d4b144431d04d15e5a6c4711f35bf4da4888a7e86078fb91b0cbaf7c63ccf4bdc19f19ea74f9ef30c6a41ad832486af4f42130c4f6d8b9b2bfaa77fca85ad60fe535ddcd7dd720bc0632f3f487f6c1f106099690aec4ba16b435f4
+GCD = 61e4ec9f6e205146fe076bf849faceafbd0de3582d6597283760b11e01a80257807d805dfaa352aff62805f78613def8b79026a457d47400b671a1831a91866ff33da9a5bdccefe7b2fdb3cfd3cd6f90b99dfd7d30e7d80b8836f645333af36754cf7fda
+
+A = -691ae24f1f95467e2bf85c1bb179e304ee83b1d50f8ff7ca0f6f7f42eb248bc59eab3bb6b990179f877372493787ee590efc2f0a5d2bcc81566aa4417e9f082943b9cf7fe32e18bc01968c73af31a2cf0266599fb270316dba50125879a11ee902ca94b8754293bc417dd183c145dfe0a1c57e06f1ae40e83c444fa56b384b84610da99489ff2044057094ae5f6e4755fa4c84dedac84365587f25e80e4aca375e29db21b3839b08865ce503e5d48859d97b253f09933758b574865b4edfb5e7962e9cf04ac9f884
+B = -2b4a2dfbceead3ee496271c6129cb84f99fd8d902d2387ae9d1da853c9f72cfb2a30dfaf85100063432afbe5a68f65fa7eeeb0661cc083eb4c3c7cafd98a980e6de9a59333eeaabf6251a504b2e8618ca570d504f8c9bb7c5d2a5ac1c7e5f76060d06d51d2b933aa4223069fe190f8831b28d7aa5df5ffb9bf707198c49d2210f7feb24266dbe6dbd12bacbd41b6c70602613316bc6ab68dd439035bc1a6876a9098a07db89f79e0d01f1a2e0abbda496ff6dd7bd2c71fa2f4aaa9d625cce015a5f06a1c5ae8eada
+GCD = 1c80e95f7be5d775af933d8fe31adfd9bd67b7236ffa43fa10a51f5b4c7e494459b6678ccce88d29ccd9409d1811a60f5bd92ab23269440c33b76dc2c6c04becaa2afbc59f9300f497d4a32bfba010d847bbfc5d04b22b8c3a332d528b71de3db24cbd686
+
+A = -f9990c8fa318f1f98e187dc6eca4075ce8f50d1403c7cec2a5c0c1cc5f74e26fe5879322aa438258f776a260471edf4c1cc15a111a0513fa47c4ea6304999bb5321b785b47aa68118198c2267dc68ef8a38101dca4a5cc3e9cb8b876a06bce26f96c819aaa68d4266e23db7ca9e75f9f5f670b028edff16fb8316d50a5833068d2a561cb408f00124c9b90e7986fbbcbd1eb5bd45eee3da02cff35e8a78888b20c43f8fc52a0c85bf9b760fc5cd3c9507dee89cb3a1500efec9467a1ddc6eaf61b113f4621958672
+B = -866e0687ed22b6932c988987124b9b1cffce7223c5c9e84fb8da17f084c747d46264d4e6df18b9315d4dd35bbb02bace7568af473535acee5d2f9b47593858f693450927a06b9f8efba1fc1a2a186fe4f7969a6856be1c01b882a34095383b8589c519827cd94a34db5b19495b2b6bf79cdedba9ecd65b5d4ba445236d4046a014ad448626ac855699c5d30bb2780f84805f0ef3c5d18f562947b453c2f61cf561c7237c59631428cf3f7e8a75b6bd16f10edf70164589f6047edf919bc8555b44c48d7d891b78dc
+GCD = 2040d3adbd67dad5b7448cbef6f5a0a9a1cf2c30e2a43cc84dc590a24ddedc9a7fefbf35ab168272e88410c5c27be0a219e8bb8dfedc11e33635a17186eaed486936af01c4e1b986e7853a2a61d9cc3f94d12e93b9a45660f90e70651fa1fef6b43ad9982
+
+A = -2796d5683b25d4ca29f1d39c98d351a88d3f165fefee3163e66fed6ca5ee50373c4be23a000019546aaa510009b960df63bbc64005e56d15eb792c9ea627f66068d07af8611d8ea0359bccff1266cc3ba5654928b063115d67b62e8b5e76a64a08570b5d46ddae63e23ac0226a5fa5406c7c634a5ed7688a6b440f740c1be800a8500587cd0755d2dd92db0333812275823af3ac6e4482a9379919d6ae78315f6e963b902dbb6652ba75621d13b0f703ae70eb6f3a00ccf6eb320730481c80698f0bfe17aa08d46c
+B = -21057e4853134cb801ec73070de0dd9451d24034a8599e7236c06a6ce0d3082704d958a2a31bfcda646880899ff8ba2b6dba2f2a416f58558370eb79f2fa259471a27838139b8551ba740fa2e9194f800cd6a950d05baeec875a5d6abac69f48cd1894545fd4fd10793e67f2cfce85ff3c2def2aadb25bc5e7e6999857229612c8da85d55e3e6b9c33794df967499acd0f6d34c12f4f1146679c5941542d820956987ef2dcf6dc9e1ea00b17fad561d439b274789d5686950ddbbba784c20e4fff57ee8cd48ebd20
+GCD = a6c16d6eeb6241faace0d5644ca80901d85eefa9c97cd7c04bb762b7dccc41ef49f93c273788e52b115084854340a32a56fe271f7949a7639206207c0cd09bc6f0101bbab59a8f4875249caa3669743231ecfb5adb0e89d81b13de77e6ccfdda58ec8aaac
+
+A = -171843003dacde2d35330ebe60f7d34626ee9bd50abb3b57b169ab2c91f9ecc47917f476a7fb528ccec0e30709fb98d3084a8e3587f38c84288ed029e48d4cd0d8a0aa1eda442c86d09ce93214354dee58694061b3a5079217787a46e8df25dcc8850c1a6eac9ca08406d610a067fb8a662a62232a81d7df46b71157e99f307f25fa3dc97bc516e06d120209c87aca87f4d04125075c9e2a73896df2e4f87733d3c30f45f78956ed11c98e4992bc8f4ca8410d0101ce6b0d97e9fcfa94d1f902f90d7618ca9e5fcbb3
+B = 150f378faa79443b9ec77e1a107aa8a7bc55889797353152ddc2949e0af76e9ba3d2903559c369ad27cbb025895371744aa7544bea7c91387385ee72afade8eeed0da5a3bd362b69ff34b3b65d701b7f44ceeb146bf6ecdee8c56e3ac2ac3ba41d7ffd7f62bce95aa1907974144de26b6ae1ab190f27f839473d74c10f0756a63c9ea525a8b0245daae026411a713aa07c90bba1f443aea713eb102c9bfa2474b744a438f749e39e45de62ec83d1ab6429e0037b197552f693a4fbe893dd9c7284a38a542d51604bd9
+GCD = 62a6cc76ab1b4ef8ce94fe7098254ab7efac7a01cfc7957c0accbafdeace1db2f8ad559060a6b69edf0f4f8359eee7f7af1a1ca50f39fd9469a5ca83080e655e00059d1ecb1660edba16c7cd088bf7aa622197233b523dbca4922d26f399cc95233653531
+
+A = 498762cdd4f41970aa352e0c6be4d444815399ab3067a5769bddbefe475bff53e3b71f50ab3f66eba9974751f9e12965256ebfad4c1f49d64af74b99da7235823affba624610a4b66f7e18d556c36309360003b41160c1bbd42f4971bf86ee2a5e04770c47c24fd660d93deca7fe2b51346aaccbd0509379d0e96583686173ec0fedf1678f02023089ef24e095462f6ccb3bdc58147e004c41cf0fb7fa843b9cb06c5790fd770353bb161dc9ac45dda9d869496e9ada13de24ffa47d0a08819d18cbe5162c1df399c1
+B = -4a6cb4688726892554ed2f66e32f6ef803e6ce25a19bc37efa80a291efb3d24287b5c9aab66d6e7ba4c920403df0a4f9a94768302c3f152b0c1759a4395d6e6222852d956278f7568c752240bac4c3f2fa7f20ac95629e3da196f1794dfc148e082f9c448f40a8145f37d1d514bbaa280b81a012fc34550a7fe4d50f118ba5197f11e216617d4ab15d9e789f5c8dcf3f8e6f938c130556c06abab0d41a06cad93267e4845f26dde0226cce36a7cd94ed958897e5183eb4b99a5170a7bf70368f9c67ed083d8d244464
+GCD = f7e7522cb3111f6c19f9a2a523abe270170dac23a11a97b7690d3c8963ed0aa656939fbe29868bb41d73c79a96d8775c53ec399ffeecc09cecbc453f32e1a7c38b9289f917e29a33ee713313581afb8ae2648fa45e06e5913384a190ca4742acaf92586a5
+
+A = -4856fae34e2a2e62d5c5423010aa81e76e7e66ca1557d9567e09f531c2090b54d612dcb48f332a206d2cf0fb6eb1a8f012fb684cd6d7039f608de1fa7c3b271fc0dfc104d271d62e70c054cb5a7c1dfa65fe5ea5ce7bf286f0f106c99cc124c4d0aa243417bf3695579acf8d776ca799f1d11b95f039f4155db09165fceace9695cb9ba342b9526d4007c8cf0dfb5b52a612a57745eae00ed64b2a52a7792f89f87994f53dbe877c0276daf4b2f2fe78ce13d2d07f2639141e6d013462d7c9b39a39f5fa103316186b
+B = -3ecadb4521e63c5a5f495d6e70d3bbf72f4f4c22ea1b4065256e0438bc9d1eecd41d1fe799718449720b051a12b0dcf57d034ad41e1c48e258651c1222769d611224d2750fb153880cdf5e9dbf7770ca3abf79c9081f5bbaa1f39becda307ed58491a3f263f367b20d78004aef27852b3f2fe3876adaf99a66e731981cb6e3b054fdbf230fc3659a8c92302cf21eb6a8970c6e933f40c9ea25d6e41d7825465f6608bde29a026ae09ad1d7c7507cc5132d834e72761c51468771e46d76c8d19cf0df241afa21812062
+GCD = 1004baa61c90bc74ae6997b6a6f38aaf187a03599fb233a49cb992a82fea4f72ee3b6e9ebfb7de41b4c97720a1b6503bf28b30ae613167621b9109da976d7b74d13e3af46610c810da3a959f5b914d504c55310ce21f690965b13811081c43395cc03d3237
+
+A = 5622644a61731e8c9f5380b3ebf67b4283066e66b65cac981f7ff25e1081cd41c9aa50394dc1e5cffa0b8d3c338d453c013df29a9d10d1782cad1f7ef4da553023b36da6a927907af9acd113a14a53f2724d65509e29f18939c641128488fb68d724233b8acc19842b605ef510b539ca5db7722ae0d95c6d702d1361e72ee8abaf6671cdb9a0890b544a72ac1a363bc95b325a074aaae8a9990be3514a00a3f361a34bb83a515a5617c44bfb2deb265caa89790b360f24ee03145883b9f34022d3cfd06ce97b0f804bc
+B = 6194d8a8618f6cddd71ca05d06b9952caea8be3ee209d625ecf024e2662d9bab06c31050eba583695908ca0f794e6a2a6ba4a3f71d30b8ca493bcfa884c3a1f64ab85c110d6f89a2e077f27bb7b8205e6273c185a7cc39a31453870fd3eed72162b276f6b2dbfaf5dafef3eaec04f9975a283e3c146efb40ea2538ebc75f36e11edcf4a2247003294a1c6d0eef7c83131a338dabea53f95043fcacae3d96f51fb2606ff688121885e51bbcf90a35119cf16a587130962d7126653020e4c88482ff4851ef87aa872aba6
+GCD = 37254ddb948c44e1539715650fba971c107a4cfeff0454424b6468ee595f9ababb6a01c5b88795e665c28fa7d30849faada5f9b594614e02747a46197a449443d0a5201854e367ab0bef206c05c74fac918fc1bde784d76655f280e41d243180457175d806
+
+A = fef6c34675f1f45792a0ab3b547fe93cd2fd4d7da43f421eabc41c99a7930705c90c1b3b0fe0f235ac98bf16d2e9afcec86fbcb8293ebe031a5cdb880918439db0bb6954f90737d377e8dc8c97fd23f1ab6f1d46779c7c25b5e8145fd5879902bedbd2f6525607b385c10eb8c7df074d78eb3890207140c518b3c8066914d5bbf8cdc2f7f5aebc2b9c17ebffb85b95a0b5054c08449e09bf1fd7fc704e2fcb83221d3be05e7645b96226c2da3057099bea2a731c9a968c1213d7cb04bdfe35641f671534ac699b850ed
+B = -7013c25dbb99686b79bc9463485c2f47eb7b9ad4e24dd724cbbba1390c43b06fe94661f6a2eeea1ddc20936841208539c87f41487ae977e0893139e0c5fbd44a60848cb2c9189c4290c3182c293487494c7965ddb66b0aac6ee85d158e5531eba04f368f3928f73072fd8200199d94ce619a0c5d56936d8f4969187b11818ea21cd76d75d3d0cd6cf5d5490b2cd622dde3f1028ca5eeb7f2ff444e4add8844b54430dc8c912cf7ccebfbccc5020ad4303abbf725db805835a0ab97b4de1cd9df6d5802ac9c98748977b
+GCD = 73232880d57267ce0587b30ae15b47f7fdbc67f33263500f96bb975c6d75c91e90532c26ca5aa26855e51adee5868216cef0f4b9eccb7a4049d663c81c1328fc47f32d1de240a0e337cf4d18736c1f34e5cc91bf1a3707105a961b82732b62e2a3996b21c3
+
+A = -1ee51059732f32908bd36bcc05b60ad4b4ba9ff91e0332059b0670adb1cfc73579e5bbcf1f4a014e5acadbacd1883188a3444588cddf526cb67661a85868e21215bd3baa56751425c3a3bc485d4a5b281488978d3e153e75c5daa31b088a717e980c8a070e9c43e00fc61a6a7710a8702a1b1627d2f9e2f4775d081c50ce3be8420aedb9bb843a11bb9f1762589cc67ec382fecf95f675321701f112cac48400ab5b6837cf9f68b750178edf492e7dbda5913799ca6be5ebb437deffcbe812ee7c406eb5f1d8298b698e
+B = 2c8f835444d350601b8045901796b01991c0c97701364c53afd26f57ed43eab5eb25d7288cfd25baf2736c9b4d6ec77b553565cc794d001a342eeeb5810668922a0ca04325c7965ea603baa1bde0e32d33d71e6b1ff494fd17a8e0adb1e0f2cd48dcac522281712552286eee79a209bfe6097de097500ef798c679867ba771ab4c379475377c130476099966664530be6ea9bc7b9877519f3478ffbfa8d22d9382198389747897b600fabf0418790699d2b94008c0e00765a69a58cdc24347f8ccc1b50159526e740fb0
+GCD = 104eb83b6ad6e2860d3ea1c7ab438e266c2915d3ee1397b98f508c0ee5cb4cd06627dfe839c667e7f0d10c740d1a081c5e5fc3afb99407063284443f91e8ba34c4c8a0f4d54dcbc8c2bd02a971c965d298cb49e065fd9125ec366bb997f2b76832f8b499036
+
+A = 21507e334c37f22b9d70d37d6255963b03e6b39b9b5d09661d03c2a0184b1eea7a4e8d0bc2fbc9403d9b8830ad85eb1c4e22610aea1364710e67b9257c2d8a5df6db9089294d3e4d5dc6cd6a472a732670157d2b39e6ee32d5e11e38c919db15105af99f903881308c0047e8178ff6ab781176bfad1c8d7ba607a16fd7c2884e6b9bc71ff2a81ad7753e18c5f9011331afc55d1e7ced3cc281ff90da09f085b75d60c649b2bcdcbffc80217ff805ab55c78fcfd0cedba38c89207f8754e833008168f9a84d57812150c0
+B = -13383854bc8a7ce691d2fc05a693f81f63a0ae434d598ba2470978160c317f20b0ae8c960090263f5054bf00e7bbe2002e02bd4224ad2179b980a3b8e5ec9b91e3225001e8f75ea10d2baca94b0f11106a2f688d316a68c955155050829065024e47cd0cbf9c31a713f46001c819b05cb2620c89a5ebdea8c1cf364f203a372600e165e4100e0d7b883fa9e9c678a4129b3fc9edfeea3e18adbdfd4994f24e08558cc4a77f3ad0a08423c9a7879a422682d80d611a575bc0aceaa1448d9b1f3cc533ae8e0b2feada64281
+GCD = 178049839cba8b4302b23b31005fe001ccf8c8243c4e95d883ded2f42952db029ce0594288cc13c86977744155eec92fb8bdab65b2cc8e5b1092a4fbb524baa3143fe484b08cc3a875b6e96fbd42536369dde2fe0e58016566c7244ffb667256c23f196d6c1
+
+A = -5d92f64dfea1704aa7317339765b0b42b4450ff7dabda93598749b8828eb90ccecdbe630c8ec41f4bebc64dfe288dbc6492f764a85eba22bb36da1517d5b3861e9d821474398e25751ae6ff1f767d1a2247f67c4ad286d6f77377f6d40999071a69d35d00acd2cfb78e4b12411007762cadf3c1f076304483a08dd8f7b6b3b87e4e2b69e6b6a35a457e5168b7a5cc5735f30dbe042f90eff9833cb8c0bc84460600c4269f85011f0665d3a3783526e4fc87e23cc045d7218384acce0ea1397aede30721e06bdb384beea
+B = 2d87714d5af41bac703033d870611b6c6a309091181b2cb08f5f97b14144eed5d01737b1251b57df1afbf720c33fb66d2856c1be043cdb5647e966ea3d291492dcf88f723f247759ed609dce93b801e678fca455a7cc466b7911b754dd27f1ae6774f79ea3d0ccd73e79f8bbd4620e5a573a22ff1b28be166ec6ebda893032082cd6766e94762338b17bb134dba81515ffce703a92ad4cc2f7863e52baa10c07d754088394c231b07cd8db8621f4f00012c13053c6abd73601d6713ababa9c633ebb9a4ed928cf1f8a481
+GCD = 38b665989165a956253dc7819a03641551e91d990487993def43ec54408efd9711a25e27e792b251aee4eed7a45619313b95967982658cb827bce80eedb0e4ae5f2b25a146b17fad50f532f76c2923d3bd98de2cd605ee2c1eaa6a5ee3212ca35f692e52951
+
+A = -9815c62e65eec3c3fb7e2dfe3b69ceafa71b155154c4cd9927d52b3c52f49a6b2621a1d8ca9eff2f12257e0512827a1dc28ebc7f3c2bea12a82a1c103c7f873eeadf81c574ab5feec9c383a8e323c9a436ae184ae4aed43de2b8cf01a2c39827be75950eda80bf5d15e7096d9c2cbe520cbc8d6729e8f436ce11ea9488950ae46a998560ba1f4a4293345fdc8431e4d4c74d4ccc14ceb88e4e1773edc85491894f88e8e56931b460e7acecf050cd925316107f7713d2070220a1c3ddc397730940533574bd6f42af744e2
+B = -368feb51dbb5906219be08f069739f5cdbff5b58598f3383015a995320f345c8491bc6830b86913943991a82ab7b65fac430dffd4e51786f7d73cf5e2d9c6574e88c0e9520fd0002a7f7fa5df3e4f5824058dd171c02898d3d3a4f8a5dfb918c643b29d6ca3d04232af573dd75f91dfb21d74e751f2982f139d95b9f371fb844804579397a14d6c23847259d9adc2670a6a72c865dd1264579113a1488e077a758724621d061d159a07a5bd78545b3954ff7129f8bf46aaf35282d2849ad2faa31c9c91c16c9d7f2d4433
+GCD = 5cfb2483ccdc5007309c84b9b549d8a885a96d05f06caf97258f11690f0ea613497b058464297d69b3dae37da878913426fe5149be90338985557631924969e5a095e4025d614d5c170935c2cfd47165844481da76108599ce055ffba4e7737b2da0b68c559
+
+A = 3d168d266eb73d3862baa050ba67aea7ee219268153f2751f932d0744faad7a983752b8c8d645e22582138bb7982f383da8e9f6485dc1633d870228107523c9623c4bfdb910c27573dfe89abadf569395a4c8739785a36ed10f3523b4dfba29fc1dcd164d3c8b5d2fca09fd24b4bc571199d7c23d932f74703e9f3dd3ae39269b113176231977dabdabd804565269c8097abb56cde74db785f40ab9f73f0a69a91c96decf8668e10ea0bbf56bf4824701a49b541612ba8855923c58fd796c2eceef20d78d3c27735238b54
+B = 6c31b3f24263e3d37bbb5d9113f0524333c992417495b2b3e247580ce55267ac4f65ca4297212ba35a385fc96e01a3ece7e1ef7f2187703686dd7bb22d28fe77697ff45cee7215081b31a33f1b1b684527c8b02bdcd388f9da13ed3eea689d36519000c65863488efaf5fb54a66141b3caf93158af0a7fd4be05f2bf9a35c551053abaa011c141550622bcf9fe1d1d4d7306a23db92c3423155498ab97496457eef48a40e45c469c501aff1511a71481c1d5b8ea84fcebf52f95551bcc8639d4c436853b927657608d8724
+GCD = f7977aa28e4dbb83c0a0bfb05ac1282ac6b93d0ce91f7f0c88586dbee6df920b8dd31d13b03574af99a027ddaa91104238d029af809ca9792886b4b6864b52e6f68262f3a272dcaea752ed818b259eeb027b695f39c3be795c4c76bf007866f3443b91dc38c
+
+A = 24225db6ca9307f2bc6eeb1d28068363a7dbe61102ca907e226e5f39668dcff694427894839e24415adf26de738b668a8a87d84f59b4311984ae062a44fff7038a88355f513c9f4e8fa1612b256f15c6ff86a24ed0cc02dcce5fea5769854e6da404eb7d67afd123c85c3e52245288d092d979cbbb62e6bf2b21c0c2162cb409fb0240eda74adbc7eb75f5e0704425bd4d04aca84dd4fd4938e2d003b9ae4a1a929addbc287845dcb65a8360606d4f4e1c48adee3a50a82312004a2de471ad6f3463e4af38e2e0727d680
+B = 122fe4639eecec24f0c45b2a3c71300a865480827ac5c73af917ceaf168d353b5795fe53c66449aa568f11dc25877fa04e3dd5e25a1cf0e2944f23bc5cbc3ad73c0e43e54cf0b8eb90efe7930c49385ebb49acd395b936d8b04be2677cc9178ba2c515fa60007085f87607fc7b26a75f787db0cd909114df28638c03659ae3034fb73edfb4100a0b838319bfdd23b2ae6552f591f99ee483b9e21fad115331d1e774e39d65877c56efd4c508e161b351ef2cd21f18e40de614112c9f5c2ca5a421e17154656761fa48efd60
+GCD = 247eed9441e3a8f7bb074ca1ad236d71da994d4b7b3d1d442620236bd36586e150bf674ba23e92e4b5de395c7c6338bf53b229d1ea08000e66b23bbbd4b92fb7a1c6c32ff2a4ccd727774154c734aea22c8286f1e39a7677fce72de7c76a76d07b8640187860
+
+A = -280761750ae4eb940c9fdaa468842b33603926121746aa94b4d6ca2ad47fdf4b8ad7b2e3d785d93370a829c03ee80203f542486367a97da7fc950c2b503aae2165d4a9583a93465dee0c59ea756bf744f7c424c6153fbcfdc1ba24627be33bda724e839d27261ec084886eb04da759b91f51880762b5cef0e757654903cb4977d25a4a1017cc95e58b1c04cce6a138ca5dd1d168681127d5c6963825bc9f41d16fa2c845802ae0a62b4431fe2efc947c6898501830f261f86edc3ea16a50975a8acaa39ed1ac79e508217d5
+B = -2483dfe0264fdcdd7d3b6d11bd932b4f38c6ace3eab93a3831406dcbbb17ada477e4878666e114991d1cd9282e20fdc01d6e598a48828633bd78c6c68febcf3b6be8b67148120d36f9f754e76f3d7aa2c8115a82d36f5d5a4711ef017b3a74a3ea4f154755c8e8cb017173fcda8dedec77bddc2b0f8811684fb84085739fc15826de6db5990af0f5a9b90431dce6a558d4ce394fc421764f733a65fc98686c3c0a91f9e2f276e4801bdd7d1b5833788460e65f99571bd9760c6552c0014e061365d8f719f26bc8630059e4f
+GCD = 3f2bb69be2308f8d9bd86f0d4b4572f8a450dba5225797a4d9c4513cc40468f5cf8d4ccdc55ea555d8872f00bddb747b4e3c836e61e4759b21bb7efdcef94e9f4305d6920f9f2f9c7bcf52a8c9fc021e9fb2b9f2006d9303b21b1e47d1cf33963820cede3d73
+
+A = -107d197aeb03486890a3ff40862230f72ad68c09b60c449fe70aa75656d76b05815badc5c5971ad6b68ae7056493a582a93621cd7b77dbd665c92e41543c239656347391d7a17582aedfcff72244f712e0dc9fadad12fc9f38b0acb7d2b3265fa28f28e86dbd10c5d606c88bc9b63491ea7f40049e8313e2cff6efcd28310983527d3f2ad12e45eda7e6b1d9a36aea3718377f11aca645f64aa1626d8ef7a267e2b6e2571ef42adbcf09791f2e103c054d7b1a60da51d44570b686453e42b15f7894c0cda07a81763b8549ee
+B = -4d980614ae5117edb7937aabb4f912b1564fe81a1da721d523c52cc44bfbf337c06eded8a4ba67c025af629c70d24a5b85cf1e7ba2dbeeac9268154f4a716466631b85c74d5d26f67913e4e2017dc57b9cd28cb78e866c363e91bb2ff16a4737b74d4768d80427df7aa9fc29a7da5250da340292db5bd4e3184051f0e812672772b8f1071147ef4b5e961d56db7e65aceb5ccd765ef1dfd61ea8572855bae2eee141cb719d9c72fe2631092d7d31cf2a54abe2a2ab4d8c3b5ff99a8bc026f4639b3eed49fa244d704bb4bbf
+GCD = 5364a6650e9d93ab6a05cf7394a077c9e07afb9eb842abd095a785b6533b2c5fb529eab4174c3a051e6b955b5fbd9a99c3be3b3c44e714b553c2039fc0ee378e86d5c057a73204549e901306e82a738230c303e8962f192169a4c82f5279a8593064c071a7f1
+
+A = -290fe19fbdc8e36c3e87af5b2510633c695da8dd1e8baa39ebb549fdaeed5ec44f615d4ea4b66458a2c6784faecf4a9e2d6ee2d5b702916dc7a9d7c8694f65b47b26410fbafb99af2db93e83d6f80ea7f79f88df5e24282acbf0f9a8c76a8888258bd168bfaad700d559e0073ba75502efb4cdc6c8272087f17998a0c4c2bae5f7fc33ec8d6f3e6b183ff05fd72d290c9c9de5cb2343dea97fcededd93f0e2af225346cd311ee6787113b0f8d29a8b6b0a209be1c5a3dd5e29129868c73116fed8f5d98a0c002e0d5bec0658
+B = 22ff217909c505c7cd4da00019bc1985c7941008ce16a336c911a42ad7761f11a4fe76854cc66f2bdd8026116ca425397ad753d4be0002bc9e79740118e7878bc89e69b22e7dc009625797388dafd377c974171b03acea053a4cd00477733f1e9bab4516a56bce614f6a97b0f116ba0e3be486bc0f732326b3377174651488a1225fec76c601aaaf82967320ec508f3be4f94369a73d7b66aeebab080d92eabae8f2b8db20823365ebf006c4db4bc64e1f1faf0aec8057d224fb30c846fd784c72b91500a31b1e789ef04a80
+GCD = 147486edf3c1eb2c9ca713d33f07e374234d76555da57ca46aa97eae817e1283c33b3bde1e35f797b744ae53de1406a8421188a5e29fbb896f3649a206ad35e1ece45ccf851873b2478537dfbc130feed4f3dae6a07e9b07ed5487e0b45055c651f8787c42008
+
+A = -314f4a18611858ffc662b5c1260dfd6f3c810be13cc66cb455609c0594c63e49ece1e7244f1f56047a55bf54bc247515abf3d5003f063a3e214b4569c61dd8b0ddfd837867c6cc550f7a332a8d274463c5f2f97b5b15d0c387acc4a7937d923c7fb93da638dbc87734a8165faafd8430a16bcf6153fd8e984eea856e406970cef241e47ca97e3cc9df9e0ec09bba1a26ba25d522c792dbf528335f2592cbf509fb72b93d3e850efe4d04450c5a81ac7fc953439893a38246fde3da68cc81db889ac92b13e6e34ab3eefac315
+B = d8315decd7a239fe74a6162a4ba75cc8a64d9cd18f5bc91b9026e6e09cd37e196e584ef66c30ece3848d6ea0d293973bdf8d6a5e707e35509f0e5087235ef5ba5788a1ba5e4dabcbc974f5474bad5e92f0c8eb42cb220d2c1d222217338c05457dc0bb0d6d8a7b0e1025188120503a5976eda63ea1ac9012699539524ac16cc972a054a2adbbfeca181a80d779bc07284992a5a37f9efd710571e93de1ca41b70e3dbb08b3f59c4f24cff30e1de19b0881f37fca2140f015830de3f7b13931138711350aa719e9ef1d1df878
+GCD = 17b917648215b2852ce2eccad271d9b2bb321f0b65d5b23641f4247a29c13d9672d79f02d180d527d171b5b652421811b110cd7b9e9df182b2730560833692a0c8216e2225478f5a1043fe864a5ee9f96e150161ffeb4e9bbe71eb3112cf4fc6686b0e42abcb5
+
+A = 3bb81e51b01c1a9632d6401f6425c2eb52d5b93d4ef41e66582daa74f273097f9c4809a0f7e94830ebbf0ad875ca8738af314e83a45e0a17e14255775d70a69141f1ee8c9cb20e6897e43243f38ffa1f2c71b67f752ccf49ab4c71a4183c5ce3ad7ddbc920f5a34656535912b3fa99bd9e7937713f32c99936c0486e19e846ee5796701407b20b08373307ffeb21e8280f692d48ea16e65e4942e08e19666b3df2f73fb45063d56a4e010a84f93db8c55dd1a5c16afc1c104f4baa3cfebad0965bb61fa62f02a3ebd7d5389c9
+B = -ad0c46736ef9c8968f68b7d9948e890c86624298a2e2c5cdca75e3d32ba5c14ec1e12cfe978fa615c6ac711942d36b30b071559225143839e1db4afc69e48dfa6607faf93efc069ad1be6625bf8749fb9176f46d16b85bfa6d1c5b8c84b966301c2fe680037e66deab01dd1fd0f02511d010e8918324d114f92c237f95b4efd9e80e82f15e677e74f8097e27dec8505bf2e9e5f045b747bb2ab15c629a5f9394a752c38fbca21ac54b122b0a9fa4d08537ed9cb9608f0729aaec847e325558769ef2362c19607fd43098dfc0
+GCD = 102af2d00763d432076b62ecb517a8bdac8373860cb21685a176828de7f9e39c1a66e612c046d77b6295d033eb9287e8a960baa3cabc6ee3575e13dc353b58836e60d8dad2be05d4dc60b0b4d5ebd31c032d25f9ad5d68cf8fb5988a78df9fda0b928679f82a36b
+
+A = 150282bdb80ca5d2b2e1d8fa248b5fb2a5d5be916d947beffd8c66f7b227a3a6a221e297fc3c4c7b0107796a9b5d9fc1d4038ebaefe7d52b7d2e13165c82451d033626b4e8e2c36b06f8cd8b8c396988eacb64ff0c5c684f460889e3dcb9cbd04229128b4cddea969be206ddd605ee2459ed89cf0fdd453f049eadd45ff4f040910f7fa6fc1c3aab6084563f9c57bc6f280b0f6439ae5767ae250052827b22cb615ca8c311e5c5e5c81fd119b93bed766254107c454a8ab7871d64e70de736f4804aa94dc32dd047c5c528ffe6
+B = 4833f9f80cea39cea88a47993e1bbe18d374b92c6abffa4d742ed9ed4321b1bee84e0f56bd03a362ef4f1262c870ec64f5af5cf6800d885f2eedec60f93596970e853b4d4c75ffdddc5cd257a4b2f35e397afab111028d705628fe7c75c6a9ae13d6af6175354e05df9e21c4fc7f0e86548dfc0c98424b0c232afa79ecac29357877fe87a55db88bdf8694334f7503baa5d836323f2c0ba3d745b32056b76530108ecff81bdbe32369cb0dfd325f4f68357eea539749cbaebe12a83855cd6bbf7fcad36d44bf93ff14d76e69e
+GCD = 5b3381d11052f443eacc0f25b531239167105c6f1a3681e2e723de7eb469192b05198f4f1c299e3973f91062365f8e88f6f7892ecbf02a2b63be4f7d33c886c60e36391a650e3aa438ac1edd28776acd037ef58917b897a3abc26a295a7cab8b996caf53414fa
+
+A = -1f959229bf50b205f4d594b99721fb6aa2c7fe8cd067d50018efa36ee7cfa86e96606498a4d195db23a8f3582d7de69283ef10abf6abec3844b3ddb7e5f84097bdbcb159882e250ceb044f76ffc9944411e97fa932bcc4a2b4cf89c24d7c08369d044db92e03d29932d546b5a4de321bbe6c5c43e5490747f65707f267cb603ae7c6ec24b53814df22ef17f0a71be2e9854a76f38c97524491ca666e23687c042333d2ffddf097000d41b8b3bdc78d409ad702f2e8dbb50320eb25d2c60630a9800aeb9b2883fc8088230ca874
+B = 10791dc3e6cfc6bc6344048c57f1b84af5f213c025fa7fadbf9aadde871773ec4ab4cd4fe5ffdc16fd57583d90810fde01c5c7132cc7aecbeab86d7c5216d6a8f6805f34e5726ab4b510e2b6605623d5dce877ec4a3fe0f267a41b467c1ce0f807b5e51ea1e96eb94c2f03136ce1046e0fb7d070338714fd3af32acd65016b0095c44c8fd3cbcf3b3ac4799ca83caadc599ecac8c7c36ae8b728a8128337b037f84ebe84169aa9510571e3cbe73934e37761bec51588eb5d9fd7d41718847959c78e6912fcfaa996edbb315ab8
+GCD = 854341ad6c6b2035fc174490be2ad3964472ed109e7de141ff72f35b7c80e4d6721752af249e045fffdca7ae34cfe8a9fc3943139fdcc4c43bb909fd2ffc72bb296a3b166178b75e46455d1c81c38cb3dde91478bada7cda5aef5989dff6b43e8e9918b98a6c4
+
+A = -12b4ba0f3598084bf17a73ab706f37f60e13b931d2773c135f7d4dc6d52f34cf5fded897a04d1de7e3ac701aa2b8117de85baa0a4be9b7efc231d0e00dad0346e1952db3aad175376d98691ace884b814195c7cf7949e6cbfb019bfa1bfa36f208625178c52c3c6a555bb17f4cd911418a0caacb3e93628a4997dee8dc59d4189a81b1f6241926c374717c1761380ea7b6c4e1624c53861d8606efe06a01846ad715c087b1c3fe76c9dbe81a32a6e7bfe43fcec739936359c1a995f56e458621c3bb0f73fc824f584919dc5bec8
+B = 1414e5a0c3719e09787f64a46147c107776b5d0368642a204f6650509821ec9fa088ae59df37154f0e36badd21171e0b6f33bf35de1377e5fb5de339ae59d96bb66f595725533fc2b4301fe9bd161625e25ba41b350413f50b6f322abbc4d4a0e6f12ba4b1aac8f2a5c7e893ead4b3faafcd88f50855ab92a48a62159112d503d18ef073a8d211a0153e2fedb974ab02c6563be2d3658d30d533c38daeacb85efcb5a13d329c7c06b3d644df88983a76948e281cf6e1ced33dc0650308da716f4fbc384a2b355917e8afc1989e8
+GCD = 325dcb67516509efbae96fd4232035718e8dba318e7b9d73d3ae01065e12c68399501585dbc55359e2c7ba49e2bb013e46639fbea79e90c9d88da020f07506e50799964acb941744679f41a74b82a86490a2f98fbaafdb89e36dca3b4c9f8b478e4f3bf72acc58
+
+A = -4fd1e47fd914ecdad6b131d48395505ca4341b1e24070105cffe0efce7ec2848c602951ce7e7bcd5bd58c672371e571730f67203aeafabf883f840067c53a58089de95721b806c29bae1a14b281971e4d2b091f4c8117a052ec6a68b76073dc0303fdaa3ca6f5858132531dd15c5aeaa778572dd02d4532e023cfb39ffebafd1e2a7e8264e743d31fb0a070c77d08e33bb121713debd178f40d8af76697ec15b5cf7f140ea559f49acb9c8bdf97c9028d6e55e7024aad9be5ad2a23673669cc7697df24a77adc749bf71bfc6cae
+B = -2a8fac5f3183df8c2ab3b98c12273f110c30d349cafa7e1cdd17fedf727042a5dbe7e0bcac8c14b6974decd1ad2dc7b5bff4ace997f9038bc3e97d411b5e3381a904667af9be7225e0239fdc281b62c43cc401af9b7eb010f396ce98e401b36111d0a94320bee8daa7c97bcd272ac21090bc8de17b53fc2ea4fe9cfb304b46f682a05633f9ee5f12f093fcb8ca8d284bca7cef7342ca21467405236c3f69b2a0d05d9ecfcd4fcc8e076d8ed3a1c039489007e567f0d1806534ebe0d699ce68355c2b70ccfa55d9d2567210c5978
+GCD = b9359f0391ea5e2c8a0d71c00caaecf6c9330e7753abdcfb42e5608a5593f903722dd222e57dee4449a4d32c1b0445ccfb157f20848b952cf0cffba9b0c12dfeef23c08faf77833d30e8ce17f98c2ba91bb3261e3c3447e3ecf58d6b7c4f83fcc864f01c326d4e
+
+A = 178ed2106ec30b65b08b0b24dd79b31a8d07510dd56f7455644def261c2036b0321da9e40e235bf0f8241e26823878d90e0285e0f9f2b404b9aea0459edfeac09171c27fec58026432188a475754c1e9659d04d0f3a34a61fd2f0e2c630761871a2ede715f3bb7504d106c198551fbfd51991cd07d91c8dcc6f68c6fae42d161128dc222be9809822dc16d95c08dd27b8c0ca72f9263d45033789a8c4d33ade74aaeb5584e62edcb9c5ac8b3abff4fedf6c253a849e1f8679548bca0f883e4c76fd0b13c7f98803c2ce8e37ab88
+B = -54c516ad07a7e038496372cb032b4f77f46f996f9508917fa065326a96bcafab421b0b2fa93abb0215a2307c8e01752cb3dbc182586723ee82ccb49dba895abfc2a0b4600ca0e43318b4562ca0b0a24bf5cd820c82ebf0982e0b6d376353cfd2a1044bc83c7a8b5e8bfb7ba4978f6906bd8861531e183d6fb411bfd6e6e2f2a9dfec2b0020b7959f10ff6c3e9834da1e35a58209e51386cf14d304d17a87d9b42f4c330d6c20acfb4ef91e5244d5d7c82b00af534640ebbe75e9449fe9061e8f3ea3732670f060d27b43ba24f30
+GCD = 46fdfbfd0917ee37b42c03b07321de682868704d67178832030418ef8d795fad359216c6c38b13f095f6115ca1a8d42b4f1e551340776474f59a4bebd1719d2cf8873f763020f375eea773f12242d6d580e6f69b585d6618947209d2615d9af9deb136b9444388
+
+A = 46504e907a83503276354d465a9e7835dd1d39447d6f5c53e4128747e420db87a4d6f6eac237248b9d858ed203918ab79aa82e622c3608d8b755f6da6b5fa5ffbbbfa76c1c5d749c47de43a6bbb9a944338cca0fe28be90d89ad12979b8d598543b1447dce8697f4799a0d4ddae70c9d1195177c8a5193ffd1de052e15a2c34f9f550f46d0247b6dab40e8b6bb68433852f9185ba5e9e06375d7b565772909efe3a3ee351d89d0c2cf7d28623bc82c4ac7e77ef98ec55ca82763ca1640d8c2372e63e6c02b16745027b6ce56f7fa
+B = 4eae9d4e2c70f0899f3c6c8cc74f2915f12fd900fa606988822bf254bc9c5095985a951d98b3c069bbda6fdd08a85e0f5004133e48ab4e757a33321e95ed97957faead6de30a0087548f78b9f44c64db94fd2a043faa1e8d57cd226c17c6553d5123b8acfa6a0dc549d5969b815b9f129fac9f06266fef65ad3a73685b194e85e381838c4643fb1ec6cfef7fc49daa369fcca7346ceaf53f9f9a121be0a240cb3841a67c214090461a111c7c4602afcb3078dac4c59e122ba522b223835d640c63d714dee36272ceb69bc48ac3c6
+GCD = 18a87a65011fad33f9f783dbdb0b13316ef778a985873096497d84b18201943c235e1d2681ea924414e8592b52206bbd454da5127b06ddc13794932f065f1dd6efbda2941121df2d497a9d13006d2d4c2039e935251ad44b98840b5878deb27ae310fd26d17023e
+
+A = -134853eb8de7792e6bb4b5197e9c55cb595851423998e33d3d53ab1fcc7eed63a60aff06099be5d8a3091c013dcd34606967f5eb638d947525eb93681422a402d33f8e12c9a1c148607f6615b90b089d850347f12289422ef5dca8120e5efe8caa1bb4b27ab132e97314f9c696e5449aae03060b2493374b1d7a97294edf087cc85a85a6482f6d5f26f045f7604698d7bedaef428cdae3aefe035d5ca97288febc854886c9b6b53ba0b0cba46394dd03ddf9199ce751fb45254e031c24928283491994ec6e263c9b136a64e096b0c
+B = 16cb2aa16d372302d569a8662dda475890ef2e0710dff07152b42f3c6460e300af14d11adda2e8b6889a5c894584efb82d8425bbc0b8c8e3eb68e70a3903269b774a4ec947d3bad6bfb310b3fadb2ba2cf823df0a6bf8a45c80815bdb83257e18aadae98a27b8c4215ae3f24133556ee95b63c2c9d5c71e33169e5325a899a5b13be11746ef6b8604415ac9e161d5348f4c173898f0bb38a50b7d686f7df72b2c28635cc89ad029c08987261267b77c1c0da8cf4daec91282cb279d701811e41258db5dbbadfa5ef88ab35c2442bc
+GCD = 16b85e0dfc4a7c1463c372bd09f43e6b3a191f0c6a074c6ba728a538c54327bd9c843c73dcac526872790a2d348820fd215d50e39e544bf7165b3aadc0477afe2caa9effbfb4c87be692b9df3cbd510c31de7118ae99a17af997f3408e7706a6d111275b6604cfbc4
+
+A = 479dbdd255485fe7ed2cadd32a19a9e4e54ce3a48c17f2fb10438c89e53e6378740e5cc8c4866c448c1195793a0836929b473bc64929d2ec8de176e7bbd83f4ce0a4a348c0da4e0a646f6382c5ec309bf6c2252ed2d9e1a61455f9ead89734284e576b48d3e5e8c3cdc339d9032b3b78e53d67d8927aeec68b9fb5660a2f147a0bd8c22327b371b9d4f82e815fe3661ddf7da5361dd7706e2eb8ec2e6612f5bcf255e9303a72b685a2123472c79825458a98ea8e401c15e155f7f4fa97ce5fe2687db0d56ea4f17e589ca011c7962
+B = 47a2276424a8fcdd6551cb70b2e883f52a2fa62839e740448522f8a37897a2a76ab614b6990e07315f357a48b0cbf1d108ece5a33a2e430587c240543410302998b239215dddac39a496796bdd47b569802fbd4341aba23c36824e5e0eae8754cde9807a842d7ec891618fa03f6a4ee1f98890560d5c4762ca13d5eb87f5ba55ac885bd4721ee3311fdaeae2d36d2ed5aa552816dc9ef7cb8d61c15bafa7e16d692ff6dbe1d37e40bdc01fd2d99f8a5fe52ccd91836244dc55e277684eb6c9c5223fc68aa62e7f6e9474f333320e6
+GCD = 31c74f1ae4cc28ae9c88e51cb1b6e8a725939a1c4cca9d535cb252a8d17cd6931bf6eddde2f306c08f5d64e6361d50d5cadb714c2dc9f82a48c9406b83b3885c2e9d04d50196feac58c221f5e2e0507d5832cfa372bb881a5dfc737562f4b69ec53fc280c1f42aa
+
+A = 12ace83c8d7e178658de51120c6ff7042cd3b7ab97a238d88885f281e115995fcbfc748cc9d11793ebe291f6c6b4b39b26b34a4457dd72027d5ac0b77e580aa0c109c72a0e13a39be6b495ba2fcc61f90328b9f7ca1b75b720d0f6c44e4b1215658f1a6e8c34d3e3adb064c3633d9a9b28186616f2ee61fae4047bbaa9d1bb9549a2414fb52a7b1b8d76b102e7d0665802574f1f6f4afc806c4afe3ccd56274a1f6ffee163d641d9151f3002fdeeb2f0b4e67026d0e058287c3b5e79003795b1ce99af11470831daa9ed8f511dfda9
+B = 967e6b02ee6e1004fe4b2bd9be5de4cf23fb566baffec0bfa5fc2dc4def2800e1478b8212fcec1762f30855ee92199b70697d51c3683e204cc1bfb69ae5fc3ddbdb956f70fffc34e6bebbea236a9b19551b8b8b5e4f993e03d8461085f6b424b3d8bddcd333ea8cd14839aa22edf4598a777ed757d097a6056366bc2e66f6ad7101778ddd31c3358d2b02a43ab15a33306d0359417ec91f043396d93f9788b89778bdb9ed45e8ef28b30a3dc6ac558bebec45bbddd71867e2f505a7676bbd282c9de92add37a50dfad8ef08f1eba6
+GCD = 51c98373ecf6553f1b2747dda4475bdcdf43c01d5bb0cb466e3ea6dd217fb19b252fd6fd17638ba7f0ed4a30bcef060dd464202f264d85acf645825ebc6b16cdaab39dec692fb3b91afd7d5a51f399af800ac96dd087175d5d8c342f4dbfaf45c14150637f42003
+
+A = -e269fd4af89e7752c83d68de444cfa373a5fc3156743d790318d28df826201fb3cbb201da72cf9c3714517b9331e4c38e43c94b49c01eefc1ad8e3215f419f75070ee5b0765a02a500ed4cc52c9e56fac05b88dc80ac3311745bcb6b695df8c13d0289f323131533b88823b45faddf9edd240c5aaf0cb19c962daa78a913875eb2208df9fcca7845ebdf1402f217bbc98495124ab003e9b54f0f7fc7f4e8da5d3db42eb7d511a761b41c7ea3603a6df0dbfdfaf1a65d092f0ba56fd9187a9b2d2014b1c845aeccb18d00948f4d239
+B = -36b650f7cee24b0dffb8d60bf3ecd31f01840e84bd20c558c7a2ba2d86b0ed345580f93292ff42365405ea5210e3bcfc51963d7f3d1eefa69e43b1c9836ec984472ec4dc4bb06a8b09de1c3169cbb9683b14d5c483d15df972d992f48d439fc44661597305ce8c88521a3d59e80722745f9e61d6466815ae85ba52335bf5688d8ea23a4c607fbc4414dcc8d9321e4683e258e8f9ccab49a078e0abfed4e6d3bad07680e7438849fbbb9561bb8e9a165b9128791b8dbedab4415c7cb3bd91fa72798aeff5393011db3e0935f073e6db
+GCD = b9d76ba3efd3bc15756258c19b0c8e2bff206cfaae8e3bfe9484a73564574e3761ab5d67eedc94e4de12f4ad42e9d908b45e9b79fb87c4060034e48ff5377da0844945a5770b71d1dd18fa521cf0425efb27cf4bcbcc239c228dcbf8f54631ee3ed3db694a5c063
+
+A = -bba04498cd3204cca36bfa305dcd5bb7c9ee54c8848098d6b04c51ddb45476cfa1f41030132c5614af03c0ffa513c8c7f4a5380870509c573c61aed5588a6789656767212a85c3f65db25f06c32529e598eee6b20d7291eb597bfbe489f238e9f7e0daaa556400bcefd39e6bdf421a79dccc2f4da088c1634eb8871b9a906e77f1ccc7f4b75b3b2f869e254dfa46884d452379d2103ebdb9ade615d2cb2103e9dfa509572b2fc925d3d1399f125848a94d8895d0a005c749f11f50e63786f7474a1c8258f7261c446cd634f346b310
+B = -a0e1ac596cd6ad5d6c76391d71d7cf973b9af40e70af97ed6d4cedb0596704aab60944bec9ca7c78b9626a78a8afc7905544a6045771b049c9523366afbf50a7bb183f2fe927404ffe5cfd7ab9eea89bedb7f1d2948521ad413db972722a590f7df032bc2ca289db99835f4c2862792330af3f3f699d52d32fc5a97574706067de637895f65584b8580860cb04548202fa0a4ed1a78c2c06411e6be4a5addf2a8652d151af7a335fffa7032b4d5540b11e7f60b7f34af984a29621f63e54d32d66a875b35f7da75781d5cb090c75f0
+GCD = 5aa6a389e8e154eb0ca4120058da179f7199d3aa28d111f379bc834987859cc8d2a021635af3a21ca7e5dfeaad33fb48ef19820b49dc91c556dc4d3440ec504e159fa83ec455c8a4e44bcefc63bc47c814f5eb44128bb74fe761a7e8f046b6d977b83883adf12ab0
+
+A = -2a8d88ea2b666c5f833f986ed6725fd3f0d3793e18b743c7d0891942e519f101d653a9ae11e8600d785b3f46f4826c9d858f0703156d618fb1d7d2c37dcea8962d66df3bc5c00d2a4c200478204b6c793a33d37169cc5f95f46b5b2912be10b32ac5656a7fcf982dee420a9fdc799ab05c03c756b28ad97d4e1fa94952f0aa92c883927b7c7fcd9210bf07bc903e4e231caa13acdda3efb1fcae0cee44d6cfee93530ab6d7f62c2f33fbe21e8ecb676099a844c677744dfc59ee6ed0d4152f360285d1057a67e530a0d31a26f4d79d8
+B = -4552356256168426b862edc277cae7444bc934a733a61839e942592f937a3d6ffd2de989d537512aa30bdf6c137f688c20f24cf747312ad507ee9b1a15d71314fa8adc422f05d7450abc038a59783aa96a4ac1a67f38e8c91b174c3f0d1ad252349c783f99028631dc6927760acd57af214e40ee21d7a47535a0c3f456ac0b97ceb5e165eded205aebb4ca697f5939538c4c257bb8a8519303393714e08f56fbdf2419e4a47974bd2f194f21ac86c553c19a35c4b5e77d6ea649329fdec391a452cc2f91398cc059f83bfd3a14ba3a
+GCD = 56080f82bbfd98cb52f632c18f6e276b1042d1149acf02773b233ae4c9d8138965af412fa0434e34f3f67e4298a214b744e74a1a92debfe01db90d457f83139cb9ce0dbca1385a7cd4cb67d42fe5148347e8d6aca0d7af52db2f9f60e6aabbdea6a8586aee0f7c96
+
+A = 570d697470ad67a1bb68812535ec07e9cc38fd4556c4b332c2a8dc9ed8a97bb81d55164ce7743ee77879b05d7c2778a994bcef891c6d018b3417a4acbac92a59bd3e41db10587b7845c3816d037adfab0dccd8c062559d339e5fbcef7fa8c8904f1f67a2fd7830a981890ff5cfadd5d733289a9b8207265753091970b6f6a8ef7d0b639b7bf1da279cf97128690998c41ac2811f898b7cc45ecbd0c6b0e3a976286c99fcc6ddbe1bbe01bc65e22ecdfcd24c4b81bd2f0bf825c6b127edbea6894df1d70bcc6cd666875d73543a8d3e
+B = -c8cadd60812092823981ba3735c26768b89cb5ecf3b0ceeaec33f810ae4f15bb08ba8250928df5a16e0f92e4f4f2a0d249fdfc2a27b93a6999490ca39220436ee6de8d6ed1af4092978d1ec46e58cbddcd4fb060c032e1a5130c1193eb741f64e4540573ac42b58891573a19b73cc1f751074d36c12591f7d6e1883ddcbc393e6dd2ca1a7019dc40082f3e9de983f068a37fcfc019a61ccdcc99f2fbb22bb6b82933d4ef8d0010e7dcaeef4c9c272e167c55e88ba6ec606f4048467027d55bfe939ac13480713a19e9e92dfb3aacd48
+GCD = 4f9db0766e42779807c5716e578f1e07a4336a86ad6783e251e61e577ae74f384f7e0ef443f8b409217a83567ea8bde6e847fab9d61304c623ffe34bdcf10ee8eca726f843f6d8cb909f260f0276b70488e8cec11a8916b3d5608c0e9b10caa9823c1abc999de346
+
+A = -3260866889bfed187cb832a388875f4ebc7d63106cc361740350b8d2c1af6444dc20ae73d300081de30442d224aed5b7ed482c8b038bc16fdf162f6c7b2f38ba821ddaf0590e41892ea835737188f27d3ad0eaf795b3fe72f60ddfd612182045de8587b4229b4deaa26d1929fc4ac9703f10b0ea2820e88a199837e2d3e7fa394884187d64c4df7ce026dd4ff6465e1b41fdc6d43509f80613ccc37788dc95bee6b8f1424dec74f3ad8ccf446df3a11b86b89d8a0fdf6580758e9ee1d1b7cfb1da8862db3293b842b8494efac39f2a6a
+B = 6c269d46bf0771c46be864fab851745c8d96a96bdc12068317414c551291539a73f551807b5916d7804e19032fdeda271abb369d04814a5e146a6e9b0d57963e45caa932f5b325574bf4fa1c736628f0759a68b63a9a05966da3c11ffa8eea2e26f7857ceca899eaa2339eb2d57b2a4a723aa74f4faff4db3ceb6a3f5c5f56402f7797968b4e1cf68e87eaf0856b62a2d1a4eb029fc28c173f33748952dd4b13374316d7e78b868fae8f3bd3f508fc82d472cea9588e5bf77d5bb200a4babb47e6a295acab69dc0675d2ce714f850320
+GCD = f4d75ba3587c8f87184a69802c6053d9ec75ea8640629d8aff9c13dd0f42fb65b6b4a46d907c0bc3a15be238915278273593a2b3659e7ff72e7763f31685ce0b5cef5cb25a498c4f4411085cd9dc4f51a3f881d962a15d900c301dd29fdaca123e7a759664ad54f2
+
+A = 19e4eda7d88db106828b6ee793b51690108b9d53594840b58f60a1ffcb597712c4d0e092518b131e41c39c1a6d04224e2fa9afeea3e70328b774ed7f1fcaf5f3ae421f752be3419ce6b0602b9b7a3a85675ad446fc61461a57c4deec7287041b4c11299135ef60a672dc6ef4d1024ae40187743e952f0744ac911d84c77d045633c69248dc820a751cf83e2565aeb9f99a34df85dba3a53ce3a1276b3819e4864123bde29d2396aedee370ff9ce7f56d7682d5d6e6d5136ca0b65c44dd11162542999c1a46fa11dbd88cf9e8b9ee3976e
+B = -123274288f790ae6bed2a05703aaaece2bac76cc86f671c6e496e7d21a6358f344b7b3f97e80259ef9aa246f002fb77895e63db6250146636fb9d7c2962e88446a4d4ccb44a10c112f1974f074c42373d0ea96906b1d0860fefd91f034d88fb01a68b4d1951b1d18522bc03969cb9923d454d4664be9aafd595b1685465ea1608f1ace6fac6481317c1eaa4856e8c5b65555284d0896b7577b4a3a524041de60a4ee826d93ec571877cdf5a8a5538e67720bf4fd77f69f07306653784ea5a9a785eddcd1a0da746409d0717f1361b9a78
+GCD = 3cfa3e2ae7977bfedefd1b3dbf2c920a7725a80068e2b6ccb00b543e89591b551e9e42ec400a93c57af0f19e4d1de1e9ea02cd927ebef6abac12ae1f7b3d8aace5334639afb06cea6899e6208fdcf2ac76c3d1656a76497b0dc3b94c47d92a7dee78df7d55c4192ba
+
+A = -42c7490e79549680fc543f3c9e56ce3c36efe3200446a55a3f8e010988d1c611fb82b90f5ccaeeb854ade1f065117145d4a160994fe0dfafecf809cfc7ede461d7fffe6f840c0d266e9a59bce2a5707a23a0c260213e629b35345a756cc32fc710861e273429ea2cc735722685f6e7f7040feb8f11737eb8d6577f98551eb95c7c420d4d70b066f0d0c2afb44ec7901eb7b34afb10c966628096c9cbafede2096e2d664b78653ff4c6f57c18f36eb24d94a57898ccd9acc815a5f89aa7a3246e1e32ab6bb2ebf693272f9f5c349897538
+B = -47a51631d32fe44477b979eb3c6f0b8c67e837ee37ca451e3b2caadf918f40ba8f97d9215a6d86174e1a3e63683dd5a2d1c870dde6b32081c4a75068bc3a4adaa5a035d3e2d93d79f7b70ec5e9579720e3ae84164c909a606958d6cdd0d3e33e405157693b678fdda9830a1d8e4583c63a60c3f217746d14b0ff5d8ea9693f2fd3d1b57f84bf43de25c4e9755e4e494f86230fdbdbc6b0f8af3a2b072ea5f1b6f9444226b194d7f9c715084b1b247365abcc5a735203f0621f6833da7b244245e8069dc37c94e34a5bae55547746f1470
+GCD = 851b5a2bdf41f30c173f28e4a35609f70e9ccf9056221d788e80aaafc043916edf0c182a4fbf357a45074248f7072fccf298888b48aa6ff874c92331ab5c3efa500f750e2215a97161bf1ac6e425f7330d4a3529e06b4a241972cfee6e5b48c6f04e0736df00f4e278
+
+A = 992283e046e9449d053b046dfbad56a99f4145c01950fd19c3e0dcba65a571b0ebfe1ecdc28af8afb2b7b223bb414c5c0d357a147e19260dc42d6e5c16a663e3429c1a39d73040f3b5666535a6dc0c1130aeaaa0c429fd2f06052c4375bb4e8a8eece5dbe8f68cd7263db5a11f712253b056bd7dcf6ad5760dcee092957201715704b7e8d1ea5d603b720e94e80f3405561b63f249db8f84859e9b8326b83a8ea67fba23047f9a619642168b3d6b344b012dd9eda5ba7f17a9d71b25f0d037c526af5ec545d1fca5e5cfef45d8f9583c
+B = -244806ec43494fb8afc2dd3f8a05a3b6ae973674564f04e9a94b2e97006a15d062b9fe2a1a32cab2eef61db18ad4be5a1e6d81ae618e14c6669e17007a6f81ebb169f2f60561c63019198026eab8a33af09588dd7d3a0612cb19efd355767e62c613dcf52b04e830694fec81c733bacce7026807279a74b5c88030b1cc13f5583a28e0ab2d77a3b2e0ace71eb05245889ca135d98222f6ee30005c516467c54dbee0b95964174068471049ab342780865d8c0f32d2457dc5ecbecc54b3c2e33e1a075563716bc0b2b625e8c4bb02960bd
+GCD = 5ef3df6b409c57c5015f7e75fe3d9e68ce7f902ae1f89bee30ae0edbbab5ae7bbe7ead24be38961f64bcff23a46f0ab9ecc48b3094edca70b6315a5123d807f63cbe94f3ddb414ba10ab395414eb7e520f73efbb0954398dc8045b36c51aba8291a36b20dc30c5427
+
+A = -2cfaf6ef7f601527d1861ec20c05c16ea40fe84da648b8f93995e4d16cac355a723a8f38087f46b4ef2ad79a5b02da5354a1351859898b6bbd98da6a73e99f62e7bcfef5082e34d8b01ba3b67445f2be76ba25932f0a5cdfc458986ffa41dcd17b87206974a1f5d31372a1bb3e515817de4626ee1318ef18ea2fec5ea1a6d35c05b293b96e4a0f314ab4876986d12f57ab6383daef654c65ef2eaf3a430fecf555101e0a5d050b6034f5aab975c397a813e25448450fd637972d437100a043590b57f0b6d0f3e736319ed09d93210aae61
+B = 49aae949c54424eb967e24b5624febeccaa784c8429707aafeb4e607d36c5149856b8aacb9f00e16aabb9ae12444fa2a8552e78ddd42fc59d596e0215cd3c69f3429181c83d10e8d1bbac096d8926b1db560abb765f84f11776f6bb083b90e7202435afc6278e4779bcd85141b8378988c4641d495a4446a85ee9d07a24ed03491fa07a7b77bcefe6090e03614ec0aacff5bd3d3f53c1191ee1c5ba241120158f2fe5bb72c2039bdf1b0c32f4e3075b6cab04ce749153b1897619a2606be3d1000760f94dd1ffa923b242f98dce7d027b1
+GCD = 1cade4bcf4010cec6c2e10399370d7869e74a95e55650ef8534f9fb47d832e153c65df3a7188e638cf98038e395daf10dc2ab1591c37a61f9289bb3fb1568f55f95f42ecf34c49b26841eaaca6a9f71b3151e11b9280eb658fba9c6de91bde34114e993cee7cf5e21d
+
+A = a9c4ea796c95a7b3f35c4bb336bb4b11da44cffecafc0db7d647588edfaf0e6d8141161b3ca1b87aad446f1e8245b1634c889f0ad314121f0d11407495ca3c4823b9a25e02c541b26fec1096def857e98d5cf0a7678a03cfd5746731e2764a36c01d95427dc4f1e40a652078e16f149ca8a30b9dfff2b3c08970c3e4ed9fc95cd9123a5cd83dd67b7fc93281891ab445496c5d4a5d18a914c1b5d6521d53af7ffb159e1575556ce7cb002ff96e9dc6c476427872fb4fcfe68f7a1fe5858ef352e7f658f19b920a060073e5d003a23d4678
+B = -3261ce369957b0db7eac4ab930729f070c21f6fb84f7e4dc2eb87093ada48f7b5ce29d81c59e98c2208c525b604376ddd40ec38638bb6e16d2a1d68040c726bd16762c6f60a80f9926a704c525be51b0109d6cc8b2a3e8679b6f62ac1b321a1a7d0cf36795f1e42858ecec24eb66d40daf25a5d3eb0dcecd2587ea19a3d213c840816000d51e4d041e740989aad76c73368c87450e997990ecd4ac6dfa55a7d4d62149c0a08fd072e731d1f691141bc60f0a0edbe84494f515a256d5ac8b62a0c129da7f969fb2b6556cb586aff71c7120
+GCD = 19aa3dd163f9dcd5205fda207fa62d9a5c48534ca7217c272f862ad89fcd57c27f205ca18cb33c5dc42adc3771c1f806bcedf912e1adaca321d3067bc9cccba02280548175090507c76c70be2a49d9c504ff0dcdb1e21d4909e30b5f733cbe1079bdcccee0b1bcbca8
+
+A = -a41a6758ac0ce626a2f88ec98c74c82c9031fbdf08e4ade768fa7d0ab0901ac2928483e817feb95f0aac060803e266a3ba48be7bb1a7da130325802d3baff375250c5f27f4c724153d189cf48091bd9b00a51397af7a8c2530c515ac967664e2b46e15775682ba4d849ebbe6b77c6eb1f724d96f371b1423ac84a3a16ada86a81ab3e90e21329abfa3f47ad9bbcdeee7c7c24bf81784349844e173065de3249e9e5391ad954e3f1aa80bbec04266e26a43a9de8341728e3311da25fdde1677ef59a79b5f8ca9afe8ec646e5266c269ce37
+B = 127265cbca40f0619ce99fb0a9aa5186a6aadb7c39064d72dfad9f359c6e81fa4903a7243d44dfe67642267f9281c9d0ae87ab332bc11a056151c12e83811125cdddf25cd8520606c38105d9180634e2ec859a307c3a43f1c01dcac63832c87a1ae30060bc6dee9ff65c154ecc60a80986d13f0c63e82842ddf9a501fce8e6ecee9c44431b81f9baccb33b582d6bf95e1aa9f8f59d3345ed237548bb7b2d8002d79143a499e4bd700097a69642814bca89efb228b209ec430c68d35aa7d1f5eef19e02ee5a8e29b1e4cd1a9531c4bd140df
+GCD = 2bcb6613319cb6ece4bce2323ff4071d85a84afeee6080c24a961a3645098811b27278993b5119365f5df0ef56129cdaa6a69023435f36c43a535ba944deb5f6682d39244ba097639661e34e788af0729eebe73d68290de9591d79c086a671447676f95fb32f82b709
+
+A = 6e7439658308253ae3a2fcb6b11350eca6b3626524a4219f4a129608324afa72d44c1d942b884e4e4a1b5b02098bdd9838dc06fe6925f182f7ca12d55742d2531fd5b4cfbfb50a2f27c18c14bd54c18ad22fd50531fdff70662d31b8f9a01282acde6e62cf2257f0170fe22b9ebe371fdc595d2b341947e3a1d32188dec9faae778d34f303b890863004a735a78d65907f1204100186960a76e4d33c7bd35d6b9264dae859bb120b1fb7a3c198ec683426bba6fc65c46576adf22ca5578877d47742b8f7eb6cfc9b82cfd511a9886a9a208
+B = -affdbc796d31f7a8611806a0983b290007c7d75a7d3a11710cbf133b2f901cc63e6dcfd7f034e9e9bdd43a9514254a22cbfd50a412046b540b988f32c78f4cedc1ff82ff6c10e3a664dda01e886edc6dddee82077fa06e29c14469b4571238a7f3882a116a1c0eb6606812a665f11a9298e1d52ada7baf8dfe12ba92cd7c8e530d8ab5a6d2d41a15017ef74b83e5101824bf88c3816e2c12ef335b2817d655d4503452747471d998d1f57aafd78592f03f528381b3e41a58a03157710c7585a93d3ad8bcaf10885593f3bd307cdf77db49d
+GCD = 493012046bcba1917df2dbcc2ef2783fb7759753e6deb8b65f243ca26b1ddb99893ccc69a964829cbb9fb00d6584ac80205cc7eedcc136374ab204765e89bfbf126924c47f6a5ae37a0505eb3ccabc7d8bf3845079524b323f5369e744ce74e78dfcbd4d98b77014f3
+
+A = -324db2ff987c47de97f3fda5ec3b4950762c0591a96ba4ba7090a6d53b7f0e2a275a6eee26d1b90256e879d481b24702993e0c936814bfe2d823be8f411c713c8171491304ca238a547d626f2c975d9e9e3a2dccee6584e8a71e269f90b139aa98e59d27100369ead5fe18631581c79dbe81d16664b660e16c96d8ccb1191cacfd2f5c4753b482768b7cb2ae5fd3bef6a9aacb4d78aa2f3bc8066a885ff65dd6db8afbae13a96621a3f5164583a75b4e71c6c0000b6446838c886e88df2f7280567c5d1c571423c72e2154280407e6b4bfea
+B = 153dc74164d05e8775b9e2e7431ff6eff959db8f33f4f02beb7d5511f304d46460ac7fee591b3cd45d79796aa9b2608053d9f076da2f89c78e76cbc8cd0dbd1de95d6074de5935e14a7d2f6cca49cfa839b7c6455786ae155d97187de33a03b7e2421f9f7337748490b312b623d0282465c2254fde2eaba9302cd84ddf78f4737e22681eac32108a21f1ff7d4ddfd74707da02014def614d09d275ec49823794ef97acab0293949a894d20b56815007493cbb8df2a8cd1c73d7fcd45337dad5b0dcc44c78a4a7e003b33a49af5ac72f7d669
+GCD = 9c45c0db9668b48b2dafe8d93088815943af4cb3f2b7048474faad800e8e8a0c785c0dfbd2960e22198a01567f6b3e0b991ba07d9cfe13ba1d0ffd227ecfeef6a181325ce61f6d290ef4037c6a5ddc60e94b7592271c334dbba5349ee57b93c63799d9e0a4af332d3f
+
+A = 3728d53cd29e37c9053b8ab8c7462a8e5ac2c672fd11390d1ffc4b92723537f0504e4975969a6e46136217bb4716f8b8933098a0763d883365526fd7d1df44310f6a83879cd4d30d4b4ecac02f73494853f30207113376f1034964f502032c776798976e1e34d613cac4e69bc6e995870c6f3028d7c822cb6dd8cc69c3b0c1d740155e07af6c1922aa3f97292f0cf1c4f9c55235efcffc41ce1cbc3989943d315fd0368003aa09b69c574135b73dcc94dabb54e4fe6cb3fab81c1153e77489a2e20d33ad2f01652ef00b536c7a61dc98cf40
+B = d1bb2a3567d3ee089830e5ee0445dab8a555a50cae1eb04b06fef95680d3c40e4446bff776c51b1c97b29db1662f35d14346c51d8c86bc946496417915a2d3b90751c709611f9a62ad0ad8c9d154045821c59579d00580ea074e3b150357a22c2f007f4cebeaa87af915f60f46eb068eb03c30cea7e0d4ab6f92bfbeaeca31b44dd562ff9ddbbd727d161a433f7eb8dca5c5dbf6743f868eb2e491c8ac6d93a9e422eda3d6393ffeeb93355593946b56f933c9fc30afd8df4c55c9b162dda608350feff9ebf0f198340158a75fe0f6a6cd80
+GCD = 130fe4fd2b091ac289b64afa11aee9521c74010d4a64c13fb512a07a80c397301906026f219164316556a1d2799a6470424e6a9ce0203e03e446d7d02e83f3c22a22baad80a547e4290e4184e8bdb77a69a2a89fba2134f433ba086dad62d54bdf61d94ead085335ac0
+
+A = -20960d0135780a9cb0aeaca044f56006d0a21808a2905bc170afa846f43fc141e20efd635fbb214ee7e382dd77d9e128c1266120302268f5592d85e01b01ce133753d493543fb41e62cbf7ceb53be33f757545a19e93d2f28bd1c8b27ec236b1149b6030da7324bbb98bebbc5c06d97b3db6d1b3f12c3363df3d8b9942d3f4970946a2f4a78438c26d5fdb83f9acec2cf1252b86db03944dd7776ecddecf05edf78b1c5c1f6f1ca96742173422f9d8bc814a417c3ce7f97aad2242cd9369c33f7ebe69dfec94c08297567c80932e06892aac
+B = 5c1330c1bd410946b99cb44fc5d0e1fa4e2b2a65e933aac7b3ead33b69902cd33552dfe086ebba6ce5f88976132593591c32694cc46b0fb1443db2d4c05750b824f77ae278aa42f947248b66ceba3140766db8fe832e42c58661b05971e77ec58b8145a8615764cb047fef46d81b28810f156b036d4e1dae0f7579efd2391ea5326e18fc828d368a6d898b966e598918f6aebdc0017d253848350ab81dd8bfb9165184be7482c4adb717c8d8aaf9301713e9390a698b73ea58be37e2628f1f191438380d3453223fa3df38b25c2da52d334a0
+GCD = 786b482e548965b1769d214975b6cba3478140caee2aedf19cc0adddeb05eba0c4f2e0c8b96a2521e7f549657fcc030ba10756a2b05635d30e4057a2b8ddddf579045aa7b7fc9cf4f77c03e09d82f8a0f12194fbfe1a8f9be145c40713ff49129a38ec4e16dd8f741b4
+
+A = -13c0aeeae09ebd2d259e5691ebea9dad07c5309498cd33a82c055924f87e37a1721acdf7250cc93748d2be5c5c1a21deb205ac3903636aec5b40ff88cf7ca3bc733e1e0a428dceb67684970ed529b9bdd3c362348f1b5557458b29a0120324410f8cd89c8906edaa6ad5261e4dcfdd41fb72fa02856fa0e4672f5274a06edf011acc78de7b21850ff26b4a8bd127038b3b373f89709fedc330f3bfca998fda71a7f20c80c00f9dcc2fe6632ccdf2c7e53a2e7728ba2ad5d0e40b7f55fd12bb55280ba6222da2f2081a23f3f109765e14e17934
+B = -930a79283b37a9bd126fe8d54ca1b9efcaf0b7a710479ab4b63f5fc89bf39cb0174eaf663eb34ae199a3a90759ba7042618954d80fc38226a5ec9032a43ec8b2ad4af6f87fa564efd17f11bcf9801646e181ba279514406aad58567d9f9f53d50a76b58ea07f22f6e141c06c459691f868eec8eb9e56a40b28c7449ddad2aecdc00d838beabf2450c68f9d6c652ee592a3f2957f4282560a0e4a2e6d5787a6543c327c6f4823bf27d800c496e8b46718f3e5b7b672a6b35c81a3ded205a227d70b8f8a9e807b4ec7adc2ae209484e2f1584c8
+GCD = 3db80cd15358c71079ec993a417b2318c09e26bb5b1e5f02c3393b5b19f7fa897109eba8fbd406384b5b3981fb2d1e1c43aae2d2f006036a2ac825ff4ec2cbbbca56d2843d3b0152b4501132aeca06793e1f43aeef718ab1547b8eaeb2680472f2a65774f7bbf464651c
+
+A = -21553f8ed6e9f88a5a48e60e55f328b46dea2f55a64e080ad388af88c22f7905594413df715280fe937f7fd386ae43ecb53d55b9348d3666ec6cd144da6d81eab33d092e0b3480d431b6b35cb9d61568f64b8df364c929ec708de23313c2bff04b1deecc46b9450ff374a3a5fa8faacdb29c5397a1aa0e0a278cde58dbcad55cd772061a49aad0583250d4474cc24bccb4e6c00edbb5d10b84e80bb24c1292f605c8c9d804a6a6b4ba3e3801c0163c4814865c59e47bae162f9505bdb61aa81cf26f8c080c67347ce0b8583f031d24827b2783
+B = 48d640ab736238b9ef9f86e573f46229fc9269ac24c292a29760727f2f07913b390690ca7d66bf3af66977ed757e886354ea5474e9bfd8d305de7f5e679a96a833a42985c08e1b389597c572eb53b9e0945136e7322a51aa9b002a5642b4c0bbf2943d5ae4229be8f1afa4743a34178a3b8b7441b72d1310fa45d96bf878ffb3de022b172270f1d2e4b273b78d89f8b80e8f56ec94b8e1f17f7eaf1ca1812046f8a2c42cf652c4721c81ebe3a5a7f849c6387d67d5e5449965d3848beddd1ea80c2365eb806a5bd89eb385398abf7363c2a141
+GCD = 9e1947864def325c288082b6572ada0a696beb8cd761b67227c48a9a55db3fda0443363ed5f6e704da27d8a4e9bacf64e3d5580e693fab840d117cc2fd024f8f8ea2eca6c6b861d9e966eeaa7b041776a0c90a9c1e0192c8525888a4d7495c4c7577f1483eb4b536aff
+
+A = -a2f61f3c6ebc5314175bd5c50793d4dcd6bd8ab5908eddb5c7e453079f3b91684a6302374e43d2081d771fbc16a08caaf64d27b58461cf019663c6f33099112c16da67002d727026c27046cc50af8e5bed732e34d8820bfb861835ebe0623a66ea2d398aee9fc31234f9a32bd91be78498a009bcf86d5a88666c516151eb1d8bd77800233422f2eefc17840f176742c3ee3d218014976c0b86c62eb927fcd281f34b2663b498c8d0115af60aae8373a8665170d288e43185b377aa5df7029c32d67a2a5e207bab59f3d7582474f68375cddee3
+B = -fb489dbf3ffa155b0d820e61509a7f52f5357b9dc82d6acebb37f98fd9d70bb8eeeb4ce7ee22cf359895d96990b4e8245510427d74a63f80d2853c26f158fed0526c17b853c067e26e0a93123005f89c3df30e79ad73692b135f8f7959c9b0b21bd99d252d371e5d5eaf5418dc3cfca7c75b406740e7874c620140eefc748920916283563647d5ff3f6deffc4e940daed7ad3d98483da1115683e53888f3bed190db138fed7bbf4662b349f369e7ed38dc72cbd3f6eea86d3bdf859f25faaa353a7f224e8de34338eb82469cf56e7b00e6d7df
+GCD = 13a484cac4f1fdd917ebc10a9cc0631a01cadeb93522811a8c7aecb84fea273e2349e5cc212b1a7fcdb585fadea58eea06e8f6fc91280ebcab8e2de2b48778d647da8707b546d3bbf067f7de75e41cc0206a9801e26a22571b0a43081e3e899948110d789d2bc85ea83f
+
+A = 4395b701cc83ea6d64835e0a3b6dc4e5bc5ba039cdda2f3ca0bee40d50a033cad1081c3f33b19a2dfbe58107ad50ed586b385d3b81973a6e172691f4eb3eaf73ee83925e3ff4c9a05ff845ab72461e0ec9a501a248830637732c0f8ca05170994aa5c8beb9881818cff6bfffee72c88451c5d12bf1323fc150e836de5949bcfd4d6fda8dabaab425d85c99b64b7504c663ae0274140e3bf8b6d2a8aaf5687c88abfae86f77a7bf2356f1399785326e2771b3c1d08caf476a8328a3fde423884662ad8b6ce5c6a17e6ee5d7005b4401710f2857b
+B = -3f7b4559f1603ee48b25561a3be2d0b135d26dd6fa721c5e68f21cfcb63527969809cb550e9e68493a4729040bc2c6840d1e6e23407b89bdc18290ce27879a90631ee32625f909c028c26f4b9c27df253441fb73ddcb0abeb2c05b8474d2bb2506a6cbd399889e25d82809fb99e9ff6468e5b6fe07d64e2facc1391c25323ef8251c410fc36a99267e6f406ca468d7f0773a043f5e4fdcadb5fe0c50bb51ac27bccb963f2efad5e76ec7e55b32115cc677ff2f8c19f1cd24ddfb9a1d1e7f7133fc0670f6846ddf5b89c3489736aa425e89a1e5
+GCD = 3256b914b43afa449f729e5caf16e7a74422a46846511cbe4c1afe8e1facdb61ec9c1eb7d120aad212f1b42fefc7f02ee9c057d14b8727073a4b50a4a25c89ce61ac523cbfd2e0a2c243214edce1271494db117be2eed2417686605d3f0e98cece81513cdadf0d37bf7b
+
+A = e04824990c93c5bf859eb9993e6047e221f6e09732523d229846ce37257402246c99fcc899db1dfa3d179c2dde4582d260e00309fbc44e27cac544781412f592e9c7180368efaf7a0fd41b6924f7a17b39aad6111e0aa42893dbf4d999ff34b3313e46f49b83bf3227bb001bc217c3ab60fe920183cbe0b7e0d4b0c859c96229681f178aa5317be8188252b438ddfaaf3dea6cdcb282b3785fc3eaa49a9c85cc0a0cc0942120a48d4e83b41de62add66d0e8185bced36e4dcd2d206399e93dd4b9d901107f608d50be93e9ffffd6052d33d0092
+B = 9943ed6897661272cf6ab2d43dc876ef1ac444ce693d9266278fe47058b8f1c5f61d4b0e856fa0c27333655b05cb9d88f1e3984de3159302538011663ecfad4f2041cbe025c4afa241cc5639e5ac753b13500fcd80a99f3b3ff3fac70cd3fca11f6c45f080a6997d592acb3bbaf2774571a3e95019539332635e89c004f55fe4350245fb2e7a451929f1ccbece66144e9cc6802da8f9577e0645ab61f0064d601dbd8f235344468184465dbe467e8b30bc92a6bd77a74e792fa73fb6a68668d9a07508ceb140b2df9fd7ad7990bad3f48a1d902
+GCD = 4285c7d6573f9c900098add5575c13db7eb2f45a4403696045f4fa652b3bc792c57948451de05c2e9a89b1ccf1d15ef80dfe01493f2dd7d5bcab16d051ff60da2d193f053e19969b735c432cdc18d2d28992500dee75f1dff93872f21e15e582db8ce55c139155c65736
+
+A = -5f48591f552efb265b53bd3fc779b6ea159323cf170834b8dbe8347e6dc31aa7b619a816dfb450728ea0481865c7510af876e4f380d6f256cc76fa046b7f799e089e79e20a7db398aaa7e2bf11bc6e659d94795ee6afddbfe1f139a45168d60fdc7a8339893f8b9b2ee762be7478ac82795a2c6f75992be4e8514172b3438081ea23a45dcaee58a0654442a4802b96b96a6a12f95c0fa2706ad4d06d2c14941540c34c7f2614a4b4eeb382bfca210da42613ab44ab4af185af54c26831150ec5ce84d2e48dc452c0703afa5407924979192e638a
+B = 2d22ed7a7ed26d7365fcf0ab31f566e4d66fb31ddd8558646dc76668d6f9229021285233c885fd6b1cd9b0e3c68ef6f19b2889dbe3a48a71587dee74f3f0654f2d3f6492d0126e9cfc6d133e7acaee177068bfd8cedd8bc672e11e7e012bf4254d007d6c1dcf14c2bf129e4980a2d6ebde81e5ae7f1fb8f4fc107ec3090e143b0acf0ab50b75e096d06bfbcb571120b1c30cb1031e2749ee39529a1046c71dd23c4c6f80d3e2787a7582c132dc07a85fd97d3aa19732149aa3268c063d75f6e28c70199b711516c1f9bb88f284ad9e83f3da9698
+GCD = e0ff6aac8b2ed106e05736b761e8d50b55d075c2cd87d459533566617aaf707bd996d8acb863714d00b5f43567a96e6df1ac700aa713afad241ab0667ee580b7c7dcc42d5c4dc76e92b69b4e2033ddac6e07d69ad20001ec11f69a41b931e1a9d706ca22bbf20b88ed96
+
+A = -f30dc9e03b781d1205699f77c0083db25033ff51a4c2ed5c320ca249026eeee3294202185fe3d1311c7d4d1e2b3f350bbf2d7b73adb6d8ccf4b10983b6f6a706c01a80045a110bf43e9709a01c55733553693b5086bec6f89769248a7fc5b68183b32c642800e1b8813488a1b7db986f8cd015eff30c889a22215f9513f7859faa2743524d8833ccd78dfbfcf7bb6c4e3559d646cdb812245c048824e1887bf83a6c7cd93b07d3c283a8109bfd020d424c65f9b970b7cd85df1fab335d31f087ab4855c1eed314c246366a53268dbebce64693fa
+B = -d21e3a8635c79786b330b836fb676306831f0eb9e5f83f4183ac19a583982e8910e16975c09084438dd9335e0b29a08a13e0703ddcf92e95a48c4aa92eaddd8126d3469bbbc362ac2bbdf04aea719518c28d642a0628d8fda3fefb0274d932f993bcf231aff895d0c2b06a8f466fccec4947418d20ddbffbb2df98613da774ac8da6e9c093231040056b253038693482a3d6cdb8125d7a10998b9a24b495d94eddf850be7e864daeab9f46d6f07a6101baab685db2cd9eb491a7dccf177c2589b6e0546f8aff74a372f51155da8254d433fe17fc
+GCD = 1ec6659c7c6bb687558a63707211bc261f6bbd97bd0e159b31f3083928b1d0384f5363dade67c27486b57b17630b61d280006e29d590b263fc93a17e63fd4bbaf2267f19059da7f16a2075a0fe64c480fd08fc6a2ba3ba1f96c914c8ce5271ff2c983a41962116be2adae
+
+A = -470776ee7edfae83c1e780efb6411ceddfe38160a199b62428f0c52f0c430279285e374e3c83544b11bcaf779f2645f4f5fe6dd978ff0bf81ca02d5a7d6c8ad0e770046c712c4abda8b17f0b9539e52fc31a00ff17235396ad8cf638ce688767ff7b7c2de9e95dad03c7981b2aa9be16cc5a7d0db915c5a2ec05af056ad5090be5d448b672584b819a59037a74588e0bf6ea4436e6626e741a86c4b907f821e749ef4692ec20284ca23e75f2493c9ff866127556a088913354b218cd9132bcb48f49b0311ba8a1b539c19169f297f91a2456121d8
+B = 1ee493fc66c058c7215909feb07ddef942fe0424de439cc3d2c08d3cbc6864965657a7bb8210eab31446519e0c99e4ff5f502e516a7cbfc006c77a5fd926dd876c2fa51fa2073a9d721031d26b1eaa461f25b4eb95458b131d134c4f88d3d3deb361e37aee07a69156e5ba7e1f7c31e0e311d9530e089d4f4bec878391337d21469caac27480b17cd82aad4724e5d5d0a1cf07a61a18f22f474d23d41c1577b648fa5e97b70cc8f3f263d2c38503263c8ebc60c14adfd54487caf80a70a8782201fdf675f050cdf3935090eddda8e7557276ac5e2
+GCD = 472f7258b3fc6444abc1194b85227a8a3507fb003cf68cbaa692e543778acf9976bcb7f8763527eb0b46686591fbc3b5e6f9c1b759935ca9b84f043de559e5bb2909752ac488f6d1aafeabba5af8c960531f12f06b8cf5c65b9f0617ce0037f4b6efa41fb7d31fc3e8372
+
+A = af5e15d8b89b46ecceb4fbd18b1a08df5f057e18c242d30e5a9d8ee23aa64b49c76cbb92fa896e71563e8141a389c97dd064fb42c5f0c12032e06d6634153657c38cb203a0075513d347b9a9f1e6409c398239d59542176e32dc7fd8b4fd15aafd502e4b85ebe37dd6d8c3885ae90e319ec3210ddf1dafb0af681e3f12adaeb6913f18112c6f7ff9f97b791e4d5d8b371c845929cd5bd8552e210f578911a42087b125e499f853d76f4f913cea5c2838024520287bf1ac69a0220b3f0eeb5af70f6a91743101e1f41f8395fda1985c21d0f83e7c0
+B = bf03779147d6706f6af24cd390f924c332c6a6dcb620872bec3ce422e6c4101b868d8f40025406f0ce1ccbd52552e323a1d7ecf78941c93a11201d6bd2316da427cb3a84844fd90cdb05708283b4421beca4a7b5273885b7ef5b973213af11db640718f643738d40595c7a8de3c0c2da6c2a05a3751786ca120c56045225e79abf38b976b2be69ddf0086698036141a6516951eb6007944e2d156dd0f16f300472e95b3bafc1bb367def840c61c2bddc1bb28ea0040ac61291b31acc7675f1f217c85d57a8339f0019c35fb56cd0f3d9d99155920
+GCD = a55f8d7d9562c4e6e4180dda74cbceaed91ea8c6866a5af383052fa800f65df1e2db6ae3721aa3604a9da30cd0298e659dad33b0c4684420b69a471c1fde93403658504fb6524b738ed9727186ed1819db8cc27d6526ca0a4b10ce33b2c78bb455a492e10ef67977a2760
+
+A = 2ea2383b39104a440aff46d2e5989c8846df5f0c439778bb3b3ff91caa7e6cbbf80bc7cca4e3590573b9c1505d9d5a8c2cda59af8ccb5de20ccadb5f05df216b6b870a1eaf8a8737232ba6fe0e21001a7163511be5696d48167066f2b5a1b6cd303d02abdcc65989f94e3f82e9c5b0ca25ad827245fa1394921f100c2bc148975a831bc3a0b95b165ca25deaf6eec72d38466fdba2225044e58c2050909a540ac6284b6c2ae3bd76a678d6b01b5abb48f954b2da7b77d8e84cc92e5ca3c1768df7d1114f934ba19974e1377a3a4e36dc55b50544a7
+B = 2928aab086e84ac5fb3170784d45741e720806340792bff9420e29faa287ae9703632d8e0f7dbe5c09a9ba71d00ef8fbdaf4a585afa5527ce0de6c3f73d8f2578303b9c8bd9d7d981f3ace81d42c303c013d39535fca806b117b473ce71b215517afff953e6540cd519617f7b47235559c1ced8648d694c4e9199a2a460d6ba75c0218fa19be6e08f019902b9df934a0e0243e5cb821617d5d5b0165e4dbcddbda053394670393c362e1c4383356f6dff2af8e2dcda069f7bc8b8eb538cadf71763e4f0a8d54dfcb1c3f940618d37218f6a11a210e
+GCD = c26b8776797890777ec9c3c9655e49e2e4bfd6f6abc3b47dc9009d7d87e12d5df260dc583cc98084995e24604312347ee7fc5e2242ef46edbff1a03789450607190afe4b9b45236bfdefabda85f57a0ea2e25c9340101fabd8c66e3a2b6c9cc460c874e25d6a5c281a3df
+
+A = 376ae2158155ee514271540a043bd8785c45837bfbe3e9cd22681d12299f04158e97518dff8d22c66461f65756cab407c8857966aa14c1a5d32c793ef965525e29d8acee92e8fc2d93c6245b575ec46c08ed2c26b5bcd299049f8b1e12b1a11b0a287c5eaad63b5988bd00e55744b52a5059c7c7e9439d895b8357f1401cc28d4c7512b7260b15a8031574223fe37667440d782bc98099b4efe6c4216761234e0d57cf723a1fbcb8f4840e791b52558dae207bfc444da5030d5f4450797adbbf9f6769ed8ffad8fff44a52bb84eb6e21ce756537ea
+B = -8ee14eb4fcb63e596f098cd5fea5cf406d2d5598bfc8bb238e749503fb6f986226046f2481c321da97b1927af6192dc77e39be7ee659a1416de1516478ce934835f7f73f028c558158c7e6607c4c9d0fbd0ad0d85917fda76407fac4ed098d25fc431c5cc2c5ba3518d6bb04f2617d21b6cb027288ca5060509591d4110e52762d46b71938227d9490901ef77eac66e33ea7e8832abb9ad001e46514e6b7c8e9ff0167c110c3e2bc838cd29d6f6924b9808c04edb6b99e03923eb93fe354202718b8cce6d37000aa4c98ccd3a68c9e7810cd5cc0e
+GCD = 13a3bdd7d93c387b214d4ab924aa23efaf686bb517116d4fac44b81112aaf4e10664017e2704aaaa3f4c1854d6026897b8e59a13009c8f387bb83fc7f3d5a6dff80bdfdbb39a2dba74132c42304a5a059984ea8615d1b4ea3ea6b8ef6e3bf30f3b8ac70d4252f04351b706
+
+A = -63f220d51a9ecc72c8a0478541b6f187ad38134c055ad52337980546aa581c96125437d47cef096f4dd5ac61ef20e3165d2a051d993cabfc574a610e4245e7a42c99664b7c7c7b858748452abe51f66e02ec2e49ff003537aba854c485c747775ac33d9d750ed1d540e3c3df35fb1c42d6e4dae9c602ec043cde88beebc91df43fe8378199729bb7a051ae50309bd71e756b58199617dd86607f1c4180124b150ae3a285de5473d60920a8eb2828ae15032ff40a96a4903e5402136984e7ac252d53d3a84ec4c61d4e37312927e38df078d1d602083
+B = -2654686b932cc6e275f9cfe5a5081a0ba788a007d333744766aca794836750eec8c57e20bccdbd34ce418fe3856780c6dd7ec37dc5690402e474220da99937a82cf9644a4f96996fa3b77f0535cb4cab46a3d270ad2dca3dc367b4c495d6bde8f453dd2fd3af49ef13246fcd2e03adec7789992583353bd3fda485e53c79efbb2ed69af0221ec47bf5e48a05839a89517b84520af4321795fe4d0ef303efff9055f7c04e6824ccd9e91c4a61e2ee12ef07f338a8a907553a863663a6a8757f66015dbda590920c42df3ae9fd3b9c09caecef3e801bc
+GCD = 3822cfe15cfb3966ebfae76b53c2ac36215484883d019f699edc77c6023e530d70dfdd60c3e1d61a9edef076a988e1818860b9d3108f98af2186ffc83c8981e0a83d7f0655be11f5c6c8d9da05c0943ada2182cc4cf514dc6be13d39f802093ad63c0193625ac06ab397c3
+
+A = -23adee5c85a79c0a55dd12cdc9042a1d13a9bfbfd6845fc39a122c39a8d573939931446329a0c89fe0280bb2d9689eeaf407ebfd263ee373d5c277cd8203a6179c3ebb87f1d260f89f7c5e62afedc7a3f8fa67d93324038835213e425ec6ccd644c7b9628bbee49dafd9507b5712532d7d2f1478a561cb187fc83dcfa06b19d677b2e9cf909f4c14f681aec69d6e2a3ff4bc23a1a01cbb8d31ffece65af16662a2194276cad5f288348f9c1542f9e4d2c2637ae6c377a71b9b33328f632d54206a3d1e854ffe1513ba8761ede4b541fac95cd972fcb
+B = -11c04e9176334d0d94a9b0b549e435b15b518ea9d8952930703778e5ef01d7c1205aa0c41d6ac0c1c78f951022c75ba6a738a6d7ff3360a187a4b45b66bfba91eeef8894f45292d5304eefe308df4483aa962d2c0ce3e54442fd9e19a71b27e91543b0145e0522c8919935c196e5f6e08da182ec8fc24feddde107ba76b6a8588febde5a82a6fc34540fb368c31a73b114e34172a921dfa5f302abef0fc7641e7b61c0604e7ad92f72d3e8ad85f40dff9f15e565bc5492b93ea29827d446e1b54594e644339e1b3a212048e949639d5047e4a5c835ba
+GCD = 54f50d80c7e43770f7fe3f081d1c94e0868ed09e65dbe2ad01e9b60555bfa164e26b699c3608d86f962663e6500fab6852c70f2a61a45feb29b52d48981368b1b85adec9334ccea116d55fc8e2b27963e4109200829e1bfdf42ddf0105d38dc73fcbf8cabc9b15f3fc7ee1
+
+A = 4f5a15383f578ffbc4dc8efa64328b7e234b0346797d9445773d883a5da940546d6b119c142cab6b2104fe397e0a0616f7cc31653aa3d765e5598e19ada5045c2c6f75cdfc381f9785b638c9056cfa45b33107121e2c5517a7b3ab1768313f3e8c476a7eea7e8d7fe3e5a1a56b1756b0b1f7913c7b6cd14c390e6586cdfcf8182cef221839d2ee30f71ed22621b7f71960340cf9236e419517aadc22bdf0bf766bb58aabe60057bf354812838f21bcca46fd67d642cc72a33fa16accb864ee39afcdd8d96749d7ad24bbc6f8331be7a6507776f13432
+B = 7326aa2bc4c04d0b61f73c281a69b6f2299a3b0db947cfbb79b7f249c5f6b65b386398445e00ad5dc52c395b4fb259c2c7353444396b294cc8780c8f3ba1f7dd857ec4a602e966f75d448fa310add402f8041b0188d7e88b751c71cd967462fa6a8ce23285e2c610597af59daa81c3b340eb006b66e72295914aa474838fa5c3077f2eb50da86dd03e5a10150417fcb3466b9bcb852ac790c4aad5ed90ac74704695c441be98e388a6d1de914b06a48f01862015c49e72185faf772f80c8090603a64cdace7bfb414dcc972727870021f7086fae1fa2
+GCD = f36d2d696f9850261ce219dffdf587dfea93c29d56dff4e4e198874b9ae43c57b363914c3bfedd787e362ada19e896e0086258b91b21c47b7443aec5eeb1dbf492cf2b5c61d53de4b5f74175a4317c7b72bcaa571d47bdbc97d45df32a7e792499e8e8901df937fd152d96
+
+A = 4834f5ad8b267c3d77b5588481b8c20919aca3dd926588a13d07a9c13ba42b24a127dbae27feaf6949e3366e80c29e9ca58770f9dcc1e99143a8f099aec27d3beea8fc7edd6db12603213635cffbca3de9a8a698664d05265b591dcd25e5a9213c544f0da31ab85bc4fabdef47d60829cd9fa698d30a638b1b68dce429a9c2fa3bdf8799d95ade49126737a553edd5708a187cdbf5aab13f4594cce2a947f6f0ef5b997792bd9a69b02d680b14b60d28dd4b73151d73ee11563e4eef2f4da405a937765a5424b7024b24d6a8b56e07c2e7a8481c2200
+B = 16dff423e06f1699b0aedb601aff0ce8be690671c7d4d8ae3fcddbee4bfdc064022e9bb47c34a32af7f95b19554a79d7b65596256db6eaaef9a2231536e0172a86e550a8dc8e2e302bed4e7bbe31b6fa12d66ea920135b5674a97c12ff1923908fcd320e83187cc34e7df39f72904d8b7e150a89ba2fc46fede59cdd4f728d65cb4e0bca0fda09c93b8b1d11c15d2ba39e13c7ceceede607335dafc5980c4150f510257308538ff9d443140f32090e73d59f82c642185439b002da6a38d661f9291041d99a6e6213855f082ae70daa613341bd177dfe0
+GCD = 1ab875f3f8da5bb12fabca8c0682682beedb859325bb686bebf3e470a5cf58c186674cb54b9c778c0058860b317f7812e74bb6aacaf4bec47162d797f39cd945522017065f9ba32565f1c0436d1ba5d4f4029fd7ff9852b3658c7b59a91a0a87f117d37127f631f3d1bcbe0
+
+A = -14cd3c2b85932d460e19c7418d6c54fed7a8784e187dc41f7da8eea544c29fb8ccf852f97364db09a20d0addc985c1d4ce1073b449b0ceab2aeb17500c9ba7e5f912d0689dad3e23424445d78ddbe91cdb1c3861dd62ab18924c8cce06c6ccaea2e0caad6f786b36ff1c2f9c5cc9812f8b2cc507cf52bd871bbc016010e5142e0f456a3bef43cda12f77369c9f2321397107e3c723ccfce6d9425c8f5277e9024b2aad66ab2adfafb40c52e5d819362db87bf06e3c51e44d1cc552734ee9af8a9bcedc860e996e2c4f0b064de98cd08debebadd7af641
+B = -18d850b77e1cb63c96fc912150741c6a8ed963b8ad516b5e3b721928b1858ed76a672a9682e7c84ca99a6dbf6eaec5d68c0290801828dfb55abd62020e71b9c041fb3b905d2617ca029bd35cfa1c2c034e6b8e63171538857ddb2157eb69f582684efda22755ef851f8e63d098707a4b7ad73b0b67e2ed88a60fc5ef3adafe294288961ae92b34165e657b32e1ba34901744300c4586964b6b2e36202932bc5d516b726df63c487c13a13603bd98de43d2a1d70603df6a5dbd01b57788b8dc0da246035b0af2a0e57308cfdb860e5f0957fdc5e6327e5
+GCD = 34b4936e17939aaf24328b54e99c6b6f6cc932dd2562e390985a73f94db4c2dbf7be0850f76cfa25df20001fd519563bef158b0c804c5d3071a6f7f6c961f0dbf89d0bf6bbdeb6aa358297a1c9fa30ff300bd838d1f36d44099477e32cd282b7af5b871b4ec5a8a22e210b3
+
+A = -811c871564d5b3ea841d103932cfa48ac9f8310024d6294c5a2fbb5ff19d2c62f55d2c25c5ad0031e84ab35f2d3e213713680573f4a36e4e74645f717e1aa2d2f0eeee8d43ed1889ca698f70eddc32763c383f0757bb523644eacf8f01125f115010fc8366238f609d1294763f7911c12210156be097a818a9d0eadbb621b67637b59cb3bee59dcf60c96230d8504808d23de4a2b927164437d793d4559fa718abd18ccf2c52ba05f447440890ca081dbcfccdb059d4cc4fdd2ed6573cdd91df8cca75d8881b135702b4e4a7f8b948ea8497e8478e8c2
+B = be146436ea9abd765f9dd838ce33807ddc12454b94bd5d9978b388e60e417b618c639e67655dca27566e04d692be56968a95f663d0d70e5228d2d628ad1be390bc39a4f2356625c69b5f3885e7987721c276fecab6e23856610e578ecb9ee8ab5045169b0733e5141209708e9f84c9c2067f08a6c1d551d84ea349da2d15e622f45b56e8a4a6856290342c4a3e1045919471722bc270cc2ac3420f0cd5cd6bbe657ebe036083c691e5d288333c53c6ee7a83092688a2f66c96d5be7f694c1e31e57f5769023415ed0f077280630d41f23643a89e91c32
+GCD = 600671238399ec8ec83128e16e8c7b702511e4052e5bf2630dff45969d26f1e125e29dd621d4e1b176477adf2f8aca3654beff0620e78b3363d6a97b9dd35fcb92f369377fdb49c385a080f883224d10b81cab74920c54fff2dfbc401e5023406d7e0941ad3de9c1e52c93a
+
+A = 2ec6c6997943d93491835a059adfad16be937bed7a11bfae86d5be980ad1f96e3584ff486b197ebf67722fe0656d01c8acb5d6713faf39d20a25ad2ec247cb7688336ea7c377bab1dabd3d5c6532a5ba0bf3330c7756b4db3f5e9d7d2145558ecb3f4a0b4acacb62ff2f37b44183da773510c6e344ec9c474883905c32c9abd405036639f2e7be7f315b1ecc2c8ae1476fbb0958c3d730971c8562b91905a81a1ee54ee62aeb681a7813ffb5c389cfe341f49dba5844ec6049941ea519f91b05e89469125171cd85605d2fdcc3955d5278c3945b13d698
+B = -452a91b3877913af1eddc84ae4aa3db2ccf6287eda28d9fa6d81c0a727aad3e7f95138956bd17da1fcbef8be0c73cde30c6996f601811578c352d3be30a9091ddcf626b71f017a32caa5a29532dafea6b77ae631ba6138c619695ede258e3063e18624b1a936c9f6707d2092df574bfc48f73a0f3440636b2707e0a989cbc25a232c386fad7487db7974c41c417112fb81c3e47f566826fa7f1c7505123ad380b4d9522a5e335e774ecbefc769de163ac531ea7fc2d74cc324a1dceadff695dff218f0b5a7dc06257d884279d3730bb1c9c2e6e69b0830
+GCD = 908ab132d64e253add417c0f4830b22d3ba803c844d32b8f0c30f7a5af1db75c4ad15bdda76b00919d7ee5eecd2284c16eeddd137687515e236dd61397261d2264813f0001a3cb27cde35bcbceb720c61012646b5c9d3635754b6733a536af69c81e0101918572c48cd3408
+
+A = c2e55033eec5f33206c6eed7a9908d65a9e9efb60d420607808abe82e18b1197bd1b07c1e3d11dcaee028f4ff0dff0b488148f599711c7f1989c1c6fc480f69a3c05e28394a2efb3ade1d7a176291437ea2cfabce67fdfd3b0a237bf10a49324fa873056464640783701d8c9cedd8fcb56ea5a6b260a807acbd0ac4d3af6b4a4282124254c41cee1e60441d2af3c2890d18202bd75a4463a4af629c1d8d8204d652dc0bd95fef8786114f08909f9babeaedfb6cb04cad665442dbee0511f22a7b0c03ab8419f030bad1e71c110a1b7893942c845c54c2d
+B = -29ed372cd9be405d0800e62496850ff8cb8d366499319da78ec5849043a600387fe52fb62fff74299ee56bf378d17c6969f903cff19107c9da3a1781492003d3c2d02141859fd5b5d7b02420a47c861283929667c3c6344f0151c52417ce698287d5f948d8ca449994234b16d30431bd5446c4ce2c938105c5606a22e54431d50c0abc7b087127c8ba8dddce2e9cddbf922308afaea1c6ef1e04d1b01a914e03752fff756b9ee1738250725d8f93e95bcffb5e26d645dd8a1b1c98acabfc9098deefe2773959977a240fee979ef4b86f06bc105d852ccd
+GCD = 103c476c792670238e34ca359958b781ea74b2725e34494d5e214c4075f1eb0707ca3abe7c53e8453b70c84de159948f49f1fe181898f7dca02228ff9e8531899c2865be84d65b3d98127f79021fae48f8a873c312e347f6213e15d90b832af3b51ed95fd1fea825b1015ba9
+
+A = 6abcb7dde59d9b916fb69e594c5f4452d255bb94ae38693bad2d08df28c1d29153e277b61bc63607a116e1ba912b54831cd35ed63fe239120397aa9c4b9b6dad5661ad9a0ffc9e4cd1068b10ffee61d52c1babf5cf2a123d3af1d79593178031636c11e6a099ea1df437848ed502efbbb548d28ec7071625f652558bd998524f0fe7dc05e93942031654f5ecedcd632b75da312c5507b16d61671a9c9df94dfc56e1a39ba253784de4f9f77fa9f215b517a9da8ec87f228a9f6ed399f265a03cea0928426b99ab82c465e9fd2bb7b6bc17709734640b91a
+B = -61941271bdf17917bf9b0ef273f1990ce1407d5b69b093bcb6f2b12fa7357cee984bb96ac3bf6ab161c1d4c2a34f965f0103f3e364cb46a6cd4634a9bce894d3c442f22a28f95432834181524468ce047a92a32edaef938abdb1b26791716aeb857946bda29dfdb8e1f13d5e90ed39a616887e3cb9df43cff177e09385013fc9655cc4a0dd5cd1219b4b9122a65476b6fd65a991fcde21186780ea13d5dd1544878ab144ab66cd14c763ab17e88c4c7ddf3540794ac98060d552a8a54146c2766ed8fe5905042d81e7310ecdd587e0b0be8fd3fd95762a
+GCD = 1535691bc1482edf5ed7084d74246a922e7e9c9422c456342e68f4b8d4cfa33fa38ff90b081f5f9c38128a12da582729419836d4f54659b7b254948c1e4acfc38cec6221a3679dcc24410e18dd780e2218c95072bfd6a3191c2f9e8a4a4be07b655222203bf657e8c37ae687a
+
+A = e0c33ff19aff7c9ebb09b37a5a03fa0e49d19b1ec74192ba95df1a854ceb7e93b5dde250f9407a54b4543dcd0047e4d94e63d84d19e62b8a1ebbadc019c762896c8face0520003012429170ddcc426da38ec44cf99a3c0e7ad12f564251751385eef6900237bf2f66e9d90359ccdeb2f469007283869cecb5210f30e90fef28ed4fcea20a4c7c6f20d0544008f8b40b524d03bde03331ece7e4334b428fe9a019efc6e4a84e28db2f19e2bc323995fb3d780699db25db694d72906d88c1f97c2842bb93eb1f823bf7d0f8e8577d97c883cbae0c162cc338
+B = 390bfe07b1aca8402d8f1c3589b8b892c7e4a4a51fc066044e6f121e27480430612fc6cc133babce36cc81cacd8853b455e23ff678c8da745d54b91bf7ce23b275c1d8161779be25cbfaeec49ee6d40ccebbf5e306c8c66a6da57db657ce62a125484af5c2da651ae584c376f9590ded16e261151766d6d25429e857dbacd0e85d21e251ec54af7af2316b88f8be5c14594c7956acbd4f61136615dfd88d1d7af9f0db41fc6fcfb823ffd33b5ff3add88597df6bd94bc3430143de72217b268c104f770f83429734f156ccbb77dfe301edc6f54635a9ca
+GCD = ff045a9fbf222e980b500d55552738248a176139620102f769d956a9881c2a0a0b4c99ca07204ccf83dda76977e276f192490d418ea0bb120dc404b951e08ddb62a26cafb629d3a801cbd455774a2de2b8dd61bc36c869d08f7507f80327bcb643a30b22e33484b335d90136a
+
+A = -31c4f524c95b089a7284b44922494a3c4e40fa3fdb1a9a5690b3f7c1f5bff7a75219e40c7e0305f88c87564ea837b1001c321d73b1454a557170d179d0137b9327feff43ae4b38b55576a9fd18de1f54e545c873c2c403b5f6fbe31e0c7dee9e139889037f4dec42c89f1ec86bff46e7babe9b0181da3d6b7fe202b5435515e28fe43010cf90469500b7ca1b3476c12487b53404136b6601279fdddd491632a56603751808c0537a3997de90e2c0768551b717231cda943a3e6574852dfb8902800d05d9f44bd0f2beef43734e906dc924570499b98e5786
+B = 2b4aefab57ba2a7b643071f86529dfcaa8686f99f1952a5925ac7261707fb69216f3d0c7dc6ab40c365b0cbbde70db1bb7f5e92771dba99fa5263d29a820cee6da7d3437c7ec19c6e8740c760e24506aa6df7aebbf378c9f19f2d1e2145e5c0724603a66e58453d2837a84d182b642d58ff98a21ad29d77f37cce10389706449cad5d3b3ee0b925f6d3f8a726814bfa84276ad74029fde17a8a3fa7de218bd4f47dd06759d4669ed57d8fc47d9ac36d068d0f136822d2903cbc2b23b37c0a46c3f98ffe6e036c14d6579ee387f588d51b6b0e3f1f908bfb0
+GCD = 19f03d9ef07f7d20e550d29072126142c7dd981e25f41a54a63b7fed1528e2001fedf11c7e347040d1f6065e4deb13c6621c2e14b4dbee3840b043695c7f227f599fe07259db77a0d1c3920712e192cba551781e9780138c58fffeb96741a74f62c8f27e5ac4d486b9d89641a
+
+A = a6227a9e8b9d8887ed66563b9e91158f3601b865f722417716d2f4109ba560cb41aaa6f2d2e6013f1a88ec0e68fb5836c5f376a78ca0845e76c0436ae1600fbf9e2b02aaa441fb7681c0947cd1cf1dbebe27528cdef48edc0423eabeafb2d0f5ec36d6f986609bf741a79556ce712ac59e209267ac8e19f710132c6e13d5a32255b73e959663044af8da8703c5a6206085e5f63635dbc7e0bff34c73d48d4c7d690c45930163102c035480b406374ed07e0f400eaffafcc5ebcf4cad544526805e7c33af8cfbd7c9d6cc79817fbc17ba5ca0d82487a8cab2
+B = -ae534f8de6d978c99632a44ad0cf8dc9163ca473fe0712678efa08ce31866b25a9d9ffd479d7a9a5b150f550979bb909b94333c8ae733fe9574592c7e0ef1595c60a2b8c05d53c4a59e13f6b5c7ec0500f46ee83462d38f78d6e9b65df03fdad2e120a21f6647d74b2a04970ca4ffddc0f30ece85ef43e9bacb2b82a9b029cef1fa4a0d8cfc1309e9dee74c953ac7b74675869c172ad6d2ebecfb60affa2720f20f3853cac34dfb51087dae47726e27387e6e111890fc1bb8f09e90d36488d98f427f11c1837d1182acf653c5988c067a41feaff9af8d01c
+GCD = 2868ea67876fb1f10ecc72461bf3001e83bd5e8ce5fb3f49248c072513fa35079ced43e5c676df80c6cf25e9b3be88fab56e1a11bb6abd73a9ad2cd36ff2a9559c7ac30b2925e57593704594b43fb411f75d1f9e011c9f9ee6a2f3fa6579dd74f0adf16cf9010b3fd79fcb972
+
+A = 17e4623572fd48fb138a23f21c0aa55d9bc5537a24d6102d641567daa33f1aaaa3f793803892f51c5e551bfcd341812de4190c02d7d68c0369f89dab6bcb203ab2cbdf57bb4ff20721f593d4c92fb196929b839da3c93cf33818c5078518c43a39fbe946537ef4be768c9852c1c18f7ec258daab22c7536cfeaa73e68ea56ce709fbb650a31abc18e7a8cd6f16764f282ae8682f259848b184200ebf5f6929403cfe868e16e893c50ac76757e6b89a1a8b6a3cb19f51dd7ae1354c653023a0b422046c9328318519cd007e3f85f8fed9fb3ed851651867d3b
+B = fb1a0e15e5acd3847dbb4d8fbf2cee208d89542e34c6b9bb96ac37417a51a3a41d5dddeb00cbd598db138772fd993cf7fd0a33f459b8752240378379051b5ffcaf934c1bac1f85ee9c6dc30bc3bf94cc8e4323d5a566299bf0b6958ed538ec78e2d87d1326daee311adf0407fa656499c1376bfd9760992bc2ad1a5c638deaf606acc5b7e068b227e6efeabd1cc11fb8a902820d3fe909630d6c55581b7e990ba056aa12953fff45512fd79bd45f517207a85043e7fbbb30613aea14d183553f24432647a049c63a7cdec0adcfe0e052880e470b4a89551a
+GCD = 327492372f235a22708b59ce755b17abbd33d88902b064339bbf3fed1886e6752cbeba6379c376c730300d15bbeda580effeabae39b625d16959a36f41c11d396c230b5a1d1262529a310c4a7a33ff534b172b811ba318e08d54631f7c8fcf2ea8dbd2d2893386362714505c3
+
+A = -19833a12fcc2514bf5cf9254526d0e0c3bc247802766b5eb6f1754f8845dc6caf829c7758f2ed869df6329b1274607eb93409349b0074ecde5cd04e3cdfcfa33f4f6df3b3f7ae83207c7be631ab71ba4775d0c19dbebe3d068893291359ede7b40745d84b9c8355dbefb23f31050e2ec6f38703b7a4665cfd06501d33776a2a1d03cfe48d966c7a354f45b79b0be6f52671374895a393fa9ad26ba60ed4c87e6339973be7651a61a7a1d07f6c7d6c58277a3f5bb7b61eb1ff5810cd064f6be1369cd8194b062d782c197c3aa5bf6cf5b69419a4de63aec37b
+B = 58e271c8f626171e4076f3e149f7bf6e9638a82de4d10f64045be01d2238830ad10f53e7f6ec1c032f7bb4c3ba60b9fd68a7a35d6058ccd39abfc224678b47af11d04df750e2177cd88164b111425b65803aef2dc067cfbd1903ba4f647bf45b33bc6bb3a43d552028fe3e5affa7eb6b20e32c480b2a4fb60fa8c716f3111a00f09c27a0604bfb07a96d09d7a7eae257334f1aafd8934a73565f66d3545f73384c9beb317d625b54ee467e27bacfadd55ee2b6d8d778ff3a542e484112a0ebba1e161b0d228ab369bd313bcb9cd763329ea88e2d25cac2d02
+GCD = 4d335ccc7c4ce89df160a1aae1a90eb6ffbf40a59c98a80770a1459f31f8d187983a93c7b38b30298a252fb263a4eece1da7efafdcfe155d745ee68fa90689f33ab27dde32d21e316ec8c160b2e1ee8fa30fd1a40f29008b0e3f3117a32fa152282858d5406bf27f7fcba4f11
+
+A = -2161f73c6b3e2562ce5ab7adc8a71b2f0a07e1105fa66ab420ec7850773846eca1841e352820192692c730ecd76556f7471d41917b7597bffb6ca23fb7c53c015c97755f16186b96b34261f7ab537921ba79ef8d2d3bd997e80a923a6de157fd1e6ffb7bca0b732f8441e01af789c74ea5dd088aeadf4f928dbfa31704de7d85ad89db36ee148b9431ec3b5fc8f45c127921b4f2789f0eef45af57b229749aa40cc5c175f8078dcd46c6e1def1ca832021d7108d9c30aa536b7ab269d0516e33057b9c5029d86936de2a9fa436588d724727b471abacfd6625
+B = 6072e72318b5e6eb1cc9143d3e1c918de10de4ecacd998c375f5814ffb6f25fccbf399dc5bc8ac4843a2fe67cdf33945c7d91d2642591d66ab76022330d1a61b76896f96ea8eb2f10795054f20651520425c8dc4ae94d05e558d4dc04f5f3e594564d18ac82d87eefca6be9479c1cda3c7af991c636e1c44ea7656b9a7f6b3df2c88f311a4bbddf6a89eeb75682ae3b47a071c6a6a0a1e9cb9ad7823e9d7380341fea885e2e5bc1ab460a5050e9f6b683ead053cdb45aa4852709f08b514b4065125890186abc95a84aade138b9927cd23aa966f46de957aaf
+GCD = d837634985ccbf1ceddf1126d4547e37788c82e2ab93b886f60488e41aadefe62004545f3f47f531b2aaeaf86b0b7ae0e13ec3172ce454c984862f06f2aa3dc9053cf4bf498f4360b62345502d11adfc7e78d3170f12b3376c9383fb161f4232decf3c94a1a4124968575e75f
+
+A = -d4a819713e00b31910f452601b22088eef13e86dfa38c5428a7eb21b3f538f02abe08962c3b77ae0db68b299a7ee019e8d51179d4fafc39a206164402fa2af40af9f97bf637bf8da6c848bf26e3bb1301d7b530a0cdd3fce20ce341dcf4ca55c2647da8717b5fac490f883545f23bc4664b5e61609875035d6f161ed603096bb20e5901b0c4ecb7717b00223fa85892c591d00036a8b5ce09355d9c9e18bf9c3c9129da204dac725b675a6bea38c18b6d23f3031eea3b2d85606cee92bebc35b4aee0e4e486299decb79bc9dd3cf87d62c6aef529ed80929cd
+B = -17584f7997c1b71af3fde24704c8773bf58dd4727cb57e56b4796e863d3e8b35c0be7867ef5e96c469125c88f369b8de52a8a348e4d720728fabaab31641b4285d6ae00596b729715d0be126a221dfdb5a04a1ecd2fedd69991b966d25002c043d6eed6c1bd1f8a33379017da280491c13769af88960afef42099d34dc67b27397f7176550bffc599487e7dd7d9bd92c67127b497b405db225e64cf791af8463277481d4254b2d4d10fc3f1c5bc48bfb6cc922052f7fb9ead2f2ebc42205f8db3c21f1f288cc38f6a7e3f0b78272110c9e249d189d95de6215a
+GCD = 1b45e4d1246bc77001316dd453ba4c705c35ce2edfb8af757d90460b2de0b018dc64e2dc27490bb265853b988254323955eef10e9974f1aa71644e79dcfe72d5b40585ffdfede070b85c28c116c34bcddfa73c741c76368860c6d25f5ad9061785a0a99814f0d4376536f0fca1
+
+A = -dc555677ce7ee3ee8b84a900948c00fbb6bf4b0fc5a26d770f46f68482ac9f0d473e926a132a8d951c4118983ab30cc90614b815b9a49cae6435945262dc35b33c275c45689bef8b9ae5a1ef3787531dcd19ef3592e0933c31dea31ce4f4b867ea800f78c078f48e4a00d47c2bb77702b49b008944b6a78fa0b4690d07a1ec8e7097aeec981801c99931bde147ba65fad2f8a394e44fae73fbc8856ab235d03bcd110f701f4fff24207570efdd718be64c6035559cae299a700389b39e51a447441cec3aa95db560dcfb046d2c898b29d5ea4e80e8e484fea8
+B = 515a08d7d4359a0cc547a2c49b041ef4eff12bcc3737143df1312ede20f0504c0947823ffafb59f90c8738c644554ac0e4879605dd6b0d88a4b99d45fb95ebb20f59a87e98ae98cf1b066828e292a4bb89afbc59906c5e1363b481f2463540934bf8850e22034e3aa3dfd23db16e7f179fedcdb0a28234621249d1bb0137e76ed084b793a91346e0925c3af6383701321245b882323e3367b325cdc9116512344fcdba4b8083edfa3add3d05e5ec59878e05855a010c7851f57d7875fe7fecb15a351c3f28cb0fe35b3e3993f79ffcce016773f7df078fed27c
+GCD = 3bd21dfdf5d8927466f7db1c2e9f2bda7015e00f56c1e510b992ea8850d1363630da727e7440904f86f1ef63bccd70e7faf95e924e0a6094a86449fb2dc873e680b4565cf8555e030cd7dd2789f0b5017097e6e5546658e56fe9dec9760828a8b99f0372ef942e130522d4d8e4
+
+A = -c6c6820e99046833aa9c9e551ee0d042c49a2eab6601a32cf80de817c8ef59c1394ba5264ac7cbf15aa7773780a7b43e58d78e241695f1e42979ba684bdc968cb1f008edf09f1ccf00bba855e54cafab0a15a74a916dceeaccfddb41fd5e753ae22541da9deca40ad2225c010e97c77f572ca2c0012f6f05167ffe247ee9cf3fd1f2f9122d15ed441ebe29a4287d62b128428be8467a7ff3f52fb2b439fcf791a1a3977bb032fa009455182e12922c34f6726858c8d8f0a65b6f546cbb31b7a13bff4124fbbb375ebb8e3b74b1b1e6e78fd603568a599f808a0
+B = ed206ada84926801e26028d6b3b835c4737f816222a57de81136f81cac2b59568f86fa2f878360ea3cd7fc9dd0c9d79d31f992d95d684d3c131e2b3af5e28cf187a7abac8f68a5fd72785fdb882c19dd0ad44f07490ca160449f76be6b3005c3219cb64d4180a8f94f1d21fce452cb95ecabfab6889f717879510e1a3583f48dfb0572b27792b8c76cbb6dc3d1081955d973135888eee92cb21ab112b1fd31dfaca04f26d05d890c07a1deff6f82b4defc9b62d966bfb89d06a8f0ccf64826fd9b1706d0e92694734c5eaa28961bc02ee5b71ced0afadd7f6f8
+GCD = 84aaad330b4bc927f7c01bdb05231328e39c119e19f4c67bd7b5c616a3aa2616c430d7d16e6870f0bca4f6477d3ebd1a8d1c04df26b1346a986c6954aa76620a3eb1922e3a11b0974db7c0cd2ef468614ff7e1b43b8c5c525c120766cc48ef2aa0aa563b36cb3eda8cf65e70db8
+
+A = 463f508f2028fd809a3284f6e3840f77e2c404203365f4f72064cb1629b1ebd822d5fdae867be87a1a8698524bdbfec8141c20bd349ea394c67767867f72300bbc4e9f426a640162cf09346d4e431df88ebfaa9bf55e3658ca2c9dfcca7e909416cf3d2bef719fa5103be45dd643851b17d628762f78d9364582e671987117dcf87e21e65878512566934c18b6e071ad6c046502d6e4edf6baf0d1fb5932381e8936aaa5abdb31b94cb6a57efe4173ac9bb732d9c4bef58c279601805a2094146fb233378a68f31c9c9326cff23d54aecf66abc0ae2156fbbc64
+B = 592b4d8d1053b9c7ac5c5769d6723ea97300cfffcc6c9cdb1bc07692e72fd42d4a7b32db565e240dae7b071ed3d9521a42a50dcb562d176088a6a1fae28e7f37a4c0de823b6de1cf6b26b7bbae0849f761741123a9c15403f0de96577b739db3a43cfa159b338b6059c02ba1e1a997defd29c1222ff10f778ba8d8265972e1897798a6843d0edc335286aee3ba32d0dfe9844162f586d4d5c2313109cd4a25d63fb7b7f1666b52678e57f9c91f2ab4ace91350f8f2f2936bf62d5a28e696d915b0477a3c27196139b5eecc03e8fd466a9e89fbf46f43b50c86dc
+GCD = 534939041aabc54a5619452330f81044ccb1c3d4be9d688aaad6c78c02a3807b42676efe0ec727f17451445064116e0920a5b8c0d35aa7d92db287dc4effecbff3e4699e913db26a9bd4bdc35cdd80eab1a0c22ddd161b102efcc52457de53a383ea2755302fbee607c3715566c
+
+A = 1667e3f3f43f8e259fc554a7e6461e0de04ba4b25785e8797c1769e6c3e128f3450a8e35c099f28d7d4cb02068e0c116903cb0746027b62c875601ccb089083834ace5462437832b7a2a4fe0d95f1cc3218594a1d9d6056edb75d6cafb0f3cdb5b465d1f2c7fc6e01f4a215bcbab260161f2d025a62b1208f672c02efc96c807083edc0cef1115f4021d0d83d50b3f1df39791b364a1b9b845521868488f3b54c7de44bfd378b041977b05fc67cb28fe7cad9bb98145bd2b7e783bb5c0159cb7284ce540f623ac41f2f08bfb4c061811ac8cae246070df3c2403a
+B = -1cd69670d375257c5acd55b107ad4a575dc37fd8ab7ec0eca7a248370f9f95bce23f7c21d4e39128a0022112e5e907a5aa5bfabe64c970b3493563cfc4bd0872c9de6b5e9c6fcd98542c8b13aaa39ace23d93e374ac2597eedeeeb6d97bd4007c5cfcda2f5b5ffcac7294d7db10a8ef0ab161ff272b6bfc68b97a8dc93e20c1909938a95a6fa8a41108ff6f833f5230960aaca02742fe0434b20e5a584f45804ae8be5737e4bb06727578b59c8f58bd828722257738bb89305a296236d5b6a4b575f84f1a59740b86c8d1d3f26e95944c1ac64ffb4c6f4852f954
+GCD = db0532bbfbd55fc7c4c0a5acabc77f47cbf7c369135f194fe7d84a85c95dde590ba48f2220f0037f0f63bcbf80def284eebf827a0d0c6fe6720aba60363cd4344c01ac10da268303d3d15bf1fc4a1d7de6fe2efec92e4342d56e9a352f559555137536aa76579f191d237c3739e
+
+A = c823ea63b1316fdb4dcfee6f7f3f1d7cbfb0e31aadf2e18aee5470a359dc22c7eb1666013ef2182382940dfb27d8e938b5b03fd53f505a9da086d598c3eccd40804d07d507dfa0a2764ae09caf9ea83d19cebbc2c824b0b3744a74dae66f66fe0d7f779554b58932dc4794172cdaeb150963e69bd56d97a728decaab959670f2e15baeab311c2377521d6264ff184df634a88fc329a0d24e01b90f01bc01f6111bc2817965fc08460fdf015ef97ebba5bbe351f95cc55a912687d7fc007ea97e6b622149a7eb09b36d497d6f59a40d46de0288ff36decd21a0aa
+B = 12607da13ad0d303a0b17006dde959cb654e43ab680b47fe0f1131f840e8be73d93d4f236c8149e659859ade29aaffdc9456579cda03692bebf454bdb146ec6f3ff0496465b878133032cb47e3419e757e3e352460f75dfc80fc618b28656c74d9458bb0a44fc0aca3d0e2589d952474f04547489079b9617ba73e64c5b102c5604e5b94371d2974f1cf4a1d0652f0ffe1af7e17fa87977ba0e9e25922de585454d4685faf39ae101ac35ee3d44a7aff049986fec974d0a725c1f9353f7854e5697dcee2a94d80aa5b46bf313322d7553cb62663ebda8179ac27e
+GCD = 4fd8493cab54b22c1d930cb1acf3f3c0e87a0908773450ae9858e292472aee041342bd0c6a0bba299333d61250377070fff01342a642b490f7aed97b2546af1f96aad1ddf50319f017be093fe0aca1a3b5091fcb7b2054d6db8e0bc30b4e48896cf9241113132a9ea859facddf2
+
+A = 1d12b6ad0c5d84e75d61d93bffa8ba0b1bbcdc1cc627bf489f5aadaa0fdf3c4d43578c1cca07d983a0ba672faf024ceecd482d50aa7d75bcc5eb97da85a4f126f47b19b717562a055bf0bfd295b180197f3188c8cb2c573d4ed67273bebf53448ad47d6c0fd073d3de2cd578499a18f28d272f2b2b9feabcc2f4e201097a56a84c7602c5cab47d6e3ee452fabae6d9bffb5716c45792a1445409342510088bc191578eced9b5383c5c5b4d0e0cfe69afa16ab7ff678f9c2609f551e52377b3e9f8372e70d61b8cd11decbfd61238b71fe49a9552fd26fbcbfcf3ee
+B = -af675140c602c88ce053d415772dd43b51e6b318ebb19f21baa9ebbe6d03c0714aa5a201eb5fe78e16a97cdfe5ce6652eb2b6568af93fe74343556de3b038f63b80d964f5c76346c0c63333ebe61daadb1322aa1e492a152f6c6b04f26574760feed38d583b782f6953d4aea509a940ad1ee4c32b7351f148ac0cac6f8482d66a252c6d9b53091709bfc4b35fd8b732cb6784dbb15a3a6c7f72561e857d1671c6c2ac7c5e147552e233fc78ad6a792708caab8566588066180d085f00e496cf9cc3f96af4b142fc82866d6b4969a0af1c22923b0a56ec2e7c5d78
+GCD = 7d08d7bd306dffe298ab4eca4b2d20b6c72fa7da6f0e5998458ba4b818477ca2cb123436f0b4b308e41bbc46c1587babaeda68c6c7d46785aa3be1e5ff0087650503762fafb3eba9c6c6ee5f8c914e708aa3dcce3965772c48624dd0fabb84e9f4a270a9da52849114e27fff5ca
+
+A = -475f8b7d575dfc23fcccd16d280b2bf60649ca32313a8f668d4c66edf1533b243e5d6b850760c26533c2926d857290010e32edb7f6e6c035cf92e1c6aa41495874e607f07a71510bd193060bae6422d3b7468b66c9e20f56e60645f861fa22ce5582616dddcc63b214dc2f187a1800225e25cea2c1acf5cfb32af9a9af20bef986647b1abf8dc9c25f04ac021afe6535a2df819e1dcf80a857dabaa8125c3d82a9bb5f7810eaa2abd36b71543d1c9deed4895b1673bead6cbfab8c66ec2516c6611e857e21bfb61ae169ba5eb9bee8e8448a4cc7ff46cbd805c69c
+B = -56a142f58fc7dfda307fb8a196077ada3f0f172f340316ed46f944ba0013651af391aabc6d5921a0ca1a7774587604fe73416afc55ce3999abba553bcf0fc8d75a86b823181fa4ee2f754e6584e9b6cf205e3c27560b975e143a28220069c252dd650bb4c0751f6dd974dbc0eb38d34b1168b453c567d308906a499a819aa2254eef27d028d75bc6f7448356f5caf53247128072ffbacf8fd70546fe8c826971a6bee9e981ef2445ba9df3bb0457f10cb707d4e8dd0f56484bffb95f96dac800cfbb17de90d506c794091f95605cc70186ffb30cf4e9747d2e5707
+GCD = 286466a1f51349bbc00b06419fb9ab3523851e85e7f407531e38ea449af177fe22168693d6f613bd1fb329e1da0a23c935e00c1268c3bb6f0e1ecafb97904d3b9bcdf3aed12c641ac79db15556f6ca332eb038b4622af928d9684dedcea3d61c84d61548bcb99c32a44c47a1714d
+
+A = b3fdbe4ddb27312608d5302a1d3531e2796eed3dac6943e0c06f3f311d73d172d4c19d49683905c52fedc89e64e5e203b84d3e56c885014f60edfd3433a169a120a3ad708cfba715e4d1d19fd25038c34445bb786ccf33f854ce68255fed4ddefe1ecb27f0f2ee847f364d02094c01bf06c181afb1d6db7063b7fd85f4571c96f77a6e451bf16f4384c4605ff56478f12000a9584c45ebbb33f53b36448180b85c9024447454d3b065a100a9ad9343250b9268475e31d6a3022f354e94fbd999b77789ca1e8a80ab5c54dc7a996727dbb8080de2929619778d7322
+B = -d8042a2bb9c1733babd69fe1e824ee11a90745bca0cc3c10ec78be54adc745ef407638b9cf73a17cafdc4444c9c4c4724aebd098ff16a0b7d14c4574fdc4fa5540542da714e3e7ac935a7641047a2d490d93932238d56de5579b9731dac66ed345fdf4f2cf99c6332facc398881828f6f17f32449e310d7b90cfd578d84abfa283a359adf6418facb021dcc890408b7fd950273aaa3ccf40e628bb0b7bfceae7201d71248834a342c8d18e6ff0179927502ec5c20c1d11401a67628c38814bf0b10a64ebf6f52ff759e8bd540a86a7c7404323d02d81a6a9e1b6e4
+GCD = 2a795748b8d5073c2c0bfaf0e4f6e4b055a27d2d78844c29f01b45634de5026ddac533688cf14c55f42e02e7cf5881e7280b674807d00d36d6f60dac645420eaf0dd5108d2fc2788f2ba377bf43de6278e168f984fe6fd8cb3bf3d8a6ad5f110cea9d81037d8dc1cc746da99d80e
+
+A = 3b13d797e3cf586899374c291f174c5dbb0dbe5b64bc3a87e6bf9c5ba1eb988cb66bee3884a7b422182513d2a8da2b955892ab2c887c2be895891cf6ad92fb624668b286d1aab0f4afb32204b2caa8ad8af190e21124febb9d329adce66deeff4b22b4ca19a95f9a7c3e8ae467a94497185cb360add04b2a662eb10e9fbfd78e5c7ef312957daaed4b6dfc52ee707415e94b69702361663bfc2c86d9550ba7268fcfaa29179cd79f016dfb7041b66cb276d6b716d1435fd91683059c7a9002acaaeb775477eced0a9f064c689064bfb5d2dcbcadb14f16015d400a0
+B = -19b867ffdfa2e567fd50166fe20f88a8e1af5ae410f264efc4257198ab5aa26cba841455eee9dfca4aaba04bdb0756a22726885210a78d3fe2859f7070b6a54e65c1f8f9303202e3ff55235c1ad303cb13d4c20f2cef25e14e65961ae1fcf9dcf57ea09bb21325cbb822c6b328011b85e40cb38f232240af1215cfcf1192d5b68c92d9a82db5c3944103767745771b554fcfdac15f57f24e4047db6664b843cdfe0937790c793ad67808f536117220b3913aea29540d081f948355d4cd76b07cb3227779b4683630360146eca5567373147b1b1c4b9bf3b76714084
+GCD = 37405b95c1ec60b7ba5342750360c0dd03d319e345a2b023a6a4d8b462e1072d0ce9f02d977353f252680a528c371f4a11e79a0b4f17690b1ea374a58b2a7add75e97d15656a9fb3ff40a08b2f82e6973317a95f1a1412fc64942245a6ed583b16777316da5788639d0ce92ef38c
+
+A = -1f0127bd1ffe25fe21b934eeeaf1d9d7c525e3c08179aacf7be1f550cadbfa60cce6dc5f3d89b8e0cec74999f27ca3c76164d78cfff5a68af2f96542aa3ac88da7f64e15328a3f93b4736f9015e1306ae232f0e41e6f4c9cfe4ab24996159627f2ece676c20e09a2a582e38b6adb8527d165038d0ea06146883ca277a6fd0f34e580935a3b81fc066583c15951d0ae6cbc42615d87eed7fb79462240ad8cad84fc20bc9f1ca72775da98f5bfc7e04c805fff89a05f408b761b6ca7fb35567e8e8aa6a9172be24776f5a2482ca44079762f1aa7cb3e665dd6d667938c
+B = 125aa9aef5c5d9af33f15e1310c419b8b9befd0700db34ff03a26e8031f5d2e4cf425308e09b085597aaeb51ef407a79a5a5cb3f53ca74845bc6da0b4415b05e0d272b41edfb18b50c041d31eda9e25604fa061dd1a70c41848e575659d2922210ebf753c1c70fa69fd7605fba7080f59a80b2ae752f684ab2b99f41e9b76a6d03d0282fa03a37decd8b08d4b98f0ffb01b25151c04bfce6919c9395cb657bd58f7c9f43100cdbd27eb44e70018fc71a2fb6683fdd06947bb7a731aa7e565d9c61a70d2fb8e08c471cffa81f5909f1e0e18a29720f6261cac93caf70
+GCD = ffe4cfc33929720c10a50d79e86a763ace7f2693872510081fc480b6d810c19c25017f5164b0b692bb8b1dd6b2c2ac24d0229737f444665a8c72519949cfa61fb965a30d4af3c62a032b528afb66f66ae81da3f181bb57afc5553817f1376f4c58d134762512625d7145a97aa384
+
+A = -42874c28267812ef9b2762557d7db31414c72c7f72ad0a427a4533b04df6407344b4dde15be9e54815855ebea31b10d970325eb323513c5512eabdf43b100e8394dd87da52b4bc2b22e66acac7d9c33cff25b096243993b960cc5ae8e123e62d1190b331d3abf85fe3ac1597e1050b6366b32f6a76a2ced1e7ee45860abb20259f70ef2a6a7b8cb2e1249a162dec0e7aeca52d95dfb8e9db23f95e09987edf2a9f7e3273a47c629b759e66c9793eefe4e7ab6ff45242be1d7619e6d76e9f0a23dc2b1c83aae4dc34a16b0c3c443a8d72e01f24a84738c92d598dde40
+B = -3676dde59351749bec5f3e33bd076d22cfd659a25ed739ad45ed0d2c078a5b34ab97189ed2867c271e53833267764b449ee527b61ee12bb03cfc3d4851e93a75c65c759cdc6a5c88b488a93681cf0193c2709a2458ae892bde55148b5d39acf4e1fc1950eafd5aca224390c2a9ac28e00e6f5bd29becad476bec35ca9154553ad050e46258559307edb3a7e13bba11ebdff10312c50bc42c0cf4b6539f6987c6c107ce93ced42777359a6628485af740ff8b983b317ee07a7a5b0ace63f0beb8443cdf7a33f730b6f1d2db33762b1d1479baf1ec0a69dfc405362370
+GCD = 747e05b87df1279d3c852d3ca73d820261e95a157aa16445422148c43cfe9c7d1c746ac93968946269ccc90439aa468673acd7a804b0a6ca97a87aa77feb8fcfd0c3593edd4f9bad9d2c7fc41d67cb49ee28da0329efa3164b1c875ee2acdd9e93a900d0673a2b18046dff249bb50
+
+A = adcd61d26bd6dcfdd92d88182506cc9d73367543964e01c1cf455a9c09dd395eeed64c77548e9f367fdd9251a22c9acd25239b22f58e43e978c19e7ed30041bfac12b49e6eb45bb1a1e8024753e5f20992ec0d6043e4e9dd0baadd83743dd111e71c10b899f5ba56db8a832819c1c3f7be2dcf29c6c1d4d2ec5c953f999dfc8e51f224953dfc1309da281e73a4ad1b80f6476e28e8bf10e2b6488fefa050829e15115082dc003493fd741a4ae69e31376fe0b038dcc4f7427096a3c510765a4ab37eec7ba339dcd584e888eb7b6199bfab0ecc7b22a6c418598e6f41
+B = 923bb71361faf6f0a75d3c8c3673c0f77927264bbbc9733857fbdbbb4390d7890f7add79d09ec6363aa91e6d8ae9c3f9f78606f71f819f6bec174f94920d528fc3c912c1e77c366c4fe09bf36252a4b90fa14066e545df777e07783cf89a67c7561691a1c0d33e25ba92d4d5f8cf08c037b64751e4bffa046f055675aa96d048ac7a096ff40bc2d71595faa7f91eaaa04d1cb505069508939146ff039b1223392d2b6f78947c447e38c3003448748a8d8803a9ac0f4aead43e031a452f7f6664dfd29f0c8fbf8ce93ea089aa4d37ba49aeabb1a41f9d4d2043401848
+GCD = 12ff2ac3a4268a64e19c0d1e4462eda1b5fabdfad82c87d435f16e53a302b278e1fdc5fa22c729655f17ce07e8880126ce0f3daeced1bc3f84856357103addba1165553173a1eb31de8dd5821869a2d749455b97103d2172ebeb91b6b08b1efef3717c5ba7123613aca5549ed134f
+
+A = -20e61dfe5fcf44f0faeee89c63cae74f883b12515ae5cc99f9c0a0f116fc6a2bf69d6576fd8be225aa2c8e824d54297c974ebcecba8274aad93856b3b58f0de574ff69154890f489a8039ac8bd641312f0c908f502c3df474153a760821b4c2fd097fb568e757b9c82c1c465b13e2e28d0fc166f2d0989b742e812fa435b67071ff2f439e236da56a5aedf8588343031bb6ecc6e3f88f9f87e594e75e485e8ae821a5bd91e3d67cad37f77d0c89db07c0cafcb960080236f0fd63fd8eaff1be78a234ba388102e87cd7ebacf0c94facfc9c6f16fb0e490e5c24d91a50
+B = -3c61a0d2f705af55c29dbc3e3f99fa942eb8d13f39fbb001dbdca1e89a0c61bcf44f60402eccf80265a7c8a3e3cc1755da2a0f7dc94b5227b65db11aa29c6350af02259bc49613269f003c51ddfbd6d0358cf7ea871de278cc8e97c8206152b611c7f70d9150769ba6f861215264451bbfb60a144efb6a6dcc91673fdc5662e81a60a4aa8b235699c8e2c5f27814b05ed6114c7caaf268080bc469721de11e15d6571c2b44d1fea8cd275fb62f98fd817bb934f557818adbb80d5086492a80c1dece0021b97d333687c32314d76fface79930ac7b2feac86849dee194
+GCD = 45be1539c46a2834a1fbade1881a16b8fb2fa0570c363599f61b138c83d6110e0d6216d30cb8caa97ab7206d42209022a1401a7bcd18f48b6a53c4bc6eb00d863d7bc040193c629ab3e74910d624706a8b3291563e35a3c0750774ef91188cc5716476beffe3ed4263243eadfee84
+
+A = 4878c5e57ca36ca033c4938f320fbeaf7e8fdafda0f146299b8b155322a15d98986b900405516e0a6e44ccf0e730168ee01f0330e031e0fc9186cbe5d0012719679af5a2612ce86b9a3d2db40783abc3ca018b6eb1f2a03424cfba61e5e730bb6ab5c422bf125e9e65246cf4eb1fb100ee5a9ba575a01c1959157a04e6e965c15d7819a17e9647410e4f070fe9547afd1885b8572ab85ea257fd88c7f537383d48e685f57c775a234f64fe48387c542bc6617f426a8a5be365728e079c3c57d48e297c125fc4daf152c245ca3be58474453653d50f1d1e9cfbd3e5712
+B = -86745b64176f79b15a173eedd09793897d760ae2aabcd5b399f4954f339c62a1fa34a35abea1b94757a4513d234dc729b45f7d4090d52c7123cf0a0b12f9c3bc203808f33cfd145755ef22f630ade100cad5e13fdae21346307c3f7156f7ad10e7c636fc9b12443f0fd0fa131b62fd27e859dce88430f9a86b7d3a7fb0ffa31b029eca32bf53048333abf34af9e738d3259cf0902bb1b03d20e7eca505168a67c0152d2c56f084575b4c3daecd7f0458458212ba6a861a0354d51a01e57729c433c8cb52f6dfe630b5c53691254cd07217409aafabfae5c1f4f93ba15
+GCD = 4c1aca8c47fc565105cd9f58abbe21b8ac3137cdb7b5801bb7b127a42a1631f5bd6ef2088260113a9d6063edb662b1f71f81ce5e4da902293472598d530470d446082ff37caef7a9798406dd077844c92214dc99a3990efdadafbbb260b3cf35dc17650ee01a1feffd33f545b3009
+
+A = -565deb72b4c7d0773c74c4f78d6010a6981a35422d8999dc8c13c14ba116ab8242b59427c43a9de6830f35db724f7d7511387065195758ca0ce080cf05f4515c1fabc54943aa61c0525de7c46d2141a75873608e5c359b7ee389275d01ec64d95a5d17a06b7ae1b8f573ea18ecf7315c2acd0148a10043f077980ccc6831e97e1fab4f29b585beb0808190122ab03cd9ac23885e703cb22d623e8eeffe54d257b82a2065ffb17d5ba68b7e43e3122793436e2ecb0f9bf1b2ab00dea83c37fd7b429509bb4bf4ed0bc8d56f8c88b31b9af2ec272ae74030008c14e38a7
+B = -42fbb0de01be3883dbc4417379df7f0cb45f72084cd6d5126202ad0a6fb2fd71c7963daac0b1868ac3ddec4c320a7f42b0d50d5305e7af6971ce894a9ce09054e4dc7c716eb25776fe7afc547b7b5796d240eef70579ae7e46118cda2f07065a455bcd2c0a92139b5ae8a6445473af0dee6c12f57512a3544f7e5c6ce2588d41e0a90bb656308623737bf0fb39dff23af1b3349b2ad6739f6eba0056ce72ac1c88c8826be49ba233935228564841e3bd569a2a891528fe768142af9169853efd150a0a361febe19025fb888dfa733d710c6a11b20b14b033617d3c5325
+GCD = 8be3b4c3b4675483919118bc17457798be184d821e9d81a47356ccbe2f8fd25d3fd35e281ce90d3c11250b20e4342b0a29442b3047e18db2bb249b0af688c1e31cf70c2d59663f34cd04a5d9bf9dc65dec984c8d68bb967bcbf0817bc977f07f5705ea0b6f13f0d8bf166a8f5ca9d
+
+A = -eef30db01b72f8a0028b8b384527b106e08de5bb096bb085518c87f07d426f5a62420e1e37787f44a73febbcb6f1f64b6d4c517d1afcc1a2835eaf09978131682b62ee4e9dd1ac259317b1e78e3cb3a189a9cafb04253d2f7244a7f60a7a7281057f0099171f24894471bf7a94fbc5b3cbe8518185eb243ce86e17038fe75f31f07b5a108c54dde8069c9a6e2e9e17c32a4f0cf4d2d28eb391a23a8cc8cee6219d95e849dead37db7a9c1ec708f531d754b3ff008000ddebcf18dd40ca6f29b53fea9b4fbd928989ac76fffcb43afea9e0e29ffb1033d135741b570a78
+B = -17cfcb65a271185b6f1017a1c5d2c81ea23d765e2d60eb0ee2d18d5b2e281c992e5cbb452760cc02847ac702f9a2f65375a5ef5887e0c14c795a5b8c1b8d57f90f91123e5f396f72dbf13b91a71607c679d21285fe11b205d8e5bb209304aa3df14824d855a75f4d499b6f359262a03d906c9a6140a8652b8942c17cc756813974b49fb299b288471025089d86b9574fdda0b08a12eb23b43859723c04229c090b53655711a8f93bcd8dde9a43b080cdffc494802b1774beb76fa89d766936981eb080d6bd207f55cf7557870a92ec7357aff88f6b8c2ccc472e030e30c
+GCD = 1e82e176994803a418616e837dab8a2ae2bb68983b090b15af6886eee1f2a877f362ee20fb385193867caac5be26996f53c91f4a31ef9edcd166ed78aef21fefa95b1a4eb63ccafa60f943fcb162b31a61ea6bd5c1aa04127255b36ffc9e3651f458d46c214764e4e801ddf4bc13bc
+
+A = -c3922aed31518df5d5b66383478410188bd0c546ee91b8d08d052e8db0b93035bfe322b3564e4a529d7b5b3847b64fc07fcdf13493c948420e0a654e844a2cbe753fba0337655c1a8c4aa58bd914592653b5097d06377c2da399ae0dd8b11636b75e7f5cf902d417d68c4128c3fc124dc401a57ac851e7b5b230a0d7c66055713ebc5913889d929e48c429145fa50ed05937248a8e1404238e4518a2866ed62abaed2d847f90f99d92b930d68fef615e544671995e3cf8db73a170bc0e3dee2f98587f74e26de8dc20ed5c14ba0a7ec7142be000fe9f9daf6088a12938
+B = d333766e227d220325efa3a638364dbf744f3a038f28e9baa4ebe3d61a141f17a58c558fdaf56032e86046d28706b30fe7cc72bf8877fe89b013683adefca877ab44dd2ea9251105a39e28973a7d9df470c88c993ff7fb58ad2bb14a62c88a5d350c8b1347d407d8385f25e755576008340575112dc21c8ca340be6b7a9988513cc49008ffeabd0724d5c38736da898d8e0efae1e059f9a1e7b1a9f761c01a148ca4ed49c4e60e7286b6ed0ef793fe90a30233943ff0eddf51f2c2f31235dae2a23e67ed66408de4b87df20ee7e31930f3da011b7faf919a88612129f0
+GCD = 6486d245617f8c040e48647247d9567d1810b04b08a9a0b9c6eadc46d987e9856b52680fa01314aa29bfe60a3e9bf93136e6ecb495b4a1a63bf1bf4f0ccfef86e1a42256d22ceb0e136314ac0e1e23567f8ef087a4cc554ac251d8effbe040d1849adeb223cbd030a548fcb5f6e728
+
+A = 11fee09859e58a5d3ffffa5edced83d5f9bbda1dfe8f7079650a1018d032a322bfabb3dc78a35feaa0c1abc705355eedf551ddc77c20ee9ac79f52b8644a7b9b1dcdc5a1b7c2ac1c06fd2c46d5fe5d06c9672534776d880bf759a04a2310cfbcd98767bd97312bafc1569c515f2fbe996b5e1dbdde393c1ee9f49c68fab84a33285f49daa3ca4e999f6b4c99b8f58e1fe9869e1d5f4f218b64afb75f531f54243a812b4c83b87b877e7d6b0934f40aae3c352f6a5cad98a1d2b400b5b1a226fc7249f8897f1910a949be5b38977c49087fdb360056dad0d827e6fb61980f
+B = -fc38ce95afc61765cf2703b190eba47db1d31c539c2f75f09534297643d789c3e3bb33a51e42d700fb4f8bc93a4408638b5189f8d88bc3b17f6e97416b908c3917b04ea24cc25e354a1ccfd61342315c8126589bdb4c333a43a3992dae58ed5e374f30bd978afcbbcf03be131006d0c990a5d1d61db7d35b4e6024de876e2a9ff697dcb7f0f42f32db151fedc046465141b5f87a5f8716b50124cb8ef7a2ae925614a49b7e2e1e2ac9861c8d5ff9da4b2c4284e09829d8a51e5025d5b13166e599909ab0da8c612d37cccc3ace25867e0cea21d8b045ffc7ff1acab320
+GCD = 1a4f2ca964176a0557c7ba52ed55a7fc7a15e75235f2512431428df5fcdc7dd8b82d7a6efcfe55144362ffd204cf9e0d411f2fdc726ddeb4ab95c5f291c02fe2584fbfaa16d7a39d9fbe210780209430e92a6fb19b18e0031b52f11b2a96beff8d3454c81bd88c636f37a425a33d719
+
+A = 465ce20a359d2f8b512f9c3db247f5e7f3898e6d01f34c12cf1f59f84c6cfe131e32a6d2ed8ee392a40d756f452b53b830e231577876c7d37c4de6bc6b392d9ad1f8bea907e8ded4703a1d81639cdff8e649d70e44b7a39068ce2bffda0f445e621a9945fc3205a71ebf701a8edc4b9fbf7d8b6d0fa380c26f9d84845aea7b91e6ddde7b2cdde693ba73db1ea92e80abdb538906adc1b979660eaaad42a2dca6e9fbfa9be8730bada7c595bc5df008e3081274377067e5a4d770c4d2830da8a866e3a916f82d18ad9a1aca825b1dbfa070d8be372e23f57bcced94b782d0
+B = 2eea0aca5b5725a6b023bcaed986272637e1e04ea0466e46a1aee8f7760c65598d51c385342460c21f4e07c5c612d8852a25943c28b0b42f262a1d0095055b518da4f7320f5f7c1297a06109f7c1ac713004bef9ca9753530b2e933a7b0ea62c54b5a92fc1e867ff7a56daf7ce966c63369adbb0c49c41a8895f9c0855a72beab389a8415a93f71cf002cf48f29c39af2c9b0315aa71977242bf2eadf518697320ae86c043ef6654a12c58426552333c59842f66a9001ce237210a6683266b20c8bfdfa128adaf7a6a6d0f7c3516f9377c882d677895beca7be0a5d07b34
+GCD = d7a7aefe0f0e9eb9db3f52f0c5e3f8dc15d1439880b835b96e5c2822ea1e98ab967eb10db066aa1ebe6df30120ac2f4d5d9c7bf7979bf0ffea365fa35a6fb7c741122bda2e4bf9797a2bb5ca7ce788a0ee065d61ea76f573561ceb85e6f0d13f15aaf0e3e2068941aa44b8d1b96f4c
+
+A = 3f12d7f8d2ff8db9df0a180298ad1b206f41127b07076c94d9b69c5e69ef2080576f111a6f9b958a0eb2ddacbd9e0e2269fbecc1e5f40d8504c93fc53772a1847aaff3e3b263c0a393e4b8fb34d19d9c32c7be3b782535bb3c0a5056f794e489303fc02e7d2e81922faf105ed5a601512850ea9fea4a40ae93d046391b86883ad2a1d2cbaa6a43b14d3daf7fdf0d1327a2a0c7da31e8804054826564d7e87147be9419467abb9660b5afdc474574aa62fe27a7fe30e73b75aa4fd5c80dc6b58e40fbb9cd6d0f9fd580f9f55ccf03ba3db87b8e06cc040c4879fcb69bf0ba
+B = 1ace81e971800948189f0a863c272ac40ec217849fafda84accd637a54f34a5b82c02ee09c84dfa776e2c68f0eb1c7c321d8f88f47d18e5ac33fe70ab380bc3e97bc879446bbbc718123950c449b3e7b94f80c2f0b99a3dcfe90eb222ae5610a4917df4736f13e3b684bc2970f9eeca5a2006a32b48e25d9fe7dc29640490f9e4bb25fdc54e02aad4f06711d48579ce002b031cee0834cb0ba6d11ab22ad99b2cf0d92783320ef0aa38999f1900ccac0e7b79cd0fc111a52ae842358d825aee7eb3d8f585a063106a449990da6e561d8451bfd2983f910e4db1a98fcb82a4
+GCD = 39452d1f3937c1890703410cec285ccfbd8b17e35829065fe47f66dcffcf6d4b0cd3a9927d74308401fadacf12671d774aa328d9f9ce93578db1118f6bee542043a5d94928fbdf09f23d9d82ecb830072c0acb31ea87025908ede38b3ac828eec2c67cb6d258d224b6cf5e2fd1ac4de
+
+A = 1afbed0d54a6ea25741d2351639659091978b1bf8e8d5082e9c0a360c665f2690f8fab55546fdafd580d9181646692a72b31f4276ff229623ab674793af440e31399c60680fb2b204cfa71fede9a945fd8dc1be228fe727b237f0f48804274f5fc8e90011fbeb35929227d2f193d79d02b19ac791ec1bb94f27a07dce536b44a15d30dee0684c31c22e9d21e97dc3a2ad75c7878896eb7bb1d405f9402bffa2e8041e5989e82d08bca159bbdb5cc0395cf7b1c6f2ea185787bcb94a0f8f2a64e2345d4850af22163edb57f76cdcadd60c9a209993c0f27a2cbfde0247e5ab
+B = 2fe34c0c99a6826dc332867dfc77dc99b8dbe52e9683b86b26244291ebef67f9a3b9bd46b673b1005142845a38d4496c6d069ed27653c414ba5e3023a8970e050b4e54a54a2ae90e04cb35599872606dd5da7f7f80165fb2bdc539984114ab8e77b8316fdcd8ab3d22447b26712cd58a71026664a35a61529075b0aa56e201607ae8c59a3c1da6b5a68144fa50e031b2c709ef350541f1b4487cd53746181b4d99b71f42f80f3c2ba363f6a4666a0fde51f9153efdcb2837459ed75353ec9da649385dd034bd273f193a1c3d323e840f1188b21cde141c66bc4c77cf3768b
+GCD = 248ee1f194cb938360dc5e0ab026069d44a799a7e2105f9fc1a89b96169ed3cf188d80311a8fd0d2f074b1fb6970be469bed4a1e819bcb9407253300d77691b8877b95cf442ae76e8d8b47148a6f9a233a7b67e7eb8ec5dc1bccec66ab52a9b946b1bc41acc8d95adc84486c5291911
+
+A = -1be0d6f6e188444f0ece9942788a4f99bd3af074fa80b9f428d10a4ac68bd1d0cf322fcac4b7e718d1b936604f5423e621ca1b0f45e28565507f07cb39fb334b28a05006f5f5aa29dabda17f16d5037d17cdbf170ebe151db47e14d90025514a17a0ca18acbb78a18ea4d83bc1c13cc1877e410156e1398188f842c55972c6b0d939c566c3f17d1abb25b15640153220c072968fcf56cb3c1f6f39f179bbaeb38b96f0fd5693eeb2247af34cdeacbfd56d0ce09d3f53a79bfea10085237dbca35b1172a76e1fdf91637939ebfbdc2eefd43105f5d53bf7d33269f92b96617a
+B = -9172f4550e4b5ea55063ee562477fa88e74461a5ff42ebfee0c624bff8efe839d0d69da897b7cf4bc6f5676ca9c87f7e39012fd8da3b41b422a0227d1919618c2dd5e2cc098e1c0434d39166966b0c2dd09ac310fc45df6b611f87aa181461abe77d7c3fe471a8fd57d4a7a7793427185052bca466454afc8f4726543e3b38efe4d9fee8a9cde8a6335d956f2680a4ba0974fb0378f6491a92eb77afece22b799227709e6e21b4d3560af9fda8de9a7ae0425a9909652827ef6971152bf7478f792af023e392c50bb6c8b7b24cea6344e6e4d0afffd7dfe43ad2ef4c338ee
+GCD = 156a9ae1f0ee924868ef4376afcc86c8d55c73bbee924bac55922ee3a01e6cec17359e6eac36dcfb37445878612938fdd6c4fedd671d9a3e574879cf90940d44a93eea5d922a090ff55273f0973218195690d2ce88298ebd81e9780b33f1778bbdef68d8410d6f1a385be9db6113616e
+
+A = -56f539d41403be769050f817ace840895ac570babf8c3033b667d2db42a52005ce726fcb55575556775e627edfdcbf1bdeee323ad1fb675690b011c97eca7d88918e0f71fcb596d266d994ee0753a8d7c7c89da69e0a5041bea64c79c3c93bc4011c444e17cd2ac5add4d3fd10b0bdf2acaf6b70639442665cd330d20192ce0e4b0fe7bd37cfbcd6d1e8f4366f221d684ccf4e1fd89856fc96a22b079b5d1611d6f0922d2428005863f47ab6c485d71ded4ea373b3735b19d82c0568877a095f0223015ed5a41cb1a060eed36c06bfee6ded92f14eb96329d15c136d30e939
+B = -4415503e5f846ba1f0f03a90ff1c05dd80c4d085437228364e0b4a33062f95368112ae27133c10d5d7d4682d4cf2dd9024ebde4804854ff547c69912eff87c25738a0d7c8d5ef1912643a36e61cfe8a1f40c300dfc63172387400519719b920bdc55c9b7da3e1c1e858641a7d5c5e2a28b005934600a2bcb859f553974cd1e0705dd10ac144afff0121d3ee246bb0f9bc6f330920cdbce9753082b10eedfc849414aa5dd933af9055b80a33313273e4f5f3f91caf9ecaba012c10972a6788c0e0444078ac041440493a79ee548d137aa11d3d0a98145f578928216400e1a89
+GCD = 45aea79a5239e0836adaf6641a2775b4bf306d38ffb9cd07396369d7ce988c4fdfbac92b1d96ad1308be1fff9ee341a430478f47c35194abac2a702d40600549707c8b8bc377187627b55239741db2f18609922c3a5710cffeeda24e103f367de5bbda61d38eb12b1cf04f90034e3f55
+
+A = f20c4fa93c955d6933dd0cee2acc5b7240c4483e6b7aa87b07af0d6a675e17fb93c3edb8e0b361e6c93a1f791f67b7e6d93da495f61cc4b2a5d0e8c02c5030ead30d96ae6f204313c53fe1b0cb51c95973c921bfd9dd7e01d72ecd4a8fdb68e64988e9145ef498f6848642191840480b899202d05de083ec9e2ec62072231faeda69480e0106eeff2d35385a312d2fe8708e5c61f0603bd5735a6d2b87935b6b8dd818d0d167b76043ef6e185f3d20828e9a2c4cbb601e0ebcbd784f6ae60f752f0e2c4f348d5479ab8c07c67ed908777729f861a3a4e62ed1071dc122af03
+B = ea2ee01685b57de18cdd73f91bf904741192a96abd66a3d1a6c187ef8902318370e32fa5aa56f5cd76fd536d381bfb9009a7bdc062c491bd4763f759d6e773efac7eb9a2ce2396ab45b88ab6ec0d6114593c5a2c422ba440eaee760b51ff25700e882668f36eb1946ab369e06321b3a0fb805c2b49d548afa4aa63b3b88b1dd2196a25533b7661eeda2d9f51bac4c0e23e4bfd09d340e6ec0f4e706459d22044421f0a5e802d6e5abf2dd73c60c083280815e2aa68dbbf5b2cab139f89d3fb1a96bed1db64bec1dfe32549b975d0a5271960cafe9e10e24c2d16a7871d0b3f
+GCD = dab08f84f8847817acd2164bb91cfc1f8bafe8223e4fd8bdd1b8a5ab42d652e768385ec71eed5e08af81d73076ad436d9d4521bc6eb87afe61374db9f23647f20f101c2c565359c97f94006f3f5b3db4d5cd4d6cc7984a47c3fc5eeb6e19868d0f6808aabfdf2bcef7de057cc6910a49
+
+A = -2942a1927a93d2a128bbf767e48362cc697d248d441336d20047ac900e50e7a0d468e0aeaf3b57528fdc9ac6b1b3958cd55ecefddc050f1a795bf0b6a391015f33b8579879cdce4cf7473ce1f1ad5db6dc9246c1b76d6df9e9d70d8fa4d41c57c287ca03398aaaa971dd245e0489adc3cf9701e3ac6770136cc95a874c501c257159f944cdad2cc8c96823db6cfa3d52fdf7bec49de3c6ee249c5bdaa2b5bb155f5adf57339f2102e2e15ba77479b8ca59c525f3c214ff1c7ca3e2c6091074b657286974261c7e4d8d4aac743d328075e6ee221606c07ffc0ddf79aece931b4
+B = -471ced19b06c7aa0fa0fa99c9c5e159f72e511c617ec2d4075168e4562ee742cc643aa6e45b5e1a00ca711654a3ca8f2ab16bab6da0e9e013c9f980c595dc14f250cdb4398290a03e520ed14b06ffc2d764c5650aed43e29624577a6d5958a794cc6466c826b199455289cf24c08ce39d1b41c342584748686e9e07ea65ddf02f7da5c04d0489edd8accb2307f783566ec1139b8b7f7e716afff7fb40da344e9e49ba969109b07483dfb7b3cb6dbf1441ef5a9d5e77cc4c68d0956399c9479eb7fcaca5e49b61a5733c1c9cc031d0877e4737def7ecf5770c9492797547180e
+GCD = 49bf3d936420e0a631c19cc07c32f897dc9eba63db1f4b6b394619b3d79a7b06aa27628369c426a60dc868f52db7c9c1f380bba102910c89c7aee61efa4520b6dd199994e245d3c8a9754f661b0395e98e1b9555a10bff432b9ba7c24b11c36f510f74ac063487b86dacb369483b860e
+
+A = -eeea554e09138296d800d60dc2bf5a7c2c80671aa931f70e3947771d1c9db9008be9746a3843475d47e96bd10829fa77a1018421323b9dfbbe9f7fc0a5570800f29d30fbe27ca4be1d0801e6b0a9456216be6f0ae0eaae947bdbaaa6be2a611c6a653b2330b82d0b45ddcacb61087bfecd085c4a02d3247dc627ed70ee8783235129ae2afc42d4f77e930f38819e4cf4bf582f4f4e02fbb97e452535883915ff0e1e2b2b6d979e06ba83ca2cdb9982992f09ba3ec0ad12615bc0ffddd23bfaced60eac37c654fc0505a32ef61395ecc70d9e75f377ac6eb0ccc784f99151907
+B = -7780064239bffd36397611985f54f6ade9fa8002c2c771988c3881c17626204b8908ff93c42af8d63c9ab835f45d0f944831b9f21afeb4d75bcad5a3ddb8ecde498a82aa7e57d81857ac3dc961aa885edff580c98841bd752c6fd06fd8b7652b573bf22df9c08fe538256b54e2a6886d12b533f9d6ae6691ad3c2333fa6f8dd97097cb0d5c225b59b584c953dac02be5f4a263d028c9fd522c3ac462b36ee9eeb34786e91d8d7e765ee8f3ed291938c246a2e3e9795ada0cb3d768b97d9c8480625f26c857605ef5553aa5d61d995ea29df1ae8622c90c86bd9458eb40e3b79
+GCD = 69fefbc7fd8d81f0876631974e9692b1cd231a40d8eef4395650c9c1fd48096f5a6c4b43fff1c2dd645e6a5f1ccc47c21d3bd0b19bf9160c5e86fe6523acadc61bc9d001ba79ad971a7cc003c2da1389ddcfbd83f30b4142b0cbd4deb9afc9cf63c6d7e0681c6105fe964f29a0915787
+
+A = 3e2fc58ec40beb7ae7bb16983aa742a4dd3a0c23d7bffd643cdddebaeeebc667be7ae9c02f178e12159ae9eb3a09c57e0e0c1f2c5a1267bf2cad926680faf94299c043643c5ef7e4477381dc1b2c5181b3f509ba2a1a2d7280f263d2160ff248cfbd5770e312839f95773a9efdb8a14d3408e80308a31feca9e5c98ab1f93ad0c086634c4e3fc647f073353b94e2a5a3f4d2dbfd1ea4715d67acd5d214f2e53a48659edf2a3cbb3de2edd7482b7d1a9524ab5c91e624c17d7b48460f5536427ea1c47f7461205b9303e4e48ff5766f4ee1cfa00694f294b9c1b1d044eea8c11b
+B = -1db6e556e6441a313ef9278e351916fbb1d1a8f60b0473852c545733aa56cff148a5e9a99a4648ffe094cddfe85f13977eb992e573d38369c71103f0d453d7f1c9cd28bd22fe0f8af239a26740ee8a52920a2966330613c815f9e4f5de7a8cc4d595206771475fdcc0998aeaa91cba4ff23f5755c4a62e46c488e4af8ab3ed2e671711f514495c47daae8c7b39bc16bd7513d25f9c9c5a2932cdfa9a4822b97915fb08aef9a8d700745ee1de2b1b8315cddcd939bad1eac02ea4f90a5a51cb0fa9754e098d5cae722559a5f675306b94a3b555fa1f129d0a8e1c2bd33d644c00
+GCD = bb6ad64703bd74ee232279542a844c115240879b6ebc22b737ba06fbed48796a20fae26940d9f07a4c8df49f6dc6c02779ed89702e7cc8824079f024ec1de0e40820b909888d80d22d656fa3f1089cbdeabc4ced21406a1b278ee4c3ed02316d5a9fde47a448488687d3085b88387a8b
+
+A = -73bb2370f128449853de02fbf16710b2951d2cdc00432d9d559407e5dee3ee124482cc8841367719d261ac6ee08990c780c541819a5ce7724ae42bd19a13692bf59e36040fbc28c3f5c6e3082647b96957fa1294aa24bff9b6b13d4792f7defc708ec57b6a1828acc17001fce817f444f154fbf50310e03f3f3cabc66b8352c130e90686827187021377f0ebaea9968248fa22fdb2c7002eb00b64852d1a26250410aa9b43965728d7af0ada868e28a8139debf8bedf59c37d3e47da5d6d1ca6b34d6c93921cc626b4a871c6e4b14137ad1373a7067042ef74983faaf9752bd8
+B = 960b1f8b08542cd8bf6594332bd841403f4f4626f102df49c03353dbd0d62a5289b581b2548c7c8a2e38819a27ce89efd30f06fd4929f718cfd8b7873b79293220a07638846de5a066a09e5e128bbd4e45dda9786a63fee4ec23bac09b2c88b5e83b6954dcd3ce851cc03a37834f125b3cd704c8477d2379548bca77ae370bf54f45247de785fc115eeb5f4091724791db4e11a06002ea4de58b0e89dbdfd300730afb14fe91ac16bac4d3801ba8920d988853c9ecbd345854237529b8e2c2285c56e0efb9afa54bfc117cbee3cb457cfd26516438f700646c08aa0b38f3d44c
+GCD = dbee0e63069d014880f53fcbeb2aafeaa97991df3499349cf8619465f47e5dd88a55d678be9fdb885a62c072e6a30a24fd125a4210ce4d3b02f8bc140acbd53d0f084f9f523d57238d793d788d89a53e6442ab222fcb0761fa574676c43469fd1511dceedf8fdf1ca51c862b8531810ec
+
+A = 1ac5c776d25c58da6fea2a5c1bd1ded76e001f29ddffcd431325de81d61a5dd1cd7afdaa7a2ff3c1f442f4832f085e6983c6d10e48e75109af7c5c1c3afb94baa236b738443d7712a04177d4c967ca5d7c4df7c761cc8572fc6d8383e8886e1f93eb63eb5c2ff2d3f7eb631c63896b4f599c60a8d9114620051ca3ae40a4775f8c9bed0d425f0371ba8aa07c3e258275aa05f3490ad50f067e4c6ab1f1904df1f1fdf4b72ff00bf9b8d34fe223f8bb2d3634a44efad47c8658a35059929bab11c35ed31089e959d870d27dbf2bdc41768198e93f2d86cef4687184d1a1b7de22c
+B = 39ec69cc272060466aa4137b2fd9eb5b65d1471925b399b9481b5a2a91fa5047469693991e813dd9bfb8c4242229567361f42ccb50f933a48843274027b866f6605742d5f36878e2e24450494cc385bd57a808061f0483be1defd75038eff0b3e89b0855227540157acac06651e4cca8a150f6f4fbcf21994c48eb9e0d5ca60da78e1c410968192717b623fee6b4d48c5c0d876eaad9b970b3699805c83cf3f5e2a60a2bdfd265b409950796335a1f9c704c16b6a577a5de02eb74da151acb6afaa8c63a6a0eb341439aef9a6312d565fb5d6a982d18185c2a3d13afd47871930
+GCD = 2d32837528df392b9f03d87842e8eb30554486e30d647498465bdc7a8f06d3ceafcf7587f8ef5934dbaaab3cdbe176578d4df84a55a0e45531428cded60cc3de24fed19c687e8a603fb46bf21d70a382ebd4fdf15df2a2109709a7d76ad28287d038dd62b617e517cefdf4aa7bfc9837c
+
+A = -8003378719862360e61a4de0221cee76cec0deb355c8ef52fc14f1c90cb0c58173ff5010b1f5fd2e7a3b2988ae5e806bcc363299ab3e43f0808b16e046e9fcb5a9bc24c58b02cde79f96747e75f4aac790193ca7c104c244497b5259b70c342be35c9da89e9fa2df22a21581969891013b11ce81007e3dfc4970cf70c5d637bcfd0422c17f15676f08755948572d9c25bac8b75f0ba6dc6f9092a6ab883e82177daf43348d4cd1c5ddf6815d7e7df0a60d1a60fd21b553594d9969e54d107086a7280d1d19c37d63cc9de66029f9395c0f20da7cdf25cef3d517bb6e08ca70c80
+B = 7b9a733482154336d56aaa63c85d2606e846c76377b12486b96f2ca135e211f3fb71a3a7623ea8f008afd9c23385352124653f1aa9b6af07b511e63f5f5aa8a14adaacf84ae01183d9a26bdfe6bb1439a215ffb0597b78b651dc954a6a0813553bbed13df34c6262fe7aeb182d3007c6c048243bb39b8c5ce5a874abc796d6d0c76b4f1e833491a1f73808fe29a078abf2cda5cd909368b44ebc39e5659540090aec05fed5735fa164c68b18db260a8f28848c8aed19c89ca219ef53508da4ba527893c1373e790e30c27b7d5eb7226328d7a6018024ef466518222cf5f15fdb8
+GCD = 5896d7e146b9f8378b12e6dfdd299b2ee9d709eefd722f730a0a0d67db0e9a3dcc60923fc54a4975c3cb621704ff8b00733b28bc66a6098e56782834c1fb59df57d59f37fbbbaf69bd4252eca8bcddf68d87bfca9419b27b8c834a9eeffa1070ed2f2c24922933be68d2b5a3bb90a3068
+
+A = -10aabbb89a2ab07998d0fb800d0dc7b692af54f1d0010927d3241e48e301efcd429bcc894d1d6acb2b6824ba23abdf8d9b44898b1a198c5e2d03b0951d9a019347805df2288b5cd6ab02b43d2d191c6e34c028f0d5e701a2b348fa37e3e6ef9188a8d170706e8e0831c6a0f1ce1cc9f20cf8f282376ca00bcc806e416232c6e56e88fbf224fa7c91eeb883e2daf8efd665a7605d93cfc69bdacf06e967f2e22c40184f457eca4715a875ccb47cec223295fa6749ab37146666291ab0f9490cda54b828baa3c22dec3a99c6032d26a2511517f8aed7d8f39e6ed5cf60713ac175b2
+B = -24d35fce2c78cf78eea08fc77c10595871d1fde91e89652fd9c83663be827bb609113947aee14dc9c9efe58aebae9a957532a046e8fd8e6db28b6a44b3b3fda27cc116f070f3664ac34b73909f6e2a2e77f5f7a8ce5ab650541002765ce18eb0db171a0a260d0cc9b47208a573a714d92f261f00561c6fdf87c4adb1a3506eaa39d51bda047ba67dde681de74e39f08c9bf84a49cc3eee67699b57d2981ea61ef1bb02142d47c2aa000be40aa72ad49e90cce186583945d0aa5a3533b29125b8211d083271cbf3f4bb44e157f000d7c00241e74c3150a70ea623acec9c44a61530
+GCD = 930b2ae56db52dfa3ce46f074e90be510e2c2ed52f8d12712a29ffec84036eb08c2b010612ec0dbfbf58a4ba584b553ff99f60f240afdb4c1c8c348b12d1181fe345bd4f015621955fd3de9f40394e8a106f5ff4652ff89c91a8690186e6302b3a864469864f45316f2d17fa94124ae72
+
+A = 114517f97454f6c2f29b4c1b6589a9b00a2c629cc6fee9e710514cdda09f287e78131d9741f7989dcfbd89247601c936490731e36cb6ea2439b2ddf93769964e753abc02b4fa7cc92625fb37d7d96ee30f33f8cd2c006384727a1b620bc230a9aad1bead5364a8a1c73fdbd9b67207180823538b985d4df7df80872357a9450c71ba965c76e5e35ae8cbd2785fa04c5fe34db7c17d3984986fde851070ba856fc83faed335ab3dd533d461e7b8b88da40f26bbc41ee3026ad402811842757c613d2f201e29f7bb2b2b4e6df8385d03eedd8f216182e70f2a67596e5882c36b17370
+B = -2d26c32401b306156120d17eef5dc1df1cf56b84aa61f8f89b98f4e0585cfa2a6276d59d3c9a6554f1aff4ea846c4bc4c5f0977e22ba387bb24154ea603af2c6a4538a813e77eeb627ef479dfd3628a8c92611370bc7147bf07cb3fb2db944ab1a565133d502894da4cb57a32acccd664c8ada0b5a881d8a9446a929132c325954010c1bb7229ee578bee1f55a602142f42fd4e29ca7d645528f8eb197721bc770acad5c5976e4cc635a82ff8b3e253f6687e5c44cfab956dd5a8e04d5e72f302d2be6395afe0fbd3997aacf875bc559be45c3664f13c18c408c746c677446ff88
+GCD = e16a6f2561cc6b4971da18eb34c610c4d3fe9e90ba59b896084d6757a94ea16065554991c0faf341b8b5c866792350528da6532a95c5363061e254b87972b56325e14d36e65618f64635252a00a2528ed3d4e587035961778868c8205c3a6300de7f7bac945488a9b28b0a840f3e1b6828
+
+A = 3c18fb0054de1f379a9a1fc8324a71ee1fbc1e364c0ca9ee88e5001f3f18a8fda872ff63be0198d5d334f517781ad63831a79d2f5de70f4b9a4cd233f5a07795d92e43a3073615b69a23917ae867f508cd7d96f562025306f6885aff5e374f65f9765c56aae1fdc356ded5dedb5ab2b39bf68393720cc3ff6f62a91f78d65579db2f78931262e822f1e85ac201da648f49f19828ebf2ada440f719fca6a1c027501b2261e3b5700cb84056d836c4b58cf6c8e8cbf825cdeba06a16c9f6f30d072ca1456d32c03689cb77124afd0c5a53c0e70d417853ab4d09f3725403919601440
+B = f51a4aea1175992a7e214a98f18bdc8603a1a301b48ef739d451ef2086b35f24400628745290214275fc9a91ce904f79959a518a57a0f770c213248000867f56e4854b1d5f64685ec0807db455608ba64bd1b261f5f7f19f3b386af735373615ab513dafa1a45ae870e9e3e1e0335678bc1c9dde6751d566ba39064b1ff29be00d687956c371cfedcd5d546314a7f0f859d7b2ba75177692150b8101346f311cc10f7d04e3d7237544af0328f2641b9b4b00cf4696e5bed6794e118a59decd69c3315c3508eb396e13285cfe79845b8f8a0378f2f6279e3b9f080aec68b79e5f00
+GCD = 27220d92ad86c3242b4ee7dc91cde7551a1385a1c20eaa6f4641dca256c7d36f4654bab606557f7f42a07903e026658d5947905520c2a3d7af4744fd89d818e837fb590ba4d2a4c49c6313309b05dfc700c8e35ad69baa311654f98a1e1eafdb9f0e5b69dab0c40d7a6fe1259b535f4040
+
+A = 13c8372f0519a9e7b7246d0339e11372f3837da7446429d33b56b71b240c8fe8cfbbc9c980dd7657c769f685ddc26f1f483ec7634bd88ae7082131e2066bb191ad2e46035aca1996401f00fa11d2ace9245e8fdd2526aa7754436f6586c5e0e16623fc32d206c7a7bb65572ce48037552352cac1049cc74cc2653c4745b96eaf1cd220d1eb207d75e1d4a138f0264b21786cb3769782a2619afdcddab57335599cfbaf06e421fc2911004ea32ac685c0bc5402048e268e428db5675e4ef8a34d0dd436aedfaa58ba31decb51b1e8076594779c28a4df78317f19f5a7abc4cace3b7c
+B = 6d288927fd82bd3bb59a235dbc56263e28c139f297857adb2b21383922c47ed3749b77d6dec3ceeb50f9521b5c5a3ce89e686936179f82120b134f6a8a9462acd2d5251fe84976783e71038e4b7d00390ec164dd9b329a4dfd631512e8fab4b6c09e6180d73360d816035794934f285fea324760d532963c3bd3a762d4b10cbfa83bd47bb606e6dcd0e5c4c1181838559fcde8b3a1ad0525299c5a58203df31513692d2171a854788de7ba683c2f3a4648477e988bab2441020f1888c82ea8eaa1fb805083608a541457566b999a1e1efea8090609368721c9ef54ca784ad9b1804
+GCD = a48e109aa498fd39e7ff176fb9832ba616dd28ed999e9fb201377c0def71791af5bed77e958c4dd9b4d1e58e7d94f68110f514399819724f18370aa1058222b997a27c1107131dc5dbffa13e9d7f86144c1ef8f80bf5e6847d6826d0bf42e22185aba8f6d4735113bd82c929bc51c9fcd4
+
+A = 2dd5b46990984dafdc4d5027888fc5823ae16fbe5b42e1ea296f35ad0f65be426754d4749e408f9d8dccd0fdd0bf3f8c283db2a5714b4d0ada6a9db57c2af7ae295ff2c8167775008531ee4cce17ef316633a475fddce2a6e604a63ddb42ce861f227b0481bb6a8bc107b44456c07e3a74ed719d713c2fbc04823d5756123d54c9d4c972332ea0d56c80a438205e8afadef6fee7ef02e9afd0509ffcb03853810edda51fb3513ad1a97aa73a2860997d3396e368a4378fdc658400e3e70904ead9d4d0fc034ec4c6800f5ae90a23701dd0578dc7f53db66a2771d34a8f753339ef26
+B = 19970b4ed7267d41f82735c71b00b2765e3f30f2fb61fbfad9a99267436e0f169b3e215c762c4d5bda9139e13fc67ebfa7eadb0a2660c1a764ec98afd63699d7a810548277d84ece74e981d9c8ad20afc1afe8945a23199108de1f56adcecff9245a0b95bf8a1a69875bc7ae94f47b56ed0c1052486bed08a50b9529ce1cbc34e2b7dc798a02ab4469809ffa4b6e417c10f8307b96010ee9774ce5c78afa6e1b7185332777e822c2c8733786a1222b1e083508f6a18d4e3d2472acf15ad2c7585018c551c0da4f98695a82385c756a195412ce7d4c863843e3383ecf18b5bd35bb18
+GCD = d5b2ca996ad2a962d06e3bf99c16711cd742ae010528f392d8ae8a9b62475da6ec5a5f44fe58a600eb4eaa6a1993d4f85c68eccf577926b2536df910d0fda0b6908f4a8b79f8a6308fae75ad8e43c684eab8ef3afd1637a44eea94e1670306fa043f9ec16068f1475c5d8bc04e24e8fe46
+
+A = -c90c142add4cb6025fef5182c08267a33d11c6bc5f288f17a7c2cd3bca6d70b82655427f43331a43a89682f67a13e2389166c5a1c1a3bc16cec2f3d7079f61bbbbb931b6fc4eb138fba8cdd29f0130be25a09df1c34ebcaf37bd750ae601237862fe0e002d988814cbb9de83b9f9261693f5409af575674bc86dafd837c2ece00b1f7694eea21dcbc312fefc3c15597a297b08c5477873486ec592bbd5878ec5358f715374a5d0c89e1ab55734f5f4e9a79ad3a8aad69222669d26025a6ec4af9d4e27ec978f2602e960a8ea7714347b2d7cc9ce938bcc9e74f70bcafa8e0c90b1b6
+B = -4fba1ea0c0410f92b7ee0053202d0af5cd97f4c3f7711e59038ebdfcf570f5ed371ec7677ccdfb1ae9c16ab0e1928b7fbaa222d377251f63f34e8015205b766326249bb8473c2dc44d218ed194c09000ef7dfff514c0e1b8b9421c9f5beec5397d874c5bd91b18cbf27ff7b0f98b2b1b14e642bb289eb62602c6ca1c34b4ab3fb78e00d8a8dfbc49e905bab4dd04d1e20e8f4cff2ee2fbd96cd0cc4b9c041f3730f75db19c720f9bf09e211ab3e8917f77181e2c6ba7c259e21ff78272588dc0f7c5db9eb2af0ee87c60d2849b1a35aab0c5498289d4e24d618e73bd9593e4dd5c0e
+GCD = 4c27ee7eb8d7f39135166947e0cee7548aeef26149fa24da5e42359a1fdb59428dd830e9392a3cf54faaae167f12d400c3cf870bb97144c3ba32fa7c0613772957c7ba658371f43d7463f9276d2648f25ee5c01f7d134f60c5f16bb2da335d6bd3f9577135da91ee07f22e301311af28356
+
+A = 51407eaca8a7d4e49ee30612bb7a917a0f1a2f1f8ebd74fe0f6d214d698c2e777bf51ac38c236f0a7d961a468517060e83c8744737043bd393a2cc5e6bbfb3f0bb07361415b1dd9e3c5ca03972c16c4a7c99597f5e3d06fbc88f2707a7a9ce2b92429bba6750f65dec8b4a95b1801b9df47a813288c8f8c93489ff57c49cbc57bf059fc75881143d7039189730ce5d6ebbb247b91718c9dd83d0453c45c2891af317d9d98b696896636eb06ff05e2fe9d16eefe0a2988e58bf52f104bd0e99a86a36986321920d101ea815336bc92638fcb80fe401f7620fe26d8c09af965fbb7c446
+B = -4753075acc3e52a06627c3a8f98273593853f6d28680b48310d63cc8841e5b9cbbf309d1dd8c138c39f6fa092e88b57a08251481b7a046a322ba8940f33aaa5a12c252d33122725dabcbef3ffe8e9f85f411379dba977ed79d77034c6fe7f3672464325d1f9f7bea605a5680f7ad66d4663aeacf5b12166167e5b78d092c83ca68808fb927773efc1ebbb84c4ab7ce39e1a410b452c8b61ec25e863006c28f0ca22f4e30b859c9058562c137971dd7a847d27c549ecfd68ef38e8d83b726ca8be7e3e9e7d8ceca45da2891b9e2da9f2cfaeb960d4ce5f5b0cf7d887deeef4e292d49c
+GCD = 2fae0be8e73c72f9a5cc9e08e31711c7b98f3f534884890bc9d5eb7d5e3e12b5afeac46a6356759a0a79c424fb335daac0d253ebdc40f1f638ee9187cc0f60040587056e5eaea8eb300cc5df84664bd11da29b902b1016faed622a520b3a457e8a6cdef5fcf7474431d9d8723ffecd4b83e
+
+A = 44c3b4d2611a1e2139c8700a89562c4d7f30d32634ce0ff096ab1e1f6ab7d16ca855af4d64864da9bf3d15093971e16862d42ecade782e5358556425db227b8dbf63fd8c9b05267cb8b92031d4e81b656def8be573f0fb7b769df43e8d74a191b5bcbe1935a48b8bf517a9d4243c293e02697c4fb9d4997a650d80e96552ab78002e30449f0f268ea63d6711e45775da7836dc4d0d21e5ff9722ec8ddb0c61995061d04daebab654990b896f9d0549e2a86595ee8e7efed3c5c06fc5bd9956f141192b7de127dc4a745053279005465f15f3172fe8fd79d2228e3c70fb47c6daf2538
+B = -323b29283f091493e58868ee85808101324dff01e33cc9cdf3e2fa98615d55c063a84d327901f8ad582fa8ae7772d2bccadd4e90014f3172a727bf6a85bee37a35e0db71d385b3c65527f3420118848de88b35efd695989b2ad329b0e6cba69f631b3207cd4664e4aa36cc77eff4ad00da2f51f8e69a1381c1ed7506468b61a797732ba77e86b08184c55e837e67be59cf59bc69032914077639c5247ec544f54f826607833d3ac5cfa760b6777ee95c9c804caae205f5ec44ea9b8fa16582321968d3b293842882066e0cf6da3a58d4ace0292d84f2b243653c6f5cc3544e1b3a5f0
+GCD = 461e865fd91c3746fa3d7cd99e8f7c4cb5ee68c10a886202831ee554f349a7cdc1e18346703d758e616c9b2225f56b30c6ae07135431fbe464dd31916297a6bea854e980d685d887770855e6079414e1188d168f42713b8fc04303584289bd2e84d1942c9d6621798b226da1b13263c3838
+
+A = -484a14524658815109e22b3e0afbd75fad59d1171f886f1deded1427703e42c1e6a39aac949d54e3b4761200b76c3b56957f7bcfadf5712fd8d6a3932a640fa4ee648106a1b6012b092298b510a54c8f29809ef1c5e232a7e6e2f701fa48cc061bf8a849c6e45ce82c11ad4f45ad7b5ef4758d3db3c098c936486d8ce8d271f68e56e1d9657a21703ab8801d8592855671884a8c6f8f00fea14ca3df534b286809d975240e5fc6922e03e4b682f49e885cb52f6bc7e153bcbc66854aeebf7edabc3fbe8f1265bae85f171f63edee194b1bab457995217e097fb6d6761b7ecc8bfb23d1
+B = 53e323b8ffc9a9de9a2d4300b14c701ed5cbb4301a7cbee623d883b4c57ba787470807c407e9d85f04fdac64ada58429d9a2eb1ba4a63b5cdfc28b23e5b6fed862001c91935af702db424e6c0878b804088201b2c7611a711b01a375fa3a20f05fa67b462dc7b7e51aa4edba1e5fe4fd8c1ca5baed8d02af19dbc0070247a49205aa64a3a2a05f40f162bd4b8cace8e3341cccdca2bbc2c8473f5f0b9efb4f4cf22f322b63f92ff947ff273a58f1cb48fb6b9d12082a1bad6ac1361b9eaa46e27eef7001f471536e11b7831572c273df076c98dc7ba04523795d354decbafd7328e715
+GCD = f644fd3f0e02931b84cb01fd9e2ce8d295c5aabfce4da5028940919d3b31acea6922dbf99bc7dc3629f587951aa79600a408231f6b35482cbf07049d5735dbf8185c506f55b099fa413d8a712f88e855ec8e022847687b1eeca356163e2a20ff4e079694048df54f8ddc75bf49f3e3703bb
+
+A = -28876a61642abf9368be3cf59fd059b35a267c43e52399924d53e79737f3303a95e273e5337602f086d4eecb03811ffe23e4d5a31a9dfa0a36ee79b5e420bd8b843569fefd1d845ac608b61a277612a14e3e285600115eaabd48be272b0a7903ca9fb8777c2002e8fba92e6839dec9b6fd07d1ef356a4911946ab80330eeed6da5728b840a9877b3141d186fbe74ae97c141a9501771f4befb6536611185af5027745b0464db7a9a8124b37246e0c40dacacbc49a60d7f748f0881a741c74a84a67df2d021d1dc6114dbdfcf5c440ceddd5599d19f3e6dac988878186fa951076510a1
+B = d0a793226b62e9725f00dd0b75bf6f4311b028b88855e4895075ed055d48df2437afac38cc5801e3de57732162a837aca55d46c0a2b9daa7218fdcac4cab5aac84084b3e7d0006c810a153df3126e78abcacda33d4506aea31b6fe0e02e8ef97c1d48bc6c81449ecc810c98e66d599aea4a36d6911673a9eed1d837f2cac9af223a41c2fbe0bdc83998ac9130d3d4f5145865c50f8c5fdce6aa6daa825751b998249637f4824a32c20ad59a9e59adb4564e38ab66d6965966a335d94360e4be5c6ae2a8d9c490d61231eba282b91db40c5cd7b5d44f714c08a8ac3906af1379b536ac0
+GCD = 1aeda3db46a15d465ceee006c4b34158e06b6236d483180c966c9ca3a2394d36b0385a6d2c785d47df4df803df305541b8153450e5be636ce6cf88d2832e06050f315afed07025e32d96c1ed08c7df66d53bd47b1665aec135c872b8df2828f7805926014c6890ac857dfe68ec5501d88c81
+
+A = -3fadb2eb4179a7244d02f41b8b5fbdfbe16fe76aab0267f6a5020a6beb819fdcd9128ccad97f721c86dde164e35f2900fa48baed7c67ab42577af5512acb64300cefe9a0857b63629f6b7f73491d99144192d5a613e2d6dd1a2ed1ae23c079c06927df11af2c1ba9ffe2a6b5a1b7b78da3c039e8f5ff326c1b60552a5416d77c7cd2db663cd1ce4945fe555fd96a4c2f37a854dcf91a4631b676a538d122b688d9150347c9f72d8192f10aa3eb812669a745cfa4701f5381c14dd4f6630758fc2d0674e3ddf601ffe480e6fcb900dfaa627f76f390d12097a11e09535e6f07ce7196158
+B = 3a8df796f2f3aa3096b98d38018f757ab2ddc72995b4bc5abcecd7618062a94e59deec43fa7354e11b63876eb229d3ec4ced37c932c0b472fb2d5abb9cee3021188193d5771b09c52b7bee1685de9be055c34f8e1f5ec663dd8c44ebf756fb3d8c1d9ca47be6b1020000b3ba4c3f3c85c17bada14ff3120c7a4d2201fbe39ea8b3695a5114f7b12153fcfeda2cc4ff9f6190413a9536a7fe639d05c8b5289251a286d6a71cf3b4c1c5f24f4906dacc2adcbea106c9cf5e071e79b144fef16e233fd058424a8ad84235eee837096aca00e7bf7b619bcbd14b7b8dc244b0d252e41f78b0
+GCD = a5b9777ec6a4000f87c1c0418df938cbfc53de702367a2035a317812fb8be40e3d39b5704afea69ae652b6cd5c17325f31508b64ef019fdf0072626190c797e923616c097c159e5378817cbcba2aba68f2f650ed6240d087f429eeff283a1eade84077d9a8e1d23433cf21552d7cc2e98358
+
+A = 4546dc88545abf3991ecf7964abe6fd4429091e15059dae00c836bb6d43e7ceb6420896430959df964ab6ddfeb2e2dbaae0b98c6de128f2c027f96089d3ea7fbb665089a684b0c7f121fed84a05dd5e419ec9c2523b35955dda5134839143f03f26017d962ecbfef1b12eea92b018c68f65200daca146e6703a96490a47f775284acbc3c3365e18a524734dcb075b7abf6c8a229dac543e0066633c0ad141405d58fd39d511565955997f0b1fb1dacbb0fa10a151c7b1ad55d5d8cee4eeadb58496f8b1f3a2bb945ec2794b71d816953401829a6d3166205ca1e40285e27dc3205fae27
+B = 507fdaa9bf3b4d4752d3651aa4a7712edc430e3ef35e890797aa626db17ce8363d71abd9b5e137a7d3e273e982d0ef9d96da50115d1434287616caa69a2eb92e7098501f3ce35d4c02fa6909ab39cac1a7d86ba2ab55c92667e631508290e0e781846e6362a0de48936c3b5c8ec2e51f3a27579eb02e65982febaee6ec0e5a916351b1a6221219a00e5cb0a6bac543a434d69941935427e214da344a92d5b71e6bedb70e79c7cbac9868cbfa07b98cf820585f6af62cc2988bcc00843159311938ab76ddff776478e75ee386386f2814ca1ae65c640a13eb466d4ab38b77980fa44eb55
+GCD = 443e3bd521d2a8550284501529e20cc19a8924f595a7a1e5cc7df8c2adeb80764502332844e61bd7d7f2749112fda7151e2cfb7c940862859b294d2250b037fb71d3b9b0da435f7bf6b3e43ec703778ba3d728b0e3b9193150970b6ebfa4d55451f5b44304db5b55346f9afb2a1ffefd54b7
+
+A = 3da9d76c9f488318c800429485935f3392ccf854f168ce9668332c66b604bbb1967425a285dcff49f4ef64bad070c3b9c459e8d6b7e0de45e511653f37a146873bde37daea52b0d5d0ee240faeda35ee6a0c4a199f88cbed75b688254e22d19a2e2f2111eb444343b55914a184ceced9106333b437893d2bd0a7848e5bde16b61a4facec4326e92cce9b3c779890ce4c5bacc436becee62e156d23065b06fb4f99f14aea51f12893a5d4949861bfb47892b894f0c73d1e2abf8f58c872e2f170df8cb3c11f4c818688836dbb74a173d5531ff334083a7a16e38e5c851c77af48fe89c7f1
+B = 418a39b25b12c8fc987ed28132ab13a92d42358649b604ec83df11944d880efce6a1055ca83e0e78de1de2fa23fbb728e58de3d2eaba4c14c8fc3cd5f3a6e5d8779c1db2b780a564c85bc0e61503bc5247ee0a26fc5a4ffd1b053610fa40ba85c78eb3d319cda05b28d9800878e0bf6eafb8b5cc21b0ddd7f5a7ff0c1e3cce9293bd348ad35aa80d0f09cacb008c13817e4b4e0255bf7d0d12eeff8e805a600dd6502d7665fa7e31ac52bdf8d498a67f1975b489b47d2199c6a67023470d574c55b6f2fb357122df2e5a504431e501082031ea9ce880910701b08e3eeff4ba7422af65bd
+GCD = cc09aea1e5c0f063c86c23b3ff69a0236b6f7b1ecbe680c03939244bfc270551cdcd7ee5fd02895d838abb11c755277178450c0093ef1b2588ba52a1a6021d24cbb7a93379e093be891e3a091cf1dad0d318a1b8a316e9149603bbab61ac866383584cdf9599f0a972536e725e945cfb1a4f
+
+A = -30930a5058812e9d1a321c0639f73e34ebe5118f079a1f5ae55ffadaa31e0a00422cb5fb2f64fc836941c1465664bdd4c9bb772b7d4d7655225a0281a68807aa0e79f331384058f183385c7ea7e66a9a9279414725420780f6b779f790d6dd1f20320ffe9fb4626193ffd3f67420c27ddafc8a95287aae955ad4853cad2826285d0b80588364a6e3adbd8dcd6d57219e3c177041722cc052a12c78119c6808326ea017fd4056a31cad667d22bf13e184b0fc0e779b4aad8dfed21c85befe2654d90d427e5a2f68314e77ff7dfe691416563e30b3e7c4382494ecea90a694636ba045a1d7
+B = -b4396654068a9980d7698bf6090e2221b9477c9611abfa686539391951998f39e8c7ef838ef58ec33a5f26cb67b87967d45b607a6b3b1d0b8960bd40f1960a7dfa17a40967228324f06508c0a0cb40f9ef1febd68a086965447eeee232b29ee54e43f8b555fbbc8eeb63833f723fa5d7056e9cb5cabe3a629c2d9480cefa10db82b5064b36e0c890c065f84f061e8b96a3d57764ad56710cabe1cf0223d77a19217e7cc2b85bd523999d9d893340203629f46bac67478256a18e6d9e05f3c91d1ad8f5b34c2920ec53b6dbf41d1a47be60918ee9b02d4361f6c31ec380995cb9cbac11fe
+GCD = 7948f81b148567048ca6761c68e2920f6f910dd5e172e619c191fdef466ea55fc3151c697bf9d2d60f340f49dfc8594e46dffc564381343e9497b7fdbc3679346ee471f4793d2a94e3da634b24cf8201964cdf6db8f38e9c8e521c15f4387a0e038ac5509439efd842061deaa001cb9fabcd3
+
+A = 2822e040466c5e960c876091f4b148719c2502de412bf3f80dd593bdb5702aa2529fe4f9a47cc53aaa154ea1cc02837b753e8c0be83143afd84da0faab225104b0cd2e1a7e17bb10741c40895d7df77356ad2ed0fb821a3a050d8ecac86ba3724404ae3bb0a84f3105fba3c74c40e0a640e84cd4df3761af3d64683c33129fdf657053588d12e6d5ad32be50bdd2f0e717cfc2e2c87ebcc77e2b84cc638b207e3ea510cec224a2b9516ecc85fb67bac6d80c65828ac5950e981ee378b3c7f0fcc63e85f316c3c30a00bf34f09839b3e8f13b45c5dd75ff389624630f66ab8632ac291627
+B = -6f60430bdc2b03eccefa2fd0c772f3b615e256c0c787118fabd7b1d4695a1e3718441e45864ccd1566f57c83a6f204739862422979c18db6231d5f307eebe0eca2634442a8527d5b932960ed67a8ecf135a8d56107bae8aea83daa9be3f3bd56b1e7358136e894bc5f0b986b0af75b176ce7e884b62130a275152ea022eb64d60d6b5b9ecc00a7da611589cbce65a17c6343e879a496bce744c99394037c8f9d95fb34602157997c45be0b8c6c93861fd14b0303be507f61d4ee7f5e4ff11aaa28a0b947d4d8bdcf4055740c4f8573691348c4009462dc89e03b6c1b0979b4ec7099e1335
+GCD = 387cbd97765e8fd3655450ecca4ef9ebc040e8cf909000dc199474a7ed28ab26220ce6afdeab0c8e772e818a87f13bb61e17b551682a5d34df2af8447d2b30ee06cd4c8fd2efb16010461e4065b8e4b3d30987b85fca9b3e45b0bd953d151eff3e250d46f678a2ee46849ffcfedded2cab855
+
+A = b6673cc591252d4a0e447feae2763ebe658be5b2e5bd80bd370f7510d5ba9c3f89fc2ba85e54af92604e6c1a5b0db8647bac06d3061c410ce418aca3a8c55b966366f212e3d5703e7effb87032c10628de2327935ff550c7eb77f91c2ce78ba23d47930d9e41624561381297ed8e2214fc916fc96c13f733a3e52b3235c3dceb0e9d0781fa73190b901ccbfa69fe6b7a7156364233c0a2472f834928a73b6fbfe39ac8ab15b07a0491829b88920982cd6bf2cd8068946c6294af451822d2d45899a6251970cb51903e1eeba99f65853dcec035a6d89d90accfbf7d3c51c48118641cd1f9a
+B = 165553204d8853b7b379b90c37e8c96b534411abd9fcfc1db67e654e860d31e3a0fc0fa1f702c2613514aba14b816c349737fe80cf8ccce628ee579f372fcb081ad9ae87e305dee73d9b15b5d00f677accd5a11c3fcf20058c42ddc2a21bbb873e7a5ec54c68b77f452263d3e26a017fe72c47c4393334bbed3bc28205e79984538c33b41aad4ba73490108c81b2f14cd40b8189c3accbc053499dd14ece90d266f5bedd58433198e78461e945817a35f184b15bd9824edec047a22e01028711700d76d8e308431b96ea57e11b87cf780aec75504194cb1f288a93c01a26f61508f180ba1a
+GCD = 5af3ce452559f8f500a07def004380462e4f767d5b974a253ca4e1268b9303719d9245a820e1653bbe6001e429a7e48054e2f1ffb0a1e2afdc05cd79d8319e3ba979c652bb67b8646eaff17fd0cb7fe162dd6d56646f5f972e8be1cf488d731a26fc004ec312e6bad5e2980bae96e691eba8e
+
+A = -f048642178f3a5493fd98ccc18cd5069ac33c61ff5d3c7615f8dd3bbaaf70314cd504c5037efbb84ae1120a8ba65def97696a9969726f31780b7a499f78af24990b1ec7c152a8744995e4d96f7fcd8c097c6f02ab10fea507d48f2ec421007e0344fbccf1c7b5b23f08043314bebc0b359163823ebb9cb23c5d83e7c6ae2819f87a81ee46acc1dbfc17ddc9450a9d16276a9ab6ffdc574f07d10b3475a334e6fe34512b1d52c1a369a766c3f865cb10c90d5f9d3a1db4c5beb1b97d9bfa2604d3601d0dd7f5bf26bcb96c3a35978b18af5b215d75f37406bc7f987c69859f964afaf911c0
+B = 646bda2711b65a7a8e22343db6002d48c2e6beff6199ddd5b3005770010d29ba617a31357b692a5c7cf77cfba9771997793e64c01e2ad60d58f858a3360a03dd35a061c4841c5fa4ffa3b325f771a51635cf32097d66729a72cc1e550c57ca72b0427bd24908db28756297a2bff7330d0b7999cf47c552c7444b5fd3d87074ad42a757465c60ce2102db04399bda757dfe516ffd0597cfe0c211c919f731d0ffd06b19dfb700afafb2b54f832ec94c797d51f699d8ba47bba7e34579c90ad50a15dc4b3a71f752ca41d4a23934c7ae221b96ca8fccfb4a346e2525ef08b9934fdc14ce0c20
+GCD = ea95316b8038b8eef1e2d0afbd011876a1d4733f7c47298937206b053d072d6a4c88b1083fbe408aad7da2c9b9986bd5f689a5f70ac7f27287efbf457e3369d9442bb1ec76d489ccf45fc4ae1a38c08448cf04bdb1980241c33c8d910b674dfb5e08fea2df9e008c79346525e1dde7c6d0560
+
+A = -14c7c1cf7ddcb8ba7345345f425c774b49b56e3642ecf1c21c0bff2c3a744f578cf53a1703a2979e0397ddcea3a6180b509296dc6d12cde958211c9fcf9fe4e0e6e0065ac3765ee6eed36f15fbd4dd07c15849abb965a12f2fa865f162299ae1011472b35fe483ac79546cc2f9524be07aca9c7d527c3e78669b398cf427f62347dc963abb45be2235ec373fd6ddec8b96f361e6b5663d5fd0083b84c7d075c453d93f674fb5aebf2aa6b100bc6950d23166cdeb0b2405714a78ea5ef5bcb2caadab6edf9407daf4542e40a244b391a52b0f3ba78d216c19ec064a4aa45983683da7ba3fe10
+B = bcb4c900d22905935134b81f862b7e0b11cb14aaf616529c65f725c52294c47c61b8a77b4c1284cda54f008826b4fa4b3c1859c3597ea48bed38f27d1194dd92fde5ad6971415639048b7cbbf52d167ec09aebcab3e3776e4afc3a977b4696b6b1c8ff4725595e181884d3faf38bcde08c25179e825e6103f60b1aba0e9a62c0b3e4e2835f5e103dac8ebf42394c1fd4b46300b1a9fb07763bf460480c84c5ec4a0ded881f86490447e48825e73491074be834e17747d01f223aa7328e1b73a15c9779850642bef7d2341d8d6f94c5689020e60df791a8f088301834e08657fe37952abb96
+GCD = 1838f6765028f611a0659d913c8d1bad60a03d29d87351d793efac22a9545c1662467963a38c57ebee6a1042aa5b77487fd2e5b09feb19ff9fc87415f6cad068248186631f6fd10ac2b8827327bf65c832bf055988612b96a2cc62070f1df00c0a9f280b6b5bb855132695008d4410b6c592ca
+
+A = 1c48ddf1f4e2e090b77d2f0b6c9793eb421b32e37d1ff05a80108ea48485e228c2512b0f55ce5c3e14db073cb2bc041739f428dd632557e8c81953d9a82cf0c4735108330a317abb9928121b29f6f074c46b803d845da1c8df1869751dfb27814e77443f87ecc558a22ac72fedd5f239f94a5fe18e432e16c5341c2602c756e631dca354b4058c92c924e00132d0b66b9f3b6279b2e99eee4fddc1af37cd7059fe49b0d2973ff1db8ced02f5994d9021f0256cf0a9866301c9596d4dd60f087418377410d54d90fdbfab920d610e21d54d48efe64df6e9b441c94a98cf7613ce32b27ca8f64
+B = -264f91f06321f47a7d63b1b293c4ce36d290dae687690484533f0d5e7de7ef6f32fd64f6e200c184fcfe3594ed529df17567074e70a4f003286d991a29a68756cba644b4951a854a713abdf80ab49ee0c467d57bde343022ffcba330b68967089be4882df51fa06922ee346e96ca81b9ee9678d7869c09f17b08e5f3aa3ee75e0d8f3e9d5b43911db2c81d44c81b0f74793c932bfd1c86a0974cc53ba881aa90058b53c85008009c532e919e079c34a35c0a6477a6a6bd0f1149d20cebc5a1dfb66dd3814f30ce96f6dbc4d8baa5bacdf0d73f81c90d29cc0f88f62a315fe0cd16a1a9efda0
+GCD = 3eeffdbca0cff6d529b2de69af208e6b99a9b42028c92836af2b33b44d94074188b26ee0e94ffce40369999a8cbced6f6a94fa0944c8445494b5d7b983dd8952abca8366a7c0f0195cd0a4a02a9833a33d9efecf635529e99bd97fa46a8b9c3f129c0546513b4cbdc3fad5bfe193f7ca258764
+
+A = -1334b8fdf64ea14a5ecfa55ee2be8d844aad16cb58e880730b78624c96af300cb57ff0e4dd9bd755b1efbb257b67425020c584c32b55baad3bd3e09ff65d3f2e2e1fd2e3fa422863a18a0943151e01219448cab205ca585fded65a9438a04ffbd07bac974c021c93f1c743e6054ac0dff56399d6ceab5ef2592738f4a66315ac452cecdb33d4cd67e37d630e0ea4aa341eea9682a015ea2e3005e1ffb635c2b0cc8b8be5469f33526aafa7c6545ed82dbeb979b5178ffedadac33b1fd37284423daf18c9a3e16defbe1c68034287298ffddbf505cfe69684bd36c07f41dbc73c725400133dd9
+B = f1e43544265b7d2a460d8a619ccb001a6190356fec99b45c1ea457ef16e8bba1d5b593f62d6dd8e462c07e8696c7bc49249dd30424c01dd6270f3ef9a701ffe4516beda9641989579bc3a19850e4063589b43b10bcd8c588020b58110907368680103f420eee6159e75e286bfe7e57fb9c8bc00dce8f2c24bcf4156cd6ad8abf810928de7fd021493fa84e3bed7c073df52e6c64ccb6eb42a4013f63d19ee5a08ccf38aed7a1801997abcd1828ac28000bbde8a4e17e6590b393a0a8450815c69a046164d25f8f4321573e54755787b4bd2d61b1d54a69f2f690881f36e03d095864addbaa
+GCD = 13a227b30d272f363b5314536a673c8394d47382a13bad6517fd2f25824ed656ee5582dd4af61b57b29dd411f58dc6343f79f2ebd1f438b75e36421d8425a8f45acde7f5296e572ff3933682dddd17cc5921f8b7bc08f2f58acc8bc598a0b7c345b4f5546d1e6873484e1b782a61b486d5d4649
+
+A = 631439392ab44709aff68581006d4d26f08c91981c556ffd73e2216fb6a57e967598943b8ce21707e3a4e913f2302eeeaf5f6e698834b671fb70b9faaa5803df021f00fed99417a687d018fe88a3f6d451659c88258fce8e2eae399e13420981abc80ca62ff4889634f112d1a95ee7156b963b39984fff66832c01ded16c21d3e95beb9b80b586113c572906a1abe64e82ad599049df08fb15a3332a701d4023f72839d1ff81bed0d949e5bf577d0b17dc757cff6503dce26fdfd8f19f5aebe0970f3413f11073d668fb4b5b95848e933e08777a396b9a4e876bc7c46c7e764cc8dc8961b2a8
+B = -68fd910c09db7c7f91bfe1681694f9eb3cdae2038da568d2f651e3de40c1c49681f04bd0b6e6138b22c7ae472e6c8d25aab48c9793f327f83a8720fed7ae600fe9da69be87b4d17e306664d98abd18e7569df688375ff67015cc8b24b85feac2265a1c8c7bf59c892ae6f6a06c32c724751acef03b0c6352a7f963aeb1a0f26428cb9bafabb4bd00b4a023c69a424eea642c32f701771ef0ca92121557276670fe4a6095d4af57b863d281283d1f6b1b81eb7e4a06f63eb7424a1e3e3cc37dd66a3349907037301338b940f974460810aa71fd4ff503703f1c615996867d738e158691bbc1e4
+GCD = ee906e3dcfa0bfc80ba7ec6f60680c35b1f736751ecc2cc44b788f2ef3eeb5ba7050b2770d16bcea3486ade92b2c4cd57843713d03c82227f90357bbba7873004d32d00367b65abc90eb9f8de7c0a1753c11e185205f306b1167f1ea0f65c3b08433ed093e64cfecc42b469b4cab9614c7ffb4
+
+A = -1c3c92d85ece7ac25acd50d92583baad9a55c081183106eb03d094e95741461643e47e3f580dfeddac4f91b6c54abaf086aafa076e81228d17e928064789771984bd9a77fc48278c7c3d176fc5c6f14ead8c2ac1e50b5e61f1b6f1f5087ced3a9fdc60620952a6fa89571636918f6620b57be9e73d599435c1d3768b8af7f53659c199baee56c45e919a53e7edc14bf052bf8108ea4d10159a6a035b9e3d2c34a59a93c2018c089e8e02f0e78de4abd7aa4873b64d969719b7bc2ee0f4a5d1b7720db9047a69fc06b05e70d308875f0a33ed409677f0402f6ece663423a0856653ef9cc5cff53
+B = 123238a9895b89e4cfea644bf0d37f13e826de10d159bb22a898a0886d3dbf0c97f9f95637b70b7a732354c176cb89bfafb9069e60f9ec474eb93248090ae6df18101e301b617a67deb23465dc8274a2872e8c616ab41ecb41db68ff83d6729c5b64cc4ac2645bf92c59326738518652ffb212a2dbb419b4f3945cb6d3e7687c565a75857973dcbd37d89e3b24017c6c7b594e77f10d51162107f86bebb5f48406700b8dcc67aecfd058b1df64e75ad24569daace6729afad72b62689b4e7b9e0bb1d00fc0ebfc4b861a821789a502b137516b6a984de4947f83acebb43bd5f2fcfe1e01d6751
+GCD = 1d9a0e6e71a23dbbc63f9152d9d650241a510786848dbed2f2e86354e97fbb30cde2f7bff63c69d3cd1ac5ed2b08392ff8bb87be42e1df14154816e81cf7f0cff5bc78f705af9ebb9f0588f3c5fe578ff8d01f86f217d3de0dcbe67f1d3859a1db5bb3ef1dc239d9af5764b46d474972fa0a107
+
+A = -3e5e2a967d53faa7a12ad8f4dab9fec7a43bb415f748e3a3dddae9096b87cd9d742d2f3b7130f2a82564682295e521754a7429a5a761894769d54d8f2111cb9552b5064f93544fbfa27e5f1a1ba07ad05e89fd2e446dae65d55e71877089407e97e50b40b6b07278969d46be1b985e4cb185b0d800e6a8a00e3a768cfe52ad7f625742407ec4a2c3a246037353c86ec201b0bf5c832e559608194601410a6fd94d8010483bdee47f1d38d79a0cc5a11192c3e64b656519e6568f0ec45ec664fbbfdb7d0c24b54eb0e25cf1794e3a9a1f72059f6ef4c93045bc828a4f3089ba23632380be40288
+B = -26fac76019831b0efe3b027a929ddc42f1baf5ad08c7812e3763f5009b22bc1f993e5010f1f6a4e0fdf4c1a42ca7cafa9d1663c5fa7d78a9d907ced834c660baa3a97480b6f712b9b50e73e4c1966e4342d382538582e1c3d535760d0f6b183ff811f4243220daeb64eb4c4180494a31f3b84c3773b3bfdb92215aad7e68829b31c9448fdb857205862f085357b0df5b3be17bcb36c809d27ff1e19035c8df35d34a5cdf190f8be2eecbf82ac6f7fa534f76c6f88b0e46834aa28e17125d4e57766a8f5f397ddc235a7ff3fe5e755fb867fb2d933b5cf117d0bbf9e3198de2b0aaf0e3e59ab0e
+GCD = 2ccfdc5914a66cb177ac376f9d8dce59e0f63ff15828b8a07461b74afe7c4fe7f5849ef7cafbfb994de8bbbe4d51746a2d78f9b5935854d157b8a6f916cc8b18c7b9b17ba98ad8d1fcbfc7976f56c59931f017dd6016b6b04a0011764f6bb3468ec2497f3643bd4c4a622768f8a359fb650f332
+
+A = 1c6b60d15f6bf611e1be90c5aaaa2178e9db0e2ea1d389b5a897684153f9b4f4ae3e5daf908c186a93d12a0ecbef797fd6c2b763cd33cedc107fc3affbacc5aaaeac7e3838252f3dacff7c7732e97de098b84f39c7cef85489ab381f387b43037876b7c6e46f94c87cbf1888e24854a7d6332341ffc8e89315e360a36d572dd900932fe8e5178bd186b311655c882de0ecde312a171e11354e715db5df75f73d60e39872b603a979901f5f87e969837f700b5e992fb0dc1a69744411bcff242df634ea062087e9e2f7be469c8c68fe1f25f71af94a0a7c11fbbee22077460acdf466b4d71c8f6e
+B = 2fdf68664229400d21ca8e86fc520d7f294d82b989ca2b7e6056fde84ef1c99a924a2a35b83567d243d1918a13b292f5ffbb661846caf1ad308bd71bd48ecdbbc3d2346e5f227327ed68b04d29fba7de045e911bf66d5466a9300543e2c8cffbf3d9ec46d8fb3937316c224c7e622feb89d671a1b5b9fd992c7c5ecc94ecb7244342c1ac352fcc0681f072c174b61bd443d65efe6826807b113758aec5abae595e28399a9e210bdfc4ce6128ee5373d631ded0840d98ecad4422848dd3d302ce1fe06ae928aed058f72b06ef37b5cfccca09119ac32a6ad14d5fa3a12bc737fcb25bd0776fa94
+GCD = 76e6be7ca709dae8c7ae53919df8629ea6b2bd6f3eb1b0a19da01d043f63d5ed21b497cfb03b3385fdbbaf8e721d9fafb24a70441c55982cb032b5220ebdc24e9b723f9f89f3ca961cc764a11b5a61a896a591419f90a9ba979e2be8ca469597857a25c827a54ce07058f727c8372441f9a42fe
+
+A = -427cae2d686c2e6f2d9d754cc3b4dc846bd9d1f502d6b43f698b26c87bec28f9e29e61fe227272e92e5e488dc8b8b9be83b2288921e576ff2f96fbd7603d03cc51bf5bf0cac33da421d2030e8cdbd3ce9ab8c63967a49aa3bb83c13a060a71ac3795801d82a728660e9b1def1c9d5e7916164af2ed4f5107e04bc2005bd1edf83fa72319040686686e4f1f4d0de0dde71e98ec1af683753c2f95835d162ea4891b339f9699795a569a761227c9679006d0e14d8f73c932ffa429fc3c6408a927b8612b506beb15ff31327f60c089f281091cbe8f3f45d0feaf40c56498464940e26abf62c618f2
+B = -19cb0ee8d08d1003a9c2d49df3072537bff98ed370cece39560b22a83fdf3c3216a1c6a994a1d6c1615f51fc3e407abd014a66307dfeac566d817987c78e2285c877e67ae16d9242e277c4454b98c9516c935bbb1c57321e57ab44044e41c51d2e0a9c8a4ccc2ba2941a8e3037018956a78ed9bb3bd28224e7ff39170e260fedcd3b5af84912c0560eac18948a8aeea8062765ee874f5a8415aa8413f0eff04b3ecbf019aa8e74645b3299cd79e67de4c6c6c2a8c16da63369f6b900a5923defe4bbb15be387661a5928085aaab2170505ff1b0dc761058bd7b444545ff1abfc406aead8ce21b6
+GCD = c51a0059e7ba25ca99f603eaa19c4f6c85a1fe88f7cce5f63a4843241c632aff66a0f67d419ec95790d29bb9dcd194983bd9257e8801aa189b6c4193a2723fd67fbc165a61f60c8b641085dde1fef498fbf0078d244b2b541eab89a7943c9ef00fdadb1a71d7437eb678c8d866ca5a7c01bb996
+
+A = e86355e0e8bcb5e6d27c26eee1642949077300bf57af4382e42679a4b56f44b28539a2256e1f50a4bca0a18d91b5739cff22087736af74c1c5f5ed75787125fb3740ace227e23fe23d062bbe2ce8e3d22a77143e99e9c400bca08a5a98ab278c4d0ba4e053bc0b43caccd8bfe568070024b918550a5072003d29cbb570afd7cf30197bbbbfa12bd0ab6da8ae38c7a7755ef31602ae98db4f76344bc72d0ee7c57b12bf7dbc0f33fca08fe7222582187327c8c97ffb7d655bfbd99e77018beeebcb685dc3d33dd6f40816d5347685692b7655f1c01fd65b8bb000a66c8730f30dd2dc7233ead8e5
+B = -9978252808f31f59ef028d16bb19219423c8bbb7c0dae3d0cfa2afe55d587ede9ccf04caa421fd54bf00c99f5162cd1c7001173381dd2d5115fc59890b16a1e127fcd560145f1e4344a29773359e1845354a8088d31ce7008ac09343a610bf0049cdf5b8487a8631d1b9e5f44f2c140ba0b0f3600b05751a9128f9e5deca2bafaf2a66603b1aeb68fee50f8ff763daa95a1b196bae0c8eabdca0b7d0d1ccb335094d326e92c463df36e283ae041c486be0767398d26d3b2cc3160838be3e356b4e8fb87912484d5b10c6f35f2c73ebceca736c98c70d31bb52d6acb71f0c2e31da5545a1317cd7
+GCD = 10498e00a7854872c651f1b8f70611af8720884468fb85e47fdcb02268727b6134390d832420c4a9495011d9b01adca356c73381a65d3a463943dec1f1e46586ed7636986ece14002983365c3569e0ada9b2fafbf225abc82a6e9ef1093f6d3abe4e5558d6ac0bfcb59fd0267bead429ac2b7399
+
+A = 33056396ab8cec0fecc98ef3162b02938c587a891f1f3a6555db52e92a063948ee74da3f119dd17f65759f6acc50726978f2c773e7413de0a549df231b6f8d7e805deedbd338dd91b9150d6dd1cfcffd10cb2361c74847ab9ededa975afc3525853002e6654a1c8c3726b13773462468ef0d3ec2721f58aab9531f2361b86a045e5e474c5e60fde8c443e3c3e1912aa2738e2278afaf782f9f66a1a224433ba5c0b509c62fce091026095313d2e52ac427163bf91e9ae0e007e2fdb37bdf5b39eff0fc7fe718c21a9231d05723c8bb6220ca1efd41528109595a08615e2fa7a8207668afa1c84bc
+B = 1794e6fc76f28672aa31fc5ce06f816a23a471a5524c349df29f6633e70739f06a673d58d535d76dabd629e5837290fa48f07d327eedba8cf5be816598305b97fabaff5e445fd941f041ed238b1044ec28b234af9af90db93b8fef73ee16e107e1044aa73f055199efb82a0cbf8f95d0d4cfa1b389cbd210564a58c557b7e27fe7c20f01e49a3070fd2b9a99a27c7c5e3e4fed2eb9b8cf2d628e0df0d4467545e259dd26271c7ac2a7e0e0f0e3bce27b8e71764e46d44bbcd54fd1ee345009abea06317230cb28ccc926dbf90d8a89fada44e520d7e7bd4abdafbe489b779b2674e26976849426c
+GCD = 66c0c2538c0f215bc264063e843f046e97acdd72a6be8a4df097fa2092062aa00d647364e9cb9f3fb4d6d230ab55ca2978fca9ae5c2ecf355675668b8244f1292a7a6a3c757cc466a3babb50f459e8717ec74c9fb3f0b707d075c42bed7287ecc72335fbc09e5c3a4645ee6c0d012c179917fa384
+
+A = -3b3a5314bb4664ef2ab0e91d6f1df9cafd0de2129aa3107b114cd827834ad48c32f685fc2df0bbb35a639f1c5e69ea5a1f659edc5c6fe367d121574ef045ddbff7682655619753ab3c0722541c2ef0520f004036dfb6eb6d657fdb4f22001d5afd1e27c99b2692c60341c5076430180889cb0876b829ff71cf97194f2f276080bcccae82bddfbd9a67722994c304b77d8e64a4ead5687811dc1c22f9c2768c5a65e9a214217666f62e5d1f9048feac743b2b6e4a1b70f606167afbad0296cabae1c96875de7d25e70ca71e4aa27d5572bd988c5c79a2de945492a2a8fda4b0c282acc7544481ca4
+B = -8c581db9dec18ece53c7b789ea7112db2fc3eb69f742d996148d09cd4ecfe609cff2d1127f18bfd8cd0e1345dc861fc403044a33817d74d91448aa37ea60eb01a8f056994c1c727354962b68bb6013e3596d0d26a52246514eaa0969f7cd1631a8b61ace1b71030ba5a265f21244f33bff821eb928f2314ebb898977b280195cac32156d5586ebcef564a946c00f4175494f025003afa0d75e507b64a1cb1afc812328a0a4c324bba02da1252678c4dd8f487a850fc423748c7af6671b185d110ed51ba57c15951cd968d4cf658d4ee8aae261c9c422ccf486f5ddb7ed12e0d82723307daa63960
+GCD = 1542dd51e9b797a6836b721170844967093b734f90d3f3c2d994a3ab3ccdb8540400243c04f569643c5521bee0028ed99a073e1556ef4ef494b75e227ed7bb59114235173aca3b269c69edff2992a17ba5546a641e89f40fdbb9e85904409cd8bc48423b0c9c0aeaea17855c86648a444370f8c0c
+
+A = 15e2b28ff803f51f8288785b8ae7fa86e4f3950984ccd177c328eb670bc43bf5c3606b67d87eb9d66f5ce67358e2b5796daea9369e70eac202a172bc5b964b2e35c6783448337626fa942d8d484ecd43de5950a75b31b54138199167f47f4184ec735002816a5328a66d5ee19f4380a1cc4f401644c5a38390736fa9602380934c5c436950f31c96b5f8caad7eb9c0a138dadcc1229232f5991e555f4d50b503e0f779feedfa70f8a1728f607160a13ff98d0014839522cf750a46cb0d495a2edebda15e6a14004ce0b5f5b54f30a92eb85fc73a1a0cbd21e11fcb857d8b038e3caca8b9f6c41000
+B = -49c127992b7db7580b12f2565a44109e46233fc3362880ce492bc32a4bfd239d1f15ecbf1235f172dc7eefcf9e4147dc414dbdc0dbb1f3b7dcbab491920f2ac7222534e7061ee9c64a7379591d9dab761e78f80482ba97af434ffdb7cdeb807afd25c5769ee3a2cb2ee89f3d65dd4fe30df47cad15d73eeb0522f5338ed8ac1525be55b262dcaad3240bc0388c07b01b4e3ed5b1660178aef52cdb1ce4c7578f5a8be6bec03ecef50db96f9a0499c36a7e56da927f4534524c720f64267b41c37192d7f2dc42c19e9871007782560a6d61eba2c386a45de5eae7f260623ac4611fd71356255f9100
+GCD = c694cc1b3ec498b42e0f4e017f489412a825b44adc014c8ab6aaeb208482328c74398cb5b0a29a23d98684b7f66543de2a64c0051e320f3b7160c9825bdb58dd54b745cea68c4416c2a18c117bfb927188eb98ae09c1d0bb6b8fe33317304da17fd1590e333a7037cd14d66f3d141036a6146d00
+
+A = 144c7624c202337f31addbc25c57eee691d4c53cd144950380b0a258f0ca3f9b1070376af553fc6bab7bab5e24d29e01db5ca843ccc372a2626c7bd9bf72354fff731db688c306eb212b8ac0c632059365f1f8fb0398693045c20effef6e1be6772f2fae9393e1146e351cccaf17b2f94854388a43ac8e9d5eb88d2f80f249d5569b34752795719f8364eca5f95b1c81edcf0b132fb5c842631e4f11ad9ea48cd7954edde4102cbaad26ec8c6fe6510c89e888ee38581065a14b837d553ef51fe463b4e60ea578b8a8c9db30d7d371cc8245bd20fb09320e5a02a2ccbb095ac49a88602956dd30ab4
+B = 12905ceee8770f359c84edc7a690e5cfdc622736601365cd5873a06702f159cec39a844715f1244746a4eb3696633ae0d58ceebec67a5b13655acf3f43b634252c8367bc748b255395bf1717eb8c3d2e35cad72a593b1f0072b746a957805048b28286f427459446ff9e989600b48f7c536dcca749746f1196ee459c66752a21aa62fc1c64e7ec1ab2e253f95de5a30a4a1f94e4af1344ab9bc2c348baf186112d71e54081187816154b17c554615c7e695e653496199d314f248bbd46bd569e2c8bb946b479fd57bb1bf24466d05e599bd610bfcf28ff58e5bd5029e0fcee95cd090c55f06d69dc3
+GCD = 19cd7d35cd66d6d82762165b023f0ab2079d010bc60c3351191298f6aa84e7ee720edf808ccb7fef965aa6a45d161b61db517fdb81bf844598cb89d8da88f61066d6754b5ad1d198fe097229ae809befc77c3430601832ba014e8003bf48a44951ba07a6d0c5455d3f8d15c757628537061594827
+
+A = -64c6f8f645e5cebff01bcfb1789002372de6037690481f31c6460d6559c9a991c11c2f52c4e23c7f7aff4cc7d414b69ada090d985fb88370d7d90e4ec3d5c528916ef0924b1e3feb091a79e8c076038cea37014cd4a6919fd8b63d07b6d974a73dee865a272468b2014c48d04af52a0994f0ef31d192f4691f8a6525ba83bddacdb6c5794fa0180b24d196b6422b20f1c5fd0f87d8b83a23c3eecbe022aa2c1182dcf7f6bfb654f6ef768f88b496b511146d179dc63ddad0c0e1c320b69f1e44eb8ae9075f58fe120177c695ada018469c8ac75e2caa2ff7be48f78683b5d65d3be215326a7fefe3
+B = -31c6ce93d717e079220bb57125aa35cfa1b0372cae028ca09b2a8ad4ff7e1aed3cf6a4da340be66d5fefadf6f0dff307728a6d695367c00d83ba34c8f606aa5c2d95a2ebdb32ea62e6d732ff85f6d8764be1900f25459c26f3aecedd50bf0ce11f5995fc56a3869d3c635871af6f45f36af89dd35b309ae7fca7db380a4a5b7656ab7e63176f343ca4b4e879b23b7a6d0d4fc089a06edf9c8d0ec25de94cae1fbd9cdf12a74dd264b0c11761c5944aa8f419299dca934d253bce4baca8e7501ddb2d6716992bf310239c881bf28534b89caf9e72c48a25e033e65894638b50878f31b40080eaec060
+GCD = 2419a972e10b2dc32d8117f561e4033d49e83b290965e00c9a044dc2f5ba783a50f3d03df5e0391ecde035d887da4b0080d2a2913510bd24c8af1eac47b5c0cfcc3e6997b860f7ec6314c6dbff675bad27919ae4618c05572dcde1a01c309a7c9618e1b0dc8983edc35895b02f643603cc3f82cb9
+
+A = cd6606d6892510aff4f5a536b582c847ce3b56b81ca1c0b5364dbfe56875fe8f8382090f9eb54989f746adc00301bc7afae592a49c6a658fca77ee18d14b6c00c81e6ee634f81cd88a85f0d9a2c0de12033cdeb6bdc5fd11c2c3cc2f15692869f95913823efe48460f47e594a40087c92eb0c363bae3d5d71e38d5430e74ca9d4042e8501d639b8b5a9e27e106c7fb29cea7a94a0dffbd19baabdc3e9e38d60d334ff77c874660b993ac99ee8eee45fb44d79427f65e84fd27b609bf1fad3a4bad2dcd411bf58673de4b6833ae1352922b1983b8d4559dc11663b0e8c5148ed321c28680a63c8c5cd
+B = 8892aff7c9af626380c036c35b9e4ebb7b570cafe38e36228423c12f0c06b970cd0894e51737a55ecf3885045a0496a298061a740e32eb1781098b16e5bed89d65d85fc2f697d58497a6b8a5e8ea5832dcfeb07d8aafff1fc4028b0e726d70f0663cc23f1d3be6c775a7d94389deb6879e596442d173224bd61bbdf659f8f9bde48366a9ca2cf1847939e29b0883b2011a690c932c1a8fc9c33b4689445fa289fa8bf015d5d35f398cd9719fffa214080ae6d6596b59dde14209fd6a4d1bc9942dab9fee88fbf15843efb2a2a0a747eab57fb7884de2448b3b86ab6d79fa79eb5c92080f579730629
+GCD = 15eb812c409a908ffd9f509f93fae6f6fa24467ca7ccc5f0638767f0d7a8e8df8293971135652819f5492c5a2f35a1635f72cf187e0ed7959aa309eee13c7e58f8c44f6da62cc49e658acb7e76418bd735d7e9e7ce507985275d9bae2e1dfb9a561cc89bb03583ca7ab4a79eb0df7e3a9674e16969
+
+A = -40032fed495cbcae331309b15837a774cf9fdc6a738978313a51edd3b89629db07252c4dad9149b9506cd5b2bd779864b850d219682dbe33c86e39911dc656974584c7529fc385d44b7e8a8250097f3ef852513fe6fcbaed44be53f63d378c6cdffb936bd3e7fdd262d50f66941e179700b99255ed290877b9fa2643c75ee44cef7d0a288a6544e4a269cae6991e46e961441d3544b39c6b5efdd16159c98edeeb3be8f0da8129a68e346cf0840577fedd5a0d5d7f665c59b43aefdc62bd3c61cd830b2fec4421a73c710407eb06dc1812ab6e725fa65a065c54c81a48f7a437611a60dc32c26bceb0
+B = 30a36676b41b072124887ea9e7a17d99376a53796aae3d5c2b72f769f749d1d19ef7bd7ad350f5e4027bbaba8999d6b0c970d5d78282f3484a696e4dc435f9ed2a10c1b07cd60e540e812499da84ef41dafb0dad73c9c56bf03f100a6cb2b0bb94ed56443ab4844f5a1ca6f76d9145573f5b77e09282ca550e6cf5825e9da080500a7cc903a00e5dfc9ce4b493ffbb3107156ec4ca3497dc436545d91751c8335e685ab97e42f36bdbdb331427e805c49baf31106a4ad4ba9fd94e67941b10a0438c7817a8b3094d50bce92d89595f9fa0e153850c9f29f213c331843ea2ea7c04c73d3e00447a9350
+GCD = 16eadad2be9c76f1fcaebbb87aee3c816c90bbfb701289b53aa8385fa518517b420a3a740b43a1512b64d53fb814bbbf71cdd88ccc58d5848416b9de7da63b18b9bb6bf587a6da1e22969052a2432d3951b6e4494a75981f8ab2b8b1f49f672735dc79b062230cd1436ebf4b11b2d9bd879e5fbf30
+
+A = 910372f32571c79b73a8e00a347b6e5e00416f7e307ea838efeb34b5ecf4a80bf89f3115c02a52d1657f169888bb7d6b377fb758febcc7f037ca33edb619a12ca252f196df9a36bd00b4ecd9b125ac435c9bedd04073c8c9442722cb2fb1020dc3e6c90bc84208e2e152948e624d612b01ef8c34654f46e8b053c8234cddf0099a8d09d6f4d7887e5bd0c1f87be84d4c3ad62cd49e0158269cb6191644d88c6701c64b4669f6911874ab5cfe16dd795e883f440a55143a1a81aa914e253311411ab6ce7328712f707afa372b4964fb213be59bf302b7dd3120fbb44be5cc2b6d25c04257a49a0da624
+B = -16ccfc21c05b259ba7f85e36770a524a2e062b774408b67b8f923f3e0364d2d792d539b65c55ce8fe8d465c0248a0bf7c45ab24cc327bdfdbc7128c8ffcde21fc18d2b2ce5eaedd1c0688ee6da89071cf4c95c507e8924b7389d6110e255edac5f35b87d45ebc28168834ddb5e4ec8df2a44c14985aa427b38830e745c926ef6dcc7ca350ba0aea3943ccee74e7e8c8a661f935adf919ccd6ab9af7e91d688734fa0288ae4e161e41e0bbc7d94921dc24972de45babae761183d85f2eb263c68abe78fe461f8db6a06f8d50bfdb2cb26b5bab91dd6d6d8398483f4640f67f1689065043a3281eaa86d0
+GCD = 19cc28786f681d8114e48257854da5089753d5fec4f891c7089002d19ad7486a59d7f78359de4eb46893cb96cc85bccc5fe01d4591974575342f81f757fa57cddb3dc12872168394a8d8a8a74d41192ca803134912474c551d0093be12ee93691256d51f6330db61b804db219bf54be07e5f9a8214
+
+A = 493304b7f96f0ce1fa4f633beb3b9fd4a205c6b60db3990918346d36430d34969523e6104111f49c870c0ddfc03451023a2611849e6040bb70e5c27ddce0e9763f19d23679b723f2b85c734249fce4f5d39790d57939767ff2a813450dfba695ab61832523268ce4c331f6128fbf8bc99c00986f31f9894404ce325ed3d1ce0227e29f7e5d0b56534f8db4795c3258de47972beff8352ea5940a15dd635cdf7aaa3c15570f031de45fa535af0b78905fa47a75ccfdf068dac26301cd7411e2617becfb2d6c996dda9458082eff6592b4410bc5320900832cf09e64d247cae6180e1dc428477a01fc417
+B = 4399c9fb7d23545a484fcdd57014246c039ceab921aa0aa358ef3a2095f75d5b8a3d36af98099c54a02d4365573e189db4b022157315268f16b75a15b075d93381c2b6b02dd2273647c5dee06fe8d6cc3f2e2e34d8e9e09369311caf6ddfa468ad0cb43c1cd523791dbee16384301f1009e4d59bd3732dfc9733ff053470896a71785f621696a781c3bfa6f4aa61cdffd8c16e7cb8e8da76332e8197adebecd0220aa6d27256417ec8619e37d37fe6de9a0d2d98affe94f87f5bdf9e4e90d0b022638d646994bc0d1472a892bbc70c50472bd278653187f789acc69f090fa250209c739463a1acd55b6
+GCD = 5de5a39c97c6aee62d45826a13fb87f7301fe30518d7b5f141e24b90281c4c3c554afcb2dd0286c3f65996f8f2cf801c4708b89cb63de6e69df18204fa1d478054c4c33773c52f93677c0d1a7b55e337d3abefd684c99c189b0ac10052d9ce7ec2d3ee6290947693ee42416e1a87daecb270283a68b
+
+A = -787fcb2e73fb1c63b36d5e87afb4fd2c390d2d51d7dffad374cf13da6f2dfc56486fecce869414a0d65ab8541fcd43361f824917404082497dd89db3cb383cd384403fff63e5f69ab47e8f7f167e98af338d6cdafff5cee5b875bd726a3212137945b9dd3ce512af7f27dfce8816a420ef9be3da0aec033a8242e48e24bcf843a095a157ea892c4b4ad0a4a57b105f8b37f709706645e4b77c88304287285cf24b2391ba960f7ffd77321345bd44ad7c61bf16e7abdc1a6201ecd4c7fc3546dc6eb5edffcebcd09ee1eb89c5a676dcd2e1ed8d58a468962bcc5046a4e08d2d40d217ac70c3ac9eab855
+B = f7b007351a8385cf125a8bf624bb4626fcb401a2fef8ddad056c168a968835996a67cbc2bfb23f0d042b9272cf8dfae6190db8e110b93b1694b85d6d89a33863177847a47f87233f700e76f662994329a4b910b386916c3853de530aee27f2da9498bc53ff4ef847b267be4b420e8d3dc634e832dd67af0c011e76f83c88c6a94ab119db00c6047e0e3392c3c8c5d35033389e8cf004e1ebfa4124d18ad7e5d293e2e2b5e45aaa1ebad6a31eb4c1867f423418225e544c84cbeb0beb5ead0419f02f332469fb116966c6da3852b2d57cee0e35fec7657248d3dd801d94b5b64ee1f7f8303b2b9e22e02
+GCD = cca8212b7da1088bccc7d58f92abd0f95b9ea3fceda0449b8e3d0a5f6880a2ca71e3446968346738ad797a59dcf53a2f57a35a131c6c4020ddf485761f7b28541fd1f805e3b6d3f0a67dfc9eda59abacfbf7cc654efa84e05d1a30424d21858ae1d00564e6fb03a7a97af1243e1df12a7a9d561c49
+
+A = -605b0c4d45508914a93ae9837b3ce24fce2157cf34eba1cc224afe7a9aa339869b0c82780223f432b49d99c35162e21d63886c825cb5764898fcdc2d84394686131db17ffd6af3bd16391148d2efb3f21d9406e0e322ce82713b4de672b25dc8d7f4c669fcd646bc2ad95f874d6a9efa618fa80aed3e1f2bd560a5bcf504ac0ef5f27fdfe906f7b56bd094b9506ed02eac31a100345d8111f2104fc24bd8920e2a502bf703dd6b7591ce8d119d3a4d2320ed0eb68f225bd7d231f9093475bced1e96f9d20591052cfac4b0209b8434ce07ce8d1781fc3fdf19739939930e8f019fcbbcb1a8020aacba
+B = 4f887815861ec237f5a6865cd39ac99cd4e4c22e3d86af0e7306769599446f60d16b3a9810a11bbde61a4ef382124df5a12b96b37beed4a1851150908056b27da473dcd8d3685a04e13c83c88bdd3b761dc7688c15cc454039846c13ad5ffb722193ff6d737254917b90169bfa2b407ad0ce3edfcf361239b773d2e525348ba7cf6d45889384d15045b3912e1759ea0949a0f76e623a025b79fa96d7105fc2eba2867bd8d3cf3f1d240c7aeeaa275e950d93c9c0441ddf3dafcd81e111639541bd2e2dffe78513025a0cffafe600f7d5e4907702a55bd7c50c7d790471eaa6c73665820769ff04673dd0
+GCD = b49cb116fc7b64ecff52cf6465edac4e6bd5859bc63fba48bda6232b012eac29585dcb58ad8bafe3954a31b86822f480cef8f2ada21eb5f9da2d975be03f37a78f8c52accf862383acc6b522e8a460b36b4a22e4e8750cac4f3ad1f1aef905bd91301c27626b6b1c2efa5c3bc470a04ba0f82e48e6
+
+A = -5a0bd5360007c82a34128bd60b6da030deb6158dad4f83138dd672aa7cbe2cf918c0566e5d66fafb7a4a0c6a4ee152b9892d670511cbf82243a9706cf05dbb753970f4919805948e1cf496231c5a6d9448335ea500baf021f44924b12783653ec9c96b249fd055a5f0e748753304ac2126138bc90437014ad721d1795c0ddd460e420df301bfeb4c313a86e058b2adcd4bad821f450af08332fecb336449eccf952c862000845c06825c2c952dfba038edbfe0e6832ba67e8a7bc5a17283dfa88d7e8ec03adb7daddc986a8adee256a66b09ddadec5de61dd435ca9104e0a6ea8353c5ee5f0a2d7f9570
+B = -f8876fb325fe1ab2412e3ceced8ead14b1633cbbaf19c1cb7b3405ae1ad4e05cecaaef6f2241484e8d0a9000a4669c2f1488220cfb7664c4f0ab847f5dbbcbbd61b18254e3e467914af85da5322127c6c269d543e42e852f7e99b54bc64b2506ab070a08118ae82df83d61f6e02787a28121a64f7709fa207424f8e2aacc54240e2ef0d56ac7876ac7adb23594bdd518eacd1b694177d71114ae851fabe9c9fb38aba0eac6f7d8555fd12e3e73a2adee2e6c8826ade7ad921c3c33a57c372c83c19436888876dbbd691cd74f88723a2049a39e3c5581382b0e11d82f79f007a8ff66773b306ee4266c88
+GCD = 1be3f97ab8856be5f5794ca6c116dbff7441360931abb899d6048f3c953a65d58585eaa4ef19d542b79e2094d70ebb34f16b4e125f2676df70f9ae77eb8d32d1df13cfaced879af55ea02a77e4e7c81214e22f907448dc54dd1d711adcc42317b8ed6a9ff900e0a4e01c49596d326cbccac1b5c4728
+
+A = -32b6265a4c525dad6688cbaf8e30d60ed57f188e30bde7bd76e2aeb8e4177d9ff6a5a5b6c2908a72b37ba21397d11315de5c6a13bcd95bc8b02637e5666af43adeab5fbb8491f1bb21b6055d17ead95c06ec27922a1f4ad65f05aac1fb790affc99e3808d90d6c461d4c7cf5ab358bacd1f40e4bad8edf473cd22806167639e83019c12d328f2060c8e2803bc55dd6052043931ca369bf8d048e26c7d28c4ef3e6315b98283389efd897af3e9efe682e9f1bca690143765bdab96678ca18d17861b047edae2fd59fc38fb133f51d0ae6ca6396281e241db69ca56e75113f1dccebf279d365e3d313d5be0
+B = -16414cea556c8d344a309888331fe81df7984cbf03ab2ba6d805377fda4cfe6727a0665be8f80e66cf9843eced5baf72267869ba1bf58016c5ed700f61068b6170196443c1ca893ac592afbf375c62c5058e6064c4e574edab913ccfc9b9b783085cc8191d7f125c429341b3f0110594e2b0aa598a14a74a73d26191a4b0456223791fcc73815973f9f693fed451ad5dd4766e75298a6760387c10ad77d577e4a8616f2140f1bba7a9a3aa09d08623782f169e70fbb29ee68c2def93be8d367b96de4cfc8c15e14f6de227ebfae646998d552da2a34b7dac4f6f640f857462a5a1a5142525e81a27f2c58
+GCD = 2607c20d0a73bb16f6d031b6a305b6cc74f4d8bc42b50dc0ba7af12f08e52907dd0cfebda50782f984adecb31ed3fa935b05a9e8275441de1a3d1428963802f7e67051b8caea74dc823bf76f6ea9ff4889ab2004baf3ac689d3ca24207613df7ed2cf8a2d1730735a1a1068b93f8acc5a9f25061968
+
+A = -34556ccd3afb5c513403caec74d40ac9951148ef05eda2c9216905320302d7502ded8431152e969deb1fa0e3aa8bb2ab44f92c4667047d98898f2d059aa23ec7120478c2220faef1a339ec03e4eeace99b9fce9b1cf8ecf06cfd8e6b0c1bab4d6dbc2f06525e19a3490a126e92f7132bd5ce5158749db8e5c2f8a13fe2b7aad0cf2b2d883f4564fb291481a73d1db19872f4c02524064dbc914d952ec7618328983e7f7f3d2a343cb5736d252aecc6d2f4be47c642bc7d027f883e961340a8fffe0a2e4df0721598056abfe02b035542e78ece6b9ca34da75b37046290133bf38a05016ae9f4ed69bfe2e
+B = 992c80f67d8ab0244c02d2d5c5d41a76e9f371b632dfb7540769294ff3c703b5a6f9c54d6ee4e0627e76cd677c0b5d301e97fb8a31e02eba424c3259b6d2af105422abfbfb7ac58ea00d57c2e6de5082ba5340d3ea57dbdb33805c03f630808b424f5e70f2b3d7b5eb678b8c2a69d4b82dadac66494a9901bf8b12914f2f675b935e8d0c4cba85a7788f94f1f2c1ea1ff1b13c2e45dd0faf89ec3a7cbe34cbf24aad42547f4e3651248171ff93f9f5a2a3142f70fa69825162b40c48672fb3f591cc2209c27b302bde4820abb104dc58e394f665574a65587aa7b51ecb097bfcdce7e226e441466840434
+GCD = 4186d32872115f075f3e78fbae6fa4c562a70bc291a7d76b3b1e49c15f32ecd8440afbaf516b3b33918fdec066034315fce6351364ab998cb0d253c4aa7f837c83f8cba8d7d5a699b79242abcf0dd1e1ea7d8676cde77af2c1054796f91650fa30ef1df88c89b0bc1170b97af466fdc1cfc9e7ba212
+
+A = -6f3f89acaa5e4cabaf55a49e5ce54283eb0ff8f906f18b170981a00a8276dbe5fcb0f8a1890203d570ddaa2b7ffa01ce00fa52dae4ac2cedffc5c3e23ee1891cae96b96f796bf2728ed84fb506c52b5c4a2c17e584b651bc154aa7341fd962ee5ff8f17b0294057a9cd68d00a139a311137b9aa50112dc9017780fab6bc9f6228cd9545ae9b13aa4dfa0218ae30716ee8228c5328a0479fe9b8825083ef0477bd324116ef28747103c751ad3ab4dd41903f08a0e759b669067564eaf35e95672be21236a92f18e8b38cfb28bbeb6eaf78397a20b876a38339dacfb36403359b69125ad0c8c133211236927
+B = -447de267e22d62cafb9163b032fd4b05e5890436e130d8719367990bec8a839eaf7970a8df7c0df2e170b2b213f3aea2c7564ec21bd058066c5f4eb67c1af16accc7f0cc2ed9e7dc09f18146cd93afec53b7deea0fc76f69f4674a35641be085d143a8cfd566f65f89c4de11edb5c5edf7ccb4e55a3d7d5ea695665f541bb16e264cf1e68933027344ba21a017eecbd381de923b0ed0e8372b0a3151c2c098fb7cd907a91db061aa80b7fe1521425d9bad0799800fcdcf708509d95d3efefd9cc4c70fb40473aa6217065e1167ef1ec8dbf61e8c4303b6b56db0d9bef2c8edea9ac0155c8c94c3a54b4025
+GCD = f23d6ef60f002c47ec68beff8a5d37e1d237a5b74cc550aa794588bf7075dbfb7b0b2d33ab5d4d11914b86c5e2dbc5d9aaaf800d0921c128532f180caf354c3a999816b3f530c28d9dd98729929aff356df0feb21eefbed6e8048492b3cf367ecefe22611a8073abb02828fe2b41b4e37879a5ce20b
+
+A = -122db965487b2aedaba743fd7c75005ef9cdda325b1c071b376639dabd87c5df076a3c554d9134b615ef7e76500f21db921a3f29080646eb755c3f413f8b9bf18463e8a7231aa989b7f6b4171f51d416bad1a33f422f6034661d7c29697d874f7f1cc8b9a9d3f3483944887533e79e80182ea20e428ba8116ed326aaeb8e947283e9c16a476b89e25e3fba975e9a626bf8d60b11d42def26d2af5c8b371092059fcbf0d4df70d6928fc314feb9d3db4dd7aad0e0e4b99676fac2a1641fd422009dd0ec4e6db48e01f73ae48d7df9c1fdb8080d28b2712669d8460d28b0d6742979ded50970de9512fbf17f
+B = 1cbf584d71b5d64c0e1abb94069fee883437cb199da2be679a8555bdb281afa9a622811eabf3bc6fa2e76e05940f2837a1a4d5fe42be8c0fd60846c7e41de85df5cca213bc8a437a5cf16c61fff74a565055d043716cee41df8a39ae25b1983bfa94936fee682be736251d01a005d738502bd11fb892d5f273835ff1e467e2f588779378389d7e8335fa8594bcf6dccada1ce0b8c3d250f0a56912836b01b361e4b67b1ad843a31866b3cb742e6c4adc4735b906c308d7211252a905e7c36ad258662f1f05c112aca9c46b6be0bb67bba542d4e4622542db284f3be920038c203df508a8d4a29eb57ab7a1
+GCD = 1a16014f6779396badfc6b6c72a682ec0a2abead65a8d91f0dc8f4add86e910524f457b45d6ba55c1ff0073960062b2992f098c5dd8d91adf851c7c53320a28372e4e7fe6dd3b228453745ead77865906b70f2566fe2aabe6083e13d22ba3b0e9cd450d6bcbb556751c860bf1eca4eeab83f9b1b9cd1
+
+A = 31b3a9b6981ef0ff0ed65e091a110ee281654d81a43c4230046a058b823cfb7edb5d3f990982de7677583caaf62442cf5cd732d056e3619c59479387132ffa3941b18aa87407edf0eab4d0761cedf4924615cc54ca6616b19ef924121dc130176710e011f09b5fd6f37455ac3e37c7b3a9b6e4f173be6f009647a184febf14b6a34cf649f197a140f89139b20db0ad28c7cf1e4210573ff84c8219ace07907ad8d01074c6f089880e0621dc6ba9af775d5bb6d829f818c65488d6254ceff0692ff900cf125fcdfcfb4efe8197ac06ed721c2b085fc1274e270465a620ba4634c5a346a3268033b764d3182
+B = -2db9c3185c27240951e05bd53b8a3c2980bace3c91437ca26c1e6e2431a28f040e2b8e76d942f38d77ae89ad6c84d034af9734bdf523b4d6a30f6a671d0d33ad095a2db15a00ec84ceae7402c1266091404440c685aad75ecba7fa5ced7c5a2fee0854f6215680184a8f3d59ee3e92e86e568fe6e0478f63a7da71d4bbc1ec3946abdebb93745f86cfacaea2ddb7fe55177e96202e5e2c530311c849cae60ee45dda43057b74b1885d2dc086283e29bc06b5bf80a1715b74a2dd74ec5e2d6ca92d79957a7cc04f78d8fa32039759980fe0564f0522f3a49ccdc897ce4c184acbf1a51b5aeb7db55fb6cd1e9
+GCD = e9e570a6f0a658070201ebf674a09bb9f1e2b47629280f4189e80a5ad13b13e9f77f3c2d1ac5ba3e8c0d33d7102bcfd243b58f5a05f981d30571ef924dbe0eade1befff3a71634cb7b2632fd1824b95dcc423eda49095fd6c367d065e336768fd8dd1417957e535fefbbe2032ca62e08b20d1a2be88b
+
+A = 17482df2398689658b744dfdac901114e972a3deed4258011d211d0294d4a9026aaa0ed3824e47c1ad1da1befc562300822b59cd8395b22251a95d4d99ac2e294e0d666bca09685f3eaa48ac7ae7a223ec9eb779df9cb5d30e4462b5a1bfebe54ed39a4fd60affaa56fb2590997e12124b4548897a2650d4a26ff4fd8b7d128a55f99dd900fb8b7a8386033442b25f7e0cbc3703e6ab3ea8ee16209f8562ecf02f179a95488419744e88c00dff63fc745fface8a99ec47e878ae6881a3cf0d5abebbb348a7a8d20180cc0dbd72d7a6a7a9edb63b7c5daa079fe559a69b8828c35615daa02bb6f6a9582edf72
+B = 1a9223592d3478273f8a2dc7b4c747604eb5e7055f8a5f0518eed3f97671a276a4806bbdd7c8d78c3b2f6c22b23c0ecf14b0ffe61f505cb661d40211ed553b947f7e322b543f89880151f81c31440b65afbc24d912c8de458066e17ba2b85b05acd57fe8fd7cd9db652da09f09e59f38ea3597d8dcd6afaea783351c55b73536dde2a369b4241d6544b2f92a935dcb1400b8b8a2e4e48b657554f93fa127ee1717c06f1bb82fb01dfd3ebb10837c4d0e34a4f2d6ba9c1c3a05d74a67535065a7faf371bb9b14db65ec143f384530357e626b4b0f76bd28b17d7d31c343188c92e84dc9132872cd82483da2cc
+GCD = 6aef2fb6f066c0c14b7986a81f95a7d886b7f265fdc4915d327a227dbdc932bccc4da9ca8797a1a41395f744fee1eabab075aa3a9fb8e16f4fa05e5f86c1fd832cf81100256d39f149d5a38ceef9b30c693eba28be10773cf9e3f75882227150fa6857318408e9ec24f2d737c2435b19d12fb17903d6
+
+A = -fd1c0466f7714ea2ba6063d0a937b5d786c5c9f356024e6d6b1b8c4db1e7e766635063fb6e49a89fcbc6c7425d61825279acf71b53ebc7bad844dc830793a3ac88c8be79be94570063f96c12fb545fcc93ccdadb2f9aef50c258a8a1bf5d4ae728d063201fca3c380283de44d620a4c7b1ffa8782b53a39e7eb9feb624dc1018a63cc38ebafb5ed220a06344674ca5bebd3a4e2ef8115369adb9a344b16733c39f22c71fcf90ab8041c8c5bb7fe46e911437b708e555a1b05d9a293647e1fc26e9cc4bb4c253d4d2200a5e027bb60fc6f30644f51867e1ed1180b4fc8c887c90948436b967141922399fdfa
+B = 6ce66c4141a3c3a9342f27e47b6ace43b6a51781f7b325242339ca0105baea91115e32469e19a4e66cd160266e890f9f802142872e070fc48eb794d8f16b107cafea07434e7b1263371a12c46875a8feee338aff516866c0e409cd6eb1cee3077520ac4e56c5119cc907573082b7c43667ba329af930fb4eaeb2105f5c60162dccd45669babae312656d99c7bab86645dd002802672d5fb7cf46fd4f6a492bbe1d94411f894014182223b8b57f33bf7939ef8dab98020681465aac458b186b7a591352607dbbf3bc1583c6bcd4b004c258a4ccec681cee796f1f6de02e89d6c2e7578373922096728a05e3ee
+GCD = f9170b8925c94a44be7b823cd9225198df5a4f5ba75a1de35633fbbfb9c1b6cee1f2c996ad7fe0d0877bbff07731c54b4170b9cad50e04ecc771cd9adbdb21f6de041e0a672535dc473fe87455664ff315e2cd56f1cc62ae32707fa5cffcc10352ec8d19465edbf4a16e6e4fa84e9af47ddb49ba70ea
+
+A = eef0c318f88a58ea569f007fc1de8b8a20eb1daf75bd074cafe54a98d0ff42e382313ad332fa72131ffb892ff401b6f8629b6803984601b3dca097665b3366ddd718701bde7a3cc9a4ed6d32bfb03c417f46504940693ce40cf4974c221fac6dfde39b6342cebd40ba92c4c0aa26d055b1dad111ac1f8191fa2023c2f23d99d66b3586383de397a0c66884dacbfd94a0bb00e14e6b42dd3ba12341e958b8312fc137e4ad74fa5cf2469cb8b77223525d10b30d23b142f1fcb55ba65f387dcc3169250a425d899e211c900489cab7d306c2eb601c41f72881469bd072938bdb1b0343c061c85e9f6fe1a5f148
+B = 1b125078001bed77b9c4b5e87c9fedbf07f76e17613815623726c6747f786ce6755a892cb09e021d8e19716a0f2fc13c47dbdfeb9ec0860144fd8c5828fa40a937dd88ae2ca6d99b7f4eb13d4214b0ee6967b933c8c04514898dab3c4c63d58e9addecd03bb9201285df8b3ef590f35a4231a4a5d04b432c91b4a5e5f77cc758909450682072c461a5e375198de87b4bc5068c2485f2c39ee78562c170e843d50cada38aabca0c54daeafb798bdc23c04662c7688aed7696b9cbd122b92b1d3e2df4c12311428ec3890f52a9301036b279c56a46b53f56bcaf59a98ff9818a679086e143fa141ba9d2ff52b40
+GCD = 144e99334fff16163532ff0ab0e059bdbdc5bcc1806510c8be2ea456c498418ea5ca5c238e440a6bdbb158e5115c263a929566ec6281873ba40df8f50c180798adb5b69cafba3e316cb86a73f27aa25be874c3e56cd3113f4e8c3c9c49e143faaf4de622ae598edbe2a53ca6ff80b9d9c6fec3daa51158
+
+A = 6791ee614290d9c57ab9ed346151fcc58e3fcb9d52ca6c47f9fd9d776c646462351bd5942c10ec7fe74a1a353a1c654fcb8b5d222ce9c99dfcbf94869b2867229e9c453afb7eec49c9abf81af1ebfeb01f9f1aaab650e3e4a20df44fcb6b5330c65e041df0843cbf4717be50e0296b089992dabb968abe34fe183877fdbe1b3eec9fbc988add47bd46193521d372210e1713add6e43d77dce093f713d313d3f56ac9dedd63436d12fb314adcd9480fa18f5dec67a1a7f6f19a8a8c1c1bc2a3c9d66bc80922a1e033e74833e128feff522a1a8b82384e4b444b3270d258c0524b44cbe1c2a13efdf3bdc80c14
+B = -5c3e390500aedbb40eb6df147184f086cdaa404b9f3067ee919f6583e41a26cca66afcd2f4638eb2f13deae0fedb6ca1087a41479965e00d86c270c689d6608a919f20ea5bc19b1480caa0cd87352553a7b7a9e8676511ae5dab60ac2ba89ee958806620cb8d80fc22a3e2e689d91101484e259eed684e491f8d24fe07f37f2c76be16710f8264f86ccd1974118f425762467aaa70361def924f3c43ed47673c96aedb99e4eff0b3e49b9028b7c508361167816531bedca40dc13eae1ef4dad3deef629c51e53a5edf4b69398f3c87c1c1ad616349f165b0b1b4c44a5c23d32b98e114f5fccd7514ecc22474
+GCD = 94bf24d9f0da7eaad7694019b2819cd1be541661e24a1cc56c5d17ca47fea99f221b86a5020e740ad910b7a05d12121aab47d8642ca90a50bd4979e3e01750929ee9e168205b44c4aea451e8bc13d4c9041841ba578a1a17dde7f590f98d8e30cf0b83cca4678d67ebf7614cb127c8f4c1d9a6059dc8c
+
+A = b37d970823b12244dd6386423b600fc1cd6b708fa33c0ea4ffe02af206e89873f400c7b4ea15ed5f125b3bc7ec117e036006fd79dab2c05a86d5a1cf0bf0f99b93c8ff140fca3cac9ded6696f6a9f391e2149e24a2e5a87ee7728edd222956479fe669b595b16aa55ccd979753018c3aafca95f56fe010e614850aad199d12b5b093c7ca255ddea0838c6290ea717ce592409b8cf4557444971175af8c2db0dc765bd9c52ea1f10effda3bcb3ab08e1c14b44449244bcc17f9cc792895d7538ebd1a61e43f000cc6ff9c2a21a9bcb54e0e42ed24a5ee2fdebd3b18a2661208de553e861a8621f85f52343b6a0
+B = -e5cbfd8548192a199aa4094e2d35bfb8df4e81551a1de7ee4c7840cc3d2cc2adc2fa14c7faa6e50a5c6f56d4475ccb182d0683c26c178af35a255d47e1a90f410c22dd3bdf8e9ee1f3d31db2f722e980ccd78165558d78d648cb237e5cd1dd7d32e89f77a1109e8e630d02f8fd4296d7c59566d95c0a2766142cc2ba990a4fb5a3da46234613020b137a4eb98935575187879391c52702e57eb3f841144adb32a168b9c4520c0a08832bd6257af939ffce0fc3dba908f174f09cc758c84ba739ba20f412ff463e14bd6bfd74dba1660b17b627fdfc894e0adaa7fc69db4ed6b29990dd921f1ec5df9312bc5e0
+GCD = 1754745095ef8bdab40ba3fc9af00182d694d63f86700f7edd9fede8bf305f44093b8d3c4aa0fb37e561e59f6b0e45f0a637c9e3f1f2a938eb3aecf6ce923ca4455844731a32e6fa2610a95940596e0f5b0adacb63199d62c1de4779cd0c81486d7f3b1f73be54f8b2a2afac110d550de10fa05fd1d3e0
+
+A = 174386f439edf19805e88fad230c3c49ca9943df583383551689380bd18f9f542682e2a2aa5299abc3f89ce8cb17fecc4439e516af296721316ae6289b6c17af8646afce30a977ecd5add7893b4b3c819a2a93148389cfd974512b73086d494daf2ed9eba71e48d944a041d6844f20734e9204701de46b5c3da9eaa2631286a15a806777733e8b3b6c4207caa39c0fe4fc2c0106abbe96ce3bab358eb53c5dcecf720c3e3fe1932d84a64e3ed4d3bec94fd5262aeecc4b6db594dc31e85d486657658f54bab9d15bdb109544e50bef4402d8f82aeffc85715baa88d5c8957936dbf9b77ec5c24227f136a60400
+B = 411dccf78a8cda1da2180093cd1bd62e939a844f1b748c65bcef8c19430bbe3e928fca5838f9d4fb3a61d2f3580d70262125bc96efce26c53df0aef063c14ab2fbc4b4f70adbe6039ef551388cb9ae46ca95765824e83b667f4028d29e07e477ebd850aafdab3348d1a50a56e965da68702f5557ccc920d6dc053ffbb4c1418230b79cd0bc2bd67c8c4b176f5095d0f788b1528f597578fefb735823550c7322cfcaa424f2b1c40b35b24f89f85d7993587b5aecd48746b731012f905ccf86c9bffa64c4e183c3f3db257af4ddf67f15201bdc1260100ee07305100bf3dd80da2038a20fbfbcf3592a91bee400
+GCD = 4038075a3913d712f534c1bd0e38b52d5da623825d079b2f3fa45ebffb31b1fb5ddfaf87b6fabab063202472cda6f5de7d8b8466abfe799647b49ed41659dc80e640343cbab8a041a257e0fde6374a9d8dc1d208bb5e66428e5adc19fdbd2b34a015c4df383ed067ca0d6c4fa45330b054ed48f3f5b400
+
+A = c04fd6b66104840cbb2badcefea7d4bfa18ff2066d31fe98d8dc092b01f9bb42632db53f4b79242440d63b98b91a259fab64282fa7fcdc3050493d8640665473eb753f833c7651825f3fac053e4bced94329b7b28fe49447c353c4f38f0744de34a6a36602a3f45e9078c6387d72276798eb9f05a2bd4206f3c929fb113100e56620fc37382b1c088a99f5e44b647e38afdf535b387a65ce38b30ef2b78245f0712d110a224ccd2a5a934179f0440fe2afb3297932fe9d8d39b18526ca4607fccbe4c2682ed7ccf9906af99d3aa391c7d1008943db873c336e3c3b70111f99611a3b54e623a0e95c8e16e3ab8
+B = -31e939c8f89188195891ecfcd8dfb3e016743a80610143579423dcbb8ce7c0b13032355f4a8fc48a4b358e5631b01030d3f8dfb87b1bd9f182ca03b77ab1d1e3fc847ee3406317a37797f1e99e2eef1901d2b943be0588c4dc34dd8fc35cfc0cabba0e60090b7176f56d36d9723b03ac59206a8035c148c294dc04439ef340be7b59566cf2234743c1c714d85ce54738c7835f8aa752160305222b79a610d803a77a51500d73c03777f25367cfc92243dc14a4c27d0d593c749570a5f4a8af038427fe7a85559866c1d24cd505903656aebb7510a9369237422325d86ef578f242b40aa1b0dcf56be71ad6c9ef
+GCD = 1b4bfb8dfb59933f302e2f0470f335adcbf2cf2a5854f2dcca53fee76041ed292c026bab508c3aa080dea74bed44903b4006a5d74988cd723af379bda82f7295d9af87ec11420260a3b13805a31aa234eda0ac956482b5779c00c2ed47f405d59130ccca809fe28e16279371f84a32c996b3ef5beb2195
+
+A = -1ec84d7ecf3c26518a107f674c281bfd12515af1d73e72903c8d5e119939ebd75a9b0455494bfe045a32c244e92bd683b680d9f61842aac09d7d0ae531c844e4aa140b740c53dd989d260c9e448e7c3629cfb588f1986931ac615bbad07e5da5cbcd539b23dcab88d966e5152b8fb6b9cf0fe77ca160cb196a77cbf745bfe85fecd3284001859d14f996bbb545b10b97c6c8977079dbf1706c71e401b09363aa633d6c4df95e71efd2e88090fcbe543896f3c14fb4993ae1e0f4a7af55ba23d03be16ff35552f37713abe690268e3ef44564103893e563a7b2f63adcb3891d45b5474d3c4f942e981e40aa59fae
+B = -16dafc071f159b4008f13eefb507859e951027aab1e7e8806a05c3ab146984b2afbb857db6f4acc8b832aac7f44a32264d0177684109c67a9d8bcb8ed9ebaecbfcebd46b81cafe10b5adf79f7f06d0820f3aec4d0023a76ec0e7de29cef09bc2a664507b289aed12f1886f18a031889c3082aac506ee702f057fe6a3e3f8fbf1832ef62f40555360aacd4f3f49067f905438f87e7ca2f3d7d4fc7317dce37fdd0ef53716dfa6bb381b18af5bed2433190742c4b8db74c2295c73bf32a7e5af52b880f67a7094022f5a4c3e5cc9f8caa2e2d5b8b4e8261d155e5852b2469cd881123d95bcc079388bf253075de70
+GCD = 60212b367c8604754ae62a482f83c726f9f86f8049e3e0a457b69e92fbca6ade5243f1a6ff929f46870cd8b111264647d8132ae51577aa8c3cef7899a615314d007bf8a5f84e96636a1ccce31012c694ab8b1a7f99409a4a2151d5301066626ad62122f509ab92291b2f49d461136aec98aa2731058b1e
+
+A = b178291fb6e1e9c507748d4ef472b65f20199462a13b9d3207d2f0c4b40c6af8a83588dc1fd8e267e6ab2293a193eb7e7fb3bbe3f6a7bfba2169a97a66b66ee0facefd0e07846164e3146ab2dd79072fc31aba3dff30a7c38b79adb1d571eb7ab72f253e9bf97806e7cb12d57c4a89f85a07d825ec263ecb4d39424114d532e891c27e32c4140d6689b42f968f0152a053131c22766e7f3be78d1ea90cf63bb6c5b3ba5cc69030996e40cd78cba5c474d979b151bc53a6a0bd488d5157e7648ab512f98e99e3a399e6ee30835ee3f1f86e649d8db323ec77a87d9f57e47842e6461d5b3ed4f7c8b582d97af9f18
+B = -d7c7451d838403e07b9f637c9c33dcde84b208069f5f5b045565842819f97514dcdacb34fb61925da000b05df70c61e7e89ba27d9d1d41aeceb78d9057a0afdee1965e822cf9b41bcc9efd09d443fc3617811e1679a8919b3e010632b39fccc2ae4bb640626991c8aafff6af497f27d4564c569ec7005570c9ea7de397177c53ff799dc8182bd6b88550c6976076c9959acf1a8edae670fce2571f5c313b03318bb8af75a6305847c56ada5a9bae66a4c8e7716f0d6cb31a33c8ecac693c711e70fd6be3cf7d6a913e6fc1d27888a4698e302dd7fa765f61844677f0567de1418586ff8d782626ca8b11a96c440
+GCD = 46dc0c1210cfda85efdb051dfaf039a051666f92c9de8d9e3968e85c0c8ed0fcf787f60809df46a9a34fc8c3f2da82ac2b03a56b2be43637bc29ac7b5cdf4ce87fa240cec59a71c5fc53a136561da626ca99be9a3e0c7cbcfd51e6e117dfeabf53e1dca8d4750ed0a49b1ec35bf86f8e57ef1a803388b8
+
+A = -4c6d26c7d4540c867f1a49155fcfd4e23098123b55618b4363b8fcafb96416b8dd104195cf1f6540f19671cb388a69775a3a2733f4499a968f638c5dc58361f91edb5a54218f7be6b0aba1dadd014626c6f02969ed684917018db3a969fbbb48fdfb6738f7739f544f111814d5d89e44edbd2d314b25187d7c1f2bc0b44a7ed4f4feb91a5c05485a3b52d283e9ff08f4cd5e1af0ceffd9659c1e92debedcc53af3d50dfc8a3312b59cf3f3596e855cc86fcc4cb00b88a172c7b274e25b4c3d002ee92f2099a2948be75c4c880983444e6eb4f250d804935523cc3c6e1589b43a00a8e604ef0ba3fdee87d2d12e14
+B = -691639e248536e130516d522327ceed5344b019c19c7ed83ee5dbd590bf40f75565e1cfc588ad936b23c3f1c4514aa5bec0346df07a25c7481bf2d6395f540004249b4a2d4ba8e56c167f3551deb13b794ca396d39b997d5757f60f94fb9c3c938060310a302a4b69fbfd5d4952242b3b12bef46928d64645ae9ecafc7b8b888f098c6cb39c046eb640b92ddcfe5ee9abc2b7a59f23a99f9a925dda294cff0d09ef6bb1f5ecd7cf6429f7362d25b9d87f93a2baf440056155caaaf40df3b19c52772c374acf20a652e6c0f546ab4244045766075206f6eb0a8b9e06da4d40501d8432a20ccd1bd880b3eccdda48c
+GCD = d8e3e4071c8adbb32a1d190edaabf7765777333e3e8ae7a4781e6e455f2589d4ab57794e81ba8515a42b1fb0c2d5ffd127b66daf7e1c712772e18029fa1c9495deebeb8c2ee27a8b67ea1f01e2d313ef01c31cb6cb0f43e9097e8b2be44ac786803416bc90ea8226f7befc64997b4305eb0fb4916d3904
+
+A = 3b8022443b59bc90b3cee319324a22171b8d4d91f24a960013fa9ba41b1ade6eca006a6239bf990d21376203c08446c63ee9a295bee7bcab02df79daff03ab532f4988846476eb2f705cf1d2bc73e04420fafa9bfcefa63331748c555ff209d3622087e899967b7f4951a46dc44898662b0904534328d093975086dbb96850a73dfb2459b2edd0519b6e231da5ff20149fc2ed48f175c53b59868cbb3efc884cfa6352bd9c08cf95f10cf35ff79add7a6b7b0318fc3599bb118cc74fd9c30d3f45037856e35ba416cccaefb8b42b6d71cc096941da66122656f13df8275d6ab76111579fa85a99e84092403c8438
+B = -1370e640b51cbefd4b1520085830175c8519354e1674af763ff8dda5f049fa81364d8947ee69d8015f2dac66c24464dcc7074f65a3df989a51efe7dbf40a642a7a8ff6e78d7df722c0d7e3ca803906aa949e8f8d423037ae98e2e80cf175e93bf15cd918dc0d339d9e0b7b57d0d0440a54f422da220ce175f17483f4509d42f1deb5f5f4f9453a796e47bd922668a92381f05f566e989890b9fac0b4f033a2bf6bc0f36dc83d45ba1c6f5df726adb42ab2d2b01573563feb3eaad7adfb28902c7402b7dcc4041b6f097ab9810b270f7180bdc4786f65c207c3f1d591d82870344cf6fd719061f3ebd79386743450
+GCD = 173b54e0de1bf6d7e2399c31ee6a53a2165268717f8e21b4429f0c5c7c09de122e78f389b9d6aafa1dab387ebcca777fef562a3d37d845befcef6099f181933ac69197c400a739cd8fd878875a7eb48f117b1e539bd6df3d959d20ae3b87a5eadef33b736888507e60f660552027c777b277ced6c84a948
+
+A = -749d3d1b9d868b86b905e92496ea7ca44168a9cb9dc51da55f4edb684fcbb57306813e4f10e4b93beb15f46b51e98ca9b4a3dc6b7ea3ed7f5563cb3c2b6181d5da8aa58f92dc21a898d6a83e947dac0a5ef07a6d005d807c3027df50bbc8915940733b4dafd0a7eaeb6fa2098ea0ac5d0c3d439259fe4f5c9fb90b1dcbd6519f14a2388d68033a7cc7ff347d05d07619e8c97cac5120b3574fbc5dc8782d1a5b43264f992aafc920a55b2c4d3853ed94cc493431e01c1990b68ed964634d22ff7f6cb1c83f20f76ced68b6e0c042dabe2e2867138457ee5afeea49c6aed0938423355b10d2a23508ca0c788cee472
+B = -2b3d741c37ff20274866897bf9185ef567dfd2753496d55403bbf4b62d65abb9d8e2660baa774ca923229bb50d2701a4c8b26bafef6cedfa1a5f2f7f68ba0d6a21135d3f0d5c87ff545a464c62caefbf3a9d94f020fb645e142d3b3a3124ed5b4cbd844a8cb237fac64bdbcd3e8425dc647e3ef7a82456a05f542b3073e0e9b934b36ba9dec34ae03f8a39d1dffe14978bc90a78058a85d8dda4b30518a8f961d9633a6d7e269359ca61433da7c9e6ebc30e5e90f54f5e2824d5156320ad612c10cd9144ac09cd6c4dc5056565cf83d87f6f7db34cc13ff7e4cbf10c59d06c04a8d06ec680f9469c3c1aade760f85
+GCD = 3e88cf2db1bf24158b04a9fcc3ddffa918173bcefb2a855afc39878270ab61c4683fd16d5da1286b6cb3d1487cc0f2a05c9f731a0fa132036c9a59db500974f33b340c38adb25737d558232338a2585ef1882668a90868063066ecf5dadf7da643df01499c54995e94c42f35741da0e54fc907468ddf651
+
+A = -14f5c3e5b58f5f53a8be6c4329f11f3ebbb98f940bcd7deaf1a90dc7263e78d913e1120a4cecefea9f578523adcabfda6ebadd0b19d2b585a19330a11b47ecc7a3fda5782537bc3ba57ac14da2d11e6d840297d9cbef2ebd84b72cc51426c1b85dd2d2ff5c1c9e31070cc110f696a50e440353116fc02a3eca267a50fa314c311b5a26146212f8713abea8593e3ea7b7b9af8f03b804a837d93628175a0ee06fc8d96674103dce65205248b6f3da6f6902b5901a2c471adfec09f8d4e5e41a7f714e1f2d9f72087c23b50fbb6d0d1649a2e12239af1ccd28241f406e399fb3e29051ab89aa354935e029250e9e7ada
+B = -bdc010bedffdd5fa24ca7a5460bbec7b023587918bb9e342d52b6f3610ce6539d22b30f2a186bb5039516daf6582076d99883e02cd0424f0d0d40a4518f122eccfbbfdd09bfad58584a96f039e8b329df8070db246b55a47e718cb7417531bc289e6a4e894f2f02df96a1ee4942ca8998bf27b7ad6c81393a67becedc76c7a3db9b0c659702f08331938436707a5c74e07f383dd77694d4e92493eaff259871910d30d8ca092512362a7784e9d432524938649ba66e9acac41db0aee22d40b7dd163c85636a30a0bc9bac7733090a6770e09db8c07fb3692a008ab3a14cfe5da495aac423ec93bb58374c70aae950
+GCD = 21ec0047881bdd7b4e9e1bacc1aebb7173c9facb8a4873772f39e17b7b42b1789044beec05ccb3b4fdf9ce65b6cd7e882b22b611b69d328956469330a64c82ed42e30bdfa7ae78fe1711fe879484aa4242c58ce2a7ddd58c965e6b0c3a100ad5077df840c1f757fb09553f67864c0222f1e9d3a453b4f926
+
+A = 2d983b5c3a8f2ece106c9730fd10f66bdb245c1203efa79e0e9cbd812027f49b2fa860aa500c2980e21a9e545c778815615e7b1eb426cbcbea0fce91eefc6d3416b6b941630ca5aaaea606fece9f79754ee6de7d757caa2f9b2680c08b75f957ea107cc6e046d7c28263a458dbc6709a950693269264e368d468a5a8b10c7eeb38c2957a0339636b55958c707cbe9093691a7b47f6fd67bff83fddca4d4f726f403ec0ca1389e556e5193c7cc98fd3ae09d6d11c0ad83c8a49659ba885e7deef0e6c52dd728c7544dca35ad7812a5f3439039dfac6db1c7688a5b91b560bc0e462633a53b438cbb05784ed4904da78
+B = -24b8cdfcdf5eb60963ee5b143293a3e25b3f18a66f7ab885835e3b01f3b8ac64897528ea6dec4c9c1e391d061919d15bd437717647924477a9107266497dc09dd3c8473af213177e96b9fe31399a6aa4f6b7a8f38dc12dc10333c3b6a5ebba5c617f13c1ef6de12479b94d31933789f0da6f51d7564418f33ddd01f8cd22e2deea7d772a2d8775b8f362835a37c76b0ac42aaf48dd9d1ad367528b467bff0ef059f7c30d9fc004dd5164f54e0f3d87eb6738f7f1e958ffbcb4722ed1a4018ae6e24c9a9e4707bbb3eb6755fd2195aebd98d629ee2977d5306da453b850168082b65cbeb8bb353ad6a8f433dc574150
+GCD = 105def511d8250125e9ef631c4cc5ec371fb03c57e5f7e6b9d27457ac21ea9332d04da023cbd685365caf405016a09075de4dd4d76ccab56c71103f2c3947f71102c12a67596a3697ea12c94b02b4b2c3330716813877c75a75775c668472dbf013d266085438490a97f0fabd6c5e3b9a7d9a61b51a0db58
+
+A = -bd7940d141f8f2c2b9a8771aa6782c3f1ab5cbfbb64e9504ced0cef179fa18c3e2e9686d2b51f53ca3f0ec59a1280513d68a907cbe449fd352e56acecf41fbdb5da3be225cfb7c93ed16fce95b3bbc522b4bc115b9605960beb910317054ad3790e1e3971395f75c71abbd5d1fc245113379e002e501bf095a214d9066264d60e9d7947e5a59e03126c3ea3cb9189beade2759d76ea0ba06c4982597268bc78096ac109ebdfa423dcdf0ac09ea0d16a5715dbdabbe1257d54ab6e4539ef66a8815e17e61df522e7f705258035b0a05513adcc8349532efc08cc184adb387d724f43f25acb0f5bd9cdb9c9b388d8960
+B = 1402cd8364115ce45b11aa799c576d6accb3927cd29e460be8980114a28d560941450dfa04c353fc90632f24eb226fdf1a3b8920af1d8adb2ade8e1613f4befedb1232659ff879b5084e5404c6246ca54d68ceefa49f969957ed43b1a7b93d4836cd0484c4eeec591ba0551ced48e931b4f04a10f3ac5d474f8b070117d430752fab4694241d98b09a54d1c137a6cb8b706e6d8dd239cbd239ef027b51f036a16863b110ad3917814803b6de942d2f41bf3f0291887226dca3a4aa7f1acb42022c511bea7180cc70cf9c7e694b63e6fbd12554113f0d4593662f1c10d5820f797cc101df7f798e38c20099b05d3aeb1
+GCD = 1716d462e788e204592fa74cfd7cc6c7287f42022d0860d9f2f678b0f183c54a7562aa74b5af92e858f4e6feb97c6123de9934dc101378f4be88eaeb05dc0544fa723b5ed270867aff39b2ae531ebd23bc22e444de9682409aa45067c5fe14d9550d18ec71cede20f2eddf756383b6e2269ee8c573c24495
+
+A = -412ae3f499945d703b913c31fc818b237fa4fbeeba620dc64632134f427f3490f4265e06dc912387500a6f3b8bd389348cfccbbdf34096959ba937f7e3c8ced1a5c47387ed09ab44ec5cb9ee88a6ae83044866c269dd7cdaa3e4cadab1af2201c95bc3aa47d2492e8f64397f4f69218ccc0f9968b740bfd9a020e6bb6f796d36e223bcc3cf41b6119b6a167ff883a19cf59168430e53a2407ae65c520d34c596af1b525f274be1f1e0f34d8468889feff5e3a54428d50662c754559681782161b15e35cbf11228acc2955560f5e2760b560fe92d234b634f3211d35415f7729d7f1574f5ada9c35e419fcbe7dd654b4
+B = 2c1b90954547193a4c2a5689715eb5e57139d1142167652237d98d9177669075371b249e1a5faff8fb60037d15dbd865acb5be7edfb8374f316ad411f07166e2dcd5b0bec5ded44898640af5e96d7496037aa016881ce9c66da39c749ff3d7d094a6dc280ac6016d0e7e6519675e2436605e25c0be8b9d62ad34a7c8ad694f198625bc52fc6f5933164da87383c3a16593845d6dae73b08284ccdb4c3e730711d37d2d69afcc52c102c2c38d8768855299ff08378e2e8fc7adbf8c621b4ebe7649610730fd9b9865078209413cc22ff3d3b1f8e5febc64c2d187f350a27c5b8eb96333d4b950e869d5f1d7a4437485c
+GCD = 4d8c7fe1d4d113e69e5e584cebe2f42a03faff4e8fc3f70e986b2e00271727d072f9a4371934f995143db2ec321b2502af5fe98a901c586a24156fff1a958d0c1431008a7fb48f779c7e1725bb217a9c16521f64653f8c0f279165803f22d5b2da8b01d2dd135cb65edeec4b1ef1e28c512ed02be13985ac
+
+A = 521f2fa1c832ae50091f1ece98b88bcc6529af62fb8463d01ba2c00d6de37a2099dd5448c44c5b66dbb5cb6014dc1efe94d37f7a18c6a86de1a065fb72e4e28120ec6491d6f8a77d90a4a5857fdb10bd5a6cfc4f613dae126ae70d5f8280556d0c533fc790e3f4bfeea54c27808dc8f6a2537ddd7f20a46a0b6a2e48a1e17c9f1d587c1cc646727da0bed31ed5a783da305425cb4ed7d20f7c6d8514a19a8624f503c454f2b738ef1c86297b2e3a3d28c545b2625a147ab7ddb53bc81c749db4e84633f59d6e7fcfcf6404721ebbb2b17992e4e80ec50ff928435fd22795cd8aa83a41d5ca3ad5c8a00db25acc0a9d8
+B = bfb846b6591b9514133bf7bd762e19d74a6ec85e93a83e60f8f7ceae7fe2b5599f720d534a13da48b9d6c2d0083e57f514ca9e269c68fd55c57aee6c6e6c8cdb132c3056220dc8a10c6e2a7397580abbb02f5d6bcb5b02a96a0bdb7fb76fc7244eaef2b473a34244a58786f09821563c4a0fd3387ad21099e3001a1b7a5e52c9ba398d51099f1541273a24c1341d51ed8c77b569bd9ca1fc66f4db5947e854759c9428705a06deb7adae92df9c9be567407c14f10e04333286f851213babdadc67fb9ad035c615b5e52713bcfc3911c2a1418af6698764f7ff6111d525cbbc74930be8c6e4a8f64f7d292848b9fa4c7
+GCD = 5bcaa8952065cffacf06c004531acc5c2fb89c9186676fcc8361e4f8c7bbcac2fc5479f910be93a1f72abaf1384857346c66abcf73a1614ac6226e5681b7f458ec6d341b4d81f4711a1760e4026f2aeb251a67c2c0ec8b01f503523aa113e6c0e3138414a37cdcff4787bac6d2749355ee86568093a6aa3b
+
+A = 342cd4a21e3bee4837c4ca53bac294b952a7a9fa836cc9690cccdc886d55322b37c9e846faafc205796b5834806748e5167010aceddcd383cf55f42d9830b980cb4a26c133e78e1f6308746c6777e843fa46c4c60a5c6015a338b51c862b386fbac8e6ba60debd0f27b126390cb2e441eb796e6633688cbf4525b95c2c44345feae1e8dfce6244fbdcac16a2dc533879314bab11873f716d32bff63ae0580cbbed5382ab5b1939cb0008d8ad61642c808a3c4bab5fcd30b6ea9067b83efb59549ba6ebf2d968c4724e533e54d3f9823c8be37a80c7e8abf2ae438ef7a90898d91c8fe9d3f5255a545a3d10499c794e7c
+B = -266eac6b3d6f05464364e85663c55c72f8b62b6968f1f137f7e02bf9d9b84fe257fc02f135c52756f18f57b92132f87adc604ca161e8acf309f571d569354c814fccbf1ca687ad21825398b6fda7edf2842767628b8d126f07e26f1ffe20de0674106a2e538197744036c2fd888ba5606ae86d34efa10b5adc56bfa688c532cede9e0946c76786de5fb277977d3e9a009e043a4ac265f9b9ca8b506c60c5a07d36aa372028fbdc7f9f7241987d5aacb4348865eba04aef096315e0c9dbe4637fe652dc8f7fd2517382fd04b075d6306f4bc10b8ccd0ae6c34c442ec4141de37016d62a99179c45a15f688e8a927f8d74
+GCD = 12188435c600201aef9454fa2fb9e758ac02ea05202d034105a7713f5b50c066d5495c1098e0061c59dfcef7375ee68dba4414960e4cdef8da8401478ea3c571a0be72d2156fd4fa8f787e64843ce5ffb62910a58d0cc01b4e8816d24dffeb0c8d97880f3048fdf4e244e76331d571bbf2c1061109d776d8c
+
+A = -13f75bafd5bc6ea46745ce580e10664558d811b7746c4e74efa6fba8435a981d26b54a6d52904b3e221c7b28d6e565d96c73f118e28f86fdc85c58b9825018c3df8b7a9896cfc0bd5b02eee8716f29ed8b5e5c9d48f8a413cfad87124a41abd329ba24b28032fc69e788ee9c61865021679b389d736584457f723021efa57483d5e3bef7fd1277cebf09cfd9af9a53bc22029dbd48daf68784369fd06c3885ccb2681398068046b9b6d6dd00b4757f97a61e14cb29f75c3b714884b741142d08297ff185005166dd4a0392639288260e327870df12f4080fd0dfc54a4207c1f8df88a7a312da291ebb9fcb2559d046792
+B = 1788835a5e1695b131c4322c9af94aed587b7e7094b7aba62f53eb0906a0d7f02f2977b65c6948e58b3cb7290df3aed12278a59bf618202efae29ef98a0a0787f2a8825d8126a540033974310070342a7f1c56db2bcd313a4bcab94a0f1831ba28b393f0a3096338168a5672154a246ebfbe9be14e096be38630a8d493f989f076179de97de6b50aed240d9410db59c6a5d3d72c969b949f0cda1b0a0b09989b435fbae08b6201cad5fa59bf53b0712075516971965abbeb3e6e78d37cb13c965970ceb4366d558ee83e1a69cc666acead68bfbb08ea37a4e0ed1918d58dc63403c1e997c3e1c30876e85722af8056d12
+GCD = 1ea54133b01807a50d5bacc9d0de012ad3054199298fbd7b797d6b4535cd1d8ec15395b603ec83064c51f9b95605a80385ae598d35ab81b82464f4960daa52c8c7120baef072aecf987051300f1a656e54a8b4b7648ac9f42f713b3a0437994dea769ecc0d4c4540cf89d641fcce72da2d54681503e9947d6
+
+A = bb5b75ab1272f8bb02e733cc23c2a1672904c7fe3795427d0eacdf5da2fa0baade10bf08f02fbb5274a2dc4df2447bbbeaee74b52ac5deef980bd631de315914de06d0c31d4584d98b0a980d2dcc386799694f6437210399814d1b654b0cb631091745dd965c399008aa06a2bcb6fac1c713c8097f342c211f2bdd2e30f0f009086b79549d0a36d68f03ec5ed5569e8337073ed430c319a45e8884fa87d4c960bcd1b2b1f77125bba061b58c5138f1447c4f97e61e1dee995381f200e9fb310cf04beeddfd03dce4eee17d4c6defd96672a5b989e15f4960f7a5e5c66ba6cd20cb3f0ee511a645f0b7175a3c6e767bf9
+B = -6cef7535acf902aa763dd7cdca6f9e6f3b4e30f948ccc7eb24be2dca79ba6bac23f63dac80ba078bc953c9be4cdf6a9d63370977174dcd4084d5a4b70d35d97af3f631285dd04306f568f57eccf2c4ad4bbb43231e57242f6bf67b71c70cab210bda66f55749e8053e6a1c71559d2e1c64a9f72a1fd273f108d09c7ba3d809c5516b0c69a1309026df287089e9cf6ce8b8b1c9c5329d4411812c23f52edf3e246188216ae3a0d2baaa843a0fd71f5cb9cfd10beff6d990e652ffc2351268fb3a0378c47d5a5a846ce84b901238ec3ff5ddca84330f32c17bd0205a585aede464260ad809a1214d3205ab693d3f23d45aa
+GCD = 389eb82ad2531abdb57d4011b5262e4df98c0590b57bc92ae83e90eb0c5434f6eb25f1ed941f6109283e3597e6ef01503b72a563e54105b20e366469620a464ac5b187b190805d59e0b4d52fb211d88ca8401181c2866a848ebfd18982fb342db1981892a6d5791c33a430dd943964060f4b8ea2597a30971
+
+A = 189805bad506a888d8646987ace5940be0fb07c212ce2696d1bf5fc4bfeb5f0c85db2cc6ed633badf296dd952b60a59c403d8373f884a5d9a3553667d28c796c5e3de0b62afdf75f5107f629674da51cbd039c3a2d312dc724487337b9d40ab4a1c3689b5f61eb9a5d18303514b3b2e8dddf79a4f0e1b52eab17568a26bede7f99b7077b1f60f657720ec0be7af63b6cec850a17f9149f0a9ddf85ad6ed9f33f5297ed0c90b09b9e43cb03f9a4b98ce125828faa462a5b07caf9d31f7fa85b96c02905498c19dd41ebd447a2661c9aa0809bb3d034c0858498ca2cf9b49cb65ac95f6644019b1d548bb8b034f8ee7e14c6
+B = -2cdd4f188d41cd6ff1b17800827da7c37c9455b5c7967f25da8373496f2c90e7d302c4cda5815fbf589fbdae0c1688ad93bca5af4b4a157c57ba3e7b65dee0de4e8c69121c52168b4acf3428f9378048dd64c43063ed02434f350997b456db5df5f0aecda1fc702bfe76c49728c7ea8e49126f6bf273f6007c87f18eaf09453db04e294d70659cfd7c20678de19621261ea1ad07cbaa1bec0baa6d2cad2e3c4a7ce183c2922fae3db0e9ba03dcc9a865aec8783f8752480e7296aad74e30620512ff8c7a605093b072ebcb1f7e4cef6ae0a0c84f3ead823a16e9d3c74a896eb94482a1e50426882f20de7f3960de859e2
+GCD = f7871589591a6022368e85dec3d7b00cf82d5ae5aa1e0d27478ea03dfa6eda890409f2ed3da2b20e4b8dc7c656a33135350a15e2b92cef7b73b73668534f1a63cb4398d832b096abae15c0722f161d622a4bf62f9ef3085e6141876cf1d129c57b66c2b24040ac6f93b81c37dcbe06cc8ee30ce864e48f6de
+
+A = -184d1912e5e7a5bb52d472077a5f5660ab45f3f22ede211781e48886ad134d8fe92999a507a96332e24cc1e6b844e06c72d6d2a7c031410045278c4e98116d6e4eae5cd5e20d135c2747c9edb6ed6c54b002eedc344278ca3b31a4e5d5ee991dbc6ce5bac07f409b0644acab4b90d83f2875b1893991eddaf115343d519c80c2394950619c5359e78bb900805bc78e298129b1ca826103f1d70512ad9a92e369d9e8cf796a21a783b83493d39186d4490ceac9dee529a48e33839c834b70ecc4743062e68ae80bc1547dd624246579d3314dc0baa47850c9560b3cca9abd8ed57171a109b9aca03a4622e215124076fc4a
+B = 32136a15cc09b55b8377b0f87fe1541f195880767f2e018f463684b29bd6f8f47d6b06e02fc33b44b986f3a1514e40d6e1e755c5d07d28c857a0105aa26e6218e9f28de1dcee56d84c7710a592b0a9a442ba0b270cc53cb85b75dfa75b299e6f368aadc67c866f54449c704b50b355340ca9d0e33327da83b516b904edb37262c0bd7e403b9e82d2f023095c0c5cc746613b5e432e18769d62b4338ad22c4c727f43b869b3f8ebd3cd16c94585d4d612e9fcd8e7da9c466d7e09e9a60073552bef52dfafd65e92efe5969bccd241901114494f550da7076d0284d3783f3544dfd2bc2e117091f2d60c4b58d1cdf6ef9608
+GCD = c6c56c5174e4f790fd73e3eca9b47509e9bc836d32b5c9cda12615c20273010e4d35186953f53c51d19d6a0a3629bda5cefbd26980f17f8fcb339a028ca4ad59e355295a90e61028bbb1ace71aeb4267ddd3a783fe3f14d2768b086957b3ea750a6ee13b4a7721b6518cfa3ad753d9c5265fb99241ac7656e
+
+A = 14b8783be74925a07fb0d1c23353d9e1cebef26fe0fe594e4b995b64d2b5c0b12f74d9442ad4414fb9f18da2680500b199372d4e3d503830f5ce7d5524f59d9c6fe2673e8403f3c6feb2bc0f33b2c15ab9d01f08c4da8e51b4c8d0e27f58a8540d8c783c88bd35e1359af633e48e40805e1e007607806291facc207116dbc283455d4334fe1e820a52b4caf20ce3adfa08c77e7114ac50634f8aa2694a26612dd6b67f741e0c0afc6f58580b66dbe49f2472ba2aab133f6f035233341218e374ba37b195c7ce1922732f5e09ee77354d9c29fe086ac78878710ded8e49bd7c359f916d44dfc656f2762c567158a0ded3ccb
+B = b8b7770770458fef314c0ad89280272cd482db0b9ff04e6a66330b13d38f3ed546e9764875a0b74e8dd3b1d9c4a8b110d6e9b2d1b8a59893fbd373e86b1f5de59c3b8839c21e85f2698c0c75ec145ca2b82679c27a706842653fa3662fc906fe8b4b9f34db8d5feb5fc247ab8b774382a5db82d42fd8f3284c7b396704d8d9be5b6a16cc220db334ab7df6ef73a21a35b3041bfc360480ec06cec67746eea5958f629427ac690c93033757fd8817087b0c1b86228ad5dc68b3ec5609f50df456fd7aeaea3416ba89e95d4b78c457d63741ac3cf31926cf14039fcedef82009a58ca6845c7313bb15baa492993aa1858c76
+GCD = 1e668cd8acc5d0053370c5a4e84be9233c8853d7a5941fabf24d413eb5e5ec9ea8d4e177d4bc7175877a773f2a70098a81eb8e3be7d1f8ec7b76a3b66ae467d80cb9676cda1d651e51dbd1febe9b713c83f31ef11ebf91691dbde704d8f45611754afe94a986d527a8d838a9e0041ae6e7869f17da3def9931
+
+A = 583bb10ace4032964b5956803080c68517e0fe2063abb21fdc96b9e47623934e837548326b4e26f63f55604e3d8317a73ead9bf237e09dc5eb98125c5d538c7739e65cc0fb0a80c9faccadeed3f8462629cd0a53d20308bf7a4b0ac78dbea7483a0895d15446081918574bb9658bab94b8c6ccc8ddd9443e16917526e5515133d43239ca7cf1e6d2842f397041a1629ff8cd720bb73a4926b22dd0e97f03b1ce2755632668026e2f4e3866556b07fb5b8613ea758eef61f7d188be2aeac261400fc94cfb421de242f83772f7c4ab91c62ee5561dd54638db6bb2762a1e2af40fe55d23535f1140a54cf00cddca11af8f860
+B = 34222902b4eb240e3b6b01ecfb4139f7c1200527f59dbbd72e9d8e73e989b4b3a21a0f6559fca698b3c066870bfcaa0365b5b905c3ecb04e0d008f46d235f629309dd35553e047ae96997b746f32f885eb87730d797f61584248266a97b37adc067f68795e15cf7af5b25909ee51edee7dc03efe89c0d704048b4b4766d0dbfa0fde6316317cca0bca806937782d99486c9fc4cdc8809c09c04e776357caa5e061f40830ffb01cf575f6a4a8d8b4ddff100f52ce409d7a6520d489ea9f6483959c88cb05d787693bb727cfadf05ba3f1d593f7e65778980eff3621a0f93dd1c79d94c75fb640c79ede9b30b03c3247b8a28
+GCD = 33643f51a7115c978417dffd2004b660edd6b2326960d0fe3ee7b67011506db769c35ac9f28599b6d220c58cf51137e8b382236fc314ed97e54e06efb58dc198339a07926088fb5a2e598f50b0cf50304e3eafe0ffcc0cefba10fb459d3583e919e0797d4443b0c5c1ad05ed5a437e28405e7dafa81e06f598
+
+A = 18e6777c879cbfa88aa063feb1659d79ae3659a5d798f5bcc8cfdd5de7e71256ec2d90ce65140749a6ea7ceacca7258a207a836ed6f44e7a76ef20e0b8556060531a1a53f6c89286002ced71de78b23a657d8b4446b2f9dc8a3077d850c29c9478c3c599b579babc7b4c21d88eacf4b2238f78301b66e8252536e3c83e9e4e9c52b50905ebc8a07bb6edc9d0fde4c4543951ed676ee6389a88a1805dca58b1824a667167bff4b75173bfde062583f8fe12cb5ea282533f2a0b5f9733f988816b682a067b2d98f15f5b003b258f85f09c473280a7d5379027f4dc5bc7fb722d90df788ce626f4f88728ed556f014956ded442
+B = 10fe850f6cb20e1a14bb4699a53b014347d84e1b078a9bed4838cd91873ed767f43ef5120e0d088c3065c041ffb43e788e4532c9255fc9cf315d293900c18f4181ce6c5d18392996dafc6cea5f1d70986fb2fc1036d2b68b333bfbd190fc359cec72acd0d25382bcf189af2991ae543d2744e9d2992b6fa29c14267cf6378ce172d681630c1b792eca740ce843aa1a05059021737e9f864d4653329134bcef0569f1c7d1852ed8b22f86d0ac4fef85214ae81726ecea88b7810a5a946590c4dc3348204baec25ff2e59ac2f90b755eb5838181d4db6a0d77abe9d338f8222d6ba23ab724e815b8b8c08a131773e52ae2ad0e
+GCD = 6a3860d4c05dce55b41f3f19dcfc26161f6459ad3ddf161fcd8e931d022d89df1a1aef041c3b5324ca880f3c5966f8bcc63cd79c74198c9c6fda459efb8362ad0ad1ecb1f9fc9353d46f881e3b38dc793dfa2021fcf79b701834506ecf9b23553ef21211211345c13a41db522541ffd20b1bc27fa4c143dd1e
+
+A = 34789df833a4422e9adb9e8db7c706af8d39a252830f2b1760aa677c532dc2b92aa992f17cbabf7ef673dde6e46d46395421540b03288d94cdf97c87262f42e8cbcb07afedf79e269bfbbcf1b36375d46c841a1029df4531e883661ff0c24dbff0bc36df64a329afa5dd54830e2692620b7ef8fe04cff0a0bc99276bb782400cf7edc2bb2e566a380a6f9ba12fab753ebd1085ba40cc26c07d02895795a25882c57973cb6a65860d27d357c6d70e85498c8c11e3ecc98200ce09578b69c9c724abb51d4722f647f9d3dfd7fc79f771f5091bee89bf458570121942a6f0df4dc01dab09c18db361fbaef8b4dff1461076ca88
+B = 521100a09d6b38f256ead652df3ca43815e94f7138e0923aae22d9dc90ab9101dc6628679edcf7c747829d57c27b62c3ac4fbf97609838d309c84ace4180320bba6178d0221f25b555ef520c1d3829aa0054b5cd1d60a372df855a5d88741123ec67a9ba151e9eedad28e0439961cce73c31a1900ce6aedba344251c5df9b1fbb536961b1eb44a0f159ac47058e9557e12324c9a90d7df1f441d2d8595ec5f9cc8041d5086d42c1b376f19a327fb9d02b9f75fba80f516271498af7aa44d7a3c7e219fc93071939771795d36cb4235518db81965ffe760043b1de885b8662fa97c279400ef564689c83cbc283011fc1d7dde
+GCD = 1a32bf839a0c1cace8996403a20d76da5458b1d69891b3442b4ab2abe8183428d6955dad08bfa9997a4770fee07defb76f0d44ce81383c551a7bfd14060c8e55d36c7f3ffde08a62433d114da74b4001a07d7126e7790bd13e565e75e2d71fb0359f3ca22248a5628ba0d99a007ae8cae70e559d65756bce3da
+
+A = -163979bbadbe4d08624685cc3fb5038896df186bc8b31e56eb15d59748e27fa3cdd68368c279bf501b57848ee15a11b71f8c95fc8ba6989bbf7fd45fcbba0cd1dc458fcb1c2b2581588de73eff27e7cb0c0d17a148955bda62e07a0a37caf0fbf2876577f24c2e924c7de43811973f240fe8090c8121731aed4d186863f03a17cbb49ddf48c58df56635926ac7813f7b6ceabb9b1c6f3af0dbaeb218edb5788ddd866790a33fa66635b3e38e50ebaeb7fe82c2fee7460f9042c625af314f19b437eb77a8796e3c42d162c36c773de3cee21e8639e7212324708c3fd2af7b0712f80e5d3a079ccff59b8e67085bf8b74565ca2
+B = -1563e705532fe7a1007a723fb888f62b18d963668f64a0ad76aab22ed27cc854959b93f68af219b46cfc1e24de05d36997d208290becc0abd92a23b505f42ed60574903740fa857c53fc706f8f9bb7217aaf8557cd8ed04acb0b628f512e0169b3adae4b4b17faf8eb4bb77080e5b8f78309adb04bc35f3aae94fcc9385c4e9b39cb2c442d86890aa3f079872e99c591587a9bbdb364766e2b79e901a941d47cc14a3da23a13408095800a4f9e7962561f46f7dea3c9b01813c7524a5980839e7b1a110419d4606baa55ac1ccd14b791b7ae513a8a89fccf4e0dd5e25e79ed6223f1ffbb9e8ca99dbdf249049bdf0b01f40b4
+GCD = 1c8633e8d467c40dc5ec4748768107a786110043902537cfa081baca652014befefe4bf0406f16d0754a0625bc3b0303944594b1f0f2434cdc785db7c6be8f2ea4194f360206b3bfca96b81b38b036bcdccfb3df400c8cd6cf853264d577f33bfed6a327bcc627ce3946858c67ac537649c2b4791d03a89d7d6
+
+A = 1017fd8d5cb35f27b8758a9d558a168cea02ba7d1edb4781fa48387414020e5fdedc26404e2517d5659eb9ec68a750248764d5ec6db6da948341f981b690953b1220d58787528e50f1b7642938e7e9045dec1bdfd60b2e25e52feef634a27bd04818c5f8b4873afa9311f28cce262aab6f672f188cd0b10e13a082582e51c249b4f93c8800b1b438a9598fde7f5b101094ec4b2f61b72e0d4114732894c908124724bddc6ceeb5d0ff0956f23850f19a108a4c147565c6d7e260caafe73ddd9ecd4bbe6a02db6b0e7947f6349569e83f275457e935b0fcb04d85d5dfbf50b660895d45101a0baa71cc988c1d86a9804eb3d16
+B = 3dfea7193ee191dddbefec187107e53239517c601cbee0bf198c37604a66c4350a012b738620d70c704552cc74b0be6d1c689f04ce6ba07d99c201983aae7b9a09421910f5522460fee9d13fece90a859df2066e2edc77b4d65811e56f17ab1679f78a3edbbd6af94b92803087e71a14410aa143971052c052a1513ec86364191003112c45f9e04d19373e94ced9425893283e99684b8d816a46f9bb15d44c15b53429dc93f2c47903c536eb0a71d02e55086b40340af5584cb35dab557845cc3f67c80d9ecba4b2731202009ab27bc3ddb134859df51ffced2463679008ee2e740cb37fb101511f51298cbad5963897beff5
+GCD = 3426c6e901c7c93ed1e8fdc631827a3385117ba93d49ae53a2f18f1bb75496e6091e15a84b416941ff7ea9d6abb442a537913d211b36b9a5eb77c7174c0979439d193eed23fc532b54208959db652914b631aaa21e8ce74110b2bf128571985042b6fb50677013f63fadbbdb973a7ac5deba708d7979802d221
+
+A = -7a80832cb129929a1a44e0a9d5cbf264db00e105427c34e5759c0ec01f7d2c8b86f7c3673239cae99f0d2ada96e4d04c743f997d1c3703505649c4009ba69b118f87848b25f5b8cd6ebec196030a51de4728b8003fe71fedb3e93b7b70e5376b154b89bc4efbc3df143a594c791b906e258b5a39a54fd892e87826239a5875e7ffe738d92c4b56642b59d2bc63007c2a87ae8fdbb2c46eae8121157aff6dc06475086481cac534f15d939edded0617c9a5e585301b0251aca7da99411ebe5a39aa90b2ad78832483394fc20a026aea57eb9500ded2424df97a3b32924a80708ec8ba218a0697292a57aa948191284e75c8de5
+B = ed692893d0bd3e7b1c3ab12946b4b38ecdd761fb42ed63308754b1956911c212e03cb4f8c81f549bd37a8b59e5b7fb38266a6f9397f83e8f66b63aefdcf27d1e30d386f07e3e86ca2dbc6588b02ea4fb8cda2cb37d3cd75cd28ab9154ff1fda5a2c05bb2620350b3d3f17cb7e991da2987d25a108dc9d10f5019ee9e2d588abbbdaa0608b2144876c5049c1ca00103e8855861fdd02fdd8b0be96768c3ba50fd1866fb5c4b1d7ecc819244af3198fc68351280991dbf077d1096cce450ed0b411d97d6a7f0ab040ebde88f20f8eec3aff9904779386cb1117b5da2090aa60de0f26f3c8546193709f5232705cc80d28fbbc39
+GCD = 44a20b3ec29c0b777e1861c53a9a89a29ae1402ec341351d46233d4930f04cb7dad56b37d43b9d7a91a8a3160f10576324670ebcc22e0a433a912fe355372c6acbe811091e8769c1697d6ff363c2cca7a2875027ce6e36a3d2d2f55844170e42f05b88ffb792ddc72c9411f87077a1083228127551538feb95f
+
+A = -5997ca5bf11ad822c7f392aa2f9d107d5dc5a2dac0962dec1f5b39c9e9471c9ca86eb4da11bf08abcdf3585bcfdab2345e1b72085826db1be4305c30654f22d7c5ee1656c72825ec8a9f5442228d6ed65f1b7fa1ce601da8cdb429ec820fc0aa7cf4ffd5421667cee6e3d226079aedc1b06485fa2be5848ed306848181180bc25829ba96f0d58d1a8bb9faf6963dab15e4f68594c949855eed4afa10a707fb5a349c4c2c4215664ce08491dfc4b8c4b19b5fc7406096248cd89682d444d1a9bba38ccb2da4312c60597f0ea4217f8e0d670dac74d985f9d4793382d78b532024ba87f63452dce34f8fbbb2815b802c036e613a
+B = 3a4ba0191cba8bfcc18d6f4f3ab45d4267553c69ab14ac373c32f9b508732cb7ece15c6d93a27228573ba808897be72196582b7f6cd088fa56e801f73eee92dcc066de5077ead02d95a9e9b33550cc75337e842fd055e217bde8d881b39f637e6b571f5f49da09c839fdcc43d9853288c0dae6dd20ff2fc5561a1be56afd2a1a767b18af0be08bd00fb042629bc8b65368de6ba7722179b6ed1e97f8bed3d344cc7f7ba7406cc2d9c655b8ebf4a35fc5d1a2a63155fdc6d510aa0eb4f3947530d74ad46a5c809b29472c9159f9e3898b1d6c049e692243111e53c4a468394631daecc1640cc2da98dd4bba2e97ea836ec6b074
+GCD = 23b5c1599e4297f5514d2960edbb132a60a0b9d82537e530f3647c76ae92de592eb446a0a9fef50ab6201e4db8a77f253f449d7fbe916f3bc45c18f6d2bf1cce1f2176964612750382996dc015eb2f9e67ce426a25a155d1f8c6f59ec65e33d1dd9773e90f94db939b97e2a1888e468f6cc57b5d7236a9252256
+
+A = 72470e00156eba5e1878fe4f8d45a181987a702b420cd31ad92777d8fa9352685d93bdcced6d11b075bbad00aea2917dce89fd01051f0a7c59615bfc6a8976c603082cd0b393f3a46da520d957fef9a5cd785cd3496d150b95c6667d8d0c997e572246d34e9a840709635d8e8c49b92bd885f26cef49efa03f1c258f18796631d8aab0d3a435e2566b81b742698cc732129cbacf9c1f9e46ce996c0c61c3f81a870b95ea3d4146c5721be6b8ae0befdf2f4366a689453acf1490ef77ba3b1da815b721ffc381b081061890903bea3586ec7e3c5d2041db523c3fcda28fd9e63077754cd143a6dcc0d7e95364e47c65b7b6c5b
+B = -15c249bf0590e98bcc88b7fd2e899c442c5b6304257e931725593da7718454c64d7fd68dafeb9cb45c79a0335841a214ba0677717bfc32baf46d09d82913d64c210b1e50bb2668a903e23032fe7c2150c0c32f78d0f7bb7c424b3f681ca092f30cf7a5cf577fe718c415c2ba35317d791eef44e465377e55f39204ec4a0c573a008ee880053d6cc015292d1133677622b10b7462339be977374e8096f7f52d6b4b3e30c20a42daaf25788e61b072a6c5f4a2e5f8bc16dab400e6b6b30461c47f0fab47181c7a3d09da3b705d1a32bc87c4ff32f08da2c4caea914fafb7f97072d204f3801d643062f6fa4b2b78d9699b0d56ae2
+GCD = 1dde625feedcb23e81b13be86b4e8d051cf548f9264d2107ba5bd6b86dea749bdc630ec68d272146fbcb722f44f64477d15154c64a9b7093e7d38d6591401389b13946afe9d90424ce5dd079d047312389186c2e216400ac78a80f082181de8a9ff0dbd1a144838478e5a8a4e4a9f2ff8625702d887aecd67879
+
+A = 384e80968a8064b47035d52ae60255ee091789dfbf643498d6af2425a36fb8c818711b72ad17f1d0b19c682a726a7f7620bf41b61563835506f5e0fb63cad7c9bb779a7c8e50a44a87ffb53c6ebaddf60c510dd90761978ecdb2a1a9197109220e65c4aba6cfc73f69e56733a64eceb3a2e1ea060a0f1e61ee40524b028904e4e00a2c4dfbe51eae5c02d0bc11d1923a503e2e06aa911096efd6feb75f17f870b8a201aae68eabf23e2dd27cbcd0562390f6163bc73ef514586a190ed1a0629754b3d4679ad0f70bf018038dbf24716ccd84f3076d457de1955db88217b3b3493f764c2aaec7e3039f14a07f56984af22d807f0
+B = 2a76529bed94bb1174c60d5b8fda44af805645c5d222d68735ac55a2fd4ec313fdfbad2034e308fdd22c2f275199590b3e8362045cc9833005d303367628846b5bc55eaa93de58e919cdf8f5d7caa61b2bdbb03eef5f9c448d2e10375bc7a7f8b0828bf7220b64dc4a302cd3c3c5715ddc01ce4bb2206b7186a0f918a3e56d5b581c02ac5c97ffba587f7cab6bd87bfa765edf1ba77440e67e43b09ce35157e0e031d0f64570b54d09843d45021aef75cdb16c9f184e0e5598bfd2d96a1cdfcd194b7746c84a315afb408e25f1c24369069c1c6f56a4f8dda9c5da77b051bea9ca6682260d12859af944b0e56991576692063a0
+GCD = 4ae7467f979b4891e7088de3f2580e880425f8b12f3897bd77ca06d06ff791085b4db8ac1c7e2caec13253c344c061693b1d09f97a51881eb2e85f9e33deb48794dfcf5a62e19258c2d7f6bcf390505bfa69e85359ea991e21eceee222e2a0604c33132d824616609a167cd93bf2b12c035d51edc5caf4c21230
+
+A = -16f4207f86fd2ec8f63291a6f6fd7fa7da587052962071251bd0f8ee6cb32fc07aefa9f100e7c308f5b75fa507b7e4fd4d14e24fd073f3367877e64ce46c56ea65aaf68f74084dc09257f1641350b38d0930f67e4187362cc3b731f77f3ccd60a261c4151a815a8714265f8105506e5e075fb82131bda64d8f46015c98775c4c77c8695d1307528e1e133d1e0e2306f6e7789530f089632e6ff7ece92bf2a553e2d0c3dd45ce4a3ac2e763bbd99830792edd5c2a34305e4e8f889de59cc8d63f3f2ef96eb89b7c9ca4fa7f1267a0f7cb1f39308d17534103e89a403fe8be49ea4a3c46c84252d9a5eec50b4a5bdb6ae927498d63
+B = -6818ebdc18cb717eed0dfcdb81a1207c6f067c32bb4b8b410d0855e1b96e70d22b05be3eb462319419c6dede364bb2dac98c62ce7cc447104a6d3474628ccd2a0439c8c73ed44faf3e9662160cd6591b51dd5b6736f0821ced838200f5a21850852c2392e65a58fc7d40295f46391f48af3b0c0ca04eb0b1d118187391cafa117cc316cef2b9779f3f417151ae7536f4271cd4fa4e74106222c3294beb626c21c00262964f404c409f7226b701f744f301edd2b4d01cf2a3e107285c3bd669766e10fdefdf96cfc1b5335399c9187bc42fec3be01a769c39b5417458ca82878ed875b8a7d21ed4debb71122359e2e452391036e
+GCD = 7281aaf204c1ac8866a48ff86eeba8e69b753e17e9b7d372f64ad7dadd2360f06e5a960bace4f8e23d2b2005a6530373a6b8557e885375f2378b1589f57f1ae5b059449dcebcd91c9978169975aaa32664404a52ee05f5e115e073355f7ec5a8aafdd4030a0324c8110c0c48234d6c6a7adef4ce057bfc6c8483
+
+A = 29cfd25415fb471a4e60a18c729b804637f53057af3d708735eb3a9a0bebd41d77c158b4c6506899366e6b6183830295ae3851ada7a459c4e171dfa200d83490c396e4cf7f6e8c9d54d6f49a9f6e2eef69c8a9ab8aec8d5fdb17669906af0be4821316101e6dc2480e03ad8e6b8104dd0eeb3faf0bf65609ad103ac43f5d8dbdc460f48199a47073f66e2dd33fd05311fb424a5fd81fc48d4073492b27718927c2fc02b32efd21dd5694490a88f43e7e5f2bd3ba498d53a6395d24ad1121a62f76d23442ef2ea467afaed2038984af9a6dfe1925760e7ddd4a535f1342b60778acde2e317255fee54ff7e88f0b3dae25e8b5f7d0
+B = 18c5f8cb81371d749cd85a869bfc4b6da1fd988e629adf8b9f9e3ec77150f7f8e35b9aebaf5767e1f7802fd323e73e86178445fb3101966248e0d45607c251c448bbc3b0d5aaec5c687bb185ee1c09819671f0d4c449409f351483e94d757e563c66c1940529f982c5cd180992d10a8318f7f54b0019c0405f57842726f0bcdd9497d4d68632664ab7ccd44eee532b3662e0fccca27224bfe222e8ea37d3d0fb1029380ea67f67c26a5c133afe7a5581e3705fc24b4408817ea455dcf0549f947052d91c441b454dcb25691facec66f8e3a886041b8a932eb18792bdc1b190ff695a1eb2e2400265472427854656468bfa121e64
+GCD = 1165812c9b00faa32967fc6a35674c8410c110cf24eec4a02ab4f6e44e625f4f2c30170e9e111040595d7429fef35349cc7d7ac47c4d22aa636ffbf39587cdb6a5db80bfda515b76e16ea887d8f51ef5106f2b46341b89bcc236f0cd4f6a7f2413d95115cd884ab7c1f57cedea01449e72841fbc7c3a07cbe797c
+
+A = -97d2dc5ee51fc2a949d83a6caf4ee84ece160a0ca368c6f5c01817d0e5b9e512fada2e4969649293b90106c4ca44d7d9f729ca1044560337ec7d597f22df82b911ddab0943b7d3546857637279211b748d360f7df78831de0948b3eaa7858e0d340d3c88493e684b2674a07212e33568806aef9ad69a9779212dee3951a9120325ec8d94d599c62f307b352e8ab0a21028d7030696968850ef0ac4f6632af0e5743a9a9bf3442a2af053b2ac7a2f7dac171a2bb355d060ab4b71d5358ac35fea5bfde10bdbd3d41a205e2dbb735e9ef6619b941fa71732e041439668b53746fe5f37cbe66761a5464f1c832bca9c1e18f4b8a64f
+B = 169dc83c1a986a0e8f03dfbab56018e50c21c99fd9fb3c3d2e550eaa214bbdf49646c880453b7b24f87033250ab20438d2e570e2a787a2b00800f71f1bc7f399964a7a64d5f178da59c1e6c2533f6c4968145886a06b9296f6a93335adbd3797322433cb146eb04407e0a36c56e690f1da5ede26410cb50c4e469e816ae7dc12f41511f892b4327450345ab74f9755ef5a1182f89a9074448ece46978c5c12fe61a4022d1b352ed4c768f2304ea5b5622e5c31bb9ed7aabc972c560a333a86ba41c8fa803787ee8085c4585d1346c6165a151a96a8b2d9502d82dccc32a5aa8c472b8d91a9486457f48665f59f88a8464f90e7481
+GCD = 1eeaa67dc52b75fd2ebf04310e25e1cb51f8218d61310fe40b51f5ec981d9605ef0a558a5912e45a8f1204f5e9c7cb9445527fb8e975426ccf7e73495deb00a02a7915fb98cf385b4b08d3d0a50212321733a8088d5635ba2f625121538316bdd0d60690b5eab3936f55e41ab154ddc7a55fb845e4545bed59391
+
+A = 56030780c03be379cc6a1b64cc45b954f36eeb201f74c3f7b23e42c68fcb4bc030dbc28682ea56f3f8c69cdbcd8c14b12d12253aad0d26a713cedea590f8cc9178790160b80e4703736a8e0b9e84364ad5dad25b4630c33fe60ea966d65af4aa205c221e6aa4a246599528f14200cfb67043d808bdea60001c7175870761ac95088d591422e7a8f235c501aca8d4e88d5a0cc380d7915cc8e5dad2b296caeb2a34c7107f5910addb86df6322c1acd5826edae92698aa84e54184891a528e28d60e4809c336382ef88d0776791c8a5c1c5b7a8aaf77394d34c3d6b29a7be52810b42d17139100f727bf9e2228d358386b177034740
+B = 318b1c18bb131d73b2f505e2f223667abaa2bdee0d8197f8ce458efaf74b470a1cf0cf30b052d9e71ea10e2ce97b93705b7225046142e99e0597e7d7002f296777f37f08b1354ccbdf191f60028ae3f5b833a5eb6373bfd4fe6ddad73d712ec95a87278095f2f35ef7e9fa46e379921b05db69f34474bfe03d834db03639678a271a1437e708f887630315595f036b2ea3613bc1a2fc79685a84b7bea5f6812591c037243f2946bc3b48920cf5bcb1b967eab8b0bfd1f66cecd7c02ff9f09b906f4c05f727e940f7efe79d7824d78d262093a8bdc957cb73c4317a74fa951c023f8c9100b9f8472af46d15bf0d787977f1f3f68e0
+GCD = 7fdff20a53bae9756728abe67d783fdddf05acd71c9e3d51d4d0dd492de950fac634f8f7de635539eb9d2e77af2526cf2f09580e568fc4d7acb5a306c09caeeb0243b96f77998c92458b757b15d17473bdf3e90dff7194a3459c6eb7dc5ec075963b21da313bc0b0abe425751d49f803fe9aa86deddc4f6909c20
+
+A = d94cd11d2a93d439eb826087f195aaca42b0b9457becf1c7d648d0f27d11d5f3e64c93be955d129e7b36afde711ab97b9a5f3a4b209bac91c054e6bfd11470b1e8454ebd6090dbbc113d2f5a8c983272ce4c1b93c4f20c161cda14113ef2ef3cab9e1520dbb1894d3c39640e312ea04e1e3c622b9a29dcd0f2f0d42286cea76e53f22c464f39a7dfeea2898b9fb75152032897250e5fcd85722eb8690e1302e5b7fb475c741bbf2a0ea6c57cc2cb61bec83313a2698511a209cb69f0c0cf590806e15bd55e41cd7affca36cd2d1a3f99eda1b8e94eed96b4b18809ff98705be00c900342418b2d1f60fb0bbe7d10f1937897f30b2
+B = f995dd7d4cc178649ab3a418a536589feeb28406aa5e3d96e4ce9df5b392094737d5f8637b19d9946b1de540b6526b52b5980012910883c046d0a4be56c9fc4943a7249617bb45ff11bae3a497fe3b0de10f9ccb635af35fa21b0e00bc778a161e07cd8d552d71b6fd6f2678833bd593dffe104a00dcb377c133b115ebe2477a128d30f4d07ea73c541c656aafbf6d4442eef998cd55fc6b1f457412634a365906ed988483aa9ab684cbd4589a5f7616d84b4942e0f6ebeb9ba4e2807f99a691c370f43bb6adbfdbee4d5d474b9577fbc8b46791a115b0f27628997ef225fd26838bb9ee872605845e23b08c2bb41879c04a61794
+GCD = 10da41d390027bed1661f01e09d4d8b3db2bac9993a531d5756c999cc07df488c3cf3772dd2287a56eb5c6865e56bec0ed991749a4ed50d16d6d4d741c506f569308fc2a3c7ddeb908889e6c92e78d32cae7256ce49cd6d19e4b81aa5132a2f061d6ae9bc44750b279a5361a4dfadc064384f8f4c4975ed7499c406
+
+A = -3df39100c5b407c55d5ff7b9c9c916fa195c722bb94e062395cf666c36acacb0b7af94d8e41645b0a89fb25e0f669ea70416d91b5c5e7ffa7553167c23515e0ad57ecd4a7bd109cbde876e01d387dc4980e52d370f5e63828f9a002b7762b49342420d9f82a86dff69d90aea52a08bc3e458be2f25719bd41bcc6ac959075687f8a2b4242d3f890c3aab83f1fb3675e5041fa90e202d1f7d38dd296ced17ded8812e0610884954d23acabb83e7e10a66f482230d3b1d2d5499239bbf6f5b79d589aa289f2b608b6db3caa8a527838b58c67648dda45645d550ba7198b8107effc92b7ff7a73ecc6efe4f4e66f803c9f8ba8ebbe2af
+B = -20cd74c5bf7860fe7649ca029fd197af9ee0415850870f9be6d8498d4651ed432534681fef24e93f8d8dcc10eca8317214a3920fbe1a0c96d0f9bfc5cffca9c8ea00a33403bba55e40c5bc2d38392adc19f36d69af26d9ff7f1a0fab8c0fbf4b9c72116aa2e5d581a0b719db3efa14925ecd3d5b3c626f266e022e181ab968a84012aecccd64eb8c0f46b4af50f0d2f2305d4c3887ceec9cdb4e6c40c48995cd10b49a9e6eb2bf57a7e830f22c01d00e0a7c4b75074cfd7867f8af858c791990f897111638fb50102bd6065c403559d46dc7f5214d71a86f0160617cbbd82a81c1f0ab84896d62e2c95733c3e58042b82a439fb4cd
+GCD = 96aae5ab17bf62e9806df66b53b142c93d7758cffe62d830ab75ec3b606f25bee4238acb6bb318a734b838286d8595d11d84acdd91e3d139e132e38622bb69880ce2a5679d9cd5aaee8f7c0f27532e7689cc9e283bf93beb95b3177643204b81b76a4c03f2e3ff1798e5f8ac9716868dfc4b728b3a139fcc26535
+
+A = 1598fefb6de3ea095576e4bb9c5aa21581c5cbd07977be6c8bb11f5d090553d88e7d9e1dfa0cd2605a4ec04344e21aad6398d8ffaa243ac47d18b3bfdc39aa1bcc62919516c285f4c270025a38c65916af539e2e9f85cadd5bddb356b03c450d70c32528ad449dcc42ff2bf2d3269d6d2ab3f9792af69ecd8161119dfb37e53040eb1f4ef04b85b478db0547c63fe6a12db86973671e36a728d17e7efaee5add9d5bce35270fd060ebbfb876f2d75559b327e9adf6142d74eadf3c106d4dc9ac9d2bfae3c65a6833a7728cf30456b570ae9e4232569a4788574a5546ce0174610a2ad2fa739b6cc8d531a642af15a6852398db70c9
+B = 1bb8c6c15ca26e0c58844b44bcaf8eafc0aca6b0b324d8a33e24fc61f02165c9f642eefe05ffe2377af7935551520fc0ad1a75cce57417866a753c13c726676662c193066e2b012097a781a5e41554f4bc260317f378eb6336b5960b62fe66e6cd47dac4092ef0469f62f43b2f6ee1989b4e63f035763cbd4fbee4b490f1540813226c8ee423b40a028626444ff9c0417faa57029c61795d1f080fe81b40532ec10de84377a786475be0c025e1b4754cd59d847e4b1e535cb22728239039b5ca3fde90d0f30fb2606503d19b24a513a2d653b05f2af9224c51fd2666dded815e1d8432b7d2093398156941155a8b3a737230aafa683
+GCD = 58344ae83d285583bca65018029c3d7f5aa0f867d4bd4c00438dc9d20124f7fa23e1e67c992a071346a60c4c89d1c499e622a2dfd7a40c09eaf0d7d0a452e85d5c177ddb312e55f91eccc6e6c332d6cfba9b7f39f4c13efceebd79c3edc58faff5c7f4d891f5c5b9a0977903406c9ab157af2d2ab9a2a450dd5b9f
+
+A = 2ea36bd4f02e5b8a759792a825a953a1c1d05e3b436c3f1dc39fe7da42098d501cd25ecca3f383e167c33b76bd390d6d91208b05b856cf4364adcf020aabafb8db943a077b74f152cd06c2a6aed920063fdb6fb9a5ff7f66ecec98d4e4d2e6e2d36f22caa968f61dc2b13a0912ca4c652ec559a14f19f47e49d3babea9a45e1f8df10d5f13dabc3237caf9317b00ed3a9841d91ee2692d034e39c05f8ba3283de54e580e6df70b3c89c58c61f994b483a8256fd6d9d66a8ed249f461712fed7bda784ddd412d04129fb98a9b0fdbc0381c0cf28648aa77dd7a17d6c5e1bf7e5c06e826c79de52affcdba957b3b9bfc0addc4d2de1a8
+B = 1859c6b6891744e23f0c893d62d88564026f092a1cf9e766575e127879fee0f2b3b3ce67d2e6eed4b10555dbd023d658f4ce94a0fff0c38dbb80fa9d24636b04abda0450352373d0590dfc13cb2bc49bfc25a6b6cdc3b23b8c93b8ea1e7035b493465bf95f02f62d0d35969432654a568320f68b05ae713efd6706d943ef548b50ab16891f07ae22615972ce2f6d4f516b6b41271fa693e7cf0250a402857f6cbce5dd31fd3d7630c7f908c7c0b806120bcd0d2c7ee7cebdf5aca552fc23d9a3da054c7d1a29bbfce48f15c64994fbc452b63e1d2a8a88cbd018bec033ba74c700a78b6d5e887f62b6e0ac56c97c391e140152bcb40
+GCD = 31274677bdcf02dfeff976b2e1d78428c48f7ee3c3cb1a51463ffa6e7272d50ebda4bc24c22166093389b68bf81aa8ca33077aa9bbb784dadc0a009edf35f29a3ea9e4533f011d612edc2c542bc0eeaa1c0ecfb979b68d2b4f0f11faf6cbe47e507a5e27303e9dea8fb446567051c8fc7ec784cef2a44386525f98
+
+A = 10c6b8118628c5e16acfb4c679d1ef7f8b1a3d9150975da2232e887fe4f15ebf2facd5a33a6e80a899069ad96025578cdffdd463df0b88051125001b70d63595d7595deec99ff29c2093aa5dcbc0f82924381ddc8e626891ae05803180a64afbbd2e50604c95d6ca42e31c9f4709b036cd5fa55fba0375e8b408a0273896ad00661b8d104f03faa7fbbc76d440d4f04cca302bbcc91a1144133e083fca1481b5362003edf44f28c9571d51d23b845db014f12a2f400d87a98f5e35fec42510920960a9f9006eecd1e9209bf3acf8936d09ba0425023242ce1e79a3a98c9337f4bb4b526f65a61903afc71a6de91a971045c72d4c55d0
+B = 1082c0641174a2a16e4997fba9398bc9b384a2f748d6623110ec42f0df582fe9f391198b4db07b7caae5ffcde200572d85a962bd3f91db6fc318279e16d4e863039d98fb3efc4088b9890639448c94230571558fa1cee119aeed99a5c1b0af1bdb4683512e40b93df0cb0ee42ef873976a6769e21984f67eba44b8403550e7a4f69a702cbbbeb23673beda4d71f4105766fb148f29770ae372deeb5eec480a6f7bd705a71028f0bfe1dd2b3131a0a3a6d79876d642eb57461c1637ad3ac82c83fef2c70ef9cf0e0e7f188faf93b239cc9af2f2916c9da3802e1a02693f940f9251386f3231174db519cdfe74ec386f1df4d2f03ae518
+GCD = 66bb753d8c7cf7582527c0578ee1dc0082301dd423651f8f6e258d37562e88cb0b7ec75aca3ea1dcc95397303fded4ffee648be4d3edc749530a4b30934bc44d45970d84685b49949f16b871546bb6c2c3653f7ba0786691b64c4e90ea7f3f5215d7003654646f622a28d794485564f813c6e68f9227f93ba43ea8
+
+A = 620604644f880d374995edccddeece0096be15aa99a6299f48a811eda41d6550d820f23aac58f576f399fdcfc2baff7c2be3a0efcedb4bce05e15a833355507be9fb6046ed475acb5ad43be7541371868ab5356ca5b250de290c21f2cc35e1b518d67f53af96221ed450e06eea7e684df31629406e29ad9263758b3ffb7edb41ba0356f0db13b7fbf2b4e0bfb08a70bdf2c133e73fbbe7026132a6aab1ff87b7bebc3ee7b5ebef294aa65928a157e971267bed0d9da98d2bb530bbc10e759fa28512a8ffcf603a09b4406ac1d28b3198d693940acd463a03726122e2e65534592c78fb80ab7e29ed74173ca970114a60a71f57ef8d1c
+B = -611ee44ba8bcb8207f3519d53c8333d60d0d526f7c5921895431dd0fcd9be0c7e11ac6d69dce8492f9c22b3b98cdf14dd4571b751412dd915e3c6ab7e18867ea88b70f6c660e63490b809d16d945203e20b09947ae189a3a75f92954f5dec36c3415403c56dde6bba648d9bbe646614b9ce6afb2c1b47265e4b260b64beeb9443df63892fef3a28a8174f3a2b15c158173a05c2a296b8dfcdef4707bca0047f330e7dfd51bd14a69680f2c95505caff1c2847e45b4c3641b0979a1f3325bac6dbc8181a63c94cc3cffa8762de46a2f4546949ea7349f8fcff15650f0f5fc7a710112808143fe70651053f11b119ef4af4780c678b376
+GCD = ef1d091fc6959b2850da342e0d3b20a0ab96b7e1d651d2d4904c01d4c706da1f271893a718bdd2d15b6e282313e1bfd3fdb4a3241ce427ff849eaa1148669ac719fba88c92245936c61205949a7d19c09642e7ab74c9e887d37e8892d172b584dfdcc280e636096190d27212585aa2741548d4a0fb5f2c1daf3962
+
+A = 14996de930ca62e6cc5c6d9fd60cb02712416170fd95bead3a84a2ea2e953ea210f41038800c1b532d9901b2cdeb5a7f4867d6b1e3b5f269d1d300ad4f637162e62da04cbb6c286ce58c9dd3a85acc43d68827510aa45f9349227e2ffbe29950cc0e9e41f0d9a46719e691f605694b8a8c93a89731bfd9264e5f95124ce740c5e6d1fc0d66b0b2c8c5ed37244fd901e35a21c18e9ea2ed052b72129a344dedae884d9154c8702138a16575bd0c84b5068fb3252fc0654179387d3a5d6e11beb1579f52ade7bb99ee29d45cac6a3b57091c3570aabe58538afc4e50f27c614f78ebf25f965ac0b2bdbceea3c8e6611fe98a52cb0ac672c
+B = d374d1db5c5a34e428141401ceadb25cfbd583e15a8f1d8c679d3fde17548aa9350010f01c4f21db0aa29c8d7754f71dc315b4af4fa8cee3a7fb2eb0b6e671dceb3f79174f71f5eb5c5dbacfd13d1cc59d95a22abaff6a83a4086e1bc526c774dae63b05d18fc7acc7ea38c36c269f75cdd01c9d4fb5fec8063d80a1c83f0ab47269e482c3821dd38576f79d5c4ea98abb52291878edb71f922c583d194a399658127908150116670db363dd6ab8d46bc1d369c498e6c88d20ab17c88cba7f1b60c4e6a746294fae41a4432490cbc2d461c2827159de96258978db6196a6f6eec25dd5ebd9fd4bc14d300ce5245bc9b43b8e44fd197d
+GCD = 15faad650de43b7b5846090c058e476891f8a54fbcbd2678d0daa7444c3f80e1e8e30d6796bcc805b64417b8ad7ee9ec7111d1cbb0be221004b2d900464b5d4e141a4724beaf99287f075d12cce0b669feaa6849918788a88a5e72ff2b63aa98c69469db513539e5bdbfae63ef26e24566e9d079546994783cea659
+
+A = 12b8c832937b80cf0dcf917736905c35e779f5a8e30ded922d7fd15c0b3c29ddfb3ac7bd462cd0773f063d0ad3ad4071242e3c38ddc0586de5c352397f235c85501c649afc9eeb559a1263dd9c53cbf70af9bda593162dd42cbbbd172202f05d02bfc5e7d36f6f3b4a7a5abf46b9f338125a95cc966ec461837c8e2884c2cd7fe25c311d84324a4f811d5f99403b92a8cd56dbe5d64f94372f224419d864b78f4fe0527bc74fcf2ef6f1fa073f49e4123e4920ec2fa8439d8b63bda06e075d3a21c0d300ff365190e428725f9c1521736652df0c2243b3103d3ac3be94c1d89b2a8d8a7c212863fc709ea0ec24f67755ddbafea7814ec
+B = 46db9110246dfdd0b797c12445fff0d56a0630dc0daf5d5fee918b5eb115b944665bda3569a9bf4a1619e5b8f29683bead704836db96b5d599429a1f615e205a7e8fc60156cdfcea88e2ff2e9e9953dbbf8c920d860da619ccffc364c6dfd75ace87bbc2c4f819f5d164336c3bf9e75223c021cc2bd10a82bcfc44e8d55fd5cc6c0c6de6b5026e6efe187f83376f9771020b0d46f68b8b9ce5ba7df42389a05239fc62f5f207bb0246a4d899fc6011c69b3381f65d776b89b4dfa4e0a821c8eac5605bc7b4b522b72d6e1500560e8ca63b1a0d5035d4333b6e9f13394e9d6b9cdfe5e0b2a300e47570e7e6bcb98ef4028c8e2c00a78d9
+GCD = 29e6181842b41588d1bc28d9f5ad68e08bda98544926c98b3a8a12ee5139401d6bcf9edaf8b0dda1f58f4da4c987b2e39bbb2a84c02af78c3c6e62debf76cc5f459e102882941f1f921dd043e6ddf6d89ab4cad742325746c4e4d3a1a6b800090e294a8659b49b78edf598035b02351af351c3dd77596073ab84d31
+
+A = 427fcbbb101796dd6c979821197254a4b595f54f08f93bac183498ebc5536ee8917cb712d2b00648c4aa79f5a05e1680e42e3d8d0bda711c8373d11151845af88b0a5cab9c363a5502b59808570b94398ce0d8ec3e15df6330a3cb3752704774e70838af0ed7e925b50b5bfff0aeb26b6635e1c01ccf42bd7938a23072c9ae41a7357df6aa8d582824fe9812fe824023a148904005b7eb5ad26a7bc6e7ce235c85cc71730ddedf3a9982476609fb206e32449c7d081af1df8b918667d327215586161409b85cf662f374da6778f5350c21c3892f67d5f7dc432d97ecd2db44e4522a051feb3f26adf19e2d781e7755c0224a38b53921d
+B = -79a88c16df3d5580c9ea20533c5457884cf17f8cc4319081b563bac995adecafeb446910da9b6d3da2563be5684a0052117e904adfe2d414dcd542fe75ceeaec5fae62df29b566094525c9214adfa3e07afffd42fc8bcbcaa8ba7773823a733a1fc3110d1d34ba4ae8da8f145f48e0b1c43ec4c45d168ad760c125b937d8bf75c7e9a6e30d781e1eb6b68047406d65c18a9c351c43f46c06e66565b27bc2c8a3321faee9444dad5ab79430e5fc8f345186a8b741b70b041d320a10ea6dea29e27b37c532123c3b8a04aa2977b08ec73590c7ea6e40bc89a0f34184c9b5414eaa60128e518aaf0b992a3d02af23d44506f90a77fec3323
+GCD = 512893917572477a865e5604d127d3e6c85d65761e2483d4b0a03cb890c745d1743645fed873890e8b3d1be655965e01cf83bcf1335c3d8b4e47e34bd514f1142416a6e44cc4f9d76d2d1e95cfe8d6cd76b01575c38e33d475b0996dd236e182d0292c60d401b88d116fbcf9bfbb467cc4e317b7639b6a659e28a55
+
+A = 16cf56a31493c21efcbd611e77f0fbceb65bdaf00220a6ba5ed99bbbc354756081a017473f2dbf8419166e8276260361fb9ac79343ccdfaf52142f27069f7566abce21c95fe06fc72c389f2d57f3f14aad0cd6e21f732428b5f46e2415345c2502c5229887285a96c1bf50c8dde04a9ff552a8542b72d16d9ca76ff6dd56b595a7a91db6c008337658d817191ed248f8fe221268ada212706b1501ade8a73626ca3b8c3db4460ffa625d6214f5490a62a9646e7693f651bf8c2c347fcb6c1975ffca9224354371095e690e32ea159ea7784a0c44953a9c3852dc18178ce48e306f2e77ed2235374cd19e62c0be21509ce2d6fd774977b0
+B = -60e7856c34622eb4aff6d8688873bf32cdf8893a831ddf7a0b411cf466f373deb8dcccd7effd3a955d2997de249d65ee9141bab3a0e17a05d69e9f8f6756820451dc0430241c133fecad26e22762c26b658c51d8c51f122bcfdd3ef83c2145bdf1c35fc588e6a06e0749c9da7a158f6cf18618c211cfca118e5d3233055ca294a9364b30ebd2a9d76fe7bcaede8c9946fb1bfc24557d1bd2720d60db0ede7f8dadba1c0d5eebe74f7d92078aa890f96bacddc11cfdd02d3a1db2d4188a1c3ecf4c20084f9da1dc95fd06b67cf1be41e0a02ca966d7c6f30f4cfcd81a391b8f94f22ba731f155762d23e5f17f14849c0730d9d82ddc8436
+GCD = ec994cabd5fd90689244aa42eb5443040077ac411d9cb3c41f0fae8eab242130bf77fac3333eec704be32b4592cd5336bb102a8defad40374783c8362ee55c7d93f38948fb0b378181a803053ed7fb96be3f7083c238b3571f90d0c7da9457e6ec84a2ce52cb05f071d6bc904c611075e75154eaec134715af149a6
+
+A = -c76821cb56fa19feec6de64c6d73da824bb9e93fe695985680ec3190d21b6cc79d29f9a6d0ffeb967d55ac43a501b0cfcbb53cc060cadc0fa5193a1a898a12b7b8a1bc3e14beabe4a8a2b9278b74e9484474c9b9652f8ac7a441610291f9f88570c40c5035fdd5191f4ae4690c47064b0e237871e22495201906e7124613b87ae3cf64c38b2955fbb38ed93355a14def279ff27fb6cd80da85e68c60da9294c863227e6e072e53a1c650efc8862221d7179e2863bc25c3941b82c90809bd47fa25e2764c2afbf03f86b8a2f6aeb197063c18db559e5715e744a1bfe7a54a66d26b613bb6f37f5f0bf5275319c4fe3e6d58bd19c793977d
+B = -1ecbd66c42be57dfa52acd2ca259595ce9d601616c429940a4a7189909b0d63d9de2f5e60eac9693340b7911ba567d6a3fc2f3f937df0d883b906df4057f6577311a8d3664262eaf9e59968b873edb4387c3c7c6b60db6dde344ab2d128b9a4da735a07d4540961a113cab9e1cfc437a206d8f2e14992df6fb79f3cbfe5b60f3088584e73772d6e3618ed6a3bc4ab5910e5fee0cd9d1b2c4b2e3b73e5707e44b4eebc8fb27b9ee136c7d9aa00604317808784ff15a0ccc6759078aaeab09454ab9a3896061687c21be71ff3671fdb17df9c9834bf5c63674e6f09ebb8663803c13bbdc80bafef7b6c2c5b3bf5055b96632ce33d720a7667
+GCD = 1fb005228170361e8b951782c67fe3acf0654ead7c6597029b1298c7d782c06a41aa2d71cfb3cac6c580d801deb7aabf90d85e497ccf72aa373678eaba3865c798fc3da6bb0e9e8ba741ebc3c980c4cb1335cc1d83b5dd33b0eb4a91ca3aec6f33681569b7c12149fcdb3b16e8c8017c2cb8c711a1d96d76faf4deb3
+
+A = 437a2c2fa137da861036c4d9c50d5fe39be5dc00a6f8cc0e4a0b6707c9c830b6ff19b6fb614caf965b84619185ad423194d4c046637906a2903b8d81f8a8e85bc3d8e98638b4ac9f670acedb49d2a8c412303e91dd853d17ed570df7e4de88a929389d92790d6911b042867ded73273040a4d0fa78dd83baa8b34eb24983e948494432695924761df44df8fd26c05144718b90560927233f118414cd56930d598b9b242a4328df63156e07194a703908d6743f0d0fd37e5f35a0dc01cb3f7593bf62afbf0e59735f09f57ab3023ded4c7a76cc6af51956efad253dd7b41a96613955fe02840e48b8fb8b17d0f35af633d6c170f4f9b6eef
+B = -51ce55b7c836028118d2c8af455c7708f8a87a5e8c5a5816da246120efb0b890205e128c98151c02910379ce36bbbc71f49a7804b1e588b3a50654ba85751949057fdef186b1c9091dae02efc6ead2cfa758232404f0daf496a1e9c454ae3f99db3fdccd067a12a654bfcf66005509310efa7f7eede9222218a7c2ce884d2e6d268e02cb466b3b1d8cde94da8e844869fdf8188e37dc5ff633ec45421b424faefaccb85b5f766b6eff516711e1f2824c257651bdf5c3faebc25daa1dfbb6030d1b8b6253959630f9bc5c83d2bfae6efcbf386c008e1f63b137b3651a0a954835980ad572a91b96472d20a6f554a67965e62ea2427d26891
+GCD = 3301281f6cd418783dd371f68c4e896dbb8ac070b44bea3a37297d613a2541c3aa72b80d23ca0dc747f65679014874b66bca6fbd8ade940b744442db95aff5b714a1f8b9b3202c16b43532dde77397b4aeff6229fa5664abc42fd5b96386f41adf41000a3b261bb62139b4d603257d1141bab7e43d55d57929ae2bbd
+
+A = -e2f3b6f0f996be8c48baccf202068b8b351ca086da7b77339401a937c58ef7f2397d4a5dbaa3246ffbb6a39caf8af14801a2b2096fbcdcc9ce7e7cbfbac5b72086c7c8474398d32c1e26fef5cb30d5085be03cdc0936e99fc8d65c992bb29d9a3b40363610d6aa37c1a6d9cf527de33333fffe9ec4377b54f451477837de6f832c3a2f9f714dacaf7ffb753f2056af4ac45f4f393a8efbff6a051e37d7b5b8c96e5c29dcf707f91a600279b577458e77eae16974c08f605cdeae415f33e4ec04dbf73c806f38d371513a0919cd86e3ab55fbd000a266ff556177d4a8682bc7b9ba0d8be4b56e0074c4c4d984d53105a3a23e216c4a625b1
+B = -56af57e0b2c7c713508f859342dbbf56c25696c492a9fafea04f6e89f26cce17f139861c5c0179fed39531647eb9feaf2040d4745226f387d2bdd913b7e6246417f7893618bc52daf2ffa9cbad83a4756501a0af3c3ff287013ed540733be09f4e2b401d610a913f5539dfd5a291d04bba1e83e5e4ce4d2cbb5e358f5e0312a58ec5da4f43431aa26e77d572daf5ebad6b619a7e468511d57782eed5e4c4880cbb29476c679db0d5f2a2c4eed35b0408c6b78eb1a337a603ace7d16cf0c30a6862526b47bf44ec45277bac7baf1bd85c642c08a851c2c15a271e3e14c78b2a97ee0b431494701dbb31cba8804dd198382e0d26d55d00910
+GCD = 2e61134555a6cfac5c288ad9a47377b50937eaee240aeb9de35422c3188d65f90667bf056fcf742d3c92e2b7c9fdc71b0de465712bba3229d8419d559da2a1a7835ac27d25f4d61f16c1902f2b1de60de63d08afdea9ed959503079e994a04a65a85b66b51f085d9cc4839f1232748d6881823da710e1e1ae8cca0009
+
+A = 3b7c2d16177b27e39430efd11ee929fc2710c967fe5dfd5a6f7f8176734fcc6209ed64d551b2c31be45b16540d11d2bf56b75d0151da5ec2e1299c9cb64558cdf62e158cddc57a53de6a5afe95e528bfc129d16b426a20d48dfbd3c8c2d0e5c6469b0de58f6b9cf56f1c6016a7a4f8f0f6c086ad2d0491ac49bb93d24f64de4fd9a024fa2ff09b9a22b9c18723e118c1db1076e270a8d38be2469a580e8d92781e51ddc40c8f420a64a169b6951f38000be1344d5decf59a0033bf55b85ef695d77aedfec9cd6abfb3f7872b73dd5bf98e817677ee610a673ce0b3936b331bef4854fb801e4fa702d929f9033a0869901abb80200bdb01d0
+B = 476e3ab9dc271c9f5ac231e6f652417cc0d188fb1e6fefee3ec18d13d86bf880be0c6ad97b01d595da187bb412f320e07b7ab385558128936c014c8f9825b0d6157a340f2bb02039fb09cdb348af58adb9b117d9c2cdc36bd409e514bd1a36b2f98765883b85decfd123c86bdbf1360f76cd8dd78d15c9bf026b3f85b19f5ab6e641216f42ccdac2043c15c299ae28f338581b3d13310b5542f3776ed581292568a90dd3760b29aa03fbc90026c8129b5370922347442a9d4558651856d3af6737986cc18c04c6ef70c75826c20f6319ee6e8d24ee14177cc92046525e2659221d3c8eda16a02c1c5a83cdeb57e57b0485328a06128a3dc
+GCD = 86da1a48125bd9b5ff7384207ee9a3be82373e991581e003cebe55f2f3373cc880e17b3c0976ba7e8f6e52df44e712bbcb28a4c5a70950c799acf61b9f1267e13227813a64064f9dc7ade122fead8232019c1f2c4c7cc8858db581353b8a8541cc193679c622b7e73e63caec0b6ea5c4e0b8d25fa5550fe585565204
+
+A = -5c233d0847d3f2c90b25ba955d6bc532374a49294198bb81928fe20fcec48d09998a0cf303e7654005bf827671fbba7a870e722c3a3cb7f6500071d4312030249930536654901bda17d57e87d0e66633bdd7e81b52d57c00c1e716ba7e797b80d42ca68af1a70690259d27e97bad149dc1351abe8950693d53fab7b5e249a832e2fbed627f39bfe30397c964ea6514d0553aa015b996a9c8f61e2d72157e6ee6d41e321a226aabf16ff4cf18b82e844525fc93d6258fd33add533c20890ee81a0de4969dd87497272f78b56bceb7679186e777bbcbcf66864e6672cd43e7f29bde658f134ed8a33540f824b1656231a6634a011cf321e38d
+B = 106687a163800fbf94973fadd9dc06a81616f086a26adeea327a31e6b6afcf9a7225d7f2b9a90d839498681bfc857914c972bb1cfba240f7f09bc756174dcdce83abb32862624162a7d28c0b5a0eea6185ee8cf36f72115ec97f503da98aa493c7741cd96ed023b03ea765dade214a2e4614c56afef4513c6e0f2d29895e1bf79c34a99ef7a3aaf5f298b55fd4a194289d92541ede8803576847a9fa42cd183e33589e02bc9b6840efc7825b876cc39017e582af93ee5017bc1e8699141bc4fbfbedbf45b015d58825aba17a8205efc4e21e9987bc0844018ff82e4e17a83bac3e4685dc1e6dcd8eb220a70149ca7a6b6a94c81861726ab3d
+GCD = eec8d0379c1d4dc604252b182b510650e291b7ea7d54cb9af8156284792b9a6cdb9761769935b50d525c162c1440d0fdc34d78cb6d08c069f17eaac3f03d86071cfb61b297acbecb2265f2f24394f51dc50fb8db083b129ce6e61498197745e12e4f23f2b11b22e3880183e3a511e9d5ee3e4767f0aa6e193e4cf23d5
+
+A = 24b297b90586ce1632c35c0bd59f54bfe141f1490922732946cdb0c4d6dfadcdfdf04e59dac3382793eb43ae8870d16871778b7de20a6b15e491665d9b82d96418b124af95b3cb3b56c96d9723e247f46aebf779cdf968e9f070af14d67c8e8b407d1b32e70dce00f60cbb4e2090cc1c7253f1dc25376575d83d0d491d3a057a5d85914481ac1125542863c557732624839961c8bc8c7fc9009399023a91daad0432af4ac11a6e6c6f401d464422af00d41818393d9fdfbc963e000bb7a18ea285b93e14c74d5438bd364d5491fe340d58b39b1ccc22491439c049cd7553406f055c8e5a7a9026a60287b3a60b6b6acab9a6f50671d6f3153
+B = -2bf37113fb3ccae3ab5b8be2493520bc293c1971ceecabeb9e2ff0dcc7c7d4ce773729cfcf55b29410cd1fb73e8a3394dc6f5c1d34c54f3c9a33014e0295b669dbca794914b556fc91ee57f92c8e0c13ab69ee4b763c55f2fbfaa434075a6c9e7d8137dd4ce7c85ddd016e0cc6e6eaaa1ba381adb1deb77343fde7a43d0c86eb6f6dad0cd5b891dca5464c75528563a6db9e32415d5c9c667941cb3faf8c72c42c3a45d81a469b66b0b855d4407734e7f0b4fb1a00299e6c874f1fc4b42677c703fd7ac5541e5cf82efc3d2d71e890a20cc361470a23dd1179676a34642bc0fa4fc181171c704c31464f76802fcd009e34a3b2e22e907b98e
+GCD = 366296f2cbf8640863130c575f97d7dfe071aa717e2255c3472720eb1e24ec3771e5f91e5c9042abd43e1c885b520767e8ea931892b42a24623a93ecac3daff055c12b3edbc70126110919ab3a89e1962080a1deb242c4bb37f981e14bb0b45dc3b4476021fa6632621f095391dd9e62a86bca19f7b3f64f8fbc2aa4b
+
+A = d8e8e8200b8e634171208e8562d1a5e1fd7a3bcce95cf4ef276671dab8ddc3a1d620fc5bd2b6f62a4847d7b003fe5bbc9dc206c932ee7d156798e66c18418cd28020e9fc6887d22d1dc4003eed7b281045e083fab336bf85c79db030b8c0146a03832860f49abdf1b56ca4f2a4aced560feb7a582d1950aecdae54e4d3842404a10b90887b46396fe4976d0354c18060c1de5e93c7e8eb112828af35b844a5fb17410852b6071930633caa96c8f5a9c3c0e5f24964d43067b3652fb7fbd49c74fcde261334f3f18741cbb265842d21b5532d79bb2e21b954575a7609bb70fe3cfec2da53c7532cc7691d0876226cd4e2c3c33c3ab67f1ea00
+B = -174f98ea12d342c28988e3b6cd60555172f1b19b402ceb2f2b3fc03f8c0d310df5543dd4f7ca3fc19a4cab9de9f37d79a01cc88b09e0fd3587947397c53c1c92062323ac5d56b27da4a979f56786bd0954e0b79728b2b0c2c3458311efe8ecf54f4d354fb295a83994106a4f5343a2626681685fef69d8f3d81b06072a76dea2ec650342b67a6bf17e73fda8ed233662ce298f257e01116d94a37edc0d66b26869478888195c379fcdab50ef63f2d372e5fff7c36ea41eb95fbd8956b4a4a7c60e254ce2b1f86bbcd7e9cca7c894c5fe1d6a032b94f4cd2f8fe6b82e1b98971c741da9115a9374be711a91b47257f0a79f6405ec1e62911b80
+GCD = 6e023075243f3f8174f9884b05b0067f90c38ed87e45fc1d69f1a68b33c83ff47ec9af956121c2579332037721570c5e7d5e59261b9fcf9ef22b63965662614e0b47bca6a242b94030f291e53c8b7210b5202fa126dabf5fd14529e53600ade873057c82ceffd2d09e0081bcf56cac97070267c787e4b2fb55100fd80
+
+A = -43fb1e1cdb240d8791a0287039ee80d6d5353315e87312539aeedc08b1620f76fe55202de1f762dc3319ebf440e3aa4a9edef8913866b048622a428bbad1752468dba59d167a5ed4a483e4b373e32d137c1901afd969b1ca0101827e7e51571fc1297f35a2419c75e33bed6d82581f9b62dc01bf5e6fbfa3efd14b6d5579c015bfe5ad71adea276bab05c33775ef3fb6fb555c3acaaefef1be3d0221e4e2c8c43a170dba23cf2ba50c91df5d41a69fd8d94c6f2160311208885d07259e90c81c1cb1d0ee95dc5489ca3fa8c9d621f2ad3b5e9022fca04d97772e413aa036aef9f852fb9b43d9c06f8c77c0b9c4dab12663949489e8f89f5f30
+B = -395b2b91b73aa230bbdad373b25448d1b2e931c8ebe6429a16e3230c5fb24400f71c6840309a7b950b493b1fb745dcf85365cdd65131ad0d382ca8c0a9a764cf6f91cada266a1a39626e2eb6f83cbfa5013e1ac7ee3c4450428317085f8d7df15d9c6f1a5744cd6a9913d00e035bf23644f6956933c32bdfb8ba63f467f4b37aa0223b6faceaedf9c17daa7ef1941f604c261c1018d5e832f3f88c983525421d1c8d268ec826660c7a4813faa434d9b0c12f7114a4e4ea97f8761365b528940a932523cad2e9b9c3131f5e1772af9667b1a27a8f31ea034150f2f90307d221e270b46bd474e6b107e2f16ae856bf5e60465d8e0b42020d9888
+GCD = 153ad2a1f0e751b235d0af57a8fb1f90b11cb628f83812641a8faac3b06040c6118fd75760b26b94ae163112a455d042df4bab66b3430ba2b42378a86148bee151a9b74e539d8859eb8d06cc89ca6a9a1d810662bcb272081741cc38464f97cd8e18349ca64362f7e47d08b6aeb8f9902681259adb6c56fbdd3fa36618
+
+A = -1a38c2c3dc10e0ce1170fb14f102f9757015b1a08c68b182045c6b733cb6f54f48de89f703777320e666cc8ce955e4bfe6bde96abb7a144496cdd3faefcc41f06e599fcdd0a487709f057c9ab1761d0243bf938b9d26b1caa7c057ae0e61d4bd819ce3d87322d1fed97070c0d6d83f5c64352095959c5a534662c7cd103f1f05fd5474e5cb3efeb664fdfab8ef75a04cd8a5c615abd58eed63945db507fc2d066dd00b8823e4a4ef51747bc3ca88dd82c8d5841515ebe9505d78ed2d06f41db3c36a0532ecbb1a022e398aae2136890e031aadcb22d8740b2916bd1067e4b3e72a30942478912c39533090bac35ed3942d44590f382933df1b8
+B = -cd6128da5517dcada7eaeb3acd1a0cdc0b3a5c9092ce1666700308cdbea645a9c6510fbf9b151289ff6858c3edb08d935dddda192db4d0d59a4215dd6012e48b9ce65e6e122e0a88e52d2faa74eb0a3bb602772261f8a34e611f439202d0cd53f2aad75d881cab93abbcfd6d74d7fcf02162eea1ec2cdb8bac3488190493366b5ea1998b1feb91335b9bba8fda20d9e01d8223809074847b9ed8fafe9183f0632f2658e6ad2ce6e5349095df6a7f64d802c1eca18622473aa04143836887156a072a32490e8f1ae088e9e473726c57690be60c1b2be1453d954bcc35d7c08ca96217d64494f6226d8496a6a17d5748843f3c98c59d529c8000
+GCD = 1ebf297c8711087fd27e2cdfdf8a3e1558fad2723eb59edde0b93839e6cbd509dfb5710334977e89582802b2eacc6d7a90f250819cd239086a75f309026df80d42e7b83df99f6208cc90e9776847a72cb9f000abe93148e003d0751bf2f2e4ece6d0afd5de554ee526fadcd1240de2e11ea95ef62ec640eb648a4620e8
+
+A = 3a60c12381b876a884530caaf9008852d95714bebe29cc529c87c1cf7c02c1b033629fdc878b8100dc30424accc68bb03ea76dc61aef5b64633e2ada58eeb6b59d9cae96836995efbd73204ecd37a5b78ed580cf947124051367ff69c41d680b463bf60acb0576c3160f7d9c4c4bb7df99cb111f0cd7ee9fa29653870ab98f00ef67aadb0cfbc9641a294da31a574cf60f36501da3a5b9a047f6cfca111c9074781d3baea46871a859425e90c99bf3c55294ad3af646d1608463ce4442b8ba0b298c89fd17538082e2e94b25365592c924c094d3d3347575015259e7e1ae86e5a98e0bbc0e3b8a0cafc640693ba9cda727d79b5cc75397f1290
+B = -2c1812bb196d3c11e74b2d41d3be69a4fd90f4b2ae94c10d20ea45347a34c1ebf32d916d06d658c2594fc56e0458eae8c8d245ceb58437f1b9ec1a079b012f71833436c79b085f685414b71559bc4f23d225c8a7229c7fbdb0521823778ebc48fb7b8107a3f0117bfcaebe102d0be73985f678946c362469c3ade21cf9e6f2c7954d2eb029b3905cad470fd4c18006f79c7398096a375ddd50ff1270c1d39d86a0745b702904a8d5a059d290e0b47c8a3fcce23d9f7cb456713325433e4cad5e676e509f4fa576b1996e30406e78bfcbf3a21a2ed8ed0c0a5ec93ffb5b797ad734a02bffd15faf348df263e009f1fb7be15acd24f81ddd16a10
+GCD = 2383ea40aee3b5a84c5f299f7de0982ce4bb6e78116ea27572dbecdd261e7bff6d8fe49ab783c4777e359701bdd7f855db7e386c18f76f521ec0ac2e4052230877c7dba2b40013f7cfe0678702bf604a4f19e70327d4192a9da27e61fff9f8bd5e7bb8f3bf848d3e3656d17c681811da5520828c6d55dd33d9bbbee2270
+
+A = -810c4f3a0d42985382437794719b3775eb46507ce1cf463699eda8cc39052e8c37fafc770b5678b6007654169886bf28b9ed4ce1d6084d57dad947bb04ac5e693c9c6d7daf30e919a32d089c6a9e1fef351971335326e1c70bdd1fc90c639d54da784915f8294607eea06f452a6e0119fa427e5838abcf3f02bf13401e4c0b50305a1bd3212f22f43a9ecfe5cebe4aa59175b21c4f3cd210449a5a193f880a55cde9aa982d529c7af6f75bc5adbc6006357adacff724a723f3c061c19826ad0cf78dd80495c6ae41f89483aca3c00dbfa3675e5a20a8f42446f831dde044b01de4bf87e4aff9953a6cabcc2b6d07917b82505f6a1d8f45c1e6
+B = f7925292bd9423ff9bd3fc5269c44468fe187750289844265ea6673f29560cb35e45b0387d81860941e65045888690770f47b031b382f440612a63d9e2000a852265a15adf5f740ce5f04874acc4e6d535c0b40b33d4d85906e0bf6b01d40dbcc2a5f9e39c65d224fbfc2918ff51085c1a596bc96451e0719ce0f9254ad835c92cc154e6479866664ac30c5f19a15bd918eea00962529ffae65e8aae7c3ca4c59b1412b3a0cc0d4aac5b0a0dca91edf122f9a8d998a6257494d76e0e1dc25670cc1e054957928b20c9448c7c2c8526039c340443e4d9ec6109ce90c590ca4e3db91acff3d02fed119ebce973aa19ca28b65984c96da84b0a8c0
+GCD = 6bed8ee5bfed88c05db1395562042900eeec9df91c1a1c31a3ae436d89c8df84650d46f741671d37c30bfd9e39c12fe59f4f7daa68d962dbc2ebff361b88d52a300f14f460855e6c3abbf6e0dfa3f0773fdfe3ffa0f7f8a372aaab4d7598ab5cc8e75f783b6cb7ed5bcab37f9ad52787da39a9f20fef0f8d4b0317e31a
+
+A = cb3ba6d6b562d85c2ca514bb46d7f2885cae440929c5fe7c9bd93918a456d6ab00b0cfd9de95ac396c307e11a94e43945273bc6477d7f40cdb0669a4021e4457a382528f94184dc88f8d88220ab74befc0055062cd529333af187c4650958f88e159bd5ad0b22fefead6dd13a31bcc047cbb058e9d7935cc02c3bbfe3a9b40767abfd75966c5a2c0b4cb20947b67ff2932265f99311ce121ea1066f2e24bb9368b9d95419ca62d2d4678d05816455283b2d3cf00456039767c8003d0d88a49803fd6fdab65b613c758c3b46670c9f25a15fff3e53404b07fd67b8ab6b4beec2840e1ca6fff0920cb251ebce05912b70dc9682b58d846371b72d
+B = f7274714312e12983bdcaecf7b89534a3e84431c6d7412603e7e52e60d8b5ea29620c4257313ea8c730fccd8941659835f60f8e83300c5d79f5b31e6dd8dae76c03f684ebfd3ee982beb54456cac8e5b6d57334fc09888b6eab248f510c582a11dc75e1bc1fb1751563d7ccf67eadaf7e389ad3c84fdd5e112595bdc54fdff22d873e6a1c84d5daaaa7256f355ea9421a064b043877db429ec8b9cc927bfa0ff8961b06d13707117a0207affaa0a7cea93167aa0fc3e1402ea06a133767443f845bb7424ccbb01fea1bfd4576675f1bdc7693993e759ca4848a826ee3a5b97ad8d85e9e23fb4aefb02ddc82942d9ece28051656dadc8ab4f73
+GCD = 9647d4e8e2ed5e97b35eff12b62aea2cd969525059351419ee6a1c50f6f757124e25aa83893d7d52edc4fe93d31bf217f50018209399e1b483170df20f4cbdcebab2c1ef375955176eab1dfad10e578cb3539a22c23e30806d1bb0b7d296d6932946b7f319268d7ace05c3c10b2ae7bd7f64f8b5760f6177ddc7bb6a27
+
+A = -f7e7052386dbb5c4f7e1b4ce05303f76b4ae7eff683a875a64ef7991f533f7a22313b06a1c0a6a719db8fc8605182e8b327910662175c34273efee4f765b3088e4f3abbda45f72ef3557a88562a873ccef2df5f822376ed050d323015835e230340667e24652c7988e890481476b83bb102487a60717d67125ce36ec703e1029761db10d0ed7fbfa2ca4deb98c3a6bcccdbba32786f4048cec1501c954dfd67696db790123e72fd7296790c59e4cb1e9c10f4eca026d216172c535c60293c6dcd8a2db98a6d832e004dde753ad10a84b5bd5b21b722aaa83f75173d5621388e7eb4e1bfa5a313ab172fe2a2d152bcc9846f3753eec88931cffa1
+B = -850ce1823dbc588918fe52145302f42396d98dfce857d0c8b7d0293cd634a22d2c42899d89f7ea98c50154d3d035c7b31a07e9412a5a6be238312738161451bd312c3dc70ed866afe1bc302348303f4427717486e82dc9cd2707ece4c7829d542fb804a9d45a90310d5964f29920031c7fa6c780d3bce2d6a78d7688f61a9c60de28101fe12b7cb728c63bc095dbdb95df0993a2aeee15a0210a540d3e38242937b31aa736886b31a7a8fbedcb6b026cf31e09e979785b57f199e0974fa97682cbc05d0eff648cdab4799ea4e81cfcdb1d46ffe346252af5f2c2b670127e17bbe0ef0060a00feff840560066df531f8dacd8163e4bf882294c70
+GCD = 14563bbc87f212e3a7255841512c03a9377f720083a8f0b6eea89e23cfb25092272c89db386eb0069f8a34e14abb5c690b0396e57580fb2e15f74b02427d368e1d199c639284a1083dc96a0fcd904aeca705ab939a14c8faf58fec37e4b0f93656d8e10d4417af9c7706e9b7dc0d4f0a945fc4d481f1a64d80b87d1455f
+
+A = -5b41cfb43547a86715f9dd09d281fe10ac08a2695843d073c23375ffdee9402de37067507346861d0fd8b589be1205e27ffef3e7fb9119be3016889eb0158d808990c410a740643f25ca66cbd2a513d1beadaa69336b2a54382cd7c79c253082c03953644e3c3c1517f62e63227057bfa9653c908df32118e018aebf7cfe55ecaba8b312aeb9a6dd7fa02db1972b616f837b53abc2afa7ef7658eebb2d36b3c32425f079078c7545e784c4498c4fc4643af4792c0be12ee01d8da36d287bf5ba0b4e79906b2cd13e2e9f576e7ba6f51d195c308c148fa01774b863dd96b40b91ae2d6b9f11d89269a6b3c9e3116da567d842e1efe3f785638db78
+B = 2b763a718d77ea5e538bb0beed96c1920e7330afb617c51b90364cba5dcff6abb197725f9ddfcc6af89808c183fb4a84968f2b9ce89662441da9491b4da4c4a268c26667b0e548090b035349691b6370831a07d69bdaf370b072494f21d705639419ee02ea0a288594d0320681531ee87dd92d21037610a437124cd5e852d1c32b1e51257bded9ccb7b4247497297fb1dbc6e488d3d618c781fe14985a41388be05b771862d2fdfb966fdc200a4ca8f94f37230c5ddfcf3259584ed284f4be8923b483a74560e2fe1e13b7b30036ba0e64e496851c1e2a0944e4df7f0d730dfb4cc08c04a64d091921b1c6c95be3d5674b98748c16f1ba73d0da0
+GCD = ce2c5be9890f6ee73999e1adcc248cddc5fd7ed739cad873714c99c698339300dbd7ee7f7bf40af301fb8d0f29d151a4e27cfff1321f625b5db81f798c5c423d3a3940dafd9fd76903882734292dc74c153a508738a0c5b50361f75a1846182902b8e5ce0766e0ee8ef58db0cee43cb6c5dc2b41588c7e928223b7fa5b48
+
+A = 4c333fda7185d0395bb4604cb89b0d369d0ccd87fdcebf98dcd4264089a5b7993434f830be604146286e529e8130986c72c9271966b911eeee5da67a6d579343f49fd9cfd45f2b405fb4f8b4a7828b4b1451ca3f0d0110634d3cbebce17452a622e2de5a40e94c0b199dcba1f1d8bf7a32f2fab56d44d8fdd17c30b15b38d51f57b869e47562a0e35c090ec4cefebadbd3831aa63871cb4b9460c2683c8d518a5d093b84ed19059c0073fbb19aa7f0d60dfd0ad853e9f05f147069ea351400012f217ead887523c5f5fabaae264d2c1ab5b9d3a5baefceab630bd6c116d5a00f63d5649cbdefabc6d6e2add3eaf3c492d9a1e1d1fed782e81ed1e
+B = -657d9476c32154321858a20c321f90c1f359d63d1cc3add45f348186f9a041efea0be39b92e56297f377a1b7f817092fe4f5bd418234bcf4493b9362154f9a1c3eabee938d441709ab66b01863edcc451c2b0b837bd8790157d602d86b3616385be19632247195a0bd7a786ee5937fd93891369463cfb9dc8f7f5b5470fbf43188bbf90d25a39f4b459cc3e5681ecc9e80bfdea05b79529231fd35dcb3555e2afa5b973fa713452f26a3bd49c49e625c35214f26d6669b48b97d64ed905b5af6c59f509c9f74baa2f1180cc1c0563bfa9e9703ca7833b1b0c27171c34e3e69019447dfb2cc84eb905d5ba0540d8f01fcd337b92a1c7ff686b949a
+GCD = 487e5e7f8eff78fe755316697b182e1771aafb7357b90d98772fff9db1944128afe9d261cbccc716d634efb9239f7990ecc14d165197c6aa56f1e20728b05886b4cab923815c39a9c8e7abfabfc5061ecebe29fc7956c7c2a0bd1120c13cb416d58f0764f9647ebfcc908f9c6d3bdc18de837a3a1e594398c26031dcb26
+
+A = -29e8fe95cb58e50a3138565125f0350558a33e41824f9678eebfda4418e67adf0f04af34ae8d0aeee48d24c1d7d1e0857cc57f86e9c9765ec9664374876ce23635a0678335a448e586e8d2ed2ff5fb7ab3e4e199637b0dd17cf276e0dde4cc50110c55249c71618164709436340de9b3f36c86fd2fc8f05b906bdf45c48d12617aa620d89af7141e6b7abc7e73a0f339d829290acc3797991f65ae97de55faa1040950732778e8f7ec1bd11c22d13dfca305378c82976690244f3ab65a4b0a139e7d6539044534cdad042546e8cbd4c27f3666a188079adc867b2c3e13d2e03ae5bb2bb67f737e1ecd3e2dd02c2bb1d43518495038aa46fe85efff
+B = 36503c45de4fd1b1174dee35b245ff8c51bbfe36315688119e1a952cd301d986060c30114870d238ffc6b81e037724086bb2a356f956507f5f334ae8532146969405af2e3fef139862df472a51b333b496d35800cd1258c0687eccfda1d7d1c6267cda4d999a7433b798c4c8aeee409b79ef507ed4871ec6a1b5356b11d9aae2c702b6df3d7151ee6ac29a7b381adccdfc441c060f82ab51bf27f8fc89a17b4d4a08e54312638bca6fcb8067b0d66c4e1656afb56f87c2fcf73ea7bb59a6748753ccd4157749a962bab9847b6d616a188625ec539089f13322ca87f3f06faab680197d955a46ad5b8302dcaa53f69568ad3c4d6f0dec476bbc63f2
+GCD = e47827dce4ce75d7de3eaf561e2b7fa265fc494f375a1b56ff3ea2dfbf4738f5b0c219fea1a411e15530240de3508767741ea34e9ed738078ea6b0e5d87d607c20be517c65c1cbf2d47cf6a170c54cc235b2ce79baf21c6befb5e40b8b09ad0d312dfd90e0d2d4d508b75044a47f04537a6d4e00211be9d6b6f1a80db13
+
+A = 364fe56a3f151a386ac3fce6c73c036a2e376a4f1a6c5544ca68d6bfb59250ec4a99557f41c50d6b0b100abc2ab464ab946877e74a0b39ed3869530bb68252e986e8302744ba5be333e4b75189636708683bed665a235b960d7670a75c9977be943cbc4d5d8a4f7ce7ba061bf32636f1d68e00e75e7dc97b68034516dfc7a36dbfbd9106012eea8646ca4d1edd6cfec26f69504116b2fbfa30ce1cd920773076a441b2c80e9aab2c664d727e381c02cc36faeb26cebd7fb7b0c459abafc6d82178dee21cba3504f52892d5bed65096fcf7d384d734c2f2a98ab327916c6c6de820f6dd30ad14bb2fc36f5f3d1390bb0e7a58e96c135e9669d238fd
+B = 14258be7d92a407191bfa3404a64eaf33eec47328c1ece51c035684c4309307892e7b56d687ccf3a6cb3595615df87708628b9865294725c80fad99481b92dec8929bce51f69b74edf2377dab4f82b4e8a5fc668e2918f6255f1a3b9f7f61641185496e2aeac0f238da8886a3e575caa4f9f773fddecd8d8be4703b59834cd6ad249fbe6677e7e5e729963f725db5ccee116722c7df5da84db569d791d9910ed7f1737411dbb4731da03fc330ddbd860cc94c56166c88cf097c11be40f63e335cd3f9d6aa2640f9e5e2dcfd2463b180aaf4506e170e8cd17f6c02eb47e95d62c2524569a495d1bcdb0edcc03700b78bb3a9c44363d0a5549b8e6971
+GCD = 178532762bf4fca54ad2759f52f4e90ccff079691eae2b62c7c0c12b4e7433109524e644f0bfebe49be19750882ecab0d14738ca03b1dad124fb0f544cc970f5073e9d37c32a1edc271325158049c49641d49d5e4dfb6273ab9289ed3003d355ad8a46a910e5bb66eef4815f80b75ea232a3205516bbed5e991a64f66747
+
+A = -54591853cb9d22aa52f313bb4a590b21fff4738590be6607498520c9efbed68e505913796774f9a04c6cc623353d66318efbf15e61184574b7b3fad7a4a7ced585f031d1883e676d3210f4dd0dd41af8b14db7db4f575176aa0aabbbc019be7965b9fd2d5f9a30b9071a8062010073e157089eb6a930e8928420f404b103a6b4e617fb34b208a7274fa1c3b7e9bb0a1c72485b4f98473fa227691e94bdd328ad27165af6cd554060d8694692a17fded10a5969ac340531536dd6ed1acb0589693d7e941b5695267376018c761bb557c06dea2b47297c62e455532d8f3a12889dd19329893e3905407b5cb72d69552735b12b6a974546ebeb8980490
+B = 67462b36bc44fc36701623e79c3195c421bdc0cc729f304de09853bf298ce395eaef1f939199371fd1978bff49cf6fdbd6c6032a57c1aede2a1617c69e21bafff4b27335012ce03e6900d87641c76f8d65c489a2b7e384ef35ae6a79b5769b67be6289116f4b63d3e9bbec74d5a109de9ad1a3268fa176ddc8adef0b7ff54b1ba2054860c48716daa93f9bc1599cbece223f59cdc3adacbc4f3f706cbd54d9ca51d56a0ac78a723c781c75749b923de9a30f4436d1422cc7e9aba819d153df53a051cb22cb80352062520c88a75873294a736cee191a0789a362af0e0008d72a36f3a6340203e71be92a73904ce127ad9c90df3d94ebdc80d77950
+GCD = abdbcecd245602a478419515209b4634d4b61214afc09864dec017a2d3d3489337f49e352c613d567d49d2a3814fb1c9b63107525f73076cee0d59da82b4e92b88cb8d39a3b654f4b4f721572d5ebee134d77649953c0206cf3a123ed25b2a8fd002cd52edb314f4d3004daa4eed579ee7988fc43aa85a0785dbd84cf450
+
+A = -5ca3d3caa9c2bb4c11a489a97dea16ac08744eca0d3bfe6f98fda58a2c85622bbaf6e525e79de8ce28edff3e2b48c7df185e883bb74fbf08a2b81908678098725265db7991a5f109a5f09d8d3065fd1d7fcac927dcd0a8b4cae4afe94fb441a1e060b5cc12808bd50b333bba611ea780911570817c62a87c28f7ea8744818f6eee020ccedfab2c806e186a05f76e78522adbce9597aced45cfc05262ba34b340aa1fb165451f785804d2830c04f106b6ca05f8c30724166c936bd25fa1ecb5dd8c9910bac776cf1a0c7bcdc96678bad35442630bb55841669bd48405d77e49f88e19c4fee4d22df2c2ebad1859f9ddbb252dd88a5ecbb3eb917959a
+B = -11c01a8e72897ce99f746b170a38d05f252cd4071f6f0276ab83a1c3e74945740a3d2e4cbde6e25cce8830147f3f09a776a5ddbcfc0889792f7285b940fc0f0a62ce8fbebb6881bca8d02e7a1aac2b911e25809af39b10f7ef3c3af61ca6ca0f3cd76a7ea4b78ed29cf907eff9c2ea57067b7db92ff23dcc7e5e3b1ffea31d3c54590c547da6d59e0370231bbf0537715aa0786ce71bdcd3739433f835c5726778a6f02dbd75e714fc625415b82db00921d81dd2df7a043949fff3550f7c9163539cc96dc1fdf45c033e8a505238b64658bccdc722fb3d6c782d4b65244a8f70ed18dea697ff0c42f6b46c0e241f3d5bd139ae972065c5be2f7ca62
+GCD = 9caba9b74673029828beadedffbc86d58827d9f8a9bd6060d54232e837787aba5c5728089cc06a111b0e987299532f0e664a8491198881f276510f7077b8638029250c78162328909c69441feba6ee2a58886773f77485936d05027b2f0fac2531d3ef2c0323ff11771848eaf424258f1acbe71a0fb0be386c986df2d67e
+
+A = 3c85eca05e9bbf46f0e89952d56e6927e1c8bd815822864127bcecc9c565fc37e82548962573db82af0c8499fc54b0a6cafc902a181877c394493c354d7daf9fff8e653009018c347c30cd5b066e14911a162a1c79a06b3d1ca2bbb648aa6586f96c64d70878aac3b3779cf820d2123a944dc3d40f5e20aefdc13c624bedebcb35c09eddd2cc8f19d7cc55e892574be668701f86088bf46f0ab7bd33737e0a987f21bf639b8a8755fc253d518f1511b99901a2654c658556b94d8e6178e82a217df45435dffdb3bfcc0be3eaa6c269f46e3a0b5129bfe2e3d7034dbcfbfbb740aa2386d912f87b9ded687b1e70b8e54703feacea8bb626a61a991d4d
+B = -1add0b26e9b687958af83ddf86511e17c29457b772a5e345f8bf8dadabe916285640bed4c4e5f9f336789918423beb9737f7413630c6840c6b8dde720394fd542a2539522f59e19dd60dda517b6a0cde042153fd9b9b36ed517ade3f24434ffec7bd675f244e0eb10619d8e31ed25aa4fd55146622f2ad648e1ad8b11b270fbfb8b1db0c6cd00c631a6572521c803e6033c24221418474d1b35a6ae72b4a47e069515d21a77e32e1e988c2e842324772a4108a8500f4ecd5ad34637778d40e2b0cf4c0e5d91a997cc484589f609f20d5abaaec93debff5b2d9654c7810d9bb531028391eebeba74e2fc52fed7d3d18f4a15b71d3b1b68f7ee9bebdb
+GCD = b9d5c1d9f2c94760472596696b42bf1aa80a23eb1db9bf9a91bb7193709751c6d3c1a98b463ad81da903de4f788dc20cf70e8d6587be878c2c32b0d4af741fccc896fc0bd467e6a12f90fbc5bc35e4577cbbbf95d61dfc581f5cb2008801c333d9978f5b6f859df98411d00780f98e3897a369b1405508e63bfec80de727
+
+A = 10976e10f74b6cef7dc42b7b97c8c41d20cd8f65381e699c0a9599c4e468552259f77af2cb819564cad6c01cc9db16eaf0b0225d9fcc6b4380b2ffda1fdb20505a452872d4c48c1a6bdcb7bc33d60d8b9bf181d0d91b6404a2bfc39e596e5a581d9df57e6326528cdf8ef2dbe1c45aca8e0850fd419fe8e6caaba74808edde2f6e24b2d590cb26e1bd7abf5a14cb0583e32ad36f0ca4c1624bd78765b186b7b69bd79d7afd6b81b3be9b6b523fbfe214d80f37b3fa561638daa9eefad8c2547ae177a3d166d0c7f8c7c8085187c64f49a158d9979da48596eb3a88e65d4ad87e6a96629f33157856cf463bcf89c1edfa91b0c27b566b8a191bab12c7b
+B = 27c7ba62ee49fe0f0a66879383431209da2df1685b5d665df1e53595caa7f666e51adb8c2fe8be0c241056ac1ba2377b60583f7ac73cbefbb32737eefd1fe407bba2f270347dfdf24c3125cd5f20ac7461c042a37fd744608f80e324ed277a772ecab1928f4a31228b486bd5843c367afc2595ed0ed2e48d31d35c09ac6565a996a68bef9dde5cd5341bfef9a5384ba7c942dddd3d833adc3462f54de47e82a95908f03dc7e1c0e40b29d0076ef6d24ca9b214ebaec801a662eb5f90e62e58ad8a2740c86402eeca2dbe57b1cddc121c8ef3ce749c8fff7382fe8861e5df07ee465c32efcf49579e4f60d002a695641790a120db14bd7f671f2aaa8a
+GCD = 10d23ffdaacafcfd9a481699874fd91036cbe6d5650431124a81518c72628bd0b08400d893604bf5cb91406e4a142d5652d14a816d2a33c42ac6f926208d3c22efb7041943fd42d278df0a774692b97b26cf7103e53fdbf880ccc2be0b67c6516273db60077e73185c6f019ae788d7961c82c69c726202b27fb80bfb5249f
+
+A = -26c6e43a6ab963dc0d4a63602e05d6e41a18ddb20fdd99519daece7c064b31a087332b43c543a80d1e0c8134ec0a00aa2a48b9858b4f75af44a2f3391a5b3b694e4288ef83aef02e4592822c0d82a09b85183cff21e673895aea3cc266741f6da4e0a1422c0f11c62ff01de78c43c34bc75271839ccb736084faf24c3c7e0a9facfdf94306b2f466bc2da2928c5b7f5888205263ec1fba518f3df25bcb4d99a1471a26bf1f2401474a5d2b6ec9a652de05e95fdc0531401ef61b0192f55590670171da0bef1874e211cb487daaedd78d9342f6b7f4e7a4018629b6f2928b85014e3bf5638744f6be525eb8e13964513f6328eb522f40333f6dfe1354a
+B = -59547045a76027af29eceab178c00e53218a17d859f64dfadd1b0849dfe15a84ef29b9c19881d796ee3751a6033a6cf8358bcce35534f50291737e097e4c3ce5dfd28115d7feda48d6dc586927b77afbe687199d18c427382ae943ebff2068bc0f129c27ef99152478a0b576de3fed1e4bbd3534353b9c432e5b66a3dc3f2dfdac04db230c21ed046d2bbb0d670e919550eb8cb896d989c920684cf856090b61c7de364171fce03e9af8e481a900b3cd63c305a556b8dec1caa51e2af20c16a40d7e9f85688cec02691306ba0daf1af7f9e315087b256f0150dd9c685134326462fd9bdd93f1a53ddf70f35c9ca1d1181a915d47ddac09804673995ee
+GCD = 11a8396758a0a66b022cac4bb51219dd30c79dd0c8631019bff67fc48f2dcb76cf837e32577d148de45ee9a4169e2055e2e1e9aa396afec4db1a393cf8cc6a1f1b3bce7fdd5538486120e8a7f897c6a3ac81c998a5102e0d7208cca8acf72867d8d3233c578aa3a8472f3ad8377eee1df357a343a9c56a957d66bd7049f7f6
+
+A = 1618626eba95e4576b267310c93aa57f4e057c9529bba875822baf8385ef8ee2225d817d94016efdaff0537e4c9ad49cb1c1585695de1558811ef7fbd4d028c935be8df458a7c49e8d51c45f0db68084488e0ace24f7d396d71dc3b471e0c6aae03671c67215b5c03fc1556bb1775eea131d7dfd54e9053f18fac01aefc5f6d0ebf684da647112596a214f3f24ebd52fafe7a00a490786030a2b4c84a84b054589244bc6f2c344d70b432e6d244e08517f4f28346d3f37dcc8e6ab7efaf819245fbdb27e07ac452b0a917877e42abdb90f3c14bf57b5befd34fe731979b05f4e645b6364bbdcce0e62f1e4cbe2254d065c1901e60f87074518835e1820
+B = -193f30173ddc6bf69de59ef20141273a3d0476a962ce225ad415ac13184bba80878729cf092378aedad5903452434535f275c09a4b1c01d245c5451a9984565017ce0f5d2c7d57136ee03a717d209a252c586c21b4ea1cab98f2a000781bac254347b6911b8cde726092d022322de5721cd06b117d9f3b329b6283741fa3791f00094575c26722606f1bfe1bdc6d5ffd00654020731f3d0f4404514b2de525430d8f0c577b16eeb90480906838e78dbf2afa90646ad9df7d7ed23c0cb87e3ac1ebff039a968df62bf3ea5bc7448cf680fc0ccab3c21fe298f89b0842f25e0469db4b53deb8c6c4e8d327ea1e15d3aeedb4a533a7576c390a926818520a
+GCD = 14fd868582aeca9dff8f0010a0bc36bba0c5e20931ba5d9deab02584beb41a06d5a74f0d299dc6fc8399163e5f1dae3b86f09d334692917f7b02dff899adefc375aa9f282b73d4bf886df04ea04d78c93b793ee0d120d98c05e916577b4325ee352d07e10bbe3f487fa29ba402f499a0c415ac1a8ea1550b410f09719ba712
+
+A = 61ce4d75b826be6d9cb4f2df8bee18701855af6f2b69004f15156f026bd0bf067762f29631161294fec2a72d0ecedac4aa56c7bc5a7eaa8c5587299c04e1f08342a0a6ae2244e90961ae4ed086da0ee1781e1dfa0f1cdf66847960e101b87ff2d6a0d0f4bb1a5dd4988fa9b2ea7f85082dd62f5ec4f4e90725e264633186b0fa538b2a4e2818fe894604851c72d1cc3326e6b0480547a7f25cf352b90d45604044fdaf840c96f290f25476dbb580dded1a7c88ca3dbb686aa1c0cc1d9b1c44c4d4d0fa2f1b47c37ad73792ed004f924bb7e53427b1d680024c9cd938ebf259573732081f4b2db84662340498dd886dd280e2343ca89201fc6ed42877
+B = 3cde6dbb22f604cbed4856a852d8c9d0341e05f98b5c49e4c5baf499fdd9657e40b058d36d930b73019b7a220dd9cbdc833ea2583ce7520245d5d38e2ee8d723b1498ec1ff9fa28a697affd5da6cb966e4a2d4bac3c98143b4f92f1f1ff90a32c08ae4001aa25f7e05cbf112d03eec1c8075aaf0078f06d7c21ccfbcc8f328196ae1b8f6ff2277c7eba7dd50c62cd0557a4447b435966b8b17495062806b878747dadc75108329225d13fa7752101cf7f1af841d4c728ac0f0cc5849d5ed4227fa95e20f653a5f237c7621495f7dc55be440f47a93b265742b57c18794039ed37ef27d4beca8b92b32cc794f2e22143b822b181a2083a03b0d5ec20910
+GCD = d4d9e617ea32e621017d190bb8185cfd688cd3704140033a28e09a0150f3f88bc6d98a331d24fbd440b62fde87abeddcbede601988fe9bf9a6de75314981578395bf4ca25983b84e0bdb55983c4790430e02d22d103d96e9d07ced26f7820dff2ab2b6043237facdb64f0f5fb983f09d2ac007a9501e0c5792cb8538c2735
+
+A = 43e3d75c753e93c10232d0023f161123917d5ffc57c892111aefd51202f765d1b61d9a838671f705ef5a1e9a8bbb8306f785c7819d4382e3e1d31c88016d5c18a408a2f620d9eb040e56d8c993eaa5cffe90f80f5a78b3a6b2d35cea6b22c93dc22ac13231b054cd72d042d4c2cc59f891e49481203e605708eb7fda1ff10b89c063156c8520d9bd004a9301e47e68e22dd6da5710851780af104bcce0d157afe4ebefedbabf7a19a7f3f91321cb7ca9350ca3ab28050de50947a6b1c813c12997cd48fba7a70010810ed4dca51688de1d247960e998f21686d6ed929dd7a2f93a1107acc08e7920b10e1545dc6185dcc02edee2302e2e6a6d2c6577e0
+B = -4be0721e6f5e653c3247b0cba80ee5f13f674b015e6025fcd59e67ba9cdbeb37ff962d4875a8155e3a7a02fa720e49b19832ec245012ca5f3588abe013f07e62e9d486bb298e0800ef4fa78b6a43783f2a5298c4cf0139f3c3507cf5f76a83e03a757fd163c45d45308367beaebdfd80ca5eb73654d7664e432db05fbea2be9e23bf531c97d2833c00683621c38d8f279e86508668fbec72377f3255b23cc039c4353ddfc1ea591bcb7511cdfa24505b32446e1fe321ee5838d2b9d32275b2132764453d725b9aefbd5d72f4658b1a6d6ecec1717a94134a2d35763d530b881a0aa7a61269d4b68b96b5972b356995a8e3d1a500d5cf22d50b273f4846
+GCD = 17cb2ce9fb7116345f17f45cce621d9dad7b5d9887610976904fa204c757a060318b492a71290f6326d72ed69a1fdf06ca98c81526b4b889cfe67a71d6c6ac2f47b5b6cb01db4272b8cab35155674fec0392785b82ab555ca93db29e0163b099eebb83904af5e522416bf53f81cf3c5ba53c0ef9608c9c0167a4fc57ac9e5a
+
+A = 9c0dd4526642fe78ea9e07bdc7129d90966a962f8ed38d16eced6e95afcdd43ad016fce3369a928aa9bc65bad84f35f3e39c5b3d080e1e6f35fe5da2af5f9867099ee8f7a683ed4d7e03b71b3b9b148470f2917c27871f4b7aee6a948757b149902f65c31cb62725672ce3e33b8ad054e1878f2720f33ab9a6ec732abb1a6b5bc83017ad9158e6b52eec37a8dd5c804ed4b40c63e1c22ddd7efdd5969f9255b8cbcc0db157840e73b6a4badebc990a9461cf128fd8bf4aa7e6510381f7f7bad86e07d5d13a44c688c3f6a5dce999328fb1ceb933454fa076cb3e3b8fa65498e77d685b2a4c2a4df99d769d00ca9f7551588d973d82fb4505779a9b065
+B = 7314af78aef3b7b2c1502bfbfc338041b4a48c46733d853d5103d6c4de9521cd97b8a0655528075f9dfaddadc70b1d02f0c412537af49c759aaefd5e2e20a55a277779caf9b014ff93f3c71827c8eb96ce4a4b22de69b3b0bf560002b77e66e4f59a3167dfab7db8372328204505fb656d6cc222cd7acb30517b47e1cff8c9be61f46d092f8b99c8ab6d3b8051bf3c35d6492b0c75ff5bf7a482bb99ee85f9440a74fa95a29e69be36ec7d30c7d45c74cc979c935ae30b60b5719701d664b5f38c4d83eb70482798a24c8cdac93d6b4a08603129139f62bd57d7ca45c5825836b8b6407d7149a1eadfac2bc22a178d40492dd8338d3b683ecc9ed573203
+GCD = ba5e6c0fefaa102b2412787cf5fe8c86a49f0194581813d52ac3cf0e42b0433e7dbf808a3170ab105a794143e31363d9f1810a653bf20f3a4859b474802b2dc5deebaa2ef0a3403b4741df8f2898df8cd17e01bcd9ad631f401a3fe4175d51868ae10954e8880f690696670364cee4cada6b2cbe8c4f6383b94910a283690f
+
+A = -b1b583848c790a95c0c90297d7c7160af8d78ff34e8fe38d407745891d39b30ba01f7fa48fd8c4cd6c9e86656532039bf5ca29fd3848441ca53a7f043d2a808bf2584900c8463ef721d5cfa25cc67a0d8efb20b2a608ad9d46b96e636c5e4acdc3a2954831bfd4cec0843d5b0f65bd0af9b861c97d8ee5ce0d1054bf1a8f5fd77a1420b7f14ac8f7bb9883cba205a2a1bb370011b7e5e5be963f41c2b25d3b475243fadcdd1289e56ad79791e298f80596e959527621501e85776ba2be88a33e8ec8a17a6be37fd7150f19acdd62978f2956fb8192b1eb3a9397cad9db1cc1a572d404aa99dac82d88a41df8c42db063a8e198d8df24524b2508f84cad0
+B = 2e8a44d9ffee95f1167c210688f7c8d71037beb506f84978cc2b19ff8774718a28b42a49a4d7f5d54eb72819bf232cc37ff616c69c9262ce5739fc1aa605036ca6346c4dddbf33c52403e1967885bcef716cd332382e043e19764aecbb2556073d45b0446b63edb3f396d1ccb927e6a6e6deb7a3da8b00d7ae86cb9c6ef9f2af5d789b69b1606b8b2977d2cb45f04ebcdd0274e6eb84c3b4a663e78d98c4db4c8424fe0239c8d2c433774222b7c722e8be725beda55a2c3dbe131e40f9946b0554c2b7dc4c8568b46980e70ecaa5075ea1a3a7f61e9e76fb77005af77e010d49df0b08a32a332599a86f6528aee63fe5b5155198f39f85ed96e09625e68
+GCD = 46fd5bd037c89fbf2389ffa12cb8afdd90ba2678c6092dd51694944de5adbc5032998ba41ab6e0d2509756ed97e66b191628f1d2024a0ac686961ba904332467af8d3a957a1067b1fb966d944f8a3b7991ac0c68e7fce929fd6edd17f8e5b8549459b746963ff3133c4974857bcba0289d5144faf1ec8bc9c9c11e088a0c68
+
+A = -5e0722e97367ac2cd30922b4051a878138be5f3a3a156a654d3ec6c6f711571eda12b32cd44291e35199df82074644fe12f0c950792caf3c7f577bcf5141afddd67b394990af0621e3866ae009760b5cc6d5aa4c4d369cc4c462ca8f50cfc2d6b3bb4f931ecd48bc30d62f0d4905e3eb5e0233b3eb558056bdced147afde5f6dcb0e29be3a1a04bbf3e14772c51d4c127eaef944523727eb3c0153c92fffcaa09c873a3facc3b7b68173b109b028a83453fbf88db6a8765f6f5bca62fda9664cb99fa1cfddaad91dafdb2334eeb571f63846848c8da7a4400594d42c6d799856dd23a5f91e33be24be0da823f7cd13f7d76a57351be5f6f143c717a51554
+B = 38aefc7d052f121d0f0e72b63d4a1bf577f707a1ad6c320e8717e981afc1fbb478b12dc8abb83ab6fe2527592735bb844083bbe2b2b9867251c88a6b42d47f75f96adc5110c5ee90b4074c137791360a6b13442f5f0cc519a1ac69ea92c05b328e19c828b67bcb9dd2b1f1b95aa5d85ee3dfa938fd962af4dfeb85e02f1c75c71234b6c8b8cf3766b236fc9bd34d930480410aa2a453189d8f3d84f57173a61a6a150c72bd0cde2d644c43a394d66d86264eae1347f88277e76badb59c62460692be26a63b35c4f2d54b4d190ff403ee9647c28dae718bade00151abcb1eeb8b566e4e5be772bce50441dab8bec1dd602d7bac2e5a9b74dbe2e5b86dcd5e
+GCD = 271439c61c1e75d7bb886c53b5d44414b63faac12ca02f399a38b53158945bc3b4592abeae070063f6bbd36981934f739355ef8b12b41144cd5ff10436bc9c009fbfd62fd9c657f0d96a5799a2bb0a60f77dac2f8c6a17f4ee9fbb7fd169bfea5136aabf0726b5254be32354e123d8caf4da9e7c5fd1a32c67e8063962c9316
+
+A = 13ea42ae8b28dca79e5904aa9790b8aba2f12ae46f3c818a90c63a82deda20194cfe4f7e8ee9227c4ebe697154defeb8dff031f5ae0d9fdf439dca2e9cbd1d35a6a22b053dc1e1540c1b5e10a2c8e5e14c42c043410ccd582abcf9146d82022d813e2050f7cc552a0ca475598c2decefd4f84bb6d353835bd9f72eed2eebfc90a66063f14b5d61c6f99bed7046b086b0aa7c56cf37253f753ee0621266085d680800c21e25476dee2898547e47ee75829b914554ac62f9544be44e0f3f270207d2dfb049b5756365e61814e8ad579cb505023989fb71986049e738a17cdc7f4e6175e0921fa8c069b9fd1745a02e04d5fec7d7192649edf18b154819bff90
+B = -105fc092502bab04e958f290226a2ade27997e77c8fa69ed2ba0354f937f7ca30aa66f33d883d488b05295270fc827482896151c774918923cb03b250a8829a9247324ee159e2342117fbac08a1c45cfbc65f7e949c18bb441aef26e03a7a1fa9d831406e9519bfaaaec9b99f225a9d1e7ddd91387b58a2777e5f3e2ae3c73039b51d13186db16b46072766f0e68fd6d53299c41e7c5dc73295842b67f085d099844ed596f2c3b3dd33b564dcc59a4b55e4ab318ad62d98d093550a976b448062c91baa1e96924354fed8fd8764c692d75d8cf8c293a5eace3bac69a8a46b3985f9e95eeaf6adef9c5c2440c693c41a81effe50160aadab47fadcbadde074
+GCD = 15620ca883a07f0a470c7480c812304b0288a3bfdf7ead16f01725c90e68a647ccc0a8a3d1c06162416cddecfc9f0d4009149b9041f72a93b25f564c39f6fa50ae419135b0d6065d2772bcca444d74a6deed6822823d591360149efb61c3e568f6de7d53b591830de609d0e690b3881c3103911f8ee00743c376e4fb7d21a54
+
+A = -32df35e05bc70a024fbc97d2f869602d7ad9667801790207e8269651abfb47931eb3ca99d7b235957082d97f43d0bea44374acfcba3e1b4579ab4e8372405757a187f5208dc4c921bebc71f5ecc9ea9d763a8d447c6e92b8015f3beff11961ed764dd13ea33675eb174e72f970704343edf777862a2c7625b56ada136577488b11cd47d1d78ac7f770cfcfa72fb2e26acf2fb7b54475df03d6f822bebe8f0b6b5ceb4ed8914449c86447be9f4a0823faf7bc010ecd81734c7497e73c533fde3658928451ad344cb4b866af6c605a8154d15f09ac02e283d83b270e3f7e86d9af1935c63555bbd8b00de88878c42ddc0cdbb2bf7e5b5a44bf9545a1ed21f22
+B = -22cf762e509dbceac0a038cc00c2839a6005f74d0f1b4e8d6e820c014c0aeca621b44155a13baeb093436c5bc4f4e5513c6b77858935305becfe74b0aa92aebd8819cbba924426be6d2d11363e7ce3dc841280ed5f8a147914521d1865ae1eac0bdd31fa7c2f55b3c318007c58599c2a7226eb7ba522e784871110b55fff1e0329a1969767778af9ddba955dad31b2bc507b41c5dd45368f7d9439611fc6d3e1c20ff38899bfc4fce2b1cf094dd0a1b80d0de564a4abba64484886a5dfe3d03e6f6861d60bdddcb227044b9ebbcb8f26daf74a1a971e5710d4dc1d266ddad023c6a160594ec6e58364c9436ba2119784c2a7a452e42633686d2ca4380cd30
+GCD = 776d7044977143d3ece1255814b946e6ee241ca46945648f8f676c9ade014caf504c1f8ff2ab5fc051d7f4da7f713b1fee97b707756100f39e8d94e5f18c3caedd1b58f00a9ad46d41485537affde4691a7f0300b4efe71adf433eea7e726a26685236f0b65910baf0f970ec937ca6b9b22d688bb60f5732834eddc75ca3d82
+
+A = 6f370eb62b979ae0f73ca116899dc77bb181fabb60f3a5eb0be087ed24a73ea137e2ed3c3319d7ba722bc604e10c5e9113452aeb3e489a7d20b2fdebecbda7b521168e0a112b0d2d30d261fc78dc98cd4ee95af5e3f4f1eae49413e275bd904084276a2f7f0e95552225f9bcd0aaa64abd1692da78a21f59fb4fc527b37fe8a9e4c18ad38d434ce08dda473a516d7b5da184ef91a781f229607ed3680d771c6faa8a268a1d94fed758792c0f456024b50565943253ed97ab16700ca412d370ae0b107703eace5efb3bcdab2b8aacdaa7fa9a1cf1d075da51e773d85266f3a88ab5d4eb379db8f136cd1bfe2801e11eef0c74dae979170b7d4ca0d7c03c4fb
+B = -43c28b2199c4acf51f3d867122aff0fa7b1c068ca4704f877ef9f8409b888ec4c4b8a60fefd7064835e2bb25c46990ded6e9713aa9f8fd15357fb24219a28c8cf3c35e602b1313cc938618494946b7c0555913df427abe356af8409565be403a9d4e6e87851fd42776468fa45579b07cc00bf40fb63286bae31d9a07a573acb334a9a16e8859106744bf3c9812ab3b7482e7d6d4ce98570bd212654ba3aac1e5becfa4a7173750bbb03182eb4a9f96aca0c43887c4a6f13ef664d15c1f04bfab284ab901e43aa3940b008f03a4a6a6bb2c8b62079480ca4cf8d55ad6d0bbef64265e50a28d8139aabbcd5b8cbd6aa99cb155e448e4f3161b0e9d0c687270b
+GCD = 5d85e455ce6f9597289c29f0b1eab77198831e5f56b6b8ec5f4d459fd24317abbbc5309850803a0dbeed7d5be676e1ae590e6770383b4bf4823b240d8a716f6762d4c1b05936f0423186ba2904891d8e83ffcf2804ca0dff140f325ece510a8fea35075469957354d723042a359c9986aa4f06c964cad7614df775d098d94f3
+
+A = 343bce97d8f2c3f5aa83d4101c3fe5aefd6aadc9428543714c2e8211f89e3fcae7cd798f496e0c6fb3e618a98a65a6e5dc36fd229394947106a50cb5dd08886da042ef5e6279a8403cffe7623f1c16308407c15acf21dfe09411919ee962e18836da0a6e218a9e798deff1b6658c8467b07da45ec1b28b5a05886d3bf1f868995355b0b325b08bd6c93adbd2d93baef7eda56fcc075f73586aa72a271d29a6a462c476e2c3b513277253d2e78a9b302218a71775f92f6c784ad7a625655c89155c4bf7b8b47f9e9d66285a00659118e091a418748d1ce7211c578c88d7a053919d9f8075ff76a97c70120fa179b080d4ff76ccb72042c467c29f756556f839
+B = -1adfb111016e8f56994b63838faec53ef88a59c7cafaba219127469e50cd6503b5d819759957005032083cf72ddfe05d302e0b6e2d5ad5c1a3b70ba7cdfa3fc916b1ddff116b6f690d828746f22c0e10da814aa7c482bfdd38d83ca8abe7154b92027235726332d7b6887e9a53d4557a5d500143cdf91a8b2ad05a6b81c34493a1983ed3a9754642a0a51cc61e8adf1c6cdc36a1bcbeb582b2a1043ecf77b0812e6927c29aa7d476869e7be287e859207b1d98ff67ec1433f76c7a79c0de56ce51628a67eb2599d8d6e9df3e258ab49c66a6435798ddfd74018aa7d07a141c3681cb383aa4876077d267ee459b65adff65386d5378409402e33cd56b28bdfb
+GCD = 99c6b58bb8c1e01bbf8a75ccdaf5df74639b2832f47517a4ce10201f0e863f461c871692cf10c0b0828570f14fd06009d4adb049ec0231ee19485d91ff45e24287c13d3a71b3bfd7917c480b4af4ec31e6073a329f811391a34ce32bc1c233e8828edb25761763217b4e0050bb5aedfe262bb6b8349996a677caf876ca78eaf
+
+A = -12d63c94ee481f3456beea44af3c495a4d072745d7b02348b266978c7af7ac9191369734b0cf4bae3314a358b7b1048d2a6e8231e812c6ec5b2e9e1f549bb3f2bc3df240011398e695ee7205d71b2ce1b2f3baef6910cbe938bcef5bf01fb6a3292d20165a8d3156942bee0ef847814c8477d39844a830e4b1e2fef916fee437340c36d85ecd0038cbbd21ac1c40b164360cedda48ecdba13e06c7991cef2c5622c5839e2706187f7cb9e5aa92f45fe18250c8e2b34a7a49aba8c7b34e332bd84095567ba3c067268ec778110001e661f440e0298c47994efd9cff7c0c16e429f8f8c12da541bd7f6e58eafb2a9750aeadebcf16cd84bac62f585cbcd464f2
+B = -81408e8671c0a8458c3fbc5e0ce88ce3032f2c674b19cd41a69b45ab3269793233783bb14625ab91e6764c22eb9737911e30d952c2a47a775e8dadb1ef01427375a54cb49b7ba5faf6466ad30f9bbfe13457dc76412db92d9a84c9f475ba1e21581f76c54908ecf3e14f54ed87ec1c9146b296237bbf2db6879b968414407a1b584eec438f3ad03475b6125ff992749483d66190ee118062ce264caa4fe3110f0801500f46dc1cf5e8c9f7cf2c6025fad12e8633b3ac283546771b0cbb091cd53fd959566c453b41f06d85dfe5fe7d9d2e7d5731d57646cfd7a0b22424c50c602e5e619ed079472fa7399c9c76d5e7c75cf0ea9d473ffba8c88d4867b8d19c
+GCD = 6a578439a083f05c2edcd293c34cf167310b33edb30d8fee813e056d374a558a033519a1e271a5e52160ea4370607e019806923e080dbaf8c63824157c99cc80d1419c15beeed74cad27db4f9af54cf6f0ec8ec5cef960831be79d265715694fa7097cef5da3f1e4d7c21844aa7bbe1ad6d1dedde20ad88766094b1438706896
+
+A = 2d70c2484fb4239b7be2b51c8d816db7607939a721fd1108091c99a6ce3f7b5edd687710303c7d824ef71b42edaaf93495ebd7e0dd4002b325a81935aec39f4044c370cacc4f099b06f3c4e7dfa63c3beba9182a358cee1b367743b4e248b8f2f34b1ffa01baa77ec2039be7bb969e4d1f4246e89cfb93408ff22d616acfdf17c7a2b41d1151e6853c2de04574913f1bfa63501b60a0eeb1df94b4e4a9fea54adf35c8119817c5cb498e47d9aca746a813c9aae5877004fb1661636cc3a17e4032db8f31bd741ad253235216ecdaaa42cfdc16b4387e0a28189cf147811546a12558d15d394523abad5327b6cb85452b829ff61419ffb66c5a9b0af6a11816
+B = 4ebb703b172536964ab4a8583b4bd579d61952083b712f0fc26019a0b960a5fe650612a1bf95401010c41e56e2c185c4b16d65306eb9945b68bf726f17962fd90436b88a1b897380570cd008c7397ee34907296df75a2bf405615ba50046c630388ed9f61a66a8756c5a447ab4d137791452b4a9bea297497a3d8a2d3dad91085dde290d2bdf717124ff9d7f2de486625b87574bf1a7610b56513b68e012fc25a8bd10251057c747153db7fb16d97952f88e191ed3213f00a30efefe98dd8d35f6631821a357915decd4db65276b244cec14ff9141f95f5b0d5bfd74a747aad9df25a7d482274ff4def5e52e1037a1d9546b44bca371349157c08649d2edeea
+GCD = 2a82a48eb23be56359b3e5f315b6463a310a0b0ca282bad140ca37367a434cc5350fc90b64f3152949a59ce007868c5e2685c037cc57e2074a3b93444ef4aea3bf9291d5d096054fbd2eb7f5b915e8c1df0c89f41642e6203cf891916d9d40ba46a3391935f16b4a05608ef714a18b4510fde84bc457e74e81fa9cae067fa8c2
+
+A = -8d8e49ee7f78439b7f11ad119a303ba2dd15f0e4f1f72e8d4d67658c18cddb296467ff31fcd666c9c9a02915e2f3eee86046fd5ae3671b203fe1c1d8c5ebe46db6e8f56ac6d2e380d333435279b557b18daf065d4df4519cb779333f7d612d10236be41ad4748989a06c2ced17756d8435e80651ea3e226badd39507a4c7a8d4b3c3411b5c65e56968be5d4dcaf2bd7e53d59bf027047ce86ff47265de652952c504716275efbe2f4c10ff2e053dff7f0584032226ddd98c4a2abc2564d95bcf7fcebc138124274eefd0262e19b7a384949ed7f50b91256e2a7bf7f9a6632f2d5dbf25be62b0fc18bbbee8dbb1832a7457e667a89088e54212091788cd29980
+B = 21c880d8d19cd58561207695df2ecb75c676ad8eb3a3c3d93418e25f4f8532a45d38d832a63e8218a1c159810fa8178db4624dd0d13fa383d946729f62c086a5d275b604c44c20566ab874b815d217d71725b8c9f1665986f5db654d19bcf8f7adf4e9363f7b1cd7cb52aca2c8b3389101e93a0195c00800516e7186b81d99f1c630574432d460138b96210c6963dfe6615ac4a5515d44369b3e9fbd7e151f63b467652912ef4728102dea2c474654bb6e2c4b49feb17e1baa6e89cf7d24cefc514b76b2b0d2ed0472a6a2776a6f125b4160faa47a5c3e7c78872e4f183207d4653cdb0c4708ba28e591c67db99d1edfea084108034d0040cf86f586936683d
+GCD = 608cb28fcc93aae3bae0c987a43e3aa30686e1268854c792fd0a480fadf22ac38f716d22561bcaf84b6864700eaec9a0ff95dc92133703362509567bd92437b459873a6baf7f8ecf0127aef06f5bfc015dbf00fac69a2abc7c21934982bf2900a6d82a5ec44085c2958ae650fd39f945cb3ea6c3802cb07f9486b89a7f65cbaf
+
+A = 3f2ced217cf5cf5ad1cf3847e8c037321f2ee39da3e6677e8569f3ec4e4efc96637b9492e899e053089f256df8a7979e73c8e1c91b0a04b74349971388848997de4cc5517a7c2ace999ddd34db1acbe282697eac24e65b8c15a5f8722570cd84d6c7f6cf4d4f8723eebe9e27d314d45a3750f78ce96200a173f4235fc54cf9c3c6bda60706dc1264f92edf293dbe71f4a1fc8c5cbb59f0314f16f8290e40404874c555fa292868c3bbd6cb399d3a0e78405975548cd2129eb748f85d01205507f4a41738d5a30cee5da6b0bca2e1e5ba80ddaa12f1cb06b9f0f0e8fab000973f19d108a84241be744badbe0c7bae5cd8da4d7548e84d76a97739e42ec6e45fd3
+B = -45dc80f0970a8064c44aea117c846f9cc2edbe53a661b3743d9c66a28eb203fe02f788fc887bdd4a72d4b1d8cc69390c2d9f3ac324085bfd99eb924f207fad7aa78a5ea08454eb30f2603fcabb74800795fb718ee977d31edad0a8e7ccda308a5a5bf6284f6221bdfb4b1d1d8dae08587b58288b3a257842e2646e273b62786f2d6b2c2ee6488b732c510c3e678099bf49fbebb21ca28989b2b0f25cd94f80668a51864addddc4e7b27a875afc459b194c1b013498f87deb14d0bb1e30e73b5fa394eea244c0d6887a1ee950cfd2f6eacf78563c966cec78a3179a3c270141b63b7cc10d0be93af9513a64265a16db221762d1a55de12a2718fe85c2803cc3fd
+GCD = 2d1af9e56799a3104788efc7cbe2482e23d3d419034745fd236d057aa42287c17e5570ac64c905beab44acc9e97f42b8aecea503ea2a3802fa4c1700b9050354750c957f8258153d52ff825a67b9bc9b5af54188019afce4be77b39a5190d57e8ccd489299012b1e7f528b5b7256feec8b52e422d7fd74c9e130d3576a10d50b7
+
+A = 5d3d9f836b291d015d1642dbfbce62826e1106626276075a076b65760b22fa89aa775b834fa7930363e696c4b75eb71c18742a33a3f9cf7754c1eaff142a9a9ff049bcfbbae504779f513caa081bbd116867e792df95101b56198697a1f9a117ced81f45f6352eaaf094e8572fdcac58444a86c7b31cde18c82991fe58f4802f1386791143281a3c9c95e7d79e6b89e1ba3c68347e847105af0fd4bd730b1bcda51c229d27d0adfc1a4be1a046f31f5774e2db8a015b33733c04bc0eac32e4583d9e5410d16a17cbd594bc41f6db341f84cc981ce8c6d3c88b6477aa28440c8f573a53e88d3d8b8eda98bd2cf1f9ca6efd79d42470b9592c7d30553cbe05d112
+B = 1c7012c654e4a4ff773ef934c72d4349bc661cfd68c998cb8a9dc4f8e2ee66a550ee14995dc7efd5191dd800b0417f0420cbc575f7a84c203990099cd4a4f44b60cb5eb565deb005554bc3827bc0fb546927c0e07e40de514297e6f44924996e881cd738cb034f6690836c4a307d6f892975e90c0cd08ec335ac2253cc1da0ffc242a46794780b3304c8ea16d420250d4fd40ed83cb9243f5837d99aeb3d75e0dc29b29b49f9816170d4f48f13829221ac699088a823cb15e0570ce87d7b7e279891a6c6ba4acc6ba416af6d6f5fcdbc068fc0dc0c6c900ff131b368c0378c2d3cbb5f6dc0ff7904a813109501775775ae568f39cf560746ee5e729ded29b1c6e
+GCD = 3c2ca5fb4d89f71f1c6281e70eeca0249e64f39a2c826bede8b8dcd2a6b0e477a16b56e0b60d71573714892d708cef230983710dc7514bb017593ef14f64f480ec2fe0411d8170936661963522f279a0a148f043a1c33cc9ccb5b63e0fd3dfb4bca0fcb45b60c088e0b3d58f7396fd1800bd32183a2ecc1e866babfde6ceafee6
+
+A = 44ded5aca185dd694407bd38eebc9cca768cd27f963d9b5cefbdd98049ebd2831c80de83b725ddffb97b2ead6fb610e673a9fcd453a08f5ac0d870b345580e294825f396eb860de46afec56fb05f4f3b409aa7a1eda21546b3ea4eeb7e5323dee1c48ace3c71ac2b551139bb30a193335ae18ae50cfce13b091e5b43b68d59ef3da4cd837336e3cdf14f1721982e78ae29bc4c07c90f27783820fbe886fdb367a6b8e2effbf5a513e14bf08e28a78d186a74a397e272340e4eee9a9104a156096f37ae04d1d0de20a576ac8229dbdf8ba093d9519a7abf3ee2ea02c77d7de25a17849e66091e9353fe3a9b8e04abe6fbb6f9519636989554b7135ff2902124843
+B = -1f1c2fa161b604e95fea54f24f51c94317468de7e94b7b4f474de7b275939113092c49a73e49ae21e5c6f501089a2826ba562b9db28d9ff00d7ee600c1bd18ab57062b973c2a7b4016d973ffb54ceb979dd043e8d2af0b10bbc57db1d9190abc21e1ef4cd947f67c2a38a25b644615c80c72bf98ee62d2615667a842e954d7de3e68d03d048a9323b1be5d620b4a8a2c1df47daf567e0366ce5137366e13a8600192ea886bfcf4d56315b9759433714d0b8a092d87c92c9c9c2c6151eb661f2da6de09455d4086a15fc10d1b3afcc0c00a9241e4de0823a532ab3afc09d9f5b0620bf1631ccd3a470999e36e54d33964988e23ed9497e22687747ab00db8c432e
+GCD = 22a354280da7ef2e3499f2a7766498d49782f43277ea6394625497be1ed6d04ff9dc5158af8ea751dd5ce0a0281fb7b1316d96cd631079485e7689aecf2ab6ae90e9b19fdd77c14bd7a345b37c24a28b2885f3664c2c7973b81469026ce27885c251bbf021b805e22b587e6dcd2e14ed9fc443ba63a44f5809c2077305bd4ab25
+
+A = -1022e5ed6a58542642d4b171a779980552168e504f5917d606f2925cf30c84166dc864f4de6606b4d857fb30b7343d77c57c732dacb943685f1d0648712c7bd83a070557049764a9adca35381882d3622176fc41dbbbcace10d4804d17b2ae0e8873336208d2b979ff6a91dbf3580e3feffb99efa19e68f06587ddd81c41f7fdf7af7db856b03a41dddff08aa3d0eea9cd0970d5120a8006de36953c11bde001f11f7025a8c569bc93062d104058e77e9c1e0785f03a8792d4fa39a038af04b53f0922975c8fbe10436ae6d0f21bb2b133c8020a4e03484483e796e76239192723754093ebb308f9e0690e99cc7f1c15698c79899689d1e39e1d74c824c2280144
+B = -9882caf7b6f0eefc03abbe274a519c611f4be88253cfd371c204d22b72bdedb3d6c0424e205decb797611d2836fbe5238b7282076635299b4164cb4df3904c24b46ce4d14a624a88d525621cbfaa9c8d5e3508dffb3333d6fcd923a39ebd3336e82acd6441aea23bb98e293fdb5d2a96c0bb342402342960cb77197b454af97050d50839b63a03b4b4843c9b9a3e5d52c5d6232d9e6fb46bb5c258ccce89b4e3f3cdf9a4c01def7a9e2b1ba59169ce8213fbcf6dbfd1f55a976e1f88ec3522c26d96f25c1fe85c243c0f7c12810732f80287f706988364d59bb3177fca0fa3686efba90467ee81aaf42ea43d2e862fd941a679c18058ec777668ed8adb480d268
+GCD = 6e3d9c18125d761dfbda9138efac235d55f5099154f1584ec213ceab34c557e773e8b57ee5fc6346722b01e7ee7d653f5fd04df80ce2f0fd060bc53616eeae5f8a81644bf5285fd352aa58e05bf105c3d5e511ac2e8cb470c9ba6f1e3d904d7027f89012e0fa0d02a3e8c289a691e6009abb4576663f83dc21541f96093d15c9c
+
+A = -27d092935233ad95df5168764e57f35c82f2ec39e0675dfd43701ba2df99aab5bfda270c85bee01c388b1599b58e290eb03bde342f222baee86cabb639539506b5e40dda162a40788e67da48864763f55ee1f3fe88c4dbd8ed14e7638ef99626352053bb687c6a09546d01de5898d62e6e07211536f918c3d2f3b15b9d7624ae72c3d5f46f620c1f325dec121ca609ae6d0df3e191009b6ca824d1620db4653dc4f797b5a6f9512a73442c610674fd8fcbafd40d5da36b1a3e1722af35a7f67c8c5127b7c5eb9f29feb2544ca2d84e39d8291fc9543a5c3fbc3bf8039e0d318949749039a22b07a374eab5ee414ac1d84cedfde0afa1acfb4c4e4aad6a5669ce5e
+B = -22771f47b6835e4be04657a7388423bf339803cdcff3e92ef4d00d988c642404ac0e81e7a3c048e1e22085068fc33fae70aec7da3c15474246f0b0190afda06d99b5b2a728afd3120da6bf986fddc623d8cd9c9838cc68062169e1da5586ea56a5e765929d2e8b9cd7da7388279f889e24fc06199d6d3c0498b97fbeafe6cdd56c8cd74985697f5bc0b21fa9b076e980561429638fffd6b46bf17046530963457a530e98fc7be10cc085525b38838a380ce10e73f1d99b1a9b3d4e17e903904868a03f915c35aace842caea138b23dc6bf1e5f9843e4099bf1a5e52c14ad190fd2d1dd2d8e06725cb88c8dae6af357a853ce8a201ee0dc6167ba9b67e309b92298
+GCD = 8d3294371baefd04e1fc6f1fbaf5113799ef022f2c89430a940a862a3d3ef1c5cb3e68fb2c860961ccd7b399e25571b55dea36c187023274333059c780f53944ff81dc5e5bf2ec0dc488716deb59044048bb9b619fe1cc9635b4f687bb36c89b899731e137db1f76958053f0e52fae11cd3cd34504c884ed7edec573a1c031e0da
+
+A = -122630249adbf9a46c2181cc6a46e0016742b5c7ea1c9d971d77a041172bc232ffd8ce18d3e0f4f6a735099a2dea3d4b4bcbdd70b20bda8cb7bffc09b0536c4c7cc7ffe544985302f08c4184a96b5f67c3f64badcdd2066d5822481e806193b7d83df0c8f832ceb2f0799be735a1028ca59cd9779c8cbfed1be89c9fd969da81bde4de41847d50405a98d273f90a8478a41b0d31fe631a411b38dce71a9a0016ff2774492bd62a8ec70c44ebefda0c9bcc674e7f4b45c17a93c52b764bbaaf28ecd2a1fd73c7505c6c302536a362c6ba02fdb794abe4265960286b43ddfae23b713d6f0fed51ec7543605042bbf2eddb756d09871a64e746bd7a68053f0e74bde10
+B = c5ddd85066c65e1369dabc68278fe3ceb033d21ddfd3f7097bac56775d93c45c98405f79bb0e960e6e8937de324152adb152887c51fc7e8ac01d472877fb507dd034cd4c662db8e7ce5bc23db34056591c639e52e3c13c0d68ec6aa16426947f79c759974f956f0cfebaaaf89c29c7dbd5e8d722fa35c5a9587f70f4cf082a9c992f35a768918e2fbeb20ceb717425208bb3c20747daa67ea9e9708a6a4a8dbabef958fbbd4e47fc7db110b49e36e758eb92165a6283d8ad80231c08b277cdbaa87c549a8f64cbfcc1029658bdd5a24a21702b1c37c32c01937cb808410144844a53a347d787e36ce14fbd581eab309673a11dd0b200d0041bc102c716ea273950
+GCD = 12f0ee0c662eeaff462c1baffb25684c415115d0c3dca31f7138bed62a2ce98f0f7a83daa113a2ce50c1f3317e22f0962a01da9f1e2aab917f12cd9b4cbb8ee9113ddaf1080c9dc09cf7dacc27308d6b610a3bb64c98357135331be3c146c2f9dd00bedbb9f0863281ce1de58186bf9b968d79c31216b6ef331af5bfceb44a5ee50
+
+A = -3d296bc6206930c4f781b1a438c28e06751278e472fb1d57b49b5587ecd7bde36e4aec743ad9864b3a91f4b448d996fae6cb70879680081ec2c6b95984f964fdf7c811aa09cd6fa0b15dcaea0500022e68fa7c39c04c46ce398d5c72cad23d18e073bc2e2e4fe0dd5b333f2637b4b26818ffe8e41fa5225c62e3d04bbeef39556ce4f9b6c8a2228bd30a8fa6670a212b2fdb64e28dbaed715e55261bdb7f03b409b0befc70e225e9544d0249efbdaac7d2748216b28b941c415f4bdf2e0e04d7f2f2f278ad4c16f8d3591259929d9958369d37ac1ae57b940f0f67077d77232c8452d71c5c5e833d0cbae77799fc99cf2ba698dd698f133096c975cd5279cef1a3d
+B = -3a088c5c237b3073fb015a3f79e8f10153fdc8e92a880615eb2ebaa10b99914ed6c29cab2006836ee9414bea85883a627573fa2d1b3ce3f3f776264951dca414238ee0b894220ebcfbd65c94e6ea7ba8b98d23151d6d936dea1708b5cc1bda1fb39d781eef9a2096855b32fd96852fd9e4e5589bbe6dff7d9d05023b9048d789d119b94aa2b0d6c1caa3b62b7798db1f60ce7da9d2331143330a5057f00316d433e7a2daae49a4d129bd7b1633dcae32944f1d0237427887733b2ca434c1412b21db5672f32cd52982d832283172134be29bc4184ad3b983c28d9579bee7183566aa1010c929b0d08769779fa59739f86e085ddaea2bdb951c2f8e5e62baf29a8e2
+GCD = 24c2810440f3d4773dacf9f7a67b2cc0d03b35c059bc6aa3b8aa0f0a5299954061259310493cb1940a2dc5b62537ae82373b82ccfa115413d2d3570ce4c4cc5475102991617363434b0394ce891a7bb8cc49035fc9eff2b4df6a49209fb441195f9ad7334ecddf78f2dad78c50719081f1c88d5df36e0d1a2f6024239b3eef8de1
+
+A = 880d499496e6677c1f1e86c5217bcaee036ed513660813c1b2f35fbc7bf500e0cf00a9643623b8849e1a5b78fb86ebd873061139a11ae8b1ea482cad5b69f04a6db0bcfae5c8944921b53ccc7c531c7a4a80bb1368f81a04a9bfbc14ab1d7b197f5c25f7a8ab853023a9752b06a35a10b434b5fcf1f5768c43fa7ef9a9555283e019d22e3a4d8ad2218670828e7dc06f98dab27ccefc42fdb386830245c3397838a18d59e0c232b2affcb4fab7965e67fd103596613c83bc4898c710ccf106853329acc1f6d70283f697feeb0e1593cfc69c0e86e58829cded2a928b4410efd5f1f9484c6684207dd8ccf18394a0118f5c9e668202219dc09de8071ef9845044f70
+B = de506155c2408beed4de5d031ee47d882806ba27fb8cced91fa9589357d96a96efe68bd4e35632ffad751b8dc384d563031862a612998f79f1b06beaf53e98ea881f70bcbc6261b1c4bd2579e12b370d4e01a31dc5a2d3bad7f3d2595e534f980ebbd84da0d1dc23f479d9ce7c9657ddc49a4845c2652f05a89607468c27b1342c2b8e04032b035b605a2df2af7056b0ea18da94e3eaf6c7f2201508e31a94d482a9f338f5cc58c877ffb589bea816a83db41071f71ee254bc257edb76bb955887971490b52ecc1ca70dcb61b5bdd9d70556bb18fb51bccb0410b204014064f67d50d707be0dcc9d56ec6e6a84e1095be1802318fc8fdd049070921c833dceedf94
+GCD = 5999a34cf31246bbd94d697000e4ecbfa9b2e6fb473d0357f6cc681d40d5bec39c2d063727dd36bf3d6d38386a09e38ca13d967816aa5d9d2c3f0edee4b7332e0be284d959055658bec645dca93ea2cdca8419e5f7cab41b85f33d46663bb20869798a143251bbdc3805c6eee7ef27d3f8a8843844863ef13ebb48db7ed58ad214
+
+A = 42664fa1ef8ea6bf4a3dac8e6498f19819f3fa02a4aeb73c712b43279ad3a807dc7cfea3c4a8f563b61ab3d63fcfdaadac5a118461c7db09dd17a44ac35c5bf0aa6103e6285326576cbc94762247bb3272b5a447d194e4868b9be85846d55a64d5f0f6384d3016bd139682f966f98b87b08155547295bf514a16c94f5767594f2114a3231d05ac9d672711f5775cd2db0306e517a777d3fa2522078f86636cc1fda0c6f635b6380764c9cae50b16878e5b028ac91aeb51cc9925d47b23873c82e7936233147347504650fb4418409c7b4e6c6ec4cc3d52fb6a9185965c4132149968342dc623dbbc74cae5ebcba93756a5e22e4c24a3ab2530728b6f286f57a8e616
+B = 1e129cbe8232716ec69adc048bc1dd118946e04f0e981bbb948e561c0151e78bc5b4981d0b7a1b5741d4a41685049395943fc01516f789ad0c5f6bf504aea362599ea73c3be6c3afa7f468cfb993be3c33eb2ff951c7995a93c11b6de6aa44cf404fc5000b426f8f395015f2bf7956c6612edb9f7f2d5dfaded21433cf069f51e5a1361a1eb370bb113f43bb3f52ea2e3996a8f0c7c238169375ec9a45ea5bd554609be60d53ea9a0327fcd893aabf00b9879ac539d94ebddfc512d90bb6e235d842ced85024c32f1299a1f5be22df6bb9870de6abf0809af043b2bf68a02e14da734c91cf786772ccb856610e0c4e66dca7020ac7f455009e87b7707bd43683f3c9
+GCD = 9e8648a4069a067c5c165312402cce4e3c2afed8203a3902daa571b57622f38bdc2c1df7c9936ad61a65e5d58b1c1119df5be38aeee409130683fd0f4e3b8d10e94ed7e95283ce981147863f656c7e1f0c94d8f6804822554024c7acd77db03f02062f5a5d8860b73aa2850a2b11b443aa78ae7feff331400ced3bbf8274ed3d41
+
+A = 8a10dd2d80ad1acf6f163cb29f6c2168deeffb44cb71f8a7a97ac991f330781d412c12cf73adc76b45e1e4d78b3c68215de81a7b991894feb6b1f40f8996028d0194e03339ed1170f24f4c3688aed8bcac8ab19ef47f33126112c5df2feba5517668637821ce68b64c8efc2cc25785ac41b5f181e30dd2a90b4a7ec5bf166d5b9d756f97c7415cf45a501d5b639299043af483a310c439c56cabd62af455107bc74e6eb36c16b57ae1298eb81189cad56465a691346da1357e8043493a13317c009177c096e6e46d78bb18ad3ebd289f15dfaadb58227ddc765c7bb677412713b001c97b64256f5dcc99d6828fd378be65f6fd0f6c7f5beef034a68a15e16cd4e6da
+B = -19be28ec2cd1023085e3b5e3eea13ba07762d251aee26fb3856b720bb3e8ba4cb7ba97f768a85539171feb7204125e8230f0e8a62ea510000387ae5afa395280f03ead685c2209f53519f8c6a3642c8e5af10c6b0321d8a47a53425896ea87b64403aff68f1fa0e29f33e2f178be38f92f8ea51aeb1cde9005328ee6dc8360f0d516be9280bd3d81bd026222bc510d58400094abbf9fe2f7ebf26d77682ce695e716abf2a3658d242fc693f0b2cdf16487dcb434fa2806bc407ca39e7644072f40e2ca1d692d45e2a4093bb5d98c6d085677d4f268603e9f32864961a3cc66a6b901ce63b979f5bf96b1257c7994e52d3627f9c8470dc62458cd7565ec027e74ceb64
+GCD = 1e637995253db39d550bbc2c64444c3730f91ad9876f67538abd456e824d316468066ff63e3ced26776270d8114c5aaf0b9b59c7ad9c9e401b9753b9ab01df767629ad55b56bdc33ba6c92904703503dc0b786d537586c7403b9eeb6a2db13b78e4e781304f9957809a0e06bffdb70c5e665703be8b03e350dfe45fcaee026e96ca
+
+A = 3c3b7fa369023905f43b24f1d3ca278af92ee61bf3c075bcb7d93272f1cd2e9cf341cf5437b67a06aaf999d1afec6c7d1843e9a37dd779da0418c414812e1ebebbbc30aa55960eb733062feee5d2feb4e296d82e49e1e8ac57989b5e22d1aae76213f1f4086d4e890f5a9a85b0ed7826df5c755920d964f311f85e50e29268b05c4af1e2cbe43763f681d76262d39627d40c098216922eae54f21d5ac78629585220ce0de6d4ef46525d0167a923c459f8aa63cb893e09ba15e6730c5888a8f70e63d9829d732c172976492e4053f377e2a616ec67d0d3a8db390e6aabb233d7bc361f0b33f5c934606549ef7aec4b8cc089bfb049f6f8f3f28452bae47da1797a9c
+B = 1bc847100c03ef795bccb3144b3c4d6f76329c06f5ffd5cee5663989baa871fe13353d4ffc9cc7cfeabffeb39646941682ad3d17cfb4cfebb578fbe1319dae9136e5b76ad41442e00919f52da306e4221bb9e8a8ec90e34dd632d7f5d1753a7d69b8711a004d51e3f625aa8cde54cf425ab7c494a67d74caa85faf58f5f1864348ef305bc582e7f1520f1fc2cf0b42debd992278262244d0a111e61ef942ecbcfed603a126dff45968ba6b29b5161cdcc36594419f121a7d250862fa99e6ef6e2cd06b7385c47829efd298fe4a98d9dc3574931787ff47c5fd8e1127c173854a621c4179c90359e411be18f9a4d9a213b9424bb1328267aa3a5bbd89f93f2e4e69b8
+GCD = 2ed040b9d16477eab33ebcd47ee9e4ff1adce5df52bb02413990b1753bf475cf93729be096caa3028d2c93685d0f46cf22f424f80fad643ccd36438221057fbec594d90a6a3396e762cd04f2367ddbf1d634e7b9323aeb56683058fe51fbf05554035d07d896e935dc7ee43e35f27d36500b15249892ce848dc9be63dfa96d6d284
+
+A = -62a364660647f8265008afc2974862554d2b2aaa942fbb0407be48df89442645d7446c505b43007c85695f7577b72819ad502ac4eaa4cdec4c530fbc7b92a8005822516a32c18cee1d491c29b16dbd584d3b0d9c752dd01f11810fca4e6aee381a08fa97c3dc313a36bd8ab1e37c88111dab161fa8736ee9a0c3ceb9531d03b3f0b8afd57441a0518ed50785e856ee8c5791459fe1305070bfdb736086bdaa2c0902134a3361154d5c1ed7ddd83afdb9c4e5aef5274b2bae363e969261f75c289e19f2d758a04f26903405d8bada8d100fab0ca531fd1166a7427bc76e8360ca86bb94676a75fbc5db11bf74c39c387e222ca34aac91e5063d1eb00e78fd990b53e87
+B = -fa9080f1c8e490a5d50ff202b8abca91cbf9fab150716040b4618b40c61d2d970494d9e0a4fac37a23b27297130c1f13f6621cae045bbcef5018a20d651d62e665283d3b4e48fdbf2ec5c7d68e18e7215b3ce19570d7722f6826ae37241c7e2c52a421ffed336377fcd97ccf962c007f6bb027b7472afaab4f85d80a8b0a389e23672e9fe4186e6c59f68376be6f602d2786bb23d2a55d30cb2d411b35e6aa36d7340b85112f94cf6589d2b798820e4febc0b8041c8410ba0275d89e6da0ff109659e4d3649be1c8ac6b9e92694af53e1ef7830b96d03b201d03de4bbaa2d05fc8dd588e543f0e08bde0871eeb59ac940f109f05c89312084468bc31cdaadcff33
+GCD = 45c6eb6e4cae3c81e071c3e72827cc2ff782d8c135276669162099d81667c07c499d67a7a7344c99cdfbe00af5a10d90cce05a751b65f6aee02a39f88f619e6dac16c944807a725e300070474e72164d514e94f5399bacaf1695f4b35649825bc272cedafc5b76a06d5903e0c7aa25c1e653e0dc425cd157efe4ab07ed19d06bc43
+
+A = -1b296994fd79cb769d59e51311d5e241a9822b72c10a53136ce55dd3c28340abd6e4cdd6ad72a905fe96a7a8dd8e5f2042c975d64137124c6140201292a98f095fa7ea978a0c7ba97ddfbce7d297ae6e23fb48590355380419966c30edd9b6b29bed9abbca475e80a61463e388e0bd03b5169928142d6a7612935ba934eab59159da3cf586a13d803d495f3d41ba3db6ffae334175b34a50e4f6b7ac66e5cfb2202f2b8882193744e43ba17bbfd53a5d865014700d6a82c99b6433af33a1f3cc33f04afdcd69b029f3e9bc9a9bf40b5361c0003dfdd86449f69cd38bf5f30bd625f87c922c4e5d6d55080bcff704288deb17ccbffb915a4720151d5978fc9e11b813a2
+B = -4947c29f4cbc4414cfd65b8b7838f4e74ca1594687ce6aab36168212b8d77d276610f5addca1c8446124481c6dd2997e90e1b6b53d9b643e08722020dcb6bf51013500616f7239d55426515b37853cd22135b5fcb619194e3a373cf5a7715f4817d6809bb960066463d522b071ce9175a82385e7ea5390a49c4735c53f9868374ffbe47be53e2b5955c1f09505151c2a3b937c593b02b8407d90b1c8f25e8ebcd8ac3daaac6927cd664ab3de61d04eece2629e6924e7932e3395e20d8654e03beea144e8f16c4bd96a2e17208abd0fa4ebdf8f0e18e96adc86fe4ca9d746bd3d3f0ac8c13c77b30da5f51d60f9ceb5d7060ca623b0bfdfbf50eb8dbaf2ce33867f1e5e
+GCD = 25ad2f69dfcf036d2059cc9cd99c1687be6181bd59e3a59350ccc4d1eb76fe35be9df936ab4936cd6f898862de133fd7bcce05bc6c72d4f28276b3e8aecb34cf2a96b337ea35c326eca7071f010710b58de5d13ad5252ab8e92a6e7966876a5cdfb6179b0df7f81b82ab2c6cc83813b999588794a42fb82e9d246cc17eb31c385442
+
+A = 1ba30663617d1371aab0e7874898f6e4646ccb31d3198352109a0680587232ab018a8ccdc948a7d73a2ac51e9625d808402b76ecd3135c10ba05ca89b14620c6c79548bfa0a429fd96f5df7e7c2e923da33bd99ed712a94ad1d2de009b286c9c8f0c8aa2859171728f49d93502949d26ff4b2fb1118ce8ea3449dcfdbc90444d8c18600e71ed278f9486852ae84d53e07bcddb3ea1136c0c1e0ae54b55fb6348a83b221685bac25fe461ba06f191f6422f8d44644f0780b2e2567518f460b4e2dd006a697d8b9ff3a6f476cb338356aa8c7fd601dd5521c81e9e1854b26baee4fd13aff8e945bb8986f9aef8f010c5bb5d82ccbb12eb3f422497544bdc538a0f36281dc
+B = -96bca9eed1024052501e75cbc0633046d577dc3ef25282194a844e7fa3719609168ede72cbfbb4f4466e31211bd76457bf9e8b3bc784df4aa7317d8e2ebb346d2ac38aae3f765fc9e09a5acc30b05d67a3335727b4a2db5952545395147412aca32642c3a3bcee8bc8c8aeff88522d13f90269f2e343b7fe6210cbab1d76e57c87738c14226965e4c1abde211980812b236211f707b6d0056116e7b8254da4b966db2fe1d0bcbfeb3eb1b270c946558cbc42a6229aed6ee344507a1c7abd1f6cc942cfc82226e64c658138e1979f2676da1dbcbe3e483339ff1e5eefeb4a92e72f69011f73ed351e2087b2c003118327e05006761580bab9ff28ff3b15b32b18797db2
+GCD = 1cefe3ac66ebe9311b57f32ec15c00327608abc08c8e0ea3734fa823cfd6a99d73f10ae00d571849be753a7645bc9d0d5f3f964b27e5e87628c34431bc928cb2f1930e177f76e340aca6b4e18dce426e2127898370d1211203ae043fc1996b84e99470d1a25bb0750f856122ca32444f792c6683386108d0474bb3bab0e971750f8a
+
+A = 478a5c3fb819ee019af7530797a6507dbc6db51812cab82b89b88bc8a0ab29d9964314304802b82f590af06a77334a569b3055b6a9d5eb65e9eb0b2c8f7c402668f90f6f6b468cac6f1cb9c4116004c192b0266c07b5b23012911944900b88ac5bc611f082e01b024bbc888b43e1330d8864ef89225c8c378b0af4c3db8ea4f6f16f35307b33450260db8219e1852285cb28396f3be026a7a49fd09c80d803355220951f67a68b906e4fee89c8c47e6a2fb465be105126d30bfc7f9b8801db3e79ee1ca8b3d0c00974682e868bdd3cd7a07393b26108fd73679ad6faf539b6cfd0debc51cf106d37b629af53075b9aaf52f06fb3cb1ead8d2438c41b0719d1e8152cf00
+B = -273fe1b7359bb865c48ba7b76d09d47e6a6e24e5e916cbe0fa0f16ee90497f498553b490df54f84e4f9948c5bf6056d7e1c4abb5c34576fce390775db49a46184ea8f0e8682e480261ed987ce9b7017c30c80229db8abb1ce1a1f0686071f88cc90ff7cd134bf5eb03c321f8f714f680516261ba86d0a752419423be905b830f5688496cc498e35e571fd10d8820cb8d19415b79bebb16a0f2d78fb42e5c6aaac12910495b0d7a84583667ae6584fed3f400c76783e24031c6a9ba6fa06aefd1b456fb721ed0db24494777bc9fafd74a0d4f86bb24c1794f2ea38a618bba57422650159e885eb81831e89c51bdbdb14bada21d34d9a9a3c3158bdd373531b44f8eb5f80
+GCD = 31ab60b9fecca209c50eb632233a509b83cb4b8e99161eede6d02e6a77c7fe9035eb3afc9fa10f98aeffaf736f5cd9a8cd1f039c9c247095bf2bb9f42a07ba0d661660fd165255958018c867585f2dfeeafc40a9f4bc56fc0f7b21e5448294c462850b5b82c0ac147ef399131bc3d649026fd12d80e75e8f6b6e6e0821b7c32b6c80
+
+A = ef4ebbfb56802a5346ca57ef6b20ba3643618344fab5c3a8370eb1788ad9359c6072e3a8d72791e344bfe64e16de468bb2c11d19f401401e175dbd22ec2282fc93f399dcad1724f54fef7790af83bdb43804bd68bf2bd871da73d5fe8f81b9c444130aed1e3bb8ce8e81773f96e1c816035aae1f16e1a5b36e1409086e31a60da720d35da7b0b73553b9e01fd8c75104aa371516e699e86533567465606d3a6b7bb2bed2841754151174dd1213d2ba7ce73f4ceed9ec50f219a18a9e53f667e8f9e0b0f91ca8792802d357b577c8c39bce244ea4219e080606f33bb333971dc3af64e47058bb5274d31327c38fe6ea0c09696398fc13a220b6b16549d5a15fff28cc88c
+B = a586e32cc2143ad4541ba9f1e50f3fc43abf06e88b1df4121e395f0929e8d5cfcf6567ad1213810630011e48872cc27e3f666912eca9d157bebdbb77d6aaac64f0ea31eea1f3880d2a6bf236a0aa9fa10423111373d641f7aab4ffd7404e026b6e1ed2c7cbcded9e76b2b091e7049b70ff140cb02014444cbe342e86a61c064466e14ff77606deff5ff09e28aa4560fb2aa3f726f3395ef3fd21b7b3bafc0cba401ff9802ee9c331404ef30c92cdc669fd958096437f9c0eeadacdba4f213001377a8dcc1b007abf6d72a50e5f0d8003c46606f894c34650b7d63152e2b07257b61f4b78d681052eba3399fb94be715f13397d912794fe41ac221a81637b59019b803d
+GCD = 639815f214c4b22d3b8c2b1924988031364d49f42b049474f385ca466e87e2b78a7a4f1a3f598c6dd42a35438b48d3ec303851cf8527392046b3e09fda9fafd93d7cbf80ef556561dfc3d29885abc8309c65504963deb020918df5337d101c5fd6a766feab93d04f7a36b7f2811cb6896b62c04703bd012becdb287b83cf735da987
+
+A = 660aa07b71ddd146c1ad4a96fda710b8bed1ae67b1291fcb476e41260a8ab2b9f7ff01db898b6a75f1441a630bf519a08dabf0c0925a6667f3ad986cf768e7dff357a7f5eb86d5f61e12796b5f8f57949df590abb98c130d5f7d6ef45c80dc2dd757822fa4b55ae221a64900b18a18c586a5825d5d3821071f123d2ff5acf335cf5f7aee7db76f14525eaee94a134799c848b5a7436ba962570bcb092d4295f975696f952f64d9dd1dd3fd4a749ce77eaa1f049a8b8fd0865e0c4af34b6024c532580a05c397c1189997cc89601a6144d75916b84367186c3a5cbbf4e2c6dc1a8989205511eed59e14098bea69201aabb1e91580911b94c77d21b8cd5b8189dda506a01c
+B = -6ae5047e9773d0c71b1d32e7a00223e99fdb6515327ef026c494c6b13b85c31e9374353afc16aac8c2569e0186454107b2ac0ced76df60b9fc6baf85b2a273b05e33e319a3f9f2175e99b1995442d10ad639acb76389c2bcd3796e0969dca58ae45ae6bdc70208339447a237d6629e316ba5a0ea6ef1fadcb0f6d686754a4d279f9dfae41c1e96c276e2b984e2ab1091bf06b500181a64b53b431b1be53678f16604843b13f249fde546c92cf92234e477f096d73390496032c9725cc15719ce8162f51fd69932fcac4efac4c6025b1344a3a2dbd0dfea936c6e85a4521a983feb787f1f0f508b81c1c88e2a9e486d9894faa042c8495bb239c8af4cf288cd828dd0bfd2
+GCD = d8c1b2d84dba1ababe689df7f9f002c334aef2497dcb45053248ce402ef7eab27e74ecdb1ed308ccb540170dec9a51b50ab96e10d57d89e63b45a0412a010d7540b39300e65b5967f2c054195f6ca1e783f455991c37924d9fc043deb534615f0f48ece51c20ef0d813dfd288da02677c8af8338b054ee9c0971ac8abc56f3d5f826
+
+A = -6bd8bb854e44382cfacdd6dc062fdf5d6d568e895f38f36c8a9a0d63a84b2c3d9facd6277538331172701e818029fd17bc320bfd4a6c869e3c9dd2d03bffd29ad9f4a0993d70228b58fe876e7538c66d541cb832352596bd4c89c29d3d8cbae8225d32a2ff1a28e32b1645256425fc8134161b86d7ad3f91417555e138e1b65ca1a78fd08192b5f9903ffc2d8c8fdb4003a0eabb51f0cb4c519d53f7e8b55d68e9c5f2caa55bc7cf881d224fedf71c6a40614e83f65331aca2d351836159348af6c1d0accc07a175ca997c82a044c2856361c1acbf97fdaa7411c52c71e640f50c6198434c4810a83eee537e261e18bea5a2580a7e34361bfd8e04aa06a6f3f0f47649e8
+B = 82c86e23ef4c129db834ea5da9e3953fe3b35fb0adacd2b01c4a42b257290b53d5532656b0f66808e1a3b8a194febb9fc4f08702560a5c6bb48c05f4a56b6862965d49a1014b8a317b3487f23b765fdda605d7322d4d5fa5ef2a245367e7bda972fc0ad4db2bd5016c5ce639aff7f31ed4968e79aea482de806d156fb74155a767414e23ac86afebc70efcf657062c4cc1a9938faa1bf90304941765626fca23b4091a6a82eac33d3aeb4f279c437688b00c08c2aa65dd955e6e0daf81b1c80ff34228a018ac0fb475a8b0b1b837de37b6e01b2d30177d65965f56ef60a8f72fbb47646493aee32963e7a63fcc0b7f046e1e4d32810889634a11339c14e4b827cb320714
+GCD = 205328dabed1a58b47f878fa4d310e2e1a18db441ce371a625c10149852cd14c35937c50e132b1d3f16efa56e2dd088d8c6cd6af18b2318e0af5d0aad80e031e19a28bfb88fde778e2d03737a8725af4bb6026985a789fb208a5043db76a62f618b12e8cb5dfedc8753888160fd74df134638d44a5838ed9246d0b00521b953ccd22c
+
+A = 45facb489c84e19e182f255ce24db33c49e7b12a54b71181c72c945fa3513ffe20e3d9e752f65c69e7175150dc822d7f8ffa85129da94224af72a1f2c41827aeb36ca124d12f5179eb5d31312b8e0543f73cd78bca197aa019356995bb16fe9ecd143edd4550a7b1a99f32592e89bbd00356460ded590a107497acbeb5abe2b75c5e1bec98c5d3e998323101bc920f90b64aa114e8ebe81cfac725466b5c56f607992c55d8aaa473de9cf1e75aa562d739172a38fb76f2e11948ffec7718fa8301a5d77688ec6edc80c23e866cf68e33a957f3c82532abc99274899f05a0dd47a44b147686eccf797e72cb5d7caa6ea6cec8027c8fab51b5748c7703a8c9d1fae466b5018
+B = 4f3bfc7c390e4b2013529f43cb855675e9e375e6f394d3a25be8e9f137e8083eb62ed60efd901e54ca601d2db0a04981845a1f16aec67a1c35d327659c4ec55b50e3de0506957ca501fb8fe9fa7f90be30bef19e14f156b158203bb3998343a47f7a47d91131cf1c8d927d67bf9746d8d9dc3b6c90d61b9ca4d6bb2b50ff140e93d226134999eaa8bca183f04a300fea185dbdedce4bce79e3b015f8ae008027f6e4d89dd1188fa03d46e6b0602e8c656b1fbf81ec8f9560f4e6df513e4bee6ebbc2059d5366c3ed7b71c78f96df5abf8e40362d17169f8939e34441621af836da20ebb69bc1bc6d4b2f47468d49228b97d42a9f15e0e84186c6f3aa08006a04446331f58
+GCD = 56814ae30565d9ea5d1a77feef3072a708a03d4f377d20abfcfa0aa72acb0be911e0f929b760c357ef76262a6c3e947d843364430409acd6218a5919acfca9d11795dcb82f78307880c0b5ef7acab1c01f1c5532f38247d34a3dd845e45c7a64daa88c6b2cd33c4d8ad3594c7255008e693c3dd3e35aea1810c02af06f0ee52b60f18
+
+A = 170431c12e5da1d0e1aedff403f2f7e02d7d2df4f5c7e70b6ebf12f1993de5e289432d006f8d3e239808b614fdf917123da677b092f595f6642df5b2db8dc7ebf7786e4a062f52ab777986ed8d7ffa05a54b6ee27d3b69ad8c8956f9d8fac2610870d45531ebbe39790466e9622a80f31b6492e06d1183e0933fb15caca0851996bd9e2f1fa8881173dbbf6f65969314f83cbca9a7d7488964071e75a85ea50d3af88179d0c8ac818a062856b7f12dc58a0478c9bf9c4327d0a45c2b185183ded681ad36678c035b914cb82151bdb88fcffa1f488f2554b1edbf12d16c58e4a792a489e9147d5d84f20bbf5741b9f1cc52794cb53207e31cc146be6cd6e78d55692c8bc0
+B = -b5c9f28d6abc091aa453dba450d01a7bd62b60d71ae0e2fa0f35092afa53de49c77989ab99c71684bff7578aeaa4b2eee3b372bc6a763b9a365eb94472b9f4a83166ef4a59de9db0b6e84090a8b9d7270639f78d8af981d070102db58534b6544a35e80ddba736ecb036740733fe7b436223d97d3b3939ce17cd1ac0e2a14846328011d6621ef7c6f726451e5e2344ef5e12ba9a5e9098e29c67af968dd8b599cdb785a9e43fa0a0b07d02f2a35e5296097726844c70e8a61367caa7257b6a22616116aebe1946f2fc2506ecb32dd43ea02bdd5a3fe61f1c6d73b5be3e9aeff42d11d5f7e0835c464f9e688999a2046d4c32a8ae501a798152baa6633d5ed464865a0360
+GCD = 43b413a30d57328a6eb27e1193168df76da0c4b8b900c859ed7680e8fcf2abbdda4994a0710b400453582a86a0dea35812d19c07889b73040a754b2d4d8df7e0ac7d388ff7219781ea0381f4c1322e207486b0f4e5231078b11cbeba57375a71a11410037546b5c24829aa7ab85d87894c3ed58a70642eded9edd2fda2881cfbbafe0
+
+A = 362d093b97bbef2d9410894bf0033199bfdbdb8b452d79b997bb0f614eb51efaaa1499b3a91d0479953ae6681b337cc19fb14bc8753d606f0880b34ee9e7256314aaef9757295581b1aa83fcd9ec9e3ee0c6b2fb4c13b4569532e06e86e480645ea89776ea9217c764bb5ce08c5b686f96752af5d22e705b38f5566a0b512d362af51c004318bd744c21beba52cd2d4d45cf811fefc57dc3e5694b7c809a08e18fbb58094c5707921fc8d96b7a2b90453cdce7863ab538c183d43ccdf33e898f424e2e88fa0652ace337770bae72d8a47371d466510ce432a05aae11c3c02481f65fc5e87f2d5535aeef52bd7d242601de8602381a03508a643efd1f8c6fc28cd4a0672b38
+B = 14673926e6be16a743a789298e4e882675723c475ca45d7b85f5a62b9d982079f9618a7cf825ec7c235a6e058dcc2aff331510fdc29034f29aecff663493faf7a600a9cc4d130c994be02f0300529e0256940541f83f849f31b13bbe07112768e032f2c92c5c37689b6622dc9321a4ce726858b30274b18a69231712864cdfb29f13c4164db7b1a2ff640d7c32ac4f8b7181be6c4e363cde63dfc1232a2eca9f58e3e0cc7c466a6c92c70930acf58f28929eaf1c64804551cd3793e4fa629ed7ce4cdfdcb1753621c9929ff81e889025cdd8b67aef79a16944f256dae8e3a9e2762563b6072e29d3fc393aa6866851548a22d0e3f5188a844019dc0e47903c99213b0f94bc
+GCD = 31090b46338979b42b5c3690f7f197cb566af32659baa035e884bb6601f99d2612e3e613ac8c31b68af42f2bf52c9ba9af037e96c638eb62fb921658e58d805fe4cfa091cef37be5be7cc1aace5029f332519c3e01d76983616d9be40aaf0004fa9949fa89a73f6e053e0d18dfef1c1204a16e8776d64810ea3559c5fd0278a3e039ac
+
+A = db63d208a0633a246a89fd9031611b78bbe9d4a52c2df17383b5fff064f593a517c7a77958fc2b9285f961bddaafc19c989e73f6f1ed507013b084309467eec3381d28414330506b18150ae4716d09e383994ff3bf96fe36bb22a905637574257a63ff1efbeac747a10edb159ff7f8cb81a43723c76a29f647bd282b5429ba09b33894a46e8735d510865832e73c4aa5dae5ad288909cf300fbe50a52bd0eae44f368066015c5bf54a3be5f8b41dbc4a6b3d4a231f8abe2e39fc2227ec6dfe52efde320a5a1af5de37d0d45d63bea7eeeb05333c4baa7c73471c6d6c76054f2792bf6970e31bf511cdc98470d82029bd997ce7ceb463d40c4464c3306c425dfd40acc9b280
+B = 1728242ff6b69959114e0f9e81f58ce433367dba897d14fc31dc13806df4e482b8859f227a043562e93b72f3a701f508202885caf7767e69c24574dce94ceec8db32d495bc7e827ebdd0ae9eb61184673613182b12d7663c0756a91ae3ce082795c449951cfb965cbb5891540dfdeae9f1e31074d5ceaadf01e7fc91789eb6d953f56b5eef7a5d58ac5c1d92a2b7408bcd9b92f391bb75ed527115c81ea64b272ddb20bfd557e20a78c8b75b2993939d45ae510922554bbea25232ba0e128496b9762c43d1481314f044104092b3973873b0344bed20b84db1e31e843b67209d114e214719c7dc22b51bcf2a3b3fb00316112cc08496a06c4935bb5bca797ad88ae8601700
+GCD = 3cc6bbb37ad2151ca283060f19eb9f038565a1666c5d0c207374f3492a660b62f4e9ac0f28936e5f1c4103ba5e0101b8fcd29ca5658c977a2e1c930588843f6efca205efed539f19829348566b608e9265fa0ec3e64d34d830b1a51c2150d9c5285b2b1750c4411358cf16b48f9aaefb2ec1137580b4e3088de545c6bdf09fa0b74380
+
+A = 59d18201e2c7cfcfe4a2873225463a60ef53918afeedea61c689ff19208f8023891950976204be6258f680a43d6b55db9ec4487113a5da1ddd4874ef7db18b7f7e36b96f533cdef63d0ef7c038f50119fb122d9f7fd6bdfe5c9da8a1c6fb3f15e4dc8ef235ee15a419137bfa0fc69587201ecd18478d1dba6e17124fb73d59eaadff001760945dea6de751e56f954705fdcb51281269ea1abc984236caced8741505cf27dab022e6c61467fb7598d3e171de5584f7a385214a43e1f13a4fad3deb294617b1ca676519e3a326619ae873e9d8ba2bcb4d90c9ec0b4032c8fb6d603b70f565ae3e4fd4ce4ad07ba52186243d1c10a1b74150abcd4539740e78aecf830552e6cf2
+B = -60d2a3646575577781227cd11feed4b28ba36b7d4a225c4961b566a00dcde2f4efb0178b5e88c873df721da4ed42c15dbd397e3ced5cfd9e2281f3cdfabd00c7350da145db0ca82858af52f8fc8f122b32c3cf545b9dbbadec8eacd2d8f4ba5beb465c71655fed57f0161eb5d9baed7ad1cdbdeb293ccc1c714e5f06510dcbd8d3e58685774e598a16d58bca880583de5c602f717ee080308c8b9060c298364f6858d4ecf467177e26b912015d6a9e9a72de2649096aa0591ab3d139caa7c5a59fb7e9eef5dd5786ac73db2e2c163ca85f6470531f8bd3d66b5972644465f725094ab9cdbdf742a83b05768a539ff48a8d8c4c717e588d7385cc55abdf563785b4543b6bb04
+GCD = 26feb6be47b997cba858b3f78200fcab6904b417cb9ada8af0b2abe6ac40845905d8fca55baa7397e17f2be24952d05076ad3bd617b07ea259277b1498a46c782e5d92d69aec722e38515e3a419fbfc899c62e445b0c0f3ce08b4002ab67e7888a59381ccf167f276d9c1df96ed25554a42a5e3ea345a9c3ef5e6a2236bda1fa95f3dd1e
+
+A = dfd87eb1e3a63116912102c87f987c39356e4030597e06493468d36f0a515c5d2baa8fcdbc87ee38459c2dfefc897b2f4fff810c704940aa7bf3222fc66422a156772b48d041e5743d7ae2d683b4cffaba49fc4d5dc66b40b091d27c7434a5852a24c0107b776a197d7b7a4bf4995dc94a0ba1f4cf52e63ec641422a9ff7f3f00546788a1e3f7547f44953aedbdac6bc4d8faa6c999ce8f5e01631f37c3338bf9c32820fa630fcdb1db71a58849d827e9145fe31c64fb8beac082c84a222594bf093eeef8b703466f3c93c9b7d3571b49fa9eddc6cfa712fe71bbcef6d5354a8d959faa109d0690d1ced14e0f59ebfc4ba099cdd983a4aa9ace7220be2606945d01fd4b3d42
+B = 81712baf4ae40cbc70b89a1ffa2b72de9c9ad78d7d23cd33cd0d866c83f5666787b664ef7340142e4f343a7bded17d12528c6eb210fe0714839d16e54998d2b378f1a5c589864067d2e0fda24ab671b8aa8f3d21c21238419e18959bdbb777aa7f52a907e03ce2eebc0862b0ccbd9673d32b61390865dca7b937192bb29fcaeb8c5dab14cb53414ffd4d3107b56dd2f10324592e46f51ad0ac62e3f8c28ce1e5b295d77de5a02971d7a0ff28e492b79ea66479ccddc5351e3c10afbe72e7ef7a85222b279128cf4ca257506f645f687e5343eb7fc1f5792310ba90a9dd4e0480a965dab9b28d45e5ec85d3e0c828a9c22616c5a2eeb354ef1318272250911e03b115e215bda
+GCD = f45f95fa28fcf5d223f22c9892695422dd22173cfb042e903579d73f48b8f6e44e1bde303586d914a9f7bf74232d8cfa71187425d4ea32a36d96229d9f0ad0947625400c50162f661533ebe92ab0f73958e5138107354a216717f1338042e866d3c7d0450870368f09c17449b52b19df50dccd58cae0920199041752e3f06cc8d08c4a
+
+A = -50ce4256ec71d69578521b3d16707eb6094350fe4abeb6001e679c0c3ec553cadc92e2e561da9504a4b522c7d9b6937aa701c905ae89cb8f993736d2189def1c9966ceed8f25e415f5a7d4a2fa777b51c32a26f14861465083eabe0a528b947ee7ded60ea68ef46d1b9b0e65bccb15c3432754d302ffe1a8277ddb0c1256bad67d912622536a9819efb7ef39ab2aa0552b22ca258143d90ffa312daf40ad669e3683d4854cbae04b858b40272529e24333ab91c3be2033d6242648038452e73c8abe10002b8bef0b657b5f36881042e417e67126e6c6731094d784a2f81f7ad4873b53914a55b1a786cc6220ebfe54b8e92173b790ec973ef9a290111d948b289edb5391bb0
+B = -e1a6bda5e162be758a03884738cbf5a6944382a20f29eabf23e462765c4d0c7aaa40267f45295d43de8bad61163e5c730124f227dc811e63965209220490918eb2ffb637446d21950fdd3b9949e9917f9a51231db8c4aad80b2892e2f28c72af69177dfed32d0b5319aa88cd6007390ac38f4b822ff3beb9fbd6e0631b54030fdb78fb54b520534dcf7559ee1be33384dca543f2bbe3515cef09481101f40b0676fa430cf4b7422487eab50c69fa190bb048b712a50b28f416f799a342df9d68b22675d8ad36002234e103801b229d565d28b3ed1f41fc629fea25c08bd4d5aa90ec06f07b2420072bec46e9ca146f8a188e75b0a6d6cbdf49fbacf5680d33585dad60b912d
+GCD = c54025b47e09a9cf36e5f2cf3ad8368899a378558f92e81ea9f2dfc0f91dc0f93d2bb99c7f3a49147ed0414bcacbde459f3915f48ae8c462ec286360eae10d21907535debb1edd7c5be5f6043692909961d4279511a6525218e359cfd9b340c6be7860de954ce7f921d3c35daa198dfdbf334f0e14e565a27d76eb4d5a93fd67fd0da5
+
+A = -18236182044d104142b78e76443a4119391bdac56950d697e1c95037f4ee8138a412b04a9ce583c1bbffeea5c89a61fcf12b0068d49b4b1b9c925227f3710d3665a75268153e26a71f66d7bc184c68b9036d619bb81ae6f18178a7d45d0b75d6d96a89b4be1caa6a311847d42b7199138bea22404e964802d89ea8ecad9969836181a15317fe6e52f049b0cb67962d03f25f3cf347d3c76afea5b12a13dbb9af4e2356390fd0b6c779354fdf630735724f5cb3d14d98d38570762db0bae978cbb719c08420997ec3cc09307fd7ffaad6c94ebb03926696c82de2fc4d0234b513bbce0c74373387b44dfc10d03611e08033e64c9f09573fa39af07188096b4677a21c0911230de
+B = 959ea6d3db86c81db39ffd1046120f9802d085290b7b1d3ce3934e7ecb7b5664c0e918e3cee3b16c2ebbf91a1e0221ccb62371c5e609af54e587b19e71c52bb5f101d80e9c841e993cf1d3983f736d638df1683a870d878cb7ef3d3ebfd8759dc6bb73a3f3d7032488e32d91cabfde7841a8147da3915e94951978f4dd0391708b46122cc718a49333c685f66001a852fac7c76b5081a93eaf9be803007f2f0fb70a3134fc7652bca56ab105db1c3b095917497c172c3f82972d26d4c9fb85ddfd9876bbfe120e37e1c650cd2ba7783d13ac53bab52a668a2c632b3283a244d1de59c52bb59d84665af89a48b02fa825803ad180dd5d5c924c61985e3d4ec975982bbe32dd5e
+GCD = 18600a6700a1c58e78a0dab77ec2e7e788d578a105dfe0c125bf7d40aeb2e03a65b6652edcfbde90af4672b44c316674db8b3174cb80d10793a034799a2628d8c978e4ce70623350a738b62ce5cd83c576a49e066c26d3a419119075bb1af2f3766c74a59014266b3509e0c1883c3b4eb69be0dbc72b2225d79ed32b31eac9c3d5d3c2e
+
+A = 3e48b78a6816a5946a5d1c79f43149027d84b27589f8462710cbc47b874a70f68b6301ba3f7e70ca13f35868d0b79e90ea54bddc035e4e98c7093b6e47f62887eb0802557c12c445f73ba3f5f801cf5b698d735cffeca747d35e7d4ac213896ef1dd5a65da752006d9a555b0e715b9a0a0a7e2c753426f344971bc29d514829c1d337ad4f4098aae1560912dc3c64eea91491aa2799db50b2955d9b00b1ea5df2247a6aaea2e6d15925cbceb055f2af63304cbe251a1342f2f3942aaf77d2c34bf03bb1b664bbbbb82f535bfb6678d3ce61a475b139b21f3341c12f90608e2586c07b02b169e94f8a235a0d69d2e8eb5c150aef90dce19a7c26a9b07fe3a14d3861774d67e6a2
+B = 2761ab95eae22a289564218b9188dcc6267e6c35bd3100263299a1f75e23d11a932cc3a790988ec23a7c3e8026508e817c33b7c8691fc0b3b331803a5bbccd813bafd3172055799aa0de0840491629f6efb3eddad90426f2b239be9d69547d43fe66f534b2513f55a9dcbfc2f670469a65a15a2330dc0f56e3eee3ed3a2e1a5f253a791ba04f6553ddb4268bd059ac14dc11d2786a824bcfd1a428bea936f32860683d6f6287af66d2e8b1e4417f1e5de5e3bad464f4c5e06e05357744f181ce05dcb001bd078a8e1c1ccd0d25f161f1818b197c311412251a7bf7d23274b45705ed0f0e9419317f063499826d6661bd504cef5089a622ea1413b6adb2a30cb8a46acf602e38
+GCD = 603d924f97c6102eca531c37ad42fb269645f78672ebfad8fc58f276f6c71cc7d42dec7e4fbeceeeb61a4f291b69b5dd3d859af901924e46a0db605f7e9ff203eb1fcd48456ccf9b23c31bdd57cec06c558fea920576263bf513c06dcc3df1b55a4b69648b6950ffac92b945388c05409128166692c5d6fa9f47fa5d77e75374f894406
+
+A = -17631d528082d6a1c150926ddf55fb7c6f17c227226931cf5f20a8bb42108cd7acfa284475fc6ae2692eb881d4ad4b705d13775f8cd838522fc99e32d721a8aa9eb59d85612113218c074cac2869c77aab0db610aa01a5c0058df81f98b71f2a70357ce6d61aea9acc60a51bd56b2ee906a51989e8b22787b2e6dfc5005149a5c25cf379cce0f86a5f5318b56fc0a1b42f7a9ed3273fb07db498685936ca712b374d41c268d894bfc824c2a234a0d76d1b66cc3d13f3a3c9c35c28b45de3f039e4660d3c5750990eb65a04a2ce9aff48c316d2a716a4e1fcad706802ce9af852691d244f2b16abece67edb1a3e9dd9286061f43e0861ded79ab7294823d5a97c7a219c79da489
+B = -9f1667dda719bee10b08419e8f87a0a623eb3b56f0b552a7645520b78b1926cee28b32b67c0ebc162165e551c67181813e6db559a8f07b6c920294d46c60fa717925e17765f71e0ac3ca5132e83b2ac3e45b679411c82850c676685ddd9fd917c7de8a3cef6dd75a7ac5f22aa4921b92e52d88795e6801afe6f8f5e63113422fef546fcd69155b58b881e4d182bc8b0c0c76f48b4a0ea9e278c68d101e31e096ee51cd946ee36ed3c8d27cdfb94b58d81a517e2f759cc9145d98a92da35dd26a4200ecae511dcfa3a1bb3c845ad7a95d539c63a43bd5b5d938eb7de55774f6e3a7e43abad0a45560a4fd327571b6012f26a36898848a1aae374fdeed4cf71c4e2a84330a25cfc
+GCD = 7345a8d4cf2f8a4b36ec54101ee13e57e0aae443eca251206fc0f0e714756a759fafbf36b7b3134a81db28b715504020b08cc9fdec5795fcb41b4ade0ff63b52b06f3902296abc3bbdd6589d0dda3ada2e75e41ef8356d81fd55d8cde2240ecae6054e6b0603823d45e3fb70935da77730260e1cf585f84556c6aabcbc1088d9db919cd
+
+A = 450279860ea9c8c58694bf377e76e78e087f1d6376f248fffc7a41c274bf133324798b103fe8636362070fac1d1afc5cffd552ac002dab43a81eea58e41ccd90fe05fd52fa50194a9c6ff2d089af872cd48c3bb10cd2dc9628115fdd071ea1c66d5a8e5e4856423ff1f3de87893bfbbfade73e447f2e1086c336d5e0c8e208212f86d3da351dd47bb4dda499ea4d19e96e57ec2bc5a81154012b0521dc49acdae2e238efbf48206f03da1fe21c93477849edd12ac4bcc14766470a3a4e1d5967421074eb6cc22e35d9d4ae5a2e86a73708bd45c7d450f677e922f6563ea598d1302f75c686f56c27c5b51a6a2df3638d7576212e406fc6d97941b8258be32b7541b46aa21dd97e
+B = -28bd9cd2ceaa870e8d300cbbfa75696f5850dddb6315453748de86d02d4c2da2a47b011af07e16e1c89faacc09eae580e245330f7c48d25ceb4ac00c4a49c61b837ace3b5234298f7b2cfb3a19609be56ebee9a1818b718a393f702ee72277578a183a4ac7be7f8dc786af0658c874349afb582397d06eb9ad1df1ad8868692bca894a6fafec9d9e17b278575a3fe06786d4bebddf27be21c4708bedc452008a7f2073ee5d38a3e2066d04799843b5df1e1350a7623c3f931ca6a46361096297b7b603d57bbc2de8233f6c70a58e892f5b084664074fc52d7687d5cfec0f63e2cf51ea54aa8120728e5095865fd97dc7c3336433766e4b297c81993c7e5548e61aa303bd3fd4a8
+GCD = e491ecdcd0c06790767d804f1c030479baca750dc5f21008ebc7a2cd2d81d6da34fb91786a45299d90655830b11f9e0669426c27b6052b220393a001f5fd022e0105472561b1a64b340362eb276d27faae59bc9499f8729061d5b66302b4675ed53e5b53837371883a245811d669c130dd3509584b727d551e719d301e06f7b3a85a3be
+
+A = -1ce80382cd89418a201901888938890a7062b5755837c09d92acc1accb0a4ee3394938762911e39b0dc9da36662fd5dd21750bc1583a35c8f132d36b0ac12b40c1f237ff1a12aa8bf763657971e75a352d56d7b38f6000f71322c65cd84ac43e1ab510d651e5b3852a54911dfb7a7e38e3263045a3e37e9c14b335ba7639865bcc6902ee7c061602bc16510188ed1844b386b767947d9c172eaa55918be776d85f9a81f8b9b90d7d820bf8a931878c4cbf8b3511eaff9cd6a66ccfae465729b7fd84b1dcca4450439bc47c801669681c54ac3a3cb2bfabf8e276be0ba5cd8dc5ef6c55c4408b3d5a1d1d5da8015a659e82bfa383bdd70b1ff524c56ba1a95eee1a185f28276c03e
+B = 15bb342ed65dec3431cc8f21a322413b25a344ff38cf283b309d6959c08e97837e21fdd9b1b57dd3701757a392f1010fa58a790b6c90695888a9ac8898abc9da04ba9c4a6a8248c8c81bda8b266b42d4d924801cd291e5f4b737989467b999cebcfad555b0c528e8a29cb632dca090cd100f0222e6ce289af4f924d61bbe3eff3fb5973ba3d4672d8d678043cff5bf993250ce7754cb64b19411b643f4426fd71f1b115b241d85c28e5f93b2453954c5f0a99bc28df80242ca6839c65718ec2df8a458f4bdf8754abe713469cee35a6b44b97e6ae324f8401ad0723da5b27e73c93a43ded6e0d06eaf708477ea7c5b292ba1932d6ffb0d544fb8784b123232a9fec5b30e86846ea
+GCD = 39d5bd8a23898aee733c4094756541c3833a3cd2fc1c520cdb91b541437681ea04959330f13f0c4131ea2d48f2db52ded4726b49010743e7d4f5459485a8ab3f0bb26bbafc7c19c08f84ed9f466eb1eee30d3381f87c18f107722c52fe6b1adee89c2ad39794fbb990127ec80f9a113bde1414b90809ca915de82e27823b0d816ccac6fe
+
+A = -7bfb811495141502abaa51787f4781e4bdf869f2659a4eb92735ff3c865101da6dfc129bc6fcf4c2ef4905b82730c5b941a40ef7e11bc4173ae9c4ad56b2d0882345d96edb828cde86bb090918858d58ecc75d1a05bfefcca1fab9cbc66f18986e2dbc95935cde461574930da5e15d0360501c5681e90afd5eea8075cffbd14f0608f85a3be886956ccfb6c29c636f8192645ccbec6f536aa523918711c263a07d6c2c790e2833a93e1528eda4714b8a48be27c7848c6f202764d10bbbb7c3f0fd670adaadd69acf2dc8a8247aa824d76eef2cc70e8f53a978344934768f40857ba3b1bcb69744d78106a86cebade2ea12c2635e2a31053cd68673c48bf1d42f7ef5bf9c7fcc67
+B = 3c09c00cf1a7bea3acb4360d7dd5f47f4e8349fb8b3aa03bba35bec038431a5a60247e9f3e61598a9c6ddf7f04926b28d673ede84388f75ef31c48d13a8fe4f57838babd5e8c7b3c85c64e72bd9c6dab589d254b932d835d266634f91dccbd12f56f615d3b419f28c6ac6f56a490dedd94a55229445f0892513a7f273dab04193a29b6fa8cdbf7452ea8dc25cd43d8e75b602f5980f90ef54c79f03cc8b1b720274adb4740082b1f821b394ca0e74c74bcc2b5f7a585ba476d97a12b9b0b85aa26bf76aa4de7518d12dcb57c47a1fed4783e711f1a498d45c11b740607d7a0f82d105c2194a0b988ad04edee0ca91dcac839ff5125c19146510c3d4e3a43b62c0dc3d3ccb465971
+GCD = 669906cfd7f14d05a626062cf68fb90a666f7328cde6fc589a919bf105cf5342c006ef3da8074c48f4b087fa91cb7377dfbb5d1ba167590163ec5f145b299fb51e225efe6515e5a1e272013b671f6defd4823a2ddc161464fa4f05b607bdbc94dccfe92cc64f85adadce47e96d0942ac1c192dab5525961819a2005b5f33723b1aaac55b
+
+A = -d4678ae5cb88ce55f3a66e623a7a0889986b1bc96c3a186c74c7c803d10f58363eddef30e5e275dedf210dc41c2bdb951c8af8d85c17c7fefdadc37ea73afe8dab4c83e64eea676c82df92101080d9490a0500a770c6fa23d641a3162b49f9e7a1db24339ef8e33e9e8c38ad150795d78956212d0461fdddc4dae220cb80bd738a9490abb457ea4fec31ec4240e20c9d0ba8195b25b341d8f3b67c0302c938f2c6b226eb3b3adbafb896a6c08b6f0561f75f046d7248a524df1871ba86525ffb7ee22c63ddbfdc8fc54a75ecbaec125be66668a28e5bb03f4207a26f3759425e2a745bbc4e0789a9941a23122635e235f658f0062ce45cbcda4e82ff81cf82f8220194637612218
+B = cc67d33405eecbe1d3fff0a229406a19a85ed02b217e700e10f0b86f8ce194334202d8d7050b3d7dfbc2e0b9f1528235327f56eb560aeb39e364d95717dea640158d18e171259a0d24184db0a94e9a4a9ad70094aa250a350b8b09542a22f620ce4c8ab3d8f64f0c18c5f46b0bbb8c8928175090d55010ec8315d159574e7d34c1a0143d04cd77df3bb90087d09297fc89c0b01e54544e8f33f83ae7d3e8fa21f58440c369a259f082f3a891459f23bfb98ed959cdaf23a9e322a8a2f5dbf547540ecdbe18fa4edbbb30e65ef80e9a143d1c22af38696e4fd21ed832888437208984b5e67493545e7736916c65da14ef6b6b6135a20cbeb1e332f39fdc7af9f2e1338e541500de8
+GCD = 20bc27d10879a749f8731a43d12b91a27efccbceb90b23544db8ecec9a3ac2db2c4402ded97dbf6a03bac6344bca62fbab91344ac557f8537c04cd4c65812199fbe1a40aaa1c484851550735314f158273d1c927b7dd516d5a8e8ae4a74ad6c27ef8f735cfc01dbe39a6cbe2c4a5253d4cf713ea0df14a0d63847f12b07268f16fbfc66f8
+
+A = -359246f2eac8ddcf3c38f520c0bbac164018d3782fbe37acd9799c81b6550e5ec9328f9541c05602b7e7434660aff0eba05e5fa16b826f89547fd97e927a84ccef536fed4086abc03b4b8280e607fc9cd8f0a1bd519ce2afccc024fc916793e270f6089c5c1073695c25f34bbe20373049121b37131a1d4aebb288de2062e3f9671a1573afa852a782bba2190dd3fe6fe56c7d6ae8c69e2d760a908f7c7f568e0a762e677ae4b678b984507ffca8b74bdebde1bd69e474de634dc229a1a58d3a4340e8c96cc286a9ddb672504c6ac0ad26085f8fbc1e817794c6bd5cf81010854534919b559e7a31de5f855c6ef65981efd80111a6e2e25ef07238e0950a61745f1d42f29bc93231
+B = 4953790691ac06af76053bc8003afd5ce5a2bcb15b26a026c80a1b2c1e66ae2ea4c8ea1b6714f60bfe86f6dd3c45318bdc12bca557bcf58ab2c6dfe984c17ed5c87529438dc927d7871fbdb7398cdcff8e2295f986e73a1b6411d518ab1743929c01d0d49fc0d16f7a7f6aae4a2267bae5e041598011c2a915e46f3c199975b2074146fb1e9a1c9ba869a1bc198a4bd612ff5b0321e7158612bf6507827319315cf63f68d97b02518c42d8ce26f91ee578db9007b23646596327f0aaecadcc7ee1e3d35e1db23558b3aee2f8cc0d6daffa802d911c2ffd7222bdbad3e36e13c58c7db6cca38a5a88a080476ff268e372613b6e38f8ae0bd6e76899ba78cd9d9ddfed56573dabc07f
+GCD = ece242a01c0b2c4daaa38037d7b22421b66e321870107df8635723a9287c30dc81cc42e80cc2a14b62c23a117ebab6138d8cc5dda2e3dabdb29903b00b5a784b571f83b62bff71237405db944b32df92d156664712e8f3209f99cc5d94513c5dc34043c10c6473c13ee2ae9289a506df1bba78d3fcf72d5c9a73c40cdc5a4e4a435e27ab
+
+A = -a04d9eb9730f57284b12d00ebb201f305b4d30638162b089c28fdb75f737c48d55311e3171d64c06297e08421e3c6a6bf26ab82bd6e2fbd1f331c3a02f561f5659c5ad14dee297b0109ac2494cd526773bc1ce19fc2da5a7c082bafda240356d2e6737f18e96ea7a3aff1ed1df4007efc2e6dc6d06c87bc35aafb2bcd15f9e09570b6d689c4fbaa6124cf430cf7524e2f8ea5459c344f586ee190c327abf097b34645a61a5bdc69be8b44c56322aafe675e006888c33c2e908af1d0cdbdf594d10b7356d1b71927344c42aec71a206864ed527c43ac7dc0968d0c5511e157f297d79c47bcc2525227ea0358eda3c7609917ccdd08f7fe08828ce185d08e2b2675ec22140c808c820
+B = -800c2fdaa0ba8d01e191496ea282dcca877e0165de2cd7d86ded996dbabf860ecb4c80f8ecc69493a38cc56956da5b3fdb91d3feeef139ab2b08fab8c9544e0ee12f837fd045d226b942667afb952f17bb9abea344de050f9776655c62b3f00aeb364856cf929c9962cf5183dafcc6fa3cb28b313604adcba41738844523a856936b5e3e9fff898c634ba68bac472ff2b591b14ae70d1a36c410fefcc38a2d7c03b94f6277299129ba6e94953992072633e77bc4712fdefe1fbf4c76668f5b43358e94c2c8b6c55637b6ca840f034d5446ce137c006bae422875efdfe134dc04c199d4b7de2cbbb71e66626a5a7a0b2af88c39f1cb558e99b29ea926c049197eeb5a8171f68c5fa4
+GCD = 8e7e3e423b1594da5e562308c2e1ff35045b92092cf91cad833a0f64a015aa3119770011029ea3d6ddfa9dedfb7c50e761329f50a81e24f6f1900121d58e5fc38d74a54f27256bca7a2e953c6140f1e1db54b31f1e7290c8981c68623a043553e4bdc95db4bd8ce38b9d00a52b7478d918ab867636e865f5b09ef3463a752d68389d0c04c
+
+A = -288c00722c67a90bbd5c69f7790f11660fe134629607f12bb665a59d4f6a0a23159258d320dc2efafa1f2dee51538ba795c2d52a54eba9b8786db79c34e4928e3cbcfd96c72d5c480039894b13f17832187ff784ce3ba8df628502c28ef28808ed29ebb55f0e4a52bb666b2777220776c5db82b070d9cd37fe95e0b23bd797ae54e8ac5fedb7d0574bfc029997f0ff13757d0bccf20c7d7b9c007cebabfb3172d1fb1c1ffb1b1fbd433f151592fe2181b4c471e84a3e2495da7f100ce76cc12e7a1c7c0d17deb6719058467d109ae8bf2148e6904c82a2a6d4c151d4a947ebc3bc967e485ef47b95a656cc665c74035568780d3df278efaab910c0915735eb992af2f1fff3526666e
+B = -5183ae4ab00b06337a82e8246d5552a4d9c625b94674ea59aea13b2c9e289aa8ab26b95548ef1b24c275510f7cc7b752313ff568bd3d1d9d6907a0f1d4fc6876e99b2d6b07dd9976525368e0f93261baa7e8d9a5e166d9f84fde2862d3974e5e468feb0bf991ec89340cc3c609cacface3a3f30228b094bf480f95bc26817bf9dd379fa19191a3bc9189e1c6fed5fbbcbf8561e210ffa2085a0383c4287bf20f84b4b88f2e316350a48d73d0d4d39916d6c2a28e3d44a0486430ca1dbf46e3839bec6a859ac8233a90624458a53f096739c23ea0594c7e504a8a90478c06ef568cc85e45c2f77b84fac31b960fde82020a603cce8f49725380a00769b7c06b002982d1bc4866b1ffe
+GCD = 53333be01b3e2bfbf04d1677d7b059e069551affff56a6a25ce0a78b2b4bc2226b538cd30f61a8e0ec4ae2e28ab648d6c16a5eace16898f4ea9c69de6fb618a83273caa003ddc6cc33a5165416f6374df02f8ff3ca9467d38a8bb2ea2c4f89547cf14d5e1fd26352c3b7b5d0946e3ccf7ba658d86d1f1358bf49058476a89d22b518cdfdb6
+
+A = 43d6dcc73cc475695c33b6cd5f806ee120cbf72dd0df3f40a056dc1d90deab0282a09244684b5bb764eb6d4def935fcf23754b0cb376e7670bb703f4871d7464411732383b8b4ed8834821bb4213b23776ea16c462848ae5e34f77e347dba312767571c12699a8b1fe239673640675e5bf7fefba62708678d74b4e8614cd4305504764575d3abad7887817d89aceaad2223e65382d6eab0d03a720a55205a8329f5ffeade0dad46e680b840e3867402e68e120a03dbd0895942cd4cc2302da6fb58859a6c3192040b1746c4a26f6e5a4a959883ffafd1448fb64ab5e9909df0991c11d71e998f579d60074d85042444e8cb466837abab0029819def11761fe6a8e0476139ebe85736
+B = -a8387576996c5a7e63059d17bb927b8f5751aedf8dad083267741a637060c1f8ea7d1ebef5cb6627320ee372e271613bb95b8afaa48c3e60daca22e27fa3864d944f386472153ece6c1a70743f81739fd428a17a876f0f5db6d18c1110e3faadc6049fe8321a6223c1549db6ac1d3e5bab32f4570da672f1b60b279ad40ca61285afecd076a8a9e9f330fc3b4e533b44a1295fd105ca90ed7b190db7b939b3a53fe28968e44de0f6b983016301fd1d2136718fadf0c36b1c557c098ec1f6b580c9abc9df42fd5adbaebbefd4330a818f33c422c2d54104e25b6c31d7ffa88aef3da32cf962884df87a0162f48e3b74a599ccef03cbbd20ae67c0362c96bf248d41a652f040c10b93a
+GCD = cfaf67474417ccb841f307f55e471037ac53c0a4cc8131e4d288f829f276f93a3dfbaf51ed3028f29e965dd380926426a2d110a4a141f046af0c951531813773359189d2e717560e4f16e80e4bd630a8922f0626a5d05f5c4bd9ec66422ead6b25b46017d1ad636cf9b8e7112a33fe66bdb9d0ece338e56b4bda1c877200eba011e1cda86
+
+A = -43b1765ff21cae14f810af47a4599ddf4ff257c5c36e38138080d0c3a0cb22c7151c393133fb97754962379534e859ab5a3c5138d3ec769c809149f19cc89cfe20536b8f38ec476a70a21a9a497c49dbfca5dc2261708b65fadcad68fb59575a9dd29ef241771b905511ada66b8bc0fbf3336b7ce3fe010de13144e9c5b1a2d0b63b2b6011db36881fd880079d44d3cd73f8d9cd0b22974d25663005465416bd2ac5caab054ab7134259527ef90fac99c771385ab68dd22177ae3dde085a38f30f1e1b3fac99f8f16cd5083601f1f1c1afd04510124d4e970f9ee410256aebb9ff43a4769fdd32f2d452ce1ef2b6c8f68fb192ce601baf6be1d55c75cc521fe23be00230e26b945308
+B = -43c70d187d9e79f1dad18ee1b898e949e1df6cfa49cb9c2a9b1733ac2bbaeaecefe5d716f151204c338bd515539d5f01523c08194a70d07b60ba1f1525f011d5d7aea402a8d2f266526790228b80558f029a44688577547d43b397d87d0f20587a0f55ebdda11cd1d1ac55d7c87bdfd24023d799b4aac3c681b799ec16d0ee1d28f1b88dad16741c063be1133e1f90d727f64c10dbcaeba18a61c6e56c411f4e856f5738ee59231fece9d0cfa7e8577f5bd34486defcfe0ece976562fcd8ad8b4ccfa3fdbd60d8fd80584b56b16ab604f4e0413042fc41efd98e735f83ccaca3b9023b124e6014997fdf13964753172da6698d9eb7e30d65ba2938a8af05512e7055b984719fd0aaa8
+GCD = 1c316c0d5e61fb4eaba8b5bc86da1d78b34c76107ce50b1dd6e38519ce8a50b4c04d5791ab9af772be819db4360b44b066734e8a7744de11ad75d8b7b8723976fb242153bf15f4f4cf71a15e5af6a98eedd89596a1083e4118bcebe7de4ce492361fb2dc8242bbad2f81ea0e0c76a5520cb8ede35be10d7863cf8b898b04a5a8fdb311e818
+
+A = 14ee5d7fe36e16531dd89969abc3fbd6bc45fff29e3d363a41ca6ad5b4271522cb85c72e260def6658cf42988d76dc32089df915975ee73248ca207d11fdb8da81aae4d1ed62ad53c1696f1d5912d750f05ed82293a5d116fe7523d6530da742e73e6a976942ff52cdf7ae146ddc745b5eaee01d63e12c492f4e7ac0c1fcf0dccbcb828db06d49dd87ae2d1e3b9b1dbff15931b6dbfed01a1cf55528bb62f3f22a0a1c9ec283205b06607afef4ee59aadb43882cdb18a60d0cf7a4ef1eead7dff649382aa2f450efb47936f50564d648c80142b107cb6520131bb2c2db2c54446cdfdd5f84aa1b267685339d3e09dbcc02e3bd810340cecf93ef7ad3718e9d0999ce37e831a7cc8a352
+B = d8a9c1e97516ce24c7abfd34e20b367082d2e85eec086695e8b95c9bab784ed721ff8c7c74493ec85a2112170dad1848a43282bcbbce953541e4d7d4496beb1e3ffdc719894a769a5c437f2ed3ec7260ecf180c1f2736ab728ebe994736f0f327711408a0777c0cb33b170e0f4f6aaf839a0d8442a26891456eecd65ebab884c678d56d35042f246209ca2f4a9475f48b15c385e68318715cd89aa17947850eda3b1bd29a1bd95cd683fb9268f1f091ce528c4287a3a27a3b8353305a4384244ffa8ff98c7eb0df6e0f07d693d3487dc83913cf3027391e022f22065d9f238cdcea6e47dec3834a56cb02938fa44f44ad49bfeaaeb1fee50e64a9baa2170702006f70b53551fd54d02
+GCD = 1216d48642c32e8dd3de1abd62b02603c90b32fb8b6ab8e98cf00fe1f5806ebf933e0d5b34d7cedcbab33f8cdf74f8869b4ce321f72723c390b745cdbac65b47f134eabdf9e622ef5690475df063111237263d171bdcd9b7f80f729061b314904eaef91562a3287598220aa6fdcb0d9d3cd3a6847046de1201142abd674bc3e8a82ba39a7ee
+
+A = -2b327f24f4f8ff92ab8b3137c80f7d28c65f76f9d2c2426db47c1ed4e1d6d12e716c8e21d13c0688fb30fc47d306b607869e2a97988db123cdadbc357268a8b6571e1d66953555b039ac234b574573038a6264211c1e2594ae0d9055379cb9e4f9504a4c3e90d1033d8545c9cf2b5f763351f99f8c0f92edc4186bb78d3232074613758a1d4b915d7ec3e666de52497a54e87ae7f5854a9517ba3d43214b760aab51731014b0b0f2164acd8e01d04802ac11b72951989cf5fdb95801a81a57558d1d3c0f62602a493495dcf4f99e8a47b29746c6ff281a6acaf6353441bbd8330815a480b277ef40014d6a67e72aa89f1335a1648e7d135c47da25d4ac42959ad00a1337522e08da1
+B = 428651f337aaba0b83f0d52b60953200ed562668d77a6a1fe750438082555b4d7191ecb9d15efc8e454ce79afca63c09405c7b4e47927d6d5e47176644d71af3348cb157cbdc8a1fc289328d30b1779f355376787e008f372ca4f13b54f583ee71c5839f86d82d8aba253de43412eb00b029f73a99e87a60e112ce39437bac479e02ab662bff1c7d7e58809ad1546903155145a80a3b21b7e487ce854f6e40d1cbb7113f4df8ee9f2d4c055816a8871fdd1fceb6cf34538df43150e54393407eb2eeb9e92b2f8bbf8ffc9f76dffa318b2c9324f2442a29ab2af7de49ae2650a64c94a7f22acf0eba12424a38ac776f5165311c51f54bb8fa8098c18eadd7ee3a3964e654b93f5ad53f8
+GCD = 2b39e5b72535027a27e17a7b9ecdb73373a641f5be8ee8ca14baa8d2df49a3c3c20ea4a7493ad866c7f52dba2d3b2076f218e0395dda52109aa4d2a48505c01c8011cf9d6418d60802fa1681f573506a9788b77d341d1794950a9d686f32b470bac1452ef0334592ef9d389119e9b13c4e4686dd51709374634afd7a2da2d07a87127aa479
+
+A = -3a2c95f50db9dca8db619568d3742bff52bec29269bc9fa73de925cb1e6671dcbae8be1f0777cb76ba224444df1fe7121255bb67bfade578df0dcff07c5a8b0d3fdec2d6c8edde5fd8bd74576f6fa48bd8046acbf273727bbba30a885ba2780464563586f9ee0ea7b92d5e65920595d6915d75da634c70bb35e9ef96a8ecedfe3dc17be2a89af472722f3cd7b5aa45eb0293069bf4a6d7e26b1657bd7c2cfa86062385383844661b491fb99ce7d30d7eb3601c1a595b91c5aee23c9d66581edd0e5a2b6aa53ff56b1e4bea7a45aa97481b66e17a4ef778b2f1ebd05b4a1c733c79eb8523dc5a9b9697b74d5b87e30097b0b19a3c01b00b5978990199545b3932311ce4d7849c03b16ad
+B = e698f97f39e0aa713b37d17dc632904c894381b1b99a0077ee11c61b084b7bb7401e5c38245fab1b58f8ccec7f5de08af6985ba179d7e15f6425fcdecea7d03f14686b07bc714dda33af32bef3b8234adf94a3b2caf91c52cd74b877d4befe24d27be970e7197171d29849294872324ea11ab399d65df15611d4002005b9202ae50c1091c6f41ff46c11be9e76692cd7823df2920958df5b3867cef7596a10b587c91d70db5e8bf0be1e469a337c6dec812aaed55e8b0c04047a5bdc4deebbc65994a9e95f047618b594128e47d6b7b04d4236d113de8fe88394e8d01eadd657aaa2d358cf488f229d8a07b24cfeeb03019296443abae8ab266e16b2a47ffb36a3442eeaccdebedaffd
+GCD = 41e538e08a930f0494c72745b80a4c7100cfbb0bbcbcd9b9c6fb303b5a6aab391ca0315e383e81fa931adb42449613e77c971cd4df4759a51cc77747d47e7e3851bd4eb2d1c0579d43c27dd2174d29d87fca628fab8bef005657036eb3a2859d04a27b5efc87bc0e5a16f96d10107ae232614659bd31db9a0715d07aa995126c1f7c0b0325
+
+A = 3c60ee228fafea3bc50f5f94fa3776dad51086048e49f9e59e52ffe7758a380cbe46e82c200a9739c1af13f90e2e2c74ba6202ffd14612e7d1f916eef9dc920140792b7b6cde61b5a3b2543cf7b2f230fdb4b509ba08390476a3a17c3c094be07518dd6ba7c74b1a1f1d5ac50fdd3682e3a7bd0217e8cbfd5e983e93ce3ebd2d9a56c6882ae93ff1bf491748b21edf90a900a470af82cb4ed9cd474caae3f8bbfc70f9ec7bb8aa4fdf6ee7365c57532f3e86a763028025caabf2bf913b808b6a7f581b7485bfe03d27a1f3a2fe2bcd1bdc224c55ce5e779619a28e95bcfbf04764f579aa24a57685deda25b80c29a00b0ac9e27543db9700b09dd7c17379c1674416577b2323d52dba6a
+B = 27fa3d4297b81beb81a0e7bc11dbeea5bd6e72dcb24fe8bcdb6f6cd5b249a4bab93538974c5fa385d8441679da2eae4b773ae85b4ba50dd2748183d483b9668a810a1f7551640b0572e9d98bccf1033574994d57b5bca946ec3585ffbd7167f24353241d9e5d56affbabca7015150567685c3c061f823f25b2c461c719e2399f1b34817a5badec396dfe013b996b09f98132c0a5ceb2b4344b3d184bc8d311bec363b8e97f75ece3fefdf855bf8926b73275219ad56ef017f992fb548ca91f43be23ba12ad090d5c78d771d03ba3fc5ad0b5e193fa5fce3fbf99874e72934d5a25cbea17daed8bec6b8c9b5b1ddca4f1848f00ea4446e84ce6b6f9bb5edf2fbd800c3d4a4d9c463a1084
+GCD = 14074e50d27d6938af1ad575241daaf9978627245ff8cf4416945013851cdd441052057322f3ec45520dc2eadccb83639fd8a17d9dc51133c74f2fc87429b9f1ca74f6204cc41dff4f9abe1cc28d95fe4f3eadda225453dd551cdb43a84abe586a1adb12c53cba7286352a36128d1a9dda87c6b2485a7334966ee645be5d882d969539906e6
+
+A = -fe47077a3fce7a187470c1516eb8aa6988430d4574f9eeb739b0b123267bd555aa05eaf313b0393332b0f73a6fd0d3c1f6714ebb9f232ef8f3a6d3f62377baa93ecd3f8e72afb6aa519a58c219f7f4e388cb9dc09988f214e0dbe6f0233fb39ad802a6fb36bf83048973e8e4d99d9182b4cb4334da6828b1d845868ed7eb1b485803247add993548c50addbf150ed451e0a102dadb946df65723fd8c9b84ebc925e6af7171dfc5c208ff30a05ec338bd30832b5acf82a53e97d1c7a6f1c449d6addf06184b2ab78976187c5f367a09faa107ca24ef55d8d682bf4fe284069907bf40472ee9f8ee743bc7408a2f1e8bcc09a7e770e296838ea5abdc6d289d9512a2376da8e699fb878c57
+B = 1272170c011a0c7574d6fc213e110b51ce1f5764e249e302853523678d991b9b4ae44ef7db13b26f4485d7bfd681c22a2392e80a6cfe506ed0db27ab9b255f6e0afba57e6572935976121e7d2b35eb0a7521f33a7cc1ddcbb5ff7a5759094aefa54e90e97177c5fb5d2ba262bc94d0782449a74815fb1bf16898b38e9e65e46b062b12666a506b464d92274822e9825d9c25308ae0b8f2fd818cac8babcc56c1423ea4e44c880a3b9c39ef60813f614041a3d3a2acb5f286fc52a87060e8375fc2b3d6718be6798a3937682acbec39d4a5fdf76bf22e16962e2399c8d45b6491c859051a4a9e84d6ddd5d0601785d9c2e9d38b4d0212bfb2395de76a2c3cd607fa364ca109ea3fb805eff
+GCD = 1ca8143c210406e268b7652a3625b0579604e11f46bd37d07c19d47fe7156c5b26c86f22822818ad8be737cd832f63f28a8d29978de77f92cfc38bc07d88a5ed5faf668bdfaff5ae79ee721c2b9e16a0a1a9cbf145cf1a8c0553b354b5b9a2eb3f68009ad5c66e7bdac8e5ad1e6c191bd08974039e74d67dea481bcc16baa431ac35a27fd0d
+
+A = -2f8ff241e07728fdc1d5e40f36960af699c76008e5a7c6c9332b68a6eee07d27cdffa0c3457f064e0ae95c12a8276048a71269740dd433e0ccbd0a8450dce85d214245a1b94f4c1a30af588bc66dbb175918b0ebf483be567d816c4ccf646d70e39dc3bc41729681a92719c8b08fa97c87b9123466285c58d54e171f7692952e14d1aae4de27651cc7dd0a5c5d3d5e59420d64fd9a95fe2893b2f251ba8ac92b0f2b7ce8375376559a5a30e5418712fe2263b27d516034e9a4e5f327ef928f8836fa9ecd7d6b39db40835890668e2ba29df4236b26936e66f638a34a7717483e97be9a5c2c18f102655f8ec343fd4c41cf9a37a579ba2d45a6fffdef448380d8d2abe9fb7435196494d4e
+B = 466357e65252a9f0eb17d4e98cc43775b383d63aaee61ebfc798e3d23b429d63b2f7e73d2b8916747605c261aa757d1d715f784b2c0bf4e645c5659a606d0b2d5474a110b794cefa1ce5faf224fd157ed1a435d101bd3ae0e7da915887ae5fc6d78beddd80f690c310c5acb75d2d04de439fbd6b2d79478714cc8f46236cc146beab071f1b304b056cc45a17c029748c4c34a026aab66c5f615dcdbd452edc6f37b46ef7454457c435eb997b9cffff9fd2814344aa9981d741bc5daf81e74198a39ae24da2284cf5613cd725468eb9a636381ae5f6c0a0255acbfbd387973d00d9945b1f063c28c96b4a40371bd67c343987c847e553a2dc3fd623d409e5f2889d459dfd2995d231834ea
+GCD = 71e6ad248b6d7622e69a71549e33d39325f5df86c1f397b2095fc6c08d2daa317fb71dd643f647e1738f59fb1c18f695a540db023f60b047a173ba7984b528f7c44167f4469bcd7ad8995169cb7b53c00c6b09573f695264805706e0f9b093affb72357834b507eff632321a9fe39dcdedbb4c62039a8b20c5f7e6e79b13abc3be351e13676
+
+A = -dc757f0e9bd959c4c14334d39192c5858653b3b519ff9f9f33844d1d4a19d1b95b85db433b147268abb45eeea45557bc609c31823b270d6bb2f0b8a93f4b01ddf6ffbac0080fd86b35f27b2e85dc055af83cbbcf7f9440c6de0c5b945e41708cdfab31294df29ef1cab9ad7973f87afc4a3fc8713523e9f21cd6df3daba26681b52190453294b5d31f4819ee4e4d9b4d3cf0717fdcc55cc36e473a7804c22e1d01e01812ee28a81f0ad45a37cb7b6908fdd77cbc59475f92f95729ee88488022bb7459ab5510c9b53a9f8bc5d48914e6453813ba926e44a80932ac8d5ddf14b72bc4b613f72f9d64f9116e7c863c7dfb72db4e2a2d48574988d918a4d0d46dcb582d79578e19253e75625
+B = caeb70d03d8cd985b8acfa004d209f59492f18246242b177dd91b11f3c37b763b385f2eb5456a707cf07aa96f77661027cb6b53dbcede76ca6be5831dfa1a069ac72dbfaad0eda73bb3a5277325b285b21b52afd2688351227cdcb41dfd99dbf9b8c0fb10b30d7322ab5d86eb807cd20943590b2c96d90101e6a5bd04a961dfcaf8bb128ed282d537cc240eebcef853b83f1073924939e905f0fdb78d252bb9cc994417958ddeb0c3a2f6ef0bb1da86b5b1f67143820533bc932927d1b9d96918b111c294adac1c0466cfe8d9937858e6a6652ae54eb968a3da0280e132c8693b5e815e91b041db87c6e6dad292ccfcf2386bc0baa0ea8ee125e7a542897c1f2046b0943cdf57047cb1c2
+GCD = 5081931aefb242c7dfe51de3b37cb2c1f9ec86f10c814a4e033ed1e994fbe768f598c0229275de9042b68687b2b08de512225fba6877ef62ce2752f86cc61f49c33d4bdc575771d98334521af506a724d6dca751350d8387b7afad95d2cb172a81aaea644d68b76f9bc0aec23375c10174b79beb8a0f4e6f41f07eace82140228e34548711d
+
+A = -dd1ff48cfd49a2aac8100334879743e715e935c7b2f51ea6dce1ab2e1fc99f5f9430c0ea478543b82b05f599cbc9580405b717eb1daa1c48a85fc707f34e9098b807c867e1c8a85343592d5e3a3f018b33a3b09ff58db1e5f29e55c99a62bded02e6c102e84d985ae17fc88cb3331294045397e1c233655f122f9ef3dd184f77d991a36d8bf5f77e7f20d993d2fcf769c19a5ae98956d1c96061b1b7a8683124ae7857c4650a55e89983f0d85e894d3cc6bf788dfba6fb9299a863507483e21e3fb78335e1b353be27f1af246bd13886be209e110e453b3cd279f6ef7ae18f9ac136e7f8e81072e076ffbafd30cb70048be9eafcca7acbf1c0b028241319c7a6c393eaa724b4e2d28dee0
+B = 755a9280fc761896d919f632d050bcfb6f1b6bdd84944413fc19871a5c9fb3652b6a38f3d067605052c10d60a3ff094abefe1b804c2d9b360137f0928fbefb9dfaf1f5b6b12c010e48ecc580419d4d40f31c7eeac94bd427bf5821aca27f2bcf74f44cea4cc02de5daf3f687aaaf5e98e0f31a0c9be1150f6da94ad40b5b4bf5c9fd814f94097f5d0a9baecaba51aad9aa70354e7458594a88f6c04341b8469471faff6de26ea08fff1b43779e4218598bbd6f2f0b2f46e0710ae95de47ec784dc60cadf4be6b0775470b61082ccb7f2c36d5c05fb070dff97fb817e7ea1f4682a38b7b0bffec7d86d9fff04d11dbabcebbe34b30e79a20e2a8fd805c2a3feaef910b7e29df40fc5200c00
+GCD = f501f2f3a21fbfe4b42be488a48557c0d5d3f0eed66ac01a0d2ccabc3eccdae9368d8689e57d6012b370a3a17ede6aad46ea1efa7ba0f3906b3dd4f2dc7b16f4af54cf7e5c316ae6f93104c6972fff40a80354189536b8da08884b03037dfcbe058ffdb8d2a8ea640e3f98144909633c8a6803b020df2df91a2e15d8c743ae697607a59f8e0
+
+A = e8e471e62d0cdfeac35ce8f2024c661a525c2be69e9251dfa6f2eb700e112efbdab9cf2e7b01d768f3118131aac24deb2e3f74d01063b274c2348cad62d823ed9ec525863cd26ed08d10d7a37587b85c3cca83165d3f7980e039c64517259dabc3553c5fa661c8d4254cff9d13b0f0fe98700e96f28443e14f8a71d491fe566702feb4de546d4a959677f4f391873558c30574c95778a59d0ac984e54db93102ab9112bf1f2c2fbfcc6d4055faeaf23b41cc1cc27e0710ca1eee528c7fadd691e6f5628c81af26a960d17dba8e9f5dc1c6c6ef99a8b905237a7cc30850792492733f9b96aa397511186026df7e4aee5f30f436ca72caa8ee2d0a27d6f62312ebe4b69925ecad90d20baabc
+B = -100918241880164275553412f6e1c786a90e56f2eb9f57ac71e13978b6edfe8c8a4aa5d3a14af71c4db120919c510258d00f87d3d20d0afc651c15edf737c5466f9be203634b5bbdf1027981041ee140b60f8b0b42d6b6760bd134c5df567e5a5fee3f3646dc1d6b3337186bf48b595d2d4f98fad8f97b49787c2e26231c35578fda58414979ee10cc3fa581c4a5ccbf28f93d4dadf83f37bd4a9a1b6511202ae3ee7675cbcdd9d6a5f1a0eb536b2b7a391a76ee5f2f5c8cbbeba5cc16b37e2ce2930bb0cd9d6da3072b763b137b03fa486ac6a85de3c54bcaae5ab22275bcaa249a1ed1c2a7a9b51137198e5f1c21dc3884f8cb904e89a673f9fc9bed34fcc2a839fc25b6768b52d278814
+GCD = 6285c2ef35040d0c8b2041ecb3652120420fd41b3288c7e3501618bc606ed9ec4938e02de51bfa938671e2df7cb145387e29b6a613bfccc975e2a4d53049b87f5473e4ad696fa698a4389d972ac6fa4898ed6965a02982598694c748827bb89dd120fb72f026492a80ad900444fa15dc309815aade990bf032f58f3a65c718b8b68b3576dedc
+
+A = -21ee7d30a1f4864f8c7424e1d3e41a0830ba0ba5e02954124b77eaa7ad0df95c849d1fe52b012f637e2de145988d9e5dd02c55bc4894b35c405f0adb6589c8b4e976e20b7b3aa03664ac88595e53fb3fbe7c7383bf95dbd5ace4ea186d969c021319fedfcd02803adbdef0a061386173a507d76c3b5fdbacce16624ac9df4c71d270da74cfd0fb2f490f34eaf26d974fc5d724484f9152630cecdbca7cd97605bb26b31a7a8a81a29a8bec5bee6e1f33d3f8d24eca4e6c12a0bcc881e944b443dd90646114adb67499ad87fad2f563449e2d543082480e1a3fd9504f1434009f1619947119d4e66a7eb0ac49c244fc6af09a3781e9215d02cc611bc638ff9de8fa7026801a904029fdd6204
+B = 2b16e23c0c7353c5b8da923fedc59ff6890e290a4982ed39bfd9bf02dec8ac5e60536f101fe5ca3a2a11392ba2996057e8c0ee462298c7f5a816442588ff9e28708c6f2158220a1cba2fe2e62f9665b37f5c6fc0eac4e4cfde0ed6ac215404535b68ed579b949968751b21ab96062e10644b9d74d9df98def6156a21cf955b1dfa4cb0292cee914c627fa83ce60529b12a09657c7e40e4065ee13d3095e335607f1e146a61ceba5038163e54a86d22e90f6d6c09ee68d1d078ac59fed7ba5c486a8174b9ae2683ee61f3792e107debb0edac53db8ddbcbced97de930d0e134f6c29b0a07c1d8b0728a24847da9398f9d5bdb1516e817aa7da301bb123d099d38fcf2e27ad6fcd5ccddb649a
+GCD = 2e0e88c449605357a8d4ba914318d98187f1d945aa8aee2280d10b6cd3c6a0121a94313e281d22ad1710378c607099b097c99ce39607f366ae5403aeefe25ada4c50c642deb44774b9fa0995ad3782456521114579370691a679124cf8cdcf70a59744d56640ab94ea1f5b4302f87ccbe2039b94367ed8cdd003fc9c4053f844de46df0fa9f6
+
+A = -1b467372e79846807747663ded1dd3010b777d1f98b5ebc728d8531764ef57ad7b7e8276111394cc4473faef9096cbb3cec8666e72b52c209a7b0495edc6b4493ced65576b5491837bc4986876e09b0b526a4fd8144e0c01d6c39ab96f635f4c8a143e9598b429895b58072ad67adcd41de4acfde80a986885f881d99bb58484ea49c40673b532a1dcf3aba4f5ef56302e10a88e04b693fcb4d89a2c86fa41a4fff44ef3f59c14e7c547150b97470d9abfc6ae9a4a8545422634609f2bc26c955493e1d124e58b26022819316a55ff933282b686ea36fbe59f81641dcdea326c07fed68440b9f0415253a12a56ddc40a8565e8ca53192d15a8cdc152817a16455d21d725eff93a81177360bf
+B = b9e9a85147faea25aa0cd2b8836d556907d288ad420134ed69c06e46bf070b4a46f4c6f599c5962a014b8031a8d9da2b91bb271c72c08b2050cd482eb5f89ed38cdc57905dc51ed09f22cd55b663a96ba90c15e531efcaa02d3a68a3f3cda284cdbcdf75241db9d42002515daf7bd6d6d2bc5f8d07f22d1e9e4fb169b5b1ee5d5327d466c371ebf2a65f27d233d4bf331ed1a10997d8eca020204644671ab956e014b6e01e636dd8c4fdcf765fa17bfc87de62d8679b2f2bed4d78d358dd3ac7b008836c1f276e0b984165f9968644e4c9ee44fc2cb00247ec7ef077e27e708e68af892ec47ebeb6486705b1e8a29e7887d3e2590372140ed54393b4434c59758d3383352ea571e20e095
+GCD = 7953b4954af555caf5278b33990826784f1f240affe3d05c5a14f0e425b3d20f7137bd9e8f86c2cadc8111a8bd1e5a0cae0ddb5cec8f6277f50c432b2cd6c0e82c8bd3e666535e6ff059ee44d50f94a50fffeae9e5f0bc480350f779e606bc1e559c1f9b7046142269b2d4a54bbcd91d0e489aef9c5c78dffdecaa5e447684cd4e76e8aa52c3
+
+A = 301fab800437e00e4e1f76f41da718b0c39715edd614b31d825c1250dd59182d70c4edbd4e1899b480e1c88da4419d1b782136d4f36f18146cccd64bb8873a0e72d5c4443c35c69d9fff6c860511200e50289737c6e2ef4ad9efbfd35b99e1b02bd7bbbc7af36bdecb0be436b04e963cdf6614156f5746a2242cc6b4877f2c9416b4d297e34e032fa6298031e393a7e59a82b9ea3ec5f3b791ce64e101df21ad1371201f4cb1a261c281ca65d0ae5b6fbe5d7ff37c0a540d624d7e993a8b1e3009a438ee926937e4165bc079d13a65f499fab81aaa19a03fe68280eebc099064e5a7cb387429f5fd1632f901a6f85dc466068fcfe0ac68c8a11f2e1cd8e1f077128731e256e5451439c9d369
+B = 4640d50a88fbd42e566a5a8a35e77f1cc5ab51da7858d4e0bb38f13ec258a310c9ee878249f9c40ca14b821d7382630fceaa2429a8d6371e8ce341bc77381d557f1de98f118fb732e78f43c27682c998bce30697c29b26964bbdc8b5978040516399e7ed850e5b95306aaf3f070230779c647e086d44bba4049cdf0bc6b1937ca15c5f18de91c8f48cb5c95b48113596e0c395f99c613884dce1d9de02771571752ee275f78fd5593c03fb50984851dcef67c83065037c1086cf9a1273d43ae59940d220407912253f100df63a93dfe00920ff5943fd43ed5fc6eb114039bdeac3d3cec319d86b7d3d7e13ee6d48a73772f8483ca40e2d0f54724933e001937cdf0ce3be5af8662c01144afe
+GCD = dbdafd5d80b8f16e14bc37a44c6063adc1684dafad76584f6b7a2effd1d66791469a0a2c1bf1a2ebe54cea60a77ba399de6bcc59c6eb3fba65d87a2fcecede80730e7391f7fd70ce03dfbfcc891664106dc8276ec7245d60f5fe619f35e8af1841367a4cd0ea692d0e46957844baed6b30cbdcb4ef922413c9b91c8c09caecb6103bc85e026d
+
+A = -a6411d8b4cacfeec18b8011472665de329990cc68a56df08d76cace8ab675c06aaf76d43e726160b0021702303026fe67f979a2cdfa7aea084b7911fdf29a9cad14b31d750978c1fbdacf574112585f9d5617803b5d4386cded42ea09fd412870935e3986ccedfbaf394145cc51067da2a6a71d40c4b87a3d453721fad9ff0d12095fc3495427466b8e13eee53e6df7b196abf1130a43fe9a7c9d23fe6a7f2e679ffd7819bfbdac1d08a2e21aeedaf9e7613081aad7149aefe2c3a7431567b1a2c478c88fea646b4d2272642cbb1c17137505acf3ece85f92a70b52cc0bb41ba594794218c732f784600b6e08864f1a886df9443520332bdad652cb2326a32c17cc093cc6b7123fb8687204c
+B = -7145db96f1c153bed1003420b73be789e7362379b0488dda2b6c63d93c837716854fd14eb96460ef0a46ae0af8df9c31d61058d14f46f301d608e9ab37e9ac290b2ca3e72d2febf1d27e51577643a0c1bb3719519edba0a796f43fd23b865d20645fa4f02a90214fc33cd18d6147da0a7879392d214e4c44cb8e1623192d5f31c253d3a030a70d24474c862965431a7ab96a3681dc42182076bd532730ce6d4d9537914f1a76425464a34ba3efde35dc11174b24ffd9caaaa17e86ca46f7d819800426568908658b3b7cebfc9c0fa730dbdc48e0d89fafb32cb93d86762a6d71a52bcd785645b827db4029e17f2b4abbad524548a19a7b20060d1460cf00a688850bdbb0a932e7aa2ed9f112
+GCD = 14729f8a59c351782121bb434c363ce47e30c961b42c8222c9cd10742939a993352bea5c5874813c6d3f4e5f546993029cce710ca4760f5af8b5e2ff4cf1cf03b154f054c0dfcf3e604f0a2da387e9f540ec9ae94c59ec19a30f7272b912047451a6ef1251ae1b0e4a9dcacd80d7772f017d2a9a4163d82fe1da35f5d31d9d27163a1d6b7f3ba
+
+A = 3a0f12537bc676bcb46be8fb49547b5a901fd6b66886d6289a04e047ebf0ab81b5257b15c97f305c33a34fcf656d61d67319c1f7014a9043ebad74e557b00b5101acf830dd3162f3c8f6b6f028824d9d62eae3be8fb8fd5cf961b72dbafe4eba8ca4b8e13ec89564b782daa27d3eef31bfb2c9e4a19d9a6b2d26291694f7a11c5f1b6b5c99cdcffcd7f5d72e53d56dcbdc6a209ed00b6d9412f8f34c05ba0564d8c63b1124c559d7ffc736b864cd78e8b6bb65c9673331095a6356b0add4709683efebede3ac0205758ed5f7233b1fcb5f78e430cae962b7e133bfd0374068d488f1400479fd02db2219329e39e79be2329f2ba22dfc614495cfb583e5d86651f29c132d81cad9191f59a5dbc
+B = -5e6acf3c9ddc3d77ba6665d86616f4533bf1df9b158669daf15a686e377d433314efa9f9bcd51accff0aa6c9d0eac3768a4cdfae63ac9770bcd5aad18a4abcd8864ff8f97456f702c52326b6f93892ac3a4774f8a540d046d4113fc2b0e93e3314d3eda815457723c81579a0903a8934c4e422dcb663b73b1034afad7077c71fde0fea33d2c7822b87c38c355ec586f6eb1d9675f6eac4247864913c7399d783feb965714234d1d03ea27a92d6bd19156b0d09d416d681d597fdb25b4dfaacd5213dac605be992253283ff7db60ec77fadb2e5b482610b4b4519d463ec52e279a664c58dda1540af6ea16b20d971dc93a2fd3c0c30c1e60d61276d4af49df5b4acb879fa1e74850f56084ca4e
+GCD = 3a2c5b44a5064167641c19592291b76459b504f91153c6d2e6ca1f57a69ccd1832ffb2e85f4df74937297eadc669c6a2cdbf01dbe43ae20d136fe9fce459962f43039d24213071e484ffa4c2ec5fa80277b80dfdf68b490a90c13469883de9130ca625e41115640a9813614a68fad1d2c00dc31c8a2128062c062f531893a2747bbe187f0312a
+
+A = 10d4de652bbe8a322997784cf5bad12fd2e2f9d9b7962c6861583afef9c14d3ee4609db7e1cbd4cec23e1ab39ced85f1977447b4f46aa6cbb695e784fd6524dfc9b737a76d0d2c33bf1fa94fa2824160bddd6d212d1f4a756a2f43ce7493c77ff707a54ab26d937a554e7b7a854c7cdfb1bdcaf85726e01f48b8af42b1e33ffc24e6503211c24852d265497014dcfd143b5ae5c23c0ecb6c88f6ca75f81ab9f8c79db587ecaaf284a306b31a9981d58123ae9ef0d0bc99c7b5eb42c5af035b2823a68cb16f1e7cb1e1a33dff094c6c4d2d0d18f1f97ed93e673e3fbc3337d6ffe7fe64354f892e3c5167441aac34739493659eaa9c044c65b99a867fcaabeaf7082b520f4c7fa5c48e83ff3609
+B = 15da2d6e0bb4abe2884b7999b53d877933084aab1daf634a46b51fa37748f5c1e4b852454c8e4af673a18ee4fa063090076ac153c0a98b15a5bdba88deb33c6e4b86b9b5c5ae4c0333a6fbfabc27d8bb088f34c3cfcd176756fb7f10403f288b2cfe54821d0047498f814b712d976511b132547f26e12e255cff9b7a2498fadd3aaff503ad9ee0b2268516c464ac337451448a19f248680d6e84e3ce64d69f81ed71b57c86fa38edcc6ef869429da9db4106a2058d17d426a65b2aca2c8bf9da7717ac6f9d855f7b1e0d9d5577154ba5c03e9de0fa635fc52d0a7188cb3651a4978c6b3be889f69658d4bc9295937b6456c86c2f6f7ce115d0ef74c002680438133d028734115d9b6017157383
+GCD = 7bba9e7b68d528e59057364fa2c407ca821c04b42cd57212890e2a50ac83390826d2936c4ff3257d1ce399142beb17a5ffe3005208c9c5afde2e4a539db8a47884995eb282ff0697e43030cf497803d0b0b5a9f74035cdbfbd82710a1c3515d05a11f5f4b46bf33c4706a199ccc13324705be9faf653357adcaa60402963a415d4e4ba9677e65
+
+A = -2a32286d420694070f785810eaccf9faf3c402fe9a977602d0f3362a17adcc0f051361b0d1361a3e43d00f0f241ac16d6ecc3baeda126d1bb799dbef1ef3a53abcaad456a53ad591080e9692b5e2f051c786b237b7bb54ead6d22b189c4b48a5bfbd98bcb2a045c6fa8eaf2e36d15ac449baae8e5f786b64cec976f8bbee72990af2c42ac5ff5d7d65c097bdf7065c5ad6567a3339705c4d73d363ec6f73cb1528eccefeb485196379edff9bda8bf7204bd4986880583190ced58dceb5911534c2d223ee5f98981ed798da5e889c232db0a8de0289326edbfe5dceebbaecc7e1a4671bca7685713a9025cd72b2bd0e40b0e63ef7cfd6fff265da67351e9efe2e3848179e5d4064fa0cd21ed1a8
+B = 18051960929d074624777849a7142e48fc75269fc5881ebbe6fddb5c9c1d0b5bc728270202fc7f3f9a73ecf79339f44e936be83a4d7d2aeb8861630851b5310267d7fccf92c0d166f6434ea01cf5c4a78e4511b95f22467b4736ebd30186d804e133a08a2d8a523267a9c11ff629e6756fa24978250fed9d8c475f107f7657ab342c58a96ca9278b238f0b65e8b4167c06c244e5d7579c8f45dad21872c90c0bd253cf8316eef49cc4dad73cde0a638e4bd694b7ad701d01d0b55edc6cfb13fca9d8ac6fd803e231260b0ee0209b2a45ef19d1f55cb152661528ff6b6924ffdf572e81180eff67723700ea9fc2314dbf2b73ad9a6de6abc45219b633fde77985bf800e861910c3bdad9fd9f87c
+GCD = 891fa5ee53d287ed91eaf87f3136e9aed12e000993ada8b756d5022fa9138d33c86400e68887ef58d04ee6a42dd51d2562a55f456dcb6ad3b118fcde4f80a44567ebd338b225a2214c2feda5390daca6ccc4ce55a6641acb71912860db28cc258fb854ddc8095a854d4dc1c74f525e313c8726614ae26e290657176cde169584b82d83b2979cc
+
+A = -5d7fa06f9475db9b54ba5674cb1d9c4d81ef55e9a3743b2ecc5b000855451686b0aba10cb0f764603a9c0b69928966629faa1dedfc9b6b3e3919e12207dc7b9213c6e7b16751a7f7c3d26f1365b726fc0cc25e341ff577d58a31c5cde5c535c68dd72fc81cf0a848a3d28c4a4199e53361fcb64d80fef4ee54124b7fa76789fca70c4660de90090a87b2cc73d1ea4380ffdf2a9f9486a7cd62e2266753993773205dcb982e21fe27d959533586f868ae01420314d37d66bc0a466b67ba13c535d97ee4a8101d568218116d090cbe9aefc2a23bda9ba714061d83607a25d2277f16a34eaa6889b7f053e20e34209fd34cf8423886099720dd50b4aaeec71278182f2e8cdc1d081bb0c6c38096d8
+B = 17eedf5062d82945024e10ecf121533dfe302c8012c6afa237fc0eb51bdecb5848375c149c51fd81f79a80c5d1ccb9aff7b872d895e5880f164c47f8b40b52171ee894b824a82b3e8255498e8c0ddf9f1f466b6fe5342da89be535ba928e99e72c5c51ecc1bbd15aa4a221f14d792faa85ce9b19a2c979c5ce6cbdff1d6e62a4ba9aaee1b706a89afa4c7b795391b494678f837eb587da774d90561712b9ac7c8a95010ebf60084d20d1bd01a91c72a50a6b8e4011c57378ad7a20f1274f5a574cab2ffdd83329e5b33617d2ba50d00e0b379d307672cdc1d0b771a8cbcae92a27044d4d2a43e2bac44bda083a02255a26ac3acf56201ae79b0f231fec51782a9acd75e60ffa4e52be0c11cd6f0
+GCD = 1dd8ba55606f1503b6d013645e8d0e119e057a7e4ee90516eb08343eadda2eeb39e2e9fc7999be9464c8769bf5de5b36bf0807ef3b44f6d85e666e79ed845cb608165abace86e6bdfa1872c004c2a4403a2b71ef09defef17045909fa30b7e26c43f26142877f1bf2f1b5ef8cf07b4f6f88d6f5ecb6e4e946811334bdabe05cf1d0ae07a4554e8
+
+A = 61bdfa4082551ffc776bbc80587b0612c9ddd02715e821752cbe72f7239f5b9c2e48bb23de9ba96a662ed4f0e4526fbbd1f37f70cdcd81e0e6c9dcdb7fc74788f1220a1a71b73198fc2d0576d5ef6261453617018f5a3d51ad386468c08e18bade2f5c6488c7ff0668e5ad765df4d2dd837096033e40fc93c113ec071abacfaffb8121dbd3c9aa87dc5bf9f5770d4b300adf6b43cd8009fb75e7e426644f8a1734b701ce4ecf385621c2b7193f08d9cbb86fbc80896c46858b9ab3cb3932d435c0d55a8fd2095922a1300c9d4e6fce1cc43e746881c06a222a44d184e1cca48cd394fc1ac6a52c5c22d435898dfadbacd7fd7d96c272f3ad5fe4f8a3ff2801f3b86216780051fd18cce2a03042e
+B = 1841b502a53c90738c124ff1c1f0a0b25cbb29f462ca883769795040f2063c860a1b606902a3cf56619326327625972bf562e9c495ce0554dde38aac4600b9102f17838afd232c39b8f0a6ed74c46dbd35da7e8078ad5b7a56b41a1d89e89fdc28c678b71131aa4dfc2ba207cef2f44dc8e3b146b03d8b6ccc5d621054bd3a7e0bcfa6d59f78d738d359477c4853773bc683ec6b8916a757d0e39019b8633f9cefd56951e312ad130482a2b502c246eb63fd74d3a1e1f21bd3a96d56ca665f065f662f8b9d45f0ad8a9a564eba4fa60742b273471331de14399548ae81505af302fa2c3c1b457a5227fe6fd6e008379e99c3b2dc7e3532ccc41a560053e922160e2c54a3b1338f585b82379c411
+GCD = 13d301acb4f97a5deb2bff5bea432736aea5c4682f3b26327918b67b54bb8746ef6c498d7556a8ab5a443c42a62ff72379e6924b441fe322bde3d1505d65236edc66674009466b21b70a14391926bebcaa9b820ca0229c9599bd26ee4d4050f7dbb4298a87cf6811cdfceec16130fc196ffa41903fbe5519351d64dd028bd76858afeb81170ecd1
+
+A = cbce54a50d627638d68719dc2ad8aa9c8bc25ec2a9171f4ac0c891ce70f0cb0fd4a7f4f79869d8651eb355520ffe2c953be20963054f8d8989ae5fe0c2f0d48eb4485d6f9084b59d718fe10de0fceef4b2a9866931439ed5b0f3c4be53140c1e87ef3cb3e66f7a799790e31c7364c2a98c556d40c49045e953b7cf4153864aff6b8c552dff0332e6e7b402d66a19aa430a9ea09c2721ce969e6a5295827a88f5a631f8a96d37ed4c99b27554d3aeeb7bde1b4e1cf8c0acbdd21ab32397c0dd1da9a7eb6a0cb466c67744623cbea929139ae145ffe5643f3046d7f8923c053af9b92a7cc5f9cc0652407d1050b7a31058781a4da322032ec2c112c1511e96c5d4948bf6de83d4d3d60d949a612
+B = -13db9562a14aadfcfc42808ff5d3b8380bf95ac8050cb6c0ce97ffc3762ddab501b512fdf70c6b806d69127d6c7c01dcb92f22aeb94f4db24ce96339531c99133daad4f7fea9d079f6dcee9fc9e901a777c2b1ebeaba74fb017d3bcda556fe2a8c876b4888457e5235d2625b13b97ce3dd6158c127bd8dc32255b1c9c7545d53d51e4e662f6d22d5f72009cfe2c3529aa17347b322f9b9ecf6604bc6a31251960cd9126fe97b0e90f976955282834c9316f801298739dae6036c8ab90c733dd4db24db4c4ee5575f41ea9e184419a1ff34ebbd9ff6b04b63740450fb027f8a00015dc69ea4cadd475205b70d1985a36daec48e4070169f005b21a4a4864327499313a0dd24949e5a1dd053a7068a
+GCD = 637c0719e5e2fdc4db6bafb8fc01eeb160309c12014305e0ffc8b5deaab31ee00a2e899809f0cd1c7b13210f77301958a92133116274f5ecbc96dd604d7b07bc243804823421ed0699a9f846796d43f4e96a674772a4b4ccff5b1d37e5d76965a790e3f5594e4ac32de6a62b4ae7bad8e972acff07c6cb59ea0b6627623b527894a6718a9e9d7a
+
+A = -41175f3d43c5b5df8d77847750dccef392f59908527d1026a4fb1b71e5c439a6b60daaf146bc6c4ce000e3fc19cba776209655bf238db056a679714dc9186b014fbee234d9f158a55ee5cfd5670d7a0501e351feb43f034187bf0ad68436e9202a55720ede01fe166e3dde88575af35b7149219ccd824515a27256edfba2a3e107913f9aa9979d4a6aef9530db1a4fc399b8f06f9f33c4ef986363b10766768273e494624a7cec1c7d7be0b1e9aeb568d3bc3e4cf01303ced63b7412722e3d1f6e91263c6f4e9d8364a0f3ba56a084c7d5a9e41a930397c6706e0991dc1e9a6b7512cdb72a12bbbac332810c85e35ec1418681ebbec32419a907c0514712ca50f9e69d5be3cc37f1ed50298dca02
+B = -454b6acfc90b59a3a0743bbc296b2bf6a9570602f6a83af372878bf3ce46302e3d4a878819a9b886559175a06449c5711b6f165af543001f85971a60ed526897dd2af746649f598a6f5c3ef06a6562d97716c4fedb2875dc13294e3f94d720ca91ea04150aa336754554ab6074881e52e6475d5cd2513347af8c7adb631ac8e6a7c3302202bf81188d09cdbfca0a3415c3434ef8f863724e00447847164c52a1cac32f00c3775ceb063c296926842f435b0e7f2059a5f2da1b44caf87f8c236bdfd9ca978868dd465129b25f988a1f8df8e905608423f00fca26a43eb8c0561b7f5217341f3babc032b47e717825c337e36762c63f08ad018d902d974427594be8fa0b86ead421d70e13a89ae925
+GCD = eb681af7393b187f21fca2198ff863011eb1c6d99f6e0658b22489a9b8432b533a00ac70cd1daa9a2917e9a3e1d65a0c52874be3695934766a8ab1482983a616163f9c49a6f8cdf4db7de27b607b123e23cca9072355109dd024412467402f2c01c94921f6d22463acf3264c19a78dbea0ef59a777cd19e03e1b2040c0e5d07b3ef5f34a5d6a01
+
+A = f858558cb1db4e261cc6ee60654f1283ac97ddce36507cf5ec6b24c0dd9caa9c8ca7a937a5d13bc3a60bc630045d7fd99f4303eb6d477799338ab37a65cd313379076eed330a255e17671d6c2c33114953141977fce29b40beb0de6c0c79c83476007f0ff87412a4cb893bb9f68a052dd5c7bb1e7c362ed2f7b4c0984b3d34a70e8b72465eaf1b9d982286ad65e45e37ec1be754ff07efda0c9acfadc358431ab519f16af812a99bd041558808e61fbe20fcb0206945dae9c6c0bbb07c81dd35501b5164e02f64a7af234ae130103bee9933454e32ea4652e0f2f58d1fc7eea3ffca39d284113e7098783f41b12cd7ee1d74aacc0a90b07d23fea9cf9953b95a8e84948b309f217c17c8d7d5ce2c
+B = e738d7c21b448b5f4604ae919d06022fecf88fceaf3c24c8f9cb2629cdac6bb9016ef26f73e2246b5672fb3829ca4051c33f7d6e2e5d2b6f63c779862255f551b625843e9c10f15024fc047fcc04026137ecac41e4e24d0924e1018844d3439996e3c040b6279fced710acbf75433cc4d5a4b9d208b98bcb901c35a818fb54974a09ee3b2dce637dbef2312faf938f535e7d78d65110b2cae6bfcc47ede122247c105119f0ef5bad8dc8e7efee283e3287eb91e26544d364ab1c31141f3f55b5b07f1860eee83038da17dcba83c265ad16055ea0cee46a994837e4c5fd5316212c993aa772032cb83bbd863421f645f9cea873e11d42c3b82a5e2407fa615cb40ad189c0f837c07dcd0a94281b51
+GCD = 1288a82d090c30126cc52961274d35f1a3a0d393c54274a1d5d10a9b9bc4ff7e64867e6e21557c21d3130d522627ab7100f1b72bd9ac73bd2119a1164785b791a4da66fd4b2aa8dd8e4a7e7a1b72e54770cb2de3021453253451483610a2de66a2d2c273f736df753ce774b1d65c0052080f1cccb2a238e1bbe932ece25f7463fd42f192f2a46d7
+
+A = -a34bf19c4bf4dfbaad2ae8c769541962518f36596897ce9383d116dfa46eaa49a2faebacaa5611b6f27f1b6a5ed321641d3c2d09ac7f7ca64fba57b592cbbe091e43581c6a734398fb2737c2714ebb721aebc37567f70da1eae034aa7e8e825b0602895d37554c6f95d01b843860500b76e87fd20f42feb339cbdd90a964ff0cf11b645cfa23691d1f2ba11d54a24d8dc6c4836749527498029fd38d5b3bb6d3b2f32c5b138a11c145b085bf9d661f9d1210919661c030575f141e965b2ef7ffa6c5409519795d5a9eac22fcd9ecd28ce0973fc71aac5cd148b5ac39666453633ab9683d42682c73b30af741e3623de73172a2351a03a19e1f00428c851cb65696b59fb63a719af8e6b939547784
+B = 21ca93267d72bc085247c0b37912d5aec67c94e28ef0db16466762df92220a1742e63766e439fe9cd505a098bce1bac0cdf6a1bb082d0fe8337ee86e5c21690e2a724a83b3775782804ef1d7792104da5d5db9281c5723a29da8d4eec9736732146c8bd3a390fadd83b06859b1d7ff62786bb8af4154d36042bb11c301d67f08a445afce39a321da4118cf6cd265d0cac2cfccfd4c5d1fc9a66b9cc2d0cab919a00d9f13e8d5960e25ca1012bf16a4a00487038c249d502dba049663ea693142464845511961196788b83298878b3d76d96c42162e37964a52d2677027b2fe8c996ea9160f9738b407e5876f27a106b615be5a4e4429b281e9d969c13fd90832d2f4853af222af1adc20e432b48b0
+GCD = 23c1c49b6c10736aea82a11344480c57c6f3e899517880498748c436851fc82f9bdc27275c1ed6f335e6fcfc91f8cbb517e297af3075534062374446e46dc720fcd4bda601c5dd6de2eef63e41759d7f5cd29e78bf602a3a45920b7f11fa00414e61ee99f536ab63a45b6e4da04c2586ede05f31453b7e5975c30959e9ced265f4ea7b2054c14dc
+
+A = 65943a57f03a50300d421a07be6932266e09bf72e995632ba0277b8fe73d12d9f54a7351a500ed4c9ff5a91eb6681d84c30fb525c3313e017dd3169666df1636f260d2770e72a0b123d83506ad0218b21c4936dca9c76cc761a44fef022f76dbe33b700e25408404bb932e29158635da68d41c4574051fcbf7a8ff9a4d0b710845a88375929685cddf2548f532634326023d098fef56c5cbd257cba7defc746b6dbe32a6f7070e1f9a83196d152715f551ece17cc8413b848d4dc5a2ac704e538ebb1710f62a2b438d5b73a296eb2526bf2412ec920c9eb59f0138c4758d62fe589e876fe990e2dee907aa401480649c8ba8c54e8f9311929ba804b86c3175cbe30dfd258a71f310967cdfdd85d3
+B = 16de50e465c619974e0de401885b864394396dd1812bfb7d269e0770f72d03ba4a06062d3ab44645402ffe4ba69455cfd4bb6c15d601b642600c3c2cd3b11efc41b5b4791ece7f6c423785ef9c21a3589287db7b15438d740b08fec883314920bf351341e14abeccf18973f6d56ea686c47b8a35adf9b978a150316e2b2f2ac6469e1b88ff69361bf91ee9a5977b6e8b7cb4928a5467fe6e0af584fa51485ed27cac4d1e83f3367a39fbf3a9561491061614d6a09f3b55b214e032faeda50fab9c3b6f70602ff12d382c038094755ff667b6a5d396ea2251cfbf53c683e103a583443b0b34b8d2c94d3bd6ae6ef1efb06a8331cd7341a7fd0b85a240a1c9e2f7b7a38feaef40451c1ad614813e422
+GCD = 4358d21e8819bdb7fa6f4ad1978b9ab92adb4cfab6251b7448db6cba6eb65c98988128127a21ee50c122041267885332aace74e716fd6a0dd06ff2a2a371ffaaebe812ca919ba2d4bc00126f79ea1d6708187a105e05e4e23e07d6b45786a6f949a8b7f38b6f610daef78127255aadcdd9d958e8622957c4d8a939bf99393ce1b254bbe8290810f
+
+A = 4433403140ec4f8028ef0877fe83deeb9cc93f5a9cae3dfb8cc1b55ca1890dd06cf4742c45300167e473127eac953f54d2a834151ef50f11ce926c6d4c3d5532e1e35258100d7ab78c8a4cbfe80940a5ff6d203bd24bf4495e20876b756475d6fb8191253dc557182952d0c3b70d53771231ebab1be2ba3b3fdde24ac9a0de9678852e38fe0ba436dc3f2ccd0244e623bb1e62934eb44d3b37449a33bb7204bfb046b3b4efa61712d25afb08872346c126092277ff7027756b3536f3152eef2460a60c436056c227ef58d5f181da45f0a07a5ca486e9560bb2c49a7b24c8b6aa5d6df6da60521eba751a299b8bb277aa878c8609513bc0af28c191ca26bb5533299230621aceb7c06443af85ccd2f3
+B = -31f90dd532422ca4d6fb167b35216a0c585a34712a14ebe0aff74ca15ae9816d0fb1ff0c292a5eeb694eaa43e40971d7dfdc88049a9bde5fbfd4607302d39c7868da8b9a8b87bfeb9b92e62f8b7947d378978394c82a0ca79d85a20cf757bcb420228542dd04aefe0c83ec75cc97e6c2d91f38c979638a9cfd498519adaaa2118ef7048f8ca6250c62e6a3a25b1734701161847ce950157cd5fcc869bd596bbc16a2e5c015c71458361cec83344c410824154240af4e844b8db36359f445fdb9acb6188c59918b6965d192e0ba731775771f46a6b2616ef6759ae37934e1aa478b5d02d64b3a00d2db22455b9cf8f8b138693e2f6cc9cf39a7269cc0536ee22146c111d41cbc4a5a890611e2829667
+GCD = 929fc56193af43220bb8b258caf55d20dcbf9b4c5a9c72b0151fb2e676b7fa942d294eabc38be689d6dc4f5e1ba4e441470e81cfcfddbff7b4e6d66414c3aa3f1eee18f360e6bce779a64316bad7a1914f4112ad0de6301f6f478d3e34079734ad2f510e212863da53588a8fa05d2239c4f72aa05e756181e61d6086ee3050f99af82dabaecb38f
+
+A = bbde1c851190ba2a157615abe5f4606590734b2da23eeb9b40b25ffe9154fde0e3de53eaf847c18bcd68ec474b2ca80f34861fa77a93e550aba514ae5b9ba9d718dd0e8667925e7a59609bb2a9e7f98bf1175cc0d5b75ea328e480613c9858f60ff1f3878aab1cb346a69e0a10ed5882f3f37d9a78ae647b185044b44f3e98a4a1cece1d50806a39f56229373b8281326d44f196ae7e94f2b0fa9d3c3ae091baa2c42407c5306bc2b7004462d17cea7f37b80f69af8775271958e5493644cc5eb11bd310180b74053c43cfb3be85704bb030ed64e1c84820da93d759b02dbe3e37294bfbf04e83bb1f4a46d22de31ddbf0e7cebe1058cdf47287ff0831881991572c846954ecc70af72a65a18c58fe
+B = -c436bb823c11242b634e38eed617f460b6ae4d34058cbd124d1b5e24614d68172d13b3dd61bd9f3cbfc906d68e19311b72792139d1ba0dcb555d476037c1385183d58b89440ed1f7e57c93740053707ce4ff09286f5287e82f58af471cf6289480451a1d61836e111584a1a3b262916e0e895192ed9d45ec24832d3c9bc97982b167a4fa09554760a3927227772bc7d58be6ef80776ddfc60143844e90621e537a41250a31a95ee700534aee6b490b9b708a803bae8f06286effbb8f2e928869bfea564893471eeb27db6ffbb3f203b6e163e0d558258496b1ba171bf84016b1302f8f0f18a2113bf5ef6918b77a065b4831526b3ba70e73d768c25d6d91b791aa09f641a5eaac9d25c2b33d6b0964
+GCD = 1184caedbc857a571e163d9db99552ed498c1a6eef5abfdf0b2f655dc8e5f9538d9c9c371a2fbc2fadb2ea8973066364f8b211ec862e94f1d7d15242bd5106a101cbee70b6318ad02ba149c1fc19cf34c0e11f7d99576840c1ace56fe31e35f2f33d36285250a90f1837453d7a89729406829462ab55d7591dc00ddb06c9852814f42e2682726482
+
+A = 13229e6b4023589b758ab6b1b54320380e7a611c80e48b87c0800f557e58fe6efbbad12ebd9d9597956737d8340cf26ca7dfca35a14d9dfc33460eae6b36c71ba0976f9fa8cba07d17f2edcbc83e73e2f2a34db103eb6f5a9ce73b6d4122eb8705e88e68d67c3d77bbc1d395ea33e70d605a9a90df8553e953b4625ed108a4556410475fbf14d0da6464aad4b4934b66576fdb0c9f85c9e04f75c92ef4afac6b5d38258705d9831c791940b6e5426275562969c64cacfe7235bd0fa566a2def5eeecf32bedbd0eb90cc335de21a0649bf34d5503cddb8c17fe334f65c47af6eca7e5e2779ec4ce6711efdcf29ea699f4ac86466f5f40277f9cbf6d3dba662b62e761dc491d26f81c26e89a19c69e374
+B = -2932ab66a01411c7ed6ed0942eb637e7bee470f1c36e26a2a1c957c0cd16e770916421bf60c665dda682ba26a3f31d10efde61cf0f596498f0bfdd8e45df480602d0dd8eef5dec44fcc2686d3c99b2d12c0001b0a1a5eab96b14af69f78a03920b280cda457606a7f17ba86fb8dbf0eb322ead4522ffdf57b2374607dc96323cc5c2a6ca81f37675c381d693b8dd0abb6711f3bd1b794d8d2ee4b00a34d4a4853061f0ca86fabd98b9070d351c5b27077b99ddbcfb61e67bc664b58d7a4d115a782c48e1c6ab08adffaad97e334ce506dc0fca0c85b7608a31cd81d24423575345d05cdf2b10616adb367ae8cab299c2cc757329cb2796619eae279a2f345d898119cd7586932e5ba38f585335ed89a
+GCD = 3176f95620a041ad21ea85ccf6dbf566d4089638c14017e351e874e39cac86aef060358ecccc11845f179f498b81842d776d5d79db0268a8930f90b77559374567c8759c5e9e28d95bde79c78f51787052e7c67280cb8b17aba50156f05a681ff88dbd525b4f78ee324126f5baa8eee83624bc38df080a8d0bcbabcca7098eb85ed040eeb65d16f66
+
+A = 81ac8b57641306c25a78440e4fb8f1a8301b842bad5ed80b7d59f708cf57040c4596c3f95e89e8623d48b2e8c73015e32d039af51232cecc95aee4157153c404691a3232035d9ec5b53f3b1261772cfbb8414267cf92341339c4fb5f3481cddff4b0cfc725bb341502d005d02005542cf734a49302673f927a2665ff7f8f1b0980928cfdb1a9b06a6a41613e07c892ace3a94d1ed578e9cc057196851adbc6274aa4bf76930764d05781a4426bf9d92823929e065a136d4f38a3f2037f7d833ae4c24117f0c63375ec0f9bbd87047ab778c2a632875990ad68bbbebed593dc95dafbfdd435929096e66d59bb91e405a3da74482ab7a37173b142ef88def69f5830cfdb0fc096e8efea7e826f1fcdc13
+B = bacc4162130805583c89d287960658dabaf4a6072d05f4b79c6f2d152b1bc088f3ed7dc3ae3d366c8bd55e6d94d7b4bc8bdade587f98c17fe7198016f4dd12e4807641920df3015c647eb749221c8acde393086f5e83c0d3689a199d0b8ba228b439d80dc12a124b9d3e5f610357fe2201d42920fdfcebfc2eaab09b0b7b659b40983d31954302a8ed64285125ff214428a190fb9eef80c2853fc42d2ca482133ae4b8b12e5fc384e0aedb95faa9de4395a42fb5c7c80c9356a0b093a9f838b4be305d24c73c216a4a832f8bccf0bef1e2c1924064198ded63f57c874d1bf6e99395d35b39f87bb25ba229016d4ce3a285b3e981221fa22f6d8e3f9647337cc0c9ec247ea902331f362e8fbce4c6877
+GCD = 5e8e3ddae831f42ae315136017111624aec5d2c4f3ad57f5c408ee94dd7f2033eb5f48f21dea9476db60aa02a141c39e45dfba7ed531c85745ab2b7d923abfbe74b382d71099b26ff5988dde70ef696a2621fb369e369f6288f91c1c1934a85fd0aca79a33ff77db1f698ec095da36c6f722f9746844f8554dabe0250aaa2edad199f79732fc4cf1
+
+A = 22d40cd71e86c8760a19cc623fe214619a71947f93e618ad04a8e2b35a34c74da0d3fbabe2fee9e0c7ba5b6824b524332d4dfb4b292d8921f5ae59bc023cab10c4e56a65188cd673a994f53ebe7609dc32efd20d79c945dd766d9024d51af8ab9345758f4f8b0a56d624bdbfb0b63238fa2516daa5056913c68cc77b3a83296c10bf9887e99db04992b46da9f1c989cc9f9e5ac46e6bfabc7ca421d254a5f02fec1f9ecf13a90090ee997b099696ed84f7f1b2fb3129ff4a8cbe16ffdc5ad1017e8efe332535332dbca34763b7d34892d8a4fe4d21cc09a4458c09992428a5d38a99f54f1c3d20f9aa74ee8745f91fe6691f98c952924912870964cda20ba6d10078e00c82e97a3a0f926b00d7d088c
+B = 46a015fce18c8f9dc8873479cf61171f50de48f8bb5abaae95920fe57f7a3f3569da8c9b0293e7c66188635a316ff28b7226d911ff9b0ec050f0f850cd1a0c50f6b5a4bc1220f64651d2195f5c97f5edd01ae849b14aea2aa4ffc38eaed26a74b55b090d86da7fce05d0cd29d64d846955b63452ee23311e7ee98f518dff48042dd4bca7cb2aadf9afb69b5340ff7e28e17fb926206e1ff315a6f6aa6137d6163268a8777ae6e7f59986dfff870fff98f54f43d38ffbf9123742f567814426988e494ef43ff1c21c73de26fc16745b684159bc54be81ed8bae9285b792db16b816536d1579e653a0d31b65a2bcc85bf8167c3c0908ee82e8a20eb806552976ae21c523015885373cd14cebf4ac1c5248
+GCD = 524ac8b2820605cc51b8ec2b9d1f283c8df0e639bdecf4b670c30a68a3273dd08e9963e964c5bfd1261b8de70eebc776ab8b02f5cc141705f39e7637170c283df86e90003e35bb16828eed7fb56a8db2729aab01efd8296dd205fd9f0d3946565908c70ec148db9c1529810a4eb9d9e10e14c8ae5bf0fc861a29b41d1f3ebef0e3399700866e2933c
+
+A = c3bc1c27eeacde663a096a178a1c56dedbfa5f5860eecdb3b848f38c66b9d96b0cce7db956fd9a44043bb7cc83b4b1c4d2030d9b8815d6a1eaad93950e9c084bff5349ea60128568a7c51c123251338e087dc75b2ecced7b67676d37ea3a801a49f5631debf4f42e2117a54ccf57e22157c2b772eaf41065bf6dcaaeaefae847d9233d34fad1e12dffafadf0e22f052ee2f9329b150f5739017011149df395c856892620cdf539b472eca4acfadd353d84bc72494197e95c1202a2e69c356e41d4482b78424ea0796f35037e2739c9a0c98201b1311eefa955ec0ad9563dc86c46f7c04f5b7c1d468e30eb02daad35d5ca1dd2771c8ff4590c95c59c08d58ba56f2ae29f0a7297fe7cddc459822e666e
+B = -1e46ed933c3a6e199c42e47539900ef253726f519fd4be30b11056d2adeecb3137e76576babefc6251a80548f7badc138e1b0df7c52c8e178ab128046791ff193dcb6e54b170b9f0f2bfa7d755028b59b87b4bc1da3564e22f8d78f37dc6f35f27f8bb3a60f62a0990aab45b1a227bd01372d2e443f13f355e9a56e60d064471774cfa06821aa47d8a07daf3fa30696160a7b7ff4acffd98301e931d9707a7c9772a37925787f7796fdbc21215a4a8d77afe94ebe8503ce198ff901d685751ea6fdbbf71989431ee18d2f6c1ddefb73913b0612a4202c4a43250bf0c6c7b16ef3ea258970f08594edcd478962314283b8d05ac90c7d65cc76c85ba3a0d7b018d2f90a06646bca1d3b394ce8d2538555aa
+GCD = 1f87a51efe5b0fa59caf2cb864ecb1b2b1a00ad8322085d975f0bf8fcbf73f195c58f1cf1e3561ec0f7331e1f214ecf913d9e9de76d8fc6402948642b785c1cb36319360cd7ee27387919cf36080109d1ff9777eed5bf95b7fe2d174bfbf67bd3dd81ed985721244682176fb6b54c4730107b16fe41e08105c2afff1d4edef299283dd9e82cc6cafa
+
+A = -190e2bc8d27fdbf1f10b9b43a6f6ef631ac1aeb1c57a802f73de8624180544e3eec2d09a796ae97a3b3e01943e26aae128a7030d9b5a0514cf88dc2d7054d1b22506650fdacc18bc4932b8dc3e411305b73061a5c7e3b3feacce25f3d6ad42eccef4bdb2c762500345c6eba7805768c72b03706975bd09849a804a84f1e8307defbf6ddebcbf9e81bce8f313fab1a6a7cdfb9a8107b184f2ef6be4a905a2d3fdfb439b20308166b4aceec4c24ce125458d5e3b7d322d107bba4bae060e54f4f4ab0adcdc9709d1a500c426b3369eb80b730ba9dc74b5e73d66d2938aba6ccc472dd691fc989ae8e6a27e8e47a3b358591b2437991f274bf1a8c16f2d8e017b0caba6cd984423f06c343c6739d3ec1cad9
+B = -50d6bdf1d4918bdd8e5b8c36447c6ba21b1dc52ebf434c69feef9303e2401a4dcf36c1ba935dfd67ffe108cb2f21cb045ffe041cfc68a0d463e8288b51dadad10344241e660a7ffd4e1539bca21ae2da4fea1aa10287188bcdd4e4946a4eb1744db38fe3c66ec542f1d79b36416f660a0ae6c230a21a90d972494005ece6232b99c0e758e507389a8e9028bfad47d0e97e4a09fe69a1775132b005453458ebc5a066ec5ae780cd549228adaab9a0427390e1137f535eaf1d468fd043be5eb5a5fe1e6df48102f5681e89f8c0ea9a9973e9755d424697a1c0b5e6629f1b7e6a391d360b670f51adf89a615aa09ca48eadf4266482afb7cfc9b1ffafae6000f386e9f55df77df85360e5888a606cdae5a96
+GCD = 384d8cb23deb11876000a97f36c0935bee4d62203096f0ec7f9a4ac2375f66829547986e3e08870a0ab9f96acd1b31508a4fcb0fc657a644917aad211922b960dae44f406f05fdac72e1814bb0b61652edb8bc07e21b7ce11cc8ab8e18898836f21ec94266a4c73988c76c79820164335d1e4e014abd9be600140b2384afc6bd5c98d81d249120569
+
+A = 3a109be74dd5ba2b070eec2a49725d499fc2d4f23ddffb288a7ce3f459643237955ab1e0196fb9edb59feef3298a410cf712b3e4211097d2a28b87b514a72c9927dc6d69bcd794f304f30ec0b85d56c0f8a4a117e9660b5d5e585e19721db6281e0994a81245f0354319e03669e7651343af29d63a78a8a32d3f9ded1fb9c3bcba0298840dcb707b9d71203e4423f65311b8aea635d85520adda744567afeeacb6ec23b0ae219525eb618e896ee572973ecc3b6e53cc54b5a64a8add76ee7f24a896594175d0637947ebc330fbee8a77b8f4c1afa092efde54a935f18b991785031619eadae7aab9d06f930210dd2252b53009214f232e8db7d8f2e740d0de2ff94472da081c13e4e4d35c8f907eb3b80
+B = -132fecbcff4a181f2c8d0dce9d6c59d3539ac5ecdb0cc3a844c55c64904df3e1e37a6d6db34f19d081a516deccc0ee5f8a1648fcd7f9b44421660e504ba3ee4c680c7ba78535d5c892fba5017644d0ba860fce39d7078c03ab902ecfd9676aa24714e35fbda79a9770f202bae311a977f50d86398e8e3ae5ad47b5c2f72e90126d01a554bf592138b8ebaf838157303fa3b2c3b0d998575c34851666b0d6325eed741d7f1ad4c99b930f702167acc3b3091169a31740ce87d0714f5eac9cbbde8a3e81ccc12f809d18b6f3e5909393b3b3449e8b8bc5d0dcecb185b4e0abc5a9baec3e381367ea4196ec04b5a2ff8d6da984e3eaf036d14b8e3c70ff879f4308a3e20818914b9804a691062bf1a966a780
+GCD = 3b53e7230757053e0ad86a2ee8dbeb49fe8b60625e77dcaf1599b765083c6eea2addb26d2a8a421de10574410f207f33a24301d412eae3f6eb08289b977a48e4e6f8b3041127fb7bcbf5a8e2f4e9b2c13e5f0622ce46dc8dc9d8e8697a50ddd7a37d9764ddc1859a44e47d184dd30c7737039216cafe6931bb4c8f5816b3ab56dd2fef1ee219959380
+
+A = bd88fc5ba0cd6bb11e28ea720bb5b3dd3b3fb4d795934cff5f258d83ff90bb13f0d3ac4954116f668ec3f041f4647006b308eb2d5dd9e903a610c788948ad99f12812bafa89a599f424876ff6b5ee6ea17a1e821d18682f8e028653f71c96ac328d8cacf620e37ed654d101b6cab7b83d02a6867fdbbef746ac07b7449dd9380443a00951e28d0bb62450059ba69c06c487b3fee5184a559940551adc7867c6363db1df203c42708d81333a3dc2b256deef3fa2f3598f924d8be811adc0508ae9f826e84aec1fd243dd385f0c20c27457e648f9624b97ad67ade150efcb5230ae16f4ce42a0ad7b61e9c8f4b041245a8678b5d545baf521cb73ddf555ae9fa2481f1fdb817872472dc8ba6bdbf49458aa
+B = -3ff6520cb83fa7df001bf2f8daed79b497f6bb34e7edc8cae52c2f94159adb79127f5130c639ca55e605b76d24a4ef54e53ddc7c5696c6470a89cff447f0fa0331f41b7f2211449a22c030071dd1fb45505018b2f76e2536de44b06bab358a4d42a1f71a8153e39d62549720d28dbd4161eda32e6eb8867d3c02b5caf0af66a5927decabab1a73360977afaa0a65da7c275b85216fd71dc7d9875331e634bee302bf970509c788e3cb4bfd8b35573b8c97cba8b909f781a2730c300949d788c6b98044213dc7c9004c6012b9307206723cb8fbc95608d501288b9a5eabec461092c9ca76a3e10b79f5718fd56944ef859b32ef429509e2d242720c4d2d46b10dd03c869bcad2c8312b71dbe18b29591f84
+GCD = cdb6f4e9c29d299805159a1ccf5c4cb64dc5e3977f9f60743eff5f005381d4a67a5f42095ff7e97c82e68c46fd5535d5f36091b6136d4d59ca551983f2c37504320d3eb72bfbfc449da9577ebf4ef2088e6b1eb9b2cf8024c8bb6b1252f99d93f5435258d1f65db5aa9f036f6bb0166f05e4b43c28d2065d49c779fa20fac69110a69d1eacf253c86
+
+A = -4ca1aaa717d6742adb7fcc95b9b725ac07e4a0133daa94aa7e6a5fc0ee3aef231982b6fe699379550167ac315886982515a4007526629457f65078479db3efe0913105a4bb476ff2db16918f3763d80717cd42c65f7034257a0ab1eb840236c8f6a15814746cd12cbe3f8c5bfc771971b4b2cc20d231e49b1df10fe8e3b5fccba169d6efdd467d115fd706edf16b3730c3b32d44403752ae643ff79a20642a6748f2413bd7a3298c4bbfd435ccef4cde649cb101cbde34dd5420483cfa0b6be3aed9b3181c93a1507d77a3304c41694c0b2430d24b3fa3c7c76a2c838ef4bf59b0e5b9d78ffd7c91df3bab1797a5000529c18dca21fa12a0ff6c4281acc9f0f63ae51f44b04d6e4952e53288033e40e908
+B = -6831b24e29ec0b9923389233d00a0af26d0fd2b9f575cf63b06c0af1d7ca36418ccaadfd0dba06dfa2c6daf59d0d6fee6116f7a9d124072e50301f3a4549a3f90ae504af55eabbc50c836728de3304a55d8132831d8b14c7024cb3d8dff78a98ccdb4408595fcaa3c358b7a6919c7ca8157deb2e683a81420a25be56bb53babeb3427faba3904b811081d67790c14122be5af04202f621fb17735f66aff5db598db15f375172c285250de66c011804d93782229feed0f06c35ba05d9d95c67fd62b53c0e7e24254a474d94ed7e147490f468657308d30d77731c416d78c5d3e4c188c431ceaf0104ad21439b2639602d5e336bbb86eb502b61dc54be1111a45ad71e05aa945f662a487841f2e1ad23f9d8
+GCD = 185561aea368640f959192c8a920128db7ca628b3d1b2cac30a13a1001b29ec59b2fbf2a489462adf3bad76bb66d2f5a9b7f0d075034b09d80ce602639e923778ad60f2640283d64328af605b82475c92ddc9c58cd92f792b2ca6a602e7c09ee7bb20487e673c65a65067d4c32aeacd91ba63679bec224769295a926d4381b9d72f80a8948837bdad8
+
+A = a1d7dab703cf1fc6ca78483d9c6da86b19d3b851a77b2e010c36aa5e86d4327066cd1ddd345178f13a684d0749999f84f08a851578143cc7a51638df265f4bbbd7d1b47311bfaf23debf953f06838c033d72bc36bcd7a4b187a51eb9a8db7c235fdbca91ed07596690cae6f9717720fd41e31165b804d0de690ae4132265192dff8bd9d408c7b8786d2f8c18af9af4a3f49170c5ab71b0d3566d4173b1ffb0234995e93bb0592018e6147398d09fb2b298d7fbfc7c739fd88714bf2964f5125108f9f306e342a072bedd28010690ff8aa7f9e9fcb0f4aab81a03523c117266b546dd1d9a54df67f6087c8ac57572994951a6ad86278846640f260a3addea1e5542f1082bdca58bf3307a1f8b1b0dfd11d8
+B = 11b87b63d1d4383776480dff9baa0227f9711b5dec6c2336e7de596071de513b4c12edaa10bd3f410ed019c6acefbe129c7813ef1ff825f6f7ae597795789959304ea72bc1c3fb5074bddd2b218e6d1c6cb099f7c7b8d1321aac4fdedd185b2e29c34b5856bd9bb4ae5028857443b7ccce87d7597387023febc8095d8a98c31aea2eb40a4c84f5a89723b3008c3c0e00ea948a4597d5b1872f4710e2759a74b37341035a8aa105d42be89970534987638bf89890d57d1f47cee2ce1572cb01ff3af6b8c6ae2a8490399b349e607e01c441defe3817b4fe8b030c956cc8ef662fa706774fdc20816c739ae23d2a2045d6409860942010e726e2d77833ca108d79ca0e53f87fdfb121ebc337987523bdb7866
+GCD = 22c04f016b106e8634db74c3a7537d70fc17a822ea286430befd67bd916620cfff9510599ca31f139ef59f171d7c11f7a59b0fcd22cedc93b06281c3187217cd55e4d98c90c3da9b582693b67752e7d7b13bd0db632aabf2daab8a27e49f14fe3fa4f7915a2f34981edea0d6819ba022633b3e1000d4b0dac3ba126544265bff870f0bc47326d924b2
+
+A = f64d903668cee86d1c0a84098bfc6a262ae0fd69128b8f825cc2397797b4aea27de896b629550ab41c5ae8321ac83b872090ec88a0fa757b505f3cfe96584d9763945c89101921144eb930f3ce7acc736c410b6d2a9dc6013b9d748632f7f178a1f62328df55a232e1f9b69efb77e7ccf8a97ab38f342175eeb304ae3b2a60b81aa028f8d7eedf27da90bf1b004d8c037302cc55be00d7b1829230a57af5a5afbfe2949c4d8749f9ffb34482039bea4988e10ab1ecd3be4efe40ede4e6217bb4c247dcbcd0b6bbaba4015f445d8ce86d9eb8a63918085ee8c1e3198ec0ede1821dca33754d0067424b1a4b6f4e5a0049b1711578e3b96d9cf43f0888ca8f1bb2a8ace00b042b60be38ba7df9dda7f55f5c0
+B = 1480fe598decbd5e4469a0399bc4b10b097f661113979e091bfa273186a357c955703584a32b6aeeb0400e67cd4a14865ae082fde635c372fed76b8f934b31e4a957e4ce399fb56821218fe905a14ffab644ffe30f4b5273aa94bc857d8befee283c6be29d9a8f2bc25bf9cb9342d4d78ece0e5a67a8c9344e2d47d220555a668343f78ea0289794babbb8c6ff68f8dbae079efb221869240ed123ba3b28c3e79a84b7f76a679d3ee26414b6c36ff2c86824502f0aafe648d3a1d45f99630d45f8116d565553fd70de8a696c8ac246d5adfa0757cff8043fcbfc560e89cc7eea35c038854707106c79b0f96120bd4df77fba3ecdafba38b1e483d2ce4d40dc19a2b9e0d5777188bd7a995af286fb361bcdb8
+GCD = 59824fc44c1ae92ebf3ef5d024c6a890d3ab4a8a6334fc7b3f645bff451b54d131fb13059b57393e76cadeefbedde85414eca7064643dbdb6d9e364f9cf7bfe4b88cc0b72e1958bf4086fb01b01293d4807deb6bdedc03270e405d7c325e0aa2820d54282bf389d6340c55c0ef2282faca675faf55e160e7d1f2097e8a0637753e365b03b87f4bb7e8
+
+A = -7062066f8cfc03dfbf0b39a545306699ee6a06127b3771b964ef67c1008b7781ae84349e623f06685d10ab1f0c5ac968a323a3fe68e33f2e3240e387f6eb86810c349db309c24a0e07b724cef46afea75e8e0bcb6d7a80584df4bf4ef6aea5a408da2a33b4cf3a2dcdc77766ed8bc560ea8705d1052d68c5270ce8ffeb2b2d72aaef25f7a9f0c8a9682cedc8620cddc16f5399b0c09d2531335427a448c29d5da1648c24c90edc7155ebb0d2ac38ce4cea93bba3cf809e0ca4361ddf4e018e2898b0389afb05adf8b73b973309f7ff60faa6ee061a780ade7fa6336c41e987937cf0d1491a8b2b3b32808093c7fb4955e70f85ca10bf15221a69c55670b5d38bc224914872ca5da591fe8bcd80ad3690a06
+B = 4337fb2388d1064c806c9f1f5516b3baed5d8f9daf964def6a23538777cc309b4c61cb2551f191121db65f1be69f07c366bb748c1c8ec594e7c7f87efcce3d0ddc2033f17f30539fc28cfc7386dd9aa0e14db03038da12eec38a3283c0f4253d67beecd800619056e5f8e990abb2731d318bef4adc1208396a568474fefcc4fa01c74228bf730a04abd9883604429913de1c9ad64dcaf6b83998c8cc5d1c1f53970f76df098dc9f6653f545354dbbc44b852b52d8c19e45f02c077264d2968181e620b8ae2f6eae3b6b258f11ee5a33d598336328c5fe2cb954371d2d3b845dfddad1cefc909fd668719159b8de473d1fe21ee723034048000945053be31c64ba50e75d9428dca0c58b13f9dda3b226c8717
+GCD = c2151dc3983722ed6283617e44a828d911ed3db448f1e78529bdb7eb8585b77dadeda19ca05586f9ce138c5c68a854bb0ffed062471ca3c8d4766a49fdb777a329dc1719f2f615fc356f97b0acea290d4ec1a0cb692b6244040f20851392f4fae804a22860f7982f4bf18d21ac5824eb369b7d81b68b9d0098ba9ea71d42c62e74a7be1d71b7f29455
+
+A = 39d191e9583c5502319c3fcc538b2fbdd533c6c6ff9100479eaddf38a62f7df2aff6f8184dea01dc5d48c2c4b5f74be23fda46afc4d9e440769ee25f75058ffcea992b79fc3a2822b556966591f46524b78e3493ba9ff599f2eb28a4efa60912d97835c4914f32fa948aa0275f3ea39ee7a65af10fb77565ce944be8606fa07a92bd8dd4969596a0280eb9f748a05de2f3a6dda6a2cb265b9aae0d0ff20da969a087596aca2b2502b294eee8509d705e75c0e740c36667df30b838c113f2892fdfee5c472015632ef9de79f4a64b5d787422c2ea467843978ec008839fa09dec06e25a54449823d259a7363104eaae27605b1395f030309c34239a263941958ea7591b6deafaa4d52058c917c8fa5f3c3ce6
+B = 18e6463f6b3b907d6366553fba34937bef1cbe8d231ba2339112023f34c286ce3122dee44f895472edc991d470171b773a192df044555eb166ec9f9d92d417e9e1b6ff3d4b22923ee0842a984497a5c99fdb960cffdba06ec49572ceed281c63d9ce83f4aea46db1dc46e84d893f3549de66eca124545d50895e2e907a356d0ccd54383910df2e400f39df61721e4eef60a9592ee961d0a8e4f1a6a87c9cc793e6cbfebac5266649c647658e67faa0afffdf481ba4b0055db3910431e7de19e1dd95fd9710fe70d8030868d537c4b9f8a3969200fcdc5c5bd70d21e24fce19db061dcf9d545741b96caa624be1b4410814ee224fb0ffdc076fc081ea76e6467413ad8a8526611d4eed34e1fc593d35f1a100e
+GCD = 19462da8985245b5f0234342ed254102218663d120c7b7f2fd9f9d1dddb3d03d4c126423c53ef1262e946319d5dc889f6f9faed4abe7052ac1127c84c9f99751de247eb4ecf89865da9ad962c1cd599c5c2bd7704f37e476a9790dacc7d9c94339e4f6e1fa25c168bf72f168c9af402605d714e690da4ec7c3782ba87afe9555499edb2e825bb0b443a
+
+A = 63bf1efc0fc1548233924e41667053b2968832fbe1aeaa8127b3fdacc07f10a889ae46cf5c846160ff088fce54d0d9441cacf786740e6fa064f9f2879131b185e3558cb654dc21956f702a8869c23ea23ecb170c22721326b3a3f336685d837df67c2654aa8f1615f639ef022aca63372b2563e1d20461f0daa9c27fa1bd4878bb439a729203f2c03c7dc785ed2c58321afcb51998aef18f6d8eaba05671b6034861bcf145464ef4bc3b3e16424ff8f4f171bba79e3537b1eceacb746d1d20ce5adf52f45e8c30f883e5bab9efce36d6bf1a03cccff228114c1d833424c6088ea1f76ddfbf84347870f45667c9faafaf5d47742c37564eb7071589f51cd0c5352ceb2eeb9f255de75a4fe10d864fc9aab0809
+B = -ab66773f75ee7a492648bda7c800a3a1a6eb83bbe012a29254aac4e9fac933d2e94b623fa09404bd1374fb64ed96e0ded036e6ac1a8fe4bf517f0b479b186b3f3bdd300d11d9df3514572e967d89f80e3b0cbb969b2c484fbce9660a4115bfb6a57a2a1e191c2356db361ca28f16f59266b31240ea61049a99e0763a5220257644bd9b8480462f93406ba4e3d29e8e160d8e39b60bbdc9017bb0b0ba598a354d1e04167888d7c56258edab42d5f3a24bfa6b711594fd5a95e6c42bfb75db39181706f0f3daf8f42e5a82f2faa0739c459d09353f1d16b7ce8501569e08130dccd39f46356cba20ca61782c8212d36524924e017641b49189adb09d21c4323501650489b638a087a8503ef9e0c9c5c4f8f43
+GCD = 33024f5087d06c57e1e0a1ab0e80fd9197b79a8a23b052dc13840e96620fc09100cc3d8b5613c50e4e2139704a5eac581854a7fae2dd549ac203ec5cdbd3f8c34aa9a403e4e26e64dc656f0ac8fce6e23778d96e9cdca38a61a942750d42d99f546ebb06ce33f0c79620a2a48c23ca74642dc33b149f329e2701ee24fd00a3c3b7cbb54c132b9f3aae7
+
+A = 1683a12f7a6276fdae1bbcf7d3758af624bd34dc8db139ca8c2571dd169a5d1c370877165a87404ecdad08b1a0b21f168d265d0a1e3841955f1ac659c818e4b8f2dbd01af6c56a6ca19f862e443754d756e9b2a64d57f1352b0c49a4ee1e69d945616354fbe2b8ac1eb4c3ffd925fdebfa79d7b55a8b63c0605df7f2097c440b714b99f4498165757c558f283e75df7cea0f642429f08b423810581bac6debb8c84bdf8c0b5b4bb430d7d1dd6db6486a3bad5d61bdf5525760c231539fe2c6463581937fbd7c85cf5620c6c0713a91bc7cb8293a2dc411c4afeb559cd04a204fc15c6c631847b51bd94db0df91ff088652750e8fb023ed73d408c804b0c27aa5fca11dfcc9ea78fa6970d9a2838c773438e932
+B = -132f8811888770a7e5eceffa9359e7cced76a3444d39236a1a3981b85c754644fe18ed271cb97f37c3ee3a938f9be406ca7851ab3e8d17f5e66ba3526f5be09d9f9e9ad5cfdfa3b566b611ab16e63ce9300cc56b5f21f93b7dc881bcf13dc0f13d008d74e86b4ea6143e123df693d2ef44b2a0057da98b33d3d172720533eb13185f0be9441c22f8cb9b9fe68d18f943fade223827b4786630eb9ea97c3df5e9c2156ebfd0ee3933e50f3b8b463c3b2f8fb5d26deb901f848db2a4853ac48921f5d53ec58016b78d2a7089148a90ca0fd99f6bd4b918ebd0116722d458db11b0d5ddeb5c3ef0ef7430a74093b66c25bfc16173549eec82210c9685a2b540053ed73e2b25068e00181f1758d90bf65cd4b9d300
+GCD = 5c3140e5edd044d33799aff3d29be00220d86be14a0b20cd585bef447b7be4fc4c6348dbe2dd615b47e64ac95c5d1c29911c58d06f7334f38d7e9010e404a3fa756600f2706242c5c7aeb5224c4f4b52d9e3253457161f30dabc123725098a145f94da649d6961a0d4f9fd8d16a2f89a64dfc4e0066da3a12d2abb341e7bf92035152bac699feb98202
+
+A = -8e96a6ef5cdeab379fd8d7e5acb3f4f36aee7006de4ca37d8d41067dd023a4a2e05cd0849dc4a45445e60c74baed8b1ca084e9f2fcd1ad18ed797b0e4608486f29d649e781a22fc6a9dc76e12695edc96ec3a93288083eb0d7514e65cc91e9974e8736c1899c39cf5d7cabbf5ceaf983a1a6f676fcb2fa8c5a39ca06a9dc5143a7314c2a04dcdbc7eb5ec1436a3b06c71421bd302c80881da3aaf9cf97554564ab59d7051f374c30c066045d997027df4ed82c11cb7f9fd3fa3da8977b342d7b5295e6f15e9478f9f19de0758e61b4ae35d2249956af412672c27bfb42503f8903bbc23e5fb1c1b23cfbbad21f0e0c596fd760daba4d75d14b6f290efa81b53cc0b7b8102a854565ef0f3b72c0402e283e34
+B = 22cbbf9702f90aaa51185193937f164c39f6b01fd58ab222143566d7ff357c0aaaab994e41be1df885b8799b88b0e3b1409480099c0500cac43fe1fe9507f6709180e0ba373294a4856cea684b4e91616beb3f894ae956c5e8eeb9d2c008382786fc34874f19280c8f4f711ab0408a4418cbf7541ceda69274a6ac7f2cdc63d1aa46f073d37f5ff85b10325c8b5eccb52324b5b5a01ea995c60bae746e2fa265b4fdb88f66d213454600b59e4e77cc2f9a84eeb49681215b57c390ff07440a4e9dd5853b75a07a02f7aed4d75e62181a8e5ad1637d72c6ed8613312b69208b03322c37675ace92302d83bffd655b6a84db7b6c93a7981d8b5440e3d4b51c116ba4a6f2189cfd4b52f315146843fd980dcec980
+GCD = c168035bd895faa92bde660e92181575c809c7b64736715154016aa5ecc5881ee7b5b1802d6f306455858a89fd8dd9adb15c728a93813e410b93766e6b154ab7fb08971dc8928a48d47cc95280c879db374b113382b36fa1596beb3dbc1698676354550e55c9b6e71abec679070d3e7f54b6fa8a8813ff475237444844c46cbf47f3bf660dceb647d5f4
+
+A = -40
+B = 30
+GCD = 10
+
+A = -50
+B = a0
+GCD = 50
+
+A = -360
+B = -1a0
+GCD = 20
+
+A = -fc0
+B = -8c0
+GCD = 1c0
+
+A = -1380
+B = 3080
+GCD = 80
+
+A = -8c00
+B = 3100
+GCD = 700
+
+A = -17600
+B = -14000
+GCD = 200
+
+A = 4c00
+B = -4e000
+GCD = 400
+
+A = -7e000
+B = 15b000
+GCD = 1000
+
+A = -2e3000
+B = -f34000
+GCD = 1000
+
+A = a8e000
+B = 26d6000
+GCD = 2000
+
+A = 9d7c000
+B = 3264000
+GCD = 4000
+
+A = -1a3e8000
+B = -1d020000
+GCD = 8000
+
+A = 8d6f0000
+B = 2e6f0000
+GCD = 10000
+
+A = -2441c0000
+B = 40440000
+GCD = 40000
+
+A = -f4bdc0000
+B = -372d40000
+GCD = 40000
+
+A = -b48000000
+B = 3e45500000
+GCD = 100000
+
+A = -539ba00000
+B = -a065600000
+GCD = 200000
+
+A = 10fc8a00000
+B = -1f1e9000000
+GCD = 200000
+
+A = -72afb400000
+B = -e41f0800000
+GCD = 400000
+
+A = -1855af800000
+B = 18483b000000
+GCD = 800000
+
+A = -33fa62000000
+B = 556e8a000000
+GCD = 6000000
+
+A = -6d3a74000000
+B = 14e25f2000000
+GCD = 2000000
+
+A = -bdd7590000000
+B = b4028b8000000
+GCD = 8000000
+
+A = -1b352d8000000
+B = -2ff23760000000
+GCD = 38000000
+
+A = 2f952200000000
+B = -caced3e0000000
+GCD = 20000000
+
+A = 25c48a380000000
+B = -2f83b4b40000000
+GCD = 40000000
+
+A = -6b0a38400000000
+B = -222e02640000000
+GCD = 40000000
+
+A = 10e693e00000000
+B = 2a91159200000000
+GCD = 200000000
+
+A = acc40b4800000000
+B = -ba62b3be00000000
+GCD = 200000000
+
+A = -250800af000000000
+B = -21f913a3a00000000
+GCD = 200000000
+
+A = b11e010b000000000
+B = -5e6cc495c00000000
+GCD = 400000000
+
+A = ecf2f9e4800000000
+B = -2230de92800000000
+GCD = 800000000
+
+A = c55db0985000000000
+B = 31d033ac1000000000
+GCD = 1000000000
+
+A = f4c61e0c4000000000
+B = 1fcde4e65c000000000
+GCD = 4000000000
+
+A = -10745bc688000000000
+B = 77683c192c000000000
+GCD = 4000000000
+
+A = 200587969d0000000000
+B = 3d7ef4d588000000000
+GCD = 8000000000
+
+A = -1607532cc70000000000
+B = 8b7ecb6fcb0000000000
+GCD = 10000000000
+
+A = 28b168914600000000000
+B = -3856bf7e6760000000000
+GCD = 20000000000
+
+A = -9b383bac7700000000000
+B = f393c8054b80000000000
+GCD = 180000000000
+
+A = 18018f46e9500000000000
+B = -a306ac669f00000000000
+GCD = 100000000000
+
+A = -61e6a75d0b200000000000
+B = -4b50bfa706c00000000000
+GCD = 1200000000000
+
+A = -e450acfaf1000000000000
+B = e291575d62600000000000
+GCD = 200000000000
+
+A = f48a77d4cdc400000000000
+B = -e6fff9026b4000000000000
+GCD = 400000000000
+
+A = -494237471ce800000000000
+B = c8e850e6759000000000000
+GCD = 800000000000
+
+A = -d6494ddcc4d1000000000000
+B = 4c0f47d040e6000000000000
+GCD = 1000000000000
+
+A = 30a9130f3dc90000000000000
+B = 2fe7cb6ebc7f8000000000000
+GCD = 8000000000000
+
+A = a7c3b70949b1c000000000000
+B = -c5bf9f182cc8c000000000000
+GCD = 4000000000000
+
+A = 192222d38083f0000000000000
+B = 3acad956338298000000000000
+GCD = 8000000000000
+
+A = 70c733a418d460000000000000
+B = -371eddc44a7670000000000000
+GCD = 10000000000000
+
+A = 15f5b98bbfb3820000000000000
+B = 3d90bdb79075960000000000000
+GCD = 20000000000000
+
+A = -1d6f559687dec40000000000000
+B = 8e5e98dfa1fff40000000000000
+GCD = 40000000000000
+
+A = 2f1b28e861447a80000000000000
+B = -183860fe42628c00000000000000
+GCD = 80000000000000
+
+A = e764c621b8005400000000000000
+B = -4677b0a1fac61300000000000000
+GCD = 100000000000000
+
+A = -3d109e5bd79873e00000000000000
+B = 326a517d52fbdfe00000000000000
+GCD = 200000000000000
+
+A = -4245e22e4767b4000000000000000
+B = aee0858b9de47d000000000000000
+GCD = 1000000000000000
+
+A = a61b15b32c68f0000000000000000
+B = -2eb0a136be0c53e800000000000000
+GCD = 800000000000000
+
+A = 4913fda76b86739000000000000000
+B = -631996305a94305000000000000000
+GCD = 1000000000000000
+
+A = -63c81b10007b886000000000000000
+B = -242e79463abf483a000000000000000
+GCD = 2000000000000000
+
+A = 4ebb2f398c6b1c10000000000000000
+B = -ae1cfb1b1522898c000000000000000
+GCD = 4000000000000000
+
+A = -372396c308f698d08000000000000000
+B = -39d922031014ae40000000000000000
+GCD = 8000000000000000
+
+A = 6726ce6e60d72f280000000000000000
+B = -14c44c6025dcfe090000000000000000
+GCD = 10000000000000000
+
+A = 3b46a068c908004400000000000000000
+B = -4a065c89a28bbc100000000000000000
+GCD = 100000000000000000
+
+A = 328b811e249293ce00000000000000000
+B = b8e5818c8cc09f280000000000000000
+GCD = 80000000000000000
+
+A = -e012c46d945baf0300000000000000000
+B = -3a8bb06a27cf2357f00000000000000000
+GCD = 100000000000000000
+
+A = c8b9bea266a64954200000000000000000
+B = -755c05c1902061b6100000000000000000
+GCD = 100000000000000000
+
+A = 15744df72897c00c5000000000000000000
+B = 5279559d30bd1460400000000000000000
+GCD = 400000000000000000
+
+A = -44ba631c302f7095dc00000000000000000
+B = -747f3cfcc387f41c1400000000000000000
+GCD = 400000000000000000
+
+A = -1ebd7fc6984135ab4c000000000000000000
+B = aa79e2e13827aada9800000000000000000
+GCD = 800000000000000000
+
+A = -7ac09ad89f79a1bcda000000000000000000
+B = a43fd330aefa16d157000000000000000000
+GCD = 7000000000000000000
+
+A = -155def35220021414b2000000000000000000
+B = ce4382769da41909e0000000000000000000
+GCD = a000000000000000000
+
+A = -f9f77fab368fefd99a8000000000000000000
+B = -a101321d762b4c01a4000000000000000000
+GCD = 4000000000000000000
+
+A = -a1a6ad22c56079d9f80000000000000000000
+B = 1559e6242c1fa61eef48000000000000000000
+GCD = 8000000000000000000
+
+A = 2e34254b68b7c9be0db0000000000000000000
+B = 77128985c832fb347a40000000000000000000
+GCD = 30000000000000000000
+
+A = d8d938e7980da47f7120000000000000000000
+B = 253d7b1df25cbceeabfc0000000000000000000
+GCD = 20000000000000000000
+
+A = -1f348f3262dc6a0ef4140000000000000000000
+B = 3142783711847a6393e80000000000000000000
+GCD = 40000000000000000000
+
+A = -22049f855665081b11600000000000000000000
+B = -1940220494ed3874e13a00000000000000000000
+GCD = 200000000000000000000
+
+A = -4d521db201494fd7706c00000000000000000000
+B = 6387a820186821a8782e00000000000000000000
+GCD = 200000000000000000000
+
+A = 3aab3ea97afaeceb70e7a00000000000000000000
+B = -aa68548666cc83be088400000000000000000000
+GCD = 200000000000000000000
+
+A = -5bd02ca7fa07b72f9199c00000000000000000000
+B = -dec0777c0384ee1b92c8400000000000000000000
+GCD = 400000000000000000000
+
+A = -36c76eafed39512ac1122800000000000000000000
+B = 3334ade886f4c31d00147800000000000000000000
+GCD = 800000000000000000000
+
+A = -4a427c54c5e52ce325bd3000000000000000000000
+B = -2752e4305010c661f62b000000000000000000000
+GCD = 1000000000000000000000
+
+A = -2564dd87308c0dff902752000000000000000000000
+B = -177d03a64ba0336ad8469c000000000000000000000
+GCD = 2000000000000000000000
+
+A = -89b7ac648e188cb046c53c000000000000000000000
+B = -72c2e4fee8cdedea38f58000000000000000000000
+GCD = c000000000000000000000
+
+A = 1a050c1872a4d5d5404a750000000000000000000000
+B = dbbee819b9a75ac460ef80000000000000000000000
+GCD = 30000000000000000000000
+
+A = -10d69f2e208887798fef8d0000000000000000000000
+B = -fda80c69223fd86ef85e6c0000000000000000000000
+GCD = 10000000000000000000000
+
+A = 28b01d6cce59fd4aa5c58c20000000000000000000000
+B = -2eed166c8eaa15ba37834b20000000000000000000000
+GCD = 20000000000000000000000
+
+A = -5e33185bd74be30dbd477800000000000000000000000
+B = -90175dc8104ecf4d81b5ea00000000000000000000000
+GCD = 200000000000000000000000
+
+A = 3ebda3062e8ef2b196480f780000000000000000000000
+B = -2687453e2ad494d0a87afd880000000000000000000000
+GCD = 80000000000000000000000
+
+A = -4e1ce2e8e2bff58cbe823600000000000000000000000
+B = 7f36708b6b8d09a8e0aaee300000000000000000000000
+GCD = 100000000000000000000000
+
+A = 2c8969af424187b908e2890c00000000000000000000000
+B = -378c0156b6f46e367578041600000000000000000000000
+GCD = a00000000000000000000000
+
+A = 828ad918c0a0e5e22bafbe2800000000000000000000000
+B = 775fbcf1f1b42890269e799400000000000000000000000
+GCD = c00000000000000000000000
+
+A = 161e2b93c33b781b50524b9e800000000000000000000000
+B = 3c25387b0a008605f0ea99c1000000000000000000000000
+GCD = 800000000000000000000000
+
+A = -9f2954936d4b82a0f9435e6d000000000000000000000000
+B = 53cdfe93d4f21a1648a9bf3e000000000000000000000000
+GCD = 1d000000000000000000000000
+
+A = 8f883752a3660d243f6eb28e000000000000000000000000
+B = -1f3d9d82a559fa36739849cb2000000000000000000000000
+GCD = 2000000000000000000000000
+
+A = a643b038a1e887ae0a03b35ac000000000000000000000000
+B = 90f6efa766e06737a757cc8d0000000000000000000000000
+GCD = 4000000000000000000000000
+
+A = -28eae938ad87eab54ca2487978000000000000000000000000
+B = -2d60ad0cc9748cadbbea2300b0000000000000000000000000
+GCD = 8000000000000000000000000
+
+A = -1cb97483c93c1a12d9bcabad70000000000000000000000000
+B = 1e35d9ba7a7bd12ff4474e0980000000000000000000000000
+GCD = 10000000000000000000000000
+
+A = -3164f9bc827f429f8b87a269d80000000000000000000000000
+B = 2d9acf86d4eaa8a631c75d6a340000000000000000000000000
+GCD = 40000000000000000000000000
+
+A = df5dc5365119aac6d4ea9dd5200000000000000000000000000
+B = -ec5b8435cc4fd54601e513d8d00000000000000000000000000
+GCD = 100000000000000000000000000
+
+A = 2255062a91bb17b7b37f880b2880000000000000000000000000
+B = -3785731809b7cc9bfa0b5a071500000000000000000000000000
+GCD = 180000000000000000000000000
+
+A = -50058d044bb0860a34988fc16b00000000000000000000000000
+B = -421c611f48a2ba32e072c99ed500000000000000000000000000
+GCD = 300000000000000000000000000
+
+A = 641a23bc425858946db6a0d1ac00000000000000000000000000
+B = 18905e23596541629a15f8f5eb200000000000000000000000000
+GCD = 200000000000000000000000000
+
+A = 6d544b776658b9a25899d1f60b000000000000000000000000000
+B = 7ed23e078b9947f34ffa5fb1cb000000000000000000000000000
+GCD = 1000000000000000000000000000
+
+A = -1b7ed1e8f77b52543b4a826073f000000000000000000000000000
+B = 2704d694092d95501428efa2137000000000000000000000000000
+GCD = 1000000000000000000000000000
+
+A = 3b94302aeec9a3648957d28fb12000000000000000000000000000
+B = -ae42ebfa53218581eba8ababbe6000000000000000000000000000
+GCD = 2000000000000000000000000000
+
+A = -350b65e297e885f157f90acfe680000000000000000000000000000
+B = -e268a405ea72f181770ce2b6e0e000000000000000000000000000
+GCD = 2000000000000000000000000000
+
+A = -8da9c4a3b032fd6de17c69e0b29c000000000000000000000000000
+B = 576acc7443c36be3a511970f684000000000000000000000000000
+GCD = 4000000000000000000000000000
+
+A = 321c2ca739873e897095e7ce2a498000000000000000000000000000
+B = -4869bb803aa26c2cb962e7f28328000000000000000000000000000
+GCD = 8000000000000000000000000000
+
+A = 401c67a2f811ce7df32b12a307020000000000000000000000000000
+B = -487f4eac43168d62033f8fd773bd0000000000000000000000000000
+GCD = 10000000000000000000000000000
+
+A = 10426d1ff29c013f85beff319838e0000000000000000000000000000
+B = -12ce3019d94026f2b878c8f9cb8e60000000000000000000000000000
+GCD = 360000000000000000000000000000
+
+A = 9c946e6980886bc659ac7fc112f200000000000000000000000000000
+B = d08c89702463c9e4aeea3cd42ea840000000000000000000000000000
+GCD = 40000000000000000000000000000
+
+A = 2e8a27db4a3da8838c4f54b32d17580000000000000000000000000000
+B = -2e6b62fcacb7997ad6cf0330cb11380000000000000000000000000000
+GCD = 80000000000000000000000000000
+
+A = 4e015bf2dfe803df203e17fd8de4c00000000000000000000000000000
+B = -bdd8e3c306f3d69a2a6305ea503b000000000000000000000000000000
+GCD = 400000000000000000000000000000
+
+A = -14e3010ef700db807d8a15078bd2d800000000000000000000000000000
+B = -26ed488f2fbde4584afa5723404d1a00000000000000000000000000000
+GCD = 200000000000000000000000000000
+
+A = 3addf16e96d4f5544ad4232ada5c4c00000000000000000000000000000
+B = -ab44ffa06f1f65dc7133dd5d9c20800000000000000000000000000000
+GCD = c00000000000000000000000000000
+
+A = -3f66f37ffcd0f38a0963b51782fa30800000000000000000000000000000
+B = -7843ece10ca9825c967329820c27c000000000000000000000000000000
+GCD = 800000000000000000000000000000
+
+A = -412f766841c72e133e4d9f1988afe7000000000000000000000000000000
+B = 9b9c85e517b60c657039be0dbef669000000000000000000000000000000
+GCD = 1000000000000000000000000000000
+
+A = 3cf0d01057ea0d91716db93e3dd0708000000000000000000000000000000
+B = 278a7e815475bbc166ba7ca19f03572000000000000000000000000000000
+GCD = 2000000000000000000000000000000
+
+A = -e1c51a0ba85f068797ced9c387fac40000000000000000000000000000000
+B = -8814939d264623a52dc84a9d38fec40000000000000000000000000000000
+GCD = 40000000000000000000000000000000
+
+A = 17b5ca5721f414ffa8da27e587c80a18000000000000000000000000000000
+B = 8c2bd0e250098de8e88aed8f18b5808000000000000000000000000000000
+GCD = 8000000000000000000000000000000
+
+A = 8c751a332822b3e8debb1595c60becd0000000000000000000000000000000
+B = -8b790e7be19ae6fca63a08cccd4da300000000000000000000000000000000
+GCD = d0000000000000000000000000000000
+
+A = -338f3ab22f6ef6115ea0d777cbb050aa0000000000000000000000000000000
+B = -133f29bd9798206fd4d3049b442220580000000000000000000000000000000
+GCD = 20000000000000000000000000000000
+
+A = ee299e5647dcff3e6e029b661d066e680000000000000000000000000000000
+B = -196f98023c5b3cc12a0ccfe142b7aeec0000000000000000000000000000000
+GCD = 240000000000000000000000000000000
+
+A = 31838ca3f10f1db7dcbf54196c320c2c00000000000000000000000000000000
+B = d0adda2eff2509465f0902dbfbcad1e80000000000000000000000000000000
+GCD = 1b80000000000000000000000000000000
+
+A = 93077bafc067c86fd6258fd9bf9359c000000000000000000000000000000000
+B = -4b2e822e663d6931ee0fceb5b6cef58900000000000000000000000000000000
+GCD = 100000000000000000000000000000000
+
+A = -aecc7171cd1da55461691235036d1e0800000000000000000000000000000000
+B = -208316f273ab5c79aeb56cdb6586d003a00000000000000000000000000000000
+GCD = 200000000000000000000000000000000
+
+A = -445e5c8f6343d7fb36292abc0487583f000000000000000000000000000000000
+B = -8c627443ceb8664c42fab6f5130f7e58000000000000000000000000000000000
+GCD = 3000000000000000000000000000000000
+
+A = 33ca53ce986d7cee7ca377bac0cef916d800000000000000000000000000000000
+B = 334c34e04e1813a2da020f37ad1e7b2c7000000000000000000000000000000000
+GCD = 800000000000000000000000000000000
+
+A = -a0c07b8043d5b32a50180af1c9504f164000000000000000000000000000000000
+B = 26ac4d054497c8ac5be97f8d5dda85dcb000000000000000000000000000000000
+GCD = 37000000000000000000000000000000000
+
+A = -12304c391e9a1cd168f812f346a794a46a000000000000000000000000000000000
+B = 29bf2b48182457ae8d69d317d3a2fbf074000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000
+
+A = -debcd7eed81fc3472e75ec1841bbeafd50000000000000000000000000000000000
+B = -665258163ea6838386d797fe6385439964000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000
+
+A = -17a194307272e596b6a2e76fcb57cdc7718000000000000000000000000000000000
+B = 236997cdd22b1d751b20337dc631efa5270000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000
+
+A = -cc5967443162b205d51a9c3a727672a5c40000000000000000000000000000000000
+B = -f6812ebe0844385f946fdb16830e0807c30000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000
+
+A = 3251e7eff252d55d9eb5d727aa231dcabc80000000000000000000000000000000000
+B = 2b79c8b59f0e4556f4724a7c625623419500000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000
+
+A = -17696c299e662c98d6b064b85b83e6d2a1c0000000000000000000000000000000000
+B = 2fee90da5ca697442e418e011ea48b650140000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000
+
+A = 18ea126b5c4246f2e283c45064d2b90953a80000000000000000000000000000000000
+B = -ba0f40849f3f7603be5b2cd9cb67e2e3f380000000000000000000000000000000000
+GCD = 180000000000000000000000000000000000
+
+A = -fc937a91f7df232a48c9fd1fa925538f9df00000000000000000000000000000000000
+B = -b7b058bc740c55c99cb168287fddf742f0500000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000
+
+A = 2fc2c5f3f4bf5b1f79441c4ec3dfd5b24ae600000000000000000000000000000000000
+B = 204d71607e258c2aa1784f31c2722640ebf000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000
+
+A = -fa99fa9cdd6b959806e29cb4c60bdb6a001000000000000000000000000000000000000
+B = ddca429d34b063d822248e9c728927b4bb2400000000000000000000000000000000000
+GCD = c00000000000000000000000000000000000
+
+A = 3c563270d66c1abec92c2cf77db9fcc596f1000000000000000000000000000000000000
+B = 2696305dda274f3c06e1fed02f8a0faeb11000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000
+
+A = 79543254b07c4c0a422b79ce0282cc7b0ea8000000000000000000000000000000000000
+B = 8aab3933f6012c1dac5fd1b21b749c771a31000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000
+
+A = 3c57aa1f45046a22a1927250168f07ec39498000000000000000000000000000000000000
+B = -19440c23a403a8785c750650489e2da5b302c000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000
+
+A = 5877bbc53bb1d89758333de06c0d54933600000000000000000000000000000000000000
+B = bc46e6788e021c1162c6982930f2897d0659c000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000
+
+A = -1a55b09371366814ea66e79e224be58d4d4558000000000000000000000000000000000000
+B = -22b8a45e70787335d5350f7ae281d2113da490000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000
+
+A = 7b7d5019206af67a46f74b6939438ec66e680000000000000000000000000000000000000
+B = -e0d9a95973b3d9101630f3073f3cf6d66ea370000000000000000000000000000000000000
+GCD = 30000000000000000000000000000000000000
+
+A = 75b0123b720e3176f16aae7bcd56864ad89280000000000000000000000000000000000000
+B = 3fe6b4c667116b7c249d4bc3fb4c23d18934b80000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000
+
+A = 674805cc5f1abda27cccd43b7d6a0e876e64940000000000000000000000000000000000000
+B = 8b359ee0bf4e94c01e16fc47e6b74aed00ea440000000000000000000000000000000000000
+GCD = 1dc0000000000000000000000000000000000000
+
+A = 3f1a1457927f83fd583ed3e2a71c5e7c27299480000000000000000000000000000000000000
+B = -127b7271e516c4320bffd052e4490fef73ba3b80000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000
+
+A = 175f1a90b456e62c0dd81ac8d7e35284c4876500000000000000000000000000000000000000
+B = -80c9572b89ee869f8630387a66851fb9203ecc00000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000
+
+A = -22b95eae624a08375afceefe017b7915c49b3c400000000000000000000000000000000000000
+B = 3d695935a6844f8415e841cc95dfd86f42544d400000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000
+
+A = fd74c9ffba5d348190be52319be273f972daba000000000000000000000000000000000000000
+B = -f5552c2f126a1dbee6361bba508b2b28b73bd7400000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000
+
+A = 1be43f43d2598cf8fb8986a25e6c645a1525167000000000000000000000000000000000000000
+B = 87b054f3eb95d39b6b000bf51238807c7b7985000000000000000000000000000000000000000
+GCD = 3000000000000000000000000000000000000000
+
+A = -a4117ac05d856573e0d6e4befbd19a38ac3bcef000000000000000000000000000000000000000
+B = cbd5a243d36008c3a6a98eea3b7375b07efbc02000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000
+
+A = 17ab52c073d6114433fbb724f7460286f6625050000000000000000000000000000000000000000
+B = -bf366d0a15e56c579d5c4cd5cb4635082d5dc72000000000000000000000000000000000000000
+GCD = a000000000000000000000000000000000000000
+
+A = 19f3e96dfbe39797cfc204d12279dbab94f01d04000000000000000000000000000000000000000
+B = 6d95037e51dfe3036e31473bab2cd1ba9f5519e8000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000
+
+A = -1261b5a6da70536fd2f643781b9ae1e7fc9c073b0000000000000000000000000000000000000000
+B = bc3ee8e9dda7dd6fb6986243d0a3eaa090b5f4e8000000000000000000000000000000000000000
+GCD = 208000000000000000000000000000000000000000
+
+A = -9e2c539702e244988e4825829576155b5b0f68580000000000000000000000000000000000000000
+B = 716108c3394c331ea6b51a22e8f752ff46e6e47a0000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000
+
+A = 292b8e145910756273b49801be397a137929e85c80000000000000000000000000000000000000000
+B = -39113550b2fd4fb2b65bb83b78e3070801fee82da0000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000
+
+A = 5da9dafdf110c09082407eb9811e27353520ce2540000000000000000000000000000000000000000
+B = -309e91319958738e6eab49b1632ddcd344aa6e4ac0000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000
+
+A = -2c4b69ae900901d733697cad86ab9983bea72c72000000000000000000000000000000000000000000
+B = -2dfa34fc752ae4e4435f1af67f1e388f32da035ae00000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000
+
+A = 4e5a43aa186ba7c877d76e9f707fa4518f1cd9c5700000000000000000000000000000000000000000
+B = -a090f8c743842066da1d6e642d4098da6a2ffb62400000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000
+
+A = -e600887b9a9d9210143e0f13363bea3ea8129844200000000000000000000000000000000000000000
+B = 2f072f38bd75c4501c8efc1ef6d0ca6f7fa421be2400000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000
+
+A = -ea8898f0494f3ec63b5a9731b6e221ecb71421dea800000000000000000000000000000000000000000
+B = f59f3215d2639a11201d45f3214f7291cad85d0a4400000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000
+
+A = -152f2a6bc29e9740b1d87e0fec30cde5013e7859fb800000000000000000000000000000000000000000
+B = -2f35b5beb74deb007a816fd110813f0c1c48c4744a000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000
+
+A = 26600e1e189d9c21ac0f223388c13e0c5e6ace9a97000000000000000000000000000000000000000000
+B = f617ff2544c2aa4ff63111a9eac7f159eec823ab1c000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000
+
+A = -27f912561cf637d28d33ab505c028784bc2a7cff3ec000000000000000000000000000000000000000000
+B = 1b2a8f9fcc0c88a3ed3df0ec762e3c1554ebce81c32000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000
+
+A = -c260705d539aa727814b56bfddf8bcac71c34016654000000000000000000000000000000000000000000
+B = 1dc209e15f674ad2c0b87897d466ab8c97b2ffd09d0000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000
+
+A = -7fb7e0c8f2cb96b06cd0cde919dd72de94f604efcf0000000000000000000000000000000000000000000
+B = 847e0701ff6ba19cbdd0dbb14cb7e90288a08951c80000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000
+
+A = 7399b6097a7a752be239b5c5032e6b73657c2d234c50000000000000000000000000000000000000000000
+B = -12061bc98ecc5fdd53a5e15daccc6bc0e7ccdd7e4630000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000
+
+A = -fe59ed195a5655dc3c342540863a7c770acaaf1e3060000000000000000000000000000000000000000000
+B = 1dd42c3497adb05c371ddc110b3348a79d7b00ef232c0000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000
+
+A = -10701695c7b48a563b8720d1f6751e8f4e8444fd3a240000000000000000000000000000000000000000000
+B = d3b66258304917581fe1df50e6178391c1d3f1af78080000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000
+
+A = -3348718913c706428d5200bc2aa12ab72e0b01c14b2280000000000000000000000000000000000000000000
+B = -38b56ef8091cf98c6592b58cdc72bd2c374014ae923a80000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000
+
+A = -c5621fd5516d572ae32e4ee6b0e0ff3679821e276ee200000000000000000000000000000000000000000000
+B = 3d8fa2400ef7a9480216f87385c37323e4943a837d700000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000
+
+A = 2205c5e1ee1b55b1207cdaaa5e48855896310db99fcb200000000000000000000000000000000000000000000
+B = 9e3e40b865b88bc8b8f1bee6b74e7646c364f7ca2b8200000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000
+
+A = 1abb17518df28b80b6567803c2ebbfb8eeaebb3bf3a2c00000000000000000000000000000000000000000000
+B = bc3422ea07febba4b6b678b258f494d24e6a62ef9b79c00000000000000000000000000000000000000000000
+GCD = 10c00000000000000000000000000000000000000000000
+
+A = 260639cf93de72a8027a6782b8c10b5b7fee7825d759b000000000000000000000000000000000000000000000
+B = 1f435dda1fcf2950dfbed5709f449484584a142a5dc9f000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000
+
+A = -35642d170268dc6b6ddf5e358be48b6979772a19254d0000000000000000000000000000000000000000000000
+B = -96f6ab2642f10846d395b8bfc1e14bac3e67bbc5b72c8000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000
+
+A = -2ef8fad82a3dddc38e6ce8c4879d249757355d99d8ab1c000000000000000000000000000000000000000000000
+B = 31bcc349db0d5e6c25267acc2b5ca1c400e757cf2eb334000000000000000000000000000000000000000000000
+GCD = 6c000000000000000000000000000000000000000000000
+
+A = dac0c7873411bdd732faa69b7880ebe5e05457b8d24dfc000000000000000000000000000000000000000000000
+B = -e2792a6029c9a68db0a9a3d8dbffe81b38b00d339473fc000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000
+
+A = 23ec252109101aa038ef97b7c1cc78862b71f40890c1fb0000000000000000000000000000000000000000000000
+B = -3386c16eb8098d00884d28a740cc4f9f45c4a8959d07568000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000
+
+A = b900a1a1b79792c52da29e0c1a4d0ab4e5ce3ae31d06180000000000000000000000000000000000000000000000
+B = 1d3c94e2d6f852b956af53562b246a0756a14db8fc086e0000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000
+
+A = -35764e9c59bda2f0e26a18cc6bb88e22532536d9c98261a0000000000000000000000000000000000000000000000
+B = dd542a5837f1b61e40facbd3a0a74526025021bc24a0140000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000
+
+A = 9d9341df132131a10beda342dfdac37e90f0f75f9d3fb400000000000000000000000000000000000000000000000
+B = d909bc3054242ba4385e9ce86ca4c9948ffe0506661a5d40000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000
+
+A = -2c9744f2edc9842fbf79cafefc73b96082f1d16158db88580000000000000000000000000000000000000000000000
+B = 3594eb2e4525ea28e77c3900e98f1f736d81f9bb1ec82c180000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000
+
+A = 4f0380b7023f532777f1ca66713f3ec4ccce8b001ef53f500000000000000000000000000000000000000000000000
+B = -d4f481f6d7e829e7f7878e77797b185d99c34f6ee97fa1400000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000
+
+A = 2c1fff8f18fd88b6694597e5e175e49b569adafa53f541e200000000000000000000000000000000000000000000000
+B = 1b4c4b695c8940882a212776e21f3cac7d84eaf240e5211000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000
+
+A = 5270eea57faeaa5ac301763a35345d663a7fd01fdf2c6b8c00000000000000000000000000000000000000000000000
+B = -71ff575f38173db436b369517e314719e72d36aac368ed2400000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000
+
+A = 29f75eba92c077b740592509ea945d282c70f71b6bb9014b800000000000000000000000000000000000000000000000
+B = 2a73715f6358d26232d2f1f7d285168c6226b4d1e562ca4e000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000
+
+A = fc852621f4c19197765ab0a228d7b82a287dfaa91ed3a456000000000000000000000000000000000000000000000000
+B = -f19b7d2096cb2f974e4bb7a9e9d45d823839d79f20f2d265000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000
+
+A = -303ff91df0e496effc31123636d8c8edffd3dbaaa523f148000000000000000000000000000000000000000000000000
+B = -116897261d06df8e32d2e989f8e5339018d48568c16fc3f6c000000000000000000000000000000000000000000000000
+GCD = 11c000000000000000000000000000000000000000000000000
+
+A = -b8fa326ae0d10d3a0ef0b1e54fb10cdac7a3935dafea7cfe8000000000000000000000000000000000000000000000000
+B = -1af5edae1e10c4d53e297d557ae3d18eac43590c4d6f33fc0000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000
+
+A = 37d08c22b988566e31d14aa34565e104bdeef8227ed4a88640000000000000000000000000000000000000000000000000
+B = 27b1306a178a1ba404f26b5bc6cceb06b6b7b746a12d6558a0000000000000000000000000000000000000000000000000
+GCD = 60000000000000000000000000000000000000000000000000
+
+A = c648da88817879f3d3b00b6b1a96cc97cc93d8de64a28033f0000000000000000000000000000000000000000000000000
+B = -b21ead6580678cb3516cf813c032d106550b337025fe8430f0000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000
+
+A = 105db928be54803e351b899ed25dab1d93ed64ff9d907a31100000000000000000000000000000000000000000000000000
+B = -3c0b25a15ed0858aa89297c2be53eabf1c21dd704995c3157c0000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000
+
+A = -f50a71e683623285b964b182d5936ba615f30411c27e298a140000000000000000000000000000000000000000000000000
+B = -b84f81fc6ac97b3cfdbf9f26c09fefec8168b24b6c8fa3d1880000000000000000000000000000000000000000000000000
+GCD = c0000000000000000000000000000000000000000000000000
+
+A = 3689a92df7ca547e640e14131961e421bff4ad7ddeed2c4ad600000000000000000000000000000000000000000000000000
+B = 4511d475ee00c8232c86c6b79f2d7907c6843949ab9b8027f00000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000
+
+A = a64095c546c229daa3fc5a8e2a7737c2b0814d9ef630d3f34500000000000000000000000000000000000000000000000000
+B = 5612a2ea517be7f8e82ccda780b33b43db6c24af9dabc8d4fe00000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000
+
+A = ae983123b24582e24bfccb5766516409d8df8c81aaaf6574e00000000000000000000000000000000000000000000000000
+B = -39411488cd427611ecb996253ce4b834a530afed08e8a3eef4e00000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000
+
+A = a69b9545be06f44f9c7317d955c4d0aef3661ce10958d5dcf800000000000000000000000000000000000000000000000000
+B = 665b3c29bf5092972e9ffe8794cab8def847dc6ea3f98292f0c00000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000
+
+A = 194c8241a5c25fa630fc23837b5a80b27d098e6eedd38770429000000000000000000000000000000000000000000000000000
+B = -3d6ed3500d2fe5e19a0eebb5bd9dd98e5e30885cfa24ba5628a800000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000
+
+A = 78b5787b64436708da73d68e6f37e1221e0ca3f2f0f1acae0c7000000000000000000000000000000000000000000000000000
+B = -85170bf9304fb4d5ed9202c4c56d9d18ea11fcc6e0fb7e5916000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000
+
+A = d82fa4b830254fb2bbceed1c6cea06d5d6adfc43ef52ce3f5ac000000000000000000000000000000000000000000000000000
+B = -36a00056061db1ba516812ed0a8fb3fe7a593b05e96751455408000000000000000000000000000000000000000000000000000
+GCD = c000000000000000000000000000000000000000000000000000
+
+A = 617e3c103e98e2a94e416dd94ac5cc2cdba4757b99cb9f2106bc000000000000000000000000000000000000000000000000000
+B = -eb0e6693dd6adae2f0ffcef2b0cdb2e089e4fb95df6da3b64f44000000000000000000000000000000000000000000000000000
+GCD = c000000000000000000000000000000000000000000000000000
+
+A = 3716b9e97174e7a9e9d21b816f6b7192d181044b305cff4f3e3f8000000000000000000000000000000000000000000000000000
+B = 11428fa3afc240f22ee7a45315a28ece8506d9f53bb7180ca17c0000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000
+
+A = c68286e0fd38f898d3b9927a2c865fbe207e9af108ded61dbf00000000000000000000000000000000000000000000000000000
+B = 4e04da8108c01b1fc1043141001623f11cfad13d663fd7ca96250000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000
+
+A = -157a345d8f1a57042de04d80575e189bdc5d66967b2f3228b17b20000000000000000000000000000000000000000000000000000
+B = -2790b2d96dd0c991731d69dbd7417822339a0e332c5a4a96ec3060000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000
+
+A = -9985ce3a290f2fdb2790a9f8188c6892443e27d829d0f4b6dbf800000000000000000000000000000000000000000000000000000
+B = -dc29a9184d398324f826334d69ffe01556e3b283f2b686069be080000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000
+
+A = 3fb0089ba23f254458b62ddcf13ef920a9dfa44fe99311a4a123a00000000000000000000000000000000000000000000000000000
+B = -16bfb0978a2fc18cf8c20ca9bfda3be3a24b2833e7136a96dba8080000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000
+
+A = 2ee4017a3d07c26377807ce39a2a9ba7b143c97e41475fa96ce4700000000000000000000000000000000000000000000000000000
+B = -2cf1552c63d2f6114c2d99880aa30f1fda59968ca84a2a55eff9300000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000
+
+A = 269968caab42a13b8053952a95e6ef222f5ba45fc4d92c813300d800000000000000000000000000000000000000000000000000000
+B = 3c055ef547ec72e5d2d1f109285590052ab1be675287de759da000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000
+
+A = 941e9ee74027982612505f4caa149bc7aaec395c7ee9defbf5e4e000000000000000000000000000000000000000000000000000000
+B = -ab4ae9e3a8bcb781a075bab079eece10e4a4ab4664968d59f88fac00000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000
+
+A = 91f4199e4fdb0726f8b6e72a4b49974295d5f0d7389d49ec12ede800000000000000000000000000000000000000000000000000000
+B = -1bc6b1f4744a8a6a894292d69cd82057fca37ebfa700bc8571560e000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000
+
+A = -dca2410069ff44b2ce97b82987ec40ce22cb60f7a74533da8423da000000000000000000000000000000000000000000000000000000
+B = -1cb0e9309db6a5d4f65eaae98ea56fe00292f5336d9af3492196d000000000000000000000000000000000000000000000000000000
+GCD = d000000000000000000000000000000000000000000000000000000
+
+A = 32c61b5e8aad9b3e3dae15ebcc05bd06ee4fab43165f4f75f2e988a000000000000000000000000000000000000000000000000000000
+B = -34b8cf5ddeabf5565004cd9f7db5d70eaf1a4f445150733c7861370000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000
+
+A = -b6ce3f8712a36932e4e0fd81d9d43815fec6b43d9add51fd842630c000000000000000000000000000000000000000000000000000000
+B = -4a96b6247c0b255581870a232610f0a49213b6740e21cefff93f948000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000
+
+A = -1ca58f0ce100d4bb83f20d78458250d498e65153dc259ed30a793c8000000000000000000000000000000000000000000000000000000
+B = -324b16b3fc2761e4e9767fd2d1db6a36cdcd3f433b20bc0bacb4d008000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000
+
+A = b1808eccd148b0f0db592f71c8392b6ce40eab010d06a19392e34f70000000000000000000000000000000000000000000000000000000
+B = a794514d4f6e7dab41bdf2bcd88e168bfd2a777524acf1a558966da0000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000
+
+A = 1f36b03fcdcbfabb8502321046e10c5565885cf5c14b8defc5ecf06a0000000000000000000000000000000000000000000000000000000
+B = -23f6d59be786b54682d94ef19411c7f7a08f0c6059762b8e9a9387720000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000
+
+A = 312c07959f9678ad701956b05d8c1f4c1d8a0c92f6494f99273d9cdc0000000000000000000000000000000000000000000000000000000
+B = d80601f251cd588d78c27d7f1aa12d1c835599d9aeff8d6506bcb8740000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000
+
+A = 274292b9b9e694a82957e50b01d2548afdd4587292eb2c234cc1167900000000000000000000000000000000000000000000000000000000
+B = 2e8a0036eea2bc483bb117fbdd964015fb776f46496e3206f3d9133600000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000
+
+A = 7be6e3ea49e0a4d79a95b027f088bdd999bbba41e6cd7bcfed3c848300000000000000000000000000000000000000000000000000000000
+B = f6f297d14eda550587b3c1a5f8c611520f70541eb8a75083822951f500000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000
+
+A = -1d7616e629be37328793aa35d83bc77a225f1900e997784e5fe1d7f4000000000000000000000000000000000000000000000000000000000
+B = -39e4bab54ce6183539d7772a369844e33e3ec051a8758b4f97e83347200000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000
+
+A = -80b78be51093bc446f1878e8ac0ceca27d7b63d78f466ae441dba7d1400000000000000000000000000000000000000000000000000000000
+B = ef5484d711449eff57945ce8d8a530ca31ce893a59ecce964c1f844ec00000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000
+
+A = 25aaf376d060880084d3a7fc84d9ce95454ab0c9bae41af960c58eec3000000000000000000000000000000000000000000000000000000000
+B = 2fa4be2d9cd3ac1900661ee77dc9321eb80a4071e23a53e13b33d662d000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000
+
+A = -6cec0ae09d636ea3cb3d0c3931debd1435e57e4a53251bbbf29979de1000000000000000000000000000000000000000000000000000000000
+B = 9b2e64573ef799b4c97d3a5b5e4d3176f93b1d75ae170a50b615a36cd000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000
+
+A = -d182d1908a4241bbd73a6177f833bb8ee3f952b67c67aaf5feb5ce8ee000000000000000000000000000000000000000000000000000000000
+B = 315e20c8535372093139049e38b588bc6fee72836b779e41134d08c91c000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000
+
+A = -ac41107ac9671d7c3667445cd7b890b3d25d80bf6166980ef0c80db0b4000000000000000000000000000000000000000000000000000000000
+B = -1de8d5bfc31bdd7b1605a11199eea5a300fcc044665ea13b2020f75378000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000
+
+A = -13f8a1499f01144769ed90e9d620abc1e5beabaaed7c70c910e118b5f78000000000000000000000000000000000000000000000000000000000
+B = 1fe53a5add2526b1ae223a9aaec94af7aea15e635e099ff3e0e65040ef8000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000
+
+A = -f47bea5a963270813c5a2b1fbce981b3fb9611c88db75553e08aef649c0000000000000000000000000000000000000000000000000000000000
+B = f4296227656efb17ddc2481f959a516fd696c74b55d2f3766395b4ce950000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000
+
+A = -25a3b4f8fe551c48c55ddc329b2bdc02f2436f84e59a7e0cdb3ee3ade700000000000000000000000000000000000000000000000000000000000
+B = d667f0cbe6421b4f2b29d359334919134c1efc91dd328c3eecbe2460a0000000000000000000000000000000000000000000000000000000000
+GCD = 60000000000000000000000000000000000000000000000000000000000
+
+A = cf0b9a281239cafd203b19d92086a229b58133ef6eaf8bdf0f88adef5540000000000000000000000000000000000000000000000000000000000
+B = -e1b0237bffbd95873b0df106a6c2459fb84d3cce0fdf16d6e168481ae900000000000000000000000000000000000000000000000000000000000
+GCD = c0000000000000000000000000000000000000000000000000000000000
+
+A = -1781e494df516ea916d08e53c755f6053ecba13fff59ec4f4b76453f31e00000000000000000000000000000000000000000000000000000000000
+B = 36278316b0a8e725e9b72a26628a902e78b446a67cc58caeddce4ed81b700000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000
+
+A = 232def836a6cc558362d9f0090b5f651633d768f4749fa06ffb6204d6dd00000000000000000000000000000000000000000000000000000000000
+B = 2cbeaf4e71c1134b7f002a58a9444271d717036d8191a588efd96d2990600000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000
+
+A = 20de8a5e270605d6ac2e74f003c532b8deb0b9313f3485567373c4e5b46800000000000000000000000000000000000000000000000000000000000
+B = -14d214ecc14cc1d50dbf12230146881b6dc2c0e23c167f53a224bf6f1f5e00000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000
+
+A = -cf22d2d6d3d6d8a4a4cee97d92fdbcb1fb6ace7ff4648716f28d7e2ffc9800000000000000000000000000000000000000000000000000000000000
+B = 40e496940fdcf65a7ab08a9cbe74f187acf2c81d95efeaacd526b46ef0bc00000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000
+
+A = -2eedc24cda25a083ce21ac16d787b0e3cde5ec73785fe0b270f0a9ce25ab800000000000000000000000000000000000000000000000000000000000
+B = -2f363fed3e53a7f4afa99fb76e7117462671e47446b462bfb36f37b69863000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000
+
+A = a5638b46010d5099a1bc8217620501679c333a1e8e8bc2a9110c5f087658000000000000000000000000000000000000000000000000000000000000
+B = 6f0c64f047659a63bd7450770746c46858f2059f6b65e0853a9fba2e4a98000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000
+
+A = -cf83fc1803b44989b2a118698a6500880811fb02426c0c9ab037e955a3ba000000000000000000000000000000000000000000000000000000000000
+B = 3a65484959c2f5e4eafc7059ab4d917e56d62607cd5e40b6ab229f7e33012000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000
+
+A = -6ec3bed80423372c9f5969ad9ef6a4b0197cee325d4492de2d0497625a1bc000000000000000000000000000000000000000000000000000000000000
+B = bce0f040f87920eaf776baaf066331ae30334618de36c89657b84dca3988000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000
+
+A = 3a19632e88410e9b550b0edb09f60e611fc6423a81715dc6ab0bf49967aa78000000000000000000000000000000000000000000000000000000000000
+B = 3b2161a02cddd1f666773d04984652e5cc53d39f5b6ee6ca15d610f0a09598000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000
+
+A = -d8d412d4c7ecd6de9892912039fa148b125656fe9e43ece9c24566042f6070000000000000000000000000000000000000000000000000000000000000
+B = -3f4e8037e969fdecbfa2513101ccc06b9ce577b23672467e758bbe7daa23e0000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000
+
+A = d5765f39f5652a8373c2a672c239cf939102eae550321167858b3873b5caa0000000000000000000000000000000000000000000000000000000000000
+B = 19b951fd6f5187109c7853625b9215b0cd2e2dad19af0b08399398e121e1e00000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000
+
+A = b4683383b08f572f4c341f5e0c5f5c47b5b45747bdf557f50e525ab4c8f9280000000000000000000000000000000000000000000000000000000000000
+B = 64e6f98e3e1fc6a1dd9dc54ddc6c23e0edafed2153b4d5ee22aaec646853d80000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000
+
+A = -1c62470f1768a7643a60f33f4f02f60423c9b45a6d91e55d9a615b1c5a878800000000000000000000000000000000000000000000000000000000000000
+B = -37b36519c07f3ccb483ef9073a58714d9d7592eaef3586534fc756fc0074ad80000000000000000000000000000000000000000000000000000000000000
+GCD = 180000000000000000000000000000000000000000000000000000000000000
+
+A = -ad2cafc186989a34a00092068410444d7add3128d60ecedbab07324daed4700000000000000000000000000000000000000000000000000000000000000
+B = 1be5f45e51c8db22a19db44a6f24633da7c9a437354655716e7f9f576a26ee00000000000000000000000000000000000000000000000000000000000000
+GCD = f00000000000000000000000000000000000000000000000000000000000000
+
+A = -b0c32b510943872842f04d92f478cd9e3e6aa356ef45d71e5cb06772a9f6b800000000000000000000000000000000000000000000000000000000000000
+B = -9c1517ceab0b9b4f7deccb9a682fb40cd1b8f25cbeb5c02e3259b2748529a200000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000
+
+A = 2f6e884cb66b6ece457cacb8980e0a257f516aece2e10d4b22276d462854cf800000000000000000000000000000000000000000000000000000000000000
+B = a9efe48c93454696ec81dea21a80431d3feaefd64072b8268d3f0fc9d6906d000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000
+
+A = -35d345d5f3b09c5c6b5e3a8c0ee4b62b75d33eb9ad216b1afe5c06b1dfde1800000000000000000000000000000000000000000000000000000000000000
+B = f0d13e2ecb84721870f5598fe984dc6cdda625257ea0cfc6bcb4c6160a1ff1000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000
+
+A = -366f787d461e84db7dd6c78187057aa63161056752f0184c7c8b7269ddb4988000000000000000000000000000000000000000000000000000000000000000
+B = -608342055904dd99199ded355d90ff8176016aa1c01a61deaf917383cba8d4a000000000000000000000000000000000000000000000000000000000000000
+GCD = a000000000000000000000000000000000000000000000000000000000000000
+
+A = 17e0bd33093dcac82a76230cbf259422a1dde5a664a6fd2641ea2e1a3d6915b0000000000000000000000000000000000000000000000000000000000000000
+B = -3cb4f1b8ecca3211afb467690da79470d9346a5f07d6fef0735f3d5233f8b87a000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000
+
+A = b6d42870aaf202402138b69d0653f924e7bc394eba9abf6977b3c8f91becee38000000000000000000000000000000000000000000000000000000000000000
+B = -c11e29ac4b0084e8e1e2d641edce30fd24d8b40fe3bb7017e3dd9c1437e821b4000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000
+
+A = -2b9908965aef333f7a69b9611ebc02fa7918cedf7c1f54ae5c26c361916375470000000000000000000000000000000000000000000000000000000000000000
+B = 5ff09037286235d9c7ef63a0ed438031ec0ada0efcfc3b847b2714ac4ce14d60000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000
+
+A = -a67ecd61d234964ce910de6ab47bd2026b1fbb102a31f49de5e7d5208ed2a33a0000000000000000000000000000000000000000000000000000000000000000
+B = -379decda433171077d157c2ecb2d4c1a092ebd94d2a1287066624b25114132fc0000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000
+
+A = -3bbb67bce8bbca285c494bf6e1e15095eff1c2ca7d9038090844509134be15b8c0000000000000000000000000000000000000000000000000000000000000000
+B = 5e40a789f4ff67eeb14de00ebe7f7476015fc6850f71628493514e35ad8bad100000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000
+
+A = -c894ace9d6cc4f8f7a0ef8e8d9a2e69c55bf02cc028c788966fb8ec273e9b5a0c0000000000000000000000000000000000000000000000000000000000000000
+B = -bff7f2fb8d4afd92f4df0a401ad9b3620bf5ca610b276303619ab9622f975b640000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000
+
+A = 53564318ec432c30a9f5b914cd542db33267133cec6f121bb075d4b44ee12b1680000000000000000000000000000000000000000000000000000000000000000
+B = -584ccf1cdf30d796a83f382c5299f9fc45435ad60219e12de87d454b128d0f6e00000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000
+
+A = -a875628ca5208d211d7b4810a70c4b6012b614027747eeb837ecaddd0770563f800000000000000000000000000000000000000000000000000000000000000000
+B = 808647ac38b72d828b90185e07045a840af09ecf82d7bf1d614ba86ca960b539600000000000000000000000000000000000000000000000000000000000000000
+GCD = 600000000000000000000000000000000000000000000000000000000000000000
+
+A = -72cc90f561bc466ce15e2d9a4ea0893dda75a7df6c998e3e97787076c53e8caaa00000000000000000000000000000000000000000000000000000000000000000
+B = 6f2ff336ce8049ea1e7a43891caf58c704500e342a998dd41403ace39d903ee7000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000
+
+A = 5772f939718ae5b84986c5ef86926ff784d84f3ee0e3afdc657c6dba098629dac800000000000000000000000000000000000000000000000000000000000000000
+B = e845a7bb64a0d5b3379ad1b6e27bd885636cea8dcd331c50d8b209e6957741c44400000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000
+
+A = -238ec37e5f2aa3ac40a7580e135d64b4462e2d1b3dcb0ed2209b9f45d0fde30f4c800000000000000000000000000000000000000000000000000000000000000000
+B = 3ebda919b6d230ef6d990174ff7329f22e12ff527f72f9fd230c3ea1ed32a1f289000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000
+
+A = -1d2d015724e5d7f9c28de49c9bc66ac25bc6e29f72afb2cd10ca1adf41589c820e000000000000000000000000000000000000000000000000000000000000000000
+B = 7ae8895af0e25348c76a1c9cae4536d0737e3a49f9ed3908f4b2345aa0b5f2b05d000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1fe78eee2bb343c6f7e938fc0c1d58a4334f051f5a7c4befe909a513d27ee80102a000000000000000000000000000000000000000000000000000000000000000000
+B = -32aed1613e74c83beefba13a1bb8e7210668b88c96d14241f7a938cd805733b3eba000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3493c45b156a2eea76c94b03d286dd11ae414d8bfaf91caec482aca649913bf204c000000000000000000000000000000000000000000000000000000000000000000
+B = -510ddf29951e66b6eb61b65b091d252c0858eec9e802b79b58c42e03631af88b520000000000000000000000000000000000000000000000000000000000000000000
+GCD = c000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3a9a161e75b8b0819450f7033a588350466fd6817699fd0f6e60cabe3be7e00e5b10000000000000000000000000000000000000000000000000000000000000000000
+B = 111499dfa41ab6bf37d80d2c57b3d9ff8978cc441f9511b8827c879ea47518d2e50000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000
+
+A = 92dacea76bd085070a807d3cdb8c31d464db98f6c8dddc938bf3da9678c449dad500000000000000000000000000000000000000000000000000000000000000000000
+B = -76e10078bc216dc46078619821127efff9002adf75d16665e37acd43dc2331c7fdb0000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000
+
+A = 325fa6772b3af91d5c90329edf99dd87101dd65b50c5eca00a83249f2223ebc97c2c0000000000000000000000000000000000000000000000000000000000000000000
+B = 25f9e7aa32bf6aa3474b0022a27587de36a6c84ba39dc37680fc9920bf9c179837b60000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000
+
+A = 9249461c2a7da5a263cb923edb548e676d1a64f57c3c923214492ab7d2f79ce1bf3c0000000000000000000000000000000000000000000000000000000000000000000
+B = -ad2b0e2963c4c3dd495e774164d98a12ace50ff933d9d0b5e479d150d9579244cb580000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000
+
+A = -23c73df6ecbebe08eccbe255aac00e42e3ab80fefdbb1c7b94221a3e2f54e81c4f4580000000000000000000000000000000000000000000000000000000000000000000
+B = 26daa7165efd7a4c93f3feef932823373be0156224810434c33aac1d749aa839096d00000000000000000000000000000000000000000000000000000000000000000000
+GCD = 780000000000000000000000000000000000000000000000000000000000000000000
+
+A = cf2c56ce276df23b75399c41abfbd440cae5733fb3626385179db049e3e520f7ff9200000000000000000000000000000000000000000000000000000000000000000000
+B = -29bbd64bc61690ad968097015e9f0a3e5db132660e8d86a0c6122fa033bfa2c1324700000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000
+
+A = -6e80995a0295aa364889dfe4518ae6301d2bf4b47ecaa4e451b8f9b5a3df73abfe6c00000000000000000000000000000000000000000000000000000000000000000000
+B = 1c2f8938627b1cebb4af248a398ccda5e1a6021a4b80c822e49e1890439e48382fff600000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000
+
+A = 9b30e510fea8e92151daeae5645601fd7413f27f5e45b839836e0291fd994def2536800000000000000000000000000000000000000000000000000000000000000000000
+B = b0b9efe537b9f862ce5138bcb1644771a864c4a1af36d986ed3a94c2e630d8297a01800000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2800000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3b3175eefd21c733ca267846e39c9980ef6cd229900b3dbc975737d99e614d9d92f91800000000000000000000000000000000000000000000000000000000000000000000
+B = 207599cf9023171fde89be6b48d555dc64f72c7e4096d5ba32fb46ac29e47d5b9c00a800000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000
+
+A = -b42d06aaaacb45d6e6c3edfe0972b8f213ab45cf6ee4cc2c835decad1f9b2c61522b0000000000000000000000000000000000000000000000000000000000000000000000
+B = 65f733032d0cfed1b5769b6b6c1392dcfb7ab34e0d38d19fa3c38e9c7e4a3d2ef8b51000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 12073418c52ced08ebc1ed6f4134918b4657dc7567e7fc84b4e39b2485e4a69cd084ba000000000000000000000000000000000000000000000000000000000000000000000
+B = -31b6debc980eb097f4adb9a9023203d54998d62bfc4add0e04b2987604f74281b9b12a000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -f66284aa162ee1c3c3d4ad53d4b6eab1030ea0748f6de1899bc722a5fd8456f2336098000000000000000000000000000000000000000000000000000000000000000000000
+B = 51f090fb43b903f14f81a96bfd11f4c6bda571fef79649e7def633795210d36d299100000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1746f8eaaebf001d9fba4345a7c778483b2119fb8c08cbf49e1f33914949c2896e84c68000000000000000000000000000000000000000000000000000000000000000000000
+B = 285c10d98ac4e9990df3a06d2f347862452666bf7e67113452146ace61276c8fe97cb90000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -c77cb6dbc154296e9d7a46fb2d3e5e520de910bfcace4d5cae36715652e9c5e041be800000000000000000000000000000000000000000000000000000000000000000000000
+B = -290f8ad162318a0075a2c0148153dd36849e57802b7bf38167e930e28a672e77ee07ed0000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2cc1d18861c40cad056bcdebb3bfd80d1356e19ba6fb96fee3c372f4047061c7eea5b40000000000000000000000000000000000000000000000000000000000000000000000
+B = -22f69156c1dd1bc2f7c08027392fa4a3e5a349a99e241edb935ac2a3d6319f85d2fb3180000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -7251cfe89fa31c84b5f832d5b52f8e1b17a5383edb03c8693ceb87ed01d2f619284effc0000000000000000000000000000000000000000000000000000000000000000000000
+B = -aec6b8a40a58e86ac734f487c64dbe8c03ca4909b82b3f383f8277002d7ac6c7eb381680000000000000000000000000000000000000000000000000000000000000000000000
+GCD = c0000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -174890c84552f03b584c4587b28b98e8d9bc3ca78e7f66c283e4478af2f26e285a0287400000000000000000000000000000000000000000000000000000000000000000000000
+B = -31dc2323e683fc67ffcc2f6eee8dc861c37fa9c84aa92268a2cdf095d554abf132a51ea80000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 8196604c2380dd570bb9d424b5b73368dc33e32a8a49216aa0c1c774067e1f9702ee7800000000000000000000000000000000000000000000000000000000000000000000000
+B = 2854c0c615fa784672ab949ffb29bc8500fc0c76fd725634bc3180a023f5cc39c9186eb00000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2883595b3da39e5ef96e10c81123d5058d4a2396c579ba585f8b0d4e76f83ff0a7ac13e000000000000000000000000000000000000000000000000000000000000000000000000
+B = -145d46c227f78ec8bb86459225281dc58e36839a2ae05c55c97c6e1a1096f5c296ff4a4200000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -d5475966b6c79deac4485a0bb4a53392fa9d1f228a7048044b2c862a1bbb4fa98d99be9400000000000000000000000000000000000000000000000000000000000000000000000
+B = e5d94e8f68d56cdbf3d270d2eba9f2d16d3cc31cdfc777c302a2f1fecb8f6d392323bd2c00000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2b93290c6dc5efe19618fb0b57b2326ba50e4ebf747c4cf8692e59c7217623cc1e17267e800000000000000000000000000000000000000000000000000000000000000000000000
+B = -39debba8f0fa5f2827c0d6ac31315f5da1199187581f74a7b46e27abbe8b569902955e2c800000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 647dfeade3cea8271ba696f0d60b8709cd51d66a5c98aba8c668322c37e234b5ea5066e6000000000000000000000000000000000000000000000000000000000000000000000000
+B = -560f4b993415146ac43dc46520663d0619a088f6aa6651ad8c0492a110ec60b4c6dc86a9000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 95201d4caf75249169e82f2618c5d2d11ee92d576741cab49a090cf32226302929f4dee8000000000000000000000000000000000000000000000000000000000000000000000000
+B = -271788bb47b154b8cfdfa45e2ad53db7ff339fbc0c826bd0498c8231b5d0adc3148aea20c000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 9c5d847f14699d0accb6f2031bfb5add139d274c7cb8dde9a5aad50d233a3a6112fbb6370000000000000000000000000000000000000000000000000000000000000000000000000
+B = -72325bafe60cde9ac4b74be76f9c9204b8623743bcd339b5015608fd9a1cce3a88b33e284000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2f37dde309117ecc7c93781e97ad8d39194ba3b2d664238b8a3774661d89f6e064f7db2010000000000000000000000000000000000000000000000000000000000000000000000000
+B = -186a4be6a289ea413960cae96984614b4f8845292e990ccb9d281f023dd860c8ca8d99d008000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1577ad348cb7eee734aeb4b0fc1644347e650bac208301e18484e86a0ce8f53e02295ec8f0000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1a5c495b55e9e01ac9af9534290b0ab0d666111a0ffa7591f118115973b3122e534ffec1e0000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 30000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -958f3c096939de2c0a007ce1a85058c9cbe2d080843317246119f69694e632c88fcb704440000000000000000000000000000000000000000000000000000000000000000000000000
+B = 29bdba3ad1fa40cbb955bc50cee72c2ef9043f5add3c003fef2297970fccb343c9f38dff540000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -821272f1f8fc44ff65e068f27bce697086f00a4850e76cfb692e916bfa5383825edba943ac0000000000000000000000000000000000000000000000000000000000000000000000000
+B = 34512ebd519a16466e83a86c7cccbac9bd92940f346ae7af1c0de3aacdc9efbb7f3e4a4c80000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1025c83caca80bc22b2f8662939641a3efcaaa1624056f9f1e816279d06e7b3d39b685050a80000000000000000000000000000000000000000000000000000000000000000000000000
+B = -58ea8bc7b3e4ebd93bc7fa85e20cc41ef140599e1f5a875970c6eea3bf6e5b1b52a7f80ab00000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 180000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1444b6fffcc1abf66fca58d7776d7d9861c0ef2d70157b315ad5dc41889d7b40180e3fa09b00000000000000000000000000000000000000000000000000000000000000000000000000
+B = 960b6e6001ac53a527a61bc4e4466a9f929616d3700bae77327e7789dcae6d1c691dd535e700000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 140154532a964dca1c7b84ea513ba6ec8e3e9c24c4f69d19120fa104ec72269119e12921dbc00000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1b8b5363cad0815214bb507678e2c20d8d51793da699ba8880819169c011258269b03ba1ed600000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 582d15e20675e0a3b7a43f0efa930786a874651daebb750872da985f20fd232746956039b1000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -c664348e983283783e65020ef0612d3b7d938e601c07ace8f9e9019a6d9ff49fc0451e8e4800000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1f1d4e2fec18dfebef5bd93cb225d51ecb69d7ab8ce0feaa8e1c5a84954259ff0a941f0304a000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -19ff8931cdcab3a789ae13fb67fb704d4be3b44c404e5ca30e09931c6fcb4de6fdc3d6727b2000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 688e477ba62e29da1ba3b1ed0fad94910f048801ae58f360347628049a772246127e55232c7000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -6d4dd09715cc7d874d693acbca821dd54f75b5530bc8ca37651b153b9cbd3b49ff208a8838b000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 188e1fd967282fc10c186b4eaba598cf319a4215624f5ee6f9dc87f389cc39beedcc7d091fc0000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3d0f048b2f99f5a3e5ea50aa47e810dece1bc8b7a829d71d2c83eee1fd0cbe3502038ec08d62000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 26000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -391c64855e37941d0eed0bf52de43bf671eb8e5b3b73695b791f5ad79c14aacd1ba3b67bcf90000000000000000000000000000000000000000000000000000000000000000000000000000
+B = a2453a85507ebc7b95ed48966f9065b4411f68419e5265d9b6b42236361a799d625c35696eb8000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2152cb78708c948d1540f808476c06ea96aec7b5567fe4165f1239c2d9bda0aeae559583b7688000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3f315526ec906aa35e10acee74b3f6eb6a95cb1e950323619ddee6ef7d3d90283df23ca96be08000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 141b5a100f51a8ef67434626ddd417b1e6349b3f88d5cb2c113aa50a81c8b6ab0469fccd3b0e0000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 68a66ef6282e4a0fb9cb34fa19dacc85f7d05565d60be79e74a6147bd6f8fe691a84ce5d1d190000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 332081c6cfb22e1315fcebd0e0281724b41a66af831b422ef1db9cb026eb7396527f019c1cb280000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2106778c2e12f6e40e369af74fc1b744ae6950aab15177d72ad561b4bac20fd504abc673450da0000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = b1065d0e29d59a70172db2943e016ced48a0ff0a73ced97b7bef5f87252b7680d3444b19155640000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -c439f89db6f12cddaceaaf161dea5adee2b80a183c99b1590671f05c05703eeba95bc53e637d00000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1d5835587921ca8c7c03b5a451aaea4579f174ac66ebce5b2fcbc20d3c20289237cd8c4cb92b900000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1993512ce0c634a7c14e8099a73bd357e72390880739927eec3c480759958011be3e8e077e69480000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -de6d806e52508ce1317c341e9638b23acc165f74d0fb7dc407b99767d9c427e0ada5c8659fb4600000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1ecce5d9478f7e7c7ab4723699b625e7cc3ef0362f1c291e2e5a66183257aae4532c1dfc70f9600000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1edb9e2797174899ea287f95b8f58b885f3ea73abe62fc1fd63824a812b685e9e9127cd39fff800000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 350ca0688726b705fc5677e4a77a65aa60b859b73c47637ee5b8ca27aa81e54d6e4dc927ac27b200000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -e5afc34fff877e4b3fa38c39a016da0c709b6aba02429ac3a2a094ef21fbcbb64f18c4f9bbbfd000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = e9f7e1599b890c45f06db24bcc4f0be7fe07612b452900b4ddafd8ada86829cefe23988a1175f800000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1800000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -83c017f5543ed495f0a0726b7a95e82b135e381ff8ebe410b85dcc3a91a765b1d25d2e169e64c000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 39b5881482d531eb97675a788c787a8ddd9790a5b40542bc70f11ef0d854fd84c2212a16425c9b000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 3000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -59d12844ef5cf8d0772e9da694af171d97062c3c3a11c13e50f007ae159b5a2b40c45acb8bab3a000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = b0cb15e3a75b6d52469a0260be456de4de30690c7ead8c91f1307dbe6d55a5607550ef6f9af582000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3a74ff25f61099f5c6b48d0dfd0ff2deebfd35126e1ddfad86d304dfa7c41d0c38149d022f731c2000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = e34df7aa7316d55bcf39eb6d9fc4c77121653d5d8b5f72c5d60304c28ffda59f52718afe1a91ae000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 6000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 9fd415b36e981b73eb18cf869ac00667ef1f8a8f0636e25c6ed93476de12a025750845b19213bf0000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -d19137dcb5b46c2a77b2785b50cdfff666972b02fe3aac06895e0a064fd5c0a81e0a1eca330ce78000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 78000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1290afc6859ee575e06ff6410c5135ee8ffc537385394b6cef95f76a15da29a00fdd69e049492178000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 165a886e610231043572364d875af03190e19c88acb1574f0c1c9a4fb3e288244b1ac2998be4dae8000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 7f95f72fc5ef05254dae26e7d32e03c68d737b12666fa20a6eeca1bb4d55d047247ece9ebc08ff90000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 28ea43b81639afbc4d5864c99759dab61a83d65a9bdb3894052afced51451ef87031f84aa3123e60000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 9941179294d92f3b76d9caf05c79bbf3477a996c0b7d03fe6a42bd227459e1b9fa38474f07a2fb40000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 372a0e30fc1ce25b816291ae556f40bd912cadba448c0c7b431539992a875fb54a76edbcdd09f77a0000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -faa95c366815fc97b0969e1659bd6a02257ab17f56dc3a7652cddfdb97d0cd3a7059173d6fea0a240000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3d1e6440c4bd6b7c5b2d1c79250808e716302ffc2e72932719f8959fbfb88c2450c459ad9d6d2ec80000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -38b706f1de731e442a402fb1ae98dbe1eeba724c8874c400712850494da9598ff453905ac97c346200000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -26c29d97366f85fcb034cf4cbc51883ff92dd97c020908ef1eed1a45f2e672eee3aa398bbd900cd600000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -6f2629e222747e8b58cf5f5645fda3780d40148fee400500dfc2ce4daaab245b7d44466eee81a54600000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -7cdb377fbec367899d49ddaff12c72554281d373acd1c6347a0381a6cf30b50c1586ccd8703a14d500000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -35f3a218057039c22155ab0617b6c3e676e2a11b9661f72956474a974db62b25f464c5abd7e9349e200000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -6a09d99531c328ee974782ddd7837cb571833af2ad7f59c3aa3e74836a5b08fb4359e538e085534600000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 600000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -ad7c12a88969a3bab8118c556a9d83dd1756f076be08041a0203279f8a00b77170e111a3e31d5902400000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3a5367aaf0e697be9dc3e0e5dba63af17686b34c1faedf8bc387fa5a23c624a7f7687cd1fc6a117e000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -4da40cd3081d23ca87a023f0e3ad289b5ec2d3dbb32b2d25a7a15188703934d1b40ed1d57af4b734800000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -ea6071422dd7bb5bdaa7aa30a302c62c1c9991f7ad0dbe2824012799964c5aeed3bc3084629bc5fc800000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -a1b1e18758b640e6e453fe98a548d344340d4ffdda3f65725c5531b4922a74f844eb6326dea28fc78000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3403c5ccbb984919a2a891d053cc47b5f38914d04dcffee9b811fc933843757b68272cf701425f065000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 3000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 230514e8c633dae3571396cff6f441993df9b39a24c539109b18825dd1f36c8394d0fd4a1e54abfd68000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -22c00229513502ba7b80b9e128285601cda047b90b75b9fc3bc6186ed22141f5b0bee9ddf376eeb788000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = d00693e9419398dfa7e4e9d6998d41552387fed25e240541d0a041aa54224fc17def39358d1144aa20000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -42ed34771876f07054ea280fe97626618f0d9199c6f86469bf9b1ad3fb19939ab1399775a444958b00000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = e0000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 15c173deed253f108c0bf7e404b71af80633b86414a3c5ce61f3dbe756e3e720b5fe11c19d3a8580ad0000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -5951e97bdb1fa9389c439e473eb52b50bfedf71b08c594a28207b5f80ad28d253b815b54cedd135ac8000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = fc9554bafa1d9d981035aaa702a8a371d1a06c130984fa2f59de1479118d7cbac5d2c0067c067cc2df0000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = afb18d13e3094bedc8bb29282fc01b33dedd6e66667b5db73ef98927f5b03ad9c29736c474068ea2350000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 240c91d01cd58574a88bb1996ebbf5195e3f0fa2541d1736b2e277a2ce3c5cbe6322621ad273e9a516a0000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 24a5cc6b1df1f7a717d8a3dff7a3c9b9b996f8f30f25097c1e20665a47384fe5791961531351794d4520000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 241f724cbc27a196fbd9e06f4ee55f8d92a184d56bffe5a12bb108ea0c9fbd37a9efcf8fa7dda4af1d80000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -d0839ed7a634c5c1bdaa8b6acb2158d061b00ec2f2759a8a6a2b423b74e545cae2742963f1af521bf940000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1181416485aa95e9f68495867a95457a8c8dea9199387c42b5f7206108f5248f15e0696b542ff84558300000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2cfdae739f63fd936b0ce58629646f1e2144604bbee7ed313af556233bb94993dc9633875ea78d51f2e00000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 9ef74aab8c0bf652281e906b68c65c382e4857f70716971280b4a2cbd63ad90752f774b8cc0d6ef12400000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 6f71a3e4934cbceb49ee81747149bed94256b996cc0ee6489fc74906051194568206409cff00549376100000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -25fb8fe3efdc62597dce6bbd5ea4b2f02c9e584ba828c571d108e1e9e009420821ee4d90cbc5d2c0017800000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 21660ffd8377ee1f809ed3ced359745f656e552316301b8cd6dbc723d6612dcd00739d713275103275cc00000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -8e907201b1b81074992749d92787faabc565f39ee49fb06c9da719aee790fce0d4f695d7e2f1b3f2ca0400000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -e981aaed594eb68739d6b7b7c2e8587f74f4d5206c83135fef5f5041f1caffe62815e6537007195ab8f800000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -23ef01da093b303b48b4dee7cf2a40ce642fa4caab1941c9356852dd5002e23e9c87042279cf611f4430800000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 335d6230a1db138f8b22030c7e7cfef25115188d6b6472e82dd8d89f7aa910591a2a0de5d5cc5f5098c3800000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -4cd5bcf34ce219138456818263fa97959dddf4be46b7b4f2a89fc83dc561cb7a14a58e1285720118dda5000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -b515b4b624e845331fa2f933558307b9daa75f4e3d0144ec57c41e1c43d5ca71688705f69aa59791178f000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 350edf706d4ad29619e989f2742377f35160bbb9f0a87b0dc7f99d54bfff8072fa5f47f77bcd541d5eac4000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3aa5c48b4197dd6915b580dd9f17e387a1e8ed4d353461db81a226c8f741f990f9ac72809b9657739026a000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = a8f4937b3adb1c1376ae2706bdaa0f856b85249d321901770adc0a7ba4d7485f54419ff3eddd4680cdb08000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 527674f7462341f43dbb60310c31041c869bfa5fbe1cada3e00001d686412474b96fb4008f8a6d51a542c000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3f56e3c041e3dd859f1961181e4afe55ffabb39f93acc4a3138f2ee27e7f1e9f70e4e4c809fd4ec1f78470000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1255f9ea2c0cf8d49a351579d49e1c4fdcd5b0e5ef4a4f667454dbde6b4e33b2eadcad2044e88575c101e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = cebd385e950428979754c10d25301e87d84fe783c3bfc26da1dc9d19b752dea3c627fdca745adf6653660000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -60acd49e9cc00b26c22179c7eac922c81807a287cca898f6f0b0b95aa53b222feb6f555457e0cc9d6442e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 60000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3813086699261d758a2b6761f34041572fc267c2c085a869db1834068e73b1dc1478ab0d1b49cf158dd3040000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1342f426979c393b085a1d73887ae1ac921cd13c98bafb7f7cf2c492dbdb8b8c76481fd9cb40fe232542640000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = e92ae3cbf173edd390f605eea8c6ba9a49622014fca4a515a390cc701aa6a748137b5504e3c25e65f83c140000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -8609296213fe3b854f2df1c21d69c2ff9c721344e7dec07ac254ded6ff94b4bb7c38865818dd2dde2580d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1947756348fb288ab26bac87054034ecdd6f0b30b50aa953dd0f0459ba83e9f6517b743151488f6030861780000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2fbae78253f33738d80b3440153d35e6ca18f36e1074659a223a7a2ba0a59bc3f6619f37edc989d556b0de00000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 180000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3c307613e235b45fab7d940eb12272f5e88a64db4275bb2fdf2447bbd9799564c69fbc74a29727f88afb7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = fc0c7fd87ae1c5e468b9edebd0e838ec602da42d82fd694af65eaa2f09bbd50176d4da32d5eee3e6f3f42f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -14513e4f561b81872e379e08f915731e58c34dcbfd1031a39302d93c3b5da670dcd4c691a29cbff47e858da00000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3c09cac45f8edd52c7191a0d64ebfed9bea5ad81596b9215301d17b0a7c56ab04da74289ebaa2d7be5bf3ee00000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3041a8ae615e5098d0540655552872b00be6fae7421043102e1d6ef56fb77cacac82d90b8a36d23e822bb2c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 20456f8406b740aa2e7d04da9e46d065bab12861e8052e213c5a00afdcbaa0c6064e942c5bd0a03170b5bac00000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 24bc4fe23155ca187127648755da3b8e93b7d87f1879d4d1aeda2631299609e966ecda0468f2add54c45d8a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2287b1449914bb4e029f826715ec11dfe23c128ad43a108dcddb4bbfd4e71af400d27129da2b79e3840643c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 4d5ffd2fdb1dd2b35b79f1cf6185128aec655d8ab465673c347e1f9a3991c7ffea978d46dfecbe08b7756ec000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -20093a2a97d5065b55b5e884accc9bb800c43b78d6cb274bab097adab349a8fb1eade475674e206661f7a36000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -39dc2630ce224810852404a8dcf1455d56794690f04033bd8e28c58cbac4c982d1af5d2684505d439f387a3a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -10afbdb72d6e83aed1f8feb6138ca67a4149fdfbe243614321ae39415705589a1a3b64d072748775b7ef11c6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 16000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 652179015683a45a8108bf061cdca1c9581177d247f4a6fb5982efc0fb669795a5c2c6275fdc792eeacbbdec000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -926f732df849004fef37ad8bda6e9c53ef204ff95111782f6c580a75849c65529d3004cc766c2f4cf19c48a8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -c661f708499e6802ed3736543ff327b90b8a17d5bc8aff3e05dd68637aeb71fb94feba186d79fcfda6102d28000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -364335a19d0534cdee6a98d800582d471965f12d80c1c2a9868e5cd0e2fab7e260ac61b3ab0789b9213774a20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 371e1b4f542280ae1bad791971f0f0e0e30c427b6babb6fa80d5322c402c36ea6fb4de528a130d806453b29a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = ef43f80c69a5e05e18763c8f7d1c1dfe0a9d46d3fb08ca529b7732ee664f24d1719be76376b3c907e72d5f370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -17f9a3ced2da274ff55b74ae12c1634386a0b522c6cfc185ab44c6ca09ea4c4fe5ace8fe4c9876e94397001e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 31ad1d9d6c5d410f03479f3c8b4018cd5a927f3ca1327782c3e053b5312e3335273f747fa26fd4e7d8a3f39260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -9140129e032845da414d04a1e547d917f1a0741d58ce7a0ea9ba7d660d9dc8fafedceddf425f708a913621b0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 47c86f36dc3301ec6c5a874d3b3d7d0e44155cc03739921c919b44c8abaf74add57d095e44b0e60442b705ca00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 8c20a03383c22d67b3a92fe7e1b9a613eb1e1642c91b8aea20dc1cc7c8b9a4fe18831c34066f5e589f1107d180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2531eb94c7775222e8d66104cf1dfce1735bef9abe443d827ced467bf1248596d34255de2b97526d4344c8c3c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = e214c332a8026666ae815bdf7de65c7c2f260a2f1a66291bc9c38d89e6339f0da276cc524d845038b4f797a9c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -ef27a51ccbf428c7aa06a669cdf1c4c1f72a39c2ee907be9ee27d966144465f9995ab07dd9b01eca20de0c0ea00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3edc8efac638a20c14095039810bb5af9edaea30ea145e6224a770abe0e10f6ec6c3fa7467feb838a4c347275400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1d83fd1b4c3f5c220135878586e5ffb57f7e8be630e41b1837ae79ec0df7448509982105fe7f44ee66f787b56a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = a6a1e8cb88ef1e8541ceed32dad47bf265b25f67f2765ba7e50203fba2eddf9b56bb6c569ba8f44fc572084da800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2b096aa496e3d23f77f5fd83353fa23b87be1fefa9a3d5a3b61f6f101d791f3c6a314964f8419d0dafb731da6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2b37c703cd8f42b0c3c59e0f6ea5cdd552c19df0b3ba6e44538ce96a13319c1f78e714c8aa88912908a9c68b04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -26324033d485cc4ceb6c712a86963e045debcbcaf8f9db49082daa3dd777e3f2d7975afa8bc55bbf3d35ee6687000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -27242e87f77928491e62432c83784957380f8c98ddf83c1569c9c6751e5ec1f2fe53f889e340c078841b980dd5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -e7998ab476393b8fe51acc4012c1b2b557c19f0fddbdb6b177aaf14c1073ce5b5024c2de35301c6a73703bac1a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1fe059727826cac35f2c644c5acbc6d557883e614b712897ed24fc5e86124bdcc7f9db8d9ca0e8e7369e3b2b746000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2a35653d48a7401de2af0a23b84343faec3b6fe0350de251137084aadecc232423650804d0a5bbc73ca9ee23e68000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2e254a5c58f04c8a48eb4336929cea559019394056c9fbb4ad8e9a2d8169bbbf59b5c34708925edf886471c672c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -11dd02b8b4b02fa4780781c380a7815eec5c965c135c7fbd1974d114116768100c508c2b37b330f7e934b0d3510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -17322ad680c539c17aaf4f75fa429858d50582017a810c15f88d5d314b2bfbc662586ba2fae425da9f2fd3f7c50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = dd928374f275074b60388cf584b52314505202eead2fb851d6540540bad426f508366616eb135a7e911864ba168000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 4f3927617490d6c0d59b6665cb2b37e7b9fe39ff97e6c8481f57022ba306aa45a74a133eaf1cdecb5ab785476060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -8991a85418e1d51ee1298ca96d944a76e695f20734670cd71824cb413cf85f97eccb516ee5d32e7dded7287406d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1e8682542530b67653755ddd1793f2c01da11899a157c0d23145559aecc5c8120f416d48b9b1e284063702d39ad60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1485300f63970596284a2317e04e9cc924e2ad891a476abdab354b6c387602e3cbe19fbefc590a575629747820e20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -cddeab073ebe9dfde5ad4b2d9252de55fd9316eb814fb89ee3b2b00913eb1cc60afc44ac5cc62e02f7ed2d2dfc100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = fb00330430e3960f76524d77cdf33bfa0591642c7e094f15eeac8f15380b48464c203e8c46ed7aa6e79756fcbe980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1a14b3330f8833ddf4d2857a60168d93367ab3ebd192e6de76234dc8204dd641f14104fea7c6cec13b91be73cd0980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1c28a5a0f1d05058373b0789d98f2fab619fc34ae9b161e192176428f318809ec7e9ee68d03acc3c5a35c1d3482700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -a4fce79c04e37242536ab86989fbfc45f420e670168c91648bcc0107f4ecca39c9eaddd62370062d886ca2c3e84d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -48b2e479318d35bb6af09477f71aa44c577aa2da6d2007dfc4d794087dfb1ddd684362fc5b459befb211355b240400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -307b0f95f6cae4c4eba0cd6c6ddfe277ddc90cf050b55073bb8303cd45164bc4eed2794a020c8f6b725698c57fe6a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1be152a4159aca8d9af2fd2511e5684850dbc9c2bce73e59a095edcb77ab92b6eb2c62b02addf8bc4b580ec5b917400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = dc1dd8aadcd952eb3cb0dbdbd38d9a843c429d4836c41e70b419052f1da05132c41d934950ca644ec10c9c9f8285800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3279fb74e93723754e9ccfc59e74d5d363de01c777963cb2788c9e3308b74ee3aac80b275d347e3bde48e54abeab400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 12f99afba8bd42972528817a876666f773f03a325809c20082c49bd10d2b246aec9cb244f8a178bc1df323139eb6d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2c1ccd22e05df3ca39d2071c517d8432b8b7540eba459eabf7834a4fd68925b7b4dab8b2432326e96ab94690244a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = d94c6cb4fb0d88f6c7d749e6fd277efa5336cc554cf7375de7325662c047864597a7bb0ed6bea2ccef9bb58dfda84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -fb422c297f913db32d0a338267fee3bb11774632d91d98004bc2d466af46ee138642932a67b48df75c42b0af6455a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 12000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -69d05e3d1dffe6ac3bb4c79ff4e4789f1fefb1379cbc2d9b97008a5eab8357f44c2eaa2c678588311809846412ea000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -294a114c84ebbb4873801d67d76fb0c56a3bd4b5028983ed2653cbfc69f2b60e38d8c077344a5b29cd76339ab75eb2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 854c7c862164a36c41cdfe7feef15c8c90148dbe5ad2a8864215737a40f2504557ac07b468b41f33a2108650488510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 14b81e2e4033f78e2b4edf99bbe3fd4996b19fd939b015884f26bb1b0467e0a45c074e3cc6a79eeafd9bf05925785c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 124ec38ec3b78cdce4aa8731b609044eed441bf6ff3043418c9b03c7ce5cf8bdfde183457c8c657ed249e97c58be9b8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 130835fe70b5b458d1245728b1ee3fd26355fbabd03214e0c22ff2feb740cccd3d5e06dabcf49dfe2d745a50b8eaca0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -ec6f7ab3b16d66f8439d905ef765524b76d08a7e61bd0814f7d2d921e6f82cf5467cb5e67bd35bf03d76e68468b0be0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 8ff2a9b6bb3e02edbeb2b2cb3c31ffb2521aa5426fd308ccf5c412ad30d08ff326b9b01aef71b5e6c1a11efd4c609b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2102b3334758f61920c922d277c663405664e22da9aff33f62a348740fe437ecb898cf4eb99f03031d8f478eed0809a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -21170c1ccab1f49c0c4398c27e70b415139d99875e5b7922bc9901a9bc9933f8491c4dae54788da90c84453e26ea2d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 8e756dbe0b3c71be7060e5fe65038f3ba7162895fa0a43d56e1ed15c673cf3fe09066d7cbe9fee49273b7072b1508380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -37e0446696db8c14c955f377ab3074fdadfc60a7e0e0ddeceeb9eb566ae7f2a9bae71b0cd0c8293f4dbdaff04fa15d80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1cf467bfe6c13712d15a9a7d50073ee04f6fcbf58269b3a9f5b3aa903972917f56504002a098550ce8ead2837c5feab80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -19830fd8ac160304a4da4ee9a631af1e11eeadf3d6ac62f7847e9166f6ba3c837116821f7047f2d50ac1a7f14abb33880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3a2dbc0b3acc06a4dbf764199185462bb62d406499a9afc1602da6c394c7e1ebf1f0e7bfd60d8c8ba9a29204233235c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 33c006e0348f5cfa9de96f05b74a081b63042c393511b03d0b3a7fa681476636cb7e0e55399865477906ac342200c6a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1651570cf022eaedd5940ccbfa8e768f9e9e34c47eaa117f6d9bab2925e5e6b45dad5d5c56c6c17740f73c2c8c34401600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1064051c3943f180052b02328b50d793672dfa9d5b06f7107689c4de81ea691cf0289b96c33161ec96267ed05c48089e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 11d1c5a84ea9fdb93b0909e1990162ee2a36d70d5556fb65ea381688eae30dd82aa3910f3166774a10b30f49defbf7a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -6837413d83947a7d0a192fd4a423d5493af84d94ec47bf550ac783e6e0d863d2eef32e8a74ea518af6faadcff74b8ed800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1e2233d7423ee38570630c70f75f2eaac3aebe95e8b0a5ea6b6f413042c1735778255b7e4df20757b79c0e4336418b9e800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1c410c961b2ab35e8457b0700e4baab4085e92ad6582cc5f4474299310b7ac0359501e50c44f06b049191eb70526bdba000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 98c2903fc0357305b52adbd08128b5602e322f0d64fa996c7d250c79bd8a365f765307aae3ee1b278b1ca63a518ced6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 39b31a16f51199d09c8e7b508b84d3cdb3af37114aa8224d3de42f6aea8bd77b697d881b51d9d8d3d989e359f888540e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -282fe736dc0d2d4647636f74b280cbcb0cb024373b0db01e42cbb703873aae2a254269f0a009e89040ee0b975a781c71e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 246d37eea4013424bffb473b962445c8d11df2991b7aeab386f1ef6c74677f490b5cb9dfa192c49cdc0b8e2e7357b9518000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = ea5dd04715e5341a22085353757cd8d5d1bb30543f9489b5c0e837d2343f4f59d7988b540e8445addf5e3137d0ad19e60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -676d9509218f6be9e45d6770464447613feeb9745ced277dbf7ae736a57331af2de73f3066f1599bda70b500fdb17637c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 6bade001a22cd5a2e3791eda1291f868d0ac2f915249b2f87346593a472971a3f656692ba7db7ccfd4acd7bed294b7ff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 18af9c999851c80d8f79712e4a010b4444fd7931b61ec2387dcc22843526624fa803175f8f418ceef9621ecc2747f0fa40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -fed943e98f18ace1f5f036ffbe2d7233d1e4b3b842b8a0277afff12a68011aaea1644ad3f73b4e84cad57b9b0fb37aa3e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -b6d17c8a7a63501c257f0d3f57b05039aa8e4b8cb947f24e2a3627772ed7de7f398b62eed66cb4ec57d9c6a56db39e74e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2acc4132409102df4cd128c9f12f622bd978a4cb366fbd558363f6f65afe7c4999bebbd0ee758956a2fea42f1db0a607380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -301972c9a8d4d6269f68872b7ede48d32f924119453460d2bfe5f6d4ba317422ca550269e6435363370c2ea5c073b7cafe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 6ac00e41b206588b14b64c24fb326bfcabf1801bfe0b98aa46ede6b39ac52ac4746e70bbadb1fd6176a96a62ac98f7bc540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -a093a78363f45090d26832da116b21c5629b37b3066141100e7c3be6053fcabab91e1263b805b506d86938887b5694bc340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -ad4314dd81d9122b9915a256ad6146b419786fec3eba40273b7f8b42663ec41c9b99afb7f018dbc3161e4ae85ed60104b80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3a4665679f910bd369cc6e0d1fc1fbbaeb63775d1d282c850a3b6603c8f45f4d7a0e5a7aa07cbd2203d8adc6d032e6b82680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = d1af57f0074a7f54e54a06111359a80fb13c81fdbcdb9824304bd5e95f0f6f659338e8f3f1646fb4344f195f1614cf3a1500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 9d9cb0029cfea20a45e20f39cafbd042fb00626b9ef37f3a51d51b5f90d20638f390079dedc49dbeb92f4877d05ae9d16200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3f7f8c1af3c2bfe944eaa8a87a30defb3c376e2f09608e80302958c529444f50f419971b06b568755b92df7a341c2a0235c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2fcf1abdaee977b19b9290a64ef964032e3290a8d5afcdc337777641e5a1507771e3415568cc42abdcba9bee6a814f5d57400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1e470cbf4791b48008aa27fca23d3ff38cf4376ed222008c512b16e1d32f86f6ee93dfe85260ccb90a55c420517cb6c136c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = f5ecbba8af69bfd4078444e440d42ca0dcdc7efacdae3735b1b6281e12fda186fa78ea91f760acf778977fb2e34c836de9400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2a1e087a3b5f55538b58609eb94c9cc1ed7fad85cd072a23441792d832475c11a87a7513df1fead996fdef9b6c25b17a7f2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -33d295fa352017ac6de428bb334e914cc01ac1ab0bb03b6b4d5e3e100df9ddeba1b73acc4770b695c545631da0742deebe2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = c512e1a27bd66a7f91480fdc5c05237056e732987254151412c77b828f398fe679147c40942232ffeecafec3aab94d1f9c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = f55d0b760e45214cec64d08a4afc6ee1b111c9d2a2eb18df83f26fe9ac56765b194e1950263ea0239259061b2d6fe470a91000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 138c24a76e69273b7435ca9bd630512ac0fcb8a6f8c4c3fd1365f4100600fc2bbcc976881030fc27ad2c17ee32706265630e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -4ea6b8808108ae4c9a1b89b39b566db49319e4b540ad2d459cc0809cfafa6224e2eb7ba0997dc344b2fe6bceb064fe9f316000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 8b4fe99f74380edb445aa10090558c3058a76155e682c16c45b74839e2605f97a40947dea3b6d2aaa08363517c804840a6e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = a80eb7adf3237c54ba6ea96261dce81a5ee247ff348fc7ede7165e1401cfaac9e8c087d7be34d9709e0da844bbe9e20d3b80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 17d4ae83724c6c5399f423b436c89533e0847ed090dbaf67912701a8cc2604eeb132c64d12efb941f9d0cea6b8fee904bd298000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -22b2d5b78a8036bdfd99d3ead2f03a4f650755aef8fb60a501b9a5f8d727caaf14e82064c9631269c6af03158ef872193050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -8f471eddb6b49c99e73df4a6b9dbc6417846215f700ac3b6ed2856cc7476ba2c70b08f9092e867958b6a62885efd0ca45d6c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -e6f51bd41bf34fc11790ad62c664c0982e4a69e4110e4fdc505efef238bfc5e7529b46cb04900cf41ae08318219977537a930000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -194b35c91d18478b81904c92cdd7dd1540eca9844f3c443964d8a760c7191b750719f97fca6204f7312d2fd00e3a2163f0bce0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 179da11e3a581160555c68e11f7fe2db8774142c9e7da3fe873c5858253ab63a849139d196b61f62f60d42b66de35f83946820000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 6dfc9049e88ff41d5185c1bab18fd76cd62aeba1b4a545d3bf6e2a441d9517c641f0d3d18d178d6c7f9bce775f82ae3e8bd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 882035cf6da203c7b5781e64d70b5f2cfc06ddec556cb62b5fa7e1e07b63a8698074625bdaea5752767fab901822549bbaafc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -54e49be210ed7aa8129d30b081db6570636ac42e8e9cb481f0c07d7237bc93340f41cb05c32b094b69469be1d0e6e1dfd1b800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 9fe3e6e57c139c98b8e9dd90d4e4874620b53b9bfad29b8b8a3306e70be5503f2c2b5c99df23d15d5d43123d1a23b184737d80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 958d476232f2222f7a68f0093a67043d70f60578eeea0465ae1a26dd252ba0373eea6499123ed583fcec8c1fe619f702e80b500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = d2456c06e4c04a9d31e739f2e3ed5413cba17f65fdd1bce2b070cc95088349b6fd63e7e6b0545082623d70bea0cc97a4bfe7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1581703500f07824e4f8f7c364f96fa8b5dc82d6453fa7e6732516b2193b88e92bfc96954b8bea88f8b6c664aaff9459b34e3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -330212ed7c4a5318a3fa333744ea8eec4974f5046e49bbe5a188bf1f83b8b1182458752d657a8b8fc65caa5dc4001a622dc83400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -e7658e044ce7ffc378e38f3465f214369765c5272a1a72782521892af48b89be9e5f07a11aa6f18e38973f565123de83c8969c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = f43156d81c7b7917054e40f432e084739f666c9f5a763d2a8699775a1e9733498cf45b6dc8c2b4833873c8569966beed75179800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 6c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -b654d4669be8c827ba52a896538b00e6337c63692b825f88f860143687b8cfbfdf8cfc7ebcc2e29af7939c5a9946326f9498d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -12fcf9c041f91414c846594a5207381ba784c7b48a9e77a4c013d79b69c9808534603aa5d2c0e0d6773e762357e686c4c6577d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -8bab5fdfad182cece36305fc1d77802c499f42f40ccedf7b0e5b0b2d90f9166480093c90e1bc1fb07211883884c78bd75fbe9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = d86079e99f55f6795b13d0458a0858ca85fcdf06d4eea254df886e9fe65f8c9a175b43c2a359e9ab46e32d40bce1b71013f8df000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -311ef54a66aac5a28513e6da7c3d54a1ae9d6633862fe5324716521bdc382c7f676d318bae600f11ca07bcdfbeadb0dd1ec7be4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 19f25f317d396c65c33fb47f6ad21b937f6cf7b7662829da46df7820e00a637b25ce6e4e3851212e635248937d098177a2d0532000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -50d9adf389f58db50113428b6378b0e8fda48edeeb10c38bbebda38929fb5b3ecc6a9a719129c834a8c158dae6327fd72d33640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = ed90eb403352d0cc9040374baf5fb06ce09ba122942824d368be8aa2a8ff49a6042bec0a902fd018a7a536c526ea97f4ec2c960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2965734d214245bd7932f3ffecc4e90044a3609e5130e5748eb44d23e2df143c121a153686fac129ddf84b5350dcac85e2dca0f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -327e6e2a02a00f520f61bcaaec32768c295a920c54143a9d759e588ee2be8ba54c3f7f301bf6be3fe4ebb65621bb31a3e52563b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 6f23c91694263de0d4073fafbcab2d345906719c82f7ffcad1513d56aa08c6a66ced982f99b98edc5682db84f7bf620f8fc35000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = e10989005881611bd1aa21928cf9e737efde8a0b5ec3848c85863fbe03725415a883883307a17b4dae7550cb21638733d16d6210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2dd1bcae3bb97e35ae06487bcc759faec26a3be3318239c238df3b28ce510438bbd0a8c90f8da7d8d7176a9f0d8f4ec03989ccd60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -cceb0a7efbb07bf151e0bfe2c33806d3ab558829413ca2359d0979e05ac1cf358031a172a3d4f22f2168cfaf4e7e6f6e03709020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -e4198c176dd9148aa1cf76ac0e4a4191cbf5e4b501e47e54f380cd5db9fa18562e3eaf9ff04f2b677512a3424daa44cb201c8bc80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -57c6067d4294d4ad6bc68f3c00798c9d133638e6f66579ef80d802b9c797fdfaa1ff584b027d24d97b6cf653abf98c1f3202cb280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 11e2e13f3bcce80fe92dd8b24e5b2f17dd3d285670d9ccbb1d7ac790b1dfaa07318c3b74e41ce636a2f6bb39777b456a100175d680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -6b0d65c740ab0227e1ba732c98702e1c5cd6ecac774ca6b3546250e9f3c1652f974d7463db67782dbd21bd1026045f6964506e580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1dc8e0151daf411d192c77a87195448abd4bfaa2a1024d5ca69fb3e11f53b3d98408af5062d3d11c8271ff7fa56aa426c94568a500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = ec9df07a52e35157aea6555373af2624a810f2cc60310753220148259d7658792ffe50bf90065864c0a4244a2b86f6cefab9f3a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -4a7526ae3dda5cade40ff517f691b22230b61f8f78b174e6ad1a405eefbfd8925512b2e74554dabf1df4ffa7c1495faf9b8aed7600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -195301ad6ab2db5c721f94af0816386f3e7faa119a8dbf04f01881b66405e669eb4aa6d2cfcbefe22001206b04526ce1aa645e64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 24b2bdd6a06e918a55263cdf7fc579c5f8eb7a63fb7247d2c0c45a7a06da3d5dd64d6ebd29254319af6845c30105ace8861614e4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 73a5912ad60ac9ad9d8a527cc48581efdb725c4cc32768f58ddfc4375c65b0b4e68de95c13b9fb0154f8ede094e07fc37b41171800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 23d370286c9222bcd14cff27dc613fe951e37df44473e88b024c3f2c45e3c7cab430521419e6796bfec87b1a0ffaeabbc4afb40dc800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2729b57e76f3b7bdcab35a888fd3697f8d111ddcae2bde871e8747d8d649fccdbb4ade66622a4223225f8bfaf37508f3101dd7be5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = a43009bc110acba7c6abd100862e70624d10b7f7eb1d1b2947fa64e72737c59be425bf7ba9b2dbfba60d8a76a8162a15da4264b9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3e413ca8bd8abdfefddacf3ca06913423ff1c33419b5b34f6ced3dc6b00becd148a5fdbe07af06edbb4148f29960c2f355a0d25be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2ed4fd5b5dffe6d38e905ab03aef5c8431c82bcdea7320daf887a9ba83ca3395f434f6e82870e9a6e8b739f194f2479940e40f9c72000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -7d3f04d250207912400c8aa6cf4f0508250e70c00f626629d6de5609c0169b39050164df8e6c17192dc7e3ef8449094c89c1227c8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 944460808522b6f8b81cb51ebfe567a412ae60209efddc643c15b829f3deefe4c1b7a5223b9a2994a1ffd38fd2c904b4a4d6cd50a4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 83ce1fbd1060478b0b565d8fa29e66d3d0e35f8ed5f5f6dba1ffa7f706d544a7d9226082791d67a0bca58fd0519174acb4f560accc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 82e61ae1d8627f2ee2fbaac1263a665da181678e47557089329027d52399a91892b854e18d1b0ffd7fe6295cbd9a5462cfa5d75db0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 5ff76d333dd06c73cf8966d5d87c5732bcae8cad41972b2b5f17806f0c5efced740ee1da8c765a49aedfe9434bc86003638491ab48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -37e0a0076fc20011bb270fcc5641c2b32afcbaa5e0eadaea14feaf30317b4a72e02854c1a738188e6e3dcbf403850bb8c3e6f8b7630000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -e16000ff2e062ff557581c6b1de878e90c49c2e1c548c38ba6a6212d92c994eaa6a47f809c526e39c65fa8795330353647ea78935e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3b9be8e7c92df3cc568694d2f7dd460d73ccc0e4c86ae74cdc1fd00b31d969a5acc11a8a607bf6d2a8cadc7820b9243249c781183fa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3b730365d00e743e9a2d920a4fb14769447a88754db96ea1cf1ea8bed9a38d9045340ae49ca0c34ac886385160edb2e0b5f5a817c280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -c0d9c4ed0414925abc546956ae50da7f1b8591418198b67e5a2f9ad5e7d447fd905062654d3d0550e269d08840406c80816688bb4640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = ab9690c558b46ec921cd898ac3b263765f3f9aa91b271fb3bf788628b673f2506ce75476e1cb75a88e34857b1233ef07c4f9495a0ac0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1ad1cd788f58d624d8e0da103bb403d949625e8b4fed472d3b963edaafaeb11e617df3cd703d10501ec32118c68312aa0ae65e7b40800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1297949d540eb282c7f3173247f6f5f5b760b8bc1eceb588760ec0575cdb8f71fe1c088c0c81dc8fd04c9f5df7c343512a4b6bbc3d400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -df52543c9949e056f3983788382c612149b179cf885c30bee2f5d41326a63354f69a75e8f7e4cbdcf73d5ed7003ba3f4b430a5ac82700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 30ec298815f8e9d897a5ada0b36ce663b3f0616f7967f99f41adc2efcbf19d4d6b509a08ffd1adac237ef773af49ebb591ab734b11c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 267b5594560e0601fab746a4a47e63852401d9e7e18b50c029b4fb238d796b1b3fcae5f44fc761fd1cb5f039f0f918e968e10c329b3c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -257550bf80c1c70b1f4dc1a89db38406c46f0dd64406243d286440c84302bb227cd314c5e69be7484a40e928cfd8a48a0c1545e5c6f200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 6a490ced9378737d442258c906738ea6afbdf3ce7ff1892a36927695b33a55ea214a68c093f039e79e76d9712c0ef32f965025c6f0f800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = e96c8416d3bcfdbbb7c6c476b2d655a1837b56a458e3beb365d6c5bc93cdfbcb8876f9702629870d47fc34111334fd672a6ad543890800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2a17a681eb6f0932c21619c6449aa538413509ea46989b6ee64c298ee5d7d9123d59cd76ba4803d3088142732562b8366b657c603e9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2d35c043937c08c99ed7639001df15aa363c0962d7094bdaeadfee8e34537b87a8998592e08930af04f1b41160da896929a8c626d0a800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 9b048fbad603070034ed736c50a5fad0e886a5141f23b0bd9fabf996893c6dae327f79fc367767c0c7dbce5e8f36546392f15b41d62a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -5da6417524be6792cd46fd0501859d43e8a1bd671d3fa4b29a9cae9a8ee8f067b391c6b452cafd47082258452547281f0cf6be85c8be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 208e90d58703ab23b55b2b01e1f5c1049324661e1916d50981dcfb0bf92895b41191450d9cb635075ae51c0bfd85ab2921709d5df47f4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 20a6bc3ee50ddc723e7b20fc48f685d713ce243c8b19938f375f9c2e018b86e6bb1860f8fdfc358afe963812d602e8fbed66eef074a5c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1a58f7dde625bd918fc21ef8472db72356e9e111465b9bf88288b14044057fb8b9aa053eb0599c6274c2f54186c580e27bbc216b8fee4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -f60d4162c50b0b1c0a33a552dd518d73738f70a6353bd379d85a5f16b2c3d5bf10888585887906da7d181fa2b041e8b045ff0a5642ad8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1fbe3b860e3479cca3733a4c4161dbda335b5e98b300c76ce6518e1849e0438c2922214dcbf3820d4ebdabedb5f59242a740ee3a6f2358000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = c4d1e0a02c04321bbcf34846dc28fe8efe8ca6e21c7bbe2a8a3073d7527bcb8ac9eebb50bc5106d097c232d1efe74bf83c0af49bd4660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 18000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 5e59959398e8df61ace92301a6ec9586d2c76530a83724516ba7eef4c5bca45b15029f4d19ac6439038771e4547f9b7318489e326bac0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -74f70a85eb5162b10eaf8e77d5f02c5efc84b7d8c059ca78ad6b8348681b7cfecb49a2da56648159b0c9d297f8635cacf146af2afd3a30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 16082d32566fb15e2f9c670d23b01fe4bbd9be3ee55926da6e50bcd1276f08eef649f563949a94b7ec1729363026c812aa93f07ab211c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 31fe2973d778a9a03d0be238d07adb77012ff5ae14ec7efeb0222953e30c58040e90b065b9fda7a82954d6e3065bc48d79bcf45b5fde3e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -97fb3b3be9fa79e81a8df993c145744f3b07d21c65df8325cc255206b36ef286b3bf3d380c07a948b9b461c86c8ad82d8fd6128c4842a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -892da4175c99696192fbf5ee2a38dbdaf634474ad22e51c3a7becc2e19165fd642615b8d517311164c9d01a146a59b14f69df4f4efde600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -363a3b278df2164b2be39acc0916dce62edf49fddcd50bfd720178f14ee6ec036f29ef9ee69e4c907e5f524ac51770bc050797652910700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 26fb54165025c14b29ad1e68ef821882b7fe12783d03ba762970d075a091e519de2108a0d9f7e6d472e82a441f5732eca0b6abc883c1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = ba71d99aee749a2ca2854e9e709e41858766351cf9d03783aaa550151323610da2f091bcf366b3ff5904bb3255ac6dffe4f98cead6ff4800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -cb6943968537a36b323fbbb5cf16e13974a9a510e1a4ba28b53aaecd41ad63904b3de54c58aa6bc36ed640c9b42311b93bd2e43e1c80cb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -15fbad668e356cdbed65299297cb9a00aa3847cf34a0f206903145eea8e13bc2f21d17b8df451d3173db6094837e7f70162e2c073bb5b0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 19c26dcb74045c8383eb2f843402031777df7ad1967b6b135db778127dda9cf68b64e92aadc49a5ce2d645631979c8009450d110418ef0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -bc09adcae91952e05e87ed4c20d862c7d6eae3b0d4c796e172ffdab2e72a9e28f232a93629554e9df545646cf121ac19bfeefea8b62815c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = a4b1a564df345bc6d035baa9c3ecc3285d538a79df8382306202ce8ef0cf5eb2dfce424a097066f489017734809259935029988ddf7610c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2922278776b7f43a4e574478892cacda00541526acf1863cf2041ef24b49ba4ff0ccd77457804842d2f9aaf6f47c23de61db9b09a458116000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2d1d896d9963e77a5cb57c8670c0e5c09047a79f620fe5071825b56f1f405cc79c6364cedf1a40afbb9c332263ee97848379f58111bd145800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = faf78dbd28f462715b6eaedd26d587323e29f4fcc7e101cd80df87fb329c9e33bfbda8fb67c1a306d0d9a798a90193a6c46a00f452c6bb1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -aeea244fa89cfd16309c6fdba144c4e6c005831d24b0c5cd2c5fc425595489128238bd833a79aa9abd4fcd7b4d95aaccd6078354f734cc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2df2da3abf610152a19c56bf482494dbca4d30088a41dd8849aa42a422e3312b8249d074df493e1205093dde7ea559d64307dbbba360172000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = ee70f764499d52ae0806082618be35732bce0c76b621a631eea1f8eedcbb63c49f05acfe02868e2ca79e37d4c4bb235c8caebe27035ebe6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1ede350481c5a959b3b08a5eda4da1d16fd0c34ccc616752c49b47d12eb9b73494b573045fa9e7434f5954f89b2eb24c80116c9b81b14f10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -e570159be0df0932915fcfc3e4fb2ff4ef245fbac2b28fa3f4fa59d38b4ccd203092a82a5b02c19028a915730e7902ec98bbaf0840d67380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2c76cb01011d9cf305f8c300651ac806b3e1250826c4e7d0320a8fe20b4e70fbfb9bc95585387552f6d16c0be81756c246ed9286c779af90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3ffbf542f9a809b84d77abef4f7b5a9c053537e880e51d7d3091d530f4a165a854025a903f66e6bf0030d2501da877ec996d614351a618b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -ae2f624ec2d2b69868583373927b188ae50f2970fb4ec6edf4b29ff2d0c13549c06b6067d972efee7545b678acf43a08449b0f27d116fe270000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2cf78b9e68ff2042cde8eebb99a2e82b59015fe0dd86c79647a8b88f9a1e80e369b66fb80964ed8b9af9fb0a69ed88e06f332f7bd8c10ebd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -34a786a37fc6a8bde64f1eaf945b0099e4f9719bf9fc95d0b79cc9cb9285313ea530571e9f4ebb38446964b6f193ff9ca4387873393ace15c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 10cd04ad0b00c658cd7bff4b865e61ac6d5e4b8df9a55e140e84189187437f89cc4647cbe2e2cca368028efedeafdfd109271123c896299700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -c272422435fd24699bc0681de381e71059a882f507df8329912c30fa14f047511cef47bad9b09e6ee505d4fd034df0a914c458b423189f9b40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 8e2b70ea907cb490da9a1b252bd90c22c1310d3327fcaa488ba31aa2317310858e132db83e8f30c67ec830404633cda100452fa83a7beab900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 516f10e222ecf6434c523eec10ce9d229f3761ee0c320ccab1f244afb0b3725efa93678b196ef0a08380cbbadbcd6f1062b60f884e392b6080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2c262c929c796fdef0a4d44c2dff288174e455d54d2833f49e077556b2550d2d8ba73ff8212b27e91bf9f0d3caa7a4db058da813cb92a32c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 7b1ce16fcf11492f7f256f4b5f238a6f9d86e974e5bf58d195a722100160199d4eb888cfa717907173a5248a05184da7e8a43ecbce717ef9a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = f8818107ef4996375a8ad5ba7393e4257b64e46843591f70d275a8a2e43ec8c3aae8f8658508224a2549ae960ffddbb9537e306db044a574700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 551951e8aa1caf6cefd8199134590aa1ff0d3084779f676998daf3a3ed39b7eb954d13da7b626c77dcddffcbfb6b0b0fddd13d09ac99588ce00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2c3a5b9edbc2dcebbb177edb590d9d6effab91c623d485fa7c0c37c7c834c96e40437a4da133d143c9f1a3eedadd05a31bb2a6105b9a62980e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = e231d3b4cdb6dea59d14edd59ad2e0f311c3650ad0fd4ddf2fbd689d2d90375003241be809624b9da910fdf83f6128980b4e605bca8ef5a69800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -a74ef9ada673ea5c05f0e4b2f0ffc46d60d0989fab2e4c8cbc06af1bd5f9349aeb2096b935aa342235bf847820c305f8a82fc17cda9c40e08400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1fdc596ac22f1abcf93ab2a504ecba95ac6551abb98ba9a1b524c5fba7f9cd280e3030028ba85b1975cd0457beabe0391163dc8962472bc772000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -12b29feb62f1b4d67154855bdfead097ae3f37950b02a51020a5306bbcee040fdc23b8f487fc152e351bd5ef9677054b1dadbc874636fc357e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 6f2e0c745045f388a465a5a1b13592d2c123e7df0436c6456f0bc7dbd275400b1504de33b22a4ff4b52206361656a5e56b786b7f2ab6de00ef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -a89abff8e197495007735a9a1568cb2e695c20ac580c5a22dc03938f64e0d1e7acf6ff18850e7b5c74a992cb29bece06492dd8c852103afe97000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 32cca0221850c7ecb158c64946632f52ed7f52bc412075b5b6ddfa8dcb85e9bb1cba14a98acd4ead55b58d40f9696f151f3bc18ae56b35da6e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1bbc808f64bd3b93c81f0632f44175016f7a3a544090b6bf125551049f2c70408593f01b8ed54a4bf8453bde6a88c0794935774f587ad7627a2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -9e73909beadecc79881a9749624e7cdddc6ab102f9286db62ff117d2f46d2d17bb60e80709f116431a8c019366cf419e1a34d23ccf480077018000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 9eb040d4de8ba6f2637895f9a58bcc9b5609427e7131c9481653d2d98bcd7d57cd6550ce688f4a9b3a53915d976a8e8a4c34c8f7edc6ec9dd70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 63ef6154081b32aa9a54c6fe1288dda73d2f5d4659b8f95fd78f36fd46ce7814520c6a025c7e8e4fdce83bd4885cac77e6c5c9f1a6ab89fc2c8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2270890a4d3ad170dc0a1f1c37b4e76241daef0d9414da48cedde4234d779e2e5ca782469a91abd88a08676c42b4418705adfd1f49d53f637740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 85ec1d45235227b6813e9b60099234a943e22eee8d53be6de88ccf81ead5c4962ae8901ea91bec0633831641dd3f8dc6e8a98e40c8ff6e9bed0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 8d8ecef6e4a2bd54b92e0f1b75ebeab968388bd1439951ee041619e95df270d412bedd79f62f60379dfa630d8c4bc6c224cb28ab2b124ce72040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 353135c72e72678d03beef64446c9b241edf7ce26523b03b3914461694822d3569d8b998607c31b666fdb3a91aa154474727432762653c6103120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = bdcfc9910518ccd75985e212dade91844a80df4dc556d00ce25fe47316f215daa2e227a039047f0dfbc06dba0df4608c33fd962758e19c472ca0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -96d436cee6dc8bf6e2763131a4ab60da5720e94988fd76e106cc2ba5d92906cb6501fe05af3288b7726f8be3c531f8400cd8c8f66681147c98a80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = ecaf35c0babbc192368acd7f10e065b5c71db207d8372fa59fb0267b11782c7555e67b8ab79ca4f4ac54221a123a3ec235f108c9e08b9e3614340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -ab5b5cff843f4dcecbded74cc4f8c25208df0db32fcdfa3c44174bb8475576e31f65dd19b765f1bb1e6c5242f02ac1470331a8bcb52f1339c4400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2a24b9da3ab06853eecfd6449e96100d41859542a870efd081ab7bb5f48ce6b94c4478f8b66ebf53c13ce34a8df6665eb1687f95d7fc74c90ab000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -e5afcbb2249cb03ea1ef4e40b8017223f765c03b849cd9f7b0784a849ba55af75ff9bd0640b655db156402041039a84f9ffaf22d3c42fbec7a7e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 5f4ba47ab54e8b231c153d22810c12d61d959ad3078cc59a4639444c48619ee5cb62d3268ef2cc34be1b350f8cb31b8bd0631d49c7538f367d4800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -29e1a91a71611dcbf2623bfe7ca7771c31cb777e5f8dc672536ebc3033d7983a3f489975037fb95a6f6bd723630bfc054a0e13899c02b7a6526e200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -24eff5d780b51a1b4590628ddf97122092b0e5ceeb4c50fe64d9ed0380211f88d49a1db2f840cda2dc645ad06a43e51334533bf18387649a04ca600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -fb3bfae230ba49750552d047c0f9b255ea611f968e81a9a74a62593a4e7318b386fe22719e7a2fa13ee45a8d1be8e65d277814b8e877176d79bf000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 59e9b17b209b41ca1a436009587eacf69ea8b489b9a66b770512ba745a25cc75f14fd37546a0c38868a9a81e0f4e0d326573794a573769a1369d800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 900a7318487dbdb6b334efe8d79029fe03aff62a14ff18959727bd04127049a01a2f96fef02ddd9435ad0eb550a1d3dfcd8dbd9cecbe9c3a2620800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 34fb3d29cf790d6ff696b70b2de1c5d6d155503ceab6947f7fa83c68dba89c6b3b4f1688cbda4ce44ccf1fa3f5cf72515ac86ec8f6f119fd30372800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 3800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -fd338eaf9ed9e031df47f1685d164f8ddb19ff004db5e4ad3e07be735cd38f46e499ce5f9066cf50004bf036142d392e0955f62dc77794678e279000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -e0af0809c14d94c337467149b20986e9fd8a98134ddda7c994ea5a474186af371437d0e67ee80e3e3e78e3db418f5c8049929f8b1357b11b189bc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 223824d224548789252d3cec152caa7e571637ad3fd8e005e93d1588503c350adccb3e8dd215bb85238129204fe413c48fb6c7704a19b8e7fbe2c2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -32571ac36f5eb76205a260aa40d1b240189dafc8721fbd9624cad7e6201536bc608c40be1d0d14aff548017808d2adafbf747c410a407945d33cd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 8731514480331e60eff29b617473e8952b4c89d050110463405721455d99354810766ec54b59f7e7b3b2255caddd121909801fd92789afeb1335ac000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -5bdee4945da52a0d9c634dc0af9f4429d8b1428c84d2196cc0a64dde3350686525a0254b0830d53b7f9192a07ce5842c3194b6b93e74a54ac0a840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -7082128e57fabcec7f005cccb225ed3ae3cf7027cf41f2f96b6721856180a49dcf8972c20e996971e677671a7ee279c16779f5ca4935820513f670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -b4021152537e9a53d96a0c9a714532821e7aebf6a7be45b0fb9ca0b76aa227c5bfc6595b7937a9d71012b86b697f5d672861f4593bb3855bba9528000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 331e9f6e41932ee23a2bb7879acacc0eab97135ae92bd6e138dd494ef3faa652cfd55ffff62cff1c1bba6a5c937d93072de2914ed3e8c3991bfed70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 390af362652bc43f8950febf12fe5195e024b657a2ce1be58e1170f75ee0b8482dd27652eafc27a947f0d9e2bd89292ed8a3f068b356784fd6c3720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1f83a1797554f26c691fdf5342bfebae08143b990be1bdf8d06eac9746cef9e56aadb17582a01a3621954900789c1426892ac96af75a250b67dba980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2eb2cceb5c264929ba59c9a5260013dee53fbcd17d5e13b0443d055ef47a1eb2eed4df5b2e0fead20cebd187435f70c759f6eb177b9f87d86310d400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -da1c8854613f6e8f475f6675d71ab726f4693d5d4e3addfaa4399226409c88cfafc71b312d70ce86a4c8c8da7d230ad5c345e359b10f9996a3d7e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2f99abd9ffe6f66f50badd207c8eced0852103fa4cfaf89da220f87dd3711d876bbd642a8679154bb8574ec31ea31d7162335bd729c8f2ffac5357c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2dfa9862f144202e2c362171102a6ef69795fc63b02814bd0e7c523a6ea5fabad318e9fab411a8ca95bd1ccda6089cbe4a425cfd95a027a5bac4cbb80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -217d292faf2a779fd290d5dde5bbbc90aa0a6a77bd6751d923b05515db8658c390ea9ef20f98d9a7456f579fe43fb66bb8bf3158227833de9816b2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -247cdec3cadbf66a170908d0bae2abf207be70dbe14c26be270fb094d89bf566b4a27eec596316ac97afb580aa30e79277fac190c4826d96510f6e600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -850febbed2d7874609a42abf0072b94d10bc4cbed313321c35706789e7a74864f0dee6966ca1b9373883cdf41071614e25a13099c2e00954303aef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = bda57e6e09de23272d33322e5048d2ff42bcc5e976af53be03c2830fc5d833c74eba8d866248ec7d504313f14de909bed17cc5df8c3d275e0c85eec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2498e6383a8b5ee0036d8f5d5c76f9aa75763907924b90649557b2b2075a58b29c2518ea9407c67ec41158dd7d2ece00ef9d96f36b67805244ce97ea00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -6f5cb41649c1229346d60a89cabcca3c4ddbe82e0ee0428c9cbd343298d8287426fa90354d4da84e6cd737e252bee4dfd69a8731588df2755add77e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -f6e7d4f18c22b78a0a83d8369988caddc815ec9e7166fcebf2a0daf998f5ec0d5848c693996a2d4964f32e7d45d22eb4db71366c8c4890755220a4d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2febb3efb022b1d7911bb67e1837c1bb7fb6e2a834f48e74be377b7b06b9a6766e384c8db9a0433e3abe8a545e02119f8dd31d41d694d37c1f7263c8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -ff9ab7f3e2fc852de1e38988899761914af5992c76a555d1a9f64ee63bc13f6b071197830c794548d3a53d9973babd7a664142515fb13939e3060b0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -838c2dffa394d85bc7d18f4873e533d3fbf67bc172200de210ddebf1e35ff1bf6ab0e2de5a211615e0036bfaf67778ff9dbbc06ca305496a0433d10e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = e1698ff1d48529480e5b0419688d4db827fecdf5bae444205121fd0d0df4233181bc0afb4416e53cf76c10a7ab93b1b9f21ce0a9ab0344ef2712fd1f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3b89f3025a43d0e3f21221f2f5c4905d55f14739c01e8adf34270f56a578ad356189c1b38dfed105eacb14c618bba2e3cc7071967d774b42bc097c742000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 19c324a99f067219f3143e75c538cf3b9d1bcff9af69c8f44d2bc14ef026daadc84ac27cd42b1a491cb0716621844a551dca1b4dc8e80aca5bb0f561e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 7fae693cef00499fce3a2dcc5fe727f2a0d22cd25579fcdfb006fd7ad9b60d6ba1f050c59b5ec061827f09d17a8e674a65e79790e939fbf7da27ab5bc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 388e0df3710760d3fcdad1ab1d31926f0230fa4fe17f8a0e63b68828b3519197a9c546cd8165740d3b85e74c673c2e1cb80b657dec8056ec0f8096a60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = e26ff64667dcc8c960890610a8d8df7be42c2d6f8b2e4e00a4fe260786df4bcd24141893341e43a319862b2bed8c71fa170927c4adaac6df4556db18000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1c0d3ca8395a05f1eed8e218bbb1bd8f18e274e7abc609d6f21c72bc938392fe7d7a6079b48cfea405553be8af9838793e3397a78ca34dc61571689078000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = f8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -513a22eaf115ecf79666a081e16f2dcf8f0eb9275e64d08d0b7f04cc62e98e143a9e4b7713ea56b1949fb42f24cd375221c044fa778251c2b678b322d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -43f9f88bced1ae081a7c9a041c171aa7232a188c0172d6d3ece4f8914d154046d85708e2485d43d4b5c7f52a0928b4827fb8d0b33531a5f0c6a48a9bd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -923356c409d17a6d511e7e818f067a177e47c0a7f26ac9a76f0cae85c429b01fac2081157c109227d46d11cafe00495c5509b8b081aeca20c606d75900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -37aa0b9f5a20583c5d2c6518ea54d6faf0d63a87a933f52fadf559234acd426c045144bfe22eb8414296637255efad18f20c98d0d68bc9ba27769d14360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = a02b58571edc9bfb7453a0e38b6d7918b126111a00d5ab1cbe3da59b909439a0ecc61a25588d29d36bb6980f7975e928ad26b1175b48348b0c460bd8340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = d0cf8c65d816be77cb215363ce328c1088888960c5460d1278a747357d7a44df8cda8bad480b5ea3daf5655014eb253116be7b8e9dcc12fd40edfc37800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -23749983a144d147bc35becb5720a490fa0e8e3808459b3e48155be953e8682166ca720a2984cd86b6d4718646cbfcc33ebe2e980eff05ec316d0b2df580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1b54064c43406206860d48998ca1588d6c16a6424652bf14cfb8d13669e713310dd52a70f0d6e0617d78297f278e485c3972f2bfae5bcf706555c9974980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -32b14914cb086d8e626a4a1eac3a5b1470b02569e1e6a0db352605216f12a79f245d0e48c56d447965e693ff22ec727bde075af266896c325825a5159700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -b3b3c629be94938448a64c1b12c86da103e32baeb54a6ccd48a270bd665cb4d2427f0499cae204e1f49820aa60ea5c128f50ad6e97690b75a6075f617000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = acdc472ad8e9fc8cddf53d62a4571a9b6fc2f673a11f3e6e35a1a699562c9c1aaabdf6b16263340ef352a65939cf7d2f9c439ede432701008d99f76b4e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1759a2cab2212f21ef69b13bda6c3b3b320a29c9a62d0334ea8afd6d03d3f689d96a59380692a44a3ee12f17cd1a88ad1827224a184d23d2006df0d8b2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = a3121ddf0f3a7980f44064c692e446d8e08b2c654247bd08ea5af98cfa0cbaf82529f628b75bec4785fab8198242736c6ffa5014623b0919b95c53a22c400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 783ab2b9d58c4c0d4e62267bd1a85727eee47acf43d0b2e66cf87411ce1e0859ff274d86566d731bf4bd424cf1933917e273466a3104dd1f69602d1d15400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = b1b92c5352d499ab0ada9a2ba2bc6a667d598cf0cca8ed7b6abd5dbf8048cca2784f0ee72d5e729c5d4ff20fc5b2e11f4f30ba8d4fe902a5235415ba25800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -f9a17755d773008e0ecedef2df7666f474454c54b088e7183926cde64589580fa74922f99c8b18708aa19fa5dd75d305d7efcab46f37751d5ce514b942000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2c1d4bfd7d6a6632a3be43350ad103743f3ada663c758628e44c92c70e3579f4213e47b443c1431885813874e743ead363d1e4785342849109ea24c15c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 48886413df621440c0241e1aff57d898af8b2dab0c0de494d46296af92245545edd820c8905173b2c0b944f576b95d45e26bbe297942d0793ac01c5c223000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2b1d620368293edcf80eedf8b7a0e8a775b40a3816a583d69ed235bd061d5ed228f2a2de50ee4c5703e537de7c2a10c9cc04c1fea7149d9510649fac961a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1cc7c1b3102eb0bf43e2c1c5b68d4d62fc88a311c409dcfa472553858002363653a8352540dc74232614a617b8026b9dfe510fa6b8f5a26c8cae4af86376000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -f59b95ea8789e47bd3841c17a237a02fa1de1c01e698ea1fd52289aa5349fa43f0d09268fbc23fe6e0ac320b18282c6151636dcdb29c84e4925e2013505c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -d3410348e3dea396514089406805da3d33506e2ae685c99754e122009c0da127dee944516c04af8f0f5a89dff36162a6ecefb86956216cfa6e772f65ef94000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 92a7ce1f54f94a00aab996ccf53137e531f199c79e1fb114af6cf715463ee90272e01bf18b076374246db41a51e9648465d4a77800e4026671bd0a5de228000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 163548b1a1ca23c4c2e1f12afcc56636b96be88b452a392690ea716761b1ddd4f55708eff6c04a635e32dc7c1242620e6de1c3687c5c5597fa570ae44d598000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -8c276618197109d128694c11a3c785058d7c88a95809997aeb553c3c1b0755cb395935b9f0e51111a786c2125c6b8a29aa34c050ebe2a6f218bcea899d190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -f993daea0136f9fc35de26a675c7bab421e5b833d701ea93a900e7e952920a3f3516589b4f73a56514f69dd0b27fbb37dee7d7390736955e7d808a7b8d3d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2af073c61f0ee9eb6183ad21edc610d4a6c27a8b81da22cdfed1f61aa6ac1870f644b9b806f2a1866c43d22e23a20802e5ad7fc3fddc544162c5c913ed6180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2f90776995a9729bfc9b68c615657a8ffc7a31ac8ab6242712ad5d7073358a59ba8d9511951b26747253a1b8ebacc4c15bbb9df59bce7f6cfae61ad321abc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -16f26314ec7d96796fdf07980c6a664e13c3b81d8a84393363f6c67b0f6e22a4132107c41678296f89039f168b7152e3cfcfe0d5513092372a3f331f60bf40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -d8a5627cb32d8f63ae9c9eb3f147f9bf4306efcea2f10eaf63b7c2d9fa7fcbe09b847857d4f60e7a91b081cc60fca531148907ad980f486fdcf28385acee40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -36f0ac29cafa342cd9f00c3b83057f0df4f1da417c60eb7fb7d1c40393e2d99ab8b43a97b5081015139317b04159ceab7ea6e55a20d4a5c28f60f98fff98d80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -21c2b20eafe04c06d7b23591154857a17cff6282b9078d03104513498dc77d632c23d7a99934e8cb5ea05937cd2376ba105efe0018ed780775a72305ffe3980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = e3970e72b0674529411b7458ceee10fe9d549f19b20e164fecee566ca836c847399cc7866c81ebe9fe8e73e71715e9c8844e7f0f4959ac395878dd64178bf00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2b1ec2e4c93b8e68a4c5a0183e2975e7b56478b98d6edd8020691bc0fec3fe47e34300ebb83862a51beb444be8103c1fc3504eb14423205a2ba6eeaaae9dd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -30f7f6f577f5e4310c5dab7e2c90e040eaf0d8bf34137a4a04bad7b4cc1db45fb1482c3ebda69b41c107998db633412cdb595f69d0cd6783c2dc029ae8e21800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 26ab4478fb0f20ed7bfe05589140254a34e7b1b0af2812e393d8fc0838642f42bba70b847d4558465388d268b89a27ada2273e63c1982fc14c0e24891fcb4a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -e230d1317d3447a0854fd4b2149f307b747a84c6023658e04a2b9596a8b210e578e876abf84673731ccb679901136d5bdd72ede2da6ddb1d9957f205cd85a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = cf1308a9170df766ba6499e378e156af0c48fd538e3d0588f1036e6e0c2743c12efa020972cde23420a6e67695c971cb5914bcfaa46c7f8f50830a28b2c01c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -f4bf3edd5259df7e4c226302ca06aaf38631d07c6c4bea94b95f0449e6e869a62631c8ea4af398b5ffd03bfc9906d1d744b82eb0edb09df99fdc04fb5087000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -32ae9c6dc645a78c2721713cf4f10d811c965e390305e04f003d05f0ba858e3ded6a9000b0f30b3cd30bcffef520aed751845591ca734ec534ee36ca863d2b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -5e196e54ac7cbf4631a29e29ceee01d2b5ca391c2db5e8adce22e3309346f378ebe5de45935d728544498e7b19c06f0ece20aeffee3a309fc97506fc83e2b3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -b0f4fb017ca8286f4df6114bdb668553123b42f4df2bccec96a3898c054dc5cf772add17e59dea632291e7fcd993b0a1d22a7b8f5bbf83dbb5fdb587a9cbcf000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1fc7c7a7f7dfd1320da030dd37fa14b85bb12490d799e7ec7976dda6cf128c7427843dff3a362ca01eb6debfcc8483f99447e34686aebb581b70c274f7533fe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 69708076c441b6caf5495f2380bcbafb78cedd8fc8db9d2f6787d1480832a6b60f1ac99befe92609052116a767024f881781646e209cb33135bbb40f1534f8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -6760d448fb451b8ed42544eba4cc95bd6825c290631463bc9dca6a2aa14e6ad3c220f669122d795839e1c8bb4e992224acdb59d628bb02a5aa0cbe3fc089150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 5d6dd4fb5bcc605d1f9acaf14642cade815b8242bef367e3ea78898f3ea1a36e34c79169cc827578b5f15d4ee71380c59709b1becc19adb2d3fdf6b0a365eb4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -38254c89b4d163a247ce6896d681f9de0466ac6fb1ff64f63572bb72abef752710899e1f11beb8f1afea33bb6dd2a06bd6741cacb6f7e8ea4f2c921faffa9478000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1678fc0cd096fdf111b32d187012e03b2231751fd463074574ec2f11fac435fff827e51bc6334f5a678f59aa5f5424937ca43139d2b2f71212f9e08d72a2f2e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 58000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -7ffc62087e70288057435e7d2882b6d326327c5eeb54ba862acd05b5bb96a637a0f9a6ba1d1d888cc047935c93ab119aba1ca11d7a54d8157aa9345dd89b6e80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 44b594ee4cc298a222ddf63ea7152ea82afe72b48e84a6c1292fe32e83ed99ed79af1464671a5649463378132b024954f812a10436064107a78515adb4a2d730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 118492cd8d0ed2e25eb9b56aa2e6b82e5dadc4da71bac1f55da5eaf021252f5e77e44e97914136d81e344f522b16fb42f6399b1ab2cc8de520e6fe1e6e96df8e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 22738b08fd31410b159d92faf7edc0eb3d155abac0acd00b22f2e57ee3656f9fc27368369f1c039f6391a2194b6e6f6f2d646c8a5762e3df9076eb1bd5971f580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -4382aef6024157d2e49b0c619ea6ce5f137b7266d4e6f77053fc60eb772a00356a335fdedf915b3917bced925ec15fd0cc49b88dd4d929edca11616d62505a380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -20198569e7654650331a55a9afcbb0a55cd3eb6d16c0f974fe51a84822f8f26a7bc764e535353e837ad2941161884621879e25ec00d4b3e2cabfdead89a1f4c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -23f54499fa6e7541d6ea8b8b5d7b67fea02515c032a242c1ed9d58d0f246d5f8d5f6d8597f8c25d8b79421f6f059bbcef464539bc9fe86e245312b6838127e5580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1348577802b4a1117228cca3d3be0aa1c1982dae31d98c7e7b81bc58f210a02312c8c9a08a755ecd137c03ea70c6f340f9f7f5914577f5cd73fb06e7160712b100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -99ce8f3b4939a883eb043bb0dab55fed83d521a4f25ca5455873e88449bb1302ad94437649d30192dae11c1a5ead98673a52adfa05a979592bdb79a05c9b5db300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 9b099ab2b2514ba7da6b4366807b3365dbe47b5f6c9568527c4a2579e63c1942df4436628cd49ed7a03b77254ad56af2239cf4db6610255cf3852040469061be00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3e9bf1154d31add35e65c42a7b51676a202e00b735d142f0cd0ed1329edbaf44954ed27324f9e4e8c28ef9a43562ad7d1acad156f443513d0559d7db5f89789ea00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -665047a9ece503625deecdd474c25db4a40e0359704863b17530f46e3ff6772e5923621f5531d7119672587dda42ff1024dd62a51ed7a44add62f6ef545d5caa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1ce3c8990c306c835de054c4653fb5ee2b6505ed960509bf0e32abda3158d567a2312a931f15e35cf66d6dc4262c1d2eb6b5ad524fb88bc1bd87643faba267bf800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 160fbc927dbf087ce08170188382dd0e51dc55e0e88b67f18c147bd936bfde3ada7f42ef560fb4c2a38cf204c35513cabe7489cf679ffbac0e2e6bc75056d01e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 11e0768d4cd9ff290f656309a1aafabe42beedaea17b21dbeebc4f94158af9d70c4550aa353ec2a989af469022df73a4bb69becf48f2f710e2ebb11142a61ad97800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 28181c50ccf79180629227b3e026d738ee286089453a17dcad8eab0ab1aecfa7a26603ab46cf111bb120fc50ea43b5d9e22815054a22bb70377e3b1e02f3fa88a800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -7e956b5052c0ae2ecacaf56fe1be15e054ec5aad0b9c1d8c3fdd84af3dceb3197338d72b76fcc9ecc5c5f4404ea1ec263828719b29407d4faca3886fffa92a19b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -778ea399fac2aa749e65160be226eefbfc02eb4b674ed4d295cad58ea94975514aa02500c20482eb98a8a63447805698c49b78927a48136bd54380e2c8c5dd514000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 28e8e5c63b5afa443aedebb74b2f137bc1c7500f3dadbb25be89845f0917af92e42cfc210c817bdb100b986ab71711aa3dfaae61c377ca1aaa3c2d2f5f571ad24c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1f904e03dfced1d3fa565ca17d03015ff80f4cb1219927cde8b1c46c06243ee8672ace58d58ae75d50529b47ee870a5a6460b7e2df4b5c6665d3e71aa9776c160e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 288745565edfc017dea20cf7ea538e80454d3edbb2869405b623176bd587d62b5e42c1e41e5447c957801c99190d2ce898b7bc5b31fec8aa3d1faeaa3341b13548000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 7cebe71bc4ac92a1f6a4929e8f85d4ba9a2e399e2a92116c44cc006b932cd93e201ced71754290754d3989ddadb5f65d4d4e914c02d6252136b02113fbb43ac368000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = cf152a7c7b566d97f65bcf4526ccf0b8432baa768be2ce9fc58407c1b157fe18344b769fb0e4730e5d97ed1090a521bf082746d9daeff26af271528e0217e5fc28000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -12c0c20a527bd2ca2ca4f15dd07f248d3d58829572e09ffdcd17974cdef864264b4532f9499b20dcb50b3090bfad60e69f07ae45f1e8934989bebcb9d2f0e46fda0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -c0c2a12f1ea3e4f4c5b28f2ddcb438adf9663b36ee2c39e5a93d985910a3ff41a87490dcbf36ea8e7495992dfa92aa60c6b906409e73a71a682270e31bdb0e8fb80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -80bcc1fc4b6d26187523e3dc5a01cfb777070cafea95ac54e24b214ef47110ec0d6e321a0841f1af178fd35dbdcd91311b77e994a702842e06de5b87c273187e700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2252a0874e6fa6dc2407b75c54701be3d9baa4e8d1ba3f6913b522a965639fabaacb9a774e4d3ffeeb3751d27aaf24ce96ded8e747fb0bd4a10abbf0c7d19566fe20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 18815efa4f4b4e5809be802135b944f64b894e560da9fd69e05f1f60c37b3078fe39555300153d395b79320a253d017f7d8df4daf3c06566e8222dd6f911db88c0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -affb6582a587b5e23c2f84d713f72c42da09d50d698883ec470d8549fcc6d512b04d334aab7b4051f4e73459fba5dffbb16951a0bf554282f5e9cd32623ba538c140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 25f8e60615cdf5a2a2234ebc0914aa747039e7484b2010d850c8fbab93af72673bebc3e52b753dab4e4ddeca736d3fab7187b45b1e45a7521fecfa705941dd8595c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1b7af3032f5ff43b2ec05f7f55e27c5c7299efcada3aec926fc45c2303ec1e2ce40df3fd18b14096283e9b6213b39939a61519b97a41d394ce81b892bef0a58396e80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1aaa12303f8e3982eadf6767607e48a7cd625c4c25527f7d09d5759011b7db7988d5f5efbb3f85a5c80d307e792b44deb93255866164a663e1e7609b62879d9e8af00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = f0d0dfb567eb0ac97aaaaf9eb082c7925f5dc64fd5d818a8b50a56786208155e6f0b713aa9545f32edd4a9c7a5bab91656dd66dae4f6ba8a1cb72b96ccaf17b493700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 36b636c0e29b914237427a6560e1bdb6a3e71b9e6a98fd917e29a901e03abcdbd554e3978d906844926a97700de822a60847beaa51c9ec4850c21d6c7047265c83000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 9108ed7905975da1e290bdd613a17ff009c083a2bc0e95fab7c38ea5b1f0b055a677f73bc163b302c66543ccc1794ea7f37485956b563dec294d7235a7b05d8a85a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1feb728ed9ecfc0a44828777c08aec0cc964851597e9014abeca8983c780d3f4fba94750889d47853373342f4bb0b52c8874635de671ae7c96139e6a0f616349239000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2b3351edd9a73a4bf4f3fc29a7ce664aabb7dc4151c828a12e4d46d4ca4910ced0411ac5e3b4202f8298f71cdd4b8d8187c1e0c21c86ef8e8c9ae5da58410b5fe9ac00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -fc5a8419016d2a7be170a574cf83e3ef338c46d21b0e20b824c1404c002f77b5592fb9838d8b8df17d022901593c3cda0265b19656f1bd4a7eb744b31d8c013d662800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -e30c0590ac6a9fa20d8a313f2ee1196cd758f9241285f2edd88af1e885a2bd50ddfbf49414f445838b44997bdaa00ea7e0b99d580eee7a5b48a397e68e9e156ed96000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2679ad0c3078e4518b83359b300e7831538aba6e396e6cffde171cd83d5cd4d2e07f7caa650bb0e946078b108fd162d7bf99481a8d470e7259efeca79855f7554168800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = e7d769a1d9ab7667bf28fb2882d1e026319f4b8e06520308d8580419569edea344166c01d31c49573e7ad7d571080f22a740ac074102ae709f85ef86f285dac0bc11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = a3c59ebb4943e99803b851d73ab9eae5d83ae8570b97ca72c7770e6b4ccc6ab265aff5459e05a71766d8886bd286a33eba3ae4a164af0543fa441b327276dc035ad6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = c1b3bd1a0fbb17f47d0888df16843c3e6d30e0fcd6379788e37259fd1df5a639634a74488f0936f2609a2715b5a70a094ea0a4207b5326dd741cc5baf986a39b127a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 21a8ac6eb4b76550d3e31d28a3802b03cce1e066b43d0c76b03abb7d2158099c7f1f3ae97cdbc9461f0083e493ecf768ea4da463e59b32749cdec861abdba31eeb0be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -6a5d7f9dee5e115e59360f845e48df06fe67b5766b1a9fd5d6f023b183f14f1c809e929db086b13f38e1bcbf8d60550dfcc43d3a572efd6575630c6690a494a11374c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -cf927ad55b20d854b6f399abd7d437db93cae5ec89d567221c0bfdfab583b92f816d2e34da3dae1a71ab9851bf384d0a889cfe1685abc352184d87cea6636cd6b79e4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = b22b667b98670e9f21b7b2848d6bc484eb5af058cffd99f9a22065a4ccf25f040d1b03e8328b28a409557ab2dd7192d30d25067f3b6462e600847630c7242758397f8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -32e4abc7ebbcdd4958d18b3e031f28c3d5dc5c98baa9c87ed3817bb19cd08af256a181f0769ccbf796ae1a20b717d2c405d6f340ebd53912f855d8c59b2f8e22af1128000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = dbf0dce0895d45f91d6dd1d4d2d6512b3e0d64d609f4eb3a4d155ebb07790fc707e3b859f3904493420d9944a3a0ae4c75970e7577be5a109f867e40046bb9cd901360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -c625309d00a1925c755a94493e8771b933224b68ce19d0273330ca1e972f828303cd365afd690ff2bb86fd6322d704fdb487682dd6eaa9fe1ec2f46cf6d837df3486a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 295075f1e58871ab36ffb030aef26f8d56efb0a64b28f9b6afcdc5a83c5cb487b4c25989b1b6edf9169b86fc4407a4212444f6fe5f828039e6963429d28774a24e2ff40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -4afce5aa413a164fa216875f7f9807855c0067674b4889cace35ef764099b0c23861fdc8647a80d8a0b5b8e39b57c57681bd47bd43e79cd7bd5cf8cf28d9d50989200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -4a19ffaacf689dee2ef81ab11ac8816a1f16aa937b9a9529364c67b1d75af4d7106ce95ecdd8a17b5bf59cc429c2449e3c1afffa3e9fda48e83a7aba0a8aa660de236c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -41b8058270aadf4bff9980100b3bbcb38b11e0f73f1f53565ab8cce4801df130b5725809319eef07bdcbe87c143a272162602c67b8a9b7e0907af7dd4c176ceab334a80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 180e9dea79aa76d6ec0be979186553279882be2805885f759580749322253bef770db6bc6e52903f328a306c50d7832d6e7ecf0e46c19000843346c4cd41f9eeab6f2b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3e12347f609a12cb34a269f346af04b8c7850e58ea56607ada103b11972d9aa38893a0226b4abfdad12b7c474496faf5ae3e2211995d3342f17ca59732a8c788f7cd3e80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 9b39e01de2adc1dbc620f828eec98e2c52c0ad9408cebd9246b9492cbc44184d0287ec448ae9e154622f6b71d0b1d644617dc5ce45813752a4647a8848f73769eeb27300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -9acacd3f2e77657cb12fa0f37d1d1ef46218fdd66b655c57e34afaf48870d6123ac4a0a62723a9b37c7e3fe57df5e6d5eae1adaad9a481ac9e38a868ab8fa8f749209200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -14809f99f79043e7e8faf145aefb298080874305bfb32dadb14d96e8dff98fd3aaf81fa7673f35608025452bfe8dca32707b7bcd16cfeb3bb83bf55f1f7759d0ce9cde400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1fa8d1c9aae763fbab93c3bfee133ef11f03cbabd46b1a450221a9970ee80de126846c379320b678bdb5ab94af0c805b034f5d5376eb8c3d7dd4f5afb8bfe340cd29c1200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -c1d7f3758fdb9f444c86c14dbf589ea125fcee0e2310fe91269385e5e47d2cb920b78f67d47d795ec274e2f487a798a5619f531e6d878dd9c0b9de3621a6f4559cd1dfc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -f2ef96b67a682360dafef4683a0c36f3772a63c8dab54fd95223c1ee443a993d6d8aea637a9215eb86b1ddf34c10a9b4d4d0fa17b7f636aa25314d56118d16515cac8c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -17d3054dbd1235b6b7467ab5ec0b925589524a94c551c9a1c67af55ba5be88179a00cb9df5fb7a0687e322554580890c867f6005a3bc008b82cc5ad6b00156c36188847800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2b767c295fdc9fbaed6cfd45329ffd791b51b40bf20d0e50db7fc214f8eebdc6cea91ccb28cf134f4947afb4c6cd039fccd61c877d5d262ebcf8413752c8a9072343ec0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -55e977cebabe0f9a6681cfd3a8d01b864ae8644d5e54b93288cf5dc6c711c6ffa0535e39810c39ce2bcb396363a3c78a9e24ac24e206c992d9244914466e76df4f1bfa4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -5639237afcffbfbcfa6efd84e0dfe959ec120964bd350efab916df6779ff2932c94ce4195b71445eb6062abca4d12b3145edbcfee3198ef92833a7b47925cf36dbd16b1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1448c178094d085b2e88c6d594f9a3e4f283a34d63bb0c255aff97ddafd270413db01d10b6a332f0ba09fef6f2ea589df7afdb31e0c02fd75c741bbc2eb746e46878b8a2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -136e2759b393dd81ceb6d569e50833b4da1ae16eb952604c1a713755d9a76b3946e29ec37394f8ec93d3c9b398cfd277a98f278b63e0fb53e4869272c0aec00fd516fe4c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -6dea4d9a634f1879a164f7c93e3d0b878b8ef6ff49afcd4f90f9b498e2fe3808612a6d98c1df3e0051ea32cd13f680bf03aa539d016d2921d43209e396d305fa8471d18000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -783dbb7e5e734e9e529a941de127cb954ae9d88f97f33a2dd2df7a9914305c6906687578aa1510c0be4e5929949a3d245dbb11e7b5323871edcfd1fdd2d4add3944b2b84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3489112b6caf64a12f1a007d61c4e5feb9e6eea1a85a3dc2c8879c858e244a81ef78ab4492cb1feb75277a48920ecfd85a1e96ff63665801cbe5b4abc714277247d7822f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2d6b81a56bc3dc0ffce2901670d6e1d8e3021ca2a2689bba640ade37aac38a52b1004e98df749a416d699725f16ab9e30f9c99180472b8c98d978d7b4af629bb1c8e53c38000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3295472d95325e6bc0efb21cccbb1a546ba95fe6a6d80269b8fa7da9034c8c5018010c412b3811b22f4c206db41d8f7bdcc8b9f6cd6b445d5da432f1264748c1f79be6ec0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = d6d06a2885cebd9b1346a8b89feb4dd02cc81b82be3ecfba2586b5cf9123b4053eda835bae0127c1b7c947c9b4baf598c8d72941da1b2bcd3e4167f022557244524a48970000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -351082991e88cabaad8f1cc49ac6952c5b2214b0a72d9592abff4020f9b7c311164091383490eff5bd804be4e164f55fb8d8dfb81fc5a0b26fdd9dbec8693acfb6c19e02c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -b33eadf37428933c2fff3924bb8d31b4ed4c21aafed1b6b8c8f816c24a093e3a68bcb88bd0e0dd1d3579eb504bffd0c38263746cdb3d8fc44bf36fa1a11432192118c86a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = da140841b03751177eb5ca4430bb409cadfb316a40adffaed826d6cf4d5ef92757a727eeab5754e6f2ef8cc029cd1c339321e38f5da03e8096965cad6616350c6770ff7080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1f6302078f3414043c023607c4a7294c751554cea7ecd6104062f4ca153608d8c36c2db671b35c6b5cd6b49293ee5ef40edc30208d1358c228c7731f91ae2076e7bbac1f40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1a7148d11fe366d6b5fab74072b76a4aa690015734017aac49bac2a3d738d63c2be509f0d6d63348a06b39814778bd84b0a4206db11bdcf2ecd6bbe1403b8f27d7c53c9db00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2c1a96171d763f927a46c5833a5a2ba671cb2e3b89bbb64b4245b0cfe17523f3c6929b7c374c59a84d7d6424a8e3863d5a79686824d897a3dfed9606550366c462c30f52580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = ba78600be661666866fcd91dd5ea72286f7d3af064c873163c3f3650cd6e22315b5f548167eec50c71cec69216351dc61eb2bbfbb0081e1f9085d93a1e1f454a980bd5f9d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = c3b9bff1345d2fc68134c7b13e09194a4466341aa7845133c4293754648e5b03e641522b643e92da37c7cb745c32a26e8253da823959171f0568815ab3d1397332caaf7e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2ec731cb7359d0f8dff70a867cbc41fb962cf3ff08f3dd3ceebfea6218b09d9f1bc29025a7e328e9a0cfc4d9f2d2cceed509282202d0d12c50b0ae48d362d7b25b5b25eca200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2ab64e4ec8a9defb5d76b3898a78e5301e1ae2a4d885e876577bc4b06edf247d4c6e15bef819f33c01ce1163c662f8492d9c0ea3bd931e82cd45fbaed5fab14d5fe904fca200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -5ee6e113014974927c21f715adaaecb42a18997865de2147d1a4cffb616b1030763ee6cb936166221886c5c2b14b59237dd2bcef4642ddf49acc15544aa96a03957d7898b800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -e66d111ff788fac4efce5166cf173987441e6c30e7b5159f052a46810ba84f9bfdd415ba2b299301443ff8fda77592dfca4966bc0802044efdaf3d187e2081d064db0ba24800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 250f805869d5a3a55f3211faa1a50cfb02c01d9677a7d59b27aebc8da12b96a3068d9d450a8d95387cd19599364bbca3b74a94a2ae154e80670b7869f3fb0cfa6de814a5bb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 80b4dc39150382b976d880ec95fb87d976865b560cde71bd6dbb55f8aeeba51477332835b3b38401183a8cca9b11a72723a0411ea77d7dd5ee43b5d86204f7061dca5858000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 5c19c420c0faf0c6b28da5ecefeb07a6e898098b4a2d782a672ba8288f36f775fc6d4dcca0a46d39122b957188eee10f518a6b722dc07e27a4e2d84f0eef058d694f7bb7db000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1330107703991300e2b0e9cb667085015f457c19276903d93ecf5239f3edc4cd1711de633ec8488e7c6825bec8cf5f737c57a4b00c410038af1a7e11bc0e129891eefdb102000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -107ff77dab6312ff12e0df30bbcfd129228f539b9098961cf3d46ebe155b6aa8d6009eeda4513328c296a9d14fe68f619310f62885b8f00be3e7345083efadf9a48c809772e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 6b45f44d68c4fd7808b5d4bd9430840f88b29be75ed13be089988b58fb534af75d5bfc81ed44c9d9a83c029daa2439c260f658f4cdf3f35fce14c388211d503b7a88aad844000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -f83dd9e8f2b08778ad3db0d4ba57320177d9f3d0d7d5732b04bd5ddba7712149ce5cafa880c4a8f1dc301b262dd16c5c491edc3711b80821ecc9417bce5c2364d6eb2c02abc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -a60281db3202310465c7d532dc7b6e2401ec1ea028219c44049baaedb47cb13d6d770c5e995b97996ffc1e4ca821c80829c5306c9884d60095969662cd9f14db7521aa852d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 16cedfb0f0876627514a5301619abe3742ed5d0d88d806b58f09372ca0b26f7f00dcec5339dc3fe545356ae96f43f24e85729388faa4563a85b3fa378998d7b370c5031df4f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 23943a41618930db0403e2e314db112efa19e2e7d481f0d5f1903d08998e0473c2a2948e867a3a28b53b66ca8c03f4f38a3bd44cffeff298f478a1a4f373bdf31d59770cb3b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = e1ca924b3694c28ecb5412542175efa184da15c947b5ff068212c4a8ddfa6813f6c62bac2f8cea20c37b0389952af6ef88d5e05f90476368055dc39f87f65aad6663720f9ea0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = ca7427c2f9574ba00a0904dbcf18be5cac9ba3b4fae6ed6f73b435c59f0cf284b076be7e2200a14c22f7f62a378a16d4c18e3ff699bfd69dbbbc1aa5ed700731ab9e8bd51400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 9da975db852f32afc04bbc8d9f8915f389191339b0e5c5f6dc0104acc257f6a0912ba8c388e0bfd3bf647e7a8e135aac45721e3875bc8f1827f3a1afc2e2f3f81fbe609fece0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 629b3cd5370c769995fa8fe925a793aef5279d3de021caa1f887c65c275229da8a8ddc41c3cbac7edff578b50f1fef3da7fc262a947cdd0754d7d4dd14159c9861564f0b9480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -686de013e6e6d5f3b5c5461b3d6e0f4fc1fbd6883bd747be21ad48196c955ce6f788d8f76996a9deebfaa3590b58e9132a29d78d9be45f87c601eeb0da3ea8cb93f64c7dd700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 78312f90b110a6f402ddce36b4e1a0f61640fc90b6d8ff0f668c2dd90b38ae6c4ae28c6b541794e56288a959f17e662dd49db425015ab982a7a46a52d6e7e68ac0759a4638c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2b529d665f5425d7415dc293a97800da79271b47907f8bdda4bdacd2cb70c4bb75c7cc3cee7393d85a1e3545671815133ed4afa7aa4c7dc6024b20414199e14942c1095635a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 39aa0aa7c00560bb16c8e15eea885c9b20e0bc05b6c3fd76bdf47d7cb5c2e160d95be47a69396d9e5959939c60a8067a2837d05d86b41ec2d69278e882cca67f70184394279d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 4790a2f7a20e298c1a8da49cc47be214fdffa14621ae49c630e094ce7b6a4ad313867c6d550f05c3dd0b66bfbbd50375cba7240fcb8f36733aa7eaabc79b4aa3b8352b9a4c5900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -cb025913fffab193e8aed2ea62fc2a5b03fee4b214242d112b3c2d5d6fa1b53934fa2ce0a0f7e12967a6ee056d411c9e5b17a874eaf286454fb929eda796013f11b9c86006f700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2bb87cf96148492e4c0759b4ee81775a4c851d560fc32f07b2a9e48727380ebca6a8c341e52a3a528e599e6564591f1015e322fde39c47b9c080125aaffe65be9caa830b648ea00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3e4ca5b3236779e4d2d220c12edeae8e925ac9e49ac7c8a0f0e0f00f546a69ca772e577a36d408726ec22c4d76001b34b2c2b5b310004e88bb046886eb75ecd8a2cb282a1d3c200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 5277d56b67ddf63abf468169266983e1187be5f871a36195c90426471b1ba7c8984d993163459487fb4f71d9d1ea9ede81d8620fee702dad92a466779e7ee6412edd6b34db7d800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -4792e5a7ad8afc3adc0a5f2e851471b9428c7f6a28764a0aada982b89db2e46f8cc2b6be9f622894f7a831d33f906d41dc2005878ad1470c99f766d8eb73837d50c109afc1f7400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2d6962e372fbe073544223f50bcb028b556b454e938c065d79a41e48bc70676e35f4bdd7be96a5a401aafe60b31f27b09032bf69a74106e5a77de2430ed5eda515e02529b6aa4800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -5978dc9261771ae842817bf5df722ff2611a228ba85e60496097f2c089ea5c47c242e2c74e53739f26962836f2bb39e804f869f8334a00c4aaacf18efa1241cf18d787aa5465000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -c651dc669449eeab7891b1e12e02c95d2d8e9cdffb98849f4ebbe1a47a6b5f98e4ecfdee9e27e654c4129d56b3b8c1ab7d35ed8a611065d8be050da41c0d8552ba9978a3340e6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -7ccd4e2babb3c56e1d280a7dd9283ee7afeaac9da2d82fd7154addac39ef2ae69f471532410ab87f1f9ed80bf74ce9ca4ccd7069a91cd0a73e473b8cee3f4a7bfa68d5e1bfe04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3b4e67185baea5a158cb21d8192c9aad9f885ad54c77af3c114af737ea6f1d80d909969f3c657a06deaacc2ed5e5e310f23a97521896b3619ab331a431da7e751e5041bd3d7e96000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 34f608a38e7d90cc7973ed23763c170566d44a57bc279bfaa29c0b5c356f5df34c04c7d3a0889cd94704bb17fc5c13f1ba18fbd4603ec773bf8776011986cdf6d9f1057c5093e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 799e9faa64cc139f28e8bc10d861a3b5565bf2e4e8ba8c860dac6addc68c47d21853add5dce84779c9d3cf5d6ae7f06b111f72caf7bc8cd89314141c1f2cb85577cb6d04be9db8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -bd2f4b3782ba0e2662fda9138234ace0ae43dd5823718552cfaae7e19135a32a4a9534300bdfea4b746a97ee1002f475cad2f5289b893f62bbe29944484fcbb2b0659068829600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 156c81093ace55c989716d33b8a02ea545a044447bc325bd39d8c8522b43e7086919b048c2f41bdd1ac77597d500945ab708885d5607d4b9d0a80cf2c9182634cc63f47728d5198000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -c1d329ddfc5c4961ac022cc0a3349dca96bf5fa48792e7c8fd29e8ae5e79de3c603f82b3b3176078cae1daf8d50669f61a1ad05fe7493b67bd1d8e7931a9bfa85aae6d073033d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -5eebd504cdd2058d3c24db7c240e1aa7427adaab2760c28da915623c03e53b3871633a6a753dfb7a7157aa803d1daaba642b581a0b1cebab4ac39f7a5cfd7d8b1a879f4949cf4a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -e8465aee0bb16d6d5c4f04dab98c0f9a17b36e4e2465a150f813448c6e5374c2de2e12b818378c89b9111125975be5a6f7e1e54d40e730ea3d645925fdcbca2a8a6dadfef0287e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -21aa19f8fec866586d444adb427d391365a09e10e3531a816d8ca0118e79e76fd6a7083313440f7a624539a438a4c45f5e75d6c2185c22a98ad306d0cd3211e652933efcf5f007e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 210ea978e0f3004a8e1845571e2e9877cc4fdc38b830dcf13f6f8524dd62a86499e5d2ed70f4dc62cd2b44dfca5ea1871b207448eea701b9ec845d50ffc7d00bb4cc2dce638950a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 195b9ed718872ebe7d43093f23f34f1ed46d083aee06ee14453ab6617d7bc075a01ecfecb1bf529f06ab55dc784fc916a02951627178564cb0028b518d8ad6f3015fabe8bad3de80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 5b9f73c8a65c3c7856d21abcea5dd1b134a442ec26af0a0f11235fb9e52d7e2942e040aa9a5cf8e6bd1a89811c1d9833b08061f54dbf0a9ade7c8252c1493da67d929d053a75fbc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 104415d55883defa9c001238d35be5e1a1c4ebf3ad6324688854acc432e8513334399f96ed3e8eb8d8c4c08a044ec85a843093174e63616d726f55d82bfd5c788bf9b5bed1af11d80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -ebc9fb80da94d6583093aeb4151a2471442b666b86b904bc1f6da70bc40d860c50c922dbba010ce9a2e07a9fd1e4c68143d088f6fce2e69407ebd473c0eafeb0ea4775c0d8b4ed00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 4a74847de1da755048f53ea435e7f26698f160942eaac2644f6b77b844a6a9c2a43127aa5737a4d59a6b2c67f52bf7a7ad999ba2da5b5c7be6cc96ee658be59b2e9111e8b44445500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = a04c8690ed005a74f635a9e36202838e2c059b90b52f42e1c77143af69767e4a2a2dbcfb05a03bae1511600fdf96f58006af2b73651eb09fdeed454ee9e5306e9fda5e2339f600600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2dba7f59276b8a6cee44ca30a9437df88edd74efd96407e09389ff427f1a359430f91d298411c8a9c8a6574fd460ecf4d9349f31d2a974e206229cfee722aed4e680a01e72d6f61400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -34f469c119f731c32d9601d45f30795fbda09f5608bb942194e2bf62b6aef94a8b9ef5fa5487353d15af9e7a346ab6a89ef3c6ed4e288f655d3a543b51d6c6aa4762a33238f7de2800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -8a8335bfd0934d96e10237e17679f0dcfc807a4435796f6a853bba4c78de7c7ac93da876b1b9902df48f98092ffaa48d82781dfbf92772c7cc5cd0ad8617543d945b0ba8d3cfe7e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = b0395a79949741918a4033cd1e6396ad4b21a6029146a742241eb6c30c472abe43fcb6e4f45e22e0a695f9264a3142e82391e8e3260da4b2d212ebf69f9fc39e5a5eb66dad7e1a7c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2cf68b635c366d71d4f444ce4afbaa0f9f9da5a7212dcca1d33512afa4e47f92d3b720f6346baa1c6816b55dc40bfe3140c45a8153e22d532f9ed05b46fe14da30371cd3e038d018000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 32e2ae89b6e134b0454fe7ef58d9436c9bf2376de028189eb9c2f5c51260fed1a47930781e64260c45f92cbb9e3b5e6da571be7efe35af9f076b6e9e57a05aa2b736497b656c2679000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = f0dc356693daa13538a76ddecca447dd4e2dc93f8d78e3f941bbe8e92169dbb72705c48175ce235289b05a7279b08534241d772d156322dc29978e717a080ce9ddc6e699976c1d68000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -6ccad296b3b3f2d23973bbdb09bc68ba103db138239807f343bfe0f7b49cee5a1cc3ee02de50b7ec55f09263d1e0b8834ae9380ddcc0c214051b4167c7defa9286c7621b357a0895000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1688605fb7a03d95abcac34931fa34178f3761d227c5e4218085fef1039c53e65da7c39ac92e6c39ac1fba34d1256f3d5119364f841a268de97c39c65e28e0096f6b740c63ef04ade000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2ebb06a379d4dd885036724104dbd489b0464d86c956c9fa17d4ab202844e217ed766ccae180e59d429a7553dad0854053f1986a588a64b1cd5bb48ec5738b47e610f14de4370167a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -e50b63d6d2e08ba7c284c27c76d4dc9ce98742ee751f7bbd7855e04a4bf5d4bdcf911653976ed09e3e3cec2e873b73d1c1f86fd659d6eb68bb989c26f0b6609e0812c632c29e730b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 472e43f62fd89b37324beab655f45124424322f123406074ac6810e972c6a877e5c196a16708972da0ce3c1c4253ecafeccc5886a6130e2dd2d9f045ac11eefdb0787c32510c34f78000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 18000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -b5822caf74d99885e457d0b2f244c2fbf605ad6fa6ff13f4b7e810613559cfe6f03a2a57d5f4853f5ae5647885f6874046e3cff68f79125bb37a68920963e187a1060e79fcfb7ed90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1b0d79a27bc72343fc8abc1c3a010a303001cbe87402f5bde15c1efc5b1f5d7bef437f0aeb49e3147647785343e285aec43cca638247724f764828bf38c3bfd7cf2f1b03a7434e1c30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -b9a6bba2579cefcdabd37541ed80c6c9a7ed16086ef4c31e5f4767157ddcea53e4d043e53fe0fcad4ed233fa262b9412ae079b392182c754af516a29c8cdb8eea808412c7d8a9f240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -bdc7ac394e4759744bf4c4bd32cfe99cfae404348e63a06b77ac4fbc9f9493d60042502853ab924b026aaf2a2a0c71f4b90a0a1862da912f4e9da2469ecabdf148667b017491f858c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3827f66e44556951e02901cf23f1c34243c782ba8fc7854fb9e29d1be4626a25024a3b22e4706080a4d70e9401ef1c7ec4b1d22a1ba2bd06682e8c4a9586db2aa40dbaa41ca670f77c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1b431f24fb6a72273eec6f17a963e2a9669e5fb8a8129c5d4a42c8e27297d369cbf55adafee9e47456514b3e155c06cdfdd75841484b9c7231dacfce750a8efb5ff55b6d6aad58f1320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = ceb5b967ab82136dbb948712d62f47f4cc129d7cb87a90505e75ba82dfcfdb6abd9aaece8109487cdbbc989b86773c3693e4350af88b1b9bd29a450291a287cbd23b5baada488076300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 4c7ab13d15e098c4d1dcd068bce3c0999e42fd24f62c829a83be09ecb895eb9908696e5a6a61814a4a6e8e839199c9c3fd859d1d1b6338b8fb2ac8e40723eca21d46480476f5809a900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -f656dff6c082d2bfb9534c1230f0abf78802fc15a7cf5075fa6c6b20554b33eb4fba7d99b7d7cdc5c2a7a3a0df7623ad4e74def1ee1c4381c8d25d55597388ab4141925a9feb9324600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2b2f9772164b866739c6703ca209c2c7f3fab556625213aa7eb9075cd9bddd25f6e8532816992d92637bbc6c415e356186390e9726ae5a2d4a461a835450de22e36c84c1297d1ac99d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 71c6b111479be5821e62464e45bc22899e2b665cd75e9f1fd961b8ad52cb446ffcb6e0e9c928437d02490dbd5c1ad464f65132d8f2d01a5e6ec257462f61c87d25cff9e318b8840cf900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3a53bf17a2791baed62a805ea83e8390c24b63b715db9abf9238e50bbd8949b1f2245dfdabf0e277f13c355d81a47cf47555ced8b6a6c84e26f492e92ccc0edd48ada95197618ad54700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -326e48ecddd9dabfb0d77b9cec0a16cea87990196aef5bc2b3dfbd4df06b07d661cc5672f2a0a913016b256ba44675553e7f6dad7b2c1e8e974052c0106e5ca65aaca62e0ef1d14f47a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -26f1a8998d574a34cd12c3d424a2863f52763aea29a6c6487a43ca219787d0994e27f593d085b393ba2be6d5c235f2209b6f6ec0724a2fe63bf0dd278dd7f6fd2bedaf2cf213ab9d14400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -10f3e1467845c667315575465b1e4d22b53fa819faa47226b0e30516d6cedc518b5fda240f085ff9dca4bd9e111b0d61502520c9f0eb2d0b8eccd7bff169201b2116ec6c929d763406800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -77c24b252187db6b1faab4f7b06ec2ee9a2addbb94ef7dc0f3ef715b27560b61871cc1b13c76a5f6fc2a17f05fa575ee1957cc0a78bb3d815bcdeda635b3c347692bbbc26cc060c45ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -10a298a1fbf0000ab661a322bf4440d0e40c1c0029c73deda109d9399d2391ba474323e70fc2918724205714b19ff94c3c83cf5ff4a39ccaa56e54c1dabd24ce0fb41e48b9c40c3765000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -102b981700c29897d263a831f9a3b74dc844f659d0e750c3c10afc44e6f8856de057d609dbb58e25f7ce3c81f589e7811ec8352eacf8e52e253f77a66e77df5af27077d0c2693326473000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = ac412fcfb459b63ca2ccb116c34d2d924101c5e5956201eb7e499ed5908775a766e22e285f832aa742128c07cd98217767bf29ee0329a1bb74e43f044b77fbf58cae1d2701157c195d2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 96e8706cc05189e77cacaaded20d819db4ab7d169ae40cf384d31f38440d4d7acc8aa165ce2d1317fb2b539e026644ab0f1ac409a6269015ea3d136e0c201a1488d349470e690783ae6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2ef3d41c66ee24f085b6ccaa6c746143efc9e68a338b4b18586498759bdf38573fb4d344bba830861fa30797a5c925a6405815f2b45248d64fea87d5db5f2847615e84ad3f6eab4a1044000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -c7d7892e5dfa354626c60fefe8c3ca85d484389680fe0a0095ad6a87d85894d906bc645860a7d4d2ee2cde7db8f9c8bb47b899e5879e6032b0d43ba5b8069ae9d64bd2f15712f89d354000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = f1c970941277c410275c9b8f74ec7c38556a97a371022a770790180cded46ac784d688abb4a08876031ec1fd7fc2e1d5afedde492dbc95e4669be2f4718178193be12a48310d4526ee38000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -d564e66bc5f8870ba72070ecc2d7e33b8345060ab255417274e1f985b44e145e9cffcf7f01583c1b3852463bf599c78ebb84bbed22c3c80497160198207964794a8e63edd4cffb79f604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = d68e68f0c79ff18b7684deecb42c0d71dfbf33d690d12963a71ea7b0eb761ffaa1c06ff2af71b901906ecd2fbc5d0d1a77e07b1b687f7d5cee9d2a32d13a5c23448daafac376c2d3dfb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -22e2bad4ef3548b28f4025ca79bd71b66740b7fb2fd22832551501e8c0169038c0bde07d83152287d668d04a62e8e8d25cc754cac5481960ada5198a5b1fd017d234176def75a21f070b8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 18000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 898bccca01e5970734faf2983a09067505324a51bd664f751c027299c6eea3e74dea5f4a5b114100224dab29aaa9dccf8e3e42a6108f53e27f6eeb9dae52d4a48ff0cec5f01994bf18b40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 6ecf477a99c7960abfbf7271716a41de9e86c75d911c154a36d15e35fd299a13266763ac8d41475bb4a2c86922a000dc25ea1e7a6d28d21fe51fa3481b470289e3f213d7aa16e465d1890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -39f938a7c470afb364e73ca8e882f16df063cb3cac62cd944b960b5da516d4f7ba60ca4202a1db4fed5ae3e18c96fe6a7c5d968c7cc322f5278eb17e19677900896debf21ef74778a233e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 124ca0bcfa1e758714db681eceebef38f55ec09e50750fb52b8443db8da196a7a56afb8a5fb598a27646ac20689e4f5f16cff1516e99688d7e8169c706f3cb33878884e0c1baafefc7acc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2f23ec3bc3037f8d09d2103c18fc0fb60ca0b2a741c1721681bd039684602d845ceb56bc5a4f52bd0100b01544e14dff643f73c6032f61e3ffe32d80ac1a1fea9642bbf15e56fba184480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = f7fe71411511fc4a1554c027f21a78d91c8b455f8de5d3d14b6713ffc8abe9d1d9b6f26384da2dd70c9b96b8fee0d7f48d7f06ecc8a9b1195caf7b548b224e2be739f2764d92a6057380c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -34aa8ea6bb27a7c7c8788f273ee7a97bf6248e0a18c5aa9bd60c4abaaa8b8f9d891cabd2e66893e056a54a2c4a764c3e46d39643e394c9c563f2a86310f072cfc53c72e9377ec43390e6f80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = a7687b89a793558933c14d47d2724270b5b3e15b914b4d561ec8b374aad07cb043ef0ecc03bb784c1e7b3ee4d7d40cc22d8215fa05672fde54fe43f6b79034e69f822b98b922c5bf49b600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -201e5e4df48331949c92a02d7e187e9f985a0eb7af85e8477e39d0c0d3fd6cf8a3eb4b1c3aaecbe928c5e775bdfa6275eaaaa3b237ad5e8a7798af47e7fd8ddb71be22d5e35b40d9801d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -d8842d928f85bd7e87586cae8db0fb7a2f9607e53a56790ee80cec6dc9bca8093504aa7db5fc4cacf7c518375dbebcff77b7ee56a060a91032664f3eaa4e20347af4b65e21c4540391d6700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 192851f6b8389a76d81a55c41327c3db88a1e56fc5570d72b99ddfbed5cebf41e3e568624071f21af907e52a8bbe5701e8219b00d223ab0cbf240d80c769d98c5f19ab39a0e1b1725460e200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -c51f0e24ce9fd9d8aa57dc0cabb002ba4df8427298fbe7dff181cdc7a21b81a8022f1ce3b32a2b335ba9bd7e70737963c4f154333e46338f0b57b79583b0663f2f74ef19b2087b9b89fd200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -cc52a0b091a32ac87ef968adb3175cd0410b66c4bc0bfeaf0988f9e49a68c7fe5169bce9ef1e4789aa4930135e5434a8e8975763d803cac108e93ab87033f0c1fddd6677ac8029fd82598000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -37af4c1b0fcbe6b60a1d7e1307f66da7db712956ee34d070accdd676f6e5ea83913e4afd942030af4b008f149986270c7d0702bee22d8187c363720f85d3c689ac881e1d6d20e7b04ac23800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -14ec17b74e3157719f586198898652493d6358e6d8b77939698af9b274aaef2c0409b118693ad62aa4dfdfbf549f5e682a4449826593bff662155bf132305f4923fccc73b0a79539848326800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 8ea20c9658a7451ac2fca5437f16604e7a6b13d1bdbe1cebb3cf21d08148790ae4d5b2e35c79d249c96d46ec9ab7237001c02287c417a171e12cedf229cdb6929951605d1b74972ab701a800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -e6b13b3e8d98cf62435d9316d5a3459eb4c7593c953efb7d889d6382c28506b55b11f9dd04e19fcad5594a0bfc5900fe6a402cfd9db6aaba9180db70bedaad22b3bcc998ee26a5714216a6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -d9cfcf8260bfb63ab2c8019411c3a754db9df492e93852a6f4a70a349f3ccf46210acbfcf557aed7f1951de28484624f772aeabed897fb7ee229ac02ad838cb394b8a5b16e82df87fcb9e2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 4c6ec221b98a80c052a35a573019d8f1c977782b5d880d99afd7f1c1acb83d749a4738e0e264358f0419745c52af7b0073a5b9ce164d812144c291323d3cdfb9d1b9a0f485cbab9682bb14000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 38560a04b2f93f5a1ed1b3983ed6c9693c1f00e2e3bc560f7317f366ce9155f39d17f38df617757389dda7f0a03208177d19d8f3f831421872a96dc55ae8c54720bf1675735d797a54a8138000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 818b788a417cf83cc45265217e51c28fc4eed3f69e728347473ee0ef7ba97c2d833218889d1ef5c419ddb3ffe73a6a5adc1743bb7e634915cc3fa02c26ee4dc3ac039015be7b106d2d7f110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = c80ca3c7486deb375e6167b79f1d3baf2d4b32137671a283d3e5a1bda696f25116eef09e986656495c0ab9d000369a379d614bb90e3af9f241ca9be181790784d3910877a6768582be3342c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 128106752d9b8cdca7b6b1b04a8ef879f42307116953e33da8efb95743552dea6315211a162358d9dba7b89bc40be64e362bc14db37fa582fb389e0ae449d90d8a4f8eca265a0ccfa68ef028000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1e62fd23dedcd375b8edaff88f6bef17ab4b14a5b0ce93f56e06561ec28fd44c465368f0bec701c02838f43ed6dc6ab0620e5113bbb802d33327fee4e8d401b850fe1b19571fade342305558000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -45d72f15e2a370ae0d53fd72129bcd6d935df6aecaf2d1b73732d8fdc90ae75223add4b43f4de34f5b7254dabe83e4620133eb8d8f80b8a33f4c92f66e6d6044431404c20a58c49b29874640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -5b262a4276313435f53dfe48f032ef961d58ddca94bf3d32ee1948fa94943f914c8ffcba1b13326a6b3e1207d71cb5517cceca54ca722233aab85e7a1b0e2e6c159d83fe0a9186122da13430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 25c10b467ee260ce06ac75f100d778f9bdc5b3bb27b2eedf36054023f2e441b385d0fcf6a61eec2ce5e2d8cac639790b30c337ea6d52fc1324afaace745e424e8ce7e2c570509dc77ca272de0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3f09597fe3bee56b66cca04d935b2702e530ba533fcae1e8b360b2e537519e3142c8893ad74f47070d559430826c885786199a9ed87d71dd417a76ab6ff4f71c33d8bc294e6a135835af7e260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -964c14ac2a1a8308d3449071070558bfa87f369b670592a6713ad73558bae7ed8a0a9b5e4870fe28cb3a56069605751a5375a82e34ad11d9106fff94c1904981f0b516afd2a0680bd9e926480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2a5957dc1f3ff0569bcd986534614938b6b9da4a795c1165b263f218cdfd17e600ed650ea52b1d57c74811d2e492eaacfbd4922d8beb8866d10b7a9ecb7d6e3f5314ec4b153ccccab2972ce80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 320b5644cd781d204bc8ce7d72531c8026c40c6cfcbfc0fde6be6992de277fab8574b17c8b1f5956f0e2ec4c9668d94ee2bcf709fd54b5dbc180c805cac7a9b6b608f3c4c807bc064c49f5d100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2c55dc669b26d3c44fd6ae05abf8dd6cec67f6565635b51382655ad77c1a55aee8403ef0992e7321606265f1260e9dbaa78b3a7ff1a3316ba530c48c7f0808b7d5149b6d0d86649095fc51e800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -fabd2a24d083912d1a7909b73627d861123a665a0b4768e7fd4793676a3a4f6a9981780ce666d3072ccde7f51570844b43fc46dd59f0e2964aa9d3715032a3b007979752e4ad4d67a6eef7b300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -8e605262746a3b3441023494e1d06b2957b33fdc70ddb6406f40f8a79aa198024126426139e6573db55624160f7176bc7b9883627d458c1c52dd64b228fd54185b5f8eda2c234fbac2266fdc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -150a6d472f5038981e0ede41aa4d1ecad56cdba9127b1553fdbd4088b354c927cb8e191ca0b6b4664b3c72e5148692d2af6fb2611a8f4e749a311973c74203276cff67d1af9b767d4129a947c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 654f5f97d8827f46f481504bea489a0aeebfc67f97478bc769365183de8a769d9e0375c0d940b2f13005df3b0633abdba9fc6d8af7705f55cb9cadc195ee3bc0d513802606f8c002b8cd367200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = f8323dafcef2c0b873384108cebdcd279580c8fc23216546f89d9d6f7418eb22bcc10d674953f1020c07fa77920bbb9968cbcfa13443f6f9427ac41ffa8453113b12d2ae7d9ff54a5506c810800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = c68d97fc1916699de0af674abba49642c3a6af6c213a083d529883691b8fc7ab460ae5c7a92c862432e316c687bf35759bede9c0bfb05536d96bcf863afa4eaddc64cb1caad0cd6c07f56717400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 14e59f0d3b0daca2f39bf240f0bf077a1c1d0d1a0fba0813bea19a32822fbe6e70a58e50d5d88b21447563951ee0d92d1a907a25b979b88cdd24800fd99ec926ebf4688fea4099d5b05ed1829000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -31b90e3a192de6bd857c0621c92759b619c30ffa09f9429e6cdf24a0fb8447de49e869447ed0e0db045235233331782db6620492cb0fe64f4c42833099e70c46ada6d549b0514ad00ca7665b7800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1aeb5cad51a3128a8179e84a7534d849a4da06833568c9914278efb43133811a083c4938fdff6a1f85701e6b83b8ee4339748513530b1788217297fa24515d8bcb9d0fefcd0cf62fe90134853000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -9c5859abc02609d48e54e4d3c56852cca1a6442f78163c55565ecbf1f27e02a39a1168b8592d64aae8c1d77a60b1280fd6cc181cce26de442a5cdd37647871d49f76d3cd83e704c1affaf455c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1226e14132e4c3fb74c05fd754163b7d5e9aca93de995382253409c32c2066bf2504f8b1b229f8ff70f3aecfa115f7c0bbb176fff329675b959a877ca704fc86cfd18e41e1a8f68c2ad485cd14000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 29a1cc5855fbd4791dde1d7e0bc3bd02425902875f4346235f0643e5577bdc303fa962fb76787a20614ff5e2ab2695393cd8c141303661de0454291037beae466ea184ee61330c0767e0082476000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -9473716304240a9db6d2e0831fe333b77e4c68b216c57205cd50f3e4ca07cc7ada7dfaec57c34d4e725f4ec23a184264ee47aca846ad445278fe886824b7cda06bbfa6ff12ff4d07b3d192f08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 43ff941d0125a8bdcc0471f531213130656d25a17f038f6ff51ce542d4660fbb87c6b54f66cef8728609f35b26dc465f78deecd9d67555fd0ac3b644d4995f03cf665e113ff41dc2feebc4c068000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 21a9391a03832b876f3fc3dc567823912cab836403af7b3167a11d5ad98dc590ad1129c19ae623f919d28c6e44c6c646e63d650b7aec12aa964ade8bd7aba27122bda8d5e08f0e03f77c6839848000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -181e5d84c4d9e3bd97342df38adb3a5ca1322be8d49faac09a6fd965020e1fdf8c36d94c7d46aa05f1c1cd92e7368e7d2f5292aef720348355afef612798e816e5149697a5e8311638306c85d70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = fc3e6675aa8413f378696e9147deb2832b1ce2010d5986dd8775379aada6e45a5493b7f471aa4cfe9d3fa397c0c2ecb6b6d4ae6635317e9923c3e5c1f5dae798fdb90389131caafdd84508bc940000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = d5b28faa913499c442206a5e8e4a0f4ef1104de2a7c2c5de9ab8c1ba23f64e5324751c26c6ed0433aaad9609499b309ff0051ce9a839873905a5dbdec4ce1d18b00ccb48b6258a3bfc6e5fd0be0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -22c2c940899b48192af2c4dfa9dad7c7a92c391c52f6ebcda16bc2b14972e2604a9c0cc52a5cc62fdf559bb8420800147d159f016ce5c4f10cda1d892cbe787752bbfca7f289c4b506df4d761380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -17c5761f1f2d80d9a42e2de2d64510c8f8aba87b49a8f8398dbe3dcce7ac8d06ed3a8e27f4f555039e8b1cfab465f9352d8c616f80788dd8bcdb0e69248a87d8e15eca6363942bdfa12330dfe160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 8232d26cdf0a272682abceb8aa2c1dd729306bcc95e94441c32bbe5ac99c4e9dc0699257cff7c1f5630a0edc8ac4521eedfcb80cccae3570ff4ad5cc6f470684e718c662df0d7b7587d94f8b21c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -d388fdc9a907488e9ccf9c2d443b876404c61c16d67cde9f0bea89ba503e39487d3a232a765669e64026bc0ee1b26209feddd6f482d5edb83c79aa3ff59443213d6c304db2cbf6d1ca42937e8d80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 13e865de30a6f8185f9831085a36c90c47145c8975d22baa5581f13fec020a07c82d0df82cd5cd08bd312f563c19628ccec6187520665156c81d54cd78a2294e2b3dd7b6880aa7582a29718669f80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 202b0c892ec4c29d5ebc54a692af434d8baa95c9dd38ee07c87f445d89469253441fcc0905a87ed1573fca424b4b4fe29f95963223417c1f69fdc55522946cc776e86b54862ca811f3975188aa800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2f4a68bf084fb138f9db1fc0b68dd2c47d45ed8e28d083e118fb954341e30a67976cc8b5caf42b8aeeb54a6703360421784e0b2c888ee52a452fc83628e2826d8bca44b03801177349df764d2dc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -e4e3f0a6fcec71cc6c2573fdc2bccf714c02fbb906f5e1ada510d07e1f868a5bace89f4bf7b4947ebc5bbc7a07654e940380cd2ad2a128858d6157995640939c7f8985a54987e8fc27c106fc2fb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 14f7390d80b0cf7f05b9b515f057d2c6d5aa21e4716cac54d9b7d174412ba1516fda05a8c19ea6381d319435d3f51eafdde14ae16dc4264f058ab564e3286cfee35fd0c9551526538517a6395b0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2c7d44f4de01579699066ca6f4c435dc1029470bd2a9a5d20d533204bc8b802fb18db491e06956b88b2cb0a5857be6df776f6dc33f19a0a7a4e75141379fe6661c48ef660a01bfad624372f3ed5400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = f45b05e249216b7055597bf1d608c3b04f12e6c37dc483e271281cd186d7138a2bf746306482debefe2ed07d4c09142b9e67e3284c07abe4a97d87d1e7482c0e9740f0cb87d7734f6a753c84c89000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -e0e641acadf688457e77c93aaf971743145e8c5a96669e63d707800556fdc344c2595ad7fe9c78e5ea5b08112efdd2e1bb02d0ab47d247cc7cfe5d3276a6840486917f0a9e361e30027459f70fe400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -37937604fb879937a4c5529ffd5202789c7c7f223ddc338cc2b3c082612a13ce1838db3bbf8c71182227bac47810f665d9a60b968d1a1980204965f10f05b3d251bbd7b93ba3996d98be92529695800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 13229bdea1724b5cf7c69af1db9c8578f5a084fda87dfbec47ab2531d713545ccfadfebbcc265f020095bd002bd86429b8d5d5022d2acc7097603938d66448dfc700c5250926eb8fee9d072c43f2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = ed861630d1590dadaa79387f70f55d797f0b612a387864dfe2564a6e6741befd024f8c9ea92389b4f88d0b841e0c5a73ee043d15e2adddc3020858a3baa30f7f3f7078cd134f5944b13911f16298000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = ff35449d8727d731a693d8a1bfaec12ffa85ecaa23d36a4960b50c36fdee1336b485e37d44023966004d3d21c3ca40d9ba61bbb83b606eccb88fada760da990dd3c02617d7b7261c82e18953ae25000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -28b4209172dc81a662726a2266cef47c04accb1dd337ab840856d9723c18104675388ae1f5dd551aa8e83d101647305ee14cbe47d346afe29ec43a0c9dd8f8f65e4a30a8e97aba61ab103cfb58d1a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -10693e3636f7c37b958bc5d6ad086137c0e34c4d3dd8c3f8512152266eae6aa310d7f05af55f85411de8a0afd4a994942f1d5467ad7c1d20401c61f7eb0dfdec9e74e95043745d8008f5f3debc45e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = e6a9d9d735b63f124bf4bd59ef215a99ada7487ae32b08c96723f227fec1f68c20b61dd0c0628e13c0da6582bddbd97748cf2c088692d14d5cb9c6b6b361e80e7db7bf66f7c5697d195d80090390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -4442e35617df3071009fb4d9a7473759107813714b022d026e807f9ec8f5733ea2f491d0a35b2ed7759ead21faeda2801acbe99ef76c0efa114fd7ccf1e93eb97824063d6bb51099195f956f3cbb4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 10f32d60e2c46e8749a6d12d553c4fa27db4271187157a1fb8cd65fb9e167461c18d49c4c72656179a1b2ad971113a61cdef05bbfb8bc28f56a764aacefbe5beb5a44c63f1ac544941819bebd4b478000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -21db9339c514b8086cf4592b84b0de19197b1d4df0a53a9cf80485e1008963742092ea1ad55e1b2d206eea116416af394e2383fc8fa100e78e3241981b13cc2bdf979c66f97dadbf944b98bc83a468000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -bde2e4428cc6ab40df660e1553c2213fecd9e490c9671d1795c5239f4659404d074e84191fb28edfd0f05ec9a58944b980eed805806510f5314ecc75ec561fb71772662b4db7e9251d673b65926760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2c24b977db1e32bcf76bb631a3fcb02dcf265e522763335a071f8ec936f5e536c3b882c671c446e61fad2047b339cd60337e7f24529fb862d8df007fe920ecf4f0fd70f421f0bd5c79e1a06dd47000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2e966dec3675c7746a5233ede1340878b271b97ed2b938ca68281fe09e09e173b5fda9bba02a2372a139c4499a86cc9b0c3c2884ba480b22fed620f141241a6beecc60734ef06186d3df9a6c12c87a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -31d972a7bcbae8bbdd35489259e19b3ac8429f69c88dd7c8a73e12e897d8fe6d9881b8593107f5b31275a1255f77f249993a0e136b288114e46f1a9387329d3b345c46f5a1d38a40d46e962dce9b520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3405b06fbce931933ae8761c77c9f435926874d6e117c2bad3846086448ddc84c2f977e9a8ec14069463347278aa723b3c2ca3ccd89ec8b7bb7c6305f5a6229a7c9695a4d667aa3884fc6d22c2a8580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 5d27a9c302d549fb9074e6e5dc099974f2ad29f62629de79df71314123b00d965b56f298d466a3074ca3f57e9e0b0230a12e31be008b46bfa5e2b1521fc700402c9aff59c18e07180a4171788179180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1b36193b04942306cbb5629460966e6ef97b242ee90636e43502892ec0fab6bd42629e8ea9be6592d3f3a8fc4e95d89a0d33f64fb4ae3c84b85bce9ec99c60771b6ea9972714aa178927c7a31e69ef00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2b97d2eb83b9ceb48e07b336a276a9b71c2c2a4858cca60aa329afbbeef222acce1ac99de226e9f532109a0354cf15f64aec6995b4d824c856c0da28dfc5a00800ee7bd08535b8b8f4fa02a09c363280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -792b77866e775b0a128f378746472750b8b59077aed5b750eafa91421d83bcb17013c214b867d6b2394a0f7dedb9b07f4ddca7470ab43c1b3bb1d018db63d265085485b526ffc47a32eba5e277698300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -85ab2e39d5d92fb5df765662cdb3f37d1acf0534c1be067cab46404f97ed1f9b6a365d823743b2ded1aa8bf8e8291af6624c6a043a3526a8e1f0e5b8099afd355b4bcfc857d8d7846277256fe240c500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -21b41187b815c1ebafdc5c08ebd919541f261612553818ffa2c854bf48792ca3db31020e8b685e7f5be75e74be2dcc8bf350d2b524c38a987a7d317a9f0ea41736d23724dea2f40b795b71c4285c98c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3128cd486a1c10d663ee9f3d51afcd123368372a39ce725792034c52462dcb0df2408c12285ce01a94be169843e1f797060f658c58e09b06b02fc3a20b4db597c7d3e3fc6680cf2f029b9a295f11c0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = d28d32af6d81cbaec4ed1974ff2e6dd1088521821e8b5e104a4635cc4ae2879829cbc089e41f25638c138521a995b487255b36e8a785d758a8926d94972e722fa5b8e47c694e82662906003893a78400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -be5423e477e82ac78260175ecc97bf62e1decc141fefd8f54cfc7bb92fb2936b212c72c17714880ac7395c729b58eb2e77d207d68299b7bb0e930c4625de0524d6fd49672e8b5aef5a52905a812ad2c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = fef7c0db96c5fce2e1e68d93ba14cb1fdde3d10aac3bab3ea3799c306a072828dc19129a9b59abd36e19e8378108bd59e12e51d877315e89d7e8ab2ad69caf763b679d3dc62fee69e5263b9cef2612000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = d2b961de879e2afa8369124704c0c4e4082aa1bd49549c8210e392290c476d84b64fbc35abb96ba897f17f33a7715cfe5cfc22ba9df656dcfe872bbf78fc64b2ea2306a79e81bc4d640bcfb17dfeb800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -ce0ffdb7b7ec9e1d3c7290f31d0337c7a199552114b01156245cc220cbbf3964d87889b011b71108e56bf277be9e425d2cc3ed43c2a7f8b0d1d68151b4cd7db3ca3dc2fcaf3db161410ea29a985a79a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -9535f2a54115d68737b7f3021f13c14e26b024dcb3f4407f5b3c4009111b9f3cf77ec4fbbba0beb595630181462a058c76797008fe2af157447a9177746f88809b238deacebb83146b0c2327aa4abd3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -9c946fdb992e3cec54a0e347d9925b5e09739702f9e3e7016c940a34ef4f241f188a2d81f0a6dd26cc3eb318f7a15c787c40cde74d9cbc189230178bee0b5f8785def78a8c64ff338ec94f7f70e428c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 26bbbfb4ab38eea78671c873bd532a8194c330d2ba42bfd9dd05af562c6164c85f174efd85e0dfb7e0101c4dadcabfe76df613f15888a011cc83502d6d52cda2fe03900616c937989509a15395e79e9e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 6990a3fe643a595328a3f093d83db2df0e1ed61b52eaa561429ab30190a74e017bd151bfc78850ed96537319ef7c35d9015609f1c7098c5c00d85ff2e787869cab03b621fc6082ec45245135bfa6342c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -6e67e3b592853a21cf0dd2396a4744cd6717be2fded175bcd3d6bd6a19566cfd73a10b406f8031a77158fdc6e7b897555ffd4df47c0bfd86eb17c39225664aa6c8729c9ad7558761a3e38b2a5d102224000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -10bad5333a970bea11265908344b71a33d0a04df6cc98e7f73baae5b45d19f05b563a2e104d6b11b7fc695470c64891c4c9bf78cbe0286d48eb81ca6723760809ac615224c9f51d9f21b012fa7b291610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -185f7ecadd8650caf3cd254e4c24f543e89709dabdb83ace62a52e085de34c8b1df15e84f4cf4915b15341d23cc2ccd2565af4d339633dc2d7ec072c5a66d89b01fada5cbca94a05285a2ee899f817320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -a44b2ef73b6f073ba33a1a3f01deb6f2d1d933dbce7808563de6114dc75855f6743fe5a36ef6762c9a19857ae34dd8363abaad02600ecdfe718c96ab977d317b0bda73ca96e6786dd2510121dae5ec730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1c59f51f2ee75e54591cf6d073af0a963bea3fc7422f10a3b108a182bd58bdf645c6e332509a67ccdf831edfe7782cb677a9acb605c54c2e1313768e469f2103bc5a1213d24af3be77e4189f175b59550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -379e8db19b3e55a2b32b836eec8197aa9fca066e9c117b96462cdb696624a45a0bf3466f731dfc905ebec1f29ce1e6db78072b0aea46d6388ed04772d19465317106a69ecfc12034f664dcedbcbd6f6980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2566d2226793aa39782152c5dbe7ffe93044de9aef633ce53396a2753a242788ed13b8da4b9dd386f8c02fdda25d3c873dc3eddaf80f9cba14a246e03771eeba3e71732d910b10fcc49e205c7e272f9b20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 6c095e16fa70cb7fb22c83d9b3e244d4597a57675a912c597862e2dfa99f0c734b0470a7328ae471c94684ef50d9f956b2994d545ee6119e93727479c3dd0382a3588335e60651f23a904b58b0b799d680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -5712fc0285df85818f5f3e471ee947ef323d0a205a17aee7a635d85f57083120ea6d18e445ec5e62798850bcc9916086c1095272300aecec9b40a85d0644b756d7b7abbe3edc26fc00b2629c14cccd97c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -37035ab793c6db81a0ae052363a74935ded723c4168689b9ba489893ad9b4ced10f94a8b44500e5898fcc63242cea815561414816d597ee2e44ec23971482a2ae0d412487d55da562a3c7cb910c3b5f7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -da79ab3687e8a0f4dd528248b29bf6f7ceb0b9b8cdec8ed52a2d65616adda74891f6552370603eff5511ff2cd0bf73f0a5b05122eeab87dae9a56548d54cb0f9dae23592101338289b086fd99a06c95800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = f703e850bd65d424a71cbb505c6853b3807202a9d4aafca93f43dd0a548fce74dabead8e16b6caae497ffbea197be7c36ee41594704676df87aaf1f9a1e9e73485ae51b564cd777a7650358041b37278300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -8bd396e41f00ebf645dd0454e27bbaaefb383745cdd1e2684baefea51665b2370b8203a9c4d02df17c4e526304879e24665c2ce38aa183d6a28e606f5d916407010552c4f936fa0cb7ebfa6f4ce4cb1e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -ca605573d4e309932959a4bf016b7d9eead1e12a0c215ce79dd2179d3b5894c919c4ca54c58e5f6fc39512568dfd72ca6add39ebb48bb0e9da9902bbcd3569e971f2421b70927877df16f6c27cd0f977200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -191397fbb1deaf5a36ae3445037f3ca7a603ab612e9d54b1ebe1b4db4a3948f478fda87eb80cfcf52495485b4a16fb73f9734be9ed772aa9e3c63dfc5367f64324611db0f1b776b3b0b3471239d28d93400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3cba1c4359d2356fad4b4614e12885917c0d9603425c131ec4c90a98f35f1b441ee1d1bba81726a7d42b2170ff570afbacac20413b9b4ae17784b886fca8d42c9fe3e5850543cab015c1bf7528ad76f91c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 64e5603de6308091cdb0f3d46d2f6b8d8837eae94a2c0fbb236737b9b105a906919fadb6f6089d557fbcc44afe2260f4b9ac95343e15019cacc5a66b3e6bf394da26a6cf72b23c9dc8cf82bf92fb29361000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2b274a8a39d493d0ed601635a17cdef58f393b5e43bcfdb4e3100e02e5a48e5a7b2a6db122c789f42b624b1ba43b1849721f806fbf1add3647c37c9147a90e2a923a71bbb0fa378f5f16f6f6d5dc79a2c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3751156368e1ba83bd6b7899c77caf76dc9583a443efa41465ec9cdc406bdbcb58af4ce17cd1f4ee8bfa8804f0273a724c15d81ed5520f610b111ff6e38e57d785c6320397f2edb80fda894a65a65c64ae800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -828888dd3b05421dea8c5d4d626b851579391d5427e6304eddf3a30f4cbb86ec74ac0079087124216413796ecc318e50edec9d324fc211a92ed8729cf870c610ccfdd3eec1d29a199badf5221b5e11fab5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 9e403f804b0e396f368bea2c591b169cf72145fdbfe88613e0a3e2745e373491522672ddf1d4201db227f2e42cf46646b5732274e7f5b3610377b8cdc8cacfa31f924f69863ae1ac9051584558b5b7ae64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -28375812360a88cadb4dc6f83658c12b60ee4ffaf73661f7b8d8a295332d53449f48725d3f7ea5f5716380c5bd4eefdf8f1d90d57f7580d2060d73b5eee53bfe73a5238a9a8d769dae166f9ade9d29fac0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -79a3862c72d914c6eebdd05cb8382a1e2d004b7b716019898a059727b47321fcb1e8ac62a2648f747d0634389268e3bc3396a45663e77ecded8c789bdbc72baa30e7f61f460bd4badab01d662ddd709bfc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -a053126b1b8dab9c3c6cf9b8b01228afc4fa98803c54660b79f5973756b26807d0a1a3dde6048696b34fdf5b048fe1e965a3e9c8376808e6e822407c1b45be9becc488566c9208404d173b50c3d5a1e5f90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3d68e79b16ea874a903970fd2c710fb49949a8bd05b95ff894adc4684d0f596fa1565b9a15b8258d08222bf62c2fa8d5505758e1d4da8b8e41263ac87fed3d45fa7658fc54916469c9cbf0bbf6799622a08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 11cfbbfb43f5acc5e0c87bd2ba8ec451ea3cd56e2e372f97f0d67c964db090a16e7990b1bc431cd04b5ac6e07212683195934f4f2e6edab76a22e827fdcc955943b3e0cbea9086df28bb4184301baa999b80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 4697db048ab018af7d8ce18c422d72c2567bcbb693254da74ee6889402eb34f724087932fdf1168bf67e2685285a775c6159c681a5b82c56fc252e3c54cf7b2630b44495f13af95baa9d610200b20902f08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -40ebd3f5348c1bb02ef98cdb234df81624363f99265b0846a5a3a2662e68a6901418577f7bc0bce001c766aabdd0740ae7a86c245349f7ab580f41305c937dee585885feb7423a6450fd8869218844625730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = d23c2cb72542c48ce2fb62f0fe7c19981f14fc640b5425462ba6ee8d35cd6c60f7a1248b491d1ac5012bffd10c37fb0c376283d3a6f4e4466e0cea765af64ad21035a9e08a00ad8f167a59928f9477193e20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1e3e98d7423da28418d0b4c8ea3993ef568b07ffd67e9b7f5bd7ccfd4cd15feabab7cff7b81bcb53d69623deda7aad2a79f50bcc4cbe766af568a79031a653c0b5dcdc2687d1679433dbc253c2e2497f0a380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -6dce81921e119d0d2357a311a593e5a161157e6f40ab944f54829acffd7bafda4b96a4dce256cbea5a43a668795662e0055b64020b23a468023bdc6721c8c14a9fd56f141fc5631a91c7b7a153b27378740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 6e7254ec6f83d8c0001ad3087207a8335d8c7471eae26a73ad67ad4b1e35df2dc6218d492d00809840f72e63a3d6dad89ad9856258c097e0f64d47e23eec6bc58e978154dbd56c4ba19341ec48da43d2cb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -a310ea78595b5cd7a1667799baab3a13cd97b89e38dea707c5063676962a2ee856a105926bcd7fda6e82853b08a7de9cd0aa0e42c70ec36507b2d87b43dfc8e2dd7ba4a4ed6873f24228136f0220bce21540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = ba063c376d3fb9a8c5622bac9cc708aa17d37a40c93ab5355f773af7d738150cf8349af1d92e7c06fd5a855f3fb759a249f6d44cb20cec6d560734ed6d92c1090b62e5461463598f30cf576c04c8a27845600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -b0d4b4292a72cd5b0fd111548f9357323564f09d3c7cefc4f887a610d57212f4130d63a81fa447d53c01a81c6efd85d808407662cd8ecaeec7170ffdaf7a176e9639d62145be96c847f96a72df7ce6ad0fa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -deedc3cc5887bf96bbe49cf236491f2f72c9a8424e786b428b9206ee2c33d7edff931c0f999b51416970d342dce77af955bfd325442d71ca7c928abf860f5587e299ff5d1c68250a2f65a60a05f6f1eb3eaf00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 39f51e067769458934424f33a66d7db94c63d35a24b9090a79f6caf77cb62d8f1146f65b30ab935bc11c8d0e4b74337fafd6770889fb4647796e4ca955f346be8a30c1f1dc8f0acdab3d2a6db4ffb759b5c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2a8ab41f26a008f282f2c5c56b704f9f6c942941744af4e5ceac569696e5b2e893478abc1b4a8ee5e45862fd9b011b1207fa7b3c979a2c5d9bf8aa33042c9d5131d99952b6d231e03ccd10058b3d7c284afcc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 11b3f99421e7ef1c7dc0a0ac3c76b7abd3d8264a328c93fc8e094eb1269b52a61b7dbb33c6b5474c2d09ce5243ffc37fd2a96277b7f4384f532d66b4040a077d015699971325af009e7b7a52afb9eafac1ada00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -307b3c24701d4c961af6ebf4c70d63e47d5a53892abbe342c63983121037e26fa6057ec15e9186c632b68fe5e4a1cf9b34c3509bcb15d05377aa9c72b5c0a21df98a19167b709d53008cdd50796aca21b68f400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -80ddf4e00403a985e318c85646be7eac53c18be0c0d721e1cd8fd2990294c672277a587b77841e3097ee15a0bfa18de411b61e7b902645b04e5f0b0693479f308f5716fa173dd98cbe52758b57f07f9f7f2e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3878a3daad859d44d3bbc10bc8bdbc4306acd319a78892e5b3e9630c2dd9d0e8bb23d8c4cc39be4815f269743e84f455456651af163933b644f655c4bb1356560447a0db6a99f358724631a0d5992b867f785800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1214456e8d4e7ef6881d6b38a1eeb3ec3d08aab51dc41aa3cc0001cdfa232c966a572bd91999efd53979d7049e1554ef1b9676fadaa12a3262d10a774e9e726021ca9062fefa916fdff7af968f3bf8110ed10800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -e1a0484b318c7c9061eb3ba3eaf1018e6c7b5cb6b022d6ed1aa3cb40b4b3b76104a0e259a3cc23d3fd65dd46f42ccc987b75eabecc99adb47daf04f127b749b7072f2d793c855f84c186ec46bc7b94949daad000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -d61b57b0b5b7a23f7e98b0300bd49690f45b4570aa52b426d08aa7ca3ac0271b6569b7baa36120eaf4c85b33e53e1640359f8ce92e23fdc0aba467349f69cee0b981c7922787935648f0c304a17131bef8063000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 354177d72d8ed98a3b5ce83e8cb3270344b0d6678850a67faf400adbd1313ec269f11683f99636b5389ba017865d07a82962bf4da03d6efbd7cd0b32bd9fe5de9e84dd28451e75548f0f199eb418c07dd111ec000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1c869ff580cabf37d1ae8c053c6d08b06be8813238043d658bb7fab7bba49cec186b59a2b2fa3f5bdb6bf1753a600f2e2fcccb6118eb1da860b93f9cb393bf4398013df0f18c9ee09fd91a4e5e7bc527b4b6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -aeadf7ecaeba086bb211f9b8d6d974540e32b89dde3365515753d219fa2268f904860ff6f8c2c21b4a0da726916897a39dd22a41d41b0bd7f9ddefd4f554ac6848b7ebd76fb22db55c882a778cbd62c2bca064000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 91aa466bfcf5fe847c06caf54ae43517d3c8368717040e73e7afea78a13b813aa19c022fb373b324f0a8bd85f635ff00918be0581a765ebd545804cef47f1c74aaa89db7a797a0527e4b002d8dbad3ccf1ffc8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 44000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 110b5b15ae60fccfdff6d14371d7885c62b9549d6d9f1538cb372385e5c84144ecf70715d59336539ab6ef1523bd12838a66c06b8d56340ae708aef8db89819612a4996192816f05338bb5f9ad0d307deb08410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2d965ad7368c742f34d5895c745f0b53c6c328c781ea59584b10b796d4a797f85bee3532e8e1180eb93d85bb7f499daf460863dc89ac4c48cf85eff336007a0fa2c44946076a2b9d0835c1661398df5e62938d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -99a3ac5f2416154846591aee992f5fe9babd3d95046b40c8fa74588efe2e45999362554315b1cbd555b14c2c0944f8f9edcf17744379d8e179b36696e3ac335538a233851ed473a2b85a491681e5b016346c240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -12af32d95e207d78e0f7b180f19e12bf0e3c142c4143cfa778444b3761579fc5ccd0611dd22071608a7ba0bd4909786ec9852910beb196405e7249af80119103b30d8b3ac66260f3ddbf3151ccac6a902d15a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2fad99f0b65a4b04f04638538c27dd7f9f9d53d727b7438976a235e22e87063c30c896d518c5fa6c28d203772dd2761dbfd9a5c3b9643689e248ac9c7ed0abb5b4ebb5e4359b3c6239d89bd076efbb678438b980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 33c4b7a3127227bf3b9309f319691a44388bb5b0c87cd3e6132f8a28d96494d80ded5dc334a1a3424c87cabcf0656f2456691dab1ea2057100c04b974d78aefa6c3bf64b0ad7874534a2562a3cb5120ee9ae9b80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 6d4cd50c28e62be4e4b27103a4d87f0c45db31edfe07c99d8b54c78540bd7e47d14bb5aba2ff24da6b50aef0f140aa4f98a78c4360b609d3f95e5cb82585bf1946dbc6041df4c8752c491a0339afe2e9a9dbf180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = a913c8f79a3bc4ac8df5f316e08644e0585844190b6752b7186b2dfb9d329713213f9a9447d25a8314aca96207f1ad9b13192443aa2262e7a2befcc0d965a1c3f7e22f76f54d7cc04a6a8027a68e8e76e0b4cb40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = bff09a4b84f8a4594582a6addde20fe529f15d62fec6da61b25832f881c938845bd3a43227fff06fae64b09e11579fd326dd558b48c506efec35600f37cf6a00d6c60b11f533b347759eb2aac3955c891c16c480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1587288533ef6e089c2376f8d2031e4224bc787be4706a1c851e138571ec4935529d05b861af5b9cdb8856c0c16841b2ad6a10a496039371debbf5032a3c108ec0caf5259b7512a5c35399967527565d89a6fcc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 65b42eac4aa8a9a0b572918a6e0a45dc8a61f48ec97674c0cc9c183bed2849bbbbe5380fc7751ea3c1aeb1dfc1f58a537b32e24db65a6c3d6594845dffb4190bf0e717329396e2807bca2fcaa7f86693a5105bf00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -6773409a5cfac5d1486639c18ddb9bf5f6682fd05a71bd18f42f51956cae3a719ed94300d92c69f69ba0573be5bf5d26dc80284abf080b13ceebfdcb198fe936e1d52ce7523082af0c56a2caa02dc35942cc3c700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1ea9106601ce432ed996404ebd1eb14da09fd7997050a11ae40c9b9e785dfc2e7bec6b0fbbc5fa5452bc51e5a1af6b16183950a624c35a00b561469826370457c33eebb1378ad406aa15cfc8a6654ddf844a6ebe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -102f0ad55a93f9cecbaa4baa81fb0a32f725ebf442f215368a96b3d9cbaf4c601950b6f86aa869f7be48cbfdcf29efddd6049ee197acb0433315dfa501b8c1bec1fc33d841c2ff3761945d2143601ef81bed126200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 50fb25fa83450783f62633e986bf0bdad3e30e1647f8b6aad52d91ee8b6abe6fb5842d67e2600fcfac461337e7396dfe3f265f5385840c1d2ee81ae91a594360cf13ddc6faf24ed8dd5341ecbaeaed687ab7dc7c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 49844a18c4577c8075c99da0a7f5fdc7c8cab48fc45ed3afc12560fc49b18dfab7cd8007879bc04d8d5f1adc03ac033aae23889ac82f6550e6510d85123c564a57ad67d85dca126564315b952b3562a26fa43d5400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3d8fb635d8cac518d62b0dc3a3397147a0ecdcdd7d9dfb6fe645719518f2ca13c776d99d10218b11ef2ba0e386e43fac0370f929ddc397af82bb9d5fb911817a3ad00060b16183fd3fed19a126ca2623bf19605e800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -374e7608fdb77d47042ade7b7548befdd0e73207a76225b9be53534ee66f9883abe58798813d708f28e20f466feff1824840db2bb639b2e3865dd81780594f89fa6c97882b6e39b6616387af7e471da06a6fa087800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = eae308dc8a82057c2b71873c06a67910b9aefffd71fd9ccede1ace519a841f23af579e137ff244b53cc2e1c5229a4499f507666507d63dfb0beed8e3e5dc8d4381ee72ad0ab08e95e9e7c214037efc4e3dbde8a1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 8253a4167b81311ecb3ae4b5ba35e93d942b1d4b85633ae7be722d82a43337798a6fba82c4ada7dcd0e25e642bd317307a7ebac393692e2542bcc399045221ba4203d382685911a674aff9e9d7573819f5690c7d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3329c13e0e73df5f4ca0e22bc7ebd9698cb33aab9df94c4e025dafd1f278c7c44b5def53fcd1c7b164ca977f027903ce88c77169b7b9d5392781be85c8da65417e733c7b4c84bcd01c923560f079fb35d8573472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2e301315fdba8e093dfcc7a39d2405ab730ca6a8e066037dc0ccb837e9447a08070774090f60cfcde7729a3b896a9dfb2ef852fc6ffc859b82ee4fa2120d1a04157742b8157191830ab93c72d9d6b4afafac5c7a6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -bb351879413ecd24b6654d316043873190dbf8b93fee6ac48882039785339f84854e0fd681ff93cd6305115e565b5bda7d0d7dd3f84b687bf7342d14daf2c516abfb9a2b8cf2d0c0588bb405710e93bfe5a535c8c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 529d126927175d3effad599a0fd559c60317d3033b3cc7900835bfad69815aa7bbc40cf5857f3008854ea4782147dd4bdb1eca386bff45615e251ef86fd339f8e8913d9d8ce5e91a46f3f5145bf4d0d1c3e622f2c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -13f9b067e97d571024ecc1fdd02cbb130e6886c27d23dcda086c15c8b03168d0b9442a882112cf0aa84462886686e056754f448997211fca2817259397c688d1d410e31ed4131328a5609e57a86f84263955dda030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 94803c8a8df3568c1cd0c4b7616d35769e4384520c43e27dd715e8cec0cfd350054fdd2b67fa430c306affb389c370445eb2274cc8c903a9c0408af597042432fcf486be7b5bb458ef58449cdc8409481b79a4b48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -7e7d19558051775a4133aed906444dc1ad43c21518c3e5fb841e6130b23dc243d48607ad2f123a67c0ccc5d9698cabe99ad9ada5e000810b22d9004e9bd8470ebe5ee605cb7e4eaa10f6528d2ab24c05940c252ba0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = f008dc714f610e3c907d801db659b375a37abdd6ce9c109d91cc34d72cb3a987b7ac5c81f9bc3361d3ee7e0a535bc3306027309bc14d811e96f48c2f4d56d3afba5f0b59faa66fe77764c1c2efab387b8c394539b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = c57b0ae60f9ec4495d604d5296620f6d80614fdc663c4c52243ef1ab18335fe608d0e451eea7bebf4d1b0003b3e4303e746256883bc083ab11b61b1721fc92889cdb15b5a8792ab0f56cb9bf2d8483b89fb6a7d2e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -35e3bc3edeb83b9d3beda50cd864ec20d7d7fccb09b60dad372618cfe32eba29d39d32c7cb4601514b69a91e72bc9a188da89a3d4b32a6a57785b2ef948d4660a8d893f05d42768e1dabf76a094d437c8343b868d80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2473e2102550c6567f14544713548c0c13c9dce7abeabd9a3d716a32f89eb17ec7c26bafc08b4e8ff474080816e66810c03405a158063cc03a9d4e6e78b83f8ab535fad271a0f7fd98efc5e892dd7a22da741bfb940000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -356491ff28c5d88e3380266e7d9a87cd8df8bfa0523f58b57d423a7d596133874a3b4f886032d6710a0eb83450b3bd7ef76c94c11ee449eeabc195c04e853741534acd6739d4b16ac0f1144819dcfa4a0718fd46940000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -bb66b6105d5d905e38c36c20b4491df8c7df639ab7c66c12a84bb36fed7c32798488c30ebe1352d05d2e76793c4a64dc5f0dffc431fdf17dd2e5354683f66a39576e0ac0d92d3bc88c493f303e2bb9ea11427608480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -28ea7c3fbdc2457f5cb61932b552ae30f65d33ff182717f39878ccd598f6c70dc74d07cbe22ed6851c66eba682fe25b8b23077aca392c00be8a24eb7d3ff8588a27f2011a0c09ca7aff8c2a5c62f133cb0f6ba101400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 47678704967d48a8d5d4538ba077df1f2cd9c17d69cb68fc6fbdcdeb13b07385b5e9c2848006783f4181bf937ee55307f52f95733d3a9a41874938f3b1d831b7dd2a2ee46fe3a05d93734c8b610e3b9ed18856bd9f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -8090b3a39e6299bd75518848de71e35bb06b8250d2c76487728e4a55d35ebe13a1c790650f741ed237d01bd9409e9711d086d18ca73a3965a57aaf407263e6ab21616e8ca559207c932db832ecf35eb87b1efbbb8a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -52620f6c2f8732b8fd31982c85a51a125c272213fe6e347d9287bcd152f5b3021bdd5689ee44f3d246af8924ae51fd48aab32769547d23d2c109ce12bbd45ebd109d907a7563c03580c47913ddaa8b0b8d7dd4235a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -30b1d15e13d4d5bd887bb4d9434689cca544d9bd1e8a0628407161b61e85ac8fd31aeeaa9d60774ca786724d361aa1a3affecb7560588ef7b1c53b7cbc7cfa1faffb3d00fe8e2d544590c0108bb6448bd35287ecd4a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -4d70e8a340f5d398dafed2952b8cf73a86b57b7b32f799e94197c494ef73e589d82d4de60eef15244e436eb6cdcfc3e5917b9b7e90fc6bede1be13cce11b9cd48d50f787375eba58ac358394919e59b14890db3865000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2922d6938b75653b211264c5ea010e01b4fa9d439996564952e4b9009265354a6cfce5a108e4c30ade296cb66d927399194308288353c099d43e7291b1ef61b5d8563d3ce71624d93730b2858a803f3e489e2b7138000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2b9676e2ff418f0a52a61db6af59c2c917a4736c9a47ebc85de4d23650d8d0a3e805aa3c040b8a83fc0b3381306fa44fb81af687b42643210414b31d7ce1ab72a778a7fab27b2f6b57e2d0d1948e395aadb15617c6800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 8e79b30ecdb9ff276887f4601ad7acfba372a3224f19175a383e13725393473fe135bdc668991bf0a51c1babdb4de04a79acaa62ed771231f4330375657d5f64db5ed8f6dcc41664ff4b071fc557e4e40168c9ff71800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -5d12700486f5bf33b09070aa2293120dbce01dff1938746dd44263488eaa284cbb0d8f5ae7bd322cdd4d8f459df5a2162ae237a2355cb35dcf2011f60ad2a058b6e52c16438dd49809992ee492462f88bdc14637ef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1b8fafab62e79a2fcb14741ab3f69b93d22e36c6c7a7c30d0ef28340af3f3e3b3b3f7f5830fb9dde221ef228e83e0296c8ff209155b765e758dd238becfe9b7b6efe5dcb7fb336f33ca2cc469d63e32be77b261ca60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 373d78eaa714205d05e8d1cb92328ea8c989feb89b5a91d5610329bdd55caa3855b5e599bd8b449cf657e9a9648dd4e96ee23f924e2c438cf815d8381da79693211a6572c852a40c9f4ea093415f8294ac2b1be5a4e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2553f6c075ba9ab1a29bd193b90b1082ac12fccf0a820cd4a1c9c64cb33046c9096aab72a32323ab1fadd2793ba1489747142ecab4e1a6d057aeed6538c830a0c6fe4835df9f8c1e8e4008c940346d9ab2ba41b810c8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = d9a29f96534062ffe0b0eef5e88d906dc12ee95e07836d4a9668aeb0ba6fabcf4d35140e6f750777cee01a8b2a2730d2f064b0163d21ccbcc156e2be71a43d741731f77159ee1069ccb4e5d005adec2468eaf4a0718000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -bf8d532307236739a10ee6183d5b146fc85c52cb0c9b73b966608cad0fa6f6c38bfa3d89f95bc36446cbd1212bee4d8cbd48210ffd64602986fb911a30afe88c6f503e4720268d312b295ecc317acfa1f2fea6d5d638000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3bbfd53592b98b09851d00156e044a6ffa7b6d8d2db884c542650ec7920972906892370f1ecfee76a54133b1916375977b324d5e58badaac5eb2ae1f30d37ada4ecbc0a417ab7cbcb5f9c3a33ddd5e517a23b515fee8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2dde93139f4428e2d8223ba88c5c8d58f3b87c67b816ac6bc9381088d07a34a7bb1a7bb2446d346683d1e92cb833d3f4283a3a8a4086130eba056996374bd737dc7e6cd02cd6b1862d45cc84f00cc665e209f86148180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -6aa7efccd5de6028042968dea5438dafc98ad5769dbe38e4e837bf76342b060056a7b80d2d38364fd34849b755bc9d0378d8e3b981e30c3bc06f523124c17196fed96833e20ccf7a7974ff47cf593f39fdbea8829bcd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 6e9a9c3b31623a0b692ffdd15edadd959a6e5ce060e032c40cea3e3f961d09b4dd197d67653de83fa01b829655b1187e25f44273610698f4479fad75d061fcc036dad02490aadb64465c3de8580f30ee78d6ed7c67d80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 7394cd7462e9509d6a8fce359ee763e9e385c838a6b16cd770e9bb80ba418cf86ec7b6c9f4c9cc1315937f2716994469d0b196eff78d7a123788b621d21410183fe45574d9269d6c89536e4b59ca0438f13a6378762e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1dd24834865964b50cf58dcd5cf46c098b384a9b6028eeb956a8a443ad43a14828c7c92676e6f7ef63c4c5f2cc8f99e4062230c8652ad9092ec2504681164af2d1432b354177e71bc184e6b8522c99f515787b305ebd20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 16507f631d982ec900df349e020d3f9e57475455e7716a2f6f2dc484d3b6e1d61b33696aae2ae3f994bb5f36d9e2fe1f73b5d8230cc9d03a3db994a5518fdd6f4ceb160d2c32e7d10ed9a0c0d7604430e95c0fc9c89cc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -6aaa1c5dcfff985d9def276f56d0c9ad406614469ef5bc4c73a2f233fab44442309aaecbb3764e3ddf35d7cbfa5f526cbbe9b5100728e169821f9ba5ebd0270bfa92f80e9d28067a7d5d67fc911aeb2810e3434d072580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -138881bae54de0424acd0559ff2e63bf4b859f88968ef50543135f7b8376dbcdc928f55673b83bfd266bcb6561de1d8996a83f50202ecc49b3e6efea55a469eb6fa7db11565200022c0471b8e3da7553327590a581ea200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -249a13ac09651f7de34e6a8a302fb588e921cb105529a36df666348a66dbc98294b4d6b46835fb70b4db277b79113f686734c9c0d5a9da9da5bcccb18fec120734bc5d3a4f104985778aca40601ced9e4ace98ba9859480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -be98cac1edcf987cd441d237edc4daf1b57c9f1b50e011be93330846275cc5d26f215f37b58be75b9bdbdf440eb399907393dd7c1e8cc42e1647255bcd9b7034053e561156d55781169aa94d72d633dba26fe25a1796900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2f7484b05f2414dd9e210ef92271c316e07a18eaa419d4c7bd6cb90fa20d300a4dae75c3a6639a2301d6f0b6562f2c1cd68990689221d825a3f602ab478c99d35bd603ac759aecac16686e54d6ede79e2547e85fe426d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -245c9e8c1d735f3715411b60098140bab483be2ad048383a09d1f014d6c2d57acb490653bfcccde001ba89eb6a865f711034562359243c7250d01791cec395d63f51193f76b34f81c5ad5385de9b03cf180a9857d5cd6600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2b95d2f3d3d1a53a05453c9a0911320cb2c9ea97df2c36534aef2b26e3b4356432213edeaf6b36e2aeb98fd7d18171a76bf57bb9a652b03574ef853eab3a5b6b4e454519f547b3c914720b4d6bba242b23c16ee105500600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = e3d475821180f325b500839b0aa4977ce46dc38aedd987a6abc0617d749497fe482e7897f221c9d0412ff86c5bd8ed44e7f65565e1f8be94f4d0ee3642ac6fdfa919f786f28961df56569c96beaf66f5e682df6c10e40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -ce135c130d080b81953876c1d1358c002692f7c1cbb6fadc13478f54372e37050cb1e7adbeede5577b03d0677131703e916288a17c55f9e0734bbc1556b46a1c41bddfe1af201f55796187624372a2484106c1d222443400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 13ddc817e8da56185590f0595ceb1c17bd0529db635decc778616444a37b6bd6505659b4c5f13791427606d5d48a2cc8a7b1f3fc826e79995f68a00073b239875c7e07dff950f5d0b957aceccd8f3daf529faa554d51c5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -4c120d967912b508ddf362911588a0e2f20a1dbe6c775d6e85e53eebc3c82e7b00155828d1762acecd3f7b61101c2130b26cbf87f25592e0e72c18665469fc77b986ac29dbb43c73cf385221c5f1100b73d5826705ce800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -bf87d80ecfa743e30ad71c2b4bd5b9f30ef99fd92d7bd8697e13de0f7bd9020cb1d793005824b858912f9446c91d840a5b069f5643ac1a3cfe0e9d6015d62a763ce2dc5801800d11c5b5f9b0315fd13d0f766d61714bd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 8359c0a16a774aa758706606f1a757e327a8b7c6245926518773108ff49f99327168cb77efeda7a5e6e5daa20bb6a2bdc2475645f00b0d55edd9f640a4567bea32f7078879e0e5f6c7742d712036129fd1f59ad1ba2319000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1af1170f831b1d6df1d541930d4722cb5acff2aab852ee65d8fbfb41f405a51bc53923c7e9d23e90653750b23ae57f72a860bebb62885271d366a09b1e276552725b7714d1766d7256d281954583ffe88d261c44883703e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -6cbff5902b5e3a9d27eaaca0b5c6e3f0a109d52e6e03f4bded3bbd90a3c9863a24077540e08c1d6fcce57b8c959de5ce6b9e8ab6b2669a7161f692f641be469b78f5eeaacff0c483818290a38bfe4b56fda79058f3abdc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 58ab783f2626df3b6b5ea8905be02d0dc399dd94070ee8f78e1f60a9206b8ffdc0e7aad2ef2743c98e5130cd06ab42420256042c71268e0276c0ca236968fec3ea157a0b62ee413f741fbe1e92d01c7577553406c063fe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 39705b212d6825490e688cf40882909d44ab287fbc4a68aa65693caa41817788e125df8551e314572576eb11f394b1a4454a13b19ed94400d844792f8e8477ed5494c86b4e4116169ebc56b156bfceea0ef9224cc5a8cb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -15e7d0eaeae0d84ea497197b475e3409f19d921ca5a62634bf91f844bad33db1f6adea5ac767bc138497c5e4cdb370764ea20e5de01e4ab757fb6c060b21d830415bca22b31fdab4f28db89c174336cfab15489b11ca18a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -4b9fee61cd0edfdbe38fa31364ea859a39958cc0e273eac31d350b341006b26766bbe69396b3d71f73c059308fc8c7baaffd8caee7a44cec6b97555ca969e3a1165950af4aba5a119b584837577962e491166fea5f18328000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -ac58036e4d17768d24e52e49cbfd1d3a909368306586d302cc5b1358a5ef45d7747293f6b37b847431b7344af2fe5487d5344630179ac9a77a3334e91e472bbc73fbf25dd1ebe0d50d2f024ec4a9d02d18868fedbb8de2f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 5d1b1996e0a9982609e92443e310f198b04bd7c50fd06c0d81d232ccddb97b2ce7a0f280a5803dfc9a71fc3588b76aaba221d49438e499ae9ca12d6eb390014d3ce471ad0b6f54c80057da114b100b56a08fe97233904c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1abb0c7b0b7782edcca259569d18baa90a60730e526ffd73d1ba61a8894cf6d98754ae47f633c0816bca7e6eb6507e13b5bbacd3ab5012f226403bfdc651375b7fbb196673be84799032adb9496df0605cb0121d0e2220880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -36c704039a22cd123acb30f3c65c7a02460496bc2a0c074a62f0ed8d8ebe49841b00344e9ba0176237cd8f7678f75f9f0fe538e9aa3292957b6f5861a89469e77ee873509b44545462fc7cc3b3377ab9721b89ba845105460000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -97ae9f7662b66e3787879fd436f7bd3491256a4d5c770ef771a7d879f54316ece26708d6b32f11d2a582a84a0e7697704affd505c72cbe17134a8f764fb3ee784e84560d61a7e32f8615c5d4f816c5a1c84eef4aebb8f7b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2692b9dea6f4699c2241b8b9785d1d91b23cb94029578be122ebead429633e8cf3d31a024a19688070f1508bbfe6c45fbcaa40f28e4f195bf1430a9958c210dd707f66fea0128807eb6a5189a60901091c7e306af3d13e600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3bb8f2553741d64887a10252471fd0abafd5507c2c5931ec65483cba44c3b308bf7bd0226187a001b583e6065e6524bb2ae605c19a4ed5b74c2101c0ee6a1849096f666e1292988a6be056ff29faaeb52b452e2edaaaedec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 26195bff1962d7095654161685110b3b7c98d96ec68a0d4c61e592aca7d1b7803101a152954006142abc41a30fbe9cfa862a4809bdb5a2e643f9fc2ea41ee43cf97060e05f907ee22703852404000a68734edbbd223c336d80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -dea436fb593295ce6ac1f98dbe82ddfebebaf7053bb605dfaf1dc4190d72b4168b6c0a89c4739db0b5f152818963a4ce4c4feb65f9e4644eb7c7bf4a94a7f86a3e89c336a410d45252f679faab0220f284ec585fe126906300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 7ae8150ec0bb43509d44b9b227b1a6972ac317a0798cb685a498bc6d81c75f793c64d0cc7612103dafd1fd25e419e397da3d4289cb2fd78bb328314dfb3000c1853dc53831d405292e3e7d061404b9e940c4bf5bf921a8e700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 572dff70f9565cdef3baee92b85bae80a497379943b47a772cd05c02cb70086aef3e8d36a04cacfa25f2df3c7860a3c99a67f9bf639607f6da1ded03c0ada90efecf76931548f565178d61bf0e7739a9b5e4e3bba048e06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -f6a4d15ed8c23f200f38b7bb6a7b164383bfce93a140943f0b8fd33f0f6272c69ccee7c5f0a583d8a01d31eb76d2bce20b5f7790386a8ce1898580dfdd82d71fe888f50a0f5043a2ae2338d3f9422090a0476f10e9ab516e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -87943947a84725ca5f5c55421c8bc6deca1208a70e544718bf65ba0c1e0d58c764882c40e99df44f4e8cfe8dbf815a66dfd164fa8c4d31dc440dfb335049f5055eb1d766a596b9a00be5195891b609746d9815821b29ece3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 8f7b4f38c994be2d302ce9f40b6acd27cd65be901d06044dd618b95540fd75f031b86cb765989840507b9d34e6a08b968b8267572981fcf377ab8b0fe4176eb4c49bc10c4efcf341e9e875dfa441456fbfa91f96e84b6895800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 37ce28029446158d85509d9fbe6f4c2ae891b70697142aa1da15e418465ec0e7ef5742625a4ddaa01eb80e3caa6d1b890016b16a6236bdeee46a2ac5aa67226286696e1abb2f9eb43a4c0397b92f3e803e381520ed1278389000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3df0ae605bb5ca01ce32946837d2cf32cbfe538951d0c2c8fcc5066e5607f07e44bb1417c33eaccef4444b2d9ef863f02f5f6e86e6d480760cef96a6ae117179dbdb65f3e933b290fef056d4f1c4f8e497eca068dd9a8a74e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -a975c5b5967997e6c2e0f6aa92708ec0ddd56a6449dc36302290c005cbcd4add07cb3aaaa66fb6cdd6d7098818d786e30356151532f320e47284293dfeb1324002066c38f83492010f2550d8155e9294ca5d216d5c759d4dd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -acde76463f45766f150af1c277e208b64978adb81b0a4417bdaf39907206006006ff63c83a5e76284e9e17edd4a1fd6bd3335a2f8f790708e6b978c7fd74648c80d49a95718a62e3d31dfff6c5148bdc6ff55fc51c067e248000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1a8f950d7b4942a19b317f7dfa0b2fde73b0f76c1925974afc030d571b80d59463ec04cc05a19e999ac1d459a79efe8b6d9dff2987ec242f5b9a9e743cae516a7a2ce203ce567737b0b2a322d62f74b4b81a043cea10334222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -112344a9a2291430050576f64b2356fd166d3f744e07e01d8ce299204363a992d9c3a031cefe5aa386a0038167a6eb678e4ef471bee816b7cae170b77eab8a816a7a44a5308ffa25d779056482be3e6632d6b561ed09661dd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -7fef15bcebad90c173e70d9c388f6de08c4c7faf327d4024bdf03663e5ebebdf9212eb87fee654767f7db12253b886a1114aea52ee64cd9818f1f2c31ab4c01f8d2974d30b70af171107eefacc62ebcc138fa0a380e4e91cac000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -ffbffc4c5e59201892b86b5d49a0669e9577a70cdd02a17cec4ccf70b14eefa8a08123f92f0f587b33355c7259e829973a625ff507a7a69aa5ca19a25a2070504eca038a1b41fbd8bc1c44c4914dea68ad06f509efd0c85d54000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2843f64b7199cae744006ced88703dd09701a13e195e1d19f44270fc8e9022040f83d2c2e764eb3a0728bbfde55be98b62002cdc5f8968a05710c72aad6459ae264147127ba82e1d5ffbce5ed1ab4aea8a9a871fdb83e5fbe88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -16e65cc197373cc8d78b87281dd7555043b058abd9c46f3bfa307bfb51024fbc4f31cba7fcd5b5ddba1cfc132a02251f7d708ee13a1f265ae37fba0499f49b4d533d9099e59b01fc7774de46be34a3a81d5b6b64046dee710b8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = cee30c89fb65152e2445c72391aa4f8050f4d7e70938d16e433732e412e97a8c26f215a1accea3ea16e6507e844b203260d3de26ae9579c2f963ea4c7f3235ac94088db12ae540fc5efaa13129ebda722d91963e2ecd80b41d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = b42cac9e32f6114b3ecef52cb041e4a0b758991d73b56943d8d33d48e7b682a1a2a923d502bf2ca80106a9932b45c54bd574a0216558df261a669461a16e0c03ad7b9562db420297661a9ab2408a019557288b7a165973759d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2e2d22c028315c78aebd3d5cca19332475e39ea58a9040ebc7ce50476acd753124b8b7e663443f64c8d254873a621f9ec356aca49cf9cd7dba8f14c6dbe6e481b612e191a59318a0f349340a6ba7755530b1621e4ef66ad6bc60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -cc3c3dc8625c08891cff45f3d5c006a6871e537b4ee28abccd61551922c01b26a0395feb78b740fedb2560fc8b9682954108c2005ea5b4b947b3db508a216a5f0672603df315dfa060bcd3d1d91229ce72f8725e3b8f5684da0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = f9b816bbe0d61e668e3a47a3bdca69a72358ab50386b98d6307721e99c5ad006a8617f84234b346bac7700627f16633c3797da2ac8bd29136d02cd370d3aca2bb6126784f8f48d39d596adb2b6083a26117d0cd8c81131b66980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -14186360e8df6ad149bc49de5ea2db1b688cfd5270182e1430239b423a832fa06441f30166f01c6cfb499ae4dfd406b6e05d87c3c45a2d3ea79785cfd8e037977f3927e6fd1c3cf0fb7f84bb1978f140417fe688ab46d3b8b500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -15a5b90ce927a66fea4e650bfe6628adfeb2d7105c1a95e7f3d07d782cc5c6b7cb6ac97052dc2af4d78b950f72fdd203ed3824800ccc9083fa3d5692d4f50caea96ae1fa4306b09a14bae4eeb8fd8f6f63480d7a5556d5ec89900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 15c139a1bbe42cde218547c5b71e8dd8b86dac18a689b30fc595368f956adc7c9aac0f244f9a183f9ddece78cfbf97f7789c4a41e6e1e8db99470ff722048811ffa715c684411086b5b744e785137a35142174c4327b742d3480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -eb1cb387acb66f79b377bbb47ce6030242bc0ca9d1bd9d774f72dcd790b780570e484e4f0510be11704c717efe2074da47eb5e140de31986b79251ed7a2db5532ae3ddf07862d45dc83e51de6528f796058d07d3b83cf02e04700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 889a8926cc6b66d214394227d0a6ef0319444d40e73016d078973a85b531d1d0df0bb11de23171504a9053ab470321f790ceb3d991291f97f1124e2c5f3363abb3766b191cd23505378892160201f9ba1effb2a627121496c3e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1f92ccdf1d3d5356cf034a859829c2706a269a33f858ef1249a34127fee2a4caa4268b6d07a9750e8c8ed3b0eee64fd0d3e8032147f95b7862475232dc073c87087bd365c9e420d4336d5a3343cc42cb4a7916cc06878da8d2e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1e170e09a01ec4b8b507c267cd4bca815e6728fb6a8b110eeffefbfc861190ed74ab9b543e47ffcbbb1bb191c6a9ca3c5c94d9a98b35dd059b1ebbdaa05f57a014367e7e5268ce851055d154396891f3ffecf31ef3f8dc2de59800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -627208e084e8299bb03b108a3e8bafa70921d532130e0937038272b5cd10ebc93d6188aa652cb2fdc1c4d43d7c5191b4e6968e5a14be8b8ad860acd7bc20a399112c6ee85a0f09bf2a9c7797d582e4c5bbbcd4f9ee5bd6d29e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = d96fc314d6f99c46e78db480e8c84dd0b87784fba4cd728f8dff97e130848c7f06ec94e2fecd062987998dfb16ca01d86e0a6754619614183d36489cf2727b190382ae62f67d5604b2d87548f52c4269e5da46870cfc30cbeafc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1e3cb0e0cbb78d540c0c9ae6d429fb438dec839fdc9f70df4aac779b39858aadc80daf1cea3e9cb1d3f896fdccbedbe2b25415af50598753082fb12415106ab0b8374b2cd671a16e7304b1f951ebaeb782c2592ecc84e0fe5e06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -176f0062bfc95a26f7031aa85daf62298a4fde27d0d2ffb90b5b905b7d64bfb4d730cfa3ea8eeaed90c515f031f8896a2c6cfe791577cc2eb51c8841ead1e0013957fe8244474a491cc3f11178c160153f3c6aa985d3b0052fdf000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -c7df65a155ef27b17b02580a3a8f9b1ffaa7528c563635da28663a05b4b0f0c70dcd49c29acd0e001e3b9686f628fbbf8dee731a5ff7624377832a6f20d04cf567e5cd29a452aa72220d677729a8b75d2d9a7206fd8c6daee4b2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -febae8905c837bec5a7546129be98cd06ef61ff3fa5cf34b42de12c6fa5928b122fa8bfe2153a0258d6706341e8ff5b246201bba55938b3cb718dbfff4cda54bd4b64c1ec99944d67252082eaffc56a7f15c6bbced8333293b54000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2ebbb333cf867e4655ca12e0ec9449cfdb74178c81437f2e4706b4dd67c988b077bd0c66d5fb68f0d4fdb010a1c056842b71e2d387a19fd7b38fd7169397b8b82d2a96628bdfdb0bb8d8fad429a88ce52608db0449771b2052cda000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -32020260ba3987cea0caa6c3444747b0cfd1887e1270ab0e79e3835108ea26f41daf43af7d30ed556a8a040a736587ee85e080def09a8cbf2730c15655146b169ede7b205524e6359b3481156fde7b47f97b6a6aaefe0d371d15a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -4a93ff1d21a66de2a3120d08383eeb127b3454c42c2097f7f47c29b393622c61b11435789dee2b94f09f5e802457d5f6050dfb33c9170f2462d1adec630843a65c43450696cf756f87898c309349874c8c5993ae0bb6709eb2050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -bb4e921069bb3cf5362132a4e5fd01cd4e12b511c8e548dc5e0fd3f08ae4df7987fa8a57f4ed4db0e8c916d7da0f269c015053316cd7d4cb9794b835706003d5626a20437c3c093fe3a0fe70caf00e5d8f6d7f34996d17738b3ac000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1ffa481be0fd7c805d24e606a7d2647dd279694f2511c1cfd433958bd0935ab674fcb8176b690486c0b3d33b2886254306fb2076ab964c1f670714a337d16d6e7fae6b2fbf7ffd71de478c0a1ec6eafccba5e5082ba662c932bd58000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 11426e23d21950e65539d2414ff6fea641073b87686387c46d03caa1fcb8bc498dfed8ab148d331408a55f8165e5978835477cc3fbdbf793fdcf2a359f42dca19a6d57d4fce09ed3fa87b2bfd0d63a7360c1042baeabc78fd5de88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -cb62ff6a8cf2ef4d976493dbf29de126f94b2d23b6238e1ef2d0179026f118887bf4c37f7c87716d3be20c044ab9747ba6857fdacc4362a39e7f7143dc8191a0af69091e4426f671cb8471de9ec8766711f5bc591f9d64ef2f7350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -39f4b8b2e74c218d7159cdd5e2c16e322cc95301664a6922db4cb2bd8d8102439287a2f22ee2da3d5c6b981ccb8f90cc29af5ba5a84e262007f4bf8a4f0179ee406f1a4e7a4b9c0e839ae495f3bf8d7d831ad8b5bdbf6dfa5e5550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2620620f38849f532f38aa1c65510d73ace7ac221c04ccfb6047e8707196d39c24e56a955bc3dbb6c9a27f145ebda9ab1dbbcf868c3380a8cacdc411561231d22b2d7468abf1daec419f733fd0c48db0ea046c6f7d38abaccdda760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -f041c21e771ea661afa8ba9d888b038cee66b41934f336fdbf842ef4d11f1f169a11b0a82e191e98c0bf8c87e59d6852c31a7ec9ce77d67264527740aff2c9c71a66e78e1d4a48b3f782eeea61eee6d4ebc23d700b863f84377ba0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2e250ef6ee22eff619db0bd810f416a76a8c1066b53002e8eac726e6a47062c98c25af4350b26a5d339fca9f2b995d9c1221c50df5a4f67e169f48d51d1c8fe829f9908d9dab948f6424e8c4eac820a4582d1b67a141163a23f6b40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 708378bcfd51298a2044d9d50b69ea096dbe731de46bca73980cf3f79cb03af9b048893f11a39ef19fb6c22e998569b1085e9714bf61159f443ecf13675955bb298c468d6684a90cd355b4e9374b59ba0e2ff246c51f228c752fb40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = cc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1bc12653bec9e2917504928d6e84dad306c5d86e49ce205fd41b335c0506b8f4e0da2b4a50198a657e40ee0a7023b11a36cba876da2a3f72c69d85bc3599cebf0a33594bb04674acf8f6ac821ddca68471affaadacc4ffae10cb9d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2f3c0c4cfd5d007bbbce12ee00cb238e4ecde1b1eae13d23874b760afcb369b3100308cd2dc455888792a055b588aaeb5557a7fb49631c796b3bd111b68ac5237b0485386ccb66183e23fe3996315a838fb5c4c4ab8050d6df115380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 11ebbfa2a938a95424587f8ebe271952576dc3f8bb12193f09b6bb146cc7ece4c4a374a73d2f7513f451df7aa18dc043bcd6acb7d67bd8ccb577c5957b8fd5d350e86f1dcf9b3353c6c0fb04b06d7d37885a4477ba060a3d1f939200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -b6e41ea4a47addd244c02e8dda63feb1cc86cd91b70a7aabd810a32c29e0f9831422076d7905fec4f42bba275d02120f3abd034ee07fb4bc020d863b6a465c578fadd955d845fce11443a41d67b3eb51ea139a3457cef6867bfece00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 8a2beb342e1d946508affd6c228151271f74a5a04124267d75f1961108521f12863c60e6074e0c9c3e15453e59a1ba55799d714f06c44e8f175f3ea7b99bac5637a31742e842e731805d348fe89dee2a82ac2e6e6211380162861e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 98e164a711700bf6005248617e7f472d322ef2c589231693ec0b8530b823d7d1a8a2e8e622e1931f9bbbf7d3b7679e1e5e97f5e22c52702ed43d08d7f432d30c94b0cd0f51f53f0cee97424a94b86e19f57652804d4760878a6b7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = ca101640a92d25c1314d5704af0c6d0f5ea0411ee753588f524bf2ed4ea688949b22728ae314a7e8bfc6950b263e1c2ec1dca4e48053324cf0cefd00a3edf389ae5da607d26102e46803a1a28bc4f2f7ae6e3a08bcf8743815222f400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = fb8e30e506f5ffb975b52e71d89d1ff913865c0cbefa64054382e6c350a292e0353a1dd3381e9e9026ab5ce3a6881d90927b6af0dd9d21026b6c6fb06c4b621d6ec9f5394ceed3088009a40d9eeb6b3ef27ce24933b750c9a1f642400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -d91f8ab747185d491f5facfd4610fdc22df921af3c7cdaafc00fbff519b2e364bdffe703f327a8fe26738c4f0f95ad9c72b73dc15f47cfe8955743102d16e5238f18b599da8f0c99518523dbe0ac7fc1367b978bef42733e554ab5800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = ad5e2e124deaa22e82ec0ed0a9a27f29030acd9c9706832a6e4e87d5cc3eafe3b88838b47a640b89df4d09fd377d6eba37b0c4a93678cc2fe026f3deb5d1607e4cac5ceaeee376d2857fd6774b11e3e5f9fb16cbf722bdbb3c860f800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -fc79b17e262031dd15833c58ddc11b8f78c450f9fcd0a6dbc0d2ce62ea6e6c893763c08fc3caea0a6fbb1814426bfbdfac5e5006fb02816558ee90a200094dcc6871e20dcdb36ac7d09fb3699bdf01020ef4ae2859c09b44c82c932000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -7653e247187429c972fc90c5c5517adc96e8b678f4e0163cf02e523a99d4857596a35e793b83bdd474cc26ffca8bc2539a0be5aac512fc537bedfe5fcca23cfc5d6e8bfb20ab8ea2b80963e1114967794132ad13e8a67159ed5a1c9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1754baf85f229120dea62df5784c7363dac10075f1c7ece808e530783274fc305134290cb2a88b96b9513e68a471161182a78475f5c5e6314f3165f494bf7cf4aa45102be3f8df43f9ec67393f77c3814a6af9ea33f3e970fa36daa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 731148a79ce8882c1428cd504a00d052609086e5dcc6e6e527c503d4158528ca9de4ed17feaf46255d3dd8333988106f6e4fe251f9fd602a5353349784bb0056d75b7f694d1aebc773703597f33ae978bca206de125a4ae9ee5cf1a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -229bf27fa266b3428ef8aedad88fe3672b99f8849fc3792405a4d923f7b9c9675a98fd7bbf75a81901190a643b8fd8e190b342ebacf7327ab366ae54cb817feb850e4305e98dfc66deffaebfa3a06e6071e8bebf1572d275cd080ac8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -f4f82601548eb91b872fd7dec3ad9099121fa8631994a91b2be70a5bd4ef4314ed882b49916180fd59e238b8fd5dff78678bf29da1aaebf5160384ff83fa23645a34edc0f0e396fda4473c243e77e200b0b0226eee9836b72fec5274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = e56a12c7078c3419e9ca3467e09c5a6ee178ba2a8e30b10b6e02de84553968d23d968f250bd75af3de6eb2f211b7172a2e09ec4e9c218c053e25e93bff652d55098c188d7d3da8bda5b7bbc7e0317548de5f35f328a14d66936a5768000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3bee937431e052b1fc6383143ef06603f9e581455edce877d90958c4d2d56152e3908ecc5d5b39c87b6c3d0acd301be1c542787d562a848b59b8b73f8da2a8a25fedf7ea1d72aa349166ede2cc7b184cf133e2c04a4522f64e5827e08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -703e9e75555c62240043f9374d0e9fcc46693300ad11c95a3b8e039630046ddb7dafb42548d278fb5a09869a14dd047dbb2f0c1b9708b73e6ed2e7669771e45aea54eb9409f7f25edc46aa8bd08f5833ca096b808fa36a7bdbc6ac060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -7773cbce560fb51696b12b7f6fd5698c88f9dabf6b5bd8eb145f9e5c36bc3aba573d79888083919f0de7929358ee73ed37738788152a0c3e1a336804594bb66f331e32973cacc43a3e8b303a689bc14663e70bf9282340f777d42ead0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 38b2ad54f93f849a8bd34cb3755e74be5b935ae2d418da919baadead7826ff5a9879312d1ffad923d86e47681e61bde7f1372bfcdbab2306bc6ce19ea07d34b17d069fccaf90186e4f7f1c20b0d4c189b2bfd7e8f6de86d07c202157e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -6ab0cc3d6696557965ff494c3e51d280a9fe85ed5d3198baa4396d4aa659140d3f82e0644a0f1fedff13263621054fc5e4facb7d822cc9a57d7ab627f23cd5f3a1ef481fa212ffdffb72657d28e4445b4aea06f0f80aa5da8cbf1e880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 44e5a66dc46e93893255944e55621049bf7a3265aa8204b834f94adac8077eab79d185e2bb649e9e0a34978e02f4f60b73d4d2f0bf4f288fa34a87752f12cacb0ad4a2bc20c7385df96840f3e296cf134ae34fd48a507abfc879514ac0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 559f5791eff4084db85eb844c7bf704d636a1c9d58f1e5eedb50a89e4f6b47696e9078a51d2a1c70449cdd2958dbb286808f3cd25897f45915259a3d67d29fb485ca1d5ce1e5b78d5ea561af84c2783269b971490365fb38bf45ca6440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3a9d11d0422329dbaf948512e81a32aabb908d9a7dca7df031220d7fdda6ab67a4058c25687ef11f1c54559a0097a8bb54e4ae2153df7dda262cd4cca1d3cc57735fd595eb1efe00db9da6877e06cf6e4f08186c4cfe5d686e2502f4380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 17c7e15f115823be8651d7eef9c13f5d8d5f88fac433758aacc8b7ecc11e3ec0bd8c1f26912aff0e7ab07c7bc0a155030a33c2de333217dfd6d6c9ae4b8e554eac22bbdd02c754ae5939de23cc73c307fb5ec6e2e8f435b5b1686eb1e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -bddeea0c88e4206a8c0e563ebadecde651dcb3b04e3f8f61ab2a311336bcf21b04f2924866820cbff5df562082da3a756a93d1bbe914cbbb6977cfefdd80f87b90f39bb73d73a094a3725415741501d40aab14d07e61bb214f59a7c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -5bb59380253af56d1ddf3b4dc715168f7111908c51f2792965b42d47fa616969bc68aae34935c87d09e39bcc6b0536e71bb50ffc0a1b318883b21a670e9e1b183687df277b8e765b3470141f26a754d341295f6d08ea3f10f14f0bcaa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -176ffba30471a011d4a21a84d423199e036b2a222e6077b20b1db68c3b2c36348c9ff95f81f642422015e41f671c3eadbbf7ed746659669144337e7fe54ff23d5e7c279caa850e27abeb06a35326767ad0223cd576b466dbc37c449b0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -244a00acbd15e533b66021aab67949020e3a8601cafb722ebc55d36127081a8d45018f722bbc47742ad82c84bf72b7680f35678dd5c82f2d9dcc4adbcc2033b0434d26e60d3935b93cae072d804de7b085e6154f712d20e69c785be46800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = dc5d667da6c9e85b93d082a861c5c5d975b5ed0e98acbe367682526e49fce5a01b1b2e2ffadfb70fb9084d68e25140113d24a291590f1ace291ce8a8f84010f364b028c9d006c1e885f4985545ee36e81ca00cea5379982119bfa77f1400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -fb82526eec274be217e93176fa83f324634b1d9b2286bdd0e7c4aec104d8619ceae274d55c62914ed2e74fd80a9704c33aacaa3ffec4f68589d03fdc6caa0434055cb09e408910c70910023b1d82f724412837cb2a094bd1309cb7914400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2de934ad05815f20474756b3c2f85717f1be00847c2289652d637d0fbf38a73f8ffcd00aeff3233a49c2c585b4550d39d10ca70460e0ac7029c8d239b518cafe9582da98b645abff7204afde09fcd27805404ced0b6417d7c9bab373e3800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3b6f1c0348d3c0a4d0c0646f52b5adeaf79c88f61569ab369889aa6c5b731d1d1d324ee58fdb87a1f87e5ec60dba0f55d635e8d9fa857776920883aacc9ca153ecdf15595c5a0ea971511303d503553ecf0592d66ac22f6f6aa48c885c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = b6c90f3e40d7a466d41897f7ed3ae6ee78d710c7ee3e930fa401de421c268df7e8d7b69ddad045cef6c5284fedf866912dd410055c581e6aeb5f3fcb6e3ffd939e61700029b18be4573782a112e527804abf08ed4eb2a42d6d698dbc05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -cd3f2ea827e1f8eabd900e0393742414ba74b46d4bb7dfa0dc56d7de632274c65ce5a0fa48b6e4c996e6fae90f945465360fe249f2104d3dfff771054bae384fdf331cc70db6a956bad54695eaf99f5b2c001a7bca8164a0a72cb2ec7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 30e82e706f0273a0e4fb7ef1e9821b1c2e9f193f4a28c834febc4e64e5ed1bcb17afdbc33e6fb85128e64343c5609e800f0109d500373f9f92351a9cd6b2c2b63e61169a61c2b11b8c3af01089d42be8e9675c9cee9e567159eacd02f2a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3c492de6709eba41562d667c39f3bfc03429d3581bcd86fd0116110d7376566ee6a4b68228f56e0b14506a8ddfa2bcce6613f46b489c179489edb05cbbe46ba9c43af1bf7b1b8feebed2725b16337736734449b6dfdde208a0f74cda7ce000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -71583dd3c2931b1a53f012d87718b0845f1adcf635c15068ebaedb6b2d5ba1c96143456d80f36cdc6ab0d349f732cfcee630eca6c2e74b34f7896d5e432bdca27b523ed1fea698d761560e1961438e2372fcf249895c290c393c2f8a284000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 58ee561bad40160e1c25a07509627f6b2a2b216a6aac780dd6a0b1fb96a952c9a1db57c67e68c43b31888745dde4cebda2a7238382da57831280b6e8031defb4c8037964a8ed5cb6f883193fa6bb8d8f2661a28eb22bf7ac8906268df2c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = e2bf4577765427a8c262efb64728d773522abe41edd099b2f48c48733a96489904672c350c032d141a5acfbc17b27982fd5bd5b87612347dc6f4d5ca63f9ebf44a211e67d7662f0e041d072d95771ada24c663fde7e1176d494aaac9020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3ea2ee00320ed584667b69eb3d88220349466eaa49eae784461ee5b9036d03c97f72296de6de636ac473155a58846c05e30a00887c87dd0174e21e63014fd202c5d964b19b9ea460cf1d3a95b2a314bcd845cf369208a6db4c27ab019fb8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -8172ecdf5c96c559983fd7fac55c7cd22599fbd75b03fd289b53056a0184d4fcd13993c7b837018e11569387f63367c8329c7555fdb65296484eca7e38ec55ee5f42b21d9add1f719413d490620d67cbfe3aaa6a942763211be1f48f95a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -d5cee4bdf06728b5e1446bf3740872596c1af5782617b07de9cdee60ca8124b5ed9c73b56ecec945c10d0b8845bd84c3313a69307c54c3337c811fe69dcf238bf77ddf04629ba601f08fde5b8596e5fa7cf8319a06ec70144433a7dab470000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -12882ddd0a46c88727bdd74b622b47fab2c794b3bd40801cefb5f351b910eff4064a2939a7bc5af179edf667879c932b5b1b8ac74729f6b445fb429b0dea5903ca003cfdcdac0f0bc31a59fea22478b3d8f914a4bb3775ea6ae9a7311a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3def49ad3cea35f7baee23d66a8e106194ed043e6d17d2470f02cf0a6a387f23df88b5a4f13392825aa5820e917ee24c391e5da17a2cbeea000131693f2237ecac8e0c03a4a6928d532797b9b38c5e7c6b4fd17183007d156f3489522fc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -bf162d1ed11ba1efbea570f36cb8204eadd08c7678d8b1c7fe97aec1c9d3372539e14715e58c5e174a6bc239b9a00970176e1227fb4293910f2aea5fbd60a3a9dd330730c4f1708e4de6dd9618da59c0a9bb68b76dbecd061f93476a13240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2245c0b428bbb83491310f6dae37f84f1b1da1681338bfe7133e11b731aad31e75887be98f72cda0274d17e121f2e740e11af0fef50b4f557267190b2dbe26a1fe3694213255044a3efde98787977606bf311c06d1f7025a5bbe3bb0efb40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1ac8774d294a39567592998fb574044219817be4179174d06d19756dde64e762d9ce6293953492804dd1b252f0860bc588af89bec1b55218f744ac22a3b2bbea5df38e6601cbdae7cf3afbf1fce2da9140b86584a9dcefd3ea32f63a7ae000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -29fef7e0ebd48a9139cbbcab9417b6e983195b50860c61a1992631d48d4d0d2e5b44cec6022fe639b6a0ea42bec0e863684a5ef5f4b530bd387e660a532dd1d740ee262464c7739fe269ac071632b1bb64112c75cdd5ce0ba37c4a3bf10080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 9a36a56c7b285f02467b76009a67065e227595767b882e99a4d6aa5c92903bbabdd941221d4adf55ec4200f58f6520c2b33464e17fd6a86f94eb3e5d86da317b3e0fce355569e42190cfba437a47be56ffe0da27ea023e39eb0ffd738e6200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -7ee5541f016350882ae0fc0ae71cf61c318e9b3eb0580bb4af5ff5a4d5d9b99800b203bedc038f2f5bdf490da44169fffe9f5be750cb1a36a382cee7ba91a8b6b75c2ac21d3bb259aeac762f704919737a623ecbedcccbd1f0a25277d93300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 32de2816039a3d1c677ffd174e2fa9241bfa8506d78950379b9d0e169da53366626c05efcb23954bad12a6e5b692393154d06edfc893534fbf999e451d3b2ae02442ce7575293654dfe4640a5673620b98e1e4455d1b253665ce7a353a8b200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -187268daa035c61e091a8692e884fc19c4f534e125922a3ebef4f62128b7f3ed6cef16212299690ca0a91c61310f13da059fd75f706e519d237ec3713cfe8f4feffe377ed15a19deb7681d2fd3483aa7ab44b74f96205d42621c9b99f6f1400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -333af4e0381c747386422eaea109c3f9af33e9a1240dd93ef9be946921281bafa54585e6a02185c61fa80cef74096c13655c1c512c11bb699cdaef0f2feedd6b941b89ab7079f4e1f3af86e4856030a1670689db8dc9a63cfe2745685626c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -20b445877e2fdce05616c4f870c2a6f2d99cc0807d1cbb280e30d73b6b5b0996c8dc964e29d83b70aa5c1005a2ccaf29a582b1f25e3ba51ea8a7cb881cc97a6a1319184f35a4f4f504e8fec3fa441750c771d5938e3cf31f49df7123bacfc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2250dcd7e20e07d81f659baf791f73fb9bd74b8482732694232a81baf27e141854512e3762cf50782cc5b1cfa3bd99aa19b73f10d388f6d4e6f7fe7ba5ad740b42991ad3e07f5d4d79180657d005368fe51afadb02f8dafed50f5402e715c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2e07c7331d689731a8e0d70a4064345a24fa3a35ebeb312b5c46fae9db03de6246b42b9ddca2f6add61511470b8dd9cd40e47f501749c59b52b39acd45b433f0ef703d1d01468ab8ca291b14df66c71c20b624bc4b2d1b4770cec1cdeb3a1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = ed343bbf0ec1abc725556dd794248a92fc6db8866660f0ffcb0cea3a67bcc1fc71a4fe5d6629848e587bbe95ba83aaa2fff2ba9472d8d99ad0bf72cef0ed1703b2d27a507ba6688bce5208719b6c15a9a34ff08af5acf5ff944e1bf8ee3eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -702a435e8cf5159c586b0527f575f1b4c4949136136ad991a82361df0882e47893d1b2b7365012f9547a9a9f4a2ac219b0a240d420ce6c170de472e90d87c96e47d6516978f8aece35dc111c9725368b792a5071f1cf523bf1d9c127c69d7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 290650e83ff7e5914b0f4243a4118525b8a83b7276e012607b7f83ef918987ae51938338c590e914dde3297928ee78654da94292fedf680fef8dc79a079c0b9eb690def3ffce21103657e5e91292ef4a16f6bda98e46bee70cfeea32012bf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -13570081a8543089733dab11992f71ad6850ac82e52188b4925fa6b78cb57aaf94627b14a1a79b8a62adae538c0e006c19a727a690143418090c29dd7df5a8e34805ca0e82179414bd20df2ccb276fd49d4955e5e139a0164308a871864ea6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -def1909e0def73c3431248f36be6f531965e32c79c3ef2719db948215344b610decb9a827af3dc9cfa4bdf915ce15e95822875b61bd6423e33ff2941da23342130fb5f4198278cb757a0784d3078178997c4995bdda25621e05de46c1fb18c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2c8351c6706753b037ee6c6c685c5f975d6ba8fe0c4783560881d3e1d159dd902d30fac3b1069f434895d5940e1015e251f453ee6b21f52b007836c489e581f430fd51fb5814e16fa81a01b36817ac0152ba8094e00b06d6f5957faa9b6380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1329b68a55872c48ea22489a8521aaef8283eec494644efe905667265d09592165f2b6923022b75de6a5e2d3e4e2289adb181dee6b0e8f494c750f4d2f465f251251c0cb0c6e892506523ee4568396ffd4e324b9d789951279224b7661f6ff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = dca26d8c4282945ba832242622391a7227ca043bea0637f867acc7d9e7f41ba1e7c1d42b9ddc8d50c65072442d9ad6ebc32afb37c4e4cebe9dbb7be6848bcc73b2b5f039590d42700c37d33746bc140ec2e4601557da2a69cbc13015da32b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = b4c4bb4f85ed1ebfbcf6ea868d758b4eb29686aa6a1b019a879f591558edadf182bb9202efd1c7d6fa996557268b164abfd9acb22928ec4ce15d739c5205952462a603a852a5a095e52e04c62d630d0ba0f84db159b78191eae9f72a98b40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 856be647b6fa7d68b7d0552288444365cafe8cc086ae01ba5b80e3e1cb421f7403c497565fb1ab1723bacffe24072bb558ce407a7e94e8750de9de44daf29fdd5edb2a683fd21367b253da28a95b7e1baa5dd9d0b2cf29cf0c9df981441d600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 233c3251498d7818e8b5d65493af3cbc3412c815e424f57cc3226dbb541365e0aca544a43063300136100f3c1abf100d31ad604e9e497211d82bca7661feb36e771b892ba11a607ca6f49354ecf24bfe2b679acbb060de0d1666e57e21003100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2178dca2e0da42edb48cbd8f58c4b129b579fac0dd183ee6332c12a6843c6da7b40a3522e491ae6c08d1a9347aea875a14899ce91ba152d06b578d766cde8621fa2d4665373ad77cc47f2947e3261e1f0a81f83c3b3236547d18b844acf0bf20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -b4f2db6a7ac2073b01977aed81daad284ee32f6a03e758e7d7e4ea3eb1bcdbb1664b59e1fab2eb71983e6f23e23b8b65b7172434c32bf5ea9e0e5fd71141fa6a8636dd289a1bdb853be1414742d2fa144de542eab756a5d69569ebdb20c1ac00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -a407ff572bbbe22828152f2153d8834546bcc12586838f28e1ed3e1ea56e2498976c6b71fe9660b0377b02beb0c14fd2feab71ec031b4e032beeb51273c91f456859254c14034ac7dfe3814bd504621c7db5c6ada5fd0dd3baec77b9f65b0c80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 90eeeb459a2ba042d5c1fd87b940bc298d46cabc7acc7531e87769762e485a7f1e75d28ee85bc8268903177166d4cd7ab1fceddddbe53617d7a71c53c5cf3a62ea3cf67f09743c5fd9b49104a1af2dadaba267681e6c35e9e6edae3986aaf900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -c103c35e896679c6fde7da632aba294b2598cec0c61b6306a810db9be464ac456d78cc996cda3636f5d699f480f370b2694a7c25d324b6c05f2f0c7406cb56d4d36c72c54f1355693541db3217dcba0702bc290fea8b05edf5a6733259213680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -5e2694ca43b6b81564b4ab089e48ce9726ba3d02c89bd3ab7f36d96fdf9325a56c8b943789f69b20a44ede9d080b8b23b90fb5a258eff30e66cd2755132e82661b6b88ebe1d67dadfdff20193dc9415b7cee66a0df6040636aeb340c2d7402f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 509c9e73fcaabd5753c757836328c571321850078a8fc8ce515dcf0233389ccdc5ad89ac2b58282c8f62efa6205f33bf4fba817c88e519484b290ad58ab3b48318ebf292ca7839aa0acb463d89bf4bcaa61a21b5742e1a061af73d2719ff08f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -12f7116a0d24dfbf36c7f27f1d781584f136e515821d7138f3b0f7beaf533ae94f82431e97b9e663eedc754688ad5f4ac1de137cb70f465fcfca6e858729246030496e882ac3cfdba28404fb244e8f05098c0b2847aa364d02307722212d247e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 33218cc50eeedc8a2dde01644961fcc0eac3416243ecb82c9e16f36333f678e149628a33fdfa328c2a2080d4fe6f959d99cf7e55649ea595c9f4b4e2e2d1ccc1aad881ca95e8bf4467704229c16939e0c39483d82dc7fec7ce73ee025a579dca00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2ceb0fdccbbcd8871c04bfa3efecc3c2472ee6c2da6a2c64e28516a78276a2b8065fc5236eb7ed07d18fc1faafb39410a96bbd2f75826b727aa90595b41e19e816d57c6ec7f0d5f2875a028261a9eeb40a7cb36948fd8e557b1434bb6ac5340800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -47b2d10570049ce8e8e2c325d95c45b25997bc9d44e25dcc50e0d36284f85e42c2455ace24ebfe18afeab2260604215be0cb4e21dcc0d6720044af7541282bfdb8f0d87ffd65f1dbba77cb762902884f285a75521d7942b8e7341cdc4c1b0c2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 15945870417135141d87d66c071ff64843aef977fc78972b461dae07fed55cfeb670d230c76f361f02a4966864aaff5d4820ffb0322e1fa761dcadcc50b00092002decec03f2f69fe96586ba3ee81f9e3d52f6b1b559b9a610631e95e33c0193800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -369c4d93f4809951579a687b29ce5cf80b15b8d01ba8a80f08e78149a78072cd13fec4647bfe23772b5f3d90090d9687e3af33ba9e64e5957ae52e81a50e997cf0cf8ab8ecfd5fba4af61c7785097b32e399b0f29f02bca56aa4d3c3ce5df6cc800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -37723924cfa663c4a474d19ae45b8df78a144f121cde1a8a5787e89dafdbe1e6d569b66e2cbf279f24aab934ed1553f17c645499e4364067f9affad78b9cf034d4f2d8ca3c8de40ff34f20de5435817f0639fb3f29c414e055acfa0880f907c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = fcd4c8d320b3cbe048d6af90bcd249e4270834cb9c71325dbf9ec912586207023c7ab2a7bd1ecf780b8f565583b502e8e30565cd8cc51e616156d0d21e056e7d94536123d7520c4de93620c93f3e9e5493d64bcfc07774bae7c366fdd94bd095000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2f31962b30cc655d1bc8f94f1cb9a9a52891555c5c2f86f750d5edcc501709887148d0a3cc6c598812e815e8329c48a90f2fd2f914eae22a0d7da3cd0751930a16c3246c906827d80ce6df7b9ee89b1d9e1a71b5be3c60abf89662acb58863626000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -eda66584390f93a64d7f37a2aa0a1d0b037941a87f240a0d4afff2e1c36e64b5f395b079d59849f1dc010384c20538e760797d578a862cfe20cd644fb9aa59bc518dff95eee494b0161c7a011cd22fb3dcbc80a15ca11d3e84542fa58b4e9f48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 6be528ea05e074191f330b8ffc0f1085a69af967815c66d648e4f761625e0ea3222951cc05c4ef7e9da38db78c976765cd8cfa4d67907d9305713dd564f82e7cfa4d3415c6f9cab781f06d37d68ce02492ebe0c98964b14ff09c420f6322818bc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -701ca238852c69f883c6bb2ef22899f21fee5c19833f0f17ec560d05c90be499669a80ce040ed937425354fc6026c0a75494dbb21a550e9b6a96067ddf69cc00be9391cbca6d2e12854930cc60b9637489c7832619682e3a8501288eb5716c994000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -348153335172302f58f7e0d039f6d0746dbb8d9149c1efc4318dbb4fedd868955a69d119e9db77645e9e75eea76e12553fb2e7454d5cec83523b70d2d390e44492c74d269497338328d0b36922fbd36aa259a42879fd5b6fcc49cd366101f0ee78000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3c5c339ef9655e870cac0e565a7c99be763afa874d4ea1a902477044880a048e5302064c0578d01d851b69ed314a84a046ef7e246b4c8422ebc7883cbfa61f8be565468930181ffb1812edb4724e9bb574bfd8c5c08ccb5d33f5d4b47b180db148000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 174778c27031459d2f0183b715463d3f432d77c694b5946daa208e881ee0c6854dcf0c16db37c767246554afc76ac95225b2ab99f736e828d45a08469ca9f839ba63fe3636cdf567a578ca4f363f05e658144a8aa9250e37aacf7004716eac60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 85d10ea08ec273fd8fcd400f1ed35c85a76adf854af66df819966b8f77ecacb97b8c7d6e789227727f4b14e543baa0355c2571da5d68cd2f8fa4a5e2962b4dadc9de001e3ead8d93a8512c8d07d9da31765187837ff94589c86d949b92fb3a1bb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -345c89d5b89fdafe9e8c160ec9d54677266db1382e561cd3975c428a6639e9bf61c6ea27e19cae37654c392b00cbe8be189be4ddadcc17354c4a4b26022246fa452b1532e29ec25900e4abf5c0e158211b4664ec9fbcb23e4c6f4235ff9b08674c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1060f7849fca647cb08732e04e11f9e896208edfc2df7d416277faae0704fdacd41d262d1e0aa4cbe5b871e1bb5e7f58c07a32aebf77ad4b3bfacb723147cf13376d5598759fd222ed7ee96a87f70d1ac617f10078d41e4c4caef666a0a4ca3840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -528a2082dbecf2380373e2a4b2e8a4c441fa77bfccc72a0d33bf17ebc6ad195b1096d85ce91b92743c4263985e808a8f69d8a595f3eb49a3150a182c3b3bfcbf90bd676664f4359700c19c4102fd653d9178e84148d439ee575ad15de39082cfc40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -9ec51cbb9af1225be617cd1ba85a91b51043229a51f3d373ebe404c9c0918fc8c0f64bf27a4a9eaa9948af977e2833a6e08af634285e2a815adbaefaf71db314e49ae54c0f071cdcd43858ab352f468d8fa76ddc29a048afa14ded9f42026510800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3c7367bd9ec918898e9676feba4ffb1f53ada0be897c1200f737d3dc9d5b0ac0fde887bb3f8b6bd70bad1e40f1b729938c09b55cf968c65dfd9ec07c1d6845e5c9cd9aef2d00ab04df04ed5cb529df88fda8bb7318f2e207027aa419d403dab65c80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 76ad939070f8da3e64545fa153f7c4bbdd070bd87910f493d36bd62b89e3d633d3fe8f4e90a79a8df31889706e10c6d9229560c5fcd9bf60dec0a8fa58c0d1a33f82a19008f0f106b76c287a997ed7fb6c5f44dc958d0ad6ad5df0d658d61eca280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -182bcabce488cb1fbe0737d1cec48010216270e17623770957906cf8eec670aa888b69f38c066ad73fb98c44a0aede069d149c4d567000866a305cdfa03e8bc1299574bb6c62075f6cbbfdd9c0e17c6cb148e9229de52d709d8ca08d8485be740300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -6290e3354c63da4be8a01844c08c8507b03600335ef1d233bc5be8c7204e56fe0d4ec0619b670970d3bae8c4a170f1ceb7a10cc18d5a4abd41f2143335cbdb9be037815109764019c514ebf6914d9e445ed4b56ec0cf6492504f4349bc1882e1bb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 358fb85ab0c854becb2cb8dc040b9e9ccc4c79e7d2237211aeed6bef754c7c37dd400dcfa41ebd2694dcde70e143816f4d157b6da38f0a3fddabca0542768fad3ce6d1e92d317c06d35952f8829388b2be73532e92833b6d46feae4b88b204aff1a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1841e62e10b52e10bc4cb257e6a45c50caf8534902fdc2e37821dc9bcc77b998fa4d3a878cf92fbaad180e0b151ed68d190de57879a5b3dc66fcc1db38d78628e833aaf5375bc5d66c9573286a84318fbdcaf8d331c7b2bfa9c7b9f45d5a4d81c9400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -f4644715809c37f738e8cf78760a4b9f09b9ba0ec14b166de892874d35b97d4cb9ae5626e166a0c96665e011403665099e0beb1230c8bb9a08f6f0cb7dbc33ae38208e2ac278ff02794676976e5925ef898b0bf460fa66aed7378ebaeda256e9b3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = f83db7620a649a31aec030e1a3224693bdb81e9f513122d338ca74cc10baaa5697236a36b4f03f5bfa4684c3d0a18121f8a845041411e8443c1c2e27df844d2077b4b5d02220d739499531d8c0bdfad31621f126113380b6c22e7457b02c1a4ea4400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3db77f11a1fe3d39f2a2768cb803c6ba90fd13fdc41dfdf3d119718c77369f0b6156f4799bd5098ecf8c2019298269488e4107f746a884cdd78b76359894e3ba71e37c4f7940b263517541ac18ff13f440be430ceaadcc4e4f2fc402443eb8c6b43000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = a8a2322e8dde877781c34540afbd57080cac39e603c6db37722a89d2c8a24fab5feb42f36fd0569ba8a74fc94510f27bd24a9eda05375c54d45d4961c3b6d4ced2788351c8daaed59f1d465ca3cf269b0f7e6afcc61a68d56b925f5239e928c0d800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 5800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -b6a299162e1d87469fe3cc592330fcaae818eab17c1cd26c3424165cef08d46c6f21f89db9ab2544ea057713901b0a6b84a37da9233ff64be7a0b71710455ba29ece4078bed3ef1ac23f8e97555bb2e15dc83d688a7d10da7091a859775937c5e46000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = b0ce32ec7a0bd9198184c389a30e643395618a66871d3bc264afaee7be6209902fc11e6524b09bdc4800169f2130f410e055af44ed60cd9026abd6a194d5f443583684583d73f3d0ed4bf26a10e150149022c5e6a576eb0cbeda5f98d63ec6fe6d3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -239c2d4b65f1daad4e8d4fd63b791dc3c5bbcdde63bced68c92db76dc6b1f526c19db38c66fa90755520a64dc0c0f73188dfcb6bafe6ff3b35a3cf46055b5ad00fb4dd5c6e8a47170e93be2379b0696de9a4c78830294dba7ec7f532afa929c74a2c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -9dbc75e308a087fc00674d142e62ea6106379f089edc55d652405edd9597210347366034ea2c3c613d281a28e8979a4f3420e2f3fa67fc0a1390ea6b0ea5cb247d371209da6a9b76d0997ab010f64a9e9016839982b94463308e2cdcbb4fff96cac000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 14000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = f5f50796d34838c9d4284f31ba55a6b61b5394e1a964d913069873577c1a6ae4f07f156bb01393391c4a69719ff0066d070c9394962b1419dc50639ad1bf7698252822df61bc098ebcaa665ca841979f37ef817cf1825bf5396369ce90e6cf22a9f4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 72a9dacca5d4c46b3d5e2904802742af901c27a9d964d10f2533837c1772b133950b48beddfdd65ab67e3c5e3b37e5d7d3aa7c3740f786b3628820cb6242f45c9c750d80df9f52a00f1e3acc5a6c07bb99be3da3106259cf75a6c26e03a73a33a6e4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2d99dd1ba488127340dfa74e6396636381c3d5cd35c8def1ba0887ab4e7a46e4d316f12d426b535a2d0908110a38f8038844461122183883f0b130be2bdb8a73a20ceee467f9757ff79cf4e3b851d2b6a6cb9d7aa391117e51f7dd4aa397f188d5390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2a2fd9977ba3d1fa68155b53aa70168bf10bb7f8c875a30ecfbbacc05d15bd85e23c788c24c4a551c3f66a3aaf40695a84c4d6d1d2bbe5f8218162beede02aa50432cb19bfee7f2abfae44762dbdae085500884c014d76f613a625e2cf78dd0576f28000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -8900168a6b2e1a6d0f765da22d603e19355cccb9a093cd9f3aee4d0e0342c12d3876091525f080190e6adc4941e48f202c4a4ad1b2b638f5ad7e88221835feec0cc2a509d36108c484133d405e5afbafe99e827f1f2142fb56e0623741a2127a69a50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = ab7308b2da2035eb2495e92055c060034311eb7a31136f22ea94a44857ca00d89189b58de23db3f2d52e8997fa49e725aca8ad548c55a1198b5a9596839af0594c26503973c4114fc431cfb13c85884a36323070f10a57dec788bd4205235f5a98c10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -90f7301ffde3ff2b6c946950a434bd24d3b79815d4a8349921cf9102210896f989fa37184e6a094938d25303c7943e3d28101339bb0651762c7414321cf03a40a2336b730f0ef231b55ab1f5b911b2b3fd6d299cce372589c0b7fb6f3803d221ebda0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = aeefa1431f2fda3b5e9c275a5c8cc9d15d31e0ba5d074245ec5bf8582950c835343b104ef7ce8fe3cf2dc02904aeeea117e6ca72d00640209b89db3fc626d92c37de97b90a2d5a28630595003ddeb1642cd64a7dec8b27b418f69dd7cccc00b247ec0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 6218b9908879c620cba99e46a3963b841c6b5666d4258d40cc9a115cb86fc9c72c09989d470afa3ff623edf687ac9a04e07f04e7c27efabb85b1032e4daa939d0a7d469f470e1125594d9eee6beb7dc3652379069b546b1f24916180d9c1b0de7c7cc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = f92ae6ca3f155b7adfffb06ec5438b3233d621c3616177139e0d04e7c82f026f9755fcbe730f84ac30288e73f66ac2f5f23add77baeb96af01dc9fe9e8f3119a2825b0567bd3ca16bc14fbdf619f30e64fcec1f095600d444f5bd6a7677b5d037065c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1c11650033fdcea3bf95007aef07ca8858744536d5666d5efab80521b378aed24a0f95435b48613326563a22a18b0b96db436d86fb460a84a52ea26fd2d6b1ba38df63f07fae533536749c59ac046a1de3c1d3ecb8ca441a7237049de20ef5c1956f200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -92cb76ac6ba76c702c314dec921969b56b67c00a2aa81e8071258d3b5b5e112497e386285334ef32d8ecfd0469f39462da7eee0ca138d6ee5c4785d279958718cc7ead0b436a2c1f7aa95bec896bff95710e3cf67da513826c06dda0dfbe4e4cf67080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -ec33007430ea1267e10db2b92ae44554cb966759304f20fcd5b7dde74add21f729153558fd3c348f5fd4b2976c887b3804903a5bf41321fcdc350566434d93cdae0cff37ca5d6498a5210f81481d54b20788a8f597b6018322a9380cb1f139f076b3600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -388dfd9df4feed4d48133633636e409db418273ffeeb38654d749776c22d0df13f692047c744e7d3fd97d795b8997958aa59706ad4a06e2761a2b855b7811117ec59c4baaebfcfe95a095984d1109d21170aa6e52b01e91e6af365320f631c94220500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2229102223164d17c824174cb30f462346ac439e8901a28676760b73764b42b40d404f98c07271b62bd56da28879510af609121ecc03643bc5a48693571afbb17756d2976cda1fb14b4d87ec307ba69238805cc347b2ad386cf10130377e8e75fa068800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 36255773bcc30d813acef3752a328978066cf259c3a125bb3d302734c7c2cd3981e6f17ef88c1851dbc2fa9bf1efe18bae8e939133811ea230c57dd0333da63563d217467b75779366801d9a7cba984bf71a9b3646ad4bccb9dfcc845518eed4a0d17000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -c4897af4a02ff65a0dc7b1ac4b63940e48bce3b40a89339c54622d3ecfdd93c87f55d88d41113c1271694972396c68e39bd81d7f93be7db24be0110eb395ec942335f7fc5fca0ebe79f0aec418009fb021fd68e920d6952d8fc4f9da4269a9f1b9aaf000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 427668db6b7fbfe0fd19e58b124d64c69bf7b2d60c2901eb51d0c8bb7dffa8943b01a01cb91b8f8959cc1d32e1fe5102ce4bfff05bf0f35807b9b19a85127c8491622e5e3b194b62373824a689f82c49c3be71898b3f3458b29353f82b86dc544a7b5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 96183d0ac2676abccf2ad89e8e3e1013175661bd88504372dd67d03457b8bc21ea399c9a288afeced6714a3264694d20711467f960ed710c396fda8b474929da06e69ec50fc611e7d86d46dc4e4215917b541f90ac9882f14adafab154557e88ba8a1800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3c230bab6fee63ef7ae7a30c3e3979e420164573ae42e98718c7c3dad0a68dae76c7d166a27812adc09744ebcc14e366374e3b224a77ee7f77fe1565573616919fdb9c8c2852c988f6c3ca34097bee43cc484ab66d8e2ea87e43d121ea0587010c8991800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 27ca8b71f57eeb9c5ac9f5652901bfadb4bbcedd802efc898bbb7958700180f4263334be98b73483de82f619aee3906844f69ac1a8bd224aea6e3c0af46d0ee520b6e884a9c1cc61e7e76910976bd7b1ad21d9d4f1821180854f1d8fdda1ec32a55f07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -bacc3a682bc63ef47ea5f8646944aba759d2be73e2622bfa78d8c06ae2015f5ec5688da4b4cba07a4693323954b203062bf4ac3e380558b3ab47fdb07376aae56dd469ebc6522a8d17311a411634a3520da55b89dc3efb29f77c1483767774eba12e46000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = cf5107ad84f9f26f817c3a41a9a5745b42979a9ce43cec7aae33d753de7b2122afaf68320a01d296d3944b59baac9758b092298e0c47febeebf19146f5808721411be28e3a301f8662b1ade319ce149dbff9e8aa829f76ef31702dc2bde6e428ad5eca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -35bdb1fff23a1b5d296acd34f0695111de9a672a7d582e8428eb078d9aa6245da95798777ce60a7396528c402ba9f884857444c14dcb0a1b5b87833229a2097ddbf83089346074c555d69a3b8c72287b31cfede717a15be5681ec384201de4b4dfa7862000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -c82f082586d4e512568eac540269d9f0b3f44f1acf7308640532c93f04ebbf656663c87005477b9a32242c47f769f7379f56329b4e8f7603421fb591e501e6e095fa5d3eb94df1f87815c8cbb359943cd23233e2d845961829781a863c33de0b6dbb754000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 4a893fd44907aa2c3cbbee27e1c3a5064c3b05316acbe23aaa6b413867c85e3da702a25a7f63b8c880d2611949ccaafb5fb62cf71ac961310ffc8baa6c929ef58738ab5045ccdae9b281f1974a9680e124311c1de4160a3859a332f45417613fd8c8134000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1b21de02e0d0827df44b23604af7594a7c14dffc0ac43abf0d886ff4a24a0b0f3610366f5ed0becdcf68d266592474934f243c3a09ccbc3152b0274d422e9c29ffbab5c2eeaa8200ff98dee295b552a7c823cfae391209bf4cc1eb8e021e8984f943abf8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 6baacd8f9b961f37b77a77d3b78ba19697fe49ad4c3be55160682417d6077f8f784692c003ca5d00ecd33e2d395aafe45f261405ffe2450409cdc9b31be03d56ba4c29c2c762a1e82aded3d9b4f734e6d87f0ea8a71af5739245f8466e6004bdb969f88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1827a65803974cafbbe7e9096500ed68b7384a73a3ed589068dcceb5b7237e90b29bd6e6c8b71f642517a996f6a44b96fe8fe5823b09d8ab42a91fd9f2b2e6b52b7a7b047860f8ccf440c7c1f15314176cf32112d3344ab6f4a51b792b46419107b8a1f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -40d2ae9e146211550ac9d8eb7452bdd6c2af764274154c0bd218c7af79db3edb250105538c0a91aa4996be9f28cf135eb75a7551fe80b2ad616cd9cf4d8c2325363f3025549f1fabe9ee5f1c1faa1545b01800f5ca2241985ffb29576d2a1761300832c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3d6fecd381b02ec5964e3ff5622f141e76bdaa365f661cff9c4ed8667fb5df6939c418aac64e45fb92bcbc81fac60c901d0f54ae5ab97b1323de87de13dec179d9535ca7dc02cfe19165de919a61913ed4d2cdaf6b273532c02fecd64625f3f24947e61e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2815dab571ab9e5105e4f155ac4515bd9cadace83520a699ccb1ea007eba588c25e8263416b2ba3bc11584c9df75d353a661ad3b5b4174e8649a142debe2123bab65adde6d163b1e91e2b569ee1acf470e9a9764eaf2e0c7dc3cc26652016a74061ee2620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -63767e6cbca76566059a5635257695cc885ec41d0ae06bb32a7a830e5990e59b946f89c158d0e7405d014b5d0b39dc727bb039c2ed49c822d95ef1e3fe144c9fb26546c075167885f79dd02b999502db28fd654f5186d4049ece73d1ad463cda9f051f7c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 9550b35017bf73abf5ef3bee12c31405706507a1618fc1c30b3fcbefadcb336d24b093990c69a9a5a3596d0726987d9b719be25e5f1bfc053620392d4aa68e634893a0354b3363253293b5fe8de1d686cf336f95e2a27beee0114f115e4179e00c0c48380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2c1549c36bbb6d17d58fc75116c5dabe06aad745da37f77edd9fbfdfa7b83fd679c7b2784508a56725d7b23e92df80c514d6e8323dff2f3cd766879a8552f012239fabca8db4477656526bf365a28d54f0547062842a9adc6f1208bf5e8d483925d7089380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 241f0a73e3c4535771f6d300636280c44a6c3187bc56599e42c5b7bcad11656be46ccd5a45743752fab7919d41c483995217f0c486b49bfdeb4b351568070c517a6a4309d2814a5613f1a390a21c4a4b714acb26e2e6a9b82cca2ed248b27b6b2d63015500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -ac51bb5fcea7a2cece919a2b6cd128324b8731d67e911e2bb1bdeaf4357b3d0bba6d761c72dc74b6d03aa1185730115ef36907a9001f139390290ecc5fa9e5b600f23ab9aa090467ce686e6e344eec5163b67f7874218ecce2921f6f13479223b90d792300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -9b42a76b8d607219b208303e0ab7fbda3e9d57392659e35c22ad3efadf12e5ae9d3da407466abea031bf390346d52814f7743e7c9639e51496b2a04c4db7a78a3fa78babd374b2809c443aa5db8951040a53e16ba7e9d8958b19e76dd7484c71f102adfe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 14455bcd859bdb2f2669e8845731b148ffae15ace680990c9b1ed6b7df08cfa1565fef003034278188f2c0476bb455582ebf71e2897fe339a8598977f7c1a8ed8146da608ee51e50569b6645d32365186a94ae4ab2b84ee86a4415f3d4099e6e8009365e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 7278d021b9990f34730a69ff74d6fd42c516325429ee995ba4c9eb2f9994e7caea70bf35c90225bf598849c77300f59a3cb72d472cfc00e7f5c05a42609c1b3dc81f895ac07e062057e61349d85cd1682e6bcee197607f0c3828a1ada4d5d34d5e9247dc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2b58b20f6e868514fba7c2ea38955cb9a434c9b65ac173f2333cd9de736258c1f172cb90b037bc781421d0e0f4e03c18b4cc7d572e26f49f4731d0e35fc60d1fe2fa33ddfcd2fed53cc1d4360e278eecb7f1a190094cd8c58bc1d4aa3eda09447e8848c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 9f18f0984870e1f06ff505f4d3c817bb71c6347cdb77659e11961ea943aa82a18c7fcaef20965c12a510db349f02f4ccccf701b6ba022675d2922e5863160852f9467d1f8f7fb3411379c5ae92b8411a1d33fb751faaf012c3878bc5e952ef4f3d540c69000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -24591f36263a047e63e9407931a0e0d5c3639fd6d363a3cd563e948e7d86905e20a360c89565d193b0e0134f9ae57d92a511ee47dcad40a3b70c7d5dd063efb58ca04b0c48a32d8508e0db79d0f88565e16422308f6dae93ee5bc74d38bb06d52f02a1c40800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -b2bd6a29e62b438e37a313cc688f8bf4f021b101620dab239f68577c75ad531d6dcd83d395c1060fbe63666f5faaf1bc86f431cf74a064a6cb7a245c21e65c3d10481c7e2a73743333220899d6084dca7de98d3fa0dbaf28bd65093d474fd0d713fe97ea800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = f9002fc1495b75fc737f260f72a578901eda7fe42590cce518e2f0cdeac5c263774e35b1f5323dc96ee376c65e8fd2b13a8dfb73416fa0c79b4333ed0b9f539eeebc8a727aa5f46f76aa33f49bf664853a4e0c14bef19ca7cb7737edc560a3c3c64bd7d5a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -303a9c25bbe671ae82b2d22d4986c66fa24410bf5821c5a42f68e6448d634a53ec02898970e6765dc523297100e13c39a5b82ecbfea974d47eb3dc4c57d629c76ab1dcda79ceb91d64633a5291789a9a46db67e34e900cfcf8943a6c3b583d6c75a039034000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -316c0a67cbbe90d211a29f89298d739a62e56c12afb82a7c70f10e60c1ef798b8591e46fe099a7dc111616ccc8453b743fccec10602c15be98de04cbfd44e2a40c6b4ba25aec7610ddf8f4ca154de0e34640cb3542b10932cfa76f13df0e2038707eb1112c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = b143caa2c95fb2b3053207a7a6eeab2e450a6ea81ce7e7c90e2b110419b0462031a4404bc76e5f74f266c0d3e11901cf763877282536026421b80062631ba81dc7f7149084d27f975368f9072eb6e22e87fcb88f521e12166b5e04a1b1c0686841f847f20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = e3399f452e38f640c8cb7141608b26bbd2a37bdba335c93ef3b3682c59b793b763718dc5235f395285c16220b867ae3922ec0662e45fa97b636c348b78d87f72dfec4e2a0cfb9217b75d51459d506e5f79a8b96ad67f0f7d19c8100f152926be274ff08840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = a7f72c3d1fd9bf95fbd88ea9fdeb33f154364ea9749def1d2e756d60737f7608ba1c052d700bcf7bda2d62a0f2bdfb878ddb30b0bb5c8b4fc3c659c39eda3a7f5ef5024e78d5912995691e8e76bc9385bf01430b5ef7f0e6d864b7c6cc04e49b4f5119b19c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -108d2613ad737d4777012c0695576c50cad9939021a86ee0828d2d63eea1cadc8b611b3df9567066556974b7876a45c1506f0b0e6208f5ae40a4b2cebd9f4684cd68ca62dc3a689cd948222c1a1cd1c94ded0f547b7f4df4d7750f1189edc9b6d2b53dd9848000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1e05b1530d8bf7c2defc9e7e7629a930620ecda096f0e4d4d143d6cb309f7533fee6cef27f01ab528fadf155e765bccbb6ded36160d86af98823ce8af95053a1b31c9e618280ae4907392ae961d6bf334c543f951714249b343fd6dedfff3336b3a1f05b9f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -8287c6d78fc850948a8b859d82a952e7fa5105e5017f4b03dabe676179b35840c0bc46feaa5deaaba3762269daf1a1fc5f7dfd940c4758987386bc1adb248b71619da4983895dc9a4bb360679cc5c588f924f6bd9aa68e5f19946f42cddff71effe0ba42c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -dcfcfc2895cea9933f44155ac194cd08c758f1d782db2bfe2e735422a9fc1eb20cbdbbef2a53f338d7ceeca0602b97ee37979c352a265814afc080456958806b2af6bc57e0ad438d540a8242c70b363fe1b00092f408f4420c7bf71ef3239e7988854c35170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1e47a407be0f7169fce6759446b0f493ec70e7092b750a067d1587bac5a97672d483f22a2202007764217f4d483e573f80e63cdd8e990dfc48edd60ede270027668a37a53352c4445fdb845238a4fbcd72fd269f091c34e712e5ebdb94ff2e253a5cc5230fa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 292ac25244b0f53b51ec7c2f35668c01ceecd26a90f5664e2cf6f80ced3a8a522e08989ec752b27c8fb5a2d11c6885ea34d05fbfc81a75f01b3eeb64a8274d39f31a14effd62078e79b80e288f7e03cbf0814ace3d1e44eeb4853867d42bfc887bcf883dd2a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = a66488b2ad4a58c69008db1d7e1c3167f48929c3e389ca3e0df34746e3b7f386497b53ced76fe64e58705f9b28885c84be9fe88242d9197f7e195d008df59393cf0bc016cd28d07a90f0c4a8ac509969557c3cb97f1d04a17ace5f2057f5f8731f688facaac0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -c9b91dae70b1bd2a897ce98daf6ad404b1ca7c813ac24ce8e2603eba99cb50a993198e582797d6f573ad5e8904a60e3ed353384069674f0993cd85247f0d58de7622b38d894bbc71d137d04bb7f093ec5358b1e997fc116477b18d18a9695990d0b87c3e8b80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -12c5391b1713cef8efb49d7012c9413ffb9675c51ef0cacf4e54a00975e6e99b87d7519eb3aff4d492a2955dc9c8b85fe35200dbdca2a9ed3dbd9537feb64aea465d1ae521c384086864bf0319e3a67f27740826e50f04f458b9cc3fa3acce84fa1c928496200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 32d1bf67427c0203ea32dcba2418476b090ac77f152fca97c24a4042c38f67c22dd8ca138a10714cc26112fb090ba57830257621cc404d4a72bb2c410977345c1f2d13d3063f293e0ceac3a272ecf1ce2ca46683e4038b0c94786385df861637b7af569104780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -b8a33bd840c1c9f71b8cc0f6d70dbced1355f94b82ea7ccfcb40ed37674325f1443154bbd9b5e7eb468b0615750ee57cb6d413a3b46c7e3601719f9bc9b09808466811f58f5d805965e3eaa2b1789c9f2b85583fc024a9babd9cb582d84f7bf0548501c1d7600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -f7c14cac82410d704a8e393ed7675df852ba5ef876606236416787d59c2ac2f2015ef864bfc4a50950e7590e812506a61b64a620b8db13bba1f1c462a69edfc043102bc1e1d4b6cd0b98642602fd6b4a2198397fc64c6559de897474502ee0aa82153e47cdd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = cb79e6c821a3eb0caf4b9c81984b7cb1bcc3c5f27cfec1620e668b7e3b852b8e41a592592b24364a088efa303289220b8727cecf418de1ee6f6c27ab0c5595417ca4c0f06edb0195e4aebab5f377869a1bd6b1de5a02566f21bcd9903a6344ffd0791e7f0f600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 546d24303f14e36e51b6277d5177d38c82df3f2a085ed5c477ea335a3aadef96281362ca40df1a13e3c0769d24485ae1e94264af546071cffb6fcd815403f8083bf079a8b1c7322cd45a83dbaaee0ce64a7067becfc9c0ebb0be660777af4f4c9f076a5c46200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 5d792063f8750453b7bd95919505f1f7249aa7cdfa73adb35fbd790172643cd70a7164167ec3cb7a2347012d88bf3de5138e0dfe1a14df2f8b5d44cacc7bd07daf1c75b5d482f5a89b6718069e2982afb6dfbcbdb290312f8d5f5034561ef4945a43aa409dd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2779bbe6064a68c056c9147eb8f5e35cc4486df2c773d391356f0b5bb98eb2528388db7213c2cc0b1de3a0df94ace76dae5f07a3b7ef1141893994aaab9648277a80f4beea60a5a43d85bab5097a587256a47ba4debd41971dfb306989d343696da0e2efdf9400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2d09c701cc3599040b108a5467287a92982450edbd8fba18c57e8d067f2965cc5b6928057bf54f7c2bc340401e7438af82cc150711ad056a89f50a6b2a868a2b3f8c709adc67d007bdac07a8566b13ae805295bdc71dda99eeda422216e04c149abf7a57165b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3d6f585d85d68f31bba0fdf03d43b609d0781e064a04d2360b73100ec2fcd81637b8c1b47355c53d4d8bc022c72d2d0c7eec6a5dcec18e596e687f7b7e37704339d0a9de4bd7b88ec635326e87b555a8973d80ffa9f753bb5875ded595cfaec781aafcdc4018000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = f0d6bf3b9d5e925cf8ba2f1a6d1fb5280610459229a5344e3105d9b0c97c23a0947699969a19fb443fb2fcd9496024539bfbe428638ad739a82022b36b9947047e343876bd29705fc614813d1000c9bf575a2b6f1563749c2be57498fdf2a3f04ee09c3c7599000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -39cd23197ca389b3d97abc764cfe722a5efecccedb0081d3f6b1b093d6586928d7cd7aa709604b4bd3bb9b8f0fbd78f8297bd4b1a82ee91481f6f2c2701cbb81ef8e2fcac9ee2c3e2138bacc1198fad91d1e655f4450940d71ccef3d7e220a8529769782baa2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2a5a1d307dc1802b8c100d5f3a744798ced9ec8f1aa5996386c8133a7ebccdabffa4c747e41b7732cbbad4b4440827e6b4114b585303839b2e37e57b4236b8965c2ebbf30f53a289b935c86e1ae6f26673a1e06d16470d62ce5504f385eadd258ac129335aa6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 27d309bd2065de0ad84cefa4bfdf0cde6e9677ee9dab8e185c06815ebb9167f2bc1d7306afb916293d12d077dc801a6f2de541c2212f01645b6ba23b145bb8c3716c6dbbd4666fa8c9ba47687da2b0f9fc6d68ac3ff41fa9fc8009e8f481c011c1299ada90842000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -47a155dba7a48d4bc07511d43aea7f21186ef9cde5a505a53a6d19b7475b05a4f6220b2d018143e82207117693643be117aa0267d4d5ee370bcd05e7f9d8006e7feb9db80d716356840edbfb7c98e2e21f04deb1c6cb5fe8afa02b2e6f7c859cefc29d2239e8c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = c006c6bfbe4cb7e98bd98467d59824323a7fd67cf5bac0e365dc1d752955ad1ee00ec610e9e5a726c672e6b08221a49fd966de9364e4afa10d8abb42ef310415a6729cf0ae084861fbe7e0cec5e73662fcbf7be72396194fd784887c2c46b11c5ef08ca660974000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1be9a30ef137efbddcfe98e216d66dae4fd854ed95de5750edaafee2fa55eaea74f347b6c544c407511059e8a0642303e9e42d3989d26620c1baf4099d8c1f8412aa49a3268353503b912b68dc49ec04abc2f12d329a12a778b472d0642b30c407ed3bf84193f8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 145351af348641c30321854e83f0a8bd8203b6c5e337aca47fd3a0bef85f5f4c905c13b4eaedafc5349319616ebde6ff49c49bb00ea6fac55fb883831c03699bc2726d9605e108f2037b1d7d9b51983115b45bb793fa2cc001f98746d923848d89b93ec93d1778000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 7de115d59ee283ee0744a11f58fbb46bad7219be452738dc4ce4b2f5922d27d862ad9125641e042465ce2f0edffeed923175babecb97727522feba2ee9a0e85b1f3d2d676baefd09113ae7ac3d459f48df4681837235c082d837ddb24fea0b8d2130e6a23674e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -75a05703dc00042ccebc5c221b7c827561eb30b866670a68eccd5eb782d2e23c5a8247d235d4550085c61fef51a26d6b3faf36876aa728864a4fba6a6ce48141e614d506a3461e57efd9aea708ca21006a1f97d5e280b5f0bea6ca85eacc14f074512d6d44d300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -33673f6487695a596dde400e28f61d692a464592004b7b0125b2e14858ba92cb44e99f4e5e8750853da0fd714d73034e3c2a813ec16a76412aa2b61232d4e6955642a853b120d04725b730d853d9db40cf721a3738458960d98d0a896276243639880723170e5a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -12da5d15fab87d1bd39875c099e8a4dd87204195d787ab0bfe47fb39af46e3a71504e3a6c1ead891066e2f7587f021657964141fd218e147f34608404fbb5b58935287485a5e2ef76b4afa22c45bfa3de3d47af6589dc2276e6cc14647742596550a3f6529fe2e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = b9673e319d9a47b0beac9e781f87a4336502b4ce71147e955fd4d22ef664b963ce2fb2ba480faa45e8ab65967767cb011b03d1312515f2d9810e5542e4cb6e541b866a1a226d068e490e4d7d2cd8a5eae6d13c4c0dfcec696cb2a5728c0726ed682e03ee9784040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 6add53fe3f30b30c656844f7289209822eb04fa7fdcc3774f6ce5729021c8e4a4b4bf59326d35765a5f9fb22438b163cae61b218d9277ee048751859e0c32fee1ee6312f19c41630ce5cbac97d0d72f8b2bac796a59df56895cb8e7f0462e7e07b85dafc6d937c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2b62cf6c6346350bceaab2ee3c30da733ad4c9be74a93ee12c12bad23a87a95975f5a4b06a3f1617ac4447e87c016062e1dfd0f6934562abe458fcf5daf99b19f8e2d74f9f1fb76ebcf002cfc9efa729d42b623cd3e9a85bbd2248dbbc401e6e108e94760a4e5780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 14d318cd7fbb31e6b6d5c34b7deed20db517febf073ed9ac52755c0a0c41b689c44974ce2a332db390f9a725792fbf3c101d15aad4523565834c8c8965293b26b991b181f7db74f5ca4803fe0b7db069e811a52a81dc4273f71f52bac04f2062e0eecb249a558a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -e18da8114aea706a97e718f71821a10d9bfc5205092e840a46ec257a6fcab4aae5b573d89716919abfb8d153a0e28d5c5d4555c5621d8616f07c9e8eed27e8db87b83818fbe6b971b5cd9fb13a66377a1d57486fdbcb564868251c5cea0de98ce1cd9a9ddfdded00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 88308b59a75180c5f57f4d5f113fee356eeac5294178ba9f7c172e16ceeb05b19f6fa15a1ad30ecb954d7451cf1772a6887b2279effd9414e0c25b2871bd92416b0cd5eae0bbf38de38e1f195806a236f257431d8249e5d3c81d559bfb5e795cef3d7308d4663700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1caa7db6d78c4124636a5942106d71d0319a0ffde27017b91d6957b148f53a76db77a6edc5cd24b2b3464f1bb84541e52f353dd2ad75255b42357484e3c37b2470336186a890340d2496011ca52fe6f8017d9b503e113c20a403ce6f7e23cd53e55520b11aa8aca00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 18dfd6cfcbaaada22d22a3fe9f04cc1c5519f6882813274850dff2b7ad14413e72ff4a5b4ab11d0cd75301a8032eb430ba3a047525df31b6a992c0b75dc0ab11776fee52c87547d8767d947acedf4deb693ad8a0dd540741a61d5e66f0c0e837c244b93ee7fc4b200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -ab8051eace0993c123a519a66806d70571e035136dd4e69c292860aa13767ed5fd490f5fdc498db5c71588688d13a91b9eca9a9e3b80b64848ef34310612d134d1c1c0b7a8127cf84fbeeca99d31f2f5923e737b108289087eca01abc60d1e731c8cdabf2a9e7ac00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 52938400b0726f3899cba4ed20ad5fb861efdf9c5d87d8aa2023e62e6dddaddcaa0b0ac6f0be2590301a70be0e8e54de82e56e75f67b11518692acdb59eb981d89fb5e044980ba1711c99996a0813995a55ea4323bcf648d6baa81c8f9ff269dc0a26f0a0cc366400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2cc0652b3f9711e848d6cbb20553edc1369aa0c89ca637429f13fd0fd4b8545c3d98f40fe74870c3813b62b2acd54f2c8f6c887091e63a76ad00dae646c0de2efa6afad39e95eceda666640955d3dbe19673177da2ba149652a7530383c4f3b3a031f99242b2599800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -8a4b175b197b70fcfec3f5a850b8268147c9570ff6fd8977f890fd69b90d054fd7d81b0d48cdd83cb38f0f6be753784534eb214c97f7d0358e5b6fd6f59d1fb1d8939faf310aa27ab857bc66fa7c91e50f4cd378a9a156cf82dcd9b6e74c154b99237f69bebfeb800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 5ac0f80b9981ba109dc14caa5c40e98fa2b07250624d97028a6c721f4eefdb8dee96205b5745794db4412ed2f0816453e338c60e63c94d18c09d1920813847c356e8ed706d716181427d9dae20d9154ff0c41f3d66aa5e6ca59d98bdc8ee7710d1fca138388f717000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 9814ecb2d488f8231ff577eddd9d4e55fc882f35b93509141256dbf950ca6116ef49660ec9978dd1faba92707243a627bdedc925208cd41a2c9b7cce735d88aa4a972b81b662151e172be1a16496be4c763d335d85b1351639a63a40914e020933ed7051ff71265000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3547864209d307f3c9a833236458d9ed9bacf51a171c0b9fbeeb43d7f54893ecbba9f513115e1cf60926e2c7de5b8c3aa6f2868b2bc8a1c8dd34e132e2bb7d44adeef1cf70e5be8d6d6db2e04a239baf0ece95bd6d3e7d2ffaffe9dd82906106684376aa78161556000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = a3dec3f7f6364d2cb70428ec1ff48e95b8d7973474db52a57ad8e02600a29dcf5b41836487bc6ef51b8d521ffabbf2a337fc54a4d576772bb811f83e66dc64ae7cbac70bb0325a20bf0b60775de98f5ba39ba959ffadee8504e8153130b87d4c523e9dcecee2bb4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 32fa3295c80590c5ec9621838936a1832fbe42ceaefeb789813875c0e071eb377593215f82c114b1d897196f7a0c79ab07d9aa2f210e44f976e5b38149ef3ac2d1cf4fe23f101b90a7c502586fc2a676ca0555889f684a25243ace84993854311e898783f27288a8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -eae220e96ca097be7d9201bdaeb8b2fc5585ad437f64b7296a95e6835d87c0df948c60992571a6b2d089b7ea6131567e550d951885645abe15f37e2f275a5b4ecc9280b23e0983e4d6d7055e4449980381b49bd1f7d6885a7a146e6e0b1de735d0e9d97022589234000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -a016c846c1de41b3999409d824c52e7e2b1b24adfb498dbe48715d3bf29a88a39ff9097f573cf2d62f0f4c05d03935cd791ff87cf34edbb7161553c2fdfb5b34c0505d22a3094acae35213b0eefd3b258af8055b9af2f453e176c1cb9dce7580b9f7629b42f06408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -24a4475f77bdce9c53145bf6d5b982d1e7d9156650c9b9a1d29f93bdb06ab1a9182d839695f7169116776d2bc568a2c5c94de6cd2d8f685166bc9075a1f143e2807545b303086485ce44e87fda55bb4f38e8dd0e2d9e33744a58438cbc2ff86b8347e8f73476c478000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -668a14ead996a59001795556417da97b26b23fb26f1284b1cc1bcd378ec623fbf083b8fd5404a7db64bffcfe667ddfb15c56335eee67e0d6b8d6d6002bc953a7b28dc8a2031cfbdcf94e2e0856b6600bba878cb80fee4ffcab79080f48f6fedc99b9a2158df0de0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = f484d8d9a8c9e0ba06264a2673264b2d18e5463b5f3e094973806d175a9ed45e4c217e3831c63b7c44134ec9270d2f75802f9cde92cbc9a0f0a03b35720002c0e09b7ef4d473d95b224d08cd6e5b7b2a3815d877e35b4d136190f51100d9484ee6355af486bdcbf20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -172de6d9e654c55e04537bec828572b7e92ff0015adf2d872be9ab8fa527f720fa2b88f76ae4c69ff76eb9771153803c7871716c6806cca5c53359e91bfb75d7aa7d086b2a921d8823190efff01a1ba28d5ddc0b4de51c8e3202b7e181f28990468b2328318a8ee2c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 5bca21e9aa0894b59f787c05e91280db0cf282f038aadf9505290cb71ece7882ac3a380285f93e6b68b54cc7e5db94a426729ddcbbd65f6f152fc8f2f82420fcf575dcccfb148e1d3b6bbd303ce2dfa49fc61b01f63c3b10244e53ab4f89b502313234516c13ef7c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = a76a577c63bd8c9b280b8687e5b47b630574654d62b7848e154751dcac02c0091589610181ae6a2e7ea41c829ddc3dc0caf85e23e61870bed55c06e9f23db913b0ae67d9db84305027e25ceeca410ef6bae40ea38719c55005f8eb5fae95e2dd57f9182796d6d734c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -6804e6939eecc434606dca268593675ef8d0ba1521cd67e7d91da8b5ec595aa7bb7d3d62d3ea1c24798dd624e36012a3bb09f3b01077411399bb22a7a4b8c3894f6e797504243837f1061f96a37c9a2a1ad447a041a5d82a35d28e9ff171752a5000c9b6bd70860340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -20928e92514f46adcf6e611946a0493f31fa73476a0ee17cb3a0035bf1b9089ed1c9aebfb750b35deda1f3fa531e1da0cd016cb6d73f8f5af19296a5925e5e0856cd229ce3a740879188278285f407ac37e224355eb7909ec7337c125ca4b6265a3643acdf738916e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2cd54b06bc1097ffbf7ad9f02559b94ab5d37ab061ac04202faa50af55f05fedec498783736bd4094057f33029203d101636f67e801e258628ebb8d24b4d8f73793a17568b957925168c45c342ac679507ea3e89fb7a617f58f74507c064cf372dbf6ebb6e96d48e600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = bffe439d2ddb42d5b241f3d0ebc715f5a8ca911237cf7f7b678b43228c3c81ba5687b40f5611ba878a46f8f678e2b1a8f011768a7d2028288f737f76c8a1863727ccb9e45c876af48f8cf2c51980e186eade3c1ed19807566693bca23114625a6a888a1cd71feba1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 5846cbf786cabe9ae1b79fa9b34c3afdf3eadd45cf60beb3fe1459c2d2a73ba5864fbb7a71fb42e5c701565e316eb3c50eaacdaf0f60fc7a4a8d27dd25e907c23a7555ece41ae8667cb9aea1c5b6ac6aacd5ab04ff996e2e23215e08d67225424af8fc9f7008c0aa500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 329c281ab4180d5b6bc161eed74ec03a993a1504195534d9d2b3111b003a3827b2e41a1b85037ab5b5e758a8a15e7bfab73964b4f285b90d43b669e88611cf98b206abb6f2e2b77f6e7640e00cef21c8e8952dd28a94698711c55682384a4c43e33348983fdd0a136600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 303e951d6231284b173d5f99a397941d46f1f84a9f8bb94c39f34a64e90fb480894e957e10a689d9b57a52bf2b151dc5dccdfd262ef21568c6b21e612855c043a848cf7e54be7dd666cad98b5dab49f14acbd9e6f53a759e4b5d8f520fb8c002f3c80eb7f3b7f1d4f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -fd7444b417ca029184c080a97da0e36e1fa574d4464816ab2f1d35c92e1fd3d1fcc6b5457390c4f7a3ed72773cc97ee1512aa0ef531193e0c32ca440570d4f6e0345dbbc8ada8642336d8e680a97924e1a0abf78b29e4e69d39cd9e8a71dc51eaf3f73d1be529551e800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = f9c349227e2ff77cc87c849a2d8d488901f2b9d0c41ea69d594f15d93c05e55a48a4b2beb3fe9825668e3868cad2bd850f10dfa593fc32bfd8ab2b60abf081dd5f6ee245b2dff6c52b0faa8e192221e395b308bf3674d7e6650279861cb674d253111d1c54053a9cec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 19420a3292590cb896ef68a80ca089348ae2f1d6b731b7dacc22a6c2d9a9c86ff44d2e55470113b3f4bba3c3a2d5bf57b6120cd16e2ed1fe42d1cb2a7cff8753e89dd99c27df197e71678f9b81e066f00a033706aff0c13ea9f6da90bd64af70d320af4f09b0a5a3dd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 38cecc011fc23e46d8add2c8e92930d804f8692487763b54bc9848b7833af1b76156ee9832ab2006a3b52a5c981d48b697dc7b1fbcf5697edfd883d2cc89e34ebb41e34c4ec358afcbd9c5625231db7648c25923886f97407021cef0d39a41f97721a1b87c9a9a24cc800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 8d824db8f2968f3c0999036ad1923da35899b24af620413dd77e0c9097f7c5da140ad2761a31fa0725c17b10e21966a7e9a68648602e3342b5169b2ebe0515798e7465737dab081e8a43d32d971368f43f0640eaa3f141e578c942b676306afc559f54e0dcb22da931000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = bfce8af7080132ed18a5068dacbecde603fbf6a4b8067e41d73c42cc88562737ea9cf4bc7868e99b06cec5d1587e57804552089fa2a395e242cc47d4130feb3ae256b8f91b511bc868cd8f359eee97513aae1057afbffea12d6c40cd041b8bc9ecbe820af053961965000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -380c82a166d52a647c3e02eddbf495ac62bfc4a7189e11eca51c5e4cf6d2bc8bcbd7b0601c0bdeb4bcfc46637246824abe4b7c2072dff9a75be98983c53f4a658bd9b987497bae6e81c6602623e98d091fa2eb85fa507bc7dd3a019b579fb2f3bd9b8ac54247767cc70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = fccd7b313df02df309b9613228726ec664ea3cd382c2eae49dcc3e867973731328d880b686b643a4b52574812016f53564a6aad49aa315b6da3dcf6e9859580e7bdac40781101cdec50b4d20091beabba0d15c6fda0d1b5df53bb4c937bdcc1647704b81f15ad66d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -8222f0be1808e2ac508cd3f424fb27ee2c29a3d190daf5aa01faa8465a15f216cf5bbe43907171f6bf28df1a82987f95a993723829735b2a078ddf50c3e732eab14259f5694525166a651e2f8fabbfcdb063dff5dcc4c5f6a3d42cfd177188d9bc70932614fe17ae7d4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 9f8e21a537eb7794ceb3116394ce73370ce5882bc7408cce85fdb0baf2600875de667182db9ff0485a284df51299cc1b2b2cb02dbc9f886de478f6fd9f35ce26690f6ed9019a763e43cdffdeded768c56af35edfb4443548201c7c18a2ec7a81bfc19629b6081af1d54000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2dcf1833dc448a8b40ec5ef445bd985155bb85b03e03bf40c9eaf48eba8acd3c33efd4cbc8e42065b77b68a871d3c6249325d976810de86105b8ab0bb41163a57221af58ead9d42ddfa22cee4386c1acca48f1d2d384e3fe3493f79ba3b6c6a4a2cc48ae6de3c4e98038000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 6eb6239c6351dbfe3c1427a949e6f993cde006191b9e66e61f57a2155df3127060ab08077f65bfdc5660e38548bbc096ed1ff9f10e1e1a461b3b4cef624952cb80b27761f70b2dc9b4aeb7d2cc4735c240863dffd1720afe2ad3903c1108f84b7e2acde57adb6f100d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 28000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 6e04a51bcd931dd4e5f0bd32483fbc6bd040fb0877158846e3f80dd4d6ed660dcae2f421f3bb873f7a8f44a1e32304d73f6455dac7c01b9b41f84e5aba565e445c638365d98e19c178e30a3800b2991dd165b12830cd03743775f3faa23995c5bc2913e89b1b8db4ef80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -5021f02f3e22aad67c30b249bed4b68e8c041a89ffa1c257ecf7987d3bf1fb509f0747696de11c03a374314f37536f1bd497495b3780860d53fab9b214d7f1c31a8ad9beffb76621c47a99a2fa69f1a493796b6bd1a7d38484d4d81f1cbd0fad78016249d1a31159dde0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = c31f2bc319a9229f7a0f79ad99c1210073d695d2dcd5a12af981bbf5a4ae7bd971c1621ff2176e05a3d7f1270fee4398ac23d0c0c4510e12ed74a18cd46b01cb3b3c8b5d00280f632f46127c228b139c6fb1a95faad99a0d63fec546804d4a55c984c97c67dd0fe3f9c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 390de50d178c7823203c08d0ac188087815bd0aab5304a186c56096e53e937adc05053eeedfd234bc6163e35b4064d44c55d1743bd4bafe4f3e7107262627d8490ac73f21b4d8f3c45f9d7670642e59c35fcff53e397eb51a59f67b95f97f8e1a7704da1acd516886a060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = ee26ab8f1fd546cafaebe1914b75d113775ef4fa553fec3d605ddeecde0aeb474755473de54cceca8167a1757a353ad64932a399a5d1d0849c27cc79018ddc6607f331610bba7bbce7231f3b3e37e2436e88683f331180cba53ed374bdec448fa8f2b5814ae8d9f8d0640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -e92a0d5646cc9fd5e569404a3eb9d8eecad65b164c76285f01e1f1f58db57e70cb5dad5007adfdbbfcf0b9dbdbc1be57a316505d031861af02c5721ce6a327e6153b775d45b0a645993c7559a904904df8149b0e60a0dcde2ec076bfd6108c7c7f48cbc57b105ba15ba40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = cc15e46f7b6f80a3d2b7e89d952273d5fbd6667a29b03bc0448de2919d02a240f119209955eba18de15c4a782eca3d5c774cbeea0f4e911d17c112c10de205f97429767291a2d9343976ffd227050591bfdc7eeb91582d11305c850922fd5ad233a70aea146101fa74380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3d848e9c67ada490412f266ab542d6576ffeaf367f7e4071efb23f868d06d3b1248277f0e976c042a54a9d82b066277f5018f1849bdf49ab65e81d15b8d9d18a584ed9e108e084fdfadaed81d402dd87c469f41eb7dcdd7f770ec0fdaff1b3ce3c1463800d85680d06e500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = b80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1841c1f36aca21c5969fef4625e95666c8b763c857846449f4215b7427cf0c0a329379851d9dd5c7fd198e3ab74b3af54094de58869556a46f46f1f936fbf0b8d0e8ead13f0b0c66a8519e3cacb4298983d995ffbe6e2ba06c0c47f8c4915e22b6021fefb5da57256dd600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 6e6117fabe798f550b4ac89098f1ef357dc8a737bd25cac0ae130800e2d3aed1346b588aebf43ae66d81edfc04ab820f48d63242b1b976de120192b411608fd4297d7a55037eb6a3ff81008c2825e3eb72e9e78a24f8965642464f6b4e5c75e36755c74dd6ae0f5736ce00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 33ea18caa8a278b8a7404063353cd63639f5bbb0e5f8c55ffa565fb6472844cb169c04b7a67b64669a5738f3bc12a3d158b049e7621c760fb0c2124974f924373cf65582b47ff4b9996db6e9465d57c36677c5e2eb146fb0325a69921c2e380452d7144573d3e4ae44aa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3c602ca9b35791da9db25c665909f7b3247ccae59cbfe90287ce59d2808e8c7895e2df49f7019c4155e74621d89c4a664476f426ea3e68c79bbd34b7a7cef9038303da48fe06335fddfb522e70aa1e24f16643938d7ac98ed18353c075dfb94d900ca586ddea27395daf800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 870f613097cd2ce78e2de57b31fbee701c084f9936d6fcff509bd844c09e36c28f4e3ae0310e30b19b2b4afe7122b2ce65b1743c14c250181284b081ef07a1f2269c73d7205aa1881346a84b96a8900229cb53b2ff281979a6bc4e60f8771950540ad386c76c17eb382c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -db5013b62872ea05b1c6853473d92aec524dfe7c953fb6f3c8c05ac8bd2d4371b44f176e6ee46f67c5f58c1bcc2a2bdd91b708a80cc988729abf9706340a9fcc5441369bdbc958c981c7a07239662d69682d073d0d5daef1ec7e7b2320954f7daad800971b8f709ddb37c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -34f5259a545cb654d355999222009f6b0ed0db6eca0a4de326ec4a63f65b95f9863f52098553ed2b8fcfcc5f948781cfdb0c274c2bbfc03f2d8c497f08fa776621ec11f8b3a49933e8d6033380ce3903399ff663089ec05b8464c36a17aa641b9200adf074a38726aeadc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 87f377e98f88cf0df8f0635864ceed9abd472c98345b278868af687705fdf54b4908c760b6b65ffe79be336c78821f492937a8b9dee014a6206263dbd661118ffcab03a3a25e3381aec56054c15f11fa6f77a812349e2d3797336dd3decd4aeaa90de160e73bd3e82020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = aed6f4a5c6dec06710bc9b6e659ca8435a97c2b1d47267969d64ea3a21744f7c9f8bf6a39568758eb337627c02f5c7e31593a9c3a2628553a2adbfec1c2d041fbf42b4ff3944fd020cdaf6d321c759c650a33793d3ecc7d7275e610402e42fd4f43a86c008a5f4b235dd7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 57fd9149ed41a46c78b09eccb53e7780aa33e335f5af93b149fae8d3712e3ae9a83c6f29ecb8b4c474981e96f5fd68a03d1c8b7f4610d053035e9cdb156d8d625de94eed3e5dd9f4d0f4b55eabc67a126ba20816f8bc33f3fbd3111993eb0b4f72e79c83d9531f8edd4c1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 13ffbab01385bcfe84bac46b0df763d15685be3055745eb75a98bef405b0eb24104f6376bb9fd844000eb21a5188e2711a6486d96e9f29f13ab757836de854ed12f168777f043b6bccd6d6f10a99157582b2ebc059ce1ea27ce0d29f87aeedfff550f7e13222c6a1cb70da000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2fe8bfc17764dba8cfd936eeae062b5a1bde1ba4f5874d56e99bfaffa183ff47dc8a0f4534b5a74ef0cd74c8ec86da7198efc18468d215524e3260234b98966d256bf5758383c8eaffd581d2eab4a4067b05285ef8da044d0534f92cbb7c8739a0407c70ddaecb2dd92d14000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -b430ae9a33157f41d8d2205a3df0626a86ad2af9c96acf2f5cb7689d88094bcb5784a67b5f8f7dd697ef2ce6b5d29afeda608a239fe65ae2d7893079cf6226195b303c4336d960ef40beba79e2d00f58008e323293d6eb005921ebd7a293d1645e6670a2180caa20f9c14000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 8558ef648d05e77487358a5d99bdda5ad7b22acf7bf0fc407d451ed0699fbc9922e12143e5726a26c0f61e8e7845433aaddca6242dacb62bdbf7360234f9437cf8687becc2f31d72e9d6a5d514e49eec6f97c21dfbbf47244b9a1956478d7ae845bc69c1eef5cc08c90bfc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2f6141d36d2055f8c624af0ebcf0e2ae82a83e804224964c8080b10f3c7c1100745964c5312b84accd6928e8fa1fbc2de76960ed79a1ad4998f3bc78977618603b589f6dc912a1fc58eea7368e31627f9a363ad1a361521070b265901911240153638778a32992fa2dc8880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2b2879547387b9a3001ddf81976442a5ae19e73754b209bb37c5069da4327bb06c5ef5702376ea679c5d7d4d0c751bd592803e0c5bfb39d315d68618f970e58d4db24d220a793472aad694343095dab3ad5bd67b30795e821f10955e7667b8b2c5111e1680e86111ade950000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -6f2a08c662c428615ac99c93ebb2d2996d96d3df1610b9f1d8fb097fb44d57d5107351e2c36f91c24596aba8353bce7c06aab6e67933f5f868f873ac5abf1b139315850e33a1f9edd1ae0c161c9ab52b8a2e6d1f147c575dfa53644163fe03631ae11c69ad4620d5dcdb7b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 95909e4999716d33d190031a08a3fdd9b32d26c411601d6cf017293c37d0dacb7a6578a5470555808b2b0f0ff05261db8ca90c53588aab2733ec89c41612130b4290678afa8fb22d0afcf0cc1337f6db3d37349d3e5eaf85b9aa6236a486561fe31064128c2dfb19e6470b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2b1c0257b5cad3cf7444e7d6a316cebe94799965f22c23fad06ff5336ec2fcb4f31a37fbcadc759e32756eca7475dd7e50f83affdf6b9f1c1c4e2c7a921b49d0ccb681a0716b8d3f463703cbfec47255228cc9760783474f4fd9624e66610cef9f1660a8811d12890ccb7a20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -34cb938b560bc08e7194b32fe8f0a2ccdccab010cc25bbcf44a55e55deb351a0b1fa87715aa9ead09baea17a589727f81c4484e33d59e65ff98363e635cc31f5454490119a07c7a35cef4d6f1992c2f25ac3d836e08f34201429b8a6b7b48d1573015eca79854a54ee73b7e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 6b4ed0d217d3b0961a2dd257a15f2c80071c5d5e8ee7b0c76a4354c6696c10550c170c8938897e8d61bd571bfedb0fdf2551b7735d1c24fe733f3deb867f91ce945b88d88af151a65744bfcecb0844a80674cc6c57b0cb581492d080625a080929b0dd4e79d6768a769a300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -8b44c912fdd8177e662db0845b5fbf9678717630e1a0df6c116106c56d3b0c1ecc2c5be0bc8632dff128dfb7e13a374ca11a6092b3796081929243bde8393c8f095dfd0b9580a75bf615c2287edb6b0d51f2c61ffc2620f116254cf729943035c3554d9ddd93ac41ffd66e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1170d18586114d4f8af92781ed5b4ba0d3d219bf4e2e265295a34d6e28b425969eec3763948e26e216675ef3ae4102d6b4ac58342b18eaae5e92650250a51b6ac3ea4447c746cdb3d6b3427ecfce96e97ced0d3d1d5f36cf8f9d34da00857f729be2275af36dc0bdc694fb200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3cb071f495c93d4cc768e9c19b1ca14340f2444cf72e868c248c84a6f0ee8fb5e70e824bc0f7ef30ab19ac1a7254ae51916ae0fe03dda742d4da21dfe3c763c05cbdd16b93fe1dde42df4381333756d5b458a224ac1fce9510e950c38ad5f9f04861d194c8698389298450f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -b56b14609d058d45a11abe2e256de4170fe6c00d189ed86d9290b41aeddbeb2371be9daab826519b141f02656666b185ad720f015be2454158e4386c9a4e23ffe88008c72578ab91caa35c18e686bed31d6da3d73d34a1c0c142dc12931de569a7ecdf19862fb8444d026a500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = e6c06d71c507ad57f47997818df0dc6725fc19e1b0b0e4a9bfa6431c79737ccba7986d503e644615ef66c061cd2efa1a45b9a58c2deb95d9c13899242adad2c6b880601e4123d712819ecfaeec578b4b6b57ba12f1fb28bd894d481073621050f6614eda533da22bbb4ee5500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1143f7c83d2da5cb41a830c619f22e13a9822c6d146e29ae949bc8098c0c2444dca58c815103e44d8bb1a813fc6b43ecbe60a3740a96672f16717abe0500e01d3ca3472ac989f4de52107a9d1f374939a1c50366be5598bf1e3454355a95a97a5470eb1b1bd088f45dff8f6200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3bc31bcef7da86bffe3201ee14911374be7dbef3e25dcdb584465c051735d325a3a2b7bd6f616b4badbc74f3472411972364cb7dd627ead4282a0e41c5f3be73493b81aed61c3b26b1685c9a12d18736d4556fccd473c5fb5bdcf818a55a603ff58150c55c40a95b4fabde1a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 8b7c2d94907c29a44f711225c57ba1b1e793eae4be78f2536b71f77c85628d00ffe71e3dd872052bfcec4bd0c3fca79696d925c79de35fbb1751fe70b17fb8714d911139142dc65dbc22e1d9b5316c69db7725f5d26d2996948462ae4fa51dab7052e28158ded995ff69e13c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 5882601ff6b14f5632eb45c5fe0a4cb3ffa42a66a2e945555cdeafe79bfac2c8f8f35e5de00c9618a95e393f96af3cbe1bcf14a606c5c1b38a549217bee5ba50414e154c8de27d3adaee2b1dde6b0e6d755b36c889db83926032568b0810149608ac89fcebae99c9a53442f400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -35292784c408a72e8bde974616b78bfd3a86876e024baa386466a9578cc57d210d8be27326e2192eec0c7c85e687f3542e39d3806ed30db6acdc93d58211db96e59fcce9ba12e3448cee1e41c2ff53a9c49bdc2e72ff437168c5529c770def4d7f73aeaf277b57893fb975dd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 30f07c1ad4b6e014b5a26b699ede209cf9671724a63989d691fb9834d5e2e918c94431cc9ba0dc5e2f1beb632dde34b2448f6ece783902e27294d8a12864cd4a651fb2205623a7c853d0861a385744308ec8d1ee027d2e65794163cd1215a50ab2cc6459ff4cad20d089691d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -f68cb72ebec0b73207f6267c0504cbf7de856bfe0f3c985d332d3d2de2ea141b952be33a49ea912281c2103346874109ef62389106dbd495a707a668ae69c4f78bf85658319237f8f46e86019af3142a4a0ab586d3718ba847cbf9e4096588a23daadb40e06f68b678bc92d4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 7df3625febfaf2ec851a0a34d4d5005729e9bb9a1ab8c1dbd1bc7ae40074b27840bf67a92ba00ee0066e73c87f0c07193f5db8d36c3a3f8cb7edfc0e9e3889a8a37535a98635cbcbcd50d09794ec780a78bb417cab95d8df270f973af0d6447e9592b752081a2ab893b2ac99000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1097efc8d5d7c6f2221b4252446188a10ce6e1088ee0d668f465f69e6b48cf9ab838fcc5291ac14435d37e91fff27de80df864344fbcfbabe289b3dcc7bc7a04158e5248ec73ab789869b719b23500715b6b11d4c0d2bcc51dbc7bf8a955b914967c502ca810b8eb50d9cab2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 11b640d55832c9dfbf42f1f40ea6034998d1cf0d4274fcf5892ff1d5fdc7914aa039f4bad9957413060505985a55edbd30d2c8446e4f2ae8bbc0f0ce8f9c4d129d9597f6162040f4b38eeefe6ea7ddda52590a7bcf3d0c0922146e240e5dddcdd1985c7c9d5114e0501e4a28000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -ffb84b75b8f98489774c1f8c5552b98d2c896c444e877a2acdbaf8a11be79fdf3ffa492f9e14c0d9f78bc140c88d86ff7ff40d93cf8778e90fb99bdf320c157a192238dd1f22a1f7cd62ab0fc7fab95c7281ff9d76d2e5a96645a1a22c6b29fb5329ed1ae46bc5cbda97bc480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3efaacd682fecedb625abd6cf82d3a7c7348b2c38667ecdaeb4988bb8384c64fffd9842b4b04a51f841cb839db3067e4449f6bc64cf83d23074160e61236b3e6d705e0b75a24669f031cd81db7390f07d6e87f7b106db719a8dd0bbf1f8290717a512f7a8a5b4e54ef45e8c30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3fa7ead587d431ef4bea7ab9ee6506b0ded4c07713597ff71fc1fdcb8fbaf861dcc74a6cad5b94b308667d6bd69ebba135f4af79cce9c38108f7b8193aa23dc7db9e3070fa6e4225a7679a334d2d7abfaa8596b8fc88b461e5eb20a802e8bef620596fd286e5b4127198603ec0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -58ad3771d974596f172f5a032cc523b663614db0ed4d8ac829b389546606b9c2a6d26ebfb240d86c162e944f8f2e0995419ab72d1390f4051dc282a848f92834e2c8c3b94d3a8636ea6dbb178f60050be8b11eed5d57aa960fd895c6724e7d64ecd6db07dcad5cba8ae7d2e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 22a46669d4fc9ea8b12b7125a3f49bfdc45f1c12993b267a92a3959e129948496e4da2d3f4665a55baf27404b8691f1ad9c2f152abbb407d9ae0ec34d817586adbc0879dc780b5457f2a2763b2e7fdd9342499a9fc6cda37c670d5c7234c62f17921ea32398e21fb8740b24a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3f5117a1530fe19f0c72c3c44cd45dc158ec38a47c4c863ffa8c223a054e47fbff1fefcf39c513b836e52954ae6f1031d8eb9637f5d72efdd84056431c84b386236fad0633042d03a99f1fc5d1a23558b5d31bb213af80db4d5d0b356907e30911d626528d95ace77bf8f21040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -32be7d42ca5a16751894b1c95bc064b1d91e3c154c8a2ad502a66fe953eed1b2bbbf66afb3410d57e8477a8a64ba7d8a363c681fb655d577907bee7010f228da8c6876256c01ecdeb47ada1dc2eda32786b23fa3b2e353a1e13dc1bc3ad66e02e9f06e8fd15a2b53c71f036f280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3715598e36fb3a5cbd8d5569504b88f006ea8580850a6109adee24c91e9441a6543bcf793859588ed1e5a14882c3fd7ec2825bd34ac75055bedc453f71dd27400b2e12058eb4b864b1b70006b7d817bf4de10c7905b865e229b882d81c9f45992cceb270ed4865f4c935e1a6a80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = ce098754f6d29e77038ba195b27698cbf868bdb0f2745359c109de289dfbacc0ad3f205146a548be2a372521e54ffd9d29c1f4670b40ef0c6ac6ffab5f1ad37908ea7025ca03faf31b5a8cdbddefb0cc71abf7eaaf31efd29df30c88ec5fb6c3ab90372b4938d8f32efd1d40e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -d899838bd351f021a5cd047daffd53ca086bdd872573e87079b4fe44b137fac826154986df5da52853cd0746fb8453729e1d46c329895e5202e45f6d9186b987bc13f50e5f6c4fa38371cdb27507a8d7a830cb1cc1c4e933c9974d6f08bbb457a2590d4d65b3bf09d7a3d98dd40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 6dedd208fbc41e34b6ce4816f990d4b13be69248f672acf29c91a5d72003aa9306aa6e388a57d4a4b54efe624a218e0653ca7a46f216fcf0215ac7daa8f6682cbac489877ed49f269e158e7d9d72e36159f0a4a37ea29032a79570686f0bdb19d0ebb6a2eecfaab6b027b1d2780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 706727440c4d4be63ed9baf6c34e771f1dd79eec668804cea01503ac6160d62b422f918405fbc307c48bc62c7fbccaeaf04cea5af7214db2cc34248c29e9f8f1dad5f1ac9df635b354077a7b542aaec51639b6d690f94c95bb7d0947e32b0049b67281c6b747cc82a09504cf80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -cd19e9c7e0b76b1b1735761340a8bbe2940cb9a3f5ac378af497a86f3b91461e322795b2ae5d8798e2f14fce6e2e65791dfa40a43b062b83d48c5e09a0a669faa29470eb07f1ed7634a973a2900aa8e4348056bd83aa7676345f47aa621a809ce1075366afd13e997eda8723dc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -f9081f5447a033076401e29a3f731aa70323bba1673c430b4100de929ae5c4a033ceb9de35d0f71cd7296381315c6a99174664f3c04cc16b554c399484017cf512eb7570b339cd4e17b86e6cb28becf18ea8fe4e91930e247e2981c33fc8cc673605e547650af01db1792c010b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 55685bfc3211c12e90f2cf115a0516539dc2a03fcf8a6e5462e63a86f3762605788c1c59190f94825eff2397bfc1467a917bb4927c318899b1e5e9f73cad67f978069284e3b3bd6e2d1584145ab37e006d0770ea15d836e9f741e9aaaa09ae3d2c569d5869e07d52d833c94d3800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 136f384e7d2dba3847abceaa491a68fc95687e047fad1cc4bce16de4e7c8e09f6d3da84fabfd789ee0409dd90df1a229dc5a8051b420f4fd83cc2b5d6483cae966a2bf6a62e8fcb125932501c2182a9385ac5d28c8f3394e9bfebb8d774ebf3334cd68c1482a67121b41a20cdce00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -b02f6dc8ad99ed080ecdb1c802d8f7abaf01ab37f0a0c281395e445fcf1cc4edf2d6cf5b874b9766af175d3efbbd3f0f49ebd33d80efc5b0d24c0e09bcfdbf8da58d32976278073e3f11348799581bcfc12c3284bba71a06c8e12f27958e33409c426350dc513093923f5e38d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -c3a99e0aae4939aac33aace167d91f2e7db0f7b486c26c95e947cc0bef3dbee74882433fc30bda9084ef795c7f5ed3fc11fee1e5a3ac147be653421eca5f581b41d7b4562c811a4f2cc55e95707ca8a9460a6034f61122d23314bb75efaf3b7435cee2da2e8a50dab14bead790c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2e14e0267631e868e8ad5538b27d6629bf61eb30cad471933c078015645659f479115f91c712e7337821aad89c0304f8b45b47b096a5a2e446a94d8100b266523f6a099c2f3b6052796455341431966551bae368556819b8a83cb4361bd689bacd4d5c6144fc858a1a5f55c203b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2d9a4a7ab6d210cfec39be3c0deca8c6933e60c990f9d9ee764ac8923a3930c1ebf7f67a65daa228474b3737d855595b446a31e480bf61927cdaf22f0995870ab9585ffb7d74b7c659f5dc73f7fd2161ca170e06c917cdecb98e815f310ac00d1a0b0cf49905813f2855fef040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -503eff1eaf2a8c6e37e50939ce2485c9033184fe64af1849babefaad28e1666d13edab60533ea9a2ddd0a5137649f350ecc682367e068d094e0376b1d0dc4714f6fbe6779ed0b5e14e865ae84cf5f800d376c5c3abe962ae6942b0c91174b6767e207d9e1066b100942e44152d9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -cc63f790764adc9a4c23e324cbc8d03dcc627484311f3e0dfe1fce55f7d8f73dac0e9985ef28ea0665d507cc09cc8b17be3026595034ae0985a1d5b0f0e88dad47c4d85fd1cfc3dde9b7b2fc44b348b6be41d6a01a39115743c48aabeb7ac8c50edb2d806776be823d9b391b97b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -341855a26fba4b48e589edb2a4b6b46d56283cc105b6fdb097f95f4fea5fc449cba749dfbd069b6df0c87246a4ab914562eee7f42636ffa0e819d90c6bafc7106c99dbe68d89dcc8ad208e8f99b3a0dfa0a3ebc81cb1bfe8d7f1320a4f4d562e51a4e4ba7cc2a3b433364f512e60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2da609ffd63ca27be7436c6a65cb9984da5f90656c6de62ab532aa12373d9408a66fa8b37c1b5a99f1061de9def59daa19b329105971139b67fa65df0dd9e26e976a378f6ed7c840341d4f5922178dc16521e8d5591c38b0e3dde29357845b1fb928a853c4c7e440b87395256e60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 69578271dfa7c4d657d98441588425262822cb9380c7549e06562cc17c64ecff1cbcf18516ca2c12f72aac7071835809ee83b49b17eb7561ee9680f3370a1ba2cde0e0bbb32a32792a330572f231043e03fd1a3da3ed893c5e0d9c6b7715383f8f84c2004dca17a488863236ce7c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -88bbe80acf0da35fffc87a9e4de857cd735feae63b23ebd0ee854a018f3133bafa5dafcac09f07c8facf74dda40436e509def0bd8d1995f25b60134c53b86fcdb76bfb5e4a55cd400183ac182f22f352592934ecf495475723327a8c95cc99165923d44ed8a62848f7c86304ad8c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 21e3cbd21746a9407f474b11d77d0e4dfccbb6b2fef7497784dc353c5fc4bfb54ddce46f62651401720a8081f95f42cfbcd4fd698edc1d51372a3e63f00471f3d8cf7025f2a2a98821c0c0bef7ec39b595fb18b21252724d5f8874e29f266126e06ecd9e58ad868a18015643f43b8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2af65c18e9d6fbe072449ec5fee414d933e358b080762600aab65b79810a6404870b9d6eeebbd9bc87654a5ff452182abe880a043b561eafdf8665f7c840b8852f30d439f6a26385bc98b65e952fbc7ffceae79e104460a38e5ef4b5ee5fd552466ff91d478c715b4bd94328ec088000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 18000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = a777bc1867845c9f54f2017272a2eef0f206c02b71e73b01cd0525a03b148b3c36abfa0a304f621df9d7c7ad295d762c8a149f1a501af4a6c62eab9d00ac55d0c1d771934358763f79647d90ae4fd9c58e2f24eb1edb5d6ba1b369c4ec19bdec549367616000372957a93d0857790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -254363d8921c97e268b48478c03cbc63a7523c90811a31e348559b09eb1b532c042c12b4b0f9b3fde42ea605ca7a7495ee151ebbd7ebc26aa6781295fc7ae803793ca3def6a2cdcc7b57614045c31c297d5bf1ed3e194df32142c751261d6a67ef3c512c12b780b195f5e5dec9410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -13b79d423739c10b69e8ad87aababdb3c6f6e82d05b71e51c348f05e70c8ec88fdeaf4ea57f5ec245872f50b2133951836fdf7e67cd73794053657cb6335691790067eb66b10e795ccf20bf30b104e0f8dbdd56e2d07cd97b69a3a96bd04fc53e4647a9add7504b491fb1f2facdfa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3dca046e4285490ba3eb8748c7836787165ce9f692786fbb616b9f4cff83223afa52e9f82d9313fb72a207de1384b5e1f6a0cf951bef9236de5483eeefcdd256020257c087b693567bbb2a97971d48cd5e41cd5f84ca4dae227c548fff6fb2796a4f45fbcf48aeda042b75ff64d340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -85bea6624c09172e9d5ccd5c4acc1a207f451e909f1029f0fd17f262c994100d8e7742ddc22a19c7dc1fb0c432a3844d5255ad66fd494a8219570f431ea74bf246af96fb6f06e807901006401319510127a6881bb85ddffb1ca4708dcdfd431c90aeb443bb4a2907471b618133ed80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -6bd25d83185b63c51e1feb5985b80e525d63ce68580ab9a30a9eaa67d193e74d06c7521bb82966a72ab772c1f1280137094d2b97f97603ae88e232106167cba952c9177835a450f6f9414c01376c87921a19501c7359564cca84e3341b155ee09820cecff314399322f7287f607b40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -fabe09c5c0e823452480353ddaaab18fa0a34c43b85e70a218652220d7fb55f6ca5ff7fb54e055d6912eb55957a731e2246fda8b592b03362599291ea464b529025c8a0df3cb4c7c53e6c3f8baa19d726189bebd941936e454719aff59a8956c4722708035b4601d57daaae10cfc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -287619516a25c887e1fcb586d6eeabfd9b34e67c2bd940505eb299bf14a35471746e5bf4f20c95318e9da7323b141f7094474462484e65976d72ecd8787eef7dc6d6839b5d5e00b45efbdadacb6c7547487619138a8a428cf5dbfb11301368fbcedadf640900002b17a26adb944b880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = f1fde2a2fdf16d64c0fcfc13b0bd62049ce8885945bf1e3dea6c16e656347b2254a60a18865b8577361ac22ecf4cfcf46e1053eb70d0d63f029be338cf0109ffb4bfb0670957273435ffa32b5f5510f60000ee2dff380b316a351bf8eb0c1a963c29e5132d8ca9e6fc3339b5b04fc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 11c7ce7961bab6728fc04983ee9b2de5ffd00b284c4b64f7cca262601e65ab57f5ae8d01abc95f3bd13fdc99cce5b605749b7f039d99ac820300b36bce0b6769c861c6c86422eefa77a7627e31a93afa53b47e35690af23b24d6c89af9607416d5501bc7f2a603efe20ddaadf5b4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 35ba0ab111dadd4b8e4ef4346bc5843a12acc704d2e90f503723933a2f27a10c0a32c45bc1c4d29166179afa2cbfe0eab946d384ef075ab6ffbbc6c6745e723869294c3efdfc82e90a5f493702e940e16bc3bb7ff1bd76b2c4dba865094563b52e33b4ae7909fe62104668217da84400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3d233ab84e5fc8da165be78697a57ea8714967148c27038012e2e3bd6b6d0748d25db2fddf9e3a872a2bbd793873ebb9a8763757ccbea3a38289a67dfb262306b2913b98699968db6203814a0cc428cc36da2db073643d21f5b2f40f1fe09f8a59ec7ae1c7b718edaab3a89599f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = a7d0a7874aba933020fa4fead5d9533267c8e2265f5abbabdcb3fc94ce62bb9e1d084aa056ca762341671b7b7eff642daaa0ae69c0819a39000b5de74e30a476f7962c5556253cae090ea3307a161de7a74b53b96e00775dfcc2be51cdd0210cb57bf43a0f61a967138d4570be6e8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 81b4f227068ef68cd46a0477e457dc8fd33354e74e56643c58b28d0cb53d788143c5c1051e39b81efd60787b40dc63d30e7e422e9f2b6d64d70e96a46b4f2239cbe3776b06e6b5a46acbc09d92f48f0940517b1b556d57895ea5633fba65783d0f498f23936f612b394487c148e0f800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1a3b3ac1bcd831269c0457e962d8ef378cf5fac5678712a9add50533823fb6e0e850213479a1ab65ee2a218503c482b87ff705e9f2973a6faac3a34a2b343d95c3e8a0e60ce984af7cc1902510b2d4a3d808616ca8d43f674807ea5f8c47e47e4c8d744e6764f8c179bae895f00069800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2b035f783d44f9c2be5e6a811959801583cbf3204defe1476bee476d8cb9d88802644d1bed1ece498e441c8a3d83f8477636762991d2f4006f6cecc5c286463e6632cf47405dfb6ded9046bfad2bd94eab421e15ccc538c62b3d5a834f3c09332b76019d25450965d1b4f372c5b0c8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -694660426b6b90271fdea8d00f80f1f1a8ea1f65f8474150e3c7960de17ae16a39c333ccb2d46288352f6bc8b6427126587a9ca9cc2ed64fda88f639d39206b388a51492b96a26615916c68e7ca041fd4c202e244ca94c9fb20a7bb3c4f1c659f3cfaa2fe6cb981b88b80ffda15e2a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = cf34f40a9164f8ebc27743c933ceb28daa4f5358d1dac10c11c453ca4b50b03b3dc0b345460f07b4940cecc3ec6feb2a3809a164d24a62155b7f8445d0dbff56d1c89a985316da745e53d0fea6dce91406c97d3e5b01c04f95fa56a69fafe96074b68cead25b011a7fdeee0d89c2ea000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3df056f148686ad33b19c955e5215f42728e718a7a2f4704dfda2b229e00a4c3c5edc97c0c2a1dbdb17c30966b759f08daa6df2d1c7c0664f6a6625a85f538f0cd94ec458f56141eabc51ce081358d52d11f4b01e94556958f8aad0b88c11e6a50754f1aefcefe40f7c589ebefe55e2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 25ab6b1dbbd72c52618ec9513a62a96a58e1a5ce9a2326fab8ace8120d0f1c9008fc197896cd8c5d8567c2c74a6e8fff00f1a0f4763b2c12e632d865786d5181430c82568f14f111bea98874747b3bd3d0991eb6c7618e77047737460ba23f3d8a26d0292fff9990c6d900dcaf345ec000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -a35f67174c572c28f02e923b73018d35ca5d392214e54ef6f9ea5934a2a4d77f95d05a67d2344f71dc6ef90867e39037f20dd1e778fd9203b0bedcec4466f8ed7a53c7a9e294ed8a7c59d5c574549d6d8873c9852929c62df9cc1fc120e58fc4d4e513976c184146da98b1562b16a74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = b83657ec6352e5855b5c118ff12f4b6006b574e98c0768616a32da714264215e2f043e95a2566c1171685026812fb1b84d3f2d43c8f080853e11e719c3e3c9da962a713babfc633bdb0ee443eb8c33b46c7387081fd1a8dd61ad226f1437143dfffa13d3519e17837b7b6c33a7fc0cc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3a0c9bcdc9c5c109abe7f838c02afb108cf7449395689fcad9119f62a467628474e608ebb4e60a8bcb19932566483cd3aac5471d51b8702b3e08b4d6b205293a6e478fc0ef3737ca15c39896959bd2c4a297742e0570ac280cc2a93b01886a4fc46c4a0b8b581783b1d44101ed049750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3a4b2759484c73da523f34bb058990633bef76969c80f0efbc33652c47a4df82368f18c6c1cce72e632987cc65cb298eb34b59c51a020873e13ee8c93d2bc829eb326c80b9001e05356bfdadcb611f24ed0ea20db3fd6851779e8f1de1137113e1ddb0dbebcf0fc6e798ff6a2ebb1728000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 884f37222019cfd0b3e2674c410bdf6df0c7bd04e698670ed5008c07d95969e04ed485c9aa8819e4a0b95853f9cf4ba1a52feda3fc7a69d27d83b6bb4adad98bcbc5a9de08b3da6220ab109dddf042a4902b31c9fa2f53e6e9b8943ce7645dfbdfbaf3b0ae293240f4cf665f52c26b20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 17fc2227e83c7ab9200e969cf23255820fe87d42f94a61cd3fbec70c2f1cc3ba8514844cacb165220336af91e03f6fcaf707ddc1d91a0616d2a10250964623f805e64057676b3e99bfe36ebb97aab664c3feb0beb4ff840123d22e0f65019be186f555941e3c51315567bb50bff16190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2bb5c756aa501a4fe3d1aef04f7361081953eb3fbdebaa25f07b826a3682a445dd0c7f45f71be2976a258840cdb562c1b0d9fe58baa533f17aac78f62175637c31d698ae4f3f43de565661b33482e3043c8823658622d78a8c64f5aecc3fb5e4054b9f92ab7d264b8f284c26103697140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3e1c575a511c0f1ff2e3196833e608616e6c929bd0851849e52389a8ff9afe7b9eb7f0890a569ccd33f9c3c1ad92281fdfd2766e26e0860a9131e8db294bbcf7e59bf96933c7967215485bc68f92ddafb77401f43ed4683f7140e6cc6919829e2092185ed150e461203584eaea9ccd3c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 64b55d9246d61e541fd63064e36f50a26e4ab65e040bb09dc45861daca52cd3252dfcecfb803404ad264e3e4bac6c3cf6ad40101563dbd852578e319b145de11b5d36c6bb00fa11f8e6e364fb17a037e05fdbaa5b3dd95de9e12aaa35d791c71ed0272c74d8425cb949688f7c61ba3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -14c588f2889f01f081134b02a8b4c3edf8d0eae8723b81651ba68278384e78138e2d72bf43a35242e1c19278c8c38b800642262b8c53a8f5349c9b451b7c5f6faa37ad15f8f2d8c14131709ee23d652198183eda0975b12773a0237f948ed4968164c6be33c64ebd98f2155cefb1ba500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2297b50e9af952e56ccd1a7b31fce8c950e12624615336ba3aefbac042061203ea1eade19e467e966539e64ed95ce928aa604cbb09e158ad7f0efc11d5ee7409b4a5e02e0425e6da9af8cbf7581687b7cbf13d6e07af909e6e0954b8d1da782ce558866400e7b0c975dfa9905b77e3ef80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1c7fd3a4b516486ecc20c1a2a8c31cf7c9e43b810060457d160131b9db7155416b641c732e852621750094795d5e9f3fdd03c1c6c26debf477243d151491ffdb8dc780eca25a5a5f9bcc33e71cc37bdde4c666ca9e45fe4de96f292d148348d18fb0fc73a41ee72acc4ea30de8513fdc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 9d5f7ff2cd0008805bf525ece0bbcfe3c2bf5b421c15870ecd86825c92f3f6e2504e435f5bb5a818afde37e940b22f1e60512aabacf949f1c2ed58b7cc53b6261a7d8ecd483afe776ec753daf940f5a62a94b31599304a8d59e04c567a40ea46152b1af09c9eecb46bd322ceaa80d2b100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 713d174fd1a6531ad57142ed52b13abe49a6fb4850e930e129cbf350aa29aabd42e83440384813c83c2c096c4cdfa1d449c6c916b85e3db63b9f3ea05f914e3d79a7d54e26cdcf602fd899f2a08a91cfa3a528009d11582f1307e2acb7ffeee79f0378b53d5843c842762a9d4786118000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -38081358a02dfece4ffa2c03accb9ca5788f6875dd89e0809d453d8980fa4098361626347c81162147fac460107129d6f080a0d040f1510a8429509125c7ef7eebd0f2211f375dad32e6de1e85387a1763a30c5c434fff798b86feaeb163f183c3d2964681cd004087135ee1bac08beea00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -35f0a1e1b7a7260ab9f22c4b3ee9443b1943311022b7e2fb78a2fc4e52f91fa0c8c081418453aceecdfb888d8de4288b7415ec3f72a76837f68c7bd73e04b8b20876578bdd8c73b2cf0d6b7938526152d55c1b611bc7a50edf424e18d05a2962cebaa6a4ae28c76ebd6e0e60d5f65574200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 9951eb91b0e3a0ce40f17423d04923634899fe559d45318392301c3cbe9b190b4c113e7ab2a8c637f95135f7a9d0a59cfa7697069fd3de01defce4c6c57179a7971eca850479f3e2456175537b9441c8cdee051d7af3d54fec5402d2a1445c3e2bcc54338c6ab662fa180bcc5efa0700800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -801a1d18d3a853a9113eb9bf2a60f6e8db7585d65f05254f58c720e0e08a160ec9ab03b1c20827bb0e1188380c6af56fc983fadc9e3417ed9806cc5b0de400576ed675f0dc63f5ac7d22bb6277bac0391eb5e5f3acf785758429ae234347131fa1461f1c36e59442fddf40570654f716000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2d30631576c86c4193b5ad32003534bd1c8b6b9ce5128626177c14b12447e9b63e9bef78d9ed53a343bf2cc6746ca819a0298d1f5e9717898ef3426f72c450e03b97a4a6ecb06e4b90042a9d6afb42b347a49cc484efe36181e6524220fde97de41f2273aaf77e234ee57b62376d3cce4800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 274a45420b1bf947b2ecfb46b52450472fd4a826f1a4172743dc9b26f72a8d30e46db4c07975f3d364c022fb996af00d3d48035b22b8818a615b2b13db7ae17b820e3c526bc673ac12c25400f459580d352a7ac7a91ae9cc3ff1e3dc8026241bbcb100c06a2b33482b0b2cfbc6cbfc425000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 3800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2428df01a7c01127ba03f512ca700ff3901a7bbd9b800244d06ba237135d22a9e2782190e6ba09f23343c4a305edca56ca4b1f3862e893157313ffe65d18c26625a023e54cfc820f6f8bac8ef15db94dc233091cd3613bbcd4e7722e65858a9168185ff0d5e1e61349b20512303accfa5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -5bdd2d097e0367d68722b55bd78e6cbdadff68525c0b5bc3d5e67ee546f4d3cf3d363d7a4af8857bfc99b37bb0dc50922f5c573d988dffb57ee6ea7ec2a26da565f992d9c8563fb87643463b2109e7ce4e32664feb7ccfd7e66e7a71439181fce9af817cc023355867d708adf8ee8319f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 372bed5c443e6273b1b14ef2e5b79fc1ef08a3e57cd908bcb12cb4f05364ecb55b464955a0668a52ddf17612c2e981a239734a0820107f4599efd67f2b4933b8ed9cb7e8561decd2ffa91724851e12f881136cfe72cdb139924be23294c4ce65636d22a076b53b46e8d984a7cf2fee0ec8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = e88fb24f72c462cc60eded0a23eabce7db2e14bb25c7d16c131d5651794f83cd62d6223220c0c0cb1c5f55cd4bcf28b708dddd52228d5f0742cdd0e572d2501c28654bc9f924ef6a95d5188f6f5c1e2d75524cff5635a11fd1d49684cf9203ac42ee90593dda1d55d7303fc0f6c473366000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = e2bb2a187a9f9bcf0c573b8fde019131179930f8eae0288b9e1876e71c2f054e31b49040f712cb7cbbbf857f27abf865f78ce4ce534f4f4d44d3b242be8f41fcca6c20636986349f86e820ba002b300ef464484a3c40a9675092fac467169b6b81975009a88d6838259b7cdd9da86bcf4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 37a81999bd2a12c28f10b8dc2097dbfe8b26412712f64626bc91820b5f2b9aa378d282035d1c61a9253c68ac3a152b1b776251d3054ff95560e0c61d6164bbc841c7c58176ede49ee31d84cc22965e8a6f6bdf5cc13013543740d0572fe786133bf4a71acf2a9c807e05ff75b52fd60560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -de0c99fd22d3c5da7c550f062dcd1d8e330af597956bca374c4cfa5c43a8fc814c912427ab35a28e6c5603cbe4d7e225f4bb90ee4f3513100ed05909c117214e6852087ad99eadec1cf58333613bbde23dff098deb924e2af7853274ef79835ee058e7766746c39621f019e11d415cfa08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 17914290a6c82f8b1ad9becd4d2ccfd341a9d8d54a05b9b6dc435a8b57e10ff9427edb9a002031d2e536979a1d04e9904f8e8cb92251fa7a18ddc2128eca9c87e2bfc2bb95e03dec1021a680b55bb074894f41e2f65330f57b969f66be4b11bbf3cfbab02754a8c36b3e4300b091abfe9e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 5f0b25f0fc8ea180dabab4831ff4b6b548bd47093164ded15ff9f7e50bd1f5b541adee5c2b6e84b3cd091e805574592a67d687c633f6a10988a3276a88de805f5861a50a07241919ff7aed1da26777843c861f00ceb8fde83dc0d9913afc438b4a06f4b8923c0f55c753ef5bd96e16fe540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -c4657e6509390bf6540426d3eed52d7b6434c8f7f80fefe90c703b90eb4a7802636d260227d81e7f2e8fc81adeb27710893cd081393c43fc65259d07026fddc61f74a9a56006139efe58cea17b02bbd8f7d9e025017b8b99b4f740120e2cb1aa9458d9faac4094fd0e037d775fc0b00b1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2986f6cb4a4de6734e734847b949cfa976042e5890046c344b764af38e16415acb81f9a2a0972f3178836ac8e2fb7a3cb4e270b021b378ec9ec66e98f5d324cacea09438ecd68395ecde493a219bd2167e1f64240657b4cc8afdde33dd7d98b9b68659b1bdb39fd2f7a072ef3dfbcdc261a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -a03bf95666326fe4c78a4b5e75b77b6eb5adf857cf3dcb6ac1ab2fe75522185578ab3299ec049c7ce352903d99f7972e94fe396c563e710f9da5d9c05b02e04ea977c92799a22e1a7ef8ca43fcccf514dbd8835b17609834626e1532edd5adff5a33662d0d897e3e391ba8919ed52241e60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -b0a0116618bd7e69998c40475bbfd8ddee377598b895f597f7634e4b12973d2cac039ac295644526094aced4d38c33d5d93b132438b28caf4f2bd131c954ad67b0f2850e0548810fa80a06ae37dc679b24077d398ae872cc8d7625f3b1d74aebfb476d76c97f7f84a3d326abb6c68dd4e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 65240cda16c4b490198452efba2c68ec80b124a091ec400258dda28e80f13eb9c435fb7080cd65070f489cea5e494565851491c44461d5b03e1d663cf8c1c9a6a7e491341a14513654e70b00f79a7581bd14bd1978696a33f8d4f6c9372e3f1198f7a972de70a8c528a5dd457ad69030040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3275484d39c7d7d0f1a2da40b50a70c9f63b5328020bbac6daa1a9acbfe673e891777a768b9bd8892fdf9ab821bd781ded3cc8430190fd107c9cfca9e6e68c1dacd28a35733bab19fa094e425894cf81f570c353be659ee9edf9e1ce3c83403661c9404b46ff5eec0522dc777886bcd842900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1c2bcf471b6ef6f7faa0369197318b89adb46ecda95e557ddcefa85045d13f3ff8ab7370249220203f5c67c1605723ef4ce54b7ff58e200088ed407cbf36a2079d35ae8e68ecc0b8ba15540143cc14268bb2d6c43d52530ddae74f143c0e11a01f663f3e81d9fa3587ed62a022dc65163bf80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = ff733af2a67c16b051dca2816c3c67f0c6aef1e605828a20a29c11b96d84424ba668eca8ce909f0627912cc75115081534adbcc58f42d7c520cb9aa4d05b2426c3ee09e472613b17483bba64ac61dc2bf0644763d2c1970dc21fcecaef93f9cc081fcb97fbf76c32de9e5ce66ada52c326d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = c96a19405a87aaf53bab6cf7a953e1cb65072143f9a4f43cb07ef42a13cc61dbeeb32fc7ea6ed359d4be2f9dda8829dcf5ec7bc6fe414eaf93bf396940627f34dfe73d635d231fe4940d6149e9ecfb9372831d32544ec32f1088cbe440773fa5098a0f97e996909c3e4c0b96492d9bf42af00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 97120446c3b122c679a763eb3e5fb23627de6bc468fe025eb5f96e89c061fef575c095b9a7e1b8dc530bc37bd5818a361bb833f155c2e28dfaf811b37cd6c45ea3f08d6fb53f9f8f73f25ed9c52417d3216d3d87fba2be12398f700046d172dda93465d53e8ea152bd54b1b6e826d93046400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -320919c193d4e04c6488230fd8e39e6bbaee053d2b267555d1e6bd7b9aafeaabf1a476f4077286b4c60621703782d0c9d64c3fda3ad31d659c851497cdeeba59bbeca68ca125231244d8228ce02e95e577029b3de03a2eb046a2f437870c0d5e6810d3ca828efa1d8d0f79d1e26af24e77fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -9298578ab4ee24737a2818d0efd50385a588e0d41480a34a12623f067cf69adb5c3baa47443e4c3a371a04daedcd93cac586599a3a16939208ee611c1362dd2ac1de435f5eb5ba0084802d659fe2812fb419964e95f01caf69184c0aa10567a5918417597dc8ad01beccd468ef995073238800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -21d188d2e614c315a49b1dd8f69534acfc5b85de32c80fc16c4bb00dc4381263396af904eb9b9209c9d65b91665ee5657b73c71c8c0feb03405c07a0049b4187b1e6600206c545ee9cc1d151cc2a688e260e555af0642ab2dc781fb38ecd0dedb0f493e3160e8096cbdb512b5d7294f9f52400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1c1cdc5387359bb24d335e10d5c4cdd3cabac0af8b767498d52a71abc7b35ba9ea2646c5560ee0edd426beabee96b25028047f50000e70237501007236b4466ccdf3d08083619cca8fd5302684117b44449373ba40bf7254cd0b5078434fbb6f1637e58bd5a597e9cc63c2e1aab367f4c36d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3490fe54b668aea949e6193a1b22a212617b5e84573810b5851101009981b1116f4a6bc2360528fafd8aeeb5c8043b9bdff996eb5ea7f73d7c465b6959d214fcf3dc16dd08b107801eecaa0daa2fa267b935c156f173bff01896592e8e983e761469d2c6630a5a6f9ec1809e362fe68524fd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -6014fed3a4c676ec1849eb62aa298aa44e921fb538ad53e1082ba89ee2fd3cc1b99a2e3cccb606629bbdcd5bc6b93b80388a935d1910397f0ca27fb479397a0210e6b19b1ec92ac008b07a2086d3c140f990d96cda45792201159b4aeee3a5902a525fad031dab18c0fcfb40cd5d8e28b0e6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = d709f9263f661afe397d0f0d6ba30c51cfa48774dcd4647c93c9639e5b3d5381a9a06e07d969080c5b881d11a7c8823eabc061c20aeb7e6fd42ac572724ddf4d0d38b81ff5e5479ec37d0a72c37c137ecbf8845cdcb74589495a729620269e86c29ebfb6376f3cb3b6713df4730e931a0973000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -146cfa6f13fdcfefc60307ae7d751e79feb646c2cbad3071b00673b3814f731e0ca5daa60c09f72618883f875f72a5139221daeec9ca87435fc4954174fe03e816fb5a505a3a686e5446606b12ced609d916f8c8c85339d8ceec23917b63431ed003318c84ecc66919eec0afda8cd6850614a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2a1f4af5f1598eb0b402d74cbc5c5b6a0e0e0395fc0767f9193089769b355e08425f8b00bedcb6bee19e0c6c87ceef2382945576e684dabd1a9f8b7b1b392de13afe312fc81d2295f46db9f3af473fff09975c8dc02469563947cae96302fb7a2291bdcbeacb5341e33cecfb2109ea51f99e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -659cf2aa56ab84cf8478cb4c42d5bad57e9934e3dcd19d4d1242e3c5aeb99440a26a158c15717b58f00d91c13b739b29fc02ce8c27ef2c8dc263d3331951f2846aeaeef05d3f5fc96c26ed74fe7cb03b083cd0f01f89f45f1f00b7ee15d072c479eb6aac20750e52838ab0856f1bea15c773c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2b62305d604f953fd7e02473286675f421d78de3f8c5f616a9e9ef721ce5f2dbf4f269b002864519454ab61f07118a00e16a8e59351abadeac0064acc5b38b6c5828a9df57b675ba80a61140a6d978468e4e7d0082ea5b226f6bbafb506e6efa3e50af3aa1edef8f5e7eb8f4188253cff53e4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 14f3606b3051632ae380c00ccb95aaa815182db0e69a94f3353bca39d1cc98ed95d65d61f56350126281acc1cf3ca07c25644ea55e13c1064ea208ffe4d30a38c30140070dc32c998c3c2ca57fa368603ef68f1cf19169399b4f47a65e9263c53d9f223f130537cdfd0da7685256b0f62a0458000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -35d93e4c3411e26878549212ebf134c0c6d63ac76f5b13195690123b13d9ded48e055ba404e559bdf9fa2097f46472dd5ad0ba8414b0df925181dc74d62aff83c94e13d7fc735cd80094a08c0f7a36ed91af47f81c531eb8f81c03aed911bdbb3cd8ae55e5e590a27dba30e22b1bb422acfc50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = aa4851e2479512d8de8aa716891c259368ec9d926e21d97b13b7af34decbbaf7addf53428dbca13bedfcddafddc872e445a8518faf260b6bd54df9413ff9e5d0fbf50868c1c9a6fa352d7ce5d264e7f93f6a1efdd083c91a4947694329f4f873767cb96cc4ab86d937f1e812ba27715d432bd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 265e8290004ba28ecf3cb60525b86129aff11c7da89fd52b561744564917a640daa6178518ea6fa405e6c5aef7b0aa1d7946cd6779b3143044e4b85daf627defda93e66bb4d9608f54e9d20a1a302ba5afc75bb57919664fdb5ff186322fa07e371908a04538c1fbd9a63ccb78c4b6f4cd1860000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = ec84303600056ec8c0e21d00cd9f9e3e5ae73a6460ac00a4d316101e7ac7d99f0d70d122be51046f73e79934840a2e492ea39fd8c5eef9fb2e6de4dd0824337513dc2a8d0a79c1be9470f95006fd19a875546e1944ce04921f18ccf215f31dea647236f5939bb30afbc20a26e91d007ce0780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -286557f8db3e2fd7cdc32a6bc64ebcf77e68ebf1674cae863e0a316a6c3eefeb3ece6bbc72c923361778d510654549260546a5a9aba12cc105a058a6a148284c6656f6ff315062a68d547e17866d51f473c7a9a5d184780b283c46270b5e01ba097a3a97e867e5db77ac587f6b0dde7273eb9a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 17fc1295632514fa2a8b5ed88bcb60bf129f77e017211699f95590790892c26efc75c1c1b640a32f63197b1db4db79da460794eb08c7389133c17d378cf21009b466f79793413cf83edb9f7f63a0f06067e540f2f845c2d30784f0f72ed8c97aba625d7e42cc1a29584388492e84ada63b72a80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -cda5a80dd4afb7342538de960935541ad745f1d14fbad9010eb856ad70a449ae4695d8ed65eba556bdea29260dd85fa4c439e4a970300700601f1d5ce0ac167ac5476b87f1ee1d65972723a218e3ebe9d6aecc6d1003c4f79f27031ce3f88838ab51deeadcd89f5d9f8fa0968fff58b692f3c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 12013dbf5ccc60a918cc531b5d3e61a8f4c310ff8c442eaf5e16a2e03b158caa88bce252a072b4c86d0407bf61082b5ab03f1beda91fdae06e5274ed4681d96d0202a77ea1586fa4e46dba4a50938bb2754e26bac6c6422249f023e5a59be495d5357096921d06bb100be99f533091ffa1dfff80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1a99d39171984492bad3ff33eb8905fabab5d3bf42b44daa96728d1ed42667999ab7b9ac115fa7159fa19d8d44caf455ddfed62e9719444fc2a72c5571108b218e817e2b367980e189784b07681791788bb3a95ed8eba2f15a3e40d858178d36aee450eb71240b6cb44de689883c3a7e7624f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -5e8e70787f668041499c78328ada0c20347b32f76131ac62892e7462eefa28031e4b10b8eace25b86972340ab9bc858846a49f8771990dd0120508f41924a415895b54c00b33ccdb4da41a2ba9394a45d85869c9f8d3e42493ac765e65be21cbca59731d7b88a905a62c9d83995009c620143e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = ad11a3936923b136189371716225ef85f7df3393a24b72fb254eb4756e51e54ef53db532c83bd3046cdd3cc04a5de6c993a30780ffee152d815f78a0d808824fcc8441bf62d7081ab91962f14b42e714eec0ab9019008b29636fbc192efa4db719dbba6f533ee98ccc18287321d8b9fe6605d600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -ee3e5b23d03dc4d3bf84177b1cc78f6ff5d0781adb56fb997182bab3b9264655760059808a7c3f2653d1fd7c18ac254da4c69f2f143698edc2806d6a5cbf1b787c02162c7d1516a4975a83c5985a5fc4073926b4c2d0c3949733a324e398daf456224fad273282341197c9e15f2824708dd78000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -5029956d0a4dc03959e4fcf88af1317a1bdec986917fd404403120a030c8f1f1af26071791c06404a29c99292ad84b28c3c25985718cccc53fe73e3bab330001318e9214b87779feb1fe1c0c6f878578d357fc7ba63f85b189388de0688476aff9b130d6b7a930ad6a143fbd0945bfe4bdbbf800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = ee330558d15d8cf0b8116c0a457d26dd2e1e7daf5b368617ed7eae5fcb6406ed568b57be5d1f843d2a0b660102d2abbe055e0234c67e470fb2d6672e31cd652ed32070c662b7d07da9a605fd6b6c4ef74e0776795e58deba5b2e3e93f9c49602810c07bf4f9d975bdfee6037888b5cb5a6aa2c400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = dc631d3cb8cab205b6d6b9769ee98b4e6c2f61c34df5caf2b53de382d2ae6852792cc066da60d692c04ed9e1b8a34eeae5c3c9b17a2162f0396bc4e84eb790303caa38ab2cc455e31241ddc55fec90c335b2ebd0271080d3970519bcfbfa1831ea609bdd23ed8a25f69fb540330bc3fed590da800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = e41eac4c282094e7c31da0eff2d9f62bf287250ab4b3a377dbe93f070eabbd8ff854297909739ca41c23c7e6dfd61f35b2940c22c645969e88c21b20f640db72b0d79bec60275c4f590cdc36fb1f6f57d165e994a0b84b906b5852bdce4d0f8850b9ccbec77537ba3bc750b4a031f5b10c3e87000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 9a16023c78565ff3fcdfbd6d8fc24b861c24adc0036c78456cd62273b6075a5d09aea66be10e88aa1efd58c76c4da6dd6f4d101cc8a5a50d7e1bc82513d062c444eb7c4606b494ca751e52ae04c824b1b981907f29735eb9596a4481a236e0671135713b1ca4c06ddbdae113e479b7df4762dd800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -5f21bd428e9040a481a24b3a5897f35eee28e8a94ecdde5610e8976f292b827b32de4be8d54b3dde58d22370590add08d0a15a19162a582c8170eeefa4594f73f31327307151c9c7e5306246c0f1b559cc324ebfcb91f84379ea98d3cff4a604cd23b6fee6c52c06731e5c69cd6dffefb36b7af000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -466c611713a53352fa19c1c871882d1b9e1374ea4e2c77c549c2029bba29fad65bc49593cbade826a0025532b03b29e37ba83f2642871885e78f5b29f8d09821d748ea1ff91453579c7aaf78cc78dc46a1951cfc5e1be00839f728a0a94df611ab50f242f12ae9824daa0373bfd1ec95e7818b7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2f9bcbc132deb760c3bfd399a07c0afeeec7f105166a2cbec75c38d01f35398126af657da847adbdc7f2ae1e43559b2bdcae82ef8f436ac1ec3957afcc06663648b4faa40bbcaba2f9106aeaaf18731edd88a1c49181b11b5aa75355a8b3461cbe63a7d7b9b87b502ab27c2013648d24420dcb2a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 30c37375c1309d2a9e08349587a0fc6b161f40c42279a5c5fb4d35a5e92441c270dd333af11854e1749c294d6cd0445f95aade2ddc6f1ae3b32ad2a0af4e0073377da547a8264c36d486d6901062f8663770ba1c125110902dc8d96c8a6c10e46a5dc262994ff812401fe3558537081af6c5fd12000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 6fd14d0a85a78262e8bde0187134056e9a78a46466d78527b198a868820039d98ac9e5b9806e6afbf57a875012a20f1e0844874f9b966d519031b0b8c3e447e9d0d295b6ebb4014beb0de7fcfbd2201ddaf437caf1e6cdfbe7db4a4e97f7cb2a428b8f859b978e32a066fbcc60e2971b0050c654000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -ada05ce17e25a3fae24433692229b50f52af2e53269b2f43831b8bf117ece68df1ac16e76a2d8d82fba6f0d565f27589f381dd845be8fecb5ad80035061ccb0e9af411e27efbf92d7e76997dfbd2f2cc8c445fed82551d39ddde1c8aa05b6a429973a97809a70f68870c0ad213a3bdb4fe5054cc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3c217475d27d51c2bdb05f35f8037afab3625fefb11a61d32fd2e2a02d267054f74da532568a6cb516cd571b65ed42580be32104c08eef5713505c7d9df17d9700f74bb94a9e1c271e15597bcb558e9c59f19b490ea625e8674a414c63b77e5d8009cd9e81379f1933c6a61e0891ba374a6d164f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -330e265fd8a58e229f5861dd5097ae8177b709fc8ec9bb6ecc4a9349998874e378eec158dcbdfe7a0e1de61e53496e5a71b53c70b6c87f42775c64c78518a4fceae273bbc44c62d7efd200f511a9bce1abada83fbedb899832a9ed482e24f17f4f1c624b3ef36436ffee9f02a22a8ef2b8b1d8558000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 18000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3d84b1b6b473a3a6053bd4bfadc2b193f8843ce428876fe54aa7cf15e161446d8dd3484acfebb74b1269f2237fda9ca552c8604cf69c77cc5d127c324daf9e54b38cef46eef6e183f152afba21aeff5bf137bfc5e9464f03ebe68b71daec24f5f9bf23ed6e722802b38ba15bbd77cedefcb3ad510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = da8486504def6bdb34f50a3ce30e1953a04ad9bd0948edbda8619790e7762f48605f09f6ccd29b9a3908aa77447dcca79a50385f41d1bc505b83705a9516ca33cfa1cb9011e003795c279f5776134b940813cdfc2cec4d0b7f93fc5a83b67041e49399a52afdfc833f41c74b4e5c7250c750ab6c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -5c4a11609619b6fbfd1c3536148851a3b0da4e741b2a47b36309d883f797886ee36686344fd4952505cff1b0441412a5cefa937cac87af6b191c98578542192809792987085fe2a1c300a1f5d55bb6715e265bb29dcbad54d1f85ceda923eae4051e4c2c4369e3d2695a6292e6b42d568868140e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2c5ed91d94cb102bdcc3516aa9443d72a85f23b71766f9861b76503b108510a8defcb190a8c982ca8dc398228d87abd0d81c40292733c60744f2eff02e32e355bbe764289728165cbedd70abfd430c594b3080caaaee65002fc14eb901da620d5ca86dbef304143d8710cd7fd434878872239dd860000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -60c390e07d4d76c1661c2ac86292fd91871583e81036b82a6ab7388b8147678a60cb902907fa20b3fb66f85917d12b2cb74ad3b69e5f3935db9bf83d61664277f5872295bdcbf04cedcbf2a6df955234cf1cc4656c11591bc1c9dda2cd618b870004d4bf4212cfd956be2c504e68d45339036833c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 9b23c117965f921ebdc3831dc12405f1d00740126167f0de7ab8a7d655885705ebd1287514d5b2b60b1a6844b7bdacd90af888d0e2c65f1b802e98d0a790a07cd135423175c97f4df8112db44d722db0f4da5e00b68ab9d999b7af0e4e6afb9019c6621c056f616b5ecfa40d74ea502e8f06ff67c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1e637f3e37a12a0a830607a41a524035717d8dd3c2c236b6d6177130d351abf96a61f48eb979ba5f64feca9a83706b752ef35a42ee383f7fae74919b8286fbf975b5d5ad6a9de6dfcdb381ec98b513c36a4b1cf473e4275dac269c1fd760ea3efd6a2b7cda3d273e03153c434bac02bd481f398a900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3fbd1e88f1eff9252cabfc46e509c958bdc1f3bffb522a45143f23b84274c39a63b1326f9856af257b53d2dddb55f6c10c21bc80c18f85f1eaeee2c3b389699f73741329ddca970f656e46be97bb408bf8defd98c4eeb5853fb4f1b1b5b6d78e25cc7c66500853fc9789d2e02650efa1bb1ce1bd480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 9e64dae8adc674c175cd9600e5124a95e713efb7f1781bcb8359ad668893559c6c2de9ee3270fa2989dd08a57766b64f3af385c1241a90e8ca9071eefc77461d319e51c4a943804c030d3075e0d6c56e380bcc7c03aafb411ecfc9cdf27913a1a8aee4e32c17dcdc17d9c980164e3bb6084ad1ad200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -8fde0746a79b88acf7ca2d177000a7413561cc664df8dadf37c3610fd741b7cb77fd3dce413ec984083af128a8a7043402a660337c62cebd14ad9fb7f25a859f6aac62d83749bba1e41815723cbeb6ec8f38569c3a022b5976167b9560ab15260744e9e9cf957e841e8d006ac239d3526c159182600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2c861832ee18ae3482772915cc1604ef91fbbd198c303d8d35ca1b87a385395b17fd07be5b4f0064d4a206611cc6e099da9054dcc0f95704a0213dee703e3ef79b6a52142f7dcd966bfe55dcd1a1ead0f2ca37d0e8a397199f840dd4a43a05394877580caf9049bc8444ef60296efc94b77065064200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2332c774c5f36b950b6550dde52e9187ba75fd3d7aa80881c42fefc794ab19c077912255dc08886eae35047ce7d43c604e8f1587546581132f74d6cae2a0700d6f6a29fec9880a0dfd3b671da6571566187ec887f37a8481128868ab1a139dc6c531777446cf1d7db133cd2346d29d26aad58c965200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = b0f2bc50c4611ca11d19fc5ac4d0e46bba4b7c9c80733bc801245c51389d220a7350b1807b53262481b3a3510573a3f746a2ffa087bc5ea0e8df2fa4400d93014e5e5e157f086ace94a87f29b21c31baa8e53faf4bb68334685ba8a48df1c623f1fc85979a64fa7492a18f2f8c9c27ecfbf020a09800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 6bcd1ff255f4071709767ae1c502d5905bf3ffdce3be1a4336d1a0285e3761d6daf163a3973305a2651e3465258f7187dae02c803d86c9b90442b48ba42271c96b6c3f9f301e41ded44bb3980e1af1e60e892527f16f664bdea44b374920ee335b74719b24a0c022f129f032f1b1f27d89618de42c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2a4f80acf5140b1ba71ecbc6195cbd0b78eed9ed5592c91aa605cd01e8c655d0e2e5a7b2d4259f81962afd98e2d94dfe73fc35e4719d8319526baa38f8665aa79b91f18a0d1c4980b8a295b6668c8aac09136f50ad17e0286c9f42f26f44d2eff44f3d06456c88d432ad8de9d2ee439c42b829520f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1858b41acc2a2dfede257fb613e56ba5edd34e3b28e77f6d0a7fd0a20d9a0a0bab3cc568c74d61aa988e6ee679f0ee8aeede27cfc8a40497240eb5cdf96719db3abc585d45e9c08cf5cf3f9f1165b1d2f8fd2d130de2c3fe4eb8f9ac1aadde0f115c5a6ef4fa6edec429efd1ab320e73437e9f87de000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 5454fde00b85262a58f7d5abbbdf1c33516bf1505365a86b9023b28db02e48ac6bf429c09a362bb8497742b1ee782474d0334dd721137747124b110435d5e3cadc07781c74c4621e1a95e66fe05ca3d722bd248ac35f0af94cd1ec3c81e58c9ace36b3c6c71e40bd97ac453c7b45f6a877800662d1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -f880c2c62c56e50fbc0d99a0fa583c575e291d86d98cb8f8cf3738e86ca2ad18d447e778c22262b73bb8e7780d993cc92bf9815461d466cb7ce7571c2732dcba75f75177b6b3d413f336f2ea7e1df68eef71f375a61d4db0f273d4263fd92466f20aa0232c5e84f99f8e5c05e8413626889fbf52aa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3955d62c51cb3e8cf4292ba35a10f24d95ae10cec3f4d66f9ea3758c6a323797ea764c85ea67eb7998cf509d0f02e037173e2710db34ccdd2130906f40974feeadda912364f044e2d91dfe50e8f294d103a451f8b5dd21cc7d6fb74f7c3d5a54023d83a07ac5553c518a09b5ed0c6eb60c9bdf2de0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -31ee34bbd847f16fac91940260d168e9e0036c2ee48c99a70138c494e5b72d7670365d7b41a0c6e62a3a7da29817a95f6f9799c8eba2f2b131e3943a860766ead0f3620cce998d4005c2e191d65bca9724ffd2df8b99327c33dc257e238eeeb965eb6aa86e558e44967c8429a9919e77aeb319102a6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -8889ece67e975f51ced2f114efc005eaf08d3968bcc7fd63fe2955f91a64eb465279168aea5e1a30abf24766d1a6f5c2ebfa132b2cff996b4c5a5ecaaf0bc7514ab8f81c0f5e3b528ed665c6fe11ca9821842925a0fbf397eef244faa3edcaa116cdf585052932c5510ad96ef37818943d451567088000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -5f41ff8d1ccc4d076dd42848b389730b43c2c86558ad6548ee91ab8d1069a05050f177c4343c75caea3444295a49a8de03c95f4b73f6948c640101ef08985231ed35638a9c8f11e95dc9b1c5fc0a35a028121e9a185bfb3c2be60c90896e34d35fb3b119ad659fe651b5e4a3eec81c147c0ae76e934000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 9e4781f0820452ef4188198da7f3330c71e8a8cf7281afdf0b73ce65ede926ff32e8eac62d67ca8466a5a4e18bf2447fbd404bf9ea51eae9b92d50c8e2065d0b6158d7531649f702e9e4d1560f17cca6fbaa53eefab76edf973dea3f17dba35b02ae55bddb95234d2172773523873c99299f6d681f8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 231efdcc3b444cc804922524cdd7459245c73ab1ad4c384b36efe72f62bde7820f90c0939fcbddfe9b4411b76791b712c7e960147019f5ce03e0d109b7a37f9cb7dbd729dedd499bf6f6516900589bd410e21bf998b3f3d67fbec7c318543bd3acaf9e81d562804885370eed0014dfaf88d585bd9940000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -b9d51438901785dd53d81e50ad99fde8ed8ea6d3885719f5becd14f15b488e20c265a696d86e5595c25181111f544c70b223f77d410051e5f4809141aafd84f7474b160778a04ad87c8f7545763b76bba9742ed787079582d86580bee7f8ad0633ccdfe9e3fe595c3a4bcff3620821f6d0931f3b2850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2e2c585937a13c5488c47c13027e79d1c8fb68364b33d3c1971a6291e9f3bf2268e670b5f4f10d772383212b718bdcaf1a3ad8a2fff6eec0c28dd8990a6ec80e0ce5c787b04a66abfebbe796620d0b8ac6cb089d7b5b8020cdc39475267b397aba7c0b3261a5fddd168ff0ef63857b70d28a3858d810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -39246a962d69fdb73a2262dad4a2b493135564eba665eaaa51d017f9006c4eb5523eca002dea453778b8dfb37ac279037cb4e97db55befc99c89cf54f7621b1a4b68d46e0a042a7348b06a9013182f4179118e4a60c860f35b96fa22d8b4862b267619be0603c06bd8d86cef9d9a929a4dc0d2475b380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2536381e765007f821ecc27ec66300ba313e79d244a4b4f728de03ea3822ed037a083e17b6d875a848c8e0ae853ba9913915d006cc8cc4faa088ff6ca8d6a68b6362ea75ac87660a7fe36d796034af47341047a8284d37b98e36ac19f16fe4188f8d83aa9743f1511f3d96527f642a1277df154d09900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -4ba8cf2ec7b20f7ecad43a8bff4c544422fa81d2e57992c4ebb80aab2b432537c796ae7b8df2656818f3491424671c13007e774c6ccd0b390a56e8cfaa0c73ad966f37e69aa89f56e1e1a4d9b37dd6751734ac276b766c65f5deb6a8571469b6ab441c22555f994b07854827b00d92610a54ae90100c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -144d1297f2b90178dccfc09127746eb02b779fff0f26600d6c975e6b1d3339fb24c04a96e72d106129b9b2b17017e60dfbe2dd04ae8678d066ba690e32ed298708a95f1127e899c8213d766b3a8ae07441d63961e11192e1ed8c7438ab3cf1deadb6ec38b0059972713fc9b57e7151887f65a5f953280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 297311400083b0b5b6fe4ac529750931ce7ecbb7527d98324990aff72e2102dd2d41abd05de1efcd96484dd4b3b3d27221be2c8e99c0b90301c814dbc134c2d6dee664fadc83ccca2e9f96eb2a0ed2ad5e8be031cd7ada865c5345f009dec58c7eab9479ee23a986bed81f27da98f9a86ab8281cb7b680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1f9477ecc16664c753a7b332639c1e09e1282fa81dbcfe11106cb77c62c5115c94cf539a0f3093332839a2caf2329d57c1111a2c92041eab72cb33edb6f30047cbc71e519cba32a15bac44eba4926df458190a85029257fcb3420b297f31bf2b6ed069a000e901f9bfb6472efd56dacd17af6edc13480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1f1b40029b6226705ee3c949c70d917a31439467e906355b671f9520fd65e9e940892b039e8d32c1742e8341056d9df2bfefd057db9750724140848b85b21f9f98f44fd982eeb9777ba70e54197c19e0e2b1e6b13dc96f5a56a29414b41e1e7767277212ce3c188a555ae2b5fae185004a15c3f3e34900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -94e9028be7f53e05a702739726c7f3e47e7a2be62e9e45f43f9528d6d086c20ca78b5a56027888502f77957ded5a7633ab0ee479787f8db01c51227ba8d862cf772bbbf5192f33945b903adf40883060cb6ce4bcaedaf074efc76fb2e680080ec7166eb3a7cd8cb88fd11c6c0a2b0e50e68d09528d2300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 22fc2b24abb592f1edb0035814108bdf0c28a3fd2e69d5ecbec57cd0075a1c50bd2136b2138960a4d9b4ab154fffbd38f7738c992927e069c1b18ef8ca4b1411f263ba4ddcb6cbff3d12e40e5d33358eaadd99b058e36c7230f74ada15b59b8b5e9a1c678a3988495952e1eedda82a241f3e4bfcd61f200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -ecb4f684d42737df9b1a6dd85d11e78624cf7828b35016a5a5d01b87d471f8c13c55d815815d559dd18183e49db00c9d42de9cc310c6a1a5f89f7281396a3dbf17f782756970c5f71e72ac2b60a6068db482c5d40bf1d2512160fc7af052932a51fcf7825951ed298b89e0de6e05ab22478defbb9b6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 216f44146c02d89ee0ccc1e4998cc4c150d18ee88b739f0afbb076330e6719896c73d7ca429eca2aed6a25db50779c2defb5e5a5ad1403ce21c6af56fd719a70ab5620818d8cb913a0811704122fb451181b4837263e1fa167aeac541624305c894c2b3add05c8ddfc44beedef83438c05a1728492dd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = f631121c3cc369b64c24877464929d510d2f032f97234aa15e2ac5038ad530ea9213712f81b9229e37ab9e4656bf4cbfc9d613098c089007a4694008355e960cb7c20b393665eea8ef2a8239a928ca6d6f647f2235fc1fe791a29820445f765ea0892b33daaf550ae0f0193d761a6bf74484b49f559cc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -24526bb53e783e68577921f8bbd7e396763b43df6cd6a99afce6619e40438dcd63456b3fe1c2ae1d603ecbbaa13720080d645bb838ebd013e027e612a7de15288fe6c76e709f9cb002536cab0f86d43ce863158da7f2f6d37727931d7b9b6ea08dea039a8fb7d3cd3c14f8f6ff1aaea46f188e4392ca1800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3f29319510cd47869f96f1df28ed644cb015a3e90c85debc29cd822bb2607f38f417ae9e87109ab41fcf99e8edeb159ea1e3bbfffea3c292bd65c4d45dc5a841e8aae43d32c12554b291599e210e0fc85feb6d5cfcd9bec1418dc3bdebff747b7a3ba10cf77ce07123fa731fcc0447cc335ab12174a30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = d9096dd3a080659669a2a069c801e23b747424934f0165fb0a77694e0f23ac433f0579b910b2d787b190675159fabda95c90f0501f451c94dfafa344be235347bea59e70ae1d5adeba8ce2b50a9db1798367d7e239d382e0584c1e950cf4ad9af2194ff1c6569913bf8a867739fdf43ee2b4de13efe40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -4dcd1248d590cf321b84a1bda855f94444550c4d3fe9db72c40f1e46455573cb43967e536bdf297b3cbb2380da9d283162b650147c1dce08e12231f6f8e67fb7dc9d876aa5b483d96ccbb442373fa658a07dbfc3e3f7dc121a8c8ae1a81da32d6148888d8725d125a8d19f31f5a782cfc0f5c6f4976d7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2dcb2bdbea86c4f9e372621eacbe901962d5f3cb6165a08ee5093af60b98242b05d4433cb76b22e609a16d9867122b2c24f835a4e145f9de0d5a2e29d7dc1888299f7fe1e119de4715503f04ac79a00a53c6d220806f3c373770b11161af2ea864a694fec5d417f6d22abb4b9c7e18a1ef1120410177ce000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -383ae5467a056a033d84b480520555525b26bee4679dcd5f8f1d1509ff86030d976dcf02ff39c45cc9da1e165ce54845ec5077e71a7286a26f9ef3ba9e26b4422cd9563190138ef8948eb9d238ac30c4d1a4efc228111323277f740cdc0f29451c685538601b18cf6d92ff292a7858c0001b3c9daad412000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 8b18c4317201cffe6f75cfad3c1d27bb515a6b9410f0cf0f080ac4602fdd3724c9a315ed4c4f0f9d977be60b5261cebaca387014eaccababb80af44f56166a820614df13a224c68dbb8781c3a41b4d335e4ff8cc76f6d3ed95990b1d359ab06c796cce3a769f898f7884b5fcd7a1459166b10db5347c54000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 878abf5698c1e59044a9a3b726b134c93f92bf14295a4ec207ac7b9907f1b770c9bd95576458b12112e69ec932eb7ea64e3736462fe13cd882bf10b035ef52b9f9e40c504d274ac6399d86b98fb7ae312f6579b9853768d960a4f7297b88eb3fb1cc98cfee008947a21e4a78b7ee7b59d1923bcd09c26c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 19fbd98e49bcb1d26ebf1094c5baa53a8fcb391481e1c48a5c4757bbaa8c8bc52e776c97b2773e0b59acad7d6cb16b2ad2e1a6b440a14f15c34d81d102be46c20e093e96b4fdc4fc029905da1c71fdc1f77bf3c095523249ee787096bbbe92a87bbbd5d24f6046cf60900ae1c02b31b0884369763694818000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1075534c626d32298404a07ecbbd7593f79e5a152f1caf21de28efc0608c9fe844471ce1ae3626b5616e6f6cef32b02b92839128c84580de3997e8a3d38869e80b3eb8c5ca4a447642bc7504209ed5a061bff4315856a3e686bdfa4f600a3bdc67bfba9679678ac80e2afdf020364b122316bf01208a1c8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -6339f7f0618f4bf29e97922730ad5452e4009c3066e043a32a59661e6b6720a7eb21658c79186f8939f25936161d54f9a71b4cfbb422014d104abb58eef41c2c659a7969147bd26321e13583123295698958ed73d77e088158b26b8e610f8d2de4f7e681b925ba79918d9f4f06ca5e97ce637a6451902e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -f8242cc4711839007ca5785f9f82c6b8e170091683da65bbdafd0d0e1fa4d88de562e474c6439efb81f54eb828382b152985e1853080644845b63b2a14678d53752f8867532e61782689f8330bc55f98ca49428e6fd6ce5acef057a17d6320fa1209de0e1e894d6f91bcfc3a3892f15f8cadb04c3f425e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = ca67be5b9124a1ff74bfcfd4bb5f7c81a4d7cbe490d3a10318c88eaa5004c09969f427708394c889e76699ec990b893436ed1d9c33fc8e8ed70fb43595011aa1850595c0e372946b41f2db58686566f1cd40f1f70d0a090dddf4da9b3418e700f2c6056a9eb87d627e9526b93a0f96c871026b3784e8220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -33d6dbdcb2bbab3a407a1f7d49baeee711ada1f7ebf669aa46aaa9ffaca0c698a402672b67eb6eaf57cdfcc221dd37caf38526d40d9fe0573c7fcb7973fec89aa9b10ab5ef4a692d4fba9d3f9771f75028dc8c3de233268636e9429f90401040df113915535b7adcdb09bc3db687a017899b10c1f79d51c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -8b9aff023790e16422a9fdc0067bafff612df67b345fee509fa2bd14aa29cc17a28090830cad75d2ec5d97f8a99360d8da08a1f62902a4e50f47d0209e9933ab575f6e82404ad977c5ce738c0da80f8a6a34d1e35c1a0e7f477e5b2b550ee96a5038f68c188f924fa2bf661a7b01fba9541bf2400beba780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = e695f1a9fc7c302858b2144b940958b93593c90c62c7fc9267c582d052758569d7494a1c67c523812bb48810308e45efcabb3659d771751cf2e4393ba5e3855653b5c0cc1039a1399007329b481e459ac02ceca235345631689f060e91da8e9bb41a0d24224ac02b59f425ea9d0d0e15d9d628a73525b780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -56e9a0028840b96fd0f38ebb95ffd1b540c1edf64b92aff104b9d7bf9d1cea05f58020840456c8da9f38a14a0b3d9501f5e3fd0b8da0bdb84894cde81c85f107ca44b17b1e92589a3b8dae8be37b6c24b1167024cd5412868cd3ed95d20e4fd9db5abe7fe08dc8f4b34560d6af28275aba46cbe389016900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -28a270d88b6cc7aeb028b331be5fb9d5560ce97f54c4dda9c4f8aca6f004a2d78ee998257b86f8262197f0959790128aabae05c094d8e82a65909f5d0e017cf1d9853041102758d6fd7f20b41723a0e90cdb875a7cb894a8e9af66255a2ee07e1050e8fa32e4e92ace4bd86d53c7028261479f3e23780ea80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -f625b8b6f3c43b0e1fb9b665bdcb80d94b0ba3ee46b236000b0d0be55bd27450bcc1cb57fc581a92677ee52d6e726e6a5be4900c11fbac10dcc0e9822b0f64be4c373fa386a3448625e2ec54f74f83baf5bb8a8b23d2868126517f561d7870a0313c419e27f8f6dda15bd2b360b0890c888f0323129dbaa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -f0828869220db53a9d0b71f0fcee806096876be2764fadd6d70774883af7088b9ca1f24a56f4ca084656dd7abf85b9de697d8dc9573aa2b5eaf6f627f41367832ccd6f8ddb62f8a07860a3ca416af8b365d2eac2cb620477c2048b5ef2a1a741512754f5c2cb9e4b7d3ab14a9b314a25d4bc2c005b0dfdf00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1a2e56853009c4cb41ee5e2452a086b14b501a3f192afe41b902a9aae5a6c7b787f609cab483bb929e9f744f648afd3dacff9b77043a149d46187bb741b80e475aab3a439ccfd569fb7d34cb055e8cc3e913388eee1cc52f570417381b46cfa6970268b097e142026464e56969bd1b76e93ea1a8b199cd5c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -132cc79aec2c5668f4e33a835444c4cb3a5153011c1c0bb20bd93c2f66b58169488222faaed7f0ccc2677fbbbd85889e4c54bf2f48c1158646cfae7e51a88a0c6d1cc2ee70d1b3de251abda662f99ed2211b9531d3db98d2295aad9d811989ac1485ac5e87b82b971f0d98d3674de136599bd09c2392e00a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -6d5cb6a784c06031f3bd3568d0278541e2a70c0b1c3bd224648e62fdee87110a1130d50dcc908e08a7ded8f62d245759a1e75ba36096fc626794b55a59a378efa3dc9caf1c58326676837f6e9748bed9e65b8651245591aed8bb66108b2f4ada085b47bf283621a5a4045c2381059ebb0a42b3cb3e49e54800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 6a349d1491043c0f6857ead2be209707bd67b00a90b21f65fc49dfdad4af63a48ba6dd9d993be0bc782c3a479991d022aacf3ae3ccdad6a879865a06f912bfa1ef997663da88b37954f15e9d9386dc85a4ef8bcb991225a7e697ab91bcac5152c1cce2b8cf93c17611927ed909acdf016ca97c0746b2469400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 3400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -38c326fd395b254c83fe24b9e31e2c5764ede4efa5309a467fe4cfe3cc792abcfbae1a90781225bc538e12f69583823482dc96c6c01d5ca4c6486407606d117a1f2c8ec9bd38ee2263e714e8836d45beaec19e8f0362ef6d96c56ab10f85885ff94526dc9151311bb8d61f3374e6c0b2b7606919dd2e0558800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 183caaf2e63f1f4c91f5d7f20df80eab1cd470814559b6f72c8269b0e24b01587bffc8a970a5444e85d85bc6706d6e8b28caceea0f205cef1d85bb88ac1498964079cb30eef9d909a4c868f7f5f73398b5666cac4f19f070ab75708eb7cfbbc5619e677d3cbb832f0f586ed24e7de4b6467d92bc3f01e2c0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -484e2a9eb3e9f1b7dab570f3c8fa4a94e282584f39f2d2201c728886fb5ce3a7269802b528be893da6d1ec8823cb09ec3a8ea7f31d434e6de270da7ef8b2a82e68cd347165f09127e18e7316c10de7720c7807701a96db0670ec63bc626341f3db5fc416ef6f4576195a0e9aff56849ef816581da3774676000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 36ea685f9b5e16eed94fe64f1a26c9559b3da6013f4b1ce41cf5274785e90d153d9839faf0d236f7c9642ecccc8aef9dea454ef09e0ffc13323038de384c30f88baaaf06bd7accdb44f4330edc80d12e486107bae0a2bf0eb6e7ea9d5da2f4846c668170b0342dc60eeb5926296db742b65083addbc31930000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2efca3b752eedc4df5a6b5f7ae6567de76ac5787abfacf3783a38707018225b98a6f7f6ae76bbab2812a8d981d206806f63638bc6e3a6a64a152a8cabecf8f578f0e0d77a500e849bd9fcedd53e43a462725bb508112bf23504116b3593066c2c620d773803b730b34324359ad8f6d730c76fb5562eb54ff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1d249453039e36efb68678e19185623026fe37256c9dabe0ff0cdcc0f5bf2f4f2cfa95d1834a75a4d34d37111d5467a9f967fb3287f3e9e5da33187da319fe8cb622cebde53352066c1e41d572832c243b5c15327dd712e94145fc948deb3b10a28b5ebb19e6ca2ecd5aed296dac3563b1a8e521894f4a81e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3ad7859a0d78109dd37e437e76b03d575f43ecab4318fa5bc0edeb7b1f21582afda9af334346b5c8d1b71ff859b956b629c29a594c9fa9e9aaf8f59e80a1418d0ac9fe53f59787c7cada79e17471fd3c8a2942566eb0fbb59415c1fa0171bdab9c3b9c423c362b06c9cd5a6d05dd8ebf72f588478dd31726c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -d39d915636290c75ea99a9b35ea8de378069cb95ce67c71f58c2aa8720fce19db80efe41ab9753fd5783c2a9fe0719adaa8d64a0338c915c420cdc350bce3619bd61ebc6421cefdd508c2a467ad7ce7e91ac31ab1f2fc83261f35ee6d5128205141158035de23347ec1b817b08ce57f3f133c1eef93e193fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2c31f2aa4ef83def0df007e9751c6a23a3f360ee8fdfd2c98fdf7e7e035b2b559217cb33bd3228b050d648e92043b8af0fe24dbf67ab86104d1b0dd54a4c361359fd8ca8d45152a596d3eff430dafada4ca642c92f1542b0c45343da0da0315f3ee96a979419adee1603e798d6971f0cfd855bb9e1d811c4f8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 6ab9787b0266f75188f87762fde6529c0a4501594934828a5915826af5d8cea2c23797ef3fc90aa6d9547b851d2a9df9f07da0314af720977064d7a6f731f3084be3fc7a7c98226e069538c4a14c1533c082bd75b64774bd035f6ed9a44e5a294c92e79e486a8011fe86e78cccd85151e179a9c66920b5440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -87d9f6fa9f2e2e2bc2d89a008a26b169c62c7d1e3e70c8c2616052e30f5452ec6286ea656e0b9590106fb978ba20e9b9d602410c913e1ef1410910e112cbcb84bb5ce9e10270524608996e3adedd75609e95502acf348be0ad708f6b3aebb1f6d6b03b09778a11f20d0279d7ad93b9936c064a5bae83400d90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -cc166798f648983066a376c07db4e5e7fea10696b6904de8e1c7c07b0bf1855d9e230499a6b5a25cac7e33864de6a813816d5bc2e33946029267b3dd0582bf32bb2b21410b5cae6d4269a1ce2598cf7ac14a1533db688ecc30e75f20c48efb6f5e62d6d5cf8449bf9ac17cc9c29136dd99e7d0a7e789d56210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2229d76ae7026b1bf4c494d7bcfbfc4cf2907754ea77dc9a7965fd74b1638bf5966817ecb565261f1810c1997058cc508e8e61f9bedd77fc2fe70f1195f175fba7204ccd466768d78e9da06c01b955e2489cfeb709d9e7aeb801fdb0771d3fa189f976eaaea993d5d0b81b8b671efaf403bd1b9b6360cebe700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3872ba9a68d7dc2fe46446aeb3c49d17e76af1decfd9283817a5078ef6cdee80602f47d08be6fc95f9ddb4c065cce869842c165545c535c0e8d95cbce60ffb9be1c3fe67a7accd28eae2fc871c5b3fcfccb6233d26ce06d4e43cfd9fb695be8d273f1172b40080eff478ce24848b4567b6f6bd6d3b451c1f5e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = e629e8f1e8b39371a90a978d57418986c06c6521344202a67e42892665e5a96c29776b6d4f1f6c38d421f90c4ea7950438203e6503a5a051f0b2502b5fa2bb6eb8890a88e875ba8adf94cc64f75c5c9699fb3315f503b8387dd114525f6409c16700689dd2ccda86a70cba904b7439ccc3a471c7419e11108c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 9060f2d28850bbd925f07f54339a5bdc8206be39dbe3bb69af7f8302834d040dca319672b80c108883e7856f0b792962582bd82cb9c55d741762af09bc0bfd00255c9728190aadf8f7e76b3a55c902ed7f9d945e543e84bcc1ebb93770520cd9767f7ae4ce11678f14faf4de6b3c1cfab01549f7f414e8a8380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3d044d97f5ba00da94205a02bbf53f5fe70c1f888137caa84c8492d4a91c34c8dadd2ec55cd8ec901a9b54fda6343370481ce47b249c2b7543676e51b1323d086eb60f11aa2acd2238d2d7d432d234b9cdd2ee4a640786177cd94e4b4c0aa9e689322b7880d46c8399dc5be9bbee62a4cb584c41642a8975d400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3a86361c60a9473ffb082f3995a5b80486a71a39c37e55b724b24b0f2bf01f4110c1f482fcffb4c64294a84f83aa4ba0cd6123b6d7af4e9d2f4f9ec56fa6f865b8f82de069083382f5265797637be9fe2bfc36eff30dc1c734e5a004e225cc439462dc3e7efb2d7a0373da7795680fc3f34028231fcafecdd580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -925f5575616e915f9a0e4d0a37e5aa9741c779f69e0333523b432e3af4b84959e65a72d2072c3de90d67ba57df43df34711970647bf0fcb12a31504031d55ea68704f574dd8c19cc548749cd72ebbd9a1e30a21e6364312d7303845c218f01036021f8ff75034947c42bc7defff9f1a98a2413eaf1f51738e800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 5108ccf531527010e18e9c267a8497cfd103938ef21706742579fabfbe4a67c3ef5aa55b9273f465135922b6e89f7539968acd044fc4fb2b810c054650cc8f03f6c2aa8010b51dbb1f00b71f7119acd674f730a2314425f4b0f669fc85c9ca3bd40ca63e22441e7a6f7a8970da90b6e024af009ede5319d03b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2c258c31aad5ceffdf560e1019a10733c7f47c2a8e6e5bdf1d8dc81d1de7b2ff122e86ec968fbe90d1bd52d482d3dd1bf04b2e0f2d2861e97fdebc27e18a24a7f766f32318a4d3073322cade14ce6bc54d7735da0888cdbf923a6fb68bfc38eebc3f6b25d71cd48e7e472aa12e93d740c8c9d0144d85a55ce4800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -128516c78d1d3cd91f8faeb6e2c59d83be9683bee9880487d1f92c315ae8a211c864d600aa911b2c4dea23145693ac811b99e114e5e7aa8f16bd6efd0dfa7b2a2a31d614bfefd6eb7185015f0a4e4a7d7d281b3fd730823847efd8376fb4f046df1e5da12a9ea0d9a9c7937f0f60bf0e86d4b731577d300681e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 5cb0c1ad9d07bedef928e9cc98f2ff20fbfac73c7581f854dc5243e52cb12afe8bd7a0f3d142f1ba36b51622965611eaed4cf420449a09f1ab1f7bad5b59e44c03e87b3ec5eb9831bb19dde6618b02d13ed1fbf882dfec582b336582584f63570b63b8e8772d821a070d774a4a227f1c5f23486b640167648a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -23d91b2821a0e3d964fa8e69e8a39da13b1c69488098b83d7f1e8dce1c9fd8e1a249bf3036fb96c0d74b5c863dbea09eb2cb0d33f842ca1e2e0df72560b469b596df0b713bde811704d5a0628aa9a74637dad9fa1f633977c12c46da97ad0a641bf42f20273e57da6ab316356b00140763dc77bc0e7c8476f8400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 25e0358ae755d33948981e61b4b395af4232f68f56dcf6df3dbcd33c811056340c216b52e17e842db3a958b38161b2f93d1aead3cd58b41bb66e11b99391084eb869b81298d2f93cca2eb1b74ef25f147928d50c85edc7ae7e9249d556fa58ab5ae21527b432980c5fc8ffc0a0fdce264c514109f41482c1259000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 207116c23f1fe5b9b6a108eb8b6575efe4f96ed462886a220428612b59f7d3938ecd723dbb714b4d175c7407f44a7473bcd6245aedc4fd6ed4ec702341a947535dd22fa2b48239c820a221c14f2090d85ecc406cc42f60cd71fa4fa6ec7249b05645dceb9e843d07d1766ef25b6560a06a2ab674c442564696a800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = df9756eff9de913850525649b8243c1ae331b5ca42fc72270368ad13addfcc0907b850077b7a9136a0b3410ccc4c90dce2a613d0029c24612229d00caff9b1d20d1ae3199f719daed6cd0e4ef83a0571494332f11bfc68cd5eb32c569377f01fa25e23feb109c9a1fefe2508ce98c8120ea3a9d7a8c522c522f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 16cbb787f323cb794e290007ce479c1d34e50ae2d646b1fe034b8009667864572a43f5b68f4cc6d441abeec286f47b853137e1abc37306e02dd539c5764a60fad1d3a65f995e7167ab2331ee91fba1929a504d9e100f381145a461221293c5ff9c46837e2a0deaa95803ffbe10c4045f50dbe42287397228774000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2db0b66eb1dcdb7b4bc1c9fe627384c9cc753899487787020a94638e60c3da331e845b37b463788049f468e6cbac4cc3acb221563a9497902cc35c4962a6b65b1d9fde9d11e3172036377bd425736c5cba03c4dcb8ad51fa282ab2cf95021602bf53dccfc0d07154427c0a72d429bcda990b217c7d4af4cd7566000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 6b2b028e94560b105c6876f95ecc06214a8df3cb2230e141ca3e9028c310ecce1c40979161fcbe7d676c720e45c7899d24d0720f3e3c75b328037e17ef55a875c9569725ec5adcc39c019e7e242f2aff1f0eb56b1397eff1730e8d6ddad1e0253d9cd43963b7471eec2713ad95156b15f99726144d4fab02542000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 638d6894cdc0c83e288cf86857f6949b81069bfe0cd04055111f129c325b21fd98d3bd57a1d61395395db75154a468ee61b42bdfe271ea827cd8bee6fe0695c52c654a8cce146dbcc5872861b99f5f0523923edf95d8ee128d2aef2f1122bef6c19db5377dedb0282d763e96293a54585307c6a84ecc4a1d6890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 788b2e25542c00390a7375f209f5f0b55b4cb79e03cdc226d72af8c8c87b192953e5c938b74a01a193c8fd38910f89318d4c1acf8572b0da417d0691b377390bf987266c5c15db27f90d0dba4a74f2b7eac965aed74fd91b0b2f1b1fc88334f8f24127db1fbb149473a289fd5f31d6f371ca29b485adfe0bd0f8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 53efa85e847dc1570ada6b3a92c08751d4afd36ab2946674dd3ab9f41f5e026c533f796b7008b52833038216b3588a78ec80058629b1f5956b79acd7da34f8f4e53fb6cbc8a3e3e6e806c4da832f0974eea6063869489743bda5513aa7dc5498f440318a167786c8810757d38e9a7f1c368c4384c66caafa5c50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 39161936e5a08fd9855f62bf98510b02d2d4cc5272a28d2c7d40f51af55c84d946e228d4d1e9293f0c1ac86cf46d378e4a54d410af83c393e04944e043bbf5dc83670650a3d3c06d8bd105aa8c195bfe7689ec3b4a4b1c4dab8fd7cadf9fba387fa30b01a8067d4d84a3757f5f0c889efb3e8ca1f600a3aeecd70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = dca9afaa3d395a39073157b8a50a56b4e4fae6a6c87174fb29ca296f0ba1c350823a79e58358b48e535699c6ed70ec4b72804c535196c39d90835726e0f01ecf79827b78c757070e35bc1987e5d919ce295415ff58d7749d146204339d6e352329fd63b448cd98eff676e2685e8ae267b24fd0ac54f5eb1cfda40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 725831a1cbb4ddeb20171346581de3088f106ce14d134eeff3f08e559f3233c314ad1e2b8ad7d76e07c8524bcb1bc169581813f17b8ccdc091b5beb6b359b6a08afb38d01c8d82f2ec991b9f9d2c2d0faabe8ddc9fb3b528f0c09dcf50a13ea2bed6495ebe50485bbadc92fb8e45e94a37cd920330bee87cf7930000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -21cfbcac6b185cd6b600837555a05e429a45ebb20961dd82069758797dce2d321e8f63b34fd55d95ee1b6d4a73bdd7a000bd7d61c3d84041ba0cc7e20ef4bd27488cd1e98eee1a9f4e92902d934a20ab57e110dbfbfe1ee1e41ad4710610b135c04844f21d20d1de37092022e7a8831476644d18862efda17be820000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1d200c729f21eefa8e49c51456717a0243a774730140d3613203eabd9b233b6e3844ad5de3fb7c8fd579d564e955b1b177b1b9b0eecca684a4053181d83e318fca8058d0a9feac0848f7bcbe3b942a514aaf05442bae062377ad5c542253fe8bdc415e05791a11935ab6fa9b3d4b6e6d87f8cc4511fc787676e280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 66b674da051c25f230547970bb2281f49562e4140c9758ff95c036002fe86c0ad47ac987fac2feba6f463457aa07c90f0d171917c9196c86ca67cb94bc221c9bb2135cf4269f520cc8d820781bbda2ab0659918f5ba6aeea1b8c42e16185a998c5515509662a17225e8f599adf791e1217f52627983e5dadea9a40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = ff9a60d248d583c3196490317e84a1be1f67259449af64703e21fc79fa8d4c517c8a00dee4a170e53648a005d406ae37b213db5611ff74815757afe4195b6aac922c5b7e290b71fe98f9cc769ff3373e856dde151b83e40d2df300fedacc46a930e8912063c48d90498f6692c84b87314eb28152287bf3e646dcc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1208a6079377c1d43fbaf4bee4eebb1ac6af799d90ddd79d9d3488d9c1f1fe52349442a1412add946a1b2efe014bc9118e12c20630ec10620d17daf63cd3a8f8b4f81e94f257d86c6ed478a5611893456dc4077dbad99e05d912a7f8d6cf4cb4ba69446f62a5a56b836a77120b64e5eb01f3ad7b5d4b7bed431fb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = b47db1a2bff7153bb0434fd23f9069c947fb08c88ca2b97c921411877c69af522f880b326dade953014292d05a1900087b769e831fb76b360f49203bdc52e4c1502fb89f5cfe92fd37199d94195e788491c398640db3cdf1139503c66cd9c364090f697630c94bde7cbea07da6b2cc08b227f46dfde4e1e8f9b200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -5d3359fd11f2cd520bacec62433e8db28def356fde9dd2cb78911ac90f57667b0f0397eee11a8118f9c49d169c584daacf142a3ab1af2cb5347286166a8b6e0a9869ce50a879ed97791a3f175cd12a39d7ed247f829394787cb2ba8c5ac7ac60b2d27428d242d9e4542d025e665ef42e2cb2594d6f5eb038d167000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -402e754313e09604d68f4e3ff730f5f7e7d33cd55bacf8b1e2ed82c0c0557a5d5e68bbaabf2fddd4ef596a7aa06dc4bc08d2a80fd573878a0ac99531c1af8465ad4ccc6e6d567c5d5d13a5c2b5844aef28c507699fd45482cb7fbf52df80fe7b35887e20cada5bb8d230f223467f1c54f097a1a54bf6d0e8a4cdd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -841c3b52156e6a3c38a11df06682f0395846aa0011ea0574b0b76c2c0fc229d6ce3c606dcda5b6ce146768b1833a0450dd52d1f62ecaa62b8f60a6417b4bbf798e875b08aa14315aeee9f4649fe00ea268c2dde5723c4c5467eea41a3b33f8c7a8a0da32fea9a66a17ec3ecf92d4839698b287c0a3d1e71f212d200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 13858fb38886f134570e677c3c9f9d89e6f4fe8b5698e8c2e1070437c4fb9a263b861dffdbaecf814d7fc8ddc59f1e9a7da886b3929f272f21bd86482ae91a40878bb364347399fd4adbe83a4762ebd05074d648972711a84b21891364b7151dbc02915f0cf8aa7ff5312307ce02ae79f3769908ec443b73de972400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 76c6b2798c8748c41f86c0faf3f39d80638edae630f1090d53eab29771ec16500c28fe07bb7cab699f06927f7526e4781bbe19a272a6615588bfed2a46ba9d32a884b5d9506d8240fff924a3452c1ee97a9388d4b89b0d4ffd119091936616ccafdf84c91ab2397ce42d7c3b696df9c608ddf3e54d1237a703167000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 9bf59a255de006ff43310eeaf7ffeae176343dd8001eea6b5462accaf9d044672e4197d76d4bad38d588f1a5d2759f12363a3ae11d711284d9fc076382ca74d791bf2522f442e20f28a09813a885e02f5b6d4beed8fdb07357d51caba28692e3e5c31c2c3d49bbc5616f20107999e98f7a179a871ebbef407198c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -98c93c4165da31cd29abde97eda07c45d73ad51055549d1c7bbc2c21f3f5198ae163b77ccd5715547064eab9660ac3906d12aece3f15a1de981087543be1d555f62304a014edfaa89defba6e4b54b8ffd5a714c21b35129286af7d0318ec661c07104187a7602f4d20579af33857f69d66b6d040c09581eea32c3800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3d179e36a1d0e4efd4dd664377ebeff19444aac8fb8bf0c14b1ca8a5201dbbbcf2967265d9f57400a3b5a8de22506918573d1b564a746adb7274542a76939d3de0cd8507aa42c21b0819a82eaac30b3e1a27d710ea0d2192b55272e17bf7fbedcc13b808b8c7419063dca827460c382e814d53d174063b46a3aa24000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3b33561d2e57bb80c8650f7c37b56643e79106f1c720a918a4ef1b50c5d48064b74d45c8b6be850c46b91180ebd9acc348903982e344a567309c47f2148832005ad8a76a2c913c3c5318677db7715b34ca63e37de1021ddcedc8d97864c5fff63aa5305ce2dd9c5eb00ecc0b3ba6e0d6f9bb631f45b2548254c699000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = b5ee3a5537881a82d2b902bc19c03e3452cf8c68b0d51b035cf407fa0401f5ddc214214d5e370cfeb79dd9a6074b5b45024e434bd496f2c6cb0fa43c9d7c937ac528423276a9522c7e912fb749c1b3348c1c16233689acb941620db2ce5c17bc19a5951d8ba03971682a8c6ed72bbc567b35a0d51d17c3cafd52d3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2bffe06c2ffba0c3433e151cb05757b3828f3ba3f0c70c2c5904c0bf97dba9781472de29926f73483b306436f9090b4b348066a739b20b8c2ade09129655e4ba5f881dd0835fe1cd2882c47981ec9d8b8e17a3eb118b1d140154d256267350220fb511021c44d6d5faee5c4f44e01bef1ccf650f17698d8121b20b2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -9363bbfc49e25bee01810e26a43a6ed2fc656373ccd2150160077c21999f6ffb28e4ccb72f71d561e4c7e96f73424ca95fc0d91207390ecea5c9a734ba29d2630bffe0ca62cdb463a8f0c777f4091edbf4671c6c12084961fa1aa165d8295d07450b232a11ec4c623e90ed2509495c37df86191adb33a4e1f22502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 8c3177856867469356b377c22ebd0f1b74c9bdcf344d3bb9922831f975c5dde3a476da65cf0fbd54b0872841142fd8a20ea6429f1080c21a9d72f6cf3dc78ab0201dbc97c8300fd7e99d2ca05aa331d5997d6186129e48943b650c0c540a0a1d1e41e23ab53237692ffa42f4f479b1cfc4dba982eb56ccedceeb47c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 4653d3f456f75ffdb2a5ec505c575711d89cc5fbeea5aabebca9076b81d29b387c03514d026f4bd7fed944317dfb67cd9dfc96c85da5aeb31c1145a751c5274c733c69590356fa1f8b84c65e90d47de3a1b0d1d4074c19f2ec32d7d954109312d00e187fbd0ff6bd5600a8d7fada9eb174e4550c1fbbee2d05554c8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -195e1bde5432f0770e7919b938a482f6925066eb122053f37774ca6802f33d94e9ae8bb48f189a253ff709fd54a72800e0fe86ed6623e33fcef1fcfdcedfcc58335f17dbd231c30291bb0b71de31741fe35f8e917dcd0afebb9f774234b744bdb453af05317e517c3057802d2bb9cef2927145d5f7c2417fc47f8198000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2988e0d78037693085ab15a5cf1232e96f5f0cf9889582925e1c278317f9f81a95243d27aa8121e70c3aff855d7d1a64ab11b04daf74564b9846b2040054313109f5f20a4c54f2d915447f8742d93f63ce5e45bebddc42b5f106c5b507c77c88622e42f527596b3f0d615fdbd36c7f32659ec81e0a27744aa5a654a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -571c5edc3314c11f2037d8b6d40beb11eabc217d2c30674b642c44532aa713f6acf5124688efd83707cf816d48813c110e38353b2d93cadf8d10b50531fcd7105b95370445e3b4be146dd27ab0a8850322106f859f895870a86f555496349b7480f857f5248adae6bc6cf89e9d752d0ce53666945c085f37fbc42710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 7c4acded9db498ac3ad6a84603a167c1a1a84de344edade71019d0d2e9a6a0dd1aefaa29e9310b1ff3ced5a9a0cb71cfefc6a8bda0a5c2e43bbd5d87d48cb64bea99acb6dd5f3d743ac19590455207ac081a9a4b2da914c70666f8f57250ba4099b194b69c823212c1ac7de9cf2badc85ac8abc36816db9d74f31150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -742c0ddb8a791965f039bcd066ca51f498d2bd0d6141439b1d65882cf861216a6d55a32d24bd58f2f9d82baa87969581848983235ef6263dadf161b60f01173a240d32d7720fa91237f6438c38c845013d2bfe19ace5865d05cf01939cb677f01402db1337db5d9ad842d56a0e0c6a1aff0c1f12b17602ddfffdca20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 83547886621b70cabbe0c9c41d1dadaad33dad8b45e194134c2868eabbb9039696cf0cd28fd4bfac182283d04059a74cef00027bf5209e79ae967dacc373124f0e21149e42572dbd3071cd3f66506ab2f81d1a83f62442cd063520075baf848f9c885aff295d397fc90eebfdaf94f731d3a42c7cab45bcfddeae4a40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 87b38f78888717ee891b89a8754003110f60739c503f05d0d70f19fc594061feac2bd0efd2ddf2711fa6a829436731dbfaaa1b102a6690a1d3099cfcdacd99ab516b8a4c0dc94db3155882dc31251edab8b02265ce7817d016087f4946ec45aa72b7a9794049e037e9bbd22eac07984698b4ae2493df861fc7182ff40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -88606809e28c2f8e60ce003a807a2b296671b34b5eb68c0a411972f777d7a5cfaf17f99fd7b966e9aadf30c460b2bc15ee1662c8828c6974b899570720820f0af2ee529abc0c0a4b82ffb9ab2d222defa6e267c011306b1616af0f0ab86625ab461ca7ef64c6e88b76b354b4f171109d2cc00a626ea369f5702118e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3a75c1f6df832ab583216b36dc4d121991d98dded7211586b58e31bf997243ad331271c6257957da0c63f67e2dc7ca5994d9b8a53d0f5e541a9916f2b69f0310436042e74d1df47900a618c2731c354600d1ef5cbe9133d424c68964fca3f426ffb078d2cbf00d8affac02155cefd7a5f019a64a40e551571bac0fb800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 34e7df32a6153f4aec68bb4ed7af88f31844996c4113566621d4e24799c5651fd42caffb49c3dcc2440cc9e778240289b9f137178e1ac3a4c385f9b53f690dd80fc5138bbe969c1e68d545ff2467798e079ee7a9ef972c80059352c55c6aec04678d5efb45aa1a3a11b80d7ae8cb7c4b56f1d0a08643d154b34164cd80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -ff6d5a3da163d44edb4dce734a15ee42265a501a41e2b8640a1e14aa39355b6ae39a1e1d71dd4a862e6389d122948979b9729fe8eb4a2b353f5ae7ef8dae0c0bb71cf356af893a847b9454ac1dc3230e1427278586da366cddc693c5c2a7df1691bb6cda28d1775965b142a5430ec87cc6544919fbf66788509d943e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 77172a12ff1c5d696541c7f3357ecf66a182e2262954944f5e2e94e8802480d649682b5b867777b052d495263ec876bec84cc8223cfec015a77d8c24171a9c2141a2ca0547cf92d97d3bf17e11c9d308d86fadb8b41192ef0726958411aa97d86c62456220616354d6ff8772736f490d40f3daa3bd077a37df95eaf300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -fd977386718ad7f5c903835c46f4679c1bb4f3cd685e63c3cffbb1499a7e7a024bee803db563c900b091e7aefcc3f2facb3a1a84a73d097ff5ec456331173d1711f1b720e0d5cd023e7baa0abcf1d86de25574642aea7a12518b45e9dd199244c7690d1d5dd05c85d145af3a4d13fb15a087380768b9c1433385873a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2aeb1afa911597c72efac3d62dde42ebf0a3747825f6addc173a496e0f2b0f3379b1b437ee01307237201a98b82bb7b8efc3c75b6c1a051abe9427f49a21b4c08da61b6e424c91da9f812c48bd34dcf7579409bcb57bfe229a45c85c3fe708b1dd430244e428a84d6abbdd6e6cf60e726ffa39b0d46d483c6ea5f3800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -dda534deedf303e8c951cc8b22cd423c10a013cccb8ab693c714c8827951462ee941c0203fb1e44460069c85aeacf8ad340c42fd64a6ae0530b9019f6f19d9b91dee2f2421e558f265124fed3cd7315f5bb3b4a8740c116e85a330583077200b8e08b9dc1a19b949498ba7b58ad46a112b1d0e04313c31d4da64efbb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -65b91b20498c9c7c4855ba0781ccdf503885a5ca64d20932e9c77160650dc019ed758cf3b825cc0607ccde2475c5d7b98640b964547c4a5549170b703097998c5f50f1f50b590bf462c52cdd2c286221a9f55477bb2ca44e8d84de6d7a6a04411bb3aea1a21d9711192060cb13059c39cc95c42bfec648cc359a0eec400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2338a686a912fdd26744513a25586dd3f0a83426c5485c5bce03afc45c48dcfa45095e4bed7266001a698d009da9d8741aa192d63678e2ee3fda97c485988fffc438d2ad1bbbc0544316c958bdbdba3278b2a9b7878c3798229619c26b8f043eb32eb00ebce97395cb52e43f5136d7a451f452d7a5e1d1908207490cc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -62763b2c80252956c6ba69952fd7a4da0316e326933b58d8d28bc800dea472df2f25773a74bd56fd085e43b0bfa8cc2ce0b1d2305c496a55098a63318c2f0c41b0c96d60f705a6651be9e749972db9f4e0f295c96dc7595873047dd4d3d39aec37261e674e0a7eb44afca9073abc750ef1b4ae4c51e43641bace9458000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -a09a615b8dbbc4164eee173db4f7ed7694d4dbab39c616c166d8b7415b12b0aee07c167f25636a2c41dfe22cfd53e69251c92ed8b81840b52bf4151fbf4d4198ced5d04ff87bd6d1e62dddec4719e550ec68c7e7ee9d54847aec82ad6be66552d5f2bb6d1a086b1b8f48a76157b006fc1959c21287db125f3d6d2f94e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 8019236411550c1a232ff011be4bd4a7f8a1a36add27c7473b211abbaa04eb1700c43d1638637942de8e2b52de8ed1e173f21e99c4ebb919033f3d5e81f5f9a778a3683180b9649129752f42fefa25f0473af01d5bfc171f1d23e0fb56ea17f50c36ceb85eb6d4a8536722d76d3de040ca8c008682f028f9527383dcc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = ef176cd0548f627aa68580c015508568474a57b351b79a72f5550c3af1721493865d0419884c94f0aac8de7bc09dc516d56b64612a6113b025d910d9d9c147fb6e610eb05ecc1f3838482b30f16808ceef35e888b881ec91e950992e3a6368991bd7d59d5b9ea8104d28b0293c1bf26583c2ecdad118293c5d4c8302a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 207de71220d3c498f31b4002f58c103bf0dc91394d16f50789c334eff81629deadf5db984e109f1b905a2adfff7d9eaa0da01ac0b369accf54002a1c7269270f4e9d3b345e1362140e6574199a8b1546f2bbd62bf6c44eea68d17d1a5962db43d464afd34b8a8d0da895bba38003916cb789e991720a0e644247fdb394000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = a8c8696c34af7c2564f341e3ebdc55d4c9bfc4340c49e68fe41aa2ddf1517147dd13bcb53358cf17ca9d0e9150a96425345d381c625c475e01c4412db2b2a4a9177973abb6032e60a7a756ba6d9944ec8b5259158ea7df6ca63ec53df886383cad3b376bf61127a501b5e929f46c7cbc7e9a8b377773b7cfa5e9325404000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 618904aeb15733f7acd33fe331570964d2b90511567f90aded691b437a10efb80fcdc0f33295990bcf12ff9b7d805358c8672e79c19f278be5cfd45fa41f10af926d62c9e7db3a5aa3ea8cf6781c3758a0ce85bb44611517eb2d614163b1f29a33813fccfb2607c311524ae2d3f470501065f68c9c4aa9b281cfc1181c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -23e4bd86996a3c723a79419735a5680645120888264251835f79f2e2f27351b755c49bf424cdf9a076de8f1efed3b4eca33b1f7512d61cf1d1ac434c12152af7b56bbf5bbda31e2dcb8ce7f24fc377d1ef139d937f1729fa8ca13e25ef1d3c9402bdc1d585fd3c74cd334f3602ca7dcfb4bf3ec74e662ef5f7faca0bc60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = fc4337d9286de66a8fc0620bb5eee0d84d0647ce7dd0750fc8d60477c4ddd17ea7cfb6e37cae51c2e910d8fd769688aa79375e8133aa88d3b7e7ff25138c2c0eeceaecdc5079e0e385f517f94c9c9fb2adf25bca54e07ce5153672a5ace66ffb6b59de977ca903728d371ccb4a2fa03b8088e3550065cc2be89b3d9448000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 8b4e5f14eef22c3d3875c045b834190e7c6393dafea9c7654333fa635c64454600b006414770d933b1d32b9b2a5a4c6ad45344d5acc6b04c8c1828b69216e8d84b56f289c238af5333731de0befdc3542859ef5b194bf21aaac2c65690ae6ce4a8b283eddf0eff36dfe5a47b485a72210fbdf0751759e64085c4d761c60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -eb0ff79a51a7201ab35826acb6a989d227968aa9418872c2cfc796c1cb350c2e9962f966242afca44dbecf8b29ce39eedc6a243a3ea0d834c8b564e1b4eeec154bef25d92cefe0c0991405a7c8906d21a319340f8a68893b5c791b4742f668e03a7d320e241e39328c6dbbc1b39fb9aadfab2b9b45ae3a50fa8f66dbcc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2f688bb244b42b2d81a3916ab131cfb99fac535c09a04d5e317f2ad40e324f39405c786c9fda059308d0fe27e3268d08c1e992939b9b11d30c46e5bde38966df1a1dfd7266604d48646f27947a6eefc592e5e39eca15dc356b7e0167d1ebad1ab4cfe103054c346504679c9ccb6936ad66663f3018cbd9bd02b5f7bc2ea0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3e075c62e753f95879405c932d23486d6f582dc9edd61dbaa3f922ce83cd9fe47624f050578c59e3a8938d51536f49d329b17f4b369bfb58b5e0621759889f4f106c5f579a34363c640133cf2a453289925662fa92a3cfa089b1dafd636d003ab4fadeecbb8c6aa6560271f55c417f933587a389f01b42f6f4ef06e1ffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = e2db71c0a47d30ffb02746eb1b82199e2f6f2ae5080eb757ea8aafaaf6a337415d59894cbd8eb1116ab23e095d7d3af6c5f7b7e58a06f8508d4b632741c4e587f2566faa0fe9c058e15346b075b84bbd7c9f29078fc084b6729e1bc34ef733df154b9e82e0a42cdc6c300ecb252bfb9b6cfd1a6db947a53621c2af916340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -8bea87957fcb0be3662a250b913a7b8150b67a25af8c84a2a0f57d56b8b5245f548e616ec2631fd8e0bbdc474ef24b5a2ec59d109dfdd0610164d661616f2b7b383a955182a578e10f1323d773f25c8be307f810cef7f9cbcaffad301b38235af85019ab1bbd2a9ce3d0f67b06f3955545344b3d7008674b9bc48c868600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 416f8a67d9cb1579006b36311121f3bc5d1cfb602872a4b703041afe73fb8b8e57d961fe0cb8093d20d58f6b6c44e4f25fa499dc1b4f2f01af6b1864963f9cc58e113464d62271d401cc8bf5e47be0331fc2824e12188cdf3c9d7214bd415b6c49f7dfdf57071ec1cdd48502574a18fb9cf244ed5c202177929842b68300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -11871949c1deb938084b82205474233949354bbd2dfbe4b5b509a5c220f3cf071793911f8e935302e3e9886c41927690436ad08c64057a0ea080972cad71c833c560d98e2f2bf75f830d811787a542ac53000664905d3a0dd217966c8f961c1dae78f36b11a562d84946191aa3963549d0ed688d434a2a8a6ef804a113580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -c97345c0f4d39fb5ef3e2a0eaaab76b63d32300d5009e627d1b25ab7daeca66fcdb66f3737cb4320248602aadf01872197d8db19453037168e83ac4befa2aa056a0965bee4df712ce0cce374d18f65cc96628b88c383afd0f76d23dcfab30950674eb91507fc0487839254e14d325278541a7de9841e1b5e45e7750c2fa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2ce483f8a675f7554e931df7ad5a3d31b6f7ffb7bae0b442a0458827ca6cd3fbacf94e828c44dc54576fff5d8064478df295b385bf4a1a9b66f954b8035e921969d4ca5f6d46ab0314acfcc81c6b3900dacfa0d77c473bf66d735fabbdb563475200ab52dae57ecb9be438c3a4e35d6a46b258f7265bbfb9b7bff5e7bb600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -748ae2b7abf20ff1bbb704e0598529ca8abc66f6ba12ec5197553c73456e9690befdb624203a9b5d967ea657be7fa0c42238659d5a10c2ab207813013b696dd86a046b9d16876dd2e81519b3da2fdd247bae1111f8bce5faab675498ae7cfc739fd3c480b037c87f544e93a3d51858f9e84e1d5ded0e065fe92d653092200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -30fae4da020d1b96f25e28250e7dff3ed50133fe66ced7659dda647d0febb9a191b65872f1379e8078cc257d3aac4eba0d57010a03616cd55d7fef522822ecff283eb683c2cdb7ad9bdfbadfbcc75bd5a474098507774751adba349e72b6de4388284fc8ba1dcb2bfd181ad55a31103075db3f3b0a8b9b06a97cea4c755600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1527bd8a59814bd5034f332e1d1c1104d109feabfecf4201994cc15a953311f550e5fa6fb63dd9d49404efeb1e02669a8b3dfeb6c3f8b7c9239b1ade51a3a462deaf7ba1b21c7ec2d823ee2eb31449c6b9338314b938b5f509bfef1e293b55237810e2efc22d92cee77696933d1d400a3f23e79c406a587eba1283f2403800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 92b4114cd087b0ff8037873ceb08e2e4d70eced4de49f514e2e12f4fca2aae3b94510fe7cd4e277a3920c067d56de572df9ae57f3231dffae00f4bd2b08918d9cc71a32d20335094b4af4c464cc6860c90b6066439c8ff34c37c2206ad32bdd2c8e2546fa695f8dc4fd7f2b85c97c912a78afcb0ace03cded44c4a65f57c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 16a43b210bd2aa20ddb3cef8c3baf66f2291b05adc0df2c35d7560d8e0eda5f19f11281d1c7b40926333e7f420a1aaf587c9bc216f2f579e4f0cce3af1ba5218bfe15c2b63632a0a006a67d6264374ec3927b64cc76ee5b5e9e5897f718535fb0d917a429ceda378b0f76c9861662f3cc9807369c85690578868dc12804b800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 212d9b2893f14bd963373b7efcfb263cfc9cc95e345908faf4d283faa83e336548e5f257f8da850fa4645a9f28df4c36f26f3189ae626409db2de11a3b8aba3e2d89e95d4fc6937f1c452e916ce01c91bf8314e4bb1e38a26035fb33defd0be2ffeed1e50c046a2cde9d872fad1650d4f6ae82ad77eb9247fcc3c108e279800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -4e48af5a539eb16cc84fd2dbd9dbdc6552d4992fa3ce9ec4bcb17cad082b73474afd59efcdd75720d4d198dcf05bfbfa9757c227aac4c0362a507cefa3c413eff54144c61f08b5bde17e8efb0e5ef5337b3dabbbae1fe34f96fea04a5c2c3cf24dc90ef0f14dab82660d2cd61035c566e6484e5b8861aabe29f0dfafef86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = e8ca19bac0c67881165097eafc4b008206ecc3c58bc496344c0185e5d1f12cef44d856719d7c93941313da6ddf80c39b6320ac5f8cbec308718feff4d3534489b810045fb38b1bdbe761e465c23c6935759aa0a0c0ef551209e979c6838ba23988d6bc49fc06e5c1d0fe395db4ce0687f9c441ef32149e3f8523245272cd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -19f21057422a4f269fa2d00dc46669876b84accc161d198f29d840e936a2910a8b0b6593a54f1ba3a6b3cd23735aee230f0ba1855aab0d0bc9f798f46f89996bed9e981abde24e3b593a53bd9ca0997f25bf95743213a0cdb8051a245e3e274cf023e8486585dc602719e32a8754d7f4089d30c86f5cc995e08d52750230a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 36cc89303c9cb72d9fe47b167b9c5fa0ed0f2f326ea4d1f4f9e50cee4ff76912755f1f6496a634a18092303f9725c769504d9e5d1b4e351773587efa96b0fe5177139d92fe9b72d9e9d3adcd12deae96f59b493dda6edcc2cd2d9c7006ec639d4d7a538a0ef89f1bb010e5f0aa2394a0662fef59555c7ed15336e7cf5215c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -d82d5a96a3b2b457bf961b01030ce0fecc3578137b30e4eb1275ba2e66806fe90eae0468418d0f9629b8500414e2b9432e7e89c36cda2f1e2d25b96a67f12773c27cc5e8c098f5f0046695bddc5389f13752f41f0c4a79ed9406e916642b7789591cb9c3739af86a2a8b9f6942a846edc6e920f663c14036f67c2f15e1b60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -97d0818ff37321bb5f193e063ed1dedab3cb2f5ae4fcd975a700cdbee73d7f9662ce91c9e9b7707801cb2c82dde73df1a1598046814200918c35df28396600b3019102bf309160734f4a33f1d7739207ed21f2ab006be5e5ef7ecdb50ba38570182321dd76088c55955e8fe341be98eb0865209d1be8c6e8cf252913abd94000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1e5b8679355b539e6d72260ea0d7b989ca2be69d8b9116f5e991cd01edf996298b89181cc0ff0ef1cea85d721adfc2aa8f9d4e1051c52a73f74d76268e418800f274197c483d40163ea49e82915ca06fae6720c0dbe1d6c38063d6db43015afcdffe59db7eb69d387aa65d96a81dfcae3c7a41a94283d700a8a5aea5dd8c50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1ca2347408940468dd593fdb32f7ec0469f699940a2f076dd51470f7c78fcc5df63a0fee855cda122c798947f41c5ba820562bfee3b0968ba03b54ddea35a65ad61707be506cb8b90ff30c4f738337fda1ba2efea3aa07174c1a7216dcb89942bf71bf8f4066da6772aa7656b19b543437a794f411b9cdefb21f9d3fa09ea8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 18000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -9b4ab9f0d8f2a5ca33762d419e2643b4e647060f7589c4b9db1c32abf78fa842f66aa49bed3545edf5451223c0b52278cd3a28cf17bb63b42afd17ab2d3d613dcf33066200e57265af2a7e32596d662be11b50b6bdf804b5cee16b276799a4affe483c21fcc88b2593dcac4dbb7f28e31241bf77f3278eab2e952bcb479310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = caa51572d208f08e44ba262e0fca15782e256793124453ee5e77579211970e8ecf676e6dfcf826c67bab08ac06ca271ad6ceaf0940d102fb08cc27f062bcb15a3fa3a66f87ea227bb552e2dc7a72d539761da2222740e8b484072381485a2623ee7fe50f91bb5e1127c7cd3f4caba5cbc12a5d2b2e39b59c79959547203850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -16c3d6aa23c80c607f3163520e023fe57e8305c4c5bd39e04445ad448a5bf4dac9bbb1711c96604bbfe72abbaae4107791dd6b12dd9924195122d6cf2a2202a0728a92a952a2bf0752fde6523648bc8cdd48c659b8a67530f6bc522382da8df2e0d63ab907ff4432a0f94f5c0fc88a6208bfea3fe1fea8d8c37dbd203ef5d80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -20f95f1409b1de44509c4241637e838bb32639f548236b8077a11c3300a0df3d2bab1049ca7034522e96f49711797085df01a545a003131a9a018521fdf652d586e781bd4067ed8a5434b9eb77b5a411e15c95f78496b9bff09b621f47c85e05039f1ff4de842cda4204479e1674527c286abb940b233490608e27cd7787680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -f434274c044a33267e8e8ba99b694b608637d4e8fd67ea9798f2e379904c901e159edf3d293510e8f41df254853aa48d373fd8995f64f314b7b03306bc7b90d0fc2126b35d67ea75f58e5b4fc59087de7a8921d8ae600203fe033d6a44b514cae149e7c683a3ec50c004fed9f89029febdda2b1178fe903c0ac16f0920b3900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -8c9d6313f83e8e2a1b1a229d891dfff7cc8f5c86f2b2d535be5666e78defec8bd6282328a445c6c84083aeedfb3acf5f58976bbabba1de8686315119bebee7d58bb7109702238cbe64e1e6862b67078ce00e5feb964ae1db5b957d78127263dbfa5b474189507cf69683b4ea535ad8517fd9f9abc6b7228b439bfb1e1898180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -15d1b17b521be28ff2d5d09a62861690098f31c14e1b10349cdca17f2165e5c8ba6e160a886af85415bbd36754ce8985b3108fca9ee3fd1e81d47b5e72f557be693a02b0b1b48d11b8dbae02786590b7051b378c6381e88a76b6477d99028adaf42a7c55c50c5d2e6c58c31c0b378282c1ce838e5f53f3b931b34a767bb8a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -258fc9984f75e7110e9bf47c3c2aec7de4c49d3a0d96c22ecad8c246847ed964fbd52f818c14eb1628f25f5e276ce7c676d653027fbf176c9fae8b01cff65b50da4d7b4338a82206a26e69db872ac1c7af707b69434ab976a0c627907f67e066310c8c0d97f5365b6755a4d5608898fb13b319c9a701c9c888fe81c1e3581c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 51969d1d27c73cd3cc789f470c91126e1d0e3796ea39a09105bc40ff4fc4bd00c2182a71c8f1d9e79295a275873fc03bf55abcaf248f1d0b845c11115f342c3ae765a9fde32f01ca796d12f34464e084c361ced775af41d54a58f4d9f0f827fef97c33bbea38510828c4e553c2eb9636d261ef4143fefd5075837e05ae435700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -eb1d2a6f39f18a1f7ed9527c4a24df32a297c6bca4e2becaaaace0a2da0873cca08e71704fbfbb41ae4e8ecfebc5d9c9cce1dcf06eb520b67bef67f4a21be9d09cd151b14ab0c1e1b92a7dc686cf58c8a0b8ee9e541f8c994f3589cd609eab345df5b7ecc9507fa99eb38901aa5f76a396b3e61ff6c5a1167777ecc298320700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3996694c79eb5603e105e6ef36844601b8d92b61d39fd369269c5d70bf4a15b3c30009ce5ce58e8ae9793558d770f07a2b788ba7f7d7fa7c3fee4c18f9b3a4f08b1b7f78d9d3822609d66698e5ce0da2676e47ee992fd7f8271ccc60df1b096523d028d32139243d17f37522987c55353506e30f616fc508df22d5d8092994400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1932f5d828b2c2a20b45599336e1a8d5964f74347d52d864486875552ef08abce10df7ab88c763bf12b51071a54c1a00f880c1c1022fbaa71724131aba4c17793899f8120db0e7ff6c9d1702648404b92638a10e0552e10e2c1c1aa5c72e9146decf31ba9460d02af93c97e407a828c915f12ec6877cbfd2791e1cf4db8b18600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 4bbacd4000540734947206066144d599fcea0f926a9b4d23d761b07f5085c8b39702f2054f9509edda38cfdb42370b74eb07a452f888e8946fd319503220255b699dddc6ca53e863529decef0fe1d904dd849a6cd7f82971c73c1fd1584f348fff1871c8431cd0965916e61b9c3cb44e03242e748140cca020b10812681d0c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -a0a9024b63e7fd73e51a6bbd469ea28353581af323e9c18230afc3cdeb4a2eed8595df4238bacecb4d108b4a935d18ab5e7b41dd9270f25b8972a2431f2fcfb3639c546b507a420ba2163070f949c81f2f9af52165b99dedcb1fd5c5ee71ec587bb03fe846bf68250003ab122ccfdcd0ecb1eba5666bc7fe42108e88fb13d3400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 29839cb4f399406c6dc9a8cc64c8ea2416c78274408162b5db901ba49253606a0db14d03b7167e7b9fa0e710bb22efdea52b48129a8f1d049c3c2cacd7420fbc302b2f50cc427a72b58d70bcd56643066b74e41d38f212a6861570edaf401e888776b94fd2881e835134fcd29914f32178691baf6d5b736dafab6669a4d70e7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 370b69ee1bcc8faa1c69444c0f5b2bf1a7e01bde9813218e06257480bac2c418915a4de484b45a7a8bc4654d3bbbcbbf219624028e8271d5303ca522b790ed180cf8de2a821b6bacad2d16eeb29e652de2eb9a6fd4949f31d99903fcf2ff474c208ab333665687ba964ed519e5005bd787f244826497c3da8540d4c03c3483b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -aede873ec348b7b39d7ccc579b13bfb6317b7d72f0c10f3d81a150038f53ef57545db6b4e0a6a7b35b169787121ac988e232f515c73dafc37340b8d4ffce6bf5c6afbd25b68a1a1e9b94028269e2db55c46fc4732d2befb5369cb92162b9ab296e8fdf434fb58696d9b44bc0e7a3a48cc19d26e55e4e574a57d63d89428fd6c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = a64eaa0c5dafacddf7669c68426a41f073019211f683c55dd4ffed1cad5867da4a654124eb1a366a78792f1b5f4703bc2cf5335a882cfd282df18d2a0c6c6edf0ebcd8fda28da626c0227c16ac40447f6cc6b836aad4c84f6701c782fcb403f15c2492c510dd3fe98e0cc3414fa881b4d922155547d2f50d05e39d9e0351e23000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1b16988d68303cbd170200da70eae638a29024d6f448feb2b0e0ff00093c436de69b508a2efd72f8cdfccff523c99ec210080535e73da35bfb528dd399c82a08ea878832b39f01ebf96c9e0e04811538bb6ec4c55f64630ce7241ae75bd2c2d92497d3fb517099a3c6b32f2fe70ddc4fbacf1d9aab68b7499d5162ceec47fe34000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -463f96c2000c90919a4ac824162532ffbf011498c1531416ace09ce4effd78fcd417a63c457ca52bde6b0c69fabec529ab7be77c48515558f7913695c9141315089339359cb48d5e82b7effd852f4f6051bd10107dcb074d7e265b7f45dcc49a9682d76d1e6976604ea695f8b5bfa3108f5a0ace9a3c021bfe645342b243960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -fb07df943d8e44a6a5d1c0f76b547e3ceb4ce5a8071c93b59db41bbf989fcdd7481a78bc077550e359eb1f7ab59fdf92b8381fb8d845f4eb2811cb5a41297f832a6b8e2031f7c6d29788f1006a8c63d3d0263892a088c19a69d7b98eb563502c3b6d1839bf22d8eee378ef3964869d14d8839f95c876769f7f2d23bb69b9d760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 456248c3ef5ae78efca922630f53f89658a02f4e8006d05eb23f5f4e85b68eada1270046cc44f0aa78edef24624727f6ae46da95c7cd0b4fb27229cf86c386c5cec9743e3e08cd041c2ecec760fab05afa5abf27013877d93ea532fe974aea584ccddb9f03468e277a5f670bd95ef307d778a726516cf21df00bde4eb9e28430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2145a1a13137a503c6eba1bf9bb766b127ecb4f73ee3969d57f0d30dc5b60798af3d53cc0b4848330567861789c4a7048aec4edb5848a9b9bdfee8aebbaf6f16bd398d091fd0e6ae5be5bb4d5f44d60768fac70ce4549515890bdd67a34eaf004120360a1a0e7c52ff9f6a3ff931d5146c8624f1e6421a3fbc44f04060d3d96a8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1216b969557c239a99240144408a8aabf697b0ff91573bea4f23664f7c7bf7fe0f1408da1caa659899f1cfc3d4f0bcba78c69c1c54c5c4a385fe04065f69dd3878e8a23aece138df3be01bfd345184cce8e2118d53f6d22e7a7d397c3739423f4a4032c63c715383c0b6ca49953aff993d8b78406468bfe4d807a8e72547604e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = acc3eddaa918087e1bf9b9d469ed80c74ee5d71366ef21b6d13a2e0d1390b69c1ca673a850141ce5c5beeed3d9f08344b126b78ae97594061e2831aadde08096526fffccb2f0867b50a300e8dc6e8349301a229e2850005b790ae94ed399a860f8420dec999df0c9ffd53500a3ab9f92a884fa6ecef8449ea03577410165cf7a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -76848b60f7cd9cebbe9570ab9f64d20754cc1b2888e48efc86c51079d18cfb0de410d9a64e556361ea9f0dd6845cbdd528489c65eafb298781f76b778dc33511fedcc2a6afb87e2553c63ebb9515c6635fde850cc7a00b6f8b5717050bed4d5a864609e4f2023efa077efca406ce65c8a0a3c0c66ccd9e3fcbd703933d90e5d80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 9066e8823853b1a423b03739ee64769b8aa449488b8a152926f02305e886b30736bb61140bea898ed28da305a51b5fe39a03554b46abf998e90556f10b2e5d4ed1463b41b591ad987870b074c05b0589136432c736ad813346291200c78e57847c8a03ade48729a1353b7e52e3d284adb7005981e9704a25e91fbff09baeb4800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = b6a555f4918ea404fe273163630e859041439c75b14d68bb5dca20791660e3a9682b7a2d686423d80c09286e4f80ec08965f6b8c3a46489708d02fba567e7ff898e272bf55e4bf0fc27f7f407c19f5573d8aa113cd18320e506e3423bf709ec65de2e9bad5906ad0e47ffc61a38d98afd6b5875d0def37ac495d650051285cbe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 637919c5ed41184df439972049c36760a8d9a2195c246884aac16294924cc276be69b48bc9328522ae518c3dae992bc79b98d9c48724b34a36e04c7ffdd5d063c08e023a528cc475122daf8e2549631808bcf245c0583b9a460fcfd9806197d4724221e123ba87432dc16f530d7f786b3af0d54d2dae3cbf2fcfaead0f27e3eec0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -2064bd2e441167ac18dd98205ce704c070663eef09d2e38331918fe0917e92aff87ab929e1d4487ca12543e61bee8dfa75efce2301c3e0c5fadd097459ffbca3486864487b8db614a94b0b53b91e300404668323a3c2df9e21419825d87885da478f287272adb706e7704d2843a4facc2ed891f0dfd3ceec2921fdb4fd05c1f280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3984d014fd7e7640ce2faef65dd2d3ebb375a5015622e20c9b9fa102dc27ae955d8c86b27f8b84a63d935ace035bdccc6f440a3bd82a15f8e5bec382e3e039bbaabb14212c5d6d40633e00ea736420841448f7cc923f983b38645a2a435fdc507ada1f44f2fdb139c0dd0f9f27382d9b3bd5e521dce81e94114fde74dcd8691e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 28be7e4d7d5e387bf81bdc9acea5667522ca0453ca57aff122cef74b71cef8154e3aa3217302eefba88d8608dc5e343cc4c2649a6e76ce9f049346266cc13919c7e6eac8d40e5ddb44a073cd1311e735c1280b7eaca8b3a2941c3b7a08a777a53ebdd8e93c2f61788a7fdbff73e340e27a9ce1464047043e203a32173ed36919d80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = fef191d5831acf0c2b9ff953f2455aaf52acab805ccb3b726e82f2da9c155b8c78749fa6136f31988db9c2a2d78554b89b2f88c5ddf0e914cbd4cd4f59a1dc22b737a942c57be59f0ef92464a6798776779ee70c1d2ed98b5646e80935d35a08df0678ed6a91bd756718c68f1224808e051ca40610361527e5bfd3d0606c4c22100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -5ee8758b8c20283579a6c94a384f1d8a726d91740fd09f5227a4337a62da2f4dcb25a1c8ad48ceb3bae7e646bac6326e634c2520ad7939ef4e9c46599e8d825b39d4bfbb27e1d13376b304bf6d7ea89447302ea014c3b3c4905ad2236245f7b2d834c5050515351819664c5939a4445406481d82f0bc21561809cf5cdfa0663bc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 22111dace0da89e209b06417e8c07f134e3e44833ab0fc2b4579558bdf1b8a437ab9f22153205be7c735a303bd7aa2a7601dd24602f23c3022c0bf7feea41117179d503b797362806b64d1ddfa22fe5f949cfdf2c81f907ccd1746f5eddb591d5ef5e8c91b17241048946ce09c17fbeac9c247f857f202a34e24c093cdff4585ba00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2df5a807dc01a4067482b8524c649ab0f95bf24f99c4e9265e10eebea2a9571d801e994349dad0af51a02a19a4eaf15eeaac5883a7b3f8fd5414c0b10e7c809a5aa5a11767e10d2fcaa8171fd67d0b98fdf4dfefabbb8efbc25ef730c687514bc4f3cb0c724337de8b5f09aaafff2d8f982e41b6d9388d050773c714d48c4050d400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -4c96ca21bb6a565ba3a99d26aa5c87bca4037aa3fd6120ebcc65522d483d1fbff8921812f433679d35a6d18d2c9717695635cb0db32e9abfbf0f7fcbf9cd18f7b4243ee61d325709ad4cd24f702cff21d08058709365a787c2c377d382b315bba75ac743277d0b0a9f2b4ec437e5242443e274025fec11bb07c4439fc4e7a6d2ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 59497b7ebeaac2c81a0b6265ec20d6e2143278f574dfde2c1664f7ef14d89c141796e1c4218e8c1e81b7bba80609ce6d7561c6677f4c53dc9deb358ffec6e5ffa40cfe4722a1be7817b8e6732124aa4b17ef1ec663f423f1ab8c2c7e4af073b38252a69e2818202d166f1f39d3f83d753e0e6bfb7a8c3e62d58b6aac5a25f3a6d400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1e00c2863a6d918de2ca1925fe32a7216c8164ba508c7d38eccbb592aa39ef365129c398c7c1ae14491573c896626c6ca64122c894a6b48bead61b540508d776b93f11eeab9a665ef54700694c3799f5e4d647540c3fd5553bd09b3d1a3f27745549aa33adff1a0ee4241c75d9d9c5d1e4fd3103f614b740a7e4cb3fc1675e3624800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1241c5b30d86f9ca8eff910f3943c98233d3bd30d8626f4a25b5aea5c0c91ddfe303c943248b29c49788cabf9e6f77c9052e8e4f9aee2ec20c727e4d328c60f9a99f39125429fe0258f56f7ce3199e579feb965be6118d72c01ce2a072a0e8ebaa2dcd0bdfc46503bbb8ad220002d3829167a82ee2708bef14a3af66d719cb1061000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -a7e5e6ac9eb543d5d8208c46aa7d7df604ec5a8accbb0713135a101a15930ee7ff23a18bcd368cf151d5a679cea86062b1368e8d6cec2f01728483b4e828e6ec418b3f0ebdab8ffe69324775232c4ab45d0fcd79f9b37d6abc4aa6dd0e7c2822a30797b353897ff2d347e1039443363d72f98bc966c59df6a715d3add86ecf419e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -f40056d68ea45bec8e56855f77892c40cc812e7d82407df5a70acab437942b634317a362918f149f0ce3c101d72a54b9d81617a68830e746d0e024b597c629c97a0283b757ebafbd2553aa30ab51cf3e39d2573bc9c97663875b08e9820f30c498cc4347f26798411de5d81d36d92da8977d1fe3e3c10fd203a4f964ba45fce829000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -579a6dd9fc0b5c971bebcf421a155605e268d0ecc17ae858ffee8aca2b425eb4772879cadff7c2ef29d274ca06b3a42a4a63d0328de1e7bb1297b3288cc2c5150213ea710588fc48e2eda02241611d1ecfe2fa46e6e72a9592baced5177c762890dd6b19ffc58f409ef5374489a32f2a13efa6e08165f84966481a4c948d6a777a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -10e2df8a8184a10b44303e9b9fff5ff161f7c96a474f6b5e225b8bd5fa15bf9d034a11c4b54c871fdc97f4177410fc771c484aa900f9be0d7449f46ab36798f858c9ffd409954ec42f1c46c7a8b2780179b43eecb6084731e3fed16fe48ebc716e4b95e3e257254e4456001aba5c7d244285ada0b07f4c4981dd5e8090e871658c8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -91b0c39f217b842fc3de8a338cc1262ca84b281fba73ede688150e728f6614ccad4689afc8040c57e3572ea6c17c9ddcc468e9ddd3f36c391b043d8e068cbbb8993131c5c45c6aa0dfa72a78e58e96d5e801f60120b55578b4ee3858252dd2e875f6042c22167dbd87f3bff9f6d60958b0958f7aa191ca03c819f647757ee579a3c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -a4d780393ea8070b9e3df83d6e5f527464e4fc9c80ec0d30a4376645879bb4135e8b5968b1673c45366a105101835d22b13038629b9f83c7de20c4985b3776c8f1128b8e3bb478fad9e39ab6b6743fc20e9787d1e7290c2040656dc1bcfe8acf9dfa4c925fd3c0a06c93f46ebd57ce775845a95602967de7ff1c539dc6f650f37c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 28abbea60cf5f40c3ac52d10991f0dd744ac5f87bf3138f35034c1686c358d1b8103a9a91998655ee29f38b9da99056c1388616e18ccd8ead711fd4dec7953d58b0d66cf03100ed4a89a3b448e18fea26bd91f37fa79cfcd58ca0afcda065ee1543f6f7d35c97196edd057ef79e8502f24aba4d8a4d5cef231c4cabf5ee9856abd88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -77fd04b975ad0abc97c0481d33754894f96e50a16f99b4d14c4eb84789228f8d45b7d843038afe04088e4873c59acaf0567dbfb57855cdc8f16d5dd92c86f10811274c6d4da85cd1f88c413fb57f3c145a666bd1e63cdb369ca58c9bb774f622d1f937cdc8eeca1ece27f0b12c1e0fbded6af6bbf4bfeb52d73ebd9e0bd248c7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 18000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = d642e15ace3f0f1444252138017dc1017d62b74e5a3adee4170e1ac886cbbe4aa572153217ca14a350d13bdf9d5f102b42849ecadf3d470cd30b61ed24afd36c0b148634d6726b7d58162328084ab395ef3774db1bae7b15219df8b88fee0d7f4b46db80970b31be19b5f5f64c6ed7ec288489944e22613f8fe016d943b51280abd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -5e220a6ca70ecd7ce3c74956a05bb2604fa7a54b863fcfee65b19ab55885af7edaa84308e23efeb9f62de73c43c2b68b71fc406b19b172af57568044026f688f226eeff8a748b8ca23742b4a62d8e7ff9a2a9e661e1f0257ac0645d7a429740cdf6623751e009c3b845444b1c84016fb500b039a130139a2a837b2385b6a28aeb170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2b1010fe718fb84086aa87ca3b823815316f038861971157b7a5631ee93910ed8e2ee15abe284d44a0d8d23f8ef8e204c5364933aa933d422b26c7edea2d8401b4f438c477dce93df131d7c6edd0c0a181784f7415b47ef53b4f74d9b80cec160b0500b6bce2c0f1411abc6eda0660e403dbc527bd549214184bb96bbb980f0d0a2c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2bd0e11970066936256d0d659c83d969d26638799996d0a0345b89a83f18b4d4ca59bd9d53d440b84286c22ed5ce64426d3301bd039f6b513e72482bc0ffd3330db509d3a672723e0afefcf3c222f84f9f27a4a00b29f1c02a908afd01dce7d616c4663c3e6d2dea3443821e35fc9acc6feaccc340bb2bc987bc6934a3aaa94e2c7e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3e6b717fc2a49427743e553ca63c186701e605ce1bedb7e80643aa5ab629336c155180816c74416a2da0c8767c3b6c43f16d276f8fb8f819cd8af9fb1189663dab07357c3f8ebb0cd0fd4c0280ce5902a442bd0b3806d6ae0396fb5b20c0a7340dc064b34f6395863cdae6077e4978c4a3fcec84275fdd81cbec446653eee86258200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = e009d6e57d8befedfe77cc1e5d86e7a57f7ee83a9e77b7156a22d6107e4d033020754aae2c76873bb189075c095bfbe00af160b501034b4fa16cc05876aed9e0df31b24463fef1ef6c120199ae1e52c32fececc7abf373fa25e1b2bf27c754be4824e79453951aef3aaa58224ceec9844f953bfe1eb35ec86078cd7690d932a9d3d80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3aa6d9e782eeb281ea33c26ef1afd397a00cde263a9b5333d5d829467e924dc49a7e927bf82782d0539049b1fabb18f9f5cac78eee46e191ab5173fb96caaf8167461415887fecffe113ab901dbbb6b5c60da3d343e53cad585c5d94de2fcd42cc8a804d667b63a8368bb2d346f9d50deb29f8261156e9e6e01b5a6f0dba093ddbf680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 32bbdd9582323a87045c80bd4599143b2ed927713d3336a084b5a8a010e81453356c4660fee832960cbdaf37afc22697a440c07ef8936b7f90421415367c41a8f6b205e8d7bfce36d70898500a8daeb15055ab909b471acdc4658e84afa3528ee8f1888f13d4981bc9b8b274d2c3c6e260d2012c4b4522bc976d22a0eb572cf6eacf80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = ea9e07e4dded1f772c6148eef99bc188d9602bec1fb713bb3c28d94ba102828efd8e65725609118075960da09695e9bb42a94d19ba5b54f15e1ab9eca7e59cfbdb5a65e76a0c8fa824e336fca63cf511baf8bfecbb6c25aa0969c5ec56974fe2cd64d8a109bb46caf45a4e044c6854d31637846091b99f6343754df8f70256abe82900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = b3b083fa03d98ecd79ab28c9ee2bbeb365c53263c6da226b528b33eb5b63f967929488b4eec139fd8dd6b647db3cbd07ab33bfb113bc90fe50aecb8f7919980c28568398d0a3e5e484c83d89498bc67d23da5793bd19302625951987dcef2ec8b622fb8db13238614a24390a2bc8e37af38ffc7011196afb7f865fb184de7cc6546f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 221eb6971cb9041128d7e4498a68238fa07dc5cd7693d09b03523ab1b8026f1121b973fab312da0d46f4bfeecab155da0018c343b479b2b50c52c024528aebbc9eba803d8c7b02121aa241e7e69a25d8896138e1a693f6faabb90d1d49f45a2e573646f59b3476a0450d3b93bc56121bdd4099c706c4db287c8bcb76dcf24a1401f5800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 19bb09ace014ed245c13df13e8005c9f307e6c3f8d3b6fb255b2f33fa93ff270b0972ca248119e64a3536f30c233fb29a135a9301429d885c2d43c75032307d4320a26c90a2832e4ba33d64b8115abe69677a8574167add7e441c1918a8e876af3d19a36220ae8b00d26f1a706ac5937854bda319332d304f400687a79b46d68dc90600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 5200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -94bbe82c7507658c1aa3521d38de789eac9d85d9ae2aae767deaaef7339cbf900144235b18dae17e99b79701629c23899702802a1a2ddbf0196625dc0ce5b84544c8408287b95835b7131efbf2c44cdb1fcc62f0820bf600e60eec2b43fb8f9d3fa1e619ca5e6bc16f0ef298803202de7719bede00dfd04132dc2ace7523a831a286c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3637aff6430b75003e31a7397b7eddc1557714fadf4cd0a99f30a53bff9f9460e1b7b89908f7513189810749d4d1065224f4fc703417d9e960ed298ebca64e9d322337813024dc7ce2dfecf099a57a3d039bfe132a2439fb7c58bc0e1bac9ac97221a7dbe086dca70750a700d64e772cc9d8d9e62e1b700600f99c1c45ae3cb2d368c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -12228d7f6a6bdf3d655db12535ee699ca8e797f4bad01552806f0a2e2f4a82cb56591b2455f27fb02033a776b105aba006380d9d60c54eb452943d05ac17b474a4be4f8058851dfce5a20651cd79ffdeba4f395e585ee2d98f0d606ed755ad585199a3787d6ef4d439746d6d97ffb97e870fb68913075caf03f2bd4772817c554e738000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 188acb32d7bd55c1f2a511aebe8601530b5343375ccab7a0b38d336c0e20991f8d1086e52cc5198a3d479236616e12a75ec64e3b4f9d2893cad884a63ba44f6d6007c0991669382004c1bb4ad78bd184b96c60703c5386786cb4c7bad062f93857c4ea9f98257e4e44d5601e9ff8135739dfd6b9d74caed202e582dae013bd618abbc800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -c89f98f402236d785add1115ec1261387bd197af08f65a9eeb94e4b972c1ffbbb691a7e5cf2c2089efa5529dfb0f9502beae6ed7c88f1521ce437ec744bf317a23aa00f3d671fdc1721abce4a3148e0da6815507fa06a6dbf744c9d33c36a05e0fbbbcc3fcabfd0eb0a67d7fdb3e893519e42a0314f93933ad2650fafe57e59bdf936000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -52bdef22ccfa5c7bf272eb00e20fb6393e973c38476886ba1390de8a9317bb0b7966207e0a6fa78a5c0edd0b9f034d9a17ca692f965159d00bfb0727a162b797f0463c70da612a5901e6e630330ff630b9fe42c9afde9b348c8ced42f481f29e2104f84c4107d946e9fc84d95ef6ebca0052f175bcc36778375817c6515a324a4adc9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 39f0c03b27ea3e9348d3dd6f1000bd87386895e3d5ae6ff3f58851bd07a3ac50091ea4aa54461eef4fc26113341afc9f6a08e6cd4c04295802f394f6cbae4b644b05c051533c25e09786bc9c2b3c722b2fd26bd6c8b863d25276e6cb06cb77292131bf3306cb37696c0d275ff60cd28f0d150992d4acc219a0d542b2ffff4259a8708a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -c56b34e490d66ae17eb2922a9fedd71a9e3a1310bd373c25327404b6c35255e0e1c4854af2368b6a336fb9bfc35d337cfd313a9b866cad9a62b511b803ec579a1d1d6bdb03b978b03df63f99783e9d06402c12a4ddb4abb2194d6c737fd422ec0c4685e51d7b2025fd3c4c80522cd27d99ffb6115ef37f9c70b75a756be66df1bdae4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -ecd939e8af21e998eefda6afb3412e13fe3f2ed854f457fb0f9dc62b7ff2a548477af16c371322f538c551bb34998a4ef15244d4ef5a741d047cc873d432d38795363be15142df0c85fb084e16a1c4f8410836152988754887ddece6ae35540172fae31de59c22d3078d4d39496732834fd84281b5188ee5cac0bb74fce82c90c73ce0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -b1477e6625e92c5f0d9e550ebb984136b82ff9f6a55b1da874cd0a05faf13e8a558b9a90eda86272388cab2301fff1cc9f51c3edf1e28ec0408ee1f7a4dd550b3261682f10976f9163bf4fd2a0c21b45b822c162a32cb4deed5fbda47844e05df8059c9472cbfc55af00a2aa78a08c76fd429eeb494d3abc9a74f4fbf12aa2badf29e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -28d10de50fb99aeff90148a82cd57e6528764c7a09cf0bad4dca57eff1c5ea2a6ab16d12ec9c8277396dd67f841c35c86b26382ad1813ed2451c54edc7cfa0e36bfd7ef1cf8aa0de5f0dada2df21917ea541ba839e0e05aa4b239b0bfd274d3f730cad29b4ad18c5ed14766c922d199c2dab8de3126e26f4913c904d7395e05d94e6988000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 215b62771393b15022a82f7143a196f570de4b33b5daa49505138bee6af2cab684c50440ada17a0742213d72791bf00a960c76c5e539b367a664eccbc4c24a174979904d05b096335b102609b04fd40ca3788287a532de3dc19ce5e5f68ad4794fdf3f68817968c0eaa680ed239dfe88c7824bf4b3992e880c7e095081edc79a7827ba0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 18000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2182db8e300fde257d3580790969555e745afeb6ccb2f50efb129e4ccdb18b79a7808535dca99a1b3a072470f74731abd09fd40d5b8397e4f5308998da6cc1d827b6f047fda8b95bb89f6039a5a0469ed6a537006d5880925b752adfa3d3ffd4b681c9175878da26c1e583e2a48818ec0b37d505091dfe333c1e0167ec6f3bd4622dbf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -f44f591ad762137a5c7e10e0cf75c78b79f80645fd6a4966f4602c47a7dee5ee466755f9cb74ef1c1493d5c9b96e369f8b687ddd17281a11331555be62f532823619c06801e4635dcb387378fdeee6e5ceb1122a490782519c348150b2adcb45a6023f287eb85f0ca99faa7b78e3b6046cd6a6cde2a353890908c3a7e0355670c40f670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -17f980c3597df69620288e3c7592cd3ca68a3afb73aa01bad20677bf2267e5001687be358b591c45071119e8bf45c25e61bb8284ab8758c6b52959e2dbb88b55a3630872ecf66e35cf17b1f3afad6477fd2bfaa541e93d4206a20ba3934765f5b5460ea05acf340203b75d9a978ba8f92571ada898aff309b1da878802f4d29e09dfa480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -3782cb583f26d1a2a0b214b33c5ac0a64ca6c83899589d9aa7ccbcd52c312f9b071ebcb22369070e7bd907e30d9994f542345be0e15d66edc44c8b4af0e66274710e96578854a7bb63d6eff79061652416df3703e93f807e9c479099d9dbf8f72d6f09307f3c0dad5657f3e29c5011724da9124a53f7d749893826fbc31a71cb5644b760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 5010306f48c64a885f9e9286471924d2f3f32ca981cd6c160a30f3b4da43a6601f8cc1d94f9904b33cf4d980f784a2fb2c921a8109459c90456ee13e13431766c8205c49c9678866da906e53f61496b68a79d601b9f589ca0c34bbc2769674b2afe198a0e51314c0d1fdc6c08e24309a45a1ea2d753ecf67d5db443d0d66bfcc306fab80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 8caf656623c96af77ef576cd7d3785ea88d51a6c65d0d0a5246415fcd4df5aa753056f7c20c66fcf22e50738fe3d0b08ae145e2f0564aa3b5232853ec5ae298edbd3492c307a8ac6b3926869c5e80640fe73b94418c245c8e90cf41008bab45521d619d16e4eef95e1cf81746d9f7f1f3ebacef8b04b9f08c5a49b37a4189ab67325ac00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -11e6bc4059b8c0ff3597d96892d4b08d6636389e9e38e2b1966e0b29934925d6c174cafac69dee3ee983983159dd7122369fd1c37a422ddcdc27a354f77eb8a2a8b498f19e2b22a8f21c0df56e7b648fbccb80dccea8ed507155a94c548a069d21bcce80dd27a03769ac2569b81cf0af707d53370d2508b72fddc03d691e66833ceedf900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = e0958583958b608012e15d8f2410e1c4cb336aa1a05b4a26c565fb37e686a99434d41f25f14c8dc9efec9b9674aee4eb56a0923fc81dc83dd1a5f6d8a387483559cae08be32fbca1f83916359d5908493071b2e614aa11750491f4ab6df82337ecdd099dee80ad99e7e21117af459dd614807157dda591d1a9f83b84df229b38001f0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -8d4b01522c1c9939dde8b6a0a9a2864cc3d4d767aab28aae30a72b8e0c9d4024e08f9d7d7692216e9e9e4296b2bdd6f507f81a5e8b39389d048839a4ac214352b5af9cf6bce23615290847721550793ecd155b7b784c6dcc3d7449627a4072b1449949392e78ed58c710d5c690fff0fb4fd6da5a463c035a9239ab925c32453182e629400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -7e0fe63d55442e7dfb4658086ea6d8a635ce9c32924290d26f60385999ef8c1ba6394158781658cbc96090c1371e4ada8737977ca2f1b7613b6739cb7ce27dac8ee918bb73fcb1178ee813bf207283ac9e5861c9c555af16a57d8504b3c9fe31961d3fa0d25c1e6302eb25ca319cf3e3217a1a3dc3177b9993bec2608221bc39c36a8e200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2af53d2c4585622d31a6a6b62523399edd48808f5bc71e1f9110476cbc5e025bd48a5ea82879cf28c2772df426867383366e72c1743a81300c000b1fb64d0fceb2d87233265a6318d4b90b4c89c3c0748dd8761136d94273e6bd5189944cb0339c90b4d7014f44d3ffceb57ab7896a08436459fb3e0d29dd4f6c0d6c9b9d68dc4100214800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -267ad7df6425bd98cc3bb78770e6ba7790025aff8d4281f118e0802fd352e2e05ac34e553e13571ac0e8cd9c3cce2ee4f39a22c49ceb64587a529a50cc8db45a22fac819ef5b7bd38bd671ff34f90b492a9e291e732a15f4d65e8e57cb32b9739e9571bb16c20eaeb4a89d82d753b82764c2e50dc475d68de153d800bf98d4723a83e4800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2457086f74d8e667292905cec75655775b849bbfe75af0cc3211af598165a1c5e07bf173742c87a34be372d46f82702d15b5662e6be73db34a5cf61899f0a2a520437a3d12d0308fb9e028e144d2057edb33f849ede147e88f669b90af70dba4ed4ed8a5b4076b040a10783056c5cecffb5818bc76506dbfc08f634b85a48ff31e16542c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 50911d15f5cdfd9c5b66dff145fdd4e2bfcfac67c64ab063cb239a25c5ed410bdefbb0de32fc3956f815ede73140b93913dfc8f39e7530c586202c1140abf68772729d290276118548b5c823dc5c53eb85ec5a736639a70fa5afb417b72fc0d05f091e4c266a1fd32005b78314f811690f0e9828dfad735118df52b189da8b1191e47b1800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3d441be9957cb7b35cde97827ee4e362848ead24bcf216a896f2aa8c367dcbf2ccf4c713d7d6e78c2f303b62c5412e84ea61528e46e837d2b3a9ef3c2fc7a797771cb001196ac455b8d83cf7d9ea094b39f88ff0d9b32cb537be8e74d3a81efbeaa0ddbc660af3c68f2b16a4f5344ffb8282f98161530b398930402733c20cc2b7ba78dd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1e0da059b94a56087b24388e92b30bde14844418090b87b02eb04dbf625462fd4bf1b081dea30cba230948e0dc782facfe24a3bc3240e1d1ad1da2a68a9f0fa175c5fe73e84081071d81103946001a4be284d2260b4a2cbdfd9d0e152656d197e79eabe303e5dcaad1c34cb2023b6006a4a04454d176062f65887e99e3e48c95a061697b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -f7d8c30b38fc4eb8a90cb37262dcb706f2c0171180061c351d177d32502bc3f738d39564e5873fd30f2d928282a16a3ff56cee7477dc06a17e946fae840c0efefb40faf255b32524a74b69366e9a61d24ed4d18e76f1220b8ea9cd96883bdb9a6e6815ddb6fe09c1e23fff98c6574da901cec51cc299ac4a1af85c25197d28d6d9bddab2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 340a08acfa88a15a2cfa0d971c00ce5173543c26e87448288b4306d84f8bf2468cd04690185b073dc85a76bf63a81ed5905043a1f93f3d8e7a9e182b8a3881fd73995b768ff4ee76de8aa5ea2e74f4a59dec315f0737d83fa521b5e786e56a5d3c3605d6e9524936d7adaae740cad6c067dcf9a4969365a752aaf7ccbaed4ab973795495000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1a7e58f65e3ec56dfbb10a34e038b660b3c9251fe9d8a9e7b55d6d59e88972391af804722aebb01ab5bdead4c8a6347dd7532591efe93dda39a37ab78459ab45c7f92a8feb3513236d70c89ed86935452f6495863afe6349723e7e1c716218b95d63b1427c7ca6d573ecdfe7c6043caf0ab3d4e5a22e0e28c3b58ec094977ac3780472f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 243884e10c8409cd05f4564c72c27ead4e6313baf322385baee4d0b6df83ae905bd5434223630310e29937c31ead20df8c5dd44c9f2953ecf12f73fef1d03d46d66cdc252900b66ede16f33b19c3e5e0640e10ce4ab6bf8ab5c9920a173c1ac278da2586b32e807ee65d67132041ba3da164462044a8f0613b3b2463c6325aa7a5ad4ec90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 107fb1dee04192834579da9de966a5ed43dfdfac75c271a444d8ec4e46d25cf818b1142652e017aedaa2deca46f62d1cb17b38f5cf3c7b6c9565db40e028d5bedd23313c568665c30d294bc7c6000cc26c3aeb97f25238e225e1290440e5a29327cc7e5e657d1a6459360ea1fd26b084acd853775973b12e082bb55383686c0ebe3495224000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -c481839908a87416a0739206d0e464ba12b4d18db8fe898b83bbac8154b5257c2a64c2d5a4a221d54ee0f7a6d4f339a90ba2b72703caa1e90af4fb0a1cd10dd6c9cff98b35f3d43c4161bea474774618e2e587567706eade88adc07ddce43e667bc6d0e1cb534be0a62f91654af906eec28847fbbcc98ea67dd31ffc1a1e08e6b4850562c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 3e4882c6732426aa7f4059bcae4512bb16465f7446bdce065ec270b92f846a23f4433c6f9d80fa60ab26042e57cf76309f457cef25e82fa0e58b5c0a2ab0a6d61ab8615bbf23956962d8620716ac8a0bf8f0a320d87ffdd4f290163a8a7bbefd61777db72ec45eb3f505c1ca7aafd0a03de0ae5e55db5372727d6eb0dfeb7c155f22af9d10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 1cee9903b3fdbddee4ec95ea1035b19b6741a2671035ab86d2c84634784638cc15bc50faffbea66f973482999942be35970de4607f4993ed1adaf5240446b805da4f040293849c13a0200c8ab3954dafbfdd32b2a1a3a1277de649d719d94882d8c73f87197ab3155f6227da78af9e8d986ff7efa73efb2b5061f335a539884b5bed621bc8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 18000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 44f834ab5659de0daa41f2c7154f27d3e8bb72c8b7d8b7f7058d9696fb0b80b4fe1674f56ab48390cd780fec6133f52f5069b06adb4c205d7fa80891becaf82cc4352646e090fce98f270d415461226c9648d7a06f6044d1509d1d6c69a44e40ae9c30f15e2d13860b733ea5f7112ea3947cb338582e84b4fce025b680a2b6f61e44cc66b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = fbac122f7b65dca81679274e75a412c1948bf781ff97c7762ca08db6a76a27c651db330f09a5c6bfc5f964814c7f8d0f78971302b86de1191f461d24c2e3901a1fdc4f68f541a01a49abf77e6d6c7b7b254d085271dbcd92201925dddddc9d90df604713aad172f70e6e2314b258c0934bb0a6cc5897f36435ba928c6351ec32ba081b84b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 32a60b538a5c06bf6212640761aa12bf3f251cee36154c034945d256c360ddcd750dc0fcb4f9e98fda007f371e7b524700da5d733fb6bac21c48f8f60b06568d6a0f24ed03b54de3566ee3ebed277cf5edf8e82e9e522d181a06011f9ac34e6f02899719fdc2bdb9d99c918df0da5f24dfa2ca57c5d52d71d41a8809e892231d32f13eaf7e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 3466558bd989a31186c12f1a077d8343a1fd7f8a0b8f85d1f04b7f6b3c97f7fe0d1071d6087726a46a848374453615eca17feee9d3c6e3d0a3c2698a493640e1a87acb1d8f37ded9887cd599eae75ee9a190e9c6b4c70ef29888fd692b17e56656a56945cf1a7deeee9fac867785d703585de05334f6896f8ebf03e0c7ac5d0b7d88c681380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 98c94fc7df02838f9fd6da21f1b30ed2fe624ff6b1f32a9f8b6f92e69ab201009b85abcd41c30de208b6062b2b5eb24f375365e2f9c96cd958279b8092792c8076a55d8c1d6509e2dbe51e7b7f8814f818f175184ae9b2c162727d7c078cb646592d5f7c3055c1a01a4680000ed43337f0a007f5cc1d85e9bf0f6080d4c876ba2d8a005da00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -ba9687af1bdd55f5b0c67494685f5190ac19d8e2724b19de94980cdd41bbdd62d0e43026c55eb341481dafcf91e60c605549e4ec54b5b4dcd341645961c9f3f29cf35d4eeebec198fe627194c856be81093ccb31e7c0d9913882a5fde4c0b70c0a1fd29f09f95e3d4c0ca9e48c78aac948702c4a4635999da3470ba5717b60d644d6038ea40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2f66dd1ab3bc65f832f5155b2949d7a479e5649c6a6a835c52406bcf237c0ac8ae4ca147b93ec9e4317b96aa5743ab8333abb700584f2b5c39827673095ac06f56ad9f5f95ccecdc125393a02c325ac69cff03b00024a32ce8a093a5c7393826be0d0de8eb0fb57319c9a9b71b45d7daa6dc2afe5c620d95564200213c36199461200c1a2900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -25b346f2aace8bb0138f8ef717d421a9db974dae2e1d4712329f11145b31ec3e944295f8d116db6c16cdce1eaf777bd5568789473b8b493856aee14384bb1a08cad5cd84f8b4bc45fab36fb975fb1b1629c2014522bfe0ca4361f0de8a37ec0ccab35602e49b9ba4a0bb3fca79bcad046e923ce9361eba86c2d80b94a1f8491703249cd9d80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = b845d7992aa6a3b3b49ab888562f7055801ad877c22693ec561ad9fa6d051cb7669453f00a3e593c2b7aad65d8a8777c12e6ae514e88e56a660f1cfefe955821fd4789c9fabbadef2bd8d65b08ae8eac2acf760a6bf0e0b119e27a3aa4b44a6881b20307a112b77afc4a8fafa59aae68d5c8e6078201c659554acbc68204822efeee10d06500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -5d54bc5a4a3eb8eb624a204a216e307f97876582b6de6bfbd94bf08ad81996ea5d1c3df6fede8c054ed0a28f73fe1bc90ea34e0a1abeb2829132612fd690dc5d740177264f4361f1112e5f7ff0d3f8167fc92022aec8eb50596428a95b714af44c8754526397223206cfe9049e9bb17caf777d5141f82ea6f1dcf4966801d26dc429db768e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -350b95c9ca1b99f025bf1b37e4b1db220969655c49561513a91f46a85d517cf48e509c0fd3600a2f51a32089fb3eb95aa5ab6d35ab39123ec8cdc356471769d7d810acd3452a5517841ebc6044c4d8c99f5577341a39472b502c7f8b58bc6efeb18c7187714215fd4999be7c20dc2d159d9e994852c79b635d67e926e18b6e0ebbcb4d56a0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -97d48f494b1b5e2ca92942c0017f1dc257e33dcf4e33a6a06284a519f59b0b80822f62f5bcd903fca6998ef2eb715ac2b6b732948ca139cf575bdd8c99d21a141e8aa21f903c170c5e4529bc9ddf633be49a2abecf3e7f79312e2c459caaa4d22723869343e9c977a90312a361d37be21efd36fd0cc9b704671c7c1f89a963657a91045a8200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 9820f24e0819da26693d43a0efec9720c46de638fc5d40488c2f778c1bbe236600d6d77ebc4cf47733cfbebadf13df05abf6c0c2bd6b5dfc4b3e59d38334c66c290a5b79ea1ffe1fe0bfd92551123db35a784fb6ab5a5ace7c2cbd823377218a91e88d1b111f336205131d64a6625730b6ff834bb24f0f437347408f247761a4c68f4fea2dc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 294b75a6a8d41d9e0f0c71262220750946fdea0b09e26b863042c40814c5a847dbe820de540d027081ffc8aac886898c413b6cd85d6c2d5c4eba85a34799b78d38cf2827194e2eec1ae858f157305626456be85640004cf544fa36115babf88a5d6c341135bd5243cfc669c6704651715eea5468c3e9fe19831fe051ad4a4bb4a597ce7c41000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 31aebbf37f58d0e37eb71371e17b6d66026ef96346b82f28f87eaf12a5a688211826a174ae5379991c162049794ee0323f2d43bb4fc9b0491e3b062de6b96441d227bdd9078ea61444faaf5e09b2e07e0a4f94e8228887b73063467e7878a5c79628180a720dcb77a4a539325c8a8a408cd5322eb8388ca90e64cf9bae332a7f3eaae63f367000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -158acdf3c04dccdb554cbaa35c140e818b0256b7c53c0b76828253d5c69d8d3ec842c112298465e8730ceb0a505025c1d28245d0f8f21c3e3772321bd514ad978d78b50ad50e09c1bb0ae487c37e22746aa89897bed61e1d8b21e11dc4dde4707d6bbddeb40d9c7a5b058b3517e4dd6bdd5a33d1a3576a826a720e024383df8ff5e9505046f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -df6854990ceddc969330e6128699de4ccf7242ee32f7f3cc8541a321ec17eecb439adb6604761dc4fe39352ed352d07a52c23a478882d5323dce08a8804d14c29c45714e84cb60af2c0576c2ee8606c5f407b28d6c67681c0253d7747921bdb94052bd08e3052d0058b8a72ef5c6fc942d56f399d27c01c7f3a015a22d62a1821bb312a4968000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -12ca12f6a8859955dd8ee97985357a3ee021acb111aa4734384a00c16011744dea1230966df9fb9ad15bad60526176ee1226e0fd2ae6c86d1f9e15f2d8d34b1d005dbfe95255f307a987ba3be91a3a9d21456bfd41e91668d3ce8c4835ae38bde9d1cf2b0ea38679942c2292866ba9f4ffde4538156ce5e6d47016796e0657d3fdaa2d49336000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1dc3a30f745b41c365f8c357a5bec715b8996a40dbe068d48486d96faf0d84acac7d953834d6dcfde9a027f18d2b99c4f7039ee6e1b87da9f95355a3444b992c9aeb41bb6551813473aa3a63ca5859a3cadfe24784e840efd976d8a17b972f1dd22f0d97347c1b6a774c01cdd59aa70aabdc5408167eca4c2f36bb3eda4d82d7ea7eb601fc7a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -9afee4641401e9d621c30f4017ecf9273a5fcea6391d6c4ba01cdd519679a2fbdd13ae7ba761434ad5004a4747f397265b27e0d4d3094271a34b3d4f999ace7d2523cc0c2386c8a362243d093de31ced55378d2eacb31cefac6f450d8de438286c973f7cc5b9745dd7d7d31c6c47b372e61ac072fe9f3109a55bb461bbfbcb7ae89da6315a4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 4cf3cb988cf3fa5943470f5e1cc27ea5ae1ac2d88411c82c1da4313e42cab4116908b28203d00124824dcb9d99579e53d6ea3f28b63c3fb9fcfebb34e47b30506be00d8d8c307d1f8280d2698335b95617d49a2b98bd6d7d50aae69e5074efb6bc0def258ebc684144e54973c9aea9b44fe8116861428ac0b3026a065906c4bcf788040d5fec000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -ffb212c1a9ec2bb12f975773d0dae0fad452519ca9819b4edde8856e37e978aba12b44eb5ea6f446f2035d88568a8878b6e041811aed0ab091e08d704b2eb677dfcb9d8a520d55a7f51ae9fe220cddd35adfe896811d3cfcff9fbbdaff1a68f50db4724fc813c27f0327a22d80fd2a1b3ab906bf44b785fe311a415c7f50b3a2f2280b5d9d3c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 228fb062cc6029bda2b493cc252ef3ea2f6b351f3ad329735e6f5dcbac79303dbcd1f32eecd63c7a23d97538c44261f747f3dc8150291bafc999dcf25c412cfadab14f9dc385794485db43054a8d1cd9f172969397165ebc26f2d0d9f95381478fbb37ac5ad231ce8e834e9e930a582354fb3398e5821ecbe67b635a4ecc33660a43ea75323e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -bec47049220e22cf1f7c8abe315be29939e719d9f272e2248851627d4a68e46cec9c49fa41c732068a5a83b76c40dba800f319c81a6581369b3da7b66be7a42884937304fcbe9a7f0969890b7db6dd4a978cb055c24f9a08b701a3ff630dcbaa7f60b41b92532b3979b6676d0f06ffb9a138159c92c6c8643c3b64284b01784f5c01917cd6e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -e5320d85610b4ef3e6a16c2f2cdf0ec7118dc72c863340ff30aae50447db80c6e8407ee3a6a73b9fd988a7dedbd67c4d87963a17c9ea56b64e87873d0dde1312f553ef3b17ac87ef2ec7e7516cfbdc7bd4446e0947b1a09567f31471486dc6f07a7c5e72b8762e18bf6511d04f9e0cac3384774b312a96b01ae93d343e5cf6c11ca83b47c7a60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = b29ed1b6a1701aebbee3b484e90128753529e32be902113e057978a30e61233e10b29329d45600f9aa84ca1fb3248bb9d1bb814ee790ec881ab27b53a4d0e984c361de3fabc8d4db2764d3e02684da1242fa70f3a0a7d250b2fc1b5a444ff596218fe57d443f5510a8f71a0a0345e9d93d0ba5e0083dd2b87d75e1ce43335b10259d65720b50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 167973df7d7ae06da4f960ff8e66c0ebb8e2f7fe47bbfab1a87b39bf89a4d22f416ea08c5d52a6cd8c3ca8c392e67f7b2c071b6a03dbbe2fdf0465c845b445527700649353ed25e700ae660452b0b158f89ac21dccadf3888aa82989a785b14a22f9f81bf7a7c7a48943e1fac76f750d2b81da1c379979729096e55a6e3494a9f9b573087cfa40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 5e52b04dd30fbb74992491ee944f2e827ce83d275fe8d2a8fa435d95239753a8c96c9856bb4f663095b8d56ae2490b7e33520513576696138e2d80ed5651afb5d8e003b3ad3dcdd708b534106da729fc56641835123053395a0363670f599d398f2c09758a1923059aaff2c7c837de078f69c981c2be73086b6f6698bcf038f793a157474a7a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2060bed776bee6fc83330be02efd74c2891a49c959d6766d162ec181afecd782b70760cdd1749c0f52b7d17169516bff22bb39f9e791dfa701f64c1834d4e89ab2da4ea8810c3fc1bd0a62fb226461585d7f76e150978509dcab411a42768a9dbcf7079b10203e64c6713c69525c322a374d258e9f49d0979737f180aaaa8f4da1f1d65feb9780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -72685f7fc7635781e05a7470846bd58797ffccbcf65e07b574ed16e2fe6d9eb8787f80b9277de8189ba8b3d5a6e7db557203fd1abfbe25683cd03ff21636c6ead30508019bdcc0c2c3b5c26b0206d027a376aeb67d5b6ffba1f2e1c8884dc1e4067160354794c1072029bdd05e3965dfa818b1a8f3aadbf49c00e886f4d676e5e05a59c1bc77c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -242c2ab5058e9360b4b1908604f790b156829d879a0fb37a15694207b6cad653c9d4a2ca8e2ec985e7b9a6ea56c59c0f0ba5e08d98d0460473a2036fb00dd022dd21f28cd4cfa5116cd2217aa9d276beb7b532665b0d9ec00fff5b6c51e13bfcc755a313dc3ba2f584bc5cffffb7b088befcc6d9894faffa5ba42da11c04ba6ed2997695332100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 19cecca56063e459384a37f62fe4d9f5feba0461d3dc4a21c6152dddd22371203dceec63f248064a529a6481089ad9fc874c27f1a8f725da870173966acc6222d5164763bb2ff00a1f58cc4e84cb1a37933fb355790b6f68c621fdd8e7053c6236384a02719f88988873dcb70fe4ef7ae87ad6061cf6df1fc8fe12ff1f52e108352eaea9dd5e600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 9991c205b44b632b6c68dedf26a76930e9d20e72694e02a6565cf2b397ed2497044153595541ccecc55822a803753b8313d3d092592d8e6022b80870d801b88e886c31a5683800ed1c55544cf8c886b5b0e3ca42c2737bfb9c22f0e710cb323c6052d5053243f37c0f303f221beb09b9958ed7b94543a595ee9d24e32d6c4856af9a0dc1770be00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -50f8ae53b60857c25e58b01c89ead7e716f648fb210022cae79d37a91f4294b38b2d0b23a58484b522d6d9622821e6842c2b2d4a9a444029e072c7fb2e6c1d3ff3588b80a98a86addf398469f52afa0cfc4070b8cb921d1b31ba075310c33ebb89ce2f7e38e1f0567886ad469407d8480f4a19fffc986a6612648592561a7497b48fca58012a800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 23138189f339b3a8d5875ab2516a83ed98de5c3f5f6ae849e3fb922ae890c30d9f5f6946f395303afe95aa8b694c6c91456ce15dc25485cbd71eba4a486abe3e02b965d8ded6d1523b8f30df9b672ccf829cf6f440b047c3bf244022b3434087b77d673fb83dada87b1f461dcbe9d774703171a1391dab7989bce115162c17ba2344e40dcf0d8c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1cb821492a2770cc1834d2b3d47c6659c3493c7d3f9052f95d22d2533425aeaa3a70c116c8c9eee256a8effd4d99c72c8699c1d17ef7c4557d53f5c6115adad143ce1776273120f9dcdab14f9db3ed1729208978288d2832901ac72104d6b93cbbb699370d65ebe1de7b1f40d00acc3e5820d3a54fbe15d1b6cfa0d0152b31cbd92d59ab52a40600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = f81190ab08c1ae2340d91fe8e4b7cceb893fe3d66c15eca2515db8da30965757b19082d5bf48b8ea6845365729cbb668f3b53649713bbdf42a5a3ad873543e49cfc0b28e838edc67f183bac106011fd3bb7f61f4273b8c9a2c45eec9eed6e92673461210b67dfd7e69de8c4e519c06d0a84aae4270b144c387c3ca68eba94fe79741856e64b0f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -37c4d7494c237d4795813e4ba9dade1766828fa9741ac4a17fbe20b90cdfa43a656df93ddc3383391074914be91cee79a3dd7499ee2c63fdb5491c3aa8e2b2b43ebd15c410cfe8662da2e4373b936f184778d16a158a8ae30e0b19b6193e83d428ead31cda4ee8222001cd6b7caa3734175f11de3d8f567ed43160aaebd70a2d4054a28212a54000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 19b103711fa30ac4e7b58b37a7d9e2b1e922fa7f6d4af30e7bc513704be043bd8bba2d64e86bc80d9085d984b8ed54561c6d6319a625297dee3810d090e4c1c068084e100ad8fc8caf626337ff55de8a8a389777b48eb6394f4b5fea3eabf1a97b49d039707baf777111d5493c55c2942cbe55533bb436c282465fe3e7f4b04b8114cf4bb2bdbd800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -cf68f41f4edb1de401e5d4808cbe02c14ed86005b6fe84d061d966200fdb106853f788fcc0183158c4cf42a621a8f2af9a7dd71af223597df4c9606092226eb372668bccfb777ba494403938426c44fec047c3a6c02bcb2d9bdbbe54fcd6a0877931a9bc71c128a76822d5d93f302d1704ab8c8c2313d5105b915e22aaa796054e142822db464000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -53ec2bedd4ff80fa4d06e31fa6f726e1c2e9274c7ebb1377bc0dfcd5aed7e4898ce9c136abcd5e3d4250cd6fd8f2255c097998e37d0f825d8956350b2c91b65edbf6d81c5293d50239b298fdc33b5cefd82e6cba1147198522ca1d34a8efae3ca4d0081abb911ba5d9a86b7327922b158b31b4648fb8f0895de35c3f6ec799712b642699b17c44000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -63dba43255d5b9e33fcb4a8fe2bda6efc8f5a51cd130896dfa6e7d09b0006bc18442bdb5b14da6a1b54e4d7d8594f9e7f68cbd9f1999ac179319cc28d01a17e3e46ab0f76f449b1fbe45cdd62069ab991e106797933ffa5d5f34462c49255f87eade4ceed11870644c6939736b6e32ad6ea032825a407748ce29063e91e66e1b24f569472fbd1a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -71d2b87df61bd229da950f7dc0195ce4573278884741e9e7aba666773c577d6759b42e82e2a6db0db0881bb13a23a932b8cdaef49e9d8734b15ffe4594c5b249de7ffb22f20336ade907585c9bbbd7b725d06711ea22574e1ba51a246248c89c33ba7d619a04ee8c6fad3c70781a853f504da81aeaa3c1e1efcd83f749a21902f7f83a95e8239e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -677ed3adea9e1aa602b92ce5cb436c57033c91ac56ddb7c2139e6cbe1367d5b566c3cee760167a0fc95fcb117ec16989882cfb298aabd96372cd2f506c863ef7c3f4f7534702881ee108c53f2d8458c1390544dddf74415553286111deaae1f950e58b7fbe774b914e51eb70434d07b9f1d5971c4713f44f4bfa3035070e65b44704fe36b5547e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -5148b7ea383b1f556cdcc82b7c32124354d4d5ed7395de32039f9b0e7bc5383c0497cc9fdb060264b9bacb947b5b5b1b003b0e88d4617eb6e8de3b9a85e061a037716f565fde6e3becdcad07e9671930d4da3e5eefdeb6ba89203d9e6711e9feb49e72febd3fedd72bcbb9ed787df77ec2bfb90350e901a670d56b367b3d4ead4cb3d3e9a9d98ac000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 4fe28db65b6a1afbe6e35dbcb2158040fd59be2099d109f342d3bff7213516712df0be30bf460aa0d2566d3b2d6027e97b71917b024de55271cb0cbc9676ac4305cea51217667e9b3e235e5a52890f8d022d191a83f05ec5ffeac063fa368985ed4811b95ed491aa25e71d1b6a01a517dfc540a23ee7af85bbfa1e350df9185d27133da4ec478dc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 257274e0cee33984a9e2b5bdee00321e6ecdcbd409dd11a275f6e5d62818dd4ce0a260855e14e90272b5b3cd13a829fc9c93fa69cfac4a26063dd1d9385d647938300c811429a73dd952061ad7806b073eab77b5b9a9ecd487e01bb170b292d142acb61ca9f6b50ad010ef411d690529345ad1c617291db66d289f2bb4e69251be22a6e55a4e11e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 36d9a45dfc5f480906fb7c5f021166c00ac662cc56cc4901a08d8c41406e7bdaeb22a77561a72d58be822e82c4f44ee5d42d4c9b86ab7815582b8621ef8c06441af4b031a83073d94aeb4cd08020b9f9e67545e35e4a1decd140e17342b0a3f2f96ffb16c851d4ad552b3cff46766ac9cf29a09fcdd61047b2b227c42e31049ea23410351a4ecb68000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -29fae802ebbeb68689c705793a8c6b341574783df9e8f950a52e80e530caebd448470e8c50ebf39cbf5ece9f93b3bec9395e86e8cbbee6a4bee96c6b43f4959bde3454478d842de99b92448f1e7a8cad9071611b515fad1a211696cfe9778d8c925431bc202a0f286f74f285858db822c7d6eac0033d46745d22744e8eb941a9a3992f8a53ba00e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -9921a8db545031dd9c8370ac85ee39b96a86b72dc0efdf9aa0a03b3b52d18003410379aa2cdc1df211392c16a6202a57d1ed8d9b41e035147e3c8b6d929b3537403706d0cc4e046508a8cf443496197aebbb0a93838596bb88071759ef3a3c0be59f7c08a57181414e9474734cc89cb23a6c5499dcee84b82e7fd2ab2e8fb53130e52b23ed9522b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3da3a687c61f38cb5004885989afdd57565441fceef576a3341ab964f333548bcdce0950439230825cd11c5669f898b598008f42cd71706fab4da8abc4b4a6b9a08d779d67b12380027cc8d4f3268e715e55ed7c6f5792902196b91eb2429c5f9389b0f864062274d4984923595243f7fa97f15da5b75b315d9950d139d8a3703945c6ee9d63ff7a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 5ac509893c21f2a9897a28e0f0c37a41b44e36d86b2fe432a2f2d2725ff1968ae440063dd0f6eca89fccb793e6d74318116d0cfc561d2a273d43e047b9d5f722b60f2d6446a0560ac3c7626bc04fab0aaed1f8d7e56ac923d6290f7dfa4a2b0128898d6149d859d1211d0367a070505feda3efec035a02ae2a167e3b0ed0a3de140356bf43f49400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -df01e5bee623f255d17acc2ea9c120b8f7b56e40b5cfcabb91001905d86397781f53500d79a905a1a5cd4d2520f9915b82f710c7b5c06c6f7dfdaf1819cb8164bf2db2d9e526804b937986182f5251873e0a51540b756e82be6b81095dc77e4f7dafaff0dad347ab1a9467f41e74f11590798cede17d47008f6afb2ae41de8dfa708d54088211ad80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 92a6926ffa4e35c28b441f1dc2c201c4591a692ab00dfe43033816adf1b700b92242862a2eeb2012155ff6224ed89de253c0f09173f8aef525fa0ccdd6174a3b51603a393520ca501abd6ea8066a281d02e932ad010f3a785c24bc04fcd90bb7eba704babc385aeb30e95deae0c020f2172d4897342a5d351869b18558dbf1c240d91a30322d66780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -5e00df53c4c645bf7f425bad10e002832e9cef0e0f2ae613468e7cb246be9c8454e1c2017d1aeae67bd7fcf560bf89ab9010a3af7063a31ddbcc2465e087551a054b2066d59599f78493d693720ef5118b262d5abadd639be2132d66b3b2758d39597786697dbee3f90fc5522a94007aa8ef909d5d4f45fca0c4440752c547e32a7bf0b9a51f6e500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 2798f27b31040c5f42eb5783275dfd5a3d1a1d3509d3ece2c8262d46386fa9aedf44701e34628ab9c011fd89d3a32825372fa368cc777b7204c167728ef469ac8d29af4a0839f161f67f8e473e9b021c769425993bd3ff97acc33a3b88b9f37803b9d8b59da288c9eb6656236e33810eabb552f72d125e787c3489fba9748b9adf176b62234fabf000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -99978839beed5b0d9283bcee5e23bf1e74c5b0ecda51e0ea72c6272a4fdb1bf6336318890f0429ad3b77f8dae16436e30181b0a99a4e8c1a55bae02d826d5b573800bafbca2d0d8746cb5dfaddb6ba12fcf59b3af18aa860e17dea35d5c8b131014aa8e9f353c695398e0b230bda84de5a0de9440fbb6c16e295a80151ba2db2608f0608e2e9744e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -1c95741ea89d724075842d2b4de97e7c87f00e5f1ec1a73c31ca5810068e417a97a26bf76040826195e9d9f2b0c96435960ac9b4ea9dd153ed0f04efafa79b12ba80274b9dab878b755fa1e5a5c1f6aa40ed27eff95e42ab0a211a5cb537e138dbc43845f9bdc8213f3d69dd7a89ac9273fcc7db7ff517862cca58e6e61d96c8a6241142bf8c0d0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -1d2223362d6eebba7c14973454b675539ea179cf6343e653c7af3239eb648ae3829e2fe112b1b568e710ea7cf593be726c5d11e6698a075f5983938de0401df8ca19992e74def6cba2c859666ec9086262c1b59189f5b72b1b205f82457a631ff68685e7a8f2ec39ae3b9129d7723d22781c688e4a89f945afc34a166177f136346ae2f4beb2707c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -135b3f456bf34fa25bee38ef36f8d939f35e03a674b1fe0cfd43cdcaf598a5105b05d87d08c65255f39a005bec9f97518ec07f83e62a78eada113336d473d6063c1462287a440c7de3150e09550a8ebc36bb4b6731c316e04e505937467a68e0f76aa552cccda62f42038d243acd3e57d43c788226cdb5d8dc0b901c9db8581febbd3319a40f956d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -d343e7f8f9dd3eec7a78eff83bb5d8539babfc7185e14e17273426bd3a350899a2b8009a9aeb5ef56ba929d134e274d3ff00290048a63ad44cd48daf3b0a71ff6a641965a4e45a7e0ef9b5108b3c5501865b3570a1dceff8158c26c58c6063472d686f2254d79069ccfd1d82f6fbd4c48ccb3b5954582f42194e4ab614e1906026eaf280095e316c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -70493777053ac19e9257ff94512179eb6a30812f32c7d3d66deb1ccaf069029e6a62d5e1f58f62a7fcd292df297ede0627d14dd599d0e9fd83488fc84cbb86d6c627d6ddbc2bb1deceec3fa2b4ad14b2db8b99d4567eab79e123e21197f7c98c078d59df5be88778c581ce5abe9faf90dbe5e48bba77d5ac7b66f6c47f5ece7af5a5b5c6971303d7c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2ab06c12e01e3193ba8b909c61c58aa40c61ede5f91bb2e93c9251fa13419aaa80fc895755857713c1fb475028178a09a88498af6e97c752d0bd64beff1429d58e6a49376f9fed5f91e1b94f5841a6eac6af8a16c78b6fcdea0880661dd8c7f82f36115b2cc914f215a21e828d95f375f643c2d883c4b1f9358649cbc3095aa0c4e6a9de9a2db8bf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -140e3926cd9f9a1e6cb082036f0cbc4860106a66b2e07f86c33c59828b21b422b7a0d1961411ce54f9ecf88e433398a6d12fabf4704ccda8f7d45b5495c9aff6bf66186a331ff00da316c4f7f8adbd1e6da81a9ab14d5280eb9c051e58b9ff325d45a74b311d5a5c8a6fdab438e5c07e7d4842f675327510f976e6060f15da9903185cf8f3e25f87b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 1218e061ec1213c57c98016b710ea81483fbf3f771dd7e3e1b8ccb85491864fb3e746d64bf43a1d7f95271e54134555d3238fe8902efe5f7dcc07209d0e0d9f63a5e2c7d4d33b39d2c8e3281da2131ee692f9be2a6dc7a715b46c2c0e9f716dc4f847175333aac66a1a063f2583608f175c88d1d42e6e95e895ddcf5f36dc67200d33a561c8b8d1a1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -400f75dbd3c68ce3caebf48b84fd068e3a7f740d46e22017bd6fba5c131728f280619a5da1b4b0cedf1f01cb4f872d44a1eb5d859990843f20353db0834ca20fecaafab928fdbfd5b6215bf5fd0b864d47fa98501b3a0974dc5b4dd194685fa74f0975d29cd8b548120bb341aa48612f7c964be017b9ca093e7e1acb38760d53826c7b36b72ae64eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 2b0495b246b5e72bdf0e45f139b3401b19cc816b5a06f8071a7b1d8ee74ff5aa22d8a97e1158e03256230494d929b5d4fef8d4e1f6dd8944ebf8c769da3dc502848f936b04355fe366058892a8e0e58c797b9c078257649646758c6eac6fe01b4b5d245d548810df18fe835c059f5d2089043eaca34d4974cf6e2bd1c2c9baa9fb396601e0590d238000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 31472510527a8facbe29495cc3c340c42bce9f52856ff5fd125ca90244d074a6f792e77cd50ee41272c11064b9c38fea186e85c95fbe67a9636a7b0a65a9ceca09928ede77ca1b1f7c861b0035d7dd9ff079f910777bf1e3912e257533b4f5f66851fff00e642ad3cb799dd3c57e1e4768f6df286099a91053028047354b837d381cd69c255ddf7e8e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -d8a3f716a4c18f97bc93a24740d467d08ac6cf0f9a0b2c732f608a36eb456972f5eb8b87420e6791bb25771c943147e58ce9d95dcd17c6abe059e7bdd6285f5351b54af95c522c199abc55496345e85307c216151c6cdac805f939d32a4b01ab70ad2f8b38c4f4ca62a284cc5301ddf65c9bb2e5a1463a329c984dc9766c55b3d90d6cac4d05a0f960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = d7ee1e2cd3bb7c3f7478bff4b3bfc98423fe41ad51a8eae5136b70b22a5891160e80c22fddda1e4ed1b20f95f138a8107dc5416869af9da16f79729b717216985f2ded22c6ddfff2f931cfb809d42b0c2e57b5ab4a52fd85e0d3fb8935a0c4c58cf63342305d80e3fcded20cd29f4d700f2a517855f5ac04e155bb3453063420f971557c30d6019aa4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -2c7c9d1fdb4b97520aa72b7b765cea45a652bc980627c30b66139111d262b16503416217b9416a26f2d741f069e1321d95cb1232b029effafe2c36b279f443f41cfaeab54caa76e8689a3b963d8361423bf9bfcb9e04e9db48050be81d01f89e20b309ce3cdbd64b95b0a1648f38ebfaed9d50c7ed429a7d8028afff81d15c2a3f41f1d58fd70e30868000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 6eab4675d1451faaff2b02b717cf7a762a8dc0609263e44a53c2d3b08f9ec4fec9e5955b3765859f1ce66be6ffa42c824eaf513d23c98f3330e354b24a3f8500266d69daed2571b2fa45b19250eaa0e8489f05715d04ac0c1bf4bf0b205e67d1ee7e6a14d2859a376654036b8decd54e8b68ae2d7565383f6886c9e8468f95e4ff11095da6611af258000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -f97e345003c91cf9da51d71a4328cf12544d935bd3bb96cc3ffb44af3b174c319d53d0162cf1bd1b6317116b747725b501341705418b2768188b27c84a7f23444e78e646282c509ba9cb4a8231612c9e5028dce70e894fa54e0989d3beef65d6650a663f5f1cf1635216c8c0c4aadd184151f0a5838631e969a0b56189fe7f4ea541ad24f542c13e9d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 73891528dea0b2abab1dc159620f601835fe4f1f98904effa6b8aa60f92b88c06b8bb6989d81520c2955c2fb25775999c3f35f50e90c566d58fc2e022c3e59dd96595a17c81998809451369f5a1a75ff6adbe2e5bc7beae354980cd9b74742d1bacc8d8cc331d47d5e6fa2d4998ef7761cdda0f135253c6bbf6fe6db0890d4dbfc22be2d2197f87faf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -3e5a0c89a0c761eed939d9ea124d22d72635291594221afd67112ddf417e1decb839ff83b10dde7f3e50f7041788b91d6c0a5e5cd7c077f3d15351264235327239b156e64a0244ec9bbeee046758a5cef0ac4f95d64c33bef1b8ac170defea24cf79fb6c60555faeded96586db80831a8522dfffb0ab26abdef2e3bc6c799a81d74b04fc2fb0e67cfa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -22ec4110e9faecf4bfe1d4376af3eaa816fec44fe4f0efdd19a1c70283c43144d3aaca24f4746a1a5350a6eb6e713a85b606430dbfb7803928b875463800f491e3474b9281a9c6489802b05e9e4e6c060bb2e684c946d95c3a4fe500b59c914f524b23d7ac4acd3820b10db7d4c34d9ce8edd2cfaebcf1f4c2dc84fa08703fcef677bbd90e37d82e9980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = -930954a2f02a8d738513302495a720ad8e7b36033c78576d96ef24651ad2820510a22b0a0bbc03d1a4596c7bcbd6153acbccffa544ab271ca280bd9396deb9ab4280872594ad5840ffc519a9b6316d9f3018de05c4770450d2c92114d17d6c717d44efccb5dea65cb21e3d107745de42628c4c130826179810eeb957a1538abea3247434f098622b2f40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = -cb12bcf4eea6f10c9a7e9e9d67a6a6da60a6ab500d17f47859e8f808d72f5de30fb7f140eb55842080150557d517c1bc95d8e888dd41cd772d4be6a6f174cd49222f69eac3c363b46651bbfb10408451c7fb454cbf22f012f9acedf2f1e74ec6ae1b24b3c94073fed4ea2f304055f126dcebbef59323a6ba5a830c35d1ac3da487b0458648a990a30080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+A = 58b6214f1521e171d06d7e3c30d35f05bab6a3b2eab879284e28e7a4d847a1cbaa9f9ed1eec0a6e71ceabfccad751936c9050ab89be2952d73196c4ae6df4b876ee2534267fb17514b5494cad0c66a9d44f5568107be450663d46b1f5bf39bfde15a781f98e861c0bad9eb1e3e5fd718e35b1c04a7b5501bec2145d9e0175230cd6ac68d112b591a9b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+B = 20d05fc0686051297fef03b2e53ef9eec2d2a0cd3aa4de878311aaa7f544ad19c04fd2b79800bbcb742732aa39a16a59695a0464a4faac7e6ce87018408e89ae96266058b0448722c5b04d8c30e1d619a2c644528afd132a6975cc1023dd2cafae93bf2d6ed9508a8832ed41934cbb11c3bcb51db4de08e934edc941d369dac0aa54ddc2eefa3e1d65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+GCD = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnmod.txt b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnmod.txt
new file mode 100644
index 000000000..5ea4d031f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnmod.txt
@@ -0,0 +1,2801 @@
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# These test vectors satisfy A * B = ModMul (mod M) and 0 <= ModMul < M.
+
+Title = ModMul tests
+
+
+ModMul = ae2ca2ce7addaee2e2b7752e286b2bb6a58b51cfbed5c924f00398e59ec36fe6341cd83da43a33a12410f45f6228079c4aeb3912be87e2e81fa1799151bfa0fea29873097475b2c3efa312145d0bf7e51b2a7c9bc961a4f4dcf0c883ff90b919b87c21099fba40257645be31f95a3a277
+A = 6b18497fed9befdf22a01d988d34213f6687d8a96e86c188dea4172e7c6095a0d18d3c86c0f5a1af9c6e3aaeb6baac2a510930b3ed06ec78ec2e12b
+B = 1a058d99397db0d209f01212dd4023ae01b15da04fe62d1f76f21622b2695558c67d706c535ca7f19b36f8ef2d508ffd6cf6fcf25e5
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = c462c7cdd79b7604246a0cd97b40ea5a9a77408f13cbb548b56ee713c690dac0507fd988bf28e77462832f4307b08564a51510d4a951c1ad7564316dbead2b53540090827a8ade8092a6133af0e5fac7310f787dc1472836178ed6992b9f71224da3e884bef8e8379a58e6d4be0fbaf59bc520f786631857213305e23fd5ca65
+A = 16c92f77c139706430f396f72ec7adb045745cd9f5899b0074d9955bd32de66f57c05c7929b575312a7f1c04f19e724d64744bff7b31ad0e6171437763
+B = -8734c4a2361fc530f60b28a5f1c7e93136c5ff6bfc7553965eaca54c61e6befb3c0f8cef4280e780cc5940d21a740debba31f863ded75
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = c462c7cdd79b76042469eb41a7a83115eb84103da4ba438c3e33227631dc185054ba4e607141d1e60990d8aad4e0bb0ceb645ce9ccdfe72d4738cbe1f6a73ed3e070194fa4feca6001c4a853940a227d15c1f1cc153d8c96e90e24805929fb11e0665e0c41c77d5a97fc5903a8b215360e26f6a19922d650f460f7056274ee92
+A = -6715098ab2ba3ea1e6341e89936e3ae913cdd450dc831c8534071f3c362841e47d88f2cd29c0d1239aa0949f3685f12f8519625bbf10b2c7a515e6d00942
+B = 536d4b3e4815ae5ed55bae6950f5a8a61d52439d2800ef1b5ba2285b85ed0f6ec4af9fa0e364a6b14f6f6b8bebce9200467804e787f9f3e9
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 309b3e30f74c58beca8b2c23f64fe1203830db8a7e306e1fa2e2022f0d6d422851da509d1b2936f088f0e35effe12a7463f47ca369bee2f2980bc48dd8e696b2d8c6f35cf55fb8baafc2e613b4c684de26129cf196741aab873f81e498b1e03018a539b5eadffeb5953029f31f8579df7ec0ff3f752491910
+A = -11fec955948e007b59fc50e729941ee9d43d552b9411510b73f6b4faafc0465f261f8381d96f647267f72175883172918b5c866cf1f1ffc43c55f3c96a60c01
+B = -2b3792f39499767e0a8b7a6a406e470a78f97ebb36765beab5fe52e95abf7582736db72a2ebfdb2405e3954c968b350a459ff84ef815dbc5910
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 9143ec3e9f74a8eec476cab17ad8636eaa7c60e108e89ae0702dbdb2b255a217ba2530c6fd52658cd931b962054a9c20c8713976ef3b7989c40611cd25b0a9ad0635d61f6dc95dba6e0c4a7d53ff539b623b97ba3d66344fa324f905abb861c6b1e830c4b0fd5f6a4b01f09c8e1408941291b2285c4625267a108c
+A = 7713413d87f1e50840255927ff27bad79e5de5898725a876e4647913158cda9f5fa031dd7fc11d2e8130a0ba99e8706341c1a98d5fee3218763ceb1d131e9cdcc
+B = 1384e60753dd4bc20cdabf398525e7c4aa40065255c5058cae0b2ec90a3821bea8de672a712431aef5864eab719ba621cbbd8b46fe86fb31286091
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = c462b3b4a0432890d141c0f46a28190a2e30ebb2e4ba90ed132169cd72316b290dbf5c261984d98e63eea6525fa890bf52185ad7f164cf49f67ca91c2f35511f3bef6eb7f3da31a602a78e4752e326d79dea729f4ca6438f2aa65eff44bc60979b42e44f6a301cb5de8fb42abb47bce5633c6ae9479d39c9e8b507d96161e0fc
+A = 17d806d7c76aa8acb051fd9c0c782443f1b1b6387455f7cfb737c41658d0459bda5d13587055eafb87ad8d209bccac1fdc392aeca0774ea48799511c1fb9141cad2f
+B = -d7c9b6574354e131de4b8643d766641e98554a03238ebfce1112c3da5f049d6c410a7f05758571aa2625f7190b936a214797570539317b32fb94cfd8
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 16c84ed15ec6352a8ce6d5c2bdc0d9f13b333072fc7041146e944a29391f83e346b8ac0bee6dde98a420ba4f8852801d7c5bea6f1177a6cbf799edf2146f8297013e0e796917cc967786788ff12d9c1d07d9ce4b897bd22a1b8a391d3b4ecaa5b5c85d0a03aea5145db6350c42a964a41ee5f83e7d35e14cf442e5d99ccd0ac8
+A = -6d84cdf18a2f53fe496248fafef183914d55c42267af3dd42a39515e80cf29211fd58454986f5fb6afb56170dd9865d3158249090270bb9af341c830522a4dcabfd494
+B = 6f6f3f74187b7d74dee92f79be864d0a2c56d4bca3283742e9cdf15112c8f4208e3ac8ecc98b44b4ad74b0671afa4aa9e48dc31d34224a1f66bb2b4658a
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 8fb782e4883ccf3aaa2d3e020b08993d580c69ec8fe66ecac152c5babc8aeffafe406736cea492450fe6adc25dfa2e12723a3f9baeb02fc0f785b3db760ed28048e1710a78a2ae0c96b67c109c5034375a512b6fc7906847253f66316baa0ef90facc9ab992235153684d49d6939ab9e91086529494d7386f604ed69aca2f53
+A = -1f745c8f0c8fe6ce3f893d77fb274c61b72b2d9f9c5a2eb2467bc00d1f496d0ad469d76bce318bd64ff1107ee5fcad4469f84d658586a5789c068b0cb9b866d8fdcbcac5f
+B = -3a2347b491813252e8ebef1bd181534b074a368d076b8c80bde2e54ec3b4ec99001f43080c7857427e069d99b1b65cff998a141ca6963aa5fad1ee632986ad
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 7c0c1c05ae1d6420bd93596a01aa0153000ecce660a8a14d6fde7d4740719cc495fe6681a9a08163b2dfd51659b3ae7db0fbe09504370bfc695457d7b32665a4df53e879ac817bf715d5bd6ca0e242b1ebacb1ffd6698ec90c442910a92b35ec103b345f9a9e5c7b005f8028da4dde80f36f6f6e5675040d19e46aef06040eb3
+A = 4c09264420a9452c6f0b55baee42c076aae5a73697cc6bbb88b7c922f236ee4c18e477f88e2c40cee03f0bbe87d3ac8dffd75f635315f856a3881c6373e8b9a286c813325d3
+B = 10474ece7ddae5c53c4df5b594439124370932dd94aa5d5b4ddaa233b1a55634fb7d72e33bf1b02965fa9d1538f97e1cdb5ec0477cec8ebaf202aff8533211169
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 481543f1556df756ae2e422ffe35aae020c9bde9e9b1f760b43043a4654de363dc67f381c0df1c3c1b90edb4343c47ffb8345a1aaf5dae56f446fee08a0b9ee8c42fff57143e10846610a9925be96418c4c957b4e92af734b96fd6f21974877dba52a0db1fec4aa97640e357434f95ba74b6b8323cbe17118dc489552844602c
+A = 11bccd165d9fa2d8b01a48c0ec549a6e600396cd2023f0240056193ad27e971c604eda8aaed6ff6be8be1001f3dbdc8655f1ae84eceb963938ae7bf428eb5c968f584798c1bd8b
+B = -cfb6629ddfc98a242e3290959f4d0726c0b1770b52393bc7488a471a90f7f0951362c03e67f443c9ecf4987f5303a789bf65e0fd59cc5eeb9f5d4f40d3e4a14080c
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 2a770ccfbcb2bad207d0e2dfaeed04b6e7509daef00a1df88e57509451739a8a0f15106ce8b53d280a4b4e09900420714cb6961ebb0e00e88567c5df50d2f2908b4bf8e0a9a5a8b3c6120503c14f16a99297459543c467dcb67915e0a10e19f72ed5b6891a6121b66abaa602818801d3306630bb04ea57e6b31b2c05e368d398
+A = -442c80289bfbf00db06eafbf06109b55f99786a323fc2c6db5686f99094cc24aef50475841243ec3ade2a1e0ff28b4032fd8afb8bb5e28f3b2863bdb9fc8f033adbaeb5f2ab16fe9
+B = 6d43e3c46f4a55d49e78f40d34033a7f5fcbe50873930e7c5452b6b3b176534e6e70033868c85b4d63052964093214dfd0bda6a84e893b1aae3cc72aa83d039e51c014
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = ba0e8c91a86af1001b13deb115c77609a1e7a3736a6b807255aee898e3100f469ef6222be532dedb1b8d3db4b3b55aa4b5da5629c83e9b2bde76bf2f2a4119a5378b5cde000980b3e58595d988ff776f0388fe025625ccf368e20914fa90dc771c826e4a836b2890e82ac2274471d586b4de5dab3278f0e70207562ac6e6493b
+A = -14be403d28c8451cac4dc83fbf895a9d2b74f730c39b0fcb33d7258f99211dde31a78f182ad1d27a559031d67d6f2f94a741f141bab80fc692afb452ee2d502099ebd5760ccec7f7ebf
+B = -2742dfd02134594edc6d3025aba5ca4a34dfeb43821ad84164510b43be4fb95748f8d0eed7bbcbeca14efe843fb676882784bb36c889be29bdad9270e0956286552119561
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 20c691d6544912fadfd9894cbfd42745991f39a29cbe3a1cdd302bd0487bf70c0179b9579b77f8481bee13ddbe42f32d734b6118af92884c946ea8576f6dec867c1c251c73777cad7c7c76e90da00ae07f96c8d6a751e5b18157dac4468c05d32eb86e74e0e8312bef85905af8193a3f5c799c5875badbc9eb7ead1258e56d7c
+A = 7ae9b4d5151b11bb7bd4d1569a6f4804f3b4d77948e0c6300e4f28d51c9a0afed2ae7503e53489edca5359e2b3d0c82a9cef316cd7e1c1275c31fc9c51a8c1e5fdf23935484e467d6460d
+B = 1f46f88d39fbedffa8501fa1268bdf3460aa98e12b629da59676e61852a4d3f8c59f72a2fd717fe2faa09639bc651ba516cd39297e0cac67444ec57c0db47c2a4e250033d02c
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = bf21b3cd55c0df8d4d568d00f757b10ef3de782ae71b289cb2b59d36df1341382bdc1825ba13199f2cf279a72968b3bbf5f7e3d13ea9adeb96d81132788231fd988eef04828119dcca21ec1fe844998909cc95a8d01720e883df27f07ef4dc3f09081015dbbdf019b96707c18b0b1db6e689e8f86466a2afea4a9cafc576e10c
+A = 1243b14aa3d16a55935f6f8ca49295e35e7f75b03de7192e1e8a479abc0a430e0d340acc05eb9a61a5dcbfe3ce3a4c5c940699f5043e924f282bd21e341edf8b7a6741c6ac72d7587a9e7a60
+B = -bcf08b2153e8ca911096189e35dbdb21b77ce89685484f574c89f1747612f39340bf1b204a23530abb36b2c5e195940b86ef1252d6729393c25d4c73dd434b6dbc3057b05d3f15
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 460539d96c07e72acba5b59c88fe904bf7f1e1648612908444b0b08172d05968b31b43456918b4287dbe01afc3cb4860d9c2fe549a580c989b6507094f6c241eadff910d2603f747f8e289e7a8176ca4a978bba89288a4cf875bf3e03939af966c54e77c28119a39d34a2b7055465f58ef2efe7c82ac547fb675653198e4b504
+A = -5a44cb669c055ba7c28d49f84bf8d12179aa30bbb9db2a48d7a6b09e44dc0e0f7471e3629cd2fb51e5a53346ae025fb49f9591ed1d71bc79daeb3f1254342d8a2b091ae07a758c1555efe59e78
+B = 646cc0f766346aaecbc5147a4488ce157a6d844045b80884eaee9d419087285fa71108b5ab4a05689aacc8d2e3dd0e6714c55eb8f77487a3fc5e56c3c2df0c4acf28a457051118560
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 79b536f4f30f9f7483f90e65e6456ef8072d9a7430405cf8c9377ceea2c676afc338837643436d55ac6af2326ebb362684bccc5092367209822581700d641cb8d331432b761e4c6e22639a27335f45a25ec019d180fc53dfb53d69216d7cfaeaa07db8288adc35b7bbccf2829631c1eebb821e4d3299015c3d462dc17aee5024
+A = -167529b1e8668938ec02a68bf4d76c22dd018c41e19be25e2f821f63c2046085d0af30d8b4212ea0f3f9943be1c14fb2d2a944551107cd2bbf8dda5bf258957325f06277036282977db4575b0deaa
+B = -378e1be10a57e03b197bc2b1287d643ba6d89da4bf6a6170816691fb6529c602eced237863ee39659be3729825f032a57eb5de0a87b0894d1a1244523e85b6f50a3d9976dbb038490e46
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 658169197ddd0bfae101c10c3e6a2b10dbb456048e81160b47b197fef439b1e0ed710399cfc80ead8e436f1c0399064f92da50afc335847515686e055fc7bcc0ca721184435955b896b0af4f4d96672ebed2f154538d49fa507b945c0a6ae926793751231980274213c80046666c28ada213a2f87509d1466b8d1b2122e93f8
+A = 49136d37ae8f3da71a6114327833e8aaf3dc8b5a9a27e9d04c953988456e525263f86ba94397321c2093803b789f8db3ed7cdba19c4b796500b979e02952e1625246f8e977e01fccc133f94cb22832c
+B = 1dca005663385fc00b4fd58c73adc7589d15ddbcb8cb2fba03a737a320c447a2b21e576ceda73811a31d8277883fd31e22f776bff3261a098ecf8f40f2855b0c723d1265eeafb43f85323e3
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = a49fc8084f3e780537b4038bb769b8db3653a3315298a99c2ede6739a1732a636e9787f2e8b09d0b9bea08fac43cccca71a315e6f4a7d6417d171b4693dbdbee8cd9f95be0847ffd40ff027267125d67b89737e1d0365bef6c4429504d13cd8ddc7810f456d6293c0c57c14a307b94010d79d5c13b92a907f923966fd3c5c8ea
+A = 1e7d8de2061cca59d1cc19b356a8fcdf2ccf917e0d81598f014167c5a8de027ccfc8f2cb8c37c396ebaac83ba862c146bb2d551d10ce03de9528f97725804e8a6de57b9d9da811200604c2a032462b6ac1
+B = -e38592f3acd75b575f64ced439d5ef2377d21c61bc70625639b01bf755fa2c6de803ce155744993493debcd4de40860bbfcee86d0b117d7f8c3f8ace68b67cb6fe7a81a145535553896424f7a
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 5a99c8a6afaa97d8e7d84f4899803c7786b1bfd2ecabdbfbb3bbb92247ff91ac213a72f6d23c24699d60babe91a7d9cea751e686c027fa1c954474fa5680f0059118426c71299462b11de5f2817d190599cc4b352df4d2e80605f9ad1e32eb13712d3027a2b6a19d52151e37e7fa057d8fe59dfc8a943a42a1756a38f103a75c
+A = -7df29221e6a102e32757c18f87927cdc90ecb012ab0557e0ab855daba832d76ddf595b9c5a62988ca968b64fd5bba2a147a5991810c17cae7edfde38bdbb7e13a1fe5206724c05a9fc9276c8d4e503a860c7
+B = 5c586d1aff7dafea3b8ee42e0e8854712c95385374b5bd1fc8ec41a72b296e070940c4160509a4a1699a678533ff3d12299338fc441b0f01e29a48677bfc5aebc644555285756e97c74e1af6aaa8
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 21fd2d881b6a52332dceea42664aeae1ca110512c13bb33e25ba4ec0f39f80eb73b1fa0834c998c23a2453dbff971eadb183c51a30ba78d593f23be9cb6b2b33a554ef31e4a36e0314fc2ec889f18debb956b89d1bf8172553271bd56d89ed0b30abb70e68abaa2c76f73cd5a3de93433747d09c845b5f8843f9fdf9f6c975c8
+A = -19fe3bdddcf08190a037768b77666de803ca4f7f0d7dbe6aaaf334a486dd0da7ca024d1b3df11e0406b0326595a171be30b04574c1a7d04f4d2ccd334663690fd20e4fd168386280510a00a70c1a11e99483048
+B = -33b2400173c057980b0e0cfabbda1a5cb5b83b7ae80708c199f28142237f04b071c6eeb63d42e80eec04b76152250c9e4d4c4f19a048cb9815dce6e66710fad1d27494db5c31d9af37d2aa779d12d7f
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 1c45cfacf30682a876cfe253f05b393a2cd4dc065ce73126508ce897a99a723cf5145187643ee62d746f6edf70269ddce3c348a1432316286a648ee9ac31ef87feb14f25c42f2dfc2e84bb5bdb4ec0124e249c526c55ff2cd0ae938555c5f86d856eb181572ed01dc045f1ababa52d249e56aba0ecccda905d7d1e64bf89bfe8
+A = 6a40d948eac2fe5bf6db15d7f6b89fdc0712e32d39a881c21859e8f7722391ce05973efc7c40e2c0d7f56c217d8a986bfdb08bf87bc0435873cfe4d01967c46f7d39464bec411d0369f6f5d1d83f42596fa47451d
+B = 12529775e8253ba220d890d4912fb95f91e4edb59610e889431208b6bb42b089cf2aaa12ff9ff98c2482e7f4cbf35b22d15fa28aa288217bf766e937a706fe1e600143087b0a67f668cb7b762c9b9f38c0
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 3b3b08e8eda8be3918bf648227eb0d569dd898729d9cd54deb32b1a1dc69cf7b2c4184c8ae9641f0f75950df263a5e236f428ca86244e617b14a04edd0f31c02bd4d84f25bacfcd4a2786825f0361251475eb6c7e99020dfee4298a1f1bc260d4e364a332bc6f651dde7ce5026dbeb0e5aa75ee98874da54c7930108ad28e3a0
+A = 149d36918fffa682cf90c4d3f3d48e6408e7ddcbeb44e78b9cc7fbb08108f65215761a61d79f37ec8f67cc51e0a9b4bcb3834b0ebcf6734985153f29a2778473b80147eddc813b4fbeb98843f5c1ae6cea68f88dbb4c
+B = -ca87f66182e271a69c0964eda92a009d438078b584c3eede28ce1a501838c5f497186d305c09922f32ba858fb55f2a0dbfc9cd0f93b789c1f800cf092726d6d33db19e4f26c7dfca69b83925db14544ebfe2
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = b199655160d88b6b4157ada0e5675f82b33b5592408bb57c46e2f7d8791bfccaa51436dc3b772b83e907c20ce7edc2835ce96595b78c0647d244e9bad6f4184e0003eb0899e7a47ba0be888b9bf795eba95e5073a85c4d20416fcd4a8d4e1e16b403deb38845fb8bf9e9264d68807acf02d579e8cd104cf2bd555e6cf73d0450
+A = -70ccbb73e33a7cec30ef2071f3b1f2e008e70fd6d00fe8b7aa4b9146fc6d0549c57d984cd014c7e0a4ed6d33376998b7c2c9778fb9580d8ca4ba795c88612721c153c186740c58df3fa63b6cf7a4de76e049217218c05c
+B = 6cf4168d44a8da8e8446b4420466fefbdeeaf9623a40e10b77547687b25f36916f2c18cf6060c03b3b40e0959479f6aad5e44dcff0ba799262ef53e280f4a7f667d262d472b2e573265774deb5ff8f25dc1822b
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 6ff91af444c61d2e2fe8ad73bdc5377d5becd55074eb60f0f98eca3d8f4be8c02f196b3afea12c36f78b78ae6a5ab677ffb7d9c0bd58987cca816affe468c7fb4b56055f5d2326532d6ed1c00ca2d052ecd103994e8929bce04e067082b4ded7e1973566f99c514b4e0d95b9a8a931ef4f6355066940990fead70208a63841f8
+A = -1c924bea12ad6f8b65abd1796e381fee2cfbec15138191bc22d57165928794bb080c83878fa5fd19a5d657b2fa91165459966f50aabf19440f7d75f027b32e999ff4d3f7a7ce878fe0f33a847d644d86ca19713ca9968d97c
+B = -3abd4b281b8f25f5957d1f2fde904457d49a3a7eeceada26b454ceb4ae0e879135d376571f08b5038b7b3d73a9a9fecbe265b72375756a715a523ba66737085e5ef7a4ad988155adc93eadd5d95a0faea56914983b
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = b9076229b1a1241e8b4da3fe143ac31d060785be6ac1e841c2fa9683d2bacff2e2b5dbac33f58b0b1718ad2053c37ee55ea54a9d258ddd8930d2784852844d85db24e4721762839a5c73cfe588efedc8932ccfa585e1b5975083919be9e32a86dbdf5cef84d3d4b2ccaf7a006c0cadca1e35fff2da9da7d7e779494d8f85bf4c
+A = 75eb0fe6c07559c2b0c7b2acd7d29b5798f6c4cda64a504ebabdf54bdc773ab28b218f0defc040016178958d5561796230b71edf49bbdcbd3f14494859843c8ca7a0f777cb05827f2839f3982832f4f3e3c5e50af17ecebbbc3
+B = 1b8aa718d61447003fdbaa748a9d86befdd2675a677cf34a1be7c81e4577f665d71135a8a243976a4f6ffa1636695567bde522f8fb1948033a7e0941f833d827e957781cb4349a08c6be418befc8959960fd5fc1b288c
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 9df82b7c34ca97a3a5d4efa28d5ed4f35484914dd73af9090c4bb31ea3496ece8ec650f4e7b07dc779c97e597e76e43cdadbfc6e72b61ea718c073be1cd204f8ad2bad0df1e530e75705f3d3dc285e9d793c8d42f04dc20773d3fcda8ef3ac1cb10d33d20a91add0358ab8658f49d2fe51d0d2d72684e31c0eef85e5695bb4b4
+A = 1fc2a171445ee6add5c2e4d29e50b91d83338f8d63c111e4d3e95f16d2a33be02bef24dcc3d6ce6bb8f1ef980dbf8fed409a0232c0566153014eef840aff58ed8c33e8d463d408f93e2f5381a26fdea63676c4e5397eba1d39f928
+B = -bdac7a177c77451104852bb99004ce8e617036906667258d85adcbe8cda21ab7d03aa7dcf62cb210a9db8fc750c7e1ad290b35473be0fd607fcdc686de0b78fd9f258f5b25e2ed43c2ad1a38859f882b9f6b293dc258659
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = bd9f3d2e8a1086b177698f87a9860e3a5f030e04a0bf4ee9436ac55e005bda01ff4ac662cb85d39e98a41c723ae542a83a936c3bd0280c6801ffda080ec0aa4230b45dcd0bc5eb41cfcf272028bce3572847637a92d1543bb2b8408e880f5b776e1cf14fa28d15cfb584f025596ff10c9f091c837a3aa622d9e5c856db8ac207
+A = -7fd5357cbee7c5e31fb62ad03bd47b705b574d915200fc7f1013d836b9cb683db020b152ae9464de6aeb8baf14999ac7025dde6173fae6ade325c60ec310eff6dc4130a8efffb15ddae90d760cb7f76a27d0368175d4a44a22f7f223
+B = 5894a0223e4aafe4efd4572752fbde4952c8b09cdfc35137e7e6ed650f8fdcfce9de673853dbf73730b159b2656047e69377d7c5025a6b346fb08831e64bc8bc34b75765012460d8135a4f7a0f41d768fb85abf17f5e2f5c3f
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 2c61867bca70e8662c7e5435a5aec020faae86fb079b992bf49d8497fc5f96abbd38a6f04f6ca8510e0160e546b3f68b7baef4ef0f404e881771cc12ec5ed3e3787c2d2ad6bb957cc59f8d56f0afb4bea49cb671cb42f4e8a0ee1dfadb6fa14f84a5b3269dd33e20d658ea4cc39499c7a39a4b5650ad7018d32f97954610f676
+A = -1bf5ae15f24c7c14eb59605136a3f679f303cd5b81e4a27465281d17715afdc2c231d7ccbc59f80ad176f4e0326eb757b52e3695e27c6776d7936da47e3a8a904f735b151422029535045ef489e61ec93f02e6d588491c8dad1cc311f52
+B = -3238dcafb85ce557036d19e42e7e7e473de9f9da6f920e18845dd010546868d2652decc94596cd2c36bd16b02c02559892b9f573bf21ab18c3c75591413d046b385d08aa66d849ab8adc9fbf788e837b047a7ce2b9c63f7fbd263
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = c1d04b831b712d0619db462c3f3fb5973f5984e9a48493ff273a5abe17a548e185d751628899e2851e425a7d4b2c72d4d908dc813cd122b8f497e08e299dca9166f19752ff8cd9840a70155ed9e8c063a3840838b3679f96f1cd5f1cbf0e037d222029e02769dce7fdaea0bbb5417f85497d77c76a387c6b970eac15dcd128ba
+A = 7aeb60c134e84f289e419b74f99a5ce5b4aed5fc630d5d591ac7643251ad32d6ca7f052fdf8857f67138262d221de644140e9018f7b84879d74883f8f251303f65e06bb52246ec6a912772cb698b47de41c1826ddd065359f6b9f1ccb0cdf
+B = 17f81e53d9fa6201e4d3eeebb32267929cd5258d10f053e7c021c4afd17094f8ecf433b1ca752f8740f6d6bd84f801b1b9fd64bc4787b9ae5e5aba0b4318a63dfe27e92d5a3ade192af7563c74c9d6006ae7701240efdd6021a83cf6
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = aef89874854ed34deae1b77286f9cb0e3017e3ae77fe050bb244acf4f30dc03504c73c1a4d44b769709bdb53811a5d0f8a76a08e6a66fc2cc4e98537ad6a8049f02494305b89a49a55e71fcc3f5fc42d6b478456ada9b19ec0a03f5ccfac5538c0040092771660312be5e51996073ff1a506d7460c57d54e10dc2991c028606a
+A = 18d3af14bbffbfcabdaabe44074b407d69abdd80a6eaa5954f0e45fac85af7ced1715c78da872f7a8fabaad3207e31f12b7195cdb25abef0a1e54d3b13349d997f207fe130d7985e2033cfec899a0af310c9827749cd22bd062eb0b1faa254de
+B = -85a7d9f08a60031e689b0e611d7f7f46e1178eaa2e6459602e738990c77f4d3783ac43fc04d53504cf67fccbeb02f9846756f8e32fa4a9316b6d3b45f644254077bef096a72bcff17ffa17070a4355121cc5daa2f782fc0d0bb48101db
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 14a85edc6297763547702c212b1a8274b8f85d53ef35cd1b01ed51039bbe030d0a1b9626ae2f571a43f1224d723847a1c6708f2238f6f6fd75db6656e6c703a5acb57f69717efe8ed58a3713ba2720d8c001d026d83de0ce5e24b67c41daacedaadfe404aaa9b672f00562e6901fbd0710c4303fec41ee3338100beb36c9b1ed
+A = -44414ec207060d105f599b9a66aafecc5b232b55214c1a5e1922f6b59439b3ff77cd3a327bce4f7406871196b90350e6dca9aae147ce03027dc4de7563c734f111d95171f489105de5ca80047cfa43f7e932917b816ba7d41fb95b4106745d700f
+B = 45f2cea1b9b75880ac3ec206740cfe0ecceb488c9155cfacf5885a8cb49be78af8cf221ff8de2328f4880479c031f830a3c9eaebfd83f7de501b7c5cde03c4720c56a676d331b2a13c4689a2e34a43fc11f62825b8776e75d31225ca7ff65
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 7670c1e2e141d8f8f5466de8ae2e0ba2eb3eb7634699eab8415d3a37f8df291d00def88361e9fb64a2f116433dac3ac2764fd62f3201dce4e48a3b7019e5465f82241ffda29d5eb0462fde74dea3168f8993ccd4d090b9c31a5a6cd7e05f725bbc89479836b89379b422250ab049f31c860110df5ed69089716877fb0ad7b0dc
+A = -15b4a2f808a85a5bd466a342c4853c04ac0ab73f8e53a4a0477f73dfeb8d7a911ab2eb5d3d192b9b084d0e38db491148947c66f838aa5f460c37341b129137614259efa531c0e6ffdf163ec6851737037a5299060418d96da035e6f583e6ba79d0414
+B = -3e94fdf22004384f7881875b1d8f58019ed8afb1b6a31f5d591e77b0998f3100b34174d6f3466da44b4c7fc8b92ccc5679c26c146b704198a65a88554d24291adcf897bd758a035361f671a82972b5962002c6a828792980f86a64547165327f
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 35b49beccd8d2010a8d777c1ff69e28e01a1bb78c6466e717f0a934bb62f9bbcec5ed29f9cd2c14d240a6c33b28c986eb9c8912a4927605532483dcfd31a50876e1819f3d7a0f49bd276ced5c4110470244fca52d2611ed7e31cd8b73e749aa70743b39e92810b3b52320342a65cad3180f6e2966059d15f79e5574348f5f66c
+A = 6fd078e3cbcda6a71a710e99204da640edc71a65974fc765999a74ab50a0e4b090d57ed0ee869c8da2cf694b6fab56e87c4af62fbe73eb8890bc066ec3460beba04dac3b8fae7e4f316e8f954c6e8d934e946dfdc9f4cde0f26bb3d40d5c444b03bfc65
+B = 14d8041a3b83468d2f44f150ad8d8d0a1a22035d630f2a17b70d5c3d557d3abc7e4d753e1ebfb3a3ba465520b84746073d211a67e079ec7f47c2cff9c06da69bb5cbafcb6cabe7e0018867c42e07931d6797d4499463e3cf786c6d5d6c8cbd600d8
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 2f6e0fed8a9720fbd83ce950d7545d2c6d5b271582194570424f90309227a51777cac974bca0ad3c1289ceb91cf75af73b0645cc20d71e7789144876b8c1bdd550328d9907accc316189e8ad81310848cddd2dbe362c9398d814a048f93f9368fdbec0f19ab87ad2a59d4066d738c3da3cb71d4716f2cd2336ad35ea1438276c
+A = 14bda9e4aac85b0ab7abece728f61450b7779d3b5fb83be813758e742d2ad76597f132aed91e20a75c554f0d61ec4dd118eb733d04942b2548b1efdb4dd22fdb543d9bc1e4bf0574ae2cb2c46fb98cc4835b6a074d6df1a3bc5443beabdc784d542e3349ad
+B = -efd765f8ffd72d041ac3244078b8dc4482233e9411b289cbc2cfc26fed2cf28e286835010438ddc9e7021ceb098b10c68bcc4732608ec1f4052df9362176ee14812bbf09ccf7c2882714ecbbf92bbff61c06e9dc35a368208a05dde949fa2cd091ce0
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 1f0c436379f6dff55a59093ff2a0626a9b959e3e3e59365afc33c7a7893f04bca863ec910c446957baa8de4e35a1f4e9c4a776ef41b053f03b775f327eb7e5fbe68bbb478aa4339ae703ee4b573d6931e47e09271d40239d527fe77098a7fbe519f5eda1f26dd6a7d0ee6833efe37187d8a85844690fecf9fdc3a4d80b921130
+A = -51eb34de29ba24d2b1fbeb0a1c324f4ebc69cda2dff971a315c0c2775d988b03ca29891ed0790f3dd507a1d26ead461dade9284613e45df338dd83aebfb66050465d8aee554970b43f7d4e0428e1512289fa1f9b23867b67095c455b66d536b91207b749189c
+B = 55259a1122eb7eb611a69118d3d42c2f05dd228d71c0e1e42ae3a8d3d180a95b74150d844e916ac85105805126e4b995f2ed1cd3fcdf28e1fd241dbe3125dfb3e4d90556256eb513a2f7c9b596719c83b26931d92bfd3573560e8bf054138f5d6b9cde72
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = ac321a272d2206df4dcd6ed8ca194a1049c1e3a20bf325fa44809d302170f850721c077bb5d792f86f7ab03ca259567397cc2fa1429771190bb632ac2c92d3fccf6e05e13cd33149994cda5f9c57da155439663f6a13c66f9da553f5038fb92fdba186ed9ca04b8ec87cba4c5a68c8edeedb94e38a6dbe293340dee1a4ecc768
+A = -19ac99d7d51456b00a193b3b04693c7e5436e05763f0154768db078ea5111cfe9eda3451091af213b9c8cc649d341de66c12ab2803ea39655d3d7de182a77355ca444c5d2778f791d39952a7a11839e497f5dfd8a703df49ec4d7628bfc25a992e94a6477e6be39
+B = -286d1d436f113308be594f0f43d7a05120639152b7e2f93058cf602cbdbc016512bfd23f7aa937fb358b7b602d15998ecc150f2b9224c58527c0c1267739e065e24236771e2c683957871637468181e6e896b513569bd004b9845f0f0e4c26a5ca123365e1c
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 3466804a1b7d1af8b6060aa93a4c325d9cadb33ebcc8bd991f9e44cc2cca8918411efeed0f005790d649382ec40278c8cff903cf3db177d24466c58cf6a56ffc14e595c36bfefaa2327d37f616b1466eb702f5c49170598bc361d892e18051b8233dbc5b3fd6832befd9a995bcef3b0f3beda6efaf09f7306ec203172e78264f
+A = 6710c19330d3f974fc377e28039e0c0ee0a558621fd67fe724c326537c18c66dc5eec60980e07d401ad5556a05688d2dbe7b271f9d5eda3032bf7cb7c420e7b5d65a195bc037090b6fe83064ac3731624ce2baaaa62a6eb07156ca12ee51d4321988026cff573ede9
+B = 137ca18f47a151363a3e8c52dcf024262ba525ec8852e8e406f460fffc2cf88f1999b17a5821849317fcd84d09c88ebb6eb0340120f113d7ca5fbd91c6a40cd790bce7b422552cc0cfd2a6417add2501db1667f2802e5d0f4df824adbd033a90a155cebfbe0b53
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 6f248a70b2cddd9627b32fbd130f05a604866799365f94d97f1eb582b28192959692a870be7c2614536a8de84cd8c1364a75a3927ef9dddbb8c6c87dbf526f2d3a7916384f2daed96002831173fa4a51863c28b4378f99b1b201010581d5eabd66ad1e328cc4e647bf5e0588bb775e130b4a4d029eeeeb5852c5742862ddbc3e
+A = 1f014cdd87cb33ffee623cf454edf2c476e91df279b4f0879637eb6e8e5ccab305186de67585595d34ebc195fb150408c4620cf6c7a0b0d9695ba0e0e1d7552ca7d0be3dd678b1cce2beedd11939891a6804770f1c843e16dc2ea6aa8e4043940c37fd3d950caa122845
+B = -8d8d9dedc80994fc5db04d8c935301e47054250fea9020bde8d5fef01f2307cbf458d5afef5210a369c396287c5eb453637a2d721085af3de0d75a5dfb5dfd22fde3b229d438439af7b296b9e68ffc982efc6c825556c52a735f8be12a214a06c4270824d5268fb6
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = a35ff7e232f047e575b200b9fc4c9253de6ac04c612b8a82c275a951075eace5e7d6664fe8f78301d554cebe7b996c1f4ec3ca59d8d12d7196eb3909223de94c220f0445d24233534af1c93433b05c5924799d2c781fdb88c4537bb8d442e6bf76b2d966827bfb4f40378a3f135103513da056bc0d375b1339561700d15a0227
+A = -58346cc8a9a1e5b8babaed8e7f59415388e0db654ea7cd465d96781c57faae7a8af8e7578e46f3a8de7bd1027188e1cc32fd1c0d60be24fa3289a12cd822a6c9a77dcf8799624856c27ba88fbdb047473274e651760581b44457ed048cf76c166d38bb9b2afd3416ac7e45
+B = 61951a16dc6466a9fabae99df29b7229f1ab96b476092dca1e4f8fc8e7404e2fba56ee66486d1f27f89bb3f86f271307228d7d6cbcff943961e177300b6acec1eeb46af1c5725f745a2d2af0fd9642f57a09c9ce6742114be0aa6e939e638bd5c7a92a7c206b2d36e35
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 90b441d8277eb1ed454964acf567067925881b5db0b446a7d554dc61ae87ff979bfb0e58ca1706123453e62ce31284a5a2db1228d259e27abc7fb5cc5848dbeb9a6808fa1b4afa844ab39b652abc41423c2833e1209a1674db518b6df7ebae315dd7f416df54e73088762ef64cc2cd0a08b1cb01c49d9299d149cbe84145a55c
+A = -1ebb693ea7d18e0ff4a9a51124ebb78bfa3a4635b75a6387e9fc745a2325409f927324d1289be8a4f5cf2d5c04adc7ead20564f97e453287f03e5ab59a6133584f970446652d05a131d7d382c47b7cb97580ef6710a532dd4f5a0369dd3db500ae5a3c5efb587cf0cd2638382
+B = -3916ebc4653e7d6e0a4f1e234d765d41e9e948b5acd7ebc73cb595559c1b20b037a3c8da0a7aebfa5fd327bdcc922551cdb8db3fb0a581fa0620ca2d2559ccde3ebc44542b4d80926d061e2a35c08c09547e0cd587c396ff2959ee93ea64b1e6b7e2b624cdf445988e1f42
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 3ac61c3a028f4a2df6645acbd36818a2f76a3229d229ce22471760807585a909727411e8b68bfa4e76adc459409a101a1ce83900d46918e8d0903a163de87c07bbafbd60c7f536a62c59370ea53b6cea4384345343146bbf529334b4201ebdc7585b6e5eee42696400c9be9f496406a4eb51d2fd1b40466224f1752b181774ad
+A = 5a16d5fb9047949684b80805e5d962bdb939d0d0368b48517a2a826679c37ee0ded4fa83e657192d9ae84294e450f7e2f2773d1f13395169582cbf95860891b9fdf8f3240a16aadd1198e884f22b2718219d478e2410fd4bb98ea534a3626201959af099fa55488f5390791bcc7
+B = 1f67066dd06ed4a49cb556dc2fce22814754885a7cf6c13915d974b46b0e6269c0fafd688f45ed2deeb026a7cbb772c080dfd577d21ed2c81e50e7537a70dd550eb94fcdf626500040da88c43dabce13c82a93769a9e0ef66a471661292dfd3b3af07169e2dc909e43678400b
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 7087dd62eed6ccffc7e1370cca9444dccc4ff160458941aa9f49dec1a2e9ecce4cf50ac2daf06994c5010cf225cc92238cd60e1aed9edb2befb0fb354ffdde94ef5e8ad0415bc95851d59095a5c4850ec52a74c78eab58309f395d3078dc481feb9d30bcd9f113af7a01611b94d085e32193dec738a64c5fe9bdfbf5dbc98cda
+A = 13596eeefbf06e9ead8d883113d8ae6cc3da8b6fa13ab66681db5a9c083ef9e49d905ec19c39b149cc09452eea0446b29cc92d4e865e6f681827336945282fa6b276ef552363229a976c503b822e6e4a9862d3fb30dd0c3627ccb97a7046a6a679050a39166388a9daad5ec5555dbf
+B = -a4e574363f2e5982cc087b38110d257019962fc166c2d6e6d396220bb308a8a0dc7d90c5cb2ab85faa19b07ed7dc11eae9bf2abde0a5fed279e77a717b43d35e70fec4e18445e37741262d0b0c20dc4375371d87d839d39934f1dc41122e815f3f37352d04d0cf514738b351f02
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 8495eeee238164082240ae1db1e3c1e36fb6621e6b714c9de914f9de8a587d7106b8dc5214f7c60c0ee231d7441e03cc26462e71adf8e29772ac95d0395722d2756f9f64daa8ed41d7ce824a572d7f9fd419112ae823b5b48b8aaae09fe093e9ed05918c4ec88ab159890910837ad0691849b44be95993682b2da2b124de39ec
+A = -403f21e1a7911806747bb78a4f20c4e6572d49c6c4ce071db0c8c91ee985e68a16e60093e4628414b2673d25c9f13c4c43600633af95017e3846512197c9515aaf9953570ce5861620716b3d80eae7de0f033772fba82652484cb3ce7cc189d1fafb14e044e07a88da302547f2e623d8
+B = 689d1b4a968b7c00082ae3a29c8571f826c4630c947a7767fe4a71af43a5de84db9b5baec0980eafd0019e09de1b5c56173ede68c9a6acf260bef3d9a03f4c83a33106c94ca7e1a8615b3553088d1d05a62ddab0f1e5a126df5d960f67e3b92981022e1f0358c7970bb2fd5dce7a7c
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 397df584bcd3b2e1ec7ed89de624e9d104bd6812901e38c5740755ce91bd54155c0b624c590ded199590be5d98bd1ad4acee56a62d05d6b5fdd1ade12f7db8e3eb08c4a5996450cc1204be7ba61b768af0efd563ea478033324731e24fedada1ad6e564238c891494e85ded4feb2165fda22f75bf120856034a9206511885fd5
+A = -19cc480d1e07523bac502872a971d78bb26955c5453386f5d51767150e229daad3ab2dc85e0fa0cf6e72389391fe627fd2d9f263f105508642eae5a095ec4d88545dc9d0a2c436907460e1ea7db174673000eb2e0b60d57163ced261bd0f6cd8ce54133cfa10591f1fd27996353110060cf
+B = -39c45512fc7c9620194fb7ad22abea8f6dbff4a137dc4523115ad7e262934143cf1f320892f8c097a400d4099e787ea7041d0d69b6269d191fcdc8ea28340ecacab71058cb39a9c7362c848826b35ab560c27113fe53c497ca452397891c81365b6e7f07f916d47961e50b8c7c5cab38f
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 263ab04c98efac12210beb66b13fec7c260c5b1cbc20cd732a511fb3786b917a617d6622847f4eed70f25982ef5d0b0d13848c62dcf447e3a1d491f4c80e69cec03cd318f6f93134d582210bfa81c1790562053a71091333348c6624d4d793fd6ef971d284a4ebf0be0771efad302015abfaf3edba017907f10ea14a46d9fdc4
+A = 7a354753e39b9ad1c0ad6b65575fc7247487f3ea320fa82d1d333ba8dd5d0ff925331994a6961c9c603be5775ef1842159551f0bfb34920b93d90ca60e6abd514650f77ee8ffff2bac0eecd0fe8ea0fffc6ed0285c9f3c3cfaacf338043975457d62f9c8dda8cce1e99f34529435016fe2ed4
+B = 1a4384f9620567c698ced05870b4dae983d8f0df6aec888353f9dd6ac8ad54340c3ba8346bfa47bac38897f3963fce972f6d55f3407ae03f5c7637be1a34e483e50dcc27148b76ef079f117104162beb191d146ec828ad5c5bde5ee1683a031d554c276d837bf1f2f622cd11baabce10212e
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 91cf4d1899e170bf75dda0d51a6481f79eb94c333b876382c9d04681073e949191223926523f6531f0a45765d7f382221eaa080d7bd05a3c19220ebe18802b15d8009714e8e4e9872223049622ca02040eb041707c7e525f698cc361847c66fe3673a72e4d701466bc374f55fa5437216eb59375c0e2c4f7020149d0118ea72a
+A = 12f35c48024e8271e8f9a60a48b5a214bfb6595a837c041b230e6ac87a4c1d4b3f93a2d3a193c750c9857c8627d0f7c454d6c4f224dbf14a865eb83e990b1d9b8bfb729b8d3dedbbe9c95032e4d60676c2baa2aabafa698392590add3b83b521a7a5e7d6f8af207e44ebecd735374acd01ef5822
+B = -8fc18f92c0613d085cf3ee6f586b39b99ecca864bcbe60fffc63c585e5613df68f3534ad46e244916b1f9188507a3692526c9e403b8e93480b0a5a6297f65215f1a5d8e20631a9d559fa1acc15a98c9397761ce18903f393b10444ba51bc92ac44df90d4cf0852da9d75902230c6de6f26dfdb
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 9af562a7b61c6c84c91bf979f32ba5d246d2ee2050f07ec2dd5cb3f9496bd37c3922ecb2b5b17085a13e93ab2dac6022077cc18c621cce3a2d2247e5e89de8692a36f596e5dc7a6969a4f3ff0d1580eed380e6550c6218c1938caa2b7ab401ae6f520063c811088504d60a19da3b5018d640ab8d340f35d1337a2ede8bc64bf0
+A = -63bc10b8fbcb391dea305fe61b404d3bebd035514a812d0e1d38daa3d67f9f1bb8f02d2979270cb9147aa51d66ca73d4b5787e472456a13fbe0d568e92b622439d33ad3c357a56dd26806ebda7b3bb592385ca5dba7e5eb5d85eed0a1746441e8d56e22decdbf8f4296e30d222da5af17c427e832b
+B = 57a602bbdefcdd00f42ed1e2cbde2ba858d171804da56b0ac87081424ad1569df1308fee7c9ed349eb496d5409c4c46921f09ff0830bc9f57e920e17df16523598fd90314141955ddb84a1522ff3ebfa812cfeb6670525123476a739f64ebe6a5f1fc805a880f8e5a71b908c483a121b38d05cc2c
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = b395c9f264172a3653af6637e72c4c8e564d1ce68032a5d761bf546e0c4b51b33cb026bb4256fa639ae98e54e5ff7d8921ae411497272b53d97c2c44b5b9ecc5aba43dde201f64f1d033056f19ceb0cbd04decb486a1d07ab1c64fd213d7eb6db9cd11efd743462e137f368acc4ca0b49a7f85587bbb5ede4be1616889e2699d
+A = -1e71df5f04001f6468c3a192086bda948aedd19c5da9a5286856f30524238d95b0ae71940f2af123315ab5d2fc61964d3e970d5858b7c1a78d0f2cfd10cba7ba4830a8c19a09b59794ca5d7da32cd8376b5ab06079b51cd9819c0021ea41a9e43aee147befdbb17a92cac7c7767705fdd908bcd291fbb
+B = -394c187308320ba1b14d91d75b8ff993dfd57f9c84e8185f12bf9924e046629ffcd7174879f9925bb643988259cbe9dc9277fa83a25012f91159b012f1964aefddd5a94ac6c2a55a22bbae93085dee079f84cea1d53dc4771901db9a3db5a14eb17c25aaf5377e2beaff6276cbce7cee97a9b8f32737
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 6602ce0fb5002eca37e85b60cc871b7b2eed13d38c20a37a6e0886ee4814f3ce2515f8714c67ad81e8c3abf6a00464e6a51b15e55b6c11296ada43cf459e15915026d3260cce8fb796241fc2b0bdd2b65ec04bee3b7ab6626e10597f3b13b43d16c34afd5b43a219917626c88b24c6f8392bde1b2e65a50b7f1a8dc5eb096702
+A = 4855ce75a3d7dbb72a257f6291e9f6ccc158647aeb2f8beb3e8fb32f6f59af1a46617b77440798562d6f58bfe826d3ea7dd28daee8f5162d7d24ae6c24c2deb2669b15898689ca789e2005903f3a94e991e7d3c8f3ae6181029d959bb15e71d7ba94d2dfd3ddd10f6fc49a65798b5f6ffd64682c78b5d91
+B = 15b3e9992aa3f042fd58ff97a8c04aaebf46b75fdc38caa9224394a1805cc26e4311bfb498d5a04d19396e98d11c8810620979362df82b23a115fc1711b57c7a56b8408e2682a2edca36cf9311addfedd2d0889a78cc1ab170d1379245de6f1f6f4db815fea9130463dfe5283f195e6e81486a1d39634aa
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 6a81ccd82f00d829bac186fb38b85097d52afa3ca83a026856bb83f94d6af6f6c6f3141d433f8fc159d11397df8d2f44c769f255cf8148249d8e9fc4f59ec3bc8e804d7d5189e71e20b8d0e540b59a2854ddd7feeebda5a95f17605e8bd5f311a63cc2e4ce23a51229d0a49ca04982c1bff79c201de6cc6150b690c98106a39c
+A = 1f1589c9b5ad9d878631cb03c23ea7e94680220856285668838452a63b726e01709588b38e578da8a4845aa5cc2e4723beafa4f81a1a2e463f67d9a3e432de7064ba8bfcb943cd9efb0e5a136649cdcf5e85a667917075804991b997f318752304f4946d69abf161625ed0c03bf9abeb4ef28034f818e2a643
+B = -909dc7fcbd27d0bf7d6a3d0e2937ce725b5cca0acf78c103d633206cb431e2e2c785aea4bfe2042df32417143de76b71d21587112f36d067f878e556b94ef63d59a07d19647593efdba7f3f5324d64c55f93a283a0dafe080167f6576053f9beb326994f4a1d53e18e3f3e770e69450bb70f276d128e48ecc
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 69139f2e10726f83300505d15dcbad5b5f284d1c06789181683b7b8caf35dff063dfa4968c35facf32a3628dcfc19b3fa4c30ba0e030b06773832a2631529fe0c0c402e05a0c4e9446a8b6c22754c70ef540f90d903d83a2e3592169ce6b5edf939ac5ff25b8bd48aa2425321602a9571661a1109e275a3b3039ff0c2f430b18
+A = -5d02cf3969bff8789850ac898c00fcb3ff1fc49a22cb243ad18703bb8fae25f83502bcdd885417fe46e8237fd0b444712c4fdb8f4972dbf9278a83eb305efc7a8210ce55167c069d1c4136a9b66d0c4dfadbf036c079d12aa082fbb42bfb0098006136a61f3da43aba3d3bcf2f5ac2d7884caddd0cfc28681d33
+B = 50b369234d993721288662d83298d99b9052a0a66336a5a31b76dfb20ec2b5be3aa76f78b2c17c63d78402a15aacb585be5c8d2e7083145e316e71e111fd34f5c79363c4591c247b1a94b20ee042d840c42a3001d6c8dc7cc1e1348e0e3ea8c6551f9d24af2dc2d0c38a54ef065ff048b148ce4f11ed2b549c50
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 87de406a6c957e85c759f8ff684023a0f98e93ad4ffcbc6fb0038c7a7ceed2486f15f36555d286338aab3283aef677118f7cc3f88a7ff0ac9fed31da6786ce895c3c08d3edb652bbc9ac2b44c4cd24ad281ca3a8e8e6e4d730f4f0c25487cfc1b2afe222934eca8b1e1572780dcc149422a88eeb1bf31065c929685a0a97ac3a
+A = -1878e0497aa1c2942a2e6956957c876dac73c4bdbf42bc92498f29a006bc92f788c24a4624b87324a7c8aedc6b2c0c8a1a442aa91557aed9bf2c02b6664979e8a9a21330dd839f4ba8f84515fa6f7db9287f7c20f31732b98fc09ee7796dc524870dc35851814bc57e1a8ac49d8935fea04bb08b8760df33a98149b
+B = -32f4e94bd073cf3f70810d9af7a873996a0510109bc6fdebb855f27dcd012c59507491152d30849d75f95dd868992c6fbbf29b1d899cfd401e9e7f4e0436732cb4cc9e6a6d6b0cb63fb0bee21e422b7f7b7b14dc5d2b6d10447fc4add390fd3c8e7b06f1d9b181adfa8d04459ed051bbdc9666623b00e3871e597be
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = b456ccf9d066dcf4247a21c7f3820e324ac9cf004cecf8dd1f6c3aa40c2a33e24c423e97190fc71bb9fec21d36c5a687065a7877237a2a05e64cabfb3b20bfff0b1f5ef2e9adb7edcd7140d1047b0919a2c770579ab44a08e5ad9f63a06f90ec7d5885b91de5e524b2e187937609b4b81d40a0b33e31a48d7b9868add75286a6
+A = 6c484e3c6b530dcd3644b19fee66c41c7c2c1dbcde574d87ee13cabef9dccbe5b41e25c32c6a56df23f2e87176afd28249e5fcb918723707fca94d7e2c9623a3493d395db802a1b49d550f52c29666f785652fe81afcab00a60a5b50cbf523cd13dfa06d5a5b0809c68ff7264a2cb35b8d52284172c62ee658e8417e6
+B = 1b4fc753d0530bd07094bae09a02b1ea684fb4e8519086b1e2ed9d59af011f61d1b94ffca6f354a5b428417b328bb1e8af3f6c7ac9121dae58de9f1dcbaa9c73a357f408b870e62b0c7db1a72c4c440f2e6fe90b199b9dab29fc23927190d3f2bf8a7ee926a152e64474283695614ad696c85ea547f5f51d02d1b823e3
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 5e7c63276f350f04816a6ed9f98507a78314f1d99081fcd906affa3b8395fb58d029ec657af82e77ef45611bc988095bba9c26f25f8fd404432fecd02398e69635f3315a824d6a98b33eaf6a91f12957a5e80cb48d5b086c795eb3b1e04da5432a7e8be3d683addc586a44b6243ffbb7a979bf9664cc7ec41e75f267d58a7127
+A = 18efe267d4c62576294f4ba44c67a058cdc0bb44c48f4035682b2d6b8a63106081af43d99098ce133f8d7f9cd04d4dd7414f704e32871d43d6e5d73fa9f447873168b43b32d6ad19378d74a967f92ec7629a690d29a62a5a6e734e9ccf5b84857a00d97b9db846b057004b03d88b827dde717fc30e6a5246c752d65dd625
+B = -ebaa580d3eef5361547c692e107439c8391ac0a2d1cec0cd275d0be69133eba8a94bd186ff9a129af3f5a015d5ebd30215643554d7064635dc11ec7a8ed2200fd637b099e534237f0495d2b629abd4c8f84aa1d925d53e98490d02f9fe51bdda08b043f67f0903c0195fcb886c04397d3612e4501ab8c7b7db69f781e169
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 76fcb39f94dd2756e8266c025cebe8e801524a757b976e35ed45e3da3db720061cee9037fdb34776c704ad2059ad8920e400bfbf10eca9bb157eca7750cc31fda06473bd22d4def80189c47ba32e2824c721425f225563df2a2ea1edd090e01c0bf980677db5a5dcad37d21a68e2832d1012586f506480e929b2fd9bb4aaddf0
+A = -75f903ed9bb0b6db8e3be16e797258f6c18f6cb7b16f835f04e3045f7e4974d7a86a63f2ec351c88fadc0635b6dc83a797cdcb5cce1a1674f89e44190991e0930575b19e2aa1512bbbf2ef6f8c3e707b17516756fadb635d8c6bf9caddeba14834b5950a4d1e98bca79a4d15e5fa5fa3c1727d7a49b33d481d32fb14ae4164
+B = 4ccc582c8460f7def2d26167b68788a681c41bdf6dc805dca83127a18bff6f5ebea6db75cd959beb859637b200ccb5c7644d571f436e46a357d027edc9769da226278f7ab947963f7caed1e7e70e572980e960e9764a40c6db67bb526694b084976142471270b2331da563a10427cbbb38e76203d7da5d67487eff701d75188
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 5adef30c67aefea4da3884b8a1d0ce6724492bc76b477f1053621e7d19f3cac15448e9401d34e05ac4b508b9d1db9a8d323cf43722e0af6e3c3b6d463c6007449c3bc3236d156cdf988dfc308a1b4911554ecace52938a7b10f463d14f917ec3d9fddcf6d33081745009c59b58aa22bcd7dd8c3bbd489997d4e0bff5473ab9d5
+A = -174e8e057a1d66e22eff88de26f43fde1c8efe5611f6ba4f318f027f5a5818df02ec3f014dfedcdfc8c143c5005c3c5098d409710967c93474f5854c1113fe4030e6682bd56d389ca8b9a4587b8b9262d146bc92fcd81d75c3bfa4281898f394f45d5dd11cd4c7344ee7a933ee346bdaeb6f5188967c388b919a0ce6730c0bbdb
+B = -22702bcc4f9d5bc6f803af6af8072780ff7de7a346d6b9293ca751d6ee3a81493fa86738c44cf2b7be4bf14a55a4f8179c35c09dcb1485f4c08ec5e9f9b1efa91f4b5f15a31a46e1ed71cd934ba6bd271bb22bb5703aa468d297f360ecbb48f9fd6c572683e83ebc3d432203347dc62e19fa06f93e087283347950829d4256bf5f
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 5c2f67b1607776c10fe2c30b112e541c4d8229f5f99f615fa02cf715d3f20556a28eff5c233c58994e9c6c1fcc37b3416b0875b9a62fa5a09a4b8f9e216487203b387ff97fad1f39f674ab19c5e34cb2f162e6b0b0b0084f0618e64928423b73b189c744e3de9fa50d66f45975f68b14866cc16c8c6c722a54420adf027880aa
+A = 67056e93b69e8a7b789f1f8b835d9c6ecb7762f844d656b26df9844a60bfbe0d55684f61debeed31a24ef4246485e8a1d43d49eaf97ed9e7b9f2d2916a8d85b8c9e8ad5575cf5a3fea42392e5d1dfb23f7ad41a7b56a4f21e2828aab38a602d560c99783a4f807120292ceae366b1fbfb4be8e5d4561bc8944e7f17ebbcb0fb6296
+B = 1f874f244ed6cff9f910ba9a58db0dc0a7435e8d99ba6412e976b8f64d4106d3c5c57ba079384fced1c261aaa538e131734451fe84fd3cc5cc8b3ab46b2031f888d95084cd3a35a61092672a9118eee4ed1a0df0409e3613b3ef45a8b16b71ec892755dc3f83c5492b67fb9a143ee6102d053078f4875636b20b536d5cf851768cf73
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 7850019c6712f18eab877faa8489daba23cf34b512a3193852508185b13cd5a2e9f503fe8d61b74b5d3930021a5b8c38322aae9b9b1b4814fa4c2c5bc409b58f11fc8fd7854b17baa94a6bff5f234832f9468d90d148fa2bfed774ac03f2dab6a506a70db4ce363f932adcae202f04fdcae968f632dd674416c23d4e21345ef2
+A = 1e378a0f27e6259763890d29e112e3d8d2bdeb9994c49fb67ab680b6e71a52fa0a7db886d3baf52f36d943b5430ae8bcd82e229f4197239c35678eed254c5816722b995e9c311be942f8124e2f80c1e59658433a57f346adfcdb83202e55457308161d2f928b60efc39538a6469f90f1a868cf6077568c8241623896ddc2705cf04e4f
+B = -f4ee37e39d4cadb692bab5483ceaf0258b068f2c0354c540438803780c983469ea28324ce7e209c3bf55b91f0a2f4544bf318585e4514333eafb9b8c2f02170c620e9b5280a828ce1d8dfc64ae9c28577e15071825a85a59656c5b47d9a382af6b78a5b3dab1078dd647e0b473174b8415d401543d30a4018cc3eddbfa546d0fad9cbb2
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 4c8f8b671443a3af5ef5749885ce5de8e2afeadef9051bc49c0d7e72922d049b1accdb79d82288e472b07578e8b6d2176d6cbdd7f0caab593dc0fd9224a94920235410501fddd6001b62a7f7d8eceaa7a8e4c0de52029fae68656e8120972b5cc1c2e909c2742e836f2fecfa51e12e4f8a2ec7e69eab061c81785374ac607fbe
+A = -5769eae759dd6bf94468eae94189d3396886d4569b0ce264c22d39b623be3abb01bd5008b9fc86701a3373f7764118becadcc69481cbb134c20f669cefeb376dfc489dd4ee91cb333d06afa391dd322abe2b3b715d11ee372666473a473e29dd90fcc97e939049b455be52b3f288db306999019c1177ab5820d94859a9d2f050b7ee1d4a
+B = 44adcaf1e2afbfddae19b23cfc0f0ba1f940d32945d0b541db23f3a0a9d06fb1f67ade9a8e620bd96f4005ced99430c7a55eb7e93a701c829fd5b9e55dbb4d3833afbcaa0d9c946916b1a86af4a6393b1155c6439b8b82260e09ccf0ce5d1c4856f4d524983e4b0fa123267694a1c6118beb8be26113a02721a02d7b0ccb01ec6e9c0f9e19
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 51e25767b8d4d7b2b0c2652d9ca6bfdbfea06acba543b1bc8d3d25b2fe5f2998febe1a6e742abc3f482b4267854c2223a5918a9b5c84e0864278283bcb5bace0c046db1d0240443404fb62d70ebff3ccc655e5f5977958df4c878d9859a69731744f3d33978ac31551487270bb4fb56ccbf59402ef9fee42cbc329420180de08
+A = -1966812979042198f70b3f1238c93ac5c6e5749f1108c2bba869b1dac7680f910e56318c9b59be9212e713a348767ba6e75917fb599e929ea2144880d18d4fbda4f4663c7abb49b02245169f385e09098a4e01b56dadfca8c803acb7cc244f3c98bc17440ab2afce318476b80e1d0b4ed9a8d6f2a0be64633f8faad5eb48de2681a38a633ec
+B = -2e4f5eb92fc34c753c61dcc826abab6fc4f427c6ac7e73ffdf65b1037464b2a9a0b0290e713d81ab57c0e1dc30e76fdf96046fe10a34cc4511398319ee34bcaf73763a9042fcacf59a100c43d3333ffb3743048e8df0dc61fd0da3f935fadf882ffdfa9f0f42980c1af6edfdf161c4b16087e2b14277f655abe54582de79c51193e13169b55e6
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 33539b5f38a9943b15801d449adabe02da6e21651d96acd9aa40e866bf65015fa40178399254e8af6bb082d021e2a05da0f45b699d193b70112e114f0d25287476dc0c733c5cf9df57667ad0d3ffc4ea2f85b43cd10459cdca9465b0974e578c00a6e275e0b97ef2a4c9886aab7b5947b78a88f84a3f1d8c5f26bd07bcc59886
+A = 531b891fe9e8db322cec59a2115574c7a304c423e6b11516906b840542b2c608785e2c18033262ab9cf68f63edb40ad4f073ce8841db602cf8fae0a6771d741c6392976c9b333ecfcd0c8e9997da40616ae2a9e0c6be93fdc7af0dc0668ded1e42a9f729c70f74500ee76a91d3d993c075c2f645b35792a20edf17c157459e35c0a48da6c4c6f
+B = 1a6fdbfed1054a0c5758f92f72db7e5737b0740c4d8c3ae4713366ef6709b21eaecb6b74c92541a9a0c99ae18ac6ef7de79d4c84ce39ad59cea9c203734a99bbb895916275e8778cfcf7fbb7b7d081a677769e4ab96bc7bcf23303100e629fa8e07f5b8fc2e39c7b5724c72907eaad09d3088783b3118e57c9c8ad1799b43a13f73864c5602c478a
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 2eab6018361f557ab06725ad90f6886d4b468ab1a193f8fdcfb4ad15fff781c8681329a27aeb5f03a81d7c404b8017b12fe23165e941ea767c733513a07e921aedf20596763f6f977316e37bed70f6a617e5c2757c229c59b3d7b1fe8755b5f65f7f407f13634aca7c8a267e661ae2f77fc5a95f56cd6c8458119df587478b1b
+A = 1cc779145b2b7bf9ef4c9692845e162329940f96eb43e04db8728bfe736698082aae6b6a1b3c32867c293b08547a0941cf4059d2d567840ab6ea526e3724ad59e715a3782ca656cbb739dfdf0c113a18f0dd62423d4edb60057fcaedbb852178d38f1b5a232842b4fc645cbfd97a8cac0b094b870064302dcdf23df2c9e9f736d93409cbb8ce9ab3
+B = -cbba16086b51bd83d3460e51cf193ebc79b826e4f30978274eac3b2dcb04e9d7b56a1449b7cb128bbfeff5c4720bae45271fcc64085d3ee501f0f21fe73cb7db5f275d88be55c339f9180ea21a8cf3755a875331931b75d23f57c2030c89c6f9c1ead431cb4dbd4480564c83f8470610e5673c7eb6c0fe7351ffd7ee460df5db7872c67041aff0227f
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 96fd93535728b961b4167be8b304e570cc34e787c12a9a5d76e099b336ed6b837cfc246c5bceb04b0f4744c5da7071fc01d70e342509473e5bd7c60d6046c9b4f21c5ee71c4e678447f837db3a7694fc3936ca733efdb7d387f0f6e263b3ac0b89054a826da9716691c9d580ad38d701d08ca090b6c59be466e1b9833e75d820
+A = -6791fd686f46c3773fc8d7f4753d178a93f6fa4941f4305d9689c2a305bc67840bbef80ff05c7bc6de3a595f73846609327d28540cd705f5aa94a3ae5915ef55304c37c4c43a4b46906889331ee16585629bb303673d439de9c0236f708fd19a977e6e1032e0576a921853f7dd328979ad1f1aa945905dae93a82b3af9451a541f544c18ed2546b66e
+B = 6ae062b39c77bebc2fef05743e6d35e14a31c6fe1fdc42d8de2db94ce70a6d60d66263c7414b1081ef2fa6ab511b361b8baa9c71ec628dba5bfd772c440baefc2fbed68d40897878232d9715c4b7e7c9bdd41cfe7b6986d825f68be8cc16d04afb0cf593f3028f3dcd91bc94923f3d7211aa5f0f12d3270e8df8bc191808f0e266c4fce2af97ac7ce06b0
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 949ea5f645ffe5d0d03359d51a663c7dd6e6013812a47be309575e036503126f48677c68c4ef6e7b3f72d76657fa282ad5881263e649b5297da82e24298300d032af3f5e8309ac7eb597b16e257a6f7af3476a264415aa7783433e83be57ffb3fdb404a9ddc3527d6a9c297f8cb7b6674961b3af837ebb65f218147a46c39cba
+A = -10f59ba073126d92a201529a5374500612bc59a9e66322c6706b422d35a4f82d97e668b268f5527b4641c6099c80bcea504234f3c1e3fd29eba0f161da97c50aea542becba499f29d4ba5571873d4dd9eb3f48cb26fa6c929a704fe8e49791b2ca3293c2428d9cb453263935c9c90a4a2b39d23a0baa12535845f907d42b729033a0a1e74d18da30a88ed
+B = -34fdf9ae6760d4f434d09ce2a7760ca2dda14bc256015809745524dc49d841b07102aefe5a1d0182e3e09d4d45b415e46f653185742b9b8ea6960160752080e5c9577a12182ccf1a293407b534ea8ddd33ad16cd19ba537d8db5b542f86a2a292423d452bf18d82361240a7efa831518184572c5a8b73b108a81d5036b3b530d98bd47c7fb2123418f12e05e
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 9ab739ddae55a0d71b39974628d4601122ba6c5035c3ad0439691317f23dc33c0014f3e870a105e4dc1432ec79693bac658433b21cfc218ed411e003990b94ebfa87767f3614ec19f5bc30704adcaf85a9d3d15ea764c8f0bbd52ff388659637746d39859398c79016ace8c6f97d3a5616711a235b85f334fb889b9280ccbea1
+A = 76b15a0aa0f59ec804a5e9a627e1fed524320b29120b6789f8e71b1ac4e00a9a8c826919035b84f87d291e2f35460bee181342136dd9eaeb99ed00c6328b8e44c49ede3921d6275f6e7f03de179fb2374ae2fa6c58852fbb2649e214691daef945ead6c8bd5a53ad2b130e9eab6ad046ddd6b80874ca6515322bc171ee32749333669de0d9c883058423579
+B = 1fe2171056ed4585a143b6b2bb5f44047664f64d710dfc05c18be5840ef9426ef05b6e92e4ecb5544ee4622e9030153dd9827f2f01ef38e62b88ecd6c46b4457d16644ef6d863c226acfd6928a40de614a5853137124fe69127a7f05463eaa49bc742d8f7be300d06b302dfb0ba86801119bcdc01b516afa360aa8b22b7c6c1839cff859ca1bf26e3f7e030512d
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 5631048ffdb2767aa04d59d8a5750016b38b983a2d53743ba4de5d93bcfc8ec30183a84bb1e290ef9c72c7ad357728acecfc613a6f9b3d712456d545ed54a337930937f4589fe41e66ee930db3dc10a4fe41481008c69eced65b9d1c46b8574c5ac8f7d94025d8fff00ced17a5e17508527681bf94c2dedd51502a2c4652538c
+A = 1aca12b1933f25ea081e12ff4a4f6f9ce379f96d976da2ff7b8eb8ad791fabe31c1148fdec22dfd67828e540c955a1e13f40c5b125e1c7e6bd839bfa84e5bfb58bfed76058c6db77af7a34ffd25fabd60e19f65e1faeeea6371d7785f2e5bddc8650a7492e06691d61f997483661eeff54a30656f1daacf31182486bc40647975151fc05d2f64b50e632f5d5c4
+B = -88ed894287043e7e5cd2eda3c1e5c97f85809f7a246b0c20891fa9a024f3aba4ec1f3d112580fe6ba6b0bdcaa1325ac7ec9508aa88c187af08e4f37631eb6cc97e4481b18f747ce6d35ff355e425a4833834ffb8d34a818bdb015fb818ac9f58feb87020234243aff912da5590ea3f6cba74f1a9fc3ffa2b4aeea25479c55a3b572621e75d86d8c8f6ee4f587e0f5
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 6ce341aa4a571cd5bc110dd436acaa09f409661967de0bd096c77c60db58b2b0ec95cda50acd7fa20ea4266b2c579eeb6ac214a75d40abbb70845db74c4d6c93f8c545add269d45fb15d985e7e630d0425565d06dad4a3ff9835411e51fdd9780c24f466dbf29244cd1b8c3445af181d0928db399bbc8632f7ebcb9d48c0b754
+A = -52c53999b02a92d6254557203cb31a21dcb896495d1f29f3277d19129ee43e521ab9d5a297204a844a9537d63b74686eceba72ea2e7b98ee8895513395cf7c44c99348f5c4eb657874a8115f0027d6a416b8a04a1ec0e6809b7701ee7d41e99996e307bee9c295ab3df1faf674e0067d0ab3bec4da998580203e33760870ae472a3045bbd66e352b8f4d284efc00
+B = 4329d110504caeb71ce0453b0706ff675f646e70a6bd9575791a38f672eff226f4958f8b1fe4123c0001d8f8595d8030d0e9798232942725a9b9d654ecf50546adfba7103fed796b455ffbb4c153e70f941bef7953c8a210d6f2f4ddf5d9a79d9938503ae8f24d69d5d7df1c988630ed960e12dd877bb80a1ab0bcf6db67e0c0578fc0c40408f72b19052534da8d31ed
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 4b9fc1e0eb4be199427c48bbe1b53948d0135bc1965b8aa5421a4ec704b13cf934c650405ba02ad611b0f29d46d82d4a1fc5a84651a29364524e37be2fc7001cbd3c792aa477802999841ff19620cf66dd2453c9b05aac349b9094d43b40e358f32805d87cea3cfa98e05240ff95ec57d88e0a12917628ebd34946eb1ad6799a
+A = -15a223b691d8b3696306b0ccdb52c1d62c7c2d1ac71e5f07cd8fba960417b42fb5ebed5eb9469be67f231b5254bb0fcfadf5ac5d2906769e8bf8292f0442986cabd88805a162c0c1f60f9ff0bcc2029ce33452d05f754375c0bd147fba745bf8a0008792d4f90d0e0f2cf391f2d7865705544f4a220ded44732321473c0ae7870394d4e625df11bd0923340cb70b995
+B = -340e5ccd644849d982bdd455ddb3b9a23ca14e168bb87256bcc370ffb6b7fe78fd062b3bcc1ad3c8c3b8cb549f2baaf1b7f0f6522aba02fd35b651f7de52b3aa2e0e40352bfd6ed0f84a2bbc3b3a396dc8512ca1db01cc69611925f1037794c82a418f10e0d994f458d1f19051e8bea32b90ce744d46718f42e711c094ad0a1ee96c88920188078f1b044ccf307e4cad7de
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 31c090e5160faff9a136a7a482b42a43ae3c7d00c215cbdad28804be0e7b12b0b3af820c1350b1622a22c8875f24d48ff16231c826d1a946c66f70aef92d4e6582e3ce9213d907267251ac74fa3cca9f1c8fd53fe9898aec19936a2b797fc345d68f0791cc740199be39c05053d5591d874b415e62653b04a3f41e263d00f230
+A = 5419e87e50b28b6d24927934b541d8de548a8f4ec7e9b00aadb6d23f2d33406177d3fc72d29ad2c2e141ab2916adfd30ec4791c626af61d8d192276d632aaf3b54e2ffe83b44f6f1ac441e6823b6b58cc08fd7a0af945a02eabb5aebb2c7ff0622a17b38077cd0cba906ce23e71ac7f4da40ef6066565b4cb3a62ebda28f3629eaa251dbd9979b123a5447ea20331723e
+B = 184782ba4daf429cbd13ac13fe93fe5833f09915cbbc707feca3293e505ce9cf0b4b12ffc8b178e0a4617f809be53d4895a4182e7a8a65043361e654befe8b01429ba4b7420193d1d7d90930ee19cee0316f33a5795335f5fa517e1ffbc99b95101b0f936353afd3bcfec34851ebff1ef02fea991a01b587d28640c935ec91496d1aa3ab8d38a6ac75b3a4198ed27b9019bb3e
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 5eb9f3ca660de481968a3c7321281f22fb9273b16fc10d8eff1fe34842364dabcfaee4993c1c8ddb7c8d6e509a8d2afc005075d5fd3c4471f0622753c7797aea900e785ceef905e2606f64f34e47239c40b74f07e2ca70bd5a18cb0a88780489f3e98232221f65ac9c5ce703a256b7b75eb1dd38778d8bc05a37ac9ad8d36b35
+A = 1c73d8e3d5db127a81477a5c4c6d61ac62af446981773ca15a9a01fd5175a2826a8763f91d68df28ee606e8ffc203305875a238d2095345556f12f3b5e10c5bb6ce3f90342ac74b9ac057195c863c4b9d28ca1d958a98649c7f8897bc6abbc39becae963f61b33bab4fd20d9d0e5464f21c2cdf06d00f597dfde45dc5919f5124f26888b12d72cbd2f57de3f2de7c014f891
+B = -e406fb60e35f0abdd313b8431f4cc89fbb034daf71fae0cc727e9a93cdfde53566fc74e48f4cc2111fad158c63293bca0b21b98416381b81d2443d0e91647679481cd6b6869b37112d3b6e575eea7fbb5bdea422558d817b49ac36a829926553202cf9dcef09423c085d26176a89be741ae20a434ea461def090dbffaf2e2ef97bbd4ec779041ed69ec07d125c7b85a2d215bb0f
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = acf9d363fc9b76ecf7e61c33270031340e66595e559dd1c9dd4d2243819b660183521a4124558fd4b216dcf5c52c4127fe517c48cef428b9ee0f1bebabab487c968a80b9815e82c12e807c096974ea3893a8d5597f745365c352a6bc6ce92479176092f02907538c5e784bf26dcde7672338f402753b08de8aa21b9480df6955
+A = -7c03ba6e3939ebbeabd35cca277eecaec31f326ab75f1a29e05af50c4e62e0175d4d6a57acab87cf1fa3a51791e9a2b2d4d5db570ec3941263902b0c74544c323c106557cd5139d2a25f3c3ef81ca009d4e3c16f1abf6e2b5196df1b30def46d61eccdcb3741a6dfc8e8c5e6db68ec29c82b0adf6e35ce7aacef8da806b3b58bfa489d319869b20768f8eebb604a9624d048f9
+B = 4e021959da96ebeaad17f9896ed53010d80ed3fd4c3a826a266e82b80ad81b3032303e7c0e58034a652b8aac00c08d42a530039de60d74ad349438f5ecca1256342ded6f30e3bd2aad5bf2b49124cb27f45f697e157550dbbb37f5aef0f04839aaf1ba43bf1e77a1529818d0fa91d940904eda6b748e5c86cd1b37592542c43b7b4afe2b8926fef6dc01784fa431d43900edef27f8b
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 24124c69aaabec7a7b4e7a82245f6cb14b199852a8b314a7b8d9049cb66096d5ac93ac75eb58a2004de8b0fc8375638c0878fb6a45be8bfbcc292e3571df1bb8d6e346d5595fa395fef983a365e4e868154fb3e337d47771419e7f1dd5e4220900c564d7cbe8e7792ab288f99d265aeb296c5ebfdaf08b88d9b30ac660cc3ff8
+A = -167c959417e9566c93e7e05d2a410f4850e3a313e516ec958c3d2fbdecbf58072d05691c68981e176a867d7467091dfeca11f695f750c8c44ebc4d08e39e679d96c4791ceb1ea3b89fa3ce26f7ef214c5368c03ba694f7ae592bcd8ae53a66cb3eb1e0cd3c105faae6eb7e7a8fbc88248be722406f2d35e46c751b5ceabd992091eeba15191ccf6dd61a7ee0c624d43b188c42b6a
+B = -343940f3b2a5f73a51d6f609e8af306f44ce7b5c2e79edf6f4dfc07866dc5c4b2e0ba48099b5503af87762a44ae451d166f8914ba25b3cc41a766583bf73d27e40784064582fd9fe952fc00e9aa2d4e4f1ef35818978e725e69c1bcf267fda4d635d1d292d54d3ad10bae9763dc5d7f7226f371184465695f2d384d749fe07967a1bb64df22f294ed88b13600c7068d881f713cb8e3ce6
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 50cac148215963e58cf6d2ebc36fa518c63a0ab8fb136ab84c9657fee459043ee9f42aafec89e8ba5fd1cc5c4495a41e80590ce197e12c087ff7e6ea88ed798735f55a1634562b82f8514488ada526e5dc10700058980885000e266cad55948d1e080f6343f84b12a3698d9ad5427fad4017d931df77ed2e45e2fb8380b7fa39
+A = 6a9833d768a22ea46aab1a1619f30283a1ec254a2de5652981d73146aabe31041ed04d271c6f2e5e2d090cd615518a06563a94ee2b12cf9f142de3f15599998a712974d0ce9b122a2aa65bf8750f54c6324f12e321a888154330f0f9e1e5b7999acd70d4e6da95c2df1da2d19544b7abd2bd3041e3228c7cdba44f7d1cbfbcf968f8fe87fab523eede0485efaf5cc9e56095cec8983
+B = 11e782e2b3f469b1e3d14ccd1b8301ffcde7e371f6e9afc99af5809110c6d70e1cca5c0bbfeb95fc3ef8352581c11ba75c0f8c445ce2aea903769a24289581c95ae5ebd9553fee61a30d155bf6011278807833eb2ce7ee2a98fececa23fabaaa259409e88e3c4f4eb1e04176d44878ad3f6961e0615ade2fe86b6eb02adeaa7c9019d63231a28f84b7dcc8bb0e71e2a717db09301e1dca20f
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 7cd49d72bcf5ff4fa2c686f21e1f0146c4f24b9ad2e900dca1c0a5d2fac5047509064e65ac582946b251a3f04850c9abd8b80c92af0fb11ac13debdae8b94927f1de0e4bb217e78f5d04897c6a0762667d3d883cb754dc610442c9dbd44228a7ae4f14fca145550d813655befe3bfeb52f1c76f989ea8a1dd9c10fbc7e9d6574
+A = 109fe33568598972063279b71ba0efdc2e03f770cdec331428fb8ca084c9b20d0fdb5cf9ad7ce90c8cb8f0fef10d219d7dfcc6b4599440db8cff9971da7852880bf004266886eced8763b3569720df3a1fb0dde2717ce0183f2250034871146628430f206c12f5fd87574c206b203d90c0f2c705cad3484c73da8bf4e9f7e1bd433a6f7fd27df63079d30c490aed7161bc594eefad4bc0
+B = -b95da952cabdebe0194b7fba519768e1b56149353cd12023b97397b59e0d7f4dd1d27b65b833948f58e66d3f6928cc3140cced835dbd612cc82a7e9fae1621986f71ddb6707ad57926b03e87e165d30fb145795a70627975bbf9d9ac9bce07492de5227c666663cc28b3e70b19dbaba7f16849535ce5fd61e91cd2875e0a534a10c60d21f919d566a3469d108a35ec3f023210efd5d318c7210
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 98a89cb3c9602fe503c32c44609bd4487b6c8323737b3376dafacc3eff96efcce7a31f1b61ee6799dc9561e77ac058fe5195cc013e72a2864f7e492d9f35244b321d46270a582f6f14f15fa8203d392e81b183a1d64d48b51d70e38d49c93869ffb9d7509f15ccde547d2d9c4dccd50eba49190b6e831a9f4f9000a95dc83f3c
+A = -67d7fc8f1766c40bd476cdb65d4dd161c3d4c2c5860a0c559f0e87ada213c9ed33308c36bb1c7d615fa69ec53656bbae6b57181a0134af23ea2a75f8fed3290a2f483392a3745fb57adf2121738c84f6d34325121a702c8ccac0090ea27fe9a5ebb6ba9d4f397e4a7e3151850b3d7d25643398bd3e4c1da081471389799245d986cab825a2e6ca72b38ff978a2753c835299ab4597bc65fc
+B = 676ddc4d18960817ff8fd2adffaa68c87d234d62d445d6ba3847ded849356d929d9e4ff01f517d7b1c0778bf90f475923517d855956f17ece1e032e2fd474d2133d6b8a591995454d8b587cb4f6fdd0fa29305f146d340cbe6b6efd28a926c73735621be0c5decb792083b3f063a43dd9f635e03f78c1bb56389a5cc993c8f36134d755a324d4fccc2ac3bafa270df67db0a4ee6ea4497aa33b5a8
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 76c31404854006a7d55554762094df6e11e0393f5b0451d85de2e5b104432df72023a35f44da10dbde01cebf77b8f9d3ad582373c5d32232564729af0d03c5450e439045d96a2f0a38871c922af2bd38c545d219adce0ec80fccd121d6a733bac09253604a8a0b1ecf0f24e44b818ab9e9974181cef10e9eb17684c57d72257c
+A = -134e8784878a8f3cf49ccb952075f9f9bcd24a20f8883955f262867045c11a9c566abee00638927e5de924872fb98f6376e321ebf3f567db6cfeede62e04f839617d78b7c9d3487b60a0d3897b3fa49b14c12511d04854bde4a9dbe5f31424a3d05cb75d23b46f6c0819536020880afa5a2c173f6881754b56f82a2864c99c820156f96b5cc4665d603597331d98d90a52f4a30c6215ee5eaa2
+B = -3c5c0d35de5fb21c84d2db228829f43b31132b582556b92b495f59df502a6d00584bb5bacd9b8c1a8c7eab91db0ea24b40f07e62a712842d5c2e1d208a6412a068cd5c6394d715260b67fbc03e3ae7eb4862f74f4d7484f747774fff03830c65fe022d579adb6737f6dfe297db750e6a58d1004e7e2716838befc2ea97179ecd53b7f36e3540e1c3a0f3e044bfe2d0efa9b89d2d308cbd0bd88ab3706
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 5b704b3181e5d0494937b4d6aa8172eea82919fd1d884493197a6a85ff047a7bcd5dcf072bdcef0287be20d4ac49918d1df550d184f86d7220f0a84fc4da3ad05e131c443fb529df01fec9fe4fa6fa2f36e791f9e16b4092759016d2f9b1ae7c3d071c57edf26386aaead767a3109c12a5004c7b9fa595e6d592daaa2dd1df04
+A = 48a0ccd2d14e14e2aa862d306501efe5de239e8ef36ff6251c861a0aee9f739411f402491bd99aebacdc26c4f30306f9137ffe4579c2f13efa81b979ddfffcd23675ac6307c0aa3ba8ee77a2e3a3c8e241bd2ade6484e6ead32ce8d752fb3584d14688f223758c5cb8705cea9c56136b219d87f9904bb56be2ea1c9a035df33455206e6b7972cba32ca4c3db41991117d88da3521780fe65c4023
+B = 160120a35ae3edac3edbede9ff1c6f317d95481227d87785b7ee46cfb80fac9973e418244884caca3211a3f6cd3bb419cf70fbc22d82ba5ab98ad80e1f6c2cda753aaf7be78613ef25577107a47ad1ee3c3645db85c4d29bd77900e99e1f439cb23c6c68662c05322f94feffcd9e37d8665cde984387093a043447de590e7874e6acfa37ed302040df4d5c3dcdf9fed91b3d17ab5c141d4494d0f301b508
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 448c3a64958b82ccaaed3c74706ce0a48c5e059c3610cc03a6b5a03a7de5d4f1d1e4b08a31478fa8edd58401f0171697f0662146ce2b371e335d695f9e4a671255f29fc0b9b7d1b2eca4cc7f8357aa0920b5942e31bcfae84e909828fbe5d02251ddf10dbe4c15351f675e96e2eae6d044da1f0858ce8ba9b7aa146850b85d93
+A = 1b2a52aefe44170376df29d17ae2dc1501c9c296f72f271c21f53db71247e72c3eb2b780190c45343bcc8f548507559ced3bd4a6fb13f9174dbddf965b9c4a56c3d88727736d78be9db2268cd02382e50c6fa28ddaf8eab9f44ad45d5882a5100b3027c150a7f3bb36f29d24a76e40f3820ba116d645800459f06c20679321cf5be72450879462f0eac99ab6ff8d26b464cd0e6d78621c9263394c15
+B = -b7d9bd08d7d8e0e9596851b7e03c78973a502afcc7b5fe5b0db6034ebb8a11df1ef7ed0ae1371eb4111cefd61c61935d768be3e3755e481daced219874cdf0d07a76e7144be626cf1fc21c8a0e9db4389ee213193775e95d4d86741d8d8fc820c239b7a90937000dc3e89b2fcd61b44e1c38c655bb3d31aa7e422b4406c9e4a88e6a2c18ec7c048f4a6b5b270c90d9fb378f64be3b5b351621db48a6c18625
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 2192157490ae044a26c23eea6da51d3a3dd08c7fb67a9beb76d37ee24ac0089863aa7f00849b81bab8259f3a0e1bc744d841e07aa413c286e4bef2ff3356bdbecee756026915894584b4fcef7e49da4012cd9fcb5dbe3f3b867cb6a7ee959a328b0fd56a9eac1f4e40a22bf0a30073cd2d48f99245ac03c373810c54eaf3306c
+A = -598eef47b40d1fa1ce260edc561bd1c1ab286a7e068af412ec2baaecd07c5b9cd596505ea1bf0370ea961c4ceeb9be76baec74e6952cb846f20e5da406bd01368b85d59569b403b7a305cd7448f331f10a34def43c738fd633df9a3eb194c32d53aeb567889927271d71d3929d43fb9338248b64f7d23cd1b053239e09cc2ccf5fe9c9ce240f1a10fb151a8583e4b4cbc70ec3082dd20a9962d564544e
+B = 559fc917de34bd7dd7a23a432142ed79e3ac4a6caa357eea21e423eb9af7fd94f1eca735d2588ec4c2ff013520c3a0e209627217cc69bd5a07ca46a43ec1f1bdbee5f09ceb1b2c18bd388d3852e51070943f16152a73da624be680c671057677356c6f281a4ba1f7c60609125d7fd9086c907ca5c191820d80e483886b70c1074e2963c49996ee92577334881edafd88270bb967da795aa4fefb739e4367390ae
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 3488bf00f67b852592922fbae64fa56d2e4e7081678e789bbb3b4f48df62576d537da2e99c9bdd721c725b9a828194662bbd51ee20ba73d4ed5562482540880686d9fb1e8ae62d08e39fdbbab1d18e399ebf07b3a6559dda8b043fc25a8152858d39b10ff64776e00a839950e7a9ed5ea95b594b6e9e9d4348ceae08071ec5d9
+A = -1b135d8cec9969561be396323e2f8be0c60903ca59b6c418cb19876e9e3cdcb9ce4f5251eadea11fd6e785476c70822aebdc94617063d161ebe55584a8a774ab230b8228a2b65bd5a6c873bb6b261429eefdc7d0c64c7e78133e739efe57f835ad03ef8f84601e1a2310659db5e0ee706f23e3c5c38c9f8c36e5b15b654d1cc528f1dd392f1b08921af8be6fe4e4e6db774392441883ef867bc729338943b
+B = -34fb63435c90018e5843098e379c76ef3ba0615b6b500854b3dda3e77fc5646228fcf3a6e1cd87a506e4959ab05e24474990ad98ad0865942737734c03dc289307f1b1f424b9a8c2264350943449b3d2b0f71f989039131e23095d122ae98c0089a184dc530669e804140134e5b602861a5e61c030fc3d3b3eef0a59f8c0579fc9b0afceaf16698de3fa07c43231312254c04ab11ad7a29efc4597780c2cd1b64b43
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 8ea5fcf7fd41803606c95729d2d910941e43b222f9b0c93a1a803b197fababbd653a92ee34e805906fde29b307a962a294aa4dabebf0d181c046653ad0fe6da1295eef817f3289dcc6579cee8869198c39a9f79992cf6894162d35d812df327a64470c935994aca4985d0e6a783b853ad762338dabd575ca71034e29d768d014
+A = 6858d029a62b0f75e4c59f3ec067e3990b2304c90a097daccaf554abec49a9d297ca14648471dba08f22ebbf8e238c89ea06f188203599aba56611eb3d4df09ea795a7e28f91f4a9a582c6b949c6ffc584a076de653446aff9b24e87202037974aede37aa9a121b5b70a3e9b5ca376c9056c2c91f5d5484baebb64cccb6a09b4f40529afad1ed64b4cc4aca586892693fb5f92edb6b4d5f678f7a2441e51410
+B = 197d6deff7adc30b025e7e418cca0a641e1a1b35f78fb56b9d8847f0690313475e6fbc6f73c3a718b10bf37434dd9fb1eca33a99bbba674195b20d35e3b34ba9d7c8438eede24ebb48e6d39eecd93fcd7dac44235ad32f208919f57b261da70ca378f9b03ae5e5a733f97f0b3f4102d971272015bf50b6f3e50c7b36cdaa14a8a580366c9cb0118ceec6e627827b0b8f614656292675ddb66e1c55355d5a1d78e69ed31
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = a25db977e7a8fa4578fc530995335411432ced67e131fee2cd7ff56970df64a6f0f4a7d225d2f4ccec8e98273ec9a0f1aef01dc0b866e425d64e09cafb9ebe3f80bc0ad71c769f1ecd5efdb4a990ebd3a94303f52f4a97e3a1d615918f8b2df5321c4aa9339b4453d7a710a803106dd0ab49c6cd9aea431f97fea9fcae0bbd90
+A = 13f97ba15ce46ae32147a0aa4c1639b6b555f4d8a1af15ede4f1103f7a0b06b4625bf456d667720adca0c4e26e858f008b012fae63cd89322b33fe51e87714519e7dc3cceea27d968b46ebc04024d063b17901a7ae978591ca6ca41afffd81769f04b714134cfaa6700cf23bfda6ce67313988bba5fd3782bc62f76cf551d140c978dc002a779ae37400d34cbea013a5d1338b203ff267861edd88ab8ee1e4c4d8
+B = -88d8a4c8c680fb01f493f73753c70ee753951d4734627da14962e36449db5490b8c575729fafbd203a125b500b96364e6799d9cfcf0efb4ec877e86865eea5e99e2fe5e7655c1ee0eac641e73b71c66d7a72c2934d1ccfefcf59781035b2c7b89e5de3f7d1e9128cac57947d22e7577832ba374492a2f53be37e17733d8bc625fa77fa5cf093975049a5c477f792fe75e85da26cceec820c8b255df0292824b4c3a8ed455
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = c1f2165a402fe9becea284dae60453965ce327f540bb8969562485fd1bb60372b8689d9c9c97c91bcfd699dc370117ea8b704f06cae3d972dc6e5eaac971597c69d4dc24a68b256f97229e643706aa6d2d844078a5fee2d08270820055ea58155d7bc754f09d0c6f804e55ebe53e3ec418747d4130cec68533f6f0c2f8fd2409
+A = -626a1580e52ba52a877cdcd62b34cbc7f949148671d4a61201e03e98985d704b2975b9a2d9c4557deae065becd662ce8448171ac582894bfa2c59d4ed20c6d0471fcad1d0fed1291df5e4556aba72f3645486580c8bfd0e3c8f6cb34fe17ccdd75fad4d4a2db4e00bb8c2a23ed17a31e95631320590f40416c153efdaf897e3b278a1faf1917554d9292f90c4edd5992748b58492289eecde1af34976ea8ff507fb9
+B = 44c336d7739118340048939d6c198f73f90e13030b69be286ef920902391d87a58df3632091d0ef25340eab395203e8dcf3389e95debb7432165147e145735d2e3226637b4b8cb7d85d68308be07f217f57fe439b31fddf3fd469869a20f1f852e1645b0d4903432ecd1fb6397db4c11f6b6b9c0fd25778b0ff00bab9ff576b16538a6b7da40f01fa7b987af8ead41ecb66b8940c0e8a1208d0026773e711153d99348e92303
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 98eaf476f11168bb63fddf7dbf3347e619f9b580ea6804ab893214e94ebc089cb652e307f1f37ea7ab9052a352e260ff7d1e8c17461bae68c52a8a8f1a57a84c79b2c8fcc2d504ac4f553d2534f2a776ca129ec1942d83c8ae24c772f6a8429bd61949ca1aa714cc3881ed731497b84415c88ad4b9be34197a549737edcfeac8
+A = -15897a5a986641fc2cda42d185d72aa1552eb92f788bb71cc74c0e424bd038e02c620d0686ff88ebdf0bc1632093c0d89e724e7d5b526b0ddc4c7e145aa90b36be0d8574901fdf286df84a6b52674a78cf21ae4865618b4347bd905461d878537b33cc41710ddb290964c48e44d4d2ce2ed82847de75938d23ed418bb9ff1caa03b5c1ac5d65692dd1defbc6013b3270c4314a45dc67883762fda5509b915e8277c1924
+B = -3a7141f54a0bcef68cbc3006166f7e15a5c2394892a428fa417a485981316a537cb3ec757d4a2473fdec2cd61010a9ff865852af8f43afc79a97d394bb6c58643858e2b4dc5cb958c33781b5c35aced7882e8b8d7b4e4249c2b82150adfb0c8f2bbb1cff3d2ea27ed24eae030ef468ae4d6b7462f0b072cd2a2f02426b3290b87b14d14b34e91a94c5bd69e9eda53335cdfa7df90a57f97f3d023ff85537fe0a8bc5d8fd7901722
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 34464b7a50713d17b01b5940b5acfaa7006aa6b9b083bc17e0535b08783761391eaca8703af2edbe13dd0fe9036d38aecfd9faae08c0861042ea1a25b41fa8a15b7721909783de3aca127e955e177987518dd010306a795bb66466fccd55bd9e2bde17470cbd36b1e8f8b63805229754387a5fb40f3ee9a8afb2e51e25c8bea
+A = 701ae8c5bafab7f41c999e492f04a7626b2b1054e6dce1b83002b2d3de46717225b018733b0fa8fe3f973202da8a090ae3fd14f48b27097513ecd4ceb1b9729e7783c17fee9be5221fce4ed3860275b3b36b7416594d2b65e198ff564e82301cae23756c878494e57b5ea8fd22ad800a582cae32fbc985d122cbc6e0eac77c1000d3ede45ae7aa087534adfdea8e9f924efa1b19c43dfd3b7bc83d7c40df7c6578a320a19
+B = 18e0256543619a750384d30b6a7afbbcbdcd9a2ce644dbfc97a8ff699e118032558f706502c9b956695cb25a46d7526596b3d0b67b69611009265838bec533a9488d24583e7d7f2284e23c3cc4ccc5920fc57e24f60da0d479d41f5b9c6ad9152903a4f37842176c6257fb1e3e0681d6d583e704c1d1b24cf616fe638106638fe9d79a0c74f0df67cb2df9d99185324ebb037d01ba0066ba947d5345cd3201b19769d438c43292f572
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = bc57cbb3e1051d3a3035f77c2e375c7e3221dd472edb1a5ccaa7521849fc0ccc7568238aea9335a733d839e89ace6f2b66ef238267e0050c065c3d9553cf50cc5cd93d34fb43c3ea1c31b8ebf0b751f595a7e5e3e860b366229de4286b9d3f0267f78c6888ab3f208c55d9292079116ea0eb9f4ec2934c97149aa132c03336ea
+A = 1ffb0aac11f6d1d257ef7aa997a030e2a12b0615fb11ff04f344f6ecd550e8e77e9883c246e009af33a51204e4066ed4249950e022a61337848dae17c88317e15ade5b5499c0d7597a69a02b6c18db0f975c19c16d2167c583571e947676ae9c15be60e69d76e78329aed5fa57dc5e616795b5487f3d52bfe74b54bbf93ceda093c2e14104a6d2f017f0d200a9fc89deaa283e04b0bd9015ec67598425312868eeefeae9c996
+B = -9de2d82e25b449b8ca4b02b2d2fc0a023fc5804ea553aa84674a815bd74193a2e549070e2cfa0b90a53070646875282fdf855940905f834f5a07f073093c658cd1813fc5cd7092af592092d789ab5481bfb14b6683139646cff8eb1c5dcdb6a33113d1c97d4b587f15f972c06046730b7e712a8e3dd5f4bfd07cfae289047de31776f222d11510ab6b70a200ceeb6802d6c33f913c509b31b96e2b8dba9e25b0d2250c3b102d814683f1
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 9f7f4e010370ec1d76fa83f73c80825c3b71521855fca5db06d7ed830c910d0430375bf319671f6a83bf6b57d9d53cfaaed5bc5d615c5690df0067b18791c33cb9f0ac9fa5f0473e4f4eb7840b0b660962097606b3de5744089ffb37d9c0df1123a91a5896d4deeab8aebec469b099a3a9a4f6d822030ec2fc4d11636706fd0d
+A = -7f56093243ec2399548ed95df79363e6ff09de211dfffc314b7cee526535def0f9a8eb9aa6f1736528ee7aae8be55c06645708d576111766ea33e0564c12103edd61ede3128a7a642f968eefd0d7f3768b1325c2dd910d459b15e54145a234225fd29932234e59d3ff5099ec4d5b5c6075f56382ade1101115c7b94e1e2a7bf075dec210fdaf2357c735416dd5d616335002d1cde6056bf7c478f810b78c661a3dbe6e54084bc9
+B = 4df1a6296428d06f51f31a1b0f66d0b77a04db3bb8e1b80d64da649899a1a55d4041bf0bb47d3e3936ee0f3740e1e8c2b235e1b8944d28c7d617d1f968abcde9dce10d6e3c27b2e3607d8df815f5a39da9b5569e95eee1fe5532c0a80011e7415800d8a9ec175fb1d13dad959becf04964b70dabde6d37072dc9f6d914309b850cda33a565515dd6c0181fc48bc7033b314ae0bd5872480e02ffc08dac4e3030d83b33488cf149e19b0021b
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 6da5fcea305cc6eb47fb17190889e6a39c339da1bea2d7c95e997fc538b4aeec8b0edf7c109faad7fb6c656420f4afa104ada7a0d3d14d3ef0fc6774b59aa2687c0b4efe7c3fc83194a89c832f7168346cadc2b1fa6fa9a23a67c91ad731b4cfb9943738c7f9951945b2eabb3743473d9c0444ade756291f53fc7641501597a2
+A = -19dfb98f9f7d20fd331ea749d2019d8367935fb75ecde45d6dabc815ab9e593e51178a72816f85aa678304e6ff3a2c24079a59aca253d76c4ac633fea1070753ce770765bce47428f8f5ae40c26a3ac91ddb551b3d575bad9a3b6fc7954acc93aad2131b78fd212fb0db7cca4195b41651a5311bbd4d8c64f1c93e6520eef8e6308e98caa1cd0d3c9b4041182cbfa131c4948257f1200b1c5351bee77ac8bc8e44680ce64ed0648f3
+B = -2736d5038c60553927f389c0650bb1355b0ce745a7dc5f52c9909039465344af910a5f6a9cc4ec130b9877c1cbb52fc08b20d672e42b853d26a02bc07eabb9e3f91399db8465b6a8b1c9f4a4b9eeeec6e9b6180f1a770c139c8f29ceced61cc7ba182884ae01d14dd85bc924391333e8ef039b586b6a0ae18db3570aa560c2b0226d5e23e7e753873637c25aeb19e74997da4f5d0755571785bebbc7dade57446e0df4cdb8df23c1003533f60a
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = c0265805aa8ab52da5aec06ef7cad2026fa0b18edb27b4903e3c068ca6464465e34d3f3bdb4bcc10a19441040deaf5569645f7e09b36c56631b3a6144d6206d39c9bcac53b54210db6d484cd6a2780bc68c07272de03a9bba7e51c9d86cc8883cd2e1864a2ed711d505930143c883c57545e9c40851c6df8b3314a8c9a0d201c
+A = 5622f906b077d243521325be82a43fce321412bdab1f15e4ff0c11a7066a288b7939afc01d30243c8a4150e74286611ac1ca4daf457aa23508a7af869d2d55f54f2746afaec477cd7df0d5711dd636802ae7f673b3f730236ac3899330f89cb71d48c2838322fe856d9d8b4053d9c1e66acdb5e43614ecff954dbe37c5269d7ffe00b34e682c0be3d7cf653ef212daa3d55dff92b329126636e440b0bab55f4810a2849f77c39ebb93e
+B = 1ebe0d1800b1fcfb67d7d54568e45dc604450c1dbe103ee21d48dda300c1d9b9415dcd9f5a56cf12c2ede3c862e895efb83621435377387b29b882b2acac78386895c7daa90810092bd3062a3a4867f92d54622d7f0b89b40fabc4709fd507d4002ca80de231596630c234fa418611ede0ae4a9616d570232c1b03329bad02220ef64e455c164aadc16190ce35b78060a6b117b4b0641fa64dd8e8cddb5914e7657573804e63dc7b216b1a9aa175c
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 606d2b6f756548568013bdaba6e811dbae88fb01f5f36d30d15dc1e099d86bdca9fc1eb3a785034ea14cb7f4776586327d57ca5a52ea1b30f26e2a76140bbb0e930c7780673770fe22c5ed443c349510e1494ebe402f2621b1e6bde39b8691edbe5c7242efaa6634553e6af146dd40666edf4a3db5d1e7f9347fa1189c1e5168
+A = 14ea5e6fd612945c71fdb17ec44d95015773edc908a85a6645a8eb823d11226545d05b81791401cefc81ce9765eacea7a619cb482f29d38988d355ce731bc9009969b7487a3acca2d2065c1faadc5d6dd8ca1dcd3f3d4ff61d0a75ef75272e62193618f6b802f70795041de26d6ce367ba996dfb91167cb1fa16c8977f982e1718de7d60275a7f66e4ad72ee55ea06267cc4e8b08f488579825cc674b0bdfd34a01bed08b62004fda15b7c
+B = -8a542280f6c8bf4d9fbc96d5bfa6ee0d16a09dffdcbfeaa2dfa1097a760dec7bc540a0b5b2020bab1eaa594117a40a9bb99c3f16fc340c262b29909608740b8e77fe4706a88dc0fc3bcd47998e88fa02f617062393978ac1bfe14235d43f3d5edbdfb9f140412f4fc2dfc05a700f47b1f0f90da7ae07ae781d9ccdbb951f19a8b8a9a7dd8a65942842cf207f3baed3a0b2f08a06ad0d9ab7ad0110346293d51ec53ff8165b925c0e7906be8b7303252
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 512220042f151479a6a8b7c743ba83366cb7733caf37164e9c823422ccbf78b0b83f426a7230f559d50bb0ed3d9486c6a6e25f4cf96c4fdcb2c861566c6a73215b6d08995a14569710cf9e54abded1d77fc7722d06fda4557a3a99862e5ce963e1be25336fb42a4629391cde3aacd47ea5f5426e7185c5df27d9136a6df26f54
+A = -4d108217b778694931088bc255d1f69cf8f5a14252156163f948ae58d58f2ed54f518177d668e795474952c930052c1bcfcae11bcd15af168ec2e881e6ddc8de257d0cff90ff3ad409bb3a080d30fdfda99078cc3ad8302a4bdd77de66ac082b40fddb3cb36c75a86bacaf60984a74a0fd575d751ed2830650d85844aba9e3f781b2dc6b515bdb8d9459b083e1aa653ef177de76282e86c99e97dae9c0b050c9e6456a051e7d99adad7be4e4
+B = 7b9079504c635655a588ac360955fceb10cdea5f3de548ca2db681da38c17a70df5798f72cf18691d14a5f400ac69fbb47e64115cf071466c54bc7077a228249209542683ba57791352ef3409f6a947865d8f234ea9d39491b5c001685487b32130bce9aeade97d9537afe3f2f87e8f3315619ef7f215a73cb724f1adca99b90912aeecdc81485c0d00a74387ea99c965118fc6a9af1163e60d1ee6a1eeb12d7c2bb9a54f747a415beb5873d616fa0eafa
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = e36899d83a143c82e19e11494ba18478c0a9497fc89fd83df38adcb6b33918645a416626409a156899c6583ab9a4426438d9c32cac54b78df579cb7b6b1feb3f39ca4a6183743a4b823082896a89f9f1722be842cb2d2ceb605f84a9f9b61cdc7e184593fc2f9ff2994fe6cc4860d255809d04ab47e154eaec9ecc807ceb298
+A = -1422272d9e91a14b38b3e81cbd9411a0cafca23addf4f33c94a1bca70603db879dd8a9c0b95f5986bcb447731219c4f9b32a1e3253b027b7963ce40279dbf4008e526adc0bd7bcb2b533392a105c6e8e1bddfdd2bde7dfa0d2e3b1c6ffa07fea07ecdb9fc828283e93b0ce4861945562478b1a56de32251b7d31f9a2309488f7cbdcc38cd6b1c951570675ef0d61e1df69fed78979dc755f160d93ab5a3e65dc2944d3333cb85aaf87a153a90fa
+B = -2424fc1e71286ce3be684a10dd885e4891b52e9009c3021d90ebcaf68b6db81130bdbb74869cbf142e0f44ae72684fc12c85abb5157987428c7812889beecfd7bb43fcac2eb6298ebf1dbcd2e70e4274841c2703b8685df18f6e5bbaa1422004797defc6ba843e77f891bbb46699a863bc1d77c5e3cab809c247e2975e8170da00fd9c8b232abc3fc6b16951ac4e6c96f9503c1ff2d6832ff9c35b2c8aa408645849c577d2b8599ef520da57fe2a9eccfcba6
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 4e8a59476d47ee2cd0217bae2981cf25a2c38e5f5d5c30c2d8bf95856a6e8f42429e565f1836365e550d85207246514624e7ed932d6f5802a50ff9f15d500dd84b27729c1717a3df0f2d6dfd40f0094208445193ba6500ba03fa3f4bdeaf9251aace8729b32ec3215bcfa170575e26265fe523cf44a071470e3b1547901e9227
+A = 452cfc78cb9597e67aacd4ec83e5b473ab8b7a1dcb6097fab37e25d5a6e25c69c73a6c20de0e2a744375bbfe7f612036e69c7a503255d9e17c6ec1dc6cc6f634d4c79bed4764496e5c7c026fdf9408242d3b234195e67a5681e7d7b861f58eb631ddb9aeeb0e5b3ff7a7657a7fde5975b8a9e1f643893bac47debf7918c7ef8f6d7439320dccaf63b80ec9761559078baa8e35d98fb9dc242ba83536eef7ba9901395ef02b19990d8312203df7dc1
+B = 1dc222e7a737e6d97a703fa232defc6c0a4fb2bafd247c8e547b9c474421cacb7692ec98f94be19a5e40269e1f5713d06a6d081a943dbc667bc867e481b99c55e437061cd44c4482649faf870d9347e0252ba9dbe116fb4992dc2c2a0583c1351e9e01e71e9324f5fa942322485bca93c2d95cf304028e68224fed446966073ec7326c93ae326a7a533a36e053437910418bf1761abd9c4c5ab7e6f538e9bf963903e6c80f21a0a38a683e8166e4626a8d8b743f
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = a4d5e9fb7f0d75ce41ffecacd2ee1e4d15f82dfd4decf5ab1bee75fb97792d0d574fee60a30b15af80bd38e6a25b1821e61628dbe456e39fea3f8a9ee6ef3d2332412be1500fada0c1728a1457656eb3e9d94c64fb2d0ac89f10f2b9ff57d73207274ae7e8c7538936cb7241615b830cc9011d4363ef88f51c7b3ed503c25179
+A = 13eeef030b3110451fcb1a258434aeb51d3dc805b38c72ef7c79d4b0e18d600e5dd28b552b59f3dda1898367ec7da5dc6d9089a585cf52002eaf8f9ec64b8d3ec50d0bef7dc3faf203c48583ec89757cfeaf888ec4a91470a6b8ec9f26a6b07f3311b4fe972cac2f2ffe47f5c11d2dca87c62680e2229120cba4de9cfce9f7f5c33af8398c07ffabac1675de1845e05a32536329647214e54e5d9216fc0cbf2730898eae19e425688bf184d16bd1d655
+B = -ea324da99252edb03f40100e528d9a5080c43be97fe4b7e03d9563ba48040d328e57d0defd4b7ffa9bef3ca0d2682aefd2a0ffca8566e755b11f2e3c6c1b707f1b9465592aba6181e583babd5c70588e7123361a8ae77d8c398e33f894ee288babea1d7eb63e2f3de469e502b5048417043c5a9a9a3eb921cea1533162e3ce9c79e6caf62bbe7e17b180b72c59b9ef5fe1a001b733d909a8278029fb4a63077ef9b3545f1159ad73dd75030aad599ea4884677e01f
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 2f096fb8fe2156c41ab695956f13f0fd9a084f87ea5f5b1acb6b60c62617b8d7079f4b072223ba18cde474af3942599fe070ddb0ac1a99f42b9506a2648e1b8f6106015aba0bf7a824842403bd3f4ac8b6fc4a9861bf0e8ac59be0322f0495e4b515fd579dfef273160ddf96e453f4ab663e703609c709fb1f016ca919fb26c
+A = -4212bf679cc00adb2ca502604b71dd5dab99cdfaf55ae92aee6bcf8b3b6354a384656c09eec6175a95c8cb4591ce118e783d6344525c25e5b356e45802ea3ce1fe764833132e6b7bec434e4481c9cc2986904988bd8da7dc2e31cdc481fd0e359674bbff524124bab1ba4379885a6cfc1b73d953e6d1aa1b938129d74fac9dc597c31383f2f7e02fd995f7065290a9812ba8e205316ad5bac6fc65c6c7310f1a6b033503ebfe85bf6d3851bea1b65b9c15
+B = 7ad83f97f40d5be508cb394c128764532f0aee9a108eb02840ca1c635860b6d751d5f676e8670e2f61466397e1bc68f97ea52d64b335d07aed22f20bb1ed19e3e42e4205d650e6d37714c2f80d39b111577725e3bc7ce75bd7ed5e44f8377d5fc2b97f05c3c1ed5ca1ec90ba3ff7935a25a8acbcb15fe1fc7aeaa1e444cc2f06c1e6711721d24b8969d465e4958cb87924b3e0fe99ccb371009b5b15747bf6dd5d0fb73b8fdf58d955c8773a55424a34c741406f6f904
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 909626a69c803e9acdca97c56781eb672d6fb31430a53b853f467ca26d4ae96c182d71c0212894b776c88e773acbe9602e3ca56584c39b5947724290def7dbf04c6853a108c1282def95dbd5bdc015b68daeea0ee959b35bc5af98a4ae4cc7486e627bc9432bd009b21ee9af3085f074a3ae1bca879e321018e991e7898f2897
+A = -14eb8e28dd04a159c576eb10578c24fad9eedd3d8b7560b681002a54a4bce2167de05cd061338f63c50b86327a79595a2dbfc1d3f4e76aabaf88cfedb69faf5148c61f8cfb2130511a3bf4a17d846ededd4c08f3b635182dff1854e8c4c48007af028e06f01235fc2becdb32adcb9e2058dcf8f8655624bed9915faa06be972282cfbf8530bc0cf2de5b2057df32e4a6cbc3c772feea0a511cfe3408a6dab0e2714fc4cf15602ba0da03bf0016f1f3f5ddfe1
+B = -388da160568aef9f82fc16f48a22e8d7aeac99121cfac9b748c815e5d3a823b673ddcd20c1168f98ba204df5e52535f61b224fc0374092f8c834321949fa0a812b5e65c492fd9fe8246b74143a943bcdbeba16024e311d673357a3dd3eaef9ae3a72bb06e03e34e091cbe5b6a9eb9fa3d7f36c03baa5c3e242f2c186b58db5dddbd73f6aa54aae027529b8f8f0a536b9b283ab08247b9977a2ac2d0d9f162ad03a2fe247d2c589b1a2d14b5f90d5b9c0a95918ea956e261b
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 128e8844a2f04704a4a60cd33e85cb7ad373ff683abd167894a35a1daf947f504c0abd7a614e293ce10797a5330147c88c4d5e1dad1bdbeaf74095e3f5a515f2af68b7bc11ee1f53b493133905b654318dcfe73118ef1931eac47deb6c4958406b704ce027d9b027803eb8e639b52d5983094b8ff4b54e86a7dc6ea169ff1af4
+A = 75e6b045aa44dd9b8f4b434dd4bb1346fcf558a5e96b00fef9b6cfaca72fe8b1672edc2a64beee8b959683b1861138b297629b44a0caec6bad2ac05665728379cffaf66a129f0ba40aab7c6b1c3fbdabaabc87ed3dd580ba80ec7ee765e9a8fbe845c0d207eee7a1a3a0c39650c75ccb6bcdae2e0d5149991dc3bf899ae9b7626a2baa17b168b260d82fba84a12f10e09234035e08b730cfc230f0d2651c03e34d4952fca6409b5c6ea5d8791c90466bdc4adf2
+B = 102fc193633b0e60a48dcc17aa76f3e52cbbd1012f179736a0ba7a102f8dfadaf434063b0ed1b1528a018b349eaf192fe62f868b538cddd7e8e6fd98b93147727d58561517b2836e4a373bb31fc8d5e42d16126ed80b880c1a37940c138fc1f7255ee0b7fd39b1b799c34e5178580cdc076ef3fbff65fdff7497398fb1cac75e5c09cc7df1168a20f88a16e7b3ac78091a90f1169bccd48c0d06b4707ab79b741a168deae5ced5d48bb5f5dd3f465e43c82b9db7edab24569b2
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 9aa9699d1e5d2c6acb21e31890c1899f30a925b834adb5b8bc8cce83a1718944a2c90faa71b34379a21340457478c0c43121dbd65d62e290eda2ba6230bce4e6f18555a1380c7c95c1700793157f7c1cbabeb09460ca28dc596bb17851ab2ba6dc6bf311ea69bdb7fa8eb78df74adf171d4677a154b8536f8104d919bdd58648
+A = 157fb9e1b38f288db78a1a0e22fdd9f48a59779487a9ada2774a094d34536b85993e7b9ab6e24f081c4cdfb64a82271100a054169e4f1c24e3957ae9aa8300e85eb2a45a6d5987eed4f0fba6fe8557cbf6128e018c5f9df028131bbba6c544b2c6312aeddc71405f0e4ce648fbab9e5d51685949408e4ccbe06fe501a36fc13ee65c31f062313135054b7679eef45964c77f5a1556ac09b11c496d0ba8c6057e283bdaebb4e6d9e5c557d975745f9f98a288d5bbe4
+B = -82cb6334479bd997c771e894cac1ead87dcbaf8f5006be5c70ad48ef94303137bdc45f261af91a201b276a17d884a56ff27af7dc06cc5b7b9c94f7c4d4a36f68f8d309c477b4969a6e7cd1b2afab9deec06555cb753d8a0eb00965359ef865a84bfa87b815a42b2050e1635d5ae5e3743c007bd79e820aa37a968702a960fafbddecebe63f022553cadd7a4d4fb27b4dcb981e8b490e80bbbf13af8c4412d158775db71f5fbc9986e7b8a8f9299574abf7bdf9ce7544e8c4e85bc
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 46e401989fbcde9d830dc6e3c42768999f153d44d270d4805c5beefb470bc1e82706aa7173b359763c5e15d146eca91a32a36f0a80802871933cc7f2ed15a5472988849a2d2f57543345b531538db57ab9bcbfbe787efb0a82e61baa505aad628df5f9e881dababb35bc2decff267eaed3d3671757ae1764ec5163b792b4db3a
+A = -590c16ea2cf7fa7f63b5cf74804333f22fd2d0e1da7d226da8425abad2b39a4672fcebcf5cc15d220b0ecfeec09665e682fff0140f16889f7a6ade9ec11aae3fa3a369b3fc133babe52e42b7a8bb9a24777521f4d9e0efe7d7977dced9e40784c24d2c6056b3b668ada7856da71af73d2dd33d2e481ddf40999d86a6e236d0d73f31a67c52cc8b38203bb2840c0b92c2612ffe5fdb6be87f9a787d70b3dd506f9a63d144db3417495f0a48523c812d14a89710d95bc6
+B = 5a2865cf2254710a1a51ee3056b0c1f6c5f77d22d7aa8f939e6f48ecec529a169e630c554bbe682a8c4de9ce4daca77a278d7e752cb678141ddefa75ba42e661885a82ab55d699414ffeb75802cb8f4e7583bec8a7ab58803b378bb60fd46f476ea490c9aaba568ec17f3a6afdd6f20ec54a512f7aaf62d2f941e35b4b72dea77095e863dcb38bcaf8777707c1dd437ef2ac6b6a8b2b832f80ad2a6d6f279c053d02058b1a657a1cf5b6b269e15d29087b0cfc0c2d4c3fbf32a167a3
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 1c9649f4540556ae82ffd71b2c71ea8588aeb845c50dab595db9f8faa01a26c809d30d8433b6c0add465e164cda2b6723c942ee87241eb7baf9944cae08babd8e22a0eaf35c09e9efdfb9f8bfa65d53ee6eb23fcbe1d12a66ae05e7592ed788b231b000f895d098a24febcfa4372d249575926a5faf966072f29a62a401ec51c
+A = -1bc9ae5fc2f6a3f1274584bac1e145f02c5e8c4779f4df15e98dd34344c988c1437ee4428485a09090d81b18606a6ea5c1b9136872ab5b37373fbffbb5b3fa8fbeca1e112b9f1643658c2f38b9548cd8f0f271779ce0acad403177057ea0a2af2e7435109879941fbf463488a2522b831b95c1cff21d2d816d70c25156369dbcf04a0e28e1d746afb8a77713703fefa512816fe73e203bb4c3428efe09b946b750199bd7a03d30feb90230c219a103ad4528cbe0de1e5f6
+B = -39cae179d955049f830867d4115d3bae25127c945b1fa0c16fa850e8fd77c1b3b9b7916b9983c1659b7cee77b7dc72abfff1c56681b7931c5e58cfe4f1bf0168ae32df0df8f652223885717a98f858a497b1a4be62a2215c39316c34451b0d957791f49139921d9ac8041899b8fdd5d3d443547a26ddf5748147e4c3e93f5043ede42f38a9baa628df65d3d6148ac2ce182056700f0f94029be05d3ea3a218b40f65a87b4baf097fce107c080de24880259f1046175db1297016af76d94
+M = c462c7cdd79b7604246a0cd97c017700feb25908656b4733353af8119ecfa0212e4bd24304edd566adb5c1e9daa40894290a9e2e20d523bfdb5a2603409b312cba43d567a27118c15d4bb2f3867a7ba7594e02859850b77b929823049d43573a881948d674e95c7427e2d04d4ed81b5f4de21e0d5904c8e0359c99d4bdc901a4
+
+ModMul = 9fcf6a47addfa336557749821a88ccd2573a5ce2c3094a17d9a29b33e043bea165499e89fd2c939f17a670694aff05e9af46836b62c96e597c83681092d63ab9d6e22751aa8fd4b9ea94a90a373876ef0f6514304a495edb5ca1795c9ade7965c70f9aa92f8ea460ccb670e9a62c81e9c
+A = 71b93fbad39b1c2755f2051ff7d532d59c985756410d58aed3947d6ae737ace5aadc35e7e0d29c684b9d4bec9c0fa277996bb30230f70431cb7b905
+B = 167be8381a3392dd4df62e150025e13b388bf366922ba8632614928922cc290772135857d1b5234d51c27862cb1a055c1b86260b6ec
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 8e2ba940fc5165c6c5f7f4cb55cd89d1d5f59e90e78730bd66fb120a814514784879dc43ad4f355030ddb3486a59bc34b601474978a94ddbceafdc0ee23cb18708bdbd824d37cc32577802ac6057fef29a71f168e816309fc80cc46f251e7289c6a57fd222d5868263360af63dd73e7c8b1dd6b3f3b6939849580b9231940a4d
+A = 1220ac4bde4feca135268550ddc79d8b05ff72f483b39f77436f348c4f5360c22c598f7dfb76697bf6d2ae86c68e90748b8b729b25f932b2e5fd33f3b5
+B = -bfee56cd412318cd62e7b6cc49217345d3a94e7fbf6fa19053fa685efbc0f8b320b7e43883189396781c49371dffe7d126c032d1ae4b6
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 8e2ba940fc5165c6c5f7bcac0e449b64801e75134a390f120acc58cbee43888f50d07f7aa6dc2b33643c025cf745434d20eb1aeda8fcee5fa3fa5baf10d67c21390297857aa50bbcc4a29a6b10885f97fea60f1b88fc72512c111b938142ee8d67545efe386622162e8fd50418b09769b8c22efe54fdacd652580d609f0528bf
+A = -7bc53f6f2e78628678ebc8e35ae4905caeec61acca5c64fdf595689cf005bde2265cd43172802fc133dafd933d7b48def44256868d202727a4aa6c0cde66
+B = 74147c93e729707111d0d531b1c135453f3e59f63a7e082b43dceb8b16cc5debdb6d7c0ce0c00ec9b5ca51e7673e411c3cab34938124db6a
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 43c47d7e319c32a758360dd726a1d91e2cf5c57f73cdf9ad2040e61a9c282a2962d96d300e04288461eb1ed37df19e6b88f104a250f9885898740f6487b081515314e0a217df2d4345d3cf81eabb2bfb346b634b9c251624748f6e9407cb677aff4c53fcf42cc027de267e6ec011e14bc7f3bc6666f693d21
+A = -1e6ce0b44105047d0da0eca7b936980267db41d41319dd5315889fe8fa2329023d7cf54f71ee179b5bfedf442cdad1920d311966f7175cbb953bb42ee105393
+B = -23a330c7e06cdef4b6b121d15a9c0bc774eb5e432e72d04c5f03a0c588e55e010b61f57c03c51edb1211685d8dfd2a35393091fd0e3ad2304fb
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 768293c84c431b9c8dc6e538ca3f856c60ae5e1aaf42325865418b7bed16c7fc2589968319cf41cb370657c8edc7b969de10e0566b64ec796470b630e22477e7aafb38e99b6012f100c9d23d5517d486e3cab1fc60c1568c0228c9b55d2d77d23b1351fe37ad4fbf9c07f29330a539de4a32709d043dfc9e21aa1a
+A = 6bbaeec78b6a41818b7eec42fa3be7d639dfd86fbace2bc14e0369dba6dd3f04ede8b808743d809f43f70f1146dfdb1d649546441919e27f1f7a9760da4a3b152
+B = 1199dc2f52868a0cf440f6666b576541c7aec1e9cee14c1d22010ab0f53fe8bbf3029c639ff78d89dce82de85fd8eda4e67395d435df60158623c5
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 8e2b90afbdafa02ce68d537ae807b4e7f3e05a66b20b84cff309941fc3150f99d083841ddaf6f19f5a76886ad5d853c73051a0457e95eeb0fe3776a084a027ee77d14f3825713a59622ea163a679cff904db33bf6ab23b06eb4b31f4e34fb122c8c170321164439db783e7bec1c265eed33f33bd9cb6d1611c00aa18a9b4b90d
+A = 1c4821515167f7073d4b7cfa318ead1da1131499c12497447846caa84176a9d4af576fe549fd8b0f77bf8dbebf6c395f84dffd40400101bf28b1dda0bbdcc5da255e
+B = -de60cd639044e863c6a49c73213dbc2ca84e4225aefa5f880e829f2d9cb48ae92e3f2680c462ac697dc34da38f65fcdc1b4d8c3c99e8cbe29660b539
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 33e8e8e193b4b99d8bb382c29c1fc5403190d7654f43cd77e28d1bf77bc3a728dde9de9a89c6522ebc7222d25f46833fd1753a44275b04485c77b675d816090280b3541ca61bfa33921a79f7286830131d6eba13acc46cc2c449b3a359f1cb49d67a4d0cc1245f3f8b59b1684aa0c3ff1c928b8e880a3375ed811dffc991fd1d
+A = -50ff3e00feeb2efc6df6387d6409a622b7a8297a717b8d94d0dc41c6ec6f29a8455c3580019349660b31dea1e4f66b74147de93535e671c853b604ba06a9b62d34646c
+B = 49ff858c7081392defc3ba12ea8869fd61188ff15d9339be72657b00530b851de53b1fcbe16034816e73251fe1ec97bcecd8bccc470373974287ca328af
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 2c88dc40414969e8b614bf8db05fbc38fb2b7ce144d7e707f9f8eca40ae2309c1fc67e713a8da5fbb20e808ad20aeb369cb72a77fd285e38a7895ec0fc795ade4ef1f1680f3a3b3cee4569cc9d5e699984daab3385815d2e515ba5d67d21dd1defc12ca81bc8ea645f8f8d103b4a0a9cdc92eb50690c07a037df274bbd5217e4
+A = -167ee0fa8e5d8b569d7848b068df06f6baed80f6fa6a442f9d11d9712622b512249b92c7ccb821ac751fe4ec0a7a47e04ea5571c7cb45a7985749ecdd87f0c0faea01d232
+B = -2207fd8dbf2b8e9a5e3cc515479cde241dd3671803f9fbf7859459ac66705be055fa759c85631ed2a61139657eee7eb08fd963b49e33666e60b7e75dd26b5d
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 674885ca3ef617a53eaedb9564cf96bcde131760ac541a81f4b25c174a6fe1444c2c206f7171e343e1bb43f81610162994c497419e75aaa25b664c122ed2b27640b45bf646fc5da1703fbf1cc66e10a3c306eb69ae5f937081a1a18dfc8db376ea18f4c1c499109b0cf8806eb32cb1f28985da790047bd7b32c1f67bffb9761
+A = 413cbcbbb5851a4ae12555801f7f80ccd888bb82ef1b5c31b99e1901d7e0ab91ee489c84044bc21fa2010f11aac21d0531fac09feb482fda579cb9f224c3149dd6249b0225a
+B = 1b6bfea70f1d80350eeb45f9a5cebda954d72cf5cd27a299ef5a42e1ed0b50a541d1657b70e50b0cab69b22e31d0944fd735957b1ff764865d9385af302bb802b
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 8d74ba5fdc67733ced4d468f6eb6ec4c1ebd79c97682c1d4daa06105788ed9c5144992e555d903804d7ed0dd9b29ef2648568ab7ff462a03e0bceb5482485afc3b91448fcfeba435dc587db6f3a022428d37fa0e85392d0e48e7d4ed6b21253084e653da8175587b3b709e28426cddfec8d9dc582d4ac2f3d540305c0fe17327
+A = 17c0b7f0e2cdf316e4d32f040e26d41dbde1e6689d98f0652da1c380daf5dfeb6a511b72d82f1b32d3852e9aa2f594be10776a8fc89a8a35c160e8e41b42a06a342fa1c309fd82
+B = -d7b7701340c5a358455ca5fa314ad83860d9f765978ff652d7f542de2e123bb976930b8fe84b9608648324450d8ed2bac4e44f2fc71711ae813cd8793af8d3796e8
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 57e60f79b4e156ccec4c253e70df8d86e4aef326150d612a5ac4dc285761e88ede412d28d9dfa5a6f5c073d3c91a65ba9c86067d81f296935f0d0ebd2af82e7f6b5b336422429cc3b8427fd8d3f5a6fe936f4208362632093bdd3cec1aa8f4b176d260f605caf4a12cc011f3d1b76135ac2507346674e41673eb16c0f55d8010
+A = -4f1568c207a9ec970b5c26f068f3cc8019e8cb483525d251cd2919b368d072ac8f40017a19fc7437cf88e927c9e7d6f539ee84865f0af24be0d6d98fb33d74e3e0d28020c00bcd61
+B = 723db98a78f42aa45496f31cf78695583526d25e167da48ec310e447ad3540be2636813a2c2f7b8c622795ac451992e91bb8e43e5737f0dd95623282e729d815b08ed8
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 237eb5726e2c628a515104bafd44348dbf099569815784eca5d6a415d3c12421c8c70fee23d6d82f7b5b136b70ffed3b6d9e98cb47854e79239d96c26f2ec955e4ea8dabc29a1b0765c9b7af6ef09ca673d1ee21c680e4b8cfebf47bbc74c993d017ead6cb6f3319ce4de9e9765cdb3ed8fcc57a1b153327e1a6a965e5dfa89
+A = -1fd1f634685eb1470dd9080529a891253a28a0b31e15c662733e20d43fc4cd71f4cfe83c3774adf8293a0fc3bd806d0b31b61c6ed0b4414ccdb91e2994e22797e5771c63defcc0887f1
+B = -3ec0478afdf54c949a097ca411be41f931acb750ef4f0ce97d0f0fc77cf15970cfbe24b170aa332de04836b7a0e6c5d456814182d27c8310d5fb662a818bc421587d95fc5
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 2f1d500443fc4f4b86e7ec93e4d0dfd3faabda35a6dd31445021928373be14c37fec369ce80ebcb77aff2151b7ea94d21592da1823ebfa0af196f286d7a69ea54799573bdcd4d09ca4f33b8a3a93b35de5ff7f65099d59367914f1c79440b471ced6773b0802bd8ca99cf531b62892eb1e78d67f8210592208859b0aa1754b14
+A = 572de2984fe2ed0d5ebb5bc3f62b197fd592795d91cb16b48a0c898991ee3e884e5870b92405f248036ef9b3898c5ee6100a09ede5a48bf7edf3a067e4fc77e7e6bf6a6e3d4f538e3d66f
+B = 12c379402b18a34dc8b80c0dcd25be16c99d6f76d5d64b6050b90910cce594bc022794640735710c7ded857ebd44fe5b2e51574a2296f7d7a61b59c0123051bf2ba4a168cf8f
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 4001c734e1391a88640007893f167eb79ef61e4717d5eb14b8d80c25ed59c753be63fc8e54bdaded22c9c7d3e49753eb49efa010439807dba0d90ec4f9b498aa97f109af542bb41922936223213ddedac4d0fad8f1446498f4228b758aafdf1d9692f59029c76ca2832125ba50e811cb95f2b982a7a4d87b4726e6dd8b1963fe
+A = 16792909716b581a936287d0a8550a1f3e840935f0f3ddca75aa32e3489269b078fd19a16f8d6b2326eebaf46da76e90890c0ead3b35689bfda8c1ead17a4f672588f982cfd3da2c2b9bdad9
+B = -95ab2c47f85001aa852d6999f29644a6a55f9e4e12bf905f911f90d29cd1e4fa4fc9d1a2aa6c215bcb5c5643561499aab8f2678fdc5fa9c6ec138aeb2d62f635c45f239e46b0fa
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 1bfad44b58d3f8bc987116d4cc7ac98f89f838a8712d81d726189e9e1469cf46fe04675dc0b82e6e556b02c350ef4e30ec6203c7f1df937ea80f435af7c10f48538fe7755ba78993f304e64ca0d783b0f46f61bd14fd3fd30768f233c59018ce911a94b495f58eb96438e416ca3c7eba5b1bca9dea5a770c1d2d9f2f62f821e5
+A = -78a6a6ef40e443c52036e75f0b35938d632bd45aebf45a1fff5c2e1b6f601a57382b9a82c3e8b2984e643eb1570cd83f3a6be6daac567ddf9f37bd96785662bc3cfee6f47503d239c77781a8df
+B = 4920f870cf9f371050e64a419ebe07ac92dd3525b41e8ecf6939a267e1ba853d54862dfc95dd21b3526eb0a0a7a7f8fb67df2e9472dbec81e15cb13266257177c5f2b92fced4cea5d
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 6b0b84505907a5ca37abeff9a5ba169975792c69b5751d9845c0f09dea833fb679c8dfbf3895bc470529e0cc736c9b4a0d08b75d709a1d04525ae583c5ba082d3bca1355055c7bb674aa1b92689cfdec4dbac84a96e81c855280e417f60e7e4931ef4f428420c0b85d2cd11c1030a47788d6ee6af0a76b5364fcf23b270e9d4f
+A = -143d843e3b12431fa0d873815a757a214cf731c298db61ab13cb87fe78b0a6184bd1fdcfec0c7661b10775b4ee2c815dede0ed497977c9ec5154f7b24a8a786501ddb8dd257bea51b9fd9401ff760
+B = -25d4da7b64f439987eacbde66abadf0da7c1653c1c1c6d9b2092351fbc714a20d2d7ad8093209da371150b69b3602480595533ecc1f3c5005a8ead10732272246d8cdfbab87c49e65223
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 6bce40524278ce242b0b5292d27751a3dc414f962d9c1cacb45fa3ee693ac6890d2ff1647abe578c40ea8d4b326a2e0e2fa7cdec28fe2da089338b5fed91c4277cc5be37537eec2f17edbf48a45fbe38f15c58c3e733d408d001262dbd40c9d246c323e7978df4fb7207aa9270a12921743cee2a483e7e71b221b09a6b2c667a
+A = 402671b0cfe14655bc650bd35dd0c36ce7f65de274a0cc4b708c6f6c3e84c2125ab2430e702421904950b29aa8a03b049910305127890457cd0cc97a3e05df67f29d28b0452969986959df02f59d207
+B = 1648c29205f19fe4c646eb62e8ae9b65260c2cb8424a526423c6bc04ed55870cefef9b8ba808f8ed2e1ab170e2e411f68b934abb1a22776969f79f9420f8bcbef28417582942e26646af60a
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 40db38dcdc201648da555f1062bbbb92c632c29b66902eabf90d98dec69ab3f3b28e60cad1571e7246f4c9e6aa62ad26a6d0bc08598c7a8571fa830cae4c2875c5c95a59f3295f998681edba7749b7e38cbece8887a7823b4752165e1a897e638836d408f439f009d0fb6c196e83e83ca3289d2bd0f0eb36b721331e4f9f80fd
+A = 14361ace8ec5223bf0165b78913b77ef921b7089bb5e28891d120bd3db6513ddc90404a4e6cd027f9b51fbc02e80d376d59e1f2b043954199ef8218bf26cacdc5e749f668ad3b4ab35cd796f94c06307e6
+B = -851a39d8b0101fdb22ea9e367286e572dd132b8a77a6a14dd0e995131467aee898230f37dc6224e35bed2eaf459aae579181a161450bd7ebe6b62ea7154a8a0ab590ca4a6c2f05531c4e24650
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 4b085796665458b798f824d1c1a88c23ecca456fb88713b433228ca8735141a616633ccec4bc53ea4f6e0c74e4aab6fece2e4cc4c4efb479638cf54caf55d4addf75908076f5fb487ed00d540e5b984acb8f81cae3ef51db926a06382a288092b352793de721c23c371fd0ce7a789486b2e8b867d35f47b5daac2d339d22dbde
+A = -511565611538828ff7dbc45c273fe46f4f5105d41ccf5dd343b41e9dc579429e56a9cefc54657ef0422960d1375b72411a5cc93ffa323455e006e242580358d6cfb641f46b9c36fa777a613b17dd4a187454
+B = 4f22597947638b9a9e9b9b7c2a8d37f77259f1bb1c7db65003b6e1a1c807469c84c89a75b80bbe0324fc3aeefaedc6ad9c0d9e470dac9c30bc48f6abbbdce9547ad7624f0ce9ff3cb6be23e47bc7
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 2b90a57349ea94ea818207fe15c164f9d3530c7cdffcae178557274552f79c4ab56acd78033a570bd6c3e45789704ef0b0ef586594fe4cae3ccfbf9ceef46e769589b084adcee3ef8345375b7103232465b991273df724964248737d5eccbac558e35e4190112571d3e7c291baa7aa8b1800121bd573b8419f627c0091e1bba8
+A = -170cc62ad57094d307ce1b317ae5e825c2f2e317ad6060437afa105501caea00dc9a86af8729e2f3c3a854387dc3ba368c0a84aab1a527ab34fe27b0a69bc71c728cca87be728457c65eea7d7538ef3aa282615
+B = -3d9da1377a88f647de57ade46dc7caf71b4f42bbfaa5e77f16cfcc90f00b5d3e9e9d82355104c7cd0db4c1dac0496be3aa35706cfc0a30a1329755faa439694e8e9b41fba8f1ebb46140818c7008e27
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 4cd4da762c7576d582572d3427abc4b4297f740705fc14a32b46347541b152d0d1e3a11f27213badcea1e2009e34a63350c7a59e4d43654b28298d2757d6b54c4d82f580e98de4230cd119ba350416452cd4b8adff29b9f35ae0c533f666cfed716838e2b91941dfbea8d6a978a369d5f27554ef411f15e5a89850655d7f3f5a
+A = 4f4a28af27b926d8ac347503d6ac0bfec388a6c0b38a577501c3ca4aa709c69601824ddeb5eba4d9e437a97f3e4477e1487d5ce7b4a35b90fb863657a5b2d901bb8c3c838db40b89b495ee9875e8eee607d7b8013
+B = 13ca192603bc8b2da29dae67159e4f8d32f351a503434ed9e4e24f74abb5908ef7da80781c71b1a5ce64fefd13a16cc1eab05a370bfba2a97e6cf90cfe98d3a487ba72dde0762c36c10e1da175f1c1b5fc
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 3812e9e835ae355fdf328b29ed8b86dc3f6895e379b8b5d65a5de41eab5fb20ad3e2290c8ca69f9500248ff883d9715f59d0db6257d13c5cd612211bb1fb99867161daffc77968bdffc1fe48bcde0fcce02ca93975b3cd9e93b56974ab4beb59582c3d0ef2a65957f701549f8bf858de0c5bc98af3e5722f1450de391876a2d9
+A = 14ca6101af00d67139b985ac9f149accc260336237dd2dee802b5cc6e506e217b74c1a007ec10c20012f071ddad34e7407012669109ec1f385566ff04cf1a1ab7562353c0af1ba1be0baaef920a188c60db27970f64d
+B = -94b683326e9de19e414f653aeb2cb4bd7b17e76a23de6a4d91c43d717a35e08f2155b444a9549dfd01a8aec4dc901ea9f629f16bafd2c84828b12d2f63dc154323eb2d54938895ec4c9efbcaaede274fd4ab
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 5ad7411cef0581b2e675d03b0ecb9969102a283eba5e779bdcbb7646d94e843083a07269c932d18b973b57abe54eaaad0aa76cf7b61f30505a263bc95aa063efb264ae829eb1d1d5f7d380a0b4db59839de9ae6230ba51901e71b3e3d59e8c34a79678e751c8b7ab139123bdb2f04d90a18ed81d2046ae86da1a73c8dae4fc4f
+A = -469f61cbff01f0e4124ba69a860ec6dbc75cd758dd8ac7cbfed97645b16488a329adee62d1a66e90ee4212569d56d58b61676262f49dcb68296bbe5d8e23853e3fefe8a304710cea568ca65c183531a992ec5b4d82e226
+B = 4a0d48e31cb8c24a3b2c9c95fd19edbe46823032ef4c97fe65d0a30d5c2cad7a4fbbe89e0ebc9940ed9f9ccb8ab18bac269759a9740a7985809d0f38259e680f0703febe7fa012d1ded47f0cace4a133f59a721
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 2b2953981db406ebc544c39dfeb08a8b089064533221536c7fa2bf2a7a0d3a1192859b7dc0ea5036eeab5aa371e3e0070c3980433adb3e3a5202ff257bb546bcb9550423201a35501fd717ed4c0016eb3a675ed399340bac7f058a04e69c1774590fe747ffb9c27e78ba50fcee30ce533a1659fc49dc080a60f21357a6265d24
+A = -122621d97f42b65b060c84df3f0c0da097b5e240731b77a37bb9471e7e398b242db6f1b5e25062a9bed702860ccf6aaf386c1d6fcf60fc31b8c190d3486949c5772b9e621b863a7cbf29449ddd68b7e0c21e669492e58e94a
+B = -33978406dd30ec2b192c416e422428683deac210017cac9e4355e8446d6969295b0fbaa8cabc92c1fc0068da70efa047f938a419bac160ed6f794a9f69f53a88648c9725610d5f309b652f5462bd3011cf68ea859b
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 2104dfef151526e072c09a4a277eb981a035379de3b1a55a88cb060681706f26131c388f5572c5646826b119c85ed450207f32733487e3c4e1e9d701a65058c4b4ef0cd1db090495643038229ed177b54695ac32110619038f1c1cece14faa693d88476e3d70329b0084d0ba5d547bbaa5b59ba1ce1fad5aa2f1c11a75bc7c0
+A = 7b79e6f1330fefffaf8521089c3348593e40ab7e8d4da3d4346571b43b12740958336580afd13619be3dc2d42eefd9e30599405da3e32e7f3a5655ece8b77a367059668021aa092460de75e627526da08e6206b0f8f539ef40e
+B = 156e234931907c0c0970c1fe6bd4b24225ed94d5f5b1be4693c8e141e9a6032425b4a47b6eac6265afbeb9d796eb230efa707d5ac4a73808225181cf814b319142e9d175ac461c75e6d479bb6bea53954bb981062eb16
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 2a392c5fc96c29df2f5ae9eaf76e7d981dc1e2f3b47b43a98eaf556a9465ae8727c622188123c64658053ec50c25e54ac5c6c8bc279b134d326e911f14c873357647866eccb4f9038ed0cef5082c2058ebd71e1619f7c8f8f2fb80871ebbca3fbfb7845bd855d307d2efd853f1bfd467fbe030862f165e53a9cfa633d0d3fa23
+A = 1e0430e7cf15173d00592037e83e717c90d7dab4f54a5b2f0f5772762fb5f56bc0b2a53ec1bc3b960afc35e7b043f9d85d0af6c29288486af3e186e52bae6300b58917647231b40a12648cc8c020a797683a9bd7ff34eb6d41b928
+B = -e08372fc766eba6e0ef55a9149d700b503e2e3f978c8a397912e2735d5bcff69c461561ac0822c44160c7c1bbf722df421b74beada57462ac54a9bdcdb42d6a27b86413036ed2282abf62800fb2518a32a4a135bc948053
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 2608f68632ef14dc3979725c8cf1a0db10a1651f17d91247edfae9935b53f6364d233b030eb99871a87b7bd876ab2cfd5a643387a7af9d337e81770db04a14f4f8dbda2cff604838c9af9a31e8dccf9277d453176589ba33abf77855b9501e63370b2e6cd22831e1e70ff1815302c0a026c70042957d08e74dfaff940a91a7b9
+A = -5d3568858c05a15bc9777af949eb01d33dfdba58439fb3f7af2ba792efe8e78b16d7fbc2a303a4c4c4be7c9d43f57405e88be54d6ab55268a4739945ef582921d2877019659dadbc76e0939f4b2cfbc91e5356ba2ed531526ed5b9b3
+B = 47f81f65ea1af04f702757c02a175a299b23cd8ad551fdb67020c50cbb4110b5371dc5790b12484e9ce647eeb24c0220a5e62aaec3461a9dcdaf1a22814b6f22d66372cc5ee31944bef33469f905458c172ec7871d9dc9c301
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 5735109bd21d31b5f54e9221bbed78c54cf387e39c13d31557e8173e173f786b2d2f1acf3966c3bf4552fe9bc802d0868a5a7632404cb91609a7a45fe0fb83fea8d83b0319666c1b0ac520169c15be708343359447f2fd37960c1e96d32799ac9394e839b391f59dd347acfb79bcc4e34e76490880d163ac97ee69e3a0a6e68f
+A = -175011349a0a1ceba11756bd528f2bd631c106e709aab223032d08d52d7d6724e8c5b055b6f97b48261f4860eae297badc1214cdae9b2500a7a47b4b777dd7b8f1006757754ff1143b637d2a3adc555f38eafbd5478cde0b04e5f46d3f0
+B = -2aa7f75d6801b04ea9f690aa0c5448906595fd28b53775059c01efe54b463f1d87c9fb4b39cb038e770f99bb995a2118b86ff8d004bd964e958c2af82becf362fb0b927c671cc3bd7185990419d26a827a2d81bbc0126e1029556
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 3b4ad19b75e1301d19b57ba9b68e0666c28c7c5c99df1d5fbbe0685dc1d3489ff39c919222719c5d8b7ce2d7ff967730d776a02b36a86064ed66a02011bab82eb575390f85f0104715f6e4954a1bb28518450182a8ef58af35d00e2fe417f07ba25dd9c85e00c3451082becd22e3aa0c9bcedaa96e6423c7df6c375b4c799c65
+A = 58e1ce4a9b512eb0632b02cf1207936d6707b802140540fbcbbdd712e5ac1426b4f36e74a9a9ddc812e572855d4fe4fca8a0de6644226f5698fb46a5f2a479dfc8b588aa8e02ddb15acdc79ed3d17143e290f1317274f425b869df54a4807
+B = 14e341cbb5f5a7f3b4dd864172b82ceed2887fcf20aae7d0598b3d8afafd2f10c27bc7456c1488abb570be3df04f43d892dc6a8dbe7621f55bccb0ee3acb1ade989a510b4e0cbe29b6b93968f323f0016d87944c908824d249769f8b
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 7fe0bbbccad6032069b1a335b3f2dac16089051cd9321f903181fad23be6853e2d209958e8c48e008be94a62c6206b34b4e994ca08b8f24a2df0e6394ea65b3b7aadb3bc43d04dc9d35a77e673c4476dedefd4568b4ade5d16f9d89486f3d5ed0566b1eb428cb0b688f10fe3901037744f278385754fca481f937cb630f60308
+A = 1cc0e3ed58090db55063c9ba11401636f89262d6ec096d361f448496e05181c5f7f2604333f26d511c13534618e90637adc807d622097f7eabfc03266135cb626e1bad20997e72da71bf2b3f65a4973dc27d2a594b1fd96b7bf7ec14b9e4b983
+B = -87871b2058d33cb67d83b6a56ab27839c6a6c771bd94e55f200a1257f2c737e39c4a0403fa410ea64e8f442d300df1c19c2f03d07fb74d94f86d26814fca23d4cd2cd3718252cf0cd8a0e36726f6e68827a1dab6bbb1d23b884381c702
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 35d7ac5cbc7e6c262ffa41be168b02a3bde9e112c512d1f68421d705ea34461ce3e0dafde67f44d44cf31d91b38d4d5f2fbf8c6c6a44ec3ed0298dd58f3d45c04346c11e57229dc3d2cdfea02c802732d9a811d7be5e81094d72172cd04caaa3c9d55a951c09f454f42add6e89e2d8a98e124aac86379df377606e7af9bc6baa
+A = -4ee01518f6581c560a186fa05c6f4bc26809c4822cc74a0bb74d5a6b0a368aa9bd0108f26113443422b8c589084ad49f919a9e7821d99127bb210670e732b7cdf610e464e300a39d3dfa7c82f90cf00ce329bc6763d7b1d4224a020095112fefa7
+B = 72dc8973f7af7122a05c90df190bbf1e39abca908c197590dc7ac41fd0712f48f838ca62a72a177a293ee6b2afa7a10c21e7993347c3df4f161a5641ff62ba123999bf1eabef29ec0d33ed0919818f4b7c35b5f41e654759fc9abdc0f80e7
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 5d83a9b34631dd6c63c05a0c012adf97b4d0f20f61907e1c2145330211e9a7e38128517b058e0a85e993c385068d1cec768deb814bea1323dbd333de091ad2cad72431f20c1e70ff7e1b119768ba44e14292c38b88dae7e55ac9e10ff98e9bcd5f0ac05af499196b4be0c6222d1a63227ee895fa6a8221a4a182a1323183cd7f
+A = -17b3e0c9288be15fda58c8fd228216bc466731d631218a7ddf1d2c9cc858c0219cb0757d3b680bca1b1964eb15031b5b9d761a8bcbd160db89be339067a2ea35e1ac3cfed701912a17ef9ea03999d92e3592e893183ddc05cbb98a656983b54590c72
+B = -269f96a4634eb37cf8a6608408128587ba45958405a29827d0d03d34816fcb1a2297f1319485439d3e8594532545086efbe4d21d31d30e2daf09b74fa8cb27df54e8f9f993630cd9a292c977eee70887158bd3fa3cfef321ef900a0598ac8cea
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 7fc1c65eade94d9de7440eb8dfaecf1004905135efd4f98257c3295b1e76ccf1e2ab6808d158d360b7419c6210c50efe960610973d9ae855c72ec0e81d423e5863c80b542ad455700d2d0dee5fc403dc01eab460c24687401cf6a3179642e59f2a30268df95fa80dcdac230702352bbf6b60acb9ff5d45c5b09a3403b954d173
+A = 7906bd8d3bebb1303c1df1fea0b2503b0abe9c69b4f4f5bd01eec9e314788cb7d44b93428adbcef570477e8ecac2a64822e481bdf520fc381e1bb0b2cdae2fe94e484cef5236dd524e4dc364b72f4c06d57f29dd3c5079e532b1ab1e71dd6a65b3362df
+B = 1479ef2807b9c23c094d0416f513894cc92e023b134f44a5333360dbbe98b8161ab899302f4fa11b470b97dca0c4e8ab7ae47e5fd0962834e6cc1763618193f4ee027f667368da580c623080de137b5869c3081128e6081b9d5e2dbafd791773242
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 730c04094b1ce944588e8291f7e6cf763c70b79cf362dc8a1bc63bb8790cd4cfe4eb51cf15a45a8464d69ddc3e1b9383cfbfd643f317108cd9ca6a6eaaea177c5c8b6747bbf40108cbc0437eb8f11bd2a0939da59b70c0c6129e2c249823897f2ee536b0427bc45035f121d2cbe7441c175899b97c490e6c3ca01539bcd05848
+A = 102cf23cc3b81785c73ac3613c816de47fd585c7d5f175185818dbb4bf0bd47d0dda9702bce97b29d66e48bfaae0fd07b47b40be2b48ed702ef21c54b10bb927f9d6b43604bec4f4b2796b44aa6b4e83f8bcd00f2fa3871dd901570e1a32888d8691454c40
+B = -cc5349a9c5280a933e87ca38ce458a711c71ffebb40bb1f7612b42b4684afc495e99c4a5f32eef1c9564c2b7612ea4cda7a0f5df6b3ec9026447dc565ca08563d46aec7ced9fc4cc5645960210d44cdc3944149051d569c9295dc50862f8f6d1f6cd1
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 1cfe1842a53d00e4619265e2fce7cb566ffbd912c9213925d01408a956af304eacb85e29fb6edb812a95e90769bf1c3d62b0cf6cd5bb8f8992391d2ad70f38a14fb9d1d1eb522aa7b7fd9f1b52790beebfc887193882377b7ce567d317d8432e1d9a908d6ccfe8d2de7de497d77b023b3959cc042ae30aefcc0229617fd2a146
+A = -5c3d24fdb193ed83f5f6a825c1716f98e3cde6b32e09659f253ca3fd2a39402b5bc3a6497ed7bc908838e93422559a13cf59156254bd3fe1e3b8600b2a777943cdb39b9d42c58043f1d587424425d3ef5f5538ea157112970ce3e09a87fbb5f7c96f1b5e65fa
+B = 675d9d2a05288b438ddcb330acbd59e4639375f3f14ac2d0e9e8b72de6ffc1d217ce62f997577f7eaddbe4603541b132cd41f2f2740363d9c331ef22df92029d143fc8495ed0152b918aed7ff22f564c7cd94fd3fe4178c90365ace43def8fe30ab05c0e
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 83ed1948276d689bb7fde814e67fcea72c4e3509c48873c3e7349a8fa1c08ae11ea4d814d8deb1021eb8b8ceec342cba5002a2ca45d5f340ae1aa500af4c7db120d0402c6cc8a840404be7221bbc46ffa10236043e5ce4415d3ef1355bde26d2d26eb7127326d4b8d671bb96a08e38a2c1dcc281830ac77202903a5e4777ff02
+A = -1be86e7c87827922d2e8a06e3cd6b64ac9a280c525749bcdbfac4856916321a964c9346d17465378251e6eada42dadf38bc9d7d87367bec94ebdc21af6b1302e520db08a64ba6b39920683725ef02b011a3e4ba46ef0eefadb98582cb911d0cbeae9c231b5e432c
+B = -352059faf97b433089a688c702b97adefd0c91d51a0395647f822c6762fee3287693e302fc5a5584a12c048dea1a320cb96fa70b5daff7c2ea21d249467d14c6bbee15a1e94c030e908342a939fbe8ae0de58cb6d6eae7758485e392ff6d5d64465b701692c
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 402525e19b6b68942253d1a51fd9b2ca36fc84cf938d80b3d52fd4302de142b9d93d1663e89340fff10c2b5efc8cd47fc3b5cc5ccd49a6ea3038ead6454bf190b7f88f52c56bcf00c6ad5b0f5dfb7615915ee8af137dd99cd3d21172ab772f36d291a6856a8e7912750139c09aa024b930a0a6b9eccc83c2c5c0ee2473ea32c
+A = 65e5db532ecae639bd56dd63045bca39b33b4d70b2db82ca3d0ee8ca436e671828cde80217b48eae7487fe110830589ab1be889f1e1463f3b0757d529b2f0cdd2ac92c35e8ec141885bbefb6040a3b5e00e64a541913a38fe05824a929f8c5a2c46568c61989c3ca7
+B = 1d9c73eef8373cbb1e8393feb26d55c33a245c33d7031c234abffb2f06a1601f7f3a79ef1e8664c51ce5dba5f5aaf3b9a9e42470d381219b4616ae93c7f6e64792d23bae523b6a224c1f714ebc82a11f9be42618922b8d2eb7b55e4d45572e68a19fb0ba72228b
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 7a9cdb5dcdfb6e04351057d731fddb9e85f41eb432f01c0d980673d294d05ba9b0180133a89930e74cfce78ed54991b494a19e7f80f310b85904784cebc5639bbc631e80751807868e7fe16719e8ffcd1f2cbd1b9f303c3ed488b647670be3080668b5fa0e53b6342c33c87f0ca1efe1ddb1c877bfe2556aeb61805b06f41343
+A = 1e412c3d66aea2c503f3aa5dbad368a61d969a2951c0094f9da32d2794e47f3bf4c481ae23636baabdebdcf0753d431426b1865e62de8eae7238a9245d62820ad7f17b5380d701f5db776cd4e1ddbdfd542901731ffcea5bcdc247fa9c83f7e08a9389e5a76d38be21bd
+B = -afd61df72361260484fade8b432713eb740df83a401d73492883a5139c918d5c911ff5dc00140637da1c6acfbab4b0bc8fc1f337243d90beeb1c2a083ad8069494c73a99372bd38712a5b5393c779ec1915e878600e0b48157bea44ca8e97c6099c4ab07fbda57d1
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 712580a1ffde78c8cf98ba71843c8130e835fee3afbb45e372d04c04cc388e403c9efac742611d7974bbae982c3aadfd1893f5da280afe0c1db1d81a9ed73b6ed9b7f05a20ce828316103259112d7754560d66733041e9470ae0d4dc95fd0484bfd56d66739f38ead7efa4051187ea41f7bea8fe5d958a29af41328246e2bc35
+A = -47c5755ca61ca8b7ea927f6fbe347f1362915548ab38c40f0418f4c9ba4ad520c3b2469d9ba3976669dec0b278461bae80eda53e9d11447512963e797f45460f74678acdd69fb9efe3897913b6568f8e03a6d90b4cb5bfb06af132bf118574b70e6bd2f6d6cb4d0089379d
+B = 5bda68c0a64218d3609d75eb4832d5468298f19498507d7d515f4c410f04dee535947571a5e75f1af7f94a5b3b05fb742fde23e7cf3f8b3dbee0a569e5a36d7a3d31a26c4a48a299044fd72339d2cee1a68966c851e76b93ae34130b75f4abe4f2260207d2254d23f56
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 4a1a514aa4d1ada84fa841d0b668930c904783fac521377a7d622201867d773ad23dbb667e0d4181616358f3cb088cd157c8e72bcd03db64647b37aa1813f870cbb0318ae0a3667f8e6c19f6e0706217646ce633f0cc8bf4e8f0f4d7329a8647252ca6d376416d545e73cb9a3cba40f8f9465d85d57c2481b84b6d95dd42d50a
+A = -1d68bddd8c3e6b78daa0acfc63a6f39e97f19527a43f6cdec47568d57b47f4e4b7ee88e4a28d683b569e406ecd2510351dba25f10b9f7c82d6da16d848bb970cedf7675e67937921bd334eec4bc8fde83d67aca57eec804ce22bb342167602fbff452d5f0f2a7f38b576e1e50
+B = -34d219765916a4c8ec843ebee9a7aa1162974d41cb4d6b60532513608452da9993749455d9701af6b7b6c7454d7f2fd5c344cc938baa5259301d4b56ae8d25b6f6510ae6bca114cae6791fa5a9551e8a405f5b1c0bbfc27138563b2d64f9a4d7a8f42a23bfacc3f1ec9393
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 3fe24e66e381eca525b24cf767215837019f44ed4fac6ab118d02cdbd658066505ee5b0feb7af51859992ecb97d727121e38873f748a61d70201cc43228a7732156a80dbe399e05764be19e37dc1b93222bcdcbc45b1a4817460f7021dcf1d70e632bc6a306628790201222bb522f4cc80adcc907463a539b02f74004d42adff
+A = 773454a43f495959dd55b8a064d70b1b1ffe45c084f5f9553582e24fb402b564de68e5379a8d9d02af101594e717a6c6db2e7173e557a64d2f28fd45c4e06041deda040705d99acacf8086830af19c7ab5e27f91738ffbd937dc27e5b7869bb6caa12c2d7930366ff75eadc570a
+B = 13d884a2396268f1a8186748a15722156a172a56dd3d8c77b9cb7001b6ee06720653507eba9bb9918f2f699cb37f3b5ae514f5180108a704647f19b0fc075826153edda66dc1105c1008ea8ec6f8c10057f8e8e479e1a1274edfed9ef719b30827a30f26da78820c3696d01aa
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 715bab8708e53f76d2ef2afbb845bdaaf978b54ce25f84dbbf9074f16d30a18733a02a4ba5d7b092fa6c25d3b9b0d8243c743910f1b7b785d9cb02343fc6d59eb0817bcff05646030ce4fbb2b9ff76781cb1af66b46553d365d02c61e677ae97defe92d057d4378dadf8cba9824b0022c086e0d78b5442bf3d3263ba22c643f7
+A = 168186208c734383d472374fbedc2d5d430e85690a4881b740008623120a4f7f83b2cdf85dc28bfaae5870abcd7ff1bc782ef11c78a75c99d41f8aacb52fceeb5f10266dc65eb00b0868937340146d8850887686d54218badb97647a6d82c0c6650ca1f9078d73fc6222aab95c2967
+B = -9711e5b3965654bd9427f79c89a0b3f3cdec1c857f4451eec236c1f221bb6773e5dcc30e7381a18a813ac2b03ff4a4ba679aad41e0e5d7181d4627f682ca2dc8af9a8b4f878771446fb225a979ef9c7e641cac819c307c8dc50d9c1ebadf912ec7c844e416f95b546cf09391f9f
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 2714b99dcde70d6c3be8b671d78abc155793f13105fd4b7c5d760a4c68ae89987311dabf2a9238d18299f983b8aca69a9ce398fdf2c9775d90b11b3dba17bcd8edf661efb6e9c50b4e37553cbecb54eb214fed1d0847287732810e550a4c86b51d4e5da1cb7722ce4317e69644620ad806d6d1c94e1e3fb4d87de6178a997453
+A = -75231ed37f1dfa4487c9fc79a6f7b36929fdca086e42ed41f79430b2dff521919236fe415ccce590e1d3b986e16dda866f3f0d29ac1adcf55d87fa5cb67dbf4693293188516e360bac513303769c42181483fbef7abcbc4fea1310c916396d29f37d9058a62aead94511aded7c4b8de8
+B = 5aadfe65df0e5b877fe45d42d7ca02882cb6c686d486374da5ece6f87771675153c84d74b6f40df1db567b7e1e3c60c41d21816f958f5576fd2ce2f84a8c3be4749dfc7e5561266b7c9698c7581292d0d813cb77955458d63bf94ce87472924c4ca79504d1ae9d5f025c7a2504156f
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 6613b1c8ccac0cb8fe2f59e76fef4dd05acf1f1b2bfc20aa3f193622ce3e9d4c7824ad544477553bc68f05f0b546e7c1ee87301e111af7929d1f40525291b88e211db7175f4e5c0953141914fcb4fb951dbf77442e7cb28fde495704f1b5141de1e50fbd0e359d0d86ad709c8f564c84dac81c7602717c269219ab1cf12e809c
+A = -1bc03897b02d1edb633e2c019e40c20c1d89a210b0733412aab675563fae8bd75dd7e65988cd8df4d9b343586e27f548becdde274f62dd421679554ed9eb127e527a69d69fa8b17aac0424dfa2a7692d1e63617ea45564b55f01a70325bca050862d583cdad96c4a2e123d0ed827348a745
+B = -3d5239dbe7bb3dcfd8027204eccf5e9444e68d322a0b0c535a203a1d0c054e7dc1e588bacb891388241462a5d2b43e6cce34ce46a23e6ef29670603d31001374dfa347dfcc794988e58945d0d2d17da6565cfea559203dec119fc357d396f65b296deb07686b0ad2d25a13fd4fad88d2c
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 3a7fc5680aae875b9241200b9f4112a82cd624ffd9044138ae3cd65200631ee9d7b918fbffadcad7e598791a9f0bef3e23005d6bc0048ba92461283492df3bce74c66e417b082ee052fd8f808d71f3ab18f9ffc40f8fb51ebbb936d09c26a3514bf868141f7cf238c1abb3d88e5d50dfc188902254f07d63fb8cb611ef8e4149
+A = 4a30f32d467b29dc83b40bca2fc4ccee5f08a64069cb87f20e63387b2219b12aa312400c4ca59608f50a71d2535cde40a6d248290793fe01693ca40b93a5cded2dcfbc9aeb36e187c9d650782d12bea917daadbc6525f266e074037803e4b2f300778ca8dcb304658cdb502c93c94a16c6261
+B = 1ca5e5218dade077fecb81d579e1c9290431b34df5ec84aefaaf233d68f17dcf60ee010db26320685af13a821b6daa9d73d8f3a30826c3ae7b2bc5e219cadcff826283cd7dddd04cea7a5e0585d6e7c9f23b27f14ff815fe53bcd75fe700b1b91671bddaba737fb43bfecd2a77e5b752a206
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 768d312175ce7d2601f30bb38339f046e4c2ba5c19ae5f7ca5a562cc2462c579fce9985e9e8afe2578db542c8d9e7693e0c74ba161334b249ce720d568e9c18f09c87cd701e6f2080b752362f2fe6252a1d0caaaf1fa18199776e4c6078d89d520b9c63db159d5fba7e0838811e68794b1413c248f3f7173ef29eff28f15b656
+A = 149353e91bdb70cdca8f06648388508511a64d05221305cad7187ea40d9ccef91fe17ceb1e79667bf66e8e6b7a57faa90a83bad119c02984a8f860bc1f23ffd33d4ad84896610301cd2e8e80a5ca7e8d3ee63e7dfa459793c9dbaef3569eb4f8a021c6a3d032a9c94d3f6b8278274d0088a98228
+B = -a7cbbb6a434e4b022d312ecd4a45fc7fc4d3aaca038cca0fc56e529fe7119ccdddc8e76d51a2fb862ad3d27a16ec8a51e5f66b9c7fdfbddcd05a0ddea14172339cee340c8c651eb653c6aab6551c99ae94f26116e15dc62f2c2e63305bbf84590fba1327ee721150d46464d7e22d45d53ffd44
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 763912f4b16549e6ccd60eaf7a0a1f64d9c3bc83e4a9b87e209a3959ba3cf609cf47183bc543f08e346b6e12b8bdd5d1c07c603f74b286ad432d58d7001299ec7a4dcdb56ca875dfc7ee5c75bcfe2aaba14959bf3facaebf8df92bc12937cfd4a4865b3dd74b243ff62ba256d110b01b4089730cf48efdc66fe272f9241014e
+A = -4df3899b40d51c83dacb442fb143835bcdb550136921df78800f0515a6cee77fe3236dadd2a0800b79ebdaaf8cf4aba5ebb60cdff3e4b4531ecd0903c1674a4559339123e9f09158080fc53c4c6ae72c961c8da2f357b7c05368157b4956e592c41b25642457651abfecb4fed5d9fc1fc3825b772d
+B = 450eff382e73f2f38bc3a4abecd5f8de478f80a6b99fb6252173c90d7099629afe859442bb1f796855ee9a2940f21d1f9dc44f462edd74b479e1f2926ff6faefeb55adbc6152b5c97967b1dc8c44dfb85b5e02e870d2920b75422c8a427e99e35e2a4be92cb0ddc04cb7f4044f716be97b36f045a
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 56ef57d56c6d1b94cf0fcdedd3611a8ee444c2e25522b9ad175587619598da341916b183be03b1e73be300f9969120d8f3a23750cd8c4ffdb87124a2139e8ff2c15d8dc944bc3c3a066aa16dbe6dba4a74925e16acdb2b2e83cd7fd5cedade6a7f7409a509c00dadc182b2860609cc9a375cb8bbdcc350bcb2c0df9b3bff882e
+A = -143caf995b7783b1316b5551978727f06512fe114b419c735b3381ec351275fb7fbd6ca88b848c3e8c9faedebd6d084cb8a231636f68f6803d14bafd90534609d4a4ac0fb953417be7fee4e4cfefa452c5ee5d1e1b97ee75f83cca8691a0efeaa8bcc1f1e0f18c0c5d6c7684c9da6c9495d31a32f40a5
+B = -3025fa05c55826c40089b12741b7d406f748cabf692bb0227519a124653160142633700e3c0676000943556f97551171d231c1a35f7b7d8f96b0366eb74942466ceb4660f09aecb2fb2ac050ef699eb05bd8834a2ba959ac71550b5c026b9093c8cbbb7c5fb9390a7818db682b7c11e58996c9d0add5
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 42f363c34c20c443c1ea7a1c54f98c6977b6671164a80308000533b2404a7f280adb1f3b98101cba25249131288f7ac68b0ae2572c7777e7381c1f4d05fd82188c4b1ed5636652e0bfca4d096bbf4189a9358b79f6b6333b99e5c4b7a940c2f7d1413bf9f47a2ef66b620b5e220b2c3dd7267452eb1b9d8d9cfb17bbfcdb6abb
+A = 499d05de867bda3118a8cb82b80ac91fc505e0fbc6c7dac5fb61713cb6e715f56a31ae8af4b400461d7ad1687a2631faecd90d7829f67d1b9e36ed7d55704b3f2aea65eac061172d698384daea710ed92cf1140cd4da427174bebd173c2ff1675b2407a84649b0a318602f33105006fe4d5ed8d0e015b99
+B = 17a426a12a0175bb46bf7a7e727eb5238af383cee6f4d5e2bd82b0d29b9fed35f3d8ec95cfdfcac49bee47b25d3b5f375a3340fa83f8dd9330a593a974d208debb7e567e59dbb7251b54e42dab2cd50fc63aab050a41bd88282373f8195c94c35f61bb48aa921f574cb4ff0984ccedc070efea8c46e5cf8
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 2f03374e9596cb56cbbd89794090ca7a4b437f4c05fa38a09db60e5ca900b208fb85b52f71c29fd35e62c9f9529d7ffe46fcc54607ccb07f6f8e13fdd4ff1185033ba4fcefb1ed4bfc42c3ea9f05276767d8dc9b7b4aea4c8bc0ce84951d1f590cec0751f73667db19060e2bff64da30fc048a1f5700fe3f489920675cc3540a
+A = 1073531f678877ba854fd1e7f857659614c526847ffbe8ed131dc9f2ccf69e1f1e917bb44a7b905f7ff758f61c06dd59ee09567d9f0df2550fcb98b776ed1381ce052988aa08fc5153e31c621c6a51ca61b386e3a9163a5cd69608b3e200476a8ada35d906c41d044bafe71ef5c6f732935f15b53bf36f7ef8
+B = -de3563925474e5408e245184b57f328e265b6cb62eedcaba809d8f257eccc0a457eeb82c451f93af93ce9f36dd1aab386e7c02b356f31c2d170169dbe15e70cf5bb9073b35fe0e7c7fd7faa91c5b2b0740734f12eb741a9d9ac6dcf7cff59f6e16324ea39e1e07dc5b9daea27ac674dfe5d0a5790abaebde9
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 1aa22f9013bc1cdebbdfecedf710c1bcaa41c696a3d7dfc1c8c601fcfcc1c85c8cc24be7df2cf3c7311b3b17a4ef2dbce545dc467d2a92d371e02a196a9977cb9042b236acf99d8c0d34a1c4dd8792d3497cffbc87c397ccee5d01fc2c89ef051324a7061e423720d0a3821a36739797393bdf7a45b5fc600824a17043312bc
+A = -4fb2e3fde2a0c653104c077cc6459c9234f86cc2d7b317329b68289826d3e2b975f1a69bed1a53418a0dd86e1b2723f4c4c5a29d003161e667c2315ec24a36f8bb5f2eb0a94f261e791bb829db685cd0ec9e1e301dc140ea57cac1da228124ae029e2b8ab1fa3ab99c55a9ca94dc7b767162c0a24af851fbb984
+B = 63702537a07971e399aa9a1a0795db052d6c8185c79107216babe11d6d8d472b61e604cecf9eaa6d44a2fcdd1ef0b6b52226ea0c6902d929b09e16576e6d1a6921765b2134c5d23c69ed61f36ea9a5552e5819350366240693558fac7a9d09ecd3702076c8c758a4bf6843fa843dfd688bef3f73515db31bfc26
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 6acb23ea695d4b60cce53079390da3cb3a4bc3a6486c238c421f3bf6c93c027a0475f656c3e5435f0211e90458ae81772aa956ef284093020f7b58ccd9373f3fdd39fdf4adb8dd64590f4a7fc05238ba20017bdad07f5f9a6f076b71554a7741bdd8c98ec68f8fee88396cb1f47c64d6da4c228caa3dfc7a9a1c032a9ba4fedc
+A = -1b2496ef929bc673042996ae80f27c6bbd33fa7c20580240ef8fba985d1a6117d6e746989924e34f281e7d2509175d0773dd999bde16662e88fcef52978d19cc45fbae3997fa580a66171d398f4f0e7605d9f4aa4f728902cb886e6b6dc9f0161e7cf1ebac05a09c5a1bd69a92273280758173fd2c14550ec221275
+B = -28399206ae2820d26a5aa0bddc4903776611d08fc4cb34a22a8bdc2a19e9f8cdab94217f346a8070a4145f989e1dfb49cfd100267635af0e062872cc879c534ff138fca603b5d45a6860ea85b6de37cfca000c81fcda3d14ffe81da919b2a25214209b085bab9cb511889665fc845acbcd038711533da171d8308aa
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = c012c4d17ea4c95a360218adfc3363f6d89f5aa524aec70049ef94c2c05e59a66ce01e25588e164bf2412f9517b7740de53d037e71ec3a1d426f05b18b128c41a878da75421e8c8ef3ebd5effd40735c00818eeb1ec63182b44e817403c9f1f6c1a0155334be63a3a15109be6d45ac0d1b1ef5cc99e9b284b00c487d91e5472
+A = 796fba6276fb7129eef2d1572b305f63d7b8c49371cfb3b2c67b141071e66ccdb5e321fa2c1bcf624c77317e2aa135e1137dfa46a34c3ffefa2fa3e316be81f45614d422bf86fe4518c2fdb7e416bec199de033cb5fef7f193a80c0f0e6ee924a12c8f705f5ed3793ab770914924b45cf2578bdd09c701169f0a881e6
+B = 12cf934763127284e642ddc232b1c889cd86617307b6ad72a9fe0d48befd7c5c5370a0062dfbde2add256dc0af850813b22320ceeaeed347eb9319bf22320b2fcadeb51c4bb26a160f7459fc172c27a91d367d5a232d00cf7bb778fba83afb744177bf1ddf45446baa035fcd0065f9b493d92eda37e9138f4fecf3ec55
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 3de123bbd50c35805b943e76e97b7e664eb9feb99860750bf97e275029e836217375cc1910c13269ffbd0bd72bb82ca445ccc4b693742a96d19d3dc23f78e5ccbba46d9ff5975f239551c36403ad5fe86997536456c4a5ce54807c24e3b5317b1c7b2a1661aad85b63859d427f0703b460cf72b9acd3f87e2e69d7f8f15e972d
+A = 1d0433d84f1de082d2058475e0168ceb369013a67aa9417f066c29c28272a0b3f8be5ac7190ab78591ae72a1dc8ce628c683281a9ad563e134387b9258b9c96d2df288fc118a8cff068ee49d635343772c2fcc252facdfc93112358414e1734d6948b909b53e46263e9a0cbffa141ef77bc98e7fae8ae2bd85bd875aa7c1
+B = -a31a574d105305e47f4fc00ccea0cdf854556886b524901c22e6f3b59a42915932ab209a8d5da29ab70d1472dd5378d9c79a7447d17665f9d1f1edc1e545e417cb65415cb8a368075c16264f42555d26e83adc704b5c126c6129318a8f394af8bdbb32c8114470d11b2acfe806acdc7b96e1e348a32ff96a988de76d4623
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 770f0c3104c0f3395fabeb75ddfa2c21a111d23438463941239f7c63e4b6e6832b84508ebf3cde1d90cff0a2801beee05cd5118f9a726a987eb58def6780be899b473ea71c697557ff63a4c6db894e9438595acdd98abfb529d75bdf3c1d619d6165a9edb6aaab8ada50b61a3a84de654706a9aedb7321b0523558e8f18116fd
+A = -5fafbd498d610e9f29c38a5c6c262b71672fe9e9c84f0f071b549390353e4fd0101a059b7c547007e27df97761767302458f1936395142ce5776b0959fc5ea039429d64ac5d50c2ae0ee45d60c0c50b7ceb4ff9853d57c6e883f588017ffcaddf5a1aa3e23ab068877a114d9a2cf742f01f5f5d611424c8ec0d082f5c165b1
+B = 552155ef110c126afcb87dd20251220c7a43bd0215ecd22249a21c93583e120ba6f046c6fe03086ef3c97311c4d520110a450470a473d8633e3560d2cb44c25559af07516aff50d6d176e8782c06cd9aadd3354cc695c4ea8dbf85e01dad479c8e8438154351fd5fcc6fc7e9d2162ce2f0179247f756f0b9b34b54be74821c5
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 2e9ed66317734668c4c354d720a011fc65bb67439b2ac9203dca65a8f567682be40cbad4f55a83e836f1fc135596b624e4327acb085a61b6398237fef5a6e6560b488d4a673b5ae7d734b896d9647d71087621cc81e94d58e01fc2cc2dc775f9ab1b6031840a672fb715b77bd636e3d87b4949ec7bd60721bec8f9907b7c072f
+A = -1a6b046d691830d33eecf2c53953676ed3f6fdd20c2252f6e915052ec28ad1fbf7a5f264acf87ef8ecd515ed921ce6b85017f3d8a8f1d14f269f31e3307c6f935ad468cf012a912b0650a15106fb949cbae7b36c9cd496538bb0646a7a28989dfadc719424519bfa43cd8833d3a748c758f813881d83c98f7cb2a63c2a4d06b8e
+B = -34f87db0f839af6e4c4bf146789db36b3d0bcebb9bad81db690ccc3a35070d8830c9745b2fe730a1f3a252612e7026bf9889169b57b8984a5479cc4cdd6844ee3e150a2e7bf7680eebbef30e0591c895cc8b2ca488d489554f2339e2f55598717ddd8ce444a060cc95cad9eb478491ee8d3b8358c3762a970224abdc1068af0bde
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 6455ff7c12bf3bc37120fe3f1302a9916a6ffdae6ee6a37fc23ca2f3a7ad910dc0e1027d4dc304a8eb4eccbcf3c87cf52a13dde472c07e2df2420c1d36bdd5e88c3d76e774ccd2ecaf6a0ef55b8c60231b1348a738f812a4fd9d0c158fd5a9fb19cc7cf9f000860d4cb6509271c8e43ae4193843324db02a029beb58ec2955ad
+A = 54ec203e2ababdb0348135c0679eca2a8e778ed46e53f195331a48d3828e5e40da804ecf95eed819ecefaeb9c5377cc1afb1fb220175990d347981353e7d90637adf8cbb16812af8a3783dd312d967a490f8efe3f23746929cf2a5a8df58e0b878367f6c5e4d3c086f947fc2bf70bfc3a0008a8bb1d7d83f002930640b6ed94c334
+B = 1311b88a05224e15f1465c8da26784dbaeae84f818e029301ea39a982f714c64312f9f02d094c401abb6a89e8537d64c178637364bd261f4a27beeaaa901cc7b3d4e36ebcd9453cda33d47a53c6dd1d121dfb83a222cfd16158eac23482c8abbfaca59e765f6c1fe871d884d281793eb19f6409dd6bbe4083bf762ef24c24f0127613
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 64104f6c06e563ec66de4442d35d88117f2535edf9e012897f44daab5a1b8a8696f84db7a68d64ae24a394debb993bf6734c9df542c7e473b2e497396ce39a064789d5d7b339b65766b002a18096e7fb9f312ea5997c2a85463fbd6fc18f25769ac2a2123ccb0e72f14b0608c4c22add72bda138b83f986e78d5c9da31b15b9d
+A = 145f580c2ebc6c0354ebdfdbb1d3d7fa17f0b55493b0b9a11b71001c840a967dc77f0206c3dde161b5a773a6b5fd9471fa08b205cb6f728e3afba440b55268d6a9542e234ec313d53583c580a391d8da5943f4a900b279ec9d8933f2cfbb260b74ab714a8b9a1af3190d914b6e42212df84f933a237728a5fd5473ce2e272eb82bc83e
+B = -c67f9b9295dd5844307b8fe3cb9c1875257258e4be6229ab097e148c0175ecd0de4d84fe03c8da6e27153c709c2526092b1abc73b5fb40f1d4da9e0f3d8d2fd5f8a4e6f3c30befd80e189b73fbd77e8547b34010d2aa57072db0f00537cf3ced95eb517b23e0c854b4becce128a575a31037c3a9e106a476d8b0277d26dcee435cebedc
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 11913c40d577f70a5346ff1cfdca492ff52b640eaf257510d311872c8df7ba9756973da5b9206c6e5254bcbbb4bcfdad5fc4594e41ee44e77f168e2d20a4b228480a9908b102dafddd039ba7f7619eed7057e8af3a72ee491a61dd049bd947e5b09a94ef94d5f336945f47104fddb8493ef22fb648ff5376b68e96c0555d74ca
+A = -5537630b7cfb8daf76d14e617f7b69f7b75b472801a9a818179d83ef2984d0abc8ea4214ed3d3d2bd785060e9c2819e861d0df760fc1daca8340e8a2c997c9ad201d6d2f12a82ae3883cf9f5c51ff1c25277c28175859a7b8e5b6cdec7cb3875071cbe415bb698b85cb19f617162587516f93c728ba8b2cfc19f238e2cfda115b8ec0431
+B = 597296cb27080f33a24241c1e98fdec32f7a4013a7340d367e4cf2a521cd462a2803109c27fcec353a30dd20053a1f744394fed75829e8396f8de434399bafd6cdb6e0ee81343f0cb99ef3087a7c69bd43bd722745a46cdff0c2c837fd87543c3c63df3896ac101a145b478dc224644996fc72460a89beb5741b91a42f2fbaf0d62c099b32
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 42f420adf5c6b32ce53fe23af4e392517e37013b8c3a7d035a93f6ff45142b0b0bd5525cde85f9b7bd9ce219bd3514617e89ef4d9279cb9a3e89e44f1994d72febd23ffbdb0a4f19cb76448199b31c5cc6d7ec1e46fdb67be1211c0ccd93c123d56ac0d9cd2ad11f0c58c713165003495b75b60665047ef80f6a393474cb727f
+A = -1c6ac9565d1950ae6c55025f76e0a040eed0462218e97aea87208ba879acedf413ffd5e63a92dd8658cf5f49d633ce7b126091a55701168ee4932db004dfe8c35c939887fae3a892b0b04d8eb74191bf8fdcf5566b4d3796a5d2596b1e750f64201057ae60aa705edd58aba4b48f6a2e511bf5007a6c44a27e3efd5bf2708f7046c1fff7864
+B = -244f2a90a57e5d066fe22f4d52f91b44882b8ef76d1dafc3387abcb224eda4a2100239e729bbc745237f8129d457e98eafb2ede2f3afb81e63520493da2a5730f1170b31fcac21259e90c894f8bc488c5e5dab2c2635bc7b1ff56c3685607f6fead73a09f83a7a168c4245729ce5b06e482d7d3d72eff33d14cfe2f32f72175484ffa292a9af6
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 2239459025b257fd0b6659f54b8874f93f07f4d6240f8ad761c9da288cf1537d8bd001eced284bddf78edd611c7f28f1393c6fb879aab6e7df8eefd347d63628b1ae086148f488b01272f67ca19db71a2b284eb17e17aaf1e3e8f23ea253595de474d5cf47c16aecfae360eab7855868b8af361491f6ad96f893f9d3eb66d07d
+A = 558613de283911aea1ee21d6b926f531f778c5226e978ce329860682b5375fe5e5328ae27b00f504f2a2d24470d16c1edcb8e76b4d1a740e55538e79ac7da4b45c5299993513ec3bba7e7395dc829a00d4e228618dd348fbf838eaf0bd50f6c70253fb1c1c734a07d0813915be25d3163df13511f3675022cb85af7646c14ba5d13f615ded8e5
+B = 1f3c3c468146c29408d9207e15b25186d3b06b3fbf9556eff7ed7ef7788032d87ae1a4d2a0983902d4c70936c615d8c9ee26c89af8b58d60231ede54e859763237d5ac59af686300a3e92f456484ce77700557ddc0f93bb40e5d2e5117f2356ac7ffca26dcafb3ce7a5573e07ee97515b6b082fe75fcc9dccd76b4fd416e69a247fab2b30965d9be
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 7650985e7c6e5461268867dfa9782cd8154bd6a4bb5857d6555e9d9746ee79b37e44638940bf8d5e974911327f0e53bbcfda0739056bae2248015c35839f35e7e359e93d3a339e7af38c0cb43eac5b41e1406e34cdd4afd458a5d126f70b5d683415b490e0ad61269ffe7ea8972eda6addd447d97e60891e5099ee920e18f233
+A = 184845d3762ad1a9c925c51fabc7b9e15570a84a06ecef994910845d56869264273d75fbb84a31c97c27eb9779e8b39f6829638a78b266326b60546507f65128caaaf36d4e7f85939b75cfb3145e2b1bd8372531cda579f59efa0da9c95a8efc72faf326d35c660b4444627d328bedf50a919029dd164de051a4c0c924103e365cd640b9637d8244
+B = -977390f52af784b52c1d54e82131b072a1c308406e9b82587102e67c6f7145f0020952231a5f0ce9d130677bb5a7a37d5a06dc570a13a29673c8a9068f06242ac438806c37ec46136e7c1c1487ca2d330fc1f3c1f42ea51ba2805b74c44a61fb2fac109710dc3dae78a07057a753898d4e849b910f035bfd807178f0108812778345b256c7b59f8883
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 35d48c3e43070a10dac0e256afb83b219aacc0036f554bd998b9092ce3bf87bb5d3b00947f2c86fd4e7ab830502d15fb2d4e47ead087f5c779a9ba56e272ea86116e2c81345d379dda6b581e9c8f4df8ea56c78f04d4f7412d245e00ac645847af6ae97d5d2ab27e48cc878d8b510c2dc753f6ceb1b9e7bdd923e0e065a6c11e
+A = -76e575cc79d7f0c313a489b255e85d114f3933383cdfe75cfef649f639921eefb9b3b3184351fd0ad252c6e477e153ee586a0ff6da1e1b2bfd7e953e6dd778c849843fa5cc355b31f5529ca45aec81ba67a1e364d5a74a4656d266f7decdd47b2fc2d81d6c298afa2d1c39b5e8eed519a9997a14513537cdcddde0b5b41314476264d59b7d3f0e9a65
+B = 6b7faa437b4e8db8fba56c62eddb8a81e9090d1b6655a2185d656b2db0e85225992297381d653e707aa15f3017880b0f07abf3dc455cb09c4e551b3df3516c6db4ead79b88339fc33dda96bba76ff7c388363c36b67fd5dd0ee63f92f67549dd77e37e9902ae51cb58057579f03286fc48e3b7fba763fc5844c222e6a1eed9e1634d0bd034cff222bf147
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 445039f359b55eec647296fbff4f22beac09cad32cae79c13d591e314fafc2b77839816aa4f641250938865b0a2c30a10e23da71a6dff5985ebf3df4429fe64c327557b12d987ad9e9971f7c7b1e4ad01c94e1e5322dbcbc4707a959a401624619029558fd6f5b14564469b13146f9a2555916491e4d77caa70f51716b299135
+A = -18ddf976fec2090f7d1f4d41b8f875e56c813c04338f595d6e591b3eabf9e105be792f45354ee9beff997e6c0e8ec3fdc714c07b3466ad1a949b9d30da0115f5484c3b9e00c7cf0c117db57c3c6cd7434371c6d9ac7a5da1a0e2d705bacfc22f62785222d59bb5bcd3e3bf2df8e845953c6ddf1b546cb75b1698dc8e20bc611294ff288056723f1e46ec9
+B = -2cbaff39103570df7d85a5673b50fb8818434bbc19ab4e33bcc8289a4047d85de1b7029a5cda3976ab12e1d891b7efe3d5576bcb3713c597771f93532853290068761bea04200fcaf9b05d8553b960ef5e28064de89d9e5097d12b26af0b64beb40b33ff82a55af7c5838b44282917fd4342e2065942c724f3cca515d9142fb8e46652242e8f0ee5ae07b6cb
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 6727c0d0ecb4a375d0fd1bc52146da1242099d445ed9e87b1fad4daf8369fbeeec49027d88bd98efb425c1e3f73e412fb327680068ae57d4a53992f3759af0ac1b96a92f56c2cf552e6682d1fa90c3910bbc5c0b1754862ee13c5ebd62d5b98bfe8dbbf9bf53bf9ed0b967f3c9da24d4334b9f3f75314b429b05b8e27142623c
+A = 5cb6c49efc6767cf956885690ef740337aa71b90c1d4b9b0a9e4734de0c0c50f2358fd45aeedaca6e1dd0fb510bf097bf46513ee09f3343bbd1c11f507eb61d51ada40c5d6b730561756480063f60caf05141bec9a769c241d367cb92fa8e229ba2e471fc73f48812a25bfc7553c395ca77b80443ccaa82fbb7198f8c35c3b5a2fff977d8b2a29cf9358ee1
+B = 16ff229a0e67a410555dbd4b687f1470ec854ef67db73a902f2d19953c55071c4a26dc320baa8571586f1fd54fa490b0d87dc83e5bf20b78956084275518b307ce69aa4ca1079e3aa753d97fa1cff62e0b5f3b99d96a24e411fc3a3e375ea21b7b35a578a72df68d28286fd9a324c06930905f696424780083715f77961532bad061f3901ed276a9eb6e81ad4b4
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 6e9947beae4d934253e481d27e854a59c4047eeee4fdc7df7e174a8f045776109c148ba3721685195b8fb59263def88891c5953b5a0ae85fcdbf02abc76f4d3c0f5d9496327d063ce8b3ba875b4f119dcd8beefb3ac884c25955af61c35a69d0670c3c349564e5b84f7df4252d6d3b29d9a75f09e9ef79f0fa9f797bf75b8ccb
+A = 188785951a3befcab56128cb6fb9576bee2412e6cdd7dd1bf5643babae83c8011af99aada405e119c3be33653862440005be994bf37d3802cb6c73cc312824c56841004c8e871ffb560e93a1d222c93d63684e90a91394b9c8ba8cac27b414bf818ee0de7217bc2faf099783800485ce2e93612ce39fc7e2f1db708bf9bb032d92b66159073fecdb2e0257058f
+B = -8dddf094f30284c213577ceb7f1b2efb1e4213a548e6aa840f801cd6382fb6d4995908b7827078dc3f46fccdb9e071bb8531ea8971de0ddbb714d678bb71ba9d961e58cdd5f41b8472146ff9b814a5d1d6368bd94812f8d38f235f39aeb2421a57499fe7102c1ab167df7d33b32a6dc7c8eb8f4babdd6b6c929d1ebd9bf4774aa40cefbf136feda7b6e10ba4dbef1
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 3f4a8d90017dbe8e77205e65fa7a0875a1ace6f3f215c2974e47dbac779804143da3dbce92db391c2614c078997c7d1a15439ffb51a5787f5bbaf98a4dcef576a6317b9b92dd8141a8fadc05d3be7c150630668e620a4e07b4b00519f34e422610a160de112f1ab8adf09a9169ba95b60242c89196ac6e155021dd84b3054511
+A = -65ff4322f8e46e03aa6c1fd10a207a5e51db6991bdca232c0dbc9d73ba77fc485d881868be7b14c25b05bb59b7f5bb6c4b2a7d53f35d2d7af282a0423285c5de656429ab7d3af7d92837e41ca701f527845e98c2bfcb51647512e6abc6675cec2a7d34ce55ea4dcfe9e7a8397d45a7a3e73bdff06e303a8f04ab6285eeb1bb78b1455931cae203078eaae826a6e5
+B = 4d936b603eba3aeec3d3f1f9acff02a0ecc28a8ec64b6bfd9b153b1bbacf4f1e186d3deda8c1c81e759237921cec53251250e3e838f5063c4a1eb6cc93637f35aca10b965533d18b713617a312e74c446d63eccee93cc97e3723ab27357ae9b3cbfcb3e2bfc589a1bd582480e776198df047c3ad85f611ca6fa480c70aeb98af02f57d56dc9659b2a6bee222dc3e0566
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 8a7f3cde3230af1f1fc25e0c0e9ebeb69161d3864fa5a03e5d7f8c82d9940ded285df35c008f61cc151b4578e2677b2f2cff3236935de5bb1d113597eee448496fe29bb18343687f6e9f1c783863e949a0954de2993d47a03607423b458bfd18c844ab57e9e2a43930df159ce8564edb5a2a37a06425626502e3ff9363b73c79
+A = -100f2984dc1451fd7b71e5d290e4b7de2d26175a47b9bed524fae02bd5abf96faba06e955107329559bff3805689633a4a57275732bc42183acdc792cbf7b6b24dbdc8921b73c0308d0c0ce5d8aad75f7eb16352e67116e859b323deccfe5d9ffdd1f0265297bc9eede073146a06acc3c330458b07b8fd0bb652c7325cafdcfa165f69cd0de8b145d49ddd576fdde15
+B = -21ac4953e54347a56800d75f6feb6ad660b0442174cf3c5dcbcf6528e2b5da95a614d3a8399da14507df4b8eacaddcddd627b10ec2dc5fb8c43d96a38e6dff37189ba275afb9484df800587f4953e327af71dbd58780bd5885b4cdab15ea0f2864f961bbfa9bba6b2d9448443af87c0cf178990254c1ae6e19003b1621f3240a6e5d0a3be2deb5dd253f5e1f88dbb60b522
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 76f8b44df8d8547f8b3d8537393d2805c699eb37d19bd115bd5539adb6b6a00d004def3b7793d5c71e0ccd2b7e9fb87103c1a5f56a8f18ede1bfe1607a346297166596aa78dc584c7c32832e11b72fb4f2d40ae1591f341919bc0157080ee8febb7fee5461a918d2178fa407c37a8243e24206ce2c19c3addcc2b7c3c1912b6e
+A = 56f4d397530f5c90203df1ec799f82a0096888fd370d543e33b5a2c8042108bb75a86265204c40fa5a9a44965ad2fb41896b134ea56c79699a230f38c0e3fa4e5d346cda70e0253b9993c9da5642f4e645a0d96cb732f8f04c99a83d1f1360a385c6e1a972b89915489245ce58830788ce23b9e62d6b48a7ff9a486614d6979033f7914a0735d201c6f29e512374088db
+B = 10fe818f6af7a95cfefb0ea0726f9a3e0e7c30dc9785b1fdf6e2b810515448386c7efc656479794d389e109ef3efe37fa6124c5a7db3164268da0d98538606c57bd2f7df9482860e81f272a27c727d7d81a66fc1a9bc8c385cf02b7ca6bc7ec2d8d6ba1dc992caa216d02c9bf0fba8ee754af77567c6e275ac1b6b1b36b065760761300d156e40da8445712b8fb206c0df346a
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = f580f9d2438b22700c3ebb23d1dc296f3d33deae2d32dea51c7ed3a0ce7b06af11046bc1cc279bb744bc31e7f822c17ffcc5dcbbdabe213bf97bb85c7e19ee71a513bf59b25b3b5787e42e9f3ef6aa1acb8705d69924a107b4f88e0cf9276c2c7c47fa4bf56c4900b557aa5587418f0ddd899630ad3ff678b5b907c07247b2b
+A = 1017a4fdce8bf41ce804b7c9c836d85ff6ee899807e1736bf0357b015b701b9675297e5ebf588ac6c295feed3c6a367987e192be0d89523ac7d64b0b9576f311b5b2705c5398276a52f06085027480c2ca72884ad7be34967bcc6c8cb4ec4fb761e88c16866a2e284b40180eb14536810eeeb180ab701ec47ece62af65a0753f95ca657e7d04ebf3c3a7db02993da9089840
+B = -aeb03379fcd4e87cfd18957a72fce42e016951a72b673a9e81f666b3cb20d2bba81400ecc2b38601bc3270eac46a633a1a6b55c50f00e9d7fc8a20176b93e971cfaa4f41573b17b8ccc498f8a3230825afd0d7f102daee347a9d59cc0914ac8689c1d8b39ccef1f3def44054307a7cb7706535f0cf4007231ba21696424c3d5b42c8e85c278f7c2e8b7d1787effa601ad357eeff
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = be05efeee19cc91e30a9277a6551aaea63aa3861b63f6061efbb0b92296e09f4709529eb849d9f40406fc59c526a4697144cef9661b556040458940ffd6a87ed56cb073d2ee0e6d1f05936fddd1b9a8974a3088577847ddde6bbdfb3d69158d5b3899c13ec78fb5cb6aa7204efe308bbe0b52f18381fe838536707a8a27ba0d
+A = -669660e75eae9930dcbdb99c477c980869417ec9c0e8c4053f0bd8ae62d496daf7539f37af96fd1cfcf3149bc02b8182a46b413e3397b49d4b4d204491440eea65505cf5d33a8e797af08f3da41f5a0804214846bd95d730260c6545d51126278181719ddd396c55f119e84da71f0683eb6db8393b098b3a0c5999862644e073b4918b5c8aff17efe860744d85bc94b582d45c
+B = 6045f903a750b69b709cfd6a1c8ec9fc0d7da9c53a9d26fdb0ce9a17c6a0ed5ba633d6fc01f004f4a48cf247d61f7df609008ca5bdc8eafe06dcfa06bb67efa6a584b5a2f02768718a908978edd475a2d2926af2a6e523549a5cbecedc78323c5c295bc0b8d3e14053078492e82e339ea2c6301412a5dd7efc20da0aad0577a37d853eed820776e672bc6d23dc821b5855eabcceb18
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 705bf20b7d92e68a69019cfd721b27373c7ff22f911066907f556321371fba70dbcb9774d3a26ca43e44ab20c586a3c1546fc3152ce011be66e04a59c6631bc8bde18efb7bf1743b9ed75a7a6c5bf5a4117368b81b112a3cd4e1c44a621f534a11c426451ea5fde880939ee5bb28d9843730e284520a976cd9f60c94751050ec
+A = -17c1dbc1ad1d2d33dfe1af7b4cdc7b69fefec5a92656957e111aac292e44719c7c752ace33dc74a6568be38b576a5ba174bcba77a034af5fe101699c99ca39f8a3b0a20679e6d0180868a232fd8fc775089e185e5eb81585403f32619a2f4d857bb091a824a89de2e84529e5b0702b45771a5816c5a823d81ddc89f8a70cc3d3a0c6bd6d85e9d72b69d2713b61c46161f7f4700bf
+B = -2252b54c602456c5deb86a0f249f3982c3836b70a946f636b22fe00c6e3b91b94e19200a33087fe734ce9a3f92a6099ad03a95ca523b7edb9e1ed3464d38fb96c470464e1c54790cd48769677efc5e1d22f5be4c15288bc5ea1dc184a05fddd5e576b3b4962f37437b4f9709dcec374377db44c8ba1d8611c0c3ec35f9bba213eac59a047e78195ebbbeff941c7f862e8c80eafb72b1e8
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 7306e3172929c00c29ca1db360eb4ce82066f237e9cf6aae368d1f531620e9b61eb64f5b3e2b735a3b565587d7e955d052df94a20e4aaabe493dba2c18e85fcfb65df166cc48733632d165129b112598bf5e4c58dff662e558e5f71b25f36708d3ab6536b1cbdb5aa2ee56d9e019a9c3629185b188af909831629ffceab634fc
+A = 6b31ef80767a7693e7d0a9ecce54beaf5848120f036923d80b7a0245aa6a46135e32314f3b227268e0bfa1f45b4dce83bea890526c7ac3efdc8e485189ce2c51597c2864c2d3664584be23559c03670622a53edc2c17b3f1a92640078ec35189dd7953e55e4da0290ff1e2996d164d69f1bbe6f5285ae89209d611a7d760e413e23285066eab8e126c320bb6130a91d67ef26d4dabd
+B = 183f06828033287497322b05ac08f62dcc5fa67b7a10c6c5a319c9a1e642754230c6d9809dcfd2de4bb9e360d6e6e1180f6ec6e0d4c6185e34ed299b6171e653521d0f7b8975ed5e7d2c51d27f9784a4b6f9b5e97379fcdb42e4df981462cd5bb9d0501f93f217d954f6baf70343ec710065eacbd2b778430ddc36a7ef0515f29d5fe78d8708d8ffb6c3391c6f632cb1bacb4ec52972ce0a5
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 361ce44d153f4d251952c0b90681a19b7d2d8df7a6c5d459691a80c06107b2e818f93f30f8dad352d2dd87b01530d51fd1c67cede9b1a6167697098e41bdc5dc5e7a3c310116aed0c7b5fd99dfcdb3517c13daaba6ad10879f600eab846cdc110d392d9bdc0e8ab34b317840a725a7a12ceb48c75e8dfeffe2947aa85b2a5158
+A = 1e1f2e44bc7c79a00afc3b2570d5cd27ad5ec9f45aa94f63f2ec3fa6b69077480212a1cbde25ded7ab1c6cb1ec26d5905948e5c1d6d109bd5047b1e038666054606b42e880b609f6f00a219dcfb504d481d6fe709f4362940f6c4b6f2e05d243722cb32bee5508ec94eeebb53b5befa551d3ab5dff9cba3daebdbc97179e56cb778aefdda6a0c24265728ff9e59ca3c2d615398d97e66d
+B = -e018708df037aa2918850fabcad82731487fb812213b1c067d0688462a4d518e5ec7c4c84f2cb2017aa6bc960e2faabbe361ad8f66355366cae869d366f06d7cc32ea08dc51631e7f36a4c775611095d8aed06a0086d0a471749246d7157947a1eb5d5503f207723a7062382b3e45bb84c6f555e48f6d63aaa1c04fe13c0108507c0ced669a5296bcc16debf18e03c32eefd177bbc1dd2f19cd
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 3aeb3ff6e797d271fd2271499a740a91569f300d7392a7b5898084012a3c5ad379a57d5169e43089cd58fc7210314758d5368dabca2f0ec5cf6786801bc99b45cd60403c732d9f98936aed76da724bd3e7d4b622dc690778f11fb0310fd4cd980b220627f7a864e107f93a6259081c6581e5dddba4890508af8057c1af29a745
+A = -75e06b47f60edd23148c3736c9c125a617beea7c8fd47e662c9d9be883ae925b7801a0030df3f4bdd3c9fc386f18c4e002e5daf4a6f7fa27b2f71252c83d5f1695e50d62a10b99e1900987b342290decf681a064f789e11bc3fd75d64e2e78ace56e7491fbe0eddd6f9958a5f95775c920ad6c051ebe7750fa76891ab00f42c910550a42bbc1c1e5aea0ae13b7e6f916a5d228bd57e854f7
+B = 434c8e4767d0d7df2125def75a978bb1509a26bf8305cd03df748c6c12b6dc580a2c1ca9a4526eaf3936fbc4ec797d0733217a54ffc9e1d7c6ca04fb39679859d5bd3fa64cd0a09cf1a056094b9c20ddf1f00e134533ba9892c2ca7346ac8d0655250eb45df9f0b7983bbf71102c6f1a2d9497e7a45eea7b3095cac037b7aa755beeea8a6191da268780179a652d94a732a2a5c7b626c0de3145f4
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 734a429c91f5b0f06fd47725ded06222c0193dd407e9daf136696f203e153c9bf6df59016849284cef93fbd35edef2cd31c9b956fbe562d2a22100f177254144718ac7d22c99783fd523b642984794bd7beb0d0b363e28d3f3469ee332ee364faaafef25c1d4a11b5e517e44a412ba717a113ea9e1e8f2d6db8fad6f10d06950
+A = -18dcd213e9938fe4b6a64abee3b9867f65e47e5b0365d45a8dee14ddf787f34072ce32f38d4d48ccad236005a23c5fcdc02b72cf27001495663fc56f428072d3f1bf5e33ab2c5f9dd9facf122f7225ea03c2f67321530a642803f65a2e9428f32d0d974e68a25f705e4f8140568f7e4b132942b49f9ff53f04f241feaa29aa353925fcade33a0cc192fee2628c2111da1e652cace9d304d0f1d
+B = -2e5397658a5e6db9d30f09e93e67a30dc84b1e17c25786e041fca48ab710e1d0497ce615264f1abcb23d5aae8412b58430bd801775acdce06cd362438898697940712062b611c92ae6ad10da31784207c5e7b9362b20d7254da0df8caafe0736002dd466d76b1a03e91a8dbe8a71107abd5f07b00fcdca2017391c7c3263881a3d02a89b0e16a2a765a32d24ae6584cf44a88975c539402db9a301dca
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 427609751f28edb62c717bd98ddf999cfcf65128b652be1b5aac0dfe1bc0f7687c580ec70c8290455a9448c69dcb550c0cfdd109af561ece2ec8707c1d02e8097e780f32ddd932e706f81f68711acda0e7610f4dd0fd55f6ac7ca3a3184f655b0b29d2d62974739b43ded96b413b9e3f0033ca1edace24b6bb610bf06b5d940a
+A = 6576c31d48daaf7d6bc3658952c4ba18095f1a0d73726f6fe59381af45a2a6b592adc79fbc3b597e1eea711ab295cd991441fb5fc4ce5f047e571a7d949c709e0d31156184be4b8a6a49691ef93d7d3b120193f6ee82246aeb896b8b7b4c74c27c02cb39fe0335883a3f088a71ab42b947a0cd59dd2155c65a0274ec0836bb8c2fe394500724ef84d869bee40291363389e7012d672b1eab6696b
+B = 1ba2888f30be283b588cddf00eb3ae3c641e35fc0bb3a9fc85d7fac1e81052129f499afd3e8458d4cf893d51fe4a2bcddf70f28c8edef16c7bbfb791daedf1a8248faebe36953560498af652d1f1c7aa0e9a5a667d9c94f7d9525cbd5a82147d58b738dfbba5aa162858c2c66d0dd7d8db38d41a2261e6efc7d0c8b2dd2d6962be0fc796705cec8e87a13092e4a3febdda3d4dbed9d11a1d5f92d7dafcd6
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 533d6d8d7384e6e65569ba0daae0a8cffbec1d20e417a6edb42d401a59de0a91a7e6854db081ce33b76faa63f6d866993c245e69ddbe6c86d339f7107a4807856cbca23cee2bf5496388ae8fd8d7c78767d0775acd7bd6202dd75451b424034e2766185969b5663b638d539f718e50a9f752f406c224c000bf1ae1fdd60a2a82
+A = 111940235b144a42a13201a41a3f9e4ff02948f8e9127d9a3007906988a50b36d7622d1221155f2516812074a7888b1d8334a01c02ee33b3164d761d02b36729c299ce2455a462bf18471fca42e5b01615d53723c3fefa5aaf4a039a6caad35c348a0a4dd3f0204f084f35c0b93ab233c4066dc50c5fd3897a769a7c5bf309f7a9c30e905466c8394d509b79d62a69b58c73d8d3f1665ecd9a8a4dd5
+B = -e2633e43c38c0b4b8713c20bf4e2b8ccba680ecfc1139954fc42724277beadea438596942fea1094091671c2060dfccd0351b2fba8cbed35dc963cc18f8e8835052da884799d88ec1887712000a0726b17cbc4302421011d5be8d234440eecc363f09e2c04bc9cded3cbbac9a5bdf0b6d418822fdd90dead20e5bbbb3566ca94ab85f3a00d32842eee6521edd18b9aa6872340b2f47deb961f58bf231e01f9
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 33960d7ceac73f342d46275e04fed56563decf2fa4c0e9307c90288e911ac8782f8e1354fb051a9da8e2db83d7c710b5d2b611495e72ed42259ce783a7e7a8f601c07061ec749481d39a082f29dda1f9c7f444a33ae1c1055d37a677b848af371cd3bd41c851d31a07e144d7add66df39576b8200a8b918201630b3da8e664c3
+A = -402034484e499a8efd610200790d443c5d3be35d19d8808da85954d42dca3f24177de48f55fa2efd7e4f7f624d806a8d461c3bbe0b626fa1f3cad2145746464108b367b13f3537ff395262256bfccce5f0414e1f98b59ed29940171d46ebc4bfa1a27802cc30d9221cfbceeb92abdfa6e84ab4a54965568aa10ea631e82067ae358a1a93a3a3fe3a5ed5636a0c4cb373b4d49f46f8fbbaa665a19200b7
+B = 78ec7dbfa2b28e268619ba6db34a23adab25e7f8690aa9464a7d8fb7c6b87d5dd9d33d4c023bb665f2d96febf2638fc087ed30796fe7517fd58e4120c0d319688e67a32bbeaf62a987a9764be75384bd499b0e00a850f27e303f615031299c631844d10abc571f9f2a0f742cc0e8df2fe3c244bd825bf1d9134b2f1059e2a1b61985ae8daf9bfbd9eb24ba268ca58553891945ff1a314a78fdebb5444677ac081
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 3a1ea3fccd6f336e6d444d68af1753b83145131954c20f1e3c433a89eeb7e267425a34d91f67fd65191dce85769ece2fc7ab12d032f3e30f8509095ecc05148e47a85391b21a18257c338a6a3ca9816987abc8143fe443342b34afd8a52fff00dda2e42b1b39322bd38c6a1f711051f791d6cad2a47ebd423a9b933485fd5861
+A = -1869c53f86755aa350115a9f49d6248cedd42a339506b8ff59cb878b7745956f142fc4387322c41f369773ed375b72665026771d4ed1b9ece08f84e4782d4c3b0177853cf9ac3a55f7e52f39c1b82aa42b30628a4fa6a838754ec6ff9809308f675e455bca6f44e298394888d85fee29d8a0c8e9cdb9aa08d68cd70e13a243b5804a3ec199f52ccd462ba6594d856602cf1d5efa509047633923d31f78da3
+B = -2023c544b6cdd8d971bbb345300f7a101f6dd44dede6bfb5f4e6b4eafb7a40728a3063f6d4bdd0f606ddecf062828cf889b2f632d0c9254c28f36dd974aef116b73cabeb2bba98635841c2b4d2aea833e35eb1db9fa9a9d33bf7b51c49a14907dbc6036b027a039192b47406bcc56bccf375fbdf40b82ac4b3c660a43d5a6eb656868d383cebd099d2a73506f675cf29649617fe06097a46de93c13d1e590ef2cc71
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 4331f18a94c169cf0253136bc4eb7480c9fa4401c18db1194371dd53e5f7b75f07ec2e1e1c4116a5d2a8b2cded4b22925b67a88af9b8479c6e821d58cec7ed9f780a4c41e729982cb33f69b87d01c11cb9a8f7952db1920b6eb2124fd5d820555a99327117d7e8e26d18e748fea3ebc17e1d07161fda57a21a70c7f4e251612c
+A = 5e7d4ef7d6ace6cb106e38d96085d3f3505983fd952498af3c1d9b2af61e4ba10e14961b339c6e64e11ac758d5fa18c3222138290866970d67d0a4f4e19f453503eb8dfb85b44d1050c86943e7c5d6faf7851bedf7d0cb6b13d2acee25372243591d37dd230907457fb440f83b62395f80f59a2d02b87134887406a78efd77614f3193e517f234434ab3be084f1484d3f2c1f68c67c0d6e863585a8a5ddd0be
+B = 114b6e6726433ea88a2ba965f0881beb3ff4d377526e4e099741f069abfaf29e129a1f5fd243c6599f725a389728f755f9cad767ca1d6ae5c8b3a32102e47af211e86d67574bddfa42b2cb466d968f38b47333b1b55211fd9a315acd5ef62cfd3e83c13ee9d3fa20a06b2292177961dddc7dc39abad9ea31ead1fedd3d699f651b656edceebb0bace11bebd0cfa581dad577b8b42f0a844bcd8c8227880876dd7b0aad1
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 2468cdb1a26eaee34db3d2724e37f023c8a1788526b3dca99321b574685cc8303c609c85401a58fe6da181daf4111fe8c6d4b7428b1cd301cdb9bf8cb6f33140756c8b490d3b2e538ff294fd6471c4d17b9d9e4adeae0df088cb9daee18e825a368be57af4a096056b9e76b94c8d3b911b6a074ed41082926773a585007752ce
+A = 1e6a59efe0b14fa017c32ffd0962700fa9752242b06ffd0b604b9bfd125114d4e0909534ede704cdf1c9e88a6567f4a2989df752510d087d7b7afb515ad594627ece54b8a8e539074386121c9a3e1c12eb2641ded8719e56d42ef50e2f3b5d7d59f8a6f897174cc00a7449d2b91f33e9df07902a95479731a44fc4ebe8048c449bd515ef6cffed70ae78c832cd43491203a247fcfe0a403862266777947fc2542a
+B = -8a9d3646831dcc852fecc8e2335549e8baa2e2d82fcb90846ee82bcc715c716d4a9f62be29d5e1531db73c2186a4d2f118266de33d966b78f989600d772ffc55b1364117d6750cef67f4bae851e7e3f8fbdae7b79de7eab54cc1fee56e25d0632b2929e352c882ce78fd64dd0a1473e80b6572f0d4eb67f6bd6e45c7617314219d6f7de5e505a9b395096cd36650d23e8d57d6abfa9faaf0ddbff90d32865bf5ddddcaf28
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 2909d3aef7a21244efc9b5b16626e260907ac11f3d00647f2170ba37197e47b9767030195c2f6d5eda717a83a152141bffed2e26777417ecd8e27aed8666698c2e85a414dddd52b07b52b0da7e08b3217fa6a331f84820d21086a4424974e1e8cfed3501eb054242a9f8bf0803a94981b7b81776eca6d07cd50c050dddf81d68
+A = -73ecc8a6a1507fb5dad40677dc6ec75f0d130ea704d1e87b00d2bd56a6be21714bb30202739170b8dd3605f0553ff57439051efea2a97def70a6d2cc3fa2b9ec27a00c1338bbd588513f0f320272b8933fdf6635e585d1e79203efb5c95a454fcd7f33aa2aeac08902107e9bfb29587ce8610d50cdb7f2033c5b726742fa9f7f20b4780cf9244e6abf6b812171a64b870c3ca4c9e898d4c15e9f5b0194ae736c3783
+B = 4049ae926bb52e862606842bbcb4a5148bd1063b6a56f331cf10000c524b4aaa80b3bd914cd697ebc98d68bd3c2bd5c87fac4ec68606c264c56e25b19d118dc9f2eca19bebca07269714f2955e107b3fbf85530b1fe99c42d33031958280b8e8abea5a918a41cc7e6980149ad68fbf1c0041798d2046d7f88a395348b295858c61c2f33d8512b6fe75aa8fbad62e2f9b0b7876ef95af8a7b7338a2d6b25ec6355c276fc6ce23
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 22407e4fe280ff5a10eaf46d8e1f5a1e77a07410cba4106466d703b11764c60124fa355733b47327e952a12869476306926cabbd797fc80b4a6dedfbec0b7718ee754d447825cc405a98b85f1e09ebb9294c4a4636aebfc61af4545b921cbe759d3f389beece3f29c2c7c07691a4c46a1a72ce418a239fdec80df48732627866
+A = -1e165ca7e1eabd2ad1264d5ed9c3d2b687f2db5b507a0e4d21d9e042cd46e93c2444c6aea8491b5caba2d8146bac656b7754b7b1ae0f6216029c7167fd3b1c3ba2e20469d386d8566ebbc05cb51bf1f1eb2cad9dc4fa454b07cc1bcdb9b8f5a43e354c4e0f4e62d52798f667080a0e0a15414391269fe8c92f06da74f6209a3b215adafa1eb6866f8b3e419468e2e5b4db0d0ada80514249320cecf034477977bcceb91
+B = -3f314681eaa4cb41a3feae8467f7d76b8b05939731fdfc943235aa4d67bdca30e64de541d17a8971e829bc0159384643672bdffbc93b3eaded7844d824604f46aa58b1f1b9d788106aff53438954af015a0387268266a6ba262e2fe7a4c51b5af6ff7f918674b7407ce8282f66e84fd2582edd809b465e4401c67e5faaa9e5748c06e3bb8ddb23fa649ccaf9657dbf79b937eb8959aae8d5bd9513c1e601c0e536cf60c4fc3802d
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 385ba217033463cd9cb882fe30373c2d8e8475dee54aba1ca9713a709f40844905c2544ad792784cc8eafbb412dd68de6f98522dfca1c3de8e3bf4cbd09bee4656c4341153b17c98f9ac09411d16ec9880835cae772bdd8eee51eaba7c02ca6a1034c2c5d2d48e7ae3eb0e22f59bf69537ab6f1e49e58a71c64b8934113eb069
+A = 5137226623f4ce4dc9b80a783777ef4e53ad3c2ec648264db472c517a96383ba1173e52c2659a97ce36341a11e832f4ad293b89696f91a051c35bb1db6182260d4a276d1a9b4be848c206899f87a361d318d38b4073a7470c5743b816cbbc3bc1b20dfd7971b11ad4e20d947e352d42760104a5a3cc590b985ee3b5e98c779e38d2581413a2208d31873f9644ec979602671c9da72fa6f66c603c1bb6d8e690dba8bf4933
+B = 13b45d4105e3f5e8e0ba36c812faeafccea2f1a30e2ce8ffad57ffe0dadeae3a23e813758f270423ecda3da083b42432eead7f04842db8865f9f1e2226a3d298ec1895ae69adc55d1d338c3fb787f0676664564eefe46ca95206e81678cf1a2f173c52d809b1e06641a9b467f191ea09fcdc597271eb43da1a9a856784972ce0eeedd49ad363dee882438f09863ba5af063925871c525c6c0ffdca428054e039e149a424c6d1b5b2b4
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 7865f718cb30026837ca006f5cd997c5b917726ac6d9bd8c3fb9eabda0854d528d6cfc10e4cd3f93f6848582690c6a83955072daefc6959d33192fcf42a111650e50776ba9ae43d3d26e0ef2c6b60c3871aec33eda8c56353903e7ae96592fbf350b88d2f56e03f7f327022a2aa9b7c484a000135b85bbaba6f8836cbfc81901
+A = 16978c06a03276fa2e0bea45740a98d55fccc9d27321fd0a5b8522298a2a90d391c06c5c59e7eca85efeb9b4c91d4a1e9178adf816d597311f004ef98d209b59a2d4b901fa14c57b7297861ee58b89c9b2e931e4ce5818dd4006f3c40168bb4d3dbbd059c1f1cc24ecdc64d37df16b8e8d0529247c06f905ca88a5d283ca1b9e6856fbe8115a326061905b369791772a47900974339722d19b3aac16a0bedd93e1e4e4289bb8
+B = -de6dad276dcc0a9e271ad523620ec570fe6e3b350b934932ebbe36dd571edcde968b6590be14326e0f6394c0a2172052ff8dbc3ff15d94fb6e36a098286333768a84fd0404dfa354173d01f98484fb20897c439c48952b7f1791209fed94e9e72bfb3df5f368d420d587ae8bf036db6700f77b130459e9de2a541ed885c69c5641defa9436a4f7a69d2848d0e5d1074f77fa688b6dcc4d4c7de25a3b1b040546ef7f418112127cff173b
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 2d3dfd14e7ec60f842d1db83e29a0f6b052990fe8900887dc44476ed3948870c57e72e91e1941c476baa6aa86f76dd8ab6e6ea41707242c46d39b54215bebdb1f28e59d719fde18bea9994610214ea68ad9f2da24e1ad8a06f8bc698f8e76379ff332a2745af472d52a4b8e57d60280e19f93d5be669e0832824321e9ad8e76b
+A = -5144d5ca834f7bbb35d3fb95818c1f89ebe08efdffd35993a7691c05aa1b67f6a28e219b27fdcb66e516097c9ef5f00e4257c561b1f94c52c577471cfcd7a55314d3b0fa308b59449a36adc884c48ef5f34753bea746bd6fab2f20b86814c9fe50e8abaab742916313a50e3c390c67fda8e3729ee3329dc5e4b7d3107083aa3a07daf7952ebbcfea15fae7338cd0b114e9ab2f81dc2e80f90abff7a7ac59e3aecf76fab87633ec
+B = 48b927a46dbc4e23d714b256084fdc7cb9d4c96a988a71c956e0bf98785ebc9bf22b9d5c6ba0c419e60afbef7b96cc0c4a13e397aa2d2dd7995875d2ccb127169423455d138131199a263151f28d232ff4ae24e316907ace1fedd02a02cb5ff9c831de33e6702010fee2232bbe3c1c193ce792eadcad0c81e7d7c17e49168377b68690bc61f22dfddb17d82a3b993804726037cfac8aabe8548befc52a3c6c6baaec89a392133cd9c45b1b5
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 3f66970f600a9d09d73fd1ff813e977f539d69fe1784b8a2f99506d868418e4b47338ee0cbceed555f88824f98ffed39befb69e8907a5822ef7cd2a9950a070aec8fe4db9d68e1c0620f9eab4ab529c7e69466e325fe1c6c011bf7ab62bfd1a136597d7d5c47e8eb161ea048477bedc88fa30e4f7ddab2cfeec3fd0bb3fb61a3
+A = -1343c391be3f2b72c4b79d8d6091389c9602e97774b18eabeaae81fc0539336cd8c899341cf75fa758421c7f32eba9df474c934642003408b32db66cfa92e6e414b42b1d49c7e655ffb4c80f5bbff8d2774ee4f7198839680175e1ffec0428939653c6697eb3681d0f92634cab1cabc63f423d5a71d65fc7150aaeea74f9e0153923a1c65dee4a165e6a01a88655fbecd2db7697f4d2b49fca2508e2b8f84129785d36d88bcf59f4e
+B = -225a0a4afdde6f6450f28736c3ef6e67d67ec6206a63b11763bc6e69b03f1494b275ac504868caa6d56d684a12dc1098ab0d030583e73a2f45a42b8607c0f19031b9c5f07fb71919868911806d210d43aaaced5894e844881e89bab85a203af9ec3adb105e50b4250343ca50c26df14c46d73a22c2e4804d26d44ff0bbcc13d0dc7e326c9e4eb441f493c9743ae0eea0de045e05d19ac32d2379196a165e63ba640ca42e4861caa24c29cbfabc
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 54e95e86e87bc220c8f53f8485402327885be34e34063a1b81e52a23fc3056758cea1c039ac4e513f70ed9d394f5806fb771dca8e342368184e674e6296b9a705c6380bdaf11550cffc73f9f55b9385c85fb648f105f11138a3e1f9dc0a39a0f9755f8328701484d45784e3e4b2ebddb32c9d9132867c6513201116428b791cf
+A = 5f1239e0b5dbfefaba906bfd9003336489ffdf634333cec2484c582dbc19b66782ba40942d047c3749597ec4d89ef61b7803d33a9842f0c903461be37c679ca213aea894d36c1e12bbcaa1c679599d2adda9bd23e712dd0d0bd3f91d146e7a04f3e7ddec8b0db7e12377ab32ba241ed1e01da070c1f3ec85efd8387a7b9421453969ecba8cbdeeeaae6ddb098084bcd250601af780960c32f0a1ad7d7e61fb19f40dff1060c5f332830
+B = 1113f145de014bb6dd6ca05de159b97e9736c45bd3bbd8477f739daf79615fe329ce948cab9787838d7daf797218af5ba7925685ea341b802690bc9588ba3e916145cd3ae9d0c4a149637b890cf50fdfa8f89a62e508eec68f9332787733aacdd57ec1f359ff7fde76138d5b33d32e64cf7d252f2bcff14be3adb1afd8da9dc930f5261e6d715ac75752b29f083bb1de7b0b89ddba633b8137f3fd299a7f77abf79781a10d897e7bf2c958a097227
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 6e0160eaac8e1c31cd3cb6c5fb91ba086d033b4b69e41dfffce7569e61770f6629f23e12f0074c47c46653bbba94701ca798e1a242f7c4e25708d3acb5af6ea307b95cfa220f8879cb4cfff96b843d6eeed2b15c8f1bb21bb2b511cefbad0618d49d9ba33cade6da6ab3b846a6a24e35fb36d41201d3b85be831522b9bf509e0
+A = 14f4e24627c773527ed2243c0d1947395aba5c9cf95ae62a48827ffc1477614ad9c7aaea4b4fdd97e3272d3e220601565aebf87928c301656e9edb08d6e680de845615bb3a81c61ed043adb9d708ec1447f057087211673fa6ad8977166a2b4a8079a4f29d48e7fdd6875ccad05d2c219922b814589996cd9642ea2b798197407acd274da30d3ca008fefb40a25b38cb6042a581393283d6448cc69df9a5dc2b0777052566a8608a1010d7
+B = -b4188ebc5bf3ba31cf7c5e100e79806e92ff6f863c3d68a66aeb3ae8385f596dabe6f627f3812d0f2baea319d93ae00de41ab65e42eae7d396cc8fd0a2dfd35f303117fde4db5e8438df0c2b3b680dca538b42a7c844a9bf0d3697fc89ad0a73594627578dabdc214e0f4aa06b40987aed473e7f42d318bebf7392d9c898b4b8d73a94726aef65807b2ff746d4a9aa76303ed7b4fefbab34f5c87c2df82d20457f68289f7b96dbeab581294974e322c
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 8dd91f390c1f85f153f332de17e5de82979755d835398cdf3dbda1ee73c68f8e7565a964ae33fd5b1f1060572bb3af67eec79c4c3e2eb4de118d471f74351b80a5dcafc682bc3cfde642e611ac1d5bc2c49b308c30985b1161c4d78cf7621b503e2dfaceed886befc004f3a729b4a9bcbb8f13791d973bf38fb8101d6b7a4d4d
+A = -70e99398673324ee83495aa0aadfffd7bb9c94ee5251fff365124fabc50175d794fa84509f034c2b86d83607789338b0eebdbbf709a129a0ed0afd21c130d94b279c56f1c7c1eacfc6cd13f724a9352b2b37412242a47b23ec61ef0040a8855371aaf238003c45ab9d18a66cc7dab9653b93c323815e5404762d3f964d4654a6995af507bb2db2149eea59acd72af4d034217eaec0be5ba1d23890081a6a234e125572e3bcf68a6ea52d9437
+B = 661d8832671a4974b493e5d71e547cd46b36730f4017e50c5d1a7520fbb75f0314cbc2ac948744dd494d566ba580a2108106b120a797cfeb1fbfdefdab6bd6b2e073f90c77e814cafd0b7f79afeecd59778b1dfee3446fb32139b2311011576674f96f151f896b477c631237995e11e61e715dd8dd38e802af93124c66eee735c472972000cb4788b26752a630ba63b45e8ebbd979f0a4da5b359abd2905f0b7f3a21b1d381cd02ac08e284218ce41c907
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 2b591d2c57f6a5484b43cd7ca247c48a1b38319e843257331c8807d499c7763de4eefed529e70d4c144e5e843ac00ee8d106d0d82163cfb7afe528a7daad8e7ed105942d1128a67e38d59325cffc0c3dab9185247e0082e3ccca82a900d917c9bd0f892d4b518a752f8e9d38eab2acaf3b3b59f15b0fe4cb9a3dabe6e0191493
+A = -1896f67485a740720e23e1642ef02742ce5f10a92e51af19e112cc99c0fbddb60d7190086c942d293d076b474d056e74ec9f0c42055d745a57ba370c51ab2b761d889b766cec909811e2b2fd11d6916b753ae00622f038a4bc55b813a5d06e6ac136e81689407de721ee852cd21ea989ea7c8cbd00b64614caf0974a62097b2eb865f46fdb0c1a2e4f2d839066b797e51392e5ebd14dd92630c070acb546dc7438631fef01594878643a4cf77f6
+B = -3a8e2f3b8378a2605f5affa21c4fadcc655f2f8357a3427d2cec0118e55fc2bbc25931259e294d91bde8dcbacd39e6cbc125683da7d0dcbbc67d7c5866f08e7c4732cd4384d9366868370ea40a75beb23b81306303da4a3e26ad357c5c743d0a4ae775a472afddf8f21cb4a1a3350bb6aa71037607c334a0c79468668d3e727cf1d0610e49f27780901c68aecf1d145953e45f5b090855be714cb39aba2efb0f7db2786b331dd9bb8843de8c73c95ab13b6b1
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 2f53bdd643b5b22445e2af3667a93de52f8bc7bc151e196c0ab0bf3b4e4dc0e5dae9e507508711a9e3de52e2aeece6aff7fc8a1db65588de3272839390a35a847e29204d3b9b70e10352c88a10c86cd33e067fb530d20a3a5ffe67938c5a7a9218f1164f36a73324adef64da64d5fa5540d29a76a87ce010fb7d73a59b109280
+A = 75e31ab221c08b3bd73bed03f878bf7742f9b36a89bbfa7e90f9b05ec11edeb0140dcff6e9ad1d62cd7af34bb4284b3a52bf1b48a40f744b561d9ece056a9405ab15f508700b14914e4f427ea1df3093497410a0108066e9b259c1a26ea72082b3cf0e3a99ad054804da7bfa0200d93d65354b75e605b47a4e1e17ef851a37c59a95e1b5172801e6ecabf70f1e6e382740998fcfd8a297aaaba7d04b668e3d6eed40358247767323a8393ec359628
+B = 107aca18938a9cb244ad646a37a212859b3dda7518a5827aa2146b47bfb3bd08d772eb7a866e1f674aab7a1c74cfdc2bc6e9ad1a365686213655b2c7b1977855bcd42ccecb804bc01d92bd7d2667069d853f18a0f0661f028955e39f71ee82b9ce6a81dfb2951b33b123e71264e819bba4d0a8c53a1d99964ad9ffb58b7cb5cfcd3e30b1baf5aa5b3cbd20a0df7ec37563e2b32b4cba91bbf3bb6fd1cbfb2fe0f84d720efdf36e9645c7e9ec70442ea5174528bb
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 32d16f7ae2632b5cec2e90c34d191599acd9a1b5f97845595988c1d0d4ceb9acfafbc4aeee9924ce55e109ec88c57610fddc664316e0f9a5e3ed56ea447111c0383ecdf117ab42351b80e72720a4b1d98d4c73f5235507c5b4f7849d5e9b527d054858c0436ac3d2de2704c4bc25de4cc702f5880d5ae34094766938bee555c8
+A = 133a439cf006c753c132a8559ea13c64f598c5f8bd5043b89d04d7ecbf0ec58b225551c8df8dcb341198fb0b487774867e5b68f9058f58b3cc98168fbed0d0ffa86bf74b4fb0d4235976fa86d52b8dc7e82df176d70892954223cc484ae58b6a60459a9a0803ab856ff9699789172b163615e322e193bd758016f634c83cf50403e416ae241d9b1e44add17c2a663771ac88cf8b9dd94622d80d879ae41f0f4e7a1a32a1ab164f981900fc159aa85d82
+B = -fef33e21c07dc26a47d692c3094205bf4efae6af32f1c0f46ee579c1a22746a3663d66f2919f46f973fe558c61264157d531e66bb9ea10b4b49d9f6ad3ad8762a6ea8169a9cfe01d3dd65518c2e6e58e8c88d1b2f42d207399d7326752560cd45d0ff571309301683770793fe3765c1337d14021d39ea6980934c5fefadb93047ef07c807d0ea5625ae0cefd098988d6eb7af993c062ba313e23176e7abdebcc6e566304a5f9e03da05bc1cc58dfbbc898a67a5941
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 20877c7f53fca97f8e484ba31f23dcf51ac0f4fe4c5121eec576e043c6ec5492725f1b9f9ecfa64195f71909500a69fab2e591377cc2120bd5f60d3fb3812f9e80b2f6c787e0081c1439dbea76b819ab44bf6bffe87dffd771a870e4f5502609249c5260f91175fb217a9eece4166540be877d564049389306e0d6b313706297
+A = -534042b0811c9afca04d20d83898e7653f91a73de1e4b516f3228c6d6d9b963c7f8f4c36e05383da90f4edd072a7eda382c47b84b46b4dfa16f269c2d9ad0fc53ed2ce51cd31e4e32d0c1ee21604d3c7eed2deb35cf8df6fe1c0740a1515e4c702a2074ad6c0fcd403603b4a4e2195d19b265958ae854ccb0b41cf22480389a053f71544cf594f6833f3e4d91fd3d9091df0978d04d3922ed72a4fa3579c5fff50eee812dfb2a334148227a0f5739f8ac6
+B = 6935a3444434b0b03d27545721e253e4281884da027246e46ddefb01fa7cf7a9a030581dfe618431a68ef6d79b03b34f3ed598e7c8ac030e2b4cc887dd31664604fb8afe4e71fbc3135d6d3b4e596044d6b615de7184ebf8dae8fd58506286ae4d3b797aea911eb59ada39dac756d0e9eb6a6c767ab77b9348929a00f8e311f639d19ed88c86eb91f0d4cfddd34e98130eb520fcd2b77507c24b6804d3d65d1b21e6f6d55d1f6e92bba0544829687a096be79eaad7d88
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 24823628d4fe9540103ce5f611f8a6ccf18788120280179a40c2636f30a13e5076503e8a4b6b6ffca21da5b0f9f0d85feb2ce10b51292ed069f35289ebf5130972d720d20dfb8e6ee80c3ac598570d38e57ba33dbd75f1b03eab7847d865c3e8e471ccaf302461a6136dd13b8d31c9f163799a3c24c7284b8826608a9543816d
+A = -1d476cc98529efe5b926aba3160b261723b009e9b880bdea04e9b5b03f173040ffafd1627b38be8e00840e85d7acd3abbae2f7a60b305256b920c2b25a8a4373ebbf1a0c69f6e74792cb0d849872500519b6d1c190da30c572e26b44590b7ffdb464a900fc38db013feecf909b43bea549e05f1b7e70d6ad879c613293cf61f0cecdba1a6565eff1bfcdf740bf553ffd5bb7d74f7e9537897184c527b990dea20387bab0dec3e32727786bb14975b23ff09f8
+B = -2b6e12c87ad91a2fa878b9245875209cbfef400e637b557c868ccbd6e94dae65f1ef8caab61f292d739b139e384137a747210c09ee6f3b2ceb6dd212e14525852b8c54215191e116b7097f6729f6426a8bebdff86cdc16effa08d932ab512d7265cc0f57303aa5e6fd2afe0a45180557935c230558d02c3030b38ca88de5fc75c1240d25a22fe32c4e5096aad0078d50989812d7dd0cbb02c736fa563efd32d14109c44297cdb3d4fa3b93a2e15bbb6eb678e93e943979c2
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 2c4bc23d0b4b1f79141be9149ee20cc9f1b58ee0a76d5f4205e0862492c18daa20171285d6ff0b600c358be487e78cb5450d151efcff8d53004eece94c5a37f49a15fb2b5f62a79568382cf0a4232407b139e1ec5a9595bee8435b4f138dd72fdc2946b03817e49864812b7b61f179bdd8389791178a95bb6311df0a5c60db2
+A = 5b0a181f07068af6e1e4b715d92c1b8391949a1e3cf0fe0aa49f3333c826f5582615d39ec28b1367804c1ef54f15fb83b3c578ef3ae957fc89ef22a343175df3ef2fd425f724ec1c3363aa000ef624d64c6d678a4cbd90b41cf7d69a7e03dd60c5d3470dbb75228b34d35469847772ff3d74b1a89a2c492c082d3ddb45ba4df6e3f228de6c64913b79679cbbbc36a2924e722c2c640d0c5a0e90ae86b5364dfbfae80df3d75823aa58ac6c1da78e988a11831bf
+B = 19567bbcf615b777b35fa7030db7da18126cd695ca7dda67f5146c97beeb20df24ba0fda4a4f03523a0d9b9f85d9acbdb5793ecf9c1f4ceac81299a1aa34417779175a4bddc0e95ac68309da51e4f115dad6fec33a75d0c5520692a38df64e8d684c9304f9e2e6ac6a66d2e16a03c19a30efcac712aed2b9ee774ea28af4f37c45609464289de3f9be379c733d711875216bc223f2f468a0c9b4a8277bfe49c590ebce2e027102537bddbf2856c3b6e9389c4d1f5390cb0f346
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 36e1e0b44e5afc35d1e19e88e75f030569eb99d326721ced9bd7416ea7367a98305354eeafd204f1f8a652a8442eb0823d2e6644e6320933ac481a3709777381dce8a7c165b23aebf31b2ea2745ce5b352acdf0707234c824da9e1af98bbedf80e940fba00c229539f310838bd625f1fc103f267265ac1243855622c5df72c17
+A = 1dba8bd9d1e6cdc117a5a01b5046353084946fdddf2696f831a942d9db4637a5ee76b84d4ba63156b8cbc72e40559a2fe9b8e2682d8ba1db0cea042bb86f8ed71f6609df52526c42e7494f6114bb62263d36784dd55d396018b8fa47fa49ca6e5c76ebb0b00e6c764e36cb3ec75e3af6a2c14dee01fab78070239638521743d04f184dae79d49a2bf209ddeb4cc72e0c94a93a47c107f5369070ad95ffce034c554fe2a8391e67f817c6cab5b88ae9748072da5c9c
+B = -849602ea3b79b33af2bd3ef9d1250c507d332e759d428902dbee054fdbcdcdc0a357a51d00aaafdacd696a15a64cbbdb7e1fdb347be5ddb1f609a4390a6f29f79ccdb51bd1f0547d0d9a2780517f8753a906428fd236f8ee1b433e57f2810d0ad51846304a5729f53a871d8b0e14355d24d3f092e50de4f044e2b8aa14cd8a51fbb2ff36b0b37defa7be768c56fbd4f5169d9d4698fb9072cbb0a037c219552728587d7c35f27456c02020f5f9374b6c53bcf8eeaa14be51899d3
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 77eb3cb5277ced02b72368e41f04a35796c2c6cc1273f109336fdfa745aba7c755b6ff3833e9b124d9c78584f6bfda1c94273522f020371107870c288592b7c23964320729d2308bac8813586e72078119852e1d7706d8e15c195486b8d94358736869b15d59c037ba4dc8032ceaa31eac3a9e3dc51ee17706a6956cff8537b8
+A = -6a0753edddef8b74f762bf802d7fe9b38638923ee2d81bfdda354d40df4422e6ac43724de1715c4088da2e68b63c10c90b236d7dcab39b9a0ecbce57628f4c2950c79cc88a89daa20d7a8679232c8ce5fa30525c56011570107697222e0eaee6871adced52ba01a3aea0ccc9901cb3a09eb4db2f93aba0083180bb41f3f9eaae00fb458381213dad01997e9b88f21b0a79ada1ec3837ac2b63611455fab6839363b796b105c3be6106ff284544bda2a32352bbce6ef8
+B = 542c5fde65111ec8a38d76d8c5735cee17329dc41cfd0f13bf47e6d0e0093a129f3449db380ee9a70ec1e44640839ff18b950c8fd89346cb4701ef753e6ef49dfd9bd27d9987e572bf8e68df399cf945813582fa1d33e07be938a7729efd9a5e7d730bf61c537770a0727f6bb9ea6add5aac9267bf910eac1b7d92ab4184734ef8b1d184c292b2b4295ec1bfd17b8a2a2e4d315a8b37b8ff9bf6a1e94a4772267195c5a7ea6f0a0c267337fb97a023f1b50ad697ea31451192cebcbb
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = 660a1f378a23fc3b47f693a347d90640fef43add9729d74546933f4b78a26968cc9a70ad6fe8d85bf28164881bf7a99e8b96683c6f4fb54162c144f99a27e3feb736f0d382d7e5b934cfa835c723191e5692b7672cf6918c4a7a93b24af00b1beaf1b80320b14cf2d1539e3376779872542406a5df961f765e59f3480e1cd40b
+A = -1cd74c052e62ee8156ba5d97f28aada75211979b1c5925ed015ea75f693a04c4dd0a705f6a723ae7b79958884c96fc07f81fca064ce2affc70768923bfbca6049952eea3ae048425b7c6ad1611ed4b8b77f7605629b9d198a77a27f25eff2f82867845cc868edee4ae31afc5d022b2ffbf43c14fa01bef8d7cd9d0e58362a0ff9abbf250e43ea5065512cd707791ea4868e95d8fd2357b3b3aec1a06888ae940751ceab01cf9e49015d42371fac30d48ef5853b6894ca83
+B = -2ac904d3632e25a4d536097d80a157791a6aca6eb10246ea21f4cae07aafe907c6e4c726694e14ce12e376c02d326f4bfc02ed539a5b4615a3cf5c838ffa52124f9b843598a3821cf9f1fe94e7206d6a525fad1ef77e7e77162e8c6d3d860d4f568e8f81153dc47f167860cd52c1ca59b15f1eaac6b9023c8b375bb63b6adf6972af8ca62b39f044378b11c4a969f3939d9fed5cbe18c06749956c7acbf963f640a1e1ceab73fc4c77463ee8d1575d018f49bf0f08161ce4f88aaab5a70
+M = 8e2ba940fc5165c6c5f7f4cb56a6fde2fab687651099c880d38f6eff2889f6a3b2a3a186d1fee05ed452d11ac712cfd30340d22da763af7b2ff65a3f6e202e8b4f42cf5652c625fd9913b4a032ea9448591b9a839b8c25d2323cc2d0d3bf7a6d15896aa85237b6ac4c9c9a854a23449e30e6a2b7c4a2aee199bc20d30af280fb
+
+ModMul = cbbeda9c467ca801ec66fce801c6765a20148787dc6becb199a15c58fae8d20c1d391a1d9d57e1c74bb412e1b8f271dc2cc53c3355c83f3e2f00f15eaf0df735160a48e2273fd1bd75533cf94c5175ce67e79fa6c1422996fae36ba288a658a7a5422a59d39dd81ddea50979e933efc02
+A = 7ea551efeccda23622a1a5029e5525f46d5ccb83c28ec9adb7a3e97c2b7d936238c483a4a9bc92fe0e21208d5703611e2795b91fd5019272d255eeb
+B = 19bd92c534f56dc4235dfb7efff6d941112d66acf81b079382c86fb10dc5473bb8adebfa53ea3fe6e4df8412e7807aed029694ca786
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = b18a9cd6a0a89578ea773fbfbf642e05935a995a38bbd54480ea3ecea1751370ef95ff5ad0e3203613f0ef6833237d549676a95b720848c5e9897cda82642a2f373951d5746b559bae2d98ac00fae26e5957c61ac1de95318b1b1aa6d5c64a6ceb6575f1b807060f9e2a241e378e6ebd72ade7d2df18d5353db7737caf52f888
+A = 13c68e450e9e091ae45863f6c1faed25906dcd90a43620b1a40e7a506e7a954256bab0225f3678e7ce6c4ba6e3a83c8f04a3491d9bf097adbd98fa6e78
+B = -ddef76382342178fa6636e62887fce6e19590065c766b047073329ea15fbba96f2cf088fa5a989f6ee3f6a513fbf66f621c6ea6ef2fe8
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = b18a9cd6a0a89578ea772021f58ce74cbdd8c44a09b3937b198adbd8e95e8e35541eca26438351bfdcd8600b4f9b71616e1f16cee707c712d40da9a440681f8c8647bc90ba4c68b08ce4cbca458bebd5110222f06b2ca980a2e9419e71064324e8c36289eff9c67f6d5d011e6db8538a54aeff8c20800b0949fa42c38fbabfa1
+A = -6d7e88715e9854b435876fc9bb2d25218a1451efb73ad9cc5f52b2bee929530e6618a858000b3f24fa5f47b5f461c84eca971e38cda6e1f475f6612ec32f
+B = 49eb76e4614ac7b0ed3f534811a4ea6da5ea24be925ffeaa38bb228fa117ed56ae976b590d6c9d9a7a8546d8a6ebe4bba771d6587ac44f09
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 44f8596fc06afdb72a6e4f876b70b8d5d734589f41089c510b0da60ade642fd79cf8e705f09910912624fa1f646da596c137f124ec1a327beccba62a44f228f3c0977fda2af631e249b2a4de17d170df07bd812c233a96d17e1e93910267682d24c5c485f99aeeddceb658a7db258a2fdf73eb0266d26b92e
+A = -122231b14c249820f0dae625342415f0c6e7f93787b4206b79e9ecaeb09623636730810c7936e17a1eece68edc7c97218efb17c069bc59bdb9681a79c910c4a
+B = -3cdaed858523fd55553ef85d018c1097d7b88f6c30060d1e77b84821ca20b5625723c7d4331ccad1a70371eacc7f7aa11220f83f1bf3595650b
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 6de7efcfbc1e8d2cb14cbe4465c4ef71f0d1d7e80a1d80d9ac2d0b161d45fc9d915c54e33131591e8daeaa11ce02404c9b8494added1bd83e344ad4de7c04f626315caa56fcc5ca2ddd4e1ff064a2957afeb5d280477bf1f1195c7294d89049024fe821dceb53c7d270a8b4653e2fc0a4d8a3863a854bc3794753a
+A = 47423c4fec1eb6779fd23e3d4070d0a7bf9a946f5610eb469876797a39c58577242daef8c34926f6974089fc595508d9c573d0a275cbeaf37172f10b8c849a493
+B = 18ad789cf09e9ea182eaf43b28b4f2540e533f0fccad325430b73101c00e440bb64b70ce0f2680184aa8caea2f6f6517e9b80285fea8b61887a41e
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = b18a906994d3247bf8a00f20e4b349a500159d086aa863772e71a68f91af9d19e4c021843f8bb6eeed1df708d55047dc8faf219e00d559517632dbd1cbf4bda61651b9644481d052903be1970f04bb4ee8faab9adbbf858324e6cf5aa9384ceba655a1a107210a9497552ba8a56d5e0e70b0c757baa71d1613683707357827f0
+A = 122773509ee608cd9ab3ff6763629a18eae41be64bcfb05122e0b3e112db48c64d2a5a515d96a042850c1c848ae5fd5f0ccc57b273d25bd8d68568cb00bb17b1589c
+B = -af398208c01ec9700e332f3e694894c7cc412a73bde8a79e08764ded92f0d58db8056883972c79a0c9e0ce810786cdaa3629baeb9e5c370a5a59d3ba
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 64ef5e7063a1d95226569a27218e35e93d870a19a43fba9889a2ca98ca5c573fa56ebd77f1403b3bcad17c1351803a809c245a97bbe32b45e21768f28c5b11ad542f5e687a17f7811df6c8735e1778e94d9313c19fa32a6703af7ccbd88b489c96632d10eebb580cde3b905f6345a2a2b86a871b4fab36fa4b0dab9a6c1c5096
+A = -7dbdc37a51b601417efdda2516aba15827a40ffc304c523a47c544d5c0bba6c1367a20d8a6268a5c3f723b1b68de57eceabbb00d44185ec4ba7ecdce5d80456f8cfe7e
+B = 641cf85fcb5fbacd6214be4b7b06fda1b80f4683c21c1d08311f6e23a15434b42d30a51912898a1c46b46c00aef7ab7663ecba683897825a4b07d2b7dd7
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 370f20360ac844bf4275f78b7fe71ba5db6f0bbabfbac3384c04b256eddaf04725d2d57b31afa48f047aade156c34441b4a41c0b2146790a2e15d13b584021ad55965588c6e55ed3b5cf5c36b780a27c5dfb72678d57528ab17ca2ac696aed3d9abb0ca448d9d5789fe37e632fa9709f3bb924c4ce34244d239a940dcddd9c77
+A = -1a0cc5b07271098a23f01b3c0d47cab8b294794b74a8b162ff3b313fcf85ea81fc99433cdf4450970311e1d5ff81e9ba27eb867073ed250aaa7795e44ba8d4000e879bf31
+B = -308f93984acb78c5dac2426d9bccc2e3ac361143807c7d34c24ef8f8db5e68a904ac8bfed1edf3cc90d21c87ae4d224b8c46fa42eea77797f94aa848160fef
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 4c8f466d1d9829aaca1a22fb6ca5bdba885606b9264933ac2b4c18e3afc0c406aa71ee7ff490fcaa804f457096e44576ff8096fb1d2b3c68450a8bc36d1a2797ab8b621ddc91d75e7d6ba01d86e959171fa428a5bb1f26766f94a553c94f6dcc2e0af90d7776ed3d9fb67e842e88f7d7342afd86e2f5d159db7304ae4d204a3f
+A = 57e894e37159cf3c161be9c97a946454e43bf09a7ae8e1437570a86c6b06f84005c1463d27d726afd2e25aebb1657eb78957a9a12c8749049d12007a81d766dbe008aad6d83
+B = 16dba5cf077403ff4af47438f5840f65fa4e058c5cab3cb730154ae0fcc982ea097c6d0e75bbd635e97314f33ec7e31f0e41cf285ecfafaf36382b33d5e83cd55
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 29d13ec304f26247a45ab6869720720fe019d6cf370b9e2df9a65828214aeb4f8b17969b8dd54339d08eb99bbc66720ed78ef79033fdce6da33501fa8588af86ec18be4c4ecfe01781f9d1379865100dbbc020b892e77027d1f04f8171ca51fb73129dd9a96568904eb44e19f56f842b223724a9ffe28826803185e4208f0ff0
+A = 135ebb133a0beb909101da896e3aad7e26ea72b23e60802e54cc6c58a07b1205e2ba1fef6eb86c420f011b70e3f725aaf9fd1873b6e1c1cc7005c7c09e55550414875cfe846357
+B = -e8cbf3feb7be7fd12b01d5bd024e47538f434b496613320ad71f48a8972f687992f97e4b69b5842d2d6a4176a5701327c40325e98b27e4c0f8fee5a457d92181e40
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 4309b728306535bafa6787dd79e58324b3f86eb5409d772018cce2159f75832b87909a672b8b4b14342b352e76ec5a6dd66737cb0a20b81c5ce222133bfddfea878b132b6f9fd557133973a0b44aa41a01d54ab565d6b9c62da67378a4058255047a95923daf5f0f7adff2a3f06074ab1facd986d7d26cb475ee818199a390b6
+A = -7a63e108bc9790ab687e0fb8a1cbe1e9ff876e7b5eccfbc136ba05fed93412dbc2ffb1ec49518e9fb867429cea1d7f82e2b159b75bd40eb8370e8a54bf0e0ac0ff24aa3662774bae
+B = 51ee025b2ee8abf9dc5ebf1a4600131c00ae4b6bff966dae5c49ab5b9017e6b1abd6434736df6daabb2bde254022783764c94e66743dc752c9040563df7016a1581fe7
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = b9ddcb9ab858d2229cbfab87d87236e8206cf5e1a042eb5ddde201d56e2695a3d0b2a42bda6a284fbd2a5b2c2b80446ce88c024137780c277ec80bfa6e9d15397cc5bac98e58c9130756ed0fde58d475a033fd94b1fe0ecc6fd91a8b42177abf3f77e87c0847a4244b9fd4980f3b42c7c955836bc994f2babfdf9c5b43315ca
+A = -1f971ee9a7c966d1e82166503681afc280fab255665b850645321f67da8934baba1226e9efb59e0ac4483c8724f63556a213f2224b993e4e082eefff0056f7aa8a3cf5b655e0f72ddd6
+B = -39309313b04bda1103ca6f56514026538b4a29ae258a2a66424abe2c652b959f5c1dc4755ea37ebbfe404839505c2807ebe069c9abb9150205fe35bc286ca12b64ac46133
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 47555924c31f040619681d4a12064790e981db2c7853efa17e4d20f741f33c56d80862caf86bfe0730870b6c0afa9caf66e15047e60256fec29469d1760d5e9b77d79a84fcf7a1dcd0168a59f870f1635eb033e0ae0ac17bdb73da803206d48cfc1da48507cb812bea540daa2393321ccb0d88b57abdbf3a3bb765692a2c2ebe
+A = 754d78d5608fe8c7ed8e26a174fa27833a24c48d23f0e702454b7eb578cb107da537dda11027dd6b41daad329e036794de562d7623bed8d9b0e909cb3fa38d4d21a95c5f4246e0b030a32
+B = 1839baa8b8fb6575832136f1d4632f72f36cdbbdcbd00f197fff3cdb88b851cbd74910ef6d43cfae9d3248e9c85662d7fb596ae45a460feaf308823f06345bc5fae8823230af
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 9b2f026b11d0674e9ec060fdb24b45fceade3070db4405b363d53df1219a02a664882819fe602f430636fc0bda935b14c55c8a0bbcc9b6683417e3ffe7f5d58fae229122ac6e42e76899254295dc5a08ed43c79120a5e5e4124b8fa6048ee90836bd2de51bbd2c6b9b53212e913cde871f11bf32f91b3a78575a006da36627f0
+A = 11402b3b1a45d67cde9730062e38aafe1d04fb1f8bb1975f25cd9098813efa2727cb229adf9490267bd437220d9ffa05bb993e45d2f889f140faed3ac3c7b53216455a830d6edceb02e8db92
+B = -d8e011f18bde068badedce8106f6602429fbcac4766334a0101b57fe94603203a4a8975fa499d8a68198aefd9e68f28e68914f920eea1083e37c67d59476bca9819a8bd628b89c
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 3a74066e7eebd9b63a1dd28548be60573c95f29816f3b3ceef68a5f6bb797d7eb0b0f4ee612dca794ff82f5d7461d995b9dcc09649e2587639ea017865328bb5deef17b5283691724e8aa331d75c635d5e19ebfd268fe5471714aaca8b48aeb846f241c1675e18d35f029b132f81128f19028b0a471b3f75a530321135e35fbc
+A = -6c5dca3fb7b85573d1c8899868940794e428171e207b5f9f89fce4b7159236c0755e2959d870754e902e9c40dc1fddeeff6364f898ec0dd669283e6d26a612d9af3c3ab04468707bb8a7827756
+B = 5446269bbeb613e69286f1012ff62ea767965533624542f3b5c866cfb569d6193aa603061701992cb4873ea8b766606da1b57d7b37cf52f52bf85b58309387200b0ed36164f30d52e
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 2a4e727ac67451ca9dcba648050a085196460e4aa4836c5652de863c3e2a76213e0f590de3aee8639304c54a9dcd5f7d5d3592f647e3d07d322708e1e26329f4a31d66c7f2e9d482f22cd9823074dd57d14040a4f00ac2af9677a2c98d58ee1e094b1a8c40092e77eae454638bc3655e77441d4f218c637f95c147776f5bdac1
+A = -19fa688008a12cae228c6ac4982ecbc88da248d7ec785bf2289dc9103bfa3a91eb1e5fd6afe9e0cc035d3312e9ba64028fa6a229db6d0eaf8af43d8c410be7c689c3e557137ebd60d3fa04edb60cf
+B = -3e8c87fba4a41c3a84874c987acee9f560b9f027338b584a775c1fcabb766700f758c4d451077a9427257334a569037b0bd006375f71223add62eca19b1e26b86dde0cc251e48d3b60ef
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 52e4a3f6892b425b935c6f9d1396d2034eb0331cbc5241e1d745a9619fa0cf0fc521585cb9d6b1034c5fbbbbecdc81c757f768c7a82f6ca291cf5afc98500c579f82ccf0be233066730f738c205c3c188f94b878c11268871ba42a5d950dc8a399887997cef2b6b68badec1ca641b88d1455e6d97a2841da49df7eeb766b7be6
+A = 67df01e34a26e8239c8edc7ddfccc3850f39864ed237d4dd67588efbeaaed1f884105508f69e20ff6a5cfae1516f6179ae6fb515a66ef0a7d633ba4218c30875287ecd0cfeb5bafafc492619942f97a
+B = 19f5076405b3c81519c0863d0c963d545b2834343e42bb3c779788cbb46d89be3f775b62f4114268a0ca0e6af6c0dd659607d40071dfe7f1ad0df9a5c53b741c04612158de396e9c96f7523
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 8ac1d96abd2cbcaa8f7e3267b716f675aebd23694d24c112d202653979636d4d47e27cc36f850355cfc5ca16b78cd1848944f8759fbf6b03fbb7eb347536a9328a5cbb778a6bcd983081374a3f543b1380add14a9468358009ec2baa7ecdf13e7260968eea74083459406e8889936b2fb98c8b9a3597e5f9ca10b76e1dd0337f
+A = 1c9ab23ea37f324544280d176cc02762db7a39935f1ede9695b53a3ee2db49d0485c6a3742a3b5cfb51f3c21711bf89ed05afd0886bbf61cbd57b23439a8a165484ee8e4c0e1c0ca2b6478776aa2897d87
+B = -e30d28dd01655b7a419d939e3e7530258a667420fc759bad585802c63fe5efbb309cb502babdad0afb208aff5ce5830071c5a974604c69ee47f76fd87e2460a5b03a57ef0185881502625886f
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 5df0700adbd880a5730d8c0637a362a9d42c64503c3b9784046b946c2459a619b5bf804a41c92ed6370bba730c7d39fb2e01558f7ec38511b0449d6e9db8df2cece4ed348782ff1582396ca8b3196474e7e5817f8c197c44d771923b6e286e41e7e23c33fcd8765e06793169999544a310f2e080ffe13640b85f21a18fa11928
+A = -5c01fc52e86f3a344180bac284d2376d1bd693f20a46479c77fa57077df62f83b1e81c94e577d1d6733d276f9cf70555b20e3afcb97534e4e0108a6cce87e9292d78b2d7367ff15fb33d2c3289d2a2913b58
+B = 6bbc39283be06382ea91ad6b1630b38f32385ec90019d2ded7ca6fdaa39defbe22585be0df9c0cf613f6f146c71f901adf525336f6573f7f43e661c44b7097f110d4551e8c75449da8fd39201ca0
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 2a01005f1f387c4d8d24a365708e2506b044f86dfc011262d3577f7313a8f51ab943037361bed1858e021f8a46491a5c73284c666eb65cea1392a780219f13d7188721d7d4b975272293a5eef63480f30cc9618aa74bc51f4175246301a46fdbd34a6ec72d5974aa920be5f321a97b8f19c0ec56ba10eaf2e61f2b45f134b304
+A = -108bbd8824e8c16b81dfdd4dfee691e012e578cb9cc80cf050c0ec4cebf71a968732da36552979ffaccce6667e46c29144dab75132cb087681d5549dc5508f3719e129553fdc97f545d7ddb7d3a4fc575ea67c5
+B = -2ad4d4078c47a3c8f5f9b48e10d52d72349ecf0f54abc60bad63bbbf4d8efb185de90e5e1a686859e1c429e30977fca492aedbf084019e9ceb4490aa471776ed2e8a09151b37c5caed9ede66922b7ec
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = a1b1b2d33cb610f1b398e03f274ef39a583d13af14b79e6766859b9ca748237b481a3cfd5d490a073e82e3c53d3ff5cb6219b2b2f71927f27ab6f567547a22dd35fb5919e1ed2b6dfae4d536d6d44fa6216d94d26b33f52db06c4ecb29702588b73ebce87569639f786df4fcf569bb07d5379bf8b83743327248c2d71b5dec6a
+A = 5bc53b3895cff2bf7bf10e24fbdc43d17d277a982d5d92f17b9b5a2b9ed8b6104229292ef3997591e2e6a116fca21ad5d061ce438f33b7f7110293770f8313077152c7546cd522ef4054147edbe1878072b1043e6
+B = 1599b541c9809779df3ef40971e7a83f21564bd5d6596d51a3d96defa4dff41e83ca6247969a3dd9a746ab72ce21137f2d7ea015ac6b2ffa8a32997e8b821064d35afde3435b23e47cccafa74d5192535b
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 4fe8897417446c493725521c0ea5b2110f91a1b5ba236cbb6ff3f52b0036a49fc82274ca949ac2b592fa4bcc792114bf2f2a78a2cb44cb22c6fe7e4bee7981604de47f6da2ed1fc6a8eb32cd9b8aaca0f2feec76a2438126ae6f409645d897769a6d340308f82dbc6a98ac059fca6f903c5aecd668fa838b67300c654d4013e3
+A = 1717c6503d069103f10bb4b36427fbdd2371b30793e492e4161fe185b2e27469fef6a25566d6b46f6a7f97446315a22d1f1f662f912b17e71feb2c82411ed7eebb84d4f594deffee14934b75a845d83761f36141ecb7
+B = -8808f540521c20eefaa037fc5da782c891fdfc668b955eaa2e4edb592e027a964b4cfbc94c548d785d92992abe282d90dd137c4d76419926740ce138d567da7350d89f2e56772d8f5bcc9ca8d7076540fab3
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 8b9311808bef497d8a5d14f7d851567a196a051610246964917a1f9d4f4449357d2411ba9fd93983f6edd76b8a8e1501146b08b6e1fcdd97b6a41cf637b6ff0cff7a2d6351aa1ded93f8fc1cedc81879eef751bebfbd1559d5d0320595c79e3eb1db0951d7c67c663bc57a672faed9e14c7da6be6b0c6bcab3d4d515e51a0b5d
+A = -511312fce1849c3d177d42088e55d534f9f7096282916e16b041f66ea90e2cccddab5cec0ba8ebf0b047ccce72da349f420cc28ab19bc156c1cccdcf5216f19ea922698127f090e97444751dd58fe7a2c90197a9ab3d35
+B = 6a5cab5e322d5f651f798aebf43a62af772fa2cc379905e72d253c49be8193a07ae6164f21cf08baff906ef800e361e1cdf1604f454483e10c8b2bfdcce77c12b0320dea63f9ac0afbb86115b656d0198aa883f
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 665e16ba6cba87c646637a233ae04805a302ef4a10d79c5b65b146cbab8c9ccd491faa32937d0ee955dff7dd0ea3f79fa43c133021c8680490b91d9c1d8a8102ab709ada7508bd59042940b2bd3a4f8c195f781313e45fa8d3abda1f8e13b35811b638b2ab101d1caaa92188d2b75b2b10d596ab159583135b0d4d15fcd3d882
+A = -1375af024e9974cf8170801f4a709b4e5862ab7d18464077727bfc2581e557cada991e9484a1acf80182458158c44871e67e783f7573f214ee4ea1f1821a65068f2bbbed7575f03a4bba36b0fa8cb6dc58c73b100a6c4a6ce
+B = -2d64b6bd987d496a3c121e89f4b0c88b6ebc6e30fa9d47981b52862551f3b7251a3fc376db0f2d6daab6e6fc5ea8fa10b040d0dce334ee91d8cfa6db9648df907b199bb11b2b5c41c67d72b760c404b0451f70fccf
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 49e9709810d9f3fef159e5cb45211453e7a94878dfdece19af839b89c0e43b226d7cfd46859963c7ccc753350e74c2501131474e3b8e0edcda18583b0392ee15f1dedcb7144000fc7fa7eabcbc83d12983d2ade477b4687d75b723c1a98a951d21b2e8ed95735aaec77e00de288d16422fd259c665a08a34331cb99299ac11e2
+A = 4e550ba2fc2a44452f068860ce2a59230738a7a15f5de0aeb4d15bda8c61ee3003568dc5971e48343d402112d7a86860a7f08f5cdc0de21fb1aa064ee5df26fa23839b5ff6adaf64a4a18c07efb3582c2fc9612d2208fe99f8a
+B = 16f31365545772f276d8ac952506bf4033a884edf1ce583a63d8d9f6809e29d9cce3b3d227f839e6c09b459951465ab4570d2d36127c0f677fc0a63975801896f2fd17887ca16ff7f265e2e7adab1516ce56ee1ee9de1
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 89ca20a3fa109a65b9449edcc729fe97ed45a9bd69eeb31d4a566ec1787b24cb7a2c25b3f89b36fef1cb3645b17c69ac8ae243cdba35e17f5738b35278478bcc391add0b5ec42db9ec1eeffa63a3ecd2ac0338db57cde9d2eb9ca4bb1df84f1a62245c4e585c4f20f26c98fa1957df34409a99a18bb442ac14f0bd309266a35a
+A = 1fd8a096be30e4435ce8cc604ded337a3d9d2fbc9666d1893c38546c4e155315b536d1bc323c1e7be162bb0fcd58440915b053ca0d0896e99265241f2afd46605a2a7486e1394a07b23f3382cd190e943e596c747b6529b04bdb13
+B = -a3960a51af5ecaaa70146ce55d639005e9b6b9b58592441d5876fa71470ade6d1e2cdde17bb80532551bee0dbbb71a0cb24dc8a129c1f6e28920055d87e9c66be27fc4b425737f36add7d72e39bc83aabee5534637e2e22
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 654d9c55d4a62976670a5ecac3a6165734a65f1edcc1ca81a8c444dbc98c3409ac8c4f6fbb92f122045fef8b7971a276c7dc4eaba21f7be7495394053d4f9bb14b63fc02c8a55ad8fa9bb9aa26aca5c47968ea1b7646ec606f53606d5529ded83639984683b8a020e8ded4b2d9f668ceadeaa8160245b36a819db14e58cf2bf1
+A = -67abdbc70db183b8c25b0664805ada269922556bf15aa80a47d31f215e216673b8d59edfa10a74f3f09d066055c3b9abd5434ce95eba91dd51576adcfbc7e2556df95fd6642a3b7e0486a635ed5699eb7fb285589c887c8659a2b7db
+B = 6ad3e854ea57aafb8980f1e99ab9cda24f183dbbc513e1fc92d4e239077816843f47927bac28e41d3f31c9ef134b72c09dcf14e2e9677a430d43002ae70c577d9958341243030fe58a800a068d6b01fd377e61844f0d434dfd
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 74bb23f7b0cde7924ee52e58bc0680f151e6898cc1bd4a2eaaa05faf218b419a19ebf85b0219f924a26002f9251b83506684af659e5b680e05138432ba227977f38a479ad9d1f3cf68a86ea214645fc4bd1a032f995307e9c9ee432e816fd852655ef20214e24522c17799ef41d1eebc6e097b9792757f7fc43124c609ef9696
+A = -19d3e6fd6de9092cbea55d65154208a0c93ae409c3ee35569cf774b8c8b7b1c9dfdd52e9f408e14ea3153073ed8d92746474e524a903a45a882fe46af92b033f2c41eacdd7e3c1ff661dcc5349ed6bd1aa845eb1762f27593708aa185c7
+B = -3d466d29e8c0008ee6f402551e3d62fe044787bc9f243db9252ea97da9bb75f5be416def97f13cbb008fee77f2eeda672bccce1f36fbcd26e1f1299619535da0a3fa3ffa0c6fee82a494efd7407cc770cf46ed1b8b143f42790a2
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 197eaeb8221b431d5fed3d701a175abc146a9fedf8060e8e611a54f8da2fb27d2fee4539ddce1f3481e6a64435f09a2d5012540d6069900a332461471b22192fb87b63221c7822d3f2fcc35cc38feb6b3e49b5b0fceb52b0ccbdb4e1fd7b0f3eef3d582a6ae194c249ebc52f215b568712b3e50bb8e01c64b114955ebac2da48
+A = 7bd216d0acd4ee392258a7341cd56bfb0968492fe75da0c9d935713a6ac883525a4a520b5b7940b05e3f5e0c40372cb11b7ca193e93f0d3883fe5840e66346aff0f38829322bbc1f0a0e63ce5e528ba5b13596ad7ca19d20b2a7c9bea4214
+B = 1ed4805e53630b886cd733e5281f6d2699b3c79da615f4056120165cc63858ed2ddfcfd0af0c5fc54662aad90f26c55dcf70a30d04ce05bdf61028730b900587716e690dc0c6e02419622ab8c115078b92315e7c7a5ffe38c4a404a2
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 40f69f2d1660eeb6e1840164817621dc95eb930875333bc3f62a644ca5910c1080505de0d54fc9fb6404a61bb2c03b3981e558abf9e86f2047c3928599b529ef3d91c7ccd13c1d69431fb9ea3f02b001427cf519d9fd8182219ad904f47b3785fa05ed24cb0ceafd537311633a2e26c27e61be92eefb28a49d7f583cb6e072c2
+A = 155fb75044fc54a6ba6c46972e2f97531861b8d6afbc358db456bac33a44bb0545deea2fc83023c08b7be473eb68accf5b65b3c5d6af88bc6d8ce722c80d5d1527e475905226b01ab9d7b5a6557250cf8be935339db330df2dff92f2e88e80da
+B = -8c6016966a2cdea4b2d8625aa367e1d079638870f1b61e6b3c3a1e6281ece41018d2ce93684d1f0088d021107fb595390664c11435c6c0a7b93c2c6895217a89c469a37d3250dfa457b928ba6119b5c9ca5f2d47b36e60e4325bcb4383
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 9b9e6e1727326fea099eeb008a36539f3d47e3882b77d6089032b99c6cd36ad79fa75b7c19d1509b3ff022ef781b6a8c16fa6881f9ee2c4e00a4dbc93a49829622f4ce6ba9c55639656102d81167ab8a5e1fcf14d71caa60be732f1fbc71250256520c7c5a4579c3fdafc39356a2bbf2c7ecc526dacc0293c7578424c939ab6e
+A = -54cc11ea9806ef27911ba721f19e2ccb111045711d301863792f0cfac798758f0a29111e3a0f84d294a79721067f50858767abf507cc10ec9ea3eb27a91f06e7f6b7b4be7001b548cb7fb734166bad6739935081bdf6d35d58ef56180d377e5fda
+B = 7263e8b9a6f5387f44c55af64b64160efe97ec8a8159e723ca8977bc17c861e22041ea227c9c9bb467faaacfe352b03cc620eceecabb6db2db108b49c69752bd0cc61a5e998ac2f404ad052a51286ccbcfaa214ea8ec14cd9a2a6db56c3d9
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = a18a7498ac9194f600cea3d66615595c27a3efa7ea196ba12a80b5f608f85fa72afc366d23f5ca98452dd190b8f86031a9dc097f94a217b29fa676a6042a3aed2355cc8e767d464a8adb888491c8cb82dbec8f117f57c4a07b41e7e6f6cbd7dc25418603b1d1d865dd2140a649c9d52019ef39dbb6809d1b28b3c1ae64fc6813
+A = -1b663403c73e4a9003467ed12766f16354f79073ce89b66066857d19f3b42791eb360004d23e02874254bc6db54662717739eced153944c4776f334576746c5c4145b21a23caa2b2a137498554c7b749efcaf3393c5457b2bb87ee2ca3bef5f191107
+B = -21d12aad97a5c6e639a2ea0a82b1292aebd418567718014465a22b9ac5c8c927963a2a4530c41d5a7a6c14805e56a7092c8716e4767b54a393d8552c5d3c366b39fb3b8667c60e6075e9293bc938e407c53afdd1174843b76aed187f56bb4be5
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 1983576ed73d4d87d8b94cd3f70c149c0273e966176b85fbbbb7b3202e2c843bf1f8f4546ad7a4916ea4c731a22bd337b6177fcd2da8bd301f3af9bdcad800449b57986e7cbcbc7eb313d6512b2894c0cbb6cd753a870860a49d6a682c20b5e883b8c4839b3321aede51bfc42bca163a924191feaf05e196d8dcb7fdd9941a60
+A = 576759af0f02406e8dafa330babe9473d9d970bf371ceab30d2f98f4470f669e042e1708e2677d52cb9f99deb9b53f30727d16c389bb63e71e923475314b615762c7612269b5ad7bcb5108068bb5159cb8dbb8d08de2bd4fa4d9db6cf6e3f5997b9b416
+B = 1a4e34794747cf4aa626e964b839ac497b1357090ff63088f9fd4399312df894e41b395d17b8ca1806baec6115b1476912ca9c4309f00a46d5f7a52c8f640075422af06d6d6d796359132f4955072ce90e61b40c992a155b2bc31c262e753aa7d00
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 3448648ff9f7425937b6faa54551ce14dd15566e5d41b2bdb1a8db62037459235a5b9546d289cc2295b0ed584fab2e1a798bc25a0c114238f61ad3381a5b441cb67f92cbf66007c980db3351adb9cfd2cfc769b5b9b0bd1701425ce1ee8d4b9f438ce1207fa850aaa1d3d1f970aef874c2b2499a150d29c2ceb7bac375009b77
+A = 1fb54cec882c274b98913e76342a9b8e631bf1d381fd8a4f7e0eaef475642ab3f5da70ca2e38741bd0182a959e5e985f1e0e7d737beb8c725c9b5ea22f7ec25b6e564809601e8405a5b1362e7792791f55ab64a57c03a99a8518d7f65feb0e21be619a6a95
+B = -8180d172d3afe00e0423245f47591d5f750f20d2cedd8ba6ab6f9aa24f74498a96c9001a0124c4f98dbd402b63e71eaa3a7af8b0d2fa417fb1d45f64e10030232b9155169153496aa202745a432e547002954eedda7cc9c1ca76811bd902b192f1a1d
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = ae0fd585408a99643271eef575285a6261a4c4a92c1956b1ab436d3cacc8d4cffc07044e57b357ffa43bfa9aaea57824319579c5c3e2fe4dd48bc818178beb5fc1ed60afa08828657d00bb88894c975378b1dfb452a5b88fc3c1d81099644a998a47a497c8a2b12c444fd2a088f47576b7f4fa40f34a208fbc3348ce33e59150
+A = -7dc7dfb753c0bc3ab4d07d5aa78664a7f57d64be4d4780ea81e3efc967fbf1bd1390248bbe259da32108ad96bd8b39f2c9f118bfdc96bd06147f812af831288bb687e4e1742dcd1dbf2b7adc41afa28d07dfb8df8bb2da5359e66330f5c65964096a96b31dd8
+B = 756f3e407a3ae698f103fa37759e90554f38378a9b8eb38581e0970ec8f9c00f8392612c61aca5fd37d1063b78c19e3109f35c0684ce523c634190b3164ef06959cc42e2b77e1bb2fd50eb59c3dccdb6090beb809ecb0ca30457a5c5948328eb218e219d
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = a2aa4550e855623a8ed488bb63db8fa4ac374c1ae953781aac590f78a364fc33380ca2806445fca5bb9ca2fc7ec4db5819dcd5769e3b746286c49a7c80149e7fe276d095929e2cac6ae57e8102f7d4c96261ca44cb6f1601f429528495b6c3169e15f9babc5be696074d45559d5abdac42393094c450d6a4a45bbf60ed7847da
+A = -16d0aea9c752b2e6e4e13f7ab1f0a2c1776874967b0dfeeef7e00f8d9edd1e11d2aa702be45fffc284c47811c51dcee184a134b8f6d1874026eb51e2ec80c94837af4602cac3efde556ebfff578fcc56c00de99a43638ab68387ec087ee269ca64233eb5b1762ae
+B = -3c6b60b0ce4b13a5d6d9ccd67c76ec6b71b94ea7205e408eea099c7ced2f3a462954741d353d0af850b10ffede8ce0bf80b6893288413674504829793d7ae0cba53b163e3f26cd99beb0a9ad540f6d2cd5097beac604b1694a9a2f4c48b28338f9d6a63e75b
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 8a1a8fcb68c53846b3edae33ec070ef5cdcc1346ab3a98a116344e6d2810e2e3f60f0fe435fe7ff257c7ef4c122b3c34c776f4912a9621b6949308e2cfe2e0827536c7464371ce804bd7cac1d76c5bf8b4a6fd4ed56b65434c3fcf0ac7be543fe2d09ac01c564d7b9b463740dcdfa9068d4d8e33f29297ab452e6ec55c263de
+A = 7c4878334ccd9e20cb11a643b206626ea5d0b20973f18535cd8f0fc2f0325a67d3558e4cc9cceed0d88c6d2215c220b8d0ce230fd701502b02081e3f6548e58e02bc2e79e4991f8ef188a84b0a367758b4e534b72cd87de7f82a26de14fafd162a50b359574812cda
+B = 117d8b1d2a3e2049e6edbb9494c68a97145ac3e658aeaa05e8ecec4b090d5f467cde34e05fa7f5fbfa32f1d9dad70955f22130c358468eb371555fdf57a40e1df398c166a22a9df2e1f4e18590b00856b4f880f6629f1a4296056dc66a29b6f0f25490c6a8209b
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 2cd3de06953acb87b773b8bb28172b24adb283d6adada676f5f4548990827635c51506c85670767828dc5b4b91b45a7ab89a700d70bdba4e0355da32b52c173305767721d18dd2cb6c55f890611e7abc854277a453c7500efc4cd4fb8e6c9bb7a73fe5c77045e715fd35d415b3496f7463ec902cbdc18f9f6f67c33fd78c3210
+A = 1a20ad042f46330df937b879c72ef00dcf39fb85b59186b8e7a9d40723288677ff6ab2b9bce95f34f2de37887c8a9cdcaf231254bd00c7e25b6042695d7dfc05a11765120d1dbce29dc74f35aa1492ba0c5ee65114d9a246b57dcc2eb2ea4a310be98383fb934121db20
+B = -f8ec67323cff9d53499ceb3afd44b28f0538c39dae8c965ea27d645b430c2f8a4965eadc8ed864f2549eb636ec558419be71f986f4c5783d0dd5253738b876d9034735bd13b18fc670438387f84848308d9357ec2aa4f6a453bdd36ff08d54a6800bb41df416b17d
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 1aebe2bc35eb2e449bda63513b1bfb55988cc8e6ec8b3c8fed5ce4dcf53b95f1b438c41e3b2348412b35e1f734edba30273935b03d16efaede429960442a01849c352349e23b4af88de4d01e9ddb53ae900418d49a84b7fadd2669261a574557c4fbd782f8e8f400895f6a6c9679b72983ce01bcfdb641f5067c94694e9eb80
+A = -5f97994c39265b5389526e3847876a10aa3699e3c3762a127d1a9f892180cce68ca6139a6f71b235da26c287bd3e1aaa1436746d983c23c3105c33ed2e06baa1e880f1744d81a80b98ee1f16220940d721a92118a9b949d4da7d1477db8f5b357b3ceb7df34eb5f62078cf
+B = 4bb4f8f4f4c8e63238e8774ed61a7eeafb3fe9a6e19cffa648defe82f4846e3378c892d223957564fcce79596151658a726031a6921cdca0adf0f5325d858c048a6b94312ebfd19b803eefcb93bbfaaddef120ec3b8c366b6d978524d5c74218da77e4c3b5ebbc66cf8
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 5d64678a32c163874d1c81824d628a1051bce3b55c37055acc47a8630d3fee648df5d319e50b4c56f465bbf696433409b89c07e442425d3018a059ec757d77b3a40d516ca3148010036b003721ec9c999665915a3c442d95ec3c01c232feb201be08c88fa3c6b0769e3da30f1d73b66f98e31f4306bf4e23de78e74743b224ab
+A = -178d81e419f0473c426e24428caf25d61b648bbf963f7fb753ae15e5ea3706b53b00bfc8fe917ac9fd6c7096518584566ff71e6d35197f9aa25107a235678cf9ff8ae1501c1d5a15d2a27d39d066e169745e1e8c808209bcede0d732423d0c9cfbea322ba3201ebefc5315c0d
+B = -27ed464895b65d9518923fde5caaac0c72aad0d1b38fcb7827d6ad4e0c8dc09e119b8b98183f0ef8d5d1133f3f108e951caee035bed0d48bbeee6d1ddbff5864bc192b84eb8a500cefd223972ed51c7f720d1736646825f95f2f10ce6ad47a267bdd8c80f65d644df158d7
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 52dfb6bcbbc5cff46942d76ba45301cbff76e9b894703a6a7fd1af29d615336372d147c3932589affe5c6533f28d3e6a57ce2d3cd7448bbd81e09a13266ea31630cf044f654b87ec3fa3294eb65873964110fd42d86e78d128bead5f117cac98145051552cc3a86c193d738b973f866d068a8994a49df3fc7c7314fbd9805e80
+A = 797c67ebdc083f3c8b3ddf9847b7f3c2a39e35ce2119f746ec87fd5d86671d8fcf2b4f6d440c43e93f45019032e629879799eb58adea729d43d2e40ede6485143bd35979609a12faae7e4393879c40c0511c886c66a24454e4f9912bea944eaa417c9942f09ddfb227feb14e4b4
+B = 1a599d1cd0ab3614f50b71b93c999942bd3d4cbfe7900122d5083151c71d9e0c299bd927095c5c3291418424a7c12947389bd4e0a3c2fdf67b3f512094ec0ce5b52695e527de2b3804dca2edaeb1ea4b487911053272ea926cf2fb3386dc4b1dc268b808bbcf4eaedd21168ca
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 99bb9082e4537426c61f3b813f8c97675c44ba9ca418960ca6e2464cf61ad4eabb01ba00798463567ed3d829d3f14201c740f19fca623b1e9b57b534a65df0f070a2130489afae89b91003cee432fab11426c4d13b7721e6f9db1bbaf0adc0064b33e4b9f4b795511a0744b52f93e3db7bc9c0a991e4e122c463ff344fe14cba
+A = 187a8144a0045a92dcad94f0bae7285309ec8fac7dc864b08914e5a4dc3b1a6bb9212161a18c22682ace16a4bf3c03dbaef088b09844902a3255fd6adc0b7c6397dda86d6ab67204d8061c36ca20fd4bb348202037b249f6c110c31580148db46dc5b1bfffa38a683a27054c35326b
+B = -e93ff16817b725016279a32dac247961ae9bb00af890fb49c4fd8cf5e815cf98b58cfa1e3735095e6034c9a2f2b5d8030ab30e2271abb45b347d755cd9ab5ab5ce37950380cb306bbec42b6b8056793a0955bcaeb23e2d6a9548684030566eca2d34c458f224c8e337cb8e3c252
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 631f53d02c031f592b3dfaeed106160488c08e0672083ff195b22a2c0b006f11165a245acad6f35dfb15a871a9a2b45c544111f71f86c920b42fdb6551e56c55199e6173c00e27c9f47256349a80236bcfd3acd1730f823031ff9ef594725cb9429ea183a7fb2e03124ebdd98d435313e43819d995c4fe81fdd4ba718aeade94
+A = -72e20f1aa2b5f2c4218fb9e11ced3f45a218f4c83a2017d97d0cfbbf227c9082cd43f939c8909e52c8795cfaa75d80392d3649dd85ddc35bf1cc54ba389bed9e9dcf867da1c05eda080274beb6b868b54fc85e12ae127dcbfffeb043f9d59333d0ab3374c24971e1bc7269450b418c8b
+B = 61cb021a3a957703d14061c21d3b0fc19598e19a17df9d6f2418c76d4d37b3f62bd4037aeeb1eda37f83df44c440f5e49924cc72ec5b153856c6b621350ec89d98859d9d1ec7ac4f0c418c6599674322e7d618c5ca588d5a873d5af356d4771c6cd375f5dbbbc69f50b982b8c4d1ec
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 4654a62d9491f28599a976288cd2068d8e3228da12f645413a92f482efc66d1737495cd4a4c733f147eb5414a2ef6266a116ce264491a3463c9df1b030d83b315f76f3bef8cbccb5c538478a65092547b91e991e6be91ce4549c3a6e34aa7b466e63eb3b88054f6714083695c616a078ed54e1ae46e00f3593af845fcd0ff51a
+A = -1a342c154aad619e567fd32e7053aef8d98335a4fa0e35bf06acd7998c43d821de1076dc1fb67dfa1156d7ff30203ec736384a9aa7f5f08cfb302eb3a2a7179b2664094c2cc0df73fa05bf2af24a62b8e394fc76014dd83b434df26f8a67a624884a0b9b4f08f33e9828ae64f5d0c8cdc2b
+B = -2c57e15889c3dc9c94361c17585d506933a72fa954ce44dda9f5e33408552ebf49cae87bd0be35197f887fc6c7deca1452a4345eb67d19bd2e7d3dcf651667a8900388e4d5ec71e9433e3b01d2b3d91bb94d0fc3c51c70793f978e4b5ef93a9c6356c0b2f7accb9e4eb457a2174b50dc6
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 6124d9ce4de2880ae3811836235d6d89a1a4b710f1d5a517153ed7729dfb5b56b0ac10a4bbc811db9b26465f03cda355701f9f28c5257fe288743cc0789cc54a8661f46e36eec357580b00a84f1d4c8e3d689bbc18242f1cac30a87cb7a47ea06f80d7c5633cde4c8cd8a1a7e27acdc3a2aacd608cce9e2efe7864d41a56ceb8
+A = 7b48a9663d914e0225d7275e965d866ee6649d7267474d5336d28d54027ffe8572f4aa26230dc7abe9957d211e6c2c8f3185cae962b878cfdfaaf6cfe32058c299247f372ae170a1f7cf71380787f6e90995da9ca5a4be8ab1ddfa8e6e5dc65b6f168b9b8e29e0257e0eec853a6e1911b1afa
+B = 1fc4dc77f4a18d4406a4ba536e500aff68d133c6e7725717ae6537b527c6f40f93202a2292522fe7d04e0ef804d1a7013b04cd3d88462fba31534770b56d2e5672e8a6ec7a723186024c40b4717defd1433b9967bd692ef81d5d4e39ba10a3223d250ab6e71d5d253dd0a732ed386ad57e54
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 6443de73e1c826c90aa36fd7ec5d0c3324c42058b1c35d3adeda1685470d363732d23cceb08c3f973034c24fe65506bd33dc45d7d617a53048dcc103d3d1b4fd0534586c2fb7489ff5ffb98303bb068fc14b1bb6bb43f763dca2c891095e613bb7b6920163aa6cbce8cd93d9d39f4512b6e0b28d361ae11cf76037eab4cbc819
+A = 13f739846ed2c3aa0a1923168cbb46f4f0a2f3942ba57bfa5c426cb4d4b3d80d9530405a31bda329a1814c560d54defa3e03fc4f808606a598607783d539dbb1338d5bc0c2e272a7ff6ee6f93e1665d6f5a0ade30308fa047db086646c763106cb875e014e2c18ff8837e4d4d86861b85a5b7197
+B = -ba019333046f76325fa9f258006a7c10d27e89f6d482b95c79296c07a65b8e3bff4a9c9fa7e5d0038da129390ac851f8c0651dcf655a3d4164a731cd20a701895c12a906c732906038a8e459aaeb293fda21346964a6d53fa3e370ebf43c7ec8f66229405095c6a509d0fa15dcf45de8d0e901
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = d3a6fdf4a26993edd175de9a0f012e1eb15a5a1c4dd2741dfc6d0f9177cd5645508b8ab09c7fb34066ba893c38144c7f2ecadfc2b0d15728b407e5db4fcbbaf1871580426400433f14dceac43d28f03376e791b7ad01a112981f29ff4b66102305f0ecc4fd134c2cdc79a5e9d9f085bfcb7e6c187980e68b6c7639c12e8d200
+A = -464cb16fdd395e32fdc613c63ab4768f8cf72a5b74a0a5b0cc581ee4aad1972cd97db7966d3124e30c9a1c80d85c46da2d36eecd7c3bba5866f9eab4d0fa55b2d440a311654466432c681372a80a7896c9163c12314ac51f652aad68fd9012dc63fae6c7673c5da8faafcfa1b4ed5550f2baede5cc
+B = 40389ba4d2f5fc152308c9e8a8c36258c770fb2d03e6189b96c4f8dee97ccbe426cc14595c8482e9e22486b61fc570f0e7aeddad2f4e3a480d4b75d14294a3b912928da5692043bd98ab88ece87a9bbd973ec82f990c0ae6091245318c2810187d69c38fa80e835300ed06c0723fe475f3fb22de6
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 8a0f9eff3a210912828fd7b5f2d72479cc9ccdcfd3e8d21739e301de02dd5c257c7ce4bee2def06c9d0c90d5a86bc45fa9f31e456d353775916b3d5684759e4500f99ca1f91f6767a5e2f4b735ae4b756d56c358a06447fa2c2ccf0ce667be4ed143e9e1dc627a561d92ae53a62477270a7944482cbf671138bd2a85fce92b08
+A = -1da555639228fc6ead68049d836d60a4927ee77472fa0ffd3c787d55b6067012560f5b1c2ef8bbf6119345dc6419444c675c1c9cd50602a93ba3718a5b3e1a30bc108d796998b24474cdad19bc2960b295fee97e03f2ca7589a3daf35bd28eb37a67b5d2cb35a30998d5f8622bd7e6b7d3fddd1ae9670
+B = -291fea1ae6dd1c66c62ae3a3d22904f4b4adb2a48cb795d50074095345d661a033f67b20c5d7231236dab871892deaa9458c235c342bc81457cca3f014a75f5124ff4da005dcc1108e75527528e5cc9c051a97fc6cd202bb9166f9e72e366bdd77c965a70592e5684fcaaf2e03421a2025ca190fe158
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 50f4d25875150bab63e4162265a632109d6b4743f9d6b55306858034732a4895ffb3720286acceff287c38320ee9945dcd0a1bbe5ae1456b7f36337cb7d22b679a6821a450765471257d52b6ab7d59a763e75e9e64581a93aa54761f6a760866d6baf186cdf4ad2b1a6af26a3e76cdc261d1f07b0a7122c8ffdef595812e7208
+A = 78a1609a7f08c93c9bf9090ca7c93459aef815719b5dde5f217567a9f68ceca05594f6ab17a4666ce1c0c4434e0f4f38ca1f33e501d6958a10da47211cc011da219d4373d2bec4b7c6477b1ab3b00b6c45279212db39bcc11d1e7ba49916c4271adca7eea531adad509ae119348f374ef1203c5af8bc019
+B = 152b46095d3f8db5e6e1a9e3f35c085da00e52764b261c3aa775ecfcd38572d2e86bab2f4bf29c2de4fd2fb6f35f66e8685714634e1be980773526bdbf9c43b1335c5d59f4dffe1a1fe2495ff9b7a3fae3e53e7c3208968e1ad1dd1dc8cf2e2415cc76dfe5df9e2e1eb63f7c7687d539706502d56247728
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 5a3ad8d6f1b0763b77f5d40169ff0013de638b459e401f50f4cfb505565c8a4465e28ca1bf988071701dbf52ac456e01e170788ebd2b7cccb50dbfe1a65a89a8aee18b3c11986c9d6e6571f964f376f322e10a1ddd9310bbb40f14b0680385c40975aba43153970237c535c6b0e2cbf6bec918a8fa26cb2f69e98d77215c23a6
+A = 1d5c14b0b51cf31e9d97b7c49cd26097d40454978663f8a74095fcbf9c63e533708befb1a467f94cf599a41220ce13493a273fc30c49275412c5205db712d5e1832b39e65c150c3a4b251e2aab853e4ecb4f00ee5ce6982ef9215775a33565bde3ddbd932665aae506941d3ee31b3f9e4ffc0651f1fb4a5c6d
+B = -93cae5dd84584a2a3d88028d6d4cec4146cc5e350b4d92c52ba2393ab69fc1dba96e244f98e2f93f31230904169641aff30dfbdd3dc5fb1f3489d63aae1efd29335345a79ded546e42f2ee4a70ed932699fad17a771ba65fe6e689664bdd1135219aaa905c962d39531eba3e82c3425c24041e17858cbbcf2
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 61211c706730a1b98c628b3c8cb070a42e2ccf9fc6302bb1c2960fb165087f210e9d93416ad9fa21634a05dd0723cc23b8d2a846ab7c3bc402999138433725e737102094db5792249b4b5b1514a416b80c804ecfb04653c5ab18b0a34d8777f6c2955ac66fef62c9ec2819f0e3c075920f951f86b32e02bc43239d9218580067
+A = -46c8c68f492d8f7ac7834f89bc76098146432c59b3301d4eb70d9861a6e24c7c9073f910108c7b35538a79de10640291b54e5755359baf47482b97af56475211573576e9412ee017dcf961a090a6ffb5cd995992ab68e3fe60b6186f7595bd9b8acf8695c4f7359cb2ac709f032fb993d16a74822b4935536453
+B = 46953f424d988fd20700ea08880e7e09ac22d60cfc294bd4aefe637408a3cacfcd0ea6822a679b68b665d6bebed3506d25edc83cc7154b83e22953f9d91157cebd219cd5177fede28c63a15710d0f92bd9e542a7586855bbe57a94c520408fc920b3f8d65b194af2b2a580c90db1cdb27ec26ba929de4573c6eb
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 50a063fff02f2cdc68edccc23976f4b3db99641073c85709626292b9475b9a988fb8509a6223f0a517dbae0cf7cd39dcf1e8ae75196d9f5008c661d8b5153cbdb9520c71068e4719820bffda4c393032edabacf99339e0cbafddb6042ef887b8c498e87e16b62417934015172e63e7457242b864a47aa10e203f47320f03c0e5
+A = -1740e8be7b4775725516d37ba643fc64203f3a61e6b0164d112af56666ad97afb0059c2c4981fa81d72264f8669db4e50e11865907655b1f669c88f5935cacf1b12c1db63cc84507af12cf0210f990994055d04d93f148f213e3d4fdcfe9dc42117c059897697914e3e3fa8fdbf0eebbbb9c3b9fdaa7efa0c9d5c93
+B = -226308f8fbb35b5f9d129c0f6a2bd3e5c272a408bf32020905acc6d02d7e506191e76a3a2ac47cf7a63e6306b256f489ca5cdf76c7c3eede175ee4a7acedf922955e92599647b69d463cc14f2b178b88cd471b8a1c1512caa66b6d5fd8840b98b8d070e6593136e98cce9643e006b714388768920a79944be36624f
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 747cba0d1cde75dfcc0b2af9072c5027986b3e3917845870c73c452858ba21d6d1615eb71ae1b5a03ca44e22845d5432b368541b52a4bb02498668e8b99dfa2eb90ec1948d90564e6ebc388ee9816e329e1d8da0d3e2b12d901d47e22e8a1fabc37408be0f89e7a4ab0f30a03f7e2ed817006809e69c21104d0efe548165f64c
+A = 5fa76e37aaf0eb3d34d4f4c590e02b6c63fc62b1d4c9e172cb0dd82409df87ecb43a1680a2764f62d13a5e919db2db08feaf98d5cb92a859dd42bca1047ff57b8fe5974fb3ac11ba2c0d8e2203750f30650db4b2cbd31d07fe18c4df84a0dfdb30f9e528932c097e89d8f8be6ff029dd970a7d2c2551529455b9131e7
+B = 111199f91b3749f8cecfe90e9b9b6951472cb701beb39d63068c064cbb2a1e1d30736026f781836a52ad0d828be6c20303c6c0bd03ad664dbf6044a5bfb67fc20a049fd37c62ab0795d836487b883768ef7c8f427eb98e5ab6621fece77b4955822f8efd190c417ced398c221215b50e9532a869eceeb605fa1c936554
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 646cdb3ed472a7b4599f02329054846a8da173000eee7533240ade4dba82ee3d7a6a92baa3783c19dbd3f76fce6b5bdd83f1f229b1c71a6faa18602e368f1b0b9f8c62bd8c854844af85c2081924c9a153e27853b2a48147950fb614028e090e2198e613631c95e565c2b9b64a43237fd4052089f9d1dd2c00525dd35fa946ca
+A = 1c8438247c0ca376f508ccef7933724df512f9e0877596f7f4ea73dcd824809bbc472749833b537eec01ab23656e9758da22ab8a4aaca1aab3fe8d2cffa6672ca0c44ac029c2ca6c3e71780c28c31b5f154c8dee782f6ba009a69d83b1a3a03a2d6275bb8bc3932a1170470fb7e405ae081f4770b535edf49f73a12ba589
+B = -e365c8edbca8dcc4cc11986a5a901e4ed0adbe89b0ab70a53aaf5821862432a1320cf1850b515177b630e12692cb025e3aa43e9acee0d8ad5e48bb15e9a3f34cbfd39d285127b52dde58751f572ae68ad98692899ab12d35e33652c4426ec60c5029e51f7e32ec3d2031032aa7b6b2b63f84fb0023c81d031773f3652cd6
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 7a3e22f4a3f7ae7512ed73a07abb5ce291bc90bad507a5ccc0c17185804b9d231b0ae2e72bf270dbd60170f34b240f716529a449abea0b3d98ea2890a4ce3d9e2214819aefd070e00201e9f271de925c4ba59651e55174c97a13a30197e46997c6c2b152548111aa98df120a617c54b71f8eb8b0c8b4dbd5251f5509fdb8a1a8
+A = -78a99d206b4f095847e9a21de273aa6c47034c9afd4c081a8e93c2d75f4ae5b090921ff5108c863785c413e2f7b4a361506fb66b7561b8b1c5cd537e90274bddaa4e91ce74ad81c6dfbfe1a34a631dbe455d74ed9d041a9183da3bc469bdb214d2ffe893f89c3ae30f8ab99c3aac4d2fe864b891fbf4f537745fddcc60504e
+B = 5c41274e9590c1ea44c113ce505931758f2cef80ba3b10440941ec9aa2ac984b29868bece2922eaa225555dde84a8334f1caede99091165151a39538e5b7390e81df757f521236314239c213e9b874e396a022f04629c09bfaf929a0e9fe0b0c7386b0541446f6a2570491067f64e662d8611c4fd6d1c78a9f3ae69f34d14fc
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 7fd27b6549494c9bc860146a3e8ceee785ca03faa94b0ce0a964844e7871e813414cf3f111da49fed1ede5e71e5539f34173d41f9a17ed129016bb9b04c86487f5def9fe350fd4dffc67b6e181e3cb26378ea15ff9b9ebdf1fc86c072c82ecd8bcdc241301daf1b774af5f90f37e45e6126c5da7dd3753a1e5b366038af6ae31
+A = -1930548d105661dc25a5ee303b61b559c4bc1f2e28b2c40cf3e25f98dfe01a7dcca0f3dead6463b55a5b2e0440a651cc9e08e125535e081c742bb3b2f8955ae897909cfca683a4822896d8a4a7073c29a80571445c6a0d53d2efe4a30a79d2fb5d08c0f95b735a1cab17ba40d71b054c9270ba6bc870e58591fb1bf9dc9b7ee8f
+B = -3e2a4c1509494f94406e3843c9446edaf0a6060144637234c6d9ce84d70fac54ed163d77d210bf557bbea0404922c8aebec67a0475a3c7b74bfa2f226403ce987c705c712bb8eb0934c2b390a173c3836378fe71a6939e48d187b27cc7236ac115309fbeabd9ffd0396fb7fcd6d46a1dc683606c757ddc3212f5d2ff3f2e450fc7
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 2078bb5c82a394c30a287aedcfdc5271eb3246be05954181ae4f86ad2880ce674640ecd55c2ee3f4e89e2762139586516a28558481303e3071cc9ccb9a538f887553bf5726f3849fc41ab027fb1c680ce7dee3982587ec71b3760e5da6956d6894ad8c4526d8de953c0e681ecd44883a21f0abef1544fe601743efd3e5eadb8e
+A = 40b4ba1e977825b7accb941fe0c0a49936a8a47429dfff53502fc0680d705b9fa0efe003eea3ff0b649998fdbae8d0831bea7f34159aa4c7add6bc7cd56fea97d25fb9a6a10f4572c26d792b76c18ada19b0ba06b6142c420dbb40d66be669b7c51d8cd2a5022fe1a8aef7b60965c0176eee69c32ca5023782c5410adc1b15dbdc7
+B = 1bb2f18d7c8d306bf80ae1901115c8dc3d286baf537b812ce06d6872b61e5bd44f3c53d7f31ca8461b3628b255f85338cc325856fda5a6248b7c476532c1bcdf9713dff9932a50e52a9441aff96092d3fb0fd76046a8d88288d0cd55741083a1bdb20fc6e9c20e82490273354bd826bfe001322dde9a15763f2c0e6ffd2cf60019aea
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = ef21dcee9eadceaeab13287d6e3c9741811f6ea9d5bd111799ae05260b1de2ffbc192818fa45dd7befc3baf6840e3b9d24cecbcb2cb1c3d653c4aec6531b941d926fb6692f548cf81526acd0b6b0289d70dd11ba50ca8de6e174f502eddf47e57440142c7f74f594a9abcb48ce1873df057b132ccce8b364de3edf411089d28
+A = 19d0109e0c47ad45f57b8bb8519265a4390534d2ea07f969d84ad33556518b6234d40d1631be3c3cce6d59b7be14750aed114008458f50a6a84ff75b4ee7e4b826ddcb2d2293842ed29e4e484260a92199c5c66367c402bdff0f1a8057127c6ffe452498bb352802e0005e6cb084663bcfa82783a3d72f3a2a341b8075983892e86756
+B = -81fce71491eda139ed996f6a289dde8635a3a257ad6756e844c768e66746011fd797658184fb44b0e3f3c5600c56238ac7687b5be42529d5c9b97c3ce10f3219e1e451bb2dfbbb44cae0828ef894eff3b52b8dba4c115c3b471984441045f2c2db426cf5f86949d5bb7662cd40bb3b3172a19ca3fb6858315d688f13c17550e700cd5dc
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 8a5f90344071790373044193cc4fd92116248aacf05ce639b6aac4461ec3ccb0805ff9876ef44fa71088c295db14fc820f7ae2c0aeeffca055f8f7238c6c90db706d02f2cc43b4960abe3ca4b6dec8bba55327b958e75c60c5d1f43fcf9136f12481c267481a725eecc403a16aa6221346df680560ff316a63ec8b51dc37aad6
+A = -7a54e7ca04b9a22e2b986e72e634317ffa20f6f4ee90353d559db3f3c1bc6b3b92ac6b364f6c5929090373962b49b59cb5d87554387761164982955470cb45dd00c4a8982dbaae3a1ffe700e8903a4a8e4a21eff9d00fa496d475e0e1a205be267499dacecd31551f8a9d437f37dacfdf5a2754f0876a3e02509b78674e7ea2169c43f29
+B = 652001f073d63ddd526abc957bbb48ca74154c8f9698b988178b3313dcde9acbb19ea11a935184fcbcc31e0117d8d2ec695ac56b5a71614a12cf90f21c8882187428755b6a5f11c314ac8b952ced0f65db0987f0f87e20b82a811599f4160e65c7418af7f33604e7b8952b70581e3e02dafa025cecda970d04383ee552abc620dfb9c5df9a
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 67f903e0e5623258826b681506f3e94cc0b086e262bafaa1395294aefc9f6b6323410a44427010d5e8d8288993973ad9939199b85cf02ae0a09dfb69801536a3fa6af5ac373add7efd25ba5fee6d8f040e97056f9f6fbb45795c0bac94c51ffeaf496710b00bc9ddd8e445261d976168771060c9bd9d83838a84ee9428f59d6f
+A = -19c695ee3a4ada840a7e3626e61047c5081867b15843ee9a6506ce45540d23ad25ff23b72f988bf26ab8b98363d9a2997773604f43fa732f59a4b16ddf3a45acdbc7976a1fce01b3dd55559c20acfbb7501730f794bc45fc09b1f035d60413bbcf32a83fd3c41599049a674f165ac5283c42aef213d777ae47eea960f7727f5758146efe5bf
+B = -210697d47beb73f45207340a183a729a1e78d84bdde1c7d8f80bc84559c4aa4572ab0e6927ea175acc7a268d05616201cb235e610d1012500c8ba9351a37bd68b4ec42227bea55cef5ba7d12ffb180873ab9d33d09e6e969df99fca728dc12dda6903169acbad38388fa9b001edb09056a2ee2aecfab0468822bca14a4bcdd3a4122290ec5ce1
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 5fbaff0ffcfb2330283fe59611ef51cf045bc2690e31f2ad3265046fedaa990b5d5060b3c38f17bbe8b2696e527fd77ead8650d329c2e0c1f3b2f5bec4dd85641022f3e0ae6f66ce98cde1a785bb52eca796ae45c33142e8264621ab447cafe988de926544e1a7036710128c42fe8b574f7ad69d830894237d95a55d1bc7f5ec
+A = 482db04e35f9fc1d87b42bc5efe25a049ed924f816e1b0f9c8ebe34bc771e67e26d6057563fd5d5320681e1207c0b0f4b7df547cd6d5be6a2e0f2bfb088f990b0303d0ef263cf45681e0e9a1147c29f2ca5251faa633ca53f6e0b109ba69bbe20c58a76a22789243d1acf128dcc936602e832a20a2bfbfedf963bc1027650f483814d7f5e6905
+B = 105aaf563d4c1d436c6a4552770a527776f40bbb844b7701313c5ada95180160e7cd4b7175ddb943e5a22c910585dfc184b52935f06b12c84b6431395f28af2eb9ccfa66b2ee8f40fd44d753c6a83d67a6f3fe3658fecc7fb2f4a8f357c5d244422e48a33d0e2971059695a59d0d39b235d5194e919facbae7623ffc92d771532b6b0cf771912c24
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = a9d204c1a497f350fa1300cbaf682c947eaeba8b3aa0450c1db9120852a2edd2a0249dedef3b3746298ee42834d869e9f765ce987a2aa4712a1f35ed10d0f7ba9cdef938b073c3a526e5bf45f3510c94ff1fb84bc77b08e2aa50f5cc75e2f4da37a8a711f8aed5e92f7e486877229cb4ff2a4d0755029972323c0b51a14fd1e5
+A = 13fd3d7cc9d6d6821d2f2b1c40c8e070bfa85b994ee8f3e0baab544dc71328a1a57b7ee57392ab6d24bd85f9ea0f2a312148fc4f4b22c589e9a265d97e73c7a5b420bee180409ec179c438a67abf37eba61ac76197f3c9ea5edf2d4b8aab91e9bb1a432ef1f214c043664a51ceed1f2854880dd458ca253f09d6f6acafafec310774a672d07147b1
+B = -8c90ecd56d6c7cb129d1c9c26e94cf919c5747450542cab52281d11d8fbfcf9ea797b29588340d146cc40e77dce007b68c0c24356d4b75513b75eccbef6e22a5b88417cb6c516578d17d871e7d0957c09795f9a0f19b811db75d61c27e1827fa2773846857fec020f98444e307d3e52af501114b962ea705cb0cdf815109054abd00810dcc270d7bd3
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 57aef35a3f5388c810f576dbc30d4e4e5a39248b319b7766311157179d8bc1d7ef019cdd8c2c0175a8424abe7b33565afc0128724fa38f0900140b6f96bda2e78d7c803124cec8c2f2d6649afde4030c76cd33394fb386342d1ce97a4ecd180872134fd4e22667a687915bb4fda21f7e0bc9100ed8cd3a6668ed3a235d7b15a8
+A = -673bb11795d9d20a1e4ce8ae71d041705990463964505befce5949f895fa31c92d53f91fbc110df4e789b3f3f01f184c55df92927b8b680cc92864466ce5590ed2e98901cfb78b32ea79bf68b57a14cddb53209e08a7f430fee23f4a1475fd2640a515f8b609e98c760b4301747ecb61f1e6209b07455f1c8a7bb4e20c269e17937f39c6a2fb7b2990
+B = 46beea6005cf96a2acb16f37e357bc8975f4dad502fc3aefb4666344dde456c0ee7ea43ec493b6aecbc7aecc7d4cd107aa09e874ff564f5d59d7e12047b048c1da1faea36a7e2d02d0567bc4db41b54a75110626d13597db698fffd577a5810286ea8bf50625296ee8070419345fa269a354ca2eb47fa3108387f6a4b2c0ea3e779908a14469106eefc14
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 5cdb7c451b2950c9d87638857407276959142958b06241b2010a9f93625f9106f065798f79ce5c534b9e5a31fbcbfc63cd200fc1cf10217096aa0194acb9043ccf7ced30d9f0bf66e0dfe27ee2ecc40bcd8de66fe2ed6f8cb0d874ff7b5fe71951412731fe4e19c34bee64c9312577b9e7b2ac08ed15aea753a6cd3e286192ec
+A = -1eee9d5d3854db52f9b43698e05d6a0f1d1f8df5f32884a775b25110309c46ec5c7e112eb64b2d7f948868bb9670068779b0a78bfc7e17860ee02692ec6790222b4384b9bd7db5abf29c46261c10d95f503b821a4694c45553e0dbaaa977892b916cb8990ac9ec29ab5c3d63ed77138fa1e95f395b3b233d039ab5daecb0296203166e9386d1071c61cb1
+B = -34587c2bf3473a2c5d7f3399d5ba2bb09be8105a0b9f3d8737d67b03d8b91b1c869f4e223d6246abd36d99d84052ae5894e58288a614a0da8d69f1aa57428632c2b059ba99315ea2f68ee210e65a741e94125ee4a723a7828bcc410aa2dae06ea8ed6cd23f66ccca7e85d2e071055787f230ee405e50d1519377cfe0cab4e5f97b6cb893b01134813a7c2c6c
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 95d0b209654de56bd7d6f74afaabed2cbb3247f449d80511d2d3c689f84c9b79587d78abdf0eb37f1b89f1f8dc8a83f7f9fac2c8cda1fd3fd64e16f5597b7f0a1df6da6db9e828ce7be0e876012bd52f5a74ca73ff8ca4611dd9f342bf77b485305ac28a1f8ac7538169f2bf3e4ff4dc5fdb9dedb97fa743fd8ac8791b8e288a
+A = 7821d4b65d529c30b8747e184e450cefb11b5ac5dc77905e6fcd3df64336661c82ea68d588ba616d23df485ff0658fb3376d5276027a40b392f47219edc5ecbf510cf0c5b431b02c65e5f432092f941d32ac5f71ce3496e403c7637f63a23b91e3326d01d2d32e99e0ab265108dc5e7919d3983839b3c7541848dbcd420a594e850e587f1846951852ed76d
+B = 1adf5c428f2a95c27a943637758d5dcd7ca36592fcb9d52ac0b7d27adddad5804e3edef257aa51c716801ad0c731e13c5dd000f11b5ff1b69c198f236695c1b2f99c0afffb5d084f80fdc534de3b0df4597404b50c7e784c3c55dfc9753c414d145eb0ca4d07e2f65b63f3eef8d391250a5500ef64d9bf963d7250d6906694e7670f92e3d5a7930f0f85964a21a
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 46914b197b84fa99addeaf55dd803182083a7ae34d6d4d3a55d6272af40a600563cc8d9f6b48110d0521b8b99751235bd5a340b1743497ef1cc459dccf5d6da970c4c3103c978ad2d513298f1fb3e68b24a9c7b0795f47d8f7f6ca9caaab9a9d80f15982599d764f8738217f9158517806fded5f3552fef8b7dcd2e725ee04d5
+A = 1c9f5f2a0d72806dcca92dac1450a50cba05b5dd571c2b3b988d33528d90ecc83444e3ea8df80802c30fbd5a6ec2ad9969be73aba6dd27e0dd2c842b95371d7547768916c0cb036964d041284cd323c8073095b2a8cb8797add5cd80f03595de9d18af8df7dee0d250ea7048faa47ae0131ba3f350d82864dc95e5829b88eeaf2681433dd4d58b2c6f70426af3
+B = -aa1e1b3cfd5ca0facc75e46d872584d55144620f849ab05931210b4e1526f12679bbd9cf00efdbd8863970e2abe8fc9fa7bbd21afa9e364e3c9e32f51fe66844fea4bab7f3b1bd278fd803f6bdbd0d296321e67751a0b894da338ab431871adf1514269ba05e0cea5558cd5691920fbc18237914f3dbe4b253f774e5dc1dc57023c080a3b90a004b809d237658ca1
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = ada55d93c533716ebd8c16e23603071950aa714deb942ebbf77206753d2676a7aaf61673c03a4db69d67faf6273828594d85e3c8cbf38460fa2af603fe9c1b6ce104854e7281757b26589f079da80685aec153fc5fd1a223004cdf30247f8398b8e92899857dd199d5d5c32412bedbf9d55f20e52895fc1dbd04c84cabfe1264
+A = -7d22392a8da1966e6cc5ef50d7409c614f8c8f8e5791778f68a00b4a056d0002707933043d05e48347bbd4d0dc1b6ca32a1aa4bab9992e7e620263283eb68d97af13b90a29c1b7dce39ec0b8a63878e8d65aebfb3bff4e67129e3b3725f999f1ec9ae92007911f2cdf738499661c5b6c9bf27712d0f29e871b17318e95c3d14b2e472cf9e466bea91fb71a493b2d
+B = 40279eefe59f954aa8c51c9c214fa07707b1d095f697ca40edb820401a45c472d1d7bb413eeddb64c14ce6144b4863fe9337ae4ae8698db92facacd6a56f3b33129c5b608eafa29e9d92dea620113051b926b80b75f320d7ca3d2ab597168c68774e68c47670458f5ef2ffd4604f20bffcc7817eb09c9057fd9989a6786a7e067ebe6724a89e7d1580f94ee4ed502cd4
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 4dcae9def5467526b0ff071003e56f5537852cc0bde9d86eaed2c15e36e6429c68c061e12d321bad12e29626b5013c28f118ee59624ae2f35d2c53bfd89e6afdb6db79f0321ad5c55cab03e6a1a97ff7bd58c760d0e9fd7507de987ed2f94f9c79569fe7f03652cd53c67ebc6bd3c9e6c5672891a9d2ee11b300ed3b19753c0f
+A = -127f5ca6924851faa2340c4c8f425b1dcf41b313c5c2910e5eff8ef2faaeaa43305de2b3a65a75fe54c00fb30c0ce3e8007db1ea222521190ff1de6d0cf2e777ed61ce8211dc167bf115a77890d0bd1ca786e967a04f077c89939ce484bbb1c560f669aacf7756a4338d97cbd7f09a376d2dfd4d632bb451f52c03c05762f050ebbf112f8dc5acdd9b631292fd7073b
+B = -3bc5e9c352c46449a9155b7ce5478c771293599cd2dda58a962010f1f21d094aa6bee03f9311545e8dc6213f6aa73c08b55bcdf4d1d84fecb9eda35c83eae5fedee75b2d15a003f8a82b2b788ea19f7460fdd8f447d973c950b3b250a3022c19ff312ccdc86b6ab50c4ba627b15968c8a66d306bbdae8e88fe28c1853fdfb3fde92353f46b5bc448ae42306a4c91202f03d
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 62a812e35f46e04b3afa7d26c8fd4eb168b6b64cdc839ebd0a46bf2a3a712af8e97380cdf0bfa8a274f7b73e887bb4cc73c6104a176d425aaf5352f14ee51ba549a6926bd8d059b8e3826b174385d4635b0c36df75a4e7da44c34e51eb82322b34ae00e8c712eb75b3882822bce5a2f2f5fd74355319ebe1973284c690bed2af
+A = 71c57b08127a956f0c17fd3c639bd1923ba19bfdb83c0cb9dd78e62b8fe4b7e0019cd0a6b73a334c622118f96fd6d91c1e06d4dcef8a3d0d6bf8f5beb6389226c50d14d3947ce9f24f7e0e6a7befad2e4e92dc9ed8fbb9811d908c03ac074b2a5c67b67831a350c4d548ac70810bb5617d261a045e53cdc48117b9fe86d35950d0a181b73c8cfd35edd31af031178523b
+B = 1cda2a51a707f8c4d2cbff6337c3f63519705614c26a489b545b1faf366b705af1d953701b568a684856fd3186c035f878788f7e5dbea16b5e7b6e767cf611452a4272abf2a9c5e72b7251a1ebea5098c60cc5bf649cb70980b97d48580967ffe2913309b6b78cc12d91025ae403928851902dcdaaa60f5b323a1302a5ce114cbe174e3eb3c2fb5eafc44076396c23d53b028d
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = a9213cd809d41b6bbfc2123bb84860788ce22d5b91f8e24fb616efc286a218ae9652b42912a58bf8ce596a1b48e4c72f27e52c36be1940f7d2138eb895ee36bbb917a59f73e0b6c3266bf4759ffe2ffaee3f6179492658e0778bb43c4df4bfa1a46300c9da496033142ae2c1e33333fd7e82c5a14686b255e224c51aecc2a590
+A = 1cf4e2d5924510a5fd06ff4eeb94a740e430613277149993004b8de1a2b96ada54b05365f305e896df5fdffd3d7bcb54f9a9dba9689e5ad498012f7a684d083c31d7017aaaee720bbd42382e526a35d2add21d9369f7faa41dbcfe3dae426948a402635771a977e19d5c353ec7c1abd279975f2effc0b7bc19990154b723f2f8c29e606581ab9d3966702f68d8bb8065e9d8
+B = -cdab60f9b8e1add4c54427b638ec5f76b30654d3649b500f833b2943bf6cd5d8647549657a8ff999eaffe413ed87e06267b97bfc1b77637b57f29039235548a7569fe6d4bb16ae9c6cfd38c0b8c73aa60797d0d69b03d5a98314f7f7ee25df8b896ecdfc782cf8057f038b6c3e79c99df52f839fd4eff302ddd1256e51eb31cee24585782a0439da3db2eee79a58f889d8847fe2
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 4dde3d63aeeee47441a7e733bcccbd4f2e495ca3c746468e9855177f7672d5d82e51da8e268ac24e8971d802e25d842a16a6b8d76b8e46a7724108c02d38a4830453408ca5ced7093676a1db4bf4c94b9b7a9531ab7c26f8de520bafe4431a55a5f5d8c7576427a0f5bf2081b998b82da2e8e959f2ec4d5141b55e40bf6ddeef
+A = -5770ea0a75ff451fc2c86d428f2569884b2c88cb6d9d407cc22b191849d389f57a5765b83adcea21c350b37bc6d750d4859f547da22ea8a3698a5cb6154b946331ae2ca18e7eaace951dcd49405bf8d8a716f7762eb242b8bf5e4c53a662c906c3be89e53ddf7a706ee2406c7d0ac17b54ff259c1bd5a092325938832763ac4caf0232e80a016cd1994441808d8db7e546de3f
+B = 7e4246ad4af268695a51912053ab6628969af4fcaf7f1e97dd977984a1604e8c9fe6b920f39a764c27d89f75986a4bbc122f92ccd1860f24677cf346474fd9441f572f769daf834e6a00cbc027e15d6aa7ec2030becad41e1068740cde82abed768de7e2cfd325848f6063e2186faa76982b9ca73ef22434a28bd2e3a5ac477af50f258140bff938d3fa02fb904a8ee0ef3c1f6fed7
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 3d8bde8d0625fc46dec46fc657c49c8ab12a988cec4ec1c24e6f4d8ff94514c8d8fee4a08399c6bd23fb6464a38bb5f249591456c283325e343cc289c85df0ff2c1707a6e407ff7a24383b66ab603b75e2dc3835ffe9274eafea148f20764b8ca30cbe483c1cefd51f82dfb93d7793b3ec19a57f2ba03d884f345bcc3188fe28
+A = -1680dd51d8be6069c86ae157922d55df3b58ee6f53738677bcf7332d6e7ef304ecc7ff7c5a5e1f525459d77202f3e815c68f17f9a6bf358654a92f9f9acb252ed8e9e6a849da7491f26d0e33900541ab67ce966d042607258b4382b8108729a703b429babc34496528f198a7e0f814db80fad4900fbccdfb64908febf5e09805d3a3049c0f164f0bcdaaa9bbb06df8f05309be83c
+B = -2c6c6b3c89f6e1d1cdd9abd1a9706e4f642a25738aebbc97cbd60e1f4ad79b419dd54bd14f2bd147b1d8e9bfcf92faccee61a43dbd1a2c084bf06a2ca476b3d169fa2c99794fc827b7f4dd010c0534e7cdd03d00456033ae0203b78a7ed229afcec2d1cb96892eb18898bf53584dde56b4316b3bc5186d97e3a9edcd059d7fe14561eefe4881beb8519c1cb7c3ba22cd2e13d874aab77e
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 5b4fbf0445807c8feec7efa3c2bf8dd86b1070638f3c87f1e173ee980412a28847b263a266506e70381aae919ae05d306d3a67a6c1e72c8ccf1c27d6296526e87f0f436c98fd1391f83440b58fadd4fb1905a484bfe8f516661e7176a268660387fe6a7266ef02e5fad91ffa69247bb11cfc1b5c3a88c76b7923a26f8a31ece4
+A = 65fe4d55bfcbba2bbfbdae831aef3dc8c8746e1d04cea174c1d336974d81d026f562225b4a297b1c3b044ccc5dc9c830a805a399bf26c0369b52ab0dd2c0ad19e723fcf9f5de2990ebe5a1266653195a2aefd9a392fd3da8c22c523a362f195babbbf5329018e3b454221b3e77cd0dee79f612f86332b1d104aeae7d8d84ad06b107715bb76bce20220d1340ecfc666b2bfce812814
+B = 12f775dbabf1c112523feab443f6e95d773e8220d66fd87bb7fc702588136a048e17ab6845a9c784dca275cfa445d007e8d8383740b156df7048650f89c5ef1a84148488fc405898f9e326cb8052f626c8881abeb70f3a0f52dd83e3ae0cb82d178cbfe8c393449caa2a87e7c8e2901a87e276b49b6d012f3cbb65641add3694fed3e3177777e78fe375f3a3b378091bb8d2998286562faef
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 4f0af7cb0c4e82d0e6589b24b55528818bf2164d41f58505a2b302a8f677df146f8077945dad3790c323e19b37e3379eb95de8abdadfbe4417f8bf8da643768a622ad4898513fdbc72d3b1d2791ec9ff40634678faf0e17d6e0851f08c39405907db85b74937ac403a9a3a1004013c7bd95a585728010689fcaf63b2031bc8c0
+A = 156dcadeca94985ea8bc0d1378daf1e85ecc4c7f8b6d6c7a5cb9f9ac368a97c07e381004023bc575691c082b5e9e13a02fe813a55e76196e4ad4b0f9b1e089bb71a0d5c94254b66e3e645fea25d69bbc5af266e730482a60105306d664f0ddecbd76d54e7235979aa2d806b809b3468078b5d90aa22cbd2c441198d4a52f6259972cf3d02003dc39dafdf3581638e56d08c5181d36e9e4
+B = -9a54586072d093939ad86df11fcd3337ad7e9e478dcbefb2b89d7555883fe8565abcd5b0a9c88ab135ce5327b2a326db645bc7c0e3ce24f902544675ff9d946abf30302f123aeed0f4e28edc72758ffa760277caaf4817a3ae8615784c81896d2404e2cf47c06b09085cd0ad1ec46cfc1f04d0272eac29e774b30f19939d08c036b185983c93ba15d1d27aebe4a357b9f6a298acca3940d2730
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 7c3ac09486a6fb518b98a9bc8a8b382bf2293e2c1154470ff7961212430fe2dd28697e49256b1ad8add082ee27b6ecc016b120e971665be801b720069d30c0a8c6ea4795613017e8883e5c0d0e68f982c328379d7a0afb7825c553e087b33e9d78f90e0b95a6597076b8ec2c1d375e2143bb778c318ca0680a64072cf9a4fc08
+A = -71d8e7ef13d63b4f417c01ec1241020a8ff4c9b2db531500984fd3e45d22b2bd581894c8a248ed7cc345e70a5698407df8f0e4ac71ed2c0d42122a4f92279346f463aed899253206786928a0eb7c37f2e51e1cde7f97cf9288d85c3ed7f49e62af0bf9abf062d2c6544d83b9d3438b3881e0d07b1fa0f2a4446fd43ab3b4f81fa2cdaff199c87965e298943c68cc15f2f3f3225efad68b73
+B = 64d52de221f102af62ab1e9526935b005c81658f8fefa019bc58e641023fa785798ed0dff8f7f999dbcc2ecfa47d5314ac6676c82170d6f2b18122c17c1e1ec1b9b54e333a184a46ad35b2150c8165f0de19a24b98327715e5a641c1b6d3ff9d247c89c8749e775e6fcf5f967c6eb5e73523d4f1ec12db7321b14398f26201a364e1371f0ac922781ee252c6d2b3c657ef259ab73cb7992a370598
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = cd08b388ffd41d0aa29a3dbde74106c57b18d325be8f446a2d9ae95fa4144037dbd41eccd50fa34096984cb11bce555c117c5568d76a8f79d308ce11043fe2413d37d6aa60c366af6c1da93d525e4b2d79fc82c0a53ed62fbf72c919db8a3ae11f5ff8057d7501f5f6dfc9ae461c308d21919d0de9e31b759d1d8e3526fee58
+A = -12e58708c30c93383cfe6e99ee3c5caf1900a7e610605706e77d8f428fd59db2884f5021d7a382cb18b75ed22528961cf43be1c700c581ceac3877e83eabd860583e6e94f3f2989c179ee5047c82b53d37054c9cb7ae08be60a91b10d49510e9f0b90ddf89f93790c3e18cccad5a9d223c605a6c567550e2b4950e184fd97dd68bf30681d3f9c585365de2cadf36a43f5a5305dae555396dd50
+B = -26ea5079ba7ed137a14d00d413d6f818e911cc183c88764de4d91d7a9b4cc7af3fad703142dc7905992eb8bf489f6d8231bdb25603ddf3c31fda8bd9bc4d78835f9ddc1e6445037f05125cb1ccd92eea2e927297e5eb915d5d965a25e5d58feb8d79a890e6036c80ee91e7469d9eb672d7a8db68905d06f5981fc40bf486575a067d35cf14ceee3ccb79b72871bf8f52b92e4910ab17e5e59ab3ae6f9
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 34714506322dccb91308c403c267f1ec75f80faf3cc4272dff4a84c13eb1e6133af6681387006c61e7e087046b64e7ae74eea8a3c0564a7c1f381e1c940d92b2c766fffdaa7318d07dbeb877943a73b50517b49e5117778b8a60212284fb92f29a9f5304f8f537e88acf8afaf01fdf64773f988cfa9551d6884baa70587ab76a
+A = 638b7c549ed14256956bad532945ef9e11a50313172965386635a2fc7db79deb0cb5c157e9854117c17f1509d505d01a0e138d2e510dfcca45b4f7ec968b5214a6699b61b8ac68adf64d5394f50d577a154c013612090e2045462160d1f552592197d7da78e03491ae284dc9faf643805f2674af8652bae93ff230fc3eaa833dc62781e5f74d0f0b90290d51d481b0a94ae6e972197c6e84ad7ae
+B = 141f62297ee88ad527fd1e0e09d9ab5dd80e17b32f34a674a27b00d719839701664ccca1b00da2613396cf633b0bdc4482ad3a0c3e209eaea7c22f33706ae44155f527c9ca4e341e651760d1c39f65d5e99e649d013730d2502b6b65adb8a73e6bc734b7d879b430798dcd53fa6c0badd57896cb566d9f1e0a7b3a9161e9808e762ca819330ce9319dbe7f49bd663a9f57ac53d65c6851dc7bc4ee66e08f
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 7adf54c77eaea2a1743bc5011ace45b7651846e77f90402297f117d8b1c0377f93f49e92a2457f3d3debec3022a96c74c166d01b2279553ef518ec0e612bd7b382529184640c55b89255b2679da9cf370913351592de39f804f1724de36db90c045fa644e8ff20627f67d6afd4546f00d7af093f668629f9a06c07fab5654ac8
+A = 19c491d5b55aa25f2e18cfb7fda18ed4b020e3f63244eb9f6c4dfa86eb8a70875cc898e305a7acdd3eee081300edb3e4c837940bbc1927f5ed9f651e46581639e133515457464e9c451390828e5e7e00a688daaea74620363706cb69e02717489ba9ad05774c424c18e295278caf4df4ced80b4cbd20cd631df43f2e16ec0334564d9dc03dfbc7111e4252504fb449d5a25cb13630b7c0c565a82ea9
+B = -c3f765349639beb80f888d9c8b7b335ab46b55064ce2a88180c80ad280c6b7314df52b7e73095dfd82896e24604854a48121353aa1de663eff07882771803010005905896357cd5a56a59f0db0045f1aa2c0b5626e132c169abc64b9893f95932f54c1d8cc25f215a9ef6e4cfdd6dba85f6faefeca81793b2258ae1d1427e81e458482aab87f6563abf435be69a05b195d1eda90146a8cc92748ca6f798b10
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 32ba5fc81a7747c3d812cf036bc0edc49f08824d53b91a65a6d41edfb1651d99c11ccb4c074d7f04e652276ae3fdc8d6eedb72c6e46cbb1f7f4070dc9d179ce3e21a3826f7dd2c27943a8d26b192d7f5c4aee9ba0647e406133e3e89c262d37cf468aa3ab8c5dd1b8900dd06cd600abc6d372d9408497d9e20c86a9a6a4ad9d1
+A = -73958019a5a52357b9c1d954c9b14f51ddaced32a4d7b7c95730697cf90029564118ea168d23a54381f7bbd6718a6b662e4c87410e48ac53b7767148582b0bd6a3d35f488e7fcf2b128e0a58b5d468dedabde4d624f4a82e808dd7b175af0d3658c6df1ac0da6495bc9a8dc012f8de55c2003da9b2d478e1a089fab776d99026684026968fc309dae46a6ef2412039a8207c3084f96b4e38e4fa01d131
+B = 4330fdf00bc6d13ffc267073b68aea7419ebef257d63f8f244accb9ee46edd04fe5481292de69d377ba6b6304804ba7ec0a063b42339e6e37867261b9945ec705d3a0029c6f499420e02a773476546993b3c5e1efc2417f51afcec7145a9c2625496865c11636e285d4c8b053ffe66887333c51a712fe9c8ea57606103fd689dc88f1fe37dbc33ae4e92067c5bf51b53e2f8205164c800e5abd677c73949b00ef
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 69b850a99b471003a56931f7856da357a2254ac50ed81dfae019c9b722b95af16047a0d5422cf7ab66ccd898e85caf0e03e74cc8a5a413661e5da483b3f0363e63a7031bb30626c8f73d6e99e290071094b7fe5bbaf4d303192e59acb5e53fc7cdee78576b51595d9f7a25ccf3c7f8889de68b9deec167778ca27ac9d4c71c3e
+A = -1976b3bbbf92acbfddbc05b5d9e7b62a7666b239c1e6270db7ec6dc2929bad1024e745b897840853d14cd815aabb01aed580e1cc66ce37f9d1cc4c9bef8ddd35d28285faa29f2003d2a4623ead7d73302ea9f380f16b3fc06b7c2b8bb4ce4c8b03bfb6056a61c620e4decc6048cdda5e2d3ed8a13b779b8829e2bbab91e9f6b0304b1c08bf8fd85e0f3cd7ee72255e5342e077ababdbb545d7f809bdf8145
+B = -2cab554f7a5d21c499a1025f61e6c81ab0fc68a874bf60470cfac57425a451365be62c380ddd31f6e202f29769e2b6106868da7c81522e03fa6f0704522a5f8bfadbd007bac65595e149f6c585d7fc022db016bab32819049e7547bf85d4232a7fe19084907c528e7eb0434f2e5a375ad9b7d463821bef2f6a721a635252576c176ba42519bfa5d97d0e47facb4426aea0d755507dac81ccf1537b1003ddbb0727f6
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 2ce33adf34f2249f8a2d2e073976cb4c78b71414e027657fcefd56fceb022a06c1969dfafd519eb9e2542662c7647102f5c528734dd005fca666be57b46234123bc3db286cfce07bcbb399eb6764daf2b9aafbc2898a5ff43ddfae849c7549289640edc4ab7c4b9fcf5e159623e5497f509ad6f0270a41fd864c9437302ce380
+A = 509f5d5b160e923b4fdd72f4d522a713d780daa4bfd10ddbd62b26497a2e7925c495afc2abf0ecfcb7980e588f96c4078bde51c7b2c19d86d15bbdad5de72fec2e0a284dd693ce0902b40e54af87ac5a5df38ae6d1d882ea6299fbe6910121ebfebd06b454ec5f855bf3e7cd544a4b0d9a764428662e824e2a6185723534f5e6ad829734347d240c48c2c0f8bd6be6ae8a495a9e383fbc7402a4096b8c2c214
+B = 1a3b7f55307031609afc974857a6cc75821e73a1a9535bd6b8e141437c3fd4a6871c904e22c5d9289df7525ac69a0341d3620bcfc5f04b38ae540e26beadbce0002a8a8bfd0f6a270007e4c52aec2fab11fb2a831b9886997256e4b7e7ad3b0ec64c0f31fb0d637869143712291f5073a5756466d7c82c31e08e09683478229bccdedc2cabb7e426af9025185d8dd5124e08afa4e981236180e0a390004adb7918de6ba
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = a81fcf9a18ce476a839c896cc5d9b639fb1d74610e2f618c25310147b57cd77806c2aab90be7be4ed10f0122baf9b862b141ee8e4be5e0c23ea776267f14c31e50b119bdd33f2b41f6a4c43d35bf6f095864593e0d8c0f1fd4656d8371af844d197308bbff14e5a28b7181eb6e6a2b31ead7361e287f3b4550ab0484bf7baaac
+A = 19f1ce60ca50bfdf8e02313f1c9a45496720a2ce467f1e8bdedbb32525d762878b61476989c7f6ae8dd29c983ea596e521bd4cbf74dba4d505dd9ea5df423474fa9725d5b65f1575d26ead95725e2a59a6c8a5397ebd6b54123e42bca44781b84c014b8e5d2c1a86cf34d764b242baaad5be285cec72ba8ace808058a0226c04f95eb2b53a828d0ac41e6b40e5a4c4092788d9f7e988752f175f075d545f421205
+B = -b115a1101d97664759538d22154de4b000c008e551e2ab10ad05f12274b10a4cbfee762d232df5188fa1161f37ba61d146e8b95fa715d98e016da8beb0600de65216cecf8b8816f6e7e73e2a2bfa7d0bac74b517b906bbc43357fca69de9cb5507bd95205515b97b3a4d6842f3d7b09606cce1c7436c462f49dd05e915d04ab6fe2748ccaf025bd5d19749cc468d228ba43452ccc479c146ac6d781717bb9966bf3835dec
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 1473f092540ae30de595666beb33e430cbec42d7a28d4f7982e62f58025cdb617cfc33f1e5ab93d2ebefd7345561b81271bdc50bfbb0db6381dc0ea023ff7c72605da26dc7da2b5664d2ad7967426ca97b3745f82528964bb68e70087e14dcf2d71d30fa0d1f7b3f10b19b357e7053fdf22bccc5188c6919eff1e5c402b750a4
+A = -68f280cecc512d51ae534f30aa198cf7b170c346c1159fa9cf158d0127d43e50a8d4704ec54b8b4295dd7f51c6771cb5767fe0c975414cbe6d2bb58ae66a095e8832d5f443498b1ade1f5bf249da58595ebd878677b34e3b4c99ba6124e2b71d86a8d99727a16746469de51b0a61d9d981459a6cebe206cd36a09f00ffce7f532e2c31999847ba000b9e01a4b84f454544b6362a5c093b9abe9d583716f4534f2de4
+B = 5b79684387f18d7de6eec3a63d737490dc2a46c0616ec16388dca2be60adcda11ae13063ede3fec177171a51dbef430f8c4b3f6d297b9d6c020fc44e3ffab891d0d751d033fda813861bc067c181118dc613335ce89c5960f952e5fd28bc72c41b7b6e374ec29b837f1e00271cab646c794579d315260921dbc3b984b86d98b8f8816aca4f16de50657e4102f34d9e29ec3a03e0da06e70f69952339bf2ec4a7e74daca82239
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 5e4b3f4aea7115d592bde9bf7c6594fee77372ffb19f7745b4de878a4024f81e8290c77d2915424df20004a7abb64c214104a3123e7c8f230c159ccb99bd937521b433dcfb065b186a685fc40f9166bad9380a02e297ffd6a307ce8d2c8f2f1330447a9c06c327b74f3cfc2e98f3351a8b385bae855941228969d1c29e9da3e4
+A = -11c1d396693139df5bd91825c119d1241c3f57b7ce95b46472dd82081738cdeb0868d18eb7c8ee7808016b3311f982adebd5a2e5f4e201ec4a34f3037d260fe580e771222de5a1a67947a4552cc03c5c59f9e60e25063a702ad3c3aa43f061a22567f938a91f1dd697c3e3978fa11ab1d65030bf327f8049bda745658bdd4ba8f3e34b060c6a2c6c5a8be54c7cb5f6b106f54a37d2be9f674f7747744d4350b3acdf373
+B = -25a65b6acda692ba3330d70dbc3ea4dfe208c0df358c50b7872245a909c5ac19ec568b1a1340e1a094f5b8e7d1e3b7e04bb4df002558aefd4540135d62d75bd5ce959128c1300b9d98429d7369610866d98b22c345e531f2beb80b042b6ad48da077043401a82e223e9e529e7407bfa466dd2680973006d047d837c26a60cabc36a7ef538f603ba19f8e923f168ebfc3834df8f77a559c9e0342e33df245f551bb242e5a66e5904
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 47872b544fa0425981ae17bb450ea346135e6ed7a9de0572ae14a6e85e8319f27cfab778cdd8cb5f93b417d9c66ae0fb7bcc6652620f7f3f74acc2bc9f2c090129fa8315aeec9ca7adc5356484474ee803883ba4695d7bc47c87eec508d16a15150cf3f757c4713de71366e958d6af045b2d282b6ce96976692c80b1e0b6f846
+A = 7e8f55c040862f12d8cc6e506608eeca65ce38e9e8ab18ef7007e3cf0f1c9a0696795bd10f8e1e1f55bb4f4f3a35c2e0ad18289e250571ccc26a961f730346efb1e29fb143ed97cf72deaab19834fa2e98e9c12ae4cd23b9c5ecef4a04c439f7d42e110b30caedc4334372ca24cfe4171ef1430528f7b57bbc823fd606fbd30915c5817e6c57c967c4c404a0847b1455da17effeebbec3f9357358e00001239aae209228f
+B = 1cc00b95f6bd3abfa697400c98110725a7e109aa9b8cbbe9ae16327c4fc8e5bc93afc7a94da32e98e85e4fd5eb545192c73007d97a4e84ba64fe187ef61d17f0941e165c9fe64c7b8054e24dad30f92b50d1f526b4bb031e6b1b9058be24884b170a145212273c51692b71bc57ee53176d8702b975bb6ba96284b462da2ce38e12d86b342c7f4d3cd489fbce88a309c7df1121d7bbbaab6814cd1e54953e5cc46813ead98f02360372
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 5d193b085e57c3f1e825cf3b36c8bdc936c603136bb782a244b04a79fa713dc7b08436b85ca3b483d2e100a012d6430679b30c8e4101c8f08ca0f9010dc0f27fb37be842054dfdd99362e03a7f55ae58db7b47f694bd35d91a58975ae1f255c41617e773f91c2640f768bc702a213f073682dc761e056b34c57edd85585fe04
+A = 1bb1c759ea94b61a1721ef5680f42af30fa31444b27591a03b7c9bf5b90845ab965339f463a78bddedcd62fa21197c32d6850c61bae195f86e1c7a23e7a20dc618c59ce3a1c6ea6306c0b01b11a36d0fadf8214c36a133d689438021ce7c78b20c85256ec607360cce14f139513d9f3ea6eab067b1ffd0935d7c43419b93ecfadf2c5a902b7c39a69bdc023173bdad574adc77706c1a666d66f69578a5bffdc7cd6eee28ad8a
+B = -e8072c49cea603d48f20276df188fd2fb28f8721d578220cef7db1e56379c04a6b372e56a047cbe59ea84ad026adc5d0aa930011db63bf4959f15781e060e0240dfac0e2a2c26be12a21e5650d12140bb49a2a8e0f6a86e4b1eb79d9b8aab3202bfd339096529170cfe3e0c18263128686bd9305e92a3c43e1523f97d8a6a2707773e3d441da162a79089c9ea1e094cd5a23474121188013c8c287965a5e77599f6a7d64174b06cc165e
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = aa79c899c2b9518857c9e4f96523a44607c3f6a97d1f40d6474ec79deb2feadd955fe92d789df4d362c828084559fab56b5e33a971abc5449208d31671c7e220c5945886e33ed1d804c059a8e439a92524a785076f9730732bc5a152aeffb5b9ecf3a7e4b55983016355c4c29827496fd4d7e6532c270cb9ef263573e4c63074
+A = -41b326c2b86e7ac14a2050bff67bb5bf9697f02594789c4a2b3e8455df4522546278d0620f28a680f6a88ab545de5829305485422f4e70a5ebf0ad15508dfe3f16ac556436d8fe8a8cde83ead549d88e0bb24dee52ebbb49159ae71589d918d3fac8011cfc3afad613ea09173856b7b79b55a2e43e0f7cd21eb9122d5f6a1fc5408414f5aafcff863b870c67b740256d317a0c58af9a81d8025a086a1f3d79f7408d4bfa06b9dc
+B = 4730f03c389f9bdd92fd864177e06140c9dcc02d01fe7d37b51d44de140696f116d11bb67adf7db797edeb7c304386a7f5e37bfac46a5462a6d4c49b1bc034c2e0dfa56f14bbd2a4bfaf86bbad4f6d0dfa13c782fe680847d4b43373d7137f5c2ebe4ad58c695a7d4c407bfd888ce04abaaec60a3fd33db10eaba6b6acf0e16cb61d1beb9212c2b07921bfb5595ef1eb389200b356eafe8b5288d8f0e2cf252b38301de65190d56bfadf57f
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 23f9850dccd2af799f18268c3a2918a69019513c55268faf2477c50677fce277d8ce58a0cc06dfe389170faf5f0ae13ffc4954c746eebae66efc14eaef2c2ac9001f3c7ef7e32fdc31dd725b6a8093e33daa6d19808908e0c2d3e7c1c58e0fe9ed92f4d7cf3cc222393ca4f95feab5d34fe29116410a1882dff7cd92acb87590
+A = -10a75953e5fb9903411869a2949f8f04144d6e2d61f95704ff55a02f40c4f283add405353a68bf7d6acc1b8cce738f0c6f9271a538b4c688dbeface58eef0a0a1d491a9e66958750db97bd01466edfd245cef03bb6a3acb81acc63c38538e7f15deefd15afc422a8641c357c31a069258dc0ebb63f06094ed8fe7d4d420246b40302361967c81f0a9ca542fd1de01967514ff2565de7ae3b4a200d63feaa22fb99a251cad66624df4
+B = -351242b6e6d0122f7120deb8357c3bcf25d221a15f83579883bfb4dc2e6099e6b7b95fd08f6e573d93354b0676f7bc9fad563d6eb0f3567ef43efe3d874b9c7733e4fe1ef491043e1f80aab6094cc9b9c236570972233ea74e8779a6eecda23a65d08d878850cab6005159265893dc0f66920a12c26dfb421ec326a1ac09e9ab8085825c31aba488af02cd51f96b205c50e692dbf2d844ff0a989c3ba9f1c2bc7f2e7dd9458a72d310eb28d490
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 69c7fa326630d7de69249807cd8bc55c9315acac26fed3caa3c8a9c6b51ee96a7dd0b3bacd5cc13c15f199e268c5eb91d1ec36c085f83b437b9906caa6e39ed7bf09778610b621426cc8d36d96f541d0bfcc7693525d33e0c2ecd77ccfe80289a11155b37c7ea7791b5c2be3f9b954e230c19d746575afe9a1a3a9677d23c5bb
+A = 7cb78ca8e5d903096630744c85975719c16333e2e44931956d8c45b001d35ed4e184dec88c9e2167d2f338fe6f25540a144cc419590a4ac7caedea3bbbc565365d3357baa62fdccef2c5ea616614e0bff60e81916eb4abde0c9725b1bf6869e8b1e11f6d0d08fd712bc68003e55ed462ad4946f7f982e663f65d45c07c659d9620d5139d2b3332a68d33aec36e21716a3b75f44272a19f860e6ab3864f06def9a5ddeed340ac0733353
+B = 16d5b074e008fdd30e73ea95cb5fb87de806319388b3a44f33c94d38be0e6f1a92103dbdfb3d23b6e1d19bdb29ac14833003e9482cb7524d0d7b4c377f4911e3372f2cea6f84c938d84e3994e80f0d68e7e385ca29e02f70294c921dce7cd3829c5854ce51d1f4fcf7dba910b51b48a3f53cb1f187182435f21f6981cf8440f9c8287a9749c92c0304cc2bc91eef32d8e6526be802de8aa16684e8854cb0b67d9f7ea00f6f0145d14e3c251f70881
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 72192604b2f3f68b9ed3e261120ea52b06a05869f6abd21828ce8abadb3a71c360a14947bc738e5d1d530b9636d796f785bb44508477eefa80c4b77d4e8e35463e15ea2a48c682d3288c5abeb66181e4bed7d5b4e0db20fdf5ed68513aa5ae7e0978ec1c4646368f206636ec90e808817bd1d03acf9adb9ba57dc153873fec11
+A = 1112d291463b28ef45e879412e6607a3e20d50dba5044e71883bb3cdfe9bc694a577fd7d896dfb836a171f3a4d8fd025d3a979b43e41baafaf7b535d9050e47f4880828640e952435648960bbb74a3c25dd90bccb3fedd254dfc0f031d0e8a468e93bb69f771ed35f1653cffea1a763491fdf6efa21aefc287cb611f5ea0085f64cc3705c784f87ce00846901833d01a3c45ce047d822ba390b538f0a24720155409f60ca0d90e13991aa1
+B = -d553fa2dff0265cd9d083ad097af87a99af3d8d93a9f4c07440a28a427082004ae5c81d22bda1dd2429f540de8df175c1b4d0d50f0227489ba570b28baa35055df951d05b584ae6b051a135d7eb2a501b2441f82c135a8ec0eb81d379b96ef8f2fd526ee62293bcb934c76ef8083727a4b28bbfc9f515ebcc2bb7ed9594a106e137ce94e9105b2e2f4776aa9c6abdf426a181181fece3251c3ef4f8eecb634e6bd47c5878663fd51c74a66b92713fb7
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 459e19faf105ab17ff794927aff86196b3cc3461e69cada53ab8c8c81e2b1820408421ea1af6ae10257e8cd9dc16386906410761fed62cf9ddcf0da2a92800d99563fbb9cb1ab0ba46a17cb9dee3f2b68992c2b832a5932e4533fbd5c4487d870f3fb5d7a1c358f4aef02993360915a9e9cfde234df5f51c761d84568400b618
+A = -7a964c62e38e4124cd2bad727138dd12a086a2bf01c095b078ce2f81288d3c8435ccce0c8e00229184091130989434bcd107a3a0787a2f5f4b0e8c23b1cee9a8f39ea279fb6081efb6c3df1704fae9e87d63ac6eac4c6687b3551ab7ddac5ca0541e12047d04c2fc760fda0916cd2b585a90d25880fcc1bde8f0a1a413969938d42e8b3b5f73118798e85b901c2e15860e29e2ee8b1c95336b97dc10a21f5300e0352adb60b40a8a99333380
+B = 743ff4d91ea3e0f9c4f72e5daecb4fb00b15b86e30bacebbe4384324523d14e22abe29b00573733f594d652a88d98c987f8db08b27b4dc68577784fde02dd410ebdbfaad9e9afc6a22a8cbb13a780222bd212fc61e38faf409e940fba35ed909e6938e83b0fdf5b5e3ce138604823e788efc3aa0df924554fb70fd2faf8249e17a827c5d85942005b328bed97e5ea1f1810219d77f2fe121ce66518e37c84d64aebda3c397684212384deebd520a776b95
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 183950095d9424b0ed09985aafbbd2e5d64bf541a56b68b42ea8cf9b2c051615ee7bb6c0687ca6fb0036888fbc927cb7aeb303750871442ff2c0087a95f4efad568f48b03bd2b9a9ac26af8c259a3fa97cd2af7e3d8f36148c26785489cda6c00a21e7eca219d1f41b2e82ba8e2c1cd752eb08a2fd50c6f9077f3096e2eba05e
+A = -1d2fc778cf44c6992d1f3a056860eeb12f969358cadb087dcaebf5f96bec42bc0aa98672260adf1732da057e9e0d22081e33f5fa71f248cf89dd361036ad58692637cdfff584a191279f178242ec0ad397efc52e99462f496caa0f3133c4238aaa877fa7094662f080eb284c4cbeb992a368c2d157ac5c8c9160c167716406190fa39ce0abcdac52c8020969b87a4f84bc09a51f7b2ca288c93b1aac64e19623a7d9e69976a31074f637e4c82aa
+B = -2f188f1245b75cd21d052ec76edeb5881944a143fee31c67370fab0420a748f3f1957bb8332ffefdeabd0ca806169629f130c86c99bab490a9668fd8200f4a9b1704c589e75b5c8c855f133d50b2ce06191875e2872b36c78438d6032d53004c047f49e4cb81e19fa84da16d053e6cbc7c8eec0b9129a8831eba690e0542ca3fefd204258624e92844c8b7bcdccab986475a47c8b22e89079ea6580ef8f496099cc24dc2911dcb1921d1451e2163b55bbb7db
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = a02c38d5df9ff7055ff84122342ccdf6ed7f7d54fe8227af091371f5ae62844645586adaae99c11f4ccd828103a81471bac72dc20625962e41d603e760591bb3569a21f45bf062b86b5fd1c617a4769a4d767a0ee14d104084c12ae875316a8f2be7adec0104381dc02c20b5851efdf7d4bef0d68076975e0ada3e58e101e8b4
+A = 5daf37d616da184acb278a75fda4e4fa49e544eadcf373c054b203a309ba198233f2285a1b55dc92e05d0213b26c82e261d8383a845813077b2e1b5f4553400f09410987c8dd21d4383e0f05747d0482d1a89f160a5220b22c78393873564fc5b1e4d5627ef3d4a05612709f301381df35606e99560fba07a917d7ea7413110fb5a8290e114d5200cfecb00b6c53b2ee29911bcb2fb2930eadba0ab9dfaf46443370307d9c3b61a329f0b8b8cbe7d
+B = 1d9539fdb1afabeb9be6e774dc7c7cc4bb4fd63af7abb557a5fc80a3fd23a4600de3c7fae89b91f3d441b61d3e24b2fd3d7803cd71620e7313917b4afb89ef5171a3d8a68c3c74aa3dfc8058d555eac429dfb6db40a9e0c25aacd2050418d6f32bf21cbb76981269dcd5883178d4b69a931a0338b93022a2ed0f78f3d8877989cc406f19d6d082ea344309318c56be7946412ea0867c78418ec32b9fa3a61017c10939c9345021133116933a3d1eb86a3ef16424
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 5fca287abf1f487e0ec18c230860eed4a2e550228b1500b1e33bcd6675646b5afe505b55073129f22352dc2b113c584ea1b98808214b6916933e90e036b129b61657cdea9026e1fa087ee300e055ae8f94ffca933a2d70453ed220468a5a3cf1a65d81eca11cf570d7d038722397f487af60531f24a5f069671354882c8bd2c1
+A = 1d9fe15171dce97475f4ad329fc8fb5469fb2b8086e4b01eddb6ceffe5324cfbd28d791705848569739b6758ca7e7d7d49adf0c11d891b0a5879ca870d1ca5ff475513322ff218cd26024f97623bb8a53084594e1fd64154e1db702522883fcf4c0d677a7fe90096fc76dc3800816996308d8f0be2dbf3b879f8a000c0ac534511437e2ce2d7ebcf42fd1698a829eb846b3afa581c24d5bf97abc6e247f110f4e872a2474e3acca6c8c0d518104c3375
+B = -dc0da8f7adb8e9f7b0e3f293cf623528dc8e9668317910417e52301c50c62e7d30e77ec7e38d6817d1f5a93e851f8560f642f23a0b9f836812d27b1b41c0867088a3108332b8711047560052ea30c8840f03a25c65b227a175d8f340095823788adb5bdf2b7ebb801e20f6b6435e154f78d17b8fc4373aecee56ec7b8f5686a7d22c8571797fde85cec884d45ddc4b1f2cc47ebf56a879bf286f349a0edfb531168b733d43de3b86b49eacb10b06a432c96c63440b
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 6222c1a14c6390d73944cead58eae5e7a6c19d19e4563c36cf624f5b61d99991bed7dbf6a0723abc56469eedfb1f7982987c2c7af6191178cf0933ed5f191b8117c9d726cdfa8b82a2fb25ca5436023f5860aff5fd482c611f134569ae87395dd99e5e9d400b5ab1e3064210ded096411654518110ea45899f4be2516e35a229
+A = -7f6766be6c6ca9bd1fd7ea1f80bfe68693f7ee4b5ba2946846839060d6028eabbb9079a165c1a07eb6a01239f3f14095225b8617753a1cc3d9c1e69b516d8705cfda396f4f0d05b0944a0f08b478d261e968c06918914ba87c8e7b7adef5cc2a875917d00585571542af219bd726e502b7f3f0bdf0cb1dfc6796be2e22e8ffb5b8bfac7e15e991022974e75d3a5eba214ab8a1aab2fcfcdbc6ded2abf834d1899d2e3ff94bad9c696aece045212531773f
+B = 49c6f869745983cae44d33cb7ba141234905441ca53172abd1a2dd8bfeeac4b236605cd2dc5b04ff9aa13de84872145b935b85479136065d2d57fd15fbd97480c25c6354636c17ffbca33c9319d65e82523e39fab49321380a130fc160857a451a69b1d0509d5718a9cff8b49c2d677c1f66bf77333d2511f58d3eb2fb47b3c162cc9be8b012d8df70278f0e21123a69724a1f126369a236d54da026ebe222c513f24b577707b5ab4b90ab0e22b4e38ceb4181d4ca101
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 9e9cc8c5342dc6d6daf55fc9aa9f79ec18592e8b9724a66881c379245c91f06a7df50a6ba0964603a6dac97e77a55d06efff17c93d5faf107fe65788d0f56483915f6ea0f1ccbda7656eb58fc032b5771600beafdc12c2076110a9b9670bd0754ff6a72c5d6e1a9e4e42c688e1cc96d7aecd815bdf5dcb16fcd1be1275ce7282
+A = -11635fe16dafce21efb1c599305e9a16eb5651187cbf054cd9d911c13e8eafbb738013e212f9c2b3662ea15ac9bd82b5751d43a38e4475d2310945a812262309094ae9cf59e0e9f3d02c92d8ab01f5733a20f051054a240bcbe3a7b6bb3f7c434229f631c4af239d33bd3ce30a372a480fdb49b2716091d26071aef372b8bd8ee8eb7f2965a372a836000b3737d2a833a39230e721e4844e16031ad69cd45ced60a64510c1248fd776611934d8d2a913d965e
+B = -3bb2cde9d3fda96fd7e6b24645f8e00b43affb223f2b5c3f4b7cfee905ddd6703a9d6c01f1f099ad1174da215a645ca4707d8156e762e2a253d7cfddd05ca19823ada9d33924013f677cfe4d86bde025391e0aaf91c6b776a9cf8a09dcad7cea59ee7aea1cf5f5bfe67c9d4456332d1f98e5310db9a0230381e1867a8f75b8757283f911f1a5e0d4afe5d544afa8d86637f9c9d87428fdcf8b4eb8f477e617960948253b24565b2f23081c47e211cd3c788a92732a49077f
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 30dc89bad4b449d1df9ea9b8f9d40b323c71d7e1133bc44d33bdb87c38cddedf83bb849e83436e4c92a06546fcf3e24ce6cc89d2e97a48aff2c7e3703da1b167a112f662a89742355e11e131e41052f1b379753cfa32cb0efa3a07465a258c585cd68c86bc9a473f5262c86c50992aeccbb9725b69ea8b3a7ebd2b6a24db52dc
+A = 60463fae1e9354559160d55a453c12d75775a53d1606d1fd16bef7e4ad1c78f9568954112f9280c46781180951534c5372dd5aaff3f33ac9c2e0ce4934d7009aad2ab5d6a5e5a141a36846e8925c7a28d116c68fb78aa9a687ec9bef173c1b69e0d7261f96eacacf237e1fe5874e5d553985b0fe7692ce8f2a5feab9ad9a2ad9c4bbf050b73b8030ebc36b94af8c6ecb67f8c94607d80cf600efd4ce4aa006f9b1832da8a1fdf8a564be0b4369149e8639e1714
+B = 15bfc50290b771ad147695a4c6701c47f2e8aec0657a4ef999eb45685200981b0ab5f8abc143d64878b85e9548651a1afd0913e3b14d11d3a26ab9793596801662a67b0062fdc8888feb029266f71d170518b6a4a040f59996bd4f257f221e830d0faaa9688aaa6afbc1f9b40d25097eab9d71d80aabc085f3a07e48bcfb37119aa00de60be55fd07d5b1281adf7b98bb589cdf2026252edf2f075ee176e23afa6b1f924c9fcf3c34c76752e833278a2e6b62017b88b77eece5
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 8b506c9bfb75ab7ab420ae6c9b371ef035fab512188d9df76f0b31831573b44cb08266186a04d20cc761d61b6df3e33ecb86c269205c2c79ae6aa4d3ebacac8ec71d9bce1d7ab146530b131c9038041c6ce8152a6f1c09b9bec8eea4462dda0f08d75edf296eacbcefd62a0c197ed30f799343268bf6edfee4995958db7e0420
+A = 11c16713fbf8bc9696782cb5a88174cddbe68a04e8fe93dd074aab33dcd85f92baa178b2f3b8817be0cecb802cfd3ebb06734c9d399a1f090e3a8a2110aebbba0e920427bcda74bf11700b945985bd532286d44a1a615cf7c501412e454edd647f8371cb8149474557a0d47cbb782f460de7a3cc28991491ea0fc510286711b882987b09341c079565414f2c930e7c3c3a3e3e0f1d786260a7f45c70e0fa20dfc63849906af61707cfdf5a9b7a4291a1c1586d16b8
+B = -cf5638af39c6da3757a09a92e0bd54f852742682dc91c71dcdc6e72f7825a0979a1ead2e158479ce5565d22472dc3853e6bf7ba43296a5e0e0a355f0703cecc02ec79da83e3e9de10a6eccb858dedf7d4c400c27486a5b8cb34d787cde6a5fd271e83a6cf66057838fe30db1f30663cdfc22ef5d002b0b5a05831228ea200f95382a58d0d8aba36523d9b5cb7506f193131916f3ab66ac9552c26cd0c2ab1c449eaeb8fde752f4f3c3f9b060cc1f8a1e37c4fe5ec306674b66158
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 347706abeb168205cef9b0b8c6b9d6449ac501af7dfbdfbd41a20a6a47872cbd7d4cd32f7b0805ecf1573d534418b7cce98181e079d5061b02639fdf0161cea5314dbbb2ef39ec841f695281f3c7de45f33664e0dd1658f645adc1dd225f781a3fb1634517c556403587b2aecd56dceca9ec19b930cead2b1d303aa056d28bc7
+A = -5e1c869e5dbcc684c245d5c69093bfeaadf388cbf928d33a8ae2148a2b5145937e4f654c5f6a36de1124bad1de8bcc9067fe1f9a44fc6ffe55ce7ed5cd0dbb6337b0e1e96bac1eb2a3606dd97b0bdb975ea59448be50191cc7ea36481ca9fc85c1c3e1c97378dbcd6b355622046888df2ab3d18d805f4d31d464f62a8e630e955beeeb5e00c70242b8f8df708705abbeb95dea3561756298b5f3f7fe16e965294eeeea4546f5e8bacf9d6b4f2136d2e206a87dad1f47
+B = 70225f0cadd328be36ece2172c836405db3fe80ef99ec74fca25406b73a537adf5073f2b550abfc4c0fcc2c2850dace0da9a266768cb4d5ff7fc6c1c248ad74f47592101b61ef96c1302924381abbd96cf49f50c44bf7e0551721a8ae85abdf9925548d13b8c5d1a27be8a40d0f43eec3136bc3035057b75aea779b4262cc66e6bc68da93c218f1920979291105d4b02117d66deb92c3e511aa588b27130202acc9f69521957f79c7e731bbd5461552b9b6b24240dd71ac449be9777
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = a2cb238f326d47f95869e2dcb295eba819a443dcc7c2785461389b58327742702f4c86e47af129f1fd4611cda93631f9333c358a29121d58286333083d13e66f30a9533b77ba3e26089e7eff7baf19bef8054af4e24735525908864ea9c4756b42a69c897003cab7b63cfd9a5927ed562e29845308eb2a55e7f8f03c87a5b7ce
+A = -1aa7ae6f56c38b654b281525b9da953ef366c2b9cffd3042105ed428dc7e5f2f2d53ef90b468bb471753606cc7a3775d86bcd2f4d5119cdde3c487cd39bf31752c5ba297e529c1b8121487e0e1de702156d0166ccaf51888a24fe7b48624eefaec855e2200929c21858676ec9bf4ceed0a832b69efd5065af544e49a3d209b85a77b0953652cbf0aa897527c52c9a98de9ae4c827f762e251478c88d410123625ea52b3478b52f6b9987d42009ae427763357ab53195772
+B = -226630b6fcdb5e274a25066ae2ca2c803549dbb935a97c0d7f6ab2c971d74cf6acd265c9d6815a6b2dd23dcb3c23b390fe8b1bed92b8c64c76c0ce62d5e7ddd7ce445bab0ca905dcfd0f128e5f4ffe966f3903d7ff1c61fe174e373cfe35a6d83249ec40b4a354d46fa1c90682efe468e895ea3da710838c262e8a47752dc6e7a79fe20051f51180173b58e0aa37b22eb8efee5b6dc264459ce4d135f430cb15afbf8c53f0de894bd2aca1f7ea32b4209a22a075f7b3b18e86f778a9e47
+M = b18a9cd6a0a89578ea773fbfc0767c8ab817cdd585c16afad3600540d056c323d83e7756b1b74e4c2a84df7edd562e011412a0e2eb6b64178a9e04f67550f3081797873f444dbd03d776835d696e464443a0a6f48d509228fe976c54cb82925e8a80ee65c01ad9a5f56784c54192112fbca30a76ce579d3eb6e783643e971d48
+
+ModMul = 9ea62ef634
+A = 55cc58c9d8
+B = 6b49179821
+M = f753311ac9
+
+ModMul = e9ab3a2aa60edd30108
+A = 5134a36c2bad180dd5bf
+B = 2ba6485656d041690666
+M = 9b9cc4409e86c8b0fbbf
+
+ModMul = 621f9b797e866028b7bd1ff828bf29
+A = a202338dffe171c99434d84f3
+B = fb71eee7045b3e3ab5dd809dd
+M = b3e6e8d53b7249df670e3c59c55d33
+
+ModMul = 808d463d06b7b7f98e3cb2783e2196c349d62672
+A = c669426a92d3cb5b316e2b5b9
+B = ccaea3874008dcc92450d8b2f
+M = b04dd2bb325baed1940cd000e8cb2d786009ccd5
+
+ModMul = 872164b92b9426b237858c4cdafe1694f96b0e0e4c19e894a0
+A = c3255cb24a813e27c3dc410f0
+B = b144f39e7c2d33605ba7bee16
+M = f3639f4dfb782f3107eb402fabb5fc878903acb5e02e129077
+
+ModMul = 6124d7d171
+A = 235b938139
+B = 3a56a22a28
+M = 83eb4af4e5
+
+ModMul = 9c006f56095d442ba98c
+A = 207e14237c42e3764e5e
+B = 8a495a26872432fa8e33
+M = d0cf2b8ae5c67d6736b9
+
+ModMul = 97387cfaef652932a230c82de59cac
+A = 82ae0fc5e943af5bb8c4adebb
+B = db1279be12d59ba3a9c036a61
+M = aa36dc1d13390169cd54d711eb511b
+
+ModMul = 32ee73c98da657464c6fed4274df20b099689e00
+A = 9baf08248ee24bcb17714e420
+B = a7f0428147bfe098666180749
+M = ce0bc198331c9ed1d21f0d498326e8185d3d602d
+
+ModMul = a8b3fc0b53df3b92753edecd6fbcc5f4840dad3a44da704e34
+A = b36249e259b303e453757721c
+B = f0c1db50670d92abd93bdc84b
+M = b05cf978bf2dc7e093d7d164e46d547219c480382df32b33d9
+
+ModMul = 2663b741ff
+A = 58c8e7f7f6
+B = c84681fc87
+M = e0a50dcb45
+
+ModMul = 21af3c0b42328f41b81e
+A = 1f79f5b5bf78c9700d
+B = 5bd1734ba0f0e59c2a25
+M = 9ff3fdfb5c089244f327
+
+ModMul = cbc280b5106c2c36cb31ad7e7c986c
+A = cadf6482b769e83ce7f7277dd
+B = f9862a06da1a9c89547b76c61
+M = cc36144c88139ce921d2fd1740bc4b
+
+ModMul = 3813f2fabe016e19fd8e70687ff473651a5fbb4b
+A = 9c51a5bacb5d9f055a9ac2962
+B = bfed5625b21b4e82d1f105a0b
+M = a47977acad7c5deeb683ccd265cb30cb193f22a9
+
+ModMul = 76ff291a02715fc87ebfb3e99153c04e53358dbd7beae43478
+A = 997c4a7b537d9500d73a205a4
+B = c679ce666af284a459ae5a26e
+M = d0d0fd4922953941acad8beb65c00603b19eb44fb8ca51e3c9
+
+ModMul = 1a90c92fdb
+A = 94fa7bb475
+B = 564b0a3339
+M = a1501bdc75
+
+ModMul = 5e7ae5470686bad7996a
+A = c725797912c6c5f30d94
+B = 3a7f4c99ee3f5fa9582c
+M = cc50c8b7408f09a74973
+
+ModMul = 72a15b13bcd1b63747342a6be8f0f2
+A = c33357af48a2df569e3c11ce6
+B = a4b4c5c14d7796adab54b6cae
+M = e22a0fdca62a37f4c8a61c96a429b9
+
+ModMul = 31e179bfbf65b0695dde36a4fb72d131830dcdd6
+A = ce8d3adab8cbf15c332c0b289
+B = 9333f94eeb7d7a86b82becc51
+M = a532a76bd5cff409b580d54d12ef75ad8179b381
+
+ModMul = 8f4b8a585415adff3a7bc35fa88891ba31e4a82672c664fb14
+A = 9a2b56a54bd0727ab4be57ff2
+B = edf1781b4296567990773005a
+M = c5a7c3b97ba00d6f174a019c6d37eda52036c528f351bef0f1
+
+ModMul = 917bcdb402
+A = 55c7dbd314
+B = 997b29ef79
+M = af5b4cbd0f
+
+ModMul = 660c4bb2b771f523a4fd
+A = 43fe52461d5139620a11
+B = 1f8ec4b67de1db54ddda
+M = d0458e215b7e6903d96f
+
+ModMul = 7aeff02c143e4426fcbcf32bd1277b
+A = a2671586369a990dde7829f36
+B = c7ff67937c900daccc0ab1d8c
+M = 8ad9c1d4d3cce681d1ae27c27982df
+
+ModMul = 4b153d57433f0f7276674d3484e9bd0d25227d07
+A = aea36cf51dd2ce06c66b7a407
+B = 80c9fe5bb0afd2bf8b3644f96
+M = 8cc22a67ed7e5a7a2322aaa09ec2be94998494f9
+
+ModMul = 7f8447dd983b113f04c6288f9539e53a2e9cddbca8b2fefcc0
+A = f67636b03821c8f13f21217a5
+B = 8473a29f4ae33f36a0d2c6dc0
+M = b829af37b557c3ddbb5257c8b19144b90708a45a274d6655f5
+
+ModMul = 17fe4644a2
+A = 912611576f
+B = 7a10d36b80
+M = c5fa605133
+
+ModMul = 8159b23d4fd697b4fd35
+A = be2d646e76494439e60
+B = 60fa770d05ebc69772b2
+M = a6e7c940cd749925a85b
+
+ModMul = 7c412dad5c9fff91357bf181caf2bf
+A = 80f476ed5acae75b34ed54c52
+B = fb818e2bdab3b5f4bd84db3d0
+M = d0339f7ee41337d8462d1a9c207d1d
+
+ModMul = 70432c749da4ade2c38237545ebfe6c4c6a92f6b
+A = ee9c92de52210e61adaa6eb4a
+B = 8ab55a85b1abab62d33e75fe3
+M = cd3faa6de4cb62fece4c3f94492d457834a6a041
+
+ModMul = 9fef1c18778a8691c5e71c0b5208e82778e9bfb632da0b7e28
+A = bd162c90bed25e84dd5b6b77c
+B = d887ee03020c5df356f091db6
+M = a2c2d45fe9decd93a0ca3edab8fee46d27ba23fad9b5294d5f
+
+ModMul = 958951bd0f
+A = 12bd0d3375
+B = 668bb65b4e
+M = 9c617dfaad
+
+ModMul = 8a109ebc9cbf86613e43
+A = a3e7019f1bbc35689a77
+B = 3189ecd3fd4ffd0229ef
+M = ddadc50600dff2abc1af
+
+ModMul = 2b4d9f85a398c852b3a0cc82524619
+A = c244fd157267f707319ba6c6d
+B = 8a07018a748992429bbdbf326
+M = bf3813fb54f749ea5627f59ce30e07
+
+ModMul = 28cab7d574e6dc56a6a622f8a7523cbb8dcc5e0f
+A = c9909dcfd3a59a3cfa538b267
+B = 8bbf89cd5a4e24adc2d8c646b
+M = c8f02682b9d480ea98faaca53b747ced33ed0419
+
+ModMul = 69b2dfb3f1d8dbb13e9e479f38edcc427d5968acb7751a226a
+A = 8019266c548982a520ab48eff
+B = d33c3e3b13576dcdb3ffaa796
+M = e6255103732475604df7c6f7ef7e6b49a8ef9e2b0c717925a1
+
+ModMul = 3eaa4c99fd
+A = 6fc42faa85
+B = dd0b4e318e
+M = fd7f22301b
+
+ModMul = 56b6b811ced3433755cb
+A = 145573d17cb0c996c69
+B = 9d3297d5ccc184896822
+M = dcfb3b383506239e83e1
+
+ModMul = 34315b6bc6d3690c28060485ae331f
+A = b963a26973894cfb42fcb2d22
+B = e8523304bbcdff1a0ed4141bb
+M = d7a379aeac7d8cf94f19e7924d35d1
+
+ModMul = 2ec9466e8b3357496f07e37ba24d36a237883846
+A = a75f3904e564997695b6707eb
+B = f9f47bd779834dc1f5fba0654
+M = b3ae5abed45d09c4dc5abcadc3ac9abebe1949ed
+
+ModMul = 88b4d86b2c1e1bd780e8d2499c2221e05fab4f9b7047c2a044
+A = a38eceb9c551f0e69a544072c
+B = d5f8e7c2d534b2b8985bfd213
+M = ff81809b84fb8eed3508ad891d3d8208249d8a902a12d6acf7
+
+ModMul = 172f2e2e22
+A = 1584ff1055
+B = 2e0aee014d
+M = b904cb0bc9
+
+ModMul = 122c10d3200270b9eaa1
+A = 86fd189e62a6dc1e4ba0
+B = 5235635f7b0336f5f235
+M = c93da97d0e95fb63dc4d
+
+ModMul = 3e461e10ac4eb749512097fbf76616
+A = cf4ce10cbca07164f3812f89c
+B = b7e4639c233fbb0f923fb5104
+M = 949647857e1406871593fad5c30101
+
+ModMul = 88117b59d9fed79dd6aaf083ee938215a995a221
+A = 94c888795567d434123d441a7
+B = c60ca79e61a352e34e0f78bee
+M = d2553a7c5dccd639a3927697a2e1af03845f2f25
+
+ModMul = bc5f0076a8c2f6cc8f4e61540d2d6f6d6b13b775b363dcd71c
+A = c170eaddca5295d6ec6272dc2
+B = f94a5685ced7661df2efbd34e
+M = fa6bc46aa05033af72aa42793e9174af2e3ba38992f33572fd
+
+ModMul = 1110cdbe5b
+A = 5db02b38f3
+B = 3369537903
+M = a8863f7979
+
+ModMul = 90fcc5f3a346d3d4ea4c
+A = b93373680ea0feeb31d8
+B = 37f9dfaf0e180be64bd5
+M = d595cc29237d1c19e2db
+
+ModMul = 8623a9997e514cf3c1d06c33c14053
+A = b396f5ede6212f1fdfc7e7b77
+B = 81a1ddc18306f2d2e84030148
+M = a6be32a91b34857842255ef8b1aafd
+
+ModMul = 63f8f0254df06356f5cab8941b77619ad58025ed
+A = 806b2627b08d987438f920bae
+B = 83297039f4aa8efc1a185fea3
+M = bb8a7e7c19be02c25cf5682a0eee655fcd5b69a5
+
+ModMul = 697238dbe3d395e81f20c9fcc8db30c234a1f75f3b2bc27438
+A = 930b04224bc097ac1d8bae8be
+B = b79496a80e45212c4663e5b64
+M = 8ff7e19d967d317c255380411898d73e3786269f09079f19f1
+
+ModMul = cd93b5b8b1
+A = 47a51b2d5a
+B = 86d6ba5155
+M = efb0ad3643
+
+ModMul = 2037821ea789118bde0a
+A = a92215dcae19be637ff
+B = 93b9a3664a406737958f
+M = 9df360b69ed26f610253
+
+ModMul = 3bf11785d28ceb668dc55b870faf7b
+A = bc8758854dc48e057cb6210de
+B = f03ca689620a77ecd8a6f0de3
+M = f3ff0747d6e5f34a0ba4200f579259
+
+ModMul = 7b30b44f75ed12f54136858ce4fe77d00e0952cf
+A = 993cd09f3e46423a8ba2053df
+B = feabee384158032dd013dc08d
+M = cd0b21388cb2033b1e792ec4078334df70b6c8f9
+
+ModMul = 8ce1e17972f1a9d2e9437d0c5219354728a5f31337808d7650
+A = 90e5d18b017118177ffb080da
+B = f8e7e09032574f6c66e623ec8
+M = da795e6ef63ff7dc4baef5c327022ccf65d44e3c4e24823f11
+
+ModMul = 8fcd412054
+A = 2e7f9b1a
+B = 6283de2c9a
+M = 9bff560ae7
+
+ModMul = 57d0d3b79f1e2f3632fc
+A = 2f8cc403de5af54cfa39
+B = 3b798c3ead52878dfb2f
+M = 805e6cbde400d4b4bc9b
+
+ModMul = 23331614e88633af879201f568c359
+A = f21f19da4b20980979a645dac
+B = ea752050b79883dcd69222536
+M = aed3faf4c88f7c4afe257c5ed90599
+
+ModMul = 56dcf9ae1c787e773774df3c8762babb4675a212
+A = 9accf901fa599da05fa6ab5ff
+B = f7f6b9b1d7bae06237532e39f
+M = b5bcd776bb2eb0805ade3c8b47e883962d3cbdf5
+
+ModMul = 61d0ee0786963906a028a1df01f836841ab6d39d88ca2717c0
+A = 8e57680f213d088ff1a1e7db3
+B = afebecc9943b0093f87022940
+M = b6201f68a45265d7e9183c3255feb4c110c05dadbcb13881bb
+
+ModMul = 143ae78a29
+A = 334abb952a
+B = 74203e7a50
+M = c9535a9505
+
+ModMul = 897a2b57e69f5a1469ea
+A = 1ec8ca0ea4fed52bdbbf
+B = 3a6273cab05e478a57b8
+M = dcb33163a8ea42c1ae6d
+
+ModMul = 4a2c10e90e2d37111db79a44d3e31b
+A = a90e7bbd63fc4af6de83029ee
+B = cf09c3dd50b41afc7045e057b
+M = 8ab85d47e4270116a64f97dc4f0f15
+
+ModMul = 70f94276c9d85fd3f71edfaad6051456f754da85
+A = fa3e9ff6e1aa1fb78e51711cb
+B = b115ed197c50b7ec4040ca255
+M = ad63f69ef1346e7549ba71c13b24b279f53bc9bd
+
+ModMul = 861e7ef401866f815b983ba18a612913ecc20a67016d79cfac
+A = fc41a9ce06e882942f751be7a
+B = 881c05a51d1ba8134d126a48e
+M = b12200b39526c33b70e8aa23ebc400dea0d4d8fe42be103d5f
+
+ModMul = 4e0051898a
+A = 2a06523f70
+B = 651b5044f0
+M = 9da4eb09b5
+
+ModMul = cc8274c88d6affc3742f
+A = 9ccf0133f9628532f4f6
+B = c1d80907057be7a67b01
+M = d6e76e362da831f32685
+
+ModMul = 568f15bed5c4405be9dd04673a9c46
+A = dd6029c3196feb6da7f0f4a48
+B = a5f6745f2cb64913d1d3236d8
+M = f62f02c9b9ca8993e3be9a02b444bf
+
+ModMul = a629452d5ed19df040eca26eaca37d82c0fb1d8f
+A = 963c51a9415b03e85ccb09f25
+B = b1cffe333afe44311cb968ffe
+M = ab2128698d498e8d75455033cfbbf4487535773f
+
+ModMul = 814030123025d287aaa8b826792999d72f2d589e0c7f7f3dbf
+A = c3b33f391e78bee97ceddf313
+B = a9136f3af450fdeb245eff425
+M = b6aa9c517eaecb70781e597b907583bbb569e970d229235a35
+
+ModMul = 8735bd486d
+A = 563e15c52a
+B = 31293264e1
+M = 92f4b193df
+
+ModMul = a541f69ca163b288dd0e
+A = a608b48c1dcaa18424b2
+B = 891b0b296e911068b00c
+M = d4140921f4b2c84f1eb1
+
+ModMul = adc1b7cf65967b013d046866b4ed9d
+A = e97941448f65060cf63ecd486
+B = ca68936f76cb87a8fbdd37311
+M = ebbca2482fb82eeca2866057cf1179
+
+ModMul = 44aa9f0dd58d4510a7364e130698b34eda23a632
+A = c11f83f01bb964ffac93a2e30
+B = e05ee40eea39f4538d735193d
+M = b5e8b511738979dc740a6a1f7291cf4561787be7
+
+ModMul = 8b16b82f064f471983c7154abc9f9ba355111bacb90400372a
+A = acff8da571e1c96810bf95707
+B = cdd23e5504cc26d0c34a62b06
+M = f38902a99190ae0b5ef26849a6e943d651925666fea271fee7
+
+ModMul = 193f453197
+A = 8cb3078675
+B = a8fb003a87
+M = b60ff22f4b
+
+ModMul = 849c26c8cf5cae426a80
+A = 5d1e3d2b4d038a0a34be
+B = 34f70325565bf0523314
+M = cbc189f9a732cad8f425
+
+ModMul = 9a4e64ff530c53a4c6c5b6b5021920
+A = f53b81723cf74f520a61e614e
+B = 9d8ac2e6b839143fdd079a2ff
+M = a115375435151798f3644bede9d863
+
+ModMul = aac303a4623e80158af1cb3331965cc8e3184edd
+A = cce0a88606ff962fdc37e72c9
+B = 9840a500a2051625c517104db
+M = b99dafdbd91ec3c05791031df5e193c03d6a441d
+
+ModMul = a31401dfa761bbe82b66b5f094151865b18a4ba75bb9b3dedf
+A = e6f48c027284856aaf3b96425
+B = b4c326f72a6a22fd4b93ba5b3
+M = e57d9608ac6e5b129b2c014958bfc59137f63838b1ba88a4ab
+
+ModMul = 8b0929adbf
+A = 61fdf77ac0
+B = 8892f05400
+M = f12b3766eb
+
+ModMul = 91b57f353307b173679d
+A = 33f8e73752072b4b5cfa
+B = b4c730f79f4f2c07945d
+M = d41be1d8d2e5753e3ae9
+
+ModMul = af04c564adfeb120bc4770bc8c650c
+A = af151333b3d4cd1d29fd801db
+B = 9ccaac44ff91be11b30bdcdd0
+M = e0bd6e70d5f5ce08fbbfd48d43101f
+
+ModMul = 1b8d623796a5065d9e993a53a9587a0fdbea1bbd
+A = a2fd08df2d4eab0cd6d29e213
+B = 92c9d26ae7c215b52199ee28b
+M = cd529f4cfa46f3bd3e7fadf167fdc02f6f881da3
+
+ModMul = 4a8573dd8dc50a4fa39f3579d3869745eb8c1153ca508deefd
+A = 855f941d085305725da617f5d
+B = 8f09b7d2c36e0340523da5421
+M = fd8caa05edeaa81beefa01957eed97a981ab34bdeb6d8c704b
+
+ModMul = 2d278e089
+A = 59d20a1716
+B = 8e2a58bc75
+M = b3d61ef699
+
+ModMul = 2f937ce359d0f6cedd1
+A = 1019d11d26040ffd5b1d
+B = 7cdb6252087423d43e08
+M = e8f537323004447e669f
+
+ModMul = 6567332e25af83089f7458786ab0ca
+A = bf9565e9f8a098894447b58fb
+B = fc867626f268c24cc0ab7bf8b
+M = 930f39183353363dcd822933a438ef
+
+ModMul = 3692e73ad1d91ddc19cad3808eba2c5fc88e2bf9
+A = d0a42ce512629f0ffd233a9aa
+B = 97f6d3c4c655c7353a62d6ac4
+M = eac2ea84851f880214b8f40f881a2e56a6ba6f2d
+
+ModMul = 81df390c9e51b30bd639db15adb464c7cb1d011cb5e260be58
+A = c237eb242c40960861c938c08
+B = ab2f481f0d768eebd90d2574b
+M = 8697d7a28a5f42c9a7b31949b8b568f861142f44fe66c6cd3f
+
+ModMul = c952f9aef
+A = 81973bbcb3
+B = 28ddee3bf7
+M = c4a40993c9
+
+ModMul = 241dd53d93f7bdbbb2ee
+A = 2136eda4495c45c9f96c
+B = e74c4baa8ca3f6b7cd5b
+M = fff4594e7a5f0a1d3e15
+
+ModMul = 5f861ed8b0aa835761613e6c869cfd
+A = bfc5c1572086079f5f5d18d1b
+B = 95902e14923c8010b7e905178
+M = a819c6c109d623f9b845aa23712c9b
+
+ModMul = 5b8ab089c4e4c6804e48a2bc1d218718b3a32598
+A = fbe65d3852224a812c432672a
+B = d57a3f38da966d2471d70a048
+M = b9e6a626d3ad026d14248fc90c882bedd64a1f13
+
+ModMul = 761438baf5b02dc095b7040e082da7b167c2b9ace956284ed
+A = fd91701ed2151f8e994bf4ee1
+B = 88b66e735b76972bccd9db182
+M = 8008b2d1274456aa68dc627b1ec3e1762c6ed2d660c64a1a55
+
+ModMul = cb743c97a1
+A = 9c69ca9b60
+B = 7488f48f5
+M = d67040ed0d
+
+ModMul = 931b2bee1bc30725a31
+A = 650f567b544ce02303d4
+B = 5858da30dd1fae88a675
+M = 91ce30234bb29fb9e833
+
+ModMul = 5b4f262cec958a20390b5e568ccdaf
+A = f7e240e8a077e8e87506db2f1
+B = f8653fe64e3bd414782f51634
+M = fdb8225eefc1620648737d31dfe1f7
+
+ModMul = 4c011d1ddfa30c901793cc6ce74db47584cebbd1
+A = eda8e9a9ea3cdae17bd50b1b4
+B = 992e8ef4a45593e4ceff67876
+M = 95e2f120cfcefbada1058af6c8853cbebedd5763
+
+ModMul = 6e99aa5b8107399848cf24fbd88ed6350efb68d737e505b466
+A = ca6c51ba2f410d09bf71d60fe
+B = 8bdfa8fe5ef3b2ad02bc63c4d
+M = 84daecf412b8c50ad6dfdb546c3eb783dcc6f32003eda914bb
+
+
+# These test vectors satisfy A ^ E = ModExp (mod M) and 0 <= ModExp < M.
+
+Title = ModExp tests
+
+# Regression test for carry propagation bug in sqr8x_reduction.
+ModExp = 19324b647d967d644b3219
+A = 050505050505
+E = 02
+M = 414141414141414141414127414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+
+ModExp = 208f8aa0
+A = 86b49
+E = 2
+M = 30d26ecb
+
+ModExp = 27308229
+A = 17591bb
+E = 6
+M = 30d26ecb
+
+ModExp = 2bdf498f
+A = 21292626
+E = d
+M = 30d26ecb
+
+ModExp = 11317167
+A = 4a655df24
+E = 10
+M = 30d26ecb
+
+ModExp = 2e1b88e
+A = da6b761a86
+E = 35
+M = 30d26ecb
+
+ModExp = 20a12ec3
+A = ea811
+E = 2
+M = 23bc042f
+
+ModExp = c42ced
+A = 1011a6a
+E = 4
+M = 23bc042f
+
+ModExp = 4637d79
+A = 28d9a601
+E = 8
+M = 23bc042f
+
+ModExp = 20e5669b
+A = 72fe6bc20
+E = 11
+M = 23bc042f
+
+ModExp = 142ab9e3
+A = 9a07b9363c
+E = 29
+M = 23bc042f
+
+ModExp = 14c64646
+A = 822df
+E = 3
+M = 30915765
+
+ModExp = 160e35a2
+A = 15ea542
+E = 5
+M = 30915765
+
+ModExp = 2f23a488
+A = 34d2e02e
+E = e
+M = 30915765
+
+ModExp = 28e67f93
+A = 636a32703
+E = 14
+M = 30915765
+
+ModExp = 29bfeaa5
+A = c8646998e6
+E = 2c
+M = 30915765
+
+ModExp = 30959e22
+A = 81dad
+E = 3
+M = 326dd68d
+
+ModExp = 1a1da4fa
+A = 116adb9
+E = 5
+M = 326dd68d
+
+ModExp = 272bf0d8
+A = 2d21ef08
+E = 8
+M = 326dd68d
+
+ModExp = 29f5054b
+A = 76989850a
+E = 16
+M = 326dd68d
+
+ModExp = e6c7b77
+A = b88ee70d2a
+E = 3e
+M = 326dd68d
+
+ModExp = 369605e1
+A = cf26f
+E = 2
+M = 3ce082eb
+
+ModExp = 168a3c5d
+A = 1f82caf
+E = 5
+M = 3ce082eb
+
+ModExp = 125c4bb8
+A = 2e9c4c07
+E = 9
+M = 3ce082eb
+
+ModExp = 1c5fe761
+A = 523ab37f1
+E = 14
+M = 3ce082eb
+
+ModExp = 21703009
+A = dc832165e8
+E = 20
+M = 3ce082eb
+
+ModExp = 1228d1e
+A = a5555
+E = 3
+M = 24665b27
+
+ModExp = 5226af4
+A = 1077bd6
+E = 4
+M = 24665b27
+
+ModExp = 1b14eac1
+A = 2db3a834
+E = f
+M = 24665b27
+
+ModExp = 161727bc
+A = 6bd962cb6
+E = 19
+M = 24665b27
+
+ModExp = 10d61d0d
+A = c10caed407
+E = 28
+M = 24665b27
+
+ModExp = 233da406
+A = b125f
+E = 3
+M = 33509981
+
+ModExp = 24032799
+A = 1656b7c
+E = 6
+M = 33509981
+
+ModExp = 129ecebe
+A = 2e671504
+E = a
+M = 33509981
+
+ModExp = 20c20bac
+A = 4d7a2de44
+E = 1f
+M = 33509981
+
+ModExp = 2e3ce9d3
+A = c53b3def4d
+E = 31
+M = 33509981
+
+ModExp = 12fadfd6
+A = b4cf8
+E = 2
+M = 36e9d4ae
+
+ModExp = 457ac85
+A = 1b1c7e9
+E = 7
+M = 36e9d4ae
+
+ModExp = 31debef4
+A = 3a973028
+E = d
+M = 36e9d4ae
+
+ModExp = 2333ad93
+A = 552b97c45
+E = 11
+M = 36e9d4ae
+
+ModExp = 99ba1fb
+A = 8bfb949cbb
+E = 28
+M = 36e9d4ae
+
+ModExp = 27b691de
+A = 93492
+E = 3
+M = 298fdb16
+
+ModExp = 3c2b70f
+A = 14e7b0d
+E = 4
+M = 298fdb16
+
+ModExp = 1486cda7
+A = 29acff81
+E = c
+M = 298fdb16
+
+ModExp = 11725275
+A = 507489205
+E = 13
+M = 298fdb16
+
+ModExp = 24d14627
+A = e71c55606d
+E = 35
+M = 298fdb16
+
+ModExp = 222b8d14
+A = 9b1a0
+E = 3
+M = 3db59d12
+
+ModExp = 3b8bd47d
+A = 13f4e8d
+E = 7
+M = 3db59d12
+
+ModExp = 17e72356
+A = 334774ce
+E = a
+M = 3db59d12
+
+ModExp = 306447ca
+A = 47079ddd2
+E = 12
+M = 3db59d12
+
+ModExp = 90bef3b
+A = a75d62616d
+E = 37
+M = 3db59d12
+
+ModExp = 1
+A = cddd44f47e84b3276cc36a5c0d742cc703e61c4756168601fbb1b6eb598c161019562344dd56ab6f603d920a12c360b285e6496a3605a2f8d691c3598233ee9366b5f2692554893bdeb67b7bdaf35ab7273ac593145e26bed82c70ba5793bf4bc5cac4c80b01785d1496beede493806e4f4aa89fd8d41de80dd6d0a3e2742678
+E = 0
+M = c95943186c7567fe8cd1bb4f07e7c659475fd9f38217571af20dfe7e4666d86286bc5b2bb013197f9b1c452c69a95bb7e450cf6e45d46e452282d5d2826978e06c52c7ca204869e8d1b1fac4911e3aef92c7b2d7551ebd8c6fe0365fad49e275cc2949a124385cadc4ace24671c4fe86a849de07c6fafacb312f55e9f3c79dcb
+
+ModExp = 0
+A = 0
+E = 8de689aef79eba6b20d7debb8d146541348df2f259dff6c3bfabf5517c8caf0473866a03ddbd03fc354bb00beda35e67f342d684896bf8dbb79238a6929692b1a87f58a2dcba596fe1a0514e3019baffe1b580fc810bd9774c00ab0f37af78619b30f273e3bfb95daac34e74566f84bb8809be7650dec75a20be61b4f904ed4e
+M = c95943186c7567fe8cd1bb4f07e7c659475fd9f38217571af20dfe7e4666d86286bc5b2bb013197f9b1c452c69a95bb7e450cf6e45d46e452282d5d2826978e06c52c7ca204869e8d1b1fac4911e3aef92c7b2d7551ebd8c6fe0365fad49e275cc2949a124385cadc4ace24671c4fe86a849de07c6fafacb312f55e9f3c79dcb
+
+ModExp = 5150fb769d5c5d341aaf56639a7bcc77c415fe46439938a2190283409692f29cd080bfe3433005d98d24718a03a3553c8560c5e9c8ed0f53b8945eb18290e1c1a83d919302510f66dd89b58acc2de79ad54b8a30d3e1019d4d222556beefca0821b094ecf104b5e4cfce69d2d520d2abf54f3e393d25ed3d27e8c2e3ca2e5ff9
+A = ead8c5a451541c50cab74de530c89376d9a55c723e0cac3c84b25f0093c08a2961e49ab48966361c42c9f99111587252d98395b76788400d75c66ef208ea2767a28d6f8dc3a859f39c95765d57f139e7fc14f47c908c62df051e7216d379f52028843b4d82ef49133cce8fe671ae179423ac8da5be43b01caaf425cd969300cd
+E = 8de689aef79eba6b20d7debb8d146541348df2f259dff6c3bfabf5517c8caf0473866a03ddbd03fc354bb00beda35e67f342d684896bf8dbb79238a6929692b1a87f58a2dcba596fe1a0514e3019baffe1b580fc810bd9774c00ab0f37af78619b30f273e3bfb95daac34e74566f84bb8809be7650dec75a20be61b4f904ed4e
+M = c95943186c7567fe8cd1bb4f07e7c659475fd9f38217571af20dfe7e4666d86286bc5b2bb013197f9b1c452c69a95bb7e450cf6e45d46e452282d5d2826978e06c52c7ca204869e8d1b1fac4911e3aef92c7b2d7551ebd8c6fe0365fad49e275cc2949a124385cadc4ace24671c4fe86a849de07c6fafacb312f55e9f3c79dcb
+
+ModExp = 1
+A = 935561297d1d90255aef891e2e30aa09935409de3d4a5abc340ac9a9b7dce33e9f5ce407f3a67ec30e0dc30481070823f8542463e46828d9cafb672a506d6753688cbad3d2761079f770c726c0b957071a30876c4d448e884b647833befbcd6b582787bf769d63cf55e68c7b869a0b86374f8920516cf5d528f348b6057450a1
+E = 0
+M = dcc24236a1bb94c71d9ec162a6aa4697b932717e82b667cad08b6bd1bbcbddf7cd167b7458de2b0b780486b39574e749d6405f9ede774a021d6b547271523e9e84a6fdd3a98315607ccf93356f54daa9c75e1e311e1672d0dc163be13f9ed6762f7dd301f5b0a1bb2398b608f40ac357ae34fc8a87d4fef3b961cbdb806d9061
+
+ModExp = 0
+A = 0
+E = bb552be12c02ae8b9e90c8beb5689ffefe3378d2c30f12a6d14496250ecce30317c642857535a741642c3df689a8d71a276d247ed482b07b50135357da6143ac2f5c74f6c739c5ff6ada21e1ab35439f6445a1019d6b607950bffb0357c6009a2bfc88cd7f4f883dc591d4eb45b1d787e85aba5c10ee4fe05ea47bf556aec94d
+M = dcc24236a1bb94c71d9ec162a6aa4697b932717e82b667cad08b6bd1bbcbddf7cd167b7458de2b0b780486b39574e749d6405f9ede774a021d6b547271523e9e84a6fdd3a98315607ccf93356f54daa9c75e1e311e1672d0dc163be13f9ed6762f7dd301f5b0a1bb2398b608f40ac357ae34fc8a87d4fef3b961cbdb806d9061
+
+ModExp = bbad67352704a6321809f742826bf3d1c31c0ad057bf81432abeb30dc9913c896c03e69eb1cde6b78ffcb320c4625bd38ef23a08d6c64dc86aec951b72d74b097e209ce63092959894614e3865a6153ec0ff6fda639e44071a33763f6b18edc1c22094c3f844f04a86d414c4cb618e9812991c61289360c7ba60f190f75038d0
+A = 855144760f2be2f2038d8ff628f03a902ae2e07736f2695ec980f84a1781665ab65e2b4e53d31856f431a32fd58d8a7727acee54cc54a62161b035c0293714ca294e2161ea4a48660bf084b885f504ad23ea338030460310bd19186be9030ab5136f09fe6a9223962bce385aaaf9c39fe6ed6d005fa96163fe15cdfa08fc914d
+E = bb552be12c02ae8b9e90c8beb5689ffefe3378d2c30f12a6d14496250ecce30317c642857535a741642c3df689a8d71a276d247ed482b07b50135357da6143ac2f5c74f6c739c5ff6ada21e1ab35439f6445a1019d6b607950bffb0357c6009a2bfc88cd7f4f883dc591d4eb45b1d787e85aba5c10ee4fe05ea47bf556aec94d
+M = dcc24236a1bb94c71d9ec162a6aa4697b932717e82b667cad08b6bd1bbcbddf7cd167b7458de2b0b780486b39574e749d6405f9ede774a021d6b547271523e9e84a6fdd3a98315607ccf93356f54daa9c75e1e311e1672d0dc163be13f9ed6762f7dd301f5b0a1bb2398b608f40ac357ae34fc8a87d4fef3b961cbdb806d9061
+
+ModExp = 1
+A = 9d92629c1ab181c50c31619e8acd0d235a1f5fc7a0bef4d4fd54b4f1968d45921f8522efe88e69c6c14c576c564592b9feb00d1554b88b038934eaf4a8ce81a2582732387490181ef158360c8b2d9ccb326ffe043f776a50cb8202837f08ca743b562eefa007150ab7012c341b16248478d4775c02ad71ea13d5e82b71e2d600
+E = 0
+M = cd607549668469b792f495c141e500871880b0611c8004293a561ec7f9ab6561f8a9b90872742386adafb5cd1890e8204ae12aec529cca0a9e382c96439137f09de9973b12c8492c62847e107deabb7dd946ffbb9d0ac73b462c481092bd65326a17f21d8d6527c47a5dba50aaa20c7048b8788a49eb3ea5f29bd5cfce24eb3b
+
+ModExp = 0
+A = 0
+E = 9f43dcb641f3ecf4dbc97450f2bdf3b7ec6a2f3e8e96bb1df2bf34b8d2d78e1a9018d04d960ffd0e932cfc60d3b9b923e3f9f29b3f3d61cae3a9f7245078143475c7fcb896ff200f7d94c4f2708bb42750e37c185a31c876814e4f06a00771707654e1da2fb69c16b6500b16385e3b933e2276ad3569977473f699b1c7926c3b
+M = cd607549668469b792f495c141e500871880b0611c8004293a561ec7f9ab6561f8a9b90872742386adafb5cd1890e8204ae12aec529cca0a9e382c96439137f09de9973b12c8492c62847e107deabb7dd946ffbb9d0ac73b462c481092bd65326a17f21d8d6527c47a5dba50aaa20c7048b8788a49eb3ea5f29bd5cfce24eb3b
+
+ModExp = 24eaead5b57883c2f454928f8edd470a344bfe07a953194f7d635d705ef13ddfc64140c8ad6f363d4c828e7c7891a6b6d4df37335de4552c319dafd1c06d1f743240082a3535df4da1475d3eea3fead20e40815fd5a0876c881c162ab65a1eda494280c258901ca953d1d039a998bf0e9aa09273bbef4865f3054663b72d75ff
+A = a31618b4532f53729ba22efb2221432fab1dbb70853d6a1159b42fd19fc949965c709b209de106a652aa422d88922ce51dae47f7f6deaf0055202e13db79ee84fc3d3c6f4c003ef96597c49d6895fa53c22ac9e4819f7048146b5272f6279424fdb389819a0b251c823c76f4bebf4f1246de455aafe82a0d34454f5039e90839
+E = 9f43dcb641f3ecf4dbc97450f2bdf3b7ec6a2f3e8e96bb1df2bf34b8d2d78e1a9018d04d960ffd0e932cfc60d3b9b923e3f9f29b3f3d61cae3a9f7245078143475c7fcb896ff200f7d94c4f2708bb42750e37c185a31c876814e4f06a00771707654e1da2fb69c16b6500b16385e3b933e2276ad3569977473f699b1c7926c3b
+M = cd607549668469b792f495c141e500871880b0611c8004293a561ec7f9ab6561f8a9b90872742386adafb5cd1890e8204ae12aec529cca0a9e382c96439137f09de9973b12c8492c62847e107deabb7dd946ffbb9d0ac73b462c481092bd65326a17f21d8d6527c47a5dba50aaa20c7048b8788a49eb3ea5f29bd5cfce24eb3b
+
+ModExp = 1
+A = a8558e7f455b27c0c46d7d0862eb409cdefbeca945e0284b5bf425b7ac0f3d316bc365594cc1639decffc621214d61479bc75135120d4ac09ea8b742ad7ec1822091b62b1c6f564fe5e2f4f5b7def92cbaaa9a898549207ab01b91c2324fbd306a87f7d6379b6fb6493c5fca76729767f136120da9c90bdc7d364f7d242d5acc
+E = 0
+M = 88f3c87ac5e3272a21b8a858da640d6939fb8113a95412c38663a0f352686d69a5d7927e60b484b9fcb8ef12978fe25ff2ebc9b61c5450e04222ef20ba3cbbdc5ec45581ce0f58e10be7bb9de7fa08752303a7a1db23b2ac9c6692ec63bf09ecd6639e06c5491ba568ea886620d71da32d329615f0e1443a75d09ae35b8a2d7f
+
+ModExp = 0
+A = 0
+E = a5524b41dfc6b570df1d8f6633ac7777c1131abe3a99c6166b0d29d3b8883c41b00a0c53cdd6f42820bf05c810b6ec53e77a8c1b9344ea0c91d4f410a2f204c369f3db33bf8c88217fc2cf802a9d9bce8119242d8e781875b85431be170076498c0963574ee423551aec9557e2fc672ab1ab5d0cbb1c400535df9481e7934d8f
+M = 88f3c87ac5e3272a21b8a858da640d6939fb8113a95412c38663a0f352686d69a5d7927e60b484b9fcb8ef12978fe25ff2ebc9b61c5450e04222ef20ba3cbbdc5ec45581ce0f58e10be7bb9de7fa08752303a7a1db23b2ac9c6692ec63bf09ecd6639e06c5491ba568ea886620d71da32d329615f0e1443a75d09ae35b8a2d7f
+
+ModExp = 292f0b39ca0f1c850b1a00cffd2d54924fcd5fc7e7504c9d593e6c0ff74760b1f4bdd81679fe06c50248336f3108c593fa111072ee87d0fcc89a63243a1dc89044503663eee9bc18f51c3e0193d9108303e12ac90ff78f6ec752a4386af09c42db524a7cbe9a3d4fcccd56c34d283bcc9debc17158b5fe8df0c1888a9841bf8f
+A = b4fde2908745ff92cc5826a27dcfdda09e8fffee681844fa4c7f1354d946d5d84e0e0c7a4a4cb20943d9c73dd707ca47d796945d6f6b55933b615e2c522f5dfc33e0652917b4809bab86f4fa56b32b746c177764895492d0a6a699812b2827fe701d40ef7effd78ea8efe1cac15ff74a295a09614bf04cae1a5017872ba22efe
+E = a5524b41dfc6b570df1d8f6633ac7777c1131abe3a99c6166b0d29d3b8883c41b00a0c53cdd6f42820bf05c810b6ec53e77a8c1b9344ea0c91d4f410a2f204c369f3db33bf8c88217fc2cf802a9d9bce8119242d8e781875b85431be170076498c0963574ee423551aec9557e2fc672ab1ab5d0cbb1c400535df9481e7934d8f
+M = 88f3c87ac5e3272a21b8a858da640d6939fb8113a95412c38663a0f352686d69a5d7927e60b484b9fcb8ef12978fe25ff2ebc9b61c5450e04222ef20ba3cbbdc5ec45581ce0f58e10be7bb9de7fa08752303a7a1db23b2ac9c6692ec63bf09ecd6639e06c5491ba568ea886620d71da32d329615f0e1443a75d09ae35b8a2d7f
+
+ModExp = 1
+A = e2845c572b46496ac158a731f612fd40ef626fa7134755c25b1b7614f4d7b29164e6142ddb7985e4c7ebc575855ff901e95927fe98a5aea2ad3a4720c75782323bea1518b2c57790f44efd9411be4e95b3896bad1e73c59658290b309e5a7eb5ef8be08125063e57336b80f17eacee88966d12bbaaa15a25929c82e027cf696f
+E = 0
+M = cf0dee80177869a532f0c6c3a0bda3aad79bdb6b70b6c227b32d75c26e394a90c1f2a6c2bb841ba9f6556b15654a79d8b1dd0c90709a093497bf40be0807cdbb378a74de5893c25067224d3ea8d37387ed6c4a981138853cb89caa9ce6cd0f6a1e95de24d558e90960f93844db4d01e372650350d45a9d34a36042b4d4b9e78d
+
+ModExp = 0
+A = 0
+E = a55703a72ca3f6074b939ed3d748196a684a3c8e411c2b39a9beb98993b6eb7ea3fa16f41bc5b5c3710b91c0fc74a8072793052f872f61695db3a2df872eaa427a110f1a8d568c85d58bd350d0df8eced7a10be80f7567360c1a8047b9c44aa2967cd0d9dd2caea2c1492358c2db4f0214da343fdf2e34272865dc5c63be2ae4
+M = cf0dee80177869a532f0c6c3a0bda3aad79bdb6b70b6c227b32d75c26e394a90c1f2a6c2bb841ba9f6556b15654a79d8b1dd0c90709a093497bf40be0807cdbb378a74de5893c25067224d3ea8d37387ed6c4a981138853cb89caa9ce6cd0f6a1e95de24d558e90960f93844db4d01e372650350d45a9d34a36042b4d4b9e78d
+
+ModExp = c90e4c69df92e26549b016950b59080947f5403430698e128477782480dd70be96bed2b9042dd8c708eb432e02710555b97af11ce6fa9b53395022851c32d1f53f04237fb0763563b440ca6e81a50d909d907d9c26b7d3c420dbf88f7dadd488666848135f8cdc608dcfb0691989289fb54379c2e84c262f9765f68c012ca1b9
+A = 882ea1b9b6c79a3b1bdfd284658cb6227ad825e0178cab713c7413c2ec34f03cfaec470c4f5c521f5e9899a2123878ff0f5b36a4196c08ad1b04d03746c4bfb5d126f5eefbfe172627d6732710a8ac8890cedbd4fdef69a19f2b3253a5aa0e5dd5484f72d59b17bdd1dad3db209a3ab839368ed3975069685911d7b35e41a9e6
+E = a55703a72ca3f6074b939ed3d748196a684a3c8e411c2b39a9beb98993b6eb7ea3fa16f41bc5b5c3710b91c0fc74a8072793052f872f61695db3a2df872eaa427a110f1a8d568c85d58bd350d0df8eced7a10be80f7567360c1a8047b9c44aa2967cd0d9dd2caea2c1492358c2db4f0214da343fdf2e34272865dc5c63be2ae4
+M = cf0dee80177869a532f0c6c3a0bda3aad79bdb6b70b6c227b32d75c26e394a90c1f2a6c2bb841ba9f6556b15654a79d8b1dd0c90709a093497bf40be0807cdbb378a74de5893c25067224d3ea8d37387ed6c4a981138853cb89caa9ce6cd0f6a1e95de24d558e90960f93844db4d01e372650350d45a9d34a36042b4d4b9e78d
+
+ModExp = 1
+A = d7a99e65b8af86b1c51d851f0447e43cd4f343cb0ada7236283e69aa7ebd383826acc9809e5dbc4002d0f2430022cb026458189db3805ce2de1142a31ba71a6c064ab51f0059eb4b931b8bcbaef023c38d57aa5f3e14f5df77e547fc028702071b58bd57338be1e1e4f98d3553484e4de359cefa29c5f58d3fa5d823f389dbef
+E = 0
+M = 8315dacf124bd473c578946347e83d1b20c750a7d9533d6215591be40bc78bcca77821f8c8f95375bbd6372515ada63d22bed2fa49bd6fabb0040c538d08db25b09d2fda02a93ab086cd1c27df93c37ee9c6a0527d089179b8f92b5dc3acf5ef1c75906fb80b03f5c2442a7a4088640f66376575ecfa4c697c1a571397ee5a0d
+
+ModExp = 0
+A = 0
+E = 95793fe33696f53e37498b2b65aaf27079e27acf1da97dda2c3e0803e8a02139f574e04ee03f7d1ddd029f528e3f3644515ad6f10f0beac2767f23d9cd8a8b9b6c6e376e36b64a0ae2711d7d31a5a75011641935b503110edbefe9f0ff2da27b5c5f6bb8cc151fdc86f67191bb99160c6cacc86ca368d5bdfafd3f3ff5161b1e
+M = 8315dacf124bd473c578946347e83d1b20c750a7d9533d6215591be40bc78bcca77821f8c8f95375bbd6372515ada63d22bed2fa49bd6fabb0040c538d08db25b09d2fda02a93ab086cd1c27df93c37ee9c6a0527d089179b8f92b5dc3acf5ef1c75906fb80b03f5c2442a7a4088640f66376575ecfa4c697c1a571397ee5a0d
+
+ModExp = 186c50ae259aa0fd31859cbcfea534e626a254de33956d5d719334bb32e7cf37cf199a21f079a5b90497228994d05efe19ccd8c769cd81f896286e8ae557cacd1630a928c629ecdfece29ab3697794aa707734e007318fa7029b050bb09ebbe6986187c6ca843f55266d275620b3f0fec0ad5f847ce8b314d929d128b33a249e
+A = 9d5e345793faddca9867f23eeddf6816c1e837f7a2cf96fa077212514acb6be87ac01a237d8f2f1d07d27a8ddd1b0ae0d97e1bda4f205a89435017284cdedea3e407b1b940d6f52112b6359b3e86e4c83074b17c210ae2c8856b42b169b4a7a6dfa65b368a7959496cf9bb1ee93d019dbd79101830e3f5ed08604ab90890b914
+E = 95793fe33696f53e37498b2b65aaf27079e27acf1da97dda2c3e0803e8a02139f574e04ee03f7d1ddd029f528e3f3644515ad6f10f0beac2767f23d9cd8a8b9b6c6e376e36b64a0ae2711d7d31a5a75011641935b503110edbefe9f0ff2da27b5c5f6bb8cc151fdc86f67191bb99160c6cacc86ca368d5bdfafd3f3ff5161b1e
+M = 8315dacf124bd473c578946347e83d1b20c750a7d9533d6215591be40bc78bcca77821f8c8f95375bbd6372515ada63d22bed2fa49bd6fabb0040c538d08db25b09d2fda02a93ab086cd1c27df93c37ee9c6a0527d089179b8f92b5dc3acf5ef1c75906fb80b03f5c2442a7a4088640f66376575ecfa4c697c1a571397ee5a0d
+
+ModExp = 1
+A = e6a079bdf7b0638d50b183475e9ddfd5cbdebfb29f5fae8e9be402a0bd36085737b556492ea7fb4b1000ae9ce59db66098129b757cfb29224275fdaa46b8b7eb18a93ca7d3e446dc38c734b683d7ba7927b008d993aab01f44239d3c76be76d1503908e9b5e73b36c43ae0771368b01f39c042693bd92c4fc50810f059e1b332
+E = 0
+M = 81dd561d5d5327fc5ed7c9236b5fb21ef713c6d5e36264ba65ccc801b8eb107b714aad65bb503bb1f4721c0a6f97e5ab89300f049f42a4616ae43d29c089c286687484d18629c1be1b5befbdd0b3cfc86b1d28add89df4cc5e68dac3f56f2490a9068ca9c634ec258c030ec5023baa9133fd2af32fd1112895f9da549d410247
+
+ModExp = 0
+A = 0
+E = f0460c5ca9b3a5c2d1b93c201d020dc43e1c81d1daba432e2cd310902da23eb81a5172b0b357484eb8fa2c04c270893b8198c8ad35453405dadaf05195b3aeb5ec0ccacecb4b6227ca43b27b97e240a4148a472670ed60f304302f757495fd4a91af0fe09800db0c3043a6ae213bee6703ad80523ca433d99ca0eab1e0b7c929
+M = 81dd561d5d5327fc5ed7c9236b5fb21ef713c6d5e36264ba65ccc801b8eb107b714aad65bb503bb1f4721c0a6f97e5ab89300f049f42a4616ae43d29c089c286687484d18629c1be1b5befbdd0b3cfc86b1d28add89df4cc5e68dac3f56f2490a9068ca9c634ec258c030ec5023baa9133fd2af32fd1112895f9da549d410247
+
+ModExp = 60719701a2dc0bcde281a93ce0b8421d1a718adee43c1b5d9fe9e697a48ab3db4f9f33c73cff305ab6b6c300c149b05c6b289dce4580860dc56bc59de81ac074ecebdc65aa3ca040b44e5b3c80ddba1658d78b9abbc4c77e5f171f5582e70ab4438a8e1e2f062d618c4ad09c70c73b5b5fbc9f8f0bbdf1d530a933b705f85af8
+A = e1b400cd3b1f2f1c6b437adfdb970d2c8108f1b39bdbb13582179552011c6c97cba6bff2c463212b7f62776aa3e3aff9f175990e79395e819c144350b0a23d61638d500ecc97726b098e1af334aece23a851c718612442c04eb7b3805a24cc8f5b90042145eb5e5d6a408092832b6bbeb8a621419a9282fb5c075f41c7f1fdc1
+E = f0460c5ca9b3a5c2d1b93c201d020dc43e1c81d1daba432e2cd310902da23eb81a5172b0b357484eb8fa2c04c270893b8198c8ad35453405dadaf05195b3aeb5ec0ccacecb4b6227ca43b27b97e240a4148a472670ed60f304302f757495fd4a91af0fe09800db0c3043a6ae213bee6703ad80523ca433d99ca0eab1e0b7c929
+M = 81dd561d5d5327fc5ed7c9236b5fb21ef713c6d5e36264ba65ccc801b8eb107b714aad65bb503bb1f4721c0a6f97e5ab89300f049f42a4616ae43d29c089c286687484d18629c1be1b5befbdd0b3cfc86b1d28add89df4cc5e68dac3f56f2490a9068ca9c634ec258c030ec5023baa9133fd2af32fd1112895f9da549d410247
+
+ModExp = 1
+A = 9dd1e6f2d3ff24096b54e0ebf0f10e283e484a1cbafc0431adda1296ed97692f3ba99440fd4f67c96dd8bab850e1123361c99362df9ea205ff8e90d1b329459f54730992d5a360e46fcc5f5a909e691abb9a06613d6991bd7c2aa609f0d7b441d7ded0c07b8c394327672d38a905efb2d76aa3be5bb14d0c002aa37e287aee79
+E = 0
+M = fda6f9d8588e3614f5a68ce867a5619f6ddbb8d64450ff402e1c4f1a08b518f79dca21e5983c207c5b7324c16895a1e9f1282fc6cf60b0645f6b02b652ed5b129e67c939e854ab492dec30ea878c3edde10a4b7d1d14c57100c6cbcc5fc085a0d7308715ed132fb917251919c727487fedb66500d5610b0014a43419acfbb92f
+
+ModExp = 0
+A = 0
+E = 8622c37631e428402343dccf8ed09d47b3f4201e95058910289a62707c3ce0b7113c390056cc4796cc9893e471b12cb3f63f900f3356ffd25c8b2fed6f6a7fba2c684eb241ca706c76cecbf72473d8a58c02338e40714b5610465cc319f0a529a7aa3898d9e638b247abd1380c6e8f7fa210c9f1a1a2164db6db83a6bba79436
+M = fda6f9d8588e3614f5a68ce867a5619f6ddbb8d64450ff402e1c4f1a08b518f79dca21e5983c207c5b7324c16895a1e9f1282fc6cf60b0645f6b02b652ed5b129e67c939e854ab492dec30ea878c3edde10a4b7d1d14c57100c6cbcc5fc085a0d7308715ed132fb917251919c727487fedb66500d5610b0014a43419acfbb92f
+
+ModExp = 86fb0b8dc161c41de2adb0f3ddcc8ad49c1efd729a52793a3ac987d4011c9c1dadb18657dca718df75c8ddcc49d60f152c46ab85ae9076ee7bfd405679a7da3a5195a1bbfd7d2b998c7b135ea91f8c445cbafe1276fa502c2a85477716829a2e0d24ba02623405a3654bed8f355bc7ccdb67c3f9a01e249e358b60d7699498a9
+A = 816610e6018ca47074d55750dd16a281019dbf95dc752605794cbb8ea8d75775317ce685737859728320b529fb3b4414b40bf3a93d08d8994a21ae54682cc1c357eb529837a7b0129a0843eebd9341c9bee3a8ae30475bdbff517e885a0c9f2b6a680643bd981efb53bf9dd49f3dc3cb757e117895fb34b1b4336d9bf8384558
+E = 8622c37631e428402343dccf8ed09d47b3f4201e95058910289a62707c3ce0b7113c390056cc4796cc9893e471b12cb3f63f900f3356ffd25c8b2fed6f6a7fba2c684eb241ca706c76cecbf72473d8a58c02338e40714b5610465cc319f0a529a7aa3898d9e638b247abd1380c6e8f7fa210c9f1a1a2164db6db83a6bba79436
+M = fda6f9d8588e3614f5a68ce867a5619f6ddbb8d64450ff402e1c4f1a08b518f79dca21e5983c207c5b7324c16895a1e9f1282fc6cf60b0645f6b02b652ed5b129e67c939e854ab492dec30ea878c3edde10a4b7d1d14c57100c6cbcc5fc085a0d7308715ed132fb917251919c727487fedb66500d5610b0014a43419acfbb92f
+
+ModExp = 1
+A = 9edfce4691f46eadaa2043c7b1092b831ed50f3429f0bca02f985c0b77c686d951be84d772ae4b55f08935bed6e3206c8441574f215736b5c1c1b7595b3b789b55cf56db83741b10144d6767ba2b97b23a5e83504c60e06ab22834b0145655aa0463108317a379cbfc8a93de8a66925a999b8b02bf88dd85fb9898cefe9c95c8
+E = 0
+M = dcb68f6aa530ae9b31d078e2e82670adcc98228e7cf1aa59f81e66426ef14b1591b833d889463564c75b5fd5551ea295a0da581dd80f62c7008ff0f26a1c9f4f756431d48198af157149be8698336b306b0a8b8635d3fc2c4c2194ecc4d2af31ca1892917cc2e621d702eaaeed0d9a0c3dca575451eb8bc5487e313988cae745
+
+ModExp = 0
+A = 0
+E = a3be10ef04535fca6784e5dbf3733d677dedd50fabbc3a860496628950b4747a328c2ce0d903cbe1e700f0af30f59fb917202257815097a2b516df5d0a82642faeffdfc3b7883766c78fc4be5901ebef891a9ca27f3bcf00960729e659bb3fddd54a19ce628e95ab86e4c7a168588bc9f67b05dd21a583acd8dc36e615945648
+M = dcb68f6aa530ae9b31d078e2e82670adcc98228e7cf1aa59f81e66426ef14b1591b833d889463564c75b5fd5551ea295a0da581dd80f62c7008ff0f26a1c9f4f756431d48198af157149be8698336b306b0a8b8635d3fc2c4c2194ecc4d2af31ca1892917cc2e621d702eaaeed0d9a0c3dca575451eb8bc5487e313988cae745
+
+ModExp = 442866609915aa6f1bae9dfb59e721e1b63f42c0f75fbf0a88344120fbbd7aacf15208fb7c9d8bb8477d553cbd826d7e685ad764a8423e81c2131c040ee83a03cab8d5ce50866a941b48c78e9f1330794d908562d4141cfbf26e8c80c69551339eec41e37e2b37b54330f7bd75748f8d26d56ab9eb3b0c127540484c6445a7fa
+A = 8ff65e2cbcbcd8697cc3ce9a26855d6422ac7eb4e66500648c08be697e005cc3c854a54cfab91d43489cd60be8b516a9b3c9688e5e009a1689c6b164a133859a5464ef422c86344fef42cc477c9df27768377c126a066d1b62f593b7f6d6e906feaee16addb7cfbfc043d741b7dc81a87c17f167b7b8ef1b1fb3dfd1eb14102d
+E = a3be10ef04535fca6784e5dbf3733d677dedd50fabbc3a860496628950b4747a328c2ce0d903cbe1e700f0af30f59fb917202257815097a2b516df5d0a82642faeffdfc3b7883766c78fc4be5901ebef891a9ca27f3bcf00960729e659bb3fddd54a19ce628e95ab86e4c7a168588bc9f67b05dd21a583acd8dc36e615945648
+M = dcb68f6aa530ae9b31d078e2e82670adcc98228e7cf1aa59f81e66426ef14b1591b833d889463564c75b5fd5551ea295a0da581dd80f62c7008ff0f26a1c9f4f756431d48198af157149be8698336b306b0a8b8635d3fc2c4c2194ecc4d2af31ca1892917cc2e621d702eaaeed0d9a0c3dca575451eb8bc5487e313988cae745
+
+ModExp = 1
+A = fe9f77f7d0475e00ec964c0effb9b8e079c32e376ce77a9c40ce4018c3df44a77b4f294d9565502b2b79accb30cb58dda6d15e1543b6d4a53296543ed11c7f51baab60283ef03fae37dfeacb431392487ec2839551a933895c4dbf18844f7b375d3e6f558d3c39993cea1bbf7fb743a6a07bd3753c03eb7298811476d7f3ff1d
+E = 0
+M = e7a96cf6fa930f73c8bdc2726bbba246001a9d27f39cc2b978c99dc6f15af0e8aaf26b565302f1112e607e2df4066948baba931b89cd9bbdea2072e05b9a4968fdf282c43d997987c3a3a0434e925a679ac81f316b7a7b724b79be3d6888b66f4512759bf66cfaaa88b9513dd27a44aaea75437268a014c4eb50ba2e50093511
+
+ModExp = 0
+A = 0
+E = a0bc148ed50a9b54036bb8fa1f214979052ebd47db8b347af3bb03b806bb457b468ba34781f8a25f289a7a90af4903dc14809a166df2f4c3527de2ea6911cb1afb9071a4afbb522a7d50634d66fd584c73f32d05217dc9f7f16394c68a692a953492ca85f89cc11da95fd8cac6231647923ced48a1b3b0ee68c010286d452836
+M = e7a96cf6fa930f73c8bdc2726bbba246001a9d27f39cc2b978c99dc6f15af0e8aaf26b565302f1112e607e2df4066948baba931b89cd9bbdea2072e05b9a4968fdf282c43d997987c3a3a0434e925a679ac81f316b7a7b724b79be3d6888b66f4512759bf66cfaaa88b9513dd27a44aaea75437268a014c4eb50ba2e50093511
+
+ModExp = 91fd879d02f95a9f40fcd1037726f73892caf84e9b43b4aa4126d9062a0d22c464e7af2fbd91aa849612d99d9519b724a7fb1cb018fffdcff321d883ab2519953c9f174f09dd8f13ac87339887385966eb4a94842276637b2c36c0a5036b1d3bbea438bc6efd4b4851c7ec06879d60694df894717569bcd31c4b13d80df6cbca
+A = cdec5edc1cb3ea974342b85aabc0f9385cf877ca328747d40dd4d297623ad69ab6582653faeed5aef225208305135cfbee32e066cb43e18afacea3a32acc8aabbc49617ac33e741651924ae56dd6aa044a12a1ea50fef573b5befb2f4b21b9cf83ab2aaa6fd153580a0761666ade8fb94f202a3c3dc4f33297eabb4564374168
+E = a0bc148ed50a9b54036bb8fa1f214979052ebd47db8b347af3bb03b806bb457b468ba34781f8a25f289a7a90af4903dc14809a166df2f4c3527de2ea6911cb1afb9071a4afbb522a7d50634d66fd584c73f32d05217dc9f7f16394c68a692a953492ca85f89cc11da95fd8cac6231647923ced48a1b3b0ee68c010286d452836
+M = e7a96cf6fa930f73c8bdc2726bbba246001a9d27f39cc2b978c99dc6f15af0e8aaf26b565302f1112e607e2df4066948baba931b89cd9bbdea2072e05b9a4968fdf282c43d997987c3a3a0434e925a679ac81f316b7a7b724b79be3d6888b66f4512759bf66cfaaa88b9513dd27a44aaea75437268a014c4eb50ba2e50093511
+
+# Craft inputs whose Montgomery representation is 1, i.e., shorter than M, in
+# order to test the const time precomputation scattering/gathering.
+
+ModExp = 9442d2eca2905ad796383947b14ddfcc341f5be8fec079135c36f6f0d9b8b2212f43e08bf29c46167ff0fe16b247cd365df4417d96cc31c94db1cf44b73b0ee3ebcc4920d9b0d003b68e49c1df91e61bc7758a8a1d2d6192ff4e1590b1a792f8be3a1b83db3ad9667d14398d873faf5d885ec3a2bef955026fae6dbf64daea2b
+A = 3a4b4c57e62c5e9d1a9065191f8268fed9d5f6f424d071acef66f0662b8210f4c029ed991512e40c9c912043c816d2c4c5b53fa0e5c253e16808aad4225130dafbbb89fd4f30cdfc1c2f2179b636a7ddc4be579795820b4b9377637bd8a21a0ef5a90d0e0f865321eee23d9be2a3b7320b4012d02941b892df2c40bdc85c1898
+E = a2c56ea1362511cac0301918e15a9afe7d37edd438a5c3538d258ea01f0a6df758de07111e868b3ad8fc89b629b4955d78a1b3af902be1806410ddde25ccc6a196ba5949395c1ad5d8725b18815dc1cd5ac1c7dd17773f571e3f2e628255af14476e0494be23a4a4dfd18e23142f33d7a59c236fec61660e360d9676a747c69f
+M = ede35a3a7afac817d413373a2032abbc067b1493f709ae6e1282ee5469743391d891b904938857168802b7872d3cd7ac18ab249a9e540a86f970b1d0f310a4cc29df1cc9d4063d98c554f1a32f4ca5eba3523cdfb142e0fc609907c7a92bb0187009d97ec471db3545f42dd5fd29c07b7816085d09477ba31fcf90084660116d
+
+ModExp = a7f5844fa9e7202d4b70ee252c9846e63d3d091b0387768ded872cec53458e19df0d9b4960226e269b8ca5dd4c4eda423a67b6dbb48235c08c12c6c7c78db47287756d3ed9cecb9232f7d18d5d80b9676cb68ba4a290c97e220beb1a069976b5e6022a4c1e5ddbeec86b62dda24ffea1deda37695c9f61a8817218e6370c0679
+A = 7d6d0cc947ceb949cdc4e9e1044f5deca5bb05a491041e0d85bc4b92a0944a57c72845fad91e59010c61ad1712bd2f612d53a846a044632262a9f2e3373b062fde2484e0c165ff947f2469f743ab6e2e5e13c640fc4029b1c9213eb8473c674e7f9e95a4a5c5636d4656c1e696962340d77b322daba47d6fc894f2a2cd9e0afc
+E = b78012afe806e2344d004c739c97324256850980ac97d88c4ed9a838517639ca112e235978d21a176c33f5a68703aba0f2a05501bbe3fc8d49a000fbf530cdb431581dfaf8683cb15a2aee5e239cbc542827100da3b47babf4a16ca7c588aff9912e674abb449e0b767a15e415f4e7f2bbd6380d7131da3df8d49b13bfd35ce3
+M = b72d5c55bd2998472f1965e75a51be6155c1ba04656da8f66bcb34db36a7b1db66a89d1d05b1bde10206acf85be7b474ab689220faf1bb52ab39d8dc00512dd4e26df1179c11b973e1274db85a88c7cc2a17113abdffe58cb930ddc5f3ccc4d68b4e65c913730509f7ce5656e8bbaba9b1be177ab9f766678f018fea05da9cdf
+
+ModExp = 465ff295786a88496828fdc763e9292d557957544e9322b7996807b87fdbfa7a11614bffeec557ca831c4824c8e4ca3b1a1c7f3f4f95ec3fd6a86b73bb13d78b73af2b3c7e76954d0cc03bcb0cd606867ebb3765a8b3d0108cbe4f343a14016be9c33f6d200f0dc547e7d6b02bfab1e79dcdf9c9835a814cc6c855a12ebeb66d
+A = 89ad02bea3e9ab839a6e23f20122409daba52c68e1e893034b30d321c0305434a6af940015e3fa5ca9c35230da34beeb1ed4fbce6c1da3a8bfe3f3ae172276c1d1723b47ee61e6f8fcfdafad102d6f7ee2a79f510c7edb93096205a40a6c9e665b88b18f39a979e2e61286d939952a6f02fe8148b7515bb25f4252337cb6e60d
+E = cbd6ac628cc7afa3c61bee9c22a06a395087ec1811fe9681b55216700c435996c815e7cec8aaa90016dd2382d0306a5414630124e14f3d396a4ba02ee17851bf720f1607ff813e4bbddf01338983db12f59bd6371a738eee3eeb716f21051d6174d2d6c77602942b9edaac18d4b3a723096c0d00dd23a8a605c585022f311560
+M = fa7a3e40364c8a8d0f14f0213a3f3e035222ca0ea19d46d10ba41580e5dd2805c8a133f3856d7d5d97f922ea540e5eb0d10ad04dfdbb74f518f58da0099a6fc2b3f3def92985176e07fc78aff2faebccca10a429794e5f15ff92f75fe90f527c60ddea8093a9078c703c372ca09f7aeb27ade02f3595308c61dd9c44e62fd101
+
+ModExp = cf08bf00261402102e9fe03f3074471dcf0e9b3c96d4d1503f099f24ec85e1901b023e9e048c1ad042244f5f70b38b25a99f4c0a7b57d5844bb0d0137367f45f4ce2cc7746105b77414768cb97648dc5721149aed2d4c682408cc0d50d26dd0bd77e848911f8625c727cac5f32e63bcb548f41a57d718d772f23983a42f603bd
+A = a419646a6631c2c69b18f7aa65011825eb31692eecaee9d74f92d92203811b68e9764bda31a1585bdf69b6273fc6f9f508c395ac081336506525dad88473512f08a205621ac8b16e9864c7a7c5a4f17435de00d0b32badec6ce4897e3e1076c562b6d9523f63d0b2079eaa416cb090471657763f24931d955d1fa2720c80a9c9
+E = d5a6f4a1842aaee39805356dc8d0d678ee03b2c81277345beccb2742f899132feb43271f95968a01ae68aa8277201851992dc0aa7a71c90aae71b124d873ee264ea400fb131be0fc6c4ce8c04c45f6bdaca89ac743635caf6158983d257e21cef6800d7f990e912ba21bbfb8fb779afa4abd19e07e7e07eee9908493d1ca502c
+M = e739689b6cc6def1d45fb1a2ab551643beeb303f4aaa4da47ee5e4948510f8445b4c40e99ae8354dede60b2ba6694e93bc4d573b7e8adf871b7a9a9636eb7d70f2e49328e2d7978143b177cee8374ef01bd1ee2d95862765883f5e7971668b53ef0ff41b6539faf63c397522b0bdce916388e72e26c8d3d2e58dadeb9eb5d479
+
+ModExp = 827e6312ec3b14600203bb83f5b277ded197b2967363630ef673240df05edd3ba8ab2b11c86251a612206569c6c33952b31e264f129909bfe723bd0ee1624b36cfcfaa893a6ec8b5a1f7de79f83e79b459a3350f89f412ad1cfd6bc4c2a7a29272c783d6ecceeb1398fa17041835643f4debef9b5e87b098d104bb8912dddf7c
+A = b8e49c637829021d32db3a39a0c1e58cdd4c6e4eda7e8e9293be379e9c2e2d184f929d278598a81ae231cfedcf69cce4a6e31cda3c8ac14d753a7311f2436e29795f0dfb60259a0f61a997918ff984aa2284b43a9d64c974059e9682adfffd018305835f74eda8c75fe4877d811c1620f654ec9f7f32d1af5ce59115e2f41785
+E = 80e0febf369d234bf1aaad4f82df2e2ff02882c3184781f6ccdf4f7cd93b6887af86830077c84dfb02109ada05b40970b1c65228b0c19030bd6361c3537fee22a8155c03b4e7007ca006c6daa3659518d05bb81ea0079456d0ef6116df248dffdb0c935f321f5a1034deefd5a9414a0652aa6548de33325b474b9e5a8507a082
+M = d5eb1d14af842a9973274f7463d90cf0ccff19c47d710edbae184478d4f29b02693ed7958bd487054327b9e6d8879e24c9af7730b92f323eeac05558da6c1b952e5dbf13de236050a77628bb5325fe0d14cc5773bf73338759d5ab43c212b414581280f1cee250007e53791b800b61c90de0328acd7bc43fbdda48158939392d
+
+ModExp = 4a1efd29c7e78549f5cd4deed1454b37462c7810ee6a8a2493b764dfa479be13b314cf9ff98259517d61865567ef499a511630c0038c97914625df181c6fe07892f329f98b344a78d751e9471483eebaa7977371bf97bb25187ae7e93a9227d6c124ccb4644423c961a11ae59c4354f89d5a95164c23d9aa256e289e9cc0858e
+A = bd86c9211fa6a47a06e5016c46cb8a99e34a043a29e22f8c3196fa7197c26b38927b8d9bc0ddc11a5fa4bcc44deb69dbf37cbe7ebc9a2fad6c74e09ab5a9dd929fa04ab4319b6caad1035739be78ba631fb0748d9e53944836d37ccda6e6a62823c696d8f31139ccd7f2f86b22fa026ecf433cfb1271a3539ac4f1c83aaac059
+E = c40b9972006d28a84c2769a86e526a2b274f73afc7c5c6a2742166757f61b5f5fdbb228afa157af62af989ffe966f232bba9e6beef5403d1690ade31a6410f7f349a35bc4267a129afd647993df7d45cc0e1a1ba4678d7f1b6e8a344d8ff7037679e1f4db25a454e4246f6b55c416567fcfa188e8a3865115851d9edf0aa8902
+M = cf424d7af75ce7eef90cad75ae55ca8810cc7b4703fdb5bce701e7bac07e0c371cae06df2aa8facb55a0faa6793e4d2bd9d7969703743b9be170be82792aeea55e2bc0f7ab7617b276486bf474dee2f4556aab595ff3ef115139cfe5e21ccd4ee05c0e1cf901bd85df86cc17195a783b0be836d00bee82ce064077f9191188f9
+
+ModExp = 3137a3049fd4ad2e26d870f5c998cf11bfe82101884a82e85e43facd0928cd7434a2e346ca124619769fa141bbe92ad6f36b99231032ddaec3b349a410f82b5ca36f45e56e5fb85dc63d32053dc90805d3f1854ab385281a71a57726bf97158494e7476057214ca7379ab8b70f5bdc15f70bdad3adf33c3a1f9cd1b6bbbad556
+A = 39a1dc6a4c3f14d9c350ee968d5ce139ef725952c967a2d1bedf48ace22091283525be03807e2e263d2640be77f0525247bcd07149bba50568cec5a082c87d72962cf9e43bcb5cdb1e7e9a650fb53e0ec2fad37f09a9f036c0d7dfa528fef846769f80a9a60854910ca1b4ee05dba82ed2ee018348d6b3e52a764b8ffae61e0
+E = deaee3a3f80c9f684ed7110c0653847ccc7be5ff6d982fd4b49f59b5dd35f7210b1077babbcedbc127df35cd469dc6e569a0f84e58149b5605c94b09fd7f0b098d02b4a04631328b3fae39e6c2fce25334225cab71829abdb9507cb903701559660f2c08c3b743336119d1260a0db27054cad3f28bc1b04b2289baa58fb33965
+M = 938388927d06ed3bb1286c0f06d3054cb0ee16dc7a0bbbf13a45293c09a5f40f1d611b2e1a1b0ec2ef109b508e27af4274954905cae52034f8740a744153b4d22059f0dd262ea51785522098ecacced6da07709ee6b5acc8c4e99331379a7c3de7f4e2d1431e43b19570140955b7bcba118dfbaa552cbfa2be531e8f781166ed
+
+ModExp = c15ae334455d9f4d1030cd33e734726a27c63624c2afc576238cce5e0498298a4a0c93090a0d19568b41290303c4b558f3d9dd74f9cde8798710f68569ea0d6fd971ce67ec5b54495031de3d8842b8b49288725bee5c9f72b99054d64986ccd4e18d70d5f33943f08cd694eff538f84438ea993ebaba0910c95b3a694f213510
+A = def633b955a917569df3ba8517455eef0655e7a35985edda27097a063e0d82c7c3a76dc36c5d8a71ba9d540790ddd0ea514aaed98925f9a1808eb288d387aaf9605a9ef8a333ebee7ad7057bca012efd619d5867f02266f65976ef4b16da17468426ac4f99b3e8921707e01b4de20f6f9a068e6a19d872079a27f3a44449db83
+E = a465c47b0d15d48e01bb8b1d8e3b3253e11515f6874dbed6c25818adf1a8fd927124d5593beb367f685c11e46f18415be73ccdf16fa2e93a600b728163d21d232849e5278c3749d903edad3f1c4535a2f55a2ab65e7ebc64888bd2a0527e876ecf38cec3ab1980d08138709fad8eb88ae65d960adc3f0f8e92f784fe96fcb693
+M = e43cb9ac1446154356cdc31ec771c79b0e461e22d95185bbe1a279c0945e3af07903a0cb54d553380716fcdcafb4b7cf5dc6da481dc74a8c583d75ff6c1f8e429182d200246ebc473bb56e173787987c1b7fb2dd23f5b2e438a97bc4a1df628bc044fdd1e80c0cf37030adb7b04784dab827d0dcd64f0dbf37c980612570ce11
+
+ModExp = 75c3f79ab7c991b98e65505342a8a563cfb08b5d3ccf8664c7db1de50256b1d17ebf7096dc98c7bb5d7f027a894ae5cbb14dee04d5d445e775ad7e239acc82673b0ac2d819a69c83864f34e73d9a636f05de8279619a067b4c90ad038db5910447e03841d2034635018f08cbcd21efa00994247763a249082594128112f95232
+A = 34def7d76f6f158a359fd12759fb889cdf6af0a24830dc3e84283a1ab4e9b2647a6a36b86482f829b2cdf3e3d6028f9a884b1f64f7262315446bea8b0231828e2f3d990fb103c17f820b39e4b8427c85643ceeca8f5dc8f191d1255768300e859bd7d88c770319ef38269660d221cb3bc061389b6fc0783485ef042b1c7d6fef
+E = c6c46453dd5aac6b37277a446b1d0c69cbe476eeff55b3ac35edb89ba97116b0e7783660f2c7b31b2a2d6c4709d0ab45d01a838100694b0777c9c9c14c959b07c437c73a5eabb7402f1001e802d797a2e7707285834fb6440a1c2f727f7bb84ddb2a49312d32fa0ce620c43872655cb5c394749c9e75d7fa25be00efe50d47d6
+M = fbbab6698a9142095c46b38a732592e4366c1838b84bf40f8c8fc7b630f73380a0d09765562365798f8c8030ed1b6728329d8bb06e882c35a1d59bfe84146a9db2afe42a414014e247390281c782fce806d62adb54778d2bcb49555459429d6ed446af5359657667f6aa19e8e3e0e24ab2bc312b2d90b5cb1ce6f2f15af15d9d
+
+ModExp = ba16d7f3f6e162ce248490d164a13c00e7720d8a667e2d3ebeb13f1663e15ef5408d5b56cbc7bc793a8ca787cc50f8e15e0e9d4ee764531d04a9114eea556bb3e206ed7d85267151a056b6e68fbf35e03f2cf829708ffe1de13e95ecfe365aff1eea36340ffcd3892dee659fb1ecbe50f5080e54737c10f9c1ba638b14ef537e
+A = 9025e6183706105e948b1b0edf922f9011b9e11887d70adb00b26f272b9e76a38f3099084d9cccf12d04b1a99c0f654f8b9ed90c6dff9478c60bf05d58d734ab60eaefa14a22230ec60c90dc1f0704b61eef0bef345785ae0e6a9af7db069cf6bd2b4e0fe58a0ade83c7e46a04b9fe1d24cb9b65c6f80de713e61d70eae5b286
+E = d7e6df5d755284929b986cd9b61c9c2c8843f24c711fbdbae1a468edcae159400943725570726cdc92b3ea94f9f206729516fdda83e31d815b0c7720e7598a91d992273e3bd8ac413b441d8f1dfe5aa7c3bf3ef573adc38292676217467731e6cf440a59611b8110af88d3e62f60209b513b01fbb69a097458ad02096b5e38f0
+M = e4e784aa1fa88625a43ba0185a153a929663920be7fe674a4d33c943d3b898cff051482e7050a070cede53be5e89f31515772c7aea637576f99f82708f89d9e244f6ad3a24a02cbe5c0ff7bcf2dad5491f53db7c3f2698a7c41b44f086652f17bb05fe4c5c0a92433c34086b49d7e1825b28bab6c5a9bd0bc95b53d659afa0d7
+
+
+# These test vectors satisfy (ModSqrt * ModSqrt) mod P = A mod P with P a prime.
+# ModSqrt is in [0, (P-1)/2].
+
+Title = ModSqrt
+
+ModSqrt = 1
+A = 1
+P = 2
+
+ModSqrt = 1
+A = 1
+P = 2
+
+ModSqrt = 1
+A = 1
+P = 2
+
+ModSqrt = 1
+A = -1
+P = 2
+
+ModSqrt = 1
+A = -1
+P = 2
+
+ModSqrt = 0
+A = 0
+P = 3
+
+ModSqrt = 0
+A = -3
+P = 3
+
+ModSqrt = 0
+A = -3
+P = 3
+
+ModSqrt = 0
+A = 0
+P = 3
+
+ModSqrt = 0
+A = 0
+P = 3
+
+ModSqrt = 0
+A = 0
+P = 5
+
+ModSqrt = 1
+A = -4
+P = 5
+
+ModSqrt = 0
+A = -5
+P = 5
+
+ModSqrt = 2
+A = 4
+P = 5
+
+ModSqrt = 0
+A = -5
+P = 5
+
+ModSqrt = 3
+A = -5
+P = 7
+
+ModSqrt = 0
+A = 0
+P = 7
+
+ModSqrt = 0
+A = 0
+P = 7
+
+ModSqrt = 2
+A = 4
+P = 7
+
+ModSqrt = 3
+A = -5
+P = 7
+
+ModSqrt = 4
+A = 10
+P = b
+
+ModSqrt = 0
+A = 0
+P = b
+
+ModSqrt = 3
+A = -2
+P = b
+
+ModSqrt = 3
+A = -2
+P = b
+
+ModSqrt = 2
+A = 4
+P = b
+
+ModSqrt = 2
+A = 1e
+P = d
+
+ModSqrt = 2
+A = 1e
+P = d
+
+ModSqrt = 0
+A = -d
+P = d
+
+ModSqrt = 0
+A = -d
+P = d
+
+ModSqrt = 3
+A = 9
+P = d
+
+ModSqrt = 8
+A = d
+P = 11
+
+ModSqrt = 6
+A = df
+P = 11
+
+ModSqrt = 4
+A = 10
+P = 11
+
+ModSqrt = 5
+A = 90
+P = 11
+
+ModSqrt = 3
+A = 80
+P = 11
+
+ModSqrt = 9
+A = -e
+P = 13
+
+ModSqrt = 7
+A = 7d
+P = 13
+
+ModSqrt = 6
+A = 37
+P = 13
+
+ModSqrt = 1
+A = 1
+P = 13
+
+ModSqrt = 8
+A = 1a
+P = 13
+
+ModSqrt = 54d4cf0fafe265056a29016778cea6b712bc66a132fb5e6b6865e9b49e4c97ec
+A = 599c10484b22d0b5a115268c7538ca99b3253a311a4ab1ca11c3665b0bec393a1167d1ad94fb84cb2c7ad7e2c933e8f613bdd08fe1f1aa4a9b0b9de0c8a7c9d4
+P = cfc4ccae35458ab5be1a1bc0664188253301f8702af4f8fb19fed12de0c653b1
+
+ModSqrt = 38a7365a15365e911286c1be2a7afe76ef390234d76269e04dee17313f6ea54d
+A = 1c4aabb4d8369710131c664ecf2849e963c1bc31d66e0b939bacf99a870c71f24ed71bdddcf566f3908271fee43fc1ebb51eac7e3153efae641b49d2e796a12a
+P = cfc4ccae35458ab5be1a1bc0664188253301f8702af4f8fb19fed12de0c653b1
+
+ModSqrt = 35ab18a560dece04725667f640ca61d1d59f14d191f94c79f58531acd097d444
+A = 685168ae855d60eba220d803f5296459b30a289580668db9ed51bca51cc2d453a937e13819ae34f7a9a143ac96d17420c53919167e46279b562b550be1cd9abc
+P = cfc4ccae35458ab5be1a1bc0664188253301f8702af4f8fb19fed12de0c653b1
+
+ModSqrt = 288370029e87024175e5bec0eab0929179f42e16995e7f6194eefc61061e54f4
+A = 2a14ab77c045bdc48220ba9c463e1a4b4049cb01edb53be0937767eb2ec19b7d719855052281250a36a0b76d9a5d967d0756e1ded7a052f7056191ad66bcfc9
+P = cfc4ccae35458ab5be1a1bc0664188253301f8702af4f8fb19fed12de0c653b1
+
+ModSqrt = 32255cf01dc943577ec2bcb221b98491d7a1130d046d6c68e95fedff643ce3a4
+A = e26f6dd46a513a1dd3fb14b71be1d4c9e9d79eda1cde10ea4d1eb8abfd4d5857572205e247184dd0cbefa37b5c0bf680ba2bd28c5741f725cfe2aae37419baf
+P = cfc4ccae35458ab5be1a1bc0664188253301f8702af4f8fb19fed12de0c653b1
+
+ModSqrt = 5172345e801ada63fbc4782e32583cc3b4fea88b9e6dfd542f3542f8538ade66
+A = 40dafa8342b302bb04b1f3ddb3b9015a8fc1b597857c115b40631c7be9e22de89358fca23b331596ee5ff304dad7811e6d8e8822f7aa533c9e7c882634ea550
+P = a6813d316f9aca30f98b4f864b8b4b8f51493af930bd4d3a1b205a710e99add3
+
+ModSqrt = 4dcf63c423bf0e39aca2293d57f6792d023db649d6719fe936446904b9f7e60d
+A = 5bcdb514bbe84261e169203e8017909b60c9bb330400c766ee01b0189378e70e61867a164a12643ddc9e94b61e09e5b158cbe85be228a3cc48f95a552958b8f2
+P = a6813d316f9aca30f98b4f864b8b4b8f51493af930bd4d3a1b205a710e99add3
+
+ModSqrt = cf77c5c2d12a500b75cbfb1f3e66ee75d886b9365cf4f8b4d1bd18a6be0f387
+A = 4652ddc2ea7b460d8ec3c9059b8f9b5dae6cac55b51f2ad86fcb336b25235737965cc515e2ff0b54835015b7ebeeda6fadd986471d8cb424d309fc353d1e269
+P = a6813d316f9aca30f98b4f864b8b4b8f51493af930bd4d3a1b205a710e99add3
+
+ModSqrt = 1e0549e4c5a26023e9d24fd8c67419960746f82b1ecd113bdac66f570a475d87
+A = 5f4a6d450ab1390d96ab1deaa0ba18f897cb63daf0c9e1ef6c08e804c26b5e842f6c08f13db5d4a6e88f07af2a3cb04fa06fc3e59c410b9356f025ed81acc74
+P = a6813d316f9aca30f98b4f864b8b4b8f51493af930bd4d3a1b205a710e99add3
+
+ModSqrt = 144481a781d831c1ca046ca9e322d79ad4d2c6dd9f780bea9d1ced9cd20b7b23
+A = 4c254fabca441017132b9eacd4ca40a336db3e5c09715773fa07af095989a91cc968ff07a9ff56ed06b0ce0c5269f7b2ab68564ecab9f4467a7e96b6cc6b21b7
+P = a6813d316f9aca30f98b4f864b8b4b8f51493af930bd4d3a1b205a710e99add3
+
+ModSqrt = 216fecc7667f488a3d2d102a38b46b4860ab858300b8638af4f34e1103fd73ba
+A = 17878f8048227573a9d70f53c0e76ff13fe9f56e9c984c92514d3d13dec23c816661f0618d21371b80dfd885cb59551bdf80046f65f22ea9b89c78645a6e455a
+P = bd37c850cf7d702bac879f3c21a51a5a4df2b8eb0935861e0753a6eb62261a95
+
+ModSqrt = 458e5e789ccd2417174f7e30bb31914b9656bd8cf2b9f5a9752a8737a67707bc
+A = 5c7d39a4bb04e69201aa519f80ee7e62ea14ca55e13656d1da3f45367e2fb2d061aa2940708d02ac67d35cd2ccf54a1bf95bcbc759779e692cfdcbb3aa1a05b
+P = bd37c850cf7d702bac879f3c21a51a5a4df2b8eb0935861e0753a6eb62261a95
+
+ModSqrt = 543125a16c2bb8b8f8a2c39c497e5224ec77533602d7dbe24002e32dcbd2ef1a
+A = 3413afae333b2ad9ff45c7f3c7e5934b3127e8b1a55225958ee6ccf42423e81559bf070ad3f3353b78c0ffd41475af49f59d268ef78bdae879f5155e8d1cc07
+P = bd37c850cf7d702bac879f3c21a51a5a4df2b8eb0935861e0753a6eb62261a95
+
+ModSqrt = 10e16859c67bdb2eaab52a7c847dbf37162eda258a9f6262ebacfe4cbbbc1080
+A = 21ce7905894faf220bdf4a82a2d855994ca2dc9feaecaa53c7f146e1f49934215695e9bb46ba370b7005a90c399674caa8969eb442e7914d90f749774d7fd194
+P = bd37c850cf7d702bac879f3c21a51a5a4df2b8eb0935861e0753a6eb62261a95
+
+ModSqrt = 32a00586adc6f6cc2b1a04e1be0ab569fde235e1436c38b6af92bc5ebd60bc1c
+A = 350da4fd8cf03c12f7dd6ac6d3ab801a3413964083e374662aaf878d6838b97d4feb9e52cd307a25b113e101661a865463ee2480c626aa4e2ec437d72e7bae4c
+P = bd37c850cf7d702bac879f3c21a51a5a4df2b8eb0935861e0753a6eb62261a95
+
+ModSqrt = 971f75bc7afa8b4b50f1d4b05e52deac7d4836a08d30546f29649bf1ca6a247
+A = 655ed4c5d8d0afb4f9360372ee1ef1303898d2423e585108a3303faedb55064d2ef25666ed4c4d71fe6063fea1f3142b435714b0e30b339dd791d347c884654
+P = 9810151ad4bc9c5d68fc326395b509f2625bfebca1c3801ad4da7539fdbaa6f7
+
+ModSqrt = 48fa882b7cb6a29de9e3769f72eb67f1efd4d2af56f0c7e410c610efcbce2065
+A = 14f3503f33b243800eac1defaab33e04c01e80163fb3efd03860970cc016832431ca4fc6d1b760f4f40166b0b8b3c40dbebc81460cc10890172243770338f090
+P = 9810151ad4bc9c5d68fc326395b509f2625bfebca1c3801ad4da7539fdbaa6f7
+
+ModSqrt = 236fd7e397ea7f8bc2a288eb7236ca41936fa702b7dccca56c8852e147511f7d
+A = 1bbd0980feac854782813bcde4da85e8a054549a1b515e065da4236528035e756882e29e762cf60453e375cca9dc6ff637f9558bf86646e3b928f68f82af7efe
+P = 9810151ad4bc9c5d68fc326395b509f2625bfebca1c3801ad4da7539fdbaa6f7
+
+ModSqrt = 693f0cbe8c81b0afde0cd2f83e53795dcae6b0cc4ba930ab5c752400d787f14
+A = 7b20f9664b23907e152ab8c9a907f72e8670c1c38ab4cd1411ea7c2159c09aa131afe068929b8e6ad1409b74c04975180d1cd0a9fa74e923c3fd451e8da2c34
+P = 9810151ad4bc9c5d68fc326395b509f2625bfebca1c3801ad4da7539fdbaa6f7
+
+ModSqrt = 4a086c50b0bad576501ddb6280743b2c9d247841eb7f14d90561432ff7dca6f0
+A = 4367431ec0cd0d7626538b93a090c30fe0c97c18ca03b97ddae304b619112b5b4d02bf0f041fa3fd673f9ef2ceb07eb2079d11c56dd903b1a87e8252a97b8079
+P = 9810151ad4bc9c5d68fc326395b509f2625bfebca1c3801ad4da7539fdbaa6f7
+
+ModSqrt = 18f8433fa468d8065157708f1f1e53b8e31d39c6011fbc2bad93de1b5548e19c
+A = 739c032bb4139c199c40f548d37234298772e4ccb9d3ba28412b60ad23b4c465b0787e2382f1c5a4a87af2d20eb978b7dcbe73f2112249477d15c8a85e54a79
+P = adcd56924f73836ebe4dccfe006ad3b1e5076562cd11b161642cab7af2284659
+
+ModSqrt = 49e3c8eef5e067cabd51a7c01384ce05ab8f4342f655559d8a689eb7b20e0106
+A = 18400c2cc3e06b99b4e39c77b9af5ff0e9c683f1708321afa4cd5b6988d13b36b1d9eb4379b7902d9ceb40c03f814b2b6a01b90509bbb4532f13ab1571c4d04a
+P = adcd56924f73836ebe4dccfe006ad3b1e5076562cd11b161642cab7af2284659
+
+ModSqrt = 35548c530745f440329325cc8a5fbd90c16a7f0788879a4869bc4d4f73acda0e
+A = 181a3c5ab02566e7166c4d6d2f2bd4a8ecc25991a98d270bde80cf4332766a7068b14240bf5f5dcd45e90ef252596da3eb05b11d68b2063f7b3a825742593ca9
+P = adcd56924f73836ebe4dccfe006ad3b1e5076562cd11b161642cab7af2284659
+
+ModSqrt = 1ab7046e6af061ade5f9719008fa4d989007e2a579a134a5b9f19ec410984096
+A = 1008a03e211fab0d45856377079bc96b0776c2d4c0175661f3493246cea2ab0a02a706c85314fb707ad9906bedb2cfd577d62092ae08ff21d7b949373ea954c7
+P = adcd56924f73836ebe4dccfe006ad3b1e5076562cd11b161642cab7af2284659
+
+ModSqrt = 2be9e3e7515960d90f115b89f60dedc173a73ce163b4036e85b7b6a76fd90852
+A = 392053a9f0100540a8e1a0c353e922068a84dad3a4a8e8962fbc0bee2b6a06e20d08ade16eb1409a16acfcac3db5c43c421505e07035ca308b15c4a6db0864c0
+P = adcd56924f73836ebe4dccfe006ad3b1e5076562cd11b161642cab7af2284659
+
+ModSqrt = 5b301bb93bdcf050183107e36258b53b4805918114ea1c2227b0911d5b4dc077
+A = 55e55e5f94dc3d7aabc921f6469d85fa2e1e92a87347c57afad5872306ae69f9fb99297d1e3e793dd9e8632244208154de5da7114fd876383bf1422f7ece024
+P = d43280ac150f725f4a2a1dceb1c79bcac57855a4eba72ae93762d09bcb2444fb
+
+ModSqrt = 2df9609e2f5a5156c3260461b2ee52eacdef00bd8b091479813143a6c5283f71
+A = 2099325b7f12fe77353ddf3f2b2c5ef77b49671b150af954cf84e9675e3ecde3e057084641a633d19533b4712ab49924c8b5c31d591abcc88291f51253fa2a7
+P = d43280ac150f725f4a2a1dceb1c79bcac57855a4eba72ae93762d09bcb2444fb
+
+ModSqrt = dfab751710e9008e25e422d1199d6fbec4dc7fba35b4da9d225a746eb4126a0
+A = c006af53d4737fb293584df6ffe2e4cb3fd8dc77fb7c1f13b97bb9c249e3ee5fb9feff7488265b3093906c08a4946f142ac7b491937d24bfba6413366ce371d
+P = d43280ac150f725f4a2a1dceb1c79bcac57855a4eba72ae93762d09bcb2444fb
+
+ModSqrt = 26bc030008d6c60a09fb0e16093a649fcb40c6c21a8e2da2353ba4b07c4f85d5
+A = 1eaabcfad2ed349ac9356e6f4da0b301266ddde811cb0f817aba8f5c10fb8b8ba9d0ef2dd386b668f16eac296118fdb8cb7afe1b865648c81c2fa3cf21f2711b
+P = d43280ac150f725f4a2a1dceb1c79bcac57855a4eba72ae93762d09bcb2444fb
+
+ModSqrt = 35051b1482ec2578f3dc0000a422cb5111e43c37f1ac20b1844d3de2128c4556
+A = 315ff9de178681116f2a5fa78eebf4818e1d680435eacdfaf9d0e5c4fc01fc034b352c82fd52c81ca30d68864952dacc99d08269c9dd7ca99ccf22da98c3840
+P = d43280ac150f725f4a2a1dceb1c79bcac57855a4eba72ae93762d09bcb2444fb
+
+ModSqrt = a5474252885cacf004c460a7793ff0b0a2187bb1a9ed700ae3470199faef71f
+A = 19856fc1351c4b02abf573bb2fc6ff92355fa369d62bb8f2260fa772fb1693f509a56cad661930abcac049dd70f4b16bed4a4c172e73e772504c9990ce7f92f
+P = dc315fd52684fba79e577a204de9053b11a5d7a414263fec9eff6ff62188829d
+
+ModSqrt = 12daf4722387ecf47de1b0b6b110a062dc5ea2685bc9dbde66b8d15622985029
+A = fb8479787069116abc42abfd7dc0c24d2ad04fe0c04b42a6dff714af715d17e0fd77855f950f264542b06d48e8818de813ddb7975798b7debefcdaa5ff86beb
+P = dc315fd52684fba79e577a204de9053b11a5d7a414263fec9eff6ff62188829d
+
+ModSqrt = 397996ed5c0ac6ad32e43c337e9de421b87774cc162bf7ac7bbedf4a9029255e
+A = 5aa04353321bd2de92481be740357f979da464b53aa39111fdbb734cf7af6b3857d1baa08d3a126a3dd34a2fbae2bf2b84e900686c1d31505b390185acef5fe5
+P = dc315fd52684fba79e577a204de9053b11a5d7a414263fec9eff6ff62188829d
+
+ModSqrt = 2cf4b844a54ba359dc592ef1b49f43fcfeae84d1087edfefdd0b9174b43c0a3c
+A = 365a8650510bcfd8fa87432f167cf487234c215857403b9270b5eebeafa48cd6da47fd60dc311b94d1d72baad0447c31f0b212d755f46c256e16e5e015e6546e
+P = dc315fd52684fba79e577a204de9053b11a5d7a414263fec9eff6ff62188829d
+
+ModSqrt = 9277c73043ff767c3fa606f0cd66b9d854a600c8c18287f191ce277758c3f31
+A = 62cec3901626d03e8df66299a87c54b1f7a55cafc99f0b6bba1b5d51a3d2b7d2171c9135a9d8a5346d436e0136b12e515e703e3cd84ecfe154eb94c6772a6d72
+P = dc315fd52684fba79e577a204de9053b11a5d7a414263fec9eff6ff62188829d
+
+ModSqrt = 4189e5a90c1b1abdc1c7c05b3587e6f362e06f927b6cf5f0d271aab3d6f90765
+A = 336b8d0f9dac842c696bc020f49c6aa023842c16f2052eb02f17959006554ca0012042c80c72590f21c6bf5a3714c9cb552aa69730e33db93a56a909b273f39
+P = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951f
+
+ModSqrt = 36ccd38cb5a6bd8a73bca55936a2227c503664422c2296faf7e2b1c6a375a43a
+A = fecfd60a376befbe48d2c4f6d070d716d2f403cd5daefbce62b720df44deb605162c8f20f49fd7ec30d4f8e70d803d45b3a44b5d912baa3410d991165d7c507
+P = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951f
+
+ModSqrt = 198fc8569be172dc9b71023ed3d42d2ba94bae4099643f6517ab03f540527fdb
+A = 65bebdb00a96fc814ec44b81f98b59fba3c30203928fa5214c51e0a97091645280c947b005847f239758482b9bfc45b066fde340d1fe32fc9c1bf02e1b2d0ec
+P = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951f
+
+ModSqrt = 21b7f74c30ded681d6138cf8e6fd798f32a049e94138e982f1845df3dc9e686f
+A = 9a30b791c1ba4f394b4e3dcd5837e474237f4fe8987b255c098a47b2c14c598ec69d2beae444dd4fe9c4ede8173d2b187677cc706a3c28f3b81627d8a5fb6fd
+P = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951f
+
+ModSqrt = a1d52989f12f204d3d2167d9b1e6c8a6174c0c786a979a5952383b7b8bd186
+A = 2eee37cf06228a387788188e650bc6d8a2ff402931443f69156a29155eca07dcb45f3aac238d92943c0c25c896098716baa433f25bd696a142f5a69d5d937e81
+P = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951f
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnmul.txt b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnmul.txt
new file mode 100644
index 000000000..dc13a9229
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnmul.txt
@@ -0,0 +1,2678 @@
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# These test vectors satisfy A^2 = Square.
+
+Title = Square tests.
+
+# Regression test for a BN_sqr overflow bug.
+Square = 4000000000000000800000000000000240000000000000000000000000000001fffffffffffffff8000000000000000400000000000000000000000000000000
+A = 80000000000000008000000000000001fffffffffffffffe0000000000000000
+
+# Regression test for a BN_sqr overflow bug.
+Square = 40000000000000000000000080000001fffffffe000000004000000200000001fffffff800000004000000000000000000000000000000000000000000000000
+A = 80000000000000000000000080000001fffffffe000000000000000000000000
+
+Square = c2fa18e1d110a4639781
+A = -df6a253c3f
+
+Square = 4805f01d379f4ce8dc86ed269
+A = 21f253ddb5a6d
+
+Square = 57def107babc1c2bffeff858947e69
+A = -95fbaee5a09c86d
+
+Square = f3b01f7941961b3f5cc3361e3ac82423690
+A = -3e71292dd4ad3ed3b4
+
+Square = 5e2d9c36d498ad1e8b6113f442ac513eaca74601
+A = 9b45cf6c7a43d910dcff
+
+Square = 7b7c2eb3fe55615e422b41c6f725341527626398cdee4
+A = 2c7314e72a2ffeef170de2a
+
+Square = af57c0ed328886642ed5d631b375fc89c03a99f1b427c6bbd1
+A = d3de077f8286a04daa9c497c9
+
+Square = 4d9eac3058e6cbc0d12e639ced961c02ec1870afed62fdd44c67ce4
+A = -233da7e87ea4421ee8fe7e00c856
+
+Square = 83c292d277fae28cfede74e8e80eba11dc132e16f78cdf64595c12c7dee4
+A = -b7a8aa7452678abd45d2ae6c349e2a
+
+Square = c80e07dd01f9d19a5cf7f3c328ccf4de70fdd113de69382701294dd29674b9a90
+A = 389387eead58fef2c76b5cf920f35c5cc
+
+Square = b9f69ca47ac855830fd7ed39c81822c520880c51c3ea60d3ccc106db37fc2b04c47831
+A = -da307c28ea67ca8d3117364ba93f0731bf9
+
+Square = 81bbe3a13a22a73778233294ba0c132d9dddec111f768300f177468c204f8eab69b98e62d99
+A = -2d8f715bb32d410b4f475c4d000d56fec7cfc5
+
+Square = f815ce34e9bc2e31e36e75cf49b2d15306d438a2a713b2a85b3ea156ba60c867c28cc65aa58fdf11
+A = fc02f2e1a26cd69f6a0e54cca4bbced739b43597
+
+Square = 5f968707f58ea15c492ec9677be09c309d91164aafa754ab16ca47a411b5b2249858fb6f96135992e8a04
+A = 271b8eae3e96cc4900d4413d6c00b73736a5d89ed7e
+
+Square = 4aa616aabcdc7ad48dcfd40d71e00a3789bbf549ff39b3e2ebb52017cb56014941961a5a6d52d7a9980fc99b49
+A = 8a3d3f15e6d7d2130aebd8cb99767defbe4c7704e3c1d
+
+Square = 845e46db8c40f3f6f6f4928b5748618f021f9064c6522bcf2df004f8d2105e90cd354785c15a6cc32fcc77da2ea3001
+A = -2e0543ac8b8255ce30253cf2047a0ff353dea55a58551801
+
+Square = 5dc5706dde9b326feb79941f08bd296ec3b6fb67270516b70fad9921438b9175f395310fb756b60d72d8e73e84ee8673cc40
+A = -9aefd7dfa709dec9e721f5c22867229435b2d6366462d0e438
+
+Square = 63dc6565adba27974a66bdcc626596e16cf399541d679f754d9063ceeb320649bec09a940309dd1eae5fbba0b558939afae9689c9
+A = 27f8e071f70b0053d70eca9c6d1e28303b8da2d3c58083c2cc45d
+
+Square = cf2176449bb8b215fc37288b904ca27d5d410780fd054d2a190a94b405f6aa41970b41ba3cc43eaabb97c2248e1e21457949070ec0f6a4
+A = -e645c7edc27512d4b3170d3c5430d0712a25c13afcc09c9b30bb11a
+
+Square = 43194e5f12e828db6735824c194985108269ddec12c49a14658be3c2b7d298c2846da1aa3ecb7064e73c317af595601de59035faab6dc0fd911
+A = -20c3fb73a03217893fd4a9db6e53a3d83a8414d900213d0460dc91bf69
+
+Square = fcee79e598f061157ca9416491f2eb069bb95a4d78a1d0538dab5c8008653db71b90ce3139e693ba284846be7b75d6b7aa80228420fe75599c12f090
+A = fe760dd61798c8f78e52b328fa27cfbe41b898de6e6bb4f4a684f038b5f4
+
+Square = 4f0db9f9e6eff9fe7fc938f6d6f5e4fb017ffea0cea0f7c57f4fc1e5b2bdc00a1cb9c1e6c865e53309b6b73c4339b0bd485860ca9edde3019804902da6b61
+A = 23909968dd5d139994fe9baa0a7bbfa009b013df3859ff294c5872366eb7ecf
+
+Square = 4441ff36d785d18208481470a5b8ba8cd65a45436c39190dde0b8a2b7d00bf67b185d98ab5c4a7853423778d6333abf6b115dc9567a9f9c71916d3f9db3af82c41
+A = 84307277f79cfdf33d83d7093f1fd8aeb94499a7075ca32733b68fcf88e819421
+
+Square = 50ee0dba369b0fb61d75706652487ca08043eee712ebb51399122353f77f13745ce2ef0d8f0ea7b3fd94e928b0b2b42c2c9141b5697b13b6d1f3d66c6a9186625b87e40
+A = -23fc02d45c820c3a4250124cc457fa3886beabb41d3c1e26f711309604eb253c6da8
+
+Square = da11876b316d4891a2d650692ca776f77afd32a1db08f591c9579fd1053a4a46cf78b4e4cf417eb99eb067ff701dbe3483dff22e7878d2ef2b234244cf7a29d93f62d6d6b611
+A = -ec463653389de3689fe1881679b83ca65134a1498a3543168dd4833a51b23edd3fb617
+
+Square = b342b4aff7e5bad38f7f532f0f32a3672f7ea6521d23652fa09ef7aeffcffe52f056ab1b54a0f3a2147f43330fd199d1f290988c866f61360dc4928c84b3dcde8f395120008472100
+A = 358e27805e2a56195fab2ccbe3f931a4bd14023ee56c8a191697926f387c40decc578cef0
+
+Square = bf4045fd680caa514e9c410fb4404e5e3a381abee023d5b509d6dc0b97386421f55090af8bab5ac08e9b2eb8a36a64c55960be9179d564c5429f4ec595d03d12111defafb7359b418902b1
+A = -dd450a0fa0914f0d65a1b555baaaf9380eaf8d58b272bf9d95435bad53b01337ac8de562cc7
+
+Square = 86abcdf183ca059257c2f6bb91efc9853f4ab42801d3cde88df72d4c904be184e93d6bd1af6fc21a6836c93c4e0a1f728b3722d568572f7ade418274ef2e6ac3463c5cc50990f1017e01cfb91a9
+A = -2e6b4d9eeede7a72b8d0fcf6429c7e30cf291352e1bb43e92c14236716aadc02c02f75c7e6aa8d
+
+Square = d5f37112733b097cab2bb11daa3d9481255060abd7bce42b752a7641a98e140922c375fcb68bf13d4326b374eabe3b01de0f8f6324b7b3e4142051c02d2f18ae2e748cf3c4bcc3fe157bc94227631d21
+A = ea087236372fbb01b80e57b1ae4edeeaa776355457e18165a5dc60ef4b6ddc0b127ef494dc44ae11
+
+Square = 9e4db7885fa5f928ef236f99df3e7c8d17a5a21983ff882032817edd5658575f443eb9c5c97d95ee798a3809cda76d7a0ab9fde757a310e2f5cbb299ab88e92a5771027ab9f26816c02d0c97894da5976ec90
+A = 3253d712d4ada4c12dab41036fcf79b02e80d1a632ff6ccc44d3c1d08467a019cd6221507459b231c8c
+
+Square = cf9c50ee8773ba94c9e943989a35513fc370adc3622beb125252bb92ff9b258b81a497700e3bb15bcb23a5b3082c095f7a5d6eef20433d689c20a5427b661d43fb0f9b7d1b16d1b73b8fd59ed319a26c5eb92fce90
+A = e68a0812d2de2a922f24c4e63b4c33e62f93943b7673e900d12405dedd0bc2a906daf8b4bc336bdeb52b4
+
+Square = f3aa49c906844692d3bc0cf101adcba80351c2e744be01762a8c24804a9d8d5a4cc3c113ccf529eb79cb3304aefa74178afa53f235c5211192d4cd8610c3b42e246621acb3e5d1f9d86ff39a20a7fa9c568356de5b86919
+A = -3e7069ce11472563b0dbeb9a936884df66db83273a690c40e5d3b5f8926fb502d3988591abfaea7b7bd76a85
+
+Square = 7c9a5057ca8095cdfa289b2d60eec80548f9ab2f3a996137ff9be403b529c4672e003d1eb074c76c0086e3d875cfbc90a40ccb61b799cc0401ba160d8d6b6ee46b2f14ed31c83de54cdf83458dcfc01e3234d9717b5f2c7e5079
+A = -b299da84ef84095d8191fd1cfe847b960729a3d1857082f05b2fa30ac45e90d2fdc778013b023f38db2c8e780b
+
+Square = 488294b528e2c2da0145217ec69de2d021ca27f145f7321f06c03316fcc14bd4a9a900bd6a144086acad6d5ad32a6245f5a655e007742aa336430c6bfbe174278884d19fd93916ef57215069268ade899cb92dfed29628327b84d8240
+A = 220fa6eaae0238e78a91e43fd8c2fbd5db0c8501cb96d66265c8edcbd376814c39e4a6f21ec9a6472c6abe8c04818
+
+Square = ebd685edd991dd5180706b72ce20ec4f6c5d9ce038cc8768f2ae2d0e676bd549d6d3f97f6c26f6e36bb664e8a7e6102192bccb354c024670085711db30159c6b7badab7c7c0b91925675ece3e23126ea6feaa28e977598a890e4e476ead100
+A = -f5b657cc38fd11ad2f1b188c61721b5ec6c9762c09dcbfac3edc1f07e675bc058e77eacd01a2b4139b1b00c40a6cb70
+
+Square = d1b3ac1d7042c0200f80a989e053dee31cdddc835889a57482a0988afd82b0fe8d3667270a72967401c3e8d80dae349ccd4063f11cb24dd7f9a5aeaaa7c0bd7bf7991367b0d7b4d374dc9c5017da81ba39fadfc3b760f68da95ae1eaa2eea3fb040
+A = -39eca1bf5e4807fd6a9ccc9e3138a6fb390b10a330f0027f0ba9868beb77c93160b623de58054a4522183fb3e4e2d86b08
+
+Square = 41c5e4bc851d48673e0a16336f0decbcb59dad36959b310cd1a042d24de00c587db47058c2d91d7f9982bdbf470c73f86e591a122b3fda71796e465513e10e3cdbd5e6bf035595644d588c091e23a57cc47b5173743b0dca965902918d61875f88735a59
+A = 81c2caee75e98f1822c854448302243feec55a5247bba948647f12d7e0bcde4b1dd6af63eb1ef948eec22a87d2f3213de75b
+
+Square = e712c3705ef2779ec997c430f1f8b7689d7edbf2daa733dca89612bcb298180b882cdfe8e5cc1104b9f5d6d8f0978b46eef4f297dcc83fce4c39821ed3205e399328d69ad484d8b3189e207193203ef79b763f5e11778dc24839b4feaab291a0464cc66edbe10
+A = 3ccdebe5106ff5642b4ac0751bb799c27454f904fb72863d1055d1412b2359120ad196b768f6137dce4cb85cd29a990838a95c4
+
+Square = b5063c05ac122d0d4b1e0d15c913f70f1309933ba737fccbc02d13a6c712e7b75fa757ac0e4fbe65977f17bbefde31c8fcf51f867a698233bf25bbdb1f03c104dcdbf1173886a48eb5a8b4d27cd841196de0b53466a3f1d28500fb4dbcee8d3458662443eb2aaa5de9
+A = d745c04ed95d4090ed66784339202f9d0e57bdc1a6f6b6ca09337153f0236cdf99b61db85604791b3a373885210f6aade8530c8d3
+
+Square = 974463573c968f1734741dde2a800761fa749b553dd6499b920d3af9bab73a87f40c9cad39c51cfabcfa0895f1970281af063d80f89f4103624a75bcb0d23f5ef6c1cd9a10930118e1459ee8732728ceb7961f7d83cd2344a51e6229fe708bda46382e142706137facf7161
+A = -31323f98f0f73fb66e541471774ce0e0fff53d69b2b726480b9ec7b0775b345ec4ec57c4334ab8ff4b388f4c7fbdfa3beeba0f3e0bcf
+
+Square = 673a62011d769ff0333f69f10f00b28781fece47ddeed25fb0bf4f8d95dde4efff60690076aa520ebaa3ba63e6d445541b9586241141ecc37cd75b178389265224533055ec82a393e5dd61640d3f442adaab917c8fee1f8fc0ff8ca8d577e1d2d976c2a8b873f699aa92c272c164
+A = -a28fdafefdd393f993a8fc1ae321e420451dd0c5071410367d5a911b2a3a668bcae4452e134159e0b1974505f99865cd97cdb020bab0b6
+
+Square = c4f34585a29667b582a3ee69b1a5f6c04746d105a57bc92763958c5add45c64b5c1cfeb1a321fc5194aab818c92ede5408afae0a2a74ed4c7757dae0bcc602169a805d525c5a63ca97391a9a7987a3eaf04bc44c89547c5d312f7193fc571851b1a8f8f091849f649ae91e15a050f5799
+A = 3822b607fccfbf0c5be97d4358bc682784e6453c71781fd3eef9d247485211c55d742279a35bf35e64ba8ec8cfe20dc0889688e2bc81fe0c5
+
+Square = cfdf0eb68dc27d60840b8afa8daf96bf831002dadb2801c5d6f7ca558256bf3c7c5372fa00f2b3e300287745f8664dcf8e679fa35adfcac93839cec53b349553f31058a4db05af40b047bb367234dd78717aaeb80334f0deabb09d2d4d90394ec28cc3589b0aa78cf227ce8678b8bb5cd775e9
+A = -e6af13779d5a5eedfecb7c4d34009affee1f0bb65934ea9656ed6eae02271ac8a29104439000650a3a8cd7fecb171a7154c0e2bb2b1cb908cd3
+
+Square = 6ec1b1333481c37be059ed7e088c862f869bb559b34360781f7263eeb206a210b90321aca198aa41c2a79e3a8d7df4336c75c87ba2ed4b02052a07b234afd9d2cb55413d4296645cd0dc8f987120acbc82fbfb089190f50e55eb1f509c86734dc14b2e8ae42ce880023dc7a014b02727b53d0e5f779
+A = -2a18acca3306bf06fd90da4ec2cbce995fb08beaec6d1cf4b30694d682c83e04b39f9a569eec52782b9eda7db0680165c77a1b0f54a1b995f8bd75
+
+Square = 5382be4ee86b9d80dc2d4ec58606ac538ba7074d57e2011346f0dfb9a9d6677fe015e4015ed607906e9068a3c5601f0bb77186a9d147416ac68e344318cbae5c70c437c5e1dfc2d6c3c8725198937ac2d8e796f749bfe95c7fe6d0e460a633be2d86462d48290a2f8b344ebcda2f6ad353d6fd5f3355d819
+A = 9236f7ad22da9cdd8c187082c630098bf3a558b04856e876433c570a63d39863416c9890dd089f7665d6ba073b2ce90f88e7d04af96f1c82287903fb
+
+Square = d68e15e8a46e001e47022daf63d2b33fee0f9d3dfefe9d204b0de6daea31dca4b287a60827bda9de2860c433b77186aca10bf3ac1d02a204ddf8bf070c3c20ea69d9638a865c8843e8e63211951e10a844f8527345c5bb5417e3301a19c929e6fc48902f0e0be8e393ecb3fe0e9de6188a72d102fbae846d05dc1
+A = 3a973dd50d4239f05d86ba25ee6ca8f8ef46424951a8bb89e7d1d6e066d6fcbabb3758ad9e1647a440e51976c0ce628d78b59a4d9e42fab0c723182b31f
+
+Square = f03a448bc7405d2d54c0ea1a9016d8757d4af893024e542df80fcce448491d07a4b451d67c9e7d9a6c7c5a6155bf156d3cdf8103162d8e0265111655fc0ae46f4be944fdf275221b217274357977abf64316615dafb6ec84c5466f617c4e8d9ad4739f3e5050e583892db75366a4a7d2c4558436ed036a79084c7f9100
+A = f7fd0a9634d14d540daea21c7b804d37de49b7c13bde85c045859ddae1dd3142994e385f455becb7ee30576d55d4dc2f3d9d82e86032e170da1730b2c8a90
+
+Square = af945dc2241029744548517dfd7858d42097076b06427419e74ab08071a23aaaa1f5daa6290287ce8e832a0524ba5581d64abf054408ecf6ed21a4f8289c1e4c7a8087384d268a1ccf7ed40e74922a619b5c1f2c08d810065710046190b7cfff33d4f67e58927477500eec54ba4f63a57532ed10c6b861fca9d46bfc3d32640
+A = -3500a8b6d244f1a21e10de7cfbeeb75d57ffa62e9dfbbdba8fe93d17488c56dc89787f13e660d0d7c7755242f8412d00988bfc7d3f6704782324c48691e7ca28
+
+Square = a466e34dc7875aaf945c088bac23f3347a41f7cd039b0c9120c2517ada94b96bdd72d7c9bb55539af12931a3a39f6e09a4cd4311fba57dbfcc51bd17b03905e2560275c8bb3d786defeb131a634e86ecb793867355b048dbaf2db8b654a4d50aace6bc9d60de6934ce25ab58381f6ddbd1c063652e283c30a2dcd61d9d776d60e209
+A = -cd26a0c3d84e83d9f14dbe95cc39e3ed2e8861b76f4bf55ab120ea636d8f9efb0b6198986eb52075108d0a5c6ae0ee762f834f3db802c3f20bedf938f47b8bfb03
+
+Square = 9f3f4d5110ea1bad21fae923825ba869a9982b753284f1946edea19f22cf0a49485b9336a2af7df8bf2641cb2083f4dce82202162d85a5779a4394213bf3bb3e47356bfc1150e66ddb6cd945092c9af14eeefd2d08b76c5e4a585ed8ef39202c42dbbceb25697f22f9508e7d954d3c1da103818aa6f63121f895e2c26d3d7463aea7ca749
+A = 327a2f6607c41ce920c14e9c9e8a059a931d71aeebc3e05e93107265a2810ec286819a4b2af9d2b70b754bdab6022b10ee6b81b32a7382cee99fb2bbcf6fe85af05e3
+
+Square = 50ac4c46f2014a7a382b0d5ec9db4a67f34ffe9fd5410995810d3ea8d7d87d47442d0253c7eceb1799272bb5f5e7bd63174959f9844e5b4b65b6a4920166d83d01a5c2638b4d3b6db7fed99e28b9128dcb7c10be539114c5887842f8e5a7fb743298ec9642e50bd0979156cc6aea9ce802a0c1b14a2a1b7afe28dba534c9933209f14474b6e484
+A = -8fb585e01a0c62367dfa8a1953e553476b1564e843bdc2c5d964864ab2da56e0bfa7f5ce5b7850398451619a061de02ffbe0c336ecbeae818d32dcd40355fd11a7a3822
+
+Square = 9214e31bb62f62a7f92d6c7f1453bc4430595a1765b7223a1e50ec30f934908c19fe82d7bb8ef1174bb6787aba9df1a38a84203630ae9f62e08fb4ac55ed329282315937d193992e9e12adec9727ef91df5a065cc5858062c765f34bd2630fd3f654a8f8421b75dc384477744efef3d6f0d15820c9328bf43a43409f6527dce48a92c3e1ef145b5e284
+A = -30587ef092cb9456caa844be9629d77ef1bfe21d2ffd5625ea353beb1f294e38a7fdddd5bf77cffe5caffaf609b8976756c9eb4908ca77b1630ac0d706503c46177c5d905e
+
+Square = 54bf52644a244276ad3dac90661a1e21468f23a117a1fcc904c66119d86ce98a0b90fd4096708bcefa7a9df87c6bb85149305f193cf5505802172ef9ec343f662a4c895a9d19edeeed5d91e20abc894948fe59c1869928616392f3694d82aabee325b651e1170006ca1fc355212308442a5ec8a8fda4f5f90b7fef2aa731f3fe0f028143ead04490d78b2151
+A = 934b16f56700b455d5791ee8c119b5921976a829bb5d1fedb201e63c9ebb82afe4e29aaf0ae27148e4d34269c48dfa42131cc8b3b78e23ac3e7292eb0d715247a345c800f377
+
+Square = 63b7884fbb6d5521c38f7deea5cc131ec6bea15a362322a8e27c762880836cffb69a069a168663908707bee9d83aad41c045bc84dadc6cd927ad62140f8c2fd001d34f0a7462bc939cc8996e17ebabafda95a73483c70191311a6fb7c670c76c9e2ed7e589e464617888d30cb7793e91672d7de9b3b4b1811b2c009dd1c690d44710bbab832d91f16f9b3564a0c49
+A = 27f17f0865513350381ea1aa1545439fde427ccc64385979bc787cfc4c7e6b624b2c77140da2c4176c55dbe43c506fac14b4cd7815e87f3120330dd3003bee087a371f85d6f4e9d
+
+Square = 9d1c4239accb286c3c7868ad3b4dd97b93774fd0c65e04ca8dd405c0298ec6d1f52d60be6ddb5f8f0389cde756b49b23dd2f0de568a432fb99dbbd40db798261d1dd39bf5017e6dc74cb9ca91f8b2f892c7eaa28485c04a96add206c7c38943912de065be17b65292db5a144f82427016b5e0eb4ded2e4d0b7d12b01cb0b2b61e5e1bf22dcf1567a8b149cc0ef5299a8b1
+A = c88cc5a46bc1cffedad4f45e66fb55dc4347eb2a24a09878358d40fbdb03e738ca1d54a1d26a777915248fd730daffb0d3b5305684709db0f258f581fde06b11a33a3f76b3fa53e39
+
+Square = 789545f15fded8fbf0b4275cec30c3ac65eb42ab8cc75670fbb2ab0b4cd90ed41a1290383b5f14bf87a88c67ff1e04d0f478fb11fefa64e86eae5777855ddeae451e166e23ec30227fb4021d51ec7cfe4ce531c78ba1bf6c797dc73f093b0a5a5aa59ad8de3234808e776d690007c8c332b3f03331dbdbb8645b91552091afc36c28c3229220b1a7966c7cf13db6bdbd4673440
+A = -2bec94112014c1a506417e659157192dca1df58f933510d7a8d6f6feda5031d799a66d2746c09f827199ad9fcbf11f323a636feff5806c9fecb2ac684c2870d60c8a72358562c4eaddb8
+
+Square = caa64c9f6bd66f76c99604d1f2b8a29a9a10c0d6a41cf32b5bc40edd7a1d97b295c63aa62c30498f15d70e427d5612ec3f6a2c1f2997fa9283f48018435fa6092269dc2e4ad524cc6da9689302f5c398d79e2b2d19470ea8240db9df0bc0bdc911c4d53f4f24a7ce44ec76378794d16d367434b4f8b6184c7651db77fcbebb8fcc5d3a51ee9739922cf20d4a8888139fe4669a164400
+A = -e3c4a10a64b7e67d786aeb81bb7ea14655637ce963f46cce59bc0cb6b5a9cb9c92afec3d527119db97bd2605d315cf28198992b4b2206e5616d3c560bc8163f56cb1f5626a7ac6d8427520
+
+Square = 429e4283af7f895fe732ee88e4904348ed01bf579a93cffb7aa8e135d41cb9be218f8b9a9cb4f556124105cf042de51f34c8162fdc7a981de88e005a014149c955068e87214c174daa40fbc618c536a6e507ebd313763fba197059d68c69bd39933d614b2c32f235cc955e335c4a37b9e98cd7f98c7f26ea2da932c7f82ffd95be22a7741da423123f8908cb188abc26afaf4ba6d47b56e11
+A = 20a5e2a911627544219a1639c3321bbcd6192a32129b248cf62351f85b7a719cb275a4e44368a74f4d1a307ffd27ea2cae4d8584a57070609a30fb4e365564908f3d501b53c1a54f0e37745e9
+
+Square = 9bcc8d423c3fdfaaaabe24a910e6ac3619eaa15e23b9f317c844d39d164c952fdf5c4bd270a83f3902e54d3817fd78c96018a706c1f652025dde0b98afe35597e0d8782deaeed23337ef6b3edc9317d54e3c8a57e4e7e2695f9d2681bf82927bab193ca1f135bd0e542696772f08520faab61fb4ea6ff0d15bb91f21e68bd7f084a6b8f24a47ecc30a779ee86610387b29a1de94de517f81318001
+A = -c7b60f4c355f2ca3937ba3c124eea2cd8d3536226a44afcaa3d17abe931c09ccaabf25a1986b172fcf46fb02a0fc36f2c163b6e42cee047c54ab05e9d30f03f6943b9fbab83aa6da12d7898c001
+
+Square = 45df25540de94883dbc182009c29fec43627d3e5758e6a07cf40064e0befa0df184528a84757b445dd079c2b0feded48b651ab18b4bede2a81796be45caad0125c3692560d19cd9a6c8c0de8383fea0bc1ab46f6aca4e9c36b26575cff88fdf1eb1e13182308295457374968fe3a9ca34c6acd24c753fb84d41246614789dfe154faf34fc684cd15035dc9c1c6b0ea171e089e0f3236840e355bd123ac4
+A = -216f8a9a3e54d4afadf368c2693743efd3eaa4cbda7a87cd07f5b1a713eefd2548343e7f091ee4d9d6ed1d4343c06a0597db0eb5194b91bf2c858210557a8288c1aa7b0e0607a24dcff9de04146d8e
+
+Square = 5cc707d97eb107c5c40c0f19fd432cbac9855f280082802dbe4deb45bfd193ac7a9149fd12c4ae6e9282411e2f1f2ca92135424f215b800634092ed4ff2859d16ab9fb8619ece41b50f8888d3e13773d38789e19158e18396096dd57fa5470f50b391c22378d980e59b4585f013e6db52c1e24c14ad83262fd37d42f52323896f7d4cb3e38868abea8a07e7ad3f90512eea001c5147645bf00396cb0e7a553f1
+A = 9a1d1b0beea76e7f32bde9f4f2c8bcff9094db2d32c04fb7ff43624b61033646e482aa0fadb9f8b4225b47121070b4ee5d6818d3606ed775aa631e0ed42da68c2a09dab26b6a4d09ac226cc09321fed9
+
+Square = a32fd053eb90c365e77ff47573a24add3b25b4c301f4c662dfc1fa635af8e18e7947381989b37a9c9de2713ca438b9f85890b7b160fe251933aa7dad1c3839d502debb42ddc927fa0e9b40c80dc3d408889be567699a856b1c9cf3a393b3b818432e95feea825c17d0981b942236b3779f2acaaccaf9a5817ca47bd03045fc4de454d8f1d4377e218c5f7ece369aacc35369ab57a71652dd42621491834119afbe729
+A = 33190b787a2c3327b122d1f5823bdee5c93b19b586ce1bf79d801a19b2558aafc8f6274d0908bb7a8362f7f71d3fb52b8ffc87d458249caba7af3a516ce868e8a620e3126ad43d6aeffee11866fe77677b3
+
+Square = 74215d33fa398e21c34034af6f9c7af6a3e01982320ec8cf23074a938f1a31543f80e6aece01de247668fe67f276cb4411db27666e1dc8fb2bfa4eb68cfd3563167d1ac4efa3361f920d8dd0fbb7f06362167f5ab5ecfb72956c20db934f67ff1c75aabb594c853fa61f43d219a3f5d0d45274005e3b167cfff5493b0f26d15f85d8e906a0a6e7645eac1f40c6dc637e6d1e061e5b9071a1227469cfb2c0f17ff983684100
+A = ac6c0b9c69785f35dbe244dc85a54313ef836ac67c853531ef5db45b28835ffe61dd258c5528b0acea50f5aa5c0f5d08dcb8d82ee19bc432fa8a45badadb50693fedc1cc79a17d63aa73fe9597f1d4ce8ddf0
+
+Square = dce5cac967c47b8a58ed6f1bb1d1e6185e849400228afa2bfa05b9c2dd327b04a86f2a4da2d02ea102868ea0c4da0f3e5a40bd02c87a08aaa5cd8d9358b3a5ebd8c9fc2dbb1268c261f46d6717b0307b993deff0adc8190d32b4f2bf695eb2cc74a6a9a712c5a621c673219ff8a24ded0997508f8f9eb1ea872008c46e71fa97f55b839950e63130c38b49c0ce3ce724a0e8faa9738d2e28ce6e7fc7eab62b3561d2981f314f751
+A = -3b735400064b15fad81b08362b8557f8318c20656839ffb4d2513512015036ab0039442032f1cf515f8c10c9933afe4206a2f309e933d1561b06bc665af2f04f4d064e073eed2280053f56cbeb137a9482c0a077
+
+Square = 6b619bcaf632f0d8b1d715e8850c0cbbd29ac6373a9a5e93dd1bbd2b82744a8a50a7446b48c6e215911ffafcda9ed7becaf5d26b7d6df7dc8798d53239f62a482f974bdb654750def1c941c49a24fcdfcfe73881b556a7b528d88daeeaea8d62b357211a1946c81cbf0819ad8d0188f60aaaab4ea2dfef7e9012ade7abeaaa4a23d7403c1248c36aa26b43b8e7de8a5aea639a0449f50359e9b4c1b125a548383af33703f8dfbc2528e4
+A = -a5ccc69663a8712c15f96e6fc746252af89a8c2a6317caef905dd2d8a6d4fe878ac7aa66cdb3c3721ba7dd36da310753dde9801b31d759339ac919a464ab52541bb2e0dc938752bf0f1ff7a9524eb98340d62576aa
+
+Square = 77ea5b715823045afe13d10416dfd46a511141a7d1279ebd624f1de428cc04a4f246246e65c3f84344cebfa32864de9264b2e54d4b3010c4de9d3e6a27aae8f5f9e9d8e49fe26b73ac7e65bb216aa6a42db36ac03d749b5dc04192df819631593202a58264714628686507fc5655f169483b0ffecf45995cbc12faa105895564d287a9f4b220947d6c93786c85b2ee84a0a29183483f7c241d6a67fd0b1c38c7f74421355a14c6d9ed5720e24
+A = 2bcd67e6bde3f54c4ce0ea428418fc5c97272217c6c7de90549238ee322810dcc1bb9385967673aa3f9f5a5c05d987c6445135cf1efc26b3c17e55b93cc052761a77c9dcb5c22927b09e90a92e053ec1bc799bbe7597a
+
+Square = 40d113460ca3e70545bf3613c2ba5de5d8485641ebf531a43b6b8bb76884ff4f348727ac6606e026981d2116ef1e60d4b37b44ed7e2003410d7d636b58aed2f92e962003f28342aa5f059d23b3d58a1ddfb47833ffe1d1deee0a7e78b8f7d9d6487f22376664f1ed9ddb5ee3d17f43afda296bead11680fd17576a122c2599fa9802ddd84a2115f9fda03aba898f66e303895f452077c920a322b6aaa0965f51fbb36f01b1d412c6ccf390da050d24
+A = -80d0699a46619db033461aa6060983def7deeb976d1a71f5c6ddb85e8b46dc70b7ddb1d254971d38ca87c7ee3905e63506c6db105dd683375f4239523cbf1874069266c2c0f4b37edcdd261c51088081d25813758bdbfc6
+
+Square = ace99f98cba0d1dc1c758dc7211aa4078a2aeb6d3fff19bdfa6981ded0982b15bac792e6b542ae48a86f9b40c6de937e402e230fcfc390b10c3e60202dee1337ab39da7a342999487b8d8b0e494f2809cd1bfdb39209da5daa590f78ded211b6bbd3fca9013300b951d8906c9ce8d1c0dd9554d5d1d352f9784f822c928dd9700ef8a5fecf3771966abb1dc6a70b301461eb6b6087d6ab80a4b624205489584224cf6578f75acd8091fd621d02306504389
+A = -349936d60c9d77a0974dc8985930d8674976db6b3cbaa067554ca6b30b1de33f2d4e1c9564ce102ac6387755aabf42916f63632a375d995913f9d45ebda54bee3fdb7cedee46ebb5c8ae7764e4de323c17c797d3b529230cbd
+
+Square = db6c73be2a59bdd35dd312240aef18dde4231c72aa28551bb370a87dded587accec2279bea24c930236f06f24d537fcf242497aafcbf72f085fd3ecf030cd750fb382efea0f82ad9d3195680324d73fa99d48802d085c150164aec0d29fdcc3262264bbe72311f89989cc71a4afdac6ab103ab4fbb6e973a42a1f8711bee463d198f727dc7bad848ff8fa77cd3b2f612d142ba46e95bd79a86a1fe4c2b8f9181be84825d05989695842113828a83b826e7d2c8c1
+A = ed01dd49d2e5d51fd30e9c578259cf107771b4ded6bf21f8b9b632fd360e34da740e0b1af6b5a67789fda5a44025af0f1547271ca8accc7a975d98ea7ec3d41c9697018d84ffb5d49b88d884ccdb011f715a199ddc44a4109261
+
+Square = d6e38250ab89ffe11abaf8c5d07ba11e9053f1924ee1228f834111af16ed282389d04330cb0f47dbb186dee577aed82878ecb065b759312eaf167c4698eab5ed03a8657341bf5fb14a8e28e3b443a6b657c1f4379ff2549498a33922ea84f1fb19d10866fb0ad07ce1cc44c93cd4d9ec6bbb0e61c797750c6b5d7e8d55499655dde112f4747798f0e985fc2b937a44da9b04c2dc4b0816cfc57da1f80179db653c1ce287e786ed7eff7ad6d1383fc6de8c941d4af7bd1
+A = 3aa2e696ee570160b2a869c3f21c3f223959a185cda2274feea1c829af2234c70a504c959bcc49fe0313f4f5ffd27448e28aa0fc6ce24f36943d334c626459d7e6017339e787ab074879ebf697a93ad93835d69ab09294d007a0837
+
+Square = fc39360cc0fe040b6f8340e0728c650e5e74cf1664f7b301e79986fe066f36e8df34d38d1a06b74a1bdc76867baeb3f39a9161acd200bc7532fa4aa0ea829377659646f073db82ee044279ae5fd797edd37d3261970819589853cb320887a085c4011c23d0da9b6d6f1b5911bb3399146c2912a967ab3b3f611f0bd52e00f418e6a6f0297fcf5c4a1f71c6bb8cc8e1c76694bb7301502d1d00c8b6c05bfabbf5d350590561abf3e2b1a82e98b56583e2e4e25cf707320a0e40
+A = fe1acf3d7b54e718c901c53f365894c22c8bb4182fee8a4c2558731e01e1519bfd1bf6e353483b8c4219453fa66f06063c6c99050068c15cd13cd1648ffc42b5badfc70f6fd4a0a5552fe637e54c4f92ca45c60cf9a0163978ac08d58
+
+Square = 9abf1324ef65c726330f64643a024c466fad37604f4dd3dfc404d31c2a430fcfaa0c78283666c15a094d494b96d3c12de6e29a34d2c99f4f8cae8217bcd2a989d59807ac68c46d60600238a86155de499eeb35642d0f581045481b40e4f0a76905f9b6bc5b9585f77f8410b99333f7ea983c3f29f3fe66ca7b793b784a5a6a4f74512aa4385dd1e996832b1f41bb3af965be58c4ac5e867cdf8dc6a4f9d20a6f1e16e153fcbb45ae5fe8a798cb06a4ffe467d6b6aca2b31f335a344
+A = -31c243593ea611dffecc65d1439db345b2e89941113f9792c91a76b4890db6e4dbaf1482ee812e295d27956e48d07a14de38357f15b5931c5cc08d1d248df7bfee1cae5b5ce98984c5043a3e1a2b449ba1671bf1cfef91011e12bab94b6e
+
+Square = 66aee3e4f43c672e0478c76e2092bef33e7c60afee5d4c7defbcc5c0c86d8fe956c90a740cebe604224cc3f518463b1208699b8ea2316315474991d0f120ae905a67028492cf46fff2ae244869db2a02d06aac6ac6eb054fb3c14c756d8a3e7ca64f06586e3e86e4477f185ed527a8aea6a3c741f3fd4b64a2ee77ff140190260c431cc53f411fb227377c02f85d0258a75bf6d44dccbb8bd04ebdafa115dd55b176b6eff5567e5b1bedcae15110826574053681fe25a695ac4540186e90
+A = -a221dfee30286adc076673cbcebd24a41a438a0a7a6a547c75d33149cb1a094a8425feaa5a23cc234a722db4cca8d5912fe1dfb6db4e92bd87c12f0d06b6d954fdb9b172955412b2eb5c9fa3b4df2933390384fd1f929a2b1a8dac479ec94c
+
+Square = e880f8655b51739e34393c3e6d69d63e0256b1a887f7e69f40c78d21133b17e92277a136f5e37da2533ed599efad189975d22ad0340005ef58db0b471651d749dfbd48b3f7b3b8a42d4677048a855e99dae6c729d8bd7eef86911feca9f5490dd216b06d9e8d1ab695c1081e72449baad28dfe113744853382901e6bdab5413c67c52d6cbbb2e0bea711edbb3a219a4046e8739c04729cf8c8210028dbc4087737bc6c1d7e0c15ecf16774690168342b1372d3646d4d8696384bc932144c98529
+A = 3cfe075d4525a3c780d6d05f7bb708b2fdf7277a0f9967e0a209fee9d42136a0bbf98660d8ee8cb4720a8042da09f6271c45ad13db24eaac465f8207f78629e9085c1c890675f441c78efa38e5022b1b80afde5e3fd08e55648f2817631eb6cb3
+
+Square = 8d6cf4eaf58099b1323fc598b7554b371f4afef5ab501dd162ab8429333d46916fe15dfc4ed6a99ca7fa7fc1aaa0cec3533b41e291fb7f69b560259507226eca87aabd07b1ae2eb93bb53f98fec508f051cc04db4a172901e06b74229c4fa3f550a81626c7a63fa99d41e46c2cf792287a5cf7bb68946971bd43c7c0356312cdc25e524665dd39a24b6464bbbe64fe8e87ee313b860639728a9143c3a6118bc8b150dde6c10a13bea637fa8873c393e6338319c506aec6ee973b4b52a272a74bb62084
+A = -be46a8072aa44b3bff0f90c81474dd576756fca624c15f55a17e1d0bd2842467ae000b04f79f561690c93ca7118ce17ecf830a8da3678c15436876d2a74324d9714dc8ad8181904be657d7f1da3313b78448cc06e32299a09ed59bfc1961e8bd722
+
+Square = fbaa4fcf9800673fbd3a132305ed3e14f4889518fb56ab82aa5e9b3529b74d7f9a467626d68f4709a2030264aaebcf05c0a0edb511e81f357d85b79d925a24605f1bcd4645915bb75d363654b676266329df532cdb39152fb360df1b9500e0c296014289650ff77faa78a604397a82b34d16484e94a8de123fe720e514c88f11ec276725111563db91477480c3245542ec6bd0bb2f4aaec02c6c4eb1769030a31b05da3798c224c9117f7c38d3e98a343fca03ab584ec2d7e6db60fdc4273c3d8e23cc1ce09
+A = -3f74b25f2a9c4d8d977e69a4e067f9fcec281136a508e365b282e5fc3b1d097bc6a0f59f7827fb90d4890b08840a0a1919032c67448f8f1a771f785a0f125a4aa4137c154fdb489dc1099d57bfcfc75f4ca5e69f93f2bb87ed09cc0dc620d3e76ecd03
+
+Square = 5135becca97d93dd4b16a5a1105ba3a3e3fe02bd6a7c3cd182186fc63ed4351641182a2727ab6715e9672458dfbc31aded4781fa345054eb4c317872e2af6d4ed64b2ca7e8c25e1e664b5349df937118632a64e4ce439ffc625a5ad3358270dc83fdfa73c7afba03406094fa36d87517e5e2e1fee5526fd2dc00d9210a0f6c3745b3d4bceee5f8b03d976d696c57a09d1e08e4ce780972eca4f2ed6500c23bf5782c31f13059e48246180fd09db693d2fb5d48d51846ece8beee45cef7efc87c003b44d7b137a900
+A = 902fbe2127354a7df5cb7fd057f3d080a7bebbdb83c86a50560b8c287a37a841bb9c8421c63d359078d2948b6b57559f98fad8f8014f93c912cb70a6701c4dc4fc5e88aa413fcfb685c32975a8b72424742eeff8262d28cebad00c5fcf88baeafe8f6730
+
+Square = b5976cf6a6560412aefa6704b126e0d987dfcedbb4da436c08ce17b1bf1b6e0bab9f934abb5c4186a5415fa38724fb8fa341d381319e7d768209ab108c8debd99075d31deb3e03ff7d23957d4f3204d543b7d9079cf337be3037b1cb4908fd8c104d92e52f041b4cb27c045a741f4d64009980e8d27af75d9493920ed98c7234777592d6577f2d1b3a0eec645ab4cee2f28d9e4efd3e4514db6796487ba68a462fa0e316e1420d6604db2b901de46553546cab42976fd0d459afd81196275cd88ec4dd448ff331bb35499
+A = 35e700e034950bdd7318d5b3c17e90a4772ecdacdb055b9391b31538eb823fc8a4599f029e78e4fe5299ba1a423a449dc257a431d189dd5dca275c02cc1f12417e111c73b731631d8a1741b907dd8f24de226ddf9e3044cf4064e8e51ebd55be774be7ad2bb
+
+Square = b7de0f73397893a97928e266bc56299cc8d43b16a251992662646072b58fa578ca80f7be1e12619012b130e9514be803dc166b12ddfd26f558d36c2053ee6209b01458379e49469753300ef20f6b3dcd5383b121861c76ab25debb28c448ec33a81250d05f7eff80a5a4133d522d270fab29f739b607395a77278609aa5e1a55ef58d1d48492b71ee30a24a6505aab1a3ac22b9d143c9d6781fae14bbb980fe3a99dfa9a1a406611d7d0304493342f53faf5fd79f9c96b9583a219a1b22aad02dd58f32ee98146b3a8cf054bf9
+A = d8f4d3bcfc7eebd7068b851858c3668ce062a834927e165679b49132d4f780ca682876c65c7cf2e7ce34ed10e43696477da6301d13f92abb8c76e2424c4bc28a6565f15e59563d607b852dc946652b68fbfda1c3200ecc2976400ce7296b96e75fb059a4c8eb5
+
+Square = 5ec02661f49fb9807bb73debc3c6eccdac1df1735e0d61fa7e0eee07471068a5809796a2af490c46a77d61f618b44a3168dde67aae1cf9e530382411056958d55bd18f0e76fe2c31c98b00f87fcb7f5691ed5b65424f82204156dc361ef6dec5d44cf690582599b3994ee47ef42850d5d2370a4169c5f73942657f85422ca24f66943877f73af493c865fbeb29574cc1cc730e9bbb097b598574f6b90257748e950bff867bcc01bf62f8df67d7aee1b6dc1d5db88826e86a3f9fcd8663e09cf8393ee71a09c43d0d38ba6ef643f4ab1
+A = -26ef9b6708a80d00f4d01e0f0a5546ed217085ff23519819ee89af430580ea1f086beb0eb51982682c6d3b922a2c92752dce63657836223a9d94964bd584bc8e37c6e30fdcaffbdb128344d51a92705e1c9f94205ca36452c15a08f7e62e0e02479ecd48085de8c7
+
+Square = f6364409467a829abc2b13c93979dec84984caa12154b7cda2f4c8d91bf24ad7c45a968ffaac8d6722cc26e6aaf52dd29ea2f09370ba46d79684b7a06faedcd17136f35a58e5b550f3a2caef7b195d8409914fedd3c3154101bd735155098e8b10fbbb1b2e13555d2ab5d5b52b203d4efb27e498b240f37178f2e89b413f94859b0e8b2ec10b926c8c0b6f2937ee2d0355445364841c7e0539f7073b88c7d568edf1b253f3c10627e22c2ed731b7d4d199449cb0b5e7a66109932fe2c9cd741d75170deb9f98469049549c10a7a622bf6e91
+A = -fb0eec3246e99212879e51b17ea6615275818ecc5ea3058b13dbaba2576ef90e1519e3629b09fdaeb02661091c395c862b848f6326b9f536f7af45718c4412f09f19261b537bca36742d3ec66f964343516aae2ac27e249a15beb545b447e37b4062180f6c82809429
+
+Square = bc4193ecb5dac900191e02be06297106155c6840c4908fbf6e41e9aae137d53c3d4ffb87f334f49837dc4ab7a66299994e4f5c9bf6ea03e7db663bdef066e94c610580a8896a9ae9c8f6587eb83d789683f5d6391bbac3a1dc1de60b4108428e6f5fdeaed6cd3e74fa01f85c6368023b61a413b69b14276b66f22653491e4f25790985053d075387cb13c79dcf963b6d880d01174314921afe1cc700c02efd2979dcbc59c417a6316db9ac45a2d60d2a036571bfbd75f9f5e42048ca086cfb4b818a9beca4a6e0ed51afa320ef3549151fb39e100
+A = 36e1f16043b4c9b4a304496c39dd63459d6521d2ac92916d348daca3f972835973fc8d21b07b09d8f5e3197b39a8f3fd0011168b815d67c48143c413e169ffe0f56ff2cf8b6596bd0a3b5b7a6b9a14ffb797f350b7e6aa7020d84d1d1b8006850139795abe2c74f03b8f0
+
+Square = 4cbb5bc1dd7112326e2c94581f19efc8fb25339a299fa9c007114c3a22b395e9d39a8ffe21134e97ad1b87b97e667ba48b2a40af61afc81fb1e20e8e38c7ba666b146016af4dff3faf5de306591e5ce6eddc1173fdda6fe241a9f2fc6e054c41e56d296f8954377df0d140096b9e9d6a5a23a231db4dfab0cabfb11190c7a0d1c55ae35203836d433da96ca7339682bac0a7edb8b5b4dc267c6e83ac9b67a0d0d564717ee3c20aaf52c0a750f3aad94a12537c6971ee009d0f82ff576e984b06c7f7b357f5c049454e31326b952af17aa62104780e9ca1
+A = -8c279ebe466de3115b8740f3ff9c1f605b4eaa75512d82fdc8ca5ce84e11a68688154fd603ae1d607807dbfcbb822a8dc259098842c6a7b7ec350be29a3daa20fd5b093a56692e9d42e7a389c4ad2122a74205f835e268c9742d09ad36238c34e143f6e2ec69c0f490d29d1
+
+Square = 4f771ade09cbd1a033d2bfc6036fe46ae6c12acc6f2b9bd52e7781693fa6358cf93089f23d1f0ee6fca476a43093b9b52446f3a7abd72ed0ce9b562dc438822ffd84bcd898ef9d092f1b0b7ff89c4fdb33d8715dd4a0d68ec49ad41338fbb62ca87867d847a4d99310641a37ea78b04c85606069d0c0950484ddbeedac8ec6f95124e7fd83da4e942d40103bc14474f5cb125fa0b06cf167f076979948003dd8dc3711923f5af5beb5f56c0a48ac0c5240b62738c1cdb06b87ac3dfa17befbe938ddc7281f6c248c41a1c7b99b93f69fac83a46eb298a9fd8b9
+A = -23a845bf2007ba8480e3ece0a1bbaf8bfccba6bf061e3fe1d8bcbcd6c761e650891c0958bac68618a1f55b27d2bc6e1e1b50afc29f58e2e034bdda8405e5378cb5bff0d84efcb458c5428fc607597d89d589d85d90f3da4b89a64c9d1623b98b10518a6f2e7d2295c37527026b
+
+Square = ab45d12a4e15a294830741f4b9d4a14cc7dbed1c3454612047f890211c749d92ae0418f11cd44acbf1585b1f7323b33ac9a4b13c44e1a7e31b0dcc1c6dd4eaa12a655b5de08f3b948270a152db7d9e04dc54677075797bfad6a9a0e3958458d40e3df5e15028954bae99518de4dd3adfb2ec4b38897a8a4e4807849e1416aa4040c95a0e49a8d2889f6fb0537875f87516c3723e8d3b46da8da855929c67c0eb83daad62ceced52b4f52d2bf1c4e34f26bf16aa7da3afe0f5df76c0858ed98f21e1fc3d01e1572715b774bd5c2faabec5fa3fa59a7a1f32565a4f1f9
+A = d164d875e1f766b4567e9228241213e69d6b6c58620600166fac56938c5d9643932d01f1f4a2263dca4b9ad26dca1548e4b5b7e27581a63375d0e624f4e4c99b7fb9aeb25307c61142760bc4771e48c7ce38f5eb2408def632096fe40b80d488fe17a455d80edfc1c23c429775b5
+
+Square = 5ae4e7dc5727543af39ed3d5e9ac086d1a2220421231b82f6f41caee7b9815b4049aea0d43ff499c6c9e1f226f8641351d03f37731c64686d9a9ce68e9234d6a762efcffdecd42f81044111599963d9b6873cc20bf4c8284fae03d2e4f238a14a74df4388fdc80fad0375a5d0d974da7854ede5896ed2ab25d2b49a3c39093600f73120e4fd2faf75381854f6ae80f81b977f62fc72f1fd01c278d183544052b77bd753dd88ffdf5c01745521fb8474b5c23b0b7dc709bafeb91cee0863a0c23ad7192c43cf15fc181d629853cb9b8334082c915dd3d04e3a0a81511d2e84
+A = 2622a7bf45ccd3cd567c757f4c5796b5a0fbca555bd0ac2759c24083172d82d6a887dcf93d9788fde052cb20a8963cb6db22bf5eee6151600f9d1896a7606b11a1b100cbc0925bce037bcea57e361efcc560a9abc495d7f7f45831c6429ac8f979dedc08c304f4da9c0d4d687376d5e
+
+Square = 473cc933f5a650a4ae358c7f486d325c0e20c83b54838fc08b6ac3ff010f7c4b6a609bdf472974dfc5abda0c6b33c5ec7dc4628d85cb4276108e2b0bc4e19cba135533b3d7bb6a94332aea3165dccb230860d2353166b9905635e606185b014730e9dcf2c433e18cba83859fb2eac4aabef68c8314ef86dec2d534a184ebc4cb193643add0897341690cbe18bc2e775327fd7d71ffc7ebc49bad83cd68394eb276b2e615ec430180303010a454ef73b6a8f02bc48a1fc8a32f8150ef1b733f07da752b8e808000329f4924976bc8b8573927f18ca7c88c210845de6dcd0dee2904
+A = 870b2c4b054076d0d02877b19fe1210a8fad3422b00905a6db748239b8e807716ed9fee0d8c25496593717917edceb5db57f9960bddc1956b6652868d6ace82827bbbada5ae8c15efa26fda22657126c6300906f90e8fabfd58ddf312ce0eee760e0090fac44f00378c676115cd0639be
+
+Square = b151124402d2f04b0e6599222d380dcf67b9716ef50d2d9ded0b21521b34a7294171f71b41762511b7cca93d9f50e9e30083ef19144882928011dbb143807d1b88c55eea6b19f0c4180023be6da63a59b6bc027aff3f5abe2f65c73b2de1e71c5f4b248bc4547040764e83a860cb3f882bb8b5f7821f92802808fa37c50f2f94d8f56daca841f42d3362762ba843aedbd03d3cdda887f75ba92423965ab4256eb842ad755aa7a2af331b488186f891065b07f5a299c807dc24fc176e085a8024bbbf12f386ef49ccc91bd4ada0936b6de78088cf5952ae6c04f6916799378bc0ede0da4
+A = -35439da9e361700152a35ebdea253378a1febec5f288e5b2bb0bdf25b84751b47e4da5aad7453b70cfd6640d5832237d2115575c738482ac6036c5fc21a981c0a7f979c8d621a92c02166b777475618aa6362a0e225dd6138ead3b2766ed9785ee01e4950a863d2fa0b7f5cb4c9a108bb626
+
+Square = 4ed7263ae5beb0069f24318b38afe951a5a058a2e960e67f086c9680d0cc6d713f943812070bf94152f7926bdab9e5908941261244542b832f458f05ed5dc048c8b9eb84c2a85efe717e257796b4ca816948a6c8ea209c0675efb2fb5af4622b44e36066593db01b17f4dee21d7c1337ff41436cd0e5a8d01e4030dcd3d49839e59996fbbf1d39bd205343a424f2395b4d3eacdeb9ed3235d8df0dd00a2573260af63db3116a7c65d1dc69684a05caebff34e3d2cba9d4869a953a7b1fce10ebd008cba021008ac3187bba846abd7b39a1b97c9c07d8080549e313dd58b716022de3c1920329
+A = -8e1141dcebae61d5c4d81697f001d792ee2e847c589816f923f0ed42bb4de0d8f911b8ca47ffe77f80b9da6896a9b42f0030a3276218868bbe1a3fa64fb0a577704339af5dd82e66780da6f58900da3f1d75ebfcc302f78ed66ea3c7a737898a29b1f2500686b43bae1e6571addd2842cdce4d
+
+Square = b09f5e9472cbb75070a67d025957fd5ac3be89c41e4acbcd5f75780ca459562461082c3f19c5a4a416a668b0a55f31f74cf2ec44555ddc43fde64da0ba781adfac4520dd0f78d04d9d2fd33d8b49c72663a6bc845015523e2e4e7ccc69e5b748b8b891e4089420bf0a3f6032602824c7230b5ff95f85a688dcdcfc890af3384710a9fe32ecf9ad7c6cc5761f13079b19d7b2906c7e63c14b64fc88c6f4bd7c41c0356c777d35c3626d49db8cb2d1e89ce682c7fccc3a459b08c20c4e5fc3a8eced9b37d01bed5af6ce9baff0d2b435e6e62871fcb20cf9ec10d1897a5c76e73a441e07fbcc2d9f4e4
+A = 3528e6581de547de385c93ccf1086a17614f23356a918b25bc6d73656a2302b318963bb679c9a93357f4a4f614e74f2e5e88e9c8aed8a6fdd8434630f664ed15ebb6095cbff1593f188a12f4dd6087a85b202f6c24df68ac3b137406c88c5098faf47d1eeec0743b35baaec7dae29b5a44eb09daa
+
+Square = 5d5dc40783411475a4aac7c1a1eb760f76fcc6ec68dfebb754251cf499870654cd309422935ec841e6be4f5a15078356235c2b8cbe1ae755cd6d814e811072bdb76156b83c7d2064a202ff90af1e0f88f5889e5729a3cffa9faf33c463b74d0ad21fbb4473d4d3ebfa8a52e9c209ded5ce5131b12b69747c365146fa17ee5810e0dbab992f9da28b6c323062484d62472232721d608cdb9b5a341a677e2d7a6e5a983247d9a4001e16687b489b10b18bbf205f982b7ceee27cc3e9c6641827ab7952373f15d36e5f177b82d7eebb3f5054e12cec82c5f520a2675afdec6cbf6235d358c2fe73344002e400
+A = -9a9a19fcdf11bba84b0395088c5d187d84d69b68b77bc6418f63c88bbd8dbbccfe02917d814f9e2241fa0709817a0c85bd554fe887babae7439d96248514c12d71587c906247b3e965e954cdd57f1e51f1979f73c3237509863169efdf281c1359488daad3d9eb990a50ecf4d3fd25d4820077832a0
+
+Square = a4d69ed4c4c9c08116ec5cc49ad458f0fb2ca00f356aeb148f18037bc49621e14820f325af39f3954bddc9cf01de7ba1e443088545883a94c04ff41a7ed5f65676109c5b711b4115775489667e00aa1b77f6dee5ac5c1789bc71c9fc797abf41c7c5ae3e2c1cf82d5b49b6c0da25190dfa9360b99b2f63444d21ec6114038b8284bf598eed24a2ab2b9802d6edd5b0fdb52f60621a87a14612844ffc71ca98180ff0915cf75f47432f73d28dfd7a932a125095655f07f50722b1673df2cc4f7566a1c6035792ff3f02356b9b9d25e905121df768dc6a1884cf5483eeb813c1c009fe4ed043febd61800ba978a40
+A = -335b12e40bfe0b847ed6ec143490df33d2e64ef4363869cb78dec008cb5cd66ea671dba964a53e48267da288ef4040e06371e1209691b81df02f2c86a79cac85fdcbb6732a1e5309fbbdbcd899fdfed18518d47258c9e63ff7f116ef4a8f5c4867aedd907ccc7d222cf8087afebc108f2a0f197c717198
+
+Square = 74dcdacc1a4f02a99e3642f54f9d917b117d2ae8d9c392f8b6dee53fac66ebe1680c8e8cc29f5330e0eed3f63d10980060799bc37b34c93dd7b384d4ba30a5b5d42a145acc412ae838d7b9b7137637546d1118f7cf3eadf88b785f0aa01da8638f027c56faa16aba8591b64b45dae6138c9a40309b2ad29c5029a867465f9c6de8fbc5fc4b0442c8a8946272667c7622454ed6f2a236103bed7697dba20db84b5154ff3fbc6b4b9eb67ee43bcaae741d87ee2093ee67defb8eebc4a4a22d97a4e2aa7d4c31a1c88abf4a440ba4e2a5e40c4d903ba5ee4d80b4e8dffb8864bcb9806e015c1ce16490068df87282393111
+A = acf70350e554732c1972903cce269b215e985ecb8d6eeaa67fd5398d0a1b57c0db63368c0f8c2288c3a0466e2b3db081106b90920c46462faf00b5bd654f7140a689b78ef656a26b82af8dd1988f166ea04e9aa777a094d892bc7da4bc7bcf0618526f496cddea6d67df7bb0de9e99a35a0b1b210ff07497
+
+Square = 9668b9e40a8bdde3c93943a918ca71fa0009cb05a1f592b2bb2c6c6172b2950719bfd80cddaf45d044cbb6aa99715046088f40ec6812945885679231c07f4200023548ead086b834abd8c8f8294db28b203329553242fd2f778ef5cc5ed0b48c7356d8c2d782a01809ccdb6b012896617f11d963300e7bd38ff512829514d94343476818ddf9d712bc70cffe7f767a9fc75a5630e6250ed45e6831b4660eb49d47dd1b8b6a0dddf3fb3ff0e12834337f145f741f70a2aa43769af50f099e004269ac47fab79e060800dc74da88141adbc46c15c7330931e3a2bed9b958f78b30214f81a64d121f96fbcebf7569fec0cdc6b11
+A = 310e7a40667d9d5dc29744b123cdf6a663a1b995f62fa9d4d853cbae0dd23669f4778bb2040317ebf6a06ac6299b21067aece5c5c1afbe6e789d656745ad66464991cada0eb237c6ffe991cac4670bfc90eed5f8c75073f4f846ea244bca0e9502ff56f8e9bc9b6caf275aaef38e26566fef35329ca45392069
+
+Square = 49e677c8b052b7db97542948542449af47e14248021f8d3d3f92b9af41c803072f71050f16dd848aebb270affc47e85427a7c73f227f0d63f140d0d293157af0d972eb5b38de494fbc78ad3a4c3d1ab40197bc4427752b6102d1ced6d6cbc9d7caa0d1bcc57e708535822180055ecc9d9667e0590274b778480a3720823e931ff6daef358b1a1a9092f1f05fbb5b10ad5707a124e8be63bc696f083eb74e5b4f0e3110de8f297ecd30dfd2bcb010dcad4e387520d3d00365fc51c2a3dfe064b1ac77a9295f66beffbe5dd4333e5cd823b0f36b0b94d66507b1d9381060980f62f38a62e38e5a75203233bb8d64089bfd100f3205f1
+A = 898b5f3655de74cec3b0fde2ab03fd18cdbcfc3eeea48ba39317d26917130c2b78e05237cb0454ece268f091cab699fbcd51ce341b53d6ec0cda5d0d5388bac25c6517214a39d03450ef8502e1675bfe8e57bb6086f10ce4cf8ce65eadc865b5bd8a00dc26394f3adb2ace609149e3582cf44246184b2adc0ffd9
+
+Square = ad00f10fed55175159b2409dc80899f9113ba7c8099d0402ec0f520ab4aeeb46d36369494a4e6fa23675adb38148fd2efa082df5094c0acfb77a9ab6ba7a299298d69b04b58011c35325f46b765e580b5c05eca721904f1fcc355dbe39faa92af5c9a6dbc4ab80e62b815b45983d9506ebd52b9efa7a6b9da352d1e4fd6ffa81d3b4596a0c14fb825297da361461ff2240e4378340d2ae529932d78f3d9f6b3c6d65d717e66122e5f590c50ce0a5d81ad8e0f24e104c0913cd8d0eb2de4c8cf62a7535bab5502df3fba08bb4dfe73d89c8b00edaa7d5f3274be9959e7ab6b6dde54f2491728a1dc11fa8e1c6a95e67eb7617e9b7471ee40
+A = -349cc2a5658fdbe9ba5c350d3b25baa38b1ede01926694bd550d36883e53d8758e8f1ebe83e2f4560605510413a7d880929e2d9cbc2730b1736dc2689cf7bbcdc68a342b6398e547a9bd67cabe298796d76b98ed4c1dd9c22e36145892e8fcf2258529aed24252a70b6ca8fd2aad8a84becf7e1bf98b1e9bb024b8a8
+
+Square = daa3835d3189ec9ade592e6076e76d441838077a9431273bdec02379b3a6ac38aecbbd57c3755ea58ddef8105ac28f2ecc8598ec0c4bfc9c1c80222fffc776722eb0621cdd8a0d55f08767fc2922282a76e529d81e4d6e21a2542b8c9a403709ed1132e3b52786b81e684591438fdddb5df2f0b72e6b39cd2db6c0cc55c759c2dc1b6ccc20a5cfd10c6fd345fc766035c7478570d4ac534db3fdb718e2bdad3d096b137bfc09a562043800957e2afe4fdcfe292881f6189edfce52370c0438c2822ce3b14d73b3eff32f7e5ca97e989326b4e3a8fa35544193f8590bbb0ddb1f914894ab87998090771a0be1fd23917cd792be86ea0b98e6eb24
+A = -ec953f1b7ba7d561edaaa23076987daf86f50e9a66c36f0993290549a9006dd9d424885c0fa77295cfe34fc81c5edce9e2371b3039ea18d8f998d1956196284e6d81eb1c62ecaa8cf3fcaca28ca7e64342803c8dc3c139080bdd4a1ff30d7288b085a579d9e90903bd363b48f2072bb6fbfbd9ba2cab30a8a63784d246
+
+Square = b33f4f3ae453058f4e865ec78f0844bab7af66a97dc2f265ca73ae2232777474bfdda39e10652d7386c16f145272192af728893c3d8a8e92c60d77722b924c30269ff5a399a2449ce15e50320c528c22655ad06227ac4efe5a993179ec61c2fc9115f89d75b53961fd16f7797657f6fbf55662b019608a1d30f64a2c0838e0018b7526921fdd34fd462bfcb2462b7065e2bc7abd57d71371e45dfd8fcfcc00a71f7e45430820747c9a060b72e4f6d2919cbffd00beb0c31a2bdc32afe2cc540b38dd04a2b73ae5ba481a6e535f37a757bbd6aaa972986213afadfa47cb7a15a6f1d443f93cb0ed824a10b4b7d82cae524a096b65ccb39be3c37c07f59
+A = 358da59ef65f62f633675764e292e5a68879df24a4727eca1fc4d232b3a6d936976c92eeb11456b5e8c11319838c145c6529d2f3acc828e55b8274bfe9afb5db241b102715f8e8164e454ef39f13ff1b37cf367a5a66c4f743c750896b7c3c29026e448bb36c6c06b0d9a3d048086ef0c3cd922a02e794223f388b5d646db
+
+Square = cd4246489f6f221f920acbd8bdcdd17f47d2b77268f72254de4190685c123e8c5eab8517fded1852e8316c9e549d3fa355142d91b2921a3c94aafd8862cd2235429340da38a2af131b8d002f17662354f5805f6a7af7afb6dbd2f641036600614cea42bd8b24d86a5109eed29c0865a5f30c5291b1d1ef3223f9b9826dee773d98ce972da92daa19e843f84ca5f1cd77925a3c1117242ab0fb509b94a83f8de4fc8d21f856f37a4d025b3024bd0dbb6d8acfda4ab2993fd6eb7a7448d4f66ec725d37f0eb14eb242c0ff3f0c4572ba6b98a4ce905fe1b7ca3daca56c225171428c56af938fb66b37e99e54139157bbf41f536989ef813af738837afcd62290
+A = -e53ad05c88568f09f616797f0b7f2756fb543d691ec2a5b645c1e5892a247302826419a35b1348cfd2c1c569c23c31b4c46d6c57d4a488c29ab5beb77904d4adfcd0a01ea0a26bb0cc8790441cc2c8c900f030d7315b4319f1a3cf5685a140e03abe6b94730ad79e8de1f4a0cded86a3d6cfe2db267fa7dc9b2bb32872a90cc
+
+Square = eea8028b26e0df090504d54da714a6f5f2695202e53cff479c78aedd47a8dc676243ec586740fde53b3eca9ca02b91031ce766242184109503fbe25b1b6d318e3cd5970fabd16dfa22984dd2e9f1e0f14c189170fc69c031d66663703e6235a942d51a4545bd7b0769d01d302ce2b00b83f01568a1e378f61fd0ca6201b0490330580cd9de85719e174a71915d7efbf65cd73d8f4e66f27e0dd3144d58ec09ed0f7ed7d1238ee596922807100fb7a11127944ddcdec6a9ca3bbf6df7301e354f3f049bfb7c275b43c3d8cda5907a932fba507c9145ea3166081c1b48fcc710ee32cd931f936c796b14f8a78a592e67753a7c9e428a01719c8ba82652f3a89fae110
+A = -3dcb44be1e54c5a5d7db48055ca9afa1ebe2ae648aa6e16ac497502a7deee09ffa124720fad0ab163ce8b3ea6a90f110ea52b67dbc424d0cf1e8c9726dfd9e45bebcefaa5cd5706edeed27896525f31c6bbea3d67ee97badefabf3e2532470b66e3ae3100f66ddf50cf02fc3a8e3f44c304251d3b6a7ca3a6e4bd5d16a41bd97a4
+
+
+# These test vectors satisfy A * B = Product.
+
+Title = Product tests
+
+Product = 5befab3320f8f90542f3120235abd926aac3805a19e343f690
+A = b057af553afb120db6b7764f8
+B = 857734c4c27a1d17f7cf59dee
+
+Product = -ab1ce167f4b2945c55ae3f87df50ad07d4be87cf9f8aa07b0c
+A = ae7a6a87ea8981a567d0b3ecc
+B = -fb0fed5f8c737bcacef4d6cb1
+
+Product = -c2606cd48e6b075c8da79eb4668e7157f1f175c2860fd4c475
+A = -c28dc31984d4583e9d45424c3
+B = ffc4581a5c3f885cf42767e67
+
+Product = aa6805b5408aff7f914472756da07830dcad902834dbdd6944
+A = -ffa07ff9f503511954e5dd3f9
+B = -aaa7af472ad8957763f5a7c64
+
+Product = 58ca2569173389df29b5ce4b784086055dee821a7243db7210
+A = af417d936f4690008811a1ae8
+B = 81b26b80b43aa65aa55ded52a
+
+Product = -a043d31dfce8bd01724d31c863d0a64f1bf013509d77737c42
+A = fb5fae5edefb6997d44a1ecd6
+B = -a336e50c6f7845a1686cc88a3
+
+Product = -b5d6a45ffce851b201239d938ba551bab7dcb59fc11fc35fce
+A = -f918faa58bb57a2ffb8b01f05
+B = bae08c3006fade695029a1df6
+
+Product = 6f2fde7d1a18625d727c6345ed85e597d546d9228bf7f0564a
+A = -8d108d7a16f0696d4ceb24445
+B = -c9c764cae465207097ef8d2c2
+
+Product = 93808b1140841dc9735cd61c6f855ddbbb83066689b0d7e1a0
+A = b386d08daf3fa2154e9c768d6
+B = d2557dceb2d02d04d9c578670
+
+Product = -ad04212ca8cadb1f7861c5130ba3a747046a2a7e4a0c72b69a
+A = e4e5f7d1311e0c5f2e404d55b
+B = -c18057a328d8c7375afdfd4ee
+
+Product = -685e75c232f2b4a0e455fe5ee8aea52f292ad8b8178320e692
+A = -a683312f132b2320632e74ef6
+B = a0758f12791453b4af354730b
+
+Product = 6f588c53185c503dc5b0dc3002d3817ca2e7eb2370b3e9a647
+A = -d70c9b93170261091f0c53f27
+B = -848c86c51a186ac4c9080d3e1
+
+Product = 5e3bc5a04e054a9a244bf7c86cae215072fdb70e9199989427
+A = 898b64ef09d7cf63966e1a3b5
+B = af638b12f26aa5d12e97439eb
+
+Product = -8d8372b235b16108285203c03a8aef6fdd3c0e1a9fd31d4f68
+A = f6003dc83818c14fbe36c9998
+B = -9343f6cbcc81fa4c9399dce5f
+
+Product = -5ee6509abeeb7af7fc5caef40d1822ad3150c8d74f522dc7c8
+A = -875ff6f56ca72cbdf614bb9ca
+B = b375a68a21dfb1f159c22fa14
+
+Product = ada25be404a17385af5a330da799e5909da81bfa0715baa6f4
+A = -c9b8df392e76abc3eb7d5ce04
+B = -dc5ab818c70594dd917b4243d
+
+Product = bb24422ee4656ddfcd50ec38201b15baf679d3b75e5cb878ca
+A = f8e12cf4defe388b78510f687
+B = c07ee817b4ae95c2915b88966
+
+Product = -93da296ba164c7220a17330647aef0980c94eddd2cfa2a3b2d
+A = bc5dc74ddf7a1363d1c2b1f25
+B = -c8f069bad7f93cbfe6df51169
+
+Product = -6b2e1d132c4e0b0dc9b7e7de7d424fda5180480cb5ff47c755
+A = -a8048acb66a8bb88df39266e7
+B = a34e0b265d71435ae8c92a463
+
+Product = 6ccb2cd93783576a8602ae43f41c786008b6623a4cca0a010a
+A = -b071f1f54790c951c1dd2a1cf
+B = -9dd89bb4d9b546207e282e2d6
+
+Product = 5c742ba47d0d64bd97509927ce957deedb855766cc24c60016
+A = b44f3f252c368096fa62747f2
+B = 83439b97dbac579fa4f7b7d23
+
+Product = -7347ba65691c913286c2fb55e45b177f031c1d86ae0e9f654f
+A = 937cf0643ffa53cdea24d642f
+B = -c81881f78243dd5737a7d28e1
+
+Product = -9bc0649a703674e59f83ff9b8a560e5cbf51f65ca310f80f95
+A = -b536f8d9769be6f62da941ae5
+B = dc0746fb101881ae0cacde6f1
+
+Product = bf4992fc3a124de350f9fb90ea825cf663b1fa051282ef22e2
+A = -ff7eacc7de1bb01d668c693aa
+B = -bfaa6627f9fc7ba68ae41bb2d
+
+Product = 7c8992d34cc0b63f1c953f68d4e12a99d3f3a34d16bd76caa9
+A = 9e0d5a850d078890a983c0ec9
+B = c9b72c118b3e1f1023a696ce1
+
+Product = -a75840c95082b9a0ae0d6e0a4eb5e09288e4e2a66e9697d9cd
+A = b2b042a21045a74ef1a5091d9
+B = -efbf8b120b384e869692a1b15
+
+Product = -a510b333bdb4ed7479c142e8fbe2b12f7671a42acbe16c0998
+A = -e7fd5e0bb5496b9d876c27f65
+B = b6262653b2be44501af1d85b8
+
+Product = a1c1e90afc4684754155526e307fc6ed798746f347bae2c880
+A = -b84674832b26ded0a690a8ff0
+B = -e0b7bdf2fd05a038ed3640b78
+
+Product = 5588e0c33bffbefcc5695ca0615abd383343f21a8a0d22b222
+A = 80cad81ad9a66ab6a1c2e5669
+B = aa0453a77c8af1584f54750d2
+
+Product = -6460c2fcd6cf3304ab163ea883ac48e2031cd10f2e9014c0ab
+A = c49ad3d7c8848d4fbf913b10b
+B = -82b3dedbe3cc7cd532ad632e1
+
+Product = -a18717330b711669e85abde8c4dce426529aa621ba3da2a477
+A = -cab4a9c0a331a5a5e826dda1f
+B = cbfee5041c13075dfe3399aa9
+
+Product = 8ab6282ee892b53c083d319a9dcab48af97a1ac8493c0bfcad
+A = -f7d13e47f9aaac8c25f9bf75b
+B = -8f4aa95231c1e2336aa092297
+
+Product = 8f2d1c23c78777ed371f13155445ca3c88cbc0a9b299bdf9d3
+A = 9d8248d00defce1ad081337c3
+B = e8b479295ecd9cef7301f24b1
+
+Product = -86d5e0c5b581fe59819730b4b71e33d1f85f9ab504c7dbe2d6
+A = b21b45e88acff48562a19729a
+B = -c1cdfebccc763beeac394b997
+
+Product = -484ca05aefa113bdfcb1bc623f730c9f9555b462a8ab4c9606
+A = -8c12b406c02c4417163c0956b
+B = 8422b15c80c1c087b17eedd92
+
+Product = 614c3c91f60050c785fd229a3ad74674577a90cacb654e0a5c
+A = -93d45bce155a23a397506d96a
+B = -a87e339c3fd5aebede5fb1b36
+
+Product = 9683285f194a7e4feeab196a36bdfc4f828035fd184b9cc692
+A = f196d8fe760fdcae7eb60e2f7
+B = 9f7d88a2163ad818bf3a6377e
+
+Product = -988a64599c19cc64f3cadc1a83fea6550185f6cc3ab82af822
+A = d0584b2a306671e4d2c9d0c7b
+B = -bb6e7559df199c68d6df3a3c6
+
+Product = -68456814cb0edd951196d04c853172afdd5787a5bd69a57876
+A = -cefce1b0a1fb22862418bb597
+B = 80f614139947aea5e76cd55fa
+
+Product = b4b1cbf5d6566e7a57aee0cc5c9c8ec4ad885e8766aa7662a4
+A = -d68ed1bea046c6cad057e21db
+B = -d7988b9be54f6e332d019032c
+
+Product = 6b09212675ff5257a1384371e17b37dcc268bbb141577902e4
+A = a8208053adc20a609d5d01404
+B = a2fa927c5458c4fe662d7a3b9
+
+Product = -8361bc26f9bcf55f677e047d822d3004027da0d0455b244d10
+A = e82b6410b29020c2d6810a977
+B = -90ddfe0e7f0d6b9cdc0815f70
+
+Product = -f1b6da00923fd513a83e32040a515649fbd362f69ebc016d9f
+A = -f9b697d9ec774a8d1ee5ea905
+B = f7ccb46a8869cb028492bed53
+
+Product = d06206963f2e150bacdb32c823c3a47f013d5a267c3c0d0c88
+A = -ea8e63afa99c719897ad7f2ab
+B = -e36f11f55b6148d1b4f46e598
+
+Product = af774a5eae6084df5ca499ef005642730adabf6a4f9533e2fd
+A = e4c7af7eea3ec9cc2443b7319
+B = c457bc264c8461789931baf85
+
+Product = -76350f428bfbb95e6c253ec0f457aa84cebe8c7cb1af2a2120
+A = 8fd1ff97465775d44dee58ae0
+B = -d268a7d328f44baf80e35119f
+
+Product = -787ae3f114f9a8dd4d249d5d3f3b0897b02564b9469416cefe
+A = -bc0b398bd0ec045b0cf147b7e
+B = a4050955c234e473257d0c641
+
+Product = 9d6320b3d4aabac097a079b9bd2aca7f1898bcab0f23409fd0
+A = -9d7a4ebac630cc0662b816fb5
+B = -ffda517d3eb3214986b04e290
+
+Product = 80bab8bd800ac8c9dc3bb57dca306f10af6fd88c5d8314833c
+A = 834bc50140d6c6ab938dc58b6
+B = fafee47793cbc533b3c66af3a
+
+Product = -b08920f5922226b1dec87151ae087d8a7e5c1aea8c9be148b6
+A = bfd5b1ad323c79428cb2db36a
+B = -eb956a10edebdd658e6810fcf
+
+Product = -6d428e08e8350bb4b0fae3b662c82df2aef7beadaa17430dbb
+A = -a57da276998c548101f514e9f
+B = a9040c1909712e1149d295765
+
+Product = a57da276998c548101f514e9f
+A = -a57da276998c548101f514e9f
+B = -1
+
+Product = 14afb44ed3318a90203ea29d3e
+A = a57da276998c548101f514e9f
+B = 2
+
+Product = -295f689da6631520407d453a7c
+A = a57da276998c548101f514e9f
+B = -4
+
+Product = -867614005cc204a8d19720fe13
+A = -a57da276998c548101f514e9f
+B = d
+
+Product = 12bf3b676f64e5929d38c35e803
+A = -a57da276998c548101f514e9f
+B = -1d
+
+Product = 24d8f92c68303ed0b96f91a8167
+A = a57da276998c548101f514e9f
+B = 39
+
+Product = -49b1f258d0607da172df23502ce
+A = a57da276998c548101f514e9f
+B = -72
+
+Product = -6fd5e6ca25c3d51b2e529f22173
+A = -a57da276998c548101f514e9f
+B = ad
+
+Product = 1276d4705b81b82da4c7e82559d7
+A = -a57da276998c548101f514e9f
+B = -1c9
+
+Product = 1ddb9abfc5d4017f068a67b5f4fd
+A = a57da276998c548101f514e9f
+B = 2e3
+
+Product = -3a8b41c914b1b4a4e341433601f7
+A = a57da276998c548101f514e9f
+B = -5a9
+
+Product = -97c0f4ba414d6e7d4c8b7ced84d4
+A = -a57da276998c548101f514e9f
+B = eac
+
+Product = 1198739e0c23639c176d46d13f7c8
+A = -a57da276998c548101f514e9f
+B = -1b38
+
+Product = 159150954ee0dedf541e4dbac0ec3
+A = a57da276998c548101f514e9f
+B = 215d
+
+Product = -441d4bc44c86f02ff12c3d91a1562
+A = a57da276998c548101f514e9f
+B = -695e
+
+Product = -64726b76005ebee27592237ba5dde
+A = -a57da276998c548101f514e9f
+B = 9b62
+
+Product = bbe4ec7cf7c5bbd198e0ea86bb658
+A = -a57da276998c548101f514e9f
+B = -122a8
+
+Product = 21f717d05681fd2eb1796776a69ef7
+A = a57da276998c548101f514e9f
+B = 348a9
+
+Product = -396ac788a1748bc6955f99be4d2c64
+A = a57da276998c548101f514e9f
+B = -58d1c
+
+Product = -54a213eb083aed1a04f3d1b2da62e7
+A = -a57da276998c548101f514e9f
+B = 82eb9
+
+Product = 1366fb9c20fb14b8b9a9be4b3e3dde1
+A = -a57da276998c548101f514e9f
+B = -1e037f
+
+Product = 238d65fd26da4733e5d93ab2485d40b
+A = a57da276998c548101f514e9f
+B = 36ff15
+
+Product = -38272a99be154d531e922be405aee9a
+A = a57da276998c548101f514e9f
+B = -56dd26
+
+Product = -64651b62b6a454c08951632c7f2c398
+A = -a57da276998c548101f514e9f
+B = 9b4d68
+
+Product = fb272e3597b816144f8b945ae6130e0
+A = -a57da276998c548101f514e9f
+B = -1848320
+
+Product = 280d9f5ed7243712ecb9a7c6358bcb8b
+A = a57da276998c548101f514e9f
+B = 3df5795
+
+Product = -2fbb6bb8e1ba78cefc47fbbc20e188ee
+A = a57da276998c548101f514e9f
+B = -49d6652
+
+Product = -57f29c13691ffa1642d2860dab9d288e
+A = -a57da276998c548101f514e9f
+B = 880c2b2
+
+Product = 139c19d7668e6aabf2d7206cb0723ed34
+A = -a57da276998c548101f514e9f
+B = -1e55aa4c
+
+Product = 2950ce04bf0cf836d4fe94b88fb757d0a
+A = a57da276998c548101f514e9f
+B = 3fe968b6
+
+Product = -5175239488dad05a58414251496d2a06c
+A = a57da276998c548101f514e9f
+B = -7e020414
+
+Product = -945ff0ed38bc6020cf679cbd3e0758c6d
+A = -a57da276998c548101f514e9f
+B = e585e573
+
+Product = 11c69ae98f6b27e95477986f796bc67c8c
+A = -a57da276998c548101f514e9f
+B = -1b7f653f4
+
+Product = 209afe75e8fb5ac76d13c06b545f5d4d73
+A = a57da276998c548101f514e9f
+B = 3270154ad
+
+Product = -386d64b215e41506514f4988ed237e4da2
+A = a57da276998c548101f514e9f
+B = -5749c891e
+
+Product = -6c13cccdb1d140d0babd52707ea72fa278
+A = -a57da276998c548101f514e9f
+B = a72fb6288
+
+Product = 136228a8a45540372b9b3cd7f82021f6546
+A = -a57da276998c548101f514e9f
+B = -1dfc08a2fa
+
+Product = 1f0ad3babf9d132eaa08cf5cdb8f19dbf01
+A = a57da276998c548101f514e9f
+B = 30050f2e5f
+
+Product = -50d615ce183258e95af77319b766fac81e2
+A = a57da276998c548101f514e9f
+B = -7d0bf92cde
+
+Product = -817d358293b86a56a4e881e50257c549471
+A = -a57da276998c548101f514e9f
+B = c84efb12ef
+
+Product = f09b9e80be251de474d726b16e25a6865fc
+A = -a57da276998c548101f514e9f
+B = -1743322a484
+
+Product = 22996cb0f9c60e35dce49f3825f8a479db26
+A = a57da276998c548101f514e9f
+B = 3585acec11a
+
+Product = -2b307a37c91791a61c0691858f5f783e4678
+A = a57da276998c548101f514e9f
+B = -42cf6be3e88
+
+Product = -8826698fcba6c30d755fc523de1cc25301ae
+A = -a57da276998c548101f514e9f
+B = d29cc8af592
+
+Product = ae37fc99fd419809310782714530d7428d77
+A = -a57da276998c548101f514e9f
+B = -10d8059d4a29
+
+Product = 1d544a20f9bc7d95ab67d1f65743979f23bba
+A = a57da276998c548101f514e9f
+B = 2d5eadef1c06
+
+Product = -367897184e9929a0294d320f10278889fbeb7
+A = a57da276998c548101f514e9f
+B = -54431582d0e9
+
+Product = -943a509076a00060a2e7fa1cddb7468d734a1
+A = -a57da276998c548101f514e9f
+B = e54bb102f4bf
+
+Product = fcce6e42879af5ad13545c0bcaab85b690cea
+A = -a57da276998c548101f514e9f
+B = -18711db522cd6
+
+Product = 258c49f86d0cbb14ae9edbd3456be8cede2022
+A = a57da276998c548101f514e9f
+B = 3a1562c7c269e
+
+Product = -4a8bbce59ad7daa51136d557f7fa16e9a2faad
+A = a57da276998c548101f514e9f
+B = -7350e780b0f33
+
+Product = -82f53ec9333275d5cc271876a7db936db49280
+A = -a57da276998c548101f514e9f
+B = ca94ad312dd80
+
+Product = 11daee4fcc713db5b2806e47fa5dff3b5b770eb
+A = -a57da276998c548101f514e9f
+B = -1b9ed6758f9635
+
+Product = 17038cac4f0c94dc24985ea108ae6682e175752
+A = a57da276998c548101f514e9f
+B = 2399b8a9b1116e
+
+Product = -37e5f14394bf347a3ed061769fe8e6424af4348
+A = a57da276998c548101f514e9f
+B = -567840a7569fb8
+
+Product = -9253d4a32a88d8f725984514d969012ead7cc9a
+A = -a57da276998c548101f514e9f
+B = e25b246f733f26
+
+Product = ace3648371c16a931d29004e79f5b9678391da5
+A = -a57da276998c548101f514e9f
+B = -10b717b27b6a13b
+
+Product = 1faa5b45d04c143c339b09d3aad94d39b94ef960
+A = a57da276998c548101f514e9f
+B = 30fbd672e106aa0
+
+Product = -3fdfe246d27aae0d08d63b2bc501461d2bff3b8d
+A = a57da276998c548101f514e9f
+B = -62cef5f078a8253
+
+Product = -5b792bfaeff04ee3d948cb343a249d49eb344f57
+A = -a57da276998c548101f514e9f
+B = 8d805ac65649c49
+
+Product = c5f824406161eec321da5a58e3e00d393b55abe9
+A = -a57da276998c548101f514e9f
+B = -1323dd41d2e1e077
+
+Product = 2226dec8a57be8e84e42559007e2d101ccbe67f8d
+A = a57da276998c548101f514e9f
+B = 34d47842b5d0be53
+
+Product = -340f50f812c7420b502000940788a700f6769788a
+A = a57da276998c548101f514e9f
+B = -508836d8e1193d36
+
+Product = -a00f1d96e19c590479625c5329a87774b5964cc78
+A = -a57da276998c548101f514e9f
+B = f798fc858657f888
+
+Product = cb94f830cba8997331912a6a31c34f1bef826d121
+A = -a57da276998c548101f514e9f
+B = -13aec7a5c52a0883f
+
+Product = 16b45140b048d6dc0b9fc811df7ce7dd88357fff04
+A = a57da276998c548101f514e9f
+B = 231f27f3e347bd67c
+
+Product = -2aa94179351b4e87de5849ab619d94f47450640199
+A = a57da276998c548101f514e9f
+B = -41fe3ec2189599cc7
+
+Product = -5489401d3da93158d4284e557d74016c0a7cfd935a
+A = -a57da276998c548101f514e9f
+B = 82c5281df41bfc066
+
+Product = ae04d5b212ecfc9a6d7df07794d565df52991fb70e
+A = -a57da276998c548101f514e9f
+B = -10d3139229f5d02432
+
+Product = 27821bc811f45d63089790b41d307be978d4b19564c
+A = a57da276998c548101f514e9f
+B = 3d1da85cc012b3e234
+
+Product = -3de3c9e9d7fa3020a578706339314890dccf63096c2
+A = a57da276998c548101f514e9f
+B = -5fbcfb28bfc9044bfe
+
+Product = -627dcb299a6720044abcf11469bdfd3f951edbb5bf7
+A = -a57da276998c548101f514e9f
+B = 985b930517b78e6ba9
+
+Product = cc0622441497a37fddf1856d5e2c99df52b99ea4573
+A = -a57da276998c548101f514e9f
+B = -13b9b88948fb7e95cad
+
+Product = 1a5168e1a492210591ad1ed660adde9110390e4caf32
+A = a57da276998c548101f514e9f
+B = 28b631c6e04b6ab0d8e
+
+Product = -4d8ec27b7460ce616421b9f5cae708c2ac241daa59b4
+A = a57da276998c548101f514e9f
+B = -77f99bdf1eb09da6dcc
+
+Product = -55afd796db7bce822a00073fc8926d3bd0c79772f036
+A = -a57da276998c548101f514e9f
+B = 848cdd6212b9bb3620a
+
+Product = dc494b0d73e8ec07cd2bb6dd8191d2b4d48e7700cc34
+A = -a57da276998c548101f514e9f
+B = -154c39567bd8be5f6b4c
+
+Product = 240e9301b4345b914ecd91a49a0e651524dcecb6fdc6c
+A = a57da276998c548101f514e9f
+B = 37c6e7ee89cf87674814
+
+Product = -39002ecfd6d96661b336157ccef6536756ad2e9219be3
+A = a57da276998c548101f514e9f
+B = -582cdab09915a652203d
+
+Product = -695f49fc891d53f396f0593efae3973082b76d4f9e944
+A = -a57da276998c548101f514e9f
+B = a30074dbce2246af043c
+
+Product = bba2b7b45b97cb0d7fb30fed95089870742ad69e7aed7
+A = -a57da276998c548101f514e9f
+B = -1224195afc7b394ae8cc9
+
+Product = 1910edc278515ab7d4cc09b496dc3c06c32c75bc7368af
+A = a57da276998c548101f514e9f
+B = 26c6701c39334169e7bf1
+
+Product = -3670b7f9b661aba35ce50984d83173c84c8fa60e04d100
+A = a57da276998c548101f514e9f
+B = -5436e84b4a29858a68f00
+
+Product = -7fa0d3e0082b37475342b7e22e5dbad7b8d4cb5d64f871
+A = -a57da276998c548101f514e9f
+B = c56e0f44fc63bca242eef
+
+Product = da7fe3367ce640fa5941c033ac1874312f10ba5950da75
+A = -a57da276998c548101f514e9f
+B = -15200043166ff309f0426b
+
+Product = 1871d72481f66b1d413100edd6b339cbbaa67b3b2b3cd57
+A = a57da276998c548101f514e9f
+B = 25d057879db26fa29a5e49
+
+Product = -3cf1dd1e2df3456757d72f35353c3c7a659b2ef844ad857
+A = a57da276998c548101f514e9f
+B = -5e46be70de21949df67349
+
+Product = -5e861cbe47aefab2a7ea59292aab1258932b9a322f66e63
+A = -a57da276998c548101f514e9f
+B = 9238670897685a6c9cbdbd
+
+Product = f623344788efb857db55c924e95a437effa4dc8bb2bcd24
+A = -a57da276998c548101f514e9f
+B = -17cc0ec84c228225a7cf45c
+
+Product = 15514c916b0ae7cde6add16c629d3e19ba52a101d75dff72
+A = a57da276998c548101f514e9f
+B = 20f9f925b3ed307edbb154e
+
+Product = -460cf5b14f9d0b547c3084bf44207bf881745c409b08d07f
+A = a57da276998c548101f514e9f
+B = -6c5cbfd29f3dae1dce99221
+
+Product = -5ddf7fb91d765af97dfda5333d8779e80837c2b51cfb4f43
+A = -a57da276998c548101f514e9f
+B = 9136aa79080defd1bcf90dd
+
+Product = 12c1a0edfb6ab6a0caae2553fb3743827e1470a8954e0a3fd
+A = -a57da276998c548101f514e9f
+B = -1d03b512470dc3052779f3e3
+
+Product = 28388a244214abf046488a8d95308d95f021eae4b994a5a52
+A = a57da276998c548101f514e9f
+B = 3e37dce784274962ff862e6e
+
+Product = -4da476e76119deef291c0f56934a912a0877278a19a561ee0
+A = a57da276998c548101f514e9f
+B = -781b2f2dc40094a7f8fed520
+
+Product = -5792496d33dd45e225f9dfca17419a04e075ffc0c90b37b82
+A = -a57da276998c548101f514e9f
+B = 87772a4fb582acafd3e4ef3e
+
+Product = dd3a3506a7d748de16fb43d666928a87de0354d8e8a1bcaaa
+A = -a57da276998c548101f514e9f
+B = -1563841bf7851ff158a395716
+
+Product = 24e8fb09a9ab0808ff643122479dea5ed41060c6c5b74e8752
+A = a57da276998c548101f514e9f
+B = 3918c30b5568318a58e9be16e
+
+Product = -366c125f96b38b58d01c939c27c4100af3377eabb792b5491a
+A = a57da276998c548101f514e9f
+B = -542fb814f45924aa09a16f2a6
+
+Quotient = 0
+Remainder = -1
+A = -1
+B = 2
+
+Quotient = 1
+Remainder = 0
+A = 8cdaaa7c422f3c2bb0ace2da7d7ff151e5bdefb23e6426cf3e6b21491e6e80e977bfa6c65931a8dee31fc7992c0c801d5d7c
+B = 8cdaaa7c422f3c2bb0ace2da7d7ff151e5bdefb23e6426cf3e6b21491e6e80e977bfa6c65931a8dee31fc7992c0c801d5d7c
+
+Quotient = -2
+Remainder = 1
+A = 107f0e6cebfe22ac11294a06fed2b994d01c9b3610d50bdd254adafd08c93be8ebdd1e85e1286fe9c9e682a90cbbd6351681b
+B = -83f873675ff11560894a5037f695cca680e4d9b086a85ee92a56d7e84649df475ee8f42f09437f4e4f34154865deb1a8b40d
+
+Quotient = -4
+Remainder = -2
+A = -3d8746ae2123c2d3f1d35910b42af1f86f5e81f8e98986cea20b2a1bdb8af6cf111f1258f112c837accdf4868463fe9eba536
+B = f61d1ab8848f0b4fc74d6442d0abc7e1bd7a07e3a6261b3a882ca86f6e2bdb3c447c4963c44b20deb337d21a118ffa7ae94d
+
+Quotient = 8
+Remainder = -3
+A = -5645d65662eaac73050de06f8f982a9b2ae680467712284be3e2b0e58ef4bf4d72b5be5e12ee1fd803b47f161759662ff5c4b
+B = -ac8bacacc5d558e60a1bc0df1f30553655cd008cee245097c7c561cb1de97e9ae56b7cbc25dc3fb00768fe2c2eb2cc5feb89
+
+Quotient = 10
+Remainder = 4
+A = 813bc46ee19ffeab364073a89f96913f340d43ee72129ea9edac1beb4ebe1336450d2eabc7b26e51c400cec60d6ee459033b4
+B = 813bc46ee19ffeab364073a89f96913f340d43ee72129ea9edac1beb4ebe1336450d2eabc7b26e51c400cec60d6ee459033b
+
+Quotient = -20
+Remainder = 5
+A = 12805392c55ffa0e27e85e15f2b339872793664e9ed3074cd2600aa52459a57197130d1ea46775ef43115c9413248cc7b34805
+B = -94029c962affd0713f42f0af9599cc393c9b3274f6983a669300552922cd2b8cb89868f5233baf7a188ae4a09924663d9a40
+
+Quotient = -40
+Remainder = -6
+A = -3579fc4d6083394c691b060cf9e20318fe17da0487337f76710bd11512578830ba94ac7b587a2d5ab7cb4afe611e349cdcfb86
+B = d5e7f135820ce531a46c1833e7880c63f85f68121ccdfdd9c42f4454495e20c2ea52b1ed61e8b56adf2d2bf98478d27373ee
+
+Quotient = 80
+Remainder = -7
+A = -74ebad4b39ebaaff82cd91082408c979527907c363d8f0f75db410523f8477c074c45ff85851b6275b1ebc5279029818e78d87
+B = -e9d75a9673d755ff059b2210481192f2a4f20f86c7b1e1eebb6820a47f08ef80e988bff0b0a36c4eb63d78a4f2053031cf1b
+
+Quotient = 100
+Remainder = 8
+A = d2d8a4419fb3b1c22bfca04ca08c2ee066ccbc9fce2f41861b5eef91efd3c13eeb7eae5abea0ef1849662cfdfef7bbff892c08
+B = d2d8a4419fb3b1c22bfca04ca08c2ee066ccbc9fce2f41861b5eef91efd3c13eeb7eae5abea0ef1849662cfdfef7bbff892c
+
+Quotient = -200
+Remainder = 9
+A = 1bf534da2f4365c96fc5dd4928e73ac24b157b5136ead90cf6596033ec387a2c14bca828000ae1725f3a5ace8ad67a8c07a0a09
+B = -dfa9a6d17a1b2e4b7e2eea494739d61258abda89b756c867b2cb019f61c3d160a5e5414000570b92f9d2d67456b3d4603d05
+
+Quotient = -400
+Remainder = -a
+A = -3a172cc9483774544311a1366659d9e61cc9fac7dc11c68e36aa991ef4d5e96becf5bac3e0967c904d926617ea11bb9551b980a
+B = e85cb32520ddd1510c4684d9996767987327eb1f70471a38daaa647bd357a5afb3d6eb0f8259f2413649985fa846ee5546e6
+
+Quotient = 800
+Remainder = -b
+A = -5ecff3a3e47fa615b6e3ce2dedfdeefbfe1d437c394631820968a9650b59dc3a2dd1c9a0b06537e4e5c408a59e580921503580b
+B = -bd9fe747c8ff4c2b6dc79c5bdbfbddf7fc3a86f8728c630412d152ca16b3b8745ba3934160ca6fc9cb88114b3cb01242a06b
+
+Quotient = 1000
+Remainder = c
+A = d3ef80fca0ab3ac3432b22e2b485131d816810c39d02a9c82dcc05ec5e6406bc216026de3abe53ab103ea3b2ddbc2ea377ae00c
+B = d3ef80fca0ab3ac3432b22e2b485131d816810c39d02a9c82dcc05ec5e6406bc216026de3abe53ab103ea3b2ddbc2ea377ae
+
+Quotient = -2000
+Remainder = d
+A = 163956bc32325f28f48d41d32bb08d2a9c4ccbb0d818368fb13941e82b27da21d04094f7e897ce79c2d0ff8470505f1ef63fc00d
+B = -b1cab5e19192f947a46a0e995d846954e2665d86c0c1b47d89ca0f41593ed10e8204a7bf44be73ce1687fc238282f8f7b1fe
+
+Quotient = -4000
+Remainder = -e
+A = -3763f8e43bd05e6ffeec6d509bbe6ff9a9022ced8cb191c9abaf5fd0e0b75a53e2ad581455e3af09e702a77b164ed3fb54ae000e
+B = dd8fe390ef4179bffbb1b5426ef9bfe6a408b3b632c64726aebd7f4382dd694f8ab56051578ebc279c0a9dec593b4fed52b8
+
+Quotient = 8000
+Remainder = -f
+A = -531dd44dfa9e79a5aec8fa7c84bd3b753c146770d22d2c14a6d2125f7ab95e9b320e84c31cf3e0d883e1295a220f2a546550800f
+B = -a63ba89bf53cf34b5d91f4f9097a76ea7828cee1a45a58294da424bef572bd36641d098639e7c1b107c252b4441e54a8caa1
+
+Quotient = 10000
+Remainder = 10
+A = 900996b61f58713f0755e68bbdfa4e0bb47f034bb0304f77829847923d14715def1771f43b526c41b9667438b434d2b966c20010
+B = 900996b61f58713f0755e68bbdfa4e0bb47f034bb0304f77829847923d14715def1771f43b526c41b9667438b434d2b966c2
+
+Quotient = -20000
+Remainder = 11
+A = 179d7ede3db0c105525286551331d5b9e1f97a7883f0c13cf250afe9765bb5aaa527af7945c19cdd4596565cbc8532a3cfa5c0011
+B = -bcebf6f1ed86082a929432a8998eadcf0fcbd3c41f8609e792857f4bb2ddad55293d7bca2e0ce6ea2cb2b2e5e429951e7d2e
+
+Quotient = -40000
+Remainder = -12
+A = -293dc443c294c6a6c53dd49e84f58305d59a432afb6c7ea2039cd02a513231239571ae07f29b5427e869b9faa485511ca45980012
+B = a4f7110f0a531a9b14f7527a13d60c1756690cabedb1fa880e7340a944c8c48e55c6b81fca6d509fa1a6e7ea921544729166
+
+Quotient = 80000
+Remainder = -13
+A = -5b637eb8aa51ef15a18d9b144031c9756527fc0fb96c84b6df03700e5079ae1b3e96940a2c1e07f3b47ad8a9b2b8ca99171a00013
+B = -b6c6fd7154a3de2b431b3628806392eaca4ff81f72d9096dbe06e01ca0f35c367d2d2814583c0fe768f5b153657195322e34
+
+Quotient = 100000
+Remainder = 14
+A = 87c846f5469d4c5819aed0c7e77797209b2c1b83a7a0e2be70280b9f30946b5db9bd0f25a06cf4bdba1c7183a1b9eb75c19400014
+B = 87c846f5469d4c5819aed0c7e77797209b2c1b83a7a0e2be70280b9f30946b5db9bd0f25a06cf4bdba1c7183a1b9eb75c194
+
+Quotient = -200000
+Remainder = 15
+A = 11c2a4509f419aa977c3d37fa446fcf21b4b3b9f983fbaddeba4f51c285ac4032200711a54cc6edf24297b1f3d46ad020131a00015
+B = -8e152284fa0cd54bbe1e9bfd2237e790da59dcfcc1fdd6ef5d27a8e142d62019100388d2a66376f9214bd8f9ea356810098d
+
+Quotient = -400000
+Remainder = -16
+A = -39e37ae0edd92b957e84682358039f5e432c42492a44f3de01cdf74d643760260f2837946608663e12291e9b0695449c1153800016
+B = e78deb83b764ae55fa11a08d600e7d790cb10924a913cf780737dd3590dd80983ca0de51982198f848a47a6c1a551270454e
+
+Quotient = 800000
+Remainder = -17
+A = -72f725edd5a3dd6f20b5e9ca7da08a99f8ec9214c80588182c0d42e03bcff34b488b28c03cdf41813a6193c10672a8ee68f6000017
+B = -e5ee4bdbab47bade416bd394fb411533f1d92429900b1030581a85c0779fe6969116518079be830274c327820ce551dcd1ec
+
+Quotient = 1000000
+Remainder = 18
+A = 966df62c26acab2d3d1dbe729e48d0181c68e9f5eba45f6caefa38d60e34057d09fe620abb8640cec8cac755957aaad7c6fd000018
+B = 966df62c26acab2d3d1dbe729e48d0181c68e9f5eba45f6caefa38d60e34057d09fe620abb8640cec8cac755957aaad7c6fd
+
+Quotient = -2000000
+Remainder = 19
+A = 190790727c1514b4ef83a1c6aa07493c0af7087fbc8a675bfd9a1e97b8ef80ef684219d6c6f1a5fb5b919f105fd7717cdd5aa000019
+B = -c83c8393e0a8a5a77c1d0e35503a49e057b843fde4533adfecd0f4bdc77c077b4210ceb6378d2fdadc8cf882febb8be6ead5
+
+Quotient = -4000000
+Remainder = -1a
+A = -22d115ab02f8663d8c009960086a0275d301d358cd3b250bb9e7c16cc6ebed4a8fbe43bbced856d93be64a17377d95f5f9c8800001a
+B = 8b4456ac0be198f63002658021a809d74c074d6334ec942ee79f05b31bafb52a3ef90eef3b615b64ef99285cddf657d7e722
+
+Quotient = 8000000
+Remainder = -1b
+A = -41f2e708ba47494a13607223b08e6d99c0b4247436632961d873804e83446dc97139ffaef3e25969950bd4b5bb4ff73b1a25000001b
+B = -83e5ce11748e929426c0e447611cdb33816848e86cc652c3b0e7009d0688db92e273ff5de7c4b2d32a17a96b769fee76344a
+
+Quotient = 10000000
+Remainder = 1c
+A = e4b52f78179039499c2f6b500840f41103fbd60eac0d7082297236f25189c18a8301a92f533945047fbb83427dcade334336000001c
+B = e4b52f78179039499c2f6b500840f41103fbd60eac0d7082297236f25189c18a8301a92f533945047fbb83427dcade334336
+
+Quotient = -20000000
+Remainder = 1d
+A = 10888959278661bc36089519a215bda60f9ce24ff7c0ac1f543b6e652f94dbff1f32aa40cad2b4b4d676f16948551501c29f2000001d
+B = -84444ac93c330de1b044a8cd10aded307ce7127fbe0560faa1db73297ca6dff8f99552065695a5a6b3b78b4a42a8a80e14f9
+
+Quotient = -40000000
+Remainder = -1e
+A = -3ada453530a180fda58533ab8c62beb4f693a134f512e4d23e487dac3b575e5390c0a90992400e402bb47aac93d46ded55f54000001e
+B = eb6914d4c28603f69614ceae318afad3da4e84d3d44b9348f921f6b0ed5d794e4302a42649003900aed1eab24f51b7b557d5
+
+Quotient = 80000000
+Remainder = -1f
+A = -57879eb5d92d565daac3ac5173639bfe44b6ecc69ff770af57bd79c9b93841c5677042cb362b794f3d8b24b0d3b73ed1cba58000001f
+B = -af0f3d6bb25aacbb558758a2e6c737fc896dd98d3feee15eaf7af3937270838acee085966c56f29e7b164961a76e7da3974b
+
+Quotient = 100000000
+Remainder = 20
+A = 89a2f1792afc54467955839eddc9ef2e37d391ce7a1a4a205291220c1f49f59ee31fc7a7a7f7706c199bf5c8c951a0d0743d00000020
+B = 89a2f1792afc54467955839eddc9ef2e37d391ce7a1a4a205291220c1f49f59ee31fc7a7a7f7706c199bf5c8c951a0d0743d
+
+Quotient = -200000000
+Remainder = 21
+A = 1c267719338a4562e934bc57fabe6da86ca534a34244bd38c15032f01f47c2fd498c83f644b345c5c661ada0e586a096bb63000000021
+B = -e133b8c99c522b1749a5e2bfd5f36d436529a51a1225e9c60a819780fa3e17ea4c641fb2259a2e2e330d6d072c3504b5db18
+
+Quotient = -400000000
+Remainder = -22
+A = -250249f2185d4b428fa9534f03ef3cbed535bd31c56c0b273e6c3d35e0266f7777a6e59a99da5738b8e3af8ac60061d6716ac00000022
+B = 940927c861752d0a3ea54d3c0fbcf2fb54d6f4c715b02c9cf9b0f4d78099bdddde9b966a67695ce2e38ebe2b18018759c5ab
+
+Quotient = 800000000
+Remainder = -23
+A = -710b30c23c3c4e646ba90da33d2ce35af2ff181c40b02e3ffa607966730c6b6e274dd4c3c78e578e0b10f431f2d832274bf6800000023
+B = -e216618478789cc8d7521b467a59c6b5e5fe303881605c7ff4c0f2cce618d6dc4e9ba9878f1caf1c1621e863e5b0644e97ed
+
+Quotient = 1000000000
+Remainder = 24
+A = 877f1caf75e7166ef18484d0718947893fd1ec016984387debc55c19e378a487a5ddbb03a80a88316f6fca16ae148933e719000000024
+B = 877f1caf75e7166ef18484d0718947893fd1ec016984387debc55c19e378a487a5ddbb03a80a88316f6fca16ae148933e719
+
+Quotient = -2000000000
+Remainder = 25
+A = 1ed1b7d9e4cf3d44ee98ef69850e61a39f54cc407c6795c07c887374441fd9ec258c21193f8a8c55802fb8f8c579cf94cb0ce000000025
+B = -f68dbecf2679ea2774c77b4c28730d1cfaa66203e33cae03e4439ba220fecf612c6108c9fc5462ac017dc7c62bce7ca65867
+
+Quotient = -4000000000
+Remainder = -26
+A = -35d324ba37d2000f960ca1c9e1ab96e341a2ae6a5ea5cef014c73a39dde000d8ad9606b817ad67e4e4593cc5894d354854898000000026
+B = d74c92e8df48003e5832872786ae5b8d068ab9a97a973bc0531ce8e777800362b6581ae05eb59f939164f3162534d5215226
+
+Quotient = 8000000000
+Remainder = -27
+A = -7039477c3e0a6f415e25e9f9b1dab1edcd8a23f984e7e3bc149c206a3b756b1be001450af4049cd4535e4243d7032afcf6790000000027
+B = -e0728ef87c14de82bc4bd3f363b563db9b1447f309cfc778293840d476ead637c0028a15e80939a8a6bc8487ae0655f9ecf2
+
+Quotient = 10000000000
+Remainder = 28
+A = d6c59dd07409da98f7bbc7ee471b6e06c4d9e832e9f4d04ed9da63564d37d3072a950564cf549bb5d6e7dc85565d3cc8ba340000000028
+B = d6c59dd07409da98f7bbc7ee471b6e06c4d9e832e9f4d04ed9da63564d37d3072a950564cf549bb5d6e7dc85565d3cc8ba34
+
+Quotient = -20000000000
+Remainder = 29
+A = 14d27a16a9cf2fdbc85b88a604dd8f0e57b5b34a27089d75d805e05fbb367dfa61c085aa98b896e3e53b85ef774a3fa52417a0000000029
+B = -a693d0b54e797ede42dc453026ec7872bdad9a513844ebaec02f02fdd9b3efd30e042d54c5c4b71f29dc2f7bba51fd2920bd
+
+Quotient = -40000000000
+Remainder = -2a
+A = -3bd0119619fbb5b260c44050d61e6b1925a49713d754ceb06bafb1d730a93f199df654b153c40e75096ebbaf5a6ce3c801820000000002a
+B = ef40465867eed6c9831101435879ac6496925c4f5d533ac1aebec75cc2a4fc6677d952c54f1039d425baeebd69b38f200608
+
+Quotient = 80000000000
+Remainder = -2b
+A = -61a283fe41d965ee770704bb453f689cb82a81089422d6d904a91776a06d32857220286e6ef6327807b724062dda143b46890000000002b
+B = -c34507fc83b2cbdcee0e09768a7ed139705502112845adb209522eed40da650ae44050dcddec64f00f6e480c5bb428768d12
+
+Quotient = 100000000000
+Remainder = 2c
+A = 87bd03a64d9c56fe340137065ba36bd07b556119546dd1fc3ae087ead32bc79ca7efb5c7230ea7bfb00ad419096d9279fbe10000000002c
+B = 87bd03a64d9c56fe340137065ba36bd07b556119546dd1fc3ae087ead32bc79ca7efb5c7230ea7bfb00ad419096d9279fbe1
+
+Quotient = -200000000000
+Remainder = 2d
+A = 1eb7cfb197d19f56ad994eca52d1af6466fd09da07d68d63067602046b2d42d3063ef5eda6b58afd69fd92b0b727a0ecde1420000000002d
+B = -f5be7d8cbe8cfab56cca7652968d7b2337e84ed03eb46b1833b01023596a169831f7af6d35ac57eb4fec9585b93d0766f0a1
+
+Quotient = -400000000000
+Remainder = -2e
+A = -3ab858b3329e5bd0469118be52a867b2febbe2894d962cedeb3a5be1738db1cea106cd0710c9f6937348c2c63b109ae623d500000000002e
+B = eae162ccca796f411a4462f94aa19ecbfaef8a253658b3b7ace96f85ce36c73a841b341c4327da4dcd230b18ec426b988f54
+
+Quotient = 800000000000
+Remainder = -2f
+A = -6137bae6cf7573afcbb6fd5c066ba37648cba8db0ecafe9dbc66959b19deabf42f3083719a2268b7602bafa2140a1ee8ce7d80000000002f
+B = -c26f75cd9eeae75f976dfab80cd746ec919751b61d95fd3b78cd2b3633bd57e85e6106e33444d16ec0575f4428143dd19cfb
+
+Quotient = 1000000000000
+Remainder = 30
+A = d00fec043edadc093673e5f5abef0c6bacdf1f3faa49a831a645bf80db7539d657f69403b122a5c6f879eb8e63be54d35ed7000000000030
+B = d00fec043edadc093673e5f5abef0c6bacdf1f3faa49a831a645bf80db7539d657f69403b122a5c6f879eb8e63be54d35ed7
+
+Quotient = -2000000000000
+Remainder = 31
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -940693131e2ba7b2af531803794983337dd526f0d84d08d58723edf002a388d55c8502d88c2a2a6e78233a2a1b1c8d339a13
+
+Quotient = -611b743a0e2acb1043bb33de50a59eaa0405b37bf6b622075dd69291fe5b53305dbfcc377d1f3082319c153d0c1ffb3b3346
+Remainder = -16e346b6a4297
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 30c77f3380ccf
+
+Quotient = b9e34073d5e6e5b9e5d2d7250150f8ad86870faeb88d5aed5029fb25c176de216e2388e0f5d33f7c3b56102873eb40b06f2
+Remainder = -16ebc86eb88339
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -197b6f6ad5b75c
+
+Quotient = 141bc8752e846cd63743e6fce4a22efc3eb5f0ce46ba81b8f578c94c516288ec3610fc9923f45d4af2b94c0b0a20b48ed0a
+Remainder = 9bab19f12d81c3
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = eb90162ecae18b
+
+Quotient = -381bd85c951e1dd775b0d7fab344aadf06b1b592c643b5852fa44aa55159eedf3b3e47fe0d9f399ad92da85ab2bfd18240
+Remainder = 1e4f817a2f52b71
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -546c109fa8a9d7b
+
+Quotient = -5e385a83b56830626cf8306acc232f955178080e86384bbcf92eec3a8961360223c4cfc1d8d118022972e61866cbfc46b
+Remainder = -292e149300fdd1ad
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 3246242094394c8c
+
+Quotient = 9af0246f4b49316df43f61ae3795a764fe9b1d071ce227982ebda7988a7a7a98129c94a76635c6913cb15e4f75ea1608
+Remainder = -dd3b3e32ddc79cb9
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -1e928618913898b2f
+
+Quotient = 1fe40099811c648aa4e84e4fbb8cbc19706774a11391fc03a9667d8dc72dd0b26c4a46d0bae56ba90fe4bfac1517d241
+Remainder = 16e021603d30dde2
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 948887c1634f4b08f
+
+Quotient = -3f4fa4c179dab02ad461bbea8f890292c934496db560f72878323a4463d77ae261363f4dc8f53eab145fcc3815d3253
+Remainder = 407ccb4f0b814dc5c5
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -4ad17434071e1ce664
+
+Quotient = -4d17d19f7f6861189a520776339a1e425876808111c303e391118714370111151ef4ad2e6e84250f59b0fe09ab3293
+Remainder = -36f745b0f421d16db7
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 3d71635bcc25183cdde
+
+Quotient = b976d544af44e711351c6618106d3a002c42ebbe22fe939a2457d24e8dcc35c95dde5c7c77af6b4545344a198be82
+Remainder = -107334ab98e5099fec5f
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -198a54e35fa0cfa328a9
+
+Quotient = 1307bb8e89aaff7466bc238d32672fbbde7be19d15423bcfa14f9a23fe85af9739b72807fd4bc420ad0b0fac37a42
+Remainder = 170ebe9b83d4c43b79ab
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = f8e923a8bbc0242eafe3
+
+Quotient = -3925a167c1c4d2fae265f277302b989466e309a7211e0b7173031cbbb91ab7fac8dfe43c9d832764e222e9d8581d
+Remainder = 4d404e93edb435dbd60af
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -52e36cee22274556059ea
+
+Quotient = -4d5a6ef346a872142b999ff9a5429198b3c2a97e968f55aa2c01583efe30e9687c57e2bca2372db4d3d443052b6
+Remainder = -3a2ea5f9d204dc31f21833
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 3d3c79a115d9071b573d2d
+
+Quotient = a49dee54430f1737a04543d5f549efafab25f0f28f5e304f1bbca191f99521c2c4be1b9927bde19e1ec2060bb2
+Remainder = -17d02758f8fcadca911a95f
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -1cc65a75211f2826c9d0811
+
+Quotient = 1808ab7c0ccac2ff8f7cb61248bf4624fb60352a356fdd1408904f8c6fb0cc52b7642ec59183bcaf5dd89ca0ac
+Remainder = 5c95323f3b8861261dc31ed
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = c516e6e3fa6e3dc52cf5933
+
+Quotient = -437e04d7076794850aada0cb4ca7a1055df103e74e00766be6a2fdb2631bf294cdbf2695d0a2f8f9eb5587aa5
+Remainder = 1fc63797594c56160536faa9
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -462ee529b488d1db2b6c60e8
+
+Quotient = -5dde5497accc4575a412e7232ce75bdf7905936e09e382d5c9f133faf82a05ad9dcc94ad858aed34cc14c714
+Remainder = -15e79293d5e055f906381a899
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 32765b0a34c88864d39bedaae
+
+Quotient = 11ac52a9287472e1d3b8577b3d50c95076e190714796761322b3ce869d96b44387e190e824849ee345d0a22b
+Remainder = -a158ccc7c055d64e7df3fbcf0
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -10c061a37f6cbd11bf0c327643
+
+Quotient = 1ff5cda1551867577c5ca72c86516a82fb8fc5f59ce967b73c6bcc1b85168389872c9a747ddf044d6dba174
+Remainder = 21e766a0020ba429b330a325d5
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 9435cd2dc2a92c950bb9e69b83
+
+Quotient = -2719c892fa3f4dbc9951b2095056a16159adaf32dff902e20a800a0cc2e858ccae408f2161aae25d3e1f6d
+Remainder = cafbe9caa1f83fd0dd3d5a6881
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -7924e4dcf8f96da61f54bf83870
+
+Quotient = -5080dc99dba295f4a2d9a474c2ddfa3b232a82fe629fe62177514988983eff8195b37d3fee3afa343b497
+Remainder = -94ae72f78982ac1ff83f300cfe8
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 3ad70d4b6b9b5f5b2eb65da67e1f
+
+Quotient = e475eebcfc53d49ffad2e0c2a4ba48fe7ce02c42ff107e01ab3fe5b26eee45c83c4f58c181d77c259155
+Remainder = -c83ac7582a02b47ee734e0f24dc5
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -14bbcff5423a260b21895327b18bc
+
+Quotient = 201308a421b85291d23465d648ad2a8d6f3393efc16fb675a42ea7bbca635ddd8c2449b1b34e5db30a03
+Remainder = 8e07efb8ae4c9df39533042362081
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 93aebb72a81ba68e8881fd1a56a90
+
+Quotient = -2584cc534f88f091fe471c652ac66a695906a7cde1fc1cde9be3ee09026b690c1a899378ff31f6acb90
+Remainder = 794801d9d5770a60e312b99d6b9f91
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -7e408caf387a0ce9bbf4309c80755a
+
+Quotient = -63f7bfc0fe5a5421bc0a19fa6c87713a72eeb2a33e5eadee8c2f32c20d14f403ab8bdc424b9e8e0c68
+Remainder = -24227c242afedee2473c1a66a5cc29
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 2f622c665af7f8126eabfd90df8e9c5
+
+Quotient = e557e6d2180aeeee5d2cef453fbdf38e84cc148f4608ade8836045498be2d318520ffadcea6319432
+Remainder = -dd290149e0e159f9ba6bb9f5a4b003d
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -14a7623d1d9dfc177e913d3119d0d30a
+
+Quotient = 1651d852316d472b41ba0460566e43fabb9257861859ad0fb6ea5a6433a4164299e078f4d50c58afb
+Remainder = fb60aff5fdd2a2b794b0d973ac4d92a
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = d439da27b5e70342aa5cb365ece15665
+
+Quotient = -3ae357761a8ff43d3b1bc53eb336260342a39d22f8fac44eeeac96c2f6de32580dd6a688faa9c515
+Remainder = 4fa6f7ee4faf2f6be99c5ce4b65cd642f
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -50700f9c0da59482165a47a3eda2bf07a
+
+Quotient = -543b4390e4e254226683aa0b83b2ca176ec27a373969fb88f766ac72adc9125ff83b2652e46afd3
+Remainder = -12ff398d9a7d9e97a7f63a0bb293c8fb0
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 383c5a4f1767e83fc382ad4f1c7c2b7ddb
+
+Quotient = ecb72c14c59d49287fb6b2cacdf04619ee617d5f3f0f1b2890fd4e79746a4fbd848613cf5eb437
+Remainder = -1035512a2717a89062d48f1bfd213333ed0
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -1402b751a1e5f3fc46e22b43240d6ce9b27
+
+Quotient = 1e800ddc5d5126f322298383f32fd593623eb88a91b2d68c5d9f56e20c16ffe2cefabe873570ab
+Remainder = 72935d534bed5ba557b91ea023601f50b1d
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 9b4df766c608ff3efe5ea1f65cc850fa73c
+
+Quotient = -2c2dc2378abceb983904cdf6728f361d279b4c821710ae785724a7251c43fe4f705f023afa7e2
+Remainder = 249f6433af4e8e224eb570fd438197af62f3
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -6b382f812816c77d65c94c0c660b31a69b8f
+
+Quotient = -5f3ced1e42fbd3c6b2c6f1e16953e0c1bb6efb4e49566f974a968f69a1a66a3d7558f5a802a8
+Remainder = -317a7fb1af65982fe4641fbb1e5837e6ea3e1
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 31bc97372d17038fd842b72eaba2abb26df62
+
+Quotient = af3fef8111c449b9e0858e7e53e1d00b764232f7a077d75043249c387ece30af351c8a40335
+Remainder = -a1493bcbf57a8480461d62796aa8f8541ece4
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -1b076b2f7b78b4a0f0e24ba3a05d6c697efab9
+
+Quotient = 196734cefb08f09cb32ffefc07da8d9545d3451d5a08736757184bad94c73be71311cf1e01c
+Remainder = 273e33521f4d74840a96b3fffe169f79d32855
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = ba7746f4400f812919a3dc86b00642e1487691
+
+Quotient = -3c5989cf33145057a9c8e904435d12939db519cc6b9ca1c0a11934399cb139a73613950f2f
+Remainder = 456ebf56c636d54e37709b9e799e83b7a08cb93
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -4e7d4f389423f42e980eda55b4a6a45f6f4bdc2
+
+Quotient = -8432cf3338bce1d12586f83025aea50cff3864af3eb2103a36bbb0aba10b0ba4831641633
+Remainder = -4f62c678137df301c4bef216e6aa910104e76ff
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 23d4c57b5a8162aae8d937be12efbcfd7b96ec06
+
+Quotient = 9f94c4399eef16dfc65a1e015e0786c86470299865932c4d564b71c9b1551a9c0308af38
+Remainder = -168b74a6073b4a5b54fa14aacb5c3bb7897ed0fe1
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -1daecf01ec633610373b79e04c22cd7499012bc66
+
+Quotient = 1d5b838dce6c0324f157ad125adefde6e1045dce9ff97cf8d1d39b79bce02128e3433ffe
+Remainder = 3aa816216d55fc3c910a030fd10fbda1e12f2ac2d
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = a1598a12a84e9cba42ea0e200e88d4599c9f615fe
+
+Quotient = -3edb182b53890ca8762f3039d2d71a8a27c36cc884d0879e0635e6326af0182bc47cad7
+Remainder = 4610b2b1305220bc0de584dd3f87d90109012a8077
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -4b5c2f1ba3a82047c9de61d47cbf1bec86b6ef90d6
+
+Quotient = -7571ed4c509630886483f6ca0923859e644063acb38cfb338bf3a681fe449501262516
+Remainder = -21c579846594fc3e5efc53ab01576a7b32d69faf41f
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 28550e1f7c6492f4cb682c37b105f92b049c13fc03b
+
+Quotient = 9ed8fb31327a110ef4377258681c5287de8ef9dbe62aa4fe84a7f2a94bb69607cbdb2
+Remainder = -1b7bb759dd0ebc346cbe216e56be8063f063490c17c5
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -1dd1e61caed1efc07d21ce05d889de1ad65808cae026
+
+Quotient = 1aa716227d1ca6af68286062b2d6dafd7ade16abbd5d6fa4ada0365832fe18f73bf35
+Remainder = 32e714b0c4ecefb38735cb88cd5e07c21c81be858cae
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = b1b959a7b3262d7f4dff488315903aeaffd982b726d7
+
+Quotient = -2a9979a530046939e0b43a25edfbea6775784eb5cf346a9fc3a2d22e1aad473cdada
+Remainder = 4edeb91a2472e80068b1883cf2cc45d68ff9bbed1756b
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -6f31bbe097587a68fdf01d0bf93830bd03a23920ccc0f
+
+Quotient = -566ff76814e1c7d31ad53bfb9f3c0607ef1f7d1cf9bdee6e1cfb78b3ad7018f8bbd
+Remainder = -1eac095d6d84021c33aa9b219d191bd0637f20b5920eed
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 36ccf5bdece624b4f54c729a8cde13325d8dd764f44894
+
+Quotient = aee4f377611179d8b6315811dd94639aaaee63e99bddcfa8eee297ce1dc04daf8e
+Remainder = -59cb3ba7efa1637c46b21795872e8deaff90f13402cfaf
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -1b157ad838684b45065aa77ca3238a4d8c5427f719cdfb7
+
+Quotient = 1c72d32cb83cf4a9043d3bb5002f61b03e29c34e44a9fc5cc4d613726f5e618546
+Remainder = 7312d11fb5828c7f1a0060a5152a7644fc1e6a59de28d03
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = a681444c4d47d829f7b629b561ffaa0c3be1232346c907d
+
+Quotient = -2702afc4095a0396215e3ca36e2a59725f743b30de0dd8d4ec4d943fef6c37162
+Remainder = 223dd3080ede3a64744b14df8742cedd71388b0df99073bd
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -796c9ea38ccf516a2054a1e584c18b64b996c9679960585a
+
+Quotient = -805585c6a7badc933bced6f8373ffdfe9796e963d3fc90e85b1a22c38f842062
+Remainder = -a6ebff3f651644915d5c466cc2915d104f0f85a44e08fd6f
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 24e8fb7a6a3057ddcafff92916c46f7e4038b98c3104ae831
+
+Quotient = 10383ff8feeb180d4fde925b534be97ec3d5f1f1dab5d8cd9ab5d8ea646cfcdf
+Remainder = -a7efdd0401c74a69cf74442fe3da907acf92e8edc51668828
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -1240a71ed8d81e86fd9b16e1d64f438b35d6f8eff672494017
+
+Quotient = 195d95a520fd22317492117dc756ff97806c48c1aac67a41ae56fe503a60cec
+Remainder = 8b8692bee56f8a1ada9ffd8b3583eae33a0df9b73a7d8585f1
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = babe02063b61cb90634ac0493174073d2419e00728d46ad2b0
+
+Quotient = -37791adae674b866e4791c107a697363847dee4a58a37806391426ea48b8c9
+Remainder = 33986fc6a5f5c4f4e31458fc7de55e08a4e9320509d90299b93
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -5563bb852e7338c65aa21c516eecf47f498e5788c608ed46cae
+
+Quotient = -68a30494eceff55e4f54a556dd9b30025ccfa22c0952fd746adfd13d31d00
+Remainder = -1b511d0ab81d528d00a1058850bef48df2e9ae9357e779bb9231
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 2d44e919fd27bb3fd2093062d11830c30fa77febafe0a2082cc6
+
+Quotient = bd30999592dbeabb8871b76aa04cc1c6c3794a83f0178c2ad505d8189485
+Remainder = -b0dbce286df5faccf0bdb40ca60f508d436f9410c5e49c3f1360
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -1909930e2d16fc877c15895a3ec8b2125858bfa1c5a1b8776bedd
+
+Quotient = 2171694ef4a9d57b83b09357a511d4e11cecbab5e9387928b480d686a0e9
+Remainder = 29abc8898d5ef85f87323c2a6fa36ab6e1bdbcc0ca742b1a2347e
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 8da37bc9c7c9bdc62f49cadcd40e156e776b7f4c8f7ad543f463b
+
+Quotient = -267d470f32911150d9944e684c14e1834734b15475bee968748dd5f6502
+Remainder = 53a2ffef61709bd7143c4c876e021f20a99ba481f2b11abcd45da3
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -7b117ddccee97816c2ca2f1a612cc0d94ac67f5a79ed41744c8fc7
+
+Quotient = -5a21a3bdd3a3d4f1361a978706ba1cec409c296a5b3c369e91fc8317bb
+Remainder = -2cdc818f1e445fb3772d2a56833aefb2f5565a5fca80662e6fc1845
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 348dfba3c793f0018d7d3a70c4060c3148b4a3163ba60af9d6f8b04
+
+Quotient = b301b4050fdf4ede8f9c746b26d968110e1eb119ca42cd9c9bd8d4fab
+Remainder = -17993daf81711fe59204ec82e363d2b91971129af9206ff9506d3cb1
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -1a76328184b9bea8770c91cfccf8ab98e75b2224d666af58022aca80
+
+Quotient = 19c401336dd43c221a61264f8b91791d250e6c99c61850efe6d1e3532
+Remainder = 6c9e547a77c98eaba1b021777dbd98ea88f7fd37c95a2b182f2b9067
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = b7d7b1f95f4fe2f267af88b81af88fbdf603e54ab6de73ccd000c32d
+
+Quotient = -38a77853de88a8db14612884b515e3cd7c673175779d4ab71ba58f83
+Remainder = 51851549cfa00dbfae388cc3b46fd4824268e00e12fba288acceab339
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -539c0171f48e4160e5c308ee9e74f35d8b6d032e946dbcf748b1335a8
+
+Quotient = -79a7eab82e5b65f4f6734e8803fa7c30852ea3ae56e801c5dd11778
+Remainder = -f89592eedcbcc68d5df80663b3cdc638d9d779707d4ae5a552d97d009
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 26efac15401a945ffd37066bc5af23191292765164a0f1e4fd537fd64b
+
+Quotient = d33afb58753a21581c5b2351a74f3d220599ed56ebeacf1d43eeb2
+Remainder = -f699437f44af44b3ddc080f5b74f753d35f70baf3866040ba3c64b30f
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -166cc6a3c60facfa0d8d318f26c6514c7eb9113f6b625c1de804ad379f9
+
+Quotient = 19e55bdaaa5a375c36e6869700f8677db563e5cf985be2a8d1b012
+Remainder = 7bccc3a653f29f3f45b52b8de2449c868c64d976666c01bff2dca03a8d
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = b6eae7a82b5dd1554795573cbf558d7cfed813eec270c326bf290adccc2
+
+Quotient = -297530094c3e4270ab5cf67e60fa5af6a32eb41b18b050fa6d46d
+Remainder = 62d8b502e172da7bce53fbb7c1ae376b6c21b3a3a47523aa0023406e353d
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -7241ae5f1aaee9340d437ad2dab94b70dd29fc6fff7fe31b100aa5001644
+
+Quotient = -640f3c38230962c6d6fca459afe0e46137525e8d62dd9b84da73
+Remainder = -16fcadd5155910764ecf0b4bd0afc3707e2ce49cedcbd5414f1c7d860e95c
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 2f570d2da7a4e62097eb494ca43f7bde33e36525308dc864ffbaeb5d48f97
+
+Quotient = b3895ebba13c8f383ac0482be02e1f5518511420cb4513426bb
+Remainder = -21bc847fdfd48c7a4c36c778681ea20481081cbb7af6b281c8b8ebf2b2c3b
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -1a6233954b3480af5f911a6bb8ad33967d5e0446c3e56f521e892c986b6b82
+
+Quotient = 243f3fbefbf842c79c5e96162fc42fe4f177a59d27681c54b3a
+Remainder = bbfaf15a90e744dc4a1caceda3cb339e5491e4507a1118613c5e9739f976b
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 82ae783b8a13e2e65d52dd3a6d6b057163347872f4d72245ff364dbf2421ff
+
+Quotient = -30f7cef2948c9ebed8fa3c5ea9a9bfa96ee4e9729c9b18e9d3
+Remainder = 1feb3fd887629cca60c664e385dddf538d9bf7fff2d34ca9e0e7614946d807f
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -60bba60d69093c0134fcb90aefdb9c190e7bf037ecc13dab3cc7915d7893046
+
+Quotient = -6b6f0183c1f598a68683ba7435c05d700d74681fe472669a1
+Remainder = -1f4d58f81a8c18523918d31791a00ea9aafbbb87792d90a5392273ec4e405da2
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 2c17372a5128d7c403a3b94838072ecf9aff88d164764b12bfbf6261df957e2f
+
+Quotient = c4347fe42b2a7d9d5a650b72724369c5c1f59262a7be3fc2
+Remainder = -1103ec9c4a15373949cae4e34b7b42e242da41edbf5ad8362ce5e5426d3154a1b
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -1824671758069b7660bad819f06c86fc76a9344ea38412058380363e5c5b4086b
+
+Quotient = 15e8c8d6847dfe974cefeef5fee93da9e58b74d640c6c413
+Remainder = 61dac240f2b39832903d5ecad9cfda5162bf8ebb0610545f259b75c3dc6ab8771
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = d83386fb9682576cc70cf84520c53169e391b414f5421cddca6e257bd77753c40
+
+Quotient = -3572711bf994e6ad48535cc4d65ac323ef1ccff530b4337
+Remainder = b5899d4cb879e37022c539962959339d055900cca16153da09b54c658753cf50e
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -58a05faf5c61f85ac5a090b6bb045c851ea17332d9bfad4309ce2b7a79ad3cc575
+
+Quotient = -6931ebfc6e34305e5d7cba5284829d088d1ec0abdde508
+Remainder = -1b09eafde481064bab3a5c7fd895edceca40b1e62a9cf953eae1061dfbe00936391
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 2d0769f392ca9ec629ef1bfbdf08cd8cc9219330ffe3c05343df792dd94b1147714
+
+Quotient = 9a4800f0cb2bfbe8d234410deb510103b7da30cbac7d9
+Remainder = -971e4a529e439a1b96b942001631027ff2fbe40b8939e224adb7f2ed30faff64d1c
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -1eb3d7971125a036c3a67d9f5ce580a4ef4c469a492be53a55bafd2eafd4032b5b9d
+
+Quotient = 23116704b7a1a86cfa2ee5707ee46268634db5d50dc0f
+Remainder = 467c6b64c8121e4f250492191ea36a27119a0a6d19af519bf7ccdc2436c885c99d85
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 87134e98f73470e23a96c6a9139af3d4d21574de8aa9ea1d720df8940bcbda343694
+
+Quotient = -3b7f72ecf4f55c02366c52f38a827f5773b7cdebb9ba
+Remainder = 194b334b2046a66be3ddd7c6df01c88967fcb11e97b8206d000bcf6043c6e9ccb13f5
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -4f9d0341cadfb1f0bc38184d93503faa196fb8170f8ba2b5d3b512c09d39b7f79a5b6
+
+Quotient = -6db1d69019dd4cb26fd65d5b88a31bb6413b30278a1
+Remainder = -2042a060391e181882dc0c8d91c3b03c1ea35e2eff01babb3ae876ba1e57a505d44856
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 2b2e8f445c0c3aaef0285945e4ca37a700310e003086f34d02c891b94b117f3d3032fb
+
+Quotient = c0e5b9a5853bb21b5e2e37f469764579d5cb2bf984
+Remainder = -154669d4bce7914cdc8d79f2b8d1faa43e8cc3b20fb0767e1c9a47c9e1daed4b665cfdd
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -188e619dbb719381e701363de874fe168529c10f30d3ff184e4356991fdec1649f72235
+
+Quotient = 180054f8c36833d44cab9dd61e6d89d28605c564af
+Remainder = 59192ec5c6fbd9773b8b7dd7d8ab1800dfecc8eb01c29997d15ad75b79575d9e26e1fc9
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = c55b5eb165c63ac2794bfac21980ebacadb93f1e059309fd2b855621572e8d9b3f29018
+
+Quotient = -31412e97045c19ec38951b0e3884c66d1d7479437
+Remainder = 56f1425227bfc6eb1ecda7bfae0e5cb59e92a2cc5306b28465c8739e40893dc5c1e94cbc
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -602b8c25ded1ab3877f58cb048c733649c7dcadf87b2652e35c4e5544d2306107ebff7b3
+
+Quotient = -8da1489ccf7203ecead94c67a5750884122b6e75
+Remainder = -15162026586a1e55dda72785f31c9e6140d166a1fd34c87a7d8c78f8d8f87bbdcf8f75b1e
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 2171ee4a6f7f67d5a33d0a08c367184d70ffe39da28562655e75f6b66c866b1c2ac93e467
+
+Quotient = e635f8bdbf80e99723aa5718d3fade4e573be2c
+Remainder = -ffbd73bfe05f95bc2b135f12682288c620215eac3d6d56503d93a90e06f236e597d1df975
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -149375d478a096e724b84faf795c589ef0d772c4623f5be38da99006cd833dc5b28363faed
+
+Quotient = 20f76f5c6d0c8284764a10f6936c22bfba5f851
+Remainder = 82e3fb3f7252dd87b5370d26d9e8b9e98c7d333701f0ce8a05c337054c7aeb343d04d7e342
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 8faf8c0a3ef94ab1069394998e5412a7d84f44aff97edf63abc46d96f897172c38faa0b13f
+
+Quotient = -382586dfe93872abbe3a504fc62a8973913f96
+Remainder = 4d407323ef56093eea2f3993334215950f4e1a85ba18cdcd77d819d92b8b292c3ec8edea425
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -545d81ed25602b158bc79aadf98a8f655fc399fb8652ae94333bf54c8c9ffaf8c6b3f2a9d52
+
+Quotient = -7d179efc493eaceaf46572a1f3a62bdfc4a38
+Remainder = -3de3d817a9cf7d529b5229a503e8ebbbd2c53215ac3c584c010947f780198dee16ffbf47791
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 25dddb00f65d6a1ba8caf7815a8063c5da656d775eae9e0108c68ce11dc925183810888dd04c
+
+Quotient = a9f7e5f235bae0e3e29393ac5c99d510b009
+Remainder = -150478b4a0df3eb20dcd1be8da283a00636c021c5c6337e7732aae9c4b49853b95f6d2475ea7
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -1bde6cae7f5ced9006c0b1a61fb50982a433e4e2050aa486298f456556d8e909e96933e2ba3ba
+
+Quotient = 16de125df5936181981b4c2d0051a8b4d211
+Remainder = 29ac7c8a11f9beb9ad649257994216146b663bf4f237c561bf315d95778fcdb1010283475ebf1
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = cf24735a60ff5906410be5c4d98e3c9247919b57e404aeabc7eaefbf07bd64762bc61b96c9040
+
+Quotient = -268a52cd10ab4814268f66d9f44f71a98eb
+Remainder = 20293699f12fbfef2e391963866fc082a7884cd13b1c9bd8d5d203558feed2b889720be936451a
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -7ae7d548212830013b7d653072c33f0dd54a6ebd8792bf75809d29a8c798dbc67c3edd99a69b85
+
+Quotient = -8f051067ccb82b6a3dffedd0ff2ee97c46
+Remainder = -100dac0d3bf5aacc5fade281c071eb2399560a65349566567ce1c0c34e43f175a575ed1eeeb3b07
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 211ebb5dc59a051fdfa3b18ac491971e863f2086cdc099672c1215af4ec877e29950efa4f487be7
+
+Quotient = 9b7ee4c499386f922432fcb1a453ee2ec
+Remainder = -f410122a74386d724cdd45b2e548645ac5ee4a44cbfecb82aad34ae470526674da44ebbf557bb75
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -1e76750814dec1ecbb1af0fa2281ab3185e94e47fc16a77fed312f23f261ad7709ad7c9f85862c1d
+
+Quotient = 23efb26228d7bcf281cd45f54572e2b3a
+Remainder = 65bf2ef1c2f8e94d98060aa305f85e6cb869c74eabad99877010d30654aa2e578ef6aa3c5f1122e3
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 83cfc25e90a61cf8686e3d5857b2f958674d478622c54cf8427275ca5e9312ed24e44ed4a1b5e413
+
+Quotient = -2cfcae0e922f2d884bfa0a3346dc9812
+Remainder = 14de2725b11a9c6784d9608c52770d29b9fbf824ecd4890bf28f3ec0dc6c52e4df9be540332b8882d
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -694b057ff381badb37c7c15c81e74cbd6774e8d61c9e7d450811c36262ea834fc1287fa59708ee072
+
+Quotient = -4c0238ff3c18d4d58e543f020002802
+Remainder = -2ddef796c50817e82ea6f64a02a8c6b30ab40070ff5401c2d39ca14b9c4d99de33834bfe566a0c2efb
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 3e51c9ab14f522b55e8f9d3ba995c0846a864dfa2d568ea211b0cac1463ce6a1da72d0a15746fdcc9b
+
+Quotient = d41f9102a7785ce64f76b7d7b870b0
+Remainder = -106eaafdd518c658bd371164ee43ccd915a01b513fc7d220900039ff840ba36450e16ce9987e08e7141
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -16549c5d57b531528dd4d781f03cf275b66cb94eba038b782b739c3ab30b8631c8706abac06004a942d
+
+Quotient = 1616b432b3277e774aad92b0cf544c
+Remainder = 2c89373720b834d718ff3df985ae47c3a7cde0e0309f682f5fd48dc97a1ff3d69fa0dcaa1245e956445
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = d6721300e877a8145d05f4f3d8085697c2ca5f34a5357fed0bdb7169f83b6f8d855232eeea594846b79
+
+Quotient = -320fd6a7375a42a3961362ae196d1
+Remainder = 5336711bf81237ea3449f4e9f4e6358dc250f8ebd86082cab92a8079f2c8f835bc783082efb0ed7e3f66
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -5e9e8e1d446fdd314d487cac1226088696e33161d923acb67d3c75e87e428bdbc193e02f53200610fcdb
+
+Quotient = -4bd06daed3f30345d269f51e4381
+Remainder = -1f3513bdefa40662f0f50a04b418a833aa2f85522dc6c399298b1b147662ef2164ddbfb7247ba9511b8ec
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = 3e7ab7ffe5f63a6c1e109b95b83af470ff820cdedbb3c90c398ec42e44a45e1ca894870a7fa51f17ad5c5
+
+Quotient = d6fd01a0c5b55fbe36e58bbe77b
+Remainder = -c51af3e8b430870388357cb366ea888bd7b4ccde09ad3a1d2ee1426af060245c6d6b5980ae87fb66c4642
+A = -1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -16086df3dd5e665f2631a294563c68931faa19ee67d6a2153d262940a648ae71bb3c1745daca5ea977331d
+
+Quotient = 18bd9a8f5678d28cefd955cf99d
+Remainder = e193f2fece67b7abe16373c3f84f18dfedcf654d951bf47585fccfaf67ee04f5037354d057c9f5eaa8eef
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = bf758acacd11f3f3e6665cd740517c9ab2384266f3c7ff9afd0888cdad2f6c9401c24d6c11fc3949aabbaa
+
+Quotient = -371239db55c79521206c9e60c0
+Remainder = 93773085af7582dd298b09d7098835787978d820289ea6850f27d0d77eecce8614785e32b228f46ca4b371
+A = 1280d26263c574f655ea63006f2930666fbaa4de1b09a11ab0e47dbe0054711aab90a05b1185454dcf046745436391a673426000000000031
+B = -56033fd85be464301f10177b58d895fbb6df6154da5c2a2a7cfc3a24d83a96f5295fb17a08148a4e51dde91
+
+Quotient = 696d8e378d12221e2d970c53bf63a20ef381db8566701972c22fe067cdba99c57b68706a5c6e52f21bb3de861e49ed2141b3036f07d1fd0ee
+Remainder = 9f0e50ca76031b
+A = b2668f5fbcf4170820ed3fc9b12a61862acf8e3cb17175482efe23c5cfd3556e77634d407b6d1f98a73437a8d6066319a7a860afcab2338a1b1313037e30f4d9
+B = 1b1313037e30f4d9
+
+Quotient = babe271ea266bc7bc16d193097903037819f82366c7e9ff8f2cb14157b40433c6ee327038d5dcc44140b070d823befaefbee5e13419f6f17
+Remainder = 93d7c547a9ba0a4a
+A = 74b1a591f449377836f378e05d2902b29964df59c6926e5a9182cc09ce3111783cb7021a185340b4880d56635de268d6f3855c4d9997373b9ff8df899ee3b3f1
+B = 9ff8df899ee3b3f1
+
+Quotient = 890139fef28aa3b77814e1122b9c7f26e746ee3c507e6082b508fcbe380de83b06a01f735239c6847c30eae44749fc8c5e3bd97eb40ba297
+Remainder = 6c97aace900389d0
+A = 7e89adea82b4cb6feb41297b6dc8d948e72c3d5554a987900e7fae48cfb38fb5282b13d9a1f5793cf7cbf1ef551865041c3ffe0e287714a6ec7123556af55a48
+B = ec7123556af55a48
+
+Quotient = 1fdeead441e2d7a6ce3cce2389b2a22248ddca7970ae3f7e7d8453052fd08534ff7c46f6a4537fb6f28df6c5fc8a7d384336e679b74205315
+Remainder = 2903c7cc2651bfa8
+A = 9ca66de3d83f0a747fe986464522bde5e42aeac20e8ace1ea13fa6bc9514c58517479a4281d4128c6d775489b85dfd114ad184613f308f6c4ea484a22ab0ad1e
+B = 4ea484a22ab0ad1e
+
+Quotient = 12f16c8f9f898a08853982e2ac5a906d784c5ab8d74007ba3ab311e861d7c1ac115efe694cab7583f75a4a59ceff2887dab53b2f1022aa452
+Remainder = 4bdaf1f352e87aa5
+A = 6e6a97b358b591b78db43772378dc084a11836ddc9dd4607f263ce620714e8fdf6bf67387c163b6f2999f84270802b4bd5c0f0377e949fbd5d42fe145e66ffeb
+B = 5d42fe145e66ffeb
+
+Quotient = 14e0c06c8cff1f9f5dd8afb6fa6c340f0953a18ba7d2b26b22d8e7f946ef20fd5ac277ceb59cbd4ce3e8213803c3b5b0452ed449e22bf2c29
+Remainder = 55422f1caf4a9a00
+A = bc9c054ff568af73e301e0751bc1ee055e82826cdc53449f2d9f45feda2ba227bedd6df9b74fb58a85917d60b087bef04a156a571716e9bc908ae83784ee35c0
+B = 908ae83784ee35c0
+
+Quotient = a457ea94da3237c0dd15ee30e9c13e7b4ca1dc90fcd67951b873787206babaed837a3eb17e298d74cae92d1059636f9aefe11aef9ffa31053
+Remainder = 124768541b600598
+A = ea6dc82b1906c277526ed867fe8b0fbe32feecfb935dbab860aef59a7d72799fd4e952e70b4c9304c7b2a06af8badcd6cfa12d0b6c9db38d16d2c4a24099ca14
+B = 16d2c4a24099ca14
+
+Quotient = da0a37eece8972a0e2e8817c54e67c4d9f92373340488539d5051984bce0ae3300ef6ca9d0902daa4d485dec3b4db6c8b1ffd2c5d08b18ae
+Remainder = 1ba15c46023500b9
+A = 36ca8763e20e6ebf07a55cdfdd83892bef0bab68ac092093bfdac1a49c1da015541196a24249bb2262e70f7ed53e0fbae61f02ebac4b61f740548136ce50f243
+B = 40548136ce50f243
+
+Quotient = 3d8c433daedfbf681b528f88d610204d33bbe74d0b13978c34a617ae94177e07a757519b5a8f1a93a73d0751c7b5b72b4bdf475a9708fecac
+Remainder = 4cdfd72349c6110
+A = e0dd7e73b2a64dc017da65992176e2535c43b6fc14f2f7b0a7d894d768bbc77507eac0112b2dc3ca83d70989a1b949ccf374be6a012d80a23a74bba39671fcd0
+B = 3a74bba39671fcd0
+
+Quotient = 39d084b444e39c32f2883e9968301151802da15141f65893f37b8b834eb01c074aa1e1a978c5c99732c87ae106bf8db09e1728c8bf2aae88
+Remainder = 2950443357cd7477
+A = 16df31dc290559c3b6a3d192cf15d825cfe79f8dbd5c9848eac7fa90eea5d87f8b430cccf9baab3e8e4dc33467a4234d8551ff25e33af175654686ff1368e96f
+B = 654686ff1368e96f
+
+Quotient = bbead8f70c8e61114f22d36e97861f16037efabe1347613e78c51d7f539065421a66c907faddaed13ad2a0f0b00f8fd594e917799cd937e5
+Remainder = 3013136f5f728b68
+A = ba5e688ab4f8ab5c25592bc4334b6dc2b7a06d491d0f919b716bf1cf109b62a30d9dd59dd4bdf870dd2687894edab303277a5f3e3a537cc8fde3ee3bb61767d6
+B = fde3ee3bb61767d6
+
+Quotient = 42aefe467ff2a5614efef1edce25a1acba9c476b3abbcd680140a3aecf8f51c1ebaab8912de217451bfaca2842c0bae717b8a030b6318c0
+Remainder = 1f130dd2ead0d35e
+A = 17bd50b5322c51ac883852ad2a4446c039dbc210ca3aa0313065fc88cce6819b324e93b036bd0c71be58586cd2b243d01a4a918c10ea0cc5b22f9d795df09de
+B = 5b22f9d795df09de
+
+Quotient = 13de73dcd72a3638fe2a907fd7f6574bbb228698fa60e4ecffb082911c5f09c74bb4f50564d3d4035d07eedea38b634a3e3acc26c8e9aeff8
+Remainder = acb8702f0113e0c4
+A = e0327b2e59236a3f91ccf960490cc69b2afc854de9299ad2edff9618f9fe24251886afc65f5c581a9bc86013f356d599e98b8b10f5236a51b48a6b29025983a4
+B = b48a6b29025983a4
+
+Quotient = 27d11481f00519b786eaee96220afd45bc51700f7366fb5e7da35bbc84891aac3d9d2b709dddae371a6b78439fef810c68eef586e1d68350d
+Remainder = 3d1890c5e1555d74
+A = f3504d5d96c9e27a1527725ced337f1cd0a183531642051e166507432c01e8d44c4e8918701c2a05eb8a9d7e26bf04993f9adeef2826ae4e61c602477f849121
+B = 61c602477f849121
+
+Quotient = 10bdeac209c67b023044186704735c7291423054bcddc24b731ad601b49372f4d5ce6e9d85002f8dddf0411efce943f81a5e42cee2d0c9fe5
+Remainder = a93a0c5bd51004e4
+A = fa29e37b0d0410d19fd180149b14f94ec2edccd347da65f6832850aa06a61b7b78c96faf64dcb347893c93c560b8043466419864a382c6f2ef1412873b2d8cbf
+B = ef1412873b2d8cbf
+
+Quotient = 1c9b6cffe44241292320c0660b89f2f77aaadc8d36e33f5ac3da0f12b3c114a156870a92079f7192d237f8bf49aeee6282531c929cc56d75
+Remainder = 1ce3e5eb13ac7958
+A = 144325a641463ed6bddfcbd73e50620a44c606d71fac38efb1c9d2747b4903f7b51fdedacfb66db022aea09b43c7c2ad7b851035165ebe59b552d4f7eee617b2
+B = b552d4f7eee617b2
+
+Quotient = 1b4ad18dc0e634053beb3cf840b53e35117ea06309ea8ca22e37123fd7e1d391c96c792e5125e322c27daa73301024080d73ba3491484b659
+Remainder = 3286bdce6dc3a828
+A = e3a2b90d3ef446f6bde30d3e726cf3e78212324054b40deb0b18fe00645568fb0a6234b6bded6240977373731bb30d1349e25cefd54b7a9985735e9b78002691
+B = 85735e9b78002691
+
+Quotient = 28f5e8da6733240cc2f18e3cf4d42a50d92816062af33a9e1871fa89bdb39a0d905c49faf51cc1c1378741bea34d25ac2c8e522881a6f6087
+Remainder = 135784870eb40c68
+A = 593206f9367b72f9cc59b3e37d2eb23b2061422859162ee53656899c2471017474f500c6e23efe1f6b1e57852cd4229329dc182ba01a257122d76a26aaf9b844
+B = 22d76a26aaf9b844
+
+Quotient = 1ab276448d16c533b6e90b5b5ca266e13ec27b5a58c80b7657df963ec2d1fe4eb1c1d24873eff6408bcb3d0cf97c31e85240eedf0efcc1e5a
+Remainder = 27b105741264f875
+A = d84fde3d851b52ed3b2a1268e9b765ec6c09c5768bba709b3b799802fadac30a6c3184185e6d57249b1c34619f3c9d2b90bc0c348b22537281a39fcadf738083
+B = 81a39fcadf738083
+
+Quotient = 84a87678485b3e60ee1cae3701ebdf0a29ee44115a492c34a0c8e84090e14070eb2ad0abfe2c339f26b5099327515104fe3d1c5546feea98ed
+Remainder = 95f7434941f9d8
+A = f79a0643bcd9c28cc22cc7b4178b3340e4685dd2672792516d6fc08567d2de2d3e25d43f100a58826edb146ac94acac4213bb09bdf8a258001ddd0ab110b89fe
+B = 1ddd0ab110b89fe
+
+Quotient = 516a2ac26e5b3afa502c7f3c6f15376f7a380e5842c229443343b5b74dc3de84db3ae99a0c57043e32a504ded19943c0310cababb3e92cf8
+Remainder = 327cf78eed336523
+A = 17c0d5814e1020d5d69674bdf6b9df193a16c0c8567a589d014e8eb7f6c9c36560791f7acbbbacee7c456eb51a4cdd7ca88011e9d8d9f2d64ab08ad74f7be5cb
+B = 4ab08ad74f7be5cb
+
+Quotient = f0da0beebcfaa716f494cf3fc81fe65117c90adde3b3942e8e66986fe8050fd5c9ebe1c88c5db04cea4c4c14779555d70cafb53870671f95
+Remainder = 3b2f844440d7be00
+A = ebba8c393c2a22b094d824ed95b4acf6875719fc165f73ee6d359e1134949169fdacbb42d5deb8cea96e11e3aac985635b5bcc6c02a6778cfa8e03d9ce6fc680
+B = fa8e03d9ce6fc680
+
+Quotient = 56527f07593774f0fa642241400985d0bb9b41d3dc9e025ca069130d93afc972d75e3fe0f798e127c3e1b4e925000459a3a5a83b15186e516
+Remainder = b620b7a3b752b78
+A = 5d6cad9e26267abb480b2b9ac5ea323bc4c3c53e0de8ce40c89c85accf0499aea5b11703a04296519047585ff12f8795f98da0546c20016a115100eddabfb468
+B = 115100eddabfb468
+
+Quotient = 294dca3b56ce9529aed2c132a9bd6c0c61de7a58ac50582f396b4fadcf7873b502bb869f801a9ab1f12384631cefee72b3e6050a7f69eba4
+Remainder = 53a0fcf5486c7a6f
+A = 24aa73803f270185d23310df2cf3ef67b18d7800bc41aad2ca13f372a27ef0a9217194f3f512e79f545a903895def195a5eb9a1a1b6b3f4de340e9da9b305d3b
+B = e340e9da9b305d3b
+
+Quotient = 16bf4dab1c29bd284c9b6649de65a4ee58f21d6a8b51627ca133fa817872b1a4a9956662db0aead5898ed0eda08511be7c47449638f2fab95d
+Remainder = e7751deb047d98
+A = 77b04d93272491322ed2fe651044e28cadb2ae7825f02b55aeb0f73b8b8a8b336802416fe08c718ab681581ac04d87116323f61f50bfd2180542fcd4a46dcff6
+B = 542fcd4a46dcff6
+
+Quotient = 388ae1c243bc9111e663c0c80495c36e8767bafe188b532b7ac84b5160d902af1b638aec6e4c66955d16bd8ce94ce6027a7bf95910f705ad0
+Remainder = 7c667ea307017c2
+A = 52f357e9a57722a867d8199242e100f06e8df810ee913d6992bfd9dc03ed78bcf44d692aaa7be806df0c9e0802851d7ae8405f76114e6322177907198f85cb62
+B = 177907198f85cb62
+
+Quotient = 33dc2fcceef7dce92e3a9df58566c6e28d03b58ff6ecbbb31e43936cda6380a56788285d37b5e8f11487afd78c39cb2150cc98d9d78a0c6cb
+Remainder = 429a380c9f8eeeba
+A = d99cf9a0bfc347c9631ae8c69defe1f1509c3ecaeeee5dbc61317bb73fa5cc6e704f64c865cf4d898f8a2f63214dbd511f61aa6e09856222432376698f8d2f67
+B = 432376698f8d2f67
+
+Quotient = 18ecac9e5539a014cffd8310ceb1170577cb23aa9cb3c523d57ad83069d1609ff743cd3c275b67097a038b85afcd7105ad21672f9ecbbc7df
+Remainder = 37924fea665f5c92
+A = f87aa8b6e62b09291e0e9b832ad71d8f85d60501a8d89d2638dccd4022e89bc4932c186a198557282527dfa86dfacc2f90fe0656695b61429f8220509f5106b9
+B = 9f8220509f5106b9
+
+Quotient = 37c0649a53c8cab91a7458702870bf64cb1de9fc1c6b9a3b92444119d368501b62d3a5138af72bdb7752eab8af6bf4e3bdb9e3beb1805b88
+Remainder = de179463e3e91ad
+A = 995c04c1f24c4efe88393bab7a7545e39193662d5db7c8e557d6c554ed4367f5af82c463d0ba6bc3148620481140add5677937989e03fb52c0323980d8841d5
+B = 2c0323980d8841d5
+
+Quotient = a6d193cfe7d8983768ff29908ee6e07fee99927a4bc4ef41d01f63f3b4a2e7029630b7d925d0979458cdaa903771286af672253cd99593b3
+Remainder = 6bf69921db298b3e
+A = 55c856daa8110599cc4fde0a44acbd69a68eb177e0438f7d843ba0fb74caab2a7e0c8a6f176f5555779e65c555e9157a16a1497edf36ccb583a458f0372a57c9
+B = 83a458f0372a57c9
+
+Quotient = 63f379bef9866b59f8bfd6bb0120a75dc03506b0034e7440764afc8ec14d8d735aa6f03a568ea98d0a74ab9bbe9c6e11b288467e5f79a2539
+Remainder = 11c077beb8667d88
+A = ff1fc3ea60fb37ff23e2f2f4e207a86e055cca41eebcc5bd6376904b51fb3d233cb04666fdc92be33239b5ee552870e45717890e35fdbe3728d6ff55d5662419
+B = 28d6ff55d5662419
+
+Quotient = 285ba8cdfbf00b112e496ce65cdba2271c82a273b3d30bed82ef2d360790c5deb97f3311bd5eb9876a61e33b3a37782d00c2d5ffbeec752ca
+Remainder = 1672a8aa119c3a1d
+A = d614352268930d301aa4046cd38e2eda4dcfcc52eac984943f2c863de5c4f8a44473a8ecebf12cb8f4da4722d305e5c9c3eddc0109d416e854df334dbfcfdd4b
+B = 54df334dbfcfdd4b
+
+Quotient = 358178128648fa9ea28dcfe68b4cecc7071e129e3ce4d113f5d1e387f7e5a412e9d2dfe5ff16d9987a544004d213ade9c134cc240eeb6871
+Remainder = 44c3fdb374bc0c30
+A = 18b973dd011969e29a1f4a5b8f118313f715c2e31dfebd9fe0957cf23cf36eded89c38637a8d3512bb23324ff2a3627d5b942300200c823d764b7a6c12d1c91b
+B = 764b7a6c12d1c91b
+
+Quotient = 19ea7212f6604d423b308fe3f2f4986f31aea9d6a117a3e207e38ce5bbd8d7a866285ac60433630de547fc84e364c451457fbf864a82c6613
+Remainder = 2718de2dd0796f08
+A = 83577f755a448d5586e19486b04de7836818223ea920465c4eee979a9ce5696ad8e2fd5253b5d5dcfdf355465e8c0819658ccc5580fd29b351169b54c62b779c
+B = 51169b54c62b779c
+
+Quotient = 13e0c5b9905770b60a6f978d1c983cbc84dccfaed0f4222f534df80c7d3d129f5e8f74f19581332a7f6d383915424c71db4ca19bde2591fcd
+Remainder = abf5f6c8ab6ed4f4
+A = e2bf43c91cdbb244790eb165cc13feafea36f5187cc9bf8aa8cf202042efd5441e3822a1164992da5be750aaac0bb11f09375bdfbd4a39e3b682c7ee6ab5f5f1
+B = b682c7ee6ab5f5f1
+
+Quotient = 3919f31521e87f90df3a4463d0c83fa31e3f569449009d307962d26f07d854e8d3f0badbf55311c206bf34e6227949327a93b1a5ada7a930
+Remainder = 6c3802d44dd4668f
+A = 2546880cc6f97fb379afbc4a2664115ba7909414f35a5bf88be2ed5187bd1a24afaf82eeceb0b438d4999ebf9b7ec752236669425bd3cce6a71d9ad67ff2ff5f
+B = a71d9ad67ff2ff5f
+
+Quotient = 121d5ad4115c2768b962e51d09f426d61624e0f203ac6c923289b4e7964e165b34f3dc1ff938a7cf37478d407de251c64db71d3ee629c1035
+Remainder = 660a35e1c1245910
+A = a36d3250c123697adbbbdf489e6cb40be57febaff654ca951c9fa0b396b1714c55ed6e05e468153ac443dabca29de9b43cc0cc4e62cdf24690593662c86fb5ac
+B = 90593662c86fb5ac
+
+Quotient = ad81debaa02f6e60da58b46e76ce041fc4da64138634ea7b3c165b8fbda027eb64b6b5339e70babbb83430d60383c2cfe22029e617fd03a7
+Remainder = 2e4aeafa2ad76832
+A = 8992cd131757ba5cbe54aa58be115723ea3438ddc782a4d1996980b7b312fa76e4483584df744b10340e5fc9e468690cef538920a732a8f0cafb4e30846cad1d
+B = cafb4e30846cad1d
+
+Quotient = 67a71b9ebaec91121a8cf6bc2932b6be01af7954eca69c5202d771c2c2d13683cdf90ec942a3445771ccfe484f947f078de825ea88b3c05a
+Remainder = 8395953f744cfb31
+A = 4f8ada84096198175174896167405b85cbc03fe0642f6b263a70f9a22f19ad6c9aef38da8ac036d409e6fd925023c95312cebe04eb653e0ec473dc8dfed98967
+B = c473dc8dfed98967
+
+Quotient = 9416326e2347a541b777a0fa1b0c35d8fe76c940d24c6f6806d6ae8ac1e280c16e480786478bda3f780ee92f3f3c361574efc2ed5ca98e26
+Remainder = b8ff45f31bdb58d8
+A = 902f5e48b96b9b1fd16c3b21292ed495987ddac4e1d92b2ab10378f2966c4399d6a41eef622a4991ccd1f647531dcd145de4ac99b3036779f9414ed2f4ba7e08
+B = f9414ed2f4ba7e08
+
+Quotient = 403c651b4e571e8301c4158fc185396554bf61d900708d2af5c2bdf495b3cb539b0b9b5acd0d71654b3aa68024961d5a7bc9e2788e6c822b6
+Remainder = 7856ec047cec8dc
+A = bdd6d846983fbf140173a26d2b709b9f31b4fee1eac9d25fdf0ef3523be0e6afb372acab470cfe1806b36d84017ec99302eb9eb5eb2862222f4916d8b6201d14
+B = 2f4916d8b6201d14
+
+Quotient = 1b6d967173f9777cb6194c8f69289b91da731456fe5a1515a49e4463cd906c84f97381cabdf9f358d97fad5d3cb140e3a3de397e7f9f683157
+Remainder = 83649246ade8bb4
+A = e3da80658acd53ada7c2dc57178e697f2907c5b0c64f4a87a794ca7521105a0568a32874207646df3768ee60964b7d1d2e29ea6bf7fbaa7e084eabd4ea553a72
+B = 84eabd4ea553a72
+
+Quotient = 27b8f1e49e404455cc68217a20766590e749507976a3a6de25a7cf2c32593aaabb04d84deba1ec6bbe048a2959ffd747243c396dc53c9c811
+Remainder = 3daa032278ce53d0
+A = ff3ead7c7b27f607d16f1ef4ffa91b6cc28301b9256cfcb0c22b6818371ce648ae8812dc50a86e4bdc0d0b1e5b0d55c6ba07b240886a6d5766cfb3ed0937a543
+B = 66cfb3ed0937a543
+
+Quotient = bf987f58700508356fb6274f64a9f78d455e4c436fc6fcc980ec0800287ab3789b91c29a8a72b16645ecfeec926b6f8242f3c7dc3adb40cd
+Remainder = c007da44faa80584
+A = 971aa67c9af10f70977f600e10f9278b8e66d2471956da38e5f4b3fedce9a5fc7ff42b800bb4a78314c70bb59394d0880383f5182b6c1960c9e5b47ef8e63be5
+B = c9e5b47ef8e63be5
+
+Quotient = 7332104442474715d7c4cdac15fc1731240f8b4dd0e6ff3284a15a62a8f9a071dedb87f2220efcc5839cb7e6933a8f65d767819db26e134dd
+Remainder = ef65a7789f54174
+A = bcea2ae4b1edfebf905a5820f0481b6c58d76a69df9dbe84764add3f49496a5d7005d645eaee3754e0ed105c13a114e6a0eae5cc4efab6aa1a3d3a0050fa86f5
+B = 1a3d3a0050fa86f5
+
+Quotient = 3f6182804a7ff12fe7ed3c8521b55564559b1a47a78e1fd56597b9470e7e0f6e7e48c58bc8841c9d118718ccd5e0c0bf9a08d8e244ae60da5
+Remainder = 398e30aff5bd284
+A = 2b877181a960c5e29ab1b2672ee22539256a82369e8f6cb5bcfb69e5e4a41f782e89b58fc0ef6ca336469ff929729f8492b44f12199f0e1c0afd12b2c999e787
+B = afd12b2c999e787
+
+Quotient = 1a80a681d2c42edbcbde552323dac3a1c03b43251a99b5549da6cb39ec6947daa0d574f0df68512984fa8e269b0b27a5576b3aaccb76ebc23
+Remainder = 378e44fdc7a5ec4c
+A = d37e62f44de27a1418f348139eac5ab9fcc1ada21ea6d7695273daf638b4d7eee6745f54b99a9678cf742d304736ee356f66d16d874f8cc67fae9be5dfd41a3a
+B = 7fae9be5dfd41a3a
+
+Quotient = ee982a63816d56758c29d284c19b9b984908cf0a9ae3f1f926e162a2cae4f88703aa477c5c14042247635c103494d11593c2c3839baf4d93
+Remainder = 39afe3275c01aae6
+A = 9a0b0476cd33861d2fc3137df292728e1f636f6fcba5105f384533723231a3104e7c77df46f7f34a4bdc63d5c67b418cafcf106b26ad020ea547d34edac1d3a5
+B = a547d34edac1d3a5
+
+Quotient = fb3f4a39a661e5c31228a6b7b4c27e6e52d1954e8ce262b98b61650efffd762cf2a1aec228bec5d5787683cad6b2e6e49a0de91c15c81874
+Remainder = 63e5ed36ff73a42
+A = 4453712f56467328401a69d4d749a0771732734a760a74094e50a62a030cb604e735bfe0bf0641754edff94ac0e0549e8c10941255f0f21f459e52a6cfe4d9ca
+B = 459e52a6cfe4d9ca
+
+Quotient = 7af60a7c0f995178be76c070cf49eee311e6d1e3afaf50c8c93ff200c1b3fe742b23259b4fc0b9ed0947be4fc9a6c212d86de9a0f7dbb5279
+Remainder = 19657d8ce516a138
+A = c9c92a31ad0f3cfb56a294c42a26eaecb77edf33ed40a7e6797927a0c996a7c0a701b484741163df388bb082e3daebf4e1b7a99002632d6f1a41c1d517238557
+B = 1a41c1d517238557
+
+Quotient = c890c55a8e2a3105b9bf9344a57a9b9fab5fa1fd57083d52431b695553bfbe7a44a9b6cd1f83958224f351f8511b14215d1648e88e938573
+Remainder = 1bab5b03c372daee
+A = 88341550e470016c7ab600b9f6cb410071a77f907a58cb6da4ce3e955d1e859534c2c1098fcfd91b9fa66926e51896733c36a824c3a20844add94e27f30ca651
+B = add94e27f30ca651
+
+Quotient = 34c240c42da400317f66f5151630493a2f200ee418d5ca3300cab10dfb429c2acd7280bf066fe19115f86db83d8f5b93cda714533b16abfdc
+Remainder = 18cd326996ccebc1
+A = 7e96d7b90ff09b114dd4393e9bdfb13d8ff517681126c566e18dd6369d87d248734d94bd02a1f19cca90be7642822b636369c51dee441a9d2663ec896e1d6c6d
+B = 2663ec896e1d6c6d
+
+Quotient = 10d18159e75efa8204e325e6be830b4ee8d2c07419e8276edeac6cc286488fc0c888300db3ebb5f935aa82654d3b932540f0093d1880e1d6d
+Remainder = fe9b6b8ba7c30f8
+A = 731aa6e2fb2ad1e1f80d7668c7b0642203af24af382abd207a5ffb588209e8b5caf953e9a96b478f39ec03a397d1433998e3c95e382d93376d80cf0c957788e6
+B = 6d80cf0c957788e6
+
+Quotient = 450d1f4a105ff8d1a3efbb12165ca98c67ae70404472e4862db479e03313b08783ecc42104780c9d57df0ddf19c5b4547ee9ba52ea82dd0c7
+Remainder = 169e15b4d5aa180a
+A = 902bcb1904b80183656dcbd51879e2982e2b46a547c9ae3119ffc12c6a003e4321b519289b7f22fad19d16480182d1d797c3045b2d29dcc12167f9ce5e233d89
+B = 2167f9ce5e233d89
+
+Quotient = a426f71cb3d75365cd076a6c35c10765bbc3f4bd317fb83a70083b0f7dc43a4e0b95508e60dc1dedb780e9b485f4f7a8870960de669b73af2
+Remainder = da381ae5c97a506
+A = bd59dcdefcbaecd9292c4c3685fb87d3a94c0f0ed01e43e63e1f36fb65d6c5eab3b584f3d1f76d31458c9f6b4c69869d96e943c61df102771274c5b4d821469a
+B = 1274c5b4d821469a
+
+Quotient = 26ccd4b7be090af22221729b0ca51a5e66435c2d33f8d88f94405f6c0123ccbbbbc8080cd8448a977946019ccbf5d267ac3f151ebe686720
+Remainder = c41f9e7bf20b376c
+A = 212dbeff03f14b5825f0d7cf8a7501db21b60581a01a26d522ee44e7fe69545cfcaaac64dbc76c7e3027ac39ddc2d80af6f3fca1824c6ff6dae90967d9ab48ec
+B = dae90967d9ab48ec
+
+Quotient = 801df28f4fd987b4e980760f4f2625276a2a7191d453095c82aa98a2253324ad2873abae70cd98c28ef3ce102fdd53469b9f01889f3ba8b0
+Remainder = 8e435da582e59809
+A = 48341b28138dd04807e522e341f74ac46b0449fa45f96d7fc586997c056a21eb3c399752a6a6c023509f042cf9e879f397a34af9aa2ec2e8904674f2ea3ff739
+B = 904674f2ea3ff739
+
+Quotient = d3857b72b70adff9b5dec3cbc63de7c90ccd7aab6595339b2de39bd6b9789045141d224aa4e6bf9a06e017aa3edd00e716a771b3f5b97771
+Remainder = 14135c686d2e9f70
+A = c1cea45dd46409d5e24fb7ed7d849dbb079247af2d312e01083754ed07f65f090e4dd50d23a973488702ef00936c5d78af603ec0fdf03dceea8f939c922b1e7f
+B = ea8f939c922b1e7f
+
+Quotient = abe20c90896e261e7d31bf40e7f3136d36b0b78006d12225a4dbef6aaf2062b609379eefe7e5af5bcec17126286f196f1330da8477096763
+Remainder = 230307c44cd55896
+A = 19a637e4f3051be0f7c4d35513bca4a91ca9b8082fe3c73899b70b6805a7aa0458512495cb6ee1ade55ecd5851be1dba96d65202f06bc7122633a0d905017545
+B = 2633a0d905017545
+
+Quotient = 5ed3765c4a777a903e182f7c9ce39d19c01460f389b904c3ce1d3525edf25ffe7dc0f4d9e24f0bc8b7e01bef19c83e74f17884bd7bfabb2c
+Remainder = 40f5346f8775e20
+A = 546578393e914be30581e24508a33f6560a5805dfb1c675d1ff1d6f5eaa7ee638b9e0265f543413e04e3f1f3b0895dec271c9897a48d9ce9e3d7df32c15b75a0
+B = e3d7df32c15b75a0
+
+Quotient = ed73a67932746985465fb0606fb0e81595514f1647c911c303d4d31eb0306e3b2aece07320f6fea57a7071d73150591ab2a82a7d53968a81
+Remainder = 2e495a881876da00
+A = 8976445bc318921f7e12c8d4e8e50596849a1503b5efb65e939c291de136597c05a1fd16137f0bbbd7197df943cd612118d1e55a50ee097c94331c1cfb1e941c
+B = 94331c1cfb1e941c
+
+Quotient = 5dce24b7a16d847b0c43cf365ea20bee9679fa0e8732813e827cf6ef3c9bdb7fd8846b5689ce8b80a7dc0dd05721cb06d2700aeeb7ff04d6
+Remainder = d8ead1ae3126aded
+A = 59b99e5d028e6771d27004bc19830a5fcb347f7ae04c0ba7c49130bfb198c5b16821e425c979e6d2dddc14889ae58475bb52c6cdefecf2a8f4dd6e462bbc8f47
+B = f4dd6e462bbc8f47
+
+Quotient = 170e10b399a4c5fe354b536fe59d53602102f215d5107493680ab6e181f67d75ffd45bf49ffb23cf9269b856156b5ac6b1c5def4ab1abb18a
+Remainder = 57131776937c5df9
+A = aeb35966e2a616762768b7f63ce3aee5e81561080617bbabd7846b3ca03fafaaef83dd05b8d16cef40db0a56f3b0ef6eca5e236681cb57c8793dc0907d9aa30f
+B = 793dc0907d9aa30f
+
+Quotient = 1acdb88f047f9bf679c50ed67ba01dd24dca92103f8ea2677215b6142083b64f9fd2a365499dc8f2bc61e29fa176f7d76b55557fa58e34f9
+Remainder = 5065b726dc6b3758
+A = 15a6292c9fb66c6770a8dbc6fd431d2a4b57338581f78d0860fda90182cca563eb2272a79fb4f5a6fc72c90dc23e8a95713b65988b5b3f9bcec4f0466c1c47cb
+B = cec4f0466c1c47cb
+
+Quotient = add8127c0a27c961203ea0351aed5b3c75aa816e9c2684574e55f55c7140adcbf69d2cff843e5f53c157bd60b43c45c8b6658de72062fbba
+Remainder = 67f48d3584cf4fe5
+A = 4e8938c8cc46d34e3369c5d8536b18c963dbde56020678f77cebac5f8777e0afc62ca2ba4f533cf6cf7561bdce77b6f495bc1b05f1416d1173a6a288012c7c73
+B = 73a6a288012c7c73
+
+Quotient = 688ddf883a0bcc1ff9bd582119c2fea7c059e19aded8c048390a1d8fd7d769666987418bbe0d4cf4b67009a342958928769375c1c0d558acf
+Remainder = a5356d04b64ee12
+A = e0c9e32056977aeca72e229d83f0d320fbaf5cd8bf3e033289f46101c75ef59a854982f33bcbcfd200034e8ff439d669a03fa404e7dbfea822664967d67dd5f1
+B = 22664967d67dd5f1
+
+Quotient = 39d4d94587fd1445f31457c275fd6294fcb69ba155e7da3e6cfef38ed1272d6c95755bca49007ca62cc101b038d264876f18594b8fd4c329
+Remainder = a34980d5046e2ed0
+A = 2efcb12fb55c923f5c6ca7ae076765059e15d9e75240a6e5fc3db92de184143fab1934c7450c3a380a9851846c9f43d67bc199a314e82e72cffee795d695f82e
+B = cffee795d695f82e
+
+Quotient = 145ea82eff186b7db4b11fa1514674fb9d41c698efb33227eb1abbc4eb78bdb2a280c0c4c47adaf4e010a4336cbb5650becd1ef544e223e53
+Remainder = 36052bba2867f5f4
+A = f6a6c7e33fd4c664652d696c495df387b85b132cfdfe34bbd35759477b4a3c052f610df57e49e85720489e4bb8dc923696400a4a28dd000cc1bd491446a50b96
+B = c1bd491446a50b96
+
+Quotient = 35d0c9d870348b113868282aaba22b21ec87cf421519a23b288b150604729356f924090ba038d7400c0ccd4932836c65902b4d3c46a202a0
+Remainder = dc8c7d087bf24b0
+A = 22228c8a5966ebdec64007704a373b0596ae702d62e29e468653b21a890ace2f02c27f26b043f48495687ce8c2ca8092ead21aa250ce0f6ca26129615a2432b0
+B = a26129615a2432b0
+
+Quotient = 52fc995a486c4bfd17ed9722948e9ede1c4ac2fe80e6bd7482fc47944c4337a185a506a9ca473d49073e1b813ad742f19b13d57914888d5f
+Remainder = 75c703f654ad630a
+A = 3473041ae301dd2806da30dcf06b9c09600086d6873cf3ee9d5a0be638849afb56bce2664f797de4123f6f8fe3e12acd32e33a285bb7f493a1cc13a7108327f5
+B = a1cc13a7108327f5
+
+Quotient = 1744946730b2789977620f2e7439641125dd338d1b31fc50813b34dea70b83d209330bd17fd527db9a402ad9752c26b8823082ec9971f4ae65
+Remainder = 453a3d59303ec3c
+A = c0f592d83649bcafb7e2de1a8a71fa863c1f51b595bfa638c8fe30731c6fca36da975b6f19c657e3ca29efff6febfb311c003ec68189998c084afe4979b5bb19
+B = 84afe4979b5bb19
+
+Quotient = 468f3eece20aa9d6473f3c559760793e702758a3d9cc19d7817216392c7cc7c3968778cf2fe0c3f0c1424d7512cee19ac0717952f18aa287
+Remainder = 5904e71034e3a02
+A = 1f0c99a128c757d76ae6dfcd01012f0453c8f89b00476ec46321ecb872f99a48b4da29a4abffd0bbff2b727dfa182652ca85350b4ce100fb70a6a40ab6c41d95
+B = 70a6a40ab6c41d95
+
+Quotient = 12198913ef16c1cfc7c1be13f1cc5991a61ff74935e09f0c46d26456b7cf2825403b9851d07d27e0197c1fa2ac5e32e836979a184f14cd94a
+Remainder = 33431c3df719f946
+A = fbfbf5494a9c5384c7ae3df6c02a5e1f9f32dc31cd7f437832696bba164bae1a9d95daefb8bc08e0e8e637436fb747084460697b5ef5ac9ddec06757dbe61aea
+B = dec06757dbe61aea
+
+Quotient = 376c2f902566d83c21eb7c3aa3a6fa0482ed52c253f67f00d5b915d0183c2d9a2891c2ff837fcb426a4c990c48bda4f90e0bf69d13558696
+Remainder = 31540f5e05e8b4df
+A = 2527f8cafaf7e8319ca53104229199188ab1ca5fe592bde8ecf605e17ca6446414e06898a85e177d6985b5cc6d4eeabd6b222b5f44b4fc1baba050665c090b5d
+B = aba050665c090b5d
+
+Quotient = b8fdd5cd7b2d9295258bd99e2780921cb2ea70627a79088039fc3ab1c62bcfc6307e86db4a7803f18e5339f152063f9e41d370e97b1ba2f5
+Remainder = 4ed4f2d12e4f4ba0
+A = a25bd113c5a8c67ef65aa80f1512de43c9441fec0c41250048d29c406fbdae80912eb3970457d621c552e3af7ef2d6bc1b5448e7df5be724e0adf6f71df7eef8
+B = e0adf6f71df7eef8
+
+Quotient = 5421daac8cdeb6acc2b8b0dd85b592f255ee4fedb3a9e90f2a5bedfb0f9f033d7c562c96958346bcdda4664c67848b9d9fa7d3892bc4e9af
+Remainder = 7e5661558c345eea
+A = 490aef65c81b32f5df76dd58decdec3e3f73bc1fcbdb6aee0c93cd98725056153b572509e75d2cc4b042bbeb0a77d27fbca1e39efbc765adde41a7dfc5c3576d
+B = de41a7dfc5c3576d
+
+Quotient = 156a8a24e7804c5f576cd1757dba44cb4185bc13cb56603b54ee3b70fa35cd98db1992904d4f7d99a63b3a486e6fb31141a9d39cc0301f897
+Remainder = 29e9c1627537e5a4
+A = 5e4a10e772de8dd2c96acd714f7d3880ae8ab460095a01038f3aa9b8ac8165889403b42019a1e70e0e7f32e77fb388eae3579dbcb690729c4671868b0526aeca
+B = 4671868b0526aeca
+
+Quotient = 1b0eff2ff0aeb2c02ee3cc9e0bff808f4d616eb290293b13a6b58a84127972bb417d55e1d001a9720ec72562ef3ea688e64c4f32c7e26cc87
+Remainder = 664d57c57d4952e
+A = 806b8504abfbeec4d5923f83ddc071be88e11c4394168854448df96160b95adb1fd9c288852e2f3df3e36916ba5118815ca2e83a6a7d9e074bef9c961e2958e3
+B = 4bef9c961e2958e3
+
+Quotient = 2e363b13b0457a0e9effc2d7e297df78f35e5d24d0f8ad4525b573fb2f66f374871291ee8a8ee3d15a823b560156d474c678f79ee480bbe4
+Remainder = 5ba8f49e0ca36ab4
+A = 2e1bb261d98ec405dbb068daac5efeb0a51f08149181864e9dd6bf6cfcb617b76d8facaee2ef468807e0403bc550d58e8ad9e5cc0f094b02ff6d0277fe642f44
+B = ff6d0277fe642f44
+
+Quotient = 149a5b1a81b9e47ed36be76252055bb202dc25f8fe7beaa1ce59c279b32941cfbaf8fe4555867850b2fba43b10b74534db82398320f9786d25
+Remainder = 1ef621737e81780
+A = 63de892cf5df40c98de78c755c99e94e0e76cd5dc0b49b8856fe69dd0abcdc535bb1416f0d02b4eeb54e8a939cf7ad4edfb7de4dac87523e04d8ea8637e50920
+B = 4d8ea8637e50920
+
+Quotient = dea8a9211974758752d89965eeeb93cc616f88ce757ec2809f829cbb8d99b4ffdc3f0f643779fc5e0bb53b5273a5b15965f4a364863592f
+Remainder = 9ae7de3edb6c7edc
+A = acd5cebd069f7febc38c318867ba3a562bbf8ea9b19a6b33538ba107e49439f8ac6e880c6267c29b39141dbe2273d93062464de307efdb7c6b738c0bb282c3e
+B = c6b738c0bb282c3e
+
+Quotient = e9149b347cdea84d740be70060b239af000c4336ddf36fd5159083b795c4763588c87a959df0104212a04cc928baf60b0ea72e8cccc6d477
+Remainder = 3ef5c6ee67e6f5da
+A = 6ccf1b8b406e6a106160e73ac4122a04c0814ef5a47708a6776eb52002d52772d3fce3fc05398172bba191390aba925bb23aa1eee626410877822f27d1e3cb09
+B = 77822f27d1e3cb09
+
+Quotient = 1606c2fe44cd0b780ee474a9c7daf0b2bebf62db0ba8ef5a99fe22036019890a4c7dff73e678965bb0e2a6e61d00a74a1d33dc1106842115a
+Remainder = 7cf920ba2897f714
+A = ef9a3983f26237576311a871e4a3df0538593dd0cfda58ab90b889fdb35c700f7d158abafad127605057ca0532e846992c41ec06902ce58cae0c1fe238c726cc
+B = ae0c1fe238c726cc
+
+Quotient = 8ccf17de5068451fef1c2808c62e19997c7f920d5cc0fde1f5a247cc57c6d730df553cf33094b786597a343a0ce9e4bffef568247e904343
+Remainder = 2689c40a54df34bc
+A = 8435babd279b7a3833d01988c58005d4557f7689ea9b7168ef42ce2b31a1a3c32a982aff654f271a651085335496dd826ee4b3bc27f58920f05dc6676e51c662
+B = f05dc6676e51c662
+
+Quotient = a9e78c48c779140b1d15843089765ce9ece3855537ce88cad3eb7aa7bd6ec72df65adacba2bdf6c491066406bdc3dd3dd734a70e93eed958
+Remainder = 53da0b15ac079ccd
+A = 78550cb7b58b58d6878b615dfa25a5b90a1ff631740e631c7f8829962446903c686c810c46a1551b6c1f7a89ae898435bb8e36d1bae24a80b54edbf4bbc9af85
+B = b54edbf4bbc9af85
+
+Quotient = 1e3b41304ee07f6baf1ca061e0e28a3740991c6ca2749eba70d3ea1f9cba8adec45cb69a31cbff22784a9e056e884713c0812e8c7981e49328
+Remainder = 3d051148ec43a72
+A = 76b9453d315e7a9c592e1f2640f5b6b90a65e7f2ff8ac24b9b47e35abb76fa5d303be6d501b341a882bdd9d2a1c81a9280724673f87fbe9803ed5a2e7edaeec2
+B = 3ed5a2e7edaeec2
+
+Quotient = 1921410e1a538a71d33d9c5de95593fada116200c399fa7590ebc374282570477f5f4abdd5166784ccee9671a1a23b96378df62168049f6b8
+Remainder = 1a1f4aeb882d7546
+A = e4aa84f782a65d376b10e7789a7d56695885aae274db6cb37e0a34414397a57b4a5f76dced11376af5fd11d31828203e685861a6dea239789196fe73d0e46116
+B = 9196fe73d0e46116
+
+Quotient = ed2afbd2e63617a651911017d9d02224d521e99275ab642ad1a941827983b17ef0f2067b5405b20e8e97f2ae6099150a1989df94276aadee
+Remainder = 4578107045b9cb81
+A = b547cd987638ff7e3c30fec9b728bc10c3b8cf16e7040bfe0fe9a26e44d2898c4c4d28ef525cde2b4007b2ffb3aa80fc4514a99b9aa2e112c3acc56b72ddbe9b
+B = c3acc56b72ddbe9b
+
+Quotient = 56181509251931afca3bb9dca21eedd6ed4226be67497d8d1bd0ec052af146993e7358f132e842f9b6c4934cf1b4501f5d6c5912e65c8d3ce
+Remainder = 1b9861df51429a6
+A = 32988a4e0769a5aca200f6f6f1498512e13b4904a9a311cd8a962fdd688de0c6e50b04f42cdd2cf8bf9b0a6922657f9ad195773e1250f85509672452618da9c2
+B = 9672452618da9c2
+
+Quotient = 1fa45bb973dd1d2df0002772afba55284a1e41f6aa4b0d1a6c6a4beb8ae00b52e88a9889037b8bfa9b7ee38036c57b713b48af156c3f9e8d8
+Remainder = 2525d52ecdec8814
+A = bda657ddeabe24c82c883e85822941bf64448b7cbb368468078101289b6fca36680b3884e35edc1fce5a5cdbdfc11359a1ba8ac0785c09ba5fe5cdbd30726df4
+B = 5fe5cdbd30726df4
+
+Quotient = 63e21f5568d07976aa81a2690b9e81b76fc3291cdeb010d1693d0e80191186815c7b2f83551a5f1b172640425d4733f06f4df1b2c8a7e6ed7
+Remainder = 14781a368471ecae
+A = 9f3dad0b3b56de15ac46cde1d79aba6a2f3b34d685cc810e9fa3f2d865bea4afb480d58653630319a258e9e8ded9be93cda3bc52b80a9359198221221724cc3b
+B = 198221221724cc3b
+
+Quotient = aae37878db016dd758003b85ef52acc7288b7b74c4723e3876a710baed4751d3be2ae49123b248f2b2c55a5be702c4428b1dba9b8a6ae8a9
+Remainder = 6c754d5c167e1228
+A = 4b93a98eb7b92cea0a4f5c2223e77abdfbd332b39f295b4ac40f71625d88e4add7e482adf3010082d8dd8854cf714a54fba0887de87946e97137cf7eabda038f
+B = 7137cf7eabda038f
+
+Quotient = 9881f551c4b7e67611f37df29e77cbe4e2d9fd5e17b7da3d013d6f3d4312e53dd26dfe3a2a12525cfef1ef81e6ebeeb7ef8fb4f918bf15ee
+Remainder = b14595005716bfe3
+A = 7737f8e7337160c14cfa8411236ca0354d8aeabf389b9fc4b14bb2ec3bb68286f3d82eb394dbd8062862b955e9fc8e86eb646317d1315d09c81ef51b30288cf1
+B = c81ef51b30288cf1
+
+Quotient = 4c8519d4d85ccf845fc5b8f31c27c60f0893ffda29ba86e8a3fd5fe67de5d29cb29362679abde996039b8febda2ecf71f6b9e1c1874361464
+Remainder = 10fae644af084f8a
+A = 900f7846e927760d9986894de6489e53cbbcdd59f7707917e7581422508f2ce79b77bd2c56d964a41e60baa927ca679faedcd9cd8102dde91e1f583ae834b092
+B = 1e1f583ae834b092
+
+Quotient = 16ef17b40bb73063f3cd0929cfe2405ca0ff2d3d426ac05f8a8dfadc85659105f7f728e113baab59247c4c7936ab975c08d6f1c72c12c532
+Remainder = baff11e6961c72e3
+A = 130b212cb6f3d854e4f17524953fd8592f5e59dfe92fc7d955e2899d1dde1ae4aa20d749caa349ca8d1bda7eeec2310532a7af54660e2a1fd4929335a1623bad
+B = d4929335a1623bad
+
+Quotient = 1cdd7ee2eff733b83beda5b862673177e2f2151ee0fd9ac0bf0ec5b7e05516f1d1b59ea754b0483d0e4bfb7668bb99117907a58a8ceb78028
+Remainder = 29e33e0c2a515780
+A = b0131ec2c1ffe9a523591a9453d2fc740bf885e7efc1a0158905da1e646745ef1bbf39b406564cb3da2f842bee307b36219bdee5991c969d6199279c25d4e380
+B = 6199279c25d4e380
+
+Quotient = 20bfcd06f9c54c537ae563e33dab31047aa30a6bc4e7eb0902bfbab3bbb7e65df442c46625c39e08c88310116348e9ebca2450ab463727f90
+Remainder = 11d8f2f6d4c1f55c
+A = cefafbaa2990eaa88184162ecb118d20e5999e5a8fdd25ae7f6248650ea74a8cfb92c58efecdd5d31eceb618f1596d7a6bfd31d092cf86da651f629975faf91c
+B = 651f629975faf91c
+
+Quotient = 37204c5735e4ba5e47e845d8b652cfc2b1dc715abf21ea0ecf5b1c6c8b9e596591fd7a7f41787be1a028c147a721ebb891b0abe3bd079b589
+Remainder = 1ee700ffb0ea02d8
+A = ce22d36b3cb913b32bd0e25cc14c7270d3f7b8e600a9b6732377f846adafd7fbd8a09d12fb7011f2283d988fc29aa25948dd4a0f24512b4a3bd460ee19887d35
+B = 3bd460ee19887d35
+
+Quotient = 191051194e4362bb201f5471d4bfaf92f79b6fbd119ca3dc1afffba334869ed9f8acd14fc42a2d8f616d652610a483ad90f5140e9a5ca4172
+Remainder = 74785b6874d8fa37
+A = f3c79f9a6af1c5bec72218d969620149afe8bf068cf7a7aceda977076665bb5a2c30729ac3aa976c9be379c6a5458f1501db8802652ef69d9b9f4f097027ddd9
+B = 9b9f4f097027ddd9
+
+Quotient = 6c46c17fdb03d192f75d636e1e2ab4e858d55f0f205cffd75550c4347726b5cfe036c6c901782cbe5a04f1985d9fd1dd39d747d25a6a7a88
+Remainder = 9a836be71a24e72e
+A = 4f6cf6e357b4985442a25b5c84e2cc0a5e685e2f5ff71ceba439b81f4123e16db2296dd4333fff23eea92bdbb812daf1d27c721412fa9847bbc9a0bf08879b1e
+B = bbc9a0bf08879b1e
+
+Quotient = -4984390f93e11c9a77880cfbe157dc41d43fe901c8895ac5091c5367a77370b16d42e8cc260058adf4d3fc8ee8cc6c0099804f4c319f15561b0a2b1caa7d703db82a726c9eab569c
+Remainder = -19374dcf21822188d720d6ec892bda2c084e8af84f38012da7029a3c3660c7e813fd4f7644ca80373575ff98ab6d743e939269c51bf62e04f
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 330af318ce0ffdaa92448777ed117de9c104e0f975651322c8e01b1c470f3cfb7a78b11f7daeea57614cec37d18b89155f19babeda0016171
+
+Quotient = 1a56f7d6c06a316a9a466319cbd558a99f06843782673a54775d859768a61933de3fc410068d00d5f6ab13fafc9228fd40ad41434501f8827bd7461441140eb6977f18d102d446
+Remainder = -3c3d566cd48a909292be2ce30f88ebb68e9122a3359f52d1d7b0189c467b829a9f226c0b64845715020dee12d179913ddb7f17da2db86d854bd
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -8e770450768d07ce20ff8f5f6af464b1ee5f1d0e8faaf927a19d3ff801f6089378133e822b8e63cf29c4c9ed721adfc91d3355a3c7bbde77bdd
+
+Quotient = 42131cf8f52a6a3f189697ce402a8c9439bf05cb3dc1cf8bc49dc2f07cef15b3bf0102c941b5b3bde6440abc6eacfbf77ea8da06ce932fffb226b33dedf001e9657464b0f06
+Remainder = 4cd483574fce075404dd22072abe61200fc455c15b382c7f2962ffd82c38ec1e2c60f71267cbc35fcf77fe1f9301d6b5f884f1c416304aa9f4d4b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 38caa64e74b29a7e9bbf341edbab112a730b17103831a9ecb70ef077e9660b2dd1fbf71d7f6bb4cdae2ed7cdbe9070ec9fde996c91b9bca5b83450
+
+Quotient = -11d6883fcd705ac97cae5bb7f8a2929d6f636f4f232ae9a4af9769183dfce9a9296fa0714c3f4fa1eea467a5c96a484a59d0cdd87496b9398e7a818daf89a58add3a39e80
+Remainder = a6b7984fd80d719ffe2e6eb756e4e3bd7ab51f6088e04ac8fecdc744b0385294dd23b5007910109abf40cfca814c10addcb5330e422b6f5eab6efa2b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -d25d50f53c694cddd56aadda2654ae5888603b39cdbace93d19c117af5505750aa24e615f95446862bd693f5b444e2a876eb2cf49f6c7acd007eae02
+
+Quotient = -3fa898b02c621915f44b213ba4e80b8e85c7a2f4c78df2bda7d99494bbca3eb2d9354965d83e1c9001f10aad9b3f3ed837a630b329f5a4b28935158fbd9d291a120b08
+Remainder = -320d41a3875da2e83ea9a83947f5abb1a7026c84020e983381722bf7aa87d5987ab088cb2c37fc3781c82c81bef3263fec560023e236a747030618e9d2b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 3af2721aad4b18db27842b5e539d8cada9dcd7ac4c5b885065dd2496a6f76fa73c8a51b239b5c068ea6feffda22d8ea806fb488ad5a94210264597edb40
+
+Quotient = 179307c3e14de14a744d082825ed723b996a4e15f156ac473960583138c43f4275b4436c50ef8f21a7b450a969819b81c15bc355fbc5fb55cdd8e124d931d142851a
+Remainder = -9c8eabd36a25e995c1811b79a2a0357f6aeef4477cac0ffdd130046cb2a647f928a34d91d9b489d394965719cd58604b957c693a93145328e5568d33d88a9
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -9f2d3da1da77914df66bc889a40847a0d705d4648a11f282e09173d170e96d84b5a45092d995318fe7a954b54b88b784423402519a38bb521e84a4f6c5485
+
+Quotient = 6c0f316406afb4cc2aebe34f7948422de0b612a02dc47f4ae59419c579fc465ceae1980a3e524fdfdbdfad4862f168a9851664688c9ba01a8bc1ac156a6276643
+Remainder = bf52a2fb6493eac22fc8b334ccd8e8fa347620539d9189d535373f94503310a027c5423197c7279bb51ab8c459e27f548d57b55740320e80b753290d077aa7f
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 22b9e55639ad3ff4f071a49c8bba6bd9047e162fb31882421db8ec5ce46f28fbc35040bbc74ead5a948c47c43e9c7adc32fa52046b53f12b07b5224e0d8e93e4
+
+Quotient = -1008fcb6894d8c411905136fb3e05b38ec5d8df35db06379fc2d6d3e3579bcb34fa6e021b98b899d9d082c111b1a6ac8e50418fcd5968ade6aff8828d8e4777
+Remainder = 3d7dca387b00c677d855fc4af4d86d86331fe4309929039e828765f0937990bffa964d3ffc5d4f2f4b8bea978329e7cedb847c7cc341ee52217f903ddcf9446ce4
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -ea045323f406bd7ce25b3ab4993b5f6dd92ca80e3a02607a862deb13470ccef229fad67ae958cd87fecf4f08d9609595077d0d1360d9fe48c4566e237aa877e7b1
+
+Quotient = -42a50301031962754ebf9c4b1e125e6df3dd40ffbe09c044b1cf4b62ffb4f92d298b05933a450bcef65e86398da80740a610ba45928000a5c12d26e9f6a4
+Remainder = -c5485b82cfefb3f980e0fc7c6cd89b1345a8fb942299bdc36ed4ff8916016315a0da84ca0ee2824dce3c7e5ed49d517c45173c9c8e30b224940af6cf828c73db8db7
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 384e523d5a687bd1a90101e43334894b6a27e8c6809a8bf5bffabc34d558a8309997dd6f2a3b7c1a63100dcc0b6647b444ef7e5aa4a9c52c7caba1ebd096c3fae6f95
+
+Quotient = 1054439945ccb5bc5461fed04e364c7a36d5dd2c0428872676debe07654b2ce31e435a90c81f2bac1032143acb0c49ad101398feee8426bf270bdc0229
+Remainder = -7bf919e14b2559ab82b3c1bf428d083a4c851a7a1fea44718377e9e945caa5cf48e0b1ad727e251bbb330292402a75ecd96a56db4ad07146533a3ab5a717d0a25a3a7c9
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -e5cd83a644ec86b94f5e33d4dc307a2f14ee8653288145dabb2b5f894560c164470197fb9e37749656f47df343c245258627aeea17965fea10a57336bdc6b4a47443492
+
+Quotient = 62675274798218da426a54ed7158f8f737b7b3c328a9c351371f0cf61f41712f9b28741f187eb635ce45866762fb5fc5051776151d202e2556c5845
+Remainder = 1aeb5d1fde3c259917e430e6790b00484d0d9508391ba6ebab0f6299190d4b34f5f7d8ea2174974471a1e28ee2c15e05da645db971f699d5d0e80569b7eba7908ae579f5ed
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 2622350611b486e6be7a7c1c073c230d604d782c2696038a3233ebcc3f01c6a711969094e47f49e294f2c5bcd04fb1b7c0934f19bf6e7aa519a8d4ec2c172ac59cc1a57b26
+
+Quotient = -12970cdd96b92c37787971cd8dd166999ff241be881eb9543ff29165a9c1a3beeb38b1910a5724ffe2b73ab95ac1ca88d3989aa531374d4ec6122
+Remainder = 627455cb555398150e5b4c1c53ee16dac8d80d9616ed1ef40031424287f8028a9cad1a10bdd8430f6f65368cfd00390c8d4355aa5ecdbd1ff0266a1ade235f33cb5309446961
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -c9dac93cfb7abaa3fcde359e09a92ab0b5c06359bc09ae9bade3c6783064dba90b233b4c8d5c6236a13ef96c7a223e37bbdd931eae61e845e5a10088f75b3ff5f1158e833b15
+
+Quotient = -6742b3871dece5986d4e219bf5f43c101da8896f247521fa286fde696e0b71ffeb3b6a3e4f33710c9ab150b7a1f747cee76839c5e7f2509f62
+Remainder = -203b2d6eec9d485f7b439fe9d4c640bb31170af38418faf4daad577c30e44ca06efda55ceea4fbd959b3809fa2002b6e2cb891decb09334ed89ac66ff05502036b2155ff62f8aeb
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 2457088096865cd052e9cd9349c6e5e34e46c89d6e860a36f8e2a0bb1e5d983e07d05e6f6b31edc67e4793cb4d40979c029c80a13e654b66c8acf6b894f615a3ac800bbd09ce020
+
+Quotient = 15eafc416460d757d0abbda8d094eb535262a71dd033c25e704a6df54265b6123247e5625da476e0c220ba88582a1ed94265135bf8bf1fb1
+Remainder = -64ccd9a0ae0b0abcb5507d51b2e6c8e52e67907474605c439796febda06eabd8a3185fdfc0bd088cc49fdf564b5b45890b07269c15b1aa2f993cd9872b97aa6cc37dea2f03444b3ed
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -ab34d3906d8a2b806b22c73d44948d703c1e05a9337f75cb0b5df5205c5e2d23f8a92d8381372f9398c9ac2f7b9302b83e48b26512ccd0b06e6b8ef1b930ec2678d71e2eddbf7349e
+
+Quotient = 3b22916d9fe3145fcc3b8872bebf5aee4e14235f618e0aed09199852c6bed80df39256d8407d334c06f4479f230913370b7d451fad99d
+Remainder = 1b02a7b97f9ac1f6306aa00fff0e59f55fce463ffdc640364a950df29474e08b67cdfcec0628e973d42fa1e4f98e988ec4c47e4915651a1731b71d5e36a10a0d1b3420427dbb79ba7d52
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 3f74cafe9ab0c1b307cd7571fd442665fa3205fb2f45b3811b92d1d38b096a2025b8170663a29c52ca84da102e62048e583fba96a594c0b23952fec587814857c25221ff2cd0533cba6d
+
+Quotient = -12ffa4b6fc369404968911c17358012b993c18c2ff34122e06f450d3d441926b5f5638b40efb012d76d8bcd3c0012d0a0ce5d55c596
+Remainder = 64548684fd5f6c816bd296234740a4eed772570bd4a48852462f9cddf14f1350ce7c7c6a58aee8f66ad7df87927458db09e3af08eb5376de08444f35e5171cfa0992fb27f70b81574f6e8f
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -c58383afca9e1c480ee75d3cb6b0b99ea42e827d39fc96bab6b0dddc97e3eaaaec02a74847f9f7d49937f5ade3580bfcd491990737d172d4079437067251ab403c36a9826e974b113e2d2a
+
+Quotient = -4964410c2b038573107b0151b36177cdd62495e0dbef536b59c8aacb8836bb45e7bb014e5022360621e8e82a273d0d462b8eb6fc
+Remainder = -1250c42f8c9b129a5c477be446b86356edd1b19409d362c3a5fb5d59c30f1c3fdc1424a88a0d6ce20bae885905d98c8a5a6495931f73edf4c60112ed78834e3bff6de3ed54c867fbf16a1cd53
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 33212ef4a8e80daf1049ac6f639f8e1990142ac32f7ebc97675ec90f8eb1a2814dfdd295ae67317253d0187ad33f3932a3a7efb056d0a3c87d28e64e23e9f1de751ee6f0f61c6f39d08d72f0a
+
+Quotient = 17f77efddeed52ef2e423bc2c10d2ae15c97384b766f4108474964c2a44789e61249103d9f5fe00b4d612772dc6ea12a42e395
+Remainder = -1ec95323b7b95169d5ec0667f3cbf683e98c15dd0fe44df4ed9de9586e43f1f69337e41a6d11d889452665dc0b03cf8d9ef2effe0b350eeb9f6468751b8a2c42608ba2a33192b770cb62381a966
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -9c91fdf2dd1827ed103a102db254630c278bf8b47bb12a342a92f081acbdd8ae5f5476ae194e24b187011ac25b19fd09e6e690777f9d3efb6b3a32c8f5905e1478a27fe4b1adf17a70abb4e7571
+
+Quotient = 4f5dec525ffc737094f40d27446ca0be5b7a2aff02d51d99609165c4cea0dbbc1d92bc0a8680782b616c149bbef7f5ca912
+Remainder = 1bc84ce56a9a0c74962681c02ac927051c81f3824d9f3f0f91465df333ecdb449473d9c26ae3abb9509add5795e89ba5eba6ec7c89b114c86e6991ca0c185b34d6e66925a14fd82809dbc4936d273
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 2f47be01e6dc6a86097676fbd472c2af0c83a2f743fcaa885e44fda7e9f350e9fb7a8cd07fda59ccb7963f1e95e6a1236f5f94939decdc85afc0e523c711b24641c844cd3113c17fe35ca988ba407c
+
+Quotient = -163cafed5bcfdeda88555f30bd4cc2da2cefe2bcec9a7c19c36ccd04a45121a5a0dc28d0bf6ab7fa4b78933c47a5d5286
+Remainder = 93f856077f5b2907cefcddc4d767ffeb0acb7af64bb9dd8a15dcfdda6c244c24fb8404ff9ea2fe1dc337faa05930d33cac4f61e171d0236e222374cb3da76396ae1329a407fb4ac652fcbdc568d0fafb
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -a8bfcac452a5e48fee9132b73bc2fef771450143ab80aabd8690ce54c9b52c2b5a669076a7a35fa6d926268077bec6d90b722b5d074f28ce3843fb0147e567c45f4e91a11416c082762e71b5c6129c08
+
+Quotient = -617dbaeb8c6f9d584e8eae923c872048f9f9bf039ec6b50cf8f09c061bf79acc3311b37c2502e560848c05ab316fe8
+Remainder = -1ab4613767c4f1f7d127e848f2bb7c72a3a9e1dd6173b63198b80d3bbebce6a31494f19b53ad9e3a77248e6f9b26fc59060e2759a20dcdbe785297bbd912da9a1819527fac550d64bfd20ed1f96450c30f3
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 267d9397138fd0374a7a58593d41627ba1203a646ec2c04997acf607e9d217b8f40183d2f9304447d6f7e727a476e636ded4697a5ff30a9ae3d249baf97969658209c1b32ddc0edf920b0b278e9b5464313
+
+Quotient = 10ad85703fd51870306c5e36b51512341d6d39e0bac47a03732787b2f62e49c76666f7f49b2596de6cb5c5b2f31b
+Remainder = -846b4479713bb19ebb8c1f1b75d2be0f39fc1095a3d2ca149b5565146bc19382b86e5ab0d098ab1fca1ce701d582400190fee34b602845c3c0c498925710f0b9e3af2412ed5ead1fe03d77e9b2b407ac83823
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -e0ffa4e120f2f46fd1430b6022fd03f71a22f9b120f8d40e901279be235b32d94760fb8c2403d23cdeb728ae73e2b16af7322d6ebd5f5673187668c99805e700f1e997423886bbcb851448dc1ed4cd66d6598
+
+Quotient = 41567bbf616ab41da51108d7edcb5a8a4877c5a8663b3aed7559421b1fcf4b535a54989efedfcc935b3917fcd
+Remainder = fc026e554a0821e0d36b796fe6a676fcd7383a55fd6158d78ace4edfc3d8aa87c65f0eb41baa2aafadc51218b0562ff4b5c9b17bbe84afc491d9e309217a5138ad48dd51e1b1a9aa51d69963b608ec47d63fcd3
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 396e9b45ce43d3f89386cfad8ddef4b483ecb5173234530c67447ab74629d246c18b9da09522c77f598957e3fd2a1c0c9417399912fd547fb1023ba6b90d63d223bcbf3e7ba155e51bba7e8635aa5c39d2b9dbb8
+
+Quotient = -18f1f395347ce8df530d9330c61c0e30ac9531b50a0af2ae7809db1258285c15ba7a436121287990fcdbda2
+Remainder = 51417b9e9995de34316a66a2f70c146df8e36952fe64124819607bd8691a465f4fde98e590dcd56f0faeb95d1b67751081c2393626713c27ec2a2123aec2a4ec3761e5ace4aaeb612d46e52e16d72a186d2ec8a7ff
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -966dfc779cbf9c388a84e947d1128e2392399ff45d9491259c7cb19589154f82f41e852e0c6bb5a728f6e87ff4ff95abcb9b2b57af1b6b7fc125497775ecc1338e4bbcb5315f7afde4e283347184b908545211afb6
+
+Quotient = -3fd962e88dc1d501fe9335fff8b6b2d50eea967c3035a3dcbcdc9599b81f9a445ed5a6ae7413b8865fd4
+Remainder = -97f06f6155f8d0ee6850728192e0b4fcf55fbd9ba982c5f1d598ddcbc4e1c4be0e209fefa6ab3b7eb2b4c645e4dc40217202285ab0a7270d085dd9d4fd24e5293faf6797b4c3c79bbf3ec63fd82942549f9e8f862297
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 3ac566d6b2d18572360fbdc626ec488aa316a74f33d71a17a2d0e1d2bf26395623eb91dc4abebf2f944e9bc3d669fae2e4332088e9ff9d9f43927a7888b1390ef60f05efd6e63ec606ecb3e164ed6dbdc9d088586aa71
+
+Quotient = fb5ce21bcf28490afb64e6746a1a81792c90eae17407c0b4c5ebf2464eeea43e516be2c615f84901d
+Remainder = -3d255bf94c3d610c32266fd472d070c0f5e7dddb88d32723b2e1a20709aed2faf28701e0d0227c2b33ecfa9e708e5ac354a97be732b786210d86f1f05d191513386c580b1ad1f4ac6890f87fd0d4270f23cc5c2064502c6
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -eedb64a6e204ee3d6df508830704f1d5b2d2e627698d38a114c07458ea0befd593a80dfd2e08fcb1893adf57061ec4fbcd3130692de7c46f5ca51361e9b79bb7a91963618b8e5b7591392a5f0e3be954e8b9978c97f12e9
+
+Quotient = 6933a3123d0b32693351a834751345300c49324b861a663e8700bdb3b70ad996747b284a8ea5c02
+Remainder = 13849ef93cbc77460c3c496e8f31f7e01a98c21cdfcd6877547161f9601680665b394933d3a0824f0d32854508c89f0e4a0873280c779c7ca636cd89cf6ee5d42a917b4f382be3b9654039f623c11b43164827f870fa0f0781
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 23ab6042240a7709d43de7ee17332a9710bd0d913c42b3591341527bf48d5bc30abb962482292d45a15cb03c9457cc8d78d1e00aaa63358427b000e59e4260bfe1e2cc603e175d7fcf02bd9f61fae3740cb8e10a510ea3d1d5
+
+Quotient = -10e67cbb33dc6e24765893a047252766c2bfad8385150689dd4fec9ef495dff63ede1fdf78bb6
+Remainder = 9dabe2cbc734b910fa1bd25616daee5657d25b6e4dbc2cd93cf8549715c87974a8336fc5070d86c11f6b670d4b3bd5ee8ae3af2bb321fbb4f8fade3f5c6c2d6c366b4d800dd13ce897f13b0d3fb79f1d9ca525b4e7286c56ff29
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -de093dba98747499f2876c8b6b7a6b9587284835ae35f0716dd594c826cdf5b9179f2c6b08d800a77a6936602ff2b64ee0b7c94493bd5009633f5bbe423454b7f018ae96c21230510ab4bf5db394ff153b0e9eda3ef90eb4c253
+
+Quotient = -521f5e35300b9ec2742ff472cf61235dfe2e449772afa638b1adb812cccf269afd164b7602
+Remainder = -2ad10e8758e1d358d4744ad344ce319617027107c0b8db195d1b58c6e6035450c9b377f026fdf9e5737750af5615cff2ac3ccee623c060d779373136d48a735b353d64bcc5f2e6ea1e46083fd799b5f57dd5ad0ff3e6df9764af977
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 2db1990ba1e353a1a62de1b914ccb691380b6ea937c13621a29f0a40ecef460cea52cfbc77d98706fb3c9939ceaaf962fb8003b0cfb40535e0dee22e8e7d04b5648fce2e58803242c199421cc4b26cae776d3603f2ce410ddd1e0da
+
+Quotient = 1d45aa6fe6837a1b7ac95efd55d1690b66487202949a286fc85da7ac0b50b860215e44fb
+Remainder = -7984639b596f1d4e6efea9d8b4719215588620ac959034b303584679a44fa84a4be0c89fd2e29f54e62959f9b7a858c06b0cc051176af82d4b85e7334555ba11c39e6cfa1829995c383ba81dbc220e527e90a1d440c1d069703cc1370
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -80316fdc405bb002990d3ef7d0e98defcd1f0e370d1e51db2d21ecbd96230baf69d00b168afcb7b8da9edc3ef7f6621ae5c5a0d7797e5c92283342e42468dba1036fcb2ffef1f493ff97826477364f6b5a41dc56d6389a01b83eee041
+
+Quotient = 3c0c3f7a777e611d1bd0d17d669a1ef7920b72ea8de06d4b415a73b836e37d6cf0780
+Remainder = d8c77134a75584ecd5ab29e97a909ec139464901f9cfcb1d3d9e29a63d204615b6845d466c8710873980f107c40ab54eca9f8933ef6d726f9bd0f3e9e97eade5eb1a9bcaa7b01b6ad51ff3ecf67d6e4d345f128e990494a2db434fcd3ab
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 3e7dd961be36c0c286eb9e78bf3b33e6f9bdf2c2137a0c660f1d21dea31ac9a044e526bf47ec8190e137a60f1f55e947046b9cd04a2485679e48cac80a1bb064a915208889289d63a6e338cf7069ad799861c31ec6eafe02a4ef2c2641c9
+
+Quotient = -178d749de2dae3a2ea4898c59aaba98ad9f340762040f5aea13cad45a793f1256ef
+Remainder = 6c5d9b19aed9f099255b6e3d251aa50d1e534e6c86d82eebe097dc8dd0748201e48ac62eec070a999c21f5c7684e5a700212e9079b5fb731321dd1e16ca82ce80c1f5c17fd1720f1353bb90997f47f5fce335a43a6f59facff0b3724423393
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -9f52ead13916f9807d0cf0c6699578af52c54816828f22de62328fbd7b4fd6c3740ffc82af4e24892092c7ecac44b5e775944445e6615fce25610984030a345731f944128f5734e6e315a0ea97aafd7563105695d026880d065761687b75e8
+
+Quotient = -4fe43bfa9417839ee408b254603c3dd176653b6915a89de5b781b400162fbed6
+Remainder = -1c15816e03751a203ae23c48965c8541849b09996bc81d28e28d7871fa87d1c3b2d383c056d3084d7d01d853bebe270fe2c0839e71851e169d417c47caacab2aff8a8e05f65dfb20eb17ed8f67475702fa83087bd868246cbb885d52639797b85
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 2ef8419306ebfd215d9079c7a2b959a53ca2f4553845e3cd32caab2635c0e77fee8c5c016c121e3cbedfac57f810c132486ba78df9e719a976e0112516893f14cf9b89f95a89aaabf31cce509ac8e7e62ec3833f0be4336afe6d7d73518141d39
+
+Quotient = 127e8c06e12943017f9dd57ca24dca0ead230092811d307386c81b6efe009c
+Remainder = -24f3431858d5aee412443feab243b465b849f5dc97e4de4db88c7adf774d9bdda65fa0a28cf6b18eac6078b00cbeed2ac406f8426aef868d4b59ab045825d4b0a18af6c9105e32abc72fadef55b221278d329ff6fb9019630411bec143c4156df7f
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -cae6399216401dec0f8ff5eaca884ab061469082ee3a18e49e0b4d5f9cfc98a598c373249a8ad2374e0b3de71370e93a98650684fbb931aa5d8b4482cb0be142492bb71743c251346df66896806f926a4a5dd4c16ca3294f01bb998835e6583d29d
+
+Quotient = 3f180694e59df85f48ac02b6d4faa26278af9641db18d79f198da5d802f
+Remainder = 36cf82dcf8c7ec783b4de68e0627a4a4b2a508637c176de09feef62dcf382bfa5d8b88539b5ca2cab6cbbdbbd0e54c092f00ee13f4a352cb570034cb0a012cc0fbdb6ed32967f3b81d146f352139bd3d9a5c27789468b7d79b84d6a8f6085f859532f7
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 3b7983bfaf565c5ca444367654a07b8bc2bf7fdc04ef12128c392bef2f6b67d9475b4d2f0ce1c380913aa98616fbe1d74dc5c9d64df15f5c9b87a8bfbcadf335a6e8f863c7a01ac175a7d79645ababa5f961fad7d1b9926f7284e254fed33765339e0c
+
+Quotient = -11f635baf7b7d613e84dc38978a21ade2f4cd741d0c4f6ae592d93af9
+Remainder = 4317c686dfd56216bc4865f8dcb6a3446e13d8b33861e74d6c4a3223c387ffb8caeea0141049898609ed1abfc2adbd21756cf64a72272aab6c0b8f2177419abcbf9086635dfbea80a7b884181f2f2ec9a402cb0505e8208909fe062d5e6dc7094d66af62
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -d0ea50558197566f22704e66a70328cacd6f4b7ca9b00c16b7c4b4e7dcbd47c9b2526b3858ebb4de7a571ac570872f3b44ba1fec655c0778a8a87ca24851f6072c5c0b7591b5e67a8cdaca78fa46f201e02379fcb9a8470e4a4971acde36cf501d369751
+
+Quotient = -64a078497f85588d3402355bf3e83d25ca1f0ed2c24a395ef6de6b
+Remainder = -87fc31ac66a24ebd629a26209ccac1b2c85e52dc83c5240269ae5a27333f33d31152c9470efd41472af034e8536bbe94b0a49e892b1d23db3c13fd84b7395d7e3f19d7d4cb4a4c07dd1860826696cf7202483446452aed2b4980388e7eda0ccac792d77a33
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 254a85bf512d9159b00a70678239902ee7e15ac2790ce5747c4a4743c6a0851e6a179b64c75acf312dd37a7b82a729246f79196b8a399ff476c48a05f89c29fb106bb06ef0300c4b330a7b2bcd4ea1e82584c7a96b99ec2131c885c5851343cfa6ae4d384e8
+
+Quotient = 116a06b1d38067cef9f55875fee1254c8ce39b42c19fb232a287
+Remainder = -c15a797fed3810e4f536e9509564b2142ffbfc0c961ee5aa923d43a824765c05d2a99fef79bfcb6310c77a91d9bc6d0762bd687493865de270c99989e891fbf6da7ea5c7c7a1032449457eb73222a011bb755ff44e4bdce8e86f8aa9f687840c0832f7fd8ce48
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -d77c14100d19fbaff6334ca6aa504001a1d56f274632dc89d48e1d517935503c26b60c047cab9e186a55b72439761c884f63fdd2a38ca1acc653f6ccbb4b7262e6215e6d00c8829b448b7ac8716fe0bfdbf8088c8c61eee8f8db43b7b5551f6278081ac2eb1c5
+
+Quotient = 6fc9533f6d0e6c55494cb1b319ec47bde8e621aa92d91155e
+Remainder = a1a70f674cb141a896c4adace0dc58cdcbe2503fd0ad36ce348dc5b8afc96d0f2f8c65bbbadabf2920012798b7ccaedbe8d896dd2674082ad3cc75b54c5c190ad56ff34e8cb5dd29c031656497d48571295d6da396d5f4cdb652732d874a79a674d06a1d7b979f5
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 21917f48bb8e65646c618068fd9069c06e22ce8c679a845f9c4ec843849010abeee12e2d3c61fb963297abca30813c446f2ae82e909ca6ac7839fb58974fa65f3b5d91fb8b3f99d948519ed56653d50026d694060208cf48e3c757f64885b4ed4328c6f071e9f5d5
+
+Quotient = -1abc689fd19523d2e295f260d248041bd00ad3009cc7581
+Remainder = 1ab5af1478fe7373d012befb319b53ff9e36899c1749ea763fb74f7d24624e70ee78faf3115c2a423629528f45295e4adec7b122b993b5c29260558be4831df06468bb1c63e8afcfb1b9b533ec6acf754563d2ae25e2adb4cfe5ee3024611e03a156484a130ee01f3c
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -8c5a7b6bc8ed6ac015ec24efff607b0446c1b736dc8b409e2f433e69d0ca015d70c64b4c924175d0e0102ebc3e1dd96dd4d5bb01cccad229e699f9d8f9ad0e04339d70cd113e93d50c10c03083a81264396f5db2d979d272798ed30efa15d52289d0c72f42582ea56f
+
+Quotient = -4aa210fbc0457fa7366a8aa9a3acb3f9fce812303ec9
+Remainder = -737bc4fdd3d5496fc7f936ccf14bfc3d93f5b7caf4718c444db7a3228b41015c67aed304fec7704ea8238ba6cccb1e94cac3bcf4764a44bafb49e5fcb0339ae44c0114cc304b9c4370363657cd2bec09bf962ccb21f6091b081e71d2bff8556600576e18d4f78fc68b12
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 324774e49bb429553c10156e8db122670d6dcaf6ef5291f515c517d7ffaee36ec5ec5ccb4d12dff71ae7a05bdfbb03ebaf4dc6c4e8bfdc165b77cae20153c27d53bf27d92ff25643b4888cb586e773955a1c02ecbf0fa6958a8ec0b832332eab2e449be6e72c48d2f1ad1
+
+Quotient = 1c8631a18d189f1fb689f896005f2dd2098e0dae9e
+Remainder = -1a1ac9612fc3354056a5378de5b315f12591ee71f0fa9d8a6b2ea2b1c4eca9947e5c4f5ed3d4b78e69ef7a1f5a9894b9c7d85f6e2244ae76881eb06584eaa98c78b60b46084b517f4882758691f91d9e2acfd580d5e901dae14ff4a4fd6b0d7c73450e4928fc6f02fb5463
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -838df2a27bbb033fa0e581073b879d6e8747fff38539801a1870f2e52d91bc84cf10f2560e93784650fba080304244dbfe9da679f207b6920be46b0214a1e490537e56d99beef3f58b30f311a12283501ad79a5407ff209d19a6efd0421aa144e0cd427380d89bfae5d1f5c
+
+Quotient = 4213d04b9f0b30026bd355404bee887b22b2cf9
+Remainder = c2bc097d1c20f050e88912f066b658446cacc7a4d510343a8d88ed007a8c0cfd5d44fe5f067a0e81536d121b39f2d0feb8dd053bb5632e3f9c04be5f6bf4091d646860cd38c96271cdba466ef8b7e2377a51d5669117e664269fe3c08a51b10e1e019ac063d670a3c7db12563
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 38ca0c2f03a5c56676a2f95cd7a69d4aa2085343af6b1d2a71e0d1c54157ec0e8f9125df2a499cdd484c04feb23b1e0042ca908db74744584036c79f21c25c40401d551a65afed0ef35f1ea000fa1a99cb29e6307f6ca0304145f7e483d008cf9efb028ebb654115a8c6b87a08
+
+Quotient = -134e043b3b88b31f89ff4bc709cfa1bd2c1a8
+Remainder = 99c1c846cbce5e9a26c5afcc0186bb1e43b2501ab3205d13fdf01dccb9b1a935bc1cf8adf74d58f1c316381577366b6d126da49991a0d5e02acaa678085f335ff8b8e975e5bf2e52a05488ebfc21a3e0d0bc5bbe67442f77bfc3c1f0c03b7f7ce42bd0fedd8a498f018d8cbea47b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -c261a6c562fcdd56e67fbd2b91027f17c95da43175eaca6e4069c16d240ebbd240582dcde953eea739a4668fbfcdc6af8ff3ab58674c95de90fdb43f64a61108b030d644a44b0319b912bb563f61e520dca9c88f411b32e99c872cf00a01f5badad584636352913b7429b99ecfbe
+
+Quotient = -448c4922b7a7d5e1efec2c3f41d0264b76
+Remainder = -2599e928027d10d3a11056eb719768e5edb1a625fc0b8a1dd4439ebd30a82bfdf89e617ac7c71622058cc64ba32dc242d96fe3ecb856f1b146f831334af562cf88139a99410dcb869b9ad6ac4826563b400b59f55d8fff262dc920fe525b12b2fa167ec237028a098c9117cb77bc3f3
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 36be11eb72832f8ae7b6bdf689f794f62cc1c885e64706d14a77a11df9761c2e9cd81d8f6a0ad0cb1696c69afd80c8bb992cda5100cf1162d600515568b9dc9c81a518da9d240888d4984df65c129ac0b4c557b4e63ee5be79a27473ff5bca58e559cb04c4ac93b61545e7351bb6514
+
+Quotient = 152474a1a76700598c18d9301866ec00
+Remainder = -274a2f9e2bc5f9d75f9897b28f840b71bb10a3e4e7a35ee1dc1150be61130b4e0e987e8742c5edb75a1ce3158eb8bdb7d657b8ba39436d7c88fbff160c7488ddff2f13b3b95ffe149a3d0d2d406b1737a7671f69c0e5d7074a151cb2776b2d13ca24bec261662f2967fd22339ed6c3f2b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -b17c79a31d5085b49793b6a6d628109a6047e3b1afc947e5212d0a9ae32b1955cfd6fed07fc60634ad15f32a9e402d7d5f750fb6d1ad958211f9e8ecda8990689e5212cf72b24e9b51bd07a6e0477dd4c02381d0ab6c0ad3cac1f620f723ab004880800736804751349f6bb19d3db48da
+
+Quotient = 5665f53d5a7405c83a5ff382ec376
+Remainder = 252d055186ec896cb3142c9e4e49c441e2ddad365b86ad21ae4ef1c522d3306c2834d6993a5e1f8c64a1ed582bad8ab746f7e773fc004b1c47814f73560db72f7237ef6e2f671d3b19a8777be2e4c662a76db87ea64f32c48ea371b1ffb15df26726854a417e18afcf49054c6d2e0e337e71
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 2b6eb2caa3ca650be02fa199e9ea6c48646a76434e268713753a547e49571f9817ad396f2cb7b16d307801fc8892f0af3e7f93ce08f7955a8acfbc0b56add4b4c7ef7351f60e402b9a8ef7fe02ccdcb4b00b7ffe78c7009268dbcf1d606c3a1b5307d9a8ee6121c6a635a742b8bf36b56cc7
+
+Quotient = -eeda035247bb13860f228d8f2c
+Remainder = 3976edf710ab42bf069e5829de7e16962d1b765f6ae6ad0ffabe723e21ab01cb9f3f5f4edb1d8c13cafc0556c0aa93d72dbcff754ae9260abd294647b71785bb049bbb865a26bba22defc458a14af019a796e942e77d03484028aac2b3798fa730ae0193d89728bf80a8728715a0807b3c497b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -fb5e55f261aa96f54983869d58b3e9f0757d363b9c43aca5580b7c0380096f396ec79d1b30037702c19be5889fc6376793cad51975100f33ebf43e0897dfabcb9adf3adf8d845aa7589ba1f6d155b25f73dae3b2f835595ad6050401fd4e6392012d06194af415b810b0c10a53bc56350bfcc4
+
+Quotient = -5b37eb0c3e3f8f8d9ac6f4e4
+Remainder = -28fde388257b9a11441c592580cd38caf2d69e2ba57d43151c77d26535226e05e08a9e6d8ed470d4354e9f46b7626e5f2b22b652a2d78f817bb51598c727a765941fba63510b58fb3dd5f30717f237da43b42d20bc260b06d488c9c912bfcea1e7808544c58960a3e1355c50c889cefe75d4d9937
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 29232a3fb059242cae6e0b419ff13c479048cfe46a9063188706c6a3842674b16a1aeaf771c5b0ef401d2dc8a57f6fb4fe1b3c7bb545c18ae763e39421e6a07c4469d234f9fc737ac21ca67a5553c7ed693eede4325dbd132dbd9889d815c02f426801eff1f46e7a52f72845234acc6c153f34065
+
+Quotient = 1c7ac058af2e7bfbda9484
+Remainder = -54d7aa6dace87e61e24d87053b9d094bd160916b720d7cf4f740a4fc5a7f03909773d0456c530ea0204427146fd44d3ecec51d8627b5768de1494bf42081a8a4fa97163b0b93b59e70e533f3257723e441cafa4aab471ec4086601021c4462e1f74bebf298ef45fec98fa8e6ea97415f84c93c12633
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -83c2cdca7577b32c20e9e20fb498a2bceb7174ea9aca09d4dd2fc7a1d3b922797b4e9640c7eb9dbdb4d93c7fb9daadd680c1c7645d8102d77e9c877a9f65b13239f9a650dceefc1fd41ea9bd2b38a622bbec99cfddbc6e88f377cd51cc29fd17a27f3d0d970403a2aeeac6ff9fd69c3bbc5c2b0fe7e
+
+Quotient = 472df5f4393f33cc382
+Remainder = 16579a289cc776a47611353e158c43dadf0a78833396f8419fcbbe47d90c7e840e2c90e73e563e6c505bfcf691120ab0f1e9ef9c31db608cade70eb8e487b1113a46e2b5c7f4a172ad99b502eacdc0f91c295fe608389e61d030607a94d09d349fe1a0cc46d1e07c8db533cedebcb4a3b89afd8b924993
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 34b7f6780620246f5a0a92a768072185f02e57a52db1d865c21c952f4386ddb7e2dc1df076316cb4f2f394397cbcde1af0197fcf33e6428e6f5d42a9ccf623f75fae5940873097d4591d9b1a4cbd00074d134272700ab06d901742da695c3ca9d4f917a808113336f883e769fa8051cdcb0cad7cabd1cc
+
+Quotient = -12b4e74d76bd306d9
+Remainder = 8768fbe8ddbf60b548938d8b4a74c4a326ef335257e5f513e65a7d2cfbe9d456425ceb719407bde3cbc74c9c978970597b5663a0ec61962e77eb351adaee2d2d37f1fb55b5d2ceccf282ea3a0d398be1dd1b166d55dce04a39ef434fa392893618003adcfa61401276ce4e599051ad93152e3477ff524f0c
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -c898a753745f0fc178227a7004d917557cf3dcae2e85e95aee51e137b29c895755853ce2d61f214b80070174cad8ebc2795a7d070790acd335b383f9dc88c01227eeab85f1f29d76c1136ffcc7b9fdc073a3a03d8812c7c561b32d8e69754fff64acfd64994b7e9574d2a7cae6bfd5a6fd61dee7ee993bb7
+
+Quotient = -548c97fd02eca7
+Remainder = -939e90e281f97a433eb1c6510668d0fc448f03d737d92693b6362c692167add7e4442105d60ff3db29c03ed06c3121aa4a53c4625906519a4092e4821c918d2264ed0cf088b7da43a222877f3ad9a9fe8ec06fc66b9cfbb44e0fdca1dbe4e461dda9b85231b5b9733e0c78852da83bae557755de3680ab61d4
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 2c61dce04200e725ab0ecc5016f66044218391bdf650bc0bd31f3749ac06c24707e79526ee459ccfd4bc22834f8d23f391f2e99135f92b5abd0b04079ab75a263c0e98e46edfb440cd865269ed7872e8c1ada312df1bfd6a5fcd2ebf548d7b7d1d75bc36f62e5e9d15262bb8652a8041e5c8f4d673eecb777d1
+
+Quotient = 14622572f311
+Remainder = -6d197a84d2ed486327790059adb5c073218c56345f48c15caf6892734fff0aa7af4782738bebf24d984bc8adb3056f67e57f9960001a67fa462afd8c57ac9d60ae6517d58ffb4773b637ebe6bf2473a5490511fcdc576a4c40ed03b3afcb2fd27c57b66a26f6d3f9b2bb101502b1117ba3ce7214c9db6302fe20b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -b818674faf69bc92085b7230d9335d7bead0413f2905539a54e8d1233843ef13f07cb5538e0787097cb24f152cf54a92e62ef143e31cfbbaf3c09650b14229a4f61a783eead26430949c88a87f1618788abab9728aa52dd8419f5d568e6a109f278b2afdea91cdedca43e562d4bb8fb7f1b7aef13992fa7edc320
+
+Quotient = 5cdbb03ee
+Remainder = 1cfa68d5da7a600a7ac598b9ca1a0759f972fd9a46ba62e5e96d8f6f00fbccd0ab26ca03d14470b43793411ea9803c9409908625fd74ef8f9b2d7c2064b2e3439adcb684e6f01432a1feb0f492fcdd2b8b5a6cdbd0bf460272218bcf763974be8784e5306c219ee535baf5541b8580952e3690b585fd99f77c46d69f
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 2869338cd16322409d3efbd328b27e2ba53cbf71816ff5c093849b1d866b8cdecbd6bd8ffea0b7787251acb760f85c277ded21e56acef05d29bc728cf44f55be87cb4c8913408a01a1ad53461058a1cf94538f05ec14a6d3eba804264df957de7eb1a61b794a1141218966463dd42402c260c229241ec46afdb5a06a
+
+Quotient = -f16da1
+Remainder = d8b66b622b5a54963c2c84aa186bfde5b67a3562e07a23a5f6843bdb615a3c5d4f007ad8b275ad7e4c5b1436252efe35699cff2e0546e6dd8c7230d6ad560c51cd54db6d312be32ae4c708e9047c3a25c211e2566c58d6b9291de31612006d4e847c6916702be99b3f7ce40e1ac842908acb7f03dc120aa8998c60737
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -f8af8fb7002a9d2218dcd0f0c139b8e3dbbd48e25a5c910f6d0b6684bca224f62768b64955580306bac6bfd45b99ad77483563fc7dbe015edc06bee3ff93b0afa8f5866c23c7a7570b366550490c97ad84062c2495cff30717aaa965a8e15e270b504dbd4fa943be4f97a7fd1f3b589bc9fcf4f907a7690d99c978a374
+
+Quotient = -71bc
+Remainder = -13316e9b053a06520526f579718c326402d2a9686d51a340375cb53d7cebba99c8d1ae93388db0a41cf55d5753dd1174014ff3305fcdbd5b02de9e90c45ec0d2900ebf6ef847c2a045eab7f80f07f01c81b9fff093a779a280ae42239df79de8d2ec4bff6723788c86786fe276ae6a4dc1472442b552258e1e5b597305187
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 20fe256859a2e4c4f77db6adef78b2aa4758b29ad0787ce7e277bc68391d5949bb4dd07a9b1a79fe890c8a760871d81adfd3858e27d1bd6de33fd31b8aa6131fef9130a50f995c3be1d615d1bfb9878804b7f6494237d8ad78ac219488f17335ae54b494532f03a3fc8e9576cab6facd90c662658878fec86db66bacda3a7
+
+Quotient = 10
+Remainder = -23e09736f469c83f280052ff01071b1bdb52b7e2b061e8a1a8c6a4e091fcd7ca0b33ade885d928a11a3375599aedfe554d1c2289795daba08f07327a19a8adfc219592bcdf9fc5aee5961a48b3b1b5fc380eff5ed2ba7d7e564462397fb6c6187254ee41c74602b141d7adba99205d2e0b35da57efa96397b3a5d112751cf7b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -e849bc0bfd9560cb90e42c8e4e88df175133c14466e530716d89ad0326b660b0e617b4efe8df6b000f517d3cc24d9dd4cafa2773dafd4c6bace0aba54e43c17e8e3ff9497a97ed83e6408aa0aee0e6485dd1d89d52520d1acf4d587422b0c5cd2d5e7e81fdcf842d6331779e800f96628206e8be020ad4021789008a641f67b
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 22004040a65f9b6f120bb7243c638cf3a4cf6fc58c230da932c79568f68e31af7a7b8569aae77af671f8335ae68d6dc1698baa9d6ba9cd633a662101b45bde51d55098b50fabde8546f317ecc2ae7a39521bc075942e3751a349f51ca3c371f3b8a6cbbea3e11a334d677c07612bcdca767194c07fca78ea8a06cc3b0dc6dcb8ba
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -cad46f410062dc33ad4d712c3b743ae2b7613576b2bd7c346a8479ed679a08e3644c7ee4f23b95f1cc9111905714b170abc37ee1003956f64f0a7e876b38d524fbb2436ed56069479d8d2e4029770f7801a7278fff99b3dc76280f35c7d43ee594073f725554a92eaf4f785c18a7cf6669dce5adb0995233241f3294cfb5bd8f4741
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 2fef69f9745646aa13e0c38d77951161a1f881a7ceef032698da3fce00764959f11140bec7d7f53d6777c3622453d4525fb068da48047609d18d463a8fbacde1d21035963b668ca11d5b9ae66db13de7a7a5b66a40608dfb56d9f9f0c8880426641083a05b5ff9e6ba0d6da3a04af1af01dc218e9b4f6ad7b1d3a4d1d26a5c906093b2c
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -c50a24e5ddafb768f64677233c5cf09da1b4f06894bd68e194b23feb5c5d6844320a12a02d13ad012f13b1438eedd6313bac9c1f9bb4548fcd314988d8fe0ce6458306735307afe08a96a0c2bcd9cf126f529e48b7ff4b8266caa28c40b5c3d2a473ab8805c860d27d7ee9c032423148d96fad019490ea019d40679de7a2a3323e80979f9
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 3a8682d0e5a4efa985dfa8bbddc2c0d72a4400b8b070a8cf7450aa8f831d8a91c9ae3542641b7a4ad793e232a0d301b82664fe2c7f20bd9bf8275828a2a20027d6056b211638b9b0220fa4252d058bb485dd3c4622b1eac97d54b9634b558ff1bd5bd11085d4f3d288f7965af52beaa922b23ac0207d5763c24c085076128e0ef7370eeaa19d
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -f00fb238bc9383079c7ecad9b9f6efc622d58a76f2d5d40ec7cd7c3c083c459fbcf3d128df4d20ead5f585505515aab11c36584ca622d28e0cf037419a649d598346063a07e29c61b7a8e76d1949dbce3720d45576763aa0d391b39dd6b694c7cc60a1b4f4f107d87130402985695e1847e82cce39b8d0fb5c88bcf3b37d6dbb90baf5a8553c3a
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 2b809f6baacecf61198856d9edbb768ca2df2abe9b7b8ce1669fd9259732c8569c0cafde2e32d253094480ed281a8db230f84e780c6e8bbf3657c0b0baaf19ea973fd8daa2870c9d79f3695d78e063f9130fe07ce806a088ca267fd2820f10dac34b5b32aebec20e4362dce26eee0c29d2fedc1e020d452bc2499234d07a2a6e54314e3fd6dd85fe5
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -90ed75629073df816ec1d6dfedd1cdbed9239661e362db706288dc4d774d806bfacfd4b32c3013ec67d8c2af133b46989f12f809fe202d33d5ba53659bd2a9a85d3fa542de4a5c656aacbbf8899aa66ba816b809f2629f37b0444cd3a6dfc99103bcf2a5ee87790b8401be806b5d7fb7064ff0a6fc8ec769d0ccbddbc3d35f7dc4d388d8d28021c95b6
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 3f60052c9dfe0bac797a674ca7f11377a24c28a1396ffa0f46acab7909543086aee1995cf51852ea4a21ff4bbf6e7309cba9848a7b2e3b33dbe660bdc58d513d16bc709f1f2253648b46daa7aa037332552db1da81b4ab9850ac4ec66621648fc856a71eee3cedc6617071600ecbc5ac8636233f288ec249b7ae0bac942a5fd539d03990c4fb28a46653aa
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -c12fc156d9345cdfcff94bdd324429530ad8caf8afaaa1a82297eb3a8aecf2ac021384036749e489fae05e8776da0deca7e4325436bc8f383bed579c2d67a456c4e23871489780d760d63d0bc0d1d0ab41f06a091b44f602bcdc0bd4e817202e39ca6a934c0c9405adb5a14d24da895c58a81d1c7ce52734183e00d80a414ddd8869998822364e029b3f42cc
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 205dc6227dbd3adf8ee49dffd43f835882822b1c94f92cf38f5efc62f943075d80b33588973a0e0a8ff5e800ede21d394736ba98d4eedc53a9122f8c262cd09fe9e91cedfd0237003b0124d757797ee13cd03e7a3a257bd8df756940a4d22face9287edca00ca23e7d5e629966ef710b07e54241dbace041aa6d9f82687c3ecba818203adb376ec0b201894a500
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -82c30a9ef6a83d81b77825c71ddc563939b8508f1b7e44c725ae0f61006646ba9b86507ec9a4dfd3755ecd8bfb451c2d43a61599732b8aaeedff7a304ce0a9327e2333f75e9a010556ecbc3abaed02214f25e1c8373bfafc2c288ea36b8d5f848b76295a141d8f633609a6656c07f3d98177f5fa83833476dcd111aad179001f81d6013ca3a54cddcd8dc0ce7eb24
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 33aeafda3cfc20710f0b4a3d9ace4817eed80ca57ce6c82dc2e7946058a40983c9204ac95a1399fa633bc96cb10af3ddeee3ad2337c64391a42dc7794fca629e3e1e4e03a2ae24a000e7113b91c1b6230cce9592e45b6ee7984680b45aa0aabd7f56cab1a64ec310cefe5211821a75deef2e0c8e43eb467dea79dc8c03d2d523734498d079d5493c904a2ebfd8a3a9bd
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -b897bc87a40211ef8f93645b1f6c981fa00ab3b12e117a89375400ab5f4c64bfbba01d265c7bc6f5e3a8e26de5de9df3b8f70f4a39c0eba577db5e4b7a68f751b4a69ff4a38915983cbf70dd7e066779405d572f5bbe0719c978b6865ea1a72d90d3ec8a8c146f20d98595036b3de88a7500d7b476644913e4b63e85c4e2632048e9600d553e560759770a902cca680b17
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 20604e080549e1c503049ebf4a56cf9447d90fe699a9773915b0a65588890e15bd58f55ad7b52bd7b7992a8b24704f1dfd5fd07c70aae4ccba5646405ff8a9cbf542dc334cc0c27a790c05420b552539fbf0a155861bec0e4d9e3fbf045720ea3aed58307d5738b64252a963f3fd5ecd0587cb4d7e159b4980dcb112e26c9c34f10a192e090ade157eac1d7a6f970871eaa69
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -f11fc9682601cab97c25533b2599f50edb1ac65d46f1969bd9c3cb3717461627621c8cd401a0a0b91f3645b8804e095aecab31c1bab0c26df556adafdd7e7f4f0510e0bceefa3619e26b8c9a1bc613db03857f53e9eb5d4b8f75a8cd1429feb81edc705e5a779d5f95373d2243368ce17ef22da79a6a2672496bdf629171b7973fc4659c8eae9ae867cf38d6d7617029bf59d2e
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 3cb0ffbd9ad21d0e86e4e4dab4d237e2a17d97356bdd305fda772fdd99acefcfb8309d813643c852f66e1c6c7fa41ffd44f8335ef7333b2b3e846139fa9be2c4ea762afba4e11263c0b5fab18c5efff2a18d83ee89844f5f4db2c1325f0f55e066a9e01030c07a85e2c9bbd37b5e767ebcc9b95f474ecff24df9ae52a19edeb66546a3a28980f616eb5a351cd399e5f8436f17faf6
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -b8aaffe779855c6ae51807f8cba780aa64bc22e8fa5e33f7f1dcb084fc476791565bc33eb37b4f791ef5cf46d64576f48b5fadc9f096f20c798355861ce5d24a7be1450bb871f9821099f98213d74a5e5cf83b895ae65e0e0fd096698463906a112e6e169a1cc0769df7a5ba6812300fdd33611761b6339385e1a70f8f8b2be7679ca216f5b183140e69586a27aaa9f2fac118118875
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 2b7ee3ee34347dd89ba4a81415aa1269d0390346597b07444f0febb71d490a01b6fee174634bd88e8aa180409549b2726d044b4690353de2fb2294c8f69c612485aa066f68fdb89466760a85901cbc7312bfe5a6f656e67dfd2d4ee099ff97694b01d6d5b8626ab1650eac5267be53f5f3ced5dda1aa86bf42ae132a28fddb94902a515da40e0fd0586dc8b17a34af8eb03d06f70ab89df
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -bf8213944ba785e01b8d37a12de77b2ce1492f34bf6f67406cb51da89675b4f70f4d4f314f30ca8d65cbc48ee2fa1f0a3e4ac0de3a87d2c4c589b6812e850623d78ef2e46fbb555f6d3c69b211892c11a4a2dc3d8a9a19e96a07952602ed5ffc0232c140c3e828acf990e5425d8dd9ce0c1107ad1c6f96c8fbc90ffa457abab0d843094dca3c8a45ddad81b7850190625613a4851485f38fd
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 3083421e375f0722b9397e156de47f77635d62ba1d51794469371b473b71c02e3722841bca2ca06b5d1cf1492bbacfa0abfe394dfdaa7bb8787550ddbd953540e9c97631d9a1efe0c8f8e14f395c82d20245cec6d8021f8564b4d66e7779c3245734c56fb74481172f4e349d9a113cd0ee5263c69ebf746c5285cd4c0fa91d9531f769fea3610c2972ccfe9a22c00aa62ebf52b3a4c6135f3069
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -d736bce537f47ae4797faad797af8cfeaf8a4fd42df1f7e61febf8ebf6e47dabc48252ff7948f3dbf8cc369b6952dc58f64cf09b4c53447d135c7a753c21b6052a9726a47a61e13628edf0f2bdb357f2e780ac1ae1f28f211296c8961c2955b773d7dc2904dfea96780b2877af133c9591a0dd54cb20884f014f363862478ee7ec45236bfdcf0321af0692e68f744af28fbcca827ebdc7b210da38
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 2cf1708f1e675ba688c0d19eb61a05d2c8642528ea6b1512375faa732acc59ec04ea0aa55e0049144be09eae1292b6cba6db7a9823f1e912df6a5032bb9674f4f26c0c8244ea0dde7acfda566574956cdc33e4a27bcdea25fe255c19f218cc4316ae8428ea61d1bf865197a066b959c5fcbd7c9596207997d05fc38e32322aa189ea06cf5139522571661745c0d72b740dc6d842f1dd8481e318b5792
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -a9180e44a284b5bbe72fff46e55869f749b626ac33c8cb17be1fc260d7c6f460f24a89e1367112e00d0da4d213a821d09f103f35bc4eade5605bef23c5d048b1cfb45dace8b9c637af626a85fc773cf51e6602a7a5999a030030cf114ed6a4ed7583465b9303a72e7f60824c12329517c6763b0f64abd8ba2b9b26cebe882a51f05ef8076e527d53a213db910a5f42be5fb78729a3dcd08d69a709920a2
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 2f26e156b3b1117f7cec542b20fcc06ca66cec03a19b6f5eeebf22b4c0fc265df5ff06fc9dcac569735135bdc142b526b295225711efb71577b10aacda2fa446f5208487c725407c2188b3185237740c813e4455a6f1dde4f62916237f23164a3471aac0fcfe24ad1ce1dd81a6144f5861ad0cf22dc337abe10fc4a88b36116dc4929602ab48eb971fdd7a5ff747d6b9e0b2bff75c59621550991966a0a19f
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -9fe18ae697576dd36ebdb621d14cac1cfdfd1f5cbb7cfa8962c5a7dace96f9f54fb4f4cf2e650dbec5d1ba89ba53d251ecef7dcc1cab8c2ff3d77903f5fb5f29a4e8e3a2a3c05c105d5733b5132f2f8d88f99d17de86ca1191c32ad8ed469bb649ef188306f69f183bd0fcc32759e4f855170f88c0a3f6745aa98f6225536821bfa056a42b37535a622f42b009859c974cabf2e14f75c749d0fe5a01fb3ab0c0
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 33ab185854b20a8126884eed85181b14e75d4ee452958cc1043b099bc16c24b9c2f3e0b792744f230013907844496e600389800e45fd55133fff0cf19c9c152b9d031039eb90da568f9c5212a3ba283f4d1353ff8ff9dd04d292c265bdcb77c3e411716f471930bccbb8ddb819ebb0e0036dc1a18457cd97f4f5909a725baabbd15e8ce33875895aa8dce77a4dbedeb0271a2a4a17f77f5920c3776caa4a75ac650
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -e7ca0c037bf8bad5f8d9c5a2737e044d9f7284c616156d142612a53eb217f57f4aa00b6daa424e6c0d9163939e1ad0510a1cd64fbd576f3e54c59d7aa6228fb3caaba7cdcc951e00ed141ac3a68abb9780bf46bf544fe0e347f677288e962fb69782741df49b27cbbe8720c6f8f2e769147d89df6e17e3c592bede2e696d384b9f01b99b31c505d67eb6193a8844f8c4cdadc9fe45dd446a0dc572c9da6e58ed303f2
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 22b76d6973e37aff4a09216e57662f186c0a0748c4375d6bed370ea61d1f6fac2d9bbe04487a629118b6b0b0c8cc4179fff7bedcf048cc529498bbd9cc81ef3a103d6cac49d58bc41c83f961b6df7f00c7171fb7d9359e03c76e4364cffae5f67321ce646e9b05f9c04aa16ea65389e940022eda6dc740ddc070bfc7e589b86fd1559dc320701c39de20d54d0483fdeef6c4fd012850630b982c2e243ac1ff918377ceb4
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -e6e4d69a82b83e26ef8ac0f4c3a211153ea6655b7ca12840e7b866510d114693049c5b8b22c3a097eac832bbd1986e60564298e54dba3316807ad64bd6c18903a0f22660c9e8d5dac180f57cbb90b176b842d5b58d6dd9f47499a037833a92a18f397238a8bcdc4afd129382fd6d200d3d267ca1e6bcc2cc65950831cb8e30bcc01665c8149b874c9f11168153c187341afdc43e4d8652ce4fbed9f9eac75db40d64344ade
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 319a81f052db21ee213c536db2cb8a71e0dcd0a9b2ce780a9588c38b717c5e487a337f82b5223f638fb552e92b826192e6a1c27771d1e86584bc6c7cbc5d9a6ce6edf2ea2ccf6939485959ccbf3183b40e410768c4665adf90a0ae2792fb4b5d8aaa06c6294e31893620decc3bc72fb4eb68f1e56b48e39c59abe869d07509b7564268d0b7f178ef09ef5dcde6e7dbd2a20fd1d4fcd707943dd63adf590a117ead1ad10ff85cb
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -eced809145e696ceaa0ee8f831eca67049509b31a1b15e7fc86cdd97a73a2ca05bfea5f4b283d287e49906463ef36f2f8ea23c2aa12d5534c08e9769055e04822be0f8ac85f404f5c025a6833b4115f78da9470451c852ba0f24062397d20385f58c5aca10f3f09072b2592e5672ffb989a390abf86cbce74268aef1f4ffde730b3b962df1088bf8745105a7462379ce142f819c2538d9bba99e094ffbc4478625bc54df16c5e1a
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 2c1ffbbb30e71d5fa77b5473392f95297b489c85f83013262abbe948842473154e00c86b2e354278844083f960fd746a3b7cb9baecb9c66932774b3a28f678d50dd8fe52fbeead43d8c8adad7c0fcdbe5e02664b0feb0ce214c5fa007c5fa2d08c5fe96787b95639311cc4b7eb2a7217c9c38c6d93444fa60c1f52ddae9bb2ec1a49a593e210e47377d3623cd2c4994ad9343863443911062e12233176f4a65ec715b3c9731c4a0cec
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -c3bf056b905c0392a7b5fa57446ed350f325eb67d59f1784c744b04c7f4d8f5397db913407aa8a7f1dd0225c1a9673828db0d8bf3d4908ef53307131bf5b5c4c6068ad73b874aab98e8db33b0a758532172acd8b2c830d0679a8226537090166317b8eea91e8ee4a7282c0ab0ab6f2b7b63d728d22b534fdc88294c376a8d036ba9a644c2489bcc84f6aec83afbac08067a7b93f3897f8dadfb68c327b751841927a728faba47dc44ec4
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 23fcf9510caa531a304eee8d0b2d49050fca83abbf287b6b6dea06501c5afc6d87d2924df1d45b1bf6c4bf77b563a3013cfb4ad9094f8ee9892d33f6ee1c70131cd5721c5af804a9da7654510e8591aa185ee723f8caa78046d9e6fbb891e6024d2ec70110ae61c3969995e35941d2c7f3779d5bb71ce5b693bc9ce4b087068adbb554acc4ab23624e060f7cea169ab512a06ff3d2a36c2b6e3bd9a75f1a9ad30a6a16b0256c42eaff2c3f4
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -c32d5e643b12db6616554116299c1da672efff1eee394378c5e9e5f702ea4ad64f0dac8904bd2751d2cef91adcb283599f6c661967dbab27059e94dd50025489cf74c6897a22e95013669aa3063fcdd4b73aa6a9a1ba5cad3956bb26346e22df6741cd0ba1c0ab87fbe74035618a394383823216df47b910cae495b8fe7ac5feb3b2cf0d0ef6c75db477160b75324db8eeac48a0fce72b9abbd7079ce6f529a89025a03a3777cc7d1deaf3e4a
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 2a8f2c530342bb6ce683a760540e956a1155c0fe065476e400caec59861ca97ca71e51a11b3213b2baea1a41a29449998778e0f533fcc181698d293f05e28bff2750ef4095170de98a19a36ddcf59a65f3789a3808ead51680245070262c9544e446f23652eba47065a2bc4701c55378bd49733619ed2c213f8ed12a4a317c465f37efe07ff2df8e88fc33d3eb42cde9408dda28215702bfa607030839285a8bbf89b5e8842fa7d7f50d83fd4ab5
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -bcd2b2362aa146cd120b729e81c98ae598804006d046a7ed0f9782baa10a85e37c7c22288dc61c24830a1b42b123d63779e88d7555028292fed5ada1793264b35e961b608bdd7398e421c5474c33a65059ef13787e0cedf4f8f032beac48c4b5e5a67417109142a43b198ab617d1de1a38d6fb4922c6ef70a5aad3faf6f8d5da3af9679c94cf61ee760ba792d2972376425e2ec9c4109e969e3d9c3dd90cdbaeaeb7382cb7bd024b75a1fd6d621c13
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 3940430ace4b5b87bf4baa2673582db3d27307ca4cd8e55e976ea3e10da72b6deb7de932253bc9228c85cd4ae7766cd0264004c658a66d81e60bb9bf4dd66e2afe11057b7f7b53a1ec222510748be53a93970fb056e8082631b2b77413fccb6e61cdc6f224b7903d75345afed8a4f194b4bcedfee1f16dc256c2bb9f4a129fab6a9fe752895a93937a3d087ab7ca212991ff34f1bf1c55987a574674af43986312bbc3bad3280bbddf4ab0217440f851b
+
+Quotient = 0
+Remainder = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = -ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -f0dc20b88450f45381791e85d080e4f2cf38837391e16e608b8cb5e0ac0ca75e9f72cc04bf2f56f130d46aff31efbabc0ab14f0c0ad680d6899797297152be85ac012644c8d0927b5b6c70dc3e5a8d79ef92a0873ec22af3d9683bb5db1ffd5ebfb698c5ea64cbe2b6a8b9f14d4c18624be1b78b19eca14942ae9542012692cd0d5289ebf75fcf5486596f92659143e9f952af3622137e633376fb95e628055e0fb1ba3a37ccdf0af69a4c0d6b0793078e0
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = 2f2135850715f623909e41a745eaf7b37593567fa8be2d1ccf76d10b93a096e244b91d8700cca37a2ec1bff7c3d21cc3211ea8b03a3594921dec32faa185e7f3d9d17e98cbf8d881fd2abb944181659242ede21df7e5e8784f541cad678df1ef6ca4a5fa91f7856c62fe593c4d24436810cf4fbd11125bcb571f6975d82afeb81bd0c7700e053fc175fb5fc7b329c438479a863b8d5fbe6b4436b67355c51d0306e8847a27a30c9e61f0e08232673cdf0ba4e0
+
+Quotient = 0
+Remainder = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+A = ea87c57f6cdbfd4f836431be3e9950c90ee8ecc291eb4efb881617512fd62e2d86caefce713cfd8a20f4b4925bfc7dba1fcbe99c72932725b5d11eccefde4c5e505952754891e9ded499ec453a1c01a82152c8933f7db4f2b4b19e97baac322eb483cd661a43e458774ef27a29a19c3562ba466381056a3b92c35d9b8b71372b
+B = -cf429f101a2e19a65af1e238f6745215cf476ff2609c846f10289f1ef21b89af2aec53def3f4ec07ea42041f8b5862dc37fd03b2df12adaa8c9f1933cc69b526d47797b40f49545fd093b8ceddee3c55721d1fa19b336218de0cac56d410cc6cff4e620578cf820f5cdaadc367dc4d6372aab1e0ae3831a6d153c14920b1dcf09e7629b7442a06385420d79742e409677e3b82ec58bcbfa668ca072e981e20728a983d84a432605389c855a6668e0ee0d2b67449
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnshift.txt b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnshift.txt
new file mode 100644
index 000000000..db30a2405
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnshift.txt
@@ -0,0 +1,2427 @@
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# These test vectors satisfy A * 2 = LShift1
+
+Title = Lshift1 tests
+
+LShift1 = 0
+A = 0
+
+LShift1 = 13116120bca5df64e13f314254
+A = 988b0905e52efb2709f98a12a
+
+LShift1 = -13116120bca5df64e13f314254
+A = -988b0905e52efb2709f98a12a
+
+LShift1 = 2622c241794bbec9c27e6284a8
+A = 13116120bca5df64e13f314254
+
+LShift1 = -2622c241794bbec9c27e6284a8
+A = -13116120bca5df64e13f314254
+
+LShift1 = 4c458482f2977d9384fcc50950
+A = 2622c241794bbec9c27e6284a8
+
+LShift1 = -4c458482f2977d9384fcc50950
+A = -2622c241794bbec9c27e6284a8
+
+LShift1 = 988b0905e52efb2709f98a12a2
+A = 4c458482f2977d9384fcc50951
+
+LShift1 = -988b0905e52efb2709f98a12a2
+A = -4c458482f2977d9384fcc50951
+
+LShift1 = 13116120bca5df64e13f3142544
+A = 988b0905e52efb2709f98a12a2
+
+LShift1 = -13116120bca5df64e13f3142544
+A = -988b0905e52efb2709f98a12a2
+
+LShift1 = 2622c241794bbec9c27e6284a8a
+A = 13116120bca5df64e13f3142545
+
+LShift1 = -2622c241794bbec9c27e6284a8a
+A = -13116120bca5df64e13f3142545
+
+LShift1 = 4c458482f2977d9384fcc509514
+A = 2622c241794bbec9c27e6284a8a
+
+LShift1 = -4c458482f2977d9384fcc509514
+A = -2622c241794bbec9c27e6284a8a
+
+LShift1 = 988b0905e52efb2709f98a12a28
+A = 4c458482f2977d9384fcc509514
+
+LShift1 = -988b0905e52efb2709f98a12a28
+A = -4c458482f2977d9384fcc509514
+
+LShift1 = 13116120bca5df64e13f31425450
+A = 988b0905e52efb2709f98a12a28
+
+LShift1 = -13116120bca5df64e13f31425450
+A = -988b0905e52efb2709f98a12a28
+
+LShift1 = 2622c241794bbec9c27e6284a8a0
+A = 13116120bca5df64e13f31425450
+
+LShift1 = -2622c241794bbec9c27e6284a8a0
+A = -13116120bca5df64e13f31425450
+
+LShift1 = 4c458482f2977d9384fcc5095142
+A = 2622c241794bbec9c27e6284a8a1
+
+LShift1 = -4c458482f2977d9384fcc5095142
+A = -2622c241794bbec9c27e6284a8a1
+
+LShift1 = 988b0905e52efb2709f98a12a286
+A = 4c458482f2977d9384fcc5095143
+
+LShift1 = -988b0905e52efb2709f98a12a286
+A = -4c458482f2977d9384fcc5095143
+
+LShift1 = 13116120bca5df64e13f31425450c
+A = 988b0905e52efb2709f98a12a286
+
+LShift1 = -13116120bca5df64e13f31425450c
+A = -988b0905e52efb2709f98a12a286
+
+LShift1 = 2622c241794bbec9c27e6284a8a18
+A = 13116120bca5df64e13f31425450c
+
+LShift1 = -2622c241794bbec9c27e6284a8a18
+A = -13116120bca5df64e13f31425450c
+
+LShift1 = 4c458482f2977d9384fcc50951430
+A = 2622c241794bbec9c27e6284a8a18
+
+LShift1 = -4c458482f2977d9384fcc50951430
+A = -2622c241794bbec9c27e6284a8a18
+
+LShift1 = 988b0905e52efb2709f98a12a2862
+A = 4c458482f2977d9384fcc50951431
+
+LShift1 = -988b0905e52efb2709f98a12a2862
+A = -4c458482f2977d9384fcc50951431
+
+LShift1 = 13116120bca5df64e13f31425450c6
+A = 988b0905e52efb2709f98a12a2863
+
+LShift1 = -13116120bca5df64e13f31425450c6
+A = -988b0905e52efb2709f98a12a2863
+
+LShift1 = 2622c241794bbec9c27e6284a8a18e
+A = 13116120bca5df64e13f31425450c7
+
+LShift1 = -2622c241794bbec9c27e6284a8a18e
+A = -13116120bca5df64e13f31425450c7
+
+LShift1 = 4c458482f2977d9384fcc50951431e
+A = 2622c241794bbec9c27e6284a8a18f
+
+LShift1 = -4c458482f2977d9384fcc50951431e
+A = -2622c241794bbec9c27e6284a8a18f
+
+LShift1 = 988b0905e52efb2709f98a12a2863c
+A = 4c458482f2977d9384fcc50951431e
+
+LShift1 = -988b0905e52efb2709f98a12a2863c
+A = -4c458482f2977d9384fcc50951431e
+
+LShift1 = 13116120bca5df64e13f31425450c7a
+A = 988b0905e52efb2709f98a12a2863d
+
+LShift1 = -13116120bca5df64e13f31425450c7a
+A = -988b0905e52efb2709f98a12a2863d
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4
+A = 13116120bca5df64e13f31425450c7a
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4
+A = -13116120bca5df64e13f31425450c7a
+
+LShift1 = 4c458482f2977d9384fcc50951431e8
+A = 2622c241794bbec9c27e6284a8a18f4
+
+LShift1 = -4c458482f2977d9384fcc50951431e8
+A = -2622c241794bbec9c27e6284a8a18f4
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2
+A = 4c458482f2977d9384fcc50951431e9
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2
+A = -4c458482f2977d9384fcc50951431e9
+
+LShift1 = 13116120bca5df64e13f31425450c7a4
+A = 988b0905e52efb2709f98a12a2863d2
+
+LShift1 = -13116120bca5df64e13f31425450c7a4
+A = -988b0905e52efb2709f98a12a2863d2
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4a
+A = 13116120bca5df64e13f31425450c7a5
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4a
+A = -13116120bca5df64e13f31425450c7a5
+
+LShift1 = 4c458482f2977d9384fcc50951431e94
+A = 2622c241794bbec9c27e6284a8a18f4a
+
+LShift1 = -4c458482f2977d9384fcc50951431e94
+A = -2622c241794bbec9c27e6284a8a18f4a
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2a
+A = 4c458482f2977d9384fcc50951431e95
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2a
+A = -4c458482f2977d9384fcc50951431e95
+
+LShift1 = 13116120bca5df64e13f31425450c7a56
+A = 988b0905e52efb2709f98a12a2863d2b
+
+LShift1 = -13116120bca5df64e13f31425450c7a56
+A = -988b0905e52efb2709f98a12a2863d2b
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4ae
+A = 13116120bca5df64e13f31425450c7a57
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4ae
+A = -13116120bca5df64e13f31425450c7a57
+
+LShift1 = 4c458482f2977d9384fcc50951431e95c
+A = 2622c241794bbec9c27e6284a8a18f4ae
+
+LShift1 = -4c458482f2977d9384fcc50951431e95c
+A = -2622c241794bbec9c27e6284a8a18f4ae
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2ba
+A = 4c458482f2977d9384fcc50951431e95d
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2ba
+A = -4c458482f2977d9384fcc50951431e95d
+
+LShift1 = 13116120bca5df64e13f31425450c7a576
+A = 988b0905e52efb2709f98a12a2863d2bb
+
+LShift1 = -13116120bca5df64e13f31425450c7a576
+A = -988b0905e52efb2709f98a12a2863d2bb
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4aee
+A = 13116120bca5df64e13f31425450c7a577
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4aee
+A = -13116120bca5df64e13f31425450c7a577
+
+LShift1 = 4c458482f2977d9384fcc50951431e95de
+A = 2622c241794bbec9c27e6284a8a18f4aef
+
+LShift1 = -4c458482f2977d9384fcc50951431e95de
+A = -2622c241794bbec9c27e6284a8a18f4aef
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2bbc
+A = 4c458482f2977d9384fcc50951431e95de
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2bbc
+A = -4c458482f2977d9384fcc50951431e95de
+
+LShift1 = 13116120bca5df64e13f31425450c7a577a
+A = 988b0905e52efb2709f98a12a2863d2bbd
+
+LShift1 = -13116120bca5df64e13f31425450c7a577a
+A = -988b0905e52efb2709f98a12a2863d2bbd
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4aef4
+A = 13116120bca5df64e13f31425450c7a577a
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4aef4
+A = -13116120bca5df64e13f31425450c7a577a
+
+LShift1 = 4c458482f2977d9384fcc50951431e95dea
+A = 2622c241794bbec9c27e6284a8a18f4aef5
+
+LShift1 = -4c458482f2977d9384fcc50951431e95dea
+A = -2622c241794bbec9c27e6284a8a18f4aef5
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2bbd6
+A = 4c458482f2977d9384fcc50951431e95deb
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2bbd6
+A = -4c458482f2977d9384fcc50951431e95deb
+
+LShift1 = 13116120bca5df64e13f31425450c7a577ac
+A = 988b0905e52efb2709f98a12a2863d2bbd6
+
+LShift1 = -13116120bca5df64e13f31425450c7a577ac
+A = -988b0905e52efb2709f98a12a2863d2bbd6
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4aef5a
+A = 13116120bca5df64e13f31425450c7a577ad
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4aef5a
+A = -13116120bca5df64e13f31425450c7a577ad
+
+LShift1 = 4c458482f2977d9384fcc50951431e95deb4
+A = 2622c241794bbec9c27e6284a8a18f4aef5a
+
+LShift1 = -4c458482f2977d9384fcc50951431e95deb4
+A = -2622c241794bbec9c27e6284a8a18f4aef5a
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2bbd6a
+A = 4c458482f2977d9384fcc50951431e95deb5
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2bbd6a
+A = -4c458482f2977d9384fcc50951431e95deb5
+
+LShift1 = 13116120bca5df64e13f31425450c7a577ad6
+A = 988b0905e52efb2709f98a12a2863d2bbd6b
+
+LShift1 = -13116120bca5df64e13f31425450c7a577ad6
+A = -988b0905e52efb2709f98a12a2863d2bbd6b
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4aef5ae
+A = 13116120bca5df64e13f31425450c7a577ad7
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4aef5ae
+A = -13116120bca5df64e13f31425450c7a577ad7
+
+LShift1 = 4c458482f2977d9384fcc50951431e95deb5e
+A = 2622c241794bbec9c27e6284a8a18f4aef5af
+
+LShift1 = -4c458482f2977d9384fcc50951431e95deb5e
+A = -2622c241794bbec9c27e6284a8a18f4aef5af
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2bbd6be
+A = 4c458482f2977d9384fcc50951431e95deb5f
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2bbd6be
+A = -4c458482f2977d9384fcc50951431e95deb5f
+
+LShift1 = 13116120bca5df64e13f31425450c7a577ad7e
+A = 988b0905e52efb2709f98a12a2863d2bbd6bf
+
+LShift1 = -13116120bca5df64e13f31425450c7a577ad7e
+A = -988b0905e52efb2709f98a12a2863d2bbd6bf
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4aef5afe
+A = 13116120bca5df64e13f31425450c7a577ad7f
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4aef5afe
+A = -13116120bca5df64e13f31425450c7a577ad7f
+
+LShift1 = 4c458482f2977d9384fcc50951431e95deb5fe
+A = 2622c241794bbec9c27e6284a8a18f4aef5aff
+
+LShift1 = -4c458482f2977d9384fcc50951431e95deb5fe
+A = -2622c241794bbec9c27e6284a8a18f4aef5aff
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2bbd6bfe
+A = 4c458482f2977d9384fcc50951431e95deb5ff
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2bbd6bfe
+A = -4c458482f2977d9384fcc50951431e95deb5ff
+
+LShift1 = 13116120bca5df64e13f31425450c7a577ad7fe
+A = 988b0905e52efb2709f98a12a2863d2bbd6bff
+
+LShift1 = -13116120bca5df64e13f31425450c7a577ad7fe
+A = -988b0905e52efb2709f98a12a2863d2bbd6bff
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4aef5affc
+A = 13116120bca5df64e13f31425450c7a577ad7fe
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4aef5affc
+A = -13116120bca5df64e13f31425450c7a577ad7fe
+
+LShift1 = 4c458482f2977d9384fcc50951431e95deb5ff8
+A = 2622c241794bbec9c27e6284a8a18f4aef5affc
+
+LShift1 = -4c458482f2977d9384fcc50951431e95deb5ff8
+A = -2622c241794bbec9c27e6284a8a18f4aef5affc
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2bbd6bff0
+A = 4c458482f2977d9384fcc50951431e95deb5ff8
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2bbd6bff0
+A = -4c458482f2977d9384fcc50951431e95deb5ff8
+
+LShift1 = 13116120bca5df64e13f31425450c7a577ad7fe0
+A = 988b0905e52efb2709f98a12a2863d2bbd6bff0
+
+LShift1 = -13116120bca5df64e13f31425450c7a577ad7fe0
+A = -988b0905e52efb2709f98a12a2863d2bbd6bff0
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4aef5affc0
+A = 13116120bca5df64e13f31425450c7a577ad7fe0
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4aef5affc0
+A = -13116120bca5df64e13f31425450c7a577ad7fe0
+
+LShift1 = 4c458482f2977d9384fcc50951431e95deb5ff82
+A = 2622c241794bbec9c27e6284a8a18f4aef5affc1
+
+LShift1 = -4c458482f2977d9384fcc50951431e95deb5ff82
+A = -2622c241794bbec9c27e6284a8a18f4aef5affc1
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2bbd6bff06
+A = 4c458482f2977d9384fcc50951431e95deb5ff83
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2bbd6bff06
+A = -4c458482f2977d9384fcc50951431e95deb5ff83
+
+LShift1 = 13116120bca5df64e13f31425450c7a577ad7fe0c
+A = 988b0905e52efb2709f98a12a2863d2bbd6bff06
+
+LShift1 = -13116120bca5df64e13f31425450c7a577ad7fe0c
+A = -988b0905e52efb2709f98a12a2863d2bbd6bff06
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4aef5affc1a
+A = 13116120bca5df64e13f31425450c7a577ad7fe0d
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4aef5affc1a
+A = -13116120bca5df64e13f31425450c7a577ad7fe0d
+
+LShift1 = 4c458482f2977d9384fcc50951431e95deb5ff836
+A = 2622c241794bbec9c27e6284a8a18f4aef5affc1b
+
+LShift1 = -4c458482f2977d9384fcc50951431e95deb5ff836
+A = -2622c241794bbec9c27e6284a8a18f4aef5affc1b
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2bbd6bff06c
+A = 4c458482f2977d9384fcc50951431e95deb5ff836
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2bbd6bff06c
+A = -4c458482f2977d9384fcc50951431e95deb5ff836
+
+LShift1 = 13116120bca5df64e13f31425450c7a577ad7fe0da
+A = 988b0905e52efb2709f98a12a2863d2bbd6bff06d
+
+LShift1 = -13116120bca5df64e13f31425450c7a577ad7fe0da
+A = -988b0905e52efb2709f98a12a2863d2bbd6bff06d
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4aef5affc1b6
+A = 13116120bca5df64e13f31425450c7a577ad7fe0db
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4aef5affc1b6
+A = -13116120bca5df64e13f31425450c7a577ad7fe0db
+
+LShift1 = 4c458482f2977d9384fcc50951431e95deb5ff836e
+A = 2622c241794bbec9c27e6284a8a18f4aef5affc1b7
+
+LShift1 = -4c458482f2977d9384fcc50951431e95deb5ff836e
+A = -2622c241794bbec9c27e6284a8a18f4aef5affc1b7
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2bbd6bff06de
+A = 4c458482f2977d9384fcc50951431e95deb5ff836f
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2bbd6bff06de
+A = -4c458482f2977d9384fcc50951431e95deb5ff836f
+
+LShift1 = 13116120bca5df64e13f31425450c7a577ad7fe0dbe
+A = 988b0905e52efb2709f98a12a2863d2bbd6bff06df
+
+LShift1 = -13116120bca5df64e13f31425450c7a577ad7fe0dbe
+A = -988b0905e52efb2709f98a12a2863d2bbd6bff06df
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4aef5affc1b7c
+A = 13116120bca5df64e13f31425450c7a577ad7fe0dbe
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4aef5affc1b7c
+A = -13116120bca5df64e13f31425450c7a577ad7fe0dbe
+
+LShift1 = 4c458482f2977d9384fcc50951431e95deb5ff836fa
+A = 2622c241794bbec9c27e6284a8a18f4aef5affc1b7d
+
+LShift1 = -4c458482f2977d9384fcc50951431e95deb5ff836fa
+A = -2622c241794bbec9c27e6284a8a18f4aef5affc1b7d
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2bbd6bff06df6
+A = 4c458482f2977d9384fcc50951431e95deb5ff836fb
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2bbd6bff06df6
+A = -4c458482f2977d9384fcc50951431e95deb5ff836fb
+
+LShift1 = 13116120bca5df64e13f31425450c7a577ad7fe0dbec
+A = 988b0905e52efb2709f98a12a2863d2bbd6bff06df6
+
+LShift1 = -13116120bca5df64e13f31425450c7a577ad7fe0dbec
+A = -988b0905e52efb2709f98a12a2863d2bbd6bff06df6
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4aef5affc1b7da
+A = 13116120bca5df64e13f31425450c7a577ad7fe0dbed
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4aef5affc1b7da
+A = -13116120bca5df64e13f31425450c7a577ad7fe0dbed
+
+LShift1 = 4c458482f2977d9384fcc50951431e95deb5ff836fb6
+A = 2622c241794bbec9c27e6284a8a18f4aef5affc1b7db
+
+LShift1 = -4c458482f2977d9384fcc50951431e95deb5ff836fb6
+A = -2622c241794bbec9c27e6284a8a18f4aef5affc1b7db
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2bbd6bff06df6c
+A = 4c458482f2977d9384fcc50951431e95deb5ff836fb6
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2bbd6bff06df6c
+A = -4c458482f2977d9384fcc50951431e95deb5ff836fb6
+
+LShift1 = 13116120bca5df64e13f31425450c7a577ad7fe0dbed8
+A = 988b0905e52efb2709f98a12a2863d2bbd6bff06df6c
+
+LShift1 = -13116120bca5df64e13f31425450c7a577ad7fe0dbed8
+A = -988b0905e52efb2709f98a12a2863d2bbd6bff06df6c
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4aef5affc1b7db0
+A = 13116120bca5df64e13f31425450c7a577ad7fe0dbed8
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4aef5affc1b7db0
+A = -13116120bca5df64e13f31425450c7a577ad7fe0dbed8
+
+LShift1 = 4c458482f2977d9384fcc50951431e95deb5ff836fb60
+A = 2622c241794bbec9c27e6284a8a18f4aef5affc1b7db0
+
+LShift1 = -4c458482f2977d9384fcc50951431e95deb5ff836fb60
+A = -2622c241794bbec9c27e6284a8a18f4aef5affc1b7db0
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2bbd6bff06df6c0
+A = 4c458482f2977d9384fcc50951431e95deb5ff836fb60
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2bbd6bff06df6c0
+A = -4c458482f2977d9384fcc50951431e95deb5ff836fb60
+
+LShift1 = 13116120bca5df64e13f31425450c7a577ad7fe0dbed82
+A = 988b0905e52efb2709f98a12a2863d2bbd6bff06df6c1
+
+LShift1 = -13116120bca5df64e13f31425450c7a577ad7fe0dbed82
+A = -988b0905e52efb2709f98a12a2863d2bbd6bff06df6c1
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4aef5affc1b7db06
+A = 13116120bca5df64e13f31425450c7a577ad7fe0dbed83
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4aef5affc1b7db06
+A = -13116120bca5df64e13f31425450c7a577ad7fe0dbed83
+
+LShift1 = 4c458482f2977d9384fcc50951431e95deb5ff836fb60c
+A = 2622c241794bbec9c27e6284a8a18f4aef5affc1b7db06
+
+LShift1 = -4c458482f2977d9384fcc50951431e95deb5ff836fb60c
+A = -2622c241794bbec9c27e6284a8a18f4aef5affc1b7db06
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2bbd6bff06df6c18
+A = 4c458482f2977d9384fcc50951431e95deb5ff836fb60c
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2bbd6bff06df6c18
+A = -4c458482f2977d9384fcc50951431e95deb5ff836fb60c
+
+LShift1 = 13116120bca5df64e13f31425450c7a577ad7fe0dbed832
+A = 988b0905e52efb2709f98a12a2863d2bbd6bff06df6c19
+
+LShift1 = -13116120bca5df64e13f31425450c7a577ad7fe0dbed832
+A = -988b0905e52efb2709f98a12a2863d2bbd6bff06df6c19
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4aef5affc1b7db066
+A = 13116120bca5df64e13f31425450c7a577ad7fe0dbed833
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4aef5affc1b7db066
+A = -13116120bca5df64e13f31425450c7a577ad7fe0dbed833
+
+LShift1 = 4c458482f2977d9384fcc50951431e95deb5ff836fb60ce
+A = 2622c241794bbec9c27e6284a8a18f4aef5affc1b7db067
+
+LShift1 = -4c458482f2977d9384fcc50951431e95deb5ff836fb60ce
+A = -2622c241794bbec9c27e6284a8a18f4aef5affc1b7db067
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2bbd6bff06df6c19e
+A = 4c458482f2977d9384fcc50951431e95deb5ff836fb60cf
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2bbd6bff06df6c19e
+A = -4c458482f2977d9384fcc50951431e95deb5ff836fb60cf
+
+LShift1 = 13116120bca5df64e13f31425450c7a577ad7fe0dbed833e
+A = 988b0905e52efb2709f98a12a2863d2bbd6bff06df6c19f
+
+LShift1 = -13116120bca5df64e13f31425450c7a577ad7fe0dbed833e
+A = -988b0905e52efb2709f98a12a2863d2bbd6bff06df6c19f
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4aef5affc1b7db067c
+A = 13116120bca5df64e13f31425450c7a577ad7fe0dbed833e
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4aef5affc1b7db067c
+A = -13116120bca5df64e13f31425450c7a577ad7fe0dbed833e
+
+LShift1 = 4c458482f2977d9384fcc50951431e95deb5ff836fb60cfa
+A = 2622c241794bbec9c27e6284a8a18f4aef5affc1b7db067d
+
+LShift1 = -4c458482f2977d9384fcc50951431e95deb5ff836fb60cfa
+A = -2622c241794bbec9c27e6284a8a18f4aef5affc1b7db067d
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2bbd6bff06df6c19f6
+A = 4c458482f2977d9384fcc50951431e95deb5ff836fb60cfb
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2bbd6bff06df6c19f6
+A = -4c458482f2977d9384fcc50951431e95deb5ff836fb60cfb
+
+LShift1 = 13116120bca5df64e13f31425450c7a577ad7fe0dbed833ee
+A = 988b0905e52efb2709f98a12a2863d2bbd6bff06df6c19f7
+
+LShift1 = -13116120bca5df64e13f31425450c7a577ad7fe0dbed833ee
+A = -988b0905e52efb2709f98a12a2863d2bbd6bff06df6c19f7
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4aef5affc1b7db067de
+A = 13116120bca5df64e13f31425450c7a577ad7fe0dbed833ef
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4aef5affc1b7db067de
+A = -13116120bca5df64e13f31425450c7a577ad7fe0dbed833ef
+
+LShift1 = 4c458482f2977d9384fcc50951431e95deb5ff836fb60cfbe
+A = 2622c241794bbec9c27e6284a8a18f4aef5affc1b7db067df
+
+LShift1 = -4c458482f2977d9384fcc50951431e95deb5ff836fb60cfbe
+A = -2622c241794bbec9c27e6284a8a18f4aef5affc1b7db067df
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2bbd6bff06df6c19f7e
+A = 4c458482f2977d9384fcc50951431e95deb5ff836fb60cfbf
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2bbd6bff06df6c19f7e
+A = -4c458482f2977d9384fcc50951431e95deb5ff836fb60cfbf
+
+LShift1 = 13116120bca5df64e13f31425450c7a577ad7fe0dbed833efe
+A = 988b0905e52efb2709f98a12a2863d2bbd6bff06df6c19f7f
+
+LShift1 = -13116120bca5df64e13f31425450c7a577ad7fe0dbed833efe
+A = -988b0905e52efb2709f98a12a2863d2bbd6bff06df6c19f7f
+
+LShift1 = 2622c241794bbec9c27e6284a8a18f4aef5affc1b7db067dfc
+A = 13116120bca5df64e13f31425450c7a577ad7fe0dbed833efe
+
+LShift1 = -2622c241794bbec9c27e6284a8a18f4aef5affc1b7db067dfc
+A = -13116120bca5df64e13f31425450c7a577ad7fe0dbed833efe
+
+LShift1 = 4c458482f2977d9384fcc50951431e95deb5ff836fb60cfbf8
+A = 2622c241794bbec9c27e6284a8a18f4aef5affc1b7db067dfc
+
+LShift1 = -4c458482f2977d9384fcc50951431e95deb5ff836fb60cfbf8
+A = -2622c241794bbec9c27e6284a8a18f4aef5affc1b7db067dfc
+
+LShift1 = 988b0905e52efb2709f98a12a2863d2bbd6bff06df6c19f7f0
+A = 4c458482f2977d9384fcc50951431e95deb5ff836fb60cfbf8
+
+LShift1 = -988b0905e52efb2709f98a12a2863d2bbd6bff06df6c19f7f0
+A = -4c458482f2977d9384fcc50951431e95deb5ff836fb60cfbf8
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000000000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000000000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000000000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000000000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000000000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000000000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000000000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000000000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000000000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000000000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000000000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000000000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000000000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000000000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000000000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000000000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000000000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000000000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000000000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000000000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000000000000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000000000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000000000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000000000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000000000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000000000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000000000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000000000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000000000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000000000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000000000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000000000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000000000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000000000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000000000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000000000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000000000000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000000000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000000000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000000000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000000000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000000000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000000000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000000000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000000000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000000000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000000000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000000000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000000000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000000000000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000000000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000000000000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000000000000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000000000000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000000000000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000000000000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000000000000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000000000000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000000000000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000000000000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e0000000000000000000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000000000000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000000000000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000000000000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c0000000000000000000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000000000000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000000000000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000000000000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c8380000000000000000000000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000000000000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000000000000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000000000000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b41386190700000000000000000000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000000000000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000000000000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000000000000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e00000000000000000000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000000000000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000000000000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000000000000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c00000000000000000000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000000000000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000000000000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000000000000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c83800000000000000000000000
+
+LShift1 = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000000000000000
+A = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000000000000000
+
+LShift1 = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000000000000000
+A = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b413861907000000000000000000000000
+
+LShift1 = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000000000000000
+A = 1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000000000000000
+
+LShift1 = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000000000000000
+A = -1569d01c96acaadb32211d67966be2fa35d07b46768270c320e000000000000000000000000
+
+LShift1 = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000000000000000
+A = 2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000000000000000
+
+LShift1 = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000000000000000
+A = -2ad3a0392d5955b664423acf2cd7c5f46ba0f68ced04e18641c000000000000000000000000
+
+LShift1 = ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000000000000000000
+A = 55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000000000000000
+
+LShift1 = -ab4e80e4b56556d99108eb3cb35f17d1ae83da33b4138619070000000000000000000000000
+A = -55a740725ab2ab6cc884759e59af8be8d741ed19da09c30c838000000000000000000000000
+
+
+# These test vectors satisfy A * 2^N = LShift.
+
+Title = LShift tests
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e0
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 1
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c0
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 2
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b2780
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 3
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f00
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 4
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e00
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 5
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c00
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 6
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b27800
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 7
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 8
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 9
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = a
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b278000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = b
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = c
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e0000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = d
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c0000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = e
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b2780000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = f
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f00000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 10
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e00000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 11
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c00000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 12
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b27800000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 13
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 14
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 15
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 16
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b278000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 17
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 18
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e0000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 19
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c0000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 1a
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b2780000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 1b
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f00000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 1c
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e00000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 1d
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c00000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 1e
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b27800000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 1f
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 20
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 21
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 22
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b278000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 23
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 24
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e0000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 25
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c0000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 26
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b2780000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 27
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f00000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 28
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e00000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 29
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c00000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 2a
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b27800000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 2b
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 2c
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 2d
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 2e
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b278000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 2f
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 30
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e0000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 31
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c0000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 32
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b2780000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 33
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f00000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 34
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e00000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 35
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c00000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 36
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b27800000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 37
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 38
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 39
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 3a
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b278000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 3b
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 3c
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e0000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 3d
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c0000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 3e
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b2780000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 3f
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f00000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 40
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e00000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 41
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c00000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 42
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b27800000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 43
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 44
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 45
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 46
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b278000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 47
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 48
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e0000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 49
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c0000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 4a
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b2780000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 4b
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f00000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 4c
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e00000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 4d
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c00000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 4e
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b27800000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 4f
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 50
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 51
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 52
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b278000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 53
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 54
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e0000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 55
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c0000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 56
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b2780000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 57
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f00000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 58
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e00000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 59
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c00000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 5a
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b27800000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 5b
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f000000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 5c
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e000000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 5d
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c000000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 5e
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b278000000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 5f
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0000000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 60
+
+LShift = 18c9e860855d594dcb06d00b7d1933608ba906d85fa2d92c9e0000000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 61
+
+LShift = 3193d0c10abab29b960da016fa3266c117520db0bf45b2593c0000000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 62
+
+LShift = 6327a182157565372c1b402df464cd822ea41b617e8b64b2780000000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 63
+
+LShift = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f00000000000000000000000000
+A = c64f43042aeaca6e5836805be8c99b045d4836c2fd16c964f0
+N = 64
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 1
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b238
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 2
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f30055184476470
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 3
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e0
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 4
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c0
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 5
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b2380
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 6
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f300551844764700
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 7
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e00
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 8
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c00
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 9
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b23800
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = a
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f3005518447647000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = b
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = c
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = d
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b238000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = e
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f30055184476470000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = f
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e0000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 10
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c0000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 11
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b2380000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 12
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f300551844764700000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 13
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e00000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 14
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c00000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 15
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b23800000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 16
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f3005518447647000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 17
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 18
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 19
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b238000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 1a
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f30055184476470000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 1b
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e0000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 1c
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c0000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 1d
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b2380000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 1e
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f300551844764700000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 1f
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e00000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 20
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c00000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 21
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b23800000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 22
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f3005518447647000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 23
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 24
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 25
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b238000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 26
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f30055184476470000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 27
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e0000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 28
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c0000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 29
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b2380000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 2a
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f300551844764700000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 2b
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e00000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 2c
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c00000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 2d
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b23800000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 2e
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f3005518447647000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 2f
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 30
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 31
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b238000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 32
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f30055184476470000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 33
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e0000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 34
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c0000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 35
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b2380000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 36
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f300551844764700000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 37
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e00000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 38
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c00000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 39
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b23800000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 3a
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f3005518447647000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 3b
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 3c
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 3d
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b238000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 3e
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f30055184476470000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 3f
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e0000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 40
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c0000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 41
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b2380000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 42
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f300551844764700000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 43
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e00000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 44
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c00000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 45
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b23800000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 46
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f3005518447647000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 47
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 48
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 49
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b238000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 4a
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f30055184476470000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 4b
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e0000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 4c
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c0000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 4d
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b2380000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 4e
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f300551844764700000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 4f
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e00000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 50
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c00000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 51
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b23800000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 52
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f3005518447647000000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 53
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e000000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 54
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c000000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 55
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b238000000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 56
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f30055184476470000000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 57
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e0000000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 58
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c0000000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 59
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b2380000000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 5a
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f300551844764700000000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 5b
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e00000000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 5c
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c00000000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 5d
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b23800000000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 5e
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f3005518447647000000000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 5f
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e000000000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 60
+
+LShift = 1d1cf8b5ccbae667bd05797fbaf9d4c1ff623cc01546111d91c000000000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 61
+
+LShift = 3a39f16b9975cccf7a0af2ff75f3a983fec479802a8c223b238000000000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 62
+
+LShift = 7473e2d732eb999ef415e5feebe75307fd88f30055184476470000000000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 63
+
+LShift = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e0000000000000000000000000
+A = e8e7c5ae65d7333de82bcbfdd7cea60ffb11e600aa3088ec8e
+N = 64
+
+
+# These test vectors satisfy A / 2^N = RShift, rounding towards zero.
+
+Title = RShift tests
+
+Rshift = 0
+A = -1
+N = 1
+
+RShift = 6ce746ffa7979ce10b751cd2308402a95d00d596cd97b36380
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 1
+
+RShift = 3673a37fd3cbce7085ba8e6918420154ae806acb66cbd9b1c0
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 2
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa57403565b365ecd8e0
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 3
+
+RShift = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c70
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 4
+
+RShift = 6ce746ffa7979ce10b751cd2308402a95d00d596cd97b3638
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 5
+
+RShift = 3673a37fd3cbce7085ba8e6918420154ae806acb66cbd9b1c
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 6
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa57403565b365ecd8e
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 7
+
+RShift = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c7
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 8
+
+RShift = 6ce746ffa7979ce10b751cd2308402a95d00d596cd97b363
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 9
+
+RShift = 3673a37fd3cbce7085ba8e6918420154ae806acb66cbd9b1
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = a
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa57403565b365ecd8
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = b
+
+RShift = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = c
+
+RShift = 6ce746ffa7979ce10b751cd2308402a95d00d596cd97b36
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = d
+
+RShift = 3673a37fd3cbce7085ba8e6918420154ae806acb66cbd9b
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = e
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa57403565b365ecd
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = f
+
+RShift = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 10
+
+RShift = 6ce746ffa7979ce10b751cd2308402a95d00d596cd97b3
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 11
+
+RShift = 3673a37fd3cbce7085ba8e6918420154ae806acb66cbd9
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 12
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa57403565b365ec
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 13
+
+RShift = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f6
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 14
+
+RShift = 6ce746ffa7979ce10b751cd2308402a95d00d596cd97b
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 15
+
+RShift = 3673a37fd3cbce7085ba8e6918420154ae806acb66cbd
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 16
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa57403565b365e
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 17
+
+RShift = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 18
+
+RShift = 6ce746ffa7979ce10b751cd2308402a95d00d596cd97
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 19
+
+RShift = 3673a37fd3cbce7085ba8e6918420154ae806acb66cb
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 1a
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa57403565b365
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 1b
+
+RShift = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 1c
+
+RShift = 6ce746ffa7979ce10b751cd2308402a95d00d596cd9
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 1d
+
+RShift = 3673a37fd3cbce7085ba8e6918420154ae806acb66c
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 1e
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa57403565b36
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 1f
+
+RShift = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 20
+
+RShift = 6ce746ffa7979ce10b751cd2308402a95d00d596cd
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 21
+
+RShift = 3673a37fd3cbce7085ba8e6918420154ae806acb66
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 22
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa57403565b3
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 23
+
+RShift = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 24
+
+RShift = 6ce746ffa7979ce10b751cd2308402a95d00d596c
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 25
+
+RShift = 3673a37fd3cbce7085ba8e6918420154ae806acb6
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 26
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa57403565b
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 27
+
+RShift = d9ce8dff4f2f39c216ea39a461080552ba01ab2d
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 28
+
+RShift = 6ce746ffa7979ce10b751cd2308402a95d00d596
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 29
+
+RShift = 3673a37fd3cbce7085ba8e6918420154ae806acb
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 2a
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa57403565
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 2b
+
+RShift = d9ce8dff4f2f39c216ea39a461080552ba01ab2
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 2c
+
+RShift = 6ce746ffa7979ce10b751cd2308402a95d00d59
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 2d
+
+RShift = 3673a37fd3cbce7085ba8e6918420154ae806ac
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 2e
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa5740356
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 2f
+
+RShift = d9ce8dff4f2f39c216ea39a461080552ba01ab
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 30
+
+RShift = 6ce746ffa7979ce10b751cd2308402a95d00d5
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 31
+
+RShift = 3673a37fd3cbce7085ba8e6918420154ae806a
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 32
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa574035
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 33
+
+RShift = d9ce8dff4f2f39c216ea39a461080552ba01a
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 34
+
+RShift = 6ce746ffa7979ce10b751cd2308402a95d00d
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 35
+
+RShift = 3673a37fd3cbce7085ba8e6918420154ae806
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 36
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa57403
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 37
+
+RShift = d9ce8dff4f2f39c216ea39a461080552ba01
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 38
+
+RShift = 6ce746ffa7979ce10b751cd2308402a95d00
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 39
+
+RShift = 3673a37fd3cbce7085ba8e6918420154ae80
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 3a
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa5740
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 3b
+
+RShift = d9ce8dff4f2f39c216ea39a461080552ba0
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 3c
+
+RShift = 6ce746ffa7979ce10b751cd2308402a95d0
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 3d
+
+RShift = 3673a37fd3cbce7085ba8e6918420154ae8
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 3e
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa574
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 3f
+
+RShift = d9ce8dff4f2f39c216ea39a461080552ba
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 40
+
+RShift = 6ce746ffa7979ce10b751cd2308402a95d
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 41
+
+RShift = 3673a37fd3cbce7085ba8e6918420154ae
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 42
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa57
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 43
+
+RShift = d9ce8dff4f2f39c216ea39a461080552b
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 44
+
+RShift = 6ce746ffa7979ce10b751cd2308402a95
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 45
+
+RShift = 3673a37fd3cbce7085ba8e6918420154a
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 46
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa5
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 47
+
+RShift = d9ce8dff4f2f39c216ea39a461080552
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 48
+
+RShift = 6ce746ffa7979ce10b751cd2308402a9
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 49
+
+RShift = 3673a37fd3cbce7085ba8e6918420154
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 4a
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100aa
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 4b
+
+RShift = d9ce8dff4f2f39c216ea39a46108055
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 4c
+
+RShift = 6ce746ffa7979ce10b751cd2308402a
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 4d
+
+RShift = 3673a37fd3cbce7085ba8e691842015
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 4e
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100a
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 4f
+
+RShift = d9ce8dff4f2f39c216ea39a4610805
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 50
+
+RShift = 6ce746ffa7979ce10b751cd2308402
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 51
+
+RShift = 3673a37fd3cbce7085ba8e69184201
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 52
+
+RShift = 1b39d1bfe9e5e73842dd47348c2100
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 53
+
+RShift = d9ce8dff4f2f39c216ea39a461080
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 54
+
+RShift = 6ce746ffa7979ce10b751cd230840
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 55
+
+RShift = 3673a37fd3cbce7085ba8e6918420
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 56
+
+RShift = 1b39d1bfe9e5e73842dd47348c210
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 57
+
+RShift = d9ce8dff4f2f39c216ea39a46108
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 58
+
+RShift = 6ce746ffa7979ce10b751cd23084
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 59
+
+RShift = 3673a37fd3cbce7085ba8e691842
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 5a
+
+RShift = 1b39d1bfe9e5e73842dd47348c21
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 5b
+
+RShift = d9ce8dff4f2f39c216ea39a4610
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 5c
+
+RShift = 6ce746ffa7979ce10b751cd2308
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 5d
+
+RShift = 3673a37fd3cbce7085ba8e69184
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 5e
+
+RShift = 1b39d1bfe9e5e73842dd47348c2
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 5f
+
+RShift = d9ce8dff4f2f39c216ea39a461
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 60
+
+RShift = 6ce746ffa7979ce10b751cd230
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 61
+
+RShift = 3673a37fd3cbce7085ba8e6918
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 62
+
+RShift = 1b39d1bfe9e5e73842dd47348c
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 63
+
+RShift = d9ce8dff4f2f39c216ea39a46
+A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701
+N = 64
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnsum.txt b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnsum.txt
new file mode 100644
index 000000000..2d90067de
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_bn_data/bnsum.txt
@@ -0,0 +1,2626 @@
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# Sum tests.
+#
+# These test vectors satisfy A + B = Sum.
+
+Sum = 0
+A = 0
+B = 0
+
+Sum = c590e57ee64fced3ca84d4bb013bba7d633e68b2ff4e27bf1db43f386dbfcce501f112b7fff6fb9436a576ccfccce12867becf02b91961453ea41f414764407d
+A = c590e57ee64fced3ca84d4bb013bba7d633e68b2ff4e27bf1db43f386dbfcce501f112b7fff6fb9436a576ccfccce12867becf02b91961453ea41f414764407d
+B = 0
+
+Sum = -c590e57ee64fced3ca84d4bb013bba7d633e68b2ff4e27bf1db43f386dbfcce501f112b7fff6fb9436a576ccfccce12867becf02b91961453ea41f414764407d
+A = -c590e57ee64fced3ca84d4bb013bba7d633e68b2ff4e27bf1db43f386dbfcce501f112b7fff6fb9436a576ccfccce12867becf02b91961453ea41f414764407d
+B = 0
+
+Sum = 0
+A = c590e57ee64fced3ca84d4bb013bba7d633e68b2ff4e27bf1db43f386dbfcce501f112b7fff6fb9436a576ccfccce12867becf02b91961453ea41f414764407d
+B = -c590e57ee64fced3ca84d4bb013bba7d633e68b2ff4e27bf1db43f386dbfcce501f112b7fff6fb9436a576ccfccce12867becf02b91961453ea41f414764407d
+
+Sum = c590e57ee64fced3ca84d4bb013bba7d633e68b2ff4e27bf1db43f386dbfcce501f112b7fff6fb9436a576ccfccce12867becf02b91961453ea41f414764407d
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 23f85668bf4d0fa273d8c7f63c5fee57811062a674111e295a73a58e08dd0fd58eda1f473960559d5b96d1862164e96efded31f756df3f57c
+
+Sum = c590e57ee64fceccd54e0bdc52476a756d32e794922dca0acc780d2c6af8852351102b40dfb97009f95e019a5bf38e5d127aa78bc34425edf96f763084a8b09f
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -4b5b16252ba2355e0b87f01baa721783c403607a4c1b5652c09a68e96926c8e314fa580bf0ad3f8f59bd70f14df86a4676661899b54c79a62
+
+Sum = -c590e57ee64fcec882fef3ffd015a3fd9024d8f5f6d53eb537d6abdb0ff5e76a8fb08d5feed113fc9e74745d957adf32704a08339ba42efd5746c5d478e3f57b
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 908007a2f3c551c58958d1059427a0391d4d768f61cb802e4cb062c778354ea3eaa8f0dfbd14ca8203e07ae6d07269b58088a39f7608c5586
+
+Sum = -c590e57ee64fceeb242f8a0893eaa0d2ccc3dc57ec40fe917cfde66618fba678ce0c8fffc566d4e8c7944d6443def8014fe8ee410a1b8dfd06cb0b436619e0dd
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -1999301bd9877fe07ca711f308b2f1bc4a704fd194ec4dbc297355d6285340d6ad7e90cb0add1770aea19737a06750c3a7a6fa0b778ca995dc
+
+Sum = c590e57ee64fcef321395bba088ca0a867e1e85a1ea77478f8783e6a6cf8f3e582bff83cb2d7d9fd549fcbb40dea22ac140351007030059500bdca81413600e9
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 219639ed8afc21e052422fff0ae5583231ebca2999404b099628093e6540b1dbc20b9c495aa7229b5965b19a5fcd653b3fa0eccab567c5b5e8
+
+Sum = c590e57ee64fce834a00cc6282cb0eef49eac7a8d5b51988cb49253ed85ae261c76f2327a691fc63eceab02614807048b2816cdb9b89ca66a17b6ed1abdab580
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -4e40fea1cc899fb166dbc721a6639a28be4164ef92545307ed934796afcb9401d75c18d23352471709fbd049c50740ffeebe5590fa2d959581
+
+Sum = -c590e57ee64fce1a17609c61ce02f1020c6eb6e241e3fdd01546ce7247725589de32db95f36718d410f9ce9a94fecc8fb205e876fde75ce83f4d01e1bd5d818d
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = b7739ed1cd3e67cf541943326cf76b4476f767465ee53b94c57c83de417ebee5673809b3bed1c8bac2fc4bce29a4e36d6d2083fdea1c12c974
+
+Sum = -c590e57ee64fd03e2d08c3d8e5110d08e3d36557d82e0e49b408337a8c9d4298802ae5f0145a9587531a70d2f8af932b8262245428b5c549817d333f2dfaeeec
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -16ca20955a9d8a64cb2be217c089edecc02a75a1ea95fef584925742c18a234974c0a16ee7991e80bd8d4106db385eafaf421ac3373548aa3eb
+
+Sum = c590e57ee64fd1bcac71b5b055e5934ba15dd7f56370063369c36e57a6b753269e085d0f4d38bfb711d5579dd1d89d07f266e727b232a497d5b0d9bfbc02d8a5
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 2eb21724781497ad2f57babeea62a20c3ec5d1559867a0968d74351a337db12c17bc8d1d5446b1115b5441530870f67da4275dfd9f3e2928da4
+
+Sum = c590e57ee64fc7860b0be6ce861bc2f099db7fb623912b7b0729c019a8183c669c73efe02b195483a4cd2c78244cd59678ac4d62f6887fe686a3eed37ed460ff
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -74b7ff38760864efd658bd6699915be16cc058454b78495ade8be42c9f7470ca9b7a43655e1427ab1bc35a5693dac424a6ed92d10f85a9bea02
+
+Sum = -c590e57ee64fc3126776e79d9fca06233bd2ef5570a65e4521183627bdbdbc555e9118508cf63f519bc0caedbffd5b1a913ee8c3603804820a9ce54b1207bdef
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = bbf238886916ca0ba32e9def9f9c8a8e401eb95dea96ef02df9fc25a186e52fbee9ad42b76ba6ca2c381d12cddd4292c5d355341a80c7688d12
+
+Sum = -c590e57ee64fe6dfd728dfbe45aee52380b5a00cf1e05e9f09ac582e2714bb589caf2ad038111c5b1b5573a45706ab1f6fd5d5a1ee7ef4a9bf186dca8a9ede12
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -180e4c29718f394424cd5b03b6bdb8911c57fcfe435cfa66d10941f870f8c5eb1e1fd251f14af03f23ccc1841f014bb42a545f476dfeb12e9311
+
+Sum = c590e57ee65004b3e18a5820de4a6d25e7c3d310003e0b8716bbfd51d5f0f3e87fdf8e00599d713397255281e66ef419a9d9bb228e8f052764f5f861ccca656f
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 35e2568ae9f1d1dfaccfc211e9c0c6eec9400a0de880a94309992528d428e77772f84e21d0287fa76cc6fb880481ebc43ad20524f895f35a1a6e
+
+Sum = c590e57ee64f84896a5f11f575d34b6001f27d4b4d6e7cd9485260629f8f7f1c6ca6f6115b98d776774295dde4d59cdbbceccad097a0a054b501bfb47d81e85c
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -4a4820a05c39969774f623bf6c03ebe0c56dc45bb46e8d1e6b32ee0fc3c6168d26c4d1c0ec7b81f1ea76f164ebd00b2a2a00aacf40175bee62a5
+
+Sum = -c590e57ee64edf1b2b57b4cbb92d778ea6b9d9878a0374d4ea81691b09811b105bb6dbf23a57d89264f0e6c83f8d00fe00681644feed56e15fc81103ab9b7dd6
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = efb65fa7b963533d48c77ef80fc7af4bcd72222cabb6232ccf3efeffdde537ce25a8e4129b91273a8654ade9a05ba3dd73740008eec82dd4cd2b
+
+Sum = -c590e57ee650e25da7b60146e014f472bfff9809aa8f519db7943f69d9ad09ee75a3427c6127cce7bd27f224b9dec03111fb066956b4903f9f9740cce1aa4ba7
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -1138c1cb69317d3aa341c9a4daeba71400f56aae62a98acff1f9f1aec88a4ef01ceac74246fcb531738de63a94fc8b3e9c5ea3fc64101083a00a6
+
+Sum = c590e57ee653af8752322840ed720f628f9674c81073b58372e49ef26d4a2a9d46a0391bc170336614b27849de98709a4b321da4ddfb978e9f10df29154edb9f
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 3e0b5c732ba11e1074f0c69e48b78d724733c66368a21409c404debe97f444f4a352acbaef5f077d0e9479ce067043b30cd393f3fdf5d3bde909e
+
+Sum = c590e57ee64bc13634cbd149aae35ee47bde6ea3663f74ff300cfdb2d845f902f017586c6d4f83f08c3b4f0c035055d13fc9d340b7b9ed164432aed44e8f4d7c
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -40d9b56339ce561876171a9d37aabd30fcd47dca1171e5467f14c6a9f616b04d67a4abcc8334d637731816e87e35feb10dd3f1b9e50f78ae0fd85
+
+Sum = -c590e57ee6477eb692705f8da1357e71591336907a5e0a6e39715088d53b2610882765357563fd101bcf05ca545a0c718f52879fdf4f80cb9a12cf108eca60ed
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 8501af88f0ea16b3541e4cc9eb2bebef137d8d33cc4485772c43ed28f54a1fcc2012b2d347c8f126d7ae11eff2f00c37b4989c5be30bb4aa5ea14
+
+Sum = -c590e57ee669b662e37f5abf13d00d2f0c1c9a8b99ec546361aad255f375bc2742a3487c351c5ba00efef09c77331577460a47c57125c620b643e9eaf36a146b
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -19e791587fec9007654cd8e66ab13c609d121c54fcbd84c6c7d1d7e7ec8ea4c2f65d64c5fb6e43106b8e2497b89124ce5afbcb5672ea1f19f9c96a
+
+Sum = c590e57ee681dcbf1554f22c0b1ffead917dd414299cb37ce6967ffec9c333931e70358729843c8130ac95aba47fa1fa5da74000eff25eecae176f093a4effca
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 320ded8a5583fcfeb53e576bcbeac4f04d7135d9e86b2d9d154943c3b97bafb75e3e45e7a913523db81aa7af5589604d2794974e466f3d60deb4c9
+
+Sum = c590e57ee5e505ae4a2e1f25a1ae9b7b4d17dd2cccc09f2416d964e55af6d0d31fe259c160f87646a72e6732d5110256b3b35425225d622b81418435c9dd8cc4
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -6ac92340d14f096abc24dad89a0c226c8ea322f5d4afebd1b7197c3ad46016112d87f4a1d51b2691b684fbfa9e627b806d6829de8f7b960f92be3d
+
+Sum = -c590e57ee58c3ef1582bf7a516e36f92b60f5a587e2c8cb071d1d52ff215854e52de1519fd5204fa52292dfdc397d8d76b78005941358b63a3e6ca41b0eb09b7
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = c38fe032d37689f58750c36fa28ef6bb22b5969adc3fa13a98650107d8a4bd74d3f940f6da545ba32fae7b42d9b64761953ef1bbea358a2885414a
+
+Sum = -c590e57ee80262967da4038a143f8ff2e78646108f25ff7183444ba507d76f9b05a34c8310e682c05495d0863ceff264964dbfa7c064adf6d26d2dca6e22ab13
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -1b293c4f2a4955b07d4cf9cc1d45cc155d6bd2a769636d3db29854baaec92ab9ec084850b924e2cd6286b11e7fc09071d99e3a1729c2dfe94b26012
+
+Sum = c590e57ee85427f08e8c89ffebfcc05c73370ad4cb77696c2b2f3878e6f6df341d4d931b5097aba49f14ac0312e7da1c843d6fd08119822e75e6e7a8c7bcb7b0
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 204591f038d1bd0df9200064d852185922827251e8123a7ba48f4e4c296d943de71ad69561129a9ac2052c9d5ebb92fde4eb7d91615e7dcee4c6caf
+
+Sum = c590e57ee051ca1a363c47a4cc016c3de7f7e17985009b545528289e9fbc9086f4b42a73826eca0c278b0d1b4ef6d74b9a0bfcb7855d40fdb201fbad1074b927
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -5fe04b754c3268a406954183dba07d5b44ea6f2b785ec328cf159c866028f63efb7342f2178753e17d0b0071445b9e91d6d8957adcf041ec8fb91da
+
+Sum = -c590e57edcd6e9ef06fe33f3817ba3d0c50c8122b77615c4b8fa50c5514f113d7ba53ce057d487bcbc373c4384d07b29a527b7ef785ca609474879b42a9a4c3a
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 978e4e284013a3b8aef1c8560a5682c81d92c8253b3c40bdb5ed911df117cf71a51767e8ccc4615e1f70c290929feb12a6e244c18888617aed5fec7
+
+Sum = -c590e57f0436bdceb586a093522eb1630e0fc08f8790957aba1875a42b7676f9ca936e8f6f3478d6ef5cd590bf6ded0700440dcd769496822af8015f0a6ba2b6
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -1de6eefd2a87326445c3f10ce85dd7404e415333ad6a60d2fec88caa6fdcb4b7fd0e7a9ba659533758a665b451f2572cd3c9cc2ccb27019330fb57b5
+
+Sum = c590e57f1df3f004d5e49f49fa28603b26659f1fd35e0d8d7a2753591dbc12c51e6b588427dbe3faba2f0c1f2f0a2aea9ba1fcb2fe71c6ff40555058d23c8661
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 37a421334ae5311aedbd9fe500b3b5d09a0ecb466d793e87f10e2875c3b49eacb5b5e5bf712b89c5c842a397ed5046125ba6fca9e084508cf8cc3b60
+
+Sum = c590e57e9a4abf4572fa7c4c9f73e9d3fd1227646fd6d15b51924bd7a5d417b01fe6b4273eaa6ece387422b81c8116f29702d7d66d2f6e8c3454807b3b7d413c
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -4c050f8c1804f1e26cf6d682289fc1eac97870ebbb1bc8f986d9d29f3ad005b0337b8f6d108f5fa14a467060174edeca359b5bc92b7c7f509df309c5
+
+Sum = -c590e57e64216c306f17017ac9dd7085113e16c83168664dbb77c7ad3ddfc79b09f9ea0c474a0b497ca15e7fb258eed9666fd009f691a3b2d691c2c6b22ba3b3
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 822e62a11be86cb4428d4fd11473d28707e6dbf951364d23eece22b450bccfcb2adbf2f1cc6223d9b46e987947e1e696ac3926a2893f3d052744a74e
+
+Sum = -c590e5806ab4d09773c4f94a4aac09f6ed7609eec1d0bafecb09e30f032f706e9adadc191ff9e6d7dccc821f7a8666a590e521749d24912c5a5ffeff246f7c85
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -1846501c5e8c58b1b3e4149a0c7c4209f888178b7be5bce3dd681861f40242241add3e89c93c8ffc613bedf52e2936ad3fa59c6d6fa8eff334aff3184
+
+Sum = c590e58248cbf5dd61ec57994fc862ab479dc6cda51cc17356c45cef66bbfdd12f5cc421940a561581c123fb17483beb7a1cce2596fa9ca76e722a6f4621eae9
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 3627c270bd6ece96a435da25521ebdd7e6bcd7f2c4a16481e3a0e1381d4a60a4a21e457da38bda1a1b080b498cbcb1784f42fd2520ea12aa36cb19fe8
+
+Sum = c590e5771a85bdb1f26c0386ce837bec4b0af5656496efdf4f134d875f066dd6d477ca8f87ffb275da07da4dd1bed4232849a526836b47f2d69f2d53b6b3e2f1
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -7cbca111f98936aa83de74469daa6f3e9d4b85267bd9ac749cda77c78863eef47ea264bc56efba80b9508b32f8608117a1f5f82628931d27822bc6810
+
+Sum = -c590e571c76afad23439f904e8a80fc28dcabb6cb732e361ed3eef471be6fa755e3fe746edbfe448c1f289ffed7dfc01fe9066d780564f57f93abbca9b9a995a
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = d1ee4d3ff56c5752a23c2b09397e72de2821c5ee51f6f258a10c6efd9fc76d290846619f28710f85979498b50afc14fc922747afd669644013dd5b1a7
+
+Sum = -c590e598cd5d4a59ff5d6c97c6370fb517f1d492a7776f90063b0ddd6702e37c60fc78bb12857911cea37b7263584d7dc815676de6b8880200acea154b59b08b
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -19e70d7b88745dfe68b9cc4f5ef23feb436e282d48f98cf90c3a54f92d0645bee3a05f7ad6859ff918fc90c62b19c3b0cd43edbdaca0dbea4971e9658a
+
+Sum = c590e5b5829e6fceb77830fbe999a98127b50302fd0f6a86ea4aea27b846747a07e6fcf5457676e6446137d6bdd8ff4fb7ca747b650b066d65d7dc1e172488e7
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 369c4ea0fd2c78c2ccdd2ee92b020319b3c3c0283fdd9cd5568b988a2aad30431dd35078aafb5db57d571177fd0978bddac2403c180606dc523db43de6
+
+Sum = c590e52a3ab5d5c458634254e2f672a322000750741e969d2f6cd12d172480ad1455300e3a0575b068b85d50b58f9737be13073188d0f03b71494bd0fd2fea16
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -54ab99f90d329c2bda29744db303b1e1fec530aba9dd4143a4158969a2466189c93820888ae04b2508b137f01af03eaf6f19f9da19ee87b3fadc4060eb
+
+Sum = -c590e4880579ef7241bde94e8c7847badc705f53828751f9975f0e66371d2ddff8740b143f32e88be8e686e2bf5a3ce03d864d7699a813b1777b9239af242c7d
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = f6e0d5df5f494184e07ff2789b494189fbb6c7f04d754f066af590bc6f6242aec332f315af601cfb76a76d4a7270cb692a0922b6a3e8556d922a4c1e84
+
+Sum = -c590e6dbe54098694155509e38c61d503ab7e5237d2cdfc2b87fb57e3a8420fe37fe50a0dad4f0eae3d38fad6198e4ecaeae183a12078f53d09ac8099c715242
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -15cfef0c997b655e26f2c5b5cfa1505fbd443dd9d7babd1a0ad0dd636aedd4796c968aef2af9ad00d53fad15d9a005c61996f3cc4fe70c9c83dc3010741
+
+Sum = c590e906254d013be2021ad591e76e26706a6815b8c484b6528fec65416e1066957002713e1183f1005f565983aad7aa031e549e6fc57094ca3e4383e7fdbc15
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 3873efd326a5702aca6857cadd04ab87ec67f75426f45e1d79414c026173ab94899cbeb85b5b75bd4001ce3505754cc9dfdccfaa63f6a6d43b80e8d7114
+
+Sum = c590e0e0079190d7afd80acd6326fe93cc00903318608df31ee4493d11271dac7291bd142cca0e5dd7dda59dabd460a69b7855d9c2acb5f062de76665e07cbd7
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -49edebe3df9db276361a943c1c259b1591c20eeb453edc9cb941b86cca2e824fcc3455befdd7125dcbbbaf326ac12d960c6e01e1464fcf289657b687f2a
+
+Sum = -c590d9ae456d66c1b132d844eb223867ba4560b36f53c42a616cf8cc657e6d252f813847fb9fc50127227684e5c0f5cd890eceb341d21e788e42f843e9b64080
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = bd0a0e2680fd9cc95ea214887ee6b6c889bc9fb7e1cab411c04c72f7d2a2b35818f7686393a21e10bd4810691852542e7ed60f8abdcd18e0787efba0a81
+
+Sum = -c5910498291472fe1d0047d5bdd9e46deb3f26000e943fce8d83d700d9ae233ab3a28849bbb346803da142db6a471e9f79cd49571f40dbc46f7b727a4bb3016a
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -1f1942c4a42c9200d9a6b16f2417c58d3cb0d544fd8780d5c22fad0038eb58ebce72498d4844f49dc082037f974ccb7b92b67c76116f0faa72ae7242b669
+
+Sum = c59112d841ea109440e78563d9eefef201c81e86ae967083f8b7db80d1eaf58551d30519ca6dd79164fe69a29cf1ba22446cb2999f73292241005bf17b37528e
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 2d595b9a41c2b5e81734cd843e9bdc16353775472e3cec09c6afa53d0b35f71c4b425847d9561bfae749362a32cf961afbf8fca85ecce12f5c25a1c7078d
+
+Sum = c590671f890ca06c74ac6d2c4d75aabeaaa55312e85a5e1ea9cef0e08e154e2b090eaba869e9f6e4a47ae10b9c1eb0f6ae4fb3ef12b3121d96066c6c8e592b6e
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -7e5f5d432e6516530102bef515977b0c963c50f4e42862df23f09e989c2451a80e2f083c0756a488a14dcaa8d65c000202b19017b837c9ca935f4b171f93
+
+Sum = -c58ff0ae92ab03072154949a7143d45278ef77a0ba71a785d5a370e0d30a9b4b4f7e96a395d13e6afeebbd717365d471ee56ba11c472a63c0532558104bedfc5
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = f4d053a4cbca69aad9949b26ec03acc271ae7edd9ac1370aa3f059a34f040b382333dc54bfd04a17c4e7f361b2e0bffafc8ede5824195a9eaa4ad4b16b3c
+
+Sum = -c5927a5fcc3b31abeca3998ad99c07626112288a6ad95b24929fed581040757fdce73881c48b02daf09986ea436a3f5ceb6833c31fa2e1691567601a26c7a6c9
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -194e0e5eb62da61a42b5bcd31470c3b603f3b318a18dd85f1d886e3928b3082307eaa5265049fa7960490dca2b80a3d167d227cd81713b596604e4d575bc8
+
+Sum = c59395e94d495451e3fea153f3e4361a088004a7d5426c1b94aec44108ad6f5cecc3a80dda0cea9f51b882747258137e171bf021b4fc59f4dcf0106d4ba952fa
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 2b06a66f9858058ff3324e77975c3e2ce1b589bf329d48800af6fdbff850d920cee3667e6ec6408b5001b0b908c2b68ca398112318f9f7d1f10a1723907f9
+
+Sum = c58bdb26c0fd6766f3affea389cbe7db25c06d5d56356d3d945347775bddf479ffc9e279e7d1ee88eddb239906749815ae4502fbbc6fe978a001ccdafd89cb10
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -50a582552676a974f6f8b829ed87afff17bf1e319d509785acd59d0cff5d55aecd75d8a540fb25b285ec06052ef3d000cb3a4e65ae0dcbfcf32f0dbe67ff1
+
+Sum = -c581afe9b7ae86d4b7053f19649beea6cb935799a553f035f9b9a7fba6d5559e4ecdcd1637c73c8052c6cc52ee1c28d1e5aed9db7261b7356afd6e3dbc213684
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = f35952ea147fcd3fa2f15a7ced1af5a1e91b593fb521112f46cd585d894b10be8ecc13a5ec1baf63cb60678ab5e80c8a2dcc53069131ff4d3918e1d4f147d
+
+Sum = -c5a19f36a65a6a8d52a53a63f99a1b957d6e376b7010ad14695d78d67b0d7c86881006188bd27bbf205c8c9c200dc8f5c08ab6b97dcd512f6cb93ed9a361ff9f
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -10b9b7c00a9bbbc7a5cc34ed2f5b3f57bc4e1c36c16acd5caf64054e5f92372d594c4119ac7d83d7590a42b94641a312390018db0286da0ce83f0dc9f1b49e
+
+Sum = c5cd0e5da24b67a894402b0eee5dd586ab70e5beb0693e263a54995193663a9b770141379c1f097a49d1a889bbf0c348c6f40ed50bd7bdc11a7869c6106c6d80
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 3c28debbfb98d70940bcdfe1f3153085befc6f7719fbdf2da6848066b8504c1c4a876029f90b3f00ce263055293bf618a25834690cf36bbaa769fa36fc227f
+
+Sum = c54e2c560a00226701b76cf03d5de27a8c69b38a6b85dad9f7c903d2e87f9a7d247522e72491460f6a529e5ca2aaaf690cb238b873ffb49d9fb0ecacfedd4e90
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -42b928dc4fac6a8948013ecf0cdddb994835c4cdc9676d14e510fe442e4fd2364196f04d94b82bdeb0e3fcc41cd7e9a19f7de82ecb15b7c020131eda92fc71
+
+Sum = -c4bfb037f6e6e861efb090ee610c33e7568790259f747dc6e55d442aadd68c0cc93c7617f83980e8813c0fb7dd28c8aaca6ad8fdde5d2bfec9ae096faa9ef54e
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = d13546ef68e66f9b4edd40ab5e8c6ecf2a592999dac4802750d0a67ed75e42917a43bf79ec7d52c7c772a1899ebea7e3e6dda2c46d9e569622f65c2ed155b3
+
+Sum = -c6aa2af8c9ae8be4aada83f66b7f31a8bce5e92c67d8938424a1405903e5502bffc4ee1e333da4bcfd0cb383b19a566372f877a8344b66dbceabc9786dd0e4f2
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -1194579e35ebd131fdb15c75f1471529733ffdd2e89513d17f32b87d73765dca50e3446c117a681b409312a4ad2cf10c4a6c10791809c866edac9ac946099f1
+
+Sum = c8aff66c9bdaa49eafac0f65d3ddff223b7a5471f7400431ca3a54615d600fc4a163f8fb648bddb5fd6915db1991611805040e0f86f152c8fd3333ef70d632e4
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 31f10edb58ad5cd24aca136c7733ecc15c86b22bdf0c1eabd8c3f9030b2257546ad3f23f265df7ab4659381b2c9d9c556b2576ee42688739d6234239765e7e3
+
+Sum = be1b6eb768e2cef388eebe31f9b21e51b38b351cc8175eba06d49eef04c2936f32167174dcb82297fd4180d0afb5da2c455d158c7a5bf01bdef8c295a4f20390
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -77576c77d6cffde0210affd12b8a2047226b4327137e38d05d975e227eb56e028a04862956ddba34bc20188b711ad2668f4a114286eda3980d83d36347e4771
+
+Sum = -ba32fca1d5cc5f31ecaf5407f376d3aef9f4abc04fd4c6893721d3e50e9141abf356eb2ff6f7a4f9b42983148670d2918e1dff7aa7ae33a6e9dadcb708b4f9dc
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = b5de8dd10836f9f9e501a2718f3eca72bbd3d8ee97a7bbdd58c40ec1e1ca8a3675fcea77b2e594194d9ff44e056b4c12033b725fb1c96ae75f62314d0bb5125
+
+Sum = -e388afbf17c495f86aa7298a45f848eb57e5baaee42b1f7de8c2311bfbb8f74549712c05fd3bd11ab8874fb55abb22a37ba3512e733ecd5c472842e8e6f7b179
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -1df7ca403174c726dfa7bb5b398d88953233d15faadbdd36dc141c4acf0b0cf5eeba722e8b15d2df6f83cd5bf3f39b50cd519a8dd0740306e757431d0d876678
+
+Sum = e891babe65ee02c02e7e876c0df3dc3bb37491008f3642ca7affe2d623fa82a6d5a9e5400944a374ab70fbb8f952dad0c8b27c77475b0dfec7b0694051dcd1f4
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 2300d53f7f9e33eea37f193d01891be58dc2a7b155e700836e51ce04f74c98577af32b68971ea539626d795f928b537e1a60c5d6a49043a967df6974786c86f3
+
+Sum = 4dfc2f63d60f83fb1d397d2406b02a3b25c1a57c09c2fe02c76696b7c956e44facdef11470074d8fd8220c7bf8e647ba873fe9c3f9e77d6aae7b5fb64f1cf566
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -7794b61b10404ad66dc5f10b05ba961afff043d32f8c444445477e19635705ffadd7c8c3021eb0ab70e175dd6de13f982711ccdca8e34ceab155a0158a53559b
+
+Sum = -3c19bedc60e7d7dc3daaa36795e453d810c952dd5185fcdc857e2be806e520068dbedb91c4a1131b9eb6dcdfd500045209514e3e9f6e6df41d2ec67fba20e10a
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 897726a28567f6f54d54cac776866c7e14e89671e7c9456a872fe8e925c8ca48ccf7de45ad84eb1faa4ca57991c78300a5006862035c5c6142a2394c1f4f69f7
+
+Sum = -28c2bddfeffbdbdb1ec6f06aa310d1bb6f0c4b88d0106a1b381ae6fe8f65c18bd9895fcba6931ecf06d9dab6c7a3ac9e00361bf165f16bd16af25230d040cd842
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -1c69af880196deee0616f987b24a25b60cb12cf3dc7b75f6c75005b17c9ae2e6e3ddf42e2f70beeb5249a29131373428d55100875bc4bf2c14f5423412a9c8d41
+
+Sum = 372ea360832e30b16a3c30a2157c8bddc4408ce0428169deb09bf68113e4b8482d887de1a7cfc80272e597c3f3f104e6825a1fd2a68b41cbc307caaae17d453e6
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 2ad5950894c933c4518c39bf24b5dfd861e56e4b4eec75ba3fd115340119d9a337dd124430ad681ebe555f9e5d848c71577504689c5e95266d0abaae23e6408e5
+
+Sum = -5b29f4991cad86845a50949f25ad6cd7c883d71ceec9795cc528f58a4a4aef9dc139e8e87cb82071e112b2d256181eaad0a98fa36b25b67dc673608939b48e08a
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -678302f10b12837173008b82167418dd2adef5b1e25e6d8135f3d6d75d15ce42b6e55485f3da805595a2eaf7ec84971ffb8eab0d755263231c707085f74b92b8b
+
+Sum = 98b37ecc0b42a15f52c8fc8bc2aba294031bc2dfa37dcba0fdf1f5f5da00b8b3daece033b47bf254e8b5e201bae24995034673800d53213f6ee0796be1ca93845
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = a50c8d23f9a79e4c6b78f36eb3724e996576e1749712bfc56ebcd742eccb9758d0984bd12b9e52389d461a27514ec20a2e2b8eea177fcde4c4dd89689f6198346
+
+Sum = -1c15985f3ee941d7ab6bedad88143cf497681424e7456fe30eafbdedfcdf1e927db124c775b87f36cefff17a35972ac40d498c4be818883bfc206f44c5e5eec23b
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -1b500779c002f208d9e0ee3f5907d2344142623b980c20a0c7a30fd92bb270a82e566e0d9e46593893b6edf7dc30633cba9b3a954775bd71a6c09e44fa0c7e773a
+
+Sum = 34ab71257e63b234258027e26bd35dfa5e07f67385b6772c5ed445438478bef5a835e87c9de413e23839849a71f5af99a67427098b682bfb6becb66d20eaecb2e7
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 33e5e03fff7d626553f528743cc6f33a07e2448a367d27ea17c7972eb34c110b58db31c2c671ede3fcf08118188ee81253c5d552eac56131168ce56d55117c67e6
+
+Sum = -44f9508e3430f93d4e2c8be1b856f46c01d6940e1bfda8515c747a1a95239547322999e500e718ec98ed211ae04ffc76b0e6f2364ce9d913ffb80397f24ee8d64e
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -45bee173b317490c1fb78b4fe7635f2c57fc45f76b36f793a381282f665043318184509ed8593eead436249d39b6c3fe039543eced8ca3de5517d497be2859214f
+
+Sum = bea59d2cb0bf556876d4f8a248339af69644a12d3dc1d9a3d83929929b8db5aa26289bd06e2488a96820ea8f59168cc82f19b5dfaab20d245495d6e24bfb260a3a
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = bf6b2e122fa5a537485ff810774005b6ec6a53168cfb28e61f45d7a76cba63947583528a4596aea7a369ee11b27d544f81c807964b54d7eea9f5a7e217d496553b
+
+Sum = -166abef6a1682bef78d4c5905a833b81a03c0bf0f3735973bf7f02181a8ce5c7f125f41fcbb10c7f5905e492fc3f6b172f23d041620f8a7ac6f76e0c8a53d3cb5e8
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -165e65e84979c6f28bbc1599779274d59ad9b0d25e7fc47f9b0e3736cd7a1ae94c3048b42e39ea1f7551545ad6a8fe9eb9f8eb25f8055dce21a170fc8d963cc6ae7
+
+Sum = 3245e002843eb7116b987b5cf9160e6891a74a6843039f8517fbda68b0e6ad87fd0aa836a2b6aacabcd67d45d327e6cab43ef569f488354e22f4553eed09e83d601
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 323986f42c5052147e7fcb66162547bc8c44ef49ae100a90f38b0f8763d3e2a95814fccb053f886ad921ed0dad917a523f14104e8a7e08a17d9e582ef04c5138b00
+
+Sum = -464684d68716498baaa3744d20c112a854e148e6d004e4142c79f4e25a36c0acbff72c047925377f377ad690c63fd21a3f05911d11fb8bb79bec4ea68fef9f1d575
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -4652dde4df04ae8897bc244403b1d9545a43a40564f8790850eabfc3a7498b8b64ecd770169c59df1b2f66c8ebd63e92b43076387c05b86441424bb68cad3622076
+
+Sum = bb90e9e393538df233d499955020b8f3c9789b1f18fd5ba31cdcca6afe24842166e6cbf1985f7f9e002335be46de06ce11ffbf6dbfe743642cdeefca1a856219fe4
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = bb9d42f1eb41f2ef20ed498c33117f9fcedaf63dadf0f097414d954c4b374f000bdc775d35d6a1fde3d7c5f66c747346872aa48929f17010d234ecda1742f91eae5
+
+Sum = -1804d154182f4b71cab3529447ced41ac310a1d14121847816c74171759998b707db0f1f3a9d6f6e01a2de48ec83a45e5dc7d0ac9133c8e00ec41814e3d2818834f4
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -18040bc332b06521fbe1c794d99fc7b002ba7c1f57d24b28d48034c360c86c091d8bb46880c5fd48036795456a2a3d96d675225ada932615446eb843e406a817e9f3
+
+Sum = 3b75f0b892eb00075eb21961cc018a2d297764bf560cede3290cab6682a56931b831380b72a9afc3dff88f042ed5bd5d8468d8a1e267b36e508c09ccac2a565936e0
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 3b752b27ad6c19b78fe08e625dd27dc269213f0d6cbdb493e6c59eb86dd43c83cde1dd54b8d23d9de1bd4600ac7c5695fd162a502bc710a38636a9fbac5e7ce8ebdf
+
+Sum = -4b4bf674436c9b1079c2b24cdda19247d0db44061c562ab6f5300eac53556fbe758151824b6bc6bb63a958895fd7c4205cde5484a9fcbbe787fe38c3d36f4549dc23
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -4b4cbc0528eb816048943d4c4bd09eb2913169b805a5640637771b5a68269c6c5fd0ac39054338e161e4a18ce2312ae7e43102d6609d5eb252539894d33b1eba2724
+
+Sum = dd8af6a278a84889cab2d444efb282a7259a608117db26583287f051bca1b70c21f8c3d95b2f4e0b7d25b6966771a5c41414c386bf4491ef7b055b07455c12b5d8d5
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = dd8bbc335e272ed999845f445de18f11e5f08633012a5fa774cefcffd172e3ba0c481e901506c0317b60ff99e9cb0c8b9b6771d875e534ba455abad84527ec2623d6
+
+Sum = -16cac44109b24fd5d47dfb5994caecbbd534ee11178aaea4a100d9e63bb2c5ecdcafce1e2080eafdda00d26c29e01980166d8db67800e33027f5260d154efe1a98973
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -16cab7e7fb5a6170d790e2a99de7fbf5292f8bb5f8f5bb0facdc691b5a65b321fe0ad872b4e373db7a1d1ddbf1ba83139df862d15c96d9037b4fd0100552408393e72
+
+Sum = 22db04aa783edd3e1a55d263262805f2892c013f78ebb86239f2e5981090158f57bdf3bb171c2e0c1c7bf9bc88ab62683581f8b02c5bec8f631bb24ade9be235108bb
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 22daf85169e6eed91d68b9b32f45152bdd269ee45a56c4cd45ce74cd2f4302c47918fe0fab7eb6e9bc98452c5085cbfbbd0ccdcb10f1e262b6765c4dce9f249e0bdba
+
+Sum = -4c8c0b74eb7a79a12ecaecf885b9672ac717b1c8db5ad251f1551ce80af89acf3a495066c85a96e6430be8e5888ab1ef3edd5e76645b5914ab55d221c34d07f8d5ce0
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -4c8c17cdf9d268062bb805a87c9c57f1731d1423f9efc5e6e5798db2ec45ad9a18ee461233f80e08a2ef9d75c0b0485bb752895b7fc5634157fb281ed349c58fda7e1
+
+Sum = e3718adf0c2546c8cceb0e8c7d909deaa50b50f51d7b80f8040763eafbf581c017e7e12325b258503fe651ffa4c3d3ff9200515d816dfa3ba372dc937480d121ef056
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = e37197381a7d352dc9d8273c74738eb15110b3503c10748cf82bd4b5dd42948af68cd6ce914fcf729fca068fdce96a6c0a757c429cd8046850183290847d8eb8f3b57
+
+Sum = -18dd84a4e54a29c1b3106ef2f2d92be21ba64d2e26b3f4c2ea68685557d01a07f9229365c6d109205fa116fee59cf385cdd61b7fa5de8de751f02f1dc0eeb304babb4e
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -18dd83df5464aadb63419d67f36afcd5b0e5f70874caa5899b262148a9bb48db4b38440b101731ae39a2dbb5e21a9a1f064ec8d15427ed448725d9bdefeee72b4a704d
+
+Sum = 3ce64e7953aff0e057cdd6c17499461666f5bf8dc3a929ba7ba919486c1631c25c0e142584470d3f759157c045f9f488502a76024b6b7b2bf84c0adcce8dd7c6d6898f
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 3ce64db3c2ca71fa07ff0536752b1709fc35696811bfda812c66d23bbe016095ae23c4cacd8d35cd4f931c7742779b2188a32353f9b4da892d81b57cfd8e0bed663e8e
+
+Sum = -6a392e555c2ae89dd73f86e11fd98d1d59ed03072a0dd61add633b317d5638d67984a55e51f01a2db94ad6eb6488fa80cf4f25a32d436886599c33b5287a9525f41a4a
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -6a392f1aed106784270e586c1f47bc29c4ad592cdbf725542ca5823e2b6b0a03276ef4b908a9f19fdf491234680b53e796d678517efa092924668914f97a60ff64654b
+
+Sum = 8202089b883a5e77457036254c2a73aaf32f03eb1e61fae428926028b499b7d0a4f4e5256094f34bc2478f0595aa01aa79b5d36d7f30136d3af2be93b70552fc6e988e
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 82020961191fdd5d953f07b04b98a2b75def5a10d04b4a1d77d4a73562ae88fd52df3480174ecabde845ca4e992c5b11413d261bd0e6b41005bd13f388051ed5dee38f
+
+Sum = -13a2e13d675e3fa89489c870cda617ae92ccb7d2f6b6405eafcad9c89a682b63364c333476adf0322febffad973f3dbddb7cbaa41a64b1ea24dcb2bc2196a0af42eac3f
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -13a2e1310e4fe7ba2f8cdb581daf34bdcc20b2709b97ab6b1ad6b557cf86de506b6d8e3ecb4252bb0d8c1bf9070718276f044579354947dff8300d662486a3f1abe613e
+
+Sum = 2bf9f45c817a8f5c589a208c57c30b52866e75a9b6ee0fb7c3f0c7ec3761f2c114858241a189e331aa9ab440132dc8f5ab7dac0891a69d5573dbe42fda019d30610f07b
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 2bf9f450286c376df39d3373a7cc2861bfc270475bcf7ac42efca37b6c80a5ae49a6dd4bf61e45ba883ad08b82f5a35f3f0536ddac8b334b472f3ed9dcf1a072ca0a57a
+
+Sum = -40557025ab86f90705fc86e3ab3d8494255bee490822e27c5551037f36f9ca834fd33c11a1a162357cb21eb83254c4da56b9f8f54aca29b95283ac03732a849258e7c41
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -40557032049550f56af973fc5b346784ec07f3ab6341776fea4527f001db17961ab1e1074d0cffac9f12026cc28cea70c3326e202fe593c37f305159703a814fefec742
+
+Sum = d2985750cb9579d3f5dc3db7d2229f06e2a0d57d195819b3646f84c08eafc093def93748aaedf1f430eedb90c1694d894339caa4141ef5f07708e1a3607c5793df599b5
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = d298575d24a3d1c25ad92ad0821981f7a94cdadf7476aea6f963a93159910da6a9d7dc3e56598f6b534ebf4551a1731fafb23fcef93a5ffaa3b586f95d8c5451765e4b6
+
+Sum = -13a024fb88eba47aea55fb69680479058efda97b81fb1e6e7cfe520e8dd8ad12deffb69662852f9a94f3b029a37befc620d792a8589660e2ebc7d6e1bc8c0c8f35ac1216
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -13a024fac35abefc04062c97dd050ad68292e9255c49351f43af0fc7812a9841b251cc4707ce75c322cdb1ee5a786d6cba100b55aa44aa4248fd0c8c5cbb0cc35c3bc715
+
+Sum = 22701a8dfb82a2ddc8a5485b05362205a549bcdd24bbd660f2041a6672732824bbcac4ff58605ccf1d8ee066204a4a639828c41b722fb4a1e6c9bc3f82a89d85fd042f85
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 22701a8d35f1bd5ee25579897a36b3d698defc86ff09ed11b8b4d81f65c513538f1cdaaffda9a2f7ab68e22ad746c80a31613cc8c3ddfe0143fef1ea22d79dba2393e484
+
+Sum = -4f73fdc6540686b350c859bdbe8f22340786ddb04b7ddb8858d33ce8931bcf660269129607f77dbc1db38d8186d8bae7ebb4ec8716c6eb26342ec8290d8d8988b1f5fb0d
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -4f73fdc719976c323718288f498e906313f19e06712fc4d792227f2f9fc9e4372f16fce562ae37938fd98bbccfdc3d41527c73d9c518a1c6d6f9927e6d5e89548b66460e
+
+Sum = dcbcb3df6508052fd0d1cfb0a6088fe978227066c58317cc359f508bce9f45987ce3152022e19ef068b0381ce7d781ae3e7c04243541744c9f374a3f28dbd746acd3b9fa
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = dcbcb3e02a98eaaeb7219e823107fe18848d30bceb35011b6eee92d2db4d5a69a990ff6f7d9858c7dad6365830db0407a5438b76e3932aed4202149488acd712864404fb
+
+Sum = -163f4ba6595207387ef0956796ac29e3c6862b5344abdce3db4ff7e960b7727fa0a2870dbbe17bd8c446000b3074c1145368d4b84b39029110f915b61916fc29555d7d800
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -163f4ba64cf8f8e0908b987a7dfc3300d5bf7f4de250be4ee7bb03c4efec91328dd7a868c636103b4d23a0277be488eebcfc5c432053e72706cc6910c319ec2c97c678cff
+
+Sum = 3588d982604f471ff0ff784942bd43d85cad820864e0b9ee80cc9a9e3807d2739eb58d447830f73fc8cadc88d864f98577e43adf5150b2eb104e75939caa7de02419b6575
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 3588d98253f638c8029a7b5c2a0d4cf56be6d60302859b598d37a679c73cf1268beaae9f82858ba251a87ca523d4c15fe177c26a266b97810621c8ee46ad6de36682b1a74
+
+Sum = -4d51ba5f184e5d20b30f8e41d663d14dbe4f692f1a0749789c02290af4c889268c319fad8b9b7c9cc71e8d9878039931447fd6ede967c5c82c1915631f3237aaacf4a1763
+A = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -4d51ba5f24a76b78a1748b2eef13c830af1615347c62680d8f971d2f65936a739efc7e528146e83a3e40ed7c2c93d156daec4f63144ce1323645c208752f47a76a8ba6264
+
+Sum = 9d7a5610dcfc50699e6bc065584fed73fddbd58dfbefe377eaacc024e33e6b4fd361fac0844489fdf13efd8dca7fae0747603f4b26bb2a9bab9de5241a3af4a935ac940aa
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = 9d7a5610e9555ec18cd0bd5270ffe456eea281935e4b020cde41b44954094c9ce62cd96579eff59b68615d717f0fe62cddccb7c051a04605b5ca91c9703804a5f34398bab
+
+Sum = -1258b397182002c966f064c2cdadb06910e2042d0f51b4af494338c12b6efff052fe564a00e581c5aac0ea79fd8a1ff68ed92b7f74baabb03a51337d4b9b01a2f64ac803cd
+A = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01
+B = -1258b397175a71e3e80a14f3fc22b0fae1d5996cb92c02c5fa09e97ee46251db81d1a85fb18acb0bd34ec47bc2411c74357263f8220c59f999ae68b2f63b30a32a7157b8cc
+
+Sum = a1eea50170df6807aef40929a52c097081e1755b575a49548ee5868281973a141920234cd0176d64f84a5874dc417cdc8a5c338cb54bca390538e1014d638b51
+A = a1eea50170df6807aef40929a52c097081e1755b575a49548ee5868281973a141920234cd0176d64f84a5874dc417cdc8a5c338cb54bca390538e1014d638b50
+B = 1
+
+Sum = c7c26d68246f16d9d9996fe67616d2fd48809916e8121a5ef95b17bb9b8333d84e2416bf2a5eb3b686c936b9722e0a92a376f357aea7719610e864d9e2a5a677
+A = c7c26d68246f16d9d9996fe67616d2fd48809916e8121a5ef95b17bb9b8333d84e2416bf2a5eb3b686c936b9722e0a92a376f357aea7719610e864d9e2a5a676
+B = 1
+
+Sum = 80d5de21acc1eb10fff4e534d23b5cd39e1eebc3d7f03aea438bb6e5237ced9955bf86898e93c74565c9a197e3ed2ff8edd3acc41ecef97c4fcfd52e1cdbb07e
+A = 80d5de21acc1eb10fff4e534d23b5cd39e1eebc3d7f03aea438bb6e5237ced9955bf86898e93c74565c9a197e3ed2ff8edd3acc41ecef97c4fcfd52e1cdbb07c
+B = 2
+
+Sum = e020b9bd8d194468f8b563c8f586f6959533be8507bd4d3d7e494ef3733007c062caaa65da5c51b52f18cec4894966352f948517ee92d5f9b5ed00f020b1d1dd
+A = e020b9bd8d194468f8b563c8f586f6959533be8507bd4d3d7e494ef3733007c062caaa65da5c51b52f18cec4894966352f948517ee92d5f9b5ed00f020b1d1d8
+B = 5
+
+Sum = dad6af803cf2f40e75cbb564e8229c0d25465930d2ceea73715682c26d582148a943c1c767ac5167c0425975ff75a66eec5ad418ded078569dea2f77359c1cf8
+A = dad6af803cf2f40e75cbb564e8229c0d25465930d2ceea73715682c26d582148a943c1c767ac5167c0425975ff75a66eec5ad418ded078569dea2f77359c1cfc
+B = -4
+
+Sum = de90e3172430754f80e116cc8c848bee88c8e31810c6ef0ded5b05bbef6d5b81f9bf6593622ebfcb2b41be2e87d62ab7fd566763b74428275a16d1da482e5f76
+A = de90e3172430754f80e116cc8c848bee88c8e31810c6ef0ded5b05bbef6d5b81f9bf6593622ebfcb2b41be2e87d62ab7fd566763b74428275a16d1da482e5f7b
+B = -5
+
+Sum = c153ce69e35411c7f1e52809773ce03ce8d2af10b5c7aa3f4c9354de5ca044b7ef25089f1e96bd14d6c62c88b3c39951df19c73751ba25dc758534adba7faddc
+A = c153ce69e35411c7f1e52809773ce03ce8d2af10b5c7aa3f4c9354de5ca044b7ef25089f1e96bd14d6c62c88b3c39951df19c73751ba25dc758534adba7fade2
+B = -6
+
+Sum = f0c843f86e227571d67cfc34ac00d0e6f87f4cbd3273af68562657ae5ca82ddf5fd63476d56d5cccf62dd93f8320c0ba88658493dde282abc22bd09a01f6f2be
+A = f0c843f86e227571d67cfc34ac00d0e6f87f4cbd3273af68562657ae5ca82ddf5fd63476d56d5cccf62dd93f8320c0ba88658493dde282abc22bd09a01f6f2c5
+B = -7
+
+Sum = c5ba28844b8947aa0c2933f06aa88f0b34e0e10ca9baf1cc3bd5ff2dc0590e3ac5a2f2d3a1408009e1b35e08426bdda001adf93e872b03f4f6df28d34a3355e5
+A = c5ba28844b8947aa0c2933f06aa88f0b34e0e10ca9baf1cc3bd5ff2dc0590e3ac5a2f2d3a1408009e1b35e08426bdda001adf93e872b03f4f6df28d34a3355ed
+B = -8
+
+Sum = 84da246c2485e335d1f3b7e31c2408365f2afe7bff7b596440281c1618bbc8bf7a3896ece480fac4a29070539a95f1d718c151ffbfafbb82629bef9d2afbaaf7
+A = 84da246c2485e335d1f3b7e31c2408365f2afe7bff7b596440281c1618bbc8bf7a3896ece480fac4a29070539a95f1d718c151ffbfafbb82629bef9d2afba900
+B = 1f7
+
+Sum = 9673d93165b5be256689ba4e750243537f85bc28daac7f65338074081f114b3a83871683c89fae3c87d44da053557aa16dd074b1bdc16c02a74c5b495f875449
+A = 9673d93165b5be256689ba4e750243537f85bc28daac7f65338074081f114b3a83871683c89fae3c87d44da053557aa16dd074b1bdc16c02a74c5b495f875453
+B = -a
+
+Sum = fce022b2dd492a96f8b095712803f318a45a9a8f00a48dec06accaf793e54e59daa14c56c2fce011e30e6394937f7bd6fa6afa1b6dc3b5359ec7bb4f757c5d89
+A = fce022b2dd492a96f8b095712803f318a45a9a8f00a48dec06accaf793e54e59daa14c56c2fce011e30e6394937f7bd6fa6afa1b6dc3b5359ec7bb4f757c5594
+B = 7f5
+
+Sum = f04028fafffb1aee499812d12f9fcbb23e6a872b3f69fe7a7a246d8f98ba2aa954f78506b39c023397855ead87854412c881fdd16267c07ee12f085b055c7c71
+A = f04028fafffb1aee499812d12f9fcbb23e6a872b3f69fe7a7a246d8f98ba2aa954f78506b39c023397855ead87854412c881fdd16267c07ee12f085b055c6c7d
+B = ff4
+
+Sum = 9c008016815a6580728b3f690eddc7695fed44171557df8a4a6e8c0d5e7c3296832b4ba9ee4a4cd7e6a8ef23cf8c64fcd0518664289c4e72105b404cd6c0ab6d
+A = 9c008016815a6580728b3f690eddc7695fed44171557df8a4a6e8c0d5e7c3296832b4ba9ee4a4cd7e6a8ef23cf8c64fcd0518664289c4e72105b404cd6c0ab7a
+B = -d
+
+Sum = c12bf7e503d2c5845c60886ad5ef87d24e002498003b44922e462f36592a52c878123a6d1037896ce9fb7d2c680d008e80009da72c8e1415e957b2fefb52c34b
+A = c12bf7e503d2c5845c60886ad5ef87d24e002498003b44922e462f36592a52c878123a6d1037896ce9fb7d2c680d008e80009da72c8e1415e957b2fefb52c359
+B = -e
+
+Sum = febba964e2548ed1474dac7c1eb9b1cd169ac913530b7fb358d67197517266707e5a176a814ec82cf8945214b30c36ca7ac0b1ade1848573e72d408dbede8f53
+A = febba964e2548ed1474dac7c1eb9b1cd169ac913530b7fb358d67197517266707e5a176a814ec82cf8945214b30c36ca7ac0b1ade1848573e72d408dbede8f62
+B = -f
+
+Sum = 8a3f9eeb76e96f13446c593fe2cabd4215e0debc54025df7791d924d8afc08dc8f607b82a3d07d75897bfeee0c42b9a32e0e77a098c1cce9c001aabe0481996d
+A = 8a3f9eeb76e96f13446c593fe2cabd4215e0debc54025df7791d924d8afc08dc8f607b82a3d07d75897bfeee0c42b9a32e0e77a098c1cce9c001aabe0481997d
+B = -10
+
+Sum = be825a00c3c6b192d04863b0719ee1e687dbbf2cfc0c331c00b8b947c17fecb7700c9e534bbc49bd61978754ffae1e57d80aab34f5fd23a267e10a4b5a13a9d8
+A = be825a00c3c6b192d04863b0719ee1e687dbbf2cfc0c331c00b8b947c17fecb7700c9e534bbc49bd61978754ffae1e57d80aab34f5fd23a267e10a4b5a11a9e9
+B = 1ffef
+
+Sum = d1c861822ba0e93be81fc78a2628756480146225c79b4a389588a9c3bff9a7500660e99c28807d9ae7bf8c1e89e81d4f9ff2f72d35ea6b34d09df053d46dd294
+A = d1c861822ba0e93be81fc78a2628756480146225c79b4a389588a9c3bff9a7500660e99c28807d9ae7bf8c1e89e81d4f9ff2f72d35ea6b34d09df053d469d2a6
+B = 3ffee
+
+Sum = 98ac65b4c06400baeb40ed137ecdd930a3607423caecbe1f1a936a8210c28fd84b53324e5bb73b7e4b71209b1a4d106796d57a4a23fad2c23abc0c039539080d
+A = 98ac65b4c06400baeb40ed137ecdd930a3607423caecbe1f1a936a8210c28fd84b53324e5bb73b7e4b71209b1a4d106796d57a4a23fad2c23abc0c0395390820
+B = -13
+
+Sum = da02949862a4b26a4fb4bff43b21c2cdd048189199612616303d3ab34dc6f201be256f5889e368867a0da200a0b03e904048d6ba5caee1dafa16f4fdb1f00029
+A = da02949862a4b26a4fb4bff43b21c2cdd048189199612616303d3ab34dc6f201be256f5889e368867a0da200a0b03e904048d6ba5caee1dafa16f4fdb1e0003d
+B = fffec
+
+Sum = ea9523fdde49d481c9f449969fd8e191e118058e0593f2a27ef0ade666ff478c50acb274a6c77d9ec4ca628ab0d7f3dc18708327423de28616235187acb197f8
+A = ea9523fdde49d481c9f449969fd8e191e118058e0593f2a27ef0ade666ff478c50acb274a6c77d9ec4ca628ab0d7f3dc18708327423de28616235187acb1980d
+B = -15
+
+Sum = dab5613ae3756d29f22bc30213363900e3fdced153a3c20852d51c71cbb9af41aba6a16d0b72926192ef48f25e8975881ca7973a69590dc6f0224395e6f3684d
+A = dab5613ae3756d29f22bc30213363900e3fdced153a3c20852d51c71cbb9af41aba6a16d0b72926192ef48f25e8975881ca7973a69590dc6f0224395e6f36863
+B = -16
+
+Sum = c442f3e574310f78e0ac187af96550d4999b79da9c9d6ffa9eb9437a2ac01479003d8e795ce68dfc0f87a4fd9b00b6c172c72c7f580a32af015a3a3375b85285
+A = c442f3e574310f78e0ac187af96550d4999b79da9c9d6ffa9eb9437a2ac01479003d8e795ce68dfc0f87a4fd9b00b6c172c72c7f580a32af015a3a3375b8529c
+B = -17
+
+Sum = b9ac1e23fbfe179d9d3ff99b2ad8399754ea5531e6fce5dad997e2c961110d49d0e3d9c2ec03289edeb39e5a6b4744dd4b3cdd6c43f4e8f4c8e91617772e7fd0
+A = b9ac1e23fbfe179d9d3ff99b2ad8399754ea5531e6fce5dad997e2c961110d49d0e3d9c2ec03289edeb39e5a6b4744dd4b3cdd6c43f4e8f4c8e91617762e7fe8
+B = ffffe8
+
+Sum = e087174c20cba6c4e1e8ffc2ecfeeee770898916454724c24b56d8619c27db123078d406d6b7b836b0dd3092b34b736c472f1afd983971230f1e2b729b00acd4
+A = e087174c20cba6c4e1e8ffc2ecfeeee770898916454724c24b56d8619c27db123078d406d6b7b836b0dd3092b34b736c472f1afd983971230f1e2b729900aced
+B = 1ffffe7
+
+Sum = ba66837e8e8bdefa4c3df73ba5ee65d1ab45a68f51072bf2997446b13b6c73b29c26d15ddff186c9621e156bd3b650caa267dffa54abb782734c443bf502b276
+A = ba66837e8e8bdefa4c3df73ba5ee65d1ab45a68f51072bf2997446b13b6c73b29c26d15ddff186c9621e156bd3b650caa267dffa54abb782734c443bf102b290
+B = 3ffffe6
+
+Sum = fc461dea452aaf0e2c1df10b7cb4293fbc498d40caa7a917a741c6d3534914fc039bb7a62d14cc3e9ea6cc8d2b41228628ad56687d18858c3867c75ae83a3216
+A = fc461dea452aaf0e2c1df10b7cb4293fbc498d40caa7a917a741c6d3534914fc039bb7a62d14cc3e9ea6cc8d2b41228628ad56687d18858c3867c75ae03a3231
+B = 7ffffe5
+
+Sum = d109e7982ffd500ed77702054ccbfa49bb47b5cdb2220988ef58af3cbe0ac90bb3b2ac8a2c558fe744231bf227bf35343e12ecb312242ce50a85fe461e73b601
+A = d109e7982ffd500ed77702054ccbfa49bb47b5cdb2220988ef58af3cbe0ac90bb3b2ac8a2c558fe744231bf227bf35343e12ecb312242ce50a85fe461e73b61d
+B = -1c
+
+Sum = babcba83c01843f6448fc3f91c006a673e514c9626c6399d43c016c31a8fd1a9fc58d1c63ba5b9565dd7320c4a04fe4331fbb79de1e03d68db331bbe2b4b9036
+A = babcba83c01843f6448fc3f91c006a673e514c9626c6399d43c016c31a8fd1a9fc58d1c63ba5b9565dd7320c4a04fe4331fbb79de1e03d68db331bbe0b4b9053
+B = 1fffffe3
+
+Sum = c52e7fb27c4f670109b32cb6d3f705e1685e2cb7474a90d3815e486de77dd2584a0b65d22040059ae5279450682a189eb1b0f847e0d3fe022628a73eeb99c54c
+A = c52e7fb27c4f670109b32cb6d3f705e1685e2cb7474a90d3815e486de77dd2584a0b65d22040059ae5279450682a189eb1b0f847e0d3fe022628a73eab99c56a
+B = 3fffffe2
+
+Sum = b5f074f655dbe68df022b0093534b609b23c17eefcfdc9b1b150c8cfdafe1d320fff7452c147c7d9f9cbe16be25970a23e6499bc90e689497c8bf2d38219e4f4
+A = b5f074f655dbe68df022b0093534b609b23c17eefcfdc9b1b150c8cfdafe1d320fff7452c147c7d9f9cbe16be25970a23e6499bc90e689497c8bf2d38219e513
+B = -1f
+
+Sum = a1a41b6638409305ab9ffa22bb3cb9434f587d4ce6f6da47c0ad6f8f720f397c37cd61254f35fc9f0cda36476ca6d95f233604b9ae5ea2f1a1207caf15682e81
+A = a1a41b6638409305ab9ffa22bb3cb9434f587d4ce6f6da47c0ad6f8f720f397c37cd61254f35fc9f0cda36476ca6d95f233604b9ae5ea2f1a1207cae15682ea1
+B = ffffffe0
+
+Sum = f187feee94925d57f65f9b1200193d8e9359340d670bab27c022d6d63a54635e4573593790e6c6b779becb9e5ea81c9b075baa2d3bc95493b0c5a2da1fccebbd
+A = f187feee94925d57f65f9b1200193d8e9359340d670bab27c022d6d63a54635e4573593790e6c6b779becb9e5ea81c9b075baa2d3bc95493b0c5a2d81fccebde
+B = 1ffffffdf
+
+Sum = dc9c51e1313cb655969b4a069f2e8edd850d4fbc5bbc36f05df42a526f4e5b3ed18886263d86231193442b3ac3e7a71e5a6377021e71ad07dd9411953dbeedc5
+A = dc9c51e1313cb655969b4a069f2e8edd850d4fbc5bbc36f05df42a526f4e5b3ed18886263d86231193442b3ac3e7a71e5a6377021e71ad07dd9411913dbeede7
+B = 3ffffffde
+
+Sum = f2b5e665a6a2e7009bff8b2750b5fb11576bfd49dee5dd7f32b02c46430923b0ec95c3fcee0006b0c2591cbf1fb18dde331d8fb119d92f3196a7dfd8178be33e
+A = f2b5e665a6a2e7009bff8b2750b5fb11576bfd49dee5dd7f32b02c46430923b0ec95c3fcee0006b0c2591cbf1fb18dde331d8fb119d92f3196a7dfd0178be361
+B = 7ffffffdd
+
+Sum = fb0f545b752979151bc6004b3db33bad63230c26d060ba00f5b82e7bee7e2c854b09b2a7c6b4186776c6b3cc45afbc50ef35df7abad11fec62523a12be1cb7a1
+A = fb0f545b752979151bc6004b3db33bad63230c26d060ba00f5b82e7bee7e2c854b09b2a7c6b4186776c6b3cc45afbc50ef35df7abad11fec62523a02be1cb7c5
+B = fffffffdc
+
+Sum = fc197e83249b069fb34552188cd6d06a7e0b42c6a6a9869ede485328a0fabd0c0ec2f79b81747129ccd70ee5c0f9efea62c36d1a4e1fb2b80393fe636469c25a
+A = fc197e83249b069fb34552188cd6d06a7e0b42c6a6a9869ede485328a0fabd0c0ec2f79b81747129ccd70ee5c0f9efea62c36d1a4e1fb2b80393fe636469c27f
+B = -25
+
+Sum = aaf9a8ecbbfee9c3092d9887ec35118a9614a9fa84fc50b79b11d03a4967066c361f67cbf7a8e5beb620c7da55f4bc7dc50ad44b22c9128994781c7816a439af
+A = aaf9a8ecbbfee9c3092d9887ec35118a9614a9fa84fc50b79b11d03a4967066c361f67cbf7a8e5beb620c7da55f4bc7dc50ad44b22c9128994781c7816a439d5
+B = -26
+
+Sum = e74e32fc45d099ed147bcf7d798bd3aef9b046291038d98431698e90d22cf944a92bdcd8a5cf378e9a3aa0001150cf6e4dc37fa4e54a25e13c75099c64b9350f
+A = e74e32fc45d099ed147bcf7d798bd3aef9b046291038d98431698e90d22cf944a92bdcd8a5cf378e9a3aa0001150cf6e4dc37fa4e54a25e13c75099c64b93536
+B = -27
+
+Sum = a3486d022ef4d0a0c72170f05300cee78df844db19c63754c2d631d3d9ae20a0205cfe0fe947f8f4d2f9fa34e2081f448a938a446e8764ac2141157cab01dfa0
+A = a3486d022ef4d0a0c72170f05300cee78df844db19c63754c2d631d3d9ae20a0205cfe0fe947f8f4d2f9fa34e2081f448a938a446e8764ac2141147cab01dfc8
+B = ffffffffd8
+
+Sum = 8952cb3f70b1344facdd7fe79747773f9c101bc2a083fa8fdef0679c24ba93218d14d4d7e848d293ce431119d1542833e9a0624b812f0b31b2b9f7ed9455e8b9
+A = 8952cb3f70b1344facdd7fe79747773f9c101bc2a083fa8fdef0679c24ba93218d14d4d7e848d293ce431119d1542833e9a0624b812f0b31b2b9f5ed9455e8e2
+B = 1ffffffffd7
+
+Sum = de9cb4d4cdd1d58572fa1052edf72bb9241555bdb967bd8cefb26cb12c6622d6147385dc3f72e110b17afbdebc5feb959cb6c320a2ba01f36585b53fb1c5f07f
+A = de9cb4d4cdd1d58572fa1052edf72bb9241555bdb967bd8cefb26cb12c6622d6147385dc3f72e110b17afbdebc5feb959cb6c320a2ba01f36585b13fb1c5f0a9
+B = 3ffffffffd6
+
+Sum = d37f2e1638c0b3bd624104d244d9770ae05bf37f7a6ec32db552af413c0006fdcfc312cf281190eb6738370f3a8c4655beddb6b39b342f0a67cc9af92a2c7fdc
+A = d37f2e1638c0b3bd624104d244d9770ae05bf37f7a6ec32db552af413c0006fdcfc312cf281190eb6738370f3a8c4655beddb6b39b342f0a67cc92f92a2c8007
+B = 7ffffffffd5
+
+Sum = 831aca9ef43bea89f048250aab79b06207458647ce347c68f91013695299c80d610c6e49e2dcd46eb02dd56573d31720efc277469e573f6ecfb71b12886653ac
+A = 831aca9ef43bea89f048250aab79b06207458647ce347c68f91013695299c80d610c6e49e2dcd46eb02dd56573d31720efc277469e573f6ecfb70b12886653d8
+B = fffffffffd4
+
+Sum = da95fd2d2438a79843bdf92c1cadd0e9165d002d22dcacbe4118cc3cf7d5de2fd2106aaefc790aa1559b28b641f83e4e5aa0f8446b57fde5c3663c13efbc04fb
+A = da95fd2d2438a79843bdf92c1cadd0e9165d002d22dcacbe4118cc3cf7d5de2fd2106aaefc790aa1559b28b641f83e4e5aa0f8446b57fde5c3661c13efbc0528
+B = 1fffffffffd3
+
+Sum = bf9e3169dd4b6d336848e744231d1ca85678aa3d1d62d42eac0b16500ef527e028757da54a456b3d684199f3bb3c866a002ee3885c86d2a79180487f4e8a45f1
+A = bf9e3169dd4b6d336848e744231d1ca85678aa3d1d62d42eac0b16500ef527e028757da54a456b3d684199f3bb3c866a002ee3885c86d2a79180087f4e8a461f
+B = 3fffffffffd2
+
+Sum = b5880868d947554eeb536246c312c9765ca8c96888817f3ffdc16cdbafb41fe8f7c151cb316da27562d3b82b2d45abf7c9304f488538386e84c6a23e3dc375fa
+A = b5880868d947554eeb536246c312c9765ca8c96888817f3ffdc16cdbafb41fe8f7c151cb316da27562d3b82b2d45abf7c9304f488538386e84c6223e3dc37629
+B = 7fffffffffd1
+
+Sum = 84b1e4079d09df569a1623b990d917871b1197723b30b19fcf3c063b0e84c9cef1c3ffed16f33aa9bede08b4831bb3ecdadae1622c93e1f86b474a4989496fa4
+A = 84b1e4079d09df569a1623b990d917871b1197723b30b19fcf3c063b0e84c9cef1c3ffed16f33aa9bede08b4831bb3ecdadae1622c93e1f86b464a4989496fd4
+B = ffffffffffd0
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30c6365e1eeb044
+B = 1ffffffffffcf
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 80695b879bb74400c107619981f3bcb3c9987c76d545f6485ed128082377799534508a83112fbde2ee5558c246332c656455
+B = f6446ca2883d7e27209eeaa01fdec632d4027113b81bb47dacc8f10eadc3b3ffc26d84135d91e70deb8aec84c7820332e8cf786e2af9b4217a4c1d32b5894bbe
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -1b510bc480138145e2a142fce8330ee5f4030dccaf6017a1dd85bc5bbe9b2fee4f9d8fb484661a839dc9613652bcca11a00eb
+B = f6446ca2883d7e27209eeaa01fe0fbacebd20e03107a9f993e30f63358d6bdc91baf4f5acdf81e3ad94ef9af3ffc315c6e9acfff91167f0ce6738f328308b0fe
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 219f59352ebda4cfb785a18834ec1c99145a6647265baf5d8f3b405f29a746785a5e70777d528ff1526688c01b9eee288e6cd
+B = -f6446ca2883d7e27209eeaa01fe16091c2dcf8a54917eddf26e5c1c43408c33ea356bf1449b339931985aa70a89cdd6a7aca5ec6e7f1c8df5f101d54c47796e0
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -7e5a2ec59519143f7bda2829cfee4ae75cc8038f31303ff9bbb1e2cbfe93c46a1367c9d6a2a3d9cb40f1a6930c18c78f85724
+B = -f6446ca2883d7e27209eeaa01fd760f94330bb39b824b7e28bc5741dbc01b11805f14655543e8ac0e6d326bffa760106d5e85f604c28935c69dda1d968f658ef
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 9f580ff614b449cf9c46c91256c20983f5c70200739de72b917344db81c1aa1bf3927c38c22d026d6ce38ac746ada2948e538
+B = f6446ca2883d7e27209eeaa01fd5511b3028c1865f22b1187d3d06e1d23821281edd1f7ae1212eaac5daf3e19f57fe5bafc666cdc205d43e2699f88bb8a5cadb
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -15773d29ba363a15a0cb31ac4a60c0c228967e857d7d11c1ebb0a8db855c0d0797c0e409899a50e1b1c989a7dcea6f26238d27
+B = f6446ca2883d7e27209eeaa01ff4bdd95944430511bd40b6baacd3c32ca01416c461d66b15c5f687ef186c0948aef8677cdc23eeca8e6c007aeb4dd508123d3a
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 2f90f72f59dd7738f5572e31d41b91599ed500d59537bf5c21a1bedad709303cba0d5bf1b5e4eaac1a85c261ce94c45b64646e
+B = -f6446ca2883d7e27209eeaa0200ed7935ee3ea423511ccb340368e93c416529914799118affbe79dee6a192c7dd144df65086e8894f7283934dcf82a3d531481
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -73978eee2b2a4ac8ef12b3042dd5e1ae8724a0a676d0a52035e801d741a61b92c638a3b0cece6a81bfd2703e3c502ad1fa784c
+B = -f6446ca2883d7e27209eeaa01f6baf0d415ee280332d62d20a349d20bbf058f7986d88b433a45ddd3c5169e0ae50fedfc283bb33671cd00694d2133b0ff437c7
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = a462699ec5214f0d7860974a669d1728b4983a1c3c440213d12b2da58bba9dd1caf1d5ed391a3ebd80aa6e9ef0396e62260a1f
+B = f6446ca2883d7e27209eeaa01f3ae43290c4eb7beea414edc3fbd5eb41c2e55e22a8155740091ab16e07555e6f4c45ad86196f5f2b5bf808341e29f77fc8a5f4
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -130f7a12825a6c5b6b109b91e2506505a261c9f7c1a62fdfbe252275d3f6844dda2aca2d0ff6d8406ac5c679c80ab6d29817b4d
+B = f6446ca2883d7e27209eeaa021103e3d57afb390b2cd7f3e2c877952c49d9a37bafebc574fbc980670d278411eb9e4264451f721ef88fede6f8f0ed30b702b60
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 2863fa82289aff06fb16bd1b866da9ac0ae0f411a8d8c2c084cf78b81d6713a9a4700248ef61d5e52ca7470f1f251380368df10
+B = -f6446ca2883d7e27209eeaa0226586445213bcbb6bcde156c6c94d9d2b258cd95971e5855c273d6a95698136db5e37a80248a6fc3ba716e7c500b49de5578f23
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -6176f648b54dc4e2d11ba7e32d2d9d3f400fbafa489fbe7f126daf1f929ef8f219c78ff1063dd27650d4751c63b6e7ad7d9a588
+B = -f6446ca2883d7e27209eeaa019c7d737a435307ccf0abb06db8f992e767681e89a5a5d7162b36aed1a69206d1f7abe8462eeac7683cf5b250cd2f4eb0a150a8b
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = ccff1ed8726e309c4e0f2e166c497cd718a8eac347674ca57b6f317ea491b743a89d25f87c37f379f6239b13d848eee1ffa9328
+B = f6446ca2883d7e27209eeaa0130f54aea86329c1373b82a3a79ddb34f8eceeec0a6de48efc2352c72949f488068d6523eb8f0a66497a68c59589d477c1f41ceb
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -13d1c041415fbc18179c970fe989ad9e1f10e4ff658c1bc550e93f6ab9f9cc9832fd49cf6f2e75af72a71dbd7b121111ee0d4098
+B = f6446ca2883d7e27209eeaa033b106dd70e9c8e313b90c94f7ec20a089886297a470751ea4c38549cd8cdc9474148152e280ff4d5b83c0344e207477cffbf0ab
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 27ede3a23479dcc5447bc3b64df32c121761de88086204484cea0782b8d63d72b57192f2b20dd3dff395e937c91e21cdbd13b68b
+B = -f6446ca2883d7e27209eeaa047cd2a3e6403e9904098393b5c559f1481d95c2047465da1a0c44d61cc694d6ef688ca7625605d7ddc728bae9c2c85339f02669e
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -4ad10e7f5637cc48b04d4b250e4ca00a0d102c91caaaf6291f1248b7a1cec979f87b7251c50db8e5e49206bebb30b7f3f25c8577
+B = -f6446ca2883d7e27209eea9fd50e381cd95240824bcf2a600015d2f85d6751067439633034c7fd2771c44682489bc531ae44d0b8044a9bb817ddab71ef922a9c
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = c6b77c2c932d9d5ec6175def706d6e9c411216fe12ac52043c617761d3a37804487f158de60a9c18e7a19646c455804a65bd80f2
+B = f6446ca2883d7e27209eea9f5927ca6f9c5c6f6c360517959df504662965669a2c3807551778ce7d3fef97f7f89821f58d47ed85013b0c300eb8e31b7c312f21
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -187976849837d4ad4cfc9764fd0e3f865fa9d1d9f20d98ccd52a6b3652277100bcfff85fb8414c2967dacd26f269502d3c2caff12
+B = f6446ca2883d7e27209eeaa1a776aee5b307579fcbe5ebd4df466b6865149b375fbde626a680f944360a20081116bd7ef7674c34668974e5f9a36639a4b9af25
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 33913efb99088ab80c706ee229e7a6ea6b274097f6ed3734452dabe0865eb86fcf20c9c6ae0e613b72dbfb8b126383e7d10e8bbb4
+B = -f6446ca2883d7e27209eeaa358f33655c012b84bc32363a7acdce1a91ceb8717adb7cc9da6b503e7797e96f93323d3ee54389d55169c5b27f946a1e2f2d76bc7
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -5d84033a924ff84666d3ee1a1342ac118224264c439bc658213b9762586e8dbdef141024d757175f30bec23a960ab145832dee9af
+B = -f6446ca2883d7e27209eea9a479f12f30a8a88648edd93e3da37b1ea483518d40527f3d74020cfb98caa341d4fd63535fde113aadcf07ecd72634f0daf0fc664
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = a2aeba6a0d6142f527358ffd4c9139c390c9dfab07947c902085d1f3c367035db0f22f249295b974b1d9ebe7add3dfac7ec237f72
+B = f6446ca2883d7e27209eea95f4f39ffb5975dd7888c375b0454ed6c95dd982e7c59c90574b7d26a2dd22da2131f4453a49f6f252cb3de3fbf5d0689df5cb30a1
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -1e545f433c1bda45a7900793d2cd18ba630fcb11d4a2c88bc7a0fb392d270088a1ad126743b80342bcfcfa9e939c9ccdccb7f4f198
+B = f6446ca2883d7e27209eeabe743e89d84b6452728c240957db7b2d657a428f6ce1ace520f4d57f0c3a93989dee299ec72b55cc5ae5d7410a6fab313299e3a1ab
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 244bf1eb701c53bc7847a644269277f53b58dc23b55a2f996faaceff22666eece40fe14644aaa2ab0197a5a915fefa394a5c357db4
+B = -f6446ca2883d7e27209eeac46bd1320c4bddc94343c2b9aba0da683dc353a14d9913f2c8fea945017a01fce050f87dc81df5349f80824b8cd2089cb03e242dc7
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -7e3419b44f3596c6486e095c3fc9a84b5599868abd292354278a2520f54929d5bc325dc3d095e84431960265dcae84f0815ef5beb9
+B = -f6446ca2883d7e27209eea21ebc5924cf9f346828e13194544ba27acd0f0f2db15c10531c9b524e9ca693a400eb973b2dd6a456c52da3c9a248972e482f8f15a
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 81fae0f8555d46ede9e74a93b8a7c6273c9bee0eef0f51b4575aad5cbdc0e10a3d03d53cf2a42e6a3625074c812cd0ae41d94d34ee
+B = f6446ca2883d7e27209eea1e24fe4e46d2431ee114d1e1cc669c4bc5ce896ea92f92a501f92ce92152b205bf3d41fa90cf241f67c3d555f5a63db52408a17b25
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -1558c919b3dcd4cc2eacfee2ae98a3b4286bdb6aa67db97ce35df3ac72f6c6418df10444ce791109a9a71250896f20d4dbf19d559f0
+B = f6446ca2883d7e27209eebf5ac70e1d9fcd6cfb5cc0aa06e989db589282e28001a7c278f33150d0e7ff728db515b846b046324385a01ab0dc51bb124fbc40a03
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 3a9c8b150408b2449466b8328ccb0a5334f2340479203cb790780e71b6609f7999c691ba19f947d8cac4329a4e45377fd6bf226fed2
+B = -f6446ca2883d7e27209eee49e89096dcbaae5611679f9e51bf07a6518db7c52a42afd260d4c161451d8aa998aa32d92307d0164a2c06475b268660d1d415aee5
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -450c41a9cca23287b6448a0b248d24075ed20bec41c600279fd86869b1a51e1842cb7f4d59144436edc1c052f44428965b3b2d98757
+B = -f6446ca2883d7e27209ee64f5bc4a9d20c619166b37bc33c3c21fd1549b8b97bdee1df5bcd53aac4c1b18bcf892261f22f0f1ac1ccd773329084fdb22f1528bc
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 9d48745690ee5aa8fc448371f9236153c584466583aa30d999461a3defac314356230a763c204c2595794db93fcd3917f25b83d1b85
+B = f6446ca2883d7e27209ee0cb9899dd8d49df7d06b3e555f2d84d36aa2611255d9bd6bfc4f23666e4507eda9a106fd3c16e90304654010e79ff7ce44029b1948e
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -1a3f8af71d423da8c007022421f09a53034c6e9d7d23572b8b4b273b091a6f024ea4216ebbca25daa4e9e83fb46a1d9e65fea344bcd4
+B = f6446ca2883d7e27209f04dfaad663de6d32ccd1fe409775a8b5764ed914fabb960fe4a47b154ef982955ea06285f34d992d2e87d11c56e0f0acc96485336ce7
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 3cd13ae384718065169d7e6b600ea1d1a514832649029f92f1d2b5bebbf83454fcde0133f3bb4716cf452a3f930d28f30e7f22f21982
+B = -f6446ca2883d7e27209f27715ac2cb0dafef23687a87d593b0341816ed9dc69ade774b2c099901d747e80cda424b2b3eba6958e3131c3583fc0171e504e0c995
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -5849ade77039ed0b15524c08929a4553a6c0825178f6522915592ffa9638a8143fe8426df9757e8c06aabc97a2ef87b4a58869d1df4d
+B = -f6446ca2883d7e27209e925671f7d662427ef778b013e2eac90ecc41e82604a1ecbb440023dfafa66b7ed013fea93e0df4c682f32c44ff874b59bddd781cd0c6
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 9c4b4b4800fe2f11e1897ee8c8e147b143a252847548145e77d9a9d3e4e3a79283f833e760bdc69d5f75fc1d0356615b0c10b1e34f9f
+B = f6446ca2883d7e27209e4e54d497459e00782b417d33aca3c6b12f6017f308502a85e17faa0660fb6c008c040d2fd6c5acb52a27ecbf9f2071b35755300b6074
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -1bbe5a805b857ccd9dae7cba6f3dab95d22f7d2e1621a2ab382898bfb2b4efccb263929f752397da4ad030e6d5c8773dde8fe04c42f97
+B = f6446ca2883d7e2720a0a685c7e4fef3fc63e7b2c7c3695fc7bf95fa3d58dfb26997dbe2dfd5712e105e36356b0e89bcf0f736a0f749fefe46ec4c63e6b2dfaa
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 255c9a10ee08acfe197fecdc7b6cbae27f8dd38887f135cc5adb1b9276c94ccce420887a7476b2d17c2708c84b7e9a8b4160f676f8d1e
+B = -f6446ca2883d7e2720a14069c0ee2726ff6ba4c9c9e42c50bc8a6bdfa2fffcab9baa070b0d01b273e0615204c8be7eeea06a4c0e75615a607bc27975495e3d31
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -4bb5296b4ce3e960ecadc3f15de0a3a0dacf12d34f690cafaa8f2e31b0e9e69d42a3b16bce84361c81b7584be32210daaddefd7184659
+B = -f6446ca2883d7e27209a2f4d892a785d997b41eebd06977ad454c6113d42870773e9b06670bf3740a9bee5c12a5a4f40118a6e28641e7055c56385760ad669ba
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = efb45966d1f6d79c9b4c72c3a584e26e7b7136295fb79a911433a10ef649b47b14b8d76cc42e54852176ef7da7d08b86186cbe6e98b23
+B = f6446ca2883d7e27208fef5a8972272eb5c05803cfe21d36e77abbef07e1821e95d3161f42eae143cbe1c46eca4af49e2b00722ef102256e1aacdc99fb0524f0
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -1e30bf701cd589fa3d2adff0217e8f748d1a254b771d77d342fffe3e3138aa3d4a75ca8c1e6636919636d4d96d8b04d583af4dc208b51b
+B = f6446ca2883d7e2720bd1b5f8ffc1c2629c737aaec3df41482ef8d27b5ee9b1012275957920b7e8950dd85c6cd359dba04e8c072c24a2d7ba89212b3a3f7652e
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 320eee30dae44f272fc9606477927bac85b677c3333fa55f4c5b5c7e71bc02266a906d8838a096551a8b5b94980cd819ac721a6ca70a71
+B = -f6446ca2883d7e2720d0f98e50ba2aeb56b9d62b60940800bae8297a2daabd3d9e30b4b5d24c01e139fda069c94fd819c86d14f97d74af4eecbad5804e95ba84
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -5819f4921a515433459006c62df3be1c4e642a52340381b5954df3f9dd0ed5f73f8dc9a17e536b88090ae8d5fbc411f16eeca2449ffb96
+B = -f6446ca2883d7e272046d0ab8dc4f547fc447cc435ee81c6f2140ed818437a16894f0b6559fd37091c5382329f98e417eb497eb512e0de64e19f76c39d4eb47d
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = f238bbcd9701966bc4482fb8df8ca395ad15e2b83c014e59898e33a36623580e9c91faa3873eb26a0e97c4d29ff209e22c4faa0a1295a0
+B = f6446ca2883d7e271facb1e452484505c3c5c49b433ce8e178b55d1fb23b7c49e55acb25b074228704f67e019d8ff8d10943f1d9163cb06cf0e213bbd7dc1a73
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -1e00b3b3bab1081231e0f1a2029b146f8391869dad416f6c8443c124ea7c908ee402f6b6fe06d883c2d232713512ed5d8636a07898523f3
+B = f6446ca2883d7e27227ef5db5b8a571d52a81be51c4626cc069b8b6c454b948f0728956ba2820ee801d33f67b0f7a50baf7facc4fc2dd14cab71cd6d6b73d406
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 2030dfab0a9e0af1764f416171c8eee2d0b87bd5b80e6cddee4ee2a7509a301956050b6e3bb067f827d13c33abf31693d4101951d4a0b96
+B = -f6446ca2883d7e2722a1f89ad089274b46ef00e1133904733b6dfabfc5f864661dc94783c8e3e8e0a8f360b324d23e02f5cf9d61239bd3e0104f64faff38bba9
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -7427bfdba61a57b644fdd11b2a3ea1d3507cdf4ea1389436bade3fbaf751724000774127923658c7b090f182d1d7e320aeaeb1e3dc0b30a
+B = -f6446ca2883d7e27195c6ea2657da120cb3a2fb949788b67d95aa50d8063f454d336755da4652ebb138b9be9c7f3d1f6f8497a85bbbf2444c8237847a42dfd09
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = d23891ab621e6ee43b3b250d66ab139cc97db21429da33e01910635969af402b6792f6d741292a0e1bb6bc30b2a7b32fcce9f5e8c2e48bd
+B = f6446ca2883d7e27137b618569bd5fadebd65a7a25b1c44b41ca97e127d9da5a3d535323bd3f51dc5d19e08ecd04a4e291971ddaddb22743d63fc40755c06756
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -1d6d78b7e83cedb64f0afa17c56360a58eb5ccc4e647bd3c594feb6695531f9434adb169ce314d4c93b4efc260fc92b268ca22143fb7e994
+B = f6446ca2883d7e273e0c6358081c34527e9506e2c17fd62a9d183fc750bf3ad4983444bfe92d65734840c1660f4884d00707796049d935293bd8857a21a699a7
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 255261901144afcf37c28015f4ec493bfc06cbabf851997d06cdc2fa742a97e234085ce67dcd867451a19d3427acc5ac2fb5b919f1514e06
+B = -f6446ca2883d7e2745f14c303123f66b674c8ce0f108bec10a693eae62c9171545b21c53c804ddc1479b6ce2bee4bdf7c4f426d21089682302c41c7fd33ffe19
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -4c222346b39b4b87631fb26dd9b3a8942374f10ec577d0aced5cada7bb0fb34d9c85bd06b6d52a4229ec662ca5605aff7896f7d74483fe99
+B = -f6446ca2883d7e26d47cc7596c43fb14cc6a5a5d2268ccf0eaed81f3a4ffaceb5187abb198ca9291770d52f58a420d4149662371437c47775a776b8e9d6ab17a
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = b832106ab8bf5c27886927f67c5bb95d81280a5b4a3a044c39c816dfa5c5a4c6e8058d34c3e44bab649194932e42c197b40d16213f6565e4
+B = f6446ca2883d7e26686cda35671fea74a720e4d47fc0bc278d3a68a7203d794c051c4279ae14a1182b8d82c77d32ebd80ec0f50aba99e0df1f014d44a2894a2f
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -1e4bd432a98b6d68d35627f4a46b56f04b378a535b50c7287ec949008e8ace3ed04a128043cbac7a49c6c1cb98dc27b684c4f971d69b51268
+B = f6446ca2883d7e29055c2dcab8961d2964ec8c1542d1e489c1db18381f83f0202b78e9623c8729cc183438007dd1ff280fbea657769f1ddf1f5dfa834ba3c27b
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 2af2a9aa0364d970115f35b6ab676f4baf1f4ed52d07cd808dcc7fc7bcdf2268f917a7e4476e429200a37b246e786e85a2b62d6b52de13135
+B = -f6446ca2883d7e29cfc98540562cdd9d457d6835b2936a40005760553af455a11bac55d521cc6c6ea50d8e40b7fb60a37d8a3be4d0638ad0fe713a1b0fcfe148
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -5dcc7b06c24160a67934f3adf5f5a468f10b0bfe1b82e133c797674c941c9480bb1e71ceddd1151f88244bebc63c2da41557670132848e482
+B = -f6446ca2883d7e2143d73a33fbc93c349c3ad1eb9cc22ef5fdb1b320b2496a5bc56de4901210fdd361abf30e6405e58af10dcae18519c8357d97f352b9a5cb91
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = fe6a6b7e6ee19b5e4e2a4cef85f637a5b0a76007bf1080fcdc86c952a49adce824573dbb3c0d3f94d519698968594e0b840b6c91ec9153aa8
+B = f6446ca2883d7e1739f832b931c590b74ce53dd29cb8fb2a03ec7286796f6dca7677c42f0a2c775cce1f344880433e3621bbf1076347c1be92579a4718d9756b
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -1f219dbf1e789d4d74f10ff27fb947bf6cc94bf1e742ba203caf33810589005f8326704b8414819d90698fe08d9b3c16bd261beb922a9af9a5
+B = f6446ca2883d7e46423ca9be987c94112099ff4ab56434f1d7ae64e9ad319dd4ee17da5edcdaa5623a035b805598d513dce26a2b8418b933f92a4ef80c89a9b8
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 25bbd6ed7646662f6dd8481ac4c4a531174bcd05123889d4cf904d12d8d2bcad5425074d9c7fa1ba70ac5c8a3723fe6b20e064fb4a9999e716
+B = -f6446ca2883d7e4cdc75d8166645760a07d2278fc0c1a69c5a2f7814a3015267cf316c322696f333389a5d98c0b8f1f41faf13d50cdb0d97b3735eb07b889729
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -74af822547dd8aa99da2b3b60b1aa5d45c33cbbdca0d2876531b31a25cec244482832671c861b749effc1cf5e150aeb9d8e88583953aacd577
+B = -f6446ca2883d7db2711cc55842549cfe8cd656bfe176a128da96b5385d4f074523b2b6fc67b6015c906c9e33df5fed93773593bc982de89dea88dfd0a741da9c
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = d35d55e21fdf90fb0abaea71ae6d7f44401f615e7dc6761713ec45650b94c02f85e7bca8c2f43ada8975617eb7ae6fa41f4eadedaeb544654f
+B = f6446ca2883d7d53c3490880404e4b91749f9b1c8e9d3144ef011484a4016684529ef44dbf1a16592bd667394cdc5cf9fdf10ae63a6cfe57846075b72caa4ac4
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -14872666f07cb43b47b4b82ef6df5b7696c2ff49a88ec9308e27d27736df05f79d452957297271756ca1afbc47ad011f1b77f32bbff831bb941
+B = f6446ca2883d7f6f930559a7eb22fb177b0cfc38f1d3def13e570d8b570a867abc0bccc74439bfb366288293682e8e4d8e4e4e18b8ee942e52411f65650a6954
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 2d2316a87167a23eff9da00b857c9423e44feb69620852e9e8d87ac70d96367a8947729b57804ab1d54022442f5504d23ea42a6cb0eddad04c3
+B = -f6446ca2883d80f9520971b69a033696098ac522c55eb3ca0d190922efa61c25c690ca32b741ee738abcc57445c254d77576cc933929c66115b52e74bf9bb4d6
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -4a296521345e531b059bd7bedbdee650280008947bb0de4012c11281d92be141b2d29b92812a4843eafc296fa69c55a697b4e9620a79fa8fd6d
+B = -f6446ca2883d79848a4cd75a3aad9642720e1f0d0db773050dd92b475c937c6c2dbc3bc695c62ab1e9d9e7e99c92f8d3b0bb8f34238238fb847842be4245b2a6
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = a29d4661e53bde02d72f6e0e3d19ccbd85d8c0a0392d7153ed330ff11e6f75c9880dd1f77a89be8c4e48b10bc7b43b46fbffb592a9a2f23b932
+B = f6446ca2883d73fd4c38cc4c61ff192938a928f95f509d2782586f6f93623ec50de547725c7dad5e36739853a52e729ee841cd22a52832b6d7b538cbb2caf6e1
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -1c7a1c6185b0a2d7c02f3a7884e5a11513785520f1a27e8c29cc30707300edbaaef99509e9c4f578d086b2a8c593d0a04d32682c7c71f6a3d025
+B = f6446ca2883d9aa13d007050c2b706cb6a0291b09d3188fd638364a4e903a7646f54cc5a4194f4d8a89cf9c13690080a25fb4f31b97cefa93b3adfd7d8928038
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 21eaee9881dff114d10dad6acbb6e712c6d1acc6b878ec60253c44ad7e9272bb5ab0e2ceb2023fa9f427a23ebb464b2c8c411bd86032c6873ef9
+B = -f6446ca2883da0120f376c8010f417a9dcf4d881e32f3c56bb292b7b56d7a2d48391d7ebc695a08ff661c1fe80c12bab159144e434092eb7eee6c398a875ef0c
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -46f16fa8b7a3b6ecf476f8cdf5f77ea3a7c9be958ced5db6c6a9e11e6bcf3a156b3fb60bd5ff862c80d7c3e3f23c15df57a8fd7822d4c7d9738a
+B = -f6446ca2883d3735b0f632fc68f2522536bc16d37d78cdbb4fcce6150cc0b6ee5dc5ed8a19c4da9f5d8739fcbaeab6abaf6e9761d2fd4acdd59640911a153c89
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = bdd97dea2fd68c602862b0fdcbbe47d5e2e23ec1a10925cf34e9773d09d90caf70b5beed3ae1509392289be0ee66b649d45b3dc880ce4f48bb4c
+B = f6446ca2883cc04da2b4bac9937f1e397e8c410cb44692a2cfa0d1f944a848aec7a74f80472ad52954a5d51af083a55ad7719b373292ce1b9545e29792a5f4c7
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -145dd43715b37e7df4b56e5afa79caff8668de6fe4c2f725866d0f84522682f38694a26bea588a576900862dee9c9498df909fe788d72db324f6f
+B = f6446ca2883ec404641045d807be91f31539b467ac14dc12f560bf31dccfe46937297bc18312af293a51b584e68dc78bd6317367326a9b80d186f0d8bd20ff82
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 35094bde0256df169828d23a250e3a10f35f1fe30f168d463ccd8389197b8aaeb326ca86fd09b3d8a29769ac3c6ed856c34f10cb0d993e38252d5
+B = -f6446ca28840cebbde7f100e1148c929532c5dae9d2bab770c93646b3edb4a707775f111fec5784bbc02e0977ea160fa0e16508b6e48d767dfbf3cf9c57102e8
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -578294d2b3d43ffd19b79a65778710da245eb96fda50d50a3aa6ae3295dc50d8f7da1f5c8b98f4a9905ee840dcd139a62697eb45678259d7639ff
+B = -f6446ca2883805fdd373ad5c200dab2289329459ee7a2f997764cdf519d3d32d5bbafb94464ac83d1dca566cf67e3194ef44bc8a4e7a38f81eb7eb4044787614
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = ab192cde88b1cb3e6b094409c1e81ff84715d64ddb7413f6fc5dc1182abfcaca481c8035d16e0d698476d7094f2bf7cb3de1b1210ba68701168a3
+B = f6446ca28832cc9452b65f836bf89607eeedee48fc980427a984bbc12b07b7bc2d61ad5ca735c4171035f91b6a7ef01602bd96de6c28c45bc0fda8fd71dd4770
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -19a7abdefad11d1c9b6c4e0c4c1ff1194c490f63086ede1e4c43d964555a2f5e561a9bf5dc3a670b7ddfe8894271197747860c78949e6c9e357460
+B = f6446ca2885725d2ff99bbbd3c7ab2ea3bd62cbc1568be94716ae1e088c3c171a339b388b230607b096f4a634c95176bfc94fab7602428834ba301d280242473
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 275ce169251250a596ac64ac6e23ae05f8785db63b9cb83a9dec067472d059ea3aef07cf9fc20b846b3292899a8d3fe1aed5b92f21a89c1d924bbd
+B = -f6446ca28864db0889c3fcf0c575f300dbf830790214ede2c49e0fbaa515699eb35729b33e1534e6e332d207c5826a15fced16ddca8b783002300c01ff80fbd0
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -61039a571c78308b819da54c1849d8d6169a82e25f61f26e30ab16b545080417f2008ef89116e002660f95863c47ac02bc161bbb7aa8817457eade
+B = -f6446ca287dc7a8cc982726f945da8f6e371c2f22605db022c03110ffc46d281899f51553be845501b01f91c3eb127eded1641f1e6208c5b1793bae46d96c535
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = fca0b32bf9e248320b8c10128ff4368a766dd34fbfbf77e66cb2298fa3833bbf24451f508a50afd0131ad49c9ac8e851d4fb53f2fe33675f5e6b34
+B = f6446ca28740dd73f4a50857edd3ba8c1cfa189471a607b1bea2b38a840acb6eaf40d61d94b600bfc308bf4c71041caed6b7c0b59707a722e0102ffe829044df
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -1c6f81990e54d6894188d5b872009c3eb5b2f10137bf7a27999d918790b587594afab3950330296979c354851164f95938d1df77995f6c0a9a3edef
+B = f6446ca28a047640b1843808b3f7d3f7b6aa168ee777a49521de6aa4e41156b0b7efb1cee889f11863c61292d8b36ccbc468d9337c69c06e4ca45a268b929e02
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 310b6086b85bf12c7e391184e070f623c9cfe07a8e495010fc13d584d748098f070ac4b7c31cbd28acd32ab6270e2a98f48d8d31525ada808858785
+B = -f6446ca28b4e342f8c24a9b2e7c2d7b47d911c2d38b9738cb74708037a38baf08c58d9f2444af22a8fc4dbcecbe46a2ed5c36c4778257b49e834110dea743798
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -4a51109cf8c033e683b1bff229f081d71cd5cafde15dc2d5f8ad0457e79b9b2e015659ee564de59f27204c685ef58977e13e19fe36a2d017fe6860b
+B = -f6446ca283986d1d5112e761b7a42a9d0ceb04ad8a4f18d5304c96d50aecad52c06a9fa673c4e0402e2e31a24ea532bced6331066ac8c0d6efa4366462082a08
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = f3e425af6aa16899624f20b49c4e9115034aa4d06ce9db9aa742a6e60d59d6ce0a067f5645b8e7f896c8561315ef1f7151e073d115f8e38df274438
+B = f6446ca278ff3bcc29f4d41689ba5490e5c523b9abe7cb380793d548c0035329de0ebbec7339dde9af37817cb7aab22241f397a6d3be9b39c1aed52d02c76bdb
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -18b2de417fc4bef91b5dd82b0e93315b306bf3a7f7bf0a486a567e9cd1370587b7e47adcb9accba03a8dfda5871b0bb1bdb569a90c079f7a9a4e87d2
+B = f6446ca2a0f05c68a063a9993b3d1ec73e1d3e262c88692d06217d4ad4cdfc35101b5ee10bbec0bbcd3fdb9c7ba53528fa6d954fa6920c1fdf1602e07c3d37e5
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 26b556807e84a9bf7cdf2697050cbd7145a42b8ef6fe10666da7a2e69827ad04880bb97ab3108a27da5fcc29a041bd6aebbaf00ab25a841674ff9f1e
+B = -f6446ca2aef2d4a79f23945f9cbe6d333496ca3c41c0a11405608368d81f207ed70c065ddbe5ff59c6a39a241b7703ad13944708d49792818568e77c56ee4f31
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -40b258c2211cc2cb9e2614ab4b23cb9eadb1ddcae903c93646e9f5e5afcaf912a2fdef26c864d83dcdd6f434ca2b0aa7f8ea7a21e790a9e4601de110
+B = -f6446ca2478b2564ff8227d481b931f0e466412c4e6a97ba255ea9cc238d87b28f196046b0dc56b84b2e37be7340434ea9277ef5eff22854eb7db98181d0cf03
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 97631efbd149bb0fdecce09d14aedf2efe30407c01c68e000be9c7be954999375e1f7720e8e5f1edfc48b92f9a063f6b2b378996459bffeae3d362e3
+B = f6446ca1f0da5f2b4f552f90411265ff1adb2d9bfdec35090c9be5025e8db5d9a99ac021f5bacebe2aad1e0e44ce7e53d94c4a32bda518e08d72637afe1b4d30
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -15f4c3634bbbd1ce04fdf96a69b2b8263290e188ca83956b74c6d190e7b877dbd176657a19ea125dfe9c95d2764002ca5d98e28315cb391779d56fcb2
+B = f6446ca3e789b45bdc5c07806fbedd42cab58f2e252a8e11b69bc9b9b6e496a6ba6bd7166b409d80b23435dc2ae094aad752b643c26acaa82fc1f4dd7f45acc5
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 39ecc3b285eb99a2ac91329da615e581f791eaebd477d87c7739dd961a2c5c6cf86a34c73856efcf3b812909d830186c910f8f053192cac9fca8ab7a3
+B = -f6446ca62709b94f7f5884cae8f2707690e864ea753b244255dffac9de1556f9e1aa2028da7d925299020ceff929c820f6541066f9d592c9ec3b1005ac7967b6
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -707e64f8bee7a679d9b72bd04b231cda716f5dc1b7a404f8c0679770c46fc944470ee2a221d1e3d166619ba6a430d0349e7e75c0ee021ed027dab5d74
+B = -f6446c9b80572e9b32248302846c89977d583f23e52699699422237663fe068bf7e7c514e2ec1bbcf674d2e5dafd7d193045865400f54667f2ec76636443529f
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 9ca2c37f4b1a392c34551f570ff06a74c5f027170815454c5ed3535d5232df54fb1f65f2304e32b4995bb77ccd4ece69db98452f182dbeda98d525a19
+B = f6446c98be1146326efb57dcda8d512b3083657e9d1a04148d0e1e3c7d4247c31bb66409a1e3e6bc0eafe4b2ab5bbfb69e65a3002f584f85503275bc549c55fa
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -1190fea35b9a1ba1c280d57888664aa7db5f9d6d4325b35a6276bf61291d67e6e14e3001f5af1753faff61fa53861ab8ed15d15965e0dcb05718bdecc6
+B = f6446cb4193c2182baba8c62a0b4bf2495d4b4a65bb9e2c83415cd64e136dec15c4c403aa20a47d4c2aa63f7407931d6f96d428afeadfbdcb3eb13bcfaac9cd9
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 209797b717f068e5f808dd2b4e12576fa056879da881bfcc1819228e4f9dc6f84347edbdbe273657d533d7c928e51b68a82c59d93dfb038514c104c1bc
+B = -f6446cc31fd5353f1107d09828bc71ea41e17c6b52a4132d90223f1a839a0be7dcab519c9bc8039d3ac967d174ef00ac586df24615367bb4ce11e87aa2f371cf
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -7198b6aa26be42e97cad682aaa63d68d51952dae52d4cfe5f9a6acef93f35b6d7b7be87a1f2a944cf7fa9483cd6c3df7599d44c5b56e5ff38cd43d23c0
+B = -f6446c30ef86d400625c012372771bf1cbb37f7966eec73239928d08c3ca8e044b88ebddd7f1cbbfe8fec3044682b3b6071492444b97dcc164ae6fd90db18c53
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = cb788549eee4fa559118f0bd66b68d94845bdb7d07b2042d53a64921f3e3df76a2b143e9e9ad39dacaf405cec5fed9fd59050c5d27322142e4e11d4ede
+B = f6446bd70fb834383ba4950f06ee893578fc7846a040f87d5c5e45aec42e5ba45b04e2b6a2965bf5665935314d1168bd74788c44e3d0454fa0ed208100d16135
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -1122c39c2c252ec96e9274bdf713bfa8200e35ed9f18dd087fedd2005e5898b6f8ed37e1cd7e1f7b0c5be137a71a27b7e4e4669b1f412e154e6ad2ad567
+B = f6446db4b47740e9738b8189472b260d6b848ecbdf7b4f769c32fb014797837dc86fc8e8275862b6f58ac0c1ff2ab1f515ce07ec2f46546ae5efb84c8f19857a
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 2d57e15c8039f8367d2e0198d9fc27616e53efdc9cb0adc0b0199362d08f5698af1f07499cd2b72005f1c09900c71b677e57cd62094743a9b3ae541e74d
+B = -f6446f780653462ac0225272fff8d43bf20023b03b1a3f50193e7e0403adaaa1344de44b444edfac3f05105b5d20c78fe509018365b2c30b4748fea0c7309760
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -539b4413477ef77c15fd53e202d8e5d183eb1c91fecf5b89959bb8d60d3f7907e95c5dd045d698a6a17f0150861b43bfeb2e5d40bdc970839b0712ee17f
+B = -f6446768d3fc49af312729404aa1266ea12cf48c4a53559818a9d9a8aeea1cc44753dac38dfd4181aa08a5e451022f21bf168aeb0308969a3c0629b570bfce94
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = fe46dc4f55346ee27d6ced0256b0ec64f82d5150c3b49d4cc7d56a60ae5d10bb649a57f4c97acc146388a6a9d25d3c3c7e42372e46bb4f8a72171ea5979
+B = f6445cbe1a7888d3d9b0c2c9510f213120c3bd4827076949c48da68513d172b26dd8a30fae5af94766d1c9c3b6ac9a5d9f8ec1b9c569be0b1e15bc447004569a
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -1fbd702bd26d37bb1fa554ad261f1e7161ea438f49b41aab950884c5c87eb1e0b9a3a69807b759a1440ef9e5683c1a13b9d610fd87fb131619cb63997891
+B = f6448c5ff8695094585a0a45748c6cbb4dfb6eb53fabbf39290e080aef3d4616f0c512fcfa724d966d34540b3afc9fbf8d664373f9da2a71e6247d31458828a4
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 260abc8cb124b3c17698ee342bdbe4b1513a085effb4f79aca252c98c8799ad203dccc9c305cdccd2edc16159d0e2c7a125c50f8abff9e12dbe8d93c655d
+B = -f64492ad44ca2f4bd46061390e137278143b5e05047b753a05fd3d2797104611d9b65d362076763bf0603ed8572cd4919fcc9bfa39d54e7671213f4ebb2b1570
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -6f961198d2039a92d24c53bfcafd73251b575d5e06565db36666545d5994e511c4c3905cc0b93586f05916c08b8f51a0e0fe1b6253fcfa41bfec25196482
+B = -f643fd0c76a4ac23860c1853cc1f7b9ebc64f1739ebe6f2eb0af0c9c161a240359d29495c37d8525de0c1fa32a56abf421b1a89fcd7a4e79d8cca379bcd54b91
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = ed86313f32aabf2f7487dd9f587431e17b9a46e1a78fe89b0ebe81c737a73c2a8fef92c0963fc36e9808309d00c3bd14612fdf4fb236e06add8fe9329252
+B = f6437f1c56fe4b7c616f7618423fee27fda89130b53acdf525c76443e8b045f102b9c969c119af9f502477f4107a36bfb63e286e098cf03ff2a385d5f8bc1dc1
+
+Sum = f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -1741bce7ae27a7b3effa5b08b39f9d03d69efe7b0716cc57dc106aac17925a2d77c18386f7398db17f813c9c6f2dfcc9347e9f55de76b11475fcf77bbedb1
+B = f645e0be56b860a19bddea45d06a8095ffc776bae3cce6f1d3e034091538f6bde1bbd5718c49b977eeab08100ade2a633fe5d187de3a89e1e455c33559aa9dc4
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = 20bd41a0d6d691e8554ee8b90a775e04f086f318b7afdc7b5d6d7c3b7ab6b955aa286809856e1bd195dace84b18b2d0365edc8e066d2e8db9ae8325d00843
+B = -f6467876a24aeb903f243f8eab6fee120fd9153a2da7f082d61849da2e2f2903d43efbdfd4729cc0d0ac6da9296250364388e87a76e30fa560c811e907beb856
+
+Sum = -f6446ca2883d7e27209eeaa01fdf469c2f8a0ccafc1c75850e6273026a777d983ee4595953da45df13930ffc411737837352899de8dca276d30e6365e1eeb013
+A = -685147a1e74dab824bc6cb7fb30a773fbe5e380f46189574038d2d2f3983ced8777a080af6b06e9bb3c2d134a3302fa099b4bc78a4f01a4c157424ee3c773
+B = -f63de78e0e1f094c687a2e3367e415f4bb8e26e77b2813fbb7223a2f9783e55b515ce1b8d32adad829d7d3cf2dcd04807948ee52215253752e4d0c23930ae8a0
+
+Sum = 1
+A = 0
+B = 1
+
+Sum = 2
+A = 1
+B = 1
+
+Sum = 4
+A = 3
+B = 1
+
+Sum = 8
+A = 7
+B = 1
+
+Sum = 10
+A = f
+B = 1
+
+Sum = 20
+A = 1f
+B = 1
+
+Sum = 40
+A = 3f
+B = 1
+
+Sum = 80
+A = 7f
+B = 1
+
+Sum = 100
+A = ff
+B = 1
+
+Sum = 200
+A = 1ff
+B = 1
+
+Sum = 400
+A = 3ff
+B = 1
+
+Sum = 800
+A = 7ff
+B = 1
+
+Sum = 1000
+A = fff
+B = 1
+
+Sum = 2000
+A = 1fff
+B = 1
+
+Sum = 4000
+A = 3fff
+B = 1
+
+Sum = 8000
+A = 7fff
+B = 1
+
+Sum = 10000
+A = ffff
+B = 1
+
+Sum = 20000
+A = 1ffff
+B = 1
+
+Sum = 40000
+A = 3ffff
+B = 1
+
+Sum = 80000
+A = 7ffff
+B = 1
+
+Sum = 100000
+A = fffff
+B = 1
+
+Sum = 200000
+A = 1fffff
+B = 1
+
+Sum = 400000
+A = 3fffff
+B = 1
+
+Sum = 800000
+A = 7fffff
+B = 1
+
+Sum = 1000000
+A = ffffff
+B = 1
+
+Sum = 2000000
+A = 1ffffff
+B = 1
+
+Sum = 4000000
+A = 3ffffff
+B = 1
+
+Sum = 8000000
+A = 7ffffff
+B = 1
+
+Sum = 10000000
+A = fffffff
+B = 1
+
+Sum = 20000000
+A = 1fffffff
+B = 1
+
+Sum = 40000000
+A = 3fffffff
+B = 1
+
+Sum = 80000000
+A = 7fffffff
+B = 1
+
+Sum = 100000000
+A = ffffffff
+B = 1
+
+Sum = 200000000
+A = 1ffffffff
+B = 1
+
+Sum = 400000000
+A = 3ffffffff
+B = 1
+
+Sum = 800000000
+A = 7ffffffff
+B = 1
+
+Sum = 1000000000
+A = fffffffff
+B = 1
+
+Sum = 2000000000
+A = 1fffffffff
+B = 1
+
+Sum = 4000000000
+A = 3fffffffff
+B = 1
+
+Sum = 8000000000
+A = 7fffffffff
+B = 1
+
+Sum = 10000000000
+A = ffffffffff
+B = 1
+
+Sum = 20000000000
+A = 1ffffffffff
+B = 1
+
+Sum = 40000000000
+A = 3ffffffffff
+B = 1
+
+Sum = 80000000000
+A = 7ffffffffff
+B = 1
+
+Sum = 100000000000
+A = fffffffffff
+B = 1
+
+Sum = 200000000000
+A = 1fffffffffff
+B = 1
+
+Sum = 400000000000
+A = 3fffffffffff
+B = 1
+
+Sum = 800000000000
+A = 7fffffffffff
+B = 1
+
+Sum = 1000000000000
+A = ffffffffffff
+B = 1
+
+Sum = 2000000000000
+A = 1ffffffffffff
+B = 1
+
+Sum = 4000000000000
+A = 3ffffffffffff
+B = 1
+
+Sum = 8000000000000
+A = 7ffffffffffff
+B = 1
+
+Sum = 10000000000000
+A = fffffffffffff
+B = 1
+
+Sum = 20000000000000
+A = 1fffffffffffff
+B = 1
+
+Sum = 40000000000000
+A = 3fffffffffffff
+B = 1
+
+Sum = 80000000000000
+A = 7fffffffffffff
+B = 1
+
+Sum = 100000000000000
+A = ffffffffffffff
+B = 1
+
+Sum = 200000000000000
+A = 1ffffffffffffff
+B = 1
+
+Sum = 400000000000000
+A = 3ffffffffffffff
+B = 1
+
+Sum = 800000000000000
+A = 7ffffffffffffff
+B = 1
+
+Sum = 1000000000000000
+A = fffffffffffffff
+B = 1
+
+Sum = 2000000000000000
+A = 1fffffffffffffff
+B = 1
+
+Sum = 4000000000000000
+A = 3fffffffffffffff
+B = 1
+
+Sum = 8000000000000000
+A = 7fffffffffffffff
+B = 1
+
+Sum = 10000000000000000
+A = ffffffffffffffff
+B = 1
+
+Sum = 20000000000000000
+A = 1ffffffffffffffff
+B = 1
+
+Sum = 40000000000000000
+A = 3ffffffffffffffff
+B = 1
+
+Sum = 80000000000000000
+A = 7ffffffffffffffff
+B = 1
+
+Sum = 100000000000000000
+A = fffffffffffffffff
+B = 1
+
+Sum = 200000000000000000
+A = 1fffffffffffffffff
+B = 1
+
+Sum = 400000000000000000
+A = 3fffffffffffffffff
+B = 1
+
+Sum = 800000000000000000
+A = 7fffffffffffffffff
+B = 1
+
+Sum = 1000000000000000000
+A = ffffffffffffffffff
+B = 1
+
+Sum = 2000000000000000000
+A = 1ffffffffffffffffff
+B = 1
+
+Sum = 4000000000000000000
+A = 3ffffffffffffffffff
+B = 1
+
+Sum = 8000000000000000000
+A = 7ffffffffffffffffff
+B = 1
+
+Sum = 10000000000000000000
+A = fffffffffffffffffff
+B = 1
+
+Sum = 20000000000000000000
+A = 1fffffffffffffffffff
+B = 1
+
+Sum = 40000000000000000000
+A = 3fffffffffffffffffff
+B = 1
+
+Sum = 80000000000000000000
+A = 7fffffffffffffffffff
+B = 1
+
+Sum = 100000000000000000000
+A = ffffffffffffffffffff
+B = 1
+
+Sum = 200000000000000000000
+A = 1ffffffffffffffffffff
+B = 1
+
+Sum = 400000000000000000000
+A = 3ffffffffffffffffffff
+B = 1
+
+Sum = 800000000000000000000
+A = 7ffffffffffffffffffff
+B = 1
+
+Sum = 1000000000000000000000
+A = fffffffffffffffffffff
+B = 1
+
+Sum = 2000000000000000000000
+A = 1fffffffffffffffffffff
+B = 1
+
+Sum = 4000000000000000000000
+A = 3fffffffffffffffffffff
+B = 1
+
+Sum = 8000000000000000000000
+A = 7fffffffffffffffffffff
+B = 1
+
+Sum = 10000000000000000000000
+A = ffffffffffffffffffffff
+B = 1
+
+Sum = 20000000000000000000000
+A = 1ffffffffffffffffffffff
+B = 1
+
+Sum = 40000000000000000000000
+A = 3ffffffffffffffffffffff
+B = 1
+
+Sum = 80000000000000000000000
+A = 7ffffffffffffffffffffff
+B = 1
+
+Sum = 100000000000000000000000
+A = fffffffffffffffffffffff
+B = 1
+
+Sum = 200000000000000000000000
+A = 1fffffffffffffffffffffff
+B = 1
+
+Sum = 400000000000000000000000
+A = 3fffffffffffffffffffffff
+B = 1
+
+Sum = 800000000000000000000000
+A = 7fffffffffffffffffffffff
+B = 1
+
+Sum = 1000000000000000000000000
+A = ffffffffffffffffffffffff
+B = 1
+
+Sum = 2000000000000000000000000
+A = 1ffffffffffffffffffffffff
+B = 1
+
+Sum = 4000000000000000000000000
+A = 3ffffffffffffffffffffffff
+B = 1
+
+Sum = 8000000000000000000000000
+A = 7ffffffffffffffffffffffff
+B = 1
+
+Sum = 10000000000000000000000000
+A = fffffffffffffffffffffffff
+B = 1
+
+Sum = 20000000000000000000000000
+A = 1fffffffffffffffffffffffff
+B = 1
+
+Sum = 40000000000000000000000000
+A = 3fffffffffffffffffffffffff
+B = 1
+
+Sum = 80000000000000000000000000
+A = 7fffffffffffffffffffffffff
+B = 1
+
+Sum = 100000000000000000000000000
+A = ffffffffffffffffffffffffff
+B = 1
+
+Sum = 200000000000000000000000000
+A = 1ffffffffffffffffffffffffff
+B = 1
+
+Sum = 400000000000000000000000000
+A = 3ffffffffffffffffffffffffff
+B = 1
+
+Sum = 800000000000000000000000000
+A = 7ffffffffffffffffffffffffff
+B = 1
+
+Sum = 1000000000000000000000000000
+A = fffffffffffffffffffffffffff
+B = 1
+
+Sum = 2000000000000000000000000000
+A = 1fffffffffffffffffffffffffff
+B = 1
+
+Sum = 4000000000000000000000000000
+A = 3fffffffffffffffffffffffffff
+B = 1
+
+Sum = 8000000000000000000000000000
+A = 7fffffffffffffffffffffffffff
+B = 1
+
+Sum = 10000000000000000000000000000
+A = ffffffffffffffffffffffffffff
+B = 1
+
+Sum = 20000000000000000000000000000
+A = 1ffffffffffffffffffffffffffff
+B = 1
+
+Sum = 40000000000000000000000000000
+A = 3ffffffffffffffffffffffffffff
+B = 1
+
+Sum = 80000000000000000000000000000
+A = 7ffffffffffffffffffffffffffff
+B = 1
+
+Sum = 100000000000000000000000000000
+A = fffffffffffffffffffffffffffff
+B = 1
+
+Sum = 200000000000000000000000000000
+A = 1fffffffffffffffffffffffffffff
+B = 1
+
+Sum = 400000000000000000000000000000
+A = 3fffffffffffffffffffffffffffff
+B = 1
+
+Sum = 800000000000000000000000000000
+A = 7fffffffffffffffffffffffffffff
+B = 1
+
+Sum = 1000000000000000000000000000000
+A = ffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 2000000000000000000000000000000
+A = 1ffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 4000000000000000000000000000000
+A = 3ffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 8000000000000000000000000000000
+A = 7ffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 10000000000000000000000000000000
+A = fffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 20000000000000000000000000000000
+A = 1fffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 40000000000000000000000000000000
+A = 3fffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 80000000000000000000000000000000
+A = 7fffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 100000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 200000000000000000000000000000000
+A = 1ffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 400000000000000000000000000000000
+A = 3ffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 800000000000000000000000000000000
+A = 7ffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 1000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 2000000000000000000000000000000000
+A = 1fffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 4000000000000000000000000000000000
+A = 3fffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 8000000000000000000000000000000000
+A = 7fffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 10000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 20000000000000000000000000000000000
+A = 1ffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 40000000000000000000000000000000000
+A = 3ffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 80000000000000000000000000000000000
+A = 7ffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 100000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 200000000000000000000000000000000000
+A = 1fffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 400000000000000000000000000000000000
+A = 3fffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 800000000000000000000000000000000000
+A = 7fffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 1000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 2000000000000000000000000000000000000
+A = 1ffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 4000000000000000000000000000000000000
+A = 3ffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 8000000000000000000000000000000000000
+A = 7ffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 10000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 20000000000000000000000000000000000000
+A = 1fffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 40000000000000000000000000000000000000
+A = 3fffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 80000000000000000000000000000000000000
+A = 7fffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 100000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 200000000000000000000000000000000000000
+A = 1ffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 400000000000000000000000000000000000000
+A = 3ffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 800000000000000000000000000000000000000
+A = 7ffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 1000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 2000000000000000000000000000000000000000
+A = 1fffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 4000000000000000000000000000000000000000
+A = 3fffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 8000000000000000000000000000000000000000
+A = 7fffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 10000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 20000000000000000000000000000000000000000
+A = 1ffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 40000000000000000000000000000000000000000
+A = 3ffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 80000000000000000000000000000000000000000
+A = 7ffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 100000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 200000000000000000000000000000000000000000
+A = 1fffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 400000000000000000000000000000000000000000
+A = 3fffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 800000000000000000000000000000000000000000
+A = 7fffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 1000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 2000000000000000000000000000000000000000000
+A = 1ffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 4000000000000000000000000000000000000000000
+A = 3ffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 8000000000000000000000000000000000000000000
+A = 7ffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 10000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 20000000000000000000000000000000000000000000
+A = 1fffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 40000000000000000000000000000000000000000000
+A = 3fffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 80000000000000000000000000000000000000000000
+A = 7fffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 100000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 200000000000000000000000000000000000000000000
+A = 1ffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 400000000000000000000000000000000000000000000
+A = 3ffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 800000000000000000000000000000000000000000000
+A = 7ffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 1000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 2000000000000000000000000000000000000000000000
+A = 1fffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 4000000000000000000000000000000000000000000000
+A = 3fffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 8000000000000000000000000000000000000000000000
+A = 7fffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 10000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 20000000000000000000000000000000000000000000000
+A = 1ffffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 40000000000000000000000000000000000000000000000
+A = 3ffffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 80000000000000000000000000000000000000000000000
+A = 7ffffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 100000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 200000000000000000000000000000000000000000000000
+A = 1fffffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 400000000000000000000000000000000000000000000000
+A = 3fffffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 800000000000000000000000000000000000000000000000
+A = 7fffffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 1000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 2000000000000000000000000000000000000000000000000
+A = 1ffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 4000000000000000000000000000000000000000000000000
+A = 3ffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 8000000000000000000000000000000000000000000000000
+A = 7ffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 10000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 20000000000000000000000000000000000000000000000000
+A = 1fffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 40000000000000000000000000000000000000000000000000
+A = 3fffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 80000000000000000000000000000000000000000000000000
+A = 7fffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffffffffffff
+B = 1
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffffffffffe
+B = 2
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffffffffffc
+B = 4
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffffffffff8
+B = 8
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffffffffff0
+B = 10
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffffffffffe0
+B = 20
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffffffffffc0
+B = 40
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffffffffff80
+B = 80
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffffffffff00
+B = 100
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffffffffe00
+B = 200
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffffffffc00
+B = 400
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffffffff800
+B = 800
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffffffff000
+B = 1000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffffffffe000
+B = 2000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffffffffc000
+B = 4000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffffffff8000
+B = 8000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffffffff0000
+B = 10000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffffffe0000
+B = 20000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffffffc0000
+B = 40000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffffff80000
+B = 80000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffffff00000
+B = 100000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffffffe00000
+B = 200000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffffffc00000
+B = 400000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffffff800000
+B = 800000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffffff000000
+B = 1000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffffe000000
+B = 2000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffffc000000
+B = 4000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffff8000000
+B = 8000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffff0000000
+B = 10000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffffe0000000
+B = 20000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffffc0000000
+B = 40000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffff80000000
+B = 80000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffff00000000
+B = 100000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffe00000000
+B = 200000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffffc00000000
+B = 400000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffff800000000
+B = 800000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffff000000000
+B = 1000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffe000000000
+B = 2000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffffc000000000
+B = 4000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffff8000000000
+B = 8000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffff0000000000
+B = 10000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffe0000000000
+B = 20000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffffc0000000000
+B = 40000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffff80000000000
+B = 80000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffff00000000000
+B = 100000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffe00000000000
+B = 200000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffffc00000000000
+B = 400000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffff800000000000
+B = 800000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffff000000000000
+B = 1000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffe000000000000
+B = 2000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffffc000000000000
+B = 4000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffff8000000000000
+B = 8000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffff0000000000000
+B = 10000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffe0000000000000
+B = 20000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffffc0000000000000
+B = 40000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffff80000000000000
+B = 80000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffff00000000000000
+B = 100000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffe00000000000000
+B = 200000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffffc00000000000000
+B = 400000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffff800000000000000
+B = 800000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffff000000000000000
+B = 1000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffe000000000000000
+B = 2000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffffc000000000000000
+B = 4000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffff8000000000000000
+B = 8000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffff0000000000000000
+B = 10000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffe0000000000000000
+B = 20000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffffc0000000000000000
+B = 40000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffff80000000000000000
+B = 80000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffff00000000000000000
+B = 100000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffe00000000000000000
+B = 200000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffffc00000000000000000
+B = 400000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffff800000000000000000
+B = 800000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffff000000000000000000
+B = 1000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffe000000000000000000
+B = 2000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffffc000000000000000000
+B = 4000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffff8000000000000000000
+B = 8000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffff0000000000000000000
+B = 10000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffe0000000000000000000
+B = 20000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffffc0000000000000000000
+B = 40000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffff80000000000000000000
+B = 80000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffff00000000000000000000
+B = 100000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffe00000000000000000000
+B = 200000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffffc00000000000000000000
+B = 400000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffff800000000000000000000
+B = 800000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffff000000000000000000000
+B = 1000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffe000000000000000000000
+B = 2000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffffc000000000000000000000
+B = 4000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffff8000000000000000000000
+B = 8000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffff0000000000000000000000
+B = 10000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffe0000000000000000000000
+B = 20000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffffc0000000000000000000000
+B = 40000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffff80000000000000000000000
+B = 80000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffff00000000000000000000000
+B = 100000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffe00000000000000000000000
+B = 200000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffffc00000000000000000000000
+B = 400000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffff800000000000000000000000
+B = 800000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffff000000000000000000000000
+B = 1000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffe000000000000000000000000
+B = 2000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffffc000000000000000000000000
+B = 4000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffff8000000000000000000000000
+B = 8000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffff0000000000000000000000000
+B = 10000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffe0000000000000000000000000
+B = 20000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffffc0000000000000000000000000
+B = 40000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffff80000000000000000000000000
+B = 80000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffff00000000000000000000000000
+B = 100000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffe00000000000000000000000000
+B = 200000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffffc00000000000000000000000000
+B = 400000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffff800000000000000000000000000
+B = 800000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffff000000000000000000000000000
+B = 1000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffe000000000000000000000000000
+B = 2000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffffc000000000000000000000000000
+B = 4000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffff8000000000000000000000000000
+B = 8000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffff0000000000000000000000000000
+B = 10000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffe0000000000000000000000000000
+B = 20000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffffc0000000000000000000000000000
+B = 40000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffff80000000000000000000000000000
+B = 80000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffff00000000000000000000000000000
+B = 100000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffe00000000000000000000000000000
+B = 200000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffffc00000000000000000000000000000
+B = 400000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffff800000000000000000000000000000
+B = 800000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffff000000000000000000000000000000
+B = 1000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffe000000000000000000000000000000
+B = 2000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffffc000000000000000000000000000000
+B = 4000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffff8000000000000000000000000000000
+B = 8000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffff0000000000000000000000000000000
+B = 10000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffe0000000000000000000000000000000
+B = 20000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffffc0000000000000000000000000000000
+B = 40000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffff80000000000000000000000000000000
+B = 80000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffff00000000000000000000000000000000
+B = 100000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffe00000000000000000000000000000000
+B = 200000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffffc00000000000000000000000000000000
+B = 400000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffff800000000000000000000000000000000
+B = 800000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffff000000000000000000000000000000000
+B = 1000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffe000000000000000000000000000000000
+B = 2000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffffc000000000000000000000000000000000
+B = 4000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffff8000000000000000000000000000000000
+B = 8000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffff0000000000000000000000000000000000
+B = 10000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffe0000000000000000000000000000000000
+B = 20000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffffc0000000000000000000000000000000000
+B = 40000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffff80000000000000000000000000000000000
+B = 80000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffff00000000000000000000000000000000000
+B = 100000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffe00000000000000000000000000000000000
+B = 200000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffffc00000000000000000000000000000000000
+B = 400000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffff800000000000000000000000000000000000
+B = 800000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffff000000000000000000000000000000000000
+B = 1000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffe000000000000000000000000000000000000
+B = 2000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffffc000000000000000000000000000000000000
+B = 4000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffff8000000000000000000000000000000000000
+B = 8000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffff0000000000000000000000000000000000000
+B = 10000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffe0000000000000000000000000000000000000
+B = 20000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffffc0000000000000000000000000000000000000
+B = 40000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffff80000000000000000000000000000000000000
+B = 80000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffff00000000000000000000000000000000000000
+B = 100000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffe00000000000000000000000000000000000000
+B = 200000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffffc00000000000000000000000000000000000000
+B = 400000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffff800000000000000000000000000000000000000
+B = 800000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffff000000000000000000000000000000000000000
+B = 1000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffe000000000000000000000000000000000000000
+B = 2000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffffc000000000000000000000000000000000000000
+B = 4000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffff8000000000000000000000000000000000000000
+B = 8000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffff0000000000000000000000000000000000000000
+B = 10000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffe0000000000000000000000000000000000000000
+B = 20000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffffc0000000000000000000000000000000000000000
+B = 40000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffff80000000000000000000000000000000000000000
+B = 80000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffff00000000000000000000000000000000000000000
+B = 100000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffe00000000000000000000000000000000000000000
+B = 200000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffffc00000000000000000000000000000000000000000
+B = 400000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffff800000000000000000000000000000000000000000
+B = 800000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffff000000000000000000000000000000000000000000
+B = 1000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffe000000000000000000000000000000000000000000
+B = 2000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffffc000000000000000000000000000000000000000000
+B = 4000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffff8000000000000000000000000000000000000000000
+B = 8000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffff0000000000000000000000000000000000000000000
+B = 10000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffe0000000000000000000000000000000000000000000
+B = 20000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffffc0000000000000000000000000000000000000000000
+B = 40000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffff80000000000000000000000000000000000000000000
+B = 80000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffff00000000000000000000000000000000000000000000
+B = 100000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffe00000000000000000000000000000000000000000000
+B = 200000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffffc00000000000000000000000000000000000000000000
+B = 400000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffff800000000000000000000000000000000000000000000
+B = 800000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffff000000000000000000000000000000000000000000000
+B = 1000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffe000000000000000000000000000000000000000000000
+B = 2000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffffc000000000000000000000000000000000000000000000
+B = 4000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffff8000000000000000000000000000000000000000000000
+B = 8000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffff0000000000000000000000000000000000000000000000
+B = 10000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffe0000000000000000000000000000000000000000000000
+B = 20000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fffc0000000000000000000000000000000000000000000000
+B = 40000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fff80000000000000000000000000000000000000000000000
+B = 80000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fff00000000000000000000000000000000000000000000000
+B = 100000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffe00000000000000000000000000000000000000000000000
+B = 200000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ffc00000000000000000000000000000000000000000000000
+B = 400000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ff800000000000000000000000000000000000000000000000
+B = 800000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = ff000000000000000000000000000000000000000000000000
+B = 1000000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fe000000000000000000000000000000000000000000000000
+B = 2000000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = fc000000000000000000000000000000000000000000000000
+B = 4000000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = f8000000000000000000000000000000000000000000000000
+B = 8000000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = f0000000000000000000000000000000000000000000000000
+B = 10000000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = e0000000000000000000000000000000000000000000000000
+B = 20000000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = c0000000000000000000000000000000000000000000000000
+B = 40000000000000000000000000000000000000000000000000
+
+Sum = 100000000000000000000000000000000000000000000000000
+A = 80000000000000000000000000000000000000000000000000
+B = 80000000000000000000000000000000000000000000000000
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_exp.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_exp.t
new file mode 100644
index 000000000..7e999c4ac
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/10-test_exp.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_exp", "exptest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_dh.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_dh.t
new file mode 100644
index 000000000..60cb54c0a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_dh.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_dh", "dhtest", "dh");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_dsa.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_dsa.t
new file mode 100644
index 000000000..6ef06af11
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_dsa.t
@@ -0,0 +1,40 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Spec;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_dsa");
+
+plan tests => 6;
+
+require_ok(srctop_file('test','recipes','tconversion.pl'));
+
+ok(run(test(["dsatest"])), "running dsatest");
+ok(run(test(["dsa_no_digest_size_test"])), "running dsa_no_digest_size_test");
+
+ SKIP: {
+ skip "Skipping dsa conversion test", 3
+ if disabled("dsa");
+
+ subtest 'dsa conversions -- private key' => sub {
+ tconversion("dsa", srctop_file("test","testdsa.pem"));
+ };
+ subtest 'dsa conversions -- private key PKCS#8' => sub {
+ tconversion("dsa", srctop_file("test","testdsa.pem"), "pkey");
+ };
+ subtest 'dsa conversions -- public key' => sub {
+ tconversion("msb", srctop_file("test","testdsapub.pem"), "dsa",
+ "-pubin", "-pubout");
+ };
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ec.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ec.t
new file mode 100644
index 000000000..a1c704a3f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ec.t
@@ -0,0 +1,38 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Spec;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_ec");
+
+plan tests => 5;
+
+require_ok(srctop_file('test','recipes','tconversion.pl'));
+
+ok(run(test(["ectest"])), "running ectest");
+
+ SKIP: {
+ skip "Skipping ec conversion test", 3
+ if disabled("ec");
+
+ subtest 'ec conversions -- private key' => sub {
+ tconversion("ec", srctop_file("test","testec-p256.pem"));
+ };
+ subtest 'ec conversions -- private key PKCS#8' => sub {
+ tconversion("ec", srctop_file("test","testec-p256.pem"), "pkey");
+ };
+ subtest 'ec conversions -- public key' => sub {
+ tconversion("ec", srctop_file("test","testecpub-p256.pem"), "ec", "-pubin", "-pubout");
+ };
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecdsa.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecdsa.t
new file mode 100644
index 000000000..82a85594c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecdsa.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_ecdsa", "ecdsatest", "ec");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam.t
new file mode 100644
index 000000000..47a1a4f20
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam.t
@@ -0,0 +1,34 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Spec;
+use OpenSSL::Glob;
+use OpenSSL::Test qw/:DEFAULT data_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_ecparam");
+
+plan skip_all => "EC isn't supported in this build"
+ if disabled("ec") || disabled("ec2m");
+
+my @valid = glob(data_file("valid", "*.pem"));
+my @invalid = glob(data_file("invalid", "*.pem"));
+
+plan tests => scalar @valid + scalar @invalid;
+
+foreach (@valid) {
+ ok(run(app([qw{openssl ecparam -noout -check -in}, $_])));
+}
+
+foreach (@invalid) {
+ ok(!run(app([qw{openssl ecparam -noout -check -in}, $_])));
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/invalid/c2pnb208w1-reducible.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/invalid/c2pnb208w1-reducible.pem
new file mode 100644
index 000000000..915b58676
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/invalid/c2pnb208w1-reducible.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIGiAgEBMCUGByqGSM49AQIwGgICANAGCSqGSM49AQIDAzAJAgEBAgECAgE9MB8E
+AQAEGshhntRaYuYhLhFgNJ4r+oREOfr8Kj/RY4+eBDUHSf375Kvhk9+VWezwesDO
+eFVOJ4TrjB7RpXoPVbUaBueOmsOKA1/1INiwF4G+saa7CGF94wIZAQG6+VyXI8V7
+bCHaLv8tXtWIvdVxfiEvnQIDAP5I
+-----END EC PARAMETERS-----
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/invalid/nistp256-nonprime.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/invalid/nistp256-nonprime.pem
new file mode 100644
index 000000000..a06cf7a0b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/invalid/nistp256-nonprime.pem
@@ -0,0 +1,8 @@
+-----BEGIN EC PARAMETERS-----
+MIH3AgEBMCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP//////////
+/////jBbBCD/////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12Ko6
+k+ez671VdpiGvGUdBrDMU7D2O848PifSYEsDFQDEnTYIhucEk2pmeOETnSa3gZ9+
+kARBBGsX0fLhLEJH+Lzm5WOkQPJ3A32BLeszoPShOUXYmMKWT+NC4v4af5uO5+tK
+fA+eFivOM1drMV7Oy7ZAaDe/UfUCIQD/////AAAAAP//////////vOb6racXnoTz
+ucrC/GMlUQIBAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/invalid/nistp256-offcurve.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/invalid/nistp256-offcurve.pem
new file mode 100644
index 000000000..d4df6ae6b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/invalid/nistp256-offcurve.pem
@@ -0,0 +1,8 @@
+-----BEGIN EC PARAMETERS-----
+MIH3AgEBMCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP//////////
+/////zBbBCD/////AAAAAQAAAAAAAAAAAAAAAP//////////////+AQgWsY12Ko6
+k+ez671VdpiGvGUdBrDMU7D2O848PifSYEsDFQDEnTYIhucEk2pmeOETnSa3gZ9+
+kARBBGsX0fLhLEJH+Lzm5WOkQPJ3A32BLeszoPShOUXYmMKWT+NC4v4af5uO5+tK
+fA+eFivOM1drMV7Oy7ZAaDe/UfUCIQD/////AAAAAP//////////vOb6racXnoTz
+ucrC/GMlUQIBAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/invalid/nistp256-wrongorder.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/invalid/nistp256-wrongorder.pem
new file mode 100644
index 000000000..315e68efd
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/invalid/nistp256-wrongorder.pem
@@ -0,0 +1,8 @@
+-----BEGIN EC PARAMETERS-----
+MIH3AgEBMCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP//////////
+/////zBbBCD/////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12Ko6
+k+ez671VdpiGvGUdBrDMU7D2O848PifSYEsDFQDEnTYIhucEk2pmeOETnSa3gZ9+
+kARBBGsX0fLhLEJH+Lzm5WOkQPJ3A32BLeszoPShOUXYmMKWT+NC4v4af5uO5+tK
+fA+eFivOM1drMV7Oy7ZAaDe/UfUCIQD/////AAAAAP//////////vOb6racXnoTz
+ucrC/SMlUQIBAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v1-explicit.pem
new file mode 100644
index 000000000..d7bc1c2ca
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v1-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIG3AgEBMCUGByqGSM49AQIwGgICAKMGCSqGSM49AQIDAzAJAgEBAgECAgEIMEQE
+FQclRrVDUjSkIuB4lnX0MsiUNd5SQgQUyVF9BtUkDTz/OMdLILbNTW+d1NkDFQDS
+wPsVdghg3vHu9NaW5naHVhUXVAQrBAevaZiVRhA9eTKfzD10iA8zu+gDywHsIyEb
+WWat6h0/h/fqWEiu8LfKnwIVBAAAAAAAAAAAAAHmD8iCHMdNrq/BAgEC
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v1-named.pem
new file mode 100644
index 000000000..b69cdb062
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMAAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v2-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v2-explicit.pem
new file mode 100644
index 000000000..130621998
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v2-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIG4AgEBMCUGByqGSM49AQIwGgICAKMGCSqGSM49AQIDAzAJAgEBAgECAgEIMEUE
+FQEIs553xLEIvtmB7Q6JDhF8URzwcgQVBmes6zivTkiMQHQz/65PHIEWON8gAxUA
+U4FMBQ1E1pbmdodWFRdYDKTin/0EKwQAJCZuTrUQbQqWTZLEhg4mcdubbMUHn2hN
+32aExc0liziQAhsjht/Rn8UCFQP////////////99k3hFRrbt48QpwIBAg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v2-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v2-named.pem
new file mode 100644
index 000000000..371f08cac
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v2-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMAAg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v3-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v3-explicit.pem
new file mode 100644
index 000000000..fe6a07b09
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v3-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIG4AgEBMCUGByqGSM49AQIwGgICAKMGCSqGSM49AQIDAzAJAgEBAgECAgEIMEUE
+FQelJsY9PiWiVqAHaZ9UR+Mq5Fa1DgQVA/cGF5jrmeI4/W8b+VtI/utIVCUrAxUA
+UMvx2VypTWluZ2h1YVF18Wo2o7gEKwQC+fh7fFdNC97PiiLmUkd1+YzevcsFuTVZ
+DBVeF+pI6z/zcYuJPfWaBdACFQP////////////+Gu4UDxEK/5YTCQIBAg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v3-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v3-named.pem
new file mode 100644
index 000000000..712f73c81
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb163v3-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMAAw==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb176v1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb176v1-explicit.pem
new file mode 100644
index 000000000..9c362b002
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb176v1-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIGnAgEBMCUGByqGSM49AQIwGgICALAGCSqGSM49AQIDAzAJAgEBAgECAgErMDAE
+FuTm2ymVBlxAfZ05uNCWe5ZwS6jpyQsEFl3aRwq+ZBTejsEzrijpu9f87Arg//IE
+LQSNFsKGZ5i2APnwi7So6GDzKYzgSleYb6RTnC2t3da6tRZ9YbQ24dkrsWpWLAIV
+AQCSU3OX7KT2FFeZ1isKGc4G/iatAgMA/24=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb176v1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb176v1-named.pem
new file mode 100644
index 000000000..76091177e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb176v1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMABA==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb208w1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb208w1-explicit.pem
new file mode 100644
index 000000000..88772e620
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb208w1-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIGiAgEBMCUGByqGSM49AQIwGgICANAGCSqGSM49AQIDAzAJAgEBAgECAgFTMB8E
+AQAEGshhntRaYuYhLhFgNJ4r+oREOfr8Kj/RY4+eBDUEif375Kvhk9+VWezwesDO
+eFVOJ4TrjB7RpXoPVbUaBueOmsOKA1/1INiwF4G+saa7CGF94wIZAQG6+VyXI8V7
+bCHaLv8tXtWIvdVxfiEvnQIDAP5I
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb208w1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb208w1-named.pem
new file mode 100644
index 000000000..1bb91a2be
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb208w1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMACg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb272w1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb272w1-explicit.pem
new file mode 100644
index 000000000..02a433c07
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb272w1-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIHjAgEBMCUGByqGSM49AQIwGgICARAGCSqGSM49AQIDAzAJAgEBAgEDAgE4MEgE
+IpGgkfA7X7pKssz0nE7dIg+wKHEtQr51KyxACU26zbWG+yAEInFn78krsuPOfIqq
+/zThKpxVcAPXxzpvrwA/mfbMhILlQPcERQRhCLq7LO6894cFigVsvgz+Yi13I6KJ
+4IoHrhPvDRDRcd2NEMdpVxaFHu9rp/aHLmFC+9JBuDD/Xvys7MqwXgIAXd6dIwIh
+AQD69RNU4OOeSJLfbjGccsgWFgP6Rap7mYoWe48eYpUhAgMA/wY=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb272w1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb272w1-named.pem
new file mode 100644
index 000000000..d1117958f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb272w1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMAEA==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb304w1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb304w1-explicit.pem
new file mode 100644
index 000000000..f11db414b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb304w1-explicit.pem
@@ -0,0 +1,8 @@
+-----BEGIN EC PARAMETERS-----
+MIH3AgEBMCUGByqGSM49AQIwGgICATAGCSqGSM49AQIDAzAJAgEBAgECAgELMFAE
+Jv0NaTFJoRj2Uebc5oAghTd+X4gtG1ELRBYAdMEogHg2WgOWyOaBBCa925flVaUK
+kI5DsBx5jqXapniPHqJ5Tvz1cWa4wUA5YB5VgnNAvgRNBBl7B4Rem+LZatsPXzx/
+LP+9ej64tv7DXH/Wfybd9ihaZE90CiYU4Z++t24NoXFRfs9AG1Aom/AUEDKIUnqb
+QWoQXoAmC1Sf3BuSwDsCJQEB1VZXKqusgAEB1VZXKqusgAECLVyR3Rc/j7Vh2miZ
+FkRDBR0CAwD+Lg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb304w1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb304w1-named.pem
new file mode 100644
index 000000000..282364e50
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb304w1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMAEQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb368w1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb368w1-explicit.pem
new file mode 100644
index 000000000..19828f807
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb368w1-explicit.pem
@@ -0,0 +1,9 @@
+-----BEGIN EC PARAMETERS-----
+MIIBHwIBATAlBgcqhkjOPQECMBoCAgFwBgkqhkjOPQECAwMwCQIBAQIBAgIBVTBg
+BC7g0u4lCVIG9eKk+e0inx8lbnmg4rRVlw2NDYZb2Ud4xXbWLwq3UZzNKhqQauMN
+BC78EhfUMgqQRSx2CljtzTDI3QabPDRFODejTtUMtUkX4cIRLYTRZPRE+PdHhgRq
+BF0EEIXidVOB3MzjwVV6+hDC8MDCglZGxbNKOUy8+ovBayLn54npJ74hbwLh+xNq
+X3s+sb3cumLV2LIFm1JXl/xzgixZBZxiOkX/OEPO6Ph80YVa2qgeKgdQuA/aIxAC
+LQEAkFEtqa9ysINJ2Ypd1MewUy7KUc4D4tEPO3rFeb2H6QmuQKbxMenPzlvZZwID
+AP9w
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb368w1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb368w1-named.pem
new file mode 100644
index 000000000..d97112096
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2pnb368w1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMAEw==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v1-explicit.pem
new file mode 100644
index 000000000..8b8c147e1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v1-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIG/AgEBMB0GByqGSM49AQIwEgICAL8GCSqGSM49AQIDAgIBCTBLBBgoZlN7Z2dS
+Y2po9WVU4SZAJ2tknvdSYmcEGC5F71cfAHhvZ7AIG5SVo9lUYvXeCqGF7AMVAE4T
+ylQnRNaW5naHVhUXVS8nmoyEBDEENrPa+KIyBvnE8pnXshqcNpE38shK4aoNdlvn
+NDOz+V4zKTLnDqJFyiQY6g75gBj7AhhAAAAAAAAAAAAAAAAEog6Qw5BnyJO7uaUC
+AQI=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v1-named.pem
new file mode 100644
index 000000000..a8745e544
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMABQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v2-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v2-explicit.pem
new file mode 100644
index 000000000..683024698
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v2-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIG/AgEBMB0GByqGSM49AQIwEgICAL8GCSqGSM49AQIDAgIBCTBLBBhAECh3TXd3
+x7dmbRNm6kMgcSdPif8B5xgEGAYgBI0ovL0DtiScmRgrfIzRlwDDYsRqAQMVAAhx
+7y/vJNaW5naHVhUXWL7g2VwVBDEEOAmyt8wbKMxah5JqrYP9KHiegeLJ478QF0ND
+hmJtFPPb8Bdg2SE6PhzzeuxDfWaKAhggAAAAAAAAAAAAAABQUIy4n2UoJOBrgXMC
+AQQ=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v2-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v2-named.pem
new file mode 100644
index 000000000..85a7fe8ae
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v2-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMABg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v3-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v3-explicit.pem
new file mode 100644
index 000000000..62d43cb4f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v3-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIG/AgEBMB0GByqGSM49AQIwEgICAL8GCSqGSM49AQIDAgIBCTBLBBhsAQdHVgmR
+IiIQVpEcd9d+d6d35+fnf8sEGHH+Gvkmz4R5ie/vjbRZ9mOU2Q8yrT8V6AMVAOBT
+US3GhNaW5naHVhUXUGeueG0fBDEEN11M4k/eQ0SJ3odG5xeGAVAJ5m44qSbdVFo5
+F2GWV12YWZk2bmrTTOCnfNcSewa+AhgVVVVVVVVVVVVVVVVhDAsZaBK/tiiKPqMC
+AQY=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v3-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v3-named.pem
new file mode 100644
index 000000000..5131440fc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb191v3-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMABw==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v1-explicit.pem
new file mode 100644
index 000000000..c66246bd2
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v1-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIHdAgEBMB0GByqGSM49AQIwEgICAO8GCSqGSM49AQIDAgIBJDBXBB4yAQhXB3xU
+MRI6RrgIkGdW9UNCPo0nh3V4Eld4rHYEHnkECPLu2vOSsBLt77M5LzD0MnwMo/Mf
+w4PEIqqMFgMVANNLmk1pbmdodWFRdcpxuSC/77BdBD0EV5JwmPqTLnwKltP9W3Bu
+9+X1wVbha358hgOFUukdYdjuUHfDP+z28aFrJo3kacPHdE6pqXFkn8epYWMFAh4g
+AAAAAAAAAAAAAAAAAAAPTUL/4UkqSZPxytZm5EcCAQQ=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v1-named.pem
new file mode 100644
index 000000000..68bfd3fed
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMACw==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v2-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v2-explicit.pem
new file mode 100644
index 000000000..862b027ce
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v2-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIHdAgEBMB0GByqGSM49AQIwEgICAO8GCSqGSM49AQIDAgIBJDBXBB5CMAF3V6dn
++uQjmFabdGMl1FMTrwdmJmR5t1ZU5l8EHlA36mVBls/wzYKywUovzy4/+HdShbVF
+ci8D6s23SwMVACqmmC/fpNaW5naHVhUXXSZnJyd9BD0EKPnQTpAAacjcR6CFNP52
+0rkAt9fvMfVwnyAMTKIFVmczTEWv87WgO62d114scamTYlZ9VFP3+m4ifsgzAh4V
+VVVVVVVVVVVVVVVVVVU8byiFJZwx4/zfFUYkUi0CAQY=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v2-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v2-named.pem
new file mode 100644
index 000000000..15e84078b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v2-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMADA==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v3-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v3-explicit.pem
new file mode 100644
index 000000000..2b0ca1e4a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v3-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIHdAgEBMB0GByqGSM49AQIwEgICAO8GCSqGSM49AQIDAgIBJDBXBB4BI4d0Zmpn
+dm1mdvd45na2aZkXZmbmh2Zth2bGap8EHmqUGXe6n2pDUZms/FEGftWH9RnF7LVB
+uORBEd4dQAMVAJ4Hb01pbmdodWFRdeEen913+SBBBD0EcPbp0E0onE6JkTzjUwv9
+6QOXfUKxRtU5vxveTpySLloOr25eEwW5AE3OXA7X/lmjVgjzODfIFtgLefRhAh4M
+zMzMzMzMzMzMzMzMzMysSRLS2d+QPvmIi4oOTP8CAQo=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v3-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v3-named.pem
new file mode 100644
index 000000000..dd33a5ff4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb239v3-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMADQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb359v1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb359v1-explicit.pem
new file mode 100644
index 000000000..0b548ee44
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb359v1-explicit.pem
@@ -0,0 +1,9 @@
+-----BEGIN EC PARAMETERS-----
+MIIBKAIBATAdBgcqhkjOPQECMBICAgFnBgkqhkjOPQECAwICAUQwdQQtVmdnamVL
+IHVPNW6pIBfZRlZ8RmdVVvGVVqBGFrVn0iOl4FZW+1SQFqlmVqVXBC0kcuLQGXxJ
+Nj8f5/W22wddUraUfRNdjKRFgF05vDRWJgiWh3QrYynnBoAjGYgDFQArNUkgtyTW
+luZ2h1YVF1hboTMtxgRbBDwljvMEd2fn7eDx/ap52u44QTZqEy4WOs7U7SQB35xr
+3N6Y6OcHwHoiObGwl1PX4IUpVHBIEh6clfN5HdgEljlI80+ue/ROqCNl3Hho/lfk
+ri3iETBaQHEEvQItAa8oa8oa8oa8oa8oa8oa8oa8oa8oa8n7j2uFxVaJLCCn65ZP
+53GedPSQdY07AgFM
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb359v1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb359v1-named.pem
new file mode 100644
index 000000000..d8a6e5e27
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb359v1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMAEg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb431r1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb431r1-explicit.pem
new file mode 100644
index 000000000..1b139de32
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb431r1-explicit.pem
@@ -0,0 +1,9 @@
+-----BEGIN EC PARAMETERS-----
+MIIBPgIBATAdBgcqhkjOPQECMBICAgGvBgkqhkjOPQECAwICAXgwcAQ2GoJ+8A3W
+/A4jTK8EbGpdioU5WyNsxK0s8yoMrb3J3fYgsOuZBtCVf2xv6s1hVGjfEE3ils2P
+BDYQ2bSj2QR9ixVDWav7G39UhbBM64aCN93J3tqYKmeaWpGbYm1OUKjdcxsQepli
+OB+12Ae/JhgEbQQSD8BdPGepneFh0vQJJiL+ynAb5PUPR1hxToqHu/KmWO+MIefF
+7+llNh9sKZnAwkew29cM5rcg0K+JA6lvjV+iwlV0XTxFGzAsk0bZt+SF57zkH2tZ
+Hz6Pat3LsLxML5R6feGom2JdalmLN2ACNQNANANANANANANANANANANANANANANA
+NANANAMjwxP6tQWJcDtexo01h/7GDRYcwUnBrUqRAgInYA==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb431r1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb431r1-named.pem
new file mode 100644
index 000000000..078c73a90
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/c2tnb431r1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMAFA==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v1-explicit.pem
new file mode 100644
index 000000000..6c6427da5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v1-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIHHAgEBMCQGByqGSM49AQECGQD////////////////////+//////////8wSwQY
+/////////////////////v/////////8BBhkIQUZ5ZyA5w+n6atyJDBJ/rje7MFG
+ubEDFQAwRa5vyEIvZO1XlSjTgSDq4SGW1QQxBBiNqA6wMJD2fL8g60OhiAD0/wr9
+gv8QEgcZK5X/yNp4YxAR7WskzdVz+XehHnlIEQIZAP///////////////5ne+DYU
+a8mxtNIoMQIBAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v1-named.pem
new file mode 100644
index 000000000..0a9dd4ed6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMBAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v2-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v2-explicit.pem
new file mode 100644
index 000000000..32a580d3b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v2-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIHHAgEBMCQGByqGSM49AQECGQD////////////////////+//////////8wSwQY
+/////////////////////v/////////8BBjMItbfuVxrJeScDWNkpOWYDDk6ohZo
+2VMDFQAxqS7iAp/RDZAbET6ZBxDw0hrGtgQxBO6iuufhSXhC8t53ac/pyYnAcq1p
+b0gDSmV00R1ptux6Zyu4Kgg98vKwhH3pcLLeFQIZAP///////////////l+xpyTc
+gEGGSNjdMQIBAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v2-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v2-named.pem
new file mode 100644
index 000000000..6bd311f1c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v2-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMBAg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v3-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v3-explicit.pem
new file mode 100644
index 000000000..f38e9d95a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v3-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIHHAgEBMCQGByqGSM49AQECGQD////////////////////+//////////8wSwQY
+/////////////////////v/////////8BBgiEj3COVoFyqdCPa7MyUdgp9RiJWvV
+aRYDFQDEaWhENd6zeMS2XKlZHipXYwWaLgQxBH0pd4EAxlodoXg3FliNziuLSu6O
+Io8YljipDyJjczczS0nctmptyPmXisp2SKlDsAIZAP///////////////3pi0DHI
+P0KU9kDsEwIBAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v3-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v3-named.pem
new file mode 100644
index 000000000..ebdea34f3
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime192v3-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMBAw==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v1-explicit.pem
new file mode 100644
index 000000000..1795f2391
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v1-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIHpAgEBMCkGByqGSM49AQECHn///////////////3///////4AAAAAAAH//////
+/zBXBB5///////////////9///////+AAAAAAAB///////wEHmsBbDvc8YlB0NZU
+khR1ynGp2y+yfR03eWGFwpQsCgMVAOQ7tGDwuAzAwLB1eY6UgGD4Mht9BD0ED/qW
+PNyogWzMM7hkK+35BcPTWFc9Pyf7vTs8uaqvfevo5OkKXa5uQFTKUwugRlSzaBjO
+Ims5/Mt7AvGuAh5///////////////9///+eXpqfXZBx+9FSJoiQnQsCAQE=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v1-named.pem
new file mode 100644
index 000000000..32d2c92d6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMBBA==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v2-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v2-explicit.pem
new file mode 100644
index 000000000..d7b7c2d39
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v2-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIHpAgEBMCkGByqGSM49AQECHn///////////////3///////4AAAAAAAH//////
+/zBXBB5///////////////9///////+AAAAAAAB///////wEHmF/q2gyV2y7/tUN
+mfAknD/uWLlLoAOMeuhMjIMvLAMVAOi0ARYECVMDyjuAmZgr4J/LmuYWBD0EOK8J
+2YcncFEgySG7Xp4mKWo83PLzV1eg6v2HuDDnWwEl5NvqDscgbaD8AdmwgTKftVXe
+bvRgI33/i+S6Ah5///////////////+AAADPp+hZQ3fUFMA4IbxYIGMCAQE=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v2-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v2-named.pem
new file mode 100644
index 000000000..b673ca7d0
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v2-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMBBQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v3-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v3-explicit.pem
new file mode 100644
index 000000000..bf488d9cc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v3-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIHpAgEBMCkGByqGSM49AQECHn///////////////3///////4AAAAAAAH//////
+/zBXBB5///////////////9///////+AAAAAAAB///////wEHiVXBfoqMGZUsfTL
+A9anUKMMJQEC1JiHF9m6FattPgMVAH1zdBaP/jRxtgqFdoahlHXTv6L/BD0EZ2iu
+jhi7ks/PAFyUmqLG2UhT0OZgu/hUsclQX+laFgfmiY85DAa8HVUrrSJvO2/P5Itu
+gYSZrxjj7WzzAh5///////////////9///+XXetBs6YFfDxDIUZSZVECAQE=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v3-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v3-named.pem
new file mode 100644
index 000000000..082f731ea
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime239v3-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMBBg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime256v1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime256v1-explicit.pem
new file mode 100644
index 000000000..4419839f4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime256v1-explicit.pem
@@ -0,0 +1,8 @@
+-----BEGIN EC PARAMETERS-----
+MIH3AgEBMCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP//////////
+/////zBbBCD/////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12Ko6
+k+ez671VdpiGvGUdBrDMU7D2O848PifSYEsDFQDEnTYIhucEk2pmeOETnSa3gZ9+
+kARBBGsX0fLhLEJH+Lzm5WOkQPJ3A32BLeszoPShOUXYmMKWT+NC4v4af5uO5+tK
+fA+eFivOM1drMV7Oy7ZAaDe/UfUCIQD/////AAAAAP//////////vOb6racXnoTz
+ucrC/GMlUQIBAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime256v1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime256v1-named.pem
new file mode 100644
index 000000000..a76e47d95
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/prime256v1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMBBw==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp112r1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp112r1-explicit.pem
new file mode 100644
index 000000000..2c97cb413
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp112r1-explicit.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PARAMETERS-----
+MIGLAgEBMBoGByqGSM49AQECDwDbfCq/YuNeZoB2vq0gizA3BA7bfCq/YuNeZoB2
+vq0giAQOZZ74ugQ5Fu7eiRFwKyIDFQAA9QsCjk1pbmdodWFRdSkEcng/sQQdBAlI
+cjmZWl7na1X5wvCYqJzlr4ckwKI+Dg/3dQACDwDbfCq/YuNedijfrGVhxQIBAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp112r1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp112r1-named.pem
new file mode 100644
index 000000000..5b7a770c1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp112r1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQABg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp112r2-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp112r2-explicit.pem
new file mode 100644
index 000000000..927ac3a82
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp112r2-explicit.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PARAMETERS-----
+MIGKAgEBMBoGByqGSM49AQECDwDbfCq/YuNeZoB2vq0gizA3BA5hJ8JMBfOKCqr2
+XA7wLAQOUd7xgV217XT8w0yF1wkDFQAAJ1ehEU1pbmdodWFRdVMWwF4L1AQdBEuj
+CrXokrThZJ3QkoZDrc1G9YguN0fe826VbpcCDjbfCq/YuNdZfKEFINBLAgEE
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp112r2-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp112r2-named.pem
new file mode 100644
index 000000000..dfaed7480
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp112r2-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQABw==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp128r1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp128r1-explicit.pem
new file mode 100644
index 000000000..93732d63b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp128r1-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIGXAgEBMBwGByqGSM49AQECEQD////9////////////////MDsEEP////3/////
+//////////wEEOh1ecEQefQ92CSZPCzuXtMDFQAADg1NaW5naHVhUXUMwDpEc9A2
+eQQhBBYf91KLiZstDChgfKUsW4bPWsg5W6/rE8AtopLd7XqDAhEA/////gAAAAB1
+ow0bkDihFQIBAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp128r1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp128r1-named.pem
new file mode 100644
index 000000000..bcf16a01a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp128r1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAHA==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp128r2-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp128r2-explicit.pem
new file mode 100644
index 000000000..2bcbebcb9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp128r2-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIGWAgEBMBwGByqGSM49AQECEQD////9////////////////MDsEENYDGZjRs7v+
+v1nMm7/5ruEEEF7u/KOA0CkZ3CxlWLttil0DFQAATWluZ2h1YVF1EtjwNDH85juI
+9AQhBHtqpdheVymD5vsyp83rwUAntpFqiU067nEG/oBfw0tEAhA/////f////74A
+JHIGE7WjAgEE
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp128r2-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp128r2-named.pem
new file mode 100644
index 000000000..3d1a30f57
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp128r2-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAHQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160k1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160k1-explicit.pem
new file mode 100644
index 000000000..de0464ce1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160k1-explicit.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PARAMETERS-----
+MHICAQEwIAYHKoZIzj0BAQIVAP////////////////////7//6xzMAYEAQAEAQcE
+KQQ7TDgs43qhkqQBnnYwNvT13U1+u5OM+TUxj9zta8KChlMXM8PwPE/uAhUBAAAA
+AAAAAAAAAbj6Ft+rmsoWtrMCAQE=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160k1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160k1-named.pem
new file mode 100644
index 000000000..2029fed02
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160k1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQACQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160r1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160r1-explicit.pem
new file mode 100644
index 000000000..6ddb9c4e4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160r1-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIGvAgEBMCAGByqGSM49AQECFQD/////////////////////f////zBDBBT/////
+////////////////f////AQUHJe+/FS9eotlrPifgdTUrcVl+kUDFQAQU83kLBTW
+luZ2h1YVF1M78/gzRQQpBEqWtWiO9XMoRmRpiWjDi7kTy/yCI6YoVTFolH1Z3MkS
+BCNRN3rF+zICFQEAAAAAAAAAAAAB9Mj5J67TynUiVwIBAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160r1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160r1-named.pem
new file mode 100644
index 000000000..3546d9957
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160r1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQACA==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160r2-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160r2-explicit.pem
new file mode 100644
index 000000000..120728ae7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160r2-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIGvAgEBMCAGByqGSM49AQECFQD////////////////////+//+sczBDBBT/////
+///////////////+//+scAQUtOE00/tZ64urVydJBGZNWvUDiLoDFQC5m5mwmbMj
+4CcJpNaW5naHVhUXUQQpBFLcsDQpOhF+H0/xGzD3GZ0xRM5t/q/+8uMx8pbgcfoN
++Zgs/qfUPy4CFQEAAAAAAAAAAAAANR7nhqgY86GhawIBAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160r2-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160r2-named.pem
new file mode 100644
index 000000000..fc9f9670b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp160r2-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAHg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp192k1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp192k1-explicit.pem
new file mode 100644
index 000000000..0b58fcf3b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp192k1-explicit.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PARAMETERS-----
+MIGCAgEBMCQGByqGSM49AQECGQD//////////////////////////v//7jcwBgQB
+AAQBAwQxBNtP8Q7AV+muJrB9AoC39DQdpdGx6uBsfZsvL22cViinhEFj0BW+hjRA
+gqqI2V4vnQIZAP///////////////iby/BcPaUZqdN79jQIBAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp192k1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp192k1-named.pem
new file mode 100644
index 000000000..4f9fc32de
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp192k1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAHw==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp224k1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp224k1-explicit.pem
new file mode 100644
index 000000000..76ac8ed02
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp224k1-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIGSAgEBMCgGByqGSM49AQECHQD///////////////////////////////7//+Vt
+MAYEAQAEAQUEOQShRVszTfCZ3zD8KKFppGfp5HB1qQ9+ZQ62t6Rcfgif7X+6NEKC
+yvvW9+MZ98CwvVniykvbVW1hpQIdAQAAAAAAAAAAAAAAAAAB3OjS7GGEyvCpcXaf
+sfcCAQE=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp224k1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp224k1-named.pem
new file mode 100644
index 000000000..aba6bf93f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp224k1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAIA==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp224r1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp224r1-explicit.pem
new file mode 100644
index 000000000..17baec7a4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp224r1-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIHfAgEBMCgGByqGSM49AQECHQD/////////////////////AAAAAAAAAAAAAAAB
+MFMEHP////////////////////7///////////////4EHLQFCoUMBLOr9UEyVlBE
+sLfXv9i6Jws5QyNV/7QDFQC9cTRHmdXH/NxFtZ+juauPapSLxQQ5BLcODL1rtL9/
+MhOQuUoDwdNWwhEiNDKA1hFcHSG9N2OItfcj+0wi3+bNQ3WgWgdHZETVgZmFAH40
+Ah0A//////////////////8WouC48D4T3SlFXFwqPQIBAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp224r1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp224r1-named.pem
new file mode 100644
index 000000000..9728ddda9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp224r1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAIQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp256k1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp256k1-explicit.pem
new file mode 100644
index 000000000..72f7f06ad
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp256k1-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIGiAgEBMCwGByqGSM49AQECIQD////////////////////////////////////+
+///8LzAGBAEABAEHBEEEeb5mfvncu6xVoGKVzocLBwKb/NstzijZWfKBWxb4F5hI
+Otp3JqPEZV2k+/wOEQio/Re0SKaFVBmcR9CP+xDUuAIhAP//////////////////
+//66rtzmr0igO7/SXozQNkFBAgEB
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp256k1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp256k1-named.pem
new file mode 100644
index 000000000..32d952ea9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp256k1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQACg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp384r1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp384r1-explicit.pem
new file mode 100644
index 000000000..8f5598ed0
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp384r1-explicit.pem
@@ -0,0 +1,10 @@
+-----BEGIN EC PARAMETERS-----
+MIIBVwIBATA8BgcqhkjOPQEBAjEA////////////////////////////////////
+//////7/////AAAAAAAAAAD/////MHsEMP//////////////////////////////
+///////////+/////wAAAAAAAAAA/////AQwszEvp+I+5+SYjgVr4/gtGRgdnG7+
+gUESAxQIj1ATh1rGVjmNii7RnSqFyO3T7CrvAxUAozWSaqMZonodAIlqZ3OkgnrN
+rHMEYQSqh8oivosFN46xxx7zIK10bh07Younm5hZ90HgglQqOFUC8l2/VSlsOlRe
+OHJ2Crc2F95KliYsb12emL+Sktwp+PQdvSiaFHzp2jETtfC4wApgsc4dfoGdekMd
+fJDqDl8CMQD////////////////////////////////HY02B9Dct31gaDbJIsKd6
+7OwZaszFKXMCAQE=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp384r1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp384r1-named.pem
new file mode 100644
index 000000000..ceed209a5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp384r1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAIg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp521r1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp521r1-explicit.pem
new file mode 100644
index 000000000..f92a1211b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp521r1-explicit.pem
@@ -0,0 +1,12 @@
+-----BEGIN EC PARAMETERS-----
+MIIBwgIBATBNBgcqhkjOPQEBAkIB////////////////////////////////////
+//////////////////////////////////////////////////8wgZ4EQgH/////
+////////////////////////////////////////////////////////////////
+/////////////////ARBUZU+uWGOHJofkpohoLaFQO6i2nJbmbMV87i0iZGO8Qnh
+Vhk5Uex+k3sWUsC9O7G/BzVz34g9LDTx70Uf1GtQPwADFQDQnogAKRy4U5bMZxc5
+MoSqoNpkugSBhQQAxoWOBrcEBOnNnj7LZiOVtEKcZIE5BT+1Ifgor2BrTT26oUte
+d+/nWSj+HcEnov+o3jNIs8GFakKb+X5+McLlvWYBGDkpaniaO8AEXIpftCx9G9mY
+9URJV5tEaBevvRcnPmYsl+5ymV70JkDFULkBP60HYTU8cIaicsJAiL6Udp/RZlAC
+QgH///////////////////////////////////////////pRhoeDvy+Wa3/MAUj3
+CaXQO7XJuImcR667b7cekThkCQIBAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp521r1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp521r1-named.pem
new file mode 100644
index 000000000..cdca78c8e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/secp521r1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAIw==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect113r1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect113r1-explicit.pem
new file mode 100644
index 000000000..2cd45a8c4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect113r1-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIGPAgEBMBwGByqGSM49AQIwEQIBcQYJKoZIzj0BAgMCAgEJMDcEDjCIJQym58f+
+ZJzoWCD3BA7ovuTT4iYHRBiL4OnHIwMVABDnI6sU1pbmdodWFRdW/r+Py0mpBB8E
+AJ1zYW819KsUB9c1YsEPAKUoMCd5WO6E0TFe0xiGAg8BAAAAAAAAANnM7Io55W8C
+AQI=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect113r1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect113r1-named.pem
new file mode 100644
index 000000000..f39d6cad8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect113r1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQABA==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect113r2-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect113r2-explicit.pem
new file mode 100644
index 000000000..4fca872b4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect113r2-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIGPAgEBMBwGByqGSM49AQIwEQIBcQYJKoZIzj0BAgMCAgEJMDcEDmiZGNvsfloN
+1t/AqlXHBA6V6ansmyl71L824FkYTwMVABDA+xV2CGDe8e701pbmdodWFRddBB8E
+AaV6ansmyl71L824FkeXALOtyU7R/mdMBuaVurodAg8BAAAAAAAAAQh4mySWr5MC
+AQI=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect113r2-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect113r2-named.pem
new file mode 100644
index 000000000..c27c9c58c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect113r2-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQABQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect131r1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect131r1-explicit.pem
new file mode 100644
index 000000000..cc8264cbf
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect131r1-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIGkAgEBMCUGByqGSM49AQIwGgICAIMGCSqGSM49AQIDAzAJAgECAgEDAgEIMD0E
+EQehGwmna1YhREGP8/+MJXC4BBECF8BWEIhLY7nGxykWePnTQQMVAE1pbmdodWFR
+dZhb06262iG0OpfiBCMEAIG6+R/fmDPED5wYE0Njg5kHjG5+o4wAH3PIE0sbTvnh
+UAIRBAAAAAAAAAACMSOVOpRktU0CAQI=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect131r1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect131r1-named.pem
new file mode 100644
index 000000000..4aa4244ca
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect131r1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAFg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect131r2-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect131r2-explicit.pem
new file mode 100644
index 000000000..2bfb918bb
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect131r2-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIGkAgEBMCUGByqGSM49AQIwGgICAIMGCSqGSM49AQIDAzAJAgECAgEDAgEIMD0E
+EQPlqIkZ18r8v0FfB8IXZXOyBBEEuCZqRsVWV6xzTOOPAY8hkgMVAJhb06261NaW
+5naHVhUXWiG0OpfjBCMEA1bc2PL5UDGtZS0jlRuzZqgGSPBthnlApTZtniZd6esk
+DwIRBAAAAAAAAAABaVSiMwSbqY8CAQI=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect131r2-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect131r2-named.pem
new file mode 100644
index 000000000..c9c2a7c30
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect131r2-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAFw==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163k1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163k1-explicit.pem
new file mode 100644
index 000000000..3438927e6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163k1-explicit.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PARAMETERS-----
+MHkCAQEwJQYHKoZIzj0BAjAaAgIAowYJKoZIzj0BAgMDMAkCAQMCAQYCAQcwBgQB
+AQQBAQQrBAL+E8BTe7wRrKoH15PeTm1eXJTu6AKJBw+wXTj/WDIfLoAFNtU4zNqj
+2QIVBAAAAAAAAAAAAAIBCKLgzA2Z+KXvAgEC
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163k1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163k1-named.pem
new file mode 100644
index 000000000..d9ae41c97
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163k1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163r1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163r1-explicit.pem
new file mode 100644
index 000000000..78320dc9f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163r1-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIGhAgEBMCUGByqGSM49AQIwGgICAKMGCSqGSM49AQIDAzAJAgEDAgEGAgEHMC4E
+FQe2iCyq76hPlVT/hCi9iOJG0ngq4gQVBxNhLc3ctAqrlGvaKcqR9zr5WK/ZBCsE
+A2mXlperQ4l3iVZniVZ/eHp4dqZUAENe20Lvr7KYnVH+/OPICYj0H/iDAhUD////
+/////////0iqtonCnKcQJ5sCAQI=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163r1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163r1-named.pem
new file mode 100644
index 000000000..45dbad0dd
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163r1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAAg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163r2-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163r2-explicit.pem
new file mode 100644
index 000000000..817155013
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163r2-explicit.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PARAMETERS-----
+MIGNAgEBMCUGByqGSM49AQIwGgICAKMGCSqGSM49AQIDAzAJAgEDAgEGAgEHMBoE
+AQEEFQIKYBkHuMlTyhSB6xBRL3h0SjIF/QQrBAPw66FihqLVfqCZEWjUmUY36DQ+
+NgDVH7xscaAJT6LN1UWxHFwMeXMk8QIVBAAAAAAAAAAAAAKS/nfnDBKkI0wzAgEC
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163r2-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163r2-named.pem
new file mode 100644
index 000000000..ecf7a7124
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect163r2-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQADw==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect193r1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect193r1-explicit.pem
new file mode 100644
index 000000000..93d166dc3
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect193r1-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIHCAgEBMB0GByqGSM49AQIwEgICAMEGCSqGSM49AQIDAgIBDzBLBBgXhY/repiX
+UWnhcfd7QIfeCYrIqRHfewEEGP37Sb/mw6ifrK2qeh5bvHzBwuXYMUeIFAMVABA/
+rsdNaW5naHVhUXV3f8Wxke8wBDMEAfSBvF8P+Ep0rWzfb970v2F5YlNy2MDF4QAl
+45nykDcSzPPqnjoa0X+wsyAbavfOGwUCGQEAAAAAAAAAAAAAAADH80p3j0Q6zJIO
+ukkCAQI=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect193r1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect193r1-named.pem
new file mode 100644
index 000000000..4fe58aa04
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect193r1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAGA==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect193r2-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect193r2-explicit.pem
new file mode 100644
index 000000000..3e96cc77b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect193r2-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIHDAgEBMB0GByqGSM49AQIwEgICAMEGCSqGSM49AQIDAgIBDzBMBBkBY/NaUTfC
+zj6m7YZnGQsLxD7NaZd3AnCbBBjJu56JJ9TWTDd+KrKFalsW4++39h1DFq4DFQAQ
+t7TWluZ2h1YVF1E3yKFv0NoiEQQzBADZtn0ZLgNnyAPznhp+gsoUplE1Cq5hfo8B
+zpQzVgfDBKwp59772coB9Zb5JyJM3s9sAhkBAAAAAAAAAAAAAAABWqtWGwBUE8zU
+7pnVAgEC
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect193r2-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect193r2-named.pem
new file mode 100644
index 000000000..0c2956b22
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect193r2-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAGQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect233k1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect233k1-explicit.pem
new file mode 100644
index 000000000..d318fcb8c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect233k1-explicit.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PARAMETERS-----
+MIGMAgEBMB0GByqGSM49AQIwEgICAOkGCSqGSM49AQIDAgIBSjAGBAEABAEBBD0E
+AXIyuoU6fnMa8SnyL/QUlWOkGcJr9QpMnW7vrWEmAdtTfezoGbf3D1VaZ8QnqM2b
+8Yrrm1bgwRBW+uajAh4AgAAAAAAAAAAAAAAAAAAGnVu5FbzUbvsa1fFzq98CAQQ=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect233k1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect233k1-named.pem
new file mode 100644
index 000000000..97be94b25
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect233k1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAGg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect233r1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect233r1-explicit.pem
new file mode 100644
index 000000000..c6da58086
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect233r1-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIG/AgEBMB0GByqGSM49AQIwEgICAOkGCSqGSM49AQIDAgIBSjA5BAEBBB1mZH7e
+bDMsf4wJI7tYITszOyDpzkKB/hFffY+QrQMVAHTVn/B/a0E9DqFLNEsgotsEm1DD
+BD0EAPrJ38usgxO7ITnxu3Vf72W8OR+LNvj463Nx/VWLAQBqCKQZAzUGeOWFKL6/
+igvv+GenyjZxb34B+BBSAh4BAAAAAAAAAAAAAAAAAAAT6XTnL4ppIgMdJgPP4NcC
+AQI=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect233r1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect233r1-named.pem
new file mode 100644
index 000000000..ba065e7ed
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect233r1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAGw==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect239k1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect239k1-explicit.pem
new file mode 100644
index 000000000..8e23a4c87
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect239k1-explicit.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PARAMETERS-----
+MIGNAgEBMB4GByqGSM49AQIwEwICAO8GCSqGSM49AQIDAgICAJ4wBgQBAAQBAQQ9
+BCmgtqiHqYPpcwmIpocnqLLRJsRMwsx7KmVVGTA13HYxCATxLlSb2wEcEDCJ5zUQ
+rLJ1/DEqXca3ZVPwygIeIAAAAAAAAAAAAAAAAAAAWnn+xny26R8cHagA5HilAgEE
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect239k1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect239k1-named.pem
new file mode 100644
index 000000000..9f26dd8ab
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect239k1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAAw==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect283k1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect283k1-explicit.pem
new file mode 100644
index 000000000..5ebcb8620
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect283k1-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIGmAgEBMCUGByqGSM49AQIwGgICARsGCSqGSM49AQIDAzAJAgEFAgEHAgEMMAYE
+AQAEAQEESQQFAyE/eMpEiD8aO4Fi8YjlU80mXyPBVnoWh2kTsMKsJFhJKDYBzNo4
+DxyeMY2Q+V0H5UJv6H5FwOgYRpjkWWI2TjQRYXfdIlkCJAH/////////////////
+/////+muLtB1dyZd/3+URR4GHhY8YQIBBA==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect283k1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect283k1-named.pem
new file mode 100644
index 000000000..8ab88df20
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect283k1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAEA==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect283r1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect283r1-explicit.pem
new file mode 100644
index 000000000..f1fffd5c1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect283r1-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIHgAgEBMCUGByqGSM49AQIwGgICARsGCSqGSM49AQIDAzAJAgEFAgEHAgEMMEAE
+AQEEJAJ7aArIuFltpaSvihmgMD/Kl/12RTCfoqWBSFr2Jj4xO3mi9QMVAHfisHNw
+6w+DKm3Vti38iM0Gu4S+BEkEBfk5JY233ZDhk0+McLDf7C7tJbhVfqycgOLhmPjN
+vs2GsSBTA2doVP4kFBy5j+bUsg0CtFFv9wI1Dt2wgmd5yBPw30W+gRL0AiQD////
+///////////////////vkDmWYPyTipAWWwQqfO+tswcCAQI=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect283r1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect283r1-named.pem
new file mode 100644
index 000000000..527459c3f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect283r1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAEQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect409k1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect409k1-explicit.pem
new file mode 100644
index 000000000..e781a6e87
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect409k1-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIHNAgEBMB0GByqGSM49AQIwEgICAZkGCSqGSM49AQIDAgIBVzAGBAEABAEBBGkE
+AGDwX2WPScGtOrGJD3GEIQ79CYfjB8hMJ6zPuPn2fMLEYBietaqqYu4iLrGzVUDP
+6QI3RgHjaQULfE5CrLodrL8EKZw0YHgvkY6kJ+YyUWXp6hDj2l9sQunFUhWqnKJ6
+WGPsSNjgKGsCM3/////////////////////////////////+X4Oy1OogQA7EVX1e
+0+PnyltLXIO44B5fzwIBBA==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect409k1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect409k1-named.pem
new file mode 100644
index 000000000..ef4c82e00
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect409k1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAJA==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect409r1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect409r1-explicit.pem
new file mode 100644
index 000000000..937ce1bd4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect409r1-explicit.pem
@@ -0,0 +1,8 @@
+-----BEGIN EC PARAMETERS-----
+MIIBFwIBATAdBgcqhkjOPQECMBICAgGZBgkqhkjOPQECAwICAVcwTwQBAQQzIaXC
+yO6f61xLmnU7e0drf9ZCLvHz3WdHYfqZ1qwnyKmhl7Jygi9s1XpVqk9QrjF7E1Rf
+AxUAQJm1pFf51p95IT0JTEvNTUJiIQsEaQQBXUhg0Ijds0lrDGBkdWJgRBzeSvF3
+HU2wH/5bNOWXA9wlWoaKEYBRVgOuq2B5TlS7eZanAGGxz6tr5fMrv6eDJO0QanY2
+ucWnvRmNAViqT1SI0I84UU8f30tPQNIYGzaBw2S6AnPHBgI0AQAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAB4qrWphLzMwe+X6R8PJ4FL4OBZM032aIRcwIBAg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect409r1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect409r1-named.pem
new file mode 100644
index 000000000..5ef828d71
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect409r1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAJQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect571k1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect571k1-explicit.pem
new file mode 100644
index 000000000..32119057a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect571k1-explicit.pem
@@ -0,0 +1,8 @@
+-----BEGIN EC PARAMETERS-----
+MIIBEwIBATAlBgcqhkjOPQECMBoCAgI7BgkqhkjOPQECAwMwCQIBAgIBBQIBCjAG
+BAEABAEBBIGRBAJut6hZkj+8ghiWMfgQP+SsnKKXABLV1GAkgEgBhBykQ3CVhJOy
+BeZH2jBNtM6wjLvRujlJR3b7mItHF03KiMfilFKDoByJcgNJ3IB/T783T0rq3jvK
+lTFN1YzsnzB6VP/GHvwAbYosnUl5wKxErqdPvru593Ku3LYgsBp7p68bMgQwyFkZ
+hPYBzUwUPvHHowJIAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ExhQ4fGaY+SzkajbkX9BOLYw2Evl1jk4HpHetFz+d49jfBABAgEE
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect571k1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect571k1-named.pem
new file mode 100644
index 000000000..9804e9cfc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect571k1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAJg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect571r1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect571r1-explicit.pem
new file mode 100644
index 000000000..b81ab3c78
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect571r1-explicit.pem
@@ -0,0 +1,10 @@
+-----BEGIN EC PARAMETERS-----
+MIIBcQIBATAlBgcqhkjOPQECMBoCAgI7BgkqhkjOPQECAwMwCQIBAgIBBQIBCjBk
+BAEBBEgC9A5+IiHyld4pcRe389YvXGqX/8uM7/HNa6jOSpoYrYT/q72O+lkzK+et
+Z1ambilK/RhaeP8SqlIOTec5usoMf/7/fylVcnoDFQAqoFj3Og4zq0hrD2EEEMU6
+fxMjEASBkQQDAwAdNLhWKWwWwNQNPNd1CpPR0pVfqAql9A/I23sqvb3lOVD0wNKT
+zdcRo1tn+xSZrmADhhTxOUq/o7TIUNkn4ed2nI7sLRkDe/JzQtpjm23M//63PWnX
+jGwnpgCcu8oZgPhTOSHopoRCPkO6sIpXYpGvj0YbsqizUx0vBIXBmxbi8VFuI908
+GkgnrxuKwVsCSAP//////////////////////////////////////////////+Zh
+zhj/VZhzCAWbGGgjhR7H3ZyhFh3pPVF01m6Dgum7L+hORwIBAg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect571r1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect571r1-named.pem
new file mode 100644
index 000000000..20b18d6eb
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/sect571r1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAJw==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls1-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls1-explicit.pem
new file mode 100644
index 000000000..5da128a99
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls1-explicit.pem
@@ -0,0 +1,4 @@
+-----BEGIN EC PARAMETERS-----
+MF4CAQEwHAYHKoZIzj0BAjARAgFxBgkqhkjOPQECAwICAQkwBgQBAQQBAQQfBAFm
+eXmkC6SX5dXCcHgGFwD0S0rx7MJjDgh4XOvMFQIPAP/////////9v5GvbepzAgEC
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls1-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls1-named.pem
new file mode 100644
index 000000000..c327f6f06
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls1-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgVnKwEEAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls10-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls10-explicit.pem
new file mode 100644
index 000000000..d318fcb8c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls10-explicit.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PARAMETERS-----
+MIGMAgEBMB0GByqGSM49AQIwEgICAOkGCSqGSM49AQIDAgIBSjAGBAEABAEBBD0E
+AXIyuoU6fnMa8SnyL/QUlWOkGcJr9QpMnW7vrWEmAdtTfezoGbf3D1VaZ8QnqM2b
+8Yrrm1bgwRBW+uajAh4AgAAAAAAAAAAAAAAAAAAGnVu5FbzUbvsa1fFzq98CAQQ=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls10-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls10-named.pem
new file mode 100644
index 000000000..05ed40210
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls10-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgVnKwEECg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls11-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls11-explicit.pem
new file mode 100644
index 000000000..c6da58086
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls11-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIG/AgEBMB0GByqGSM49AQIwEgICAOkGCSqGSM49AQIDAgIBSjA5BAEBBB1mZH7e
+bDMsf4wJI7tYITszOyDpzkKB/hFffY+QrQMVAHTVn/B/a0E9DqFLNEsgotsEm1DD
+BD0EAPrJ38usgxO7ITnxu3Vf72W8OR+LNvj463Nx/VWLAQBqCKQZAzUGeOWFKL6/
+igvv+GenyjZxb34B+BBSAh4BAAAAAAAAAAAAAAAAAAAT6XTnL4ppIgMdJgPP4NcC
+AQI=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls11-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls11-named.pem
new file mode 100644
index 000000000..247ba8216
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls11-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgVnKwEECw==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls12-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls12-explicit.pem
new file mode 100644
index 000000000..355fd5b09
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls12-explicit.pem
@@ -0,0 +1,7 @@
+-----BEGIN EC PARAMETERS-----
+MIHIAgEBMCgGByqGSM49AQECHQD/////////////////////AAAAAAAAAAAAAAAB
+MDwEHP////////////////////7///////////////4EHLQFCoUMBLOr9UEyVlBE
+sLfXv9i6Jws5QyNV/7QEOQS3Dgy9a7S/fzITkLlKA8HTVsIRIjQygNYRXB0hvTdj
+iLX3I/tMIt/mzUN1oFoHR2RE1YGZhQB+NAIdAP//////////////////FqLguPA+
+E90pRVxcKj0CAQE=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls12-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls12-named.pem
new file mode 100644
index 000000000..afc6bd7e1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls12-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgVnKwEEDA==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls3-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls3-explicit.pem
new file mode 100644
index 000000000..3438927e6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls3-explicit.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PARAMETERS-----
+MHkCAQEwJQYHKoZIzj0BAjAaAgIAowYJKoZIzj0BAgMDMAkCAQMCAQYCAQcwBgQB
+AQQBAQQrBAL+E8BTe7wRrKoH15PeTm1eXJTu6AKJBw+wXTj/WDIfLoAFNtU4zNqj
+2QIVBAAAAAAAAAAAAAIBCKLgzA2Z+KXvAgEC
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls3-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls3-named.pem
new file mode 100644
index 000000000..859329078
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls3-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgVnKwEEAw==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls4-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls4-explicit.pem
new file mode 100644
index 000000000..2cd45a8c4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls4-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIGPAgEBMBwGByqGSM49AQIwEQIBcQYJKoZIzj0BAgMCAgEJMDcEDjCIJQym58f+
+ZJzoWCD3BA7ovuTT4iYHRBiL4OnHIwMVABDnI6sU1pbmdodWFRdW/r+Py0mpBB8E
+AJ1zYW819KsUB9c1YsEPAKUoMCd5WO6E0TFe0xiGAg8BAAAAAAAAANnM7Io55W8C
+AQI=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls4-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls4-named.pem
new file mode 100644
index 000000000..9a7887b2f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls4-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgVnKwEEBA==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls5-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls5-explicit.pem
new file mode 100644
index 000000000..d7bc1c2ca
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls5-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIG3AgEBMCUGByqGSM49AQIwGgICAKMGCSqGSM49AQIDAzAJAgEBAgECAgEIMEQE
+FQclRrVDUjSkIuB4lnX0MsiUNd5SQgQUyVF9BtUkDTz/OMdLILbNTW+d1NkDFQDS
+wPsVdghg3vHu9NaW5naHVhUXVAQrBAevaZiVRhA9eTKfzD10iA8zu+gDywHsIyEb
+WWat6h0/h/fqWEiu8LfKnwIVBAAAAAAAAAAAAAHmD8iCHMdNrq/BAgEC
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls5-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls5-named.pem
new file mode 100644
index 000000000..9f834d0c2
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls5-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgVnKwEEBQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls6-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls6-explicit.pem
new file mode 100644
index 000000000..2c97cb413
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls6-explicit.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PARAMETERS-----
+MIGLAgEBMBoGByqGSM49AQECDwDbfCq/YuNeZoB2vq0gizA3BA7bfCq/YuNeZoB2
+vq0giAQOZZ74ugQ5Fu7eiRFwKyIDFQAA9QsCjk1pbmdodWFRdSkEcng/sQQdBAlI
+cjmZWl7na1X5wvCYqJzlr4ckwKI+Dg/3dQACDwDbfCq/YuNedijfrGVhxQIBAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls6-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls6-named.pem
new file mode 100644
index 000000000..0678777d4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls6-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgVnKwEEBg==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls7-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls7-explicit.pem
new file mode 100644
index 000000000..120728ae7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls7-explicit.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PARAMETERS-----
+MIGvAgEBMCAGByqGSM49AQECFQD////////////////////+//+sczBDBBT/////
+///////////////+//+scAQUtOE00/tZ64urVydJBGZNWvUDiLoDFQC5m5mwmbMj
+4CcJpNaW5naHVhUXUQQpBFLcsDQpOhF+H0/xGzD3GZ0xRM5t/q/+8uMx8pbgcfoN
++Zgs/qfUPy4CFQEAAAAAAAAAAAAANR7nhqgY86GhawIBAQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls7-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls7-named.pem
new file mode 100644
index 000000000..690b9375a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls7-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgVnKwEEBw==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls8-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls8-explicit.pem
new file mode 100644
index 000000000..d8c3ef8bf
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls8-explicit.pem
@@ -0,0 +1,4 @@
+-----BEGIN EC PARAMETERS-----
+MFoCAQEwGgYHKoZIzj0BAQIPAP////////////////3nMAYEAQAEAQMEHQQAAAAA
+AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAACAg8BAAAAAAAAAezqVRrYN+kCAQE=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls8-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls8-named.pem
new file mode 100644
index 000000000..4737cbcc4
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls8-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgVnKwEECA==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls9-explicit.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls9-explicit.pem
new file mode 100644
index 000000000..383c5dce8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls9-explicit.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PARAMETERS-----
+MHICAQEwIAYHKoZIzj0BAQIVAP///////////////////////ICPMAYEAQAEAQME
+KQQAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAhUBAAAA
+AAAAAAAAAc3JiuDi3ldKvzMCAQE=
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls9-named.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls9-named.pem
new file mode 100644
index 000000000..0212b4a4d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_ecparam_data/valid/wap-wsg-idm-ecid-wtls9-named.pem
@@ -0,0 +1,3 @@
+-----BEGIN EC PARAMETERS-----
+BgVnKwEECQ==
+-----END EC PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_genrsa.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_genrsa.t
new file mode 100644
index 000000000..e16a9a404
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_genrsa.t
@@ -0,0 +1,54 @@
+#! /usr/bin/env perl
+# Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Spec;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_genrsa");
+
+plan tests => 5;
+
+# We want to know that an absurdly small number of bits isn't support
+is(run(app([ 'openssl', 'genrsa', '-3', '-out', 'genrsatest.pem', '8'])), 0, "genrsa -3 8");
+
+# Depending on the shared library, we might have different lower limits.
+# Let's find it! This is a simple binary search
+# ------------------------------------------------------------
+# NOTE: $good may need an update in the future
+# ------------------------------------------------------------
+note "Looking for lowest amount of bits";
+my $bad = 3; # Log2 of number of bits (2 << 3 == 8)
+my $good = 11; # Log2 of number of bits (2 << 11 == 2048)
+while ($good > $bad + 1) {
+ my $checked = int(($good + $bad + 1) / 2);
+ if (run(app([ 'openssl', 'genrsa', '-3', '-out', 'genrsatest.pem',
+ 2 ** $checked ], stderr => undef))) {
+ note 2 ** $checked, " bits is good";
+ $good = $checked;
+ } else {
+ note 2 ** $checked, " bits is bad";
+ $bad = $checked;
+ }
+}
+$good++ if $good == $bad;
+$good = 2 ** $good;
+note "Found lowest allowed amount of bits to be $good";
+
+ok(run(app([ 'openssl', 'genrsa', '-3', '-out', 'genrsatest.pem', $good ])),
+ "genrsa -3 $good");
+ok(run(app([ 'openssl', 'rsa', '-check', '-in', 'genrsatest.pem', '-noout' ])),
+ "rsa -check");
+ok(run(app([ 'openssl', 'genrsa', '-f4', '-out', 'genrsatest.pem', $good ])),
+ "genrsa -f4 $good");
+ok(run(app([ 'openssl', 'rsa', '-check', '-in', 'genrsatest.pem', '-noout' ])),
+ "rsa -check");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_mp_rsa.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_mp_rsa.t
new file mode 100644
index 000000000..9271dba04
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_mp_rsa.t
@@ -0,0 +1,111 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright 2017 BaishanCloud. All rights reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Spec;
+use OpenSSL::Test qw/:DEFAULT data_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_mp_rsa");
+
+plan tests => 31;
+
+ok(run(test(["rsa_mp_test"])), "running rsa multi prime test");
+
+my $cleartext = data_file("plain_text");
+
+my @test_param = (
+ # 3 primes, 2048-bit
+ {
+ primes => '3',
+ bits => '2048',
+ },
+ # 4 primes, 4096-bit
+ {
+ primes => '4',
+ bits => '4096',
+ },
+ # 5 primes, 8192-bit
+ {
+ primes => '5',
+ bits => '8192',
+ },
+);
+
+# genrsa
+run_mp_tests(0);
+# evp
+run_mp_tests(1);
+
+sub run_mp_tests {
+ my $evp = shift;
+
+ foreach my $param (@test_param) {
+ my $primes = $param->{primes};
+ my $bits = $param->{bits};
+ my $name = ($evp ? "evp" : "") . "${bits}p${primes}";
+
+ if ($evp) {
+ ok(run(app([ 'openssl', 'genpkey', '-out', 'rsamptest.pem',
+ '-algorithm', 'RSA', '-pkeyopt', "rsa_keygen_primes:$primes",
+ '-pkeyopt', "rsa_keygen_bits:$bits"])), "genrsa $name");
+ } else {
+ ok(run(app([ 'openssl', 'genrsa', '-out', 'rsamptest.pem',
+ '-primes', $primes, $bits])), "genrsa $name");
+ }
+
+ ok(run(app([ 'openssl', 'rsa', '-check', '-in', 'rsamptest.pem',
+ '-noout'])), "rsa -check $name");
+ if ($evp) {
+ ok(run(app([ 'openssl', 'pkeyutl', '-inkey', 'rsamptest.pem',
+ '-encrypt', '-in', $cleartext,
+ '-out', 'rsamptest.enc' ])), "rsa $name encrypt");
+ ok(run(app([ 'openssl', 'pkeyutl', '-inkey', 'rsamptest.pem',
+ '-decrypt', '-in', 'rsamptest.enc',
+ '-out', 'rsamptest.dec' ])), "rsa $name decrypt");
+ } else {
+ ok(run(app([ 'openssl', 'rsautl', '-inkey', 'rsamptest.pem',
+ '-encrypt', '-in', $cleartext,
+ '-out', 'rsamptest.enc' ])), "rsa $name encrypt");
+ ok(run(app([ 'openssl', 'rsautl', '-inkey', 'rsamptest.pem',
+ '-decrypt', '-in', 'rsamptest.enc',
+ '-out', 'rsamptest.dec' ])), "rsa $name decrypt");
+ }
+
+ ok(check_msg(), "rsa $name check result");
+
+ # clean up temp files
+ unlink 'rsamptest.pem';
+ unlink 'rsamptest.enc';
+ unlink 'rsamptest.dec';
+ }
+}
+
+sub check_msg {
+ my $msg;
+ my $dec;
+
+ open(my $fh, "<", $cleartext) or return 0;
+ binmode $fh;
+ read($fh, $msg, 10240);
+ close $fh;
+ open($fh, "<", "rsamptest.dec") or return 0;
+ binmode $fh;
+ read($fh, $dec, 10240);
+ close $fh;
+
+ if ($msg ne $dec) {
+ print STDERR "cleartext and decrypted are not the same";
+ return 0;
+ }
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_mp_rsa_data/plain_text b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_mp_rsa_data/plain_text
new file mode 100644
index 000000000..60d11c0f6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_mp_rsa_data/plain_text
@@ -0,0 +1,4 @@
+It was the best of times, it was the worst of times,
+it was the age of wisdom, it was the age of foolishness,
+it was the epoch of belief, it was the epoch of incredulity,
+it was the season of Light, it was the season of Darkness.
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_out_option.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_out_option.t
new file mode 100644
index 000000000..9c2a95482
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_out_option.t
@@ -0,0 +1,73 @@
+#! /usr/bin/env perl
+# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Spec;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_out_option");
+
+plan tests => 4;
+
+# Test 1
+SKIP: {
+ # Paths that should generate failure when trying to write to them.
+ # Directories are a safe bet for failure on most platforms.
+ # Notably, this isn't true on OpenVMS, as a default file name is
+ # appended under the hood when trying to "write" to a directory spec.
+ # From observation, that file is '.' (i.e. a file with no file name
+ # and no extension), so '[]' gets translated to '[].'
+ skip 'Directories become writable files on OpenVMS', 1 if $^O eq 'VMS';
+
+ # Note that directories must end with a slash here, because of how
+ # File::Spec massages them into directory specs on some platforms.
+ my $path = File::Spec->canonpath('./');
+ ok(!run(app([ 'openssl', 'rand', '-out', $path, '1'])),
+ "invalid output path: $path");
+}
+
+# Test 2
+{
+ my $path = File::Spec->canonpath('randomname.bin');
+ ok(run(app([ 'openssl', 'rand', '-out', $path, '1'])),
+ "valid output path: $path");
+}
+
+# Test 3
+{
+ # Test for trying to create a file in a non-exist directory
+ my $rand_path = "";
+ do {
+ my @chars = ("A".."Z", "a".."z", "0".."9");
+ $rand_path .= $chars[rand @chars] for 1..32;
+ } while (-d File::Spec->catdir('.', $rand_path));
+ $rand_path .= "/randomname.bin";
+
+ my $path = File::Spec->canonpath($rand_path);
+ ok(!run(app([ 'openssl', 'rand', '-out', $path, '1'])),
+ "invalid output path: $path");
+}
+
+# Test 4
+SKIP: {
+ skip "It's not safe to use perl's idea of the NULL device in an explicitly cross compiled build", 1
+ unless (config('CROSS_COMPILE') // '') eq '';
+
+ my $path = File::Spec->canonpath(File::Spec->devnull());
+ ok(run(app([ 'openssl', 'rand', '-out', $path, '1'])),
+ "valid output path: $path");
+}
+
+# Cleanup
+END {
+ unlink 'randomname.bin' if -f 'randomname.bin';
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_rsa.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_rsa.t
new file mode 100644
index 000000000..598882170
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_rsa.t
@@ -0,0 +1,47 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Spec;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_rsa");
+
+plan tests => 6;
+
+require_ok(srctop_file('test','recipes','tconversion.pl'));
+
+ok(run(test(["rsa_test"])), "running rsatest");
+
+ok(run(app([ 'openssl', 'rsa', '-check', '-in', srctop_file('test', 'testrsa.pem'), '-noout'])), "rsa -check");
+
+ SKIP: {
+ skip "Skipping rsa conversion test", 3
+ if disabled("rsa");
+
+ subtest 'rsa conversions -- private key' => sub {
+ tconversion("rsa", srctop_file("test","testrsa.pem"));
+ };
+ subtest 'rsa conversions -- private key PKCS#8' => sub {
+ tconversion("rsa", srctop_file("test","testrsa.pem"), "pkey");
+ };
+}
+
+ SKIP: {
+ skip "Skipping msblob conversion test", 1
+ if disabled("rsa") || disabled("dsa");
+
+ subtest 'rsa conversions -- public key' => sub {
+ tconversion("msb", srctop_file("test","testrsapub.pem"), "rsa",
+ "-pubin", "-pubout");
+ };
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_rsapss.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_rsapss.t
new file mode 100644
index 000000000..65ec6f3d7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/15-test_rsapss.t
@@ -0,0 +1,49 @@
+#! /usr/bin/env perl
+# Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Spec;
+use OpenSSL::Test qw/:DEFAULT with srctop_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_rsapss");
+
+plan tests => 5;
+
+#using test/testrsa.pem which happens to be a 512 bit RSA
+ok(run(app(['openssl', 'dgst', '-sign', srctop_file('test', 'testrsa.pem'), '-sha1',
+ '-sigopt', 'rsa_padding_mode:pss', '-sigopt', 'rsa_pss_saltlen:max',
+ '-sigopt', 'rsa_mgf1_md:sha512', '-out', 'testrsapss.sig',
+ srctop_file('test', 'testrsa.pem')])),
+ "openssl dgst -sign");
+
+with({ exit_checker => sub { return shift == 1; } },
+ sub { ok(run(app(['openssl', 'dgst', '-sign', srctop_file('test', 'testrsa.pem'), '-sha512',
+ '-sigopt', 'rsa_padding_mode:pss', '-sigopt', 'rsa_pss_saltlen:max',
+ '-sigopt', 'rsa_mgf1_md:sha512', srctop_file('test', 'testrsa.pem')])),
+ "openssl dgst -sign, expect to fail gracefully");
+ ok(run(app(['openssl', 'dgst', '-sign', srctop_file('test', 'testrsa.pem'), '-sha512',
+ '-sigopt', 'rsa_padding_mode:pss', '-sigopt', 'rsa_pss_saltlen:2147483647',
+ '-sigopt', 'rsa_mgf1_md:sha1', srctop_file('test', 'testrsa.pem')])),
+ "openssl dgst -sign, expect to fail gracefully");
+ ok(run(app(['openssl', 'dgst', '-prverify', srctop_file('test', 'testrsa.pem'), '-sha512',
+ '-sigopt', 'rsa_padding_mode:pss', '-sigopt', 'rsa_pss_saltlen:max',
+ '-sigopt', 'rsa_mgf1_md:sha512', '-signature', 'testrsapss.sig',
+ srctop_file('test', 'testrsa.pem')])),
+ "openssl dgst -prverify, expect to fail gracefully");
+ });
+
+ok(run(app(['openssl', 'dgst', '-prverify', srctop_file('test', 'testrsa.pem'), '-sha1',
+ '-sigopt', 'rsa_padding_mode:pss', '-sigopt', 'rsa_pss_saltlen:max',
+ '-sigopt', 'rsa_mgf1_md:sha512', '-signature', 'testrsapss.sig',
+ srctop_file('test', 'testrsa.pem')])),
+ "openssl dgst -prverify");
+unlink 'testrsapss.sig';
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/20-test_enc.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/20-test_enc.t
new file mode 100644
index 000000000..32a30165f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/20-test_enc.t
@@ -0,0 +1,70 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Spec::Functions qw/catfile/;
+use File::Copy;
+use File::Compare qw/compare_text/;
+use File::Basename;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_enc");
+
+# We do it this way, because setup() may have moved us around,
+# so the directory portion of $0 might not be correct any more.
+# However, the name hasn't changed.
+my $testsrc = srctop_file("test","recipes",basename($0));
+
+my $test = catfile(".", "p");
+
+my $cmd = "openssl";
+
+my $ciphersstatus = undef;
+my @ciphers =
+ map { s/^\s+//; s/\s+$//; split /\s+/ }
+ run(app([$cmd, "list", "-cipher-commands"]),
+ capture => 1, statusvar => \$ciphersstatus);
+
+plan tests => 2 + (scalar @ciphers)*2;
+
+ SKIP: {
+ skip "Problems getting ciphers...", 1 + scalar(@ciphers)
+ unless ok($ciphersstatus, "Running 'openssl list -cipher-commands'");
+ unless (ok(copy($testsrc, $test), "Copying $testsrc to $test")) {
+ diag($!);
+ skip "Not initialized, skipping...", scalar(@ciphers);
+ }
+
+ foreach my $c (@ciphers) {
+ my %variant = ("$c" => [],
+ "$c base64" => [ "-a" ]);
+
+ foreach my $t (sort keys %variant) {
+ my $cipherfile = "$test.$c.cipher";
+ my $clearfile = "$test.$c.clear";
+ my @e = ( "$c", "-bufsize", "113", @{$variant{$t}}, "-e", "-k", "test" );
+ my @d = ( "$c", "-bufsize", "157", @{$variant{$t}}, "-d", "-k", "test" );
+ if ($c eq "cat") {
+ $cipherfile = "$test.cipher";
+ $clearfile = "$test.clear";
+ @e = ( "enc", @{$variant{$t}}, "-e" );
+ @d = ( "enc", @{$variant{$t}}, "-d" );
+ }
+
+ ok(run(app([$cmd, @e, "-in", $test, "-out", $cipherfile]))
+ && run(app([$cmd, @d, "-in", $cipherfile, "-out", $clearfile]))
+ && compare_text($test,$clearfile) == 0, $t);
+ unlink $cipherfile, $clearfile;
+ }
+ }
+}
+
+unlink $test;
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/20-test_enc_more.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/20-test_enc_more.t
new file mode 100644
index 000000000..2691060c7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/20-test_enc_more.t
@@ -0,0 +1,61 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Spec::Functions qw/catfile/;
+use File::Copy;
+use File::Compare qw/compare_text/;
+use File::Basename;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_evp_more");
+
+my $testsrc = srctop_file("test", "recipes", basename($0));
+
+my $cipherlist = undef;
+my $plaintext = catfile(".", "testdatafile");
+my $fail = "";
+my $cmd = "openssl";
+
+my $ciphersstatus = undef;
+my @ciphers =
+ grep(! /wrap|^$|^[^-]/,
+ (map { split /\s+/ }
+ run(app([$cmd, "enc", "-ciphers"]),
+ capture => 1, statusvar => \$ciphersstatus)));
+
+plan tests => 2 + scalar @ciphers;
+
+SKIP: {
+ skip "Problems getting ciphers...", 1 + scalar(@ciphers)
+ unless ok($ciphersstatus, "Running 'openssl enc -ciphers'");
+ unless (ok(copy($testsrc, $plaintext), "Copying $testsrc to $plaintext")) {
+ diag($!);
+ skip "Not initialized, skipping...", scalar(@ciphers);
+ }
+
+ foreach my $cipher (@ciphers) {
+ my $ciphername = substr $cipher, 1;
+ my $cipherfile = "$plaintext.$ciphername.cipher";
+ my $clearfile = "$plaintext.$ciphername.clear";
+ my @common = ( $cmd, "enc", "$cipher", "-k", "test" );
+
+ ok(run(app([@common, "-e", "-in", $plaintext, "-out", $cipherfile]))
+ && compare_text($plaintext, $cipherfile) != 0
+ && run(app([@common, "-d", "-in", $cipherfile, "-out", $clearfile]))
+ && compare_text($plaintext, $clearfile) == 0
+ , $ciphername);
+ unlink $cipherfile, $clearfile;
+ }
+}
+
+unlink $plaintext;
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/20-test_passwd.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/20-test_passwd.t
new file mode 100644
index 000000000..32aa7a317
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/20-test_passwd.t
@@ -0,0 +1,125 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use OpenSSL::Test;
+use OpenSSL::Test::Utils;
+
+setup("test_passwd");
+
+# The following tests are an adaptation of those in
+# https://www.akkadia.org/drepper/SHA-crypt.txt
+my @sha_tests =
+ ({ type => '5',
+ salt => 'saltstring',
+ key => 'Hello world!',
+ expected => '$5$saltstring$5B8vYYiY.CVt1RlTTf8KbXBH3hsxY/GNooZaBBGWEc5' },
+ { type => '5',
+ salt => 'rounds=10000$saltstringsaltstring',
+ key => 'Hello world!',
+ expected => '$5$rounds=10000$saltstringsaltst$3xv.VbSHBb41AL9AvLeujZkZRBAwqFMz2.opqey6IcA' },
+ { type => '5',
+ salt => 'rounds=5000$toolongsaltstring',
+ key => 'This is just a test',
+ expected => '$5$rounds=5000$toolongsaltstrin$Un/5jzAHMgOGZ5.mWJpuVolil07guHPvOW8mGRcvxa5' },
+ { type => '5',
+ salt => 'rounds=1400$anotherlongsaltstring',
+ key => 'a very much longer text to encrypt. This one even stretches over morethan one line.',
+ expected => '$5$rounds=1400$anotherlongsalts$Rx.j8H.h8HjEDGomFU8bDkXm3XIUnzyxf12oP84Bnq1' },
+ { type => '5',
+ salt => 'rounds=77777$short',
+ key => 'we have a short salt string but not a short password',
+ expected => '$5$rounds=77777$short$JiO1O3ZpDAxGJeaDIuqCoEFysAe1mZNJRs3pw0KQRd/' },
+ { type => '5',
+ salt => 'rounds=123456$asaltof16chars..',
+ key => 'a short string',
+ expected => '$5$rounds=123456$asaltof16chars..$gP3VQ/6X7UUEW3HkBn2w1/Ptq2jxPyzV/cZKmF/wJvD' },
+ { type => '5',
+ salt => 'rounds=10$roundstoolow',
+ key => 'the minimum number is still observed',
+ expected => '$5$rounds=1000$roundstoolow$yfvwcWrQ8l/K0DAWyuPMDNHpIVlTQebY9l/gL972bIC' },
+ { type => '6',
+ salt => 'saltstring',
+ key => 'Hello world!',
+ expected => '$6$saltstring$svn8UoSVapNtMuq1ukKS4tPQd8iKwSMHWjl/O817G3uBnIFNjnQJuesI68u4OTLiBFdcbYEdFCoEOfaS35inz1' },
+ { type => '6',
+ salt => 'rounds=10000$saltstringsaltstring',
+ key => 'Hello world!',
+ expected => '$6$rounds=10000$saltstringsaltst$OW1/O6BYHV6BcXZu8QVeXbDWra3Oeqh0sbHbbMCVNSnCM/UrjmM0Dp8vOuZeHBy/YTBmSK6H9qs/y3RnOaw5v.' },
+ { type => '6',
+ salt => 'rounds=5000$toolongsaltstring',
+ key => 'This is just a test',
+ expected => '$6$rounds=5000$toolongsaltstrin$lQ8jolhgVRVhY4b5pZKaysCLi0QBxGoNeKQzQ3glMhwllF7oGDZxUhx1yxdYcz/e1JSbq3y6JMxxl8audkUEm0' },
+ { type => '6',
+ salt => 'rounds=1400$anotherlongsaltstring',
+ key => 'a very much longer text to encrypt. This one even stretches over morethan one line.',
+ expected => '$6$rounds=1400$anotherlongsalts$POfYwTEok97VWcjxIiSOjiykti.o/pQs.wPvMxQ6Fm7I6IoYN3CmLs66x9t0oSwbtEW7o7UmJEiDwGqd8p4ur1' },
+ { type => '6',
+ salt => 'rounds=77777$short',
+ key => 'we have a short salt string but not a short password',
+ expected => '$6$rounds=77777$short$WuQyW2YR.hBNpjjRhpYD/ifIw05xdfeEyQoMxIXbkvr0gge1a1x3yRULJ5CCaUeOxFmtlcGZelFl5CxtgfiAc0' },
+ { type => '6',
+ salt => 'rounds=123456$asaltof16chars..',
+ key => 'a short string',
+ expected => '$6$rounds=123456$asaltof16chars..$BtCwjqMJGx5hrJhZywWvt0RLE8uZ4oPwcelCjmw2kSYu.Ec6ycULevoBK25fs2xXgMNrCzIMVcgEJAstJeonj1' },
+ { type => '6',
+ salt => 'rounds=10$roundstoolow',
+ key => 'the minimum number is still observed',
+ expected => '$6$rounds=1000$roundstoolow$kUMsbe306n21p9R.FRkW3IGn.S9NPN0x50YhH1xhLsPuWGsUSklZt58jaTfF4ZEQpyUNGc0dqbpBYYBaHHrsX.' }
+ );
+
+plan tests => (disabled("des") ? 9 : 11) + scalar @sha_tests;
+
+
+ok(compare1stline_re([qw{openssl passwd password}], '^.{13}\R$'),
+ 'crypt password with random salt') if !disabled("des");
+ok(compare1stline_re([qw{openssl passwd -1 password}], '^\$1\$.{8}\$.{22}\R$'),
+ 'BSD style MD5 password with random salt');
+ok(compare1stline_re([qw{openssl passwd -apr1 password}], '^\$apr1\$.{8}\$.{22}\R$'),
+ 'Apache style MD5 password with random salt');
+ok(compare1stline_re([qw{openssl passwd -5 password}], '^\$5\$.{16}\$.{43}\R$'),
+ 'SHA256 password with random salt');
+ok(compare1stline_re([qw{openssl passwd -6 password}], '^\$6\$.{16}\$.{86}\R$'),
+ 'Apache SHA512 password with random salt');
+
+ok(compare1stline([qw{openssl passwd -salt xx password}], 'xxj31ZMTZzkVA'),
+ 'crypt password with salt xx') if !disabled("des");
+ok(compare1stline([qw{openssl passwd -salt xxxxxxxx -1 password}], '$1$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.'),
+ 'BSD style MD5 password with salt xxxxxxxx');
+ok(compare1stline([qw{openssl passwd -salt xxxxxxxx -apr1 password}], '$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0'),
+ 'Apache style MD5 password with salt xxxxxxxx');
+ok(compare1stline([qw{openssl passwd -salt xxxxxxxx -aixmd5 password}], 'xxxxxxxx$8Oaipk/GPKhC64w/YVeFD/'),
+ 'AIX style MD5 password with salt xxxxxxxx');
+ok(compare1stline([qw{openssl passwd -salt xxxxxxxxxxxxxxxx -5 password}], '$5$xxxxxxxxxxxxxxxx$fHytsM.wVD..zPN/h3i40WJRggt/1f73XkAC/gkelkB'),
+ 'SHA256 password with salt xxxxxxxxxxxxxxxx');
+ok(compare1stline([qw{openssl passwd -salt xxxxxxxxxxxxxxxx -6 password}], '$6$xxxxxxxxxxxxxxxx$VjGUrXBG6/8yW0f6ikBJVOb/lK/Tm9LxHJmFfwMvT7cpk64N9BW7ZQhNeMXAYFbOJ6HDG7wb0QpxJyYQn0rh81'),
+ 'SHA512 password with salt xxxxxxxxxxxxxxxx');
+
+foreach (@sha_tests) {
+ ok(compare1stline([qw{openssl passwd}, '-'.$_->{type}, '-salt', $_->{salt},
+ $_->{key}], $_->{expected}),
+ { 5 => 'SHA256', 6 => 'SHA512' }->{$_->{type}} . ' password with salt ' . $_->{salt});
+}
+
+
+sub compare1stline_re {
+ my ($cmdarray, $regexp) = @_;
+ my @lines = run(app($cmdarray), capture => 1);
+
+ return $lines[0] =~ m|$regexp|;
+}
+
+sub compare1stline {
+ my ($cmdarray, $str) = @_;
+ my @lines = run(app($cmdarray), capture => 1);
+
+ return $lines[0] =~ m|^\Q${str}\E\R$|;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_crl.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_crl.t
new file mode 100644
index 000000000..456accbc2
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_crl.t
@@ -0,0 +1,53 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Spec;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_crl");
+
+plan tests => 7;
+
+require_ok(srctop_file('test','recipes','tconversion.pl'));
+
+my $pem = srctop_file("test/certs", "cyrillic_crl.pem");
+my $out = "cyrillic_crl.out";
+my $utf = srctop_file("test/certs", "cyrillic_crl.utf8");
+
+subtest 'crl conversions' => sub {
+ tconversion("crl", srctop_file("test","testcrl.pem"));
+};
+
+ok(run(test(['crltest'])));
+
+ok(compare1stline([qw{openssl crl -noout -fingerprint -in},
+ srctop_file('test', 'testcrl.pem')],
+ 'SHA1 Fingerprint=BA:F4:1B:AD:7A:9B:2F:09:16:BC:60:A7:0E:CE:79:2E:36:00:E7:B2'));
+ok(compare1stline([qw{openssl crl -noout -fingerprint -sha256 -in},
+ srctop_file('test', 'testcrl.pem')],
+ 'SHA256 Fingerprint=B3:A9:FD:A7:2E:8C:3D:DF:D0:F1:C3:1A:96:60:B5:FD:B0:99:7C:7F:0E:E4:34:F5:DB:87:62:36:BC:F1:BC:1B'));
+
+ok(run(app(["openssl", "crl", "-text", "-in", $pem, "-out", $out,
+ "-nameopt", "utf8"])));
+is(cmp_text($out, srctop_file("test/certs", "cyrillic_crl.utf8")),
+ 0, 'Comparing utf8 output');
+unlink $out;
+
+sub compare1stline {
+ my ($cmdarray, $str) = @_;
+ my @lines = run(app($cmdarray), capture => 1);
+
+ return 1 if $lines[0] =~ m|^\Q${str}\E\R$|;
+ note "Got ", $lines[0];
+ note "Expected ", $str;
+ return 0;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_d2i.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_d2i.t
new file mode 100644
index 000000000..688c8ed7a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_d2i.t
@@ -0,0 +1,93 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Spec;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_d2i");
+
+plan tests => 14;
+
+ok(run(test(["d2i_test", "X509", "decode",
+ srctop_file('test','d2i-tests','bad_cert.der')])),
+ "Running d2i_test bad_cert.der");
+
+ok(run(test(["d2i_test", "GENERAL_NAME", "decode",
+ srctop_file('test','d2i-tests','bad_generalname.der')])),
+ "Running d2i_test bad_generalname.der");
+
+ok(run(test(["d2i_test", "ASN1_ANY", "BIO",
+ srctop_file('test','d2i-tests','bad_bio.der')])),
+ "Running d2i_test bad_bio.der");
+# This test checks CVE-2016-2108. The data consists of an tag 258 and
+# two zero content octets. This is parsed as an ASN1_ANY type. If the
+# type is incorrectly interpreted as an ASN.1 INTEGER the two zero content
+# octets will be reject as invalid padding and this test will fail.
+# If the type is correctly interpreted it will by treated as an ASN1_STRING
+# type and the content octets copied verbatim.
+ok(run(test(["d2i_test", "ASN1_ANY", "OK",
+ srctop_file('test','d2i-tests','high_tag.der')])),
+ "Running d2i_test high_tag.der");
+
+# Above test data but interpreted as ASN.1 INTEGER: this will be rejected
+# because the tag is invalid.
+ok(run(test(["d2i_test", "ASN1_INTEGER", "decode",
+ srctop_file('test','d2i-tests','high_tag.der')])),
+ "Running d2i_test high_tag.der INTEGER");
+
+# Parse valid 0, 1 and -1 ASN.1 INTEGER as INTEGER or ANY.
+
+ok(run(test(["d2i_test", "ASN1_INTEGER", "OK",
+ srctop_file('test','d2i-tests','int0.der')])),
+ "Running d2i_test int0.der INTEGER");
+
+ok(run(test(["d2i_test", "ASN1_INTEGER", "OK",
+ srctop_file('test','d2i-tests','int1.der')])),
+ "Running d2i_test int1.der INTEGER");
+
+ok(run(test(["d2i_test", "ASN1_INTEGER", "OK",
+ srctop_file('test','d2i-tests','intminus1.der')])),
+ "Running d2i_test intminus1.der INTEGER");
+
+ok(run(test(["d2i_test", "ASN1_ANY", "OK",
+ srctop_file('test','d2i-tests','int0.der')])),
+ "Running d2i_test int0.der ANY");
+
+ok(run(test(["d2i_test", "ASN1_ANY", "OK",
+ srctop_file('test','d2i-tests','int1.der')])),
+ "Running d2i_test int1.der ANY");
+
+ok(run(test(["d2i_test", "ASN1_ANY", "OK",
+ srctop_file('test','d2i-tests','intminus1.der')])),
+ "Running d2i_test intminus1.der ANY");
+
+# Integers with illegal additional padding.
+
+ok(run(test(["d2i_test", "ASN1_INTEGER", "decode",
+ srctop_file('test','d2i-tests','bad-int-pad0.der')])),
+ "Running d2i_test bad-int-pad0.der INTEGER");
+
+ok(run(test(["d2i_test", "ASN1_INTEGER", "decode",
+ srctop_file('test','d2i-tests','bad-int-padminus1.der')])),
+ "Running d2i_test bad-int-padminus1.der INTEGER");
+
+SKIP: {
+ skip "No CMS support in this configuration", 1 if disabled("cms");
+
+ # Invalid CMS structure with decode error in CHOICE value.
+ # Test for CVE-2016-7053
+
+ ok(run(test(["d2i_test", "CMS_ContentInfo", "decode",
+ srctop_file('test','d2i-tests','bad-cms.der')])),
+ "Running d2i_test bad-cms.der CMS ContentInfo");
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_pkcs7.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_pkcs7.t
new file mode 100644
index 000000000..724326bab
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_pkcs7.t
@@ -0,0 +1,27 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Spec;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_pkcs7");
+
+plan tests => 3;
+
+require_ok(srctop_file('test','recipes','tconversion.pl'));
+
+subtest 'pkcs7 conversions -- pkcs7' => sub {
+ tconversion("p7", srctop_file("test", "testp7.pem"), "pkcs7");
+};
+subtest 'pkcs7 conversions -- pkcs7d' => sub {
+ tconversion("p7d", srctop_file("test", "pkcs7-1.pem"), "pkcs7");
+};
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_req.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_req.t
new file mode 100644
index 000000000..cb30061fc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_req.t
@@ -0,0 +1,151 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use OpenSSL::Test::Utils;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_req");
+
+plan tests => 12;
+
+require_ok(srctop_file('test','recipes','tconversion.pl'));
+
+open RND, ">>", ".rnd";
+print RND "string to make the random number generator think it has randomness";
+close RND;
+
+# What type of key to generate?
+my @req_new;
+if (disabled("rsa")) {
+ @req_new = ("-newkey", "dsa:".srctop_file("apps", "dsa512.pem"));
+} else {
+ @req_new = ("-new");
+ note("There should be a 2 sequences of .'s and some +'s.");
+ note("There should not be more that at most 80 per line");
+}
+
+# Check for duplicate -addext parameters, and one "working" case.
+my @addext_args = ( "openssl", "req", "-new", "-out", "testreq.pem",
+ "-config", srctop_file("test", "test.cnf"), @req_new );
+my $val = "subjectAltName=DNS:example.com";
+my $val2 = " " . $val;
+my $val3 = $val;
+$val3 =~ s/=/ =/;
+ok( run(app([@addext_args, "-addext", $val])));
+ok(!run(app([@addext_args, "-addext", $val, "-addext", $val])));
+ok(!run(app([@addext_args, "-addext", $val, "-addext", $val2])));
+ok(!run(app([@addext_args, "-addext", $val, "-addext", $val3])));
+ok(!run(app([@addext_args, "-addext", $val2, "-addext", $val3])));
+
+subtest "generating certificate requests with RSA" => sub {
+ plan tests => 2;
+
+ SKIP: {
+ skip "RSA is not supported by this OpenSSL build", 2
+ if disabled("rsa");
+
+ ok(run(app(["openssl", "req",
+ "-config", srctop_file("test", "test.cnf"),
+ "-new", "-out", "testreq.pem", "-utf8",
+ "-key", srctop_file("test", "testrsa.pem")])),
+ "Generating request");
+
+ ok(run(app(["openssl", "req",
+ "-config", srctop_file("test", "test.cnf"),
+ "-verify", "-in", "testreq.pem", "-noout"])),
+ "Verifying signature on request");
+ }
+};
+
+subtest "generating certificate requests with DSA" => sub {
+ plan tests => 2;
+
+ SKIP: {
+ skip "DSA is not supported by this OpenSSL build", 2
+ if disabled("dsa");
+
+ ok(run(app(["openssl", "req",
+ "-config", srctop_file("test", "test.cnf"),
+ "-new", "-out", "testreq.pem", "-utf8",
+ "-key", srctop_file("test", "testdsa.pem")])),
+ "Generating request");
+
+ ok(run(app(["openssl", "req",
+ "-config", srctop_file("test", "test.cnf"),
+ "-verify", "-in", "testreq.pem", "-noout"])),
+ "Verifying signature on request");
+ }
+};
+
+subtest "generating certificate requests with ECDSA" => sub {
+ plan tests => 2;
+
+ SKIP: {
+ skip "ECDSA is not supported by this OpenSSL build", 2
+ if disabled("ec");
+
+ ok(run(app(["openssl", "req",
+ "-config", srctop_file("test", "test.cnf"),
+ "-new", "-out", "testreq.pem", "-utf8",
+ "-key", srctop_file("test", "testec-p256.pem")])),
+ "Generating request");
+
+ ok(run(app(["openssl", "req",
+ "-config", srctop_file("test", "test.cnf"),
+ "-verify", "-in", "testreq.pem", "-noout"])),
+ "Verifying signature on request");
+ }
+};
+
+subtest "generating certificate requests" => sub {
+ plan tests => 2;
+
+ ok(run(app(["openssl", "req", "-config", srctop_file("test", "test.cnf"),
+ @req_new, "-out", "testreq.pem"])),
+ "Generating request");
+
+ ok(run(app(["openssl", "req", "-config", srctop_file("test", "test.cnf"),
+ "-verify", "-in", "testreq.pem", "-noout"])),
+ "Verifying signature on request");
+};
+
+my @openssl_args = ("req", "-config", srctop_file("apps", "openssl.cnf"));
+
+run_conversion('req conversions',
+ "testreq.pem");
+run_conversion('req conversions -- testreq2',
+ srctop_file("test", "testreq2.pem"));
+
+unlink "testkey.pem", "testreq.pem";
+
+sub run_conversion {
+ my $title = shift;
+ my $reqfile = shift;
+
+ subtest $title => sub {
+ run(app(["openssl", @openssl_args,
+ "-in", $reqfile, "-inform", "p",
+ "-noout", "-text"],
+ stderr => "req-check.err", stdout => undef));
+ open DATA, "req-check.err";
+ SKIP: {
+ plan skip_all => "skipping req conversion test for $reqfile"
+ if grep /Unknown Public Key/, map { s/\R//; } <DATA>;
+
+ tconversion("req", $reqfile, @openssl_args);
+ }
+ close DATA;
+ unlink "req-check.err";
+
+ done_testing();
+ };
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_sid.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_sid.t
new file mode 100644
index 000000000..863024dbd
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_sid.t
@@ -0,0 +1,28 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Spec;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_sid");
+
+plan skip_all => 'test_sid needs EC to run'
+ if disabled('ec');
+
+plan tests => 2;
+
+require_ok(srctop_file('test','recipes','tconversion.pl'));
+
+subtest 'sid conversions' => sub {
+ tconversion("sid", srctop_file("test","testsid.pem"), "sess_id");
+};
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_verify.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_verify.t
new file mode 100644
index 000000000..cf7842cdf
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_verify.t
@@ -0,0 +1,379 @@
+#! /usr/bin/env perl
+# Copyright 2015-2020 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Spec::Functions qw/canonpath/;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_verify");
+
+sub verify {
+ my ($cert, $purpose, $trusted, $untrusted, @opts) = @_;
+ my @args = qw(openssl verify -auth_level 1 -purpose);
+ my @path = qw(test certs);
+ push(@args, "$purpose", @opts);
+ for (@$trusted) { push(@args, "-trusted", srctop_file(@path, "$_.pem")) }
+ for (@$untrusted) { push(@args, "-untrusted", srctop_file(@path, "$_.pem")) }
+ push(@args, srctop_file(@path, "$cert.pem"));
+ run(app([@args]));
+}
+
+plan tests => 137;
+
+# Canonical success
+ok(verify("ee-cert", "sslserver", ["root-cert"], ["ca-cert"]),
+ "accept compat trust");
+
+# Root CA variants
+ok(!verify("ee-cert", "sslserver", [qw(root-nonca)], [qw(ca-cert)]),
+ "fail trusted non-ca root");
+ok(!verify("ee-cert", "sslserver", [qw(nroot+serverAuth)], [qw(ca-cert)]),
+ "fail server trust non-ca root");
+ok(!verify("ee-cert", "sslserver", [qw(nroot+anyEKU)], [qw(ca-cert)]),
+ "fail wildcard trust non-ca root");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert2)], [qw(ca-cert)]),
+ "fail wrong root key");
+ok(!verify("ee-cert", "sslserver", [qw(root-name2)], [qw(ca-cert)]),
+ "fail wrong root DN");
+
+# Explicit trust/purpose combinations
+#
+ok(verify("ee-cert", "sslserver", [qw(sroot-cert)], [qw(ca-cert)]),
+ "accept server purpose");
+ok(!verify("ee-cert", "sslserver", [qw(croot-cert)], [qw(ca-cert)]),
+ "fail client purpose");
+ok(verify("ee-cert", "sslserver", [qw(root+serverAuth)], [qw(ca-cert)]),
+ "accept server trust");
+ok(verify("ee-cert", "sslserver", [qw(sroot+serverAuth)], [qw(ca-cert)]),
+ "accept server trust with server purpose");
+ok(verify("ee-cert", "sslserver", [qw(croot+serverAuth)], [qw(ca-cert)]),
+ "accept server trust with client purpose");
+# Wildcard trust
+ok(verify("ee-cert", "sslserver", [qw(root+anyEKU)], [qw(ca-cert)]),
+ "accept wildcard trust");
+ok(verify("ee-cert", "sslserver", [qw(sroot+anyEKU)], [qw(ca-cert)]),
+ "accept wildcard trust with server purpose");
+ok(verify("ee-cert", "sslserver", [qw(croot+anyEKU)], [qw(ca-cert)]),
+ "accept wildcard trust with client purpose");
+# Inapplicable mistrust
+ok(verify("ee-cert", "sslserver", [qw(root-clientAuth)], [qw(ca-cert)]),
+ "accept client mistrust");
+ok(verify("ee-cert", "sslserver", [qw(sroot-clientAuth)], [qw(ca-cert)]),
+ "accept client mistrust with server purpose");
+ok(!verify("ee-cert", "sslserver", [qw(croot-clientAuth)], [qw(ca-cert)]),
+ "fail client mistrust with client purpose");
+# Inapplicable trust
+ok(!verify("ee-cert", "sslserver", [qw(root+clientAuth)], [qw(ca-cert)]),
+ "fail client trust");
+ok(!verify("ee-cert", "sslserver", [qw(sroot+clientAuth)], [qw(ca-cert)]),
+ "fail client trust with server purpose");
+ok(!verify("ee-cert", "sslserver", [qw(croot+clientAuth)], [qw(ca-cert)]),
+ "fail client trust with client purpose");
+# Server mistrust
+ok(!verify("ee-cert", "sslserver", [qw(root-serverAuth)], [qw(ca-cert)]),
+ "fail rejected EKU");
+ok(!verify("ee-cert", "sslserver", [qw(sroot-serverAuth)], [qw(ca-cert)]),
+ "fail server mistrust with server purpose");
+ok(!verify("ee-cert", "sslserver", [qw(croot-serverAuth)], [qw(ca-cert)]),
+ "fail server mistrust with client purpose");
+# Wildcard mistrust
+ok(!verify("ee-cert", "sslserver", [qw(root-anyEKU)], [qw(ca-cert)]),
+ "fail wildcard mistrust");
+ok(!verify("ee-cert", "sslserver", [qw(sroot-anyEKU)], [qw(ca-cert)]),
+ "fail wildcard mistrust with server purpose");
+ok(!verify("ee-cert", "sslserver", [qw(croot-anyEKU)], [qw(ca-cert)]),
+ "fail wildcard mistrust with client purpose");
+
+# Check that trusted-first is on by setting up paths to different roots
+# depending on whether the intermediate is the trusted or untrusted one.
+#
+ok(verify("ee-cert", "sslserver", [qw(root-serverAuth root-cert2 ca-root2)],
+ [qw(ca-cert)]),
+ "accept trusted-first path");
+ok(verify("ee-cert", "sslserver", [qw(root-cert root2+serverAuth ca-root2)],
+ [qw(ca-cert)]),
+ "accept trusted-first path with server trust");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert root2-serverAuth ca-root2)],
+ [qw(ca-cert)]),
+ "fail trusted-first path with server mistrust");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert root2+clientAuth ca-root2)],
+ [qw(ca-cert)]),
+ "fail trusted-first path with client trust");
+
+# CA variants
+ok(!verify("ee-cert", "sslserver", [qw(root-cert)], [qw(ca-nonca)]),
+ "fail non-CA untrusted intermediate");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert)], [qw(ca-nonbc)]),
+ "fail non-CA untrusted intermediate");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert ca-nonca)], []),
+ "fail non-CA trust-store intermediate");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert ca-nonbc)], []),
+ "fail non-CA trust-store intermediate");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert nca+serverAuth)], []),
+ "fail non-CA server trust intermediate");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert nca+anyEKU)], []),
+ "fail non-CA wildcard trust intermediate");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert)], [qw(ca-cert2)]),
+ "fail wrong intermediate CA key");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert)], [qw(ca-name2)]),
+ "fail wrong intermediate CA DN");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert)], [qw(ca-root2)]),
+ "fail wrong intermediate CA issuer");
+ok(!verify("ee-cert", "sslserver", [], [qw(ca-cert)], "-partial_chain"),
+ "fail untrusted partial chain");
+ok(verify("ee-cert", "sslserver", [qw(ca-cert)], [], "-partial_chain"),
+ "accept trusted partial chain");
+ok(verify("ee-cert", "sslserver", [qw(sca-cert)], [], "-partial_chain"),
+ "accept partial chain with server purpose");
+ok(!verify("ee-cert", "sslserver", [qw(cca-cert)], [], "-partial_chain"),
+ "fail partial chain with client purpose");
+ok(verify("ee-cert", "sslserver", [qw(ca+serverAuth)], [], "-partial_chain"),
+ "accept server trust partial chain");
+ok(verify("ee-cert", "sslserver", [qw(cca+serverAuth)], [], "-partial_chain"),
+ "accept server trust client purpose partial chain");
+ok(verify("ee-cert", "sslserver", [qw(ca-clientAuth)], [], "-partial_chain"),
+ "accept client mistrust partial chain");
+ok(verify("ee-cert", "sslserver", [qw(ca+anyEKU)], [], "-partial_chain"),
+ "accept wildcard trust partial chain");
+ok(!verify("ee-cert", "sslserver", [], [qw(ca+serverAuth)], "-partial_chain"),
+ "fail untrusted partial issuer with ignored server trust");
+ok(!verify("ee-cert", "sslserver", [qw(ca-serverAuth)], [], "-partial_chain"),
+ "fail server mistrust partial chain");
+ok(!verify("ee-cert", "sslserver", [qw(ca+clientAuth)], [], "-partial_chain"),
+ "fail client trust partial chain");
+ok(!verify("ee-cert", "sslserver", [qw(ca-anyEKU)], [], "-partial_chain"),
+ "fail wildcard mistrust partial chain");
+
+# We now test auxiliary trust even for intermediate trusted certs without
+# -partial_chain. Note that "-trusted_first" is now always on and cannot
+# be disabled.
+ok(verify("ee-cert", "sslserver", [qw(root-cert ca+serverAuth)], [qw(ca-cert)]),
+ "accept server trust");
+ok(verify("ee-cert", "sslserver", [qw(root-cert ca+anyEKU)], [qw(ca-cert)]),
+ "accept wildcard trust");
+ok(verify("ee-cert", "sslserver", [qw(root-cert sca-cert)], [qw(ca-cert)]),
+ "accept server purpose");
+ok(verify("ee-cert", "sslserver", [qw(root-cert sca+serverAuth)], [qw(ca-cert)]),
+ "accept server trust and purpose");
+ok(verify("ee-cert", "sslserver", [qw(root-cert sca+anyEKU)], [qw(ca-cert)]),
+ "accept wildcard trust and server purpose");
+ok(verify("ee-cert", "sslserver", [qw(root-cert sca-clientAuth)], [qw(ca-cert)]),
+ "accept client mistrust and server purpose");
+ok(verify("ee-cert", "sslserver", [qw(root-cert cca+serverAuth)], [qw(ca-cert)]),
+ "accept server trust and client purpose");
+ok(verify("ee-cert", "sslserver", [qw(root-cert cca+anyEKU)], [qw(ca-cert)]),
+ "accept wildcard trust and client purpose");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert cca-cert)], [qw(ca-cert)]),
+ "fail client purpose");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert ca-anyEKU)], [qw(ca-cert)]),
+ "fail wildcard mistrust");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert ca-serverAuth)], [qw(ca-cert)]),
+ "fail server mistrust");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert ca+clientAuth)], [qw(ca-cert)]),
+ "fail client trust");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert sca+clientAuth)], [qw(ca-cert)]),
+ "fail client trust and server purpose");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert cca+clientAuth)], [qw(ca-cert)]),
+ "fail client trust and client purpose");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert cca-serverAuth)], [qw(ca-cert)]),
+ "fail server mistrust and client purpose");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert cca-clientAuth)], [qw(ca-cert)]),
+ "fail client mistrust and client purpose");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert sca-serverAuth)], [qw(ca-cert)]),
+ "fail server mistrust and server purpose");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert sca-anyEKU)], [qw(ca-cert)]),
+ "fail wildcard mistrust and server purpose");
+ok(!verify("ee-cert", "sslserver", [qw(root-cert cca-anyEKU)], [qw(ca-cert)]),
+ "fail wildcard mistrust and client purpose");
+
+# EE variants
+ok(verify("ee-client", "sslclient", [qw(root-cert)], [qw(ca-cert)]),
+ "accept client chain");
+ok(!verify("ee-client", "sslserver", [qw(root-cert)], [qw(ca-cert)]),
+ "fail server leaf purpose");
+ok(!verify("ee-cert", "sslclient", [qw(root-cert)], [qw(ca-cert)]),
+ "fail client leaf purpose");
+ok(!verify("ee-cert2", "sslserver", [qw(root-cert)], [qw(ca-cert)]),
+ "fail wrong intermediate CA key");
+ok(!verify("ee-name2", "sslserver", [qw(root-cert)], [qw(ca-cert)]),
+ "fail wrong intermediate CA DN");
+ok(!verify("ee-expired", "sslserver", [qw(root-cert)], [qw(ca-cert)]),
+ "fail expired leaf");
+ok(verify("ee-cert", "sslserver", [qw(ee-cert)], [], "-partial_chain"),
+ "accept last-resort direct leaf match");
+ok(verify("ee-client", "sslclient", [qw(ee-client)], [], "-partial_chain"),
+ "accept last-resort direct leaf match");
+ok(!verify("ee-cert", "sslserver", [qw(ee-client)], [], "-partial_chain"),
+ "fail last-resort direct leaf non-match");
+ok(verify("ee-cert", "sslserver", [qw(ee+serverAuth)], [], "-partial_chain"),
+ "accept direct match with server trust");
+ok(!verify("ee-cert", "sslserver", [qw(ee-serverAuth)], [], "-partial_chain"),
+ "fail direct match with server mistrust");
+ok(verify("ee-client", "sslclient", [qw(ee+clientAuth)], [], "-partial_chain"),
+ "accept direct match with client trust");
+ok(!verify("ee-client", "sslclient", [qw(ee-clientAuth)], [], "-partial_chain"),
+ "reject direct match with client mistrust");
+ok(verify("ee-pathlen", "sslserver", [qw(root-cert)], [qw(ca-cert)]),
+ "accept non-ca with pathlen:0 by default");
+ok(!verify("ee-pathlen", "sslserver", [qw(root-cert)], [qw(ca-cert)], "-x509_strict"),
+ "reject non-ca with pathlen:0 with strict flag");
+
+# Proxy certificates
+ok(!verify("pc1-cert", "sslclient", [qw(root-cert)], [qw(ee-client ca-cert)]),
+ "fail to accept proxy cert without -allow_proxy_certs");
+ok(verify("pc1-cert", "sslclient", [qw(root-cert)], [qw(ee-client ca-cert)],
+ "-allow_proxy_certs"),
+ "accept proxy cert 1");
+ok(verify("pc2-cert", "sslclient", [qw(root-cert)], [qw(pc1-cert ee-client ca-cert)],
+ "-allow_proxy_certs"),
+ "accept proxy cert 2");
+ok(!verify("bad-pc3-cert", "sslclient", [qw(root-cert)], [qw(pc1-cert ee-client ca-cert)],
+ "-allow_proxy_certs"),
+ "fail proxy cert with incorrect subject");
+ok(!verify("bad-pc4-cert", "sslclient", [qw(root-cert)], [qw(pc1-cert ee-client ca-cert)],
+ "-allow_proxy_certs"),
+ "fail proxy cert with incorrect pathlen");
+ok(verify("pc5-cert", "sslclient", [qw(root-cert)], [qw(pc1-cert ee-client ca-cert)],
+ "-allow_proxy_certs"),
+ "accept proxy cert missing proxy policy");
+ok(!verify("pc6-cert", "sslclient", [qw(root-cert)], [qw(pc1-cert ee-client ca-cert)],
+ "-allow_proxy_certs"),
+ "failed proxy cert where last CN was added as a multivalue RDN component");
+
+# Security level tests
+ok(verify("ee-cert", "sslserver", ["root-cert"], ["ca-cert"], "-auth_level", "2"),
+ "accept RSA 2048 chain at auth level 2");
+ok(!verify("ee-cert", "sslserver", ["root-cert"], ["ca-cert"], "-auth_level", "3"),
+ "reject RSA 2048 root at auth level 3");
+ok(verify("ee-cert", "sslserver", ["root-cert-768"], ["ca-cert-768i"], "-auth_level", "0"),
+ "accept RSA 768 root at auth level 0");
+ok(!verify("ee-cert", "sslserver", ["root-cert-768"], ["ca-cert-768i"]),
+ "reject RSA 768 root at auth level 1");
+ok(verify("ee-cert-768i", "sslserver", ["root-cert"], ["ca-cert-768"], "-auth_level", "0"),
+ "accept RSA 768 intermediate at auth level 0");
+ok(!verify("ee-cert-768i", "sslserver", ["root-cert"], ["ca-cert-768"]),
+ "reject RSA 768 intermediate at auth level 1");
+ok(verify("ee-cert-768", "sslserver", ["root-cert"], ["ca-cert"], "-auth_level", "0"),
+ "accept RSA 768 leaf at auth level 0");
+ok(!verify("ee-cert-768", "sslserver", ["root-cert"], ["ca-cert"]),
+ "reject RSA 768 leaf at auth level 1");
+#
+ok(verify("ee-cert", "sslserver", ["root-cert-md5"], ["ca-cert"], "-auth_level", "2"),
+ "accept md5 self-signed TA at auth level 2");
+ok(verify("ee-cert", "sslserver", ["ca-cert-md5-any"], [], "-auth_level", "2"),
+ "accept md5 intermediate TA at auth level 2");
+ok(verify("ee-cert", "sslserver", ["root-cert"], ["ca-cert-md5"], "-auth_level", "0"),
+ "accept md5 intermediate at auth level 0");
+ok(!verify("ee-cert", "sslserver", ["root-cert"], ["ca-cert-md5"]),
+ "reject md5 intermediate at auth level 1");
+ok(verify("ee-cert-md5", "sslserver", ["root-cert"], ["ca-cert"], "-auth_level", "0"),
+ "accept md5 leaf at auth level 0");
+ok(!verify("ee-cert-md5", "sslserver", ["root-cert"], ["ca-cert"]),
+ "reject md5 leaf at auth level 1");
+
+# Depth tests, note the depth limit bounds the number of CA certificates
+# between the trust-anchor and the leaf, so, for example, with a root->ca->leaf
+# chain, depth = 1 is sufficient, but depth == 0 is not.
+#
+ok(verify("ee-cert", "sslserver", ["root-cert"], ["ca-cert"], "-verify_depth", "2"),
+ "accept chain with verify_depth 2");
+ok(verify("ee-cert", "sslserver", ["root-cert"], ["ca-cert"], "-verify_depth", "1"),
+ "accept chain with verify_depth 1");
+ok(!verify("ee-cert", "sslserver", ["root-cert"], ["ca-cert"], "-verify_depth", "0"),
+ "accept chain with verify_depth 0");
+ok(verify("ee-cert", "sslserver", ["ca-cert-md5-any"], [], "-verify_depth", "0"),
+ "accept md5 intermediate TA with verify_depth 0");
+
+# Name Constraints tests.
+
+ok(verify("alt1-cert", "sslserver", ["root-cert"], ["ncca1-cert"], ),
+ "Name Constraints everything permitted");
+
+ok(verify("alt2-cert", "sslserver", ["root-cert"], ["ncca2-cert"], ),
+ "Name Constraints nothing excluded");
+
+ok(verify("alt3-cert", "sslserver", ["root-cert"], ["ncca1-cert", "ncca3-cert"], ),
+ "Name Constraints nested test all permitted");
+
+ok(verify("goodcn1-cert", "sslserver", ["root-cert"], ["ncca1-cert"], ),
+ "Name Constraints CNs permitted");
+
+ok(!verify("badcn1-cert", "sslserver", ["root-cert"], ["ncca1-cert"], ),
+ "Name Constraints CNs not permitted");
+
+ok(!verify("badalt1-cert", "sslserver", ["root-cert"], ["ncca1-cert"], ),
+ "Name Constraints hostname not permitted");
+
+ok(!verify("badalt2-cert", "sslserver", ["root-cert"], ["ncca2-cert"], ),
+ "Name Constraints hostname excluded");
+
+ok(!verify("badalt3-cert", "sslserver", ["root-cert"], ["ncca1-cert"], ),
+ "Name Constraints email address not permitted");
+
+ok(!verify("badalt4-cert", "sslserver", ["root-cert"], ["ncca1-cert"], ),
+ "Name Constraints subject email address not permitted");
+
+ok(!verify("badalt5-cert", "sslserver", ["root-cert"], ["ncca1-cert"], ),
+ "Name Constraints IP address not permitted");
+
+ok(!verify("badalt6-cert", "sslserver", ["root-cert"], ["ncca1-cert"], ),
+ "Name Constraints CN hostname not permitted");
+
+ok(!verify("badalt7-cert", "sslserver", ["root-cert"], ["ncca1-cert"], ),
+ "Name Constraints CN BMPSTRING hostname not permitted");
+
+ok(!verify("badalt8-cert", "sslserver", ["root-cert"], ["ncca1-cert", "ncca3-cert"], ),
+ "Name constraints nested DNS name not permitted 1");
+
+ok(!verify("badalt9-cert", "sslserver", ["root-cert"], ["ncca1-cert", "ncca3-cert"], ),
+ "Name constraints nested DNS name not permitted 2");
+
+ok(!verify("badalt10-cert", "sslserver", ["root-cert"], ["ncca1-cert", "ncca3-cert"], ),
+ "Name constraints nested DNS name excluded");
+
+ok(verify("ee-pss-sha1-cert", "sslserver", ["root-cert"], ["ca-cert"], ),
+ "Certificate PSS signature using SHA1");
+
+ok(verify("ee-pss-sha256-cert", "sslserver", ["root-cert"], ["ca-cert"], ),
+ "CA with PSS signature using SHA256");
+
+ok(!verify("ee-pss-sha1-cert", "sslserver", ["root-cert"], ["ca-cert"], "-auth_level", "2"),
+ "Reject PSS signature using SHA1 and auth level 2");
+
+ok(verify("ee-pss-sha256-cert", "sslserver", ["root-cert"], ["ca-cert"], "-auth_level", "2"),
+ "PSS signature using SHA256 and auth level 2");
+
+ok(!verify("many-names1", "sslserver", ["many-constraints"], ["many-constraints"], ),
+ "Too many names and constraints to check (1)");
+ok(!verify("many-names2", "sslserver", ["many-constraints"], ["many-constraints"], ),
+ "Too many names and constraints to check (2)");
+ok(!verify("many-names3", "sslserver", ["many-constraints"], ["many-constraints"], ),
+ "Too many names and constraints to check (3)");
+
+ok(verify("some-names1", "sslserver", ["many-constraints"], ["many-constraints"], ),
+ "Not too many names and constraints to check (1)");
+ok(verify("some-names2", "sslserver", ["many-constraints"], ["many-constraints"], ),
+ "Not too many names and constraints to check (2)");
+ok(verify("some-names2", "sslserver", ["many-constraints"], ["many-constraints"], ),
+ "Not too many names and constraints to check (3)");
+ok(verify("root-cert-rsa2", "sslserver", ["root-cert-rsa2"], [], "-check_ss_sig"),
+ "Public Key Algorithm rsa instead of rsaEncryption");
+
+SKIP: {
+ skip "Ed25519 is not supported by this OpenSSL build", 1
+ if disabled("ec");
+
+ # ED25519 certificate from draft-ietf-curdle-pkix-04
+ ok(verify("ee-ed25519", "sslserver", ["root-ed25519"], []),
+ "ED25519 signature");
+
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_x509.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_x509.t
new file mode 100644
index 000000000..f5ef0f996
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/25-test_x509.t
@@ -0,0 +1,49 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Spec;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_x509");
+
+plan tests => 9;
+
+require_ok(srctop_file('test','recipes','tconversion.pl'));
+
+my $pem = srctop_file("test/certs", "cyrillic.pem");
+my $out = "cyrillic.out";
+my $msb = srctop_file("test/certs", "cyrillic.msb");
+my $utf = srctop_file("test/certs", "cyrillic.utf8");
+
+ok(run(app(["openssl", "x509", "-text", "-in", $pem, "-out", $out,
+ "-nameopt", "esc_msb"])));
+is(cmp_text($out, srctop_file("test/certs", "cyrillic.msb")),
+ 0, 'Comparing esc_msb output');
+ok(run(app(["openssl", "x509", "-text", "-in", $pem, "-out", $out,
+ "-nameopt", "utf8"])));
+is(cmp_text($out, srctop_file("test/certs", "cyrillic.utf8")),
+ 0, 'Comparing utf8 output');
+unlink $out;
+
+subtest 'x509 -- x.509 v1 certificate' => sub {
+ tconversion("x509", srctop_file("test","testx509.pem"));
+};
+subtest 'x509 -- first x.509 v3 certificate' => sub {
+ tconversion("x509", srctop_file("test","v3-cert1.pem"));
+};
+subtest 'x509 -- second x.509 v3 certificate' => sub {
+ tconversion("x509", srctop_file("test","v3-cert2.pem"));
+};
+
+subtest 'x509 -- pathlen' => sub {
+ ok(run(test(["v3ext", srctop_file("test/certs", "pathlen.pem")])));
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_afalg.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_afalg.t
new file mode 100644
index 000000000..7f60ca61d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_afalg.t
@@ -0,0 +1,23 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT bldtop_dir/;
+use OpenSSL::Test::Utils;
+
+my $test_name = "test_afalg";
+setup($test_name);
+
+plan skip_all => "$test_name not supported for this build"
+ if disabled("afalgeng");
+
+plan tests => 1;
+
+$ENV{OPENSSL_ENGINES} = bldtop_dir("engines");
+
+ok(run(test(["afalgtest"])), "running afalgtest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_engine.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_engine.t
new file mode 100644
index 000000000..03c96cde0
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_engine.t
@@ -0,0 +1,18 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use OpenSSL::Test;
+
+setup("test_engine");
+
+plan tests => 1;
+ok(run(test(["enginetest"])), "running enginetest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp.t
new file mode 100644
index 000000000..2385105b8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp.t
@@ -0,0 +1,26 @@
+#! /usr/bin/env perl
+# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use OpenSSL::Test qw/:DEFAULT data_file/;
+
+setup("test_evp");
+
+my @files = ( "evpciph.txt", "evpdigest.txt", "evpencod.txt", "evpkdf.txt",
+ "evpmac.txt", "evppbe.txt", "evppkey.txt", "evppkey_ecc.txt",
+ "evpcase.txt", "evpccmcavs.txt" );
+
+plan tests => scalar(@files);
+
+foreach my $f ( @files ) {
+ ok(run(test(["evp_test", data_file("$f")])),
+ "running evp_test $f");
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpcase.txt b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpcase.txt
new file mode 100644
index 000000000..69828eec5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpcase.txt
@@ -0,0 +1,54 @@
+#
+# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# Tests start with one of these keywords
+# Cipher Decrypt Derive Digest Encoding KDF MAC PBE
+# PrivPubKeyPair Sign Verify VerifyRecover
+# and continue until a blank line. Lines starting with a pound sign,
+# like this prolog, are ignored.
+
+# These tests exercise the case insensitive handling of object names.
+# They are contrived
+
+Title = Case insensitive AES tests
+
+Cipher = Aes-128-eCb
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = 3AD77BB40D7A3660A89ECAF32466EF97
+
+Cipher = AeS-128-cbC
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 73BED6B8E3C1743B7116E69E22229516
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 3FF1CAA1681FAC09120ECA307586E1A7
+
+Cipher = aES-128-CTR
+Key = AE6852F8121067CC4BF7A5765577F39E
+IV = 00000030000000000000000000000001
+Operation = ENCRYPT
+Plaintext = 53696E676C6520626C6F636B206D7367
+Ciphertext = E4095D4FB7A7B3792D6175A3261311B8
+
+Cipher = AES-128-GcM
+Key = 00000000000000000000000000000000
+IV = 000000000000000000000000
+AAD =
+Tag = ab6e47d42cec13bdf53a67b21257bddf
+Plaintext = 00000000000000000000000000000000
+Ciphertext = 0388dace60b6a392f328c2b971b2fe78
+
+Title = Case insensitive digest tests
+
+Digest = Sha3-256
+Input = ""
+Output = A7FFC6F8BF1ED76651C14756A061D662F580FF4DE43B49FA82D80A4B80F8434A
+
+Digest = shA512
+Input = "abc"
+Output = ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpccmcavs.txt b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpccmcavs.txt
new file mode 100644
index 000000000..4b74ea022
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpccmcavs.txt
@@ -0,0 +1,23927 @@
+#
+# Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# Tests from NIST CCM Test Vectors (SP800-38C)
+
+Title = NIST CCM 128 Decryption-Verfication Process Tests
+
+Cipher = aes-128-ccm
+Key = 4ae701103c63deca5b5a3939d7d05992
+IV = 5a8aa485c316e9
+AAD =
+Tag = 02209f55
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 4ae701103c63deca5b5a3939d7d05992
+IV = 3796cf51b87266
+AAD =
+Tag = 9a04c241
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4ae701103c63deca5b5a3939d7d05992
+IV = 89ca5a64050f9f
+AAD =
+Tag = f5f915df
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4ae701103c63deca5b5a3939d7d05992
+IV = ec9d8edff25645
+AAD =
+Tag = 7a3c3499
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4ae701103c63deca5b5a3939d7d05992
+IV = 05e16f0f42a6f4
+AAD =
+Tag = f09c2986
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 4ae701103c63deca5b5a3939d7d05992
+IV = 2e504b694f8df5
+AAD =
+Tag = 4ae97e71
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4ae701103c63deca5b5a3939d7d05992
+IV = 06d102a9328863
+AAD =
+Tag = ecb38c8b
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4ae701103c63deca5b5a3939d7d05992
+IV = c288b810fb5334
+AAD =
+Tag = 9c4dc530
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4ae701103c63deca5b5a3939d7d05992
+IV = 08a166d9eb6610
+AAD =
+Tag = 67299ef6
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4ae701103c63deca5b5a3939d7d05992
+IV = 4a5810b121c91b
+AAD =
+Tag = b0538d02
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4ae701103c63deca5b5a3939d7d05992
+IV = 44077341139bf9
+AAD =
+Tag = 88200ea8
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4ae701103c63deca5b5a3939d7d05992
+IV = a9df4f37847e1f
+AAD =
+Tag = 19867aa5
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 4ae701103c63deca5b5a3939d7d05992
+IV = 11df57fcd131e9
+AAD =
+Tag = 3b392a52
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 4ae701103c63deca5b5a3939d7d05992
+IV = 890fff56d10dc0
+AAD =
+Tag = 1c5e47e0
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 4ae701103c63deca5b5a3939d7d05992
+IV = 9dc18698731b27
+AAD =
+Tag = 97a56b8b
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 5a8aa485c316e9
+AAD =
+Tag = 75d582db43ce9b13ab4b6f7f14341330
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 3796cf51b87266
+AAD =
+Tag = 3a65e03af37b81d05acc7ec1bc39deb0
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 89ca5a64050f9f
+AAD =
+Tag = efc5721e0b9e4c3c90deab0e1d5c11bd
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = ec9d8edff25645
+AAD =
+Tag = 91b4b779823f4f0e3979ced93b99736c
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 05e16f0f42a6f4
+AAD =
+Tag = e2e87ca82523ccfeb416b42af9d9aadc
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 2e504b694f8df5
+AAD =
+Tag = 7b85fd105cc960df86ad86846d178274
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 06d102a9328863
+AAD =
+Tag = ffa140be27b25f307a6efd9697d66c9b
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = c288b810fb5334
+AAD =
+Tag = ed356542e0a804a724bfaa422e98a970
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 08a166d9eb6610
+AAD =
+Tag = e31dd8dc920fe7900e1b1817fe845c7d
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 4a5810b121c91b
+AAD =
+Tag = ae5a0777f03bbf541f305d00acff0396
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 44077341139bf9
+AAD =
+Tag = 957dca58616c1cbe99f94fd8f7c257d9
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = a9df4f37847e1f
+AAD =
+Tag = 0e150af422f6da238bb476810b2d5bc2
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 11df57fcd131e9
+AAD =
+Tag = 8e1150756ff3a733a1274470f072b74c
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 890fff56d10dc0
+AAD =
+Tag = a1f70df3fa9cfeb95f869b3fe08466e0
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 9dc18698731b27
+AAD =
+Tag = fdf3f6c177aa1d71fe3474a5a2eb6bb1
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 5a8aa485c316e9403aff859fbb
+AAD =
+Tag = 90156f3f
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = a16a2e741f1cd9717285b6d882
+AAD =
+Tag = 88909016
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 368f3b8180fd4b851b7b272cb1
+AAD =
+Tag = de547d03
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 7bb2bc00c0cafce65b5299ae64
+AAD =
+Tag = ea4bad52
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 935c1ef3d4032ff090f91141f3
+AAD =
+Tag = 1bc82b3d
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 2640b14f10b116411d1b5c1ad1
+AAD =
+Tag = 92e72250
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = b229c173a13b2d83af91ec45b0
+AAD =
+Tag = e81f0647
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 37ca0dc2d6efd9efde69f14f03
+AAD =
+Tag = 7cb906ec
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 6b6238aed86d677ba2b3e2622c
+AAD =
+Tag = d60f815b
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = d6cb2ac67bb13b8f6d31fad64a
+AAD =
+Tag = d3d4f3b0
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 32a7cd361ef00e65f5778fdfd4
+AAD =
+Tag = a9df97ad
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = d0a1508fdefcf5be30a459b813
+AAD =
+Tag = 36a37a59
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = 5381a61b449dc6a42aa4c79b95
+AAD =
+Tag = dba02a36
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = c55430f2da0687ea40313884ab
+AAD =
+Tag = 25dcb3c5
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3
+IV = ec76d1850acc0979a1f11906fb
+AAD =
+Tag = 1d2832d0
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 5a8aa485c316e9403aff859fbb
+AAD =
+Tag = fb04dc5a44c6bb000f2440f5154364b4
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = a16a2e741f1cd9717285b6d882
+AAD =
+Tag = 5447075bf42a59b91f08064738b015ab
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 368f3b8180fd4b851b7b272cb1
+AAD =
+Tag = fdc992847f0815fac67aa935b35208ed
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 7bb2bc00c0cafce65b5299ae64
+AAD =
+Tag = 2cabd690a45e59854b7587b26dd77f8e
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 935c1ef3d4032ff090f91141f3
+AAD =
+Tag = 3dacc71169f6da77ec91ff1d2f649ed1
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 2640b14f10b116411d1b5c1ad1
+AAD =
+Tag = 97a2eb170ef03fa12124f1315e3b694f
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = b229c173a13b2d83af91ec45b0
+AAD =
+Tag = 94d85a83169d8dc76f58baf4d63ecfee
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 37ca0dc2d6efd9efde69f14f03
+AAD =
+Tag = d3903c6289ca3684b8ce1174c23153a4
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 6b6238aed86d677ba2b3e2622c
+AAD =
+Tag = 5cbac5c418374a68bd7085454c4b0c13
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = d6cb2ac67bb13b8f6d31fad64a
+AAD =
+Tag = 26317f6b8b0130097441ed04b8009aef
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 32a7cd361ef00e65f5778fdfd4
+AAD =
+Tag = b82ab6f3bbf59b6caafc54f05570f74e
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = d0a1508fdefcf5be30a459b813
+AAD =
+Tag = 1ae34207e74c8c78890ae17e320e84bd
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 5381a61b449dc6a42aa4c79b95
+AAD =
+Tag = 5c5fa254c0be503b02caffade6b85259
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = c55430f2da0687ea40313884ab
+AAD =
+Tag = 9340266730ea36207bb734819d3553e9
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = ec76d1850acc0979a1f11906fb
+AAD =
+Tag = ec17cccf33bd9a0d4ce7aa20690c1333
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 5a8aa485c316e9
+AAD =
+Tag = 03e1fa6b
+Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22
+Ciphertext = a90e8ea44085ced791b2fdb7fd44b5cf0bd7d27718029bb7
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 31f8fa25827d48
+AAD =
+Tag = 23e5d81c
+Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22
+Ciphertext = 50aafe0578c115c4a8e126ff7b3ccb64dce8ccaa8ceda69f
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 5340ed7752c9ff
+AAD =
+Tag = 869a97f0
+Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22
+Ciphertext = 512ed208bf10d57406537e94d20a5b6e2e9ab0683dfdc685
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 9cbce402511b89
+AAD =
+Tag = 838e7f95
+Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22
+Ciphertext = af72db9cd9d6f46607d6f9542ca69988dd15255c5c91171c
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 123a0beace4e39
+AAD =
+Tag = 09b89801
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = 47d71409a03c330be9451b3f92c9d21c584391ad1010e9d6
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 8ea1594a58fe4a
+AAD =
+Tag = eaf5f825
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = e562c7af0384ea16431ca20934a293a058d722cbfc3186c8
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 5a7743e59e82da
+AAD =
+Tag = 5ec1aa6a
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = 004d9d89c401aa79919c2805fcd5de69316e191df56426c0
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = f477f754d7ee76
+AAD =
+Tag = f3586c6f
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = d623673d7f6d57c208bde112ca858561f3af5cc2bf5de926
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 040a257dede70e
+AAD =
+Tag = 5fa40618
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = fd4733d158b5630f4f6c03ab26b11bff0cbe0d5d3df99a73
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = dd51b8e91683d1
+AAD =
+Tag = 5bf4f930
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = d352cb996c3075ff367a8dcacbbae46a12fbef08aa96ec83
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = ab3cb86cca6fb2
+AAD =
+Tag = 66f0496e
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = 31730fac20e21eca0aef591faa9fa90b3c058e32af1ce48a
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = f67b98efd39b55
+AAD =
+Tag = b753181c
+Plaintext = f2e944e1ae47ad5873bf391f1b0cc07f6151eb4c50bb45b2
+Ciphertext = dd175905a7ea3aef9fce068e6cb78e9cc60519755a178c77
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = e60e2c002d1c99
+AAD =
+Tag = 0876f2da
+Plaintext = 70f48dc1d76e5028da07e29852801375a9edb2214a5ea4c0
+Ciphertext = 8ad6b76f54392ee0f2834f09142545bcde9bf03d04d64aa1
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 098e053fa08043
+AAD =
+Tag = d4f7fc07
+Plaintext = bd81680e3dc0b35431c92598dcaa26ef09ca0da5e77193de
+Ciphertext = 808eb3e04c39abde64674f0f7716dde11699cff8dd367c4c
+
+Cipher = aes-128-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd
+IV = 4bf48328725514
+AAD =
+Tag = 973a2712
+Plaintext = bd81680e3dc0b35431c92598dcaa26ef09ca0da5e77193de
+Ciphertext = e074d13aad43f7b2364d47db0a02326641ca3b2ad61a1c49
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = 5a8aa485c316e9
+AAD =
+Tag = 2d9a3fbc210595b7b8b1b41523111a8e
+Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22
+Ciphertext = 24ab9eeb0e5508cae80074f1070ee188a637171860881f1f
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = 31f8fa25827d48
+AAD =
+Tag = 63af747cc88a001fa94e060290f209c4
+Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22
+Ciphertext = 7ebfda6fa5da1dbffd82dc29b875798fbcef8ba0084fbd24
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = 5340ed7752c9ff
+AAD =
+Tag = cf3b8e6c8aeb5eeb0a5efb3700be45a2
+Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22
+Ciphertext = cbf133643851f91ddc7a1e19a0c21990459f2b7728da58f5
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = 9cbce402511b89
+AAD =
+Tag = f7bd61a0158accbca28913e39fe80906
+Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22
+Ciphertext = 0de7567a945c0af4a2291a651de411e8d0438508f2d4da80
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = 123a0beace4e39
+AAD =
+Tag = 8feeda2e8f249dd93a8358def7639875
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = d43035cdb5a1868aa430e8b41a1dc57a639087238e38bd62
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = 8ea1594a58fe4a
+AAD =
+Tag = bf19f89da977e56f308373c616299ad4
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = 389547260b354a6cbc909de057d367677049e80613877f6f
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = 5a7743e59e82da
+AAD =
+Tag = 21366b9da457ede2a673351475b53d41
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = a95aa33483ed3711470025394616bf98fe624fbca8aa6fbc
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = f477f754d7ee76
+AAD =
+Tag = d889a7cae55efd71b369cd6d43ef363b
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = 3d53b6ab8925f429ae14a0065cd203d4f9deddd402a79ac6
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = 040a257dede70e
+AAD =
+Tag = 4be7f19463dd330a4b9f3cbb30b88fa5
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = d5e6e82cb5f8034a89e58adf8298476253f18981bcb3b036
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = dd51b8e91683d1
+AAD =
+Tag = c2df063f7fdbae27f0736a37fd065fb4
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = 02f69107d62ff77145c7d57684c70ba671d55f1c63bb2ad8
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = ab3cb86cca6fb2
+AAD =
+Tag = 9b45d54cc24cff1b1d8aa1df32fbd81a
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = 64ec2f321111da9c5389e8255bfe69876d4f548f94cacd52
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = f67b98efd39b55
+AAD =
+Tag = 0217a4f1f4fb302257b0de7c9da2e750
+Plaintext = f2e944e1ae47ad5873bf391f1b0cc07f6151eb4c50bb45b2
+Ciphertext = 37d63c2bbf44d2eb155ecc1a844841d5c33f1a6d44341933
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = e60e2c002d1c99
+AAD =
+Tag = 36a305d520a1a24930a70a311aa3695d
+Plaintext = 70f48dc1d76e5028da07e29852801375a9edb2214a5ea4c0
+Ciphertext = 33e0dce4410e51bed5323ea49490207084ac91732bae4292
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = 098e053fa08043
+AAD =
+Tag = 81e3d64ed546b6b70ee088a693f55fbb
+Plaintext = bd81680e3dc0b35431c92598dcaa26ef09ca0da5e77193de
+Ciphertext = 1d732c334319bd775e7cf93dbdc4204bbdb58192be082804
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = 4bf48328725514
+AAD =
+Tag = 737719dd84ccfb397a4f61b70c85262a
+Plaintext = bd81680e3dc0b35431c92598dcaa26ef09ca0da5e77193de
+Ciphertext = c92fc2f0d24593f67d9c09d326158a8138237c4096093f0d
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = 5a8aa485c316e9403aff859fbb
+AAD =
+Tag = a3e138b9
+Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697
+Ciphertext = 4a550134f94455979ec4bf89ad2bd80d25a77ae94e456134
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = 49004912fdd7269279b1f06a89
+AAD =
+Tag = 091a5ae9
+Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697
+Ciphertext = 118ec53dd1bfbe52d5b9fe5dfebecf2ee674ec983eada654
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = efeb82c8c68d6600b24dd6d8ee
+AAD =
+Tag = 78b6bcc4
+Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697
+Ciphertext = 6b0fea26e4dfe902b5e876c7ba92afbad8aa52d3c1d00ae5
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = 7b93d368dc551640b00ba3cbb5
+AAD =
+Tag = ac542b09
+Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697
+Ciphertext = 640c740e2b8af851712a05948ecee055b25b145ccb82ca58
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = 24b7a65391f88bea38fcd54a9a
+AAD =
+Tag = 6413020a
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = 05f20b2ae70fcb0ea79aa1845c15b899a799ca60f51e6c29
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = 6aa3f731522fce7e366ba59945
+AAD =
+Tag = 142d5636
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = 9fa576a8a5c72468afa372338cbbc33fef81ad5a873eb38a
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = a11cf5bed0041ee3cb1fef4b43
+AAD =
+Tag = f3757b6a
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = 8d26582c74b2b4d960ee9e417c6395daafaebb3aff45d477
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = 273cc5013785baeb5abc79c8bd
+AAD =
+Tag = a7001a16
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = cb62a13e38e17cc6635e409c922956ece38f593189a51b99
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = d2d4482ea8e98c1cf309671895
+AAD =
+Tag = 050e9225
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = f3e29b792423c7fbe743a3b2f890a2bff29519f3636a6232
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = a8849b44adb48d271979656930
+AAD =
+Tag = 850ec9f0
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = 136e60d6714d906d1f4c02b7bdbb5f3ccdd2165306912dec
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = a632ba0d00511122abcd6227ff
+AAD =
+Tag = 4eb95533
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = 49b6d0b6eeff74af0de70072d9ccdc68a0ee36a5ddbf098b
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = c47af80cd26d047630c1fdf0d1
+AAD =
+Tag = 0f8fb949
+Plaintext = d8306c9c4ea6c69c6e2ad0fc0e49b1e0126b01078d6419ff
+Ciphertext = a2a59041c3f78f6e10c3045118e8a475945e24c85b02abc4
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = 70e132023acae1f88c7a237b68
+AAD =
+Tag = 69d8ab41
+Plaintext = d0b2bef5ed1a87d9c73d4a459cb05c11799c4f51ad640b1e
+Ciphertext = 19b4ad222795326cb031cfdb07b652dbf64ca5db5ff5d6d5
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = 8010d3a2a14f72f5585defc940
+AAD =
+Tag = f00fe764
+Plaintext = 4faba05569bf7ac656780c16995e9122e565fe9984be8a68
+Ciphertext = 76b66b908657f4df8a329c34ccdde50ae7fc71c4a718b712
+
+Cipher = aes-128-ccm
+Key = 197afb02ffbd8f699dacae87094d5243
+IV = a98c2f0e0a7b68942853905191
+AAD =
+Tag = 79f9eb72
+Plaintext = 4faba05569bf7ac656780c16995e9122e565fe9984be8a68
+Ciphertext = 20df4662ce6c8c4ce49b14fa791e41ff8598ec93d8a825e8
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = 5a8aa485c316e9403aff859fbb
+AAD =
+Tag = 6a9a970b9beb2ac1bd4fd62168f8378a
+Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697
+Ciphertext = 4bfe4e35784f0a65b545477e5e2f4bae0e1e6fa717eaf2cb
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = 49004912fdd7269279b1f06a89
+AAD =
+Tag = a65666144994bad0c8195bcb4ade1337
+Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697
+Ciphertext = 0c56a503aa2c12e87450d45a7b714db980fd348f327c0065
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = efeb82c8c68d6600b24dd6d8ee
+AAD =
+Tag = a85f868739404b64a7cbdd61b577c388
+Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697
+Ciphertext = 5f69d6c21f771eb98dc724f891f530b1c045f49a054de103
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = 7b93d368dc551640b00ba3cbb5
+AAD =
+Tag = b2b164f3c255b699cbf75330d96c3c13
+Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697
+Ciphertext = d335ba572520c336f711edf27ea738ba5e6b0d772ea443b8
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = 24b7a65391f88bea38fcd54a9a
+AAD =
+Tag = 2658e077687315eaf11458bdf6e3c36a
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = 9fa846ef8d198c538f84f856bab8f7f9c3bed90b53acb6a3
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = 6aa3f731522fce7e366ba59945
+AAD =
+Tag = 63db3756abba1feef626a956794d7e56
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = b7095030acdc5fbb8fea2c24717c1c236231f9737bcc78f4
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = a11cf5bed0041ee3cb1fef4b43
+AAD =
+Tag = 7d6fee1de626bc7c93f2caa27a3ecaa0
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = d6911d5831163c8ebad0916af1833051b885aae822f9f665
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = 273cc5013785baeb5abc79c8bd
+AAD =
+Tag = 89e2d235192f33ba0f357492112d98f4
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = 6b10a098c96c2bbf9aeb5c9adcf91e4812838dff319f8be9
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = d2d4482ea8e98c1cf309671895
+AAD =
+Tag = 800b81e834ea5dd2bdc2c688d9505359
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = aecd11cbac04e1f79b0fd24052c8cedf393dce9df350d24f
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = a8849b44adb48d271979656930
+AAD =
+Tag = 430889cd5c97343cc0dedfbd62e6b6eb
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = d3a7a25f71b1988482dc852ed713d55abdcc4bb1129ddcae
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = a632ba0d00511122abcd6227ff
+AAD =
+Tag = 15acded53c41010554e1c1fe937a7605
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = 368e1574a433d78d0276ce4a1cacfba834a216693536c00b
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = c47af80cd26d047630c1fdf0d1
+AAD =
+Tag = c9390fbdb9ec416267096ccbf2c148e5
+Plaintext = d8306c9c4ea6c69c6e2ad0fc0e49b1e0126b01078d6419ff
+Ciphertext = 99e40b3c67aca95dd4462c20cbd6b2741e7033fc4f41a975
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = 70e132023acae1f88c7a237b68
+AAD =
+Tag = 55c18ae38b7ee7f00f96cfca4fe9a2ef
+Plaintext = d0b2bef5ed1a87d9c73d4a459cb05c11799c4f51ad640b1e
+Ciphertext = de079418c25ba67e5fda009998e3fce61bfdc3b7787cf066
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = 8010d3a2a14f72f5585defc940
+AAD =
+Tag = b35357a35ff9e58e18d6d80df9fc335d
+Plaintext = 4faba05569bf7ac656780c16995e9122e565fe9984be8a68
+Ciphertext = fbab64d8dd8b6e33c7cc6124cd65f004d7247277fe98d5d3
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = a98c2f0e0a7b68942853905191
+AAD =
+Tag = 9aba89639f4033be9ba9f3c101acc1bd
+Plaintext = 4faba05569bf7ac656780c16995e9122e565fe9984be8a68
+Ciphertext = 372b9af0655df2d0c830b4949a2d2faa8db251ee922a3bff
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = 5a8aa485c316e9
+AAD = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c
+Tag = 782e4318
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = a265480ca88d5f
+AAD = a2248a882ecbf850daf91933a389e78e81623d233dfd47bf8321361a38f138fe
+Tag = a04f270a
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = 87ec7423f1ebfc
+AAD = 2bed1ec06c1ca149d9ffbaf048c474ea2de000eb7950f18d6c25acf6ab3f19b5
+Tag = 97dfd257
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = b8b04f90616082
+AAD = 4898731e143fcc677c7cf1a8f2b3c4039fb5e57028e33b05e097d1763cbfe4d8
+Tag = 6c202a1c
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = 8c687b4318813a
+AAD = fcad52a88544325bb31eb5de4a41dbff6a96f69d0993b969a01792ee23953acf
+Tag = 1be535a0
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = 29b810eed8fc92
+AAD = 40d1d320eb63a25d7a2b3141563a552114275ddda56beb62cc0c0273d5795faa
+Tag = 4fb6617d
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = 62452462c53934
+AAD = 1eb8863ea100babc1713654afcf54f21f8bff754223ad70269ace9d034f26a96
+Tag = c056bd3e
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = 4cceba0e7aee97
+AAD = f33e184c967165eb62542999afaca4e3e319840e439b5bb509544fb4b6901445
+Tag = 87048576
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = b5151b0601c683
+AAD = 73d27303ec91f28c79b278882034d11eb6a5266746f37edbb77f8409a8738b8c
+Tag = ea8c0407
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = 4e5d6d7ac9e71e
+AAD = a01b6e152fe232b6c10b5d89900961c445f4c46833df242c826678b68c869811
+Tag = 41c12dc5
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = dc88e989951a3f
+AAD = fdcacfaff46585406cc45a2da364e67e132a91c98900a8f9d7bfb14ec951fca5
+Tag = de84cf5c
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = a1aeda4b4cb8dd
+AAD = db3022ef4cd68ae22b501599448ffe2dda15cfd2e259315c6f6d03036edea963
+Tag = e617e006
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = f248e5225e3d9a
+AAD = fdc64ef76a3bfd0a15d0bc8e8bacaf64346796a3e35afcf2ac1ab136f63f7b6e
+Tag = b7909395
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = e68228f5c65b73
+AAD = 614efdf89ce2a9fcbd38bdc0b4cece54dfd7532880e0b4ce6eb3a4010b7cb1e7
+Tag = 8a05d2ea
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 90929a4b0ac65b350ad1591611fe4829
+IV = ea167cfd1101d9
+AAD = 28130f938c45a1a92b02dbeadbd8df816b6d934e87cca2dfdbfdc49c7cd84041
+Tag = 8643ba47
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = 5a8aa485c316e9
+AAD = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c
+Tag = 41b476013f45e4a781f253a6f3b1e530
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = a265480ca88d5f
+AAD = a2248a882ecbf850daf91933a389e78e81623d233dfd47bf8321361a38f138fe
+Tag = f9f018fcd125822616083fffebc4c8e6
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = 87ec7423f1ebfc
+AAD = 2bed1ec06c1ca149d9ffbaf048c474ea2de000eb7950f18d6c25acf6ab3f19b5
+Tag = 534cc67c44c877c9c908071ee1082f4c
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = b8b04f90616082
+AAD = 4898731e143fcc677c7cf1a8f2b3c4039fb5e57028e33b05e097d1763cbfe4d8
+Tag = 201c0ef2ddaa51b645911b5c37d76e95
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = 8c687b4318813a
+AAD = fcad52a88544325bb31eb5de4a41dbff6a96f69d0993b969a01792ee23953acf
+Tag = ec774d9000763bba3a5ac307418827b2
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = 29b810eed8fc92
+AAD = 40d1d320eb63a25d7a2b3141563a552114275ddda56beb62cc0c0273d5795faa
+Tag = 75798c3fe5202f0e33c9183c837aeaf5
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = 62452462c53934
+AAD = 1eb8863ea100babc1713654afcf54f21f8bff754223ad70269ace9d034f26a96
+Tag = 32601de5960c11c925444b5c47d42289
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = 4cceba0e7aee97
+AAD = f33e184c967165eb62542999afaca4e3e319840e439b5bb509544fb4b6901445
+Tag = 4c1cd6a774c8e6f4e261db1f73b0aa20
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = b5151b0601c683
+AAD = 73d27303ec91f28c79b278882034d11eb6a5266746f37edbb77f8409a8738b8c
+Tag = 8bd9c00ff23310216bbd24981c1e2cf7
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = 4e5d6d7ac9e71e
+AAD = a01b6e152fe232b6c10b5d89900961c445f4c46833df242c826678b68c869811
+Tag = 174efd089409f9932b8e631965e762a6
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = dc88e989951a3f
+AAD = fdcacfaff46585406cc45a2da364e67e132a91c98900a8f9d7bfb14ec951fca5
+Tag = 8de80f620bd41eee6a58925dc8404bfa
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = a1aeda4b4cb8dd
+AAD = db3022ef4cd68ae22b501599448ffe2dda15cfd2e259315c6f6d03036edea963
+Tag = 0b9d79e8e33ec45532af5515a99f05df
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = f248e5225e3d9a
+AAD = fdc64ef76a3bfd0a15d0bc8e8bacaf64346796a3e35afcf2ac1ab136f63f7b6e
+Tag = 1583e1e5a86001bbcec62292ccfd4d48
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = e68228f5c65b73
+AAD = 614efdf89ce2a9fcbd38bdc0b4cece54dfd7532880e0b4ce6eb3a4010b7cb1e7
+Tag = b72caac6362e68e445f69f605f21e0a2
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = ea167cfd1101d9
+AAD = 28130f938c45a1a92b02dbeadbd8df816b6d934e87cca2dfdbfdc49c7cd84041
+Tag = 352769a19ac75b8a116be031b33d6449
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = 5a8aa485c316e9403aff859fbb
+AAD = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982
+Tag = 9f69f24f
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = 8739b4bea1a099fe547499cbc6
+AAD = f6107696edb332b2ea059d8860fee26be42e5e12e1a4f79a8d0eafce1b2278a7
+Tag = e17afaa4
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = 0f98fdbde2b04387f27b3401dd
+AAD = 02010329660fa716556193eb4870ee84bd934296a5c52d92bba859cc13caaddc
+Tag = 07155b7e
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = 4eed58f381e500902ba5c56864
+AAD = 96056d9ebd7c553c22cc2d9d816b61123750d96c1b08c4b661079424bf3c4946
+Tag = d538cf2f
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = 1e7e51f0fa9a33ed618c26f5e3
+AAD = da9b8ffb0f3c2aee2e386cc9f035ec1eb3e629bd1544c11dc21be4fd8ac9074a
+Tag = c283466f
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = f012f94f5988c79aa179d7fdfc
+AAD = 612b2ef2683109d99452f95099417641d0c2be3f8ab4cbb2a44e83355ba9303c
+Tag = aa8d8098
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = 715acf92cfb69ad56036c49e70
+AAD = 960667b85be07304634124b9324be12a1c11451f1fa9db82c683265b4cf8e5ff
+Tag = a44b69b0
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = 141be3601e38185a9fa1596d2e
+AAD = 606452c62290b43559a588bb03356f846cecb0ccaf0bdaf67a18abd811d4315a
+Tag = f395733f
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = fcdda3c5f0e80843b03d8788da
+AAD = 03f22247a55461a293d253c77483859fdac1b87c2480e208a3df767cfbfde512
+Tag = 1e9e9237
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = ca660ed3b917c0aca140dcd3fb
+AAD = 254a86f5b20d344ad86fd5523d08f1864737be57731440c29aa6b42574572f51
+Tag = e9d2a722
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = 642ae3466661ce1f51783deece
+AAD = 4432a1cec5976cc13b8fb78341d426c2248f091b597123d263ffafc7f82da5a5
+Tag = a90fc438
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = 7864c717ec93db38b10679be47
+AAD = 679aad1ad1e57029e3362b325572fc71cac53184b0f1546867e665a4a59466c4
+Tag = 48f3a1ec
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = c3bf9dfe9d6c26f543188fb457
+AAD = e301f69ad3a7e08a3d02462f0aa584449eb0449b0e3c50aa8dfaa4472816c8b0
+Tag = 24763def
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = 1527657d2fd98f7deca55cc649
+AAD = f4c723433b7cafe3cda9bb4940a21a89a8382d13018b622ccd1ffb9ffd3211af
+Tag = 63394bee
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b
+IV = b8432d3d5525a0dadbbaa6b6b8
+AAD = 86ee6e37b4a2d9a0b52ec95643b4e8297e237721e15ce8bf7593a98644f83eba
+Tag = d79b1686
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 5a8aa485c316e9403aff859fbb
+AAD = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982
+Tag = 1859ac36a40a6b28b34266253627797a
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 8739b4bea1a099fe547499cbc6
+AAD = f6107696edb332b2ea059d8860fee26be42e5e12e1a4f79a8d0eafce1b2278a7
+Tag = edf8b46eb69ac0044116019dec183072
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 0f98fdbde2b04387f27b3401dd
+AAD = 02010329660fa716556193eb4870ee84bd934296a5c52d92bba859cc13caaddc
+Tag = 66622ac26c7227a0329739612012737c
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 4eed58f381e500902ba5c56864
+AAD = 96056d9ebd7c553c22cc2d9d816b61123750d96c1b08c4b661079424bf3c4946
+Tag = e4c9e86493ee78b1cbf6e55e94731b63
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 1e7e51f0fa9a33ed618c26f5e3
+AAD = da9b8ffb0f3c2aee2e386cc9f035ec1eb3e629bd1544c11dc21be4fd8ac9074a
+Tag = 8b5bfe6b5b5552007300bae71172612f
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = f012f94f5988c79aa179d7fdfc
+AAD = 612b2ef2683109d99452f95099417641d0c2be3f8ab4cbb2a44e83355ba9303c
+Tag = 1848be3cb7665ac68874c617a75d8bd2
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 715acf92cfb69ad56036c49e70
+AAD = 960667b85be07304634124b9324be12a1c11451f1fa9db82c683265b4cf8e5ff
+Tag = 65a23b7b5ee78af9c7d0113447f78ab9
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 141be3601e38185a9fa1596d2e
+AAD = 606452c62290b43559a588bb03356f846cecb0ccaf0bdaf67a18abd811d4315a
+Tag = 90a420b6d2252392e161dcf4fb953d7e
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = fcdda3c5f0e80843b03d8788da
+AAD = 03f22247a55461a293d253c77483859fdac1b87c2480e208a3df767cfbfde512
+Tag = 004cbe11292887e246de7704a4a1a05f
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = ca660ed3b917c0aca140dcd3fb
+AAD = 254a86f5b20d344ad86fd5523d08f1864737be57731440c29aa6b42574572f51
+Tag = ad7af41e39ea0c0cd072263e826f3cf0
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 642ae3466661ce1f51783deece
+AAD = 4432a1cec5976cc13b8fb78341d426c2248f091b597123d263ffafc7f82da5a5
+Tag = 16b1a4fadbadc906a949592d6ef319a3
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 7864c717ec93db38b10679be47
+AAD = 679aad1ad1e57029e3362b325572fc71cac53184b0f1546867e665a4a59466c4
+Tag = e9cfb1069380434f221db4229a083a76
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = c3bf9dfe9d6c26f543188fb457
+AAD = e301f69ad3a7e08a3d02462f0aa584449eb0449b0e3c50aa8dfaa4472816c8b0
+Tag = 380cb57fd531bb1dcf22350518bbf8af
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 1527657d2fd98f7deca55cc649
+AAD = f4c723433b7cafe3cda9bb4940a21a89a8382d13018b622ccd1ffb9ffd3211af
+Tag = fbf2becc35b5024078bfcfc1f831b669
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = b8432d3d5525a0dadbbaa6b6b8
+AAD = 86ee6e37b4a2d9a0b52ec95643b4e8297e237721e15ce8bf7593a98644f83eba
+Tag = 080203eb842b3f98a730abbbf98f493e
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 5a8aa485c316e9
+AAD = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c
+Tag = 38f125fa
+Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768
+Ciphertext = 6be31860ca271ef448de8f8d8b39346daf4b81d7e92d65b3
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = fdd2d6f503c915
+AAD = 5b92394f21ddc3ad49d9b0881b829a5935cb3a4d23e292a62fb66b5e7ab7020e
+Tag = 28a66b69
+Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768
+Ciphertext = 4cc57a9927a6bc401441870d3193bf89ebd163f5c01501c7
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 27d73d58100054
+AAD = f6468542923be79b4b06dfe70920d57d1da73a9c16f9c9a12d810d7de0d12467
+Tag = ee2de18c
+Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768
+Ciphertext = 1f16c6d370fff40c011a243356076b67e905d4672ae2f38f
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = dd16e0ce1250e3
+AAD = bc65cfd65e9863c8b7457d58afa6bdb48a84170d8aa97ba5b397b52ad17a9242
+Tag = 24537a81
+Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768
+Ciphertext = 46edb001d58a01dce1bcf064cfc9a04accc82c42b33ba165
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = ccee19d037cf4a
+AAD = c026696e6425e6c33f45b4145febf1137e7ac26383c9f5aa4cd4e5e8abb19e07
+Tag = 9405edb1
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 9b61335f96fc5b31274cc1fb275f29c1105d68c67b70654f
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 6c8ba94f09cbe6
+AAD = 774ad1a88f8bb063951486d4aec5bf82d5fc535bd0b952f86200c123c37fa496
+Tag = 548effe3
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 97b5eb2d55847f5d5d9f8c762dace481d8efb19ccfd72265
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 1f670302fcdcc8
+AAD = 1a9ff9698cfc96b581d7115c822e4363d7355ec5daed2eae5bf89ee944ac7d9c
+Tag = 03459b29
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = f5cc8198dce8e890587b62572b07413a915bfb55628c901c
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 5d05f658c729a2
+AAD = dd9564c1431ed490b17ef69f6115805e54ef156ef4e10e58f7d57a7e86626352
+Tag = 963b04f3
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 50c0b1f6c5e4c86a0c938ecbc762eeaf99b9fe04c2820a43
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 22a77db9fcbc95
+AAD = 86bf1739c10f63df734ee3e60ac40ff5636c49f68ca4c16ece289609eb413e7a
+Tag = 1330f633
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 1fdbe91189da01c5098cf1538addd85b1cfef0abd0797c14
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 491e32b0bbfa4c
+AAD = 75bef075c79d6cfd7fc73aefd67b2d215be0648937477ba606b1fe1be591239e
+Tag = 10c1f6d7
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 462e7cdf9a6a553bca37d4d93bed4986b715d0349238613e
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = bc4b7d3a380be0
+AAD = 353dbb41e2d525a9f4fcd858d0f0aa1b1e86ac0f936d5c09c6b61c343f94e3fc
+Tag = d37e5543
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 7d142f26aa6c9d55850c5c9f58ab36a66670d47c515bf93c
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = a840e98df72ae9
+AAD = 22c6607732ef1bdc7fcf6197e037cdadd7ee17c008552dd9f04b8564d34fb17c
+Tag = cc5e0c4a
+Plaintext = a2f53385618b41301f4e3ea4c597f411103dac2b37abf5da
+Ciphertext = f7122cbcec93d53fc7e3fc629ea15d28363cad1c83a23bb3
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 39d93c3cf31a6f
+AAD = 937dfac5cded938438f4e97aabd9beb50dba40f824198260a89729479cfe6869
+Tag = fc12a512
+Plaintext = c1bdef96dc868446be48491b160504546f2a40dd581f9582
+Ciphertext = e1cad7f946b20c373323218c8a89e56edf3030662e50d459
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = 0bbc177019321e
+AAD = f6e02678820f5ccbede6cbded02d6dd58d486166d7b18ee975a688af421fb795
+Tag = c2eaf895
+Plaintext = 72a70954d22ad722fc32756afce67b344b2f3c55fe1d9eed
+Ciphertext = d4741814466a23e26107d773f103a4c83db9d772dbd5fdc1
+
+Cipher = aes-128-ccm
+Key = f9fdca4ac64fe7f014de0f43039c7571
+IV = ad048eb2ad7526
+AAD = 0d2739cfdac782b61f484fa1a423c478c414397ec420327963d79112b2d70a7e
+Tag = f92fa2f7
+Plaintext = 72a70954d22ad722fc32756afce67b344b2f3c55fe1d9eed
+Ciphertext = ed35ff66bc7f6d8ec7acf896f994d79f5792cf6d22d6691f
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 5a8aa485c316e9
+AAD = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c
+Tag = 2cf3a20b7fd7c49e6e79bef475c2906f
+Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768
+Ciphertext = b351ab96b2e45515254558d5212673ee6c776d42dbca3b51
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = fdd2d6f503c915
+AAD = 5b92394f21ddc3ad49d9b0881b829a5935cb3a4d23e292a62fb66b5e7ab7020e
+Tag = 81d18ca149d6766bfaccec88f194eb5b
+Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768
+Ciphertext = df1a5285caa41b4bb47f6e5ceceba4e82721828d68427a30
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 27d73d58100054
+AAD = f6468542923be79b4b06dfe70920d57d1da73a9c16f9c9a12d810d7de0d12467
+Tag = 5eb4f0875dda5ccd9b94026ba49fb34e
+Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768
+Ciphertext = 04a29fc109dfc626e8297e0f586d0bfaf31260017d95f62d
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = dd16e0ce1250e3
+AAD = bc65cfd65e9863c8b7457d58afa6bdb48a84170d8aa97ba5b397b52ad17a9242
+Tag = 920843994def41aed3103995d3392eed
+Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768
+Ciphertext = 77e4cd5d319353ecb6b89e2de14bcfee4fbf738b61df14f3
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = ccee19d037cf4a
+AAD = c026696e6425e6c33f45b4145febf1137e7ac26383c9f5aa4cd4e5e8abb19e07
+Tag = d57603d5c45606c68be5535c671d5432
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = e676f5dfde8ad810d9e729d142670eef77f2878369a28797
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 6c8ba94f09cbe6
+AAD = 774ad1a88f8bb063951486d4aec5bf82d5fc535bd0b952f86200c123c37fa496
+Tag = a0bfd54fb786208e1e49c6d0e645d9fb
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 60c51e5c3fe4197454d64fa14017639bcfd1423b9d74e506
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 1f670302fcdcc8
+AAD = 1a9ff9698cfc96b581d7115c822e4363d7355ec5daed2eae5bf89ee944ac7d9c
+Tag = af8a9b7a5c50b0be4596290a4d405e79
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 64d1160365062eca1027cc7036862b027bdda3a9abdf794d
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 5d05f658c729a2
+AAD = dd9564c1431ed490b17ef69f6115805e54ef156ef4e10e58f7d57a7e86626352
+Tag = 2ce9c776932ecf7fddd849be58096b88
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 968ca115583c645710d2b47fb196cf55f6ef33f2b01400e2
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 22a77db9fcbc95
+AAD = 86bf1739c10f63df734ee3e60ac40ff5636c49f68ca4c16ece289609eb413e7a
+Tag = 915d0020da92f483a5a7914cba14b1e7
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 4985821b16ff6d4d3416573e2fba4d53186d912f0b023a99
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 491e32b0bbfa4c
+AAD = 75bef075c79d6cfd7fc73aefd67b2d215be0648937477ba606b1fe1be591239e
+Tag = 71420e036ea48dddd671be622d372c5b
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = c7345b031ef85bde766226a7603adaa7dcb07a7b2a8be1b5
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = bc4b7d3a380be0
+AAD = 353dbb41e2d525a9f4fcd858d0f0aa1b1e86ac0f936d5c09c6b61c343f94e3fc
+Tag = b619a331f8d67d70c3f3a59b3fab53a5
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 11460b9acccc13001be236814da6b73f2c8e0467574f151b
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = a840e98df72ae9
+AAD = 22c6607732ef1bdc7fcf6197e037cdadd7ee17c008552dd9f04b8564d34fb17c
+Tag = b944bb46306a9b1e783f3e54c92d5f5e
+Plaintext = a2f53385618b41301f4e3ea4c597f411103dac2b37abf5da
+Ciphertext = 1bcff940a2d9d48e93bbfd13aed5947237485983e6ae04b8
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 39d93c3cf31a6f
+AAD = 937dfac5cded938438f4e97aabd9beb50dba40f824198260a89729479cfe6869
+Tag = 48608963f3037763843b70c35d7011f8
+Plaintext = c1bdef96dc868446be48491b160504546f2a40dd581f9582
+Ciphertext = 3b6c1570c85f297079be14cd66d335251c7b52e131a636f1
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 0bbc177019321e
+AAD = f6e02678820f5ccbede6cbded02d6dd58d486166d7b18ee975a688af421fb795
+Tag = 4ba2d0944c68cc36d4125b3ef9071d69
+Plaintext = 72a70954d22ad722fc32756afce67b344b2f3c55fe1d9eed
+Ciphertext = b540cd8cbe733e0ca2ba2112ea785596d2c1d707f4160851
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = ad048eb2ad7526
+AAD = 0d2739cfdac782b61f484fa1a423c478c414397ec420327963d79112b2d70a7e
+Tag = 51387922af7182b7d46a33c703e6e7a8
+Plaintext = 72a70954d22ad722fc32756afce67b344b2f3c55fe1d9eed
+Ciphertext = 3c9c1481f1428acf202b510dca67e5e6b2abc5dd71a954da
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 5a8aa485c316e9403aff859fbb
+AAD = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982
+Tag = c25e5329
+Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5
+Ciphertext = 934f893824e880f743d196b22d1f340a52608155087bd28a
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 0812757ad0cc4d17c4cfe7a642
+AAD = ec6c44a7e94e51a3ca6dee229098391575ec7213c85267fbf7492fdbeee61b10
+Tag = 59b3b3ee
+Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5
+Ciphertext = f43ba9d834ad85dfab3f1c0c27c3441fe4e411a38a261a65
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = eff510acc1b85f35029cf7dc00
+AAD = 0923b927b8295c5dfaf67da55e5014293bc8c708fda50af06c1e8aef31cccc86
+Tag = 0bf6688e
+Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5
+Ciphertext = c686eac859a7bae3cce97d0b6527a0a7c8c2b24ece35f437
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 3d13d09057190366c63c8750e9
+AAD = 77e27aa9a7bf30e130c862a3296a1cd7a10195ed1d940f2c97bfff47c6f06e32
+Tag = 80ed869c
+Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5
+Ciphertext = 2b28355ecf7246ddb08d65c464dcaa90af85f434ff952672
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = e3c03ef7e1d31961ee0b97bd99
+AAD = 8a3676dd640821b58fb0f0329855fd5882c376ea166b958b7aaad223054e5784
+Tag = cd399507
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = ecde42091baa1f5c17b79746e21c3de5c78984570748021c
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 5d165ddd4e599387af5967cae6
+AAD = e374f875ce829b62c98fbd67bcf128b5647f25fff9a643300eb95559b889baed
+Tag = 3da37b66
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = 5c338435ed4f148342604c9aed63e907c100453d719fda2a
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = fcec171162a27a96066181fab2
+AAD = cf431cc3671ec468ea86f6cc09842fcf3a84b3ef0fa1c7b20b232145b4469d62
+Tag = 7e75dded
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = 30eac1042015eb82729673edd9939bf9995b2575da4d6c4c
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 2fa8120398d1a946f391367cf6
+AAD = 92558a239c8e13230754f23aec67b153db29fdfc7daf641778185dd2931d89da
+Tag = 722b9c87
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = ebd3ce55b40e4bbd8172033948c6c78049161ee8f949eb50
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 88e0ae338bbca9d4299b294354
+AAD = 5db5c388dbadc9f175a5cd5a1472a458d25acd7fb9c951c0cd45edf64da473bb
+Tag = 48c042e5
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = 20f79b36ca83baac97600fd8a6dad22c2cd0f9b7e7705760
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 4862e36296d6afc9399a95bbb4
+AAD = 36d82ebd0e0f5fe3b12946d041ae5aee16e6d17025406dd776f499bbd8e8b4c8
+Tag = 885ba975
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = 77b76f249f936fb19bd47fe28ad4dbb7725dec365a1cb23a
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 2f360a4715074e942244ab7f9b
+AAD = f0087b0086a081c1071481f033a8be8e940c36763084329bb8461b9102238f4f
+Tag = aa799e79
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = cf6763a23c2eab730845d1eb79bbba9f54ee899fe3d70570
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 93e08854560edb096e5d654086
+AAD = bdc60dff08bfd5d44320b75c61e456fd4333c9c3d0294d4a48d936dfd5922ce2
+Tag = 6c0b0104
+Plaintext = 569e4aec88dd51ca519c0a00c922ee33d3559b98a32d7906
+Ciphertext = 1f8086a43c1b2dea557952db88e0dbbdb96aafdb345eddae
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = e3f37b68ff508cfe295441d9e3
+AAD = b2b6c5782e4f128467c589d2a6cf55ef12877adb771bbb6245c5bba9dcfd6208
+Tag = 47a28dd8
+Plaintext = 02b5511204bd55f7c37973e26f6df5883c0a530f07c7f8c2
+Ciphertext = c0c5f92285b114e0a0777e1bc22b810e7cc4f68c28cd5ce0
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = ea98ec44f5a86715014783172e
+AAD = e4692b9f06b666c7451b146c8aeb07a6e30c629d28065c3dde5940325b14b810
+Tag = b7543552
+Plaintext = 4da40b80579c1d9a5309f7efecb7c059a2f914511ca5fc10
+Ciphertext = 56327f4db9c18f72bbefc3f316d31f9795dd77f493385ab7
+
+Cipher = aes-128-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728c
+IV = 5a16a8902bd70fa06cfe184c57
+AAD = 399d6b0652836457ec4f701f0dc0e5aed73d16585d61cb1bb5b7ee824fc287c8
+Tag = ee39867e
+Plaintext = 4da40b80579c1d9a5309f7efecb7c059a2f914511ca5fc10
+Ciphertext = 37d5b17995fac8c94302ec9ba20a36d97678e85199b677f8
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0e
+IV = 5a8aa485c316e9403aff859fbb
+AAD = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982
+Tag = c0a458bfcafa3b2609afe0f825cbf503
+Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5
+Ciphertext = 50038b5fdd364ee747b70d00bd36840ece4ea19998123375
+
+Cipher = aes-128-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0e
+IV = 0812757ad0cc4d17c4cfe7a642
+AAD = ec6c44a7e94e51a3ca6dee229098391575ec7213c85267fbf7492fdbeee61b10
+Tag = 390042ba8bb5f6798dab01c5afad7306
+Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5
+Ciphertext = 78ed8ff6b5a1255d0fbd0a719a9c27b059ff5f83d0c4962c
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0e
+IV = eff510acc1b85f35029cf7dc00
+AAD = 0923b927b8295c5dfaf67da55e5014293bc8c708fda50af06c1e8aef31cccc86
+Tag = a3463394cf3c25bef8af8f244d0c0b00
+Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5
+Ciphertext = 4b91d8e616d3f60452fd3a576bd7c265b7f549523ed4a5d7
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0e
+IV = 3d13d09057190366c63c8750e9
+AAD = 77e27aa9a7bf30e130c862a3296a1cd7a10195ed1d940f2c97bfff47c6f06e32
+Tag = 88caf8ae59d9d1131626da0dddf8722d
+Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5
+Ciphertext = ab8cf8891ab62924c0c6f49dd253cfa0c3d6260d0ee4d9ba
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0e
+IV = e3c03ef7e1d31961ee0b97bd99
+AAD = 8a3676dd640821b58fb0f0329855fd5882c376ea166b958b7aaad223054e5784
+Tag = d1292373a76970eda77a8194f6276262
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = c6b7680f321132a8bd00e8e92f785d0b828b100af6392a04
+
+Cipher = aes-128-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0e
+IV = 5d165ddd4e599387af5967cae6
+AAD = e374f875ce829b62c98fbd67bcf128b5647f25fff9a643300eb95559b889baed
+Tag = a97af19d0b7bf7c7ce398cb0b44d73af
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = aea98867d3d707c43a963c1d7fdcfc953cbd707803b2b5f0
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0e
+IV = fcec171162a27a96066181fab2
+AAD = cf431cc3671ec468ea86f6cc09842fcf3a84b3ef0fa1c7b20b232145b4469d62
+Tag = 343065b4bdd973ee072dbf5160d310f3
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = c55e17ba7886eb58126d50bde8c5c211cc1aafd71a3d9e5b
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0e
+IV = 2fa8120398d1a946f391367cf6
+AAD = 92558a239c8e13230754f23aec67b153db29fdfc7daf641778185dd2931d89da
+Tag = 233ec600bca1d31f704807494fb0f18d
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = 791a62d5fb39ff9735ad94507e1afe2647714d5cc56b6ff4
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0e
+IV = 88e0ae338bbca9d4299b294354
+AAD = 5db5c388dbadc9f175a5cd5a1472a458d25acd7fb9c951c0cd45edf64da473bb
+Tag = 7ec183db0e2a33ebb147d0e2363fbb01
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = f98a081998e29500f15ebd8978a95423aed4e8e78e0279d1
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0e
+IV = 4862e36296d6afc9399a95bbb4
+AAD = 36d82ebd0e0f5fe3b12946d041ae5aee16e6d17025406dd776f499bbd8e8b4c8
+Tag = 7e67ea2577ade5836c26a89760e0959b
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = 7779814dc295a23b4100ca94bec0ad4ce2f6be6fb75a0c21
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0e
+IV = 2f360a4715074e942244ab7f9b
+AAD = f0087b0086a081c1071481f033a8be8e940c36763084329bb8461b9102238f4f
+Tag = 4978a7865df8369635269411b3aaeb32
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = 55640eed12c7595a36ab423da8d8241905b6ff1e906db962
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-128-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0e
+IV = 93e08854560edb096e5d654086
+AAD = bdc60dff08bfd5d44320b75c61e456fd4333c9c3d0294d4a48d936dfd5922ce2
+Tag = 4f9d302e4f1d2a2aedf2768d7b29163f
+Plaintext = 569e4aec88dd51ca519c0a00c922ee33d3559b98a32d7906
+Ciphertext = 7fcdce0ba567b9a708d54fdb16125de71dce952f4741684f
+
+Cipher = aes-128-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0e
+IV = e3f37b68ff508cfe295441d9e3
+AAD = b2b6c5782e4f128467c589d2a6cf55ef12877adb771bbb6245c5bba9dcfd6208
+Tag = a50036af67fadab163e9daa8bd8e9030
+Plaintext = 02b5511204bd55f7c37973e26f6df5883c0a530f07c7f8c2
+Ciphertext = d42111ba22987eac1ead5cc6cb8548bcda190d118dcd5461
+
+Cipher = aes-128-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0e
+IV = ea98ec44f5a86715014783172e
+AAD = e4692b9f06b666c7451b146c8aeb07a6e30c629d28065c3dde5940325b14b810
+Tag = 2f1322ac69b848b001476323aed84c47
+Plaintext = 4da40b80579c1d9a5309f7efecb7c059a2f914511ca5fc10
+Ciphertext = 1bf0ba0ebb20d8edba59f29a9371750c9c714078f73c335d
+
+
+Title = NIST CCM 192 Decryption-Verfication Process Tests
+
+Cipher = aes-192-ccm
+Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c
+IV = 5a8aa485c316e9
+AAD =
+Tag = 9d4b7f3b
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c
+IV = 3796cf51b87266
+AAD =
+Tag = 80745de9
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c
+IV = 89ca5a64050f9f
+AAD =
+Tag = 2f6fa823
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c
+IV = ec9d8edff25645
+AAD =
+Tag = 3cc132c6
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c
+IV = 05e16f0f42a6f4
+AAD =
+Tag = c79d5557
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c
+IV = 2e504b694f8df5
+AAD =
+Tag = 41e0eea0
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c
+IV = 06d102a9328863
+AAD =
+Tag = 1f129266
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c
+IV = c288b810fb5334
+AAD =
+Tag = 41b0e4e2
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c
+IV = 08a166d9eb6610
+AAD =
+Tag = 5082e06a
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c
+IV = 4a5810b121c91b
+AAD =
+Tag = 70587cce
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c
+IV = 44077341139bf9
+AAD =
+Tag = 6aaa0acd
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c
+IV = a9df4f37847e1f
+AAD =
+Tag = 22976e42
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c
+IV = 11df57fcd131e9
+AAD =
+Tag = f440ea1d
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c
+IV = 890fff56d10dc0
+AAD =
+Tag = 88903fb9
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c
+IV = 9dc18698731b27
+AAD =
+Tag = 3ff345c3
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 5a8aa485c316e9
+AAD =
+Tag = 17223038fa99d53681ca1beabe78d1b4
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 3796cf51b87266
+AAD =
+Tag = d0e1eeef4d2a264536bb1c2c1bde7c35
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 89ca5a64050f9f
+AAD =
+Tag = 81d587f8673fd514c23172af7fb7523d
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = ec9d8edff25645
+AAD =
+Tag = 500142447e535207899ab1499994daea
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 05e16f0f42a6f4
+AAD =
+Tag = fdfdbb38bf161785114f9ee2018e892f
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 2e504b694f8df5
+AAD =
+Tag = 38fe9622eaa2a50152cf57e393dd3063
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 06d102a9328863
+AAD =
+Tag = 73af4b87c167572e1400a0ee28209aff
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = c288b810fb5334
+AAD =
+Tag = ace2248b9f23efa813449c82217e4a4a
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 08a166d9eb6610
+AAD =
+Tag = a9bb0e469829d9cf09ad765c5b0b58bf
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 4a5810b121c91b
+AAD =
+Tag = a5977f0826926ec0d32541b2bd4e2b1e
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 44077341139bf9
+AAD =
+Tag = 6938fb5afec1a84e4abb062e1a943c20
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = a9df4f37847e1f
+AAD =
+Tag = 7e3bbe0eb13988a93972f2fbcd35659e
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 11df57fcd131e9
+AAD =
+Tag = 48d7a15cf4f5808eb45d1ad817470554
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 890fff56d10dc0
+AAD =
+Tag = 97185ce68af1e6ab718c8c4b83ec04cd
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 9dc18698731b27
+AAD =
+Tag = a81bc8f5a18293ffe19505a3687ce3f3
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 5a8aa485c316e9403aff859fbb
+AAD =
+Tag = fe69ed84
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = a16a2e741f1cd9717285b6d882
+AAD =
+Tag = db7ffc82
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 368f3b8180fd4b851b7b272cb1
+AAD =
+Tag = 7a677329
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 7bb2bc00c0cafce65b5299ae64
+AAD =
+Tag = d903d8f7
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 935c1ef3d4032ff090f91141f3
+AAD =
+Tag = 215e0bf2
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 2640b14f10b116411d1b5c1ad1
+AAD =
+Tag = 0d38100f
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = b229c173a13b2d83af91ec45b0
+AAD =
+Tag = 9f8ab5f7
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 37ca0dc2d6efd9efde69f14f03
+AAD =
+Tag = 7d811d50
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 6b6238aed86d677ba2b3e2622c
+AAD =
+Tag = c2e18439
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = d6cb2ac67bb13b8f6d31fad64a
+AAD =
+Tag = d8b5817b
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 32a7cd361ef00e65f5778fdfd4
+AAD =
+Tag = 28cd70ff
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = d0a1508fdefcf5be30a459b813
+AAD =
+Tag = 790b2624
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = 5381a61b449dc6a42aa4c79b95
+AAD =
+Tag = 9e46632d
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = c55430f2da0687ea40313884ab
+AAD =
+Tag = 39b82901
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65
+IV = ec76d1850acc0979a1f11906fb
+AAD =
+Tag = 4c0cf71f
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 5a8aa485c316e9403aff859fbb
+AAD =
+Tag = 0c66a8e547ed4f8c2c9a9a1eb5d455b9
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = a16a2e741f1cd9717285b6d882
+AAD =
+Tag = 38757b3a61a4dc97ca3ab88bf1240695
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 368f3b8180fd4b851b7b272cb1
+AAD =
+Tag = 11875da4445d92391d0fab5f3625497b
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 7bb2bc00c0cafce65b5299ae64
+AAD =
+Tag = 64477bcd4316e5c5789e1a678fdef943
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 935c1ef3d4032ff090f91141f3
+AAD =
+Tag = 87da5dbc04e39fc468f43675d4e7df33
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 2640b14f10b116411d1b5c1ad1
+AAD =
+Tag = bf0d53ee529d8cafc5ad7a8f2d85e7a2
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = b229c173a13b2d83af91ec45b0
+AAD =
+Tag = 676370637ad78c705d43fce066dc909f
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 37ca0dc2d6efd9efde69f14f03
+AAD =
+Tag = 289936db0f9f148a3c9e2d28f7d7de51
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 6b6238aed86d677ba2b3e2622c
+AAD =
+Tag = 58a283641627669d5514f2af559b6c14
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = d6cb2ac67bb13b8f6d31fad64a
+AAD =
+Tag = a6b058540ed905d6e3499a13ea1f3d83
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 32a7cd361ef00e65f5778fdfd4
+AAD =
+Tag = 7a19b3377384f09915d0e1ae93a9f16c
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = d0a1508fdefcf5be30a459b813
+AAD =
+Tag = a0d047a1f9940d325e474da54aa13897
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 5381a61b449dc6a42aa4c79b95
+AAD =
+Tag = 8a4768a2093694b6bcb7083c0bb6331c
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = c55430f2da0687ea40313884ab
+AAD =
+Tag = a7cafd6f68dc1f15a3603da654ce27bc
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = ec76d1850acc0979a1f11906fb
+AAD =
+Tag = c49845f2ea3c9981ad7e9b942f615b8d
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 5a8aa485c316e9
+AAD =
+Tag = ddc93a54
+Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22
+Ciphertext = 411986d04d6463100bff03f7d0bde7ea2c3488784378138c
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 31f8fa25827d48
+AAD =
+Tag = b6889036
+Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22
+Ciphertext = 32b649ab56162e55d4148a1292d6a225a988eb1308298273
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 5340ed7752c9ff
+AAD =
+Tag = 9b4de35f
+Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22
+Ciphertext = a963c3568ab413b174cd95cc1e3ca61ee181292bebdb2817
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 9cbce402511b89
+AAD =
+Tag = 6df9ffc5
+Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22
+Ciphertext = 0396e6c8db43e5fac205f4c576fd577368adcb688cf3d7e7
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 123a0beace4e39
+AAD =
+Tag = b28c8e38
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = b41bfba94edcafc41b4c144269b9126a6d47b19e83b15772
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 8ea1594a58fe4a
+AAD =
+Tag = 7336a30a
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = 01e3bb938e16d0284d1d0fee049d80fb97356ae4d84127cf
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 5a7743e59e82da
+AAD =
+Tag = 0c40cc72
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = abd7551c5e84e9bef5fbfad3e24d13f02864410eae9177ad
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = f477f754d7ee76
+AAD =
+Tag = fc9fd290
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = 3b5ae49e0974f41826152432b46f1a85ab4995afefbbccdd
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 040a257dede70e
+AAD =
+Tag = e485910b
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = 21fb4324de4ba1e2762b3041ce26e43a3d191458a046d489
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = dd51b8e91683d1
+AAD =
+Tag = 8695053f
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = 99ca8f542fd06481e23719214c9892442f393d72899deea0
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = ab3cb86cca6fb2
+AAD =
+Tag = 050d2054
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = 5fcc05342cdc27f66b324ae7387205bfb4ab6302bfe0af09
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = f67b98efd39b55
+AAD =
+Tag = 6def28ab
+Plaintext = f2e944e1ae47ad5873bf391f1b0cc07f6151eb4c50bb45b2
+Ciphertext = 0a7fe63046daf8a979935b897088c64acc1b47a5a9b86fdd
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = e60e2c002d1c99
+AAD =
+Tag = 68941fce
+Plaintext = 70f48dc1d76e5028da07e29852801375a9edb2214a5ea4c0
+Ciphertext = daf7d7dfa512ceb1d7d3435634d9a70b3ef6c6dc38f409e0
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 098e053fa08043
+AAD =
+Tag = 51a1ec4a
+Plaintext = bd81680e3dc0b35431c92598dcaa26ef09ca0da5e77193de
+Ciphertext = cdb417dff6502208775f21e35cdb8e3e1199308d1a942290
+
+Cipher = aes-192-ccm
+Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa
+IV = 4bf48328725514
+AAD =
+Tag = 98eaddaf
+Plaintext = bd81680e3dc0b35431c92598dcaa26ef09ca0da5e77193de
+Ciphertext = e75441093c8ccba6eac5913dc246ce96de4784a010514982
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = 5a8aa485c316e9
+AAD =
+Tag = c5a5ebecf7ac8607fe412189e83d9d20
+Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22
+Ciphertext = cba4b4aeb85f0492fd8d905c4a6d8233139833373ef188a8
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = 31f8fa25827d48
+AAD =
+Tag = e699f15f14d34dcaf9ba8ed4b877c97d
+Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22
+Ciphertext = ca62713728b5c9d652504b0ae8fd4fee5d297ee6a8d19cb6
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = 5340ed7752c9ff
+AAD =
+Tag = f3b8899459788c58794f177cfd838f35
+Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22
+Ciphertext = 93012c0a5f6f1025b8c4a5d897d3eea0b1c77be8000c9e59
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = 9cbce402511b89
+AAD =
+Tag = 3ad22e8fa4d2f9725ce4f212a8844855
+Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22
+Ciphertext = b8eb95f72f643c2c51ad74775cc203d215c86626e903eb01
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = 123a0beace4e39
+AAD =
+Tag = b5eab45d7d096577643815e6d467312d
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = 71f17cf21c44267c676657db9e55bee33273787474e77b17
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = 8ea1594a58fe4a
+AAD =
+Tag = 8b1a5ecca7354af824fea617b9b69031
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = d6737f642260c4ee3b19cb78cc2ef1767213416b82c71e91
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = 5a7743e59e82da
+AAD =
+Tag = c54c98f8007ed55a21759f5452559538
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = cbe60d633399daa6ee66418be6d16e292ea47a93c291fce2
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = f477f754d7ee76
+AAD =
+Tag = a555aa972e1c2e3f439f85663ae25889
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = 2a78a7beb8df4bf5d35ff0b2853bc51ce127163d2f56e00e
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = 040a257dede70e
+AAD =
+Tag = 9aeb326578fa615e86969348d9bbfb7f
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = ee78ddbea9c3aede9f88af0e82464d9d1afe81de16aa18c4
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = dd51b8e91683d1
+AAD =
+Tag = 2efbff1da769af3b72099cbda3cbf091
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = cdf7cb74d978e7ea738e288ed79edfccf10b553c09d1856e
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = ab3cb86cca6fb2
+AAD =
+Tag = 3291a566e6641a965ffdabe097050dc5
+Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406
+Ciphertext = 90b990a1ea254592f2c226c969b332fc7bfe5f808729c2d8
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = f67b98efd39b55
+AAD =
+Tag = 84b47504dced5b70c302cc93502cc37e
+Plaintext = f2e944e1ae47ad5873bf391f1b0cc07f6151eb4c50bb45b2
+Ciphertext = 44a6aa954c3508b3c9264c20c272e80c0e95d50ddec28490
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = e60e2c002d1c99
+AAD =
+Tag = 37109739a3676f03adfd740dbaa4940d
+Plaintext = 70f48dc1d76e5028da07e29852801375a9edb2214a5ea4c0
+Ciphertext = 9d4ff7a44cdb9b14f586efc3d6be02d069b425c06bec4eed
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = 098e053fa08043
+AAD =
+Tag = c4bfacbb2f246b570efd93d98e99be49
+Plaintext = bd81680e3dc0b35431c92598dcaa26ef09ca0da5e77193de
+Ciphertext = 23da95e102c7921a51b19b5733ea5776ab6c287f6057c00e
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = 4bf48328725514
+AAD =
+Tag = 6496912db41761a1d2aecfda04fb2cfa
+Plaintext = bd81680e3dc0b35431c92598dcaa26ef09ca0da5e77193de
+Ciphertext = 53d00d5839d0a1e695916151f9450b7311982917edcbd7c6
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = 5a8aa485c316e9403aff859fbb
+AAD =
+Tag = 34fad277
+Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697
+Ciphertext = 042653c674ef2a90f7fb11d30848e530ae59478f1051633a
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = 49004912fdd7269279b1f06a89
+AAD =
+Tag = a35df775
+Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697
+Ciphertext = 1902d9769a7ba3d3268e1257395c8c2e5f98eef295dcbfa5
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = efeb82c8c68d6600b24dd6d8ee
+AAD =
+Tag = 1faaf310
+Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697
+Ciphertext = ebacb8e78c0ad9d3ed99f1821b0b0085beac351f88a79ef7
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = 7b93d368dc551640b00ba3cbb5
+AAD =
+Tag = 4d5e6103
+Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697
+Ciphertext = efc1d5b6f0a48e4ce3e821d743d34206b28c69485c410fa9
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = 24b7a65391f88bea38fcd54a9a
+AAD =
+Tag = 69ac966a
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = 3c1836e5d0f0473dab7bfd7a95ba69575f7f841970ac6c67
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = 6aa3f731522fce7e366ba59945
+AAD =
+Tag = c47e9a8e
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = 2c583e54d75a02948c7f6dcd12cba32a65e8d605fba7ec10
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = a11cf5bed0041ee3cb1fef4b43
+AAD =
+Tag = 1f3f537f
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = a8632dee22f34315b05c40135c6dd471c63b09438da834dc
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = 273cc5013785baeb5abc79c8bd
+AAD =
+Tag = 26421940
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = 0f03ea1b2561951d79062e19a85d98293c8c2846936c724c
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = d2d4482ea8e98c1cf309671895
+AAD =
+Tag = a3a22ac7
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = f9764405e54d827ac433fd624506b92e123463a5b01f21ff
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = a8849b44adb48d271979656930
+AAD =
+Tag = 89429246
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = a326e0cf3f97adff3249944880ddfb8d616cd18a086e0462
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = a632ba0d00511122abcd6227ff
+AAD =
+Tag = 4c9649b7
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = f188bc1a72e81b34d75b402e4f8ef3d638d2f56a409eab06
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = c47af80cd26d047630c1fdf0d1
+AAD =
+Tag = e2e93f29
+Plaintext = d8306c9c4ea6c69c6e2ad0fc0e49b1e0126b01078d6419ff
+Ciphertext = 341df3a273e85cf387ab823bdf9c34a1ae2c86940cb4bfcd
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = 70e132023acae1f88c7a237b68
+AAD =
+Tag = 35c7081d
+Plaintext = d0b2bef5ed1a87d9c73d4a459cb05c11799c4f51ad640b1e
+Ciphertext = a0e7997fd67ea66b6274d719b84da92433fdf7d512b160da
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = 8010d3a2a14f72f5585defc940
+AAD =
+Tag = f83a9ad7
+Plaintext = 4faba05569bf7ac656780c16995e9122e565fe9984be8a68
+Ciphertext = dd8fd11e1c0746e7273fdd2e7dfa1ee4fc8ad835ca3141c0
+
+Cipher = aes-192-ccm
+Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1
+IV = a98c2f0e0a7b68942853905191
+AAD =
+Tag = 7ff1eb5d
+Plaintext = 4faba05569bf7ac656780c16995e9122e565fe9984be8a68
+Ciphertext = 39b0d3603f1289b5885ac244953275d28491952e7e57d93c
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = 5a8aa485c316e9403aff859fbb
+AAD =
+Tag = a7ade30a07d185692ab0ebdf4c78cf7a
+Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697
+Ciphertext = a5b7d8cca2069908d1ed88e6a9fe2c9bede3131dad54671e
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = 49004912fdd7269279b1f06a89
+AAD =
+Tag = f042c86363cc05afb98c66e16be8a445
+Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697
+Ciphertext = 9a98617fb97a0dfe466be692272dcdaec1c5443a3b51312e
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = efeb82c8c68d6600b24dd6d8ee
+AAD =
+Tag = 41a8f6ac697430627826bd76b19da027
+Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697
+Ciphertext = d3068ae815c3605d7670058abb9384f4c15b75150eb79100
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = 7b93d368dc551640b00ba3cbb5
+AAD =
+Tag = 980581017fefef92c2b50ae20b93c81c
+Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697
+Ciphertext = 388a289bb85533b667b141a78d0c79acdeb9fbf72886d5ab
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = 24b7a65391f88bea38fcd54a9a
+AAD =
+Tag = 327f5f91763c0a0bec43264c27cd237f
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = 71f68480a8801d4966c84807c5ff6139d83ba0a5b902bee3
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = 6aa3f731522fce7e366ba59945
+AAD =
+Tag = 52c4b7fd911ca77950ff2d035e47b7ec
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = 8627bf1e3edafc69f1328c393dd8e7bd1c182d021e6d3a36
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = a11cf5bed0041ee3cb1fef4b43
+AAD =
+Tag = 4ffcb29bde8b9a81945d671b0f619045
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = b10ea86a384432a45f50b3c2e482595b46c81c61ca39bc0f
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = 273cc5013785baeb5abc79c8bd
+AAD =
+Tag = 578cc14aa558e18d5f777ab6e16dcfee
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = 3ace8b7e03a0c1fa9e97f46975ab0a4924446e791540e225
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = d2d4482ea8e98c1cf309671895
+AAD =
+Tag = 75433c4ae28757c8544c86f1f74ea6a5
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = 8190abe4c21e320e10825e269190bb10a354691958e24362
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = a8849b44adb48d271979656930
+AAD =
+Tag = d7752ebe9c5dbf00ee8ad60ac34dd7d0
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = 1d7e308c34cdca7b7b222f4ebc92afd8055bff542c0b76d3
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = a632ba0d00511122abcd6227ff
+AAD =
+Tag = 0a4432b35d3b884e4169c28d287499ff
+Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a
+Ciphertext = 9c2609f7af5b634a16e58f2e9cc7a9ef7812a12d20984700
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = c47af80cd26d047630c1fdf0d1
+AAD =
+Tag = 9256ace490c2f0afb93ba32be58fd1de
+Plaintext = d8306c9c4ea6c69c6e2ad0fc0e49b1e0126b01078d6419ff
+Ciphertext = 5b0b5e6690d648e1b92c12cfddb431d6d3dfe689d01db819
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = 70e132023acae1f88c7a237b68
+AAD =
+Tag = efd8535dd6b7fa701c9ca8c8b635c30b
+Plaintext = d0b2bef5ed1a87d9c73d4a459cb05c11799c4f51ad640b1e
+Ciphertext = 8722fca71fdf750ec5d62fc6d7ba079aef19210da764067a
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = 8010d3a2a14f72f5585defc940
+AAD =
+Tag = 1b5d2cd4d5b6d2ef48413245a6b27b67
+Plaintext = 4faba05569bf7ac656780c16995e9122e565fe9984be8a68
+Ciphertext = 91ac457f5e53492301e72d9d495277ed17edb30e8c7a48d2
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = a98c2f0e0a7b68942853905191
+AAD =
+Tag = fdc83ea4863c3e84a5456f7f853a1ea6
+Plaintext = 4faba05569bf7ac656780c16995e9122e565fe9984be8a68
+Ciphertext = d2fe5293b7d53ed46ddf02a5618039adbae22845ce72e434
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = 5a8aa485c316e9
+AAD = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c
+Tag = 1d089a5f
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = a265480ca88d5f
+AAD = a2248a882ecbf850daf91933a389e78e81623d233dfd47bf8321361a38f138fe
+Tag = 2f46022a
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = 87ec7423f1ebfc
+AAD = 2bed1ec06c1ca149d9ffbaf048c474ea2de000eb7950f18d6c25acf6ab3f19b5
+Tag = 67dc4693
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = b8b04f90616082
+AAD = 4898731e143fcc677c7cf1a8f2b3c4039fb5e57028e33b05e097d1763cbfe4d8
+Tag = 7027a849
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = 8c687b4318813a
+AAD = fcad52a88544325bb31eb5de4a41dbff6a96f69d0993b969a01792ee23953acf
+Tag = 5c6a4de2
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = 29b810eed8fc92
+AAD = 40d1d320eb63a25d7a2b3141563a552114275ddda56beb62cc0c0273d5795faa
+Tag = 1d855f5d
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = 62452462c53934
+AAD = 1eb8863ea100babc1713654afcf54f21f8bff754223ad70269ace9d034f26a96
+Tag = 1b318980
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = 4cceba0e7aee97
+AAD = f33e184c967165eb62542999afaca4e3e319840e439b5bb509544fb4b6901445
+Tag = cf871f91
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = b5151b0601c683
+AAD = 73d27303ec91f28c79b278882034d11eb6a5266746f37edbb77f8409a8738b8c
+Tag = 4f0e04bc
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = 4e5d6d7ac9e71e
+AAD = a01b6e152fe232b6c10b5d89900961c445f4c46833df242c826678b68c869811
+Tag = fc9013df
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = dc88e989951a3f
+AAD = fdcacfaff46585406cc45a2da364e67e132a91c98900a8f9d7bfb14ec951fca5
+Tag = 5134def3
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = a1aeda4b4cb8dd
+AAD = db3022ef4cd68ae22b501599448ffe2dda15cfd2e259315c6f6d03036edea963
+Tag = 5814103a
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = f248e5225e3d9a
+AAD = fdc64ef76a3bfd0a15d0bc8e8bacaf64346796a3e35afcf2ac1ab136f63f7b6e
+Tag = 74c75c4a
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = e68228f5c65b73
+AAD = 614efdf89ce2a9fcbd38bdc0b4cece54dfd7532880e0b4ce6eb3a4010b7cb1e7
+Tag = 9884898b
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451
+IV = ea167cfd1101d9
+AAD = 28130f938c45a1a92b02dbeadbd8df816b6d934e87cca2dfdbfdc49c7cd84041
+Tag = 0b1cbfb1
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = 5a8aa485c316e9
+AAD = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c
+Tag = 5280a2137fee3deefcfe9b63a1199fb3
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = a265480ca88d5f
+AAD = a2248a882ecbf850daf91933a389e78e81623d233dfd47bf8321361a38f138fe
+Tag = d40a7318c5f2d82f838c0beeefe0d598
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = 87ec7423f1ebfc
+AAD = 2bed1ec06c1ca149d9ffbaf048c474ea2de000eb7950f18d6c25acf6ab3f19b5
+Tag = 7551978bc9592bf9e294b4984c5862bb
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = b8b04f90616082
+AAD = 4898731e143fcc677c7cf1a8f2b3c4039fb5e57028e33b05e097d1763cbfe4d8
+Tag = 859cf444f89225b32a55a1645bd24979
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = 8c687b4318813a
+AAD = fcad52a88544325bb31eb5de4a41dbff6a96f69d0993b969a01792ee23953acf
+Tag = 29e967a0245607c36cf3eaf00fdae566
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = 29b810eed8fc92
+AAD = 40d1d320eb63a25d7a2b3141563a552114275ddda56beb62cc0c0273d5795faa
+Tag = 9daa0e1c4df5f2bf507b1a57a1135b86
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = 62452462c53934
+AAD = 1eb8863ea100babc1713654afcf54f21f8bff754223ad70269ace9d034f26a96
+Tag = 18caec79720a5d67d7457e9b7c7a153c
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = 4cceba0e7aee97
+AAD = f33e184c967165eb62542999afaca4e3e319840e439b5bb509544fb4b6901445
+Tag = 5f2c455546c56f514a0f69f05345c2c4
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = b5151b0601c683
+AAD = 73d27303ec91f28c79b278882034d11eb6a5266746f37edbb77f8409a8738b8c
+Tag = b7e4846ff30b7c3673a962a2701c0387
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = 4e5d6d7ac9e71e
+AAD = a01b6e152fe232b6c10b5d89900961c445f4c46833df242c826678b68c869811
+Tag = 7b5fa0d42a616ab05ac2c58c904ce92f
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = dc88e989951a3f
+AAD = fdcacfaff46585406cc45a2da364e67e132a91c98900a8f9d7bfb14ec951fca5
+Tag = c8c67f558b5844b149dd47824c8cb9d8
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = a1aeda4b4cb8dd
+AAD = db3022ef4cd68ae22b501599448ffe2dda15cfd2e259315c6f6d03036edea963
+Tag = 70a09aaf22ac316124a169f6b0a83ffe
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = f248e5225e3d9a
+AAD = fdc64ef76a3bfd0a15d0bc8e8bacaf64346796a3e35afcf2ac1ab136f63f7b6e
+Tag = 5bc85ed5521a91b9eb42b437950f0e06
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = e68228f5c65b73
+AAD = 614efdf89ce2a9fcbd38bdc0b4cece54dfd7532880e0b4ce6eb3a4010b7cb1e7
+Tag = 989ec0e7b192ea010dd61d3fb64e8de0
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = ea167cfd1101d9
+AAD = 28130f938c45a1a92b02dbeadbd8df816b6d934e87cca2dfdbfdc49c7cd84041
+Tag = 15c2dbe7fa307654d8ca7c0f8d6d2f14
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = 5a8aa485c316e9403aff859fbb
+AAD = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982
+Tag = 5e0eaebd
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = 8739b4bea1a099fe547499cbc6
+AAD = f6107696edb332b2ea059d8860fee26be42e5e12e1a4f79a8d0eafce1b2278a7
+Tag = 71b7fc33
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = 0f98fdbde2b04387f27b3401dd
+AAD = 02010329660fa716556193eb4870ee84bd934296a5c52d92bba859cc13caaddc
+Tag = 93227bd4
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = 4eed58f381e500902ba5c56864
+AAD = 96056d9ebd7c553c22cc2d9d816b61123750d96c1b08c4b661079424bf3c4946
+Tag = ced654e2
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = 1e7e51f0fa9a33ed618c26f5e3
+AAD = da9b8ffb0f3c2aee2e386cc9f035ec1eb3e629bd1544c11dc21be4fd8ac9074a
+Tag = bf7a8e0c
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = f012f94f5988c79aa179d7fdfc
+AAD = 612b2ef2683109d99452f95099417641d0c2be3f8ab4cbb2a44e83355ba9303c
+Tag = 840caa3e
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = 715acf92cfb69ad56036c49e70
+AAD = 960667b85be07304634124b9324be12a1c11451f1fa9db82c683265b4cf8e5ff
+Tag = 1e22fc41
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = 141be3601e38185a9fa1596d2e
+AAD = 606452c62290b43559a588bb03356f846cecb0ccaf0bdaf67a18abd811d4315a
+Tag = 968ccbbf
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = fcdda3c5f0e80843b03d8788da
+AAD = 03f22247a55461a293d253c77483859fdac1b87c2480e208a3df767cfbfde512
+Tag = 0a31cc96
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = ca660ed3b917c0aca140dcd3fb
+AAD = 254a86f5b20d344ad86fd5523d08f1864737be57731440c29aa6b42574572f51
+Tag = a456c3da
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = 642ae3466661ce1f51783deece
+AAD = 4432a1cec5976cc13b8fb78341d426c2248f091b597123d263ffafc7f82da5a5
+Tag = 29746eea
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = 7864c717ec93db38b10679be47
+AAD = 679aad1ad1e57029e3362b325572fc71cac53184b0f1546867e665a4a59466c4
+Tag = df7f63ca
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = c3bf9dfe9d6c26f543188fb457
+AAD = e301f69ad3a7e08a3d02462f0aa584449eb0449b0e3c50aa8dfaa4472816c8b0
+Tag = bf0b1445
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = 1527657d2fd98f7deca55cc649
+AAD = f4c723433b7cafe3cda9bb4940a21a89a8382d13018b622ccd1ffb9ffd3211af
+Tag = ae8533f5
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2
+IV = b8432d3d5525a0dadbbaa6b6b8
+AAD = 86ee6e37b4a2d9a0b52ec95643b4e8297e237721e15ce8bf7593a98644f83eba
+Tag = 9426cf89
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 5a8aa485c316e9403aff859fbb
+AAD = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982
+Tag = d07ccf9fdc3d33aa94cda3d230da707c
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 8739b4bea1a099fe547499cbc6
+AAD = f6107696edb332b2ea059d8860fee26be42e5e12e1a4f79a8d0eafce1b2278a7
+Tag = 65fe32b649dc328c9f531584897e85b3
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 0f98fdbde2b04387f27b3401dd
+AAD = 02010329660fa716556193eb4870ee84bd934296a5c52d92bba859cc13caaddc
+Tag = ec31fb6b41c2dae87cf395fc1fe3a080
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 4eed58f381e500902ba5c56864
+AAD = 96056d9ebd7c553c22cc2d9d816b61123750d96c1b08c4b661079424bf3c4946
+Tag = 33c2f2312dd5bfcadbb05f8d0a33fd4a
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 1e7e51f0fa9a33ed618c26f5e3
+AAD = da9b8ffb0f3c2aee2e386cc9f035ec1eb3e629bd1544c11dc21be4fd8ac9074a
+Tag = a9e81afd1030d195c679e2c837aeb736
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = f012f94f5988c79aa179d7fdfc
+AAD = 612b2ef2683109d99452f95099417641d0c2be3f8ab4cbb2a44e83355ba9303c
+Tag = 1db000f0e7d3a03718293fc118678427
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 715acf92cfb69ad56036c49e70
+AAD = 960667b85be07304634124b9324be12a1c11451f1fa9db82c683265b4cf8e5ff
+Tag = ea37900f049db8fc5cbf46edb5fcac2c
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 141be3601e38185a9fa1596d2e
+AAD = 606452c62290b43559a588bb03356f846cecb0ccaf0bdaf67a18abd811d4315a
+Tag = d1097ebd7ad0a41f61ba32a44dc15305
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = fcdda3c5f0e80843b03d8788da
+AAD = 03f22247a55461a293d253c77483859fdac1b87c2480e208a3df767cfbfde512
+Tag = 0979729272d8b42f2e3dc0eb181a1217
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = ca660ed3b917c0aca140dcd3fb
+AAD = 254a86f5b20d344ad86fd5523d08f1864737be57731440c29aa6b42574572f51
+Tag = 4457200916a20116b096225606f1a9e2
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 642ae3466661ce1f51783deece
+AAD = 4432a1cec5976cc13b8fb78341d426c2248f091b597123d263ffafc7f82da5a5
+Tag = cc6b51f39a3dcfb54abbb89f4df21114
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 7864c717ec93db38b10679be47
+AAD = 679aad1ad1e57029e3362b325572fc71cac53184b0f1546867e665a4a59466c4
+Tag = aac09cef9697927331251f028d24c31f
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = c3bf9dfe9d6c26f543188fb457
+AAD = e301f69ad3a7e08a3d02462f0aa584449eb0449b0e3c50aa8dfaa4472816c8b0
+Tag = 56c00070eae0db329894a045d866bbaf
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 1527657d2fd98f7deca55cc649
+AAD = f4c723433b7cafe3cda9bb4940a21a89a8382d13018b622ccd1ffb9ffd3211af
+Tag = 090016bb96aeaabbf66fd34fc97591a4
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = b8432d3d5525a0dadbbaa6b6b8
+AAD = 86ee6e37b4a2d9a0b52ec95643b4e8297e237721e15ce8bf7593a98644f83eba
+Tag = 264407dfe796bf7f6eb1f26c1f8504ef
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 5a8aa485c316e9
+AAD = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c
+Tag = 75dea8d1
+Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768
+Ciphertext = 9f6ca4af9b159148c889a6584d1183ea26e2614874b05045
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = fdd2d6f503c915
+AAD = 5b92394f21ddc3ad49d9b0881b829a5935cb3a4d23e292a62fb66b5e7ab7020e
+Tag = d7965825
+Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768
+Ciphertext = 84d8212e9cfc2121252baa3b065b1edcf50497b9594db1eb
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 27d73d58100054
+AAD = f6468542923be79b4b06dfe70920d57d1da73a9c16f9c9a12d810d7de0d12467
+Tag = f7f796fe
+Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768
+Ciphertext = 5f60a8f867a33b2077ecc69863b295c3c6aeae7d7cade7f8
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = dd16e0ce1250e3
+AAD = bc65cfd65e9863c8b7457d58afa6bdb48a84170d8aa97ba5b397b52ad17a9242
+Tag = b8f1f2ae
+Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768
+Ciphertext = 1353b3fa1bb1d57ffb139017885c02e26c90231a24b5a615
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = ccee19d037cf4a
+AAD = c026696e6425e6c33f45b4145febf1137e7ac26383c9f5aa4cd4e5e8abb19e07
+Tag = 8b4b53f6
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = c3116d9040e1ed4f7c9464d270fb302bd3f1561c25c5b95b
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 6c8ba94f09cbe6
+AAD = 774ad1a88f8bb063951486d4aec5bf82d5fc535bd0b952f86200c123c37fa496
+Tag = f6bf3800
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 0ca17e8f89bea67db48a8f132ef6c6df7a292914d401299a
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 1f670302fcdcc8
+AAD = 1a9ff9698cfc96b581d7115c822e4363d7355ec5daed2eae5bf89ee944ac7d9c
+Tag = 13244cf6
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 0ce543569e8187f3cec70399ff922e4903cb1d12f990f056
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 5d05f658c729a2
+AAD = dd9564c1431ed490b17ef69f6115805e54ef156ef4e10e58f7d57a7e86626352
+Tag = a5876de8
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 3acdbc163a350f312791b152a41e57627b1cc8bf3e41c8ae
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 22a77db9fcbc95
+AAD = 86bf1739c10f63df734ee3e60ac40ff5636c49f68ca4c16ece289609eb413e7a
+Tag = 1970ed17
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 604518e436edf7a0561d5e284f3915839a6d28cb06ef792a
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 491e32b0bbfa4c
+AAD = 75bef075c79d6cfd7fc73aefd67b2d215be0648937477ba606b1fe1be591239e
+Tag = f68d8da4
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = fc79b520d67da891e63654d7927db6c8012c96985a0059d5
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = bc4b7d3a380be0
+AAD = 353dbb41e2d525a9f4fcd858d0f0aa1b1e86ac0f936d5c09c6b61c343f94e3fc
+Tag = 90ee4c14
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = d86bb51a98770098d0feb39170bd979199a8f741041df137
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = a840e98df72ae9
+AAD = 22c6607732ef1bdc7fcf6197e037cdadd7ee17c008552dd9f04b8564d34fb17c
+Tag = 29c87855
+Plaintext = a2f53385618b41301f4e3ea4c597f411103dac2b37abf5da
+Ciphertext = 51b6b928bdd1cc0bd0a0aed2cda302472d618ffaa60e1790
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 39d93c3cf31a6f
+AAD = 937dfac5cded938438f4e97aabd9beb50dba40f824198260a89729479cfe6869
+Tag = 4de8ed8d
+Plaintext = c1bdef96dc868446be48491b160504546f2a40dd581f9582
+Ciphertext = d0abab9b8e9d6c11bb9c15bea8a486704bed32c57297055b
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = 0bbc177019321e
+AAD = f6e02678820f5ccbede6cbded02d6dd58d486166d7b18ee975a688af421fb795
+Tag = 31d69947
+Plaintext = 72a70954d22ad722fc32756afce67b344b2f3c55fe1d9eed
+Ciphertext = 92fd519a966c0fbdd7087ff5a1bd946cd663502db3783835
+
+Cipher = aes-192-ccm
+Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4
+IV = ad048eb2ad7526
+AAD = 0d2739cfdac782b61f484fa1a423c478c414397ec420327963d79112b2d70a7e
+Tag = 30768d4d
+Plaintext = 72a70954d22ad722fc32756afce67b344b2f3c55fe1d9eed
+Ciphertext = 7f239b1916830161f3b52b7ab13542a5a0a97a17f30ca5fa
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 5a8aa485c316e9
+AAD = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c
+Tag = 4d1d980d6fe0fb44b421992662b97975
+Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768
+Ciphertext = 6aab64c4787599d8f213446beadb16e08dba60e97f56dbd1
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = fdd2d6f503c915
+AAD = 5b92394f21ddc3ad49d9b0881b829a5935cb3a4d23e292a62fb66b5e7ab7020e
+Tag = 3c51d36c826f01384100886198a7f6a3
+Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768
+Ciphertext = 4980b2ee49b1aaf393175f5ab9bae95ec7904557dfa20660
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 27d73d58100054
+AAD = f6468542923be79b4b06dfe70920d57d1da73a9c16f9c9a12d810d7de0d12467
+Tag = 758a111aae4f735b7dd4d9802f2a8406
+Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768
+Ciphertext = 86a02bdd6ae733eee26f8eab898b336105978b5bbd6df781
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = dd16e0ce1250e3
+AAD = bc65cfd65e9863c8b7457d58afa6bdb48a84170d8aa97ba5b397b52ad17a9242
+Tag = 8cef14ebc2951069739d5d657d82addb
+Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768
+Ciphertext = 59cfab8956813c48e09332a2bb8a30dbcdf5afb2529532ab
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = ccee19d037cf4a
+AAD = c026696e6425e6c33f45b4145febf1137e7ac26383c9f5aa4cd4e5e8abb19e07
+Tag = 170a2b9c309de6c2326115a76efbdf98
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 67d989ea935b9ce190e3a7f3b645305e1e308a7fe617f80f
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 6c8ba94f09cbe6
+AAD = 774ad1a88f8bb063951486d4aec5bf82d5fc535bd0b952f86200c123c37fa496
+Tag = 4bcd14af0205af716f2b864f0c397f65
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 2522a5e4d157193ef2c264cfe877db8ac75b3cc5aab08a81
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 1f670302fcdcc8
+AAD = 1a9ff9698cfc96b581d7115c822e4363d7355ec5daed2eae5bf89ee944ac7d9c
+Tag = 762d5d8adafe75a191310a2618930c48
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 4536422bbad220079ee09e700e103efdaac832d016a20813
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 5d05f658c729a2
+AAD = dd9564c1431ed490b17ef69f6115805e54ef156ef4e10e58f7d57a7e86626352
+Tag = 206f80080dfa3e66e6371c0cde6cd205
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = d6711a78adf54f4effe647d531c4618cf32e3037eb700580
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 22a77db9fcbc95
+AAD = 86bf1739c10f63df734ee3e60ac40ff5636c49f68ca4c16ece289609eb413e7a
+Tag = b1b5b2b35c8a8125efccd1f4102f3e82
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = e44034a397778e1c6babab27f5a50fa4aac0e83d6b3eb25d
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 491e32b0bbfa4c
+AAD = 75bef075c79d6cfd7fc73aefd67b2d215be0648937477ba606b1fe1be591239e
+Tag = ca36f53b01943f03cb8b69b5af53e505
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = b8e31c5910623e405f2ebf65821963e5b8814043612395fe
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = bc4b7d3a380be0
+AAD = 353dbb41e2d525a9f4fcd858d0f0aa1b1e86ac0f936d5c09c6b61c343f94e3fc
+Tag = c3bfc6851049d32105fd16bd45b29f29
+Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005
+Ciphertext = 4000faf8558f2f4e01e45e90796cd236e5211d1704270f31
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = a840e98df72ae9
+AAD = 22c6607732ef1bdc7fcf6197e037cdadd7ee17c008552dd9f04b8564d34fb17c
+Tag = 847b022733ca5a5e3c4d472332484b7f
+Plaintext = a2f53385618b41301f4e3ea4c597f411103dac2b37abf5da
+Ciphertext = 53bb608f6236798839af35888cb0fa4797b599271084cc13
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 39d93c3cf31a6f
+AAD = 937dfac5cded938438f4e97aabd9beb50dba40f824198260a89729479cfe6869
+Tag = 1c79edbf38c50e0f240a2d70f65aa79f
+Plaintext = c1bdef96dc868446be48491b160504546f2a40dd581f9582
+Ciphertext = be54551d1d2f1b3eb60ffe3b165524ff90ca09fb252bf21c
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 0bbc177019321e
+AAD = f6e02678820f5ccbede6cbded02d6dd58d486166d7b18ee975a688af421fb795
+Tag = a82cd3ebaf6c2d3e21749bdf570ad28d
+Plaintext = 72a70954d22ad722fc32756afce67b344b2f3c55fe1d9eed
+Ciphertext = f07c1072d8f8e077dfbb3ad86dd92d32b41f29e647dcd7e3
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = ad048eb2ad7526
+AAD = 0d2739cfdac782b61f484fa1a423c478c414397ec420327963d79112b2d70a7e
+Tag = ef93a8759845326683a0d9c22151f486
+Plaintext = 72a70954d22ad722fc32756afce67b344b2f3c55fe1d9eed
+Ciphertext = 7f7cf7f4d0645934cb0a5e67b4227a909aa55dba09b2c39c
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 5a8aa485c316e9403aff859fbb
+AAD = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982
+Tag = c25e9fce
+Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5
+Ciphertext = 16e543d0e20615ff0df15acd9927ddfe40668a54bb854ccc
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 0812757ad0cc4d17c4cfe7a642
+AAD = ec6c44a7e94e51a3ca6dee229098391575ec7213c85267fbf7492fdbeee61b10
+Tag = 8ecedb3e
+Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5
+Ciphertext = df35b109caf690656ae278bbd8f8bba687a2ce11b105dae9
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = eff510acc1b85f35029cf7dc00
+AAD = 0923b927b8295c5dfaf67da55e5014293bc8c708fda50af06c1e8aef31cccc86
+Tag = 728da544
+Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5
+Ciphertext = 7075da2291e2cb527eb926ed08d8020c5f8f0f2d4a6a4745
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 3d13d09057190366c63c8750e9
+AAD = 77e27aa9a7bf30e130c862a3296a1cd7a10195ed1d940f2c97bfff47c6f06e32
+Tag = 02a9b9bc
+Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5
+Ciphertext = 18a77a66457b53286b1aea0845304cac8e66a02d5c642e4c
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = e3c03ef7e1d31961ee0b97bd99
+AAD = 8a3676dd640821b58fb0f0329855fd5882c376ea166b958b7aaad223054e5784
+Tag = ccf8ecf0
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = 24e1d3820101412d8f4d57118cab8f7e489d5cac78802dd5
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 5d165ddd4e599387af5967cae6
+AAD = e374f875ce829b62c98fbd67bcf128b5647f25fff9a643300eb95559b889baed
+Tag = 661181d5
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = b5929bc9648e24a553c5cd953ecb9d67ee508d2d4ac7b46e
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = fcec171162a27a96066181fab2
+AAD = cf431cc3671ec468ea86f6cc09842fcf3a84b3ef0fa1c7b20b232145b4469d62
+Tag = 7d74517d
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = 54aa018dc7fdf8a54809e1393d18031bab4aa5ca35c20190
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 2fa8120398d1a946f391367cf6
+AAD = 92558a239c8e13230754f23aec67b153db29fdfc7daf641778185dd2931d89da
+Tag = 4a8edd83
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = 69bcc300a459862b3cd284c15dd4af53dc7e95f3067bb825
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 88e0ae338bbca9d4299b294354
+AAD = 5db5c388dbadc9f175a5cd5a1472a458d25acd7fb9c951c0cd45edf64da473bb
+Tag = 70ad39a6
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = 5c2d2df0d8aade3e5ae0f8d8b4b4d7c565817a31b2865dc2
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 4862e36296d6afc9399a95bbb4
+AAD = 36d82ebd0e0f5fe3b12946d041ae5aee16e6d17025406dd776f499bbd8e8b4c8
+Tag = ae423997
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = df1b3f98b6b0060191e7eb817f5908ddc0bc6f83860349e8
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 2f360a4715074e942244ab7f9b
+AAD = f0087b0086a081c1071481f033a8be8e940c36763084329bb8461b9102238f4f
+Tag = 3309108e
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = 16e59dd38395c7be7f580371edabb1e9bf21270de270aa28
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 93e08854560edb096e5d654086
+AAD = bdc60dff08bfd5d44320b75c61e456fd4333c9c3d0294d4a48d936dfd5922ce2
+Tag = bcc87096
+Plaintext = 569e4aec88dd51ca519c0a00c922ee33d3559b98a32d7906
+Ciphertext = 0ef8981dd37c055a3c3e14786fc662b2a11065964911d35e
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = e3f37b68ff508cfe295441d9e3
+AAD = b2b6c5782e4f128467c589d2a6cf55ef12877adb771bbb6245c5bba9dcfd6208
+Tag = e981e935
+Plaintext = 02b5511204bd55f7c37973e26f6df5883c0a530f07c7f8c2
+Ciphertext = fc1870cfc440f74f73f40e682cf4713d027c297b9426c3ef
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = ea98ec44f5a86715014783172e
+AAD = e4692b9f06b666c7451b146c8aeb07a6e30c629d28065c3dde5940325b14b810
+Tag = 3b98de4f
+Plaintext = 4da40b80579c1d9a5309f7efecb7c059a2f914511ca5fc10
+Ciphertext = 9fc2c462dff1ba9756772d73de5c4e822b5ea0bc88845a32
+
+Cipher = aes-192-ccm
+Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d
+IV = 5a16a8902bd70fa06cfe184c57
+AAD = 399d6b0652836457ec4f701f0dc0e5aed73d16585d61cb1bb5b7ee824fc287c8
+Tag = af3b74e1
+Plaintext = 4da40b80579c1d9a5309f7efecb7c059a2f914511ca5fc10
+Ciphertext = 05fc586d5c780b8e06f618b5bb85f591665a54390eba4e14
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 5a8aa485c316e9403aff859fbb
+AAD = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982
+Tag = 8464a6f7fa2b76744e8e8d95691cecb8
+Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5
+Ciphertext = c5b0b2ef17498c5570eb335df4588032958ba3d69bf6f317
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 0812757ad0cc4d17c4cfe7a642
+AAD = ec6c44a7e94e51a3ca6dee229098391575ec7213c85267fbf7492fdbeee61b10
+Tag = 06bd6dc2e6bcc3436cffb969ae900388
+Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5
+Ciphertext = d1f0518929f4ae2f0543de2a7dfe4bb0110bb3057e524a1c
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = eff510acc1b85f35029cf7dc00
+AAD = 0923b927b8295c5dfaf67da55e5014293bc8c708fda50af06c1e8aef31cccc86
+Tag = bb56d90669c726d866fe2206b8828727
+Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5
+Ciphertext = 1aa7dfa3a9818142c4971cbf4f64d4cbdbd354c6958ef474
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 3d13d09057190366c63c8750e9
+AAD = 77e27aa9a7bf30e130c862a3296a1cd7a10195ed1d940f2c97bfff47c6f06e32
+Tag = 9953fec4e091b3573214e1ecac1ac00c
+Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5
+Ciphertext = 90352a5ec92d4fa52a96ae28251a57933728b2a3670e2ecd
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = e3c03ef7e1d31961ee0b97bd99
+AAD = 8a3676dd640821b58fb0f0329855fd5882c376ea166b958b7aaad223054e5784
+Tag = 783618374f6d03df28ee57a1a5aa38d8
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = eaa995946ed91d6a08ade14b260ac752cbd1081d5a7cad90
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 5d165ddd4e599387af5967cae6
+AAD = e374f875ce829b62c98fbd67bcf128b5647f25fff9a643300eb95559b889baed
+Tag = 47bb3f30d6e674d10a496806c1c8933e
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = 0e320c4ece6ef0305a431a07a5a34d463ec4a37fc513c4b9
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = fcec171162a27a96066181fab2
+AAD = cf431cc3671ec468ea86f6cc09842fcf3a84b3ef0fa1c7b20b232145b4469d62
+Tag = 7dd7ee3f75cfb47fa72433644f9cf62e
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = 10685888091597c50acc54b2fb65150b83a7115351d6f8bd
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 2fa8120398d1a946f391367cf6
+AAD = 92558a239c8e13230754f23aec67b153db29fdfc7daf641778185dd2931d89da
+Tag = 43314076072a0ebd253fe1ab4883ebea
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = e456abf9ee83e0a68fbdb09c4a7afaba0efb0aa6d74a17c4
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 88e0ae338bbca9d4299b294354
+AAD = 5db5c388dbadc9f175a5cd5a1472a458d25acd7fb9c951c0cd45edf64da473bb
+Tag = 16a72444f0949868f0e71907acbb29f4
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = 5adadfd296edaf4bea92c8245983dc31b11335f682fb222c
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 4862e36296d6afc9399a95bbb4
+AAD = 36d82ebd0e0f5fe3b12946d041ae5aee16e6d17025406dd776f499bbd8e8b4c8
+Tag = ab2025208191d73041c038cf2562bb8c
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = c2bb4d5a830646b3f8bf84044851c3b676c4ec02e43dcbf1
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 2f360a4715074e942244ab7f9b
+AAD = f0087b0086a081c1071481f033a8be8e940c36763084329bb8461b9102238f4f
+Tag = b7e6d183efa1f51b7ff31eaa52ed59ba
+Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f
+Ciphertext = 9589b8abcb47e54e6e8fad3e64fec7ed4f70ac435bb3e548
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 93e08854560edb096e5d654086
+AAD = bdc60dff08bfd5d44320b75c61e456fd4333c9c3d0294d4a48d936dfd5922ce2
+Tag = d990b642039f24755790332b3cc47c49
+Plaintext = 569e4aec88dd51ca519c0a00c922ee33d3559b98a32d7906
+Ciphertext = af63f27e2a9e70f106477493dc141d16a1d059dd7a8a7810
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = e3f37b68ff508cfe295441d9e3
+AAD = b2b6c5782e4f128467c589d2a6cf55ef12877adb771bbb6245c5bba9dcfd6208
+Tag = 6d3968fdceaae5138c411a29d0d333ee
+Plaintext = 02b5511204bd55f7c37973e26f6df5883c0a530f07c7f8c2
+Ciphertext = 1d2ae88c878684a0b404986252b3a7583e1a5a51163ddc60
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = ea98ec44f5a86715014783172e
+AAD = e4692b9f06b666c7451b146c8aeb07a6e30c629d28065c3dde5940325b14b810
+Tag = dbf8e9464909bdf337e48093c082a10b
+Plaintext = 4da40b80579c1d9a5309f7efecb7c059a2f914511ca5fc10
+Ciphertext = 30c154c616946eccc2e241d336ad33720953e449a0e6b0f0
+
+
+Title = NIST CCM 256 Decryption-Verfication Process Tests
+
+Cipher = aes-256-ccm
+Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6
+IV = a544218dadd3c1
+AAD =
+Tag = 469c90bb
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6
+IV = d3d5424e20fbec
+AAD =
+Tag = 46a908ed
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6
+IV = e776620a3bd961
+AAD =
+Tag = fdd35c4d
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6
+IV = 6c7a3be9f9ad55
+AAD =
+Tag = 869ce60e
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6
+IV = dbb3923156cfd6
+AAD =
+Tag = 1302d515
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6
+IV = b390f67eaef8f5
+AAD =
+Tag = 156416ee
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6
+IV = a259c114eaac89
+AAD =
+Tag = 4fe06e92
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6
+IV = 7fc8804fef18ef
+AAD =
+Tag = 611091aa
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6
+IV = fbaf4cbc49fa0f
+AAD =
+Tag = 696e9371
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6
+IV = 2ed0c8761dbf04
+AAD =
+Tag = a0e0a2cb
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6
+IV = 346bb04ea0db86
+AAD =
+Tag = 43cc0375
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6
+IV = e1be89af98ffd7
+AAD =
+Tag = e5417f6b
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6
+IV = a6a0d57aaaf012
+AAD =
+Tag = fff8a068
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6
+IV = 1aa758eb2f9a28
+AAD =
+Tag = f8fa8e71
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6
+IV = 2911167fc98fc3
+AAD =
+Tag = 0bfa2d9d
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = a544218dadd3c1
+AAD =
+Tag = 8207eb14d33855a52acceed17dbcbf6e
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = d3d5424e20fbec
+AAD =
+Tag = 60f8e127cb4d30db6df0622158cd931d
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = e776620a3bd961
+AAD =
+Tag = 4239f29871651e9a26b8b06ffc5b3748
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = 6c7a3be9f9ad55
+AAD =
+Tag = 5d35364c621fe8959dfe70ab44700fbe
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = dbb3923156cfd6
+AAD =
+Tag = e4dc5e03aacea691262ee69cee8ffbbe
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = b390f67eaef8f5
+AAD =
+Tag = c8eb7643b4ed3c796c3873e8c6624e0d
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = a259c114eaac89
+AAD =
+Tag = f79c53fd5e69835b7e70496ea999718b
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = 7fc8804fef18ef
+AAD =
+Tag = 687e00723a419fa81c0923b8b8e245ae
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = fbaf4cbc49fa0f
+AAD =
+Tag = 499ab350309ad6091ec4aaf6bf0cbd00
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = 2ed0c8761dbf04
+AAD =
+Tag = c27b9f14787dc5375f59d0c561a23446
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = 346bb04ea0db86
+AAD =
+Tag = 655c737722c78ac96582a883d407b2bb
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = e1be89af98ffd7
+AAD =
+Tag = 10d3f6fe08280d45e67e58fe41a7f036
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = a6a0d57aaaf012
+AAD =
+Tag = b4e425e43edb92c606f7cb2de8a06932
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = 1aa758eb2f9a28
+AAD =
+Tag = 2590df2453cb94c304ba0a2bff3f3c71
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = 2911167fc98fc3
+AAD =
+Tag = 1f344e30dfa95b2319e274caa5780e60
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = a544218dadd3c10583db49cf39
+AAD =
+Tag = 8a19a133
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = 3c0e2815d37d844f7ac240ba9d
+AAD =
+Tag = 2e317f1b
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = 75549e7e5657e5fe19872fcee0
+AAD =
+Tag = 979bdcfe
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = d071ff72735820d73485870e83
+AAD =
+Tag = 8ef89acf
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = 79ac204a26b9fee1132370c20f
+AAD =
+Tag = 154024b2
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = a64bbc3d6d377dab513f7d9ce8
+AAD =
+Tag = 8dbcc439
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = 0545fd9ecbc73ccdbbbd4244fd
+AAD =
+Tag = 5c349fb2
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = 182fb47a12becf0bfe65df1287
+AAD =
+Tag = 79df3e02
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = f342059a6f9dc14226b40debc4
+AAD =
+Tag = fbc2c500
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = 6cbfe6bb4c9b171b93d28e9f8f
+AAD =
+Tag = 2fac1bca
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = 82877df921c6ade43064ad963e
+AAD =
+Tag = 99948f6e
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = 0a37f2e7c66490e97285f1b09e
+AAD =
+Tag = c59bf14c
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = d7b9c346ce2f8bad9623122e10
+AAD =
+Tag = b764c393
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = c1ad812bf2bbb2cdaee4636ee7
+AAD =
+Tag = 5b96f41d
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8
+IV = b6ce7d00731184b24428df046b
+AAD =
+Tag = f7e12df1
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = a544218dadd3c10583db49cf39
+AAD =
+Tag = 97e1a8dd4259ccd2e431e057b0397fcf
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = 3c0e2815d37d844f7ac240ba9d
+AAD =
+Tag = 5a9596c511ea6a8671adefc4f2157d8b
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = 75549e7e5657e5fe19872fcee0
+AAD =
+Tag = 66f5c53efbc74fa02dedc303fd95133a
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = d071ff72735820d73485870e83
+AAD =
+Tag = 2dfd3c852f68eace45acf433a6aa9c05
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = 79ac204a26b9fee1132370c20f
+AAD =
+Tag = 5c8c9a5b97be8c7bc01ca8d693b809f9
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = a64bbc3d6d377dab513f7d9ce8
+AAD =
+Tag = ec093121bdcd589285f2262be8db5c4e
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = 0545fd9ecbc73ccdbbbd4244fd
+AAD =
+Tag = 84201662b213c7a1ff0c1b3c25e4ec45
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = 182fb47a12becf0bfe65df1287
+AAD =
+Tag = bbe746d6d31e8e9745faed4095ab8d5d
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = f342059a6f9dc14226b40debc4
+AAD =
+Tag = 646c1258dc4aa6fc380818e70e5f4328
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = 6cbfe6bb4c9b171b93d28e9f8f
+AAD =
+Tag = 15fa37ca7f2883a4642c1ed41b8f6293
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = 82877df921c6ade43064ad963e
+AAD =
+Tag = c6acf5e5ded4efb2c314370ebb9e9cde
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = 0a37f2e7c66490e97285f1b09e
+AAD =
+Tag = 586e728193ce6db9a926b03b2d77dd6e
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = d7b9c346ce2f8bad9623122e10
+AAD =
+Tag = 642a187e71feff5989e28184aded0199
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = c1ad812bf2bbb2cdaee4636ee7
+AAD =
+Tag = 64864d21b6ee3fca13f07fc0486e232d
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = b6ce7d00731184b24428df046b
+AAD =
+Tag = 58c63ce68f132d30d177c5834344cc5d
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = a544218dadd3c1
+AAD =
+Tag = 22aa8d59
+Plaintext = d3d5424e20fbec43ae495353ed830271515ab104f8860c98
+Ciphertext = 64a1341679972dc5869fcf69b19d5c5ea50aa0b5e985f5b7
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = bfcda8b5a2d0d2
+AAD =
+Tag = 77d00a75
+Plaintext = d3d5424e20fbec43ae495353ed830271515ab104f8860c98
+Ciphertext = c5b7f802bffc498c1626e3774f1d9f94045dfd8e1a10a202
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = 6bae7f35c56b27
+AAD =
+Tag = 28588021
+Plaintext = d3d5424e20fbec43ae495353ed830271515ab104f8860c98
+Ciphertext = bf432e246b7fa4aff8b3ada738432b51f6872ed92284db9d
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = c5e4214b1bf209
+AAD =
+Tag = 37921120
+Plaintext = d3d5424e20fbec43ae495353ed830271515ab104f8860c98
+Ciphertext = 0d5760ad0e156e401120a1ebd1b139248784c88e10e34254
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = 9d773a31fe2ec7
+AAD =
+Tag = dce2d25e
+Plaintext = 839d8cfa2c921c3cceb7d1f46bd2eaad706e53f64523d8c0
+Ciphertext = 5acfbe5e488976d8b9b77e69a736e8c919053f9415551209
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = f42cb0cce9efb6
+AAD =
+Tag = 1ef530d0
+Plaintext = 839d8cfa2c921c3cceb7d1f46bd2eaad706e53f64523d8c0
+Ciphertext = be8be6046ac58411a00c131dd4a72d565f98d87a2c89124b
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = 24b7a65391f88b
+AAD =
+Tag = 750125f3
+Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb
+Ciphertext = f00628e10e8e0115b4a4532a1212a23aade4090832c1972d
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = d2a7eb45780df3
+AAD =
+Tag = 08aaaf93
+Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb
+Ciphertext = 9078151f674d5f7b56e2451b0316156f776459f17d277e01
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = 046cbfd26093d8
+AAD =
+Tag = bd95e677
+Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb
+Ciphertext = 921cbecce3b06f3d655a5a0a4d212320d4f147575079fd23
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = 51b13b0b04d077
+AAD =
+Tag = 7e2ebb1d
+Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb
+Ciphertext = 8cab1ff22d474e9863c153e84680e2a66981f03605136047
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = ce2e9967bf9eb7
+AAD =
+Tag = 662f8684
+Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb
+Ciphertext = 15f476b5aefe072548a54f59506d9c3b9ce29025340214be
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = b672c91376f533
+AAD =
+Tag = d5642830
+Plaintext = 4f7a561e61b7861719e4445057ac9b74a9be953b772b09ec
+Ciphertext = 758aa03dc72c362c43b5f85bfaa3db4a74860887a8c29e47
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = 62f6f1872462d8
+AAD =
+Tag = 01472fe1
+Plaintext = 4f7a561e61b7861719e4445057ac9b74a9be953b772b09ec
+Ciphertext = ec645769b22161567e6a7e23aa06575bc767a34aa54d3cba
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = a6d01fb88ca547
+AAD =
+Tag = 7aa999d7
+Plaintext = a36155de477364236591e453008114075b4872120ef17264
+Ciphertext = 615cbeabbe163ba8bc9c073df9ad40833fcf3f424644ccc3
+
+Cipher = aes-256-ccm
+Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569
+IV = 46ad6ebbd8644a
+AAD =
+Tag = d27b7cf2
+Plaintext = a36155de477364236591e453008114075b4872120ef17264
+Ciphertext = 0ed6cc6451de57ca672d56dee45d4548a810d5c49dfe442d
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = a544218dadd3c1
+AAD =
+Tag = 374f3bb6db8377ebfc79674858c4f305
+Plaintext = d3d5424e20fbec43ae495353ed830271515ab104f8860c98
+Ciphertext = bc51c3925a960e7732533e4ef3a4f69ee6826de952bcb0fd
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = bfcda8b5a2d0d2
+AAD =
+Tag = 3275f2a4907d51b734fe7238cebbd48f
+Plaintext = d3d5424e20fbec43ae495353ed830271515ab104f8860c98
+Ciphertext = afa1fa8e8a70e26b02161150556d604101fdf423f332c336
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = 6bae7f35c56b27
+AAD =
+Tag = e672f1f22cbe4a5305f19aaa6967237b
+Plaintext = d3d5424e20fbec43ae495353ed830271515ab104f8860c98
+Ciphertext = 72bc8ef21a847047091b673ccf231d35ecf6f4049741703b
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = c5e4214b1bf209
+AAD =
+Tag = 400b152113c3976be63dcd9e7a84ddac
+Plaintext = d3d5424e20fbec43ae495353ed830271515ab104f8860c98
+Ciphertext = b719f6555fc4e5424273f5903d5672af460413110278707f
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = 9d773a31fe2ec7
+AAD =
+Tag = f2870ce198af11f4fb698a67af6c89ad
+Plaintext = 839d8cfa2c921c3cceb7d1f46bd2eaad706e53f64523d8c0
+Ciphertext = 4539bb13382b034ddb16a3329148f9243a4eee998fe444af
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = f42cb0cce9efb6
+AAD =
+Tag = cc98b3f5758972bf08ea9e88dc6e54ed
+Plaintext = 839d8cfa2c921c3cceb7d1f46bd2eaad706e53f64523d8c0
+Ciphertext = 47cbb909cb12fa0a4b0f1aefd54c52d1edd1533290f76b8c
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = 24b7a65391f88b
+AAD =
+Tag = 432704eff9b6830476db3d30d4c103e4
+Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb
+Ciphertext = 6d0f928352a17d63aca1899cbd305e1f831f1638d27c1e24
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = d2a7eb45780df3
+AAD =
+Tag = 71256981db86f1e768170a104ebfb81d
+Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb
+Ciphertext = e0e686d917f78b3b0058fed7b084976244789073a6305ff5
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = 046cbfd26093d8
+AAD =
+Tag = 5efbbae6a346863a93d52e0321cef8b2
+Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb
+Ciphertext = 960c573f5d6934a4cac49d06998f827b3d665cf02c998fe5
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = 51b13b0b04d077
+AAD =
+Tag = ac2fdc3cc683f6120e405f446a10e0f3
+Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb
+Ciphertext = 7cf8f4806848e34aa7d3bd7e2cb9f5d9ff21395ff6d34826
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = ce2e9967bf9eb7
+AAD =
+Tag = d254f7765b6155054a5efde28dd38750
+Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb
+Ciphertext = e4f6445ca36e7ee3323f11f6a5ca8ded0c85871e092aa687
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = b672c91376f533
+AAD =
+Tag = 9dc42d22a5436bc12eff5505edb25e19
+Plaintext = 4f7a561e61b7861719e4445057ac9b74a9be953b772b09ec
+Ciphertext = f23ac1426cb1130c9a0913b347d8efafb6ed125913aa678a
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = 62f6f1872462d8
+AAD =
+Tag = 2db05feb368ab772d977fd97b35262fa
+Plaintext = 4f7a561e61b7861719e4445057ac9b74a9be953b772b09ec
+Ciphertext = ac9f131389181b1023f1ee47633aa433fc5d93a87d9ece96
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = a6d01fb88ca547
+AAD =
+Tag = 789d2043179fdd8fdcbd52313b7b15cb
+Plaintext = a36155de477364236591e453008114075b4872120ef17264
+Ciphertext = 773b8eea2e9830297ac11d3c1f6ea4008c96040e83d76d55
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = 46ad6ebbd8644a
+AAD =
+Tag = 079a2bac0ab4bc249bbdb330181cdd16
+Plaintext = a36155de477364236591e453008114075b4872120ef17264
+Ciphertext = d3fae92043c419fe8ac0d7491ca8041ad089559d895103cf
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = a544218dadd3c10583db49cf39
+AAD =
+Tag = 3d14fb3f
+Plaintext = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e
+Ciphertext = 63e00d30e4b08fd2a1cc8d70fab327b2368e77a93be4f412
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = 894dcaa61008eb8fb052c60d41
+AAD =
+Tag = 8d0c0099
+Plaintext = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e
+Ciphertext = bb5425b3869b76856ec58e39886fb6f6f2ac13fe44cb132d
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = 8feba0d720aa4a5e35abc99e82
+AAD =
+Tag = efd4365c
+Plaintext = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e
+Ciphertext = 2ca3be419d5be5ed682f8954d2c20efd9e6d360814735dae
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = ed04c9ca8702aec8d0a58e09a0
+AAD =
+Tag = a4ccbef1
+Plaintext = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e
+Ciphertext = 3d34bda62db39d6118d6fd5cd38f1a3820ca69ce584b94a2
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = 1501a243bf60b2cb40d5aa20ca
+AAD =
+Tag = f1a72afc
+Plaintext = f5730a05fec31a11662e2e14e362ccc75c7c30cdfccbf994
+Ciphertext = 377b2f1e7bd9e3d1077038e084f61950761361095f7eeebb
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = c6edaf35f0cb433500a8c3a613
+AAD =
+Tag = be4f5f9a
+Plaintext = f5730a05fec31a11662e2e14e362ccc75c7c30cdfccbf994
+Ciphertext = 9cef6c889ff51666df9dd1dd2215c15f4b2078a29373c106
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = d65e0e53f765f9d5e6795c0c5e
+AAD =
+Tag = 9d0ef4f7
+Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb
+Ciphertext = 6cab3060bf3b33b163b933c2ed0ba51406810b54d0edcf5c
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = 2b0163418a341588db0f5786d8
+AAD =
+Tag = c08a9e85
+Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb
+Ciphertext = f9543a659e9a8b7d75dd859df923817452735f5051726422
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = f16bba081bddda83546eabc9a5
+AAD =
+Tag = 75dd819a
+Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb
+Ciphertext = 0d20bf6a9d02da72091d94cdb38743bfea2473d3ab62dcad
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = ace99268a32b9c1b5ccd8b0d84
+AAD =
+Tag = 86e205f9
+Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb
+Ciphertext = 8bca01e6ebd7ebcdfe52b88e314670ffeb35882fc05394b3
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = 24570517bbb0df1b3fbd32f57a
+AAD =
+Tag = f73a8bf0
+Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb
+Ciphertext = 7061c84e2e1d9d58013543ff82666055a1f055c1296c42c8
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = a6b2371acf8321864c08ddb4d8
+AAD =
+Tag = 94f223f0
+Plaintext = 1a43ca628026219c5a430c54021a5a3152ae517167399635
+Ciphertext = c5aa500d1f7c09a590e9d15d6860c4433684e04dd6bc5c8f
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = f8e2d4e043f5fe7a72b6117811
+AAD =
+Tag = 17af8b14
+Plaintext = 1a43ca628026219c5a430c54021a5a3152ae517167399635
+Ciphertext = e3efa7971e27ba1245ee9491ebdbb28ad9b24b325da57604
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = c2b60f14c894ec6178fe79919f
+AAD =
+Tag = b4d35d44
+Plaintext = 3e707d98f19972a63d913e6ea7533af2f41ff98aee2b2a36
+Ciphertext = 852cca903d7fdf899807bd14642057534c8a0ccacb8c7b8f
+
+Cipher = aes-256-ccm
+Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453
+IV = 4de4c909ac0cc5fc608baf45ac
+AAD =
+Tag = 0bc044b1
+Plaintext = 3e707d98f19972a63d913e6ea7533af2f41ff98aee2b2a36
+Ciphertext = e04fd4f5b60833021ed57c98de300bb68d0d892b2bf68e08
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = a544218dadd3c10583db49cf39
+AAD =
+Tag = 3a578d179902f912f9ea1afbce1120b3
+Plaintext = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e
+Ciphertext = f0050ad16392021a3f40207bed3521fb1e9f808f49830c42
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = 894dcaa61008eb8fb052c60d41
+AAD =
+Tag = 9084607b83bd06e6442eac8dacf583cc
+Plaintext = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e
+Ciphertext = c408190d0fbf5034f83b24a8ed9657331a7ce141de4fae76
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = 8feba0d720aa4a5e35abc99e82
+AAD =
+Tag = 9002a46cfb734290924a15e9c3d99924
+Plaintext = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e
+Ciphertext = 52b3d31d02d1b92b38cbae8c510204dde6bf9588e994296c
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = ed04c9ca8702aec8d0a58e09a0
+AAD =
+Tag = b238e316c3f9adccce95e8c8b9c7e8d2
+Plaintext = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e
+Ciphertext = f80190470212ce1e64bf4c64ca0133d90469abf87a8233c2
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = 1501a243bf60b2cb40d5aa20ca
+AAD =
+Tag = 8aaa3f0133234c0cd91609982adc034b
+Plaintext = f5730a05fec31a11662e2e14e362ccc75c7c30cdfccbf994
+Ciphertext = 254b847d4175bbb44a82b4e805514fa444c224710933f3ec
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = c6edaf35f0cb433500a8c3a613
+AAD =
+Tag = 33255731cd88345860da913bc696fdc1
+Plaintext = f5730a05fec31a11662e2e14e362ccc75c7c30cdfccbf994
+Ciphertext = 7a5c7bc02aa69efc5a159d653f3993399f69e20752c3b006
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = d65e0e53f765f9d5e6795c0c5e
+AAD =
+Tag = fafb76adf12f36740347e3edae62bca4
+Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb
+Ciphertext = c3618c991b15de641d291419ff6957e8b9ae5046dd8c6f08
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = 2b0163418a341588db0f5786d8
+AAD =
+Tag = 066f55f23d4e55bcbbbf2312ea2d8071
+Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb
+Ciphertext = 240927bfd671a92aef0311395ad55ae42233ecee53873da4
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = f16bba081bddda83546eabc9a5
+AAD =
+Tag = 004753689cc84810b8414f1464c0c5b9
+Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb
+Ciphertext = 4731a7e690c77cd47582ce54a1cec23d94c856b93a9fc767
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = ace99268a32b9c1b5ccd8b0d84
+AAD =
+Tag = 504da83478ede24026ec91fb12769e4b
+Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb
+Ciphertext = f0ea12eaff20c3a50674aa1546aaae3bd5c9249108535b21
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = 24570517bbb0df1b3fbd32f57a
+AAD =
+Tag = c9fcf9b9fd5e99767a7b1679b57ea961
+Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb
+Ciphertext = 5b164d9752ad6c497a7ab2d0bf8be68fea084ea5839b07b7
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = a6b2371acf8321864c08ddb4d8
+AAD =
+Tag = acb5a51d10a58d6584fbe73f1063c31b
+Plaintext = 1a43ca628026219c5a430c54021a5a3152ae517167399635
+Ciphertext = bd37326da18e5ac79a1a9512f724bb539530868576b79c67
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = f8e2d4e043f5fe7a72b6117811
+AAD =
+Tag = ce54cd7623a80a176f29a01b3abb642e
+Plaintext = 1a43ca628026219c5a430c54021a5a3152ae517167399635
+Ciphertext = 0455b4dd1069281e10531c0dc180ced9a5ef5d3fe0007470
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = c2b60f14c894ec6178fe79919f
+AAD =
+Tag = 95c66d3f411b478853886afd177d88c3
+Plaintext = 3e707d98f19972a63d913e6ea7533af2f41ff98aee2b2a36
+Ciphertext = ecd337640022635ce1ed273756d02b7feeb2515614c1fadc
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = 4de4c909ac0cc5fc608baf45ac
+AAD =
+Tag = 830b2b6317716b3975e2b101aebdd920
+Plaintext = 3e707d98f19972a63d913e6ea7533af2f41ff98aee2b2a36
+Ciphertext = e25d7c9fb388596b13a13b885d5b24e31579a3494ad256da
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = a544218dadd3c1
+AAD = d3d5424e20fbec43ae495353ed830271515ab104f8860c988d15b6d36c038eab
+Tag = 92d00fbe
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = 78c46e3249ca28
+AAD = 232e957c65ffa11988e830d4617d500f1c4a35c1221f396c41ab214f074ca2dc
+Tag = 9143e5c4
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = c18d9e7971e2ae
+AAD = 0d40324aa758dbbb5391b5e6edb8a2310c94a4ae51d4fba8a7458d7cc8488baa
+Tag = 54337466
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = 162d061351d82d
+AAD = 106d1fb32d948b0d8884f178ad2332a599445fae0f6f71f9ebe53a60b2df9b8e
+Tag = bf0bf84c
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = 3fcb328bc96404
+AAD = 10b2ffed4f95af0f98ed4f77c677b5786ad01b31c095bbc6e1c99cf13977abba
+Tag = 11250056
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = b3fd1eb1422277
+AAD = fa5398cf4cddbe4b45e9f5d7491cd9eefc5e494255961ba3f4b40d22b5f5fe76
+Tag = 13de5339
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = c42ac63de6f12a
+AAD = 7ff8d06c5abcc50d3820de34b03089e6c5b202bcbaabca892825553d4d30020a
+Tag = 4eed80fd
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = d4a7a672237e17
+AAD = d1cdad7fe886d07625a4334be6de4df0645d2a8b4008a8d35f04e6bcf87bfa56
+Tag = 4bc2e450
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = b23255372455c6
+AAD = d2e2c3607c40e0a807b86c6ebbc502ab42bdb7f85ab26299cd963bbba3a3a8fa
+Tag = b30e6bbd
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = 92272d40475fbb
+AAD = 2f3af695ee33a9ebe6a48ed1b00e337261857110bb104191a54fd13bd960d8bc
+Tag = f7c11fe2
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = c4a756f6024a9d
+AAD = 2317b324b6420ada9ea7bf52b71c5faf2485528da5f56b42c517be6355cdb28b
+Tag = 76673751
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = 3a1701b185d33a
+AAD = e5d54df8ed9f89b98c5ebb1bc5d5279c2e182784ff4cd9c869ae152e29d7a2b2
+Tag = 9a5382c3
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = e4db2e80dc3f63
+AAD = 7616bdf5737d01f936072b6576fa76556dfa072f7e2d7de16b9dc96ac8de409c
+Tag = 9e632f56
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = 4f490ce07e0150
+AAD = 3e12d09632c644c540077c6f90726d4167423a679322b2000a3f19cfcea02b33
+Tag = e1842c46
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4
+IV = b4aaf9ad1bde60
+AAD = 8c96c891456ddec29fe04299506723db2079a6667f96db5d198bf085acf2a4ef
+Tag = 9f644671
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = a544218dadd3c1
+AAD = d3d5424e20fbec43ae495353ed830271515ab104f8860c988d15b6d36c038eab
+Tag = 93af11a08379eb37a16aa2837f09d69d
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = 78c46e3249ca28
+AAD = 232e957c65ffa11988e830d4617d500f1c4a35c1221f396c41ab214f074ca2dc
+Tag = d19b0c14ec686a7961ca7c386d125a65
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = c18d9e7971e2ae
+AAD = 0d40324aa758dbbb5391b5e6edb8a2310c94a4ae51d4fba8a7458d7cc8488baa
+Tag = 02ea916d60e2ceec6d9dc9b1185569b3
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = 162d061351d82d
+AAD = 106d1fb32d948b0d8884f178ad2332a599445fae0f6f71f9ebe53a60b2df9b8e
+Tag = fabd2d0c422b47d363ea9936ff4a311b
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = 3fcb328bc96404
+AAD = 10b2ffed4f95af0f98ed4f77c677b5786ad01b31c095bbc6e1c99cf13977abba
+Tag = b3884b69d117146cfa5529901753ddc0
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = b3fd1eb1422277
+AAD = fa5398cf4cddbe4b45e9f5d7491cd9eefc5e494255961ba3f4b40d22b5f5fe76
+Tag = 7162026b6306e74fe32ece8433801bc2
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = c42ac63de6f12a
+AAD = 7ff8d06c5abcc50d3820de34b03089e6c5b202bcbaabca892825553d4d30020a
+Tag = b53d93cbfd3d5cf3720cef5080bc7224
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = d4a7a672237e17
+AAD = d1cdad7fe886d07625a4334be6de4df0645d2a8b4008a8d35f04e6bcf87bfa56
+Tag = c8bbecf69ecf8d10f0863bb4b7cbed51
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = b23255372455c6
+AAD = d2e2c3607c40e0a807b86c6ebbc502ab42bdb7f85ab26299cd963bbba3a3a8fa
+Tag = 6037145cc23a175760ae4b573907c80c
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = 92272d40475fbb
+AAD = 2f3af695ee33a9ebe6a48ed1b00e337261857110bb104191a54fd13bd960d8bc
+Tag = df7ea77425d631f652ffe096a8157f71
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = c4a756f6024a9d
+AAD = 2317b324b6420ada9ea7bf52b71c5faf2485528da5f56b42c517be6355cdb28b
+Tag = 7182b25ef5b113c13fa8f6769e74f1e2
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = 3a1701b185d33a
+AAD = e5d54df8ed9f89b98c5ebb1bc5d5279c2e182784ff4cd9c869ae152e29d7a2b2
+Tag = 0a5d1bc02c5fe096a8b9d94d1267c49a
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = e4db2e80dc3f63
+AAD = 7616bdf5737d01f936072b6576fa76556dfa072f7e2d7de16b9dc96ac8de409c
+Tag = 9eb6d9757ec7c56cc8c79461e0017486
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = 4f490ce07e0150
+AAD = 3e12d09632c644c540077c6f90726d4167423a679322b2000a3f19cfcea02b33
+Tag = 1eda43bf07f2bf003107f3a0ba3a4c18
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = b4aaf9ad1bde60
+AAD = 8c96c891456ddec29fe04299506723db2079a6667f96db5d198bf085acf2a4ef
+Tag = 5287cc160c5dd3a0f9c1986aac2a621c
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = a544218dadd3c10583db49cf39
+AAD = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e09a1005e024f6907
+Tag = 866d4227
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = e8de970f6ee8e80ede933581b5
+AAD = 89f8b068d34f56bc49d839d8e47b347e6dae737b903b278632447e6c0485d26a
+Tag = 94cb1127
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = 6de75d3c05e83755083399a5f7
+AAD = 504b08cf34cbe17acf631ef219ae01437ebb6a980ab2f00121bb3073701b6511
+Tag = 82c2b67a
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = 58d43b9f1581c590daab1a5c56
+AAD = 749f149ef306c70a5d006d9777adbbf7c0de453898c2978ef7c281535ea9b24c
+Tag = 8c8283f9
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = dfdcbdff329f7af70731d8e276
+AAD = 2ae56ddde2876d70b3b34eda8c2b1d096c836d5225d53ec460b724b6e16aa5a3
+Tag = c4ac0952
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = 199ec321d1d24d5408076912d6
+AAD = a77526f3614cd974498a76d8b3cb7bacc623fdc9c85503289c462df888b199ed
+Tag = c59aa931
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = 60f2490ba0c658848859fcbea8
+AAD = 3ad743283064929bf4fe4e0807f710f5e6a273e22614c728c3280a27b6c614a0
+Tag = 27c3953d
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = 6f29ca274190400720bba27651
+AAD = c0850aaf141bd3f1b24f4d882590f58682b41f874748f29f8925b4914f444842
+Tag = cb1ac8eb
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = f1dfb6fdb31cb423226f181c09
+AAD = ac6b08900fc1c9463e7dfdb60eee444c4989d7b200e675f3220ba1e14eed0ab4
+Tag = 4dcc55cc
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = 0d45226c98eaa9bb445a3aa4f9
+AAD = b9cb3e1a5bcccb0b0599414c9822275b66fa0f913d51bdb0a2228cbb5aad0e0a
+Tag = 727d8f5e
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = 39cdbb24bd273a3fe96f42ca9d
+AAD = ddfe6c22f4cdc3128050072005f5bd4ecdef1d836e891683f1ba921d33fafba7
+Tag = 5aa56a54
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = db113f38f0504615c5c9347c3d
+AAD = 3b71bc84e48c6dadf6ead14621d22468a3d4c9c103ac96970269730bcfce239b
+Tag = c38fbdff
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = d16a20ef5f6587f1ee3cb7850b
+AAD = b1133e1cd369617a9f937e9a1eb86a0979ee30b5b7b0b6ff838d9e11301d6b72
+Tag = 6be30c42
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = d35f531f714694b5e49303a980
+AAD = 55b791ee495299916ff3c2327b4990952bebd0a2da9acfc553c6c996e354a4b5
+Tag = d34e90bb
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088
+IV = 220624db34a022b758473994a2
+AAD = 5b3b2ae87b0d6759f38a858423227f8687f35478a8f565409b741eadcac4d8c4
+Tag = 4a5d14bc
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = a544218dadd3c10583db49cf39
+AAD = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e09a1005e024f6907
+Tag = 867b0d87cf6e0f718200a97b4f6d5ad5
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = e8de970f6ee8e80ede933581b5
+AAD = 89f8b068d34f56bc49d839d8e47b347e6dae737b903b278632447e6c0485d26a
+Tag = 677a040d46ee3f2b7838273bdad14f16
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = 6de75d3c05e83755083399a5f7
+AAD = 504b08cf34cbe17acf631ef219ae01437ebb6a980ab2f00121bb3073701b6511
+Tag = f650d46ade2cbabbc68ead6df1ea0c37
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = 58d43b9f1581c590daab1a5c56
+AAD = 749f149ef306c70a5d006d9777adbbf7c0de453898c2978ef7c281535ea9b24c
+Tag = 11b8fe8c139ee38f77fd8fa552cbff67
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = dfdcbdff329f7af70731d8e276
+AAD = 2ae56ddde2876d70b3b34eda8c2b1d096c836d5225d53ec460b724b6e16aa5a3
+Tag = ad879c64425e6c1ec4841bbb0f99aa8b
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = 199ec321d1d24d5408076912d6
+AAD = a77526f3614cd974498a76d8b3cb7bacc623fdc9c85503289c462df888b199ed
+Tag = 3c64f8731930ae000162c10654531066
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = 60f2490ba0c658848859fcbea8
+AAD = 3ad743283064929bf4fe4e0807f710f5e6a273e22614c728c3280a27b6c614a0
+Tag = e2751f153fc76c0dec5e0cf2d30c1a28
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = 6f29ca274190400720bba27651
+AAD = c0850aaf141bd3f1b24f4d882590f58682b41f874748f29f8925b4914f444842
+Tag = 76127bf891141e73854752ed10c02bd0
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = f1dfb6fdb31cb423226f181c09
+AAD = ac6b08900fc1c9463e7dfdb60eee444c4989d7b200e675f3220ba1e14eed0ab4
+Tag = 4bd833f9da0496e5f6a08a05d02df385
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = 0d45226c98eaa9bb445a3aa4f9
+AAD = b9cb3e1a5bcccb0b0599414c9822275b66fa0f913d51bdb0a2228cbb5aad0e0a
+Tag = 05f166328a67a8c58b10a7348f3df612
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = 39cdbb24bd273a3fe96f42ca9d
+AAD = ddfe6c22f4cdc3128050072005f5bd4ecdef1d836e891683f1ba921d33fafba7
+Tag = 42499bcd949a5163855a9794f11f917e
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = db113f38f0504615c5c9347c3d
+AAD = 3b71bc84e48c6dadf6ead14621d22468a3d4c9c103ac96970269730bcfce239b
+Tag = fc85464a81fe372c12c9e4f0f3bf9c37
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = d16a20ef5f6587f1ee3cb7850b
+AAD = b1133e1cd369617a9f937e9a1eb86a0979ee30b5b7b0b6ff838d9e11301d6b72
+Tag = 8c7501f423647dee77668858c5e350bb
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = d35f531f714694b5e49303a980
+AAD = 55b791ee495299916ff3c2327b4990952bebd0a2da9acfc553c6c996e354a4b5
+Tag = b1c09b093788da19e33c5a6e82ed9627
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = 220624db34a022b758473994a2
+AAD = 5b3b2ae87b0d6759f38a858423227f8687f35478a8f565409b741eadcac4d8c4
+Tag = d2231ee1455b0bc337c4f8173fb8647c
+Plaintext =
+Ciphertext =
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = a544218dadd3c1
+AAD = d3d5424e20fbec43ae495353ed830271515ab104f8860c988d15b6d36c038eab
+Tag = 3ebc7720
+Plaintext = 78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3
+Ciphertext = c2fe12658139f5d0dd22cadf2e901695b579302a72fc5608
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = 6ba004fd176791
+AAD = 5a053b2a1bb87e85d56527bfcdcd3ecafb991bb10e4c862bb0751c700a29f54b
+Tag = c44db2c9
+Plaintext = 78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3
+Ciphertext = 94748ba81229e53c38583a8564b23ebbafc6f6efdf4c2a81
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = 45c5c284836414
+AAD = 8f01a61eb17366d4e70942ab69b4f4bcf8ff6a97f5972ee5780a264c9dcf7d93
+Tag = 83a09067
+Plaintext = 78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3
+Ciphertext = 1d670ccf3e9ba59186c48da2e5bd0ab21973eee2ea2985bf
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = c69f7679c80546
+AAD = 5d6c04a5b422b46065a79a889e30ac8d1b53b65d230d4c88190903a24e1fe1ea
+Tag = 392ae25d
+Plaintext = 78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3
+Ciphertext = 2c8c80ff10fac1bf6c9c83533c1514ee032c0983730b0657
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = 57b940550a383b
+AAD = 33c2c3a57bf8393b126982c96d87daeacd5eadad1519073ad8c84cb9b760296f
+Tag = 3b91ff03
+Plaintext = 6fb5ce32a851676753ba3523edc5ca82af1843ffc08f1ef0
+Ciphertext = e1b4ec4279bb62902c12521e6b874171695c5da46c647cc0
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = 11edd12ea5873d
+AAD = e32e5384038379e2b7382ba337b6f7a72a1569e110ee89c4dd6aa6f7e69f5250
+Tag = 64b837fb
+Plaintext = 6fb5ce32a851676753ba3523edc5ca82af1843ffc08f1ef0
+Ciphertext = b5dda89fe879d6a665b99285b6d937fd5877ebef4de049fb
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = f32222e9eec4bd
+AAD = 684595e36eda1db5f586941c9f34c9f8d477970d5ccc14632d1f0cec8190ae68
+Tag = 2a4e56a7
+Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf
+Ciphertext = 224db21beb8cd0069007660e783c3f85706b014128368aab
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = e0a0a7f262cb51
+AAD = 1d93b2856ad2bf3700440f9a281bd8947ba209e9ffd18e69921ed0678c957c6c
+Tag = e960a769
+Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf
+Ciphertext = ba1ce3a799e1173178b6788723005566f9269d5828c85d28
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = 40316e7b38bdad
+AAD = 6e49acd9c26944740c778e74b1dbaa8d640c7e18e949a1661f8a77543db69e1f
+Tag = ed14a5a5
+Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf
+Ciphertext = 79d59e4bb251988c019c4eaaee2a2513f9cb0521334018fd
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = 33008ef5baf263
+AAD = a726f31d9a22bfc0e7e4c3111b0d304e106ab04ed318f8bfe6ec9cb3a811285b
+Tag = d7d6c61d
+Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf
+Ciphertext = af4350795f24087aa05070d6d5f55ebb12d7ad3141066866
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = b48a16fb9a065d
+AAD = be05e9c934c1dcba45223d47c6646a2d13c3b93265e354ae4970484b5101d809
+Tag = d0605b84
+Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf
+Ciphertext = 22d2da531be1f0d1da4bc21f984d29bf56bed2e92da6bf42
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = 14c9bd561c47c1
+AAD = 141ae365f8e65ab9196c4e8cd4e62189b304d67de38f2117e84ec0ec8f260ebd
+Tag = 8f9d6814
+Plaintext = c22524a1ea444be3412b0d773d4ea2ff0af4c1ad2383cba8
+Ciphertext = 61b46c9024eed3989064a52df90349c18e14e4b552779d3f
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = 5fb871eac2e52a
+AAD = ff23906e9067da8999842318f2a867759ca2d171395c2ff31fa5a4e2ab349c45
+Tag = d930f5ce
+Plaintext = c22524a1ea444be3412b0d773d4ea2ff0af4c1ad2383cba8
+Ciphertext = 539799c2b22a33dd648fc4497d12f9455beaf932f1eaaff4
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = 1ccec9923aa6e8
+AAD = 88a6d037009a1c1756f72bb4589d6d940bd514ed55386baefacc6ac3ca6f8795
+Tag = 0d83fa19
+Plaintext = 518a7fb11c463bf23798982118f3cfe4d7ddde9184f37d4f
+Ciphertext = 52f8205534447d722be2b9377f7395938cc88af081a11ccb
+
+Cipher = aes-256-ccm
+Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a
+IV = 68a5351e4422c8
+AAD = 303c767468f48ac9f6e331bbad535b06aa00ab593327320799e17eff63afd3fe
+Tag = f243e273
+Plaintext = 518a7fb11c463bf23798982118f3cfe4d7ddde9184f37d4f
+Ciphertext = d11c892ae155098f5e4b5fe60c7afd74fb2dbcc4db956556
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = a544218dadd3c1
+AAD = d3d5424e20fbec43ae495353ed830271515ab104f8860c988d15b6d36c038eab
+Tag = 1ac68bd42f5ec7fa7e068cc0ecd79c2a
+Plaintext = 78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3
+Ciphertext = 3341168eb8c48468c414347fb08f71d2086f7c2d1bd581ce
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 6ba004fd176791
+AAD = 5a053b2a1bb87e85d56527bfcdcd3ecafb991bb10e4c862bb0751c700a29f54b
+Tag = 47c3338a2400809e739b63ba8227d2f9
+Plaintext = 78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3
+Ciphertext = d543acda712b898cbb27b8f598b2e4438ce587a836e27851
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 45c5c284836414
+AAD = 8f01a61eb17366d4e70942ab69b4f4bcf8ff6a97f5972ee5780a264c9dcf7d93
+Tag = 46288ce9dd1c7088c752e35947fdca98
+Plaintext = 78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3
+Ciphertext = 39a8af5c976b995ea8049e55b68bc65503592ab009156386
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = c69f7679c80546
+AAD = 5d6c04a5b422b46065a79a889e30ac8d1b53b65d230d4c88190903a24e1fe1ea
+Tag = 7fd89caef9388fbb82361b8d53d9edc6
+Plaintext = 78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3
+Ciphertext = 950fbf6445f6ffb68178f52f5079d0c6081a48ae1f267a0b
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 57b940550a383b
+AAD = 33c2c3a57bf8393b126982c96d87daeacd5eadad1519073ad8c84cb9b760296f
+Tag = 4d8b30df941f3536ffb42083ef0e1c30
+Plaintext = 6fb5ce32a851676753ba3523edc5ca82af1843ffc08f1ef0
+Ciphertext = fbfed2c94f50ca10466da9903ef85833ad48ca00556e66d1
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 11edd12ea5873d
+AAD = e32e5384038379e2b7382ba337b6f7a72a1569e110ee89c4dd6aa6f7e69f5250
+Tag = 04cf3426e8f975125a7eed00e5f33b6c
+Plaintext = 6fb5ce32a851676753ba3523edc5ca82af1843ffc08f1ef0
+Ciphertext = 2ebfeb7a843618b37025352df3538526517ed320adfb486c
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = f32222e9eec4bd
+AAD = 684595e36eda1db5f586941c9f34c9f8d477970d5ccc14632d1f0cec8190ae68
+Tag = f78e9e5e9faa058112af57f4ac78db2c
+Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf
+Ciphertext = dae13e6967c8b1ee0dd2d5ba1dd1de69f22c95da39528f9e
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = e0a0a7f262cb51
+AAD = 1d93b2856ad2bf3700440f9a281bd8947ba209e9ffd18e69921ed0678c957c6c
+Tag = 0c63959ce534a0f87fb42a9b000dec84
+Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf
+Ciphertext = e683040a0bcf04c1748e7746400d6ef0f7cd8e77a2951779
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 40316e7b38bdad
+AAD = 6e49acd9c26944740c778e74b1dbaa8d640c7e18e949a1661f8a77543db69e1f
+Tag = 7d1a2111dc21aec79ef73193b306d31f
+Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf
+Ciphertext = 829e50e8c09e727a58287e6eb7d38edeb8ab39db279c0639
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 33008ef5baf263
+AAD = a726f31d9a22bfc0e7e4c3111b0d304e106ab04ed318f8bfe6ec9cb3a811285b
+Tag = 7c516d2d1a8318893923f398ca249401
+Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf
+Ciphertext = 873c91e76dca0062ae66325aefb84ece3e98928f8dbc5fee
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = b48a16fb9a065d
+AAD = be05e9c934c1dcba45223d47c6646a2d13c3b93265e354ae4970484b5101d809
+Tag = 8055e777bb57eb49497cd2e233ee06fd
+Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf
+Ciphertext = 343f6c86f2b852ac388a096faec4472107a924aba56d0cb8
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 14c9bd561c47c1
+AAD = 141ae365f8e65ab9196c4e8cd4e62189b304d67de38f2117e84ec0ec8f260ebd
+Tag = a1586bf922412e73ce338e372615c3bc
+Plaintext = c22524a1ea444be3412b0d773d4ea2ff0af4c1ad2383cba8
+Ciphertext = a654238fb8b05e293dba07f9d68d75a7f0fbf40fe20edaeb
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 5fb871eac2e52a
+AAD = ff23906e9067da8999842318f2a867759ca2d171395c2ff31fa5a4e2ab349c45
+Tag = 03538d108df6ecd6f39acfe076ba5fb8
+Plaintext = c22524a1ea444be3412b0d773d4ea2ff0af4c1ad2383cba8
+Ciphertext = 4846816923ed9f0254bdd0be01028f75061d3594ad3a45bd
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 1ccec9923aa6e8
+AAD = 88a6d037009a1c1756f72bb4589d6d940bd514ed55386baefacc6ac3ca6f8795
+Tag = 3e3f51ee37fdcc5d81dd85d9e9d4f44e
+Plaintext = 518a7fb11c463bf23798982118f3cfe4d7ddde9184f37d4f
+Ciphertext = 765067ef768908d91ee4c3923943e0c7be70e2e06db99a4b
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 68a5351e4422c8
+AAD = 303c767468f48ac9f6e331bbad535b06aa00ab593327320799e17eff63afd3fe
+Tag = d8a906488f79ad5d2234d72458dcfcd4
+Plaintext = 518a7fb11c463bf23798982118f3cfe4d7ddde9184f37d4f
+Ciphertext = e58ea6c1522e5a3e93a85edd05ae80d6cf5c4dd6d604a8f8
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = a544218dadd3c10583db49cf39
+AAD = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e09a1005e024f6907
+Tag = ef891339
+Plaintext = e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3
+Ciphertext = c0ea400b599561e7905b99262b4565d5c3dc49fad84d7c69
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 8fa501c5dd9ac9b868144c9fa5
+AAD = 5bb40e3bb72b4509324a7edc852f72535f1f6283156e63f6959ffaf39dcde800
+Tag = 3d488623
+Plaintext = e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3
+Ciphertext = 60871e03ea0eb968536c99f926ea24ef43d41272ad9fb7f6
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 9bc0d1502a47e46350fe8667ca
+AAD = 07203674260208d5bd4d39506836f7e76ffc58e938799f21aff7bb4dea4410d2
+Tag = 527e5ed0
+Plaintext = e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3
+Ciphertext = 81d7859dcbe51dcc94fe2591cd3b0540003d49a8c4dccbf4
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 611cb4c66e88f6acf96fea1919
+AAD = 327ee3657e49d4d988362fabae303ccea6638e5cb45993d9d56269bc3d3af32b
+Tag = 4d20d5fa
+Plaintext = e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3
+Ciphertext = bef380ad725b65fb5fceeabf09c665bc35089f434ec83149
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 0dd613c0fe28e913c0edbb8404
+AAD = 2ad306575b577c2f61da7212ab63e3db3941f1f751f2356c7443531a90b9d141
+Tag = d2898c3b
+Plaintext = 9522fb1f1aa58493cba682d788186d902cfc93e80fd6b998
+Ciphertext = fabe11c9629e598228f5209f3dbcc641fe4b1a22cadb0821
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 68806dfe720d0a9a84697de5f2
+AAD = c6b0e4dfd723d7637510f887b7852f60ecdf72e0d33396560fed6534d5b7f015
+Tag = 41e92090
+Plaintext = 9522fb1f1aa58493cba682d788186d902cfc93e80fd6b998
+Ciphertext = b7eb87f84951640de731d4093f1a4ed5f831138a27465d39
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 3e0fe3427eeda80f02dda4fed5
+AAD = ae0d1c9c834d60ff0ecfb3c0d78c72ddb789e58adfc166c81d5fc6395b31ec33
+Tag = d18fc889
+Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc
+Ciphertext = d88f8fcd772125212ce09c2a6e5b5693dd35073f992004f0
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 7c0c76d9f9316ff6c98758b464
+AAD = 31a0338c3839931fa1dd5131cb796c4c6cfde9fb336d8a80ac35dec463be7a94
+Tag = 0f39ecea
+Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc
+Ciphertext = d2d7d52b11304fc1d15b8c20e296ba7c63d99f4ce86cc8ae
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 07c728135bdfede0e0c8036b17
+AAD = 25a152850b4b80b19d8f0b504b2a8a241824b3a1fca8d85c8713b2c0c84b5e02
+Tag = 94b1d516
+Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc
+Ciphertext = ae1d9f82efb464d5dc2018cffa309634c09b34d1122c4bd9
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 710c96d7a6f09de83f0507f28a
+AAD = 2d64acfdbfc582cd9a933790eb1b739fb02e53f511255e49f421bb7acc98a130
+Tag = d394d047
+Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc
+Ciphertext = 477c985d92ad1b69d22315235a29e3d3a5991487cbdc8d11
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 977bbcdeb6a7d9dcf8664bc2d8
+AAD = 135786125258a49475338ac1961d2718433b9e84cf64f63ca52913e8dd12e505
+Tag = bd3d22eb
+Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc
+Ciphertext = d1c085c75d808dc6db493b8a0b4d884e0700d2844a1b4b46
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 60122cbd219e5cf17415e8bc09
+AAD = 895a45ddbe0c80793eccbf820de13a233b6aa7045cfd5313388e7184c392b216
+Tag = 1c0d067c
+Plaintext = 794e734966e6d0001699aec3f8ab8f194de7653d3091b1b9
+Ciphertext = 76bdd9a7b34bf14ae121a87fdfa144f71b848744af6a2f0b
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 83a07f2e685959cb50a1bd2bce
+AAD = 02afe300ec0cf0acb59108b2f70e069300294e34f40bb032cb59907599664408
+Tag = 74192744
+Plaintext = 794e734966e6d0001699aec3f8ab8f194de7653d3091b1b9
+Ciphertext = 413e2e8df9d65b4e5d3b63a738258aaee643f364be9a01b9
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 3542fbe0f59a6d5f3abf619b7d
+AAD = dd4531f158a2fa3bc8a339f770595048f4a42bc1b03f2e824efc6ba4985119d8
+Tag = 79018ad5
+Plaintext = c5b3d71312ea14f2f8fae5bd1a453192b6604a45db75c5ed
+Ciphertext = 617d8036e2039d516709062379e0550cbd71ebb90fea967c
+
+Cipher = aes-256-ccm
+Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe
+IV = 48f2d4c0b17072e0a9c300d90b
+AAD = c56175e2cfe0d37454d989afcc36686fb34c015439601567506a4d0003182be7
+Tag = 5c916f91
+Plaintext = c5b3d71312ea14f2f8fae5bd1a453192b6604a45db75c5ed
+Ciphertext = 40e609c739e409750a6c41d9c6ea64ce36f70711b4ca3e36
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e
+IV = a544218dadd3c10583db49cf39
+AAD = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e09a1005e024f6907
+Tag = 367f30f2eaad8c063ca50795acd90203
+Plaintext = e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3
+Ciphertext = 8d34cdca37ce77be68f65baf3382e31efa693e63f914a781
+
+Cipher = aes-256-ccm
+Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e
+IV = 8fa501c5dd9ac9b868144c9fa5
+AAD = 5bb40e3bb72b4509324a7edc852f72535f1f6283156e63f6959ffaf39dcde800
+Tag = 4b41096dfdbe9cc1ab610f8f3e038d16
+Plaintext = e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3
+Ciphertext = 516c0095cc3d85fd55e48da17c592e0c7014b9daafb82bdc
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e
+IV = 9bc0d1502a47e46350fe8667ca
+AAD = 07203674260208d5bd4d39506836f7e76ffc58e938799f21aff7bb4dea4410d2
+Tag = d81ec96df41b8fa8262ed2db880b5e85
+Plaintext = e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3
+Ciphertext = 0293eae9f8d8bd7ad45357f733fc7b5d990d894783e18501
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e
+IV = 611cb4c66e88f6acf96fea1919
+AAD = 327ee3657e49d4d988362fabae303ccea6638e5cb45993d9d56269bc3d3af32b
+Tag = 6ee80f60f72db2cbf25b2f8c6af8749c
+Plaintext = e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3
+Ciphertext = 256bad8295e67d8d450f5ecc8276920ec23b1156c57be7c9
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e
+IV = 0dd613c0fe28e913c0edbb8404
+AAD = 2ad306575b577c2f61da7212ab63e3db3941f1f751f2356c7443531a90b9d141
+Tag = 945ee6db24aea5f5098952f1203339ce
+Plaintext = 9522fb1f1aa58493cba682d788186d902cfc93e80fd6b998
+Ciphertext = 6df09613ea986c2d91a57a45a0942cbf20e0dfca12fbda8c
+
+Cipher = aes-256-ccm
+Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e
+IV = 68806dfe720d0a9a84697de5f2
+AAD = c6b0e4dfd723d7637510f887b7852f60ecdf72e0d33396560fed6534d5b7f015
+Tag = 2cc4c90ac3f798957cb09a05868a8ad5
+Plaintext = 9522fb1f1aa58493cba682d788186d902cfc93e80fd6b998
+Ciphertext = c5b64577d3c34e50f7da5072db5bda1d1d2c6db1a4f1183e
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e
+IV = 3e0fe3427eeda80f02dda4fed5
+AAD = ae0d1c9c834d60ff0ecfb3c0d78c72ddb789e58adfc166c81d5fc6395b31ec33
+Tag = 6b1556631d3b52bf24154afec1448ef6
+Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc
+Ciphertext = 2bfe51f1f43b982d47f76ea8206ddbf585d6f30cec0d4ef1
+
+Cipher = aes-256-ccm
+Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e
+IV = 7c0c76d9f9316ff6c98758b464
+AAD = 31a0338c3839931fa1dd5131cb796c4c6cfde9fb336d8a80ac35dec463be7a94
+Tag = 14f42ec81e3af71c9a5de7e0ac16ca69
+Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc
+Ciphertext = 1622ae109073f44a4596722d9943fea774dfc2a1f939fc09
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e
+IV = 07c728135bdfede0e0c8036b17
+AAD = 25a152850b4b80b19d8f0b504b2a8a241824b3a1fca8d85c8713b2c0c84b5e02
+Tag = 43d67d90850c4c76a43df1f95170b29b
+Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc
+Ciphertext = 4c0b361a766d366d983c41e793d75635e17f6eab2eadcf97
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e
+IV = 710c96d7a6f09de83f0507f28a
+AAD = 2d64acfdbfc582cd9a933790eb1b739fb02e53f511255e49f421bb7acc98a130
+Tag = 7bd5d5c8c098299394333b34fae9a110
+Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc
+Ciphertext = 5b02347f30213df7f1506d7dca41b838c92aea0f190c5dba
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e
+IV = 977bbcdeb6a7d9dcf8664bc2d8
+AAD = 135786125258a49475338ac1961d2718433b9e84cf64f63ca52913e8dd12e505
+Tag = e26149d4a9711be81b4f69aa9fabd7f6
+Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc
+Ciphertext = c77283ca15484d82469ce7249d1fb8e5f4c3bc8245fb4d97
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e
+IV = 60122cbd219e5cf17415e8bc09
+AAD = 895a45ddbe0c80793eccbf820de13a233b6aa7045cfd5313388e7184c392b216
+Tag = e47d00f2eebb544e6ba7559ac2f34edb
+Plaintext = 794e734966e6d0001699aec3f8ab8f194de7653d3091b1b9
+Ciphertext = bf0d219bb50fcc1d51f654bb0fd8b44efa25aef39e2f11af
+
+Cipher = aes-256-ccm
+Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e
+IV = 83a07f2e685959cb50a1bd2bce
+AAD = 02afe300ec0cf0acb59108b2f70e069300294e34f40bb032cb59907599664408
+Tag = 6fa3fddc87690a359fe55f8fa12ba749
+Plaintext = 794e734966e6d0001699aec3f8ab8f194de7653d3091b1b9
+Ciphertext = 1609f8de59da4f50ce034977d132d4f9881a9b85ffa5bb88
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+Cipher = aes-256-ccm
+Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e
+IV = 3542fbe0f59a6d5f3abf619b7d
+AAD = dd4531f158a2fa3bc8a339f770595048f4a42bc1b03f2e824efc6ba4985119d8
+Tag = 567a6b4426f1667136bed4a5e32a2bc1
+Plaintext = c5b3d71312ea14f2f8fae5bd1a453192b6604a45db75c5ed
+Ciphertext = 39c2e8f6edfe663b90963b98eb79e2d4f7f28a5053ae8881
+
+
+Title = NIST CCM 128 Variable Associated Data Tests
+
+Cipher = aes-128-ccm
+Key = d24a3d3dde8c84830280cb87abad0bb3
+IV = f1100035bb24a8d26004e0e24b
+AAD =
+Tag = 1123301219c70599b7c373ad4b3ad67b
+Plaintext = 7c86135ed9c2a515aaae0e9a208133897269220f30870006
+Ciphertext = 1faeb0ee2ca2cd52f0aa3966578344f24e69b742c4ab37ab
+
+Cipher = aes-128-ccm
+Key = d24a3d3dde8c84830280cb87abad0bb3
+IV = f1100035bb24a8d26004e0e24b
+AAD =
+Tag = b77a140819f39ef045103e785e1df8c2
+Plaintext = 48df73208cdc63d716752df7794807b1b2a80794a2433455
+Ciphertext = 2bf7d09079bc0b904c711a0b0e4a70ca8ea892d9566f03f8
+
+Cipher = aes-128-ccm
+Key = d24a3d3dde8c84830280cb87abad0bb3
+IV = f1100035bb24a8d26004e0e24b
+AAD =
+Tag = 4b01098842a618390619b86e00850b2e
+Plaintext = b99de8168e8c13ea4aef66bdb93133dff5d57e9837ff6ccb
+Ciphertext = dab54ba67bec7bad10eb5141ce3344a4c9d5ebd5c3d35b66
+
+Cipher = aes-128-ccm
+Key = d24a3d3dde8c84830280cb87abad0bb3
+IV = f1100035bb24a8d26004e0e24b
+AAD =
+Tag = 8bd518724ab84fb814fe7b5570769f7f
+Plaintext = 09fc21ac4a1f43de29621cacf3ad84e055c6b220721af7ce
+Ciphertext = 6ad4821cbf7f2b9973662b5084aff39b69c6276d8636c063
+
+Cipher = aes-128-ccm
+Key = d24a3d3dde8c84830280cb87abad0bb3
+IV = f1100035bb24a8d26004e0e24b
+AAD =
+Tag = 7229cbcecef221570cee8345b38cd6ec
+Plaintext = cb43320d7488dfd6eed9efd88f440ea3f6f77a0df09d0727
+Ciphertext = a86b91bd81e8b791b4ddd824f84679d8caf7ef4004b1308a
+
+Cipher = aes-128-ccm
+Key = d24a3d3dde8c84830280cb87abad0bb3
+IV = f1100035bb24a8d26004e0e24b
+AAD =
+Tag = fee47fec27d7764e5e2819c850088bac
+Plaintext = a350ed58c04473e113b9088b1fb9dad92807f6b63b0d690c
+Ciphertext = c0784ee835241ba649bd3f7768bbada2140763fbcf215ea1
+
+Cipher = aes-128-ccm
+Key = d24a3d3dde8c84830280cb87abad0bb3
+IV = f1100035bb24a8d26004e0e24b
+AAD =
+Tag = 54d610bc1ab4bc9a8a28c7306f7c539e
+Plaintext = 0709e691faf41383fab5d1848a8eee77101d1c99e526a264
+Ciphertext = 642145210f947bc4a0b1e678fd8c990c2c1d89d4110a95c9
+
+Cipher = aes-128-ccm
+Key = d24a3d3dde8c84830280cb87abad0bb3
+IV = f1100035bb24a8d26004e0e24b
+AAD =
+Tag = 2e31657ecc51f5ec8590482fc053230d
+Plaintext = e7b913c2f0630562eb1c16b3b1ed84090c011a15c09e5471
+Ciphertext = 8491b07205036d25b118214fc6eff37230018f5834b263dc
+
+Cipher = aes-128-ccm
+Key = d24a3d3dde8c84830280cb87abad0bb3
+IV = f1100035bb24a8d26004e0e24b
+AAD =
+Tag = d500827f2081b00397102f90fc9ccd88
+Plaintext = 6b909697074900d41ce8c7d559b229af11fb3cec334784d4
+Ciphertext = 08b83527f229689346ecf0292eb05ed42dfba9a1c76bb379
+
+Cipher = aes-128-ccm
+Key = d24a3d3dde8c84830280cb87abad0bb3
+IV = f1100035bb24a8d26004e0e24b
+AAD =
+Tag = e2e7997803029476598c0e8d4fc63857
+Plaintext = 495ff03335bcb39a317b9ea3f8bb6306fa771f3c55adebce
+Ciphertext = 2a775383c0dcdbdd6b7fa95f8fb9147dc6778a71a181dc63
+
+Cipher = aes-128-ccm
+Key = 08b0da255d2083808a1b4d367090bacc
+IV = 777828b13679a9e2ca89568233
+AAD = dd
+Tag = d16b6282283e16602331bcca9d51ce76
+Plaintext = 1b156d7e2bf7c9a25ad91cff7b0b02161cb78ff9162286b0
+Ciphertext = e8b80af4960d5417c15726406e345c5c46831192b03432ee
+
+Cipher = aes-128-ccm
+Key = 08b0da255d2083808a1b4d367090bacc
+IV = 777828b13679a9e2ca89568233
+AAD = c5
+Tag = 08ebeed45f67ef8733737c9c6f82daad
+Plaintext = 032fee9dbffccc751e6a1ee6d07bb218b3a7ec6bf5740ead
+Ciphertext = f0828917020651c085e42459c544ec52e99372005362baf3
+
+Cipher = aes-128-ccm
+Key = 08b0da255d2083808a1b4d367090bacc
+IV = 777828b13679a9e2ca89568233
+AAD = 68
+Tag = f9b477e3a23bfdfdb619c7bc531fbcce
+Plaintext = 9c4cd65b92070bc382fd18146611defb4204acddfdf6b276
+Ciphertext = 6fe1b1d12ffd9676197322ab732e80b1183032b65be00628
+
+Cipher = aes-128-ccm
+Key = 08b0da255d2083808a1b4d367090bacc
+IV = 777828b13679a9e2ca89568233
+AAD = be
+Tag = aa82130f5a86c0cd0433585e5c208cf7
+Plaintext = 2ff93ef2fc5fe2c297ace05f3f7585aed75ef90ade3acf89
+Ciphertext = dc54597841a57f770c22dae02a4adbe48d6a6761782c7bd7
+
+Cipher = aes-128-ccm
+Key = 08b0da255d2083808a1b4d367090bacc
+IV = 777828b13679a9e2ca89568233
+AAD = 7a
+Tag = 9d60012a2f25463e036ceecea57b3c97
+Plaintext = 62766e9acd41285eeed9b4007340dbb611699624274ad117
+Ciphertext = 91db091070bbb5eb75578ebf667f85fc4b5d084f815c6549
+
+Cipher = aes-128-ccm
+Key = 08b0da255d2083808a1b4d367090bacc
+IV = 777828b13679a9e2ca89568233
+AAD = 13
+Tag = e337897c90eb260729a729aed1c8a244
+Plaintext = ea689c268a04912d0527b16d9d9406df38302fb11cb64a99
+Ciphertext = 19c5fbac37fe0c989ea98bd288ab58956204b1dabaa0fec7
+
+Cipher = aes-128-ccm
+Key = 08b0da255d2083808a1b4d367090bacc
+IV = 777828b13679a9e2ca89568233
+AAD = e5
+Tag = 73dc2911c75b37cd995481d42b04524a
+Plaintext = f31e35953beb211efcce487ba8c0cd1a8446343d5851b9fd
+Ciphertext = 00b3521f8611bcab674072c4bdff9350de72aa56fe470da3
+
+Cipher = aes-128-ccm
+Key = 08b0da255d2083808a1b4d367090bacc
+IV = 777828b13679a9e2ca89568233
+AAD = e3
+Tag = 84f76ecf3dc5f3307ce982f185321248
+Plaintext = c4ac3c645387584c2a95b1f16b8317730592924dd831a388
+Ciphertext = 37015beeee7dc5f9b11b8b4e7ebc49395fa60c267e2717d6
+
+Cipher = aes-128-ccm
+Key = 08b0da255d2083808a1b4d367090bacc
+IV = 777828b13679a9e2ca89568233
+AAD = d5
+Tag = 2c38d0fe4e4eba054c1420c39a3dcc61
+Plaintext = 81af394c2ea3a85e1ea954596e3772f01635d007794c0b19
+Ciphertext = 72025ec6935935eb85276ee67b082cba4c014e6cdf5abf47
+
+Cipher = aes-128-ccm
+Key = 08b0da255d2083808a1b4d367090bacc
+IV = 777828b13679a9e2ca89568233
+AAD = ed
+Tag = 7cfa6c9945f5aee3c799eee37b0605db
+Plaintext = e013a2edd5b86bab8df5c9940d0a0c864478c1ad42668304
+Ciphertext = 13bec5676842f61e167bf32b183552cc1e4c5fc6e470375a
+
+Cipher = aes-128-ccm
+Key = 1538cc03b60880bf3e7d388e29f27739
+IV = 9e734de325026b5d7128193973
+AAD = c93c
+Tag = 3ca01d874439b4e1f79a26d8c6dc433a
+Plaintext = e7b819a853ffe79baaa72097ff0d04f02640ae62bcfd3da5
+Ciphertext = 1d8f42f9730424fa27240bd6277f4882604f440324b11b00
+
+Cipher = aes-128-ccm
+Key = 1538cc03b60880bf3e7d388e29f27739
+IV = 9e734de325026b5d7128193973
+AAD = 4cf9
+Tag = b40653cd23afc7cc7a31fa13ba8f4e49
+Plaintext = dc6cf325ed6d968efba9f57e48a58f4578cc3540fe121ba2
+Ciphertext = 265ba874cd9655ef762ade3f90d7c3373ec3df21665e3d07
+
+Cipher = aes-128-ccm
+Key = 1538cc03b60880bf3e7d388e29f27739
+IV = 9e734de325026b5d7128193973
+AAD = b469
+Tag = c8c10aaf90b1116be216f912c82ca96a
+Plaintext = 22ab6a0daf953165dda864cceeeb782e275c0b072aedd284
+Ciphertext = d89c315c8f6ef204502b4f8d3699345c6153e166b2a1f421
+
+Cipher = aes-128-ccm
+Key = 1538cc03b60880bf3e7d388e29f27739
+IV = 9e734de325026b5d7128193973
+AAD = cf6b
+Tag = 2f568ef41324189fb3644edcd76dc19c
+Plaintext = a35f62a431fee63468dc02fdf7bef78d3a5937de56151939
+Ciphertext = 596839f511052555e55f29bc2fccbbff7c56ddbfce593f9c
+
+Cipher = aes-128-ccm
+Key = 1538cc03b60880bf3e7d388e29f27739
+IV = 9e734de325026b5d7128193973
+AAD = af7c
+Tag = 2548c244a875d3681d715db3da19962f
+Plaintext = 548840cb0400824af809fb68447500b77e977128200d3b81
+Ciphertext = aebf1b9a24fb412b758ad0299c074cc538989b49b8411d24
+
+Cipher = aes-128-ccm
+Key = 1538cc03b60880bf3e7d388e29f27739
+IV = 9e734de325026b5d7128193973
+AAD = 61dc
+Tag = b599bc8927ad8d43067807f4b858f854
+Plaintext = 440b6095c77495e73fff54c785b7ceb5eb358731c213ffcd
+Ciphertext = be3c3bc4e78f5686b27c7f865dc582c7ad3a6d505a5fd968
+
+Cipher = aes-128-ccm
+Key = 1538cc03b60880bf3e7d388e29f27739
+IV = 9e734de325026b5d7128193973
+AAD = b97e
+Tag = 7454774ee78f76e555cf743df340381e
+Plaintext = 50c59ca54eb64575b82b13c6dac96488af369e9f5f86cdf2
+Ciphertext = aaf2c7f46e4d861435a8388702bb28fae93974fec7caeb57
+
+Cipher = aes-128-ccm
+Key = 1538cc03b60880bf3e7d388e29f27739
+IV = 9e734de325026b5d7128193973
+AAD = 57ab
+Tag = e0a22a5ee031978271c7dd2a0d4e7018
+Plaintext = 21b8eb1f0bda26ca36167ce7bc2e796818bf11fc8c192885
+Ciphertext = db8fb04e2b21e5abbb9557a6645c351a5eb0fb9d14550e20
+
+Cipher = aes-128-ccm
+Key = 1538cc03b60880bf3e7d388e29f27739
+IV = 9e734de325026b5d7128193973
+AAD = 5f9c
+Tag = 9a242ebae5c6da57ee38e5c227c46b32
+Plaintext = b4d84fb1e81e18c89391a7a59fc05fedaf160e0d0d027a7c
+Ciphertext = 4eef14e0c8e5dba91e128ce447b2139fe919e46c954e5cd9
+
+Cipher = aes-128-ccm
+Key = 1538cc03b60880bf3e7d388e29f27739
+IV = 9e734de325026b5d7128193973
+AAD = e0c4
+Tag = a5f8a92f4201c4658289307167cee810
+Plaintext = 54dc5a0e1b67577cda4e7dbd48b769c120c1d13dd567cfad
+Ciphertext = aeeb015f3b9c941d57cd56fc90c525b366ce3b5c4d2be908
+
+Cipher = aes-128-ccm
+Key = f149e41d848f59276cfddd743bafa9a9
+IV = 14b756d66fc51134e203d1c6f9
+AAD = f5827e
+Tag = 78e2a23411147a6187da6818506232ee
+Plaintext = 9759e6f21f5a588010f57e6d6eae178d8b20ab59cda66f42
+Ciphertext = f634bf00f1f9f1f93f41049d7f3797b05e805f0b14850f4e
+
+Cipher = aes-128-ccm
+Key = f149e41d848f59276cfddd743bafa9a9
+IV = 14b756d66fc51134e203d1c6f9
+AAD = e9699b
+Tag = f10835db9897b7528e3204fe3a81424f
+Plaintext = 1555bc87d6c688fd221a2c75cd1e4dd1c1693207ac421d24
+Ciphertext = 7438e575386521840dae5685dc87cdec14c9c65575617d28
+
+Cipher = aes-128-ccm
+Key = f149e41d848f59276cfddd743bafa9a9
+IV = 14b756d66fc51134e203d1c6f9
+AAD = 972896
+Tag = 3efa05ba4a73ec2234461d459f54acd2
+Plaintext = b72b2a080d92f3f3bb7d96222982de82a28c9eebaddba247
+Ciphertext = d64673fae3315a8a94c9ecd2381b5ebf772c6ab974f8c24b
+
+Cipher = aes-128-ccm
+Key = f149e41d848f59276cfddd743bafa9a9
+IV = 14b756d66fc51134e203d1c6f9
+AAD = 3053f3
+Tag = b557537c6525e827750917a1ed49602f
+Plaintext = b5417ed6933ffe2b57ea601d77e97eb12fa1fb8fdc06c86f
+Ciphertext = d42c27247d9c5752785e1aed6670fe8cfa010fdd0525a863
+
+Cipher = aes-128-ccm
+Key = f149e41d848f59276cfddd743bafa9a9
+IV = 14b756d66fc51134e203d1c6f9
+AAD = 24db75
+Tag = dfd06b037e9094f120eb3d8649d48918
+Plaintext = 4e7f42666035a00e62783283c54b027603917685d27326bc
+Ciphertext = 2f121b948e9609774dcc4873d4d2824bd63182d70b5046b0
+
+Cipher = aes-128-ccm
+Key = f149e41d848f59276cfddd743bafa9a9
+IV = 14b756d66fc51134e203d1c6f9
+AAD = ff27a4
+Tag = bfa8cfabbd79b3e3210482e6f3822fee
+Plaintext = 7bf180699c294421ad9565cacc27227a4b3a7cf9637290c6
+Ciphertext = 1a9cd99b728aed5882211f3addbea2479e9a88abba51f0ca
+
+Cipher = aes-128-ccm
+Key = f149e41d848f59276cfddd743bafa9a9
+IV = 14b756d66fc51134e203d1c6f9
+AAD = 77ec24
+Tag = 3b9575e347051e98d0c8646ad46318e6
+Plaintext = 3d47071c13f994cb42fb2887e5c6e53a542be7ddad9779e0
+Ciphertext = 5c2a5eeefd5a3db26d4f5277f45f6507818b138f74b419ec
+
+Cipher = aes-128-ccm
+Key = f149e41d848f59276cfddd743bafa9a9
+IV = 14b756d66fc51134e203d1c6f9
+AAD = 6d7748
+Tag = 78e7af65eb0388ae7a52f58f6ba32109
+Plaintext = 317d5da0a2ec12c3b96c83dd61cc955242a9c1c640e2b92f
+Ciphertext = 501004524c4fbbba96d8f92d7055156f9709359499c1d923
+
+Cipher = aes-128-ccm
+Key = f149e41d848f59276cfddd743bafa9a9
+IV = 14b756d66fc51134e203d1c6f9
+AAD = 029674
+Tag = 8019fa97ff70d4d21c0bd83caa434b3a
+Plaintext = c9bb21306ee1b4a6c4fa5443af2e181716993cbb374e177c
+Ciphertext = a8d678c280421ddfeb4e2eb3beb7982ac339c8e9ee6d7770
+
+Cipher = aes-128-ccm
+Key = f149e41d848f59276cfddd743bafa9a9
+IV = 14b756d66fc51134e203d1c6f9
+AAD = 60dfe8
+Tag = 1814ed48a21d97ea02e86d7e6e8834cb
+Plaintext = 44eb7edd6bee501ad97873aa7ecbf7ed8b613760d7c95e15
+Ciphertext = 2586272f854df963f6cc095a6f5277d05ec1c3320eea3e19
+
+Cipher = aes-128-ccm
+Key = 9a57a22c7f26feff8ca6cceff214e4c2
+IV = 88f30fd2b04fb8ddbce8fc26e6
+AAD = a95bdff6
+Tag = 9b6443a35f329b2068916fb6ab8227eb
+Plaintext = 035c516776c706a7dd5f181fa6aa891b04dd423042ea0667
+Ciphertext = b92f7ec2ebecebdbd2977b3874e61bf496a382153b2529fc
+
+Cipher = aes-128-ccm
+Key = 9a57a22c7f26feff8ca6cceff214e4c2
+IV = 88f30fd2b04fb8ddbce8fc26e6
+AAD = d2672cbb
+Tag = 19e2aa492ce9ddfb6de0ab7a447f5351
+Plaintext = 3ba306bcec94615c347f990b62841a16df7b321f113f1714
+Ciphertext = 81d0291971bf8c203bb7fa2cb0c888f94d05f23a68f0388f
+
+Cipher = aes-128-ccm
+Key = 9a57a22c7f26feff8ca6cceff214e4c2
+IV = 88f30fd2b04fb8ddbce8fc26e6
+AAD = 737f4d00
+Tag = 2bf683b1209f104e82ba39f7c62cd666
+Plaintext = 68313a29ace3efe521c3ca1e5bac8e98d6b4434c80a7dc74
+Ciphertext = d242158c31c802992e0ba93989e01c7744ca8369f968f3ef
+
+Cipher = aes-128-ccm
+Key = 9a57a22c7f26feff8ca6cceff214e4c2
+IV = 88f30fd2b04fb8ddbce8fc26e6
+AAD = 3610b1ae
+Tag = 4fc7d5cac043f182edbe5c2658f73092
+Plaintext = 963bfe556138317bebe3936b18a2c1dd100dc73be6fde556
+Ciphertext = 2c48d1f0fc13dc07e42bf04ccaee53328273071e9f32cacd
+
+Cipher = aes-128-ccm
+Key = 9a57a22c7f26feff8ca6cceff214e4c2
+IV = 88f30fd2b04fb8ddbce8fc26e6
+AAD = f1aa7f72
+Tag = b8234f3fbaca3dc2c497418219151b05
+Plaintext = 52d5c53ee4f23cb050a95db54112b44033c34ac31de96be8
+Ciphertext = e8a6ea9b79d9d1cc5f613e92935e26afa1bd8ae664264473
+
+Cipher = aes-128-ccm
+Key = 9a57a22c7f26feff8ca6cceff214e4c2
+IV = 88f30fd2b04fb8ddbce8fc26e6
+AAD = 6b1013aa
+Tag = 8fa5f9539e0500f139016e4a4337d86b
+Plaintext = a302aebc0f8fd61badc8371991beacf5933de46effacb8ce
+Ciphertext = 1971811992a43b67a200543e43f23e1a0143244b86639755
+
+Cipher = aes-128-ccm
+Key = 9a57a22c7f26feff8ca6cceff214e4c2
+IV = 88f30fd2b04fb8ddbce8fc26e6
+AAD = 33028129
+Tag = fa2379fde155e64b5b84e336056445c3
+Plaintext = f7d653c23254875625b20e1ef60ae92847046d84bb4ce857
+Ciphertext = 4da57c67af7f6a2a2a7a6d3924467bc7d57aada1c283c7cc
+
+Cipher = aes-128-ccm
+Key = 9a57a22c7f26feff8ca6cceff214e4c2
+IV = 88f30fd2b04fb8ddbce8fc26e6
+AAD = 2cab4a09
+Tag = 58208335cb81e4fb10923fca4ddb9ff9
+Plaintext = 872a3f7230e626abff519e5aeecc93897249405daeaffc98
+Ciphertext = 3d5910d7adcdcbd7f099fd7d3c800166e0378078d760d303
+
+Cipher = aes-128-ccm
+Key = 9a57a22c7f26feff8ca6cceff214e4c2
+IV = 88f30fd2b04fb8ddbce8fc26e6
+AAD = 73142ba7
+Tag = 2d6ecfb49ac8983415503efef1e21950
+Plaintext = 766f94e7d9b1ce74bbaf2c99d215350f060122767fc1953f
+Ciphertext = cc1cbb42449a2308b4674fbe0059a7e0947fe253060ebaa4
+
+Cipher = aes-128-ccm
+Key = 9a57a22c7f26feff8ca6cceff214e4c2
+IV = 88f30fd2b04fb8ddbce8fc26e6
+AAD = bc9f967e
+Tag = 1978a62d15430fc20b87940292b49641
+Plaintext = 5f089ed9267363bc23c6c7b8f73208a36f61fa8ea8084ff7
+Ciphertext = e57bb17cbb588ec02c0ea49f257e9a4cfd1f3aabd1c7606c
+
+Cipher = aes-128-ccm
+Key = 54caf96ef6d448734700aadab50faf7a
+IV = a3803e752ae849c910d8da36af
+AAD = 5f476348dd
+Tag = 4e5a32fbe7961b832b722bc07a18595b
+Plaintext = c69f7c5a50f3e72123371bbfd6bdf532b99ef78500508dfe
+Ciphertext = 20c43ad83610880249f1632dd418ec9a5ed333b50e996d1a
+
+Cipher = aes-128-ccm
+Key = 54caf96ef6d448734700aadab50faf7a
+IV = a3803e752ae849c910d8da36af
+AAD = 07db8aada5
+Tag = 401a2222443696021b5faa520129b563
+Plaintext = 9cf8b638f2b295b85cf782fabab11153dc091b4afcd761a9
+Ciphertext = 7aa3f0ba9451fa9b3631fa68b81408fb3b44df7af21e814d
+
+Cipher = aes-128-ccm
+Key = 54caf96ef6d448734700aadab50faf7a
+IV = a3803e752ae849c910d8da36af
+AAD = 31ef6561ff
+Tag = f842681d2e90da5718234ed893197662
+Plaintext = 62b8263dc015ef873cd16272e4da89799b910f2b04204420
+Ciphertext = 84e360bfa6f680a456171ae0e67f90d17cdccb1b0ae9a4c4
+
+Cipher = aes-128-ccm
+Key = 54caf96ef6d448734700aadab50faf7a
+IV = a3803e752ae849c910d8da36af
+AAD = e97dfcbafb
+Tag = 33a08eb30ee154f71279682ab02eff27
+Plaintext = 810bed3a2bc0f9d75389155b7a39d9d014c08646814f9718
+Ciphertext = 6750abb84d2396f4394f6dc9789cc078f38d42768f8677fc
+
+Cipher = aes-128-ccm
+Key = 54caf96ef6d448734700aadab50faf7a
+IV = a3803e752ae849c910d8da36af
+AAD = 4981c51fcc
+Tag = 8d3071c79f0cf86fe4148cb5e8ace0ce
+Plaintext = 063d23fc3ec344c1ba3486802e01e55617455d5cfbfb5279
+Ciphertext = e066657e58202be2d0f2fe122ca4fcfef008996cf532b29d
+
+Cipher = aes-128-ccm
+Key = 54caf96ef6d448734700aadab50faf7a
+IV = a3803e752ae849c910d8da36af
+AAD = c8437dba76
+Tag = 842700619dc1599603f3f3f6cfdf5e0b
+Plaintext = 41db5b245ea0fab985b93e7fc0a00cd3cca5bdbb642b7ebf
+Ciphertext = a7801da63843959aef7f46edc205157b2be8798b6ae29e5b
+
+Cipher = aes-128-ccm
+Key = 54caf96ef6d448734700aadab50faf7a
+IV = a3803e752ae849c910d8da36af
+AAD = 6f65a24344
+Tag = 39a0cd8d8bbf211b907f34411f868c79
+Plaintext = b0e36734b2ba871d59df0b029c7f32af68e003a689ac4911
+Ciphertext = 56b821b6d459e83e331973909eda2b078fadc7968765a9f5
+
+Cipher = aes-128-ccm
+Key = 54caf96ef6d448734700aadab50faf7a
+IV = a3803e752ae849c910d8da36af
+AAD = cd62d6d203
+Tag = c4a90e5fc11266bab77eea1d24fbdbb9
+Plaintext = 747e53e627eabde0cd77d78d1bd720bea518f8a2f76e57a2
+Ciphertext = 922515644109d2c3a7b1af1f1972391642553c92f9a7b746
+
+Cipher = aes-128-ccm
+Key = 54caf96ef6d448734700aadab50faf7a
+IV = a3803e752ae849c910d8da36af
+AAD = 9663b3c8e6
+Tag = b3c1246f7dd6462ce757db82db45f36e
+Plaintext = c70c92ec4c518802662fa4c41a6a33a22599f79f8f7264b3
+Ciphertext = 2157d46e2ab2e7210ce9dc5618cf2a0ac2d433af81bb8457
+
+Cipher = aes-128-ccm
+Key = 54caf96ef6d448734700aadab50faf7a
+IV = a3803e752ae849c910d8da36af
+AAD = 35c4720d3c
+Tag = d472c06a5f4c04f97d06ec401d3e7fd9
+Plaintext = a26835605b66fc08abdbb5dc77e39783d60b8e8f2314e95f
+Ciphertext = 443373e23d85932bc11dcd4e75468e2b31464abf2ddd09bb
+
+Cipher = aes-128-ccm
+Key = cc0c084d7de011e2f031616a302e7a31
+IV = f0b4522847f6f8336fe534a4e7
+AAD = da853a27aee2
+Tag = 2e3ca4ec3c776ab58843f617d605fd72
+Plaintext = 15b369889699b6de1fa3ee73e5fe19814e46f129074c965b
+Ciphertext = f39755d160a64611368a8eccf6fcbc45ef7f1f56240eb19a
+
+Cipher = aes-128-ccm
+Key = cc0c084d7de011e2f031616a302e7a31
+IV = f0b4522847f6f8336fe534a4e7
+AAD = d4ed4584678e
+Tag = 327804c44c8f17a4446a3d5ba85f9c7f
+Plaintext = a18c0460b56a5bcd5bf6842cec6ed44d90b2bfa968a6a7e7
+Ciphertext = 47a838394355ab0272dfe493ff6c7189318b51d64be48026
+
+Cipher = aes-128-ccm
+Key = cc0c084d7de011e2f031616a302e7a31
+IV = f0b4522847f6f8336fe534a4e7
+AAD = 590a27721a36
+Tag = bcd00e9cb726d75e4283820ee81d933a
+Plaintext = 41cee0ecaf9c65cef740440af37954ef49a585779d2abbca
+Ciphertext = a7eadcb559a39501de6924b5e07bf12be89c6b08be689c0b
+
+Cipher = aes-128-ccm
+Key = cc0c084d7de011e2f031616a302e7a31
+IV = f0b4522847f6f8336fe534a4e7
+AAD = 58830fb0b1f3
+Tag = d5d71a1f0f1b6518c35f0632a30931fd
+Plaintext = dce983e4e3734a9bd8848dba0d744d07bbeba602f4006025
+Ciphertext = 3acdbfbd154cba54f1aded051e76e8c31ad2487dd74247e4
+
+Cipher = aes-128-ccm
+Key = cc0c084d7de011e2f031616a302e7a31
+IV = f0b4522847f6f8336fe534a4e7
+AAD = eedd0d767a25
+Tag = 3ad112899e9ba442660eb5dfe33b2f96
+Plaintext = 4653b3e879ab18b65c5c3706a5139698262cb830a22d943b
+Ciphertext = a0778fb18f94e879757557b9b611335c8715564f816fb3fa
+
+Cipher = aes-128-ccm
+Key = cc0c084d7de011e2f031616a302e7a31
+IV = f0b4522847f6f8336fe534a4e7
+AAD = 618bcf2e3e79
+Tag = 54fba446028919342b2fe86ee67efcc7
+Plaintext = 8586383281925363ac15fb19c26d64c639c75920c792dc2c
+Ciphertext = 63a2046b77ada3ac853c9ba6d16fc10298feb75fe4d0fbed
+
+Cipher = aes-128-ccm
+Key = cc0c084d7de011e2f031616a302e7a31
+IV = f0b4522847f6f8336fe534a4e7
+AAD = 549c9b84c7f7
+Tag = 9fc23013142f62881ccfa3037067e1ef
+Plaintext = 95c25ae4445cd8c4d267df82687484667e309992fcf1e737
+Ciphertext = 73e666bdb263280bfb4ebf3d7b7621a2df0977eddfb3c0f6
+
+Cipher = aes-128-ccm
+Key = cc0c084d7de011e2f031616a302e7a31
+IV = f0b4522847f6f8336fe534a4e7
+AAD = 92d7fa6a8135
+Tag = 8263568d56fae8bf35b2f2cdecbffe0a
+Plaintext = e58034bbb0e6f5e724e32ee56896dadae25c2a3efb8c6f2f
+Ciphertext = 03a408e246d905280dca4e5a7b947f1e4365c441d8ce48ee
+
+Cipher = aes-128-ccm
+Key = cc0c084d7de011e2f031616a302e7a31
+IV = f0b4522847f6f8336fe534a4e7
+AAD = f43e126c0f83
+Tag = de2c2fbfdddc7dd6672714af174c5121
+Plaintext = d98f0dddfe9cb3cae1336970d5efb55316a65e2c51e316f4
+Ciphertext = 3fab318408a34305c81a09cfc6ed1097b79fb05372a13135
+
+Cipher = aes-128-ccm
+Key = cc0c084d7de011e2f031616a302e7a31
+IV = f0b4522847f6f8336fe534a4e7
+AAD = f02074812dde
+Tag = 3704560ff23ce0000fba8812c45940ad
+Plaintext = 548747b1669c6383b793054d93957f9e99d605761c6c23b5
+Ciphertext = b2a37be890a3934c9eba65f28097da5a38efeb093f2e0474
+
+Cipher = aes-128-ccm
+Key = d7572ed0e37261efa02f8c83e695efdc
+IV = f4f96d7b4384a3930b3d830f82
+AAD = 922340ec94861f
+Tag = fd541b988a801cb5751c7faaf5b0c164
+Plaintext = 1edef80c57d17f969f8bde10ab38a1a8811a124de72c526e
+Ciphertext = de14558cc686e1836f1f121ea1b941a9ebd4f0fb916dc870
+
+Cipher = aes-128-ccm
+Key = d7572ed0e37261efa02f8c83e695efdc
+IV = f4f96d7b4384a3930b3d830f82
+AAD = 4eb379f21b1531
+Tag = c068bd1b1c309dfbd52d9a24be07c630
+Plaintext = ddd5282a207c1dcb03c1c3bbc9eb12a7bd28534118db2735
+Ciphertext = 1d1f85aab12b83def3550fb5c36af2a6d7e6b1f76e9abd2b
+
+Cipher = aes-128-ccm
+Key = d7572ed0e37261efa02f8c83e695efdc
+IV = f4f96d7b4384a3930b3d830f82
+AAD = 7fa89e9d6e3fec
+Tag = 2d114d6ab082738d05d60acca8e8ccfb
+Plaintext = c5b7c462eb166f48bb59c8102ee7b3dc67a28e5de7570c51
+Ciphertext = 057d69e27a41f15d4bcd041e246653dd0d6c6ceb9116964f
+
+Cipher = aes-128-ccm
+Key = d7572ed0e37261efa02f8c83e695efdc
+IV = f4f96d7b4384a3930b3d830f82
+AAD = fda8665f87c618
+Tag = 1cc84bd77fe00e1a13433f2c10e3b799
+Plaintext = af793815e147e3180f5146aa6a582e343dc479f26b4226b2
+Ciphertext = 6fb3959570107d0dffc58aa460d9ce35570a9b441d03bcac
+
+Cipher = aes-128-ccm
+Key = d7572ed0e37261efa02f8c83e695efdc
+IV = f4f96d7b4384a3930b3d830f82
+AAD = 46bde207491ebd
+Tag = 990c81f1bae32c953bf02ddbde047632
+Plaintext = 47c76a0bbd5b1616b278089d41a050c509c7a1c280574bf7
+Ciphertext = 870dc78b2c0c880342ecc4934b21b0c463094374f616d1e9
+
+Cipher = aes-128-ccm
+Key = d7572ed0e37261efa02f8c83e695efdc
+IV = f4f96d7b4384a3930b3d830f82
+AAD = a799f5f895fd7a
+Tag = 1af19f1f080dd1dd2da799059755e49f
+Plaintext = d554806ffc3900a0952a3c094c745808950697a6e5d62c1d
+Ciphertext = 159e2def6d6e9eb565bef00746f5b809ffc875109397b603
+
+Cipher = aes-128-ccm
+Key = d7572ed0e37261efa02f8c83e695efdc
+IV = f4f96d7b4384a3930b3d830f82
+AAD = 20225831a9ee06
+Tag = 23d3b9a0060834ac4860dae0eac570ef
+Plaintext = ba45e1859efae362a44a0116a14e488ba369da6c76c3913b
+Ciphertext = 7a8f4c050fad7d7754decd18abcfa88ac9a738da00820b25
+
+Cipher = aes-128-ccm
+Key = d7572ed0e37261efa02f8c83e695efdc
+IV = f4f96d7b4384a3930b3d830f82
+AAD = 785360916464eb
+Tag = ff96e7cf841a66c50bbb6fb2bac7ef51
+Plaintext = 57bc338946ff78cf76adf5021e2e44e34e687fb68ad703f3
+Ciphertext = 97769e09d7a8e6da8639390c14afa4e224a69d00fc9699ed
+
+Cipher = aes-128-ccm
+Key = d7572ed0e37261efa02f8c83e695efdc
+IV = f4f96d7b4384a3930b3d830f82
+AAD = 57b946369226db
+Tag = 86e1c33a45f9d52755c374650635bef6
+Plaintext = 9ac5be9929c4fe5a9992749a38dc69874866db3d4747da97
+Ciphertext = 5a0f1319b893604f6906b894325d898622a8398b31064089
+
+Cipher = aes-128-ccm
+Key = d7572ed0e37261efa02f8c83e695efdc
+IV = f4f96d7b4384a3930b3d830f82
+AAD = 73e4da8973c1e3
+Tag = d78592c2d89c15edc5bb7486aa93f896
+Plaintext = 5a05410aa3a71f5f1a253b8576eba269c06a4c30591144cc
+Ciphertext = 9acfec8a32f0814aeab1f78b7c6a4268aaa4ae862f50ded2
+
+Cipher = aes-128-ccm
+Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1
+IV = 03d33ab0c2df7bfce88b5ee4c4
+AAD = 2d5438b728b950d9
+Tag = eecfff971fdfaa856310b014aa59c978
+Plaintext = 9aa9c8358117564371366beeec923051ef433252197aaad5
+Ciphertext = 9ff942baa60f440c17a78e9581216b9a947a67f04d54911f
+
+Cipher = aes-128-ccm
+Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1
+IV = 03d33ab0c2df7bfce88b5ee4c4
+AAD = 6e430b497a16e7f5
+Tag = 6a4d7b4b4df6c831ee32116ee4dad98c
+Plaintext = 5758a500978c71a9b90f6e5beae9d96ef05a41486b10ea2e
+Ciphertext = 52082f8fb09463e6df9e8b20875a82a58b6314ea3f3ed1e4
+
+Cipher = aes-128-ccm
+Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1
+IV = 03d33ab0c2df7bfce88b5ee4c4
+AAD = e12f98507d6514c3
+Tag = 3243fc75cd1624e152f451678edcac87
+Plaintext = 49efe18c76a8355127d914a3a830c1c6ff2a163d728526e1
+Ciphertext = 4cbf6b0351b0271e4148f1d8c5839a0d8413439f26ab1d2b
+
+Cipher = aes-128-ccm
+Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1
+IV = 03d33ab0c2df7bfce88b5ee4c4
+AAD = eecf8d641ee0bee9
+Tag = dd6d8ca57da1880e1baff43736b3da34
+Plaintext = 49ae2309fbe6ce4e9421516b8f79ae64b1316cb849eaf638
+Ciphertext = 4cfea986dcfedc01f2b0b410e2caf5afca08391a1dc4cdf2
+
+Cipher = aes-128-ccm
+Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1
+IV = 03d33ab0c2df7bfce88b5ee4c4
+AAD = 9066367c784de0a4
+Tag = f05439a661001513a96b896de46b7081
+Plaintext = b1bda5fa4242aa6aad0f5a5b1d31d86b8d4a97588b3e315d
+Ciphertext = b4ed2f75655ab825cb9ebf20708283a0f673c2fadf100a97
+
+Cipher = aes-128-ccm
+Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1
+IV = 03d33ab0c2df7bfce88b5ee4c4
+AAD = edf848b2510f7803
+Tag = cf20709b2dc2ff9946094190b5ea09d1
+Plaintext = eaa8608f6763d968576a7e89056b9828a1686c8441b06377
+Ciphertext = eff8ea00407bcb2731fb9bf268d8c3e3da513926159e58bd
+
+Cipher = aes-128-ccm
+Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1
+IV = 03d33ab0c2df7bfce88b5ee4c4
+AAD = 0f49cae81c8628d2
+Tag = a5bb6b4f87b9b198665203e4fdf9e7f7
+Plaintext = f32029cf51609f0df9832ad1b283ea94a5356f70112c1328
+Ciphertext = f670a34076788d429f12cfaadf30b15fde0c3ad2450228e2
+
+Cipher = aes-128-ccm
+Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1
+IV = 03d33ab0c2df7bfce88b5ee4c4
+AAD = b0c47e9cce46a276
+Tag = 29f416f89f1a34bbbf2ce40d943c6d8b
+Plaintext = 7a550ef9254a8da6e4fee290a76ea838ffb61d3533d4d31f
+Ciphertext = 7f05847602529fe9826f07ebcaddf3f3848f489767fae8d5
+
+Cipher = aes-128-ccm
+Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1
+IV = 03d33ab0c2df7bfce88b5ee4c4
+AAD = a6fe7c9ce2d49f85
+Tag = 7eb95550b91b955d5c2d72d5c189b704
+Plaintext = e67c486dd7ba9a9061844b9354f55890321ae626efaa28cc
+Ciphertext = e32cc2e2f0a288df0715aee83946035b4923b384bb841306
+
+Cipher = aes-128-ccm
+Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1
+IV = 03d33ab0c2df7bfce88b5ee4c4
+AAD = eb1d11cc4876f58f
+Tag = 0e8e8a5a7e0ea6860bab4a4320f03ae5
+Plaintext = 35f2c810091e930a52e4a3f28c9c8184967f1554c2675eb5
+Ciphertext = 30a2429f2e06814534754689e12fda4fed4640f69649657f
+
+Cipher = aes-128-ccm
+Key = 2a68e3fe746f593c1b97cb637079c3e5
+IV = cd62d0f27b7f4864dc7c343acd
+AAD = abe4f1d3812bfe3ccf
+Tag = fd49840440f866d1a22b0854996111d8
+Plaintext = 13b4a874888db0e5d8fd814b5e7e04f7fdfbc1601ccc02bc
+Ciphertext = 032835a3dbf688d09cf2a32a92b101959d33ff47500f92f4
+
+Cipher = aes-128-ccm
+Key = 2a68e3fe746f593c1b97cb637079c3e5
+IV = cd62d0f27b7f4864dc7c343acd
+AAD = 2e21f466814d3d6340
+Tag = de2f5c335df537fbbc6ae59cd562732f
+Plaintext = 08b5c773364cded74d7b308984313c17ff90eed496a27a2b
+Ciphertext = 18295aa46537e6e2097412e848fe39759f58d0f3da61ea63
+
+Cipher = aes-128-ccm
+Key = 2a68e3fe746f593c1b97cb637079c3e5
+IV = cd62d0f27b7f4864dc7c343acd
+AAD = dba22aabcea0e694fc
+Tag = cc5ed6e4a907ff4742ab6c835a427f92
+Plaintext = bbac1790abb7aafe272ec472c897e6363e335b3c4126c762
+Ciphertext = ab308a47f8cc92cb6321e6130458e3545efb651b0de5572a
+
+Cipher = aes-128-ccm
+Key = 2a68e3fe746f593c1b97cb637079c3e5
+IV = cd62d0f27b7f4864dc7c343acd
+AAD = 97e9d16bd757395ec1
+Tag = 1714b5a3df454f3bc35869da75adc882
+Plaintext = 7249612dc09809bbca9dd311e720f7da2cb54ce33e3eb9c3
+Ciphertext = 62d5fcfa93e3318e8e92f1702beff2b84c7d72c472fd298b
+
+Cipher = aes-128-ccm
+Key = 2a68e3fe746f593c1b97cb637079c3e5
+IV = cd62d0f27b7f4864dc7c343acd
+AAD = 866cf710470cac74d3
+Tag = aa33dffe2596832f98a9c8413bd898b9
+Plaintext = 060ae0ab9857324a3b2ac79f3b6e6f90f5de884ce9c7b930
+Ciphertext = 16967d7ccb2c0a7f7f25e5fef7a16af29516b66ba5042978
+
+Cipher = aes-128-ccm
+Key = 2a68e3fe746f593c1b97cb637079c3e5
+IV = cd62d0f27b7f4864dc7c343acd
+AAD = 2dd7a7f832b29ccce2
+Tag = dd5049f7c53d6a7fe5d7f959689ee960
+Plaintext = f77a9fd5363836deefd34e1bea0882484a7ab746b4495d59
+Ciphertext = e7e6020265430eebabdc6c7a26c7872a2ab28961f88acd11
+
+Cipher = aes-128-ccm
+Key = 2a68e3fe746f593c1b97cb637079c3e5
+IV = cd62d0f27b7f4864dc7c343acd
+AAD = 502349a60e897356b5
+Tag = ed9c3a0d0de8788471c5f6c2f9638b7c
+Plaintext = 96118dbfe53434d8aed88769a535eb0c8b5849dca1c81c34
+Ciphertext = 868d1068b64f0cedead7a50869faee6eeb9077fbed0b8c7c
+
+Cipher = aes-128-ccm
+Key = 2a68e3fe746f593c1b97cb637079c3e5
+IV = cd62d0f27b7f4864dc7c343acd
+AAD = debed45c9acf129268
+Tag = d49b4b9bead1b7de2021cff280d6f93b
+Plaintext = df5a47d3eb5c0b6cabb6711a45400602d205b82ecae9e849
+Ciphertext = cfc6da04b8273359efb9537b898f0360b2cd8609862a7801
+
+Cipher = aes-128-ccm
+Key = 2a68e3fe746f593c1b97cb637079c3e5
+IV = cd62d0f27b7f4864dc7c343acd
+AAD = 2726702dd62a6e5344
+Tag = 69df31aba209d87ee22bd6a1dcadb168
+Plaintext = 5a7649cb001fbb6f653cbca17756c5c1a078c2e240d92085
+Ciphertext = 4aead41c5364835a21339ec0bb99c0a3c0b0fcc50c1ab0cd
+
+Cipher = aes-128-ccm
+Key = 2a68e3fe746f593c1b97cb637079c3e5
+IV = cd62d0f27b7f4864dc7c343acd
+AAD = e8006cfb0536696ac7
+Tag = 7cc5b60c881fe834a789d28447d8fb54
+Plaintext = 95186d41f927cdbef42157f21d966e88061b6558b5ec932f
+Ciphertext = 8584f096aa5cf58bb02e7593d1596bea66d35b7ff92f0367
+
+Cipher = aes-128-ccm
+Key = 46b067cf9b1a28cf187002e90b14e130
+IV = bad8c03292bf01cfd8d34f860c
+AAD = 8d65880eddb9fd96d276
+Tag = 27ecdcb257d0d30491e5bf1aa8f90958
+Plaintext = cc0915194218d4536e467433cd6d79ff1d9eb9ff160ab684
+Ciphertext = bd56edc015692c6ab9bec493a9893863598414a3d11a6a0f
+
+Cipher = aes-128-ccm
+Key = 46b067cf9b1a28cf187002e90b14e130
+IV = bad8c03292bf01cfd8d34f860c
+AAD = 8a65cde13149d9d54a5b
+Tag = b10f9fc201e4128696dcd899dd2e24ea
+Plaintext = 28257133b1d8b0b2be4faecd6e819ac783707a5c5f50c302
+Ciphertext = 597a89eae6a9488b69b71e6d0a65db5bc76ad70098401f89
+
+Cipher = aes-128-ccm
+Key = 46b067cf9b1a28cf187002e90b14e130
+IV = bad8c03292bf01cfd8d34f860c
+AAD = e999ec3e1bfb25b5877c
+Tag = c522e5ba5adbc6a639cbd06f103ebc9e
+Plaintext = 96ab0cfc204bafc4f5851d6c682d631d0c5ad03ac925a943
+Ciphertext = e7f4f425773a57fd227dadcc0cc9228148407d660e3575c8
+
+Cipher = aes-128-ccm
+Key = 46b067cf9b1a28cf187002e90b14e130
+IV = bad8c03292bf01cfd8d34f860c
+AAD = a8554441e073d6065dce
+Tag = e1a4e0f7ebc3cff3915d27971cce7e91
+Plaintext = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9
+Ciphertext = 21cda08aff3bcbc6eed9e44483d3ae5dc9d564d38a42e922
+
+Cipher = aes-128-ccm
+Key = 46b067cf9b1a28cf187002e90b14e130
+IV = bad8c03292bf01cfd8d34f860c
+AAD = 838f0be8d04d28d77549
+Tag = c215c88d80bffc881aff10ba40f11976
+Plaintext = d0700658d5f4010ff21091f3d119c99645e339198029c3a9
+Ciphertext = a12ffe818285f93625e82153b5fd880a01f9944547391f22
+
+Cipher = aes-128-ccm
+Key = 46b067cf9b1a28cf187002e90b14e130
+IV = bad8c03292bf01cfd8d34f860c
+AAD = 20f014d928d5b25fbaf4
+Tag = 2cc9391bc06aa6ca9d486a4e2a218c54
+Plaintext = 4bdf28748a0c281dd49c7294ae8e55fe7a52d45ff6384db3
+Ciphertext = 3a80d0addd7dd0240364c234ca6a14623e48790331289138
+
+Cipher = aes-128-ccm
+Key = 46b067cf9b1a28cf187002e90b14e130
+IV = bad8c03292bf01cfd8d34f860c
+AAD = 56c026b8a71974ff7ecd
+Tag = 778b05c6c582a0bb7d1d9dcf6a46b9f6
+Plaintext = f75db057f0276fff85014f54ecdec8f90b96a2a982db14cb
+Ciphertext = 8602488ea75697c652f9fff4883a89654f8c0ff545cbc840
+
+Cipher = aes-128-ccm
+Key = 46b067cf9b1a28cf187002e90b14e130
+IV = bad8c03292bf01cfd8d34f860c
+AAD = 75c3b9e52648a4f9aca9
+Tag = f47d9ebbd3cff14623b10cecc94b53d6
+Plaintext = c15c554169dbb9b08494afaa44819a10dc9ddad54199ab54
+Ciphertext = b003ad983eaa4189536c1f0a2065db8c98877789868977df
+
+Cipher = aes-128-ccm
+Key = 46b067cf9b1a28cf187002e90b14e130
+IV = bad8c03292bf01cfd8d34f860c
+AAD = 1c76c3014a14b7fa1ca8
+Tag = d2b74b84dc170c00dce85b56e346a976
+Plaintext = 19eef6f798fc68086aad1cda6d7976cdcfe6b8af74598032
+Ciphertext = 68b10e2ecf8d9031bd55ac7a099d37518bfc15f3b3495cb9
+
+Cipher = aes-128-ccm
+Key = 46b067cf9b1a28cf187002e90b14e130
+IV = bad8c03292bf01cfd8d34f860c
+AAD = a4eb60d4eb7ead1bd0e6
+Tag = d92e19fd8b5c1fcbff36adaa5e47ae84
+Plaintext = e06e5dba5ac35cfd07949e5cc12ad70507d4a86a952ecca3
+Ciphertext = 9131a5630db2a4c4d06c2efca5ce969943ce0536523e1028
+
+Cipher = aes-128-ccm
+Key = e94dac9c90984790a7c0c867536615ff
+IV = c19f06f91e645d4199365f18c0
+AAD = 537038b5357e358a930bd6
+Tag = 8790c1648f461a31c84e62ea8592a074
+Plaintext = 4d64461c55eb16bf7b9120f22be349598f2f394da8460dc6
+Ciphertext = e9fc5004c2359724e1e4411ae6f834ef6bea046d549753c8
+
+Cipher = aes-128-ccm
+Key = e94dac9c90984790a7c0c867536615ff
+IV = c19f06f91e645d4199365f18c0
+AAD = 7e3d7b3eada988668f3784
+Tag = acb1d1c9231d2c22ecfeed622792dfd0
+Plaintext = eab7d5dbd91d4cbbac8d79fadd70b5dcb3baadac5cb713a3
+Ciphertext = 4e2fc3c34ec3cd2036f81812106bc86a577f908ca0664dad
+
+Cipher = aes-128-ccm
+Key = e94dac9c90984790a7c0c867536615ff
+IV = c19f06f91e645d4199365f18c0
+AAD = 78b107b29c4878ff18f749
+Tag = fffe60299768f048e7098033cde046b0
+Plaintext = 3c6ae2e2578875a1f5611582528e058aece2ddc33a4dde3d
+Ciphertext = 98f2f4fac056f43a6f14746a9f95783c0827e0e3c69c8033
+
+Cipher = aes-128-ccm
+Key = e94dac9c90984790a7c0c867536615ff
+IV = c19f06f91e645d4199365f18c0
+AAD = d293908bb516c5f3a411b9
+Tag = 4ee6ebc0d90a0de05b428495c93e1801
+Plaintext = d7a46e726ed43f1580eb52141a93390982cc809dc833e3f0
+Ciphertext = 733c786af90abe8e1a9e33fcd78844bf6609bdbd34e2bdfe
+
+Cipher = aes-128-ccm
+Key = e94dac9c90984790a7c0c867536615ff
+IV = c19f06f91e645d4199365f18c0
+AAD = 33ef208faad4d2948c9e67
+Tag = 7e7e64cc0fcd6a92c79ceb6ce2abd8ee
+Plaintext = b1fe5d9d34157193fc0608cd8ecb872e17720f5f6814a466
+Ciphertext = 15664b85a3cbf0086673692543d0fa98f3b7327f94c5fa68
+
+Cipher = aes-128-ccm
+Key = e94dac9c90984790a7c0c867536615ff
+IV = c19f06f91e645d4199365f18c0
+AAD = b7f7ed9ccac3c2b4fbfee0
+Tag = b02b53bc779e0976b634b0d1b88fc0a9
+Plaintext = de6bb539fb7a9c87414f62a7cf25a4cfca176509e991af41
+Ciphertext = 7af3a3216ca41d1cdb3a034f023ed9792ed258291540f14f
+
+Cipher = aes-128-ccm
+Key = e94dac9c90984790a7c0c867536615ff
+IV = c19f06f91e645d4199365f18c0
+AAD = a6e287383927f76e4927af
+Tag = 3c37fa936243b393f07fcccb0fc13e41
+Plaintext = 8719d20c20c8959068b8adcd65e6f6bc7b3693828f0735a0
+Ciphertext = 2381c414b716140bf2cdcc25a8fd8b0a9ff3aea273d66bae
+
+Cipher = aes-128-ccm
+Key = e94dac9c90984790a7c0c867536615ff
+IV = c19f06f91e645d4199365f18c0
+AAD = 70828be6dd93954f4e7b6b
+Tag = 0d7534a489e6d242966ebea4455f8f79
+Plaintext = 30b39426831f61c8ba5f2ef5b71f0c4b2f916e3b5a578110
+Ciphertext = 942b823e14c1e053202a4f1d7a0471fdcb54531ba686df1e
+
+Cipher = aes-128-ccm
+Key = e94dac9c90984790a7c0c867536615ff
+IV = c19f06f91e645d4199365f18c0
+AAD = 506015fc2831df293f4da0
+Tag = ccbf64f04e95b180d09e843847d22104
+Plaintext = 818d5d810f678629f078723f5c6c3657271077533bfb7c29
+Ciphertext = 25154b9998b907b26a0d13d791774be1c3d54a73c72a2227
+
+Cipher = aes-128-ccm
+Key = e94dac9c90984790a7c0c867536615ff
+IV = c19f06f91e645d4199365f18c0
+AAD = e9394b0245b379e68e3dea
+Tag = 27b546ef8cd717073832584fb25a0645
+Plaintext = f0613205a7a0822849df9e8a3cf6caf281f3adfa966c5507
+Ciphertext = 54f9241d307e03b3d3aaff62f1edb744653690da6abd0b09
+
+Cipher = aes-128-ccm
+Key = f6bb5d59b0fa9de0828b115303bf94aa
+IV = 05358f33e1fc6a53ab5a5c98ce
+AAD = 040b25771239cc2a39446e3c
+Tag = 54e5d050a405f755047d09cb0f49546a
+Plaintext = 011fc50329bfd63a85ebd4f7693363602f1a4147371270b7
+Ciphertext = 4432d7eb42980734d34f19c50cf8abf71ac1b19ed75a7278
+
+Cipher = aes-128-ccm
+Key = f6bb5d59b0fa9de0828b115303bf94aa
+IV = 05358f33e1fc6a53ab5a5c98ce
+AAD = 50a1d37fa2f3462bd304631b
+Tag = 2abee8547ee3f24cfa677468ecc1d121
+Plaintext = c90e40540d372ab1eb00ea5d5b8de5bf7c94ce4e376d6949
+Ciphertext = 8c2352bc6610fbbfbda4276f3e462d28494f3e97d7256b86
+
+Cipher = aes-128-ccm
+Key = f6bb5d59b0fa9de0828b115303bf94aa
+IV = 05358f33e1fc6a53ab5a5c98ce
+AAD = ac3bb872a41df35e415d2b0c
+Tag = 61cef865ce4080e7c7abfc43f62c03a3
+Plaintext = 9e7be78c0ab9e6a4c6c257e77c63681bea35d951f168b0c5
+Ciphertext = db56f564619e37aa90669ad519a8a08cdfee29881120b20a
+
+Cipher = aes-128-ccm
+Key = f6bb5d59b0fa9de0828b115303bf94aa
+IV = 05358f33e1fc6a53ab5a5c98ce
+AAD = e3106ae6456153dd922640a1
+Tag = e1d19c321a1e0852adba939b447220ab
+Plaintext = 00df0c5a5d3eceb2bd293066529799544f846672a9a1d31b
+Ciphertext = 45f21eb236191fbceb8dfd54375c51c37a5f96ab49e9d1d4
+
+Cipher = aes-128-ccm
+Key = f6bb5d59b0fa9de0828b115303bf94aa
+IV = 05358f33e1fc6a53ab5a5c98ce
+AAD = 297b4498bf5427e6341aa927
+Tag = 79ea5fb65018abdcde1a39f6859ecb56
+Plaintext = 14967a0476dbaea03b07fa8d40d344eabaf479be2443243a
+Ciphertext = 51bb68ec1dfc7fae6da337bf25188c7d8f2f8967c40b26f5
+
+Cipher = aes-128-ccm
+Key = f6bb5d59b0fa9de0828b115303bf94aa
+IV = 05358f33e1fc6a53ab5a5c98ce
+AAD = 5de60dc0e3b5bda0b33a9520
+Tag = c2629ff871ee15745fd8c1ddbdae4c29
+Plaintext = 2da3716d76d10b6766a1f9cbf9f420316fd5f396e7b9a2ba
+Ciphertext = 688e63851df6da69300534f99c3fe8a65a0e034f07f1a075
+
+Cipher = aes-128-ccm
+Key = f6bb5d59b0fa9de0828b115303bf94aa
+IV = 05358f33e1fc6a53ab5a5c98ce
+AAD = 1c9b8541943ad50b4243c179
+Tag = 04e198ad16ad1106d3ba6172f4a13a8f
+Plaintext = 8c1b3ba18d1f5cff74a457aadd6b3e7d093d06ad2622e6a0
+Ciphertext = c9362949e6388df122009a98b8a0f6ea3ce6f674c66ae46f
+
+Cipher = aes-128-ccm
+Key = f6bb5d59b0fa9de0828b115303bf94aa
+IV = 05358f33e1fc6a53ab5a5c98ce
+AAD = 51e926d2542ac8faef61465a
+Tag = 75981131e3934ec6d41e00d502729799
+Plaintext = 88936e97db070c0ec2aa58d1c6f5b34df3d32ddf7db34a8b
+Ciphertext = cdbe7c7fb020dd00940e95e3a33e7bdac608dd069dfb4844
+
+Cipher = aes-128-ccm
+Key = f6bb5d59b0fa9de0828b115303bf94aa
+IV = 05358f33e1fc6a53ab5a5c98ce
+AAD = ebefbac97b363e6f32526aac
+Tag = e2c005b5bebe07ff578b1b4bc51971cd
+Plaintext = c20742e4b410c5b661da373a905fb0ed55b20e0e879eff5c
+Ciphertext = 872a500cdf3714b8377efa08f594787a6069fed767d6fd93
+
+Cipher = aes-128-ccm
+Key = f6bb5d59b0fa9de0828b115303bf94aa
+IV = 05358f33e1fc6a53ab5a5c98ce
+AAD = 1ef059ac7d648e9e32d9b1f2
+Tag = 21a25f15b5b4229a872a9199972c85b3
+Plaintext = 65c55ca21a89a8325365bf2be861d700559de2eabb41b37f
+Ciphertext = 20e84e4a71ae793c05c172198daa1f97604612335b09b1b0
+
+Cipher = aes-128-ccm
+Key = d1da2e961e78063af8de41865b226873
+IV = 03739f5474857006340cce554d
+AAD = e3afd091d2b588465872a6300f
+Tag = 42d522cc9dc19c47a4fa0b1528069cf8
+Plaintext = 8e5fa1a6662a8378cda15697e926841594f2f394fa5a34ab
+Ciphertext = ca0d95e3ff186ad6b88d45fc4079e6b7b4a615e7e8dd5f47
+
+Cipher = aes-128-ccm
+Key = d1da2e961e78063af8de41865b226873
+IV = 03739f5474857006340cce554d
+AAD = ce3186bb737753b59ee76b748c
+Tag = 59b26510b8f25610799e011d7c850ecd
+Plaintext = 311ebc5ff2f625944562ea699b2690df3e6e64a17c62bd3a
+Ciphertext = 754c881a6bc4cc3a304ef9023279f27d1e3a82d26ee5d6d6
+
+Cipher = aes-128-ccm
+Key = d1da2e961e78063af8de41865b226873
+IV = 03739f5474857006340cce554d
+AAD = bfd636989dfbcb0edc9f014cc8
+Tag = 52942aa0d39649f3d9ed535bebc2b603
+Plaintext = c96cee5ba7b799f16254a17b1870cdb85fe0ef3f42110c13
+Ciphertext = 8d3eda1e3e85705f1778b210b12faf1a7fb4094c509667ff
+
+Cipher = aes-128-ccm
+Key = d1da2e961e78063af8de41865b226873
+IV = 03739f5474857006340cce554d
+AAD = 4812b092aa59d57451bfd812c3
+Tag = c1e61efb9c1d84ddac2d24f43531f569
+Plaintext = 13b1b4404dc5735655139414fcbd02c5327ae9fb148bd324
+Ciphertext = 57e38005d4f79af8203f877f55e26067122e0f88060cb8c8
+
+Cipher = aes-128-ccm
+Key = d1da2e961e78063af8de41865b226873
+IV = 03739f5474857006340cce554d
+AAD = f6ef9ac4f4c9ce1e4309c64fa8
+Tag = 13350de0ef34df12fb945b0ae0a0d9bd
+Plaintext = 6c5b59319e2710f5d63407f85b424d1860425ef8ce0cfe53
+Ciphertext = 28096d740715f95ba3181493f21d2fba4016b88bdc8b95bf
+
+Cipher = aes-128-ccm
+Key = d1da2e961e78063af8de41865b226873
+IV = 03739f5474857006340cce554d
+AAD = 9bf12168bb3d79ebd25262f2b4
+Tag = a0734563638598d8c4bf1fcd94009925
+Plaintext = 968e1d78008da78611e82985c4028e86770858cfe61c3723
+Ciphertext = d2dc293d99bf4e2864c43aee6d5dec24575cbebcf49b5ccf
+
+Cipher = aes-128-ccm
+Key = d1da2e961e78063af8de41865b226873
+IV = 03739f5474857006340cce554d
+AAD = 7d870d7e52d3053c65eefad477
+Tag = a1f5fc53b08aca82bccfba6fbcb27e69
+Plaintext = 6a1306d911434cc7400d2f9a95e36aedceddca2b3d583f51
+Ciphertext = 2e41329c8871a56935213cf13cbc084fee892c582fdf54bd
+
+Cipher = aes-128-ccm
+Key = d1da2e961e78063af8de41865b226873
+IV = 03739f5474857006340cce554d
+AAD = e95099f04371e445e5eaa1d80e
+Tag = 7d1a922953facbd630d7fea6b63594ec
+Plaintext = b9197eb50c8168d16b8a12bd261d553ffcc521d979b26fee
+Ciphertext = fd4b4af095b3817f1ea601d68f42379ddc91c7aa6b350402
+
+Cipher = aes-128-ccm
+Key = d1da2e961e78063af8de41865b226873
+IV = 03739f5474857006340cce554d
+AAD = 3e80eb03db6545204ef4241ad6
+Tag = 83fa000d10078256b71249d9d1f1846c
+Plaintext = 95f59e36eac8eb3b51709d635b07fa2da0976ea20e25807f
+Ciphertext = d1a7aa7373fa0295245c8e08f258988f80c388d11ca2eb93
+
+Cipher = aes-128-ccm
+Key = d1da2e961e78063af8de41865b226873
+IV = 03739f5474857006340cce554d
+AAD = 9748798c0f3cc766795c8ce0e4
+Tag = 2773c2f55b752477c489facee812c614
+Plaintext = a48db9add9ecdeb49e51d3ab7bb2075202ed2aa50c0195b1
+Ciphertext = e0df8de840de371aeb7dc0c0d2ed65f022b9ccd61e86fe5d
+
+Cipher = aes-128-ccm
+Key = 1eee667267ef10b03624cf9c341e3f75
+IV = 0630a3eae27e505c61c56e6560
+AAD = d24651ef0561282d3e20e834960c
+Tag = d9236d5c5c9319092078411b72c51ba8
+Plaintext = 798e31cce0a83702a95171fb1162a17b9ce00ec3592ce262
+Ciphertext = f3c3e52f1a1ff528a8d3783ee4e75f114e3e6416334815d2
+
+Cipher = aes-128-ccm
+Key = 1eee667267ef10b03624cf9c341e3f75
+IV = 0630a3eae27e505c61c56e6560
+AAD = c527d309ab29ee91c5fc53117e71
+Tag = d8ad2a48cb734e3f93e602c15c7c775e
+Plaintext = d79cd4c8891ec4ce2c51136712d23b32266b2b73768aeb1e
+Ciphertext = 5dd1002b73a906e42dd31aa2e757c558f4b541a61cee1cae
+
+Cipher = aes-128-ccm
+Key = 1eee667267ef10b03624cf9c341e3f75
+IV = 0630a3eae27e505c61c56e6560
+AAD = a93dfc3944514ddfc5acdd89fab7
+Tag = f34b297f3f106a9cdae255f7634fbd0f
+Plaintext = d7fa81c949f1f2af29dbd56529b307e3b348e996d0936455
+Ciphertext = 5db7552ab34630852859dca0dc36f98961968343baf793e5
+
+Cipher = aes-128-ccm
+Key = 1eee667267ef10b03624cf9c341e3f75
+IV = 0630a3eae27e505c61c56e6560
+AAD = e502abe21c7b22120693a08ef3e6
+Tag = 4f5d9c3dbfe3e2fe03a002e55039ebe6
+Plaintext = 6330caaeddf0473d564d175b9408c6f12e6d3cd4ee2c423f
+Ciphertext = e97d1e4d2747851757cf1e9e618d389bfcb356018448b58f
+
+Cipher = aes-128-ccm
+Key = 1eee667267ef10b03624cf9c341e3f75
+IV = 0630a3eae27e505c61c56e6560
+AAD = a49b34dfad43333fb2ffd701a2d6
+Tag = 6f7bb0749c99d75740f2d193fef36c60
+Plaintext = 45671482c390e65f75de15ca91b93596e9bf3d6fc9178bcb
+Ciphertext = cf2ac06139272475745c1c0f643ccbfc3b6157baa3737c7b
+
+Cipher = aes-128-ccm
+Key = 1eee667267ef10b03624cf9c341e3f75
+IV = 0630a3eae27e505c61c56e6560
+AAD = 9e4d8aa3dbdc4d4b4b8d72734f52
+Tag = ceec82fc674da9efa6926e8641729ed8
+Plaintext = c8f34bea8bdc403a48d8ed9268429141cd03c29558050ef4
+Ciphertext = 42be9f09716b8210495ae4579dc76f2b1fdda8403261f944
+
+Cipher = aes-128-ccm
+Key = 1eee667267ef10b03624cf9c341e3f75
+IV = 0630a3eae27e505c61c56e6560
+AAD = 052327ad59cc791259817fd0ed96
+Tag = 2ff19e93f60c8f3a511300fddc38ee59
+Plaintext = d8d1c57b16c23894b66023c29f8648ce4a6074647e1f5f69
+Ciphertext = 529c1198ec75fabeb7e22a076a03b6a498be1eb1147ba8d9
+
+Cipher = aes-128-ccm
+Key = 1eee667267ef10b03624cf9c341e3f75
+IV = 0630a3eae27e505c61c56e6560
+AAD = 14bc3c44c001ccb261a2a0526523
+Tag = 7fa00fb244eda0d77cf6c05c8fd590af
+Plaintext = 71c14a7031033db15bfe23b75fed9daf8886dd11392a0b78
+Ciphertext = fb8c9e93cbb4ff9b5a7c2a72aa6863c55a58b7c4534efcc8
+
+Cipher = aes-128-ccm
+Key = 1eee667267ef10b03624cf9c341e3f75
+IV = 0630a3eae27e505c61c56e6560
+AAD = 3477384c396a9e9efb3e169722cb
+Tag = bae19612657c87d3bb73cfb8cee7c8a8
+Plaintext = afa795f836763a1210bb36fef167864f73ba3b6abc593537
+Ciphertext = 25ea411bccc1f83811393f3b04e27825a16451bfd63dc287
+
+Cipher = aes-128-ccm
+Key = 1eee667267ef10b03624cf9c341e3f75
+IV = 0630a3eae27e505c61c56e6560
+AAD = 0c3b9a6924ad506038cb2d6590c9
+Tag = 3d9713d2e916c23ac3039de34c295fc4
+Plaintext = ca4a186f116a179579e3d327aec3f5be358bc7094f853bc3
+Ciphertext = 4007cc8cebddd5bf7861dae25b460bd4e755addc25e1cc73
+
+Cipher = aes-128-ccm
+Key = dbbd26f5d9e970e4e384b2273961be5a
+IV = 0b1eabe504ef4822542e397fec
+AAD = 477937301c83ba02d50760b603e0ea
+Tag = df9a0e986ab2890736423bb3772cec3e
+Plaintext = 553714e17a208a2eceb847a4a2d95088388b1ac8d8ca43e0
+Ciphertext = 1c80213268bad5402c4dc9b5d836ab7499810d0d8a974716
+
+Cipher = aes-128-ccm
+Key = dbbd26f5d9e970e4e384b2273961be5a
+IV = 0b1eabe504ef4822542e397fec
+AAD = c91eb5a07ff19c044023e5cf339203
+Tag = 39f907a92cb01215e3cda84ae13af48b
+Plaintext = c94d0b9e728413c58202cb3f6b82dba7aa9e3ca0a72c40c7
+Ciphertext = 80fa3e4d601e4cab60f7452e116d205b0b942b65f5714431
+
+Cipher = aes-128-ccm
+Key = dbbd26f5d9e970e4e384b2273961be5a
+IV = 0b1eabe504ef4822542e397fec
+AAD = 38c71a8e9b279c605c7f0418a0afc1
+Tag = 3dbd8dbf7485106cdf9ea0e7088a5650
+Plaintext = b4e8c4fd5ad98a1be8b5a11677c57ca1c1694e3528092aa9
+Ciphertext = fd5ff12e4843d5750a402f070d2a875d606359f07a542e5f
+
+Cipher = aes-128-ccm
+Key = dbbd26f5d9e970e4e384b2273961be5a
+IV = 0b1eabe504ef4822542e397fec
+AAD = f2c76ef617fa2bfc8a4d6bcbb15fe8
+Tag = 853fde6f4dca88ff11bbce20ed9e5012
+Plaintext = 578ce26cdb5ba2e8798e23588e5cd04ef782820b80e49a42
+Ciphertext = 1e3bd7bfc9c1fd869b7bad49f4b32bb2568895ced2b99eb4
+
+Cipher = aes-128-ccm
+Key = dbbd26f5d9e970e4e384b2273961be5a
+IV = 0b1eabe504ef4822542e397fec
+AAD = 36004342dd74e7966692a848b2c11e
+Tag = d94e979108fcecbd32f6bdf72f0ccb4d
+Plaintext = 78733c635d4d4e8b0729732f1e174dfcec4e020a7ac3870d
+Ciphertext = 31c409b04fd711e5e5dcfd3e64f8b6004d4415cf289e83fb
+
+Cipher = aes-128-ccm
+Key = dbbd26f5d9e970e4e384b2273961be5a
+IV = 0b1eabe504ef4822542e397fec
+AAD = db92bc3fe5d4141aeb39baea6f114c
+Tag = 229c8f9d4e39fc16cbdb44236ef125c7
+Plaintext = c7aafe7760945e45703c1e19f1032dfd56ddc216c3b03826
+Ciphertext = 8e1dcba4720e012b92c990088becd601f7d7d5d391ed3cd0
+
+Cipher = aes-128-ccm
+Key = dbbd26f5d9e970e4e384b2273961be5a
+IV = 0b1eabe504ef4822542e397fec
+AAD = 34ec2d5b6f0d950509b47a0637d74c
+Tag = 1c9ab7cb0a779c3fa78c9ee12603802b
+Plaintext = 2345e36a63be0b78df95e60907c78da0e48e61e70685a1f3
+Ciphertext = 6af2d6b9712454163d6068187d28765c4584762254d8a505
+
+Cipher = aes-128-ccm
+Key = dbbd26f5d9e970e4e384b2273961be5a
+IV = 0b1eabe504ef4822542e397fec
+AAD = 6ab658d177c2dd87c9b8787cd70182
+Tag = 648c6307ec5ea304045a7cdc93f36b9d
+Plaintext = b0725f735543eb0c0ec88ae69b140f5787d28ef4a2e36d57
+Ciphertext = f9c56aa047d9b462ec3d04f7e1fbf4ab26d89931f0be69a1
+
+Cipher = aes-128-ccm
+Key = dbbd26f5d9e970e4e384b2273961be5a
+IV = 0b1eabe504ef4822542e397fec
+AAD = 483f135c61250fa610b4d14b99ecf0
+Tag = 364ff3b1ad915347b1c7f062b10d3da4
+Plaintext = 315a947bf5291278d446d332ee5ca0def7655d5c957a8fb4
+Ciphertext = 78eda1a8e7b34d1636b35d2394b35b22566f4a99c7278b42
+
+Cipher = aes-128-ccm
+Key = dbbd26f5d9e970e4e384b2273961be5a
+IV = 0b1eabe504ef4822542e397fec
+AAD = bb022aed60819ef84ae83ce27db9d0
+Tag = 7569808dab58d42181543b2e2d05992c
+Plaintext = f78d00755bcb45e6822121fe7cb03c8e627c9f548ccd7e7c
+Ciphertext = be3a35a649511a8860d4afef065fc772c3768891de907a8a
+
+Cipher = aes-128-ccm
+Key = 10a7720f2e18f739c26924925af6b670
+IV = 8c4e7813ab9bce9dafee01c628
+AAD = a209941fab710fda38d11c68b13d930f
+Tag = 2341ea8c0785569973f90ee9ee645acc
+Plaintext = e59782a9aea45f467b90e51a0fdf166baba05663def2d8b6
+Ciphertext = e357b1ccdaca6f3506dc45279c2e4c59f5307a5fd6a99cd7
+
+Cipher = aes-128-ccm
+Key = 10a7720f2e18f739c26924925af6b670
+IV = 8c4e7813ab9bce9dafee01c628
+AAD = 2e2f6f9755a492ee54df77b2ecab9808
+Tag = 703eb81224cdb1fd2e1cfb2fbfe1e402
+Plaintext = 042a072f6ebf11f79fcb4f5a64f7946dc837d9d2355785ea
+Ciphertext = 02ea344a1ad12184e287ef67f706ce5f96a7f5ee3d0cc18b
+
+Cipher = aes-128-ccm
+Key = 10a7720f2e18f739c26924925af6b670
+IV = 8c4e7813ab9bce9dafee01c628
+AAD = 99e98c9983c85d1f49ae43ebad67a652
+Tag = 64c4aea7f17f18f068897557c93ffaaa
+Plaintext = 5db6bda27910e7b8b61ac476c6532570b71b3932bd6a698c
+Ciphertext = 5b768ec70d7ed7cbcb56644b55a27f42e98b150eb5312ded
+
+Cipher = aes-128-ccm
+Key = 10a7720f2e18f739c26924925af6b670
+IV = 8c4e7813ab9bce9dafee01c628
+AAD = 37a837d73fa15793f6f823fb99c2ea74
+Tag = 6f3b2e70e6e2dc7acc74a823a7f49722
+Plaintext = 8cac261a461c3ddd2642b8e4e5c3389e491fcb2ff8356412
+Ciphertext = 8a6c157f32720dae5b0e18d9763262ac178fe713f06e2073
+
+Cipher = aes-128-ccm
+Key = 10a7720f2e18f739c26924925af6b670
+IV = 8c4e7813ab9bce9dafee01c628
+AAD = 11119a4e779cfb64c736d425e4ff554d
+Tag = 0dc3b57096f0df1d4eb5328c416921bc
+Plaintext = 3429f9b088b501d7944c462694d0799568282e7ce07d3e61
+Ciphertext = 32e9cad5fcdb31a4e900e61b072123a736b80240e8267a00
+
+Cipher = aes-128-ccm
+Key = 10a7720f2e18f739c26924925af6b670
+IV = 8c4e7813ab9bce9dafee01c628
+AAD = 962d7d4305f23d1692747b504960c0a4
+Tag = f62ed804e9f2ac0f7001d0f35ea9f3c1
+Plaintext = a46ae4c71d4c9eb72fabfa76b8074aa02e07653eca10eef5
+Ciphertext = a2aad7a26922aec452e75a4b2bf6109270974902c24baa94
+
+Cipher = aes-128-ccm
+Key = 10a7720f2e18f739c26924925af6b670
+IV = 8c4e7813ab9bce9dafee01c628
+AAD = bbb1fdfefcf3657ba6cd93ff341a04e1
+Tag = 907dcd7ac1e0bb248d46c3036c39fb02
+Plaintext = 92f5e3083f57c77ac9553a2024a66489698bd2261f05d415
+Ciphertext = 9435d06d4b39f709b4199a1db7573ebb371bfe1a175e9074
+
+Cipher = aes-128-ccm
+Key = 10a7720f2e18f739c26924925af6b670
+IV = 8c4e7813ab9bce9dafee01c628
+AAD = 74be126f7c596642dafa8fe3da904e69
+Tag = 87cbb80fd21127feca7e76fd6947d5b7
+Plaintext = 41ecc3aae5cfebfad7921a47a0684601ffe73816380f8716
+Ciphertext = 472cf0cf91a1db89aadeba7a33991c33a177142a3054c377
+
+Cipher = aes-128-ccm
+Key = 10a7720f2e18f739c26924925af6b670
+IV = 8c4e7813ab9bce9dafee01c628
+AAD = d72cc521c90a468522af8966c24799f3
+Tag = cdb5d1243b6e73b8e380d8ca041647db
+Plaintext = 8850bdda4bd0271e333db344a47b837183eb48269c3dc0b6
+Ciphertext = 8e908ebf3fbe176d4e711379378ad943dd7b641a946684d7
+
+Cipher = aes-128-ccm
+Key = 10a7720f2e18f739c26924925af6b670
+IV = 8c4e7813ab9bce9dafee01c628
+AAD = 28f427fba8d0bb0380bbe5072ccfa519
+Tag = 4a0ae8604b103f882f17db893ed5c576
+Plaintext = fdd3ca2f193f93f5a349b50357d26748b767cde6ab5cbfe7
+Ciphertext = fb13f94a6d51a386de05153ec4233d7ae9f7e1daa307fb86
+
+Cipher = aes-128-ccm
+Key = 6bffab1f4f4c1ff66b4a669b515b2f8d
+IV = ddb34d5e0140fb96d690e1a2b7
+AAD = 5cbba9ea778e01af00afb2a934f28c7211
+Tag = ab30780a2c4f12af8f35350d65284c59
+Plaintext = d91b12e8655dd92b1332fc1d71c391c96a17111562d90ba3
+Ciphertext = d302e5b2d5d90433186b804cd7717e2db2f22cdc34fb2942
+
+Cipher = aes-128-ccm
+Key = 6bffab1f4f4c1ff66b4a669b515b2f8d
+IV = ddb34d5e0140fb96d690e1a2b7
+AAD = 1583138aa307401dddc40804ac0f414d33
+Tag = 46577901b7f6feb88b8e2b8562f9cb5f
+Plaintext = eeafb08d4a4819f5682a01d44371e34cc5729079e74e73a6
+Ciphertext = e4b647d7faccc4ed63737d85e5c30ca81d97adb0b16c5147
+
+Cipher = aes-128-ccm
+Key = 6bffab1f4f4c1ff66b4a669b515b2f8d
+IV = ddb34d5e0140fb96d690e1a2b7
+AAD = 23931c258c84086500c6a3b6eda457e6b5
+Tag = 8735a59390ba7a892741694f3a89b0bf
+Plaintext = b8737d5bbfc976c2d8d9786148dea664dd83cee98df537b5
+Ciphertext = b26a8a010f4dabdad3800430ee6c49800566f320dbd71554
+
+Cipher = aes-128-ccm
+Key = 6bffab1f4f4c1ff66b4a669b515b2f8d
+IV = ddb34d5e0140fb96d690e1a2b7
+AAD = e12f98507d6514c3b551d240595346bc9e
+Tag = f4f81ed18cc1820375a7bec2318cde1e
+Plaintext = eb021b63c61c0b194bd44870608d7ef0b932b6104412d7a9
+Ciphertext = e11bec397698d601408d3421c63f911461d78bd91230f548
+
+Cipher = aes-128-ccm
+Key = 6bffab1f4f4c1ff66b4a669b515b2f8d
+IV = ddb34d5e0140fb96d690e1a2b7
+AAD = e14b87d49d231c0199eec627fd7f1b5332
+Tag = 187b430caa60d98dc3e2aeefe6249b44
+Plaintext = 93b42584c4956078359d77e80aef52281b9228a1f66aa36b
+Ciphertext = 99add2de7411bd603ec40bb9ac5dbdccc3771568a048818a
+
+Cipher = aes-128-ccm
+Key = 6bffab1f4f4c1ff66b4a669b515b2f8d
+IV = ddb34d5e0140fb96d690e1a2b7
+AAD = ca095aec96a8b093e62b10f0950ce35ce7
+Tag = 0a77372b727408e1bf5a70790b9eba3a
+Plaintext = 6a788d8238c7b313b8eba27b210a71c36819d719115b9b76
+Ciphertext = 60617ad888436e0bb3b2de2a87b89e27b0fcead04779b997
+
+Cipher = aes-128-ccm
+Key = 6bffab1f4f4c1ff66b4a669b515b2f8d
+IV = ddb34d5e0140fb96d690e1a2b7
+AAD = d1cac02b34ad33c0e77a5bda2c3baf5e5d
+Tag = dc1f5cb4d4fa2204e82eedcb3784443d
+Plaintext = 3bc1ee54d0094603dfc68eee118e547d031fb36e464e776d
+Ciphertext = 31d8190e608d9b1bd49ff2bfb73cbb99dbfa8ea7106c558c
+
+Cipher = aes-128-ccm
+Key = 6bffab1f4f4c1ff66b4a669b515b2f8d
+IV = ddb34d5e0140fb96d690e1a2b7
+AAD = 065c06b49a49898e20bb679e35edbb1f76
+Tag = 2413f9496592a75a1d6e42ee3a258607
+Plaintext = 8a12adb8b746216baa8a418725e608e4377f13816a036a10
+Ciphertext = 800b5ae207c2fc73a1d33dd68354e700ef9a2e483c2148f1
+
+Cipher = aes-128-ccm
+Key = 6bffab1f4f4c1ff66b4a669b515b2f8d
+IV = ddb34d5e0140fb96d690e1a2b7
+AAD = 98a42d7a0c5917deaf3b4de3f0cbe0a191
+Tag = b571a3150887df1ac5f813676b2eb24f
+Plaintext = 30a226c07401d0ae24c73d682e3a6e7e377ec1613bafba17
+Ciphertext = 3abbd19ac4850db62f9e41398888819aef9bfca86d8d98f6
+
+Cipher = aes-128-ccm
+Key = 6bffab1f4f4c1ff66b4a669b515b2f8d
+IV = ddb34d5e0140fb96d690e1a2b7
+AAD = e245a7528931841b52a5f59d861d98d7b7
+Tag = 31aa5e4657c92e31c69ab18d447d3578
+Plaintext = 3d17bcdf30445ebd8a9b6aa2fe11d443c1161bb1ee69ced0
+Ciphertext = 370e4b8580c083a581c216f358a33ba719f32678b84bec31
+
+Cipher = aes-128-ccm
+Key = ae6136df9ab43631ef143515dacedbe7
+IV = c5c445792208a50c8e93d64aa3
+AAD = e04006b68c83a5dd4ceac3cde238e48895ae
+Tag = 0d6d676d11fce907b5c93fa1ed7bff2b
+Plaintext = 6a493c5ef3769ccc4101dbb2eb36e1e5bbc577a057ce0731
+Ciphertext = c7584c0203c2535c5702c6ae93b7cbfb066f4a055c627a18
+
+Cipher = aes-128-ccm
+Key = ae6136df9ab43631ef143515dacedbe7
+IV = c5c445792208a50c8e93d64aa3
+AAD = 5da64e368f45153ea5b7ddca966b6c5b699a
+Tag = 2cd45f211b1a1364c91ad07959bf0ee5
+Plaintext = 15e0c672c6764f3699d9d3e7120f8ce5daab166f08fdd074
+Ciphertext = b8f1b62e36c280a68fdacefb6a8ea6fb67012bca0351ad5d
+
+Cipher = aes-128-ccm
+Key = ae6136df9ab43631ef143515dacedbe7
+IV = c5c445792208a50c8e93d64aa3
+AAD = 1b315d024bb5d1e03d7510e61f37d8adb10a
+Tag = 18f021a98b2edfb0b7500363099c2a1a
+Plaintext = de907d58cd8f5a72acaa1d329b937dfbbfed65a4e45eb029
+Ciphertext = 73810d043d3b95e2baa9002ee31257e502475801eff2cd00
+
+Cipher = aes-128-ccm
+Key = ae6136df9ab43631ef143515dacedbe7
+IV = c5c445792208a50c8e93d64aa3
+AAD = 8691ba4f9232ca86f919fe72ddb39c91d707
+Tag = 2ac9aeb018c48f3902276ac759710b6d
+Plaintext = c7fa314d27be79f9d3e2d1e188c1785b0c970f91b8ed4290
+Ciphertext = 6aeb4111d70ab669c5e1ccfdf0405245b13d3234b3413fb9
+
+Cipher = aes-128-ccm
+Key = ae6136df9ab43631ef143515dacedbe7
+IV = c5c445792208a50c8e93d64aa3
+AAD = ff0baf1cbb5884a9290ea7b5ee49915efb4b
+Tag = 7dac49f606dadb9f7034e0a1860d519b
+Plaintext = 33b05b20f3c849fac091a5028cbfa0bc9a1c32514136fee3
+Ciphertext = 9ea12b7c037c866ad692b81ef43e8aa227b60ff44a9a83ca
+
+Cipher = aes-128-ccm
+Key = ae6136df9ab43631ef143515dacedbe7
+IV = c5c445792208a50c8e93d64aa3
+AAD = 2d118cda20700bc2748ea1753fbca6f74933
+Tag = 623ccbab19c1442806e21c5a820945da
+Plaintext = f43832e420e2eccd5d80502bea2ba1804e17d4433318fc86
+Ciphertext = 592942b8d056235d4b834d3792aa8b9ef3bde9e638b481af
+
+Cipher = aes-128-ccm
+Key = ae6136df9ab43631ef143515dacedbe7
+IV = c5c445792208a50c8e93d64aa3
+AAD = 0c7a5fd2010c999a8a0efa81f89ff5bfefe0
+Tag = dbcd18947ac1800856c9c92eb0388c70
+Plaintext = ceb203c842a962183f22e602644fc66e4290b3d5be445fb4
+Ciphertext = 63a37394b21dad882921fb1e1cceec70ff3a8e70b5e8229d
+
+Cipher = aes-128-ccm
+Key = ae6136df9ab43631ef143515dacedbe7
+IV = c5c445792208a50c8e93d64aa3
+AAD = 73fdddb9e0a64f5671fd70c4ea8443507789
+Tag = 39c29ea73b0c5aa130d8b14f7b9926a9
+Plaintext = d6015b6bd5f5eabb2a649129f8f727c06a3ad59499f21caf
+Ciphertext = 7b102b372541252b3c678c3580760dded790e831925e6186
+
+Cipher = aes-128-ccm
+Key = ae6136df9ab43631ef143515dacedbe7
+IV = c5c445792208a50c8e93d64aa3
+AAD = 82c4484e3a6e18b6bbfd78b69b00c40b30c5
+Tag = f0a0f148ae138c2ea02538c8fd7ac76c
+Plaintext = c288b810fb533441bd549d02c0b28d5b834293683eaacda2
+Ciphertext = 6f99c84c0be7fbd1ab57801eb833a7453ee8aecd3506b08b
+
+Cipher = aes-128-ccm
+Key = ae6136df9ab43631ef143515dacedbe7
+IV = c5c445792208a50c8e93d64aa3
+AAD = 267d8385b14721eded743cffd69e4d595f7e
+Tag = 85eb537e7583f04e040a0ddc41106213
+Plaintext = 667cc47d13c34923be2441300066a6c150b24d66c947ca7b
+Ciphertext = cb6db421e37786b3a8275c2c78e78cdfed1870c3c2ebb752
+
+Cipher = aes-128-ccm
+Key = f1908328edf2996ebfc9655472ca5ad0
+IV = 4c693364546930b6c5250e2699
+AAD = 4a3634e5028df97fbe00eb016e8ea4f1918faa
+Tag = 52570e769629dcc2e568737ba53a1195
+Plaintext = eede01b08f9a303cdf14c99d7a45732972c6eff2a1db06eb
+Ciphertext = 90c850790b0b380f5aeb2488fdf43c9d5ef1759861e86f6e
+
+Cipher = aes-128-ccm
+Key = f1908328edf2996ebfc9655472ca5ad0
+IV = 4c693364546930b6c5250e2699
+AAD = 041b93e3fc059fa44aa755e88df277b9b6e499
+Tag = f1d82ec19a2e3ec43bbdb34e10999d90
+Plaintext = e61ca7310172eec16745a73e34516f65844eecd0dbc5566a
+Ciphertext = 980af6f885e3e6f2e2ba4a2bb3e020d1a87976ba1bf63fef
+
+Cipher = aes-128-ccm
+Key = f1908328edf2996ebfc9655472ca5ad0
+IV = 4c693364546930b6c5250e2699
+AAD = d1be393376cb5d23cf8139da0fd92f3d520ae9
+Tag = f2abb0ce4de9eeb5e8af9cdf3391d3cc
+Plaintext = ea887edee68ad5fa6bae928aa480dda898037f820700ec52
+Ciphertext = 949e2f17621bddc9ee517f9f2331921cb434e5e8c73385d7
+
+Cipher = aes-128-ccm
+Key = f1908328edf2996ebfc9655472ca5ad0
+IV = 4c693364546930b6c5250e2699
+AAD = f3e551b34d2db1286a9f41085e4dda95ec3f75
+Tag = 239c73b01ba49a8498b5ff4833851069
+Plaintext = 71fe1ba5d299495d2a56039c64032ec6263d437f55e3f5be
+Ciphertext = 0fe84a6c5608416eafa9ee89e3b261720a0ad91595d09c3b
+
+Cipher = aes-128-ccm
+Key = f1908328edf2996ebfc9655472ca5ad0
+IV = 4c693364546930b6c5250e2699
+AAD = a69ddc66e63a3415f21009d53adcf26bc1a9a5
+Tag = 2248dacd3903c26a2dc5ae649566ad67
+Plaintext = bd04d854216740a6ceb9827cbddd83761d19feb2a21d78ef
+Ciphertext = c312899da5f648954b466f693a6cccc2312e64d8622e116a
+
+Cipher = aes-128-ccm
+Key = f1908328edf2996ebfc9655472ca5ad0
+IV = 4c693364546930b6c5250e2699
+AAD = 5735d6f5882d8f27155eb4cc285a65138ad64a
+Tag = d4156cf7d97b2e744351b6960a807cf8
+Plaintext = 33b44873a7a1e5b0fdbb7e7347623e4fa1ccd937feb26fda
+Ciphertext = 4da219ba2330ed8378449366c0d371fb8dfb435d3e81065f
+
+Cipher = aes-128-ccm
+Key = f1908328edf2996ebfc9655472ca5ad0
+IV = 4c693364546930b6c5250e2699
+AAD = 5d94ed976ab2063512690ae704c3b115519742
+Tag = 5a50086b6711ac72533c3c5717f6892c
+Plaintext = d3909d577a4e89642227cc6fc146b61bc18392175e342898
+Ciphertext = ad86cc9efedf8157a7d8217a46f7f9afedb4087d9e07411d
+
+Cipher = aes-128-ccm
+Key = f1908328edf2996ebfc9655472ca5ad0
+IV = 4c693364546930b6c5250e2699
+AAD = db20b384620ab8691aed2fed14a745188d94c0
+Tag = 54fb74ecb9a5163b01b9dbf97ff2f999
+Plaintext = ba0716355fffb8ef947d2a15eb58375a1ff1084c56699029
+Ciphertext = c41147fcdb6eb0dc1182c7006ce978ee33c69226965af9ac
+
+Cipher = aes-128-ccm
+Key = f1908328edf2996ebfc9655472ca5ad0
+IV = 4c693364546930b6c5250e2699
+AAD = 94897cdd04e0c8480b2ef7b5201dda37558ba9
+Tag = d2a81702f665ff5c54f586defd268c94
+Plaintext = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9cc
+Ciphertext = 215d1e5e323b409e36cc81509d1d78cbf27d452d494cb049
+
+Cipher = aes-128-ccm
+Key = f1908328edf2996ebfc9655472ca5ad0
+IV = 4c693364546930b6c5250e2699
+AAD = 95c44e1e5ad256b3ce1cc1d87137a1e09f1fd4
+Tag = fa641889723e163825ab65727e8a5343
+Plaintext = 598e91d39c414496fd5e69f2cf80826b4e7d59ba28e0a0d8
+Ciphertext = 2798c01a18d04ca578a184e74831cddf624ac3d0e8d3c95d
+
+Cipher = aes-128-ccm
+Key = 61cb8eb792e95d099a1455fb789d8d16
+IV = 1f37b3e59137f2a60dc09d16ac
+AAD = 09db3efac9473f713da630ae92c2c8604c61c51e
+Tag = d89756e5d78753ef22c012ae34b39a20
+Plaintext = 6ad541695a37c32d73ff6d5f870abd5b0f362a8968c4fce0
+Ciphertext = e65fcc975865c1499b088b58ba163283085d8ca68dc3b235
+
+Cipher = aes-128-ccm
+Key = 61cb8eb792e95d099a1455fb789d8d16
+IV = 1f37b3e59137f2a60dc09d16ac
+AAD = b6d07035aed9c141c713cc3bce60f7ba8ac2545f
+Tag = fc78ebae9c143a7283b0641e1f83f5a0
+Plaintext = 9cce4c82fe9d38ef64ac8abdf0619f201a25ce6903675627
+Ciphertext = 1044c17cfccf3a8b8c5b6cbacd7d10f81d4e6846e66018f2
+
+Cipher = aes-128-ccm
+Key = 61cb8eb792e95d099a1455fb789d8d16
+IV = 1f37b3e59137f2a60dc09d16ac
+AAD = 80a5ab693378af29cd5a33555cb3579f9ae540aa
+Tag = 5a7e44348d2b3085348f787128a4e96a
+Plaintext = 7295a7aed3e987baef19ad68c33ba5a5dcbff27875ff5236
+Ciphertext = fe1f2a50d1bb85de07ee4b6ffe272a7ddbd4545790f81ce3
+
+Cipher = aes-128-ccm
+Key = 61cb8eb792e95d099a1455fb789d8d16
+IV = 1f37b3e59137f2a60dc09d16ac
+AAD = 220817144a15a0a654fc1beaabce60270aa72df8
+Tag = 24dfc096cd8a09d2d81f6146fb54082a
+Plaintext = eb21fe20fc4f92452b261eac0d7b70016f7469afdff7a3f5
+Ciphertext = 67ab73defe1d9021c3d1f8ab3067ffd9681fcf803af0ed20
+
+Cipher = aes-128-ccm
+Key = 61cb8eb792e95d099a1455fb789d8d16
+IV = 1f37b3e59137f2a60dc09d16ac
+AAD = 5a2423c2ff2d642c80ac1ca27dd779321f3e9c01
+Tag = 5da82204f4dd8f535cb2fec2f133d882
+Plaintext = 23bf80f51dfd83f63986910e69d54a315c2bfb43f432b7de
+Ciphertext = af350d0b1faf8192d171770954c9c5e95b405d6c1135f90b
+
+Cipher = aes-128-ccm
+Key = 61cb8eb792e95d099a1455fb789d8d16
+IV = 1f37b3e59137f2a60dc09d16ac
+AAD = f2c76ef617fa2bfc8a4d6bcbb15fe88436fdc216
+Tag = 108630135498ba409f4b6c8caee8a85b
+Plaintext = fc3a50cc8a68778327923ea697f5388da4c814381e29c5e4
+Ciphertext = 70b0dd32883a75e7cf65d8a1aae9b755a3a3b217fb2e8b31
+
+Cipher = aes-128-ccm
+Key = 61cb8eb792e95d099a1455fb789d8d16
+IV = 1f37b3e59137f2a60dc09d16ac
+AAD = b40c8c1d2cee490653105ca2443356cdb63e4fd0
+Tag = f89c515837d129ba41f9c24b0229ddcf
+Plaintext = 465e41c69928d08c33e063ea119595a04d0de6bffd17bba5
+Ciphertext = cad4cc389b7ad2e8db1785ed2c891a784a6640901810f570
+
+Cipher = aes-128-ccm
+Key = 61cb8eb792e95d099a1455fb789d8d16
+IV = 1f37b3e59137f2a60dc09d16ac
+AAD = 6ebfa1e8f80b3cdb1bedf2e3c7e74f30f55c38e1
+Tag = a352fa6b9c4e40733ddcd3fcdaf9ae63
+Plaintext = 3f98ee3922f8f1086e3135ae66c5465426b13c8794954880
+Ciphertext = b31263c720aaf36c86c6d3a95bd9c98c21da9aa871920655
+
+Cipher = aes-128-ccm
+Key = 61cb8eb792e95d099a1455fb789d8d16
+IV = 1f37b3e59137f2a60dc09d16ac
+AAD = 6d0159861031c1a5f01aab35927fe2ab28154d19
+Tag = 2c1aa13f062c0f1f5008e27ff2191942
+Plaintext = 5b43067a5ab3a9f9e633fdc084c44ffa7f11edd12ea5873d
+Ciphertext = d7c98b8458e1ab9d0ec41bc7b9d8c022787a4bfecba2c9e8
+
+Cipher = aes-128-ccm
+Key = 61cb8eb792e95d099a1455fb789d8d16
+IV = 1f37b3e59137f2a60dc09d16ac
+AAD = 15e5ade017b30ab41878a2747e93aa91c61c2908
+Tag = e149dd02bc7face0c4dfe4e501c2ac2a
+Plaintext = e40b7e9e46e339e64891526e730b3bf6562fa37acefce307
+Ciphertext = 6881f36044b13b82a066b4694e17b42e514405552bfbadd2
+
+Cipher = aes-128-ccm
+Key = be1ed49e2cb0caf6b6a0940c58453b93
+IV = b78ad129457681fa7346435b97
+AAD = 161d92c7df1ebb0924719e066e08b95eb4914a5eda
+Tag = 62d2b338a7b34ebd9d85c244c952d681
+Plaintext = a9eec383f63892521e4616fcbadc5485942ffaf4669c43a7
+Ciphertext = 949be340720c4fdc4adc05cb777dd81a2549628d33fba07e
+
+Cipher = aes-128-ccm
+Key = be1ed49e2cb0caf6b6a0940c58453b93
+IV = b78ad129457681fa7346435b97
+AAD = 6b1d94bc0c6e45fc905c509ea667853e4b2c5a8848
+Tag = 8a4defafeb3d61dad8c007b68d8fb9b3
+Plaintext = 7b44a093162bfc8b4d65f1031d890a6b08a3705b142c0c26
+Ciphertext = 46318050921f210519ffe234d02886f4b9c5e822414befff
+
+Cipher = aes-128-ccm
+Key = be1ed49e2cb0caf6b6a0940c58453b93
+IV = b78ad129457681fa7346435b97
+AAD = 868dd3e241f60f097a7a2fe571307ee5eb961218ca
+Tag = 57cbab553b511d68a4f41db211d0a2fc
+Plaintext = 28c4d6de3e2ce51b849b135d9cfd3084f0e3155447cad9d5
+Ciphertext = 15b1f61dba183895d001006a515cbc1b41858d2d12ad3a0c
+
+Cipher = aes-128-ccm
+Key = be1ed49e2cb0caf6b6a0940c58453b93
+IV = b78ad129457681fa7346435b97
+AAD = 3776f37fbf8803bdfd246ffaff2e59658a6c3f0ebb
+Tag = 0290fd7dbf0afa3e597274e3c9fe170b
+Plaintext = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72
+Ciphertext = 2ba665a3ee05875c14f0a8fc8e6c0034582e8802f3b699ab
+
+Cipher = aes-128-ccm
+Key = be1ed49e2cb0caf6b6a0940c58453b93
+IV = b78ad129457681fa7346435b97
+AAD = d0f2769eba9b8e618f00eed6b34c261c59322a253b
+Tag = 9c7dec3960e6aba3174d793b4e08f449
+Plaintext = fcbbcdd9599a86e7c8ccb9347065789a9728ca1220fa51ca
+Ciphertext = c1ceed1addae5b699c56aa03bdc4f405264e526b759db213
+
+Cipher = aes-128-ccm
+Key = be1ed49e2cb0caf6b6a0940c58453b93
+IV = b78ad129457681fa7346435b97
+AAD = 2be180892faed0bb75887668d187807666d3c66c68
+Tag = 7057b9e2d844e86ee5c3ecfb3270804e
+Plaintext = 8d145b1f792cc31a2e5b86216609bb018e7aea3012ff70a5
+Ciphertext = b0617bdcfd181e947ac19516aba8379e3f1c72494798937c
+
+Cipher = aes-128-ccm
+Key = be1ed49e2cb0caf6b6a0940c58453b93
+IV = b78ad129457681fa7346435b97
+AAD = 52859849a5b7c1d432c3bfb35271cd8141db2ec774
+Tag = 1150fa899152eef7a30ae0f20986818e
+Plaintext = 741db990b43ef34993c33d1c4953b67b128b9299dfe86d74
+Ciphertext = 49689953300a2ec7c7592e2b84f23ae4a3ed0ae08a8f8ead
+
+Cipher = aes-128-ccm
+Key = be1ed49e2cb0caf6b6a0940c58453b93
+IV = b78ad129457681fa7346435b97
+AAD = aa192759625f4e42d1d1fa73dc0f62199142155615
+Tag = ba7ff9203608089558698ec29472dda7
+Plaintext = 51dca5c0f8e5d49596f32d3eb87437bcae866640310ce1e3
+Ciphertext = 6ca985037cd1091bc2693e0975d5bb231fe0fe39646b023a
+
+Cipher = aes-128-ccm
+Key = be1ed49e2cb0caf6b6a0940c58453b93
+IV = b78ad129457681fa7346435b97
+AAD = 6de564226884188ec7bea3894535a875cff2a42fdb
+Tag = 85bd0a5074ef852575baf5f12c22663e
+Plaintext = dfaa7aa8b28626210d5c24e2ddfe516189be05aabe26f3b2
+Ciphertext = e2df5a6b36b2fbaf59c637d5105fddfe38d89dd3eb41106b
+
+Cipher = aes-128-ccm
+Key = be1ed49e2cb0caf6b6a0940c58453b93
+IV = b78ad129457681fa7346435b97
+AAD = f245f2ee23755df863dee55d7ef0c3c09a0b6f0b0c
+Tag = 9eb617436bae012331daf020fce24e47
+Plaintext = eedf00aab5edefdd6549d37ed44358e11c588c24f141dc57
+Ciphertext = d3aa206931d9325331d3c04919e2d47ead3e145da4263f8e
+
+Cipher = aes-128-ccm
+Key = 34ab6fd7f54a2e0276fcb7cf1e203aba
+IV = 6091afb62c1a8eed4da5624dd7
+AAD = 1ab5cc3d7b01dc74e6cf838bb565fea3187d33d552a2
+Tag = 7ef14622a9b621d1721b944c60f7fd67
+Plaintext = 8d164f598ea141082b1069776fccd87baf6a2563cbdbc9d1
+Ciphertext = 0d30ab07153b5153637969e6bd3539448c541e42b3d432fd
+
+Cipher = aes-128-ccm
+Key = 34ab6fd7f54a2e0276fcb7cf1e203aba
+IV = 6091afb62c1a8eed4da5624dd7
+AAD = 1f1ac4674b272bc7a4ee9f4eae33e969b16fa90a69ba
+Tag = dfa4ec2c92671c64ee07946527be67f0
+Plaintext = 14e99a2ef0de650adbd785c692342cdb765e6d20d5fca09a
+Ciphertext = 94cf7e706b44755193be855740cdcde455605601adf35bb6
+
+Cipher = aes-128-ccm
+Key = 34ab6fd7f54a2e0276fcb7cf1e203aba
+IV = 6091afb62c1a8eed4da5624dd7
+AAD = 43ee77f12ea42e82a02275a68aa95cbd1bb440442bcf
+Tag = 173572fbf3d9495760aae4347397b110
+Plaintext = 383242c709fe5f2ce782bf8c83b645d171f2bd238abc655d
+Ciphertext = b814a69992644f77afebbf1d514fa4ee52cc8602f2b39e71
+
+Cipher = aes-128-ccm
+Key = 34ab6fd7f54a2e0276fcb7cf1e203aba
+IV = 6091afb62c1a8eed4da5624dd7
+AAD = ae2ff288199be25bf640811541394ad7e1dd0dc0d24d
+Tag = 4d2327956e030b9df753e063b5b71201
+Plaintext = 9c16a5b638c35c97c5c981c1b8dbcba11aec30e72e45a936
+Ciphertext = 1c3041e8a3594ccc8da081506a222a9e39d20bc6564a521a
+
+Cipher = aes-128-ccm
+Key = 34ab6fd7f54a2e0276fcb7cf1e203aba
+IV = 6091afb62c1a8eed4da5624dd7
+AAD = 4ccfb4281852b5ca7e787723d689384a68ff9437db31
+Tag = e4dac0c9130f5641afd035dd884b6271
+Plaintext = ec9d8edff25645520801b6e8d14a2fc3b193db70d5e5e878
+Ciphertext = 6cbb6a8169cc55094068b67903b3cefc92ade051adea1354
+
+Cipher = aes-128-ccm
+Key = 34ab6fd7f54a2e0276fcb7cf1e203aba
+IV = 6091afb62c1a8eed4da5624dd7
+AAD = d3a2fffc798fd9cc2f409471faf18caa2ff3dcf4e652
+Tag = 48807dd50a9cf41651083c49c7493ceb
+Plaintext = 0db33eda4188a9165147e24e40f79fee1985eb68d5162728
+Ciphertext = 8d95da84da12b94d192ee2df920e7ed13abbd049ad19dc04
+
+Cipher = aes-128-ccm
+Key = 34ab6fd7f54a2e0276fcb7cf1e203aba
+IV = 6091afb62c1a8eed4da5624dd7
+AAD = 7b5121aa4d1e314f209ffe3e92cd26ee4f74d91e27f2
+Tag = 8ea0da53046733f522ded40a09c6d7a6
+Plaintext = e0d3ea4308376423c4322503f56e427a64e2e6d8b4f5e668
+Ciphertext = 60f50e1d93ad74788c5b25922797a34547dcddf9ccfa1d44
+
+Cipher = aes-128-ccm
+Key = 34ab6fd7f54a2e0276fcb7cf1e203aba
+IV = 6091afb62c1a8eed4da5624dd7
+AAD = 6e12c112720ef346bbbe7d1c19483721b1c52c438dad
+Tag = 345cb5a968f39654b994686699d532c2
+Plaintext = 491f2bca585d6b5fdf38d18890e4d1bc923fe26930b3d2f1
+Ciphertext = c939cf94c3c77b049751d119421d3083b101d94848bc29dd
+
+Cipher = aes-128-ccm
+Key = 34ab6fd7f54a2e0276fcb7cf1e203aba
+IV = 6091afb62c1a8eed4da5624dd7
+AAD = 20433402a2d869c95ac4a070c7a3da838c928a385f89
+Tag = cce85eb55339b886b7121b306fccc0b2
+Plaintext = f45908d691ddaf89c0bc129ffada94c3ceda5f47d63ef76a
+Ciphertext = 747fec880a47bfd288d5120e282375fcede46466ae310c46
+
+Cipher = aes-128-ccm
+Key = 34ab6fd7f54a2e0276fcb7cf1e203aba
+IV = 6091afb62c1a8eed4da5624dd7
+AAD = 42f944c21cc221beaacb288115ac628346b8a1d94bd5
+Tag = a37ca5ce12aa6f0659467642deb8bfcd
+Plaintext = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b
+Ciphertext = 63261824c00c9038caaa5a64603b09dd40bc4e3a210ef667
+
+Cipher = aes-128-ccm
+Key = ea96f90fbae12a857f5c97e0cba57943
+IV = 21cc46d9ced1539b0ad946e600
+AAD = 105258d2f25f62675aee975cfdb668aff833f05b61eb2a
+Tag = c7fa9ee2e7cdc1b755258f2212a8a8f4
+Plaintext = 49db80f22bc267a70e5636dfbc8a21c83d9691fe4b9c3051
+Ciphertext = d2fcc8b7809b5fc07e44083e437d8180157f1782a9ce9f65
+
+Cipher = aes-128-ccm
+Key = ea96f90fbae12a857f5c97e0cba57943
+IV = 21cc46d9ced1539b0ad946e600
+AAD = 0f5938540651fa4ca03867e67518eb2b73f60dd8750fa0
+Tag = bfdb9bfcd3b969fb2e41221eb92b0147
+Plaintext = 26618e21099a79d6c517335389551323065ad89c8848ea12
+Ciphertext = bd46c664a2c341b1b5050db276a2b36b2eb35ee06a1a4526
+
+Cipher = aes-128-ccm
+Key = ea96f90fbae12a857f5c97e0cba57943
+IV = 21cc46d9ced1539b0ad946e600
+AAD = d6b228960fcbcf07c7bede616139db62b3808718a5b511
+Tag = f8beea22cba93203c912209c78c03aa1
+Plaintext = 4de1d6d57144896ddea1c30f49afecd27bdf4840ed9928b5
+Ciphertext = d6c69e90da1db10aaeb3fdeeb6584c9a5336ce3c0fcb8781
+
+Cipher = aes-128-ccm
+Key = ea96f90fbae12a857f5c97e0cba57943
+IV = 21cc46d9ced1539b0ad946e600
+AAD = 75f8f071e229355e286882917ce5dd4f1db591fee51b6c
+Tag = 69a2e3ea4a40f7c491912c1a0778ebde
+Plaintext = 785359b1dc754a1e1b6d8731bd2d917ce3e91507401310e8
+Ciphertext = e37411f4772c72796b7fb9d042da3134cb00937ba241bfdc
+
+Cipher = aes-128-ccm
+Key = ea96f90fbae12a857f5c97e0cba57943
+IV = 21cc46d9ced1539b0ad946e600
+AAD = 4afb62aa8648ac7474dd16fcc376f8909c69e1ce36e6d1
+Tag = a75c7ba2a769c27903e99b72639b0841
+Plaintext = ab627aac1496d011ed2edcb2fc6b2afbcc394654f56124f6
+Ciphertext = 304532e9bfcfe8769d3ce253039c8ab3e4d0c02817338bc2
+
+Cipher = aes-128-ccm
+Key = ea96f90fbae12a857f5c97e0cba57943
+IV = 21cc46d9ced1539b0ad946e600
+AAD = 736fdf94db820a2efe89e7fc9dcfe7c23d5754ac2bcc7c
+Tag = f84f4ca4a69fde75d7207e50494819b6
+Plaintext = 40722cffb37f1455c2618408e777ed0f4b1bd039952730cc
+Ciphertext = db5564ba18262c32b273bae918804d4763f2564577759ff8
+
+Cipher = aes-128-ccm
+Key = ea96f90fbae12a857f5c97e0cba57943
+IV = 21cc46d9ced1539b0ad946e600
+AAD = 8a9a0367137c28db4c4e78d9cd9a68cde0d1b4583532ae
+Tag = a0c34a24d3ee0946034c71fba4dbb333
+Plaintext = dcaabf7a061502618541c09ea59dbbbd52b2692fd0064747
+Ciphertext = 478df73fad4c3a06f553fe7f5a6a1bf57a5bef533254e873
+
+Cipher = aes-128-ccm
+Key = ea96f90fbae12a857f5c97e0cba57943
+IV = 21cc46d9ced1539b0ad946e600
+AAD = 34dbbff560ef04ea731b8979aef2ae50972f4db3efe14a
+Tag = 0f5e24a435a39a716c39f43dabdc4281
+Plaintext = dd641a893b16e0e173ea2eda20638bb01849ac11e64e8ddb
+Ciphertext = 464352cc904fd88603f8103bdf942bf830a02a6d041c22ef
+
+Cipher = aes-128-ccm
+Key = ea96f90fbae12a857f5c97e0cba57943
+IV = 21cc46d9ced1539b0ad946e600
+AAD = f3d1fcd912252431db9d8ccfc3e203d5b34d537468b4c6
+Tag = f623d59f66764d859a772bb50ec91fc3
+Plaintext = 9aa3e8ad92777dfeb121a646ce2e918d1e12b30754bc0947
+Ciphertext = 0184a0e8392e4599c13398a731d931c536fb357bb6eea673
+
+Cipher = aes-128-ccm
+Key = ea96f90fbae12a857f5c97e0cba57943
+IV = 21cc46d9ced1539b0ad946e600
+AAD = 513b4cdc551c203ed5f1e659813584862023911590b672
+Tag = 3b6549eb16fba96318afb3df51f4675f
+Plaintext = c8f44ae4b02fffdbce0df773c24075f877945fc7a86be460
+Ciphertext = 53d302a11b76c7bcbe1fc9923db7d5b05f7dd9bb4a394b54
+
+Cipher = aes-128-ccm
+Key = 35b403a15212097085d6e2b77ec3d4f2
+IV = daa423bf9256c3fcc347a293aa
+AAD = d3c0ed74e5f25e4c1e479e1a51182bb018698ec267269149
+Tag = eee82c19ecba34280604b58d92dacd3f
+Plaintext = 7dd7396db6613eb80909a3b8c0029b624912aabedda0659b
+Ciphertext = 5b00cf8a66baa7fe22502ed6f4861af71fa64b550d643f95
+
+Cipher = aes-128-ccm
+Key = 35b403a15212097085d6e2b77ec3d4f2
+IV = daa423bf9256c3fcc347a293aa
+AAD = 62f4fe53e99a9b0c51e9561d910d7e2ffe19a5176c9dec06
+Tag = ab4999e9689d52b8afeb87923efa3b48
+Plaintext = 897f0dfd90213f64a9277a0eda4f134f303fa89f56ca54fb
+Ciphertext = afa8fb1a40faa622827ef760eecb92da668b4974860e0ef5
+
+Cipher = aes-128-ccm
+Key = 35b403a15212097085d6e2b77ec3d4f2
+IV = daa423bf9256c3fcc347a293aa
+AAD = 191c4dfa653c20292657f7694c6b6a4a410c49a879abd217
+Tag = cdc71e556c34fd4e1b5ebc50d38da8b3
+Plaintext = 2b7cf9e6e2d6abcd7775f8a6eb6294e822041c4c45f09c3c
+Ciphertext = 0dab0f01320d328b5c2c75c8dfe6157d74b0fda79534c632
+
+Cipher = aes-128-ccm
+Key = 35b403a15212097085d6e2b77ec3d4f2
+IV = daa423bf9256c3fcc347a293aa
+AAD = ba34741f8edb51470eb20f891869aabeab562d92571ac943
+Tag = 46223d381090661c2ee2370d29a572a9
+Plaintext = dccb9a4625512496b372a2b8b768f75741d8c2e30e57d638
+Ciphertext = fa1c6ca1f58abdd0982b2fd683ec76c2176c2308de938c36
+
+Cipher = aes-128-ccm
+Key = 35b403a15212097085d6e2b77ec3d4f2
+IV = daa423bf9256c3fcc347a293aa
+AAD = 8b922aca6125722ec490b134a45864397f4e2c281d6e2089
+Tag = f78af50466646b7c7e652f787afe5357
+Plaintext = e0e452c990665465160b02cad6367ca89723613488d8efbf
+Ciphertext = c633a42e40bdcd233d528fa4e2b2fd3dc19780df581cb5b1
+
+Cipher = aes-128-ccm
+Key = 35b403a15212097085d6e2b77ec3d4f2
+IV = daa423bf9256c3fcc347a293aa
+AAD = afb9fd78e3f8eaf4e8c91da62b2da534508e54f7dfa214fc
+Tag = cc9d9a1270f78648a6b66cb8c0f2471b
+Plaintext = b536fdb8839f87080ae65ec35da347e792622ffe18a61d46
+Ciphertext = 93e10b5f53441e4e21bfd3ad6927c672c4d6ce15c8624748
+
+Cipher = aes-128-ccm
+Key = 35b403a15212097085d6e2b77ec3d4f2
+IV = daa423bf9256c3fcc347a293aa
+AAD = ecf942ccee7396cb3ee177eadd4d96a4af1d90afdce97376
+Tag = b17d3d6f1fc4f530841b749d9f3a0a7a
+Plaintext = c81233826e5125e1f31fe275184ccba8f1a743e58e146e4d
+Ciphertext = eec5c565be8abca7d8466f1b2cc84a3da713a20e5ed03443
+
+Cipher = aes-128-ccm
+Key = 35b403a15212097085d6e2b77ec3d4f2
+IV = daa423bf9256c3fcc347a293aa
+AAD = 16fea92ffcaad563792aa924bffe7ef690edc90ea4e29cc0
+Tag = 5852ed48cf88d9ab2326aa46b6541b60
+Plaintext = 24ab253b5b06552665c3c810254c0ed15e68a783180d7eee
+Ciphertext = 027cd3dc8bddcc604e9a457e11c88f4408dc4668c8c924e0
+
+Cipher = aes-128-ccm
+Key = 35b403a15212097085d6e2b77ec3d4f2
+IV = daa423bf9256c3fcc347a293aa
+AAD = 76f110eecd369d79e21fb208058359d3a2f37581d1f7f691
+Tag = c62dff6bcade5ac2edb8ec9797ce433e
+Plaintext = 7f596bc7a815d103ed9f6dc428b60e72aeadcb9382ccde4a
+Ciphertext = 598e9d2078ce4845c6c6e0aa1c328fe7f8192a7852088444
+
+Cipher = aes-128-ccm
+Key = 35b403a15212097085d6e2b77ec3d4f2
+IV = daa423bf9256c3fcc347a293aa
+AAD = 8834c776a3237f060ae0ab9857324a3b2ac79f3b6e6f90f5
+Tag = b936ac4764575f85352c24ab23209d42
+Plaintext = 11cbfb3d348c7abef99f562607e289de34a2bb379a5dfe50
+Ciphertext = 371c0ddae457e3f8d2c6db483366084b62165adc4a99a45e
+
+Cipher = aes-128-ccm
+Key = 7a459aadb48f1a528edae71fcf698b84
+IV = fa4616b715ea898772b0e89dd4
+AAD = 0c0b4a45df5c3919c1e1669c5af5d398d9545e44307d95c481
+Tag = a1138cff7b624f9908b5b4d7e90a824a
+Plaintext = 0b3d947de8632dc8ff752f619ba7c84716fac7a23e101641
+Ciphertext = 7db9f3f7dc26fc2adf58d4525d26d5601e977de5a7c33911
+
+Cipher = aes-128-ccm
+Key = 7a459aadb48f1a528edae71fcf698b84
+IV = fa4616b715ea898772b0e89dd4
+AAD = aa27a28a36b5a2cee57ffeca0233feb4bdd4eacb2cae28e98f
+Tag = e23f92b598f7a248a894e6b8f5691bee
+Plaintext = e6dedce2c278c44e5678d13e7d5b5d3501d61bb0bb6b5558
+Ciphertext = 905abb68f63d15ac76552a0dbbda401209bba1f722b87a08
+
+Cipher = aes-128-ccm
+Key = 7a459aadb48f1a528edae71fcf698b84
+IV = fa4616b715ea898772b0e89dd4
+AAD = 66220aa9b40a1772caba7749a544bff938e804dbc6e556498f
+Tag = e94043c0d80fd651469232fe9d47a81f
+Plaintext = a276b0922fbd5094bf89b9329d07341e039d6204397b81c0
+Ciphertext = d4f2d7181bf881769fa442015b8629390bf0d843a0a8ae90
+
+Cipher = aes-128-ccm
+Key = 7a459aadb48f1a528edae71fcf698b84
+IV = fa4616b715ea898772b0e89dd4
+AAD = 3d765d20e03a4cebfda50316c4b7d8b6c55078d5b3e9cbc567
+Tag = 25088b522fc0731097e729448236b317
+Plaintext = b99afbc2dbb377350cc58d4bfe8e954cef25d7b27b82fad4
+Ciphertext = cf1e9c48eff6a6d72ce87678380f886be7486df5e251d584
+
+Cipher = aes-128-ccm
+Key = 7a459aadb48f1a528edae71fcf698b84
+IV = fa4616b715ea898772b0e89dd4
+AAD = e91b6265879153e1692b00a112b4205111c8eb1a7b7f2c6898
+Tag = 2208cf07574cc4f3f83ed6301b904404
+Plaintext = 56114cc783b80ca2dd2881387b6d92a59a237dfc8e976d8b
+Ciphertext = 20952b4db7fddd40fd057a0bbdec8f82924ec7bb174442db
+
+Cipher = aes-128-ccm
+Key = 7a459aadb48f1a528edae71fcf698b84
+IV = fa4616b715ea898772b0e89dd4
+AAD = 340b16f352817babb4fb70e9e6e18784b3e67bdd449872158c
+Tag = 14b0a900068e55cd24c92bbb78c521ad
+Plaintext = eb21fe20fc4f92452b261eac0d7b70016f7469afdff7a3f5
+Ciphertext = 9da599aac80a43a70b0be59fcbfa6d266719d3e846248ca5
+
+Cipher = aes-128-ccm
+Key = 7a459aadb48f1a528edae71fcf698b84
+IV = fa4616b715ea898772b0e89dd4
+AAD = 5a2423c2ff2d642c80ac1ca27dd779321f3e9c01445be684dc
+Tag = 3f8ba66d74321c80c057f010078d2f28
+Plaintext = b15083a73607c9d7e197a8cc884ad3be98ac343f6493df67
+Ciphertext = c7d4e42d02421835c1ba53ff4ecbce9990c18e78fd40f037
+
+Cipher = aes-128-ccm
+Key = 7a459aadb48f1a528edae71fcf698b84
+IV = fa4616b715ea898772b0e89dd4
+AAD = 5fe8bb27a59a5f4e370adbba96484c2365fc0d8c6e58d7d3e6
+Tag = 0a189319e4f06d53c1405d37b06cc8eb
+Plaintext = 07542d18e8f2d3e199fca0f90cabb78b169525fdce81666a
+Ciphertext = 71d04a92dcb70203b9d15bcaca2aaaac1ef89fba5752493a
+
+Cipher = aes-128-ccm
+Key = 7a459aadb48f1a528edae71fcf698b84
+IV = fa4616b715ea898772b0e89dd4
+AAD = 23e5422e8d7560a9e65642b5e723a47536c16791f3a0cf918d
+Tag = dd72f48ae03670249d74f8460b63b1ae
+Plaintext = cd574ed56bdfd1408f7831e0b24b4345ee979ac906a7aa22
+Ciphertext = bbd3295f5f9a00a2af55cad374ca5e62e6fa208e9f748572
+
+Cipher = aes-128-ccm
+Key = 7a459aadb48f1a528edae71fcf698b84
+IV = fa4616b715ea898772b0e89dd4
+AAD = fcc9422ba5023a9997baa9c4ee6cb196ffe96e08eb9c2b8a75
+Tag = 1717c00c93d36a77141b723d573c8c65
+Plaintext = 8c9abe94beed4c9bd46adb1d04fbfe7016dd50d324525abb
+Ciphertext = fa1ed91e8aa89d79f447202ec27ae3571eb0ea94bd8175eb
+
+Cipher = aes-128-ccm
+Key = ca748225057f735f712ecc64791367f0
+IV = 1341a6998eb1f50d4b710a13ac
+AAD = 5fb96b045f494808c02014f06074bd45b8a8ad12b4cb448ec162
+Tag = b4a6843ec16078038c10afedc41f5362
+Plaintext = e92cd0cb97afe4fb00c4f12e9b9abe1d08db98f49a27f461
+Ciphertext = 82b666694232e86e82295beae66ae67d56aceb5d6b1484ce
+
+Cipher = aes-128-ccm
+Key = ca748225057f735f712ecc64791367f0
+IV = 1341a6998eb1f50d4b710a13ac
+AAD = 87db0d9d69bc0cf69cabeb92570e482bbc8ff3e1ba72f12f3225
+Tag = a7c6566d0b8ff97f946d7c7773a845f2
+Plaintext = a6dbad96ad23ff61479df39b99f0673a09f2a7eaebbd34b9
+Ciphertext = cd411b3478bef3f4c570595fe4003f5a5785d4431a8e4416
+
+Cipher = aes-128-ccm
+Key = ca748225057f735f712ecc64791367f0
+IV = 1341a6998eb1f50d4b710a13ac
+AAD = a061a09024f1e03b223695d4703ee202e90e07156b95859a22e3
+Tag = e1d66a4728b67b42602e23c8500b0115
+Plaintext = b1dd81cc3b2b0efe540a3194d6fe304cd2de53db7929ebe1
+Ciphertext = da47376eeeb6026bd6e79b50ab0e682c8ca92072881a9b4e
+
+Cipher = aes-128-ccm
+Key = ca748225057f735f712ecc64791367f0
+IV = 1341a6998eb1f50d4b710a13ac
+AAD = 0dd513c5d8d62b723ab8b0a3aaa477e843d9149dc8a2f878e585
+Tag = 03c51e8c59ed13b3e5d9b489d4ea2ccf
+Plaintext = fb30c2e98f3d7e4ed7431da285711d3d287884db13a474e7
+Ciphertext = 90aa744b5aa072db55aeb766f881455d760ff772e2970448
+
+Cipher = aes-128-ccm
+Key = ca748225057f735f712ecc64791367f0
+IV = 1341a6998eb1f50d4b710a13ac
+AAD = 3ff59c40bd796048e586eccc23a82e4d09fc5e779f38eb4afbed
+Tag = f1ec270b43fc5a9811b56ccf033789c6
+Plaintext = 886f9f91a6566ceb99c39462ab675a3ae3be98f68787626f
+Ciphertext = e3f5293373cb607e1b2e3ea6d697025abdc9eb5f76b412c0
+
+Cipher = aes-128-ccm
+Key = ca748225057f735f712ecc64791367f0
+IV = 1341a6998eb1f50d4b710a13ac
+AAD = 0df7ef91f7124da867e992bcbc6fb38232ff6d5205f38768da72
+Tag = bb4ed25940d58cba64271fe1d2e8013d
+Plaintext = ed370d1c2d6dc03e4fae4deb9343a7d4339562cffd427587
+Ciphertext = 86adbbbef8f0ccabcd43e72feeb3ffb46de211660c710528
+
+Cipher = aes-128-ccm
+Key = ca748225057f735f712ecc64791367f0
+IV = 1341a6998eb1f50d4b710a13ac
+AAD = 6777de159c34d005b94f67c33ae4a35ebab09d9cb9c56b4c9c81
+Tag = 392636a5e373c1354ea9b969abb4932a
+Plaintext = 2f77c2eb07db14bd713c5af10c0760ea3a6ca5ff8d046d36
+Ciphertext = 44ed7449d2461828f3d1f03571f7388a641bd6567c371d99
+
+Cipher = aes-128-ccm
+Key = ca748225057f735f712ecc64791367f0
+IV = 1341a6998eb1f50d4b710a13ac
+AAD = 75559898f4ba03c55afc25ea91aa61a93c2f8270a5fa51b6f6dc
+Tag = 59a7e8bc0570f19159f91fc14ac6532a
+Plaintext = 360fb89429dc9b48358097d930c8561b2bd18dc0a470d1d6
+Ciphertext = 5d950e36fc4197ddb76d3d1d4d380e7b75a6fe695543a179
+
+Cipher = aes-128-ccm
+Key = ca748225057f735f712ecc64791367f0
+IV = 1341a6998eb1f50d4b710a13ac
+AAD = 5e03fc430473c5de96d68907fa506f9da353ae48a965445e1f24
+Tag = 07e559568c27a30b5676f98cc66f57d6
+Plaintext = f2d8d67b9f291c3edc264893922622b2693f3e7231137eba
+Ciphertext = 994260d94ab410ab5ecbe257efd67ad237484ddbc0200e15
+
+Cipher = aes-128-ccm
+Key = ca748225057f735f712ecc64791367f0
+IV = 1341a6998eb1f50d4b710a13ac
+AAD = 7eee4869e77f6db12c91d1f647cad2340d33a3defaeb362d311d
+Tag = 4910615920f6f3c3421a9c2bec1bec7e
+Plaintext = 7fd6fb81c36e44b150af10e04683b1ec9b5dda87c71ff939
+Ciphertext = 144c4d2316f34824d242ba243b73e98cc52aa92e362c8996
+
+Cipher = aes-128-ccm
+Key = fdf2b2c7fcb3789b4e90abe607dca2af
+IV = a69ddc66e63a3415f21009d53a
+AAD = c76846da496ed87b9c0f65c6266c9a822224acde9775efb186a4a5
+Tag = 25d05e5a2e76a90f6fe489fd74cab2a3
+Plaintext = d7aa4efa5d75195a400018bd38f7d8cd53fdffe88df1837f
+Ciphertext = 150d9a8b78d9c04239d66207a1f95021bbb1b7c70d7c3548
+
+Cipher = aes-128-ccm
+Key = fdf2b2c7fcb3789b4e90abe607dca2af
+IV = a69ddc66e63a3415f21009d53a
+AAD = 4efbd225553b541c3f53cabe8a1ac03845b0e846c8616b3ea2cc7d
+Tag = be6af49ce97d5e0e77c7fd5d9cc6d932
+Plaintext = 5f94a2e48d348a1d56c55a659306e319c3d2ad78b9fe43a7
+Ciphertext = 9d337695a89853052f1320df0a086bf52b9ee5573973f590
+
+Cipher = aes-128-ccm
+Key = fdf2b2c7fcb3789b4e90abe607dca2af
+IV = a69ddc66e63a3415f21009d53a
+AAD = 7631cf7822a545daefa16a5ec43c877d475a82d5aa2d51cec7fbb4
+Tag = 924b268cab915f999aea3e1cc3a88ccd
+Plaintext = a44b010fc1c659eac9241a58b11a73d7ce33156ddfc54c3c
+Ciphertext = 66ecd57ee46a80f2b0f260e22814fb3b267f5d425f48fa0b
+
+Cipher = aes-128-ccm
+Key = fdf2b2c7fcb3789b4e90abe607dca2af
+IV = a69ddc66e63a3415f21009d53a
+AAD = e4da34663edc44370bfd8aa8315945471a893a1cc069628a071ee0
+Tag = c368f5af8e311e67209e02dfa2613377
+Plaintext = 28d157f5741f1be057d5219711414c0638b47d165a905a6a
+Ciphertext = ea76838451b3c2f82e035b2d884fc4ead0f83539da1dec5d
+
+Cipher = aes-128-ccm
+Key = fdf2b2c7fcb3789b4e90abe607dca2af
+IV = a69ddc66e63a3415f21009d53a
+AAD = 077509eae1dc367540f87832c5780f6c5b29e180bc6c1fee38e826
+Tag = ad175fcad35d29396380b79a28784cff
+Plaintext = ba7432a8e34bfaa91b35c8dfd822d86850be39e63150257f
+Ciphertext = 78d3e6d9c6e723b162e3b265412c5084b8f271c9b1dd9348
+
+Cipher = aes-128-ccm
+Key = fdf2b2c7fcb3789b4e90abe607dca2af
+IV = a69ddc66e63a3415f21009d53a
+AAD = a513d750ca1e8bf6cb7b8cea5204e064c15c2dc40d742b31cf5459
+Tag = 93b4b3e33d325359c9c651290ce73bed
+Plaintext = 3f5830b0ce8849a660af7d58a60c19a9824a3033bb5fed43
+Ciphertext = fdffe4c1eb2490be197907e23f0291456a06781c3bd25b74
+
+Cipher = aes-128-ccm
+Key = fdf2b2c7fcb3789b4e90abe607dca2af
+IV = a69ddc66e63a3415f21009d53a
+AAD = e439db829c1291df49fc42c2fa1a92118c2665f11e13f28dc6f11a
+Tag = 71f88ca5857c6d801e726a01c621a0c3
+Plaintext = e69b2a243340df5dc70b2cb05be12e5992ee36f7d9f4ca84
+Ciphertext = 243cfe5516ec0645bedd560ac2efa6b57aa27ed859797cb3
+
+Cipher = aes-128-ccm
+Key = fdf2b2c7fcb3789b4e90abe607dca2af
+IV = a69ddc66e63a3415f21009d53a
+AAD = a12c690568114fd7a677f49d74e84fc1a6b7f7d2a08693266c0a91
+Tag = 0592d360fc6a46aa18c4ce5d74fa4532
+Plaintext = 9de35b840a69a84701ffae1b1d2bf13c34b42a57d14c524d
+Ciphertext = 5f448ff52fc5715f7829d4a1842579d0dcf8627851c1e47a
+
+Cipher = aes-128-ccm
+Key = fdf2b2c7fcb3789b4e90abe607dca2af
+IV = a69ddc66e63a3415f21009d53a
+AAD = 1813bf176a1127f4d508d7663ae750f9c4bcb84a6e26811ac60d46
+Tag = 8b772cef893495cf0a94e8ebf06e920b
+Plaintext = 9e2fa20bf76768a5a1467d90a048bb503a2c33bbbaa71653
+Ciphertext = 5c88767ad2cbb1bdd890072a394633bcd2607b943a2aa064
+
+Cipher = aes-128-ccm
+Key = fdf2b2c7fcb3789b4e90abe607dca2af
+IV = a69ddc66e63a3415f21009d53a
+AAD = cc6e9cc2699d3ba0e624e715599480d6b7dbc6eeea0d12a9236444
+Tag = b1851d571a1ef8aed565b784dcaaac4e
+Plaintext = 6681b1cbeceea57a828324831407280b00f4917ed52a10df
+Ciphertext = a42665bac9427c62fb555e398d09a0e7e8b8d95155a7a6e8
+
+Cipher = aes-128-ccm
+Key = 7d870d7e52d3053c65eefad47764cfeb
+IV = 37d888f4aa452d7bf217f5a529
+AAD = 9610949f6d23d5b1f3989b2f4e524fab4f297a5bec8ddad4f16cb616
+Tag = 2dd579cb0d201d22c86bbc7fbe47bd0d
+Plaintext = 109317556c21c969eda65a94176d7a11462c9ae18a865b6d
+Ciphertext = 4e6b967b1571c6d7b9e118b112b7ac949a4a175650316a24
+
+Cipher = aes-128-ccm
+Key = 7d870d7e52d3053c65eefad47764cfeb
+IV = 37d888f4aa452d7bf217f5a529
+AAD = 96118dbfe53434d8aed88769a535eb0c8b5849dca1c81c34626ac9b9
+Tag = f0dd7aef4a609f3587652173446ebd82
+Plaintext = 3e6c914a196e175079315b1c92b2b8a844deb472e249e3d3
+Ciphertext = 60941064603e18ee2d76193997686e2d98b839c538fed29a
+
+Cipher = aes-128-ccm
+Key = 7d870d7e52d3053c65eefad47764cfeb
+IV = 37d888f4aa452d7bf217f5a529
+AAD = 21fc96f73975298207f818909088295d6d6861677130ca258c2174f6
+Tag = 63e4405d45caf4836467edbf35089d87
+Plaintext = e0014147d5771b4380dc0192d45f36f7d60776d1ba47374d
+Ciphertext = bef9c069ac2714fdd49b43b7d185e0720a61fb6660f00604
+
+Cipher = aes-128-ccm
+Key = 7d870d7e52d3053c65eefad47764cfeb
+IV = 37d888f4aa452d7bf217f5a529
+AAD = 72a5151abcb55933ff7c9314f3235eba2a400121454144c2670e8359
+Tag = 7441c813e90fac775eddb7290df059d9
+Plaintext = 0f1c6dffeda98f7a159f9cc61820bfb29910d8eaa41b751a
+Ciphertext = 51e4ecd194f980c441d8dee31dfa69374576555d7eac4453
+
+Cipher = aes-128-ccm
+Key = 7d870d7e52d3053c65eefad47764cfeb
+IV = 37d888f4aa452d7bf217f5a529
+AAD = dbbf192914b1ad73666e9f5e9c22c08ca398f7524af62b1046a863bd
+Tag = 34d9316f1f1c3142c1c9b26e5c220a32
+Plaintext = c1ddd14e380cc91324cf2a381df1da1ccffd90ae436a373a
+Ciphertext = 9f255060415cc6ad7088681d182b0c99139b1d1999dd0673
+
+Cipher = aes-128-ccm
+Key = 7d870d7e52d3053c65eefad47764cfeb
+IV = 37d888f4aa452d7bf217f5a529
+AAD = 28e4b88fbf04e9897057ff5bfde7eb04fa480256817a50fa281030b4
+Tag = c0b188e33bfab29b237d6c6920ce3418
+Plaintext = d4dae9c4cae92afb80f9a5c99383ff16e23a2ec942eed4d2
+Ciphertext = 8a2268eab3b92545d4bee7ec965929933e5ca37e9859e59b
+
+Cipher = aes-128-ccm
+Key = 7d870d7e52d3053c65eefad47764cfeb
+IV = 37d888f4aa452d7bf217f5a529
+AAD = d9ebc1cbfab9034317132a72e0f11c341331146a59e7a2f26bf4f3d7
+Tag = fdde04d21b876468bd9184101b5f32d0
+Plaintext = 8a188d40a6e6fbb06a9f06304349a7a808b092cc2fc10b9e
+Ciphertext = d4e00c6edfb6f40e3ed844154693712dd4d61f7bf5763ad7
+
+Cipher = aes-128-ccm
+Key = 7d870d7e52d3053c65eefad47764cfeb
+IV = 37d888f4aa452d7bf217f5a529
+AAD = 34ad69f192ae4dcab771aeeacf01bbd32609bcbbea8ff9df31ded719
+Tag = 068c65e9d0e5f1b81c86393900e64c19
+Plaintext = 590c1aac30ab166b1caff748452fc146765c372e226ffc26
+Ciphertext = 07f49b8249fb19d548e8b56d40f517c3aa3aba99f8d8cd6f
+
+Cipher = aes-128-ccm
+Key = 7d870d7e52d3053c65eefad47764cfeb
+IV = 37d888f4aa452d7bf217f5a529
+AAD = f5e50ce1f99ed5e9f2baa54b96ae7039234b1131e734ec190695d28d
+Tag = 06ab3b72c56c8df4a12dba89a2f21276
+Plaintext = 16d0522b2e691e42bd80ce95e00c8a7a1fc738169e904bdb
+Ciphertext = 4828d305573911fce9c78cb0e5d65cffc3a1b5a144277a92
+
+Cipher = aes-128-ccm
+Key = 7d870d7e52d3053c65eefad47764cfeb
+IV = 37d888f4aa452d7bf217f5a529
+AAD = 9b1e7e52ea1a12444d884866e11dcf367b70b816460936fdaebba36d
+Tag = 0170ca7b16d23537eeb3034105334699
+Plaintext = 0bddf342121b82f906368b0d7b04df1c682ecd4c2b2b43df
+Ciphertext = 5525726c6b4b8d475271c9287ede0999b44840fbf19c7296
+
+Cipher = aes-128-ccm
+Key = 8fcac40527c0e7ca8eaff265ca12c053
+IV = ae9f012fd9af60a400e20b1690
+AAD = 9ce65598cd1f86afc9aaaf172809570cc306333c25523f863c6d0e0154
+Tag = cb3b5151f327e65447e52c7525562c91
+Plaintext = 78d1e96af8cebdcc7e7e2a4ddcfa34f6cf9a24fb85672ad7
+Ciphertext = 9adb9a95a9379ad795d8d3ffd4e37a045160d6d727f974a6
+
+Cipher = aes-128-ccm
+Key = 8fcac40527c0e7ca8eaff265ca12c053
+IV = ae9f012fd9af60a400e20b1690
+AAD = e7c78ef4c4b959ee00cb1a09d71221a43892ef8ad705edd27ed85d03a3
+Tag = 34e5b08e27d8f5eeef0f064ff620652a
+Plaintext = bc59f18c8473941abc681a92741ab5ee13679829f542b8f4
+Ciphertext = 5e538273d58ab30157cee3207c03fb1c8d9d6a0557dce685
+
+Cipher = aes-128-ccm
+Key = 8fcac40527c0e7ca8eaff265ca12c053
+IV = ae9f012fd9af60a400e20b1690
+AAD = f1bce6f2a4bdd3a07ebf5f8d47f931d27e7e63389d70e1059f701216be
+Tag = 44c0a96baae318f4714f0206812516b5
+Plaintext = 5575d950312c14c89ac609dfb0b2fd1af732bb6aae5e8651
+Ciphertext = b77faaaf60d533d37160f06db8abb3e869c849460cc0d820
+
+Cipher = aes-128-ccm
+Key = 8fcac40527c0e7ca8eaff265ca12c053
+IV = ae9f012fd9af60a400e20b1690
+AAD = 3da3bb091016e54477dae88af1c84c1a51b59c1bb49a05deb6f32064e6
+Tag = 4e7bdce2dc6aae24178aab6984f31028
+Plaintext = df5947d8c6094ccc25816639ec42214b28731bfd7b8312dc
+Ciphertext = 3d53342797f06bd7ce279f8be45b6fb9b689e9d1d91d4cad
+
+Cipher = aes-128-ccm
+Key = 8fcac40527c0e7ca8eaff265ca12c053
+IV = ae9f012fd9af60a400e20b1690
+AAD = c4cd183071c37a8157c6930a7d4d530cf4b7eb021682327810bd48209e
+Tag = f18ece8260bd56ecdee768022d0dd8d1
+Plaintext = 2fbb6dc235761875411ef59ae06110df8f15f66b721b0fd6
+Ciphertext = cdb11e3d648f3f6eaab80c28e8785e2d11ef0447d08551a7
+
+Cipher = aes-128-ccm
+Key = 8fcac40527c0e7ca8eaff265ca12c053
+IV = ae9f012fd9af60a400e20b1690
+AAD = 0e0fece7b6b659b642668e8ba3dca330523e70279155f485f3f6f8041e
+Tag = 6f0fb3b7440b84ddc3cc53819c2e93be
+Plaintext = cd149d17dba7ec50000b8c5390d114697fafb61025301f4e
+Ciphertext = 2f1eeee88a5ecb4bebad75e198c85a9be155443c87ae413f
+
+Cipher = aes-128-ccm
+Key = 8fcac40527c0e7ca8eaff265ca12c053
+IV = ae9f012fd9af60a400e20b1690
+AAD = a35c6f70f637a9a5e6f215c694fdf65b6fd85f794ed3eaa1bc19abe592
+Tag = 29ca778c51f9320f121dd803ece8d5da
+Plaintext = 030390adb572f2bd2a6a4454fd68236cd1d465574328aa00
+Ciphertext = e109e352e48bd5a6c1ccbde6f5716d9e4f2e977be1b6f471
+
+Cipher = aes-128-ccm
+Key = 8fcac40527c0e7ca8eaff265ca12c053
+IV = ae9f012fd9af60a400e20b1690
+AAD = c2992096828325820e2d7acaa17ac789b6830ec3128dd7f904398afbec
+Tag = 9c223a5ad65120bfca4a5992e5ebc6fc
+Plaintext = f2d9cf953c8d3a051d9b3eae4307a3cb4fffaa2435b49586
+Ciphertext = 10d3bc6a6d741d1ef63dc71c4b1eed39d1055808972acbf7
+
+Cipher = aes-128-ccm
+Key = 8fcac40527c0e7ca8eaff265ca12c053
+IV = ae9f012fd9af60a400e20b1690
+AAD = c023763a285ea934bc5bc7ddfc2aefe2b3f9eafe7b87c61383dcc07990
+Tag = 5c3bc4f618ffb3a159f4e2d0622cea6e
+Plaintext = 4b92e8d2ffaa4af8f3e0ac037a900bd18e195f490a3d71e1
+Ciphertext = a9989b2dae536de3184655b17289452310e3ad65a8a32f90
+
+Cipher = aes-128-ccm
+Key = 8fcac40527c0e7ca8eaff265ca12c053
+IV = ae9f012fd9af60a400e20b1690
+AAD = 0a39ec0163c7aeb1b4fbe7cb4fa5b0592fade70f430e23730a23ed4160
+Tag = 6f099dce6e18435fba4d26c1e93bda0c
+Plaintext = 7c0e6a0d35f8ac854c7245ebc73693731bbbc3e6fab64446
+Ciphertext = 9e0419f264018b9ea7d4bc59cf2fdd81854131ca58281a37
+
+Cipher = aes-128-ccm
+Key = ddf9f150cc3f1c15e8e773663c5b061c
+IV = 98c5036b7d54da9a1177105600
+AAD = 20c5ab290e6d97f53c74121951f39ba865b3acc465fa3f0fb8a591622277
+Tag = 1816df1e0e82bb7bc8105930ad6a2232
+Plaintext = 79d8841ab83279724ce35e1a8abd4e158168dcf388ab4c3d
+Ciphertext = d00d29396ffa9e691290d746527777bf96a851f306d4da0b
+
+Cipher = aes-128-ccm
+Key = ddf9f150cc3f1c15e8e773663c5b061c
+IV = 98c5036b7d54da9a1177105600
+AAD = 0e205a4dc5d5ead0d9ff7f182dc140fc49511c01b0fdbc7e6d6cb5fdf027
+Tag = df823c8ccd466807f2bd1c4032f0cfeb
+Plaintext = 88b2572fbe7cf2b46df04db476ffedb41778ae2eb3c3aae4
+Ciphertext = 2167fa0c69b415af3383c4e8ae35d41e00b8232e3dbc3cd2
+
+Cipher = aes-128-ccm
+Key = ddf9f150cc3f1c15e8e773663c5b061c
+IV = 98c5036b7d54da9a1177105600
+AAD = 48043560d60381e83c11d4bc9d997d3ee2add6b0524b779c62dfaa73ce0a
+Tag = 31f5be8c9965345c760c72cc1b7908d1
+Plaintext = d44bf28b010e076b45db1b053af03db718b60748da51db1f
+Ciphertext = 7d9e5fa8d6c6e0701ba89259e23a041d0f768a48542e4d29
+
+Cipher = aes-128-ccm
+Key = ddf9f150cc3f1c15e8e773663c5b061c
+IV = 98c5036b7d54da9a1177105600
+AAD = f0729a8a2fd073699ab87b521cbe0420b43529556a505f5f87874d1a053c
+Tag = 381d94a828a95872ebdfda8a4c6a196b
+Plaintext = eab8cffb512eabe267cd64353552513defe97c2d10f35503
+Ciphertext = 436d62d886e64cf939beed69ed986897f829f12d9e8cc335
+
+Cipher = aes-128-ccm
+Key = ddf9f150cc3f1c15e8e773663c5b061c
+IV = 98c5036b7d54da9a1177105600
+AAD = fc2cd69bb61223f713e33a5071d09bf2783640c307c22d836dd94952dd37
+Tag = 63931808533f4f70d7a78242ced110eb
+Plaintext = 001056926546c261fbbdf92b94498e038c2bcfd0b6345497
+Ciphertext = a9c5fbb1b28e257aa5ce70774c83b7a99beb42d0384bc2a1
+
+Cipher = aes-128-ccm
+Key = ddf9f150cc3f1c15e8e773663c5b061c
+IV = 98c5036b7d54da9a1177105600
+AAD = 8f653c5c003c807d16d17f833eebb97c9c2f0e5aae3780a52ce53a6c33f7
+Tag = f34553198f8e40fde6473f9cf04f1de6
+Plaintext = 29ffaef9415fd300127ffd26ef324083a9d90e0f60e2ab4f
+Ciphertext = 802a03da9697341b4c0c747a37f87929be19830fee9d3d79
+
+Cipher = aes-128-ccm
+Key = ddf9f150cc3f1c15e8e773663c5b061c
+IV = 98c5036b7d54da9a1177105600
+AAD = 8d05e7d3077151c6d9378cb08e049e4d7c28a908f7f7c079c46ff92cd01b
+Tag = 0fac20e8d45d2b0771d140b5e4a47c87
+Plaintext = 9874dc5ca1b541f7b21c7b3860fa6b0c3ab1b712ab0fca98
+Ciphertext = 31a1717f767da6ecec6ff264b83052a62d713a1225705cae
+
+Cipher = aes-128-ccm
+Key = ddf9f150cc3f1c15e8e773663c5b061c
+IV = 98c5036b7d54da9a1177105600
+AAD = d4feb3ea76ac2945651f557406f3f38a2d7e9232ed55ff4eaf1201dd8255
+Tag = d3cacfe4281e52d79e60eeb38319bc3a
+Plaintext = 1e01c7128c821fb9c971a27fc7c6f9bb902fa735de583b8a
+Ciphertext = b7d46a315b4af8a297022b231f0cc01187ef2a355027adbc
+
+Cipher = aes-128-ccm
+Key = ddf9f150cc3f1c15e8e773663c5b061c
+IV = 98c5036b7d54da9a1177105600
+AAD = 7cbb4ae995a3367a256cafd11cd6c6cab5bf3252fa97f27a8a1434ca9a27
+Tag = 8f0d7646a799b14288bb2f354b5d8847
+Plaintext = 51cd306fac7d20e3c7043eae3a6dfec046c5c24a666a0723
+Ciphertext = f8189d4c7bb5c7f89977b7f2e2a7c76a51054f4ae8159115
+
+Cipher = aes-128-ccm
+Key = ddf9f150cc3f1c15e8e773663c5b061c
+IV = 98c5036b7d54da9a1177105600
+AAD = bd40b06a4beded2be3d176266b10772c7fa2949f0a9b20d613af90c2daf5
+Tag = fd7f95e1d331e700aa9ef83f09b689fd
+Plaintext = fc5b26befc633a3e8ace011aa7a42bd0258a9f3dc14fc1c8
+Ciphertext = 558e8b9d2babdd25d4bd88467f6e127a324a123d4f3057fe
+
+Cipher = aes-128-ccm
+Key = b1dc81d116d94f5eced526b37c004b95
+IV = 97c8f69fb91b17299461fd8d63
+AAD = f8b08aa83bed09ca342249b2cf9e2b45a89dcfb8711a120395e455921af481
+Tag = 11297930fd44c63675b7cca70671ef4d
+Plaintext = 54390715b6e7c7bd51a234db059a51ba030cf22ee00b7277
+Ciphertext = cb629994c3418a662a8cde1b5f4d99aa7df66e24c53dc6df
+
+Cipher = aes-128-ccm
+Key = b1dc81d116d94f5eced526b37c004b95
+IV = 97c8f69fb91b17299461fd8d63
+AAD = 0351c969dd38eeaa4b9b0000e346eeb1a2cd462033c59d9e6e3331822045cd
+Tag = 7e77f5566ca2fd9293835bceb461dbaa
+Plaintext = 65b5e856a8cf35dffd42c5ba105cba4c434aa1c2a0390352
+Ciphertext = faee76d7dd697804866c2f7a4a8b725c3db03dc8850fb7fa
+
+Cipher = aes-128-ccm
+Key = b1dc81d116d94f5eced526b37c004b95
+IV = 97c8f69fb91b17299461fd8d63
+AAD = 5db8b6bc16740680f78fba917733a6899cdba5e4c10a8058963d1265681eaa
+Tag = ec2cf9f5d35521c1c000685e49d2ed42
+Plaintext = 9a7685e3daac43ccf22cad0df900ba8acddc5d420846118d
+Ciphertext = 052d1b62af0a0e17890247cda3d7729ab326c1482d70a525
+
+Cipher = aes-128-ccm
+Key = b1dc81d116d94f5eced526b37c004b95
+IV = 97c8f69fb91b17299461fd8d63
+AAD = e7d6024611210da0cfb90a9955195aa0a0539280a3a7c792a1540930daae2d
+Tag = 66f33dfb44ae413283b238616c6b99fb
+Plaintext = c18d9e7971e2ae5fc128777086338fbe194443324e2d2cd1
+Ciphertext = 5ed600f80444e384ba069db0dce447ae67bedf386b1b9879
+
+Cipher = aes-128-ccm
+Key = b1dc81d116d94f5eced526b37c004b95
+IV = 97c8f69fb91b17299461fd8d63
+AAD = 77a878c9c76f3e6a4ddd330d1d8828949d08e0fedffe0d8e2e557b29e7c78c
+Tag = 31df6fc6b4cf0b6332936ed7cfe9455e
+Plaintext = fcf8982f7342f1b953658453cd5ea413700eff00f1ee7d6f
+Ciphertext = 63a306ae06e4bc62284b6e9397896c030ef4630ad4d8c9c7
+
+Cipher = aes-128-ccm
+Key = b1dc81d116d94f5eced526b37c004b95
+IV = 97c8f69fb91b17299461fd8d63
+AAD = aa540554ee80dbffa475f702d862d6b60e0a4090792420a26d02926517723e
+Tag = 7c8162a815f2809601ad02595e2e0ff4
+Plaintext = 0d5690d2a7083ad6daf22b308314b8f5363aca77ca72835e
+Ciphertext = 920d0e53d2ae770da1dcc1f0d9c370e548c0567def4437f6
+
+Cipher = aes-128-ccm
+Key = b1dc81d116d94f5eced526b37c004b95
+IV = 97c8f69fb91b17299461fd8d63
+AAD = fae86f95dd06fb7fbae63a646615555aec8153dc328bdf79da5d4cc9677ed6
+Tag = 7fcaa11bdeab86f60f9cd0a2b45cee1a
+Plaintext = f6e313cc35e8f8812b10a44f8ad00b6893f8084d942effe0
+Ciphertext = 69b88d4d404eb55a503e4e8fd007c378ed029447b1184b48
+
+Cipher = aes-128-ccm
+Key = b1dc81d116d94f5eced526b37c004b95
+IV = 97c8f69fb91b17299461fd8d63
+AAD = fd525302d2fb246a47cf4e3a27808bda89d8488cf450f1a1c7df6eedd810ee
+Tag = 0a86a810881bd969744ad80f579400f1
+Plaintext = 91e961ea2eb750577c5137c609602dbfcc4c07955ba429ec
+Ciphertext = 0eb2ff6b5b111d8c077fdd0653b7e5afb2b69b9f7e929d44
+
+Cipher = aes-128-ccm
+Key = b1dc81d116d94f5eced526b37c004b95
+IV = 97c8f69fb91b17299461fd8d63
+AAD = 767b1bdf9793a512d3a84e99ef77b43011a3bcb8de4cd375dfe47a79293e01
+Tag = 250ca00d3231819ecdf501ad39c864f3
+Plaintext = 98438c4411bead6f30c89ead762a12bf39391d3652b78b7a
+Ciphertext = 071812c56418e0b44be6746d2cfddaaf47c3813c77813fd2
+
+Cipher = aes-128-ccm
+Key = b1dc81d116d94f5eced526b37c004b95
+IV = 97c8f69fb91b17299461fd8d63
+AAD = aac7014f606df6feec415a75e29015891007f07518c955875fbf5619262ff2
+Tag = 1224d1d0294d46981d7dc39114a693d2
+Plaintext = 540cb00c0eface3d1b2d632d80a642f53c78ff672a1ff6ff
+Ciphertext = cb572e8d7b5c83e6600389edda718ae54282636d0f294257
+
+Cipher = aes-128-ccm
+Key = 5a33980e71e7d67fd6cf171454dc96e5
+IV = 33ae68ebb8010c6b3da6b9cb29
+AAD = eca622a37570df619e10ebb18bebadb2f2b49c4d2b2ff715873bb672e30fc0ff
+Tag = 7c4b4fa597666b86dd1353e400f28864
+Plaintext = a34dfa24847c365291ce1b54bcf8d9a75d861e5133cc3a74
+Ciphertext = 7a60fa7ee8859e283cce378fb6b95522ab8b70efcdb0265f
+
+Cipher = aes-128-ccm
+Key = 5a33980e71e7d67fd6cf171454dc96e5
+IV = 33ae68ebb8010c6b3da6b9cb29
+AAD = 55a62968c222a8501d1ae56a9a815667f8a9554607b7c56e6753f8fa92a4d054
+Tag = 423862a715dda2f63a4197f894515803
+Plaintext = 764dbefb42644d18d23e5e4568685d14dbacfa418d36c4ef
+Ciphertext = af60bea12e9de5627f3e729e6229d1912da194ff734ad8c4
+
+Cipher = aes-128-ccm
+Key = 5a33980e71e7d67fd6cf171454dc96e5
+IV = 33ae68ebb8010c6b3da6b9cb29
+AAD = f8436e35b7a1c810ac6aabe8e2d48a3678d19e1e96337dada514ee5fc075fce4
+Tag = c200f190bd700f6108f9959f6d12f0f0
+Plaintext = cecef24b62676a5623bedae8087b9b05d7e22b41a14dd2d5
+Ciphertext = 17e3f2110e9ec22c8ebef633023a178021ef45ff5f31cefe
+
+Cipher = aes-128-ccm
+Key = 5a33980e71e7d67fd6cf171454dc96e5
+IV = 33ae68ebb8010c6b3da6b9cb29
+AAD = 548e2152f3a15b8fb81dc01062d99f7b4fc8f074e5cbdc1030c97f8ccc02ec3f
+Tag = 3a66ebc4e0777a6fc140a51e04a10f86
+Plaintext = 53c164a4990c6e0637267ff2556c1542712fc584f6ff7458
+Ciphertext = 8aec64fef5f5c67c9a2653295f2d99c78722ab3a08836873
+
+Cipher = aes-128-ccm
+Key = 5a33980e71e7d67fd6cf171454dc96e5
+IV = 33ae68ebb8010c6b3da6b9cb29
+AAD = d100f1d08ef1e3eda4aef22cd970c2b785c4ff9b523c401b4064324aecf7f2d9
+Tag = b810cdc08db0a9966dffeb43ba26446e
+Plaintext = 15681d2121ac56a63b9d0a38b9c4eccf84fdb746d32c14b4
+Ciphertext = cc451d7b4d55fedc969d26e3b385604a72f0d9f82d50089f
+
+Cipher = aes-128-ccm
+Key = 5a33980e71e7d67fd6cf171454dc96e5
+IV = 33ae68ebb8010c6b3da6b9cb29
+AAD = eece934a807c9f21487cd810f15fd55d7bb4421882333ff2c43b0353de7fc5a6
+Tag = cfc5b397578f8d02a0b936ffac29b99a
+Plaintext = 412a8ef924ca156de860f147575e5731825f0a3759688928
+Ciphertext = 98078ea34833bd174560dd9c5d1fdbb474526489a7149503
+
+Cipher = aes-128-ccm
+Key = 5a33980e71e7d67fd6cf171454dc96e5
+IV = 33ae68ebb8010c6b3da6b9cb29
+AAD = 86311ff444d9be90459b6ee3652e1705ed0b5cdac3d27293ddea3378fb686ee5
+Tag = 2c3fcd6d618c260d51724126f257534a
+Plaintext = 54ba8a020d0876fa369dc32e8627f565ba3dda862ea0bcfe
+Ciphertext = 8d978a5861f1de809b9deff58c6679e04c30b438d0dca0d5
+
+Cipher = aes-128-ccm
+Key = 5a33980e71e7d67fd6cf171454dc96e5
+IV = 33ae68ebb8010c6b3da6b9cb29
+AAD = ab6efbc44a8906d5c067eaed71af467e130aaf170827a58beb03c55069674125
+Tag = bf8b2821920640b992b00cd1c9618025
+Plaintext = 7a15506fd1dae444d77b2a3ae7b57a8d5b4f10e25a9f78e2
+Ciphertext = a3385035bd234c3e7a7b06e1edf4f608ad427e5ca4e364c9
+
+Cipher = aes-128-ccm
+Key = 5a33980e71e7d67fd6cf171454dc96e5
+IV = 33ae68ebb8010c6b3da6b9cb29
+AAD = ddb640923d083725587aced81ae1d7409983d1f1e3ccc8dcf94376dc1bbcae8b
+Tag = 4cd52d41a968284af8907ccbb4588cc0
+Plaintext = b18a61a89cd698f32e059b7a2a9f62a46be2c248790a9915
+Ciphertext = 68a761f2f02f30898305b7a120deee219defacf68776853e
+
+
+Title = NIST CCM 192 Variable Associated Data Tests
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 15b369889699b6de1fa3ee73e5
+AAD =
+Tag = b090155d34a76c8324e5550c3ef426ed
+Plaintext = 39f08a2af1d8da6212550639b91fb2573e39a8eb5d801de8
+Ciphertext = 6342b8700edec97a960eb16e7cb1eb4412fb4e263ddd2206
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 15b369889699b6de1fa3ee73e5
+AAD =
+Tag = 167ee33e75d05023a7d63c770cfef2ea
+Plaintext = 296fbda0017351491c2187273fbde2c3a427170e430a703c
+Ciphertext = 73dd8ffafe754251987a3070fa13bbd088e5f1c323574fd2
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 15b369889699b6de1fa3ee73e5
+AAD =
+Tag = 70647420f79c0d91cbbd69b806fe96a5
+Plaintext = eb61c284fe009921039ef6a9ce50e702823e44b35357923f
+Ciphertext = b1d3f0de01068a3987c541fe0bfebe11aefca27e330aadd1
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 15b369889699b6de1fa3ee73e5
+AAD =
+Tag = 8a3ef2324754539ac774872282534386
+Plaintext = ffeccc6460d23fdcc387c697e75dbb959b78013a8282eaa4
+Ciphertext = a55efe3e9fd42cc447dc71c022f3e286b7bae7f7e2dfd54a
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 15b369889699b6de1fa3ee73e5
+AAD =
+Tag = e292cd0e32535a848e327bc53cdae94c
+Plaintext = 90958d7f458d98c48cbb464c74bf495a49846dd468c514e9
+Ciphertext = ca27bf25ba8b8bdc08e0f11bb111104965468b1908982b07
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 15b369889699b6de1fa3ee73e5
+AAD =
+Tag = bb21701af36936be5f62d02b84df87c3
+Plaintext = a4fad5205d38206e25097075687ca86032b95b3fe7e82a07
+Ciphertext = fe48e77aa23e3376a152c722add2f1731e7bbdf287b515e9
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 15b369889699b6de1fa3ee73e5
+AAD =
+Tag = 7da7f975367be24341e4af51b8bb156a
+Plaintext = b37114c65372b052cbeecf83d05a5da44f7b5bbff7d986b5
+Ciphertext = e9c3269cac74a34a4fb578d415f404b763b9bd729784b95b
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 15b369889699b6de1fa3ee73e5
+AAD =
+Tag = 360c6d50a96f316eda0b216cbb6380ef
+Plaintext = 9c0f0426f171ff18b2a4392f61fb4ee4a44c476fe03dc930
+Ciphertext = c6bd367c0e77ec0036ff8e78a45517f7888ea1a28060f6de
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 15b369889699b6de1fa3ee73e5
+AAD =
+Tag = 34cd1bd98e8137b578a174e39efe09b8
+Plaintext = 7b6e0a480a40585545b0e940e8d97c9ec987bd3c0e9c16a8
+Ciphertext = 21dc3812f5464b4dc1eb5e172d77258de5455bf16ec12946
+
+Cipher = aes-192-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886
+IV = 15b369889699b6de1fa3ee73e5
+AAD =
+Tag = 909a895a3b08b63d7a2a1e75d25e7861
+Plaintext = 34dac6dbc28be62332a6935efc122e37b26ee100eb4033f8
+Ciphertext = 6e68f4813d8df53bb6fd240939bc77249eac07cd8b1d0c16
+
+Cipher = aes-192-ccm
+Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a
+IV = cdf4ba655acfe8e2134fa0542f
+AAD = 67
+Tag = 7ff74e3b05b7d7c13284573bd3e7e481
+Plaintext = 100fa71462277d76ca81f2cfdb3d39d3894b0ca28074a0f0
+Ciphertext = 36e2415b4f888a6072f260d7e786d803be16f8b9cbee112d
+
+Cipher = aes-192-ccm
+Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a
+IV = cdf4ba655acfe8e2134fa0542f
+AAD = 17
+Tag = 3ee7ce845f85dfc770d96dee9ca54ccd
+Plaintext = 0217eb6778691f8dfe2d0e5241f05fcbcf97b9171f4de3f0
+Ciphertext = 24fa0d2855c6e89b465e9c4a7d4bbe1bf8ca4d0c54d7522d
+
+Cipher = aes-192-ccm
+Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a
+IV = cdf4ba655acfe8e2134fa0542f
+AAD = dc
+Tag = dc14ddd8ae0aa5d810040a8d1d4da1e9
+Plaintext = a78b7bc6c1a7250c5fc236f2a8343725a9a7bd3ca81b53e4
+Ciphertext = 81669d89ec08d21ae7b1a4ea948fd6f59efa4927e381e239
+
+Cipher = aes-192-ccm
+Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a
+IV = cdf4ba655acfe8e2134fa0542f
+AAD = 0c
+Tag = 6b40dec7e647720f1f5e8474bf570c2f
+Plaintext = 390c808d998582793bb10ee60568eb8d975c51d68b4e4da9
+Ciphertext = 1fe166c2b42a756f83c29cfe39d30a5da001a5cdc0d4fc74
+
+Cipher = aes-192-ccm
+Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a
+IV = cdf4ba655acfe8e2134fa0542f
+AAD = 3e
+Tag = c10c4aac45d90119cce490cc8681a49f
+Plaintext = bcd9747fb54184b61b2e9e049caa75e22006e250f3722c0e
+Ciphertext = 9a34923098ee73a0a35d0c1ca0119432175b164bb8e89dd3
+
+Cipher = aes-192-ccm
+Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a
+IV = cdf4ba655acfe8e2134fa0542f
+AAD = 7e
+Tag = f9a95091d2cab7d3d9fa3e10d3e67ac9
+Plaintext = d0342e3cd2c1142b642da7297ee3b9978cec405e6810f12f
+Ciphertext = f6d9c873ff6ee33ddc5e353142585847bbb1b445238a40f2
+
+Cipher = aes-192-ccm
+Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a
+IV = cdf4ba655acfe8e2134fa0542f
+AAD = e3
+Tag = 180f7818c373e89f7ff3003f53260060
+Plaintext = 7fab91d1aa072947d22f0dc322355a022fe7f0747f4a184b
+Ciphertext = 5946779e87a8de516a5c9fdb1e8ebbd218ba046f34d0a996
+
+Cipher = aes-192-ccm
+Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a
+IV = cdf4ba655acfe8e2134fa0542f
+AAD = 3e
+Tag = 1905f581585e59e3c8c038b5bf966559
+Plaintext = e487143dc4d98dcc6a2dfe6ee0f85d565d1f46bb0fafe62a
+Ciphertext = c26af272e9767adad25e6c76dc43bc866a42b2a0443557f7
+
+Cipher = aes-192-ccm
+Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a
+IV = cdf4ba655acfe8e2134fa0542f
+AAD = 3b
+Tag = ea56569c34f8d9eea23e85fec18cfc51
+Plaintext = 976b489244ed6789a34251500057d1d4a3229367a42b9066
+Ciphertext = b186aedd6942909f1b31c3483cec3004947f677cefb121bb
+
+Cipher = aes-192-ccm
+Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a
+IV = cdf4ba655acfe8e2134fa0542f
+AAD = a5
+Tag = 212da23548f2ca4e9a8a07962be6422c
+Plaintext = 71efa75961dfd60ad533082a8cfe111214eb02573adc4591
+Ciphertext = 570241164c70211c6d409a32b045f0c223b6f64c7146f44c
+
+Cipher = aes-192-ccm
+Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26
+IV = fe7329f343f6e726a90b11ae37
+AAD = 1c8b
+Tag = 0ecdbc200be353112faf20e2be711908
+Plaintext = 262f4ac988812500cb437f52f0c182148e85a0bec67a2736
+Ciphertext = e6d43f822ad168aa9c2e29c07f4592d7bbeb0203f418f302
+
+Cipher = aes-192-ccm
+Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26
+IV = fe7329f343f6e726a90b11ae37
+AAD = 9db5
+Tag = 015e5cd97b7dd3d981321ae0b2d99e1a
+Plaintext = d5982c462ad40458660cd7b120ce07fce9afe812caedcebd
+Ciphertext = 1563590d888449f231618123af4a173fdcc14aaff88f1a89
+
+Cipher = aes-192-ccm
+Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26
+IV = fe7329f343f6e726a90b11ae37
+AAD = 69cf
+Tag = bf3e75863c7acd2699caba3cc301f4b2
+Plaintext = 1a95f06b821879df3fd3ac52fc99a7c1d3e9775263b7d036
+Ciphertext = da6e85202048347568befac0731db702e687d5ef51d50402
+
+Cipher = aes-192-ccm
+Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26
+IV = fe7329f343f6e726a90b11ae37
+AAD = 6c6e
+Tag = 5d6a8f7a9f52a8038aa9dc1bdc9ed876
+Plaintext = 373c157e59b934a1afb57d4c5dd9ca7fb736b206a6210bef
+Ciphertext = f7c76035fbe9790bf8d82bded25ddabc825810bb9443dfdb
+
+Cipher = aes-192-ccm
+Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26
+IV = fe7329f343f6e726a90b11ae37
+AAD = dafa
+Tag = 8a15603f10cbfdb041f8b2b12cc8f037
+Plaintext = 26e10a2ed8cc883a6552aee162c5542ff8bb8e758a1975f8
+Ciphertext = e61a7f657a9cc590323ff873ed4144eccdd52cc8b87ba1cc
+
+Cipher = aes-192-ccm
+Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26
+IV = fe7329f343f6e726a90b11ae37
+AAD = c8b1
+Tag = 1278bf62ba6a4819513d49fdcdb45480
+Plaintext = dd235b05c15479dfe0326ba206ac784eca50038bbeb35d32
+Ciphertext = 1dd82e4e63043475b75f3d308928688dff3ea1368cd18906
+
+Cipher = aes-192-ccm
+Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26
+IV = fe7329f343f6e726a90b11ae37
+AAD = af48
+Tag = 8b4d00309b50f9ea72f8105c94475b52
+Plaintext = a0818342a5cae4a90ef281d3d1289d83f273f418a545fcbf
+Ciphertext = 607af609079aa903599fd7415eac8d40c71d56a59727288b
+
+Cipher = aes-192-ccm
+Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26
+IV = fe7329f343f6e726a90b11ae37
+AAD = b1cd
+Tag = 220ba58e97936612c4183ba86705b2f9
+Plaintext = 33c0d06b6583bb4d15b4a07364c4be70ac6e72795c3dae0f
+Ciphertext = f33ba520c7d3f6e742d9f6e1eb40aeb39900d0c46e5f7a3b
+
+Cipher = aes-192-ccm
+Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26
+IV = fe7329f343f6e726a90b11ae37
+AAD = 649a
+Tag = 87d602dc85bb260fb3df1221e2fbd10c
+Plaintext = 3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863bde9
+Ciphertext = fb5a67c9744faec46fa7e127d646ed5f8be555566a0169dd
+
+Cipher = aes-192-ccm
+Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26
+IV = fe7329f343f6e726a90b11ae37
+AAD = 593c
+Tag = eb3835b7eecad6dac9785ad1d370ede4
+Plaintext = a97faefcae36732fcfe47736c2334ea7d411bf7638b0c019
+Ciphertext = 6984dbb70c663e85988921a44db75e64e17f1dcb0ad2142d
+
+Cipher = aes-192-ccm
+Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a
+IV = 6a850e94940da8781159ba97ef
+AAD = a4490e
+Tag = 91c88a3cb4fbafcb8a4a157d587d7e39
+Plaintext = 6372824bf416cd072a7ad0ae5f9f596c6127520c1b688ab4
+Ciphertext = b14a07bdc119d87611342c4c6935c5786ff1f9ae2eb49e61
+
+Cipher = aes-192-ccm
+Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a
+IV = 6a850e94940da8781159ba97ef
+AAD = 5cad2e
+Tag = 235c34d1390bba5b008c3fb29c2df958
+Plaintext = 295f4f3417a77fcf0bbda17b0fd629ad57a6086573c87eb1
+Ciphertext = fb67cac222a86abe30f35d99397cb5b95970a3c746146a64
+
+Cipher = aes-192-ccm
+Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a
+IV = 6a850e94940da8781159ba97ef
+AAD = ebdf4c
+Tag = 5a733bba0a6992d0664dc77d2b5d194c
+Plaintext = 86f354a505de941d34cd98e3af3706d56a938ab9a2797182
+Ciphertext = 54cbd15330d1816c0f836401999d9ac16445211b97a56557
+
+Cipher = aes-192-ccm
+Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a
+IV = 6a850e94940da8781159ba97ef
+AAD = 7c0d70
+Tag = 0902a31b15eed99c2dc4ed1bf11cad96
+Plaintext = 88c3bfb546abe2f6bfc92a7c56c627e24ab92a8a87a6b43c
+Ciphertext = 5afb3a4373a4f7878487d69e606cbbf6446f8128b27aa0e9
+
+Cipher = aes-192-ccm
+Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a
+IV = 6a850e94940da8781159ba97ef
+AAD = 8fa501
+Tag = 2f25595ae00103d4eb20288158132e7d
+Plaintext = 75d4216bad77943bfe82be216157843b0da0fd16eeee8471
+Ciphertext = a7eca49d9878814ac5cc42c357fd182f037656b4db3290a4
+
+Cipher = aes-192-ccm
+Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a
+IV = 6a850e94940da8781159ba97ef
+AAD = b7aca7
+Tag = 60e67693b509ea4795b7da32c5c5d17f
+Plaintext = bf1401e8dcf6f681ed6dd74c7e23b7e54b384608b0e5ec52
+Ciphertext = 6d2c841ee9f9e3f0d6232bae48892bf145eeedaa8539f887
+
+Cipher = aes-192-ccm
+Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a
+IV = 6a850e94940da8781159ba97ef
+AAD = 1f283f
+Tag = 80ef8ea380a1a0a38b2c20288e637a9f
+Plaintext = 7e623e7ef7d0a678b5d22a8402d89220f4f1bf759e3084dd
+Ciphertext = ac5abb88c2dfb3098e9cd66634720e34fa2714d7abec9008
+
+Cipher = aes-192-ccm
+Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a
+IV = 6a850e94940da8781159ba97ef
+AAD = e93f31
+Tag = d553aafe8536385d34c412c14d3a1563
+Plaintext = 14f80e7a6298d85d31fb80376a394a8f88b0ae47f00450c7
+Ciphertext = c6c08b8c5797cd2c0ab57cd55c93d69b866605e5c5d84412
+
+Cipher = aes-192-ccm
+Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a
+IV = 6a850e94940da8781159ba97ef
+AAD = 27e9a5
+Tag = f594d366c8fc826ce58309e9053c27f7
+Plaintext = 3330df12249639961f562a74b34f60b0a8bc7c783f6572fd
+Ciphertext = e1085ae411992ce72418d69685e5fca4a66ad7da0ab96628
+
+Cipher = aes-192-ccm
+Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a
+IV = 6a850e94940da8781159ba97ef
+AAD = 72d566
+Tag = cdd6ac6c42cd3d11e0344a9c1001e253
+Plaintext = 1a1860ac8c11c5d262f8141738cae8ff91ca05906dc98bb4
+Ciphertext = c820e55ab91ed0a359b6e8f50e6074eb9f1cae3258159f61
+
+Cipher = aes-192-ccm
+Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0
+IV = ba356d392c3f700f4f2706a4ca
+AAD = 8ffc0e3d
+Tag = 99b2e1e803550dcdde55fd66ecb45edd
+Plaintext = e8c1a89228d8212f75c136bab7923a89f9fea18e781cb836
+Ciphertext = 66b5d782323925e1bd0a8413a9a5a881356453d5df2cbeb1
+
+Cipher = aes-192-ccm
+Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0
+IV = ba356d392c3f700f4f2706a4ca
+AAD = 2b4f9cfc
+Tag = 9e8fbc507244ba234a0581dc69962a66
+Plaintext = a12c6324e022affd61b7e0d8cccbeb23e2e6c65355c1d586
+Ciphertext = 2f581c34fac3ab33a97c5271d2fc792b2e7c3408f2f1d301
+
+Cipher = aes-192-ccm
+Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0
+IV = ba356d392c3f700f4f2706a4ca
+AAD = b4de3039
+Tag = 28a2857099af20a4ae08e687bdb02c75
+Plaintext = 7cccb26f1dd227bc77458b99fd9e00f8e801adaece7bfcd1
+Ciphertext = f2b8cd7f07332372bf8e3930e3a992f0249b5ff5694bfa56
+
+Cipher = aes-192-ccm
+Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0
+IV = ba356d392c3f700f4f2706a4ca
+AAD = bc59f18c
+Tag = e33a6416e387d9e571a1954471ec9cc7
+Plaintext = 692b53c1355475c71ceff0b0952a8b3541b2938270247d44
+Ciphertext = e75f2cd12fb57109d42442198b1d193d8d2861d9d7147bc3
+
+Cipher = aes-192-ccm
+Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0
+IV = ba356d392c3f700f4f2706a4ca
+AAD = 4fd9fd39
+Tag = 180f9735f994c8335e593f30b331a920
+Plaintext = 7e3e755e25bbe78d4a7770f9356ab9f4ff1bbfdba46383f5
+Ciphertext = f04a0a4e3f5ae34382bcc2502b5d2bfc33814d8003538572
+
+Cipher = aes-192-ccm
+Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0
+IV = ba356d392c3f700f4f2706a4ca
+AAD = 296cd04c
+Tag = 91990fa537d2657d01f66872ba9af22f
+Plaintext = 997b712cd9295dc43cc19b40679f218c27af3e8c638d2e5d
+Ciphertext = 170f0e3cc3c8590af40a29e979a8b384eb35ccd7c4bd28da
+
+Cipher = aes-192-ccm
+Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0
+IV = ba356d392c3f700f4f2706a4ca
+AAD = 88037d3e
+Tag = 4915cb93e84028c7aedce1a2dadbb6bb
+Plaintext = 577981ccb6c893dfe6405075fcb41507de7f9bfda860791f
+Ciphertext = d90dfedcac2997112e8be2dce283870f12e569a60f507f98
+
+Cipher = aes-192-ccm
+Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0
+IV = ba356d392c3f700f4f2706a4ca
+AAD = fc4bb852
+Tag = 25baa6385af8d7b807a2d2ab19aa4999
+Plaintext = 37ba9f57ec230675ce060ba3d388095adf15907aa0b0673d
+Ciphertext = b9cee047f6c202bb06cdb90acdbf9b52138f6221078061ba
+
+Cipher = aes-192-ccm
+Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0
+IV = ba356d392c3f700f4f2706a4ca
+AAD = f40ec14f
+Tag = 6adcdb44870e1105b7318d8bad0af957
+Plaintext = 401e0cdc132a9e4a9b5ceeed3c181f67e5203ea69508deff
+Ciphertext = ce6a73cc09cb9a8453975c44222f8d6f29baccfd3238d878
+
+Cipher = aes-192-ccm
+Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0
+IV = ba356d392c3f700f4f2706a4ca
+AAD = 90e2c63b
+Tag = 8b079fb71d45bd985bffd343c3362653
+Plaintext = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d
+Ciphertext = 8c40a5f5a79be2a2af34beb3212d8b12c1e13ceff68c2dfa
+
+Cipher = aes-192-ccm
+Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72
+IV = d4ef3e9e04f1b7f20ffc5a022e
+AAD = a468f08d07
+Tag = fe4d3a3bb25f89f692884be230c6035c
+Plaintext = d3bef460223c81e4579c9d1d463ac5e0881685de1420a411
+Ciphertext = abb85db49a9b1c8724ecbc734cc8373bd20083cfa4007b1c
+
+Cipher = aes-192-ccm
+Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72
+IV = d4ef3e9e04f1b7f20ffc5a022e
+AAD = 4497649a54
+Tag = d05ae56511a230627e02d066c52a919e
+Plaintext = 81ad3f386bedcbf656ff535c63580d1f87e3c72326461ee1
+Ciphertext = f9ab96ecd34a5695258f723269aaffc4ddf5c1329666c1ec
+
+Cipher = aes-192-ccm
+Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72
+IV = d4ef3e9e04f1b7f20ffc5a022e
+AAD = c30ddd994e
+Tag = 8ef92fc17dca026f1ac1eaf78a05017c
+Plaintext = 84b88264afec06b370dfcebf5e1d3e2c1f005faf248b3215
+Ciphertext = fcbe2bb0174b9bd003afefd154efccf7451659be94abed18
+
+Cipher = aes-192-ccm
+Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72
+IV = d4ef3e9e04f1b7f20ffc5a022e
+AAD = 9573270f7e
+Tag = 38eddff1e60e2d9ae74a936364b8df21
+Plaintext = 9e4c8aa9b58a8eabc5586892f5541000b43f17d9a051a040
+Ciphertext = e64a237d0d2d13c8b62849fcffa6e2dbee2911c810717f4d
+
+Cipher = aes-192-ccm
+Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72
+IV = d4ef3e9e04f1b7f20ffc5a022e
+AAD = 40336790fc
+Tag = aa3d464ad89cae59b474d019a5a7605c
+Plaintext = 260f67122dfbe03365bc9e35e9d4ac4b2eb150eddb30857d
+Ciphertext = 5e09cec6955c7d5016ccbf5be3265e9074a756fc6b105a70
+
+Cipher = aes-192-ccm
+Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72
+IV = d4ef3e9e04f1b7f20ffc5a022e
+AAD = 0b310c8529
+Tag = beab0c520e64939c6950c0fa406eafb1
+Plaintext = 1d55e7352bd895c4ef77389a7225c664f72b38c8de778d57
+Ciphertext = 65534ee1937f08a79c0719f478d734bfad3d3ed96e57525a
+
+Cipher = aes-192-ccm
+Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72
+IV = d4ef3e9e04f1b7f20ffc5a022e
+AAD = 5756b2c681
+Tag = d22d339c382343bf39c239fd64c2a64f
+Plaintext = fbd315e1f5bd0f0e60ee6684c88f3543452c62ea0701d11d
+Ciphertext = 83d5bc354d1a926d139e47eac27dc7981f3a64fbb7210e10
+
+Cipher = aes-192-ccm
+Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72
+IV = d4ef3e9e04f1b7f20ffc5a022e
+AAD = 3b919e3665
+Tag = fcd6b562a1b6aa10be92a81f99ed540c
+Plaintext = d68d6556c5a5b1f5a123389b3ce966d5837cb8fcf5accfff
+Ciphertext = ae8bcc827d022c96d25319f5361b940ed96abeed458c10f2
+
+Cipher = aes-192-ccm
+Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72
+IV = d4ef3e9e04f1b7f20ffc5a022e
+AAD = 58749b643f
+Tag = 4b853022237d94d253b375bf2150e699
+Plaintext = 062cb6962fa5b3a6239b95f3a51b478a1f32b081dc538a80
+Ciphertext = 7e2a1f4297022ec550ebb49dafe9b5514524b6906c73558d
+
+Cipher = aes-192-ccm
+Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72
+IV = d4ef3e9e04f1b7f20ffc5a022e
+AAD = a5d50c008b
+Tag = e7aee0d403b2cf6f8b993eebd6b93615
+Plaintext = 08c62ff9bd7bcf189f530d5065f8764532d2692f69858483
+Ciphertext = 70c0862d05dc527bec232c3e6f0a849e68c46f3ed9a55b8e
+
+Cipher = aes-192-ccm
+Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63
+IV = e300fc7a5b96806382c35af5b2
+AAD = 28130f938c45
+Tag = eadc9601adf9fbdf4e3e94b395b0a332
+Plaintext = 6f3938932b5c1280311e892280d8a822a828a0be7fdb1bcd
+Ciphertext = df48662fe134e75a85abc2cece2c3b6236c88a70fa792e9b
+
+Cipher = aes-192-ccm
+Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63
+IV = e300fc7a5b96806382c35af5b2
+AAD = f600024a7bf9
+Tag = 0692a40a6aba8d7c5addae21de90fea9
+Plaintext = 0af7345e71f4e8886503395ade0b0296a5856e086638b06a
+Ciphertext = ba866ae2bb9c1d52d1b672b690ff91d63b6544c6e39a853c
+
+Cipher = aes-192-ccm
+Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63
+IV = e300fc7a5b96806382c35af5b2
+AAD = 4eef510d1f48
+Tag = 22f64becb581070411957e632e19bb8f
+Plaintext = 37f57772f056f45a5ce9f46d27be1858980c8935b9c839b7
+Ciphertext = 878429ce3a3e0180e85cbf81694a8b1806eca3fb3c6a0ce1
+
+Cipher = aes-192-ccm
+Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63
+IV = e300fc7a5b96806382c35af5b2
+AAD = 4c9c76b6fad5
+Tag = 08c59f83aa97d069b6d83d9387051f43
+Plaintext = 8bb10c82bcabb7fb2b169252ab443b01df217cf908b8c241
+Ciphertext = 3bc0523e76c342219fa3d9bee5b0a84141c156378d1af717
+
+Cipher = aes-192-ccm
+Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63
+IV = e300fc7a5b96806382c35af5b2
+AAD = 5572ecfc7e53
+Tag = f04686ee1d7b985d903f1de6cf78f8f4
+Plaintext = d1ccb4654a22b1afe32f3d3035fdccd87e9cbed83c679007
+Ciphertext = 61bdead9804a4475579a76dc7b095f98e07c9416b9c5a551
+
+Cipher = aes-192-ccm
+Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63
+IV = e300fc7a5b96806382c35af5b2
+AAD = bffdf9d20d74
+Tag = f8118f1b9f39b51965ae9ef1bdb40111
+Plaintext = f990a8f6ba14065d48665db36eb470c49f38e2b6376a9bde
+Ciphertext = 49e1f64a707cf387fcd3165f2040e38401d8c878b2c8ae88
+
+Cipher = aes-192-ccm
+Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63
+IV = e300fc7a5b96806382c35af5b2
+AAD = 3f27e678c580
+Tag = a3236d02f33f49759f281315e449bfef
+Plaintext = f8c7d89639ab742a8bcfffe776e868d671e1fbdd55807a8a
+Ciphertext = 48b6862af3c381f03f7ab40b381cfb96ef01d113d0224fdc
+
+Cipher = aes-192-ccm
+Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63
+IV = e300fc7a5b96806382c35af5b2
+AAD = 1294cb9db5f5
+Tag = e74770a07c242c3854ceb242dadc1976
+Plaintext = 8601cfd7d935e8a8487b9c39d55ca27096255f2eb9e009e3
+Ciphertext = 3670916b135d1d72fcced7d59ba8313008c575e03c423cb5
+
+Cipher = aes-192-ccm
+Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63
+IV = e300fc7a5b96806382c35af5b2
+AAD = cec271332b75
+Tag = d6c65f19175cfa49898655ccdddb864a
+Plaintext = 77c85b8022f58337b364142a2474fe5cfddb31cfca48af46
+Ciphertext = c7b9053ce89d76ed07d15fc66a806d1c633b1b014fea9a10
+
+Cipher = aes-192-ccm
+Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63
+IV = e300fc7a5b96806382c35af5b2
+AAD = da06bd140502
+Tag = 458822e49e69031431b3eea872a72eb7
+Plaintext = b0f2db802475fa70af02057373844f637a3244cda4b4f93d
+Ciphertext = 0083853cee1d0faa1bb74e9f3d70dc23e4d26e032116cc6b
+
+Cipher = aes-192-ccm
+Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37
+IV = 8229d6d7e9e21fdc789bff5dcf
+AAD = 076887d2abe900
+Tag = 18d1531a066de60a95d2924a6910e990
+Plaintext = 83c24f3a77b83b4ef45277ba90225f3ba1722312f52b1a07
+Ciphertext = 19d880f1d959a68f162de243d4a45747ace704613359b272
+
+Cipher = aes-192-ccm
+Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37
+IV = 8229d6d7e9e21fdc789bff5dcf
+AAD = 7535bcc6fbd1a0
+Tag = 6dbf58406020e6df7b312b6825127f9a
+Plaintext = 24f85ef683cc521387f484bc0b2ad9172f61884c09a9718c
+Ciphertext = bee2913d2d2dcfd2658b11454facd16b22f4af3fcfdbd9f9
+
+Cipher = aes-192-ccm
+Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37
+IV = 8229d6d7e9e21fdc789bff5dcf
+AAD = f4f96d7b4384a3
+Tag = 64dd755177efc87f8b1daf1fd88e51a6
+Plaintext = 212bedfa06b5e1a2c3a2f31f6f791dd9df8ef26077821c0a
+Ciphertext = bb312231a8547c6321dd66e62bff15a5d21bd513b1f0b47f
+
+Cipher = aes-192-ccm
+Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37
+IV = 8229d6d7e9e21fdc789bff5dcf
+AAD = 3b7e3d9c1a7fa2
+Tag = 0be31cab31f1a20805d5c07dc516d707
+Plaintext = 8b9036914bb0f440c8dbcfde9b9547be5e5ef1f56492c75e
+Ciphertext = 118af95ae55169812aa45a27df134fc253cbd686a2e06f2b
+
+Cipher = aes-192-ccm
+Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37
+IV = 8229d6d7e9e21fdc789bff5dcf
+AAD = a8c35fae8912d6
+Tag = 399df9a45ad153c0dfb3fec3b9d6f7c5
+Plaintext = 50f3f3a91bf6fd9573d5ef54b9bb5805205b2f9865d81fd7
+Ciphertext = cae93c62b517605491aa7aadfd3d50792dce08eba3aab7a2
+
+Cipher = aes-192-ccm
+Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37
+IV = 8229d6d7e9e21fdc789bff5dcf
+AAD = db636541f2429d
+Tag = e20b7da94eac8c7ef8478671165e0d82
+Plaintext = 6fbda8d435555e735443f1e6bc09e96065092efd89edd64a
+Ciphertext = f5a7671f9bb4c3b2b63c641ff88fe11c689c098e4f9f7e3f
+
+Cipher = aes-192-ccm
+Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37
+IV = 8229d6d7e9e21fdc789bff5dcf
+AAD = a8de55170c6dc0
+Tag = 4979c35bdbf9538666b6fa57f0f915d8
+Plaintext = 640ef4c246a2c6e16ddc49072a5aeef70319149ffba071ef
+Ciphertext = fe143b09e8435b208fa3dcfe6edce68b0e8c33ec3dd2d99a
+
+Cipher = aes-192-ccm
+Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37
+IV = 8229d6d7e9e21fdc789bff5dcf
+AAD = f8d64ce2aa66e6
+Tag = 752824a691da2e99374ae6c031d74ffb
+Plaintext = a14e3910766f31594a28ad2c3678c31d0c3aee88484ca6d6
+Ciphertext = 3b54f6dbd88eac98a85738d572fecb6101afc9fb8e3e0ea3
+
+Cipher = aes-192-ccm
+Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37
+IV = 8229d6d7e9e21fdc789bff5dcf
+AAD = b3c340afdc53a8
+Tag = 04159a68706faa2e8c3376b4dbeb423a
+Plaintext = 1b8e0a09e6364020b4cac704dc19bfa79455295604cf9c9a
+Ciphertext = 8194c5c248d7dde156b552fd989fb7db99c00e25c2bd34ef
+
+Cipher = aes-192-ccm
+Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37
+IV = 8229d6d7e9e21fdc789bff5dcf
+AAD = 73824034001519
+Tag = e5adc7564721ead2af75cb98e61148b4
+Plaintext = 52c84a0735eea6c5c230644075ebfc5db0c3128056e7a8f4
+Ciphertext = c8d285cc9b0f3b04204ff1b9316df421bd5635f390950081
+
+Cipher = aes-192-ccm
+Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca
+IV = 3820db475c7cb04a0f74d8e449
+AAD = f427c47e10c45bb3
+Tag = 721961de5c768f4d19bd3034f44f08d2
+Plaintext = 54bc7e3c227df4e83252a5848fea12dfdb2d14b9e67c1629
+Ciphertext = 91e7baff2b42af63e26c87ce6991af22422c1f82906858b1
+
+Cipher = aes-192-ccm
+Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca
+IV = 3820db475c7cb04a0f74d8e449
+AAD = ca25504f3f5559aa
+Tag = 42968c638ecb8a2b358e8eaefd931efb
+Plaintext = ff4493fea916f49fbb3cae2838bc84e293531092cc0904ab
+Ciphertext = 3a1f573da029af146b028c62dec7391f0a521ba9ba1d4a33
+
+Cipher = aes-192-ccm
+Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca
+IV = 3820db475c7cb04a0f74d8e449
+AAD = 8215753d9efc5132
+Tag = f8ac11752fe51e354f3f8a68815539aa
+Plaintext = af16ab8558269a93d8e8c9e38f12a8768947d8b69be0e259
+Ciphertext = 6a4d6f465119c11808d6eba96969158b1046d38dedf4acc1
+
+Cipher = aes-192-ccm
+Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca
+IV = 3820db475c7cb04a0f74d8e449
+AAD = 9e7cdbc6202e6492
+Tag = 489de8e241dcab16bdcbf1a1ff4d8d10
+Plaintext = 744a167ae31a8ca20df82290766429de9ef0b7dfe199a78d
+Ciphertext = b111d2b9ea25d729ddc600da901f942307f1bce4978de915
+
+Cipher = aes-192-ccm
+Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca
+IV = 3820db475c7cb04a0f74d8e449
+AAD = b8d511d0ab86a07f
+Tag = 3fab212a1b6dc7b953e2bc211be194ae
+Plaintext = eeb39de1fe21b5aba654da45fe1481decb22365fa4cbe49d
+Ciphertext = 2be85922f71eee20766af80f186f3c2352233d64d2dfaa05
+
+Cipher = aes-192-ccm
+Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca
+IV = 3820db475c7cb04a0f74d8e449
+AAD = c74a5d4265f9f3d5
+Tag = 73918ab70fe048d6c5b63a01725eddfb
+Plaintext = e95c20e80153bae3fde3c3d82b6b33b35fc1959fa31a5d11
+Ciphertext = 2c07e42b086ce1682ddde192cd108e4ec6c09ea4d50e1389
+
+Cipher = aes-192-ccm
+Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca
+IV = 3820db475c7cb04a0f74d8e449
+AAD = fd849d3ada03181a
+Tag = 87089bc20867f474c1127aa1320f0000
+Plaintext = 6d00606c72cea3deaea5b51ae09e61924355e167058ef42c
+Ciphertext = a85ba4af7bf1f8557e9b975006e5dc6fda54ea5c739abab4
+
+Cipher = aes-192-ccm
+Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca
+IV = 3820db475c7cb04a0f74d8e449
+AAD = 56825a68681f498c
+Tag = 34a23b0b6ac4d297dd7832a5e2102272
+Plaintext = c47705d897a6c7e7aed710b96e2d8532c23b82090e21b114
+Ciphertext = 012cc11b9e999c6c7ee932f3885638cf5b3a89327835ff8c
+
+Cipher = aes-192-ccm
+Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca
+IV = 3820db475c7cb04a0f74d8e449
+AAD = 72e4da839913a26e
+Tag = dd665766c7af21ff890bd40178f1c660
+Plaintext = c822a1ee581cf85b0482c821473385bd3f28528e5e5760d9
+Ciphertext = 0d79652d5123a3d0d4bcea6ba1483840a62959b528432e41
+
+Cipher = aes-192-ccm
+Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca
+IV = 3820db475c7cb04a0f74d8e449
+AAD = 138457571ee8dafd
+Tag = 6a6a58bb772c79481dc26861ffbd68c6
+Plaintext = 3ffb82a83308da66e95ac63ae92931b09ffe0e42afbb4979
+Ciphertext = faa0466b3a3781ed3964e4700f528c4d06ff0579d9af07e1
+
+Cipher = aes-192-ccm
+Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337
+IV = 9e2ea8eb7f56087ee506925648
+AAD = 28d157f09a71da80dd
+Tag = 02ada34addf0aa2f4744ed2e07995491
+Plaintext = 0662e63c88e963d3e0cf2c4653515ae4474a2c78ab0394c0
+Ciphertext = 01dcd4dd3b8c1369518136ce45e8bb9df565b0ad231a887b
+
+Cipher = aes-192-ccm
+Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337
+IV = 9e2ea8eb7f56087ee506925648
+AAD = c17d311362c41d442b
+Tag = 38a27466b8741bffce44ef04b23af321
+Plaintext = d6df8b60c697093987b3d89a3667b36504b6ddddf12b0900
+Ciphertext = d161b98175f2798336fdc21220de521cb6994108793215bb
+
+Cipher = aes-192-ccm
+Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337
+IV = 9e2ea8eb7f56087ee506925648
+AAD = 006669ef1a11b65b1d
+Tag = 7d11372fb0dab1c99b159e5fe9f91118
+Plaintext = 49ad29ef5e82b08752ac5a50dd982e4bcb700005454ade6c
+Ciphertext = 4e131b0eede7c03de3e240d8cb21cf32795f9cd0cd53c2d7
+
+Cipher = aes-192-ccm
+Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337
+IV = 9e2ea8eb7f56087ee506925648
+AAD = 8eafce9ba466fd53eb
+Tag = 09e4898a4046f6ec9f40e412915007e4
+Plaintext = 385f9fb139dbf88561b7a500b0c7b835fe57e2698c6d9f76
+Ciphertext = 3fe1ad508abe883fd0f9bf88a67e594c4c787ebc047483cd
+
+Cipher = aes-192-ccm
+Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337
+IV = 9e2ea8eb7f56087ee506925648
+AAD = 796e55fbe7bed46d02
+Tag = 5d40a9902481bfac7ff33d08fb4b3d31
+Plaintext = 4ebb149b01cbacba32d11168ca61928ea149dcf2ee2c1001
+Ciphertext = 4905267ab2aedc00839f0be0dcd873f71366402766350cba
+
+Cipher = aes-192-ccm
+Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337
+IV = 9e2ea8eb7f56087ee506925648
+AAD = 8f958d796be0566512
+Tag = d972d09a17172161eb68a30b593b1bd6
+Plaintext = 0d974e5621caa1d86eaaee689ccbca57843373fcf20db407
+Ciphertext = 0a297cb792afd162dfe4f4e08a722b2e361cef297a14a8bc
+
+Cipher = aes-192-ccm
+Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337
+IV = 9e2ea8eb7f56087ee506925648
+AAD = cc879ff2d583a7288c
+Tag = 119cc26a80c152c253fbc36cb886e0fc
+Plaintext = f8e0dac6a691dfb231411b5c5f70a0daff83cc637b0c7bb3
+Ciphertext = ff5ee82715f4af08800f01d449c941a34dac50b6f3156708
+
+Cipher = aes-192-ccm
+Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337
+IV = 9e2ea8eb7f56087ee506925648
+AAD = 4765d696d19dec58bc
+Tag = 9de06cc5c3bc4ad75076c774576843fb
+Plaintext = 096a36396ccfa260f28fb0919157a5076b53506c51a2a4ef
+Ciphertext = 0ed404d8dfaad2da43c1aa1987ee447ed97cccb9d9bbb854
+
+Cipher = aes-192-ccm
+Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337
+IV = 9e2ea8eb7f56087ee506925648
+AAD = a004f283afc3309c31
+Tag = 135493b44f79a5774df6b2943b0bec67
+Plaintext = 5b943269be41e2758a4ea6a3cc621b711a8ba6002783aa72
+Ciphertext = 5c2a00880d2492cf3b00bc2bdadbfa08a8a43ad5af9ab6c9
+
+Cipher = aes-192-ccm
+Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337
+IV = 9e2ea8eb7f56087ee506925648
+AAD = cdd5d8aefe49a315ad
+Tag = 7a5da4a29a9012d78b6de6f1b3e8c9ed
+Plaintext = 5f27867109e74862ce0dbc9ba73c420b93067bdede17ae51
+Ciphertext = 5899b490ba8238d87f43a613b185a3722129e70b560eb2ea
+
+Cipher = aes-192-ccm
+Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10
+IV = 441ad5e1382e083a95224f395d
+AAD = 2352648299b0413cb2ce
+Tag = 0c96e8ab8774baa421f39c64a386c418
+Plaintext = 048c9ba4597c3bb595bfd5048e5e9a1296f30e5c0118b177
+Ciphertext = 25247a258e4ac0a988d8def60cc174a9d4578cd5346fb515
+
+Cipher = aes-192-ccm
+Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10
+IV = 441ad5e1382e083a95224f395d
+AAD = ce003c836a6f5f066053
+Tag = d453036cdc6bad0c5e770a6249a52e74
+Plaintext = 02ea8e7e488c863584f828df13dfeb68433294d11d9ca9d7
+Ciphertext = 23426fff9fba7d29999f232d914005d30196165828ebadb5
+
+Cipher = aes-192-ccm
+Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10
+IV = 441ad5e1382e083a95224f395d
+AAD = d11be73a104ccc6346d5
+Tag = 4627ad75bbfe17f3f5ddfd3dbc1045f3
+Plaintext = 6d5573c9279897d7d1602d8a95c04bb5ca3fad2dbe89a024
+Ciphertext = 4cfd9248f0ae6ccbcc072678175fa50e889b2fa48bfea446
+
+Cipher = aes-192-ccm
+Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10
+IV = 441ad5e1382e083a95224f395d
+AAD = 6a7b80b6738ff0a23ad5
+Tag = af8943f74706cc3394a170fd49f7011a
+Plaintext = 97a813e75d95d25c2edb1c705c4ffe4d7c08c756761fbc0b
+Ciphertext = b600f2668aa3294033bc1782ded010f63eac45df4368b869
+
+Cipher = aes-192-ccm
+Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10
+IV = 441ad5e1382e083a95224f395d
+AAD = a391acdb3a06dae4a671
+Tag = f22597f63074ca3533bb5e107860481f
+Plaintext = a78981ac244307451e4d3fd7f654b70cc4e6518aa47a3c18
+Ciphertext = 8621602df375fc59032a342574cb59b78642d303910d387a
+
+Cipher = aes-192-ccm
+Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10
+IV = 441ad5e1382e083a95224f395d
+AAD = 0b9f28f2d3215785f569
+Tag = 905b5609f593c6ea9281f66cd2e646dd
+Plaintext = 5d649d79ff0e304e164a383c74f13d7ffab145d00cb0ec2c
+Ciphertext = 7ccc7cf82838cb520b2d33cef66ed3c4b815c75939c7e84e
+
+Cipher = aes-192-ccm
+Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10
+IV = 441ad5e1382e083a95224f395d
+AAD = 7928b1091cbfb2eef0fe
+Tag = 428195355618ea0cf87260ad20b6d7b9
+Plaintext = 83a273687dced7b94d569f81d75508595cde668f06406183
+Ciphertext = a20a92e9aaf82ca55031947355cae6e21e7ae406333765e1
+
+Cipher = aes-192-ccm
+Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10
+IV = 441ad5e1382e083a95224f395d
+AAD = 3b74afb81f54a93c79d5
+Tag = 55019659f41a5f0430695b4ada9d8b8d
+Plaintext = b4dc3c059cf7b47dd0bb7f165a63fc80b5c6b5f3ca7eeb73
+Ciphertext = 9574dd844bc14f61cddc74e4d8fc123bf762377aff09ef11
+
+Cipher = aes-192-ccm
+Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10
+IV = 441ad5e1382e083a95224f395d
+AAD = a46ae4c71d4c9eb72fab
+Tag = 1514b252f33dc870c42260e48c4fa9fd
+Plaintext = 7e919581c5105d98717d0613e1ca869c6516506ea482d5c2
+Ciphertext = 5f3974001226a6846c1a0de16355682727b2d2e791f5d1a0
+
+Cipher = aes-192-ccm
+Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10
+IV = 441ad5e1382e083a95224f395d
+AAD = a1ace61711f0a09ac17d
+Tag = c263c667d7ed58907452c092905d0b31
+Plaintext = 3a4558b55214f21cbd2ae2eda5a2321cfc2f102e059b744a
+Ciphertext = 1bedb93485220900a04de91f273ddca7be8b92a730ec7028
+
+Cipher = aes-192-ccm
+Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4
+IV = 8e7d8a44244daa7df2b340993e
+AAD = 521583c25eb4a3b2e46120
+Tag = ed2c87135861b43a99f258b6938f66e3
+Plaintext = 9f580cc6c62a05ce125c6bec109a48ca527ee26a64b14b68
+Ciphertext = ff0ff95bcb0bccd5e4aadd77ac6770f5013654eb3c6386fd
+
+Cipher = aes-192-ccm
+Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4
+IV = 8e7d8a44244daa7df2b340993e
+AAD = 31adb39e947f8883fa4b69
+Tag = 32b87476d66a1bd405f484ef9ac8ab7e
+Plaintext = f16bba081bddda83546eabc9a55c81a439720dd8562ce964
+Ciphertext = 913c4f9516fc1398a2981d5219a1b99b6a3abb590efe24f1
+
+Cipher = aes-192-ccm
+Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4
+IV = 8e7d8a44244daa7df2b340993e
+AAD = f05f39eb0a3d6460076aa8
+Tag = a120b455b366cb104fd8b6dc2c80471e
+Plaintext = 6baf784f63cf45a1836fa8f3609fff7870ce8cbd1e91268c
+Ciphertext = 0bf88dd26eee8cba75991e68dc62c74723863a3c4643eb19
+
+Cipher = aes-192-ccm
+Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4
+IV = 8e7d8a44244daa7df2b340993e
+AAD = 74c7a633ff73ff507009c5
+Tag = 0c8ca09f4bf06b1c27e75abf15112e49
+Plaintext = d8176a6de1c15a14c8b8b58725c179dc84c9308268d718d5
+Ciphertext = b8409ff0ece0930f3e4e031c993c41e3d78186033005d540
+
+Cipher = aes-192-ccm
+Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4
+IV = 8e7d8a44244daa7df2b340993e
+AAD = ab322a88cf44b9ca774415
+Tag = b3159274a7de3550baf759f7fae53dbc
+Plaintext = 3706e4d8ff748574f382e5f9b0a3b6258f1f360fd87001b0
+Ciphertext = 57511145f2554c6f057453620c5e8e1adc57808e80a2cc25
+
+Cipher = aes-192-ccm
+Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4
+IV = 8e7d8a44244daa7df2b340993e
+AAD = d6fe6e17221d4e06ed3ab9
+Tag = 16fba8d193e133e6f78daa39681cb262
+Plaintext = e02217394772deffe218c405e40f2a3a56ca01d55d6d3330
+Ciphertext = 8075e2a44a5317e414ee729e58f212050582b75405bffea5
+
+Cipher = aes-192-ccm
+Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4
+IV = 8e7d8a44244daa7df2b340993e
+AAD = 2739d2cdfcbe7d5cd7d28c
+Tag = 65f92db3b3d1c2de04c69c5d06b0e001
+Plaintext = bb713f74a884bd1a994adba87561d637853c6181290ef5e8
+Ciphertext = db26cae9a5a574016fbc6d33c99cee08d674d70071dc387d
+
+Cipher = aes-192-ccm
+Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4
+IV = 8e7d8a44244daa7df2b340993e
+AAD = 5841571299cd064a6262b7
+Tag = 6e4d20ab5ffad6f71155f6839dfdbb25
+Plaintext = 9641dedd50d80ac0abf7591436065fa2e23e4687abbb86e4
+Ciphertext = f6162b405df9c3db5d01ef8f8afb679db176f006f3694b71
+
+Cipher = aes-192-ccm
+Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4
+IV = 8e7d8a44244daa7df2b340993e
+AAD = dc5d7fd97bb3243ba585fa
+Tag = 0ebc3af2de52b8bee3d130fa973f716b
+Plaintext = aefda8501193edacb8abb94fff875529a537a462c4b9b69c
+Ciphertext = ceaa5dcd1cb224b74e5d0fd4437a6d16f67f12e39c6b7b09
+
+Cipher = aes-192-ccm
+Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4
+IV = 8e7d8a44244daa7df2b340993e
+AAD = 8789e0b3e0dc13d9725b37
+Tag = b5cd5a004a0ef28e30383bdaed8f93c7
+Plaintext = 65e53f549b62aca03f21ab2a494b93805e02cfecf4f12aa4
+Ciphertext = 05b2cac9964365bbc9d71db1f5b6abbf0d4a796dac23e731
+
+Cipher = aes-192-ccm
+Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490
+IV = f3329154d8908f4e4a5b079992
+AAD = f1e0af185180d2eb63e50e37
+Tag = 4484d93cb422cb564acc63d3d18e169c
+Plaintext = 6333bde218b784ccd8370492f7c8c722f8ef143af66d71d7
+Ciphertext = b9401a4927b34dc15e9193db00212f85f0c319781ec90e3b
+
+Cipher = aes-192-ccm
+Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490
+IV = f3329154d8908f4e4a5b079992
+AAD = ea74231e49e667ca1c21d46d
+Tag = c4c151d9927e6a9f19d47ff7d79ca6f6
+Plaintext = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e
+Ciphertext = e67d8fbeec794d42fc64d7f36a87d2ac22aafa440021ea72
+
+Cipher = aes-192-ccm
+Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490
+IV = f3329154d8908f4e4a5b079992
+AAD = 7f5871a8300471dc325f8289
+Tag = 959eee29be1415ab03444de0fa42707d
+Plaintext = c642c9722d84d708682350dc70bdaa9a1181a415a9e72b93
+Ciphertext = 1c316ed912801e05ee85c7958754423d19ada9574143547f
+
+Cipher = aes-192-ccm
+Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490
+IV = f3329154d8908f4e4a5b079992
+AAD = ee7e6075ba52846de5d62549
+Tag = ce97c1c8aea70de04580d7b37f8c014d
+Plaintext = 2286a1eddd80737a724ca941217e9f0232870b6c2f20d29c
+Ciphertext = f8f50646e284ba77f4ea3e08d69777a53aab062ec784ad70
+
+Cipher = aes-192-ccm
+Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490
+IV = f3329154d8908f4e4a5b079992
+AAD = a30f2fd445820cdf80014554
+Tag = 23b536f993381e525a14599dd5c02e80
+Plaintext = 92577d5db20391110309d490f52acecdfc18382f368bbe42
+Ciphertext = 4824daf68d07581c85af43d902c3266af434356dde2fc1ae
+
+Cipher = aes-192-ccm
+Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490
+IV = f3329154d8908f4e4a5b079992
+AAD = 0cfec933831644b468724e80
+Tag = d6ea722fdd82ede2c7b8832dde3cbe80
+Plaintext = 6803dc3f7c06568ca78ee5aa2e9b1b354a4f1e067ff6a25b
+Ciphertext = b2707b9443029f81212872e3d972f392426313449752ddb7
+
+Cipher = aes-192-ccm
+Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490
+IV = f3329154d8908f4e4a5b079992
+AAD = 6bd14e3bf91dc7fd6be07647
+Tag = 5c2994b2b469ad977564d83db1ebfe38
+Plaintext = 5580672e52aacb9d714a34c31c33fc221e13e8f90849adba
+Ciphertext = 8ff3c0856dae0290f7eca38aebda1485163fe5bbe0edd256
+
+Cipher = aes-192-ccm
+Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490
+IV = f3329154d8908f4e4a5b079992
+AAD = 6c6ad35e97d023217018162f
+Tag = ac31ebf9e255eecf3c69ddf198760556
+Plaintext = 1bd1bcc6766d251144376d91ff93ef83033d0e0ee546266f
+Ciphertext = c1a21b6d4969ec1cc291fad8087a07240b11034c0de25983
+
+Cipher = aes-192-ccm
+Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490
+IV = f3329154d8908f4e4a5b079992
+AAD = 52c35db85cc34b6efed180ee
+Tag = 3424079e3de87fa59c3d10fd62380a90
+Plaintext = 28f71a2fe498f89203a5d23e8f8fa64b124aea6459fe721d
+Ciphertext = f284bd84db9c319f8503457778664eec1a66e726b15a0df1
+
+Cipher = aes-192-ccm
+Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490
+IV = f3329154d8908f4e4a5b079992
+AAD = a96e4776270683ee7d0c9b6e
+Tag = 2258e1f3fc3eb7e976c86c8a21bd6569
+Plaintext = 5be078ead1926074afca81f9a97dc93dcb954c955e4343e4
+Ciphertext = 8193df41ee96a979296c16b05e94219ac3b941d7b6e73c08
+
+Cipher = aes-192-ccm
+Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731
+IV = 13501aebda19a9bf1b5ffaa42a
+AAD = ead4c45ff9db54f9902a6de181
+Tag = 9503d811701642143013f28ce384d912
+Plaintext = 3726c1aaf85ee8099a7ebd3268700e07d4b3f292c65bba34
+Ciphertext = fd80e88f07dad09eed5569a4f9bb65c42ef426dda4045011
+
+Cipher = aes-192-ccm
+Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731
+IV = 13501aebda19a9bf1b5ffaa42a
+AAD = e63b89e95df8338ecdcc885c3b
+Tag = c6d3f9c7b9f25e09ce164a11370b8b05
+Plaintext = 37f86aa62b1e31e9ded3e1a38a7e1a8a638d619ac109694f
+Ciphertext = fd5e4383d49a097ea9f835351bb5714999cab5d5a356836a
+
+Cipher = aes-192-ccm
+Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731
+IV = 13501aebda19a9bf1b5ffaa42a
+AAD = a2161536e263459e0b0a29a225
+Tag = e02b848b006c28803303fd97bdc35476
+Plaintext = 1749f5977197359a5d318d5fea38aba95b3603f1d7011e66
+Ciphertext = ddefdcb28e130d0d2a1a59c97bf3c06aa171d7beb55ef443
+
+Cipher = aes-192-ccm
+Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731
+IV = 13501aebda19a9bf1b5ffaa42a
+AAD = 8ac95a6ae0bce0fb07f85368ab
+Tag = 431de2bc45b2b726bfda92939a11f68b
+Plaintext = 0842bfb8b38283257c2ea58b29c8350775f1dbf15f73c905
+Ciphertext = c2e4969d4c06bbb20b05711db8035ec48fb60fbe3d2c2320
+
+Cipher = aes-192-ccm
+Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731
+IV = 13501aebda19a9bf1b5ffaa42a
+AAD = 44cc9b2510680c4d73f1938c77
+Tag = 786add8c2619f0782ca12312a1d64266
+Plaintext = 68d09fce5e89e4ef6d453b8ee326090cedb97b75b886c7b3
+Ciphertext = a276b6eba10ddc781a6eef1872ed62cf17feaf3adad92d96
+
+Cipher = aes-192-ccm
+Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731
+IV = 13501aebda19a9bf1b5ffaa42a
+AAD = d8a662ab8449bd037da0346a24
+Tag = b6bd4a09f9b4aa2864d39ff1a03e0ff7
+Plaintext = 45245de4ac6a6196a0b15b77c622a21bb50627379ddb4256
+Ciphertext = 8f8274c153ee5901d79a8fe157e9c9d84f41f378ff84a873
+
+Cipher = aes-192-ccm
+Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731
+IV = 13501aebda19a9bf1b5ffaa42a
+AAD = 8ed39da1d9179e77156eb909f3
+Tag = 19b6935778ffbc0953974de0a9d87a31
+Plaintext = e928e37dbe8389a53c650edc86f83cd3589a53dc8e45adfd
+Ciphertext = 238eca584107b1324b4eda4a17335710a2dd8793ec1a47d8
+
+Cipher = aes-192-ccm
+Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731
+IV = 13501aebda19a9bf1b5ffaa42a
+AAD = 423515f7bd592d6a7a2408661a
+Tag = 00a3da0d3ce34a272b51582a998f461e
+Plaintext = 4c3bdc6186297896097b3297ba90bcde78dc8a9efe3bd8b1
+Ciphertext = 869df54479ad40017e50e6012b5bd71d829b5ed19c643294
+
+Cipher = aes-192-ccm
+Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731
+IV = 13501aebda19a9bf1b5ffaa42a
+AAD = 5a6bc2cd6890a473d478a582b4
+Tag = 4ef28c338f497a40f550f2945734ad1a
+Plaintext = 1c5ebaeb7b926a39b8aaf65a4c484b113d6f2caafadc33ea
+Ciphertext = d6f893ce841652aecf8122ccdd8320d2c728f8e59883d9cf
+
+Cipher = aes-192-ccm
+Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731
+IV = 13501aebda19a9bf1b5ffaa42a
+AAD = 7bdc26b5b4df58af539d91eb2e
+Tag = e07f1998e57ba9b611568632dc5cb9fe
+Plaintext = be5c9fee6babf569c66e6a0d0f3c4dc314f40c0aeca493f7
+Ciphertext = 74fab6cb942fcdfeb145be9b9ef72600eeb3d8458efb79d2
+
+Cipher = aes-192-ccm
+Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01
+IV = aaa52c63ca1f74a203d08c2078
+AAD = 5cc924222692979a8e28ab1e0018
+Tag = f58649400ac9e825b038d67f0c2a6f1c
+Plaintext = d3b36c6289ad6ae7c5d885fe83d62a76270689ce05fa3b48
+Ciphertext = bc4fcef401c2e1d1c335734ff23ea52c3474d2e6f31648a7
+
+Cipher = aes-192-ccm
+Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01
+IV = aaa52c63ca1f74a203d08c2078
+AAD = 21fb9cdd9b110bbbc6832275dfa7
+Tag = 3fa5ad4142e0b4650fa5cc8f7ef70d62
+Plaintext = a7742dd9c3e8bbad08157fbd01ebfb94e1639117c4b4eb5d
+Ciphertext = c8888f4f4b87309b0ef8890c700374cef211ca3f325898b2
+
+Cipher = aes-192-ccm
+Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01
+IV = aaa52c63ca1f74a203d08c2078
+AAD = 9919ddb6ee6c330646cd15953d39
+Tag = fec551d11b8647432cc4320173939600
+Plaintext = 297b4498bf5427e6341aa9275c1f62e3b0c9b150a195ae72
+Ciphertext = 4687e60e373bacd032f75f962df7edb9a3bbea785779dd9d
+
+Cipher = aes-192-ccm
+Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01
+IV = aaa52c63ca1f74a203d08c2078
+AAD = f94cfd1f8c7902a57784c10b9a5a
+Tag = a79a075ec2cacee1482b8328b697a3b2
+Plaintext = 2218868033e17220655f0196dab6193c58293ca105d467d9
+Ciphertext = 4de42416bb8ef91663b2f727ab5e96664b5b6789f3381436
+
+Cipher = aes-192-ccm
+Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01
+IV = aaa52c63ca1f74a203d08c2078
+AAD = 63f3fe58c348dc6bcbb44c3c370f
+Tag = 39cbe17b4edd64a3dcd2b8ae3352c04a
+Plaintext = 4a9bc26fb10000a57b9e73a8a3d30f66ef9de8782201ffa8
+Ciphertext = 256760f9396f8b937d738519d23b803cfcefb350d4ed8c47
+
+Cipher = aes-192-ccm
+Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01
+IV = aaa52c63ca1f74a203d08c2078
+AAD = dec0ce763833305aa9c9efdc2c65
+Tag = f54665c476d0741164685b0d81caca31
+Plaintext = 1b61b3ff3e4847a17f55f7565826b0e2ccc1368f4de32022
+Ciphertext = 749d1169b627cc9779b801e729ce3fb8dfb36da7bb0f53cd
+
+Cipher = aes-192-ccm
+Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01
+IV = aaa52c63ca1f74a203d08c2078
+AAD = 592ef6784ee839a049e0d96257fa
+Tag = 500d93b11fecc8b4560320878ba53550
+Plaintext = 32e5998b37987a38800f5bfe3132979ca1447314570aaef7
+Ciphertext = 5d193b1dbff7f10e86e2ad4f40da18c6b236283ca1e6dd18
+
+Cipher = aes-192-ccm
+Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01
+IV = aaa52c63ca1f74a203d08c2078
+AAD = 4a47a82b999a2a739959f153a091
+Tag = 3c2a41443578adaf31483bbb6b9f10b0
+Plaintext = 84acfb6cf10b301558e5acbf41bbbe0b145dc66dc600f4df
+Ciphertext = eb5059fa7964bb235e085a0e30533151072f9d4530ec8730
+
+Cipher = aes-192-ccm
+Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01
+IV = aaa52c63ca1f74a203d08c2078
+AAD = 4ceba98cc0ff5de1a7d580cf23d2
+Tag = 2232a856c07999e99a4701988b486ef2
+Plaintext = d7c73d77a286df38aad116843620911c92e11486be5fcb0c
+Ciphertext = b83b9fe12ae9540eac3ce03547c81e4681934fae48b3b8e3
+
+Cipher = aes-192-ccm
+Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01
+IV = aaa52c63ca1f74a203d08c2078
+AAD = 15e3b3c5794fececd703ac58ccb2
+Tag = b3a6d50a92f3183c0c5090edc3c7f822
+Plaintext = 140882c5d3534bb0861e7ba9423e67439a02ee6f0b0b00f3
+Ciphertext = 7bf420535b3cc08680f38d1833d6e8198970b547fde7731c
+
+Cipher = aes-192-ccm
+Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2
+IV = 1ac53ba965cdaeeef7326a37e4
+AAD = 39ba54a410a58a5d11615a2163cc3b
+Tag = 26a51fe5b9b598a17eb3da10f936813b
+Plaintext = 67d9728a88f1fac3af43ed6d634ba902896bd226858697d9
+Ciphertext = 360f0fc714994e3b59448b50cdd61d511b4f09e0e5fb5ac8
+
+Cipher = aes-192-ccm
+Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2
+IV = 1ac53ba965cdaeeef7326a37e4
+AAD = 38b0cca09d69320105d24ee3f96684
+Tag = ba673a94f4280e84724f4a2510165e9a
+Plaintext = a8365ba9fcfff060b28895f7a2d786c5991a8f7758962caa
+Ciphertext = f9e026e460974498448ff3ca0c4a32960b3e54b138ebe1bb
+
+Cipher = aes-192-ccm
+Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2
+IV = 1ac53ba965cdaeeef7326a37e4
+AAD = 76718dfb9c68acdd82592d96def39a
+Tag = 18865ab37be6f015316e0d177b6c2e91
+Plaintext = 497be597dd695cb159d8a64f44049c3b549ac927837b1b90
+Ciphertext = 18ad98da4101e849afdfc072ea992868c6be12e1e306d681
+
+Cipher = aes-192-ccm
+Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2
+IV = 1ac53ba965cdaeeef7326a37e4
+AAD = dd719ba1710916a546233c1494a7a7
+Tag = 3d903f67ad0d72fb8ffea2035216b769
+Plaintext = ca452c21383ebc3fb584f0d59a227374854983f243a3f460
+Ciphertext = 9b93516ca45608c7438396e834bfc727176d583423de3971
+
+Cipher = aes-192-ccm
+Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2
+IV = 1ac53ba965cdaeeef7326a37e4
+AAD = d893fa2bd7c70e21a5934dc2e99037
+Tag = 0b885e3e054f519d0355db1bd589bb35
+Plaintext = 3dd118ed65453d3d7844d8de78d7a43587ac5e9305b11464
+Ciphertext = 6c0765a0f92d89c58e43bee3d64a10661588855565ccd975
+
+Cipher = aes-192-ccm
+Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2
+IV = 1ac53ba965cdaeeef7326a37e4
+AAD = 97c60265a3a6993b97ac1b375a79b8
+Tag = 4a950e4bed4137e38787839e39924821
+Plaintext = a7375ba32251af0138bd9fd8fcd56a7c43ab2ca9a7fc0117
+Ciphertext = f6e126eebe391bf9cebaf9e55248de2fd18ff76fc781cc06
+
+Cipher = aes-192-ccm
+Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2
+IV = 1ac53ba965cdaeeef7326a37e4
+AAD = acfdf302ed116ac4755069d1704423
+Tag = ca94dd97fd2a5d50eb7dd6234b40c525
+Plaintext = d39d188f28521e4fb0a0c5e48e6d6efe4383c95b2535ea8d
+Ciphertext = 824b65c2b43aaab746a7a3d920f0daadd1a7129d4548279c
+
+Cipher = aes-192-ccm
+Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2
+IV = 1ac53ba965cdaeeef7326a37e4
+AAD = d449f97164aae9a3046624e98810bc
+Tag = 96f11450d5d2ba55ffb4a6cf7eab847a
+Plaintext = 758102470e221e30d87d2807b5f8b793a7a56c83eecf32a4
+Ciphertext = 24577f0a924aaac82e7a4e3a1b6503c03581b7458eb2ffb5
+
+Cipher = aes-192-ccm
+Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2
+IV = 1ac53ba965cdaeeef7326a37e4
+AAD = 3e6c914a196e175079315b1c92b2b8
+Tag = 64894e9218ecacd143fb62df69a13d33
+Plaintext = 1db875c4b4f9dd4926dfb5604d6c4d21aba7d905aed9d1b0
+Ciphertext = 4c6e0889289169b1d0d8d35de3f1f972398302c3cea41ca1
+
+Cipher = aes-192-ccm
+Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2
+IV = 1ac53ba965cdaeeef7326a37e4
+AAD = e2b7b00d0cfbdfcc24f1819ae1869f
+Tag = 85a7c19bc9c2f8e36ed95015ebb679ae
+Plaintext = d7a75bc621addccbbe162b86d536d69c887c278384af54e7
+Ciphertext = 8671268bbdc5683348114dbb7bab62cf1a58fc45e4d299f6
+
+Cipher = aes-192-ccm
+Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c
+IV = 166fb8d0e110124c09013e0568
+AAD = 1c1c082eeb5b8548283d50cc2ace1c35
+Tag = 867601fe79a122a7817819655183283e
+Plaintext = 61fdd10938557080191d13dd6c3002dd445d9af988029199
+Ciphertext = 23c05927502a4ee6e61e4e10552d49b020643eab476eeacc
+
+Cipher = aes-192-ccm
+Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c
+IV = 166fb8d0e110124c09013e0568
+AAD = cae884fa25adedd883ef4e7c855def19
+Tag = 160bb976ab072aec8fcea8eab3dc5aff
+Plaintext = 8c7ae2c3c503e9072d6e04e44c2ea78fd24994503567a136
+Ciphertext = ce476aedad7cd761d26d59297533ece2b6703002fa0bda63
+
+Cipher = aes-192-ccm
+Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c
+IV = 166fb8d0e110124c09013e0568
+AAD = a350ed58c04473e113b9088b1fb9dad9
+Tag = 291b2c13a3f5e49ce35b9047ee1e8627
+Plaintext = 863f9a26182f131c594972398b52b3a01a9d314fd9390bf4
+Ciphertext = c402120870502d7aa64a2ff4b24ff8cd7ea4951d165570a1
+
+Cipher = aes-192-ccm
+Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c
+IV = 166fb8d0e110124c09013e0568
+AAD = cb7090f7a465782f680fd44cbc558107
+Tag = fdd9fd1d469a9042b80e6458d25292b4
+Plaintext = bd94c9ad6253c25dc417f87b6e52e03621ccf4b3bff5b402
+Ciphertext = ffa941830a2cfc3b3b14a5b6574fab5b45f550e17099cf57
+
+Cipher = aes-192-ccm
+Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c
+IV = 166fb8d0e110124c09013e0568
+AAD = 914cf55a3fc739b5f87ac7518cc4171b
+Tag = a8b8e82175ff30c69ea71d2cfb814ada
+Plaintext = c313bd213dc29c00691e25ce028884192e21a820003aece4
+Ciphertext = 812e350f55bda266961d78033b95cf744a180c72cf5697b1
+
+Cipher = aes-192-ccm
+Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c
+IV = 166fb8d0e110124c09013e0568
+AAD = adc8b69d84ef7ae62f9ca9f371d3488e
+Tag = 76fa36db27b2f84d1b8ab55e2fc89ab8
+Plaintext = 85e4e053b976e06a64dfa8523130cdd802d3e7c3d6d797c2
+Ciphertext = c7d9687dd109de0c9bdcf59f082d86b566ea439119bbec97
+
+Cipher = aes-192-ccm
+Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c
+IV = 166fb8d0e110124c09013e0568
+AAD = 29ed477994dd231d3a71157eb56d219d
+Tag = 0e32058ea939036805a735198934a072
+Plaintext = c77aae5fd09dc9bceee7428e0734d4b0556528396a58f909
+Ciphertext = 85472671b8e2f7da11e41f433e299fdd315c8c6ba534825c
+
+Cipher = aes-192-ccm
+Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c
+IV = 166fb8d0e110124c09013e0568
+AAD = 494c8f931029a4919e2dcbc16512a8bf
+Tag = 37098c81475f8a1d8f3b0e63d499d387
+Plaintext = 1f47273103f265f963e498878361c06c01a5ffcfb630a161
+Ciphertext = 5d7aaf1f6b8d5b9f9ce7c54aba7c8b01659c5b9d795cda34
+
+Cipher = aes-192-ccm
+Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c
+IV = 166fb8d0e110124c09013e0568
+AAD = 53200bc5d1f1fb0eeff02d2bc42f7d54
+Tag = 9d7317973878957e8fc1fa57a025a3e9
+Plaintext = a38231af405dc7b70c8dbc8cb84e6be8a0dc2e95fddc2ce8
+Ciphertext = e1bfb9812822f9d1f38ee14181532085c4e58ac732b057bd
+
+Cipher = aes-192-ccm
+Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c
+IV = 166fb8d0e110124c09013e0568
+AAD = 61e0e28bf344a9a1b04b15156e06498e
+Tag = b0aa1befae96e71b9d221673844b1cb7
+Plaintext = a0d3a94ba6bb3bedf38220d1cba7e91273ad19f9a1c436c0
+Ciphertext = e2ee2165cec4058b0c817d1cf2baa27f1794bdab6ea84d95
+
+Cipher = aes-192-ccm
+Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5
+IV = 924322a3ef0c64412f460a91b2
+AAD = 03c2d22a3bb08bbb96b2811ce4b1110a83
+Tag = 2f9340b0d48a17ae1cc71d7515e61ee9
+Plaintext = 1bd3b5db392402790be16e8d0a715453928f17f3384c13a7
+Ciphertext = ad736402626df0f9393fe4491eb812725ad39d6facf20b5b
+
+Cipher = aes-192-ccm
+Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5
+IV = 924322a3ef0c64412f460a91b2
+AAD = f390387610741d560325b5d2010d8cd4a0
+Tag = 717bae4c040561bcfcf80fd842ae8dd8
+Plaintext = c93aaa04279e451b6880ed7b7fdb3ca9e80ab76180434937
+Ciphertext = 7f9a7bdd7cd7b79b5a5e67bf6b127a8820563dfd14fd51cb
+
+Cipher = aes-192-ccm
+Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5
+IV = 924322a3ef0c64412f460a91b2
+AAD = 891d7988a56415a7b433f463b1e80eaa62
+Tag = bc9fb15d874feccb6b5f581fa470734f
+Plaintext = 2611612ccb5ffefaa73195509bb52c641472bca0dfd09d49
+Ciphertext = 90b1b0f590160c7a95ef1f948f7c6a45dc2e363c4b6e85b5
+
+Cipher = aes-192-ccm
+Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5
+IV = 924322a3ef0c64412f460a91b2
+AAD = 831c0fed5e600dd82d7d55669262a9a17d
+Tag = a72589ee50d23f925f7998ab3ccac37f
+Plaintext = 08136e946e306cde0544ddc2f3f4a529c89c7b77a5e635c1
+Ciphertext = beb3bf4d35799e5e379a5706e73de30800c0f1eb31582d3d
+
+Cipher = aes-192-ccm
+Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5
+IV = 924322a3ef0c64412f460a91b2
+AAD = 32ca9d412d4ef0e89928496e96c9de7f2e
+Tag = 55c0b608f331dca47c65f5c879f2d532
+Plaintext = 695aaac402942de7d899cc3f741c7fb2b2d8247a7676cf29
+Ciphertext = dffa7b1d59dddf67ea4746fb60d539937a84aee6e2c8d7d5
+
+Cipher = aes-192-ccm
+Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5
+IV = 924322a3ef0c64412f460a91b2
+AAD = 0746b2e6149c7f55854e9ca3e6861bf0e9
+Tag = b039bd916e923e2fc1f7c60eb59916fd
+Plaintext = 8f958d796be0566512f0512dcebd2e12f3160b05b72ae955
+Ciphertext = 39355ca030a9a4e5202edbe9da7468333b4a81992394f1a9
+
+Cipher = aes-192-ccm
+Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5
+IV = 924322a3ef0c64412f460a91b2
+AAD = 0e4cbd1c574d656112bf6e70a8f23347f0
+Tag = ac07f2c0847069fe5be26e623033f532
+Plaintext = 367ecd1b71dfb96a84e2369f28705dfaebf0c73ed35d5364
+Ciphertext = 80de1cc22a964beab63cbc5b3cb91bdb23ac4da247e34b98
+
+Cipher = aes-192-ccm
+Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5
+IV = 924322a3ef0c64412f460a91b2
+AAD = 1a05ff12412bf728497536534c234901ce
+Tag = f4e66a2b210e5a03bb10ff2926ed8a48
+Plaintext = a9ccee975feb10f635d548a8502f7c8b6adbd2be74117257
+Ciphertext = 1f6c3f4e04a2e276070bc26c44e63aaaa2875822e0af6aab
+
+Cipher = aes-192-ccm
+Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5
+IV = 924322a3ef0c64412f460a91b2
+AAD = 3bd063a51c71fab5aeb47e7f8f958d796b
+Tag = ec90169d0c5c11fff8f255fedb13a99a
+Plaintext = 7df6220599d6235eb450989b6f0cd6c96db62b0d13afc4f4
+Ciphertext = cb56f3dcc29fd1de868e125f7bc590e8a5eaa1918711dc08
+
+Cipher = aes-192-ccm
+Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5
+IV = 924322a3ef0c64412f460a91b2
+AAD = f0d334e0a27c3d00d56b15c2ee426e6347
+Tag = 170141cf3f207c4f0fc1b0238477cfad
+Plaintext = 6f65a24344c32debaf9f8c3fa426fe0b139e8ad1c8b1fbbb
+Ciphertext = d9c5739a1f8adf6b9d4106fbb0efb82adbc2004d5c0fe347
+
+Cipher = aes-192-ccm
+Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863
+IV = a727ed373886dd872859b92ccd
+AAD = 68d199e8fced02b7aeba31aa94068a25d27a
+Tag = 7e30b2bcc3f1ea9ec2b8f28bf0af4ecf
+Plaintext = d7a954dae563b93385c02c82e0143b6c17ce3067d8b54120
+Ciphertext = c6cfaa1f54d041089bd81f89197e57a53b2880cefc3f9d87
+
+Cipher = aes-192-ccm
+Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863
+IV = a727ed373886dd872859b92ccd
+AAD = fc4bbe329a86089ebe2a2f3320dad55a9bda
+Tag = 3a6e6844102d6bb86986c030765d3393
+Plaintext = a206a1eb70a9d24bb5e72f314e7d91de074f59055653bdd2
+Ciphertext = b3605f2ec11a2a70abff1c3ab717fd172ba9e9ac72d96175
+
+Cipher = aes-192-ccm
+Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863
+IV = a727ed373886dd872859b92ccd
+AAD = d8741e540330692d83cc806a8ac1c4742be6
+Tag = 3f92a80b1d82f8c1dc32bfe64adca12a
+Plaintext = 56ef76dbec6b8b46f5b7b4e311c0baaa6fcf54c69c0b9c3b
+Ciphertext = 4789881e5dd8737debaf87e8e8aad6634329e46fb881409c
+
+Cipher = aes-192-ccm
+Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863
+IV = a727ed373886dd872859b92ccd
+AAD = c8b1992dfba55b4ab86b480546c861655e1a
+Tag = 2fb48ad162b0c0678674d79d26a6b5ef
+Plaintext = 2729636112f2abe2c76ea5e52a3f80b0f882f0f3b6f7c806
+Ciphertext = 364f9da4a34153d9d97696eed355ec79d464405a927d14a1
+
+Cipher = aes-192-ccm
+Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863
+IV = a727ed373886dd872859b92ccd
+AAD = 347e12eec56e95aafcc7d25bf10fc756b4e4
+Tag = 81c7cd81c974d985bf24b7fe9542141a
+Plaintext = dd433eb7422c7c4dccee57a1679633ced3b5f08df763d457
+Ciphertext = cc25c072f39f8476d2f664aa9efc5f07ff534024d3e908f0
+
+Cipher = aes-192-ccm
+Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863
+IV = a727ed373886dd872859b92ccd
+AAD = 45b35a04d6e2645e9a5aef206ed4e36199c9
+Tag = a7f6a5c04e59896074e1594706ab27e9
+Plaintext = 70523bc397417e09d791a4976960e02636ca7144a5681cf7
+Ciphertext = 6134c50626f28632c989979c900a8cef1a2cc1ed81e2c050
+
+Cipher = aes-192-ccm
+Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863
+IV = a727ed373886dd872859b92ccd
+AAD = 378b48531fe34f55125b2f14f59715dd6ef0
+Tag = a9d16c3ab79276cff345444511940a9d
+Plaintext = 514cb462dd4b117f26cac22062fcbeb353650c71649a7b3d
+Ciphertext = 402a4aa76cf8e94438d2f12b9b96d27a7f83bcd84010a79a
+
+Cipher = aes-192-ccm
+Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863
+IV = a727ed373886dd872859b92ccd
+AAD = 73ed686d6fecdc031cd97653137f269d6537
+Tag = f92bf8aa6facbe6f9607ea02b54a1bf0
+Plaintext = 7f0c2b261db3f3de0ce3a733f4b8c446c374567d96d00379
+Ciphertext = 6e6ad5e3ac000be512fb94380dd2a88fef92e6d4b25adfde
+
+Cipher = aes-192-ccm
+Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863
+IV = a727ed373886dd872859b92ccd
+AAD = 5b0441107e5560be94f030a41cedbdb116d9
+Tag = e4936ee93b5c7a302913292df33c1700
+Plaintext = ebb3e2ad7803508ba46e81e220b1cff33ea8381504110e9f
+Ciphertext = fad51c68c9b0a8b0ba76b2e9d9dba33a124e88bc209bd238
+
+Cipher = aes-192-ccm
+Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863
+IV = a727ed373886dd872859b92ccd
+AAD = feedcc5f8524fe7d49bcd178415b9f4c450a
+Tag = 93426b6193afe765a76b3dec00266e69
+Plaintext = 3216dce3b8b1ce0e79e40fffcac728ab191aaaf319d971d3
+Ciphertext = 237022260902363567fc3cf433ad446235fc1a5a3d53ad74
+
+Cipher = aes-192-ccm
+Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a
+IV = fc9fd876b1edded09f70b18824
+AAD = 36e15baafa0002efbb4bb26503b7e3b79f6c68
+Tag = b60a77b9d38740356b544b1c0f259086
+Plaintext = 344dc8b6bd66a1fbbe330a95af5dd2a8783dc264d6a9267d
+Ciphertext = 43b3b96aa5a54378f3bb573ffda3e154aa7f425fc3008175
+
+Cipher = aes-192-ccm
+Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a
+IV = fc9fd876b1edded09f70b18824
+AAD = 712b788f0276e2b5a58be80f9114a12ab2a268
+Tag = 5f750bb4cd42db3038e2c1622b72cea8
+Plaintext = 6d0546d4e95d1cfcb37a8f88a62064f5d95791311511535b
+Ciphertext = 1afb3708f19efe7ffef2d222f4de57090b15110a00b8f453
+
+Cipher = aes-192-ccm
+Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a
+IV = fc9fd876b1edded09f70b18824
+AAD = 07f77f114d7264a122a7e9db4fc8d091334a03
+Tag = 61e77b59ef7eeeae35bb53bb9543b64a
+Plaintext = 05024ce13b9057dd2c509db7dbcbd5585e4e64a1e2e380ff
+Ciphertext = 72fc3d3d2353b55e61d8c01d8935e6a48c0ce49af74a27f7
+
+Cipher = aes-192-ccm
+Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a
+IV = fc9fd876b1edded09f70b18824
+AAD = 899b036138cee77cd28382ba27984d858a6351
+Tag = 44a60fdb473098a11b2176d37b2c4643
+Plaintext = 77b8e735b13b10e45e411ab94c6fe1a9eb89f0a7af40ff1a
+Ciphertext = 004696e9a9f8f26713c947131e91d25539cb709cbae95812
+
+Cipher = aes-192-ccm
+Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a
+IV = fc9fd876b1edded09f70b18824
+AAD = 4b000440a8484a5201cd54aec058919769772e
+Tag = 58d4afc30a7f672ea34e05ec1843d848
+Plaintext = 6b21800ae599a15254bb33f0bb080788fb6e9fa054bfd8b2
+Ciphertext = 1cdff1d6fd5a43d119336e5ae9f63474292c1f9b41167fba
+
+Cipher = aes-192-ccm
+Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a
+IV = fc9fd876b1edded09f70b18824
+AAD = 73a222e681ed1ca47d92a6dd90625d895fbf29
+Tag = 4ef270e0f3b5e3ca0b8440af65c76e85
+Plaintext = bfa9d9af6e1f32b6626a1cd89b1c32513b5b50a18ddab028
+Ciphertext = c857a87376dcd0352fe24172c9e201ade919d09a98731720
+
+Cipher = aes-192-ccm
+Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a
+IV = fc9fd876b1edded09f70b18824
+AAD = 7109a3a36b286059bc1a1abb2767c92f884e3f
+Tag = ffb66991b38a0345fbbff5f2362f87de
+Plaintext = c68b1bc0050e19780ab53efbea175634f70a7245d966966e
+Ciphertext = b1756a1c1dcdfbfb473d6351b8e965c82548f27ecccf3166
+
+Cipher = aes-192-ccm
+Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a
+IV = fc9fd876b1edded09f70b18824
+AAD = cd15973753b94b77bb4b778de8b3b0cabbde85
+Tag = d033a087c44c2e44adbeb333aa9ded10
+Plaintext = 4256f1c9b64390fe2120df9fd38e497c2903c2ca5679ab75
+Ciphertext = 35a88015ae80727d6ca8823581707a80fb4142f143d00c7d
+
+Cipher = aes-192-ccm
+Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a
+IV = fc9fd876b1edded09f70b18824
+AAD = 6e5e0793855f7145e13a5872f563e5ec61cfd2
+Tag = ff9c8713422fe38d5bbf2dedccbffe10
+Plaintext = bb0036b34b0c20094d335a8c74f6b3dea42eeccf4145192e
+Ciphertext = ccfe476f53cfc28a00bb072626088022766c6cf454ecbe26
+
+Cipher = aes-192-ccm
+Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a
+IV = fc9fd876b1edded09f70b18824
+AAD = f844684f5404e7d8eedfa20394b40b4f5d910a
+Tag = e75de56eabcf8e02c1a27705adef2732
+Plaintext = 86afa9cdd743916563ebfd3adbdd56e015ea3a4ebc61cfe2
+Ciphertext = f151d811cf8073e62e63a0908923651cc7a8ba75a9c868ea
+
+Cipher = aes-192-ccm
+Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0
+IV = 8015c0f07a7acd4b1cbdd21b54
+AAD = 093ed26ada5628cfb8cfc1391526b3bcc4af97d9
+Tag = 6ca0e07e04674f21a46df2659a5905fb
+Plaintext = 37ab2a0b7b69942278e21032fc83eba6cdc34f5285a8b711
+Ciphertext = a3a60b422eb070b499cf6da0a404b13a05cedda549c6b93e
+
+Cipher = aes-192-ccm
+Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0
+IV = 8015c0f07a7acd4b1cbdd21b54
+AAD = 7df13c9d2247aa40af7bbe2da98bd366d8b47b43
+Tag = 836597806f5da1d176c745d95c4fa46a
+Plaintext = 93925579b6367ff592ecbd59495fdeccb50f31ea4fa390bc
+Ciphertext = 079f7430e3ef9b6373c1c0cb11d884507d02a31d83cd9e93
+
+Cipher = aes-192-ccm
+Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0
+IV = 8015c0f07a7acd4b1cbdd21b54
+AAD = 7f369bbc99b6f08049eeb43566269a174829d4dd
+Tag = f826dda99111691993027628c70ff6ae
+Plaintext = 8363aef9c7c34e1f8149de46c97d5ac79d38c6ed31ab1d12
+Ciphertext = 176e8fb0921aaa896064a3d491fa005b5535541afdc5133d
+
+Cipher = aes-192-ccm
+Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0
+IV = 8015c0f07a7acd4b1cbdd21b54
+AAD = 04aa8442179f62babad0c006e36af0c21105f27a
+Tag = d074b018143a7ea1b5369b7f80eae20d
+Plaintext = 17281acb525b13653000ab45d86e70106c10a93c99b18f76
+Ciphertext = 83253b820782f7f3d12dd6d780e92a8ca41d3bcb55df8159
+
+Cipher = aes-192-ccm
+Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0
+IV = 8015c0f07a7acd4b1cbdd21b54
+AAD = 997e646014f19a53beab8877ca6022bef23016f1
+Tag = 5db17d3f75214c3cf39858617cfee57a
+Plaintext = 5d48a71557608736eded309027a80349a18e9ce5dee2bc6a
+Ciphertext = c945865c02b963a00cc04d027f2f59d569830e12128cb245
+
+Cipher = aes-192-ccm
+Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0
+IV = 8015c0f07a7acd4b1cbdd21b54
+AAD = 60ffcb23d6b88e485b920af81d1083f6291d06ac
+Tag = 9550998376e61e11a5a69e9f8fe1c329
+Plaintext = 6c9d11cfb64d96bfab61c04a25d9e19294fb7330fb4847c8
+Ciphertext = f8903086e39472294a4cbdd87d5ebb0e5cf6e1c7372649e7
+
+Cipher = aes-192-ccm
+Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0
+IV = 8015c0f07a7acd4b1cbdd21b54
+AAD = d574632658bf456dfbb11c2653602ed0f4dae777
+Tag = a1b0d05a7ebc657c3235479893bf7e5d
+Plaintext = 7d41688c86d5e3bc53966810f2299fdd732e3471fb0a88f9
+Ciphertext = e94c49c5d30c072ab2bb1582aaaec541bb23a686376486d6
+
+Cipher = aes-192-ccm
+Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0
+IV = 8015c0f07a7acd4b1cbdd21b54
+AAD = d896ed60128f4bb0277d3af94c5138cf91697aa9
+Tag = 80c98c8959c158ce209aebcbd554f250
+Plaintext = 8c7ae2c3c503e9072d6e04e44c2ea78fd24994503567a136
+Ciphertext = 1877c38a90da0d91cc43797614a9fd131a4406a7f909af19
+
+Cipher = aes-192-ccm
+Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0
+IV = 8015c0f07a7acd4b1cbdd21b54
+AAD = a350ed58c04473e113b9088b1fb9dad92807f6b6
+Tag = 573175f9105cd16ee384465ebb232200
+Plaintext = 49bc9d3bcf3c22daa8cf55c1b59d4bffddc2412d60518e98
+Ciphertext = ddb1bc729ae5c64c49e22853ed1a116315cfd3daac3f80b7
+
+Cipher = aes-192-ccm
+Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0
+IV = 8015c0f07a7acd4b1cbdd21b54
+AAD = 1db5887001204194e8b5dcee92c8af8fa5f7321f
+Tag = 2b67e993384f2e7229d1838efd040d99
+Plaintext = 25f3788e0d3dd8f5821faa4e45a9d6b3995fd881f927135c
+Ciphertext = b1fe59c758e43c636332d7dc1d2e8c2f51524a7635491d73
+
+Cipher = aes-192-ccm
+Key = aac60835c309d837aacc635931af95702a4784c214283ebb
+IV = 0e20602d4dc38baa1ebf94ded5
+AAD = 796e55fbe7bed46d025599c258964a99574c523f6a
+Tag = 003c0c3b7369e79339433e1754c0937f
+Plaintext = e8610756528f75607b83926597ef515f4b32a8386437e6d4
+Ciphertext = e0a3d5f43e688ce104f4ae1a4fcd85500aa6b8fdbcd1b8d3
+
+Cipher = aes-192-ccm
+Key = aac60835c309d837aacc635931af95702a4784c214283ebb
+IV = 0e20602d4dc38baa1ebf94ded5
+AAD = 5170836711fcb1a350b087907d8a17c7637aa1595b
+Tag = 120a7f18d021833b167bf330c4858239
+Plaintext = c61b0c1845fa9b2e0013b3fa9a8cb4f4fbbc6846f63ed180
+Ciphertext = ced9deba291d62af7f648f8542ae60fbba2878832ed88f87
+
+Cipher = aes-192-ccm
+Key = aac60835c309d837aacc635931af95702a4784c214283ebb
+IV = 0e20602d4dc38baa1ebf94ded5
+AAD = 2a68e3fe746f593c1b97cb637079c3e5ee352c107a
+Tag = ca9698d9a88e892c364e57dd35c2f17a
+Plaintext = 10c654c78a9e3c0628f004b061e28c39a3c23e7250f53615
+Ciphertext = 18048665e679c587578738cfb9c05836e2562eb788136812
+
+Cipher = aes-192-ccm
+Key = aac60835c309d837aacc635931af95702a4784c214283ebb
+IV = 0e20602d4dc38baa1ebf94ded5
+AAD = bf38ca0e89b8f5ccd29387f7f193ab5a967caa715b
+Tag = f3839d6f7e20a2e343f4c4da9eb9be13
+Plaintext = fa3a959fdff853c39f76da626094a1ea6dbc78bd2f091a79
+Ciphertext = f2f8473db31faa42e001e61db8b675e52c286878f7ef447e
+
+Cipher = aes-192-ccm
+Key = aac60835c309d837aacc635931af95702a4784c214283ebb
+IV = 0e20602d4dc38baa1ebf94ded5
+AAD = bee00f2f75a4415ce993d2d14a6d8e01d1d59a48f6
+Tag = 6630bfb7a2a2441e020efdf36274b72f
+Plaintext = 76d12e3c4c5d990bf563c60aa4999e52998d887f97477f6d
+Ciphertext = 7e13fc9e20ba608a8a14fa757cbb4a5dd81998ba4fa1216a
+
+Cipher = aes-192-ccm
+Key = aac60835c309d837aacc635931af95702a4784c214283ebb
+IV = 0e20602d4dc38baa1ebf94ded5
+AAD = d5b614e4e8f72a5d8b1ec2b375da5dac64c2cc30b1
+Tag = 866bcee343ec5aae61f9effa19b99d3b
+Plaintext = 693fae7af84aa397f0b2baaed9b3c7953f75e7424c49b634
+Ciphertext = 61fd7cd894ad5a168fc586d10191139a7ee1f78794afe833
+
+Cipher = aes-192-ccm
+Key = aac60835c309d837aacc635931af95702a4784c214283ebb
+IV = 0e20602d4dc38baa1ebf94ded5
+AAD = 33f11aa36d8ab0fc53486839a576b31ee915dbd769
+Tag = 0331b60eb252f744a06b4a95aa9f4e7c
+Plaintext = 56ce9a09f38127b14dbbdcaa59f363c92a3b9843ad20e2b7
+Ciphertext = 5e0c48ab9f66de3032cce0d581d1b7c66baf888675c6bcb0
+
+Cipher = aes-192-ccm
+Key = aac60835c309d837aacc635931af95702a4784c214283ebb
+IV = 0e20602d4dc38baa1ebf94ded5
+AAD = f40bce1a6817b29b9e8b56f214fcca7dfde17e7ee6
+Tag = 4153778a644cb2469cef3ad125e257bc
+Plaintext = 5cd8986e974d09ede34ba68fd81d6109a64092e7fbbaf87d
+Ciphertext = 541a4accfbaaf06c9c3c9af0003fb506e7d48222235ca67a
+
+Cipher = aes-192-ccm
+Key = aac60835c309d837aacc635931af95702a4784c214283ebb
+IV = 0e20602d4dc38baa1ebf94ded5
+AAD = 53c457d8d4d4ab95ba116c28b82c16743cb09de9fe
+Tag = 7013e1c34dbc5efc7bcd4f8e52797644
+Plaintext = 9c3c610f204d98702dd91ea28e0cc14830b26bb5e2ee0349
+Ciphertext = 94feb3ad4caa61f152ae22dd562e154771267b703a085d4e
+
+Cipher = aes-192-ccm
+Key = aac60835c309d837aacc635931af95702a4784c214283ebb
+IV = 0e20602d4dc38baa1ebf94ded5
+AAD = c7acf1b17609dc336df1006ffac6497777cdfd497c
+Tag = 66aed667c761b7dea44822e30cff671f
+Plaintext = 90c5dd9db0316dac89db18f70491bdf0a06a6a7f72b77d9a
+Ciphertext = 98070f3fdcd6942df6ac2488dcb369ffe1fe7abaaa51239d
+
+Cipher = aes-192-ccm
+Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f
+IV = 0a259148a1d081e0df381ecd0c
+AAD = 61dafc237cb52f83ab773ba8a885462b6f77d4924611
+Tag = 1bb089af0245792c16e6320cf5ffa19e
+Plaintext = 576b069ae2713f53d2924c1fd68f786cb2eec68892f9e1be
+Ciphertext = ce06b3d09b02921f290544032a081a776661294004886728
+
+Cipher = aes-192-ccm
+Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f
+IV = 0a259148a1d081e0df381ecd0c
+AAD = 87e49b8164e7052becfa0c966991637b38df833fc5f7
+Tag = 3cec29bd5df92363d6bb75456f5cd32b
+Plaintext = d7eb0d7dd737805cd3b8dbf451aeea2fa1f6a96eb58cb428
+Ciphertext = 4e86b837ae442d10282fd3e8ad298834757946a623fd32be
+
+Cipher = aes-192-ccm
+Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f
+IV = 0a259148a1d081e0df381ecd0c
+AAD = d302a518d7c625756d3e4c8cc2b1d973a19107c945fc
+Tag = 01ca82cddb78a2fe3904d1d8bf6fe5b2
+Plaintext = 77d8c9e6321314524afd05b7ad599c29f4eedda9e9f0763f
+Ciphertext = eeb57cac4b60b91eb16a0dab51defe32206132617f81f0a9
+
+Cipher = aes-192-ccm
+Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f
+IV = 0a259148a1d081e0df381ecd0c
+AAD = 6566bb616a94bb03df5c26b722bcd38d516285c5f6c1
+Tag = d095ad121f0f76f07b715cad996def52
+Plaintext = abbf28b3ae164051648293d0b94e11f5af8468450005c7c0
+Ciphertext = 32d29df9d765ed1d9f159bcc45c973ee7b0b878d96744156
+
+Cipher = aes-192-ccm
+Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f
+IV = 0a259148a1d081e0df381ecd0c
+AAD = 141be3601e38185a9fa1596d2ee406415c9673af32f5
+Tag = 8529ec8f477462dc2409482c3479756d
+Plaintext = b67d50110f844b36a00d352123012a1123c7c3cba959dc48
+Ciphertext = 2f10e55b76f7e67a5b9a3d3ddf86480af7482c033f285ade
+
+Cipher = aes-192-ccm
+Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f
+IV = 0a259148a1d081e0df381ecd0c
+AAD = a2969243b0955402ab45a430fef2ef9e0c025006732b
+Tag = b14fe8dbb3c361ea61d7b44e689a1c48
+Plaintext = 2a63f7b09b43fee65738e8115bd8419b3ef3e8f86eca707f
+Ciphertext = b30e42fae23053aaacafe00da75f2380ea7c0730f8bbf6e9
+
+Cipher = aes-192-ccm
+Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f
+IV = 0a259148a1d081e0df381ecd0c
+AAD = 87faef55c54250c30232ccaf5efa1ff41b6243b2a5bc
+Tag = 54f0659fae291f943f2f3b33688602cb
+Plaintext = 59dad755af92c29522da4348ab9b3037fe87004f5fa1394a
+Ciphertext = c0b7621fd6e16fd9d94d4b54571c522c2a08ef87c9d0bfdc
+
+Cipher = aes-192-ccm
+Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f
+IV = 0a259148a1d081e0df381ecd0c
+AAD = 5d895fb949344e603ce5de029842b20d2bb614ecbbb8
+Tag = 3af4e3a7a20390a8da264299712a34e3
+Plaintext = 64d8bd3c646f76dc6ce89defd40777fe17316729e22ba90f
+Ciphertext = fdb508761d1cdb90977f95f3288015e5c3be88e1745a2f99
+
+Cipher = aes-192-ccm
+Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f
+IV = 0a259148a1d081e0df381ecd0c
+AAD = 74cc8da150b0bacdefa8943900b4ea047611d96be70a
+Tag = a7f79d2b5a9bde5bd453bc8a03e971d8
+Plaintext = 0c3c9a634a000f00be003846eac7482e303a5bef3a70fe75
+Ciphertext = 95512f293373a24c4597305a16402a35e4b5b427ac0178e3
+
+Cipher = aes-192-ccm
+Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f
+IV = 0a259148a1d081e0df381ecd0c
+AAD = 65f6adbaaa803dbad5ba9cb6d231314d55147cc61399
+Tag = ffccebfb8c833833db40e98a1950fb70
+Plaintext = 712c788928c8a1562bc1f3f0eb1286e15c3405f6a6fa0443
+Ciphertext = e841cdc351bb0c1ad056fbec1795e4fa88bbea3e308b82d5
+
+Cipher = aes-192-ccm
+Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786
+IV = dada5465eb9b7229807a39e557
+AAD = f5629ca0eea589f6cf963d875a7d2efb656983f2dd2231
+Tag = f7ec84dd992fdf98514f845dac8f656e
+Plaintext = 44dd098b1f869d670a8a841900c4bef023a1946a0c278354
+Ciphertext = 6b38ca85450e05e7b9362ed7e6e291a130ff233b5a561cde
+
+Cipher = aes-192-ccm
+Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786
+IV = dada5465eb9b7229807a39e557
+AAD = d43d7753530a7280b76221906dca85d396b6cf05125018
+Tag = 3613ed15d527d9dc58ab6893e723db58
+Plaintext = cea19562328bd1fea889f575db6a28a14b7d06fb9f9c98bb
+Ciphertext = e144566c6803497e1b355fbb3d4c07f05823b1aac9ed0731
+
+Cipher = aes-192-ccm
+Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786
+IV = dada5465eb9b7229807a39e557
+AAD = 75650ce366757618af20205b69af7e5d4e82c398c00101
+Tag = ef8728d1bf3a2d93db3266bafadb7c26
+Plaintext = f0641f595b791edd860977fcf699688587a354e053e9c7fe
+Ciphertext = df81dc5701f1865d35b5dd3210bf47d494fde3b105985874
+
+Cipher = aes-192-ccm
+Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786
+IV = dada5465eb9b7229807a39e557
+AAD = c00f1b8066677c63e898fddfb8a1b482b536963da0628d
+Tag = a5bce94d7564d297fe87730f1a36acf4
+Plaintext = c7486a084f8475e6f5138e8d6e9f42a1de90f05aa88a362d
+Ciphertext = e8ada906150ced6646af244388b96df0cdce470bfefba9a7
+
+Cipher = aes-192-ccm
+Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786
+IV = dada5465eb9b7229807a39e557
+AAD = 5a89ab6b26b2ca78f98a8f8409fe8008b97ba9ef185d41
+Tag = cd971b07fc14c512b8df6dd964b129d0
+Plaintext = 091ef698e16dc43a11d3ea005d5a5cdb7f1bdb5665a6c81e
+Ciphertext = 26fb3596bbe55cbaa26f40cebb7c738a6c456c0733d75794
+
+Cipher = aes-192-ccm
+Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786
+IV = dada5465eb9b7229807a39e557
+AAD = 5d24d80f22afe713c4076c200c1bab36917907fde7b6d3
+Tag = a192b781dc94448d4a0f6a439a716339
+Plaintext = 62f204394b367c4410746001e02dfd171858396568fdd43b
+Ciphertext = 4d17c73711bee4c4a3c8cacf060bd2460b068e343e8c4bb1
+
+Cipher = aes-192-ccm
+Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786
+IV = dada5465eb9b7229807a39e557
+AAD = 4a47a82b999a2a739959f153a091a65c4d7387646da66b
+Tag = cade9533b272e0a3edeba68362b057b4
+Plaintext = ac1cd5ba4997af91dbd74aee7730f9ee92cf8a360ca96a8a
+Ciphertext = 83f916b4131f3711686be0209116d6bf81913d675ad8f500
+
+Cipher = aes-192-ccm
+Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786
+IV = dada5465eb9b7229807a39e557
+AAD = d9fc295082e8f48569eb073ac1b9566246728fc62ccaab
+Tag = 5d68df8ff28345be4d83541a72071059
+Plaintext = d0a249a97b5f1486721a50d4c4ab3f5d674a0e29925d5bf2
+Ciphertext = ff478aa721d78c06c1a6fa1a228d100c7414b978c42cc478
+
+Cipher = aes-192-ccm
+Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786
+IV = dada5465eb9b7229807a39e557
+AAD = 720a9dc3e33ac080775a06f67f4a6591c37d0e101944a0
+Tag = caa7ec8892be6a18458c663665495035
+Plaintext = 77fb98f24172f5d5edadbf466ee910855a71d46090b789ee
+Ciphertext = 581e5bfc1bfa6d555e11158888cf3fd4492f6331c6c61664
+
+Cipher = aes-192-ccm
+Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786
+IV = dada5465eb9b7229807a39e557
+AAD = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903
+Tag = 862fda880e45e891a3a50da7e14344c8
+Plaintext = 77fb98f24172f5d5edadbf466ee910855a71d46090b789ee
+Ciphertext = 581e5bfc1bfa6d555e11158888cf3fd4492f6331c6c61664
+
+Cipher = aes-192-ccm
+Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6
+IV = f97b532259babac5322e9d9a79
+AAD = ad6622279832502839a82348486d42e9b38626e8f06317c4
+Tag = 5623d15b24184481eadc63bb8c878fc4
+Plaintext = d7c837971b973f5f651102bf8d032e7dcd10e306739a0d6c
+Ciphertext = 4709600418f2839841e6d126359f6982bdb53acc7ff20963
+
+Cipher = aes-192-ccm
+Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6
+IV = f97b532259babac5322e9d9a79
+AAD = ad4833aa53218949cfd724814a43889a74a2114bbef4cf37
+Tag = 614c3e546273f0aeef207bd3f4d32fca
+Plaintext = 7d672bccd0fb01ce79320ed61779146aa432038daa13cb41
+Ciphertext = eda67c5fd39ebd095dc5dd4fafe55395d497da47a67bcf4e
+
+Cipher = aes-192-ccm
+Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6
+IV = f97b532259babac5322e9d9a79
+AAD = 54a723826086c7175e8fdc854b62d780de6ac1f90b57dd3a
+Tag = 13c6395ce9aee2e22ac0606beb140185
+Plaintext = 0e1b73df74982f535a5fb08bc13d22515ee10969efe033bb
+Ciphertext = 9eda244c77fd93947ea8631279a165ae2e44d0a3e38837b4
+
+Cipher = aes-192-ccm
+Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6
+IV = f97b532259babac5322e9d9a79
+AAD = bec02d7df4cc3deefdd7e7d3ea82d381c870ad46bc06d64f
+Tag = 61e4f02150bedd86dfa49f52b214239d
+Plaintext = 9a55aff269b180118ff0ea99e851c7474d19d23e641f16a9
+Ciphertext = 0a94f8616ad43cd6ab07390050cd80b83dbc0bf4687712a6
+
+Cipher = aes-192-ccm
+Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6
+IV = f97b532259babac5322e9d9a79
+AAD = 1b8090d712e0ec95a01bc3aeb6f5230c67c355e0ed68043a
+Tag = f0e82b9f04bfc0cc0ba432b5135450c2
+Plaintext = ff19294e8faed8353dbcab0b146e2ef928dd2680833424bd
+Ciphertext = 6fd87edd8ccb64f2194b7892acf269065878ff4a8f5c20b2
+
+Cipher = aes-192-ccm
+Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6
+IV = f97b532259babac5322e9d9a79
+AAD = 5ed0b9f25d07b26717cdcb2507bef9d681ecd9389831ac15
+Tag = 2e64c82b60880c5c7506321a1060a481
+Plaintext = db1eba6ac4a79aa1d97838d263c7c4ffa7d354770e762805
+Ciphertext = 4bdfedf9c7c22666fd8feb4bdb5b8300d7768dbd021e2c0a
+
+Cipher = aes-192-ccm
+Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6
+IV = f97b532259babac5322e9d9a79
+AAD = 55f16fefaf2168aebc61b5e01d9e1f7bfe215eaaef118974
+Tag = 7152f64dc993b36ad9d5d12bb52b1ad5
+Plaintext = 012d45168505ca9fde5aed123875639a207d473b993dc7b8
+Ciphertext = 91ec128586607658faad3e8b80e9246550d89ef19555c3b7
+
+Cipher = aes-192-ccm
+Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6
+IV = f97b532259babac5322e9d9a79
+AAD = 9893bf14fd3a86c418a35c5667e642d5998507e396596c50
+Tag = 3e5c69256b6326ebb7ee6e677d396765
+Plaintext = b205f26d6c8a8d6085ab28d595703cae046f96d82093082b
+Ciphertext = 22c4a5fe6fef31a7a15cfb4c2dec7b5174ca4f122cfb0c24
+
+Cipher = aes-192-ccm
+Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6
+IV = f97b532259babac5322e9d9a79
+AAD = 244b840085bda9576c8424bb05a925a6b09cad2d0528ab8d
+Tag = 2083dac565c7a63908f0022e2867bb68
+Plaintext = 549ba26a299391538b56ce4bd71dbbfd96995836f8915ca5
+Ciphertext = c45af5f92af62d94afa11dd26f81fc02e63c81fcf4f958aa
+
+Cipher = aes-192-ccm
+Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6
+IV = f97b532259babac5322e9d9a79
+AAD = 9e8d492c304cf6ad59102bca0e0b23620338c15fc9ecd1e9
+Tag = 68242fe32958ea32e670ae1b3543974f
+Plaintext = 9e9dbd78a1066800ae33253be6104015158a0187e4f38116
+Ciphertext = 0e5ceaeba263d4c78ac4f6a25e8c07ea652fd84de89b8519
+
+Cipher = aes-192-ccm
+Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc
+IV = be02df3a840322df8d448c600c
+AAD = 69a9dd9ac8be489c3a3f7f070bdaca10699171f66ab3da9351
+Tag = 46c7246bd3130803bf8d703ef5bdf15c
+Plaintext = ba1785a149cb8b69a4e011c11a3ff06f6d7218f525ac81b5
+Ciphertext = 89ab2efefa8406336d9e2245199fbc9454f0ef650b9ed0f4
+
+Cipher = aes-192-ccm
+Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc
+IV = be02df3a840322df8d448c600c
+AAD = 0c39a72f0f38d2713c164b0f870646fc65b9838a322ecfddd0
+Tag = 096a6a4422e582c5d02973952ac80e5f
+Plaintext = 263dc4fb5cd8798ce0f183a816e51fafba167533dde1bf96
+Ciphertext = 15816fa4ef97f4d6298fb02c15455354839482a3f3d3eed7
+
+Cipher = aes-192-ccm
+Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc
+IV = be02df3a840322df8d448c600c
+AAD = 911d9f5c4c34c2f4b69be1e253d43fe729e2ab2622130394b1
+Tag = 5965f6df4332fe7a2cdc4d1b80e28a34
+Plaintext = 7b5da2c283116713f3d80c7907114270964541e03ab80d50
+Ciphertext = 48e1099d305eea493aa63ffd04b10e8bafc7b670148a5c11
+
+Cipher = aes-192-ccm
+Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc
+IV = be02df3a840322df8d448c600c
+AAD = 8a961df9c23f6d5ecdafa94c61164a22f460a1bf7415258d39
+Tag = 18bed174081b2170ffc6ab53b54c9ddb
+Plaintext = 541a2b3ee25022c92fdc6783a6cbde90680ad3dc41868e5f
+Ciphertext = 67a68061511faf93e6a25407a56b926b5188244c6fb4df1e
+
+Cipher = aes-192-ccm
+Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc
+IV = be02df3a840322df8d448c600c
+AAD = cac7a248a4d4e96a9733627e247234995d6aa57e491498118a
+Tag = bac3d3a2b9ef6d4c8715f9a5c6fe8245
+Plaintext = ebb2e893da9f32c363f98bc76fd14eda59e7cc620070f6d3
+Ciphertext = d80e43cc69d0bf99aa87b8436c71022160653bf22e42a792
+
+Cipher = aes-192-ccm
+Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc
+IV = be02df3a840322df8d448c600c
+AAD = 41eacf70d05a6d0cdbdd38f197a52987def8fde37f332eebd9
+Tag = 7f9610c82fe9a7c78e8f1980e886b446
+Plaintext = 199cca0d0e1c70ec405d6816cbddc69f8ada624f2c168891
+Ciphertext = 2a206152bd53fdb689235b92c87d8a64b35895df0224d9d0
+
+Cipher = aes-192-ccm
+Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc
+IV = be02df3a840322df8d448c600c
+AAD = 78b6ed20ed85337c969618bd41917cd85c37e7c35c3a12e25f
+Tag = aab366637ec41d0bf557f578be424a8b
+Plaintext = ca481f557306f9ce386edd0cfde375a550cb5b574be524f7
+Ciphertext = f9f4b40ac0497494f110ee88fe43395e6949acc765d775b6
+
+Cipher = aes-192-ccm
+Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc
+IV = be02df3a840322df8d448c600c
+AAD = 87faef55c54250c30232ccaf5efa1ff41b6243b2a5bc93e7cf
+Tag = e57a5b3ae26469d229425f887ad5a2a1
+Plaintext = 6f1b4ff66d3aec7b0c0d9e202acc52722e15bca0983291e0
+Ciphertext = 5ca7e4a9de756121c573ada4296c1e8917974b30b600c0a1
+
+Cipher = aes-192-ccm
+Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc
+IV = be02df3a840322df8d448c600c
+AAD = 7f19ac3e53a629a2df1cb56d68fde0c80a46be40a996830e2a
+Tag = 6ce4fe492062f74bff4c3c0e9ea849a4
+Plaintext = 7533c88ce55c2243b64b6c5bd01aed4dd6ac8bb9fd333e06
+Ciphertext = 468f63d35613af197f355fdfd3baa1b6ef2e7c29d3016f47
+
+Cipher = aes-192-ccm
+Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc
+IV = be02df3a840322df8d448c600c
+AAD = 0516a69bfd8785ad001367b51e5410b75c11b761be08b9eea5
+Tag = ad47ffc17b871f530f62b9f9aec98509
+Plaintext = 19ea09a9bfd10db2a74e398859d8f4831fa5749767773acf
+Ciphertext = 2a56a2f60c9e80e86e300a0c5a78b8782627830749456b8e
+
+Cipher = aes-192-ccm
+Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6
+IV = 54cbf2889437673b8875a0f567
+AAD = 09fc21ac4a1f43de29621cacf3ad84e055c6b220721af7ce33bb
+Tag = 101a34c777e918e16186fda05a386572
+Plaintext = b4da43ebfe9396b68f4689fba8837c68d0064841c6ddd4a7
+Ciphertext = d40725397229021a18f3481e3a85f70445557bb2a85e4ae8
+
+Cipher = aes-192-ccm
+Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6
+IV = 54cbf2889437673b8875a0f567
+AAD = 10f0c45d06a138a964fb11b2d450620a2977bcd2952afe371cad
+Tag = c1e79234882846d916dabae40b1bd055
+Plaintext = 7b628930d44e22907277db057395601b82b65479fbd59613
+Ciphertext = 1bbfefe258f4b63ce5c21ae0e193eb7717e5678a9556085c
+
+Cipher = aes-192-ccm
+Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6
+IV = 54cbf2889437673b8875a0f567
+AAD = 64dbb170a037b36beed28a2637c87830e2b23f8eea6cd9a7331c
+Tag = e35499e3c09dc384eb41344ee8be3769
+Plaintext = 9db30b669fc5d25f05e0dc708d597da6ddce2dacc85ae99c
+Ciphertext = fd6e6db4137f46f392551d951f5ff6ca489d1e5fa6d977d3
+
+Cipher = aes-192-ccm
+Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6
+IV = 54cbf2889437673b8875a0f567
+AAD = c47de6608546a02c6eebd6628c9123f6936c0154d3df52a367e5
+Tag = d605189608ce40b237dde7bed6fde487
+Plaintext = 62036cbed3666d85624d3dc9c1f437454b9ab5c03ce0de92
+Ciphertext = 02de0a6c5fdcf929f5f8fc2c53f2bc29dec98633526340dd
+
+Cipher = aes-192-ccm
+Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6
+IV = 54cbf2889437673b8875a0f567
+AAD = bab7e36098d59d3a31d7784d549aebfc6938bbd0612c85c0edb7
+Tag = c31f69c847440be20bd08cfef330002f
+Plaintext = 5c9bc739f6b6fe4214f3c6aad307d1f208892d79de010e37
+Ciphertext = 3c46a1eb7a0c6aee8346074f41015a9e9dda1e8ab0829078
+
+Cipher = aes-192-ccm
+Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6
+IV = 54cbf2889437673b8875a0f567
+AAD = 8a9716135fa38c250e249f6712f7cb3ad9210d7278b53d599df9
+Tag = ca83622b127fa50fc9637998c0ddd44d
+Plaintext = 0df109298083d3896214b84ff6edb11e9cfdbd88f5702839
+Ciphertext = 6d2c6ffb0c394725f5a179aa64eb3a7209ae8e7b9bf3b676
+
+Cipher = aes-192-ccm
+Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6
+IV = 54cbf2889437673b8875a0f567
+AAD = 2d52447d1244d2ebc28650e7b05654bad35b3a68eedc7f851530
+Tag = 81e738b9e4b0dc7b7a39eb7d03adc64a
+Plaintext = 518f651f6d82f670b63767ad8476ed8fc24df12a45110611
+Ciphertext = 315203cde13862dc2182a648167066e3571ec2d92b92985e
+
+Cipher = aes-192-ccm
+Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6
+IV = 54cbf2889437673b8875a0f567
+AAD = 3cba0fd2bb16ae1d997cbe659a2dd101885c97f2322b0172b5d6
+Tag = d298c05b1d2e597f44f8621ecd11ed16
+Plaintext = e91a694bea2d351928b6098660d49f382c087f6777de159c
+Ciphertext = 89c70f996697a1b5bf03c863f2d21454b95b4c94195d8bd3
+
+Cipher = aes-192-ccm
+Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6
+IV = 54cbf2889437673b8875a0f567
+AAD = c7f93152016bba584dadc6002ec493a46305726068886d2340da
+Tag = 5fd5221fceecbf0dc7211a1aec06793a
+Plaintext = 2d14792ed349a878b2b879e7fa5f438a50e36947ce827e73
+Ciphertext = 4dc91ffc5ff33cd4250db8026859c8e6c5b05ab4a001e03c
+
+Cipher = aes-192-ccm
+Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6
+IV = 54cbf2889437673b8875a0f567
+AAD = 799cac048eaccded37ca6a70dd89595e1ee04606212da5572679
+Tag = 5c25f00b862b49fcfe8447949f39787c
+Plaintext = 315b8d95938d304015bbc94ea03c21f6dc25c90f991ba680
+Ciphertext = 5186eb471f37a4ec820e08ab323aaa9a4976fafcf79838cf
+
+Cipher = aes-192-ccm
+Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d
+IV = 16d345606a315ad2406abbcb43
+AAD = c37fdf7449fd7e943595d75e977089c623be0a3926e63fdbbfdf4a
+Tag = a461f44dac1112ae3f9c65671a931d3e
+Plaintext = 0f960a89a7e806f8709047cb7a2e7c4211ad724692c88a05
+Ciphertext = 3907880d25f910eab12dd14e704d1b33ea7c453634d54da2
+
+Cipher = aes-192-ccm
+Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d
+IV = 16d345606a315ad2406abbcb43
+AAD = 85f647d940a6d1acb6b7851912f807063515631eaabaa019dcfb99
+Tag = ed15db6e142ee07b59eb5b0ad3a59194
+Plaintext = ab40a4baa39b0e568bf2193fecbc36b84c76bb50523b2912
+Ciphertext = 9dd1263e218a18444a4f8fbae6df51c9b7a78c20f426eeb5
+
+Cipher = aes-192-ccm
+Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d
+IV = 16d345606a315ad2406abbcb43
+AAD = 79ae14843b2e7ccf0fd85218184f7844fbb35e934476841b056b3a
+Tag = 203f11f66b74366caeca8dbded2bf17a
+Plaintext = b74c06d9077c568762796d5be14f3563e7205a6e9bc65bcb
+Ciphertext = 81dd845d856d4095a3c4fbdeeb2c52121cf16d1e3ddb9c6c
+
+Cipher = aes-192-ccm
+Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d
+IV = 16d345606a315ad2406abbcb43
+AAD = 542d86fd7ff591f97e6926a090553538bc3b8a6bcd45f2e29c7d9f
+Tag = ed925fb9a4cf6b6bf17f72ab044653d1
+Plaintext = f2179beb5635a6d8a8340acea0ffcf4428e5de1306a8c12b
+Ciphertext = c486196fd424b0ca69899c4baa9ca835d334e963a0b5068c
+
+Cipher = aes-192-ccm
+Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d
+IV = 16d345606a315ad2406abbcb43
+AAD = 4392c3043287dd096b43b4a37ea7f5dc1d298b0623ccbf4fd650a4
+Tag = d1f677deca1bfda83c1b9223aaaedbfc
+Plaintext = d1a9e4593bc3d02c407e84a1736e587c1819c72195a07d57
+Ciphertext = e73866ddb9d2c63e81c31224790d3f0de3c8f05133bdbaf0
+
+Cipher = aes-192-ccm
+Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d
+IV = 16d345606a315ad2406abbcb43
+AAD = 966954582e78e99ba68d6ffaf794b55a82325834ec4f373b2bd227
+Tag = 12937871932a7ca3e1e27a90a7f73694
+Plaintext = 15b94910853a8f23dfb8b31c0262b8461f777075cc0937e9
+Ciphertext = 2328cb94072b99311e0525990801df37e4a647056a14f04e
+
+Cipher = aes-192-ccm
+Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d
+IV = 16d345606a315ad2406abbcb43
+AAD = b7aca715dcc402565cb711b001f21e8e95ec54c4afab2e2dcc8a2f
+Tag = a0464ff4ddeccbd523a5ed3b32337f7c
+Plaintext = fd1681cc306518bf77766f55226afac3eb21e31ed897075c
+Ciphertext = cb870348b2740eadb6cbf9d028099db210f0d46e7e8ac0fb
+
+Cipher = aes-192-ccm
+Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d
+IV = 16d345606a315ad2406abbcb43
+AAD = 290a36f7daeeeafca4431446b396dbec0bea0a1f6f081418811656
+Tag = 2f68ed5e44a71c5ba8bade07b7bf5495
+Plaintext = 0804fa48fc76f98bb021e3501bef8875b64a3b508adf8594
+Ciphertext = 3e9578cc7e67ef99719c75d5118cef044d9b0c202cc24233
+
+Cipher = aes-192-ccm
+Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d
+IV = 16d345606a315ad2406abbcb43
+AAD = f0739a855422310a21ed863376bce9d75dc7c687b9b535cb7a05cc
+Tag = 3b5dc1fbe32743e257b7c1c9d624adc8
+Plaintext = 4f5c6d80a3955f12f4d2594e02a045c42fabb11d90817fff
+Ciphertext = 79cdef0421844900356fcfcb08c322b5d47a866d369cb858
+
+Cipher = aes-192-ccm
+Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d
+IV = 16d345606a315ad2406abbcb43
+AAD = ffac0edb0b62977bb5040e4128a48deaf711f5e6a84d8f677341f3
+Tag = e53b654de1976294897cae0476ac6248
+Plaintext = 5c29c458212d010a0d9c5a547aba1138eb4ce94742fef01e
+Ciphertext = 6ab846dca33c1718cc21ccd170d97649109dde37e4e337b9
+
+Cipher = aes-192-ccm
+Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3
+IV = b8d517b033754058128d13d11a
+AAD = 511c6924fa96db716f6b053b7a48aebdc1504145a56cd02d6be2590d
+Tag = 82c560fede4741e2fd3b54b3a48f3e38
+Plaintext = 0c0663dd69ccbffbbd0c8c2e9473d0354451ae7a20fa3695
+Ciphertext = 19f2745df5007619c79c84d174e4521b942776478a0601d9
+
+Cipher = aes-192-ccm
+Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3
+IV = b8d517b033754058128d13d11a
+AAD = d9ccd93317441e9d6ccc358f31e7e2ccef8c921b23d742993eff9d53
+Tag = ee82d927a2aa678e792acdeb615409f8
+Plaintext = 34a882834172924d39d2df5d637d9d273a99a9222971701c
+Ciphertext = 215c9503ddbe5baf4342d7a283ea1f09eaef711f838d4750
+
+Cipher = aes-192-ccm
+Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3
+IV = b8d517b033754058128d13d11a
+AAD = c268d65f7a7b30d3d198b2045fc8d1db7adda56604fa567d8855d1a5
+Tag = 7a48226389d24ed3ec3da2da1a9bdf7c
+Plaintext = 5b7450b73d68de079e92bba56c7860f11126b8fdedd3334d
+Ciphertext = 4e804737a1a417e5e402b35a8cefe2dfc15060c0472f0401
+
+Cipher = aes-192-ccm
+Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3
+IV = b8d517b033754058128d13d11a
+AAD = 4c2b6815156f0643b4573825e28b9f2a668a4976e3342884f48bc310
+Tag = 16fe6bd83993ccbdd50e1ca061f4845f
+Plaintext = 140c6933248f052e05bd4a36aec185ee86730108cc2989b6
+Ciphertext = 01f87eb3b843cccc7f2d42c94e5607c05605d93566d5befa
+
+Cipher = aes-192-ccm
+Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3
+IV = b8d517b033754058128d13d11a
+AAD = f11c873354b3c0cff2c8f8010e9e364582b9c05c62efdefbdcc2e1c0
+Tag = 577c5893cb3896400012e48f5b190b73
+Plaintext = 2a083de317380d94dd991349a7b8761c7c98013b1b0227e0
+Ciphertext = 3ffc2a638bf4c476a7091bb6472ff432aceed906b1fe10ac
+
+Cipher = aes-192-ccm
+Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3
+IV = b8d517b033754058128d13d11a
+AAD = d0a056754098d7f7ef2f639d61ea3d2b9cc936c48a1b2c5a9e96d169
+Tag = 80c80101fdfe6dc4cfce080bf921582e
+Plaintext = 02769283d5a06c363c2cc66c09b1ac954134e3ec7df773f2
+Ciphertext = 17828503496ca5d446bcce93e9262ebb91423bd1d70b44be
+
+Cipher = aes-192-ccm
+Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3
+IV = b8d517b033754058128d13d11a
+AAD = 56de0e55653b9a04a3ded71c31f8807c3c8dd96bc82892e4acccef30
+Tag = 122dfc20e3088dcd33b6706a0c1fdfa8
+Plaintext = 4890404bc5b24822b4cf7a2fe28abc52fbefb919ae0629ec
+Ciphertext = 5d6457cb597e81c0ce5f72d0021d3e7c2b99612404fa1ea0
+
+Cipher = aes-192-ccm
+Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3
+IV = b8d517b033754058128d13d11a
+AAD = 794a86f5b20d344ad86fd5523d08f1864737be57731440c29aa6b425
+Tag = 28f0a78ce798448529afe26eec875aa6
+Plaintext = 161f8501f59338f72026815c77cad6d8d581859192cd5644
+Ciphertext = 03eb9281695ff1155ab689a3975d54f605f75dac38316108
+
+Cipher = aes-192-ccm
+Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3
+IV = b8d517b033754058128d13d11a
+AAD = b1eafc03ea2fa3e9e3842a09a225e83055de8a1f412badd6fc9ead12
+Tag = a48856a266c0d404474316f418f8f4e4
+Plaintext = b3f38aedbf08dd7ead9d402c5aaa1ec9279c7e4bfd4a2967
+Ciphertext = a6079d6d23c4149cd70d48d3ba3d9ce7f7eaa67657b61e2b
+
+Cipher = aes-192-ccm
+Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3
+IV = b8d517b033754058128d13d11a
+AAD = 8fec99f1be0e69267620c0b934bf984d60c1437f74c6ac19610fe188
+Tag = 6412292d8015285efaa6f1154580eb57
+Plaintext = 5c09e2a6a055fe9c21e06e5519cf56b8e2e7fb44094e79f9
+Ciphertext = 49fdf5263c99377e5b7066aaf958d49632912379a3b24eb5
+
+Cipher = aes-192-ccm
+Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c
+IV = c0049382cdd8646756d4e6bff5
+AAD = c95a86d52088a8b0107cc5b437a8938b2c9e74e46e2e03bb9bceecdbe3
+Tag = 811020480e834f6fe55900a162a4e61a
+Plaintext = 5bbe9c1fb2563e3e82999fe097b28da4dc6ff2e020f3b4f3
+Ciphertext = 6d5401db42b5c48b79203b6ad82806d7460ac4c82ad0809b
+
+Cipher = aes-192-ccm
+Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c
+IV = c0049382cdd8646756d4e6bff5
+AAD = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193dfa755a5943
+Tag = ba9827513c7f1de970d316b6f81c109d
+Plaintext = 8a85a9b32a323c6af156a3fa2f1448b6387cc3660aa8a0f4
+Ciphertext = bc6f3477dad1c6df0aef0770608ec3c5a219f54e008b949c
+
+Cipher = aes-192-ccm
+Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c
+IV = c0049382cdd8646756d4e6bff5
+AAD = c834096e059ea73ddc90b0c982f9a3a31bfc6b1b81a03f9d41c9c741e7
+Tag = c9d79dd3255a8323f8229ac1c6d76ae4
+Plaintext = 1e02c13104937fe084b18eba1ea8951dcc5e75b692937dea
+Ciphertext = 28e85cf5f47085557f082a3051321e6e563b439e98b04982
+
+Cipher = aes-192-ccm
+Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c
+IV = c0049382cdd8646756d4e6bff5
+AAD = 9249022bdead3d86ef5bd03acf053132d08663ba1f2426e19c126b22e9
+Tag = 425dc81f93257ae8399fc2d48b4a7685
+Plaintext = 3225570fb15ae13a13c71e364ae9a9fef03d1c9a7fa5dfa0
+Ciphertext = 04cfcacb41b91b8fe87ebabc0573228d6a582ab27586ebc8
+
+Cipher = aes-192-ccm
+Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c
+IV = c0049382cdd8646756d4e6bff5
+AAD = 3c3a92c4ece49fb9f84243d7c1bc91f595fce118305a758c83985c34b4
+Tag = b595003c58e69600c2a3b9ec45c0e15a
+Plaintext = fa0a458174537ddba25708b8d0c22d5517d57b122517b0c9
+Ciphertext = cce0d84584b0876e59eeac329f58a6268db04d3a2f3484a1
+
+Cipher = aes-192-ccm
+Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c
+IV = c0049382cdd8646756d4e6bff5
+AAD = b49b845ccf76acf508f9db8543c73375d530d91f3b0e4ed70decfd2c2d
+Tag = 0da009261c43c6640303696655e2981f
+Plaintext = b7fbdaeaa3ee1d0bbf5ec47898b069ec4ba6a140a3e83996
+Ciphertext = 8111472e530de7be44e760f2d72ae29fd1c39768a9cb0dfe
+
+Cipher = aes-192-ccm
+Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c
+IV = c0049382cdd8646756d4e6bff5
+AAD = 3aabdf589eeb1709bb3d60b08bc71eaa3ffeba4e2903a5dbd8339aae85
+Tag = dfdcdbd4ad711c493d3176f032a02af0
+Plaintext = 9aea86b9fbd9bd4504ee2e25054942b33d3cdbd84215db7e
+Ciphertext = ac001b7d0b3a47f0ff578aaf4ad3c9c0a759edf04836ef16
+
+Cipher = aes-192-ccm
+Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c
+IV = c0049382cdd8646756d4e6bff5
+AAD = 6a79879cd62bd1dbf9609897d2ebf2dc4dda43cc15fcb241aaa0deb4b3
+Tag = fd59b45c05873c670f5f8bb47732d59f
+Plaintext = 3a861638ccd6591e51e2a525be59447e4a28bab32e36a5f3
+Ciphertext = 0c6c8bfc3c35a3abaa5b01aff1c3cf0dd04d8c9b2415919b
+
+Cipher = aes-192-ccm
+Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c
+IV = c0049382cdd8646756d4e6bff5
+AAD = c5b6ca474eb251817ae4d2f47c0632c381e222aae3b6f585a0dcae120a
+Tag = 1572a24bc00b40a6b4b172b3648142e7
+Plaintext = c7da4e9ba6e5758be726e6e227d7bddb0332228f7e3ecb6b
+Ciphertext = f130d35f56068f3e1c9f4268684d36a8995714a7741dff03
+
+Cipher = aes-192-ccm
+Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c
+IV = c0049382cdd8646756d4e6bff5
+AAD = 64a96d191f1d5f95f5fed6259e33e7206adc07b0279e16cb453a9c6438
+Tag = 828bc33396179ac39ce0027a1d62e0fe
+Plaintext = 2b9347d3e195152dce22afdb92acd179eb484872285704c3
+Ciphertext = 1d79da171176ef98359b0b51dd365a0a712d7e5a227430ab
+
+Cipher = aes-192-ccm
+Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a
+IV = 63f00b2488809fdc49ca5f05d5
+AAD = a08763ca936abdeece06467bef8c3c47c3a473636a039d4db540c867d3e3
+Tag = 95aa6b99d3f894d3790c2aa2dae1ba2c
+Plaintext = 1fada8f4c7daea0d1c370184c169485b80a278708ed41451
+Ciphertext = 680dd22f16a1290bde42c9792dfa997aed24d5bd2265b6e0
+
+Cipher = aes-192-ccm
+Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a
+IV = 63f00b2488809fdc49ca5f05d5
+AAD = 19508a6c83b992c660a1a28597e07c729ea2ed39401aadbf9d7586b5720d
+Tag = 2d9d77109f4597e9c4c8cf7023dc5f3b
+Plaintext = e9f1f2cf0b8d563e2d20f39f9f464a808b136dba364a6446
+Ciphertext = 9e518814daf69538ef553b6273d59ba1e695c0779afbc6f7
+
+Cipher = aes-192-ccm
+Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a
+IV = 63f00b2488809fdc49ca5f05d5
+AAD = e5929c3b5d68a4c9fcf1168ea35bf8c0bf3043cb1ed54ff301578b3b7266
+Tag = b2544ecc3c7d5accd22ac075e7b44d5a
+Plaintext = 07a74c3b874849ecbf013713b80a84337c90b690cea0b837
+Ciphertext = 700736e056338aea7d74ffee5499551211161b5d62111a86
+
+Cipher = aes-192-ccm
+Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a
+IV = 63f00b2488809fdc49ca5f05d5
+AAD = caa5cc5d0d87680eafc29429bac55c9e33167d485789c7c124b5c57a1ba8
+Tag = f1a8a1db25de0fab7cabb11a18497584
+Plaintext = 4255f2cf90f0d15e9bead4be799165c57f7225980713d609
+Ciphertext = 35f58814418b1258599f1c439502b4e412f48855aba274b8
+
+Cipher = aes-192-ccm
+Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a
+IV = 63f00b2488809fdc49ca5f05d5
+AAD = f61cf7ae23a66777bd3fabc3d542feed2b00c6d4f46a772fda11b5214551
+Tag = 5a9718ed0257a50e38de86154054fc3a
+Plaintext = 70b1e2e4cf260b108f5a52d0d8234838ffd6ffe7b4acd78d
+Ciphertext = 0711983f1e5dc8164d2f9a2d34b099199250522a181d753c
+
+Cipher = aes-192-ccm
+Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a
+IV = 63f00b2488809fdc49ca5f05d5
+AAD = 85f647d940a6d1acb6b7851912f807063515631eaabaa019dcfb993e86f4
+Tag = 550d1acca34c28ba8a3b890bb0542b23
+Plaintext = af4be10b3a59ea99dadc75fbe5651f6f7630852bb556aa39
+Ciphertext = d8eb9bd0eb22299f18a9bd0609f6ce4e1bb628e619e70888
+
+Cipher = aes-192-ccm
+Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a
+IV = 63f00b2488809fdc49ca5f05d5
+AAD = 296cd04c4d9ab493def7aeb6841a45309e777028868efe45166235c56b2d
+Tag = a268dc1596a7855639c63fa76ad8479b
+Plaintext = 72d5663727592f1bfc9c65be83f4d3508126fecc4e34ae72
+Ciphertext = 05751cecf622ec1d3ee9ad436f670271eca05301e2850cc3
+
+Cipher = aes-192-ccm
+Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a
+IV = 63f00b2488809fdc49ca5f05d5
+AAD = f380ca0a26a94adcf2c1ce26d226d3bf520268c72412e58a71acd9a66d00
+Tag = e3416c75fc28924a21cc123e62a7894c
+Plaintext = 3e2ccce03c10ce1527ef8e002adb265edba5779fbd4fcaf6
+Ciphertext = 498cb63bed6b0d13e59a46fdc648f77fb623da5211fe6847
+
+Cipher = aes-192-ccm
+Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a
+IV = 63f00b2488809fdc49ca5f05d5
+AAD = 8825532a31680cb3b5bdb027802d2d8718755e135367e0c8c88e21288311
+Tag = ff1a47f23d08485951aab18b393584ef
+Plaintext = a18dfe7f2d7bbaf316366f67445170afcbe18e2a1de1e947
+Ciphertext = d62d84a4fc0079f5d443a79aa8c2a18ea66723e7b1504bf6
+
+Cipher = aes-192-ccm
+Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a
+IV = 63f00b2488809fdc49ca5f05d5
+AAD = f768375589b687fb17c56673af4263626da69eb991007d94d4f5a163fd05
+Tag = 7d024456bcb69a4f77008773a3f48805
+Plaintext = 17ca72a440c944fefd6c08ecc3a8ecb54d96b9cad9d2aa4c
+Ciphertext = 606a087f91b287f83f19c0112f3b3d9420101407756308fd
+
+Cipher = aes-192-ccm
+Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7
+IV = 7a1649896f3e030c18f0205599
+AAD = c5f1a26351e53e6509c8bbbed03c42c23ad81c65fccec7ffa1cb494c7f1fc4
+Tag = a260b5ea3b047020b73b5bafa17e5084
+Plaintext = 0b6de49b530703affc94010c2b793ddc6de0c44d48037ff2
+Ciphertext = 56b02fea595cc24e798691ae905be3d466ca68ca744005db
+
+Cipher = aes-192-ccm
+Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7
+IV = 7a1649896f3e030c18f0205599
+AAD = 89899be18b4c389afa769b11ecd22e9fad8f38fd614ea5f8eb7a066c0ed8d8
+Tag = 5e4bd97b9dc83134867c00c2acea0aaf
+Plaintext = 2f1821aa57e5278ffd33c17d46615b77363149dbc9847041
+Ciphertext = 72c5eadb5dbee66e782151dffd43857f3d1be55cf5c70a68
+
+Cipher = aes-192-ccm
+Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7
+IV = 7a1649896f3e030c18f0205599
+AAD = d43b841f174335f1347834590b0984a2cb35f7a00a0ee993157d2d4f848748
+Tag = 55202ba34bb9918fe915776de65947c0
+Plaintext = c7da4e95cb38342c6d5bf0c381d5a192adc3bfc1cda3a1d7
+Ciphertext = 9a0785e4c163f5cde84960613af77f9aa6e91346f1e0dbfe
+
+Cipher = aes-192-ccm
+Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7
+IV = 7a1649896f3e030c18f0205599
+AAD = c1093518efd80245e3c42371f220b21f2034e6738fe02ef43e828190f01aef
+Tag = 2fdf807b5a6880f2d4c36d558b40eb90
+Plaintext = 414a70aba5a219dbd41cdc46b84812b28cc4f7399218004d
+Ciphertext = 1c97bbdaaff9d83a510e4ce4036accba87ee5bbeae5b7a64
+
+Cipher = aes-192-ccm
+Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7
+IV = 7a1649896f3e030c18f0205599
+AAD = 90f627d5b939625bc76fe1bd4643b39edc11d3dc7f4bfe16e61bc26c3d49d8
+Tag = 5a9307ca4239380a45bb7f87e41c4cf7
+Plaintext = 58b260d3f645a35bad7a3842440bc03608248bd46e725e60
+Ciphertext = 056faba2fc1e62ba2868a8e0ff291e3e030e275352312449
+
+Cipher = aes-192-ccm
+Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7
+IV = 7a1649896f3e030c18f0205599
+AAD = 2f360a4715074e942244ab7f9b6db127b0442df9af2efa2e78db1a94312905
+Tag = f3aeadff9dd60468aef2a8e2c56dda7d
+Plaintext = 5505caa97218957e90247fde60275bdafce4b16bcb36c263
+Ciphertext = 08d801d87843549f1536ef7cdb0585d2f7ce1decf775b84a
+
+Cipher = aes-192-ccm
+Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7
+IV = 7a1649896f3e030c18f0205599
+AAD = 7db564811f14bc5c2098d5635655c3671fbd8288ea14944af925eaec653408
+Tag = 8335f2e31a0468b830c5009cd02dbd5f
+Plaintext = b93e40f556a786e39126b8834a6ecacd2dc9f0f528bab135
+Ciphertext = e4e38b845cfc470214342821f14c14c526e35c7214f9cb1c
+
+Cipher = aes-192-ccm
+Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7
+IV = 7a1649896f3e030c18f0205599
+AAD = 36be91854d3d02a5d62503bb9047ef4354280510f7576c4272fd757240b621
+Tag = 5d772a599e91504e022b9dbfb124b71a
+Plaintext = 543a070fdb3a855dd7d83fbc5f983671ad9e905f307148e4
+Ciphertext = 09e7cc7ed16144bc52caaf1ee4bae879a6b43cd80c3232cd
+
+Cipher = aes-192-ccm
+Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7
+IV = 7a1649896f3e030c18f0205599
+AAD = 6aa6ea668df60b0db85592d0a819c9df9e1099916272aafb8813ccc2f2dd96
+Tag = 9846cd12430f7adc910d1f0c51d80636
+Plaintext = 86ef67572cb339c6706eb5909b96848aba5246a196972a1e
+Ciphertext = db32ac2626e8f827f57c253220b45a82b178ea26aad45037
+
+Cipher = aes-192-ccm
+Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7
+IV = 7a1649896f3e030c18f0205599
+AAD = 3a64414c3588d7c26871d7d054ac6c8420d4917e3baad4a343685916265321
+Tag = d9ee65ac3a8fae1b00a4f1dfe2577293
+Plaintext = cecef24b62676a5623bedae8087b9b05d7e22b41a14dd2d5
+Ciphertext = 9313393a683cabb7a6ac4a4ab359450ddcc887c69d0ea8fc
+
+Cipher = aes-192-ccm
+Key = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9
+IV = 809343e986f6ff47f54d4cac22
+AAD = d70aef3532bdc5293a3ebb11589ac1f801c9f93ea0d656e1d04068facf9f768b
+Tag = 966e91a19617bb748f3495aa433585bb
+Plaintext = 718f061e8b972a3adcf465d66c5b28e8661f080127f6722f
+Ciphertext = bad3b0e6772e9c4c9c631c095e259d99692292932efb72b8
+
+Cipher = aes-192-ccm
+Key = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9
+IV = 809343e986f6ff47f54d4cac22
+AAD = 1ee0eb409398bc252175cb460ef9a2da4c9beab2ef6d8206e4fcce74df785246
+Tag = c8f70aa565a12ca3545e68110968040f
+Plaintext = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca
+Ciphertext = b9ba78455331962a0ee33b5956c2b80fbb55e0b52b1ab75d
+
+Cipher = aes-192-ccm
+Key = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9
+IV = 809343e986f6ff47f54d4cac22
+AAD = 3820db475c7cb04a0f74d8e449f026ec951fa59667738698b0ed5c8cb09a8c96
+Tag = daf38076c810e14a7843444a02f010e0
+Plaintext = d959dd38a458039e2400d21d27b9a2faee8fe23683330cb5
+Ciphertext = 12056bc058e1b5e86497abc215c7178be1b278a48a3e0c22
+
+Cipher = aes-192-ccm
+Key = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9
+IV = 809343e986f6ff47f54d4cac22
+AAD = f555216840a1f40b411d44128e567617e2694caf16216ea74c604a8d6ec01e72
+Tag = 594aebf9b8318877bdec2900a22df858
+Plaintext = 337f12e8ebc0544b82fcdd3c4a0dab0e5e75c9f433a27d66
+Ciphertext = f823a4101779e23dc26ba4e378731e7f514853663aaf7df1
+
+Cipher = aes-192-ccm
+Key = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9
+IV = 809343e986f6ff47f54d4cac22
+AAD = 2311a6fe1feeda3a1f16310d635496c0dd662024f0b0f1de79325e030cb850e5
+Tag = 1d9872d1c10a6594b5c349b84f710d64
+Plaintext = 463c65fa7becae5605af80d1feca59075ee88c0abfc72cb4
+Ciphertext = 8d60d302875518204538f90eccb4ec7651d51698b6ca2c23
+
+Cipher = aes-192-ccm
+Key = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9
+IV = 809343e986f6ff47f54d4cac22
+AAD = b2c633e3181ae5fe7828707ed5b70e0460088a84465eadeecdbcfa0e9ff19bb1
+Tag = a9db7c4bcaf6087e158c1a5d4eb1c2cc
+Plaintext = 23c1732959c4bf85bc707e45cc964b6227acd3a8fc73e675
+Ciphertext = e89dc5d1a57d09f3fce7079afee8fe132891493af57ee6e2
+
+Cipher = aes-192-ccm
+Key = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9
+IV = 809343e986f6ff47f54d4cac22
+AAD = 791f23252094b9b99fafe7fac1d8ff3ba09305c476041e75afb245ac438b4069
+Tag = 5e1c87d9e1c1f3b7d30fdc2f0ccac783
+Plaintext = 02f60f967e7fbcf957313619882407ea8a03fc943062296c
+Ciphertext = c9aab96e82c60a8f17a64fc6ba5ab29b853e6606396f29fb
+
+Cipher = aes-192-ccm
+Key = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9
+IV = 809343e986f6ff47f54d4cac22
+AAD = 22197f9ad14591e7a6d5f8b18c969a553de9a85309757fa5d319cc505c24f438
+Tag = 1514b449a741e07f9287f7e9090fa54b
+Plaintext = 6c1aa088d1a6086d0e72636744a6840c80ab8223409c61b7
+Ciphertext = a74616702d1fbe1b4ee51ab876d8317d8f9618b149916120
+
+Cipher = aes-192-ccm
+Key = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9
+IV = 809343e986f6ff47f54d4cac22
+AAD = 0bb18f7280a30767cd769cb5ffd3edd1c18914b92d1b2192e27ac88f57135616
+Tag = 2c889b610157e16e9f31558c669298a7
+Plaintext = 57275bc3b4d63b9b01b0b0760235c9785d45761cace23f1e
+Ciphertext = 9c7bed3b486f8ded4127c9a9304b7c095278ec8ea5ef3f89
+
+
+Title = NIST CCM 256 Variable Associated Data Tests
+
+Cipher = aes-256-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389
+IV = 72a60f345a1978fb40f28a2fa4
+AAD =
+Tag = 935753e601b79db4ae730b6ae3500731
+Plaintext = 30d56ff2a25b83fee791110fcaea48e41db7c7f098a81000
+Ciphertext = 55f068c0bbba8b598013dd1841fd740fda2902322148ab5e
+
+Cipher = aes-256-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389
+IV = 72a60f345a1978fb40f28a2fa4
+AAD =
+Tag = 003abc6a4b020625adc8b6cd7bafbd42
+Plaintext = e44b4307234281209bd41f89dbe2cc3fbf68e14df2f7fce4
+Ciphertext = 816e44353aa38987fc56d39e50f5f0d478f6248f4b1747ba
+
+Cipher = aes-256-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389
+IV = 72a60f345a1978fb40f28a2fa4
+AAD =
+Tag = e7cfa7a208a8b3e6b6377236045df17d
+Plaintext = 8db7a73856bcb4007346bb3e00096f69e75e97c0bb960f3b
+Ciphertext = e892a00a4f5dbca714c477298b1e538220c052020276b465
+
+Cipher = aes-256-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389
+IV = 72a60f345a1978fb40f28a2fa4
+AAD =
+Tag = 81b39a0c55822e32042b4f8981021090
+Plaintext = 48f3ceda4fd390a7eb38f7f5bcd14310af6b5a557e676d44
+Ciphertext = 2dd6c9e8563298008cba3be237c67ffb68f59f97c787d61a
+
+Cipher = aes-256-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389
+IV = 72a60f345a1978fb40f28a2fa4
+AAD =
+Tag = 091117e2ad77db510d902038743b5a98
+Plaintext = 7cdb2c9b167b3ae811289acf7dc1814bbe241f553447699f
+Ciphertext = 19fe2ba90f9a324f76aa56d8f6d6bda079bada978da7d2c1
+
+Cipher = aes-256-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389
+IV = 72a60f345a1978fb40f28a2fa4
+AAD =
+Tag = ac7379b8e51592b98e4874f4592278a8
+Plaintext = 41eacf70d05a6d0cdbdd38f197a52987def8fde37f332eeb
+Ciphertext = 24cfc842c9bb65abbc5ff4e61cb2156c19663821c6d395b5
+
+Cipher = aes-256-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389
+IV = 72a60f345a1978fb40f28a2fa4
+AAD =
+Tag = d08c1c902c4c2f078452dd6943b85028
+Plaintext = bde9e3eb9f0c57302c9185b1cb912ef76d88f2f9c3b51e9a
+Ciphertext = d8cce4d986ed5f974b1349a64086121caa16373b7a55a5c4
+
+Cipher = aes-256-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389
+IV = 72a60f345a1978fb40f28a2fa4
+AAD =
+Tag = 32fefb87445f1ca42811899acc0cdf68
+Plaintext = 6f9ccc033c6bfbdfad4719ad033c927e2175727a9a021dc6
+Ciphertext = 0ab9cb31258af378cac5d5ba882bae95e6ebb7b823e2a698
+
+Cipher = aes-256-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389
+IV = 72a60f345a1978fb40f28a2fa4
+AAD =
+Tag = 81d605a1019c8e9778b8928b4636053e
+Plaintext = cc67bc3b7afd625b2610226d3b30e111e6aa47a3254f711a
+Ciphertext = a942bb09631c6afc4192ee7ab027ddfa213482619cafca44
+
+Cipher = aes-256-ccm
+Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389
+IV = 72a60f345a1978fb40f28a2fa4
+AAD =
+Tag = 96a82e8411e5b04426dc608298c6408d
+Plaintext = a10c81725f49ab9075fbf4d96be030a2d881d8501b115d61
+Ciphertext = c429864046a8a337127938cee0f70c491f1f1d92a2f1e63f
+
+Cipher = aes-256-ccm
+Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b
+IV = 26ceaf6e3b28190a17c4f0c378
+AAD = 9e
+Tag = a462ff2dd8ba44a381e1f6edab12b5a9
+Plaintext = 1b5cc6b1651dec4bbbf5130343852e971c7ff1774100d9be
+Ciphertext = 789bce069a725a96c484e64a9e54dcb7a7c268c85df47815
+
+Cipher = aes-256-ccm
+Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b
+IV = 26ceaf6e3b28190a17c4f0c378
+AAD = 4e
+Tag = 6b0789c5866b7e3312ad992e228d6d20
+Plaintext = e7ab98901c0cb1d7d76e125d8ac8e86edf6f469fa937bc10
+Ciphertext = 846c9027e363070aa81fe71457191a4e64d2df20b5c31dbb
+
+Cipher = aes-256-ccm
+Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b
+IV = 26ceaf6e3b28190a17c4f0c378
+AAD = cc
+Tag = 39b1b1a480fdd268c1c75b131cde798b
+Plaintext = 53bc7e3648d0b389b887b065e9e8f79685beb2eb36e2eb95
+Ciphertext = 307b7681b7bf0554c7f6452c343905b63e032b542a164a3e
+
+Cipher = aes-256-ccm
+Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b
+IV = 26ceaf6e3b28190a17c4f0c378
+AAD = 45
+Tag = 32060fea35c3e9528fd18994fae9fce8
+Plaintext = 6d7262476da95db63b322c5193ea05030923c3cbf0f8e8b1
+Ciphertext = 0eb56af092c6eb6b4443d9184e3bf723b29e5a74ec0c491a
+
+Cipher = aes-256-ccm
+Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b
+IV = 26ceaf6e3b28190a17c4f0c378
+AAD = 2c
+Tag = b4e0a604ab30a764e8c98a9cafbca8d4
+Plaintext = 8246bf7b81b287411777df7ecb53a1795e54b150ff3dd584
+Ciphertext = e181b7cc7edd319c68062a3716825359e5e928efe3c9742f
+
+Cipher = aes-256-ccm
+Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b
+IV = 26ceaf6e3b28190a17c4f0c378
+AAD = a9
+Tag = 7ca72f1acf6dfd078b6f4eb82fa01e9b
+Plaintext = 2596ca8772bc69b50bcbf33088c6efbab614b691ed836f92
+Ciphertext = 4651c2308dd3df6874ba067955171d9a0da92f2ef177ce39
+
+Cipher = aes-256-ccm
+Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b
+IV = 26ceaf6e3b28190a17c4f0c378
+AAD = 85
+Tag = 2a85c9252ee62612dc29cffa7289b2ca
+Plaintext = 703065d701f4fcadee20d64300b3082c0c76490eb2dc4ba7
+Ciphertext = 13f76d60fe9b4a709151230add62fa0cb7cbd0b1ae28ea0c
+
+Cipher = aes-256-ccm
+Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b
+IV = 26ceaf6e3b28190a17c4f0c378
+AAD = dc
+Tag = 9fbdac729413152c089d3939e30b8602
+Plaintext = a1aeda4b4cb8dd2943675181561bac48ba07e8de5b327837
+Ciphertext = c269d2fcb3d76bf43c16a4c88bca5e6801ba716147c6d99c
+
+Cipher = aes-256-ccm
+Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b
+IV = 26ceaf6e3b28190a17c4f0c378
+AAD = ce
+Tag = f86266c273f8184e901b50c04845b8ab
+Plaintext = aa17341f4cead054d41c171dd34c459f7052da225c6c365d
+Ciphertext = c9d03ca8b3856689ab6de2540e9db7bfcbef439d409897f6
+
+Cipher = aes-256-ccm
+Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b
+IV = 26ceaf6e3b28190a17c4f0c378
+AAD = a6
+Tag = ddd02d5c9ae2bbac47a7a076edb1d207
+Plaintext = 448cdd9cbbf863eb666fda36b825f3798827da3c1349611f
+Ciphertext = 274bd52b4497d536191e2f7f65f40159339a43830fbdc0b4
+
+Cipher = aes-256-ccm
+Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3
+IV = c1ad812bf2bbb2cdaee4636ee7
+AAD = c0c3
+Tag = 06ec97f23bd6ea97834f92f7263c3195
+Plaintext = f4d7978fad36223623ccb5bb18a7373cba8a6e3b1c921259
+Ciphertext = bea778540a90033b2c0d087e3cc447711ea25f7eea968555
+
+Cipher = aes-256-ccm
+Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3
+IV = c1ad812bf2bbb2cdaee4636ee7
+AAD = 34b9
+Tag = f3230df0b52b5cb7ac907dcadcb662ca
+Plaintext = f6c043c70136585d012ae0df6f42b25584e374649d0116c5
+Ciphertext = bcb0ac1ca69079500eeb5d1a4b21c21820cb45216b0581c9
+
+Cipher = aes-256-ccm
+Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3
+IV = c1ad812bf2bbb2cdaee4636ee7
+AAD = d4ab
+Tag = a99c3165ce83102891ef3885088ed6eb
+Plaintext = dec0c896b04490816409da1783478ef2510231d0a28c5b39
+Ciphertext = 94b0274d17e2b18c6bc867d2a724febff52a00955488cc35
+
+Cipher = aes-256-ccm
+Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3
+IV = c1ad812bf2bbb2cdaee4636ee7
+AAD = 2a3a
+Tag = c9d8078607994ae5dff0de6526fb53d1
+Plaintext = cbfd94fc31785d30214271dab2264134805fee6e52aa0b5c
+Ciphertext = 818d7b2796de7c3d2e83cc1f964531792477df2ba4ae9c50
+
+Cipher = aes-256-ccm
+Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3
+IV = c1ad812bf2bbb2cdaee4636ee7
+AAD = 4eb1
+Tag = 7e84da7d2564533e7ad55390ec3a6ff9
+Plaintext = 134d2d9726400d09dd3521326f96fbef993ddc0c40887700
+Ciphertext = 593dc24c81e62c04d2f49cf74bf58ba23d15ed49b68ce00c
+
+Cipher = aes-256-ccm
+Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3
+IV = c1ad812bf2bbb2cdaee4636ee7
+AAD = 0a79
+Tag = 520849295a56191367a696999ffef8e9
+Plaintext = 1ccdcf789d42caba80d7893feaf26d3853fbcaf7d964df0b
+Ciphertext = 56bd20a33ae4ebb78f1634face911d75f7d3fbb22f604807
+
+Cipher = aes-256-ccm
+Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3
+IV = c1ad812bf2bbb2cdaee4636ee7
+AAD = 865f
+Tag = bc4aceed1a10309b6402b9e9420b33a3
+Plaintext = 4042dbe148db3e6dc542b25d57a5787af535d38e8c34c71b
+Ciphertext = 0a32343aef7d1f60ca830f9873c60837511de2cb7a305017
+
+Cipher = aes-256-ccm
+Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3
+IV = c1ad812bf2bbb2cdaee4636ee7
+AAD = f4ae
+Tag = 76c180d2e299ccf0b8781ba6de8a72ce
+Plaintext = 85b6894fec36294aa934cdc3523fd95c90ad56cbd18545dd
+Ciphertext = cfc666944b900847a6f57006765ca9113485678e2781d2d1
+
+Cipher = aes-256-ccm
+Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3
+IV = c1ad812bf2bbb2cdaee4636ee7
+AAD = 10bf
+Tag = 98d91c68d94873a5d6557611a5402a0a
+Plaintext = 0f27f4fc8538a676a763b3e5db845a1bfb20d5fab340dee3
+Ciphertext = 45571b27229e877ba8a20e20ffe72a565f08e4bf454449ef
+
+Cipher = aes-256-ccm
+Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3
+IV = c1ad812bf2bbb2cdaee4636ee7
+AAD = b92e
+Tag = 5321cedf1122354636e130acbd69718b
+Plaintext = 1b5ec0cb03810a12fc6a0a1ff565afb001405d2a45a1f18a
+Ciphertext = 512e2f10a4272b1ff3abb7dad106dffda5686c6fb3a56686
+
+Cipher = aes-256-ccm
+Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac
+IV = 2247dc7e2674e9e0a63fe70613
+AAD = 4dc2f4
+Tag = f59626ad5cdac2e4d4cb07b538a1fd8f
+Plaintext = edba7d6312144e90ec9eaace7576045a46e553dcb8ee5a98
+Ciphertext = 44b9ea727c847336fd739ad11f4b906b292edb810462f06e
+
+Cipher = aes-256-ccm
+Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac
+IV = 2247dc7e2674e9e0a63fe70613
+AAD = 2f3bf0
+Tag = ed0d53402253453e494ad350994ca77a
+Plaintext = 52a9626f5279c11e17e96f5dc5e1c1f58c1e913020d8499b
+Ciphertext = fbaaf57e3ce9fcb806045f42afdc55c4e3d5196d9c54e36d
+
+Cipher = aes-256-ccm
+Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac
+IV = 2247dc7e2674e9e0a63fe70613
+AAD = 95d2cf
+Tag = 96dbc3bff865a1d94b164df23d708e8e
+Plaintext = 87b6447d97a74d0b315031078aa06fffc7b9f246bfa5f147
+Ciphertext = 2eb5d36cf93770ad20bd0118e09dfbcea8727a1b03295bb1
+
+Cipher = aes-256-ccm
+Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac
+IV = 2247dc7e2674e9e0a63fe70613
+AAD = 0caba9
+Tag = 791b4469fe50d45f8efb81217cd68580
+Plaintext = 1852848046706f2e274ba381a2bee1422df4f61d93219af7
+Ciphertext = b151139128e0528836a6939ec8837573423f7e402fad3001
+
+Cipher = aes-256-ccm
+Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac
+IV = 2247dc7e2674e9e0a63fe70613
+AAD = f8d459
+Tag = 587106da25012f92f01cc2db8d11ac29
+Plaintext = 99aac82fa66a15e4f76b76cf4590150999d5cf8468df7f42
+Ciphertext = 30a95f3ec8fa2842e68646d02fad8138f61e47d9d453d5b4
+
+Cipher = aes-256-ccm
+Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac
+IV = 2247dc7e2674e9e0a63fe70613
+AAD = e883dd
+Tag = 64148536847290e4fdda7966fe6d5e3b
+Plaintext = 4e2f0f91990b855a00d27fbb2e8db7184cd82909de361b52
+Ciphertext = e72c9880f79bb8fc113f4fa444b023292313a15462bab1a4
+
+Cipher = aes-256-ccm
+Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac
+IV = 2247dc7e2674e9e0a63fe70613
+AAD = e45da4
+Tag = cc4cb33472825363940e2b26424b7802
+Plaintext = e558be3fd246170b294d18ffa708842242681890baf8bed9
+Ciphertext = 4c5b292ebcd62aad38a028e0cd3510132da390cd0674142f
+
+Cipher = aes-256-ccm
+Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac
+IV = 2247dc7e2674e9e0a63fe70613
+AAD = 3b6fc8
+Tag = a99dd8dbe89b3ecf663eda1b0f92be7f
+Plaintext = f8b284c2d851289275973fcd807fac5d8e5e3b6a75ba2ace
+Ciphertext = 51b113d3b6c11534647a0fd2ea42386ce195b337c9368038
+
+Cipher = aes-256-ccm
+Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac
+IV = 2247dc7e2674e9e0a63fe70613
+AAD = 043d68
+Tag = dc4894c8fa0a1e1aa760acf9360042f5
+Plaintext = 8edf1eb90f0ad33be8a7c6446899e06addc10b3badc4ea25
+Ciphertext = 27dc89a8619aee9df94af65b02a4745bb20a8366114840d3
+
+Cipher = aes-256-ccm
+Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac
+IV = 2247dc7e2674e9e0a63fe70613
+AAD = e89257
+Tag = cdad1590fd8bf2d7ea919e60d0316566
+Plaintext = 8fe9a6bd82462c97f436d382d1ff971c95406b1a6c847d81
+Ciphertext = 26ea31acecd61131e5dbe39dbbc2032dfa8be347d008d777
+
+Cipher = aes-256-ccm
+Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29
+IV = fdb1fa230ae0b172ff98fc7496
+AAD = 270981af
+Tag = c76fc350e585277e373e9119bf9595cb
+Plaintext = 0b92adbb251dc29a67f0bb97f8e7160862b6c4e843d07fd9
+Ciphertext = 274e2faea3271ea6fa0494c1951f115b5491a893056c3ee4
+
+Cipher = aes-256-ccm
+Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29
+IV = fdb1fa230ae0b172ff98fc7496
+AAD = 633f3efa
+Tag = 0fa7e55dc54e80488a05ee7f1fc96e9d
+Plaintext = 1f88dfd4f5c52c22b1db47f9f4fb6e2f8bcd78d593061369
+Ciphertext = 33545dc173fff01e2c2f68af9903697cbdea14aed5ba5254
+
+Cipher = aes-256-ccm
+Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29
+IV = fdb1fa230ae0b172ff98fc7496
+AAD = aad86fb5
+Tag = 18151c17d9e3f97244000a3b2d3c2f95
+Plaintext = b2b4cb5e90ebf4bd265093b7f5efd4d62dc60e29737aa496
+Ciphertext = 9e68494b16d12881bba4bce19817d3851be1625235c6e5ab
+
+Cipher = aes-256-ccm
+Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29
+IV = fdb1fa230ae0b172ff98fc7496
+AAD = ed42941a
+Tag = 62d521c4b5c7a6f2c5ac65f2fd15b066
+Plaintext = f312b47d05f8eb5a29943b41347cb1983c75cb7a458a3868
+Ciphertext = dfce366883c23766b46014175984b6cb0a52a70103367955
+
+Cipher = aes-256-ccm
+Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29
+IV = fdb1fa230ae0b172ff98fc7496
+AAD = e5b085d8
+Tag = e491a31218f688744098851672a09a64
+Plaintext = e9fb86938ea7f04cc230296859e7c96fcc352f968c9473e4
+Ciphertext = c5270486089d2c705fc4063e341fce3cfa1243edca2832d9
+
+Cipher = aes-256-ccm
+Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29
+IV = fdb1fa230ae0b172ff98fc7496
+AAD = 3776f37f
+Tag = 0ece28347d7ebf8291d7eb66b7651b4e
+Plaintext = 8af6b7540f997954812e38dbd99ccfaedd5c69963c353a4e
+Ciphertext = a62a354189a3a5681cda178db464c8fdeb7b05ed7a897b73
+
+Cipher = aes-256-ccm
+Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29
+IV = fdb1fa230ae0b172ff98fc7496
+AAD = 4eb08c9e
+Tag = cbd25fb40480d15c039878b5d2f25afb
+Plaintext = b90cfd9dd58e320d98510483b1d939bdb5f3b81666ecee59
+Ciphertext = 95d07f8853b4ee3105a52bd5dc213eee83d4d46d2050af64
+
+Cipher = aes-256-ccm
+Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29
+IV = fdb1fa230ae0b172ff98fc7496
+AAD = c7f93152
+Tag = fbfd98c8567b78d4b9c3a49a4641908e
+Plaintext = 02caabc6ed0641681e7148c10cf3159fe35e44013252071e
+Ciphertext = 2e1629d36b3c9d5483856797610b12ccd579287a74ee4623
+
+Cipher = aes-256-ccm
+Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29
+IV = fdb1fa230ae0b172ff98fc7496
+AAD = 57957630
+Tag = 655c1abcb3ed1a175f12721a407c5d00
+Plaintext = 2f29882fdf1418d04f0b9d44272995a56973c4369c687a99
+Ciphertext = 03f50a3a592ec4ecd2ffb2124ad192f65f54a84ddad43ba4
+
+Cipher = aes-256-ccm
+Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29
+IV = fdb1fa230ae0b172ff98fc7496
+AAD = 19da955d
+Tag = 90621a5e5683df421a0dc52341485d1b
+Plaintext = 4e427130be9e94639320529ec135715e65da1117b5ba3c76
+Ciphertext = 629ef32538a4485f0ed47dc8accd760d53fd7d6cf3067d4b
+
+Cipher = aes-256-ccm
+Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd
+IV = 693cbb46bc8366086ec7cd7776
+AAD = 3ba11282d6
+Tag = fe0667bcc5806b225224b04ade8b21c1
+Plaintext = d822f84b023f12ea9e3ce16b904278e4aaab5e11c2c23f3f
+Ciphertext = 9f91fd2f6472e33b02b1eabb9d6655729d44c44dad6b3883
+
+Cipher = aes-256-ccm
+Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd
+IV = 693cbb46bc8366086ec7cd7776
+AAD = 3f3a4718ea
+Tag = a6750fffa5a487540ce65770cd836e99
+Plaintext = af87b347b59e37a424004a00907dcbcf6a554e6782a9be12
+Ciphertext = e834b623d3d3c675b88d41d09d59e6595dbad43bed00b9ae
+
+Cipher = aes-256-ccm
+Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd
+IV = 693cbb46bc8366086ec7cd7776
+AAD = ff79ca8965
+Tag = e7cfafe32bd71ea9813607c5df446c9d
+Plaintext = 82b7cd168b6a82cb2d837f41ceda0c27adc5f5b28030454b
+Ciphertext = c504c872ed27731ab10e7491c3fe21b19a2a6feeef9942f7
+
+Cipher = aes-256-ccm
+Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd
+IV = 693cbb46bc8366086ec7cd7776
+AAD = 0021be18ed
+Tag = 76716fe674c33ad3b9d3e54cc86bfccf
+Plaintext = 1c1a0f144df76781e7c85ab178ed9b1ce8c6dc3f15c59149
+Ciphertext = 5ba90a702bba96507b45516175c9b68adf2946637a6c96f5
+
+Cipher = aes-256-ccm
+Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd
+IV = 693cbb46bc8366086ec7cd7776
+AAD = 9ae7996547
+Tag = ab55dbee34f1bab555bbb196095fb5fd
+Plaintext = d9bb71ad90152d5c1af358c8501fa89ebd4b17bf4ff43841
+Ciphertext = 9e0874c9f658dc8d867e53185d3b85088aa48de3205d3ffd
+
+Cipher = aes-256-ccm
+Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd
+IV = 693cbb46bc8366086ec7cd7776
+AAD = fa292d1958
+Tag = 76a4e9e759d5bb79c187a157099e3d12
+Plaintext = fc7d028a1aa05c74b7ffe333ba6f676913b0f9f1ffa050b8
+Ciphertext = bbce07ee7cedada52b72e8e3b74b4aff245f63ad90095704
+
+Cipher = aes-256-ccm
+Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd
+IV = 693cbb46bc8366086ec7cd7776
+AAD = 88800df7b6
+Tag = 9f0f3699c9743ad6c9f09dc00ea10487
+Plaintext = c9ea772e61742a6706da3ab3e81df14b31506ae58b063ece
+Ciphertext = 8e59724a0739dbb69a573163e539dcdd06bff0b9e4af3972
+
+Cipher = aes-256-ccm
+Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd
+IV = 693cbb46bc8366086ec7cd7776
+AAD = 715041afd4
+Tag = 560d78cba6d9f50e9c2677a710f92155
+Plaintext = 70d2b8d64121ceccf1961444e8d33b7b7f998aeb58d3d270
+Ciphertext = 3761bdb2276c3f1d6d1b1f94e5f716ed487610b7377ad5cc
+
+Cipher = aes-256-ccm
+Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd
+IV = 693cbb46bc8366086ec7cd7776
+AAD = 14682301a9
+Tag = 95ffb6e29172a283d47e4478e2e1f7c4
+Plaintext = 1013946815001a2c08acca4196e0d6668ffbb3883cf111e7
+Ciphertext = 57a0910c734debfd9421c1919bc4fbf0b81429d45358165b
+
+Cipher = aes-256-ccm
+Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd
+IV = 693cbb46bc8366086ec7cd7776
+AAD = e44c3c21c1
+Tag = ccf233caf0bad9f68f71d78ee58512ec
+Plaintext = f40dc834067bd163e0004d0ec5dd4b96e2a1ea31ea431c98
+Ciphertext = b3becd50603620b27c8d46dec8f96600d54e706d85ea1b24
+
+Cipher = aes-256-ccm
+Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8
+IV = c45b165477e8bfa9ca3a1cd3ca
+AAD = 4759557e9bab
+Tag = a88179e0d32f4928eff13b4ce2873338
+Plaintext = e758796d7db73bccb1697c42df691ac57974b40ca9186a43
+Ciphertext = 93ad58bd5f4f77ac4f92b0ae16c62489e4074c7f152e2ed8
+
+Cipher = aes-256-ccm
+Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8
+IV = c45b165477e8bfa9ca3a1cd3ca
+AAD = 2ea07d393a0a
+Tag = b7d812c4d69f1f53ee9158382e56625b
+Plaintext = ce60ddbe40b70bd55a9147036ad079dec1558ef4c2c625b3
+Ciphertext = ba95fc6e624f47b5a46a8befa37f47925c2676877ef06128
+
+Cipher = aes-256-ccm
+Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8
+IV = c45b165477e8bfa9ca3a1cd3ca
+AAD = aa6667faedc1
+Tag = 26fdbed62b228db008a1b14bd7942e12
+Plaintext = 89eb3056770a6157f06921bc153834447c4b6d862d10d185
+Ciphertext = fd1e118655f22d370e92ed50dc970a08e13895f59126951e
+
+Cipher = aes-256-ccm
+Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8
+IV = c45b165477e8bfa9ca3a1cd3ca
+AAD = 9e2127d92311
+Tag = 124e1eb78de01b8af83b684baf3e43ad
+Plaintext = 132f3e19e12f462a7463226b716c41a05a59c76f0e1a2f72
+Ciphertext = 67da1fc9c3d70a4a8a98ee87b8c37fecc72a3f1cb22c6be9
+
+Cipher = aes-256-ccm
+Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8
+IV = c45b165477e8bfa9ca3a1cd3ca
+AAD = 2f191bc9cff6
+Tag = cb0f79736d1a810d06a776094f9fb67f
+Plaintext = b8611cbb9a3667b9458ca57eb636eb1dc580e7dbb5701692
+Ciphertext = cc943d6bb8ce2bd9bb7769927f99d55158f31fa809465209
+
+Cipher = aes-256-ccm
+Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8
+IV = c45b165477e8bfa9ca3a1cd3ca
+AAD = ad739d5f4736
+Tag = bfba2348f629471c232c9ff7e5f6f85a
+Plaintext = 112f89ccbdadc2433008d3ede2290f9ce81e5c736abf42a8
+Ciphertext = 65daa81c9f558e23cef31f012b8631d0756da400d6890633
+
+Cipher = aes-256-ccm
+Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8
+IV = c45b165477e8bfa9ca3a1cd3ca
+AAD = 01acc909b7d3
+Tag = c0f694d03ffed043787343827ea2603f
+Plaintext = d47f2ff745de39a9055ad002de6334971fde480bef268b33
+Ciphertext = a08a0e27672675c9fba11cee17cc0adb82adb0785310cfa8
+
+Cipher = aes-256-ccm
+Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8
+IV = c45b165477e8bfa9ca3a1cd3ca
+AAD = ce003c836a6f
+Tag = 279b553998a6fee0a86e177a448573a4
+Plaintext = 13be365884b8a91a284ca24f70011e48794b51be275153b9
+Ciphertext = 674b1788a640e57ad6b76ea3b9ae2004e438a9cd9b671722
+
+Cipher = aes-256-ccm
+Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8
+IV = c45b165477e8bfa9ca3a1cd3ca
+AAD = 6a759a4efd00
+Tag = 4eeb434cca3ea719827417e94d6ed564
+Plaintext = d5c87c649579da3f632ba95cb0a07c924095e4bdd4e0376e
+Ciphertext = a13d5db4b781965f9dd065b0790f42dedde61cce68d673f5
+
+Cipher = aes-256-ccm
+Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8
+IV = c45b165477e8bfa9ca3a1cd3ca
+AAD = 02b84a26c773
+Tag = a74b5e4e2edb91fbbe722bfaf1500db4
+Plaintext = b7bc1580c68fd5d06c1bf75c31dad7a3e26d636d7eee20b9
+Ciphertext = c3493450e47799b092e03bb0f875e9ef7f1e9b1ec2d86422
+
+Cipher = aes-256-ccm
+Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548
+IV = 6333bde218b784ccd8370492f7
+AAD = 0b1fabdf2a4107
+Tag = 6d5a6e4b1fbee15d35939c721004502e
+Plaintext = bc9ca92a9c9919e39095d3e53fb148694620ae61227e0069
+Ciphertext = 45811b0c8f754bf03950e520cd4afc81c2e3eb8a11f4fd38
+
+Cipher = aes-256-ccm
+Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548
+IV = 6333bde218b784ccd8370492f7
+AAD = 2fc7f5c0ce052f
+Tag = 24a68f98716190fb55f743a8bf62a085
+Plaintext = f25a4ca20bbf4969bed6b93c1c77e3d7415f60fe3784216b
+Ciphertext = 0b47fe8418531b7a17138ff9ee8c573fc59c2515040edc3a
+
+Cipher = aes-256-ccm
+Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548
+IV = 6333bde218b784ccd8370492f7
+AAD = 8a74412da3034b
+Tag = 23afef7b4955d7d1e8f1abef9933bf9f
+Plaintext = 3237bf953989d17c65a0fafd2bb1e32c237f98f55389e8f8
+Ciphertext = cb2a0db32a65836fcc65cc38d94a57c4a7bcdd1e600315a9
+
+Cipher = aes-256-ccm
+Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548
+IV = 6333bde218b784ccd8370492f7
+AAD = 7139f3c1d6cc36
+Tag = 8e824c62632dff5cbc103d3060fbd174
+Plaintext = 55d86dc0423cfc2616ef996a3316e776707f8d25c985884a
+Ciphertext = acc5dfe651d0ae35bf2aafafc1ed539ef4bcc8cefa0f751b
+
+Cipher = aes-256-ccm
+Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548
+IV = 6333bde218b784ccd8370492f7
+AAD = af7a380f079aa1
+Tag = 80202d518ca871c9544f4a8c55fd8d20
+Plaintext = ac48398adb10292314973946f261ec39397442ca09b98dd8
+Ciphertext = 55558bacc8fc7b30bd520f83009a58d1bdb707213a337089
+
+Cipher = aes-256-ccm
+Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548
+IV = 6333bde218b784ccd8370492f7
+AAD = e602abe8f72964
+Tag = 4b33ea6e4344033f74f513d1e41b82ae
+Plaintext = 2fb78654e4395df8c37f260d74def234a3a4e3d2b1fe8614
+Ciphertext = d6aa3472f7d50feb6aba10c8862546dc2767a63982747b45
+
+Cipher = aes-256-ccm
+Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548
+IV = 6333bde218b784ccd8370492f7
+AAD = 82741c5fd6e1df
+Tag = 73ccf18c7ea7dce79d0be1204c593234
+Plaintext = d488bdda400932de56a9f105f0e74ee79c2ed869faaadc31
+Ciphertext = 2d950ffc53e560cdff6cc7c0021cfa0f18ed9d82c9202160
+
+Cipher = aes-256-ccm
+Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548
+IV = 6333bde218b784ccd8370492f7
+AAD = 78f0cc22535402
+Tag = b81b8af57b85093778690266e20e2fbb
+Plaintext = b22aba8d3e9f4b4bf006e26062de15daf94597731a600912
+Ciphertext = 4b3708ab2d73195859c3d4a59025a1327d86d29829eaf443
+
+Cipher = aes-256-ccm
+Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548
+IV = 6333bde218b784ccd8370492f7
+AAD = 18e468139dd16f
+Tag = 9b94a857e7a0423ef6c9cbebde1f9c40
+Plaintext = bd864f7b8efd6ed2b068f425482d449bf53a203ea88e1ca1
+Ciphertext = 449bfd5d9d113cc119adc2e0bad6f07371f965d59b04e1f0
+
+Cipher = aes-256-ccm
+Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548
+IV = 6333bde218b784ccd8370492f7
+AAD = a6dab47c0fbfe1
+Tag = 64718820065a739fbd3ba560a416895c
+Plaintext = 47d9d18b6addc5f88986f0457b666faae59aba4fa3a02abb
+Ciphertext = bec463ad793197eb2043c680899ddb426159ffa4902ad7ea
+
+Cipher = aes-256-ccm
+Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce
+IV = 23b205bd6ff8ed0bab0c98999c
+AAD = a6601111cd92c943
+Tag = f2a9047e37cc0be1fab0006af8db8dc4
+Plaintext = 49fd5cbe4aff89dc3b8718f9ce545d612cbbebb289ecbf42
+Ciphertext = 3cfc6211e359ae322802fc9566f377b0dfe17d1dfe0878eb
+
+Cipher = aes-256-ccm
+Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce
+IV = 23b205bd6ff8ed0bab0c98999c
+AAD = 96f0b7cd7439721d
+Tag = 106a430b04938e97f2e4cda81108ad3e
+Plaintext = 94a95e945f660d1571b4d7d22709b000b45ff98b2129a4ae
+Ciphertext = e1a8603bf6c02afb623133be8fae9ad147056f2456cd6307
+
+Cipher = aes-256-ccm
+Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce
+IV = 23b205bd6ff8ed0bab0c98999c
+AAD = 2ee135dc2ddd9501
+Tag = b2ab219c6c4952d52505cd9f904b0e04
+Plaintext = aeed3aea01755c912213c8c276a2b75dad24f888a611efa3
+Ciphertext = dbec0445a8d37b7f31962caede059d8c5e7e6e27d1f5280a
+
+Cipher = aes-256-ccm
+Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce
+IV = 23b205bd6ff8ed0bab0c98999c
+AAD = 10c361934fd6ff77
+Tag = fc1f7b2fe314faea28ab0dae349feb9c
+Plaintext = be1fcebea4c22a1d71e08047b028d7f4ccab0a6b8085d344
+Ciphertext = cb1ef0110d640df36265642b188ffd253ff19cc4f76114ed
+
+Cipher = aes-256-ccm
+Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce
+IV = 23b205bd6ff8ed0bab0c98999c
+AAD = 3f6c8a69917f7776
+Tag = 08e529d64e786a29661cccddc0366f3b
+Plaintext = 87680ac26fe1511e0f1f745aa4c2a5b9f6c0117dcf08feaa
+Ciphertext = f269346dc64776f01c9a90360c658f68059a87d2b8ec3903
+
+Cipher = aes-256-ccm
+Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce
+IV = 23b205bd6ff8ed0bab0c98999c
+AAD = 0f7a1426ff3b5ee1
+Tag = 97c6510b85dfd097f3eac276aff00ba2
+Plaintext = 9e004b072a27b085e59ca201c157c7d3c906a2c3b455c56e
+Ciphertext = eb0175a88381976bf619466d69f0ed023a5c346cc3b102c7
+
+Cipher = aes-256-ccm
+Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce
+IV = 23b205bd6ff8ed0bab0c98999c
+AAD = faa5bed84dcf168e
+Tag = 8e522b6f13f99ecb553b6de845940907
+Plaintext = a1bf47b15cd66e43daff420edf014a14b11994b97ada4030
+Ciphertext = d4be791ef57049adc97aa66277a660c5424302160d3e8799
+
+Cipher = aes-256-ccm
+Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce
+IV = 23b205bd6ff8ed0bab0c98999c
+AAD = 2851dae3cb3fcb1c
+Tag = 7a9ca39566189ee96c86462bfea78af5
+Plaintext = 2d15734871adc63ff32d7002ab40c4a235a4d5fad223953f
+Ciphertext = 58144de7d80be1d1e0a8946e03e7ee73c6fe4355a5c75296
+
+Cipher = aes-256-ccm
+Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce
+IV = 23b205bd6ff8ed0bab0c98999c
+AAD = 35a29c1bcbe2182f
+Tag = a613b5fbbe73a2df6c630a00ff4b1b92
+Plaintext = 5a84c4fdd47510fb7aebc0f79d7b625ccd0a96575740b8e6
+Ciphertext = 2f85fa527dd33715696e249b35dc488d3e5000f820a47f4f
+
+Cipher = aes-256-ccm
+Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce
+IV = 23b205bd6ff8ed0bab0c98999c
+AAD = 45820ae66c3e8e77
+Tag = d19feb067e9f6225376da21b4899d296
+Plaintext = 2052a94e1392dc1db0e89be19ea8f7379ee4cb607a914c89
+Ciphertext = 555397e1ba34fbf3a36d7f8d360fdde66dbe5dcf0d758b20
+
+Cipher = aes-256-ccm
+Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a
+IV = 10022cddb323e88b3c08f95a0f
+AAD = 82b8c736037ce2f2e8
+Tag = 0de1a3f7fc5d06cc30f06075f5504ed7
+Plaintext = 7c0889854658d3408c5d8043aad2f4ae4a89449a36f8a3b8
+Ciphertext = 1044250f58857c69f72b5d3454d43949e5c02b3822970b28
+
+Cipher = aes-256-ccm
+Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a
+IV = 10022cddb323e88b3c08f95a0f
+AAD = 8f2777ec4930f7e349
+Tag = 835840df6fa96f5c972ac09d94148cbc
+Plaintext = bd845561f099500a6ff3fd09964dc3820f7ab48ba4ed04d5
+Ciphertext = d1c8f9ebee44ff231485207e684b0e65a033db29b082ac45
+
+Cipher = aes-256-ccm
+Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a
+IV = 10022cddb323e88b3c08f95a0f
+AAD = 5cab3b846870709569
+Tag = 2f83ef84b299cfdb61d2b5039d536c3f
+Plaintext = a6e09404fe60badfc63dc228057485e6f563ba82acdabd7c
+Ciphertext = caac388ee0bd15f6bd4b1f5ffb7248015a2ad520b8b515ec
+
+Cipher = aes-256-ccm
+Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a
+IV = 10022cddb323e88b3c08f95a0f
+AAD = 0938f2e2ebb64f8af8
+Tag = db04e655cbe22b9ea508d2a03757b97c
+Plaintext = 33404d7e0e620c1030b91020e33619c5f53d8b210fa86489
+Ciphertext = 5f0ce1f410bfa3394bcfcd571d30d4225a74e4831bc7cc19
+
+Cipher = aes-256-ccm
+Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a
+IV = 10022cddb323e88b3c08f95a0f
+AAD = 82f78ca0e0da2b2d3a
+Tag = 4bd88dc6985f819004c2b634c5303ed8
+Plaintext = 617868ae91f705c6b583b5fd7e1e4086a1bb9f087a50bf50
+Ciphertext = 0d34c4248f2aaaefcef5688a80188d610ef2f0aa6e3f17c0
+
+Cipher = aes-256-ccm
+Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a
+IV = 10022cddb323e88b3c08f95a0f
+AAD = 401191aa3fd34abe87
+Tag = 4ff3572e4ebf78473760d8cb4b0366b4
+Plaintext = 949cdd7c2973d7519e7bca98b2c5947e6d8e91c90e632319
+Ciphertext = f8d071f637ae7878e50d17ef4cc35999c2c7fe6b1a0c8b89
+
+Cipher = aes-256-ccm
+Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a
+IV = 10022cddb323e88b3c08f95a0f
+AAD = 4df4377596d8987671
+Tag = de95ec3eee17753e60fb3c0661bdd098
+Plaintext = f6720a0bd8705c70e0f923338965e810b3ea939bad652327
+Ciphertext = 9a3ea681c6adf3599b8ffe44776325f71ca3fc39b90a8bb7
+
+Cipher = aes-256-ccm
+Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a
+IV = 10022cddb323e88b3c08f95a0f
+AAD = 6593194b9970545c5a
+Tag = b8590ff04f967e51fbd1be84f01b4dcb
+Plaintext = de9b0556661e726f3e6e34515ff7196420fe61b4f38419f2
+Ciphertext = b2d7a9dc78c3dd464518e926a1f1d4838fb70e16e7ebb162
+
+Cipher = aes-256-ccm
+Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a
+IV = 10022cddb323e88b3c08f95a0f
+AAD = ab2d432058b540ac72
+Tag = 71d67b75b2da855a12ffb24ddd64a048
+Plaintext = 6cad7f3b9f196839bbc5a7f755c09aa8e17c83d9cb8b3954
+Ciphertext = 00e1d3b181c4c710c0b37a80abc6574f4e35ec7bdfe491c4
+
+Cipher = aes-256-ccm
+Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a
+IV = 10022cddb323e88b3c08f95a0f
+AAD = 5dc631eeeacb5a0b0b
+Tag = 1fc798dd16c1fadef607a9297cbfbfef
+Plaintext = 70a55aec1144357377612fd0bbc2c817f33465a656219957
+Ciphertext = 1ce9f6660f999a5a0c17f2a745c405f05c7d0a04424e31c7
+
+Cipher = aes-256-ccm
+Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77
+IV = 6c7942c9819cf69b817bfcdb0a
+AAD = 215e2a6c24325340fdec
+Tag = 3d70e6dffb31a376a1eb7f94526dca48
+Plaintext = 3216dce3b8b1ce0e79e40fffcac728ab191aaaf319d971d3
+Ciphertext = c5b3b50ed8a7b7b96b02ba9464b6a2ff80e90548605699a6
+
+Cipher = aes-256-ccm
+Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77
+IV = 6c7942c9819cf69b817bfcdb0a
+AAD = e0a29a2c7840cf9b41de
+Tag = cbf516608fe20e06bbff931e84683545
+Plaintext = 7e5e5710a693ebfa36335cf7965574740880acdddd13fb1a
+Ciphertext = 89fb3efdc685924d24d5e99c3824fe2091730366a49c136f
+
+Cipher = aes-256-ccm
+Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77
+IV = 6c7942c9819cf69b817bfcdb0a
+AAD = b8026fbada6339d84802
+Tag = d70eb14f3fa0229906b9e0360be3d3f9
+Plaintext = 08c342a50aa23362622934dfab55d9b22c22c249ad08138c
+Ciphertext = ff662b486ab44ad570cf81b4052453e6b5d16df2d487fbf9
+
+Cipher = aes-256-ccm
+Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77
+IV = 6c7942c9819cf69b817bfcdb0a
+AAD = 65f4b3a00c1c1ef39445
+Tag = 4184771199a427861bf17cd8401e794e
+Plaintext = e085aba85882c75d5e41559167731496cf17d3907894352a
+Ciphertext = 1720c2453894beea4ca7e0fac9029ec256e47c2b011bdd5f
+
+Cipher = aes-256-ccm
+Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77
+IV = 6c7942c9819cf69b817bfcdb0a
+AAD = 96118dbfe53434d8aed8
+Tag = 4e20b2db52fde68f88bfb886fdcb2c47
+Plaintext = 710f890be2b8da77c1eff429ede9cc931d50f059748cbcb6
+Ciphertext = 86aae0e682aea3c0d3094142439846c784a35fe20d0354c3
+
+Cipher = aes-256-ccm
+Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77
+IV = 6c7942c9819cf69b817bfcdb0a
+AAD = cdf4b485d2e04709cf8f
+Tag = 82ee3df38ddea8e269eb47e39900345e
+Plaintext = cda96efee4e188ab3048bc1904ac2c36ab018f2ab7602682
+Ciphertext = 3a0c071384f7f11c22ae0972aadda66232f22091ceefcef7
+
+Cipher = aes-256-ccm
+Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77
+IV = 6c7942c9819cf69b817bfcdb0a
+AAD = 50e57e57cf8e49e3a4e6
+Tag = 44aaac4ed86f687cfc031f22827725f1
+Plaintext = 3dc596d52e520779a50bcba3049388b340dbf6d0f2eb94cf
+Ciphertext = ca60ff384e447eceb7ed7ec8aae202e7d928596b8b647cba
+
+Cipher = aes-256-ccm
+Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77
+IV = 6c7942c9819cf69b817bfcdb0a
+AAD = 48c670f11ff7f74e7003
+Tag = d75255006ac037d6a4d048f1fc338012
+Plaintext = a33105c0dccf8e3b687212a870af9f710462756705fe09b3
+Ciphertext = 54946c2dbcd9f78c7a94a7c3dede15259d91dadc7c71e1c6
+
+Cipher = aes-256-ccm
+Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77
+IV = 6c7942c9819cf69b817bfcdb0a
+AAD = 465e3be6113a2fb2ee20
+Tag = 6c1da33a80bc8157cece1acf9400b2bb
+Plaintext = 573ac2436158eb7dd9be981e3cfbe75d3a188ea9cf2b1ee2
+Ciphertext = a09fabae014e92cacb582d75928a6d09a3eb2112b6a4f697
+
+Cipher = aes-256-ccm
+Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77
+IV = 6c7942c9819cf69b817bfcdb0a
+AAD = ee4e10574faeae85e9b6
+Tag = 65c1cb98da4a1a920ca1ed9a7b6ec514
+Plaintext = ca35bdb54e73eac5a5200a296b3aba5f37c87349746102d4
+Ciphertext = 3d90d4582e659372b7c6bf42c54b300bae3bdcf20deeeaa1
+
+Cipher = aes-256-ccm
+Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763
+IV = 85684f94c3702c5d870310166d
+AAD = f706a3e09df95d3e21d2e0
+Tag = d6c05eaf406a5ebd578e19edd5227380
+Plaintext = 6cdbd63f6d591f59776f828533b28e2453a214d1d0dd8a39
+Ciphertext = 8c8b4ae854a5d5c265b25e3b54bded9444cc454b3e0e6a24
+
+Cipher = aes-256-ccm
+Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763
+IV = 85684f94c3702c5d870310166d
+AAD = e46b25b9a41a858e87900a
+Tag = 5088446e42591c0ede68e82334d97cfa
+Plaintext = 100132c315bfc9c4fb93023f5d3500d7208a68acb4d2c630
+Ciphertext = f051ae142c43035fe94ede813a3a636737e439365a01262d
+
+Cipher = aes-256-ccm
+Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763
+IV = 85684f94c3702c5d870310166d
+AAD = 28d34b29afe6586fd9bf0e
+Tag = 3eaaef2823f5ac3f313f560bd774d10e
+Plaintext = d5460c1db0d24dedc63c4c78ce6d1f0b2d46f3b01934525c
+Ciphertext = 351690ca892e8776d4e190c6a9627cbb3a28a22af7e7b241
+
+Cipher = aes-256-ccm
+Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763
+IV = 85684f94c3702c5d870310166d
+AAD = 2852d4fd68a3e9e47d44a7
+Tag = 62d30d99bb7dadec34e2891c156a1f5d
+Plaintext = d2d73b62e3b1c9ab75f3544ff8616741e0adbae84b8cf9d0
+Ciphertext = 3287a7b5da4d0330672e88f19f6e04f1f7c3eb72a55f19cd
+
+Cipher = aes-256-ccm
+Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763
+IV = 85684f94c3702c5d870310166d
+AAD = ec1c17b2ab13d7c8ac874f
+Tag = 41c9a05ebf9ed27792bbced83b5dc582
+Plaintext = 74796d78d6ad03634ed80800af530212baa7e5093651cedf
+Ciphertext = 9429f1afef51c9f85c05d4bec85c61a2adc9b493d8822ec2
+
+Cipher = aes-256-ccm
+Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763
+IV = 85684f94c3702c5d870310166d
+AAD = 4f1ab5ddb1c199e9a5daab
+Tag = 1ffc24020e86b1314724104e6b57b3ce
+Plaintext = fb432488b5d08d576a90f085181ad883407a6ce9ea29950a
+Ciphertext = 1b13b85f8c2c47cc784d2c3b7f15bb3357143d7304fa7517
+
+Cipher = aes-256-ccm
+Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763
+IV = 85684f94c3702c5d870310166d
+AAD = 864e0e728aea856fae6c6d
+Tag = 539bbb0af8ecf77b4508533247b3501a
+Plaintext = 2b82d96ed1778412378abe4e09c633acf3359b9709ae3dcb
+Ciphertext = cbd245b9e88b4e89255762f06ec9501ce45bca0de77dddd6
+
+Cipher = aes-256-ccm
+Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763
+IV = 85684f94c3702c5d870310166d
+AAD = 21ee21a5ed0d75d0380a28
+Tag = f8981ec6ce7c4687b178f2103fa8c8be
+Plaintext = 85143071241bb65261fe7afcc102416e59b9e46ee0c90073
+Ciphertext = 6544aca61de77cc97323a642a60d22de4ed7b5f40e1ae06e
+
+Cipher = aes-256-ccm
+Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763
+IV = 85684f94c3702c5d870310166d
+AAD = 2b63f7b676f13f45d103dd
+Tag = 65d9d899c6b71c0ab3049ea1dbfaf6a9
+Plaintext = 185577b48237acbdaa3590b8057fe374f875ce829b62c98f
+Ciphertext = f805eb63bbcb6626b8e84c06627080c4ef1b9f1875b12992
+
+Cipher = aes-256-ccm
+Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763
+IV = 85684f94c3702c5d870310166d
+AAD = a33e86d813c2c4ff3bab20
+Tag = b246474c4e79822f5fd55f2fb0067a40
+Plaintext = f051beb936e60fd4f3bca31964f1ad3e6fa16dd27b65a6db
+Ciphertext = 1001226e0f1ac54fe1617fa703fece8e78cf3c4895b646c6
+
+Cipher = aes-256-ccm
+Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed
+IV = d80210b9f9776ea36dc0e0a787
+AAD = e4296d1c8cf4ffc4b2635135
+Tag = de3ed995d1b70561c8e28a7b1a7e3dc8
+Plaintext = c825952293e434ea866db558aaf486ef09a92bf366988f71
+Ciphertext = b8b3b15fdf6a4a0b5abc313afc769e4e8413bd887552583e
+
+Cipher = aes-256-ccm
+Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed
+IV = d80210b9f9776ea36dc0e0a787
+AAD = d18bfcc1584eeb8695388ebe
+Tag = 561575f6743c5759494be59afa0c3e11
+Plaintext = a1e0248355bfd1d881fb1a4798cda2f6f6ad513c69c5f9b4
+Ciphertext = d17600fe1931af395d2a9e25ce4fba577b17c7477a0f2efb
+
+Cipher = aes-256-ccm
+Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed
+IV = d80210b9f9776ea36dc0e0a787
+AAD = 14682301a99bf680805d1ffe
+Tag = 34f689367228cbaf3cd76fb407109cf6
+Plaintext = ded135fcbf62219bfba2cba40c2d2cbe4815ddaac1342231
+Ciphertext = ae471181f3ec5f7a27734fc65aaf341fc5af4bd1d2fef57e
+
+Cipher = aes-256-ccm
+Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed
+IV = d80210b9f9776ea36dc0e0a787
+AAD = 8853aa2dfea9c4d370678bb6
+Tag = 2cacb7fc3856abcf759feb8dc0998ab1
+Plaintext = 12d3900c6c01968b8344762e0e883e5e219f42b052dc6215
+Ciphertext = 6245b471208fe86a5f95f24c580a26ffac25d4cb4116b55a
+
+Cipher = aes-256-ccm
+Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed
+IV = d80210b9f9776ea36dc0e0a787
+AAD = c5d3b9c593c3185fe4b6d1bc
+Tag = 42a740cd3262424a2c3d77849ead6149
+Plaintext = 8c3c1193fe1a1ebad7e01a1eed1a32c08a0091b1c948e184
+Ciphertext = fcaa35eeb294605b0b319e7cbb982a6107ba07cada8236cb
+
+Cipher = aes-256-ccm
+Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed
+IV = d80210b9f9776ea36dc0e0a787
+AAD = dfb9e8149b51f89b1ec00a8e
+Tag = 47d4dbe0f9415d40843070e1e93059eb
+Plaintext = 8219618b7728ac89237705ecf84012cc7c80293c4cf171d8
+Ciphertext = f28f45f63ba6d268ffa6818eaec20a6df13abf475f3ba697
+
+Cipher = aes-256-ccm
+Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed
+IV = d80210b9f9776ea36dc0e0a787
+AAD = 08a4590d262e4dbcb7e23ffc
+Tag = 1215b3dccba4ca5de64be7fab8a7a22c
+Plaintext = b344b7dc239617fa51b9ea10a349e940c3163779f5284c9c
+Ciphertext = c3d293a16f18691b8d686e72f5cbf1e14eaca102e6e29bd3
+
+Cipher = aes-256-ccm
+Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed
+IV = d80210b9f9776ea36dc0e0a787
+AAD = 74aab7b5b96238710637c6e5
+Tag = 34e09945ee44c95c7923d8b9249ade7b
+Plaintext = 740d4b25ca7221d0826057701a6bfd66c50a82f010a57be8
+Ciphertext = 049b6f5886fc5f315eb1d3124ce9e5c748b0148b036faca7
+
+Cipher = aes-256-ccm
+Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed
+IV = d80210b9f9776ea36dc0e0a787
+AAD = 420aac47a3f212fffca40549
+Tag = 0a568dd779526a0058d522af1dafde30
+Plaintext = 5d9000489186abdf4f0a2794f0222fcaa156fe6309c10f79
+Ciphertext = 2d062435dd08d53e93dba3f6a6a0376b2cec68181a0bd836
+
+Cipher = aes-256-ccm
+Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed
+IV = d80210b9f9776ea36dc0e0a787
+AAD = 6e80dd7f1badf3a1c9ab25c7
+Tag = 279442c88d612ed1a39ae0005f88155d
+Plaintext = ac2c44263363810bec3a309aa618b303e05099dfdbeb5c16
+Ciphertext = dcba605b7fedffea30ebb4f8f09aaba26dea0fa4c8218b59
+
+Cipher = aes-256-ccm
+Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930
+IV = cdc2712e51c7f333d6bad78eee
+AAD = 569c56b27268d3db54e728aac0
+Tag = 8aaaac20d4c9276f2851cbba2b04d185
+Plaintext = 10d4cff95ef490923c9e0906880729d4d05412e7675cce76
+Ciphertext = be3ce3e9dc72499839a98ae52abb17415e8547687e8a3c7b
+
+Cipher = aes-256-ccm
+Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930
+IV = cdc2712e51c7f333d6bad78eee
+AAD = d75635b6450e43285fba966835
+Tag = c121ff83891335dd1214ea6fc25f6a68
+Plaintext = c9db03e2efbab713b0b640421018d3971ffe2abd70fe8fa1
+Ciphertext = 67332ff26d3c6e19b581c3a1b2a4ed02912f7f3269287dac
+
+Cipher = aes-256-ccm
+Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930
+IV = cdc2712e51c7f333d6bad78eee
+AAD = 70750acea6a05f8b7b425d262b
+Tag = 549e71ec517cd65150f42b3cb53f936e
+Plaintext = add631ce5846ce71434aad4998f8e429aed430e7d38bdbb2
+Ciphertext = 033e1ddedac0177b467d2eaa3a44dabc20056568ca5d29bf
+
+Cipher = aes-256-ccm
+Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930
+IV = cdc2712e51c7f333d6bad78eee
+AAD = 2a567c7ec7edaa5a438ae3bb35
+Tag = 0e432ec394ddbb65205dc40a5a8e90a4
+Plaintext = a514d170422feb1d87bb7725a9e77cc6fc8afb45c2af6d90
+Ciphertext = 0bfcfd60c0a93217828cf4c60b5b4253725baecadb799f9d
+
+Cipher = aes-256-ccm
+Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930
+IV = cdc2712e51c7f333d6bad78eee
+AAD = 0f8795385b805246a0a2573afc
+Tag = 926b0d977107a3918717f79b63f36b0a
+Plaintext = 79d8841ab83279724ce35e1a8abd4e158168dcf388ab4c3d
+Ciphertext = d730a80a3ab4a07849d4ddf9280170800fb9897c917dbe30
+
+Cipher = aes-256-ccm
+Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930
+IV = cdc2712e51c7f333d6bad78eee
+AAD = 111d224c102b136159fbeb44a7
+Tag = c2cd61599bb93db3dd3dabc12aa90932
+Plaintext = 2edd498e54b23aab6f4fd7b3f22c4c787e3a4f1fb06c9ec7
+Ciphertext = 8035659ed634e3a16a785450509072edf0eb1a90a9ba6cca
+
+Cipher = aes-256-ccm
+Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930
+IV = cdc2712e51c7f333d6bad78eee
+AAD = df0821c9ea6ab329c626d11b4b
+Tag = bd027ecd00cc6dc5ffd5d746d92281e9
+Plaintext = 6e3e25db29da2c787bb37755ee770e2402fb8208da23389d
+Ciphertext = c0d609cbab5cf5727e84f4b64ccb30b18c2ad787c3f5ca90
+
+Cipher = aes-256-ccm
+Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930
+IV = cdc2712e51c7f333d6bad78eee
+AAD = aacaf4839c35338d6e2b47ac45
+Tag = 3c01354a450eda2588be7578530e38c0
+Plaintext = d4ed4584678e982ace8664e77d0e55be356be558cead3755
+Ciphertext = 7a056994e5084120cbb1e704dfb26b2bbbbab0d7d77bc558
+
+Cipher = aes-256-ccm
+Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930
+IV = cdc2712e51c7f333d6bad78eee
+AAD = dc6eed3f8bd1b5563c1eeb9afa
+Tag = 8d7a1d546e25ba026cd46556eb2c4b7e
+Plaintext = 4ebf00eadaf70711f630f5badf0214d8518a200afb0e5765
+Ciphertext = e0572cfa5871de1bf30776597dbe2a4ddf5b7585e2d8a568
+
+Cipher = aes-256-ccm
+Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930
+IV = cdc2712e51c7f333d6bad78eee
+AAD = fbfe7e910f242a78dd6e69a2ec
+Tag = 0e951aee790239e7067ef37f497b4bf4
+Plaintext = 2729636112f2abe2c76ea5e52a3f80b0f882f0f3b6f7c806
+Ciphertext = 89c14f71907472e8c25926068883be257653a57caf213a0b
+
+Cipher = aes-256-ccm
+Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c
+IV = b8d517b033754058128d13d11a
+AAD = 511c6924fa96db716f6b053b7a48
+Tag = e949b93003dfe63c95c1d49edfb4de3f
+Plaintext = ca88dddfc876a12f45f19562bc9ca250f43267ab251a7f34
+Ciphertext = eeedcfa8f5b5b48c1d7e277526eecb7294213b9f5785167a
+
+Cipher = aes-256-ccm
+Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c
+IV = b8d517b033754058128d13d11a
+AAD = 10c26d5939618189a9503623f55f
+Tag = 85c32a90d77fed97eb0ac164ed616e1c
+Plaintext = de0c0d17c3950e7f8985b56d60623cbd010cd765da4df5ab
+Ciphertext = fa691f60fe561bdcd10a077afa10559f611f8b51a8d29ce5
+
+Cipher = aes-256-ccm
+Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c
+IV = b8d517b033754058128d13d11a
+AAD = bc09c59d20e55a9e184d70af2c7c
+Tag = 180fdf5f63045f326057cf74fd4cee6b
+Plaintext = 2f35102d78a32fcde1cfb563ea8d310ecb83c146ab8de362
+Ciphertext = 0b50025a45603a6eb940077470ff582cab909d72d9128a2c
+
+Cipher = aes-256-ccm
+Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c
+IV = b8d517b033754058128d13d11a
+AAD = b75887f13d6e8c4b35b27b965693
+Tag = 34959a180fc2cf2ba99af21cc1bc8e5c
+Plaintext = a3fcce3420effdd6edb37271735a0d30c10c65233aee173f
+Ciphertext = 8799dc431d2ce875b53cc066e9286412a11f391748717e71
+
+Cipher = aes-256-ccm
+Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c
+IV = b8d517b033754058128d13d11a
+AAD = 603401a9b8ecde4d5c86b6107363
+Tag = 2ca2e5195dbd44f0a119538c95788510
+Plaintext = 4ac918727e41b8c536484e3781c403e260c278712853508d
+Ciphertext = 6eac0a054382ad666ec7fc201bb66ac000d124455acc39c3
+
+Cipher = aes-256-ccm
+Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c
+IV = b8d517b033754058128d13d11a
+AAD = 7206b06f306124ca3a302e84c5a6
+Tag = 74a4e1198878a76291594b9826d4b563
+Plaintext = 97d770cbb2c42a552e450cc4e35e5668b2ff89cec735cc91
+Ciphertext = b3b262bc8f073ff676cabed3792c3f4ad2ecd5fab5aaa5df
+
+Cipher = aes-256-ccm
+Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c
+IV = b8d517b033754058128d13d11a
+AAD = b15efed90a5d1d62f545ac22af6e
+Tag = ff5f993dcfbd048274da7439c0f9ef5a
+Plaintext = 86bb2ae50e36c72936240a74502172625cbca210cf285077
+Ciphertext = a2de389233f5d28a6eabb863ca531b403caffe24bdb73939
+
+Cipher = aes-256-ccm
+Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c
+IV = b8d517b033754058128d13d11a
+AAD = c9eb714ed9858a8dc11a26ee3f00
+Tag = 0e87710559a375ece6ef2953b6aa2542
+Plaintext = 0dc79993047fd6e7260aac4d847fdb4d16483f28b13b5f17
+Ciphertext = 29a28be439bcc3447e851e5a1e0db26f765b631cc3a43659
+
+Cipher = aes-256-ccm
+Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c
+IV = b8d517b033754058128d13d11a
+AAD = 07ca22271e95cb48a872046822b7
+Tag = 998035c81716e2d1ed4b4d56ff18af5d
+Plaintext = f950e96d65a55efb3be3a55daffb421afad1d5625e3440a1
+Ciphertext = dd35fb1a58664b58636c174a35892b389ac289562cab29ef
+
+Cipher = aes-256-ccm
+Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c
+IV = b8d517b033754058128d13d11a
+AAD = b65f6773516124317cfb4b1fcdf5
+Tag = 1ae73a9b6896d8fc1b8c0d772d632983
+Plaintext = e160e28e601a49d16db18f25410756b330b036c42e615fd6
+Ciphertext = c505f0f95dd95c72353e3d32db753f9150a36af05cfe3698
+
+Cipher = aes-256-ccm
+Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe
+IV = ddf50502f414c1bf24888f1328
+AAD = 22b4f8f1aac02a9b2ef785d0ff6f93
+Tag = 8a8f8d14d2bdac84c3737cfbd75b7c0b
+Plaintext = 533fee7d2c7740db55770e48cb1b541d990ea3f8f08ed1a6
+Ciphertext = fc867b319e0e4ab45ec518a1b5dcec4f29982173f3abfd4d
+
+Cipher = aes-256-ccm
+Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe
+IV = ddf50502f414c1bf24888f1328
+AAD = d0a43de391d492746ecf322acd6e5b
+Tag = fce59f5e6e3cee284b4cc747ff5ee13f
+Plaintext = cced20b59a6b2c3c45ea6c87802440c9c47b1015e83d86c3
+Ciphertext = 6354b5f9281226534e587a6efee3f89b74ed929eeb18aa28
+
+Cipher = aes-256-ccm
+Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe
+IV = ddf50502f414c1bf24888f1328
+AAD = 3a789c06f87f05933c34a1cf9834a8
+Tag = ddaef56d8255125f7c316c6c59ce779f
+Plaintext = 90939a4530181ad6900664f66bfc2ce0289432a0afe9babe
+Ciphertext = 3f2a0f09826110b99bb4721f153b94b29802b02baccc9655
+
+Cipher = aes-256-ccm
+Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe
+IV = ddf50502f414c1bf24888f1328
+AAD = 785260973f112c56d9f891160c4c11
+Tag = 55810cbcdf48f05d0a7808673c82d08d
+Plaintext = 86cd926b9565b76a88fde73c31e9ac908ffd1e6ca30b59ce
+Ciphertext = 29740727271cbd05834ff1d54f2e14c23f6b9ce7a02e7525
+
+Cipher = aes-256-ccm
+Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe
+IV = ddf50502f414c1bf24888f1328
+AAD = bf6a144591c0ea7b10274fbd3345a1
+Tag = 49e41e5d34a698ae1d96f16bc68da944
+Plaintext = 6ecd1c1acc6290672f9cf639ed0cebcb21ed0c56f35a5ce3
+Ciphertext = c17489567e1b9a08242ee0d093cb5399917b8eddf07f7008
+
+Cipher = aes-256-ccm
+Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe
+IV = ddf50502f414c1bf24888f1328
+AAD = 7d9488b500d89a27f367f34a448a87
+Tag = 1bc54e546d1a6fcf6187169feb1ea533
+Plaintext = b01e3f4fb5ee7501e8c2f4ccefb542ae20d7fd61a2c41c8b
+Ciphertext = 1fa7aa0307977f6ee370e2259172fafc90417feaa1e13060
+
+Cipher = aes-256-ccm
+Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe
+IV = ddf50502f414c1bf24888f1328
+AAD = 060fc718e994edc7bac9962ca7f28d
+Tag = f2eb6c0ab42acf42985c721bfd576e71
+Plaintext = 22ab6a0daf953165dda864cceeeb782e275c0b072aedd284
+Ciphertext = 8d12ff411dec3b0ad61a7225902cc07c97ca898c29c8fe6f
+
+Cipher = aes-256-ccm
+Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe
+IV = ddf50502f414c1bf24888f1328
+AAD = cb6f96dd06015967279ade310a7401
+Tag = ac502b8e65cc1329b6895afdd354f5db
+Plaintext = f96ed20b23c784015ff58f5f040798ca75e3b98045deca8e
+Ciphertext = 56d7474791be8e6e544799b67ac02098c5753b0b46fbe665
+
+Cipher = aes-256-ccm
+Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe
+IV = ddf50502f414c1bf24888f1328
+AAD = 9aa6d501455019b4ef4c7fb789d22f
+Tag = 87e5f8a8148f21adf721477c36bd99ca
+Plaintext = 648a84813ca97aef4ab7e143ee29acb946388660f18eb671
+Ciphertext = cb3311cd8ed070804105f7aa90ee14ebf6ae04ebf2ab9a9a
+
+Cipher = aes-256-ccm
+Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe
+IV = ddf50502f414c1bf24888f1328
+AAD = ebd1d12bbd14176a0d4080aa1edb89
+Tag = da9ea0427522dbeaa509a11755434760
+Plaintext = 32d71e59634126ac6c6156a80a0dfa0175b29e9f40a31696
+Ciphertext = 9d6e8b15d1382cc367d3404174ca4253c5241c1443863a7d
+
+Cipher = aes-256-ccm
+Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562
+IV = 4b60a47b7e90f622fa0bf803e1
+AAD = 0ae8c012ff39753510df3ee80707e4e2
+Tag = 0ec2c6fb687753bca4580adc6aa2f296
+Plaintext = ddc3c1aa73fb6de92bb4db138e26f3c2e0543ab4f5924871
+Ciphertext = daa8256d4753fdf9cfef876295badaba89b45cc497f54d22
+
+Cipher = aes-256-ccm
+Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562
+IV = 4b60a47b7e90f622fa0bf803e1
+AAD = d5b22e7697ba70e00c7ef32709563f01
+Tag = 8f30b9c8e380c98bb939a4e8a85af758
+Plaintext = 34270576724083e9989764d08a0d5c1b4738f34927a1e436
+Ciphertext = 334ce1b146e813f97ccc38a1919175632ed8953945c6e165
+
+Cipher = aes-256-ccm
+Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562
+IV = 4b60a47b7e90f622fa0bf803e1
+AAD = 6b4edef415763aabcef01863e8197aec
+Tag = 53e80d8ccc687fd303f4cdef44b6e8b9
+Plaintext = 904fe88e7a8e76447a64b488ef84184d0f1ab1b67f0c5a7d
+Ciphertext = 97240c494e26e6549e3fe8f9f418313566fad7c61d6b5f2e
+
+Cipher = aes-256-ccm
+Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562
+IV = 4b60a47b7e90f622fa0bf803e1
+AAD = 4c099809061024c010a77e9621fc2bcf
+Tag = 0c635dac5b70338dac3f33ce16a99145
+Plaintext = 51fe7bac8f3255f17f64fb9322210fb7d8da8e762498b233
+Ciphertext = 56959f6bbb9ac5e19b3fa7e239bd26cfb13ae80646ffb760
+
+Cipher = aes-256-ccm
+Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562
+IV = 4b60a47b7e90f622fa0bf803e1
+AAD = 9d329439588164d5a96675a85c07a039
+Tag = f996e8163affb1494bb3c12eeadf16b6
+Plaintext = eab6dbc13bb92df36b1882df2b8f34c3cefa41f95717fbd7
+Ciphertext = eddd3f060f11bde38f43deae30131dbba71a27893570fe84
+
+Cipher = aes-256-ccm
+Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562
+IV = 4b60a47b7e90f622fa0bf803e1
+AAD = b768fc3daf29ff9e8bd575072d986e99
+Tag = 98b4206a9622d5631751a497dfb1f662
+Plaintext = c44c9c287d3eac7c30570d9c4adf2e4857c598f7c54cd126
+Ciphertext = c32778ef49963c6cd40c51ed514307303e25fe87a72bd475
+
+Cipher = aes-256-ccm
+Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562
+IV = 4b60a47b7e90f622fa0bf803e1
+AAD = 3efc7cc2d16bf82d2bcfbc559a09b2c9
+Tag = 7dd300167d267ad700dea37fb475ecdd
+Plaintext = c11b9c9d7607f387359c0038d3e8ec4d527562ce63c3384c
+Ciphertext = c670785a42af6397d1c75c49c874c5353b9504be01a43d1f
+
+Cipher = aes-256-ccm
+Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562
+IV = 4b60a47b7e90f622fa0bf803e1
+AAD = 0ff89eff92a530b66684cd75a39481e7
+Tag = 303e9c9bd0d8e4aac42894ca03d6ab06
+Plaintext = cc17904b166f28df82f57889f391159a4a308e752d714ee5
+Ciphertext = cb7c748c22c7b8cf66ae24f8e80d3ce223d0e8054f164bb6
+
+Cipher = aes-256-ccm
+Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562
+IV = 4b60a47b7e90f622fa0bf803e1
+AAD = fbd11bc75759f0461e796f6917aeb42b
+Tag = 0953f46e0e9cf1369e9eb018a4df3c09
+Plaintext = 6f97e595ea2f40612ea84a2097b974d235055fe1dae59403
+Ciphertext = 68fc0152de87d071caf316518c255daa5ce53991b8829150
+
+Cipher = aes-256-ccm
+Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562
+IV = 4b60a47b7e90f622fa0bf803e1
+AAD = b79940952f42537484aa2907c72dffa9
+Tag = 8a1702dfa0cd9c290c5ff9c35cc83705
+Plaintext = a48cbf933b88c0ec5ddcdd8fcad186391c2cbef308607de5
+Ciphertext = a3e75b540f2050fcb98781fed14daf4175ccd8836a0778b6
+
+Cipher = aes-256-ccm
+Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d
+IV = 9b7298950280e8762ecdc9bbe4
+AAD = 5824689453bc406bf891b85e4576e38fe8
+Tag = 10ca926f1a430c08c12e23db3d913e93
+Plaintext = 967daf12f16f166b7b5038f83a1cf0b980f5abf4c7746f2a
+Ciphertext = 7cfe2a7a54306eb8d8a63d3d1ae86794f9a2c22198b2cb4f
+
+Cipher = aes-256-ccm
+Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d
+IV = 9b7298950280e8762ecdc9bbe4
+AAD = cd15973753b94b77bb4b778de8b3b0cabb
+Tag = 5d5b674fd15410cc235dba6d8c8d82a8
+Plaintext = c4a756f6024a9dceabf6e264fffff9c719217fb418141ac5
+Ciphertext = 2e24d39ea715e51d0800e7a1df0b6eea6076166147d2bea0
+
+Cipher = aes-256-ccm
+Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d
+IV = 9b7298950280e8762ecdc9bbe4
+AAD = ed8540f7ce451c522c1ff5d2d1030d7b3f
+Tag = 88750b5f36c86e7eda9015e960a7471a
+Plaintext = e0d5de7d1eace211c0e70859ff315ff485d1200c6dd13f93
+Ciphertext = 0a565b15bbf39ac263110d9cdfc5c8d9fc8649d932179bf6
+
+Cipher = aes-256-ccm
+Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d
+IV = 9b7298950280e8762ecdc9bbe4
+AAD = cbbecf92551a15f5cf00a5be4a50b0eb17
+Tag = d5fa842209dbbc04c87965f78500fec1
+Plaintext = 05a4a4ba28fe8876f9bcfa5ec60651fd3fd4732f22049bd5
+Ciphertext = ef2721d28da1f0a55a4aff9be6f2c6d046831afa7dc23fb0
+
+Cipher = aes-256-ccm
+Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d
+IV = 9b7298950280e8762ecdc9bbe4
+AAD = 873ba7f8b71517ec50297b21cf94cdb7a5
+Tag = 7d147edbe114bfdb3f3b9b37d5719ef5
+Plaintext = 9cdebaeee8690b68751070691f49593668a6de12d3a948b3
+Ciphertext = 765d3f864d3673bbd6e675ac3fbdce1b11f1b7c78c6fecd6
+
+Cipher = aes-256-ccm
+Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d
+IV = 9b7298950280e8762ecdc9bbe4
+AAD = ac087420feb1e1e8c2546c2a8b8a5af0d0
+Tag = 57b4c2bbc377937d15b3b89543e29d0e
+Plaintext = 5672e61cf664d73918dc1ca84df1fce82db0e305a61d57b9
+Ciphertext = bcf16374533bafeabb2a196d6d056bc554e78ad0f9dbf3dc
+
+Cipher = aes-256-ccm
+Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d
+IV = 9b7298950280e8762ecdc9bbe4
+AAD = a12c690568114fd7a677f49d74e84fc1a6
+Tag = 2e6ca774074b47b59adabeaf8835582d
+Plaintext = 0f5452e6b51540cf219998590995cd7f8785fa40b4f217fc
+Ciphertext = e5d7d78e104a381c826f9d9c29615a52fed29395eb34b399
+
+Cipher = aes-256-ccm
+Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d
+IV = 9b7298950280e8762ecdc9bbe4
+AAD = 7a78ddfe5afb2dc90ee4a600c2fc014b0f
+Tag = bd320f48a7221537e3cbed5ac4154a56
+Plaintext = 9ad338cbfd1b52e6ae4178f05e00062274f8b0b25eae72f7
+Ciphertext = 7050bda358442a350db77d357ef4910f0dafd9670168d692
+
+Cipher = aes-256-ccm
+Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d
+IV = 9b7298950280e8762ecdc9bbe4
+AAD = 6053e466ed1f647a3cd88c4d2052ec00cb
+Tag = 40574e201f9a26932a87c8d822505814
+Plaintext = d17b8d556e83190c84d4a812957c64ffa7f336298f4e2c72
+Ciphertext = 3bf8083dcbdc61df2722add7b588f3d2dea45ffcd0888817
+
+Cipher = aes-256-ccm
+Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d
+IV = 9b7298950280e8762ecdc9bbe4
+AAD = f7673e3beb526834d6507058fe62e34987
+Tag = 837dfa3fdef2f012b6609de2ac5dd9d6
+Plaintext = 2eaef86b0f602364f86510eabc58bc9ad1e6f0a6f6df0b83
+Ciphertext = c42d7d03aa3f5bb75b93152f9cac2bb7a8b19973a919afe6
+
+Cipher = aes-256-ccm
+Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29
+IV = 8f160a873a1166c8b32bccbba7
+AAD = 72674aca7eba2fc0eeafbd143c2c4d8aa6c8
+Tag = 57e9a9203da74387a9468f8af5e27547
+Plaintext = 33ae68ebb8010c6b3da6b9cb29fe9f8bd09b59ec39f4ce4b
+Ciphertext = b22afdf4f12c43ec23e01ac1215a3f5286059211207e9570
+
+Cipher = aes-256-ccm
+Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29
+IV = 8f160a873a1166c8b32bccbba7
+AAD = f7da3f100b80e2ade812f1700aab6b72f746
+Tag = a3985f12a49eac424a35c94645917e91
+Plaintext = dbb29817b86cb80e0d008742cedfbf52b236f15ee8cad50e
+Ciphertext = 5a360d08f141f78913462448c67b1f8be4a83aa3f1408e35
+
+Cipher = aes-256-ccm
+Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29
+IV = 8f160a873a1166c8b32bccbba7
+AAD = 4b05eaadf98505d0806c233b2cdcaf4254e8
+Tag = 4ab089a8724b87a1167180963d44ec65
+Plaintext = 145aa8cfd544a2f46bae1aa83cbdb3d21c3d1350078a3af4
+Ciphertext = 95de3dd09c69ed7375e8b9a23419130b4aa3d8ad1e0061cf
+
+Cipher = aes-256-ccm
+Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29
+IV = 8f160a873a1166c8b32bccbba7
+AAD = 05a3aaa08b9a6aaeb84704431425d0e45a14
+Tag = 0a7d1520141892e140448292185c41c7
+Plaintext = 6b32e8906dc89194a69410b79cd041b62eb01afb28a3e10a
+Ciphertext = eab67d8f24e5de13b8d2b3bd9474e16f782ed1063129ba31
+
+Cipher = aes-256-ccm
+Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29
+IV = 8f160a873a1166c8b32bccbba7
+AAD = 74db01edc26a2d2044cb8eaad8b907b78863
+Tag = 72d3eee219d94bd788f62df4add5ec40
+Plaintext = 545ed03588fd85a8bbfeee66d2082ae6f8e2f3c9dbd8725f
+Ciphertext = d5da452ac1d0ca2fa5b84d6cdaac8a3fae7c3834c2522964
+
+Cipher = aes-256-ccm
+Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29
+IV = 8f160a873a1166c8b32bccbba7
+AAD = 5f2c6ddf5a2403e04dac8b2813c060b67e76
+Tag = c600496f4f8b1b7da118ee36d8cd57f8
+Plaintext = 66dd5fd8611c551973a3d0c078ec2b4d39ad163d9168de3c
+Ciphertext = e759cac728311a9e6de573ca70488b946f33ddc088e28507
+
+Cipher = aes-256-ccm
+Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29
+IV = 8f160a873a1166c8b32bccbba7
+AAD = a650a2a5e3c6f7c95614570aaefd0cdd9a42
+Tag = 4710004d06ce7a7efbd19da4e3ce3cf7
+Plaintext = 6f364b3f778376cbf3f4b0b0c5350a8fa278f9d8c25faad6
+Ciphertext = eeb2de203eae394cedb213bacd91aa56f4e63225dbd5f1ed
+
+Cipher = aes-256-ccm
+Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29
+IV = 8f160a873a1166c8b32bccbba7
+AAD = 477c2484cf5c56b813313927be8387b1024f
+Tag = 304099641c4ec3dc2c54fdf4f48dbef2
+Plaintext = 3de4798d8ad84c460b92abc10b7f5e7c9fae46a1dd353687
+Ciphertext = bc60ec92c3f503c115d408cb03dbfea5c9308d5cc4bf6dbc
+
+Cipher = aes-256-ccm
+Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29
+IV = 8f160a873a1166c8b32bccbba7
+AAD = 564e1df74aa2d7ee33b66cfeda810774e16c
+Tag = 905c1b05e8945685f8688faea777eb43
+Plaintext = 7769b45fea11f530fb9a67f1b5b1964a34cfa32bbb03f4b1
+Ciphertext = f6ed2140a33cbab7e5dcc4fbbd153693625168d6a289af8a
+
+Cipher = aes-256-ccm
+Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29
+IV = 8f160a873a1166c8b32bccbba7
+AAD = d5e66502529b0045883d935e05acd242baa8
+Tag = ea5a3b6a8bafde4006b993cfb3b13557
+Plaintext = 0c0a502b42f81b51806c7080a8155280f493f2922cdc7df8
+Ciphertext = 8d8ec5340bd554d69e2ad38aa0b1f259a20d396f355626c3
+
+Cipher = aes-256-ccm
+Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f
+IV = fb717a8c82114477253acc14f6
+AAD = 41e9d65632f74f449a6842d5e6c4a86ef83791
+Tag = 42be2e2ba05c54b619850db5c9d684fe
+Plaintext = c7360282c85484a5a33ab1c68dd70873ab4e74ffd4a62cd5
+Ciphertext = 2e961b3a2fa1609a4e6fd04bff6ac5e306ae2638706f997b
+
+Cipher = aes-256-ccm
+Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f
+IV = fb717a8c82114477253acc14f6
+AAD = 555304659bde926cb2553b8a4605251fcddd92
+Tag = bbdee2605bc69601b1e83d1e7a0b400d
+Plaintext = 1332314d1cf783b9f64e0fa2d42d43d225da9fd5165b5f0a
+Ciphertext = fa9228f5fb0267861b1b6e2fa6908e42883acd12b292eaa4
+
+Cipher = aes-256-ccm
+Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f
+IV = fb717a8c82114477253acc14f6
+AAD = 69ea953dbb910ec589372d797c7379d3f3b9e9
+Tag = 304611baf530932da7954f714514d228
+Plaintext = f264da8606ea429e0e25da3f2efafe28beaff05b42097369
+Ciphertext = 1bc4c33ee11fa6a1e370bbb25c4733b8134fa29ce6c0c6c7
+
+Cipher = aes-256-ccm
+Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f
+IV = fb717a8c82114477253acc14f6
+AAD = d7186a67061319b44eedc0677ebf5d932d5bce
+Tag = 6d1d44e26404b7324767f0b3f7486f8b
+Plaintext = c9ee6482144dc61c43041324a2c18ede370011cb4882b0c5
+Ciphertext = 204e7d3af3b82223ae5172a9d07c434e9ae0430cec4b056b
+
+Cipher = aes-256-ccm
+Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f
+IV = fb717a8c82114477253acc14f6
+AAD = 38f37d5e2da017f1953ff3701be0b38809ba80
+Tag = 5453724d2db19f606c85d00e49b0bb38
+Plaintext = 40524a4d32a711e7d5a59809878c318f42b6e2375b77b8a7
+Ciphertext = a9f253f5d552f5d838f0f984f531fc1fef56b0f0ffbe0d09
+
+Cipher = aes-256-ccm
+Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f
+IV = fb717a8c82114477253acc14f6
+AAD = b3b2d249cd3517555fa692bbe9116f069e7405
+Tag = 6db1e4112fcd650e8c0f0f6fbf2d07e1
+Plaintext = 961c15bd7dc34cd5409c9e8869988676ec6845ecb0ee85fd
+Ciphertext = 7fbc0c059a36a8eaadc9ff051b254be64188172b14273053
+
+Cipher = aes-256-ccm
+Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f
+IV = fb717a8c82114477253acc14f6
+AAD = f5b5bcc38efaff01f69bd3a106dcfca3cc6414
+Tag = 1cedb29e68322e47ff9997f859257d98
+Plaintext = 879568ab9ebdea768a5459ced1d3181d822536c3d1ba38c3
+Ciphertext = 6e35711379480e4967013843a36ed58d2fc5640475738d6d
+
+Cipher = aes-256-ccm
+Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f
+IV = fb717a8c82114477253acc14f6
+AAD = a2098e3e23826e01f31107a208202f710eff00
+Tag = 1c12bf2a3571ed672592b27e986e9058
+Plaintext = 47cb57599686716c75d7ecef5541d20fb908e6d98c39925a
+Ciphertext = ae6b4ee17173955398828d6227fc1f9f14e8b41e28f027f4
+
+Cipher = aes-256-ccm
+Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f
+IV = fb717a8c82114477253acc14f6
+AAD = 20a3d53e77201599540344c4e746c3ae3a5f84
+Tag = f12b2be8f5966d96602111c28f87b104
+Plaintext = 4a8667b5ee09d3d4a6dca9a95f4ad406f1da94b846dcc6b8
+Ciphertext = a3267e0d09fc37eb4b89c8242df719965c3ac67fe2157316
+
+Cipher = aes-256-ccm
+Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f
+IV = fb717a8c82114477253acc14f6
+AAD = 92c592ead4b3f193cc36687593d4f0f412a5d5
+Tag = 776df0a0cf048892e65bd8ad77cb2255
+Plaintext = 1dc9e32ac4176f64bd78a6edd651ebeea3ba85dfcd8298a8
+Ciphertext = f469fa9223e28b5b502dc760a4ec267e0e5ad718694b2d06
+
+Cipher = aes-256-ccm
+Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8
+IV = a235f8ee3de9896b71910ac02c
+AAD = 2b411bea57b51d10a4d2fb17ef0f204aa53cf112
+Tag = e6f3ba30143acbc3a1c1c6ec74333107
+Plaintext = 4a17522da707b4b2587a0ae367a2cd2831bb593a18ef442a
+Ciphertext = 1bf122798bd8ee8e73391d589bd046a294d1615794e69cb9
+
+Cipher = aes-256-ccm
+Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8
+IV = a235f8ee3de9896b71910ac02c
+AAD = 0248359f8071143c3cc1d61882a3547a0b3d2175
+Tag = 36cb510c13a039f4df8cc26a942f9911
+Plaintext = 4a6a7151465c2abd7e7fa1fd13019ad098b6ebcd190e96f7
+Ciphertext = 1b8c01056a837081553cb646ef73115a3ddcd3a095074e64
+
+Cipher = aes-256-ccm
+Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8
+IV = a235f8ee3de9896b71910ac02c
+AAD = cca77bc4cf6c0abd3393dac3fbe90fbc8a1154f7
+Tag = 7fe0dedc2899dff81a251cff16bf5897
+Plaintext = a94f5ede43929d48d2c5a58c3262d9127d2ac3cb2fbd5768
+Ciphertext = f8a92e8a6f4dc774f986b237ce105298d840fba6a3b48ffb
+
+Cipher = aes-256-ccm
+Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8
+IV = a235f8ee3de9896b71910ac02c
+AAD = 9c082a84646c070bb11b7d6b92b62f06ee5b5b71
+Tag = 86c43ac23800de60a1fd2caef0f03261
+Plaintext = 7303bd41cf47289a3111366d08e8e21548baf293052029eb
+Ciphertext = 22e5cd15e39872a61a5221d6f49a699fedd0cafe8929f178
+
+Cipher = aes-256-ccm
+Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8
+IV = a235f8ee3de9896b71910ac02c
+AAD = 1c3ede1982a807a410ae1e21947bf430f8db7027
+Tag = 26f7907e235c09d3322c4092d2e88f88
+Plaintext = fa9743a67978c20316cb91801d7789e350079aae3aadbd43
+Ciphertext = ab7133f255a7983f3d88863be1050269f56da2c3b6a465d0
+
+Cipher = aes-256-ccm
+Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8
+IV = a235f8ee3de9896b71910ac02c
+AAD = deb05a30a026ff66ce71e98afa62f0255aef84f5
+Tag = 6bb44a28c145d49f49f2821d4044e4b6
+Plaintext = 99599b4042dcdb685350cdecfdf24992fd5b165670025d0c
+Ciphertext = c8bfeb146e0381547813da570180c21858312e3bfc0b859f
+
+Cipher = aes-256-ccm
+Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8
+IV = a235f8ee3de9896b71910ac02c
+AAD = 93dd9b00a3353e5331338dcfcb7ca7e0bb873a4e
+Tag = 0f7d20aa3d792d6a3ebc5ee0df2fd89c
+Plaintext = 451101250ec6f26652249d59dc974b7361d571a8101cdfd3
+Ciphertext = 14f771712219a85a79678ae220e5c0f9c4bf49c59c150740
+
+Cipher = aes-256-ccm
+Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8
+IV = a235f8ee3de9896b71910ac02c
+AAD = 0855263860043207543c8c34648d53ec51c4f47e
+Tag = 7ca4733f0208668b0a7879305e861d71
+Plaintext = b2db87b7787531968d603098cb20ca7c438b4af72623fea9
+Ciphertext = e33df7e354aa6baaa6232723375241f6e6e1729aaa2a263a
+
+Cipher = aes-256-ccm
+Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8
+IV = a235f8ee3de9896b71910ac02c
+AAD = ee2d3a66deb3ebca867a902bb9202226ed516ded
+Tag = d76b482ff20429da8f60f0f863e1af50
+Plaintext = ca18ce38086223e63b4f0b616d110010f9e45eac42f2ba46
+Ciphertext = 9bfebe6c24bd79da100c1cda91638b9a5c8e66c1cefb62d5
+
+Cipher = aes-256-ccm
+Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8
+IV = a235f8ee3de9896b71910ac02c
+AAD = 8e531aaea849addab6a83497cbc504f489505952
+Tag = aab66e1ac2346ef97850a4985c64b737
+Plaintext = 5717ed5da5b8aa806a18bfe979502bab6632c9428d3a7725
+Ciphertext = 06f19d098967f0bc415ba8528522a021c358f12f0133afb6
+
+Cipher = aes-256-ccm
+Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f
+IV = 15977424eeec0ec7f647e6c798
+AAD = 2d838eb51a4bc69a001a18adf2084a680f02a3c5fc
+Tag = ef9af5679edbcbb7db20ab6af30698db
+Plaintext = d3416a81b4246eb0bf8119a72a886bbc0ac9449c69f71d2f
+Ciphertext = e001a8fae390dc5d672cdd18f86a1f728158ec83a002050d
+
+Cipher = aes-256-ccm
+Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f
+IV = 15977424eeec0ec7f647e6c798
+AAD = d83ee7ce22fd1a2882d8d552346e4d7b3efdd67da4
+Tag = d435a5a38f84387f63b13407f65ec86c
+Plaintext = 22b6f10b482448626f6c7bebb14f1497896d071738133b4d
+Ciphertext = 11f633701f90fa8fb7c1bf5463ad605902fcaf08f1e6236f
+
+Cipher = aes-256-ccm
+Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f
+IV = 15977424eeec0ec7f647e6c798
+AAD = 2d5537b24d0b0f7a45703c1e131656ec9edc12cdf7
+Tag = 2ede8a705f8c988f55459542bd631b1c
+Plaintext = d60edc830be8207ffd9e9f646d3b4343b10b3d56acb89d44
+Ciphertext = e54e1ef85c5c929225335bdbbfd9378d3a9a9549654d8566
+
+Cipher = aes-256-ccm
+Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f
+IV = 15977424eeec0ec7f647e6c798
+AAD = 1a750eb326923412d94ccb35f5acd0f87415268178
+Tag = 986de774a612230ce6c71449d26732ce
+Plaintext = 716d3132f449a9def383978102ae50ed3ccae0cb346ba1df
+Ciphertext = 422df349a3fd1b332b2e533ed04c2423b75b48d4fd9eb9fd
+
+Cipher = aes-256-ccm
+Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f
+IV = 15977424eeec0ec7f647e6c798
+AAD = b10fc523bc4562d44edfe5956f93c15c4ab38bba3c
+Tag = e710431005264fa7d3fc04bac50fc1ec
+Plaintext = 063c2ae2a15f26f979bf90657d20643e3184f1a9f75a3aad
+Ciphertext = 357ce899f6eb9414a11254daafc210f0ba1559b63eaf228f
+
+Cipher = aes-256-ccm
+Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f
+IV = 15977424eeec0ec7f647e6c798
+AAD = fe4f60ce9634e7dbc5e56204c4bf8aa9be577027ec
+Tag = 5c13bea6ad0cad724e6cd02c89517ffc
+Plaintext = bdc513e56a5bb70c02abc041af04d6e45e735d10cc88357f
+Ciphertext = 8e85d19e3def05e1da0604fe7de6a22ad5e2f50f057d2d5d
+
+Cipher = aes-256-ccm
+Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f
+IV = 15977424eeec0ec7f647e6c798
+AAD = 48f3ceda4fd390a7eb38f7f5bcd14310af6b5a557e
+Tag = d2a5531655aae01e249f213e0e04af0d
+Plaintext = 7dc5d8cd90ce2faf76bbd0d52e5ae11b310fc2b0051c4377
+Ciphertext = 4e851ab6c77a9d42ae16146afcb895d5ba9e6aafcce95b55
+
+Cipher = aes-256-ccm
+Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f
+IV = 15977424eeec0ec7f647e6c798
+AAD = 199ec321d1d24d5408076912d6bb2b6f192d6b347f
+Tag = 2a127ef341345f9641b26e91265e1482
+Plaintext = 66c2696edec26ba3d07bd3f485a0d6ce8a1b0a85b20083e7
+Ciphertext = 5582ab158976d94e08d6174b5742a200018aa29a7bf59bc5
+
+Cipher = aes-256-ccm
+Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f
+IV = 15977424eeec0ec7f647e6c798
+AAD = 8b013f5782d5d1af8dbd451a4202866095dac975fc
+Tag = a005ca13c4bf715c3b7b2782f799b23a
+Plaintext = f4da8ac3e8fe5ec6a5b6a2f27b68396e850b46a024d441f0
+Ciphertext = c79a48b8bf4aec2b7d1b664da98a4da00e9aeebfed2159d2
+
+Cipher = aes-256-ccm
+Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f
+IV = 15977424eeec0ec7f647e6c798
+AAD = e320df32b71cc530e8493b12b9afbeabc255c5eb44
+Tag = 04642aff9cb9288d49f0e567dd837e05
+Plaintext = 244891cb4af66cc8e99a3784a2e82475e51bd5c7fde67cf5
+Ciphertext = 170853b01d42de253137f33b700a50bb6e8a7dd8341364d7
+
+Cipher = aes-256-ccm
+Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79
+IV = 97ebcb8575bb58260208d5c227
+AAD = a2f6337f86dd00d1a58448851e95d8c9bace4a5c8710
+Tag = abc1f9d0132394149c9062b74b82f04b
+Plaintext = 2f59d94d4ab8eeb84c2a6fefb7fb0a3ac059c1e1a65ae34a
+Ciphertext = 7ca0b1dbe34b0391e524b868b0af08b3e096917664d6aa2c
+
+Cipher = aes-256-ccm
+Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79
+IV = 97ebcb8575bb58260208d5c227
+AAD = abf26b05558252c8e38c52b1ace087bbd1eb3d561239
+Tag = 6d7df57c6a792f6f6b24cb5f87e92123
+Plaintext = c25381853f73a3dc4195fdcbc45dfa1a40eb8324749adb2e
+Ciphertext = 91aae91396804ef5e89b2a4cc309f8936024d3b3b6169248
+
+Cipher = aes-256-ccm
+Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79
+IV = 97ebcb8575bb58260208d5c227
+AAD = a13ade56b47803897666e42ef2ef88be0e779ac86c28
+Tag = 4ac19b0b74cd9d5e100598b96c9f1f2e
+Plaintext = 8dc5226a2a13088c87f4bf94262e0c0413f06b35d2fda79b
+Ciphertext = de3c4afc83e0e5a52efa6813217a0e8d333f3ba21071eefd
+
+Cipher = aes-256-ccm
+Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79
+IV = 97ebcb8575bb58260208d5c227
+AAD = 3c5b68b65edf62755b7e064bd26c843816bf6c1cd481
+Tag = a77a27eabfc79f192c0ac491280af8d0
+Plaintext = ee4b23039cd512cfab8c7a2d0f2c78d66764520bc88759e1
+Ciphertext = bdb24b953526ffe60282adaa08787a5f47ab029c0a0b1087
+
+Cipher = aes-256-ccm
+Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79
+IV = 97ebcb8575bb58260208d5c227
+AAD = 0213fe13c49083d7c00335e1864dc139c9e7123162d1
+Tag = 39935f91c1e29fc1e4c5c5427ca9da79
+Plaintext = 30b48d4021838090fbd5251069ff8c631452daee5ef899db
+Ciphertext = 634de5d688706db952dbf2976eab8eea349d8a799c74d0bd
+
+Cipher = aes-256-ccm
+Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79
+IV = 97ebcb8575bb58260208d5c227
+AAD = a32291746b151be8134e183798aa82bef210343feaf6
+Tag = aeaec90ada2a1ffef64c3873af645a40
+Plaintext = 2286a1eddd80737a724ca941217e9f0232870b6c2f20d29c
+Ciphertext = 717fc97b74739e53db427ec6262a9d8b12485bfbedac9bfa
+
+Cipher = aes-256-ccm
+Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79
+IV = 97ebcb8575bb58260208d5c227
+AAD = a30f2fd445820cdf800145540602c877da0e4c311272
+Tag = 7932952831d0ba25c77c18fe154d8ed8
+Plaintext = fe703ca0901e4a706ce1393c7d8ce18a03eb2caadbfa7b8e
+Ciphertext = ad89543639eda759c5efeebb7ad8e30323247c3d197632e8
+
+Cipher = aes-256-ccm
+Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79
+IV = 97ebcb8575bb58260208d5c227
+AAD = ed438e393e0e37629cb25044ae89de9fd0d42d60c1a3
+Tag = 234fd0241d00f3890a23ccd0bf16dcbf
+Plaintext = 7043c67726870bb5816da925925bc2722478311c8a606cca
+Ciphertext = 23baaee18f74e69c28637ea2950fc0fb04b7618b48ec25ac
+
+Cipher = aes-256-ccm
+Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79
+IV = 97ebcb8575bb58260208d5c227
+AAD = 1013946815001a2c08acca4196e0d6668ffbb3883cf1
+Tag = af43498b0c3f70c119f82d5812db940f
+Plaintext = 695e9712dbbf883e9bf8af9188bd01fc631968928258168d
+Ciphertext = 3aa7ff84724c651732f678168fe9037543d6380540d45feb
+
+Cipher = aes-256-ccm
+Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79
+IV = 97ebcb8575bb58260208d5c227
+AAD = 44cc9b2510680c4d73f1938c77de21242c8ee790ed7f
+Tag = db66dbb03a4c943ac089ed11eb214bbb
+Plaintext = 67ba90d22c6bb5f649bc0c505c5ed23a299882559a3bf520
+Ciphertext = 3443f844859858dfe0b2dbd75b0ad0b30957d2c258b7bc46
+
+Cipher = aes-256-ccm
+Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c
+IV = 451101250ec6f26652249d59dc
+AAD = 7cc9c51b69f98a06391ab32742fb6365e15106c811fe8a
+Tag = 9163fa7a867f04cab6f52dc250070f31
+Plaintext = 065ef9eeafbe077c1c7049f43eb0d8999708e8609f214d5c
+Ciphertext = 990065322a438e136860f7b019807e9feff52a642bf3d44a
+
+Cipher = aes-256-ccm
+Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c
+IV = 451101250ec6f26652249d59dc
+AAD = 7bb1bc069a783d45d51d8ecd0a53ab7a386fa1f5ef12a1
+Tag = fd33dd9155619fb040dcd6038c7b7367
+Plaintext = 69b2b056f2265e707d3e31e68bff6a060544c8a737b2a9b9
+Ciphertext = f6ec2c8a77dbd71f092e8fa2accfcc007db90aa3836030af
+
+Cipher = aes-256-ccm
+Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c
+IV = 451101250ec6f26652249d59dc
+AAD = 0dd220919d0eeee3b7cec36c47e376b778583b38bf61c8
+Tag = 4fcba5a886b1f33cf1cf44618d28f01f
+Plaintext = b98d79aaa4c04171398c7f1189497acaa7546ef068bc7a3f
+Ciphertext = 26d3e576213dc81e4d9cc155ae79dcccdfa9acf4dc6ee329
+
+Cipher = aes-256-ccm
+Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c
+IV = 451101250ec6f26652249d59dc
+AAD = 1c1915fab09348b9a5536495c70d1a040305708c112479
+Tag = eafe2c670eac203d5e90b9d520e7a618
+Plaintext = eeaeb773ade5fb2d27b50bb892916333e0b123c6e3ae5bdb
+Ciphertext = 71f02baf2818724253a5b5fcb5a1c535984ce1c2577cc2cd
+
+Cipher = aes-256-ccm
+Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c
+IV = 451101250ec6f26652249d59dc
+AAD = 614b0ac4611b6c6d3b4ed089510dcd2215567bc3789f85
+Tag = f0388746438e83b731b5588fef53f1f3
+Plaintext = f2198e1f91fde2672a1ef60403c0d175f366b6780ee9f1c2
+Ciphertext = 6d4712c314006b085e0e484024f077738b9b747cba3b68d4
+
+Cipher = aes-256-ccm
+Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c
+IV = 451101250ec6f26652249d59dc
+AAD = 866fea4483d4e903566844e31c24283571832dfae32c74
+Tag = fca81f8b36d16698a600fd701f2c6424
+Plaintext = ba37617342b4eefd4bdce8fad30c4751b206d47814973b3a
+Ciphertext = 2569fdafc74967923fcc56bef43ce157cafb167ca045a22c
+
+Cipher = aes-256-ccm
+Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c
+IV = 451101250ec6f26652249d59dc
+AAD = 9d7546f7e8b949c539d21a357f81d0151e278d0bf2c5a5
+Tag = 4c15a6d292c7ed2f31cf9512435ec7d2
+Plaintext = 69adcae8a1e9a3f2fe9e62591f7b4c5b19d3b50e769521f6
+Ciphertext = f6f3563424142a9d8a8edc1d384bea5d612e770ac247b8e0
+
+Cipher = aes-256-ccm
+Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c
+IV = 451101250ec6f26652249d59dc
+AAD = 42b692048c8b3cce1b5e83f4f33232a7d7d0bc20695e7e
+Tag = a2ad73179d0314b5fe52dd7217518cb8
+Plaintext = e0753d4248643642c7a96404de8d76c9d80527b659ec6d31
+Ciphertext = 7f2ba19ecd99bf2db3b9da40f9bdd0cfa0f8e5b2ed3ef427
+
+Cipher = aes-256-ccm
+Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c
+IV = 451101250ec6f26652249d59dc
+AAD = f1dfb6fdb31cb423226f181c0988a52ee4015aef4536f4
+Tag = 9ccc5ba1caf933b80bfc6f281109688f
+Plaintext = 79ba959c7221b293e2115f538d9394c64284c756563c04b0
+Ciphertext = e6e40940f7dc3bfc9601e117aaa332c03a790552e2ee9da6
+
+Cipher = aes-256-ccm
+Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c
+IV = 451101250ec6f26652249d59dc
+AAD = 8eafce9ba466fd53eb87f499d7c76bd486db0e90a3d281
+Tag = 73271ec36d92fff34609169f579c8f1d
+Plaintext = e1590206717a708cad9cca7d23a3b8ee5f7fb7786aa3be47
+Ciphertext = 7e079edaf487f9e3d98c743904931ee82782757cde712751
+
+Cipher = aes-256-ccm
+Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91
+IV = 50b23b052922366c25dd40e348
+AAD = cd0522ebe1fed82465277d1c10ae9316a98b4469be63b180
+Tag = b25764e40ac6a171e7e6bab4fdee4288
+Plaintext = c99c3e79125b6fd95e737326a842424eb6c6ecea4c0475c4
+Ciphertext = 76df4be4ec8373864399acda11294b220b9f7c3a7d2b3660
+
+Cipher = aes-256-ccm
+Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91
+IV = 50b23b052922366c25dd40e348
+AAD = ce5bf070678cb07e963263b1562ff79311144addb6e4de4f
+Tag = fca49758d17f2073066b82667eae6ce3
+Plaintext = eede01b08f9a303cdf14c99d7a45732972c6eff2a1db06eb
+Ciphertext = 519d742d71422c63c2fe1661c32e7a45cf9f7f2290f4454f
+
+Cipher = aes-256-ccm
+Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91
+IV = 50b23b052922366c25dd40e348
+AAD = 07175be2475cc735c9a3c1140895277378debf8fb1c87c24
+Tag = 7c1d64d7e9de47a6ad7878283da9d870
+Plaintext = 6d5579aaaf8737b01620424f3ddeaf538f10dfad094e5ec4
+Ciphertext = d2160c37515f2bef0bca9db384b5a63f32494f7d38611d60
+
+Cipher = aes-256-ccm
+Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91
+IV = 50b23b052922366c25dd40e348
+AAD = c821a8d4bab9d993c20dd206955304a55968e6db5ab6480d
+Tag = adc2bb471862d25cfe25e66fedb8e28c
+Plaintext = d0628b2027f06c246497977d05f211b2c2e302d5b82700b5
+Ciphertext = 6f21febdd928707b797d4881bc9918de7fba920589084311
+
+Cipher = aes-256-ccm
+Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91
+IV = 50b23b052922366c25dd40e348
+AAD = 68439bc9d176feeeb4119d00ed5449dfefb72b5a582bfd97
+Tag = 319a493abc947945f1312395ea98d937
+Plaintext = 6cc9749f48c61050e421afa3a10ad3dd3aa02cc3f8586915
+Ciphertext = d38a0102b61e0c0ff9cb705f1861dab187f9bc13c9772ab1
+
+Cipher = aes-256-ccm
+Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91
+IV = 50b23b052922366c25dd40e348
+AAD = adb262c924942e4e1964e9d97c6a8c159fbf9bfedc5ff296
+Tag = 21d0602d29447ba6b24a67509eaee1e8
+Plaintext = 92d50736466e64e6225962e76bd90da824f716a3301a1a90
+Ciphertext = 2d9672abb8b678b93fb3bd1bd2b204c499ae867301355934
+
+Cipher = aes-256-ccm
+Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91
+IV = 50b23b052922366c25dd40e348
+AAD = fc7b08707d3c3dac7689ec18088ee6502ef08d3ffbff38ed
+Tag = e52a2eeacb1f023e849161b6306b6cfa
+Plaintext = 87c7ac031fd63e4c83280dce6b68a92dfafb6ea19388fa9f
+Ciphertext = 3884d99ee10e22139ec2d232d203a04147a2fe71a2a7b93b
+
+Cipher = aes-256-ccm
+Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91
+IV = 50b23b052922366c25dd40e348
+AAD = fd43dfb66041b117f2ac54c94f7b6e2677860864d9494175
+Tag = 0d8c5b1e96b21460e0b5414639abeb0b
+Plaintext = 6b53c46266b2f4284d8fe7f0549c98977344d67e178e9a8e
+Ciphertext = d410b1ff986ae8775065380cedf791fbce1d46ae26a1d92a
+
+Cipher = aes-256-ccm
+Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91
+IV = 50b23b052922366c25dd40e348
+AAD = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4
+Tag = 1c97260d20797d374c595cbc2ff080bc
+Plaintext = 8e7d8a44244daa7df2b340993e32dac50e05d7b2e103be98
+Ciphertext = 313effd9da95b622ef599f658759d3a9b35c4762d02cfd3c
+
+Cipher = aes-256-ccm
+Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91
+IV = 50b23b052922366c25dd40e348
+AAD = 9895b24d12b004b215583eac70a95f4fba7442164f35c57b
+Tag = 6cd287afcbdbc5531f11246080b22677
+Plaintext = cec07df916ffb7a453d0eb588b7462096f22874bd5abf814
+Ciphertext = 71830864e827abfb4e3a34a4321f6b65d27b179be484bbb0
+
+Cipher = aes-256-ccm
+Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7
+IV = b44a58724596b4d8dea827c1a0
+AAD = f5b2c88f5232c37273b1e66aa31cfa7201e33c21d60054d025
+Tag = c1411af83237c0f9eb0bfe8ed914da66
+Plaintext = 617d54fc6a23601c79e3984f93bfc2d151fde420863206b3
+Ciphertext = 57b3414db48982c6567265e1e0173bf38fdfaffe4461fbeb
+
+Cipher = aes-256-ccm
+Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7
+IV = b44a58724596b4d8dea827c1a0
+AAD = 8fabe14dcb3aa2fd28281147c326e98ad699ca7997f03a105d
+Tag = 7ed6e23720b60ffe54bbb9f7ff371008
+Plaintext = 337290d0b4ce1e87afc3cf01d6c98f8c17a4603120dcfcd1
+Ciphertext = 05bc85616a64fc5d805232afa56176aec9862befe28f0189
+
+Cipher = aes-256-ccm
+Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7
+IV = b44a58724596b4d8dea827c1a0
+AAD = cf193eb3d755cb8e06c5be2334b5c8b7a22b6524d46d547ba3
+Tag = b6aa6b284e7720acbd027a50317f816a
+Plaintext = 01ef7ac6470aa02ccd8c1712827e52699d05751b78e4c5a6
+Ciphertext = 37216f7799a042f6e21deabcf1d6ab4b43273ec5bab738fe
+
+Cipher = aes-256-ccm
+Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7
+IV = b44a58724596b4d8dea827c1a0
+AAD = b4cadb5f9cb66415c3a3b71421b926f147566a174160a0bcc0
+Tag = 7058e9c0164ca079668097fde19e5302
+Plaintext = 64fb9322210fb7d8da8e762498b233b0eb172c91231c50cb
+Ciphertext = 52358693ffa55502f51f8b8aeb1aca923535674fe14fad93
+
+Cipher = aes-256-ccm
+Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7
+IV = b44a58724596b4d8dea827c1a0
+AAD = 48400d76ff882d6d5129c8674acc71f445356c9db9c91f8256
+Tag = f988611d5ce0f65b217bb4787bf59bbc
+Plaintext = 291aa463c4babc76b4a6faf2e27e9401586b1ac83e4b06a4
+Ciphertext = 1fd4b1d21a105eac9b37075c91d66d2386495116fc18fbfc
+
+Cipher = aes-256-ccm
+Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7
+IV = b44a58724596b4d8dea827c1a0
+AAD = 749d369d837002ad33feb8aa22c3f68705eb4872e1b8f85a7f
+Tag = d6251a5fd375a48583a6d0f8eb75cbb4
+Plaintext = 141cdd7f964a78815be144a785c6a2a298c54230e73039e2
+Ciphertext = 22d2c8ce48e09a5b7470b909f66e5b8046e709ee2563c4ba
+
+Cipher = aes-256-ccm
+Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7
+IV = b44a58724596b4d8dea827c1a0
+AAD = 80214108b16d030feff6e056c9a07a00a1d5e3ebb07abd3f4a
+Tag = af1dab0f105414293cb130bea285fd6a
+Plaintext = fa2441cb7f9d072b8a3f1a496b2be6728a38b94a4f44c9be
+Ciphertext = ccea547aa137e5f1a5aee7e718831f50541af2948d1734e6
+
+Cipher = aes-256-ccm
+Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7
+IV = b44a58724596b4d8dea827c1a0
+AAD = 8b9fabe29718a8f297c9bf6f199c80bbc71f94eb3034a11ecb
+Tag = 1cc3f7640a42460be877fb7059a3ed61
+Plaintext = c8ce88ab40b62229223d46cc44f21bb39cfef27aa9fdccad
+Ciphertext = fe009d1a9e1cc0f30dacbb62375ae29142dcb9a46bae31f5
+
+Cipher = aes-256-ccm
+Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7
+IV = b44a58724596b4d8dea827c1a0
+AAD = 8812f28a0cd5fdaa226fdd44ed857241007377057be3bea577
+Tag = bbe0ddd2e7f4aa2024b3fec9281b6cac
+Plaintext = cf59f75ca4d6d216cf8862b44b5192c382c140f862def117
+Ciphertext = f997e2ed7a7c30cce0199f1a38f96be15ce30b26a08d0c4f
+
+Cipher = aes-256-ccm
+Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7
+IV = b44a58724596b4d8dea827c1a0
+AAD = c8f05e96d703a4850bae1421ae9ff3aec7531baf9b899dfd75
+Tag = e5df1e5e96bb84f730fcb253d468278f
+Plaintext = 4eed58f381e500902ba5c56864f6249d191e14d1b1fad3dd
+Ciphertext = 78234d425f4fe24a043438c6175eddbfc73c5f0f73a92e85
+
+Cipher = aes-256-ccm
+Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361
+IV = a8c459ce0223358826fb1ec0f0
+AAD = ef88f4393d6c1e7b7be55a12144209ee051bb779e440432721ef
+Tag = 8a20a1abe7c842ebc08c8c81a2743c81
+Plaintext = b3b0de10b7c0996662f1b064e04e528b7d85ca1166985d33
+Ciphertext = d63e6082c95c6c5ff2bc0771321a4f883ef61cff7b99e0ea
+
+Cipher = aes-256-ccm
+Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361
+IV = a8c459ce0223358826fb1ec0f0
+AAD = a4c891c9dd1fcc982c35bc74cfe71651bae424602519672b466d
+Tag = 845e2d6de83ab729dd200a21088a1ec3
+Plaintext = 4f0b40913f07269550b7b06ab9027a4d9331f8ef98a45dca
+Ciphertext = 2a85fe03419bd3acc0fa077f6b56674ed0422e0185a5e013
+
+Cipher = aes-256-ccm
+Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361
+IV = a8c459ce0223358826fb1ec0f0
+AAD = 4db5730cb9794f3b1facc9d6738115d02ba9f27ba02330fbb856
+Tag = 10ed272c732247a696a608ef67510f9c
+Plaintext = 841e032773d58bc72a3237bc9b24c61b9efdd850fc2ea605
+Ciphertext = e190bdb50d497efeba7f80a94970db18dd8e0ebee12f1bdc
+
+Cipher = aes-256-ccm
+Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361
+IV = a8c459ce0223358826fb1ec0f0
+AAD = 471a900ee49f2cfa1d3eb37c951d810c349364d4cc3b5b64fc47
+Tag = 15f0df52e392c37ec15f7458469dae84
+Plaintext = b4db42e523e65557157b93dc0281601f7997e6731543a914
+Ciphertext = d155fc775d7aa06e853624c9d0d57d1c3ae4309d084214cd
+
+Cipher = aes-256-ccm
+Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361
+IV = a8c459ce0223358826fb1ec0f0
+AAD = 7b40b3443d00a0348a060db109e8882157612c43084ac5c3e9c5
+Tag = 421433dafea2b5484ba87b5050e1fb49
+Plaintext = 73e0ed35c0e847188e607cde46586eb9e237fbdc5d59163c
+Ciphertext = 166e53a7be74b2211e2dcbcb940c73baa1442d324058abe5
+
+Cipher = aes-256-ccm
+Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361
+IV = a8c459ce0223358826fb1ec0f0
+AAD = d563f5c048a1b45265182b99ca7b9004fdc73a9cb07806dd44fc
+Tag = df91749fe3cd52a9431d9a847a8c2a9a
+Plaintext = 4f7669caaedee961dbba6bde9d09fee1a20eee55baaf98f5
+Ciphertext = 2af8d758d0421c584bf7dccb4f5de3e2e17d38bba7ae252c
+
+Cipher = aes-256-ccm
+Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361
+IV = a8c459ce0223358826fb1ec0f0
+AAD = d301a61eb17366d4e70942ab69b4f4bcf8ff6a97f5972ee5780a
+Tag = 7563d37846f5185bb44d71be1ea6a73c
+Plaintext = 154454fb74e9565c56775a8e4654f75a38b954dd28c4e939
+Ciphertext = 70caea690a75a365c63aed9b9400ea597bca823335c554e0
+
+Cipher = aes-256-ccm
+Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361
+IV = a8c459ce0223358826fb1ec0f0
+AAD = f74b48d168f77fbd3429728c0b168ecbd854264eaef70b74fffb
+Tag = 55e93bc2d3f05d7016747690fb920e12
+Plaintext = 716b371857e68a17b20ea06651cdcfd4560a741830ca8a13
+Ciphertext = 14e5898a297a7f2e224317738399d2d71579a2f62dcb37ca
+
+Cipher = aes-256-ccm
+Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361
+IV = a8c459ce0223358826fb1ec0f0
+AAD = 3a257ce3592a8f88162f0bb4ecd5db3bb79b54ab17b0bbc61506
+Tag = 1c46822f839f09c41b7aa6dc06035c93
+Plaintext = cfdb7363985aa01af6f8e8237dbfb7871eb39303b4135269
+Ciphertext = aa55cdf1e6c6552366b55f36afebaa845dc045eda912efb0
+
+Cipher = aes-256-ccm
+Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361
+IV = a8c459ce0223358826fb1ec0f0
+AAD = 21916ebeca9e66b77cf55d1cac80a4c85d8b6b014f268ffa73ca
+Tag = 4f8e77600c5bbc6d028fa25ba61a1719
+Plaintext = b4b67ac551d1966caa20d951351387f384c2e5d81a76a92c
+Ciphertext = d138c4572f4d63553a6d6e44e7479af0c7b13336077714f5
+
+Cipher = aes-256-ccm
+Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0
+IV = e3bd4bc3a60cddd26c20aa8636
+AAD = 70cfcb828d483216b46c3cd22e2f9ee879e9e3059b566179b6e16c
+Tag = 1f8332f4236437737438e7aa1b5100c7
+Plaintext = 0d16cc69caa9f19b88b05e151b3d26accd018ca4a5786a80
+Ciphertext = f1c4bedb8d6f91676881daa37656a7e6402f472735b04a0f
+
+Cipher = aes-256-ccm
+Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0
+IV = e3bd4bc3a60cddd26c20aa8636
+AAD = e7e5779282db80f424dc050b2c1e7754b2a5d3a8beae77beb74e34
+Tag = 8be2f6f356c2eb401468be15104e7763
+Plaintext = 148de640f3c11591a6f8c5c48632c5fb79d3b7e1cef9159c
+Ciphertext = e85f94f2b407756d46c94172eb5944b1f4fd7c625e313513
+
+Cipher = aes-256-ccm
+Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0
+IV = e3bd4bc3a60cddd26c20aa8636
+AAD = d17e8189a94a559b07be9549f73d653172740e8e978f5b0a38ad43
+Tag = 9646f2b6c2455603f1a6f20ea5a4611a
+Plaintext = 00a23b25bca7c206edd051814d81083db1cd00048ce8ead5
+Ciphertext = fc704997fb61a2fa0de1d53720ea89773ce3cb871c20ca5a
+
+Cipher = aes-256-ccm
+Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0
+IV = e3bd4bc3a60cddd26c20aa8636
+AAD = fda37ff136895de7ebeaf81e701e5751245201baed2e13d7e1b591
+Tag = 303fa5d8321241b1c9e18a5909d6e428
+Plaintext = a89409b0977f60a029dc4c1560ba6dbe7c65b068633acf74
+Ciphertext = 54467b02d0b9005cc9edc8a30dd1ecf4f14b7bebf3f2effb
+
+Cipher = aes-256-ccm
+Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0
+IV = e3bd4bc3a60cddd26c20aa8636
+AAD = 9c179fd0d6277a5e073e77dd6abb4cba00ad9c9932e6c002b951c7
+Tag = 9e8cb01db1da077502814db1610662ce
+Plaintext = e16c69861efc206e85aab1255e69d6d33c52cf058dec9d0b
+Ciphertext = 1dbe1b34593a4092659b359333025799b17c04861d24bd84
+
+Cipher = aes-256-ccm
+Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0
+IV = e3bd4bc3a60cddd26c20aa8636
+AAD = cf5703228e615428d3d3805e428e754961d205c5aa0297ecdea71d
+Tag = 40a02a49857d7b280330b8105efac854
+Plaintext = 62036cbed3666d85624d3dc9c1f437454b9ab5c03ce0de92
+Ciphertext = 9ed11e0c94a00d79827cb97fac9fb60fc6b47e43ac28fe1d
+
+Cipher = aes-256-ccm
+Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0
+IV = e3bd4bc3a60cddd26c20aa8636
+AAD = bab7e36098d59d3a31d7784d549aebfc6938bbd0612c85c0edb796
+Tag = 5ecfa9dd03e2db70aa212ee7dcb573fd
+Plaintext = 790ac86c5e9d8ce8cbec1dfb7e4fc4dca3d0b1039adfe585
+Ciphertext = 85d8bade195bec142bdd994d132445962efe7a800a17c50a
+
+Cipher = aes-256-ccm
+Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0
+IV = e3bd4bc3a60cddd26c20aa8636
+AAD = 96f0b7cd7439721d4c9cc4f69585f8c90a95bed8fea22150efffba
+Tag = e17a7a0cd162945a3616892e101e3e93
+Plaintext = 3cfacd61ea3398de20ca6bdb00e81af482320614bdfb8642
+Ciphertext = c028bfd3adf5f822c0fbef6d6d839bbe0f1ccd972d33a6cd
+
+Cipher = aes-256-ccm
+Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0
+IV = e3bd4bc3a60cddd26c20aa8636
+AAD = ee71e53d0b4eef82575c2bd38d7bd21b41fabe58c6f571954fe159
+Tag = 15fadc2d79841d230cd55c04379f22b4
+Plaintext = d75c153e34ae1c6d1fcf5b1052190d8882041e1f9c5490e2
+Ciphertext = 2b8e678c73687c91fffedfa63f728cc20f2ad59c0c9cb06d
+
+Cipher = aes-256-ccm
+Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0
+IV = e3bd4bc3a60cddd26c20aa8636
+AAD = 18a4aa894861c7720ddb43809c3d2ed2af2f1bfe8f9fd4f872c14c
+Tag = b229b9bae4634eea6b723f432e19ae55
+Plaintext = 0e728056c7c64214be8f1f1727408d8cca8c42e2ac7bf67e
+Ciphertext = f2a0f2e4800022e85ebe9ba14a2b0cc647a289613cb3d6f1
+
+Cipher = aes-256-ccm
+Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8
+IV = 54c8ff5459702aac058bb3be04
+AAD = ecbd7091732e49c0f4bda2e63235ea43bbf8c8730f955f9c049dd1ec
+Tag = 475acd27900478f09fec1f479ab3a7c8
+Plaintext = 89198d3acc39b950f0d411119c478c60b2422ffe7e26e00b
+Ciphertext = 7717b8e4447afcea1eeebf3e39ffdab2f52828e7931ef27e
+
+Cipher = aes-256-ccm
+Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8
+IV = 54c8ff5459702aac058bb3be04
+AAD = 9a04820205234795ecd540b6a0b2fbd0b19f18106c42f374a2b98425
+Tag = f7b7ed6e8ede6ef5a73b484bf13b3424
+Plaintext = c0f61950f98110db4226e269cf197c7e2794c5b87ad68cf9
+Ciphertext = 3ef82c8e71c25561ac1c4c466aa12aac60fec2a197ee9e8c
+
+Cipher = aes-256-ccm
+Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8
+IV = 54c8ff5459702aac058bb3be04
+AAD = 0e4dbd167da0240298f4795102ef18ff9a8772c6fd73b3374cdfa30a
+Tag = e47d08ea0788f7ca0ecd846689c8027a
+Plaintext = 7960dbc9136880e2eea7956c3271adfe2aba7dca53da917d
+Ciphertext = 876eee179b2bc558009d3b4397c9fb2c6dd07ad3bee28308
+
+Cipher = aes-256-ccm
+Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8
+IV = 54c8ff5459702aac058bb3be04
+AAD = 2de4291068a5d290b599a73c6a8ecff4f9fd6c9cc48f14c233e18581
+Tag = d081f66b1c7b70718dc50367c3da6792
+Plaintext = 0c5d7055bbfbd2bc213cfbbafa763b71b1fde6f4de96fa59
+Ciphertext = f253458b33b89706cf0655955fce6da3f697e1ed33aee82c
+
+Cipher = aes-256-ccm
+Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8
+IV = 54c8ff5459702aac058bb3be04
+AAD = dedeb714f555575fcedbd9de8171484090e6466dd4fba3c6b7c42eae
+Tag = ce672883438da186741e6c542b3f805d
+Plaintext = b5654edcc8f09e4f80d0258c9376d7c53fb68f78d333b18b
+Ciphertext = 4b6b7b0240b3dbf56eea8ba336ce811778dc88613e0ba3fe
+
+Cipher = aes-256-ccm
+Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8
+IV = 54c8ff5459702aac058bb3be04
+AAD = 03d340904ace1cd52d4b72a96d96afd77aee68ac3936415005ed0d56
+Tag = cf58d4a5552bc8ed1b1dda46703a256e
+Plaintext = d796f3409a7eeb896c3d4ebef46e9c6e553aab28b1cc4a90
+Ciphertext = 2998c69e123dae338207e09151d6cabc1250ac315cf458e5
+
+Cipher = aes-256-ccm
+Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8
+IV = 54c8ff5459702aac058bb3be04
+AAD = c67f9aa8cf1be3b4377c30c175d33ab2af390982c6a015d99209acdd
+Tag = f95cf2b57e06de4d01bbb6c0e39f37e1
+Plaintext = e4dd279a79a381c68de777df941a4779e50a1381c8aa9122
+Ciphertext = 1ad31244f1e0c47c63ddd9f031a211aba260149825928357
+
+Cipher = aes-256-ccm
+Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8
+IV = 54c8ff5459702aac058bb3be04
+AAD = fef1b2ccd661b9fac85ba005addebdf8317ab104920549d3a490a21a
+Tag = 7589cd12984286af98908db88920323c
+Plaintext = bbf0c267d952aeb6f810601b9cf1962a92dcaba7273e6902
+Ciphertext = 45fef7b95111eb0c162ace343949c0f8d5b6acbeca067b77
+
+Cipher = aes-256-ccm
+Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8
+IV = 54c8ff5459702aac058bb3be04
+AAD = 693fae7af84aa397f0b2baaed9b3c7953f75e7424c49b6349c2fc20f
+Tag = ee8fc441da990dd92c0caeac9d956699
+Plaintext = e8b13a263e0c4fb5645e500e88ab8074ab7d92e5a8dac6aa
+Ciphertext = 16bf0ff8b64f0a0f8a64fe212d13d6a6ec1795fc45e2d4df
+
+Cipher = aes-256-ccm
+Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8
+IV = 54c8ff5459702aac058bb3be04
+AAD = 85e5df4ddec99f0bea14b3338b2eb190ab6584f5253c6c2ee3064637
+Tag = d502f5434bea8c3c13ad5422ff90e218
+Plaintext = 067de2869333ed22c7b63ed7eeba1301bbac69b0d430adb5
+Ciphertext = f873d7581b70a898298c90f84b0245d3fcc66ea93908bfc0
+
+Cipher = aes-256-ccm
+Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17
+IV = 43b0aca2f0a9030f90559fa6d3
+AAD = a516ca8405e5c8854e667921b5c5e1968bdd052915b55ac9984b7eefb3
+Tag = 12e57c576b315f48c11877178389aaa0
+Plaintext = 8b9130b0c3c15366831bbb19f377e3209a8dbf7619cd09bd
+Ciphertext = 4646b2acdeb11174171da23999cd54e297daa32bbc13d305
+
+Cipher = aes-256-ccm
+Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17
+IV = 43b0aca2f0a9030f90559fa6d3
+AAD = db3121ea71294983b185207a9d8de3e484a66c0431bf07c962eb82977c
+Tag = 66775e693f93af6575dccc7903538065
+Plaintext = 7f369bbc99b6f08049eeb43566269a174829d4dddb05cb9b
+Ciphertext = b2e119a084c6b292dde8ad150c9c2dd5457ec8807edb1123
+
+Cipher = aes-256-ccm
+Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17
+IV = 43b0aca2f0a9030f90559fa6d3
+AAD = 1651cf38fd9b2da65ebb4922b97dcb861128eeefa060d6c1c94b25eb4e
+Tag = b70d8de40c2068de96a274d3b5086b5a
+Plaintext = fd0900b5fa72e2fba43d611bad25de40a3507a5cc5d186c7
+Ciphertext = 30de82a9e702a0e9303b783bc79f6982ae076601600f5c7f
+
+Cipher = aes-256-ccm
+Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17
+IV = 43b0aca2f0a9030f90559fa6d3
+AAD = af87b347b59e37a424004a00907dcbcf6a554e6782a9be12cb3047625e
+Tag = e7da096d2fb28f20f64a000fe93e96e2
+Plaintext = 36318d80c02a1da41ef1652d9a752e155526b5f597fba226
+Ciphertext = fbe60f9cdd5a5fb68af77c0df0cf99d75871a9a83225789e
+
+Cipher = aes-256-ccm
+Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17
+IV = 43b0aca2f0a9030f90559fa6d3
+AAD = 0680d5bacefa2ab14aa12b0e517a1432862d4215dc72dc4d5ac6b96c1c
+Tag = b88748a2de31261534cdb2237565bf8a
+Plaintext = 7a29aa2994d11215ab3ef3382b3db6ed581164a235c4b1d1
+Ciphertext = b7fe283589a150073f38ea184187012f554678ff901a6b69
+
+Cipher = aes-256-ccm
+Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17
+IV = 43b0aca2f0a9030f90559fa6d3
+AAD = 9af701f0a9de52309267289bd170fb97c03c131c0a169d736137ff3d74
+Tag = 0c003eb65ceedc98ae4e38ef341ee47d
+Plaintext = 3542fbe0f59a6d5f3abf619b7d58b199f7caff0205093f8b
+Ciphertext = f89579fce8ea2f4daeb978bb17e2065bfa9de35fa0d7e533
+
+Cipher = aes-256-ccm
+Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17
+IV = 43b0aca2f0a9030f90559fa6d3
+AAD = dab7845fb7ead205569475753c7e26540c09d3a74312f2de25181511f8
+Tag = 5c2fb596d8ff6a863604cd224fa3be42
+Plaintext = 83c15520d9541c86b3dd809ede42de22bbb2b75ff18a023b
+Ciphertext = 4e16d73cc4245e9427db99beb4f869e0b6e5ab025454d883
+
+Cipher = aes-256-ccm
+Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17
+IV = 43b0aca2f0a9030f90559fa6d3
+AAD = a844d6dbd05545ecc736994dc9fc2260c5ab63ed6ffdc40b915f8744a1
+Tag = 2ac782e2cd8ecb06172eef2cb9b0e331
+Plaintext = 793a188fa3efa32f41d6e4c5b42353b95024117d546c79ca
+Ciphertext = b4ed9a93be9fe13dd5d0fde5de99e47b5d730d20f1b2a372
+
+Cipher = aes-256-ccm
+Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17
+IV = 43b0aca2f0a9030f90559fa6d3
+AAD = f9112503884615c0e8a1d8414724b0d19298988f393a27c436b2b6734c
+Tag = f814492b42571033f4dffc0282ea2f51
+Plaintext = 6b237444fb0e1f4150701546c4cb24021c5edad30d9b31dd
+Ciphertext = a6f4f658e67e5d53c4760c66ae7193c01109c68ea845eb65
+
+Cipher = aes-256-ccm
+Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17
+IV = 43b0aca2f0a9030f90559fa6d3
+AAD = d633a5a3defdde6a68f959ef39a91c6ea6e13ef1a7859d2c2c94d3a5b4
+Tag = 75999099df2de6e436bd99f0341423f4
+Plaintext = 6342312e8a72f71f2e5afe04cfcde4d60a41556111752103
+Ciphertext = ae95b3329702b50dba5ce724a57753140716493cb4abfbbb
+
+Cipher = aes-256-ccm
+Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769
+IV = f9fbd02f28ecc929d369182752
+AAD = ebf0b3e3199a5c3773c761c725c7600add5f9d8321c9f8e5e5fd1c7a5d2f
+Tag = f8562eadcdcbcdbad1299bea1523f5d2
+Plaintext = 094b538110495e938b08cf748a6bcf3e0c80ff9c66570237
+Ciphertext = 4d8b53016fc8bc9677184c0fa15bbd3d671b9366d82ecb67
+
+Cipher = aes-256-ccm
+Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769
+IV = f9fbd02f28ecc929d369182752
+AAD = a865b88d512e485ab3f2844c29e6dde0cf1151efa9ad3b3021d06fffb74b
+Tag = 59ff77cf0962455b3539dbf91f3077cc
+Plaintext = 23edddd8732cdbf03af08162f0e4a24c9222bdbb4549c663
+Ciphertext = 672ddd580cad39f5c6e00219dbd4d04ff9b9d141fb300f33
+
+Cipher = aes-256-ccm
+Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769
+IV = f9fbd02f28ecc929d369182752
+AAD = 16918dbc785d94a8f1720c5ad234dde860219874c9fb076a5c290903f85b
+Tag = 6dbed76d94c90595b49d50c84c3efc76
+Plaintext = 1798286c37c1504fc0d7402681f6f70711ef506dcc3e29d0
+Ciphertext = 535828ec4840b24a3cc7c35daac685047a743c977247e080
+
+Cipher = aes-256-ccm
+Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769
+IV = f9fbd02f28ecc929d369182752
+AAD = a2969243b0955402ab45a430fef2ef9e0c025006732bf8e592e3d3884918
+Tag = 48fbe60c146056e5cb01268403e4b9f5
+Plaintext = 0d02778f90a164a4f9ada9dc7fd24eeb941069621418ef32
+Ciphertext = 49c2770fef2086a105bd2aa754e23ce8ff8b0598aa612662
+
+Cipher = aes-256-ccm
+Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769
+IV = f9fbd02f28ecc929d369182752
+AAD = 2de5222a0609f058f60e9e581b6e4f0ddebed84fc8302c8e985d17b89241
+Tag = acff35df1ec942b43eef5aef980cb038
+Plaintext = b0c3858231e284af6d231f043b95772f5e7b16a34ffcd2ec
+Ciphertext = f40385024e6366aa91339c7f10a5052c35e07a59f1851bbc
+
+Cipher = aes-256-ccm
+Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769
+IV = f9fbd02f28ecc929d369182752
+AAD = 3fc7453df038a92829dc103d44b63ad097d7cd7f9ae7996547012090c7c4
+Tag = 91a93f5fc28e5f4f351cfb888da763dc
+Plaintext = 319f396cc02834f8e69d65f77496d0eb31ce1a7b7e324820
+Ciphertext = 755f39ecbfa9d6fd1a8de68c5fa6a2e85a557681c04b8170
+
+Cipher = aes-256-ccm
+Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769
+IV = f9fbd02f28ecc929d369182752
+AAD = 18f1e92bd3c4a597ed970911d03a78ff9a6790147c9bb0ca5f23b70cce7a
+Tag = 2c6a90ef2e9a969ec0576fae1d126a85
+Plaintext = 25550c03f8fa02b3781330f96e0fdc58681b0c0bc5e83fe9
+Ciphertext = 61950c83877be0b68403b382453fae5b038060f17b91f6b9
+
+Cipher = aes-256-ccm
+Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769
+IV = f9fbd02f28ecc929d369182752
+AAD = 09ecb2406054716418ff3600c3c5cacb0845a377a2d80542abc36ec81bb1
+Tag = 59fd6aeb047200907911621e8756b45f
+Plaintext = 210ff7975e08388b9a46eb732230e3a3856a497549b5eb49
+Ciphertext = 65cff7172189da8e66566808090091a0eef1258ff7cc2219
+
+Cipher = aes-256-ccm
+Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769
+IV = f9fbd02f28ecc929d369182752
+AAD = 62d515bb0525b565a6a3613ae20343c8da7424c8368e8cad6a862b7d37a5
+Tag = c4db6d5fd910c83fd77aefba3f7665d8
+Plaintext = 5d867265965bb2aafebb0691de9e157a24066d06fe3cbd7c
+Ciphertext = 194672e5e9da50af02ab85eaf5ae67794f9d01fc4045742c
+
+Cipher = aes-256-ccm
+Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769
+IV = f9fbd02f28ecc929d369182752
+AAD = 00617ca141e55b045a188e4934caf6db63d4577f634db92c22010e1cbf1e
+Tag = df5f21f32cbe5d272004f1c104cbcae9
+Plaintext = 396b27afd16a1081f37bbc1f742b549f5f68df799b93083f
+Ciphertext = 7dab272faeebf2840f6b3f645f1b269c34f3b38325eac16f
+
+Cipher = aes-256-ccm
+Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309
+IV = d5c7824af715bb7822b6b340fe
+AAD = 860f4a09ad8b3d345c2aa18ffb803f0bc3b734a4d047a1437701a5e3d95288
+Tag = e678a392d228b210dc5c991905dacf3f
+Plaintext = bc8b3bc48c7a88c9fafde258b6ccaa9d4f0d018703d63871
+Ciphertext = 95f083ad6bbaee6ab540fe023858f8baf25e333fd3e89c00
+
+Cipher = aes-256-ccm
+Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309
+IV = d5c7824af715bb7822b6b340fe
+AAD = 8a84b57915bdbe7bf5a1c1a426512b3c178d883251cc46c95a8bbc8ed9e56b
+Tag = 10fbdd3b305522dae6b652322d89d9ac
+Plaintext = 9499ea48edab9bc21b91dd614f04934ca20db8630622f481
+Ciphertext = bde252210a6bfd61542cc13bc190c16b1f5e8adbd61c50f0
+
+Cipher = aes-256-ccm
+Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309
+IV = d5c7824af715bb7822b6b340fe
+AAD = ed8540f7ce451c522c1ff5d2d1030d7b3fbd1219a21aaa84044c4f23c08f5d
+Tag = 8b6b08548e794eaf85ad9f5de80b1c00
+Plaintext = 73843a4e9e7937fed24bb1fae15822213b1aa86c07f1b5d1
+Ciphertext = 5aff822779b9515d9df6ada06fcc700686499ad4d7cf11a0
+
+Cipher = aes-256-ccm
+Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309
+IV = d5c7824af715bb7822b6b340fe
+AAD = 61bb196b212feab645f05a8aa1986f6210a384c15bc749245d840b3565fb36
+Tag = cc73643a7ee9291e15137d7046a92f3f
+Plaintext = a8e24266e5981b2ed14213a29f961cbbf7f02f63a33c987e
+Ciphertext = 8199fa0f02587d8d9eff0ff811024e9c4aa31ddb73023c0f
+
+Cipher = aes-256-ccm
+Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309
+IV = d5c7824af715bb7822b6b340fe
+AAD = a49c2df94ba65107f375ce1c53b72406143f6bcd270945de5b7811682fe361
+Tag = 204438662ea82f423a69c6e4e3c0623a
+Plaintext = 3e3c402caeca41687d12897102e04312edf7b8c7d8567a22
+Ciphertext = 1747f845490a27cb32af952b8c74113550a48a7f0868de53
+
+Cipher = aes-256-ccm
+Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309
+IV = d5c7824af715bb7822b6b340fe
+AAD = 7c48480e9bc87ba299e03899698b2259eef150ee0f2efff40a5583b80ab484
+Tag = 6ea00b9cd881e3f4b1e838dfa31f6560
+Plaintext = cfa9292b9052ac6bb863205d3c0dc2d9e20d2ba6a680d2ed
+Ciphertext = e6d291427792cac8f7de3c07b29990fe5f5e191e76be769c
+
+Cipher = aes-256-ccm
+Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309
+IV = d5c7824af715bb7822b6b340fe
+AAD = 5cf9744090366d828b477dc890eab8ebebd44f6aeaa5b101291bf67d12867e
+Tag = c59b3b87d722a58cd1de58f3963d12b3
+Plaintext = e0fe4e139ab0deb4fdf2145b719f35c50b869e6cb20608b5
+Ciphertext = c985f67a7d70b817b24f0801ff0b67e2b6d5acd46238acc4
+
+Cipher = aes-256-ccm
+Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309
+IV = d5c7824af715bb7822b6b340fe
+AAD = 761d74be5fae170a1bdfa16081b44c1e49972e15ce0818df1390bf7204f619
+Tag = 158759886124f1f0ce8147c94f4e7114
+Plaintext = 665fdcdf55a1231e9912562eaa5a5011d69f6948e29e3f8f
+Ciphertext = 4f2464b6b26145bdd6af4a7424ce02366bcc5bf032a09bfe
+
+Cipher = aes-256-ccm
+Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309
+IV = d5c7824af715bb7822b6b340fe
+AAD = 9815353b69d0b4effa52cefff13703fa71a6296f9cca0f02568661be4b64cb
+Tag = 6310a79c9932456dbc00515b264f3168
+Plaintext = 7b2d52a5186d912cf6b83ace7740ceda3f5f443530c5a49f
+Ciphertext = 5256eaccffadf78fb9052694f9d49cfd820c768de0fb00ee
+
+Cipher = aes-256-ccm
+Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309
+IV = d5c7824af715bb7822b6b340fe
+AAD = 69dd1a050c8d79dafbbe3403af4dc1f070b9b2b980888aa796e6cff68d9060
+Tag = da7e97f9984a7db3b93aefb4316d9acb
+Plaintext = 3cea5ff50167c5641066852fd00061df35b1f66bedb894b7
+Ciphertext = 1591e79ce6a7a3c75fdb99755e9433f888e2c4d33d8630c6
+
+Cipher = aes-256-ccm
+Key = 2e6e34070caf1b8820ed39edfa83459abe1c15a1827f1c39f7ac316c4c27910f
+IV = c49ccef869bb86d21932cb443b
+AAD = d37e35d7cdccd9824a1ae4c787819735e4af798a3beb49d4705336d6496853ad
+Tag = d6b14027324b657a56263df148665393
+Plaintext = 771a7baa9cf83aa253349f6475d5e74dba4525307b022ba7
+Ciphertext = eebac2475004970071dfa2cfb855c4e78b1add8dcbccfc0b
+
+Cipher = aes-256-ccm
+Key = 2e6e34070caf1b8820ed39edfa83459abe1c15a1827f1c39f7ac316c4c27910f
+IV = c49ccef869bb86d21932cb443b
+AAD = ab22bc22bf2628b0e0ab245c3db2fc5128d13a011c2cc9b9fea05a79a3410704
+Tag = a8c810b6944815fd2e434193520b1d5b
+Plaintext = dad95a4b4d3754613f0542caa62cfe4e375dfbdd369ec32e
+Ciphertext = 4379e3a681cbf9c31dee7f616bacdde40602036086501482
+
+Cipher = aes-256-ccm
+Key = 2e6e34070caf1b8820ed39edfa83459abe1c15a1827f1c39f7ac316c4c27910f
+IV = c49ccef869bb86d21932cb443b
+AAD = c48c5aacf701137fc40fd0d3649641aaa5be427ceee702cf7ddf6408f458a581
+Tag = 8aa447b79284c588bef50b423de97908
+Plaintext = 3f28df9263e473be648fabad163aa4142b633388b16d8392
+Ciphertext = a688667faf18de1c46649606dbba87be1a3ccb3501a3543e
+
+Cipher = aes-256-ccm
+Key = 2e6e34070caf1b8820ed39edfa83459abe1c15a1827f1c39f7ac316c4c27910f
+IV = c49ccef869bb86d21932cb443b
+AAD = 477c2484cf5c56b813313927be8387b1024f995e98fc87f1029091c01424bdc2
+Tag = d4f4a413eb3ac2c474134995d4db9a16
+Plaintext = f83107b50a1f192ed45cc43fa80e6b519bfd859173ea9ee9
+Ciphertext = 6191be58c6e3b48cf6b7f994658e48fbaaa27d2cc3244945
+
+Cipher = aes-256-ccm
+Key = 2e6e34070caf1b8820ed39edfa83459abe1c15a1827f1c39f7ac316c4c27910f
+IV = c49ccef869bb86d21932cb443b
+AAD = 143bc037f1d0bd4ec16825c58cb3796bf8989200d27bda9beabbbc49247f59f7
+Tag = 56a3fb2e06734b28fbd57942a609d914
+Plaintext = dfeb324ba459ec4a5c54d2534e98002412e67db19cfc66bb
+Ciphertext = 464b8ba668a541e87ebfeff88318238e23b9850c2c32b117
+
+Cipher = aes-256-ccm
+Key = 2e6e34070caf1b8820ed39edfa83459abe1c15a1827f1c39f7ac316c4c27910f
+IV = c49ccef869bb86d21932cb443b
+AAD = ffc416f1dae4e43c1a01339a604c44d6a0f25ab9ca3978c6aacb6d270d510ee6
+Tag = db94280d3c4a1cd8cb00705f60ae36f2
+Plaintext = 0765949e6f22c422ebd47dc1ed73f1b849d7a058a1656fc2
+Ciphertext = 9ec52d73a3de6980c93f406a20f3d212788858e511abb86e
+
+Cipher = aes-256-ccm
+Key = 2e6e34070caf1b8820ed39edfa83459abe1c15a1827f1c39f7ac316c4c27910f
+IV = c49ccef869bb86d21932cb443b
+AAD = 6090b596b4082ec6926576137f6561cf13916860ad1cfc43650d1b5142a12041
+Tag = 12caca26cc3bbb289da3be0616b3445f
+Plaintext = 6db320cbe76bc5b8cee9ef89aca11765571c6c501993195a
+Ciphertext = f41399262b97681aec02d222612134cf664394eda95dcef6
+
+Cipher = aes-256-ccm
+Key = 2e6e34070caf1b8820ed39edfa83459abe1c15a1827f1c39f7ac316c4c27910f
+IV = c49ccef869bb86d21932cb443b
+AAD = 178ba75adb7c5bea6769270bb3b4f6ce208d4a786913d3ced7bb4090b5f65544
+Tag = 6cc8c665289d907628eb0e299c2d411e
+Plaintext = 0875020959ed969cfb38636d1d5aabce9658b00171a7614e
+Ciphertext = 91d5bbe495113b3ed9d35ec6d0da8864a70748bcc169b6e2
+
+Cipher = aes-256-ccm
+Key = 2e6e34070caf1b8820ed39edfa83459abe1c15a1827f1c39f7ac316c4c27910f
+IV = c49ccef869bb86d21932cb443b
+AAD = 90f0474dca998916075b1b1428df14d90be05491bb8d5d88e32e65ec890ba9d3
+Tag = f7e481607a2a0529f9cda1d5903325b7
+Plaintext = 4f89ca6ad371f86a6e073ec12fb1b928bb10d6639233b918
+Ciphertext = d62973871f8d55c84cec036ae2319a828a4f2ede22fd6eb4
+
+
+Title = NIST CCM 128 Variable Nonce Tests
+
+Cipher = aes-128-ccm
+Key = c0425ed20cd28fda67a2bcc0ab342a49
+IV = 37667f334dce90
+AAD = 0b3e8d9785c74c8f41ea257d4d87495ffbbb335542b12e0d62bb177ec7a164d9
+Tag = 84d71be8565c21a455db45816da8158c
+Plaintext = 4f065a23eeca6b18d118e1de4d7e5ca1a7c0e556d786d407
+Ciphertext = 768fccdf4898bca099e33c3d40565497dec22dd6e33dcf43
+
+Cipher = aes-128-ccm
+Key = c0425ed20cd28fda67a2bcc0ab342a49
+IV = f7a5098b2a4d92
+AAD = bc498326755503ff25d02805eb3517221b54eb4fd79af0fcdf9312b2a9ad95f7
+Tag = 697b41c9a69acaf8386140ee6e36f406
+Plaintext = 3e2144e2a381b718962a77e167778bf579957a8fae29612c
+Ciphertext = 98ce91033fabaa8fe853d347be6cbe5de102fdccf042e7be
+
+Cipher = aes-128-ccm
+Key = c0425ed20cd28fda67a2bcc0ab342a49
+IV = 732d2dd64b4a25
+AAD = 495b03df82e317e4f351c5323d17c673f4c77856983179d7c7cb75c2b0573c72
+Tag = 2d442ff663242fa269c4a742a220edc5
+Plaintext = 4bb0d170bdcc70fd18f19605cf9c6181082c4367f1e6fbce
+Ciphertext = 9bd9304259962448fa8487bc15d950303621213afd88f1e3
+
+Cipher = aes-128-ccm
+Key = c0425ed20cd28fda67a2bcc0ab342a49
+IV = fefd3ac595428f
+AAD = 91ffb6be8e129cef9189f7e0fec8e937afcfc6083b6a79a778a724bb3e8d0794
+Tag = 564a2f1cb7d77e0223287740d5ff9003
+Plaintext = 9e8c4f1292e8d7e5179b34ae5d2ba2491d7754acc54bb91d
+Ciphertext = a5d012b3062cc93b831860d76539169c88854b85550c67fc
+
+Cipher = aes-128-ccm
+Key = c0425ed20cd28fda67a2bcc0ab342a49
+IV = e14d81ee3b873a
+AAD = ecdc5249ceb48e8d5a4483043921c00c1acb1843fae00155a28f3a127150b1c4
+Tag = d217fb611daeb66fa2d8e1bd43cb2131
+Plaintext = f99e23288e6b5ae85c14610994d90d5fcbcab62b4ed1333e
+Ciphertext = cc4ee711d0202deb58664e00cf0cf70b737f48ddadcefd6c
+
+Cipher = aes-128-ccm
+Key = c0425ed20cd28fda67a2bcc0ab342a49
+IV = 2cbeaba94dbbd1
+AAD = d129674c6c91c1c89f4408139afe187026b8114893d0f172f16469b183fee97e
+Tag = a45116736e95d823e579d73dc31dc487
+Plaintext = 1b42cb685bd462fbd40e0273a81c767aa81cb43f17d3c0c9
+Ciphertext = 1a1b1c7130aa63098dea17ffbb2216d1d276cb10145b0762
+
+Cipher = aes-128-ccm
+Key = c0425ed20cd28fda67a2bcc0ab342a49
+IV = 8a961df9c23f6d
+AAD = 07185502bf6d275c84e3ac4f5f77c3d4b30d8e106603be84410c11849a3c18ea
+Tag = 837ed517dbd7e6fe34ea42b01c69d370
+Plaintext = 434e182d04ecda519a6119fbaa4c45e8c9803a9a3eb51dae
+Ciphertext = 3f603939c6226d8208b2b0e675b82557609ceaeeee4032c7
+
+Cipher = aes-128-ccm
+Key = c0425ed20cd28fda67a2bcc0ab342a49
+IV = d3604d390faab3
+AAD = c95e7329d36145664da69d25f24b301d334e1bca2baa74b2d5c325ed7d04fae4
+Tag = ef2e0b322f51abb366a1e8e37f4fe4ee
+Plaintext = ee104be898a225eb1da99163bbf768d8ae6d5850af6f8767
+Ciphertext = 3e6a7683d9d804f791f77d2b69996102ba82477ec4557747
+
+Cipher = aes-128-ccm
+Key = c0425ed20cd28fda67a2bcc0ab342a49
+IV = db5004a1cdae8e
+AAD = 1370fc9d5bf1ad2d071be5a28b235402a85270f536b5601c221519a3b329c71a
+Tag = 2e4ef944778281ed186b4a8099b47fff
+Plaintext = 59bee7d18fd4ba573f3e4f61076f5b9f6a3487e47d98c729
+Ciphertext = 6db54d6f5c3f3efa6da67aea1234d46e8b679a5c257c66d8
+
+Cipher = aes-128-ccm
+Key = c0425ed20cd28fda67a2bcc0ab342a49
+IV = 783477f981ef05
+AAD = 04bbf2a826bdf3d55069b1936c4f8e8e08189f54066a035c950c7347604b1b65
+Tag = bc5c098625c51ac7fdd15da2cc9ef4b6
+Plaintext = 6150f132b25727ebbaed9f16bd91ebce00c68e5b39bc0ef9
+Ciphertext = 36f78cef22cacaf9f3d4464821737f7fbacd79be517b4727
+
+Cipher = aes-128-ccm
+Key = 0b6256bd328a4cda2510d527c0f73ed4
+IV = 21fd9011d6d9484a
+AAD = 66ff35c4f86ad7755b149e14e299034763023e7384f4af8c35277d2c7e1a7de2
+Tag = 4034d9fdb43c3f48932aa72177b23bf6
+Plaintext = 78a292662b8e05abc2d44fbefd0840795e7493028015d9f2
+Ciphertext = 5a0be834c57b59d47a4590d8d19a1206d3c06e937a9b57f7
+
+Cipher = aes-128-ccm
+Key = 0b6256bd328a4cda2510d527c0f73ed4
+IV = 97f940d7c1230bd8
+AAD = 78337ddfe38be7897372b0f805603a9a9e55598452285764641c3bb7aeb54a3c
+Tag = a20a3995cf25c5a7b9477d8916adff73
+Plaintext = 772aeff60eb3adf5a9589ad54dda0401cc9765589609dbd3
+Ciphertext = ef5c408dc6d0b501925a47def54d8deb9880a07a3e6380bc
+
+Cipher = aes-128-ccm
+Key = 0b6256bd328a4cda2510d527c0f73ed4
+IV = acfdf302ed116ac4
+AAD = fe9d9989bffae3c9e6161eb0aa9d54ee8f5051f0dcabb5a750c5478c11798ce1
+Tag = 7d0e2fe322f203c08f44d7f9bd7258c3
+Plaintext = 99ffe16de323a9b65fe60305a2d062cae490ccca6d9fe9da
+Ciphertext = 1bbc2c7877d845591660636cb6ccf4edcd4c156996a26a70
+
+Cipher = aes-128-ccm
+Key = 0b6256bd328a4cda2510d527c0f73ed4
+IV = c8d36e13b7459c47
+AAD = 3f3c3a4c26dba18f385274ac5ac3df73282686488d91bc8190b7f61071b07f62
+Tag = 05fdd72307c3355b19ea66d4a16ef17d
+Plaintext = 316ee95430329f706348886b8ac7779e3056809e25da0a03
+Ciphertext = fd2db9611a26a3e90f4861467df60edcc595f442332b0899
+
+Cipher = aes-128-ccm
+Key = 0b6256bd328a4cda2510d527c0f73ed4
+IV = 5822755a3e47c27d
+AAD = 1d72d6b371e85ca359483761704f80b3360f4d6610e6d5e490b0d509f73c3233
+Tag = 59124db19ab1373a5376f46ec7095ef4
+Plaintext = af4ae8f19cf6cbd199677fe033859f56906f1979b1b5926d
+Ciphertext = d5ed6f8d5c42f4f3ea527094173b278724a2ba787e416ad7
+
+Cipher = aes-128-ccm
+Key = 0b6256bd328a4cda2510d527c0f73ed4
+IV = 6c1c94c2e71b865b
+AAD = 298cac1e4684182786f386ef3de79c11e30b2dab7579b8ca18d0312200860403
+Tag = eaa52d69ab9790edc384b9a5d8c91dbf
+Plaintext = 6e4d992d7541e02a4aa167e56c7e47206abc25fea6c5125d
+Ciphertext = 560cd43a502a6e8b1af478a3b640a68937d1a83057110d38
+
+Cipher = aes-128-ccm
+Key = 0b6256bd328a4cda2510d527c0f73ed4
+IV = ce7ec65cfeda31da
+AAD = 13c1298cbf7fe6a9ab378f86d3c2207944cc2a232f9383513ceb3b202086d365
+Tag = b1f45de395e021c6fb1b2991c91bd643
+Plaintext = 196c80d02b663bdd89fdaa31e329b5a8f7c596236ee8dd80
+Ciphertext = 00174dd83a7f8edc71afbe5da095160336be9184f693db3d
+
+Cipher = aes-128-ccm
+Key = 0b6256bd328a4cda2510d527c0f73ed4
+IV = ddb739acda6c56ec
+AAD = 7f89bbe513b9a7ebe9be3f6eb88782080593c83e8cbe47fbe15bdc3e5782090f
+Tag = 713d941b845d96a5bf65e9f80ae7f923
+Plaintext = e95e142217c838d1f998a52e342e4f2d80b1cfd35cf6b73d
+Ciphertext = 819d73dadaf095652cf39729b2e2cad7fc7783887a5acc15
+
+Cipher = aes-128-ccm
+Key = 0b6256bd328a4cda2510d527c0f73ed4
+IV = d9bb71ad90152d5c
+AAD = 20bfcba120cdbeb07c5f4d70338ffce493822d78a03c9e80b5b934e16e39f70e
+Tag = 5e99761cb1ac77d772b9cce9345d9a75
+Plaintext = f1fe98b50ea2f9f088f6f93910757cf744d5aabf3081966d
+Ciphertext = 36decda8ade6ab104a201c6d370412b907a559738eef5966
+
+Cipher = aes-128-ccm
+Key = 0b6256bd328a4cda2510d527c0f73ed4
+IV = 2c9ec9f1f1358c50
+AAD = 96f0b1edec4ad14407dcaf30ed68942b46c48d58b2dd63af60fccd5bdd48e560
+Tag = 85ce60506ac3bd97327904ad2e072a6a
+Plaintext = d74badb8ad7f2c2bcdf67e497151d35a4fc2a3c4c871868a
+Ciphertext = 0e9066270da6e03cb4307c43adc71b4b596213a63fc80320
+
+Cipher = aes-128-ccm
+Key = afdccc84f257cb768b7ad735edbd1990
+IV = b7776aa998f4d1189b
+AAD = 9f9ac464de508b98e789243fdb32db458538f8a291ed93ddf8aeaacfbfc371aa
+Tag = 3e259aecf12ba08f2a2e966a3341d6d4
+Plaintext = 56d0942490e546798f30d3c60ad4e3e110fc04f5b1c1fa83
+Ciphertext = 96f124c74fd737819008ddef440320f4a3733d0062c83c89
+
+Cipher = aes-128-ccm
+Key = afdccc84f257cb768b7ad735edbd1990
+IV = 278cf1f09b13f467fe
+AAD = af9627922758a9f7792345716782e8837ca78e8f9db16e3fe12a7124a3d4e99d
+Tag = 11751638ed36c1fd3c7268b71633c1cf
+Plaintext = aa9b9e80cef47b6db3816b1d665f233e696337e21bb8333a
+Ciphertext = 5eba7e3b3ecab78121b0d56acb9dbfc6756c1255b42f145d
+
+Cipher = aes-128-ccm
+Key = afdccc84f257cb768b7ad735edbd1990
+IV = 4ae701103c63deca5b
+AAD = 5872a1507c833c581ac2750b2b54add4b92be14e45d72db7679f8fa2b4d1eeeb
+Tag = d3635aa1d8167087600b01643b0a5ce5
+Plaintext = e832b053854fbd40c0d8b6d6b8fd5de2da0c173f5fe594ef
+Ciphertext = 3b2b964c3a90d51c0ace186db79818b4d0f7b81236d36017
+
+Cipher = aes-128-ccm
+Key = afdccc84f257cb768b7ad735edbd1990
+IV = cfb5b12928e1c36849
+AAD = febe755bb8e4475d8d12f5e96269abd0d4e40d73cb966e2c523343e9a6d2d71a
+Tag = ee6f8c4b252e10b42fbaf8c7af1e9f3e
+Plaintext = f46d6970dcc37d32d93ff062e68034c1906ee487fd28eefa
+Ciphertext = 0d5332a42fc583f4f81744b899cdf2a64cad1e78d577112f
+
+Cipher = aes-128-ccm
+Key = afdccc84f257cb768b7ad735edbd1990
+IV = 68d5863cafc69e6ceb
+AAD = 048ba28abb191ded5449dfe9dc7d19f9b132a2a9fd779aab7da44d2887485954
+Tag = 3a8639f21f8548fae45dc76de57bcee0
+Plaintext = dd4438d7ba3edc73872e42dbbf78cf300fe4bf0eac9e16b6
+Ciphertext = 874d3ef7f916db2c2799b6892ef4bfbeb4729ecbf26ac498
+
+Cipher = aes-128-ccm
+Key = afdccc84f257cb768b7ad735edbd1990
+IV = ea09fbe5da0fa4fe91
+AAD = 63ee18eb720b21ee4c157dafcb8c7bcc6817f54d5c1b8dd7058c37228a03f8ad
+Tag = 1d3853a52971b0ab46cc0a3eded435c1
+Plaintext = c1811d613bf0789beeef693611ef733cd173da703b66ab3c
+Ciphertext = cbe5c799952b28fadf414607a6cf8194e9f41194abace454
+
+Cipher = aes-128-ccm
+Key = afdccc84f257cb768b7ad735edbd1990
+IV = 0021be18ed76b3a34c
+AAD = bb5eded483f0ae1106fd08c5e2b91cf06d3a7a73518ad4c479fb05e631ba5399
+Tag = a2a8e3cfb827c7e6edabb34f7bbafd01
+Plaintext = 2d5531d1c51c6ea100b028596bf9f24dd90be14eab58f07b
+Ciphertext = 7af0449f7359b7f3e5f6c1e7bc264c7724037f4f16077fd0
+
+Cipher = aes-128-ccm
+Key = afdccc84f257cb768b7ad735edbd1990
+IV = 449b51ee0760179e35
+AAD = e99bdf783070a3a48431704e90277ca65a9704c12eeae2e2d70b62f816115267
+Tag = 4aa8feae6a500919a336dbba1d9fb7e9
+Plaintext = c4896d58442877c986e4f862a9f3a3179f0e9b96316a90d8
+Ciphertext = af7531c073df01077fd5c8ea9a5530c2fe1688d529e5c2f2
+
+Cipher = aes-128-ccm
+Key = afdccc84f257cb768b7ad735edbd1990
+IV = 232114642e0c6b55b5
+AAD = da288d2014616f16a2abf5923dea49aded1748592adbcd97415c33ebfa57150d
+Tag = 0b25cea7ed6e4fe9069a2ce49875230d
+Plaintext = 11fd3f94b5a5ce94f2740a27a0771aeeac77f3155d2bc12c
+Ciphertext = f0c174a7927da0bb88e92917af8ae1df4ffc3527004e9e2d
+
+Cipher = aes-128-ccm
+Key = afdccc84f257cb768b7ad735edbd1990
+IV = 660cb6d654afcbdab4
+AAD = bd96c3c225099fc58cc1f97779304606b11efe9712fba13abf74fc1d7d44a900
+Tag = 6218635754d5563f2cd48bdbb267e5ca
+Plaintext = 793c0bc3deb6e0bec4c1d1fc17e455eb1aa5e9e25cada861
+Ciphertext = fa4b14a381ee41fec7b7279e58f0d06a3beec26d645f8133
+
+Cipher = aes-128-ccm
+Key = 6ccb68d3838d4ddf660b9cd904cad40f
+IV = c4fb7519a19f13d9d1fc
+AAD = 092e64fef08b5655a86cdb8de63ffaa7772e8730844e9016141af8bad2216246
+Tag = 5603ab284a73a38cc916f8b653c92ab4
+Plaintext = 5ea35c082e2b190e9d98e6b2daad8672f587b4f2968072fc
+Ciphertext = cda5fe3d15d00150b99120c7f206b88a4c2c4a39ca914342
+
+Cipher = aes-128-ccm
+Key = 6ccb68d3838d4ddf660b9cd904cad40f
+IV = 45927852550961f1ae9e
+AAD = 53ae030474795ffda4d9ac0fc3c45afb592ddd761f7b5335c13a6747e21075a7
+Tag = 35bb811491d142cf1b26350f8451bd14
+Plaintext = 6c5f468077536b4c9a94ea4a6fe3cf621083a210daee45b6
+Ciphertext = 694847b6429cbc3902d9cb7049625aef1e97b569e1e31690
+
+Cipher = aes-128-ccm
+Key = 6ccb68d3838d4ddf660b9cd904cad40f
+IV = d8c54463dfcf02d0e327
+AAD = ff95c0ed0da32d1b5f57570b815a50592ecdc9c1c4e727e0f6dfd93fc10ce88d
+Tag = 9c68e8e641b0120f7dd66e8f0cfa4205
+Plaintext = 7321a6de8d694ea05623206f5df438c5c2cdd6b1eccab4d8
+Ciphertext = 9cf8ef119aa5cf3d6305d50b2b520a0b10bcd240e2727674
+
+Cipher = aes-128-ccm
+Key = 6ccb68d3838d4ddf660b9cd904cad40f
+IV = f690f3a996928275050b
+AAD = 41c05fda535770699ed22cef253753b658437f833afe65c9c393581d835f0fea
+Tag = da44a62f97c0fead3f65b28928bfbcc3
+Plaintext = 56520a4bfd7b73a471e0446f9524a407e81c2681b7329e35
+Ciphertext = 14aa15f9f64c4c64f6e88094e012ecb24193249f044c033d
+
+Cipher = aes-128-ccm
+Key = 6ccb68d3838d4ddf660b9cd904cad40f
+IV = 26eb9ef25be62148fa61
+AAD = 8f45608a07521de86ed5a84a851e629b579b51d7bf4cc7202a773e0f9e9d8748
+Tag = f0d5444466bcc631bef8e58fe5818af7
+Plaintext = c68094c26c7f017b79f126dc26b3bbcb95f97535ca412da5
+Ciphertext = 7ba8a0c2fe2b230768d1c1874085ddff8926931961bc4558
+
+Cipher = aes-128-ccm
+Key = 6ccb68d3838d4ddf660b9cd904cad40f
+IV = fad21bc27dabafe7a4ae
+AAD = dc5d7fd97bb3243ba585fa0d71a07191667af418e30a6b76bedd05b32c673403
+Tag = 0b5419293a67eb008aef0f9f675201df
+Plaintext = c247fa8d8091cd3f299cdacba7fb7af93549e9e3160f9cf8
+Ciphertext = 3097d2ec0f8bf00b22504ab03a75e740d3e59c269c3ee3f0
+
+Cipher = aes-128-ccm
+Key = 6ccb68d3838d4ddf660b9cd904cad40f
+IV = c911348848fe67406dea
+AAD = 50d50a0b5ed4d6904ec3045263af0255a6494b7a7e2e95ea806c4bb788423dc1
+Tag = dec5a554f4bbecbf6943ffdab8d8a26a
+Plaintext = d846c170ae0111348362901503b26d58f5efc17b6d296aba
+Ciphertext = 5d72562f7dfb47bf34b90ee4ea11ff9f726c915b07f4d843
+
+Cipher = aes-128-ccm
+Key = 6ccb68d3838d4ddf660b9cd904cad40f
+IV = bb921b46a16d20ae4046
+AAD = 7d17f8f60ad1e61a168b5b0e7fbbc90cee79b612b6d6c0d7ff6ede042341e8a1
+Tag = e5b1162b7489a59a50c0f0f3618e6c2e
+Plaintext = 71bb6ae84262646c9be95e0f4289ffeab7555ec6746c6ae9
+Ciphertext = bac123320888b553666249756e6d63b3498760791cbe9e34
+
+Cipher = aes-128-ccm
+Key = 6ccb68d3838d4ddf660b9cd904cad40f
+IV = 61a8b8cbfc9bdbadb2a3
+AAD = 51cf2a8949e13eaa087a34c9ec4d7fd92b862efd6a0b1fef8b016fa2c6933426
+Tag = ed5505f1f0ff77723771338585c456b7
+Plaintext = 362f9a46aab59fb6213c83d791b2129b34367ac2de2048fb
+Ciphertext = b8a57e8714d8789f4ef2af29e0efec21b1ef67fdabc7cdf0
+
+Cipher = aes-128-ccm
+Key = 6ccb68d3838d4ddf660b9cd904cad40f
+IV = 6bc4cd23c32a913998a7
+AAD = 92fbc970b5e64198ce2a138de92767edff8d82f12f8832444b346d159657356b
+Tag = 714025f485c7f40256049f16f859b859
+Plaintext = fa442383da234cf8f0c5fb667218bc3bea0c091b3a8e6b77
+Ciphertext = cdfe3e83aba43a9804c5a1832e0e47a9a153359cc32db907
+
+Cipher = aes-128-ccm
+Key = e6ab9e70a4fb51b01c2e262233e64c0d
+IV = 74e689eb5af9441dd690a6
+AAD = 42f6518ee0fbe42f28e13b4bb2eb60517b37c9744394d9143393a879c3e107c7
+Tag = 16f322ce85d7c54e71ac560fd4da9651
+Plaintext = ba15916733550d7aa82b2f6b117cd3f54c83ddc16cd0288a
+Ciphertext = dcc151443288f35d39ed8fae6f0ce1d1eb656f4f7fd65c0b
+
+Cipher = aes-128-ccm
+Key = e6ab9e70a4fb51b01c2e262233e64c0d
+IV = eb118fb41284bfcb1bc338
+AAD = b5a6067fbac46578cfc8d3fe04108588c9de077eb009249374f205553bba9d02
+Tag = 4a0177883346dc896eb39e8a32bc1393
+Plaintext = 863da00c7accf45418d47c1eda72338734dcc49cd599f328
+Ciphertext = d64de7a56146b971e21bf5784d67bab32dd837cfb81591da
+
+Cipher = aes-128-ccm
+Key = e6ab9e70a4fb51b01c2e262233e64c0d
+IV = caba2716d07e95de83855e
+AAD = 0e0ff2c73ea5fa8f8726a3514cf906ce1610a1a6dc19b22682f9e4619f762d82
+Tag = 775ea25fb272981de8b8aa0a637498fb
+Plaintext = 2af6d5636ab65db2058b2ba16df257369fc4e8aef8b9481c
+Ciphertext = 3c9e006c7d8eff5f448b0cc9c27c964713241aa7fed3665d
+
+Cipher = aes-128-ccm
+Key = e6ab9e70a4fb51b01c2e262233e64c0d
+IV = 314c136999e41d137bd7ba
+AAD = 366c659bc45d0a88acd54ef7eeaa3e140e1cafb1b01474a065a9d460c5e83bfd
+Tag = f2aaa211dec623947a50b1252bc5aad3
+Plaintext = 217b19ea6a431a1f66bd9d02b718e8507a08ab8e6f603e3f
+Ciphertext = 33d7b672b23e8b03a39ff3fd1e7b0f2be67163e3e3bae072
+
+Cipher = aes-128-ccm
+Key = e6ab9e70a4fb51b01c2e262233e64c0d
+IV = 6fe51f5013f53d4e4fd907
+AAD = ff182f2e179d790e827cbfd0bd8b9297ecae57ffcef9e25ef114474a22e4ec5b
+Tag = 75ed171bb0fbaa6f431c5411cf9b536d
+Plaintext = c6bf582b49dd4ab6cb33f3f88e8a4d14fe32b308ee3b4682
+Ciphertext = 26cd5dc5eac2acda283ca03354260ad57af79e20c5e92f57
+
+Cipher = aes-128-ccm
+Key = e6ab9e70a4fb51b01c2e262233e64c0d
+IV = 24bc8dc1e2354667b79ba4
+AAD = d0d48d01fc79685c6bee04d45e40d06cdf1f4607542b1ece556fc2d1bb2b03f1
+Tag = f391749ea3acd624c01e4583ab1506b7
+Plaintext = 90f52ebb1bd5439386faeaa194623285f750672a7baae64b
+Ciphertext = a7f43f56c50705a1a101044b954414fdfbe32b518e934d38
+
+Cipher = aes-128-ccm
+Key = e6ab9e70a4fb51b01c2e262233e64c0d
+IV = 89ce46b3de3afaf2518d41
+AAD = 5767202c913584d653f37d926a0c5ac1c67db3efd1dc58fbff998778a6856254
+Tag = 94e43a6b1cf73cb2d6a1dd8331549520
+Plaintext = b2ab379a0dd15baf91415eee3a4e56e7eca54d4c1c3094f8
+Ciphertext = 9f530e455a54b86835eacd8801b34c884a3b2ac819ba38f8
+
+Cipher = aes-128-ccm
+Key = e6ab9e70a4fb51b01c2e262233e64c0d
+IV = d3208eb695e84c7a925037
+AAD = 91d8fa65a6885f162a795afe2898f391990a8b3a87c11f94734dcbddf5f58da8
+Tag = b27fb6425fcc3537ce471425a5b17dcf
+Plaintext = f15e39f0e4eaa5bf81359d8e30186522f1a1a415436668cf
+Ciphertext = 7f1d9fcd9e5cce3a81e3495bfecec817fd7180d8bbfe0aba
+
+Cipher = aes-128-ccm
+Key = e6ab9e70a4fb51b01c2e262233e64c0d
+IV = 067de2869333ed22c7b63e
+AAD = c31e441fd551b3fdfbe23ceec5ec1f838f31a5300f6055ad2a936a9d0c1c856e
+Tag = dfb879c21b46f3307ef22f1da579303f
+Plaintext = 1536d9c9a09302d142c85638202f5bbf0c287f68115d51d8
+Ciphertext = b1a5c7a7fd23228dc7ea26885802daa0719f6a23681e1d65
+
+Cipher = aes-128-ccm
+Key = e6ab9e70a4fb51b01c2e262233e64c0d
+IV = 15f61b4526d19bceae1093
+AAD = b97b122af73e928e617e98684f845be4cb80566345739b7a884c6a3eec5102bf
+Tag = 900504a73c8817ff2b55618b2602bf38
+Plaintext = 37c81988c07a5b01e2b40ff9f9ada5f50ca764efb717ff9e
+Ciphertext = 0d93a5c77482d573b7f1b8c5e283f2571efc9f54216a4c01
+
+Cipher = aes-128-ccm
+Key = 005e8f4d8e0cbf4e1ceeb5d87a275848
+IV = 0ec3ac452b547b9062aac8fa
+AAD = 2f1821aa57e5278ffd33c17d46615b77363149dbc98470413f6543a6b749f2ca
+Tag = 4829e2a7752fa3a14890972884b511d8
+Plaintext = b6f345204526439daf84998f380dcfb4b4167c959c04ff65
+Ciphertext = 9575e16f35da3c88a19c26a7b762044f4d7bbbafeff05d75
+
+Cipher = aes-128-ccm
+Key = 005e8f4d8e0cbf4e1ceeb5d87a275848
+IV = 472711261a9262bef077c0b7
+AAD = 17c87889a2652636bcf712d111c86b9d68d64d18d531928030a5ec97c59931a4
+Tag = 715a641834bbb75bb6572ca5a45c3183
+Plaintext = 9d63df773b3799e361c5328d44bbb12f4154747ecf7cc667
+Ciphertext = 53323b82d7a754d82cebf0d4bc930ef06d11e162c5c027c4
+
+Cipher = aes-128-ccm
+Key = 005e8f4d8e0cbf4e1ceeb5d87a275848
+IV = 6a7b80b6738ff0a23ad58fb2
+AAD = 26c12e5cdfe225a5be56d7a8aaf9fd4eb327d2f29c2ebc7396022f884f33ce54
+Tag = 86a0e926daf21d17b359253d0d5d5d00
+Plaintext = ba1978d58492c7f827cafef87d00f1a137f3f05a2dedb14d
+Ciphertext = aa1d9eacabdcdd0f54681653ac44042a3dd47e338d15604e
+
+Cipher = aes-128-ccm
+Key = 005e8f4d8e0cbf4e1ceeb5d87a275848
+IV = d8e133e7ff8e0a0ec6c4096e
+AAD = ef9e432c15d8c93a4b5c0666608e61c824cd466d7940d642acd3dc33057c0395
+Tag = 9f9cdf6ab825f6e026f5be2ad895033e
+Plaintext = 2836de99c0f641cd55e89f5af76638947b8227377ef88bfb
+Ciphertext = 5edb056d85dafeaaf74bdf4caa47339d6a75bf1ee998565e
+
+Cipher = aes-128-ccm
+Key = 005e8f4d8e0cbf4e1ceeb5d87a275848
+IV = 2fa8120398d1a946f391367c
+AAD = 377cd407ad28dc02bd3835a31d92f8295c9dbe597f56662ceda112c588dc73a5
+Tag = d3021f6ad620648b8196ab1693710398
+Plaintext = 7a37255b682766a0bfecf78e5162528885a339174c2a4932
+Ciphertext = 701f5f506fc7e9ea4a27a4db5cb890f7be3b4f6bcb20f97e
+
+Cipher = aes-128-ccm
+Key = 005e8f4d8e0cbf4e1ceeb5d87a275848
+IV = 8d638ef43f56dece910139e9
+AAD = 87ea7b095388de70ac0ed23e86f502400910028a8ab5e3bbb91d05821c0d2d61
+Tag = 2d236162688096d80b8733d2afbcd244
+Plaintext = 7370d9b453936955b9c9d336f4b283237986232de007bf41
+Ciphertext = be2f03f6ce1731418a5f53b6f6e467b73992a0c8102d8ffc
+
+Cipher = aes-128-ccm
+Key = 005e8f4d8e0cbf4e1ceeb5d87a275848
+IV = f479ea8812b6b2f6ac78fe9d
+AAD = 20c2b8f5d3a65a66ba8a25e2ee339a779a32d45f5db91077efae6cf308feef50
+Tag = 61bb9415b32d6a58f5f7647ed41de685
+Plaintext = 59ff9f7581a781808d36fed378080963f35c00ea5a6e3932
+Ciphertext = d127c956349c16e2186f55b72254c677f03c61f1c4ada9e6
+
+Cipher = aes-128-ccm
+Key = 005e8f4d8e0cbf4e1ceeb5d87a275848
+IV = 423515f7bd592d6a7a240866
+AAD = 19eef6f798fc68086aad1cda6d7976cdcfe6b8af74598032972c939db300d8c1
+Tag = 30ba95c4058501234a1b97543c998e9d
+Plaintext = 3c379f90b11c622a765756a15efc8fc3ca7b08b3281945f5
+Ciphertext = 15792e01fc17f5294c3405484291082c00a8f46dd9af8ca2
+
+Cipher = aes-128-ccm
+Key = 005e8f4d8e0cbf4e1ceeb5d87a275848
+IV = c3f3da69e13c5733039744b1
+AAD = eedf00aab5edefdd6549d37ed44358e11c588c24f141dc5731303fe0bd56b11e
+Tag = afca1b08b6dd589a17a32d49b6f7135b
+Plaintext = 9db6fe9adb8c0fee87cac9a7f01a7ed8a84f0512d09b1834
+Ciphertext = 9b6b829ca1dc4e90d4402188632ea3377cbec2ba60f0f072
+
+Cipher = aes-128-ccm
+Key = 005e8f4d8e0cbf4e1ceeb5d87a275848
+IV = 0a57d59f21ead5b6d80cd2ce
+AAD = de5f2d413c98c6ea2a5640a7b1c424aebe75cbc78b06710b5bff8bec6afb5a76
+Tag = f344f2f1b2218d9b4283fe640a6d315b
+Plaintext = 0b5f6389f7c20f4ba326e8f05d373ca27b7ebe59e6d729f0
+Ciphertext = 0b704e14bc7d2977d89e0b2e7ed7fe3c9e0f2ea80d2d6165
+
+Cipher = aes-128-ccm
+Key = ac87fef3b76e725d66d905625a387e82
+IV = 61bf06b9fa5a450d094f3ddcb5
+AAD = 0245484bcd987787fe97fda6c8ffb6e7058d7b8f7064f27514afaac4048767fd
+Tag = 2eb66bb8213a515aa61e5f0945cd57f4
+Plaintext = 959403e0771c21a416bd03f3898390e90d0a0899f69f9552
+Ciphertext = cabf8aa613d5357aa3e70173d43f1f202b628a61d18e8b57
+
+Cipher = aes-128-ccm
+Key = ac87fef3b76e725d66d905625a387e82
+IV = 2a27257bfaadf23a87df082c57
+AAD = 0001dc666c9daf3560daeaf514270db0b5075d295068e6caf231c1de0e1a9300
+Tag = 4cd9d735f51430275387c565cf1a69bc
+Plaintext = 6cbbfa6d736fbcc4cf73ab4d7be537420e0e574ee1f2d1b5
+Ciphertext = 72d525e6bb312bf2c20b91f41108779789c25720797ebffa
+
+Cipher = aes-128-ccm
+Key = ac87fef3b76e725d66d905625a387e82
+IV = b94ac8ed14895c80a91fda8367
+AAD = e1eaf35fb266f243a3fa407cd41815ae6432ad79877bfa59d8f196cbf19bfbb2
+Tag = c89fb5f507f5aeefaa9365f0b18dcb3c
+Plaintext = e6ec561496ce18d96b26d594a47ffad02d68ef25d2d2edb9
+Ciphertext = c63500445239bbdf71a8dfe3f8c01061d659cfeb038b825d
+
+Cipher = aes-128-ccm
+Key = ac87fef3b76e725d66d905625a387e82
+IV = bbae10aa491ac9c668a3ba8d7a
+AAD = 981fc31e64fbad244ba1ef0303ba1e4beef5bacca74f60ffdb9142a25a1ad5a3
+Tag = 83d0a61d453d596fbc5c2e315d9780bf
+Plaintext = b9bec3e2adc83620772048d6cbfb6f78e4fad74d754ffbbb
+Ciphertext = 9c629c375f014e162895cfc25a972c29839f97407e7c7cca
+
+Cipher = aes-128-ccm
+Key = ac87fef3b76e725d66d905625a387e82
+IV = e0b10e78e9fb41ee970143e9e3
+AAD = 399b71ecb41f4590abda79045cdf6495f27daaa559c1b34f513b5c4ac105ec10
+Tag = 8e8f8e13b7896b244d0c9aa52ed31a95
+Plaintext = 4b81804d777a59b6a107cf3c99c9d1a35bd8e4ed36596789
+Ciphertext = 867799b30558697d6efb4afcfe458cfad8da21139a0b4312
+
+Cipher = aes-128-ccm
+Key = ac87fef3b76e725d66d905625a387e82
+IV = 17b61109f5e37754e4e92a28d7
+AAD = 0bc2fdd890c19882640f8d4188b88b9db99cc1934cc3e98a5df08589287968a6
+Tag = c40eb85585cc3b7520a940a4e993327d
+Plaintext = 347c1eb4aff917bc0012f005e74caadc93f4f18f2b614ece
+Ciphertext = ee19f3120991b67b2389e6f36543d99590f2e6d785c9c8ec
+
+Cipher = aes-128-ccm
+Key = ac87fef3b76e725d66d905625a387e82
+IV = db3ca9e80ab761804349379961
+AAD = ce01369d08d37dcda2c899c9fc0d11ccf94a0051b2816a1d6c3ad07fc8dd02d7
+Tag = 401358c7b44aea27617b429583103a1a
+Plaintext = f0e1af1276d2918be91a191814660bfe735463d3983de1ed
+Ciphertext = 0f1b1228729b181772d7cf55ad257fbcb19cd46f7b31a885
+
+Cipher = aes-128-ccm
+Key = ac87fef3b76e725d66d905625a387e82
+IV = 1f57959cecbd377374477e33b3
+AAD = de1c7c83ac61e1f99ae99b198f4af5d24f8de60ea98fe637f3a801fab38b2a4b
+Tag = e93525fe8048c3b2147a149f12eaecd3
+Plaintext = 42a42b84df098ceb43519c4cb86c14c2fafca39346159e13
+Ciphertext = 12425453de653d0fe8103013fde1ebf4a8fe18f76f0c9d60
+
+Cipher = aes-128-ccm
+Key = ac87fef3b76e725d66d905625a387e82
+IV = c9db03e2efbab713b0b6404210
+AAD = a2969243b0955402ab45a430fef2ef9e0c025006732bf8e592e3d3884918696a
+Tag = 64ddee42614aa737231207636c114575
+Plaintext = d633a5a3defdde6a68f959ef39a91c6ea6e13ef1a7859d2c
+Ciphertext = 5cdc183c32b4c1878eb83e8473a17c55c88e2ad6b944ab1f
+
+
+Title = NIST CCM 192 Variable Nonce Tests
+
+Cipher = aes-192-ccm
+Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8
+IV = 764043c49460b7
+AAD = 6e80dd7f1badf3a1c9ab25c75f10bde78c23fa0eb8f9aaa53adefbf4cbf78fe4
+Tag = 2dd6ef1c45d4ccb723dc074414db506d
+Plaintext = c8d275f919e17d7fe69c2a1f58939dfe4d403791b5df1310
+Ciphertext = 8a0f3d8229e48e7487fd95a28ad392c80b3681d4fbc7bbfd
+
+Cipher = aes-192-ccm
+Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8
+IV = 026a0b8b17be95
+AAD = 44caa8ecfaf38e5e773cb0366e1b04aa0b9fac5c34a362310f471960c4a1e1c9
+Tag = fedf191496d88cbe17c6271b65096e66
+Plaintext = 0e52a384cedcdf7f179348de6e7336aa86f8855fbd903cfa
+Ciphertext = 3417044bad5fddd9455579123dda4fd342c273a57ff6333d
+
+Cipher = aes-192-ccm
+Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8
+IV = ea09fbe5da0fa4
+AAD = 1d9799f2bb0f7ab57fe3de27949ff64066131c81bfee172b308f9bb0b3171067
+Tag = d47e30b635d10d1663477d61d7ffb55d
+Plaintext = 469ff9698cfc96b581d7115c822e4363d7355ec5daed2eae
+Ciphertext = 1dae7cc16f1b469290902cfad47b959784b4d6f48a79e690
+
+Cipher = aes-192-ccm
+Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8
+IV = 8d27bcbf9ebfd3
+AAD = a7070b85b7add9193c9dcd2e6c03f6e7ecc52ffe9e099866baf7472f20c03aab
+Tag = 2eca8766bdf0db6bb2dcc793e1749c21
+Plaintext = 225651d072dc9d93762dd79691ac2b6ddba00ec1252d69eb
+Ciphertext = 5da819adefbf794612eb458519debcd524c283763eb3d725
+
+Cipher = aes-192-ccm
+Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8
+IV = 13f560187b6077
+AAD = c4ab4244db75f8256e55c5b613a07b11c963c3cc24f66128aad4ba8b7ca99331
+Tag = feab6761c55431bb5668e1f5b7505e89
+Plaintext = a38231af405dc7b70c8dbc8cb84e6be8a0dc2e95fddc2ce8
+Ciphertext = 3aedcf8347aa23fd3325ce08b6b00462536baed69968a753
+
+Cipher = aes-192-ccm
+Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8
+IV = 61e0e28bf344a9
+AAD = 5f998952de70449ad46428f2ff8a01c5af43c0107a1bcc6930f19d4112598666
+Tag = 64b2302ace4f66216ca8b4d776197692
+Plaintext = db21b37e875d7709a02239ce6ea529cf37255d5b617c153d
+Ciphertext = b8f5fed39c723d7643d6dcf2efd3bbd1ba0da1ec901305fd
+
+Cipher = aes-192-ccm
+Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8
+IV = f6be4aad63d33a
+AAD = 18339be863fb8a887d04ae9ff3b4a7db095075cd5d113a9ec87b41fe85ea405e
+Tag = effb985b9c2dd9ec954bd25d9c464c67
+Plaintext = e53101e6eabcda32c13d7b1dd1d88e7c2ca3ddc2064f64c6
+Ciphertext = b758858ab60e1630a0883d4d330119a593729a3015c42525
+
+Cipher = aes-192-ccm
+Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8
+IV = 2c1c59aa0d8eff
+AAD = d44af86b89fda8448a9b2fcae20ea156dd8738c8251699c02b785811c830bf72
+Tag = 72adafffbacb297d67f6b5c02b982e04
+Plaintext = 1fd7188a43dee7b059420e8634d71d2c0658f6d0d308dc73
+Ciphertext = d046f845a67800a5a58f461e5a8641e8fc9b4c53b32e61d1
+
+Cipher = aes-192-ccm
+Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8
+IV = 48e4598edd191e
+AAD = 61588bdc980ea2310e87dec4c651e9a55c27e3858b6505cbf3bf85e51931badc
+Tag = 500ff4cfe66ade1832babc019778acc3
+Plaintext = c25868f390af5e59c035cb5830e018c62c5b96bd35b764f1
+Ciphertext = 0ece161bd77b7f969b3b20c818769a98c178d84524544664
+
+Cipher = aes-192-ccm
+Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8
+IV = 6d576ce3c5fcb5
+AAD = 92c598cb5ca2926c11f67c3b3cf25493d77606fa60d7290430e0e975091644a6
+Tag = 391031b3a22b2adeb9791ee35765c8cc
+Plaintext = bcd97479db934357a163a9e5f5a85999ca987f8243d8017b
+Ciphertext = bee185e11b3d42bac846b9d92c70a078aebfa630ab763840
+
+Cipher = aes-192-ccm
+Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d
+IV = ad749d596d88a4b4
+AAD = c67219909828adef64422286008e1e306867a1c0b3da95444507a68b45c953e4
+Tag = 5a1969276aa2b0cdb37ccaf2845dbf6e
+Plaintext = bd92d6744cde446fc8621625658fc4bc00dcb97f06195ad7
+Ciphertext = 076cffd0ca978fe2bad411ced45a090abafb22a99896f6a7
+
+Cipher = aes-192-ccm
+Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d
+IV = b1dc81d116d94f5e
+AAD = aa4b71906b6642f10f66c2391ec157c7cde97eb322db10045af4c5248807f691
+Tag = a67e36d7cc8d54cfec0762514475127b
+Plaintext = 9aa6dbe1cd3eb98d330c937d31ef93bee8938b6c5cfd38de
+Ciphertext = 720f6876ac91665f20147483f0655fdbe21963a01e36f1da
+
+Cipher = aes-192-ccm
+Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d
+IV = e758738df5c89af3
+AAD = 5715fa238f432c926e62dd93708d0e3145428e0ed45e1efa8148d2c4ab6cba50
+Tag = ef50d85bc3ade6a773d956b2660ac367
+Plaintext = ce80b99039a16e69018d1e3c239dd1bf06e94a78b0b1df37
+Ciphertext = acdf7ba3edca1563727ed85cabf085c2f0c8f27556c3c064
+
+Cipher = aes-192-ccm
+Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d
+IV = d586c4c67d535476
+AAD = 1e8dc63c6c54a540b6b02067ba7c719221cf289fa3897299722c9a2bd6eed05b
+Tag = 81e024aaf0a62b353f9bed36681288d2
+Plaintext = 2f88305117f9a5d807d54b7e95ecfeb7327e52d9acac352f
+Ciphertext = e42b86e619be1a38973c934babeb4688243a9012c85d643d
+
+Cipher = aes-192-ccm
+Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d
+IV = 77e83758f68d272b
+AAD = 25c80edef3d5bd8b049fa731215b80ca2ee9ee6fb051326e8c6d0b9e11e3d7ef
+Tag = 05fe32f796f0b4a75a459fce6c7d740c
+Plaintext = 92e47b82b728d639777d5d5843de2a5c364956cb4b21cabd
+Ciphertext = 1b9177f5b76403cb8c690b39c3dd22b55da35cebccb9b64e
+
+Cipher = aes-192-ccm
+Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d
+IV = 311dc245549206cd
+AAD = 87767f13bb4904d0df0d64eb22c9ddb65e81b5739baad86ad5e2c239ffde9f6c
+Tag = b75f9e4239e43bbf93066897e60f6fbe
+Plaintext = 8691c0301a216a5f3ed9123886d100309bd85630d6b845f5
+Ciphertext = f39fe3620a03b37a4bf457909e0770447b498ad2a2f0f9d7
+
+Cipher = aes-192-ccm
+Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d
+IV = 2a17b70f10e120c0
+AAD = 981fc31e64fbad244ba1ef0303ba1e4beef5bacca74f60ffdb9142a25a1ad5a3
+Tag = a0c069a2439a2d8843302c6a9999e658
+Plaintext = b9bec3e2adc83620772048d6cbfb6f78e4fad74d754ffbbb
+Ciphertext = 92187955ee1ae702ef01a385537119b2bd4545402e8b2384
+
+Cipher = aes-192-ccm
+Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d
+IV = e0b10e78e9fb41ee
+AAD = 9d072b8a3f1a496b2be6728a38b94a4f44c9be40c8793b69afd81d01696a6b4a
+Tag = 5005b06d15f63f2f015cfe447828da09
+Plaintext = cea28e7cd0eff0c5eafeec908d4aa8ba303e72ada33db087
+Ciphertext = c605e48f2e66e8e0a92471e466981ae5e31db3e4ad80b09f
+
+Cipher = aes-192-ccm
+Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d
+IV = 02d72dde23f9772c
+AAD = 2dc44c39940e2d9c94d2dbe40bbf5cca5efb4d4b250a31aa24f208b87e9c2453
+Tag = 3ed92ebb789c314a89c83542b15ed694
+Plaintext = 809343e986f6ff47f54d4cac22ed39babd12271d4c7edb58
+Ciphertext = 0bb59581f22f6b15de76c0066645495a5c19e44381c34926
+
+Cipher = aes-192-ccm
+Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d
+IV = 28c4d6de3e2ce51b
+AAD = 913a8eda924589d3206ce0a951fef93668c6c0c454824b217997bff6b3026d54
+Tag = ada8e796f2ce7f9449f42de504873868
+Plaintext = a19f65ffdafd6ad5ee43570f7e168f94a8b4a7b7402ac80b
+Ciphertext = f0c91a29f1222b906550ef5c7c0944c5c4236cb6c31122cf
+
+Cipher = aes-192-ccm
+Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08
+IV = cd84acbe9abb6a990a
+AAD = 447b6f36acdad2d1cfd6e9a92f4055ad90142e61f4a19927caea9dbe634d3208
+Tag = c5e36222d17c6fb0631c3f560a3ce4a4
+Plaintext = 597b3614ff9cd567afd1aad4e5f52cc3fa4ca32b9b213c55
+Ciphertext = 2d7fb83e6621eed9073e0386d032c6941bef37b2cf36a4c6
+
+Cipher = aes-192-ccm
+Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08
+IV = 1fc7a43ed124745d04
+AAD = c892b095173076a40e24522297be27fd3a765c8d417f24c71a9f03b3fe3d8e20
+Tag = 7a2a13c22df4a156e6d6063235452c85
+Plaintext = 415cd8312dd20a1c26f4b90d98104cdfbe06739466fc0aa5
+Ciphertext = 7bebd6f55f15ae57ab73f92f7be6ff37ddd99740e988f01a
+
+Cipher = aes-192-ccm
+Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08
+IV = 19ff5e7c1f2c594abc
+AAD = effcea4e4dbc57410426b39fcf51c9daecd9d310888590d77827973a29c4ebff
+Tag = 7579b2c4a6bcf0356f48cf8959cfa54a
+Plaintext = 97fd2c259a4e672e9555a9a5b98f4c0ec8c4c49c7ade26a4
+Ciphertext = a460674c2f358762e97dfc958d90973e1e419dbc6a832e98
+
+Cipher = aes-192-ccm
+Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08
+IV = 64d9bd368ac2357cf2
+AAD = 62c5a16f946b4312517f67c80afe2614c822e3a01b87dc81538c00bbf3fc0108
+Tag = 92be2b06a0ecd2d00877abded7d9634c
+Plaintext = b6ada12f7a28211e9d2c07cbb3d39fa77aadc077b34c46f9
+Ciphertext = 8fb5e0954388b9b58519482962487e9b0768f0cee08afe9a
+
+Cipher = aes-192-ccm
+Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08
+IV = b4aaf2cd93efc0ce93
+AAD = 79d8841ab83279724ce35e1a8abd4e158168dcf388ab4c3d1ae70413e4e43d14
+Tag = f8d301ceace678f9bf91fc361dff5812
+Plaintext = dd42449da4c95e858b796085b6b5b3b5eef484dbf3c2bc8b
+Ciphertext = 893f86e29972928c1f3c3e25c73947c8d677814bca7fff2c
+
+Cipher = aes-192-ccm
+Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08
+IV = 132f3e19e12f462a74
+AAD = 176cc5a280f6171d00e247edacc81f05c1b9faa87fc831163ac9d76aae59a6c3
+Tag = 42ca4f4ccf986eb6a6b85b99db2fcd93
+Plaintext = 8ea05a5033ab8b009664fa2800c24e217488ce6888cad147
+Ciphertext = 4771d210ea678dbfab96e320e9c44b68f47cb05b01826ccf
+
+Cipher = aes-192-ccm
+Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08
+IV = de709ba64cb75704c0
+AAD = 0cf8e9ab95766b6fa85e88d86e4f349a17c0d90509939e343eede988e7462255
+Tag = 393162252ae91ca46fb8e8338cbeb75d
+Plaintext = 51dd9fda9549f25dd868245a6a54b8d59346d2f336adf9af
+Ciphertext = fccc3e44afa6bd2fbcfc5c834db63dc9d152c04c0dc0b43d
+
+Cipher = aes-192-ccm
+Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08
+IV = b11b4c1b7a26387265
+AAD = 14ed867cc909c0619f366918a7d5ae25279fb137e1dee7fd98ddbe3bd19d841d
+Tag = 1f498ea6ec8251a6d149c7ca38b25fe4
+Plaintext = e35ea4a16e274fcab457fd4dc7886c3d81fc668c19e0f374
+Ciphertext = dcca8aa2eab8ac3f5db9cd9560ae0758d7df40d7d868d1f7
+
+Cipher = aes-192-ccm
+Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08
+IV = 20d03227a7fcaef1ce
+AAD = c5c15245e641687d0ca9e913406acd2de3f21fbaf2dc5e4e8963222da61d02a6
+Tag = 8ce3ab864545ea81943ef0ea9489d223
+Plaintext = 6775e5faffd0b13e78da70a789042245d5ef31eab5245380
+Ciphertext = 4bb8ed2207f36f40f62d3a2c90f8e3bd8f589059b6903711
+
+Cipher = aes-192-ccm
+Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08
+IV = 267f76b9ec0f5e7c6f
+AAD = 2b421be47d07dcb12a0706f7490d05024fce8f433079e18ec78f4c8678f5f155
+Tag = 655e14c7bc8be97ea47388cb7b18bcf0
+Plaintext = 9330bb23428ab45f573923e977db74882282cbe1371da68e
+Ciphertext = c6ae24f82ac5cf9c18a2d98e610027eb2566a1ccfcf99945
+
+Cipher = aes-192-ccm
+Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f
+IV = d7a46e726ed43f1580eb
+AAD = baa86f14271b2be7dbb37ddc7c95ce4857e57aa94624d594d7bd6ceeaada8d5f
+Tag = 39365dce86859cd82395d11bfc8cf188
+Plaintext = 2a794b84fc9e4a7e6d70a82b5141fd132177a86b4e8fc13a
+Ciphertext = 2d7f76464417613bb61d3657481346b74fc9d6abc6a3babd
+
+Cipher = aes-192-ccm
+Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f
+IV = d0afcbc1b2524a4a4553
+AAD = 7c267223047af946b06f6a45ffde4a5ec49c28b81ca22da4a36bf523e89e9da8
+Tag = 8355b915ca2633fd557ca7ed41e00926
+Plaintext = bfc5ce1316ccdbcd8ac62484e7656c87947ff98cbba8e1e9
+Ciphertext = 4772c121367d0e8d3edade883342395f3ea065fe7dd7be8c
+
+Cipher = aes-192-ccm
+Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f
+IV = 6eecffd227e8d5349523
+AAD = df7736560b1a13aa8e536500ea6cdb9a6757309aadf25a6a9189055a309c3f8b
+Tag = e7d017514d498f1f3c07d650afde8293
+Plaintext = 19eef017100dc82f26ed0815c55c122e0b1587302894c391
+Ciphertext = e2864c6e12ac089daaa1e94af4b2ed04060d7ef65d2f72f0
+
+Cipher = aes-192-ccm
+Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f
+IV = a67c0675753f725a8fd4
+AAD = 7dd546397a9a0129861fb6815d419a307f90d259d55f3503961754126cd1b776
+Tag = 7499a8544bc2a8fe95f55fefc7316f8d
+Plaintext = 80f1f1ea46c92d28f2d60eab39ce056a4aefe63fa688538e
+Ciphertext = 882c687c03eaaad9d7f591649e736f0c1c78f95e40d40cd7
+
+Cipher = aes-192-ccm
+Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f
+IV = eb83928f0d5f7aa3a74f
+AAD = 060cd3e4aecdb03837dfa9f544318c0a16cdc37fa2a3135be7888ac67e7eb26b
+Tag = 623f3a13fc13db958cbac49f7421d6af
+Plaintext = 81e9174e9472777b6b184707108c01d6ea6b5d108ec3c6c8
+Ciphertext = 243cfa0a0a36a4c20333968910e6f52acc04c6f74e704180
+
+Cipher = aes-192-ccm
+Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f
+IV = 5757abe01f7a1183fdcf
+AAD = 744629263041f0eccfce4a1ebcc18c4c984010f9241d35966263a8b2f72ee26b
+Tag = 9c447a3132fbe5213133650000d50b06
+Plaintext = 991049f26b529af8b0bee0cc83989cf817d248254182f332
+Ciphertext = b20469b5f33f0996e8de869ad10ce09924a0bdd7b67a89a0
+
+Cipher = aes-192-ccm
+Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f
+IV = d9adfc5b44ad7aa94b05
+AAD = aa6a5448c6ec87be75eca35725ad2e902dbccf840d25b2bdf7e62e4a8fa4a511
+Tag = 5ae554cb440eadd875657fd5cecc214a
+Plaintext = 14682301a99bf680805d1ffe62e1506d48cee8c51ef1d255
+Ciphertext = 9b44efa185b0c10325bb4c3c0815e6a6e46eea366b9a416b
+
+Cipher = aes-192-ccm
+Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f
+IV = dc3ca30782c9c0a7fe89
+AAD = e788c98ae85b11b3ae884eed6f3b8f5bcf5ab1b7b20ad3f44f760b2287cc5793
+Tag = f8312986315522081f0989838ef0429b
+Plaintext = f9cb86f24536931a1b095b426a07e4621c000cf09b472bf8
+Ciphertext = 463f9124d1cc387a0f8b971d1e2da448f0efffc3956ebb2a
+
+Cipher = aes-192-ccm
+Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f
+IV = 9523f53f92b6e4ba86e5
+AAD = c3b123ccc916d26a2e6a8b5e30041ad69a944217e9b402b7acc0170c31e8c2e4
+Tag = 768e94f062e86129cc9210dfcd3e6128
+Plaintext = b9bdcac80f64175836ab51bb1a1bee5ffe3a6b9b71afe3ef
+Ciphertext = c356b5a78cebd123808fb740754dc47a8ec7c9448bfacf39
+
+Cipher = aes-192-ccm
+Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f
+IV = 16bdf18c09d60f3a2a32
+AAD = eedd0796f23612749e9fd282c864f3118d0683409d3bef1fda352e1422273c7e
+Tag = 978757883f07802b25e9a5b15c43b451
+Plaintext = cc96133e473d197be1bafdfc1a21d58e57d0d89b2ba1c3ff
+Ciphertext = f9d78e9e3a41b3bcbfe756385a3715776eb84bb7d8d15432
+
+Cipher = aes-192-ccm
+Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b
+IV = df990c42a268950677c433
+AAD = a6ab5d78427f297a4b7e21f1091ff3a5b20caa3fe1cbcb09459d9df596a6c8e1
+Tag = fd6a7255e4801963bb30a63de3fc5b82
+Plaintext = 6db41aeb5f7c24df8929dbc30483b3c7934b3bd1cdce5bb9
+Ciphertext = 8c9328258bf71970d33e23a3ff81cc1c9cbe196a1294264b
+
+Cipher = aes-192-ccm
+Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b
+IV = b7ea72641bbe2dca6d85e7
+AAD = 4e0f2ddf183281ec131693bdcea3fc9743733c07a486a42d5737735b3f6e3fdf
+Tag = 262de30da6ef505fe640c53d765f672c
+Plaintext = 726844e41b1e4d883024b32fee0dcea38c889cb328885b7c
+Ciphertext = 9a133e4582c2ebc445862a9c6f2f4e39223c84081e322c8f
+
+Cipher = aes-192-ccm
+Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b
+IV = 446fee1e75e79c0dfc9ddc
+AAD = 42b598eaee271e06d9e98dd94152b28ef10f506d65bd660b2fb8b1be9a2d7254
+Tag = 96ecb1e46beb16000d585e1d9559ee22
+Plaintext = 0cdcf348ecc9c3588001802c2106fb64be9c301adcc66e73
+Ciphertext = 0c2657b0482b6ca92e1b1c8fdf75eae3b0cd3af205e9bca3
+
+Cipher = aes-192-ccm
+Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b
+IV = 2e6e34070caf1b8820ed39
+AAD = 8bd1ef3a1831fcc8919d736fb23111ca3ef4cccaf20264fab8eb3b071e56667f
+Tag = 5198cbe3e34c884c3f56a732974aa1d6
+Plaintext = ca0860cc1e96506c2beb25b53d2947fbab634f0372afc8ba
+Ciphertext = 19e4774030e43e6853ab5bf176ba9c4b59f29f285977e3c1
+
+Cipher = aes-192-ccm
+Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b
+IV = 428542ecfb94a745980aa6
+AAD = 8efe01716b9018084e2ea7616f85b7333d945c0c970f8cdd400130b98db67cda
+Tag = e7cec415030997e1ac5db974b617b5a7
+Plaintext = bc6b59120ba2845b0e41f65a55e2ef1c45a81485c926c14c
+Ciphertext = cb48b0af6fad251d409d14ce0fbfae9cd9c40bf4a0c1e2b7
+
+Cipher = aes-192-ccm
+Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b
+IV = eff703e6d72ddd23ff52d9
+AAD = d7fc74035e66709d2590b7bb3276245dd43824c9896fbd801ec1d07018b39b6b
+Tag = 3e59bfecf263bfdb24686627fd95e120
+Plaintext = 1a5432e8085511ddac1be91be3e2945f85f0cdcc3a1c9f8d
+Ciphertext = c0a00cbaec65b7ca525fb26e80ee0cd18c7ef47c39c70483
+
+Cipher = aes-192-ccm
+Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b
+IV = 6a652ce21334a40a259dcf
+AAD = 5d24d80f22afe713c4076c200c1bab36917907fde7b6d34e141066f543526db6
+Tag = 0652b67d559a84b4a915ca6a420fd300
+Plaintext = eb8f1988cb405041bf48d138ad41da7ef364d4ac59a9e324
+Ciphertext = d4f23166c09a15466c7e0e2b30627ee5a84f22d7e6135b4a
+
+Cipher = aes-192-ccm
+Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b
+IV = 9382e12d447c0ca23cc9c3
+AAD = 239129eb760f8a770410c160e4e13a6b9497077c3e463b65397393fcd3cb5c70
+Tag = 50f5a52f82211542b4e2661cf870c80c
+Plaintext = b40e80564263c7f450c53ef84df67247d72e8a04dbb284bc
+Ciphertext = 6de2ba26caa80874814816154784912c55e3d6da83488e72
+
+Cipher = aes-192-ccm
+Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b
+IV = 2c3a4148cbb02504a2483f
+AAD = 33c3bdbf185b580353de79e51e675b03b31e195f19ba1f063d44def0441dc528
+Tag = 7de16aaa41d06bc071657dacf14da754
+Plaintext = 60a31736d99c3dcf25b349f6110e1c152b93506e85a01e67
+Ciphertext = 4d5e705d08f3ed1ca6f1caa74b46e4b1eee18a0783686f20
+
+Cipher = aes-192-ccm
+Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b
+IV = 691cdf6fe9ecc2154d0101
+AAD = dc096596644c4e09c44078b86e5e0887c45094042eb0d74a6a13aa2524463076
+Tag = f07f23e65475a20fd96e45c6c695cd83
+Plaintext = 77e6441ee017a93dd876ff2c7980540c77ee15edb0f23933
+Ciphertext = 24cecc81c8ac7ca9906372dc5263f2220b4dd162f1e08283
+
+Cipher = aes-192-ccm
+Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5
+IV = 1af29e721c98e81fb6286370
+AAD = 64f8a0eee5487a4958a489ed35f1327e2096542c1bdb2134fb942ca91804c274
+Tag = 0af2a663da51bac626c9f4128ba5ec0b
+Plaintext = 062eafb0cd09d26e65108c0f56fcc7a305f31c34e0f3a24c
+Ciphertext = 721344e2fd05d2ee50713531052d75e4071103ab0436f65f
+
+Cipher = aes-192-ccm
+Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5
+IV = ca650ed993c4010c1b0bd1f2
+AAD = 4efbd225553b541c3f53cabe8a1ac03845b0e846c8616b3ea2cc7d50d344340c
+Tag = ef7662525021c5777c2d74ea239a4c44
+Plaintext = fc375d984fa13af4a5a7516f3434365cd9473cd316e8964c
+Ciphertext = 5b300c718d5a64f537f6cbb4d212d0f903b547ab4b21af56
+
+Cipher = aes-192-ccm
+Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5
+IV = 318adeb8d8df47878ca59117
+AAD = feccf08d8c3a9be9a2c0f93f888e486b0076e2e9e2fd068c04b2db735cbeb23a
+Tag = 8925c37cc35c1c8530b0be4817814a8e
+Plaintext = 610a52216f47a544ec562117e0741e5f8b2e02bc9bc9122e
+Ciphertext = 83f14f6ba09a6e6b50f0d94d7d79376561f891f9a6162d0f
+
+Cipher = aes-192-ccm
+Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5
+IV = b4cadb5f9cb66415c3a3b714
+AAD = c4384069e09a3d4de2c94e7e6055d8a00394e268398d6ea32914097aec37a1f4
+Tag = 75ecb546efb8872a3f8b0281b3901752
+Plaintext = 22bade59214fa4b933cb5e3dc5f096e239af4c2f44f582b0
+Ciphertext = 2296e3f8a2245224d274f1b90ed1287cbeeb464c70a89ee4
+
+Cipher = aes-192-ccm
+Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5
+IV = 72e6cebdaf88205c4e744286
+AAD = feaf010f462ad40a38eefb788b648e1cc292cd4bb08ebeff3c39182862296042
+Tag = 51cffa571570618e2ada3376bd9f3e5f
+Plaintext = 30655a6b5a5965db992e7248d24141055e988d726abb8e72
+Ciphertext = 69b27f2bbaa61c4f24e1c25e0779147fef79ec1582486b46
+
+Cipher = aes-192-ccm
+Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5
+IV = d8030fb31eca2c43f3f5eb88
+AAD = 66704365ddd0145febeb33f68b228a3f09e1e5a4b68149e6e06d886301841295
+Tag = 2beeeea7a638c717e63764b3a5118a0c
+Plaintext = 9d014a02507a6f266bd1ace21b55ab8b73983ff503bb9adb
+Ciphertext = 233a883650538ab8c0da30b90527f880fcad5b16bd435e76
+
+Cipher = aes-192-ccm
+Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5
+IV = 58038cc35ad3dcd75195e125
+AAD = 3da7a757e942409a3b39ccdc0669ce6401f7e133c07c4c42e366d70a8e9bdd49
+Tag = 33a87fa29e5fbfa9bc0430b0cac00b7e
+Plaintext = eccfd817fa5e3a0146967fae13fc2471ee3944cee37969f4
+Ciphertext = 415a36872a04f5b4b5372f63394ab9fb353e0eb9b4304501
+
+Cipher = aes-192-ccm
+Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5
+IV = acd82ae31bfcabd90af5af45
+AAD = ce22126f01bde16249c47102b4da68ad3edebcd4a16c24a16ea7ccdd5d364d10
+Tag = b336cbbeb64fbebf2e7076a98ecf5bbe
+Plaintext = 9d2126d34963d3ba12cd841bd321036cb82cfb78f2a6535f
+Ciphertext = 88a5b889e6fd74fc15336e23374b430988416c7e6b6e7248
+
+Cipher = aes-192-ccm
+Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5
+IV = d24457d567fd0a65fdabf219
+AAD = 0091d39f3478d2c59bf874b96db9ce0f7e8b85a9b805e07dc96b219819d51663
+Tag = 0ea909047af4998c660afbaf346ed65b
+Plaintext = 6da3ac85505e93c4f391ea367a9e15fa9b388ef7ae2693c1
+Ciphertext = 7039a8a49cfa6402b4ba3b840e69200c13ac4a3eb1c709a3
+
+Cipher = aes-192-ccm
+Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5
+IV = 50c59ca54eb64575b82b13c6
+AAD = 5e4e42cbf172853c351d597c7d6d38b1a9cbb7ac92c00863a80ac4a2d9f0e7fd
+Tag = b193dd767f17783f0b51ac0fb7323301
+Plaintext = 25b2ba0a937b71f3ee68e7172cf2c4524b662efcd08ce2b3
+Ciphertext = e95fc44287ce39c5ad6b91c88582563fa68a9e304094deb8
+
+Cipher = aes-192-ccm
+Key = 36ad1e3fb630d1b1fbccfd685f44edd8984427b78deae7a9
+IV = 3af625df8be9d7685a842f260e
+AAD = 308443033ecd4a814475672b814b7c6d813d0ec2a0caeecbcaba18a2840cdb6c
+Tag = f8c99ccf2d82788cf613a61d60dae458
+Plaintext = 8b9db1c8f9b4892a5654c85467bcffa2e15e28392c938952
+Ciphertext = 6bc6890fee299c712fb8d9df9c141f24ee1572b8f15112c2
+
+Cipher = aes-192-ccm
+Key = 36ad1e3fb630d1b1fbccfd685f44edd8984427b78deae7a9
+IV = 24eaeaa437649e61b706942b8d
+AAD = fff75462f96157d9554bddb6aac156fefd88fd4a90a8536dfc28cc577f19c83a
+Tag = d0a421bbbc002eb9ac9ad01f625f824b
+Plaintext = 49ff4ff85f7407ca383cfa4fd7177adb4dab26e642c8186d
+Ciphertext = 3647fae50c588d792442f43a20125e77ab5db3c469391d24
+
+Cipher = aes-192-ccm
+Key = 36ad1e3fb630d1b1fbccfd685f44edd8984427b78deae7a9
+IV = 7325932d6694aaf61a8204c172
+AAD = be20ceb8ca14e9bef7158b280a26bcac763da79cd0eba9b1833ea808c5e7a66a
+Tag = ee32a7ffd4e7bc303d3482fbac431828
+Plaintext = 2861494eb40b9d964d339797c1b6aac63c6674187768957c
+Ciphertext = 286dc74001e2a6000a23db164f4b2912de4afcf1df8c3aa5
+
+Cipher = aes-192-ccm
+Key = 36ad1e3fb630d1b1fbccfd685f44edd8984427b78deae7a9
+IV = 61c9949df5853e42599e5ee0c7
+AAD = 243d09ceb16755cb58d62065df84890b840ad9b7eec1132c6427cd7c3d843fcc
+Tag = 5eb30cbec49cbb51c41cd5032b7fd759
+Plaintext = 943a49073db6ae94a88844ed895f8fd99ed25c3f42a2f78c
+Ciphertext = d3c56bd265a2cb0811dd218f248800ceade4f02b5403b963
+
+Cipher = aes-192-ccm
+Key = 36ad1e3fb630d1b1fbccfd685f44edd8984427b78deae7a9
+IV = 07b6c18dd3b0fd9e8ff026a436
+AAD = e85f141c3d1af7727fcdb00f8e2c34e42a436d04ac5b8ca9f321a178a2056806
+Tag = acb5cf2631987d3d963349b035324aac
+Plaintext = a18b0a4618063c0519818d113b8e5435aaf153f664058f1b
+Ciphertext = 69f933a2a5e774e8d013cbf78c6ab0b73e6ca323d0c52691
+
+Cipher = aes-192-ccm
+Key = 36ad1e3fb630d1b1fbccfd685f44edd8984427b78deae7a9
+IV = 0c075df70630dec2fe81834945
+AAD = f3f5c5ffbfe8247bc0c33c793652f749fe91b6dd141cf0db56e71cef8a2fd266
+Tag = 4e239d33283d18415b54c2aad4bde354
+Plaintext = ddc4bac4115e8cb06d29d22e400674dbc615a667f933603d
+Ciphertext = 26bdd25c9f204fc7520d26c161464c28fb35e395b295b3db
+
+Cipher = aes-192-ccm
+Key = 36ad1e3fb630d1b1fbccfd685f44edd8984427b78deae7a9
+IV = 0c2d20375057fcd4241d290f6a
+AAD = 70ff1b9ff8ec08fdb18b0e7dbe01127ed0cfe0b0a449ca2ace4992b7b6248b71
+Tag = 62d7e0320dc930df3640a786d7ea9ae4
+Plaintext = dacbdf1979e000d52b573e74800761b30acc26681f372acd
+Ciphertext = 6a642c389433a3464fc64783ae6a14a9a45f0998b56a5b91
+
+Cipher = aes-192-ccm
+Key = 36ad1e3fb630d1b1fbccfd685f44edd8984427b78deae7a9
+IV = ea0801cb3dab853750a922dd25
+AAD = d83360d0896e022bf014bd33710ab212ddedda6d95a54996f33db304e5f12f01
+Tag = 0d06b4a545609a2128a95d4d73471559
+Plaintext = 46cc5653bbd8300dfb0df6d0af3fb7c7639a830bdc9f68c7
+Ciphertext = f1b0728920351d9edfdbe7df360b21f6cc5b628dcf43a3f1
+
+Cipher = aes-192-ccm
+Key = 36ad1e3fb630d1b1fbccfd685f44edd8984427b78deae7a9
+IV = 97e6de379c90fccf3fa8f27013
+AAD = 539f8eb802bfecaa4fb5b19debbf3d4847db9c4e0473a308ab3f3c859e68fecf
+Tag = f3512baf72cd79ba9301194be204bcc0
+Plaintext = 8b013f52a828905013f250fb9c006a173f6c66a64b5ba317
+Ciphertext = 556a439bc979dac1cfea8c5b64aa78547f52a62896c19893
+
+
+Title = NIST CCM 256 Variable Nonce Tests
+
+Cipher = aes-256-ccm
+Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf
+IV = aaa23f101647d8
+AAD = a355d4c611812e5f9258d7188b3df8851477094ffc2af2cf0c8670db903fbbe0
+Tag = 3bdb67062a13ef4e986f5bb3d0bb4307
+Plaintext = 644eb34b9a126e437b5e015eea141ca1a88020f2d5d6cc2c
+Ciphertext = 27ed90668174ebf8241a3c74b35e1246b6617e4123578f15
+
+Cipher = aes-256-ccm
+Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf
+IV = 195c0b84baacc8
+AAD = c7d9557b2ed415652ce6faa8cff5217ac803530ec902890b31eaaf3eeb0aa98b
+Tag = 82c00b5b463654adbf82888099a7d258
+Plaintext = fe012718481b2c4e1d7f9a7685e3daac43ccf22cad0df900
+Ciphertext = 893af0f130f1317de9f217234274b0c04fcc202cea9a0df8
+
+Cipher = aes-256-ccm
+Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf
+IV = 363e0e921c6f11
+AAD = 805678936d4e94746ab4818dc5f50c41e32cf32e7a8aafb300fb91af6406108c
+Tag = 80adf2762a1617adfd4d8356bb48aa8a
+Plaintext = 7e7e33e1a07d4e8fde2f33304f21cb564d146860ccfeb49f
+Ciphertext = 645cdd11a1c232815ce1e07ca3ea83f372eba46cedafddd9
+
+Cipher = aes-256-ccm
+Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf
+IV = e323cc866af462
+AAD = 163c747f3ba4ffd68af87f2475f48f2714659a2ec43b9ed115e02fe0e3c8be99
+Tag = fb9c02753c57fec7e1a5fa8f3860501b
+Plaintext = 2bfc76f3b108ba3118b07433c4d3d5f41564d22547c12822
+Ciphertext = 0db04c6b068e73e3c4d71059bdeee3d27622f99dfd07d868
+
+Cipher = aes-256-ccm
+Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf
+IV = 03ae777078b95d
+AAD = f1dacf9062dff9a6a3d0498f9d058782f891475684196bf2d8e7e905393acff7
+Tag = d104990e598eabd88cc8342ac16424b5
+Plaintext = 38c4275a5f605fd1d99517e13deebf0c9794ef586070fa9a
+Ciphertext = df8f524872b5f06f3f219ba76524990b466409894930d7e0
+
+Cipher = aes-256-ccm
+Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf
+IV = 1c6c351d4fe9be
+AAD = 14285e97cc3cae452e1a52e2fa0bbe24df96abf2faf6b9779acc59764612eadd
+Tag = e004894b1861db5d2d8ae98ed8926c1e
+Plaintext = 9e2220f3c17532e1ce0d6f562b049fcef35bcaf9a7e196be
+Ciphertext = c274b28228a6b13b670c325080f88d188d40d78d385481ea
+
+Cipher = aes-256-ccm
+Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf
+IV = a121dc27479397
+AAD = 359421e9f78cc4a31f4f019977d7fd29780524e20288798c50002a682a6368b9
+Tag = ed2ac2cb63e1b9d7dc598634198fe4fc
+Plaintext = d42b16b32e77637724144eaddb21ca8d7db4e7f73acbf707
+Ciphertext = 56e3e3e59e978161355e7d8573dc0657db400ca0b083dae8
+
+Cipher = aes-256-ccm
+Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf
+IV = b1f0e26b60bf1d
+AAD = 2ab4239fffd13762fb5391f5a4760d12d96ea12666a793b4d651e9f4891c22c1
+Tag = 95b8a23ee377d5c2850f4ed95a385253
+Plaintext = 9a2851083ad4e7b915bb0526bb4054e4c0b4adf8626edc90
+Ciphertext = 5b2e0215523ff37f0df46e84f996fc9fc779986c766fa515
+
+Cipher = aes-256-ccm
+Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf
+IV = 50412c6444bcf9
+AAD = 09cdcaa87ddf8bbe6db8411d14bb9064e4a121286cc8a6e97fce1844935f436b
+Tag = 514ef5cbf9991a919fb4974d55506ce1
+Plaintext = b28a5bc814e7f71ae94586b58281ff05a71191c92e45db74
+Ciphertext = 05cbc32a6ca797684636dedd16ce65a1eed69bcab1b1bdbd
+
+Cipher = aes-256-ccm
+Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf
+IV = 225557b0faca3d
+AAD = 21611da060fa90cf7fd68b721caf303307a56e56453326495b628c7dc93cd175
+Tag = e8a3f7b848054cb235e1b58d6a12c5cb
+Plaintext = e831b739e8eb9f787f63c0bb071ddcc9f44cab8d5b447d23
+Ciphertext = a97e0879407eb3b7f93118ca73f17eb34e9f4baf43b07be2
+
+Cipher = aes-256-ccm
+Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177
+IV = 790134a8db83f2da
+AAD = a7a86a4407b7ecebc89434baa65ef173e88bd2dad9899b717ca578867c2d916f
+Tag = bc00b1d8b2bc393a8d09e87af7811f55
+Plaintext = 59eb45bbbeb054b0b97334d53580ce03f699ac2a7e490143
+Ciphertext = db4961070f528ccd1a5a0681ee4d0ce3515fb890bccedc2d
+
+Cipher = aes-256-ccm
+Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177
+IV = fb2441d1594a488a
+AAD = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c
+Tag = ee21c5738d1f7fddf3030d004a702704
+Plaintext = 451101250ec6f26652249d59dc974b7361d571a8101cdfd3
+Ciphertext = 1bca7b0d35a68c0ffc568ffc8221cca738b67b95e3ab26ef
+
+Cipher = aes-256-ccm
+Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177
+IV = 0855263860043207
+AAD = c7fc24863c33f7e8cf97b337918495d52d864ac570c99cbb09d151758d6b504e
+Tag = b223454c57c714d96681cd4d55615afd
+Plaintext = 61fcd7ef9bf151b9d8a81dc1ba4f82c45e9c2e4784627acd
+Ciphertext = 9b939b6b188e1d0fe016f366fb01eb79a99ef7b1b57c6f7a
+
+Cipher = aes-256-ccm
+Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177
+IV = 415cd251a5e36943
+AAD = 1a393c7e85fb286709f4eb50f09640e1d65ec1135cb4443820136b3cec69772a
+Tag = 9af96d3ce4ea94213b60cb69d92050e6
+Plaintext = 66ae08d494dc9df9b7f8f53199fa37d0c88885458b168c57
+Ciphertext = 1731e260ae31b8068ad1099313b167d9e6cbe49f471da61a
+
+Cipher = aes-256-ccm
+Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177
+IV = d95bd65242bb2265
+AAD = d0e20e1358be5cc1c45c1cf02c82d0a6d0824cfcb65774cf95f047b9f2cc1d3f
+Tag = 627a352d056712e0d44404c61712e2ab
+Plaintext = 312c3791c64d79205a11eebfc14b2d7a6b00391793c9559b
+Ciphertext = c3fbe558ff9ea83ed86b7d66503ee38eee94e4a41fd53f0f
+
+Cipher = aes-256-ccm
+Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177
+IV = 3f0bf0141dd3ace0
+AAD = 9dd4ed18209dd6cdf19cc76fee443827e7331aaf020960c15d7bbed0f6a3b1f7
+Tag = 32645a322fa9bc8aace600f942a84db4
+Plaintext = 08354480047eee3beeb5ab165da17d23f2f1a4ad98720611
+Ciphertext = 2db9d2c54134d37ebefcecb9e2076034b975677fde58ef60
+
+Cipher = aes-256-ccm
+Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177
+IV = 3fd8b3a3ff563a42
+AAD = e58327efebad3276a7cd1b1ccb56db0caddd02a303cd9fc7ea5c607a2ebefaae
+Tag = 3957a2a5b6164218fc83e12c42d5c532
+Plaintext = d1abd89351384e1a3c3366f77c3175f6390801554d7cd783
+Ciphertext = be284dcb357ae99ada7cc891730320ebb32ca627eb8c8062
+
+Cipher = aes-256-ccm
+Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177
+IV = 14db1ffc1c87117f
+AAD = 6c2b091433833a0ed915354dcb70d982095b614dc51a95a22cec417184d8e786
+Tag = 2cf16ce68a93f8839245baebb2278300
+Plaintext = 0594307491f157821e63f50c94034f9284f095d5b897153c
+Ciphertext = a114c84a10071e359bba2b2ba4ea67f893e27e6ea880aa4b
+
+Cipher = aes-256-ccm
+Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177
+IV = 40b0f74ff27a3fc8
+AAD = 3b9e1f4e9b57a6dfb5e0ca7ef601fc6af30a1f8650228e51e0dc61180d0bec6b
+Tag = b8d191130e864bcfcd1dec94a1aaeaef
+Plaintext = fc8b7dbceef6b0ffcbade789e09303044042cd671607e819
+Ciphertext = d00ef56074a8213740af8b8f974f778db560ac365d6ce916
+
+Cipher = aes-256-ccm
+Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177
+IV = 96cbe9cd19351359
+AAD = cf498fd042f9a07503e490cec4873d4df91162cfde60bd2cbb2b710c6681a9fd
+Tag = 54e6ec9f6ae1e0976ecf04dbee6463c2
+Plaintext = 315e81c9ce556dcf97a5b68503fd2228a7a6a174a15cd618
+Ciphertext = 7383c2de08bce3f0b7e504dc03d062f44396bcedd2180fd9
+
+Cipher = aes-256-ccm
+Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93
+IV = caa3d928d2bf2b7f2c
+AAD = 304678b3ffd3200e33a8912bcb556b3cfec53ca17f70ecba00d359f9f51d3e3b
+Tag = 5a9140ff50dc4da375c7d2de80de097f
+Plaintext = e61bad17640ecff926d0b0238271ee4c9f8e801dd7243e9e
+Ciphertext = 7bb1137c14cb4d324a4a8f1115c619ebf74927f0bed60a8d
+
+Cipher = aes-256-ccm
+Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93
+IV = cf09ca67659a583bb1
+AAD = 5507c4c3107cb446d19975f91207dbf3e2a51d1dcfd7da2f082159dbc3f41547
+Tag = 971f02b7122d1e4f78de9c3376520f5a
+Plaintext = 1887bb0c02500093a30a44b99e137483704b06615d308c6b
+Ciphertext = 834d3b2e5f0915c2348c706b4d2ff2717983ab4490edcc63
+
+Cipher = aes-256-ccm
+Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93
+IV = 97f940d7c1230bd8d2
+AAD = 56be2c9e09b555373d58f6fe2a0ca9b4ddba899addddf12b0fda860ad791773a
+Tag = d30ece13481609809b218de04c4e5ed0
+Plaintext = 5ac67c9bec9b95c54e187a4a6812f5d701c4ac8f847c005b
+Ciphertext = 9f372ba1c87a115847cd708aaf5b8a143b6981ffc2c61cef
+
+Cipher = aes-256-ccm
+Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93
+IV = 147c7ebb6c92245054
+AAD = f95d64a513a9f3e6c95c9ed27b22fafd7dd10da52636029523142149116aff53
+Tag = 0c0986ecd7dab44e5e97db37392a485a
+Plaintext = 08f199a8d7e3ea821dd3106e8947cd2e9d485342b25a6471
+Ciphertext = c438aa6d187643d030dfe4d6b5b578f84838f4dc5c396d70
+
+Cipher = aes-256-ccm
+Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93
+IV = b9bad794d49cdac9b3
+AAD = de9ff2a43f49cdc502cd17a373989bafd13fa6ccff6660557ce05b6295186d47
+Tag = 38dd977042c4d97da84e4effa650799a
+Plaintext = 40d1cd4063750184356a1d7cae1cf1824f552c5d59a62dc1
+Ciphertext = 9952b25f4f4f375440cd958456184fe61610381ba92ca48f
+
+Cipher = aes-256-ccm
+Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93
+IV = bbe054fbef86db3ce7
+AAD = dcec76181e3b872a5a6e79f070354e38866c7f67fc428fbca29ae6d929b1dd7f
+Tag = bf22c81a5d824b4916660be6f9b513e6
+Plaintext = 5f29808ba74b672a0f82b3b7581dc32478c6e790e2b8c61c
+Ciphertext = 4d176f48b09b772dde8adbdaef720aba128a8d38a902847e
+
+Cipher = aes-256-ccm
+Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93
+IV = 6a35e1a4307f6efc6d
+AAD = af28120505a84a75b0f6b18cc9d8c75c661bf143be29c11d8ede78b9bb98c98a
+Tag = 588ace6fc303600abc8e5825cbaedc7c
+Plaintext = 5e2f601395ec406fcf96785f768162e849f867dca77667ab
+Ciphertext = 4e305e26d34711c6aa775f490939cc6560d3cb6905f5b0f5
+
+Cipher = aes-256-ccm
+Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93
+IV = f6c237fb3cfe95ec84
+AAD = 038f8ed89444784417a9c23bf11e9b436174e6c10959e00faa1704ce2f7f2c7e
+Tag = 015a1f78abc287bd2a63381ead07c558
+Plaintext = dfd9cacbf7d73d688447ebab13d2e13f3613652379b386f6
+Ciphertext = fb16c17a6b22a8658f446203ad46a48b34808083b271cabb
+
+Cipher = aes-256-ccm
+Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93
+IV = 50d024a3e7455d7249
+AAD = 8513365786b7988b208984e11022c15573f978bbdc29e8a7a4745c8a81885a1d
+Tag = 721f714120162514555b60560afa4256
+Plaintext = 400317786b7df63373ffe541efcee6318cfc95bb673aad3e
+Ciphertext = d33b3141fea3a9ebdeb80d1da32dae42680be78471fb3023
+
+Cipher = aes-256-ccm
+Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93
+IV = 02769283d5a06c363c
+AAD = 292c0be3713c6c588cb4e29a1c43b3e6353e33556194e568e800e4e44e8281e0
+Tag = 51f5e62b3b923a937e6c307af202fab3
+Plaintext = 12ba8eddff1c2a03ddd25bb924ff065a93fd712b2c4f61eb
+Ciphertext = b15b1789c323a68568f86f35483bd7e204beff8f318ae143
+
+Cipher = aes-256-ccm
+Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891
+IV = c527d309ab29ee91c5fc
+AAD = 8f9a73e7bc1c11e2919020ba3a404cbddf861e9e78477218e3be2cd4337b278d
+Tag = ffc040ef3977e0035ce6ea6d157c18d3
+Plaintext = d4291c99901345afe29f58912a414a7498f37b44362bdf3c
+Ciphertext = 392784a9e0b14bcd37639ec5409d6ead3e75f855e5a92c33
+
+Cipher = aes-256-ccm
+Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891
+IV = eebc31a5813b4fb93b63
+AAD = 9c87ad77953bf8a811e001ddb946eefafbfaa598150e85f0701853fa307d77d6
+Tag = ade65aa17e4dfb0aafe18cf71a72b180
+Plaintext = ebcfd71120b0f9a2cccb898e6dfa082998cbe10032de3e61
+Ciphertext = e38eaad1e2df77e85e7129a8ce0f82cfc32b0aef79ab651b
+
+Cipher = aes-256-ccm
+Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891
+IV = 231b33dc406c9210f59a
+AAD = 38be46d271bf868c198052391f8a2147c663700d9bb25a0caaa36974f18dacea
+Tag = b7f3b898a2356909784598f8a8916f5a
+Plaintext = 9032f910347daf661092b5c1f15b5ffed1369b194d9e12f0
+Ciphertext = 868b85288828501cf1d06610fec25e8b8a4b437e2e4f5563
+
+Cipher = aes-256-ccm
+Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891
+IV = f2a88c3ebc74e62f24c7
+AAD = 5f495c5da035cabeb77e8aef10e91a05bd5aa414d1a37fa1099af959b26e5403
+Tag = 2788860aae5534cf84979e30c3327d37
+Plaintext = cfe8ee9b475e36058471e2984ae66f6ba1b3cb477b15155e
+Ciphertext = 22c16333ac651cd9c183e78aba3e9312fb3b77dd6f919950
+
+Cipher = aes-256-ccm
+Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891
+IV = 9cbaf1c83ba60b1e90ea
+AAD = 7ef136bd9a5809676abbaa68016d6fc713e34ac4b768a8246b1198c959f43085
+Tag = 599ca6ec1c61a14c37b5902389e47aee
+Plaintext = c3bcb0aaea93893f05eeb6439c8619dec17670a6439e2921
+Ciphertext = ebd9fb86563aa8f10062624441336f982c161ce5717d990a
+
+Cipher = aes-256-ccm
+Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891
+IV = e25322845d87d8a76753
+AAD = 2a89b9f0e56a1cf87dd38ed78028b6286ef8b7141dd2b3c65c5a8e1ed79bf4aa
+Tag = a0604deb3fd9cea2d89987833ff5c2f1
+Plaintext = ae622ff9381854f831892c318bae5c003e74b15199bc12c0
+Ciphertext = 144c920f0fe278f353d0b053563d907c7589e4f1479d7a93
+
+Cipher = aes-256-ccm
+Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891
+IV = f4d7978fad36223623cc
+AAD = 8671de7e994967f2521d263925e745af9273682d9c08ced07d4a98fc985f68a0
+Tag = bc866ab47bea7a4d0070e52b492fb8f6
+Plaintext = ef9b4ff8da108cabc972192ffecd5f96594c6d0871ffa6aa
+Ciphertext = ae4948b3bc1e50beb9f5d005871fc0d3dbde295de1c9ec3c
+
+Cipher = aes-256-ccm
+Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891
+IV = 6597ffb9eaad0fd9d830
+AAD = d2967ddf69ef62a9e23c9118dfaa55df92b4116322f1c9275131e3875dc92faa
+Tag = efcb3dacac25bed0304f227fd5b77b8f
+Plaintext = 5015c894b2437ff15c46bca9236830ff4bb057cd5764f027
+Ciphertext = 0b1dcb3cb0b4c32f398f3c43eccfe8f4242f33c99a2a2283
+
+Cipher = aes-256-ccm
+Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891
+IV = 80e376b87272d99cde28
+AAD = c9cc8f967dff45c05b9345d03813b6e30dace99556f7df75b7120bb6e5f55827
+Tag = cd2f7494b1fb0a0c6a2184e5c4787fea
+Plaintext = 615f657e24129a3e0f119988959608821219ce8354c4be26
+Ciphertext = d3e8b8f7ff8faa666ffe2509187fa7befc7412fd4e3bdb06
+
+Cipher = aes-256-ccm
+Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891
+IV = 344cce96455541d403f3
+AAD = 748cce18fb40126ce125dbe341fbbc59d2aacc170ed5ef0293b15713c9184a07
+Tag = d93b6f8c8a1bf72be75976e4ebe6dd1f
+Plaintext = 828b6a4cd49f499a6e8e8508f9ab35255d8e9fed33ba4d91
+Ciphertext = b67e582a74d7f022a16ada2de7ec18caafdefa6b104baf4e
+
+Cipher = aes-256-ccm
+Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125
+IV = 0bcf78103ec52d6df28887
+AAD = 049c10f0cb37ae08eae2d0766563b7c5a8454f841c2061a4f71a0a2158ae6ce5
+Tag = 7a483163dd8f228d1f20cd4f86cf38fd
+Plaintext = b99bf4dc781795fc4d3a8467b06e1665d4e543657f23129f
+Ciphertext = 0d3891fa0caac1f7ebe41b480920ffd34d4155064c24f3b1
+
+Cipher = aes-256-ccm
+Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125
+IV = ab6374c6b2faefd92fa3d3
+AAD = f19c044023e5cf339203738ee70e76527519763664c06ae00e002a5ba94c32c6
+Tag = 1f1ad61758d828b70d4881b7d6ae8cd0
+Plaintext = a2e5c51f516db01688b64c173bb25645182a005018022ee1
+Ciphertext = f70c598df3c64d3527ebb7fc8408b7de2cfaa1da7984ec36
+
+Cipher = aes-256-ccm
+Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125
+IV = cfb89e7ddcba601e875110
+AAD = 052714010da516c896ac5842a839ae845324643cddb080e6206148432d0d0407
+Tag = 316dd62075fc761e2bc80edc5c564bdf
+Plaintext = 037f206cab78a6ca0745dc8fc137e22e14f3d7183917ef83
+Ciphertext = ccd675862502a2e2520a33250150b8b7b220e84db854888c
+
+Cipher = aes-256-ccm
+Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125
+IV = 967cb6f8530bf8a43adb42
+AAD = cf391a84d03e2e22aec1965cec821f99e7bf21a7c3580dffa531464b22d83225
+Tag = fc8b5aca6d606222d6af7cfea0d1f4e1
+Plaintext = caa3d928d2bf2b7f2cd8a7f357055b6d6895a5e34f47972a
+Ciphertext = 4f4f509debe6e52eae4af8b1740dde0a5338f78711a3b4eb
+
+Cipher = aes-256-ccm
+Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125
+IV = f5b7b5dd2b5e1ec93710c9
+AAD = e7a6b228a67d37b9d29a38efc547e50b4a6d95d599b45ee189ece21101ac6b5b
+Tag = b2ff27a98029b23484e00c2a5d291887
+Plaintext = 4a74ff35418723f2cecec1012484b52114067b2b2393e7f4
+Ciphertext = 25b140922a9d4f2ce153a4ff86596a49d7de6a6184e931e8
+
+Cipher = aes-256-ccm
+Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125
+IV = 713de00faff892977d99d0
+AAD = 14ea93488d4284d21d4c7ce14414adf45c1ed9d2d99db866d0e59accb6234dac
+Tag = 3d2ae816edf857c810b6fdc7f2c71f1d
+Plaintext = 3820db475c7cb04a0f74d8e449f026ec951fa59667738698
+Ciphertext = e4d92ab8d1ffb0976670d891cc8338da12f86d5d79b33410
+
+Cipher = aes-256-ccm
+Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125
+IV = ba87934808de09b2ae829b
+AAD = 30e2ea2a505f19e8760a0a84961000c7a0b7fe3460a9d3f5a38f54149be2e9ee
+Tag = 93fc57997b977948d55bdb026db5bc48
+Plaintext = 0e52a384cedcdf7f179348de6e7336aa86f8855fbd903cfa
+Ciphertext = 6df893eed2be958e5f542f8cb4adb392b34786cb4ce821ec
+
+Cipher = aes-256-ccm
+Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125
+IV = ea09fbe5da0fa4fe911e18
+AAD = 237dc8512b29bccdeb8ee39cf83b9b6dd203823d175c44d5f605b194e7ec136e
+Tag = ff704a2bcfb8becd0226f76d68fbb08b
+Plaintext = 41cee0ecaf9c65cef740440af37954ef49a585779d2abbca
+Ciphertext = 2f204ebcf549ee2a800d870e6341b9a89a41ab4ae91b6902
+
+Cipher = aes-256-ccm
+Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125
+IV = 5b80d7affc4ab4a4b68bdd
+AAD = 3a38dd7da30f5c312fb1e978d87b7a39792fd9ea3e9ab1565874e99df587327c
+Tag = 8df9400df42baee6b9a0d75b45840104
+Plaintext = 5ff92f6d3ca791421363e10cc84b4e8e21e0ebe5d8c55d6c
+Ciphertext = 05472db7875d59f8bed45606f355a516de93740aa2baeba1
+
+Cipher = aes-256-ccm
+Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125
+IV = 514bba483fe7f2b7e555cc
+AAD = ac8beb419099cdb42a39e9b46fd900cc52eec4b43a96ed18b37b899b63fb931c
+Tag = 847729a70d7b4cff5281aece37006015
+Plaintext = b0b11dfca9b3936d1b4a423c5acd3d012b399a487c19c994
+Ciphertext = fa20629d514c4ce7bf727629bca5aa1c0c7e7851fc1bfc5c
+
+Cipher = aes-256-ccm
+Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc
+IV = 2f1d0717a822e20c7cd28f0a
+AAD = d50741d34c8564d92f396b97be782923ff3c855ea9757bde419f632c83997630
+Tag = 08aca7dec636170f481dcb9fefb85c05
+Plaintext = 98626ffc6c44f13c964e7fcb7d16e988990d6d063d012d33
+Ciphertext = 50e22db70ac2bab6d6af7059c90d00fbf0fb52eee5eb650e
+
+Cipher = aes-256-ccm
+Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc
+IV = 819ecbe71f851743871163cc
+AAD = 48e06c3b2940819e58eb24122a2988c997697347a6e34c21267d76049febdcf8
+Tag = 32d42f9954f9d35d989a09e4292949fc
+Plaintext = 8d164f598ea141082b1069776fccd87baf6a2563cbdbc9d1
+Ciphertext = 70fd9d3c7d9e8af610edb3d329f371cf3052d820e79775a9
+
+Cipher = aes-256-ccm
+Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc
+IV = 22168c66967d545823ea0b7a
+AAD = 7f596bc7a815d103ed9f6dc428b60e72aeadcb9382ccde4ac9f3b61e7e8047fd
+Tag = 7522efcd96cd4de4cf41e9b67c708f9f
+Plaintext = b28a5bc814e7f71ae94586b58281ff05a71191c92e45db74
+Ciphertext = 30254fe7c249c0125c56c90bad3983c7f852df91fa4e828b
+
+Cipher = aes-256-ccm
+Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc
+IV = 225557b0faca3d6cbaedec5c
+AAD = c7aafe7d3b419fa4ea06143897054846ac4b25e4744b62ba8a809cc19253a94b
+Tag = ac57f6ae1080efab4ed93f8b4ce1d355
+Plaintext = 0e71863c2962244c7d1a28fc755f0c73e5cbd630a8dbdeb3
+Ciphertext = 2369b56f21336aba9ac3e9ba428e0d648842a7971182d5ff
+
+Cipher = aes-256-ccm
+Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc
+IV = 78912be1a35e156a70fb72f7
+AAD = 12ba8eddff1c2a03ddd25bb924ff065a93fd712b2c4f61eb80d77fab2c4900e0
+Tag = ed3ccaeb7a814f69d3ec1fbf2ee9792d
+Plaintext = 113efd182f683596862ccd5eba2e2d4ffa709d9b85c6f1d5
+Ciphertext = 835a22eb8d718c0ee1531a2d1bb95f58215c997c612908ee
+
+Cipher = aes-256-ccm
+Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc
+IV = 91ad90b58d2044abacf957e1
+AAD = 4fc795b9126c23dd7fd514c2e5a8ca583e88a783b28cbb2a5df09f8b520ba0d1
+Tag = c257d67143722a976c9d7f44b09a767d
+Plaintext = ed55f6b9eb8fe74474c037ede94ffd84ada846ede4ecff74
+Ciphertext = ecb595276fd5d412a7cc3f5cfe960f47a0d0e2df0b08a11a
+
+Cipher = aes-256-ccm
+Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc
+IV = 4bbe4ca29122c4892ca09b5b
+AAD = 367ecd1b71dfb96a84e2369f28705dfaebf0c73ed35d5364449b2391230be846
+Tag = 6843a685bde3175695796f6e64f35901
+Plaintext = 8dd497bb777bbc3e56e3af25a43545007bb00f2b9e9f815c
+Ciphertext = 563d61fc0a5b82804a580a7d752a8e61d3342fb39372b39b
+
+Cipher = aes-256-ccm
+Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc
+IV = 218e7b8a8fd62927f90b70e5
+AAD = 01815f599d6ba0d1c09f6f673bb6cca4c2a7a74f4e985be4c0f37842c7bbc5a4
+Tag = d027e3466e8220144cb0552f9b2800e6
+Plaintext = 80f3e4245c3eab16ef8bf001429122e46bde21735f63adba
+Ciphertext = aaceb16589b9de253c99d0d32409a631db71e8df8a7644bf
+
+Cipher = aes-256-ccm
+Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc
+IV = eecc9f106a0721334cc7f5ba
+AAD = bf38d0ee11a796a517539bbc9ab00ff85a4ddbf0a612d46e2bc635180ad34c50
+Tag = 4c9027fc41bb8c848025fcf9d092a873
+Plaintext = 36cefa10af1a3446a2c8d4a1171144b9ddd8e33a7cd5a02d
+Ciphertext = 9bf3b2df93cf5b587ecc96f45fc75e6eb066cb286cb06f28
+
+Cipher = aes-256-ccm
+Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc
+IV = e41af8ca408c4c12e37561a4
+AAD = e0b20892875f60b5d8763a04958487fa5b7cf8d67a456e430475b337245d671c
+Tag = 7e6e0e5dc0a03826e51bd94269d7a41d
+Plaintext = 32a4da08bdd51336ed5798c7177b853a534bc98f2e6f7d4e
+Ciphertext = 95ffdc68f721cf2294d0d88002e3814167306fd906dbebdb
+
+Cipher = aes-256-ccm
+Key = 4a75ff2f66dae2935403cce27e829ad8be98185c73f8bc61d3ce950a83007e11
+IV = 46eb390b175e75da6193d7edb6
+AAD = 282f05f734f249c0535ee396282218b7c4913c39b59ad2a03ffaf5b0e9b0f780
+Tag = 5460e9b7856d60a5ad9803c0762f8176
+Plaintext = 205f2a664a8512e18321a91c13ec13b9e6b633228c57cc1e
+Ciphertext = 58f1584f761983bef4d0060746b5d5ee610ecfda31101a7f
+
+Cipher = aes-256-ccm
+Key = 4a75ff2f66dae2935403cce27e829ad8be98185c73f8bc61d3ce950a83007e11
+IV = 8a56588fe5e125237b6cdc30f9
+AAD = b3aee5fbf409bcfe9b46ae68d570edbbed32c12d13926ffb5ddc60ff0bdb7f85
+Tag = 276664f6567f2f978bd4be4d80cd07be
+Plaintext = eca81bbd12d3fd28df85e2cc3dcc2ecbd87408002fd00fe1
+Ciphertext = 9aad62a5443550d11f9efdab2de0eba74d47ae4f7d16adf4
+
+Cipher = aes-256-ccm
+Key = 4a75ff2f66dae2935403cce27e829ad8be98185c73f8bc61d3ce950a83007e11
+IV = d908b04840caca2280e5293ade
+AAD = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e
+Tag = 6e5a9df1b1d6284ef657cde6f74734bb
+Plaintext = ad1109ea5c79bb55d22e9713eb2df42767cb29a2eba3ad2c
+Ciphertext = 61fdcebb158cd03151697ae7871c0a998802997e0672e588
+
+Cipher = aes-256-ccm
+Key = 4a75ff2f66dae2935403cce27e829ad8be98185c73f8bc61d3ce950a83007e11
+IV = 6df8c5c28d1728975a0b766cd7
+AAD = 080f82469505118842e5fa70df5323de175a37609904ee5e76288f94ca84b3c5
+Tag = 8cc80aa08572b90e9598d0a73712b720
+Plaintext = 1a95f06b821879df3fd3ac52fc99a7c1d3e9775263b7d036
+Ciphertext = 704f60f9cc3ef7bc00b4f7a271ca70a89f4d5605387b3e2f
+
+Cipher = aes-256-ccm
+Key = 4a75ff2f66dae2935403cce27e829ad8be98185c73f8bc61d3ce950a83007e11
+IV = 6c6ebacce80dde9fefb7e5bb47
+AAD = 93f0fca0c8c84d5cc48160b25e246226d489225c0f8275e52856da592c715aa6
+Tag = 86b2c952055899184f0d95ffe3959f89
+Plaintext = 46820aec46ebd0d61706129584058a1498514928a87fe620
+Ciphertext = 00f6cccf45f046da1e6266afe61eed61c60c28515b2e1ab3
+
+Cipher = aes-256-ccm
+Key = 4a75ff2f66dae2935403cce27e829ad8be98185c73f8bc61d3ce950a83007e11
+IV = b94bc20d8c9abca7645fc6bebf
+AAD = e1c083c93663f5a066ef337a61aa3fddde7c301a42463137c375cc2dcdd76954
+Tag = e37a53d77b9e38605febdd7b2b666f98
+Plaintext = f1fca581d3dbbc61060c0c02adb47bc57954d25a283f66d6
+Ciphertext = 90c65d23e0e1786cebb95f9b1306d001b2e503842cdedb75
+
+Cipher = aes-256-ccm
+Key = 4a75ff2f66dae2935403cce27e829ad8be98185c73f8bc61d3ce950a83007e11
+IV = a4974791d417d7e9eea0f4ae8d
+AAD = 33602f308f3a0f7e1c75fc1e4321d545ffa278234958dbadd37f59a0f85349c3
+Tag = 63ceb824708a20724c99c83f1caacd70
+Plaintext = 41712c058d2d56b43b2c79278e790858a289320746c15a60
+Ciphertext = aab5656a1ef060c9b1ef7e2f3cc0bda40ff0679004011825
+
+Cipher = aes-256-ccm
+Key = 4a75ff2f66dae2935403cce27e829ad8be98185c73f8bc61d3ce950a83007e11
+IV = 6003b771afe4e99e1ef1ed4a31
+AAD = f60d8362b2ebf523681bb051fd3ee13919ad86acd963c703c4178a5f01a84236
+Tag = a84e7af3116a18f7ce44ae93f420270b
+Plaintext = b766022311c5e1d74a607fec7cb8ee805b8397a6c5f374c1
+Ciphertext = f73b2a6dbf8f798d4bfb489a6578c9c79152e42aa3b81b64
+
+Cipher = aes-256-ccm
+Key = 4a75ff2f66dae2935403cce27e829ad8be98185c73f8bc61d3ce950a83007e11
+IV = 27861168ac731a223dc35c03e8
+AAD = b7ba1c66282cb6092ba601407ff9578afdadf7ba7a4d08edef06dbbfd87171bf
+Tag = 4009312bdae46958d844eca502bcb005
+Plaintext = 0822e3e6ba982091d532cd5271fbde25305d1f6e71880f81
+Ciphertext = 5ab3e5296cd1f08704c82f6b42939702515b7733853d723d
+
+
+Title = NIST CCM 128 Variable Plaintext Tests
+
+Cipher = aes-128-ccm
+Key = 2ebf60f0969013a54a3dedb19d20f6c8
+IV = 1de8c5e21f9db33123ff870add
+AAD = e1de6c6119d7db471136285d10b47a450221b16978569190ef6a22b055295603
+Tag = 0ead29ef205fbb86d11abe5ed704b880
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 2ebf60f0969013a54a3dedb19d20f6c8
+IV = 1de8c5e21f9db33123ff870add
+AAD = 98d477b7ef0e4ded679b0bc8d880f09823ad80e9732fde59c3a87da6a1fcf70b
+Tag = 5b85d144bb51d4927074d3536a2db83a
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 2ebf60f0969013a54a3dedb19d20f6c8
+IV = 1de8c5e21f9db33123ff870add
+AAD = 28f32de10b6c9d3c3f46efec7aee24006208a54c4d1c2bba4b8cdce166cab7d9
+Tag = 01045de4a09486eea5efa33ecc6cd299
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 2ebf60f0969013a54a3dedb19d20f6c8
+IV = 1de8c5e21f9db33123ff870add
+AAD = af397a8b8dd73ab702ce8e53aa9f0189995c6c9e920dcb75795149550b499deb
+Tag = dfd75400b59c3ad387bc86dfbbfb52ac
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 2ebf60f0969013a54a3dedb19d20f6c8
+IV = 1de8c5e21f9db33123ff870add
+AAD = 3fa956bfaa27e249bf0a1276468d808259f3b8e2687851d780885d44cc2f04bd
+Tag = 2b11d2549b4e2f0a81c07ee90af4d081
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 2ebf60f0969013a54a3dedb19d20f6c8
+IV = 1de8c5e21f9db33123ff870add
+AAD = babbd1b44cae3af06e0150bf0e3d898f6fe862b71ea9f6b727accfc18848fc79
+Tag = 10f76ab445f4ec158ccc1f7c6fee3ede
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 2ebf60f0969013a54a3dedb19d20f6c8
+IV = 1de8c5e21f9db33123ff870add
+AAD = 7fba0bfda3b03c736c121cf9a257db55060b621be5168619ec4182f13ef6a408
+Tag = 59e02d6a6aa3fb2692b04e65a0e735da
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 2ebf60f0969013a54a3dedb19d20f6c8
+IV = 1de8c5e21f9db33123ff870add
+AAD = 057354a29808f4ed77671ed3dc36f8b03f5cd952caac5cb80dc3b319f3333e29
+Tag = 367a2ade4087964dcb0ca2984d44657e
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 2ebf60f0969013a54a3dedb19d20f6c8
+IV = 1de8c5e21f9db33123ff870add
+AAD = ec08b618602d091e9304715cb552b357c16fd1d7f7f023a28d84a98ba21ca0ab
+Tag = 47cb92cd40bc89328d4dd44fbd727032
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 2ebf60f0969013a54a3dedb19d20f6c8
+IV = 1de8c5e21f9db33123ff870add
+AAD = 45622834ea658b09b17f32777d18b34b387ef957bd344468f68e7178417a7c24
+Tag = f5185afb8359b5ef995483c0bc4192c3
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ccm
+Key = 6ae7a8e907b8720f4b0d5507c1d0dc41
+IV = 7f18ad442e536a0159e7aa8c0f
+AAD = 9c9b0f11e020c6512a63dfa1a5ec8df8bd8e2ad83cf87b80b38635621c5dc0d7
+Tag = 201784bdab19e255787fecd02000c49d
+Plaintext = 0e
+Ciphertext = 4c
+
+Cipher = aes-128-ccm
+Key = 6ae7a8e907b8720f4b0d5507c1d0dc41
+IV = 7f18ad442e536a0159e7aa8c0f
+AAD = 73616a428f1a567b2e9af86b1fc8aec6d597b1b55f2aa2219b3b662fa6bd3407
+Tag = f14519f06b63fac3d5b2d9bbfa0cb758
+Plaintext = 30
+Ciphertext = 72
+
+Cipher = aes-128-ccm
+Key = 6ae7a8e907b8720f4b0d5507c1d0dc41
+IV = 7f18ad442e536a0159e7aa8c0f
+AAD = 6d62f4e15e8bcc9ba4993bc50a046737121016f0d15020b90068250551167b1c
+Tag = 76b581a28ca0a0ba5178eba7fe028da6
+Plaintext = 34
+Ciphertext = 76
+
+Cipher = aes-128-ccm
+Key = 6ae7a8e907b8720f4b0d5507c1d0dc41
+IV = 7f18ad442e536a0159e7aa8c0f
+AAD = 8f0b8289a1834ecc2167b59ce3c9d3b58465c4cfaad50c728d04360cb7e5bc41
+Tag = d99b805c0a4785ff2913cab3e50f6205
+Plaintext = ec
+Ciphertext = ae
+
+Cipher = aes-128-ccm
+Key = 6ae7a8e907b8720f4b0d5507c1d0dc41
+IV = 7f18ad442e536a0159e7aa8c0f
+AAD = 477b2a6932f838f0d1bc420c0ca306981d8e2dab945b6f259e15fe888667220a
+Tag = b50e41cd7af84a8fdb6aee144e904616
+Plaintext = ec
+Ciphertext = ae
+
+Cipher = aes-128-ccm
+Key = 6ae7a8e907b8720f4b0d5507c1d0dc41
+IV = 7f18ad442e536a0159e7aa8c0f
+AAD = d6518d409b1f05708d0b44f18fb5721f20f3220f8d2f2718650aa9932e4579e0
+Tag = 12639c863974f077fe8236c943b464c4
+Plaintext = d1
+Ciphertext = 93
+
+Cipher = aes-128-ccm
+Key = 6ae7a8e907b8720f4b0d5507c1d0dc41
+IV = 7f18ad442e536a0159e7aa8c0f
+AAD = 865e7cde73b558e9bfd05356923f8a697970811fc484acad2d5b3528baf1f986
+Tag = d7265cde50bc7a3989458437baf06db5
+Plaintext = 24
+Ciphertext = 66
+
+Cipher = aes-128-ccm
+Key = 6ae7a8e907b8720f4b0d5507c1d0dc41
+IV = 7f18ad442e536a0159e7aa8c0f
+AAD = f0c3c67a935eace53ed32435655dd0974fafe283622e8294a15d70977398eae2
+Tag = 063144b25d2268063815d1b42ebbac34
+Plaintext = c5
+Ciphertext = 87
+
+Cipher = aes-128-ccm
+Key = 6ae7a8e907b8720f4b0d5507c1d0dc41
+IV = 7f18ad442e536a0159e7aa8c0f
+AAD = 341e71b2ef26e9db03882e06d06cde2c0617326cd157d5984d22f6f3407a9c39
+Tag = 7da45c10d0d6498716bcf3f13ca7e26c
+Plaintext = 34
+Ciphertext = 76
+
+Cipher = aes-128-ccm
+Key = 6ae7a8e907b8720f4b0d5507c1d0dc41
+IV = 7f18ad442e536a0159e7aa8c0f
+AAD = 31fce6735ba9a3385df11c153179b8e4141a3c6b8ad6eceaa211f3f17bfd0474
+Tag = cb0a6f562974cfb3fb7c8d5cafd50f2b
+Plaintext = 7d
+Ciphertext = 3f
+
+Cipher = aes-128-ccm
+Key = 3d746ae6cac5cefd01f021c0bbf4bc3c
+IV = 597b3614ff9cd567afd1aad4e5
+AAD = 90446190e1ff5e48e8a09d692b217de3ad0ab4a670e7f1b437f9c07a902cad60
+Tag = db77c1f8bbac2903a2ec7bc0f9c5654d
+Plaintext = 4360
+Ciphertext = e38f
+
+Cipher = aes-128-ccm
+Key = 3d746ae6cac5cefd01f021c0bbf4bc3c
+IV = 597b3614ff9cd567afd1aad4e5
+AAD = 6bc3d30925c67371573271f1a4273ad76e91e07dfab65f7bce0b241b5e4cd00e
+Tag = 55210d62e1393e4fda647c2b2e59a47d
+Plaintext = 17c6
+Ciphertext = b729
+
+Cipher = aes-128-ccm
+Key = 3d746ae6cac5cefd01f021c0bbf4bc3c
+IV = 597b3614ff9cd567afd1aad4e5
+AAD = d1bb4cdfc3f2c16d92576068543692aa4b5a427d688387af0f1583e91a0e8b3c
+Tag = d54fd88a47b9f6e39cb4606af86d13e8
+Plaintext = 6575
+Ciphertext = c59a
+
+Cipher = aes-128-ccm
+Key = 3d746ae6cac5cefd01f021c0bbf4bc3c
+IV = 597b3614ff9cd567afd1aad4e5
+AAD = ae6136df9ab43631ef143515dacedbe759b3459e951bfaf4712a21c86352f1c0
+Tag = 6de841af64b55bb7ebe3fd30ba493c7d
+Plaintext = b1dd
+Ciphertext = 1132
+
+Cipher = aes-128-ccm
+Key = 3d746ae6cac5cefd01f021c0bbf4bc3c
+IV = 597b3614ff9cd567afd1aad4e5
+AAD = ffead34ac26e21158212d07c367c3a7cb6b795887ee2d3d8ae25c60556ea88d3
+Tag = 3a206339de534271f6469edfa5ed07d3
+Plaintext = cd16
+Ciphertext = 6df9
+
+Cipher = aes-128-ccm
+Key = 3d746ae6cac5cefd01f021c0bbf4bc3c
+IV = 597b3614ff9cd567afd1aad4e5
+AAD = e768e7d867820d46c1cc62ee0e51d4dac6f5c4b5785b5ccfbf05236871bdce2a
+Tag = a8f65144f2ec5809e2ccb38c8760f7bc
+Plaintext = 12f5
+Ciphertext = b21a
+
+Cipher = aes-128-ccm
+Key = 3d746ae6cac5cefd01f021c0bbf4bc3c
+IV = 597b3614ff9cd567afd1aad4e5
+AAD = 402e802885e4119df17fe85f141c3d1af7727fcdb00f8e2c34e42a436d04ac5b
+Tag = 9af825957abe7d89e175b6e8c0b84b5f
+Plaintext = 39c0
+Ciphertext = 992f
+
+Cipher = aes-128-ccm
+Key = 3d746ae6cac5cefd01f021c0bbf4bc3c
+IV = 597b3614ff9cd567afd1aad4e5
+AAD = 8a3a622b3d347c0c5210d484adf77fa33205ba02224ddceea71d89c9ad8429ae
+Tag = 25d6a12e91e84e355934547f6b5dceb8
+Plaintext = 912f
+Ciphertext = 31c0
+
+Cipher = aes-128-ccm
+Key = 3d746ae6cac5cefd01f021c0bbf4bc3c
+IV = 597b3614ff9cd567afd1aad4e5
+AAD = 636114e5e5f83cec94e1df21d6babb9f6a14a532fcbfc3bcf649fbd79ac1abbb
+Tag = 6db959a21e9e4ebf25ca4f98501b560d
+Plaintext = cb6d
+Ciphertext = 6b82
+
+Cipher = aes-128-ccm
+Key = 3d746ae6cac5cefd01f021c0bbf4bc3c
+IV = 597b3614ff9cd567afd1aad4e5
+AAD = 04e84f9156998c2eca9e96079a6001f2947dc49a081b3d75e47d75f71ed4a606
+Tag = 2006ff22ff231a6646ae561923818a21
+Plaintext = 5bd2
+Ciphertext = fb3d
+
+Cipher = aes-128-ccm
+Key = 3e4fa1c6f8b00f1296956735ee86e310
+IV = c6a170936568651020edfe15df
+AAD = 00d57896da2435a4271afb9c98f61a650e63a4955357c47d073c5165dd4ea318
+Tag = 57bfc5f385b179be7333eb3f57df546b
+Plaintext = 3a6734
+Ciphertext = 384be6
+
+Cipher = aes-128-ccm
+Key = 3e4fa1c6f8b00f1296956735ee86e310
+IV = c6a170936568651020edfe15df
+AAD = 50f6e6dd57bd3a24f6bfdc8b1c7b5a36ebdd07fd6d194e6e82da47151d9c88fb
+Tag = b8ca97bda492546d82dccdebef441f8b
+Plaintext = 4ffad3
+Ciphertext = 4dd601
+
+Cipher = aes-128-ccm
+Key = 3e4fa1c6f8b00f1296956735ee86e310
+IV = c6a170936568651020edfe15df
+AAD = 70e132023acae1f88c7a237b68f5bdce56bcfc92be9f403d95d3bcc93b4477a9
+Tag = fa0f3e397d9a580aa39c7028e1a508c9
+Plaintext = 8a594b
+Ciphertext = 887599
+
+Cipher = aes-128-ccm
+Key = 3e4fa1c6f8b00f1296956735ee86e310
+IV = c6a170936568651020edfe15df
+AAD = 08d2b011f36e05dc728c1a8bda3d92c779a3d2f27c4b041810bd6222c852b14d
+Tag = 593460d335e2f7a6d40b8fe305b0f690
+Plaintext = 1f89df
+Ciphertext = 1da50d
+
+Cipher = aes-128-ccm
+Key = 3e4fa1c6f8b00f1296956735ee86e310
+IV = c6a170936568651020edfe15df
+AAD = b207eb870aeeab27c6201ef04650bdc7ea30028a243420f7d198f1c9c9a43023
+Tag = a2d49e1a113767ea4219107819d88b65
+Plaintext = 72e9c1
+Ciphertext = 70c513
+
+Cipher = aes-128-ccm
+Key = 3e4fa1c6f8b00f1296956735ee86e310
+IV = c6a170936568651020edfe15df
+AAD = 74294088721fc9e7aabd5f1c66b5369b1e2d2cdb3e73abaa28ecd1c37d4ecea2
+Tag = dab1c819778be8453db163c882063af8
+Plaintext = 016083
+Ciphertext = 034c51
+
+Cipher = aes-128-ccm
+Key = 3e4fa1c6f8b00f1296956735ee86e310
+IV = c6a170936568651020edfe15df
+AAD = abbd347999a1c26368cdb17ab08bf57a8e942d1248296e952f5f42f2cabbf0e6
+Tag = 537eb435df8d0e48c3f7e0bd1877c866
+Plaintext = 25f665
+Ciphertext = 27dab7
+
+Cipher = aes-128-ccm
+Key = 3e4fa1c6f8b00f1296956735ee86e310
+IV = c6a170936568651020edfe15df
+AAD = 231b33dc406c9210f59a5df1cfd595c803474db34b9b1848f0bcbe7b28df33c2
+Tag = da549fc63d55b5910bbbf64435b95220
+Plaintext = 158606
+Ciphertext = 17aad4
+
+Cipher = aes-128-ccm
+Key = 3e4fa1c6f8b00f1296956735ee86e310
+IV = c6a170936568651020edfe15df
+AAD = 69b851e63a78baef90637978e3dfe8c47be4b21e85bb89bf67051cf251004376
+Tag = d5ee29fb2af47f8040fad585921057f5
+Plaintext = b07452
+Ciphertext = b25880
+
+Cipher = aes-128-ccm
+Key = 3e4fa1c6f8b00f1296956735ee86e310
+IV = c6a170936568651020edfe15df
+AAD = 9b1f786c887d310b8efd3e8192fe504f603024c94aaa4ec9123736a40bf1605d
+Tag = bc3ee43e10205f83143e0d3794a6734c
+Plaintext = 65187c
+Ciphertext = 6734ae
+
+Cipher = aes-128-ccm
+Key = 7ccbb8557f6e08f436d0957d4bbe7fdf
+IV = bb8e2ef2ed9484f9021cda7073
+AAD = fba1d18a74a3bb38671ab2842ffaa434cd572a0b45320e4145930b3008d8d350
+Tag = 35c4dd96e83d5ab4c3c31c523453c317
+Plaintext = 4cabeb02
+Ciphertext = 32501f42
+
+Cipher = aes-128-ccm
+Key = 7ccbb8557f6e08f436d0957d4bbe7fdf
+IV = bb8e2ef2ed9484f9021cda7073
+AAD = 78b3faecb2bdf6ed14ac2b86ded07aa791b60f5d54f9e24a965a8453f5131898
+Tag = 7907d6a03e66403a7d9330d30d934a8d
+Plaintext = 5ff73653
+Ciphertext = 210cc213
+
+Cipher = aes-128-ccm
+Key = 7ccbb8557f6e08f436d0957d4bbe7fdf
+IV = bb8e2ef2ed9484f9021cda7073
+AAD = db1239528eb464dd063e2a97ee83a87d6002ebb4fbafa77036f72c14f3fe959b
+Tag = 44f4bc78fbb969935076134437df82b4
+Plaintext = 062fa9ca
+Ciphertext = 78d45d8a
+
+Cipher = aes-128-ccm
+Key = 7ccbb8557f6e08f436d0957d4bbe7fdf
+IV = bb8e2ef2ed9484f9021cda7073
+AAD = 0071f1edb3a0ce57af3c88bb0ccf138f752697a77e55695838fb39de04c78dfb
+Tag = 59692911fea2e0034d06c3b2e89af3d1
+Plaintext = cad710b4
+Ciphertext = b42ce4f4
+
+Cipher = aes-128-ccm
+Key = 7ccbb8557f6e08f436d0957d4bbe7fdf
+IV = bb8e2ef2ed9484f9021cda7073
+AAD = 7381471a62b1fa6f5061c4c37e9721f07099d007ffaf8639aa2ae3f82da5a559
+Tag = 68484e22381923bfcaed16e0cb85b0f8
+Plaintext = 7ac716b4
+Ciphertext = 043ce2f4
+
+Cipher = aes-128-ccm
+Key = 7ccbb8557f6e08f436d0957d4bbe7fdf
+IV = bb8e2ef2ed9484f9021cda7073
+AAD = 19bea6d92d5892216e8e4a30dda802387800bb046a6717817fc46c7edafe17b0
+Tag = d081de39c247df309c4b56c31c03690d
+Plaintext = 362da02c
+Ciphertext = 48d6546c
+
+Cipher = aes-128-ccm
+Key = 7ccbb8557f6e08f436d0957d4bbe7fdf
+IV = bb8e2ef2ed9484f9021cda7073
+AAD = 8503c8eb9cebc6110f259e35e03a0740267768130ce6f61b1c7d1d25be942274
+Tag = c6c6bd7b3a9d7c4dfa2738847ea3cb33
+Plaintext = de52b209
+Ciphertext = a0a94649
+
+Cipher = aes-128-ccm
+Key = 7ccbb8557f6e08f436d0957d4bbe7fdf
+IV = bb8e2ef2ed9484f9021cda7073
+AAD = d2445db6efecaa3f426b06de8d496ceed54a1d0171384cc762e21b31e265c6d5
+Tag = 2ca874d18d0b790856837555f4d4699a
+Plaintext = 8fe8b383
+Ciphertext = f11347c3
+
+Cipher = aes-128-ccm
+Key = 7ccbb8557f6e08f436d0957d4bbe7fdf
+IV = bb8e2ef2ed9484f9021cda7073
+AAD = 8cda7d1e135cf5fde1ec9473c4b42c1bbb445c27fd87b5f73df61ceb2d0b6f75
+Tag = 932c2f8d78e322aaffc90846025190f1
+Plaintext = d8d6b2c9
+Ciphertext = a62d4689
+
+Cipher = aes-128-ccm
+Key = 7ccbb8557f6e08f436d0957d4bbe7fdf
+IV = bb8e2ef2ed9484f9021cda7073
+AAD = b506a6ba900c1147c806775324b36eb376aa01d4c3eef6f5a4c25393ecbf2025
+Tag = c346a4084918081b4bbe53b50d896788
+Plaintext = 6a029e53
+Ciphertext = 14f96a13
+
+Cipher = aes-128-ccm
+Key = 3725c7905bfaca415908c617b78f8dee
+IV = c98ec4473e051a4d4ac56fd082
+AAD = 11bc87f1c2d2076ba47c5cb530dd6c2a224f7a0f7f554e23d7d29077c7787680
+Tag = 2066751af249d521c6eaebdff40b2642
+Plaintext = f5499a7082
+Ciphertext = e378b77624
+
+Cipher = aes-128-ccm
+Key = 3725c7905bfaca415908c617b78f8dee
+IV = c98ec4473e051a4d4ac56fd082
+AAD = d54219ef4fb851bebd1c546011ae3922b8337e19c28d4d58428efd66f80edcf0
+Tag = e7258df363e0e9af67a543c86db3c994
+Plaintext = 513c46fcce
+Ciphertext = 470d6bfa68
+
+Cipher = aes-128-ccm
+Key = 3725c7905bfaca415908c617b78f8dee
+IV = c98ec4473e051a4d4ac56fd082
+AAD = a92e88edd297da8c7089e21822b3e6cffd6837c78b975c8413fd6cca1b99bcb0
+Tag = 72b7573e5b27a1d0e15cdb7b06c8857f
+Plaintext = 9d62e557c3
+Ciphertext = 8b53c85165
+
+Cipher = aes-128-ccm
+Key = 3725c7905bfaca415908c617b78f8dee
+IV = c98ec4473e051a4d4ac56fd082
+AAD = 77d9c306aa257379053cf1f2043c388a301dac2a9e2bb89eb8bab6eb3f150fe3
+Tag = de691a412ad54bbdb6ceac45ed45902b
+Plaintext = 7a05db235f
+Ciphertext = 6c34f625f9
+
+Cipher = aes-128-ccm
+Key = 3725c7905bfaca415908c617b78f8dee
+IV = c98ec4473e051a4d4ac56fd082
+AAD = 081568ae0b948aa647b9d4dda5d42641ad5de72aa9874d8d0717d872007720a8
+Tag = 8a1bb8ba3d6763dcb1bdd3400e3459f7
+Plaintext = 30a22ca0fc
+Ciphertext = 269301a65a
+
+Cipher = aes-128-ccm
+Key = 3725c7905bfaca415908c617b78f8dee
+IV = c98ec4473e051a4d4ac56fd082
+AAD = 695ba4dea0f84baf190ec25a25fc00cb9898902d7a17e6f5ff2df323b974f7c4
+Tag = 403897d496cabcd5bd9de3282199a8ed
+Plaintext = 35e25aa51f
+Ciphertext = 23d377a3b9
+
+Cipher = aes-128-ccm
+Key = 3725c7905bfaca415908c617b78f8dee
+IV = c98ec4473e051a4d4ac56fd082
+AAD = 1f3ba0336a634efdd11f8168c0fe25039f9403bfa70b3898f4dbe577dbd52957
+Tag = 70a81f7cb0ab7ab2b495f51d66abeee5
+Plaintext = 8bde704c74
+Ciphertext = 9def5d4ad2
+
+Cipher = aes-128-ccm
+Key = 3725c7905bfaca415908c617b78f8dee
+IV = c98ec4473e051a4d4ac56fd082
+AAD = 097b9ebff3ff93a143678d59721fdf359e95cbc82585ae47727a773317925d38
+Tag = ce68e9b01a4462a2221bd2f3cadf64c0
+Plaintext = 428542ecfb
+Ciphertext = 54b46fea5d
+
+Cipher = aes-128-ccm
+Key = 3725c7905bfaca415908c617b78f8dee
+IV = c98ec4473e051a4d4ac56fd082
+AAD = 76d0341dd44c39e43a23dbcf4cb602f15d5fb9fee20c3d0d262d539c3fd1dfd5
+Tag = f2545964ef3978cad3387d61104bab84
+Plaintext = bd6866ded0
+Ciphertext = ab594bd876
+
+Cipher = aes-128-ccm
+Key = 3725c7905bfaca415908c617b78f8dee
+IV = c98ec4473e051a4d4ac56fd082
+AAD = 7e7c40ad64b511005b4546f9ec61ca24829390fbc4bd8507225bc348ae0807d7
+Tag = 002c41938a935d51905b2a708a2c5194
+Plaintext = 5822755a3e
+Ciphertext = 4e13585c98
+
+Cipher = aes-128-ccm
+Key = 80bead98a05d1bb173cd4fca463b8fa3
+IV = 8a14a6d255aa4032ebff37a3d7
+AAD = bb4e706e73d21df66f64173859d47e247527cd9832e20dccff8548ed5f554108
+Tag = 8427f36b1f6c633e4542f32b50ca8edb
+Plaintext = e479990bf082
+Ciphertext = 89c924623887
+
+Cipher = aes-128-ccm
+Key = 80bead98a05d1bb173cd4fca463b8fa3
+IV = 8a14a6d255aa4032ebff37a3d7
+AAD = 9db2182c8a4f5471082bfa1a8496602cbcdef2790f7e8f71f791303bd48dcb05
+Tag = d76fe54da69af5edf8309c7f013bb07e
+Plaintext = 017a7fd1aecb
+Ciphertext = 6ccac2b866ce
+
+Cipher = aes-128-ccm
+Key = 80bead98a05d1bb173cd4fca463b8fa3
+IV = 8a14a6d255aa4032ebff37a3d7
+AAD = bf483f59fb73681f27b68168c998c90ea8ceea997654c6fab2bd737dcdc884f9
+Tag = 662f53d17f7cb6673415bb2324ca0666
+Plaintext = 512fc5e4973a
+Ciphertext = 3c9f788d5f3f
+
+Cipher = aes-128-ccm
+Key = 80bead98a05d1bb173cd4fca463b8fa3
+IV = 8a14a6d255aa4032ebff37a3d7
+AAD = b91e641d8210e1ef705fec2beb9f58a391c7d1a38935cd1d13f2c00363388ff5
+Tag = 40c86156b1065b64af1e4d6c89b32603
+Plaintext = 06212e989616
+Ciphertext = 6b9193f15e13
+
+Cipher = aes-128-ccm
+Key = 80bead98a05d1bb173cd4fca463b8fa3
+IV = 8a14a6d255aa4032ebff37a3d7
+AAD = 5cebf908e232d797fcce8453c4c3000868d4172622a4ee0d6a1bdd876a0b7c96
+Tag = c07ef5349903b928e39e99e2e32625de
+Plaintext = c45629069ebc
+Ciphertext = a9e6946f56b9
+
+Cipher = aes-128-ccm
+Key = 80bead98a05d1bb173cd4fca463b8fa3
+IV = 8a14a6d255aa4032ebff37a3d7
+AAD = ab92cbc97f3aa6f9ea4dae5d8c3d9e91231f43ffff548da7b668e61c183ac2cf
+Tag = 5e40654ea16e83cc6faeaad668c416f3
+Plaintext = b949ced37725
+Ciphertext = d4f973babf20
+
+Cipher = aes-128-ccm
+Key = 80bead98a05d1bb173cd4fca463b8fa3
+IV = 8a14a6d255aa4032ebff37a3d7
+AAD = 2c3d2f9c7e89c2b9e07317c4db6e9f00f5faadfad531c5bea79d164ac24d4543
+Tag = 3102a502dbba0c280e1d5fc627fe3a9e
+Plaintext = 517ff7b383b7
+Ciphertext = 3ccf4ada4bb2
+
+Cipher = aes-128-ccm
+Key = 80bead98a05d1bb173cd4fca463b8fa3
+IV = 8a14a6d255aa4032ebff37a3d7
+AAD = d798e77ab0f3697768f23014fd31b9e8762ae65b6aa8a4bbc17ecb8cbe78461f
+Tag = 6745fd4c954396e696697731e1f9a262
+Plaintext = b40d863ca4ff
+Ciphertext = d9bd3b556cfa
+
+Cipher = aes-128-ccm
+Key = 80bead98a05d1bb173cd4fca463b8fa3
+IV = 8a14a6d255aa4032ebff37a3d7
+AAD = 45b44e3dec57e24d960fd1767797ffdbbab81e38bab37e6974df262c3d932327
+Tag = bdf2b2dd47077c98234eae5d47c3b594
+Plaintext = 56e00289a003
+Ciphertext = 3b50bfe06806
+
+Cipher = aes-128-ccm
+Key = 80bead98a05d1bb173cd4fca463b8fa3
+IV = 8a14a6d255aa4032ebff37a3d7
+AAD = 645d27970ccce096d082fccfc1183955bad2611af0dd7c58c9d54430f28bd992
+Tag = ea66649ad7e204a344d3234125aa324b
+Plaintext = aa22bb1de579
+Ciphertext = c79206742d7c
+
+Cipher = aes-128-ccm
+Key = dc8ec91184ba18eae31ac2d3b252673f
+IV = 0da4c988f521f5648259f2bec2
+AAD = 6d5573c9279897d7d1602d8a95c04bb5ca3fad2dbe89a024b3651eb227e73bb5
+Tag = a852a7c4358dfa9f5467357638acac90
+Plaintext = 2a5775986551c8
+Ciphertext = 4f259f2a718fae
+
+Cipher = aes-128-ccm
+Key = dc8ec91184ba18eae31ac2d3b252673f
+IV = 0da4c988f521f5648259f2bec2
+AAD = ff0ab5021ef466e2e898b0993d691145168be558682c74914c172f2b5e863754
+Tag = 8767c76e707d48a2144e090812e0192d
+Plaintext = 8db3c1ca0580f9
+Ciphertext = e8c12b78115e9f
+
+Cipher = aes-128-ccm
+Key = dc8ec91184ba18eae31ac2d3b252673f
+IV = 0da4c988f521f5648259f2bec2
+AAD = 2ee03cc28f79773af139c4ea55ec4daa48bb2885b8adcd5f066eceda5c4ec27b
+Tag = 5486df740083c959fb62ef7e2e221602
+Plaintext = 3c69e2e83236b6
+Ciphertext = 591b085a26e8d0
+
+Cipher = aes-128-ccm
+Key = dc8ec91184ba18eae31ac2d3b252673f
+IV = 0da4c988f521f5648259f2bec2
+AAD = f041504d4c1b3d5be358bd6d350af42921205d29ab22b44ffe221358adef5bb4
+Tag = bdc4d2b86b2528f75db4a7f5423f4395
+Plaintext = 777828ab5ccb68
+Ciphertext = 120ac21948150e
+
+Cipher = aes-128-ccm
+Key = dc8ec91184ba18eae31ac2d3b252673f
+IV = 0da4c988f521f5648259f2bec2
+AAD = 81ea116832d69542ac8d3d22c16c82eecf2ccac39264dd933c4f9c13c8d0f1d4
+Tag = a7b06d1b710baa15daef19069ecf46f0
+Plaintext = af556fef3584e3
+Ciphertext = ca27855d215a85
+
+Cipher = aes-128-ccm
+Key = dc8ec91184ba18eae31ac2d3b252673f
+IV = 0da4c988f521f5648259f2bec2
+AAD = 8a0a120ed290a62456f002da1c250a0ddb1ebd57185a733d8fb562aad482679d
+Tag = 3811129add52e1406d50cbff4aa82802
+Plaintext = 98f26635351f14
+Ciphertext = fd808c8721c172
+
+Cipher = aes-128-ccm
+Key = dc8ec91184ba18eae31ac2d3b252673f
+IV = 0da4c988f521f5648259f2bec2
+AAD = 12b5a76faedf6f855e328c2cb87be8aea78c5e926b32d828e167b46205c86de5
+Tag = 1563d3da8a6cabb7515f642e42fb4b2e
+Plaintext = bd22c1ec05dc26
+Ciphertext = d8502b5e110240
+
+Cipher = aes-128-ccm
+Key = dc8ec91184ba18eae31ac2d3b252673f
+IV = 0da4c988f521f5648259f2bec2
+AAD = 8dc32f35ef4bcbfd040ad25dc36d0bd2486f93d0cabb7704cd1582dc99f65449
+Tag = 17609a21f703253e5e56beef4ac71759
+Plaintext = 2a87c0d64806fe
+Ciphertext = 4ff52a645cd898
+
+Cipher = aes-128-ccm
+Key = dc8ec91184ba18eae31ac2d3b252673f
+IV = 0da4c988f521f5648259f2bec2
+AAD = 83ced632359a11eb0c4c99baad84df5cac15bc5453b6593d9ffb4c5e8c84037f
+Tag = 236c72f98da859b54be7c598d85c37eb
+Plaintext = f05f39eb0a3d64
+Ciphertext = 952dd3591ee302
+
+Cipher = aes-128-ccm
+Key = dc8ec91184ba18eae31ac2d3b252673f
+IV = 0da4c988f521f5648259f2bec2
+AAD = 771a818a24e7da7b98f4b4291ef34bec7e1656b0c6c6e9474a989a04ea7de385
+Tag = 64c8cd38cbcc46e7f09bf3e1c6590c71
+Plaintext = 59dad755af92c2
+Ciphertext = 3ca83de7bb4ca4
+
+Cipher = aes-128-ccm
+Key = 19f97ef5318b8005fc7133fa31dd1236
+IV = 01ce9814c6329dbee1d02b1321
+AAD = 85853f120981f33cf1d50fde6b8bc865fe988a9f12579acdb336f9f992b08b89
+Tag = 2563309efc19368cdee8266538ca89d3
+Plaintext = 6d972a673fbe1ca1
+Ciphertext = 2f12a7e7acecae5d
+
+Cipher = aes-128-ccm
+Key = 19f97ef5318b8005fc7133fa31dd1236
+IV = 01ce9814c6329dbee1d02b1321
+AAD = a4ec5aee89e2cce2115b6c1f42570bc5062887cad08192a682d0b4508fcd936a
+Tag = 28096a5fec5e5359c369833eac3b7efb
+Plaintext = 68b1b6367a15fe49
+Ciphertext = 2a343bb6e9474cb5
+
+Cipher = aes-128-ccm
+Key = 19f97ef5318b8005fc7133fa31dd1236
+IV = 01ce9814c6329dbee1d02b1321
+AAD = f5499a7082bf1e6e2923211271f5f7f6d7c7b26db7963071705a58ddc4dca0dd
+Tag = 754a65863efb60c98dbb536e2b5a69d8
+Plaintext = 707023615563a40e
+Ciphertext = 32f5aee1c63116f2
+
+Cipher = aes-128-ccm
+Key = 19f97ef5318b8005fc7133fa31dd1236
+IV = 01ce9814c6329dbee1d02b1321
+AAD = 765f267befe6fcfaaa4b46eda32e7bfab87f12ceb07fa3b37be74965bb664a21
+Tag = 0b6e9b7f3b3541ffee66a1f668f67d28
+Plaintext = b56454bc50df3e28
+Ciphertext = f7e1d93cc38d8cd4
+
+Cipher = aes-128-ccm
+Key = 19f97ef5318b8005fc7133fa31dd1236
+IV = 01ce9814c6329dbee1d02b1321
+AAD = 9ce65598cd1f86afc9aaaf172809570cc306333c25523f863c6d0e0154c55e40
+Tag = 7018c9db8baf6be349d93d4eef7d7c9d
+Plaintext = 962f765da3565bde
+Ciphertext = d4aafbdd3004e922
+
+Cipher = aes-128-ccm
+Key = 19f97ef5318b8005fc7133fa31dd1236
+IV = 01ce9814c6329dbee1d02b1321
+AAD = d0125e30c36232a8c07cee9abc53453b276849a7c04ade80ad586ed8cbcede51
+Tag = 501b28887f05fd66f050525943d101f8
+Plaintext = 4f18bcc8ee0bbb80
+Ciphertext = 0d9d31487d59097c
+
+Cipher = aes-128-ccm
+Key = 19f97ef5318b8005fc7133fa31dd1236
+IV = 01ce9814c6329dbee1d02b1321
+AAD = 90dfd9e7bb7bf8fb70c22a879ffa760d14cda7b79ce4968f69b8a7f2b7a59642
+Tag = da53dde2e1aef96b3658a7635ee54188
+Plaintext = ca293c9e1780b401
+Ciphertext = 88acb11e84d206fd
+
+Cipher = aes-128-ccm
+Key = 19f97ef5318b8005fc7133fa31dd1236
+IV = 01ce9814c6329dbee1d02b1321
+AAD = 58f518710e6b282482a7f1950fa353b13bdda10c9aaea6d5f0d7ea0a965d31e8
+Tag = b62a5ec234f1efd1b52c8fad1cf09890
+Plaintext = b9df9fb4a6b299b4
+Ciphertext = fb5a123435e02b48
+
+Cipher = aes-128-ccm
+Key = 19f97ef5318b8005fc7133fa31dd1236
+IV = 01ce9814c6329dbee1d02b1321
+AAD = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb07545e6802de7e807
+Tag = bc051ede6f37cf67543a7252d7d9b203
+Plaintext = fb2441d1594a488a
+Ciphertext = b9a1cc51ca18fa76
+
+Cipher = aes-128-ccm
+Key = 19f97ef5318b8005fc7133fa31dd1236
+IV = 01ce9814c6329dbee1d02b1321
+AAD = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c
+Tag = 5be4be6bc6b18104fac167b6e3fc15f7
+Plaintext = 451101250ec6f266
+Ciphertext = 07948ca59d94409a
+
+Cipher = aes-128-ccm
+Key = c17944bfaeeb808eed66ae7242ab545f
+IV = 910b3db64df3728ca98219e01b
+AAD = edf64f98b3ab593cbcf68ab37a8c9472e49cb849d4a744deae925a5a43faf262
+Tag = f8ee4a233dfb7753f6bfe321b3e26959
+Plaintext = 7caae2640e734539d3
+Ciphertext = 0dae8b3ccf0b439f6f
+
+Cipher = aes-128-ccm
+Key = c17944bfaeeb808eed66ae7242ab545f
+IV = 910b3db64df3728ca98219e01b
+AAD = 29ac8fd6a20a5df4ec79660c44d373da42de7d7c5fc35982b6c29b480723b484
+Tag = 63b1477d9506a51ae23abbac179d8b02
+Plaintext = e574b3a37af3bf2251
+Ciphertext = 9470dafbbb8bb984ed
+
+Cipher = aes-128-ccm
+Key = c17944bfaeeb808eed66ae7242ab545f
+IV = 910b3db64df3728ca98219e01b
+AAD = 9ae5a04baa9d02c8854e609899c6240851cbc83f81f752bc04c71affa4eed385
+Tag = db0986198bce2e486581c041029a81d9
+Plaintext = 2e3cf0af8c96c7b227
+Ciphertext = 5f3899f74deec1149b
+
+Cipher = aes-128-ccm
+Key = c17944bfaeeb808eed66ae7242ab545f
+IV = 910b3db64df3728ca98219e01b
+AAD = cc8e789462879e348d20be4e1161d7b7fc6f8371d8f8cb2d25d13f0e07de47b0
+Tag = 0cbb2df2079a6eb964c3469f4f326122
+Plaintext = 16f22817c5b79f9fa6
+Ciphertext = 67f6414f04cf99391a
+
+Cipher = aes-128-ccm
+Key = c17944bfaeeb808eed66ae7242ab545f
+IV = 910b3db64df3728ca98219e01b
+AAD = c63061f2800228269015693336f78bb535ae8b88869e4ccf4ead2f3b0ea4e48a
+Tag = a40ca7622acf7266b7c24cf0c3202e4c
+Plaintext = 64fe8076d4e8538e18
+Ciphertext = 15fae92e15905528a4
+
+Cipher = aes-128-ccm
+Key = c17944bfaeeb808eed66ae7242ab545f
+IV = 910b3db64df3728ca98219e01b
+AAD = 71c14a7031033db15bfe23b75fed9daf8886dd11392a0b787660e7b1a581af11
+Tag = 7de20e98586cd5d684bf015a7abbe82c
+Plaintext = 4814aaac48bdf43c92
+Ciphertext = 3910c3f489c5f29a2e
+
+Cipher = aes-128-ccm
+Key = c17944bfaeeb808eed66ae7242ab545f
+IV = 910b3db64df3728ca98219e01b
+AAD = 8f4947f8588ed866ed7477d7f1a28046430c6470806a50e3c9e80958c61f1b42
+Tag = 8d503f5d87818f7c0e173b857cef4288
+Plaintext = 392a692b57a8a97f60
+Ciphertext = 482e007396d0afd9dc
+
+Cipher = aes-128-ccm
+Key = c17944bfaeeb808eed66ae7242ab545f
+IV = 910b3db64df3728ca98219e01b
+AAD = 9d44f6df58c2b43db67e3daa95b176c81daff32e996d670e86405e15eae72e93
+Tag = c85e2283d9e80700268a6459d1451d00
+Plaintext = cba1e00e345b0cb7eb
+Ciphertext = baa58956f5230a1157
+
+Cipher = aes-128-ccm
+Key = c17944bfaeeb808eed66ae7242ab545f
+IV = 910b3db64df3728ca98219e01b
+AAD = b6ada12f7a28211e9d2c07cbb3d39fa77aadc077b34c46f93006c1ca2ff66f87
+Tag = 1056aea3d3e4f7a5219170aaa52465e1
+Plaintext = 22f5b6752582919dc1
+Ciphertext = 53f1df2de4fa973b7d
+
+Cipher = aes-128-ccm
+Key = c17944bfaeeb808eed66ae7242ab545f
+IV = 910b3db64df3728ca98219e01b
+AAD = d6411fd5b25433f67ca75e4560ceb809d3721266beec358dde126b2f6a514137
+Tag = fbfcf8200a8a3f8d995f50284a7280c8
+Plaintext = 6e1b55d6f5288c5451
+Ciphertext = 1f1f3c8e34508af2ed
+
+Cipher = aes-128-ccm
+Key = 0fb9df6f638847f5de371f003dd938f4
+IV = c9ddf61c052f3502ad6b229819
+AAD = 4f9938d5bc3dcbe47f6b256d5e99723d0891e50c6175aba41b011e4686113c49
+Tag = 4cf0d8c24189affd35060cb7ca3dd136
+Plaintext = e10cc36bc1c5d3c646ab
+Ciphertext = 7f797367de50be6dc04e
+
+Cipher = aes-128-ccm
+Key = 0fb9df6f638847f5de371f003dd938f4
+IV = c9ddf61c052f3502ad6b229819
+AAD = e013a2edd5b86bab8df5c9940d0a0c864478c1ad42668304a643141855adac10
+Tag = 4148ef85caab151488c1a6b3df540d21
+Plaintext = 15841284c959febe63f9
+Ciphertext = 8bf1a288d6cc9315e51c
+
+Cipher = aes-128-ccm
+Key = 0fb9df6f638847f5de371f003dd938f4
+IV = c9ddf61c052f3502ad6b229819
+AAD = 147d77d509f642189594df17574a0ce62b52a838feb62310e11533995ba4c851
+Tag = daaa1e7c22b3efa8362abb3d31ee8884
+Plaintext = a8b4e5829069c335d1d8
+Ciphertext = 36c1558e8ffcae9e573d
+
+Cipher = aes-128-ccm
+Key = 0fb9df6f638847f5de371f003dd938f4
+IV = c9ddf61c052f3502ad6b229819
+AAD = 0bb09658e23fe8a08c01a6994ef36cb8dcc9a806297a09c67efe3558ca56bb5d
+Tag = 317b141383ad38dd78569d5f846f2520
+Plaintext = 1bb2da0f1ae7e044deb0
+Ciphertext = 85c76a0305728def5855
+
+Cipher = aes-128-ccm
+Key = 0fb9df6f638847f5de371f003dd938f4
+IV = c9ddf61c052f3502ad6b229819
+AAD = 34eb2e6149bad764837f6f25ddd96865e5b05d5cbf233c4f6cc2aa654dfea3b7
+Tag = 4e6432971aecf6bf7cf5244d21f7f173
+Plaintext = 63af538196add9b3fad2
+Ciphertext = fddae38d8938b4187c37
+
+Cipher = aes-128-ccm
+Key = 0fb9df6f638847f5de371f003dd938f4
+IV = c9ddf61c052f3502ad6b229819
+AAD = b69f26fda6d1cd92897e03758cae020c4e1beb019ce5ad987f872940780a9468
+Tag = e4d0ffc0f0add38a80c7ffe6b4701e54
+Plaintext = 6ef2df5a1688ae795537
+Ciphertext = f0876f56091dc3d2d3d2
+
+Cipher = aes-128-ccm
+Key = 0fb9df6f638847f5de371f003dd938f4
+IV = c9ddf61c052f3502ad6b229819
+AAD = a7375ba32251af0138bd9fd8fcd56a7c43ab2ca9a7fc0117d25f6d4ef9c2fcbc
+Tag = 47fdd0b2f29f39094ba5a7375e278349
+Plaintext = 3f46c83021069ac488a1
+Ciphertext = a133783c3e93f76f0e44
+
+Cipher = aes-128-ccm
+Key = 0fb9df6f638847f5de371f003dd938f4
+IV = c9ddf61c052f3502ad6b229819
+AAD = f9b91f7298b4e43843fc739a2f41c57c3f2cf36378fe4c34b574a43f9cedee7b
+Tag = 57500f913ee3f46801e1bba9d4db7ecf
+Plaintext = 86c10a6dfdd6a06ef638
+Ciphertext = 18b4ba61e243cdc570dd
+
+Cipher = aes-128-ccm
+Key = 0fb9df6f638847f5de371f003dd938f4
+IV = c9ddf61c052f3502ad6b229819
+AAD = 9d35876d9449a1642b5062dfbfc7a26a7ac080b7198f4aeff2c79e463565cfd2
+Tag = 56a6b87519b4807a2114ced587f72189
+Plaintext = 196c80d02b663bdd89fd
+Ciphertext = 871930dc34f356760f18
+
+Cipher = aes-128-ccm
+Key = 0fb9df6f638847f5de371f003dd938f4
+IV = c9ddf61c052f3502ad6b229819
+AAD = f2d5e927eb507f889efc6f21d783851f638f978c74960cc347f89f2703476114
+Tag = 2101012808adefe9b8166e04685bd537
+Plaintext = bd27ae3ade0781a33d5f
+Ciphertext = 23521e36c192ec08bbba
+
+Cipher = aes-128-ccm
+Key = 006ff7d3153caf906ec7929f5aef9276
+IV = 57db1541a185bd9cdc34d62025
+AAD = 7d9681cac38e778fba11f4464f69ed9ebfea31b7ffcaf2925b3381c65d975974
+Tag = a625c43233476bbb959acd9edebe2883
+Plaintext = 31be1b241cae79c54c2446
+Ciphertext = 9dd8a4244fbdb30b624578
+
+Cipher = aes-128-ccm
+Key = 006ff7d3153caf906ec7929f5aef9276
+IV = 57db1541a185bd9cdc34d62025
+AAD = 1b0012c468009bd2851653013782c7b71ef43c393afd4dc0aec4d6d0c3fa11c5
+Tag = d477ca066ec2befa854a1faef018ea8b
+Plaintext = 8802831e22092b30110cf7
+Ciphertext = 24643c1e711ae1fe3f6dc9
+
+Cipher = aes-128-ccm
+Key = 006ff7d3153caf906ec7929f5aef9276
+IV = 57db1541a185bd9cdc34d62025
+AAD = 48b216375c00ca7e9c4048834b37944d2543e24fa091fb3c7290e11c53a6b6a0
+Tag = eb6be9a78dfbd9e16181679b782969ad
+Plaintext = 3b3f782d637319d7fd161d
+Ciphertext = 9759c72d3060d319d37723
+
+Cipher = aes-128-ccm
+Key = 006ff7d3153caf906ec7929f5aef9276
+IV = 57db1541a185bd9cdc34d62025
+AAD = f3e06a45fcf1f6abeb00727bf2c9bcea00ce621d38f7b7eba17c27e51f04c793
+Tag = 3d9574d95b821a5170e9b61d8e6b2ff3
+Plaintext = e98f5e5a20d02c80372d6d
+Ciphertext = 45e9e15a73c3e64e194c53
+
+Cipher = aes-128-ccm
+Key = 006ff7d3153caf906ec7929f5aef9276
+IV = 57db1541a185bd9cdc34d62025
+AAD = b36e27729f9a139d8ec4f61215b7bf1149cbb4d93a5c14bebd7cfb7c6fe585cb
+Tag = aa193d257907be1330abaa56bc4f431a
+Plaintext = ceeed4fde3406ec40f7ac6
+Ciphertext = 62886bfdb053a40a211bf8
+
+Cipher = aes-128-ccm
+Key = 006ff7d3153caf906ec7929f5aef9276
+IV = 57db1541a185bd9cdc34d62025
+AAD = 8886ed7fa414d74aef704a9751b197cbab02c41c6aedcaf65cda019dc2d2d815
+Tag = 1d92029a6428748664b5c815f15ca1b7
+Plaintext = b38f03449883773135c0cd
+Ciphertext = 1fe9bc44cb90bdff1ba1f3
+
+Cipher = aes-128-ccm
+Key = 006ff7d3153caf906ec7929f5aef9276
+IV = 57db1541a185bd9cdc34d62025
+AAD = 816d81af167d2294497d9b06a39fdf75e37cbacf4d10c3a444068c891b361bba
+Tag = 386e4ad7c72ce0081a85d4cfd34254c7
+Plaintext = 8efb141db7b77c521003cf
+Ciphertext = 229dab1de4a4b69c3e62f1
+
+Cipher = aes-128-ccm
+Key = 006ff7d3153caf906ec7929f5aef9276
+IV = 57db1541a185bd9cdc34d62025
+AAD = f427c47e10c45bb3c7e75e9e604503b3560427691470358efdef48ddaf3794d2
+Tag = 98eeb05bc376a1042735569d5b63f8fa
+Plaintext = 6dc38e37d1379732df4dd5
+Ciphertext = c1a5313782245dfcf12ceb
+
+Cipher = aes-128-ccm
+Key = 006ff7d3153caf906ec7929f5aef9276
+IV = 57db1541a185bd9cdc34d62025
+AAD = f3df712b5e8dd8e4aa8b7c5f41e93bd11b0df66a3456a01f3d0094ad91482cdb
+Tag = 065b03ebeb68a9153cb4ed152ce0d64c
+Plaintext = e0e358aff203369dd5960c
+Ciphertext = 4c85e7afa110fc53fbf732
+
+Cipher = aes-128-ccm
+Key = 006ff7d3153caf906ec7929f5aef9276
+IV = 57db1541a185bd9cdc34d62025
+AAD = 264f2c7b095a296eb8ff6b5151ab3d9497ea8dc0002a9e5b09c2fd0ccd32b6ff
+Tag = fcd16c8360a408e2787f930ed275bf3f
+Plaintext = 57b940550a383b40f3c308
+Ciphertext = fbdfff55592bf18edda236
+
+Cipher = aes-128-ccm
+Key = 026331e98aba9e8c23a9e8a91d0b0c97
+IV = bccfe69bba168b81cbdf7d018a
+AAD = 26e011143a686a7224ddb8c5b1e5d31713fa22c386785e2c34f498ae56d07ed5
+Tag = cb56a9c1a1c3bb16fbb9fbaedacdb12b
+Plaintext = a82200ef3a08c390dec5cbf9
+Ciphertext = adf4fc6f9be113066c09248f
+
+Cipher = aes-128-ccm
+Key = 026331e98aba9e8c23a9e8a91d0b0c97
+IV = bccfe69bba168b81cbdf7d018a
+AAD = 97a720ae4720546e31263a1a538ce1d35c198c23bd4362e0023a67536328ab9a
+Tag = 002120b619a391fbd23402e5edd4949e
+Plaintext = 7fc58d1bb450b396b9161f53
+Ciphertext = 7a13719b15b963000bdaf025
+
+Cipher = aes-128-ccm
+Key = 026331e98aba9e8c23a9e8a91d0b0c97
+IV = bccfe69bba168b81cbdf7d018a
+AAD = aff6c8cefda055c67262e9c68825d1ad2a7488e5b09640a111fabf6254d96cc0
+Tag = 48b6e9a8de0099a28cebbf5c2bad42ff
+Plaintext = e9ea182d7f895f312b9738db
+Ciphertext = ec3ce4adde608fa7995bd7ad
+
+Cipher = aes-128-ccm
+Key = 026331e98aba9e8c23a9e8a91d0b0c97
+IV = bccfe69bba168b81cbdf7d018a
+AAD = 35a3963b43f47855ef3df12af5de3626e0c5c8d9cd2a534c737cd695609b05a9
+Tag = df80fd62e751757bb0a32a987980afe6
+Plaintext = cfbc8bcbb5e5bb744bb1f340
+Ciphertext = ca6a774b140c6be2f97d1c36
+
+Cipher = aes-128-ccm
+Key = 026331e98aba9e8c23a9e8a91d0b0c97
+IV = bccfe69bba168b81cbdf7d018a
+AAD = 46a2e6bd3fd5336abf02eace3cd1e1f6dde505ab976a9fa596edd6fbde7175de
+Tag = 3b211350c70adf9bab5c01081bdc6a99
+Plaintext = a334f8f41897cbcaeb5cffdf
+Ciphertext = a6e20474b97e1b5c599010a9
+
+Cipher = aes-128-ccm
+Key = 026331e98aba9e8c23a9e8a91d0b0c97
+IV = bccfe69bba168b81cbdf7d018a
+AAD = d110651c00ac5540f9d1ed9eb175e06b97163fc36d43f048565e5d0c30a069b1
+Tag = d7f65690d9a2fb6759d658c9bdfdfc37
+Plaintext = 3f781267290e8e73c6355e75
+Ciphertext = 3aaeeee788e75ee574f9b103
+
+Cipher = aes-128-ccm
+Key = 026331e98aba9e8c23a9e8a91d0b0c97
+IV = bccfe69bba168b81cbdf7d018a
+AAD = 978644dc4e36f1d98a2a63e19bbf8af11785d09fce58a95c00cc6bf6cecf6161
+Tag = 0d5df472f49e7f713cd1373293810906
+Plaintext = 3dc39dbb91efe8b16396d488
+Ciphertext = 3815613b30063827d15a3bfe
+
+Cipher = aes-128-ccm
+Key = 026331e98aba9e8c23a9e8a91d0b0c97
+IV = bccfe69bba168b81cbdf7d018a
+AAD = 5ae7528c5e965880b1533cbd78c1e81a8187379327a2fc3f76ff45829049e183
+Tag = 4bfca9ef00b0f2bbb03c1a3f7a0862e7
+Plaintext = 6caa8c0764512baa39dabac0
+Ciphertext = 697c7087c5b8fb3c8b1655b6
+
+Cipher = aes-128-ccm
+Key = 026331e98aba9e8c23a9e8a91d0b0c97
+IV = bccfe69bba168b81cbdf7d018a
+AAD = afe754828be6e3731d3eee54b021b4fa182247bd958e9074fb0094a11030f5e8
+Tag = a03be1d1d262b03c0ab425d533fe4ec1
+Plaintext = b19bc92e2305883580dd7742
+Ciphertext = b44d35ae82ec58a332119834
+
+Cipher = aes-128-ccm
+Key = 026331e98aba9e8c23a9e8a91d0b0c97
+IV = bccfe69bba168b81cbdf7d018a
+AAD = 0650859c635654ca4d815963c0a99f9d2f47456ad37f739c425e924d4360bd7e
+Tag = da61ca8461925996880e2874393232d6
+Plaintext = dab87e79544df1cc98096b91
+Ciphertext = df6e82f9f5a4215a2ac584e7
+
+Cipher = aes-128-ccm
+Key = d32088d50df9aba14d9022c870a0cb85
+IV = e16c69861efc206e85aab1255e
+AAD = 0eff7d7bcceb873c3203a8df74f4e91b04bd607ec11202f96cfeb99f5bcdb7aa
+Tag = a6f73242f2f227350c0277e4e72cdaa6
+Plaintext = 4b10788c1a03bca656f04f1f98
+Ciphertext = 89f15b1cb665a8851da03b874c
+
+Cipher = aes-128-ccm
+Key = d32088d50df9aba14d9022c870a0cb85
+IV = e16c69861efc206e85aab1255e
+AAD = a533b3279db530eaed425842b0d3528f5c5e4c16acfa0f49de43d6491f0060a9
+Tag = 94271cc06f81d510075728cfeb89222c
+Plaintext = de6ea86d3641d916c4394fdd31
+Ciphertext = 1c8f8bfd9a27cd358f693b45e5
+
+Cipher = aes-128-ccm
+Key = d32088d50df9aba14d9022c870a0cb85
+IV = e16c69861efc206e85aab1255e
+AAD = 8e6c1cde142e18635c1b4f0cb54d3cf817f22ad7c25bf6a022501682f6a7da1c
+Tag = ab1aefed75400a41447b2bd8f0605542
+Plaintext = 6f3b32adc8c0314872947f3d31
+Ciphertext = adda113d64a6256b39c40ba5e5
+
+Cipher = aes-128-ccm
+Key = d32088d50df9aba14d9022c870a0cb85
+IV = e16c69861efc206e85aab1255e
+AAD = 248a4389da2d51b87907dc11c46253515503ba80de5d06c9b505cb89906614a6
+Tag = 46b3a6463876f1a43a287748f339e913
+Plaintext = 0cc992a8c736b44fedb4ad498f
+Ciphertext = ce28b1386b50a06ca6e4d9d15b
+
+Cipher = aes-128-ccm
+Key = d32088d50df9aba14d9022c870a0cb85
+IV = e16c69861efc206e85aab1255e
+AAD = 2e2c8244a2cbf53816b59e413207fb75f9c5ce1af06e67d182d3250ea3283bcb
+Tag = f625786bdc58af24b17c1ba34fa87baa
+Plaintext = 98104fd3f3413ad1f57ef4912c
+Ciphertext = 5af16c435f272ef2be2e8009f8
+
+Cipher = aes-128-ccm
+Key = d32088d50df9aba14d9022c870a0cb85
+IV = e16c69861efc206e85aab1255e
+AAD = 4ada86d88d5f49dfcde13fc30ba9a1af58d5254b47fb1885a20fad915c87952e
+Tag = d4a918290cf97208232c76908514b07a
+Plaintext = 3b4fec79d52d8b2a533917b75f
+Ciphertext = f9aecfe9794b9f091869632f8b
+
+Cipher = aes-128-ccm
+Key = d32088d50df9aba14d9022c870a0cb85
+IV = e16c69861efc206e85aab1255e
+AAD = 9e3b23232e5a9e69747f8bcb148cd6d282fd9b7ecd6d97e8bb5cdc261b2fc86f
+Tag = 01d6306bb91c315bb4a23fe23d496d09
+Plaintext = f10c19c76ae7ed55e1651155df
+Ciphertext = 33ed3a57c681f976aa3565cd0b
+
+Cipher = aes-128-ccm
+Key = d32088d50df9aba14d9022c870a0cb85
+IV = e16c69861efc206e85aab1255e
+AAD = ccea2c815ea4efadc3007f511d633e98f9fa38b0e0fb572b282ed6a610adf7a9
+Tag = 620d9d3004587c5d510e2a857fc857ea
+Plaintext = fa34af376868d9a49aa200f59a
+Ciphertext = 38d58ca7c40ecd87d1f2746d4e
+
+Cipher = aes-128-ccm
+Key = d32088d50df9aba14d9022c870a0cb85
+IV = e16c69861efc206e85aab1255e
+AAD = f7277fb296e2c0d2c9ceb7013ea8b59fe37e26b3b42a0b8cd01aaaa8d35283d4
+Tag = 82d2438a5138977bde5f514e2335c28c
+Plaintext = abe2fd996bb6804ed3286c057d
+Ciphertext = 6903de09c7d0946d9878189da9
+
+Cipher = aes-128-ccm
+Key = d32088d50df9aba14d9022c870a0cb85
+IV = e16c69861efc206e85aab1255e
+AAD = 14dd1810df3eeee78ed3836c77edf510d91ea28f119bf57111e580d70da94b74
+Tag = 78100a05448fa6e74bd3ed16c3bd364e
+Plaintext = 395ea6979b77dabd2042aee4ff
+Ciphertext = fbbf85073711ce9e6b12da7c2b
+
+Cipher = aes-128-ccm
+Key = 7301c907b9d2aaac355c5416ff25c59b
+IV = 7304b65b6dab466273862c88b9
+AAD = 2c5d114eff62c527cc2e03c33c595a80fe609bfc0fe13ce3380efe05d85cceac
+Tag = e8eeb5d5b493661259a9d91ea31a5f7e
+Plaintext = 484300aa3a506afcd313b49ead8d
+Ciphertext = 928ca58b0d373dc50c52afac787c
+
+Cipher = aes-128-ccm
+Key = 7301c907b9d2aaac355c5416ff25c59b
+IV = 7304b65b6dab466273862c88b9
+AAD = d9ebc1cbfab9034317132a72e0f11c341331146a59e7a2f26bf4f3d778da52c4
+Tag = 552193439abfedda67d765d030cef30b
+Plaintext = 8b318f75ed79a7978adc17c4d2d4
+Ciphertext = 51fe2a54da1ef0ae559d0cf60725
+
+Cipher = aes-128-ccm
+Key = 7301c907b9d2aaac355c5416ff25c59b
+IV = 7304b65b6dab466273862c88b9
+AAD = 9aea86b9fbd9bd4504ee2e25054942b33d3cdbd84215db7ea337e548cb706780
+Tag = 15013c2bc9338868fad0d2fac11df019
+Plaintext = 0256b0d154c768c85070da6ea8c7
+Ciphertext = d89915f063a03ff18f31c15c7d36
+
+Cipher = aes-128-ccm
+Key = 7301c907b9d2aaac355c5416ff25c59b
+IV = 7304b65b6dab466273862c88b9
+AAD = 08afe10bbfbd65b948a6561bbeaf3ab46a8e3d0a861f1cfc46584156197f30a3
+Tag = 6c3c4cb8c50891d6523245e4c619aa99
+Plaintext = 89ed296a3ac03fbfb71422b92117
+Ciphertext = 53228c4b0da768866855398bf4e6
+
+Cipher = aes-128-ccm
+Key = 7301c907b9d2aaac355c5416ff25c59b
+IV = 7304b65b6dab466273862c88b9
+AAD = 7d653792bb8683e07c7d2c800db6f7f08343c85af2377115df4fc86ff7d8fcaa
+Tag = 792d2cb93e45811a4c897ae9d907c9cf
+Plaintext = 414b6acb1db479028f5cc8800f2b
+Ciphertext = 9b84cfea2ad32e3b501dd3b2dada
+
+Cipher = aes-128-ccm
+Key = 7301c907b9d2aaac355c5416ff25c59b
+IV = 7304b65b6dab466273862c88b9
+AAD = 4d73c1484f9429eb15742f29ab05cbab6552abf40e127b93427d649d195ed25a
+Tag = 1983a87812eaa7b66c5a0e54a01cb882
+Plaintext = 163f67b3766c3c650ce26c5bd8b5
+Ciphertext = ccf0c292410b6b5cd3a377690d44
+
+Cipher = aes-128-ccm
+Key = 7301c907b9d2aaac355c5416ff25c59b
+IV = 7304b65b6dab466273862c88b9
+AAD = 2fba7a881f019a8745691343d79ef3656e25bb37b93fb5ab7311889f92010a5f
+Tag = b0afabd23b33765a63753cad66b0e6db
+Plaintext = 9c5b4aa703c27d16d82013853e16
+Ciphertext = 4694ef8634a52a2f076108b7ebe7
+
+Cipher = aes-128-ccm
+Key = 7301c907b9d2aaac355c5416ff25c59b
+IV = 7304b65b6dab466273862c88b9
+AAD = a640343fd4a866aec07b667d25176e11a32fb4d8bfc08fde2c46dc9b492fa010
+Tag = 39b8d0f97540373a7b9061aa3b2f7044
+Plaintext = 99eb86b3202c7ce68a2339065f47
+Ciphertext = 43242392174b2bdf556222348ab6
+
+Cipher = aes-128-ccm
+Key = 7301c907b9d2aaac355c5416ff25c59b
+IV = 7304b65b6dab466273862c88b9
+AAD = 9efd58d3ef5f74f663b2b5ca5e96c5a2fe85ca5eac1495d7f1751c7d8b412b3e
+Tag = 312c803e29f7be7c5eb236401037a320
+Plaintext = 3f5c1d038161e65c9ed955c961af
+Ciphertext = e593b822b606b16541984efbb45e
+
+Cipher = aes-128-ccm
+Key = 7301c907b9d2aaac355c5416ff25c59b
+IV = 7304b65b6dab466273862c88b9
+AAD = a7d7ba684c0903323f7efc83dc32815195df325394162fb5a18f201047be7999
+Tag = fd929c717d75388387dc25bfcf90b707
+Plaintext = be8dea2b4e602a787ecd28f2f7f0
+Ciphertext = 64424f0a79077d41a18c33c02201
+
+Cipher = aes-128-ccm
+Key = 38be46d271bf868c198052391f8a2147
+IV = 6758f67db9bfea5f0e0972e08b
+AAD = c6de3be97f11d0e2ab85c9353b783f25b37366a78a2012cecf5b7a87138b3c86
+Tag = 5e902f296dcce870263ae50cda4fadae
+Plaintext = 61bd1385be92097e866550a55278f0
+Ciphertext = 7c9fa8d99b38f825315ece6a2613f5
+
+Cipher = aes-128-ccm
+Key = 38be46d271bf868c198052391f8a2147
+IV = 6758f67db9bfea5f0e0972e08b
+AAD = 7c8cf9c650511f33af82e807e60336ec086bd2d9400a5f35652b8c3fcf968ead
+Tag = cae8a9e4b606f5fbeac2b829b42a150a
+Plaintext = 7e5e51301fa44a21f2734731ee3710
+Ciphertext = 637cea6c3a0ebb7a4548d9fe9a5c15
+
+Cipher = aes-128-ccm
+Key = 38be46d271bf868c198052391f8a2147
+IV = 6758f67db9bfea5f0e0972e08b
+AAD = 5f8b1400920891e8057639618183c9c847821c1aae79f2a90d75f114db21e975
+Tag = f5419c6085e5434f056162cf80f6729d
+Plaintext = 9cea3b061e5c402d48497ea4948d75
+Ciphertext = 81c8805a3bf6b176ff72e06be0e670
+
+Cipher = aes-128-ccm
+Key = 38be46d271bf868c198052391f8a2147
+IV = 6758f67db9bfea5f0e0972e08b
+AAD = 238d3c9d9de32f2040b1dd0dd040b921e456c3653263f4020cffdc552b948a46
+Tag = 7fedcc743389a9d48e6b871dc0dd63b2
+Plaintext = 20660408d6890aed84aa65dfe23032
+Ciphertext = 3d44bf54f323fbb63391fb10965b37
+
+Cipher = aes-128-ccm
+Key = 38be46d271bf868c198052391f8a2147
+IV = 6758f67db9bfea5f0e0972e08b
+AAD = 3b5d61ca21953fdd22280747dd4ae908a511750127875da84dfe7d0063a318c9
+Tag = 8137e0a856d3d911af9f420b68d8110d
+Plaintext = 9ab83c81f2d2c896c6596660c3974d
+Ciphertext = 879a87ddd77839cd7162f8afb7fc48
+
+Cipher = aes-128-ccm
+Key = 38be46d271bf868c198052391f8a2147
+IV = 6758f67db9bfea5f0e0972e08b
+AAD = 78c1751e86144a78285a30dc04f51742bd47e3d36b607bab48d91cddabfff4b7
+Tag = 5644448fa8445b6cd185bdf9b3718033
+Plaintext = c1ec469aa9c73b677af225a9f5f6f8
+Ciphertext = dccefdc68c6dca3ccdc9bb66819dfd
+
+Cipher = aes-128-ccm
+Key = 38be46d271bf868c198052391f8a2147
+IV = 6758f67db9bfea5f0e0972e08b
+AAD = add33e9a1d7e91e2c160c1123537e3f7e3535881cb4aac1a80ecbe367379212c
+Tag = bd38e4dc44f768cef0c51344e3a7f7b8
+Plaintext = 9df1d6b6debffdd316aeb27143508e
+Ciphertext = 80d36deafb150c88a1952cbe373b8b
+
+Cipher = aes-128-ccm
+Key = 38be46d271bf868c198052391f8a2147
+IV = 6758f67db9bfea5f0e0972e08b
+AAD = df7736560b1a13aa8e536500ea6cdb9a6757309aadf25a6a9189055a309c3f8b
+Tag = 2e7f2ec918099898b843a34c385f2a57
+Plaintext = 19eef017100dc82f26ed0815c55c12
+Ciphertext = 04cc4b4b35a7397491d696dab13717
+
+Cipher = aes-128-ccm
+Key = 38be46d271bf868c198052391f8a2147
+IV = 6758f67db9bfea5f0e0972e08b
+AAD = b40c8d22069b8a65cddb51c1ea3571160cacb19fd371552436b19c7122b28d08
+Tag = 94c2709685b0827cc42f3a25b579db28
+Plaintext = 2af5db43f2a5fe8b494b40661510bb
+Ciphertext = 37d7601fd70f0fd0fe70dea9617bbe
+
+Cipher = aes-128-ccm
+Key = 38be46d271bf868c198052391f8a2147
+IV = 6758f67db9bfea5f0e0972e08b
+AAD = 9de5559ea8ccc70f4375a436ce0b72551a75960ad5ed6a1949ee8f6c47548558
+Tag = 63bf4b40ce7e672587816fdcda16efbe
+Plaintext = 5de41a8ca8ed8011304fa9e9f36498
+Ciphertext = 40c6a1d08d47714a87743726870f9d
+
+Cipher = aes-128-ccm
+Key = 70010ed90e6186ecad41f0d3c7c42ff8
+IV = a5f4f4986e98472965f5abcc4b
+AAD = 3fec0e5cc24d67139437cbc8112414fc8daccd1a94b49a4c76e2d39303547317
+Tag = eef08e3fb15f4227e0d989a4d587a8cf
+Plaintext = be322f58efa7f8c68a635e0b9cce77f2
+Ciphertext = 8e4425ae573974f0f0693a188b525812
+
+Cipher = aes-128-ccm
+Key = 70010ed90e6186ecad41f0d3c7c42ff8
+IV = a5f4f4986e98472965f5abcc4b
+AAD = b6fecd1edeb55a9a4148b1aefb716a1e162779a5ab2a682e4adce4479c527bd2
+Tag = df7f186e8d3d7c21c549c41ebcc7f505
+Plaintext = 0e6118d0409751d36cb642504678535e
+Ciphertext = 3e171226f809dde516bc264351e47cbe
+
+Cipher = aes-128-ccm
+Key = 70010ed90e6186ecad41f0d3c7c42ff8
+IV = a5f4f4986e98472965f5abcc4b
+AAD = 5c3933c30bf9d4841eff4000aaa1cb4d39cdf8ef1240e2aabbf9da95bdee5270
+Tag = 810a68be1814f53c09aca4066527fef8
+Plaintext = 5c8a5fb36f860d00c21ae9e3f24097c4
+Ciphertext = 6cfc5545d7188136b8108df0e5dcb824
+
+Cipher = aes-128-ccm
+Key = 70010ed90e6186ecad41f0d3c7c42ff8
+IV = a5f4f4986e98472965f5abcc4b
+AAD = 7ca7ef30d3ac08aa51a9e5d3d84e8b6bb7fdde921e72b98ad6a93ebf2efc6b04
+Tag = cc30245a6e64625c4f6531d7497fb144
+Plaintext = ebd1cb4b35257790c9806be476bd25a3
+Ciphertext = dba7c1bd8dbbfba6b38a0ff761210a43
+
+Cipher = aes-128-ccm
+Key = 70010ed90e6186ecad41f0d3c7c42ff8
+IV = a5f4f4986e98472965f5abcc4b
+AAD = 90f1416768fca7dd48d01230dabf95f2f1a0c044bf2d755448aaf72316c8448c
+Tag = 10d85725dacc274034669acf7f34fed7
+Plaintext = 842b7e5f22d921b2b8ab3131684b7eff
+Ciphertext = b45d74a99a47ad84c2a155227fd7511f
+
+Cipher = aes-128-ccm
+Key = 70010ed90e6186ecad41f0d3c7c42ff8
+IV = a5f4f4986e98472965f5abcc4b
+AAD = adc5c36849283d57acb2bcbc0e12465cb7c1830cb4e314b9ce6e25acbd8d460c
+Tag = f731b465eb59c4989e42020d86102a59
+Plaintext = f0c2cc5a1b4c4cbe839338fa0d7a3435
+Ciphertext = c0b4c6aca3d2c088f9995ce91ae61bd5
+
+Cipher = aes-128-ccm
+Key = 70010ed90e6186ecad41f0d3c7c42ff8
+IV = a5f4f4986e98472965f5abcc4b
+AAD = 80a7a483d1dbcdf00ed02a700e93d8b87fa6ac5c7368d1e81bd1b32cd1621cd7
+Tag = 84bcd2775448447ed801b3b0ff071c19
+Plaintext = 2c1a5f906f2ae0373cc25e3519df2ba4
+Ciphertext = 1c6c5566d7b46c0146c83a260e430444
+
+Cipher = aes-128-ccm
+Key = 70010ed90e6186ecad41f0d3c7c42ff8
+IV = a5f4f4986e98472965f5abcc4b
+AAD = 13c02992992d2708250184a579c43bc29a3a8cf1e02dade4496cbd8b1214f97d
+Tag = 01d1919f1451ad16f115cde863f15303
+Plaintext = 1da5190517546f1ad852f64263e1f679
+Ciphertext = 2dd313f3afcae32ca2589251747dd999
+
+Cipher = aes-128-ccm
+Key = 70010ed90e6186ecad41f0d3c7c42ff8
+IV = a5f4f4986e98472965f5abcc4b
+AAD = f6f18dfe093e4c0c3fbfa8a5b1f4a703c08addc2ab959741611a594b93d08bf7
+Tag = ccae4f6ec07bf73d6f086cf09e2e14ed
+Plaintext = 13ccb08a580efea53dfba6a59626bbe2
+Ciphertext = 23baba7ce090729347f1c2b681ba9402
+
+Cipher = aes-128-ccm
+Key = 70010ed90e6186ecad41f0d3c7c42ff8
+IV = a5f4f4986e98472965f5abcc4b
+AAD = 63708e12dfa14f192ec5ee5856dc3cf2403817d9628c31899b4613f65e1e61c2
+Tag = 2bad8bf67d32a855c3940ac908397a5f
+Plaintext = e0b5fbc6c2269d445a60273bf844892b
+Ciphertext = d0c3f1307ab81172206a4328efd8a6cb
+
+Cipher = aes-128-ccm
+Key = 79eae5baddc5887bdf3031fd1d65085b
+IV = 9da59614535d1fad35f2ece00f
+AAD = 46603500af9e4e7a2f9545411a58b21a6efd21f2b5f315d02d964c09270145b3
+Tag = 70f0edb415993588b2535e2e0e4fd086
+Plaintext = 001343e6191f5f1738e7d19d4eec2b9592
+Ciphertext = 2162e27bfbf1d00f2404754a254665fd92
+
+Cipher = aes-128-ccm
+Key = 79eae5baddc5887bdf3031fd1d65085b
+IV = 9da59614535d1fad35f2ece00f
+AAD = 278afebc604bb7d87bed3574a2c5053de17eb8ca7e18ddc7892f2c54b38104a8
+Tag = 778e3c4a11f3f9dc42554d45796379ef
+Plaintext = ba47d5bfb36f6150a100e36caa116405c4
+Ciphertext = 9b3674225181ee48bde347bbc1bb2a6dc4
+
+Cipher = aes-128-ccm
+Key = 79eae5baddc5887bdf3031fd1d65085b
+IV = 9da59614535d1fad35f2ece00f
+AAD = 3239b2ce4efe4f6a6255dc53347400a6446ed3280c65422386fab471ef09eed6
+Tag = ab5540cc01d867f641c9b196fa159291
+Plaintext = 96eccb7f9b0e16c6883de0a381e4767f5a
+Ciphertext = b79d6ae279e099de94de4474ea4e38175a
+
+Cipher = aes-128-ccm
+Key = 79eae5baddc5887bdf3031fd1d65085b
+IV = 9da59614535d1fad35f2ece00f
+AAD = e2a5488d5f7930ea4ce399f2a6c0810265f7c0dc52fe824d19a0fa0d9ffd55e6
+Tag = 6366fbe302e142dcf6aa16337d98550f
+Plaintext = d68f5990da1a2fe39ed81af145ab834fa4
+Ciphertext = f7fef80d38f4a0fb823bbe262e01cd27a4
+
+Cipher = aes-128-ccm
+Key = 79eae5baddc5887bdf3031fd1d65085b
+IV = 9da59614535d1fad35f2ece00f
+AAD = 0071f1edb3a0ce57af3c88bb0ccf138f752697a77e55695838fb39de04c78dfb
+Tag = f88c07797267bf5a49b3d0f601a225ce
+Plaintext = cdd4d8b3d8f6e4742793b456cefc9e686d
+Ciphertext = eca5792e3a186b6c3b701081a556d0006d
+
+Cipher = aes-128-ccm
+Key = 79eae5baddc5887bdf3031fd1d65085b
+IV = 9da59614535d1fad35f2ece00f
+AAD = f5d6989587e463969d97aadabea9538511f8d109cc2d3cecf09ba7cc346aaea0
+Tag = 5c9fbf69d81cef238ac513562d4a0dd5
+Plaintext = e7d7fc60ae852b68102e01b506f9dab986
+Ciphertext = c6a65dfd4c6ba4700ccda5626d5394d186
+
+Cipher = aes-128-ccm
+Key = 79eae5baddc5887bdf3031fd1d65085b
+IV = 9da59614535d1fad35f2ece00f
+AAD = e0b5fbc6c2269d445a60273bf844892b26fed03b82869edacd6dd7a63fd69e8d
+Tag = e2c748c8c9e3190de095de8eb0650203
+Plaintext = be9f51abfbe2da5a56db0f9a31b67c9f83
+Ciphertext = 9feef036190c55424a38ab4d5a1c32f783
+
+Cipher = aes-128-ccm
+Key = 79eae5baddc5887bdf3031fd1d65085b
+IV = 9da59614535d1fad35f2ece00f
+AAD = e6bd0010c98e60b9af7cf905c58e0653bc425e2ccc809bd4f9cd7b1f95c18786
+Tag = 05cf563c5b4ba4ebd5bf107f2ad3555b
+Plaintext = 81b9c73029cea1936ef8755c80ba8d4093
+Ciphertext = a0c866adcb202e8b721bd18beb10c32893
+
+Cipher = aes-128-ccm
+Key = 79eae5baddc5887bdf3031fd1d65085b
+IV = 9da59614535d1fad35f2ece00f
+AAD = b1688cbc058816974694cd26c0f28ba9418e9912867fc8c5f4e7bd9c891a8d2e
+Tag = 60dbbd8f46343c8442b03a472da4e23f
+Plaintext = 618dc26853ee339689467ffbc2a77be69e
+Ciphertext = 40fc63f5b100bc8e95a5db2ca90d358e9e
+
+Cipher = aes-128-ccm
+Key = 79eae5baddc5887bdf3031fd1d65085b
+IV = 9da59614535d1fad35f2ece00f
+AAD = 469e004fee9878ed40621b41d04ec34af175f213d64d16e2f77d0bb2b6efe2e3
+Tag = 43352e46995e8c1aee43dbdb26b46c30
+Plaintext = 4f18bcc8ee0bbb80de30a9e08629323116
+Ciphertext = 6e691d550ce53498c2d30d37ed837c5916
+
+Cipher = aes-128-ccm
+Key = c14eda0f958465246fe6ab541e5dfd75
+IV = 32b63ca7e269223f80a56baaaa
+AAD = 733f8e7670de3446016916510dfe722ce671570121d91331a64feb3d03f210e6
+Tag = b4cc36852fd64a423fb8e872252b248e
+Plaintext = 617868ae91f705c6b583b5fd7e1e4086a1bb
+Ciphertext = b2dc1e548b3d3f225a34082f4391980a0788
+
+Cipher = aes-128-ccm
+Key = c14eda0f958465246fe6ab541e5dfd75
+IV = 32b63ca7e269223f80a56baaaa
+AAD = b6ec659856866959ef6fd4e71ba930f0e3e5fd49d7465fd65f6813ab4ca1a770
+Tag = 95a66eb5b902bb23a1a8584249409fda
+Plaintext = b8b342c49c28bffc2a1c457db0b537ad46bb
+Ciphertext = 6b17343e86e28518c5abf8af8d3aef21e088
+
+Cipher = aes-128-ccm
+Key = c14eda0f958465246fe6ab541e5dfd75
+IV = 32b63ca7e269223f80a56baaaa
+AAD = 89eb3636fff80230352a3582be5698e3401c9e0579d48f2680c6e5e24d99f74b
+Tag = 7fa792fb7246218f7d56d5fa4a5476bd
+Plaintext = 37d694ba94d0af8df662134f20d142903839
+Ciphertext = e472e2408e1a956919d5ae9d1d5e9a1c9e0a
+
+Cipher = aes-128-ccm
+Key = c14eda0f958465246fe6ab541e5dfd75
+IV = 32b63ca7e269223f80a56baaaa
+AAD = 03434f3709e19a1e37edfcaabc215116763b71ab1c5e053dbdb599f86959f25d
+Tag = a83dc3f0012ae6da32a15fd1684835ef
+Plaintext = 90e4c0550cb7b279ef61f9140b7d94b8003d
+Ciphertext = 4340b6af167d889d00d644c636f24c34a60e
+
+Cipher = aes-128-ccm
+Key = c14eda0f958465246fe6ab541e5dfd75
+IV = 32b63ca7e269223f80a56baaaa
+AAD = 0e2ddb65fcc72094ac388d53a1055c7e902285c4c3c33c13bb6fbb4f1956414a
+Tag = f09d38d3dba01995e36bd685c8ea3371
+Plaintext = 69b851e63a78baef90637978e3dfe8c47be4
+Ciphertext = ba1c271c20b2800b7fd4c4aade503048ddd7
+
+Cipher = aes-128-ccm
+Key = c14eda0f958465246fe6ab541e5dfd75
+IV = 32b63ca7e269223f80a56baaaa
+AAD = a42b2538ee2fb5f6a85d4d00524b01ad3331f61c404069243f35f28e2c2d0a82
+Tag = c89becf8d2bb935cb17f44b950df3ef5
+Plaintext = b7dbf8382115199dd2a2d87938c6ae6c4241
+Ciphertext = 647f8ec23bdf23793d1565ab054976e0e472
+
+Cipher = aes-128-ccm
+Key = c14eda0f958465246fe6ab541e5dfd75
+IV = 32b63ca7e269223f80a56baaaa
+AAD = 09bc5c426dc1faa4d71f50908bd6f297ec8e754d4d20def005585b4bc1fa31da
+Tag = 96e28badf0202097e80561451796194d
+Plaintext = d53698d719c51bf9eae346269c6a1da07162
+Ciphertext = 0692ee2d030f211d0554fbf4a1e5c52cd751
+
+Cipher = aes-128-ccm
+Key = c14eda0f958465246fe6ab541e5dfd75
+IV = 32b63ca7e269223f80a56baaaa
+AAD = 2ac87e59c2c86532cf165af3e8ff4871d730f5e742cccca38bbcdffff4472c93
+Tag = 710d4d7f66660891ac655d6eca4a3f3e
+Plaintext = cfdb7363985aa01af6f8e8237dbfb7871eb3
+Ciphertext = 1c7f059982909afe194f55f140306f0bb880
+
+Cipher = aes-128-ccm
+Key = c14eda0f958465246fe6ab541e5dfd75
+IV = 32b63ca7e269223f80a56baaaa
+AAD = 05d2fbc3d0ec81f52f31cb0c4bf960c2076867f6d9f0174ed9176e20177b2693
+Tag = f90ab18925fea6964490f364a975a473
+Plaintext = 56fdf10dc0c1dfd10965b83938e557459c61
+Ciphertext = 855987f7da0be535e6d205eb056a8fc93a52
+
+Cipher = aes-128-ccm
+Key = c14eda0f958465246fe6ab541e5dfd75
+IV = 32b63ca7e269223f80a56baaaa
+AAD = c2c3902cfe8622254b3787cc13e79c5a3c388c2357c29f1c1ab5539a10bfae5c
+Tag = 68a00e5e7a39b371024927d3ac98fe43
+Plaintext = e7c9812eda2ed7dcfc80fc5fe0d43e1e5982
+Ciphertext = 346df7d4c0e4ed381337418ddd5be692ffb1
+
+Cipher = aes-128-ccm
+Key = c5e7147f56ba4530b8799ababeb82772
+IV = bdd38e173fb20b981659c597d6
+AAD = 3a069a2bfda44abbb0a82a97e5e9047258c803da2c66190d77149e0f010b3af9
+Tag = a6d7568c738e3a7fdf142d8f2d1562c0
+Plaintext = 2f3bf0b566440912a1e47a0c07f1cfd39cb440
+Ciphertext = bd6265dcba9e14c59e515e395dc60bd053345f
+
+Cipher = aes-128-ccm
+Key = c5e7147f56ba4530b8799ababeb82772
+IV = bdd38e173fb20b981659c597d6
+AAD = 7709132415c94960025cc39c950ead208703a9d5a71e224fd022dc0a1817d0f4
+Tag = f22337efa5cb7db7240e7518b67ffbb1
+Plaintext = 7c880d787726c4ddeb2304b5d161b4a257298e
+Ciphertext = eed19811abfcd90ad49620808b5670a198a991
+
+Cipher = aes-128-ccm
+Key = c5e7147f56ba4530b8799ababeb82772
+IV = bdd38e173fb20b981659c597d6
+AAD = aad77595f87a27f2c7995fc7149317f4cbebcece8336db2068380070784a4283
+Tag = 40bac6094528f02eeda093312fcf716f
+Plaintext = 08c43bbfa706512aa39e2bfa5c365aca11e22e
+Ciphertext = 9a9daed67bdc4cfd9c2b0fcf06019ec9de6231
+
+Cipher = aes-128-ccm
+Key = c5e7147f56ba4530b8799ababeb82772
+IV = bdd38e173fb20b981659c597d6
+AAD = bdb1b82ba864893c2ee8f7426c7b9a8460b00a50f164fc8f2ff2ae9cddab8657
+Tag = 0c041d86dd483c1d6da366e91bd826dd
+Plaintext = a531c0ed8840b2fcf08d76eca71036153b6e11
+Ciphertext = 37685584549aaf2bcf3852d9fd27f216f4ee0e
+
+Cipher = aes-128-ccm
+Key = c5e7147f56ba4530b8799ababeb82772
+IV = bdd38e173fb20b981659c597d6
+AAD = 38b3b9f45041ceb743fc2655b409213fa081427e41c833a2321a09fbd566c80c
+Tag = fde45ca2a83dec2f930bb652a6fcdc5f
+Plaintext = 177946b4dc3b0b825a505f097a0a203eb21c00
+Ciphertext = 8520d3dd00e1165565e57b3c203de43d7d9c1f
+
+Cipher = aes-128-ccm
+Key = c5e7147f56ba4530b8799ababeb82772
+IV = bdd38e173fb20b981659c597d6
+AAD = ec9d8edff25645520801b6e8d14a2fc3b193db70d5e5e878742de83154a578da
+Tag = 8b89aa22cd7d0170a975565cd3a33dc1
+Plaintext = a2634ef20a2a418b2c3be64f0b5f79d7ea9b7b
+Ciphertext = 303adb9bd6f05c5c138ec27a5168bdd4251b64
+
+Cipher = aes-128-ccm
+Key = c5e7147f56ba4530b8799ababeb82772
+IV = bdd38e173fb20b981659c597d6
+AAD = 8f6c1de4efdc5ac2d6e5452b5b4f58416d618da672f521332fd297ede8350134
+Tag = d960b33c3df5cd38a82980dc0950ada4
+Plaintext = 40e52edaad5acf2d4eedfb3f9ac2908112e9b1
+Ciphertext = d2bcbbb37180d2fa7158df0ac0f55482dd69ae
+
+Cipher = aes-128-ccm
+Key = c5e7147f56ba4530b8799ababeb82772
+IV = bdd38e173fb20b981659c597d6
+AAD = b0f1dc85fe223bcf29cdfa9319866bacd0a0a79c554e24d1f10889279e31c0af
+Tag = 38fa273c4102b5ca050b23044ac2064f
+Plaintext = bf97780f498c23adcf1c49f60873780a235969
+Ciphertext = 2dceed6695563e7af0a96dc35244bc09ecd976
+
+Cipher = aes-128-ccm
+Key = c5e7147f56ba4530b8799ababeb82772
+IV = bdd38e173fb20b981659c597d6
+AAD = 7d02a323aa769a8201549bf48a520d940bf6f69ed6106f1ce68856c22a594216
+Tag = c15438af1bafac3eac61e1c24ed00ab7
+Plaintext = 58bfe1eb2d38d91f80b3467db94fdcb84ff5f3
+Ciphertext = cae67482f1e2c4c8bf066248e37818bb8075ec
+
+Cipher = aes-128-ccm
+Key = c5e7147f56ba4530b8799ababeb82772
+IV = bdd38e173fb20b981659c597d6
+AAD = d4b90ef8abad08c552c8c3b080b8c37df314d514049d45e27ec4527cb06cdf85
+Tag = 4422d9e2f4f84fde49e9701296294d5a
+Plaintext = a206a1eb70a9d24bb5e72f314e7d91de074f59
+Ciphertext = 305f3482ac73cf9c8a520b04144a55ddc8cf46
+
+Cipher = aes-128-ccm
+Key = 78c46e3249ca28e1ef0531d80fd37c12
+IV = 5de41a86ce3f3fb1b685b3ca4d
+AAD = e98a77f2a941b36232589486b05f4278275588665a06d98aec98915cc5607e06
+Tag = 9d5ca3d8ec5065630d2de0717cdeb7d5
+Plaintext = 4802422c9b3b4459ba26e7863ad87b0c172cfe4b
+Ciphertext = daea2234ea433533bf0716abe1aa3844b6d3c51e
+
+Cipher = aes-128-ccm
+Key = 78c46e3249ca28e1ef0531d80fd37c12
+IV = 5de41a86ce3f3fb1b685b3ca4d
+AAD = 5970a836de1f1e91d94d7eef79742cbbd46a759c413715eb0224fd6a27145333
+Tag = 0ff0648ddb07f42f815b38bfc95688b1
+Plaintext = 796a69ad0e9379173ef6b66f44f5c84fa70a0e28
+Ciphertext = eb8209b57feb087d3bd747429f878b0706f5357d
+
+Cipher = aes-128-ccm
+Key = 78c46e3249ca28e1ef0531d80fd37c12
+IV = 5de41a86ce3f3fb1b685b3ca4d
+AAD = e3f08834c4894f6fa66a55a280c0e677a79e97c1ef9488b21384e74e57b1b51f
+Tag = 3ddd9a6977ea8e7adf5c5234346e560f
+Plaintext = 98e1f8cf250183b13ad418024dc40c1a6a7ee8ac
+Ciphertext = 0a0998d75479f2db3ff5e92f96b64f52cb81d3f9
+
+Cipher = aes-128-ccm
+Key = 78c46e3249ca28e1ef0531d80fd37c12
+IV = 5de41a86ce3f3fb1b685b3ca4d
+AAD = 18349be2894d49290339b97f4db28c92b3e112ffac77100abbf9c093935b1a46
+Tag = bdee05328a7ea8cc6c2e42bf3faeeda0
+Plaintext = 4a856d9b50a5b40d6566b38eae6a53ed0c192805
+Ciphertext = d86d0d8321ddc567604742a3751810a5ade61350
+
+Cipher = aes-128-ccm
+Key = 78c46e3249ca28e1ef0531d80fd37c12
+IV = 5de41a86ce3f3fb1b685b3ca4d
+AAD = 7355e34ad13880de17a1d66b02672ea5c9f51774019f64ecbe36747ffcd9b671
+Tag = afb1435cf929db35ec5986aabaf4a7d1
+Plaintext = ad048eb2ad75266b43b59d9d1f073c44e4cbf25e
+Ciphertext = 3feceeaadc0d570146946cb0c4757f0c4534c90b
+
+Cipher = aes-128-ccm
+Key = 78c46e3249ca28e1ef0531d80fd37c12
+IV = 5de41a86ce3f3fb1b685b3ca4d
+AAD = 4be21ba2eb26234ddcbb6aac6b4c3be7ef644af64edf51b7c29ffc3ddd80036b
+Tag = 736be6563cf9f5bce97486b7cc6f1c18
+Plaintext = 5b527ac6cc6d1b4c3c56f8315bc96dae91632df9
+Ciphertext = c9ba1adebd156a263977091c80bb2ee6309c16ac
+
+Cipher = aes-128-ccm
+Key = 78c46e3249ca28e1ef0531d80fd37c12
+IV = 5de41a86ce3f3fb1b685b3ca4d
+AAD = 266e0e3365e06d3b1e864c6e5897145df7bdde90eb744013a7b36632d4cf6580
+Tag = 2e90335fcea56b969b4fce65442768dd
+Plaintext = cee059cb0fe91a39faccc2914340baeab4b644ce
+Ciphertext = 5c0839d37e916b53ffed33bc9832f9a215497f9b
+
+Cipher = aes-128-ccm
+Key = 78c46e3249ca28e1ef0531d80fd37c12
+IV = 5de41a86ce3f3fb1b685b3ca4d
+AAD = 55a723883a340877d85ad1a5f264f2c834d824c7bbf207cdd8500c9d11ef9225
+Tag = acd6afdb3578ebc75e8a408d32758931
+Plaintext = 85321fef6a2b7d31cbd079c4bf2bfbbc979df90b
+Ciphertext = 17da7ff71b530c5bcef188e96459b8f43662c25e
+
+Cipher = aes-128-ccm
+Key = 78c46e3249ca28e1ef0531d80fd37c12
+IV = 5de41a86ce3f3fb1b685b3ca4d
+AAD = 773864475a1a60a778468a66cbe13dfe3458094e62abb593f50c8495e3a8b81e
+Tag = a19fb73fc0488d9f29a09c1b47e3e066
+Plaintext = e227b8d44320bd3ce9d3f7d688f3de887947b1e9
+Ciphertext = 70cfd8cc3258cc56ecf206fb53819dc0d8b88abc
+
+Cipher = aes-128-ccm
+Key = 78c46e3249ca28e1ef0531d80fd37c12
+IV = 5de41a86ce3f3fb1b685b3ca4d
+AAD = f64f3b00c9117aed3c486aa4c8d574b44d679be4069e1078bb7100af38cdb190
+Tag = ce2c5ef8cdce76b358739e2a1b173fb3
+Plaintext = 206e9eb2bc3f8534d844a38debf1306df808744a
+Ciphertext = b286feaacd47f45edd6552a03083732559f74f1f
+
+Cipher = aes-128-ccm
+Key = 8883002bf13b3a94b2467225970df938
+IV = 818a702d5c8ee973b34e9acda1
+AAD = 545aeac737c0ca2a3d5e1fd966840c3a0d71e0301abbe99c7af18d24cc7e9633
+Tag = 2f2da4dd4d817c9fa2d44bc02163a0a9
+Plaintext = d516bbff452e7706c91c7ace3e9baa76d65ff7050f
+Ciphertext = b85242fdc06344f2bd9a97b408902ebcd22aece3d4
+
+Cipher = aes-128-ccm
+Key = 8883002bf13b3a94b2467225970df938
+IV = 818a702d5c8ee973b34e9acda1
+AAD = f032db01da60ca078d35c3fb5d05d6750fce1c01911a0422e827e8976946e4dc
+Tag = 180f41bccbcd47c8b7890754c032269b
+Plaintext = 590d1aa655fed50ca2e402299f2da6fe20eed56071
+Ciphertext = 3449e3a4d0b3e6f8d662ef53a9262234249bce86aa
+
+Cipher = aes-128-ccm
+Key = 8883002bf13b3a94b2467225970df938
+IV = 818a702d5c8ee973b34e9acda1
+AAD = 71ecb4252518997b53491cf42a3e0fe1496a2af2329a16f9fcd9c4f249900341
+Tag = 1d6ba58cc2eb474401851bf9502c3413
+Plaintext = ecd86cdb7d78d310dca5b477cd9da2612f5a05ab39
+Ciphertext = 819c95d9f835e0e4a823590dfb9626ab2b2f1e4de2
+
+Cipher = aes-128-ccm
+Key = 8883002bf13b3a94b2467225970df938
+IV = 818a702d5c8ee973b34e9acda1
+AAD = ec7abed9bda4a52fdf1bf278b6bdd6b0a27d4688deb9ff5ca9c8c865a4d2f730
+Tag = 9b94d4b7a2044696c72322e850537b6d
+Plaintext = 0024b14c283df032cf80c22ad8d2c96289ee229092
+Ciphertext = 6d60484ead70c3c6bb062f50eed94da88d9b397649
+
+Cipher = aes-128-ccm
+Key = 8883002bf13b3a94b2467225970df938
+IV = 818a702d5c8ee973b34e9acda1
+AAD = c2c77d7ad7b27d7c0f976a1e28881ea4ec7ad03b63a4e67f47280a40b8f58086
+Tag = 9d8da8e718570caf8bed7909fbff3ec6
+Plaintext = bc6965d8f62d066d118c14044c1fd2a224b9d95110
+Ciphertext = d12d9cda73603599650af97e7a14566820ccc2b7cb
+
+Cipher = aes-128-ccm
+Key = 8883002bf13b3a94b2467225970df938
+IV = 818a702d5c8ee973b34e9acda1
+AAD = 28929286bd1391468ac75f5c03689f74780ddd7585fc16f9a9bf7b00357a72e5
+Tag = e671012690c61fe3c9abd50a78eb4736
+Plaintext = da4a630cabaff0728a1cc3e6a79721a7176b708f1d
+Ciphertext = b70e9a0e2ee2c386fe9a2e9c919ca56d131e6b69c6
+
+Cipher = aes-128-ccm
+Key = 8883002bf13b3a94b2467225970df938
+IV = 818a702d5c8ee973b34e9acda1
+AAD = ed360d22081b019dc979420a3a45c21c8903c59daedd9f1b4ef2bfdedff0ec1d
+Tag = e657e2250427130acef7032454cde7b6
+Plaintext = a95058f8e1f6bc0f143a9ca7e4425a2a63eb2f7e33
+Ciphertext = c414a1fa64bb8ffb60bc71ddd249dee0679e3498e8
+
+Cipher = aes-128-ccm
+Key = 8883002bf13b3a94b2467225970df938
+IV = 818a702d5c8ee973b34e9acda1
+AAD = 2b4022d0b951fe48635d04fb3e2fa032c07c855fdd73f45670953bb9ddc77cb4
+Tag = aac6ff0a264b8199550d93c1f06063da
+Plaintext = fcbbc7f9d1ace60e830ca56ec84814fbd2579993d4
+Ciphertext = 91ff3efb54e1d5faf78a4814fe439031d62282750f
+
+Cipher = aes-128-ccm
+Key = 8883002bf13b3a94b2467225970df938
+IV = 818a702d5c8ee973b34e9acda1
+AAD = 48e553a87a7d3c1bd68af39f96aca67583da86e06701d5e4c4ed404dc66d70f3
+Tag = 7e68bf636e81c332f72063dc0d6fc2b6
+Plaintext = b95d298d391c6b893c6cad66f9780534516e71455e
+Ciphertext = d419d08fbc51587d48ea401ccf7381fe551b6aa385
+
+Cipher = aes-128-ccm
+Key = 8883002bf13b3a94b2467225970df938
+IV = 818a702d5c8ee973b34e9acda1
+AAD = e8e2835e47144365a2f218d4c95d7522e824fb43b66d4727ee570f8303dd6dd3
+Tag = df3af9e9c4e04bad261dc17cf00a00dd
+Plaintext = bc79d444dff9d9e722effab07b068cb7723ae8fae0
+Ciphertext = d13d2d465ab4ea13566917ca4d0d087d764ff31c3b
+
+Cipher = aes-128-ccm
+Key = 5cea00ee44cfb9cfbb598d3812e380ef
+IV = 948788a9c8188cb988430a7ebd
+AAD = 50422c5e6a0fb8231b3bb6e2f89607019be6ad92a4dae8e0fe3f9e486476004b
+Tag = d828101682de32923788c70262b84814
+Plaintext = 33bfd0713f30fcac8f7f95920ac6d9b803ddd5480dd8
+Ciphertext = b168747dea3ae0fbede4402af9a3dc3185d6d162f859
+
+Cipher = aes-128-ccm
+Key = 5cea00ee44cfb9cfbb598d3812e380ef
+IV = 948788a9c8188cb988430a7ebd
+AAD = bb0036b34b0c20094d335a8c74f6b3dea42eeccf4145192eada64ae00c726b2e
+Tag = bafc4ae4d31907def6f648b081174e2a
+Plaintext = 5576d94b577ed26820fb13c00ab0e2d1a1c3589bfdc4
+Ciphertext = d7a17d478274ce3f4260c678f9d5e75827c85cb10845
+
+Cipher = aes-128-ccm
+Key = 5cea00ee44cfb9cfbb598d3812e380ef
+IV = 948788a9c8188cb988430a7ebd
+AAD = 5140324aa758dbbb5391b5e6edb8a2310c94a4ae51d4fba8a7458d7cc8488baa
+Tag = 314e378e9ed6e725a14c07632b02bdbd
+Plaintext = 13303e14068205cbfa992d4ccb6a265804ea64a15d7f
+Ciphertext = 91e79a18d388199c9802f8f4380f23d182e1608ba8fe
+
+Cipher = aes-128-ccm
+Key = 5cea00ee44cfb9cfbb598d3812e380ef
+IV = 948788a9c8188cb988430a7ebd
+AAD = 74da07d324060e590356988f27d9879fa3a3ade0fe71e2a0e49054211cfa1fe1
+Tag = 5bc2f2f9331536f7f70be09c41bda0ad
+Plaintext = 567e6d14b446add630d53ea86a537c0938537c4604a8
+Ciphertext = d4a9c918614cb181524eeb1099367980be58786cf129
+
+Cipher = aes-128-ccm
+Key = 5cea00ee44cfb9cfbb598d3812e380ef
+IV = 948788a9c8188cb988430a7ebd
+AAD = 0e403cff47adee3ec5bb6b178dabfc7d53b60a04eaad33a2fedd9db705358a4c
+Tag = 6b59cc9c3c008bc5876ef86327859cbe
+Plaintext = 9f3d165d44cf1c5770346d211d4ff34ca2ecd6b28549
+Ciphertext = 1deab25191c5000012afb899ee2af6c524e7d29870c8
+
+Cipher = aes-128-ccm
+Key = 5cea00ee44cfb9cfbb598d3812e380ef
+IV = 948788a9c8188cb988430a7ebd
+AAD = 211e6ce3d0c3abdef069e6e4fa35015797bd8a9d64bc9b75f20b028b12cca04a
+Tag = 135e6d59a5385a78658d60d254f99962
+Plaintext = d726e599db6a6d40629bc4bda5e3fa2e5aeda229cea4
+Ciphertext = 55f141950e607117000011055686ffa7dce6a6033b25
+
+Cipher = aes-128-ccm
+Key = 5cea00ee44cfb9cfbb598d3812e380ef
+IV = 948788a9c8188cb988430a7ebd
+AAD = 3c5c67b083322115e1b3112c2b6968efc050094e23e646dce982eac9d6e67d10
+Tag = e234e83d9a0570dbf2b2fa59ce3cdbd9
+Plaintext = 42646cfb8a99e48a35cee3f5f9b3e6175695973f6de0
+Ciphertext = c0b3c8f75f93f8dd5755364d0ad6e39ed09e93159861
+
+Cipher = aes-128-ccm
+Key = 5cea00ee44cfb9cfbb598d3812e380ef
+IV = 948788a9c8188cb988430a7ebd
+AAD = 37a931f1dd05755b376d1a164aa36b8de802e39f8108a0453c1114754665fe46
+Tag = 2084e352b1b157267228576dd056c1a3
+Plaintext = e814c7b5c72d973a9bc7ccd463f107325ffa3321783b
+Ciphertext = 6ac363b912278b6df95c196c909402bbd9f1370b8dba
+
+Cipher = aes-128-ccm
+Key = 5cea00ee44cfb9cfbb598d3812e380ef
+IV = 948788a9c8188cb988430a7ebd
+AAD = f1ddc2c49da7363526ba36c600c589b4c3121fbb8c5b9a8aa0de0e7453b30568
+Tag = bf88ad35ee338e489e55bb49732447cf
+Plaintext = 4f7a5618870945b89f194e31b1aa802c5350326dc691
+Ciphertext = cdadf214520359effd829b8942cf85a5d55b36473310
+
+Cipher = aes-128-ccm
+Key = 5cea00ee44cfb9cfbb598d3812e380ef
+IV = 948788a9c8188cb988430a7ebd
+AAD = d14b3d3803df432488b5d66704abef6a500d397e855bc2c2574df746a515cf70
+Tag = 7ab67f9397a81371ef6ebc775cb7007b
+Plaintext = f555216840a1f40b411d44128e567617e2694caf1621
+Ciphertext = 7782856495abe85c238691aa7d33739e64624885e3a0
+
+Cipher = aes-128-ccm
+Key = cb83f77751e72711401cbbf4f61aa0ed
+IV = c0b461b2e15b8b116ef9281704
+AAD = 2bd112231f903fa0dff085db48a2e2a96ec0199249b005d5ab4c2eab753f9ad0
+Tag = af57647efda119c59862cd5dd3904efc
+Plaintext = eede01b08f9a303cdf14c99d7a45732972c6eff2a1db06
+Ciphertext = feb114b7bd3b43497b62454a675a632c3546d2802462c6
+
+Cipher = aes-128-ccm
+Key = cb83f77751e72711401cbbf4f61aa0ed
+IV = c0b461b2e15b8b116ef9281704
+AAD = 864e0e728aea856fae6c6daa6357d1542cef7177f441ba21a563f6c4f6fdc1dd
+Tag = 2af4027ca5824b41c7bb238d3e8eeebf
+Plaintext = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0c
+Ciphertext = 9a394d88d7405656df1a50e7e45fa8ddcca85e9ed5a3cc
+
+Cipher = aes-128-ccm
+Key = cb83f77751e72711401cbbf4f61aa0ed
+IV = c0b461b2e15b8b116ef9281704
+AAD = dac7f3cba0b5a47f67f85b226b66df695a8ae2501355e36aad105375bb95f732
+Tag = f7fbd7044ce1d7b266bdf545247a3c2b
+Plaintext = 66e34540d7accf377877aa2d3e6d2db0cfafc608a1eb3d
+Ciphertext = 768c5047e50dbc42dc0126fa23723db5882ffb7a2452fd
+
+Cipher = aes-128-ccm
+Key = cb83f77751e72711401cbbf4f61aa0ed
+IV = c0b461b2e15b8b116ef9281704
+AAD = 07f48cdc12aa27119fbdfda4ec07ce6068c92ba7ba9c930905aadd156b1dd56e
+Tag = afabc559b552cf7c7730c7dca25bc3ed
+Plaintext = a9ebd04fba7155c39b5c29c5571b5354c9ae228f5e5b13
+Ciphertext = b984c54888d026b63f2aa5124a0443518e2e1ffddbe2d3
+
+Cipher = aes-128-ccm
+Key = cb83f77751e72711401cbbf4f61aa0ed
+IV = c0b461b2e15b8b116ef9281704
+AAD = 2d24e79abd157af2c21b60932947fd9f9d6478f09ec56fffd341ea04a17b8e5f
+Tag = 488ca99e0f85ac388f981ce25560b8f9
+Plaintext = f179353aef342f0f691caf1fcb811e3f6504e14d6d9381
+Ciphertext = e116203ddd955c7acd6a23c8d69e0e3a2284dc3fe82a41
+
+Cipher = aes-128-ccm
+Key = cb83f77751e72711401cbbf4f61aa0ed
+IV = c0b461b2e15b8b116ef9281704
+AAD = fea280f710379e4665b5ed3d1620729a7bc164899dc83e6aee3612d538fa20db
+Tag = 9156faae3d8860bed216e8d497a75962
+Plaintext = 6c19a18eab544acc883c5886eaa89f54d61ae5f1f1368c
+Ciphertext = 7c76b48999f539b92c4ad451f7b78f51919ad883748f4c
+
+Cipher = aes-128-ccm
+Key = cb83f77751e72711401cbbf4f61aa0ed
+IV = c0b461b2e15b8b116ef9281704
+AAD = 18f2e3457127c35f2e0cff2d821af8178028fcc7803bc795c49f4a435b37abeb
+Tag = 88cd7791c544d1098b2de49d04b1e0c1
+Plaintext = d0df1bdf1df6203241722fb9c9c1cf7405017497ae1545
+Ciphertext = c0b00ed82f575347e504a36ed4dedf71428149e52bac85
+
+Cipher = aes-128-ccm
+Key = cb83f77751e72711401cbbf4f61aa0ed
+IV = c0b461b2e15b8b116ef9281704
+AAD = 35221f0efcb109cb93c38a62c58b5ab8b236437e171e8507cf417a569af1767c
+Tag = c523fd8a2524717f63dac75c22268fa6
+Plaintext = 479526b33c42c240b9a4549ca70cbfb691f16ae3be8888
+Ciphertext = 57fa33b40ee3b1351dd2d84bba13afb3d67157913b3148
+
+Cipher = aes-128-ccm
+Key = cb83f77751e72711401cbbf4f61aa0ed
+IV = c0b461b2e15b8b116ef9281704
+AAD = 95f2ab02af01aeacce86b02cf846f9fbd516963d06e350e8b7f6df2778765a01
+Tag = 92904f05dc2397596543df73de5aa708
+Plaintext = aa6761148b254a2ff202b620c2ec2c5e623bf61f05e483
+Ciphertext = ba087413b984395a56743af7dff33c5b25bbcb6d805d43
+
+Cipher = aes-128-ccm
+Key = cb83f77751e72711401cbbf4f61aa0ed
+IV = c0b461b2e15b8b116ef9281704
+AAD = 3746a36154e42dd600049d506f5ce4d034864263b1a65cecd24c8e25fb9c82e1
+Tag = c3cbfecfa3f75fb111ef0011222b7948
+Plaintext = 2f298f106703b8a994cbb20acf47f9442e44f6b5e82c38
+Ciphertext = 3f469a1755a2cbdc30bd3eddd258e94169c4cbc76d95f8
+
+Cipher = aes-128-ccm
+Key = 43c1142877d9f450e12d7b6db47a85ba
+IV = 76becd9d27ca8a026215f32712
+AAD = 6a59aacadd416e465264c15e1a1e9bfa084687492710f9bda832e2571e468224
+Tag = 2ec067887114bc370281de6f00836ce4
+Plaintext = b506a6ba900c1147c806775324b36eb376aa01d4c3eef6f5
+Ciphertext = 14b14fe5b317411392861638ec383ae40ba95fefe34255dc
+
+Cipher = aes-128-ccm
+Key = 43c1142877d9f450e12d7b6db47a85ba
+IV = 76becd9d27ca8a026215f32712
+AAD = e82fc3ffd276218a82aede65fe5abf4fd35c7059a26923f8dbb97a59c903a7f4
+Tag = 0d2d30268e9f1ce0e7c762993297d828
+Plaintext = eab8cef576816a82ed036f158e5036f5987b195e60582a6f
+Ciphertext = 4b0f27aa559a3ad6b7830e7e46db62a2e578476540f48946
+
+Cipher = aes-128-ccm
+Key = 43c1142877d9f450e12d7b6db47a85ba
+IV = 76becd9d27ca8a026215f32712
+AAD = 776aae7f62225556b6da522c0c9432ac70fe72ac6f3f361071ef3deb4a6715e8
+Tag = 0939e56f0b7200d1b1409f3f8e8179cc
+Plaintext = 566ef9ce1d397be2547c385639507a9e7d6f9eed9a3b1055
+Ciphertext = f7d910913e222bb60efc593df1db2ec9006cc0d6ba97b37c
+
+Cipher = aes-128-ccm
+Key = 43c1142877d9f450e12d7b6db47a85ba
+IV = 76becd9d27ca8a026215f32712
+AAD = d9aef0955922f89747ba4a8ddcdb8c1c7579aefd3c2eb8ad0589c66576a8504c
+Tag = 138e3b817023993608be06fe92efca8b
+Plaintext = 8c28b6d93b23f1ea031d5020aa92f6608c3d3df0ee24a895
+Ciphertext = 2d9f5f861838a1be599d314b6219a237f13e63cbce880bbc
+
+Cipher = aes-128-ccm
+Key = 43c1142877d9f450e12d7b6db47a85ba
+IV = 76becd9d27ca8a026215f32712
+AAD = 13c222a65ce30570ecac85a185a2a0922a8c96d633339a1ca067ce57ae426e1d
+Tag = f3ca13b4ab7fd0d4badf158972570c06
+Plaintext = f0c1cd60f5fa8d1efd5e2e1ab37c4f7e6aef76d15e8d6ac8
+Ciphertext = 5176243fd6e1dd4aa7de4f717bf71b2917ec28ea7e21c9e1
+
+Cipher = aes-128-ccm
+Key = 43c1142877d9f450e12d7b6db47a85ba
+IV = 76becd9d27ca8a026215f32712
+AAD = ce40fb0cbfdf07676ed55b040ae6be5db8f0a0f28816ae8ea71da3cbd71661d8
+Tag = 0a79fa4e8b27a31ff360a1b6c05ff844
+Plaintext = 570d5f79aa8db14b1ac99ee567cc105ae9e238e482b52628
+Ciphertext = f6bab6268996e11f4049ff8eaf47440d94e166dfa2198501
+
+Cipher = aes-128-ccm
+Key = 43c1142877d9f450e12d7b6db47a85ba
+IV = 76becd9d27ca8a026215f32712
+AAD = 446b01d09cbc41b6393ef81ca65ab7e099018187d5f9d22f5074dfc491e72077
+Tag = 5d34ef0ca0b47d6a2ec7442cbb739504
+Plaintext = 7c267223047af946b06f6a45ffde4a5ec49c28b81ca22da4
+Ciphertext = dd919b7c2761a912eaef0b2e37551e09b99f76833c0e8e8d
+
+Cipher = aes-128-ccm
+Key = 43c1142877d9f450e12d7b6db47a85ba
+IV = 76becd9d27ca8a026215f32712
+AAD = 01ec87920b42639d4ba22adb1fbe5138d2849db670a2960fd94a399c1532ed75
+Tag = 8f607d154393e35fd1efc1ae8cb244e4
+Plaintext = cbf112e4fb85276c4e09649f3de225b2398e86ac3fe48bc7
+Ciphertext = 6a46fbbbd89e7738148905f4f56971e5448dd8971f4828ee
+
+Cipher = aes-128-ccm
+Key = 43c1142877d9f450e12d7b6db47a85ba
+IV = 76becd9d27ca8a026215f32712
+AAD = 5032b818d202872f3fe2b08fc7940696df02cf393a6d6247f5c6f5f2125cb08b
+Tag = 617d9cebea38591a00c9fba4ef9c8e71
+Plaintext = 4324a89788e8ddae5d560cf937df701743cbbc3bf980558c
+Ciphertext = e29341c8abf38dfa07d66d92ff5424403ec8e200d92cf6a5
+
+
+Title = NIST CCM 192 Variable Plaintext Tests
+
+Cipher = aes-192-ccm
+Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3
+IV = 929542cd690f1babcf1696cb03
+AAD = 58f70bab24e0a6137e5cd3eb18656f2b5ccddc3f538a0000c65190e4a3668e71
+Tag = 3bf9d93af6ffac9ac84cd3202d4e0cc8
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3
+IV = 929542cd690f1babcf1696cb03
+AAD = 760d065275e345900a7bbab451cc9309fb161e6cfec526538b98800e4102e14d
+Tag = b0078a769ab68db44e723993da382abc
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3
+IV = 929542cd690f1babcf1696cb03
+AAD = ffedc67efd355ea404fcbcb3993d3bae81386ded86230270771deb747163bf44
+Tag = 31fbff2d715a2eb9af54e8320a8e42e1
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3
+IV = 929542cd690f1babcf1696cb03
+AAD = 55153ff5e4d208d2e647794f382c788e0e36f293e63e7290ba9ff2657ae0f167
+Tag = 945839d62c9d1b899f6dcd0ca9517e68
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3
+IV = 929542cd690f1babcf1696cb03
+AAD = f8813985f59bf284bd3882e899ca9b67fb496f3eb78d7ebe6ffbad084f639915
+Tag = 903f90d23321a6882d6c4c1955b14847
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3
+IV = 929542cd690f1babcf1696cb03
+AAD = 7b95cd827ab93507f1819ae76627d6e2a31d29890c092e5c300f0e2f9e4ef4d2
+Tag = 652ec5ab43088eb568186d0d9887b30f
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3
+IV = 929542cd690f1babcf1696cb03
+AAD = bd144c9bb974729aaa1188ceefdf85e1d9fddc0b0c8afe8828ba204aa9293feb
+Tag = e6c1455d1117eec49338c96f51007309
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3
+IV = 929542cd690f1babcf1696cb03
+AAD = 92b911cdc3137a6f7f32651b788eb82975660aea52b2c03b4759755a6da4a0f8
+Tag = 1cf3c32fb229dac209523eaa517bb59a
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3
+IV = 929542cd690f1babcf1696cb03
+AAD = a8200dbbfe4086015cdbdec2fc8e4934d0d663527430c424627ed44065ade091
+Tag = ee10bfeb1cf9b3cd5a0faebd4d8f3fe1
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3
+IV = 929542cd690f1babcf1696cb03
+AAD = 3b7f37b6b8e3c1390a99d59c47f7c102cf659d361a132ef8b4e70b9585bafebb
+Tag = c51ed994253adb9bb5b9a8c34a27f225
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-ccm
+Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553
+IV = b248a90b84b0122a5ad8e12760
+AAD = 27cabc40da0e1eda0ea5f8abbb7c179e30776250a7b30d711b0e106c5ee9d84a
+Tag = 96f58c3f38c44d1a345f3e2da6679f20
+Plaintext = 1c
+Ciphertext = 1a
+
+Cipher = aes-192-ccm
+Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553
+IV = b248a90b84b0122a5ad8e12760
+AAD = dc2e28d5ae726c1beadb1e7e92ae7d14f5546320deb81a910bf170cbe0210eaa
+Tag = 0579aee7c17482691f3f832d867ffea7
+Plaintext = e9
+Ciphertext = ef
+
+Cipher = aes-192-ccm
+Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553
+IV = b248a90b84b0122a5ad8e12760
+AAD = c579f912ac1b45d5aa8cf20f78f0a1ace32abd3dc7fd0b3f3a7182a008795c7f
+Tag = 3452d8ece38ffa1d4107d6a053acd8c8
+Plaintext = 97
+Ciphertext = 91
+
+Cipher = aes-192-ccm
+Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553
+IV = b248a90b84b0122a5ad8e12760
+AAD = 69ea953dbb910ec589372d797c7379d3f3b9e9fd48894c9b55e6e8eb360a6211
+Tag = 0d760b9fe29530738157db0ba2d253f0
+Plaintext = f4
+Ciphertext = f2
+
+Cipher = aes-192-ccm
+Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553
+IV = b248a90b84b0122a5ad8e12760
+AAD = 622835dea57b2c70cca8f7548d6210714070b55b36adde7a4c547269c07aba9c
+Tag = 6fc21f24dee7b52f51d69eea30819f4a
+Plaintext = 9f
+Ciphertext = 99
+
+Cipher = aes-192-ccm
+Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553
+IV = b248a90b84b0122a5ad8e12760
+AAD = 67ebda0a3573a9a58751d4169e10c7e8663febb3a8cf769d81bc872113f0720f
+Tag = 94c5b8db0064426a77dc536814c56147
+Plaintext = 43
+Ciphertext = 45
+
+Cipher = aes-192-ccm
+Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553
+IV = b248a90b84b0122a5ad8e12760
+AAD = 255412e380e9a28cbcd345be172c40f72dec3e8a10adfd8a9ab147e9022524e1
+Tag = 6d36c0b0d699a22da3116dfb8f453181
+Plaintext = c1
+Ciphertext = c7
+
+Cipher = aes-192-ccm
+Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553
+IV = b248a90b84b0122a5ad8e12760
+AAD = c7c8e7151eb6844a954d091b460f83add0f0a634aa5ac213b774f2451aa497fb
+Tag = 0c3a1690acc3f0eb09c9cfd3396c7fa9
+Plaintext = 31
+Ciphertext = 37
+
+Cipher = aes-192-ccm
+Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553
+IV = b248a90b84b0122a5ad8e12760
+AAD = 63f00b2488809fdc49ca5f05d54e98468906308115f7e702da05ddfd970b5537
+Tag = ad45070fe4c61270c13cc52247fee411
+Plaintext = a7
+Ciphertext = a1
+
+Cipher = aes-192-ccm
+Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553
+IV = b248a90b84b0122a5ad8e12760
+AAD = 8e2c5e55c0bf70014e9897b6f6940e4e738b1e84e8269b6382f0b1fe59b0e162
+Tag = b2a2a8b283ff7eeff5c2670f77b8809d
+Plaintext = 40
+Ciphertext = 46
+
+Cipher = aes-192-ccm
+Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30
+IV = b67e500b35d60ad7264240027c
+AAD = 40affd355416200191ba64edec8d7d27ead235a7b2e01a12662273deb36379b8
+Tag = ef3d6ef9f981557506ecc8797bbaaaa7
+Plaintext = 0c6c
+Ciphertext = c996
+
+Cipher = aes-192-ccm
+Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30
+IV = b67e500b35d60ad7264240027c
+AAD = c5e12e17e02bcc12b3a4c14cf837250e2886db3ee1c717d28bd11e8a3b764ddf
+Tag = 4405257a837c5343b59d5689d6de5269
+Plaintext = 23df
+Ciphertext = e625
+
+Cipher = aes-192-ccm
+Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30
+IV = b67e500b35d60ad7264240027c
+AAD = 213b5b6015d472bd593be5acf85ebba6d6a09f3a962be302ba83c6d70c61f241
+Tag = e93e67d37d2367bb1f27f71b54b29317
+Plaintext = 0dc2
+Ciphertext = c838
+
+Cipher = aes-192-ccm
+Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30
+IV = b67e500b35d60ad7264240027c
+AAD = fc1b6e152fe232b6c10b5d89900961c445f4c46833df242c826678b68c869811
+Tag = ca3744a4ab375af9060621a9dc4f4c32
+Plaintext = dc88
+Ciphertext = 1972
+
+Cipher = aes-192-ccm
+Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30
+IV = b67e500b35d60ad7264240027c
+AAD = 5b2eb1a6fa585d61d1fb3da68f5b93829c8e2d5e4fe03782617553d7a130ecf1
+Tag = 172626e930d24052bc056d8609c4175f
+Plaintext = 8179
+Ciphertext = 4483
+
+Cipher = aes-192-ccm
+Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30
+IV = b67e500b35d60ad7264240027c
+AAD = e2b3c3bf33cf847660929e48cce51d9d9289945169651aaecb1e939756e93105
+Tag = 852310207be8d3417de800b372700da2
+Plaintext = 01fd
+Ciphertext = c407
+
+Cipher = aes-192-ccm
+Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30
+IV = b67e500b35d60ad7264240027c
+AAD = 6051f12cd8aae68b4023aaf7178fd086aa582b8d8821e36637abc97025f5e858
+Tag = 28553bc037954dbf4ce5db99792c2c7a
+Plaintext = ca18
+Ciphertext = 0fe2
+
+Cipher = aes-192-ccm
+Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30
+IV = b67e500b35d60ad7264240027c
+AAD = 2d3555faf285caaddfe95c010c2a7f233e09c2fc0cd30d644035269280527ad7
+Tag = 904725668634d6345bd8f90a3831b452
+Plaintext = a855
+Ciphertext = 6daf
+
+Cipher = aes-192-ccm
+Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30
+IV = b67e500b35d60ad7264240027c
+AAD = 4fca820dc545bf93bdffed33a04b67eb45384e696f092c2197e5d79cecd09913
+Tag = df6098cb3135c3045a54ffce88efaceb
+Plaintext = 5555
+Ciphertext = 90af
+
+Cipher = aes-192-ccm
+Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30
+IV = b67e500b35d60ad7264240027c
+AAD = 1789ae403e183d2225f431f001d475b53bccdec66572bb027340ae592839ba8b
+Tag = 8568e8c08ff5ee5ea0a608589c2fc029
+Plaintext = 11dd
+Ciphertext = d427
+
+Cipher = aes-192-ccm
+Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992
+IV = e5257aed2bda0495aa44591db4
+AAD = 31a0338c3839931fa1dd5131cb796c4c6cfde9fb336d8a80ac35dec463be7a94
+Tag = 98d9a2147776dca9c1a42382bce323b2
+Plaintext = bcb898
+Ciphertext = 68f082
+
+Cipher = aes-192-ccm
+Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992
+IV = e5257aed2bda0495aa44591db4
+AAD = 4863dd810ee70ef0f5da81f60c5ce550abb96454619032322e34657af25207de
+Tag = a9a77755b324f3a557217752ade14ed7
+Plaintext = d1da2e
+Ciphertext = 059234
+
+Cipher = aes-192-ccm
+Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992
+IV = e5257aed2bda0495aa44591db4
+AAD = 173594fc26b167f044aeaf9bfe920cab99a27eb2b01827d61f7553cb2018b5fe
+Tag = a4441a79a90e228a28069fe109d5d876
+Plaintext = 394f31
+Ciphertext = ed072b
+
+Cipher = aes-192-ccm
+Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992
+IV = e5257aed2bda0495aa44591db4
+AAD = 71cdd16eca9255aeedc23bd623513918ea97da21485074415fe75bcc42f454c0
+Tag = 65f272f44c5210b5bcc571e819580910
+Plaintext = 868bda
+Ciphertext = 52c3c0
+
+Cipher = aes-192-ccm
+Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992
+IV = e5257aed2bda0495aa44591db4
+AAD = e84418d332d16d2298e69e7ff3c37bc7b6e030cc822e73b3f4a0029bc2ea4d80
+Tag = 59c5f7f73a1b5f419c9f63ca401894a8
+Plaintext = 52d6bf
+Ciphertext = 869ea5
+
+Cipher = aes-192-ccm
+Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992
+IV = e5257aed2bda0495aa44591db4
+AAD = 42d962109bea1d50be0f3d83b4c2a6033d53b3d7112591866b1ae52dc84cb5d0
+Tag = 220b828cf5365137fb3f1df67cc8d2a1
+Plaintext = 6f8d58
+Ciphertext = bbc542
+
+Cipher = aes-192-ccm
+Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992
+IV = e5257aed2bda0495aa44591db4
+AAD = 943b4327b5c70dba63c82f27e0412b3ada012bc0f7dd39ebb13db2f864daf80e
+Tag = 422b0f41075ac79a0afa2d1047cbbfb5
+Plaintext = fda286
+Ciphertext = 29ea9c
+
+Cipher = aes-192-ccm
+Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992
+IV = e5257aed2bda0495aa44591db4
+AAD = 6076b94caabfa476ab7e6482e4fda9b29f2e2b2883efe44d668c7c74628505bb
+Tag = ae68cd6d6815ecbfd01293d160d4d38a
+Plaintext = 8651fb
+Ciphertext = 5219e1
+
+Cipher = aes-192-ccm
+Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992
+IV = e5257aed2bda0495aa44591db4
+AAD = 3e4bb5781f84b4bbd23583e3dae561c6ff4af8eff35e2a4f35b50d2f360d3469
+Tag = fbaa81cfdbcaee476860cd5102f556e4
+Plaintext = c3e179
+Ciphertext = 17a963
+
+Cipher = aes-192-ccm
+Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992
+IV = e5257aed2bda0495aa44591db4
+AAD = 364008acbad330d0b8d574641a97b0682c49279cfdc80ff309b7514514d18a44
+Tag = 7ad1520564b68824a3a939371c21a336
+Plaintext = 4a97d5
+Ciphertext = 9edfcf
+
+Cipher = aes-192-ccm
+Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf
+IV = 2ef29d62b40d8643848797cde8
+AAD = 1225b036e6044df52314016760e92750de0936120395de750a2c54a7fa0cea82
+Tag = 9344e2de064f269d065a2a6108605916
+Plaintext = b46b343e
+Ciphertext = c2c39d6f
+
+Cipher = aes-192-ccm
+Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf
+IV = 2ef29d62b40d8643848797cde8
+AAD = aaa6257d6783936a4445833c2ac3bea8cb7334f22ade9c035d515bbc91d6a78a
+Tag = 693d90b8297b90bc41c231d08b0204fb
+Plaintext = cb216301
+Ciphertext = bd89ca50
+
+Cipher = aes-192-ccm
+Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf
+IV = 2ef29d62b40d8643848797cde8
+AAD = 1c1915fab09348b9a5536495c70d1a040305708c1124797e564b63e008e7b8ab
+Tag = 9d0146fe373437c529fb2eeb169e4bd7
+Plaintext = 697a8696
+Ciphertext = 1fd22fc7
+
+Cipher = aes-192-ccm
+Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf
+IV = 2ef29d62b40d8643848797cde8
+AAD = 864d0f786497c7ce283762ca0959ec9c825ed445a5dbe5b4b2e5772fe88ce7f5
+Tag = e389c549bfc4ede936d7896e544b23ad
+Plaintext = 6bee3db9
+Ciphertext = 1d4694e8
+
+Cipher = aes-192-ccm
+Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf
+IV = 2ef29d62b40d8643848797cde8
+AAD = d5388b0b548c58886dcd335dff2b1ed23ce3eebbb708fb5bbd831c83e959d3fa
+Tag = 95177a9fe6d9329a585c8737c92a4d29
+Plaintext = 85d95855
+Ciphertext = f371f104
+
+Cipher = aes-192-ccm
+Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf
+IV = 2ef29d62b40d8643848797cde8
+AAD = 83cddd189736f224cad6a29efba45e43c75450a14f1541713b7fb926ffc768c6
+Tag = 3914431a10b1f94a2b99b9e442f3dca4
+Plaintext = e8b23340
+Ciphertext = 9e1a9a11
+
+Cipher = aes-192-ccm
+Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf
+IV = 2ef29d62b40d8643848797cde8
+AAD = 8fccbd1fc5240691cf24e8807bf3416c1b2d87fc86dbf3955fa2e52b9a3a8457
+Tag = 383d8dc98b22010dd93cd0cbb396d9e3
+Plaintext = 595c4d7c
+Ciphertext = 2ff4e42d
+
+Cipher = aes-192-ccm
+Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf
+IV = 2ef29d62b40d8643848797cde8
+AAD = 513d45f6f37f3f051667dc743215059e06e4fdc8945789b16d50556a2e839368
+Tag = 40c513bfc92d1a7db5ed7cab2d8212b0
+Plaintext = 314e0c7d
+Ciphertext = 47e6a52c
+
+Cipher = aes-192-ccm
+Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf
+IV = 2ef29d62b40d8643848797cde8
+AAD = 70828be102e554f0d4b07641fa3254bc8db06eefaf5b85a7c97e01c217fc8f3f
+Tag = ea98f4ac6b3eabd483f1e6ab92f3b83c
+Plaintext = 35753e32
+Ciphertext = 43dd9763
+
+Cipher = aes-192-ccm
+Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf
+IV = 2ef29d62b40d8643848797cde8
+AAD = 343d5a4ad39acf81adcf24e9807618932abcb3bc076734f179174c77c8cb89e9
+Tag = f99fb67b1e2aba2d232db2445e6aec2a
+Plaintext = a531c0ed
+Ciphertext = d39969bc
+
+Cipher = aes-192-ccm
+Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7
+IV = 27e6b2a482bbc6f13702005708
+AAD = e04e81e860daf9696098c723085d8023c240ebe7a643131e35359ab04bd650fe
+Tag = 43ddf77b33d8cf2963ba76fd4e19f3c5
+Plaintext = 8ceaeb89fd
+Ciphertext = ec9d5ed362
+
+Cipher = aes-192-ccm
+Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7
+IV = 27e6b2a482bbc6f13702005708
+AAD = 6217cd581d4b3b2f7bcf1b8dad9ad6430e2e3a0063cad52260e0a1cd6fc9e73a
+Tag = 6b73fe9e638e205b27f78ed1bb9b0ed0
+Plaintext = 7e51d6f870
+Ciphertext = 1e2663a2ef
+
+Cipher = aes-192-ccm
+Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7
+IV = 27e6b2a482bbc6f13702005708
+AAD = 8aa7847e496f5e9f1f87851442de844f27a21c1b48f82fe525f0dd5a88b8ec38
+Tag = 5936115e23158aff1916edec241fad56
+Plaintext = e0023b674d
+Ciphertext = 80758e3dd2
+
+Cipher = aes-192-ccm
+Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7
+IV = 27e6b2a482bbc6f13702005708
+AAD = 3612abc865a4d8d7b86a84109388584df6526525adb1006ec6c8d00048d725bc
+Tag = f15aae4b70dbee244be1daa74475d7e2
+Plaintext = e2b5b6f36e
+Ciphertext = 82c203a9f1
+
+Cipher = aes-192-ccm
+Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7
+IV = 27e6b2a482bbc6f13702005708
+AAD = 849a99c6f1cae0ad4bcde4bd0811e87ca5ed7b913de1a8285a206e980b4b7043
+Tag = bbff424487848385f8501ab5a77f327c
+Plaintext = 9a17e4a22a
+Ciphertext = fa6051f8b5
+
+Cipher = aes-192-ccm
+Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7
+IV = 27e6b2a482bbc6f13702005708
+AAD = 9066367c784de0a4d1116bbe95ce55ded85edddb6273c2049ee24e0fb3429352
+Tag = 72d8d5da6f593a8d9956731b42645aa9
+Plaintext = d4e765fc78
+Ciphertext = b490d0a6e7
+
+Cipher = aes-192-ccm
+Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7
+IV = 27e6b2a482bbc6f13702005708
+AAD = e7aa9f767fa8920f96f91c41d9e86755faaedaeda596a444b65f99b7a9e23e85
+Tag = e3eca12b835dcfd08166ac8831585626
+Plaintext = 1074349e10
+Ciphertext = 700381c48f
+
+Cipher = aes-192-ccm
+Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7
+IV = 27e6b2a482bbc6f13702005708
+AAD = bc0db1ebf910b6f4dcad5401401d6bc2272e23130947dc236ca664d5b5ed6d66
+Tag = 2bcce66018e9e552d2c8a229301361df
+Plaintext = a46dd7fb58
+Ciphertext = c41a62a1c7
+
+Cipher = aes-192-ccm
+Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7
+IV = 27e6b2a482bbc6f13702005708
+AAD = fcbeba2d0d73239d05f691a52b08152c9dd871f8dc76c2c18b8a638a74460d31
+Tag = 3e41a50a28ea3be14baadf12964a37c4
+Plaintext = 2e0ca09221
+Ciphertext = 4e7b15c8be
+
+Cipher = aes-192-ccm
+Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7
+IV = 27e6b2a482bbc6f13702005708
+AAD = dcdefce64ae4339f46c0759a4a10b29d59daaaf1e5dbf75cf11b4e4f73c5025f
+Tag = bee2ab25bfafa76dc3e54832b2f76864
+Plaintext = 2e108ce0fa
+Ciphertext = 4e6739ba65
+
+Cipher = aes-192-ccm
+Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca
+IV = 518b79d194579b19f2d8845b70
+AAD = 691dd98f61fd213b0840ec5a6f06ef9a1420be0d59bde5e43546347a2a865a94
+Tag = c15536e21d961c675070ec4cff9037bc
+Plaintext = 24d6880aed7e
+Ciphertext = 270120f9634e
+
+Cipher = aes-192-ccm
+Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca
+IV = 518b79d194579b19f2d8845b70
+AAD = d1fd047cdb18463766841abb1fcd25257f1458b595bfcf24066ff9385232fa97
+Tag = 9b303af0b098f902dc24e66fe56adc6e
+Plaintext = 2298028d0213
+Ciphertext = 214faa7e8c23
+
+Cipher = aes-192-ccm
+Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca
+IV = 518b79d194579b19f2d8845b70
+AAD = 65a480d120a0459dab69e8f23094801e10092666cc56f9fb2549662982bda6d0
+Tag = 1b657925a9740d6828bd85cd12205764
+Plaintext = f248e5225e3d
+Ciphertext = f19f4dd1d00d
+
+Cipher = aes-192-ccm
+Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca
+IV = 518b79d194579b19f2d8845b70
+AAD = b738a53fbc9689dd49f68f97f5a99665258cd52e74dc653b594cffec045508aa
+Tag = 395a1c49129ef6cce0ad5f6ef378aa1c
+Plaintext = 611dade00cec
+Ciphertext = 62ca051382dc
+
+Cipher = aes-192-ccm
+Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca
+IV = 518b79d194579b19f2d8845b70
+AAD = 7006f54184f0ff0ab215ca408d46325b86c1cbae6da7838435b1826ff81f55dd
+Tag = 5e68468d1b2b516be3d688567d84ab80
+Plaintext = 5871a8300471
+Ciphertext = 5ba600c38a41
+
+Cipher = aes-192-ccm
+Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca
+IV = 518b79d194579b19f2d8845b70
+AAD = 9e6e6675d4c6b1e0f3894aac071f4c99a364708edea12f319cbc27b40fabc0f1
+Tag = 0ba1af163049d16817021665d183bc9e
+Plaintext = 3ca8a7520e94
+Ciphertext = 3f7f0fa180a4
+
+Cipher = aes-192-ccm
+Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca
+IV = 518b79d194579b19f2d8845b70
+AAD = 10ceef716f54b74d7c8a435d6aa38a10ff23939ca29e2de7b6c3e0a8269a23c9
+Tag = 670f35869da9821b6ff1fab3e6062ad4
+Plaintext = 9c2a0070fbba
+Ciphertext = 9ffda883758a
+
+Cipher = aes-192-ccm
+Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca
+IV = 518b79d194579b19f2d8845b70
+AAD = 3ee0865f29be50160273b4a94ec078932b9cd10a858e31838d5b607867e1ce69
+Tag = 08f395250fd79087c858b83755411114
+Plaintext = 436179c74fd2
+Ciphertext = 40b6d134c1e2
+
+Cipher = aes-192-ccm
+Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca
+IV = 518b79d194579b19f2d8845b70
+AAD = ec2b8bfe1ccd491b02aa4a9178fd6f099556963e39e2ca5fe6ecb6b5d2a46085
+Tag = afcbd9af2d584a0f638d066f2496d9be
+Plaintext = ecfa41c614c5
+Ciphertext = ef2de9359af5
+
+Cipher = aes-192-ccm
+Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca
+IV = 518b79d194579b19f2d8845b70
+AAD = 5b6f6369643d83b1db33d75257d7dea761e574e6e1f1ecead64e5e354a2f4235
+Tag = 17861882b8930296fd51d969a1e9489e
+Plaintext = b48c10105dbc
+Ciphertext = b75bb8e3d38c
+
+Cipher = aes-192-ccm
+Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775
+IV = 7574802fd82fe96c05431acd40
+AAD = 1cf83928b6a9e525fe578c5c0f40c322be71b3092239bff954dd6883738d6d71
+Tag = f4b6cab1383adb420c4724aa7bdfefb7
+Plaintext = 2a755e362373ef
+Ciphertext = f06238b0450fd1
+
+Cipher = aes-192-ccm
+Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775
+IV = 7574802fd82fe96c05431acd40
+AAD = bb5450f66273f63b2f79dce177381ce846584ce4f7a0ad5a0171a56e149370bb
+Tag = a1f99175d3dff5a73f0053a95c36fd8d
+Plaintext = fab43224bf8989
+Ciphertext = 20a354a2d9f5b7
+
+Cipher = aes-192-ccm
+Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775
+IV = 7574802fd82fe96c05431acd40
+AAD = 3e5e1037bd2922eb20c34200c470b76e537baf7e7f1d8dd2f7a184a593c66554
+Tag = 34b4ad0e41117940abf530093dac648e
+Plaintext = e3aed6715aa429
+Ciphertext = 39b9b0f73cd817
+
+Cipher = aes-192-ccm
+Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775
+IV = 7574802fd82fe96c05431acd40
+AAD = 3cc88a096a1a440827f5b7da675389e50b5cce35fa2cc36674d6bfc5a3a966b2
+Tag = 663a8324014550430c7eaeffbd8568f7
+Plaintext = e78db0f83997cb
+Ciphertext = 3d9ad67e5febf5
+
+Cipher = aes-192-ccm
+Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775
+IV = 7574802fd82fe96c05431acd40
+AAD = 2cca33a10b9da7ba99a6b552d1405f2df3fdfd15358d8fdab5e15296b38f9135
+Tag = 34ab635c4eb5b38b86e71da8af3840ae
+Plaintext = 726557906845b1
+Ciphertext = a87231160e398f
+
+Cipher = aes-192-ccm
+Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775
+IV = 7574802fd82fe96c05431acd40
+AAD = 2fe5dd58b17914187e29029c53cfe5b015ca74cab750d8f95e05f818c3cdf947
+Tag = bd9961766e03eaa7e8888227c98d1f42
+Plaintext = 043a759b578be4
+Ciphertext = de2d131d31f7da
+
+Cipher = aes-192-ccm
+Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775
+IV = 7574802fd82fe96c05431acd40
+AAD = 8b8e3d7c88fa16d70130cee290b7e2eecf0ce711118cd9265093b11467e63554
+Tag = 637842d96d13c4aab97e296458745a9d
+Plaintext = f31f2fb4b3fd80
+Ciphertext = 29084932d581be
+
+Cipher = aes-192-ccm
+Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775
+IV = 7574802fd82fe96c05431acd40
+AAD = 6341370e126097f9721a13c977eb4875cf1286e15c3adfa4e7597e0e13d93b6a
+Tag = a51ac46611366c666cab6bfd3d1baaa5
+Plaintext = 7e3c8224104669
+Ciphertext = a42be4a2763a57
+
+Cipher = aes-192-ccm
+Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775
+IV = 7574802fd82fe96c05431acd40
+AAD = 227926b62f7cdd90e4d3b0cb5457e71fb087d329671f0fa891ec06eb8edeb58a
+Tag = 8c7d7e5aec14845f844ad38544a2f11d
+Plaintext = 26a0528ae6f9c1
+Ciphertext = fcb7340c8085ff
+
+Cipher = aes-192-ccm
+Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775
+IV = 7574802fd82fe96c05431acd40
+AAD = 05b50c40b02e79b74b94d726a7ce8b2b7216ef8af6e7a42d041d2a692a58ad83
+Tag = f1605ab8a2332012b759ccd2eedbed24
+Plaintext = 61dcf53d1a184e
+Ciphertext = bbcb93bb7c6470
+
+Cipher = aes-192-ccm
+Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3
+IV = 65f7a0f4c0f5bba9d26f7e0ddb
+AAD = 5c7ce4819b30b975ae6ce58dcc1bfa29a8b6dda8f4b76c7e23516487745e829c
+Tag = 07482362ab3f157c42d0e9c6c5cffcf0
+Plaintext = 4d54d8b06b204445
+Ciphertext = 2baf90c490b11f96
+
+Cipher = aes-192-ccm
+Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3
+IV = 65f7a0f4c0f5bba9d26f7e0ddb
+AAD = 90257ed88679197b8219bc4c2434a71a4e3664d5859c4ffb9a075654898ffedf
+Tag = 5389509b5b6f2df1faf7e8c39203970f
+Plaintext = b2a35df881cd63a2
+Ciphertext = d458158c7a5c3871
+
+Cipher = aes-192-ccm
+Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3
+IV = 65f7a0f4c0f5bba9d26f7e0ddb
+AAD = dff8ad83525d8235eacdccc91abeb80795e6b5f463fd28af35c46199f646ceb8
+Tag = 95328747ca544e987df28883d0377b35
+Plaintext = e98f5e5a20d02c80
+Ciphertext = 8f74162edb417753
+
+Cipher = aes-192-ccm
+Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3
+IV = 65f7a0f4c0f5bba9d26f7e0ddb
+AAD = cde159c5343cd9d98001cd719d3e9ea25e47e1ff13fc87055d4a53b741f59285
+Tag = a4ba841883a0d7aeda398c043161966f
+Plaintext = 90c3e48313cd4fe4
+Ciphertext = f638acf7e85c1437
+
+Cipher = aes-192-ccm
+Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3
+IV = 65f7a0f4c0f5bba9d26f7e0ddb
+AAD = fa88cf5a08be4fb0c1a7960f45726c303eb559861fa60d17aa8dfe8bb5795382
+Tag = 09195efe66c5faf413e0f68df8cb647d
+Plaintext = 8ad6d5a28ec075e6
+Ciphertext = ec2d9dd675512e35
+
+Cipher = aes-192-ccm
+Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3
+IV = 65f7a0f4c0f5bba9d26f7e0ddb
+AAD = fe9e93a9370b43efa1560aeb017ff04fca7f207191e6f707c1c35b2e90c44eb2
+Tag = b51af067ad69ad96009e50ead3d03f02
+Plaintext = eb83928f0d5f7aa3
+Ciphertext = 8d78dafbf6ce2170
+
+Cipher = aes-192-ccm
+Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3
+IV = 65f7a0f4c0f5bba9d26f7e0ddb
+AAD = 35792c854fdf1c8cf7f3f8ed2b8ec4f31fe17bf8d4ba49caec03f954bd8bb17a
+Tag = 6b1cb03ee76587f84364825f7c1fcbe9
+Plaintext = 4cd74ed2fd083011
+Ciphertext = 2a2c06a606996bc2
+
+Cipher = aes-192-ccm
+Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3
+IV = 65f7a0f4c0f5bba9d26f7e0ddb
+AAD = c084108f9c0a74cbf70f614dceae592546865006930db0401828a0eecff98671
+Tag = 8fa70c5e195f1f955d64892f532b7683
+Plaintext = 52365f94579e0646
+Ciphertext = 34cd17e0ac0f5d95
+
+Cipher = aes-192-ccm
+Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3
+IV = 65f7a0f4c0f5bba9d26f7e0ddb
+AAD = e8045949de61c5c18a63e628330a4d1d12782379a8f9187755409d1825f453c5
+Tag = 2ddf297bdad58083645a052815d29a83
+Plaintext = 8fb85c857a3e38e7
+Ciphertext = e94314f181af6334
+
+Cipher = aes-192-ccm
+Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3
+IV = 65f7a0f4c0f5bba9d26f7e0ddb
+AAD = 53cfdfd66d63c2924bd583487b90b1dd9ec199f90d660cb9c3a763a4776abfe1
+Tag = 1ad3b2be41dbc39df4c0145dcbae3e76
+Plaintext = 43d2828e86f7856b
+Ciphertext = 2529cafa7d66deb8
+
+Cipher = aes-192-ccm
+Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab
+IV = 7f2d07f8169c5672b4df7f6cac
+AAD = d68d5f763db6111c5d6324d694cb0236beab877daae8115ecb75d60530777b58
+Tag = 467fd8e139eb9ee8fcdca45ed87dc1c8
+Plaintext = 13511ae5ff6c6860a1
+Ciphertext = b3859b757802ebd048
+
+Cipher = aes-192-ccm
+Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab
+IV = 7f2d07f8169c5672b4df7f6cac
+AAD = f6e219b29884dab9ea9bad34d9ef8a50ae389c9a908de7154a1f2e894f27141f
+Tag = 89d0ee8323ea2ee7a68aaaa9c49b98df
+Plaintext = 7e7e33e1a07d4e8fde
+Ciphertext = deaab2712713cd3f37
+
+Cipher = aes-192-ccm
+Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab
+IV = 7f2d07f8169c5672b4df7f6cac
+AAD = bcca002d69d9d1044c40ae741ea33ce6b8463f5a28d0514e044fdae2fe7d3c3b
+Tag = 37c9fe3d9feb0485e6d7c04423b77a53
+Plaintext = cc88980c73e6c5f0cd
+Ciphertext = 6c5c199cf488464024
+
+Cipher = aes-192-ccm
+Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab
+IV = 7f2d07f8169c5672b4df7f6cac
+AAD = 39cac8f0825ffdb0668455933ad1581263a23b9e5f1305340528f0320d4b1269
+Tag = b87e90a71ffe6c30bee1771078a701ab
+Plaintext = 34cb528f50d073cfdc
+Ciphertext = 941fd31fd7bef07f35
+
+Cipher = aes-192-ccm
+Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab
+IV = 7f2d07f8169c5672b4df7f6cac
+AAD = 510a02a44d142c8e975d1d933f828fd7e47d28b88223f1698cf009dc3b079be6
+Tag = 9e9c5be0657649448c38692e8d703d30
+Plaintext = cbce3df86438a61065
+Ciphertext = 6b1abc68e35625a08c
+
+Cipher = aes-192-ccm
+Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab
+IV = 7f2d07f8169c5672b4df7f6cac
+AAD = 40e0418cd52f74d78a8e18ed86210e3661a86d8574aedcee540340d8996d9852
+Tag = 13e5f2bfd33101597cfae7cf334a8528
+Plaintext = 80a2b835f8b0729a4b
+Ciphertext = 207639a57fdef12aa2
+
+Cipher = aes-192-ccm
+Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab
+IV = 7f2d07f8169c5672b4df7f6cac
+AAD = 1f2938b3bde19e1af91299c08638061dc3c1ea3284c259d415e996477cb37b0e
+Tag = 516a7310fbd4ceb90d8db9a86cb6311b
+Plaintext = dd04794e65ce34127a
+Ciphertext = 7dd0f8dee2a0b7a293
+
+Cipher = aes-192-ccm
+Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab
+IV = 7f2d07f8169c5672b4df7f6cac
+AAD = cbae5b46e35fa2a279dcaa4c724b923805d4707412a84252b64228c91cedd019
+Tag = ef6165af65f3522dfbfed0293db39ecd
+Plaintext = 00c4101052f54462d5
+Ciphertext = a0109180d59bc7d23c
+
+Cipher = aes-192-ccm
+Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab
+IV = 7f2d07f8169c5672b4df7f6cac
+AAD = d0f27c7f42892f3ad4c0029c5b698abb1d035ba5869a665b1de8861db6c055e8
+Tag = 0726434c1349e3e874a2d6bf598d05fc
+Plaintext = d0865445d3b26b6f49
+Ciphertext = 7052d5d554dce8dfa0
+
+Cipher = aes-192-ccm
+Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab
+IV = 7f2d07f8169c5672b4df7f6cac
+AAD = ab0f5a829a9319a74d5d5179aa0a410a0fcf52f344a7a896aeb1f7a6c5d398ea
+Tag = ab491e60fc97b3cb5248291e4866dcab
+Plaintext = 7c7c8580b944ed3fd3
+Ciphertext = dca804103e2a6e8f3a
+
+Cipher = aes-192-ccm
+Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8
+IV = a301bb82f91a582db01355c388
+AAD = 9ad52c041390d0d4aaf65a4667c3239c95e7eae6178acc23fb4e70a852d483c6
+Tag = 6aba025abc01416a7ca9f096ab2529cb
+Plaintext = f777aba1fa70f94e6de9
+Ciphertext = 9d8bff6d2dcde77104ac
+
+Cipher = aes-192-ccm
+Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8
+IV = a301bb82f91a582db01355c388
+AAD = b49c7e7b47870c1cc339c7c09aaacfd6115fa8a0f04990367eea10cfacb9d23c
+Tag = 4acb200e85a0d4753a8ba226aca72f98
+Plaintext = 349feebfbe58f93ea3c3
+Ciphertext = 5e63ba7369e5e701ca86
+
+Cipher = aes-192-ccm
+Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8
+IV = a301bb82f91a582db01355c388
+AAD = e61ca7310172eec16745a73e34516f65844eecd0dbc5566ac5213626b9096ef1
+Tag = 7869784e3321183d8c044657a020e9b9
+Plaintext = 678a40b4c2c7df0e4c9d
+Ciphertext = 0d761478157ac13125d8
+
+Cipher = aes-192-ccm
+Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8
+IV = a301bb82f91a582db01355c388
+AAD = 690f5e5d8da6cdb0f492e80449e152ffe88fea9742564d8383c79cef739a7f74
+Tag = 70634d00b1facf0e9e9979ca257a71e2
+Plaintext = 2b81e0533313664bf615
+Ciphertext = 417db49fe4ae78749f50
+
+Cipher = aes-192-ccm
+Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8
+IV = a301bb82f91a582db01355c388
+AAD = 78e34b0a1d61ccd411cbfd306ea2ef3ce89c0b085deb4cfbaec2ab72ce16daa9
+Tag = 994630ed92e2973b22773f229b45bdad
+Plaintext = 1ac63aa38a206d8e7d68
+Ciphertext = 703a6e6f5d9d73b1142d
+
+Cipher = aes-192-ccm
+Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8
+IV = a301bb82f91a582db01355c388
+AAD = 51bacfcf87ea11da34b76acba8c444792ec3db3c8ee6e600d69679975a682a54
+Tag = 04571b015bb6b4651f1eb9f6fb3a7b74
+Plaintext = 027a7fd7897808ec7a56
+Ciphertext = 68862b1b5ec516d31313
+
+Cipher = aes-192-ccm
+Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8
+IV = a301bb82f91a582db01355c388
+AAD = 5159357a133e4743f903d05bd641da369a3675337760fcd2424a99221ba70b78
+Tag = bb0e11ac4608081fd0702a137da0aea3
+Plaintext = 1086953d352e94a51a6d
+Ciphertext = 7a7ac1f1e2938a9a7328
+
+Cipher = aes-192-ccm
+Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8
+IV = a301bb82f91a582db01355c388
+AAD = f567820865340314d46a17f520ff315efb6b33bdeda590ca9c4fad604c2d8e8d
+Tag = 52c9ec1317ce30dffeb4c9bf3fd0bbdd
+Plaintext = b8b148aafec4a035e9a7
+Ciphertext = d24d1c662979be0a80e2
+
+Cipher = aes-192-ccm
+Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8
+IV = a301bb82f91a582db01355c388
+AAD = 0cfec933831644b468724e808bb3d25fe8f15850ce513fc341da46089c845208
+Tag = 691e32be3cdd9721a13aabad26dba58c
+Plaintext = 884242a87779d3921f8e
+Ciphertext = e2be1664a0c4cdad76cb
+
+Cipher = aes-192-ccm
+Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8
+IV = a301bb82f91a582db01355c388
+AAD = 8edc2b85d44297ac66bdd90d05d8df38124033d6a583bb8dda18a2246ba096e8
+Tag = 333a381be77800654aac335bf9220ac9
+Plaintext = 25c32770a299020d8500
+Ciphertext = 4f3f73bc75241c32ec45
+
+Cipher = aes-192-ccm
+Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661
+IV = 9e8d492c304cf6ad59102bca0e
+AAD = 9ec08c7ed6b70823d819e9ab019e9929249f966fdb2069311a0ddc680ac468f5
+Tag = 0cddce66df9b4802f737bea4bd8f5378
+Plaintext = 33709d9c7906e2f82dd9e2
+Ciphertext = 9114d36b79b1918b2720f4
+
+Cipher = aes-192-ccm
+Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661
+IV = 9e8d492c304cf6ad59102bca0e
+AAD = ba13974d95f2eeb367b63850609c53dc66c2710f682f10bef0142d48f851b430
+Tag = 12c94615be2bd81bd598f3022f5775a4
+Plaintext = 84172985e7d194ba28a87c
+Ciphertext = 26736772e766e7c922516a
+
+Cipher = aes-192-ccm
+Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661
+IV = 9e8d492c304cf6ad59102bca0e
+AAD = 5f16180bfac9b7483774cb0e1d57a43e9bf3cf03bf6fe758293aadcbbef25b80
+Tag = 2758e936750e335702542bc598e211c4
+Plaintext = 9a34d32070c71d7de8f512
+Ciphertext = 38509dd770706e0ee20c04
+
+Cipher = aes-192-ccm
+Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661
+IV = 9e8d492c304cf6ad59102bca0e
+AAD = 4352057bdd1735a85dc0fc4dbeedc73279c27eb24a97641236f03f11cdafb8c0
+Tag = 0762bb2a7d04ba2ad251d595d0619dc4
+Plaintext = 2054a268b1f6fae4f15d91
+Ciphertext = 8230ec9fb1418997fba487
+
+Cipher = aes-192-ccm
+Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661
+IV = 9e8d492c304cf6ad59102bca0e
+AAD = ddf118ae403b2509e75eb7a26d17e73e527acbacfbe49a56fa3210169030144b
+Tag = 27d85594da3fd35bd8498d7e389ee7cd
+Plaintext = f71afe9a60f08a0ef694aa
+Ciphertext = 557eb06d6047f97dfc6dbc
+
+Cipher = aes-192-ccm
+Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661
+IV = 9e8d492c304cf6ad59102bca0e
+AAD = 973904409e8154132439926f0dc45c0d81bbbd5793f7f81e20eb818bfa374d58
+Tag = 055936db383a8ad10b152046d721d3f7
+Plaintext = cdf5b47ff73306aa55c496
+Ciphertext = 6f91fa88f78475d95f3d80
+
+Cipher = aes-192-ccm
+Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661
+IV = 9e8d492c304cf6ad59102bca0e
+AAD = 06bca7ef6f91355d19f90bf25590a44a24e5a782f92bc693c031e6de1e948008
+Tag = d57e228369e24fe955fd8924526af6e5
+Plaintext = 9ebf93643854ea5c97a4f3
+Ciphertext = 3cdbdd9338e3992f9d5de5
+
+Cipher = aes-192-ccm
+Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661
+IV = 9e8d492c304cf6ad59102bca0e
+AAD = 8321f65baf9dc856ac1c24f3fee5c74d697eb0b50470d59d8f4a14b506e86c53
+Tag = 6c23abfb3b4eb39deb8da2064390dfa8
+Plaintext = 685116faa5cc527ac8bfa1
+Ciphertext = ca35580da57b2109c246b7
+
+Cipher = aes-192-ccm
+Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661
+IV = 9e8d492c304cf6ad59102bca0e
+AAD = a4e7738038a5116592bb9d92d6d4ed191ab774310f6409e4e45fe907674c006f
+Tag = b4272c0639e8e6a1d356fb4fea86762c
+Plaintext = 9e8c4f1292e8d7e5179b34
+Ciphertext = 3ce801e5925fa4961d6222
+
+Cipher = aes-192-ccm
+Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661
+IV = 9e8d492c304cf6ad59102bca0e
+AAD = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005adfe9faab253b572
+Tag = 0633a0f9cdc9490231ec2dd69f6e35db
+Plaintext = 3ecc2ba566c723462eb0ea
+Ciphertext = 9ca86552667050352449fc
+
+Cipher = aes-192-ccm
+Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056
+IV = acadc0330194906f8c75ac287f
+AAD = 8c18486d52571f70f2ba6a747aaa3d4b3ebc2e481ee1b70907dddb94bdfa0ca6
+Tag = ff4b0f2b2a5067283210aba8630d0306
+Plaintext = 10554c062d269ff6dcd98493
+Ciphertext = 7f8b0cad79b545e5addf0b04
+
+Cipher = aes-192-ccm
+Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056
+IV = acadc0330194906f8c75ac287f
+AAD = 4e0b4771c7f6c66f9577c430611fdeec5702296ee3691b6bb8c6a81217edabe4
+Tag = 5b16dbdf0b9be3c8c82ac652992d630d
+Plaintext = 1c9e7875cf02129ac52daeb0
+Ciphertext = 734038de9b91c889b42b2127
+
+Cipher = aes-192-ccm
+Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056
+IV = acadc0330194906f8c75ac287f
+AAD = 4a687e1d0a95ed2efb95b4c6b040999fcd35136811cd665f934d10224b6064c2
+Tag = e629274d654ef5a4480e24f6bef3bc8c
+Plaintext = 34575694dde459d195b7357a
+Ciphertext = 5b89163f897783c2e4b1baed
+
+Cipher = aes-192-ccm
+Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056
+IV = acadc0330194906f8c75ac287f
+AAD = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf823641a12bfce9f5
+Tag = 42ab5407a08b648ce24e9955e28fe47e
+Plaintext = ab20c8e8aab1aac1e4f64206
+Ciphertext = c4fe8843fe2270d295f0cd91
+
+Cipher = aes-192-ccm
+Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056
+IV = acadc0330194906f8c75ac287f
+AAD = 4f19bbc3135d7a216465b4c1df2616e8bfc3cc64af0bf52bdc42543f4d2448d4
+Tag = 151e94d311c7cd2c1b9048575076ceac
+Plaintext = e556ca05bcd1991d2c9836a9
+Ciphertext = 8a888aaee842430e5d9eb93e
+
+Cipher = aes-192-ccm
+Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056
+IV = acadc0330194906f8c75ac287f
+AAD = b6ffc7387b19786282bda7caad52eb37fbe7e557afcb80faaf57767e2a0f178a
+Tag = 61b71330d72506050368186a5619f180
+Plaintext = e5b665600a2aa413e117c538
+Ciphertext = 8a6825cb5eb97e0090114aaf
+
+Cipher = aes-192-ccm
+Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056
+IV = acadc0330194906f8c75ac287f
+AAD = 6a493c5ef3769ccc4101dbb2eb36e1e5bbc577a057ce0731203ba3f25b52497b
+Tag = ea21e36f99e5aab6ffa85994d13d5bb0
+Plaintext = 870864a611aa0475d120bc40
+Ciphertext = e8d6240d4539de66a02633d7
+
+Cipher = aes-192-ccm
+Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056
+IV = acadc0330194906f8c75ac287f
+AAD = 8215753d9efc51325f182199e39f9082cc3fe524400f2a7434c68df7eb2b06d4
+Tag = 7cc93a50dea11c5e0b19f14b9c8f16bd
+Plaintext = 71afe8d00c6f2ea8c8b050d4
+Ciphertext = 1e71a87b58fcf4bbb9b6df43
+
+Cipher = aes-192-ccm
+Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056
+IV = acadc0330194906f8c75ac287f
+AAD = eb8f198da6ee92a03913c6575343f6c749d2377a09430eb751b13c041e6edbea
+Tag = 99cbfd1beafa2d2942f6812b8dfc88e6
+Plaintext = 7021f18b8f398a5999fcdcd1
+Ciphertext = 1fffb120dbaa504ae8fa5346
+
+Cipher = aes-192-ccm
+Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056
+IV = acadc0330194906f8c75ac287f
+AAD = de2ee30359e390db72f682c2ca0f14b72b60ff9bccd8c6fbd19a512b12add794
+Tag = 337405235dce6161441caa25cc6007c6
+Plaintext = affca856eb412f0b3276ae6e
+Ciphertext = c022e8fdbfd2f518437021f9
+
+Cipher = aes-192-ccm
+Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e
+IV = 39abe53826d9b8e300fe747533
+AAD = cdd9bf1b4f865e922c678ec4947ea0cb02e78bd5c1538f33aeb818ad3f47e519
+Tag = 37f16761dd6aedbfc789ad96edf1490d
+Plaintext = 4021ff104ff1dbd91e46db249f
+Ciphertext = 7953d3cd66d093785d123f65ba
+
+Cipher = aes-192-ccm
+Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e
+IV = 39abe53826d9b8e300fe747533
+AAD = 342de5fe61e05c2e58ac2978a871fbdf186a7294ec5f85c4631c21b584231211
+Tag = 8f8e855ae975a1fc64bcce3e7492e9d6
+Plaintext = 95050ca1d494bdb561d4840f8a
+Ciphertext = ac77207cfdb5f5142280604eaf
+
+Cipher = aes-192-ccm
+Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e
+IV = 39abe53826d9b8e300fe747533
+AAD = 7871482948d8d09d0a7491d915543082cb5fc7d6c1e82ee2218279f54c15c154
+Tag = 017a6515156691b3161b747576078da4
+Plaintext = c45823203b20821a48502f9c67
+Ciphertext = fd2a0ffd1201cabb0b04cbdd42
+
+Cipher = aes-192-ccm
+Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e
+IV = 39abe53826d9b8e300fe747533
+AAD = 65781d018f27ca0c72a9fa9ab4648ed369646dd3ce45d7ad3a54f6b051f1b6e9
+Tag = 25cec7d2566a07cd78181ae94577befe
+Plaintext = e901661b7d47c9918244ee1077
+Ciphertext = d0734ac654668130c1100a5152
+
+Cipher = aes-192-ccm
+Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e
+IV = 39abe53826d9b8e300fe747533
+AAD = 05556b04dae5cde8525633d1862aa200c54af534e302d2cbd34ddc2b78532a60
+Tag = 133f51dac00f973fd42e0948fab70ea9
+Plaintext = 5556f799d6a6cffb343f28c1a9
+Ciphertext = 6c24db44ff87875a776bcc808c
+
+Cipher = aes-192-ccm
+Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e
+IV = 39abe53826d9b8e300fe747533
+AAD = 151304e3e4f3c2d4d3227e035d849e0d3841ba00cf6cab1cf2e3e4d6cc760623
+Tag = fe78bdeaa8d408ffe8fe64811aa87742
+Plaintext = 56bf26be81c7b55ef898e23981
+Ciphertext = 6fcd0a63a8e6fdffbbcc0678a4
+
+Cipher = aes-192-ccm
+Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e
+IV = 39abe53826d9b8e300fe747533
+AAD = f870cc1fe67d6169279f905b0fe5fd9a0436c36498e4b7c6f584f00f7efe8784
+Tag = 97228d155dda2bc814ff33ebeb9a7ffd
+Plaintext = 36b304a72dbf4acfffa1d7d624
+Ciphertext = 0fc1287a049e026ebcf5339701
+
+Cipher = aes-192-ccm
+Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e
+IV = 39abe53826d9b8e300fe747533
+AAD = 5692c9d452ea1c067e62fdc554ddd2b18c8433d59067f971316797fd9853ae6a
+Tag = e7ba03e144e34a4ab34791a372a2b8ab
+Plaintext = fb529eb5ae79a0830474ffbc98
+Ciphertext = c220b2688758e82247201bfdbd
+
+Cipher = aes-192-ccm
+Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e
+IV = 39abe53826d9b8e300fe747533
+AAD = dcf7fe16b7ca9e27ec3291103398eaa2e77c7b770b67f8858c215af4c523822d
+Tag = 03c2eb5ef0657306d12b753a0694efcc
+Plaintext = 6218c778955d9a56360f06c704
+Ciphertext = 5b6aeba5bc7cd2f7755be28621
+
+Cipher = aes-192-ccm
+Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e
+IV = 39abe53826d9b8e300fe747533
+AAD = b0f1e2668611dca86e8d0f58c2a4cf4a9472d81ba013e271800b75841fe5ffde
+Tag = 7cc6119151393461ecf65bfe06e0163b
+Plaintext = bf6b143fb713a81c965c5a9d8d
+Ciphertext = 861938e29e32e0bdd508bedca8
+
+Cipher = aes-192-ccm
+Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536
+IV = 7499494faa44a7576f9ed5580d
+AAD = baa482c64eefd09118549a8968f44cfea7a436913a428e30aa4ab44802a4ba35
+Tag = 8242ac1a1979c5a9e7bc67d7698c7efa
+Plaintext = d64f9426febce6a84c954dd5ded5
+Ciphertext = f7580f17266d68237747bf57c7ed
+
+Cipher = aes-192-ccm
+Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536
+IV = 7499494faa44a7576f9ed5580d
+AAD = 2ad8ecc5ac9437ace079419f17e6018625b10490120fbe2f12b41e64b73b653c
+Tag = 18abced491c063d8bfd0e7341febddc3
+Plaintext = fcd9b67717bcadeceddea336c671
+Ciphertext = ddce2d46cf6d2367d60c51b4df49
+
+Cipher = aes-192-ccm
+Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536
+IV = 7499494faa44a7576f9ed5580d
+AAD = 7585ee95e74d7a869bdc0b59ca9939dd57e7b09afab179079d467bfe0668416c
+Tag = 659ecbb3dbfbcdb0f913abedf8afab05
+Plaintext = 18232d7c792fb80e6ca1c8f2c3cc
+Ciphertext = 3934b64da1fe368557733a70daf4
+
+Cipher = aes-192-ccm
+Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536
+IV = 7499494faa44a7576f9ed5580d
+AAD = 41be6ca6188f34da1ce83fb8c27652848dc2a71e32bd3631fb9b33ae69e5d879
+Tag = a220d5ec0b5397d6b4e323b5dc7d1b63
+Plaintext = 764dbefb42644d18d23e5e456868
+Ciphertext = 575a25ca9ab5c393e9ecacc77150
+
+Cipher = aes-192-ccm
+Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536
+IV = 7499494faa44a7576f9ed5580d
+AAD = 197cee3b15320d57996191dd13106fbd4546a5cc3d2bcf0c886af52ea3d9a855
+Tag = 3a5f713f5d0793b732c6e114805cc9b3
+Plaintext = 8003586af34bdd0acae4f5547394
+Ciphertext = a114c35b2b9a5381f13607d66aac
+
+Cipher = aes-192-ccm
+Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536
+IV = 7499494faa44a7576f9ed5580d
+AAD = ee0b647a47656a6e9e09c2d64f734a2cc3fd45b7ee52fea51c24af59ee22a006
+Tag = ed90e8650bc16f590789dcc625b9e63d
+Plaintext = da143266516a4145cde92c93f961
+Ciphertext = fb03a95789bbcfcef63bde11e059
+
+Cipher = aes-192-ccm
+Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536
+IV = 7499494faa44a7576f9ed5580d
+AAD = 9f5bfffa01f1425d95465723735b49fc1dffbad06cf37a00ca4b59efa21739c1
+Tag = bda183dda1aef021d92210e27cdd7c5e
+Plaintext = 3842b033f3ca31a6f8e5a638b39e
+Ciphertext = 19552b022b1bbf2dc33754baaaa6
+
+Cipher = aes-192-ccm
+Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536
+IV = 7499494faa44a7576f9ed5580d
+AAD = 64e92ba2748d07f602808f7c5ded15cb0e43140400d37107e59a01e7d45b4c9c
+Tag = 5e4087fb314f893937e95383e66745c0
+Plaintext = cedf60b17185fc71b957cb759260
+Ciphertext = efc8fb80a95472fa828539f78b58
+
+Cipher = aes-192-ccm
+Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536
+IV = 7499494faa44a7576f9ed5580d
+AAD = 6ebcaeb4bd44ff4c990305ac64264dfe2ada5f7cd4b294eb9f492865cd28905c
+Tag = 0a71ce5813c578532b742d704fa92276
+Plaintext = 035f449bb28f43365f4a0556096a
+Ciphertext = 2248dfaa6a5ecdbd6498f7d41052
+
+Cipher = aes-192-ccm
+Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536
+IV = 7499494faa44a7576f9ed5580d
+AAD = db617207dccd1f6baea5f2242d5e577adb8d69af3bb1707a7a53a8b75452455c
+Tag = b7fc45d15d6939668065d2282fc589c7
+Plaintext = 9a2a45424f4965a71270e77cc403
+Ciphertext = bb3dde739798eb2c29a215fedd3b
+
+Cipher = aes-192-ccm
+Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c
+IV = 70325ef19e581b743095cd5eb1
+AAD = 6d14bb2635c5d0ae83687f1824279cf141173527e1b32d1baf8a27f7fe34a542
+Tag = cb3993ca35acf354cb2b4254ff672e7f
+Plaintext = 25a53fd3e476dc0860eeeea25fcb0c
+Ciphertext = 4a1cfd0023557a184b929965b0a445
+
+Cipher = aes-192-ccm
+Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c
+IV = 70325ef19e581b743095cd5eb1
+AAD = 9f8a56fecf32fa7d50f033b2524c3d798e254bc87245cce57e38edd6ee5d5f1a
+Tag = a25b5eb103bac224cad66ec0f100875c
+Plaintext = 797dca47597947c057789433309b67
+Ciphertext = 16c408949e5ae1d07c04e3f4dff42e
+
+Cipher = aes-192-ccm
+Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c
+IV = 70325ef19e581b743095cd5eb1
+AAD = 86f15b8b677b7655f358a2c7fd5785bc84d31e079ed859b6af88e198debd36fc
+Tag = b598cc6ec2295c586e7ae270a01846d1
+Plaintext = e61f9a663d3a2b50ea2f9475971270
+Ciphertext = 89a658b5fa198d40c153e3b2787d39
+
+Cipher = aes-192-ccm
+Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c
+IV = 70325ef19e581b743095cd5eb1
+AAD = 4de6bd43c28143ea5d40919cb5330a7e674f5bd8aeb7b178343a2851281c8668
+Tag = 97ff732093f7d0a96b30d8cdfd1bd583
+Plaintext = df990c42a268950677c433555319b3
+Ciphertext = b020ce91654b33165cb84492bc76fa
+
+Cipher = aes-192-ccm
+Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c
+IV = 70325ef19e581b743095cd5eb1
+AAD = a5c3a480dea1b2a1e3a0ce416148b04f60104217c9d24a5b267b4aa6aa07a4dd
+Tag = ad98e32a9156e125ff021ef6951b0c40
+Plaintext = a7e72fb4bec3768594a2f6f5b4379e
+Ciphertext = c85eed6779e0d095bfde81325b58d7
+
+Cipher = aes-192-ccm
+Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c
+IV = 70325ef19e581b743095cd5eb1
+AAD = 51b041f1666c59045d333fe63d43457107e1adad34fcbf965e0d191f3e414776
+Tag = 390f10df08a84c21031626861b201fbd
+Plaintext = d3d1550047cf90eceaea7000d8e280
+Ciphertext = bc6897d380ec36fcc19607c7378dc9
+
+Cipher = aes-192-ccm
+Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c
+IV = 70325ef19e581b743095cd5eb1
+AAD = 22f8a3c9d85b2d53ffd92078d3c94373f855ecd01a8ac521d1abd0f2c7cba9ff
+Tag = dd5d840bb8c4348a9a548482e6b93043
+Plaintext = 756412c4ee6416f2f4e0342011cde2
+Ciphertext = 1addd0172947b0e2df9c43e7fea2ab
+
+Cipher = aes-192-ccm
+Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c
+IV = 70325ef19e581b743095cd5eb1
+AAD = da08b14e1b770b81faaf1e59851df1cba8838cd63bef141340ee378e65fdcbd4
+Tag = 3f0d49927cd6103e3705ba201e8f73c6
+Plaintext = 666e4a4b3f6cf598aa763cdada4109
+Ciphertext = 09d78898f84f5388810a4b1d352e40
+
+Cipher = aes-192-ccm
+Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c
+IV = 70325ef19e581b743095cd5eb1
+AAD = 2db3ded385ef9c82fd39ea5782d9befe66e8a070066269b2aa7c4bbfac3711c3
+Tag = 2d97f7c2b3b42bf570cce79bf30ccc50
+Plaintext = eb9013a74352b0677a88bd73052477
+Ciphertext = 8429d1748471167751f4cab4ea4b3e
+
+Cipher = aes-192-ccm
+Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c
+IV = 70325ef19e581b743095cd5eb1
+AAD = 194c9e1eaa8e376f9c41bf33823efa28ee60a9213438665b7002cf0fcad7e644
+Tag = d3c2a4fc45d014a0c54edab2930a5bdc
+Plaintext = e3126400e3c571a4d39b37bc938a22
+Ciphertext = 8caba6d324e6d7b4f8e7407b7ce56b
+
+Cipher = aes-192-ccm
+Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9
+IV = 7c4d2f7cec04361f187f0726d5
+AAD = 77743b5d83a00d2c8d5f7e10781531b496e09f3bc9295d7ae9799e64668ef8c5
+Tag = 40bce58fd4cd6548df90a0337c842004
+Plaintext = 5051a0b0b6766cd6ea29a672769d40fe
+Ciphertext = 0ce5ac8d6b256fb7580bf6acc76426af
+
+Cipher = aes-192-ccm
+Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9
+IV = 7c4d2f7cec04361f187f0726d5
+AAD = e883dd42e9ddf7bc64f460ba019c28597587d06e57c3b7242f84d5e7d124ab81
+Tag = 8707b1a4d9ce3def33703e19eaab6dda
+Plaintext = b31dfa833b0cda20eaa84d2ecd18f49a
+Ciphertext = efa9f6bee65fd941588a1df07ce192cb
+
+Cipher = aes-192-ccm
+Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9
+IV = 7c4d2f7cec04361f187f0726d5
+AAD = 409401eb49cd96b1aad2525c5124c509766ff86f88b2011c67a1d501d3485e31
+Tag = fd9041ddce37d88e79fba28e385b2327
+Plaintext = 24bc8dc1e2354667b79ba4d7061448ff
+Ciphertext = 780881fc3f66450605b9f409b7ed2eae
+
+Cipher = aes-192-ccm
+Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9
+IV = 7c4d2f7cec04361f187f0726d5
+AAD = 83bf5c063bf1febf71688a832d615e09d6f14badedeaeb6ffbfe343fc7274e78
+Tag = 91d971893543868bd8c69078fc2bdb24
+Plaintext = d41d95a1d2326e12cba636910ddfca53
+Ciphertext = 88a9999c0f616d737984664fbc26ac02
+
+Cipher = aes-192-ccm
+Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9
+IV = 7c4d2f7cec04361f187f0726d5
+AAD = 8cdd70524e24318c64d681aa27752d4c86c5348c05c9e48f06ed41594785a6e6
+Tag = 866b23e4c991f4007e56a1ee9265c6cf
+Plaintext = e8a4b80e081919f1912542d3136764f2
+Ciphertext = b410b433d54a1a902307120da29e02a3
+
+Cipher = aes-192-ccm
+Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9
+IV = 7c4d2f7cec04361f187f0726d5
+AAD = 615985f63571c0f94ffcd4df77326abd41e84f388f061d97573a181da7ee5695
+Tag = 2abbea637996b954027efa9464ced6b9
+Plaintext = 7fca7388058d6d1438b6eee0292131cb
+Ciphertext = 237e7fb5d8de6e758a94be3e98d8579a
+
+Cipher = aes-192-ccm
+Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9
+IV = 7c4d2f7cec04361f187f0726d5
+AAD = 17aa90f2bff0419011b01dee62be31354431cbc89f22332704b096143d4743f4
+Tag = 57bc8d48d82ebefc76f17323c518ecc2
+Plaintext = aa540554ee80dbffa475f702d862d6b6
+Ciphertext = f6e0096933d3d89e1657a7dc699bb0e7
+
+Cipher = aes-192-ccm
+Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9
+IV = 7c4d2f7cec04361f187f0726d5
+AAD = 85288b2be612e42335c144fb058a7dcd567c382fbcee3962bd5be4cc7a7000a8
+Tag = 65470c81e487a26cdc26830f2b51bd1c
+Plaintext = 6d745581831edba437e70ea89cad217d
+Ciphertext = 31c059bc5e4dd8c585c55e762d54472c
+
+Cipher = aes-192-ccm
+Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9
+IV = 7c4d2f7cec04361f187f0726d5
+AAD = 288f9f52824b54b608dd7226a0a89d43ae8c05107dbae761e1c756911a003b74
+Tag = a3043722be9448c3ef144f2288066f75
+Plaintext = 811a61869c7a6b2aa9ac0fcc523ef784
+Ciphertext = ddae6dbb4129684b1b8e5f12e3c791d5
+
+Cipher = aes-192-ccm
+Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9
+IV = 7c4d2f7cec04361f187f0726d5
+AAD = 51dbaba180d4746edbb3420461919b5b735797bf7dd19f84d80475f5efc2748d
+Tag = 49aba95e04e11cf18ddf73773d395c1a
+Plaintext = 378a4e39817f308ed1e639f943b694c4
+Ciphertext = 6b3e42045c2c33ef63c46927f24ff295
+
+Cipher = aes-192-ccm
+Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17
+IV = 07f77f114d7264a122a7e9db4f
+AAD = 30457e99616f0247f1339b101974ea231904d0ef7bd0d5ee9b57c6c16761a282
+Tag = dc5e53e68c51ee55b276eb3f85d2cf63
+Plaintext = f6dd2c64bf597e63263ccae1c54e0805fe
+Ciphertext = ce3031c3a70600e9340b2ddfe56aa72cff
+
+Cipher = aes-192-ccm
+Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17
+IV = 07f77f114d7264a122a7e9db4f
+AAD = 42370f115bbd4b31bb99fe82cca273b3c93072f96b2e09bdc6718d926d48db69
+Tag = c6328a7476db2c10ec7bca3f6bd3df42
+Plaintext = f45fee3e086c28a7c590ec0cc05b972664
+Ciphertext = ccb2f3991033562dd7a70b32e07f380f65
+
+Cipher = aes-192-ccm
+Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17
+IV = 07f77f114d7264a122a7e9db4f
+AAD = e2d692c5678124998a7862b8e87276b0a19e293a609103c99583b36305bcb2b0
+Tag = 8080f0d51d3b8841683eff361984f7e4
+Plaintext = 4ad69a8ab433ed8909825c71f6081f64a7
+Ciphertext = 723b872dac6c93031bb5bb4fd62cb04da6
+
+Cipher = aes-192-ccm
+Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17
+IV = 07f77f114d7264a122a7e9db4f
+AAD = b5b38791160959dd2836ec1ad25286c1ba410d7212347a95b5738a3d725bb651
+Tag = c1428ef5d40bc9e363817f219af2ed56
+Plaintext = 3d47071c13f994cb42fb2887e5c6e53a54
+Ciphertext = 05aa1abb0ba6ea4150cccfb9c5e24a1355
+
+Cipher = aes-192-ccm
+Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17
+IV = 07f77f114d7264a122a7e9db4f
+AAD = 02691171795a77d1e3bdad513b6fab5b50d1def81bcc1df15012de3433a6aa78
+Tag = fdfb37dfd1236198035c8461b304152b
+Plaintext = e8a4b80e081919f1912542d3136764f264
+Ciphertext = d049a5a91046677b8312a5ed3343cbdb65
+
+Cipher = aes-192-ccm
+Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17
+IV = 07f77f114d7264a122a7e9db4f
+AAD = 7371d8ae79e628f53ffede174eb068db2318c05e2f6d94ad2233a59369b16db0
+Tag = cefde0e84a3ce0cb702ceb73ca1dd9a5
+Plaintext = 549aa84bb182312dd016e3107f3b1f9c5b
+Ciphertext = 6c77b5eca9dd4fa7c221042e5f1fb0b55a
+
+Cipher = aes-192-ccm
+Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17
+IV = 07f77f114d7264a122a7e9db4f
+AAD = bb1e1f51082e470f7245458ec902098e1e41d0ed28efa31be71d21ce86527ff7
+Tag = f8441d46dc5456a587b765e1a820c11c
+Plaintext = 31a12ca6d69db2e6e252474d7d59ed6552
+Ciphertext = 094c3101cec2cc6cf065a0735d7d424c53
+
+Cipher = aes-192-ccm
+Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17
+IV = 07f77f114d7264a122a7e9db4f
+AAD = 7584f57b49e95bbf5a67153e18b9b8c4722644e8f611613c39cbe8c679aba5b4
+Tag = d0daddcfcc92349ef059149c54a25cd0
+Plaintext = 5bb121e70452a954f420a56aca8cd5c059
+Ciphertext = 635c3c401c0dd7dee6174254eaa87ae958
+
+Cipher = aes-192-ccm
+Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17
+IV = 07f77f114d7264a122a7e9db4f
+AAD = 505687182c06e6f4effe7fe03c1f436199a9015380ff21d0b2aa9453cfa10b1d
+Tag = 48c1242b89490c6ee69dedc1e91286ee
+Plaintext = 5b80d1cf745b14cb71cbc8dfe0bc7c7358
+Ciphertext = 636dcc686c046a4163fc2fe1c098d35a59
+
+Cipher = aes-192-ccm
+Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17
+IV = 07f77f114d7264a122a7e9db4f
+AAD = 7ebb051741145a3bad87131553375c6debcbcecee9b79ee451bd1429cbb33fc1
+Tag = a2ddd54e509bca0a45dcf2fd514e1496
+Plaintext = 79ac204a26b9fee1132370c20f8c5bcada
+Ciphertext = 41413ded3ee6806b011497fc2fa8f4e3db
+
+Cipher = aes-192-ccm
+Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a
+IV = b79c33c96a0a90030694163e2a
+AAD = ea9405d6a46cac9783a7b48ac2e25cc9a3a519c4658b2a8770a37240d41587fb
+Tag = 0ca478f40a6fbde01f584d938a1c91bf
+Plaintext = 56d18d3e2e496440d0a5c9e1bcb464faf5bc
+Ciphertext = 01baba2e0d5b49d600d03a7ed84ee878926c
+
+Cipher = aes-192-ccm
+Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a
+IV = b79c33c96a0a90030694163e2a
+AAD = 72340d595f3dbd23b46513f8f2b73b6249328c705e7968084bcb647fe734a967
+Tag = e4646492b6f4cb169383c075756073b6
+Plaintext = 7a76eac44486afdb112fc4aab939e4d1eedb
+Ciphertext = 2d1dddd46794824dc15a3735ddc36853890b
+
+Cipher = aes-192-ccm
+Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a
+IV = b79c33c96a0a90030694163e2a
+AAD = d5c87c649579da3f632ba95cb0a07c924095e4bdd4e0376e06bb90e07460172e
+Tag = f584289f560cbf76606942fe1a92dd63
+Plaintext = 48348c5ec996f7a97ef0ba2cd6885572fe64
+Ciphertext = 1f5fbb4eea84da3fae8549b3b272d9f099b4
+
+Cipher = aes-192-ccm
+Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a
+IV = b79c33c96a0a90030694163e2a
+AAD = ffa6277395d31d5db13034d362228a87610e441c98ca3038e252a9db12bdbcef
+Tag = 5964f5f5532d7cddd7207f0e9a6aace9
+Plaintext = d5c58f10e1a03d8a2501d1eaf5fcdfff3ae5
+Ciphertext = 82aeb800c2b2101cf57422759106537d5d35
+
+Cipher = aes-192-ccm
+Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a
+IV = b79c33c96a0a90030694163e2a
+AAD = daf83d02a9bd992ea58c23e7ad18d41796314bae20e864e729f40ccc215454fc
+Tag = 90ae047e35aecfc38ffdc07e7d8f5705
+Plaintext = da2a863ab1c58ddde320ecadeecac9c5d2d8
+Ciphertext = 8d41b12a92d7a04b33551f328a304547b508
+
+Cipher = aes-192-ccm
+Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a
+IV = b79c33c96a0a90030694163e2a
+AAD = 21ddad5f550044dc5cb123ade17eeef549c4e0173b216bcc602c1e736764cca8
+Tag = b2bdf539ceaa35015712dd15265ca476
+Plaintext = 4573969afa831c244817230406fe51183091
+Ciphertext = 1218a18ad99131b29862d09b6204dd9a5741
+
+Cipher = aes-192-ccm
+Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a
+IV = b79c33c96a0a90030694163e2a
+AAD = 9228265ae5c3daf1485ff8011738da508bf2a73731396c5d9aa56fc554e0c00b
+Tag = 241412124ae20b84c13b0c3671d305c9
+Plaintext = edf5557e15473b747a819398c9ac1459ffdb
+Ciphertext = ba9e626e365516e2aaf46007ad5698db980b
+
+Cipher = aes-192-ccm
+Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a
+IV = b79c33c96a0a90030694163e2a
+AAD = c0a2ff0de21b3ba961e06015ccd71374856a65a4c57cf8cde0a1643aca8ed868
+Tag = ee9803747bf9fa63412bfc4e10aea89e
+Plaintext = e139263478900df806a0f3446bd6600c1aeb
+Ciphertext = b65211245b82206ed6d500db0f2cec8e7d3b
+
+Cipher = aes-192-ccm
+Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a
+IV = b79c33c96a0a90030694163e2a
+AAD = b54378f031a31cf3985f573829c9ffca14616742e0a7e03b0a2d7f05eff0219e
+Tag = 5afdf430b57845dcf622d4f25cdeb2a3
+Plaintext = 660eaff0f113eaa2f5f7ad4b62bb849a3a25
+Ciphertext = 316598e0d201c73425825ed4064108185df5
+
+Cipher = aes-192-ccm
+Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a
+IV = b79c33c96a0a90030694163e2a
+AAD = e67f35c18a9336469eae23040f98f52338ca8d0cab269ac32fe6bc7605d3ea56
+Tag = 7ed4c04c4b4dd585891ecfddeab8cc87
+Plaintext = 0f89897271f5d0349d57399005ea60c0cadc
+Ciphertext = 58e2be6252e7fda24d22ca0f6110ec42ad0c
+
+Cipher = aes-192-ccm
+Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0
+IV = 2b9ecfd179242c295fe6c6fa55
+AAD = b89166f97deb9cc7fdeb63639eeafb145895b307749ec1a293b27115f3aa8232
+Tag = 87ebe35e883cbd53b82f2a4624c03894
+Plaintext = 890d05420d57e3b3d8dbef117fe60c3fa6a095
+Ciphertext = f842ff6662684de8785af275fa2d82d587de06
+
+Cipher = aes-192-ccm
+Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0
+IV = 2b9ecfd179242c295fe6c6fa55
+AAD = 4392c3043287dd096b43b4a37ea7f5dc1d298b0623ccbf4fd650a49569a5b27b
+Tag = 07d4824f0a98db2d87365a42ca3b80e1
+Plaintext = 6b425cdcdf8304e7fbb70b2973d55e6940025b
+Ciphertext = 1a0da6f8b0bcaabc5b36164df61ed083617cc8
+
+Cipher = aes-192-ccm
+Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0
+IV = 2b9ecfd179242c295fe6c6fa55
+AAD = 9b4fc98fcdcf485205e7054bc9d1e02d0d8584420537e20d3821de2fd6824787
+Tag = 404e631735c544edeeb4c0105c55bf0b
+Plaintext = c8bf145fcffbafd6cd1a4c5b6cedfe008aacb2
+Ciphertext = b9f0ee7ba0c4018d6d9b513fe92670eaabd221
+
+Cipher = aes-192-ccm
+Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0
+IV = 2b9ecfd179242c295fe6c6fa55
+AAD = 45622e1472542be2f63f463d253617eafd4f2ad609f9020884905dd5c22fba53
+Tag = c16a4cf37e8e96eed1217d21133e83d1
+Plaintext = 12b5a76faedf6f855e328c2cb87be8aea78c5e
+Ciphertext = 63fa5d4bc1e0c1defeb391483db0664486f2cd
+
+Cipher = aes-192-ccm
+Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0
+IV = 2b9ecfd179242c295fe6c6fa55
+AAD = 958689aea3c6cd19020eff9d635ef44ee0793424df38fdf13a238b969d429777
+Tag = 9facf81a636351f6e67d6ec12636ae0b
+Plaintext = f0927c3cb0a876d7877466507da8bfa0bd9a16
+Ciphertext = 81dd8618df97d88c27f57b34f863314a9ce485
+
+Cipher = aes-192-ccm
+Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0
+IV = 2b9ecfd179242c295fe6c6fa55
+AAD = c22911efc36fa739048af0c951ef2449bb3605c52f65120c4d71fe5976026032
+Tag = 7ce73a7e2db69d30441f89a03fd0e84e
+Plaintext = d2c5d4e2362f19c99de66da7bd9c495c03d9a1
+Ciphertext = a38a2ec65910b7923d6770c33857c7b622a732
+
+Cipher = aes-192-ccm
+Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0
+IV = 2b9ecfd179242c295fe6c6fa55
+AAD = 799da61e2c10ebb4783f618b8f69da7704a1b2b925cebc228af57d7ceebb9825
+Tag = 8d787a9d06b8533ca96fb1db8aecc8e5
+Plaintext = 1c9d7f5b329ef4d384b8b7955a20f8a3fc15cd
+Ciphertext = 6dd2857f5da15a882439aaf1dfeb7649dd6b5e
+
+Cipher = aes-192-ccm
+Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0
+IV = 2b9ecfd179242c295fe6c6fa55
+AAD = 14a8e18afe0b9fe18ddfd754219a7e18ed36f419f8262d91678e10daffb31c81
+Tag = 8ff5f819d552c08054b5ac02063e102a
+Plaintext = 3a64414c3588d7c26871d7d054ac6c8420d491
+Ciphertext = 4b2bbb685ab77999c8f0cab4d167e26e01aa02
+
+Cipher = aes-192-ccm
+Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0
+IV = 2b9ecfd179242c295fe6c6fa55
+AAD = 7294a8b4ad97c81969e4a2876a3dc0ee322d554726997dc9ed98c5601985ee5b
+Tag = 1cde5af8fada67c47cbb5787a6b2d9c9
+Plaintext = 545dd71bea9967e07a89f84a2027aacd132187
+Ciphertext = 25122d3f85a6c9bbda08e52ea5ec2427325f14
+
+Cipher = aes-192-ccm
+Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0
+IV = 2b9ecfd179242c295fe6c6fa55
+AAD = 99294b22d73805805630fb416d20d4fca67419ab660ff45cd19a3729e81b9f69
+Tag = 7412640b179bd3e8a417dc38462c16e8
+Plaintext = ec1b17b885c018272652453f47fa6e9ed972b9
+Ciphertext = 9d54ed9ceaffb67c86d3585bc231e074f80c2a
+
+Cipher = aes-192-ccm
+Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf
+IV = da56ea046990c70fa216e5e6c4
+AAD = f799818d91be7bab555a2e39f1f45810a94d07179f94fe1151d95ab963c47611
+Tag = 743f71e15490ca41d245768988719ede
+Plaintext = f383bd3e6270876b74abbb5d35e7d4f11d83412c
+Ciphertext = 377b5df263c5c74f63603692cbb61ea37b6d686c
+
+Cipher = aes-192-ccm
+Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf
+IV = da56ea046990c70fa216e5e6c4
+AAD = 69adcae8a1e9a3f2fe9e62591f7b4c5b19d3b50e769521f67e7ea8d7b58d9fc8
+Tag = a9bc8cfaf2a1734a792076618c4b9690
+Plaintext = 615d724ae94a5daf8d27ad5132d507504898f61e
+Ciphertext = a5a59286e8ff1d8b9aec209ecc84cd022e76df5e
+
+Cipher = aes-192-ccm
+Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf
+IV = da56ea046990c70fa216e5e6c4
+AAD = 4586f73a1f162b2cdb65f6e798a60b5f48938d40b4612d84c1f39244f14efdce
+Tag = c5122df904b052e4d5580fdeddf5297c
+Plaintext = 6e923e1f404002aa5cf8f8aaf1b9772da425e21c
+Ciphertext = aa6aded341f5428e4b3375650fe8bd7fc2cbcb5c
+
+Cipher = aes-192-ccm
+Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf
+IV = da56ea046990c70fa216e5e6c4
+AAD = 9f7ae892e5662803408d4d062265846441a43c1fa202da59f640ae722a692671
+Tag = e0ba1bb1af18e15ade3316c21d6b41fb
+Plaintext = 68115771505daa18bb3ce90054bfb7d077e1f37c
+Ciphertext = ace9b7bd51e8ea3cacf764cfaaee7d82110fda3c
+
+Cipher = aes-192-ccm
+Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf
+IV = da56ea046990c70fa216e5e6c4
+AAD = 1f0769a7ae82bd985661e031c4a892c15d3ef37bdcfb45243d02f40fdb51d34b
+Tag = dc71e342fbc44289ef7e53e28edf3839
+Plaintext = 681fd2a324b3fea4cfebed567ae4546ba373c8f1
+Ciphertext = ace7326f2506be80d820609984b59e39c59de1b1
+
+Cipher = aes-192-ccm
+Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf
+IV = da56ea046990c70fa216e5e6c4
+AAD = bf957ef5ab2805e58ea752da5793f7f23d98fce1b2b67738929e5de8a15f9801
+Tag = ced1fb4a2a3e349aa590aabbfc3d13bc
+Plaintext = a7b9d2d069941e8b943706a02d2847ea713bb103
+Ciphertext = 6341321c68215eaf83fc8b6fd3798db817d59843
+
+Cipher = aes-192-ccm
+Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf
+IV = da56ea046990c70fa216e5e6c4
+AAD = 833264c1bebb597043b4158087cb651960915d9023189c9509c0d2aed84e7fe4
+Tag = 5079f6c2739e2b789b6e3d3c60389374
+Plaintext = 9b946e8198ce69d2173e970f4e0c103a47ee4160
+Ciphertext = 5f6c8e4d997b29f600f51ac0b05dda6821006820
+
+Cipher = aes-192-ccm
+Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf
+IV = da56ea046990c70fa216e5e6c4
+AAD = 94c8414cbbec52e2d73bb8f02ef687c91432495c0c744666317d02e6d46706d2
+Tag = 2a02f287db7217148317d897f65f6a0c
+Plaintext = 81ac4618f3db6bcf9bbf67220b7671be4bb4f8a2
+Ciphertext = 4554a6d4f26e2beb8c74eaedf527bbec2d5ad1e2
+
+Cipher = aes-192-ccm
+Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf
+IV = da56ea046990c70fa216e5e6c4
+AAD = fced1131dab3dabdc1a16d3409fa09a90ffe02f0e2c814a63f77f771c08c3389
+Tag = 362df9f8b41b1dd4821f8f14e9e633d7
+Plaintext = 90851933d4d3257137984cdb9cba2ca737322dac
+Ciphertext = 547df9ffd56665552053c11462ebe6f551dc04ec
+
+Cipher = aes-192-ccm
+Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf
+IV = da56ea046990c70fa216e5e6c4
+AAD = 495dfcf91f4735ab35c6bc4deef8468bd988e4099cd291a32b4707f93e13d82b
+Tag = f61ffb51e56497ca9f39c6665fcbdfa8
+Plaintext = c14ce6d57f0fe7367331c9fe159ae1fb8f1ccb2c
+Ciphertext = 05b406197ebaa71264fa4431ebcb2ba9e9f2e26c
+
+Cipher = aes-192-ccm
+Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390
+IV = 68ef8285b90f28bcd3cb1bacea
+AAD = dbe3e82e49624d968f5463ceb8af189fb3ad8b3b4122142b110d848a286dae71
+Tag = 6f68a03a11cf00d58f062a7b36465d13
+Plaintext = 81ad3f386bedcbf656ff535c63580d1f87e3c72326
+Ciphertext = 9f6028153e06d14d30b862a99a35413413c04a49dc
+
+Cipher = aes-192-ccm
+Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390
+IV = 68ef8285b90f28bcd3cb1bacea
+AAD = d9acfd611e5bbb08c5d05d56791b8aebabf8d69734ec89153c91a1f65b2e1adb
+Tag = ca1fb470b666523a19f83481f16481ed
+Plaintext = 35f6bb3f6a388f3a5a039b0a495b676d0b928aeb19
+Ciphertext = 2b3bac123fd395813c44aaffb0362b469fb10781e3
+
+Cipher = aes-192-ccm
+Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390
+IV = 68ef8285b90f28bcd3cb1bacea
+AAD = 6003b771afe4e99e1ef1ed4a31b10540d95f4ac49885f0c8e5cdcb63d213127e
+Tag = 53cb05bfcd64da2b45c2e9a89a380b49
+Plaintext = 6aa7e3802b5a29d4f9ca88eb59f94af783d1054466
+Ciphertext = 746af4ad7eb1336f9f8db91ea09406dc17f2882e9c
+
+Cipher = aes-192-ccm
+Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390
+IV = 68ef8285b90f28bcd3cb1bacea
+AAD = c371644275a6290821e7d308714bec2bf62d36c30f7fa77a0d60b28894f1c82a
+Tag = 48f70fbc680cf7092b3dd90b943fc6e5
+Plaintext = 13332b67ba5ba18137c306bd860dc3eb0a9a0b871a
+Ciphertext = 0dfe3c4aefb0bb3a518437487f608fc09eb986ede0
+
+Cipher = aes-192-ccm
+Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390
+IV = 68ef8285b90f28bcd3cb1bacea
+AAD = 8eceb15300ec4220510ed5b7deb3429de6ae5f618e1c222c28990a9ab4b4bac8
+Tag = e386f33c0b8da8d0c5934e617dd618e5
+Plaintext = 05981dc26a1db2d8e2c3d85ea9a4d1dc3432d9edc4
+Ciphertext = 1b550aef3ff6a8638484e9ab50c99df7a01154873e
+
+Cipher = aes-192-ccm
+Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390
+IV = 68ef8285b90f28bcd3cb1bacea
+AAD = 96d1cf3690c48c77a155ce13e67bbd62e6f03d88c893c1f7c30a6435d5ab36e0
+Tag = 3d2db1360fb1121893f4d197731bce4f
+Plaintext = 60249343a8cd4d33c6edc583ea7e5c221ef3064787
+Ciphertext = 7ee9846efd265788a0aaf476131310098ad08b2d7d
+
+Cipher = aes-192-ccm
+Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390
+IV = 68ef8285b90f28bcd3cb1bacea
+AAD = 379bbc9f919dc2a8687f2a86cc9c3291804240a9b566c58519956848102e6155
+Tag = 335ce1bfafc0948f2523e75f2aad86f9
+Plaintext = 79003a8d3d20d412f468f11712cec4d37cee847440
+Ciphertext = 67cd2da068cbcea9922fc0e2eba388f8e8cd091eba
+
+Cipher = aes-192-ccm
+Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390
+IV = 68ef8285b90f28bcd3cb1bacea
+AAD = 9bff9c9a8f94cd77e7016748da31f86d1b9c68465cbf954511c93a4776981524
+Tag = 7dc265e281307f0f4c38cddc556ac725
+Plaintext = 7d078a8b200514a00628756250d410f7a0f8a769e6
+Ciphertext = 63ca9da675ee0e1b606f4497a9b95cdc34db2a031c
+
+Cipher = aes-192-ccm
+Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390
+IV = 68ef8285b90f28bcd3cb1bacea
+AAD = 25125a4668c31dc2e8a68b6c4c95ad7cf9322852e371b415a357d09acb01b587
+Tag = 61c78a2f85a447c3e62b6197d65b9065
+Plaintext = d9b0eaaff786165f882f41a98dbc0c355b3a1aaf40
+Ciphertext = c77dfd82a26d0ce4ee68705c74d1401ecf1997c5ba
+
+Cipher = aes-192-ccm
+Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390
+IV = 68ef8285b90f28bcd3cb1bacea
+AAD = ad34d8f0902a5b79fb145b8206bb4d3b77e0bd8ae2d0964815389eacb33b4007
+Tag = 0312d067c08a9b4400e1df8bb7ed671a
+Plaintext = 17b517ef577f588da374340d2522cc9ea642c8d8ae
+Ciphertext = 097800c202944236c53305f8dc4f80b5326145b254
+
+Cipher = aes-192-ccm
+Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9
+IV = 30259ce106e9bd7a8bacbaf212
+AAD = 2870bd9a26c510e9a256920899bbc77a4eb9b53f927045a943d5ed6b13638cf3
+Tag = 2fe9afafc2fccd98ccf63b0fdec30eac
+Plaintext = 53911a67b65738f87fc7c20d6db8044bde1af95838d1
+Ciphertext = 70cf37d4b6f7e707376b1574ce17c040b5143da47abb
+
+Cipher = aes-192-ccm
+Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9
+IV = 30259ce106e9bd7a8bacbaf212
+AAD = 611032a95ee87f89ad6be7c0fed8bd245c5f81076087b3bda4cde5587b8d14b6
+Tag = 102dfd8c231d6a355f079c213ce6858e
+Plaintext = 46917e38b8a542296d290d065b0aa7c8aaa38950c386
+Ciphertext = 65cf538bb8059dd62585da7ff8a563c3c1ad4dac81ec
+
+Cipher = aes-192-ccm
+Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9
+IV = 30259ce106e9bd7a8bacbaf212
+AAD = 2e7ea26d1cceaca3b7862a7a8469e366b52ec27ca127e3317222ee651d8da4a0
+Tag = 6df11febe34dd568da12c374674b9ac4
+Plaintext = b527828c89f674dc6f024f8cdd80c694bb3ebd57b2d9
+Ciphertext = 9679af3f8956ab2327ae98f57e2f029fd03079abf0b3
+
+Cipher = aes-192-ccm
+Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9
+IV = 30259ce106e9bd7a8bacbaf212
+AAD = 0bf4413010daec585de34142224d1cad3072f9720f91ac664ad152820e838741
+Tag = b2916540d9439b832aa44236a7e187ac
+Plaintext = 78230f73f9c0150f630eca4cd679818551d449db82e6
+Ciphertext = 5b7d22c0f960caf02ba21d3575d6458e3ada8d27c08c
+
+Cipher = aes-192-ccm
+Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9
+IV = 30259ce106e9bd7a8bacbaf212
+AAD = 2e7cae3306582eb5bad148247aa6c6ec943f8748e84b8a069ca9488b11844716
+Tag = 0d0768a18dead55700901408aa3f901a
+Plaintext = 847bb12e0e56fa07a086eeda5907ae148148fa4107d2
+Ciphertext = a7259c9d0ef625f8e82a39a3faa86a1fea463ebd45b8
+
+Cipher = aes-192-ccm
+Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9
+IV = 30259ce106e9bd7a8bacbaf212
+AAD = 63036dc4ad13aee5dc1832e867f7538da108188fec7b08262af440d07579c451
+Tag = 5f2073605d2a441805b6ff89d8beb68c
+Plaintext = ec59e208c4bb429a371f1b3ffdf07fce5dea8a05f0ce
+Ciphertext = cf07cfbbc41b9d657fb3cc465e5fbbc536e44ef9b2a4
+
+Cipher = aes-192-ccm
+Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9
+IV = 30259ce106e9bd7a8bacbaf212
+AAD = f9ec5ce4b63156d57e451eb67ab6d7a59cc397f43f6d26dc07d1036f0fb4a8cf
+Tag = dcabef6907811c6b7df4e74c7a63d83b
+Plaintext = fb12d94bd21b5748b23132a03065c78dae65a0bd2cfb
+Ciphertext = d84cf4f8d2bb88b7fa9de5d993ca0386c56b64416e91
+
+Cipher = aes-192-ccm
+Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9
+IV = 30259ce106e9bd7a8bacbaf212
+AAD = e13a204e16f42bbf4716e95f1cb7e125ffac66a87f591c8ef2c7b8485ff707fd
+Tag = 26aa8aa37e858cd990f5593d9ef35f2a
+Plaintext = 239fa31d4a65de0318bfc5b60a06d706c129dcf255ac
+Ciphertext = 00c18eae4ac501fc501312cfa9a9130daa27180e17c6
+
+Cipher = aes-192-ccm
+Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9
+IV = 30259ce106e9bd7a8bacbaf212
+AAD = c4591c3ad984a1e189c526b719212f8248289eeb277827272b8205d78191eb2d
+Tag = d81e424d6b4528901ae46fb35f8b3106
+Plaintext = 57caadbb1a56cc5b8a5cf9584552e17e7af9542ba13e
+Ciphertext = 749480081af613a4c2f02e21e6fd257511f790d7e354
+
+Cipher = aes-192-ccm
+Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9
+IV = 30259ce106e9bd7a8bacbaf212
+AAD = cf4795bc7f43c30d3c3a8fd1b8a9d77d69bf59eb8b59d0f464315f40cb52335d
+Tag = f25a4bfda35e1390f3f16f638dcd4047
+Plaintext = a68c74e05f0a44d4a0372c0e5915b83d8e6729efacbb
+Ciphertext = 85d259535faa9b2be89bfb77faba7c36e569ed13eed1
+
+Cipher = aes-192-ccm
+Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6
+IV = 0df3fc6396f851785fca9aa5ff
+AAD = e9699b20b0574fce8b5cbc4ef792eb96e2c1cce36b1b1f06ea2a95fe300633cc
+Tag = a39c3b429a1f922fac0b59e29a122e43
+Plaintext = 8d98c580fb366f330dbfda20f91d99a0878b47efd14c6d
+Ciphertext = 579cdf9da62a2df471e03450516adb4ce99ae0f70b1776
+
+Cipher = aes-192-ccm
+Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6
+IV = 0df3fc6396f851785fca9aa5ff
+AAD = bd94c9ad6253c25dc417f87b6e52e03621ccf4b3bff5b402677aeb51e216335f
+Tag = 67bf538e40f9366adf8758968f06ce8a
+Plaintext = 7391ba60fabe2c632bbaca16af9a235b2c7dae61691c0b
+Ciphertext = a995a07da7a26ea457e5246607ed61b7426c0979b34710
+
+Cipher = aes-192-ccm
+Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6
+IV = 0df3fc6396f851785fca9aa5ff
+AAD = 4f263cda4a50b0e5379ec2fb546b326a07943527c1d175c029455a917753883b
+Tag = 64a1199251b54f419720a30de83161de
+Plaintext = 7e1e93a6ca35a2c0e4f08fdb2e7ee22b9f486f0ab919e2
+Ciphertext = a41a89bb9729e00798af61ab8609a0c7f159c8126342f9
+
+Cipher = aes-192-ccm
+Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6
+IV = 0df3fc6396f851785fca9aa5ff
+AAD = 4d43702be4f0530319555d7f1a3356160f6cae48051f12e22a153d7e405c1149
+Tag = b417e4cceb8dcf45ef33cc0007755bbc
+Plaintext = f94ff053c7413f34f96eae41fd1ac101151069af5a9428
+Ciphertext = 234bea4e9a5d7df385314031556d83ed7b01ceb780cf33
+
+Cipher = aes-192-ccm
+Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6
+IV = 0df3fc6396f851785fca9aa5ff
+AAD = f4d7978fad36223623ccb5bb18a7373cba8a6e3b1c921259e319266042db8887
+Tag = d35aed57f49dcfecf248cf9d246ac024
+Plaintext = ba0716355fffb8ef947d2a15eb58375a1ff1084c566990
+Ciphertext = 60030c2802e3fa28e822c465432f75b671e0af548c328b
+
+Cipher = aes-192-ccm
+Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6
+IV = 0df3fc6396f851785fca9aa5ff
+AAD = 12e4fe727b1f27a619dd67bb976ddc2b18b2ef8b7184290d9553494a500d933e
+Tag = 97cda0e04d2ff65c2e06a8276bdf6f97
+Plaintext = 872940780a94680a791c937994ceafd2c8b7a22b5f4927
+Ciphertext = 5d2d5a6557882acd05437d093cb9ed3ea6a6053385123c
+
+Cipher = aes-192-ccm
+Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6
+IV = 0df3fc6396f851785fca9aa5ff
+AAD = 2c16724296ff85e079627be3053ea95adf35722c21886baba343bd6c79b5cb57
+Tag = 3494dd2ee0a0fe5bfc9f69234c8142ed
+Plaintext = d71864877f2578db092daba2d6a1f9f4698a9c356c7830
+Ciphertext = 0d1c7e9a22393a1c757245d27ed6bb18079b3b2db6232b
+
+Cipher = aes-192-ccm
+Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6
+IV = 0df3fc6396f851785fca9aa5ff
+AAD = cefc4f2fb796c2502329ca3d8f8af3200dd9edb8f164e15acec90536a15b6fdc
+Tag = 9008ead8e923997508eebf5e776198dc
+Plaintext = cda681aa3109ebf5f21ee3a849098ea3a551e844fae4b4
+Ciphertext = 17a29bb76c15a9328e410dd8e17ecc4fcb404f5c20bfaf
+
+Cipher = aes-192-ccm
+Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6
+IV = 0df3fc6396f851785fca9aa5ff
+AAD = 94fc7eb8febb832097ba6eecd2697da91b5a8a1f2248f67a7659e0ac55a09a0d
+Tag = f136cc6ea1b0fdb554e0803053875b89
+Plaintext = d4f8d262870b5000a40b8fcce88f55c65c4d12e729975e
+Ciphertext = 0efcc87fda1712c7d85461bc40f8172a325cb5fff3cc45
+
+Cipher = aes-192-ccm
+Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6
+IV = 0df3fc6396f851785fca9aa5ff
+AAD = 459085184094e302b2e921cc04270b676e75bbcf0e4b53ed387df2bd0e75e0ac
+Tag = 5da8ceccae093888daaf92c95817fc3d
+Plaintext = 732f211061c0a32c6ad124c58418d560ef5eab2602314c
+Ciphertext = a92b3b0d3cdce1eb168ecab52c6f978c814f0c3ed86a57
+
+Cipher = aes-192-ccm
+Key = 91f9d636a071c3aad1743137e0644a73de9e47bd76acd919
+IV = 1bf491ac320d660eb2dd45c6c3
+AAD = 3bdfd7f18d2b6d0804d779f0679aaa2d7d32978c2df8015ae4b758d337be81dd
+Tag = b7e17f235bd660e7e17b2c65320e9fd4
+Plaintext = 4eaf9384cad976f65f98042d561d760b5a787330dc658f6c
+Ciphertext = 635530cab14e3d0a135bb6eebb5829412676e6dd4995f99c
+
+Cipher = aes-192-ccm
+Key = 91f9d636a071c3aad1743137e0644a73de9e47bd76acd919
+IV = 1bf491ac320d660eb2dd45c6c3
+AAD = 9de45b7e30bb67e88735b8fb7729d6f3de46c78921b228bad8f17cc9c709c387
+Tag = 9f40890c7d650afccda40fb2a4cd603b
+Plaintext = 59bee7d18fd4ba573f3e4f61076f5b9f6a3487e47d98c729
+Ciphertext = 7444449ff443f1ab73fdfda2ea2a04d5163a1209e868b1d9
+
+Cipher = aes-192-ccm
+Key = 91f9d636a071c3aad1743137e0644a73de9e47bd76acd919
+IV = 1bf491ac320d660eb2dd45c6c3
+AAD = 783477f981ef0551b5e7a714b640bbb38316c53756c96e30c898cdee3b72e6f4
+Tag = 50236cf1a12a9e3542a4051788f9775a
+Plaintext = 4e7f3c86d846ff351db81dbe1d2e9ed73ec0450587ae681b
+Ciphertext = 63859fc8a3d1b4c9517baf7df06bc19d42ced0e8125e1eeb
+
+Cipher = aes-192-ccm
+Key = 91f9d636a071c3aad1743137e0644a73de9e47bd76acd919
+IV = 1bf491ac320d660eb2dd45c6c3
+AAD = 2851d40243512a43f70f9c25e9b18c122a1433f05c61e65017e197e88b129e43
+Tag = b1bbad9861192df356c6678b2f561ea3
+Plaintext = 2db7cb2739c839383b64c2c93c7d5c906d984756c3dedaa9
+Ciphertext = 004d6869425f72c477a7700ad13803da1196d2bb562eac59
+
+Cipher = aes-192-ccm
+Key = 91f9d636a071c3aad1743137e0644a73de9e47bd76acd919
+IV = 1bf491ac320d660eb2dd45c6c3
+AAD = 1cfa2d62cc1f6313fb0c6eb21803e09cdf61ee3ddb15192529560e5d8096cafb
+Tag = 1da4211d4c28d2d91568117fc99fd911
+Plaintext = 2f2b82497c78369890809460d80a16be4f3330e8a0089165
+Ciphertext = 02d1210707ef7d64dc4326a3354f49f4333da50535f8e795
+
+Cipher = aes-192-ccm
+Key = 91f9d636a071c3aad1743137e0644a73de9e47bd76acd919
+IV = 1bf491ac320d660eb2dd45c6c3
+AAD = 5a14b556156191b2704936f64df0bf1dd2bd8d587418f4f85472338fcf86aa52
+Tag = da99be0e054bb881a25a74b547d3ed5e
+Plaintext = 7cfefca725da1b6bb5d9545e3e50f5a624a8160bdb0e7d4e
+Ciphertext = 51045fe95e4d5097f91ae69dd315aaec58a683e64efe0bbe
+
+Cipher = aes-192-ccm
+Key = 91f9d636a071c3aad1743137e0644a73de9e47bd76acd919
+IV = 1bf491ac320d660eb2dd45c6c3
+AAD = 148de640f3c11591a6f8c5c48632c5fb79d3b7e1cef9159c680d71fd1f9801fa
+Tag = 4c1fedb47fa30ff2ead6bf382431b2de
+Plaintext = 5205165c4e9612974dc92f60d1e328d68aa9466e27dbd499
+Ciphertext = 7fffb5123501596b010a9da33ca6779cf6a7d383b22ba269
+
+Cipher = aes-192-ccm
+Key = 91f9d636a071c3aad1743137e0644a73de9e47bd76acd919
+IV = 1bf491ac320d660eb2dd45c6c3
+AAD = f852e38703097cc37c589b7860dbc333e091411462d5576dc9909a8cf6ac99d4
+Tag = 338762a4e4299615c67130a28b56a383
+Plaintext = f968f2833427abbc9fe1cab7e7a3f905a3b23a35802029ff
+Ciphertext = d49251cd4fb0e040d32278740ae6a64fdfbcafd815d05f0f
+
+Cipher = aes-192-ccm
+Key = 91f9d636a071c3aad1743137e0644a73de9e47bd76acd919
+IV = 1bf491ac320d660eb2dd45c6c3
+AAD = 43df03a0e23c7ad0d13485150ca224c0b3f39d4e5f2d718db6308e003d3dc683
+Tag = 9dbdf61387294812f483aad76d48d899
+Plaintext = 67da6ca42655188af0b8e389152b2a1b6e2c3ed88926afa5
+Ciphertext = 4a20cfea5dc25376bc7b514af86e75511222ab351cd6d955
+
+
+Title = NIST CCM 256 Variable Plaintext Tests
+
+Cipher = aes-256-ccm
+Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476
+IV = 291e91b19de518cd7806de44f6
+AAD = b4f8326944a45d95f91887c2a6ac36b60eea5edef84c1c358146a666b6878335
+Tag = ca482c674b599046cc7d7ee0d00eec1e
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476
+IV = 291e91b19de518cd7806de44f6
+AAD = 36c17fd901169e5b144fdb2c4bea8cd65ad8acf7b4d3dd39acf2ad83da7b1971
+Tag = 67747defe5da5fecc00b9bf3b249f434
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476
+IV = 291e91b19de518cd7806de44f6
+AAD = 9a37c654ab8e5a0c6bdfff9793457197d206ed207d768cbc8318cfb39f077b89
+Tag = c57ef5d0faf49149c311707493a4cfd4
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476
+IV = 291e91b19de518cd7806de44f6
+AAD = 5ab80169184541393a6975f442ee583cd432d71a6d1568fa51159df7c5b8f959
+Tag = bc2fb5571a7563bb90689a229d2f63a7
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476
+IV = 291e91b19de518cd7806de44f6
+AAD = c78a22a667aafab0c94047e03837d51b11490693d5c57ea27b901ff80b6a38f9
+Tag = 428888c6420c56806f465b415a66e65a
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476
+IV = 291e91b19de518cd7806de44f6
+AAD = e11e30cbf63623816379f578788b0c8e6b59ee3c9c50aa6e1dcd749172d48fed
+Tag = 9f1b7520025e1075731adc946b80121d
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476
+IV = 291e91b19de518cd7806de44f6
+AAD = 05716168829276ff7ab23b7dd373db361e6d9e1f11d0028d374a0d3fe62be19f
+Tag = bd36b053b6a90f19e3b6622cba93105d
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476
+IV = 291e91b19de518cd7806de44f6
+AAD = 3e915389639435629fcc01e1b7022d3574e2848e9151261ad801d03387425dd7
+Tag = 458595a3413b965b189de46703760aa0
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476
+IV = 291e91b19de518cd7806de44f6
+AAD = 2f496be73a9a5d9db5927e622e166c6ec946150687b21c51c8ca7e680f9775ac
+Tag = 8b259b84a6ee5669e175affca8ba3b1a
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476
+IV = 291e91b19de518cd7806de44f6
+AAD = 0a8725bd8c8eab9ed52ca47835837b9f00a6c8d834ab17105b01eb4eb30402e7
+Tag = c5f35fdf2b63e77a18d154f0ddcfedbf
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-ccm
+Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14
+IV = 6df8c5c28d1728975a0b766cd7
+AAD = 080f82469505118842e5fa70df5323de175a37609904ee5e76288f94ca84b3c5
+Tag = f24e87a11a95374d4c190945bf08ef2f
+Plaintext = 1a
+Ciphertext = a5
+
+Cipher = aes-256-ccm
+Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14
+IV = 6df8c5c28d1728975a0b766cd7
+AAD = f6cfb81373f1cbb0574dda514747d0099635b48cb809c6f1fa30cbb671baa505
+Tag = d43c5f39be92778fdce3c832d2d3a019
+Plaintext = 40
+Ciphertext = ff
+
+Cipher = aes-256-ccm
+Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14
+IV = 6df8c5c28d1728975a0b766cd7
+AAD = 5a88b14bada16b513d4aa349b11ce4a77d4cda6f6322ff4939ad77d8ecb63748
+Tag = 753b7b661f1aad57c24c889b1c4fe513
+Plaintext = 41
+Ciphertext = fe
+
+Cipher = aes-256-ccm
+Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14
+IV = 6df8c5c28d1728975a0b766cd7
+AAD = a92b95b997cf9efded9ff5e1bff2e49d32e65f6283552ded4b05485b011f853f
+Tag = 1c5ac66e89bf2769ef5f38a3f1738b24
+Plaintext = 06
+Ciphertext = b9
+
+Cipher = aes-256-ccm
+Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14
+IV = 6df8c5c28d1728975a0b766cd7
+AAD = a206a1eb70a9d24bb5e72f314e7d91de074f59055653bdd24aab5f2bbe112436
+Tag = 3fe64379cea1a8ae3627418dd3e489a2
+Plaintext = c8
+Ciphertext = 77
+
+Cipher = aes-256-ccm
+Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14
+IV = 6df8c5c28d1728975a0b766cd7
+AAD = d3029f384fd7859c287e38c61a9475d5ddbfd64af93746b1dc86b8842a8c194c
+Tag = abc529442ff93005551b7689bcb748f7
+Plaintext = e2
+Ciphertext = 5d
+
+Cipher = aes-256-ccm
+Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14
+IV = 6df8c5c28d1728975a0b766cd7
+AAD = 51ca3d3b70b5e354451a5177d7acfd8e7b44eae55e29d88b5e8eb8fc1e5c62fc
+Tag = ee68e416617ac974b3d1af7320cd51f6
+Plaintext = 1a
+Ciphertext = a5
+
+Cipher = aes-256-ccm
+Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14
+IV = 6df8c5c28d1728975a0b766cd7
+AAD = 8c6c6791f1ac957b18bf008e260a0af4a5b7bfdb1e0008d6eaaa227f45cf4f62
+Tag = 43883d93d7066991e0fac453400b4fbf
+Plaintext = dd
+Ciphertext = 62
+
+Cipher = aes-256-ccm
+Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14
+IV = 6df8c5c28d1728975a0b766cd7
+AAD = b0a1af969a95025385b251afd1e89f353426ed6e5d71019cd73366aa31d5b464
+Tag = b940d416f3435812f9d1b18f441b7721
+Plaintext = 4c
+Ciphertext = f3
+
+Cipher = aes-256-ccm
+Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14
+IV = 6df8c5c28d1728975a0b766cd7
+AAD = 7e72b2ca698a18cb0bf625f5daddb0d40643009db938340a9e4fe164a052fee1
+Tag = 1d27e9a32feea28a6a7e7da2d27e1cc4
+Plaintext = 88
+Ciphertext = 37
+
+Cipher = aes-256-ccm
+Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510
+IV = 021bd8b551947be4c18cf1a455
+AAD = b5c6e8313b9c68e6bb84bffd65fa4108d243f580eab99bb80563ed1050c8266b
+Tag = c3152e43d9efea26e16c1d1793e2a8c4
+Plaintext = be80
+Ciphertext = ecac
+
+Cipher = aes-256-ccm
+Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510
+IV = 021bd8b551947be4c18cf1a455
+AAD = 38e5032c5949c2668191ef1af5bb17eddc28abdb4e5bb41eaffec2523b2525d6
+Tag = d06bf4b50ccce0b2acfd16ce90a8854d
+Plaintext = 82c9
+Ciphertext = d0e5
+
+Cipher = aes-256-ccm
+Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510
+IV = 021bd8b551947be4c18cf1a455
+AAD = 0b50f5173249fb7118f80d25874d6745d88e4ce265fa0dd141ad67ae26c31122
+Tag = 8d784f486c1dc4a2bafd5b02ca1e1c05
+Plaintext = 8239
+Ciphertext = d015
+
+Cipher = aes-256-ccm
+Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510
+IV = 021bd8b551947be4c18cf1a455
+AAD = 0296743a3125b103a2b2a78a109e825ea10834bd684215ab2e85cc4172e37348
+Tag = a3377002a48f9fe306d157358e6df37d
+Plaintext = 16c1
+Ciphertext = 44ed
+
+Cipher = aes-256-ccm
+Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510
+IV = 021bd8b551947be4c18cf1a455
+AAD = a94e64becb803e211785ba51db7f3db042fbf44a7a821509156a6828b0f207e9
+Tag = f6c09bf1dcb1c82bd98c6e2c13a8d7a5
+Plaintext = 2801
+Ciphertext = 7a2d
+
+Cipher = aes-256-ccm
+Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510
+IV = 021bd8b551947be4c18cf1a455
+AAD = 105358cc17b12107e023a23d57b44c66a2c58d8db05100311575e1ea152fc350
+Tag = 2ea363c0d8864363056467570959ba03
+Plaintext = 65e7
+Ciphertext = 37cb
+
+Cipher = aes-256-ccm
+Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510
+IV = 021bd8b551947be4c18cf1a455
+AAD = 669f9a63cf638a202dca1965c4116273249813ce0b39703887d89bdf5b3b12d6
+Tag = 6519377e6d0252b5f80cdf3d0253eccf
+Plaintext = 819d
+Ciphertext = d3b1
+
+Cipher = aes-256-ccm
+Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510
+IV = 021bd8b551947be4c18cf1a455
+AAD = e288590a3eba28ac6847a50b0294ab6bd0a548716ff5102c44a5b656b2d9ddd6
+Tag = 9a4dee6ca2cde473f08f76f779856c3c
+Plaintext = 761e
+Ciphertext = 2432
+
+Cipher = aes-256-ccm
+Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510
+IV = 021bd8b551947be4c18cf1a455
+AAD = 5b222aae3c7786c3b9021ba672f9136190ec931cf055f84c85706127f74c6d5b
+Tag = 9e65c0f01e644e74092253b470cd5511
+Plaintext = 56de
+Ciphertext = 04f2
+
+Cipher = aes-256-ccm
+Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510
+IV = 021bd8b551947be4c18cf1a455
+AAD = 2082f96c7e36b204ad076d8b2f796cccf5cbc80b8384b53a504e07706b07f596
+Tag = 809fa107f379957b52ac29fe0bc8a1e2
+Plaintext = b275
+Ciphertext = e059
+
+Cipher = aes-256-ccm
+Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944
+IV = 0bddf342121b82f906368b0d7b
+AAD = 887486fff7922768186363ef17eb78e5cf2fab8f47a4eb327de8b16d63b02acb
+Tag = 3f65d6be431e79700378049ac06f2599
+Plaintext = db457c
+Ciphertext = 54473c
+
+Cipher = aes-256-ccm
+Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944
+IV = 0bddf342121b82f906368b0d7b
+AAD = 0683c20e82d3c66787cb047f0b1eb1c58cdde9fb99ee4e4494bbf27eb62777d1
+Tag = 3b186edc15c22ba24e470eb5a072da9f
+Plaintext = 62a6c5
+Ciphertext = eda485
+
+Cipher = aes-256-ccm
+Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944
+IV = 0bddf342121b82f906368b0d7b
+AAD = 413074619b598f8bed34cab51ddf59941861ba0169ebe7570a5ed01d790c08e5
+Tag = 52a1fb5a58bd51931230c1a7dfb1a8c1
+Plaintext = cc67bc
+Ciphertext = 4365fc
+
+Cipher = aes-256-ccm
+Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944
+IV = 0bddf342121b82f906368b0d7b
+AAD = 2d65a5175c29a095dc082dab9cfcf4b895efbfa715c57614589d4db159543ce9
+Tag = 7d3810f59176cb108c7e969da51d4d79
+Plaintext = 33800b
+Ciphertext = bc824b
+
+Cipher = aes-256-ccm
+Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944
+IV = 0bddf342121b82f906368b0d7b
+AAD = 6a831b6059456be98e6fce608d8c71cb8efb04a96b45c2dfbdaeabf5420a1482
+Tag = 46ffea832595c9c86e6517215541ddbd
+Plaintext = b2c826
+Ciphertext = 3dca66
+
+Cipher = aes-256-ccm
+Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944
+IV = 0bddf342121b82f906368b0d7b
+AAD = 3a04a01160402bf36f33337c340883597207972728c5014213980cd7744e9e41
+Tag = e89a6725f0fc35622d89d2f3e34be90a
+Plaintext = d7e620
+Ciphertext = 58e460
+
+Cipher = aes-256-ccm
+Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944
+IV = 0bddf342121b82f906368b0d7b
+AAD = 64d8bd3c646f76dc6ce89defd40777fe17316729e22ba90f6a2443ee03f6390b
+Tag = b1bd7ad5d81686aeb44caa6025d488bd
+Plaintext = 795af4
+Ciphertext = f658b4
+
+Cipher = aes-256-ccm
+Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944
+IV = 0bddf342121b82f906368b0d7b
+AAD = 7bef8d35616108922aab78936967204980b8a4945b31602f5ef2feec9b144841
+Tag = 0553c801f37c2b6f82861a3cd68a75e3
+Plaintext = 66efcd
+Ciphertext = e9ed8d
+
+Cipher = aes-256-ccm
+Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944
+IV = 0bddf342121b82f906368b0d7b
+AAD = 92f7dc22dcbbe6420aca303bd586e5a24f4c3ed923a6ebe01ec1b66eee216341
+Tag = e3eeb8ea6c08b466baf246b3667feb3f
+Plaintext = 78b00d
+Ciphertext = f7b24d
+
+Cipher = aes-256-ccm
+Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944
+IV = 0bddf342121b82f906368b0d7b
+AAD = 71bf573cf63b0022d8143780fc2d9c7dbd0505ac31e9dce0ad68c2428b0878a0
+Tag = 1db811640c533794bfec6eeb977233ec
+Plaintext = 9dd5e1
+Ciphertext = 12d7a1
+
+Cipher = aes-256-ccm
+Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0
+IV = 5bc2896d8b81999546f88232ab
+AAD = fffb40b0d18cb23018aac109bf62d849adca42629d8a9ad1299b83fe274f9a63
+Tag = ab21dfdcfe95bd83592fb6b4168d9a23
+Plaintext = 87294078
+Ciphertext = 2bc22735
+
+Cipher = aes-256-ccm
+Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0
+IV = 5bc2896d8b81999546f88232ab
+AAD = 75c3b3059e59032067e9cd94d872e66f168e503bcf46bc78d82a4d4a15a29f6e
+Tag = b5de3331078aa13bd3742b59df4f661a
+Plaintext = 0f28ee1c
+Ciphertext = a3c38951
+
+Cipher = aes-256-ccm
+Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0
+IV = 5bc2896d8b81999546f88232ab
+AAD = 8fb9569f18a256aff71601d8412d22863e5a6e6f639214d180b095fa3b18d60e
+Tag = e52afe7326a12a9aaf22255a38d4bd0d
+Plaintext = d41c9c87
+Ciphertext = 78f7fbca
+
+Cipher = aes-256-ccm
+Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0
+IV = 5bc2896d8b81999546f88232ab
+AAD = 8b62d9adf6819c46c870df8a1486f0a329672f7d137bb7d8659f419c361a466c
+Tag = 7543692a72f0d599de48b5e5f5a9413f
+Plaintext = 046bc0d8
+Ciphertext = a880a795
+
+Cipher = aes-256-ccm
+Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0
+IV = 5bc2896d8b81999546f88232ab
+AAD = fd98f8f39dfa46ea5926e0ffacbabbe8c34205aade08aa0df82e1d4eaaf95515
+Tag = 30fc357f5482b9004d466bf858586acb
+Plaintext = 39bd4db8
+Ciphertext = 95562af5
+
+Cipher = aes-256-ccm
+Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0
+IV = 5bc2896d8b81999546f88232ab
+AAD = 09bf4f77a9883733590a3cc7ee97f3c9b70f4db255620e88cd5080badc73684c
+Tag = a9e8db046fdd548b52d40375c1e9a448
+Plaintext = b43cdd3a
+Ciphertext = 18d7ba77
+
+Cipher = aes-256-ccm
+Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0
+IV = 5bc2896d8b81999546f88232ab
+AAD = 40326d765e0f6cf4b4deccb128bebf65a7b3c3e5bcf1d58f6158e1e9153b7e85
+Tag = 4efbdd4ad8d3e863172d9372fca07c20
+Plaintext = e0052e9b
+Ciphertext = 4cee49d6
+
+Cipher = aes-256-ccm
+Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0
+IV = 5bc2896d8b81999546f88232ab
+AAD = aa5ae6dcdc21b5446489bdabf5c6747bdf3bbfdb3de2c03170efefe5ccb06d69
+Tag = 95bd661b32bc18025808f8b4035acad6
+Plaintext = 696825f6
+Ciphertext = c58342bb
+
+Cipher = aes-256-ccm
+Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0
+IV = 5bc2896d8b81999546f88232ab
+AAD = d3d34f140a856e55b29471fde4c0e5f7306b76d03faab26db79c10f95ffb3122
+Tag = ac05b072264e31a4b2801a6d790512d7
+Plaintext = 7eb07739
+Ciphertext = d25b1074
+
+Cipher = aes-256-ccm
+Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0
+IV = 5bc2896d8b81999546f88232ab
+AAD = 648a84813ca97aef4ab7e143ee29acb946388660f18eb671194646e0b0136432
+Tag = c00514d260e1d211de361c254369e93a
+Plaintext = 9cad70b1
+Ciphertext = 304617fc
+
+Cipher = aes-256-ccm
+Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576
+IV = 4f18bcc8ee0bbb80de30a9e086
+AAD = 574931ae4b24bdf7e9217eca6ce2a07287999e529f6e106e3721c42dacf00f5d
+Tag = 9c66e1a43103d9a18f5fba5fab83f994
+Plaintext = 3e8c6d1b12
+Ciphertext = 45f3795fcf
+
+Cipher = aes-256-ccm
+Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576
+IV = 4f18bcc8ee0bbb80de30a9e086
+AAD = 99cd9d15630a55e166114f04093bd1bb6dbb94ecaad126fe5c408dee5f012d9f
+Tag = 6f3cd579294f706213ed0f0bf32f00c5
+Plaintext = 76fc98ec66
+Ciphertext = 0d838ca8bb
+
+Cipher = aes-256-ccm
+Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576
+IV = 4f18bcc8ee0bbb80de30a9e086
+AAD = 1516fdf7a7a99f3c9acc7fff686203dec794c3e52272985449ddf5a268a47bc3
+Tag = 7d38e026f706c9273dbcb6dc982751d0
+Plaintext = 6564c247cc
+Ciphertext = 1e1bd60311
+
+Cipher = aes-256-ccm
+Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576
+IV = 4f18bcc8ee0bbb80de30a9e086
+AAD = 0c9c35be98591bf6737fc8d5624dcdba1a3523c6029013363b9153f0de77725b
+Tag = c3e46166767c6ad2aeffb347168b1b55
+Plaintext = c11b9c9d76
+Ciphertext = ba6488d9ab
+
+Cipher = aes-256-ccm
+Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576
+IV = 4f18bcc8ee0bbb80de30a9e086
+AAD = e74afe3ba960e6409dba78ecb9457e2a4ce2e09792b1d2e3858f4c79f7ddba62
+Tag = 33a7dca78bcbf4d75d651ee5fadff31b
+Plaintext = 45a4e0d7dd
+Ciphertext = 3edbf49300
+
+Cipher = aes-256-ccm
+Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576
+IV = 4f18bcc8ee0bbb80de30a9e086
+AAD = 96cbe9cd193513599c81f5a520fabaff51ee8cbdb81063c8311b1a57a0b8c8fd
+Tag = 11585167c83105ee16828a574c84ac86
+Plaintext = e5861b2327
+Ciphertext = 9ef90f67fa
+
+Cipher = aes-256-ccm
+Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576
+IV = 4f18bcc8ee0bbb80de30a9e086
+AAD = 2e7ea84da4bc4d7cfb463e3f2c8647057afff3fbececa1d20024dac29e41e2cf
+Tag = ffaba456f78e431f4baa5665f14e1845
+Plaintext = f5b5bcc38e
+Ciphertext = 8ecaa88753
+
+Cipher = aes-256-ccm
+Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576
+IV = 4f18bcc8ee0bbb80de30a9e086
+AAD = be125386f5be9532e36786d2e4011f1149abd227b9841150d1c00f7d0efbca4a
+Tag = 34714731f9503993df357954ecb19cd3
+Plaintext = b6cc89c75d
+Ciphertext = cdb39d8380
+
+Cipher = aes-256-ccm
+Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576
+IV = 4f18bcc8ee0bbb80de30a9e086
+AAD = 3fa8628594b2645bc35530203dca640838037daeaf9cf8acaa0fb76abf27a733
+Tag = 6c1b008b7572752f04362b2bfdc296bb
+Plaintext = 3802f2aa9e
+Ciphertext = 437de6ee43
+
+Cipher = aes-256-ccm
+Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576
+IV = 4f18bcc8ee0bbb80de30a9e086
+AAD = 642ae3466661ce1f51783deece86c38e986b8c0adea9e410e976f8a2fe0fe10f
+Tag = a3f7c3c29dc312c1f51a675400500e32
+Plaintext = e082b8741c
+Ciphertext = 9bfdac30c1
+
+Cipher = aes-256-ccm
+Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c
+IV = 7a76eac44486afdb112fc4aab9
+AAD = a66c980f6621e03ff93b55d5a148615c4ad36d6cbdd0b22b173b4b1479fb8ff7
+Tag = b14e0e659a6305b4aeffae82f8a66c94
+Plaintext = 1b62ad19dcac
+Ciphertext = 4ad1fcf57c12
+
+Cipher = aes-256-ccm
+Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c
+IV = 7a76eac44486afdb112fc4aab9
+AAD = c13f65bd491cb172a0f7bbc4a056c579484b62695e90383358d605307d5be0a5
+Tag = 79fa7932d365e2da9b05c00a7318384a
+Plaintext = 3ef0faaa9b79
+Ciphertext = 6f43ab463bc7
+
+Cipher = aes-256-ccm
+Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c
+IV = 7a76eac44486afdb112fc4aab9
+AAD = 59dcca8fc50740831f8f259eb55d4db11f763a83187d93758d78d166f4d73cd5
+Tag = 813229912137b7a4945dc07cea24a974
+Plaintext = 1a98ddbf35f1
+Ciphertext = 4b2b8c53954f
+
+Cipher = aes-256-ccm
+Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c
+IV = 7a76eac44486afdb112fc4aab9
+AAD = 578509ca4f57aadb78056794bf18b0714090970db786e2e838105e672165761c
+Tag = 6e045f19f737a24c8addf832ed3f7a42
+Plaintext = f46a7b1c28ea
+Ciphertext = a5d92af08854
+
+Cipher = aes-256-ccm
+Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c
+IV = 7a76eac44486afdb112fc4aab9
+AAD = 696c0c6427273cf06be79f2206c43af9cbda0b884efaf04deba0c4bf0a25cb26
+Tag = daae8a7dcd3b0fbb59438f88743ec6e8
+Plaintext = e98f5e5a20d0
+Ciphertext = b83c0fb6806e
+
+Cipher = aes-256-ccm
+Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c
+IV = 7a76eac44486afdb112fc4aab9
+AAD = 95a66b60249ed086eecaeb9bc449afcee9de212619e87516ca947351b25120df
+Tag = d9cb636ca6543c4e35964f47341f2814
+Plaintext = 06319c0480e2
+Ciphertext = 5782cde8205c
+
+Cipher = aes-256-ccm
+Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c
+IV = 7a76eac44486afdb112fc4aab9
+AAD = 2b411bea57b51d10a4d2fb17ef0f204aa53cf112e1130c21d411cdf16a84176d
+Tag = ec82eadf4eb1f055da1a92a82052ab8b
+Plaintext = f4c723433b7c
+Ciphertext = a57472af9bc2
+
+Cipher = aes-256-ccm
+Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c
+IV = 7a76eac44486afdb112fc4aab9
+AAD = ff3bff3a26fc5a91252d795f7e1b06f352314eb676bff50dc9fbe881c446941e
+Tag = 01b10a7ae24a4ca2bfb07ea2a3b31a97
+Plaintext = 02f809b01ce3
+Ciphertext = 534b585cbc5d
+
+Cipher = aes-256-ccm
+Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c
+IV = 7a76eac44486afdb112fc4aab9
+AAD = f6be4aad63d33a96c0b5e9c4be62323c9e2308b29961fff980ba0dbda0549274
+Tag = 231323a4b88af5d7d0b07c0e73ddce1d
+Plaintext = 2b6004823a29
+Ciphertext = 7ad3556e9a97
+
+Cipher = aes-256-ccm
+Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c
+IV = 7a76eac44486afdb112fc4aab9
+AAD = c3706a28d7420b41e072dcecc06b6b13116cca110bde8faea8e51f5107352d71
+Tag = db30eb33d2ede33abbe22f37704fe68b
+Plaintext = 236c60cba4fa
+Ciphertext = 72df31270444
+
+Cipher = aes-256-ccm
+Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2
+IV = d0d6871b9adc8623ac63faf00f
+AAD = e97175c23c5b47da8ce67811c6d60a7499b3b7e1347ad860519285b67201fe38
+Tag = 2fa325bafc176a07c31e6cc0a852d288
+Plaintext = d48daa2919348d
+Ciphertext = eb32ab153a8e09
+
+Cipher = aes-256-ccm
+Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2
+IV = d0d6871b9adc8623ac63faf00f
+AAD = ba45e1859efae362a44a0116a14e488ba369da6c76c3913b6df8e69e5e1111fa
+Tag = a24840f4f40a7963becde3a85968b29c
+Plaintext = f95b716bfe3475
+Ciphertext = c6e47057dd8ef1
+
+Cipher = aes-256-ccm
+Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2
+IV = d0d6871b9adc8623ac63faf00f
+AAD = efcaa6f6cda3036b0b52ff9f36bc38ca74049c32c6b7cdfb8a46ca4144bacd64
+Tag = 8f2a4a5c276727e0a210fc2efb5aeabe
+Plaintext = 4862e3677083f0
+Ciphertext = 77dde25b533974
+
+Cipher = aes-256-ccm
+Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2
+IV = d0d6871b9adc8623ac63faf00f
+AAD = 360bcb407603fe92f856bf677625b9882521e6dae8f35fdfc3dc737f9398f609
+Tag = 051734fc31232ab2ab63474020ab4dc9
+Plaintext = 7f1ca0728f6d65
+Ciphertext = 40a3a14eacd7e1
+
+Cipher = aes-256-ccm
+Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2
+IV = d0d6871b9adc8623ac63faf00f
+AAD = f12ee9d37946cfd88516cbe4a046f08c9bbba76a3973ff1e2cb14493405bd384
+Tag = c715244f307609ffa253e4e3659b0ece
+Plaintext = 67478ef73290fa
+Ciphertext = 58f88fcb112a7e
+
+Cipher = aes-256-ccm
+Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2
+IV = d0d6871b9adc8623ac63faf00f
+AAD = 5833dde0c577b2be4eb4b3d01d7b0042fa8441ad7043ea462bbbbd56a59790ea
+Tag = f11047da612d2987fa2e50ada5ae7f9d
+Plaintext = 36bb9e511276c5
+Ciphertext = 09049f6d31cc41
+
+Cipher = aes-256-ccm
+Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2
+IV = d0d6871b9adc8623ac63faf00f
+AAD = 1e103c63d8ead36b985f921044cd32b8f9f04a2ba9fa154a09e676ffaa093970
+Tag = 382f7648718127ebae7eb7443ebd2c2c
+Plaintext = d68d6556c5a5b1
+Ciphertext = e932646ae61f35
+
+Cipher = aes-256-ccm
+Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2
+IV = d0d6871b9adc8623ac63faf00f
+AAD = a1cfb61d45a140bdea6329ba0fe80429ff9aa4624a1d31bc752f7c97f1d390a0
+Tag = cc40a5e7fffb1fb9a5dd9d6ba91bede1
+Plaintext = 0568cca4ff79dc
+Ciphertext = 3ad7cd98dcc358
+
+Cipher = aes-256-ccm
+Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2
+IV = d0d6871b9adc8623ac63faf00f
+AAD = 116b5b015e44ceef0061b2d2e73fa0b386d5c1e187782beebdfc6efb5a1c6935
+Tag = 468d2b70c311732f11ed72b57d83e500
+Plaintext = bd93d08eea4263
+Ciphertext = 822cd1b2c9f8e7
+
+Cipher = aes-256-ccm
+Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2
+IV = d0d6871b9adc8623ac63faf00f
+AAD = 3d55882e6f3f89309b6940a3b408e573458eedd10fc3d0e1f3170eb313367475
+Tag = b41a70f548e359add30c0e5746fbeb2b
+Plaintext = 4fb62753024e92
+Ciphertext = 7009266f21f416
+
+Cipher = aes-256-ccm
+Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b
+IV = fe2d8ae8da94a6df563f89ce00
+AAD = 579a637e37a0974cd2fc3b735d9ed088e8e488ffe210f043e0f9d2079a015ad6
+Tag = e2ba537355ae8ab25cc9ed3511ff5053
+Plaintext = e5653e512d8b0b70
+Ciphertext = 75d31f8d47bee5c4
+
+Cipher = aes-256-ccm
+Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b
+IV = fe2d8ae8da94a6df563f89ce00
+AAD = 1583138aa307401dddc40804ac0f414d338fc3ffb2946f09aaaa7079426fc1ee
+Tag = 781a9e359804831f31a1efb1ae1cb71d
+Plaintext = 2c4ba9ce52e01645
+Ciphertext = bcfd881238d5f8f1
+
+Cipher = aes-256-ccm
+Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b
+IV = fe2d8ae8da94a6df563f89ce00
+AAD = 78d3dda40e433bba7a330ca3e5bd5170f0895f2e3e438402344ced79fcb0c719
+Tag = 2dcc77c4e1fe2bafd477598977835f0c
+Plaintext = 5eb2d054a0e58c62
+Ciphertext = ce04f188cad062d6
+
+Cipher = aes-256-ccm
+Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b
+IV = fe2d8ae8da94a6df563f89ce00
+AAD = dfc762466fa84c27326e0ee4320aa71103d1e9c8a5cf7d9fab5f27d79df94bd6
+Tag = 08946723baf0dbf613359b6e040f9bd5
+Plaintext = bbbf7830d04ab907
+Ciphertext = 2b0959ecba7f57b3
+
+Cipher = aes-256-ccm
+Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b
+IV = fe2d8ae8da94a6df563f89ce00
+AAD = 7e8ea82d1137c1e233522da12626e90a5f66a988e70664cb014c12790d2ab520
+Tag = 003bd62ca51f74088bbbd33e54ac9dd4
+Plaintext = 10c654c78a9e3c06
+Ciphertext = 8070751be0abd2b2
+
+Cipher = aes-256-ccm
+Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b
+IV = fe2d8ae8da94a6df563f89ce00
+AAD = 873da112557935b3929f713d80744ed08b4b276b86331dbc386fba361726d565
+Tag = 67e65e7f2cdedf6ef8cc0ee7a6dcfb02
+Plaintext = 668d32e322e1da3e
+Ciphertext = f63b133f48d4348a
+
+Cipher = aes-256-ccm
+Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b
+IV = fe2d8ae8da94a6df563f89ce00
+AAD = cfba97919f703d864efc11eac5f260a5d920d780c52899e5d76f8fe66936ff82
+Tag = 0532f8c6639e5d6c7b755fcf516724e3
+Plaintext = e39f6225e8eab6cc
+Ciphertext = 732943f982df5878
+
+Cipher = aes-256-ccm
+Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b
+IV = fe2d8ae8da94a6df563f89ce00
+AAD = 01abcfee196f9d74fcaa7b69ae24a275485c25af93cc2306d56e41e1eb7f5702
+Tag = 7fd7a33828413ebc252dd9d015773524
+Plaintext = 6021a00f6d0610a4
+Ciphertext = f09781d30733fe10
+
+Cipher = aes-256-ccm
+Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b
+IV = fe2d8ae8da94a6df563f89ce00
+AAD = ce1c31e7121c071d89afab5a9676c9e96cac3d89dcae83136bbb6f5ca8f81e5d
+Tag = d3d51368799325ad1c8233fa071bade0
+Plaintext = bbaf0ac4e77ee78d
+Ciphertext = 2b192b188d4b0939
+
+Cipher = aes-256-ccm
+Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b
+IV = fe2d8ae8da94a6df563f89ce00
+AAD = bb210ca5bc07e3c5b06f1d0084a5a72125f177d3e56c151221115ae020177739
+Tag = 5d1ea568637f773174a7f920a51b1fe1
+Plaintext = 98a2336549a23a76
+Ciphertext = 081412b92397d4c2
+
+Cipher = aes-256-ccm
+Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a
+IV = 274846196d78f0af2df5860231
+AAD = 69adcae8a1e9a3f2fe9e62591f7b4c5b19d3b50e769521f67e7ea8d7b58d9fc8
+Tag = 896e7127f17d13f98013b420219eb877
+Plaintext = 615d724ae94a5daf8d
+Ciphertext = f019ae51063239287d
+
+Cipher = aes-256-ccm
+Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a
+IV = 274846196d78f0af2df5860231
+AAD = 162d0033c9ea8d8334d485b29eef727302135a07a934eea5fee6041e9f1f47c1
+Tag = 7cc2cd61da9358b4045fef32f8192cbf
+Plaintext = 0d9168eeab3b27ba69
+Ciphertext = 9cd5b4f54443433d99
+
+Cipher = aes-256-ccm
+Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a
+IV = 274846196d78f0af2df5860231
+AAD = 3f4ab57efa32f51a4c00790280e77c0e55b85bbda4f854e242368e9a289b5a81
+Tag = d280f0ffdd560fb8915978e3bd6205bb
+Plaintext = 6287dcffdd5fb97885
+Ciphertext = f3c300e43227ddff75
+
+Cipher = aes-256-ccm
+Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a
+IV = 274846196d78f0af2df5860231
+AAD = 945d18134c148f164b39fd7c4aef0335045553f6ea690a3b1726418d86f0de00
+Tag = 7dbf90420a1ff2e24bd6303b80cfc199
+Plaintext = 6e5e01b3fd71d16b9c
+Ciphertext = ff1adda81209b5ec6c
+
+Cipher = aes-256-ccm
+Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a
+IV = 274846196d78f0af2df5860231
+AAD = 23af12893431b07c2922ab623aed901c0eaaeb9a24efc55273e96aea4dab7038
+Tag = d741f4329ae7cc77d42bf7e5f2ec5ab6
+Plaintext = b51521e689b5247362
+Ciphertext = 2451fdfd66cd40f492
+
+Cipher = aes-256-ccm
+Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a
+IV = 274846196d78f0af2df5860231
+AAD = b15a118b3132c20c31e6c9d09acdee0e15fcc59d6f18306442682512d22eb10f
+Tag = c9ffdcc2f36edac14613b1d85baf25a9
+Plaintext = 7f973617e710fb76fe
+Ciphertext = eed3ea0c08689ff10e
+
+Cipher = aes-256-ccm
+Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a
+IV = 274846196d78f0af2df5860231
+AAD = dcfbeb6490f5fa7eaf917462473a6cec98bebf8f17493fe9b994119a6d5a5457
+Tag = 5a61a28bb10265b26043d7a8dd357713
+Plaintext = 7e909b6727ac3fd02f
+Ciphertext = efd4477cc8d45b57df
+
+Cipher = aes-256-ccm
+Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a
+IV = 274846196d78f0af2df5860231
+AAD = 77e9317294f046f315a0d79e3423f29f7d9ebcd36d6eaa2a3fb2f4500309478c
+Tag = d321c371ae1fd01bdf3b6c75a597da6e
+Plaintext = a5075638932b5632f8
+Ciphertext = 34438a237c5332b508
+
+Cipher = aes-256-ccm
+Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a
+IV = 274846196d78f0af2df5860231
+AAD = 3aa8f204eb127b547e13873ed0238018394e13686c8734e49e3e629deb352c77
+Tag = 9393d1635bc40ac62405a39155406c47
+Plaintext = c10f15a0de78db8aa3
+Ciphertext = 504bc9bb3100bf0d53
+
+Cipher = aes-256-ccm
+Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a
+IV = 274846196d78f0af2df5860231
+AAD = 7f67e6f97c6c258f014d721a4edaaa0ddb3f9f09993276ab7b714ea9356c231d
+Tag = ff89641e1bd5ad6cc827441b17c45ecf
+Plaintext = 8294f830cfca42cfbe
+Ciphertext = 13d0242b20b226484e
+
+Cipher = aes-256-ccm
+Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9
+IV = b3503ed4e277ed9769b20c10c0
+AAD = 9ae5a04baa9d02c8854e609899c6240851cbc83f81f752bc04c71affa4eed385
+Tag = 76f2730d771d56099a0c8d2703d7a24e
+Plaintext = 2e3cf0af8c96c7b22719
+Ciphertext = e317df43ab46eb31be7e
+
+Cipher = aes-256-ccm
+Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9
+IV = b3503ed4e277ed9769b20c10c0
+AAD = da77c6d5627a2aa34911bd1f7cc5f8aa68a2c6546adc96a186b9af8e5baac4cf
+Tag = bcc7a8260ef361dc39fdb776d041f0d4
+Plaintext = e081c43a07450ce0dfa2
+Ciphertext = 2daaebd62095206346c5
+
+Cipher = aes-256-ccm
+Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9
+IV = b3503ed4e277ed9769b20c10c0
+AAD = 134d2d9726400d09dd3521326f96fbef993ddc0c4088770057b0f8d70356456f
+Tag = 19f0cbb0899f221aac9762f2650f8058
+Plaintext = c381d2ae5e72fc82324a
+Ciphertext = 0eaafd4279a2d001ab2d
+
+Cipher = aes-256-ccm
+Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9
+IV = b3503ed4e277ed9769b20c10c0
+AAD = 0d065dfde1de1f21784c7869eb566c977f807cfbd53578f4616995b51d7dc045
+Tag = 3dc92a9bd26b9653e5917359c331fcff
+Plaintext = 737f4d00c54ddca80eec
+Ciphertext = be5462ece29df02b978b
+
+Cipher = aes-256-ccm
+Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9
+IV = b3503ed4e277ed9769b20c10c0
+AAD = 95c54d187f2415535451cbb9cb35869749b171f7043216ce6886dd77baeecf60
+Tag = 91dda72c27d272561e00f7041845d998
+Plaintext = 4e9e251ebbbbe5dbc8ff
+Ciphertext = 83b50af29c6bc9585198
+
+Cipher = aes-256-ccm
+Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9
+IV = b3503ed4e277ed9769b20c10c0
+AAD = 0f98039e6a9fe360373b48c7850ce113a0ff7b2ae5ce773dd4c67ca967cd691b
+Tag = 928ac628758ad58fc1b5a768d4722848
+Plaintext = 0db72b281ab4046d15a6
+Ciphertext = c09c04c43d6428ee8cc1
+
+Cipher = aes-256-ccm
+Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9
+IV = b3503ed4e277ed9769b20c10c0
+AAD = ad840bc55654762e5eba0e4a9e7998992d990a06d70da1b1ca922ef193dab19a
+Tag = d11dad4dc8b265a53cf0bdd85c5f15f4
+Plaintext = 4f7b4f38ff1ba4df5a59
+Ciphertext = 825060d4d8cb885cc33e
+
+Cipher = aes-256-ccm
+Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9
+IV = b3503ed4e277ed9769b20c10c0
+AAD = 911e9876ea98e1bcf710d8fd05b5bf000ea317d926b41b6015998ee1462ab615
+Tag = 8eb659a5a7084be48d099467da4395df
+Plaintext = 58ce55379ef24b72d6d6
+Ciphertext = 95e57adbb92267f14fb1
+
+Cipher = aes-256-ccm
+Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9
+IV = b3503ed4e277ed9769b20c10c0
+AAD = 3f68a4fb4043bcf9b6d277c97e11365d949c705bd6679c6f0aaf52e62330ad79
+Tag = 3b2b2583fd117cec47b1c84d3863159e
+Plaintext = a219028a953ce1544835
+Ciphertext = 6f322d66b2eccdd7d152
+
+Cipher = aes-256-ccm
+Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9
+IV = b3503ed4e277ed9769b20c10c0
+AAD = 02f32242cba6204319075ea8ce806a57845355ae73e6b875955df510096ebff9
+Tag = 5456eb2b6a2d35c649a84051f843153c
+Plaintext = 83b0ee9a52252c456105
+Ciphertext = 4e9bc17675f500c6f862
+
+Cipher = aes-256-ccm
+Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207
+IV = bdb1b82ba864893c2ee8f7426c
+AAD = 9bcc5848e928ba0068f7a867e79e83a6f93593354a8bfcfc306aeeb9821c1da1
+Tag = 6512a0481255b729a10f9edb5f07c60c
+Plaintext = 8015c0f07a7acd4b1cbdd2
+Ciphertext = 8e9f80c726980b3d42e43a
+
+Cipher = aes-256-ccm
+Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207
+IV = bdb1b82ba864893c2ee8f7426c
+AAD = c2e75952ab49216f305e3776865791ce877cef8c0229ca97561787093fddf1d8
+Tag = 8c514444f00ffdb80a4bb7e9eb651946
+Plaintext = c97b62a719720b44b7779c
+Ciphertext = c7f122904590cd32e92e74
+
+Cipher = aes-256-ccm
+Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207
+IV = bdb1b82ba864893c2ee8f7426c
+AAD = c76a3ff4e6d1f742dd845be2d74c1a9b08e418909b15077deb20373ef55caf91
+Tag = db609dfc1929ac1ba5753fc83bf945b7
+Plaintext = cb7c17ef62464ecc8008f6
+Ciphertext = c5f657d83ea488bade511e
+
+Cipher = aes-256-ccm
+Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207
+IV = bdb1b82ba864893c2ee8f7426c
+AAD = bdb69f99f9a144b9ad88c6cfd8ffb8304c201de9b2818552ce6379e6042c1951
+Tag = 53b74283296d0fca83b262915289163c
+Plaintext = 893a690cc5221de597d0e8
+Ciphertext = 87b0293b99c0db93c98900
+
+Cipher = aes-256-ccm
+Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207
+IV = bdb1b82ba864893c2ee8f7426c
+AAD = 01815f599d6ba0d1c09f6f673bb6cca4c2a7a74f4e985be4c0f37842c7bbc5a4
+Tag = 88a34955893059d66549795b3ac2105c
+Plaintext = 80f3e4245c3eab16ef8bf0
+Ciphertext = 8e79a41300dc6d60b1d218
+
+Cipher = aes-256-ccm
+Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207
+IV = bdb1b82ba864893c2ee8f7426c
+AAD = a9db62e9ab53c4a805c43838ce36b587d29b75b43fb34c17a22d3981120f3bc5
+Tag = 377c4e2f20aaa872a9a0b1d1d7f56df0
+Plaintext = 641c6914920a79943dca39
+Ciphertext = 6a962923cee8bfe26393d1
+
+Cipher = aes-256-ccm
+Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207
+IV = bdb1b82ba864893c2ee8f7426c
+AAD = f0c2cc5a1b4c4cbe839338fa0d7a343514801302aef2403530605cf4f44d2811
+Tag = 5545aa0c1dd11551891ae553d3a91908
+Plaintext = 2286a1eddd80737a724ca9
+Ciphertext = 2c0ce1da8162b50c2c1541
+
+Cipher = aes-256-ccm
+Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207
+IV = bdb1b82ba864893c2ee8f7426c
+AAD = 9842922499ad4d487488b3731f48765efe0b4eb59e7b491ba5f6636f09ed564d
+Tag = d9e07ec5806360843676ef27d811b246
+Plaintext = d8c63e7d7d332198249c0c
+Ciphertext = d64c7e4a21d1e7ee7ac5e4
+
+Cipher = aes-256-ccm
+Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207
+IV = bdb1b82ba864893c2ee8f7426c
+AAD = 399b71ecb41f4590abda79045cdf6495f27daaa559c1b34f513b5c4ac105ec10
+Tag = 483b8727c5753ede25e1fab0d86963be
+Plaintext = 4b81804d777a59b6a107cf
+Ciphertext = 450bc07a2b989fc0ff5e27
+
+Cipher = aes-256-ccm
+Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207
+IV = bdb1b82ba864893c2ee8f7426c
+AAD = 2c186c5c3463a4a8bad771feb71e2973c4f6dede2529827707bf4fa40672660f
+Tag = 4b5c3c1dc577ee8fcf6ef3ebc0783430
+Plaintext = dfc762466fa84c27326e0e
+Ciphertext = d14d2271334a8a516c37e6
+
+Cipher = aes-256-ccm
+Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906
+IV = 0b5f69697eb1af24e8e6fcb605
+AAD = ea26ea68facdac3c75ba0cdf7b1ad703c9474af83b3fbfc58e548d776b2529b9
+Tag = 56bc555899345e0404b2938edf33168e
+Plaintext = a203aeb635e195bc33fd42fa
+Ciphertext = 62666297a809c982b50722bd
+
+Cipher = aes-256-ccm
+Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906
+IV = 0b5f69697eb1af24e8e6fcb605
+AAD = 0b32069fc7e676f229f1037d3026c93eef199913e426efd786b524ce1dbde543
+Tag = 9b15447c904b671824c2ca24c4fc7ad4
+Plaintext = aac414fbad945a49ae178103
+Ciphertext = 6aa1d8da307c067728ede144
+
+Cipher = aes-256-ccm
+Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906
+IV = 0b5f69697eb1af24e8e6fcb605
+AAD = 7a8658302e5181552292aa56e8209de63b5d86934167549b0d936202681757e1
+Tag = ea13850e99ef9300c65f5abc9419d13a
+Plaintext = 7ee0ce371329192618e3cda0
+Ciphertext = be8502168ec145189e19ade7
+
+Cipher = aes-256-ccm
+Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906
+IV = 0b5f69697eb1af24e8e6fcb605
+AAD = 4f05600950664d5190a2ebc29c9edb89c20079a4d3e6bc3b27d75e34e2fa3d02
+Tag = 486c93c31bbedc9e5ffa2f4154bceea9
+Plaintext = b0a1af969a95025385b251af
+Ciphertext = 70c463b7077d5e6d034831e8
+
+Cipher = aes-256-ccm
+Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906
+IV = 0b5f69697eb1af24e8e6fcb605
+AAD = 4530e4dc6a4c3733b8ab7e77e384223cc1a8c179fb66818c08aca47e5c705d89
+Tag = f18b556e7da59fd2549dc57a17bf64f8
+Plaintext = 9f6c6d60110fd3782bdf49b0
+Ciphertext = 5f09a1418ce78f46ad2529f7
+
+Cipher = aes-256-ccm
+Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906
+IV = 0b5f69697eb1af24e8e6fcb605
+AAD = f179353aef342f0f691caf1fcb811e3f6504e14d6d9381c5439b098ff978b01b
+Tag = 30aad3a838680cbd313004685a5510c5
+Plaintext = 90958d7f458d98c48cbb464c
+Ciphertext = 50f0415ed865c4fa0a41260b
+
+Cipher = aes-256-ccm
+Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906
+IV = 0b5f69697eb1af24e8e6fcb605
+AAD = f6df267e5cbc9d2a67b1c0fd762f891ee3b7c435884cb87d8228091b34aeddae
+Tag = 1d57b89ed0c91251aed37a6ca68a50c7
+Plaintext = 9f7ae892e5662803408d4d06
+Ciphertext = 5f1f24b3788e743dc6772d41
+
+Cipher = aes-256-ccm
+Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906
+IV = 0b5f69697eb1af24e8e6fcb605
+AAD = 4372e152b1afd99c7f87c8a51dbc3a5c14c49d04ea1c482a45dfbcda54972912
+Tag = d79a3b0feea16ff5fbca16211ea6fdd9
+Plaintext = 817074e351455f23cb67883d
+Ciphertext = 4115b8c2ccad031d4d9de87a
+
+Cipher = aes-256-ccm
+Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906
+IV = 0b5f69697eb1af24e8e6fcb605
+AAD = 82b6cd1c6618c42ba74e746075dc28700333578131ca6fde6971d2f0c6e31e6a
+Tag = 49f22737c4b2f9fa0a7e3dd4b067fbaa
+Plaintext = 1b7da3835e074fdf62f1eb3c
+Ciphertext = db186fa2c3ef13e1e40b8b7b
+
+Cipher = aes-256-ccm
+Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906
+IV = 0b5f69697eb1af24e8e6fcb605
+AAD = a5422e53975e43168726677930f6d3e13281bdbd13c67c168340ed67e45d15b0
+Tag = ef43a48dbea8c1547455ad0197af88a2
+Plaintext = 57473e7a105c806867379194
+Ciphertext = 9722f25b8db4dc56e1cdf1d3
+
+Cipher = aes-256-ccm
+Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df
+IV = 55b59eb434dd1ba3723ee0dc72
+AAD = 9b1d85384cb6f47c0b13514a303d4e1d95af4c6442691f314a401135f07829ec
+Tag = 4c6520dac0f073856d9b9010b7857736
+Plaintext = 8714eb9ecf8bdb13e919de40f9
+Ciphertext = ba6063824d314aa3cbab14b8c5
+
+Cipher = aes-256-ccm
+Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df
+IV = 55b59eb434dd1ba3723ee0dc72
+AAD = fa17c693d0997140fbc521d39e042d8e08388106874207ca81c85f45c035d6e6
+Tag = 20a423dd30796b6016baff106aaef206
+Plaintext = a0837676e091213890dc6e0a34
+Ciphertext = 9df7fe6a622bb088b26ea4f208
+
+Cipher = aes-256-ccm
+Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df
+IV = 55b59eb434dd1ba3723ee0dc72
+AAD = 27663597b389b78e96c785ca2f5510c8963a5561d2b0b24c4dcdf8e58562c12c
+Tag = 6032bc79c4aef1f74da25e92b0aa7f8a
+Plaintext = b8a2ce7e051b8d094ec43f2a7f
+Ciphertext = 85d6466287a11cb96c76f5d243
+
+Cipher = aes-256-ccm
+Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df
+IV = 55b59eb434dd1ba3723ee0dc72
+AAD = d8f1a83371487d611ce704e0a6731f97a933c43569690022fce33cb5aecdc0a7
+Tag = 658123d2e5bb324c7ead8897f8e32b0a
+Plaintext = 9e4103ab1dfb77ae3494507332
+Ciphertext = a3358bb79f41e61e16269a8b0e
+
+Cipher = aes-256-ccm
+Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df
+IV = 55b59eb434dd1ba3723ee0dc72
+AAD = 05c57aab99f94b315cf8bdd2d6b54440c097fe33c62a96b98b1568cdee4ce62c
+Tag = 270758ab09f93fa3ba7d7a2aa8eac789
+Plaintext = fb3e3d1b6394d2daebf121f8ac
+Ciphertext = c64ab507e12e436ac943eb0090
+
+Cipher = aes-256-ccm
+Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df
+IV = 55b59eb434dd1ba3723ee0dc72
+AAD = 1c1b0933c508c6a8a20846ebd0d0377e24f4abc0c900d3a92bc409ba14ef1434
+Tag = 2293813f1bcb96564f772e9308e42b2d
+Plaintext = 549ba26a299391538b56ce4bd7
+Ciphertext = 69ef2a76ab2900e3a9e404b3eb
+
+Cipher = aes-256-ccm
+Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df
+IV = 55b59eb434dd1ba3723ee0dc72
+AAD = 9f5cf9149f556124d6bb4e3e243cca1502c02682709392cc2ec7eb262fd4d479
+Tag = 81877380d5cf097c2fb5177750f8b53a
+Plaintext = 287f31e69880823df7798c7970
+Ciphertext = 150bb9fa1a3a138dd5cb46814c
+
+Cipher = aes-256-ccm
+Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df
+IV = 55b59eb434dd1ba3723ee0dc72
+AAD = 1a49aaea6fc6fae01a57d2fc207ef9f623dfd0bc2cf736c4a70aaaa0af5dafd3
+Tag = cf42c75787edc62a180568c6ef56545d
+Plaintext = 040d18b128ae4a1935f9509266
+Ciphertext = 397990adaa14dba9174b9a6a5a
+
+Cipher = aes-256-ccm
+Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df
+IV = 55b59eb434dd1ba3723ee0dc72
+AAD = f29a0b2c602ff2cacb587292db301182e6c76c5110b97ca8b706198f0e1dbc26
+Tag = 56d47a0631f2038103e3904b556ba7a5
+Plaintext = 92441cbe8d70820870bb01ad63
+Ciphertext = af3094a20fca13b85209cb555f
+
+Cipher = aes-256-ccm
+Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df
+IV = 55b59eb434dd1ba3723ee0dc72
+AAD = 01fcf5fef50e36175b0510874ea50a4d2005ad5e40e5889b61417700d827251e
+Tag = 5be15b7ae24edccd0b0934e3af513ed3
+Plaintext = f11d814df217de96333dee1cbf
+Ciphertext = cc69095170ad4f26118f24e483
+
+Cipher = aes-256-ccm
+Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0
+IV = 61bf06b9fa5a450d094f3ddcb5
+AAD = 0245484bcd987787fe97fda6c8ffb6e7058d7b8f7064f27514afaac4048767fd
+Tag = 6385a52c68914e9d1f63fd297ee6e7ed
+Plaintext = 959403e0771c21a416bd03f38983
+Ciphertext = 37a346bc4909965c549783825182
+
+Cipher = aes-256-ccm
+Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0
+IV = 61bf06b9fa5a450d094f3ddcb5
+AAD = 52f6a10a022e5ee57eda3fcf53dcf0d922e9a3785b39fad9498327744f2852e4
+Tag = 364b603de6afbc2d96d00510894ccbe7
+Plaintext = 23fe445efa5bcb318cc85e2ad1ac
+Ciphertext = 81c90102c44e7cc9cee2de5b09ad
+
+Cipher = aes-256-ccm
+Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0
+IV = 61bf06b9fa5a450d094f3ddcb5
+AAD = d236e3841b9556b32dbd02886724d053a9b8488c5ad1b466b06482a62b79ebb6
+Tag = 1a4321c2ddbc35ce4864457d611219e9
+Plaintext = 762fdc3e0c30c7ecf2ec8808bb79
+Ciphertext = d418996232257014b0c608796378
+
+Cipher = aes-256-ccm
+Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0
+IV = 61bf06b9fa5a450d094f3ddcb5
+AAD = 0d2739cfdac782b61f484fa1a423c478c414397ec420327963d79112b2d70a7e
+Tag = 296e55efebb17fe145cdca9b31ea7bcc
+Plaintext = b6813d5fe8afa68d646c197337a2
+Ciphertext = 14b67803d6ba117526469902efa3
+
+Cipher = aes-256-ccm
+Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0
+IV = 61bf06b9fa5a450d094f3ddcb5
+AAD = 7f291aa463c4babc76b4a6faf2e27e9401586b1ac83e4b06a4090e94b3ef5fd4
+Tag = 59270a0510e7cc1b599705853af2144d
+Plaintext = 4ce8b6578537215224eb9398c011
+Ciphertext = eedff30bbb2296aa66c113e91810
+
+Cipher = aes-256-ccm
+Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0
+IV = 61bf06b9fa5a450d094f3ddcb5
+AAD = 06bca7ef6f91355d19f90bf25590a44a24e5a782f92bc693c031e6de1e948008
+Tag = b55847573bf21e946ce9bdc5f569e3ff
+Plaintext = 9ebf93643854ea5c97a4f38f50bd
+Ciphertext = 3c88d63806415da4d58e73fe88bc
+
+Cipher = aes-256-ccm
+Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0
+IV = 61bf06b9fa5a450d094f3ddcb5
+AAD = 5a44ff94f817c7c028a8f3db35a4d01364d2598432469f09ded86e5127d42d35
+Tag = b8a61c5687ea02f0276824b8316b76f1
+Plaintext = da989cc7d375ed5fac4d7f938d74
+Ciphertext = 78afd99bed605aa7ee67ffe25575
+
+Cipher = aes-256-ccm
+Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0
+IV = 61bf06b9fa5a450d094f3ddcb5
+AAD = 2a755e362373ef27a911c4d93ca07bc97135645442ad7ad6a8ef98146c71e9d7
+Tag = a07ee02791011129fcacffcfb1bf4145
+Plaintext = 6fbab5a0f98e21e4d15904af5948
+Ciphertext = cd8df0fcc79b961c937384de8149
+
+Cipher = aes-256-ccm
+Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0
+IV = 61bf06b9fa5a450d094f3ddcb5
+AAD = f7988873f45a5de314e5381d3f14d8f8c48c9b649bf3e745ed5dc882d507da58
+Tag = d34204b1ce23f5f58a8eb7cf1fa8cfa7
+Plaintext = b610349e8b370a7c195598573637
+Ciphertext = 142771c2b522bd845b7f1826ee36
+
+Cipher = aes-256-ccm
+Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0
+IV = 61bf06b9fa5a450d094f3ddcb5
+AAD = 95d2c8502e28ab3ee2cac52e975c3e7bccb1a93acc33d9c32786f66d6268d198
+Tag = 9c618bb88bbcefb008a5ea6bed4ff949
+Plaintext = 1d969fd81dab5ced3e6ee70be3bf
+Ciphertext = bfa1da8423beeb157c44677a3bbe
+
+Cipher = aes-256-ccm
+Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a
+IV = a5c1b146c82c34b2e6ebeceb58
+AAD = 5e60b02b26e2d5f752eb55ea5f50bb354a6f01b800cea5c815ff0030b8c7d475
+Tag = d6852dc829469368491149d6bb140071
+Plaintext = 54be71705e453177b53c92bbf2ab13
+Ciphertext = 788db949697b8cd9abbc74ed9aa40c
+
+Cipher = aes-256-ccm
+Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a
+IV = a5c1b146c82c34b2e6ebeceb58
+AAD = 210c04632341fbfc185bfe3cbf6fe272bbe971104173bcb11419b35ab3aaf200
+Tag = 56940dc5a7e44bf10234806d00a012b5
+Plaintext = 22197f9ad14591e7a6d5f8b18c969a
+Ciphertext = 0e2ab7a3e67b2c49b8551ee7e49985
+
+Cipher = aes-256-ccm
+Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a
+IV = a5c1b146c82c34b2e6ebeceb58
+AAD = d3a205dd017e79a67400a937a20ef049f4c40d73311731f03ab857a3f93bd458
+Tag = 0898f7dbde25b0b70d335df71a06987b
+Plaintext = 096b2f530933c1273304a6ad423726
+Ciphertext = 2558e76a3e0d7c892d8440fb2a3839
+
+Cipher = aes-256-ccm
+Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a
+IV = a5c1b146c82c34b2e6ebeceb58
+AAD = 0c9b3ba4faf5fc2f310ad1bab06c4ca13474b714feeffb6ad615c1b850bbd6a3
+Tag = 2fd10d1f21b6b963c05aeda8eb09e272
+Plaintext = d44fdfd9da3a63c1083afe574e91bf
+Ciphertext = f87c17e0ed04de6f16ba1801269ea0
+
+Cipher = aes-256-ccm
+Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a
+IV = a5c1b146c82c34b2e6ebeceb58
+AAD = d9bb71ad90152d5c1af358c8501fa89ebd4b17bf4ff43841528cccb79fd791b3
+Tag = 4491d23d90ff55abca17e9d943b98c7f
+Plaintext = 8d836acc13ed83c2b2c706415c9679
+Ciphertext = a1b0a2f524d33e6cac47e017349966
+
+Cipher = aes-256-ccm
+Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a
+IV = a5c1b146c82c34b2e6ebeceb58
+AAD = 69dc21eb6f295b12ba493ee8fe6c40d78af946067ce772db316a3cbf00d3c521
+Tag = 9616886c6b2adc97db5a673846b6662c
+Plaintext = 2a68e3fe746f593c1b97cb637079c3
+Ciphertext = 065b2bc74351e49205172d351876dc
+
+Cipher = aes-256-ccm
+Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a
+IV = a5c1b146c82c34b2e6ebeceb58
+AAD = 095eb52135dc6d9c1f56a2571c1389852482e7aa3edc245a3904a0449db24a70
+Tag = 2441dcae1760db90379bd354fa99164e
+Plaintext = 39799b001ed2c334c269acb0f2328c
+Ciphertext = 154a533929ec7e9adce94ae69a3d93
+
+Cipher = aes-256-ccm
+Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a
+IV = a5c1b146c82c34b2e6ebeceb58
+AAD = efd7270e0396392fde8b0ddaab00544cbbd504f4d97d4e90d749d1946de90dcb
+Tag = c7c7deb28bdcf84886ef843216b94449
+Plaintext = 42143a2b9e1d0b354df3264d08f7b6
+Ciphertext = 6e27f212a923b69b5373c01b60f8a9
+
+Cipher = aes-256-ccm
+Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a
+IV = a5c1b146c82c34b2e6ebeceb58
+AAD = 8bc181ce2e66294e803a8dc3834958b5f173bc2123c0726e31f3fca25b622ed6
+Tag = 35061ae3cd892ba63c44b809d6d29421
+Plaintext = a3dcf26327059a4245b79a38bb8db6
+Ciphertext = 8fef3a5a103b27ec5b377c6ed382a9
+
+Cipher = aes-256-ccm
+Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a
+IV = a5c1b146c82c34b2e6ebeceb58
+AAD = c39ec70c2c71633ae0dccc41477ac32e47638c885cf59f34ebd4a096d32f91f9
+Tag = 3c9ae69a4c59ff8e251c2fe022d065a9
+Plaintext = 3d54883449ecca8f153436c25a0a01
+Ciphertext = 1167400d7ed277210bb4d09432051e
+
+Cipher = aes-256-ccm
+Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62
+IV = 121642c4218b391c98e6269c8a
+AAD = 718d13e47522ac4cdf3f828063980b6d452fcdcd6e1a1904bf87f548a5fd5a05
+Tag = 6f9d28fcb64234e1cd793c4144f1da50
+Plaintext = d15f98f2c6d670f55c78a06648332bc9
+Ciphertext = cc17bf8794c843457d899391898ed22a
+
+Cipher = aes-256-ccm
+Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62
+IV = 121642c4218b391c98e6269c8a
+AAD = a371ca29b92ed676bab5dfc4d78631bb6d9bb23a29f822907084a1f0fe17721f
+Tag = 8b55bbe42d8c97504b97c34a5f16e6a6
+Plaintext = 60d55a8d5ab591a51e87fdf6aaa2ad25
+Ciphertext = 7d9d7df808aba2153f76ce016b1f54c6
+
+Cipher = aes-256-ccm
+Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62
+IV = 121642c4218b391c98e6269c8a
+AAD = 01ec87920b42639d4ba22adb1fbe5138d2849db670a2960fd94a399c1532ed75
+Tag = 017d8706acd676ae99e93d5312a4113c
+Plaintext = cbf112e4fb85276c4e09649f3de225b2
+Ciphertext = d6b93591a99b14dc6ff85768fc5fdc51
+
+Cipher = aes-256-ccm
+Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62
+IV = 121642c4218b391c98e6269c8a
+AAD = eebd2bbf1e9f6d817cd8062a6a9680e7f10464eefeb50b07cb46b14b9b3fcb2c
+Tag = 5982f0fe5d951a8c62c87894657301e4
+Plaintext = 865b89aa38ee1b5a3ce56620307e8937
+Ciphertext = 9b13aedf6af028ea1d1455d7f1c370d4
+
+Cipher = aes-256-ccm
+Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62
+IV = 121642c4218b391c98e6269c8a
+AAD = 72863362612f146699f6b2f6ec3688f2ca6cb1505af7a309c91c1933e34d516a
+Tag = 5addfddbb59f4985947fb3a9ab56333e
+Plaintext = a8efc37d1b8b51f2a47b21dd14da383d
+Ciphertext = b5a7e40849956242858a122ad567c1de
+
+Cipher = aes-256-ccm
+Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62
+IV = 121642c4218b391c98e6269c8a
+AAD = 9c9efc6593f96207678db813608f2b8bc33ed1bef974ed77ed7b6e74b621b819
+Tag = b651053516673402a57538db1a9ce7e9
+Plaintext = d9b0eaaff786165f882f41a98dbc0c35
+Ciphertext = c4f8cddaa59825efa9de725e4c01f5d6
+
+Cipher = aes-256-ccm
+Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62
+IV = 121642c4218b391c98e6269c8a
+AAD = dc482a051b58d8a3904d3af37c37b51983f634a504451bbba6f77d71337f8e78
+Tag = 86d772b1a1991b7be6589bbccad36171
+Plaintext = df49d972b6ebbbb18ee975ac635d847e
+Ciphertext = c201fe07e4f58801af18465ba2e07d9d
+
+Cipher = aes-256-ccm
+Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62
+IV = 121642c4218b391c98e6269c8a
+AAD = 51ef065a43caa23faf750b02a41ad6ba701aeb8058f6d8738d6f6b005bec7f60
+Tag = 569387a1a6bcc826e94012670820576e
+Plaintext = 78318aa5cd16699b77bdcea2fc9d1d20
+Ciphertext = 6579add09f085a2b564cfd553d20e4c3
+
+Cipher = aes-256-ccm
+Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62
+IV = 121642c4218b391c98e6269c8a
+AAD = 88e2a74d2920c89c6a101f5f06d0624a6d5eabd9bdb51395ee3983934c55c73d
+Tag = e9c788b4aae9b2c6caf0c44aa9bd2ed0
+Plaintext = 8e20d65d02dd9a64379f75b6d8328f2d
+Ciphertext = 9368f12850c3a9d4166e4641198f76ce
+
+Cipher = aes-256-ccm
+Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62
+IV = 121642c4218b391c98e6269c8a
+AAD = ada3ed7db2dabbfbc441ef68a5656e628d6d5bd6c1574369688497179a77601a
+Tag = f1df0f01944641a1b04d753e6ab8d3cc
+Plaintext = 97e8d8513af41b97801de98cc4269096
+Ciphertext = 8aa0ff2468ea2827a1ecda7b059b6975
+
+Cipher = aes-256-ccm
+Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d
+IV = 98a32d7fe606583e2906420297
+AAD = 217d130408a738e6a833931e69f8696960c817407301560bbe5fbd92361488b4
+Tag = f628ee49a8c2005c7d07d354bf80994d
+Plaintext = b0053d1f490809794250d856062d0aaa92
+Ciphertext = a6341ee3d60eb34a8a8bc2806d50dd57a3
+
+Cipher = aes-256-ccm
+Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d
+IV = 98a32d7fe606583e2906420297
+AAD = 4ae414bc888a42141d3060c71c2dbbffd425b6a952806982271a8e756b3c9e24
+Tag = 3c1c5755a5a240c33b2b890a486aac8b
+Plaintext = 51eb190c6a9f46e8ec1628b090795470c0
+Ciphertext = 47da3af0f599fcdb24cd3266fb04838df1
+
+Cipher = aes-256-ccm
+Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d
+IV = 98a32d7fe606583e2906420297
+AAD = 7b7f78ae1a5ee96fdc49dacd71be1a6ac09a6a162d44dea0172886eca5674e46
+Tag = 4cfca1c19abf447d7bc0898d61885144
+Plaintext = 25144e807e389bb0e45b6dc25558caf61a
+Ciphertext = 33256d7ce13e21832c8077143e251d0b2b
+
+Cipher = aes-256-ccm
+Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d
+IV = 98a32d7fe606583e2906420297
+AAD = 03f31c6143b77f6ad44749e2256306b8bf82242f2821fad4075b09b388ba81ca
+Tag = 229cc7a390867a245dcb7c434f1db347
+Plaintext = dbe1ee14abfe2ecf4edf6db206cf9886ce
+Ciphertext = cdd0cde834f894fc860477646db24f7bff
+
+Cipher = aes-256-ccm
+Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d
+IV = 98a32d7fe606583e2906420297
+AAD = 030390adb572f2bd2a6a4454fd68236cd1d465574328aa001d553375cc63f8a2
+Tag = 5361b539f9fe0fb7842907c2326aef63
+Plaintext = db6df31f12bf552f81deff5fa2a373fc22
+Ciphertext = cd5cd0e38db9ef1c4905e589c9dea40113
+
+Cipher = aes-256-ccm
+Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d
+IV = 98a32d7fe606583e2906420297
+AAD = 7294ae94358669f2ada4b64c125b248df7fe86c6715e3b6a7b9bb2bd99392c8a
+Tag = 8ed10943929e7d7bf798b2ae8371aae5
+Plaintext = ff2a97b49fcc6a50d4549c979d53ccc51f
+Ciphertext = e91bb44800cad0631c8f8641f62e1b382e
+
+Cipher = aes-256-ccm
+Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d
+IV = 98a32d7fe606583e2906420297
+AAD = 4d1513478fc1fb0a18eb6d2a9324fefbd975ecd1b409025de826bc397462acc1
+Tag = f92b9e49ab83f113f8949dc9e4a36e0d
+Plaintext = 73ddfa0185200a890b7690a7e3986d8818
+Ciphertext = 65ecd9fd1a26b0bac3ad8a7188e5ba7529
+
+Cipher = aes-256-ccm
+Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d
+IV = 98a32d7fe606583e2906420297
+AAD = b26a7ff61bfe94864249af7cc9b4a723627dd4463f5a22f0ca6063769522eab7
+Tag = d0e53223adff22a08e3dddf66fff23e3
+Plaintext = 5c7604f9ac8fdf30ee5820e5aeb75b65d7
+Ciphertext = 4a4727053389650326833a33c5ca8c98e6
+
+Cipher = aes-256-ccm
+Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d
+IV = 98a32d7fe606583e2906420297
+AAD = 960f9a85cfbfb6eab223a4139c72ce926a680ea8e8ecc3088cf123de659ad310
+Tag = 33f49a42521a7a2367f91bfcc2180b7c
+Plaintext = d44fdfd9da3a63c1083afe574e91bf01c9
+Ciphertext = c27efc25453cd9f2c0e1e48125ec68fcf8
+
+Cipher = aes-256-ccm
+Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d
+IV = 98a32d7fe606583e2906420297
+AAD = 3718467effb5d5dc009aaefce84d8cb4fe8f80eb608f4c678f5d0de02ea11e59
+Tag = c08bd395c6807223311070659f550934
+Plaintext = bb515dc227abb9acad8fefaa14771bb77b
+Ciphertext = ad607e3eb8ad039f6554f57c7f0acc4a4a
+
+Cipher = aes-256-ccm
+Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c
+IV = f61ef1c8c10a863efeb4a1de86
+AAD = 67874c808600a27fcab34d6f69cc5c730831ad4589075dd82479823cb9b41dc3
+Tag = 52f2210b7a798ad5c778ee7cfd7fe6e0
+Plaintext = 6a26677836d65bd0d35a027d278b2534e7df
+Ciphertext = d1c1f3c60603359c7d6a707f05ecb2296f8e
+
+Cipher = aes-256-ccm
+Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c
+IV = f61ef1c8c10a863efeb4a1de86
+AAD = e0c27cddf919d3092d9a34766c89a5ae6dcf39fe954d1e6f1a70ddf96805def4
+Tag = 0923bb5a347af13df12f234fca5f03ef
+Plaintext = 4021ff104ff1dbd91e46db249fd82198b0a1
+Ciphertext = fbc66bae7f24b595b076a926bdbfb68538f0
+
+Cipher = aes-256-ccm
+Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c
+IV = f61ef1c8c10a863efeb4a1de86
+AAD = 7ae9eca03f616ab39ebb3be26b848842b4aa584e5c8e5695065ad5af34951175
+Tag = d03ed7bffac83e890caceb6903d9cab5
+Plaintext = 6a681f164efce199a787bccff223b8ae1a98
+Ciphertext = d18f8ba87e298fd509b7cecdd0442fb392c9
+
+Cipher = aes-256-ccm
+Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c
+IV = f61ef1c8c10a863efeb4a1de86
+AAD = b47c9bc4eb01c74f5db2e6a293bef80db18c58cf06feef7ee0f8a7a9a51c22bb
+Tag = 4dd8f30870025b2bd1e2a2511574d3e7
+Plaintext = 7861dac338ba3f8274dca04c8c6f92b6d44c
+Ciphertext = c3864e7d086f51cedaecd24eae0805ab5c1d
+
+Cipher = aes-256-ccm
+Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c
+IV = f61ef1c8c10a863efeb4a1de86
+AAD = f6afd661f218c7426b92ee53e65d14898cd0c78a7e594fcc6ac0e3fb5cab1c9c
+Tag = 6046d17f337f3cb49884d94995edbdc9
+Plaintext = a3f0473c620d2739d5ba4f7156f88d0fb669
+Ciphertext = 1817d38252d849757b8a3d73749f1a123e38
+
+Cipher = aes-256-ccm
+Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c
+IV = f61ef1c8c10a863efeb4a1de86
+AAD = d3802911e341577046cfc61d9043b4af059fb4bef3c6a2ff46ccdcb05670af37
+Tag = 5fdc77b43bca254d6459263cdfed8fbb
+Plaintext = 07c535d9456a6ff1e41321150d16dae3f7a3
+Ciphertext = bc22a16775bf01bd4a2353172f714dfe7ff2
+
+Cipher = aes-256-ccm
+Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c
+IV = f61ef1c8c10a863efeb4a1de86
+AAD = db60720db67a60ca286fe744d46173c231fbcc7deb4c9b0d87d52a2247e06b74
+Tag = dd1a1d36c8164c55d55dbf0ff1e9517a
+Plaintext = 5ee220720a896249efdab2ce418318bb5ebf
+Ciphertext = e505b4cc3a5c0c0541eac0cc63e48fa6d6ee
+
+Cipher = aes-256-ccm
+Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c
+IV = f61ef1c8c10a863efeb4a1de86
+AAD = 57f70ba5493265b30491decc726354e2065e7971a2efd56db9cf0f79b1d76859
+Tag = b476e2ca48fd52bec0539b00744a8a07
+Plaintext = 98e4eb0361c8bf40bcbe0539b0850e4c35ff
+Ciphertext = 23037fbd511dd10c128e773b92e29951bdae
+
+Cipher = aes-256-ccm
+Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c
+IV = f61ef1c8c10a863efeb4a1de86
+AAD = 4a29b9ad548964942f87f28ba267ec0d0e8f72c73b3823ee57693dd63c2605c1
+Tag = fad68c62b81d62f2d490ae74f5bb1465
+Plaintext = 7f0745bea62479c0080ecec52e37c1e32d72
+Ciphertext = c4e0d10096f1178ca63ebcc70c5056fea523
+
+Cipher = aes-256-ccm
+Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c
+IV = f61ef1c8c10a863efeb4a1de86
+AAD = acbd2e9911b3218a230d9db5086d91dccac3fc93fc64b0f4a15d56954906b2b7
+Tag = 13b15d8000266c61ba5aec898eb35b52
+Plaintext = e99ed2ac6c38e033061b5d85f3e77dd72518
+Ciphertext = 527946125ced8e7fa82b2f87d180eacaad49
+
+Cipher = aes-256-ccm
+Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f
+IV = 05b50c458adbba16c55fcc454d
+AAD = 89ad6ae1e550975eaa916a62615e6b6a66366a17a7e06380a95ea5cdcc1d3302
+Tag = e3243faec177de4a2e4a293952073e43
+Plaintext = c1a994dc198f5676ea85801cd27cc8f47267ec
+Ciphertext = 7c9b138177590edaafec4728c4663e77458ffb
+
+Cipher = aes-256-ccm
+Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f
+IV = 05b50c458adbba16c55fcc454d
+AAD = dfddb719d00398bf48a6cefd27736389e654a93b8595cd5ac446af1996e0f161
+Tag = 8422f736fc435687634d42254b22fd99
+Plaintext = 791e232bfb42fb18197adc1967da1a83f70168
+Ciphertext = c42ca4769594a3b45c131b2d71c0ec00c0e97f
+
+Cipher = aes-256-ccm
+Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f
+IV = 05b50c458adbba16c55fcc454d
+AAD = 58ef310997dcaf067dd217274921504da6dbf0428a2b48a65fe8a02c616ac306
+Tag = 38a96e68ef7dbaef1b460cc0980eacd4
+Plaintext = 3d4127942459bb8682e662dfc862467582fa68
+Ciphertext = 8073a0c94a8fe32ac78fa5ebde78b0f6b5127f
+
+Cipher = aes-256-ccm
+Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f
+IV = 05b50c458adbba16c55fcc454d
+AAD = 511e5d5e100b595f6b20e791830bca37e23f7b785e482a58405bffe7a632a5b8
+Tag = 5c5c702a82d468929227502e4e35796f
+Plaintext = 0e71863c2962244c7d1a28fc755f0c73e5cbd6
+Ciphertext = b343016147b47ce03873efc86345faf0d223c1
+
+Cipher = aes-256-ccm
+Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f
+IV = 05b50c458adbba16c55fcc454d
+AAD = e48dfaa53b6807ea6f01d8dca67960b9f321f7851f324459a9bf61fe0be73abb
+Tag = 89188c0940182dd99a902d158c5b0810
+Plaintext = e0f1cd013e6aea4fa484fc3fa35d348b1a2399
+Ciphertext = 5dc34a5c50bcb2e3e1ed3b0bb547c2082dcb8e
+
+Cipher = aes-256-ccm
+Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f
+IV = 05b50c458adbba16c55fcc454d
+AAD = c12c0423fe36e4c88775dd00b4af267b85b7dd2a37a742a3156923c8917c97a3
+Tag = 15849acbb7af1892790300bb84fb0558
+Plaintext = b1cc1946b4fc1dbd033254cdf536f61e9f9cd7
+Ciphertext = 0cfe9e1bda2a4511465b93f9e32c009da874c0
+
+Cipher = aes-256-ccm
+Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f
+IV = 05b50c458adbba16c55fcc454d
+AAD = 4255f8af18df7237e0abe98421aec9634443561752d893aaffe76380e829ef32
+Tag = e75aaf3077ac6dfb5454851ec3910de6
+Plaintext = 87284658928208e3bddca83e3ceb13708d88d4
+Ciphertext = 3a1ac105fc54504ff8b56f0a2af1e5f3ba60c3
+
+Cipher = aes-256-ccm
+Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f
+IV = 05b50c458adbba16c55fcc454d
+AAD = ab83567833d2f3461b5fbecc0e366694bb5ea00933b2b3e792ec3aefe20325df
+Tag = e70f42e3e1f2b5bb58433bd11f5dea1f
+Plaintext = bdb79f931ef3035a33bdd1b032fd9de8f6b2ba
+Ciphertext = 008518ce70255bf676d4168424e76b6bc15aad
+
+Cipher = aes-256-ccm
+Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f
+IV = 05b50c458adbba16c55fcc454d
+AAD = bd1446ba3185d1c16551730947c22142142caa8cc1c540e89ab734ec297401bc
+Tag = 564f6248cefe5fc7cfb547c90a558925
+Plaintext = 1f9c3a8eb8bc59f3869e10f73883aa8f8990cb
+Ciphertext = a2aebdd3d66a015fc3f7d7c32e995c0cbe78dc
+
+Cipher = aes-256-ccm
+Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f
+IV = 05b50c458adbba16c55fcc454d
+AAD = b87577755d2d9489194f6f7cfabf267dc3433a9c91954e81beb72c5e06870922
+Tag = b52249d812f7f235afa0732e984e91b2
+Plaintext = 5f28809181f9a889894da8d6fe1fde6cce354a
+Ciphertext = e21a07ccef2ff025cc246fe2e80528eff9dd5d
+
+Cipher = aes-256-ccm
+Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876
+IV = 8479bdfad28ebe781e9c01a3f6
+AAD = 7aebdfd955d6e8a19a701d387447a4bdd59a9382156ab0c0dcd37b89419d6eff
+Tag = 04e2dfeeeac9c3255f6227704848d5b2
+Plaintext = 7b125c3b9612a8b554913d0384f4795c90cd387c
+Ciphertext = 6cc611d816b18c6847b348e46a4119465104254a
+
+Cipher = aes-256-ccm
+Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876
+IV = 8479bdfad28ebe781e9c01a3f6
+AAD = d119f300fbd74e754a200ea2c3f9fabc1466d02078c84245db693eef3f5672a6
+Tag = 38d48329997c5981d678b5e24a6f01b0
+Plaintext = 8b013f5782d5d1af8dbd451a4202866095dac975
+Ciphertext = 9cd572b40276f5729e9f30fdacb7e67a5413d443
+
+Cipher = aes-256-ccm
+Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876
+IV = 8479bdfad28ebe781e9c01a3f6
+AAD = d6204303b86acf62d5ab860ca70161288ede56e3cf017c08dca56fd2d6f8f6fe
+Tag = a77e3ab68e0a73519591a33ed098b758
+Plaintext = b2b1d82a5523b72ea366a680922ed3a4624536c4
+Ciphertext = a56595c9d58093f3b044d3677c9bb3bea38c2bf2
+
+Cipher = aes-256-ccm
+Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876
+IV = 8479bdfad28ebe781e9c01a3f6
+AAD = 8557e22eb4529b43f16b1f8ae47c714ac8a2c827c1408a47704778b4c5b52601
+Tag = cff6c24251c2fb7b8604dfa10c60ef4a
+Plaintext = f8c4eb4285d3d7744da52775bb44ca436a3154f7
+Ciphertext = ef10a6a10570f3a95e87529255f1aa59abf849c1
+
+Cipher = aes-256-ccm
+Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876
+IV = 8479bdfad28ebe781e9c01a3f6
+AAD = 8c1a4187efbb3d38332f608f2c8bbe64247d9afa2281ced56c586ecb4ab7a85e
+Tag = 6c3c39f915d081d34559179869b32d81
+Plaintext = 6e7fe35fa39c937a0e6b3a8c072e218650f42b8d
+Ciphertext = 79abaebc233fb7a71d494f6be99b419c913d36bb
+
+Cipher = aes-256-ccm
+Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876
+IV = 8479bdfad28ebe781e9c01a3f6
+AAD = a41bb1f256228302cd0548ae2148ff42774d18c2d6d3e38b36bc4938da13bac3
+Tag = 9389a6a6a74c6eb0e1f87562469f2082
+Plaintext = 917b467d841850fc6e648f1bc298a7f9f1ee38ca
+Ciphertext = 86af0b9e04bb74217d46fafc2c2dc7e3302725fc
+
+Cipher = aes-256-ccm
+Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876
+IV = 8479bdfad28ebe781e9c01a3f6
+AAD = b0b024e20c4f75a6dad54c21a9edbce846792e957878b1c8ed2d916c757e2b3c
+Tag = 3bed3a2f5dfdbfcc0d7ac26c88d1962c
+Plaintext = 2b4314fe1a6bfa786b7cfc13fbee861b348efbf6
+Ciphertext = 3c97591d9ac8dea5785e89f4155be601f547e6c0
+
+Cipher = aes-256-ccm
+Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876
+IV = 8479bdfad28ebe781e9c01a3f6
+AAD = 42153925c46fc9d5d328312d62f59bb99fdc4ac479a3386d5f88fefd4b32f577
+Tag = 35ea1d99be344fa1467ee91c73bbca67
+Plaintext = e19fa7f83c79920cbff45c41a9dee8fc99e97396
+Ciphertext = f64bea1bbcdab6d1acd629a6476b88e658206ea0
+
+Cipher = aes-256-ccm
+Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876
+IV = 8479bdfad28ebe781e9c01a3f6
+AAD = 37ab2a0b7b69942278e21032fc83eba6cdc34f5285a8b711a08da6acd42299fe
+Tag = 7936ec10a81b36768b606e9a38b2f4c5
+Plaintext = 53e0475cf492b3d39dad600f5c58eb0bd0021554
+Ciphertext = 44340abf7431970e8e8f15e8b2ed8b1111cb0862
+
+Cipher = aes-256-ccm
+Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876
+IV = 8479bdfad28ebe781e9c01a3f6
+AAD = 4a17522da707b4b2587a0ae367a2cd2831bb593a18ef442a7977eda6de045878
+Tag = 11575ae03ea8a57bbe4a67c060367b74
+Plaintext = c119a383d9a3d4bff4270a1d22076b346db5f61c
+Ciphertext = d6cdee605900f062e7057ffaccb20b2eac7ceb2a
+
+Cipher = aes-256-ccm
+Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2
+IV = 94ab51ce75db8b046d6ab92830
+AAD = 2a243246bfe5b5ab05f51bf5f401af52d5bbaa2549cf57a18e197597fe15dd8c
+Tag = 2abeeaef1187f815ca481ed8ddd3dd37
+Plaintext = 73b09d18554471309141aa33b687f9248b50fe3154
+Ciphertext = b7e8264ca70fd2a4fb76f20a8ad5da3c37f5893fb1
+
+Cipher = aes-256-ccm
+Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2
+IV = 94ab51ce75db8b046d6ab92830
+AAD = 0595306eb7441622a49800edee0134492d82320707fceba902af2e0c95fe634a
+Tag = ccc2b55011dbe92ce7619e0ad48b4ccf
+Plaintext = b64d00f3a4df754fa4ee6376922fb67ccce0c6209f
+Ciphertext = 7215bba75694d6dbced93b4fae7d95647045b12e7a
+
+Cipher = aes-256-ccm
+Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2
+IV = 94ab51ce75db8b046d6ab92830
+AAD = bd439dbefec589e120fb4f9825b315bf86523b85c61791cd4da4c8d474ba2714
+Tag = 1e8b1f4d70d8f4c7df4f22847d36b394
+Plaintext = 2b11d1ac74ffe701ec733d32085b1054132726e622
+Ciphertext = ef496af886b444958644650b3409334caf8251e8c7
+
+Cipher = aes-256-ccm
+Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2
+IV = 94ab51ce75db8b046d6ab92830
+AAD = cfebe1cf82267394065bcecfada6709c6c35a3ac835644f560d4c9a8c1848364
+Tag = a85e76a9d07b7b361ca56d53c34cda50
+Plaintext = a88f22424643a523aa3d7d88f4364f1290f49dd0a2
+Ciphertext = 6cd79916b40806b7c00a25b1c8646c0a2c51eade47
+
+Cipher = aes-256-ccm
+Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2
+IV = 94ab51ce75db8b046d6ab92830
+AAD = 7a37255b682766a0bfecf78e5162528885a339174c2a49325739d2bd8877e64f
+Tag = fddb010e7508ad03ad287068ecee6020
+Plaintext = c81427bc84c6a3cfefd4c4cb210fe82212977e1947
+Ciphertext = 0c4c9ce8768d005b85e39cf21d5dcb3aae320917a2
+
+Cipher = aes-256-ccm
+Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2
+IV = 94ab51ce75db8b046d6ab92830
+AAD = 619f2ae80070e278615466a3fd6c9acb7b510c5679bed7038889c77e78d8bd32
+Tag = ddea785e6c470c52c4fdf432fd78b66e
+Plaintext = 28c4d6de3e2ce51b849b135d9cfd3084f0e3155447
+Ciphertext = ec9c6d8acc67468feeac4b64a0af139c4c46625aa2
+
+Cipher = aes-256-ccm
+Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2
+IV = 94ab51ce75db8b046d6ab92830
+AAD = b2571e56f66a857daffbdc99370ceddd4a7bed3867d600cc797000a3b7b57a9d
+Tag = 91232cfbd7ffff252498b35274fb2995
+Plaintext = 4c88151cafef75832bacef43a06e862349d56b67ee
+Ciphertext = 88d0ae485da4d617419bb77a9c3ca53bf5701c690b
+
+Cipher = aes-256-ccm
+Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2
+IV = 94ab51ce75db8b046d6ab92830
+AAD = db409636e3e3bcd606a91aeb7592009896f9ad2c4cc6b7f578e6ad59c0f8fa22
+Tag = 72b2c50e5e391ad104f9ee33b94f2872
+Plaintext = 572855e22ce89bc2bcf09cb15a1765d99973449d61
+Ciphertext = 9370eeb6dea33856d6c7c488664546c125d6339384
+
+Cipher = aes-256-ccm
+Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2
+IV = 94ab51ce75db8b046d6ab92830
+AAD = 62c89a835721207a182968c516dc8be45774ec846e8dcab9ab8611888f2a76a8
+Tag = 2d69c5d6db1b130102af3dae0690673b
+Plaintext = 89ce46b3de3afaf2518d419b1a2ac24cabca269a96
+Ciphertext = 4d96fde72c7159663bba19a22678e154176f519473
+
+Cipher = aes-256-ccm
+Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2
+IV = 94ab51ce75db8b046d6ab92830
+AAD = 33f30ddd83002eea50fd4a8fae39d0980a04160a22ac88b755ac050f1d1f8639
+Tag = 489903365970c2673c9fd457e1077aad
+Plaintext = edf1682a626e9fbf3d57bb260e0876c6f92ba5b114
+Ciphertext = 29a9d37e90253c2b5760e31f325a55de458ed2bff1
+
+Cipher = aes-256-ccm
+Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4
+IV = af1a97d43151f5ea9c48ad36a3
+AAD = f5353fb6bfc8f09d556158132d6cbb97d9045eacdc71f782bcef62d258b1950a
+Tag = 6eef83da9f6384b1a2bda10790dadb3f
+Plaintext = 3cbb08f133270e4454bcaaa0f20f6d63c38b6572e766
+Ciphertext = 3966930a2ae8fdd8f40e7007f3fde0bd6eb48a46e6d2
+
+Cipher = aes-256-ccm
+Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4
+IV = af1a97d43151f5ea9c48ad36a3
+AAD = e3a1555ffe5f34bb43c4a2dae9019b19f1e44a45fb577d495d2a57097612448d
+Tag = 587bdd120a7d08cd3841cb117af444fb
+Plaintext = 946e86795c332031e2d1ee09d3d4a101fb6800d00911
+Ciphertext = 91b31d8245fcd3ad426334aed2262cdf5657efe408a5
+
+Cipher = aes-256-ccm
+Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4
+IV = af1a97d43151f5ea9c48ad36a3
+AAD = 9c5d43c1a1269cde199509a1eff67cc83a1759b71c9e7a6ee99f76b98c6e23a6
+Tag = 45b32f81dcf03e2bcc2aaf62ad366e97
+Plaintext = b76ce2ab0065ba1c0a754494991c8c452cb416f18ab1
+Ciphertext = b2b1795019aa4980aac79e3398ee019b818bf9c58b05
+
+Cipher = aes-256-ccm
+Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4
+IV = af1a97d43151f5ea9c48ad36a3
+AAD = b07452a7900a289b91b2771dfdd5108852536659aa259def7b41e38f80bd03ab
+Tag = fea17d78533bc9e022dbfb460afdf499
+Plaintext = a3e0d8d0784155bfc45769c52711d4fa68e8bc390c20
+Ciphertext = a63d432b618ea62364e5b36226e35924c5d7530d0d94
+
+Cipher = aes-256-ccm
+Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4
+IV = af1a97d43151f5ea9c48ad36a3
+AAD = 6b30f55c3101540523a92380390f3f84632f42962061b2724cde78ac39809397
+Tag = 56defc6dcaeec80b1c639350ab6f1fde
+Plaintext = 6e6a88abbb52a709b47365ad6aa8016fa9a03a9bd834
+Ciphertext = 6bb71350a29d549514c1bf0a6b5a8cb1049fd5afd980
+
+Cipher = aes-256-ccm
+Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4
+IV = af1a97d43151f5ea9c48ad36a3
+AAD = 9fc62d14f8b7a6026509275cff80312ff1ade2b5d9c274cb72a506a571439fc1
+Tag = 9d37b7251fb8c0ef2b37c36d51219d0f
+Plaintext = eba1810d537041821121aeff8e0914ac26a550072c8c
+Ciphertext = ee7c1af64abfb21eb19374588ffb99728b9abf332d38
+
+Cipher = aes-256-ccm
+Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4
+IV = af1a97d43151f5ea9c48ad36a3
+AAD = 6b9389cc42113d639fd2b40cbc732ae0dc7c14513b88b36b45a6ea5a06fe4d2b
+Tag = d279d9da4437c8a2a252436508134c56
+Plaintext = dfc6692cd2442e5ff1f918c8812a27f81d107d16a12f
+Ciphertext = da1bf2d7cb8bddc3514bc26f80d8aa26b02f9222a09b
+
+Cipher = aes-256-ccm
+Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4
+IV = af1a97d43151f5ea9c48ad36a3
+AAD = db72d98d63fc10acff7dceec0e2691a80ecee50a0e957ad166c77952a50318bd
+Tag = 63943543bc1c5f5991ecc5964a288f79
+Plaintext = 9ad338cbfd1b52e6ae4178f05e00062274f8b0b25eae
+Ciphertext = 9f0ea330e4d4a17a0ef3a2575ff28bfcd9c75f865f1a
+
+Cipher = aes-256-ccm
+Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4
+IV = af1a97d43151f5ea9c48ad36a3
+AAD = e98b710c47a4d12a73cd8aa2613fc2910c16f4195ea7f15650132493521d19be
+Tag = 0a49ee2b7ceddcbd28abb24b77d5edee
+Plaintext = 9f5a05db89e0e336da066ce81b79ad9be1d0ec4fb7b8
+Ciphertext = 9a879e20902f10aa7ab4b64f1a8b20454cef037bb60c
+
+Cipher = aes-256-ccm
+Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4
+IV = af1a97d43151f5ea9c48ad36a3
+AAD = 527817316fc48b105f8ab178dd2db1fefa09c50461aa9d8bdf3c03482343bbf9
+Tag = b099a68cfa3572d974e03232e09f37fb
+Plaintext = 58f31e5770070a5d4031fb795dc2d298561d3559960d
+Ciphertext = 5d2e85ac69c8f9c1e08321de5c305f46fb22da6d97b9
+
+Cipher = aes-256-ccm
+Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135
+IV = 3891e308b9f44c5b5a8b59004a
+AAD = 0cda000ed754456a844c9ed61843deea9dadf5e723ea1448057712996d660f8c
+Tag = 6950608d7bcb39dcf03a2cab01587f61
+Plaintext = 79ac1a6a9eca5e07ce635bfd666ef72b16f3f2e140d56c
+Ciphertext = 1abcc9b1649deaa0bfa7dcd23508282d9c50ca7fee7248
+
+Cipher = aes-256-ccm
+Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135
+IV = 3891e308b9f44c5b5a8b59004a
+AAD = 3fb6ddb76809b8e6d703347664ef00a365955124c603900d5c8d4ff476138252
+Tag = 1c4fb40e5c8bc37152a173d4bbb18c3e
+Plaintext = 76d12e3c4c5d990bf563c60aa4999e52998d887f97477f
+Ciphertext = 15c1fde7b60a2dac84a74125f7ff4154132eb0e139e05b
+
+Cipher = aes-256-ccm
+Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135
+IV = 3891e308b9f44c5b5a8b59004a
+AAD = d9fc295082e8f48569eb073ac1b9566246728fc62ccaab4a5667c472c98b2626
+Tag = 019c359008adae3070b5a543ead0effb
+Plaintext = a027c28fbe22111fd4c8a226cfe8531c16d7790d561eca
+Ciphertext = c33711544475a5b8a50c25099c8e8c1a9c744193f8b9ee
+
+Cipher = aes-256-ccm
+Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135
+IV = 3891e308b9f44c5b5a8b59004a
+AAD = 7a459aadb48f1a528edae71fcf698b84ed64dc0e18cc23f27ab47eeabeaf833f
+Tag = bd099ab134756b90746762a92a4a9f7f
+Plaintext = fa597e37c26c38694abdcf450f9edc529160fa0d651979
+Ciphertext = 9949adec383b8cce3b79486a5cf803541bc3c293cbbe5d
+
+Cipher = aes-256-ccm
+Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135
+IV = 3891e308b9f44c5b5a8b59004a
+AAD = 484207909dec4c35929ebe82fcacf20d2af6d850bd69364ebac9557adeadfbd4
+Tag = fa4f6adfec85d055310107ba89198afa
+Plaintext = 9e4c8aa9b58a8eabc5586892f5541000b43f17d9a051a0
+Ciphertext = fd5c59724fdd3a0cb49cefbda632cf063e9c2f470ef684
+
+Cipher = aes-256-ccm
+Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135
+IV = 3891e308b9f44c5b5a8b59004a
+AAD = 88b5448372548e6aab1b262630a28a471d285514703f1bdb10c695850e18fe6d
+Tag = 915d23eb2e952afcc89fbddb567d9d75
+Plaintext = 7d9582cf9e3bb9ee34dce965f56b08e716589486b0641c
+Ciphertext = 1e855114646c0d4945186e4aa60dd7e19cfbac181ec338
+
+Cipher = aes-256-ccm
+Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135
+IV = 3891e308b9f44c5b5a8b59004a
+AAD = 0e71863c2962244c7d1a28fc755f0c73e5cbd630a8dbdeb38842d7795d830d2e
+Tag = aad6c31828314e24198f005955ca8f5e
+Plaintext = 5a387e7cc22491fc556fe6a0c060b4911d01f0c11f801e
+Ciphertext = 3928ada73873255b24ab618f93066b9797a2c85fb1273a
+
+Cipher = aes-256-ccm
+Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135
+IV = 3891e308b9f44c5b5a8b59004a
+AAD = 2aa7a28da38c42fda2e578d9d6340cd8e80b9b32047c3db296d0640d517b0872
+Tag = e531ebbadccfe47182b41904bbfebcfe
+Plaintext = 87946e910059cbaf48df63b220f397049c65ca10cd1920
+Ciphertext = e484bd4afa0e7f08391be49d7395480216c6f28e63be04
+
+Cipher = aes-256-ccm
+Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135
+IV = 3891e308b9f44c5b5a8b59004a
+AAD = 3382051c268891da04e6ca73adcead4029f6a1593be4acfe3968e7351a6a2fb5
+Tag = 7c582414154236c09ee704cf4a5de411
+Plaintext = c62f67d208f1c8ffd5d57df9de15ef54f97fbc07d1630a
+Ciphertext = a53fb409f2a67c58a411fad68d73305273dc84997fc42e
+
+Cipher = aes-256-ccm
+Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135
+IV = 3891e308b9f44c5b5a8b59004a
+AAD = c352828b1920e53bbb60f2ea6a5f15639659e6f3243405c26f6e48628d5519a9
+Tag = 57c9990029c89d1b37988745fa5737a3
+Plaintext = 697e73eaaf562d31bdbf7ce9e78c7426fe1c87e421def9
+Ciphertext = 0a6ea03155019996cc7bfbc6b4eaab2074bfbf7a8f79dd
+
+Cipher = aes-256-ccm
+Key = 4ad98dbef0fb2a188b6c49a859c920967214b998435a00b93d931b5acecaf976
+IV = 00d772b07788536b688ff2b84a
+AAD = 5f8b1400920891e8057639618183c9c847821c1aae79f2a90d75f114db21e975
+Tag = 0f73bfb28ad42aa8f75f549a93594dd4
+Plaintext = 9cea3b061e5c402d48497ea4948d75b8af7746d4e570c848
+Ciphertext = f28ec535c2d834963c85814ec4173c0b8983dff8dc4a2d4e
+
+Cipher = aes-256-ccm
+Key = 4ad98dbef0fb2a188b6c49a859c920967214b998435a00b93d931b5acecaf976
+IV = 00d772b07788536b688ff2b84a
+AAD = 1ae8108f216defea65d9426da8f8746a3ae408e563d62203063d49bf7e0d6bdf
+Tag = 4de907a59c5e4d3f21e1348d7cdf92b6
+Plaintext = 2b223932fb2fd8433e4b1af9e8234a824569a141f6c96a69
+Ciphertext = 4546c70127abacf84a87e513b8b90331639d386dcff38f6f
+
+Cipher = aes-256-ccm
+Key = 4ad98dbef0fb2a188b6c49a859c920967214b998435a00b93d931b5acecaf976
+IV = 00d772b07788536b688ff2b84a
+AAD = 460f08114b1015fe8b7a9b5dd1b9e6a3d28367c4bd15f29b13c02a8cb9a53968
+Tag = ff4239544e2f354d6c6837cd9c23b884
+Plaintext = 4d57cbe4a7e780d4ed17267d5ebc91750c2f0209e0444bd2
+Ciphertext = 233335d77b63f46f99dbd9970e26d8c62adb9b25d97eaed4
+
+Cipher = aes-256-ccm
+Key = 4ad98dbef0fb2a188b6c49a859c920967214b998435a00b93d931b5acecaf976
+IV = 00d772b07788536b688ff2b84a
+AAD = 860f4428259d9c5b17698cc95363db6cfee603258582e3a3e8feb886599d4ac4
+Tag = 3f6c6f7cc494201069344e2d6d41bd9b
+Plaintext = fda8665f87c618646a89c7abdca275fd10c31453ad4b9c99
+Ciphertext = 93cc986c5b426cdf1e4538418c383c4e36378d7f9471799f
+
+Cipher = aes-256-ccm
+Key = 4ad98dbef0fb2a188b6c49a859c920967214b998435a00b93d931b5acecaf976
+IV = 00d772b07788536b688ff2b84a
+AAD = 1b43c482f83780c21583f88e5afcf6938edd20f21b74d895161b60c27a6a42f0
+Tag = 3787a15352cfceb028202c8730beaa7a
+Plaintext = 98104fd3f3413ad1f57ef4912cb50097dca379a58c47b0d2
+Ciphertext = f674b1e02fc54e6a81b20b7b7c2f4924fa57e089b57d55d4
+
+Cipher = aes-256-ccm
+Key = 4ad98dbef0fb2a188b6c49a859c920967214b998435a00b93d931b5acecaf976
+IV = 00d772b07788536b688ff2b84a
+AAD = b082ccd964617c27a5607b7324faad237ee53acfc18c35502dbf7c1937a9dfcb
+Tag = f3a0ca3da647eb31893e867956097983
+Plaintext = b46b343e64d2d70e0bd909dbb3f6bedf7e4adc74321be526
+Ciphertext = da0fca0db856a3b57f15f631e36cf76c58be45580b210020
+
+Cipher = aes-256-ccm
+Key = 4ad98dbef0fb2a188b6c49a859c920967214b998435a00b93d931b5acecaf976
+IV = 00d772b07788536b688ff2b84a
+AAD = b8539ba93ef17254ec1d8d62e8f4eae4d41ee1e75345bf90c9cbb26c63bce501
+Tag = e663fbbebbc251b9f1760afa49e89e71
+Plaintext = 8e12620bb575e6b167b085255b2b5631ff28e04cbef8826d
+Ciphertext = e0769c3869f1920a137c7acf0bb11f82d9dc796087c2676b
+
+Cipher = aes-256-ccm
+Key = 4ad98dbef0fb2a188b6c49a859c920967214b998435a00b93d931b5acecaf976
+IV = 00d772b07788536b688ff2b84a
+AAD = b6b09463b5ef5ead1f17f4021693a0d8452e98dcbb8e7590f9fde6394970a6f8
+Tag = da90cd87e9d9ca5d85430a150e682752
+Plaintext = 792aaa23b923d1b53173fe19853b9aa402a301d48529873e
+Ciphertext = 174e541065a7a50e45bf01f3d5a1d317245798f8bc136238
+
+Cipher = aes-256-ccm
+Key = 4ad98dbef0fb2a188b6c49a859c920967214b998435a00b93d931b5acecaf976
+IV = 00d772b07788536b688ff2b84a
+AAD = 390f6de14d5e1f2f78dbe757c00b89209d0cf8bc48cbbea035779f93de357905
+Tag = fc0cc4601afb61efa7059cfe49ec9dde
+Plaintext = ddc5b4e48970ebd72869be6998e9103c014475e8ae6ea29c
+Ciphertext = b3a14ad755f49f6c5ca54183c873598f27b0ecc49754479a
+
+
+Title = NIST CCM 128 Variable Tag Tests
+
+Cipher = aes-128-ccm
+Key = 43b1a6bc8d0d22d6d1ca95c18593cca5
+IV = 9882578e750b9682c6ca7f8f86
+AAD = 2084f3861c9ad0ccee7c63a7e05aece5db8b34bd8724cc06b4ca99a7f9c4914f
+Tag = a8c74677
+Plaintext = a2b381c7d1545c408fe29817a21dc435a154c87256346b05
+Ciphertext = cc69ed76985e0ed4c8365a72775e5a19bfccc71aeb116c85
+
+Cipher = aes-128-ccm
+Key = 43b1a6bc8d0d22d6d1ca95c18593cca5
+IV = 9882578e750b9682c6ca7f8f86
+AAD = 79db716e6b0b1627890d378c4560eba7871883d94527be3454dc3c257ea93556
+Tag = 676e2df1
+Plaintext = 47f4cdd574264f48716d02d616cf27c759fdf787cdcd43b1
+Ciphertext = 292ea1643d2c1ddc36b9c0b3c38cb9eb4765f8ef70e84431
+
+Cipher = aes-128-ccm
+Key = 43b1a6bc8d0d22d6d1ca95c18593cca5
+IV = 9882578e750b9682c6ca7f8f86
+AAD = 0d02778f90a164a4f9ada9dc7fd24eeb941069621418ef32c3f9ca6bf6fb2c4a
+Tag = eb1321a1
+Plaintext = 5eadeaec29561244ede706b6eb30a1c371d74450a105c3f9
+Ciphertext = 3077865d605c40d0aa33c4d33e733fef6f4f4b381c20c479
+
+Cipher = aes-128-ccm
+Key = 43b1a6bc8d0d22d6d1ca95c18593cca5
+IV = 9882578e750b9682c6ca7f8f86
+AAD = 02e5a1306f612bdec098458cff3e691d93f050ba11ba627355dc7029d2cea5ab
+Tag = dd8cb4ca
+Plaintext = aac9fb69fed114c62db65090947096a2f5c85c271c6a6d53
+Ciphertext = c41397d8b7db46526a6292f54133088eeb50534fa14f6ad3
+
+Cipher = aes-128-ccm
+Key = 43b1a6bc8d0d22d6d1ca95c18593cca5
+IV = 9882578e750b9682c6ca7f8f86
+AAD = 25144e807e389bb0e45b6dc25558caf61a2263869c4d0e4079d07674d7091110
+Tag = b659a844
+Plaintext = fb6e8d38ce38a8c1e710f3a33c682e6dabf055fb33fe75f8
+Ciphertext = 95b4e1898732fa55a0c431c6e92bb041b5685a938edb7278
+
+Cipher = aes-128-ccm
+Key = 43b1a6bc8d0d22d6d1ca95c18593cca5
+IV = 9882578e750b9682c6ca7f8f86
+AAD = be303c1ed9327ad88dae7cb5930b5a786d4f5477ef9370a9fdb56501964cb8fa
+Tag = e9e5e005
+Plaintext = 87d81389a6062e8ed501ea964c2fe35b2d3de9fd676c04f7
+Ciphertext = e9027f38ef0c7c1a92d528f3996c7d7733a5e695da490377
+
+Cipher = aes-128-ccm
+Key = 43b1a6bc8d0d22d6d1ca95c18593cca5
+IV = 9882578e750b9682c6ca7f8f86
+AAD = 46dfb8f3e06c3f168e5ac9b341e7710d7b9c6a19b32389eafb58036de0a27756
+Tag = c9fc48e0
+Plaintext = e1bd9095fa9bb811e4054643feea3eac13fb57b43a0502a0
+Ciphertext = 8f67fc24b391ea85a3d184262ba9a0800d6358dc87200520
+
+Cipher = aes-128-ccm
+Key = 43b1a6bc8d0d22d6d1ca95c18593cca5
+IV = 9882578e750b9682c6ca7f8f86
+AAD = 19eb03c35c352b79e8c32fa40bb9759b0565e04a6c18519ace346e2e9987a250
+Tag = ac73022c
+Plaintext = 92f7dc22dcbbe6420aca303bd586e5a24f4c3ed923a6ebe0
+Ciphertext = fc2db09395b1b4d64d1ef25e00c57b8e51d431b19e83ec60
+
+Cipher = aes-128-ccm
+Key = 43b1a6bc8d0d22d6d1ca95c18593cca5
+IV = 9882578e750b9682c6ca7f8f86
+AAD = efa6ddd6fb8e4480a0f64414694e5f9e7f2e9b97cbe9cd145b65173d072ab001
+Tag = 5dc8d581
+Plaintext = cecdf831c4044c8fe149e4cd579a1aecf222bf8e9dadba09
+Ciphertext = a01794808d0e1e1ba69d26a882d984c0ecbab0e62088bd89
+
+Cipher = aes-128-ccm
+Key = 43b1a6bc8d0d22d6d1ca95c18593cca5
+IV = 9882578e750b9682c6ca7f8f86
+AAD = 1b156d7e2bf7c9a25ad91cff7b0b02161cb78ff9162286b0622fccda2e251c97
+Tag = b941b65b
+Plaintext = 7cfb0973ea13dedc33ef6728db90f47559273ea6d3cd4db6
+Ciphertext = 122165c2a3198c48743ba54d0ed36a5947bf31ce6ee84a36
+
+Cipher = aes-128-ccm
+Key = 44e89189b815b4649c4e9b38c4275a5a
+IV = 374c83e94384061ac01963f88d
+AAD = cd149d17dba7ec50000b8c5390d114697fafb61025301f4e3eaa9f4535718a08
+Tag = 32bc2ffa8600
+Plaintext = 8db6ae1eb959963931d1c5224f29ef50019d2b0db7f5f76f
+Ciphertext = df952dce0f843374d33da94c969eff07b7bc2418ca9ee01e
+
+Cipher = aes-128-ccm
+Key = 44e89189b815b4649c4e9b38c4275a5a
+IV = 374c83e94384061ac01963f88d
+AAD = 463c65fa7becae5605af80d1feca59075ee88c0abfc72cb463312b3c772ec308
+Tag = 8b847d3a0c98
+Plaintext = bde3fc83287ddd1227bdab4305102c94d885412eb332bf6b
+Ciphertext = efc07f539ea0785fc551c72ddca73cc36ea44e3bce59a81a
+
+Cipher = aes-128-ccm
+Key = 44e89189b815b4649c4e9b38c4275a5a
+IV = 374c83e94384061ac01963f88d
+AAD = ab153b0a8933f2eb0d721621c86de0cfe100d13e09654824b09d54277912c79d
+Tag = fb4f9d559a8e
+Plaintext = 82176e573c6070faa08d18b5957f119bb1ff51d744b04240
+Ciphertext = d034ed878abdd5b7426174db4cc801cc07de5ec239db5531
+
+Cipher = aes-128-ccm
+Key = 44e89189b815b4649c4e9b38c4275a5a
+IV = 374c83e94384061ac01963f88d
+AAD = b22aba8d3e9f4b4bf006e26062de15daf94597731a6009129bfd12957877b1ce
+Tag = 1e09ff3d6a6c
+Plaintext = bcfc4485eaf225d945146374b737cdf5301c7738ea9f142a
+Ciphertext = eedfc7555c2f8094a7f80f1a6e80dda2863d782d97f4035b
+
+Cipher = aes-128-ccm
+Key = 44e89189b815b4649c4e9b38c4275a5a
+IV = 374c83e94384061ac01963f88d
+AAD = eb80a43c5986deee6925d7c6d53cbdcbe11194843ea133f72d3590d8e8363efa
+Tag = b60ba1175f1b
+Plaintext = aa182e3ec4fb2f7a905c03582b2ee100ab81a9a311a778bc
+Ciphertext = f83badee72268a3772b06f36f299f1571da0a6b66ccc6fcd
+
+Cipher = aes-128-ccm
+Key = 44e89189b815b4649c4e9b38c4275a5a
+IV = 374c83e94384061ac01963f88d
+AAD = 3ee186594f110fb788a8bf8aa8be5d4ad52d6e3bd5f406f080d9df0d7553a851
+Tag = 4a75860f3dd6
+Plaintext = 8ad6db8216af16bfda3261a220d078cc98c8ad134e4a80ca
+Ciphertext = d8f55852a072b3f238de0dccf967689b2ee9a206332197bb
+
+Cipher = aes-128-ccm
+Key = 44e89189b815b4649c4e9b38c4275a5a
+IV = 374c83e94384061ac01963f88d
+AAD = d36fc18b5b12662ff5f6ea55af7c7a82d25d386220e399a85a590b1505c0dcd5
+Tag = 00cf106d70a4
+Plaintext = a65d24bd1ab92d8d294d654423412860e113c976f12ed76b
+Ciphertext = f47ea76dac6488c0cba1092afaf638375732c6638c45c01a
+
+Cipher = aes-128-ccm
+Key = 44e89189b815b4649c4e9b38c4275a5a
+IV = 374c83e94384061ac01963f88d
+AAD = f0028503e7cd54474c56dc8b2416fe41f416eed73c63ddd141bdd51a0f8fe49c
+Tag = c0193a87ddfb
+Plaintext = 6e9dc61dd9cf19a6eebc10c9b51c13970636de2c9ea33592
+Ciphertext = 3cbe45cd6f12bceb0c507ca76cab03c0b017d139e3c822e3
+
+Cipher = aes-128-ccm
+Key = 44e89189b815b4649c4e9b38c4275a5a
+IV = 374c83e94384061ac01963f88d
+AAD = 9a58a226a578bda012dbd7d04b11c879179aaaa36c6145418586cb103360c6c2
+Tag = 444d9b63ffab
+Plaintext = b526896c11e514b5b4c26351859e2a33800fefd6fd9e6d1a
+Ciphertext = e7050abca738b1f8562e0f3f5c293a64362ee0c380f57a6b
+
+Cipher = aes-128-ccm
+Key = 44e89189b815b4649c4e9b38c4275a5a
+IV = 374c83e94384061ac01963f88d
+AAD = c015fb08540755a8a8adc387d60553478667158964202eb2d25e28efd94c8c76
+Tag = c339ba21fcf7
+Plaintext = 88907b639f3fd07f40bf6b9b6334b11b2852557975721bf3
+Ciphertext = dab3f8b329e27532a25307f5ba83a14c9e735a6c08190c82
+
+Cipher = aes-128-ccm
+Key = 368f35a1f80eaaacd6bb136609389727
+IV = 842a8445847502ea77363a16b6
+AAD = 34396dfcfa6f742aea7040976bd596497a7a6fa4fb85ee8e4ca394d02095b7bf
+Tag = f6d1d897d6051618
+Plaintext = 1cccd55825316a94c5979e049310d1d717cdfb7624289dac
+Ciphertext = 1a58094f0e8c6035a5584bfa8d1009c5f78fd2ca487ff222
+
+Cipher = aes-128-ccm
+Key = 368f35a1f80eaaacd6bb136609389727
+IV = 842a8445847502ea77363a16b6
+AAD = 25865c1b89f1973bfa680d8458df35a56993a7e81e407e061794004068e481ab
+Tag = ceca422687f41550
+Plaintext = 36004342dd74e7966692a848b2c11e1fc311eac9d9cef616
+Ciphertext = 30949f55f6c9ed37065d7db6acc1c60d2353c375b5999998
+
+Cipher = aes-128-ccm
+Key = 368f35a1f80eaaacd6bb136609389727
+IV = 842a8445847502ea77363a16b6
+AAD = e6209480da9e49172ba58a9048f2f1b0349030e8e7a79dcdf295eecd613f401a
+Tag = d2b981fc741f2591
+Plaintext = e81f4fb360bcae372d8be3f32655a29bc10a2f31876173cc
+Ciphertext = ee8b93a44b01a4964d44360d38557a892148068deb361c42
+
+Cipher = aes-128-ccm
+Key = 368f35a1f80eaaacd6bb136609389727
+IV = 842a8445847502ea77363a16b6
+AAD = 112c969882e685b4ae1ee6b67f680e6a1d9d840e627d12118f991c1a3d71314c
+Tag = a1fd47cd41fcf013
+Plaintext = 27d6443e729d35d7a0690fcb7fe0b20892875f60b5d8763a
+Ciphertext = 2142982959203f76c0a6da3561e06a1a72c576dcd98f19b4
+
+Cipher = aes-128-ccm
+Key = 368f35a1f80eaaacd6bb136609389727
+IV = 842a8445847502ea77363a16b6
+AAD = 73ef62870c50faca5d4e6c6ec45fa7b54bf79ed229fcf1fc8c79c9c09596039b
+Tag = 43eb86ffa6958d71
+Plaintext = 6c17ad5496dfccde8b877630e1e582dab52aaabe385a321f
+Ciphertext = 6a837143bd62c67feb48a3ceffe55ac855688302540d5d91
+
+Cipher = aes-128-ccm
+Key = 368f35a1f80eaaacd6bb136609389727
+IV = 842a8445847502ea77363a16b6
+AAD = b537f0f2981405f6069b401966656461b3516a32d181777121a60cea537e7cef
+Tag = 1dfc38975c948d29
+Plaintext = dc4a1e39561f14321238272adff8b74a4e770c0a0c864a52
+Ciphertext = dadec22e7da21e9372f7f2d4c1f86f58ae3525b660d125dc
+
+Cipher = aes-128-ccm
+Key = 368f35a1f80eaaacd6bb136609389727
+IV = 842a8445847502ea77363a16b6
+AAD = 96bd747ccdcd5fa6cd920514a2f38203e82ee9c7ec6e88080e9f6e2a6a812b0d
+Tag = 20a48ee3845d9e7a
+Plaintext = c51958d7d7d39906b14d4ebb574db881355ec3e6b41838dd
+Ciphertext = c38d84c0fc6e93a7d1829b45494d6093d51cea5ad84f5753
+
+Cipher = aes-128-ccm
+Key = 368f35a1f80eaaacd6bb136609389727
+IV = 842a8445847502ea77363a16b6
+AAD = 690d6a2377314fc2f7dd06ae401e3585c79faf648a7af358ae4ef615669222eb
+Tag = 884188f946c9a317
+Plaintext = 9eaf24f84e8818e286410de321d65ffbf25d1a14073c60da
+Ciphertext = 983bf8ef65351243e68ed81d3fd687e9121f33a86b6b0f54
+
+Cipher = aes-128-ccm
+Key = 368f35a1f80eaaacd6bb136609389727
+IV = 842a8445847502ea77363a16b6
+AAD = 748dc83299a43033239ad2fef2dc3d72b76a38ca127607cef72de94a56d5e5c0
+Tag = 0ae2dd33327f8459
+Plaintext = 71c8eb0079559a306e236c49b7ce1b6cfe26c7888733eb7e
+Ciphertext = 775c371752e890910eecb9b7a9cec37e1e64ee34eb6484f0
+
+Cipher = aes-128-ccm
+Key = 368f35a1f80eaaacd6bb136609389727
+IV = 842a8445847502ea77363a16b6
+AAD = 35a49535684637f67573fb0b4fdc1bdd8a57650a1d8f29b866fa552a6e0cdf91
+Tag = c50821a48b93d0ca
+Plaintext = f09569906381138cc49e3fc2384c5d33c34abd3d617c487b
+Ciphertext = f601b587483c192da451ea3c264c8521230894810d2b27f5
+
+Cipher = aes-128-ccm
+Key = 996a09a652fa6c82eae8be7886d7e75e
+IV = a8b3eb68f205a46d8f632c3367
+AAD = c71620d0477c8137b77ec5c72ced4df3a1e987fd9af6b5b10853f0526d876cd5
+Tag = 6d86e69c07f053d1a607
+Plaintext = 84cdd7380f47524b86168ed95386faa402831f22045183d0
+Ciphertext = a7fbf9dd1b099ed3acf6bcbd0b6f7cae57bee99f9d084f82
+
+Cipher = aes-128-ccm
+Key = 996a09a652fa6c82eae8be7886d7e75e
+IV = a8b3eb68f205a46d8f632c3367
+AAD = 7b40b3443d00a0348a060db109e8882157612c43084ac5c3e9c5350c88bc165d
+Tag = 94af9359a96acfb31a4a
+Plaintext = 7ebb051741145a3bad87131553375c6debcbcecee9b79ee4
+Ciphertext = 5d8d2bf2555a96a3876721710bdeda67bef6387370ee52b6
+
+Cipher = aes-128-ccm
+Key = 996a09a652fa6c82eae8be7886d7e75e
+IV = a8b3eb68f205a46d8f632c3367
+AAD = 5cab3b84687070956916c11cab0ceea61adb6ea1f909be63d73df96fbfa3a9f4
+Tag = 36d3920d1012bf093a5c
+Plaintext = 35a29c1bcbe2182f34fe05f09dfb9ac4a496f95819ef11ec
+Ciphertext = 1694b2fedfacd4b71e1e3794c5121ccef1ab0fe580b6ddbe
+
+Cipher = aes-128-ccm
+Key = 996a09a652fa6c82eae8be7886d7e75e
+IV = a8b3eb68f205a46d8f632c3367
+AAD = 6d440b44a069a6967f8750c3b4f8118798fe32d2eaa696ccc7f24e16d6366753
+Tag = c23025c1776811647f99
+Plaintext = a0e21d971876ae4048a61b43a3ac07c685005a20bccbe6ec
+Ciphertext = 83d433720c3862d862462927fb4581ccd03dac9d25922abe
+
+Cipher = aes-128-ccm
+Key = 996a09a652fa6c82eae8be7886d7e75e
+IV = a8b3eb68f205a46d8f632c3367
+AAD = 06904325b8c6fc2b5a0412ba8062cd48d3af51beacb5ced9e2bdf8d0e056b738
+Tag = 6efeeaed29e65f1a8908
+Plaintext = 8d333ed7d4b208e794e1673f6df692caee4e3a00fc49115e
+Ciphertext = ae051032c0fcc47fbe01555b351f14c0bb73ccbd6510dd0c
+
+Cipher = aes-128-ccm
+Key = 996a09a652fa6c82eae8be7886d7e75e
+IV = a8b3eb68f205a46d8f632c3367
+AAD = e5049e1c32f0a000024882e4fca9b77adb6c87fdbad96d0c8e97bdb8f46789dc
+Tag = 70d42f84a5411dfa43f9
+Plaintext = 4189351b5caea375a0299e81c621bf434b6b97da68ad44be
+Ciphertext = 62bf1bfe48e06fed8ac9ace59ec839491e566167f1f488ec
+
+Cipher = aes-128-ccm
+Key = 996a09a652fa6c82eae8be7886d7e75e
+IV = a8b3eb68f205a46d8f632c3367
+AAD = 6f0be1905d1b5b607574ad93a1e7b4a536020fc6798acae862253916a0562707
+Tag = add2256112d1f7d04934
+Plaintext = 5a063a24410b3d265c9a32a027cb2382a52bb8e35db15b98
+Ciphertext = 793014c15545f1be767a00c47f22a588f0164e5ec4e897ca
+
+Cipher = aes-128-ccm
+Key = 996a09a652fa6c82eae8be7886d7e75e
+IV = a8b3eb68f205a46d8f632c3367
+AAD = a90f9f55ef22f5e6c542ed3573a9ab67d9c3b6775587fc2be70817479347ce00
+Tag = e187f5f37e8a5029ca4e
+Plaintext = 0b72cb09a444be2d7b34cf9997fc5b885851d7e6092008b4
+Ciphertext = 2844e5ecb00a72b551d4fdfdcf15dd820d6c215b9079c4e6
+
+Cipher = aes-128-ccm
+Key = 996a09a652fa6c82eae8be7886d7e75e
+IV = a8b3eb68f205a46d8f632c3367
+AAD = 4dd64fd7d8b571704cddabef854c51691ace4c30de74bfecad42eaed65284ebf
+Tag = fbbb92009435f9ab6691
+Plaintext = ce2d996c9a4cf85edb888822773e03179feeb9e4b0928d6a
+Ciphertext = ed1bb7898e0234c6f168ba462fd7851dcad34f5929cb4138
+
+Cipher = aes-128-ccm
+Key = 996a09a652fa6c82eae8be7886d7e75e
+IV = a8b3eb68f205a46d8f632c3367
+AAD = 75f4031d2e5098a9ea3eaa20c2423fbc1705ea18289efb96e311f3fefc153b67
+Tag = 3cae38db7cc9d577b0ed
+Plaintext = aa182e3ec4fb2f7a905c03582b2ee100ab81a9a311a778bc
+Ciphertext = 892e00dbd0b5e3e2babc313c73c7670afebc5f1e88feb4ee
+
+Cipher = aes-128-ccm
+Key = 3ee186594f110fb788a8bf8aa8be5d4a
+IV = 44f705d52acf27b7f17196aa9b
+AAD = 2c16724296ff85e079627be3053ea95adf35722c21886baba343bd6c79b5cb57
+Tag = d6965f5aa6e31302a9cc2b36
+Plaintext = d71864877f2578db092daba2d6a1f9f4698a9c356c7830a1
+Ciphertext = b4dd74e7a0cc51aea45dfb401a41d5822c96901a83247ea0
+
+Cipher = aes-128-ccm
+Key = 3ee186594f110fb788a8bf8aa8be5d4a
+IV = 44f705d52acf27b7f17196aa9b
+AAD = 78230f73f9c0150f630eca4cd679818551d449db82e665d8dc25fc53ebc11293
+Tag = 6356e2548a22e7cbee3b89d4
+Plaintext = 048ba28abb191ded5449dfe9dc7d19f9b132a2a9fd779aab
+Ciphertext = 674eb2ea64f03498f9398f0b109d358ff42eae86122bd4aa
+
+Cipher = aes-128-ccm
+Key = 3ee186594f110fb788a8bf8aa8be5d4a
+IV = 44f705d52acf27b7f17196aa9b
+AAD = c09191a7d2fca98fca486f8843f275a78d57b8c9a6d330d5652ba641f928c6d8
+Tag = 35516f170a2aada38d1d94eb
+Plaintext = adf51386b3cc133ea9d18e679fe4bbf10ea780b7bed57d6a
+Ciphertext = ce3003e66c253a4b04a1de85530497874bbb8c985189336b
+
+Cipher = aes-128-ccm
+Key = 3ee186594f110fb788a8bf8aa8be5d4a
+IV = 44f705d52acf27b7f17196aa9b
+AAD = ea46cc1a7ba5afaa6176f8dedc049283d2ac38fa74ef37ea1fc575328033b222
+Tag = ea2d3237788a02ff15258351
+Plaintext = f660a28551416b2f8e21466ba99daee280a91740d98219cf
+Ciphertext = 95a5b2e58ea8425a23511689657d8294c5b51b6f36de57ce
+
+Cipher = aes-128-ccm
+Key = 3ee186594f110fb788a8bf8aa8be5d4a
+IV = 44f705d52acf27b7f17196aa9b
+AAD = 3093b74eb088bdd59999629d59509920938f4feabbd29df8e0b44364c8b55244
+Tag = 65fb6719509987930d350890
+Plaintext = b9a96f0e4c6dea8861e888bdd693b300017718da958aaa00
+Ciphertext = da6c7f6e9384c3fdcc98d85f1a739f76446b14f57ad6e401
+
+Cipher = aes-128-ccm
+Key = 3ee186594f110fb788a8bf8aa8be5d4a
+IV = 44f705d52acf27b7f17196aa9b
+AAD = 5580672e52aacb9d714a34c31c33fc221e13e8f90849adbad3f6b3bec8571838
+Tag = 8ecdf173444c334cfda5b22b
+Plaintext = cc4acdbd34ec9b7cbc3e23a53e0627c2a7c63206f3e0298d
+Ciphertext = af8fddddeb05b209114e7347f2e60bb4e2da3e291cbc678c
+
+Cipher = aes-128-ccm
+Key = 3ee186594f110fb788a8bf8aa8be5d4a
+IV = 44f705d52acf27b7f17196aa9b
+AAD = c7acf1b17609dc336df1006ffac6497777cdfd497c8c91525377c130accce0bc
+Tag = 2221c860022d92b0f961c3e6
+Plaintext = ed75d28be4794ad81bbc0f26a11c5466f23c0270d2d7b8f8
+Ciphertext = 8eb0c2eb3b9063adb6cc5fc46dfc7810b7200e5f3d8bf6f9
+
+Cipher = aes-128-ccm
+Key = 3ee186594f110fb788a8bf8aa8be5d4a
+IV = 44f705d52acf27b7f17196aa9b
+AAD = ac1adca686e1d129142c49f26b52941d037d8052b8a27d5215b7ffcfd2202481
+Tag = 1c73d6a695afc704228ed7a1
+Plaintext = b8234b8bd34d9c6ceffebbb85722764e7d37e43c495256e0
+Ciphertext = dbe65beb0ca4b519428eeb5a9bc25a38382be813a60e18e1
+
+Cipher = aes-128-ccm
+Key = 3ee186594f110fb788a8bf8aa8be5d4a
+IV = 44f705d52acf27b7f17196aa9b
+AAD = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177
+Tag = bf1e81950e44c63183a679d7
+Plaintext = 790134a8db83f2da35dde832c3ae45ec62aff0274495d6e7
+Ciphertext = 1ac424c8046adbaf98adb8d00f4e699a27b3fc08abc998e6
+
+Cipher = aes-128-ccm
+Key = 3ee186594f110fb788a8bf8aa8be5d4a
+IV = 44f705d52acf27b7f17196aa9b
+AAD = 1340ac7ff04dd7450afc13f8fa52df6d526c744a2dc2f76b0aadf284da270508
+Tag = c2c3a1876e49a47a9b44b737
+Plaintext = 21ea2f778cf37aa02fea30e855c20a77909548da4ee7eb61
+Ciphertext = 422f3f17531a53d5829a600a99222601d58944f5a1bba560
+
+Cipher = aes-128-ccm
+Key = 7b2d52a5186d912cf6b83ace7740ceda
+IV = f47be3a2b019d1beededf5b80c
+AAD = 76cf3522aff97a44b4edd0eef3b81e3ab3cd1ccc93a767a133afd508315f05ed
+Tag = ddb36e37da1ee8a88a77d7f12cc6
+Plaintext = ea384b081f60bb450808e0c20dc2914ae14a320612c3e1e8
+Ciphertext = 79070f33114a980dfd48215051e224dfd01471ac293242af
+
+Cipher = aes-128-ccm
+Key = 7b2d52a5186d912cf6b83ace7740ceda
+IV = f47be3a2b019d1beededf5b80c
+AAD = 41aa11ec55980609482575b97eee172590ff545d5798fd4246313da3fdbbcda6
+Tag = a850b0116f3269b5e44e57de7166
+Plaintext = 811d54bad842a8b92b96fc03b4fff8b5f1939fd3a49876dc
+Ciphertext = 12221081d6688bf1ded63d91e8df4d20c0cddc799f69d59b
+
+Cipher = aes-128-ccm
+Key = 7b2d52a5186d912cf6b83ace7740ceda
+IV = f47be3a2b019d1beededf5b80c
+AAD = dedfb02e93b975270f50cffa3351c85975a7b21fd89bbb921c40c1e5310e6702
+Tag = 0f053627bd0c90714820c4fbe5ec
+Plaintext = 8bbf87b490020b863fc596a8d169d79c0cb3506e1f1f5aa2
+Ciphertext = 1880c38f9e2828ceca85573a8d4962093ded13c424eef9e5
+
+Cipher = aes-128-ccm
+Key = 7b2d52a5186d912cf6b83ace7740ceda
+IV = f47be3a2b019d1beededf5b80c
+AAD = a727ed3d13331ee6a224ae4b73f0ccb04b997fcf88533a1f57e9b055275de92b
+Tag = f865a77d66f1232cd7e36af3d1be
+Plaintext = 7294ae94358669f2ada4b64c125b248df7fe86c6715e3b6a
+Ciphertext = e1abeaaf3bac4aba58e477de4e7b9118c6a0c56c4aaf982d
+
+Cipher = aes-128-ccm
+Key = 7b2d52a5186d912cf6b83ace7740ceda
+IV = f47be3a2b019d1beededf5b80c
+AAD = 6704dc39a259152d2dc3f08b8799ffecf4e1bc38ce5b77c71cc293c6664ef2dd
+Tag = e1fba154f6b166549d0d6bb9b573
+Plaintext = 48033c46389f6221fb9cdda1ecb8fc25fdec6afe4eaa5fd0
+Ciphertext = db3c787d36b541690edc1c33b09849b0ccb22954755bfc97
+
+Cipher = aes-128-ccm
+Key = 7b2d52a5186d912cf6b83ace7740ceda
+IV = f47be3a2b019d1beededf5b80c
+AAD = 6cba004dfb5e5d9e1433bf1223039ae1d2df89cd2db68f550327a22c8f946ae9
+Tag = c485e9e28ae33959f8acbb640fbf
+Plaintext = 01acc909b7d3bb3b3e1f72845f05238d2e1d9162976d3bd2
+Ciphertext = 92938d32b9f99873cb5fb316032596181f43d2c8ac9c9895
+
+Cipher = aes-128-ccm
+Key = 7b2d52a5186d912cf6b83ace7740ceda
+IV = f47be3a2b019d1beededf5b80c
+AAD = dd5799710523aa1da0b1209fab1e6f2ed177444ed3880d462deebbd5f774c621
+Tag = 8ef976fa9bda9544ed94ef266ed2
+Plaintext = 3706def87786e49baec2d13407865286cb4e05908cac430f
+Ciphertext = a4399ac379acc7d35b8210a65ba6e713fa10463ab75de048
+
+Cipher = aes-128-ccm
+Key = 7b2d52a5186d912cf6b83ace7740ceda
+IV = f47be3a2b019d1beededf5b80c
+AAD = 5d7505ff863d218f6822150455b977ad2df3c02be094f6832ee68872b1ae7a01
+Tag = 0caadf1dbd07515e3bfb6992e2cd
+Plaintext = f38d4b225d9b80a0c5fadc61476aef419ad3d18937d8661f
+Ciphertext = 60b20f1953b1a3e830ba1df31b4a5ad4ab8d92230c29c558
+
+Cipher = aes-128-ccm
+Key = 7b2d52a5186d912cf6b83ace7740ceda
+IV = f47be3a2b019d1beededf5b80c
+AAD = 796b62c7abf797de7f6bad8bf5d549688ccb7ada62fff9469c14b08208b07a8a
+Tag = 733ad369e4a067b7976c9d6d0456
+Plaintext = 993bb3a85f67f6c1a809d8094ee80e2ad9b694063af2fdb3
+Ciphertext = 0a04f793514dd5895d49199b12c8bbbfe8e8d7ac01035ef4
+
+Cipher = aes-128-ccm
+Key = 7b2d52a5186d912cf6b83ace7740ceda
+IV = f47be3a2b019d1beededf5b80c
+AAD = 84fd27557aeb283282366083e3586f3a59691ccd0d43ec81c4e5f4e85715eba8
+Tag = 39860d66891f32ce0a09788f5899
+Plaintext = 1286506be19fb865a288b09dda8af4323567cd9a66e08643
+Ciphertext = 81b91450efb59b2d57c8710f86aa41a704398e305d112504
+
+Cipher = aes-128-ccm
+Key = 4189351b5caea375a0299e81c621bf43
+IV = 48c0906930561e0ab0ef4cd972
+AAD = 40a27c1d1e23ea3dbe8056b2774861a4a201cce49f19997d19206d8c8a343951
+Tag = d80e8bf80f4a46cab06d4313f0db9be9
+Plaintext = 4535d12b4377928a7c0a61c9f825a48671ea05910748c8ef
+Ciphertext = 26c56961c035a7e452cce61bc6ee220d77b3f94d18fd10b6
+
+Cipher = aes-128-ccm
+Key = 4189351b5caea375a0299e81c621bf43
+IV = 48c0906930561e0ab0ef4cd972
+AAD = ac8dde7ba60e4ba226eecb0a789b1c4673ddffe8f371464389f52f767004f0a6
+Tag = 96363d27b9e11fee55111b273399f5ff
+Plaintext = 7c0889854658d3408c5d8043aad2f4ae4a89449a36f8a3b8
+Ciphertext = 1ff831cfc51ae62ea29b0791941972254cd0b846294d7be1
+
+Cipher = aes-128-ccm
+Key = 4189351b5caea375a0299e81c621bf43
+IV = 48c0906930561e0ab0ef4cd972
+AAD = 8f2777ec4930f7e349c3bd4830120cebdd896db9d8a33d34f101672024bd737f
+Tag = f741e15ad9b2f5ab864ad94d3f9de562
+Plaintext = c641cf589020b94026ae5ac0bfdc29822cc13862a54614c7
+Ciphertext = a5b1771213628c2e0868dd128117af092a98c4bebaf3cc9e
+
+Cipher = aes-128-ccm
+Key = 4189351b5caea375a0299e81c621bf43
+IV = 48c0906930561e0ab0ef4cd972
+AAD = a87426f83bf91bd3c3556bf859cd97f51c92609879f02dbca9c7ae637a3fbf05
+Tag = 652a083ea1b43b7da026692c7aa796d7
+Plaintext = d204994c128d6204ef2939c22572daa56c12df2e4d3e33e9
+Ciphertext = b1f4210691cf576ac1efbe101bb95c2e6a4b23f2528bebb0
+
+Cipher = aes-128-ccm
+Key = 4189351b5caea375a0299e81c621bf43
+IV = 48c0906930561e0ab0ef4cd972
+AAD = 7ff9ca86f820e4d57995d450611009ffaa726e6fbe4ce1558ca1e775daed9ec2
+Tag = 057e0faa2711cfa1e3da5499f9a1ee0b
+Plaintext = aff9bb0238689255f54cd5fdebe6d3dff5f5604ab8d77038
+Ciphertext = cc090348bb2aa73bdb8a522fd52d5554f3ac9c96a762a861
+
+Cipher = aes-128-ccm
+Key = 4189351b5caea375a0299e81c621bf43
+IV = 48c0906930561e0ab0ef4cd972
+AAD = faa6b7f8c6e076b5e5b981119b7ec2e0b9c73da4064f9704e303d5792f59674b
+Tag = 90b39704d8913391ebd3424117b93b68
+Plaintext = 95d2cf30b6174b17278ad9f44079a2199082dab917f89763
+Ciphertext = f622777a35557e79094c5e267eb2249296db2665084d4f3a
+
+Cipher = aes-128-ccm
+Key = 4189351b5caea375a0299e81c621bf43
+IV = 48c0906930561e0ab0ef4cd972
+AAD = b553e65640c1ad0d2ff748c5b2af9d970c74131cff4fa73384a33dfec056332e
+Tag = d0a6cb58733be0a3b608afdf78eaa70c
+Plaintext = aaa53244520e157c4890a0e62100a12daa84f9be710242d7
+Ciphertext = c9558a0ed14c2012665627341fcb27a6acdd05626eb79a8e
+
+Cipher = aes-128-ccm
+Key = 4189351b5caea375a0299e81c621bf43
+IV = 48c0906930561e0ab0ef4cd972
+AAD = a9be73668b94bc6a212744522a0adff03d49fd495daadaf6cd32f4ca25ebc2b5
+Tag = af20ce64e6a821e39ca96aded43f0875
+Plaintext = 1066b96c3c44301073717520ea5c07adbac7759b88d52154
+Ciphertext = 73960126bf06057e5db7f2f2d4978126bc9e89479760f90d
+
+Cipher = aes-128-ccm
+Key = 4189351b5caea375a0299e81c621bf43
+IV = 48c0906930561e0ab0ef4cd972
+AAD = 8b516c47e6630b2c31d8eefd8ba152d7315582a3f4d3f0e0eb2984a365b434db
+Tag = cf4699d23f5fc6742bffebbd16858f6e
+Plaintext = b5969813d0f892febe64ed52d429cc737b5df8d5e0c63207
+Ciphertext = d666205953baa79090a26a80eae24af87d040409ff73ea5e
+
+
+Title = NIST CCM 192 Variable Tag Tests
+
+Cipher = aes-192-ccm
+Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc
+IV = c6aeebcb146cfafaae66f78aab
+AAD = 7dc8c52144a7cb65b3e5a846e8fd7eae37bf6996c299b56e49144ebf43a1770f
+Tag = 1f2c5bad
+Plaintext = ee7e6075ba52846de5d6254959a18affc4faf59c8ef63489
+Ciphertext = 137d9da59baf5cbfd46620c5f298fc766de10ac68e774edf
+
+Cipher = aes-192-ccm
+Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc
+IV = c6aeebcb146cfafaae66f78aab
+AAD = edb8834974b02fc9ab29b4b3c49683426124e729b44e43cde4ab9bb1b30b5531
+Tag = 24285996
+Plaintext = d05410f42d4759f8cab3884785cf8f60ecbf902e525b92e8
+Ciphertext = 2d57ed240cba812afb038dcb2ef6f9e945a46f7452dae8be
+
+Cipher = aes-192-ccm
+Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc
+IV = c6aeebcb146cfafaae66f78aab
+AAD = 8baf194e81e47a6ca82ca51b488339d014a0a494007793aa5201ac72fc3f808d
+Tag = 6c510570
+Plaintext = db3022ef4cd68ae22b501599448ffe2dda15cfd2e259315c
+Ciphertext = 2633df3f6d2b52301ae01015efb688a4730e3088e2d84b0a
+
+Cipher = aes-192-ccm
+Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc
+IV = c6aeebcb146cfafaae66f78aab
+AAD = c0b55acc7fbfa9d9af6e1f32b6626a1cd89b1c32513b5b50a18ddab028470953
+Tag = b418cfd2
+Plaintext = 7f0745bea62479c0080ecec52e37c1e32d72a6b3864da44a
+Ciphertext = 8204b86e87d9a11239becb49850eb76a846959e986ccde1c
+
+Cipher = aes-192-ccm
+Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc
+IV = c6aeebcb146cfafaae66f78aab
+AAD = 9dc672e64c468242ddeec318c71f9b8cbaa14639eba3c861acfc26463fb7d5d7
+Tag = 3e5b5794
+Plaintext = 263dbe1bd5e9d9b29b316fe36ec8bb10f64543b4921c01f6
+Ciphertext = db3e43cbf4140160aa816a6fc5f1cd995f5ebcee929d7ba0
+
+Cipher = aes-192-ccm
+Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc
+IV = c6aeebcb146cfafaae66f78aab
+AAD = 1798286c37c1504fc0d7402681f6f70711ef506dcc3e29d0183dc578ed976f92
+Tag = f63b4847
+Plaintext = 22dbba2b1a39074ddac736767ebdedc37e4208b233e03b34
+Ciphertext = dfd847fb3bc4df9feb7733fad5849b4ad759f7e833614162
+
+Cipher = aes-192-ccm
+Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc
+IV = c6aeebcb146cfafaae66f78aab
+AAD = ed2898d0bcb34eebf98b5279bc3e8a20214321a7e23bc55b2b7613b1a9b94f2c
+Tag = 7ab29a40
+Plaintext = f0f1235ee88d04de3f3d1489ec6b28b285a6a4fbb344911a
+Ciphertext = 0df2de8ec970dc0c0e8d110547525e3b2cbd5ba1b3c5eb4c
+
+Cipher = aes-192-ccm
+Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc
+IV = c6aeebcb146cfafaae66f78aab
+AAD = 50c4a285d6a4e64efceb288b82e7c8277307cf1eaa4b8b9294f97a1c38926a60
+Tag = 68f40ff6
+Plaintext = 0e50aa6a3079c0b8d61e51c3bd93b592a03719acb9f0252e
+Ciphertext = f35357ba1184186ae7ae544f16aac31b092ce6f6b9715f78
+
+Cipher = aes-192-ccm
+Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc
+IV = c6aeebcb146cfafaae66f78aab
+AAD = b48a16fb9a065d3aeb2bdf1860e4b0f1348c8f13cd00b1729ff8c19e4e9724f3
+Tag = ceeff92c
+Plaintext = 82f39f5207afcfd677a7544579f2b888a1eabdee4e835924
+Ciphertext = 7ff0628226521704461751c9d2cbce0108f142b44e022372
+
+Cipher = aes-192-ccm
+Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc
+IV = c6aeebcb146cfafaae66f78aab
+AAD = d92b80544f29aba52496e2c9a0aa4adeb89820be321cfd2f0a53585a15d04c7f
+Tag = 619c1124
+Plaintext = bc3b08eec6506d1497572f901f0e5f3e9854b40b0f992d08
+Ciphertext = 4138f53ee7adb5c6a6e72a1cb43729b7314f4b510f18575e
+
+Cipher = aes-192-ccm
+Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80
+IV = f5827e51707d8d64bb522985bb
+AAD = 599b12ebd3347a5ad098772c44c49eed954ec27c3ba6206d899ddaabca23a762
+Tag = 8ba1360406f9
+Plaintext = 473b6600559aefb67f7976f0a5cc744fb456efd86f615648
+Ciphertext = 26d2be30e171439d54a0fec291c6024d1de09d61b44f5325
+
+Cipher = aes-192-ccm
+Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80
+IV = f5827e51707d8d64bb522985bb
+AAD = 3a8423feb661db30542dc3cfb596280429397f80755a4bc8d4d941d03b61aacc
+Tag = b5e5938e8c75
+Plaintext = 7edfce3dedd65a8592aec2bfc7a751e2360f3137941fc960
+Ciphertext = 1f36160d593df6aeb9774a8df3ad27e09fb9438e4f31cc0d
+
+Cipher = aes-192-ccm
+Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80
+IV = f5827e51707d8d64bb522985bb
+AAD = 0dc79993047fd6e7260aac4d847fdb4d16483f28b13b5f17330744d401d2875b
+Tag = 94f534b76f0b
+Plaintext = a9fb3ebba43c273cacbf0f7187030c69172f31382e9e059b
+Ciphertext = c812e68b10d78b1787668743b3097a6bbe994381f5b000f6
+
+Cipher = aes-192-ccm
+Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80
+IV = f5827e51707d8d64bb522985bb
+AAD = 6546d9a90e0e763679d5469a1bcffcc4f18f35f50c7714d14c7329b76ce7984e
+Tag = 3c6c025faa1b
+Plaintext = a7573e5b7dd7f4ce9e4480f603c14145a27f7c7a9246a3cf
+Ciphertext = c6bee66bc93c58e5b59d08c437cb37470bc90ec34968a6a2
+
+Cipher = aes-192-ccm
+Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80
+IV = f5827e51707d8d64bb522985bb
+AAD = 7f398ff0d47e2c0fccd8a16cc9e79b4813abac42e346fa33ba033956f798d6ac
+Tag = ae0f88d836be
+Plaintext = 84370557e0bbf74fd0a4533185adfe202d9fa9d622bba72f
+Ciphertext = e5dedd6754505b64fb7ddb03b1a788228429db6ff995a242
+
+Cipher = aes-192-ccm
+Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80
+IV = f5827e51707d8d64bb522985bb
+AAD = d0f46fb37d516cc957aaefd3be2a8bede885330a8edb96f3e5e0ab8cd03a8c59
+Tag = 66d09f64b4c2
+Plaintext = 029575400bd3f2621c7d9ca9b6a09ea6f776968b19dc3f3e
+Ciphertext = 637cad70bf385e4937a4149b82aae8a45ec0e432c2f23a53
+
+Cipher = aes-192-ccm
+Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80
+IV = f5827e51707d8d64bb522985bb
+AAD = 4abaa4260c864572e12553c5aabfe62e4e7038490d4ba160119fc5d646780cc6
+Tag = 677fd479c852
+Plaintext = 448be3821d94452425fae41a06457260a2666e890fa94954
+Ciphertext = 25623bb2a97fe90f0e236c28324f04620bd01c30d4874c39
+
+Cipher = aes-192-ccm
+Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80
+IV = f5827e51707d8d64bb522985bb
+AAD = 686e0578eadd19583291a01e11a29fc95a2c156da100dd85429ad58ba65440c6
+Tag = bbc332573774
+Plaintext = aebfe3e15a876412ec9df714f1afa898e69004c1ef25732b
+Ciphertext = cf563bd1ee6cc839c7447f26c5a5de9a4f267678340b7646
+
+Cipher = aes-192-ccm
+Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80
+IV = f5827e51707d8d64bb522985bb
+AAD = e3d29f970667286a81586aa02bb490c72d8bb3a308eafec5da0d105fddd1a157
+Tag = 33171a8ccec1
+Plaintext = 08b2ce5f7296016e86d02f8c7952d746703ee4f0429b8df3
+Ciphertext = 695b166fc67dad45ad09a7be4d58a144d988964999b5889e
+
+Cipher = aes-192-ccm
+Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80
+IV = f5827e51707d8d64bb522985bb
+AAD = 9e2ea8eb7f56087ee506925648661eeefffd643a056cd4f4fc5cc23172b5c637
+Tag = bc8299cc9f95
+Plaintext = e73d7d23736db17cca816ab2440062a8051177d47feb514e
+Ciphertext = 86d4a513c7861d57e158e280700a14aaaca7056da4c55423
+
+Cipher = aes-192-ccm
+Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38
+IV = cc3c596be884e7caed503315c0
+AAD = 4d6546167b3ed55f01c62bd384e02e1039c0d67ef7abe33291fecb136272f73b
+Tag = 778a299f1224f10c
+Plaintext = 0ff89eff92a530b66684cd75a39481e7e069a7d05e89b692
+Ciphertext = 6ef66a52c866bd5df20ec5096de92167ad83cab0e095ad0c
+
+Cipher = aes-192-ccm
+Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38
+IV = cc3c596be884e7caed503315c0
+AAD = 95722ef5e0cf9f482e4c359f1fd6b9efe2b6e0630413c40285b8958c31188ca4
+Tag = a5c2c6b097a04d50
+Plaintext = b1ea02e3721e44c327443fcf4b424cce19afbb9e8cf06b76
+Ciphertext = d0e4f64e28ddc928b3ce37b3853fec4e5445d6fe32ec70e8
+
+Cipher = aes-192-ccm
+Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38
+IV = cc3c596be884e7caed503315c0
+AAD = f7b76a2a4fe0a1b07a6b193b4600aec02360eb35853d88fe8a4f31a8dda48ad9
+Tag = f62e74c2312f9243
+Plaintext = c1f9c7b2e0ba712b4d2b32e4693b145228213999703767fc
+Ciphertext = a0f7331fba79fcc0d9a13a98a746b4d265cb54f9ce2b7c62
+
+Cipher = aes-192-ccm
+Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38
+IV = cc3c596be884e7caed503315c0
+AAD = 406f39cb77b8d8c63f7797d184b6ebde819af7d48de5003538c022fe96b841ce
+Tag = f1cb228ffd2ff8e6
+Plaintext = ebf3a717546199c6f6b14efe8888613ca7e075e8290b277c
+Ciphertext = 8afd53ba0ea2142d623b468246f5c1bcea0a188897173ce2
+
+Cipher = aes-192-ccm
+Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38
+IV = cc3c596be884e7caed503315c0
+AAD = 3dd3110703a95b05b9b9cff92ab7244e6c6dcb4509522c305d5d33e03f1b0b60
+Tag = 1f38e2d280a8f3ff
+Plaintext = a0e317b790870e6703e6077dfb8ea327c12e29a17107284c
+Ciphertext = c1ede31aca44838c976c0f0135f303a78cc444c1cf1b33d2
+
+Cipher = aes-192-ccm
+Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38
+IV = cc3c596be884e7caed503315c0
+AAD = 044ae4064156b6ebc0921cb2c3c607976339f824d4dc6902eac66910dce086b2
+Tag = afbcf46b4e75bb11
+Plaintext = 8a16990690717dc16eea24da39878a2ee7c1579976e5b173
+Ciphertext = eb186dabcab2f02afa602ca6f7fa2aaeaa2b3af9c8f9aaed
+
+Cipher = aes-192-ccm
+Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38
+IV = cc3c596be884e7caed503315c0
+AAD = 5479cc7f92460ff7a3e500f76d70e3036c44300005058b5517e3f64ad41b46b3
+Tag = fac11c84d08e918e
+Plaintext = 1e7e51f0fa9a33ed618c26f5e37754df0f7de7778882c26c
+Ciphertext = 7f70a55da059be06f5062e892d0af45f42978a17369ed9f2
+
+Cipher = aes-192-ccm
+Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38
+IV = cc3c596be884e7caed503315c0
+AAD = f950e96d65a55efb3be3a55daffb421afad1d5625e3440a16414085469effe1c
+Tag = b50cb871173d9bb8
+Plaintext = 3ef1f4c438dce131990ba536d7a6166022ae7de4a436f87c
+Ciphertext = 5fff0069621f6cda0d81ad4a19dbb6e06f4410841a2ae3e2
+
+Cipher = aes-192-ccm
+Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38
+IV = cc3c596be884e7caed503315c0
+AAD = 52742be3969830ba9c2bce26c98c2fb44ac881ec55c85627b2c94ba17b0de8cf
+Tag = 4ce29627efbc3523
+Plaintext = 3c7b4a68dfb766e24739f14932563fb81f24591f0e31e895
+Ciphertext = 5d75bec58574eb09d3b3f935fc2b9f3852ce347fb02df30b
+
+Cipher = aes-192-ccm
+Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38
+IV = cc3c596be884e7caed503315c0
+AAD = e16e5dc034719e5d815f937b672cf34d5d420a3945c8f73645241779d2bec150
+Tag = 095168ed90827db2
+Plaintext = 03038acd2d8351e4e5aa308e554abfcd0d0334d8f864ec60
+Ciphertext = 620d7e607740dc0f712038f29b371f4d40e959b84678f7fe
+
+Cipher = aes-192-ccm
+Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a
+IV = 15769753f503aa324f4b0e8ee0
+AAD = 1bc05440ee3e34d0f25e90ca1ecbb555d0fb92b311621d171be6f2b719923d23
+Tag = 2ff0bb90a8879812683f
+Plaintext = f5522e3405d9b77cbf3257db2b9675e618e8744a0ee03f0f
+Ciphertext = b9103942dbbb93e15086751c9bb0a3d33112b55f95b7d4f3
+
+Cipher = aes-192-ccm
+Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a
+IV = 15769753f503aa324f4b0e8ee0
+AAD = 25c32770a299020d8500d8a4b5d7621e4379dbd6ef34a9aceefd4055ea6144f5
+Tag = 6982d0796e1bd1cc9879
+Plaintext = c8bf145fcffbafd6cd1a4c5b6cedfe008aacb2528ef51c80
+Ciphertext = 84fd032911998b4b22ae6e9cdccb2835a356734715a2f77c
+
+Cipher = aes-192-ccm
+Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a
+IV = 15769753f503aa324f4b0e8ee0
+AAD = cba0e0140f094e17652ea6f64c26f69dd9429bfefb41aaf104c38f3f6501f4f9
+Tag = fe08edf50e05d4d85faf
+Plaintext = f8813985f59bf284bd3882e899ca9b67fb496f3eb78d7ebe
+Ciphertext = b4c32ef32bf9d619528ca02f29ec4d52d2b3ae2b2cda9542
+
+Cipher = aes-192-ccm
+Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a
+IV = 15769753f503aa324f4b0e8ee0
+AAD = a846d0f56eb963b308ab8f697adca378ab6ccf9f739edcd7f5db197b2ffa99ac
+Tag = 800ae2523c5f161ed96f
+Plaintext = 72862d82d940748d54369e3143192453069b80d10f32e569
+Ciphertext = 3ec43af407225010bb82bcf6f33ff2662f6141c494650e95
+
+Cipher = aes-192-ccm
+Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a
+IV = 15769753f503aa324f4b0e8ee0
+AAD = 1dc5f6d6103ed2ae7f4ecd7b1bae4d5b9c0adef9100527b1737e1cf57f1175ef
+Tag = 34a29547607846bc9834
+Plaintext = 46f2199305ff4e1f21a89d96d3902c54939f52278ba7aa0e
+Ciphertext = 0ab00ee5db9d6a82ce1cbf5163b6fa61ba65933210f041f2
+
+Cipher = aes-192-ccm
+Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a
+IV = 15769753f503aa324f4b0e8ee0
+AAD = 8c28bcb9c31191c347dd64e552af5aff500e6e6f39e866351dd7065501a2837d
+Tag = 95f73957e86152df56bd
+Plaintext = 18c38c41a4e70c3f7362249ea329059b0e026bce7ae976b0
+Ciphertext = 54819b377a8528a29cd60659130fd3ae27f8aadbe1be9d4c
+
+Cipher = aes-192-ccm
+Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a
+IV = 15769753f503aa324f4b0e8ee0
+AAD = 1081afd5bf9f1a87169973ebdca85c2b69598154673d7ca9d6e2f63d52030fc1
+Tag = b2b028cd785f4f964069
+Plaintext = c89e388dd6124c41251e7422b420a71e4618f5cf9f0a63fc
+Ciphertext = 84dc2ffb087068dccaaa56e50406712b6fe234da045d8800
+
+Cipher = aes-192-ccm
+Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a
+IV = 15769753f503aa324f4b0e8ee0
+AAD = 079bc543c966734fa70814139ba8051271ee1c4f701579013c427f8efb141db7
+Tag = fd3ef357e5e69f504c95
+Plaintext = 68449bc3f6c8bd8f3a46a8e147522d979948c88ca791d204
+Ciphertext = 24068cb528aa9912d5f28a26f774fba2b0b209993cc639f8
+
+Cipher = aes-192-ccm
+Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a
+IV = 15769753f503aa324f4b0e8ee0
+AAD = e7094697b78d20174ec3c97a48abcf67c2ba6790b4db5fda82b454becd2a25ef
+Tag = e092ed15d1a074306a9e
+Plaintext = 330088153204c3d5de7744047b60887c8c044e4eeaae4bab
+Ciphertext = 7f429f63ec66e74831c366c3cb465e49a5fe8f5b71f9a057
+
+Cipher = aes-192-ccm
+Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a
+IV = 15769753f503aa324f4b0e8ee0
+AAD = f8d64ce2aa66e67de0f2fa584dec858983333b0570882ab628419bcee541395a
+Tag = afaad39e9183b2970027
+Plaintext = 893c5c45db989bd39485caa05ed700bb17c526b426edf4ba
+Ciphertext = c57e4b3305fabf4e7b31e867eef1d68e3e3fe7a1bdba1f46
+
+Cipher = aes-192-ccm
+Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860
+IV = 6236b01079d180fce156fbaab4
+AAD = 29bdf65b29394d363d5243d4249bad087520f8d733a763daa1356be458d487e5
+Tag = 733013b8ebe5e92b1917640c
+Plaintext = d0e4024d6e33daafc011fe463545ed20f172872f6f33cefa
+Ciphertext = 479f3d408bfa00d1cd1c8bf11a167ce7ae4bcdb011f04e38
+
+Cipher = aes-192-ccm
+Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860
+IV = 6236b01079d180fce156fbaab4
+AAD = 314f069dd4ac5aa3fdc2a74e83daa1d5d18330cd3b90684a9260bb48f5626d49
+Tag = 425a1bad4381dc84fee903e3
+Plaintext = 9ebd994a9af0cb94552ffd749fdd97f75a1ebd0ad3de3a9a
+Ciphertext = 09c6a6477f3911ea582288c3b08e06300527f795ad1dba58
+
+Cipher = aes-192-ccm
+Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860
+IV = 6236b01079d180fce156fbaab4
+AAD = 3aa7f30ac5bfbcb3f8de7c5e76269c608fbc76361d215e78abc0e308ddc3528f
+Tag = efcb43c6aaec88b51d0a378b
+Plaintext = 590a27721a36987d1ffa15f23c6ca5cc556dfcfa6993a2fb
+Ciphertext = ce71187fffff420312f76045133f340b0a54b66517502239
+
+Cipher = aes-192-ccm
+Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860
+IV = 6236b01079d180fce156fbaab4
+AAD = 5630345f662df248886f771b2b77cc0cbdc8fe4cc4a6cde52b1ea4e5d946cebe
+Tag = b9a60374d9304316e2fc50d9
+Plaintext = 65f4b3a00c1c1ef39445a69b2150b034705410140ff9dad0
+Ciphertext = f28f8cade9d5c48d9948d32c0e0321f32f6d5a8b713a5a12
+
+Cipher = aes-192-ccm
+Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860
+IV = 6236b01079d180fce156fbaab4
+AAD = 38ee97f0dc635c7416a024e3af5c95dd1d496db8a5a5c3bcc20b9093ca906dfb
+Tag = 07611163d6b0f1734292ed8c
+Plaintext = 0edea2afaeaf650704d2c6c6622aad82169807c983c17309
+Ciphertext = 99a59da24b66bf7909dfb3714d793c4549a14d56fd02f3cb
+
+Cipher = aes-192-ccm
+Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860
+IV = 6236b01079d180fce156fbaab4
+AAD = ea3b3f3c5b28f7d48af2ccf97083937baccb0a6b1a041080a73b15b9640ccf44
+Tag = edefbcbb51d9d607b7b2e8f8
+Plaintext = b80175a03dff1b10078ded64ed759e5453e3bc0657c68590
+Ciphertext = 2f7a4aadd836c16e0a8098d3c2260f930cdaf69929050552
+
+Cipher = aes-192-ccm
+Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860
+IV = 6236b01079d180fce156fbaab4
+AAD = 287f31e69880823df7798c7970c0e42e600bf567ad78f5d559d0182d570c03cb
+Tag = f2b6d4dc8afae25ff400d73d
+Plaintext = 531c1e721e185f58b2c654b9098ce0c1338bab4149c7bef7
+Ciphertext = c467217ffbd18526bfcb210e26df71066cb2e1de37043e35
+
+Cipher = aes-192-ccm
+Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860
+IV = 6236b01079d180fce156fbaab4
+AAD = 1d4579c9410cc34ade1352ed433e0d4faaaa28200e359bcb4140d35939b3a792
+Tag = 19cd80c1ce0f9ed40f1e9dec
+Plaintext = cead1c5af16ca89bc0821775f8cba8c25620a03dfd27d6f1
+Ciphertext = 59d6235714a572e5cd8f62c2d79839050919eaa283e45633
+
+Cipher = aes-192-ccm
+Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860
+IV = 6236b01079d180fce156fbaab4
+AAD = 3fec0e5cc24d67139437cbc8112414fc8daccd1a94b49a4c76e2d39303547317
+Tag = e53d5aeccfb4a6837b79a625
+Plaintext = be322f58efa7f8c68a635e0b9cce77f28e3f8faaa76fcad4
+Ciphertext = 294910550a6e22b8876e2bbcb39de635d106c535d9ac4a16
+
+Cipher = aes-192-ccm
+Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860
+IV = 6236b01079d180fce156fbaab4
+AAD = ec6857533675b5ed8d4315b0d5f59c826f3ccb2d0bd6f604bd54f7c9542123ce
+Tag = 385e080bf29ae097c328789a
+Plaintext = c222374d366baf2d0301340582aa056c04441ac766065ab1
+Ciphertext = 55590840d3a275530e0c41b2adf994ab5b7d505818c5da73
+
+Cipher = aes-192-ccm
+Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38
+IV = 6ee177d48f59bd37045ec03731
+AAD = 9ef2d0d556d05cf9d1ee9dab9b322a389c75cd4e9dee2c0d08eea961efce8690
+Tag = 3abcdb0563978785bf7fd71c6c1f
+Plaintext = 78168e5cc3cddf4b90d5bc11613465030903e0196f1fe443
+Ciphertext = e2324a6d5643dfc8aea8c08cbbc245494a3dcbcb800c797c
+
+Cipher = aes-192-ccm
+Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38
+IV = 6ee177d48f59bd37045ec03731
+AAD = 6f99d9ce00a4be502a5d2c76a07b914d56f49a1592c1ee2e46e11b3c9da0d083
+Tag = cb0e8ec0879db8ffa59125eac239
+Plaintext = 3c3992cac792e019720d38f768beac3deb6a43e7e1f59f20
+Ciphertext = a61d56fb521ce09a4c70446ab2488c77a85468350ee6021f
+
+Cipher = aes-192-ccm
+Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38
+IV = 6ee177d48f59bd37045ec03731
+AAD = deae66f68bb18178d1bc0734f19fd3ab390049c2ca083a159f5c078fcb4f0a38
+Tag = 664a2d992f7cf821e19bb7d4dff8
+Plaintext = 8eaae72e532943d66ce8250c6b434d299b6afbf8e2b4f8b1
+Ciphertext = 148e231fc6a7435552955991b1b56d63d854d02a0da7658e
+
+Cipher = aes-192-ccm
+Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38
+IV = 6ee177d48f59bd37045ec03731
+AAD = e2d592cb412e65f9044257d78e7491f9f80c8b08102c2d5da20535cef74ad8c8
+Tag = 46a4a816b709a55db450ac249c5c
+Plaintext = 1b8096b79ace8c6ee5dbd8735f1287aa2c94865f382dc2da
+Ciphertext = 81a452860f408ceddba6a4ee85e4a7e06faaad8dd73e5fe5
+
+Cipher = aes-192-ccm
+Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38
+IV = 6ee177d48f59bd37045ec03731
+AAD = 78a292662b8e05abc2d44fbefd0840795e7493028015d9f2aae7b3b7a4634437
+Tag = fbebbdb2e35ebf682f7fe30996bc
+Plaintext = 014f15219463ac22820ba6a1fa04d7f686003ef24004da67
+Ciphertext = 9b6bd11001edaca1bc76da3c20f2f7bcc53e1520af174758
+
+Cipher = aes-192-ccm
+Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38
+IV = 6ee177d48f59bd37045ec03731
+AAD = de6ea86d3641d916c4394fdd31e6a50194993d6ef1d3dfd9fffca20b2f58107d
+Tag = eee137bb5b1e7385aa1bd5d69831
+Plaintext = cc8c855a4c122046916bdcf8089eba3ddb80483e201c7102
+Ciphertext = 56a8416bd99c20c5af16a065d2689a7798be63eccf0fec3d
+
+Cipher = aes-192-ccm
+Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38
+IV = 6ee177d48f59bd37045ec03731
+AAD = 87b937b1d36e8a9ab33a1d3eed617030923acaabc7e620dfcb3c388936030fc6
+Tag = 9b13b729c70e1fa89c43a05a544b
+Plaintext = 3fb7d1f17e7e36d5d4b816cc6db11d1d85848c577fdfe938
+Ciphertext = a59315c0ebf03656eac56a51b7473d57c6baa78590cc7407
+
+Cipher = aes-192-ccm
+Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38
+IV = 6ee177d48f59bd37045ec03731
+AAD = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5f7f1a60cf4e16278
+Tag = 2d900340d90dc4f09a7171d331d6
+Plaintext = 268fe424d6db30f680c10fe2684707a0778069958e9a3bf7
+Ciphertext = bcab201543553075bebc737fb2b127ea34be42476189a6c8
+
+Cipher = aes-192-ccm
+Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38
+IV = 6ee177d48f59bd37045ec03731
+AAD = e13e0c9cef1f86160a75ccb131586370b0edabbf8b3b63f21f3a6fee072dd926
+Tag = e4ad0d90322ed2813a3343029e93
+Plaintext = 9d64de7161895884e7fa3d6e9eb996e7ebe511b01fe19cd4
+Ciphertext = 07401a40f4075807d98741f3444fb6ada8db3a62f0f201eb
+
+Cipher = aes-192-ccm
+Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38
+IV = 6ee177d48f59bd37045ec03731
+AAD = d4cd69b26ea43596278b8caec441fedcf0d729d4e0c27ed1332f48871c96e958
+Tag = 0065601bb59972c35b580852e684
+Plaintext = e4abe343f98a2df09413c3defb85b56a6d34dba305dcce46
+Ciphertext = 7e8f27726c042d73aa6ebf43217395202e0af071eacf5379
+
+Cipher = aes-192-ccm
+Key = a7177fd129674c6c91c1c89f4408139afe187026b8114893
+IV = 31bb28f0e1e63c36ca3959dd18
+AAD = 2529a834668187213f5342a1f3deea0dc2765478c7d71c9c21b9eb1351a5f6cb
+Tag = 380ea23dcffc9574f672bca92e306411
+Plaintext = 2cea0f7304860a4f40a28c8b890db60f3891b9982478495e
+Ciphertext = 5bb7aa6ab9c02a5712d62343fbe61f774e598d6b87545612
+
+Cipher = aes-192-ccm
+Key = a7177fd129674c6c91c1c89f4408139afe187026b8114893
+IV = 31bb28f0e1e63c36ca3959dd18
+AAD = a4dbf26802b2dba1bf828f57618fd197d3e60b6efc9d884f965ce3b43e1dc008
+Tag = b93605b46a8a6a9c7e02cb8feac67af4
+Plaintext = 2baf3d378942bd44f67fb787def50aaf446bf15c56243484
+Ciphertext = 5cf2982e34049d5ca40b184fac1ea3d732a3c5aff5082bc8
+
+Cipher = aes-192-ccm
+Key = a7177fd129674c6c91c1c89f4408139afe187026b8114893
+IV = 31bb28f0e1e63c36ca3959dd18
+AAD = cbd1302c9fffe29fe882838236f64fe9d9ba35db5499e90f0faa35f34c7490f2
+Tag = 82e411c052c0a025ab15767b0242ebf7
+Plaintext = a0639aa4e7a8bda4e9e096d17c1c47d3786010fabe9c72d2
+Ciphertext = d73e3fbd5aee9dbcbb9439190ef7eeab0ea824091db06d9e
+
+Cipher = aes-192-ccm
+Key = a7177fd129674c6c91c1c89f4408139afe187026b8114893
+IV = 31bb28f0e1e63c36ca3959dd18
+AAD = b6112eb8299b28445aca8f72e7170a1cd8bbfee4d2145fbe8d49c6af8831c4d4
+Tag = ab58a892f7142414d3f7cf10925a403a
+Plaintext = e2d78ce5df9284c045b84df33f551211ddccf7bb14cd4529
+Ciphertext = 958a29fc62d4a4d817cce23b4dbebb69ab04c348b7e15a65
+
+Cipher = aes-192-ccm
+Key = a7177fd129674c6c91c1c89f4408139afe187026b8114893
+IV = 31bb28f0e1e63c36ca3959dd18
+AAD = c70a9fb811894b73e445b78db7a931705a181f3a8730341cbb50eaff43572c6e
+Tag = b5b3ce6bae6ecb060289508d6e9212fe
+Plaintext = c3f1e735a6741aa481ad577a98dbac1f03cc80ea0dae1b94
+Ciphertext = b4ac422c1b323abcd3d9f8b2ea3005677504b419ae8204d8
+
+Cipher = aes-192-ccm
+Key = a7177fd129674c6c91c1c89f4408139afe187026b8114893
+IV = 31bb28f0e1e63c36ca3959dd18
+AAD = c7cbda495a7dc1d91837f652a9d084df9b717e99b29bf1ab7f6c17b3341ecd6c
+Tag = a16229a91a2298ffe104f9c032720abb
+Plaintext = db8cd5d76e459afce765e07da98f4ac58231224238c293c7
+Ciphertext = acd170ced303bae4b5114fb5db64e3bdf4f916b19bee8c8b
+
+Cipher = aes-192-ccm
+Key = a7177fd129674c6c91c1c89f4408139afe187026b8114893
+IV = 31bb28f0e1e63c36ca3959dd18
+AAD = 4bd3a656796cb1fa87976f3a93471e33dd1209ce33d7a28aaca4d17c99d78c94
+Tag = b9cacc4fdb44402971a0eee7f1ad90d7
+Plaintext = fd66aebc94f2513b1b9218396b08c63a869b9c4dd0752a91
+Ciphertext = 8a3b0ba529b4712349e6b7f119e36f42f053a8be735935dd
+
+Cipher = aes-192-ccm
+Key = a7177fd129674c6c91c1c89f4408139afe187026b8114893
+IV = 31bb28f0e1e63c36ca3959dd18
+AAD = 448cdd9cbbf863eb666fda36b825f3798827da3c1349611f45605ab734b24498
+Tag = 13306e7f0a61d4b3da372db669321143
+Plaintext = 5831e9a6af0234d051ffd17a14b8e3c8da95067ab767901b
+Ciphertext = 2f6c4cbf124414c8038b7eb266534ab0ac5d3289144b8f57
+
+Cipher = aes-192-ccm
+Key = a7177fd129674c6c91c1c89f4408139afe187026b8114893
+IV = 31bb28f0e1e63c36ca3959dd18
+AAD = f8f04f12174b5205866515ce3775bd8e11d50d8b96142be0c347a773379fb928
+Tag = 09726d3a3d04005dc13629658624d05b
+Plaintext = 248a4969621cf291bec7f0d76d80b7f019d4eb002a22c46a
+Ciphertext = 53d7ec70df5ad289ecb35f1f1f6b1e886f1cdff3890edb26
+
+
+Title = NIST CCM 256 Variable Tag Tests
+
+Cipher = aes-256-ccm
+Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71
+IV = 2e1e0132468500d4bd47862563
+AAD = 3c5f5404370abdcb1edde99de60d0682c600b034e063b7d3237723da70ab7552
+Tag = 3cb9afed
+Plaintext = 239029f150bccbd67edbb67f8ae456b4ea066a4beee065f9
+Ciphertext = 9c8d5dd227fd9f81237601830afee4f0115636c8e5d5fd74
+
+Cipher = aes-256-ccm
+Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71
+IV = 2e1e0132468500d4bd47862563
+AAD = ab91d1aa072947d22f0dc322355a022fe7f0747f4a184b48446bd27999ef01fe
+Tag = 169d7775
+Plaintext = 25a43fd8bf241d67dab9e3c106cd27b71fd45a87b9254a53
+Ciphertext = 9ab94bfbc86549308714543d86d795f3e4840604b210d2de
+
+Cipher = aes-256-ccm
+Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71
+IV = 2e1e0132468500d4bd47862563
+AAD = 4c3bdc6186297896097b3297ba90bcde78dc8a9efe3bd8b10a85eed1bf63a30c
+Tag = b9c2e299
+Plaintext = e63d8303fa5c51550e417e77ec1ec647c9e2a853cab00fee
+Ciphertext = 5920f7208d1d050253ecc98b6c04740332b2f4d0c1859763
+
+Cipher = aes-256-ccm
+Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71
+IV = 2e1e0132468500d4bd47862563
+AAD = 8587324c1ff6712aed8af134744de5df1f88c5d2cb33f4f888af9fd39eb8e813
+Tag = 02f73205
+Plaintext = f27548ec1608d3b8a5bdcbccb7e09cf4b5c29d3661b13a61
+Ciphertext = 4d683ccf614987eff8107c3037fa2eb04e92c1b56a84a2ec
+
+Cipher = aes-256-ccm
+Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71
+IV = 2e1e0132468500d4bd47862563
+AAD = 58820fb68ba1cd73b05a6698b4394ba1b13e8e296480f5afe1154d9b8536007c
+Tag = 4e1dd81b
+Plaintext = ecbd7091732e49c0f4bda2e63235ea43bbf8c8730f955f9c
+Ciphertext = 53a004b2046f1d97a910151ab22f580740a894f004a0c711
+
+Cipher = aes-256-ccm
+Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71
+IV = 2e1e0132468500d4bd47862563
+AAD = f3034031933e7807d47140cf5c7794e42a228a522a83883b0765b57a411bad85
+Tag = 46525bc4
+Plaintext = 3002c6fb49497c7d1d06e1bd4edd57a9e54bbbb74e948c79
+Ciphertext = 8f1fb2d83e08282a40ab5641cec7e5ed1e1be73445a114f4
+
+Cipher = aes-256-ccm
+Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71
+IV = 2e1e0132468500d4bd47862563
+AAD = 05981dc26a1db2d8e2c3d85ea9a4d1dc3432d9edc4795ca03ca4661d2fc35b8c
+Tag = 651844a3
+Plaintext = 214acfb2613b266f2929d43c7666f3a23e61423061cdbec3
+Ciphertext = 9e57bb91167a7238748463c0f67c41e6c5311eb36af8264e
+
+Cipher = aes-256-ccm
+Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71
+IV = 2e1e0132468500d4bd47862563
+AAD = 968a302a27624c304e894633af600c3cc7c614b7da3af0bf2d3f239c7605338a
+Tag = 49fd550d
+Plaintext = 9c575d592a9622c014c1303329757a65a414a9ed0c1b1b3f
+Ciphertext = 234a297a5dd77697496c87cfa96fc8215f44f56e072e83b2
+
+Cipher = aes-256-ccm
+Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71
+IV = 2e1e0132468500d4bd47862563
+AAD = 9011231ec382ecaaae57f34de1ac6bbb50741014a978160ce59c60491e64f30d
+Tag = 4137defa
+Plaintext = 426a4c83793abdcff5e2a99e161785dc27c6168a329ee465
+Ciphertext = fd7738a00e7be998a84f1e62960d3798dc964a0939ab7ce8
+
+Cipher = aes-256-ccm
+Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71
+IV = 2e1e0132468500d4bd47862563
+AAD = 96f0b1edec4ad14407dcaf30ed68942b46c48d58b2dd63af60fccd5bdd48e560
+Tag = 56a4953f
+Plaintext = e04006b68c83a5dd4ceac3cde238e48895ae17728fdc7bbe
+Ciphertext = 5f5d7295fbc2f18a11477431622256cc6efe4bf184e9e333
+
+Cipher = aes-256-ccm
+Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb
+IV = 20442e1c3f3c88919c39978b78
+AAD = 4e0d3aa502bd03fe1761b167c4e0df1d228301d3ebaa4a0281becd813266e255
+Tag = 265867a29eb3
+Plaintext = f0b065da6ecb9ddcab855152d3b4155037adfa758ba96070
+Ciphertext = d6a0f377f7c1b14dcdba729cae5271b027e71cc7850173ec
+
+Cipher = aes-256-ccm
+Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb
+IV = 20442e1c3f3c88919c39978b78
+AAD = aeef2d1e3d3c9920a4fdb5f9d963b88e78a5d0edae531e3b55e702ed609d9a3c
+Tag = 66e89a72dc0e
+Plaintext = f2a8855e34854656df0776e80255ad1d125841c727201509
+Ciphertext = d4b813f3ad8f6ac7b93855267fb3c9fd0212a77529880695
+
+Cipher = aes-256-ccm
+Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb
+IV = 20442e1c3f3c88919c39978b78
+AAD = 3051ffb19862370bc46ca94a8eb906a660d539b18e965583e95acc149190e3e9
+Tag = dff4f6257e06
+Plaintext = 20955a0ca3c9c10d4055406ec12226130ecdaf195b08d65e
+Ciphertext = 0685cca13ac3ed9c266a63a0bcc442f31e8749ab55a0c5c2
+
+Cipher = aes-256-ccm
+Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb
+IV = 20442e1c3f3c88919c39978b78
+AAD = aafa45a107d909756b4a1956d5228b50316fc5852afdeecf401fa2a71aabea46
+Tag = ef0017c9acc1
+Plaintext = 246b60d17ea70deb1380fbf4bd767d88f53069b0f4136511
+Ciphertext = 027bf67ce7ad217a75bfd83ac0901968e57a8f02fabb768d
+
+Cipher = aes-256-ccm
+Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb
+IV = 20442e1c3f3c88919c39978b78
+AAD = ccdeab6a28b1b9e9f0c67116a91f2215b229d0edcd35d696db2bcf54e77db743
+Tag = c73969437912
+Plaintext = 5b735697c5577ee0e352cf6a1495c490d6f7e97c3898f0ee
+Ciphertext = 7d63c03a5c5d5271856deca46973a070c6bd0fce3630e372
+
+Cipher = aes-256-ccm
+Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb
+IV = 20442e1c3f3c88919c39978b78
+AAD = 33a1e7d4820ed6a76a6dab90b4ba830888caf12a262e4eb6d75a505b2207de36
+Tag = d7cb3721fcdd
+Plaintext = 1170416faf81896c7f00815f53c2be5f7246d4794895b4b1
+Ciphertext = 3760d7c2368ba5fd193fa2912e24dabf620c32cb463da72d
+
+Cipher = aes-256-ccm
+Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb
+IV = 20442e1c3f3c88919c39978b78
+AAD = 3df3edd9fc93be9960b5a632e2847b30b10187c8f83de5b45fcb2e3ed475569a
+Tag = 82183448e643
+Plaintext = 556765ffe5c46015cbd8194e32abc41e8f711773e2bcac90
+Ciphertext = 7377f3527cce4c84ade73a804f4da0fe9f3bf1c1ec14bf0c
+
+Cipher = aes-256-ccm
+Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb
+IV = 20442e1c3f3c88919c39978b78
+AAD = 4cb8663a1a934b6b27cbc1ed3040fbb99fbb6812f8ca35ff73cc13feeb483af7
+Tag = 6069901b5e3a
+Plaintext = 3070e269f3e87cd82af3896895a5dd6fbfa9898279e0f73b
+Ciphertext = 166074c46ae250494cccaaa6e843b98fafe36f307748e4a7
+
+Cipher = aes-256-ccm
+Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb
+IV = 20442e1c3f3c88919c39978b78
+AAD = 876df130c01d0b9b8ebe43e71046c365e13124169026876d50d7e155f0299676
+Tag = 6d65c2b005d4
+Plaintext = dd18d40728c561e24e6e54834348dde5683f067baf8df469
+Ciphertext = fb0842aab1cf4d732851774d3eaeb9057875e0c9a125e7f5
+
+Cipher = aes-256-ccm
+Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb
+IV = 20442e1c3f3c88919c39978b78
+AAD = da08b14e1b770b81faaf1e59851df1cba8838cd63bef141340ee378e65fdcbd4
+Tag = 75b37e9fb9e9
+Plaintext = 7064a2491f716f4a2969815e4a281a54690ced9f794b264e
+Ciphertext = 567434e4867b43db4f56a29037ce7eb479460b2d77e335d2
+
+Cipher = aes-256-ccm
+Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61
+IV = daf54faef6e4fc7867624b76f2
+AAD = 7022eaa52c9da821da72d2edd98f6b91dfe474999b75b34699aeb38465f70c1c
+Tag = 8cf050f48c505151
+Plaintext = 28ef408d57930086011b167ac04b866e5b58fe6690a0b9c3
+Ciphertext = 356367c6cee4453658418d9517f7c6faddcd7c65aef46013
+
+Cipher = aes-256-ccm
+Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61
+IV = daf54faef6e4fc7867624b76f2
+AAD = a61b6c1f0293a7c35520abf158a995e5ae59b43ec5f38ff6fd6529970c9f83ac
+Tag = 6bca352f92f383e1
+Plaintext = 1c5ad37d2a55afbc390b27cde0c42d6651fe191239bfaa27
+Ciphertext = 01d6f436b322ea0c6051bc2237786df2d76b9b1107eb73f7
+
+Cipher = aes-256-ccm
+Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61
+IV = daf54faef6e4fc7867624b76f2
+AAD = 0f1c6dffeda98f7a159f9cc61820bfb29910d8eaa41b751a41f9fe5648f02fba
+Tag = 14fd7c84052208d9
+Plaintext = 6efe6652d46a84166d30befe2fbee0795e9475b401eedd60
+Ciphertext = 737241194d1dc1a6346a2511f802a0edd801f7b73fba04b0
+
+Cipher = aes-256-ccm
+Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61
+IV = daf54faef6e4fc7867624b76f2
+AAD = 151110a9ce7e44e5d76d9cad53c1819317527fcd169051f01c6a3efcc06ea999
+Tag = c3ebc7214b9eef31
+Plaintext = 55b791ee495299916ff3c2327b4990952bebd0a2da9acfc5
+Ciphertext = 483bb6a5d025dc2136a959ddacf5d001ad7e52a1e4ce1615
+
+Cipher = aes-256-ccm
+Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61
+IV = daf54faef6e4fc7867624b76f2
+AAD = 0ba1210696d735eebc13b609d0ec33bc740805105dd82f065b82892b931f1e6d
+Tag = eff08182f8a00f13
+Plaintext = 794a86f5b20d344ad86fd5523d08f1864737be57731440c2
+Ciphertext = 64c6a1be2b7a71fa81354ebdeab4b112c1a23c544d409912
+
+Cipher = aes-256-ccm
+Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61
+IV = daf54faef6e4fc7867624b76f2
+AAD = 5a3b71b0fdecce8bd759d3d72321b5c3e882c82627c14e0b59cc8c6d191f243f
+Tag = 6894be1f8fa14538
+Plaintext = efa6ddd6fb8e4480a0f64414694e5f9e7f2e9b97cbe9cd14
+Ciphertext = f22afa9d62f90130f9acdffbbef21f0af9bb1994f5bd14c4
+
+Cipher = aes-256-ccm
+Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61
+IV = daf54faef6e4fc7867624b76f2
+AAD = 5d344c5b94695a66192b6692e420c8eaa3cb482502be837b2a0a91b787fbe48e
+Tag = f4393bca514c3336
+Plaintext = 561dd3bf419ae33ff521a43898cf12c6a5c6163eec22abc1
+Ciphertext = 4b91f4f4d8eda68fac7b3fd74f7352522353943dd2767211
+
+Cipher = aes-256-ccm
+Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61
+IV = daf54faef6e4fc7867624b76f2
+AAD = 08344486df2b2f9a6880a03503a3986c485f067c480c31a51607553b875f91fa
+Tag = b708ffd04c8c2da0
+Plaintext = 6d3596f25401f2e3b099613236f1d88a2f3d8edc1f04bc0c
+Ciphertext = 70b9b1b9cd76b753e9c3fadde14d981ea9a80cdf215065dc
+
+Cipher = aes-256-ccm
+Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61
+IV = daf54faef6e4fc7867624b76f2
+AAD = 9d0824a4dc7e67326c5b68a6ea99cb68298a2af2cc1952351454b038f6270603
+Tag = 1511d7d684d58762
+Plaintext = c563a43e4cc0f93d955432f68287e63400a7fdcae738ba84
+Ciphertext = d8ef8375d5b7bc8dcc0ea919553ba6a086327fc9d96c6354
+
+Cipher = aes-256-ccm
+Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61
+IV = daf54faef6e4fc7867624b76f2
+AAD = c4384069e09a3d4de2c94e7e6055d8a00394e268398d6ea32914097aec37a1f4
+Tag = ef0919c5f5daf093
+Plaintext = 18c5865b414b2a06b4d71ab9550985b4f3c3d7817e8a8d7c
+Ciphertext = 0549a110d83c6fb6ed8d815682b5c5207556558240de54ac
+
+Cipher = aes-256-ccm
+Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374
+IV = b35fb2262edfa14938a0fba03e
+AAD = ba762bbda601d711e2dfc9dbe3003d39df1043ca845612b8e9dc9ff5c5d06ec4
+Tag = 01a4d765bc1c95c90a95
+Plaintext = 6aa6ea668df60b0db85592d0a819c9df9e1099916272aafb
+Ciphertext = 97027de5effd82c58f8dbfb909d7696fbe2d549162629120
+
+Cipher = aes-256-ccm
+Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374
+IV = b35fb2262edfa14938a0fba03e
+AAD = 77a685958ca801dbcbf346d6bac72662d3870899d7bcdef6665d57bacd4e558f
+Tag = 288aecb4c38c2391c21d
+Plaintext = c2992096828325820e2d7acaa17ac789b6830ec3128dd7f9
+Ciphertext = 3f3db715e088ac4a39f557a300b4673996bec3c3129dec22
+
+Cipher = aes-256-ccm
+Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374
+IV = b35fb2262edfa14938a0fba03e
+AAD = 3a54d3e14bbd0549570ef12425c4b36fd25382d56b68e217bc711ab1625fe9bb
+Tag = db4bd2cb1f1222e0d64f
+Plaintext = e5151262cafdd2f4dea187372dacb9e5975065572446f2a5
+Ciphertext = 18b185e1a8f65b3ce979aa5e8c621955b76da8572456c97e
+
+Cipher = aes-256-ccm
+Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374
+IV = b35fb2262edfa14938a0fba03e
+AAD = 5c7604f9ac8fdf30ee5820e5aeb75b65d7855e5d2ff9ccf021640707bf1f53e8
+Tag = 9283c1a61e9113462325
+Plaintext = 1fe786f52daab92a6aa5f43263bed74153d90579a34bceff
+Ciphertext = e24311764fa130e25d7dd95bc27077f173e4c879a35bf524
+
+Cipher = aes-256-ccm
+Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374
+IV = b35fb2262edfa14938a0fba03e
+AAD = 42b8863ea100babc1713654afcf54f21f8bff754223ad70269ace9d034f26a96
+Tag = bd3ffe1b1051ec3206db
+Plaintext = 56c3130c5af210b5bcf7c58b968fc75fc92b9c339efb7aee
+Ciphertext = ab67848f38f9997d8b2fe8e2374167efe91651339eeb4135
+
+Cipher = aes-256-ccm
+Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374
+IV = b35fb2262edfa14938a0fba03e
+AAD = c5a369a8291f4278e797ff11ea5e777d69df3b9c0c32d46150ed4b3e2c3defdd
+Tag = 10d5d255f193b29eb961
+Plaintext = daa716f3cd1e008b46318ec90d976c3fbf88c3ff73cf0052
+Ciphertext = 27038170af15894371e9a3a0ac59cc8f9fb50eff73df3b89
+
+Cipher = aes-256-ccm
+Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374
+IV = b35fb2262edfa14938a0fba03e
+AAD = 63bdceb36a032d3e0e81b4e98ad9861e2c708cef4e870c5b88a87ecc24449be3
+Tag = 4e524729fb06212508e6
+Plaintext = 42477d7d44881dabccfce52efb8a2cc917b182a23b71fb49
+Ciphertext = bfe3eafe26839463fb24c8475a448c79378c4fa23b61c092
+
+Cipher = aes-256-ccm
+Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374
+IV = b35fb2262edfa14938a0fba03e
+AAD = b7f8e7b66726e07c3c73d74135f068bb8025c9da9ba70affb9ed9a69675f0eef
+Tag = 222af86d91fb6a2b09d3
+Plaintext = 07f48cdc12aa27119fbdfda4ec07ce6068c92ba7ba9c9309
+Ciphertext = fa501b5f70a1aed9a865d0cd4dc96ed048f4e6a7ba8ca8d2
+
+Cipher = aes-256-ccm
+Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374
+IV = b35fb2262edfa14938a0fba03e
+AAD = 09891ed14f4488069cd6a5744061e06f8ff8d1bc87b10448b3fbfc1a4e327787
+Tag = 4cddcb65a76c40698017
+Plaintext = e2e7002b769fb5b4201053457158147d99b0d5147f3acac2
+Ciphertext = 1f4397a814943c7c17c87e2cd096b4cdb98d18147f2af119
+
+Cipher = aes-256-ccm
+Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374
+IV = b35fb2262edfa14938a0fba03e
+AAD = 8f9786940943752c536548497f9dae2bd8d677b8bbcb0121a9c9f3c399b62e4b
+Tag = ddb42d504b6fc47d6575
+Plaintext = 86be1d1949fe03b8b80ef7abb3e27394273d7b76d7697f0e
+Ciphertext = 7b1a8a9a2bf58a708fd6dac2122cd3240700b676d77944d5
+
+Cipher = aes-256-ccm
+Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d
+IV = dde2a362ce81b2b6913abc3095
+AAD = 404f5df97ece7431987bc098cce994fc3c063b519ffa47b0365226a0015ef695
+Tag = 2927a053c9244d3217a7ad05
+Plaintext = 7ebef26bf4ecf6f0ebb2eb860edbf900f27b75b4a6340fdb
+Ciphertext = 353022db9c568bd7183a13c40b1ba30fcc768c54264aa2cd
+
+Cipher = aes-256-ccm
+Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d
+IV = dde2a362ce81b2b6913abc3095
+AAD = e9ed05813262fbe769c1104d8ba5c836dbd229a22a681de3565d17ac1129f96b
+Tag = 1c000c9d88f047ca198c4e65
+Plaintext = fdf5a5fb377bb52ad07a971c6a9da3e1a68d279be9ac4ed7
+Ciphertext = b67b754b5fc1c80d23f26f5e6f5df9ee9880de7b69d2e3c1
+
+Cipher = aes-256-ccm
+Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d
+IV = dde2a362ce81b2b6913abc3095
+AAD = f246f1e948c81c98ea13f03dd8eea878449d0c3d5b5fe87c633bbe0106fcb899
+Tag = 5c09878f1a963b795b29f4dd
+Plaintext = e5e6b57e74ce7afbde3697e2a69d61ca615aa3dfd32fe31f
+Ciphertext = ae6865ce1c7407dc2dbe6fa0a35d3bc55f575a3f53514e09
+
+Cipher = aes-256-ccm
+Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d
+IV = dde2a362ce81b2b6913abc3095
+AAD = e4683285695348ff04a61d51d90b868dfe4cf6ea246544727adeaeface571d57
+Tag = 807d196d2628df1c384816f7
+Plaintext = ef2c3a6bb8602d290045854a5f223e6f43bfd0bb9278fa88
+Ciphertext = a4a2eadbd0da500ef3cd7d085ae264607db2295b1206579e
+
+Cipher = aes-256-ccm
+Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d
+IV = dde2a362ce81b2b6913abc3095
+AAD = 42695369dbd69f07b46db282653704c34106aad82efdcc99b452598b5353f904
+Tag = 961c666279394e1e28cf1b02
+Plaintext = beda29c7fe15c73ee5bef96485eb8c9e3cd3ea7ee633ef45
+Ciphertext = f554f97796afba1916360126802bd69102de139e664d4253
+
+Cipher = aes-256-ccm
+Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d
+IV = dde2a362ce81b2b6913abc3095
+AAD = 58c3ce3906633475441229cfcdf05e02ff3738ae8d1b255974f431b3309ed41e
+Tag = 64efe624dd6c6f8b8cdc76e3
+Plaintext = 419c96ba8142b27e3377716358c97a8a636d7fe8403165e1
+Ciphertext = 0a12460ae9f8cf59c0ff89215d0920855d608608c04fc8f7
+
+Cipher = aes-256-ccm
+Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d
+IV = dde2a362ce81b2b6913abc3095
+AAD = a9c06d8029f8da31629c3a6ddceb6009220a69fc614af1c231ae8702b3a85d6e
+Tag = 0ef4b71970b9f80087533cf7
+Plaintext = 69bb441a7640f77e124d66af45a0e9f646658a838dfcb957
+Ciphertext = 223594aa1efa8a59e1c59eed4060b3f9786873630d821441
+
+Cipher = aes-256-ccm
+Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d
+IV = dde2a362ce81b2b6913abc3095
+AAD = a92e88edd297da8c7089e21822b3e6cffd6837c78b975c8413fd6cca1b99bcb0
+Tag = 6e27dfbf1ff7f08d1b213848
+Plaintext = a45b755658d38bdea57d1faae21d75428a17f2c74a33d2d5
+Ciphertext = efd5a5e63069f6f956f5e7e8e7dd2f4db41a0b27ca4d7fc3
+
+Cipher = aes-256-ccm
+Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d
+IV = dde2a362ce81b2b6913abc3095
+AAD = 421533453c8129fc8e681c68b9d7371adb0a19442ede7accd185129fcb7db648
+Tag = a48d1a0b815139fa28652d94
+Plaintext = 2c3e28b61cede08121e80ee08c4f1f19dabb19add9d2dc8a
+Ciphertext = 67b0f80674579da6d260f6a2898f4516e4b6e04d59ac719c
+
+Cipher = aes-256-ccm
+Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d
+IV = dde2a362ce81b2b6913abc3095
+AAD = 55351bc7ddbc6b668d435088f1f9cf6f53caae16d4292b14bc0deec20f393ba0
+Tag = 1301c87a2a94df147c8cce4c
+Plaintext = 81fa7fd41ba267bcbdf024cef1543b041cadd96b62a7cf1f
+Ciphertext = ca74af6473181a9b4e78dc8cf494610b22a0208be2d96209
+
+Cipher = aes-256-ccm
+Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c
+IV = 21ff892b743d661189e205c7f3
+AAD = f1e0af185180d2eb63e50e37ba692647cac2c6a149d70c81dbd34685ed78feaa
+Tag = 5f82c828413643b8794494cb5236
+Plaintext = 138ee53b1914d3322c2dd0a4e02faab2236555131d5eea08
+Ciphertext = 5b2f3026f30fdd50accc40ddd093b7997f23d7c6d3c8bc42
+
+Cipher = aes-256-ccm
+Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c
+IV = 21ff892b743d661189e205c7f3
+AAD = 45c5c284836414407268d7c8a89a0146759cfc92242004027d58d0828fad74e7
+Tag = 6db5c92de5fb3aafba9537795e17
+Plaintext = fe3df84ee9b237f9edd77a5b8af96bc3e184579ac9c6e246
+Ciphertext = b69c2d5303a9399b6d36ea22ba4576e8bdc2d54f0750b40c
+
+Cipher = aes-256-ccm
+Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c
+IV = 21ff892b743d661189e205c7f3
+AAD = a41ea42692eac0914fef35e58409007342cef027de141223ffb46da7f58df034
+Tag = 1af6cf931ac943fd3affa6ad6fd1
+Plaintext = e0f5c02f9f84e57fada3f3575f1b1a748f360e0ea781b7b8
+Ciphertext = a8541532759feb1d2d42632e6fa7075fd3708cdb6917e1f2
+
+Cipher = aes-256-ccm
+Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c
+IV = 21ff892b743d661189e205c7f3
+AAD = 17dae00f2a9417780ecfef98f290a5ca9b17c873a9149cd81c18bd33164a0405
+Tag = 38a3f09c56ae653be49b355fb938
+Plaintext = 3a77a2ec5a1be6cbfbbfaab3e65427cb38d6798b132ff5c7
+Ciphertext = 72d677f1b000e8a97b5e3acad6e83ae06490fb5eddb9a38d
+
+Cipher = aes-256-ccm
+Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c
+IV = 21ff892b743d661189e205c7f3
+AAD = 33b44873a7a1e5b0fdbb7e7347623e4fa1ccd937feb26fda2749b42f00744e50
+Tag = 974deec7ce2e1f296890bee795cb
+Plaintext = d0628b26019dad84de628d9dabf42cfb195165a369c22b49
+Ciphertext = 98c35e3beb86a3e65e831de49b4831d04517e776a7547d03
+
+Cipher = aes-256-ccm
+Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c
+IV = 21ff892b743d661189e205c7f3
+AAD = f4fc5acff75d404849675b813cf7adcaeb8f3d56cb9a54a083f8ec07feb666bb
+Tag = 98a3bc56f900bee7e8271c6dab22
+Plaintext = 10b5ec41036e4bc5d61728e8811b520b7080c2177c122cbd
+Ciphertext = 5814395ce97545a756f6b891b1a74f202cc640c2b2847af7
+
+Cipher = aes-256-ccm
+Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c
+IV = 21ff892b743d661189e205c7f3
+AAD = ba051d1bc19b9a27520834fa3977b6413a319c9a52c8785e3e9594bd4265d911
+Tag = e6623d80c677633a9e4f999bb885
+Plaintext = 648a84813ca97aef4ab7e143ee29acb946388660f18eb671
+Ciphertext = 2c2b519cd6b2748dca56713ade95b1921a7e04b53f18e03b
+
+Cipher = aes-256-ccm
+Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c
+IV = 21ff892b743d661189e205c7f3
+AAD = f5c629299d18901c8c34c42e8fc29a70c377c160fdea4a6068a36867707575f7
+Tag = c65b88ff4fdd9b8187f7d71ba04b
+Plaintext = 3ead49ed0b41de79c829098d034b666bce052d79bf1f56db
+Ciphertext = 760c9cf0e15ad01b48c899f433f77b409243afac71890091
+
+Cipher = aes-256-ccm
+Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c
+IV = 21ff892b743d661189e205c7f3
+AAD = da486fd2953a72838e67e1909ed4042df67c355b648a45bcd2cc1ba610659e76
+Tag = 727c3404564ed41528973d389c7c
+Plaintext = 4543457c8fdf463c4bf8515a762cdc83d9aaa887d3eaa2af
+Ciphertext = 0de2906165c4485ecb19c1234690c1a885ec2a521d7cf4e5
+
+Cipher = aes-256-ccm
+Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c
+IV = 21ff892b743d661189e205c7f3
+AAD = a0b1d3600f6eba910a11537d61fa12184959f1c3ae386570cbbc9106f7a7ba07
+Tag = 46ecb536703a7a97928f80fcc7cf
+Plaintext = 22071ef5d204417f99bc2faf53ecc4c6cf795e77805633ee
+Ciphertext = 6aa6cbe8381f4f1d195dbfd66350d9ed933fdca24ec065a4
+
+Cipher = aes-256-ccm
+Key = 60823b64e0b2da3a7eb772bd5941c534e6ff94ea96b564e2b38f82c78bb54522
+IV = 48526f1bffc97dd65e42906983
+AAD = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a
+Tag = 63ddd56464aed6d0613159d1aa181dcb
+Plaintext = a8be794613835c4366e75817d228438f011a2ec8a86f9797
+Ciphertext = cc3efe04d84a4ec5cb6a6c28dc2c2d386a359d9550dbdec9
+
+Cipher = aes-256-ccm
+Key = 60823b64e0b2da3a7eb772bd5941c534e6ff94ea96b564e2b38f82c78bb54522
+IV = 48526f1bffc97dd65e42906983
+AAD = b3ff11e57eeab41bc597622c770c9eea333e178d5bd5689c6a30011187a965b8
+Tag = 7c1273765bc5bfdeca429cc8ebd8aca2
+Plaintext = 7590769380dc91832da023798dfdd447b9f7adaa09d7e2d0
+Ciphertext = 1110f1d14b158305802d174683f9baf0d2d81ef7f163ab8e
+
+Cipher = aes-256-ccm
+Key = 60823b64e0b2da3a7eb772bd5941c534e6ff94ea96b564e2b38f82c78bb54522
+IV = 48526f1bffc97dd65e42906983
+AAD = 2a953a081c5d52bc500c9c12f56cd2aab5c920d73098335baa5d947100cb3411
+Tag = 886229c09b986bee3a8a3025c150d3a3
+Plaintext = 30e4de5e8c275677f8f4f7bbf9d101f96b38d79968ea028c
+Ciphertext = 5464591c47ee44f15579c384f7d56f4e001764c4905e4bd2
+
+Cipher = aes-256-ccm
+Key = 60823b64e0b2da3a7eb772bd5941c534e6ff94ea96b564e2b38f82c78bb54522
+IV = 48526f1bffc97dd65e42906983
+AAD = 99cc9d1b3db79640dfdc4423af3ded03c329f7ba5b6b509269c10e59519053b8
+Tag = 80cd04041918c4071ea5ac263f36c544
+Plaintext = 852698f6ab4aa794b3d657c4a2ca7b9c8bfb5fc9b4ad0aca
+Ciphertext = e1a61fb46083b5121e5b63fbacce152be0d4ec944c194394
+
+Cipher = aes-256-ccm
+Key = 60823b64e0b2da3a7eb772bd5941c534e6ff94ea96b564e2b38f82c78bb54522
+IV = 48526f1bffc97dd65e42906983
+AAD = b76aef71eaf03c2d0dc0623e90596fcb0bc4dbbed1d5bb24c8af37d778863e5b
+Tag = f001d6002eafaec49c472acdfaedf1de
+Plaintext = cd337fcf362d301d66916c7097bdeb31df8206e00f7ac106
+Ciphertext = a9b3f88dfde4229bcb1c584f99b98586b4adb5bdf7ce8858
+
+Cipher = aes-256-ccm
+Key = 60823b64e0b2da3a7eb772bd5941c534e6ff94ea96b564e2b38f82c78bb54522
+IV = 48526f1bffc97dd65e42906983
+AAD = 42a718d892e229a1807b74bd730fb15500ac4a790392100aef362cd7628d5806
+Tag = 75d86cde91b6610496c3bb5276238741
+Plaintext = 0041a0cf48fcf870b21db6107cfd9ef91e409afc7562ffa7
+Ciphertext = 64c1278d8335eaf61f90822f72f9f04e756f29a18dd6b6f9
+
+Cipher = aes-256-ccm
+Key = 60823b64e0b2da3a7eb772bd5941c534e6ff94ea96b564e2b38f82c78bb54522
+IV = 48526f1bffc97dd65e42906983
+AAD = e788c98ae85b11b3ae884eed6f3b8f5bcf5ab1b7b20ad3f44f760b2287cc5793
+Tag = db7d9f10e75d1b213beae0e0230dd82b
+Plaintext = fcc74ef1908dbcab9b05c76ee5a9941cdef933d433c0d25f
+Ciphertext = 9847c9b35b44ae2d3688f351ebadfaabb5d68089cb749b01
+
+Cipher = aes-256-ccm
+Key = 60823b64e0b2da3a7eb772bd5941c534e6ff94ea96b564e2b38f82c78bb54522
+IV = 48526f1bffc97dd65e42906983
+AAD = d330fc1ca406dd9528e9281aa1a3cdf013b698c14a4e55371e7539c9f6867dd4
+Tag = c63ba64291e73e6349ed089a53564291
+Plaintext = 611dade00cec14743be4e035cafe7507df5fb94b278875b1
+Ciphertext = 059d2aa2c72506f29669d40ac4fa1bb0b4700a16df3c3cef
+
+Cipher = aes-256-ccm
+Key = 60823b64e0b2da3a7eb772bd5941c534e6ff94ea96b564e2b38f82c78bb54522
+IV = 48526f1bffc97dd65e42906983
+AAD = 06bbadd5d22d1796d88415d7a4b024313f243bd0f58aafc75bb554a691d7e54f
+Tag = ac4d7bd964a2f9e2303df688dd0513da
+Plaintext = b67b5dd7f90ecd48a45853cb193e0d9702d78898f07e831d
+Ciphertext = d2fbda9532c7dfce09d567f4173a632069f83bc508caca43
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpciph.txt b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpciph.txt
new file mode 100644
index 000000000..1c02ea1e9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpciph.txt
@@ -0,0 +1,2606 @@
+#
+# Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# Tests start with one of these keywords
+# Cipher Decrypt Derive Digest Encoding KDF MAC PBE
+# PrivPubKeyPair Sign Verify VerifyRecover
+# and continue until a blank line. Lines starting with a pound sign,
+# like this prolog, are ignored.
+
+
+# DES EDE3 CFB1
+# echo -n "Hello World" |
+# apps/openssl enc -des-ede3-cfb1 \
+# -K 000102030405060708090A0B0C0D0E0F1011121314151617 -iv 0001020304050607 |
+# xxd -ps -u
+
+Title = DES Tests (various sources)
+
+Cipher = DES-EDE3-CFB1
+Key = 000102030405060708090A0B0C0D0E0F1011121314151617
+IV = 0001020304050607
+Plaintext = "Hello World"
+Ciphertext = 3CF55D656E9C0664513358
+
+Cipher = DES-EDE3-CFB1
+Key = 000102030405060708090A0B0C0D0E0F1011121314151617
+IV = 0001020304050607
+Operation = DECRYPT
+Plaintext = "Hello World"
+Ciphertext = 3CF55D656E9C0664513358
+
+Cipher = DESX-CBC
+Key = 0123456789abcdeff1e0d3c2b5a49786fedcba9876543210
+IV = fedcba9876543210
+Plaintext = 37363534333231204E6F77206973207468652074696D6520666F722000000000
+Ciphertext = 846B2914851E9A2954732F8AA0A611C115CDC2D7951B1053A63C5E03B21AA3C4
+
+# DES EDE3 CBC tests (from destest)
+Cipher = DES-EDE3-CBC
+Key = 0123456789abcdeff1e0d3c2b5a49786fedcba9876543210
+IV = fedcba9876543210
+Plaintext = 37363534333231204E6F77206973207468652074696D6520666F722000000000
+Ciphertext = 3FE301C962AC01D02213763C1CBD4CDC799657C064ECF5D41C673812CFDE9675
+
+# DES ECB tests (from destest)
+
+Cipher = DES-ECB
+Key = 0000000000000000
+Plaintext = 0000000000000000
+Ciphertext = 8CA64DE9C1B123A7
+
+Cipher = DES-ECB
+Key = FFFFFFFFFFFFFFFF
+Plaintext = FFFFFFFFFFFFFFFF
+Ciphertext = 7359B2163E4EDC58
+
+Cipher = DES-ECB
+Key = 3000000000000000
+Plaintext = 1000000000000001
+Ciphertext = 958E6E627A05557B
+
+Cipher = DES-ECB
+Key = 1111111111111111
+Plaintext = 1111111111111111
+Ciphertext = F40379AB9E0EC533
+
+Cipher = DES-ECB
+Key = 0123456789ABCDEF
+Plaintext = 1111111111111111
+Ciphertext = 17668DFC7292532D
+
+Cipher = DES-ECB
+Key = 1111111111111111
+Plaintext = 0123456789ABCDEF
+Ciphertext = 8A5AE1F81AB8F2DD
+
+Cipher = DES-ECB
+Key = FEDCBA9876543210
+Plaintext = 0123456789ABCDEF
+Ciphertext = ED39D950FA74BCC4
+
+Title = AES (from FIPS-197 test vectors)
+
+Cipher = AES-128-ECB
+Key = 000102030405060708090A0B0C0D0E0F
+Operation = ENCRYPT
+Plaintext = 00112233445566778899AABBCCDDEEFF
+Ciphertext = 69C4E0D86A7B0430D8CDB78070B4C55A
+
+# AES 192 ECB tests (from FIPS-197 test vectors, encrypt)
+
+Cipher = AES-192-ECB
+Key = 000102030405060708090A0B0C0D0E0F1011121314151617
+Operation = ENCRYPT
+Plaintext = 00112233445566778899AABBCCDDEEFF
+Ciphertext = DDA97CA4864CDFE06EAF70A0EC0D7191
+
+
+# AES 256 ECB tests (from FIPS-197 test vectors, encrypt)
+
+Cipher = AES-256-ECB
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
+Operation = ENCRYPT
+Plaintext = 00112233445566778899AABBCCDDEEFF
+Ciphertext = 8EA2B7CA516745BFEAFC49904B496089
+
+
+# AES 128 ECB tests (from NIST test vectors, encrypt)
+
+#AES-128-ECB:00000000000000000000000000000000::00000000000000000000000000000000:C34C052CC0DA8D73451AFE5F03BE297F:1
+
+# AES 128 ECB tests (from NIST test vectors, decrypt)
+
+#AES-128-ECB:00000000000000000000000000000000::44416AC2D1F53C583303917E6BE9EBE0:00000000000000000000000000000000:0
+
+# AES 192 ECB tests (from NIST test vectors, decrypt)
+
+#AES-192-ECB:000000000000000000000000000000000000000000000000::48E31E9E256718F29229319C19F15BA4:00000000000000000000000000000000:0
+
+# AES 256 ECB tests (from NIST test vectors, decrypt)
+
+#AES-256-ECB:0000000000000000000000000000000000000000000000000000000000000000::058CCFFDBBCB382D1F6F56585D8A4ADE:00000000000000000000000000000000:0
+
+# AES 128 CBC tests (from NIST test vectors, encrypt)
+
+#AES-128-CBC:00000000000000000000000000000000:00000000000000000000000000000000:00000000000000000000000000000000:8A05FC5E095AF4848A08D328D3688E3D:1
+
+# AES 192 CBC tests (from NIST test vectors, encrypt)
+
+#AES-192-CBC:000000000000000000000000000000000000000000000000:00000000000000000000000000000000:00000000000000000000000000000000:7BD966D53AD8C1BB85D2ADFAE87BB104:1
+
+# AES 256 CBC tests (from NIST test vectors, encrypt)
+
+#AES-256-CBC:0000000000000000000000000000000000000000000000000000000000000000:00000000000000000000000000000000:00000000000000000000000000000000:FE3C53653E2F45B56FCD88B2CC898FF0:1
+
+# AES 128 CBC tests (from NIST test vectors, decrypt)
+
+#AES-128-CBC:00000000000000000000000000000000:00000000000000000000000000000000:FACA37E0B0C85373DF706E73F7C9AF86:00000000000000000000000000000000:0
+
+# AES tests from NIST document SP800-38A
+# For all ECB encrypts and decrypts, the transformed sequence is
+# AES-bits-ECB:key::plaintext:ciphertext:encdec
+# ECB-AES128.Encrypt and ECB-AES128.Decrypt
+
+Title = AES tests from NIST document SP800-38A
+
+Cipher = AES-128-ECB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = 3AD77BB40D7A3660A89ECAF32466EF97
+
+Cipher = AES-128-ECB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = F5D3D58503B9699DE785895A96FDBAAF
+
+Cipher = AES-128-ECB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 43B1CD7F598ECE23881B00E3ED030688
+
+Cipher = AES-128-ECB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 7B0C785E27E8AD3F8223207104725DD4
+
+# ECB-AES192.Encrypt and ECB-AES192.Decrypt
+Cipher = AES-192-ECB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = BD334F1D6E45F25FF712A214571FA5CC
+
+Cipher = AES-192-ECB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 974104846D0AD3AD7734ECB3ECEE4EEF
+
+Cipher = AES-192-ECB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = EF7AFD2270E2E60ADCE0BA2FACE6444E
+
+Cipher = AES-192-ECB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 9A4B41BA738D6C72FB16691603C18E0E
+
+# ECB-AES256.Encrypt and ECB-AES256.Decrypt
+Cipher = AES-256-ECB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = F3EED1BDB5D2A03C064B5A7E3DB181F8
+
+Cipher = AES-256-ECB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 591CCB10D410ED26DC5BA74A31362870
+
+Cipher = AES-256-ECB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = B6ED21B99CA6F4F9F153E7B1BEAFED1D
+
+Cipher = AES-256-ECB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 23304B7A39F9F3FF067D8D8F9E24ECC7
+
+# For all CBC encrypts and decrypts, the transformed sequence is
+# AES-bits-CBC:key:IV/ciphertext':plaintext:ciphertext:encdec
+# CBC-AES128.Encrypt and CBC-AES128.Decrypt
+Cipher = AES-128-CBC
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 000102030405060708090A0B0C0D0E0F
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = 7649ABAC8119B246CEE98E9B12E9197D
+
+Cipher = AES-128-CBC
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 7649ABAC8119B246CEE98E9B12E9197D
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 5086CB9B507219EE95DB113A917678B2
+
+Cipher = AES-128-CBC
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 5086CB9B507219EE95DB113A917678B2
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 73BED6B8E3C1743B7116E69E22229516
+
+Cipher = AES-128-CBC
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 73BED6B8E3C1743B7116E69E22229516
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 3FF1CAA1681FAC09120ECA307586E1A7
+
+# CBC-AES192.Encrypt and CBC-AES192.Decrypt
+Cipher = AES-192-CBC
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 000102030405060708090A0B0C0D0E0F
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = 4F021DB243BC633D7178183A9FA071E8
+
+Cipher = AES-192-CBC
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 4F021DB243BC633D7178183A9FA071E8
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = B4D9ADA9AD7DEDF4E5E738763F69145A
+
+Cipher = AES-192-CBC
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = B4D9ADA9AD7DEDF4E5E738763F69145A
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 571B242012FB7AE07FA9BAAC3DF102E0
+
+Cipher = AES-192-CBC
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 571B242012FB7AE07FA9BAAC3DF102E0
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 08B0E27988598881D920A9E64F5615CD
+
+# CBC-AES256.Encrypt and CBC-AES256.Decrypt
+Cipher = AES-256-CBC
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 000102030405060708090A0B0C0D0E0F
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = F58C4C04D6E5F1BA779EABFB5F7BFBD6
+
+Cipher = AES-256-CBC
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = F58C4C04D6E5F1BA779EABFB5F7BFBD6
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 9CFC4E967EDB808D679F777BC6702C7D
+
+Cipher = AES-256-CBC
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 9CFC4E967EDB808D679F777BC6702C7D
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 39F23369A9D9BACFA530E26304231461
+
+Cipher = AES-256-CBC
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 39F23369A9D9BACFA530E26304231461
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = B2EB05E2C39BE9FCDA6C19078C6A9D1B
+
+# We don't support CFB{1,8}-AESxxx.{En,De}crypt
+# For all CFB128 encrypts and decrypts, the transformed sequence is
+# AES-bits-CFB:key:IV/ciphertext':plaintext:ciphertext:encdec
+# CFB128-AES128.Encrypt
+Cipher = AES-128-CFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = ENCRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = 3B3FD92EB72DAD20333449F8E83CFB4A
+
+Cipher = AES-128-CFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 3B3FD92EB72DAD20333449F8E83CFB4A
+Operation = ENCRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = C8A64537A0B3A93FCDE3CDAD9F1CE58B
+
+Cipher = AES-128-CFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = C8A64537A0B3A93FCDE3CDAD9F1CE58B
+Operation = ENCRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 26751F67A3CBB140B1808CF187A4F4DF
+
+Cipher = AES-128-CFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 26751F67A3CBB140B1808CF187A4F4DF
+Operation = ENCRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = C04B05357C5D1C0EEAC4C66F9FF7F2E6
+
+# CFB128-AES128.Decrypt
+Cipher = AES-128-CFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = DECRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = 3B3FD92EB72DAD20333449F8E83CFB4A
+
+Cipher = AES-128-CFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 3B3FD92EB72DAD20333449F8E83CFB4A
+Operation = DECRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = C8A64537A0B3A93FCDE3CDAD9F1CE58B
+
+Cipher = AES-128-CFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = C8A64537A0B3A93FCDE3CDAD9F1CE58B
+Operation = DECRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 26751F67A3CBB140B1808CF187A4F4DF
+
+Cipher = AES-128-CFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 26751F67A3CBB140B1808CF187A4F4DF
+Operation = DECRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = C04B05357C5D1C0EEAC4C66F9FF7F2E6
+
+# CFB128-AES192.Encrypt
+Cipher = AES-192-CFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = ENCRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = CDC80D6FDDF18CAB34C25909C99A4174
+
+Cipher = AES-192-CFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = CDC80D6FDDF18CAB34C25909C99A4174
+Operation = ENCRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 67CE7F7F81173621961A2B70171D3D7A
+
+Cipher = AES-192-CFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 67CE7F7F81173621961A2B70171D3D7A
+Operation = ENCRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 2E1E8A1DD59B88B1C8E60FED1EFAC4C9
+
+Cipher = AES-192-CFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 2E1E8A1DD59B88B1C8E60FED1EFAC4C9
+Operation = ENCRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = C05F9F9CA9834FA042AE8FBA584B09FF
+
+# CFB128-AES192.Decrypt
+Cipher = AES-192-CFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = DECRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = CDC80D6FDDF18CAB34C25909C99A4174
+
+Cipher = AES-192-CFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = CDC80D6FDDF18CAB34C25909C99A4174
+Operation = DECRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 67CE7F7F81173621961A2B70171D3D7A
+
+Cipher = AES-192-CFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 67CE7F7F81173621961A2B70171D3D7A
+Operation = DECRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 2E1E8A1DD59B88B1C8E60FED1EFAC4C9
+
+Cipher = AES-192-CFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 2E1E8A1DD59B88B1C8E60FED1EFAC4C9
+Operation = DECRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = C05F9F9CA9834FA042AE8FBA584B09FF
+
+# CFB128-AES256.Encrypt
+Cipher = AES-256-CFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = ENCRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = DC7E84BFDA79164B7ECD8486985D3860
+
+Cipher = AES-256-CFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = DC7E84BFDA79164B7ECD8486985D3860
+Operation = ENCRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 39FFED143B28B1C832113C6331E5407B
+
+Cipher = AES-256-CFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 39FFED143B28B1C832113C6331E5407B
+Operation = ENCRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = DF10132415E54B92A13ED0A8267AE2F9
+
+Cipher = AES-256-CFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = DF10132415E54B92A13ED0A8267AE2F9
+Operation = ENCRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 75A385741AB9CEF82031623D55B1E471
+
+# CFB128-AES256.Decrypt
+Cipher = AES-256-CFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = DECRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = DC7E84BFDA79164B7ECD8486985D3860
+
+Cipher = AES-256-CFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = DC7E84BFDA79164B7ECD8486985D3860
+Operation = DECRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 39FFED143B28B1C832113C6331E5407B
+
+Cipher = AES-256-CFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 39FFED143B28B1C832113C6331E5407B
+Operation = DECRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = DF10132415E54B92A13ED0A8267AE2F9
+
+Cipher = AES-256-CFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = DF10132415E54B92A13ED0A8267AE2F9
+Operation = DECRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 75A385741AB9CEF82031623D55B1E471
+
+# For all OFB encrypts and decrypts, the transformed sequence is
+# AES-bits-CFB:key:IV/output':plaintext:ciphertext:encdec
+# OFB-AES128.Encrypt
+Cipher = AES-128-OFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = ENCRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = 3B3FD92EB72DAD20333449F8E83CFB4A
+
+Cipher = AES-128-OFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 50FE67CC996D32B6DA0937E99BAFEC60
+Operation = ENCRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 7789508D16918F03F53C52DAC54ED825
+
+Cipher = AES-128-OFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = D9A4DADA0892239F6B8B3D7680E15674
+Operation = ENCRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 9740051E9C5FECF64344F7A82260EDCC
+
+Cipher = AES-128-OFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = A78819583F0308E7A6BF36B1386ABF23
+Operation = ENCRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 304C6528F659C77866A510D9C1D6AE5E
+
+# OFB-AES128.Decrypt
+Cipher = AES-128-OFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = DECRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = 3B3FD92EB72DAD20333449F8E83CFB4A
+
+Cipher = AES-128-OFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 50FE67CC996D32B6DA0937E99BAFEC60
+Operation = DECRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 7789508D16918F03F53C52DAC54ED825
+
+Cipher = AES-128-OFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = D9A4DADA0892239F6B8B3D7680E15674
+Operation = DECRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 9740051E9C5FECF64344F7A82260EDCC
+
+Cipher = AES-128-OFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = A78819583F0308E7A6BF36B1386ABF23
+Operation = DECRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 304C6528F659C77866A510D9C1D6AE5E
+
+# OFB-AES192.Encrypt
+Cipher = AES-192-OFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = ENCRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = CDC80D6FDDF18CAB34C25909C99A4174
+
+Cipher = AES-192-OFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = A609B38DF3B1133DDDFF2718BA09565E
+Operation = ENCRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = FCC28B8D4C63837C09E81700C1100401
+
+Cipher = AES-192-OFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 52EF01DA52602FE0975F78AC84BF8A50
+Operation = ENCRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 8D9A9AEAC0F6596F559C6D4DAF59A5F2
+
+Cipher = AES-192-OFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = BD5286AC63AABD7EB067AC54B553F71D
+Operation = ENCRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 6D9F200857CA6C3E9CAC524BD9ACC92A
+
+# OFB-AES192.Decrypt
+Cipher = AES-192-OFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = ENCRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = CDC80D6FDDF18CAB34C25909C99A4174
+
+Cipher = AES-192-OFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = A609B38DF3B1133DDDFF2718BA09565E
+Operation = ENCRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = FCC28B8D4C63837C09E81700C1100401
+
+Cipher = AES-192-OFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 52EF01DA52602FE0975F78AC84BF8A50
+Operation = ENCRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 8D9A9AEAC0F6596F559C6D4DAF59A5F2
+
+Cipher = AES-192-OFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = BD5286AC63AABD7EB067AC54B553F71D
+Operation = ENCRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 6D9F200857CA6C3E9CAC524BD9ACC92A
+
+# OFB-AES256.Encrypt
+Cipher = AES-256-OFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = ENCRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = DC7E84BFDA79164B7ECD8486985D3860
+
+Cipher = AES-256-OFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = B7BF3A5DF43989DD97F0FA97EBCE2F4A
+Operation = ENCRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 4FEBDC6740D20B3AC88F6AD82A4FB08D
+
+Cipher = AES-256-OFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = E1C656305ED1A7A6563805746FE03EDC
+Operation = ENCRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 71AB47A086E86EEDF39D1C5BBA97C408
+
+Cipher = AES-256-OFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 41635BE625B48AFC1666DD42A09D96E7
+Operation = ENCRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 0126141D67F37BE8538F5A8BE740E484
+
+# OFB-AES256.Decrypt
+Cipher = AES-256-OFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = DECRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = DC7E84BFDA79164B7ECD8486985D3860
+
+Cipher = AES-256-OFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = B7BF3A5DF43989DD97F0FA97EBCE2F4A
+Operation = DECRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 4FEBDC6740D20B3AC88F6AD82A4FB08D
+
+Cipher = AES-256-OFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = E1C656305ED1A7A6563805746FE03EDC
+Operation = DECRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 71AB47A086E86EEDF39D1C5BBA97C408
+
+Cipher = AES-256-OFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 41635BE625B48AFC1666DD42A09D96E7
+Operation = DECRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 0126141D67F37BE8538F5A8BE740E484
+
+Title = AES Counter test vectors from RFC3686
+
+Cipher = aes-128-ctr
+Key = AE6852F8121067CC4BF7A5765577F39E
+IV = 00000030000000000000000000000001
+Operation = ENCRYPT
+Plaintext = 53696E676C6520626C6F636B206D7367
+Ciphertext = E4095D4FB7A7B3792D6175A3261311B8
+
+Cipher = aes-128-ctr
+Key = 7E24067817FAE0D743D6CE1F32539163
+IV = 006CB6DBC0543B59DA48D90B00000001
+Operation = ENCRYPT
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
+Ciphertext = 5104A106168A72D9790D41EE8EDAD388EB2E1EFC46DA57C8FCE630DF9141BE28
+
+Cipher = aes-128-ctr
+Key = 7691BE035E5020A8AC6E618529F9A0DC
+IV = 00E0017B27777F3F4A1786F000000001
+Operation = ENCRYPT
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20212223
+Ciphertext = C1CF48A89F2FFDD9CF4652E9EFDB72D74540A42BDE6D7836D59A5CEAAEF3105325B2072F
+
+Cipher = aes-192-ctr
+Key = 16AF5B145FC9F579C175F93E3BFB0EED863D06CCFDB78515
+IV = 0000004836733C147D6D93CB00000001
+Operation = ENCRYPT
+Plaintext = 53696E676C6520626C6F636B206D7367
+Ciphertext = 4B55384FE259C9C84E7935A003CBE928
+
+Cipher = aes-192-ctr
+Key = 7C5CB2401B3DC33C19E7340819E0F69C678C3DB8E6F6A91A
+IV = 0096B03B020C6EADC2CB500D00000001
+Operation = ENCRYPT
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
+Ciphertext = 453243FC609B23327EDFAAFA7131CD9F8490701C5AD4A79CFC1FE0FF42F4FB00
+
+Cipher = aes-192-ctr
+Key = 02BF391EE8ECB159B959617B0965279BF59B60A786D3E0FE
+IV = 0007BDFD5CBD60278DCC091200000001
+Operation = ENCRYPT
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20212223
+Ciphertext = 96893FC55E5C722F540B7DD1DDF7E758D288BC95C69165884536C811662F2188ABEE0935
+
+Cipher = aes-256-ctr
+Key = 776BEFF2851DB06F4C8A0542C8696F6C6A81AF1EEC96B4D37FC1D689E6C1C104
+IV = 00000060DB5672C97AA8F0B200000001
+Operation = ENCRYPT
+Plaintext = 53696E676C6520626C6F636B206D7367
+Ciphertext = 145AD01DBF824EC7560863DC71E3E0C0
+
+Cipher = aes-256-ctr
+Key = F6D66D6BD52D59BB0796365879EFF886C66DD51A5B6A99744B50590C87A23884
+IV = 00FAAC24C1585EF15A43D87500000001
+Operation = ENCRYPT
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
+Ciphertext = F05E231B3894612C49EE000B804EB2A9B8306B508F839D6A5530831D9344AF1C
+
+Cipher = aes-256-ctr
+Key = FF7A617CE69148E4F1726E2F43581DE2AA62D9F805532EDFF1EED687FB54153D
+IV = 001CC5B751A51D70A1C1114800000001
+Operation = ENCRYPT
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20212223
+Ciphertext = EB6C52821D0BBBF7CE7594462ACA4FAAB407DF866569FD07F48CC0B583D6071F1EC0E6B8
+
+# Self-generated vector to trigger false carry on big-endian platforms
+Cipher = aes-128-ctr
+Key = 7E24067817FAE0D743D6CE1F32539163
+IV = 00000000000000007FFFFFFFFFFFFFFF
+Operation = ENCRYPT
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
+Ciphertext = A2D459477E6432BD74184B1B5370D2243CDC202BC43583B2A55D288CDBBD1E03
+
+# AES CCM 256 bit key
+Cipher = aes-256-ccm
+Key = 1bde3251d41a8b5ea013c195ae128b218b3e0306376357077ef1c1c78548b92e
+IV = 5b8e40746f6b98e00f1d13ff41
+AAD = c17a32514eb6103f3249e076d4c871dc97e04b286699e54491dc18f6d734d4c0
+Tag = 2024931d73bca480c24a24ece6b6c2bf
+Plaintext = 53bd72a97089e312422bf72e242377b3c6ee3e2075389b999c4ef7f28bd2b80a
+Ciphertext = 9a5fcccdb4cf04e7293d2775cc76a488f042382d949b43b7d6bb2b9864786726
+
+Cipher = aes-256-ccm
+Key = 1bde3251d41a8b5ea013c195ae128b218b3e0306376357077ef1c1c78548b92e
+IV = 5b8e40746f6b98e00f1d13ff41
+AAD = c17a32514eb6103f3249e076d4c871dc97e04b286699e54491dc18f6d734d4c0
+Tag = 2024931d73bca480c24a24ece6b6c2be
+Plaintext = 53bd72a97089e312422bf72e242377b3c6ee3e2075389b999c4ef7f28bd2b80a
+Ciphertext = 9a5fcccdb4cf04e7293d2775cc76a488f042382d949b43b7d6bb2b9864786726
+Operation = DECRYPT
+Result = CIPHERUPDATE_ERROR
+
+# Test that the tag can be set after specifying AAD.
+Cipher = aes-256-ccm
+Key = 1bde3251d41a8b5ea013c195ae128b218b3e0306376357077ef1c1c78548b92e
+IV = 5b8e40746f6b98e00f1d13ff41
+AAD = c17a32514eb6103f3249e076d4c871dc97e04b286699e54491dc18f6d734d4c0
+Tag = 2024931d73bca480c24a24ece6b6c2bf
+SetTagLate = TRUE
+Operation = DECRYPT
+Plaintext = 53bd72a97089e312422bf72e242377b3c6ee3e2075389b999c4ef7f28bd2b80a
+Ciphertext = 9a5fcccdb4cf04e7293d2775cc76a488f042382d949b43b7d6bb2b9864786726
+
+# AES GCM test vectors from http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-spec.pdf
+Cipher = aes-128-gcm
+Key = 00000000000000000000000000000000
+IV = 000000000000000000000000
+AAD =
+Tag = 58e2fccefa7e3061367f1d57a4e7455a
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-gcm
+Key = 00000000000000000000000000000000
+IV = 000000000000000000000000
+AAD =
+Tag = ab6e47d42cec13bdf53a67b21257bddf
+Plaintext = 00000000000000000000000000000000
+Ciphertext = 0388dace60b6a392f328c2b971b2fe78
+
+Cipher = aes-128-gcm
+Key = feffe9928665731c6d6a8f9467308308
+IV = cafebabefacedbaddecaf888
+AAD =
+Tag = 4d5c2af327cd64a62cf35abd2ba6fab4
+Plaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255
+Ciphertext = 42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091473f5985
+
+Cipher = aes-128-gcm
+Key = feffe9928665731c6d6a8f9467308308
+IV = cafebabefacedbaddecaf888
+AAD = feedfacedeadbeeffeedfacedeadbeefabaddad2
+Tag = 5bc94fbc3221a5db94fae95ae7121a47
+Plaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext = 42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091
+
+Cipher = aes-128-gcm
+Key = feffe9928665731c6d6a8f9467308308
+IV = cafebabefacedbad
+AAD = feedfacedeadbeeffeedfacedeadbeefabaddad2
+Tag = 3612d2e79e3b0785561be14aaca2fccb
+Plaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext = 61353b4c2806934a777ff51fa22a4755699b2a714fcdc6f83766e5f97b6c742373806900e49f24b22b097544d4896b424989b5e1ebac0f07c23f4598
+
+Cipher = aes-128-gcm
+Key = feffe9928665731c6d6a8f9467308308
+IV = 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b
+AAD = feedfacedeadbeeffeedfacedeadbeefabaddad2
+Tag = 619cc5aefffe0bfa462af43c1699d050
+Plaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext = 8ce24998625615b603a033aca13fb894be9112a5c3a211a8ba262a3cca7e2ca701e4a9a4fba43c90ccdcb281d48c7c6fd62875d2aca417034c34aee5
+
+Cipher = aes-128-gcm
+Key = feffe9928665731c6d6a8f9467308308
+IV = 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b
+AAD = feedfacedeadbeeffeedfacedeadbeefabaddad2
+Tag = 619cc5aefffe0bfa462af43c1699d051
+Plaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext = 8ce24998625615b603a033aca13fb894be9112a5c3a211a8ba262a3cca7e2ca701e4a9a4fba43c90ccdcb281d48c7c6fd62875d2aca417034c34aee5
+Operation = DECRYPT
+Result = CIPHERFINAL_ERROR
+
+Cipher = aes-192-gcm
+Key = 000000000000000000000000000000000000000000000000
+IV = 000000000000000000000000
+AAD =
+Tag = cd33b28ac773f74ba00ed1f312572435
+Plaintext =
+Ciphertext =
+
+Cipher = aes-192-gcm
+Key = 000000000000000000000000000000000000000000000000
+IV = 000000000000000000000000
+AAD =
+Tag = 2ff58d80033927ab8ef4d4587514f0fb
+Plaintext = 00000000000000000000000000000000
+Ciphertext = 98e7247c07f0fe411c267e4384b0f600
+
+Cipher = aes-192-gcm
+Key = feffe9928665731c6d6a8f9467308308feffe9928665731c
+IV = cafebabefacedbaddecaf888
+AAD =
+Tag = 9924a7c8587336bfb118024db8674a14
+Plaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255
+Ciphertext = 3980ca0b3c00e841eb06fac4872a2757859e1ceaa6efd984628593b40ca1e19c7d773d00c144c525ac619d18c84a3f4718e2448b2fe324d9ccda2710acade256
+
+Cipher = aes-192-gcm
+Key = feffe9928665731c6d6a8f9467308308feffe9928665731c
+IV = cafebabefacedbaddecaf888
+AAD = feedfacedeadbeeffeedfacedeadbeefabaddad2
+Tag = 2519498e80f1478f37ba55bd6d27618c
+Plaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext = 3980ca0b3c00e841eb06fac4872a2757859e1ceaa6efd984628593b40ca1e19c7d773d00c144c525ac619d18c84a3f4718e2448b2fe324d9ccda2710
+
+Cipher = aes-192-gcm
+Key = feffe9928665731c6d6a8f9467308308feffe9928665731c
+IV = cafebabefacedbad
+AAD = feedfacedeadbeeffeedfacedeadbeefabaddad2
+Tag = 65dcc57fcf623a24094fcca40d3533f8
+Plaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext = 0f10f599ae14a154ed24b36e25324db8c566632ef2bbb34f8347280fc4507057fddc29df9a471f75c66541d4d4dad1c9e93a19a58e8b473fa0f062f7
+
+Cipher = aes-192-gcm
+Key = feffe9928665731c6d6a8f9467308308feffe9928665731c
+IV = 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b
+AAD = feedfacedeadbeeffeedfacedeadbeefabaddad2
+Tag = dcf566ff291c25bbb8568fc3d376a6d9
+Plaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext = d27e88681ce3243c4830165a8fdcf9ff1de9a1d8e6b447ef6ef7b79828666e4581e79012af34ddd9e2f037589b292db3e67c036745fa22e7e9b7373b
+
+Cipher = aes-192-gcm
+Key = feffe9928665731c6d6a8f9467308308feffe9928665731c
+IV = 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b
+AAD = feedfacedeadbeeffeedfacedeadbeefabaddad2
+Tag = dcf566ff291c25bbb8568fc3d376a6d8
+Plaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext = d27e88681ce3243c4830165a8fdcf9ff1de9a1d8e6b447ef6ef7b79828666e4581e79012af34ddd9e2f037589b292db3e67c036745fa22e7e9b7373b
+Operation = DECRYPT
+Result = CIPHERFINAL_ERROR
+
+Cipher = aes-256-gcm
+Key = 0000000000000000000000000000000000000000000000000000000000000000
+IV = 000000000000000000000000
+AAD =
+Tag = 530f8afbc74536b9a963b4f1c4cb738b
+Plaintext =
+Ciphertext =
+
+Cipher = aes-256-gcm
+Key = 0000000000000000000000000000000000000000000000000000000000000000
+IV = 000000000000000000000000
+AAD =
+Tag = d0d1c8a799996bf0265b98b5d48ab919
+Plaintext = 00000000000000000000000000000000
+Ciphertext = cea7403d4d606b6e074ec5d3baf39d18
+
+Cipher = aes-256-gcm
+Key = feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308
+IV = cafebabefacedbaddecaf888
+AAD =
+Tag = b094dac5d93471bdec1a502270e3cc6c
+Plaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255
+Ciphertext = 522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662898015ad
+
+Cipher = aes-256-gcm
+Key = feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308
+IV = cafebabefacedbaddecaf888
+AAD = feedfacedeadbeeffeedfacedeadbeefabaddad2
+Tag = 76fc6ece0f4e1768cddf8853bb2d551b
+Plaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext = 522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662
+
+Cipher = aes-256-gcm
+Key = feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308
+IV = cafebabefacedbad
+AAD = feedfacedeadbeeffeedfacedeadbeefabaddad2
+Tag = 3a337dbf46a792c45e454913fe2ea8f2
+Plaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext = c3762df1ca787d32ae47c13bf19844cbaf1ae14d0b976afac52ff7d79bba9de0feb582d33934a4f0954cc2363bc73f7862ac430e64abe499f47c9b1f
+
+Cipher = aes-256-gcm
+Key = feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308
+IV = 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b
+AAD = feedfacedeadbeeffeedfacedeadbeefabaddad2
+Tag = a44a8266ee1c8eb0c8b5d4cf5ae9f19a
+Plaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext = 5a8def2f0c9e53f1f75d7853659e2a20eeb2b22aafde6419a058ab4f6f746bf40fc0c3b780f244452da3ebf1c5d82cdea2418997200ef82e44ae7e3f
+
+Cipher = aes-256-gcm
+Key = feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308
+IV = 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b
+AAD = feedfacedeadbeeffeedfacedeadbeefabaddad2
+Tag = a44a8266ee1c8eb0c8b5d4cf5ae9f19b
+Plaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext = 5a8def2f0c9e53f1f75d7853659e2a20eeb2b22aafde6419a058ab4f6f746bf40fc0c3b780f244452da3ebf1c5d82cdea2418997200ef82e44ae7e3f
+Operation = DECRYPT
+Result = CIPHERFINAL_ERROR
+
+# local add-ons, primarily streaming ghash tests
+# 128 bytes aad
+Cipher = aes-128-gcm
+Key = 00000000000000000000000000000000
+IV = 000000000000000000000000
+AAD = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662898015ad
+Tag = 5fea793a2d6f974d37e68e0cb8ff9492
+Plaintext =
+Ciphertext =
+
+# 48 bytes plaintext
+Cipher = aes-128-gcm
+Key = 00000000000000000000000000000000
+IV = 000000000000000000000000
+AAD =
+Tag = 9dd0a376b08e40eb00c35f29f9ea61a4
+Plaintext = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = 0388dace60b6a392f328c2b971b2fe78f795aaab494b5923f7fd89ff948bc1e0200211214e7394da2089b6acd093abe0
+
+# 80 bytes plaintext
+Cipher = aes-128-gcm
+Key = 00000000000000000000000000000000
+IV = 000000000000000000000000
+AAD =
+Tag = 98885a3a22bd4742fe7b72172193b163
+Plaintext = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = 0388dace60b6a392f328c2b971b2fe78f795aaab494b5923f7fd89ff948bc1e0200211214e7394da2089b6acd093abe0c94da219118e297d7b7ebcbcc9c388f28ade7d85a8ee35616f7124a9d5270291
+
+# 128 bytes plaintext
+Cipher = aes-128-gcm
+Key = 00000000000000000000000000000000
+IV = 000000000000000000000000
+AAD =
+Tag = cac45f60e31efd3b5a43b98a22ce1aa1
+Plaintext = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = 0388dace60b6a392f328c2b971b2fe78f795aaab494b5923f7fd89ff948bc1e0200211214e7394da2089b6acd093abe0c94da219118e297d7b7ebcbcc9c388f28ade7d85a8ee35616f7124a9d527029195b84d1b96c690ff2f2de30bf2ec89e00253786e126504f0dab90c48a30321de3345e6b0461e7c9e6c6b7afedde83f40
+
+# 192 bytes plaintext, iv is chosen so that initial counter LSB is 0xFF
+Cipher = aes-128-gcm
+Key = 00000000000000000000000000000000
+IV = ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+AAD =
+Tag = 566f8ef683078bfdeeffa869d751a017
+Plaintext = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = 56b3373ca9ef6e4a2b64fe1e9a17b61425f10d47a75a5fce13efc6bc784af24f4141bdd48cf7c770887afd573cca5418a9aeffcd7c5ceddfc6a78397b9a85b499da558257267caab2ad0b23ca476a53cb17fb41c4b8b475cb4f3f7165094c229c9e8c4dc0a2a5ff1903e501511221376a1cdb8364c5061a20cae74bc4acd76ceb0abc9fd3217ef9f8c90be402ddf6d8697f4f880dff15bfb7a6b28241ec8fe183c2d59e3f9dfff653c7126f0acb9e64211f42bae12af462b1070bef1ab5e3606
+
+# 240 bytes plaintext, iv is chosen so that initial counter LSB is 0xFF
+Cipher = aes-128-gcm
+Key = 00000000000000000000000000000000
+IV = ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+AAD =
+Tag = fd0c7011ff07f0071324bdfb2d0f3a29
+Plaintext = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = 56b3373ca9ef6e4a2b64fe1e9a17b61425f10d47a75a5fce13efc6bc784af24f4141bdd48cf7c770887afd573cca5418a9aeffcd7c5ceddfc6a78397b9a85b499da558257267caab2ad0b23ca476a53cb17fb41c4b8b475cb4f3f7165094c229c9e8c4dc0a2a5ff1903e501511221376a1cdb8364c5061a20cae74bc4acd76ceb0abc9fd3217ef9f8c90be402ddf6d8697f4f880dff15bfb7a6b28241ec8fe183c2d59e3f9dfff653c7126f0acb9e64211f42bae12af462b1070bef1ab5e3606872ca10dee15b3249b1a1b958f23134c4bccb7d03200bce420a2f8eb66dcf3644d1423c1b5699003c13ecef4bf38a3b6
+
+# 288 bytes plaintext, iv is chosen so that initial counter LSB is 0xFF
+Cipher = aes-128-gcm
+Key = 00000000000000000000000000000000
+IV = ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+AAD =
+Tag = 8b307f6b33286d0ab026a9ed3fe1e85f
+Plaintext = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = 56b3373ca9ef6e4a2b64fe1e9a17b61425f10d47a75a5fce13efc6bc784af24f4141bdd48cf7c770887afd573cca5418a9aeffcd7c5ceddfc6a78397b9a85b499da558257267caab2ad0b23ca476a53cb17fb41c4b8b475cb4f3f7165094c229c9e8c4dc0a2a5ff1903e501511221376a1cdb8364c5061a20cae74bc4acd76ceb0abc9fd3217ef9f8c90be402ddf6d8697f4f880dff15bfb7a6b28241ec8fe183c2d59e3f9dfff653c7126f0acb9e64211f42bae12af462b1070bef1ab5e3606872ca10dee15b3249b1a1b958f23134c4bccb7d03200bce420a2f8eb66dcf3644d1423c1b5699003c13ecef4bf38a3b60eedc34033bac1902783dc6d89e2e774188a439c7ebcc0672dbda4ddcfb2794613b0be41315ef778708a70ee7d75165c
+
+# 80 bytes plaintext, submitted by Intel
+Cipher = aes-128-gcm
+Key = 843ffcf5d2b72694d19ed01d01249412
+IV = dbcca32ebf9b804617c3aa9e
+AAD = 00000000000000000000000000000000101112131415161718191a1b1c1d1e1f
+Tag = 3b629ccfbc1119b7319e1dce2cd6fd6d
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
+Ciphertext = 6268c6fa2a80b2d137467f092f657ac04d89be2beaa623d61b5a868c8f03ff95d3dcee23ad2f1ab3a6c80eaf4b140eb05de3457f0fbc111a6b43d0763aa422a3013cf1dc37fe417d1fbfc449b75d4cc5
+
+#AES OCB Test vectors
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD =
+Tag = 197B9C3C441D3C83EAFB2BEF633B9182
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD = 0001020304050607
+Tag = 16DC76A46D47E1EAD537209E8A96D14E
+Plaintext = 0001020304050607
+Ciphertext = 92B657130A74B85A
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD = 0001020304050607
+Tag = 98B91552C8C009185044E30A6EB2FE21
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD =
+Tag = 971EFFCAE19AD4716F88E87B871FBEED
+Plaintext = 0001020304050607
+Ciphertext = 92B657130A74B85A
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD = 000102030405060708090A0B0C0D0E0F
+Tag = 776C9924D6723A1FC4524532AC3E5BEB
+Plaintext = 000102030405060708090A0B0C0D0E0F
+Ciphertext = BEA5E8798DBE7110031C144DA0B26122
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD = 000102030405060708090A0B0C0D0E0F
+Tag = 7DDB8E6CEA6814866212509619B19CC6
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD =
+Tag = 13CC8B747807121A4CBB3E4BD6B456AF
+Plaintext = 000102030405060708090A0B0C0D0E0F
+Ciphertext = BEA5E8798DBE7110031C144DA0B26122
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD = 000102030405060708090A0B0C0D0E0F1011121314151617
+Tag = 5FA94FC3F38820F1DC3F3D1FD4E55E1C
+Plaintext = 000102030405060708090A0B0C0D0E0F1011121314151617
+Ciphertext = BEA5E8798DBE7110031C144DA0B26122FCFCEE7A2A8D4D48
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD = 000102030405060708090A0B0C0D0E0F1011121314151617
+Tag = 282026DA3068BC9FA118681D559F10F6
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD =
+Tag = 6EF2F52587FDA0ED97DC7EEDE241DF68
+Plaintext = 000102030405060708090A0B0C0D0E0F1011121314151617
+Ciphertext = BEA5E8798DBE7110031C144DA0B26122FCFCEE7A2A8D4D48
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
+Tag = B2A040DD3BD5164372D76D7BB6824240
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
+Ciphertext = BEA5E8798DBE7110031C144DA0B26122CEAAB9B05DF771A657149D53773463CB
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
+Tag = E1E072633BADE51A60E85951D9C42A1B
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD =
+Tag = 4A3BAE824465CFDAF8C41FC50C7DF9D9
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
+Ciphertext = BEA5E8798DBE7110031C144DA0B26122CEAAB9B05DF771A657149D53773463CB
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627
+Tag = 659C623211DEEA0DE30D2C381879F4C8
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627
+Ciphertext = BEA5E8798DBE7110031C144DA0B26122CEAAB9B05DF771A657149D53773463CB68C65778B058A635
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627
+Tag = 7AEB7A69A1687DD082CA27B0D9A37096
+Plaintext =
+Ciphertext =
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD =
+Tag = 060C8467F4ABAB5E8B3C2067A2E115DC
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627
+Ciphertext = BEA5E8798DBE7110031C144DA0B26122CEAAB9B05DF771A657149D53773463CB68C65778B058A635
+
+#AES OCB Non standard test vectors - generated from reference implementation
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627
+Tag = 1b6c44f34e3abb3cbf8976e7
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627
+Ciphertext = 09a4fd29de949d9a9aa9924248422097ad4883b4713e6c214ff6567ada08a96766fc4e2ee3e3a5a1
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B0C0D0E
+AAD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627
+Tag = 1ad62009901f40cba7cd7156f94a7324
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627
+Ciphertext = 5e2fa7367ffbdb3938845cfd415fcc71ec79634eb31451609d27505f5e2978f43c44213d8fa441ee
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627
+Tag = C203F98CE28F7DAD3F31C021
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031
+Ciphertext = 09A4FD29DE949D9A9AA9924248422097AD4883B4713E6C214FF6567ADA08A967B2176C12F110DD441B7CAA3A509B13C822D6
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627
+Tag = 8346D7D47C5D893ED472F5AB
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F4041
+Ciphertext = 09A4FD29DE949D9A9AA9924248422097AD4883B4713E6C214FF6567ADA08A967B2176C12F110DD441B7CAA3A509B13C86A023AFCEE998BEE42028D44507B15F714FF
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627
+Tag = 5822A9A70FDF55D29D2984A6
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F5051
+Ciphertext = 09A4FD29DE949D9A9AA9924248422097AD4883B4713E6C214FF6567ADA08A967B2176C12F110DD441B7CAA3A509B13C86A023AFCEE998BEE42028D44507B15F77C528A1DE6406B519BCEE8FCB8294170634D
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627
+Tag = 81772B6741ABB4ECA9D2DEB2
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F6061
+Ciphertext = 09A4FD29DE949D9A9AA9924248422097AD4883B4713E6C214FF6567ADA08A967B2176C12F110DD441B7CAA3A509B13C86A023AFCEE998BEE42028D44507B15F77C528A1DE6406B519BCEE8FCB829417001E54E15A7576C4DF32366E0F439C7050FAA
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627
+Tag = 3E52A01D068DE85456DB03B7
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071
+Ciphertext = 09A4FD29DE949D9A9AA9924248422097AD4883B4713E6C214FF6567ADA08A967B2176C12F110DD441B7CAA3A509B13C86A023AFCEE998BEE42028D44507B15F77C528A1DE6406B519BCEE8FCB829417001E54E15A7576C4DF32366E0F439C7051CB4824B8114E9A720CBC1CE0185B156B486
+
+Cipher = aes-128-ocb
+Key = 000102030405060708090A0B0C0D0E0F
+IV = 000102030405060708090A0B
+AAD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627
+Tag = 3E52A01D068DE85456DB03B6
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071
+Ciphertext = 09A4FD29DE949D9A9AA9924248422097AD4883B4713E6C214FF6567ADA08A967B2176C12F110DD441B7CAA3A509B13C86A023AFCEE998BEE42028D44507B15F77C528A1DE6406B519BCEE8FCB829417001E54E15A7576C4DF32366E0F439C7051CB4824B8114E9A720CBC1CE0185B156B486
+Operation = DECRYPT
+Result = CIPHERFINAL_ERROR
+
+Title = AES XTS test vectors from IEEE Std 1619-2007
+
+# Using the same key twice for encryption is always banned.
+Cipher = aes-128-xts
+Operation = ENCRYPT
+Key = 0000000000000000000000000000000000000000000000000000000000000000
+IV = 00000000000000000000000000000000
+Plaintext = 0000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = 917cf69ebd68b2ec9b9fe9a3eadda692cd43d2f59598ed858c02c2652fbf922e
+Result = KEY_SET_ERROR
+
+# Using the same key twice for decryption is allowed outside of FIPS mode.
+Cipher = aes-128-xts
+Operation = DECRYPT
+Key = 0000000000000000000000000000000000000000000000000000000000000000
+IV = 00000000000000000000000000000000
+Plaintext = 0000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = 917cf69ebd68b2ec9b9fe9a3eadda692cd43d2f59598ed858c02c2652fbf922e
+
+Cipher = aes-128-xts
+Key = 1111111111111111111111111111111122222222222222222222222222222222
+IV = 33333333330000000000000000000000
+Plaintext = 4444444444444444444444444444444444444444444444444444444444444444
+Ciphertext = c454185e6a16936e39334038acef838bfb186fff7480adc4289382ecd6d394f0
+
+Cipher = aes-128-xts
+Key = fffefdfcfbfaf9f8f7f6f5f4f3f2f1f022222222222222222222222222222222
+IV = 33333333330000000000000000000000
+Plaintext = 4444444444444444444444444444444444444444444444444444444444444444
+Ciphertext = af85336b597afc1a900b2eb21ec949d292df4c047e0b21532186a5971a227a89
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = 00000000000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
+Ciphertext = 27a7479befa1d476489f308cd4cfa6e2a96e4bbe3208ff25287dd3819616e89cc78cf7f5e543445f8333d8fa7f56000005279fa5d8b5e4ad40e736ddb4d35412328063fd2aab53e5ea1e0a9f332500a5df9487d07a5c92cc512c8866c7e860ce93fdf166a24912b422976146ae20ce846bb7dc9ba94a767aaef20c0d61ad02655ea92dc4c4e41a8952c651d33174be51a10c421110e6d81588ede82103a252d8a750e8768defffed9122810aaeb99f9172af82b604dc4b8e51bcb08235a6f4341332e4ca60482a4ba1a03b3e65008fc5da76b70bf1690db4eae29c5f1badd03c5ccf2a55d705ddcd86d449511ceb7ec30bf12b1fa35b913f9f747a8afd1b130e94bff94effd01a91735ca1726acd0b197c4e5b03393697e126826fb6bbde8ecc1e08298516e2c9ed03ff3c1b7860f6de76d4cecd94c8119855ef5297ca67e9f3e7ff72b1e99785ca0a7e7720c5b36dc6d72cac9574c8cbbc2f801e23e56fd344b07f22154beba0f08ce8891e643ed995c94d9a69c9f1b5f499027a78572aeebd74d20cc39881c213ee770b1010e4bea718846977ae119f7a023ab58cca0ad752afe656bb3c17256a9f6e9bf19fdd5a38fc82bbe872c5539edb609ef4f79c203ebb140f2e583cb2ad15b4aa5b655016a8449277dbd477ef2c8d6c017db738b18deb4a427d1923ce3ff262735779a418f20a282df920147beabe421ee5319d0568
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = 01000000000000000000000000000000
+Plaintext = 27a7479befa1d476489f308cd4cfa6e2a96e4bbe3208ff25287dd3819616e89cc78cf7f5e543445f8333d8fa7f56000005279fa5d8b5e4ad40e736ddb4d35412328063fd2aab53e5ea1e0a9f332500a5df9487d07a5c92cc512c8866c7e860ce93fdf166a24912b422976146ae20ce846bb7dc9ba94a767aaef20c0d61ad02655ea92dc4c4e41a8952c651d33174be51a10c421110e6d81588ede82103a252d8a750e8768defffed9122810aaeb99f9172af82b604dc4b8e51bcb08235a6f4341332e4ca60482a4ba1a03b3e65008fc5da76b70bf1690db4eae29c5f1badd03c5ccf2a55d705ddcd86d449511ceb7ec30bf12b1fa35b913f9f747a8afd1b130e94bff94effd01a91735ca1726acd0b197c4e5b03393697e126826fb6bbde8ecc1e08298516e2c9ed03ff3c1b7860f6de76d4cecd94c8119855ef5297ca67e9f3e7ff72b1e99785ca0a7e7720c5b36dc6d72cac9574c8cbbc2f801e23e56fd344b07f22154beba0f08ce8891e643ed995c94d9a69c9f1b5f499027a78572aeebd74d20cc39881c213ee770b1010e4bea718846977ae119f7a023ab58cca0ad752afe656bb3c17256a9f6e9bf19fdd5a38fc82bbe872c5539edb609ef4f79c203ebb140f2e583cb2ad15b4aa5b655016a8449277dbd477ef2c8d6c017db738b18deb4a427d1923ce3ff262735779a418f20a282df920147beabe421ee5319d0568
+Ciphertext = 264d3ca8512194fec312c8c9891f279fefdd608d0c027b60483a3fa811d65ee59d52d9e40ec5672d81532b38b6b089ce951f0f9c35590b8b978d175213f329bb1c2fd30f2f7f30492a61a532a79f51d36f5e31a7c9a12c286082ff7d2394d18f783e1a8e72c722caaaa52d8f065657d2631fd25bfd8e5baad6e527d763517501c68c5edc3cdd55435c532d7125c8614deed9adaa3acade5888b87bef641c4c994c8091b5bcd387f3963fb5bc37aa922fbfe3df4e5b915e6eb514717bdd2a74079a5073f5c4bfd46adf7d282e7a393a52579d11a028da4d9cd9c77124f9648ee383b1ac763930e7162a8d37f350b2f74b8472cf09902063c6b32e8c2d9290cefbd7346d1c779a0df50edcde4531da07b099c638e83a755944df2aef1aa31752fd323dcb710fb4bfbb9d22b925bc3577e1b8949e729a90bbafeacf7f7879e7b1147e28ba0bae940db795a61b15ecf4df8db07b824bb062802cc98a9545bb2aaeed77cb3fc6db15dcd7d80d7d5bc406c4970a3478ada8899b329198eb61c193fb6275aa8ca340344a75a862aebe92eee1ce032fd950b47d7704a3876923b4ad62844bf4a09c4dbe8b4397184b7471360c9564880aedddb9baa4af2e75394b08cd32ff479c57a07d3eab5d54de5f9738b8d27f27a9f0ab11799d7b7ffefb2704c95c6ad12c39f1e867a4b7b1d7818a4b753dfd2a89ccb45e001a03a867b187f225dd
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = 02000000000000000000000000000000
+Plaintext = 264d3ca8512194fec312c8c9891f279fefdd608d0c027b60483a3fa811d65ee59d52d9e40ec5672d81532b38b6b089ce951f0f9c35590b8b978d175213f329bb1c2fd30f2f7f30492a61a532a79f51d36f5e31a7c9a12c286082ff7d2394d18f783e1a8e72c722caaaa52d8f065657d2631fd25bfd8e5baad6e527d763517501c68c5edc3cdd55435c532d7125c8614deed9adaa3acade5888b87bef641c4c994c8091b5bcd387f3963fb5bc37aa922fbfe3df4e5b915e6eb514717bdd2a74079a5073f5c4bfd46adf7d282e7a393a52579d11a028da4d9cd9c77124f9648ee383b1ac763930e7162a8d37f350b2f74b8472cf09902063c6b32e8c2d9290cefbd7346d1c779a0df50edcde4531da07b099c638e83a755944df2aef1aa31752fd323dcb710fb4bfbb9d22b925bc3577e1b8949e729a90bbafeacf7f7879e7b1147e28ba0bae940db795a61b15ecf4df8db07b824bb062802cc98a9545bb2aaeed77cb3fc6db15dcd7d80d7d5bc406c4970a3478ada8899b329198eb61c193fb6275aa8ca340344a75a862aebe92eee1ce032fd950b47d7704a3876923b4ad62844bf4a09c4dbe8b4397184b7471360c9564880aedddb9baa4af2e75394b08cd32ff479c57a07d3eab5d54de5f9738b8d27f27a9f0ab11799d7b7ffefb2704c95c6ad12c39f1e867a4b7b1d7818a4b753dfd2a89ccb45e001a03a867b187f225dd
+Ciphertext = fa762a3680b76007928ed4a4f49a9456031b704782e65e16cecb54ed7d017b5e18abd67b338e81078f21edb7868d901ebe9c731a7c18b5e6dec1d6a72e078ac9a4262f860beefa14f4e821018272e411a951502b6e79066e84252c3346f3aa62344351a291d4bedc7a07618bdea2af63145cc7a4b8d4070691ae890cd65733e7946e9021a1dffc4c59f159425ee6d50ca9b135fa6162cea18a939838dc000fb386fad086acce5ac07cb2ece7fd580b00cfa5e98589631dc25e8e2a3daf2ffdec26531659912c9d8f7a15e5865ea8fb5816d6207052bd7128cd743c12c8118791a4736811935eb982a532349e31dd401e0b660a568cb1a4711f552f55ded59f1f15bf7196b3ca12a91e488ef59d64f3a02bf45239499ac6176ae321c4a211ec545365971c5d3f4f09d4eb139bfdf2073d33180b21002b65cc9865e76cb24cd92c874c24c18350399a936ab3637079295d76c417776b94efce3a0ef7206b15110519655c956cbd8b2489405ee2b09a6b6eebe0c53790a12a8998378b33a5b71159625f4ba49d2a2fdba59fbf0897bc7aabd8d707dc140a80f0f309f835d3da54ab584e501dfa0ee977fec543f74186a802b9a37adb3e8291eca04d66520d229e60401e7282bef486ae059aa70696e0e305d777140a7a883ecdcb69b9ff938e8a4231864c69ca2c2043bed007ff3e605e014bcf518138dc3a25c5e236171a2d01d6
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = fd000000000000000000000000000000
+Plaintext = 8e41b78c390b5af9d758bb214a67e9f6bf7727b09ac6124084c37611398fa45daad94868600ed391fb1acd4857a95b466e62ef9f4b377244d1c152e7b30d731aad30c716d214b707aed99eb5b5e580b3e887cf7497465651d4b60e6042051da3693c3b78c14489543be8b6ad0ba629565bba202313ba7b0d0c94a3252b676f46cc02ce0f8a7d34c0ed229129673c1f61aed579d08a9203a25aac3a77e9db60267996db38df637356d9dcd1632e369939f2a29d89345c66e05066f1a3677aef18dea4113faeb629e46721a66d0a7e785d3e29af2594eb67dfa982affe0aac058f6e15864269b135418261fc3afb089472cf68c45dd7f231c6249ba0255e1e033833fc4d00a3fe02132d7bc3873614b8aee34273581ea0325c81f0270affa13641d052d36f0757d484014354d02d6883ca15c24d8c3956b1bd027bcf41f151fd8023c5340e5606f37e90fdb87c86fb4fa634b3718a30bace06a66eaf8f63c4aa3b637826a87fe8cfa44282e92cb1615af3a28e53bc74c7cba1a0977be9065d0c1a5dec6c54ae38d37f37aa35283e048e5530a85c4e7a29d7b92ec0c3169cdf2a805c7604bce60049b9fb7b8eaac10f51ae23794ceba68bb58112e293b9b692ca721b37c662f8574ed4dba6f88e170881c82cddc1034a0ca7e284bf0962b6b26292d836fa9f73c1ac770eef0f2d3a1eaf61d3e03555fd424eedd67e18a18094f888
+Ciphertext = d55f684f81f4426e9fde92a5ff02df2ac896af63962888a97910c1379e20b0a3b1db613fb7fe2e07004329ea5c22bfd33e3dbe4cf58cc608c2c26c19a2e2fe22f98732c2b5cb844cc6c0702d91e1d50fc4382a7eba5635cd602432a2306ac4ce82f8d70c8d9bc15f918fe71e74c622d5cf71178bf6e0b9cc9f2b41dd8dbe441c41cd0c73a6dc47a348f6702f9d0e9b1b1431e948e299b9ec2272ab2c5f0c7be86affa5dec87a0bee81d3d50007edaa2bcfccb35605155ff36ed8edd4a40dcd4b243acd11b2b987bdbfaf91a7cac27e9c5aea525ee53de7b2d3332c8644402b823e94a7db26276d2d23aa07180f76b4fd29b9c0823099c9d62c519880aee7e9697617c1497d47bf3e571950311421b6b734d38b0db91eb85331b91ea9f61530f54512a5a52a4bad589eb69781d537f23297bb459bdad2948a29e1550bf4787e0be95bb173cf5fab17dab7a13a052a63453d97ccec1a321954886b7a1299faaeecae35c6eaaca753b041b5e5f093bf83397fd21dd6b3012066fcc058cc32c3b09d7562dee29509b5839392c9ff05f51f3166aaac4ac5f238038a3045e6f72e48ef0fe8bc675e82c318a268e43970271bf119b81bf6a982746554f84e72b9f00280a320a08142923c23c883423ff949827f29bbacdc1ccdb04938ce6098c95ba6b32528f4ef78eed778b2e122ddfd1cbdd11d1c0a6783e011fc536d63d053260637
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = fe000000000000000000000000000000
+Plaintext = d55f684f81f4426e9fde92a5ff02df2ac896af63962888a97910c1379e20b0a3b1db613fb7fe2e07004329ea5c22bfd33e3dbe4cf58cc608c2c26c19a2e2fe22f98732c2b5cb844cc6c0702d91e1d50fc4382a7eba5635cd602432a2306ac4ce82f8d70c8d9bc15f918fe71e74c622d5cf71178bf6e0b9cc9f2b41dd8dbe441c41cd0c73a6dc47a348f6702f9d0e9b1b1431e948e299b9ec2272ab2c5f0c7be86affa5dec87a0bee81d3d50007edaa2bcfccb35605155ff36ed8edd4a40dcd4b243acd11b2b987bdbfaf91a7cac27e9c5aea525ee53de7b2d3332c8644402b823e94a7db26276d2d23aa07180f76b4fd29b9c0823099c9d62c519880aee7e9697617c1497d47bf3e571950311421b6b734d38b0db91eb85331b91ea9f61530f54512a5a52a4bad589eb69781d537f23297bb459bdad2948a29e1550bf4787e0be95bb173cf5fab17dab7a13a052a63453d97ccec1a321954886b7a1299faaeecae35c6eaaca753b041b5e5f093bf83397fd21dd6b3012066fcc058cc32c3b09d7562dee29509b5839392c9ff05f51f3166aaac4ac5f238038a3045e6f72e48ef0fe8bc675e82c318a268e43970271bf119b81bf6a982746554f84e72b9f00280a320a08142923c23c883423ff949827f29bbacdc1ccdb04938ce6098c95ba6b32528f4ef78eed778b2e122ddfd1cbdd11d1c0a6783e011fc536d63d053260637
+Ciphertext = 72efc1ebfe1ee25975a6eb3aa8589dda2b261f1c85bdab442a9e5b2dd1d7c3957a16fc08e526d4b1223f1b1232a11af274c3d70dac57f83e0983c498f1a6f1aecb021c3e70085a1e527f1ce41ee5911a82020161529cd82773762daf5459de94a0a82adae7e1703c808543c29ed6fb32d9e004327c1355180c995a07741493a09c21ba01a387882da4f62534b87bb15d60d197201c0fd3bf30c1500a3ecfecdd66d8721f90bcc4c17ee925c61b0a03727a9c0d5f5ca462fbfa0af1c2513a9d9d4b5345bd27a5f6e653f751693e6b6a2b8ead57d511e00e58c45b7b8d005af79288f5c7c22fd4f1bf7a898b03a5634c6a1ae3f9fae5de4f296a2896b23e7ed43ed14fa5a2803f4d28f0d3ffcf24757677aebdb47bb388378708948a8d4126ed1839e0da29a537a8c198b3c66ab00712dd261674bf45a73d67f76914f830ca014b65596f27e4cf62de66125a5566df9975155628b400fbfb3a29040ed50faffdbb18aece7c5c44693260aab386c0a37b11b114f1c415aebb653be468179428d43a4d8bc3ec38813eca30a13cf1bb18d524f1992d44d8b1a42ea30b22e6c95b199d8d182f8840b09d059585c31ad691fa0619ff038aca2c39a943421157361717c49d322028a74648113bd8c9d7ec77cf3c89c1ec8718ceff8516d96b34c3c614f10699c9abc4ed0411506223bea16af35c883accdbe1104eef0cfdb54e12fb230a
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = ff000000000000000000000000000000
+Plaintext = 72efc1ebfe1ee25975a6eb3aa8589dda2b261f1c85bdab442a9e5b2dd1d7c3957a16fc08e526d4b1223f1b1232a11af274c3d70dac57f83e0983c498f1a6f1aecb021c3e70085a1e527f1ce41ee5911a82020161529cd82773762daf5459de94a0a82adae7e1703c808543c29ed6fb32d9e004327c1355180c995a07741493a09c21ba01a387882da4f62534b87bb15d60d197201c0fd3bf30c1500a3ecfecdd66d8721f90bcc4c17ee925c61b0a03727a9c0d5f5ca462fbfa0af1c2513a9d9d4b5345bd27a5f6e653f751693e6b6a2b8ead57d511e00e58c45b7b8d005af79288f5c7c22fd4f1bf7a898b03a5634c6a1ae3f9fae5de4f296a2896b23e7ed43ed14fa5a2803f4d28f0d3ffcf24757677aebdb47bb388378708948a8d4126ed1839e0da29a537a8c198b3c66ab00712dd261674bf45a73d67f76914f830ca014b65596f27e4cf62de66125a5566df9975155628b400fbfb3a29040ed50faffdbb18aece7c5c44693260aab386c0a37b11b114f1c415aebb653be468179428d43a4d8bc3ec38813eca30a13cf1bb18d524f1992d44d8b1a42ea30b22e6c95b199d8d182f8840b09d059585c31ad691fa0619ff038aca2c39a943421157361717c49d322028a74648113bd8c9d7ec77cf3c89c1ec8718ceff8516d96b34c3c614f10699c9abc4ed0411506223bea16af35c883accdbe1104eef0cfdb54e12fb230a
+Ciphertext = 3260ae8dad1f4a32c5cafe3ab0eb95549d461a67ceb9e5aa2d3afb62dece0553193ba50c75be251e08d1d08f1088576c7efdfaaf3f459559571e12511753b07af073f35da06af0ce0bbf6b8f5ccc5cea500ec1b211bd51f63b606bf6528796ca12173ba39b8935ee44ccce646f90a45bf9ccc567f0ace13dc2d53ebeedc81f58b2e41179dddf0d5a5c42f5d8506c1a5d2f8f59f3ea873cbcd0eec19acbf325423bd3dcb8c2b1bf1d1eaed0eba7f0698e4314fbeb2f1566d1b9253008cbccf45a2b0d9c5c9c21474f4076e02be26050b99dee4fd68a4cf890e496e4fcae7b70f94ea5a9062da0daeba1993d2ccd1dd3c244b8428801495a58b216547e7e847c46d1d756377b6242d2e5fb83bf752b54e0df71e889f3a2bb0f4c10805bf3c590376e3c24e22ff57f7fa965577375325cea5d920db94b9c336b455f6e894c01866fe9fbb8c8d3f70a2957285f6dfb5dcd8cbf54782f8fe7766d4723819913ac773421e3a31095866bad22c86a6036b2518b2059b4229d18c8c2ccbdf906c6cc6e82464ee57bddb0bebcb1dc645325bfb3e665ef7251082c88ebb1cf203bd779fdd38675713c8daadd17e1cabee432b09787b6ddf3304e38b731b45df5df51b78fcfb3d32466028d0ba36555e7e11ab0ee0666061d1645d962444bc47a38188930a84b4d561395c73c087021927ca638b7afc8a8679ccb84c26555440ec7f10445cd
+
+
+Cipher = aes-256-xts
+Key = 27182818284590452353602874713526624977572470936999595749669676273141592653589793238462643383279502884197169399375105820974944592
+IV = ff000000000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
+Ciphertext = 1c3b3a102f770386e4836c99e370cf9bea00803f5e482357a4ae12d414a3e63b5d31e276f8fe4a8d66b317f9ac683f44680a86ac35adfc3345befecb4bb188fd5776926c49a3095eb108fd1098baec70aaa66999a72a82f27d848b21d4a741b0c5cd4d5fff9dac89aeba122961d03a757123e9870f8acf1000020887891429ca2a3e7a7d7df7b10355165c8b9a6d0a7de8b062c4500dc4cd120c0f7418dae3d0b5781c34803fa75421c790dfe1de1834f280d7667b327f6c8cd7557e12ac3a0f93ec05c52e0493ef31a12d3d9260f79a289d6a379bc70c50841473d1a8cc81ec583e9645e07b8d9670655ba5bbcfecc6dc3966380ad8fecb17b6ba02469a020a84e18e8f84252070c13e9f1f289be54fbc481457778f616015e1327a02b140f1505eb309326d68378f8374595c849d84f4c333ec4423885143cb47bd71c5edae9be69a2ffeceb1bec9de244fbe15992b11b77c040f12bd8f6a975a44a0f90c29a9abc3d4d893927284c58754cce294529f8614dcd2aba991925fedc4ae74ffac6e333b93eb4aff0479da9a410e4450e0dd7ae4c6e2910900575da401fc07059f645e8b7e9bfdef33943054ff84011493c27b3429eaedb4ed5376441a77ed43851ad77f16f541dfd269d50d6a5f14fb0aab1cbb4c1550be97f7ab4066193c4caa773dad38014bd2092fa755c824bb5e54c4f36ffda9fcea70b9c6e693e148c151
+
+Cipher = aes-256-xts
+Key = 27182818284590452353602874713526624977572470936999595749669676273141592653589793238462643383279502884197169399375105820974944592
+IV = ffff0000000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
+Ciphertext = 77a31251618a15e6b92d1d66dffe7b50b50bad552305ba0217a610688eff7e11e1d0225438e093242d6db274fde801d4cae06f2092c728b2478559df58e837c2469ee4a4fa794e4bbc7f39bc026e3cb72c33b0888f25b4acf56a2a9804f1ce6d3d6e1dc6ca181d4b546179d55544aa7760c40d06741539c7e3cd9d2f6650b2013fd0eeb8c2b8e3d8d240ccae2d4c98320a7442e1c8d75a42d6e6cfa4c2eca1798d158c7aecdf82490f24bb9b38e108bcda12c3faf9a21141c3613b58367f922aaa26cd22f23d708dae699ad7cb40a8ad0b6e2784973dcb605684c08b8d6998c69aac049921871ebb65301a4619ca80ecb485a31d744223ce8ddc2394828d6a80470c092f5ba413c3378fa6054255c6f9df4495862bbb3287681f931b687c888abf844dfc8fc28331e579928cd12bd2390ae123cf03818d14dedde5c0c24c8ab018bfca75ca096f2d531f3d1619e785f1ada437cab92e980558b3dce1474afb75bfedbf8ff54cb2618e0244c9ac0d3c66fb51598cd2db11f9be39791abe447c63094f7c453b7ff87cb5bb36b7c79efb0872d17058b83b15ab0866ad8a58656c5a7e20dbdf308b2461d97c0ec0024a2715055249cf3b478ddd4740de654f75ca686e0d7345c69ed50cdc2a8b332b1f8824108ac937eb050585608ee734097fc09054fbff89eeaeea791f4a7ab1f9868294a4f9e27b42af8100cb9d59cef9645803
+
+Cipher = aes-256-xts
+Key = 27182818284590452353602874713526624977572470936999595749669676273141592653589793238462643383279502884197169399375105820974944592
+IV = ffffff00000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
+Ciphertext = e387aaa58ba483afa7e8eb469778317ecf4cf573aa9d4eac23f2cdf914e4e200a8b490e42ee646802dc6ee2b471b278195d60918ececb44bf79966f83faba0499298ebc699c0c8634715a320bb4f075d622e74c8c932004f25b41e361025b5a87815391f6108fc4afa6a05d9303c6ba68a128a55705d415985832fdeaae6c8e19110e84d1b1f199a2692119edc96132658f09da7c623efcec712537a3d94c0bf5d7e352ec94ae5797fdb377dc1551150721adf15bd26a8efc2fcaad56881fa9e62462c28f30ae1ceaca93c345cf243b73f542e2074a705bd2643bb9f7cc79bb6e7091ea6e232df0f9ad0d6cf502327876d82207abf2115cdacf6d5a48f6c1879a65b115f0f8b3cb3c59d15dd8c769bc014795a1837f3901b5845eb491adfefe097b1fa30a12fc1f65ba22905031539971a10f2f36c321bb51331cdefb39e3964c7ef079994f5b69b2edd83a71ef549971ee93f44eac3938fcdd61d01fa71799da3a8091c4c48aa9ed263ff0749df95d44fef6a0bb578ec69456aa5408ae32c7af08ad7ba8921287e3bbee31b767be06a0e705c864a769137df28292283ea81a2480241b44d9921cdbec1bc28dc1fda114bd8e5217ac9d8ebafa720e9da4f9ace231cc949e5b96fe76ffc21063fddc83a6b8679c00d35e09576a875305bed5f36ed242c8900dd1fa965bc950dfce09b132263a1eef52dd6888c309f5a7d712826
+
+Cipher = aes-256-xts
+Key = 27182818284590452353602874713526624977572470936999595749669676273141592653589793238462643383279502884197169399375105820974944592
+IV = ffffffff000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
+Ciphertext = bf53d2dade78e822a4d949a9bc6766b01b06a8ef70d26748c6a7fc36d80ae4c5520f7c4ab0ac8544424fa405162fef5a6b7f229498063618d39f0003cb5fb8d1c86b643497da1ff945c8d3bedeca4f479702a7a735f043ddb1d6aaade3c4a0ac7ca7f3fa5279bef56f82cd7a2f38672e824814e10700300a055e1630b8f1cb0e919f5e942010a416e2bf48cb46993d3cb6a51c19bacf864785a00bc2ecff15d350875b246ed53e68be6f55bd7e05cfc2b2ed6432198a6444b6d8c247fab941f569768b5c429366f1d3f00f0345b96123d56204c01c63b22ce78baf116e525ed90fdea39fa469494d3866c31e05f295ff21fea8d4e6e13d67e47ce722e9698a1c1048d68ebcde76b86fcf976eab8aa9790268b7068e017a8b9b749409514f1053027fd16c3786ea1bac5f15cb79711ee2abe82f5cf8b13ae73030ef5b9e4457e75d1304f988d62dd6fc4b94ed38ba831da4b7634971b6cd8ec325d9c61c00f1df73627ed3745a5e8489f3a95c69639c32cd6e1d537a85f75cc844726e8a72fc0077ad22000f1d5078f6b866318c668f1ad03d5a5fced5219f2eabbd0aa5c0f460d183f04404a0d6f469558e81fab24a167905ab4c7878502ad3e38fdbe62a41556cec37325759533ce8f25f367c87bb5578d667ae93f9e2fd99bcbc5f2fbba88cf6516139420fcff3b7361d86322c4bd84c82f335abb152c4a93411373aaa8220
+
+Cipher = aes-256-xts
+Key = 27182818284590452353602874713526624977572470936999595749669676273141592653589793238462643383279502884197169399375105820974944592
+IV = ffffffffff0000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
+Ciphertext = 64497e5a831e4a932c09be3e5393376daa599548b816031d224bbf50a818ed2350eae7e96087c8a0db51ad290bd00c1ac1620857635bf246c176ab463be30b808da548081ac847b158e1264be25bb0910bbc92647108089415d45fab1b3d2604e8a8eff1ae4020cfa39936b66827b23f371b92200be90251e6d73c5f86de5fd4a950781933d79a28272b782a2ec313efdfcc0628f43d744c2dc2ff3dcb66999b50c7ca895b0c64791eeaa5f29499fb1c026f84ce5b5c72ba1083cddb5ce45434631665c333b60b11593fb253c5179a2c8db813782a004856a1653011e93fb6d876c18366dd8683f53412c0c180f9c848592d593f8609ca736317d356e13e2bff3a9f59cd9aeb19cd482593d8c46128bb32423b37a9adfb482b99453fbe25a41bf6feb4aa0bef5ed24bf73c762978025482c13115e4015aac992e5613a3b5c2f685b84795cb6e9b2656d8c88157e52c42f978d8634c43d06fea928f2822e465aa6576e9bf419384506cc3ce3c54ac1a6f67dc66f3b30191e698380bc999b05abce19dc0c6dcc2dd001ec535ba18deb2df1a101023108318c75dc98611a09dc48a0acdec676fabdf222f07e026f059b672b56e5cbc8e1d21bbd867dd927212054681d70ea737134cdfce93b6f82ae22423274e58a0821cc5502e2d0ab4585e94de6975be5e0b4efce51cd3e70c25a1fbbbd609d273ad5b0d59631c531f6a0a57b9
+
+
+Cipher = aes-128-xts
+Key = fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0
+IV = 9a785634120000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f10
+Ciphertext = 6c1625db4671522d3d7599601de7ca09ed
+
+Cipher = aes-128-xts
+Key = fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0
+IV = 9a785634120000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f1011
+Ciphertext = d069444b7a7e0cab09e24447d24deb1fedbf
+
+Cipher = aes-128-xts
+Key = fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0
+IV = 9a785634120000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112
+Ciphertext = e5df1351c0544ba1350b3363cd8ef4beedbf9d
+
+Cipher = aes-128-xts
+Key = fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0
+IV = 9a785634120000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f10111213
+Ciphertext = 9d84c813f719aa2c7be3f66171c7c5c2edbf9dac
+
+Cipher = aes-128-xts
+Key = e0e1e2e3e4e5e6e7e8e9eaebecedeeefc0c1c2c3c4c5c6c7c8c9cacbcccdcecf
+IV = 21436587a90000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
+Ciphertext = 38b45812ef43a05bd957e545907e223b954ab4aaf088303ad910eadf14b42be68b2461149d8c8ba85f992be970bc621f1b06573f63e867bf5875acafa04e42ccbd7bd3c2a0fb1fff791ec5ec36c66ae4ac1e806d81fbf709dbe29e471fad38549c8e66f5345d7c1eb94f405d1ec785cc6f6a68f6254dd8339f9d84057e01a17741990482999516b5611a38f41bb6478e6f173f320805dd71b1932fc333cb9ee39936beea9ad96fa10fb4112b901734ddad40bc1878995f8e11aee7d141a2f5d48b7a4e1e7f0b2c04830e69a4fd1378411c2f287edf48c6c4e5c247a19680f7fe41cefbd49b582106e3616cbbe4dfb2344b2ae9519391f3e0fb4922254b1d6d2d19c6d4d537b3a26f3bcc51588b32f3eca0829b6a5ac72578fb814fb43cf80d64a233e3f997a3f02683342f2b33d25b492536b93becb2f5e1a8b82f5b883342729e8ae09d16938841a21a97fb543eea3bbff59f13c1a18449e398701c1ad51648346cbc04c27bb2da3b93a1372ccae548fb53bee476f9e9c91773b1bb19828394d55d3e1a20ed69113a860b6829ffa847224604435070221b257e8dff783615d2cae4803a93aa4334ab482a0afac9c0aeda70b45a481df5dec5df8cc0f423c77a5fd46cd312021d4b438862419a791be03bb4d97c0e59578542531ba466a83baf92cefc151b5cc1611a167893819b63fb8a6b18e86de60290fa72b797b0ce59f3
+
+# Exercise different lengths covering even ciphertext stealing cases
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = 00000000000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f
+Ciphertext = 27a7479befa1d476489f308cd4cfa6e2a96e4bbe3208ff25287dd3819616e89cc78cf7f5e543445f8333d8fa7f56000005279fa5d8b5e4ad40e736ddb4d35412328063fd2aab53e5ea1e0a9f332500a5df9487d07a5c92cc512c8866c7e860ce
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = 00000000000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6061
+Ciphertext = 27A7479BEFA1D476489F308CD4CFA6E2A96E4BBE3208FF25287DD3819616E89CC78CF7F5E543445F8333D8FA7F56000005279FA5D8B5E4AD40E736DDB4D35412328063FD2AAB53E5EA1E0A9F332500A5B079C6307EA0914559C6D2FB6384F8AADF94
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = 00000000000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f
+Ciphertext = 27a7479befa1d476489f308cd4cfa6e2a96e4bbe3208ff25287dd3819616e89cc78cf7f5e543445f8333d8fa7f56000005279fa5d8b5e4ad40e736ddb4d35412328063fd2aab53e5ea1e0a9f332500a5df9487d07a5c92cc512c8866c7e860ce93fdf166a24912b422976146ae20ce84
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = 00000000000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f7071
+Ciphertext = 27A7479BEFA1D476489F308CD4CFA6E2A96E4BBE3208FF25287DD3819616E89CC78CF7F5E543445F8333D8FA7F56000005279FA5D8B5E4AD40E736DDB4D35412328063FD2AAB53E5EA1E0A9F332500A5DF9487D07A5C92CC512C8866C7E860CEF4F253466EF4953ADC8FE2F5BC1FF57593FD
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = 00000000000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f
+Ciphertext = 27a7479befa1d476489f308cd4cfa6e2a96e4bbe3208ff25287dd3819616e89cc78cf7f5e543445f8333d8fa7f56000005279fa5d8b5e4ad40e736ddb4d35412328063fd2aab53e5ea1e0a9f332500a5df9487d07a5c92cc512c8866c7e860ce93fdf166a24912b422976146ae20ce846bb7dc9ba94a767aaef20c0d61ad0265
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = 00000000000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f8081
+Ciphertext = 27A7479BEFA1D476489F308CD4CFA6E2A96E4BBE3208FF25287DD3819616E89CC78CF7F5E543445F8333D8FA7F56000005279FA5D8B5E4AD40E736DDB4D35412328063FD2AAB53E5EA1E0A9F332500A5DF9487D07A5C92CC512C8866C7E860CE93FDF166A24912B422976146AE20CE842973C68248EDDFE26FB9B096659C8A5D6BB7
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = 00000000000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f
+Ciphertext = 27a7479befa1d476489f308cd4cfa6e2a96e4bbe3208ff25287dd3819616e89cc78cf7f5e543445f8333d8fa7f56000005279fa5d8b5e4ad40e736ddb4d35412328063fd2aab53e5ea1e0a9f332500a5df9487d07a5c92cc512c8866c7e860ce93fdf166a24912b422976146ae20ce846bb7dc9ba94a767aaef20c0d61ad02655ea92dc4c4e41a8952c651d33174be51
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = 00000000000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f9091
+Ciphertext = 27A7479BEFA1D476489F308CD4CFA6E2A96E4BBE3208FF25287DD3819616E89CC78CF7F5E543445F8333D8FA7F56000005279FA5D8B5E4AD40E736DDB4D35412328063FD2AAB53E5EA1E0A9F332500A5DF9487D07A5C92CC512C8866C7E860CE93FDF166A24912B422976146AE20CE846BB7DC9BA94A767AAEF20C0D61AD0265C4DD16E65A24575A709F174593F19FF85EA9
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = 00000000000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f
+Ciphertext = 27a7479befa1d476489f308cd4cfa6e2a96e4bbe3208ff25287dd3819616e89cc78cf7f5e543445f8333d8fa7f56000005279fa5d8b5e4ad40e736ddb4d35412328063fd2aab53e5ea1e0a9f332500a5df9487d07a5c92cc512c8866c7e860ce93fdf166a24912b422976146ae20ce846bb7dc9ba94a767aaef20c0d61ad02655ea92dc4c4e41a8952c651d33174be51a10c421110e6d81588ede82103a252d8
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = 00000000000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1
+Ciphertext = 27A7479BEFA1D476489F308CD4CFA6E2A96E4BBE3208FF25287DD3819616E89CC78CF7F5E543445F8333D8FA7F56000005279FA5D8B5E4AD40E736DDB4D35412328063FD2AAB53E5EA1E0A9F332500A5DF9487D07A5C92CC512C8866C7E860CE93FDF166A24912B422976146AE20CE846BB7DC9BA94A767AAEF20C0D61AD02655EA92DC4C4E41A8952C651D33174BE519215FA160C664D4B07D757A034AB3B35A10C
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = 00000000000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf
+Ciphertext = 27a7479befa1d476489f308cd4cfa6e2a96e4bbe3208ff25287dd3819616e89cc78cf7f5e543445f8333d8fa7f56000005279fa5d8b5e4ad40e736ddb4d35412328063fd2aab53e5ea1e0a9f332500a5df9487d07a5c92cc512c8866c7e860ce93fdf166a24912b422976146ae20ce846bb7dc9ba94a767aaef20c0d61ad02655ea92dc4c4e41a8952c651d33174be51a10c421110e6d81588ede82103a252d8a750e8768defffed9122810aaeb99f91
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = 00000000000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1
+Ciphertext = 27A7479BEFA1D476489F308CD4CFA6E2A96E4BBE3208FF25287DD3819616E89CC78CF7F5E543445F8333D8FA7F56000005279FA5D8B5E4AD40E736DDB4D35412328063FD2AAB53E5EA1E0A9F332500A5DF9487D07A5C92CC512C8866C7E860CE93FDF166A24912B422976146AE20CE846BB7DC9BA94A767AAEF20C0D61AD02655EA92DC4C4E41A8952C651D33174BE51A10C421110E6D81588EDE82103A252D82C6CBC24F9357BD1FB882AA4B2CC2E7FA750
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = 00000000000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf
+Ciphertext = 27a7479befa1d476489f308cd4cfa6e2a96e4bbe3208ff25287dd3819616e89cc78cf7f5e543445f8333d8fa7f56000005279fa5d8b5e4ad40e736ddb4d35412328063fd2aab53e5ea1e0a9f332500a5df9487d07a5c92cc512c8866c7e860ce93fdf166a24912b422976146ae20ce846bb7dc9ba94a767aaef20c0d61ad02655ea92dc4c4e41a8952c651d33174be51a10c421110e6d81588ede82103a252d8a750e8768defffed9122810aaeb99f9172af82b604dc4b8e51bcb08235a6f434
+
+Cipher = aes-128-xts
+Key = 2718281828459045235360287471352631415926535897932384626433832795
+IV = 00000000000000000000000000000000
+Plaintext = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1
+Ciphertext = 27A7479BEFA1D476489F308CD4CFA6E2A96E4BBE3208FF25287DD3819616E89CC78CF7F5E543445F8333D8FA7F56000005279FA5D8B5E4AD40E736DDB4D35412328063FD2AAB53E5EA1E0A9F332500A5DF9487D07A5C92CC512C8866C7E860CE93FDF166A24912B422976146AE20CE846BB7DC9BA94A767AAEF20C0D61AD02655EA92DC4C4E41A8952C651D33174BE51A10C421110E6D81588EDE82103A252D8A750E8768DEFFFED9122810AAEB99F910409B03D164E727C31290FD4E039500872AF
+
+# AES wrap tests from RFC3394
+Cipher = id-aes128-wrap
+Key = 000102030405060708090A0B0C0D0E0F
+Plaintext = 00112233445566778899AABBCCDDEEFF
+Ciphertext = 1FA68B0A8112B447AEF34BD8FB5A7B829D3E862371D2CFE5
+
+Cipher = id-aes192-wrap
+Key = 000102030405060708090A0B0C0D0E0F1011121314151617
+Plaintext = 00112233445566778899AABBCCDDEEFF
+Ciphertext = 96778B25AE6CA435F92B5B97C050AED2468AB8A17AD84E5D
+
+Cipher = id-aes256-wrap
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
+Plaintext = 00112233445566778899AABBCCDDEEFF
+Ciphertext = 64E8C3F9CE0F5BA263E9777905818A2A93C8191E7D6E8AE7
+
+Cipher = id-aes192-wrap
+Key = 000102030405060708090A0B0C0D0E0F1011121314151617
+Plaintext = 00112233445566778899AABBCCDDEEFF0001020304050607
+Ciphertext = 031D33264E15D33268F24EC260743EDCE1C6C7DDEE725A936BA814915C6762D2
+
+Cipher = id-aes256-wrap
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
+Plaintext = 00112233445566778899AABBCCDDEEFF0001020304050607
+Ciphertext = A8F9BC1612C68B3FF6E6F4FBE30E71E4769C8B80A32CB8958CD5D17D6B254DA1
+
+Cipher = id-aes256-wrap
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
+Plaintext = 00112233445566778899AABBCCDDEEFF000102030405060708090A0B0C0D0E0F
+Ciphertext = 28C9F404C4B810F4CBCCB35CFB87F8263F5786E2D80ED326CBC7F0E71A99F43BFB988B9B7A02DD21
+
+# Same as previous example but with invalid unwrap key: should be rejected
+# without returning any plaintext
+Cipher = id-aes256-wrap
+Operation = DECRYPT
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E00
+Plaintext = 00112233445566778899AABBCCDDEEFF000102030405060708090A0B0C0D0E0F
+Ciphertext = 28C9F404C4B810F4CBCCB35CFB87F8263F5786E2D80ED326CBC7F0E71A99F43BFB988B9B7A02DD21
+Result = CIPHERUPDATE_ERROR
+
+
+# AES wrap tests from RFC5649
+Cipher = id-aes192-wrap-pad
+Key = 5840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8
+Plaintext = c37b7e6492584340bed12207808941155068f738
+Ciphertext = 138bdeaa9b8fa7fc61f97742e72248ee5ae6ae5360d1ae6a5f54f373fa543b6a
+
+Cipher = id-aes192-wrap-pad
+Key = 5840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8
+Plaintext = 466f7250617369
+Ciphertext = afbeb0f07dfbf5419200f2ccb50bb24f
+
+Title = RC4 tests
+
+Cipher = RC4
+Key = 0123456789abcdef0123456789abcdef
+Plaintext = 0123456789abcdef
+Ciphertext = 75b7878099e0c596
+
+Cipher = RC4
+Key = 0123456789abcdef0123456789abcdef
+Plaintext = 0000000000000000
+Ciphertext = 7494c2e7104b0879
+
+Cipher = RC4
+Key = 00000000000000000000000000000000
+Plaintext = 0000000000000000
+Ciphertext = de188941a3375d3a
+
+Cipher = RC4
+Key = ef012345ef012345ef012345ef012345
+Plaintext = 0000000000000000000000000000000000000000
+Ciphertext = d6a141a7ec3c38dfbd615a1162e1c7ba36b67858
+
+Cipher = RC4
+Key = 0123456789abcdef0123456789abcdef
+Plaintext = 123456789ABCDEF0123456789ABCDEF0123456789ABCDEF012345678
+Ciphertext = 66a0949f8af7d6891f7f832ba833c00c892ebe30143ce28740011ecf
+
+Cipher = RC4
+Key = ef012345ef012345ef012345ef012345
+Plaintext = 00000000000000000000
+Ciphertext = d6a141a7ec3c38dfbd61
+
+Title = Camellia tests from RFC3713
+
+# For all ECB encrypts and decrypts, the transformed sequence is
+# CAMELLIA-bits-ECB:key::plaintext:ciphertext:encdec
+Cipher = CAMELLIA-128-ECB
+Key = 0123456789abcdeffedcba9876543210
+Plaintext = 0123456789abcdeffedcba9876543210
+Ciphertext = 67673138549669730857065648eabe43
+
+Cipher = CAMELLIA-192-ECB
+Key = 0123456789abcdeffedcba98765432100011223344556677
+Plaintext = 0123456789abcdeffedcba9876543210
+Ciphertext = b4993401b3e996f84ee5cee7d79b09b9
+
+Cipher = CAMELLIA-256-ECB
+Key = 0123456789abcdeffedcba987654321000112233445566778899aabbccddeeff
+Plaintext = 0123456789abcdeffedcba9876543210
+Ciphertext = 9acc237dff16d76c20ef7c919e3a7509
+
+# ECB-CAMELLIA128.Encrypt
+Cipher = CAMELLIA-128-ECB
+Key = 000102030405060708090A0B0C0D0E0F
+Operation = ENCRYPT
+Plaintext = 00112233445566778899AABBCCDDEEFF
+Ciphertext = 77CF412067AF8270613529149919546F
+
+Cipher = CAMELLIA-192-ECB
+Key = 000102030405060708090A0B0C0D0E0F1011121314151617
+Operation = ENCRYPT
+Plaintext = 00112233445566778899AABBCCDDEEFF
+Ciphertext = B22F3C36B72D31329EEE8ADDC2906C68
+
+Cipher = CAMELLIA-256-ECB
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
+Operation = ENCRYPT
+Plaintext = 00112233445566778899AABBCCDDEEFF
+Ciphertext = 2EDF1F3418D53B88841FC8985FB1ECF2
+
+
+# ECB-CAMELLIA128.Encrypt and ECB-CAMELLIA128.Decrypt
+Cipher = CAMELLIA-128-ECB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = 432FC5DCD628115B7C388D770B270C96
+
+Cipher = CAMELLIA-128-ECB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 0BE1F14023782A22E8384C5ABB7FAB2B
+
+Cipher = CAMELLIA-128-ECB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = A0A1ABCD1893AB6FE0FE5B65DF5F8636
+
+Cipher = CAMELLIA-128-ECB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = E61925E0D5DFAA9BB29F815B3076E51A
+
+
+# ECB-CAMELLIA192.Encrypt and ECB-CAMELLIA192.Decrypt
+Cipher = CAMELLIA-192-ECB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = CCCC6C4E138B45848514D48D0D3439D3
+
+Cipher = CAMELLIA-192-ECB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 5713C62C14B2EC0F8393B6AFD6F5785A
+
+Cipher = CAMELLIA-192-ECB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = B40ED2B60EB54D09D030CF511FEEF366
+
+Cipher = CAMELLIA-192-ECB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 909DBD95799096748CB27357E73E1D26
+
+
+# ECB-CAMELLIA256.Encrypt and ECB-CAMELLIA256.Decrypt
+Cipher = CAMELLIA-256-ECB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = BEFD219B112FA00098919CD101C9CCFA
+
+Cipher = CAMELLIA-256-ECB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = C91D3A8F1AEA08A9386CF4B66C0169EA
+
+Cipher = CAMELLIA-256-ECB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = A623D711DC5F25A51BB8A80D56397D28
+
+Cipher = CAMELLIA-256-ECB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 7960109FB6DC42947FCFE59EA3C5EB6B
+
+
+# For all CBC encrypts and decrypts, the transformed sequence is
+# CAMELLIA-bits-CBC:key:IV/ciphertext':plaintext:ciphertext:encdec
+# CBC-CAMELLIA128.Encrypt and CBC-CAMELLIA128.Decrypt
+Cipher = CAMELLIA-128-CBC
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 000102030405060708090A0B0C0D0E0F
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = 1607CF494B36BBF00DAEB0B503C831AB
+
+Cipher = CAMELLIA-128-CBC
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 1607CF494B36BBF00DAEB0B503C831AB
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = A2F2CF671629EF7840C5A5DFB5074887
+
+Cipher = CAMELLIA-128-CBC
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = A2F2CF671629EF7840C5A5DFB5074887
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 0F06165008CF8B8B5A63586362543E54
+
+Cipher = CAMELLIA-128-CBC
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 36A84CDAFD5F9A85ADA0F0A993D6D577
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 74C64268CDB8B8FAF5B34E8AF3732980
+
+
+# CBC-CAMELLIA192.Encrypt and CBC-CAMELLIA192.Decrypt
+Cipher = CAMELLIA-192-CBC
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 000102030405060708090A0B0C0D0E0F
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = 2A4830AB5AC4A1A2405955FD2195CF93
+
+Cipher = CAMELLIA-192-CBC
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 2A4830AB5AC4A1A2405955FD2195CF93
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 5D5A869BD14CE54264F892A6DD2EC3D5
+
+Cipher = CAMELLIA-192-CBC
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 5D5A869BD14CE54264F892A6DD2EC3D5
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 37D359C3349836D884E310ADDF68C449
+
+Cipher = CAMELLIA-192-CBC
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 37D359C3349836D884E310ADDF68C449
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 01FAAA930B4AB9916E9668E1428C6B08
+
+
+# CBC-CAMELLIA256.Encrypt and CBC-CAMELLIA256.Decrypt
+Cipher = CAMELLIA-256-CBC
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 000102030405060708090A0B0C0D0E0F
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = E6CFA35FC02B134A4D2C0B6737AC3EDA
+
+Cipher = CAMELLIA-256-CBC
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = E6CFA35FC02B134A4D2C0B6737AC3EDA
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 36CBEB73BD504B4070B1B7DE2B21EB50
+
+Cipher = CAMELLIA-256-CBC
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 36CBEB73BD504B4070B1B7DE2B21EB50
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = E31A6055297D96CA3330CDF1B1860A83
+
+Cipher = CAMELLIA-256-CBC
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = E31A6055297D96CA3330CDF1B1860A83
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 5D563F6D1CCCF236051C0C5C1C58F28F
+
+
+# We don't support CFB{1,8}-CAMELLIAxxx.{En,De}crypt
+# For all CFB128 encrypts and decrypts, the transformed sequence is
+# CAMELLIA-bits-CFB:key:IV/ciphertext':plaintext:ciphertext:encdec
+# CFB128-CAMELLIA128.Encrypt
+Cipher = CAMELLIA-128-CFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = ENCRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = 14F7646187817EB586599146B82BD719
+
+Cipher = CAMELLIA-128-CFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 14F7646187817EB586599146B82BD719
+Operation = ENCRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = A53D28BB82DF741103EA4F921A44880B
+
+Cipher = CAMELLIA-128-CFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = A53D28BB82DF741103EA4F921A44880B
+Operation = ENCRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 9C2157A664626D1DEF9EA420FDE69B96
+
+Cipher = CAMELLIA-128-CFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 9C2157A664626D1DEF9EA420FDE69B96
+Operation = ENCRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 742A25F0542340C7BAEF24CA8482BB09
+
+
+# CFB128-CAMELLIA128.Decrypt
+Cipher = CAMELLIA-128-CFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = DECRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = 14F7646187817EB586599146B82BD719
+
+Cipher = CAMELLIA-128-CFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 14F7646187817EB586599146B82BD719
+Operation = DECRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = A53D28BB82DF741103EA4F921A44880B
+
+Cipher = CAMELLIA-128-CFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = A53D28BB82DF741103EA4F921A44880B
+Operation = DECRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 9C2157A664626D1DEF9EA420FDE69B96
+
+Cipher = CAMELLIA-128-CFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 9C2157A664626D1DEF9EA420FDE69B96
+Operation = DECRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 742A25F0542340C7BAEF24CA8482BB09
+
+
+# CFB128-CAMELLIA192.Encrypt
+Cipher = CAMELLIA-192-CFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = ENCRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = C832BB9780677DAA82D9B6860DCD565E
+
+Cipher = CAMELLIA-192-CFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = C832BB9780677DAA82D9B6860DCD565E
+Operation = ENCRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 86F8491627906D780C7A6D46EA331F98
+
+Cipher = CAMELLIA-192-CFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 86F8491627906D780C7A6D46EA331F98
+Operation = ENCRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 69511CCE594CF710CB98BB63D7221F01
+
+Cipher = CAMELLIA-192-CFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 69511CCE594CF710CB98BB63D7221F01
+Operation = ENCRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = D5B5378A3ABED55803F25565D8907B84
+
+
+# CFB128-CAMELLIA192.Decrypt
+Cipher = CAMELLIA-192-CFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = DECRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = C832BB9780677DAA82D9B6860DCD565E
+
+Cipher = CAMELLIA-192-CFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = C832BB9780677DAA82D9B6860DCD565E
+Operation = DECRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 86F8491627906D780C7A6D46EA331F98
+
+Cipher = CAMELLIA-192-CFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 86F8491627906D780C7A6D46EA331F98
+Operation = DECRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 69511CCE594CF710CB98BB63D7221F01
+
+Cipher = CAMELLIA-192-CFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 69511CCE594CF710CB98BB63D7221F01
+Operation = DECRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = D5B5378A3ABED55803F25565D8907B84
+
+
+# CFB128-CAMELLIA256.Encrypt
+Cipher = CAMELLIA-256-CFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = ENCRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = CF6107BB0CEA7D7FB1BD31F5E7B06C93
+
+Cipher = CAMELLIA-256-CFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = CF6107BB0CEA7D7FB1BD31F5E7B06C93
+Operation = ENCRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 89BEDB4CCDD864EA11BA4CBE849B5E2B
+
+Cipher = CAMELLIA-256-CFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 89BEDB4CCDD864EA11BA4CBE849B5E2B
+Operation = ENCRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 555FC3F34BDD2D54C62D9E3BF338C1C4
+
+Cipher = CAMELLIA-256-CFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 555FC3F34BDD2D54C62D9E3BF338C1C4
+Operation = ENCRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 5953ADCE14DB8C7F39F1BD39F359BFFA
+
+
+# CFB128-CAMELLIA256.Decrypt
+Cipher = CAMELLIA-256-CFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = DECRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = CF6107BB0CEA7D7FB1BD31F5E7B06C93
+
+Cipher = CAMELLIA-256-CFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = CF6107BB0CEA7D7FB1BD31F5E7B06C93
+Operation = DECRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 89BEDB4CCDD864EA11BA4CBE849B5E2B
+
+Cipher = CAMELLIA-256-CFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 89BEDB4CCDD864EA11BA4CBE849B5E2B
+Operation = DECRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 555FC3F34BDD2D54C62D9E3BF338C1C4
+
+Cipher = CAMELLIA-256-CFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 555FC3F34BDD2D54C62D9E3BF338C1C4
+Operation = DECRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 5953ADCE14DB8C7F39F1BD39F359BFFA
+
+
+# For all OFB encrypts and decrypts, the transformed sequence is
+# CAMELLIA-bits-OFB:key:IV/output':plaintext:ciphertext:encdec
+# OFB-CAMELLIA128.Encrypt
+Cipher = CAMELLIA-128-OFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = ENCRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = 14F7646187817EB586599146B82BD719
+
+Cipher = CAMELLIA-128-OFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 50FE67CC996D32B6DA0937E99BAFEC60
+Operation = ENCRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 25623DB569CA51E01482649977E28D84
+
+Cipher = CAMELLIA-128-OFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = D9A4DADA0892239F6B8B3D7680E15674
+Operation = ENCRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = C776634A60729DC657D12B9FCA801E98
+
+Cipher = CAMELLIA-128-OFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = A78819583F0308E7A6BF36B1386ABF23
+Operation = ENCRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = D776379BE0E50825E681DA1A4C980E8E
+
+
+# OFB-CAMELLIA128.Decrypt
+Cipher = CAMELLIA-128-OFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = DECRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = 14F7646187817EB586599146B82BD719
+
+Cipher = CAMELLIA-128-OFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = 50FE67CC996D32B6DA0937E99BAFEC60
+Operation = DECRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 25623DB569CA51E01482649977E28D84
+
+Cipher = CAMELLIA-128-OFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = D9A4DADA0892239F6B8B3D7680E15674
+Operation = DECRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = C776634A60729DC657D12B9FCA801E98
+
+Cipher = CAMELLIA-128-OFB
+Key = 2B7E151628AED2A6ABF7158809CF4F3C
+IV = A78819583F0308E7A6BF36B1386ABF23
+Operation = DECRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = D776379BE0E50825E681DA1A4C980E8E
+
+
+# OFB-CAMELLIA192.Encrypt
+Cipher = CAMELLIA-192-OFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = ENCRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = C832BB9780677DAA82D9B6860DCD565E
+
+Cipher = CAMELLIA-192-OFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = A609B38DF3B1133DDDFF2718BA09565E
+Operation = ENCRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 8ECEB7D0350D72C7F78562AEBDF99339
+
+Cipher = CAMELLIA-192-OFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 52EF01DA52602FE0975F78AC84BF8A50
+Operation = ENCRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = BDD62DBBB9700846C53B507F544696F0
+
+Cipher = CAMELLIA-192-OFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = BD5286AC63AABD7EB067AC54B553F71D
+Operation = ENCRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = E28014E046B802F385C4C2E13EAD4A72
+
+
+# OFB-CAMELLIA192.Decrypt
+Cipher = CAMELLIA-192-OFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = DECRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = C832BB9780677DAA82D9B6860DCD565E
+
+Cipher = CAMELLIA-192-OFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = A609B38DF3B1133DDDFF2718BA09565E
+Operation = DECRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 8ECEB7D0350D72C7F78562AEBDF99339
+
+Cipher = CAMELLIA-192-OFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = 52EF01DA52602FE0975F78AC84BF8A50
+Operation = DECRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = BDD62DBBB9700846C53B507F544696F0
+
+Cipher = CAMELLIA-192-OFB
+Key = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B
+IV = BD5286AC63AABD7EB067AC54B553F71D
+Operation = DECRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = E28014E046B802F385C4C2E13EAD4A72
+
+
+# OFB-CAMELLIA256.Encrypt
+Cipher = CAMELLIA-256-OFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = ENCRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = CF6107BB0CEA7D7FB1BD31F5E7B06C93
+
+Cipher = CAMELLIA-256-OFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = B7BF3A5DF43989DD97F0FA97EBCE2F4A
+Operation = ENCRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 127AD97E8E3994E4820027D7BA109368
+
+Cipher = CAMELLIA-256-OFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = E1C656305ED1A7A6563805746FE03EDC
+Operation = ENCRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 6BFF6265A6A6B7A535BC65A80B17214E
+
+Cipher = CAMELLIA-256-OFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 41635BE625B48AFC1666DD42A09D96E7
+Operation = ENCRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 0A4A0404E26AA78A27CB271E8BF3CF20
+
+
+# OFB-CAMELLIA256.Decrypt
+Cipher = CAMELLIA-256-OFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 000102030405060708090A0B0C0D0E0F
+Operation = DECRYPT
+Plaintext = 6BC1BEE22E409F96E93D7E117393172A
+Ciphertext = CF6107BB0CEA7D7FB1BD31F5E7B06C93
+
+Cipher = CAMELLIA-256-OFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = B7BF3A5DF43989DD97F0FA97EBCE2F4A
+Operation = DECRYPT
+Plaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51
+Ciphertext = 127AD97E8E3994E4820027D7BA109368
+
+Cipher = CAMELLIA-256-OFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = E1C656305ED1A7A6563805746FE03EDC
+Operation = DECRYPT
+Plaintext = 30C81C46A35CE411E5FBC1191A0A52EF
+Ciphertext = 6BFF6265A6A6B7A535BC65A80B17214E
+
+Cipher = CAMELLIA-256-OFB
+Key = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4
+IV = 41635BE625B48AFC1666DD42A09D96E7
+Operation = DECRYPT
+Plaintext = F69F2445DF4F9B17AD2B417BE66C3710
+Ciphertext = 0A4A0404E26AA78A27CB271E8BF3CF20
+
+
+# Camellia test vectors from RFC5528
+Cipher = CAMELLIA-128-CTR
+Key = AE6852F8121067CC4BF7A5765577F39E
+IV = 00000030000000000000000000000001
+Operation = ENCRYPT
+Plaintext = 53696E676C6520626C6F636B206D7367
+Ciphertext = D09DC29A8214619A20877C76DB1F0B3F
+
+Cipher = CAMELLIA-128-CTR
+Key = 7E24067817FAE0D743D6CE1F32539163
+IV = 006CB6DBC0543B59DA48D90B00000001
+Operation = ENCRYPT
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
+Ciphertext = DBF3C78DC08396D4DA7C907765BBCB442B8E8E0F31F0DCA72C7417E35360E048
+
+Cipher = CAMELLIA-128-CTR
+Key = 7691BE035E5020A8AC6E618529F9A0DC
+IV = 00E0017B27777F3F4A1786F000000001
+Operation = ENCRYPT
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20212223
+Ciphertext = B19D1FCDCB75EB882F849CE24D85CF739CE64B2B5C9D73F14F2D5D9DCE9889CDDF508696
+
+Cipher = CAMELLIA-192-CTR
+Key = 16AF5B145FC9F579C175F93E3BFB0EED863D06CCFDB78515
+IV = 0000004836733C147D6D93CB00000001
+Operation = ENCRYPT
+Plaintext = 53696E676C6520626C6F636B206D7367
+Ciphertext = 2379399E8A8D2B2B16702FC78B9E9696
+
+Cipher = CAMELLIA-192-CTR
+Key = 7C5CB2401B3DC33C19E7340819E0F69C678C3DB8E6F6A91A
+IV = 0096B03B020C6EADC2CB500D00000001
+Operation = ENCRYPT
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
+Ciphertext = 7DEF34F7A5D0E415674B7FFCAE67C75DD018B86FF23051E056392A99F35A4CED
+
+Cipher = CAMELLIA-192-CTR
+Key = 02BF391EE8ECB159B959617B0965279BF59B60A786D3E0FE
+IV = 0007BDFD5CBD60278DCC091200000001
+Operation = ENCRYPT
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20212223
+Ciphertext = 5710E556E1487A20B5AC0E73F19E4E7876F37FDC91B1EF4D4DADE8E666A64D0ED557AB57
+
+Cipher = CAMELLIA-256-CTR
+Key = 776BEFF2851DB06F4C8A0542C8696F6C6A81AF1EEC96B4D37FC1D689E6C1C104
+IV = 00000060DB5672C97AA8F0B200000001
+Operation = ENCRYPT
+Plaintext = 53696E676C6520626C6F636B206D7367
+Ciphertext = 3401F9C8247EFFCEBD6994714C1BBB11
+
+Cipher = CAMELLIA-256-CTR
+Key = F6D66D6BD52D59BB0796365879EFF886C66DD51A5B6A99744B50590C87A23884
+IV = 00FAAC24C1585EF15A43D87500000001
+Operation = ENCRYPT
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
+Ciphertext = D6C30392246F7808A83C2B22A8839E45E51CD48A1CDF406EBC9CC2D3AB834108
+
+Cipher = CAMELLIA-256-CTR
+Key = FF7A617CE69148E4F1726E2F43581DE2AA62D9F805532EDFF1EED687FB54153D
+IV = 001CC5B751A51D70A1C1114800000001
+Operation = ENCRYPT
+Plaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20212223
+Ciphertext = A4DA23FCE6A5FFAA6D64AE9A0652A42CD161A34B65F9679F75C01F101F71276F15EF0D8D
+
+Title = SM4 test vectors from IETF draft-ribose-cfrg-sm4
+
+Cipher = SM4-ECB
+Key = 0123456789ABCDEFFEDCBA9876543210
+Plaintext = 0123456789ABCDEFFEDCBA9876543210
+Ciphertext = 681EDF34D206965E86B3E94F536E4246
+
+Cipher = SM4-CBC
+Key = 0123456789ABCDEFFEDCBA9876543210
+IV = 0123456789ABCDEFFEDCBA9876543210
+Plaintext = 0123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA9876543210
+Ciphertext = 2677F46B09C122CC975533105BD4A22AF6125F7275CE552C3A2BBCF533DE8A3B
+
+Cipher = SM4-OFB
+Key = 0123456789ABCDEFFEDCBA9876543210
+IV = 0123456789ABCDEFFEDCBA9876543210
+Plaintext = 0123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA9876543210
+Ciphertext = 693D9A535BAD5BB1786F53D7253A7056F2075D28B5235F58D50027E4177D2BCE
+
+Cipher = SM4-CFB
+Key = 0123456789ABCDEFFEDCBA9876543210
+IV = 0123456789ABCDEFFEDCBA9876543210
+Plaintext = 0123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA9876543210
+Ciphertext = 693D9A535BAD5BB1786F53D7253A70569ED258A85A0467CC92AAB393DD978995
+
+Cipher = SM4-CTR
+Key = 0123456789ABCDEFFEDCBA9876543210
+IV = 0123456789ABCDEFFEDCBA9876543210
+Plaintext = AAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFEEEEEEEEEEEEEEEEAAAAAAAAAAAAAAAA
+Ciphertext = C2B4759E78AC3CF43D0852F4E8D5F9FD7256E8A5FCB65A350EE00630912E44492A0B17E1B85B060D0FBA612D8A95831638B361FD5FFACD942F081485A83CA35D
+
+Title = ARIA test vectors from RFC5794 (and others)
+
+Cipher = ARIA-128-ECB
+Key = 000102030405060708090a0b0c0d0e0f
+Plaintext = 00112233445566778899aabbccddeeff
+Ciphertext = d718fbd6ab644c739da95f3be6451778
+
+Cipher = ARIA-192-ECB
+Key = 000102030405060708090a0b0c0d0e0f1011121314151617
+Plaintext = 00112233445566778899aabbccddeeff
+Ciphertext = 26449c1805dbe7aa25a468ce263a9e79
+
+Cipher = ARIA-256-ECB
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+Plaintext = 00112233445566778899aabbccddeeff
+Ciphertext = f92bd7c79fb72e2f2b8f80c1972d24fc
+
+# Additional ARIA mode vectors from http://210.104.33.10/ARIA/doc/ARIA-testvector-e.pdf
+Cipher = ARIA-128-ECB
+Key = 00112233445566778899aabbccddeeff
+Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd
+Ciphertext = c6ecd08e22c30abdb215cf74e2075e6e29ccaac63448708d331b2f816c51b17d9e133d1528dbf0af5787c7f3a3f5c2bf6b6f345907a3055612ce072ff54de7d788424da6e8ccfe8172b391be499354165665ba7864917000a6eeb2ecb4a698edfc7887e7f556377614ab0a282293e6d884dbb84206cdb16ed1754e77a1f243fd086953f752cc1e46c7c794ae85537dcaec8dd721f55c93b6edfe2adea43873e8
+
+Cipher = ARIA-128-CBC
+Key = 00112233445566778899aabbccddeeff
+IV = 0f1e2d3c4b5a69788796a5b4c3d2e1f0
+Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd
+Ciphertext = 49d61860b14909109cef0d22a9268134fadf9fb23151e9645fba75018bdb1538b53334634bbf7d4cd4b5377033060c155fe3948ca75de1031e1d85619e0ad61eb419a866b3c2dbfd10a4ed18b22149f75897f0b8668b0c1c542c687778835fb7cd46e45f85eaa7072437dd9fa6793d6f8d4ccefc4eb1ac641ac1bd30b18c6d64c49bca137eb21c2e04da62712ca2b4f540c57112c38791852cfac7a5d19ed83a
+
+Cipher = ARIA-128-CFB
+Key = 00112233445566778899aabbccddeeff
+IV = 0f1e2d3c4b5a69788796a5b4c3d2e1f0
+Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd
+Ciphertext = 3720e53ba7d615383406b09f0a05a200c07c21e6370f413a5d132500a68285017c61b434c7b7ca9685a51071861e4d4bb873b599b479e2d573dddeafba89f812ac6a9e44d554078eb3be94839db4b33da3f59c063123a7ef6f20e10579fa4fd239100ca73b52d4fcafeadee73f139f78f9b7614c2b3b9dbe010f87db06a89a9435f79ce8121431371f4e87b984e0230c22a6dacb32fc42dcc6accef33285bf11
+
+Cipher = ARIA-128-CFB8
+Key = 00112233445566778899aabbccddeeff
+IV = 0f1e2d3c4b5a69788796a5b4c3d2e1f0
+Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd
+Ciphertext = 373c8f6a965599ec785cc8f8149f6c81b632ccb8e0c6eb6a9707ae52c59257a41f94701c1096933127a90195ed0c8e98690547572423bb45c3d70e4a18ee56b967c10e000ba4df5fba7c404134a343d8375d04b151d161ef83417fe1748447d30a6723c406733df7d18aa39a20752d2381942e244811bb97f72eae446b1815aa690cd1b1adcbd007c0088ecdc91cb2e2caf0e11e72459878137eea64ac62a9a1
+
+Cipher = ARIA-128-OFB
+Key = 00112233445566778899aabbccddeeff
+IV = 0f1e2d3c4b5a69788796a5b4c3d2e1f0
+Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd
+Ciphertext = 3720e53ba7d615383406b09f0a05a2000063063f0560083483faeb041c8adecef30cf80cefb002a0d280759168ec01db3d49f61aced260bd43eec0a2731730eec6fa4f2304319cf8ccac2d7be7833e4f8ae6ce967012c1c6badc5d28e7e4144f6bf5cebe01253ee202afce4bc61f28dec069a6f16f6c8a7dd2afae44148f6ff4d0029d5c607b5fa6b8c8a6301cde5c7033565cd0b8f0974ab490b236197ba04a
+
+Cipher = ARIA-128-CTR
+Key = 00112233445566778899aabbccddeeff
+IV = 00000000000000000000000000000000
+Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd
+Ciphertext = ac5d7de805a0bf1c57c854501af60fa11497e2a34519dea1569e91e5b5ccae2ff3bfa1bf975f4571f48be191613546c3911163c085f871f0e7ae5f2a085b81851c2a3ddf20ecb8fa51901aec8ee4ba32a35dab67bb72cd9140ad188a967ac0fbbdfa94ea6cce47dcf8525ab5a814cfeb2bb60ee2b126e2d9d847c1a9e96f9019e3e6a7fe40d3829afb73db1cc245646addb62d9b907baaafbe46a73dbc131d3d
+
+Cipher = ARIA-192-ECB
+Key = 00112233445566778899aabbccddeeff0011223344556677
+Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd
+Ciphertext = 8d1470625f59ebacb0e55b534b3e462b5f23d33bff78f46c3c15911f4a21809aaccad80b4bda915aa9dae6bcebe06a6c83f77fd5391acfe61de2f646b5d447edbfd5bb49b12fbb9145b227895a757b2af1f7188734863d7b8b6ede5a5b2f06a0a233c8523d2db778fb31b0e311f32700152f33861e9d040c83b5eb40cd88ea49975709dc629365a189f78a3ec40345fc6a5a307a8f9a4413091e007eca5645a0
+
+Cipher = ARIA-192-CBC
+Key = 00112233445566778899aabbccddeeff0011223344556677
+IV = 0f1e2d3c4b5a69788796a5b4c3d2e1f0
+Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd
+Ciphertext = afe6cf23974b533c672a826264ea785f4e4f7f780dc7f3f1e0962b80902386d514e9c3e77259de92dd1102ffab086c1ea52a71260db5920a83295c25320e421147ca45d532f327b856ea947cd2196ae2e040826548b4c891b0ed0ca6e714dbc4631998d548110d666b3d54c2a091955c6f05beb4f62309368696c9791fc4c551564a2637f194346ec45fbca6c72a5b4612e208d531d6c34cc5c64eac6bd0cf8c
+
+Cipher = ARIA-192-CFB
+Key = 00112233445566778899aabbccddeeff0011223344556677
+IV = 0f1e2d3c4b5a69788796a5b4c3d2e1f0
+Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd
+Ciphertext = 4171f7192bf4495494d2736129640f5c4d87a9a213664c9448477c6ecc2013598d9766952dd8c3868f17e36ef66fd84bfa45d1593d2d6ee3ea2115047d710d4fb66187caa3a315b3c8ea2d313962edcfe5a3e2028d5ba9a09fd5c65c19d3440e477f0cab0628ec6902c73ee02f1afee9f80115be7b9df82d1e28228e28581a20560e195cbb9e2b327bf56fd2d0ae5502e42c13e9b4015d4da42dc859252e7da4
+
+Cipher = ARIA-192-CFB8
+Key = 00112233445566778899aabbccddeeff0011223344556677
+IV = 0f1e2d3c4b5a69788796a5b4c3d2e1f0
+Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd
+Ciphertext = 411d3b4f57f705aa4d13c46e2cf426af7c8c916ed7923d889f0047bbf11471b6d54f8757ef519339105be3cb69babb976a57d5631fc23cc3051fe9d36e8b8e27a2b2c0c4d31928ccbf30ea8239b46ba1b77f6198e7ecd2ce27b35958148e826f06aaf385bd30362ff141583e7c1d8924d44d36a1133094074631e18adafa9d2e55de98f6895c89d4266ebd33f3d4be5153a96fa12132ece2e81e66e55baa7ade
+
+Cipher = ARIA-192-OFB
+Key = 00112233445566778899aabbccddeeff0011223344556677
+IV = 0f1e2d3c4b5a69788796a5b4c3d2e1f0
+Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd
+Ciphertext = 4171f7192bf4495494d2736129640f5cc224d26d364b5a06ddde13d0f1e74faa846de354c63cda77469d1a2d425c47ff41734c71b3fa1fcdc11e0b2de22bfeed54898e233df652c75ae136e61de6524e62b3f806fb2e8e616eb410a1b9500537e327ffb04f19f7f82fde2b122100261f81b82723bf936be7beaaf3067d1c036001f1ade71422268d274d7dc6c6ae1970b27a5f2c2f39c1d241fe8cac5ccd74e9
+
+Cipher = ARIA-192-CTR
+Key = 00112233445566778899aabbccddeeff0011223344556677
+IV = 00000000000000000000000000000000
+Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd
+Ciphertext = 08625ca8fe569c19ba7af3760a6ed1cef4d199263e999dde14082dbba7560b79a4c6b456b8707dce751f9854f18893dfdb3f4e5afa539733e6f1e70b98ba37891f8f81e95df8efc26c7ce043504cb18958b865e4e316cd2aa1c97f31bf23dc046ef326b95a692a191ba0f2a41c5fe9ae070f236ff7078e703b42666caafbdd20bad74ac4c20c0f46c7ca24c151716575c947da16c90cfe1bf217a41cfebe7531
+
+Cipher = ARIA-256-ECB
+Key = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff
+Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd
+Ciphertext = 58a875e6044ad7fffa4f58420f7f442d8e191016f28e79aefc01e204773280d7018e5f7a938ec30711719953bae86542cd7ebc752474c1a5f6eaaace2a7e29462ee7dfa5afdb84177ead95ccd4b4bb6e1ed17b9534cff0a5fc2941429cfee2ee49c7adbeb7e9d1b0d2a8531d942079596a27ed79f5b1dd13ecd604b07a48885a3afa0627a0e4e60a3c703af292f1baa77b702f16c54aa74bc727ea95c7468b00
+
+Cipher = ARIA-256-CBC
+Key = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff
+IV = 0f1e2d3c4b5a69788796a5b4c3d2e1f0
+Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd
+Ciphertext = 523a8a806ae621f155fdd28dbc34e1ab7b9b42432ad8b2efb96e23b13f0a6e52f36185d50ad002c5f601bee5493f118b243ee2e313642bffc3902e7b2efd9a12fa682edd2d23c8b9c5f043c18b17c1ec4b5867918270fbec1027c19ed6af833da5d620994668ca22f599791d292dd6273b2959082aafb7a996167cce1eec5f0cfd15f610d87e2dda9ba68ce1260ca54b222491418374294e7909b1e8551cd8de
+
+Cipher = ARIA-256-CFB
+Key = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff
+IV = 0f1e2d3c4b5a69788796a5b4c3d2e1f0
+Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd
+Ciphertext = 26834705b0f2c0e2588d4a7f09009635f28bb93d8c31f870ec1e0bdb082b66fa402dd9c202be300c4517d196b14d4ce11dce97f7aaba54341b0d872cc9b63753a3e8556a14be6f7b3e27e3cfc39caf80f2a355aa50dc83c09c7b11828694f8e4aa726c528976b53f2c877f4991a3a8d28adb63bd751846ffb2350265e179d4990753ae8485ff9b4133ddad5875b84a90cbcfa62a045d726df71b6bda0eeca0be
+
+Cipher = ARIA-256-CFB8
+Key = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff
+IV = 0f1e2d3c4b5a69788796a5b4c3d2e1f0
+Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd
+Ciphertext = 26baa33651e1f66434fec88ef27fd2b9a79e246dd89a3ffa00e8bdb37155433e6c24bd0b87d9a85baa9f485ccb984f5ec24d6a3ef5e3c81396177f039cf580dfdb55d6e1c47a28921dfe369e12fd357b289ad3a5544e1c1bd616d454db9c5f91f603373f29d5b2ed1b4b51de80f28537bbd43d5e3b5dd071dc91153cbbe732dfc325821b06ed8acaae656dcf2da9f13e4f29db671476f1e644ff06d9b67d6bd4
+
+Cipher = ARIA-256-OFB
+Key = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff
+IV = 0f1e2d3c4b5a69788796a5b4c3d2e1f0
+Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd
+Ciphertext = 26834705b0f2c0e2588d4a7f0900963584c256815c4292b59f8d3f966a75b52345b4f5f98c785d3f368a8d5ff89b7f950ceab3cd63773c2621d652b8ef98b4196afb2c2b30496bc5b7d9e7f9084f9d855f63a511751c8909e7a6deadbe0a67a4fb89383ca5d209c6f66f793fc471195c476fb9c1eab2ac91e680e454b4f3ed9a67fb52f09c29b965b23cfa6f3f6bbb2a86c6cdbaa2857bf2486f543231892a52
+
+Cipher = ARIA-256-CTR
+Key = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff
+IV = 00000000000000000000000000000000
+Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd
+Ciphertext = 30026c329666141721178b99c0a1f1b2f06940253f7b3089e2a30ea86aa3c88f5940f05ad7ee41d71347bb7261e348f18360473fdf7d4e7723bffb4411cc13f6cdd89f3bc7b9c768145022c7a74f14d7c305cd012a10f16050c23f1ae5c23f45998d13fbaa041e51619577e0772764896a5d4516d8ffceb3bf7e05f613edd9a60cdcedaff9cfcaf4e00d445a54334f73ab2cad944e51d266548e61c6eb0aa1cd
+
+Title = ARIA GCM test vectors from RFC8269
+
+Cipher = ARIA-128-GCM
+Key = e91e5e75da65554a48181f3846349562
+IV = 000020e8f5eb00000000315e
+AAD = 8008315ebf2e6fe020e8f5eb
+Tag = 5abace3f37f5a736f4be984bbffbedc1
+Plaintext = f57af5fd4ae19562976ec57a5a7ad55a5af5c5e5c5fdf5c55ad57a4a7272d57262e9729566ed66e97ac54a4a5a7ad5e15ae5fdd5fd5ac5d56ae56ad5c572d54ae54ac55a956afd6aed5a4ac562957a9516991691d572fd14e97ae962ed7a9f4a955af572e162f57a956666e17ae1f54a95f566d54a66e16e4afd6a9f7ae1c5c55ae5d56afde916c5e94a6ec56695e14afde1148416e94ad57ac5146ed59d1cc5
+Ciphertext = 4d8a9a0675550c704b17d8c9ddc81a5cd6f7da34f2fe1b3db7cb3dfb9697102ea0f3c1fc2dbc873d44bceeae8e4442974ba21ff6789d3272613fb9631a7cf3f14bacbeb421633a90ffbe58c2fa6bdca534f10d0de0502ce1d531b6336e58878278531e5c22bc6c85bbd784d78d9e680aa19031aaf89101d669d7a3965c1f7e16229d7463e0535f4e253f5d18187d40b8ae0f564bd970b5e7e2adfb211e89a953
+
+Cipher = ARIA-256-GCM
+Key = 0c5ffd37a11edc42c325287fc0604f2e3e8cd5671a00fe3216aa5eb105783b54
+IV = 000020e8f5eb00000000315e
+AAD = 8008315ebf2e6fe020e8f5eb
+Tag = e210d6ced2cf430ff841472915e7ef48
+Plaintext = f57af5fd4ae19562976ec57a5a7ad55a5af5c5e5c5fdf5c55ad57a4a7272d57262e9729566ed66e97ac54a4a5a7ad5e15ae5fdd5fd5ac5d56ae56ad5c572d54ae54ac55a956afd6aed5a4ac562957a9516991691d572fd14e97ae962ed7a9f4a955af572e162f57a956666e17ae1f54a95f566d54a66e16e4afd6a9f7ae1c5c55ae5d56afde916c5e94a6ec56695e14afde1148416e94ad57ac5146ed59d1cc5
+Ciphertext = 6f9e4bcbc8c85fc0128fb1e4a0a20cb9932ff74581f54fc013dd054b19f99371425b352d97d3f337b90b63d1b082adeeea9d2d7391897d591b985e55fb50cb5350cf7d38dc27dda127c078a149c8eb98083d66363a46e3726af217d3a00275ad5bf772c7610ea4c23006878f0ee69a8397703169a419303f40b72e4573714d19e2697df61e7c7252e5abc6bade876ac4961bfac4d5e867afca351a48aed52822
+
+Title = ARIA GCM self-generated test vectors
+
+Cipher = ARIA-128-GCM
+Key = e91e5e75da65554a48181f3846349562
+# Shorter than default IV
+IV = 0001020304
+AAD = 8008315ebf2e6fe020e8f5eb
+Tag = ebaa2645bb154542117ee46031aa176e
+Plaintext = f57af5fd4ae19562976ec57a5a7ad55a5af5c5e5c5fdf5c55ad57a4a7272d57262e9729566ed66e97ac54a4a5a7ad5e15ae5fdd5fd5ac5d56ae56ad5c572d54ae54ac55a956afd6aed5a4ac562957a9516991691d572fd14e97ae962ed7a9f4a955af572e162f57a956666e17ae1f54a95f566d54a66e16e4afd6a9f7ae1c5c55ae5d56afde916c5e94a6ec56695e14afde1148416e94ad57ac5146ed59d1cc5
+Ciphertext = 1723ccfc0ed44a12520473cfeb63bc933cd450a943f5f1cba78e19d72f80cc102acc51f2459a06cf6435182b8ddd451f83e13479efe5ec7dfbf16229f4017920fb41457a9b6fe1a401b30b2f332d827ae2f86e962326927c1ed8bfedac1f7a00ddde63bd392a8f28a488ba5974689f8d15b9b1739fb50aae0ff244026ec72064003c621b33ffc8086b0a97eefb70604a2826f6499f6eb12d67a0da03fc8e1482
+
+Cipher = ARIA-128-GCM
+Key = e91e5e75da65554a48181f3846349562
+# Longer than default IV
+IV = 000102030405060708090a0b0c0d0e0f
+AAD = 8008315ebf2e6fe020e8f5eb
+Tag = 61f7f44c7da3c60195b29ae0b46051a4
+Plaintext = f57af5fd4ae19562976ec57a5a7ad55a5af5c5e5c5fdf5c55ad57a4a7272d57262e9729566ed66e97ac54a4a5a7ad5e15ae5fdd5fd5ac5d56ae56ad5c572d54ae54ac55a956afd6aed5a4ac562957a9516991691d572fd14e97ae962ed7a9f4a955af572e162f57a956666e17ae1f54a95f566d54a66e16e4afd6a9f7ae1c5c55ae5d56afde916c5e94a6ec56695e14afde1148416e94ad57ac5146ed59d1cc5
+Ciphertext = 0d3e98fcaf7a2c4fe9198d66add90d113e5e0ff47598c40a4bf501960d935a4156c9a4d46c9358a608e10a16479a4247c9ab9bb4a02809e3eac3571b832590fe2ca3e2d545741e36282d96c041fc7d39a46ed60214c2c0ec70f27768dfea4f9563b5d5c2ac33b1368a78f2908f5daf942433fec6ab588f09e908e95cc8dfa85d1a0dfd5835dc14e148323230c63eedc99a9ce942214cb3768b97b821d613629f
+
+Cipher = ARIA-128-GCM
+Key = e91e5e75da65554a48181f3846349562
+# Extra long IV
+IV = 000102030405060708090a0b0c0d0e0f1011
+AAD = 8008315ebf2e6fe020e8f5eb
+Tag = c8b31ab6c2ddccab06b76af4e56e664e
+Plaintext = f57af5fd4ae19562976ec57a5a7ad55a5af5c5e5c5fdf5c55ad57a4a7272d57262e9729566ed66e97ac54a4a5a7ad5e15ae5fdd5fd5ac5d56ae56ad5c572d54ae54ac55a956afd6aed5a4ac562957a9516991691d572fd14e97ae962ed7a9f4a955af572e162f57a956666e17ae1f54a95f566d54a66e16e4afd6a9f7ae1c5c55ae5d56afde916c5e94a6ec56695e14afde1148416e94ad57ac5146ed59d1cc5
+Ciphertext = 616a7bce24206501082cef7267c09a4affa54f8f82eb7fb2cdebdcaab4b6ab05c37e891c2d0fc90d15c5fb684247625c8bc0befad86896ae1c8f5a8506954caba4e13df0a0eb23853d4474e7f3b2c57bb398456a24d198e14566bce8a5f8d3bcdb12994d2fdc0f5cf19aeff990c1fe119e01f9fcc86757b1d43a9accf7b2f913c2208a46c1967f403867f89b46ffe96864c63f042265806ea5270e0dddd0e8dd
+
+
+Title = ARIA CCM test vectors from IETF draft-ietf-avtcore-aria-srtp-02
+
+# 16-byte Tag
+
+Cipher = ARIA-128-CCM
+Key = 974bee725d44fc3992267b284c3c6750
+IV = 000020e8f5eb00000000315e
+AAD = 8008315ebf2e6fe020e8f5eb
+Tag = 40f04b6467e300f6b336aedf9df4185b
+Plaintext = f57af5fd4ae19562976ec57a5a7ad55a5af5c5e5c5fdf5c55ad57a4a7272d57262e9729566ed66e97ac54a4a5a7ad5e15ae5fdd5fd5ac5d56ae56ad5c572d54ae54ac55a956afd6aed5a4ac562957a9516991691d572fd14e97ae962ed7a9f4a955af572e162f57a956666e17ae1f54a95f566d54a66e16e4afd6a9f7ae1c5c55ae5d56afde916c5e94a6ec56695e14afde1148416e94ad57ac5146ed59d1cc5
+Ciphertext = 621e408a2e455505b39f704dcbac4307daabbd6d670abc4e42f2fd2fca263f094f4683e6fb0b10c5093d42b69dce0ba546520e7c4400975713f3bde93ef131160b9cbcd6df78a1502be7c6ea8d395b9ed0078819c3105c0ab92cb67b16ba51bb1f53508738bf7a37c9a905439b88b7af9d51a407916fdfea8d43bf253721846dc1671391225fc58d9d0693c8ade6a4ffb034ee6543dd4e651b7a084eae60f855
+
+Cipher = ARIA-256-CCM
+Key = 0c5ffd37a11edc42c325287fc0604f2e3e8cd5671a00fe3216aa5eb105783b54
+IV = 000020e8f5eb00000000315e
+AAD = 8008315ebf2e6fe020e8f5eb
+Tag = 87b6bd222c55365a9c7d0b215b77ea41
+Plaintext = f57af5fd4ae19562976ec57a5a7ad55a5af5c5e5c5fdf5c55ad57a4a7272d57262e9729566ed66e97ac54a4a5a7ad5e15ae5fdd5fd5ac5d56ae56ad5c572d54ae54ac55a956afd6aed5a4ac562957a9516991691d572fd14e97ae962ed7a9f4a955af572e162f57a956666e17ae1f54a95f566d54a66e16e4afd6a9f7ae1c5c55ae5d56afde916c5e94a6ec56695e14afde1148416e94ad57ac5146ed59d1cc5
+Ciphertext = ff78128ee18ee3cb9fb0d20726a017ff67fbd09d3a4c38aa32f6d306d3fdda378e459b83ed005507449d6cd981a4c1e3ff4193870c276ef09b6317a01a2283206ae4b4be0d0b235422c8abb00122410656b75e1ffc7fb49c0d0c5d6169aa7623610579968037aee8e83fc26264ea866590fd620aa3c0a5f323d953aa7f8defb0d0d60ab5a9de44dbaf8eae74ea3ab5f30594154f405fd630aa4c4d5603efdfa1
+
+# 8-byte Tag
+
+Cipher = ARIA-128-CCM
+Key = 974bee725d44fc3992267b284c3c6750
+IV = 000020e8f5eb00000000315e
+AAD = 8008315ebf2e6fe020e8f5eb
+Tag = dd2282c93a67fe4b
+Plaintext = f57af5fd4ae19562976ec57a5a7ad55a5af5c5e5c5fdf5c55ad57a4a7272d57262e9729566ed66e97ac54a4a5a7ad5e15ae5fdd5fd5ac5d56ae56ad5c572d54ae54ac55a956afd6aed5a4ac562957a9516991691d572fd14e97ae962ed7a9f4a955af572e162f57a956666e17ae1f54a95f566d54a66e16e4afd6a9f7ae1c5c55ae5d56afde916c5e94a6ec56695e14afde1148416e94ad57ac5146ed59d1cc5
+Ciphertext = 621e408a2e455505b39f704dcbac4307daabbd6d670abc4e42f2fd2fca263f094f4683e6fb0b10c5093d42b69dce0ba546520e7c4400975713f3bde93ef131160b9cbcd6df78a1502be7c6ea8d395b9ed0078819c3105c0ab92cb67b16ba51bb1f53508738bf7a37c9a905439b88b7af9d51a407916fdfea8d43bf253721846dc1671391225fc58d9d0693c8ade6a4ffb034ee6543dd4e651b7a084eae60f855
+
+Cipher = ARIA-256-CCM
+Key = 0c5ffd37a11edc42c325287fc0604f2e3e8cd5671a00fe3216aa5eb105783b54
+IV = 000020e8f5eb00000000315e
+AAD = 8008315ebf2e6fe020e8f5eb
+Tag = 828dc0088f99a7ef
+Plaintext = f57af5fd4ae19562976ec57a5a7ad55a5af5c5e5c5fdf5c55ad57a4a7272d57262e9729566ed66e97ac54a4a5a7ad5e15ae5fdd5fd5ac5d56ae56ad5c572d54ae54ac55a956afd6aed5a4ac562957a9516991691d572fd14e97ae962ed7a9f4a955af572e162f57a956666e17ae1f54a95f566d54a66e16e4afd6a9f7ae1c5c55ae5d56afde916c5e94a6ec56695e14afde1148416e94ad57ac5146ed59d1cc5
+Ciphertext = ff78128ee18ee3cb9fb0d20726a017ff67fbd09d3a4c38aa32f6d306d3fdda378e459b83ed005507449d6cd981a4c1e3ff4193870c276ef09b6317a01a2283206ae4b4be0d0b235422c8abb00122410656b75e1ffc7fb49c0d0c5d6169aa7623610579968037aee8e83fc26264ea866590fd620aa3c0a5f323d953aa7f8defb0d0d60ab5a9de44dbaf8eae74ea3ab5f30594154f405fd630aa4c4d5603efdfa1
+
+# 12-byte Tag
+
+Cipher = ARIA-128-CCM
+Key = 974bee725d44fc3992267b284c3c6750
+IV = 000020e8f5eb00000000315e
+AAD = 8008315ebf2e6fe020e8f5eb
+Tag = 01f3dedd15238da5ebfb1590
+Plaintext = f57af5fd4ae19562976ec57a5a7ad55a5af5c5e5c5fdf5c55ad57a4a7272d57262e9729566ed66e97ac54a4a5a7ad5e15ae5fdd5fd5ac5d56ae56ad5c572d54ae54ac55a956afd6aed5a4ac562957a9516991691d572fd14e97ae962ed7a9f4a955af572e162f57a956666e17ae1f54a95f566d54a66e16e4afd6a9f7ae1c5c55ae5d56afde916c5e94a6ec56695e14afde1148416e94ad57ac5146ed59d1cc5
+Ciphertext = 621e408a2e455505b39f704dcbac4307daabbd6d670abc4e42f2fd2fca263f094f4683e6fb0b10c5093d42b69dce0ba546520e7c4400975713f3bde93ef131160b9cbcd6df78a1502be7c6ea8d395b9ed0078819c3105c0ab92cb67b16ba51bb1f53508738bf7a37c9a905439b88b7af9d51a407916fdfea8d43bf253721846dc1671391225fc58d9d0693c8ade6a4ffb034ee6543dd4e651b7a084eae60f855
+
+Cipher = ARIA-256-CCM
+Key = 0c5ffd37a11edc42c325287fc0604f2e3e8cd5671a00fe3216aa5eb105783b54
+IV = 000020e8f5eb00000000315e
+AAD = 8008315ebf2e6fe020e8f5eb
+Tag = 3615b7f90a651de15da20fb6
+Plaintext = f57af5fd4ae19562976ec57a5a7ad55a5af5c5e5c5fdf5c55ad57a4a7272d57262e9729566ed66e97ac54a4a5a7ad5e15ae5fdd5fd5ac5d56ae56ad5c572d54ae54ac55a956afd6aed5a4ac562957a9516991691d572fd14e97ae962ed7a9f4a955af572e162f57a956666e17ae1f54a95f566d54a66e16e4afd6a9f7ae1c5c55ae5d56afde916c5e94a6ec56695e14afde1148416e94ad57ac5146ed59d1cc5
+Ciphertext = ff78128ee18ee3cb9fb0d20726a017ff67fbd09d3a4c38aa32f6d306d3fdda378e459b83ed005507449d6cd981a4c1e3ff4193870c276ef09b6317a01a2283206ae4b4be0d0b235422c8abb00122410656b75e1ffc7fb49c0d0c5d6169aa7623610579968037aee8e83fc26264ea866590fd620aa3c0a5f323d953aa7f8defb0d0d60ab5a9de44dbaf8eae74ea3ab5f30594154f405fd630aa4c4d5603efdfa1
+
+# Test that the tag can be set after specifying AAD.
+Cipher = ARIA-256-CCM
+Key = 0c5ffd37a11edc42c325287fc0604f2e3e8cd5671a00fe3216aa5eb105783b54
+IV = 000020e8f5eb00000000315e
+AAD = 8008315ebf2e6fe020e8f5eb
+Tag = 3615b7f90a651de15da20fb6
+SetTagLate = TRUE
+Plaintext = f57af5fd4ae19562976ec57a5a7ad55a5af5c5e5c5fdf5c55ad57a4a7272d57262e9729566ed66e97ac54a4a5a7ad5e15ae5fdd5fd5ac5d56ae56ad5c572d54ae54ac55a956afd6aed5a4ac562957a9516991691d572fd14e97ae962ed7a9f4a955af572e162f57a956666e17ae1f54a95f566d54a66e16e4afd6a9f7ae1c5c55ae5d56afde916c5e94a6ec56695e14afde1148416e94ad57ac5146ed59d1cc5
+Ciphertext = ff78128ee18ee3cb9fb0d20726a017ff67fbd09d3a4c38aa32f6d306d3fdda378e459b83ed005507449d6cd981a4c1e3ff4193870c276ef09b6317a01a2283206ae4b4be0d0b235422c8abb00122410656b75e1ffc7fb49c0d0c5d6169aa7623610579968037aee8e83fc26264ea866590fd620aa3c0a5f323d953aa7f8defb0d0d60ab5a9de44dbaf8eae74ea3ab5f30594154f405fd630aa4c4d5603efdfa1
+
+
+Title = SEED test vectors from RFC4269
+
+Cipher = SEED-ECB
+Key = 00000000000000000000000000000000
+Operation = DECRYPT
+Plaintext = 000102030405060708090A0B0C0D0E0F
+Ciphertext = 5EBAC6E0054E166819AFF1CC6D346CDB
+
+Cipher = SEED-ECB
+Key = 000102030405060708090A0B0C0D0E0F
+Operation = DECRYPT
+Plaintext = 00000000000000000000000000000000
+Ciphertext = C11F22F20140505084483597E4370F43
+
+Cipher = SEED-ECB
+Key = 4706480851E61BE85D74BFB3FD956185
+Operation = DECRYPT
+Plaintext = 83A2F8A288641FB9A4E9A5CC2F131C7D
+Ciphertext = EE54D13EBCAE706D226BC3142CD40D4A
+
+Cipher = SEED-ECB
+Key = 28DBC3BC49FFD87DCFA509B11D422BE7
+Operation = DECRYPT
+Plaintext = B41E6BE2EBA84A148E2EED84593C5EC7
+Ciphertext = 9B9B7BFCD1813CB95D0B3618F40F5122
+
+Cipher = SEED-ECB
+Key = 00000000000000000000000000000000
+Operation = ENCRYPT
+Plaintext = 000102030405060708090A0B0C0D0E0F
+Ciphertext = 5EBAC6E0054E166819AFF1CC6D346CDB
+
+Cipher = SEED-ECB
+Key = 000102030405060708090A0B0C0D0E0F
+Operation = ENCRYPT
+Plaintext = 00000000000000000000000000000000
+Ciphertext = C11F22F20140505084483597E4370F43
+
+Cipher = SEED-ECB
+Key = 4706480851E61BE85D74BFB3FD956185
+Operation = ENCRYPT
+Plaintext = 83A2F8A288641FB9A4E9A5CC2F131C7D
+Ciphertext = EE54D13EBCAE706D226BC3142CD40D4A
+
+Cipher = SEED-ECB
+Key = 28DBC3BC49FFD87DCFA509B11D422BE7
+Operation = ENCRYPT
+Plaintext = B41E6BE2EBA84A148E2EED84593C5EC7
+Ciphertext = 9B9B7BFCD1813CB95D0B3618F40F5122
+
+Title = Chacha20 test vectors from RFC7539
+
+# A.1 Test Vector 1
+Cipher = chacha20
+Key = 0000000000000000000000000000000000000000000000000000000000000000
+IV = 00000000000000000000000000000000
+Plaintext = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = 76b8e0ada0f13d90405d6ae55386bd28bdd219b8a08ded1aa836efcc8b770dc7da41597c5157488d7724e03fb8d84a376a43b8f41518a11cc387b669b2ee6586
+
+# A.1 Test Vector 2
+Cipher = chacha20
+Key = 0000000000000000000000000000000000000000000000000000000000000000
+IV = 01000000000000000000000000000000
+Plaintext = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = 9f07e7be5551387a98ba977c732d080dcb0f29a048e3656912c6533e32ee7aed29b721769ce64e43d57133b074d839d531ed1f28510afb45ace10a1f4b794d6f
+
+# A.2 Test Vector 1 is the same as A.1 Test Vector 1
+# A.2 Test Vector 2
+Cipher = chacha20
+Key = 0000000000000000000000000000000000000000000000000000000000000001
+#Counter (first 4 bytes) expressed in little-endian order
+IV = 01000000000000000000000000000002
+Plaintext = 416e79207375626d697373696f6e20746f20746865204945544620696e74656e6465642062792074686520436f6e7472696275746f7220666f72207075626c69636174696f6e20617320616c6c206f722070617274206f6620616e204945544620496e7465726e65742d4472616674206f722052464320616e6420616e792073746174656d656e74206d6164652077697468696e2074686520636f6e74657874206f6620616e204945544620616374697669747920697320636f6e7369646572656420616e20224945544620436f6e747269627574696f6e222e20537563682073746174656d656e747320696e636c756465206f72616c2073746174656d656e747320696e20494554462073657373696f6e732c2061732077656c6c206173207772697474656e20616e6420656c656374726f6e696320636f6d6d756e69636174696f6e73206d61646520617420616e792074696d65206f7220706c6163652c207768696368206172652061646472657373656420746f
+Ciphertext = a3fbf07df3fa2fde4f376ca23e82737041605d9f4f4f57bd8cff2c1d4b7955ec2a97948bd3722915c8f3d337f7d370050e9e96d647b7c39f56e031ca5eb6250d4042e02785ececfa4b4bb5e8ead0440e20b6e8db09d881a7c6132f420e52795042bdfa7773d8a9051447b3291ce1411c680465552aa6c405b7764d5e87bea85ad00f8449ed8f72d0d662ab052691ca66424bc86d2df80ea41f43abf937d3259dc4b2d0dfb48a6c9139ddd7f76966e928e635553ba76c5c879d7b35d49eb2e62b0871cdac638939e25e8a1e0ef9d5280fa8ca328b351c3c765989cbcf3daa8b6ccc3aaf9f3979c92b3720fc88dc95ed84a1be059c6499b9fda236e7e818b04b0bc39c1e876b193bfe5569753f88128cc08aaa9b63d1a16f80ef2554d7189c411f5869ca52c5b83fa36ff216b9c1d30062bebcfd2dc5bce0911934fda79a86f6e698ced759c3ff9b6477338f3da4f9cd8514ea9982ccafb341b2384dd902f3d1ab7ac61dd29c6f21ba5b862f3730e37cfdc4fd806c22f221
+
+# A.2 Test Vector 3
+Cipher = chacha20
+Key = 1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0
+#Counter (first 4 bytes) expressed in little-endian order
+IV = 2a000000000000000000000000000002
+Plaintext = 2754776173206272696c6c69672c20616e642074686520736c6974687920746f7665730a446964206779726520616e642067696d626c6520696e2074686520776162653a0a416c6c206d696d737920776572652074686520626f726f676f7665732c0a416e6420746865206d6f6d65207261746873206f757467726162652e
+Ciphertext = 62e6347f95ed87a45ffae7426f27a1df5fb69110044c0d73118effa95b01e5cf166d3df2d721caf9b21e5fb14c616871fd84c54f9d65b283196c7fe4f60553ebf39c6402c42234e32a356b3e764312a61a5532055716ead6962568f87d3f3f7704c6a8d1bcd1bf4d50d6154b6da731b187b58dfd728afa36757a797ac188d1
+
+Title = Chacha20
+
+Cipher = chacha20
+Key = 0000000000000000000000000000000000000000000000000000000000000001
+IV = 00000000000000000000000000000000
+Plaintext = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = 4540f05a9f1fb296d7736e7b208e3c96eb4fe1834688d2604f450952ed432d41bbe2a0b6ea7566d2a5d1e7e20d42af2c53d792b1c43fea817e9ad275ae546963
+
+Cipher = chacha20
+Key = 0000000000000000000000000000000000000000000000000000000000000000
+IV = 00000000000000000000000000000001
+Plaintext = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = de9cba7bf3d69ef5e786dc63973f653a0b49e015adbff7134fcb7df137821031e85a050278a7084527214f73efc7fa5b5277062eb7a0433e445f41e31afab757
+
+Cipher = chacha20
+Key = 0000000000000000000000000000000000000000000000000000000000000000
+IV = 00000000000000000100000000000000
+Plaintext = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = ef3fdfd6c61578fbf5cf35bd3dd33b8009631634d21e42ac33960bd138e50d32111e4caf237ee53ca8ad6426194a88545ddc497a0b466e7d6bbdb0041b2f586b
+
+Cipher = chacha20
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+IV = 00000000000000000001020304050607
+Plaintext = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f15916155c2be8241a38008b9a26bc35941e2444177c8ade6689de95264986d95889fb60e84629c9bd9a5acb1cc118be563eb9b3a4a472f82e09a7e778492b562ef7130e88dfe031c79db9d4f7c7a899151b9a475032b63fc385245fe054e3dd5a97a5f576fe064025d3ce042c566ab2c507b138db853e3d6959660996546cc9c4a6eafdc777c040d70eaf46f76dad3979e5c5360c3317166a1c894c94a371876a94df7628fe4eaaf2ccb27d5aaae0ad7ad0f9d4b6ad3b54098746d4524d38407a6deb
+
+Cipher = chacha20
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+IV = 00000000000000000001020304050607
+Plaintext = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f15916155c2be8241a38008b9a26bc35941e2444177c8ade6689de95264986d95889fb60e84629c9bd9a5acb1cc118be563eb9b3a4a472f82e09a7e778492b562ef7130e88dfe031c79db9d4f7c7a899151b9a475032b63fc385245fe054e3dd5a97a5f576fe064025d3ce042c566ab2c507b138db853e3d6959660996546cc9c4a6eafdc777c040d70eaf46f76dad3979e5c5360c3317166a1c894c94a371876a94df7628fe4eaaf2ccb27d5aaae0ad7ad0f9d4b6ad3b54098746d4524d38407a6deb3ab78fab78c9
+
+Cipher = chacha20
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+IV = 00000000000000000001020304050607
+Plaintext = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f15916155c2be8241a38008b9a26bc35941e2444177c8ade6689de95264986d95889fb60e84629c9bd9a5acb1cc118be563eb9b3a4a472f82e09a7e778492b562ef7130e88dfe031c79db9d4f7c7a899151b9a475032b63fc385245fe054e3dd5a97a5f576fe064025d3ce042c566ab2c507b138db853e3d6959660996546cc9c4a6eafdc777c040d70eaf46f76dad3979e5c5360c3317166a1c894c94a371876a94df7628fe4eaaf2ccb27d5aaae0ad7ad0f9d4b6ad3b54098746d4524d38407a6deb3ab78fab78c94213668bbbd394c5de93b853178addd6b97f9fa1ec3e56c00c9ddff0a44a204241175a4cab0f961ba53ede9bdf960b94f9829b1f3414726429b362c5b538e391520f489b7ed8d20ae3fd49e9e259e44397514d618c96c4846be3c680bdc11c71dcbbe29ccf80d62a0938fa549391e6ea57ecbe2606790ec15d2224ae307c144226b7c4e8c2f97d2a1d67852d29beba110edd445197012062a393a9c92803ad3b4f31d7bc6033ccf7932cfed3f019044d25905916777286f82f9a4cc1ffe430ffd1dcfc27deed327b9f9630d2fa969fb6f0603cd19dd9a9519e673bcfcd9014125291a44669ef7285e74ed3729b677f801c3cdf058c50963168b496043716c730
+
+Cipher = chacha20
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+IV = 00000000000000000001020304050607
+Plaintext = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f15916155c2be8241a38008b9a26bc35941e2444177c8ade6689de95264986d95889fb60e84629c9bd9a5acb1cc118be563eb9b3a4a472f82e09a7e778492b562ef7130e88dfe031c79db9d4f7c7a899151b9a475032b63fc385245fe054e3dd5a97a5f576fe064025d3ce042c566ab2c507b138db853e3d6959660996546cc9c4a6eafdc777c040d70eaf46f76dad3979e5c5360c3317166a1c894c94a371876a94df7628fe4eaaf2ccb27d5aaae0ad7ad0f9d4b6ad3b54098746d4524d38407a6deb3ab78fab78c94213668bbbd394c5de93b853178addd6b97f9fa1ec3e56c00c9ddff0a44a204241175a4cab0f961ba53ede9bdf960b94f9829b1f3414726429b362c5b538e391520f489b7ed8d20ae3fd49e9e259e44397514d618c96c4846be3c680bdc11c71dcbbe29ccf80d62a0938fa549391e6ea57ecbe2606790ec15d2224ae307c144226b7c4e8c2f97d2a1d67852d29beba110edd445197012062a393a9c92803ad3b4f31d7bc6033ccf7932cfed3f019044d25905916777286f82f9a4cc1ffe430ffd1dcfc27deed327b9f9630d2fa969fb6f0603cd19dd9a9519e673bcfcd9014125291a44669ef7285e74ed3729b677f801c3cdf058c50963168b496043716c7307cd9e0cdd137fccb0f05b47cdbb95c5f54831622c3652a32b2531fe326bcd6e2bbf56a194fa196fbd1a54952110f51c73433865f7664b836685e3664b3d8444aF89A242805E18C975F1146324996FDE17007CF3E6E8F4E764022533EDBFE07D4733E48BB372D75B0EF48EC983EB78532161CC529E5ABB89837DFCCA6261DBB37
+
+Cipher = chacha20
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+IV = 00000000000000000001020304050607
+Plaintext = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f15916155c2be8241a38008b9a26bc35941e2444177c8ade6689de95264986d95889fb60e84629c9bd9a5acb1cc118be563eb9b3a4a472f82e09a7e778492b562ef7130e88dfe031c79db9d4f7c7a899151b9a475032b63fc385245fe054e3dd5a97a5f576fe064025d3ce042c566ab2c507b138db853e3d6959660996546cc9c4a6eafdc777c040d70eaf46f76dad3979e5c5360c3317166a1c894c94a371876a94df7628fe4eaaf2ccb27d5aaae0ad7ad0f9d4b6ad3b54098746d4524d38407a6deb3ab78fab78c94213668bbbd394c5de93b853178addd6b97f9fa1ec3e56c00c9ddff0a44a204241175a4cab0f961ba53ede9bdf960b94f9829b1f3414726429b362c5b538e391520f489b7ed8d20ae3fd49e9e259e44397514d618c96c4846be3c680bdc11c71dcbbe29ccf80d62a0938fa549391e6ea57ecbe2606790ec15d2224ae307c144226b7c4e8c2f97d2a1d67852d29beba110edd445197012062a393a9c92803ad3b4f31d7bc6033ccf7932cfed3f019044d25905916777286f82f9a4cc1ffe430ffd1dcfc27deed327b9f9630d2fa969fb6f0603cd19dd9a9519e673bcfcd9014125291a44669ef7285e74ed3729b677f801c3cdf058c50963168b496043716c7307cd9e0cdd137fccb0f05b47cdbb95c5f54831622c3652a32b2531fe326bcd6e2bbf56a194fa196fbd1a54952110f51c73433865f7664b836685e3664b3d8444a
+
+Cipher = chacha20
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+IV = 00000000000000000001020304050607
+Plaintext = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f15916155c2be8241a38008b9a26bc35941e2444177c8ade6689de95264986d95889fb60e84629c9bd9a5acb1cc118be563eb9b3a4a472f82e09a7e778492b562ef7130e88dfe031c79db9d4f7c7a899151b9a475032b63fc385245fe054e3dd5a97a5f576fe064025d3ce042c566ab2c507b138db853e3d6959660996546cc9c4a6eafdc777c040d70eaf46f76dad3979e5c5360c3317166a1c894c94a371876a94df7628fe4eaaf2ccb27d5aaae0ad7ad0f9d4b6ad3b54098746d4524d38407a6deb3ab78fab78c94213668bbbd394c5de93b853178addd6b97f9fa1ec3e56c00c9ddff0a44a204241175a4cab0f961ba53ede9bdf960b94f9829b1f3414726429b362c5b538e391520f489b7ed8d20ae3fd49e9e259e44397514d618c96c4846be3c680bdc11c71dcbbe29ccf80d62a0938fa549391e6ea57ecbe2606790ec15d2224ae307c144226b7c4e8c2f97d2a1d67852d29beba110edd445197012062a393a9c92803ad3b4f31d7bc6033ccf7932cfed3f019044d25905916777286f82f9a4cc1ffe430ffd1dcfc27deed327b9f9630d2fa969fb6f0603cd19dd9a9519e673bcfcd9014125291a44669ef7285e74ed3729b677f801c3cdf058c50963168b496043716c7307cd9e0cdd137fccb0f05b47cdbb95c5f54831622c3652a32b2531fe326bcd6e2bbf56a194fa196fbd1a54952110f51c73433865f7664b836685e3664b3d8444aF89A242805E18C975F1146324996FDE17007CF3E6E8F4E764022533EDBFE07D4733E48BB372D75B0EF48EC983EB78532161CC529E5ABB89837DFCCA6261DBB37C7C5E6A87478BF41EE85A518C0F4EFA9BDE828C5A71B8E46597B634AFD204D3C501334239C3414285ED72D3A9169EABBD4DC25D52BB7516D3BA712D75AD8C0AE
+
+Cipher = chacha20
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+IV = 00000000000000000001020304050607
+Plaintext = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f15916155c2be8241a38008b9a26bc35941e2444177c8ade6689de95264986d95889fb60e84629c9bd9a5acb1cc118be563eb9b3a4a472f82e09a7e778492b562ef7130e88dfe031c79db9d4f7c7a899151b9a475032b63fc385245fe054e3dd5a97a5f576fe064025d3ce042c566ab2c507b138db853e3d6959660996546cc9c4a6eafdc777c040d70eaf46f76dad3979e5c5360c3317166a1c894c94a371876a94df7628fe4eaaf2ccb27d5aaae0ad7ad0f9d4b6ad3b54098746d4524d38407a6deb3ab78fab78c94213668bbbd394c5de93b853178addd6b97f9fa1ec3e56c00c9ddff0a44a204241175a4cab0f961ba53ede9bdf960b94f9829b1f3414726429b362c5b538e391520f489b7ed8d20ae3fd49e9e259e44397514d618c96c4846be3c680bdc11c71dcbbe29ccf80d62a0938fa549391e6ea57ecbe2606790ec15d2224ae307c144226b7c4e8c2f97d2a1d67852d29beba110edd445197012062a393a9c92803ad3b4f31d7bc6033ccf7932cfed3f019044d25905916777286f82f9a4cc1ffe430ffd1dcfc27deed327b9f9630d2fa969fb6f0603cd19dd9a9519e673bcfcd9014125291a44669ef7285e74ed3729b677f801c3cdf058c50963168b496043716c7307cd9e0cdd137fccb0f05b47cdbb95c5f54831622c3652a32b2531fe326bcd6e2bbf56a194fa196fbd1a54952110f51c73433865f7664b836685e3664b3d8444aF89A242805E18C975F1146324996FDE17007CF3E6E8F4E764022533EDBFE07D4733E48BB372D75B0EF48EC983EB78532161CC529E5ABB89837DFCCA6261DBB37C7C5E6A87478BF41EE85A518C0F4EFA9BDE828C5A71B8E46597B634AFD204D3C501334239C3414285ED72D3A9169EABBD4DC25D52BB7516D3BA712D75AD8C0AE5D493C19E38A77939E7A058D713E9CCCCA58045F436B434B1C80D365472406E392951987DB6905C80D431DA18451135BE7E82BCAB358CB3971E61405B2FF1798
+
+Cipher = chacha20
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+IV = 00000000000000000001020304050607
+Plaintext = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f15916155c2be8241a38008b9a26bc35941e2444177c8ade6689de95264986d95889fb60e84629c9bd9a5acb1cc118be563eb9b3a4a472f82e09a7e778492b562ef7130e88dfe031c79db9d4f7c7a899151b9a475032b63fc385245fe054e3dd5a97a5f576fe064025d3ce042c566ab2c507b138db853e3d6959660996546cc9c4a6eafdc777c040d70eaf46f76dad3979e5c5360c3317166a1c894c94a371876a94df7628fe4eaaf2ccb27d5aaae0ad7ad0f9d4b6ad3b54098746d4524d38407a6deb3ab78fab78c94213668bbbd394c5de93b853178addd6b97f9fa1ec3e56c00c9ddff0a44a204241175a4cab0f961ba53ede9bdf960b94f9829b1f3414726429b362c5b538e391520f489b7ed8d20ae3fd49e9e259e44397514d618c96c4846be3c680bdc11c71dcbbe29ccf80d62a0938fa549391e6ea57ecbe2606790ec15d2224ae307c144226b7c4e8c2f97d2a1d67852d29beba110edd445197012062a393a9c92803ad3b4f31d7bc6033ccf7932cfed3f019044d25905916777286f82f9a4cc1ffe430ffd1dcfc27deed327b9f9630d2fa969fb6f0603cd19dd9a9519e673bcfcd9014125291a44669ef7285e74ed3729b677f801c3cdf058c50963168b496043716c7307cd9e0cdd137fccb0f05b47cdbb95c5f54831622c3652a32b2531fe326bcd6e2bbf56a194fa196fbd1a54952110f51c73433865f7664b836685e3664b3d8444aF89A242805E18C975F1146324996FDE17007CF3E6E8F4E764022533EDBFE07D4733E48BB372D75B0EF48EC983EB78532161CC529E5ABB89837DFCCA6261DBB37C7C5E6A87478BF41EE85A518C0F4EFA9BDE828C5A71B8E46597B634AFD204D3C501334239C3414285ED72D3A9169EABBD4DC25D52BB7516D3BA712D75AD8C0AE5D493C19E38A77939E7A058D713E9CCCCA58045F436B434B1C80D365472406E392951987DB6905C80D431DA18451135BE7E82BCAB358CB3971E61405B2FF17980D6E7E67E861E28201C1EE30B441040FD06878D65042C95582A4318207BFC700BE0CE32889AEC2FFE5085E8967910D879FA0E8C0FF85FDC510B9FF2FBF87CFCB
+
+Cipher = chacha20
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+IV = 00000000000000000001020304050607
+Plaintext = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f15916155c2be8241a38008b9a26bc35941e2444177c8ade6689de95264986d95889fb60e84629c9bd9a5acb1cc118be563eb9b3a4a472f82e09a7e778492b562ef7130e88dfe031c79db9d4f7c7a899151b9a475032b63fc385245fe054e3dd5a97a5f576fe064025d3ce042c566ab2c507b138db853e3d6959660996546cc9c4a6eafdc777c040d70eaf46f76dad3979e5c5360c3317166a1c894c94a371876a94df7628fe4eaaf2ccb27d5aaae0ad7ad0f9d4b6ad3b54098746d4524d38407a6deb3ab78fab78c94213668bbbd394c5de93b853178addd6b97f9fa1ec3e56c00c9ddff0a44a204241175a4cab0f961ba53ede9bdf960b94f9829b1f3414726429b362c5b538e391520f489b7ed8d20ae3fd49e9e259e44397514d618c96c4846be3c680bdc11c71dcbbe29ccf80d62a0938fa549391e6ea57ecbe2606790ec15d2224ae307c144226b7c4e8c2f97d2a1d67852d29beba110edd445197012062a393a9c92803ad3b4f31d7bc6033ccf7932cfed3f019044d25905916777286f82f9a4cc1ffe430ffd1dcfc27deed327b9f9630d2fa969fb6f0603cd19dd9a9519e673bcfcd9014125291a44669ef7285e74ed3729b677f801c3cdf058c50963168b496043716c7307cd9e0cdd137fccb0f05b47cdbb95c5f54831622c3652a32b2531fe326bcd6e2bbf56a194fa196fbd1a54952110f51c73433865f7664b836685e3664b3d8444aF89A242805E18C975F1146324996FDE17007CF3E6E8F4E764022533EDBFE07D4733E48BB372D75B0EF48EC983EB78532161CC529E5ABB89837DFCCA6261DBB37C7C5E6A87478BF41EE85A518C0F4EFA9BDE828C5A71B8E46597B634AFD204D3C501334239C3414285ED72D3A9169EABBD4DC25D52BB7516D3BA712D75AD8C0AE5D493C19E38A77939E7A058D713E9CCCCA58045F436B434B1C80D365472406E392951987DB6905C80D431DA18451135BE7E82BCAB358CB3971E61405B2FF17980D6E7E67E861E28201C1EE30B441040FD06878D65042C95582A4318207BFC700BE0CE32889AEC2FFE5085E8967910D879FA0E8C0FF85FDC510B9FF2FBF87CFCB29577D68099E04FFA05F752A73D377C70D3A8BC2DA80E6E780EC057182C33AD1DE387252258A1E18E6FAD910327CE7F42FD1E1E0515F9586E2F2EFCB9F472B1D
+
+Cipher = chacha20
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+IV = 00000000000000000001020304050607
+Plaintext = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f15916155c2be8241a38008b9a26bc35941e2444177c8ade6689de95264986d95889fb60e84629c9bd9a5acb1cc118be563eb9b3a4a472f82e09a7e778492b562ef7130e88dfe031c79db9d4f7c7a899151b9a475032b63fc385245fe054e3dd5a97a5f576fe064025d3ce042c566ab2c507b138db853e3d6959660996546cc9c4a6eafdc777c040d70eaf46f76dad3979e5c5360c3317166a1c894c94a371876a94df7628fe4eaaf2ccb27d5aaae0ad7ad0f9d4b6ad3b54098746d4524d38407a6deb3ab78fab78c94213668bbbd394c5de93b853178addd6b97f9fa1ec3e56c00c9ddff0a44a204241175a4cab0f961ba53ede9bdf960b94f9829b1f3414726429b362c5b538e391520f489b7ed8d20ae3fd49e9e259e44397514d618c96c4846be3c680bdc11c71dcbbe29ccf80d62a0938fa549391e6ea57ecbe2606790ec15d2224ae307c144226b7c4e8c2f97d2a1d67852d29beba110edd445197012062a393a9c92803ad3b4f31d7bc6033ccf7932cfed3f019044d25905916777286f82f9a4cc1ffe430ffd1dcfc27deed327b9f9630d2fa969fb6f0603cd19dd9a9519e673bcfcd9014125291a44669ef7285e74ed3729b677f801c3cdf058c50963168b496043716c7307cd9e0cdd137fccb0f05b47cdbb95c5f54831622c3652a32b2531fe326bcd6e2bbf56a194fa196fbd1a54952110f51c73433865f7664b836685e3664b3d8444aF89A242805E18C975F1146324996FDE17007CF3E6E8F4E764022533EDBFE07D4733E48BB372D75B0EF48EC983EB78532161CC529E5ABB89837DFCCA6261DBB37C7C5E6A87478BF41EE85A518C0F4EFA9BDE828C5A71B8E46597B634AFD204D3C501334239C3414285ED72D3A9169EABBD4DC25D52BB7516D3BA712D75AD8C0AE5D493C19E38A77939E7A058D713E9CCCCA58045F436B434B1C80D365472406E392951987DB6905C80D431DA18451135BE7E82BCAB358CB3971E61405B2FF17980D6E7E67E861E28201C1EE30B441040FD06878D65042C95582A4318207BFC700BE0CE32889AEC2FFE5085E8967910D879FA0E8C0FF85FDC510B9FF2FBF87CFCB29577D68099E04FFA05F752A73D377C70D3A8BC2DA80E6E780EC057182C33AD1DE387252258A1E18E6FAD910327CE7F42FD1E1E0515F9586E2F2EFCB9F472B1DBDBAC354A4162151E9D92C79FB08BB4DDC56F19448C0175A46E2E6C491FEC71419AA43A349BEA768A92C75DE68FD9591E68067F3197094D3FB87ED81785EA075
+
+Cipher = chacha20
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+IV = 00000000000000000001020304050607
+Plaintext = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f15916155c2be8241a38008b9a26bc35941e2444177c8ade6689de95264986d95889fb60e84629c9bd9a5acb1cc118be563eb9b3a4a472f82e09a7e778492b562ef7130e88dfe031c79db9d4f7c7a899151b9a475032b63fc385245fe054e3dd5a97a5f576fe064025d3ce042c566ab2c507b138db853e3d6959660996546cc9c4a6eafdc777c040d70eaf46f76dad3979e5c5360c3317166a1c894c94a371876a94df7628fe4eaaf2ccb27d5aaae0ad7ad0f9d4b6ad3b54098746d4524d38407a6deb3ab78fab78c94213668bbbd394c5de93b853178addd6b97f9fa1ec3e56c00c9ddff0a44a204241175a4cab0f961ba53ede9bdf960b94f9829b1f3414726429b362c5b538e391520f489b7ed8d20ae3fd49e9e259e44397514d618c96c4846be3c680bdc11c71dcbbe29ccf80d62a0938fa549391e6ea57ecbe2606790ec15d2224ae307c144226b7c4e8c2f97d2a1d67852d29beba110edd445197012062a393a9c92803ad3b4f31d7bc6033ccf7932cfed3f019044d25905916777286f82f9a4cc1ffe430ffd1dcfc27deed327b9f9630d2fa969fb6f0603cd19dd9a9519e673bcfcd9014125291a44669ef7285e74ed3729b677f801c3cdf058c50963168b496043716c7307cd9e0cdd137fccb0f05b47cdbb95c5f54831622c3652a32b2531fe326bcd6e2bbf56a194fa196fbd1a54952110f51c73433865f7664b836685e3664b3d8444aF89A242805E18C975F1146324996FDE17007CF3E6E8F4E764022533EDBFE07D4733E48BB372D75B0EF48EC983EB78532161CC529E5ABB89837DFCCA6261DBB37C7C5E6A87478BF41EE85A518C0F4EFA9BDE828C5A71B8E46597B634AFD204D3C501334239C3414285ED72D3A9169EABBD4DC25D52BB7516D3BA712D75AD8C0AE5D493C19E38A77939E7A058D713E9CCCCA58045F436B434B1C80D365472406E392951987DB6905C80D431DA18451135BE7E82BCAB358CB3971E61405B2FF17980D6E7E67E861E28201C1EE30B441040FD06878D65042C95582A4318207BFC700BE0CE32889AEC2FFE5085E8967910D879FA0E8C0FF85FDC510B9FF2FBF87CFCB29577D68099E04FFA05F752A73D377C70D3A8BC2DA80E6E780EC057182C33AD1DE387252258A1E18E6FAD910327CE7F42FD1E1E0515F9586E2F2EFCB9F472B1DBDBAC354A4162151E9D92C79FB08BB4DDC56F19448C0175A46E2E6C491FEC71419AA43A349BEA768A92C75DE68FD9591E68067F3197094D3FB87ED81785EA075E4B65E3E4C78F81DA9B751C5EFE024152301C48E63245B556C4C67AFF857E5EA15A908D83A1D9704F8E55E7352B20B694BF9970298E6B5AAD33EA2155D105D4E
+
+Cipher = chacha20
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+IV = 00000000000000000001020304050607
+Plaintext = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Ciphertext = f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f15916155c2be8241a38008b9a26bc35941e2444177c8ade6689de95264986d95889fb60e84629c9bd9a5acb1cc118be563eb9b3a4a472f82e09a7e778492b562ef7130e88dfe031c79db9d4f7c7a899151b9a475032b63fc385245fe054e3dd5a97a5f576fe064025d3ce042c566ab2c507b138db853e3d6959660996546cc9c4a6eafdc777c040d70eaf46f76dad3979e5c5360c3317166a1c894c94a371876a94df7628fe4eaaf2ccb27d5aaae0ad7ad0f9d4b6ad3b54098746d4524d38407a6deb3ab78fab78c94213668bbbd394c5de93b853178addd6b97f9fa1ec3e56c00c9ddff0a44a204241175a4cab0f961ba53ede9bdf960b94f9829b1f3414726429b362c5b538e391520f489b7ed8d20ae3fd49e9e259e44397514d618c96c4846be3c680bdc11c71dcbbe29ccf80d62a0938fa549391e6ea57ecbe2606790ec15d2224ae307c144226b7c4e8c2f97d2a1d67852d29beba110edd445197012062a393a9c92803ad3b4f31d7bc6033ccf7932cfed3f019044d25905916777286f82f9a4cc1ffe430ffd1dcfc27deed327b9f9630d2fa969fb6f0603cd19dd9a9519e673bcfcd9014125291a44669ef7285e74ed3729b677f801c3cdf058c50963168b496043716c7307cd9e0cdd137fccb0f05b47cdbb95c5f54831622c3652a32b2531fe326bcd6e2bbf56a194fa196fbd1a54952110f51c73433865f7664b836685e3664b3d8444aF89A242805E18C975F1146324996FDE17007CF3E6E8F4E764022533EDBFE07D4733E48BB372D75B0EF48EC983EB78532161CC529E5ABB89837DFCCA6261DBB37C7C5E6A87478BF41EE85A518C0F4EFA9BDE828C5A71B8E46597B634AFD204D3C501334239C3414285ED72D3A9169EABBD4DC25D52BB7516D3BA712D75AD8C0AE5D493C19E38A77939E7A058D713E9CCCCA58045F436B434B1C80D365472406E392951987DB6905C80D431DA18451135BE7E82BCAB358CB3971E61405B2FF17980D6E7E67E861E28201C1EE30B441040FD06878D65042C95582A4318207BFC700BE0CE32889AEC2FFE5085E8967910D879FA0E8C0FF85FDC510B9FF2FBF87CFCB29577D68099E04FFA05F752A73D377C70D3A8BC2DA80E6E780EC057182C33AD1DE387252258A1E18E6FAD910327CE7F42FD1E1E0515F9586E2F2EFCB9F472B1DBDBAC354A4162151E9D92C79FB08BB4DDC56F19448C0175A46E2E6C491FEC71419AA43A349BEA768A92C75DE68FD9591E68067F3197094D3FB87ED81785EA075E4B65E3E4C78F81DA9B751C5EFE024152301C48E63245B556C4C67AFF857E5EA15A908D83A1D9704F8E55E7352B20B694BF9970298E6B5AAD33EA2155D105D4E637D1E87C40A8E5F4E8C5A16A4B8F3DC27B31721D77A65FD1ED6F86BE25FB95DB29B1988493770A7C60E451FF97DD241A236851FC425691979FE30226559AD95
+
+# RFC7539
+Cipher = chacha20-poly1305
+Key = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f
+IV = 070000004041424344454647
+AAD = 50515253c0c1c2c3c4c5c6c7
+Tag = 1ae10b594f09e26a7e902ecbd0600691
+Plaintext = 4c616469657320616e642047656e746c656d656e206f662074686520636c617373206f66202739393a204966204920636f756c64206f6666657220796f75206f6e6c79206f6e652074697020666f7220746865206675747572652c2073756e73637265656e20776f756c642062652069742e
+Ciphertext = d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d26586cec64b6116
+
+Cipher = chacha20-poly1305
+Key = 1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0
+IV = 000000000102030405060708
+AAD = f33388860000000000004e91
+Tag = eead9d67890cbb22392336fea1851f38
+Plaintext = 496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d6f6e74687320616e64206d617920626520757064617465642c207265706c616365642c206f72206f62736f6c65746564206279206f7468657220646f63756d656e747320617420616e792074696d652e20497420697320696e617070726f70726961746520746f2075736520496e7465726e65742d447261667473206173207265666572656e6365206d6174657269616c206f7220746f2063697465207468656d206f74686572207468616e206173202fe2809c776f726b20696e2070726f67726573732e2fe2809d
+Ciphertext = 64a0861575861af460f062c79be643bd5e805cfd345cf389f108670ac76c8cb24c6cfc18755d43eea09ee94e382d26b0bdb7b73c321b0100d4f03b7f355894cf332f830e710b97ce98c8a84abd0b948114ad176e008d33bd60f982b1ff37c8559797a06ef4f0ef61c186324e2b3506383606907b6a7c02b0f9f6157b53c867e4b9166c767b804d46a59b5216cde7a4e99040c5a40433225ee282a1b0a06c523eaf4534d7f83fa1155b0047718cbc546a0d072b04b3564eea1b422273f548271a0bb2316053fa76991955ebd63159434ecebb4e466dae5a1073a6727627097a1049e617d91d361094fa68f0ff77987130305beaba2eda04df997b714d6c6f2c29a6ad5cb4022b02709b
+
+Cipher = chacha20-poly1305
+Key = 1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0
+IV = 000000000102030405060708
+AAD = f33388860000000000004e91
+Tag = eead9d67890cbb22392336fea1851f39
+Plaintext = 496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d6f6e74687320616e64206d617920626520757064617465642c207265706c616365642c206f72206f62736f6c65746564206279206f7468657220646f63756d656e747320617420616e792074696d652e20497420697320696e617070726f70726961746520746f2075736520496e7465726e65742d447261667473206173207265666572656e6365206d6174657269616c206f7220746f2063697465207468656d206f74686572207468616e206173202fe2809c776f726b20696e2070726f67726573732e2fe2809d
+Ciphertext = 64a0861575861af460f062c79be643bd5e805cfd345cf389f108670ac76c8cb24c6cfc18755d43eea09ee94e382d26b0bdb7b73c321b0100d4f03b7f355894cf332f830e710b97ce98c8a84abd0b948114ad176e008d33bd60f982b1ff37c8559797a06ef4f0ef61c186324e2b3506383606907b6a7c02b0f9f6157b53c867e4b9166c767b804d46a59b5216cde7a4e99040c5a40433225ee282a1b0a06c523eaf4534d7f83fa1155b0047718cbc546a0d072b04b3564eea1b422273f548271a0bb2316053fa76991955ebd63159434ecebb4e466dae5a1073a6727627097a1049e617d91d361094fa68f0ff77987130305beaba2eda04df997b714d6c6f2c29a6ad5cb4022b02709b
+Operation = DECRYPT
+Result = CIPHERFINAL_ERROR
+
+# self-generated vectors
+Cipher = chacha20-poly1305
+Key = 1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0
+IV = 000000000102030405060708
+AAD = f33388860000000000004e91
+Tag = d96119a40cd17f2527306866a3ef0413
+Plaintext = 496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d6f6e74687320616e64206d617920626520757064617465642c207265706c616365642c206f72206f62736f6c65746564206279206f7468657220646f63756d656e747320617420616e792074696d652e20497420697320696e617070726f70726961746520746f2075736520496e7465726e65742d4472616674732061732072
+Ciphertext = 64a0861575861af460f062c79be643bd5e805cfd345cf389f108670ac76c8cb24c6cfc18755d43eea09ee94e382d26b0bdb7b73c321b0100d4f03b7f355894cf332f830e710b97ce98c8a84abd0b948114ad176e008d33bd60f982b1ff37c8559797a06ef4f0ef61c186324e2b3506383606907b6a7c02b0f9f6157b53c867e4b9166c767b804d46a59b5216cde7a4e99040c5a40433225ee282a1b0a06c523eaf4534d7f83fa1155b0047718cbc546a0d072b04b3564eea1b422273f548271a
+
+Cipher = chacha20-poly1305
+Key = 1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0
+IV = 000000000102030405060708
+AAD = f33388860000000000004e91
+Tag = 53aee3189d2b747032378a6186feb43f
+Plaintext = 496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d6f6e74687320616e64206d617920626520757064617465642c207265706c616365642c206f72206f62736f6c65746564206279206f7468657220646f63756d656e747320617420616e792074696d652e20497420697320696e617070726f70726961746520746f2075736520496e7465726e65742d447261667473206173207265666572656e6365206d6174657269616c206f7220746f2063697465207468656d206f74686572207468616e206173202fe2809c776f726b20696e2070726f67496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d6f6e74687320616e64206d617920626520757064617465642c207265706c616365642c206f72206f62736f6c65746564206279206f7468657220646f63756d656e747320617420616e792074696d652e20497420697320696e617070726f70726961746520746f2075736520496e7465726e65742d447261667473206173207265666572656e6365206d6174657269616c206f7220746f2063697465207468656d206f74686572207468616e206173202fe2809c776f726b20696e2070726f67
+Ciphertext = 64a0861575861af460f062c79be643bd5e805cfd345cf389f108670ac76c8cb24c6cfc18755d43eea09ee94e382d26b0bdb7b73c321b0100d4f03b7f355894cf332f830e710b97ce98c8a84abd0b948114ad176e008d33bd60f982b1ff37c8559797a06ef4f0ef61c186324e2b3506383606907b6a7c02b0f9f6157b53c867e4b9166c767b804d46a59b5216cde7a4e99040c5a40433225ee282a1b0a06c523eaf4534d7f83fa1155b0047718cbc546a0d072b04b3564eea1b422273f548271a0bb2316053fa76991955ebd63159434ecebb4e466dae5a1073a6727627097a1049e617d91d361094fa68f0ff77987130305beaba2eda04df997b714d6c6f2c299da65ba25e6a85842bf0440fd98a9a2266b061c4b3a13327c090f9a0789f58aad805275e4378a525f19232bfbfb749ede38480f405cf43ec2f1f8619ebcbc80a89e92a859c7911e674977ab17d4a7126a6b8a477358ff14a344d276ef6e504e10268ac3619fcf90c2d6c03fc2e3d1f290d9bf26c1fa1495dd8f97eec6229a55c2354e4524143551a5cc370a1c622c9390530cff21c3e1ed50c5e3daf97518ccce34156bdbd7eafab8bd417aef25c6c927301731bd319d247a1d5c3186ed10bfd9a7a24bac30e3e4503ed9204154d338b79ea276e7058e7f20f4d4fd1ac93d63f611af7b6d006c2a72add0eedc497b19cb30a198816664f0da00155f2e2d6ac61
+
+Cipher = chacha20-poly1305
+Key = 1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0
+IV = 000000000102030405060708
+AAD = f33388860000000000004e91
+Tag = e0723bce23528ce6ccb10ff9627038bf
+Plaintext = 496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d6f6e74687320616e64206d617920626520757064617465642c207265706c616365642c206f72206f62736f6c65746564206279206f7468657220646f63756d656e747320617420616e792074696d652e20497420697320696e617070726f70726961746520746f2075736520496e7465726e65742d447261667473206173207265666572656e6365206d6174657269616c206f7220746f2063697465207468656d206f74686572207468616e206173202fe2809c776f726b20696e2070726f67496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d6f6e74687320616e64206d617920626520757064617465642c207265706c616365642c206f72206f62736f6c65746564206279206f7468657220646f63756d656e747320617420616e792074696d652e20497420697320696e617070726f70726961746520746f2075736520496e7465726e65742d447261667473206173207265666572656e6365206d6174657269616c206f7220746f2063697465207468656d206f74686572207468616e206173202fe2809c776f726b20696e2070726f67496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d
+Ciphertext = 64a0861575861af460f062c79be643bd5e805cfd345cf389f108670ac76c8cb24c6cfc18755d43eea09ee94e382d26b0bdb7b73c321b0100d4f03b7f355894cf332f830e710b97ce98c8a84abd0b948114ad176e008d33bd60f982b1ff37c8559797a06ef4f0ef61c186324e2b3506383606907b6a7c02b0f9f6157b53c867e4b9166c767b804d46a59b5216cde7a4e99040c5a40433225ee282a1b0a06c523eaf4534d7f83fa1155b0047718cbc546a0d072b04b3564eea1b422273f548271a0bb2316053fa76991955ebd63159434ecebb4e466dae5a1073a6727627097a1049e617d91d361094fa68f0ff77987130305beaba2eda04df997b714d6c6f2c299da65ba25e6a85842bf0440fd98a9a2266b061c4b3a13327c090f9a0789f58aad805275e4378a525f19232bfbfb749ede38480f405cf43ec2f1f8619ebcbc80a89e92a859c7911e674977ab17d4a7126a6b8a477358ff14a344d276ef6e504e10268ac3619fcf90c2d6c03fc2e3d1f290d9bf26c1fa1495dd8f97eec6229a55c2354e4524143551a5cc370a1c622c9390530cff21c3e1ed50c5e3daf97518ccce34156bdbd7eafab8bd417aef25c6c927301731bd319d247a1d5c3186ed10bfd9a7a24bac30e3e4503ed9204154d338b79ea276e7058e7f20f4d4fd1ac93d63f611af7b6d006c2a72add0eedc497b19cb30a198816664f0da00155f2e2d6ac61045b296d614301e0ad4983308028850dd4feffe3a8163970306e4047f5a165cb4befbc129729cd2e286e837e9b606486d402acc3dec5bf8b92387f6e486f2140
+
+Cipher = chacha20-poly1305
+Key = 1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0
+IV = ff000000000102030405060708
+AAD = f33388860000000000004e91
+Tag = e0723bce23528ce6ccb10ff9627038bf
+Plaintext = 496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d6f6e74687320616e64206d617920626520757064617465642c207265706c616365642c206f72206f62736f6c65746564206279206f7468657220646f63756d656e747320617420616e792074696d652e20497420697320696e617070726f70726961746520746f2075736520496e7465726e65742d447261667473206173207265666572656e6365206d6174657269616c206f7220746f2063697465207468656d206f74686572207468616e206173202fe2809c776f726b20696e2070726f67496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d6f6e74687320616e64206d617920626520757064617465642c207265706c616365642c206f72206f62736f6c65746564206279206f7468657220646f63756d656e747320617420616e792074696d652e20497420697320696e617070726f70726961746520746f2075736520496e7465726e65742d447261667473206173207265666572656e6365206d6174657269616c206f7220746f2063697465207468656d206f74686572207468616e206173202fe2809c776f726b20696e2070726f67496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d
+Ciphertext = 64a0861575861af460f062c79be643bd5e805cfd345cf389f108670ac76c8cb24c6cfc18755d43eea09ee94e382d26b0bdb7b73c321b0100d4f03b7f355894cf332f830e710b97ce98c8a84abd0b948114ad176e008d33bd60f982b1ff37c8559797a06ef4f0ef61c186324e2b3506383606907b6a7c02b0f9f6157b53c867e4b9166c767b804d46a59b5216cde7a4e99040c5a40433225ee282a1b0a06c523eaf4534d7f83fa1155b0047718cbc546a0d072b04b3564eea1b422273f548271a0bb2316053fa76991955ebd63159434ecebb4e466dae5a1073a6727627097a1049e617d91d361094fa68f0ff77987130305beaba2eda04df997b714d6c6f2c299da65ba25e6a85842bf0440fd98a9a2266b061c4b3a13327c090f9a0789f58aad805275e4378a525f19232bfbfb749ede38480f405cf43ec2f1f8619ebcbc80a89e92a859c7911e674977ab17d4a7126a6b8a477358ff14a344d276ef6e504e10268ac3619fcf90c2d6c03fc2e3d1f290d9bf26c1fa1495dd8f97eec6229a55c2354e4524143551a5cc370a1c622c9390530cff21c3e1ed50c5e3daf97518ccce34156bdbd7eafab8bd417aef25c6c927301731bd319d247a1d5c3186ed10bfd9a7a24bac30e3e4503ed9204154d338b79ea276e7058e7f20f4d4fd1ac93d63f611af7b6d006c2a72add0eedc497b19cb30a198816664f0da00155f2e2d6ac61045b296d614301e0ad4983308028850dd4feffe3a8163970306e4047f5a165cb4befbc129729cd2e286e837e9b606486d402acc3dec5bf8b92387f6e486f2140
+Result = INVALID_IV_LENGTH
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpdigest.txt b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpdigest.txt
new file mode 100644
index 000000000..ae3f7e6a9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpdigest.txt
@@ -0,0 +1,546 @@
+#
+# Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# Tests start with one of these keywords
+# Cipher Decrypt Derive Digest Encoding KDF MAC PBE
+# PrivPubKeyPair Sign Verify VerifyRecover
+# and continue until a blank line. Lines starting with a pound sign,
+# like this prolog, are ignored.
+
+# BLAKE2 tests, using same inputs as MD5
+# There are no official BLAKE2 test vectors we can use since they all use a key
+# Which is currently unsupported by OpenSSL. They were generated using the
+# reference implementation. RFC7693 also mentions the 616263 / "abc" values.
+
+Title = BLAKE tests
+
+Digest = BLAKE2s256
+Input =
+Output = 69217a3079908094e11121d042354a7c1f55b6482ca1a51e1b250dfd1ed0eef9
+
+Digest = BLAKE2s256
+Input = 61
+Output = 4a0d129873403037c2cd9b9048203687f6233fb6738956e0349bd4320fec3e90
+
+Digest = BLAKE2s256
+Input = 616263
+Output = 508c5e8c327c14e2e1a72ba34eeb452f37458b209ed63a294d999b4c86675982
+
+Digest = BLAKE2s256
+Input = 6d65737361676520646967657374
+Output = fa10ab775acf89b7d3c8a6e823d586f6b67bdbac4ce207fe145b7d3ac25cd28c
+
+Digest = BLAKE2s256
+Input = 6162636465666768696a6b6c6d6e6f707172737475767778797a
+Output = bdf88eb1f86a0cdf0e840ba88fa118508369df186c7355b4b16cf79fa2710a12
+
+Digest = BLAKE2s256
+Input = 4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a30313233343536373839
+Output = c75439ea17e1de6fa4510c335dc3d3f343e6f9e1ce2773e25b4174f1df8b119b
+
+Digest = BLAKE2s256
+Input = 3132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930
+Output = fdaedb290a0d5af9870864fec2e090200989dc9cd53a3c092129e8535e8b4f66
+
+Digest = BLAKE2s256
+Input = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F
+Output = 1FA877DE67259D19863A2A34BCC6962A2B25FCBF5CBECD7EDE8F1FA36688A796
+
+Digest = BLAKE2s256
+Input = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F8081
+Output = C80ABEEBB669AD5DEEB5F5EC8EA6B7A05DDF7D31EC4C0A2EE20B0B98CAEC6746
+
+Digest = BLAKE2b512
+Input =
+Output = 786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce
+
+Digest = BLAKE2b512
+Input = 61
+Output = 333fcb4ee1aa7c115355ec66ceac917c8bfd815bf7587d325aec1864edd24e34d5abe2c6b1b5ee3face62fed78dbef802f2a85cb91d455a8f5249d330853cb3c
+
+Digest = BLAKE2b512
+Input = 616263
+Output = ba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d17d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923
+
+Digest = BLAKE2b512
+Input = 6d65737361676520646967657374
+Output = 3c26ce487b1c0f062363afa3c675ebdbf5f4ef9bdc022cfbef91e3111cdc283840d8331fc30a8a0906cff4bcdbcd230c61aaec60fdfad457ed96b709a382359a
+
+Digest = BLAKE2b512
+Input = 6162636465666768696a6b6c6d6e6f707172737475767778797a
+Output = c68ede143e416eb7b4aaae0d8e48e55dd529eafed10b1df1a61416953a2b0a5666c761e7d412e6709e31ffe221b7a7a73908cb95a4d120b8b090a87d1fbedb4c
+
+Digest = BLAKE2b512
+Input = 4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a30313233343536373839
+Output = 99964802e5c25e703722905d3fb80046b6bca698ca9e2cc7e49b4fe1fa087c2edf0312dfbb275cf250a1e542fd5dc2edd313f9c491127c2e8c0c9b24168e2d50
+
+Digest = BLAKE2b512
+Input = 3132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930
+Output = 686f41ec5afff6e87e1f076f542aa466466ff5fbde162c48481ba48a748d842799f5b30f5b67fc684771b33b994206d05cc310f31914edd7b97e41860d77d282
+
+Digest = BLAKE2b512
+Input = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F
+Output = 2319E3789C47E2DAA5FE807F61BEC2A1A6537FA03F19FF32E87EECBFD64B7E0E8CCFF439AC333B040F19B0C4DDD11A61E24AC1FE0F10A039806C5DCC0DA3D115
+
+Digest = BLAKE2b512
+Input = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F8081
+Output = DF0A9D0C212843A6A934E3902B2DD30D17FBA5F969D2030B12A546D8A6A45E80CF5635F071F0452E9C919275DA99BED51EB1173C1AF0518726B75B0EC3BAE2B5
+
+Title = SHA tests from (RFC6234 section 8.5 and others)
+
+Digest = SHA1
+Input = "abc"
+Output = a9993e364706816aba3e25717850c26c9cd0d89d
+
+Digest = SHA1
+Input = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
+Output = 84983e441c3bd26ebaae4aa1f95129e5e54670f1
+
+Digest = SHA1
+Input = "a"
+Ncopy = 1000
+Count = 1000
+Output = 34aa973cd4c4daa4f61eeb2bdbad27316534016f
+
+Digest = SHA224
+Input = "abc"
+Output = 23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7
+
+Digest = SHA224
+Input = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
+Output = 75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525
+
+Digest = SHA224
+Input = "a"
+Ncopy = 64
+Count = 15625
+Output = 20794655980c91d8bbb4c1ea97618a4bf03f42581948b2ee4ee7ad67
+
+Digest = SHA256
+Input = "abc"
+Output = ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
+
+Digest = SHA256
+Input = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
+Output = 248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1
+
+Digest = SHA256
+Input = "a"
+Ncopy = 288
+Count = 3472
+Input = "a"
+Ncopy = 64
+Output = cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0
+
+Digest = SHA384
+Input = "abc"
+Output = cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7
+
+Digest = SHA384
+Input = "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"
+Output = 09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712fcc7c71a557e2db966c3e9fa91746039
+
+Digest = SHA384
+Input = "a"
+Ncopy = 64
+Count = 15625
+Output = 9d0e1809716474cb086e834e310a4a1ced149e9c00f248527972cec5704c2a5b07b8b3dc38ecc4ebae97ddd87f3d8985
+
+Digest = SHA512
+Input = "abc"
+Output = ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f
+
+Digest = SHA512
+Input = "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"
+Output = 8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909
+
+Digest = SHA512
+Input = "a"
+Ncopy = 288
+Count = 3472
+Input = "a"
+Ncopy = 64
+Output = e718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973ebde0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09b
+
+# Some of the test vectors from the SHS CAVP for FIPS 180-4
+Digest = SHA512-224
+Input =
+Output = 6ed0dd02806fa89e25de060c19d3ac86cabb87d6a0ddd05c333b84f4
+
+Digest = SHA512-224
+Input = cf
+Output = 4199239e87d47b6feda016802bf367fb6e8b5655eff6225cb2668f4a
+
+Digest = SHA512-224
+Input = ca2d
+Output = 392b99b593b85e147f031986c2a9edfdb4ffd9f24c77c452d339c9fc
+
+Digest = SHA512-224
+Input = 6963446913771410
+Output = 21f6c373637e6a5e89d6e88811110c5c3fa12e497144912914c546e1
+
+Digest = SHA512-224
+Input = 44c6c75e377f21fc9cd7c164ca5c4cb82c5538a58dfb323992e6bcf588c61b246053706bf88725a09d0a8adfcdeec0db419cd7732b0e3386bc3f3407e9e016546f4d15c314bfd57e30c302926deb3342cbc315a1e706c5607c127de42a9a739b
+Output = b9b62986eebdb35c88b12e0257537a05394ef5a16fad01c2fec57d6f
+
+# The two examples from: https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Standards-and-Guidelines/documents/examples/SHA512_224.pdf
+Digest = SHA512-224
+Input = "abc"
+Output = 4634270f707b6a54daae7530460842e20e37ed265ceee9a43e8924aa
+
+Digest = SHA512-224
+Input = "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"
+Output = 23fec5bb94d60b23308192640b0c453335d664734fe40e7268674af9
+
+# Some of the test vectors from the SHS CAVP for FIPS 180-4
+Digest = SHA512-256
+Input =
+Output = c672b8d1ef56ed28ab87c3622c5114069bdd3ad7b8f9737498d0c01ecef0967a
+
+Digest = SHA512-256
+Input = fa
+Output = c4ef36923c64e51e875720e550298a5ab8a3f2f875b1e1a4c9b95babf7344fef
+
+Digest = SHA512-256
+Input = 74e4
+Output = 0c994228b8d3bd5ea5b5259157a9bba7a193118ad22817e6fbed2df1a32a4148
+
+Digest = SHA512-256
+Input = b4e2e8501f54be91
+Output = d25265bf9cbc0dd2f108a2f5e8f69db7d15e5b8fe9100fe887dae20b6e054fe8
+
+Digest = SHA512-256
+Input = 63188781f4e9cbd1e89a54a65da053b93722e1106f00f024ad1582421ab919326f8a6e17536d6596e3cf413a9231141733e37aae540f8711cefafe489a87c4f2e6fd942f6809f3bef3076763487de48c2ee88733c5bc870617a668c6f01471ed
+Output = 91a8e285029085e224987078066486b6c605cbac27e49e84f4639710ddd05d33
+
+# The two examples from https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Standards-and-Guidelines/documents/examples/SHA512_256.pdf
+Digest = SHA512-256
+Input = "abc"
+Output = 53048e2681941ef99b2e29b76b4c7dabe4c2d0c634fc6d46e0e2f13107e7af23
+
+Digest = SHA512-256
+Input = "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"
+Output = 3928e184fb8690f840da3988121d31be65cb9d3ef83ee6146feac861e19b563a
+
+Title = MD5 tests
+
+Digest = MD5
+Input =
+Output = d41d8cd98f00b204e9800998ecf8427e
+
+Digest = MD5
+Input = 61
+Output = 0cc175b9c0f1b6a831c399e269772661
+
+Digest = MD5
+Input = 616263
+Output = 900150983cd24fb0d6963f7d28e17f72
+
+Digest = MD5
+Input = 6d65737361676520646967657374
+Output = f96b697d7cb7938d525a2f31aaf161d0
+
+Digest = MD5
+Input = 6162636465666768696a6b6c6d6e6f707172737475767778797a
+Output = c3fcd3d76192e4007dfb496cca67e13b
+
+Digest = MD5
+Input = 4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a30313233343536373839
+Output = d174ab98d277d9f5a5611c2c9f419d9f
+
+Digest = MD5
+Input = 3132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930
+Output = 57edf4a22be3c955ac49da2e2107b67a
+
+Title = MD5-SHA1
+
+Digest = MD5-SHA1
+Input =
+Output = d41d8cd98f00b204e9800998ecf8427eda39a3ee5e6b4b0d3255bfef95601890afd80709
+
+Digest = MD5-SHA1
+Input = "abc"
+Output = 900150983cd24fb0d6963f7d28e17f72a9993e364706816aba3e25717850c26c9cd0d89d
+
+Digest = MD5-SHA1
+Input = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
+Output = 8215ef0796a20bcaaae116d3876c664a84983e441c3bd26ebaae4aa1f95129e5e54670f1
+
+Title = MD4 tests
+
+Digest = MD4
+Input = ""
+Output = 31d6cfe0d16ae931b73c59d7e0c089c0
+
+Digest = MD4
+Input = "a"
+Output = bde52cb31de33e46245e05fbdbd6fb24
+
+Digest = MD4
+Input = "abc"
+Output = a448017aaf21d8525fc10ae87aa6729d
+
+Digest = MD4
+Input = "message digest"
+Output = d9130a8164549fe818874806e1c7014b
+
+Digest = MD4
+Input = "abcdefghijklmnopqrstuvwxyz"
+Output = d79e1c308aa5bbcdeea8ed63df412da9
+
+Digest = MD4
+Input = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
+Output = 043f8582f241db351ce627e153e7f0e4
+
+Digest = MD4
+Input = "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+Output = e33b4ddc9c38f2199c3e7b164fcc0536
+
+Title = RIPEMD160 tests
+
+Digest = RIPEMD160
+Input = ""
+Output = 9c1185a5c5e9fc54612808977ee8f548b2258d31
+
+Digest = RIPEMD160
+Input = "a"
+Output = 0bdc9d2d256b3ee9daae347be6f4dc835a467ffe
+
+Digest = RIPEMD160
+Input = "abc"
+Output = 8eb208f7e05d987a9b044a8e98c6b087f15a0bfc
+
+Digest = RIPEMD160
+Input = "message digest"
+Output = 5d0689ef49d2fae572b881b123a85ffa21595f36
+
+Digest = RIPEMD160
+Input = "abcdefghijklmnopqrstuvwxyz"
+Output = f71c27109c692c1b56bbdceb5b9d2865b3708dbc
+
+Digest = RIPEMD160
+Input = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
+Output = 12a053384a9c0c88e405a06c27dcf49ada62eb2b
+
+Digest = RIPEMD160
+Input = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
+Output = b0e20b6e3116640286ed3a87a5713079b21f5189
+
+Digest = RIPEMD160
+Input = "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+Output = 9b752e45573d4b39f4dbd3323cab82bf63326bfb
+
+Title = Whirlpool (from ISO/IEC 10118-3 test vector set)
+
+Digest = whirlpool
+Input = ""
+Output = 19FA61D75522A4669B44E39C1D2E1726C530232130D407F89AFEE0964997F7A73E83BE698B288FEBCF88E3E03C4F0757EA8964E59B63D93708B138CC42A66EB3
+
+Digest = whirlpool
+Input = "a"
+Output = 8ACA2602792AEC6F11A67206531FB7D7F0DFF59413145E6973C45001D0087B42D11BC645413AEFF63A42391A39145A591A92200D560195E53B478584FDAE231A
+
+Digest = whirlpool
+Input = "abc"
+Output = 4E2448A4C6F486BB16B6562C73B4020BF3043E3A731BCE721AE1B303D97E6D4C7181EEBDB6C57E277D0E34957114CBD6C797FC9D95D8B582D225292076D4EEF5
+
+Digest = whirlpool
+Input = "message digest"
+Output = 378C84A4126E2DC6E56DCC7458377AAC838D00032230F53CE1F5700C0FFB4D3B8421557659EF55C106B4B52AC5A4AAA692ED920052838F3362E86DBD37A8903E
+
+Digest = whirlpool
+Input = "abcdefghijklmnopqrstuvwxyz"
+Output = F1D754662636FFE92C82EBB9212A484A8D38631EAD4238F5442EE13B8054E41B08BF2A9251C30B6A0B8AAE86177AB4A6F68F673E7207865D5D9819A3DBA4EB3B
+
+Digest = whirlpool
+Input = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
+Output = DC37E008CF9EE69BF11F00ED9ABA26901DD7C28CDEC066CC6AF42E40F82F3A1E08EBA26629129D8FB7CB57211B9281A65517CC879D7B962142C65F5A7AF01467
+
+Digest = whirlpool
+Input = "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+Output = 466EF18BABB0154D25B9D38A6414F5C08784372BCCB204D6549C4AFADB6014294D5BD8DF2A6C44E538CD047B2681A51A2C60481E88C5A20B2C2A80CF3A9A083B
+
+Digest = whirlpool
+Input = "abcdbcdecdefdefgefghfghighijhijk"
+Output = 2A987EA40F917061F5D6F0A0E4644F488A7A5A52DEEE656207C562F988E95C6916BDC8031BC5BE1B7B947639FE050B56939BAAA0ADFF9AE6745B7B181C3BE3FD
+
+Digest = whirlpool
+Input = "aaaaaaaaaa"
+Count = 100000
+Output = 0C99005BEB57EFF50A7CF005560DDF5D29057FD86B20BFD62DECA0F1CCEA4AF51FC15490EDDC47AF32BB2B66C34FF9AD8C6008AD677F77126953B226E4ED8B01
+
+
+Title = SHA3
+
+# Empty input and \xA3x200 vectors are taken from
+# http://csrc.nist.gov/groups/ST/toolkit/examples.html#aHashing
+# Others are pairs of "LongMsg" vectors available at
+# http://csrc.nist.gov/groups/STM/cavp/secure-hashing.html#test-vectors
+
+Digest = SHA3-224
+Input = ""
+Output = 6B4E03423667DBB73B6E15454F0EB1ABD4597F9A1B078E3F5B5A6BC7
+
+Digest = SHA3-224
+Input = A3
+Count = 200
+Output = 9376816ABA503F72F96CE7EB65AC095DEEE3BE4BF9BBC2A1CB7E11E0
+
+Digest = SHA3-224
+Input = 31c82d71785b7ca6b651cb6c8c9ad5e2aceb0b0633c088d33aa247ada7a594ff4936c023251319820a9b19fc6c48de8a6f7ada214176ccdaadaeef51ed43714ac0c8269bbd497e46e78bb5e58196494b2471b1680e2d4c6dbd249831bd83a4d3be06c8a2e903933974aa05ee748bfe6ef359f7a143edf0d4918da916bd6f15e26a790cff514b40a5da7f72e1ed2fe63a05b8149587bea05653718cc8980eadbfeca85b7c9c286dd040936585938be7f98219700c83a9443c2856a80ff46852b26d1b1edf72a30203cf6c44a10fa6eaf1920173cedfb5c4cf3ac665b37a86ed02155bbbf17dc2e786af9478fe0889d86c5bfa85a242eb0854b1482b7bd16f67f80bef9c7a628f05a107936a64273a97b0088b0e515451f916b5656230a12ba6dc78
+Output = aab23c9e7fb9d7dacefdfd0b1ae85ab1374abff7c4e3f7556ecae412
+
+Digest = SHA3-224
+Input = ab4f9d765085ccb474be6e2369568292532f6fa4dd9c50d02a7d8fab0fabb56a7f9680a2462c3753fafd3a252f9dddf1eb4a76835acfb59fc2a83441b8674f2995573697245e40549d2883f1d781a153b903e470f2f28e53e9646a66f7a5a7f0d5d9e6dd50e392be44867010c7ca77c1a5a2e1f00dcb82f589f759a1332b65c62766b9fa3483d399d7602a0969400642976e948d13243a8b89aa287ad5c230b47344d7783606aced3dfed86424abf7de77b026ce6cc35d20d1c500794332b0c1a1bc67dfc033c4c360a8a3aa5fd2f19d2db1bf3b807094b949900827e6438ef5991692b539d3c42227a6b362847e9d88a1b6855db7f58760d953690b26bd7258439a7f8409ae53137a3f2f14fa77a2a6bc0aa3bb7a19dd1c69554aae6c6703f3879057d3978c1a9d41bd3f492985aa0064f43fde2fa33ff6e1dfd4961e0aeacd4e3f412b4d35c0c864660d8779705a9c82bb824c405c54f429392e4da66ecfee7ef066139270ee9ccc83be5952ff5c84ffa8938f130cc52129ab825b6a5b585f01ebed13ce074c225f5b7d441cfc58c0c1039a2f127b3982ca7df546d4993027bd78ffb36ac08161063870d23f2df556b214
+Output = d61f04985026eee29d0f9700f8c5aea32ec2c23b1a9357edeb2be20c
+
+
+Digest = SHA3-256
+Input = ""
+Output = A7FFC6F8BF1ED76651C14756A061D662F580FF4DE43B49FA82D80A4B80F8434A
+
+Digest = SHA3-256
+Input = A3
+Count = 200
+Output = 79F38ADEC5C20307A98EF76E8324AFBFD46CFD81B22E3973C65FA1BD9DE31787
+
+Digest = SHA3-256
+Input = b1caa396771a09a1db9bc20543e988e359d47c2a616417bbca1b62cb02796a888fc6eeff5c0b5c3d5062fcb4256f6ae1782f492c1cf03610b4a1fb7b814c057878e1190b9835425c7a4a0e182ad1f91535ed2a35033a5d8c670e21c575ff43c194a58a82d4a1a44881dd61f9f8161fc6b998860cbe4975780be93b6f87980bad0a99aa2cb7556b478ca35d1f3746c33e2bb7c47af426641cc7bbb3425e2144820345e1d0ea5b7da2c3236a52906acdc3b4d34e474dd714c0c40bf006a3a1d889a632983814bbc4a14fe5f159aa89249e7c738b3b73666bac2a615a83fd21ae0a1ce7352ade7b278b587158fd2fabb217aa1fe31d0bda53272045598015a8ae4d8cec226fefa58daa05500906c4d85e7567
+Output = cb5648a1d61c6c5bdacd96f81c9591debc3950dcf658145b8d996570ba881a05
+
+Digest = SHA3-256
+Input = 712b03d9ebe78d3a032a612939c518a6166ca9a161183a7596aa35b294d19d1f962da3ff64b57494cb5656e24adcf3b50e16f4e52135d2d9de76e94aa801cf49db10e384035329c54c9455bb3a9725fd9a44f44cb9078d18d3783d46ce372c31281aecef2f8b53d5702b863d71bc5786a33dd15d9256103b5ff7572f703d5cde6695e6c84f239acd1d6512ef581330590f4ab2a114ea064a693d5f8df5d908587bc7f998cde4a8b43d8821595566597dc8b3bf9ea78b154bd8907ee6c5d4d8a851f94be510962292b7ddda04d17b79fab4c022deb400e5489639dbc448f573d5cf72073a8001b36f73ac6677351b39d9bdb900e9a1121f488a7fa0aee60682e7dc7c531c85ec0154593ded3ae70e4121cae58445d8896b549cacf22d07cdace7625d57158721b44851d796d6511c38dac28dd37cbf2d7073b407fbc813149adc485e3dacee66755443c389d2d90dc70d8ff91816c0c5d7adbad7e30772a1f3ce76c72a6a2284ec7f174aefb6e9a895c118717999421b470a9665d2728c3c60c6d3e048d58b43c0d1b5b2f00be8b64bfe453d1e8fadf5699331f9
+Output = 095dcd0bc55206d2e1e715fb7173fc16a81979f278495dfc69a6d8f3174eba5a
+
+
+Digest = SHA3-384
+Input = ""
+Output = 0C63A75B845E4F7D01107D852E4C2485C51A50AAAA94FC61995E71BBEE983A2AC3713831264ADB47FB6BD1E058D5F004
+
+Digest = SHA3-384
+Input = A3
+Count = 200
+Output = 1881DE2CA7E41EF95DC4732B8F5F002B189CC1E42B74168ED1732649CE1DBCDD76197A31FD55EE989F2D7050DD473E8F
+
+Digest = SHA3-384
+Input = 5fe35923b4e0af7dd24971812a58425519850a506dfa9b0d254795be785786c319a2567cbaa5e35bcf8fe83d943e23fa5169b73adc1fcf8b607084b15e6a013df147e46256e4e803ab75c110f77848136be7d806e8b2f868c16c3a90c14463407038cb7d9285079ef162c6a45cedf9c9f066375c969b5fcbcda37f02aacff4f31cded3767570885426bebd9eca877e44674e9ae2f0c24cdd0e7e1aaf1ff2fe7f80a1c4f5078eb34cd4f06fa94a2d1eab5806ca43fd0f06c60b63d5402b95c70c21ea65a151c5cfaf8262a46be3c722264b
+Output = 3054d249f916a6039b2a9c3ebec1418791a0608a170e6d36486035e5f92635eaba98072a85373cb54e2ae3f982ce132b
+
+Digest = SHA3-384
+Input = 035adcb639e5f28bb5c88658f45c1ce0be16e7dafe083b98d0ab45e8dcdbfa38e3234dfd973ba555b0cf8eea3c82ae1a3633fc565b7f2cc839876d3989f35731be371f60de140e3c916231ec780e5165bf5f25d3f67dc73a1c33655dfdf439dfbf1cbba8b779158a810ad7244f06ec078120cd18760af436a238941ce1e687880b5c879dc971a285a74ee85c6a746749a30159ee842e9b03f31d613dddd22975cd7fed06bd049d772cb6cc5a705faa734e87321dc8f2a4ea366a368a98bf06ee2b0b54ac3a3aeea637caebe70ad09ccda93cc06de95df73394a87ac9bbb5083a4d8a2458e91c7d5bf113aecae0ce279fdda76ba690787d26345e94c3edbc16a35c83c4d071b132dd81187bcd9961323011509c8f644a1c0a3f14ee40d7dd186f807f9edc7c02f6761061bbb6dd91a6c96ec0b9f10edbbd29dc52
+Output = 02535d86cc7518484a2a238c921b739b1704a50370a2924abf39958c5976e658dc5e87440063112459bddb40308b1c70
+
+
+Digest = SHA3-512
+Input = ""
+Output = A69F73CCA23A9AC5C8B567DC185A756E97C982164FE25859E0D1DCC1475C80A615B2123AF1F5F94C11E3E9402C3AC558F500199D95B6D3E301758586281DCD26
+
+Digest = SHA3-512
+Input = A3
+Count = 200
+Output = E76DFAD22084A8B1467FCF2FFA58361BEC7628EDF5F3FDC0E4805DC48CAEECA81B7C13C30ADF52A3659584739A2DF46BE589C51CA1A4A8416DF6545A1CE8BA00
+
+Digest = SHA3-512
+Input = 664ef2e3a7059daf1c58caf52008c5227e85cdcb83b4c59457f02c508d4f4f69f826bd82c0cffc5cb6a97af6e561c6f96970005285e58f21ef6511d26e709889a7e513c434c90a3cf7448f0caeec7114c747b2a0758a3b4503a7cf0c69873ed31d94dbef2b7b2f168830ef7da3322c3d3e10cafb7c2c33c83bbf4c46a31da90cff3bfd4ccc6ed4b310758491eeba603a76
+Output = e5825ff1a3c070d5a52fbbe711854a440554295ffb7a7969a17908d10163bfbe8f1d52a676e8a0137b56a11cdf0ffbb456bc899fc727d14bd8882232549d914e
+
+Digest = SHA3-512
+Input = 991c4e7402c7da689dd5525af76fcc58fe9cc1451308c0c4600363586ccc83c9ec10a8c9ddaec3d7cfbd206484d09634b9780108440bf27a5fa4a428446b3214fa17084b6eb197c5c59a4e8df1cfc521826c3b1cbf6f4212f6bfb9bc106dfb5568395643de58bffa2774c31e67f5c1e7017f57caadbb1a56cc5b8a5cf9584552e17e7af9542ba13e9c54695e0dc8f24eddb93d5a3678e10c8a80ff4f27b677d40bef5cb5f9b3a659cc4127970cd2c11ebf22d514812dfefdd73600dfc10efba38e93e5bff47736126043e50f8b9b941e4ec3083fb762dbf15c86
+Output = cd0f2a48e9aa8cc700d3f64efb013f3600ebdbb524930c682d21025eab990eb6d7c52e611f884031fafd9360e5225ab7e4ec24cbe97f3af6dbe4a86a4f068ba7
+
+Digest = SHAKE128
+Input = ""
+Output = 7F9C2BA4E88F827D616045507605853ED73B8093F6EFBC88EB1A6EACFA66EF263CB1EEA988004B93103CFB0AEEFD2A686E01FA4A58E8A3639CA8A1E3F9AE57E235B8CC873C23DC62B8D260169AFA2F75AB916A58D974918835D25E6A435085B2BADFD6DFAAC359A5EFBB7BCC4B59D538DF9A04302E10C8BC1CBF1A0B3A5120EA17CDA7CFAD765F5623474D368CCCA8AF0007CD9F5E4C849F167A580B14AABDEFAEE7EEF47CB0FCA9767BE1FDA69419DFB927E9DF07348B196691ABAEB580B32DEF58538B8D23F87732EA63B02B4FA0F4873360E2841928CD60DD4CEE8CC0D4C922A96188D032675C8AC850933C7AFF1533B94C834ADBB69C6115BAD4692D8619F90B0CDF8A7B9C264029AC185B70B83F2801F2F4B3F70C593EA3AEEB613A7F1B1DE33FD75081F592305F2E4526EDC09631B10958F464D889F31BA010250FDA7F1368EC2967FC84EF2AE9AFF268E0B1700AFFC6820B523A3D917135F2DFF2EE06BFE72B3124721D4A26C04E53A75E30E73A7A9C4A95D91C55D495E9F51DD0B5E9D83C6D5E8CE803AA62B8D654DB53D09B8DCFF273CDFEB573FAD8BCD45578BEC2E770D01EFDE86E721A3F7C6CCE275DABE6E2143F1AF18DA7EFDDC4C7B70B5E345DB93CC936BEA323491CCB38A388F546A9FF00DD4E1300B9B2153D2041D205B443E41B45A653F2A5C4492C1ADD544512DDA2529833462B71A41A45BE97290B6F
+
+Digest = SHAKE128
+Input = A3
+Count = 200
+Output = 131AB8D2B594946B9C81333F9BB6E0CE75C3B93104FA3469D3917457385DA037CF232EF7164A6D1EB448C8908186AD852D3F85A5CF28DA1AB6FE3438171978467F1C05D58C7EF38C284C41F6C2221A76F12AB1C04082660250802294FB87180213FDEF5B0ECB7DF50CA1F8555BE14D32E10F6EDCDE892C09424B29F597AFC270C904556BFCB47A7D40778D390923642B3CBD0579E60908D5A000C1D08B98EF933F806445BF87F8B009BA9E94F7266122ED7AC24E5E266C42A82FA1BBEFB7B8DB0066E16A85E0493F07DF4809AEC084A593748AC3DDE5A6D7AAE1E8B6E5352B2D71EFBB47D4CAEED5E6D633805D2D323E6FD81B4684B93A2677D45E7421C2C6AEA259B855A698FD7D13477A1FE53E5A4A6197DBEC5CE95F505B520BCD9570C4A8265A7E01F89C0C002C59BFEC6CD4A5C109258953EE5EE70CD577EE217AF21FA70178F0946C9BF6CA8751793479F6B537737E40B6ED28511D8A2D7E73EB75F8DAAC912FF906E0AB955B083BAC45A8E5E9B744C8506F37E9B4E749A184B30F43EB188D855F1B70D71FF3E50C537AC1B0F8974F0FE1A6AD295BA42F6AEC74D123A7ABEDDE6E2C0711CAB36BE5ACB1A5A11A4B1DB08BA6982EFCCD716929A7741CFC63AA4435E0B69A9063E880795C3DC5EF3272E11C497A91ACF699FEFEE206227A44C9FB359FD56AC0A9A75A743CFF6862F17D7259AB075216C0699511643B6439
+
+Digest = SHAKE128
+Input = a6fe00064257aa318b621c5eb311d32bb8004c2fa1a969d205d71762cc5d2e633907992629d1b69d9557ff6d5e8deb454ab00f6e497c89a4fea09e257a6fa2074bd818ceb5981b3e3faefd6e720f2d1edd9c5e4a5c51e5009abf636ed5bca53fe159c8287014a1bd904f5c8a7501625f79ac81eb618f478ce21cae6664acffb30572f059e1ad0fc2912264e8f1ca52af26c8bf78e09d75f3dd9fc734afa8770abe0bd78c90cc2ff448105fb16dd2c5b7edd8611a62e537db9331f5023e16d6ec150cc6e706d7c7fcbfff930c7281831fd5c4aff86ece57ed0db882f59a5fe403105d0592ca38a081fed84922873f538ee774f13b8cc09bd0521db4374aec69f4bae6dcb66455822c0b84c91a3474ffac2ad06f0a4423cd2c6a49d4f0d6242d6a1890937b5d9835a5f0ea5b1d01884d22a6c1718e1f60b3ab5e232947c76ef70b344171083c688093b5f1475377e3069863
+Output = 3109d9472ca436e805c6b3db2251a9bc
+
+Digest = SHAKE128
+Input = 49d81708d86cd59dea0ac2c1017a9712d6dffb754dde0b57a9023a39fc5f5b6be276fc176f59f6826610428fac3a0e85fcf71011db061b8fcf2bf085ccd45670effb6dc46f4e3f2ed08e981c5935187fc95b86cf46da675096b1cf9591a67842d6301116be93d8288e4d6b70f1b1db8aa5d203b774a21825665b8170351ee86801da91154570eaf80a1564945af7822df8232fd04ea65593a7f2ab1e9e84cf6ad6c494c9ec2d9d27aaad2b8f7e4f33f12a17b422bc2d4724c13ff8a8b62054d1bfb5c33b9c11183cd8df67694300165ca37637b5a781155f1c070d156339a0242374c6723b6584bffb71c02b935455f8cb086392f5e8e8cc2015956d8f19daeb6aca4476b27108387a2ce0dc5591154d0b94ddc090abe8f4363036b821062baffb7fe550ea7dcd30bfd86c84710081e1c9e450475e123c5ec41f98ff0149bbf6405b5207cad1fb2f313d0f2bcee9be3f6ebe623049640d9234ab644a172ab14ba02633a339b5b9bb38226fda5694f7ec63ebbb8238eb8219ec9c429f4bf0353383a72f2d21702f5e3c513499f04852710f33044512edc47a56bad90885e5713851a7efac694b869fa590076e844ff757d95de581c1b3fa3dd8ccd28cad4f8ae173ee1b28f98ee606dca89063fbef0f262b33053f2c854debdc9cd433ab77abb64f445aa9b981761c4761767f3b71c2646c7b0d873baae50bc9f0
+Output = c609be05458f7ab33e7b6b54bc6e8999
+
+Digest = SHAKE256
+Input = ""
+Output = 46B9DD2B0BA88D13233B3FEB743EEB243FCD52EA62B81B82B50C27646ED5762FD75DC4DDD8C0F200CB05019D67B592F6FC821C49479AB48640292EACB3B7C4BE141E96616FB13957692CC7EDD0B45AE3DC07223C8E92937BEF84BC0EAB862853349EC75546F58FB7C2775C38462C5010D846C185C15111E595522A6BCD16CF86F3D122109E3B1FDD943B6AEC468A2D621A7C06C6A957C62B54DAFC3BE87567D677231395F6147293B68CEAB7A9E0C58D864E8EFDE4E1B9A46CBE854713672F5CAAAE314ED9083DAB4B099F8E300F01B8650F1F4B1D8FCF3F3CB53FB8E9EB2EA203BDC970F50AE55428A91F7F53AC266B28419C3778A15FD248D339EDE785FB7F5A1AAA96D313EACC890936C173CDCD0FAB882C45755FEB3AED96D477FF96390BF9A66D1368B208E21F7C10D04A3DBD4E360633E5DB4B602601C14CEA737DB3DCF722632CC77851CBDDE2AAF0A33A07B373445DF490CC8FC1E4160FF118378F11F0477DE055A81A9EDA57A4A2CFB0C83929D310912F729EC6CFA36C6AC6A75837143045D791CC85EFF5B21932F23861BCF23A52B5DA67EAF7BAAE0F5FB1369DB78F3AC45F8C4AC5671D85735CDDDB09D2B1E34A1FC066FF4A162CB263D6541274AE2FCC865F618ABE27C124CD8B074CCD516301B91875824D09958F341EF274BDAB0BAE316339894304E35877B0C28A9B1FD166C796B9CC258A064A8F57E27F2A
+
+Digest = SHAKE256
+Input = A3
+Count = 200
+Output = CD8A920ED141AA0407A22D59288652E9D9F1A7EE0C1E7C1CA699424DA84A904D2D700CAAE7396ECE96604440577DA4F3AA22AEB8857F961C4CD8E06F0AE6610B1048A7F64E1074CD629E85AD7566048EFC4FB500B486A3309A8F26724C0ED628001A1099422468DE726F1061D99EB9E93604D5AA7467D4B1BD6484582A384317D7F47D750B8F5499512BB85A226C4243556E696F6BD072C5AA2D9B69730244B56853D16970AD817E213E470618178001C9FB56C54FEFA5FEE67D2DA524BB3B0B61EF0E9114A92CDBB6CCCB98615CFE76E3510DD88D1CC28FF99287512F24BFAFA1A76877B6F37198E3A641C68A7C42D45FA7ACC10DAE5F3CEFB7B735F12D4E589F7A456E78C0F5E4C4471FFFA5E4FA0514AE974D8C2648513B5DB494CEA847156D277AD0E141C24C7839064CD08851BC2E7CA109FD4E251C35BB0A04FB05B364FF8C4D8B59BC303E25328C09A882E952518E1A8AE0FF265D61C465896973D7490499DC639FB8502B39456791B1B6EC5BCC5D9AC36A6DF622A070D43FED781F5F149F7B62675E7D1A4D6DEC48C1C7164586EAE06A51208C0B791244D307726505C3AD4B26B6822377257AA152037560A739714A3CA79BD605547C9B78DD1F596F2D4F1791BC689A0E9B799A37339C04275733740143EF5D2B58B96A363D4E08076A1A9D7846436E4DCA5728B6F760EEF0CA92BF0BE5615E96959D767197A0BEEB
+
+Digest = SHAKE256
+Input = dc5a100fa16df1583c79722a0d72833d3bf22c109b8889dbd35213c6bfce205813edae3242695cfd9f59b9a1c203c1b72ef1a5423147cb990b5316a85266675894e2644c3f9578cebe451a09e58c53788fe77a9e850943f8a275f830354b0593a762bac55e984db3e0661eca3cb83f67a6fb348e6177f7dee2df40c4322602f094953905681be3954fe44c4c902c8f6bba565a788b38f13411ba76ce0f9f6756a2a2687424c5435a51e62df7a8934b6e141f74c6ccf539e3782d22b5955d3baf1ab2cf7b5c3f74ec2f9447344e937957fd7f0bdfec56d5d25f61cde18c0986e244ecf780d6307e313117256948d4230ebb9ea62bb302cfe80d7dfebabc4a51d7687967ed5b416a139e974c005fff507a96
+Output = 2bac5716803a9cda8f9e84365ab0a681327b5ba34fdedfb1c12e6e807f45284b
+
+Digest = SHAKE256
+Input = 16caf60da14b4fa9174a6d40c23cff93ed8fc9279990f749718db1500036ef2222498ffab86fa568a0611299e54e58d83281ac558d3f4d2541ee158b1c7d4d76dbffc64ae39925e3329f7fd894fa26fc1acdc22bc858a3438e1c55707a3f75ad2b33c48789937a24b34ddd85390611088cba3231b2a3a0a93e5d9a8780470fcff92cb03811234a330db353283b3bc3036f9125efb3eaed613bfa0c59975cc2e52c33b3e6e5123e1626190a4a0261e1f5ad9bc2ee34f331736b3bd26d274536f5ae90f5186c27fdd7e8c72972f64016e72d1d32b59b8715e5b867154b99cb140a668b9d560e2c307e3904d9297f9f07dfd7629ccc526e41c109c8fc7c53b604293c6cd42933e77e11031a42f605485fe893b129bcbf705c0f45a4b087bfcead5c187ac1174322909a2d4f8b61f001c4074951000c4c550ed5564458f444dab8aae2fe8daaa6a30d209fecddf2a893df46e18b4b4460e4011d23f01d4c49a4cc1c82405f6ac5339eac41385f3295c657ac43a72fed62e6daee94ef271638f292b8e18860de0699eb45fb7d3aa81f61d44158edd68ebc244451918b
+Output = 21a48efd949c3f785179a0e340756a23f77d29a7625229a71a05731c7fbd5aa9
+
+# Following tests are pairs of *last* "VariableOut" vectors from
+# http://csrc.nist.gov/groups/STM/cavp/secure-hashing.html#test-vectors
+
+Digest = SHAKE128
+Input = c60a221c975e14bf835827c1103a2906
+Output = 0db7f7196eee8dd6994a16ded19cb09f05f89ccd2464333df2c017c6ca041fa0d54a4832a74ce86ce9b41d8e523e66ce6ef9df7c20aa70e0ac00f54eb072a472ef46cf2a933df0d5f9fafab6388a206f6bd1df50b0836500c758c557c8ac965733fdaaa59f5ed661a1bda61e2952886a60f9568157e3d72e49b6e061fc08f3f1caf159e8eff77ea5221565d2
+
+Digest = SHAKE128
+Input = 0a13ad2c7a239b4ba73ea6592ae84ea9
+Output = 5feaf99c15f48851943ff9baa6e5055d8377f0dd347aa4dbece51ad3a6d9ce0c01aee9fe2260b80a4673a909b532adcdd1e421c32d6460535b5fe392a58d2634979a5a104d6c470aa3306c400b061db91c463b2848297bca2bc26d1864ba49d7ff949ebca50fbf79a5e63716dc82b600bd52ca7437ed774d169f6bf02e46487956fba2230f34cd2a0485484d
+
+Digest = SHAKE256
+Input = 6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b
+Output = b9b92544fb25cfe4ec6fe437d8da2bbe00f7bdaface3de97b8775a44d753c3adca3f7c6f183cc8647e229070439aa9539ae1f8f13470c9d3527fffdeef6c94f9f0520ff0c1ba8b16e16014e1af43ac6d94cb7929188cce9d7b02f81a2746f52ba16988e5f6d93298d778dfe05ea0ef256ae3728643ce3e29c794a0370e9ca6a8bf3e7a41e86770676ac106f7ae79e67027ce7b7b38efe27d253a52b5cb54d6eb4367a87736ed48cb45ef27f42683da140ed3295dfc575d3ea38cfc2a3697cc92864305407369b4abac054e497378dd9fd0c4b352ea3185ce1178b3dc1599df69db29259d4735320c8e7d33e8226620c9a1d22761f1d35bdff79a
+
+Digest = SHAKE256
+Input = 8d8001e2c096f1b88e7c9224a086efd4797fbf74a8033a2d422a2b6b8f6747e4
+Output = 2e975f6a8a14f0704d51b13667d8195c219f71e6345696c49fa4b9d08e9225d3d39393425152c97e71dd24601c11abcfa0f12f53c680bd3ae757b8134a9c10d429615869217fdd5885c4db174985703a6d6de94a667eac3023443a8337ae1bc601b76d7d38ec3c34463105f0d3949d78e562a039e4469548b609395de5a4fd43c46ca9fd6ee29ada5efc07d84d553249450dab4a49c483ded250c9338f85cd937ae66bb436f3b4026e859fda1ca571432f3bfc09e7c03ca4d183b741111ca0483d0edabc03feb23b17ee48e844ba2408d9dcfd0139d2e8c7310125aee801c61ab7900d1efc47c078281766f361c5e6111346235e1dc38325666c
+
+Title = SM3 Tests
+
+# From https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02
+
+Digest = SM3
+Input = 0090414C494345313233405941484F4F2E434F4D787968B4FA32C3FD2417842E73BBFEFF2F3C848B6831D7E0EC65228B3937E49863E4C6D3B23B0C849CF84241484BFE48F61D59A5B16BA06E6E12D1DA27C5249A421DEBD61B62EAB6746434EBC3CC315E32220B3BADD50BDC4C4E6C147FEDD43D0680512BCBB42C07D47349D2153B70C4E5D7FDFCBFA36EA1A85841B9E46E09A20AE4C7798AA0F119471BEE11825BE46202BB79E2A5844495E97C04FF4DF2548A7C0240F88F1CD4E16352A73C17B7F16F07353E53A176D684A9FE0C6BB798E857
+Output = F4A38489E32B45B6F876E3AC2168CA392362DC8F23459C1D1146FC3DBFB7BC9A
+
+# From https://tools.ietf.org/html/draft-shen-sm3-hash-01
+Digest = SM3
+Input = 616263
+Output = 66C7F0F462EEEDD9D1F2D46BDC10E4E24167C4875CF2F7A2297DA02B8F4BA8E0
+
+Digest = SM3
+Input = 61626364616263646162636461626364616263646162636461626364616263646162636461626364616263646162636461626364616263646162636461626364
+Output = DEBE9FF92275B8A138604889C18E5A4D6FDB70E5387E5765293dCbA39C0C5732
+
+# From GmSSL test suite
+
+Digest = SM3
+Input = 0090414C494345313233405941484F4F2E434F4D787968B4FA32C3FD2417842E73BBFEFF2F3C848B6831D7E0EC65228B3937E49863E4C6D3B23B0C849CF84241484BFE48F61D59A5B16BA06E6E12D1DA27C5249A421DEBD61B62EAB6746434EBC3CC315E32220B3BADD50BDC4C4E6C147FEDD43D0680512BCBB42C07D47349D2153B70C4E5D7FDFCBFA36EA1A85841B9E46E09A20AE4C7798AA0F119471BEE11825BE46202BB79E2A5844495E97C04FF4DF2548A7C0240F88F1CD4E16352A73C17B7F16F07353E53A176D684A9FE0C6BB798E857
+Output = F4A38489E32B45B6F876E3AC2168CA392362DC8F23459C1D1146FC3DBFB7BC9A
+
+Digest = SM3
+Input = 0090414C494345313233405941484F4F2E434F4D00000000000000000000000000000000000000000000000000000000000000000000E78BCD09746C202378A7E72B12BCE00266B9627ECB0B5A25367AD1AD4CC6242B00CDB9CA7F1E6B0441F658343F4B10297C0EF9B6491082400A62E7A7485735FADD013DE74DA65951C4D76DC89220D5F7777A611B1C38BAE260B175951DC8060C2B3E0165961645281A8626607B917F657D7E9382F1EA5CD931F40F6627F357542653B201686522130D590FB8DE635D8FCA715CC6BF3D05BEF3F75DA5D543454448166612
+Output = 26352AF82EC19F207BBC6F9474E11E90CE0F7DDACE03B27F801817E897A81FD5
+
+Digest = SM3
+Input = 0090414C494345313233405941484F4F2E434F4D787968B4FA32C3FD2417842E73BBFEFF2F3C848B6831D7E0EC65228B3937E49863E4C6D3B23B0C849CF84241484BFE48F61D59A5B16BA06E6E12D1DA27C5249A421DEBD61B62EAB6746434EBC3CC315E32220B3BADD50BDC4C4E6C147FEDD43D0680512BCBB42C07D47349D2153B70C4E5D7FDFCBFA36EA1A85841B9E46E09A23099093BF3C137D8FCBBCDF4A2AE50F3B0F216C3122D79425FE03A45DBFE16553DF79E8DAC1CF0ECBAA2F2B49D51A4B387F2EFAF482339086A27A8E05BAED98B
+Output = E4D1D0C3CA4C7F11BC8FF8CB3F4C02A78F108FA098E51A668487240F75E20F31
+
+Digest = SM3
+Input = 008842494C4C343536405941484F4F2E434F4D787968B4FA32C3FD2417842E73BBFEFF2F3C848B6831D7E0EC65228B3937E49863E4C6D3B23B0C849CF84241484BFE48F61D59A5B16BA06E6E12D1DA27C5249A421DEBD61B62EAB6746434EBC3CC315E32220B3BADD50BDC4C4E6C147FEDD43D0680512BCBB42C07D47349D2153B70C4E5D7FDFCBFA36EA1A85841B9E46E09A2245493D446C38D8CC0F118374690E7DF633A8A4BFB3329B5ECE604B2B4F37F4353C0869F4B9E17773DE68FEC45E14904E0DEA45BF6CECF9918C85EA047C60A4C
+Output = 6B4B6D0E276691BD4A11BF72F4FB501AE309FDACB72FA6CC336E6656119ABD67
+
+Digest = SM3
+Input = 4D38D2958CA7FD2CFAE3AF04486959CF92C8EF48E8B83A05C112E739D5F181D03082020CA003020102020900AF28725D98D33143300C06082A811CCF550183750500307D310B300906035504060C02636E310B300906035504080C02626A310B300906035504070C02626A310F300D060355040A0C06746F70736563310F300D060355040B0C06746F707365633111300F06035504030C08546F707365634341311F301D06092A864886F70D0109010C10626A40746F707365632E636F6D2E636E301E170D3132303632343037353433395A170D3332303632303037353433395A307D310B300906035504060C02636E310B300906035504080C02626A310B300906035504070C02626A310F300D060355040A0C06746F70736563310F300D060355040B0C06746F707365633111300F06035504030C08546F707365634341311F301D06092A864886F70D0109010C10626A40746F707365632E636F6D2E636E3059301306072A8648CE3D020106082A811CCF5501822D03420004D69C2F1EEC3BFB6B95B30C28085C77B125D77A9C39525D8190768F37D6B205B589DCD316BBE7D89A9DC21917F17799E698531F5E6E3E10BD31370B259C3F81C3A3733071300F0603551D130101FF040530030101FF301D0603551D0E041604148E5D90347858BAAAD870D8BDFBA6A85E7B563B64301F0603551D230418301680148E5D90347858BAAAD870D8BDFBA6A85E7B563B64300B0603551D0F040403020106301106096086480186F8420101040403020057
+Output = C3B02E500A8B60B77DEDCF6F4C11BEF8D56E5CDE708C72065654FD7B2167915A
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpencod.txt b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpencod.txt
new file mode 100644
index 000000000..b75372d39
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpencod.txt
@@ -0,0 +1,194 @@
+#
+# Copyright 2001-2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# Tests start with one of these keywords
+# Cipher Decrypt Derive Digest Encoding KDF MAC PBE
+# PrivPubKeyPair Sign Verify VerifyRecover
+# and continue until a blank line. Lines starting with a pound sign,
+# like this prolog, are ignored.
+
+Title = Base64 tests
+
+Encoding = canonical
+Input = ""
+Output = ""
+
+Encoding = canonical
+Input = "h"
+Output = "aA==\n"
+
+Encoding = canonical
+Input = "hello"
+Output = "aGVsbG8=\n"
+
+Encoding = canonical
+Input = "hello world!"
+Output = "aGVsbG8gd29ybGQh\n"
+
+Encoding = canonical
+Input = 00010203040506070809a0b0c0d0e0f000
+Output = "AAECAwQFBgcICaCwwNDg8AA=\n"
+
+# Missing padding
+Encoding = invalid
+Output = "aGVsbG8"
+
+Encoding = invalid
+Output = "aGVsbG8\n"
+
+# Tolerate missing newline
+Encoding = valid
+Input = "hello"
+Output = "aGVsbG8="
+
+# Don't tolerate extra trailing '='
+Encoding = invalid
+Input = "hello"
+Output = "aGVsbG8==\n"
+
+Encoding = invalid
+Output = "aGVsbG8===\n"
+
+# Don't tolerate data after '='
+Encoding = invalid
+Output = "aGV=sbG8=\n"
+
+# Newlines are ignored
+Encoding = valid
+Input = "hello"
+Output = "aGV\nsbG8=\n"
+
+Encoding = canonical
+Input = "hello"
+Output = 614756736247383d0a
+
+# Invalid characters
+Encoding = invalid
+Output = 614756736247383d0a00
+
+Encoding = invalid
+Output = 61475600736247383d0a
+
+Encoding = invalid
+Output = 61475601736247383d0a
+
+Encoding = invalid
+Output = 61475680736247383d0a
+
+Encoding = invalid
+Output = e14756736247383d0a
+
+Encoding = canonical
+Input = "OpenSSLOpenSSL\n"
+Output = "T3BlblNTTE9wZW5TU0wK\n"
+
+Encoding = valid
+Input = "OpenSSLOpenSSL\n"
+Output = "T3BlblNTTE9wZW5TU0wK"
+
+# Truncate 1-3 chars
+Encoding = invalid
+Output = "T3BlblNTTE9wZW5TU0w"
+
+Encoding = invalid
+Output = "T3BlblNTTE9wZW5TU0"
+
+Encoding = invalid
+Output = "T3BlblNTTE9wZW5TU"
+
+Encoding = invalid
+Output = "T3BlblNTTE9wZW5TU0wK===="
+
+Encoding = invalid
+Output = "T3BlblNTTE9wZW5TU0wK============================================\n"
+
+Encoding = invalid
+Output = "YQ==YQ==YQ==\n"
+
+Encoding = invalid
+Output = "A"
+
+Encoding = invalid
+Output = "A\n"
+
+Encoding = invalid
+Output = "A="
+
+Encoding = invalid
+Output = "A==\n"
+
+Encoding = invalid
+Output = "A===\n"
+
+Encoding = invalid
+Output = "A====\n"
+
+Encoding = valid
+Input = "OpenSSLOpenSSL\n"
+Output = "T3BlblNTTE9wZW5TU0wK\n\n"
+
+Encoding = valid
+Input = "OpenSSLOpenSSL\n"
+Output = "T3BlblNTTE\n9wZW5TU0wK"
+
+# CVE 2015-0292
+Encoding = invalid
+Output = "ZW5jb2RlIG1lCg==================================================================\n"
+
+Encoding = canonical
+Input = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+Output = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==\n"
+
+Encoding = valid
+Input = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+Output = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA\n==\n"
+
+Encoding = valid
+Input = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+Output = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA=\n=\n"
+
+Encoding = invalid
+Output = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA====\n"
+
+# Multiline output without padding
+Encoding = canonical
+Input = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+Output = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4\neHh4eHh4eHh4eHh4\n"
+
+# Multiline output with padding
+Encoding = canonical
+Input = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+Output = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4\neHh4eHh4eHh4eHh4eHh4eA==\n"
+
+# Multiline output with line break in the middle of a b64 block is accepted
+Encoding = valid
+Input = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+Output = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh\n4eHh4eHh4eHh4eHh4eHh4eA==\n"
+
+# Long lines are accepted
+Encoding = valid
+Input = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+Output = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==\n"
+
+# Multiline input with data after '='.
+Encoding = invalid
+Output = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==\neHh4eHh4eHh4eHh4eHh4eHh4\n"
+
+Encoding = invalid
+Output = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4\neA==eHh4eHh4eHh4eHh4eHh4\n"
+
+# B64_EOF ('-') terminates input and trailing bytes are ignored
+Encoding = valid
+Input = "OpenSSLOpenSSL\n"
+Output = "T3BlblNTTE9wZW5TU0wK\n-abcd"
+
+Encoding = valid
+Input = "OpenSSLOpenSSL\n"
+Output = "T3BlblNTTE9wZW5TU0wK-abcd"
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpkdf.txt b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpkdf.txt
new file mode 100644
index 000000000..9a6cc2838
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpkdf.txt
@@ -0,0 +1,305 @@
+#
+# Copyright 2001-2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# Tests start with one of these keywords
+# Cipher Decrypt Derive Digest Encoding KDF MAC PBE
+# PrivPubKeyPair Sign Verify VerifyRecover
+# and continue until a blank line. Lines starting with a pound sign,
+# like this prolog, are ignored.
+
+Title = TLS1 PRF tests (from NIST test vectors)
+
+KDF=TLS1-PRF
+Ctrl.md = md:MD5-SHA1
+Ctrl.Secret = hexsecret:bded7fa5c1699c010be23dd06ada3a48349f21e5f86263d512c0c5cc379f0e780ec55d9844b2f1db02a96453513568d0
+Ctrl.label = seed:master secret
+Ctrl.client_random = hexseed:e5acaf549cd25c22d964c0d930fa4b5261d2507fad84c33715b7b9a864020693
+Ctrl.server_random = hexseed:135e4d557fdf3aa6406d82975d5c606a9734c9334b42136e96990fbd5358cdb2
+Output = 2f6962dfbc744c4b2138bb6b3d33054c5ecc14f24851d9896395a44ab3964efc2090c5bf51a0891209f46c1e1e998f62
+
+KDF=TLS1-PRF
+Ctrl.md = md:MD5-SHA1
+Ctrl.Secret = hexsecret:2f6962dfbc744c4b2138bb6b3d33054c5ecc14f24851d9896395a44ab3964efc2090c5bf51a0891209f46c1e1e998f62
+Ctrl.label = seed:key expansion
+Ctrl.server_random = hexseed:67267e650eb32444119d222a368c191af3082888dc35afe8368e638c828874be
+Ctrl.client_random = hexseed:d58a7b1cd4fedaa232159df652ce188f9d997e061b9bf48e83b62990440931f6
+Output = 3088825988e77fce68d19f756e18e43eb7fe672433504feaf99b3c503d9091b164f166db301d70c9fc0870b4a94563907bee1a61fb786cb717576890bcc51cb9ead97e01d0a2fea99c953377b195205ff07b369589178796edc963fd80fdbe518a2fc1c35c18ae8d
+
+KDF=TLS1-PRF
+Ctrl.md = md:SHA256
+Ctrl.Secret = hexsecret:f8938ecc9edebc5030c0c6a441e213cd24e6f770a50dda07876f8d55da062bcadb386b411fd4fe4313a604fce6c17fbc
+Ctrl.label = seed:master secret
+Ctrl.client_random = hexseed:36c129d01a3200894b9179faac589d9835d58775f9b5ea3587cb8fd0364cae8c
+Ctrl.server_random = hexseed:f6c9575ed7ddd73e1f7d16eca115415812a43c2b747daaaae043abfb50053fce
+Output = 202c88c00f84a17a20027079604787461176455539e705be730890602c289a5001e34eeb3a043e5d52a65e66125188bf
+
+KDF=TLS1-PRF
+Ctrl.md = md:SHA256
+Ctrl.Secret = hexsecret:202c88c00f84a17a20027079604787461176455539e705be730890602c289a5001e34eeb3a043e5d52a65e66125188bf
+Ctrl.label = seed:key expansion
+Ctrl.server_random = hexseed:ae6c806f8ad4d80784549dff28a4b58fd837681a51d928c3e30ee5ff14f39868
+Ctrl.client_random = hexseed:62e1fd91f23f558a605f28478c58cf72637b89784d959df7e946d3f07bd1b616
+Output = d06139889fffac1e3a71865f504aa5d0d2a2e89506c6f2279b670c3e1b74f531016a2530c51a3a0f7e1d6590d0f0566b2f387f8d11fd4f731cdd572d2eae927f6f2f81410b25e6960be68985add6c38445ad9f8c64bf8068bf9a6679485d966f1ad6f68b43495b10a683755ea2b858d70ccac7ec8b053c6bd41ca299d4e51928
+
+# As above but use long name for KDF
+KDF=tls1-prf
+Ctrl.md = md:SHA256
+Ctrl.Secret = hexsecret:202c88c00f84a17a20027079604787461176455539e705be730890602c289a5001e34eeb3a043e5d52a65e66125188bf
+Ctrl.label = seed:key expansion
+Ctrl.server_random = hexseed:ae6c806f8ad4d80784549dff28a4b58fd837681a51d928c3e30ee5ff14f39868
+Ctrl.client_random = hexseed:62e1fd91f23f558a605f28478c58cf72637b89784d959df7e946d3f07bd1b616
+Output = d06139889fffac1e3a71865f504aa5d0d2a2e89506c6f2279b670c3e1b74f531016a2530c51a3a0f7e1d6590d0f0566b2f387f8d11fd4f731cdd572d2eae927f6f2f81410b25e6960be68985add6c38445ad9f8c64bf8068bf9a6679485d966f1ad6f68b43495b10a683755ea2b858d70ccac7ec8b053c6bd41ca299d4e51928
+
+# Missing digest.
+KDF=TLS1-PRF
+Ctrl.Secret = hexsecret:01
+Ctrl.Seed = hexseed:02
+Output = 03
+Result = KDF_DERIVE_ERROR
+
+# Missing secret.
+KDF=TLS1-PRF
+Ctrl.md = md:MD5-SHA1
+Ctrl.Seed = hexseed:02
+Output = 03
+Result = KDF_DERIVE_ERROR
+
+Title = HKDF tests (from RFC5869 test vectors)
+
+KDF = HKDF
+Ctrl.md = md:SHA256
+Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
+Ctrl.salt = hexsalt:000102030405060708090a0b0c
+Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
+Output = 3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865
+
+KDF = HKDF
+Ctrl.mode = mode:EXTRACT_ONLY
+Ctrl.md = md:SHA256
+Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
+Ctrl.salt = hexsalt:000102030405060708090a0b0c
+Output = 077709362c2e32df0ddc3f0dc47bba6390b6c73bb50f9c3122ec844ad7c2b3e5
+
+KDF = HKDF
+Ctrl.mode = mode:EXPAND_ONLY
+Ctrl.md = md:SHA256
+Ctrl.IKM = hexkey:077709362c2e32df0ddc3f0dc47bba6390b6c73bb50f9c3122ec844ad7c2b3e5
+Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
+Output = 3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865
+
+KDF = HKDF
+Ctrl.md = md:SHA256
+Ctrl.IKM = hexkey:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
+Ctrl.salt = hexsalt:606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf
+Ctrl.info = hexinfo:b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
+Output = b11e398dc80327a1c8e7f78c596a49344f012eda2d4efad8a050cc4c19afa97c59045a99cac7827271cb41c65e590e09da3275600c2f09b8367793a9aca3db71cc30c58179ec3e87c14c01d5c1f3434f1d87
+
+KDF = HKDF
+Ctrl.mode = mode:EXTRACT_ONLY
+Ctrl.md = md:SHA256
+Ctrl.IKM = hexkey:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
+Ctrl.salt = hexsalt:606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf
+Output = 06a6b88c5853361a06104c9ceb35b45cef760014904671014a193f40c15fc244
+
+KDF = HKDF
+Ctrl.mode = mode:EXPAND_ONLY
+Ctrl.md = md:SHA256
+Ctrl.IKM = hexkey:06a6b88c5853361a06104c9ceb35b45cef760014904671014a193f40c15fc244
+Ctrl.info = hexinfo:b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
+Output = b11e398dc80327a1c8e7f78c596a49344f012eda2d4efad8a050cc4c19afa97c59045a99cac7827271cb41c65e590e09da3275600c2f09b8367793a9aca3db71cc30c58179ec3e87c14c01d5c1f3434f1d87
+
+KDF = HKDF
+Ctrl.md = md:SHA256
+Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
+Ctrl.salt = salt:
+Ctrl.info = info:
+Output = 8da4e775a563c18f715f802a063c5a31b8a11f5c5ee1879ec3454e5f3c738d2d9d201395faa4b61a96c8
+
+KDF = HKDF
+Ctrl.mode = mode:EXTRACT_ONLY
+Ctrl.md = md:SHA256
+Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
+Ctrl.salt = salt:
+Ctrl.info = info:
+Output = 19ef24a32c717b167f33a91d6f648bdf96596776afdb6377ac434c1c293ccb04
+
+KDF = HKDF
+Ctrl.mode = mode:EXPAND_ONLY
+Ctrl.md = md:SHA256
+Ctrl.IKM = hexkey:19ef24a32c717b167f33a91d6f648bdf96596776afdb6377ac434c1c293ccb04
+Ctrl.info = info:
+Output = 8da4e775a563c18f715f802a063c5a31b8a11f5c5ee1879ec3454e5f3c738d2d9d201395faa4b61a96c8
+
+KDF = HKDF
+Ctrl.md = md:SHA1
+Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b
+Ctrl.salt = hexsalt:000102030405060708090a0b0c
+Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
+Output = 085a01ea1b10f36933068b56efa5ad81a4f14b822f5b091568a9cdd4f155fda2c22e422478d305f3f896
+
+KDF = HKDF
+Ctrl.mode = mode:EXTRACT_ONLY
+Ctrl.md = md:SHA1
+Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b
+Ctrl.salt = hexsalt:000102030405060708090a0b0c
+Output = 9b6c18c432a7bf8f0e71c8eb88f4b30baa2ba243
+
+KDF = HKDF
+Ctrl.mode = mode:EXPAND_ONLY
+Ctrl.md = md:SHA1
+Ctrl.IKM = hexkey:9b6c18c432a7bf8f0e71c8eb88f4b30baa2ba243
+Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
+Output = 085a01ea1b10f36933068b56efa5ad81a4f14b822f5b091568a9cdd4f155fda2c22e422478d305f3f896
+
+KDF = HKDF
+Ctrl.md = md:SHA1
+Ctrl.IKM = hexkey:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
+Ctrl.salt = hexsalt:606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf
+Ctrl.info = hexinfo:b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
+Output = 0bd770a74d1160f7c9f12cd5912a06ebff6adcae899d92191fe4305673ba2ffe8fa3f1a4e5ad79f3f334b3b202b2173c486ea37ce3d397ed034c7f9dfeb15c5e927336d0441f4c4300e2cff0d0900b52d3b4
+
+KDF = HKDF
+Ctrl.mode = mode:EXTRACT_ONLY
+Ctrl.md = md:SHA1
+Ctrl.IKM = hexkey:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
+Ctrl.salt = hexsalt:606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf
+Output = 8adae09a2a307059478d309b26c4115a224cfaf6
+
+KDF = HKDF
+Ctrl.mode = mode:EXPAND_ONLY
+Ctrl.md = md:SHA1
+Ctrl.IKM = hexkey:8adae09a2a307059478d309b26c4115a224cfaf6
+Ctrl.info = hexinfo:b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
+Output = 0bd770a74d1160f7c9f12cd5912a06ebff6adcae899d92191fe4305673ba2ffe8fa3f1a4e5ad79f3f334b3b202b2173c486ea37ce3d397ed034c7f9dfeb15c5e927336d0441f4c4300e2cff0d0900b52d3b4
+
+KDF = HKDF
+Ctrl.md = md:SHA1
+Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
+Ctrl.salt = salt:
+Ctrl.info = info:
+Output = 0ac1af7002b3d761d1e55298da9d0506b9ae52057220a306e07b6b87e8df21d0ea00033de03984d34918
+
+KDF = HKDF
+Ctrl.mode = mode:EXTRACT_ONLY
+Ctrl.md = md:SHA1
+Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
+Ctrl.salt = salt:
+Output = da8c8a73c7fa77288ec6f5e7c297786aa0d32d01
+
+KDF = HKDF
+Ctrl.mode = mode:EXPAND_ONLY
+Ctrl.md = md:SHA1
+Ctrl.IKM = hexkey:da8c8a73c7fa77288ec6f5e7c297786aa0d32d01
+Ctrl.info = info:
+Output = 0ac1af7002b3d761d1e55298da9d0506b9ae52057220a306e07b6b87e8df21d0ea00033de03984d34918
+
+KDF = HKDF
+Ctrl.md = md:SHA1
+Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
+Ctrl.salt = salt:
+Ctrl.info = info:
+Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
+
+KDF = HKDF
+Ctrl.mode = mode:EXTRACT_ONLY
+Ctrl.md = md:SHA1
+Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
+Ctrl.salt = salt:
+Output = 2adccada18779e7c2077ad2eb19d3f3e731385dd
+
+KDF = HKDF
+Ctrl.mode = mode:EXPAND_ONLY
+Ctrl.md = md:SHA1
+Ctrl.IKM = hexkey:2adccada18779e7c2077ad2eb19d3f3e731385dd
+Ctrl.info = info:
+Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
+
+KDF = HKDF
+Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
+Ctrl.salt = salt:
+Ctrl.info = info:
+Output = 00
+Result = KDF_DERIVE_ERROR
+
+KDF = HKDF
+Ctrl.md = md:SHA1
+Ctrl.salt = salt:
+Ctrl.info = info:
+Output = 00
+Result = KDF_DERIVE_ERROR
+
+KDF = HKDF
+Ctrl.md = md:SHA1
+Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
+Ctrl.info = info:
+Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
+
+KDF = HKDF
+Ctrl.md = md:SHA1
+Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
+Ctrl.salt = salt:
+Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
+
+KDF = HKDF
+Ctrl.mode = mode:EXTRACT_AND_EXPAND
+Ctrl.md = md:SHA1
+Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
+Ctrl.salt = salt:
+Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
+
+Title = id-scrypt tests (from draft-josefsson-id-scrypt-kdf-03 and others)
+
+KDF = scrypt
+Ctrl.pass = pass:
+Ctrl.salt = salt:
+Ctrl.N = N:16
+Ctrl.r = r:1
+Ctrl.p = p:1
+Output = 77d6576238657b203b19ca42c18a0497f16b4844e3074ae8dfdffa3fede21442fcd0069ded0948f8326a753a0fc81f17e8d3e0fb2e0d3628cf35e20c38d18906
+
+KDF = scrypt
+Ctrl.pass = pass:password
+Ctrl.salt = salt:NaCl
+Ctrl.N = N:1024
+Ctrl.r = r:8
+Ctrl.p = p:16
+Output = fdbabe1c9d3472007856e7190d01e9fe7c6ad7cbc8237830e77376634b3731622eaf30d92e22a3886ff109279d9830dac727afb94a83ee6d8360cbdfa2cc0640
+
+KDF = scrypt
+Ctrl.hexpass = hexpass:70617373776f7264
+Ctrl.salt = salt:NaCl
+Ctrl.N = N:1024
+Ctrl.r = r:8
+Ctrl.p = p:16
+Output = fdbabe1c9d3472007856e7190d01e9fe7c6ad7cbc8237830e77376634b3731622eaf30d92e22a3886ff109279d9830dac727afb94a83ee6d8360cbdfa2cc0640
+
+KDF = scrypt
+Ctrl.pass = pass:password
+Ctrl.hexsalt = hexsalt:4e61436c
+Ctrl.N = N:1024
+Ctrl.r = r:8
+Ctrl.p = p:16
+Output = fdbabe1c9d3472007856e7190d01e9fe7c6ad7cbc8237830e77376634b3731622eaf30d92e22a3886ff109279d9830dac727afb94a83ee6d8360cbdfa2cc0640
+
+KDF = scrypt
+Ctrl.pass = pass:pleaseletmein
+Ctrl.salt = salt:SodiumChloride
+Ctrl.N = N:16384
+Ctrl.r = r:8
+Ctrl.p = p:1
+Output = 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887
+
+# Out of memory
+KDF = scrypt
+Ctrl.pass = pass:pleaseletmein
+Ctrl.salt = salt:SodiumChloride
+Ctrl.N = N:1048576
+Ctrl.r = r:8
+Ctrl.p = p:1
+Result = INTERNAL_ERROR
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpmac.txt b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpmac.txt
new file mode 100644
index 000000000..716897dc7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evpmac.txt
@@ -0,0 +1,643 @@
+#
+# Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# Tests start with one of these keywords
+# Cipher Decrypt Derive Digest Encoding KDF MAC PBE
+# PrivPubKeyPair Sign Verify VerifyRecover
+# and continue until a blank line. Lines starting with a pound sign,
+# like this prolog, are ignored.
+
+# SIPHASH tests - default values: 2,4 rounds, 16-byte mac
+# There are no official test vectors, they are simple vectors 1, 2, 3, etc
+
+Title = SIPHASH tests
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input =
+Output = a3817f04ba25a8e66df67214c7550293
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 00
+Output = da87c1d86b99af44347659119b22fc45
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 0001
+Output = 8177228da4a45dc7fca38bdef60affe4
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 000102
+Output = 9c70b60c5267a94e5f33b6b02985ed51
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 00010203
+Output = f88164c12d9c8faf7d0f6e7c7bcd5579
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 0001020304
+Output = 1368875980776f8854527a07690e9627
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 000102030405
+Output = 14eeca338b208613485ea0308fd7a15e
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 00010203040506
+Output = a1f1ebbed8dbc153c0b84aa61ff08239
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 0001020304050607
+Output = 3b62a9ba6258f5610f83e264f31497b4
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 000102030405060708
+Output = 264499060ad9baabc47f8b02bb6d71ed
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E
+Output = 5150d1772f50834a503e069a973fbd7c
+
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input =
+Output = a3817f04ba25a8e66df67214c7550293
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 00
+Output = da87c1d86b99af44347659119b22fc45
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 0001
+Output = 8177228da4a45dc7fca38bdef60affe4
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 000102
+Output = 9c70b60c5267a94e5f33b6b02985ed51
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 00010203
+Output = f88164c12d9c8faf7d0f6e7c7bcd5579
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 0001020304
+Output = 1368875980776f8854527a07690e9627
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 000102030405
+Output = 14eeca338b208613485ea0308fd7a15e
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 00010203040506
+Output = a1f1ebbed8dbc153c0b84aa61ff08239
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 0001020304050607
+Output = 3b62a9ba6258f5610f83e264f31497b4
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 000102030405060708
+Output = 264499060ad9baabc47f8b02bb6d71ed
+
+MAC = SipHash
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E
+Output = 5150d1772f50834a503e069a973fbd7c
+
+# SIPHASH - default values: 2,4 rounds, explicit 8-byte mac
+
+MAC = SipHash
+Ctrl = digestsize:8
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E
+Output = 724506EB4C328A95
+
+# SIPHASH - default values: 2,4 rounds, explicit 16-byte mac
+
+MAC = SipHash
+Ctrl = digestsize:16
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E
+Output = 5150d1772f50834a503e069a973fbd7c
+
+# SIPHASH - default values: 2,4 rounds, explicit 16-byte mac (set as 0)
+
+MAC = SipHash
+Ctrl = digestsize:0
+Key = 000102030405060708090A0B0C0D0E0F
+Input = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E
+Output = 5150d1772f50834a503e069a973fbd7c
+
+# SIPHASH - default values: 2,4 rounds, explicit 13-byte mac (invalid size)
+
+MAC = SipHash
+Ctrl = digestsize:13
+Key = 000102030405060708090A0B0C0D0E0F
+Result = EVPPKEYCTXCTRL_ERROR
+
+Title = HMAC tests (from RFC2104 and others)
+
+MAC = HMAC
+Algorithm = MD5
+Key = 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
+Input = "Hi There"
+Output = 9294727a3638bb1c13f48ef8158bfc9d
+
+MAC = HMAC
+Algorithm = MD5
+Key = "Jefe"
+Input = "what do ya want for nothing?"
+Output = 750c783e6ab0b503eaa86e310a5db738
+
+MAC = HMAC
+Algorithm = MD5
+Key = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+Input = DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+Output = 56be34521d144c88dbb8c733f0e8b3f6
+
+Title = SHA1
+
+# HMAC tests from NIST test data
+
+MAC = HMAC
+Algorithm = SHA1
+Input = "Sample message for keylen=blocklen"
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F
+Output = 5FD596EE78D5553C8FF4E72D266DFD192366DA29
+
+MAC = HMAC
+Algorithm = SHA1
+Input = "Sample message for keylen<blocklen"
+Key = 000102030405060708090A0B0C0D0E0F10111213
+Output = 4C99FF0CB1B31BD33F8431DBAF4D17FCD356A807
+
+MAC = HMAC
+Algorithm = SHA1
+Input = "Sample message for keylen=blocklen"
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F60616263
+Output = 2D51B2F7750E410584662E38F133435F4C4FD42A
+
+Title = SHA2
+
+MAC = HMAC
+Algorithm = SHA224
+Input = "Sample message for keylen=blocklen"
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F
+Output = C7405E3AE058E8CD30B08B4140248581ED174CB34E1224BCC1EFC81B
+
+MAC = HMAC
+Algorithm = SHA224
+Input = "Sample message for keylen<blocklen"
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B
+Output = E3D249A8CFB67EF8B7A169E9A0A599714A2CECBA65999A51BEB8FBBE
+
+MAC = HMAC
+Algorithm = SHA224
+Input = "Sample message for keylen=blocklen"
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F60616263
+Output = 91C52509E5AF8531601AE6230099D90BEF88AAEFB961F4080ABC014D
+
+MAC = HMAC
+Algorithm = SHA256
+Input = "Sample message for keylen=blocklen"
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F
+Output = 8BB9A1DB9806F20DF7F77B82138C7914D174D59E13DC4D0169C9057B133E1D62
+
+MAC = HMAC
+Algorithm = SHA256
+Input = "Sample message for keylen<blocklen"
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
+Output = A28CF43130EE696A98F14A37678B56BCFCBDD9E5CF69717FECF5480F0EBDF790
+
+MAC = HMAC
+Algorithm = SHA256
+Input = "Sample message for keylen=blocklen"
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F60616263
+Output = BDCCB6C72DDEADB500AE768386CB38CC41C63DBB0878DDB9C7A38A431B78378D
+
+MAC = HMAC
+Algorithm = SHA384
+Input = "Sample message for keylen=blocklen"
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F
+Output = 63C5DAA5E651847CA897C95814AB830BEDEDC7D25E83EEF9195CD45857A37F448947858F5AF50CC2B1B730DDF29671A9
+
+MAC = HMAC
+Algorithm = SHA384
+Input = "Sample message for keylen<blocklen"
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F
+Output = 6EB242BDBB582CA17BEBFA481B1E23211464D2B7F8C20B9FF2201637B93646AF5AE9AC316E98DB45D9CAE773675EEED0
+
+MAC = HMAC
+Algorithm = SHA384
+Input = "Sample message for keylen=blocklen"
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7
+Output = 5B664436DF69B0CA22551231A3F0A3D5B4F97991713CFA84BFF4D0792EFF96C27DCCBBB6F79B65D548B40E8564CEF594
+
+MAC = HMAC
+Algorithm = SHA512
+Input = "Sample message for keylen=blocklen"
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F
+Output = FC25E240658CA785B7A811A8D3F7B4CA48CFA26A8A366BF2CD1F836B05FCB024BD36853081811D6CEA4216EBAD79DA1CFCB95EA4586B8A0CE356596A55FB1347
+
+MAC = HMAC
+Algorithm = SHA512
+Input = "Sample message for keylen<blocklen"
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F
+Output = FD44C18BDA0BB0A6CE0E82B031BF2818F6539BD56EC00BDC10A8A2D730B3634DE2545D639B0F2CF710D0692C72A1896F1F211C2B922D1A96C392E07E7EA9FEDC
+
+MAC = HMAC
+Algorithm = SHA512
+Input = "Sample message for keylen=blocklen"
+Key = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7
+Output = D93EC8D2DE1AD2A9957CB9B83F14E76AD6B5E0CCE285079A127D3B14BCCB7AA7286D4AC0D4CE64215F2BC9E6870B33D97438BE4AAA20CDA5C5A912B48B8E27F3
+
+Title = SHA3
+
+# NIST's test vectors
+
+MAC = HMAC
+Algorithm = SHA3-224
+Input = "Sample message for keylen<blocklen"
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+Output = 332cfd59347fdb8e576e77260be4aba2d6dc53117b3bfb52c6d18c04
+
+MAC = HMAC
+Algorithm = SHA3-224
+Input = "Sample message for keylen=blocklen"
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f
+Output = d8b733bcf66c644a12323d564e24dcf3fc75f231f3b67968359100c7
+
+MAC = HMAC
+Algorithm = SHA3-224
+Input = "Sample message for keylen>blocklen"
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaab
+Output = 078695eecc227c636ad31d063a15dd05a7e819a66ec6d8de1e193e59
+
+MAC = HMAC
+Algorithm = SHA3-256
+Input = "Sample message for keylen<blocklen"
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+Output = 4fe8e202c4f058e8dddc23d8c34e467343e23555e24fc2f025d598f558f67205
+
+MAC = HMAC
+Algorithm = SHA3-256
+Input = "Sample message for keylen=blocklen"
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f8081828384858687
+Output = 68b94e2e538a9be4103bebb5aa016d47961d4d1aa906061313b557f8af2c3faa
+
+MAC = HMAC
+Algorithm = SHA3-256
+Input = "Sample message for keylen>blocklen"
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7
+Output = 9bcf2c238e235c3ce88404e813bd2f3a97185ac6f238c63d6229a00b07974258
+
+MAC = HMAC
+Algorithm = SHA3-384
+Input = "Sample message for keylen<blocklen"
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+Output = d588a3c51f3f2d906e8298c1199aa8ff6296218127f6b38a90b6afe2c5617725bc99987f79b22a557b6520db710b7f42
+
+MAC = HMAC
+Algorithm = SHA3-384
+Input = "Sample message for keylen=blocklen"
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6061626364656667
+Output = a27d24b592e8c8cbf6d4ce6fc5bf62d8fc98bf2d486640d9eb8099e24047837f5f3bffbe92dcce90b4ed5b1e7e44fa90
+
+MAC = HMAC
+Algorithm = SHA3-384
+Input = "Sample message for keylen>blocklen"
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f9091929394959697
+Output = e5ae4c739f455279368ebf36d4f5354c95aa184c899d3870e460ebc288ef1f9470053f73f7c6da2a71bcaec38ce7d6ac
+
+MAC = HMAC
+Algorithm = SHA3-512
+Input = "Sample message for keylen<blocklen"
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+Output = 4efd629d6c71bf86162658f29943b1c308ce27cdfa6db0d9c3ce81763f9cbce5f7ebe9868031db1a8f8eb7b6b95e5c5e3f657a8996c86a2f6527e307f0213196
+
+MAC = HMAC
+Algorithm = SHA3-512
+Input = "Sample message for keylen=blocklen"
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f4041424344454647
+Output = 544e257ea2a3e5ea19a590e6a24b724ce6327757723fe2751b75bf007d80f6b360744bf1b7a88ea585f9765b47911976d3191cf83c039f5ffab0d29cc9d9b6da
+
+MAC = HMAC
+Algorithm = SHA3-512
+Input = "Sample message for keylen>blocklen"
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f8081828384858687
+Output = 5f464f5e5b7848e3885e49b2c385f0694985d0e38966242dc4a5fe3fea4b37d46b65ceced5dcf59438dd840bab22269f0ba7febdb9fcf74602a35666b2a32915
+
+Title = HMAC self generated tests
+
+MAC = HMAC
+Algorithm = SHAKE128
+Input = "Test that SHAKE128 fails"
+Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+Result = DIGESTSIGNINIT_ERROR
+
+
+Title = CMAC tests (from FIPS module)
+
+MAC = CMAC
+Algorithm = AES-128-CBC
+Key = 77A77FAF290C1FA30C683DF16BA7A77B
+Input = 020683E1F0392F4CAC54318B6029259E9C553DBC4B6AD998E64D58E4E7DC2E13
+Output = FBFEA41BF9740CB501F1292C21CEBB40
+
+MAC = CMAC
+Algorithm = AES-192-CBC
+Key = 7B32391369AA4CA97558095BE3C3EC862BD057CEF1E32D62
+Input =
+Output = E4D9340B03E67DEFD4969CC1ED3735E6
+
+MAC = CMAC
+Algorithm = AES-256-CBC
+Key = 0B122AC8F34ED1FE082A3625D157561454167AC145A10BBF77C6A70596D574F1
+Input = 498B53FDEC87EDCBF07097DCCDE93A084BAD7501A224E388DF349CE18959FE8485F8AD1537F0D896EA73BEDC7214713F
+Output = F62C46329B41085625669BAF51DEA66A
+
+MAC = CMAC
+Algorithm = DES-EDE3-CBC
+Key = 89BCD952A8C8AB371AF48AC7D07085D5EFF702E6D62CDC23
+Input = FA620C1BBE97319E9A0CF0492121F7A20EB08A6A709DCBD00AAF38E4F99E754E
+Output = 8F49A1B7D6AA2258
+
+Title = Poly1305 Tests (from RFC 7539 and others)
+
+MAC = Poly1305
+Key = 0000000000000000000000000000000000000000000000000000000000000000
+Input = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+Output = 00000000000000000000000000000000
+
+MAC = Poly1305
+Key = 0000000000000000000000000000000036e5f6b5c5e06070f0efca96227a863e
+Input = 416e79207375626d697373696f6e20746f20746865204945544620696e74656e6465642062792074686520436f6e7472696275746f7220666f72207075626c69636174696f6e20617320616c6c206f722070617274206f6620616e204945544620496e7465726e65742d4472616674206f722052464320616e6420616e792073746174656d656e74206d6164652077697468696e2074686520636f6e74657874206f6620616e204945544620616374697669747920697320636f6e7369646572656420616e20224945544620436f6e747269627574696f6e222e20537563682073746174656d656e747320696e636c756465206f72616c2073746174656d656e747320696e20494554462073657373696f6e732c2061732077656c6c206173207772697474656e20616e6420656c656374726f6e696320636f6d6d756e69636174696f6e73206d61646520617420616e792074696d65206f7220706c6163652c207768696368206172652061646472657373656420746f
+Output = 36e5f6b5c5e06070f0efca96227a863e
+
+MAC = Poly1305
+Key = 36e5f6b5c5e06070f0efca96227a863e00000000000000000000000000000000
+Input = 416e79207375626d697373696f6e20746f20746865204945544620696e74656e6465642062792074686520436f6e7472696275746f7220666f72207075626c69636174696f6e20617320616c6c206f722070617274206f6620616e204945544620496e7465726e65742d4472616674206f722052464320616e6420616e792073746174656d656e74206d6164652077697468696e2074686520636f6e74657874206f6620616e204945544620616374697669747920697320636f6e7369646572656420616e20224945544620436f6e747269627574696f6e222e20537563682073746174656d656e747320696e636c756465206f72616c2073746174656d656e747320696e20494554462073657373696f6e732c2061732077656c6c206173207772697474656e20616e6420656c656374726f6e696320636f6d6d756e69636174696f6e73206d61646520617420616e792074696d65206f7220706c6163652c207768696368206172652061646472657373656420746f
+Output = f3477e7cd95417af89a6b8794c310cf0
+
+MAC = Poly1305
+Key = 1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0
+Input = 2754776173206272696c6c69672c20616e642074686520736c6974687920746f7665730a446964206779726520616e642067696d626c6520696e2074686520776162653a0a416c6c206d696d737920776572652074686520626f726f676f7665732c0a416e6420746865206d6f6d65207261746873206f757467726162652e
+Output = 4541669a7eaaee61e708dc7cbcc5eb62
+
+# If one uses 130-bit partial reduction, does the code handle the case where partially reduced final result is not fully reduced?
+MAC = Poly1305
+Key = 0200000000000000000000000000000000000000000000000000000000000000
+Input = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+Output = 03000000000000000000000000000000
+
+# What happens if addition of s overflows modulo 2^128?
+MAC = Poly1305
+Key = 02000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+Input = 02000000000000000000000000000000
+Output = 03000000000000000000000000000000
+
+# What happens if data limb is all ones and there is carry from lower limb?
+MAC = Poly1305
+Key = 0100000000000000000000000000000000000000000000000000000000000000
+Input = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11000000000000000000000000000000
+Output = 05000000000000000000000000000000
+
+# What happens if final result from polynomial part is exactly 2^130-5?
+MAC = Poly1305
+Key = 0100000000000000000000000000000000000000000000000000000000000000
+Input = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE01010101010101010101010101010101
+Output = 00000000000000000000000000000000
+
+# What happens if final result from polynomial part is exactly 2^130-6?
+MAC = Poly1305
+Key = 0200000000000000000000000000000000000000000000000000000000000000
+Input = FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+Output = FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+
+# Taken from poly1305_internal_test.c
+# More RFC7539
+
+MAC = Poly1305
+Input = 43727970746f6772617068696320466f72756d2052657365617263682047726f7570
+Key = 85d6be7857556d337f4452fe42d506a80103808afb0db2fd4abff6af4149f51b
+Output = a8061dc1305136c6c22b8baf0c0127a9
+
+# test vectors from "The Poly1305-AES message-authentication code"
+
+MAC = Poly1305
+Input = f3f6
+Key = 851fc40c3467ac0be05cc20404f3f700580b3b0f9447bb1e69d095b5928b6dbc
+Output = f4c633c3044fc145f84f335cb81953de
+
+# No input?
+# MAC = Poly1305
+# Input =
+# Key = a0f3080000f46400d0c7e9076c834403dd3fab2251f11ac759f0887129cc2ee7
+# Output = dd3fab2251f11ac759f0887129cc2ee7
+
+MAC = Poly1305
+Input = 663cea190ffb83d89593f3f476b6bc24d7e679107ea26adb8caf6652d0656136
+Key = 48443d0bb0d21109c89a100b5ce2c20883149c69b561dd88298a1798b10716ef
+Output = 0ee1c16bb73f0f4fd19881753c01cdbe
+
+MAC = Poly1305
+Input = ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9
+Key = 12976a08c4426d0ce8a82407c4f4820780f8c20aa71202d1e29179cbcb555a57
+Output = 5154ad0d2cb26e01274fc51148491f1b
+
+# self-generated vectors exercise "significant" length such that* are handled by different code paths
+
+MAC = Poly1305
+Input = ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af
+Key = 12976a08c4426d0ce8a82407c4f4820780f8c20aa71202d1e29179cbcb555a57
+Output = 812059a5da198637cac7c4a631bee466
+
+MAC = Poly1305
+Input = ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0990c62e48b8018b2c3e4a0fa3134cb67
+Key = 12976a08c4426d0ce8a82407c4f4820780f8c20aa71202d1e29179cbcb555a57
+Output = 5b88d7f6228b11e2e28579a5c0c1f761
+
+MAC = Poly1305
+Input = ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af663cea190ffb83d89593f3f476b6bc24d7e679107ea26adb8caf6652d0656136
+Key = 12976a08c4426d0ce8a82407c4f4820780f8c20aa71202d1e29179cbcb555a57
+Output = bbb613b2b6d753ba07395b916aaece15
+
+MAC = Poly1305
+Input = ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af48443d0bb0d21109c89a100b5ce2c20883149c69b561dd88298a1798b10716ef663cea190ffb83d89593f3f476b6bc24
+Key = 12976a08c4426d0ce8a82407c4f4820780f8c20aa71202d1e29179cbcb555a57
+Output = c794d7057d1778c4bbee0a39b3d97342
+
+MAC = Poly1305
+Input = ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af48443d0bb0d21109c89a100b5ce2c20883149c69b561dd88298a1798b10716ef663cea190ffb83d89593f3f476b6bc24d7e679107ea26adb8caf6652d0656136
+Key = 12976a08c4426d0ce8a82407c4f4820780f8c20aa71202d1e29179cbcb555a57
+Output = ffbcb9b371423152d7fca5ad042fbaa9
+
+MAC = Poly1305
+Input = ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af48443d0bb0d21109c89a100b5ce2c20883149c69b561dd88298a1798b10716ef663cea190ffb83d89593f3f476b6bc24d7e679107ea26adb8caf6652d0656136812059a5da198637cac7c4a631bee466
+Key = 12976a08c4426d0ce8a82407c4f4820780f8c20aa71202d1e29179cbcb555a57
+Output = 069ed6b8ef0f207b3e243bb1019fe632
+
+MAC = Poly1305
+Input = ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af48443d0bb0d21109c89a100b5ce2c20883149c69b561dd88298a1798b10716ef663cea190ffb83d89593f3f476b6bc24d7e679107ea26adb8caf6652d0656136812059a5da198637cac7c4a631bee4665b88d7f6228b11e2e28579a5c0c1f761
+Key = 12976a08c4426d0ce8a82407c4f4820780f8c20aa71202d1e29179cbcb555a57
+Output = cca339d9a45fa2368c2c68b3a4179133
+
+MAC = Poly1305
+Input = ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af48443d0bb0d21109c89a100b5ce2c20883149c69b561dd88298a1798b10716ef663cea190ffb83d89593f3f476b6bc24d7e679107ea26adb8caf6652d0656136812059a5da198637cac7c4a631bee4665b88d7f6228b11e2e28579a5c0c1f761ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af48443d0bb0d21109c89a100b5ce2c20883149c69b561dd88298a1798b10716ef663cea190ffb83d89593f3f476b6bc24d7e679107ea26adb8caf6652d0656136
+Key = 12976a08c4426d0ce8a82407c4f4820780f8c20aa71202d1e29179cbcb555a57
+Output = 53f6e828a2f0fe0ee815bf0bd5841a34
+
+MAC = Poly1305
+Input = ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af48443d0bb0d21109c89a100b5ce2c20883149c69b561dd88298a1798b10716ef663cea190ffb83d89593f3f476b6bc24d7e679107ea26adb8caf6652d0656136812059a5da198637cac7c4a631bee4665b88d7f6228b11e2e28579a5c0c1f761ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af48443d0bb0d21109c89a100b5ce2c20883149c69b561dd88298a1798b10716ef663cea190ffb83d89593f3f476b6bc24d7e679107ea26adb8caf6652d0656136812059a5da198637cac7c4a631bee4665b88d7f6228b11e2e28579a5c0c1f761
+Key = 12976a08c4426d0ce8a82407c4f4820780f8c20aa71202d1e29179cbcb555a57
+Output = b846d44e9bbd53cedffbfbb6b7fa4933
+
+# 4th power of the key spills to 131th bit in SIMD key setup
+
+MAC = Poly1305
+Input = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+Key = ad628107e8351d0f2c231a05dc4a410600000000000000000000000000000000
+Output = 07145a4c02fe5fa32036de68fabe9066
+
+# poly1305_ieee754.c failed this in final stage
+
+MAC = Poly1305
+Input = 842364e156336c0998b933a6237726180d9e3fdcbde4cd5d17080fc3beb49614d7122c037463ff104d73f19c12704628d417c4c54a3fe30d3c3d7714382d43b0382a50a5dee54be844b076e8df88201a1cd43b90eb21643fa96f39b518aa8340c942ff3c31baf7c9bdbf0f31ae3fa096bf8c63030609829fe72e179824890bc8e08c315c1cce2a83144dbbff09f74e3efc770b54d0984a8f19b14719e63635641d6b1eedf63efbf080e1783d32445412114c20de0b837a0dfa33d6b82825fff44c9a70ea54ce47f07df698e6b03323b53079364a5fc3e9dd034392bdde86dccdda94321c5e44060489336cb65bf3989c36f7282c2f5d2b882c171e74
+Key = 95d5c005503e510d8cd0aa072c4a4d066eabc52d11653df47fbf63ab198bcc26
+Output = f248312e578d9d58f8b7bb4d19105431
+
+# AVX2 in poly1305-x86.pl failed this with 176+32 split
+
+MAC = Poly1305
+Input = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb
+Key = 000102030405060708090a0b0c0d0e0f00000000000000000000000000000000
+Output = bc939bc5281480fa99c6d68c258ec42f
+
+# test vectors from Google
+
+# No input?
+# MAC = Poly1305
+# Input =
+# Key = c8afaac331ee372cd6082de134943b174710130e9f6fea8d72293850a667d86c
+# Output = 4710130e9f6fea8d72293850a667d86c
+
+MAC = Poly1305
+Input = 48656c6c6f20776f726c6421
+Key = 746869732069732033322d62797465206b657920666f7220506f6c7931333035
+Output = a6f745008f81c916a20dcc74eef2b2f0
+
+MAC = Poly1305
+Input = 0000000000000000000000000000000000000000000000000000000000000000
+Key = 746869732069732033322d62797465206b657920666f7220506f6c7931333035
+Output = 49ec78090e481ec6c26b33b91ccc0307
+
+MAC = Poly1305
+Input = 89dab80b7717c1db5db437860a3f70218e93e1b8f461fb677f16f35f6f87e2a91c99bc3a47ace47640cc95c345be5ecca5a3523c35cc01893af0b64a620334270372ec12482d1b1e363561698a578b359803495bb4e2ef1930b17a5190b580f141300df30adbeca28f6427a8bc1a999fd51c554a017d095d8c3e3127daf9f595
+Key = 2d773be37adb1e4d683bf0075e79c4ee037918535a7f99ccb7040fb5f5f43aea
+Output = c85d15ed44c378d6b00e23064c7bcd51
+
+MAC = Poly1305
+Input = 000000000000000b170303020000000006db1f1f368d696a810a349c0c714c9a5e7850c2407d721acded95e018d7a85266a6e1289cdb4aeb18da5ac8a2b0026d24a59ad485227f3eaedbb2e7e35e1c66cd60f9abf716dcc9ac42682dd7dab287a7024c4eefc321cc0574e16793e37cec03c5bda42b54c114a80b57af26416c7be742005e20855c73e21dc8e2edc9d435cb6f6059280011c270b71570051c1c9b3052126620bc1e2730fa066c7a509d53c60e5ae1b40aa6e39e49669228c90eecb4a50db32a50bc49e90b4f4b359a1dfd11749cd3867fcf2fb7bb6cd4738f6a4ad6f7ca5058f7618845af9f020f6c3b967b8f4cd4a91e2813b507ae66f2d35c18284f7292186062e10fd5510d18775351ef334e7634ab4743f5b68f49adcab384d3fd75f7390f4006ef2a295c8c7a076ad54546cd25d2107fbe1436c840924aaebe5b370893cd63d1325b8616fc4810886bc152c53221b6df373119393255ee72bcaa880174f1717f9184fa91646f17a24ac55d16bfddca9581a92eda479201f0edbf633600d6066d1ab36d5d2415d71351bbcd608a25108d25641992c1f26c531cf9f90203bc4cc19f5927d834b0a47116d3884bbb164b8ec883d1ac832e56b3918a98601a08d171881541d594db399c6ae6151221745aec814c45b0b05b565436fd6f137aa10a0c0b643761dbd6f9a9dcb99b1a6e690854ce0769cde39761d82fcdec15f0d92d7d8e94ade8eb83fbe0
+Key = 99e5822dd4173c995e3dae0ddefb97743fde3b080134b39f76e9bf8d0e88d546
+Output = 2637408fe13086ea73f971e3425e2820
+
+# test vectors from Hanno Bock
+
+MAC = Poly1305
+Input = cccccccccccccccccccccccccccccccccccccccccccccccccc80ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccceccccccccccccccccccccccccccccccccccccc5cccccccccccccccccccccccccccccccccccccccccce3ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccaccccccccccccccccccccce6cccccccccc000000afccccccccccccccccccfffffff5000000000000000000000000000000000000000000000000000000ffffffe70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000719205a8521dfc
+Key = 7f1b02640000000000000000000000000000000000000000cccccccccccccccc
+Output = 8559b876eceed66eb37798c0457baff9
+
+MAC = Poly1305
+Input = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa000000000000000000800264
+Key = e00016000000000000000000000000000000aaaaaaaaaaaaaaaaaaaaaaaaaaaa
+Output = 00bd1258978e205444c9aaaa82006fed
+
+MAC = Poly1305
+Input = 02fc
+Key = 0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
+Output = 06120c0c0c0c0c0c0c0c0c0c0c0c0c0c
+
+MAC = Poly1305
+Input = 7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7a7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b5c7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b6e7b007b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7a7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b5c7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b6e7b001300000000b300000000000000000000000000000000000000000000f20000000000000000000000000000000000002000efff0009000000000000000000000000100000000009000000640000000000000000000000001300000000b300000000000000000000000000000000000000000000f20000000000000000000000000000000000002000efff00090000000000000000007a000010000000000900000064000000000000000000000000000000000000000000000000fc
+Key = 00ff000000000000000000000000000000000000001e00000000000000007b7b
+Output = 33205bbf9e9f8f7212ab9e2ab9b7e4a5
+
+MAC = Poly1305
+Input = 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ffffffe9e9acacacacacacacacacacac0000acacec0100acacac2caca2acacacacacacacacacacac64f2
+Key = 0000007f0000007f01000020000000000000cf77777777777777777777777777
+Output = 02ee7c8c546ddeb1a467e4c3981158b9
+
+# test vectors from Andrew Moon - nacl
+
+MAC = Poly1305
+Input = 8e993b9f48681273c29650ba32fc76ce48332ea7164d96a4476fb8c531a1186ac0dfc17c98dce87b4da7f011ec48c97271d2c20f9b928fe2270d6fb863d51738b48eeee314a7cc8ab932164548e526ae90224368517acfeabd6bb3732bc0e9da99832b61ca01b6de56244a9e88d5f9b37973f622a43d14a6599b1f654cb45a74e355a5
+Key = eea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880
+Output = f3ffc7703f9400e52a7dfb4b3d3305d9
+
+# wrap 2^130-5
+MAC = Poly1305
+Input = ffffffffffffffffffffffffffffffff
+Key = 0200000000000000000000000000000000000000000000000000000000000000
+Output = 03000000000000000000000000000000
+
+# wrap 2^128
+MAC = Poly1305
+Input = 02000000000000000000000000000000
+Key = 02000000000000000000000000000000ffffffffffffffffffffffffffffffff
+Output = 03000000000000000000000000000000
+
+# limb carry
+MAC = Poly1305
+Input = fffffffffffffffffffffffffffffffff0ffffffffffffffffffffffffffffff11000000000000000000000000000000
+Key = 0100000000000000000000000000000000000000000000000000000000000000
+Output = 05000000000000000000000000000000
+
+# 2^130-5
+MAC = Poly1305
+Input = fffffffffffffffffffffffffffffffffbfefefefefefefefefefefefefefefe01010101010101010101010101010101
+Key = 0100000000000000000000000000000000000000000000000000000000000000
+Output = 00000000000000000000000000000000
+
+# 2^130-6
+MAC = Poly1305
+Input = fdffffffffffffffffffffffffffffff
+Key = 0200000000000000000000000000000000000000000000000000000000000000
+Output = faffffffffffffffffffffffffffffff
+
+# 5*H+L reduction intermediate
+MAC = Poly1305
+Input = e33594d7505e43b900000000000000003394d7505e4379cd01000000000000000000000000000000000000000000000001000000000000000000000000000000
+Key = 0100000000000000040000000000000000000000000000000000000000000000
+Output = 14000000000000005500000000000000
+
+# 5*H+L reduction final
+MAC = Poly1305
+Input = e33594d7505e43b900000000000000003394d7505e4379cd010000000000000000000000000000000000000000000000
+Key = 0100000000000000040000000000000000000000000000000000000000000000
+Output = 13000000000000000000000000000000
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evppbe.txt b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evppbe.txt
new file mode 100644
index 000000000..f9e994707
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evppbe.txt
@@ -0,0 +1,256 @@
+#
+# Copyright 2001-2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# Tests start with one of these keywords
+# Cipher Decrypt Derive Digest Encoding KDF MAC PBE
+# PrivPubKeyPair Sign Verify VerifyRecover
+# and continue until a blank line. Lines starting with a pound sign,
+# like this prolog, are ignored.
+
+Title = scrypt tests (from draft-josefsson-scrypt-kdf-03 and others)
+
+PBE = scrypt
+Password = ""
+Salt = ""
+N = 16
+r = 1
+p = 1
+Key = 77d6576238657b203b19ca42c18a0497f16b4844e3074ae8dfdffa3fede21442fcd0069ded0948f8326a753a0fc81f17e8d3e0fb2e0d3628cf35e20c38d18906
+
+PBE = scrypt
+Password = "password"
+Salt = "NaCl"
+N = 1024
+r = 8
+p = 16
+Key = fdbabe1c9d3472007856e7190d01e9fe7c6ad7cbc8237830e77376634b3731622eaf30d92e22a3886ff109279d9830dac727afb94a83ee6d8360cbdfa2cc0640
+
+PBE = scrypt
+Password = "pleaseletmein"
+Salt = "SodiumChloride"
+N = 16384
+r = 8
+p = 1
+Key = 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887
+
+# NB: this test requires more than 1GB of memory to run so it will hit the
+# scrypt memory limit and return an error. To run this test without error
+# uncomment out the "maxmem" line and comment out the "Result"
+# line
+PBE = scrypt
+Password = "pleaseletmein"
+Salt = "SodiumChloride"
+N = 1048576
+r = 8
+p = 1
+Key = 2101cb9b6a511aaeaddbbe09cf70f881ec568d574a2ffd4dabe5ee9820adaa478e56fd8f4ba5d09ffa1c6d927c40f4c337304049e8a952fbcbf45c6fa77a41a4
+Result = SCRYPT_ERROR
+#maxmem = 10000000000
+
+Title = PKCS12 tests
+
+PBE = pkcs12
+id = 1
+iter = 1
+MD = SHA1
+Password = 0073006D006500670000
+Salt = 0A58CF64530D823F
+Key = 8AAAE6297B6CB04642AB5B077851284EB7128F1A2A7FBCA3
+
+PBE = pkcs12
+id = 2
+iter = 1
+MD = SHA1
+Password = 0073006D006500670000
+Salt = 0A58CF64530D823F
+Key = 79993DFE048D3B76
+
+PBE = pkcs12
+id = 3
+iter = 1
+MD = SHA1
+Password = 0073006D006500670000
+Salt = 3D83C0E4546AC140
+Key = 8D967D88F6CAA9D714800AB3D48051D63F73A312
+
+PBE = pkcs12
+id = 1
+iter = 1000
+MD = SHA1
+Password = 007100750065006500670000
+Salt = 1682C0FC5B3F7EC5
+Key = 483DD6E919D7DE2E8E648BA8F862F3FBFBDC2BCB2C02957F
+
+PBE = pkcs12
+id = 2
+iter = 1000
+MD = SHA1
+Password = 007100750065006500670000
+Salt = 1682C0FC5B3F7EC5
+Key = 9D461D1B00355C50
+
+PBE = pkcs12
+id = 3
+iter = 1000
+MD = SHA1
+Password = 007100750065006500670000
+Salt = 263216FCC2FAB31C
+Key = 5EC4C7A80DF652294C3925B6489A7AB857C83476
+
+Title = PBKDF2 tests
+
+PBE = pbkdf2
+Password = "password"
+Salt = "salt"
+iter = 1
+MD = sha1
+Key = 0c60c80f961f0e71f3a9b524af6012062fe037a6
+
+PBE = pbkdf2
+Password = "password"
+Salt = "salt"
+iter = 1
+MD = sha256
+Key = 120fb6cffcf8b32c43e7225256c4f837a86548c92ccc35480805987cb70be17b
+
+PBE = pbkdf2
+Password = "password"
+Salt = "salt"
+iter = 1
+MD = sha512
+Key = 867f70cf1ade02cff3752599a3a53dc4af34c7a669815ae5d513554e1c8cf252c02d470a285a0501bad999bfe943c08f050235d7d68b1da55e63f73b60a57fce
+
+PBE = pbkdf2
+Password = "password"
+Salt = "salt"
+iter = 2
+MD = sha1
+Key = ea6c014dc72d6f8ccd1ed92ace1d41f0d8de8957
+
+PBE = pbkdf2
+Password = "password"
+Salt = "salt"
+iter = 2
+MD = sha256
+Key = ae4d0c95af6b46d32d0adff928f06dd02a303f8ef3c251dfd6e2d85a95474c43
+
+PBE = pbkdf2
+Password = "password"
+Salt = "salt"
+iter = 2
+MD = sha512
+Key = e1d9c16aa681708a45f5c7c4e215ceb66e011a2e9f0040713f18aefdb866d53cf76cab2868a39b9f7840edce4fef5a82be67335c77a6068e04112754f27ccf4e
+
+PBE = pbkdf2
+Password = "password"
+Salt = "salt"
+iter = 4096
+MD = sha1
+Key = 4b007901b765489abead49d926f721d065a429c1
+
+PBE = pbkdf2
+Password = "password"
+Salt = "salt"
+iter = 4096
+MD = sha256
+Key = c5e478d59288c841aa530db6845c4c8d962893a001ce4e11a4963873aa98134a
+
+PBE = pbkdf2
+Password = "password"
+Salt = "salt"
+iter = 4096
+MD = sha512
+Key = d197b1b33db0143e018b12f3d1d1479e6cdebdcc97c5c0f87f6902e072f457b5143f30602641b3d55cd335988cb36b84376060ecd532e039b742a239434af2d5
+
+PBE = pbkdf2
+Password = "passwordPASSWORDpassword"
+Salt = "saltSALTsaltSALTsaltSALTsaltSALTsalt"
+iter = 4096
+MD = sha1
+Key = 3d2eec4fe41c849b80c8d83662c0e44a8b291a964cf2f07038
+
+PBE = pbkdf2
+Password = "passwordPASSWORDpassword"
+Salt = "saltSALTsaltSALTsaltSALTsaltSALTsalt"
+iter = 4096
+MD = sha256
+Key = 348c89dbcbd32b2f32d814b8116e84cf2b17347ebc1800181c4e2a1fb8dd53e1c635518c7dac47e9
+
+PBE = pbkdf2
+Password = "passwordPASSWORDpassword"
+Salt = "saltSALTsaltSALTsaltSALTsaltSALTsalt"
+iter = 4096
+MD = sha512
+Key = 8c0511f4c6e597c6ac6315d8f0362e225f3c501495ba23b868c005174dc4ee71115b59f9e60cd9532fa33e0f75aefe30225c583a186cd82bd4daea9724a3d3b8
+
+PBE = pbkdf2
+Password = 7061737300776f7264
+Salt = 7361006c74
+iter = 4096
+MD = sha1
+Key = 56fa6aa75548099dcc37d7f03425e0c3
+
+PBE = pbkdf2
+Password = 7061737300776f7264
+Salt = 7361006c74
+iter = 4096
+MD = sha256
+Key = 89b69d0516f829893c696226650a8687
+
+PBE = pbkdf2
+Password = 7061737300776f7264
+Salt = 7361006c74
+iter = 4096
+MD = sha512
+Key = 9d9e9c4cd21fe4be24d5b8244c759665
+
+Title = PBKDF2 tests for empty and NULL inputs
+
+PBE = pbkdf2
+Password = ""
+Salt = "salt"
+iter = 1
+MD = sha1
+Key = a33dddc30478185515311f8752895d36ea4363a2
+
+PBE = pbkdf2
+Password = ""
+Salt = "salt"
+iter = 1
+MD = sha256
+Key = f135c27993baf98773c5cdb40a5706ce6a345cde
+
+PBE = pbkdf2
+Password = ""
+Salt = "salt"
+iter = 1
+MD = sha512
+Key = 00ef42cdbfc98d29db20976608e455567fdddf14
+
+PBE = pbkdf2
+Password = NULL
+Salt = "salt"
+iter = 1
+MD = sha1
+Key = a33dddc30478185515311f8752895d36ea4363a2
+
+PBE = pbkdf2
+Password = NULL
+Salt = "salt"
+iter = 1
+MD = sha256
+Key = f135c27993baf98773c5cdb40a5706ce6a345cde
+
+PBE = pbkdf2
+Password = NULL
+Salt = "salt"
+iter = 1
+MD = sha512
+Key = 00ef42cdbfc98d29db20976608e455567fdddf14
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evppkey.txt b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evppkey.txt
new file mode 100644
index 000000000..736e0ce4d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evppkey.txt
@@ -0,0 +1,18493 @@
+#
+# Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# Tests start with one of these keywords
+# Cipher Decrypt Derive Digest Encoding KDF MAC PBE
+# PrivPubKeyPair Sign Verify VerifyRecover
+# and continue until a blank line. Lines starting with a pound sign,
+# like this prolog, are ignored.
+
+# Public key algorithm tests
+
+# Private keys used for PKEY operations.
+
+# RSA 2048 bit key.
+
+PrivateKey = RSA-2048
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDNAIHqeyrh6gbV
+n3xz2f+5SglhXC5Lp8Y2zvCN01M+wxhVJbAVx2m5mnfWclv5w1Mqm25fZifV+4UW
+B2jT3anL01l0URcX3D0wnS/EfuQfl+Mq23+d2GShxHZ6Zm7NcbwarPXnUX9LOFlP
+6psF5C1a2pkSAIAT5FMWpNm7jtCGuI0odYusr5ItRqhotIXSOcm66w4rZFknEPQr
+LR6gpLSALAvsqzKPimiwBzvbVG/uqYCdKEmRKzkMFTK8finHZY+BdfrkbzQzL/h7
+yrPkBkm5hXeGnaDqcYNT8HInVIhpE2SHYNEivmduD8SD3SD/wxvalqMZZsmqLnWt
+A95H4cRPAgMBAAECggEAYCl6x5kbFnoG1rJHWLjL4gi+ubLZ7Jc4vYD5Ci41AF3X
+ziktnim6iFvTFv7x8gkTvArJDWsICLJBTYIQREHYYkozzgIzyPeApIs3Wv8C12cS
+IopwJITbP56+zM+77hcJ26GCgA2Unp5CFuC/81WDiPi9kNo3Oh2CdD7D+90UJ/0W
+glplejFpEuhpU2URfKL4RckJQF/KxV+JX8FdIDhsJu54yemQdQKaF4psHkzwwgDo
+qc+yfp0Vb4bmwq3CKxqEoc1cpbJ5CHXXlAfISzUjlcuBzD/tW7BDtp7eDAcgRVAC
+XO6MX0QBcLYSC7SOD3R7zY9SIRCFDfBDxCjf0YcFMQKBgQD2+WG0fLwDXTrt68fe
+hQqVa2Xs25z2B2QGPxWqSFU8WNly/mZ1BW413f3De/O58vYi7icTNyVoScm+8hdv
+6PfD+LuRujdN1TuvPeyBTSvewQwf3IjN0Wh28mse36PwlBl+301C/x+ylxEDuJjK
+hZxCcocIaoQqtBC7ac8tNa9r4wKBgQDUfnJKf/QQSLJwwlJKQQGHi3MVm7c9PbwY
+eyIOY1s1NPluJDoYTZP4YLa/u2txwe2aHh9FhYMCPDAelqaSwaCLU9DsnKkQEA2A
+RR47fcagG6xK7O+N95iEa8I1oIy7os9MBoBMwRIZ6VYIxxTj8UMNSR+tu6MqV1Gg
+T5d0WDTJpQKBgCHyRSu5uV39AoyRS/eZ8cp36JqV1Q08FtOE+EVfi9evnrPfo9WR
+2YQt7yNfdjCo5IwIj/ZkLhAXlFNakz4el2+oUJ/HKLLaDEoaCNf883q6rh/zABrK
+HcG7sF2d/7qhoJ9/se7zgjfZ68zHIrkzhDbd5xGREnmMJoCcGo3sQyBhAoGAH3UQ
+qmLC2N5KPFMoJ4H0HgLQ6LQCrnhDLkScSBEBYaEUA/AtAYgKjcyTgVLXlyGkcRpg
+esRHHr+WSBD5W+R6ReYEmeKfTJdzyDdzQE9gZjdyjC0DUbsDwybIu3OnIef6VEDq
+IXK7oUZfzDDcsNn4mTDoFaoff5cpqFfgDgM43VkCgYBNHw11b+d+AQmaZS9QqIt7
+aF3FvwCYHV0jdv0Mb+Kc1bY4c0R5MFpzrTwVmdOerjuuA1+9b+0Hwo3nBZM4eaBu
+SOamA2hu2OJWCl9q8fLCT69KqWDjghhvFe7c6aJJGucwaA3Uz3eLcPqoaCarMiNH
+fMkTd7GabVourqIZdgvu1Q==
+-----END PRIVATE KEY-----
+
+# Corresponding public key
+
+PublicKey = RSA-2048-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzQCB6nsq4eoG1Z98c9n/
+uUoJYVwuS6fGNs7wjdNTPsMYVSWwFcdpuZp31nJb+cNTKptuX2Yn1fuFFgdo092p
+y9NZdFEXF9w9MJ0vxH7kH5fjKtt/ndhkocR2emZuzXG8Gqz151F/SzhZT+qbBeQt
+WtqZEgCAE+RTFqTZu47QhriNKHWLrK+SLUaoaLSF0jnJuusOK2RZJxD0Ky0eoKS0
+gCwL7Ksyj4posAc721Rv7qmAnShJkSs5DBUyvH4px2WPgXX65G80My/4e8qz5AZJ
+uYV3hp2g6nGDU/ByJ1SIaRNkh2DRIr5nbg/Eg90g/8Mb2pajGWbJqi51rQPeR+HE
+TwIDAQAB
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = RSA-2048:RSA-2048-PUBLIC
+
+
+# EC P-256 key
+
+PrivateKey=P-256
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgiocvtiiTxNH/xbnw
++RdYBp+DUuCPoFpJ+NuSbLVyhyWhRANCAAQsFQ9CnOcPIWwlLPXgYs4fY5zV0WXH
++JQkBywnGX14szuSDpXNtmTpkNzwz+oNlOKo5q+dDlgFbmUxBJJbn+bJ
+-----END PRIVATE KEY-----
+
+# EC public key for above
+
+PublicKey=P-256-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAELBUPQpznDyFsJSz14GLOH2Oc1dFl
+x/iUJAcsJxl9eLM7kg6VzbZk6ZDc8M/qDZTiqOavnQ5YBW5lMQSSW5/myQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = P-256:P-256-PUBLIC
+
+# Additional EC key for ECDH
+PrivateKey=P-256-Peer
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg/URzu1TDNwUFWZ3i
+dLISAZpEY0vfJ2pLB7f+Xnjyl2OhRANCAAQgBuXhSgeKpz+4piXlYSVLvy0NT+wK
+uZWUI3LqUUCV07wg+RLLMY8yNK9kjqcgZDs/cB+bet64nQq+dNnvtpxG
+-----END PRIVATE KEY-----
+
+PublicKey=P-256-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIAbl4UoHiqc/uKYl5WElS78tDU/s
+CrmVlCNy6lFAldO8IPkSyzGPMjSvZI6nIGQ7P3Afm3reuJ0KvnTZ77acRg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = P-256-Peer:P-256-Peer-PUBLIC
+
+# DSA key
+PrivateKey=DSA-1024
+-----BEGIN PRIVATE KEY-----
+MIIBSwIBADCCASwGByqGSM44BAEwggEfAoGBAO0SwRpkAeM21qSM5ch4CLEHpFk4
+19R5ve1UUr421y3HEUURsrVpxYKvyx8aOBQC/akz95cYxNN3y1JnJJMxPklhdJrJ
+f/WDYPxjMk8BqNJmeZtLuCVLKGwQomuo7ZkG955WRyLHYEdQ6uC7K2QTPKpW6psF
+YFaDYjAjSEKk2MFxAhUAykDkKLZdhPWzwM8/qYaE31VmWz0CgYEApNVF8oFK41ez
+Qci9XbSZJHyPB+3jML1YQkHxiiInaIz6GEFtjUbIUEYA/ovY+6ECNI1aIDHTd7CH
+woS0mp33oQYs43nt29B6UwbtMmbzCOQ9vGGwWVho+JtHyyPWrDuLmkvLtoQPaxYt
+6PVa3gncr2v3njcVuH+EQ6DuFR93zksEFgIUbyv6pqH+UQurernJn/7sUm2U2i0=
+-----END PRIVATE KEY-----
+
+PublicKey=DSA-1024-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIIBtzCCASwGByqGSM44BAEwggEfAoGBAO0SwRpkAeM21qSM5ch4CLEHpFk419R5
+ve1UUr421y3HEUURsrVpxYKvyx8aOBQC/akz95cYxNN3y1JnJJMxPklhdJrJf/WD
+YPxjMk8BqNJmeZtLuCVLKGwQomuo7ZkG955WRyLHYEdQ6uC7K2QTPKpW6psFYFaD
+YjAjSEKk2MFxAhUAykDkKLZdhPWzwM8/qYaE31VmWz0CgYEApNVF8oFK41ezQci9
+XbSZJHyPB+3jML1YQkHxiiInaIz6GEFtjUbIUEYA/ovY+6ECNI1aIDHTd7CHwoS0
+mp33oQYs43nt29B6UwbtMmbzCOQ9vGGwWVho+JtHyyPWrDuLmkvLtoQPaxYt6PVa
+3gncr2v3njcVuH+EQ6DuFR93zksDgYQAAoGAVXFwJ5wTuF0rQ6AWfTitm3/zUeRW
+SeKFo+Rg0GrBI+Wg2Tj+Yn6V8Xs+Xyjim1wsd2P6/BlJzCEr4nHjP9JcBICqM3vI
+9zCaT/vYsLD7/T7rF9AF/jV+LnkGJCzLbDYF04IkhtLNHOQob+Uc8PWB78e/1Lc4
+SzJw2oHciIOt+UU=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = DSA-1024:DSA-1024-PUBLIC
+
+
+Title = RSA tests
+
+Sign = RSA-2048
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF1234"
+Output = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad
+
+Verify = RSA-2048
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF1234"
+Output = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad
+
+VerifyRecover = RSA-2048
+Ctrl = digest:SHA1
+Input = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad
+Output = "0123456789ABCDEF1234"
+
+# Leading zero in the signature
+Verify = RSA-2048
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF1234"
+Output = 00c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad
+Result = VERIFY_ERROR
+
+VerifyRecover = RSA-2048
+Ctrl = digest:SHA1
+Input = 00c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad
+Result = KEYOP_ERROR
+
+# Digest too long
+Sign = RSA-2048
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF12345"
+Output = 00
+Result = KEYOP_ERROR
+
+# Digest too short
+Sign = RSA-2048
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF12345"
+Output = 00
+Result = KEYOP_ERROR
+
+# Mismatched digest
+Verify = RSA-2048
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF1233"
+Output = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad
+Result = VERIFY_ERROR
+
+# Corrupted signature
+Verify = RSA-2048
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF1233"
+Output = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ae
+Result = VERIFY_ERROR
+
+# parameter is not NULL
+Verify = RSA-2048
+Ctrl = digest:sha1
+Input = "0123456789ABCDEF1234"
+Output = 3ec3fc29eb6e122bd7aa361cd09fe1bcbe85311096a7b9e4799cedfb2351ce0ab7fe4e75b4f6b37f67edd9c60c800f9ab941c0c157d7d880ca9de40c951d60fd293ae220d4bc510b1572d6e85a1bbbd8605b52e05f1c64fafdae59a1c2fbed214b7844d0134619de62851d5a0522e32e556e5950f3f97b8150e3f0dffee612c924201c27cd9bc8b423a71533380c276d3d59fcba35a2e80a1a192ec266a6c2255012cd86a349fe90a542b355fa3355b04da6cdf1df77f0e7bd44a90e880e1760266d233e465226f5db1c68857847d82072861ee266ddfc2e596845b77e1803274a579835ab5e4975d81d20b7df9cec7795489e4a2bdb8c1cf6a6b359945ac92c
+Result = VERIFY_ERROR
+
+# embedded digest too long
+Verify = RSA-2048
+Ctrl = digest:sha1
+Input = "0123456789ABCDEF1234"
+Output = afec9a0d5330a08f54283bb4a9d4e7e7e70fc1342336c4c766fba713f66970151c6e27413c48c33864ea45a0238787004f338ed3e21b53b0fe9c1151c42c388cbc7cba5a06b706c407a5b48324fbe994dc7afc3a19fb3d2841e66222596c14cd72a0f0a7455a019d8eb554f59c0183f9552b75aa96fee8bf935945e079ca283d2bd3534a86f11351f6d6181fbf433e5b01a6d1422145c7a72214d3aacdd5d3af12b2d6bf6438f9f9a64010d8aeed801c87f0859412b236150b86a545f7239be022f4a7ad246b59df87514294cb4a4c7c5a997ee53c66054d9f38ca4e76c1f7af83c30f737ef70f83a45aebe18238ddb95e1998814ca4fc72388f1533147c169d
+Result = VERIFY_ERROR
+
+VerifyRecover = RSA-2048
+Ctrl = digest:sha1
+Input = afec9a0d5330a08f54283bb4a9d4e7e7e70fc1342336c4c766fba713f66970151c6e27413c48c33864ea45a0238787004f338ed3e21b53b0fe9c1151c42c388cbc7cba5a06b706c407a5b48324fbe994dc7afc3a19fb3d2841e66222596c14cd72a0f0a7455a019d8eb554f59c0183f9552b75aa96fee8bf935945e079ca283d2bd3534a86f11351f6d6181fbf433e5b01a6d1422145c7a72214d3aacdd5d3af12b2d6bf6438f9f9a64010d8aeed801c87f0859412b236150b86a545f7239be022f4a7ad246b59df87514294cb4a4c7c5a997ee53c66054d9f38ca4e76c1f7af83c30f737ef70f83a45aebe18238ddb95e1998814ca4fc72388f1533147c169d
+Result = KEYOP_ERROR
+
+# embedded digest too short
+Verify = RSA-2048
+Ctrl = digest:sha1
+Input = "0123456789ABCDEF1234"
+Output = afec9a0d5330a08f54283bb4a9d4e7e7e70fc1342336c4c766fba713f66970151c6e27413c48c33864ea45a0238787004f338ed3e21b53b0fe9c1151c42c388cbc7cba5a06b706c407a5b48324fbe994dc7afc3a19fb3d2841e66222596c14cd72a0f0a7455a019d8eb554f59c0183f9552b75aa96fee8bf935945e079ca283d2bd3534a86f11351f6d6181fbf433e5b01a6d1422145c7a72214d3aacdd5d3af12b2d6bf6438f9f9a64010d8aeed801c87f0859412b236150b86a545f7239be022f4a7ad246b59df87514294cb4a4c7c5a997ee53c66054d9f38ca4e76c1f7af83c30f737ef70f83a45aebe18238ddb95e1998814ca4fc72388f1533147c169d
+Result = VERIFY_ERROR
+
+VerifyRecover = RSA-2048
+Ctrl = digest:sha1
+Input = afec9a0d5330a08f54283bb4a9d4e7e7e70fc1342336c4c766fba713f66970151c6e27413c48c33864ea45a0238787004f338ed3e21b53b0fe9c1151c42c388cbc7cba5a06b706c407a5b48324fbe994dc7afc3a19fb3d2841e66222596c14cd72a0f0a7455a019d8eb554f59c0183f9552b75aa96fee8bf935945e079ca283d2bd3534a86f11351f6d6181fbf433e5b01a6d1422145c7a72214d3aacdd5d3af12b2d6bf6438f9f9a64010d8aeed801c87f0859412b236150b86a545f7239be022f4a7ad246b59df87514294cb4a4c7c5a997ee53c66054d9f38ca4e76c1f7af83c30f737ef70f83a45aebe18238ddb95e1998814ca4fc72388f1533147c169d
+Result = KEYOP_ERROR
+
+# Garbage after DigestInfo
+Verify = RSA-2048
+Ctrl = digest:sha1
+Input = "0123456789ABCDEF1234"
+Output = 9ee34872d4271a7d8808af0a4052a145a6d6a8437d00da3ed14428c7f087cd39f4d43334c41af63e7fa1ba363fee7bcef401d9d36a662abbab55ce89a696e1be0dfa19a5d09ca617dd488787b6048baaefeb29bc8688b2fe3882de2b77c905b5a8b56cf9616041e5ec934ba6de863efe93acc4eef783fe7f72a00fa65d6093ed32bf98ce527e62ccb1d56317f4be18b7e0f55d7c36617d2d0678a306e3350956b662ac15df45215dd8f6b314babb9788e6c272fa461e4c9b512a11a4b92bc77c3a4c95c903fccb238794eca5c750477bf56ea6ee6a167367d881b485ae3889e7c489af8fdf38e0c0f2aed780831182e34abedd43c39281b290774bf35cc25274
+Result = VERIFY_ERROR
+
+VerifyRecover = RSA-2048
+Ctrl = digest:sha1
+Input = 9ee34872d4271a7d8808af0a4052a145a6d6a8437d00da3ed14428c7f087cd39f4d43334c41af63e7fa1ba363fee7bcef401d9d36a662abbab55ce89a696e1be0dfa19a5d09ca617dd488787b6048baaefeb29bc8688b2fe3882de2b77c905b5a8b56cf9616041e5ec934ba6de863efe93acc4eef783fe7f72a00fa65d6093ed32bf98ce527e62ccb1d56317f4be18b7e0f55d7c36617d2d0678a306e3350956b662ac15df45215dd8f6b314babb9788e6c272fa461e4c9b512a11a4b92bc77c3a4c95c903fccb238794eca5c750477bf56ea6ee6a167367d881b485ae3889e7c489af8fdf38e0c0f2aed780831182e34abedd43c39281b290774bf35cc25274
+Result = KEYOP_ERROR
+
+# invalid tag for parameter
+Verify = RSA-2048
+Ctrl = digest:sha1
+Input = "0123456789ABCDEF1234"
+Output = 49525db4d44c755e560cba980b1d85ea604b0e077fcadd4ba44072a3487bbddb835016200a7d8739cce2dc3223d9c20cbdd25059ab02277f1f21318efd18e21038ec89aa9d40680987129e8b41ba33bceb86518bdf47268b921cce2037acabca6575d832499538d6f40cdba0d40bd7f4d8ea6ca6e2eec87f294efc971407857f5d7db09f6a7b31e301f571c6d82a5e3d08d2bb3a36e673d28b910f5bec57f0fcc4d968fd7c94d0b9226dec17f5192ad8b42bcab6f26e1bea1fdc3b958199acb00f14ebcb2a352f3afcedd4c09000128a603bbeb9696dea13040445253972d46237a25c7845e3b464e6984c2348ea1f1210a9ff0b00d2d72b50db00c009bb39f9
+Result = VERIFY_ERROR
+
+VerifyRecover = RSA-2048
+Ctrl = digest:sha1
+Input = 49525db4d44c755e560cba980b1d85ea604b0e077fcadd4ba44072a3487bbddb835016200a7d8739cce2dc3223d9c20cbdd25059ab02277f1f21318efd18e21038ec89aa9d40680987129e8b41ba33bceb86518bdf47268b921cce2037acabca6575d832499538d6f40cdba0d40bd7f4d8ea6ca6e2eec87f294efc971407857f5d7db09f6a7b31e301f571c6d82a5e3d08d2bb3a36e673d28b910f5bec57f0fcc4d968fd7c94d0b9226dec17f5192ad8b42bcab6f26e1bea1fdc3b958199acb00f14ebcb2a352f3afcedd4c09000128a603bbeb9696dea13040445253972d46237a25c7845e3b464e6984c2348ea1f1210a9ff0b00d2d72b50db00c009bb39f9
+Result = KEYOP_ERROR
+
+# MD5/SHA-1 combination
+Verify = RSA-2048
+Ctrl = digest:MD5-SHA1
+Input = "0123456789ABCDEF0123456789ABCDEF0123"
+Output = 7b80e0d4d2a6b7f4b018ce164bc0be21a0604b1b05e91c6204372458b05a0e4dbf0b36b3f80dbf04b278ad1fcf7ff6d982d5ca5d98b13b68240d846d400b8db6675b1a5fcbe2256322c5f691378bc941785326030fa835d240e334e2a4d35b17c1149b59dbb6e6d53b44326ebfc371f754449d36bad3722c1878af1699bb0a00c28e37162f99aba550b7c333228a70c906e3701c519a460a14fac29ff164ca9413efd19b431b31a9ad2988662cdbda9cdcff85f294b4be2cf072caceb1d3f52642edafea2e1d1e495061f18b5b3a130d2242cec830e44d506590e5df69bb974879a35e6bdc1ad00e3e31b362f2f5cdeabd8a0dfddfdb66a7c43993a3e189b80d
+
+VerifyRecover = RSA-2048
+Ctrl = digest:MD5-SHA1
+Input = 7b80e0d4d2a6b7f4b018ce164bc0be21a0604b1b05e91c6204372458b05a0e4dbf0b36b3f80dbf04b278ad1fcf7ff6d982d5ca5d98b13b68240d846d400b8db6675b1a5fcbe2256322c5f691378bc941785326030fa835d240e334e2a4d35b17c1149b59dbb6e6d53b44326ebfc371f754449d36bad3722c1878af1699bb0a00c28e37162f99aba550b7c333228a70c906e3701c519a460a14fac29ff164ca9413efd19b431b31a9ad2988662cdbda9cdcff85f294b4be2cf072caceb1d3f52642edafea2e1d1e495061f18b5b3a130d2242cec830e44d506590e5df69bb974879a35e6bdc1ad00e3e31b362f2f5cdeabd8a0dfddfdb66a7c43993a3e189b80d
+Output = "0123456789ABCDEF0123456789ABCDEF0123"
+
+# MD5/SHA-1 combination, digest mismatch
+Verify = RSA-2048
+Ctrl = digest:MD5-SHA1
+Input = "000000000000000000000000000000000000"
+Output = 7b80e0d4d2a6b7f4b018ce164bc0be21a0604b1b05e91c6204372458b05a0e4dbf0b36b3f80dbf04b278ad1fcf7ff6d982d5ca5d98b13b68240d846d400b8db6675b1a5fcbe2256322c5f691378bc941785326030fa835d240e334e2a4d35b17c1149b59dbb6e6d53b44326ebfc371f754449d36bad3722c1878af1699bb0a00c28e37162f99aba550b7c333228a70c906e3701c519a460a14fac29ff164ca9413efd19b431b31a9ad2988662cdbda9cdcff85f294b4be2cf072caceb1d3f52642edafea2e1d1e495061f18b5b3a130d2242cec830e44d506590e5df69bb974879a35e6bdc1ad00e3e31b362f2f5cdeabd8a0dfddfdb66a7c43993a3e189b80d
+Result = VERIFY_ERROR
+
+# MD5/SHA-1 combination, wrong signature digest length
+Verify = RSA-2048
+Ctrl = digest:MD5-SHA1
+Input = "0123456789ABCDEF0123456789ABCDEF0123"
+Output = 6c13511f97ffb8137545fce551a43cf2b5b3dbdd5c3ceaaccd4620a6a373f3c38cc523d95bbdd810c852743b981bc4393c6b0cdfb0da5e77a8cc0108b05ff95e0f4dd7a0125b7390af1408dca6ddefac3b05b768de7b0c3df3c74e5f102f62743d67813beee1777036078da4cff5b29f49f01a6df3a2e709c37a83737108517687fe754d9ee908cb36c55e88f67c0b537108707347d16049f5dfac3d400ea367222d36627937a7f822f451c3d2c2dbc9e2202bffd3dc1b22213e17270a6b657619c6f44cbf66b077d548cfc9e1a114f8b853412470f2bf8d828f04d0d9f1aef260d216acb0911329fb5bdc48c2be3b198bf6f96e1c3fb116ad4430140d0640d4
+Result = VERIFY_ERROR
+
+VerifyRecover = RSA-2048
+Ctrl = digest:MD5-SHA1
+Input = 6c13511f97ffb8137545fce551a43cf2b5b3dbdd5c3ceaaccd4620a6a373f3c38cc523d95bbdd810c852743b981bc4393c6b0cdfb0da5e77a8cc0108b05ff95e0f4dd7a0125b7390af1408dca6ddefac3b05b768de7b0c3df3c74e5f102f62743d67813beee1777036078da4cff5b29f49f01a6df3a2e709c37a83737108517687fe754d9ee908cb36c55e88f67c0b537108707347d16049f5dfac3d400ea367222d36627937a7f822f451c3d2c2dbc9e2202bffd3dc1b22213e17270a6b657619c6f44cbf66b077d548cfc9e1a114f8b853412470f2bf8d828f04d0d9f1aef260d216acb0911329fb5bdc48c2be3b198bf6f96e1c3fb116ad4430140d0640d4
+Result = KEYOP_ERROR
+
+# MD5/SHA-1 combination, wrong input digest length
+Verify = RSA-2048
+Ctrl = digest:MD5-SHA1
+Input = "0123456789ABCDEF0123456789ABCDEF012"
+Output = 7b80e0d4d2a6b7f4b018ce164bc0be21a0604b1b05e91c6204372458b05a0e4dbf0b36b3f80dbf04b278ad1fcf7ff6d982d5ca5d98b13b68240d846d400b8db6675b1a5fcbe2256322c5f691378bc941785326030fa835d240e334e2a4d35b17c1149b59dbb6e6d53b44326ebfc371f754449d36bad3722c1878af1699bb0a00c28e37162f99aba550b7c333228a70c906e3701c519a460a14fac29ff164ca9413efd19b431b31a9ad2988662cdbda9cdcff85f294b4be2cf072caceb1d3f52642edafea2e1d1e495061f18b5b3a130d2242cec830e44d506590e5df69bb974879a35e6bdc1ad00e3e31b362f2f5cdeabd8a0dfddfdb66a7c43993a3e189b80d
+Result = VERIFY_ERROR
+
+# MD5/SHA-1 combination, wrong input and signature digest length
+Verify = RSA-2048
+Ctrl = digest:MD5-SHA1
+Input = "0123456789ABCDEF0123456789ABCDEF012"
+Output = 6c13511f97ffb8137545fce551a43cf2b5b3dbdd5c3ceaaccd4620a6a373f3c38cc523d95bbdd810c852743b981bc4393c6b0cdfb0da5e77a8cc0108b05ff95e0f4dd7a0125b7390af1408dca6ddefac3b05b768de7b0c3df3c74e5f102f62743d67813beee1777036078da4cff5b29f49f01a6df3a2e709c37a83737108517687fe754d9ee908cb36c55e88f67c0b537108707347d16049f5dfac3d400ea367222d36627937a7f822f451c3d2c2dbc9e2202bffd3dc1b22213e17270a6b657619c6f44cbf66b077d548cfc9e1a114f8b853412470f2bf8d828f04d0d9f1aef260d216acb0911329fb5bdc48c2be3b198bf6f96e1c3fb116ad4430140d0640d4
+Result = VERIFY_ERROR
+
+# DigestInfo-wrapped MDC-2 signature
+Verify = RSA-2048
+Ctrl = digest:MDC2
+Input = "0123456789ABCDEF"
+Output = 3a46e5e80635d3b5586187b44b08fd02ca0bd36a637a8afeb46a1c1eb18d05b3196e00edf85378109015bcd3d0cfcefc2919c5b8e3ac42884b360188b1395ed34df7d2749f36b91c320d290311d78b36f390481eff42ace0275385c05176d022e4b625cf0ed85082d4b25da9e8a86011f6ac1cb8d8b812cc2bbd6c240caa8445aa74f8e971c935dbf3447df0411eb9e5cdee0851d1e0fea7041916c77efc09dc54e8dd4b7ba8f8d85ef43d4f12abde99886f4ebd5f021fc1b476cc23dc6a94fbbe77c954eee496fb6b4b5c534daa4e819143ce8de511a8bcb65759750c17edaca6fb31ac271c1ca3a27705f780ae86c67009e76fcba9067dde3556ff59c44111
+
+VerifyRecover = RSA-2048
+Ctrl = digest:MDC2
+Input = 3a46e5e80635d3b5586187b44b08fd02ca0bd36a637a8afeb46a1c1eb18d05b3196e00edf85378109015bcd3d0cfcefc2919c5b8e3ac42884b360188b1395ed34df7d2749f36b91c320d290311d78b36f390481eff42ace0275385c05176d022e4b625cf0ed85082d4b25da9e8a86011f6ac1cb8d8b812cc2bbd6c240caa8445aa74f8e971c935dbf3447df0411eb9e5cdee0851d1e0fea7041916c77efc09dc54e8dd4b7ba8f8d85ef43d4f12abde99886f4ebd5f021fc1b476cc23dc6a94fbbe77c954eee496fb6b4b5c534daa4e819143ce8de511a8bcb65759750c17edaca6fb31ac271c1ca3a27705f780ae86c67009e76fcba9067dde3556ff59c44111
+Output = "0123456789ABCDEF"
+
+# Legacy OCTET STRING MDC-2 signature
+Verify = RSA-2048
+Ctrl = digest:MDC2
+Input = "0123456789ABCDEF"
+Output = 6cde46bbfc6a3b772c3d884640709be9f2fb70fcf199c14eaff7811369ea99733f984a9c48cd372578fa37cedeef24c93286d6d64f438df051e625ab2e125a7d9974a76240873e43efc3acbcbdccc2ee63769cdbf983b334ccb982273315c222b3bbdc3e928ac8a141a7412f1f794cfcabcc069a2ae4975d7bb68bea145d789634c9e0b02d324b5efd599c9bf2b1d32d077aba59aa0ad4a82cbbb90eaa9214e4f57104cf049c4139e2ddecf6edf219cd986f4d79cf25128c58667562c9d22be0291430d6cc7dad977d56e08315fcec133ea95d8db550f89735b4d5f233eaff0c86fce2b99f3f508e920f882c31f3e13f8775a3c8fa585c4f4c69eca89f648b7e
+
+VerifyRecover = RSA-2048
+Ctrl = digest:MDC2
+Input = 6cde46bbfc6a3b772c3d884640709be9f2fb70fcf199c14eaff7811369ea99733f984a9c48cd372578fa37cedeef24c93286d6d64f438df051e625ab2e125a7d9974a76240873e43efc3acbcbdccc2ee63769cdbf983b334ccb982273315c222b3bbdc3e928ac8a141a7412f1f794cfcabcc069a2ae4975d7bb68bea145d789634c9e0b02d324b5efd599c9bf2b1d32d077aba59aa0ad4a82cbbb90eaa9214e4f57104cf049c4139e2ddecf6edf219cd986f4d79cf25128c58667562c9d22be0291430d6cc7dad977d56e08315fcec133ea95d8db550f89735b4d5f233eaff0c86fce2b99f3f508e920f882c31f3e13f8775a3c8fa585c4f4c69eca89f648b7e
+Output = "0123456789ABCDEF"
+
+# Legacy OCTET STRING MDC-2 signature, digest mismatch
+Verify = RSA-2048
+Ctrl = digest:MDC2
+Input = "0000000000000000"
+Output = 6cde46bbfc6a3b772c3d884640709be9f2fb70fcf199c14eaff7811369ea99733f984a9c48cd372578fa37cedeef24c93286d6d64f438df051e625ab2e125a7d9974a76240873e43efc3acbcbdccc2ee63769cdbf983b334ccb982273315c222b3bbdc3e928ac8a141a7412f1f794cfcabcc069a2ae4975d7bb68bea145d789634c9e0b02d324b5efd599c9bf2b1d32d077aba59aa0ad4a82cbbb90eaa9214e4f57104cf049c4139e2ddecf6edf219cd986f4d79cf25128c58667562c9d22be0291430d6cc7dad977d56e08315fcec133ea95d8db550f89735b4d5f233eaff0c86fce2b99f3f508e920f882c31f3e13f8775a3c8fa585c4f4c69eca89f648b7e
+Result = VERIFY_ERROR
+
+# Legacy OCTET STRING MDC-2 signature, wrong input digest length
+Verify = RSA-2048
+Ctrl = digest:MDC2
+Input = "0123456789ABCDE"
+Output = 6cde46bbfc6a3b772c3d884640709be9f2fb70fcf199c14eaff7811369ea99733f984a9c48cd372578fa37cedeef24c93286d6d64f438df051e625ab2e125a7d9974a76240873e43efc3acbcbdccc2ee63769cdbf983b334ccb982273315c222b3bbdc3e928ac8a141a7412f1f794cfcabcc069a2ae4975d7bb68bea145d789634c9e0b02d324b5efd599c9bf2b1d32d077aba59aa0ad4a82cbbb90eaa9214e4f57104cf049c4139e2ddecf6edf219cd986f4d79cf25128c58667562c9d22be0291430d6cc7dad977d56e08315fcec133ea95d8db550f89735b4d5f233eaff0c86fce2b99f3f508e920f882c31f3e13f8775a3c8fa585c4f4c69eca89f648b7e
+Result = VERIFY_ERROR
+
+# Legacy OCTET STRING MDC-2 signature, wrong signature digest length
+Verify = RSA-2048
+Ctrl = digest:MDC2
+Input = "0123456789ABCDEF"
+Output = 08da512483ece70be57f28a75271612800ae30ffbadc62609bc88b80d497a1fc13c300fdfcab6dc80cf55373c10adcc249ae80479b87fa3e391a2cd4a74babd1c22a4976812d544dcd6729b161bbc48fd067cf635b05f9edaddaeb6f67f2117d6b54a23c5e6f08a246abfe0356a67d7f3929306515e6d9962f8ce205120ecdcd2d4e3783cd0b4a1f0196a1b13924d0d3649233312695c3c336ae04e0b1efddabcc878b57622db60f6f747a1124c38426dacf1425c92d304c2bb1052f987c1dd73e4cc4b20d23396d4f05f52f98cf5065c3fb7dc319425f1f6f1878b87f57afbd24fbff98909494581aadd04d80a639b85ce8684ea58409d8dbbbaacf256bb5c4
+Result = VERIFY_ERROR
+
+VerifyRecover = RSA-2048
+Ctrl = digest:MDC2
+Input = 08da512483ece70be57f28a75271612800ae30ffbadc62609bc88b80d497a1fc13c300fdfcab6dc80cf55373c10adcc249ae80479b87fa3e391a2cd4a74babd1c22a4976812d544dcd6729b161bbc48fd067cf635b05f9edaddaeb6f67f2117d6b54a23c5e6f08a246abfe0356a67d7f3929306515e6d9962f8ce205120ecdcd2d4e3783cd0b4a1f0196a1b13924d0d3649233312695c3c336ae04e0b1efddabcc878b57622db60f6f747a1124c38426dacf1425c92d304c2bb1052f987c1dd73e4cc4b20d23396d4f05f52f98cf5065c3fb7dc319425f1f6f1878b87f57afbd24fbff98909494581aadd04d80a639b85ce8684ea58409d8dbbbaacf256bb5c4
+Result = KEYOP_ERROR
+
+# Legacy OCTET STRING MDC-2 signature, wrong input and signature digest length
+Verify = RSA-2048
+Ctrl = digest:MDC2
+Input = "0123456789ABCDE"
+Output = 08da512483ece70be57f28a75271612800ae30ffbadc62609bc88b80d497a1fc13c300fdfcab6dc80cf55373c10adcc249ae80479b87fa3e391a2cd4a74babd1c22a4976812d544dcd6729b161bbc48fd067cf635b05f9edaddaeb6f67f2117d6b54a23c5e6f08a246abfe0356a67d7f3929306515e6d9962f8ce205120ecdcd2d4e3783cd0b4a1f0196a1b13924d0d3649233312695c3c336ae04e0b1efddabcc878b57622db60f6f747a1124c38426dacf1425c92d304c2bb1052f987c1dd73e4cc4b20d23396d4f05f52f98cf5065c3fb7dc319425f1f6f1878b87f57afbd24fbff98909494581aadd04d80a639b85ce8684ea58409d8dbbbaacf256bb5c4
+Result = VERIFY_ERROR
+
+# Verify using public key
+
+Verify = RSA-2048-PUBLIC
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF1234"
+Output = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad
+
+# RSA decrypt
+
+Decrypt = RSA-2048
+Input = 550AF55A2904E7B9762352F8FB7FA235A9CB053AACB2D5FCB8CA48453CB2EE3619746C701ABF2D4CC67003471A187900B05AA812BD25ED05C675DFC8C97A24A7BF49BD6214992CAD766D05A9A2B57B74F26A737E0237B8B76C45F1F226A836D7CFBC75BA999BDBE48DBC09227AA46C88F21DCCBA7840141AD5A5D71FD122E6BD6AC3E564780DFE623FC1CA9B995A6037BF0BBD43B205A84AC5444F34202C05CE9113087176432476576DE6FFFF9A52EA57C08BE3EC2F49676CB8E12F762AC71FA3C321E00AC988910C85FF52F93825666CE0D40FFAA0592078919D4493F46D95CCF76364C6D57760DD0B64805F9AFC76A2365A5575CA301D5103F0EA76CB9A78
+Output = "Hello World"
+
+# Corrupted ciphertext
+Decrypt = RSA-2048
+Input = 550AF55A2904E7B9762352F8FB7FA235A9CB053AACB2D5FCB8CA48453CB2EE3619746C701ABF2D4CC67003471A187900B05AA812BD25ED05C675DFC8C97A24A7BF49BD6214992CAD766D05A9A2B57B74F26A737E0237B8B76C45F1F226A836D7CFBC75BA999BDBE48DBC09227AA46C88F21DCCBA7840141AD5A5D71FD122E6BD6AC3E564780DFE623FC1CA9B995A6037BF0BBD43B205A84AC5444F34202C05CE9113087176432476576DE6FFFF9A52EA57C08BE3EC2F49676CB8E12F762AC71FA3C321E00AC988910C85FF52F93825666CE0D40FFAA0592078919D4493F46D95CCF76364C6D57760DD0B64805F9AFC76A2365A5575CA301D5103F0EA76CB9A79
+Output = "Hello World"
+Result = KEYOP_ERROR
+
+# OAEP padding
+Decrypt = RSA-2048
+Ctrl = rsa_padding_mode:oaep
+Input = 458708DFBD42A1297CE7A9C86C7087AB80B1754810929B89C5107CA55368587686986FCE94D86CC1595B3FB736223A656EC0F34D18BA1CC5665593610F56C58E26B272D584F3D983A5C91085700755AEBD921FB280BBA3EDA7046EC07B43E7298E52D59EDC92BE4639A8CE08B2F85976ECF6D98CC469EEB9D5D8E2A32EA8A6626EDAFE1038B3DF455668A9F3C77CAD8B92FB872E00058C3D2A7EDE1A1F03FC5622084AE04D9D24F6BF0995C58D35B93B699B9763595E123F2AB0863CC9229EB290E2EDE7715C7A8F39E0B9A3E2E1B56EBB62F1CBFBB5986FB212EBD785B83D01D968B11D1756C7337F70C1F1A63BFF03608E24F3A2FD44E67F832A8701C5D5AF
+Output = "Hello World"
+
+# OAEP padding, corrupted ciphertext
+Decrypt = RSA-2048
+Ctrl = rsa_padding_mode:oaep
+Input = 458708DFBD42A1297CE7A9C86C7087AB80B1754810929B89C5107CA55368587686986FCE94D86CC1595B3FB736223A656EC0F34D18BA1CC5665593610F56C58E26B272D584F3D983A5C91085700755AEBD921FB280BBA3EDA7046EC07B43E7298E52D59EDC92BE4639A8CE08B2F85976ECF6D98CC469EEB9D5D8E2A32EA8A6626EDAFE1038B3DF455668A9F3C77CAD8B92FB872E00058C3D2A7EDE1A1F03FC5622084AE04D9D24F6BF0995C58D35B93B699B9763595E123F2AB0863CC9229EB290E2EDE7715C7A8F39E0B9A3E2E1B56EBB62F1CBFBB5986FB212EBD785B83D01D968B11D1756C7337F70C1F1A63BFF03608E24F3A2FD44E67F832A8701C5D5AC
+Output = "Hello World"
+Result = KEYOP_ERROR
+
+# Illegal RSA key derivation
+Derive = RSA-2048
+Result = KEYOP_INIT_ERROR
+Function = EVP_PKEY_derive_init
+Reason = operation not supported for this keytype
+
+Sign = RSA-2048
+Ctrl = rsa_mgf1_md:sha1
+Result = PKEY_CTRL_INVALID
+Function = pkey_rsa_ctrl
+Reason = invalid mgf1 md
+
+# RSA PSS key tests
+
+# PSS only key, no parameter restrictions
+PrivateKey = RSA-PSS
+-----BEGIN PRIVATE KEY-----
+MIIEugIBADALBgkqhkiG9w0BAQoEggSmMIIEogIBAAKCAQEAzQCB6nsq4eoG1Z98
+c9n/uUoJYVwuS6fGNs7wjdNTPsMYVSWwFcdpuZp31nJb+cNTKptuX2Yn1fuFFgdo
+092py9NZdFEXF9w9MJ0vxH7kH5fjKtt/ndhkocR2emZuzXG8Gqz151F/SzhZT+qb
+BeQtWtqZEgCAE+RTFqTZu47QhriNKHWLrK+SLUaoaLSF0jnJuusOK2RZJxD0Ky0e
+oKS0gCwL7Ksyj4posAc721Rv7qmAnShJkSs5DBUyvH4px2WPgXX65G80My/4e8qz
+5AZJuYV3hp2g6nGDU/ByJ1SIaRNkh2DRIr5nbg/Eg90g/8Mb2pajGWbJqi51rQPe
+R+HETwIDAQABAoIBAGApeseZGxZ6BtayR1i4y+IIvrmy2eyXOL2A+QouNQBd184p
+LZ4puohb0xb+8fIJE7wKyQ1rCAiyQU2CEERB2GJKM84CM8j3gKSLN1r/AtdnEiKK
+cCSE2z+evszPu+4XCduhgoANlJ6eQhbgv/NVg4j4vZDaNzodgnQ+w/vdFCf9FoJa
+ZXoxaRLoaVNlEXyi+EXJCUBfysVfiV/BXSA4bCbueMnpkHUCmheKbB5M8MIA6KnP
+sn6dFW+G5sKtwisahKHNXKWyeQh115QHyEs1I5XLgcw/7VuwQ7ae3gwHIEVQAlzu
+jF9EAXC2Egu0jg90e82PUiEQhQ3wQ8Qo39GHBTECgYEA9vlhtHy8A1067evH3oUK
+lWtl7Nuc9gdkBj8VqkhVPFjZcv5mdQVuNd39w3vzufL2Iu4nEzclaEnJvvIXb+j3
+w/i7kbo3TdU7rz3sgU0r3sEMH9yIzdFodvJrHt+j8JQZft9NQv8fspcRA7iYyoWc
+QnKHCGqEKrQQu2nPLTWva+MCgYEA1H5ySn/0EEiycMJSSkEBh4tzFZu3PT28GHsi
+DmNbNTT5biQ6GE2T+GC2v7trccHtmh4fRYWDAjwwHpamksGgi1PQ7JypEBANgEUe
+O33GoBusSuzvjfeYhGvCNaCMu6LPTAaATMESGelWCMcU4/FDDUkfrbujKldRoE+X
+dFg0yaUCgYAh8kUrubld/QKMkUv3mfHKd+ialdUNPBbThPhFX4vXr56z36PVkdmE
+Le8jX3YwqOSMCI/2ZC4QF5RTWpM+HpdvqFCfxyiy2gxKGgjX/PN6uq4f8wAayh3B
+u7Bdnf+6oaCff7Hu84I32evMxyK5M4Q23ecRkRJ5jCaAnBqN7EMgYQKBgB91EKpi
+wtjeSjxTKCeB9B4C0Oi0Aq54Qy5EnEgRAWGhFAPwLQGICo3Mk4FS15chpHEaYHrE
+Rx6/lkgQ+VvkekXmBJnin0yXc8g3c0BPYGY3cowtA1G7A8MmyLtzpyHn+lRA6iFy
+u6FGX8ww3LDZ+Jkw6BWqH3+XKahX4A4DON1ZAoGATR8NdW/nfgEJmmUvUKiLe2hd
+xb8AmB1dI3b9DG/inNW2OHNEeTBac608FZnTnq47rgNfvW/tB8KN5wWTOHmgbkjm
+pgNobtjiVgpfavHywk+vSqlg44IYbxXu3OmiSRrnMGgN1M93i3D6qGgmqzIjR3zJ
+E3exmm1aLq6iGXYL7tU=
+-----END PRIVATE KEY-----
+
+# PSS public key default parameters
+PublicKey = RSA-PSS-DEFAULT
+-----BEGIN PUBLIC KEY-----
+MIIBIjANBgkqhkiG9w0BAQowAAOCAQ8AMIIBCgKCAQEAzQCB6nsq4eoG1Z98c9n/
+uUoJYVwuS6fGNs7wjdNTPsMYVSWwFcdpuZp31nJb+cNTKptuX2Yn1fuFFgdo092p
+y9NZdFEXF9w9MJ0vxH7kH5fjKtt/ndhkocR2emZuzXG8Gqz151F/SzhZT+qbBeQt
+WtqZEgCAE+RTFqTZu47QhriNKHWLrK+SLUaoaLSF0jnJuusOK2RZJxD0Ky0eoKS0
+gCwL7Ksyj4posAc721Rv7qmAnShJkSs5DBUyvH4px2WPgXX65G80My/4e8qz5AZJ
+uYV3hp2g6nGDU/ByJ1SIaRNkh2DRIr5nbg/Eg90g/8Mb2pajGWbJqi51rQPeR+HE
+TwIDAQAB
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = RSA-PSS:RSA-PSS-DEFAULT
+
+# Key with invalid negative minimum salt length
+PublicKey = RSA-PSS-BAD
+-----BEGIN PUBLIC KEY-----
+MIIBJzASBgkqhkiG9w0BAQowBaIDAgH/A4IBDwAwggEKAoIBAQDNAIHqeyrh6gbV
+n3xz2f+5SglhXC5Lp8Y2zvCN01M+wxhVJbAVx2m5mnfWclv5w1Mqm25fZifV+4UW
+B2jT3anL01l0URcX3D0wnS/EfuQfl+Mq23+d2GShxHZ6Zm7NcbwarPXnUX9LOFlP
+6psF5C1a2pkSAIAT5FMWpNm7jtCGuI0odYusr5ItRqhotIXSOcm66w4rZFknEPQr
+LR6gpLSALAvsqzKPimiwBzvbVG/uqYCdKEmRKzkMFTK8finHZY+BdfrkbzQzL/h7
+yrPkBkm5hXeGnaDqcYNT8HInVIhpE2SHYNEivmduD8SD3SD/wxvalqMZZsmqLnWt
+A95H4cRPAgMBAAE=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = RSA-PSS:RSA-PSS-BAD
+
+
+# Key with minimum salt length exceeding maximum permitted value
+PublicKey = RSA-PSS-BAD2
+-----BEGIN PUBLIC KEY-----
+MIIBKDATBgkqhkiG9w0BAQowBqIEAgIBAAOCAQ8AMIIBCgKCAQEAzQCB6nsq4eoG
+1Z98c9n/uUoJYVwuS6fGNs7wjdNTPsMYVSWwFcdpuZp31nJb+cNTKptuX2Yn1fuF
+Fgdo092py9NZdFEXF9w9MJ0vxH7kH5fjKtt/ndhkocR2emZuzXG8Gqz151F/SzhZ
+T+qbBeQtWtqZEgCAE+RTFqTZu47QhriNKHWLrK+SLUaoaLSF0jnJuusOK2RZJxD0
+Ky0eoKS0gCwL7Ksyj4posAc721Rv7qmAnShJkSs5DBUyvH4px2WPgXX65G80My/4
+e8qz5AZJuYV3hp2g6nGDU/ByJ1SIaRNkh2DRIr5nbg/Eg90g/8Mb2pajGWbJqi51
+rQPeR+HETwIDAQAB
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = RSA-PSS:RSA-PSS-BAD2
+
+# Zero salt length makes output deterministic
+Sign = RSA-2048
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_pss_saltlen:0
+Ctrl = digest:sha256
+Input="0123456789ABCDEF0123456789ABCDEF"
+Output=4DE433D5844043EF08D354DA03CB29068780D52706D7D1E4D50EFB7D58C9D547D83A747DDD0635A96B28F854E50145518482CB49E963054621B53C60C498D07C16E9C2789C893CF38D4D86900DE71BDE463BD2761D1271E358C7480A1AC0BAB930DDF39602AD1BC165B5D7436B516B7A7858E8EB7AB1C420EEB482F4D207F0E462B1724959320A084E13848D11D10FB593E66BF680BF6D3F345FC3E9C3DE60ABBAC37E1C6EC80A268C8D9FC49626C679097AA690BC1AA662B95EB8DB70390861AA0898229F9349B4B5FDD030D4928C47084708A933144BE23BD3C6E661B85B2C0EF9ED36D498D5B7320E8194D363D4AD478C059BAE804181965E0B81B663158A
+
+# Verify of above signature
+Verify = RSA-2048-PUBLIC
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_pss_saltlen:0
+Ctrl = digest:sha256
+Input="0123456789ABCDEF0123456789ABCDEF"
+Output=4DE433D5844043EF08D354DA03CB29068780D52706D7D1E4D50EFB7D58C9D547D83A747DDD0635A96B28F854E50145518482CB49E963054621B53C60C498D07C16E9C2789C893CF38D4D86900DE71BDE463BD2761D1271E358C7480A1AC0BAB930DDF39602AD1BC165B5D7436B516B7A7858E8EB7AB1C420EEB482F4D207F0E462B1724959320A084E13848D11D10FB593E66BF680BF6D3F345FC3E9C3DE60ABBAC37E1C6EC80A268C8D9FC49626C679097AA690BC1AA662B95EB8DB70390861AA0898229F9349B4B5FDD030D4928C47084708A933144BE23BD3C6E661B85B2C0EF9ED36D498D5B7320E8194D363D4AD478C059BAE804181965E0B81B663158A
+
+# Verify using salt length auto detect
+Verify = RSA-2048-PUBLIC
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_pss_saltlen:auto
+Input="0123456789ABCDEF0123"
+Output = 6BF7EDC63A0BA184EEEC7F3020FEC8F5EBF38C2B76481881F48BCCE5796E7AB294548BA9AE810457C7723CABD1BDE94CF59CF7C0FC7461B22760C8ED703DD98E97BFDD61FA8D1181C411F6DEE5FF159F4850746D78EDEE385A363DC28E2CB373D5CAD7953F3BD5E639BE345732C03A1BDEA268814DA036EB1891C82D4012F3B903D86636055F87B96FC98806AD1B217685A4D754046A5DE0B0D7870664BE07902153EC85BA457BE7D7F89D7FE0F626D02A9CBBB2BB479DDA1A5CAE75247FB7BF6BFB15C1D3FD9E6B1573CCDBC72011C3B97716058BB11C7EA2E4E56ADAFE1F5DE6A7FD405AC5890100F9C3408EFFB5C73BF73F48177FF743B4B819D0699D507B
+
+# Digest too short
+Verify = RSA-2048-PUBLIC
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_pss_saltlen:0
+Ctrl = digest:sha256
+Input="0123456789ABCDEF0123456789ABCDE"
+Output=4DE433D5844043EF08D354DA03CB29068780D52706D7D1E4D50EFB7D58C9D547D83A747DDD0635A96B28F854E50145518482CB49E963054621B53C60C498D07C16E9C2789C893CF38D4D86900DE71BDE463BD2761D1271E358C7480A1AC0BAB930DDF39602AD1BC165B5D7436B516B7A7858E8EB7AB1C420EEB482F4D207F0E462B1724959320A084E13848D11D10FB593E66BF680BF6D3F345FC3E9C3DE60ABBAC37E1C6EC80A268C8D9FC49626C679097AA690BC1AA662B95EB8DB70390861AA0898229F9349B4B5FDD030D4928C47084708A933144BE23BD3C6E661B85B2C0EF9ED36D498D5B7320E8194D363D4AD478C059BAE804181965E0B81B663158A
+Result = VERIFY_ERROR
+
+# Digest too long
+Verify = RSA-2048-PUBLIC
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_pss_saltlen:0
+Ctrl = digest:sha256
+Input="0123456789ABCDEF0123456789ABCDEF0"
+Output=4DE433D5844043EF08D354DA03CB29068780D52706D7D1E4D50EFB7D58C9D547D83A747DDD0635A96B28F854E50145518482CB49E963054621B53C60C498D07C16E9C2789C893CF38D4D86900DE71BDE463BD2761D1271E358C7480A1AC0BAB930DDF39602AD1BC165B5D7436B516B7A7858E8EB7AB1C420EEB482F4D207F0E462B1724959320A084E13848D11D10FB593E66BF680BF6D3F345FC3E9C3DE60ABBAC37E1C6EC80A268C8D9FC49626C679097AA690BC1AA662B95EB8DB70390861AA0898229F9349B4B5FDD030D4928C47084708A933144BE23BD3C6E661B85B2C0EF9ED36D498D5B7320E8194D363D4AD478C059BAE804181965E0B81B663158A
+Result = VERIFY_ERROR
+
+# Wrong salt length
+Verify = RSA-2048
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_pss_saltlen:2
+Ctrl = digest:sha256
+Input="0123456789ABCDEF0123456789ABCDEF"
+Output=4DE433D5844043EF08D354DA03CB29068780D52706D7D1E4D50EFB7D58C9D547D83A747DDD0635A96B28F854E50145518482CB49E963054621B53C60C498D07C16E9C2789C893CF38D4D86900DE71BDE463BD2761D1271E358C7480A1AC0BAB930DDF39602AD1BC165B5D7436B516B7A7858E8EB7AB1C420EEB482F4D207F0E462B1724959320A084E13848D11D10FB593E66BF680BF6D3F345FC3E9C3DE60ABBAC37E1C6EC80A268C8D9FC49626C679097AA690BC1AA662B95EB8DB70390861AA0898229F9349B4B5FDD030D4928C47084708A933144BE23BD3C6E661B85B2C0EF9ED36D498D5B7320E8194D363D4AD478C059BAE804181965E0B81B663158A
+Result = VERIFY_ERROR
+
+# Wrong MGF1 digest
+Verify = RSA-2048
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_pss_saltlen:0
+Ctrl = digest:sha256
+Ctrl = rsa_mgf1_md:sha1
+Input="0123456789ABCDEF0123456789ABCDEF"
+Output=4DE433D5844043EF08D354DA03CB29068780D52706D7D1E4D50EFB7D58C9D547D83A747DDD0635A96B28F854E50145518482CB49E963054621B53C60C498D07C16E9C2789C893CF38D4D86900DE71BDE463BD2761D1271E358C7480A1AC0BAB930DDF39602AD1BC165B5D7436B516B7A7858E8EB7AB1C420EEB482F4D207F0E462B1724959320A084E13848D11D10FB593E66BF680BF6D3F345FC3E9C3DE60ABBAC37E1C6EC80A268C8D9FC49626C679097AA690BC1AA662B95EB8DB70390861AA0898229F9349B4B5FDD030D4928C47084708A933144BE23BD3C6E661B85B2C0EF9ED36D498D5B7320E8194D363D4AD478C059BAE804181965E0B81B663158A
+Result = VERIFY_ERROR
+
+
+# Verify using default parameters
+Verify = RSA-PSS-DEFAULT
+Input="0123456789ABCDEF0123"
+Output = 3EFE09D88509027D837BFA5F8471CF7B69E6DF395DD999BB9CA42021F15722D9AC76670507C6BCFB73F64FB2211B611B8F140E76EBDB064BD762FDBA89D019E304A0D6B274E1C2FE1DF50005598A0306AF805416094E2A5BA60BC72BDE38CE061E853ED40F14967A8B9CA4DC739B462F89558F12FDF2D8D19FBEF16AD66FE2DDDA8BEE983ECBD873064244849D8D94B5B33F45E076871A47ED653E73257A2BE2DB3C0878094B0D2B6B682C8007DFD989425FB39A1FEEC9EED5876414601A49176EC344F5E3EDEE81CA2DDD29B7364F4638112CB3A547E2BC170E28CB66BDABE863754BE8AD5BA230567B575266F4B6B4CF81F28310ABF05351CC9E2DB85D00BF
+
+# Verify using default parameters, explicitly setting parameters
+Verify = RSA-PSS-DEFAULT
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_pss_saltlen:20
+Ctrl = digest:sha1
+Input="0123456789ABCDEF0123"
+Output = 3EFE09D88509027D837BFA5F8471CF7B69E6DF395DD999BB9CA42021F15722D9AC76670507C6BCFB73F64FB2211B611B8F140E76EBDB064BD762FDBA89D019E304A0D6B274E1C2FE1DF50005598A0306AF805416094E2A5BA60BC72BDE38CE061E853ED40F14967A8B9CA4DC739B462F89558F12FDF2D8D19FBEF16AD66FE2DDDA8BEE983ECBD873064244849D8D94B5B33F45E076871A47ED653E73257A2BE2DB3C0878094B0D2B6B682C8007DFD989425FB39A1FEEC9EED5876414601A49176EC344F5E3EDEE81CA2DDD29B7364F4638112CB3A547E2BC170E28CB66BDABE863754BE8AD5BA230567B575266F4B6B4CF81F28310ABF05351CC9E2DB85D00BF
+
+# Verify explicitly setting parameters "digest" salt length
+Verify = RSA-PSS-DEFAULT
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_pss_saltlen:digest
+Ctrl = digest:sha1
+Input="0123456789ABCDEF0123"
+Output = 3EFE09D88509027D837BFA5F8471CF7B69E6DF395DD999BB9CA42021F15722D9AC76670507C6BCFB73F64FB2211B611B8F140E76EBDB064BD762FDBA89D019E304A0D6B274E1C2FE1DF50005598A0306AF805416094E2A5BA60BC72BDE38CE061E853ED40F14967A8B9CA4DC739B462F89558F12FDF2D8D19FBEF16AD66FE2DDDA8BEE983ECBD873064244849D8D94B5B33F45E076871A47ED653E73257A2BE2DB3C0878094B0D2B6B682C8007DFD989425FB39A1FEEC9EED5876414601A49176EC344F5E3EDEE81CA2DDD29B7364F4638112CB3A547E2BC170E28CB66BDABE863754BE8AD5BA230567B575266F4B6B4CF81F28310ABF05351CC9E2DB85D00BF
+
+# Verify using salt length larger than minimum
+Verify = RSA-PSS-DEFAULT
+Ctrl = rsa_pss_saltlen:30
+Input="0123456789ABCDEF0123"
+Output = 6BF7EDC63A0BA184EEEC7F3020FEC8F5EBF38C2B76481881F48BCCE5796E7AB294548BA9AE810457C7723CABD1BDE94CF59CF7C0FC7461B22760C8ED703DD98E97BFDD61FA8D1181C411F6DEE5FF159F4850746D78EDEE385A363DC28E2CB373D5CAD7953F3BD5E639BE345732C03A1BDEA268814DA036EB1891C82D4012F3B903D86636055F87B96FC98806AD1B217685A4D754046A5DE0B0D7870664BE07902153EC85BA457BE7D7F89D7FE0F626D02A9CBBB2BB479DDA1A5CAE75247FB7BF6BFB15C1D3FD9E6B1573CCDBC72011C3B97716058BB11C7EA2E4E56ADAFE1F5DE6A7FD405AC5890100F9C3408EFFB5C73BF73F48177FF743B4B819D0699D507B
+
+# Verify using maximum salt length
+Verify = RSA-PSS-DEFAULT
+Ctrl = rsa_pss_saltlen:max
+Input="0123456789ABCDEF0123"
+Output = 4470DCFE812DEE2E58E4301D4ED274AB348FE040B724B2CD1D8CD0914BFF375F0B86FCB32BFA8AEA9BD22BD7C4F1ADD4F3D215A5CFCC99055BAFECFC23800E9BECE19A08C66BEBC5802122D13A732E5958FC228DCC0B49B5B4B1154F032D8FA2F3564AA949C1310CC9266B0C47F86D449AC9D2E7678347E7266E2D7C888CCE1ADF44A109A293F8516AE2BD94CE220F26E137DB8E7A66BB9FCE052CDC1D0BE24D8CEBB20D10125F26B069F117044B9E1D16FDDAABCA5340AE1702F37D0E1C08A2E93801C0A41035C6C73DA02A0E32227EAFB0B85E79107B59650D0EE7DC32A6772CCCE90F06369B2880FE87ED76997BA61F5EA818091EE88F8B0D6F24D02A3FC6
+
+# Attempt to change salt length below minimum
+Verify = RSA-PSS-DEFAULT
+Ctrl = rsa_pss_saltlen:0
+Result = PKEY_CTRL_ERROR
+
+# Attempt to change padding mode
+Verify = RSA-PSS-DEFAULT
+Ctrl = rsa_padding_mode:pkcs1
+Result = PKEY_CTRL_INVALID
+
+# Attempt to change digest
+Verify = RSA-PSS-DEFAULT
+Ctrl = digest:sha256
+Result = PKEY_CTRL_ERROR
+
+# Illegal decrypt
+Decrypt = RSA-PSS
+Result = KEYOP_INIT_ERROR
+Function = EVP_PKEY_decrypt_init
+Reason = operation not supported for this keytype
+
+# Invalid key: rejected when we try to init
+Verify = RSA-PSS-BAD
+Result = KEYOP_INIT_ERROR
+Function = rsa_pss_get_param
+Reason = invalid salt length
+
+# Invalid key: rejected when we try to init
+Verify = RSA-PSS-BAD2
+Result = KEYOP_INIT_ERROR
+Function = pkey_pss_init
+Reason = invalid salt length
+
+
+Title = EC tests
+
+Verify = P-256
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF1234"
+Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8
+
+# Digest too long
+Verify = P-256
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF12345"
+Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8
+Result = VERIFY_ERROR
+
+# Digest too short
+Verify = P-256
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF123"
+Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8
+Result = VERIFY_ERROR
+
+# Digest invalid
+Verify = P-256
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF1235"
+Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8
+Result = VERIFY_ERROR
+
+# Invalid signature
+Verify = P-256
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF1234"
+Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec7
+Result = VERIFY_ERROR
+
+# Garbage after signature
+Verify = P-256
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF1234"
+Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec800
+Result = VERIFY_ERROR
+
+# BER signature
+Verify = P-256
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF1234"
+Output = 3080022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec80000
+Result = VERIFY_ERROR
+
+Verify = P-256-PUBLIC
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF1234"
+Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8
+
+Derive=P-256
+PeerKey=P-256-Peer-PUBLIC
+SharedSecret=E3CC07DFBDDE76A1139811DB9FF5FAF9D17EF39944F1E77D1F6A208524BF7B1B
+
+Derive=P-256-Peer
+PeerKey=P-256-PUBLIC
+SharedSecret=E3CC07DFBDDE76A1139811DB9FF5FAF9D17EF39944F1E77D1F6A208524BF7B1B
+
+Title = DSA tests
+
+Verify = DSA-1024
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF1234"
+Output = 302d021500942b8c5850e05b59e24495116b1e8559e51b610e0214237aedf272d91f2397f63c9fc8790e1a6cde5d87
+
+Verify = DSA-1024-PUBLIC
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF1234"
+Output = 302d021500942b8c5850e05b59e24495116b1e8559e51b610e0214237aedf272d91f2397f63c9fc8790e1a6cde5d87
+
+# Modified signature
+Verify = DSA-1024-PUBLIC
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF1234"
+Output = 302d021500942b8c5850e05b59e24495116b1e8559e51b610e0214237aedf272d91f2397f63c9fc8790e1a6cde5d88
+Result = VERIFY_ERROR
+
+# Digest too short
+Verify = DSA-1024-PUBLIC
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF123"
+Output = 302d021500942b8c5850e05b59e24495116b1e8559e51b610e0214237aedf272d91f2397f63c9fc8790e1a6cde5d87
+Result = VERIFY_ERROR
+
+# Digest too long
+Verify = DSA-1024-PUBLIC
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF12345"
+Output = 302d021500942b8c5850e05b59e24495116b1e8559e51b610e0214237aedf272d91f2397f63c9fc8790e1a6cde5d87
+Result = VERIFY_ERROR
+
+# Garbage after signature
+Verify = DSA-1024-PUBLIC
+Input = "0123456789ABCDEF1234"
+Output = 302d021500942b8c5850e05b59e24495116b1e8559e51b610e0214237aedf272d91f2397f63c9fc8790e1a6cde5d8700
+Result = VERIFY_ERROR
+
+# Invalid tag
+Verify = DSA-1024-PUBLIC
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF1234"
+Output = 312d021500942b8c5850e05b59e24495116b1e8559e51b610e0214237aedf272d91f2397f63c9fc8790e1a6cde5d87
+Result = VERIFY_ERROR
+
+# BER signature
+Verify = DSA-1024-PUBLIC
+Ctrl = digest:SHA1
+Input = "0123456789ABCDEF1234"
+Output = 3080021500942b8c5850e05b59e24495116b1e8559e51b610e0214237aedf272d91f2397f63c9fc8790e1a6cde5d870000
+Result = VERIFY_ERROR
+
+Title = X25519 test vectors (from RFC7748 6.1)
+
+PrivateKey=Alice-25519
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwBQYDK2VuBCIEIHcHbQpzGKV9PBbBclGyZkXfTC+H68CZKrF3+6UduSwq
+-----END PRIVATE KEY-----
+
+PublicKey=Alice-25519-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MCowBQYDK2VuAyEAhSDwCYkwp1R0i33ctD73Wg2/Og0mOBr066SpjqqbTmo=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = Alice-25519:Alice-25519-PUBLIC
+
+PrivateKey=Bob-25519
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwBQYDK2VuBCIEIF2rCH5iSopLeeF/i4OADuZvO7EpJhi2/Rwviyf/iODr
+-----END PRIVATE KEY-----
+
+PublicKey=Bob-25519-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MCowBQYDK2VuAyEA3p7bfXt9wbTTW2HC7OQ1Nz+DQ8hbeGdNrfx+FG+IK08=
+-----END PUBLIC KEY-----
+
+#Raw versions of the same keys as above
+
+PrivateKeyRaw=Alice-25519-Raw:X25519:77076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c2a
+
+PublicKeyRaw=Alice-25519-PUBLIC-Raw:X25519:8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a
+
+PrivPubKeyPair = Alice-25519-Raw:Alice-25519-PUBLIC-Raw
+
+PrivateKeyRaw=Bob-25519-Raw:X25519:5dab087e624a8a4b79e17f8b83800ee66f3bb1292618b6fd1c2f8b27ff88e0eb
+
+PublicKeyRaw=Bob-25519-PUBLIC-Raw:X25519:de9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882b4f
+
+PrivPubKeyPair = Bob-25519:Bob-25519-PUBLIC
+
+PrivPubKeyPair = Bob-25519-Raw:Bob-25519-PUBLIC-Raw
+
+Derive=Alice-25519
+PeerKey=Bob-25519-PUBLIC
+SharedSecret=4A5D9D5BA4CE2DE1728E3BF480350F25E07E21C947D19E3376F09B3C1E161742
+
+Derive=Bob-25519
+PeerKey=Alice-25519-PUBLIC
+SharedSecret=4A5D9D5BA4CE2DE1728E3BF480350F25E07E21C947D19E3376F09B3C1E161742
+
+Derive=Alice-25519-Raw
+PeerKey=Bob-25519-PUBLIC-Raw
+SharedSecret=4A5D9D5BA4CE2DE1728E3BF480350F25E07E21C947D19E3376F09B3C1E161742
+
+Derive=Bob-25519-Raw
+PeerKey=Alice-25519-PUBLIC-Raw
+SharedSecret=4A5D9D5BA4CE2DE1728E3BF480350F25E07E21C947D19E3376F09B3C1E161742
+
+# Illegal sign/verify operations with X25519 key
+
+Sign=Alice-25519
+Result = KEYOP_INIT_ERROR
+Function = EVP_PKEY_sign_init
+Reason = operation not supported for this keytype
+
+Verify=Alice-25519
+Result = KEYOP_INIT_ERROR
+Function = EVP_PKEY_verify_init
+Reason = operation not supported for this keytype
+
+Title = X448 test vectors (from RFC7748 6.2)
+
+PrivateKey=Alice-448
+-----BEGIN PRIVATE KEY-----
+MEYCAQAwBQYDK2VvBDoEOJqPSSXRUZ9Xdc9GsEtYANTunui66LxVZdSYwo3Zybr1
+dKlBl0SJc5EAY4Km8SerHZrC2MClmHJr
+-----END PRIVATE KEY-----
+
+PublicKey=Alice-448-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEIwBQYDK2VvAzkAmwj3zDG34+Z9ItWuoSEHSic70rg94Jxj+qc9LCLF2bvINmRy
+QdlT1AxbEtqIEg1TF3+A5TLEH6A=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = Alice-448:Alice-448-PUBLIC
+
+PrivateKey=Bob-448
+-----BEGIN PRIVATE KEY-----
+MEYCAQAwBQYDK2VvBDoEOBwwanrCoOLgmQspRHDLoznmRTdysHWBHY+tDR1pJ8Eg
+u17olysNPiE3TJySGwnRsDZvELZRc5kt
+-----END PRIVATE KEY-----
+
+PublicKey=Bob-448-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEIwBQYDK2VvAzkAPreoKbDNIPW8/AtZm2/sz22kYnEHvbDU80W0MCfYuXL8PjT7
+QjKhPKcG3LV67D2uB73BxnvzNgk=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = Bob-448:Bob-448-PUBLIC
+
+#Raw versions of the same keys as above
+
+PrivateKeyRaw=Alice-448-Raw:X448:9a8f4925d1519f5775cf46b04b5800d4ee9ee8bae8bc5565d498c28dd9c9baf574a9419744897391006382a6f127ab1d9ac2d8c0a598726b
+
+PublicKeyRaw=Alice-448-PUBLIC-Raw:X448:9b08f7cc31b7e3e67d22d5aea121074a273bd2b83de09c63faa73d2c22c5d9bbc836647241d953d40c5b12da88120d53177f80e532c41fa0
+
+PrivPubKeyPair = Alice-448-Raw:Alice-448-PUBLIC-Raw
+
+PrivateKeyRaw=Bob-448-Raw:X448:1c306a7ac2a0e2e0990b294470cba339e6453772b075811d8fad0d1d6927c120bb5ee8972b0d3e21374c9c921b09d1b0366f10b65173992d
+
+PublicKeyRaw=Bob-448-PUBLIC-Raw:X448:3eb7a829b0cd20f5bcfc0b599b6feccf6da4627107bdb0d4f345b43027d8b972fc3e34fb4232a13ca706dcb57aec3dae07bdc1c67bf33609
+
+PrivPubKeyPair = Bob-448-Raw:Bob-448-PUBLIC-Raw
+
+Derive=Alice-448
+PeerKey=Bob-448-PUBLIC
+SharedSecret=07fff4181ac6cc95ec1c16a94a0f74d12da232ce40a77552281d282bb60c0b56fd2464c335543936521c24403085d59a449a5037514a879d
+
+Derive=Bob-448
+PeerKey=Alice-448-PUBLIC
+SharedSecret=07fff4181ac6cc95ec1c16a94a0f74d12da232ce40a77552281d282bb60c0b56fd2464c335543936521c24403085d59a449a5037514a879d
+
+Derive=Alice-448-Raw
+PeerKey=Bob-448-PUBLIC-Raw
+SharedSecret=07fff4181ac6cc95ec1c16a94a0f74d12da232ce40a77552281d282bb60c0b56fd2464c335543936521c24403085d59a449a5037514a879d
+
+Derive=Bob-448-Raw
+PeerKey=Alice-448-PUBLIC-Raw
+SharedSecret=07fff4181ac6cc95ec1c16a94a0f74d12da232ce40a77552281d282bb60c0b56fd2464c335543936521c24403085d59a449a5037514a879d
+
+# Illegal sign/verify operations with X448 key
+
+Sign=Alice-448
+Result = KEYOP_INIT_ERROR
+Function = EVP_PKEY_sign_init
+Reason = operation not supported for this keytype
+
+Verify=Alice-448
+Result = KEYOP_INIT_ERROR
+Function = EVP_PKEY_verify_init
+Reason = operation not supported for this keytype
+
+
+# Additional RSA-PSS and RSA-OAEP tests converted from
+# ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1-vec.zip
+Title = RSA PSS/OAEP (from RSASecurity FTP)
+
+PublicKey=RSA-PSS-1
+-----BEGIN PUBLIC KEY-----
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQClbkoOcBAXWJpRh9x+qEHRVvLs
+DjatUqRN/rHmH3rZkdjFEFb/7bFitMDyg6EqiKOU3/Umq3KRy7MHzqv84LHf1c2V
+CAltWyuLbfXWce9jd8CSHLI8Jwpw4lmOb/idGfEFrMLT8Ms18pKA4Thrb2TE7yLh
+4fINDOjP+yJJvZohNwIDAQAB
+-----END PUBLIC KEY-----
+
+Verify=RSA-PSS-1
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=cd8b6538cb8e8de566b68bd067569dbf1ee2718e
+Output=9074308fb598e9701b2294388e52f971faac2b60a5145af185df5287b5ed2887e57ce7fd44dc8634e407c8e0e4360bc226f3ec227f9d9e54638e8d31f5051215df6ebb9c2f9579aa77598a38f914b5b9c1bd83c4e2f9f382a0d0aa3542ffee65984a601bc69eb28deb27dca12c82c2d4c3f66cd500f1ff2b994d8a4e30cbb33c
+
+Verify=RSA-PSS-1
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=e35befc17a1d160b9ce35fbd8eb16e7ee491d3fd
+Output=3ef7f46e831bf92b32274142a585ffcefbdca7b32ae90d10fb0f0c729984f04ef29a9df0780775ce43739b97838390db0a5505e63de927028d9d29b219ca2c4517832558a55d694a6d25b9dab66003c4cccd907802193be5170d26147d37b93590241be51c25055f47ef62752cfbe21418fafe98c22c4d4d47724fdb5669e843
+
+Verify=RSA-PSS-1
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=0652ec67bcee30f9d2699122b91c19abdba89f91
+Output=666026fba71bd3e7cf13157cc2c51a8e4aa684af9778f91849f34335d141c00154c4197621f9624a675b5abc22ee7d5baaffaae1c9baca2cc373b3f33e78e6143c395a91aa7faca664eb733afd14d8827259d99a7550faca501ef2b04e33c23aa51f4b9e8282efdb728cc0ab09405a91607c6369961bc8270d2d4f39fce612b1
+
+Verify=RSA-PSS-1
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=39c21c4cceda9c1adf839c744e1212a6437575ec
+Output=4609793b23e9d09362dc21bb47da0b4f3a7622649a47d464019b9aeafe53359c178c91cd58ba6bcb78be0346a7bc637f4b873d4bab38ee661f199634c547a1ad8442e03da015b136e543f7ab07c0c13e4225b8de8cce25d4f6eb8400f81f7e1833b7ee6e334d370964ca79fdb872b4d75223b5eeb08101591fb532d155a6de87
+
+Verify=RSA-PSS-1
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=36dae913b77bd17cae6e7b09453d24544cebb33c
+Output=1d2aad221ca4d31ddf13509239019398e3d14b32dc34dc5af4aeaea3c095af73479cf0a45e5629635a53a018377615b16cb9b13b3e09d671eb71e387b8545c5960da5a64776e768e82b2c93583bf104c3fdb23512b7b4e89f633dd0063a530db4524b01c3f384c09310e315a79dcd3d684022a7f31c865a664e316978b759fad
+
+Verify=RSA-PSS-1
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=45eef191f4f79c31fe5d2ede7e5098994e929d2d
+Output=2a34f6125e1f6b0bf971e84fbd41c632be8f2c2ace7de8b6926e31ff93e9af987fbc06e51e9be14f5198f91f3f953bd67da60a9df59764c3dc0fe08e1cbef0b75f868d10ad3fba749fef59fb6dac46a0d6e504369331586f58e4628f39aa278982543bc0eeb537dc61958019b394fb273f215858a0a01ac4d650b955c67f4c58
+
+PublicKey=RSA-PSS-2
+-----BEGIN PUBLIC KEY-----
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQHUDBvPl6aK5829invz40+hncyk
+73WkdFQ3X5RRTYj+0Ab7gp+EGf+H1jFdpoof86CTjpq7NGQBHDA62ZGZzwx8eotH
+fc6CnohE9iWxFeXpxKWc+PgRO2g0M2ov0mibRyy7Xlyr5nQ1DFm2wX4XaHT7Qvj8
+PRdqAX7cYf0ybEszyQIDAQAB
+-----END PUBLIC KEY-----
+
+Verify=RSA-PSS-2
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=5c81a3e2a658246628cd0ee8b00bb4c012bc9739
+Output=014c5ba5338328ccc6e7a90bf1c0ab3fd606ff4796d3c12e4b639ed9136a5fec6c16d8884bdd99cfdc521456b0742b736868cf90de099adb8d5ffd1deff39ba4007ab746cefdb22d7df0e225f54627dc65466131721b90af445363a8358b9f607642f78fab0ab0f43b7168d64bae70d8827848d8ef1e421c5754ddf42c2589b5b3
+
+Verify=RSA-PSS-2
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=27f71611446aa6eabf037f7dedeede3203244991
+Output=010991656cca182b7f29d2dbc007e7ae0fec158eb6759cb9c45c5ff87c7635dd46d150882f4de1e9ae65e7f7d9018f6836954a47c0a81a8a6b6f83f2944d6081b1aa7c759b254b2c34b691da67cc0226e20b2f18b42212761dcd4b908a62b371b5918c5742af4b537e296917674fb914194761621cc19a41f6fb953fbcbb649dea
+
+Verify=RSA-PSS-2
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=03ecc2c33e93f05fc7224fcc0d461356cb897217
+Output=007f0030018f53cdc71f23d03659fde54d4241f758a750b42f185f87578520c30742afd84359b6e6e8d3ed959dc6fe486bedc8e2cf001f63a7abe16256a1b84df0d249fc05d3194ce5f0912742dbbf80dd174f6c51f6bad7f16cf3364eba095a06267dc3793803ac7526aebe0a475d38b8c2247ab51c4898df7047dc6adf52c6c4
+
+Verify=RSA-PSS-2
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=246c727b4b9494849dddb068d582e179ac20999c
+Output=009cd2f4edbe23e12346ae8c76dd9ad3230a62076141f16c152ba18513a48ef6f010e0e37fd3df10a1ec629a0cb5a3b5d2893007298c30936a95903b6ba85555d9ec3673a06108fd62a2fda56d1ce2e85c4db6b24a81ca3b496c36d4fd06eb7c9166d8e94877c42bea622b3bfe9251fdc21d8d5371badad78a488214796335b40b
+
+Verify=RSA-PSS-2
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=e8617ca3ea66ce6a58ede2d11af8c3ba8a6ba912
+Output=00ec430824931ebd3baa43034dae98ba646b8c36013d1671c3cf1cf8260c374b19f8e1cc8d965012405e7e9bf7378612dfcc85fce12cda11f950bd0ba8876740436c1d2595a64a1b32efcfb74a21c873b3cc33aaf4e3dc3953de67f0674c0453b4fd9f604406d441b816098cb106fe3472bc251f815f59db2e4378a3addc181ecf
+
+Verify=RSA-PSS-2
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=7a6fdc1a4e434ecbc35d657ad49a2f4fafd43bc8
+Output=00475b1648f814a8dc0abdc37b5527f543b666bb6e39d30e5b49d3b876dccc58eac14e32a2d55c2616014456ad2f246fc8e3d560da3ddf379a1c0bd200f10221df078c219a151bc8d4ec9d2fc2564467811014ef15d8ea01c2ebbff8c2c8efab38096e55fcbe3285c7aa558851254faffa92c1c72b78758663ef4582843139d7a6
+
+PublicKey=RSA-PSS-3
+-----BEGIN PUBLIC KEY-----
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQLyRu9FHtPuu5oxAgDMJYWcBI5L
+55gwKZERLraM5ttnTigNoh/t7RrnSIDKUisY2ySThQEoJ8UV8ORmof+mkdmBcFdO
+nQ6tsIdYbKSJM9o8yVPZW9DtUN4Q3ctnNhB9bIMcf2Y+gzykwJfnAM4PuUX4j7hf
+6OWncxclZbkUpHGkQwIDAQAB
+-----END PUBLIC KEY-----
+
+Verify=RSA-PSS-3
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=3552be69dd74bdc56d2cf8c38ef7bafe269040fe
+Output=0088b135fb1794b6b96c4a3e678197f8cac52b64b2fe907d6f27de761124964a99a01a882740ecfaed6c01a47464bb05182313c01338a8cd097214cd68ca103bd57d3bc9e816213e61d784f182467abf8a01cf253e99a156eaa8e3e1f90e3c6e4e3aa2d83ed0345b89fafc9c26077c14b6ac51454fa26e446e3a2f153b2b16797f
+
+Verify=RSA-PSS-3
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=609143ff7240e55c062aba8b9e4426a781919bc9
+Output=02a5f0a858a0864a4f65017a7d69454f3f973a2999839b7bbc48bf78641169179556f595fa41f6ff18e286c2783079bc0910ee9cc34f49ba681124f923dfa88f426141a368a5f5a930c628c2c3c200e18a7644721a0cbec6dd3f6279bde3e8f2be5e2d4ee56f97e7ceaf33054be7042bd91a63bb09f897bd41e81197dee99b11af
+
+Verify=RSA-PSS-3
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=0afd22f879a9cda7c584f4135f8f1c961db114c0
+Output=0244bcd1c8c16955736c803be401272e18cb990811b14f72db964124d5fa760649cbb57afb8755dbb62bf51f466cf23a0a1607576e983d778fceffa92df7548aea8ea4ecad2c29dd9f95bc07fe91ecf8bee255bfe8762fd7690aa9bfa4fa0849ef728c2c42c4532364522df2ab7f9f8a03b63f7a499175828668f5ef5a29e3802c
+
+Verify=RSA-PSS-3
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=405dd56d395ef0f01b555c48f748cc32b210650b
+Output=0196f12a005b98129c8df13c4cb16f8aa887d3c40d96df3a88e7532ef39cd992f273abc370bc1be6f097cfebbf0118fd9ef4b927155f3df22b904d90702d1f7ba7a52bed8b8942f412cd7bd676c9d18e170391dcd345c06a730964b3f30bcce0bb20ba106f9ab0eeb39cf8a6607f75c0347f0af79f16afa081d2c92d1ee6f836b8
+
+Verify=RSA-PSS-3
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=a2c313b0440c8a0c47233b87f0a160c61af3eae7
+Output=021eca3ab4892264ec22411a752d92221076d4e01c0e6f0dde9afd26ba5acf6d739ef987545d16683e5674c9e70f1de649d7e61d48d0caeb4fb4d8b24fba84a6e3108fee7d0705973266ac524b4ad280f7ae17dc59d96d3351586b5a3bdb895d1e1f7820ac6135d8753480998382ba32b7349559608c38745290a85ef4e9f9bd83
+
+Verify=RSA-PSS-3
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=f1bf6ca7b4bbdbb6bf20a4bf55728725d177154a
+Output=012fafec862f56e9e92f60ab0c77824f4299a0ca734ed26e0644d5d222c7f0bde03964f8e70a5cb65ed44e44d56ae0edf1ff86ca032cc5dd4404dbb76ab854586c44eed8336d08d457ce6c03693b45c0f1efef93624b95b8ec169c616d20e5538ebc0b6737a6f82b4bc0570924fc6b35759a3348426279f8b3d7744e2d222426ce
+
+PublicKey=RSA-PSS-4
+-----BEGIN PUBLIC KEY-----
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQVK23iGRH7+b1fgNo8Gz1KwozcH
+YNFhzvEmuRvn+JxCG2Km7B2jwxHXXtUOCrX/8/0zisw6qKTnfuJjaay4G6kA+oP1
+MAz5u2xTrR3IoXi4FdtCNamp2gwG3k5hXqEnfOVZ6cEI3ljBSoGqd/Wm+NEzVJRJ
+iEjIuVlAdAvnv3w3BQIDAQAB
+-----END PUBLIC KEY-----
+
+Verify=RSA-PSS-4
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=f8b0abf70fec0bca74f0accbc24f75e6e90d3bfd
+Output=0323d5b7bf20ba4539289ae452ae4297080feff4518423ff4811a817837e7d82f1836cdfab54514ff0887bddeebf40bf99b047abc3ecfa6a37a3ef00f4a0c4a88aae0904b745c846c4107e8797723e8ac810d9e3d95dfa30ff4966f4d75d13768d20857f2b1406f264cfe75e27d7652f4b5ed3575f28a702f8c4ed9cf9b2d44948
+
+Verify=RSA-PSS-4
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=04a10944bfe11ab801e77889f3fd3d7f4ff0b629
+Output=049d0185845a264d28feb1e69edaec090609e8e46d93abb38371ce51f4aa65a599bdaaa81d24fba66a08a116cb644f3f1e653d95c89db8bbd5daac2709c8984000178410a7c6aa8667ddc38c741f710ec8665aa9052be929d4e3b16782c1662114c5414bb0353455c392fc28f3db59054b5f365c49e1d156f876ee10cb4fd70598
+
+Verify=RSA-PSS-4
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=ba01243db223eb97fb86d746c3148adaaa0ca344
+Output=03fbc410a2ced59500fb99f9e2af2781ada74e13145624602782e2994813eefca0519ecd253b855fb626a90d771eae028b0c47a199cbd9f8e3269734af4163599090713a3fa910fa0960652721432b971036a7181a2bc0cab43b0b598bc6217461d7db305ff7e954c5b5bb231c39e791af6bcfa76b147b081321f72641482a2aad
+
+Verify=RSA-PSS-4
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=934bb0d38d6836daec9de82a9648d4593da67cd2
+Output=0486644bc66bf75d28335a6179b10851f43f09bded9fac1af33252bb9953ba4298cd6466b27539a70adaa3f89b3db3c74ab635d122f4ee7ce557a61e59b82ffb786630e5f9db53c77d9a0c12fab5958d4c2ce7daa807cd89ba2cc7fcd02ff470ca67b229fcce814c852c73cc93bea35be68459ce478e9d4655d121c8472f371d4f
+
+Verify=RSA-PSS-4
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=ec35d81abd1cceac425a935758b683465c8bd879
+Output=022a80045353904cb30cbb542d7d4990421a6eec16a8029a8422adfd22d6aff8c4cc0294af110a0c067ec86a7d364134459bb1ae8ff836d5a8a2579840996b320b19f13a13fad378d931a65625dae2739f0c53670b35d9d3cbac08e733e4ec2b83af4b9196d63e7c4ff1ddeae2a122791a125bfea8deb0de8ccf1f4ffaf6e6fb0a
+
+Verify=RSA-PSS-4
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=72ce251d17b04dd3970d6ff1fbe3624899e9e941
+Output=00938dcb6d583046065f69c78da7a1f1757066a7fa75125a9d2929f0b79a60b627b082f11f5b196f28eb9daa6f21c05e5140f6aef1737d2023075c05ecf04a028c686a2ab3e7d5a0664f295ce12995e890908b6ad21f0839eb65b70393a7b5afd9871de0caa0cedec5b819626756209d13ab1e7bb9546a26ff37e9a51af9fd562e
+
+PublicKey=RSA-PSS-5
+-----BEGIN PUBLIC KEY-----
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQ0Q9mHymUD17TmqJglm3rR4Q2ed
+K2+yWz3jcPOsfBmRY5H9JftSfr+mpLTfRaF1nZlsS7Tr0YgoxE/FLQGRhxdAUl9H
+pLDMjaMl7YqmdrDQ9ibgp38HaSFwrKyAgvQvqn3HzRI+cw4xqHmFIEyry+ZnDUOi
+3Sst3vXgU5L8ITvFBwIDAQAB
+-----END PUBLIC KEY-----
+
+Verify=RSA-PSS-5
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=d98b7061943510bc3dd9162f7169aabdbdcd0222
+Output=0ba373f76e0921b70a8fbfe622f0bf77b28a3db98e361051c3d7cb92ad0452915a4de9c01722f6823eeb6adf7e0ca8290f5de3e549890ac2a3c5950ab217ba58590894952de96f8df111b2575215da6c161590c745be612476ee578ed384ab33e3ece97481a252f5c79a98b5532ae00cdd62f2ecc0cd1baefe80d80b962193ec1d
+
+Verify=RSA-PSS-5
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=7ae8e699f754988f4fd645e463302e49a2552072
+Output=08180de825e4b8b014a32da8ba761555921204f2f90d5f24b712908ff84f3e220ad17997c0dd6e706630ba3e84add4d5e7ab004e58074b549709565d43ad9e97b5a7a1a29e85b9f90f4aafcdf58321de8c5974ef9abf2d526f33c0f2f82e95d158ea6b81f1736db8d1af3d6ac6a83b32d18bae0ff1b2fe27de4c76ed8c7980a34e
+
+Verify=RSA-PSS-5
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=8d46c7c05534c1ba2cc7624500d48a4531604bff
+Output=05e0fdbdf6f756ef733185ccfa8ced2eb6d029d9d56e35561b5db8e70257ee6fd019d2f0bbf669fe9b9821e78df6d41e31608d58280f318ee34f559941c8df13287574bac000b7e58dc4f414ba49fb127f9d0f8936638c76e85356c994f79750f7fa3cf4fd482df75e3fb9978cd061f7abb17572e6e63e0bde12cbdcf18c68b979
+
+Verify=RSA-PSS-5
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=ee3de96783fd0a157c8b20bf5566124124dcfe65
+Output=0bc989853bc2ea86873271ce183a923ab65e8a53100e6df5d87a24c4194eb797813ee2a187c097dd872d591da60c568605dd7e742d5af4e33b11678ccb63903204a3d080b0902c89aba8868f009c0f1c0cb85810bbdd29121abb8471ff2d39e49fd92d56c655c8e037ad18fafbdc92c95863f7f61ea9efa28fea401369d19daea1
+
+Verify=RSA-PSS-5
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=1204df0b03c2724e2709c23fc71789a21b00ae4c
+Output=0aefa943b698b9609edf898ad22744ac28dc239497cea369cbbd84f65c95c0ad776b594740164b59a739c6ff7c2f07c7c077a86d95238fe51e1fcf33574a4ae0684b42a3f6bf677d91820ca89874467b2c23add77969c80717430d0efc1d3695892ce855cb7f7011630f4df26def8ddf36fc23905f57fa6243a485c770d5681fcd
+
+Verify=RSA-PSS-5
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=29926bc3280c841f601acd0d6f17ea38023eddbc
+Output=02802dccfa8dfaf5279bf0b4a29ba1b157611faeaaf419b8919d15941900c1339e7e92e6fae562c53e6cc8e84104b110bce03ad18525e3c49a0eadad5d3f28f244a8ed89edbafbb686277cfa8ae909714d6b28f4bf8e293aa04c41efe7c0a81266d5c061e2575be032aa464674ff71626219bd74cc45f0e7ed4e3ff96eee758e8f
+
+PublicKey=RSA-PSS-6
+-----BEGIN PUBLIC KEY-----
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgRZMoxz/YJ86DnEBsDny5P5t03UZ
+q5hZjReeF0mWWYBx9H06BFWRWNe+NzzxqlPwqm7wkDnlZ4wqTGOQBRTIxPiq7V3h
+Kl8QsJwxGvjA/7W3opfy78Y7jWsFEJMfC5jki/X8bsTnuNsf+usIw44CrbjwOkgi
+nJnpaUMfYcuMTcaY0QIDAQAB
+-----END PUBLIC KEY-----
+
+Verify=RSA-PSS-6
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=ab464e8cb65ae5fdea47a53fa84b234d6bfd52f6
+Output=04c0cfacec04e5badbece159a5a1103f69b3f32ba593cb4cc4b1b7ab455916a96a27cd2678ea0f46ba37f7fc9c86325f29733b389f1d97f43e7201c0f348fc45fe42892335362eee018b5b161f2f9393031225c713012a576bc88e23052489868d9010cbf033ecc568e8bc152bdc59d560e41291915d28565208e22aeec9ef85d1
+
+Verify=RSA-PSS-6
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=92d0bcae82b641f578f040f5151be8eda6d42299
+Output=0a2314250cf52b6e4e908de5b35646bcaa24361da8160fb0f9257590ab3ace42b0dc3e77ad2db7c203a20bd952fbb56b1567046ecfaa933d7b1000c3de9ff05b7d989ba46fd43bc4c2d0a3986b7ffa13471d37eb5b47d64707bd290cfd6a9f393ad08ec1e3bd71bb5792615035cdaf2d8929aed3be098379377e777ce79aaa4773
+
+Verify=RSA-PSS-6
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=3569bd8fd2e28f2443375efa94f186f6911ffc2b
+Output=086df6b500098c120f24ff8423f727d9c61a5c9007d3b6a31ce7cf8f3cbec1a26bb20e2bd4a046793299e03e37a21b40194fb045f90b18bf20a47992ccd799cf9c059c299c0526854954aade8a6ad9d97ec91a1145383f42468b231f4d72f23706d9853c3fa43ce8ace8bfe7484987a1ec6a16c8daf81f7c8bf42774707a9df456
+
+Verify=RSA-PSS-6
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=7abbb7b42de335730a0b641f1e314b6950b84f98
+Output=0b5b11ad549863ffa9c51a14a1106c2a72cc8b646e5c7262509786105a984776534ca9b54c1cc64bf2d5a44fd7e8a69db699d5ea52087a4748fd2abc1afed1e5d6f7c89025530bdaa2213d7e030fa55df6f34bcf1ce46d2edf4e3ae4f3b01891a068c9e3a44bbc43133edad6ecb9f35400c4252a5762d65744b99cb9f4c559329f
+
+Verify=RSA-PSS-6
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=55b7eb27be7a787a59eb7e5fac468db8917a7725
+Output=02d71fa9b53e4654fefb7f08385cf6b0ae3a817942ebf66c35ac67f0b069952a3ce9c7e1f1b02e480a9500836de5d64cdb7ecde04542f7a79988787e24c2ba05f5fd482c023ed5c30e04839dc44bed2a3a3a4fee01113c891a47d32eb8025c28cb050b5cdb576c70fe76ef523405c08417faf350b037a43c379339fcb18d3a356b
+
+Verify=RSA-PSS-6
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=de2fa0367ef49083ff89b9905d3fd646fcc12c38
+Output=0a40a16e2fe2b38d1df90546167cf9469c9e3c3681a3442b4b2c2f581deb385ce99fc6188bb02a841d56e76d301891e24560550fcc2a26b55f4ccb26d837d350a154bcaca8392d98fa67959e9727b78cad03269f56968fc56b68bd679926d83cc9cb215550645ccda31c760ff35888943d2d8a1d351e81e5d07b86182e751081ef
+
+PublicKey=RSA-PSS-7
+-----BEGIN PUBLIC KEY-----
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgTfJ2kpmyMQIuNon0MnXn4zLHq/B
+0v5IdG2UC3xO9d7hitEmR876oMSzGIsiHFFThnWbk/AgJLJauSQvg1fY8/1JZA7l
+5kPq9sZN7vpwiXJ8j/A5kzM5FcbvIb9ZdbblDRGLUQCOwz6fAaClRaEKg2pD3byp
+2LXF01SAItcGTqKaswIDAQAB
+-----END PUBLIC KEY-----
+
+Verify=RSA-PSS-7
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=8be4afbdd76bd8d142c5f4f46dba771ee5d6d29d
+Output=187f390723c8902591f0154bae6d4ecbffe067f0e8b795476ea4f4d51ccc810520bb3ca9bca7d0b1f2ea8a17d873fa27570acd642e3808561cb9e975ccfd80b23dc5771cdb3306a5f23159dacbd3aa2db93d46d766e09ed15d900ad897a8d274dc26b47e994a27e97e2268a766533ae4b5e42a2fcaf755c1c4794b294c60555823
+
+Verify=RSA-PSS-7
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=402140dc605b2f5c5ec0d15bce9f9ba8857fe117
+Output=10fd89768a60a67788abb5856a787c8561f3edcf9a83e898f7dc87ab8cce79429b43e56906941a886194f137e591fe7c339555361fbbe1f24feb2d4bcdb80601f3096bc9132deea60ae13082f44f9ad41cd628936a4d51176e42fc59cb76db815ce5ab4db99a104aafea68f5d330329ebf258d4ede16064bd1d00393d5e1570eb8
+
+Verify=RSA-PSS-7
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=3e885205892ff2b6b37c2c4eb486c4bf2f9e7f20
+Output=2b31fde99859b977aa09586d8e274662b25a2a640640b457f594051cb1e7f7a911865455242926cf88fe80dfa3a75ba9689844a11e634a82b075afbd69c12a0df9d25f84ad4945df3dc8fe90c3cefdf26e95f0534304b5bdba20d3e5640a2ebfb898aac35ae40f26fce5563c2f9f24f3042af76f3c7072d687bbfb959a88460af1
+
+Verify=RSA-PSS-7
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=1fc2201d0c442a4736cd8b2cd00c959c47a3bf42
+Output=32c7ca38ff26949a15000c4ba04b2b13b35a3810e568184d7ecabaa166b7ffabddf2b6cf4ba07124923790f2e5b1a5be040aea36fe132ec130e1f10567982d17ac3e89b8d26c3094034e762d2e031264f01170beecb3d1439e05846f25458367a7d9c02060444672671e64e877864559ca19b2074d588a281b5804d23772fbbe19
+
+Verify=RSA-PSS-7
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=e4351b66819e5a31501f89acc7faf57030e9aac5
+Output=07eb651d75f1b52bc263b2e198336e99fbebc4f332049a922a10815607ee2d989db3a4495b7dccd38f58a211fb7e193171a3d891132437ebca44f318b280509e52b5fa98fcce8205d9697c8ee4b7ff59d4c59c79038a1970bd2a0d451ecdc5ef11d9979c9d35f8c70a6163717607890d586a7c6dc01c79f86a8f28e85235f8c2f1
+
+Verify=RSA-PSS-7
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=49f6cc58365e514e1a3f301f4de16f9fb5347ff2
+Output=18da3cdcfe79bfb77fd9c32f377ad399146f0a8e810620233271a6e3ed3248903f5cdc92dc79b55d3e11615aa056a795853792a3998c349ca5c457e8ca7d29d796aa24f83491709befcfb1510ea513c92829a3f00b104f655634f320752e130ec0ccf6754ff893db302932bb025eb60e87822598fc619e0e981737a9a4c4152d33
+
+PublicKey=RSA-PSS-8
+-----BEGIN PUBLIC KEY-----
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgUlTcKH7GFQ8FtNjHjFjJV32K+bu
+6JDV8lUJ5Pd4qOpvu7zfhd/2Tg2XIAOrNoH7um3UH9VBgpsuWC3p8qSk4KLQkAvv
+R1PbPO4O4Gx9+uix1TtZUyGPnM7qaVsIZo7eqtztlGOx15DV6/J+kRW0bK1NmiuO
++rBWGwgQNEc5raBzPwIDAQAB
+-----END PUBLIC KEY-----
+
+Verify=RSA-PSS-8
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=a1dd230d8ead860199b6277c2ecfe3d95f6d9160
+Output=0262ac254bfa77f3c1aca22c5179f8f040422b3c5bafd40a8f21cf0fa5a667ccd5993d42dbafb409c520e25fce2b1ee1e716577f1efa17f3da28052f40f0419b23106d7845aaf01125b698e7a4dfe92d3967bb00c4d0d35ba3552ab9a8b3eef07c7fecdbc5424ac4db1e20cb37d0b2744769940ea907e17fbbca673b20522380c5
+
+Verify=RSA-PSS-8
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=f6e68e53c602c5c65fa67b5aa6d786e5524b12ab
+Output=2707b9ad5115c58c94e932e8ec0a280f56339e44a1b58d4ddcff2f312e5f34dcfe39e89c6a94dcee86dbbdae5b79ba4e0819a9e7bfd9d982e7ee6c86ee68396e8b3a14c9c8f34b178eb741f9d3f121109bf5c8172fada2e768f9ea1433032c004a8aa07eb990000a48dc94c8bac8aabe2b09b1aa46c0a2aa0e12f63fbba775ba7e
+
+Verify=RSA-PSS-8
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=d6f9fcd3ae27f32bb2c7c93536782eba52af1f76
+Output=2ad20509d78cf26d1b6c406146086e4b0c91a91c2bd164c87b966b8faa42aa0ca446022323ba4b1a1b89706d7f4c3be57d7b69702d168ab5955ee290356b8c4a29ed467d547ec23cbadf286ccb5863c6679da467fc9324a151c7ec55aac6db4084f82726825cfe1aa421bc64049fb42f23148f9c25b2dc300437c38d428aa75f96
+
+Verify=RSA-PSS-8
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=7ff2a53ce2e2d900d468e498f230a5f5dd0020de
+Output=1e24e6e58628e5175044a9eb6d837d48af1260b0520e87327de7897ee4d5b9f0df0be3e09ed4dea8c1454ff3423bb08e1793245a9df8bf6ab3968c8eddc3b5328571c77f091cc578576912dfebd164b9de5454fe0be1c1f6385b328360ce67ec7a05f6e30eb45c17c48ac70041d2cab67f0a2ae7aafdcc8d245ea3442a6300ccc7
+
+Verify=RSA-PSS-8
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=4eb309f7022ba0b03bb78601b12931ec7c1be8d3
+Output=33341ba3576a130a50e2a5cf8679224388d5693f5accc235ac95add68e5eb1eec31666d0ca7a1cda6f70a1aa762c05752a51950cdb8af3c5379f18cfe6b5bc55a4648226a15e912ef19ad77adeea911d67cfefd69ba43fa4119135ff642117ba985a7e0100325e9519f1ca6a9216bda055b5785015291125e90dcd07a2ca9673ee
+
+Verify=RSA-PSS-8
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=65033bc2f67d6aba7d526acb873b8d9241e5e4d9
+Output=1ed1d848fb1edb44129bd9b354795af97a069a7a00d0151048593e0c72c3517ff9ff2a41d0cb5a0ac860d736a199704f7cb6a53986a88bbd8abcc0076a2ce847880031525d449da2ac78356374c536e343faa7cba42a5aaa6506087791c06a8e989335aed19bfab2d5e67e27fb0c2875af896c21b6e8e7309d04e4f6727e69463e
+
+PublicKey=RSA-PSS-9
+-----BEGIN PUBLIC KEY-----
+MIHfMA0GCSqGSIb3DQEBAQUAA4HNADCByQKBwQDmvWkqyWZFeQQD/dD1vri5v5Lt
+EAB/w2UEZBndBsBcW1svSOz5ieTOJpEJl5y7QLSgrSTSJIPR7jFa1MyxU0JoNSaR
+xST23Y5sKdIkzyRpc67IbFv2sUAahQ0bmtG7jLzsR7BvD4x/RdP8jzGSmcVDPdvC
+swU7R97S7NSkyu/WFIM9yLtiLzF+0Ha4BX/o3j+ESArV6D5KYZBKTySPs5cCc1fh
+0w5GMTmBXG/U/VrFuBcqRSMOy2MYoE8UVdhOWosCAwEAAQ==
+-----END PUBLIC KEY-----
+
+Verify=RSA-PSS-9
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=2715a49b8b0012cd7aee84c116446e6dfe3faec0
+Output=586107226c3ce013a7c8f04d1a6a2959bb4b8e205ba43a27b50f124111bc35ef589b039f5932187cb696d7d9a32c0c38300a5cdda4834b62d2eb240af33f79d13dfbf095bf599e0d9686948c1964747b67e89c9aba5cd85016236f566cc5802cb13ead51bc7ca6bef3b94dcbdbb1d570469771df0e00b1a8a06777472d2316279edae86474668d4e1efff95f1de61c6020da32ae92bbf16520fef3cf4d88f61121f24bbd9fe91b59caf1235b2a93ff81fc403addf4ebdea84934a9cdaf8e1a9e
+
+Verify=RSA-PSS-9
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=2dac956d53964748ac364d06595827c6b4f143cd
+Output=80b6d643255209f0a456763897ac9ed259d459b49c2887e5882ecb4434cfd66dd7e1699375381e51cd7f554f2c271704b399d42b4be2540a0eca61951f55267f7c2878c122842dadb28b01bd5f8c025f7e228418a673c03d6bc0c736d0a29546bd67f786d9d692ccea778d71d98c2063b7a71092187a4d35af108111d83e83eae46c46aa34277e06044589903788f1d5e7cee25fb485e92949118814d6f2c3ee361489016f327fb5bc517eb50470bffa1afa5f4ce9aa0ce5b8ee19bf5501b958
+
+Verify=RSA-PSS-9
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=28d98c46cccafbd3bc04e72f967a54bd3ea12298
+Output=484408f3898cd5f53483f80819efbf2708c34d27a8b2a6fae8b322f9240237f981817aca1846f1084daa6d7c0795f6e5bf1af59c38e1858437ce1f7ec419b98c8736adf6dd9a00b1806d2bd3ad0a73775e05f52dfef3a59ab4b08143f0df05cd1ad9d04bececa6daa4a2129803e200cbc77787caf4c1d0663a6c5987b605952019782caf2ec1426d68fb94ed1d4be816a7ed081b77e6ab330b3ffc073820fecde3727fcbe295ee61a050a343658637c3fd659cfb63736de32d9f90d3c2f63eca
+
+Verify=RSA-PSS-9
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=0866d2ff5a79f25ef668cd6f31b42dee421e4c0e
+Output=84ebeb481be59845b46468bafb471c0112e02b235d84b5d911cbd1926ee5074ae0424495cb20e82308b8ebb65f419a03fb40e72b78981d88aad143053685172c97b29c8b7bf0ae73b5b2263c403da0ed2f80ff7450af7828eb8b86f0028bd2a8b176a4d228cccea18394f238b09ff758cc00bc04301152355742f282b54e663a919e709d8da24ade5500a7b9aa50226e0ca52923e6c2d860ec50ff480fa57477e82b0565f4379f79c772d5c2da80af9fbf325ece6fc20b00961614bee89a183e
+
+Verify=RSA-PSS-9
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=6a5b4be4cd36cc97dfde9995efbf8f097a4a991a
+Output=82102df8cb91e7179919a04d26d335d64fbc2f872c44833943241de8454810274cdf3db5f42d423db152af7135f701420e39b494a67cbfd19f9119da233a23da5c6439b5ba0d2bc373eee3507001378d4a4073856b7fe2aba0b5ee93b27f4afec7d4d120921c83f606765b02c19e4d6a1a3b95fa4c422951be4f52131077ef17179729cddfbdb56950dbaceefe78cb16640a099ea56d24389eef10f8fecb31ba3ea3b227c0a86698bb89e3e9363905bf22777b2a3aa521b65b4cef76d83bde4c
+
+Verify=RSA-PSS-9
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=b9dfd1df76a461c51e6576c6c8ed0a923d1c50e7
+Output=a7fdb0d259165ca2c88d00bbf1028a867d337699d061193b17a9648e14ccbbaadeacaacdec815e7571294ebb8a117af205fa078b47b0712c199e3ad05135c504c24b81705115740802487992ffd511d4afc6b854491eb3f0dd523139542ff15c3101ee85543517c6a3c79417c67e2dd9aa741e9a29b06dcb593c2336b3670ae3afbac7c3e76e215473e866e338ca244de00b62624d6b9426822ceae9f8cc460895f41250073fd45c5a1e7b425c204a423a699159f6903e710b37a7bb2bc8049f
+
+PublicKey=RSA-PSS-10
+-----BEGIN PUBLIC KEY-----
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApd2GesTLAvkLlFfUjBSn
+cO+ZHFbDnA7GX9Ea+ok3zqV7m+esc7RcABdhW4LWIuMYdTtgJ8D9FXvhL4CQ/uKn
+rc0O73WfiLpJl8ekLVjJqhLLma4AH+UhwTu1QxRFqNWuT15MfpSKwifTYEBx8g5X
+fpBfvrFd+vBtHeWuYlPWOmohILMaXaXavJVQYA4g8n03OeJieSX+o8xQnyHf8E5u
+6kVJxUDWgJ/5MH7t6R//WHM9g4WiN9bTcFoz45GQCZIHDfet8TV89+NwDONmfeg/
+F7jfF3jbOB3OCctK0FilEQAac4GY7ifPVaE7dUU5kGWC7IsXS9WNXR89dnxhNyGu
+BQIDAQAB
+-----END PUBLIC KEY-----
+
+Verify=RSA-PSS-10
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=9596bb630cf6a8d4ea4600422b9eba8b13675dd4
+Output=82c2b160093b8aa3c0f7522b19f87354066c77847abf2a9fce542d0e84e920c5afb49ffdfdace16560ee94a1369601148ebad7a0e151cf16331791a5727d05f21e74e7eb811440206935d744765a15e79f015cb66c532c87a6a05961c8bfad741a9a6657022894393e7223739796c02a77455d0f555b0ec01ddf259b6207fd0fd57614cef1a5573baaff4ec00069951659b85f24300a25160ca8522dc6e6727e57d019d7e63629b8fe5e89e25cc15beb3a647577559299280b9b28f79b0409000be25bbd96408ba3b43cc486184dd1c8e62553fa1af4040f60663de7f5e49c04388e257f1ce89c95dab48a315d9b66b1b7628233876ff2385230d070d07e1666
+
+Verify=RSA-PSS-10
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=b503319399277fd6c1c8f1033cbf04199ea21716
+Output=14ae35d9dd06ba92f7f3b897978aed7cd4bf5ff0b585a40bd46ce1b42cd2703053bb9044d64e813d8f96db2dd7007d10118f6f8f8496097ad75e1ff692341b2892ad55a633a1c55e7f0a0ad59a0e203a5b8278aec54dd8622e2831d87174f8caff43ee6c46445345d84a59659bfb92ecd4c818668695f34706f66828a89959637f2bf3e3251c24bdba4d4b7649da0022218b119c84e79a6527ec5b8a5f861c159952e23ec05e1e717346faefe8b1686825bd2b262fb2531066c0de09acde2e4231690728b5d85e115a2f6b92b79c25abc9bd9399ff8bcf825a52ea1f56ea76dd26f43baafa18bfa92a504cbd35699e26d1dcc5a2887385f3c63232f06f3244c3
+
+Verify=RSA-PSS-10
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=50aaede8536b2c307208b275a67ae2df196c7628
+Output=6e3e4d7b6b15d2fb46013b8900aa5bbb3939cf2c095717987042026ee62c74c54cffd5d7d57efbbf950a0f5c574fa09d3fc1c9f513b05b4ff50dd8df7edfa20102854c35e592180119a70ce5b085182aa02d9ea2aa90d1df03f2daae885ba2f5d05afdac97476f06b93b5bc94a1a80aa9116c4d615f333b098892b25fface266f5db5a5a3bcc10a824ed55aad35b727834fb8c07da28fcf416a5d9b2224f1f8b442b36f91e456fdea2d7cfe3367268de0307a4c74e924159ed33393d5e0655531c77327b89821bdedf880161c78cd4196b5419f7acc3f13e5ebf161b6e7c6724716ca33b85c2e25640192ac2859651d50bde7eb976e51cec828b98b6563b86bb
+
+Verify=RSA-PSS-10
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=aa0b72b8b371ddd10c8ae474425ccccf8842a294
+Output=34047ff96c4dc0dc90b2d4ff59a1a361a4754b255d2ee0af7d8bf87c9bc9e7ddeede33934c63ca1c0e3d262cb145ef932a1f2c0a997aa6a34f8eaee7477d82ccf09095a6b8acad38d4eec9fb7eab7ad02da1d11d8e54c1825e55bf58c2a23234b902be124f9e9038a8f68fa45dab72f66e0945bf1d8bacc9044c6f07098c9fcec58a3aab100c805178155f030a124c450e5acbda47d0e4f10b80a23f803e774d023b0015c20b9f9bbe7c91296338d5ecb471cafb032007b67a60be5f69504a9f01abb3cb467b260e2bce860be8d95bf92c0c8e1496ed1e528593a4abb6df462dde8a0968dffe4683116857a232f5ebf6c85be238745ad0f38f767a5fdbf486fb
+
+Verify=RSA-PSS-10
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=fad3902c9750622a2bc672622c48270cc57d3ea8
+Output=7e0935ea18f4d6c1d17ce82eb2b3836c55b384589ce19dfe743363ac9948d1f346b7bfddfe92efd78adb21faefc89ade42b10f374003fe122e67429a1cb8cbd1f8d9014564c44d120116f4990f1a6e38774c194bd1b8213286b077b0499d2e7b3f434ab12289c556684deed78131934bb3dd6537236f7c6f3dcb09d476be07721e37e1ceed9b2f7b406887bd53157305e1c8b4f84d733bc1e186fe06cc59b6edb8f4bd7ffefdf4f7ba9cfb9d570689b5a1a4109a746a690893db3799255a0cb9215d2d1cd490590e952e8c8786aa0011265252470c041dfbc3eec7c3cbf71c24869d115c0cb4a956f56d530b80ab589acfefc690751ddf36e8d383f83cedd2cc
+
+Verify=RSA-PSS-10
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_mgf1_md:sha1
+Input=122196deb5d122bd8c6fc781ff6924d7c695aade
+Output=6d3b5b87f67ea657af21f75441977d2180f91b2c5f692de82955696a686730d9b9778d970758ccb26071c2209ffbd6125be2e96ea81b67cb9b9308239fda17f7b2b64ecda096b6b935640a5a1cb42a9155b1c9ef7a633a02c59f0d6ee59b852c43b35029e73c940ff0410e8f114eed46bbd0fae165e42be2528a401c3b28fd818ef3232dca9f4d2a0f5166ec59c42396d6c11dbc1215a56fa17169db9575343ef34f9de32a49cdc3174922f229c23e18e45df9353119ec4319cedce7a17c64088c1f6f52be29634100b3919d38f3d1ed94e6891e66a73b8fb849f5874df59459e298c7bbce2eee782a195aa66fe2d0732b25e595f57d3e061b1fc3e4063bf98f
+
+PrivateKey=RSA-OAEP-1
+-----BEGIN PRIVATE KEY-----
+MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKizsoSvjrULOHA0
+qGDxRsSRnzGHY81sVZjIrkgRoeCrxMfgsILWk6Xn/O1nXPRmhRJ3LAy8ZKdCxsYw
+9TPIzHL2KugzxAvyWELphLt4vb+XwBB9Vb22YvXE4Pq5hFy1FI73OS3Tqv+Trh5r
+Znuz1CR2FtT1uhDUz9Im3ojTnxb7AgMBAAECgYBTM5z9t5/IRmplXHMWrKhcVf2P
+bdiY/a8RlRfvT1Lo/Y4ljfk/7hgPoOSrKWk82DsVKlU9SsTRgSuLn6WvDn9V/nME
+30FXCSbzMR8VxNZacyxIMRbuPT0tCvNUmtm/fL+3itiE+E1b6wRyTcc2mzHe830M
+9Tnpz83T3mU3KerV0QJBANMnN+cmf/4TQbLVwNFQqBtYb7MTK+0vjVJihkqcufMK
+84vkSFmNQToXLvuALCGs8cEcUgwvJqRx3K0hLqx8o50CQQDMiFPR1U2mMPrABPRx
+8oHHuJgtgiSkkO2+sz0+PVzJPEdlcD0d15FkLx8Rag3YUr4kGbKvcr/poDDoYLAo
+i113AkAOEr8XGOnO9VmbocOIL+gEapCHTu/OjyzMIOTydB+wozo4SK7JyTBfvsvS
+12gZln1GcazGQx5AN5aNs3h45pXBAkEAlSl7D5Wi+mfQBwfWCd/U/AXIna/C721u
+pVvsdx6jM3NNklHnkILs2oZu/vE8RZ4aYxOGt+NUyJn18RLKhdcVgwJAT0VsUCST
+vcDtKrdWo6btTWc1Kml9QhbpMhKxJ6Y9VBHOb6mNXb79cyY+NygUJ0OBgWbtfdY2
+h90qjKHS9PvY4Q==
+-----END PRIVATE KEY-----
+
+Decrypt=RSA-OAEP-1
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=354fe67b4a126d5d35fe36c777791a3f7ba13def484e2d3908aff722fad468fb21696de95d0be911c2d3174f8afcc201035f7b6d8e69402de5451618c21a535fa9d7bfc5b8dd9fc243f8cf927db31322d6e881eaa91a996170e657a05a266426d98c88003f8477c1227094a0d9fa1e8c4024309ce1ecccb5210035d47ac72e8a
+Output=6628194e12073db03ba94cda9ef9532397d50dba79b987004afefe34
+
+Decrypt=RSA-OAEP-1
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=640db1acc58e0568fe5407e5f9b701dff8c3c91e716c536fc7fcec6cb5b71c1165988d4a279e1577d730fc7a29932e3f00c81515236d8d8e31017a7a09df4352d904cdeb79aa583adcc31ea698a4c05283daba9089be5491f67c1a4ee48dc74bbbe6643aef846679b4cb395a352d5ed115912df696ffe0702932946d71492b44
+Output=750c4047f547e8e41411856523298ac9bae245efaf1397fbe56f9dd5
+
+Decrypt=RSA-OAEP-1
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=423736ed035f6026af276c35c0b3741b365e5f76ca091b4e8c29e2f0befee603595aa8322d602d2e625e95eb81b2f1c9724e822eca76db8618cf09c5343503a4360835b5903bc637e3879fb05e0ef32685d5aec5067cd7cc96fe4b2670b6eac3066b1fcf5686b68589aafb7d629b02d8f8625ca3833624d4800fb081b1cf94eb
+Output=d94ae0832e6445ce42331cb06d531a82b1db4baad30f746dc916df24d4e3c2451fff59a6423eb0e1d02d4fe646cf699dfd818c6e97b051
+
+Decrypt=RSA-OAEP-1
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=45ead4ca551e662c9800f1aca8283b0525e6abae30be4b4aba762fa40fd3d38e22abefc69794f6ebbbc05ddbb11216247d2f412fd0fba87c6e3acd888813646fd0e48e785204f9c3f73d6d8239562722dddd8771fec48b83a31ee6f592c4cfd4bc88174f3b13a112aae3b9f7b80e0fc6f7255ba880dc7d8021e22ad6a85f0755
+Output=52e650d98e7f2a048b4f86852153b97e01dd316f346a19f67a85
+
+Decrypt=RSA-OAEP-1
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=36f6e34d94a8d34daacba33a2139d00ad85a9345a86051e73071620056b920e219005855a213a0f23897cdcd731b45257c777fe908202befdd0b58386b1244ea0cf539a05d5d10329da44e13030fd760dcd644cfef2094d1910d3f433e1c7c6dd18bc1f2df7f643d662fb9dd37ead9059190f4fa66ca39e869c4eb449cbdc439
+Output=8da89fd9e5f974a29feffb462b49180f6cf9e802
+
+Decrypt=RSA-OAEP-1
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=42cee2617b1ecea4db3f4829386fbd61dafbf038e180d837c96366df24c097b4ab0fac6bdf590d821c9f10642e681ad05b8d78b378c0f46ce2fad63f74e0ad3df06b075d7eb5f5636f8d403b9059ca761b5c62bb52aa45002ea70baace08ded243b9d8cbd62a68ade265832b56564e43a6fa42ed199a099769742df1539e8255
+Output=26521050844271
+
+PrivateKey=RSA-OAEP-2
+-----BEGIN PRIVATE KEY-----
+MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAZR8f86QQl9HJ55w
+hR8l1eYjFv6KHfGTcePmKOJgVD5JAe9ggfaMC4FBGQ0q6Nq6fRJQ7G22NulE7Dci
+h3x8HQpn8UsWlMXwN5RRpD5Joy3eg2cLc9qRocmbwjtDamAFXGEPC6+ZwaB5VluV
+o/FSZjLR1Npg8g7aJeZTxPACdm9FAgMBAAECgYAII/IPrbXaiQiKnQCJPiH6ShsR
++8k8ZKO+C6rql/s7k8P/cTcEwZyWPB0Qeq6ZBUc5954C4Ybehvh6bd7+ptjM0dPI
+Gke/pyVb4gYBpKSy8IoWe14nnXFbG0Vb3X6rJFlB2XaLms77PM2llS2jzuclJbRQ
+FmOo7hXJ6ZLZJGL+OQJBAVnb3gSjPvBvtgi4CxkPTT4ivME6yOSggQM6v6QW7bCz
+OKoItXMJ6lpSQOfcblQ3jGlBTDHZfdsfQG2zdpzEGkMCQQErZS8wQDs4tAmV/W/0
+GhrMitpwNzI2tyAtObLuMM+0bbCVEfbzB8xhzCFgbBinW4pi+CLfAxug3w2v1VBv
+VovXAkBDbvUI3nNlGcLaTFgNmMgst0UqP7XvrcO5x3iaG8ZYT3la3bvTJDnHRoZV
+LstsLDB6TTr39TnuwVckjHsx8aJVAkEBKxWonz37KzkHPnPwK90MGns3ndQ18Fzd
+4u/55GKUi3zsYu6QUNXggW4HhahWtJEI3LdfNoOHTRymMpoZATBm/wJAAnDbF9WR
+SwGNdhGLJDiac1Dsg2sAY6IXISNv2O222JtR5+64e2EbcTLLfqc1bCMVHB53UVB8
+eG2e4XlBcKjI6A==
+-----END PRIVATE KEY-----
+
+Decrypt=RSA-OAEP-2
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=0181af8922b9fcb4d79d92ebe19815992fc0c1439d8bcd491398a0f4ad3a329a5bd9385560db532683c8b7da04e4b12aed6aacdf471c34c9cda891addcc2df3456653aa6382e9ae59b54455257eb099d562bbe10453f2b6d13c59c02e10f1f8abb5da0d0570932dacf2d0901db729d0fefcc054e70968ea540c81b04bcaefe720e
+Output=8ff00caa605c702830634d9a6c3d42c652b58cf1d92fec570beee7
+
+Decrypt=RSA-OAEP-2
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=018759ff1df63b2792410562314416a8aeaf2ac634b46f940ab82d64dbf165eee33011da749d4bab6e2fcd18129c9e49277d8453112b429a222a8471b070993998e758861c4d3f6d749d91c4290d332c7a4ab3f7ea35ff3a07d497c955ff0ffc95006b62c6d296810d9bfab024196c7934012c2df978ef299aba239940cba10245
+Output=2d
+
+Decrypt=RSA-OAEP-2
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=018802bab04c60325e81c4962311f2be7c2adce93041a00719c88f957575f2c79f1b7bc8ced115c706b311c08a2d986ca3b6a9336b147c29c6f229409ddec651bd1fdd5a0b7f610c9937fdb4a3a762364b8b3206b4ea485fd098d08f63d4aa8bb2697d027b750c32d7f74eaf5180d2e9b66b17cb2fa55523bc280da10d14be2053
+Output=74fc88c51bc90f77af9d5e9a4a70133d4b4e0b34da3c37c7ef8e
+
+Decrypt=RSA-OAEP-2
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=00a4578cbc176318a638fba7d01df15746af44d4f6cd96d7e7c495cbf425b09c649d32bf886da48fbaf989a2117187cafb1fb580317690e3ccd446920b7af82b31db5804d87d01514acbfa9156e782f867f6bed9449e0e9a2c09bcecc6aa087636965e34b3ec766f2fe2e43018a2fddeb140616a0e9d82e5331024ee0652fc7641
+Output=a7eb2a5036931d27d4e891326d99692ffadda9bf7efd3e34e622c4adc085f721dfe885072c78a203b151739be540fa8c153a10f00a
+
+Decrypt=RSA-OAEP-2
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=00ebc5f5fda77cfdad3c83641a9025e77d72d8a6fb33a810f5950f8d74c73e8d931e8634d86ab1246256ae07b6005b71b7f2fb98351218331ce69b8ffbdc9da08bbc9c704f876deb9df9fc2ec065cad87f9090b07acc17aa7f997b27aca48806e897f771d95141fe4526d8a5301b678627efab707fd40fbebd6e792a25613e7aec
+Output=2ef2b066f854c33f3bdcbb5994a435e73d6c6c
+
+Decrypt=RSA-OAEP-2
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=010839ec20c27b9052e55befb9b77e6fc26e9075d7a54378c646abdf51e445bd5715de81789f56f1803d9170764a9e93cb78798694023ee7393ce04bc5d8f8c5a52c171d43837e3aca62f609eb0aa5ffb0960ef04198dd754f57f7fbe6abf765cf118b4ca443b23b5aab266f952326ac4581100644325f8b721acd5d04ff14ef3a
+Output=8a7fb344c8b6cb2cf2ef1f643f9a3218f6e19bba89c0
+
+PrivateKey=RSA-OAEP-3
+-----BEGIN PRIVATE KEY-----
+MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBArWP7AOahgcApNe2
+Ri+T5s3UkRYd3XT06BC0DjwWUgBqXCd7J3TBEwWky6taeO+lfheobfej+jb8Sx0i
+SfIux8LdakYyMqzOqQbWbr6AtXBLEHKdpvgzI0q7Xv3UopLL+tM7TTP6ehS4w5e1
+bjrNISA0KLd836M6bacGs9iw/EPpAgMBAAECgYAVtIpbVoOpRnDiO1cY+BT6DhP4
+UDj1BxEYLLphUQWB89IsfiMu+TfiLlUdaLhuL4yxqti+LkiPXffv0nnj9WjU6vNv
+gM9xQazmD8yRE/tsSoQf1Qu8fFEv/L7/IUh6qBHrPKjGIAU0aobehr+h2KlI/T80
+jCLqrfMzw85s4TII/QJBAb8B0hbXNZXPAnDCvreNQKDYRH0x2pGamD9+6ngbd9hf
+43Gz6Tc+e2khfTFQoC2JWN5/rZ1VUWCVi0RUEn4Ofq8CQQGNM5llgWbbOCmBbXsp
+VBZ1npyRmH9bLYrs1jsEtIvXsvzyKbt/im3Ii6E90uOa1VttGgYWBwj5cAvoC4/T
+dEznAkAGwKJJ0gpvLudciLSU1T9qrpmqQnyIwosWOnaUReXzkM9AwnT9bqYymlzn
+x84DohWDlu4qeEV4bgniiFqXKOTlAkEA0dJ8Kf7dkthsNI7dDMv6wU90bgUc4dGB
+HfNdYfLuHJfUvygEgC9kJxh7qOkKivRCQ7QHmwNEXmAuKfpRk+ZP6QJBAIyy91a9
+iUGx07dw5a0x7jc7KKzaaf+bb0D+V4ufGvuFg2+WJ9N6z/c8J3nmNLsmARwsj38z
+Ya4qnqZe1onjY5o=
+-----END PRIVATE KEY-----
+
+Decrypt=RSA-OAEP-3
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=026a0485d96aebd96b4382085099b962e6a2bdec3d90c8db625e14372de85e2d5b7baab65c8faf91bb5504fb495afce5c988b3f6a52e20e1d6cbd3566c5cd1f2b8318bb542cc0ea25c4aab9932afa20760eaddec784396a07ea0ef24d4e6f4d37e5052a7a31e146aa480a111bbe926401307e00f410033842b6d82fe5ce4dfae80
+Output=087820b569e8fa8d
+
+Decrypt=RSA-OAEP-3
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=024db89c7802989be0783847863084941bf209d761987e38f97cb5f6f1bc88da72a50b73ebaf11c879c4f95df37b850b8f65d7622e25b1b889e80fe80baca2069d6e0e1d829953fc459069de98ea9798b451e557e99abf8fe3d9ccf9096ebbf3e5255d3b4e1c6d2ecadf067a359eea86405acd47d5e165517ccafd47d6dbee4bf5
+Output=4653acaf171960b01f52a7be63a3ab21dc368ec43b50d82ec3781e04
+
+Decrypt=RSA-OAEP-3
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=0239bce681032441528877d6d1c8bb28aa3bc97f1df584563618995797683844ca86664732f4bed7a0aab083aaabfb7238f582e30958c2024e44e57043b97950fd543da977c90cdde5337d618442f99e60d7783ab59ce6dd9d69c47ad1e962bec22d05895cff8d3f64ed5261d92b2678510393484990ba3f7f06818ae6ffce8a3a
+Output=d94cd0e08fa404ed89
+
+Decrypt=RSA-OAEP-3
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=02994c62afd76f498ba1fd2cf642857fca81f4373cb08f1cbaee6f025c3b512b42c3e8779113476648039dbe0493f9246292fac28950600e7c0f32edf9c81b9dec45c3bde0cc8d8847590169907b7dc5991ceb29bb0714d613d96df0f12ec5d8d3507c8ee7ae78dd83f216fa61de100363aca48a7e914ae9f42ddfbe943b09d9a0
+Output=6cc641b6b61e6f963974dad23a9013284ef1
+
+Decrypt=RSA-OAEP-3
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=0162042ff6969592a6167031811a239834ce638abf54fec8b99478122afe2ee67f8c5b18b0339805bfdbc5a4e6720b37c59cfba942464c597ff532a119821545fd2e59b114e61daf71820529f5029cf524954327c34ec5e6f5ba7efcc4de943ab8ad4ed787b1454329f70db798a3a8f4d92f8274e2b2948ade627ce8ee33e43c60
+Output=df5151832b61f4f25891fb4172f328d2eddf8371ffcfdbe997939295f30eca6918017cfda1153bf7a6af87593223
+
+Decrypt=RSA-OAEP-3
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=00112051e75d064943bc4478075e43482fd59cee0679de6893eec3a943daa490b9691c93dfc0464b6623b9f3dbd3e70083264f034b374f74164e1a00763725e574744ba0b9db83434f31df96f6e2a26f6d8eba348bd4686c2238ac07c37aac3785d1c7eea2f819fd91491798ed8e9cef5e43b781b0e0276e37c43ff9492d005730
+Output=3c3bad893c544a6d520ab022319188c8d504b7a788b850903b85972eaa18552e1134a7ad6098826254ff7ab672b3d8eb3158fac6d4cbaef1
+
+PrivateKey=RSA-OAEP-4
+-----BEGIN PRIVATE KEY-----
+MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBBRJAtswABPpI0BNG
+ccB4x8jew7Pi8lvCVkRnM52ziFPQa4XupbLeNTv/QqwuRryX+uaslhjalTelyPVT
+weNXYlmR1hCNzXiF+zolQT9T78rZSMs1zZua6cHGdibRE9V93kxb6na7W7felsAN
+BzculoWm11z50jn6FI1wkxtfP7A5AgMBAAECgYAEEf/KO3yl6em+f+OKhRBeNTiW
+2wXFeWrs0qclFh6zZRyGKam4YrkE17DHs3+MtaHCtUABAYoAoessr+TuTpSSw0i8
+K+2rS5678GTo7/MiuQCfjuxlOQX0DfiKPNxJ1FZ/dWJ9QaymJBKbRqC3xpjl5l8r
+e6ECx0mhATW2VA0EAQJBAnRYwZ7BY2kZ5zbJryXWCaUbj1YdGca/aUPdHuGriko/
+IyEAvUC4jezGuiNVSLbveSoRyd6CPQp5IscJW266VwECQQIQ7pszq2FxbifSUb1G
+X0s1oaIy4toAkBwpS/IjUM5JDQmfZCtTdWEttjuh8gOGSSvwTTSzwivOuQnRNEG1
+O1E5AkA5+gKLgm6IwRIbdQqLJC+po1xbZr39H6Y308xIqEpPRXoZTncn5J97zG5a
+WkEmV/xHDHMi68N0Fu9FjDB6jAkBAkEBXZmoQZWUOXn6nhviw8G2n0MvRv0D5H1b
+77u/1rHRNx2D77Mwo+AglCsv7RFeXQK+JP2SyQGdHOzW3Uzx5UzImQJBAfC3AVFw
+s/XkIiO6MDAcQabYfLtw4wy308Z9JUc9sfbL8D4/kSbj6XloJ5qGWywrQmUkz8Uq
+aD0x7TDrmEvkEro=
+-----END PRIVATE KEY-----
+
+Decrypt=RSA-OAEP-4
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=04cce19614845e094152a3fe18e54e3330c44e5efbc64ae16886cb1869014cc5781b1f8f9e045384d0112a135ca0d12e9c88a8e4063416deaae3844f60d6e96fe155145f4525b9a34431ca3766180f70e15a5e5d8e8b1a516ff870609f13f896935ced188279a58ed13d07114277d75c6568607e0ab092fd803a223e4a8ee0b1a8
+Output=4a86609534ee434a6cbca3f7e962e76d455e3264c19f605f6e5ff6137c65c56d7fb344cd52bc93374f3d166c9f0c6f9c506bad19330972d2
+
+Decrypt=RSA-OAEP-4
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=0097b698c6165645b303486fbf5a2a4479c0ee85889b541a6f0b858d6b6597b13b854eb4f839af03399a80d79bda6578c841f90d645715b280d37143992dd186c80b949b775cae97370e4ec97443136c6da484e970ffdb1323a20847821d3b18381de13bb49aaea66530c4a4b8271f3eae172cd366e07e6636f1019d2a28aed15e
+Output=b0adc4f3fe11da59ce992773d9059943c03046497ee9d9f9a06df1166db46d98f58d27ec074c02eee6cbe2449c8b9fc5080c5c3f4433092512ec46aa793743c8
+
+Decrypt=RSA-OAEP-4
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=0301f935e9c47abcb48acbbe09895d9f5971af14839da4ff95417ee453d1fd77319072bb7297e1b55d7561cd9d1bb24c1a9a37c619864308242804879d86ebd001dce5183975e1506989b70e5a83434154d5cbfd6a24787e60eb0c658d2ac193302d1192c6e622d4a12ad4b53923bca246df31c6395e37702c6a78ae081fb9d065
+Output=bf6d42e701707b1d0206b0c8b45a1c72641ff12889219a82bdea965b5e79a96b0d0163ed9d578ec9ada20f2fbcf1ea3c4089d83419ba81b0c60f3606da99
+
+Decrypt=RSA-OAEP-4
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=02d110ad30afb727beb691dd0cf17d0af1a1e7fa0cc040ec1a4ba26a42c59d0a796a2e22c8f357ccc98b6519aceb682e945e62cb734614a529407cd452bee3e44fece8423cc19e55548b8b994b849c7ecde4933e76037e1d0ce44275b08710c68e430130b929730ed77e09b015642c5593f04e4ffb9410798102a8e96ffdfe11e4
+Output=fb2ef112f5e766eb94019297934794f7be2f6fc1c58e
+
+Decrypt=RSA-OAEP-4
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=00dbb8a7439d90efd919a377c54fae8fe11ec58c3b858362e23ad1b8a44310799066b99347aa525691d2adc58d9b06e34f288c170390c5f0e11c0aa3645959f18ee79e8f2be8d7ac5c23d061f18dd74b8c5f2a58fcb5eb0c54f99f01a83247568292536583340948d7a8c97c4acd1e98d1e29dc320e97a260532a8aa7a758a1ec2
+Output=28ccd447bb9e85166dabb9e5b7d1adadc4b9d39f204e96d5e440ce9ad928bc1c2284
+
+Decrypt=RSA-OAEP-4
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=00a5ffa4768c8bbecaee2db77e8f2eec99595933545520835e5ba7db9493d3e17cddefe6a5f567624471908db4e2d83a0fbee60608fc84049503b2234a07dc83b27b22847ad8920ff42f674ef79b76280b00233d2b51b8cb2703a9d42bfbc8250c96ec32c051e57f1b4ba528db89c37e4c54e27e6e64ac69635ae887d9541619a9
+Output=f22242751ec6b1
+
+PrivateKey=RSA-OAEP-5
+-----BEGIN PRIVATE KEY-----
+MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmMwggJfAgEAAoGBCq3z+cEl5diR8xrE
+SOmT3v5YD4ArRfnX8iulAh6cR1drWh5oAxup205tq+TZah1vPSZyaM/0CABfEY78
+rbmYiNHCNEZxZrKiuEmgWoicBgrA2gxfrotV8wm6YucDdC+gMm8tELARAhSJ/0l3
+cBkNiV/Tn1IpPDnv1zppi9q58Q7ZAgMBAAECgYECVutMunBn8tK+VA3N/0WCo2t9
+MdHJCZuyFLeYSEZqJo+A9YpJrATA42SJNKAgbARTfBmyNmQ6YIJzIUTfdfohdYj3
+lGgr6JFoJ23HJsXAy9uE0xu/JtCkOvSVcX99UorP7jQVYfb/PK4FxXj4Rw2WgvnA
+0HL59gaLVtWID2gr4sUCQQOw05YvbRdUnL/KESlDSNzw5+OfjCvGgk8hZLYG1oeG
+Da4eYyOTz+31EyKCKQaeL2DkrNfmM6Q2Bj+COF9ImTcHAkEC5MMuL1FyabcHIwnw
+DA4xNl984osja4KRLfI5q/OVcs8O1gSwKYLlNWTFLWoFOX3lwFKi/dwUHvcYmDY0
+auszHwJBAehLEZ0lFh+mewAlalvZtkXSsjLssFsBUYACmohiKtw/CbOurN5hYat8
+3iLCrSbneX31TgcsvTsmc4ALPkM429UCQQDrkKoaQBNbTOoHGXztyIGb4efL/yVH
+ZiEW9GWkqfSHqxLzuk/vE4IiZaZSl9mLe97ZNy4//oGjiz6WAP7QVXVPAkEBL3+B
+OPlAQGLrhaQpJFILOPW7iGoBlvSLuNzqYP2SzAJ/GOeBWKNKXF1fhgoPbAQHGn0B
+MSwGUGLx60i3nRyDyw==
+-----END PRIVATE KEY-----
+
+Decrypt=RSA-OAEP-5
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=036046a4a47d9ed3ba9a89139c105038eb7492b05a5d68bfd53accff4597f7a68651b47b4a4627d927e485eed7b4566420e8b409879e5d606eae251d22a5df799f7920bfc117b992572a53b1263146bcea03385cc5e853c9a101c8c3e1bda31a519807496c6cb5e5efb408823a352b8fa0661fb664efadd593deb99fff5ed000e5
+Output=af71a901e3a61d3132f0fc1fdb474f9ea6579257ffc24d164170145b3dbde8
+
+Decrypt=RSA-OAEP-5
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=03d6eb654edce615bc59f455265ed4e5a18223cbb9be4e4069b473804d5de96f54dcaaa603d049c5d94aa1470dfcd2254066b7c7b61ff1f6f6770e3215c51399fd4e34ec5082bc48f089840ad04354ae66dc0f1bd18e461a33cc1258b443a2837a6df26759aa2302334986f87380c9cc9d53be9f99605d2c9a97da7b0915a4a7ad
+Output=a3b844a08239a8ac41605af17a6cfda4d350136585903a417a79268760519a4b4ac3303ec73f0f87cfb32399
+
+Decrypt=RSA-OAEP-5
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=0770952181649f9f9f07ff626ff3a22c35c462443d905d456a9fd0bff43cac2ca7a9f554e9478b9acc3ac838b02040ffd3e1847de2e4253929f9dd9ee4044325a9b05cabb808b2ee840d34e15d105a3f1f7b27695a1a07a2d73fe08ecaaa3c9c9d4d5a89ff890d54727d7ae40c0ec1a8dd86165d8ee2c6368141016a48b55b6967
+Output=308b0ecbd2c76cb77fc6f70c5edd233fd2f20929d629f026953bb62a8f4a3a314bde195de85b5f816da2aab074d26cb6acddf323ae3b9c678ac3cf12fbdde7
+
+Decrypt=RSA-OAEP-5
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=0812b76768ebcb642d040258e5f4441a018521bd96687e6c5e899fcd6c17588ff59a82cc8ae03a4b45b31299af1788c329f7dcd285f8cf4ced82606b97612671a45bedca133442144d1617d114f802857f0f9d739751c57a3f9ee400912c61e2e6992be031a43dd48fa6ba14eef7c422b5edc4e7afa04fdd38f402d1c8bb719abf
+Output=15c5b9ee1185
+
+Decrypt=RSA-OAEP-5
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=07b60e14ec954bfd29e60d0047e789f51d57186c63589903306793ced3f68241c743529aba6a6374f92e19e0163efa33697e196f7661dfaaa47aac6bde5e51deb507c72c589a2ca1693d96b1460381249b2cdb9eac44769f2489c5d3d2f99f0ee3c7ee5bf64a5ac79c42bd433f149be8cb59548361640595513c97af7bc2509723
+Output=21026e6800c7fa728fcaaba0d196ae28d7a2ac4ffd8abce794f0985f60c8a6737277365d3fea11db8923a2029a
+
+Decrypt=RSA-OAEP-5
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=08c36d4dda33423b2ed6830d85f6411ba1dcf470a1fae0ebefee7c089f256cef74cb96ea69c38f60f39abee44129bcb4c92de7f797623b20074e3d9c2899701ed9071e1efa0bdd84d4c3e5130302d8f0240baba4b84a71cc032f2235a5ff0fae277c3e8f9112bef44c9ae20d175fc9a4058bfc930ba31b02e2e4f444483710f24a
+Output=541e37b68b6c8872b84c02
+
+PrivateKey=RSA-OAEP-6
+-----BEGIN PRIVATE KEY-----
+MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmMwggJfAgEAAoGBErF/ba0uzRn/RtwT
+94YPCeDgz7Z3s4pSWSMFzq8CLBZtuQ0ErCnjP33RLZ+vZuCBa7Y+rSZ8x9RsF8N7
+4hS8oqItcjpk5EQHQ2tvyWVymu/CVU83bNXc6mgpN4CmK/OdAClIWhYLu55dwJct
+IaUE9S5e4CiqQWMy9RCy6c/19yKvAgMBAAECgYECleyjVgYYNpVZzs0wOqnP2vwd
+nwaVnfdf/vkpqolpYbzRkNxpl+2n9ZY+ck0HtNwR8wZeWul9loNREigLkIS7FPKi
+Hr1OiJ1BucQTLsGVb8q4uy/tBXWISTZSLF/30zJhkEgk58re5OC7Ny0kV8944r0S
+hiKP+D8QcxzmPJDP8/kCQQSmzotzWN+mm9z3QmFwBa+1OF9fOliiTvdKIqjAXLfM
+OOvUzJ2anXiaYs0PYPDLlB00I8lpLvpP463/KQxHSaOLAkEEBMmoAzcf7bTFvjnz
+wAsAnl4Ipjvh5AA1zaylARzHAc9+68uZ8P/hfP0KS/e+/S3VNqyUbbeX/bxKvo8p
+NJuR7QJBA5Ycj3YKor1RVMeq/XciWzus0BOa57WUjqMxH8zYb7lcda+nZyhLmy3l
+WVcvFdjQRMfrg6G+X63yzDd8DYR1KUsCQQIhl+BmdCGWqrwD+i/utOcLFct4fWF6
+zTG7dce8I0rXBvfEjSGC0fD/nCKNz0GWe2wLptLArREKG4V4MewkXiyxAkEEAcTA
+xT1F29tenZbQ/s9Cdd8JdLxKBza0p0wyaQU++2hqziQG4iyeBY3bSuVAYnri/bCC
+Yejn5Ly8mU2q+jBcRQ==
+-----END PRIVATE KEY-----
+
+Decrypt=RSA-OAEP-6
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=0630eebcd2856c24f798806e41f9e67345eda9ceda386acc9facaea1eeed06ace583709718d9d169fadf414d5c76f92996833ef305b75b1e4b95f662a20faedc3bae0c4827a8bf8a88edbd57ec203a27a841f02e43a615bab1a8cac0701de34debdef62a088089b55ec36ea7522fd3ec8d06b6a073e6df833153bc0aefd93bd1a3
+Output=4046ca8baa3347ca27f49e0d81f9cc1d71be9ba517d4
+
+Decrypt=RSA-OAEP-6
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=0ebc37376173a4fd2f89cc55c2ca62b26b11d51c3c7ce49e8845f74e7607317c436bc8d23b9667dfeb9d087234b47bc6837175ae5c0559f6b81d7d22416d3e50f4ac533d8f0812f2db9e791fe9c775ac8b6ad0f535ad9ceb23a4a02014c58ab3f8d3161499a260f39348e714ae2a1d3443208fd8b722ccfdfb393e98011f99e63f
+Output=5cc72c60231df03b3d40f9b57931bc31109f972527f28b19e7480c7288cb3c92b22512214e4be6c914792ddabdf57faa8aa7
+
+Decrypt=RSA-OAEP-6
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=0a98bf1093619394436cf68d8f38e2f158fde8ea54f3435f239b8d06b8321844202476aeed96009492480ce3a8d705498c4c8c68f01501dc81db608f60087350c8c3b0bd2e9ef6a81458b7c801b89f2e4fe99d4900ba6a4b5e5a96d865dc676c7755928794130d6280a8160a190f2df3ea7cf9aa0271d88e9e6905ecf1c5152d65
+Output=b20e651303092f4bccb43070c0f86d23049362ed96642fc5632c27db4a52e3d831f2ab068b23b149879c002f6bf3feee97591112562c
+
+Decrypt=RSA-OAEP-6
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=008e7a67cacfb5c4e24bec7dee149117f19598ce8c45808fef88c608ff9cd6e695263b9a3c0ad4b8ba4c95238e96a8422b8535629c8d5382374479ad13fa39974b242f9a759eeaf9c83ad5a8ca18940a0162ba755876df263f4bd50c6525c56090267c1f0e09ce0899a0cf359e88120abd9bf893445b3cae77d3607359ae9a52f8
+Output=684e3038c5c041f7
+
+Decrypt=RSA-OAEP-6
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=00003474416c7b68bdf961c385737944d7f1f40cb395343c693cc0b4fe63b31fedf1eaeeac9ccc0678b31dc32e0977489514c4f09085f6298a9653f01aea4045ff582ee887be26ae575b73eef7f3774921e375a3d19adda0ca31aa1849887c1f42cac9677f7a2f4e923f6e5a868b38c084ef187594dc9f7f048fea2e02955384ab
+Output=32488cb262d041d6e4dd35f987bf3ca696db1f06ac29a44693
+
+Decrypt=RSA-OAEP-6
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=0a026dda5fc8785f7bd9bf75327b63e85e2c0fdee5dadb65ebdcac9ae1de95c92c672ab433aa7a8e69ce6a6d8897fac4ac4a54de841ae5e5bbce7687879d79634cea7a30684065c714d52409b928256bbf53eabcd5231eb7259504537399bd29164b726d33a46da701360a4168a091ccab72d44a62fed246c0ffea5b1348ab5470
+Output=50ba14be8462720279c306ba
+
+PrivateKey=RSA-OAEP-7
+-----BEGIN PRIVATE KEY-----
+MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBMRF58Lz8m508oxXQ
+DvMNe906LPrpkRv+3LlIs6R4LQcytqtEqkvwN0GmRNwBvsPmmwGgM+Z12KzXxJJc
+axrsMRkFHf2Jdi0hXUVHX/y1n5CBSGI/NxdxVvauht16fF9D3B4fkIJUBYooSl8G
+wAIXk6h/GsX+/33K7mnF5Ro3ieNzAgMBAAECgYEHDPz/L+uCduJ0MsRd/uSPSbeR
+fWUw4fDKNGDzLgJ2F0SHxW4ipF0lANd3VJUhnX0WWpzzvZLDKvmpjY3JzCloAK3J
+SgpU+0DzQpG/hO6OoStvEJNZxtNUKlD5x2f1z/8FpoHC5lb7d8qq20vpRo2KvNTf
+mPWOhtIFP6E0n3SOIbECQQdJJiwRHNRw7CVm5rNzL8CTKUaaoZBx07nAGQZRTG8d
+JrqhS+qwlxyLfmEaT3kAnW/qd2koyiUoWw3jZD0aP4xxAkEGvB5Q6WwCv2NunuqL
+iZu+v3ZR3nfdR0w+m8I7rYGCthkEx9l9++v7HgAQiHi25n5BU5HWeULCsr+bRDX4
+iwywIwJBA7x+p/CqsUOrxs6LlxGGNqMBcuTP4CyPoN2jt7qvkPgJKYKYVSX0iL38
+tL1ybiJjmsZKMJKrf/y/HVM0z6ULW/ECQQJipqopwqPGfcU0bAY4Gv2YeqPMk8+/
+7PVP3Z+deH1/WaUj05iXnaE3ovY4H+lIAffJTaIVGNw0y0CHDEaXmUrZAkBknUwX
+tu4XIedy0DiaVZw9PN+VUNRXxGsDe3RkGx1SFmr4ohPIOWIGzfukQi8Y1vYdvLXS
+FMlxv0gq65dqc3DC
+-----END PRIVATE KEY-----
+
+Decrypt=RSA-OAEP-7
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=1688e4ce7794bba6cb7014169ecd559cede2a30b56a52b68d9fe18cf1973ef97b2a03153951c755f6294aa49adbdb55845ab6875fb3986c93ecf927962840d282f9e54ce8b690f7c0cb8bbd73440d9571d1b16cd9260f9eab4783cc482e5223dc60973871783ec27b0ae0fd47732cbc286a173fc92b00fb4ba6824647cd93c85c1
+Output=47aae909
+
+Decrypt=RSA-OAEP-7
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=1052ed397b2e01e1d0ee1c50bf24363f95e504f4a03434a08fd822574ed6b9736edbb5f390db10321479a8a139350e2bd4977c3778ef331f3e78ae118b268451f20a2f01d471f5d53c566937171b2dbc2d4bde459a5799f0372d6574239b2323d245d0bb81c286b63c89a361017337e4902f88a467f4c7f244bfd5ab46437ff3b6
+Output=1d9b2e2223d9bc13bfb9f162ce735db48ba7c68f6822a0a1a7b6ae165834e7
+
+Decrypt=RSA-OAEP-7
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=2155cd843ff24a4ee8badb7694260028a490813ba8b369a4cbf106ec148e5298707f5965be7d101c1049ea8584c24cd63455ad9c104d686282d3fb803a4c11c1c2e9b91c7178801d1b6640f003f5728df007b8a4ccc92bce05e41a27278d7c85018c52414313a5077789001d4f01910b72aad05d220aa14a58733a7489bc54556b
+Output=d976fc
+
+Decrypt=RSA-OAEP-7
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=0ab14c373aeb7d4328d0aaad8c094d88b9eb098b95f21054a29082522be7c27a312878b637917e3d819e6c3c568db5d843802b06d51d9e98a2be0bf40c031423b00edfbff8320efb9171bd2044653a4cb9c5122f6c65e83cda2ec3c126027a9c1a56ba874d0fea23f380b82cf240b8cf540004758c4c77d934157a74f3fc12bfac
+Output=d4738623df223aa43843df8467534c41d013e0c803c624e263666b239bde40a5f29aeb8de79e3daa61dd0370f49bd4b013834b98212aef6b1c5ee373b3cb
+
+Decrypt=RSA-OAEP-7
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=028387a318277434798b4d97f460068df5298faba5041ba11761a1cb7316b24184114ec500257e2589ed3b607a1ebbe97a6cc2e02bf1b681f42312a33b7a77d8e7855c4a6de03e3c04643f786b91a264a0d6805e2cea91e68177eb7a64d9255e4f27e713b7ccec00dc200ebd21c2ea2bb890feae4942df941dc3f97890ed347478
+Output=bb47231ca5ea1d3ad46c99345d9a8a61
+
+Decrypt=RSA-OAEP-7
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=14c678a94ad60525ef39e959b2f3ba5c097a94ff912b67dbace80535c187abd47d075420b1872152bba08f7fc31f313bbf9273c912fc4c0149a9b0cfb79807e346eb332069611bec0ff9bcd168f1f7c33e77313cea454b94e2549eecf002e2acf7f6f2d2845d4fe0aab2e5a92ddf68c480ae11247935d1f62574842216ae674115
+Output=2184827095d35c3f86f600e8e59754013296
+
+PrivateKey=RSA-OAEP-8
+-----BEGIN PRIVATE KEY-----
+MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmMwggJfAgEAAoGBW98OMNMh3aUUf4gk
+CPppGVSA34+A0/bov1gYUE82QnypsfVUC5xlqPaXTPhEeiRNkoAgG7Sfy75jeNGU
+TNIn4jD5bj0Q+Bnc7ydsZKALKktnAefQHeX6veOx6aDfgvRjE1nNImaWR/uxcXJG
+E07XtJfP/73EK1nHOpbtkBZiEt/3AgMBAAECgYEPfR6eWqol/RPkoGY64UTg0V9c
+0YvNsJ3yzH5k48XpFa1iZFMEFh0JjHFbt6uL0B0H6vP+18ftCK8qimLvRKsWsyDh
+SvcqSPlq/iYqCuTPZeY16RB5DNTuXOp2iksmOffm9nez8Ltr4yt1dH2JCQNvAmT1
+jUAc26ExcWFXp17PYzECQQoC74RI2frYu9DQBMjCqpdR75chwbDQMjalSw35R8uu
+1aJV7p6OINSR6hcj/glHBKl2Loiv0W67WZRBLKlm3E+fAkEJLTYuftOgv9np/Q5s
+AwG23ykVnPUMyDubDPTW7qcaYeACtG4K6fLeYtJbXXRS1Ji4HJrG/FhZPUw/tPXX
+LfuwqQJBB8cUEK8QOWLbNnQE43roULqk6cKd2SFFgVKUpnx9HG3tJjqgMKm2M65Q
+MD4UA10a8BQSPrpoeCAwjY68hbaVfX0CQQCuLHU4DALAFq0FiRszAd6IHyiuEXEY
+K2ssg76nxRXsqcopjHscq1gXpZcGj8hQYN5NqKAWN4quQ8f5Z7zDeQS5AkEFmNEF
+njraT2MgdSwJ2AX/fR8a4NAXru7pzvoNfdf/d15EtXgyL2QF1iEdoZUZZmqof9xM
+2MiPa249Z+lh3Luj0A==
+-----END PRIVATE KEY-----
+
+Decrypt=RSA-OAEP-8
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=09b3683d8a2eb0fb295b62ed1fb9290b714457b7825319f4647872af889b30409472020ad12912bf19b11d4819f49614824ffd84d09c0a17e7d17309d12919790410aa2995699f6a86dbe3242b5acc23af45691080d6b1ae810fb3e3057087f0970092ce00be9562ff4053b6262ce0caa93e13723d2e3a5ba075d45f0d61b54b61
+Output=050b755e5e6880f7b9e9d692a74c37aae449b31bfea6deff83747a897f6c2c825bb1adbf850a3c96994b5de5b33cbc7d4a17913a7967
+
+Decrypt=RSA-OAEP-8
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=2ecf15c97c5a15b1476ae986b371b57a24284f4a162a8d0c8182e7905e792256f1812ba5f83f1f7a130e42dcc02232844edc14a31a68ee97ae564a383a3411656424c5f62ddb646093c367be1fcda426cf00a06d8acb7e57776fbbd855ac3df506fc16b1d7c3f2110f3d8068e91e186363831c8409680d8da9ecd8cf1fa20ee39d
+Output=4eb68dcd93ca9b19df111bd43608f557026fe4aa1d5cfac227a3eb5ab9548c18a06dded23f81825986b2fcd71109ecef7eff88873f075c2aa0c469f69c92bc
+
+Decrypt=RSA-OAEP-8
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=4bc89130a5b2dabb7c2fcf90eb5d0eaf9e681b7146a38f3173a3d9cfec52ea9e0a41932e648a9d69344c50da763f51a03c95762131e8052254dcd2248cba40fd31667786ce05a2b7b531ac9dac9ed584a59b677c1a8aed8c5d15d68c05569e2be780bf7db638fd2bfd2a85ab276860f3777338fca989ffd743d13ee08e0ca9893f
+Output=8604ac56328c1ab5ad917861
+
+Decrypt=RSA-OAEP-8
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=2e456847d8fc36ff0147d6993594b9397227d577752c79d0f904fcb039d4d812fea605a7b574dd82ca786f93752348438ee9f5b5454985d5f0e1699e3e7ad175a32e15f03deb042ab9fe1dd9db1bb86f8c089ccb45e7ef0c5ee7ca9b7290ca6b15bed47039788a8a93ff83e0e8d6244c71006362deef69b6f416fb3c684383fbd0
+Output=fdda5fbf6ec361a9d9a4ac68af216a0686f438b1e0e5c36b955f74e107f39c0dddcc
+
+Decrypt=RSA-OAEP-8
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=1fb9356fd5c4b1796db2ebf7d0d393cc810adf6145defc2fce714f79d93800d5e2ac211ea8bbecca4b654b94c3b18b30dd576ce34dc95436ef57a09415645923359a5d7b4171ef22c24670f1b229d3603e91f76671b7df97e7317c97734476d5f3d17d21cf82b5ba9f83df2e588d36984fd1b584468bd23b2e875f32f68953f7b2
+Output=4a5f4914bee25de3c69341de07
+
+Decrypt=RSA-OAEP-8
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=3afd9c6600147b21798d818c655a0f4c9212db26d0b0dfdc2a7594ccb3d22f5bf1d7c3e112cd73fc7d509c7a8bafdd3c274d1399009f9609ec4be6477e453f075aa33db382870c1c3409aef392d7386ae3a696b99a94b4da0589447e955d16c98b17602a59bd736279fcd8fb280c4462d590bfa9bf13fed570eafde97330a2c210
+Output=8e07d66f7b880a72563abcd3f35092bc33409fb7f88f2472be
+
+PrivateKey=RSA-OAEP-9
+-----BEGIN PRIVATE KEY-----
+MIIDlwIBADANBgkqhkiG9w0BAQEFAASCA4EwggN9AgEAAoHBAM8s1B40yjpyjqXL
+iv9kw20nve9TZOM2/WjTEjxaGWqMKHAT6FPVFW1Y0VGVRSD7T217F6u2gXdlkJxX
+YRllnZArGQbtiisQwVXCTRJFKNq57q43m+rGbkpBF4bcuP0AYuvAMN4SGaBMKowb
+fdMTHk1rbK7i4xpe1BrBUJsu8e4qsYNkvlaMqUHCXsyE/51kO17Bqq4QKiDXP0eb
+eA/W2pEHUhLZ6sA6BnTYmeui5DH0xEthW2uiIyvUszuu1z1iXQIDAQABAoHAGYwU
+HiNxWpK8z2oRmlvBE4lGjSgR9UjXJ+F7SrDrmG1vIR77U7cffMvqh+5px17mFQCM
+UzLetSvzkKvfv+N9cgU2gVmyY4wd4ybiHSIlHw+1hIs78VAF0qdDMPCv6RbuYszB
+NE0dg6cJ5gZ2JzhA9/N3QkpeCk2nXwGzH/doGc+cv90hUkPDkXwD7zgZkxLlZ7O/
+eu06tFfzce+KFCP0W2jG4oLsERu6KDO5h/1p+tg7wbjGE8Xh6hbBHtEl6n7BAmEA
+/I1sBL7E65qBksp5AMvlNuLotRnezzOyRZeYxpCd9PF2230jGQ/HK4hlpxiviV8b
+zZFFKYAnQjtgXnCkfPWDkKjD6I/IxI6LMuPaIQ374+iB6lZ0tqNIwh6T+eVepl79
+AmEA0gDUXniKrOpgakAdBGD4fdXBAn4S3BoNdYbok52c94m0D1GsBEKWHefSHMIe
+BcgxVcHyqpGTOHz9+VbLSNFTuicEBvm7ulN9SYfZ4vmULXoUy//+p0/s3ako0j4l
+n17hAmEA2xaAL3mi8NRfNY1p/TPkS4H66ChiLpOlQlPpl9AbB0N1naDoErSqTmyL
+6rIyjVQxlVpBimf/JqjFyAel2jVOBe8xzIz3WPRjcylQsD4mVyb7lOOdalcqJiRK
+sI23V1KtAmEAoKMXz+ffFCP4em3uhFH04rSmflSX8ptPHk6DC5+t2UARZwJvVZbl
+o5yXgX4PXxbifhnsmQLgHX6m+5qjx2Cv7h44G2neasnAdYWgatnEugC/dcitL6iY
+pHnoCuKU/tKhAmALIfM1w1M0LrRMOqJERXgMLWVblAF0yuOMfIpOZJPAup/TA3SC
+Z7CDuaemy2HkLbNiuMmJbbcGTgKtWuYVh9oVtGSckFlJCf6zfby2VL63Jo7IAeWo
+tKo5Eb69iFQvBb4=
+-----END PRIVATE KEY-----
+
+Decrypt=RSA-OAEP-9
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=267bcd118acab1fc8ba81c85d73003cb8610fa55c1d97da8d48a7c7f06896a4db751aa284255b9d36ad65f37653d829f1b37f97b8001942545b2fc2c55a7376ca7a1be4b1760c8e05a33e5aa2526b8d98e317088e7834c755b2a59b12631a182c05d5d43ab1779264f8456f515ce57dfdf512d5493dab7b7338dc4b7d78db9c091ac3baf537a69fc7f549d979f0eff9a94fda4169bd4d1d19a69c99e33c3b55490d501b39b1edae118ff6793a153261584d3a5f39f6e682e3d17c8cd1261fa72
+Output=f735fd55ba92592c3b52b8f9c4f69aaa1cbef8fe88add095595412467f9cf4ec0b896c59eda16210e7549c8abb10cdbc21a12ec9b6b5b8fd2f10399eb6
+
+Decrypt=RSA-OAEP-9
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=93ac9f0671ec29acbb444effc1a5741351d60fdb0e393fbf754acf0de49761a14841df7772e9bc82773966a1584c4d72baea00118f83f35cca6e537cbd4d811f5583b29783d8a6d94cd31be70d6f526c10ff09c6fa7ce069795a3fcd0511fd5fcb564bcc80ea9c78f38b80012539d8a4ddf6fe81e9cddb7f50dbbbbcc7e5d86097ccf4ec49189fb8bf318be6d5a0715d516b49af191258cd32dc833ce6eb4673c03a19bbace88cc54895f636cc0c1ec89096d11ce235a265ca1764232a689ae8
+Output=81b906605015a63aabe42ddf11e1978912f5404c7474b26dce3ed482bf961ecc818bf420c54659
+
+Decrypt=RSA-OAEP-9
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=81ebdd95054b0c822ef9ad7693f5a87adfb4b4c4ce70df2df84ed49c04da58ba5fc20a19e1a6e8b7a3900b22796dc4e869ee6b42792d15a8eceb56c09c69914e813cea8f6931e4b8ed6f421af298d595c97f4789c7caa612c7ef360984c21b93edc5401068b5af4c78a8771b984d53b8ea8adf2f6a7d4a0ba76c75e1dd9f658f20ded4a46071d46d7791b56803d8fea7f0b0f8e41ae3f09383a6f9585fe7753eaaffd2bf94563108beecc207bbb535f5fcc705f0dde9f708c62f49a9c90371d3
+Output=fd326429df9b890e09b54b18b8f34f1e24
+
+Decrypt=RSA-OAEP-9
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=bcc35f94cde66cb1136625d625b94432a35b22f3d2fa11a613ff0fca5bd57f87b902ccdc1cd0aebcb0715ee869d1d1fe395f6793003f5eca465059c88660d446ff5f0818552022557e38c08a67ead991262254f10682975ec56397768537f4977af6d5f6aaceb7fb25dec5937230231fd8978af49119a29f29e424ab8272b47562792d5c94f774b8829d0b0d9f1a8c9eddf37574d5fa248eefa9c5271fc5ec2579c81bdd61b410fa61fe36e424221c113addb275664c801d34ca8c6351e4a858
+Output=f1459b5f0c92f01a0f723a2e5662484d8f8c0a20fc29dad6acd43bb5f3effdf4e1b63e07fdfe6628d0d74ca19bf2d69e4a0abf86d293925a796772f8088e
+
+Decrypt=RSA-OAEP-9
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=232afbc927fa08c2f6a27b87d4a5cb09c07dc26fae73d73a90558839f4fd66d281b87ec734bce237ba166698ed829106a7de6942cd6cdce78fed8d2e4d81428e66490d036264cef92af941d3e35055fe3981e14d29cbb9a4f67473063baec79a1179f5a17c9c1832f2838fd7d5e59bb9659d56dce8a019edef1bb3accc697cc6cc7a778f60a064c7f6f5d529c6210262e003de583e81e3167b89971fb8c0e15d44fffef89b53d8d64dd797d159b56d2b08ea5307ea12c241bd58d4ee278a1f2e
+Output=53e6e8c729d6f9c319dd317e74b0db8e4ccca25f3c8305746e137ac63a63ef3739e7b595abb96e8d55e54f7bd41ab433378ffb911d
+
+Decrypt=RSA-OAEP-9
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=438cc7dc08a68da249e42505f8573ba60e2c2773d5b290f4cf9dff718e842081c383e67024a0f29594ea987b9d25e4b738f285970d195abb3a8c8054e3d79d6b9c9a8327ba596f1259e27126674766907d8d582ff3a8476154929adb1e6d1235b2ccb4ec8f663ba9cc670a92bebd853c8dbf69c6436d016f61add836e94732450434207f9fd4c43dec2a12a958efa01efe2669899b5e604c255c55fb7166de5589e369597bb09168c06dd5db177e06a1740eb2d5c82faeca6d92fcee9931ba9f
+Output=b6b28ea2198d0c1008bc64
+
+PrivateKey=RSA-OAEP-10
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCuRe1WAc7GuMwF
++AOTXGdN2+DXXEwJ/XlR/GsMrsMTqN85lwxRi/+6XtaPPw1/IqQCnUE/GuB+Tr6e
+QXfOI+f1QEtWnk7hvc88H7A+8ROALU+FXrm1E0tafICFrcrm+i+hQX7DdjvhcbDG
+K3YO3iPBKtkrmAiExkH1qPrCa9rUoDOBoi/ht1SIUJTIJQbUAZpTWihq/rJxu5ul
+kt4Y3PYAwq7q5W4C9895/BTPO9x82E/ru/lQypAwSyIZp6oGOu+iw8GYDlYM1kr+
+d5WFthB2V7lXhX795gEJiKt95Bf8iNjzhMTm5yw/lD4MMcDEpcw2+HnYo6ydfVmG
+Dqraa4O7AgMBAAECggEABWsEIW/l81SsdyUKS2sMhSWoXFmwvYDFZFCiLV9Djllq
+MzqodeKR3UP0jLiLnV/A1Jn5/NHDl/mvwHDNnjmMjRnmHbfHQQprJnXfv100W4BN
+IBrdUC1c4t/LCRzpmXu+vlcwbzg+TViBA/A29+hdGTTRUqMj5KjbRR1vSlsbDxAs
+wVDgL+7iuI3qStTBusyyTYQHLRTh0kpncfdAjuMFZPuG1Dk6NLzwt4hQHRkzA/E6
+IoSwAfD2Ser3kyjUrFxDCrRBSSCpRg7Rt7xA7GU+h20Jq8UJrkW1JRkBFqDCYQGE
+gphQnBw786SD5ydAVOFelwdQNumJ9gkygHtSV3UeeQKBgQDs9a7NHlUV//rL11oo
+Fsbr9JAYzftGOOGF1mpzlrb4CQ+AGMf9lcw0uFfcF/DMZRa7E0arTVgsra17QQM1
+I4e3AzjQhAR8nZU5tkliBLPdbqRCSZIHvsAflkKH/2M2w5hGWDNoRvVuRoYYgcEC
+M9IXa/FaXpbdx4C8hoqnfTznaQKBgQC8RsRk/GrEyng7DrCKPIQbdy9+my8our1Y
+iuiF4aDGHkhYoPslrCmZkPNb6FFkwlm6EXXN1xknBxNRhJkrbCm3Rt0NLKvhQoNf
+fRSMwWFSS0oJlG1IuChHPxzna2y2iGw0XAPgX0HVG1w6kKPyQHPH10pP4l2c8hx1
+lg8/w4YxgwKBgQDHNWRXHQD7FdCKPemVelCRXXEm6UQtrPQryC6GLlZz/2oAjtTS
+43RhffifF6FgtDt/2py2trdCGGCYFffUXKJjwVmqMtJy0Sf69LyMotdzeOiusZsK
+19o8s94K5zFJgPYrbUsKh10d8DwbrjnM2DPvbNfi2VKL8ITR+WnnlOn2wQKBgCZY
+s39t+cEDC+HbaBF/qdh+OeoraTt+bTovcJR0E+7GFC4Y+438tqxUXXyGoK1I+EVx
+cPDvsmvEgSbFPv0dFpIBmNwqEQfcKC22qAzTBiNguj+hP3DkMS/xps1rj8TNnFw9
+sXxtalchL3OuKfYZMnutWbFThYWFuk4otgpipF5JAoGAbzhSazklCFU07z5BWoNu
+3ouGFYosfL/sywvYNDBP7Gg7qNT0ecQz1DQW5jJpYjzqEAd22Fr/QB0//2EO5lQR
+zjsTY9Y6lwnu3kJkfOpWFJPVRXCoecGGgs2XcQuWIF7DERfXO182Ij+t1ui6kN18
+DuYdROFjJR4gx/ZuswURfLg=
+-----END PRIVATE KEY-----
+
+Decrypt=RSA-OAEP-10
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=53ea5dc08cd260fb3b858567287fa91552c30b2febfba213f0ae87702d068d19bab07fe574523dfb42139d68c3c5afeee0bfe4cb7969cbf382b804d6e61396144e2d0e60741f8993c3014b58b9b1957a8babcd23af854f4c356fb1662aa72bfcc7e586559dc4280d160c126785a723ebeebeff71f11594440aaef87d10793a8774a239d4a04c87fe1467b9daf85208ec6c7255794a96cc29142f9a8bd418e3c1fd67344b0cd0829df3b2bec60253196293c6b34d3f75d32f213dd45c6273d505adf4cced1057cb758fc26aeefa441255ed4e64c199ee075e7f16646182fdb464739b68ab5daff0e63e9552016824f054bf4d3c8c90a97bb6b6553284eb429fcc
+Output=8bba6bf82a6c0f86d5f1756e97956870b08953b06b4eb205bc1694ee
+
+Decrypt=RSA-OAEP-10
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=a2b1a430a9d657e2fa1c2bb5ed43ffb25c05a308fe9093c01031795f5874400110828ae58fb9b581ce9dddd3e549ae04a0985459bde6c626594e7b05dc4278b2a1465c1368408823c85e96dc66c3a30983c639664fc4569a37fe21e5a195b5776eed2df8d8d361af686e750229bbd663f161868a50615e0c337bec0ca35fec0bb19c36eb2e0bbcc0582fa1d93aacdb061063f59f2ce1ee43605e5d89eca183d2acdfe9f81011022ad3b43a3dd417dac94b4e11ea81b192966e966b182082e71964607b4f8002f36299844a11f2ae0faeac2eae70f8f4f98088acdcd0ac556e9fccc511521908fad26f04c64201450305778758b0538bf8b5bb144a828e629795
+Output=e6ad181f053b58a904f2457510373e57
+
+Decrypt=RSA-OAEP-10
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=9886c3e6764a8b9a84e84148ebd8c3b1aa8050381a78f668714c16d9cfd2a6edc56979c535d9dee3b44b85c18be8928992371711472216d95dda98d2ee8347c9b14dffdff84aa48d25ac06f7d7e65398ac967b1ce90925f67dce049b7f812db0742997a74d44fe81dbe0e7a3feaf2e5c40af888d550ddbbe3bc20657a29543f8fc2913b9bd1a61b2ab2256ec409bbd7dc0d17717ea25c43f42ed27df8738bf4afc6766ff7aff0859555ee283920f4c8a63c4a7340cbafddc339ecdb4b0515002f96c932b5b79167af699c0ad3fccfdf0f44e85a70262bf2e18fe34b850589975e867ff969d48eabf212271546cdc05a69ecb526e52870c836f307bd798780ede
+Output=510a2cf60e866fa2340553c94ea39fbc256311e83e94454b4124
+
+Decrypt=RSA-OAEP-10
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=6318e9fb5c0d05e5307e1683436e903293ac4642358aaa223d7163013aba87e2dfda8e60c6860e29a1e92686163ea0b9175f329ca3b131a1edd3a77759a8b97bad6a4f8f4396f28cf6f39ca58112e48160d6e203daa5856f3aca5ffed577af499408e3dfd233e3e604dbe34a9c4c9082de65527cac6331d29dc80e0508a0fa7122e7f329f6cca5cfa34d4d1da417805457e008bec549e478ff9e12a763c477d15bbb78f5b69bd57830fc2c4ed686d79bc72a95d85f88134c6b0afe56a8ccfbc855828bb339bd17909cf1d70de3335ae07039093e606d655365de6550b872cd6de1d440ee031b61945f629ad8a353b0d40939e96a3c450d2a8d5eee9f678093c8
+Output=bcdd190da3b7d300df9a06e22caae2a75f10c91ff667b7c16bde8b53064a2649a94045c9
+
+Decrypt=RSA-OAEP-10
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=75290872ccfd4a4505660d651f56da6daa09ca1301d890632f6a992f3d565cee464afded40ed3b5be9356714ea5aa7655f4a1366c2f17c728f6f2c5a5d1f8e28429bc4e6f8f2cff8da8dc0e0a9808e45fd09ea2fa40cb2b6ce6ffff5c0e159d11b68d90a85f7b84e103b09e682666480c657505c0929259468a314786d74eab131573cf234bf57db7d9e66cc6748192e002dc0deea930585f0831fdcd9bc33d51f79ed2ffc16bcf4d59812fcebcaa3f9069b0e445686d644c25ccf63b456ee5fa6ffe96f19cdf751fed9eaf35957754dbf4bfea5216aa1844dc507cb2d080e722eba150308c2b5ff1193620f1766ecf4481bafb943bd292877f2136ca494aba0
+Output=a7dd6c7dc24b46f9dd5f1e91ada4c3b3df947e877232a9
+
+Decrypt=RSA-OAEP-10
+Ctrl = rsa_padding_mode:oaep
+Ctrl = rsa_mgf1_md:sha1
+Input=2d207a73432a8fb4c03051b3f73b28a61764098dfa34c47a20995f8115aa6816679b557e82dbee584908c6e69782d7deb34dbd65af063d57fca76a5fd069492fd6068d9984d209350565a62e5c77f23038c12cb10c6634709b547c46f6b4a709bd85ca122d74465ef97762c29763e06dbc7a9e738c78bfca0102dc5e79d65b973f28240caab2e161a78b57d262457ed8195d53e3c7ae9da021883c6db7c24afdd2322eac972ad3c354c5fcef1e146c3a0290fb67adf007066e00428d2cec18ce58f9328698defef4b2eb5ec76918fde1c198cbb38b7afc67626a9aefec4322bfd90d2563481c9a221f78c8272c82d1b62ab914e1c69f6af6ef30ca5260db4a46
+Output=eaf1a73a1b0c4609537de69cd9228bbcfb9a8ca8c6c3efaf056fe4a7f4634ed00b7c39ec6922d7b8ea2c04ebac
+
+
+Title = ECDH tests (with random keys)
+
+# TEST CURVE secp112r1
+
+PrivateKey=ALICE_secp112r1
+-----BEGIN PRIVATE KEY-----
+ME4CAQAwEAYHKoZIzj0CAQYFK4EEAAYENzA1AgEBBA6sqKp39AWLClus2ha5rqEg
+Ax4ABJ4NTgOR1xQAr3M6eM46WqXW2zA6FnsUMKFFwcw=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_secp112r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDIwEAYHKoZIzj0CAQYFK4EEAAYDHgAEng1OA5HXFACvczp4zjpapdbbMDoWexQw
+oUXBzA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_secp112r1:ALICE_secp112r1_PUB
+
+
+PrivateKey=BOB_secp112r1
+-----BEGIN PRIVATE KEY-----
+ME4CAQAwEAYHKoZIzj0CAQYFK4EEAAYENzA1AgEBBA5pIbX+hEq49mFPjUl4/6Eg
+Ax4ABBsPNZHm1pcdw104ibwIycCe+r5voeRfQUZRZ3c=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_secp112r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDIwEAYHKoZIzj0CAQYFK4EEAAYDHgAEGw81kebWlx3DXTiJvAjJwJ76vm+h5F9B
+RlFndw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_secp112r1:BOB_secp112r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_secp112r1
+PeerKey=BOB_secp112r1_PUB
+SharedSecret=a6cefb5aa7a352afe818749eb401
+
+# ECDH Bob with Alice peer
+Derive=BOB_secp112r1
+PeerKey=ALICE_secp112r1_PUB
+SharedSecret=a6cefb5aa7a352afe818749eb401
+
+# TEST CURVE secp112r2
+
+PrivateKey=ALICE_secp112r2
+-----BEGIN PRIVATE KEY-----
+ME4CAQAwEAYHKoZIzj0CAQYFK4EEAAcENzA1AgEBBA4gzzblKfE6ZwoUW0FQmaEg
+Ax4ABJJ4L7Vo50NZ5VGZ4nNkxFNcjJQwDIQb1/9IkLE=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_secp112r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDIwEAYHKoZIzj0CAQYFK4EEAAcDHgAEkngvtWjnQ1nlUZnic2TEU1yMlDAMhBvX
+/0iQsQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_secp112r2:ALICE_secp112r2_PUB
+
+
+PrivateKey=BOB_secp112r2
+-----BEGIN PRIVATE KEY-----
+ME4CAQAwEAYHKoZIzj0CAQYFK4EEAAcENzA1AgEBBA4D9oGGj+O8vjZz3OZNaqEg
+Ax4ABNZOv5gUzvVbgAHpTgu3hUhTQtB8LamTEIfaRWE=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_secp112r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDIwEAYHKoZIzj0CAQYFK4EEAAcDHgAE1k6/mBTO9VuAAelOC7eFSFNC0HwtqZMQ
+h9pFYQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_secp112r2:BOB_secp112r2_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_secp112r2
+PeerKey=BOB_secp112r2_PUB
+SharedSecret=6bed2c55e233e9214d5898c4c12a
+
+# ECDH Bob with Alice peer
+Derive=BOB_secp112r2
+PeerKey=ALICE_secp112r2_PUB
+SharedSecret=6bed2c55e233e9214d5898c4c12a
+
+# TEST CURVE secp128r1
+
+PrivateKey=ALICE_secp128r1
+-----BEGIN PRIVATE KEY-----
+MFQCAQAwEAYHKoZIzj0CAQYFK4EEABwEPTA7AgEBBBCP1c+lxfRT+MZWZ8uGCYYl
+oSQDIgAEH2n0icp87inv7kUYrEFjpZuHJ4DqArhHS+Zfp2XXO1A=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_secp128r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDYwEAYHKoZIzj0CAQYFK4EEABwDIgAEH2n0icp87inv7kUYrEFjpZuHJ4DqArhH
+S+Zfp2XXO1A=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_secp128r1:ALICE_secp128r1_PUB
+
+
+PrivateKey=BOB_secp128r1
+-----BEGIN PRIVATE KEY-----
+MFQCAQAwEAYHKoZIzj0CAQYFK4EEABwEPTA7AgEBBBCGbEd3Hhwr76XbQekhIrDT
+oSQDIgAENKjS0HNx/gEKYQNNab9v8zlW/D4zSjv3Ny3Ep0GVYms=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_secp128r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDYwEAYHKoZIzj0CAQYFK4EEABwDIgAENKjS0HNx/gEKYQNNab9v8zlW/D4zSjv3
+Ny3Ep0GVYms=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_secp128r1:BOB_secp128r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_secp128r1
+PeerKey=BOB_secp128r1_PUB
+SharedSecret=91ded46ac404afdbd708fdcc1cac6842
+
+# ECDH Bob with Alice peer
+Derive=BOB_secp128r1
+PeerKey=ALICE_secp128r1_PUB
+SharedSecret=91ded46ac404afdbd708fdcc1cac6842
+
+# TEST CURVE secp128r2
+
+PrivateKey=ALICE_secp128r2
+-----BEGIN PRIVATE KEY-----
+MFQCAQAwEAYHKoZIzj0CAQYFK4EEAB0EPTA7AgEBBBAgRKSjPsZ76LDGIA2it5SC
+oSQDIgAEBVdjcUpR+b6LRPm6R8fAD/6kBxV0Kl3939Wn0+nUpf8=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_secp128r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDYwEAYHKoZIzj0CAQYFK4EEAB0DIgAEBVdjcUpR+b6LRPm6R8fAD/6kBxV0Kl39
+39Wn0+nUpf8=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_secp128r2:ALICE_secp128r2_PUB
+
+
+PrivateKey=BOB_secp128r2
+-----BEGIN PRIVATE KEY-----
+MFQCAQAwEAYHKoZIzj0CAQYFK4EEAB0EPTA7AgEBBBACp00jw5D7obvDmJp7wDuA
+oSQDIgAEBO3BbVrc5SvhvN+fmWShu2tWIFQap5ys5RHMCLLl098=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_secp128r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDYwEAYHKoZIzj0CAQYFK4EEAB0DIgAEBO3BbVrc5SvhvN+fmWShu2tWIFQap5ys
+5RHMCLLl098=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_secp128r2:BOB_secp128r2_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_secp128r2
+PeerKey=BOB_secp128r2_PUB
+SharedSecret=dc32faa978008a694672076b756a1e4b
+
+# ECDH Bob with Alice peer
+Derive=BOB_secp128r2
+PeerKey=ALICE_secp128r2_PUB
+SharedSecret=dc32faa978008a694672076b756a1e4b
+
+# TEST CURVE secp160k1
+
+PrivateKey=ALICE_secp160k1
+-----BEGIN PRIVATE KEY-----
+MGECAQAwEAYHKoZIzj0CAQYFK4EEAAkESjBIAgEBBBUAudN3YOXN0uu0CL2TGZdP
+YeNU/72hLAMqAAR3Du0dK28tSyWxYSz/Es2Wqr4C+bNfJ1uiK4J3BFS5Udc48nsx
+xfjj
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_secp160k1_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFK4EEAAkDKgAEdw7tHStvLUslsWEs/xLNlqq+AvmzXydb
+oiuCdwRUuVHXOPJ7McX44w==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_secp160k1:ALICE_secp160k1_PUB
+
+
+PrivateKey=BOB_secp160k1
+-----BEGIN PRIVATE KEY-----
+MGECAQAwEAYHKoZIzj0CAQYFK4EEAAkESjBIAgEBBBUA5fNiCFVGPM1aHuwXUvuh
+xoY2yU+hLAMqAAQHlM6otmapt0/0sc+5bcPoYT6cfyARv4VUOOo6I2eBGXLIm812
+1ric
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_secp160k1_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFK4EEAAkDKgAEB5TOqLZmqbdP9LHPuW3D6GE+nH8gEb+F
+VDjqOiNngRlyyJvNdta4nA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_secp160k1:BOB_secp160k1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_secp160k1
+PeerKey=BOB_secp160k1_PUB
+SharedSecret=5457d367346cc3e82031784f95ebcd856de0c735
+
+# ECDH Bob with Alice peer
+Derive=BOB_secp160k1
+PeerKey=ALICE_secp160k1_PUB
+SharedSecret=5457d367346cc3e82031784f95ebcd856de0c735
+
+# TEST CURVE secp160r1
+
+PrivateKey=ALICE_secp160r1
+-----BEGIN PRIVATE KEY-----
+MGECAQAwEAYHKoZIzj0CAQYFK4EEAAgESjBIAgEBBBUA0KDtaiFUWd8NG0lO9TLu
+zjLWXJehLAMqAASHQN1DGBXtdyF3+BjfIfbWg403dUqXbIXzZoctDyOPTQaGVblm
+SwXC
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_secp160r1_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFK4EEAAgDKgAEh0DdQxgV7Xchd/gY3yH21oONN3VKl2yF
+82aHLQ8jj00GhlW5ZksFwg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_secp160r1:ALICE_secp160r1_PUB
+
+
+PrivateKey=BOB_secp160r1
+-----BEGIN PRIVATE KEY-----
+MGECAQAwEAYHKoZIzj0CAQYFK4EEAAgESjBIAgEBBBUAsBIwvx6ZABinhsi+bGai
+CvetiuWhLAMqAAQJ2+RhpGedkUYXUiPZ/plHXFBy6R3XzMUGIKiXFGSBpwF8hGRN
+qUDy
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_secp160r1_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFK4EEAAgDKgAECdvkYaRnnZFGF1Ij2f6ZR1xQcukd18zF
+BiColxRkgacBfIRkTalA8g==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_secp160r1:BOB_secp160r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_secp160r1
+PeerKey=BOB_secp160r1_PUB
+SharedSecret=87856536b6a295ea94d3e483d69c6212d5c7afcf
+
+# ECDH Bob with Alice peer
+Derive=BOB_secp160r1
+PeerKey=ALICE_secp160r1_PUB
+SharedSecret=87856536b6a295ea94d3e483d69c6212d5c7afcf
+
+# TEST CURVE secp160r2
+
+PrivateKey=ALICE_secp160r2
+-----BEGIN PRIVATE KEY-----
+MGECAQAwEAYHKoZIzj0CAQYFK4EEAB4ESjBIAgEBBBUAhmLOAJGNuSoZUCN4f0On
+LZ6rRSShLAMqAAQPSNvhJQohMEfijXq+Jlq7a9lzosQfPvuIyOg6shyzUVS43R+7
+Lgr5
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_secp160r2_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFK4EEAB4DKgAED0jb4SUKITBH4o16viZau2vZc6LEHz77
+iMjoOrIcs1FUuN0fuy4K+Q==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_secp160r2:ALICE_secp160r2_PUB
+
+
+PrivateKey=BOB_secp160r2
+-----BEGIN PRIVATE KEY-----
+MGECAQAwEAYHKoZIzj0CAQYFK4EEAB4ESjBIAgEBBBUA10mjzR2Dy0CLmm/MTAHT
+b5CBenOhLAMqAARqzYAcSijzAo2vzmMuK8ta8sl/bguuCpRwFD93ACP64TzgI3re
+FhsX
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_secp160r2_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFK4EEAB4DKgAEas2AHEoo8wKNr85jLivLWvLJf24LrgqU
+cBQ/dwAj+uE84CN63hYbFw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_secp160r2:BOB_secp160r2_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_secp160r2
+PeerKey=BOB_secp160r2_PUB
+SharedSecret=5481e282c47cbd37c84873847c4fc2f31fc15a1a
+
+# ECDH Bob with Alice peer
+Derive=BOB_secp160r2
+PeerKey=ALICE_secp160r2_PUB
+SharedSecret=5481e282c47cbd37c84873847c4fc2f31fc15a1a
+
+# TEST CURVE secp192k1
+
+PrivateKey=ALICE_secp192k1
+-----BEGIN PRIVATE KEY-----
+MGwCAQAwEAYHKoZIzj0CAQYFK4EEAB8EVTBTAgEBBBizF3KeHMsaV/KOR/otCmdL
+QT2qGNq3HhWhNAMyAATP+L9SGl3K6wmevkLwJnkMNHp0I5RfXulSfHuHZPp4CGrh
+i6eKNQLkpZ2OQaPIExA=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_secp192k1_PUB
+-----BEGIN PUBLIC KEY-----
+MEYwEAYHKoZIzj0CAQYFK4EEAB8DMgAEz/i/UhpdyusJnr5C8CZ5DDR6dCOUX17p
+Unx7h2T6eAhq4YunijUC5KWdjkGjyBMQ
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_secp192k1:ALICE_secp192k1_PUB
+
+
+PrivateKey=BOB_secp192k1
+-----BEGIN PRIVATE KEY-----
+MGwCAQAwEAYHKoZIzj0CAQYFK4EEAB8EVTBTAgEBBBh8BXPVGQKYCw0v7DY3wZVa
+cyhyUjIbUymhNAMyAATgI7hw2LSj6uN3yL5nvHOOkMiPtalKr+BGsFac39RYmp64
+mr+w66bDIWN3VllO6LY=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_secp192k1_PUB
+-----BEGIN PUBLIC KEY-----
+MEYwEAYHKoZIzj0CAQYFK4EEAB8DMgAE4CO4cNi0o+rjd8i+Z7xzjpDIj7WpSq/g
+RrBWnN/UWJqeuJq/sOumwyFjd1ZZTui2
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_secp192k1:BOB_secp192k1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_secp192k1
+PeerKey=BOB_secp192k1_PUB
+SharedSecret=6a4daca0412284172e8fcaafa0d9df76257d899752bf0f23
+
+# ECDH Bob with Alice peer
+Derive=BOB_secp192k1
+PeerKey=ALICE_secp192k1_PUB
+SharedSecret=6a4daca0412284172e8fcaafa0d9df76257d899752bf0f23
+
+# TEST CURVE secp224k1
+
+PrivateKey=ALICE_secp224k1
+-----BEGIN PRIVATE KEY-----
+MHkCAQAwEAYHKoZIzj0CAQYFK4EEACAEYjBgAgEBBB0AhXKGJFqOI4P1PLFR3M6M
+kepT/2Dtd27I1Awzx6E8AzoABPVN/1b6VHbq7U6pWaOrUeqJ5vSgWL49u/uuD48D
+4FRf7oFdixN9VWIrxr0PRByeEYmlHw4MOEQK
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_secp224k1_PUB
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACADOgAE9U3/VvpUdurtTqlZo6tR6onm9KBYvj27
++64PjwPgVF/ugV2LE31VYivGvQ9EHJ4RiaUfDgw4RAo=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_secp224k1:ALICE_secp224k1_PUB
+
+
+PrivateKey=BOB_secp224k1
+-----BEGIN PRIVATE KEY-----
+MHkCAQAwEAYHKoZIzj0CAQYFK4EEACAEYjBgAgEBBB0AOjEXYoz8YcWokSf4U5gX
+HbjDfILPdPejlE0T/KE8AzoABGXAQ+AntX7On4cKwP+f4KzZGaJZwjBq3jCjymsr
+9A3c8VCoRXXBg+VPoKg7fDkMIgI8qPmrC95Q
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_secp224k1_PUB
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACADOgAEZcBD4Ce1fs6fhwrA/5/grNkZolnCMGre
+MKPKayv0DdzxUKhFdcGD5U+gqDt8OQwiAjyo+asL3lA=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_secp224k1:BOB_secp224k1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_secp224k1
+PeerKey=BOB_secp224k1_PUB
+SharedSecret=80b65e65fe29c779213dd31189d371ff57b0b2bf08c6458ed142399a
+
+# ECDH Bob with Alice peer
+Derive=BOB_secp224k1
+PeerKey=ALICE_secp224k1_PUB
+SharedSecret=80b65e65fe29c779213dd31189d371ff57b0b2bf08c6458ed142399a
+
+# TEST CURVE secp224r1
+
+PrivateKey=ALICE_secp224r1
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBxLKkXFJXYqGUlTsmgjlesi
+kwqejrekrkSTbehyoTwDOgAEUcEh0Ggy/rD+Nj9JQozzI+qzPtiU7b2D2HtdCa4h
+fbVPXngcRH2B2xN8W+dcHoIxrxO2UFXy4xo=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_secp224r1_PUB
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEUcEh0Ggy/rD+Nj9JQozzI+qzPtiU7b2D
+2HtdCa4hfbVPXngcRH2B2xN8W+dcHoIxrxO2UFXy4xo=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_secp224r1:ALICE_secp224r1_PUB
+
+
+PrivateKey=BOB_secp224r1
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBzOHGGUR3fZYg3GSaUN6pxo
+NQtAlOzM3UclEhMzoTwDOgAEdwFklK/YoDRU6bM7X2ulNLwqx9TUETMFUM6VV9DB
+4YcvAzv6pQgVwYEU7IahmSKpX19chbPt2I0=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_secp224r1_PUB
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEdwFklK/YoDRU6bM7X2ulNLwqx9TUETMF
+UM6VV9DB4YcvAzv6pQgVwYEU7IahmSKpX19chbPt2I0=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_secp224r1:BOB_secp224r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_secp224r1
+PeerKey=BOB_secp224r1_PUB
+SharedSecret=34ea06d16d82f0d1725de47f3639ac0c23db7d7ed68f01488539a2a5
+
+# ECDH Bob with Alice peer
+Derive=BOB_secp224r1
+PeerKey=ALICE_secp224r1_PUB
+SharedSecret=34ea06d16d82f0d1725de47f3639ac0c23db7d7ed68f01488539a2a5
+
+# TEST CURVE secp256k1
+
+PrivateKey=ALICE_secp256k1
+-----BEGIN PRIVATE KEY-----
+MIGEAgEAMBAGByqGSM49AgEGBSuBBAAKBG0wawIBAQQgHCRzy0IcEx6CeA6ogNNK
+SOfuTlHy4fE/LNxkANUS4k+hRANCAASDBmwKklX4OcbZSJJX9mxm1Wr7TPTLpbyp
+xKcKRm0XKNxVlrZU8WQCl66GtX2DDyX+0+XiC3hbaRWcYtg7P6WO
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_secp256k1_PUB
+-----BEGIN PUBLIC KEY-----
+MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEgwZsCpJV+DnG2UiSV/ZsZtVq+0z0y6W8
+qcSnCkZtFyjcVZa2VPFkApeuhrV9gw8l/tPl4gt4W2kVnGLYOz+ljg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_secp256k1:ALICE_secp256k1_PUB
+
+
+PrivateKey=BOB_secp256k1
+-----BEGIN PRIVATE KEY-----
+MIGEAgEAMBAGByqGSM49AgEGBSuBBAAKBG0wawIBAQQgChCkFvWtOcrXLmXVGqkR
+0gdntyytjGzEKue5t+IL2lihRANCAAQFQoIckey+Vyh3QwJWUUfKXNbbjWe94yZE
+AWGvI2BfqtWqigZF5VSb5aIXtTPRmwiN0cp30cd77YE5Z+e5bJHU
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_secp256k1_PUB
+-----BEGIN PUBLIC KEY-----
+MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEBUKCHJHsvlcod0MCVlFHylzW241nveMm
+RAFhryNgX6rVqooGReVUm+WiF7Uz0ZsIjdHKd9HHe+2BOWfnuWyR1A==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_secp256k1:BOB_secp256k1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_secp256k1
+PeerKey=BOB_secp256k1_PUB
+SharedSecret=af43b52790082fd87afb1d14b883c12d12bb9e554080d1f8e527920676e31f3e
+
+# ECDH Bob with Alice peer
+Derive=BOB_secp256k1
+PeerKey=ALICE_secp256k1_PUB
+SharedSecret=af43b52790082fd87afb1d14b883c12d12bb9e554080d1f8e527920676e31f3e
+
+# TEST CURVE secp384r1
+
+PrivateKey=ALICE_secp384r1
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDCxE7Q4m1dsK7M3Otxo
+cgY/ejX9JOKKdAtSnRiU4bnK3eFmALkMN7XIveQnWLB1PEKhZANiAAQaUsvUFr/u
+ISpAmYqYZIme4VassCtb0tNGU97s3qt4ozcogZ4z+fIzXZ4YXqfGoEa57+uQDgqr
++jNOTji7Gxopt6AqZ9EvwuVaCuunUi0pcx6cc8IuUfrwMwSFovV/7sM=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_secp384r1_PUB
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEGlLL1Ba/7iEqQJmKmGSJnuFWrLArW9LT
+RlPe7N6reKM3KIGeM/nyM12eGF6nxqBGue/rkA4Kq/ozTk44uxsaKbegKmfRL8Ll
+Wgrrp1ItKXMenHPCLlH68DMEhaL1f+7D
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_secp384r1:ALICE_secp384r1_PUB
+
+
+PrivateKey=BOB_secp384r1
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDBRiGXRsb5sUq0b3/dg
+Z+pA9kbrSivBMCUCXVwxno1d/30hI/Yy0Z5PWwbBgwTFprWhZANiAASp1FeUOBJF
+mzQCNbGiOz8He0kF+KIf24UGYVO5MC7u5rV9hpoYsbcgmwxALskPN18os2ygK1Pn
+f/h+WALIsG2RknSTbiyvBYkoIhJV9cflvEDpMeaWSLF7qJ5YjEIf9PM=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_secp384r1_PUB
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEqdRXlDgSRZs0AjWxojs/B3tJBfiiH9uF
+BmFTuTAu7ua1fYaaGLG3IJsMQC7JDzdfKLNsoCtT53/4flgCyLBtkZJ0k24srwWJ
+KCISVfXH5bxA6THmlkixe6ieWIxCH/Tz
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_secp384r1:BOB_secp384r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_secp384r1
+PeerKey=BOB_secp384r1_PUB
+SharedSecret=2006ed49acbb991b8fbf8a15c3f263542496eaefe1e2952591b72fb929463eac7a403a5419cebbfb73734918eaed59fd
+
+# ECDH Bob with Alice peer
+Derive=BOB_secp384r1
+PeerKey=ALICE_secp384r1_PUB
+SharedSecret=2006ed49acbb991b8fbf8a15c3f263542496eaefe1e2952591b72fb929463eac7a403a5419cebbfb73734918eaed59fd
+
+# TEST CURVE secp521r1
+
+PrivateKey=ALICE_secp521r1
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIAFBIz3FLAuX8VCWzM
+wu1f/tm8pf1QqnsdLqaIWCQAJa2W5ldpJTYfkj1gGxM44AD3qHnkXISvNLwwuxI1
+hr2+pOGhgYkDgYYABACWlOOFYk/p3AS2LxEQWBuMm6uIjo3XArjh1QrsLcUc5hhi
+82CIz6kKwKjCnYRDHq4iv1x63rVEzGGhQOM1g+cRVwHSpfbBpaxK7bMLkVFOOavv
+OdcdyRHaHsvxw2pREmdS/GwtfgT8odQrG06KMIwVeL+H08fGJSbPX0Zock0DOPCp
+aw==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_secp521r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAlpTjhWJP6dwEti8REFgbjJuriI6N
+1wK44dUK7C3FHOYYYvNgiM+pCsCowp2EQx6uIr9cet61RMxhoUDjNYPnEVcB0qX2
+waWsSu2zC5FRTjmr7znXHckR2h7L8cNqURJnUvxsLX4E/KHUKxtOijCMFXi/h9PH
+xiUmz19GaHJNAzjwqWs=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_secp521r1:ALICE_secp521r1_PUB
+
+
+PrivateKey=BOB_secp521r1
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIA9C/sMWveRlHPr9P5
+cc3U+1L2/zB0VtHewKSQRWZ67SmS4+m7uXTqUVSLRHiQEgQid0cg77gSxXPlmV+z
+y0f3zd+hgYkDgYYABAE18N3SwDGtea3IOqUdh3j0JtnMeP41i/agEBlxK8/iEBXc
+Q61mkIrQIKcabRhoylEugXHiyNnqNQOD4DUa0bTKzAHtJ4UqqbEVno6byRmcUQwb
+mvG89eS8GLEmk5X/O2atHU4yIGTuTRQWn/BTJUCS+OgJz4FZdadscc5Z640EZqSD
+iw==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_secp521r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBNfDd0sAxrXmtyDqlHYd49CbZzHj+
+NYv2oBAZcSvP4hAV3EOtZpCK0CCnGm0YaMpRLoFx4sjZ6jUDg+A1GtG0yswB7SeF
+KqmxFZ6Om8kZnFEMG5rxvPXkvBixJpOV/ztmrR1OMiBk7k0UFp/wUyVAkvjoCc+B
+WXWnbHHOWeuNBGakg4s=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_secp521r1:BOB_secp521r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_secp521r1
+PeerKey=BOB_secp521r1_PUB
+SharedSecret=018c8f33e544a0fa8854dcd96bdba75b7687d1c42b2ff1bf0a06d49c424fee96d8a7f3af3119dcbfabc1c147477c50f7c72971956f9bb17ddec6d02b2187f06cf4be
+
+# ECDH Bob with Alice peer
+Derive=BOB_secp521r1
+PeerKey=ALICE_secp521r1_PUB
+SharedSecret=018c8f33e544a0fa8854dcd96bdba75b7687d1c42b2ff1bf0a06d49c424fee96d8a7f3af3119dcbfabc1c147477c50f7c72971956f9bb17ddec6d02b2187f06cf4be
+
+# TEST CURVE prime192v1
+
+PrivateKey=ALICE_prime192v1
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBjxfXvSFNqD2UzFVN1L
+bQrPlzop7dxQq/ehNAMyAATibpGuYzCjkT1tWLYEogpKz74WqhvbQtZPkCYQCin1
+cmZuNW+BZ0jyVEpGlpnZPMg=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_prime192v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAE4m6RrmMwo5E9bVi2BKIKSs++Fqob
+20LWT5AmEAop9XJmbjVvgWdI8lRKRpaZ2TzI
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_prime192v1:ALICE_prime192v1_PUB
+
+
+PrivateKey=BOB_prime192v1
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBhewaqXNZlYyqnmuEEE
+Y/oUXe3/jpzhmyGhNAMyAASkpwNJEP/1FuuWKCDDUm26iyqrs+zKwayZnaF77YC6
+qCtgia7yNcSl9tlWHh3gQgw=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_prime192v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEpKcDSRD/9Rbrliggw1Jtuosqq7Ps
+ysGsmZ2he+2AuqgrYImu8jXEpfbZVh4d4EIM
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_prime192v1:BOB_prime192v1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_prime192v1
+PeerKey=BOB_prime192v1_PUB
+SharedSecret=be2a779b587f8f5d7c9d8f006e0a6d0e996c9c63c255f861
+
+# ECDH Bob with Alice peer
+Derive=BOB_prime192v1
+PeerKey=ALICE_prime192v1_PUB
+SharedSecret=be2a779b587f8f5d7c9d8f006e0a6d0e996c9c63c255f861
+
+# TEST CURVE prime192v2
+
+PrivateKey=ALICE_prime192v2
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQIEVTBTAgEBBBgtIuKqpRc7rEYuGx1a
+dDxcvso0NAZw+fWhNAMyAATMSHwJPq761VawpRbKLB3uuDSng4WeFPjhvubL6g8V
+8UqFaKRED5PUIQ0lYStVCao=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_prime192v2_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQIDMgAEzEh8CT6u+tVWsKUWyiwd7rg0p4OF
+nhT44b7my+oPFfFKhWikRA+T1CENJWErVQmq
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_prime192v2:ALICE_prime192v2_PUB
+
+
+PrivateKey=BOB_prime192v2
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQIEVTBTAgEBBBggTjqWC1/iHrvKR9/u
+1gxpL2tWJkkAMYuhNAMyAASa4nG+wLPTHxfkqiTII5PBLAKXmXUf5dMtpmApcjrj
+XjnwJIJEQr80MK9+g1raqN8=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_prime192v2_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQIDMgAEmuJxvsCz0x8X5KokyCOTwSwCl5l1
+H+XTLaZgKXI641458CSCREK/NDCvfoNa2qjf
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_prime192v2:BOB_prime192v2_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_prime192v2
+PeerKey=BOB_prime192v2_PUB
+SharedSecret=9b37033a48af7fe1825c062625f8b57d4b3ac48c12bec69c
+
+# ECDH Bob with Alice peer
+Derive=BOB_prime192v2
+PeerKey=ALICE_prime192v2_PUB
+SharedSecret=9b37033a48af7fe1825c062625f8b57d4b3ac48c12bec69c
+
+# TEST CURVE prime192v3
+
+PrivateKey=ALICE_prime192v3
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQMEVTBTAgEBBBg0iDdcgise1/v2k6js
+UkgKwXPqx/uJJTehNAMyAAQ6/i0pSNHk824XO6Mv0irQfSv2yzGQy+DwWo/klZco
+kPDcXKEdU8ZmnAABH7j6UV8=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_prime192v3_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAEOv4tKUjR5PNuFzujL9Iq0H0r9ssx
+kMvg8FqP5JWXKJDw3FyhHVPGZpwAAR+4+lFf
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_prime192v3:ALICE_prime192v3_PUB
+
+
+PrivateKey=BOB_prime192v3
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQMEVTBTAgEBBBieW1huqwVU3ev7qgpT
+LFjYEMRPONOAcaKhNAMyAASXaTjBIQX686BZJAidX+hFuvDyxbN1vBQvp40OVl0L
+CG4hoZ+5McLtPATL+osKvX8=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_prime192v3_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAEl2k4wSEF+vOgWSQInV/oRbrw8sWz
+dbwUL6eNDlZdCwhuIaGfuTHC7TwEy/qLCr1/
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_prime192v3:BOB_prime192v3_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_prime192v3
+PeerKey=BOB_prime192v3_PUB
+SharedSecret=7133f1d99b0e03ed9c4d78d3be40598cf419cd588283ac29
+
+# ECDH Bob with Alice peer
+Derive=BOB_prime192v3
+PeerKey=ALICE_prime192v3_PUB
+SharedSecret=7133f1d99b0e03ed9c4d78d3be40598cf419cd588283ac29
+
+# TEST CURVE prime239v1
+
+PrivateKey=ALICE_prime239v1
+-----BEGIN PRIVATE KEY-----
+MIGBAgEAMBMGByqGSM49AgEGCCqGSM49AwEEBGcwZQIBAQQeRmiZXaqr3u11hiGK
+1cH75U/rKc1+8YMqxcXhACRkoUADPgAEfIJpVggCXUROHgX4h5h66/0Pgr/aMtMq
+ExHQP7zxWYzf3cYAP4V/t9OCT582WjMLnCmdlFnYUPD50dyU
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_prime239v1_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQQDPgAEfIJpVggCXUROHgX4h5h66/0Pgr/a
+MtMqExHQP7zxWYzf3cYAP4V/t9OCT582WjMLnCmdlFnYUPD50dyU
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_prime239v1:ALICE_prime239v1_PUB
+
+
+PrivateKey=BOB_prime239v1
+-----BEGIN PRIVATE KEY-----
+MIGBAgEAMBMGByqGSM49AgEGCCqGSM49AwEEBGcwZQIBAQQeAbGRRoBgqHVUBFot
+5m9Ytm8RU+ISkA33VgQrHGM/oUADPgAEdRgPsL/Mi3ucJcYibvFJQxDDyLqgUH3i
+Mk266RAHFqoioiGT72TOidBhi+VrUn6NOIyna8foww2M45vR
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_prime239v1_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQQDPgAEdRgPsL/Mi3ucJcYibvFJQxDDyLqg
+UH3iMk266RAHFqoioiGT72TOidBhi+VrUn6NOIyna8foww2M45vR
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_prime239v1:BOB_prime239v1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_prime239v1
+PeerKey=BOB_prime239v1_PUB
+SharedSecret=2ef92070f7a5fa14c8a67a8aa3080b4c4a597eafaa81d3f698599ac0be1e
+
+# ECDH Bob with Alice peer
+Derive=BOB_prime239v1
+PeerKey=ALICE_prime239v1_PUB
+SharedSecret=2ef92070f7a5fa14c8a67a8aa3080b4c4a597eafaa81d3f698599ac0be1e
+
+# TEST CURVE prime239v2
+
+PrivateKey=ALICE_prime239v2
+-----BEGIN PRIVATE KEY-----
+MIGBAgEAMBMGByqGSM49AgEGCCqGSM49AwEFBGcwZQIBAQQeemq6S5puHF94ZW/W
+6BMRim+HFFM0zxVZQpWG+bf2oUADPgAELukUodCQsmwzGVR3lLEGKQ6quGd6kDXN
+DjjcMrDabBtWKDuuUrgjBGsI7NRbCQ0a5NWTo+EnWe0LXbYN
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_prime239v2_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQUDPgAELukUodCQsmwzGVR3lLEGKQ6quGd6
+kDXNDjjcMrDabBtWKDuuUrgjBGsI7NRbCQ0a5NWTo+EnWe0LXbYN
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_prime239v2:ALICE_prime239v2_PUB
+
+
+PrivateKey=BOB_prime239v2
+-----BEGIN PRIVATE KEY-----
+MIGBAgEAMBMGByqGSM49AgEGCCqGSM49AwEFBGcwZQIBAQQeAEaCw7ulF8GZcmbj
+aDmcrw8Gex+hX0rNvwzoC7+6oUADPgAEKh0EmYUpj6XbuEGxMBaPmECT8L++ihUW
+ms4xau0RUYij4HgS1gjSMDfyvvCBUy10RIkw+goxVdUhfW2u
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_prime239v2_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQUDPgAEKh0EmYUpj6XbuEGxMBaPmECT8L++
+ihUWms4xau0RUYij4HgS1gjSMDfyvvCBUy10RIkw+goxVdUhfW2u
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_prime239v2:BOB_prime239v2_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_prime239v2
+PeerKey=BOB_prime239v2_PUB
+SharedSecret=5bdab282dc371ee88ade318a6aad2b329ec3ea957e0df18b7a691c1bf703
+
+# ECDH Bob with Alice peer
+Derive=BOB_prime239v2
+PeerKey=ALICE_prime239v2_PUB
+SharedSecret=5bdab282dc371ee88ade318a6aad2b329ec3ea957e0df18b7a691c1bf703
+
+# TEST CURVE prime239v3
+
+PrivateKey=ALICE_prime239v3
+-----BEGIN PRIVATE KEY-----
+MIGBAgEAMBMGByqGSM49AgEGCCqGSM49AwEGBGcwZQIBAQQeGlwSPAYfmiP9r2nA
+SD52VqKyZpEnU+Jmynlf2DI7oUADPgAEFlIB4Yl+5J2u4JLYv8z+itwf+XnOL/BD
+qNK3uRoYPKHYdYWJkgXxkQ1QDZwNppAQRcxSgTKnJ6V8crbp
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_prime239v3_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQYDPgAEFlIB4Yl+5J2u4JLYv8z+itwf+XnO
+L/BDqNK3uRoYPKHYdYWJkgXxkQ1QDZwNppAQRcxSgTKnJ6V8crbp
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_prime239v3:ALICE_prime239v3_PUB
+
+
+PrivateKey=BOB_prime239v3
+-----BEGIN PRIVATE KEY-----
+MIGBAgEAMBMGByqGSM49AgEGCCqGSM49AwEGBGcwZQIBAQQeU1KIfJBGvItr8//g
+kW1zoPkveo9lvXBlnUV5/5rDoUADPgAEepc03AEEgOnI+ivpjGV4ypvn8sRQaVAb
+3QAeIEYDQLUBFOdb3kF2MvlnLKV3OCdB3GQgNfZtEHbdn0bq
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_prime239v3_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQYDPgAEepc03AEEgOnI+ivpjGV4ypvn8sRQ
+aVAb3QAeIEYDQLUBFOdb3kF2MvlnLKV3OCdB3GQgNfZtEHbdn0bq
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_prime239v3:BOB_prime239v3_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_prime239v3
+PeerKey=BOB_prime239v3_PUB
+SharedSecret=78e80ae760061178bd005e9e3634333971468bc6d3f82baee238c5ed32f9
+
+# ECDH Bob with Alice peer
+Derive=BOB_prime239v3
+PeerKey=ALICE_prime239v3_PUB
+SharedSecret=78e80ae760061178bd005e9e3634333971468bc6d3f82baee238c5ed32f9
+
+# TEST CURVE prime256v1
+
+PrivateKey=ALICE_prime256v1
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQglUPDk8gQ8lMj38V7
+0jPBZDfQUx5pNOVSKOMTqlh04POhRANCAARq87w+K0q9b1mzJGh309kjNvYTS02m
+YkHKxAewiZwmt/5w+5uywz/+0130SdAWbXtECjaHUK94YEHzp0G/PCl5
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_prime256v1_PUB
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEavO8PitKvW9ZsyRod9PZIzb2E0tN
+pmJBysQHsImcJrf+cPubssM//tNd9EnQFm17RAo2h1CveGBB86dBvzwpeQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_prime256v1:ALICE_prime256v1_PUB
+
+
+PrivateKey=BOB_prime256v1
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgNsLfn/sRZfm9ZcM7
+xURiUHT7+w8Jgk9SbwTVDjpLYYmhRANCAASRmyKNgUbADGxkIOAVh9T7IXv2ZDT6
+I5YMW6wOs27VMOAD0AiNLrv7sW1TdqxkUtF17/GFpLvFOuZcbdX4p3i/
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_prime256v1_PUB
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEkZsijYFGwAxsZCDgFYfU+yF79mQ0
++iOWDFusDrNu1TDgA9AIjS67+7FtU3asZFLRde/xhaS7xTrmXG3V+Kd4vw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_prime256v1:BOB_prime256v1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_prime256v1
+PeerKey=BOB_prime256v1_PUB
+SharedSecret=390021fbca00d959c1adaf7e9cedef0e65a582489eab9adbe739ef66bf82adb4
+
+# ECDH Bob with Alice peer
+Derive=BOB_prime256v1
+PeerKey=ALICE_prime256v1_PUB
+SharedSecret=390021fbca00d959c1adaf7e9cedef0e65a582489eab9adbe739ef66bf82adb4
+
+# TEST CURVE sect113r1
+
+PrivateKey=ALICE_sect113r1
+-----BEGIN PRIVATE KEY-----
+MFECAQAwEAYHKoZIzj0CAQYFK4EEAAQEOjA4AgEBBA8AcrP9u8BlWb4knkGVZmSh
+IgMgAAQBviTf62+1V4etJb2D9LkBadAFmdmRS+rVI3spTYs=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_sect113r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFK4EEAAQDIAAEAb4k3+tvtVeHrSW9g/S5AWnQBZnZkUvq
+1SN7KU2L
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_sect113r1:ALICE_sect113r1_PUB
+
+
+PrivateKey=BOB_sect113r1
+-----BEGIN PRIVATE KEY-----
+MFECAQAwEAYHKoZIzj0CAQYFK4EEAAQEOjA4AgEBBA8AmhEq3A9KdbKQUz1F/Myh
+IgMgAAQAuSRBNxXjIjezwrGF8VkBxWR69g0UJaBIIArpdNo=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_sect113r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFK4EEAAQDIAAEALkkQTcV4yI3s8KxhfFZAcVkevYNFCWg
+SCAK6XTa
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_sect113r1:BOB_sect113r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_sect113r1
+PeerKey=BOB_sect113r1_PUB
+SharedSecret=015405437add26b8841c62a9016c85
+
+# ECDH Bob with Alice peer
+Derive=BOB_sect113r1
+PeerKey=ALICE_sect113r1_PUB
+SharedSecret=015405437add26b8841c62a9016c85
+
+# TEST CURVE sect113r2
+
+PrivateKey=ALICE_sect113r2
+-----BEGIN PRIVATE KEY-----
+MFECAQAwEAYHKoZIzj0CAQYFK4EEAAUEOjA4AgEBBA8ABqFZ6Z7BKKjvrzXh99Wh
+IgMgAAQBTQTHA9uSxcZ8kvsSVUUBcLQ4m45U10VwVCQ+oGQ=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_sect113r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFK4EEAAUDIAAEAU0ExwPbksXGfJL7ElVFAXC0OJuOVNdF
+cFQkPqBk
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_sect113r2:ALICE_sect113r2_PUB
+
+
+PrivateKey=BOB_sect113r2
+-----BEGIN PRIVATE KEY-----
+MFECAQAwEAYHKoZIzj0CAQYFK4EEAAUEOjA4AgEBBA8ABPHhZ0kCp0TocQJIuiuh
+IgMgAAQBSi7u+Ur776iGyg0Ij6UAN70IzPVZxGK5zPxp6wo=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_sect113r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFK4EEAAUDIAAEAUou7vlK+++ohsoNCI+lADe9CMz1WcRi
+ucz8aesK
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_sect113r2:BOB_sect113r2_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_sect113r2
+PeerKey=BOB_sect113r2_PUB
+SharedSecret=014231c5e9e28d451aa44a755407e1
+
+# ECDH Bob with Alice peer
+Derive=BOB_sect113r2
+PeerKey=ALICE_sect113r2_PUB
+SharedSecret=014231c5e9e28d451aa44a755407e1
+
+# TEST CURVE sect131r1
+
+PrivateKey=ALICE_sect131r1
+-----BEGIN PRIVATE KEY-----
+MFcCAQAwEAYHKoZIzj0CAQYFK4EEABYEQDA+AgEBBBEAUCFDwJLLThLHiDlw/Qcn
+8aEmAyQABAAU+ywF9iPv6LDldKOLhLgXBRI7EpZnbXPXhUmkQWPhHAQ=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_sect131r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDgwEAYHKoZIzj0CAQYFK4EEABYDJAAEABT7LAX2I+/osOV0o4uEuBcFEjsSlmdt
+c9eFSaRBY+EcBA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_sect131r1:ALICE_sect131r1_PUB
+
+
+PrivateKey=BOB_sect131r1
+-----BEGIN PRIVATE KEY-----
+MFcCAQAwEAYHKoZIzj0CAQYFK4EEABYEQDA+AgEBBBEDxxMzxjxJmYfSZvWJKq+V
+vKEmAyQABAFHQ2a+h+Yn5N4Lt0IoJcVVBrf9xkZNS0xxblh+0wndq9s=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_sect131r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDgwEAYHKoZIzj0CAQYFK4EEABYDJAAEAUdDZr6H5ifk3gu3QiglxVUGt/3GRk1L
+THFuWH7TCd2r2w==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_sect131r1:BOB_sect131r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_sect131r1
+PeerKey=BOB_sect131r1_PUB
+SharedSecret=009e4acc8c1ba3a129a9ad83a733d7d702
+
+# ECDH Bob with Alice peer
+Derive=BOB_sect131r1
+PeerKey=ALICE_sect131r1_PUB
+SharedSecret=009e4acc8c1ba3a129a9ad83a733d7d702
+
+# TEST CURVE sect131r2
+
+PrivateKey=ALICE_sect131r2
+-----BEGIN PRIVATE KEY-----
+MFcCAQAwEAYHKoZIzj0CAQYFK4EEABcEQDA+AgEBBBEDHPPtQCKJB8g01rMkT8Sk
+9aEmAyQABAcWl2Z/1kIc4mWCbRH4+c/2B47RC31JyifKvkxkHt05x3g=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_sect131r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDgwEAYHKoZIzj0CAQYFK4EEABcDJAAEBxaXZn/WQhziZYJtEfj5z/YHjtELfUnK
+J8q+TGQe3TnHeA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_sect131r2:ALICE_sect131r2_PUB
+
+
+PrivateKey=BOB_sect131r2
+-----BEGIN PRIVATE KEY-----
+MFcCAQAwEAYHKoZIzj0CAQYFK4EEABcEQDA+AgEBBBEDR9ez/YtS29S7/R5+rUiX
+VKEmAyQABALZHNBITDoigpOwTzczlaN9AsRk5JzMUJXYkvBEqj+YILQ=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_sect131r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDgwEAYHKoZIzj0CAQYFK4EEABcDJAAEAtkc0EhMOiKCk7BPNzOVo30CxGTknMxQ
+ldiS8ESqP5ggtA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_sect131r2:BOB_sect131r2_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_sect131r2
+PeerKey=BOB_sect131r2_PUB
+SharedSecret=03cbec3a3050c7f13d4801ad692d61c417
+
+# ECDH Bob with Alice peer
+Derive=BOB_sect131r2
+PeerKey=ALICE_sect131r2_PUB
+SharedSecret=03cbec3a3050c7f13d4801ad692d61c417
+
+# TEST CURVE sect163k1
+
+PrivateKey=ALICE_sect163k1
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUBxkeGOXE86PAijpk8trN/
+f3kl4UmhLgMsAAQD1hrDCJ2MSFKZ6Q11cTllX/l5HY0Hg5XZCxMFC84AaczwPtNJ
+YNCxfCk=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_sect163k1_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEA9YawwidjEhSmekNdXE5ZV/5eR2NB4OV
+2QsTBQvOAGnM8D7TSWDQsXwp
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_sect163k1:ALICE_sect163k1_PUB
+
+
+PrivateKey=BOB_sect163k1
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUCUJ5kItSfXidHXsgokcS7
+nzPFbOShLgMsAAQGrYNJ1qgdb3A9ISOmTujfS+WYFKwBXXrJEluAkeNh3jXnDq8X
++XBB0k8=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_sect163k1_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBq2DSdaoHW9wPSEjpk7o30vlmBSsAV16
+yRJbgJHjYd415w6vF/lwQdJP
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_sect163k1:BOB_sect163k1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_sect163k1
+PeerKey=BOB_sect163k1_PUB
+SharedSecret=07bfdf00759b383aa7741ae4634400f8ddf2047092
+
+# ECDH Bob with Alice peer
+Derive=BOB_sect163k1
+PeerKey=ALICE_sect163k1_PUB
+SharedSecret=07bfdf00759b383aa7741ae4634400f8ddf2047092
+
+# TEST CURVE sect163r1
+
+PrivateKey=ALICE_sect163r1
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAIETDBKAgEBBBUBl9zmlPmFF5v9h1IIENAx
+1b8tj0+hLgMsAAQE3j8Jn58CCtEDwvOZ5DwgYGBYvIECz1zN8UwPfTFSdXjTWQcr
+9gWxNMA=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_sect163r1_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAIDLAAEBN4/CZ+fAgrRA8LzmeQ8IGBgWLyBAs9c
+zfFMD30xUnV401kHK/YFsTTA
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_sect163r1:ALICE_sect163r1_PUB
+
+
+PrivateKey=BOB_sect163r1
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAIETDBKAgEBBBUA/nzN5yCavvZlXyDGEihW
+rwG360+hLgMsAAQDt6XZHfzXABSTnGhzfoPtfdLZgaoGhBdeWz+318vNmC6AMJP+
+PntHzsA=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_sect163r1_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAIDLAAEA7el2R381wAUk5xoc36D7X3S2YGqBoQX
+Xls/t9fLzZgugDCT/j57R87A
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_sect163r1:BOB_sect163r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_sect163r1
+PeerKey=BOB_sect163r1_PUB
+SharedSecret=02355c765bbc07fcc44bb1496e490912f6df56e6d4
+
+# ECDH Bob with Alice peer
+Derive=BOB_sect163r1
+PeerKey=ALICE_sect163r1_PUB
+SharedSecret=02355c765bbc07fcc44bb1496e490912f6df56e6d4
+
+# TEST CURVE sect163r2
+
+PrivateKey=ALICE_sect163r2
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUDjH2G7BkPTBM4VtljaQr8
+sXVLNOqhLgMsAAQHHqWxJWR2KrHCPp/PSjZIdK88ET0A323/UOTxhYHwsLpR7rp3
+ahq1lQ8=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_sect163r2_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBx6lsSVkdiqxwj6fz0o2SHSvPBE9AN9t
+/1Dk8YWB8LC6Ue66d2oatZUP
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_sect163r2:ALICE_sect163r2_PUB
+
+
+PrivateKey=BOB_sect163r2
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUBXOM9Tm6sKXUlRLlW0HgC
+NTDxW2ihLgMsAAQGxa8xRcC+TIcDgGtehDVEV1PoBokBwtILj16NPYC0aBZI8/nF
+F4jhgmc=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_sect163r2_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBsWvMUXAvkyHA4BrXoQ1RFdT6AaJAcLS
+C49ejT2AtGgWSPP5xReI4YJn
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_sect163r2:BOB_sect163r2_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_sect163r2
+PeerKey=BOB_sect163r2_PUB
+SharedSecret=040df54e6df412790ef5c0fafbbfcba5136b872951
+
+# ECDH Bob with Alice peer
+Derive=BOB_sect163r2
+PeerKey=ALICE_sect163r2_PUB
+SharedSecret=040df54e6df412790ef5c0fafbbfcba5136b872951
+
+# TEST CURVE sect193r1
+
+PrivateKey=ALICE_sect193r1
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEAYHKoZIzj0CAQYFK4EEABgEWDBWAgEBBBkAEQlofBlvj8zDK5o4CCfA
+aOQOmlAyTimBoTYDNAAEAKBcyRBxQDZTvpPM39ZVXYQS5aJwZfUnNwBn5T26m15R
+M4MLnYGdklcAM8oMOML999w=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_sect193r1_PUB
+-----BEGIN PUBLIC KEY-----
+MEgwEAYHKoZIzj0CAQYFK4EEABgDNAAEAKBcyRBxQDZTvpPM39ZVXYQS5aJwZfUn
+NwBn5T26m15RM4MLnYGdklcAM8oMOML999w=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_sect193r1:ALICE_sect193r1_PUB
+
+
+PrivateKey=BOB_sect193r1
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEAYHKoZIzj0CAQYFK4EEABgEWDBWAgEBBBkAnxvYLKZaw4Rj24WTRBfg
+iar5vp3R3pCJoTYDNAAEAXw0PWt3PtZT5v9aH0o6WnFtFGOBNEUpYQE/jBjzUHIC
+qMNZTHy9gT2R9yc0GBZ/Dic=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_sect193r1_PUB
+-----BEGIN PUBLIC KEY-----
+MEgwEAYHKoZIzj0CAQYFK4EEABgDNAAEAXw0PWt3PtZT5v9aH0o6WnFtFGOBNEUp
+YQE/jBjzUHICqMNZTHy9gT2R9yc0GBZ/Dic=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_sect193r1:BOB_sect193r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_sect193r1
+PeerKey=BOB_sect193r1_PUB
+SharedSecret=00458b4c5ad122de5a377bea0adf1ab87bcb961b24ed764f47
+
+# ECDH Bob with Alice peer
+Derive=BOB_sect193r1
+PeerKey=ALICE_sect193r1_PUB
+SharedSecret=00458b4c5ad122de5a377bea0adf1ab87bcb961b24ed764f47
+
+# TEST CURVE sect193r2
+
+PrivateKey=ALICE_sect193r2
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEAYHKoZIzj0CAQYFK4EEABkEWDBWAgEBBBkAj54XQW+b3bnX9duvqaa+
+lPTNcvOlxRAvoTYDNAAEAHhW6xjH4TNPs/e12tsZcsGD+a92kAWkwQFc4m1ISx4o
+mtNyCVI7FXV5zNnaGWVACT4=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_sect193r2_PUB
+-----BEGIN PUBLIC KEY-----
+MEgwEAYHKoZIzj0CAQYFK4EEABkDNAAEAHhW6xjH4TNPs/e12tsZcsGD+a92kAWk
+wQFc4m1ISx4omtNyCVI7FXV5zNnaGWVACT4=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_sect193r2:ALICE_sect193r2_PUB
+
+
+PrivateKey=BOB_sect193r2
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEAYHKoZIzj0CAQYFK4EEABkEWDBWAgEBBBkAvMiVR0abk6pHoeOIBESL
+fB9B4gsZJjLsoTYDNAAEADtKDcwL660+Mm11Vl254GI3TnD+fragdwF+wY5qlMu5
+VtrUDMHuAP0q3eGQUsrzNo0=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_sect193r2_PUB
+-----BEGIN PUBLIC KEY-----
+MEgwEAYHKoZIzj0CAQYFK4EEABkDNAAEADtKDcwL660+Mm11Vl254GI3TnD+frag
+dwF+wY5qlMu5VtrUDMHuAP0q3eGQUsrzNo0=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_sect193r2:BOB_sect193r2_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_sect193r2
+PeerKey=BOB_sect193r2_PUB
+SharedSecret=019d1f316d204a9cd1b9632cebb4accddb204158be3e435891
+
+# ECDH Bob with Alice peer
+Derive=BOB_sect193r2
+PeerKey=ALICE_sect193r2_PUB
+SharedSecret=019d1f316d204a9cd1b9632cebb4accddb204158be3e435891
+
+# TEST CURVE sect233k1
+
+PrivateKey=ALICE_sect233k1
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB1aR7qaKm1vmZWK2bGsJ1rX
+mH6BpTkW4t1L4zSf/KFAAz4ABADcDiv+bTvPVViqYLNz06VO5wodry+sGi6fnJIr
+QQCTfZ9d5whiIsbY5Thlcm7I0A/cIGoShA/6LumOVA==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_sect233k1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEANwOK/5tO89VWKpgs3PTpU7nCh2vL6wa
+Lp+ckitBAJN9n13nCGIixtjlOGVybsjQD9wgahKED/ou6Y5U
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_sect233k1:ALICE_sect233k1_PUB
+
+
+PrivateKey=BOB_sect233k1
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB0oa5BrzYxm6mn51Xyphn6X
+OUjKc9oMDHCowAyHTaFAAz4ABAGKiFuFJVQeymHYRVnt2LNF2MSaTMcL9JGSPn2z
+OwBis5MS4kgEFakWQl7KpGiy3vS89wmpblvHLJ/+IQ==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_sect233k1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAYqIW4UlVB7KYdhFWe3Ys0XYxJpMxwv0
+kZI+fbM7AGKzkxLiSAQVqRZCXsqkaLLe9Lz3CaluW8csn/4h
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_sect233k1:BOB_sect233k1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_sect233k1
+PeerKey=BOB_sect233k1_PUB
+SharedSecret=00a5e5f2e992f4360d530dd365d14f5c6013212e14f4ea258c91c71f1512
+
+# ECDH Bob with Alice peer
+Derive=BOB_sect233k1
+PeerKey=ALICE_sect233k1_PUB
+SharedSecret=00a5e5f2e992f4360d530dd365d14f5c6013212e14f4ea258c91c71f1512
+
+# TEST CURVE sect233r1
+
+PrivateKey=ALICE_sect233r1
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4AEN6fePR2gizyXzU6kIgU
+Gijp5+IQAXoNBfKnVeChQAM+AAQB0kEwu2fwQWo1v1j7XQ8uJT3iMwRC8w+cxgxx
+GQ4B/FyjrhIUpEDWaMqfV23McZ6WdbIUe3MZ7K5pG38=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_sect233r1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAdJBMLtn8EFqNb9Y+10PLiU94jMEQvMP
+nMYMcRkOAfxco64SFKRA1mjKn1dtzHGelnWyFHtzGeyuaRt/
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_sect233r1:ALICE_sect233r1_PUB
+
+
+PrivateKey=BOB_sect233r1
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4AXHWOeS6fG0XCH3FnHDuS
+IcELUeDG+AYNNeLVZd6hQAM+AAQAYRRYH017uxcaMPF3GOsL4bvodW1yZLEtL3pm
+CkcAfqJI/4niCr8uHKh0gBa2JBjBWMV1u8Mpf60uvok=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_sect233r1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAGEUWB9Ne7sXGjDxdxjrC+G76HVtcmSx
+LS96ZgpHAH6iSP+J4gq/LhyodIAWtiQYwVjFdbvDKX+tLr6J
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_sect233r1:BOB_sect233r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_sect233r1
+PeerKey=BOB_sect233r1_PUB
+SharedSecret=01625f3fcd367ee7cd74c67cca02dccfce6c3b19ef07e358ed943d17a8e2
+
+# ECDH Bob with Alice peer
+Derive=BOB_sect233r1
+PeerKey=ALICE_sect233r1_PUB
+SharedSecret=01625f3fcd367ee7cd74c67cca02dccfce6c3b19ef07e358ed943d17a8e2
+
+# TEST CURVE sect239k1
+
+PrivateKey=ALICE_sect239k1
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEAAMEZzBlAgEBBB4MhpuQTtDeLBboZgiW11d/
+KBlgUL4YvTjZ8zg4HR2hQAM+AAQafRD6X3L/7c/FN69KuA04a4bhxHZezmz1G15m
+tltwl8zlWsR5+GNToxV0OBLbStAQbXxqBa2Gg83B0oc=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_sect239k1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEAAMDPgAEGn0Q+l9y/+3PxTevSrgNOGuG4cR2Xs5s
+9RteZrZbcJfM5VrEefhjU6MVdDgS20rQEG18agWthoPNwdKH
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_sect239k1:ALICE_sect239k1_PUB
+
+
+PrivateKey=BOB_sect239k1
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEAAMEZzBlAgEBBB4FBG477KvylisppUFwbDl/
+SRGnX5FFmfw/xWIiEMehQAM+AAQFii094UX6F5m8Dk0eI/DhF3+IDUu7h81hTdyZ
+xxET0IokxFkTUf/re9WPA7LxPOCuiIPZUNVCRxRWSuU=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_sect239k1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEAAMDPgAEBYotPeFF+heZvA5NHiPw4Rd/iA1Lu4fN
+YU3cmccRE9CKJMRZE1H/63vVjwOy8TzgroiD2VDVQkcUVkrl
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_sect239k1:BOB_sect239k1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_sect239k1
+PeerKey=BOB_sect239k1_PUB
+SharedSecret=4d1c9a8ae73f754d0a593d6e426114f4f67d7c8082ccc4e04a72b0d2aff8
+
+# ECDH Bob with Alice peer
+Derive=BOB_sect239k1
+PeerKey=ALICE_sect239k1_PUB
+SharedSecret=4d1c9a8ae73f754d0a593d6e426114f4f67d7c8082ccc4e04a72b0d2aff8
+
+# TEST CURVE sect283k1
+
+PrivateKey=ALICE_sect283k1
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAGhnsmZ2UDKV3QKmq3k+
+33LQ6n5aCYvKXcMgiZlBS/RrVgIRoUwDSgAEBSgpOw5TMTc4O8HHhw5atJl5mrnW
+uC6oWVYRYpD1IMvPNTRsAYo4SYRmPIfgzVv/ESVcHVaD1lPNo+eq0HN1qhvRX+4r
+mGO7
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_sect283k1_PUB
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBSgpOw5TMTc4O8HHhw5atJl5mrnWuC6o
+WVYRYpD1IMvPNTRsAYo4SYRmPIfgzVv/ESVcHVaD1lPNo+eq0HN1qhvRX+4rmGO7
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_sect283k1:ALICE_sect283k1_PUB
+
+
+PrivateKey=BOB_sect283k1
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAAJXIwfWjYbiM5jEcNw8
+8/1kbEnhVjWGivO7zDPts7AuKSMkoUwDSgAEA5Ause5pdH6ks7PdyPeoPbYAkz6V
+D5v8KTV1b97PiYmZNDeoBY78FQyHRSvdSo+oRew2RacpaCAntRoiWHyN1nAdDSzj
+CN/m
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_sect283k1_PUB
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEA5Ause5pdH6ks7PdyPeoPbYAkz6VD5v8
+KTV1b97PiYmZNDeoBY78FQyHRSvdSo+oRew2RacpaCAntRoiWHyN1nAdDSzjCN/m
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_sect283k1:BOB_sect283k1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_sect283k1
+PeerKey=BOB_sect283k1_PUB
+SharedSecret=02f2e682c2f60d7261624f3661a5e85fca920443b72aa4dd5a540082e65e552302d8f825
+
+# ECDH Bob with Alice peer
+Derive=BOB_sect283k1
+PeerKey=ALICE_sect283k1_PUB
+SharedSecret=02f2e682c2f60d7261624f3661a5e85fca920443b72aa4dd5a540082e65e552302d8f825
+
+# TEST CURVE sect283r1
+
+PrivateKey=ALICE_sect283r1
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkAi4Jrhu19kt7H8jw1FO7
+VzCxh6p0pI0ogl3q9ev5NFkufZkZoUwDSgAEAHx6cwnWw+9l3oZHpx+R8nu7SLqU
+S40TU2uL0W6VTNANIvcJB1b++3okH0FJgFAahbaotafYTyfqCoY11VaxnVqU5/aE
+7jsD
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_sect283r1_PUB
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAHx6cwnWw+9l3oZHpx+R8nu7SLqUS40T
+U2uL0W6VTNANIvcJB1b++3okH0FJgFAahbaotafYTyfqCoY11VaxnVqU5/aE7jsD
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_sect283r1:ALICE_sect283r1_PUB
+
+
+PrivateKey=BOB_sect283r1
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkACD04gJaVfVxK/Dpbxjq
+rzZWc6B76a23MK/IQD1jMlGPQzzxoUwDSgAEA13mIYMvik12DBp8JkdETMB1ewOw
+22C/xhnzLEHmgrG0ewxeANVAoIZy2uv5t0VUJIp4PYdLNaqIguN+9v6U78O4lass
+Iq5I
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_sect283r1_PUB
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEA13mIYMvik12DBp8JkdETMB1ewOw22C/
+xhnzLEHmgrG0ewxeANVAoIZy2uv5t0VUJIp4PYdLNaqIguN+9v6U78O4lassIq5I
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_sect283r1:BOB_sect283r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_sect283r1
+PeerKey=BOB_sect283r1_PUB
+SharedSecret=05778bc1afcf38d7dddb2150cacbfe4d38dc588968fd8b2e859c28ae2629d3435f89f6cc
+
+# ECDH Bob with Alice peer
+Derive=BOB_sect283r1
+PeerKey=ALICE_sect283r1_PUB
+SharedSecret=05778bc1afcf38d7dddb2150cacbfe4d38dc588968fd8b2e859c28ae2629d3435f89f6cc
+
+# TEST CURVE sect409k1
+
+PrivateKey=ALICE_sect409k1
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDMg1vV7wiPe1ovX+ukz
+VfwPZoqvyj/vdif04Opi9PcjV5mPBEZgSFBg8hbutNxZJdVLrxShbANqAAQACe1I
+J5ilSk1pPLvbcjEZIE6abC9LZ9WmHuNJxM9LAW1OuLvJGi72AsGYUOGpX0WGmK6C
+AYaqZb2Qeedq/yUIljDHYi66J+26owYl7lOMpRzZ9U2QDJrZ7TYuxeMUui6re0B+
+JuZdYw==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_sect409k1_PUB
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAAntSCeYpUpNaTy723IxGSBOmmwvS2fV
+ph7jScTPSwFtTri7yRou9gLBmFDhqV9FhpiuggGGqmW9kHnnav8lCJYwx2Iuuift
+uqMGJe5TjKUc2fVNkAya2e02LsXjFLouq3tAfibmXWM=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_sect409k1:ALICE_sect409k1_PUB
+
+
+PrivateKey=BOB_sect409k1
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDMIYBGZZcZz4qCdhAV9
+vqpfe8vV+vJEhjawR52JUV1rumWEBPAx0o6E+gaxHBr5hzVGkIKhbANqAAQAAQKK
+s60CTUUkltsT+lIBukjz850pkGGLltJ4eaZn4k9AtN/lFTCq6Vgqe2sDrjA3b45q
+AdWjf1vRaP0wawJ13SjApJmyXg5hQks6d0Zqz2OHYhGEGiM159VtTlStK067dVe1
+fGVDeg==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_sect409k1_PUB
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAAECirOtAk1FJJbbE/pSAbpI8/OdKZBh
+i5bSeHmmZ+JPQLTf5RUwqulYKntrA64wN2+OagHVo39b0Wj9MGsCdd0owKSZsl4O
+YUJLOndGas9jh2IRhBojNefVbU5UrStOu3VXtXxlQ3o=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_sect409k1:BOB_sect409k1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_sect409k1
+PeerKey=BOB_sect409k1_PUB
+SharedSecret=01523ec40ad40226a57281a4c423801ae9495dcf736eddd667023b1390977d018ce79313fb99c503f39cbee80f5c1968f3bd02e0
+
+# ECDH Bob with Alice peer
+Derive=BOB_sect409k1
+PeerKey=ALICE_sect409k1_PUB
+SharedSecret=01523ec40ad40226a57281a4c423801ae9495dcf736eddd667023b1390977d018ce79313fb99c503f39cbee80f5c1968f3bd02e0
+
+# TEST CURVE sect409r1
+
+PrivateKey=ALICE_sect409r1
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAYTMsTpey51D2ULnd
+pN+AAWnJLy9pTerziakhjii8OyWKpUVfpDFNneCCd2oQTDcPX5vdoWwDagAEAYfk
+3ZejxpVYCG7dYHTVhhcqILEyTYoQa4YehGPxKcbmgpqW4Wev1tEDVI3JIowICYGU
+owHXXzgDXoJeR79wgb7ySAlXJXgQ8Ficr7i0CaqyAuIpFw9FWJT3jheFwnbpDTvI
+eIozlf4=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_sect409r1_PUB
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAYfk3ZejxpVYCG7dYHTVhhcqILEyTYoQ
+a4YehGPxKcbmgpqW4Wev1tEDVI3JIowICYGUowHXXzgDXoJeR79wgb7ySAlXJXgQ
+8Ficr7i0CaqyAuIpFw9FWJT3jheFwnbpDTvIeIozlf4=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_sect409r1:ALICE_sect409r1_PUB
+
+
+PrivateKey=BOB_sect409r1
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAsCs1nRgwW97TdKIH
+PRcsqmK1e8TIZ00e6rqLb3nD4sIe+Gw/fGhSUER9akQ7lAluEUnfoWwDagAEAfM2
+fvBEic+7jV4oC+v8GfsunD9Zp9rzNgMp3dJ+ZU7r6Bp+ZH3dL9Uvv8kUiB89UlDl
+LwBm/W6TlzGuh1FnzXYKVnhnXpzSlRZQsPCceKukbV46Asl8O23b2+DPJgQBGbMf
+WsgK+KA=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_sect409r1_PUB
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAfM2fvBEic+7jV4oC+v8GfsunD9Zp9rz
+NgMp3dJ+ZU7r6Bp+ZH3dL9Uvv8kUiB89UlDlLwBm/W6TlzGuh1FnzXYKVnhnXpzS
+lRZQsPCceKukbV46Asl8O23b2+DPJgQBGbMfWsgK+KA=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_sect409r1:BOB_sect409r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_sect409r1
+PeerKey=BOB_sect409r1_PUB
+SharedSecret=019dc849870dc6f79978aca8e1fc6aa6836c8fcb25bbfe3d5ab41ea53eae2c7329952280efb30f9097a31a774191e476dbd842d5
+
+# ECDH Bob with Alice peer
+Derive=BOB_sect409r1
+PeerKey=ALICE_sect409r1_PUB
+SharedSecret=019dc849870dc6f79978aca8e1fc6aa6836c8fcb25bbfe3d5ab41ea53eae2c7329952280efb30f9097a31a774191e476dbd842d5
+
+# TEST CURVE sect571k1
+
+PrivateKey=ALICE_sect571k1
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIARO8hI8j6TZ556/d
+RcdGYvdblnALD2XZCKu2c3C5yQIeA8Tidi+f8n6cCnb5FtJNTYKqP8tRfHlwAZtW
+/giXi/4yF5K2twS3oYGVA4GSAAQAtiuUbz7v6njhujnDhanD4iV84K0LQd9wP1+k
+v0Bn833nKtFrZComgrip2SwUaEYOE6IcPyCJ48vWOKvIR6fU11tWwsFRPU0Cct0S
+qVbANAJzwL1umwuKNPblJ6ZEwcBdgw7hWFL6sh+0ayAQ3a8zOizhViJPCnaKR/Oo
+AtaUpCWLSTHDF1gK4/kmlwEx+8o=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_sect571k1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQAtiuUbz7v6njhujnDhanD4iV84K0L
+Qd9wP1+kv0Bn833nKtFrZComgrip2SwUaEYOE6IcPyCJ48vWOKvIR6fU11tWwsFR
+PU0Cct0SqVbANAJzwL1umwuKNPblJ6ZEwcBdgw7hWFL6sh+0ayAQ3a8zOizhViJP
+CnaKR/OoAtaUpCWLSTHDF1gK4/kmlwEx+8o=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_sect571k1:ALICE_sect571k1_PUB
+
+
+PrivateKey=BOB_sect571k1
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAVZT4tnX9dMWS6Vd
+YCoYRl9o/j/Hz7KGqF4Ujk9n9b4+mXbJ37tobpjnpNqKlJfI04w80JPp+NxpoBR3
+8p1bcc9iL4Smh48YoYGVA4GSAAQARzAx9yVkHL8pbe1myosILIhhLLURYRDHmopO
+IijLQmTATV9pYO7CrFBPBjaKNRjPpw/cVOs89X9Jdzx/bolkGqVAsjLN1tsCrqET
+31F4mpnfsPwcM6zbp6lE4N2gL5cakKMmyPNM4d3m8xl1f6e56LBYfaxOaqcYzbXC
+Q/Aiij13H06qKhuFM4iiB/0D164=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_sect571k1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQARzAx9yVkHL8pbe1myosILIhhLLUR
+YRDHmopOIijLQmTATV9pYO7CrFBPBjaKNRjPpw/cVOs89X9Jdzx/bolkGqVAsjLN
+1tsCrqET31F4mpnfsPwcM6zbp6lE4N2gL5cakKMmyPNM4d3m8xl1f6e56LBYfaxO
+aqcYzbXCQ/Aiij13H06qKhuFM4iiB/0D164=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_sect571k1:BOB_sect571k1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_sect571k1
+PeerKey=BOB_sect571k1_PUB
+SharedSecret=05a423515fcc91b3171c83edd5c4085ff729a8ff0a3fa1578ebf769523ded0f5c1e387cf63109f2fbd95e117345b788b4577fdc6b6e727230bfc73eae0d4e851cb6f6e616eddb13e
+
+# ECDH Bob with Alice peer
+Derive=BOB_sect571k1
+PeerKey=ALICE_sect571k1_PUB
+SharedSecret=05a423515fcc91b3171c83edd5c4085ff729a8ff0a3fa1578ebf769523ded0f5c1e387cf63109f2fbd95e117345b788b4577fdc6b6e727230bfc73eae0d4e851cb6f6e616eddb13e
+
+# TEST CURVE sect571r1
+
+PrivateKey=ALICE_sect571r1
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIArsi//Zp9veeURYV
+zGYHn4MlNIxNt6U6vtmTPS/NaoiaavxbOimpHgxYPCjpoPYhM33Z2VBh7pl2aoRW
+3GBepLFLoF8oiQaLoYGVA4GSAAQDRG2b7KCUKbGDTWVgW0qqNC3oYcz4f/AwTHmo
+US1mzdRZj/Sf6IU+7mITGnQ6lg1EkTas/X6TK1hNMV7tAjSeowdN75wzd8YF32SF
+HMIcWew5g56oF961qv3IvICZnRAOmWyGHeHdYwHxMBSBPNgua42QGoJz6J6dYAUe
+vE+F3N29p/tRBGNzMFIqoDdW+NA=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_sect571r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQDRG2b7KCUKbGDTWVgW0qqNC3oYcz4
+f/AwTHmoUS1mzdRZj/Sf6IU+7mITGnQ6lg1EkTas/X6TK1hNMV7tAjSeowdN75wz
+d8YF32SFHMIcWew5g56oF961qv3IvICZnRAOmWyGHeHdYwHxMBSBPNgua42QGoJz
+6J6dYAUevE+F3N29p/tRBGNzMFIqoDdW+NA=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_sect571r1:ALICE_sect571r1_PUB
+
+
+PrivateKey=BOB_sect571r1
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAYj65N5XJTQusn+h
+Z9xj/dgZ4qR1GDC1Ij7jYuow+TvGrG2wz/WT76/lLNtlCLfDW2kODDUmDAJeK/e+
+VMO7suJTXGnrGFHioYGVA4GSAAQGxykYFxqz7jZxcBbiPLYfJEhXlf2SYmMKve74
+trOT+qjIm35+uUAcg2krOzH7X/8wH6bVSn/UKG/k27wZrAnWzZ5XKd8QI70H8aHv
+LgrCoMoqOno+h6J4TgvlDq7FIGZ8fvDaM7YJ8dHPX5FC8Vyphu82TcNdnNATBqom
+6WDWc7RTFZ4sijL5ywVhovwJ1gA=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_sect571r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQGxykYFxqz7jZxcBbiPLYfJEhXlf2S
+YmMKve74trOT+qjIm35+uUAcg2krOzH7X/8wH6bVSn/UKG/k27wZrAnWzZ5XKd8Q
+I70H8aHvLgrCoMoqOno+h6J4TgvlDq7FIGZ8fvDaM7YJ8dHPX5FC8Vyphu82TcNd
+nNATBqom6WDWc7RTFZ4sijL5ywVhovwJ1gA=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_sect571r1:BOB_sect571r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_sect571r1
+PeerKey=BOB_sect571r1_PUB
+SharedSecret=004b397e564055e2c7d87648183c948655ccb0ebb20bd441f9b11635cf461cb5815ff060eab33091b9f7aed67bec8ba1bb7b22437ece3c92c7cf76124408fb951595dfb4a512b2ae
+
+# ECDH Bob with Alice peer
+Derive=BOB_sect571r1
+PeerKey=ALICE_sect571r1_PUB
+SharedSecret=004b397e564055e2c7d87648183c948655ccb0ebb20bd441f9b11635cf461cb5815ff060eab33091b9f7aed67bec8ba1bb7b22437ece3c92c7cf76124408fb951595dfb4a512b2ae
+
+# TEST CURVE c2pnb163v1
+
+PrivateKey=ALICE_c2pnb163v1
+-----BEGIN PRIVATE KEY-----
+MGYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAEETDBKAgEBBBUDTVBXDIdMMg5JIb6y
+ZHLpkONauzuhLgMsAAQC/TaMi2YGY4SmYVCrIVVommDnOyMHJZ1VZ4+fT+hE/qRp
+WHMMW5gOZO4=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_c2pnb163v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAEDLAAEAv02jItmBmOEpmFQqyFVaJpg5zsj
+ByWdVWePn0/oRP6kaVhzDFuYDmTu
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_c2pnb163v1:ALICE_c2pnb163v1_PUB
+
+
+PrivateKey=BOB_c2pnb163v1
+-----BEGIN PRIVATE KEY-----
+MGYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAEETDBKAgEBBBUC3uEAfGc3+a0FOrFh
+ftdUBtZ5BPOhLgMsAAQGojKkhnOduUQY6XT0GwQbDe1YM1wFkj3vZGkhO5OzsqG1
+QqQLkFeMwKo=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_c2pnb163v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAEDLAAEBqIypIZznblEGOl09BsEGw3tWDNc
+BZI972RpITuTs7KhtUKkC5BXjMCq
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_c2pnb163v1:BOB_c2pnb163v1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_c2pnb163v1
+PeerKey=BOB_c2pnb163v1_PUB
+SharedSecret=05939a47cb503656e684f433001e45776c7620e13b
+
+# ECDH Bob with Alice peer
+Derive=BOB_c2pnb163v1
+PeerKey=ALICE_c2pnb163v1_PUB
+SharedSecret=05939a47cb503656e684f433001e45776c7620e13b
+
+# TEST CURVE c2pnb163v2
+
+PrivateKey=ALICE_c2pnb163v2
+-----BEGIN PRIVATE KEY-----
+MGYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAIETDBKAgEBBBUC3m3meJNbhDwwFH3C
+//L2EyOQNruhLgMsAAQBaATOiPV6c8icBYWczLXM6k+t8U4FIN57iiC8RsmIS3+V
+yM/rN3UBZaw=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_c2pnb163v2_PUB
+-----BEGIN PUBLIC KEY-----
+MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAIDLAAEAWgEzoj1enPInAWFnMy1zOpPrfFO
+BSDee4ogvEbJiEt/lcjP6zd1AWWs
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_c2pnb163v2:ALICE_c2pnb163v2_PUB
+
+
+PrivateKey=BOB_c2pnb163v2
+-----BEGIN PRIVATE KEY-----
+MGYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAIETDBKAgEBBBUBvd/DvKharywckSaW
+aAniKByXBwihLgMsAAQH0+FWe4mb13QrEZCPwfIS+gChEXoGhyBVubt6+SSgS5nS
+eDGgjW/36Qw=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_c2pnb163v2_PUB
+-----BEGIN PUBLIC KEY-----
+MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAIDLAAEB9PhVnuJm9d0KxGQj8HyEvoAoRF6
+BocgVbm7evkkoEuZ0ngxoI1v9+kM
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_c2pnb163v2:BOB_c2pnb163v2_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_c2pnb163v2
+PeerKey=BOB_c2pnb163v2_PUB
+SharedSecret=0779fb5f6ac7892f2f342b785d71244e0b03ca562d
+
+# ECDH Bob with Alice peer
+Derive=BOB_c2pnb163v2
+PeerKey=ALICE_c2pnb163v2_PUB
+SharedSecret=0779fb5f6ac7892f2f342b785d71244e0b03ca562d
+
+# TEST CURVE c2pnb163v3
+
+PrivateKey=ALICE_c2pnb163v3
+-----BEGIN PRIVATE KEY-----
+MGYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAMETDBKAgEBBBUCtJ0ZQMD5T6Ym/jZx
+Fzb9tQkLOhuhLgMsAAQE26YD7hG+CY02+nBDFKIBnMvHWUQGfkiIfG9yxV+LptOM
+CdU4y9RhM+w=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_c2pnb163v3_PUB
+-----BEGIN PUBLIC KEY-----
+MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAMDLAAEBNumA+4RvgmNNvpwQxSiAZzLx1lE
+Bn5IiHxvcsVfi6bTjAnVOMvUYTPs
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_c2pnb163v3:ALICE_c2pnb163v3_PUB
+
+
+PrivateKey=BOB_c2pnb163v3
+-----BEGIN PRIVATE KEY-----
+MGYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAMETDBKAgEBBBUB9MnYR9NXM8OoCraO
+orQz1LXIZJChLgMsAAQH15R/xAGyrtmg+hrdAaGn9rVEfWQA7yUCn4vKR2eIy/qN
+YfbeHTIaTBY=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_c2pnb163v3_PUB
+-----BEGIN PUBLIC KEY-----
+MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAMDLAAEB9eUf8QBsq7ZoPoa3QGhp/a1RH1k
+AO8lAp+LykdniMv6jWH23h0yGkwW
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_c2pnb163v3:BOB_c2pnb163v3_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_c2pnb163v3
+PeerKey=BOB_c2pnb163v3_PUB
+SharedSecret=02bf68863a8798e72cdc9cd3b9ce731f12654bfa81
+
+# ECDH Bob with Alice peer
+Derive=BOB_c2pnb163v3
+PeerKey=ALICE_c2pnb163v3_PUB
+SharedSecret=02bf68863a8798e72cdc9cd3b9ce731f12654bfa81
+
+# TEST CURVE c2pnb176v1
+
+PrivateKey=ALICE_c2pnb176v1
+-----BEGIN PRIVATE KEY-----
+MGgCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAQETjBMAgEBBBUAxXEz1PjthqsI664l
+N5LRLN8C2uyhMAMuAARD1qVJHbL5A7BhEKeHSuDeT6XeZ3ODFn9ef67qdF+tS7p3
+zgXGKt4pKMoYcg==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_c2pnb176v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEUwEwYHKoZIzj0CAQYIKoZIzj0DAAQDLgAEQ9alSR2y+QOwYRCnh0rg3k+l3mdz
+gxZ/Xn+u6nRfrUu6d84FxireKSjKGHI=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_c2pnb176v1:ALICE_c2pnb176v1_PUB
+
+
+PrivateKey=BOB_c2pnb176v1
+-----BEGIN PRIVATE KEY-----
+MGgCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAQETjBMAgEBBBUAJvHHFW0v+/cjaLd7
+Xgt6FtSga5+hMAMuAASUs7rUAlv1qhppI82ikLvZ8Y0DApC356nhs7SyQYdLtHRM
++qUHBB3IzrLKdQ==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_c2pnb176v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEUwEwYHKoZIzj0CAQYIKoZIzj0DAAQDLgAElLO61AJb9aoaaSPNopC72fGNAwKQ
+t+ep4bO0skGHS7R0TPqlBwQdyM6yynU=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_c2pnb176v1:BOB_c2pnb176v1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_c2pnb176v1
+PeerKey=BOB_c2pnb176v1_PUB
+SharedSecret=b204734417542df762e09013d6ba958940837a2aa25a
+
+# ECDH Bob with Alice peer
+Derive=BOB_c2pnb176v1
+PeerKey=ALICE_c2pnb176v1_PUB
+SharedSecret=b204734417542df762e09013d6ba958940837a2aa25a
+
+# TEST CURVE c2tnb191v1
+
+PrivateKey=ALICE_c2tnb191v1
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAUEVTBTAgEBBBgYgpO+wgirUtuqHF00
+2o02Vc7xQjKgSzChNAMyAAQ2ae+5tDQ2CDaV5XPdC+RtLgcHS5lTOclTClr/WSpP
+TlMt2TGh/KRrD859oXg6KYY=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_c2tnb191v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAUDMgAENmnvubQ0Ngg2leVz3QvkbS4HB0uZ
+UznJUwpa/1kqT05TLdkxofykaw/OfaF4OimG
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_c2tnb191v1:ALICE_c2tnb191v1_PUB
+
+
+PrivateKey=BOB_c2tnb191v1
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAUEVTBTAgEBBBguzm5uFNRy/lX3OKuJ
+j8i/vH/+viMd48yhNAMyAARka5rhdTmtbqQVRMWZQjUqsHUMX43siRt5f2WQSZfg
++IQ2l/8veayyX9erUSt3gK4=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_c2tnb191v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAUDMgAEZGua4XU5rW6kFUTFmUI1KrB1DF+N
+7IkbeX9lkEmX4PiENpf/L3mssl/Xq1Erd4Cu
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_c2tnb191v1:BOB_c2tnb191v1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_c2tnb191v1
+PeerKey=BOB_c2tnb191v1_PUB
+SharedSecret=7a30d30acd3b067f38bb3be9e8cdef739483df26455e36e1
+
+# ECDH Bob with Alice peer
+Derive=BOB_c2tnb191v1
+PeerKey=ALICE_c2tnb191v1_PUB
+SharedSecret=7a30d30acd3b067f38bb3be9e8cdef739483df26455e36e1
+
+# TEST CURVE c2tnb191v2
+
+PrivateKey=ALICE_c2tnb191v2
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAYEVTBTAgEBBBgOlslgJ0XSK3vKC5Ls
+QmYxZfr8OEKXRQ2hNAMyAAQAHivLhSwW2SJZtUPhuV1p9fQSfz7w9SJY8dJOpVf8
+9DevPUlJMPcaSGyjX+3nJZc=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_c2tnb191v2_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAYDMgAEAB4ry4UsFtkiWbVD4bldafX0En8+
+8PUiWPHSTqVX/PQ3rz1JSTD3Gkhso1/t5yWX
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_c2tnb191v2:ALICE_c2tnb191v2_PUB
+
+
+PrivateKey=BOB_c2tnb191v2
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAYEVTBTAgEBBBgK9QaS2SDU6yz7uXqO
++/+C+baTTVMAGVGhNAMyAAQiR0t9plm77ezfXvJzDNdlyYC0pWX+QmJ8EavgEElk
+ky/M+YXb5ufkFzFXIEfU9pM=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_c2tnb191v2_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAYDMgAEIkdLfaZZu+3s317ycwzXZcmAtKVl
+/kJifBGr4BBJZJMvzPmF2+bn5BcxVyBH1PaT
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_c2tnb191v2:BOB_c2tnb191v2_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_c2tnb191v2
+PeerKey=BOB_c2tnb191v2_PUB
+SharedSecret=5ec2b6ccd193620dbad302c4ad8f8909a40698bf454d7534
+
+# ECDH Bob with Alice peer
+Derive=BOB_c2tnb191v2
+PeerKey=ALICE_c2tnb191v2_PUB
+SharedSecret=5ec2b6ccd193620dbad302c4ad8f8909a40698bf454d7534
+
+# TEST CURVE c2tnb191v3
+
+PrivateKey=ALICE_c2tnb191v3
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAcEVTBTAgEBBBgSaBOQyq6XX3hZVVgV
+FlRrxTuvgtv33C6hNAMyAARL+Fup8jOnixQYPx8pU/b066PHrhTXfiNerFEYA/5O
+XCKCEkdRCpuDJnyqpmaC2vw=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_c2tnb191v3_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAcDMgAES/hbqfIzp4sUGD8fKVP29Oujx64U
+134jXqxRGAP+TlwighJHUQqbgyZ8qqZmgtr8
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_c2tnb191v3:ALICE_c2tnb191v3_PUB
+
+
+PrivateKey=BOB_c2tnb191v3
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAcEVTBTAgEBBBgEE8Ls7pc1/q3/0ruR
+gMrWGhGIr4VLt4uhNAMyAAQHAZsjkAXanwGbXR3SKkoKli6rSfSiu0lU2XHDiZdt
+LaPN+Eihz4KeG2YM/p3m1do=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_c2tnb191v3_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAcDMgAEBwGbI5AF2p8Bm10d0ipKCpYuq0n0
+ortJVNlxw4mXbS2jzfhIoc+CnhtmDP6d5tXa
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_c2tnb191v3:BOB_c2tnb191v3_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_c2tnb191v3
+PeerKey=BOB_c2tnb191v3_PUB
+SharedSecret=39093dc8a2e6724a6206ed41bb99490d527d80c902c41891
+
+# ECDH Bob with Alice peer
+Derive=BOB_c2tnb191v3
+PeerKey=ALICE_c2tnb191v3_PUB
+SharedSecret=39093dc8a2e6724a6206ed41bb99490d527d80c902c41891
+
+# TEST CURVE c2pnb208w1
+
+PrivateKey=ALICE_c2pnb208w1
+-----BEGIN PRIVATE KEY-----
+MHQCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAoEWjBYAgEBBBkAbfnNboX6Dk+NLoBO
+6qBB2aE1srmTgS96oTgDNgAEFLHciAu4excYB0mty8rF442ULXZfqL90IkgP5G2z
+wzY1mAlEBFMg83izeRaCJ/vRihZDJw==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_c2pnb208w1_PUB
+-----BEGIN PUBLIC KEY-----
+ME0wEwYHKoZIzj0CAQYIKoZIzj0DAAoDNgAEFLHciAu4excYB0mty8rF442ULXZf
+qL90IkgP5G2zwzY1mAlEBFMg83izeRaCJ/vRihZDJw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_c2pnb208w1:ALICE_c2pnb208w1_PUB
+
+
+PrivateKey=BOB_c2pnb208w1
+-----BEGIN PRIVATE KEY-----
+MHQCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAoEWjBYAgEBBBkAwjGFJOPkZqQPZ+mI
+Ae3G12zpUia40tRjoTgDNgAEDxaP6u0phDLfM4RsZhgIfZy8CurR4/IPtqMGxbfz
+pPKPMZXV12F6MrWrorSFDZ8KFd58Ww==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_c2pnb208w1_PUB
+-----BEGIN PUBLIC KEY-----
+ME0wEwYHKoZIzj0CAQYIKoZIzj0DAAoDNgAEDxaP6u0phDLfM4RsZhgIfZy8CurR
+4/IPtqMGxbfzpPKPMZXV12F6MrWrorSFDZ8KFd58Ww==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_c2pnb208w1:BOB_c2pnb208w1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_c2pnb208w1
+PeerKey=BOB_c2pnb208w1_PUB
+SharedSecret=59bf3c91bd168d4d4d900d9ce155933045e0fd16dcf0511bb5af
+
+# ECDH Bob with Alice peer
+Derive=BOB_c2pnb208w1
+PeerKey=ALICE_c2pnb208w1_PUB
+SharedSecret=59bf3c91bd168d4d4d900d9ce155933045e0fd16dcf0511bb5af
+
+# TEST CURVE c2tnb239v1
+
+PrivateKey=ALICE_c2tnb239v1
+-----BEGIN PRIVATE KEY-----
+MIGBAgEAMBMGByqGSM49AgEGCCqGSM49AwALBGcwZQIBAQQeE4CCwXEKsP3CfLC/
+DLSSF9lfyOaNSuQXmq9rzLqwoUADPgAEM6oQIsXJs+ANKQpF3DzBdG4FdS5DS+qp
+c5fVTsZiI4FAWCXUvzzPTRAex3wwvF/4JrYK6cKVh8i1EOrN
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_c2tnb239v1_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAsDPgAEM6oQIsXJs+ANKQpF3DzBdG4FdS5D
+S+qpc5fVTsZiI4FAWCXUvzzPTRAex3wwvF/4JrYK6cKVh8i1EOrN
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_c2tnb239v1:ALICE_c2tnb239v1_PUB
+
+
+PrivateKey=BOB_c2tnb239v1
+-----BEGIN PRIVATE KEY-----
+MIGBAgEAMBMGByqGSM49AgEGCCqGSM49AwALBGcwZQIBAQQeAGDYCGAXqD03x510
+h35JSzlgReW6W/T8lYPEA42doUADPgAECk6Uyh8ULkOVOxZSNZYGwtko/oy7ZLDP
+F8dbsEZTeYIBpQ6hWqZ/4Nz3RyzfoukyfCb3b8OMtpq+Qgio
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_c2tnb239v1_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAsDPgAECk6Uyh8ULkOVOxZSNZYGwtko/oy7
+ZLDPF8dbsEZTeYIBpQ6hWqZ/4Nz3RyzfoukyfCb3b8OMtpq+Qgio
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_c2tnb239v1:BOB_c2tnb239v1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_c2tnb239v1
+PeerKey=BOB_c2tnb239v1_PUB
+SharedSecret=78c42256900725df9a47bb042cef7dad9f639b32e3010738a144e7472d1a
+
+# ECDH Bob with Alice peer
+Derive=BOB_c2tnb239v1
+PeerKey=ALICE_c2tnb239v1_PUB
+SharedSecret=78c42256900725df9a47bb042cef7dad9f639b32e3010738a144e7472d1a
+
+# TEST CURVE c2tnb239v2
+
+PrivateKey=ALICE_c2tnb239v2
+-----BEGIN PRIVATE KEY-----
+MIGBAgEAMBMGByqGSM49AgEGCCqGSM49AwAMBGcwZQIBAQQeE8kBjHLjFeC+Z2gZ
+q0snwR3UgEgWMW0xilhJNjW2oUADPgAEQ+ubIYhh82VohwKSVz70PkHsjmYWDvDU
+/SBRk8AiP71CM9D7XEKK5tnU94MtK2Kscx5nWZFc+oIh1+sY
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_c2tnb239v2_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAwDPgAEQ+ubIYhh82VohwKSVz70PkHsjmYW
+DvDU/SBRk8AiP71CM9D7XEKK5tnU94MtK2Kscx5nWZFc+oIh1+sY
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_c2tnb239v2:ALICE_c2tnb239v2_PUB
+
+
+PrivateKey=BOB_c2tnb239v2
+-----BEGIN PRIVATE KEY-----
+MIGBAgEAMBMGByqGSM49AgEGCCqGSM49AwAMBGcwZQIBAQQeE7bhzKZZUm780c0e
+3EBWY1GxD90Mzu7zrQMi7bAzoUADPgAEYgV7bokY6iLMzZTG10c6NDaW11plAm0T
+NKVVwzPqe3ylhsQmmm02LHKX0gN4E1dUS0uClBbMGNq2mhln
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_c2tnb239v2_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAwDPgAEYgV7bokY6iLMzZTG10c6NDaW11pl
+Am0TNKVVwzPqe3ylhsQmmm02LHKX0gN4E1dUS0uClBbMGNq2mhln
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_c2tnb239v2:BOB_c2tnb239v2_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_c2tnb239v2
+PeerKey=BOB_c2tnb239v2_PUB
+SharedSecret=4ba2ecfa8ec7a375594d1673886cccf96d7763c55611b3c9008a35160192
+
+# ECDH Bob with Alice peer
+Derive=BOB_c2tnb239v2
+PeerKey=ALICE_c2tnb239v2_PUB
+SharedSecret=4ba2ecfa8ec7a375594d1673886cccf96d7763c55611b3c9008a35160192
+
+# TEST CURVE c2tnb239v3
+
+PrivateKey=ALICE_c2tnb239v3
+-----BEGIN PRIVATE KEY-----
+MIGBAgEAMBMGByqGSM49AgEGCCqGSM49AwANBGcwZQIBAQQeCxiC5lbHYL1QYbb2
+izZiSoLPnWCZIds811J1N7KtoUADPgAEdHMz+tsuO7VcO9IFgsSWTweLoB1ah5WI
+g6cWrtcUfmO7EGfPwNni4Bf8No7rGGMwbisW0v6Jv2pkTSM8
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_c2tnb239v3_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAA0DPgAEdHMz+tsuO7VcO9IFgsSWTweLoB1a
+h5WIg6cWrtcUfmO7EGfPwNni4Bf8No7rGGMwbisW0v6Jv2pkTSM8
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_c2tnb239v3:ALICE_c2tnb239v3_PUB
+
+
+PrivateKey=BOB_c2tnb239v3
+-----BEGIN PRIVATE KEY-----
+MIGBAgEAMBMGByqGSM49AgEGCCqGSM49AwANBGcwZQIBAQQeBBPxdeU3MohZc5Jx
+7WadLuPSeXeOg75rXC1ElexsoUADPgAEaHwiwQmoqbPij8+l6hLHVQz0AZLBT5uX
+hAh8fhTABKqI7qYShICAAX0tvu3EvQ8BQLP14grxUsSoEqAF
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_c2tnb239v3_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAA0DPgAEaHwiwQmoqbPij8+l6hLHVQz0AZLB
+T5uXhAh8fhTABKqI7qYShICAAX0tvu3EvQ8BQLP14grxUsSoEqAF
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_c2tnb239v3:BOB_c2tnb239v3_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_c2tnb239v3
+PeerKey=BOB_c2tnb239v3_PUB
+SharedSecret=47ad60e5480375fccd9246c93ab04da8e5da83e1dbf5f177f10a47cb54a0
+
+# ECDH Bob with Alice peer
+Derive=BOB_c2tnb239v3
+PeerKey=ALICE_c2tnb239v3_PUB
+SharedSecret=47ad60e5480375fccd9246c93ab04da8e5da83e1dbf5f177f10a47cb54a0
+
+# TEST CURVE c2pnb272w1
+
+PrivateKey=ALICE_c2pnb272w1
+-----BEGIN PRIVATE KEY-----
+MIGMAgEAMBMGByqGSM49AgEGCCqGSM49AwAQBHIwcAIBAQQhAKMtKddENVGjzTU4
+w+hW0SgDOtIElcs52wb40S08j6gMoUgDRgAEfGvSzQo+00VXIDXV7iiGXpI16kzs
+6C8rkchA5sVBBY56nSCp0n4FpIXRzafiFQklJD9OrJzA6PXc7tp2n2XhIwvuOmI=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_c2pnb272w1_PUB
+-----BEGIN PUBLIC KEY-----
+MF0wEwYHKoZIzj0CAQYIKoZIzj0DABADRgAEfGvSzQo+00VXIDXV7iiGXpI16kzs
+6C8rkchA5sVBBY56nSCp0n4FpIXRzafiFQklJD9OrJzA6PXc7tp2n2XhIwvuOmI=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_c2pnb272w1:ALICE_c2pnb272w1_PUB
+
+
+PrivateKey=BOB_c2pnb272w1
+-----BEGIN PRIVATE KEY-----
+MIGMAgEAMBMGByqGSM49AgEGCCqGSM49AwAQBHIwcAIBAQQhAFAKPByX1wlYUpU4
+mECDAxg+VM5aFo4JPlqEzR0b9hI6oUgDRgAEL8+863IU4uxbEY8jVBjhsrG4W6AF
+MF6t+aGvoiKHtEMLQa6U158TRapDWp4eRurm6Idvv7hepCPqOMEGySDUwMECiQM=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_c2pnb272w1_PUB
+-----BEGIN PUBLIC KEY-----
+MF0wEwYHKoZIzj0CAQYIKoZIzj0DABADRgAEL8+863IU4uxbEY8jVBjhsrG4W6AF
+MF6t+aGvoiKHtEMLQa6U158TRapDWp4eRurm6Idvv7hepCPqOMEGySDUwMECiQM=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_c2pnb272w1:BOB_c2pnb272w1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_c2pnb272w1
+PeerKey=BOB_c2pnb272w1_PUB
+SharedSecret=3ae063b2bed6ba8aa28ff35e9bd2673f22ee8087860c86b89429a5b52538216632a3
+
+# ECDH Bob with Alice peer
+Derive=BOB_c2pnb272w1
+PeerKey=ALICE_c2pnb272w1_PUB
+SharedSecret=3ae063b2bed6ba8aa28ff35e9bd2673f22ee8087860c86b89429a5b52538216632a3
+
+# TEST CURVE c2pnb304w1
+
+PrivateKey=ALICE_c2pnb304w1
+-----BEGIN PRIVATE KEY-----
+MIGYAgEAMBMGByqGSM49AgEGCCqGSM49AwARBH4wfAIBAQQlAOKzfcV2XOvVsSUh
+oVz3SHGzSCf0q9i+ilz5ZfBxc+5ssjK7jKFQA04ABDc4zQNFaZukj9iz3iXTYdza
+tCOYZvrfOjrbgzl/8PoFxt5q6yJTu35Vu9XVp5pTCtjpDEpywBj0xb07RRuVDEk8
+TthFP5vGeTIWLD4=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_c2pnb304w1_PUB
+-----BEGIN PUBLIC KEY-----
+MGUwEwYHKoZIzj0CAQYIKoZIzj0DABEDTgAENzjNA0Vpm6SP2LPeJdNh3Nq0I5hm
++t86OtuDOX/w+gXG3mrrIlO7flW71dWnmlMK2OkMSnLAGPTFvTtFG5UMSTxO2EU/
+m8Z5MhYsPg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_c2pnb304w1:ALICE_c2pnb304w1_PUB
+
+
+PrivateKey=BOB_c2pnb304w1
+-----BEGIN PRIVATE KEY-----
+MIGYAgEAMBMGByqGSM49AgEGCCqGSM49AwARBH4wfAIBAQQlAPP4hz6sa+KdTJ4h
+fBeCUiJBfshcZoapkZMFrhI1vdcRY7MeAaFQA04ABMHRUzLiUY7O4nEBdmex31U4
+l6TO/dD+5MV/tVNizVsWjkTvi2fs772lZ9MeNp6QnGMZ5n5subHsa0QOJL1LpmXX
+K0UIWGbW0nQb52g=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_c2pnb304w1_PUB
+-----BEGIN PUBLIC KEY-----
+MGUwEwYHKoZIzj0CAQYIKoZIzj0DABEDTgAEwdFTMuJRjs7icQF2Z7HfVTiXpM79
+0P7kxX+1U2LNWxaORO+LZ+zvvaVn0x42npCcYxnmfmy5sexrRA4kvUumZdcrRQhY
+ZtbSdBvnaA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_c2pnb304w1:BOB_c2pnb304w1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_c2pnb304w1
+PeerKey=BOB_c2pnb304w1_PUB
+SharedSecret=6df88b20de9f095c7632234291ea4658a9265cd2293424e11ed56705b09a069f09dc4e055eb7
+
+# ECDH Bob with Alice peer
+Derive=BOB_c2pnb304w1
+PeerKey=ALICE_c2pnb304w1_PUB
+SharedSecret=6df88b20de9f095c7632234291ea4658a9265cd2293424e11ed56705b09a069f09dc4e055eb7
+
+# TEST CURVE c2tnb359v1
+
+PrivateKey=ALICE_c2tnb359v1
+-----BEGIN PRIVATE KEY-----
+MIGwAgEAMBMGByqGSM49AgEGCCqGSM49AwASBIGVMIGSAgEBBC0BeMU97SvjsIvQ
+1v+Ztf56OCL8JXHxRJDQZ5gWEa4c2b3FZXFVC4CwEPd7cB+hXgNcAAQOBgLp0TzS
+4Hf/VYbJCFuj3OlRC5JMzFV7ox41ubhl5Ij+gHIodu1bQ6cqd0YAb2/30PxwX++N
+NpFvq8u8435zhPYXsut6txOPNU5ZzCeagy2xsKacXSZc7D0=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_c2tnb359v1_PUB
+-----BEGIN PUBLIC KEY-----
+MHMwEwYHKoZIzj0CAQYIKoZIzj0DABIDXAAEDgYC6dE80uB3/1WGyQhbo9zpUQuS
+TMxVe6MeNbm4ZeSI/oByKHbtW0OnKndGAG9v99D8cF/vjTaRb6vLvON+c4T2F7Lr
+ercTjzVOWcwnmoMtsbCmnF0mXOw9
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_c2tnb359v1:ALICE_c2tnb359v1_PUB
+
+
+PrivateKey=BOB_c2tnb359v1
+-----BEGIN PRIVATE KEY-----
+MIGwAgEAMBMGByqGSM49AgEGCCqGSM49AwASBIGVMIGSAgEBBC0BRZ3IIh3mrLIX
+KBbh6Vj7TXNY5bzRuD5/ayHPlHQkJcd8K66dOqu7hgaN91GhXgNcAAQ7njbTQ2xY
+YZtkKswYr8E6P/R3Dg/XEZgQQ72B4qXnqbK/SgYsZAntFg7CRztcTkHjKAgdSz6f
+TRIc4///gwXN3Oi6D8PeswhzPJi/uLmCAHMm3GT6SUO3aTY=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_c2tnb359v1_PUB
+-----BEGIN PUBLIC KEY-----
+MHMwEwYHKoZIzj0CAQYIKoZIzj0DABIDXAAEO54200NsWGGbZCrMGK/BOj/0dw4P
+1xGYEEO9geKl56myv0oGLGQJ7RYOwkc7XE5B4ygIHUs+n00SHOP//4MFzdzoug/D
+3rMIczyYv7i5ggBzJtxk+klDt2k2
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_c2tnb359v1:BOB_c2tnb359v1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_c2tnb359v1
+PeerKey=BOB_c2tnb359v1_PUB
+SharedSecret=1d3f3396492d130caea54233c79833e90a072fe883071bb08cec671ce0319f0bc39c68dda0199952152a5c3563
+
+# ECDH Bob with Alice peer
+Derive=BOB_c2tnb359v1
+PeerKey=ALICE_c2tnb359v1_PUB
+SharedSecret=1d3f3396492d130caea54233c79833e90a072fe883071bb08cec671ce0319f0bc39c68dda0199952152a5c3563
+
+# TEST CURVE c2pnb368w1
+
+PrivateKey=ALICE_c2pnb368w1
+-----BEGIN PRIVATE KEY-----
+MIGyAgEAMBMGByqGSM49AgEGCCqGSM49AwATBIGXMIGUAgEBBC0AFagbth/4/M2s
+b1G4FpxbFEVLIulioS34v0hrClpZ38/Z+PHmIhOfEFminyehYANeAAQAU42w7mII
+jkyAdnCC4qoEPdH42fh3oVyCtnaRtKUmdhUdXm0IgSM4T4SYEOsx+aQZLGIjnhHJ
+CabcaKPQ0sai3dirUr2YsNXNDJiU93T7buUr+DnRPGsfBy/nEg==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_c2pnb368w1_PUB
+-----BEGIN PUBLIC KEY-----
+MHUwEwYHKoZIzj0CAQYIKoZIzj0DABMDXgAEAFONsO5iCI5MgHZwguKqBD3R+Nn4
+d6FcgrZ2kbSlJnYVHV5tCIEjOE+EmBDrMfmkGSxiI54RyQmm3Gij0NLGot3Yq1K9
+mLDVzQyYlPd0+27lK/g50TxrHwcv5xI=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_c2pnb368w1:ALICE_c2pnb368w1_PUB
+
+
+PrivateKey=BOB_c2pnb368w1
+-----BEGIN PRIVATE KEY-----
+MIGyAgEAMBMGByqGSM49AgEGCCqGSM49AwATBIGXMIGUAgEBBC0AA/woMzOFy8k2
+zBqBkubhkOIwc7sx0u+JadM9f7V45L4P8nK7bjJasOqrHRahYANeAATKE6jcstac
+H8yWzg/qBgvGoGan2PVwTN/U+68K4WxHO7+oPHviUh1OVF7ZxYjsVSdyno83iHE3
+3sq2Ej6j26f+uVs/fuWk19t8NpAQ6+sVETZszuMDm5adqtVZRQ==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_c2pnb368w1_PUB
+-----BEGIN PUBLIC KEY-----
+MHUwEwYHKoZIzj0CAQYIKoZIzj0DABMDXgAEyhOo3LLWnB/Mls4P6gYLxqBmp9j1
+cEzf1PuvCuFsRzu/qDx74lIdTlRe2cWI7FUncp6PN4hxN97KthI+o9un/rlbP37l
+pNfbfDaQEOvrFRE2bM7jA5uWnarVWUU=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_c2pnb368w1:BOB_c2pnb368w1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_c2pnb368w1
+PeerKey=BOB_c2pnb368w1_PUB
+SharedSecret=d191710b156d1b1d14242843a7f0abf28060bbb9e655655b53852a8b0f250ef1eee37d59364d9791c8e1bc526cbb
+
+# ECDH Bob with Alice peer
+Derive=BOB_c2pnb368w1
+PeerKey=ALICE_c2pnb368w1_PUB
+SharedSecret=d191710b156d1b1d14242843a7f0abf28060bbb9e655655b53852a8b0f250ef1eee37d59364d9791c8e1bc526cbb
+
+# TEST CURVE c2tnb431r1
+
+PrivateKey=ALICE_c2tnb431r1
+-----BEGIN PRIVATE KEY-----
+MIHKAgEAMBMGByqGSM49AgEGCCqGSM49AwAUBIGvMIGsAgEBBDUC18JhUt+NCIZ/
+q6kdjNZ7zX72UqpW4K6Uc2bAWu2PXK1aL573LNzu4oUlHfbvuE1BUrxNpaFwA24A
+BDrG8SG4lckR1rrvLRpXYf7Wspmh/fbql+Zpulyl896XtwQK2BkLVRkZ5ixTG4PU
+yb64OiffdSnvIaM++cb7LgJLBBgT3d5le8V1gtxWFFm0NggUyF6glmUqHQL0LuhX
+WS468O6w05KS0AL6vQ==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_c2tnb431r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGFMBMGByqGSM49AgEGCCqGSM49AwAUA24ABDrG8SG4lckR1rrvLRpXYf7Wspmh
+/fbql+Zpulyl896XtwQK2BkLVRkZ5ixTG4PUyb64OiffdSnvIaM++cb7LgJLBBgT
+3d5le8V1gtxWFFm0NggUyF6glmUqHQL0LuhXWS468O6w05KS0AL6vQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_c2tnb431r1:ALICE_c2tnb431r1_PUB
+
+
+PrivateKey=BOB_c2tnb431r1
+-----BEGIN PRIVATE KEY-----
+MIHKAgEAMBMGByqGSM49AgEGCCqGSM49AwAUBIGvMIGsAgEBBDUApanyPgvpfrAu
+1jNAKGpctH71v0+P/kFF9JxdFYarpWEwBBd4tz6CxoYKmvDZ9ukOOqBbX6FwA24A
+BGh3JXuYmh6dGGEmbRhoR2T5pVD/5Mq2ZKKzfzY2NOoKiIs6rVzv2SW7S6BScYlR
+qRWiXCeZVFvT0crDY/5uodkHbcRw6B/Yo/iMN8wLI257Tjm9/C5G+JPCLopCcLIL
+gTwAJM2ZhtPnc08LyQ==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_c2tnb431r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGFMBMGByqGSM49AgEGCCqGSM49AwAUA24ABGh3JXuYmh6dGGEmbRhoR2T5pVD/
+5Mq2ZKKzfzY2NOoKiIs6rVzv2SW7S6BScYlRqRWiXCeZVFvT0crDY/5uodkHbcRw
+6B/Yo/iMN8wLI257Tjm9/C5G+JPCLopCcLILgTwAJM2ZhtPnc08LyQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_c2tnb431r1:BOB_c2tnb431r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_c2tnb431r1
+PeerKey=BOB_c2tnb431r1_PUB
+SharedSecret=4c4d7d387843ff5152f22f101b0609238819357fae2ccc9097b818e383ef6809cb46671fb514009d4d1d3d0119fba265107302e95748
+
+# ECDH Bob with Alice peer
+Derive=BOB_c2tnb431r1
+PeerKey=ALICE_c2tnb431r1_PUB
+SharedSecret=4c4d7d387843ff5152f22f101b0609238819357fae2ccc9097b818e383ef6809cb46671fb514009d4d1d3d0119fba265107302e95748
+
+# TEST CURVE wap-wsg-idm-ecid-wtls1
+
+PrivateKey=ALICE_wap-wsg-idm-ecid-wtls1
+-----BEGIN PRIVATE KEY-----
+MFACAQAwEAYHKoZIzj0CAQYFZysBBAEEOTA3AgEBBA5Xu91qBwxTDmhD/30Kf6Ei
+AyAABAFQSZ0G+afa1x4KwUzBjQEWFNdZoF6UNYGkCRINyg==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_wap-wsg-idm-ecid-wtls1_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFZysBBAEDIAAEAVBJnQb5p9rXHgrBTMGNARYU11mgXpQ1
+gaQJEg3K
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_wap-wsg-idm-ecid-wtls1:ALICE_wap-wsg-idm-ecid-wtls1_PUB
+
+
+PrivateKey=BOB_wap-wsg-idm-ecid-wtls1
+-----BEGIN PRIVATE KEY-----
+MFACAQAwEAYHKoZIzj0CAQYFZysBBAEEOTA3AgEBBA5aU6CQ474Z1fH3xAtn/6Ei
+AyAABAFpb4GTc+5vf5nkt4zLxwGZQ6qSbYlH8pUbpvwcqA==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_wap-wsg-idm-ecid-wtls1_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFZysBBAEDIAAEAWlvgZNz7m9/meS3jMvHAZlDqpJtiUfy
+lRum/Byo
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_wap-wsg-idm-ecid-wtls1:BOB_wap-wsg-idm-ecid-wtls1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_wap-wsg-idm-ecid-wtls1
+PeerKey=BOB_wap-wsg-idm-ecid-wtls1_PUB
+SharedSecret=0000fc6e280987e8b9bf6e3c7fa003
+
+# ECDH Bob with Alice peer
+Derive=BOB_wap-wsg-idm-ecid-wtls1
+PeerKey=ALICE_wap-wsg-idm-ecid-wtls1_PUB
+SharedSecret=0000fc6e280987e8b9bf6e3c7fa003
+
+# TEST CURVE wap-wsg-idm-ecid-wtls3
+
+PrivateKey=ALICE_wap-wsg-idm-ecid-wtls3
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFZysBBAMETDBKAgEBBBUBN2FFgQiz4KPJ9GEsrj5B
+m908ifuhLgMsAAQBV21Tx3v8+1wFKq7PiloR1CxzmlUDvnyXrs4mNmc5Ns38mzPe
+NueQNo0=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_wap-wsg-idm-ecid-wtls3_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFZysBBAMDLAAEAVdtU8d7/PtcBSquz4paEdQsc5pVA758
+l67OJjZnOTbN/Jsz3jbnkDaN
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_wap-wsg-idm-ecid-wtls3:ALICE_wap-wsg-idm-ecid-wtls3_PUB
+
+
+PrivateKey=BOB_wap-wsg-idm-ecid-wtls3
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFZysBBAMETDBKAgEBBBUA/0Ust7IoJ526zn2wiWBu
+rR5NeSWhLgMsAAQB7d+/zMMti4djhlVnaGqaqonbmo4Cv+iKT1cF3nzXV/KXHSJI
+p9iZeas=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_wap-wsg-idm-ecid-wtls3_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFZysBBAMDLAAEAe3fv8zDLYuHY4ZVZ2hqmqqJ25qOAr/o
+ik9XBd5811fylx0iSKfYmXmr
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_wap-wsg-idm-ecid-wtls3:BOB_wap-wsg-idm-ecid-wtls3_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_wap-wsg-idm-ecid-wtls3
+PeerKey=BOB_wap-wsg-idm-ecid-wtls3_PUB
+SharedSecret=00cf1d850f396436be68f1e5502935853ed054511f
+
+# ECDH Bob with Alice peer
+Derive=BOB_wap-wsg-idm-ecid-wtls3
+PeerKey=ALICE_wap-wsg-idm-ecid-wtls3_PUB
+SharedSecret=00cf1d850f396436be68f1e5502935853ed054511f
+
+# TEST CURVE wap-wsg-idm-ecid-wtls4
+
+PrivateKey=ALICE_wap-wsg-idm-ecid-wtls4
+-----BEGIN PRIVATE KEY-----
+MFECAQAwEAYHKoZIzj0CAQYFZysBBAQEOjA4AgEBBA8AsuEGufSNSrDPu3Y1Namh
+IgMgAAQAcvPRbArskeBs6W2oOesAHMQo8Lk/FHcYKUfMOKY=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_wap-wsg-idm-ecid-wtls4_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFZysBBAQDIAAEAHLz0WwK7JHgbOltqDnrABzEKPC5PxR3
+GClHzDim
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_wap-wsg-idm-ecid-wtls4:ALICE_wap-wsg-idm-ecid-wtls4_PUB
+
+
+PrivateKey=BOB_wap-wsg-idm-ecid-wtls4
+-----BEGIN PRIVATE KEY-----
+MFECAQAwEAYHKoZIzj0CAQYFZysBBAQEOjA4AgEBBA8AFJwmUkKbWdmzvqv+AbWh
+IgMgAAQBriOJSyRL4ro55CbCwekBluEKwIfP64OfJCEfWTU=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_wap-wsg-idm-ecid-wtls4_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFZysBBAQDIAAEAa4jiUskS+K6OeQmwsHpAZbhCsCHz+uD
+nyQhH1k1
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_wap-wsg-idm-ecid-wtls4:BOB_wap-wsg-idm-ecid-wtls4_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_wap-wsg-idm-ecid-wtls4
+PeerKey=BOB_wap-wsg-idm-ecid-wtls4_PUB
+SharedSecret=01076232302ca32b5f3daf075e5213
+
+# ECDH Bob with Alice peer
+Derive=BOB_wap-wsg-idm-ecid-wtls4
+PeerKey=ALICE_wap-wsg-idm-ecid-wtls4_PUB
+SharedSecret=01076232302ca32b5f3daf075e5213
+
+# TEST CURVE wap-wsg-idm-ecid-wtls5
+
+PrivateKey=ALICE_wap-wsg-idm-ecid-wtls5
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFZysBBAUETDBKAgEBBBUCmngbaO2S//Ta0ZUhn/nb
+ZydTKD+hLgMsAAQA1792id3hLIu2z0KECkBCUbTSP9UFLu2FTJkLa8qP4ZIrBt5F
+XKJo2Dw=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_wap-wsg-idm-ecid-wtls5_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFZysBBAUDLAAEANe/dond4SyLts9ChApAQlG00j/VBS7t
+hUyZC2vKj+GSKwbeRVyiaNg8
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_wap-wsg-idm-ecid-wtls5:ALICE_wap-wsg-idm-ecid-wtls5_PUB
+
+
+PrivateKey=BOB_wap-wsg-idm-ecid-wtls5
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFZysBBAUETDBKAgEBBBUBraa4aeYxHd9HJ0vLIoCw
+auGKd9yhLgMsAAQHzc2FgfJGasNlMcJNDDrNQElhA1cHD4izqEedmC3ueMu72/Sp
+VF2Ppig=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_wap-wsg-idm-ecid-wtls5_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFZysBBAUDLAAEB83NhYHyRmrDZTHCTQw6zUBJYQNXBw+I
+s6hHnZgt7njLu9v0qVRdj6Yo
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_wap-wsg-idm-ecid-wtls5:BOB_wap-wsg-idm-ecid-wtls5_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_wap-wsg-idm-ecid-wtls5
+PeerKey=BOB_wap-wsg-idm-ecid-wtls5_PUB
+SharedSecret=066091c591278f5b949106052b2546aacc20917c20
+
+# ECDH Bob with Alice peer
+Derive=BOB_wap-wsg-idm-ecid-wtls5
+PeerKey=ALICE_wap-wsg-idm-ecid-wtls5_PUB
+SharedSecret=066091c591278f5b949106052b2546aacc20917c20
+
+# TEST CURVE wap-wsg-idm-ecid-wtls6
+
+PrivateKey=ALICE_wap-wsg-idm-ecid-wtls6
+-----BEGIN PRIVATE KEY-----
+ME4CAQAwEAYHKoZIzj0CAQYFZysBBAYENzA1AgEBBA5LJwRNrPNMwGyoBP95a6Eg
+Ax4ABMZxFi711Wl5r7tb1XJ9fJ3H1W1MKvVrYvfmNFo=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_wap-wsg-idm-ecid-wtls6_PUB
+-----BEGIN PUBLIC KEY-----
+MDIwEAYHKoZIzj0CAQYFZysBBAYDHgAExnEWLvXVaXmvu1vVcn18ncfVbUwq9Wti
+9+Y0Wg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_wap-wsg-idm-ecid-wtls6:ALICE_wap-wsg-idm-ecid-wtls6_PUB
+
+
+PrivateKey=BOB_wap-wsg-idm-ecid-wtls6
+-----BEGIN PRIVATE KEY-----
+ME4CAQAwEAYHKoZIzj0CAQYFZysBBAYENzA1AgEBBA63i1z4Kl8BEE1I3CYU9KEg
+Ax4ABG3Ft5F8wvnGimUAmGQrfqAlVJKdzhNSa3v47Kc=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_wap-wsg-idm-ecid-wtls6_PUB
+-----BEGIN PUBLIC KEY-----
+MDIwEAYHKoZIzj0CAQYFZysBBAYDHgAEbcW3kXzC+caKZQCYZCt+oCVUkp3OE1Jr
+e/jspw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_wap-wsg-idm-ecid-wtls6:BOB_wap-wsg-idm-ecid-wtls6_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_wap-wsg-idm-ecid-wtls6
+PeerKey=BOB_wap-wsg-idm-ecid-wtls6_PUB
+SharedSecret=8d184455748c56115ba2183070b0
+
+# ECDH Bob with Alice peer
+Derive=BOB_wap-wsg-idm-ecid-wtls6
+PeerKey=ALICE_wap-wsg-idm-ecid-wtls6_PUB
+SharedSecret=8d184455748c56115ba2183070b0
+
+# TEST CURVE wap-wsg-idm-ecid-wtls7
+
+PrivateKey=ALICE_wap-wsg-idm-ecid-wtls7
+-----BEGIN PRIVATE KEY-----
+MGECAQAwEAYHKoZIzj0CAQYFZysBBAcESjBIAgEBBBUAueoisiN+luJEy0wdiI7j
+cALlTqChLAMqAAQ/FWsGxD8vuvEFWXfWReOqvBzqWrF9mdMeTeOE1y9r9POOIUVJ
+PNtL
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_wap-wsg-idm-ecid-wtls7_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFZysBBAcDKgAEPxVrBsQ/L7rxBVl31kXjqrwc6lqxfZnT
+Hk3jhNcva/TzjiFFSTzbSw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_wap-wsg-idm-ecid-wtls7:ALICE_wap-wsg-idm-ecid-wtls7_PUB
+
+
+PrivateKey=BOB_wap-wsg-idm-ecid-wtls7
+-----BEGIN PRIVATE KEY-----
+MGECAQAwEAYHKoZIzj0CAQYFZysBBAcESjBIAgEBBBUAr42vKjbUXFak2mVzFYpu
+yhN/cDyhLAMqAASJZpuFg+n8vscuq+pqfFFPYemnfLdhdAB4JodfR3J5Bzu67hEm
+bIKQ
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_wap-wsg-idm-ecid-wtls7_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFZysBBAcDKgAEiWabhYPp/L7HLqvqanxRT2Hpp3y3YXQA
+eCaHX0dyeQc7uu4RJmyCkA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_wap-wsg-idm-ecid-wtls7:BOB_wap-wsg-idm-ecid-wtls7_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_wap-wsg-idm-ecid-wtls7
+PeerKey=BOB_wap-wsg-idm-ecid-wtls7_PUB
+SharedSecret=990eda6a0406caef965018b97c94d0faa200f6e4
+
+# ECDH Bob with Alice peer
+Derive=BOB_wap-wsg-idm-ecid-wtls7
+PeerKey=ALICE_wap-wsg-idm-ecid-wtls7_PUB
+SharedSecret=990eda6a0406caef965018b97c94d0faa200f6e4
+
+# TEST CURVE wap-wsg-idm-ecid-wtls8
+
+PrivateKey=ALICE_wap-wsg-idm-ecid-wtls8
+-----BEGIN PRIVATE KEY-----
+ME8CAQAwEAYHKoZIzj0CAQYFZysBBAgEODA2AgEBBA8A1m62ffl6niuM46XOUyih
+IAMeAAT4mqYAoe7NEtKfEMQs2ofInhZRZCFrFU5cjEWi
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_wap-wsg-idm-ecid-wtls8_PUB
+-----BEGIN PUBLIC KEY-----
+MDIwEAYHKoZIzj0CAQYFZysBBAgDHgAE+JqmAKHuzRLSnxDELNqHyJ4WUWQhaxVO
+XIxFog==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_wap-wsg-idm-ecid-wtls8:ALICE_wap-wsg-idm-ecid-wtls8_PUB
+
+
+PrivateKey=BOB_wap-wsg-idm-ecid-wtls8
+-----BEGIN PRIVATE KEY-----
+ME8CAQAwEAYHKoZIzj0CAQYFZysBBAgEODA2AgEBBA8AegTrLoMRyPl4U4xOdg6h
+IAMeAATQKkyQ3jL2Eku6C+vSQazbjjSkzNe67Occqj2P
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_wap-wsg-idm-ecid-wtls8_PUB
+-----BEGIN PUBLIC KEY-----
+MDIwEAYHKoZIzj0CAQYFZysBBAgDHgAE0CpMkN4y9hJLugvr0kGs2440pMzXuuzn
+HKo9jw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_wap-wsg-idm-ecid-wtls8:BOB_wap-wsg-idm-ecid-wtls8_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_wap-wsg-idm-ecid-wtls8
+PeerKey=BOB_wap-wsg-idm-ecid-wtls8_PUB
+SharedSecret=7524c547bd6b26644ce70571cb06
+
+# ECDH Bob with Alice peer
+Derive=BOB_wap-wsg-idm-ecid-wtls8
+PeerKey=ALICE_wap-wsg-idm-ecid-wtls8_PUB
+SharedSecret=7524c547bd6b26644ce70571cb06
+
+# TEST CURVE wap-wsg-idm-ecid-wtls9
+
+PrivateKey=ALICE_wap-wsg-idm-ecid-wtls9
+-----BEGIN PRIVATE KEY-----
+MGECAQAwEAYHKoZIzj0CAQYFZysBBAkESjBIAgEBBBUAE0376NvzsIXi6XadrVn4
+06obTRChLAMqAARbC1yw9f1uBOVlMf5ZFQewTgyc81Aqh2TFMSRfujCIhdvGTYgR
+tu6F
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_wap-wsg-idm-ecid-wtls9_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFZysBBAkDKgAEWwtcsPX9bgTlZTH+WRUHsE4MnPNQKodk
+xTEkX7owiIXbxk2IEbbuhQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_wap-wsg-idm-ecid-wtls9:ALICE_wap-wsg-idm-ecid-wtls9_PUB
+
+
+PrivateKey=BOB_wap-wsg-idm-ecid-wtls9
+-----BEGIN PRIVATE KEY-----
+MGECAQAwEAYHKoZIzj0CAQYFZysBBAkESjBIAgEBBBUAd2kfMclaJU2bg8ayTrjZ
+oolI82yhLAMqAAQ0NeW9TKhQeFrrTyMR9Gb55+BneCQSByAShM8Dn3V1FFYz7n0y
+bvBX
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_wap-wsg-idm-ecid-wtls9_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFZysBBAkDKgAENDXlvUyoUHha608jEfRm+efgZ3gkEgcg
+EoTPA591dRRWM+59Mm7wVw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_wap-wsg-idm-ecid-wtls9:BOB_wap-wsg-idm-ecid-wtls9_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_wap-wsg-idm-ecid-wtls9
+PeerKey=BOB_wap-wsg-idm-ecid-wtls9_PUB
+SharedSecret=5ca1d9eed44def2c390fd5bbb16ca2c3a09eb7b1
+
+# ECDH Bob with Alice peer
+Derive=BOB_wap-wsg-idm-ecid-wtls9
+PeerKey=ALICE_wap-wsg-idm-ecid-wtls9_PUB
+SharedSecret=5ca1d9eed44def2c390fd5bbb16ca2c3a09eb7b1
+
+# TEST CURVE wap-wsg-idm-ecid-wtls10
+
+PrivateKey=ALICE_wap-wsg-idm-ecid-wtls10
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFZysBBAoEZjBkAgEBBB01TDgjIGd+gXPZ4esQnWzz
+/y1vzJniUBM5XNyPq6FAAz4ABAHVs5gYpbJzqyO8Lk3nkTwhu4BuXb4wtrgGcY2L
+TwGxkC4Zq4aqLowsexGjVa0IjGKdWz5/TfwLwGpN4A==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_wap-wsg-idm-ecid-wtls10_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFZysBBAoDPgAEAdWzmBilsnOrI7wuTeeRPCG7gG5dvjC2
+uAZxjYtPAbGQLhmrhqoujCx7EaNVrQiMYp1bPn9N/AvAak3g
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_wap-wsg-idm-ecid-wtls10:ALICE_wap-wsg-idm-ecid-wtls10_PUB
+
+
+PrivateKey=BOB_wap-wsg-idm-ecid-wtls10
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFZysBBAoEZjBkAgEBBB0mTqwYwByRuu4zcU1QLKcG
+m8wewuaoKqVSpp8xQaFAAz4ABAEF4xTrWAIF1EacNMqTG3kwxwartAKFFqyOle+w
+BwDi6gra7cFVedD1p5RwD4gZU4QzgCLSwa7xZbBzgg==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_wap-wsg-idm-ecid-wtls10_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFZysBBAoDPgAEAQXjFOtYAgXURpw0ypMbeTDHBqu0AoUW
+rI6V77AHAOLqCtrtwVV50PWnlHAPiBlThDOAItLBrvFlsHOC
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_wap-wsg-idm-ecid-wtls10:BOB_wap-wsg-idm-ecid-wtls10_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_wap-wsg-idm-ecid-wtls10
+PeerKey=BOB_wap-wsg-idm-ecid-wtls10_PUB
+SharedSecret=0199de137bc263e25b543994d6315b5a3f1e38e7e1f60662cb5cbaab5f98
+
+# ECDH Bob with Alice peer
+Derive=BOB_wap-wsg-idm-ecid-wtls10
+PeerKey=ALICE_wap-wsg-idm-ecid-wtls10_PUB
+SharedSecret=0199de137bc263e25b543994d6315b5a3f1e38e7e1f60662cb5cbaab5f98
+
+# TEST CURVE wap-wsg-idm-ecid-wtls11
+
+PrivateKey=ALICE_wap-wsg-idm-ecid-wtls11
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFZysBBAsEZzBlAgEBBB4Au6lrzC3RIk3jXmtbeOAp
+LZPR0NUrr6dTf1lSCGqhQAM+AAQBl73V2TEZ8BO4QC+YiBlJ0GmW8WLc3RtS3iIr
+/oUAaDQQAGVJFD3GghjBPfI9KVBcZ2P8tUXUv5ifrWc=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_wap-wsg-idm-ecid-wtls11_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFZysBBAsDPgAEAZe91dkxGfATuEAvmIgZSdBplvFi3N0b
+Ut4iK/6FAGg0EABlSRQ9xoIYwT3yPSlQXGdj/LVF1L+Yn61n
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_wap-wsg-idm-ecid-wtls11:ALICE_wap-wsg-idm-ecid-wtls11_PUB
+
+
+PrivateKey=BOB_wap-wsg-idm-ecid-wtls11
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFZysBBAsEZzBlAgEBBB4AGJuGtQI1FvHfp2AsdKb3
+NVWawjpZQuyM1aelws2hQAM+AAQAdTW3xU6Ijf/Y835Z2hS4fOn6Xmp3O6iblXHr
+nKoBORuxHVRfXkfdL5TqfFpuDghzCyAS6ZMSWhjGV5o=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_wap-wsg-idm-ecid-wtls11_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFZysBBAsDPgAEAHU1t8VOiI3/2PN+WdoUuHzp+l5qdzuo
+m5Vx65yqATkbsR1UX15H3S+U6nxabg4IcwsgEumTEloYxlea
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_wap-wsg-idm-ecid-wtls11:BOB_wap-wsg-idm-ecid-wtls11_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_wap-wsg-idm-ecid-wtls11
+PeerKey=BOB_wap-wsg-idm-ecid-wtls11_PUB
+SharedSecret=01ee4b517d8a64be5ee32e10152c7bbcb8cde73a3da8e9643bce173011f7
+
+# ECDH Bob with Alice peer
+Derive=BOB_wap-wsg-idm-ecid-wtls11
+PeerKey=ALICE_wap-wsg-idm-ecid-wtls11_PUB
+SharedSecret=01ee4b517d8a64be5ee32e10152c7bbcb8cde73a3da8e9643bce173011f7
+
+# TEST CURVE wap-wsg-idm-ecid-wtls12
+
+PrivateKey=ALICE_wap-wsg-idm-ecid-wtls12
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFZysBBAwEYTBfAgEBBByAnUvQZhZr1lgTRixSMIx0
+KHuV4t8cbXCW415soTwDOgAE3G8wIl9SJ0mAmuIMWbJpFjf9wO8gKNu6nApye39Y
+hpXeYRL/nm7G6HmiiA5O1iudWC3hDbBH0cc=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_wap-wsg-idm-ecid-wtls12_PUB
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFZysBBAwDOgAE3G8wIl9SJ0mAmuIMWbJpFjf9wO8gKNu6
+nApye39YhpXeYRL/nm7G6HmiiA5O1iudWC3hDbBH0cc=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_wap-wsg-idm-ecid-wtls12:ALICE_wap-wsg-idm-ecid-wtls12_PUB
+
+
+PrivateKey=BOB_wap-wsg-idm-ecid-wtls12
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFZysBBAwEYTBfAgEBBBzZ7nt4CrPrk2m5iR64vpkj
+95JHOmzWf4VhRZqdoTwDOgAEukz40I4gWpUmXCM+PLmWGd0IO0XIPQa9KXzXvhbL
+dJH0yFkJ+ClSboOC26gtMTICiPhEgYjeKEQ=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_wap-wsg-idm-ecid-wtls12_PUB
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFZysBBAwDOgAEukz40I4gWpUmXCM+PLmWGd0IO0XIPQa9
+KXzXvhbLdJH0yFkJ+ClSboOC26gtMTICiPhEgYjeKEQ=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_wap-wsg-idm-ecid-wtls12:BOB_wap-wsg-idm-ecid-wtls12_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_wap-wsg-idm-ecid-wtls12
+PeerKey=BOB_wap-wsg-idm-ecid-wtls12_PUB
+SharedSecret=c75a8283a73312de82c8f99d41a9173a43b8f921e8161dd140131b36
+
+# ECDH Bob with Alice peer
+Derive=BOB_wap-wsg-idm-ecid-wtls12
+PeerKey=ALICE_wap-wsg-idm-ecid-wtls12_PUB
+SharedSecret=c75a8283a73312de82c8f99d41a9173a43b8f921e8161dd140131b36
+
+# TEST CURVE brainpoolP160r1
+
+PrivateKey=ALICE_brainpoolP160r1
+-----BEGIN PRIVATE KEY-----
+MGQCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEBBEkwRwIBAQQUZTQYt6IOsZUUgr36
+WYGKTj10erShLAMqAAQkMf73t3Cov2cdezPSUt9Wn0ydhpk9+2HwZ13YufUyfcvP
+ijdJ/zFO
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_brainpoolP160r1_PUB
+-----BEGIN PUBLIC KEY-----
+MEIwFAYHKoZIzj0CAQYJKyQDAwIIAQEBAyoABCQx/ve3cKi/Zx17M9JS31afTJ2G
+mT37YfBnXdi59TJ9y8+KN0n/MU4=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_brainpoolP160r1:ALICE_brainpoolP160r1_PUB
+
+
+PrivateKey=BOB_brainpoolP160r1
+-----BEGIN PRIVATE KEY-----
+MGQCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEBBEkwRwIBAQQUb/ulIRG4yoOOihWD
+AV4l78I2GLWhLAMqAARPjEMetPWS4FlgFCHvVfK1nTK/TLsYScHregeZAZqn8gaF
+vgq4bE8v
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_brainpoolP160r1_PUB
+-----BEGIN PUBLIC KEY-----
+MEIwFAYHKoZIzj0CAQYJKyQDAwIIAQEBAyoABE+MQx609ZLgWWAUIe9V8rWdMr9M
+uxhJwet6B5kBmqfyBoW+CrhsTy8=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_brainpoolP160r1:BOB_brainpoolP160r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_brainpoolP160r1
+PeerKey=BOB_brainpoolP160r1_PUB
+SharedSecret=e4fe5ae99a60d17b597f5705a719cea6709c63b9
+
+# ECDH Bob with Alice peer
+Derive=BOB_brainpoolP160r1
+PeerKey=ALICE_brainpoolP160r1_PUB
+SharedSecret=e4fe5ae99a60d17b597f5705a719cea6709c63b9
+
+# TEST CURVE brainpoolP160t1
+
+PrivateKey=ALICE_brainpoolP160t1
+-----BEGIN PRIVATE KEY-----
+MGQCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQECBEkwRwIBAQQUWWAyUnMvmQyeKeHE
+bIjyrW0JzVqhLAMqAAQ/h1VSPKvn2cTPmfMq0FZ3mxypjCIWtCMav7GH9Fby+kCr
+WKA0lFVw
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_brainpoolP160t1_PUB
+-----BEGIN PUBLIC KEY-----
+MEIwFAYHKoZIzj0CAQYJKyQDAwIIAQECAyoABD+HVVI8q+fZxM+Z8yrQVnebHKmM
+Iha0Ixq/sYf0VvL6QKtYoDSUVXA=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_brainpoolP160t1:ALICE_brainpoolP160t1_PUB
+
+
+PrivateKey=BOB_brainpoolP160t1
+-----BEGIN PRIVATE KEY-----
+MGQCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQECBEkwRwIBAQQUDFpUx8SZ718X0cwv
++oQaTXSK0zyhLAMqAAQIgDYhuy9cj04IFE0LforgJPt9rgcjuO81V6WR+E3LNETJ
+rYsy1X9k
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_brainpoolP160t1_PUB
+-----BEGIN PUBLIC KEY-----
+MEIwFAYHKoZIzj0CAQYJKyQDAwIIAQECAyoABAiANiG7L1yPTggUTQt+iuAk+32u
+ByO47zVXpZH4Tcs0RMmtizLVf2Q=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_brainpoolP160t1:BOB_brainpoolP160t1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_brainpoolP160t1
+PeerKey=BOB_brainpoolP160t1_PUB
+SharedSecret=199a218458b71a4e13f05a599fc17bc76f30ea2f
+
+# ECDH Bob with Alice peer
+Derive=BOB_brainpoolP160t1
+PeerKey=ALICE_brainpoolP160t1_PUB
+SharedSecret=199a218458b71a4e13f05a599fc17bc76f30ea2f
+
+# TEST CURVE brainpoolP192r1
+
+PrivateKey=ALICE_brainpoolP192r1
+-----BEGIN PRIVATE KEY-----
+MHACAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEDBFUwUwIBAQQYGiIpZVR71C31b9AE
+lLiEiEyzdhRsvTbkoTQDMgAEHAovVZJfm52KWqJr9IKz7w7Ta+7HUN5Bjy+qR87k
+Oo3nP+439TLOs4iDhIvzP8j1
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_brainpoolP192r1_PUB
+-----BEGIN PUBLIC KEY-----
+MEowFAYHKoZIzj0CAQYJKyQDAwIIAQEDAzIABBwKL1WSX5udilqia/SCs+8O02vu
+x1DeQY8vqkfO5DqN5z/uN/UyzrOIg4SL8z/I9Q==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_brainpoolP192r1:ALICE_brainpoolP192r1_PUB
+
+
+PrivateKey=BOB_brainpoolP192r1
+-----BEGIN PRIVATE KEY-----
+MHACAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEDBFUwUwIBAQQYkut8HljwyzxOArKA
+azilboA8yY6oy4svoTQDMgAEv/3NhrdVEA+PMFCm+muXhrC0wxX5UHvCUd/OAyda
+c2Jl7XVw2gS4hfXkTeT7MQMu
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_brainpoolP192r1_PUB
+-----BEGIN PUBLIC KEY-----
+MEowFAYHKoZIzj0CAQYJKyQDAwIIAQEDAzIABL/9zYa3VRAPjzBQpvprl4awtMMV
++VB7wlHfzgMnWnNiZe11cNoEuIX15E3k+zEDLg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_brainpoolP192r1:BOB_brainpoolP192r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_brainpoolP192r1
+PeerKey=BOB_brainpoolP192r1_PUB
+SharedSecret=7ce122b49afdfd1adde6cdfaa13dc7180d6d4e70322c8773
+
+# ECDH Bob with Alice peer
+Derive=BOB_brainpoolP192r1
+PeerKey=ALICE_brainpoolP192r1_PUB
+SharedSecret=7ce122b49afdfd1adde6cdfaa13dc7180d6d4e70322c8773
+
+# TEST CURVE brainpoolP192t1
+
+PrivateKey=ALICE_brainpoolP192t1
+-----BEGIN PRIVATE KEY-----
+MHACAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEEBFUwUwIBAQQYCV1NuYw7DwOawqgY
+kALfFpEzFE2rjXqYoTQDMgAEmBmJ220/ZJVdxfSgHFTz3FOC2PHql2ItbG0LXs/v
+7n/qkWGWz9B7R2FBqFaLBk0L
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_brainpoolP192t1_PUB
+-----BEGIN PUBLIC KEY-----
+MEowFAYHKoZIzj0CAQYJKyQDAwIIAQEEAzIABJgZidttP2SVXcX0oBxU89xTgtjx
+6pdiLWxtC17P7+5/6pFhls/Qe0dhQahWiwZNCw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_brainpoolP192t1:ALICE_brainpoolP192t1_PUB
+
+
+PrivateKey=BOB_brainpoolP192t1
+-----BEGIN PRIVATE KEY-----
+MHACAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEEBFUwUwIBAQQYmZP2vmYpfJvSnqEl
+4K0Yj0iMCr4ds9bboTQDMgAEcSuLSED2s4SIuEdomZbdDMSmNrpnezJRv/W+bCQp
+4bcnQAb20tp47ISw/yXoQSA0
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_brainpoolP192t1_PUB
+-----BEGIN PUBLIC KEY-----
+MEowFAYHKoZIzj0CAQYJKyQDAwIIAQEEAzIABHEri0hA9rOEiLhHaJmW3QzEpja6
+Z3syUb/1vmwkKeG3J0AG9tLaeOyEsP8l6EEgNA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_brainpoolP192t1:BOB_brainpoolP192t1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_brainpoolP192t1
+PeerKey=BOB_brainpoolP192t1_PUB
+SharedSecret=1a5444c2600d9d21d6a450d158fd25272ade262ab519790b
+
+# ECDH Bob with Alice peer
+Derive=BOB_brainpoolP192t1
+PeerKey=ALICE_brainpoolP192t1_PUB
+SharedSecret=1a5444c2600d9d21d6a450d158fd25272ade262ab519790b
+
+# TEST CURVE brainpoolP224r1
+
+PrivateKey=ALICE_brainpoolP224r1
+-----BEGIN PRIVATE KEY-----
+MHwCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEFBGEwXwIBAQQch91FmOz9tJ9Wfdyw
+krOM6UXinTuYBxjUWtU0HKE8AzoABIq0T5AJJzdDl9wbYqyxExMfTbNDt6W/ound
+ZTS6qXYvMegJ+nBcXeCi+FBI0pu6lHv8tF1ZjWLS
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_brainpoolP224r1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwFAYHKoZIzj0CAQYJKyQDAwIIAQEFAzoABIq0T5AJJzdDl9wbYqyxExMfTbND
+t6W/oundZTS6qXYvMegJ+nBcXeCi+FBI0pu6lHv8tF1ZjWLS
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_brainpoolP224r1:ALICE_brainpoolP224r1_PUB
+
+
+PrivateKey=BOB_brainpoolP224r1
+-----BEGIN PRIVATE KEY-----
+MHwCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEFBGEwXwIBAQQcvabkJWnrR4LuGUxf
+LO8DqDBcL4eix/a0qRWxm6E8AzoABM6qgBI9bmZwyYE0QFBJf5NpXe2phgcObKrG
+4URjdsORl4UJwlq7eLwINJLP9dPl0Qlb0Fv/gNVo
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_brainpoolP224r1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwFAYHKoZIzj0CAQYJKyQDAwIIAQEFAzoABM6qgBI9bmZwyYE0QFBJf5NpXe2p
+hgcObKrG4URjdsORl4UJwlq7eLwINJLP9dPl0Qlb0Fv/gNVo
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_brainpoolP224r1:BOB_brainpoolP224r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_brainpoolP224r1
+PeerKey=BOB_brainpoolP224r1_PUB
+SharedSecret=419e446a66968fcc372126cff4d637505c848c3a9b82503f2d441215
+
+# ECDH Bob with Alice peer
+Derive=BOB_brainpoolP224r1
+PeerKey=ALICE_brainpoolP224r1_PUB
+SharedSecret=419e446a66968fcc372126cff4d637505c848c3a9b82503f2d441215
+
+# TEST CURVE brainpoolP224t1
+
+PrivateKey=ALICE_brainpoolP224t1
+-----BEGIN PRIVATE KEY-----
+MHwCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEGBGEwXwIBAQQcSwWCcqYuiNyxR0gY
+VCMBQ17ykfaxEgMMyByZoqE8AzoABJiVhwIZAqy+OKj8RewjsdXPPCODfm+4RGV8
+2bYLW8SqiDeEDB+RvJirYwz/a5Ri+EL5Xk9QVkQF
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_brainpoolP224t1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwFAYHKoZIzj0CAQYJKyQDAwIIAQEGAzoABJiVhwIZAqy+OKj8RewjsdXPPCOD
+fm+4RGV82bYLW8SqiDeEDB+RvJirYwz/a5Ri+EL5Xk9QVkQF
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_brainpoolP224t1:ALICE_brainpoolP224t1_PUB
+
+
+PrivateKey=BOB_brainpoolP224t1
+-----BEGIN PRIVATE KEY-----
+MHwCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEGBGEwXwIBAQQcLK5R+idvzqC1a28G
+e9m6Eh5up82atVSTRWeXwKE8AzoABBg6ar3lkYSv0AcOM542SbPhAqxny/anS+Do
+ELViM0rofxlcvkywZiBY0T40xUvXBILDsY/0he22
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_brainpoolP224t1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwFAYHKoZIzj0CAQYJKyQDAwIIAQEGAzoABBg6ar3lkYSv0AcOM542SbPhAqxn
+y/anS+DoELViM0rofxlcvkywZiBY0T40xUvXBILDsY/0he22
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_brainpoolP224t1:BOB_brainpoolP224t1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_brainpoolP224t1
+PeerKey=BOB_brainpoolP224t1_PUB
+SharedSecret=8f83465fb6353912a51c2809ea30b19b73b3e391c0422650e0f20b58
+
+# ECDH Bob with Alice peer
+Derive=BOB_brainpoolP224t1
+PeerKey=ALICE_brainpoolP224t1_PUB
+SharedSecret=8f83465fb6353912a51c2809ea30b19b73b3e391c0422650e0f20b58
+
+# TEST CURVE brainpoolP256r1
+
+PrivateKey=ALICE_brainpoolP256r1
+-----BEGIN PRIVATE KEY-----
+MIGIAgEAMBQGByqGSM49AgEGCSskAwMCCAEBBwRtMGsCAQEEIBMmEFKb8UQb4oCu
+k226EiMpk/omRsx/rrRNuh9WGB/zoUQDQgAEeIYdJpIpkxneKbL9qP/vSJ2/d7cH
+Cs2ZXggcRif7KKN55Ioit7Q1sVEeGzEDFbxpRWK6A+Kgu8sFkE+LHr5BGQ==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_brainpoolP256r1_PUB
+-----BEGIN PUBLIC KEY-----
+MFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABHiGHSaSKZMZ3imy/aj/70idv3e3
+BwrNmV4IHEYn+yijeeSKIre0NbFRHhsxAxW8aUViugPioLvLBZBPix6+QRk=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_brainpoolP256r1:ALICE_brainpoolP256r1_PUB
+
+
+PrivateKey=BOB_brainpoolP256r1
+-----BEGIN PRIVATE KEY-----
+MIGIAgEAMBQGByqGSM49AgEGCSskAwMCCAEBBwRtMGsCAQEEIKXsf2pxFfTQiwbW
+2SKwZq50UOGhJYJZYO/xY33RHuQaoUQDQgAEC/FCNhyxZ4VcHY8zBehFbg3M54AU
+w6ixJ69gI2+xoyAXBn5d+pf8tAG0D0TUqtxRtwBgPWkt6pY4YYBQMY+NOA==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_brainpoolP256r1_PUB
+-----BEGIN PUBLIC KEY-----
+MFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABAvxQjYcsWeFXB2PMwXoRW4NzOeA
+FMOosSevYCNvsaMgFwZ+XfqX/LQBtA9E1KrcUbcAYD1pLeqWOGGAUDGPjTg=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_brainpoolP256r1:BOB_brainpoolP256r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_brainpoolP256r1
+PeerKey=BOB_brainpoolP256r1_PUB
+SharedSecret=78ed4b7bb4ed808813f8c27132fe04f5d805365549b754994d83b002416b6ba0
+
+# ECDH Bob with Alice peer
+Derive=BOB_brainpoolP256r1
+PeerKey=ALICE_brainpoolP256r1_PUB
+SharedSecret=78ed4b7bb4ed808813f8c27132fe04f5d805365549b754994d83b002416b6ba0
+
+# TEST CURVE brainpoolP256t1
+
+PrivateKey=ALICE_brainpoolP256t1
+-----BEGIN PRIVATE KEY-----
+MIGIAgEAMBQGByqGSM49AgEGCSskAwMCCAEBCARtMGsCAQEEIC4yFvVLhvRyF9wu
+yYJbncxLagsMCD+Sxt2vAJiKFpKdoUQDQgAEiGxl8E0yj3gE4iOyFDVe0tUYS9fN
+cNzkxEx2CiZwm09jbSNQF2pKAoCmLZQa8VBz+UZqdeXZy9Sc8UpJU3Fghg==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_brainpoolP256t1_PUB
+-----BEGIN PUBLIC KEY-----
+MFowFAYHKoZIzj0CAQYJKyQDAwIIAQEIA0IABIhsZfBNMo94BOIjshQ1XtLVGEvX
+zXDc5MRMdgomcJtPY20jUBdqSgKApi2UGvFQc/lGanXl2cvUnPFKSVNxYIY=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_brainpoolP256t1:ALICE_brainpoolP256t1_PUB
+
+
+PrivateKey=BOB_brainpoolP256t1
+-----BEGIN PRIVATE KEY-----
+MIGIAgEAMBQGByqGSM49AgEGCSskAwMCCAEBCARtMGsCAQEEIIfXus/y+3RdwUZ0
+0db3boxPCzzRcI3CgIC8ggdGDPqPoUQDQgAEdlZ2yOiBsmREPaw8TsrGNmTLL6q1
+lVz8+OQ780Xxfo9VIFeR0Qbk8CgqX0lWt5hbEbbzEbF6I2nZCJndQ9VIoA==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_brainpoolP256t1_PUB
+-----BEGIN PUBLIC KEY-----
+MFowFAYHKoZIzj0CAQYJKyQDAwIIAQEIA0IABHZWdsjogbJkRD2sPE7KxjZkyy+q
+tZVc/PjkO/NF8X6PVSBXkdEG5PAoKl9JVreYWxG28xGxeiNp2QiZ3UPVSKA=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_brainpoolP256t1:BOB_brainpoolP256t1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_brainpoolP256t1
+PeerKey=BOB_brainpoolP256t1_PUB
+SharedSecret=287a8f19e6f06476b222805eb11907c536fa6ea02b8877ea6d5323f9fabccdd8
+
+# ECDH Bob with Alice peer
+Derive=BOB_brainpoolP256t1
+PeerKey=ALICE_brainpoolP256t1_PUB
+SharedSecret=287a8f19e6f06476b222805eb11907c536fa6ea02b8877ea6d5323f9fabccdd8
+
+# TEST CURVE brainpoolP320r1
+
+PrivateKey=ALICE_brainpoolP320r1
+-----BEGIN PRIVATE KEY-----
+MIGiAgEAMBQGByqGSM49AgEGCSskAwMCCAEBCQSBhjCBgwIBAQQoRBvhspL4HZA6
+YcfouziNWFuE1e1RcN69xlsJ8OGZEMobV29pntQlSaFUA1IABFDmVKAu6UDU1doe
+67Fzp3WeLAKNcaLjX13W0X704bqNvSU7q747RCCbd46miRYsiqYejnsX0A/A5bOi
+I1LJixCGcAgm1pnGajKeok/ecsl+
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_brainpoolP320r1_PUB
+-----BEGIN PUBLIC KEY-----
+MGowFAYHKoZIzj0CAQYJKyQDAwIIAQEJA1IABFDmVKAu6UDU1doe67Fzp3WeLAKN
+caLjX13W0X704bqNvSU7q747RCCbd46miRYsiqYejnsX0A/A5bOiI1LJixCGcAgm
+1pnGajKeok/ecsl+
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_brainpoolP320r1:ALICE_brainpoolP320r1_PUB
+
+
+PrivateKey=BOB_brainpoolP320r1
+-----BEGIN PRIVATE KEY-----
+MIGiAgEAMBQGByqGSM49AgEGCSskAwMCCAEBCQSBhjCBgwIBAQQoi9ghqMQp8Zdx
+xVXuOMC66tVIvTQ9EX6taWLDy82eBRAt7MItb5LaMqFUA1IABHFexsmyGSMPdLCm
+a5vzaFlbk/gAkq6yfpE+BMokI+7GXx4dJz9+sKOi8h++T4SnocW03M7I5zOQVfK+
+82Kkq/vXCzEdkVRUPU4HVls7nil0
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_brainpoolP320r1_PUB
+-----BEGIN PUBLIC KEY-----
+MGowFAYHKoZIzj0CAQYJKyQDAwIIAQEJA1IABHFexsmyGSMPdLCma5vzaFlbk/gA
+kq6yfpE+BMokI+7GXx4dJz9+sKOi8h++T4SnocW03M7I5zOQVfK+82Kkq/vXCzEd
+kVRUPU4HVls7nil0
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_brainpoolP320r1:BOB_brainpoolP320r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_brainpoolP320r1
+PeerKey=BOB_brainpoolP320r1_PUB
+SharedSecret=13a56c63c2dafe3e053534d5bf32c7eb4a0733bf356510725d378c5cbcf6974240719e3e53b352bb
+
+# ECDH Bob with Alice peer
+Derive=BOB_brainpoolP320r1
+PeerKey=ALICE_brainpoolP320r1_PUB
+SharedSecret=13a56c63c2dafe3e053534d5bf32c7eb4a0733bf356510725d378c5cbcf6974240719e3e53b352bb
+
+# TEST CURVE brainpoolP320t1
+
+PrivateKey=ALICE_brainpoolP320t1
+-----BEGIN PRIVATE KEY-----
+MIGiAgEAMBQGByqGSM49AgEGCSskAwMCCAEBCgSBhjCBgwIBAQQoxl+OeILawo65
+M4YbtLSARXYJsFJi4F8cUF6vfo1swRoCL6sAnV0QSaFUA1IABFN48RBqcd0PyU7N
+TRjaJsUaYXBlectX7JwhB/X/bbuNUK1YW9tZJZSZ/bBUfVfEgUhC+0qrvomc3xhy
+YBJIQeGWODwC1rHjO2H7GGvx1HmF
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_brainpoolP320t1_PUB
+-----BEGIN PUBLIC KEY-----
+MGowFAYHKoZIzj0CAQYJKyQDAwIIAQEKA1IABFN48RBqcd0PyU7NTRjaJsUaYXBl
+ectX7JwhB/X/bbuNUK1YW9tZJZSZ/bBUfVfEgUhC+0qrvomc3xhyYBJIQeGWODwC
+1rHjO2H7GGvx1HmF
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_brainpoolP320t1:ALICE_brainpoolP320t1_PUB
+
+
+PrivateKey=BOB_brainpoolP320t1
+-----BEGIN PRIVATE KEY-----
+MIGiAgEAMBQGByqGSM49AgEGCSskAwMCCAEBCgSBhjCBgwIBAQQoMlTiH2CM3XGa
+VXPOQ5tdm+GJmnP03gbNK4POt5yQpnW8HoaHc+SS56FUA1IABLXO5ngGf17dU+ae
+QetDyXqlTTxtTrav1/NGb+i9BQUAsbIMQkdY0zWWbhksoMn56F2DBTSFwBlb1hBt
+p9fNIGUbgKqOlvtBpQHIoKXYEq3l
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_brainpoolP320t1_PUB
+-----BEGIN PUBLIC KEY-----
+MGowFAYHKoZIzj0CAQYJKyQDAwIIAQEKA1IABLXO5ngGf17dU+aeQetDyXqlTTxt
+Trav1/NGb+i9BQUAsbIMQkdY0zWWbhksoMn56F2DBTSFwBlb1hBtp9fNIGUbgKqO
+lvtBpQHIoKXYEq3l
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_brainpoolP320t1:BOB_brainpoolP320t1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_brainpoolP320t1
+PeerKey=BOB_brainpoolP320t1_PUB
+SharedSecret=170d1f5fc4248700be75499eac813fac642df1311ab005e10796cc2ef43b82f8d788eb232d580243
+
+# ECDH Bob with Alice peer
+Derive=BOB_brainpoolP320t1
+PeerKey=ALICE_brainpoolP320t1_PUB
+SharedSecret=170d1f5fc4248700be75499eac813fac642df1311ab005e10796cc2ef43b82f8d788eb232d580243
+
+# TEST CURVE brainpoolP384r1
+
+PrivateKey=ALICE_brainpoolP384r1
+-----BEGIN PRIVATE KEY-----
+MIG6AgEAMBQGByqGSM49AgEGCSskAwMCCAEBCwSBnjCBmwIBAQQweTbLDp3fPbIL
+8w7I+aQzU8edVXXiFtt8Ulx7HSuAvHu/uaeedCKA+sXKXe33/aoDoWQDYgAEgQEp
+8Mrclp7hd1kkTnaXCEzAyhlMUtBIXQGI8ALS3FaMoL4mjIlhAU+vNdIcI9NGBx7Q
+FRUzFIy3IAyF+VPq8fM7Yyjk0x4P8UB1N+d2odKvKFqFBQBQmd6S5h+0ijis
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_brainpoolP384r1_PUB
+-----BEGIN PUBLIC KEY-----
+MHowFAYHKoZIzj0CAQYJKyQDAwIIAQELA2IABIEBKfDK3Jae4XdZJE52lwhMwMoZ
+TFLQSF0BiPAC0txWjKC+JoyJYQFPrzXSHCPTRgce0BUVMxSMtyAMhflT6vHzO2Mo
+5NMeD/FAdTfndqHSryhahQUAUJnekuYftIo4rA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_brainpoolP384r1:ALICE_brainpoolP384r1_PUB
+
+
+PrivateKey=BOB_brainpoolP384r1
+-----BEGIN PRIVATE KEY-----
+MIG6AgEAMBQGByqGSM49AgEGCSskAwMCCAEBCwSBnjCBmwIBAQQwF6ERsBKPIs2v
+YHNnkyb15eHfTIQ58qsFlF90qztOdGzhytiWZXPvOh4khzujFfdZoWQDYgAEDxy4
+ddTAt+nTw0F16nhHhmmNbns3bX3rKEcY+686v58dAvx4VWOC7vHsiwek9ZYbZSkm
+Ky6H78ndkBrmU3BBR7hFGyU7CWSDFoH5Oybk0+JzkNa0qAm8+MpAIcFqb+IY
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_brainpoolP384r1_PUB
+-----BEGIN PUBLIC KEY-----
+MHowFAYHKoZIzj0CAQYJKyQDAwIIAQELA2IABA8cuHXUwLfp08NBdep4R4ZpjW57
+N2196yhHGPuvOr+fHQL8eFVjgu7x7IsHpPWWG2UpJisuh+/J3ZAa5lNwQUe4RRsl
+OwlkgxaB+Tsm5NPic5DWtKgJvPjKQCHBam/iGA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_brainpoolP384r1:BOB_brainpoolP384r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_brainpoolP384r1
+PeerKey=BOB_brainpoolP384r1_PUB
+SharedSecret=0b3ad57e83759760d94904d9ea266b538120c6db2b5046217aa1ecd924828b949d335c8ce8a5b36bac7556bf6058c40a
+
+# ECDH Bob with Alice peer
+Derive=BOB_brainpoolP384r1
+PeerKey=ALICE_brainpoolP384r1_PUB
+SharedSecret=0b3ad57e83759760d94904d9ea266b538120c6db2b5046217aa1ecd924828b949d335c8ce8a5b36bac7556bf6058c40a
+
+# TEST CURVE brainpoolP384t1
+
+PrivateKey=ALICE_brainpoolP384t1
+-----BEGIN PRIVATE KEY-----
+MIG6AgEAMBQGByqGSM49AgEGCSskAwMCCAEBDASBnjCBmwIBAQQwYb/xX9O8mxEu
+tbOQwQ/pB862keq/eWxj8GW41m2OroEtOJZL1SsK/8ZwAL3BdNoyoWQDYgAENpcX
+DPQYBhU8zi4G6mQtjdgVmpdn4Iuwb0/VVmopmFAL0ISDB0qk9Hn2Lt9rmE8Nathq
+kKKlVHd/Y5FRqf06PZj8jaYHAxvz5E1J8ykrbT7rUpbj9Df2t+eop9YBbSxc
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_brainpoolP384t1_PUB
+-----BEGIN PUBLIC KEY-----
+MHowFAYHKoZIzj0CAQYJKyQDAwIIAQEMA2IABDaXFwz0GAYVPM4uBupkLY3YFZqX
+Z+CLsG9P1VZqKZhQC9CEgwdKpPR59i7fa5hPDWrYapCipVR3f2ORUan9Oj2Y/I2m
+BwMb8+RNSfMpK20+61KW4/Q39rfnqKfWAW0sXA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_brainpoolP384t1:ALICE_brainpoolP384t1_PUB
+
+
+PrivateKey=BOB_brainpoolP384t1
+-----BEGIN PRIVATE KEY-----
+MIG6AgEAMBQGByqGSM49AgEGCSskAwMCCAEBDASBnjCBmwIBAQQwbFHOFMHlMXRY
+d29dF6HzKMh09dw7OAyxEeROTqOjFsI+whaqtL4GWH5P0UgFPDAHoWQDYgAER24u
+XKoWWnFFusbCPtDzz7n9zDIWzFqMeP6YE3MOseyfRFcKIVz/omWBVwpUbd3ca6Or
+d/Mh8hThIV4tZbPUwlyzzEW2NMJtd2t5JKdja0aT7fbp7NS9IJzNIRDl7r8z
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_brainpoolP384t1_PUB
+-----BEGIN PUBLIC KEY-----
+MHowFAYHKoZIzj0CAQYJKyQDAwIIAQEMA2IABEduLlyqFlpxRbrGwj7Q88+5/cwy
+FsxajHj+mBNzDrHsn0RXCiFc/6JlgVcKVG3d3Gujq3fzIfIU4SFeLWWz1MJcs8xF
+tjTCbXdreSSnY2tGk+326ezUvSCczSEQ5e6/Mw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_brainpoolP384t1:BOB_brainpoolP384t1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_brainpoolP384t1
+PeerKey=BOB_brainpoolP384t1_PUB
+SharedSecret=0fde85a61157cdd898196f291802ebd57bb2e39d98c4e6ad9bb3e2e0375e1df9bf7dadb8df7db1fea32818ef2c88babc
+
+# ECDH Bob with Alice peer
+Derive=BOB_brainpoolP384t1
+PeerKey=ALICE_brainpoolP384t1_PUB
+SharedSecret=0fde85a61157cdd898196f291802ebd57bb2e39d98c4e6ad9bb3e2e0375e1df9bf7dadb8df7db1fea32818ef2c88babc
+
+# TEST CURVE brainpoolP512r1
+
+PrivateKey=ALICE_brainpoolP512r1
+-----BEGIN PRIVATE KEY-----
+MIHsAgEAMBQGByqGSM49AgEGCSskAwMCCAEBDQSB0DCBzQIBAQRAjMVK5PA5xYk8
+5gNs28Yo0erQSkgmildL7WwMVeT66algoISleFKT+fQkDRlfSKPXCZjK0NnKX5K9
+rkMm8w9ywKGBhQOBggAEHlj4gsnR2wN53k/hSIcAtbgHwbld5uS1/gR8RtoyaEDi
+t4Ti59/I9kRkZFEHJemhpTP2xY03j3M5rHP7vzk1NVKgYHJQ9MvMtPd6G+Fj5D0Y
+N1nnyqP3IJ8PyXmOdXBMoMHu+H50QbYZpcUFOqJhKp1T0+58xTXJdP8axl1IjtI=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_brainpoolP512r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGbMBQGByqGSM49AgEGCSskAwMCCAEBDQOBggAEHlj4gsnR2wN53k/hSIcAtbgH
+wbld5uS1/gR8RtoyaEDit4Ti59/I9kRkZFEHJemhpTP2xY03j3M5rHP7vzk1NVKg
+YHJQ9MvMtPd6G+Fj5D0YN1nnyqP3IJ8PyXmOdXBMoMHu+H50QbYZpcUFOqJhKp1T
+0+58xTXJdP8axl1IjtI=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_brainpoolP512r1:ALICE_brainpoolP512r1_PUB
+
+
+PrivateKey=BOB_brainpoolP512r1
+-----BEGIN PRIVATE KEY-----
+MIHsAgEAMBQGByqGSM49AgEGCSskAwMCCAEBDQSB0DCBzQIBAQRAZA10+k4+Esme
+vjkT9LdSX07amRwXrT7CBnEskZpHkZEoYVQa6FuE7Fai0kjL86lUCC4xoTjFbH3t
+LLrD0v7vwqGBhQOBggAEo3NAMIGp0rJxReih4nbEiTegA4pSEk84CUHHBLGuLsek
+Vo1vmj1LTnu4dVuILLf+MSZh9jjNmsWuEGSHIaZx6hniFHGdaRQ3GFODGvkE6z2d
+2kwv3Fmsq9+gu4By2OhSCfP+hpFhobXAYwWXzgaBFH+TqlF31Dyr2fuPnkL7tK4=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_brainpoolP512r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGbMBQGByqGSM49AgEGCSskAwMCCAEBDQOBggAEo3NAMIGp0rJxReih4nbEiTeg
+A4pSEk84CUHHBLGuLsekVo1vmj1LTnu4dVuILLf+MSZh9jjNmsWuEGSHIaZx6hni
+FHGdaRQ3GFODGvkE6z2d2kwv3Fmsq9+gu4By2OhSCfP+hpFhobXAYwWXzgaBFH+T
+qlF31Dyr2fuPnkL7tK4=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_brainpoolP512r1:BOB_brainpoolP512r1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_brainpoolP512r1
+PeerKey=BOB_brainpoolP512r1_PUB
+SharedSecret=80751feb09215a9da32f9f8c97133f53f0286a89969bd00d7f365da7f7736f45e634a35012d71b22f09bd89760ab0d2b0d426133cd9a379da9739d0f5f2e0360
+
+# ECDH Bob with Alice peer
+Derive=BOB_brainpoolP512r1
+PeerKey=ALICE_brainpoolP512r1_PUB
+SharedSecret=80751feb09215a9da32f9f8c97133f53f0286a89969bd00d7f365da7f7736f45e634a35012d71b22f09bd89760ab0d2b0d426133cd9a379da9739d0f5f2e0360
+
+# TEST CURVE brainpoolP512t1
+
+PrivateKey=ALICE_brainpoolP512t1
+-----BEGIN PRIVATE KEY-----
+MIHsAgEAMBQGByqGSM49AgEGCSskAwMCCAEBDgSB0DCBzQIBAQRAm8Dt1nWguxK5
+iqhf6mig/Y7ctmMgbRCWSJMMd3lw5/iM4mtP9achhaEWGImIWV6Fbryi6Jv3nitC
+BUxpqREpcqGBhQOBggAEH/z+dOHhLfxI0GLpmUjYaSlC2H380nBhe6P4GSrnpya/
+Yew0IRyDfo0p99vwgOaLh8wJIH3Joy4NMtHthg8IAFmoctAoWkQ21E0HjPjwqZbx
+mvBD0S9opVycFR8XUSaK0EHyHO7hfuVsdyYzIIjpKViP7uOOtrggsTepWzBQt9I=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_brainpoolP512t1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGbMBQGByqGSM49AgEGCSskAwMCCAEBDgOBggAEH/z+dOHhLfxI0GLpmUjYaSlC
+2H380nBhe6P4GSrnpya/Yew0IRyDfo0p99vwgOaLh8wJIH3Joy4NMtHthg8IAFmo
+ctAoWkQ21E0HjPjwqZbxmvBD0S9opVycFR8XUSaK0EHyHO7hfuVsdyYzIIjpKViP
+7uOOtrggsTepWzBQt9I=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_brainpoolP512t1:ALICE_brainpoolP512t1_PUB
+
+
+PrivateKey=BOB_brainpoolP512t1
+-----BEGIN PRIVATE KEY-----
+MIHsAgEAMBQGByqGSM49AgEGCSskAwMCCAEBDgSB0DCBzQIBAQRAFStrWBwOtTlY
+/pBeT2ncjTHcNzKm+ocTiIvr0RUEuX8ITd+L5x9H+ZLk44T85/8yqTPlk6cZSHby
+TG5UkPGVvaGBhQOBggAEE6EYYwpBA3NBflj/HYwxzbaxuALefTsTr5O0bLqh4J6S
+xkAwsQnlkU8PCnzEuvdBNxSwW7276VGfwDO7kFKEdZq3cnT+P41yi/XBVK7xgaL1
+R2U+vCxWsje6JLixWEdJkJ+6TqPKICdriNge1zbjvfhb01zP58E/Xsgh5/deJco=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_brainpoolP512t1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGbMBQGByqGSM49AgEGCSskAwMCCAEBDgOBggAEE6EYYwpBA3NBflj/HYwxzbax
+uALefTsTr5O0bLqh4J6SxkAwsQnlkU8PCnzEuvdBNxSwW7276VGfwDO7kFKEdZq3
+cnT+P41yi/XBVK7xgaL1R2U+vCxWsje6JLixWEdJkJ+6TqPKICdriNge1zbjvfhb
+01zP58E/Xsgh5/deJco=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BOB_brainpoolP512t1:BOB_brainpoolP512t1_PUB
+
+
+# ECDH Alice with Bob peer
+Derive=ALICE_brainpoolP512t1
+PeerKey=BOB_brainpoolP512t1_PUB
+SharedSecret=0afecb44d108c9bf2bc159fcc613a1429e3906d5d201d579adc2167058e972ef85fc13d837f3566a2ff3a881e47bfe36b722baf4a9f865097fe11e171189a944
+
+# ECDH Bob with Alice peer
+Derive=BOB_brainpoolP512t1
+PeerKey=ALICE_brainpoolP512t1_PUB
+SharedSecret=0afecb44d108c9bf2bc159fcc613a1429e3906d5d201d579adc2167058e972ef85fc13d837f3566a2ff3a881e47bfe36b722baf4a9f865097fe11e171189a944
+
+
+Title = ECDH KATs (from RFC 5114, 5903, 7027)
+
+# Keys and shared secrets from RFC 5114
+PrivateKey=PRIME192V1_RFC5114
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBgyP6MWnY6cZZP1lHa8
+FCAAq1vg4knENCahNAMyAATNRkiez9bBBeez0yVm4rEi4kmrqt2HBhJoiHtId99R
+3U3D1v0R8KJvj9OEQxeRbpo=
+-----END PRIVATE KEY-----
+
+PublicKey=PRIME192V1_RFC5114-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEzUZIns/WwQXns9MlZuKxIuJJq6rd
+hwYSaIh7SHffUd1Nw9b9EfCib4/ThEMXkW6a
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = PRIME192V1_RFC5114:PRIME192V1_RFC5114-PUBLIC
+
+
+PrivateKey=PRIME192V1_RFC5114-Peer
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBhjH5W7SmdjLJxHbu6a
+tpWrJAoEmTB/z2KhNAMyAARRmhIWgOAEVGa6Id8u7kf1lztQBXfvE9X/YTq01kzu
+OiCHW9sQ+VP2swygcsYKpX8=
+-----END PRIVATE KEY-----
+
+PublicKey=PRIME192V1_RFC5114-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEUZoSFoDgBFRmuiHfLu5H9Zc7UAV3
+7xPV/2E6tNZM7jogh1vbEPlT9rMMoHLGCqV/
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = PRIME192V1_RFC5114-Peer:PRIME192V1_RFC5114-Peer-PUBLIC
+
+
+
+Derive=PRIME192V1_RFC5114
+PeerKey=PRIME192V1_RFC5114-Peer-PUBLIC
+SharedSecret=AD420182633F8526BFE954ACDA376F05E5FF4F837F54FEBE
+
+Derive=PRIME192V1_RFC5114-Peer
+PeerKey=PRIME192V1_RFC5114-PUBLIC
+SharedSecret=AD420182633F8526BFE954ACDA376F05E5FF4F837F54FEBE
+
+PrivateKey=SECP224R1_RFC5114
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBy1WOtsKI2nB7u0+PuuKrnp
+y2LjvFx1c+IuJtN/oTwDOgAESd/vMJ+BSIwwTP9as+5aIVQ2fceDMVDgpR8+608r
+XuRXYsT2VMGgxn9Uz4iwFrUbzj18Io1XrbQ=
+-----END PRIVATE KEY-----
+
+PublicKey=SECP224R1_RFC5114-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAESd/vMJ+BSIwwTP9as+5aIVQ2fceDMVDg
+pR8+608rXuRXYsT2VMGgxn9Uz4iwFrUbzj18Io1XrbQ=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = SECP224R1_RFC5114:SECP224R1_RFC5114-PUBLIC
+
+
+PrivateKey=SECP224R1_RFC5114-Peer
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBysOxrdPZdw5vanCO6fO44K
+s7SA6fJ/hciLXm0YoTwDOgAEazrJao0M3mpVmb6AMu3xDBYtCorSGVBtzUKiB9SR
+vpnCE6fRyjcG3r/jBfNhr8uzPiYJyLFhitU=
+-----END PRIVATE KEY-----
+
+PublicKey=SECP224R1_RFC5114-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEazrJao0M3mpVmb6AMu3xDBYtCorSGVBt
+zUKiB9SRvpnCE6fRyjcG3r/jBfNhr8uzPiYJyLFhitU=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = SECP224R1_RFC5114-Peer:SECP224R1_RFC5114-Peer-PUBLIC
+
+
+
+Derive=SECP224R1_RFC5114
+PeerKey=SECP224R1_RFC5114-Peer-PUBLIC
+SharedSecret=52272F50F46F4EDC9151569092F46DF2D96ECC3B6DC1714A4EA949FA
+
+Derive=SECP224R1_RFC5114-Peer
+PeerKey=SECP224R1_RFC5114-PUBLIC
+SharedSecret=52272F50F46F4EDC9151569092F46DF2D96ECC3B6DC1714A4EA949FA
+
+PrivateKey=PRIME256V1_RFC5114
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQggUJkFF8vVvLpao4z
+ehKEmT+vQypavOWehntykdUHo6+hRANCAAQq9QLzvolS8sm1qNQWDQnpcWW+ULxC
+rkpejTtLqDrrFesPr0yphsTThoGg+YctedVnlb1L/25t48D1AV7OXv2F
+-----END PRIVATE KEY-----
+
+PublicKey=PRIME256V1_RFC5114-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEKvUC876JUvLJtajUFg0J6XFlvlC8
+Qq5KXo07S6g66xXrD69MqYbE04aBoPmHLXnVZ5W9S/9ubePA9QFezl79hQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = PRIME256V1_RFC5114:PRIME256V1_RFC5114-PUBLIC
+
+
+PrivateKey=PRIME256V1_RFC5114-Peer
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgLOF4jsGX4JbblaIA
+zAqyahnOa8ytViuO7htZN2HPf0GhRANCAASxIN5Ko2SSeVNG6N5sLIZGrgaq6ief
+p3WzqwcV9s5RsJ8bfuziDXte2OxoX6Pwcdg3JwJwkqhBE4XDTd5XCLK2
+-----END PRIVATE KEY-----
+
+PublicKey=PRIME256V1_RFC5114-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEsSDeSqNkknlTRujebCyGRq4Gquon
+n6d1s6sHFfbOUbCfG37s4g17XtjsaF+j8HHYNycCcJKoQROFw03eVwiytg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = PRIME256V1_RFC5114-Peer:PRIME256V1_RFC5114-Peer-PUBLIC
+
+
+
+Derive=PRIME256V1_RFC5114
+PeerKey=PRIME256V1_RFC5114-Peer-PUBLIC
+SharedSecret=DD0F5396219D1EA393310412D19A08F1F5811E9DC8EC8EEA7F80D21C820C2788
+
+Derive=PRIME256V1_RFC5114-Peer
+PeerKey=PRIME256V1_RFC5114-PUBLIC
+SharedSecret=DD0F5396219D1EA393310412D19A08F1F5811E9DC8EC8EEA7F80D21C820C2788
+
+PrivateKey=SECP384R1_RFC5114
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDDSczXqcWZK8kTdFOn9
+EmBxXf2KeWVXHEjXCe56eWKhVtcGqQy8td8phvBf6tuTdvGhZANiAAR5MUjxeHY0
+1dpMbZB0QX0F4FerYvggVNEO5rBAPWJ5VH5qjqnR/XdCfQFv4nqLjGbGxBKUMx0j
+5vSA9PtM1AUEyUc5LpT0w/BrjzmLsp5CNo96aFkj3jtnus7SFKGh0Sg=
+-----END PRIVATE KEY-----
+
+PublicKey=SECP384R1_RFC5114-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEeTFI8Xh2NNXaTG2QdEF9BeBXq2L4IFTR
+DuawQD1ieVR+ao6p0f13Qn0Bb+J6i4xmxsQSlDMdI+b0gPT7TNQFBMlHOS6U9MPw
+a485i7KeQjaPemhZI947Z7rO0hShodEo
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = SECP384R1_RFC5114:SECP384R1_RFC5114-PUBLIC
+
+
+PrivateKey=SECP384R1_RFC5114-Peer
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDBS0Xkf20tw+JwPANRW
+wvcCO2ElJiw2p98fgCMRIczj05vlLgDBlKQTLEpsdovNlNKhZANiAARc1Cq5xBtT
+R/dLjU77cIs9WzbbZZFTWbRKvBdke2uZmXidcqhIZa4vIj8StaGrwSDhcUWP6qk5
+qqOov6xGtAS9j21bNIwPpNgM7KFjVsqTMkC96HI0Fajs4DWw7fNnVd4=
+-----END PRIVATE KEY-----
+
+PublicKey=SECP384R1_RFC5114-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEXNQqucQbU0f3S41O+3CLPVs222WRU1m0
+SrwXZHtrmZl4nXKoSGWuLyI/ErWhq8Eg4XFFj+qpOaqjqL+sRrQEvY9tWzSMD6TY
+DOyhY1bKkzJAvehyNBWo7OA1sO3zZ1Xe
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = SECP384R1_RFC5114-Peer:SECP384R1_RFC5114-Peer-PUBLIC
+
+
+
+Derive=SECP384R1_RFC5114
+PeerKey=SECP384R1_RFC5114-Peer-PUBLIC
+SharedSecret=5EA1FC4AF7256D2055981B110575E0A8CAE53160137D904C59D926EB1B8456E427AA8A4540884C37DE159A58028ABC0E
+
+Derive=SECP384R1_RFC5114-Peer
+PeerKey=SECP384R1_RFC5114-PUBLIC
+SharedSecret=5EA1FC4AF7256D2055981B110575E0A8CAE53160137D904C59D926EB1B8456E427AA8A4540884C37DE159A58028ABC0E
+
+PrivateKey=SECP521R1_RFC5114
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIBE/gtqCVzXj2XJ2aD
+srdCd7rSczXqcWZK8kMMxPM0WblmnueLP/ubhoMBXTRNy/72+5r0xsRwviVFFs08
+Gh+0c2KhgYkDgYYABAHrs03XVyGr+K3J2+0XiJy7l2XZCnxg8s7wB7sPKybhSIH9
+RELmidYcst0EbuMOP/0g+aRbvfZBPVg6Lb9Zkk/TXAD2tjLRlMA4jiLYQ35VjFUq
+4ZWt/RU/ktdJCDUbL4xO2pTtsJFtG1PAILXuyu0aX8OKIz5IMFh7su40ibO0KlqG
+pA==
+-----END PRIVATE KEY-----
+
+PublicKey=SECP521R1_RFC5114-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQB67NN11chq/itydvtF4icu5dl2Qp8
+YPLO8Ae7Dysm4UiB/URC5onWHLLdBG7jDj/9IPmkW732QT1YOi2/WZJP01wA9rYy
+0ZTAOI4i2EN+VYxVKuGVrf0VP5LXSQg1Gy+MTtqU7bCRbRtTwCC17srtGl/DiiM+
+SDBYe7LuNImztCpahqQ=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = SECP521R1_RFC5114:SECP521R1_RFC5114-PUBLIC
+
+
+PrivateKey=SECP521R1_RFC5114-Peer
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIAzuNIDYZFoX0knyd2
+0ouuYWlS0Xkf20tw98M3hzKqGyKShEi80dwkltQ1sBBIBm6+T3KQPDYbGp3BGT3C
+ydCJG5ahgYkDgYYABAEOv6/G6F4I0kv//MGkUR2w5jS+6xtt7IxZOa5EdmIBr2IA
+QwupfIrGoOnwizPOfp/utbpO5eDYFRDCQpW4oI0CNQCkpuwwDfniV7A3K156v+8J
+NDZxmneIfrsLGM+Ambn0IStuMKFBnBjgKdNoY8ydRI9Nuk0qDmBxG+VykV+9T+8m
+lQ==
+-----END PRIVATE KEY-----
+
+PublicKey=SECP521R1_RFC5114-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBDr+vxuheCNJL//zBpFEdsOY0vusb
+beyMWTmuRHZiAa9iAEMLqXyKxqDp8Iszzn6f7rW6TuXg2BUQwkKVuKCNAjUApKbs
+MA354lewNyteer/vCTQ2cZp3iH67CxjPgJm59CErbjChQZwY4CnTaGPMnUSPTbpN
+Kg5gcRvlcpFfvU/vJpU=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = SECP521R1_RFC5114-Peer:SECP521R1_RFC5114-Peer-PUBLIC
+
+
+
+Derive=SECP521R1_RFC5114
+PeerKey=SECP521R1_RFC5114-Peer-PUBLIC
+SharedSecret=00CDEA89621CFA46B132F9E4CFE2261CDE2D4368EB5656634C7CC98C7A00CDE54ED1866A0DD3E6126C9D2F845DAFF82CEB1DA08F5D87521BB0EBECA77911169C20CC
+
+Derive=SECP521R1_RFC5114-Peer
+PeerKey=SECP521R1_RFC5114-PUBLIC
+SharedSecret=00CDEA89621CFA46B132F9E4CFE2261CDE2D4368EB5656634C7CC98C7A00CDE54ED1866A0DD3E6126C9D2F845DAFF82CEB1DA08F5D87521BB0EBECA77911169C20CC
+
+# Keys and shared secrets from RFC 5903
+PrivateKey=PRIME256V1_RFC5903
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgyI8B9RDZrD9wopLa
+ojFt5UTpqriv6EBJxiqcV4YtFDOhRANCAATa0LZTlCIc+bBR4f7KV4fQmN/mN/yQ
+ue+UXQw3clgRgFJxoEYc24JS1h8cRW+j5Zqx9FszrM9fWDieBXe4mQuz
+-----END PRIVATE KEY-----
+
+PublicKey=PRIME256V1_RFC5903-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE2tC2U5QiHPmwUeH+yleH0Jjf5jf8
+kLnvlF0MN3JYEYBScaBGHNuCUtYfHEVvo+WasfRbM6zPX1g4ngV3uJkLsw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = PRIME256V1_RFC5903:PRIME256V1_RFC5903-PUBLIC
+
+
+PrivateKey=PRIME256V1_RFC5903-Peer
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgxu+cXXiuASoBEWSs
+s5fOIIhoXY8Gv5vgsoOrRkdr7lOhRANCAATRLftSicjU+BIItwJwOYw0IpaXCgvM
+t0xzb8dVRJS/Y1b788o2bMI+gVeFTBPFjWqsI/BGraMPg1PnTzMDmHKr
+-----END PRIVATE KEY-----
+
+PublicKey=PRIME256V1_RFC5903-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0S37UonI1PgSCLcCcDmMNCKWlwoL
+zLdMc2/HVUSUv2NW+/PKNmzCPoFXhUwTxY1qrCPwRq2jD4NT508zA5hyqw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = PRIME256V1_RFC5903-Peer:PRIME256V1_RFC5903-Peer-PUBLIC
+
+
+
+Derive=PRIME256V1_RFC5903
+PeerKey=PRIME256V1_RFC5903-Peer-PUBLIC
+SharedSecret=D6840F6B42F6EDAFD13116E0E12565202FEF8E9ECE7DCE03812464D04B9442DE
+
+Derive=PRIME256V1_RFC5903-Peer
+PeerKey=PRIME256V1_RFC5903-PUBLIC
+SharedSecret=D6840F6B42F6EDAFD13116E0E12565202FEF8E9ECE7DCE03812464D04B9442DE
+
+PrivateKey=SECP384R1_RFC5903
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDAJnzxwNNSixpmITXOj
+daZ/diTvfGs8DxYGR7Z0FNzmVeNbU4BB5knuP674lng6sZShZANiAARmeELX0YCs
+LN5vdPN1UfVXVcdkXCDvc+MWNP5ytMVe5t46yAistL20yIcyrulfQaqUgu0fwO65
+yvxJhGJcz8I/ZQMhSeDhRK2gJBgVNaDzjuufz/PCyUfa5ptMY0VzqBw=
+-----END PRIVATE KEY-----
+
+PublicKey=SECP384R1_RFC5903-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEZnhC19GArCzeb3TzdVH1V1XHZFwg73Pj
+FjT+crTFXubeOsgIrLS9tMiHMq7pX0GqlILtH8Duucr8SYRiXM/CP2UDIUng4USt
+oCQYFTWg847rn8/zwslH2uabTGNFc6gc
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = SECP384R1_RFC5903:SECP384R1_RFC5903-PUBLIC
+
+
+PrivateKey=SECP384R1_RFC5903-Peer
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDBBywd5tL24XUeEZyX7
+7DyUMPq0bMjcUGCFXMm9oKopQuAwgxKRa47Slg5L1Vp0SPyhZANiAATlWNvvU+7N
+49P8z8GuoIqJqYdHXRL9lQ2Dz6QXMrxQnQ0axDoDNt75b9pB0HdKNXHc++x6rPMZ
+ZHIWnoOEMDZ/Zu6+PG5wxBbdXwxodZ3R//g/pAFCIJ3/XqrZbbnmOGw=
+-----END PRIVATE KEY-----
+
+PublicKey=SECP384R1_RFC5903-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE5Vjb71PuzePT/M/BrqCKiamHR10S/ZUN
+g8+kFzK8UJ0NGsQ6Azbe+W/aQdB3SjVx3PvseqzzGWRyFp6DhDA2f2buvjxucMQW
+3V8MaHWd0f/4P6QBQiCd/16q2W255jhs
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = SECP384R1_RFC5903-Peer:SECP384R1_RFC5903-Peer-PUBLIC
+
+
+
+Derive=SECP384R1_RFC5903
+PeerKey=SECP384R1_RFC5903-Peer-PUBLIC
+SharedSecret=11187331C279962D93D604243FD592CB9D0A926F422E47187521287E7156C5C4D603135569B9E9D09CF5D4A270F59746
+
+Derive=SECP384R1_RFC5903-Peer
+PeerKey=SECP384R1_RFC5903-PUBLIC
+SharedSecret=11187331C279962D93D604243FD592CB9D0A926F422E47187521287E7156C5C4D603135569B9E9D09CF5D4A270F59746
+
+PrivateKey=SECP521R1_RFC5903
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIAN63pMZqJ9Nq9s+9B
+GqzMpRI8YayrV7U5Pc5HYIFyoJWqhaMP4cKVLGdx2Te6l3f1lXsmObqwckYvaMJ6
+VzgtSlKhgYkDgYYABAAVQX6E2/KMCtPCeHEzSdx98VPIl6GJG9mLq0NXyey+4eO/
+QuALjjgK6uV8LRB1ZJQYhZQq9af0YBcjxBldF2ztPgF8riC2ZB0u62lXhtjJRhRi
+OdCZ4Y4dWlFMc518tKEK2KeIAVrEBdd5ncdee31bbPImGmp/FQdDi/Ab62yjkm+V
+gg==
+-----END PRIVATE KEY-----
+
+PublicKey=SECP521R1_RFC5903-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAFUF+hNvyjArTwnhxM0ncffFTyJeh
+iRvZi6tDV8nsvuHjv0LgC444CurlfC0QdWSUGIWUKvWn9GAXI8QZXRds7T4BfK4g
+tmQdLutpV4bYyUYUYjnQmeGOHVpRTHOdfLShCtiniAFaxAXXeZ3HXnt9W2zyJhpq
+fxUHQ4vwG+tso5JvlYI=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = SECP521R1_RFC5903:SECP521R1_RFC5903-PUBLIC
+
+
+PrivateKey=SECP521R1_RFC5903-Peer
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIBRbqZqEevQ3k/3Q6H
+LnzfoWvjD9x4D5e8zD8Hg4AgHpxnfWALNDdXo72/KjFj5ML4acynRYqkpO/8MR9c
+sVFoXrmhgYkDgYYABADQs5daxLeZ9b6hbV4T6a+XHV6bmEyfOXKLXlc5c1ohm5fD
+VkNq3G6VuwNS9r5kpsKRLU7y0EM87SthcWQAEtlGDwFcaCJjg5VuO9Bm55e2I8J8
+4OrC9VGhDCxyTZhSB3uHIgtlNsXECKHSrruOhtZ4rknLVwkfRzIpZXmrRPzRfw/F
+ag==
+-----END PRIVATE KEY-----
+
+PublicKey=SECP521R1_RFC5903-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQA0LOXWsS3mfW+oW1eE+mvlx1em5hM
+nzlyi15XOXNaIZuXw1ZDatxulbsDUva+ZKbCkS1O8tBDPO0rYXFkABLZRg8BXGgi
+Y4OVbjvQZueXtiPCfODqwvVRoQwsck2YUgd7hyILZTbFxAih0q67jobWeK5Jy1cJ
+H0cyKWV5q0T80X8PxWo=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = SECP521R1_RFC5903-Peer:SECP521R1_RFC5903-Peer-PUBLIC
+
+
+
+Derive=SECP521R1_RFC5903
+PeerKey=SECP521R1_RFC5903-Peer-PUBLIC
+SharedSecret=01144C7D79AE6956BC8EDB8E7C787C4521CB086FA64407F97894E5E6B2D79B04D1427E73CA4BAA240A34786859810C06B3C715A3A8CC3151F2BEE417996D19F3DDEA
+
+Derive=SECP521R1_RFC5903-Peer
+PeerKey=SECP521R1_RFC5903-PUBLIC
+SharedSecret=01144C7D79AE6956BC8EDB8E7C787C4521CB086FA64407F97894E5E6B2D79B04D1427E73CA4BAA240A34786859810C06B3C715A3A8CC3151F2BEE417996D19F3DDEA
+
+# Keys and shared secrets from RFC 7027
+PrivateKey=BRAINPOOLP256R1_RFC7027
+-----BEGIN PRIVATE KEY-----
+MIGIAgEAMBQGByqGSM49AgEGCSskAwMCCAEBBwRtMGsCAQEEIIHbHuEAFQ/y6jON
+cIJxvjgwDLVCQdeZUPd7BjA5gE8doUQDQgAERBBukT+SvAKhcF2ZU6hBTbleGqpJ
+6B2ehfkpqOMQC+WKtIRvEcrMtzzknL3RIPWpAKaf0ywnIiP3ie8Q6wib3A==
+-----END PRIVATE KEY-----
+
+PublicKey=BRAINPOOLP256R1_RFC7027-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABEQQbpE/krwCoXBdmVOoQU25Xhqq
+SegdnoX5KajjEAvlirSEbxHKzLc85Jy90SD1qQCmn9MsJyIj94nvEOsIm9w=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BRAINPOOLP256R1_RFC7027:BRAINPOOLP256R1_RFC7027-PUBLIC
+
+
+PrivateKey=BRAINPOOLP256R1_RFC7027-Peer
+-----BEGIN PRIVATE KEY-----
+MIGIAgEAMBQGByqGSM49AgEGCSskAwMCCAEBBwRtMGsCAQEEIFXkC8QeN+PirSXD
+xmVFEf+oR0qRoAMgh1k4UtPn12vToUQDQgAEjS1ojGz5PhFgrQTMRCkRfcLEGCXh
+6fygrd005vGzn3uZDFdSCBK+USZB5HA0gyEGvH0+jdDkx/ETbXAGVHzsag==
+-----END PRIVATE KEY-----
+
+PublicKey=BRAINPOOLP256R1_RFC7027-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABI0taIxs+T4RYK0EzEQpEX3CxBgl
+4en8oK3dNObxs597mQxXUggSvlEmQeRwNIMhBrx9Po3Q5MfxE21wBlR87Go=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BRAINPOOLP256R1_RFC7027-Peer:BRAINPOOLP256R1_RFC7027-Peer-PUBLIC
+
+
+
+Derive=BRAINPOOLP256R1_RFC7027
+PeerKey=BRAINPOOLP256R1_RFC7027-Peer-PUBLIC
+SharedSecret=89AFC39D41D3B327814B80940B042590F96556EC91E6AE7939BCE31F3A18BF2B
+
+Derive=BRAINPOOLP256R1_RFC7027-Peer
+PeerKey=BRAINPOOLP256R1_RFC7027-PUBLIC
+SharedSecret=89AFC39D41D3B327814B80940B042590F96556EC91E6AE7939BCE31F3A18BF2B
+
+PrivateKey=BRAINPOOLP384R1_RFC7027
+-----BEGIN PRIVATE KEY-----
+MIG6AgEAMBQGByqGSM49AgEGCSskAwMCCAEBCwSBnjCBmwIBAQQwHiD14EiliG8f
+FXx06RveK5jItS1Y5QA9VwU/xLC9ZdbxXrXR7hYQ34cHlRQ2J9BCoWQDYgAEaLZl
+3ZHBlYAGUM3TY8Yl9OdC6BNGZ7dnsbR2eTWI+IWraYyFLUpud6JS1jgPyvBoVbyR
+o5yewB3uNgF7fWc6kxI20vH1yDlC0Enj+iBgdJPg0Dj/L9MMKrZ9Fchff6pZ
+-----END PRIVATE KEY-----
+
+PublicKey=BRAINPOOLP384R1_RFC7027-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHowFAYHKoZIzj0CAQYJKyQDAwIIAQELA2IABGi2Zd2RwZWABlDN02PGJfTnQugT
+Rme3Z7G0dnk1iPiFq2mMhS1KbneiUtY4D8rwaFW8kaOcnsAd7jYBe31nOpMSNtLx
+9cg5QtBJ4/ogYHST4NA4/y/TDCq2fRXIX3+qWQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BRAINPOOLP384R1_RFC7027:BRAINPOOLP384R1_RFC7027-PUBLIC
+
+
+PrivateKey=BRAINPOOLP384R1_RFC7027-Peer
+-----BEGIN PRIVATE KEY-----
+MIG6AgEAMBQGByqGSM49AgEGCSskAwMCCAEBCwSBnjCBmwIBAQQwAyZAvGADxZJg
+9yUMPbWM5kf5jhJgrM5KzaPdhp904B+LpeAyQwnbapgxSXq6yWZwoWQDYgAETUQy
+byaaWXpbWLulZdpVVu1/2aip63bCX0bbadGdyM5q0Y5ASxVziyCG3zfnHR60YtaS
+E23lbL6Tv1+jGI71i8ijoOxsHhUaIQOKQukYUym1snWQPRkvjU4fMv6cx4xI
+-----END PRIVATE KEY-----
+
+PublicKey=BRAINPOOLP384R1_RFC7027-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHowFAYHKoZIzj0CAQYJKyQDAwIIAQELA2IABE1EMm8mmll6W1i7pWXaVVbtf9mo
+qet2wl9G22nRncjOatGOQEsVc4sght835x0etGLWkhNt5Wy+k79foxiO9YvIo6Ds
+bB4VGiEDikLpGFMptbJ1kD0ZL41OHzL+nMeMSA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BRAINPOOLP384R1_RFC7027-Peer:BRAINPOOLP384R1_RFC7027-Peer-PUBLIC
+
+
+
+Derive=BRAINPOOLP384R1_RFC7027
+PeerKey=BRAINPOOLP384R1_RFC7027-Peer-PUBLIC
+SharedSecret=0BD9D3A7EA0B3D519D09D8E48D0785FB744A6B355E6304BC51C229FBBCE239BBADF6403715C35D4FB2A5444F575D4F42
+
+Derive=BRAINPOOLP384R1_RFC7027-Peer
+PeerKey=BRAINPOOLP384R1_RFC7027-PUBLIC
+SharedSecret=0BD9D3A7EA0B3D519D09D8E48D0785FB744A6B355E6304BC51C229FBBCE239BBADF6403715C35D4FB2A5444F575D4F42
+
+PrivateKey=BRAINPOOLP512R1_RFC7027
+-----BEGIN PRIVATE KEY-----
+MIHsAgEAMBQGByqGSM49AgEGCSskAwMCCAEBDQSB0DCBzQIBAQRAFjAv8Nu7Wo1z
+PatxQcG0WsvIcVk5Z39qVoUKOL2HvVmwnoAnlgn/Mz651MBhIx+yb5LusEmCpfHR
+dkytV2ZUIqGBhQOBggAECkIFF+QGqsCs3OkPzXFIdxjTuVPv1/vsX38n4oxhSZmT
+l+keAp4GRX2y0+ZAZos5LCp+c3p/C/BENtEWQP0J/XLmiC6NsoqtNiN80l1YDbI3
+g5YcjcUt+i7BOK1HKg/O84h89itiOyqH3lxYgwHqPl/CabNztgck9egqatFH/ec=
+-----END PRIVATE KEY-----
+
+PublicKey=BRAINPOOLP512R1_RFC7027-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBQGByqGSM49AgEGCSskAwMCCAEBDQOBggAECkIFF+QGqsCs3OkPzXFIdxjT
+uVPv1/vsX38n4oxhSZmTl+keAp4GRX2y0+ZAZos5LCp+c3p/C/BENtEWQP0J/XLm
+iC6NsoqtNiN80l1YDbI3g5YcjcUt+i7BOK1HKg/O84h89itiOyqH3lxYgwHqPl/C
+abNztgck9egqatFH/ec=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BRAINPOOLP512R1_RFC7027:BRAINPOOLP512R1_RFC7027-PUBLIC
+
+
+PrivateKey=BRAINPOOLP512R1_RFC7027-Peer
+-----BEGIN PRIVATE KEY-----
+MIHsAgEAMBQGByqGSM49AgEGCSskAwMCCAEBDQSB0DCBzQIBAQRAIw4Y4bzIijYv
+pU5Oo5AgCSkvf4AzYk/UcbXYrOSdEs+rvBmWPauOLx66AL/7KeTXLRPyIkVi9AXL
+gFA2ZrJUKaGBhQOBggAEnUX2beXWfi5ttuk6Wc4LtIEGCX/3iggd54HNsx/OjMuq
+6o3UMgxBGfHpzUN6Lqs3MfqWaKsmjYcd7aVaVHMZny/cMTCVvN1fs6kWNvB6lZyO
+hrVjah6TDoOWBJy0gZYdNlzBFFOgbHGYNUdbEstS/Dw4O8414n7xlFErcYdihfo=
+-----END PRIVATE KEY-----
+
+PublicKey=BRAINPOOLP512R1_RFC7027-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBQGByqGSM49AgEGCSskAwMCCAEBDQOBggAEnUX2beXWfi5ttuk6Wc4LtIEG
+CX/3iggd54HNsx/OjMuq6o3UMgxBGfHpzUN6Lqs3MfqWaKsmjYcd7aVaVHMZny/c
+MTCVvN1fs6kWNvB6lZyOhrVjah6TDoOWBJy0gZYdNlzBFFOgbHGYNUdbEstS/Dw4
+O8414n7xlFErcYdihfo=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = BRAINPOOLP512R1_RFC7027-Peer:BRAINPOOLP512R1_RFC7027-Peer-PUBLIC
+
+
+
+Derive=BRAINPOOLP512R1_RFC7027
+PeerKey=BRAINPOOLP512R1_RFC7027-Peer-PUBLIC
+SharedSecret=A7927098655F1F9976FA50A9D566865DC530331846381C87256BAF3226244B76D36403C024D7BBF0AA0803EAFF405D3D24F11A9B5C0BEF679FE1454B21C4CD1F
+
+Derive=BRAINPOOLP512R1_RFC7027-Peer
+PeerKey=BRAINPOOLP512R1_RFC7027-PUBLIC
+SharedSecret=A7927098655F1F9976FA50A9D566865DC530331846381C87256BAF3226244B76D36403C024D7BBF0AA0803EAFF405D3D24F11A9B5C0BEF679FE1454B21C4CD1F
+
+
+# http://csrc.nist.gov/groups/STM/cavp/component-testing.html#ECCCDH #
+# sha256sum(KAS_ECC_CDH_PrimitiveTest.txt) = #
+# 456068d3f8aad8ac62a03d19ed3173f00ad51f42b51aeab4753c20f30c01cf23 #
+Title = ECDH KATs (from NIST SP800-56A co-factor ECDH KATs
+
+PrivateKey=KAS-ECC-CDH_P-192_C0
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBjxfT/qNnt000CFHKQn
+DcskwnH0Rb7Z1SehNAMyAASxUFNAH1coVjfsMkwc0hOeOmfeNzkjSzfyacFYY3SC
+qtZEzWkt0dPvLIp8SeOJ9/Y=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C0-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEsVBTQB9XKFY37DJMHNITnjpn3jc5
+I0s38mnBWGN0gqrWRM1pLdHT7yyKfEnjiff2
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C0:KAS-ECC-CDH_P-192_C0-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C0-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEQupt2Zad0qYf6hqsf46Y7cyJbG5V
+hXzA375dfGH6yIsRgRveMo6KDRK/AanSBLUj
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C0
+PeerKey=KAS-ECC-CDH_P-192_C0-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=803d8ab2e5b6e6fca715737c3a82f7ce3c783124f6d51cd0
+
+PrivateKey=KAS-ECC-CDH_P-192_C1
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBhW6FM0nZb+TEQkSNrL
+fPkrt6ldz1dKm9WhNAMyAATADUNXFv/qU/2MFieSQUw3ZlGH5YJxZTmrcRxiqnGl
+oY6KPEj4ncb6UvrAEI5SqKA=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C1-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEwA1DVxb/6lP9jBYnkkFMN2ZRh+WC
+cWU5q3EcYqpxpaGOijxI+J3G+lL6wBCOUqig
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C1:KAS-ECC-CDH_P-192_C1-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C1-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAE3rVxL6AnrI0vIsRVzLc6keF7ZRK1
+4DDnfiaQoCzJsocIQxop+1S4ex8MFOARrCEl
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C1
+PeerKey=KAS-ECC-CDH_P-192_C1-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=c208847568b98835d7312cef1f97f7aa298283152313c29d
+
+PrivateKey=KAS-ECC-CDH_P-192_C2
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBjG72H+EugL9W8tP30L
+t1c5RRmQbVVQCUmhNAMyAAThhLwYJILzQDyHh7g4Qkd0Z/zQEdsPbGT50cFBQvQN
+6GOduX1Rpj0szhAHzPdzzcs=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C2-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAE4YS8GCSC80A8h4e4OEJHdGf80BHb
+D2xk+dHBQUL0Dehjnbl9UaY9LM4QB8z3c83L
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C2:KAS-ECC-CDH_P-192_C2-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C2-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAETtqo78Wg9A+ENmPsWBXndi3dwAjm
+Y8IPCp+Nxno+YO9tZLUiGF0D3x/Arf1CR4J5
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C2
+PeerKey=KAS-ECC-CDH_P-192_C2-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=87229107047a3b611920d6e3b2c0c89bea4f49412260b8dd
+
+PrivateKey=KAS-ECC-CDH_P-192_C3
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBjmdHucI7pwRPOP9+Ys
+NeQDiSD1oBY9PNqhNAMyAAQrg42+c3NfN6OaeNMZV4PSaZHob/TZLRpg00SUInRI
+n5iQOy5/k/jRl/ya5goO1To=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C3-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEK4ONvnNzXzejmnjTGVeD0mmR6G/0
+2S0aYNNElCJ0SJ+YkDsuf5P40Zf8muYKDtU6
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C3:KAS-ECC-CDH_P-192_C3-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C3-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEiIfCdu3u0+noZrRtWNiVxz+9gLY+
+OC6IBMUJe6ZkXhYgbPtw9wUmVZR91EoX8fnV
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C3
+PeerKey=KAS-ECC-CDH_P-192_C3-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=eec0bed8fc55e1feddc82158fd6dc0d48a4d796aaf47d46c
+
+PrivateKey=KAS-ECC-CDH_P-192_C4
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBi+q+3QFUoa/PyF1SGB
+wQ9etHrcUfZVBH2hNAMyAAQfZc9uiXjhwbwQu2Gn2zEd4xAIjIz5dov31DgWjn9C
+qxSxavU6ei9kb/QLU9dMvMc=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C4-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEH2XPbol44cG8ELthp9sxHeMQCIyM
++XaL99Q4Fo5/QqsUsWr1OnovZG/0C1PXTLzH
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C4:KAS-ECC-CDH_P-192_C4-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C4-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEDQRfMCVK3B/O+opbHzG/TnOd0yfN
+GNWUVCwxTkFCfAgnigjOjXMF87W4Scctiv9z
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C4
+PeerKey=KAS-ECC-CDH_P-192_C4-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=716e743b1b37a2cd8479f0a3d5a74c10ba2599be18d7e2f4
+
+PrivateKey=KAS-ECC-CDH_P-192_C5
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBjPcDVCJmZzIdbiuvQJ
+meL9dMeg95P6hpmhNAMyAARfSET/zOYQBdJPc325hnXpL3tlQ662EGxUJPWYE5IV
+04m2sSuG1YAUhX8t2ttUD1E=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C5-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEX0hE/8zmEAXST3N9uYZ16S97ZUOu
+thBsVCT1mBOSFdOJtrErhtWAFIV/LdrbVA9R
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C5:KAS-ECC-CDH_P-192_C5-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C5-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAE+zXKINLpZmXFG5jo9us9eRE1CNi8
+zUUWNo7sDVv7hHch32qv8OXUjERPdL+c2KWn
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C5
+PeerKey=KAS-ECC-CDH_P-192_C5-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=f67053b934459985a315cb017bf0302891798d45d0e19508
+
+PrivateKey=KAS-ECC-CDH_P-192_C6
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBj+lCUVI3//3XtOtcZJ
+Ce7khWoHbN8SuuKhNAMyAATmNp33myB7i4Z598hpz8JkhZ0atVqkAegfmccfgBow
+tS902m5ebbti7kxdoQkMwCA=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C6-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAE5jad95sge4uGeffIac/CZIWdGrVa
+pAHoH5nHH4AaMLUvdNpuXm27Yu5MXaEJDMAg
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C6:KAS-ECC-CDH_P-192_C6-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C6-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEgkdSlgwTB+XxOoPaIceZjKi1sAuV
+SfbQvFLZHiNDY7wy7gtnePJc2MGEdRD0NIuU
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C6
+PeerKey=KAS-ECC-CDH_P-192_C6-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=75822971193edd472bf30151a782619c55ad0b279c9303dd
+
+PrivateKey=KAS-ECC-CDH_P-192_C7
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBgz/tEEkq+lvqAzPArx
+LKyUDE0iJFW80P6hNAMyAATvCyivxBY31zf0LkyKrOrchLouC4ScoYxXeXlC5VIX
+O7oX9zJ44Cn0IzUGi9dw3fI=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C7-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAE7wsor8QWN9c39C5Miqzq3IS6LguE
+nKGMV3l5QuVSFzu6F/cyeOAp9CM1BovXcN3y
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C7:KAS-ECC-CDH_P-192_C7-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C7-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEELtXAgKRFBmB+DO0dJ5WEQNLMI6E
+AR0h4crNa3vRftjdtQtq7gZUw18tDt3Bz/z2
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C7
+PeerKey=KAS-ECC-CDH_P-192_C7-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=67cba2cbb69ee78bf1abafb0e6fbe33fa2094c128d59652d
+
+PrivateKey=KAS-ECC-CDH_P-192_C8
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBjzVXxdcLTHlUlgwzVo
+d2rb6OQ2GaviaxOhNAMyAATXARLF8PCEQ4ZJSsGtmdziIUE0F26/ua/TwYegOFEK
+sx1Fnit68aOA3XV2rwYmdUg=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C8-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAE1wESxfDwhEOGSUrBrZnc4iFBNBdu
+v7mv08GHoDhRCrMdRZ4revGjgN11dq8GJnVI
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C8:KAS-ECC-CDH_P-192_C8-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C8-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEUZL85Bhad1jqG8VuDk9Oiy3OMjSN
+Dc7RIJiZgb6q8ABtiKlueXGi+jozukYEf8e6
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C8
+PeerKey=KAS-ECC-CDH_P-192_C8-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=cf99a2770a386ca0137d1eca0a226e484297ac3c513f3631
+
+PrivateKey=KAS-ECC-CDH_P-192_C9
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBhYbPuhxugXZu1Sgo8X
+exvhTrvFuDNIwxGhNAMyAARYs8Y+Vr7J1pa/mojfKHNzg5H3Y2iqK0lXdnc7Jh+v
+e6L9xP5DuSwLHHov0FSkNlA=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C9-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEWLPGPla+ydaWv5qI3yhzc4OR92No
+qitJV3Z3OyYfr3ui/cT+Q7ksCxx6L9BUpDZQ
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C9:KAS-ECC-CDH_P-192_C9-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C9-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEJtAZ2+J56tAe7RQ6kWAa2ibi9CIl
+scYrbKZT8IJy4DhvyUIfvVgAk9euYwG8qUR2
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C9
+PeerKey=KAS-ECC-CDH_P-192_C9-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=576331e2b4fb38a112810e1529834de8307fb0a0d2756877
+
+PrivateKey=KAS-ECC-CDH_P-192_C10
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBjK2BAGA6T2W+CNj8ih
+t+iExf9l3rPJbZmhNAMyAAS3/MD1LHpBHtvtOeEL8Ctq4PJmFMazJaJHSDsm62d3
+beK5OrcRnVRHVzc549Vecvs=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C10-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEt/zA9Sx6QR7b7TnhC/ArauDyZhTG
+syWiR0g7Jutnd23iuTq3EZ1UR1c3OePVXnL7
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C10:KAS-ECC-CDH_P-192_C10-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C10-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEU5vED+IKD7JniItkewPqr27CDAKh
+4fjIaQleW7e01EwyeKfua+yjl8RSRtqaNMi+
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C10
+PeerKey=KAS-ECC-CDH_P-192_C10-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=902f4501916a0dd945554c3a37b3d780d375a6da713197c4
+
+PrivateKey=KAS-ECC-CDH_P-192_C11
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBge3YecxceWGcrmxzpp
+G9WgOVwO87NW/NKhNAMyAARs5q2ywwgI9ZAEjDPf+tRSTr96X9ObdHtJZr0vPQBW
+m01MBAn716LbdS9tCbyowl8=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C11-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEbOatssMICPWQBIwz3/rUUk6/el/T
+m3R7SWa9Lz0AVptNTAQJ+9ei23UvbQm8qMJf
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C11:KAS-ECC-CDH_P-192_C11-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C11-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEXTQ925Yxj7R5TRD2xXP5n+5dDVe5
+liUPmfvfnZfdiK1BAjXaw25bks4oJLjlh6gs
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C11
+PeerKey=KAS-ECC-CDH_P-192_C11-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=46e4de335054d429863218ae33636fc9b89c628b64b506c7
+
+PrivateKey=KAS-ECC-CDH_P-192_C12
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBhGDkUic/4YJ2Ahh607
+6+5ly4RCO7T0dTehNAMyAATRvTo++r9HZ/5jgL3w2/SdUtTPDLuJQEzBUMK0yLOq
+Nfdl+Efk9/j9hwTSQaGB7pk=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C12-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAE0b06Pvq/R2f+Y4C98Nv0nVLUzwy7
+iUBMwVDCtMizqjX3ZfhH5Pf4/YcE0kGhge6Z
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C12:KAS-ECC-CDH_P-192_C12-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C12-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEjT25vc4Tf/v7iROIw332wMvJCqXl
+N2IgE10wtctmDu+HZP/HRPFcG11twGukQW03
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C12
+PeerKey=KAS-ECC-CDH_P-192_C12-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=1bfe9e5a20ac7a38d8f605b425bb9030be31ef97c101c76c
+
+PrivateKey=KAS-ECC-CDH_P-192_C13
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBi5cDZQCEVvh1jsxaOz
+PPOuao1WgQelIWehNAMyAATBuGEMjGP41KvaCTuaEaVmBEv2XG+qiZmlvEs8oJU4
+Lpc4rulf6UebF4ebOtUpVVk=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C13-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEwbhhDIxj+NSr2gk7mhGlZgRL9lxv
+qomZpbxLPKCVOC6XOK7pX+lHmxeHmzrVKVVZ
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C13:KAS-ECC-CDH_P-192_C13-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C13-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEngppSVGcf1vmjAQzxf3xMGSqE/sp
+SD3D4ci6Y+H0cdsjGF9Q2chx7eohJVs6Y7S3
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C13
+PeerKey=KAS-ECC-CDH_P-192_C13-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0e8c493a4adc445dc9288a3b9b272599224054592d7265b3
+
+PrivateKey=KAS-ECC-CDH_P-192_C14
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBhZwVuKJGTkHf5Dccf3
+2t9HCuQlVE+BE72hNAMyAAQf53b3NWe2rAsNZ2QWTebFvnUbqNH/RV5MFgvzivsr
+cfaEJhZkEVzodFU+iwWUMtI=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C14-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEH+d29zVntqwLDWdkFk3mxb51G6jR
+/0VeTBYL84r7K3H2hCYWZBFc6HRVPosFlDLS
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C14:KAS-ECC-CDH_P-192_C14-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C14-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEvgiCOJAumTmz0FTu64SS2vS9zwmi
+q3fxWNZ0mjqSPcgEQPJmH9NbZRYX5lKUtGN1
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C14
+PeerKey=KAS-ECC-CDH_P-192_C14-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0f1991086b455ded6a1c4146f7bf59fe9b495de566ebc6bf
+
+PrivateKey=KAS-ECC-CDH_P-192_C15
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBim6biFxmuVnR/CcI1Z
+G20yKOSeuY9ybWGhNAMyAARjK7dlHb9J3endEl0T+yNOBmF3I77tPRv0rVIJY4SI
+OXxfRPmU3XR5gH559Ih9LnE=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C15-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEYyu3ZR2/Sd3p3RJdE/sjTgZhdyO+
+7T0b9K1SCWOEiDl8X0T5lN10eYB+efSIfS5x
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C15:KAS-ECC-CDH_P-192_C15-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C15-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEv1rgUCXhvmF+Zm2HpBaDY4c9V2Gz
+drUD4ebjizcra+4P9bNQLYNzXjssJoJeTw/M
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C15
+PeerKey=KAS-ECC-CDH_P-192_C15-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=b30f2127c34df35aaa91dbf0bbe15798e799a03ed11698c1
+
+PrivateKey=KAS-ECC-CDH_P-192_C16
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBi9t1QJb/v72LDzywRs
+y3yhScTnGSBno+6hNAMyAATZwJjUIddB9vqrEW8+RzHSjFVY4Z/hEqE41NxIzNsd
+PtjTH9BnhKT4emiuwcvVsI8=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C16-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAE2cCY1CHXQfb6qxFvPkcx0oxVWOGf
+4RKhONTcSMzbHT7Y0x/QZ4Sk+HporsHL1bCP
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C16:KAS-ECC-CDH_P-192_C16-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C16-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEbMT+7YTHqw0JAF1mDtNN5pValGHE
+E40RMSJfM4ZO1I2gb6RakTtGz0JVd0LjUIXm
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C16
+PeerKey=KAS-ECC-CDH_P-192_C16-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=64a5c246599d3e8177a2402a1110eb81e6c456ab4edb5127
+
+PrivateKey=KAS-ECC-CDH_P-192_C17
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBjVvPJTTa/D2Zlkx71j
+q3vRWZn+Vt2WnEKhNAMyAAT9odXSjW/g55Cdaouvp4JNtVcquS/+feYTSil8HZyL
+urJJq6zZUe0R5amfkueZFXI=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C17-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAE/aHV0o1v4OeQnWqLr6eCTbVXKrkv
+/n3mE0opfB2ci7qySaus2VHtEeWpn5LnmRVy
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C17:KAS-ECC-CDH_P-192_C17-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C17-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAENhVzFb7nr+3e1YxOi6FNNCHEAeUR
+NbzJN8KXynA/d8UrsGLYzpcduECXugx1OkGP
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C17
+PeerKey=KAS-ECC-CDH_P-192_C17-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=017b8ca53c82fab163da2ab783966a39e061b32c8cfa334d
+
+PrivateKey=KAS-ECC-CDH_P-192_C18
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBhD1LnfEFO+W0JoEEwC
+JE07+VlLAQtGqLKhNAMyAATDAgtwkUY9eI8fHXb3z+7ILs2zt9mcNFyadxDVF5WR
+2PPfCqEiMBdorn237uLX9YM=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C18-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEwwILcJFGPXiPHx1298/uyC7Ns7fZ
+nDRcmncQ1ReVkdjz3wqhIjAXaK59t+7i1/WD
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C18:KAS-ECC-CDH_P-192_C18-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C18-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEmEZNR/Alb4KS4CfoySWC6nfPkFH1
+zo5dRJVS73V4vpYjb+XtnQZDwLtsWpE0sBCN
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C18
+PeerKey=KAS-ECC-CDH_P-192_C18-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=340ef3db3dbebdd91c62c3d4e1a3da2c7c52a3338b865259
+
+PrivateKey=KAS-ECC-CDH_P-192_C19
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBiUysLCynFHRkAWcNlO
+2/P2d4Z7WgO+562hNAMyAASxhVSi50PvCqLwQJh8TEUQBOCW3z2A3a5uPixhj4lu
+NrpiAHdoS3CgX/t5v15sdkA=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C19-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEsYVUoudD7wqi8ECYfExFEATglt89
+gN2ubj4sYY+Jbja6YgB3aEtwoF/7eb9ebHZA
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C19:KAS-ECC-CDH_P-192_C19-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C19-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEVj62bDNM9vEjvwTHgDtIoxECFCN+
+mDv1DzURBIGRme8HyaYFHSB1jzr3kCfqZqU/
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C19
+PeerKey=KAS-ECC-CDH_P-192_C19-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=2162144921df5103d0e6a650fb13fd246f4738d0896ce92f
+
+PrivateKey=KAS-ECC-CDH_P-192_C20
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBgqOp4zyMwxB6n5Jlw7
+3qEgZXDob5KscBShNAMyAASnuji+G8Zp3SPM/O4GRbHw24z5Qt6vrra4LbedgM0O
+N/KNQWOtw4ne6Px3l7XJgxs=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C20-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEp7o4vhvGad0jzPzuBkWx8NuM+ULe
+r662uC23nYDNDjfyjUFjrcOJ3uj8d5e1yYMb
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C20:KAS-ECC-CDH_P-192_C20-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C20-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEhoKMSskrVQdhiux4c6HU/GVDxb4z
+zzB4siynJDdUXhDW1PBSQi64mLc3pLhUPuVQ
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C20
+PeerKey=KAS-ECC-CDH_P-192_C20-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=4c69e7feed4b11159adfc16a6047a92572ea44e0740b23af
+
+PrivateKey=KAS-ECC-CDH_P-192_C21
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBhKa3ipismPqOmajs4I
+7AJREl+Fxv0OKJuhNAMyAATnadu81c4tg1FLdo09LVqgvNj2avFfVQAvxtCwOeDy
+j3T77/6eiD1N1yKW5OlcrnE=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C21-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAE52nbvNXOLYNRS3aNPS1aoLzY9mrx
+X1UAL8bQsDng8o90++/+nog9TdciluTpXK5x
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C21:KAS-ECC-CDH_P-192_C21-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C21-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEZwChAkN3galYHaK8Jc7Vq/QZ2pHT
+yAPfcTlsnPCLzZGFTj5uQtjGV84PJ6t3qdxL
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C21
+PeerKey=KAS-ECC-CDH_P-192_C21-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=46072acefd67bff50de355ca7a31fa6be59f26e467587259
+
+PrivateKey=KAS-ECC-CDH_P-192_C22
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBjFpkkdeIRNZhfvM75r
+i9VNoiFFCIXVlQ+hNAMyAATbGyT3RmvBVOnX0sPKUtz+C/yVY8X9tvMcdPu/W9mZ
+IfGpp0T44c93C9anancrMAM=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C22-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAE2xsk90ZrwVTp19LDylLc/gv8lWPF
+/bbzHHT7v1vZmSHxqadE+OHPdwvWp2p3KzAD
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C22:KAS-ECC-CDH_P-192_C22-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C22-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEqC81TPl77l0i3GwHnykC6tRNlqj2
+FPF4plSpqooaCALyzg7ooPTr6W3uGzdGSx/y
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C22
+PeerKey=KAS-ECC-CDH_P-192_C22-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=ec5580eabca9f3389d2b427ddf6e49e26d629afd03fa766e
+
+PrivateKey=KAS-ECC-CDH_P-192_C23
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBgronA8XiP2RjxbiNw3
+KS+r0zmbXh+2fAWhNAMyAAR1QxSJBs75s3pxp8CDY83Tu6UBQtZSQaqLOmlz3o3C
+ceJ8Hq0eli/arjcQxyTarDg=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C23-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEdUMUiQbO+bN6cafAg2PN07ulAULW
+UkGqizppc96NwnHifB6tHpYv2q43EMck2qw4
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C23:KAS-ECC-CDH_P-192_C23-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C23-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEPOwhsoZooSos944ajlXQ7+BlFS//
+w0cYEClVe+uk/xmSvSHCPLSCX22ucOMxj9HK
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C23
+PeerKey=KAS-ECC-CDH_P-192_C23-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=7f3929dd3cbf7673bc30d859d90b880307475f800660ea32
+
+PrivateKey=KAS-ECC-CDH_P-192_C24
+-----BEGIN PRIVATE KEY-----
+MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBiDYRjGJI+ILpFHl292
+SCbBoodVphApd9WhNAMyAAT800WpdscgyqqX3maXImglYV4Sh6nv9n5Y6kLtvur8
+qf9Ez9fymr0svedibXnkIsk=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-192_C24-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAE/NNFqXbHIMqql95mlyJoJWFeEoep
+7/Z+WOpC7b7q/Kn/RM/X8pq9LL3nYm155CLJ
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-192_C24:KAS-ECC-CDH_P-192_C24-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-192_C24-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEcIJkRxW4tzH4IotRGOcnDTTRgfNh
+oiH8RkZJ1siMqJYUSIocx7hEK7Qvn7MCCj12
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-192_C24
+PeerKey=KAS-ECC-CDH_P-192_C24-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=72e88f3ea67d46d46dbf83926e7e2a6b85b54536741e6d2c
+
+PrivateKey=KAS-ECC-CDH_P-224_C0
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBByDRqYPxvKTyloNKvaLpx0d
+04nl5Ag3lC3z5Dy9oTwDOgAEjeLiat9yxYLWVo72OMT9WbGNoXG99QHx2SngSEpo
+ocKw+yKTDRIFVcHs5Q6pjeqEB/cb4276wN4=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C0-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEjeLiat9yxYLWVo72OMT9WbGNoXG99QHx
+2SngSEpoocKw+yKTDRIFVcHs5Q6pjeqEB/cb4276wN4=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C0:KAS-ECC-CDH_P-224_C0-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C0-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAErzPNBim8fpljIKP0A2j3TehwT6N7j6tp
+q6rigIggksy7p5MPQZqKT5uxaXi7w4OHKZklWaby4tc=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C0
+PeerKey=KAS-ECC-CDH_P-224_C0-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=7d96f9a3bd3c05cf5cc37feb8b9d5209d5c2597464dec3e9983743e8
+
+PrivateKey=KAS-ECC-CDH_P-224_C1
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBwEPLIW9Lcs33Yp1jcgpUru
+DJnrMtdEd9rAwvc9oTwDOgAEL5D1yOrJx97Nu5e2wvcVq3JeT+QP5tdG779OG2aJ
+c1FFT5J6MJsmnFptMTOL5MGaWs/DLPZW9Fw=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C1-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEL5D1yOrJx97Nu5e2wvcVq3JeT+QP5tdG
+779OG2aJc1FFT5J6MJsmnFptMTOL5MGaWs/DLPZW9Fw=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C1:KAS-ECC-CDH_P-224_C1-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C1-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEE7/NT46UQjk8q4+0a58FZsImsis3B2l2
+8GF6Ru6yQnUpsojGPC+JY8Hkc98vymyqkNUuL421bdQ=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C1
+PeerKey=KAS-ECC-CDH_P-224_C1-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=ee93ce06b89ff72009e858c68eb708e7bc79ee0300f73bed69bbca09
+
+PrivateKey=KAS-ECC-CDH_P-224_C2
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBxa0N1turtPPC6l/jLlYbLK
+VQgUht8sfBXJYisIoTwDOgAEAFvKRdeT5/6ZqENwTtg4MVqxSl9id1B+m8N1MUPp
+1CHhSGrliTv9I8IQ5cFA18axraWdhCyamN4=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C2-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEAFvKRdeT5/6ZqENwTtg4MVqxSl9id1B+
+m8N1MUPp1CHhSGrliTv9I8IQ5cFA18axraWdhCyamN4=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C2:KAS-ECC-CDH_P-224_C2-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C2-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEdW3YBrnZw02JlpHstFt3GvRo7ABEhqD9
+0oNBHk0Cwsphe7LF2WE/Jd1yQT0in9KQFROqKVBO7vs=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C2
+PeerKey=KAS-ECC-CDH_P-224_C2-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=3fcc01e34d4449da2a974b23fc36f9566754259d39149790cfa1ebd3
+
+PrivateKey=KAS-ECC-CDH_P-224_C3
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBwKpv9Vpdgg78tOfRC4Reo8
+n5vF3/hhBtuFMY4ioTwDOgAEL5Z1QTHgloGYqnj76MIB3F81gceS3khzQNMkSGHo
+pc15YVIDttielJb54jb+O2vocx50PWFVGcY=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C3-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEL5Z1QTHgloGYqnj76MIB3F81gceS3khz
+QNMkSGHopc15YVIDttielJb54jb+O2vocx50PWFVGcY=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C3:KAS-ECC-CDH_P-224_C3-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C3-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAED1N78cESLFVlbSXoqoQX4LRLFSauBSMU
+T5khxPebJtMOSRp3NpbMLHm08FlrxbnuuvOU0WL7hoQ=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C3
+PeerKey=KAS-ECC-CDH_P-224_C3-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=49129628b23afcef48139a3f6f59ff5e9811aa746aa4ff33c24bb940
+
+PrivateKey=KAS-ECC-CDH_P-224_C4
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBzv5ubiWv+vVMmNACq7xjKN
+oVlAWht1LjLcI5UKoTwDOgAENV6WKSC94ENpX2v/tLNVxj2m9d5mXtRvLsgX4nSO
+CVNo9i4dNk7dRhcZeTtAStvarLyt2Iki/zc=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C4-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAENV6WKSC94ENpX2v/tLNVxj2m9d5mXtRv
+LsgX4nSOCVNo9i4dNk7dRhcZeTtAStvarLyt2Iki/zc=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C4:KAS-ECC-CDH_P-224_C4-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C4-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEKzYx0rBhebMXShAPf1cTHu6olHvgeGw9
+xksiOYPeKa49rTGtwCNsbefxRWHKLqCDxScMeKLmy8A=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C4
+PeerKey=KAS-ECC-CDH_P-224_C4-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=fcdc69a40501d308a6839653a8f04309ec00233949522902ffa5eac6
+
+PrivateKey=KAS-ECC-CDH_P-224_C5
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBxhyykyUkAB5enu7W332ciT
+XuMyICnt16qKy/1RoTwDOgAE1Q5K2r/Zidfbx89AUlRsx8RHqXYwQ2mXrUuVNlvq
+UDRzxervlVLULECx8vfKKSczslW5u+GxIzc=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C5-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAE1Q5K2r/Zidfbx89AUlRsx8RHqXYwQ2mX
+rUuVNlvqUDRzxervlVLULECx8vfKKSczslW5u+GxIzc=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C5:KAS-ECC-CDH_P-224_C5-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C5-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAERRFAPeKQWfaaR1xaal9sq+1dnwFENqjL
+cKAjOH0tG2KqBG35NA+cN6CHoGsyz38IoiP5koEqgos=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C5
+PeerKey=KAS-ECC-CDH_P-224_C5-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=827e9025cb62e0e837c596063f3b9b5a0f7afd8d8783200086d61ec1
+
+PrivateKey=KAS-ECC-CDH_P-224_C6
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBByMes40cXH5Le+Y2EVHX8gu
+HRSW2oHuWPUFuYX6oTwDOgAEsajcrImsonmTILRR3xx/9Nl1Z6u2gUHA2V/CqjUk
+lQkCsVEL3Jh9hgr8J62HHOrqZpNavTwKmag=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C6-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEsajcrImsonmTILRR3xx/9Nl1Z6u2gUHA
+2V/CqjUklQkCsVEL3Jh9hgr8J62HHOrqZpNavTwKmag=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C6:KAS-ECC-CDH_P-224_C6-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C6-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEMUoLJt0xwkiEXXzBe2HK1GCCWb7YWljR
+8f/TeGbks1A1LhGe7K2jgpB/Nhn9dI6nOuSJnf1JYwI=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C6
+PeerKey=KAS-ECC-CDH_P-224_C6-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=335ba51228d94acbed851ca7821c801d5cb1c7975d7aa90a7159f8fa
+
+PrivateKey=KAS-ECC-CDH_P-224_C7
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBw4L+ubm6EPGJ2Z5xqJzf5E
+y1VM7BOiEoQJd/tooTwDOgAEq7bx43c/+PxzrqKgsQeAnOcK3O/tbkH8XLQwRalj
+iXrpBsEKBV7q25f/3W90jT5WIeX/8wTki6c=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C7-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEq7bx43c/+PxzrqKgsQeAnOcK3O/tbkH8
+XLQwRaljiXrpBsEKBV7q25f/3W90jT5WIeX/8wTki6c=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C7:KAS-ECC-CDH_P-224_C7-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C7-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEq+aEO+7C/Z5ftkcw0L5NFlQ4zpIu113Y
+C0YD5Wr+hnOpbEupkArYWZXmMeQ2xsyIosK0e3xIhrg=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C7
+PeerKey=KAS-ECC-CDH_P-224_C7-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=8c2e627594206b34f7356d3426eb3d79f518ef843fbe94014cceace3
+
+PrivateKey=KAS-ECC-CDH_P-224_C8
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBzg1iA1EB70h8SFxg+0UA7r
+5qMuxk2+l9vgIyxGoTwDOgAEiFN3NemyPj4OB28TWoLTP5v/tGXzq86DIqYqYrTI
+wSNnMZeHXAvRTtCXYG0zD7orkgDvZaRHZNM=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C8-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEiFN3NemyPj4OB28TWoLTP5v/tGXzq86D
+IqYqYrTIwSNnMZeHXAvRTtCXYG0zD7orkgDvZaRHZNM=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C8:KAS-ECC-CDH_P-224_C8-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C8-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEE8+dbSyaroJ0wn1Eav0MiI/91SrimaNZ
+hNT1J9y+51tRV1H47irjVeiv1d4hxiqTmmUHtTjLxK8=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C8
+PeerKey=KAS-ECC-CDH_P-224_C8-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=632abb662728dbc994508873d5c527ca5ef923c0d31fa6c47ef4c825
+
+PrivateKey=KAS-ECC-CDH_P-224_C9
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBy5at5bc7pyqotuTXTXv5xY
+6WL/eOtUIofHtEuioTwDOgAEN2gpJqVPcKTBdI9U1Q1bABOKBV+STyxl5bC75Flq
+/vzdZA0pY1AVuJvd3R+MJyNobTMuegbKh5k=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C9-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEN2gpJqVPcKTBdI9U1Q1bABOKBV+STyxl
+5bC75Flq/vzdZA0pY1AVuJvd3R+MJyNobTMuegbKh5k=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C9:KAS-ECC-CDH_P-224_C9-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C9-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAElltjfA37wM+VQDVobXD37DCSnmZOUh26
+oigGWYKlj/YbyQAZu8u1h104Y9sLwqH6NLCtTeGoP5k=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C9
+PeerKey=KAS-ECC-CDH_P-224_C9-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=34641141aab05ef58bd376d609345901fb8f63477c6be9097f037f1f
+
+PrivateKey=KAS-ECC-CDH_P-224_C10
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBykDX4SBJxx5lIsf/I4QiQG
+HDpFcFizEFV2VbhUoTwDOgAEOZgBJDv+DC2psKU8jKV/Lu6HqqlKjk1eAp9CyqpJ
+5tS0fO56XEq3HVpn2oTgubQlzj5w2mjIiec=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C10-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEOZgBJDv+DC2psKU8jKV/Lu6HqqlKjk1e
+Ap9CyqpJ5tS0fO56XEq3HVpn2oTgubQlzj5w2mjIiec=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C10:KAS-ECC-CDH_P-224_C10-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C10-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEc8xkU3LKLnFjfNqUPYFI8zgqtt0PLhpJ
+2pThNN9cNVwj5uIy68O+4qsYc+4Ng+M4L45v5hP2NDw=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C10
+PeerKey=KAS-ECC-CDH_P-224_C10-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=4f74ac8507501a32bfc5a78d8271c200e835966e187e8d00011a8c75
+
+PrivateKey=KAS-ECC-CDH_P-224_C11
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBytJRm8ck1ITgKmnwUUm7BH
+cUvw9ZhvrC4iLNlGoTwDOgAE35weDvFeU7n2JuK+HL6JNjnAbz4EOe6V19Sx43pS
+pzhq3aJD79+JQQhchOMSOcq5K4AXM2dIll4=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C11-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAE35weDvFeU7n2JuK+HL6JNjnAbz4EOe6V
+19Sx43pSpzhq3aJD79+JQQhchOMSOcq5K4AXM2dIll4=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C11:KAS-ECC-CDH_P-224_C11-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C11-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEVGV4IWJQNU5EniFUbdEc0cUXQjZzmsrZ
+zg9FEtKiL81m0avtx2dmgyfFy5xZkEMnYjnPPIUWryQ=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C11
+PeerKey=KAS-ECC-CDH_P-224_C11-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=ad09c9ae4d2324ea81bb555b200d3c003e22a6870ee03b52df49e4de
+
+PrivateKey=KAS-ECC-CDH_P-224_C12
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBw9MSqbnY7QkUCQC7rB4JVS
+fryePGSTvPNmbjopoTwDOgAEtKAZjciBDohEJbdQkosMlgwx96mWY0ALAaF534Er
+YBv8BzgkLG+G+DDyes1jLKYYoLUoDJ1Xafc=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C12-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEtKAZjciBDohEJbdQkosMlgwx96mWY0AL
+AaF534ErYBv8BzgkLG+G+DDyes1jLKYYoLUoDJ1Xafc=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C12:KAS-ECC-CDH_P-224_C12-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C12-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEHUax3DooEjy1E0bme67FZASGhnj699Do
+sq+iKg7J5l7JfiGDc+f8EVwidNW4KaYNk/ceAdWBNsM=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C12
+PeerKey=KAS-ECC-CDH_P-224_C12-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=ef029c28c68064b8abd2965a38c404fb5e944ace57e8638daba9d3cd
+
+PrivateKey=KAS-ECC-CDH_P-224_C13
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBByM4IItwkwVOZV1WsNQc371
+BmQcfXUrT5MAxhLtoTwDOgAEAN/H7BN2kM1tEv2y/QuMUxRYIQh2nCtyL/s5WF7v
+PaS6RYEnNGu2QCOGi923VYouz8gTZF9M6f4=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C13-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEAN/H7BN2kM1tEv2y/QuMUxRYIQh2nCty
+L/s5WF7vPaS6RYEnNGu2QCOGi923VYouz8gTZF9M6f4=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C13:KAS-ECC-CDH_P-224_C13-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C13-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEJm0DjMek/iH2yXYxjoJ7grtbj3RDpVKY
+E2UG4N8SPZinogu985Q98uNWNCL4wM901TqqvdfJc7o=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C13
+PeerKey=KAS-ECC-CDH_P-224_C13-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=f83c16661dfcbad021cc3b5a5af51d9a18db4653866b3ff90787ce3e
+
+PrivateKey=KAS-ECC-CDH_P-224_C14
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBwP+bSFMlq3fynnvDef7XS/
+rIWUgtoN7nUowZ2yoTwDOgAEfmA+aXbbg8NgEVCPppXRtRUkni5UtI/Lz7kCRwF5
+pgDOhq38qbG5MfpRc9YY2gnoQYA9GbAmQoY=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C14-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEfmA+aXbbg8NgEVCPppXRtRUkni5UtI/L
+z7kCRwF5pgDOhq38qbG5MfpRc9YY2gnoQYA9GbAmQoY=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C14:KAS-ECC-CDH_P-224_C14-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C14-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAE6woJ96HCNqYfWVgJ7FZw79kuRZjV5hPg
+ks39ylB4euLy8VuIvBD3tfCu4UGDc/FhU669H7pUKI0=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C14
+PeerKey=KAS-ECC-CDH_P-224_C14-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=f51258c63f232e55a66aa25ebd597b2018d1052c02eeb63866758005
+
+PrivateKey=KAS-ECC-CDH_P-224_C15
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBwZz1/2MGRn8ouf4GdaQ8BY
+JVLIwS5Zznw48pKxoTwDOgAE/CDpBuYJwRLPwuD+pjA4gsXblOh+AiNzqywIKq7N
+8dqnF4K8Wia7vY1+inZJDiarwX3/x3S9c0E=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C15-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAE/CDpBuYJwRLPwuD+pjA4gsXblOh+AiNz
+qywIKq7N8dqnF4K8Wia7vY1+inZJDiarwX3/x3S9c0E=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C15:KAS-ECC-CDH_P-224_C15-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C15-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEay9rGKWH9WL/xhvZsARzIihphqePH9E5
+uE98JHCWkI5GFSZr5ZpTzWVVFQVv+SNwpicaXTgj1wQ=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C15
+PeerKey=KAS-ECC-CDH_P-224_C15-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=7fdc969a186ff18429f2a276dac43beea21182d82ce2e5a0876552b1
+
+PrivateKey=KAS-ECC-CDH_P-224_C16
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBByQoVNo41MsCx5R5V0TlEfC
+yJvBYHGdaXKR6nwUoTwDOgAExoN9UG6XbafbOtEmfDWd/y6m+wt/f453AkxZ6Wfr
+SR0vyKUwxGUl0qiy18HfX7oa50CkZJxoPuY=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C16-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAExoN9UG6XbafbOtEmfDWd/y6m+wt/f453
+AkxZ6WfrSR0vyKUwxGUl0qiy18HfX7oa50CkZJxoPuY=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C16:KAS-ECC-CDH_P-224_C16-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C16-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEMoEBuoJqzXX/nzTVV0zg28kvcJutjXoz
+xHlAwd858eqISIxV1VOBYIeLnO0YqIfqJh3XEtFAJP8=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C16
+PeerKey=KAS-ECC-CDH_P-224_C16-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=3d60ab6db2b3ffe2d29ccff46d056e54230cf34982e241556ed2920c
+
+PrivateKey=KAS-ECC-CDH_P-224_C17
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBByOCDjgXhchSRBn4cq8LoBR
+spDiYW7sQntxIYl9oTwDOgAE6RUPdwB1YmAZ4Y+VRztx5oKAQXkdPwjT+u6qK0df
+cHNequUjCKO3Y9yI7+GKtZDrr6A19uCLABw=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C17-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAE6RUPdwB1YmAZ4Y+VRztx5oKAQXkdPwjT
++u6qK0dfcHNequUjCKO3Y9yI7+GKtZDrr6A19uCLABw=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C17:KAS-ECC-CDH_P-224_C17-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C17-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEAIHjQnCHHi672UGD9he0rhXwQW3WNP5u
+k0zzwDoenzinuQtzF9Jrn2MRBjq1iyaM9Imy5QOG1dY=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C17
+PeerKey=KAS-ECC-CDH_P-224_C17-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=9116d72786f4db5df7a8b43078c6ab9160d423513d35ea5e2559306d
+
+PrivateKey=KAS-ECC-CDH_P-224_C18
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBw4EG6T8Wo4Gtsdcs7j2mau
+RirUu/6p7N810IFOoTwDOgAEe+bEyReCmrZX3XnoY31679L4Hw3nZU2VfpdljUMN
+ItnoQ4MQ9h4NQ/Jfo+NFhfQyuq0n2zAhvw0=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C18-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEe+bEyReCmrZX3XnoY31679L4Hw3nZU2V
+fpdljUMNItnoQ4MQ9h4NQ/Jfo+NFhfQyuq0n2zAhvw0=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C18:KAS-ECC-CDH_P-224_C18-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C18-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEJiNjL98L2FaAWmmqGG1BM+9ZBOH2Valy
+1mzOByzvlyjdBvuLUBUPUptpUHbUUHmDkSWFyJvQaC4=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C18
+PeerKey=KAS-ECC-CDH_P-224_C18-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=207c53dcefac789aaa0276d9200b3a940ce5f2296f4cb2e81a185d3d
+
+PrivateKey=KAS-ECC-CDH_P-224_C19
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBzl0XGEMc9Q9svRvIAZ+hZ2
+LfoSyYnlmZl3+06ioTwDOgAELqSWbn+S7X9cxh/eeSBF9jtzHW59DeJXfy2OzhxK
+ex7eb4ORYikt9CS+eOgXb7b5QqPAI5FwDzE=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C19-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAELqSWbn+S7X9cxh/eeSBF9jtzHW59DeJX
+fy2OzhxKex7eb4ORYikt9CS+eOgXb7b5QqPAI5FwDzE=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C19:KAS-ECC-CDH_P-224_C19-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C19-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEjuTR3MMd7kv2/iHKilh3IdkQrPsSLBbC
+p3qBUk6/Mj//BOtHcGmgrGizRfaxrhNO/DGUDlE8uZ8=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C19
+PeerKey=KAS-ECC-CDH_P-224_C19-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=10e467da34f48ad7072005bccd6da1b2ba3f71eafa1c393842f91d74
+
+PrivateKey=KAS-ECC-CDH_P-224_C20
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBw9Y1aRtiqaknxjOVHJNpyI
+Yr0hGdMJcMJkRyfWoTwDOgAEQ4u7mAUXr7IL4dZ046wrMc7wepsj+49uOODWwAvl
+8cR9WNIbbtKEI7MvWpR1DaR+3O8z6nmUKv0=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C20-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEQ4u7mAUXr7IL4dZ046wrMc7wepsj+49u
+OODWwAvl8cR9WNIbbtKEI7MvWpR1DaR+3O8z6nmUKv0=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C20:KAS-ECC-CDH_P-224_C20-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C20-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEl9y+bSgzWIKm0ZPMVKEGPdB3XcMoVlMA
+u5nmkdrRHdXs6M/Z+XyaUm5KFQbmNVlp7oeCb8OLzSQ=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C20
+PeerKey=KAS-ECC-CDH_P-224_C20-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=82fd2f9c60c4f999ac00bbe64bfc11da8ff8cda2e499fced65230bb1
+
+PrivateKey=KAS-ECC-CDH_P-224_C21
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBys88hbvcN58C9eo25/D1MJ
+Wp5wRqKGhahlm/eYoTwDOgAE/3URIVxx15a9ZG6EdL5EFrkWhM4NJp729CIBO7e/
+Xnm1qTk7uepCwL2y08LcgG4acwaqWOT9vqU=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C21-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAE/3URIVxx15a9ZG6EdL5EFrkWhM4NJp72
+9CIBO7e/Xnm1qTk7uepCwL2y08LcgG4acwaqWOT9vqU=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C21:KAS-ECC-CDH_P-224_C21-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C21-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEzpEm3VOXLeod4dEe/vkA3jS2YYWcRkjF
+wOU09+ETtvLBZZ0H8nFuZKg8GLvONE3SEh/oUWjq4IU=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C21
+PeerKey=KAS-ECC-CDH_P-224_C21-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=530f7e7fc932613b29c981f261cb036cba3f1df3864e0e1cba2685a2
+
+PrivateKey=KAS-ECC-CDH_P-224_C22
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBzP/WLLAKDjFj+/LDl/rclh
+ghD4a09UpnUocwXwoTwDOgAEBL9NlI9EMNGLTtbJbbr5gfoRpAPtFoh/BnVJgXwT
+JqnO9R951OeDA9YGS0WfYSWErC/fWT19XYQ=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C22-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEBL9NlI9EMNGLTtbJbbr5gfoRpAPtFoh/
+BnVJgXwTJqnO9R951OeDA9YGS0WfYSWErC/fWT19XYQ=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C22:KAS-ECC-CDH_P-224_C22-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C22-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEhEGZZ9bPrUHnWgK22mBal5SaGDqXwwbE
+tG5mpVzJsllxixvIsUT95jOolGFv/VmjptXY6ULHy7c=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C22
+PeerKey=KAS-ECC-CDH_P-224_C22-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=49f6fd0139248ef4df2db05d1319bd5b1489e249827a45a8a5f12427
+
+PrivateKey=KAS-ECC-CDH_P-224_C23
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBByF+QPkOUPRPGiTLnEOgN5S
+y8C48aFBjqTaB5KZoTwDOgAElwpKfgHUGISXzrRpVesbhC2QhYGam5JchFKdPd+i
+UmSA+DPqDtvSBOTjZf7zRyiI/n2WkcPrwJ8=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C23-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAElwpKfgHUGISXzrRpVesbhC2QhYGam5Jc
+hFKdPd+iUmSA+DPqDtvSBOTjZf7zRyiI/n2WkcPrwJ8=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C23:KAS-ECC-CDH_P-224_C23-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C23-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEfJysNXaAY8KCf2Cn9ROI8qj0t/jNc2vW
+vDN0dynua4ScYCXVd9vMVfvRcBj07bwu8QWwBNYle80=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C23
+PeerKey=KAS-ECC-CDH_P-224_C23-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=8f7e34e597ae8093b98270a74a8dfcdbed457f42f43df487c5487161
+
+PrivateKey=KAS-ECC-CDH_P-224_C24
+-----BEGIN PRIVATE KEY-----
+MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBzM5kiRo9ASn+4NSpbPvnrE
+cLhelnUpBXz6MaHZoTwDOgAEprKWMtuU2iEl3Bz4DgNwJoeyrMESICL6IXR2WmFy
+Pt1z4Q2u1zd1J48ZWLpW8fydCF68K2TIT+U=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-224_C24-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEprKWMtuU2iEl3Bz4DgNwJoeyrMESICL6
+IXR2WmFyPt1z4Q2u1zd1J48ZWLpW8fydCF68K2TIT+U=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-224_C24:KAS-ECC-CDH_P-224_C24-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-224_C24-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAECFp2Qq2OWbGj6HJqdUevvs/9rB2rflcj
+DGqd9PkcNtiB/puAR6NTBxNVShr0wlxajmVNzc9ony4=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-224_C24
+PeerKey=KAS-ECC-CDH_P-224_C24-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=71954e2261e8510be1a060733671d2e9d0a2d012eb4e09556d697d2a
+
+PrivateKey=KAS-ECC-CDH_P-256_C0
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgfX3F9x6yndr4DWIU
+Yy7q4D2QWK8fttIu2AuttivBpTShRANCAATq0hhZARnoh2spFG/4nKYXcMTtu/l9
+OM44XtKB2KayMCivYSgf014vpwAlI6zIWkKcsG7mZIMlOJ9Z7fzhQFFB
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C0-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6tIYWQEZ6IdrKRRv+JymF3DE7bv5
+fTjOOF7SgdimsjAor2EoH9NeL6cAJSOsyFpCnLBu5mSDJTifWe384UBRQQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C0:KAS-ECC-CDH_P-256_C0-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C0-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEcAxI939WWExcxjLKZWQNuRtrrM46
+Tfa0LOfMg4gz0ofbceUJ4/2bBg3bILpcUdzFlI1G+/ZA3+BEF4LKuF+krA==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C0
+PeerKey=KAS-ECC-CDH_P-256_C0-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=46fc62106420ff012e54a434fbdd2d25ccc5852060561e68040dd7778997bd7b
+
+PrivateKey=KAS-ECC-CDH_P-256_C1
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgOPZdbc5HZ2BE1Yzl
+E5WC1Wj2S7FgmNF526sHdB3VyvWhRANCAAQRny8EeQJ4KrDJ4npUr/Xrm5ZIKcqZ
+wGsC3bqVsKP20I9StyZmTKw2b8mKx6ASsmgsvZYuWstURnHUG5RFcE0d
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C1-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEZ8vBHkCeCqwyeJ6VK/165uWSCnK
+mcBrAt26lbCj9tCPUrcmZkysNm/JisegErJoLL2WLlrLVEZx1BuURXBNHQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C1:KAS-ECC-CDH_P-256_C1-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C1-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgJ8EKJxkNIwBUV6wPVznrBqMuUmP
+XKpQGX5Y1DqGp66ynYToERl/Jeuo9RlAkstv9EDibUQhARNyRh9XknHNow==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C1
+PeerKey=KAS-ECC-CDH_P-256_C1-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=057d636096cb80b67a8c038c890e887d1adfa4195e9b3ce241c8a778c59cda67
+
+PrivateKey=KAS-ECC-CDH_P-256_C2
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgGsz68bl3Erhab1Sx
+SJhaG9xMm+wL0ljK1LPWA/SfMsihRANCAATZ8recFyhFv9tWC7sBRHyl7MBHCglR
+O2EmkCxrT40QUfgV717DISjTSHg0dkZ4cC5k4WT/cxUYXiOv9frNlte8
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C2-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE2fK3nBcoRb/bVgu7AUR8pezARwoJ
+UTthJpAsa0+NEFH4Fe9ewyEo00h4NHZGeHAuZOFk/3MVGF4jr/X6zZbXvA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C2:KAS-ECC-CDH_P-256_C2-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C2-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEojOcEtSgPDNUbeUzJotK1mfev0WL
+Rk13RDY2RA7n/sPvSKOrJuICILzaLBhRB2g52uiOrpYoaaSXv3PLZvr1Ng==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C2
+PeerKey=KAS-ECC-CDH_P-256_C2-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=2d457b78b4614132477618a5b077965ec90730a8c81a1c75d6d4ec68005d67ec
+
+PrivateKey=KAS-ECC-CDH_P-256_C3
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgIHxDp5v+4D229LlE
+9T0vt2zEnvHJxNNNUbbGXE22ky2hRANCAAQkJ3wz9FBGLcs9SAHVe5ztBRiPFsKO
+2ocyWASM0WB+DcR4l1PisfY7Mv8BTsQs1qafrIHf5tDW/Urzcq4nxG+I
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C3-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEJCd8M/RQRi3LPUgB1Xuc7QUYjxbC
+jtqHMlgEjNFgfg3EeJdT4rH2OzL/AU7ELNamn6yB3+bQ1v1K83KuJ8RviA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C3:KAS-ECC-CDH_P-256_C3-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C3-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE3zmJufpVSVcZs89G3M0otRU/eAgZ
+HdUY7/DDz/K3Be1CIpT/RgA0Kdc5ozIGyHUlUsi6VKJw3vwG4iHg/q9qxA==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C3
+PeerKey=KAS-ECC-CDH_P-256_C3-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=96441259534b80f6aee3d287a6bb17b5094dd4277d9e294f8fe73e48bf2a0024
+
+PrivateKey=KAS-ECC-CDH_P-256_C4
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgWRN+OBUjULGVyXGN
+OWc9UZg4BVrZCN1HVxUv2CVcCb+hRANCAASoxf3Oi2LFraWY8UGts7Js8lTCgLKF
+emPSrXg6cxFfa4BuGq/sSvgKDXhrPeRTdbUXp+W1H/ssNWU3yebvIn1K
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C4-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqMX9zotixa2lmPFBrbOybPJUwoCy
+hXpj0q14OnMRX2uAbhqv7Er4Cg14az3kU3W1F6fltR/7LDVlN8nm7yJ9Sg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C4:KAS-ECC-CDH_P-256_C4-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C4-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQRktKBPnlWHmodb1PIvBpDOhmcg1
+4UGwWnSpew+uuSIa+YzEXpin4EGwHPNfRit1YigTUcjr8/+gLjOgcioTKA==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C4
+PeerKey=KAS-ECC-CDH_P-256_C4-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=19d44c8d63e8e8dd12c22a87b8cd4ece27acdde04dbf47f7f27537a6999a8e62
+
+PrivateKey=KAS-ECC-CDH_P-256_C5
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg9fjgF0YQpmEneXm1
+jOXJD+5smzuzRqkKcZYlXkCxMu+hRANCAAR7hh3NKESlqDY/a4741JNkD1WHkhcY
+nYAyaq2UgN/BScRnW0XuswZAX2wzw4vGnrK97Jt1rVr0cGqrhFQ7nMY6
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C5-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEe4YdzShEpag2P2uO+NSTZA9Vh5IX
+GJ2AMmqtlIDfwUnEZ1tF7rMGQF9sM8OLxp6yveybda1a9HBqq4RUO5zGOg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C5:KAS-ECC-CDH_P-256_C5-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C5-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEM+ggkqDx+zj1ZJ1YZ/uii1AxcrcD
+VXS/jltxAKMFJ5Lyz2tgHgoFlF4zVVC/ZI14L0YYbHcsDyDTzQ1rjKFLLw==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C5
+PeerKey=KAS-ECC-CDH_P-256_C5-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=664e45d5bba4ac931cd65d52017e4be9b19a515f669bea4703542a2c525cd3d3
+
+PrivateKey=KAS-ECC-CDH_P-256_C6
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgO1ia99sDRZwjBotk
+9j8o08PGvCW1v3asBfNUgoiLUZChRANCAASfs44tWOobr3Yi6WcgEByuPN5LpsHp
++ibZsd4ImRAoY9VWG5AEBu31CALdfXPok5X4rtcvug4dG2H+HSIwImDw
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C6-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEn7OOLVjqG692IulnIBAcrjzeS6bB
+6fom2bHeCJkQKGPVVhuQBAbt9QgC3X1z6JOV+K7XL7oOHRth/h0iMCJg8A==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C6:KAS-ECC-CDH_P-256_C6-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C6-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEap4MP5FuTjFckRR75XFobZBGTov5
+gdNKkLY1O8pu66dA+b6tOcLyvMJgL3W4pz7Hvf/Lzq0VnQF0xsTTxTV/BQ==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C6
+PeerKey=KAS-ECC-CDH_P-256_C6-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=ca342daa50dc09d61be7c196c85e60a80c5cb04931746820be548cdde055679d
+
+PrivateKey=KAS-ECC-CDH_P-256_C7
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg2L+SmiDqdDayRhtU
+GhHIDmHYJsCkydMisx3VTn9YucihRANCAAQg8HYx5KZRKomtSHxOnWMDnlecsNel
+VsueZhzVnB5/pG3pGEaz7uil7AnCqx9B4hvYNiDM3Rvc46t+puAt0nT1
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C7-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIPB2MeSmUSqJrUh8Tp1jA55XnLDX
+pVbLnmYc1Zwef6Rt6RhGs+7opewJwqsfQeIb2DYgzN0b3OOrfqbgLdJ09Q==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C7:KAS-ECC-CDH_P-256_C7-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C7-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqcCsreVcKnPq0ahvsKlxMiPIJHV5
+HNDiELBGQSziJLv23gr6IOk+B4RnwFPSQZA+2tc0xrQDunWMK1/wTJ1CKQ==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C7
+PeerKey=KAS-ECC-CDH_P-256_C7-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=35aa9b52536a461bfde4e85fc756be928c7de97923f0416c7a3ac8f88b3d4489
+
+PrivateKey=KAS-ECC-CDH_P-256_C8
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgD5iDug7zLudd7Q2L
+2jmlFGop8fJQezvUWNvqCyuwW02hRANCAASrthtCO+XWwm4hxgWDLJFC3B3+Wl//
+KHJnN5Nub79RbXM9JRPvWL6rICCQWG+skb8P7jHoCrM0c6sjotieWPrW
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C8-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEq7YbQjvl1sJuIcYFgyyRQtwd/lpf
+/yhyZzeTbm+/UW1zPSUT71i+qyAgkFhvrJG/D+4x6AqzNHOrI6LYnlj61g==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C8:KAS-ECC-CDH_P-256_C8-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C8-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElOlPFqmCVf/yuawMlZiqw1SHsyMt
+MjG9k7fbffNvnrnYBJpDV5z6kLgJOpRBbL77+TOG8Vs/bhkLbjRV/t/mmg==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C8
+PeerKey=KAS-ECC-CDH_P-256_C8-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=605c16178a9bc875dcbff54d63fe00df699c03e8a888e9e94dfbab90b25f39b4
+
+PrivateKey=KAS-ECC-CDH_P-256_C9
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgK+7bBLBcaYj2pnUA
+u4E/ryyuDVgMklO2M55KMze7bAihRANCAAQ9Y+Qpy1+olakkcSm/TkjonzXXsR3o
+FY7+s+EGoqhzlQyunkd+9B58jBBkN5u3tVTdy8rnn5gUKB8eUPBAPGHz
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C9-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPWPkKctfqJWpJHEpv05I6J8117Ed
+6BWO/rPhBqKoc5UMrp5HfvQefIwQZDebt7VU3cvK55+YFCgfHlDwQDxh8w==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C9:KAS-ECC-CDH_P-256_C9-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C9-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE4Jm/Kk1VdGC1VEQwu/baEQBNEny1
+1n9kqwfJT831J0/ZxQ2+cNcU7bXiIfTgIGEO62JwUX5ojKZPsOmMfvjBxQ==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C9
+PeerKey=KAS-ECC-CDH_P-256_C9-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=f96e40a1b72840854bb62bc13c40cc2795e373d4e715980b261476835a092e0b
+
+PrivateKey=KAS-ECC-CDH_P-256_C10
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgd8Fdz0RhDkFpa6t1
+iUPv8UCTM+TVoRu+csj2w5Xp+EihRANCAAStXRPD21CN3NOEV+WZFDSiUb7UnPXd
+y1nN7nOGXxOMn2LOwecFiKpP38e5oJ2qZ4CBwE4SCLnWYriiIUv46Boh
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C10-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErV0Tw9tQjdzThFflmRQ0olG+1Jz1
+3ctZze5zhl8TjJ9izsHnBYiqT9/HuaCdqmeAgcBOEgi51mK4oiFL+OgaIQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C10:KAS-ECC-CDH_P-256_C10-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C10-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE91pf5WvaNPPBOWKWYm7wEtwH5IJY
+OHeKZFyCSM/wFlgzu98bF3LYBZ31aLBh8/ESLyio2BkWfJe+RI49w/sMPA==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C10
+PeerKey=KAS-ECC-CDH_P-256_C10-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=8388fa79c4babdca02a8e8a34f9e43554976e420a4ad273c81b26e4228e9d3a3
+
+PrivateKey=KAS-ECC-CDH_P-256_C11
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgQqg7mFAR0SMD2xqA
+DyYQ90qnHN8Zxn1Uzmye2VHpCT6hRANCAASrSMqmHqNfE/jtB/+moT6NsiTf7Prh
+p9+LG7brrwy5fRJ0Uwyiw4WjIYvd+8vwtAJMm63VJDv/g06/8kqGGNzL
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C11-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEq0jKph6jXxP47Qf/pqE+jbIk3+z6
+4affixu2668MuX0SdFMMosOFoyGL3fvL8LQCTJut1SQ7/4NOv/JKhhjcyw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C11:KAS-ECC-CDH_P-256_C11-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C11-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAELbRUDVAjB1YVir9h2YNXErZIbHQx
+IYPM78rvJ5e3Z01i9X8xTj80ldxOCZAS9eC6cXcPlmCh6tpUEEzf3nckPg==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C11
+PeerKey=KAS-ECC-CDH_P-256_C11-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=72877cea33ccc4715038d4bcbdfe0e43f42a9e2c0c3b017fc2370f4b9acbda4a
+
+PrivateKey=KAS-ECC-CDH_P-256_C12
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgzu01UHtck+rVmJEZ
+ubo0LP445uY4um7qNDpVR13igAuhRANCAASajNm9cucXUt+RRA93xUdQmoTfmBFO
+feTybNs5I0piXdB8/ITI4UT6soOfUYm7HXyIYx1Xm7xYAS7ZojJ9pS9i
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C12-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmozZvXLnF1LfkUQPd8VHUJqE35gR
+Tn3k8mzbOSNKYl3QfPyEyOFE+rKDn1GJux18iGMdV5u8WAEu2aIyfaUvYg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C12:KAS-ECC-CDH_P-256_C12-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C12-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzZT8lJfomQdQMJ6ahTT9EUsKblTa
+icR5YQGJcEHRTsvD3vS1/gT67goRkyIp//VjY3v97g55xt7q9En4VAHFxA==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C12
+PeerKey=KAS-ECC-CDH_P-256_C12-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=e4e7408d85ff0e0e9c838003f28cdbd5247cdce31f32f62494b70e5f1bc36307
+
+PrivateKey=KAS-ECC-CDH_P-256_C13
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgQ+Dp2Vr03DZIPN0Z
+aNK37rhhH8znfzpOfQWa5D5QlgShRANCAAT5ic+O6VaoLn69mIHNv7L9lGGJsI21
+NVm8jP3UgHHrFF7/KPGhimFrBLfTN4aGefbdhPmns9e2+K8nbBlhGlQd
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C13-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE+YnPjulWqC5+vZiBzb+y/ZRhibCN
+tTVZvIz91IBx6xRe/yjxoYphawS30zeGhnn23YT5p7PXtvivJ2wZYRpUHQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C13:KAS-ECC-CDH_P-256_C13-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C13-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFbnkZ69NKQxBdALgQEJv5M8ja65y
+uqOS7Yl4DfzNtHHN9OkXD7kEMCuP2TqCC6jMftTv06by1rBbgLL/Ku5Odw==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C13
+PeerKey=KAS-ECC-CDH_P-256_C13-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=ed56bcf695b734142c24ecb1fc1bb64d08f175eb243a31f37b3d9bb4407f3b96
+
+PrivateKey=KAS-ECC-CDH_P-256_C14
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgsvNgDfM2jvigu4Wr
+IvQfwOX0/dVL6BZ6XDzUsI2wSQOhRANCAARpxidiWzakKcOYtFw4Z3yzXYvrHPeK
+Vx5A6Z/k6sHNToFpARKwqI8g9xNrKNfUfl+8Kto8jt2HWJvBnslZBje9
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C14-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEacYnYls2pCnDmLRcOGd8s12L6xz3
+ilceQOmf5OrBzU6BaQESsKiPIPcTayjX1H5fvCraPI7dh1ibwZ7JWQY3vQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C14:KAS-ECC-CDH_P-256_C14-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C14-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEScUDumxPpgUYLhhrXoERPwdbwR3P
+1RyTL7IelR7uL6GK9wb/CSLYez8MXk4x2LJZrrJgqSaWQ+1SChO7JdpZJA==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C14
+PeerKey=KAS-ECC-CDH_P-256_C14-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=bc5c7055089fc9d6c89f83c1ea1ada879d9934b2ea28fcf4e4a7e984b28ad2cf
+
+PrivateKey=KAS-ECC-CDH_P-256_C15
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgQAJTQwf4tiqb9n/2
+Qd3GD+9ZOxfDNBI56VvbPleb/cihRANCAARf6WRnExWhiqaKKm490f3n4juM5xgU
+cc+sQ8meGugCYtWCe+KC5iyE3lMbljiEuoMttdayw6JW8OYE/n5rin9y
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C15-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEX+lkZxMVoYqmiipuPdH95+I7jOcY
+FHHPrEPJnhroAmLVgnviguYshN5TG5Y4hLqDLbXWssOiVvDmBP5+a4p/cg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C15:KAS-ECC-CDH_P-256_C15-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C15-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEGbON45/dL3D3CRYxpPddGZN0C6lC
+kWLCpFMSQBY2spwJrtcjKyjgYJQXQbaCi836K8ScyETzdzYRUE+Co5Clrg==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C15
+PeerKey=KAS-ECC-CDH_P-256_C15-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=9a4e8e657f6b0e097f47954a63c75d74fcba71a30d83651e3e5a91aa7ccd8343
+
+PrivateKey=KAS-ECC-CDH_P-256_C16
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgTfoS3vxgMZAhtoGz
+/4ShClEZWMhQk57UVjWTS6SXkUehRANCAATJsrhJbxRAvUotHlJ1L9Nyg1s2SIXh
+VKfaxJKV8oHsfPvmuSaopN4mzMg7gCsSEkAHVL4l2fPurwCLCYcK52Mh
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C16-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEybK4SW8UQL1KLR5SdS/TcoNbNkiF
+4VSn2sSSlfKB7Hz75rkmqKTeJszIO4ArEhJAB1S+Jdnz7q8AiwmHCudjIQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C16:KAS-ECC-CDH_P-256_C16-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C16-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAELJHGHzOt/pMRyUL9v/a6RwIP7/QW
+t7tjzsE/r5sJmVRsqzGwZBnlIh/KAU+4TshwYiobErq1rkNoKqfqc+oI0A==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C16
+PeerKey=KAS-ECC-CDH_P-256_C16-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=3ca1fc7ad858fb1a6aba232542f3e2a749ffc7203a2374a3f3d3267f1fc97b78
+
+PrivateKey=KAS-ECC-CDH_P-256_C17
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgEzH22HSk7TvEosbp
+x0Mx0wOXljFL7uO3FS/NulVWME6hRANCAARZ4eEBUhBGrZzx0ILp0ux90iUwzOBk
+mR8eVcW89fy1kUgvT2cxdsj9qgu25ZsVo+R0VOOgQpfThjyTONmK3R83
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C17-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWeHhAVIQRq2c8dCC6dLsfdIlMMzg
+ZJkfHlXFvPX8tZFIL09nMXbI/aoLtuWbFaPkdFTjoEKX04Y8kzjZit0fNw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C17:KAS-ECC-CDH_P-256_C17-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C17-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEooou31gCVmj3JKr4OlCVa3rBz7v/
+ebCMO/h9/Sgo12ffp7//1MdmuGq+r1yZtuUMuczJ2dALf/x4BLBJG2e8Aw==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C17
+PeerKey=KAS-ECC-CDH_P-256_C17-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=1aaabe7ee6e4a6fa732291202433a237df1b49bc53866bfbe00db96a0f58224f
+
+PrivateKey=KAS-ECC-CDH_P-256_C18
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg3V6fcK50AHPKAgTf
+YHY/tgNsRXCb9Ke7TmcUEvrWXaOhRANCAAQwudsuLpd7zcmMuH3XNsvY54VSEhkl
+zxbhkzZXwvsjFGpFAogAuBKRvOXC4f7X3tZQYg675gUMbzp/DftGc6tc
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C18-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEMLnbLi6Xe83JjLh91zbL2OeFUhIZ
+Jc8W4ZM2V8L7IxRqRQKIALgSkbzlwuH+197WUGIOu+YFDG86fw37RnOrXA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C18:KAS-ECC-CDH_P-256_C18-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C18-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEou+FeggfnW6yBqgcTPeKgCvfWYrj
+gMiIbs2F/cHtdkRWPEwgQZ8HvBfQU5+t4YVeNIOVFbiSwPXSZWH5f6BNGg==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C18
+PeerKey=KAS-ECC-CDH_P-256_C18-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=430e6a4fba4449d700d2733e557f66a3bf3d50517c1271b1ddae1161b7ac798c
+
+PrivateKey=KAS-ECC-CDH_P-256_C19
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgWuAmz8Bg1VYAcX5V
+uKEuEW0dDfNK+DGXkFdgfC2cL3ahRANCAARGyevRpKPIwLbVcrXc+6EkZ2AyCKnL
+XSrPu3M8QM9jkUbJE6J9BEGF04tGes4BHgTU2bu7jLmuJfqSqvFaWV6G
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C19-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAERsnr0aSjyMC21XK13PuhJGdgMgip
+y10qz7tzPEDPY5FGyROifQRBhdOLRnrOAR4E1Nm7u4y5riX6kqrxWllehg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C19:KAS-ECC-CDH_P-256_C19-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C19-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzNii2GvJLy4BvOTWkiz3/hYmrtBE
+aF6V4u69RkUF8B/p3dWDqWNaZnd31bio8xsPeeuhLHUCNBC1S4Vn3dwPOA==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C19
+PeerKey=KAS-ECC-CDH_P-256_C19-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=1ce9e6740529499f98d1f1d71329147a33df1d05e4765b539b11cf615d6974d3
+
+PrivateKey=KAS-ECC-CDH_P-256_C20
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgtgGsQl1dv54XNcXi
+1b23nKmLPVvkos/W8ic/FQ4GTZ2hRANCAAR8npUIQdJsjd6JlDmLj11HWgIrxj3n
+dz/PjVUuAfG6CsxCuYhcmzvuD42MV9Oo9jVQFsAZxAYvoiz/LyCbXMLh
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C20-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEfJ6VCEHSbI3eiZQ5i49dR1oCK8Y9
+53c/z41VLgHxugrMQrmIXJs77g+NjFfTqPY1UBbAGcQGL6Is/y8gm1zC4Q==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C20:KAS-ECC-CDH_P-256_C20-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C20-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEwYj/yJR/cwH7e1PjZ0YJfCE0v5zJ
+gbp0tOnENh9ZXk6/fS8gVuckIe85PwwPKw4AEw48rEq7zAAoYWjoXsVQUQ==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C20
+PeerKey=KAS-ECC-CDH_P-256_C20-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=4690e3743c07d643f1bc183636ab2a9cb936a60a802113c49bb1b3f2d0661660
+
+PrivateKey=KAS-ECC-CDH_P-256_C21
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg/vsd2hhFMStfzmuB
+sr4gWvLzonT1ohL2bA2fwz165TWhRANCAAQ4tU24VQDLIMYQVu3T2ItqncJngKBH
+8hOm4bkA92WW62OH5OV4FXHk64rmKZGjO13DMwHFvH4SXVN5SjkWDY/Q
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C21-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEOLVNuFUAyyDGEFbt09iLap3CZ4Cg
+R/ITpuG5APdllutjh+TleBVx5OuK5imRoztdwzMBxbx+El1TeUo5Fg2P0A==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C21:KAS-ECC-CDH_P-256_C21-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C21-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEMX4QIP9T/M7xi/R7t/Lddwf7e3p1
+eOBPNbO+7SIqDrYJQgzloZ13xv4e5YfmpJ+6+PKA6N8DPXVAMwLlon2yrg==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C21
+PeerKey=KAS-ECC-CDH_P-256_C21-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=30c2261bd0004e61feda2c16aa5e21ffa8d7e7f7dbf6ec379a43b48e4b36aeb0
+
+PrivateKey=KAS-ECC-CDH_P-256_C22
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgM0rgxGk9I5Nafo4E
+PrveIeFop8uj+lB8m+QddoHgSc6hRANCAAQ/K/FYmr8wR78+VKyalTeb/5X49VQF
+9k7KNqfuvo/8p1ISqU5mxa6aiZGHL2anJyPYDsWy6SV0XEVvU3GUOzoG
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C22-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPyvxWJq/MEe/PlSsmpU3m/+V+PVU
+BfZOyjan7r6P/KdSEqlOZsWumomRhy9mpycj2A7FsukldFxFb1NxlDs6Bg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C22:KAS-ECC-CDH_P-256_C22-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C22-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAERfsCss6518ednC+pPpx5Z8L6TfV4
+n5ZAskJkseUk/LFcbo7PH30wI4k7exyh5NF4ly7iojB1fdxWT/439cWjIQ==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C22
+PeerKey=KAS-ECC-CDH_P-256_C22-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=2adae4a138a239dcd93c243a3803c3e4cf96e37fe14e6a9b717be9599959b11c
+
+PrivateKey=KAS-ECC-CDH_P-256_C23
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgLEveQCFPzDv8R9TP
+Q0timsvpFX+P0CglQDMd55Qs8J2hRANCAAQpwIB/EMvEL7RcmYnaUGge6tcW2qe5
+6R/TLgYvXrksoP8dbRlV1zdrLaJP4RY6JxZZE2NBvC6xGV/HBtxi5/NN
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C23-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEKcCAfxDLxC+0XJmJ2lBoHurXFtqn
+uekf0y4GL165LKD/HW0ZVdc3ay2iT+EWOicWWRNjQbwusRlfxwbcYufzTQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C23:KAS-ECC-CDH_P-256_C23-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C23-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEoZ73v/mK2ngYQvv8UaR6/zm1k1oc
+fZYlyNMj1RHJLebpwYTfdclV4C4C5AD/5F948znhr+bQVvsyRfRwDOYG7w==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C23
+PeerKey=KAS-ECC-CDH_P-256_C23-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=2e277ec30f5ea07d6ce513149b9479b96e07f4b6913b1b5c11305c1444a1bc0b
+
+PrivateKey=KAS-ECC-CDH_P-256_C24
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQghaJo+dd3L5kMNrQr
+CjMa3JK1lB3guGLV2Jo0fL+PqrChRANCAASc9LmFgcoXeUU8yBb/KLQQCvVs8b8u
+W8MS2DtrGyHTM3pVBPysUjGg0S1lghgoSGginIRKBKNFDWxzgavggL87
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-256_C24-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEnPS5hYHKF3lFPMgW/yi0EAr1bPG/
+LlvDEtg7axsh0zN6VQT8rFIxoNEtZYIYKEhoIpyESgSjRQ1sc4Gr4IC/Ow==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-256_C24:KAS-ECC-CDH_P-256_C24-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-256_C24-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAENWxaREwEmlL+4K3rfl2CrlqoMDC/
+/zG7+M4gls8WHEtX0SjeiypXoJTRoAHlchc/luiGauNSvynN2vkvyFsvkg==
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-256_C24
+PeerKey=KAS-ECC-CDH_P-256_C24-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=1e51373bd2c6044c129c436e742a55be2a668a85ae08441b6756445df5493857
+
+PrivateKey=KAS-ECC-CDH_P-384_C0
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDA8wxIqaPDZUCetOMBn
+kWug64w4iU0i4bFWGLaBimYXdK1GOyBdqIz2matNQ8nPmKGhZANiAASYA4B/L20v
+2WbN0CkL1BDAGQNS++x/9iR94TAt+G8l00/kqXvvYM/1SDVcAV27Pl+6Jspp7C9b
+XZ2tIMydpxE4Op2+NOo/paKvdbRlAmKa1U3Yt9c6irsGo6O+R9ZQzJk=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C0-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEmAOAfy9tL9lmzdApC9QQwBkDUvvsf/Yk
+feEwLfhvJdNP5Kl772DP9Ug1XAFduz5fuibKaewvW12drSDMnacRODqdvjTqP6Wi
+r3W0ZQJimtVN2LfXOoq7BqOjvkfWUMyZ
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C0:KAS-ECC-CDH_P-384_C0-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C0-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEp8drlww7X+iwXSg4rgSrR2l7nq9S52RZ
+Lv2if+dRMnJzRGa0AAka2/LWjFjgxQBmrGjxny4cuHmu1DqZabkaCDnEw4pJdJtm
+Hv7fJDRRkV7QkFoysGCZK0aMZHZvyEN6
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C0
+PeerKey=KAS-ECC-CDH_P-384_C0-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=5f9d29dc5e31a163060356213669c8ce132e22f57c9a04f40ba7fcead493b457e5621e766c40a2e3d4d6a04b25e533f1
+
+PrivateKey=KAS-ECC-CDH_P-384_C1
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDCShgwhveBhZfjpAMaH
++O8KBdFPKQs/B9izqMxkBDZuXVEZzW0D+xLcWOifE9+c14OhZANiAATqQBj1owfD
+eRgL9qYv0s7O6+631N8GOmb7g4qjUkNBl5H34snUgDyTGaoOsDxBa2Zog1qRSE8F
+7wKChN9kNvuI/+urzdaasBM+ZzWhvPs3ID0Q00CoMop7aHcMp1h4oaY=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C1-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE6kAY9aMHw3kYC/amL9LOzuvut9TfBjpm
++4OKo1JDQZeR9+LJ1IA8kxmqDrA8QWtmaINakUhPBe8CgoTfZDb7iP/rq83WmrAT
+Pmc1obz7NyA9ENNAqDKKe2h3DKdYeKGm
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C1:KAS-ECC-CDH_P-384_C1-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C1-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEMPQ/zytrAN5T9iTxVDCQaBg5cX1Tx8lV
+0dae+vA0m3NjrLRHJAEBy7OvZkHOS4jgJeRsDFTwFip378wntup5IAKuK6gnFCmc
+hghXpoFTq2LlJewFMNgbWqFYl5gehYdX
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C1
+PeerKey=KAS-ECC-CDH_P-384_C1-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=a23742a2c267d7425fda94b93f93bbcc24791ac51cd8fd501a238d40812f4cbfc59aac9520d758cf789c76300c69d2ff
+
+PrivateKey=KAS-ECC-CDH_P-384_C2
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDASz2oiOnI1JUODDz8Y
+Uw1cs38miAoLKUSCyKjvivrQmqeLfcLyeJp4xmr10cxVOFOhZANiAAT8/OoIXoz3
+TQ3O0WILqEI2lPkDohm7+QGwtZ1qyBuq0xaiQroyvehcskgRm4Uvq2aXLjxox6tA
+LFg28qFu1FGjMSCndQpgOfP/FTiO5iK3Bl9xIr9tUa77wps3sDQEWBs=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C2-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE/PzqCF6M900NztFiC6hCNpT5A6IZu/kB
+sLWdasgbqtMWokK6Mr3oXLJIEZuFL6tmly48aMerQCxYNvKhbtRRozEgp3UKYDnz
+/xU4juYitwZfcSK/bVGu+8KbN7A0BFgb
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C2:KAS-ECC-CDH_P-384_C2-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C2-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEGu+/osbIyFWhohZ3RVC3miTNo3YHux98
+yQZlDuSzgW1o9qnHXabkJCzr+2ZS9lGAQZ0otyPrrbdlj867mtm3repnTx2j3Gtj
+l7VdoPYaPt2stKzbFEQcshSwSghEwC+j
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C2
+PeerKey=KAS-ECC-CDH_P-384_C2-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=3d2e640f350805eed1ff43b40a72b2abed0a518bcebe8f2d15b111b6773223da3c3489121db173d414b5bd5ad7153435
+
+PrivateKey=KAS-ECC-CDH_P-384_C3
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDCN1IBjo6BYwzS1zHpM
+4H0C5e5tjx88UaFgCWLLq0YmkK482XT7OeQLDoQ9qg/TLeGhZANiAATjjJhGJIEj
+w0IYYepNMmaae1w8CDdq0oEEOZSUyE/176OJStssbL6MPJE+8u7FvTyfqEAkoQKH
+lt+EAh97bJ0C8PS9GmEqA8v3WgvupD/viuhLSMYBcqrfCcGtAW0L884=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C3-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE44yYRiSBI8NCGGHqTTJmmntcPAg3atKB
+BDmUlMhP9e+jiUrbLGy+jDyRPvLuxb08n6hAJKECh5bfhAIfe2ydAvD0vRphKgPL
+91oL7qQ/74roS0jGAXKq3wnBrQFtC/PO
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C3:KAS-ECC-CDH_P-384_C3-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C3-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEi8CJMm7FW5z1mzTw63VNk1lsopD8s0RM
+g9TeOlYHA37Dl2g/jO8H6rL+NX6uNsRJ2dFs6KyFs/HpRWhSGq5TTmcTnjEOxyaT
+Umqi6Se1syLJWhoDPCKctncMlXzTFI3X
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C3
+PeerKey=KAS-ECC-CDH_P-384_C3-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=6a42cfc392aba0bfd3d17b7ccf062b91fc09bbf3417612d02a90bdde62ae40c54bb2e56e167d6b70db670097eb8db854
+
+PrivateKey=KAS-ECC-CDH_P-384_C4
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDCE7ObMNCkwm9WyPpWX
+k+0rER7Fy0O2wYCF/K6p76BoXZimJi7g0zDuJQvIpn0Ocz+hZANiAAQyIgY6KZez
+Au5g7hlhEI/0x6zxwO8dX7DRZLhLznHEMXBcua6ppF9dc4BmVaBYvuPmH6nn++fN
+Q6v5lZaj06A56Z+p3JOwvdnK2Blm0X7q9VcGivp8eEZrtbIgMtEQD6Y=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C4-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEMiIGOimXswLuYO4ZYRCP9Mes8cDvHV+w
+0WS4S85xxDFwXLmuqaRfXXOAZlWgWL7j5h+p5/vnzUOr+ZWWo9OgOemfqdyTsL3Z
+ytgZZtF+6vVXBor6fHhGa7WyIDLREA+m
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C4:KAS-ECC-CDH_P-384_C4-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C4-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE65UuLZrAwgxsxI+yJcKtFU9TyHULAD/T
+tO2O0dwN76xhvN3gKivP7nBn1100LtKw8YKCBbrs6C0bJn0Nf/L5yeFbaact9HBY
+qX84kQBdH7OIWPVgPehA5ZHfpPbn1Inh
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C4
+PeerKey=KAS-ECC-CDH_P-384_C4-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=ce7ba454d4412729a32bb833a2d1fd2ae612d4667c3a900e069214818613447df8c611de66da200db7c375cf913e4405
+
+PrivateKey=KAS-ECC-CDH_P-384_C5
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDBo/OISHcOh43sQ8d3j
+Cfni4Y+sR80XcJUUUcNITNt3yxNtAOcxJgWXzChZYBwBoluhZANiAASGi+DmlIQY
+MOQk2RPY59hrhO4QIdgrDs9SPwn+iadsDJXEny37z4KcHjlwnVXvuzuRlesYNnW0
+D9kvUfN3EzF+SptPcVyKsi4Hc7G8cdOiGfBbgRYHRljuhrUuNvOJcRY=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C5-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEhovg5pSEGDDkJNkT2OfYa4TuECHYKw7P
+Uj8J/omnbAyVxJ8t+8+CnB45cJ1V77s7kZXrGDZ1tA/ZL1HzdxMxfkqbT3FcirIu
+B3OxvHHTohnwW4EWB0ZY7oa1LjbziXEW
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C5:KAS-ECC-CDH_P-384_C5-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C5-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAERB0CniROtxaNZH1N9Q219OSXSrP9rwIq
+/wWLNpXQuMgUzIjaYoXcbfGsVcVTiFAD6AJawjpB1LHqKqRsUMbkeZRrWbbXZJfN
+kkmXfgv+SmJiYi8T1Co8Q9Zr27MEA8NF
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C5
+PeerKey=KAS-ECC-CDH_P-384_C5-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=ba69f0acdf3e1ca95caaac4ecaf475bbe51b54777efce01ca381f45370e486fe87f9f419b150c61e329a286d1aa265ec
+
+PrivateKey=KAS-ECC-CDH_P-384_C6
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDCxdkxUiX56rm3p53Uf
+LzfehJKR+I8PkQkxVbhY0cwyo6h5gPcGuGzIP5J739vq4L2hZANiAATDcSIv6qZ3
+DG8+o+DayXQN70/PghN4t/kf+TfCHgRw9w86MdXGspEhlfEJJpQrSK4EfWtNdlEj
+Vj+BEWvGZbe4zGIHgw2AX9hNp8uAWmW6p8Ev1ZLRtbXj5l2WcqnvdmI=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C6-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEw3EiL+qmdwxvPqPg2sl0De9Pz4ITeLf5
+H/k3wh4EcPcPOjHVxrKRIZXxCSaUK0iuBH1rTXZRI1Y/gRFrxmW3uMxiB4MNgF/Y
+TafLgFpluqfBL9WS0bW14+ZdlnKp73Zi
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C6:KAS-ECC-CDH_P-384_C6-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C6-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEPU5r8IpzQErMwWKYc0aOQmnoLZDYMuWK
+1yFCY5taBWrY01xmxg6BSfrAx5e863wvmwMI3H8ObSn4wnesvGWiHlrbg9EeaHO8
+Cgf9oJl/SCUEYC9Z4QvFy0drg9Ck915x
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C6
+PeerKey=KAS-ECC-CDH_P-384_C6-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=1a6688ee1d6e59865d8e3ada37781d36bb0c2717eef92e61964d3927cb765c2965ea80f7f63e58c322ba0397faeaf62b
+
+PrivateKey=KAS-ECC-CDH_P-384_C7
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDDw96lucNmP1aMK1kBs
+9W61typRDp8ZL1Dh+EUk2/PSQ59yh7s29aqRKnneqrSt6oKhZANiAASZyMQcsate
+CFSjRuSwilN8FwamFVM4fI2UlDqxUZbUDbqlW4IQp3pdAJFfLE6mnqtVMQZb3PF7
++zy1WgLkGlfH9pTDg60on5APvWVsIjOpPJLpM+eib1TLtW8K2HXFG7A=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C7-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEmcjEHLGrXghUo0bksIpTfBcGphVTOHyN
+lJQ6sVGW1A26pVuCEKd6XQCRXyxOpp6rVTEGW9zxe/s8tVoC5BpXx/aUw4OtKJ+Q
+D71lbCIzqTyS6TPnom9Uy7VvCth1xRuw
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C7:KAS-ECC-CDH_P-384_C7-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C7-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE9fa+8dEQ2gO+ABfqx2DMNLJNCS9zbyN7
+xwVLOGUxKoE7y2LSl/sQpPer9UcI/i09Bv3419wDL04QAQvxnL9hWTISUv9BX7kZ
+INQ48k5n5gwusEYyBGefo1avRM6pyev1
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C7
+PeerKey=KAS-ECC-CDH_P-384_C7-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=d06a568bf2336b90cbac325161be7695eacb2295f599500d787f072612aca313ee5d874f807ddef6c1f023fe2b6e7cd0
+
+PrivateKey=KAS-ECC-CDH_P-384_C8
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDCe+4fdxh1DxIK6ZuGx
+Q672ePvQ0b68IACUH6vmd/5bcGv3j8420QCxfMeH6tdLvKKhZANiAARMNO/ujwyV
+Vl0gZdG7rCot0lrpZDIOtrzO3F86m0KogaGvyhu2uIBYT6J7AcGTzZLY+wHb980K
+OGjCa5UfOTw8VsKFjO6QH3eT/10nGSXROkH45SQJ9OuhmQ8zrLC6xmk=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C8-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETDTv7o8MlVZdIGXRu6wqLdJa6WQyDra8
+ztxfOptCqIGhr8obtriAWE+iewHBk82S2PsB2/fNCjhowmuVHzk8PFbChYzukB93
+k/9dJxkl0TpB+OUkCfTroZkPM6ywusZp
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C8:KAS-ECC-CDH_P-384_C8-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C8-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEfN7Hfgc36jfGe4m3E3/jiBgBD0RkQ47k
+0dNaDEiMrT/eLzfQCIXTbTt5W5+T0jpnKMQu6NYCfFbPl5ukwin9sB0jSUT4rEM2
+UBEsPPDwKEToiKNWnf73goqKiEWJqgVe
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C8
+PeerKey=KAS-ECC-CDH_P-384_C8-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=bb3b1eda9c6560d82ff5bee403339f1e80342338a991344853b56b24f109a4d94b92f654f0425edd4c205903d7586104
+
+PrivateKey=KAS-ECC-CDH_P-384_C9
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDDXh6V/3iLsZWoKUlzz
+xzizDXOvYedD6pCJPsste2Iq3S+U7iXCFxRnr7CT8/hNABihZANiAAQXFUaSO4ey
+y7rWZPAc6TK/CdamEYFoZ4RGv6nwk4YIy0ZnqY9OyKwUYihcJQj3SGL6QctNtorn
+Hx+KPok53FLC3sYag8mDvrKgK68p7EkngIiILtDPVsdLXBc7VSzPY88=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C9-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEFxVGkjuHssu61mTwHOkyvwnWphGBaGeE
+Rr+p8JOGCMtGZ6mPTsisFGIoXCUI90hi+kHLTbaK5x8fij6JOdxSwt7GGoPJg76y
+oCuvKexJJ4CIiC7Qz1bHS1wXO1Usz2PP
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C9:KAS-ECC-CDH_P-384_C9-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C9-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEju6joxnI35n7wpy1XyQ6cg2VUJUV7lzF
+h6XFriL7vQCeYm2z6RHe8LmaT3rjBLG6c4d9yU25rd3A2aSyTol2wi1zyEQ3Dh7o
+V/jRsSmjvV9j9AyvO9BTPjil9XdwdP+e
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C9
+PeerKey=KAS-ECC-CDH_P-384_C9-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=1e97b60add7cb35c7403dd884c0a75795b7683fff8b49f9d8672a8206bfdcf0a106b8768f983258c74167422e44e4d14
+
+PrivateKey=KAS-ECC-CDH_P-384_C10
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDCD1w97Fk2fTCJ8dnBG
+sg6zTfx3j1OH4y6DSx5trsIO24ylu0GSCT9UO2jmrrfOeIuhZANiAARXzXcPO7y+
+DHjHcOqwsWm8ReE5+GN4/64cKxaWZyfC8utyRXK48+sijRMNtP+GLGN+xciBO2hV
+WNg+kk8UvHGfbreuDLssR0Inxb2ohjek8mxkgXkpr5mVktpveHSQMy8=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C10-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEV813Dzu8vgx4x3DqsLFpvEXhOfhjeP+u
+HCsWlmcnwvLrckVyuPPrIo0TDbT/hixjfsXIgTtoVVjYPpJPFLxxn263rgy7LEdC
+J8W9qIY3pPJsZIF5Ka+ZlZLab3h0kDMv
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C10:KAS-ECC-CDH_P-384_C10-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C10-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEpyH2otRSdBGDSxPU06M8Kb64OrdoJGXG
+y69mJKym6ljDDrDyndhCiGaVQA1yVPIPFLpuJjVRCa01EpNm1eOmQK55hQWn+lWp
+aja12tM94AR09mcPUiIU3XlSFAqwp+to
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C10
+PeerKey=KAS-ECC-CDH_P-384_C10-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=1023478840e54775bfc69293a3cf97f5bc914726455c66538eb5623e218feef7df4befa23e09d77145ad577db32b41f9
+
+PrivateKey=KAS-ECC-CDH_P-384_C11
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDCPVY4FgYuI7Tg9X8qW
+LlNBPbGg5GN+2hlPdhlEy+oRSrnV2hdafVeIJVCw5DLzlamhZANiAASaL1f0hnzn
+U9crDZUZXfb5bB+uk09gLv17alRYL1Vs+lOdiQBcou2sCK2bct0fYLrZuU7oLanM
+YB80YESZi6OHruVkBNxuzIqytZBEMxnQsrYXb50OrC1EZ47VYWB9Cak=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C11-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEmi9X9IZ851PXKw2VGV32+WwfrpNPYC79
+e2pUWC9VbPpTnYkAXKLtrAitm3LdH2C62blO6C2pzGAfNGBEmYujh67lZATcbsyK
+srWQRDMZ0LK2F2+dDqwtRGeO1WFgfQmp
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C11:KAS-ECC-CDH_P-384_C11-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C11-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE2IKoUFwtXLm4hR/Gdmd7sAh2ga1T+s66
+Fzgoa0WCdWHn2je4gCdsZWz8OLMq3oR+NLMUvcE0V1ZUVzz/r0BEXaLmqvmH9+kT
+zUwwkVIwWJhKJdjyHagyYZJFbGoPpfYM
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C11
+PeerKey=KAS-ECC-CDH_P-384_C11-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=6ad6b9dc8a6cf0d3691c501cbb967867f6e4bbb764b60dbff8fcff3ed42dbba39d63cf325b4b4078858495ddee75f954
+
+PrivateKey=KAS-ECC-CDH_P-384_C12
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDAPXe4K/6e78jnV3/Mp
+h+u3z4T8zu1kPh08YtCzNSrsI7blrH+kEFyMsmEmrS0YksuhZANiAAQjNGvfvJ18
+fHNuAr32B2cf9ggv3SczSovHXzsjaB6+YU0Fl91hT65YZ3yDWp8LJzuCujYpDS+U
+20FHnrRatOr2eSiiMVE41Z7sybUoXf3dZxT3dVchbqRMxvwRnYJD768=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C12-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEIzRr37ydfHxzbgK99gdnH/YIL90nM0qL
+x187I2gevmFNBZfdYU+uWGd8g1qfCyc7gro2KQ0vlNtBR560WrTq9nkoojFRONWe
+7Mm1KF393WcU93VXIW6kTMb8EZ2CQ++v
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C12:KAS-ECC-CDH_P-384_C12-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C12-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEgVyddz2/X7ahuGeZlmJH9ABqI8kuaMVe
+nqqZixfYgy3U2E2SfYMdT2jaxnxkiCGf55JplIsmEUhFYP1JD+7Ih8tV75mktSSI
+D6dJnWoHKDquKvoz/quX3spAvGBsTYdk
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C12
+PeerKey=KAS-ECC-CDH_P-384_C12-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=cc9e063566d46b357b3fcae21827377331e5e290a36e60cd7c39102b828ae0b918dc5a02216b07fe6f1958d834e42437
+
+PrivateKey=KAS-ECC-CDH_P-384_C13
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDADe2M7W4uoV8D8hWVo
+aCMuL+v1lXhxg5G4HahUGgC/5TwwrgQVGEfydJn416utjPShZANiAASIeKyKlH99
+XLK0eq0k+7ghDYYSZYU5mihx+Eqpxf3jB0rlQMa/gidcqCLQ/rhivHRjL1zS+QDC
+cRwy+JMHKOtkfTHt2NZQ+WVOfTPl7RtHVInQjaow2MvLpr/Dtg2bWjc=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C13-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEiHisipR/fVyytHqtJPu4IQ2GEmWFOZoo
+cfhKqcX94wdK5UDGv4InXKgi0P64Yrx0Yy9c0vkAwnEcMviTByjrZH0x7djWUPll
+Tn0z5e0bR1SJ0I2qMNjLy6a/w7YNm1o3
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C13:KAS-ECC-CDH_P-384_C13-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C13-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEHA7tp6K+AAxb3NoEeK7U23M9Kp40EiQ3
+kSOthHAw8p47Fo+hjomjwPuips4cKPw77Iwcg8EYxNvqlCcYafLYaOtl6LROIebx
+Sw9NmzjAaNrvonEUJVuaQdCEzEoa2FRW
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C13
+PeerKey=KAS-ECC-CDH_P-384_C13-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=deff7f03bd09865baf945e73edff6d5122c03fb561db87dec8662e09bed4340b28a9efe118337bb7d3d4f7f568635ff9
+
+PrivateKey=KAS-ECC-CDH_P-384_C14
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDDj0HEGvtzAlufZFjD/
+0wlN8seFnbjX7bsuN7SsR/QppjfQamfS+6M4OHZO8gNGSZGhZANiAATnShorhfHL
++Nu98FDPGv+KywL9ovtlkfnTz+TnnQrpOKnBSD57dfjbJFBdZQZc2xgXc+5ZGCL3
+q6qFahpgvApSA1SNvRy1AlRm7/hIG9B2FOqgShbD23aQWRPpcqW2tZ0=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C14-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE50oaK4Xxy/jbvfBQzxr/issC/aL7ZZH5
+08/k550K6TipwUg+e3X42yRQXWUGXNsYF3PuWRgi96uqhWoaYLwKUgNUjb0ctQJU
+Zu/4SBvQdhTqoEoWw9t2kFkT6XKltrWd
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C14:KAS-ECC-CDH_P-384_C14-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C14-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEyVwYXiVr+ZfzCzEVSK5/doo43uQ+7u9D
+CD8wd75w4r85rB1NrzYMUUyMa+YjRD0aPmOmY+r3XYp2WrK5o1UT15M/peJkIKUk
+RVDsbDtvAzuW2yrKPWrGqrBSzpKVla6l
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C14
+PeerKey=KAS-ECC-CDH_P-384_C14-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=c8b1038f735ad3bb3e4637c3e47eab487637911a6b7950a4e461948329d3923b969e5db663675623611a457fcda35a71
+
+PrivateKey=KAS-ECC-CDH_P-384_C15
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDDz+bDGWkmlBmMsikWx
+D2a1MW+e6wb64hjy2mIzP5mQURexQcdg6JdO/ErxBXBjV5GhZANiAASkrXeqfYbl
+NhEYprkhcQyCByEhBxL0w0eYX97liqTv+h4ovoChexILE5+WMA+JtJsd3yLgfgPx
+Vg2PRaSACUVg26n65/lTETDBtX67lZgkllJPMdN5d5M5b6gj8ivbQyg=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C15-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEpK13qn2G5TYRGKa5IXEMggchIQcS9MNH
+mF/e5Yqk7/oeKL6AoXsSCxOfljAPibSbHd8i4H4D8VYNj0WkgAlFYNup+uf5UxEw
+wbV+u5WYJJZSTzHTeXeTOW+oI/Ir20Mo
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C15:KAS-ECC-CDH_P-384_C15-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C15-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAENJcjin5q0WbfLawDmqTayNF6qSXnx2Me
+s7VuOqocVF/NVNLlmFgHkQ+yArH8GR0qpJ5cSH3MeqQKjyNMl5RGBA2RdOOtNX1A
+TXdlGDGVrtP5E2QbkMgaMG6/DYkThhMW
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C15
+PeerKey=KAS-ECC-CDH_P-384_C15-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=d337eaa32b9f716b8747b005b97a553c59dab0c51df41a2d49039cdae705aa75c7b9e7bc0b6a0e8c578c902bc4fff23e
+
+PrivateKey=KAS-ECC-CDH_P-384_C16
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDBZ/Of6194ousAjBpDJ
+VxDHIOUo+aTlTTpqjNX8XF8hY3AxzhxbTj05ZH2Ny5t5RmShZANiAAScQ7+XHt8J
+QCh27nQglTgfeLG9OqObUTKvddv+fpi9eL3hD+LpA8K2N54d7uF1obCmxY7OpaR3
+uwG9VDsznxzEnxNxos2k1G605T4lBZeUI1GplmWhIv/qm94GNsN12vI=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C16-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEnEO/lx7fCUAodu50IJU4H3ixvTqjm1Ey
+r3Xb/n6YvXi94Q/i6QPCtjeeHe7hdaGwpsWOzqWkd7sBvVQ7M58cxJ8TcaLNpNRu
+tOU+JQWXlCNRqZZloSL/6pveBjbDddry
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C16:KAS-ECC-CDH_P-384_C16-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C16-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEkKNHN9RbGqZfdOC9Blm8EY+OS3dLdhlE
+/6ZXPG309B3sDRG2l6vZNNOQhx1LRTJAm1kHGbszB8FJp4F741XWhIk6MHdktRLu
+/+B8tpnttab/v41gMubHnV6T6UISwqpO
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C16
+PeerKey=KAS-ECC-CDH_P-384_C16-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=32d292b695a4488e42a7b7922e1ae537d76a3d21a0b2e36875f60e9f6d3e8779c2afb3a413b9dd79ae18e70b47d337c1
+
+PrivateKey=KAS-ECC-CDH_P-384_C17
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDA+Sfv5UKQkxdgCKNxL
+w16fbGwMHQRECZjaCmCah3V12+Q31qXO2qLd0qGhf9ESre2hZANiAARalJWUIosa
+PW9ZnrPbDQYHD7xVHGV7WCNLoWTOP+QV+l8+uCPAjcKbjDQSGcd7az0rqtRHyMKQ
+z+0l7dkDHEHQt2khRXMn9C2zESK4HzN7vwsQOeyDDOkGGjdhlTx15Kg=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C17-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEWpSVlCKLGj1vWZ6z2w0GBw+8VRxle1gj
+S6Fkzj/kFfpfPrgjwI3Cm4w0EhnHe2s9K6rUR8jCkM/tJe3ZAxxB0LdpIUVzJ/Qt
+sxEiuB8ze78LEDnsgwzpBho3YZU8deSo
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C17:KAS-ECC-CDH_P-384_C17-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C17-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3aVGrPyPkD0R4uOSBmljbUSyBorrZv8H
+qiZvADDhU1sO0CA8uKRgrJkPE5T68i8dFbuyWXkTA1+q30E0dvTHD3J5dppAyYb0
+cMQntO5JYqvfgXO7rYGHR3KSX9MvCxWf
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C17
+PeerKey=KAS-ECC-CDH_P-384_C17-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=1220e7e6cad7b25df98e5bbdcc6c0b65ca6c2a50c5ff6c41dca71e475646fd489615979ca92fb4389aeadefde79a24f1
+
+PrivateKey=KAS-ECC-CDH_P-384_C18
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDBQzMH3B26S9GOOhfLb
+mOC0g+biIEySvdRApt7qBON6B8bnJ5HBkK1OTobgHvuoQmmhZANiAAR1bAffDOMs
+g52sn7RzPJwotwETpnanBXw40iPyKjqQlajVZGU69SjgTH4YJL5KZRIXws5pYsvS
+ouBmKXs51X3Zu0aA8BkdOQ9wtORhQZspcs5orUYSf92mw5GVd06obfM=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C18-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEdWwH3wzjLIOdrJ+0czycKLcBE6Z2pwV8
+ONIj8io6kJWo1WRlOvUo4Ex+GCS+SmUSF8LOaWLL0qLgZil7OdV92btGgPAZHTkP
+cLTkYUGbKXLOaK1GEn/dpsORlXdOqG3z
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C18:KAS-ECC-CDH_P-384_C18-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C18-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEeIviM2xS9EVNY+6USx5Jv7YZoINxBI5t
+qS5YTq5wveHxccTfN4vR88CrAwSKI3gCRnPr2NtgTq9BcRdIurKWiiPKRHbOFE5y
+gkfwivdSkpFXtYMPHiYGdGa9+otlFFoz
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C18
+PeerKey=KAS-ECC-CDH_P-384_C18-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=793bb9cd22a93cf468faf804a38d12b78cb12189ec679ddd2e9aa21fa9a5a0b049ab16a23574fe04c1c3c02343b91beb
+
+PrivateKey=KAS-ECC-CDH_P-384_C19
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDAG8TK3H3TYe/mYV+Hk
+NQpZTl/jVTO4iFUs7MvA2JI8kC42FB12keKGMbi8m6/l4GShZANiAAQqPMa4/1ze
+km5+OhiaG9ApybWGNRr4g49PIBy49LcO87DaBtNSyA/Ca6+PQreERZ6/mYWWAXba
+bSPHRSopVP/LvLJCSbQwGaKgI+Cz2r1GHxmtPndcNk8/Ea1J8wmUANM=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C19-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEKjzGuP9c3pJufjoYmhvQKcm1hjUa+IOP
+TyAcuPS3DvOw2gbTUsgPwmuvj0K3hEWev5mFlgF22m0jx0UqKVT/y7yyQkm0MBmi
+oCPgs9q9Rh8ZrT53XDZPPxGtSfMJlADT
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C19:KAS-ECC-CDH_P-384_C19-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C19-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE0Ju4IuuZ44BglUdHyCuzJ4z5a782/s40
+APTIc4OKQME16zuruSk70QAb8+ze578m1BbbbhuHu7dCd4ijtsenqywWWx42b5YI
+31EgN1hPITpkjUfxasMm4Zquly9j/XbJ
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C19
+PeerKey=KAS-ECC-CDH_P-384_C19-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=012d191cf7404a523678c6fc075de8285b243720a903047708bb33e501e0dbee5bcc40d7c3ef6c6da39ea24d830da1e8
+
+PrivateKey=KAS-ECC-CDH_P-384_C20
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDASBI67QzHsGaHiPxos
+dztmTM/pCii/uEb8Evgd/0S3RDx3ZHFkvx6eZ/0sB6Z2YkGhZANiAAS8GINrx6n9
+9UtTUvN9dSirj6jsVEqMYYBRHL/dSczjd8OeNMAxtSQNyZgFA+0vJiyAhsvjOBkQ
+gPC3oWx6/Ex7Ayb5rGb1hVLvS7nSTeNCntXTJ37Vj89I8rX2Eya+xsY=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C20-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEvBiDa8ep/fVLU1LzfXUoq4+o7FRKjGGA
+URy/3UnM43fDnjTAMbUkDcmYBQPtLyYsgIbL4zgZEIDwt6FsevxMewMm+axm9YVS
+70u50k3jQp7V0yd+1Y/PSPK19hMmvsbG
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C20:KAS-ECC-CDH_P-384_C20-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C20-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEE3QSYu3lhh2tcQY9/SBLkeodO3xjHfaO
+uUmWlSfXmh3FkpXvfSvKZ0PozXewTRtYC6rq3H4Z10qKBEUaE18b4bAv4pn53AC/
+3yAeg9mVxpULzBy4nW97ML9UZWuaTaWG
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C20
+PeerKey=KAS-ECC-CDH_P-384_C20-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=ad0fd3ddffe8884b9263f3c15fe1f07f2a5a22ffdc7e967085eea45f0cd959f20f18f522763e28bcc925e496a52dda98
+
+PrivateKey=KAS-ECC-CDH_P-384_C21
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDA01hppnKV2Fp/NwMx+
+ROThIh2w/mPRaFDIEEAp99SESXFLmIQyjK4YmXh1SrRgtIahZANiAASGf4EQTM1r
+Fjp5ArZw70BgQssMzn3Nxj0d/JGyxA4833WVg0v57Ot5hJ8WNvyEYvydS96Oh17E
+lpfSWNHVlGX4QxxvVTHhxZ6fnr488WSo2c4QoS8ZeSg6lZutJE3YOGM=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C21-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEhn+BEEzNaxY6eQK2cO9AYELLDM59zcY9
+HfyRssQOPN91lYNL+ezreYSfFjb8hGL8nUvejodexJaX0ljR1ZRl+EMcb1Ux4cWe
+n56+PPFkqNnOEKEvGXkoOpWbrSRN2Dhj
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C21:KAS-ECC-CDH_P-384_C21-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C21-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEniLLwYZX9RaoZLN7eDNItm8aqWJs1jH0
++hvTKtiM8R21IFfGYIYNOdEfvwJPq9REaw1Tx5aBwoEW33HpzudP1WyLfwSznxGY
+zHIoTpi+lWLjWSb7T0ip++yv5ykwnotv
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C21
+PeerKey=KAS-ECC-CDH_P-384_C21-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=dc4ca392dc15e20185f2c6a8ea5ec31dfc96f56153a47394b3072b13d0015f5d4ae13beb3bed54d65848f9b8383e6c95
+
+PrivateKey=KAS-ECC-CDH_P-384_C22
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDDcYPqHNtcCE1/xaquZ
+K7iOrDl/WXJFbHLsRHN00NjOYRU4Mb/IatWm61tgv7lqhiyhZANiAAS2m+7ehdD4
+Kf7BuJPMucPgUv9pLhO5dFN7xbD5/q97IuhPAyMWKbJIZr20uM+QiRRm+F4r/Kui
+hDKFsOFOvAfvfa//i0JEFv7mR7WYl7YZ8g7tlaYy5qQga/faQpwExWA=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C22-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEtpvu3oXQ+Cn+wbiTzLnD4FL/aS4TuXRT
+e8Ww+f6veyLoTwMjFimySGa9tLjPkIkUZvheK/yrooQyhbDhTrwH732v/4tCRBb+
+5ke1mJe2GfIO7ZWmMuakIGv32kKcBMVg
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C22:KAS-ECC-CDH_P-384_C22-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C22-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAELbXaX5QOqohPTbXsITmwRp845Ob7vMUt
+8VwPfPf8sYCMdJdktr6F0v3FsW9YrV3AIuiwLc8z4bWgg4SVRfhK1eQ/d8txVG27
+rA0RvbLuIC6dOHLo0CjAiZB0bF4d3pmJ
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C22
+PeerKey=KAS-ECC-CDH_P-384_C22-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=d765b208112d2b9ed5ad10c4046e2e3b0dbf57c469329519e239ac28b25c7d852bf757d5de0ee271cadd021d86cfd347
+
+PrivateKey=KAS-ECC-CDH_P-384_C23
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDBvpqHHBHMJh6pjSwUW
+qCarqMbWQR06TIl3LXpiYQJWouLyifXDRAsOwecPozniUc6hZANiAART3h/BMo6N
+4UrsqymtikDWsTdo+G99KYQz0g/seR+G+Lxz81gJiyVqKYu0iN4le/SsKJRP0n8X
+uClGwExmxB8AU9NpLyddpVzYc5qVvYzTry+W5N6Vnqg0TYlFN1kFhYs=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C23-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEU94fwTKOjeFK7KsprYpA1rE3aPhvfSmE
+M9IP7Hkfhvi8c/NYCYslaimLtIjeJXv0rCiUT9J/F7gpRsBMZsQfAFPTaS8nXaVc
+2HOalb2M068vluTelZ6oNE2JRTdZBYWL
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C23:KAS-ECC-CDH_P-384_C23-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C23-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEMpZHuqNUIk60QUgpxTaMgteJOzmATgjL
+shgPRZvvxLNHo4mnDJGiO9nTDIO+UpXTzI9hkj+tKqjlBdbPoSa5+r1a+dzikLdW
+YO8G0cqnNoHQYInDO8QkazqjDbzSQ1sS
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C23
+PeerKey=KAS-ECC-CDH_P-384_C23-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=d3778850aeb58804fbe9dfe6f38b9fa8e20c2ca4e0dec335aafceca0333e3f2490b53c0c1a14a831ba37c4b9d74be0f2
+
+PrivateKey=KAS-ECC-CDH_P-384_C24
+-----BEGIN PRIVATE KEY-----
+MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDB0rYOGwcssoPzesx4I
+abs/SMA2r+LvEQyjAryLkQ9iHJ/MVM7DK7iex8qoTHuOVKihZANiAAQno+g8+51R
+IucxKdgBYVhX2nzAiczMnFSrMDKhngoKn2dzRuN/CKCz7Y2m5d1pEGONYORKpeD9
+MMkYRWeWrzfw5BlXkBZF5cWWxtmJ9YWbA6C9fR9Od5Nv/zx00gTlOI4=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-384_C24-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEJ6PoPPudUSLnMSnYAWFYV9p8wInMzJxU
+qzAyoZ4KCp9nc0bjfwigs+2NpuXdaRBjjWDkSqXg/TDJGEVnlq838OQZV5AWReXF
+lsbZifWFmwOgvX0fTneTb/88dNIE5TiO
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-384_C24:KAS-ECC-CDH_P-384_C24-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-384_C24-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEKdijbSIgCnW3rqG7R838sbf9Zt6WcEFD
+RyirXVM6Bg33MhMGAP5vdYUqhx+yk4454ZtT21KDld6JekUQiWdxXrjLVcP8vyM3
+k3LAhzoFjVdUSxAuzOcissyrsaYDd0/V
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-384_C24
+PeerKey=KAS-ECC-CDH_P-384_C24-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=81e1e71575bb4505498de097350186430a6242fa6c57b85a5f984a23371123d2d1424eefbf804258392bc723e4ef1e35
+
+PrivateKey=KAS-ECC-CDH_P-521_C0
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIBfuzAerSzKQaPumXl
+ah+IkKqTXlcTSuD/zOgCc1FR9OrGVk9u6ZdMXmiHof7+5XQ64iQb/rldXOMd3Lb5
+7bTW/EehgYkDgYYABABgL50M+eUmsp4iOBwgPEiohsKwZzAzNmMU8f+8uiQLpC9O
+84p2F0Y1+R5rTtNCdesByEZ9BcqAMVvxp7vZRfVQpQG3yF8m9dSy1zVc9rAhF2WZ
+Q3YrbR21q08dvETOeylG62x940KWKJP9OH0bc9eoZy0fI2lhFwt+s1eZU+5c3IjN
+LQ==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C0-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAYC+dDPnlJrKeIjgcIDxIqIbCsGcw
+MzZjFPH/vLokC6QvTvOKdhdGNfkea07TQnXrAchGfQXKgDFb8ae72UX1UKUBt8hf
+JvXUstc1XPawIRdlmUN2K20dtatPHbxEznspRutsfeNCliiT/Th9G3PXqGctHyNp
+YRcLfrNXmVPuXNyIzS0=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C0:KAS-ECC-CDH_P-521_C0-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C0-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAaFpI6Gx58PCHX3vBjSXrX8jAsH5d
+pPQ3DzqUkDQIVDNLHhuH+jlUZMYGJhJKTnDQ94VgHTfAmHDr8XZmaHeiBG0BulLF
+b8h3bZ6PXbTwzCdjbQt0G74FQAaXlC6AtzmISoO96Z4PZxaTnmMryJhvoY3M1EOj
+SLbD5SJJeVWk88MC9nY=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C0
+PeerKey=KAS-ECC-CDH_P-521_C0-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=005fc70477c3e63bc3954bd0df3ea0d1f41ee21746ed95fc5e1fdf90930d5e136672d72cc770742d1711c3c3a4c334a0ad9759436a4d3c5bf6e74b9578fac148c831
+
+PrivateKey=KAS-ECC-CDH_P-521_C1
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIAgW8ZwfsQ75TUodgc
+FW7D0d4Itmdh8D8G7ku53Ou7/h6qHtSaapkIONjtMYwU10zIcvldBdB61Q9iHOti
+DNkFz7ihgYkDgYYABADUVhXtXTf95plhCmLNQ7p2vt2Phe0xAF/gDWRQ+70QEpGr
+2W1JRai1e8c7P+n0ZxEFMJ7JtoedBVHZMNrIukXSVQFCUzKETlkrRAwAJ5cq0VJk
+McBnMt8ZzUaiQhctTdZ8LIyZ38IuSZSaVs+Qxkc2Nc6C8lszaC+xm8M72RDtjOOn
++g==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C1-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQA1FYV7V03/eaZYQpizUO6dr7dj4Xt
+MQBf4A1kUPu9EBKRq9ltSUWotXvHOz/p9GcRBTCeybaHnQVR2TDayLpF0lUBQlMy
+hE5ZK0QMACeXKtFSZDHAZzLfGc1GokIXLU3WfCyMmd/CLkmUmlbPkMZHNjXOgvJb
+M2gvsZvDO9kQ7Yzjp/o=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C1:KAS-ECC-CDH_P-521_C1-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C1-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQB3yd8FSEINJvDTVOe4M8Gsk9dNQBn
+e0RFRTzMIUCUU6r7inKgvp6+VNEicKpRs6t/MWql50qVHF5T90zZX8Ka7noBPVLz
+Op88FDhNFYf6ir567XS8M3Sa2cVwtHF3ZCLH1FBdmwqWs7+sBB5MammQrn9wDltK
+ZkAikRLer6DNi7DQibA=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C1
+PeerKey=KAS-ECC-CDH_P-521_C1-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=000b3920ac830ade812c8f96805da2236e002acbbf13596a9ab254d44d0e91b6255ebf1229f366fb5a05c5884ef46032c26d42189273ca4efa4c3db6bd12a6853759
+
+PrivateKey=KAS-ECC-CDH_P-521_C2
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIBLy4MbZ6dEXzrlyO8
+7QLrPU7r9f7q+O4BE8zYBXsT3dQW4LdCgMLQuo7SkcRDvBsUHK+K+zpx+X9XwiXA
+Ph5NQrChgYkDgYYABABxf8s9SkDRA4ce3gRNyAPbUIqqSudLcLn7jY39hL/s+tF4
+cYeWmMKS0v1eF7T5NDY2xTGk+saKNak2ZVRrmoeGeQDz2WqGNwNpk6tdJEUA//nS
+dyESgm9kNmA9PrI0pE1cTlxXcjRnnE+d9yXuW5EY8j2KWNDMAQltr3Do3+wBKL3C
+6A==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C2-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAcX/LPUpA0QOHHt4ETcgD21CKqkrn
+S3C5+42N/YS/7PrReHGHlpjCktL9Xhe0+TQ2NsUxpPrGijWpNmVUa5qHhnkA89lq
+hjcDaZOrXSRFAP/50nchEoJvZDZgPT6yNKRNXE5cV3I0Z5xPnfcl7luRGPI9iljQ
+zAEJba9w6N/sASi9wug=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C2:KAS-ECC-CDH_P-521_C2-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C2-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAktsxQlZNJ6XwAG+BmQj7obhQOKW8
+JQmQakl9qsZ/167g/C2rpOQzTurvDgAZIEtHHNiAJPghFdgUnMDPT3zhpNUBa60G
+I/UXsVjZiBhB0lce+61j+Fy+LlgZYMXWcGAaZ2AnJnWlSJliF+SrK4684x1x/KY/
+zDwI6Rwdjt2Rz2/oRfg=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C2
+PeerKey=KAS-ECC-CDH_P-521_C2-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=006b380a6e95679277cfee4e8353bf96ef2a1ebdd060749f2f046fe571053740bbcc9a0b55790bc9ab56c3208aa05ddf746a10a3ad694daae00d980d944aabc6a08f
+
+PrivateKey=KAS-ECC-CDH_P-521_C3
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIA5UinnYsF+SO5gl0R
+tlbyIujLmLD4neHTFxhNxaaY98cRYe59wRzTH09PiuOpgeGj54veu5fXwgS5JhtO
++S4JGOChgYkDgYYABAAM6AAhftJD3RCnmtc99Xiqij+RlK9SjNEJS7/uJ6O1SBrV
+hiyIdsDD+RKUwKs6qAbZAgy6ou1yt/7NxaCaba1vMgFUPJq0WxJGkjKRjiHVo1H5
+pLnL+e+yr8xAL6mzFlC+wtZBoFxEDTUzHAiT0R+xMVEzWYizAzQTAac9xfYdV05n
+2Q==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C3-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQADOgAIX7SQ90Qp5rXPfV4qoo/kZSv
+UozRCUu/7iejtUga1YYsiHbAw/kSlMCrOqgG2QIMuqLtcrf+zcWgmm2tbzIBVDya
+tFsSRpIykY4h1aNR+aS5y/nvsq/MQC+psxZQvsLWQaBcRA01MxwIk9EfsTFRM1mI
+swM0EwGnPcX2HVdOZ9k=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C3:KAS-ECC-CDH_P-521_C3-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C3-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQA/dQNnp2XQCfLO65oIWLqwTKK1hvE
+NTxFv1r+dr9gfSiUyMziNpXZIPJGT9pHc9RpO+SzdzWEaRvbAym39MhswpkANM6s
+aj/vHD4cSUv+jYcrGDgyIZp+FNpBTU40dFc2cewZsDO+gxuRVDWQWSW0SUfFkpWZ
+RbTrfJUcO5yM9SUwuiM=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C3
+PeerKey=KAS-ECC-CDH_P-521_C3-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00fbbcd0b8d05331fef6086f22a6cce4d35724ab7a2f49dd8458d0bfd57a0b8b70f246c17c4468c076874b0dff7a0336823b19e98bf1cec05e4beffb0591f97713c6
+
+PrivateKey=KAS-ECC-CDH_P-521_C4
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIByKrpS7ELjKT3vld7
+T7MrsjgQMsSULCT8LXU+fMXke0gzidnzuVbSDukAGx7vnyNUX3LFYCFABGg56WMx
+PD3syGShgYkDgYYABAEGoU4u6P+XCqirDHm5ejO7opWOBwt1uUc2t3u+P3dzJPpS
+hydxqoimOp6EkMM3jfTcdgzRTWK+cAd53RpDd5Q2VgAjZs45QeCyhLGqgSFdDTuX
+ePziPIzR5O1voKv2IVbJHUs+tVmZw0cb7SdenmDlqp1pDTEL+xXJxbvW9enrOWgr
+dA==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C4-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBBqFOLuj/lwqoqwx5uXozu6KVjgcL
+dblHNrd7vj93cyT6UocncaqIpjqehJDDN4303HYM0U1ivnAHed0aQ3eUNlYAI2bO
+OUHgsoSxqoEhXQ07l3j84jyM0eTtb6Cr9iFWyR1LPrVZmcNHG+0nXp5g5aqdaQ0x
+C/sVycW71vXp6zloK3Q=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C4:KAS-ECC-CDH_P-521_C4-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C4-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAmNmd7ggWVQ6E2/ztfogTf93PWBpy
+WkVQIRFf5J+Nw88jPNnqDm8DnceRnalzzc6sogXaOeC9mMgGJTbEfyWPRLUAzSJc
+h5c3G+DEKX0rRXdAEAx3QUHY8hTCO2GqK2zUgGubcHIqpJZftiL0K3OR4n5ewhxW
+ecWwa1kSc3KZfUIa3B4=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C4
+PeerKey=KAS-ECC-CDH_P-521_C4-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0145cfa38f25943516c96a5fd4bfebb2f645d10520117aa51971eff442808a23b4e23c187e639ff928c3725fbd1c0c2ad0d4aeb207bc1a6fb6cb6d467888dc044b3c
+
+PrivateKey=KAS-ECC-CDH_P-521_C5
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIAmwrxN8lpbHW35t97
+cxVrstRfSC5aQhcyT0eLEM63avCXJM+Gr6MW5/iZGNMdVIJKXDMQekg8FcFblu3G
+YTQLHA6hgYkDgYYABAB0jNu4ddNfS8y2Kr4g6C0y5MFNwv61uH2i0MyxHJttS3c3
+tsRvDftNiW4tuS/PU827ripATAur1WStet6sYnPvowGYSsq42PFzMj3gu2AnSyKI
+cWCTc7sioXKH6d7HSVhzq8CaiRW1TIRVyOAvZU9gLiOiu9ep67dPMAm9ZezGUIFM
+wA==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C5-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAdIzbuHXTX0vMtiq+IOgtMuTBTcL+
+tbh9otDMsRybbUt3N7bEbw37TYluLbkvz1PNu64qQEwLq9VkrXrerGJz76MBmErK
+uNjxczI94LtgJ0siiHFgk3O7IqFyh+nex0lYc6vAmokVtUyEVcjgL2VPYC4jorvX
+qeu3TzAJvWXsxlCBTMA=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C5:KAS-ECC-CDH_P-521_C5-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C5-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAeuEVrarwQWkatrf7jJIfmdjtMtKD
+1nCE6Aua2cQMVs2YOJ+wqEnZ7PcmjCl7b5NAYRn0DjK1dz7SWiipqFxKdYgBoo4A
+Tjfurv4fTbtx8YeGlhQa86EKlpHE7ZNIchRkO3YfpLD77rJHz20/unpgaXU2rQP0
+m4Cp0csHlnNlSXfF+pQ=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C5
+PeerKey=KAS-ECC-CDH_P-521_C5-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=005c5721e96c273319fd60ecc46b5962f698e974b429f28fe6962f4ac656be2eb8674c4aafc037eab48ece612953b1e8d861016b6ad0c79805784c67f73ada96f351
+
+PrivateKey=KAS-ECC-CDH_P-521_C6
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIB5I+qzubeyD/83pRM
+9r30zkuucnR4iOuv7kVbHpFYSXHvtJEnl2pS9BQpUvfCB+wCZfK3GM8+rZbqT2LH
+UuT3rNOhgYkDgYYABAEOsbTZFyvMI/TyDMlWD8VJKMPzTqYcADkdx2bHbtn6YIRJ
+N30eT63RI2AlQXMwtLkQhnBKzj5OZITGBuKpQ0eMhgFJQThkBpgl7h0IKNqfSpdx
+MAXpvRrbw7OMW5RpAHIalg/patLBs6RP496RVhNtRMsXy8JBVym7eC4Wv+Leswae
+Qw==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C6-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBDrG02RcrzCP08gzJVg/FSSjD806m
+HAA5Hcdmx27Z+mCESTd9Hk+t0SNgJUFzMLS5EIZwSs4+TmSExgbiqUNHjIYBSUE4
+ZAaYJe4dCCjan0qXcTAF6b0a28OzjFuUaQByGpYP6WrSwbOkT+PekVYTbUTLF8vC
+QVcpu3guFr/i3rMGnkM=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C6:KAS-ECC-CDH_P-521_C6-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C6-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBJYgRXm9/e9z99X8DsWm0eXWLqv2v
+Vp0EE1mHss5hZMAqV2hetSdrXa5ildP+kGIPOLVTXG0iYMFz5h64iMqSAgMBVCwW
+nPl8JZb+Ld2EiiIuNnxffmJn68G82atdz0kVjxpI5K8pqJe35qggkcLbh02Oer8P
+WAZGkTRBVPOW267RiLY=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C6
+PeerKey=KAS-ECC-CDH_P-521_C6-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01736d9717429b4f412e903febe2f9e0fffd81355d6ce2c06ff3f66a3be15ceec6e65e308347593f00d7f33591da4043c30763d72749f72cdceebe825e4b34ecd570
+
+PrivateKey=KAS-ECC-CDH_P-521_C7
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIAwpqiI+qNZLSh7aJ/
+OdO8mOoBSN2Ywcvllfj9K/veEZyeAXpQ9dH8EhwIwc7zG3WIWVVus+DgQtjdaqrF
+egXKYeOhgYkDgYYABAAVEchI72DVQZqY0QIE2w/lgiQSQ3AGG8+k6SSdUGGMVr83
+IkcbJZ84Jju3soDSPK8qHuhzf5NxzbJzLNyVg2mTDAHUYWga5tjEm0xfTWAWFD+x
+vXSRVz4+0ObEi4LoIWRPh/gvDl8I/Rbx+Y+hdYYgCrAu2MYns1w/J2F+xf2S9FYg
+Pw==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C7-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAFRHISO9g1UGamNECBNsP5YIkEkNw
+BhvPpOkknVBhjFa/NyJHGyWfOCY7t7KA0jyvKh7oc3+Tcc2ycyzclYNpkwwB1GFo
+GubYxJtMX01gFhQ/sb10kVc+PtDmxIuC6CFkT4f4Lw5fCP0W8fmPoXWGIAqwLtjG
+J7NcPydhfsX9kvRWID8=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C7:KAS-ECC-CDH_P-521_C7-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C7-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBaUkdVb0JBJ/fTCpTpmBID+5MA6BT
+hnXRzQm1u6eNrEhUPvEYoRc7P7+LIOOc4Oa4kKFjxQ+WRbPSHRy7O2Cm//QAg0lL
+Lrp2kQ/tM8dhgEUVAR+rUOOzd6vYqKBF2IbSI40sJorBtuyIvXG3unjiwzwVLkv3
+2l1WXkrL7PXpLHrWYrs=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C7
+PeerKey=KAS-ECC-CDH_P-521_C7-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=018f2ae9476c771726a77780208dedfefa205488996b18fecc50bfd4c132753f5766b2cd744afa9918606de2e016effc63622e9029e76dc6e3f0c69f7aeced565c2c
+
+PrivateKey=KAS-ECC-CDH_P-521_C8
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIAKGkr4r9cS0iTmEb7
+PVvOdGVLsmRuFfg4niNwihr631YVEeoNmVfQtTRTgZ1g+6j2Whj3sp3wIbG7Ac0W
+MpOsw8yhgYkDgYYABAHP3BDHmfXHnLaTCmX7o1F0jgdWeZPl5BDvTKzEzYoleEmR
+60Z05BBQ+TDHGQrIErkkX0inlztlja9AiCL+W4X2aAGA2d38mvd7nEpvAqg02xXl
+NeCzhFsszjA4gwG1HOy+MnYwfvQ5tcnmpy3C2U2Hm8OVBS27SleH0G77KAIQ+4vg
+Nw==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C8-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBz9wQx5n1x5y2kwpl+6NRdI4HVnmT
+5eQQ70ysxM2KJXhJketGdOQQUPkwxxkKyBK5JF9Ip5c7ZY2vQIgi/luF9mgBgNnd
+/Jr3e5xKbwKoNNsV5TXgs4RbLM4wOIMBtRzsvjJ2MH70ObXJ5qctwtlNh5vDlQUt
+u0pXh9Bu+ygCEPuL4Dc=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C8:KAS-ECC-CDH_P-521_C8-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C8-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAhBX1u9Du44fWwJ0O+KyvKcZttF1r
+oQGGCuRdPGDh4OP3JHpGJqYP3UBJZcNWbHn2RJ6FbOC/lGGfl9qNokvSz7YA/dfF
+nFjDYbxQp6XQ029yOxfE8q0rA8JNQtxQ90qMRloK/EaD8Q+rhGUt/p6SjCYmtUVk
+U+FXP/YL4VB0Z9Qx+7I=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C8
+PeerKey=KAS-ECC-CDH_P-521_C8-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0105a346988b92ed8c7a25ce4d79d21bc86cfcc7f99c6cd19dbb4a39f48ab943b79e4f0647348da0b80bd864b85c6b8d92536d6aa544dc7537a00c858f8b66319e25
+
+PrivateKey=KAS-ECC-CDH_P-521_C9
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIBGU0e5hP1Nmy8RLUE
+0hoM9nFeIJzTWPLdXz5xzA1n0OlkFoxCoITr2nRvmGOoa6z/yBnx7fG4xyfM+zBH
+JApXxDWhgYkDgYYABAFr0VyKWNNm9/Ky8pjMh7dIXp7nDRHRJEi4N3wKgsdib2ev
+9/l756NUa/QX7u3fdak8EwGRyEEIBC6i/KF/0/gNFAFWBQLQS3T84XQ6q0d6nR6s
+k+UiaYH9uXp0eM5M5Wb/ckOTEoT62FCwwryuDd0tl3kBYMGi53w+1slezES4niY3
+/A==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C9-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBa9FciljTZvfysvKYzIe3SF6e5w0R
+0SRIuDd8CoLHYm9nr/f5e+ejVGv0F+7t33WpPBMBkchBCAQuovyhf9P4DRQBVgUC
+0Et0/OF0OqtHep0erJPlImmB/bl6dHjOTOVm/3JDkxKE+thQsMK8rg3dLZd5AWDB
+oud8PtbJXsxEuJ4mN/w=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C9:KAS-ECC-CDH_P-521_C9-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C9-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBxyHuqAWly6KfNLpXWHdb4M9hYObA
+hyP1qxe/lqH/K9lCeWGk80sH/AsUyksr9oRd69WoafEk6/p6py/lZQULfxgAtuie
+sOHc8YEjb3xUj9GowWsli1LBqb/T/o8ihBsmdjJl8HTEzPLWNK6XtwGVb2ehEAbF
+LZcZfZL1hfV0i8JnLus=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C9
+PeerKey=KAS-ECC-CDH_P-521_C9-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=004531b3d2c6cd12f21604c8610e6723dbf4daf80b5a459d6ba5814397d1c1f7a21d7c114be964e27376aaebe3a7bc3d6af7a7f8c7befb611afe487ff032921f750f
+
+PrivateKey=KAS-ECC-CDH_P-521_C10
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIB/ZDj5BbpiqPytq+n
+8782jkUa2cpb1UtbFK7i7Wcj3eUYH1CFtoFpsJ++xyE3LM9rKEcT+aY1a41WCo/3
+jKNzfIihgYkDgYYABAHr6hsQ0+O5cbfvtp/IeN4Rx/Ry5OTThMMbjWKI2AcVF6yt
+6bOXlsevUWO89xrtp3dTPzgsbPCk2bu5OMhfRLeANwFrDj4ZwplrLL0f9kcw58qQ
+7coZhPmylRMzU15XSLqjSpn2H/TV+BIHng8B6HeJ8079rYCYAV7nSk+EbdGQ0W3G
+4Q==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C10-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQB6+obENPjuXG377afyHjeEcf0cuTk
+04TDG41iiNgHFResremzl5bHr1FjvPca7ad3Uz84LGzwpNm7uTjIX0S3gDcBaw4+
+GcKZayy9H/ZHMOfKkO3KGYT5spUTM1NeV0i6o0qZ9h/01fgSB54PAeh3ifNO/a2A
+mAFe50pPhG3RkNFtxuE=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C10:KAS-ECC-CDH_P-521_C10-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C10-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBw1gj5ECpNjq5jZ/Hp7wMBTLceXen
+kWVZm/GpzGTAD7OHtCzKNlKG6EMDYL+tNkO8MTVO2lDck2wyns22CQXED8sA2ef0
+M1MeRN9PbVFCAcuquwa63WeD4BERcm2BVTHSM8XNtyKJP/uyAnJZ1ZTed0OICXOB
+IMb3g5NPkmw/tptAxAk=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C10
+PeerKey=KAS-ECC-CDH_P-521_C10-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0100c8935969077bae0ba89ef0df8161d975ec5870ac811ae7e65ca5394efba4f0633d41bf79ea5e5b9496bbd7aae000b0594baa82ef8f244e6984ae87ae1ed124b7
+
+PrivateKey=KAS-ECC-CDH_P-521_C11
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIAkBLs/a3IXO1jCv6l
+NM3I6dGri+XzdT3PXysJtA7aZvxoWFSbw25vjfVZmM+poHA67PbEJ5nCRQEQZPUw
+wJ25g2mhgYkDgYYABAAjTjK+CpBxMdLRKKZHfgys64bwJHl0Xg/iRcszLeYxwHiH
+EWBILu71hOJ033+kEs6j4ekfcey6h4HZIF1IOGNBrQHPhkVbCbHABc/7qNdiiaN1
+lijIdL7qRi9R8wvVgeOAMTQwfe27dxszNO4Vvi4kLNecNAfS9Yk1RWxpQd2bbRVa
+Rg==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C11-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAI04yvgqQcTHS0SimR34MrOuG8CR5
+dF4P4kXLMy3mMcB4hxFgSC7u9YTidN9/pBLOo+HpH3HsuoeB2SBdSDhjQa0Bz4ZF
+WwmxwAXP+6jXYomjdZYoyHS+6kYvUfML1YHjgDE0MH3tu3cbMzTuFb4uJCzXnDQH
+0vWJNUVsaUHdm20VWkY=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C11:KAS-ECC-CDH_P-521_C11-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C11-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQACTBX+4YvKtLoLlgbrrMyTnsylG8r
+qEWpvu7YfWmV9UkY7GYZuZMZVdWonU10rfEEa7NiGS8u9r0+PS0E3R+HBUoAqj+y
+RIM19pTjzaSuDMcbGy8qIG+oAtcmLxmYPERnT+FTJ6yqwfpAQkw5WmVWy4FnMSUn
++uWGXs/8FLvcF9p4zc8=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C11
+PeerKey=KAS-ECC-CDH_P-521_C11-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=017f36af19303841d13a389d95ec0b801c7f9a679a823146c75c17bc44256e9ad422a4f8b31f14647b2c7d317b933f7c2946c4b8abd1d56d620fab1b5ff1a3adc71f
+
+PrivateKey=KAS-ECC-CDH_P-521_C12
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIBtf+Ef47/ILiM+tQs
+BuWMN0Ly+PH9/WS1ObpIwlkmkmvV4zK0VknAsYT3clXp1Y/or6Gm2Wjiyx1GN3dx
+IMdlwSihgYkDgYYABAHePckmO8jElp3GhL4O7FS+/ZqfPboZTYZYp4k0G/DXjYTa
+ZzUifK+vCTUZUWkRl1c8jDYKEeUoVxK4u99ayRuXfACBLeWM0JXsLlqbJH6z7UHY
+vvaurOGUp6BbZapdKJ+8mxdw7IS7a+DCxkzDfB1Up/XXE3eprb4g8m9vK1RKgh6o
+MQ==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C12-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQB3j3JJjvIxJadxoS+DuxUvv2anz26
+GU2GWKeJNBvw142E2mc1Inyvrwk1GVFpEZdXPIw2ChHlKFcSuLvfWskbl3wAgS3l
+jNCV7C5amyR+s+1B2L72rqzhlKegW2WqXSifvJsXcOyEu2vgwsZMw3wdVKf11xN3
+qa2+IPJvbytUSoIeqDE=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C12:KAS-ECC-CDH_P-521_C12-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C12-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAgxku0LHLMfdYF3lJN/Zq2Rz3RVLN
+UQztuf1kExBCKvXQnyIcrSSe6BTRbdeshN7Z6s3Cg0D8/JwMBqvjCi/CjNgAIhLt
+hoyboPsskeLDm6k5lqPk6/RfKFLQkoxIkw6HXMe0KNDn8/TVA+XWDGjLSbE8JIDN
+SGvtkgDK3a3f5P+ONWI=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C12
+PeerKey=KAS-ECC-CDH_P-521_C12-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00062f9fc29ae1a68b2ee0dcf956cbd38c88ae5f645eaa546b00ebe87a7260bf724be20d34b9d02076655c933d056b21e304c24ddb1dedf1dd76de611fc4a2340336
+
+PrivateKey=KAS-ECC-CDH_P-521_C13
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIBGmNH1OgByRkjSINU
+zFM+fjX934H/D7f1a7Bybgwp7l3NxfOUulTPVyaQSKq24FWJXI2iS4sGOadCMUOQ
+zAQZDtahgYkDgYYABAD+MCZ/M7pc3vwly7PJMg2tnMsdfTdmRGIMpPre5WJqPO3i
+WtJUYk3vcnpwSPcUX3YWKqmAQvmxI7IHb46M9Zs/3wARRdxmMZU7bilF6UMB1suw
+mP5LBPfumwlBHfEE3ILX157EagHtDy0+fbbraAaUvesQfBB4rsbKvZ6+49NC/n5U
+3w==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C13-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQA/jAmfzO6XN78JcuzyTINrZzLHX03
+ZkRiDKT63uViajzt4lrSVGJN73J6cEj3FF92FiqpgEL5sSOyB2+OjPWbP98AEUXc
+ZjGVO24pRelDAdbLsJj+SwT37psJQR3xBNyC19eexGoB7Q8tPn2262gGlL3rEHwQ
+eK7Gyr2evuPTQv5+VN8=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C13:KAS-ECC-CDH_P-521_C13-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C13-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBqJtjapPl0rpsIpK/IwM6hPBqOsEi
+DqcegGr74JeoBMxn6bqlFM+2wSyRlL4wISv3quf99tN2whLwVU5lZGP/q34Bgu/K
+9w/EEtM2YC4BTaRyVqC2BvKt3M6AU7+Beshla7TkLxTIy/Kmj0iKs13N9kBWJx3u
+H2BqRAukvU5aEbi45U8=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C13
+PeerKey=KAS-ECC-CDH_P-521_C13-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0128ab09bfec5406799e610f772ba17e892249fa8e0e7b18a04b9197034b250b48294f1867fb9641518f92766066a07a8b917b0e76879e1011e51ccbd9f540c54d4f
+
+PrivateKey=KAS-ECC-CDH_P-521_C14
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIAIrbSoi1x36qBHS2f
+nzH77Sfy4fPSOVON3z5MyMOaMwJm2yW3vAqXBPF73n81kr9fHy1LVgE6rMPY0bwC
+8A0xRsyhgYkDgYYABAC6OM+/n9JRij9h1DVJ56am0osr5X/9Pg+s62NrNO0X4ESp
+8kna6PwTLpN+LZNJzS7Xe7EEnOtpKi7FsXrWFQKmTAAeyR0wWFc/psBWSgKhoBAW
+DDE7x8c1ENyYPlRhaCtb4A285+LGgq1z8pyoIs3BEfaPq+M6ezhKZINCw8258FC8
+2w==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C14-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAujjPv5/SUYo/YdQ1SeemptKLK+V/
+/T4PrOtjazTtF+BEqfJJ2uj8Ey6Tfi2TSc0u13uxBJzraSouxbF61hUCpkwAHskd
+MFhXP6bAVkoCoaAQFgwxO8fHNRDcmD5UYWgrW+ANvOfixoKtc/KcqCLNwRH2j6vj
+Ons4SmSDQsPNufBQvNs=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C14:KAS-ECC-CDH_P-521_C14-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C14-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBcgCz8Wpoy67Sv3i6jN37bP+sJiu6
+APvCX53HKgfOWTcpBImfNkxEyyZMCXtkfUQSvuPlGYktU02RKfiij3UA/ucAurqN
+ZypPSjtj3ki5b1bhjfXWj31w1RCYM/Q3cNZzLgazmtYNk+W0Pbh4nx7Aq6RyhqOe
+pYQjWs6nV9vxPVO1g2Q=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C14
+PeerKey=KAS-ECC-CDH_P-521_C14-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0101e462e9d9159968f6440e956f11dcf2227ae4aea81667122b6af9239a291eb5d6cf5a4087f358525fcacfa46bb2db01a75af1ba519b2d31da33eda87a9d565748
+
+PrivateKey=KAS-ECC-CDH_P-521_C15
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIAW6z/8mis9lU8PFg7
+Rk6jah014rJXpdSes0GdWglQh8L7TRXPW/WvgW0PP/dYZJDM093BqYs5zmN0nGKI
+zg29rH2hgYkDgYYABAA25IjadYFHKp2OYoxY1q1ycxG35qP2rjOoVE80sJKAJJAg
+vnGWkW+v2Q4uxUtmtUaNI2G5m1b6ANesN6u4xvFmUwEe25+4rbakP09fX9wUIcn+
+BPyLpGybZjNOOvknyL77QwcQTymazsTjD4Etk0XJcg0Zhp2//9TKPn0nE+tfw/Qm
+FQ==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C15-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQANuSI2nWBRyqdjmKMWNatcnMRt+aj
+9q4zqFRPNLCSgCSQIL5xlpFvr9kOLsVLZrVGjSNhuZtW+gDXrDeruMbxZlMBHtuf
+uK22pD9PX1/cFCHJ/gT8i6Rsm2YzTjr5J8i++0MHEE8pms7E4w+BLZNFyXINGYad
+v//Uyj59JxPrX8P0JhU=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C15:KAS-ECC-CDH_P-521_C15-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C15-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQATv1dvS+Xnjgxzpj4I1XWyhSldXhC
+h1iCmQq4Wrm3NS3WubL06poelcOIDWXR82AvnKZT3DRvrIWGWNdWJvTU+wgAYc8V
+29qn8xWJyYQANz2ihFBtcMifB07SYqnigUB5a3I2wu75kBYIXnFVL/SIxytzOf77
+eRXDhFnLIKuFrsTkUFI=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C15
+PeerKey=KAS-ECC-CDH_P-521_C15-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0141d6a4b719ab67eaf04a92c0a41e2dda78f4354fb90bdc35202cc7699b9b04d49616f82255debf7bbec045ae58f982a66905fcfae69d689785e38c868eb4a27e7b
+
+PrivateKey=KAS-ECC-CDH_P-521_C16
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIAjiyTxUI4diI6Y3yt
+NnyFidppotD8aGEvMZI65QIZ3yRS58ySYVtn8XtX/9L1KxkVS7QNdxUzZCD94uif
+7iRPWdyhgYkDgYYABAD6OzURjWxCJXD3JKJvkLKDOxkjkXTOoIHFMTP2TbYNaUDq
+EmEpnATB9Fh82wxMOWFkecG7DBRnmaEYAy3PmPiZwABp8EAikAYVH6MrUfZ5yIFv
+fBdQa0A4Cdx3zViirsQw2U0TtskW3pnzVapF/PvGhT1obHG+SWoGfSS/rqSBj8Uf
+dQ==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C16-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQA+js1EY1sQiVw9ySib5CygzsZI5F0
+zqCBxTEz9k22DWlA6hJhKZwEwfRYfNsMTDlhZHnBuwwUZ5mhGAMtz5j4mcAAafBA
+IpAGFR+jK1H2eciBb3wXUGtAOAncd81Yoq7EMNlNE7bJFt6Z81WqRfz7xoU9aGxx
+vklqBn0kv66kgY/FH3U=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C16:KAS-ECC-CDH_P-521_C16-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C16-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBKYkd4M88+C6MLPG/kLspb+AKsIyk
+W7eJLg4ielBP3QXSOBpESLaK3/nEFTyH6st4Mw2L1SUV+fmgtY6F9Ea7ThAAnt1n
+lpbT0dDvMn8gA4MlP2QTaD2eT8yHuzXxEsLxEAmNFeVwHXzu5BYpH/X+2F5of3Jz
+iLmv4mpPb+7VYLIY5rs=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C16
+PeerKey=KAS-ECC-CDH_P-521_C16-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00345e26e0abb1aac12b75f3a9cf41efe1c336396dffa4a067a4c2cfeb878c68b2b045faa4e5b4e6fa4678f5b603c351903b14bf9a6a70c439257199a640890b61d1
+
+PrivateKey=KAS-ECC-CDH_P-521_C17
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIABNSdOdQNgRG/FtKM
+WTZVQyaxlzU+67z0dUU5O8jTqvmPFPW+cHS/s45syXuYl1QHTa3bMEX05M50Vmn9
+s+wNX6ihgYkDgYYABAEuwibQUM4Hx5s99NDwiR+fet9GLoyY28GioU9eU6P1rYlE
+M1h8xCmovp6h2E+jOxgDaQ2uBNpyGNMAJhV/yZXPUgBIN9+/NCb1e1x5MmkTCrua
+OPYYUyIRkxFU207rmu3ojlcpD4QuoPLqml90xiA6OSD+TjBfYRj2drFU4ddbnLXr
+iA==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C17-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBLsIm0FDOB8ebPfTQ8Ikfn3rfRi6M
+mNvBoqFPXlOj9a2JRDNYfMQpqL6eodhPozsYA2kNrgTachjTACYVf8mVz1IASDff
+vzQm9XtceTJpEwq7mjj2GFMiEZMRVNtO65rt6I5XKQ+ELqDy6ppfdMYgOjkg/k4w
+X2EY9naxVOHXW5y164g=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C17:KAS-ECC-CDH_P-521_C17-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C17-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBo8ICQOWfW3o+F8J10jFLoXQSEK1Y
+txA2+Mg8wfaw9Anf3ZET6Utn7DnDKRQmwj/8xEcFRnDSkI/4/mfcIwYDTFwB0oJb
+/Tr4seEyBXgME3/pOPhP3kAYjmHqAs6tgbrf20JcKffX+wMk3rrcELu5PeaPYsNQ
+aSaCg/UmWGXbV6efe/c=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C17
+PeerKey=KAS-ECC-CDH_P-521_C17-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=006fe9de6fb8e672e7fd150fdc5e617fabb0d43906354ccfd224757c7276f7a1010091b17ed072074f8d10a5ec971eb35a5cb7076603b7bc38d432cbc059f80f9488
+
+PrivateKey=KAS-ECC-CDH_P-521_C18
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIBGl0cx5zSv3PqEG8O
+YKWs4iCBO1Pie3OYZDNKB8AzZ+/aekYZ+m7vOpdGSSKDs8RFYQoCOpzEm/RZEUA4
+T8pci7WhgYkDgYYABADrB8czLu230wNgWdNffSKI1Dd9X0IzetOWQHn7EgzNTIvT
+hLWFYhBVIXAjrNmpT8s7llv7OUZ154it5Bod5z5iDABJGoNd4ubn3rfgkPShHyxG
+DAsfPV6U7o11EBTccgeE/TtUUAyG667xhCnwno6HbV0VOJaKAw13Fd3pnw2PBuKd
+WQ==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C18-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQA6wfHMy7tt9MDYFnTX30iiNQ3fV9C
+M3rTlkB5+xIMzUyL04S1hWIQVSFwI6zZqU/LO5Zb+zlGdeeIreQaHec+YgwASRqD
+XeLm59634JD0oR8sRgwLHz1elO6NdRAU3HIHhP07VFAMhuuu8YQp8J6Oh21dFTiW
+igMNdxXd6Z8NjwbinVk=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C18:KAS-ECC-CDH_P-521_C18-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C18-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAfi0Tjygy40Wuj/ZZV+QOXscWPwFr
+320koiQ9qmMdh4pKFng5kMciOCEw+eUfDBvW/1rJZ4Dki2j13slfQuYUS7UAsN5c
+iWeR9SiGsPCZE+JueN0LaXmPxN9tlePKcI7Ly8zhwYlfVWG7q6rjcunmfm4aO+YO
+GbRwzfZz7B/Dk9NCbiA=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C18
+PeerKey=KAS-ECC-CDH_P-521_C18-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01e4e759ecedce1013baf73e6fcc0b92451d03bdd50489b78871c333114990c9ba6a9b2fc7b1a2d9a1794c1b60d9279af6f146f0bbfb0683140403bfa4ccdb524a29
+
+PrivateKey=KAS-ECC-CDH_P-521_C19
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIBDJCMrxvnTGFrYl/I
+wfUURGpq7IO1k3FB1q+7Cox2Zqd0b6H3pmZKISPozfbNi/g2xW08Dr3MmA5DoYb5
+OPOniuehgYkDgYYABAAxiQ9Mer7D9yM2IoXXfSY2+HaBfbO7yIsB53NZe5af9vAT
+6kcMhUq0p3OQBOuMvqabgt3zasrdQGhxeY7LKsOqfwDYtCmuMlAma5ZDwMdlpg3B
+AVW8JTHPhicpb0l4tmQKnmAOGdADfVhQP6gHmVRqgU10eKVQqpDl6+sFJSf6rq5d
+CA==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C19-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAMYkPTHq+w/cjNiKF130mNvh2gX2z
+u8iLAedzWXuWn/bwE+pHDIVKtKdzkATrjL6mm4Ld82rK3UBocXmOyyrDqn8A2LQp
+rjJQJmuWQ8DHZaYNwQFVvCUxz4YnKW9JeLZkCp5gDhnQA31YUD+oB5lUaoFNdHil
+UKqQ5evrBSUn+q6uXQg=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C19:KAS-ECC-CDH_P-521_C19-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C19-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAEYw2AiIJsa+OutGhK1ZvxIdEV24R
+mf6A3hzfhRzfA+W5CRqPfgeeg7f4JyWbaR0MIu4p1r33Pse7/XRvLNl6NX0A2l/0
+kEVIo0Li57pqH07l+EBBGpbPY+b+Yi8iwT5hTgqEfBGhqz8dEsyFDDLglWFMqPfi
+chR3tIbp/0A3KXfD9lw=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C19
+PeerKey=KAS-ECC-CDH_P-521_C19-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0163c9191d651039a5fe985a0eea1eba018a40ab1937fcd2b61220820ee8f2302e9799f6edfc3f5174f369d672d377ea8954a8d0c8b851e81a56fda95212a6578f0e
+
+PrivateKey=KAS-ECC-CDH_P-521_C20
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIBs31rcojeZxNgQl0+
+WsHMshgVB52Nc0Mem3Sm8OeuAEo1dXWxGtZmQs6Ld1WT66nZi/Jcde8LTTogmLvG
+QfWaK3ehgYkDgYYABAAYml7jTefjWu/q7vkiDBgHG0wppMO9nZVEWL0+gqejTaNM
+/1V5uBAcBlsfL1J89FgVAeKO9WcYc+ZSZ3M9ADUgrwHrS8UKe01Fmdfj+nc9256y
+UsmzQihy5US991x79g9RZt3BHrCPp8MIItq67jc6tGjrLZIuSE4qUn//LruAS32a
+Nw==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C20-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAGJpe403n41rv6u75IgwYBxtMKaTD
+vZ2VRFi9PoKno02jTP9VebgQHAZbHy9SfPRYFQHijvVnGHPmUmdzPQA1IK8B60vF
+CntNRZnX4/p3PdueslLJs0IocuVEvfdce/YPUWbdwR6wj6fDCCLauu43OrRo6y2S
+LkhOKlJ//y67gEt9mjc=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C20:KAS-ECC-CDH_P-521_C20-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C20-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBeA7f8cocA8++WT7cbASbyyhgKUqS
+w1VInZr7LnAgda3hyVOJWkViMKDN6QXeSj84Vz2/zM1nrW5+k/C1WB6Sal0ApUgZ
+YskWKWLn8OveyTaTXQ6qgT6CJtQNf2EZv9lAYCOAyGch5h2xgw9R4TnyEAALzsDY
+7dOeVNc6mhKflc1fqXk=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C20
+PeerKey=KAS-ECC-CDH_P-521_C20-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=015d613e267a36342e0d125cdad643d80d97ed0600afb9e6b9545c9e64a98cc6da7c5aaa3a8da0bdd9dd3b97e9788218a80abafc106ef065c8f1c4e1119ef58d298b
+
+PrivateKey=KAS-ECC-CDH_P-521_C21
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIA8mYax2L2DF//I75d
+lpzNTsb5jk5yYY0Svc25tBAhYjM3iMC65Z+RzfwXLHoWge5E2WqyE1puXzQV67zV
+UWWxr7ChgYkDgYYABACo4lppAtaHtHh83JTDZKx87MXElUg+02PcCqle4r1znExN
+RrFwBscosHY1DX1+VMaCL1L0cWKiUQmqq6aQyraW7AFo0vCP4Z5Nye56GVsDyff+
+Znb59SC2JwVXUE5yykOUosaRhiXhWsDFG4+VzVYBI2U/uOjubblh4sTGLMVOkuKi
+qQ==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C21-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAqOJaaQLWh7R4fNyUw2SsfOzFxJVI
+PtNj3AqpXuK9c5xMTUaxcAbHKLB2NQ19flTGgi9S9HFiolEJqqumkMq2luwBaNLw
+j+GeTcnuehlbA8n3/mZ2+fUgticFV1BOcspDlKLGkYYl4VrAxRuPlc1WASNlP7jo
+7m25YeLExizFTpLioqk=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C21:KAS-ECC-CDH_P-521_C21-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C21-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBbaz/oYPlMDCDozT3Zd5yTsXslAIC
+bUeXiEqYKKDTIajPrHSrc3/iCn1r78/HO2o1wcewHTc+MavBktSKQkGjWAMBHlMn
+ysItMF5xVuVZF24Zvufk8vWehvGp0LZgO2p98Qab3mOH/rcVh7j/zlsmbhuuht4p
+N4o05cdLZyTE1ApxmSM=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C21
+PeerKey=KAS-ECC-CDH_P-521_C21-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=014d6082a3b5ced1ab8ca265a8106f302146c4acb8c30bb14a4c991e3c82a9731288bdb91e0e85bda313912d06384fc44f2153fb13506fa9cf43c9aab5750988c943
+
+PrivateKey=KAS-ECC-CDH_P-521_C22
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIA9DDKEmHwloGpKC6e
+lwqSNCJ7HV5Y1VjDzG7/RNG99T3hatXuKxi5LWL8eVhhFrDvwV95NA+36vXObEQ0
+Hc+N3iehgYkDgYYABABsHZteyofeH7hxoKMvgHxyWtzN6bOWdFOnE0fWCPDAMM0J
+4zjN7L9KAgFbyKbo0+JZX+dz/8L8TkpV0LGizAAyOwEUGyEJ5/SYHJUqqBiiufb1
+xB/szbenpFubS2cpN3cbAIyuX5NN/j/tENODqx84dpySzojZvlQUgX7LBzoxqzaM
+yw==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C22-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAbB2bXsqH3h+4caCjL4B8clrczemz
+lnRTpxNH1gjwwDDNCeM4zey/SgIBW8im6NPiWV/nc//C/E5KVdCxoswAMjsBFBsh
+Cef0mByVKqgYorn29cQf7M23p6Rbm0tnKTd3GwCMrl+TTf4/7RDTg6sfOHacks6I
+2b5UFIF+ywc6Mas2jMs=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C22:KAS-ECC-CDH_P-521_C22-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C22-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAoJFCHTcD47NB6fHn1Y+M9729F5jQ
+AZZ7gB0c7CfmBcWAsjh8HLRk9VznrIAzQQKrA8+4bYivdsn0EpwBvt07v8QAjJxX
+eo5vxEaBXp1AuqZgJfFdrihfGetmjuYK6cmOfs2/Kypo4ikoBZ9n2xiABxYdPs85
+fgiD8MTrfq94J6YiBcw=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C22
+PeerKey=KAS-ECC-CDH_P-521_C22-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0020c00747cb8d492fd497e0fec54644bf027d418ab686381f109712a99cabe328b9743d2225836f9ad66e5d7fed1de247e0da92f60d5b31f9e47672e57f710598f4
+
+PrivateKey=KAS-ECC-CDH_P-521_C23
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIAXcM67aA8LrIzAU7k
+aN/3U7cvc7AJkQQ+o1OCiuadTND63tp7sni1NdfFdAb/Lm5HOlpP+Y6Q+Q1trdJR
+AOjYVmahgYkDgYYABADIJbowc3POyN0kmO74LiH9mGIWjb/rg1k5gMqfgodTM4mf
+6U8Tfa8cQYnrUCk3w6Nn6nlR7YsPM3f83ykiAh1GpQFriiVA1eZUk4iLwzcknmfA
+pod08+jYHjtFdKASUWXwvVi4r53nSzWDJTn5XDzZ8bdZQIVgqmhRrjrHVVNHsNOx
+Ow==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C23-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAyCW6MHNzzsjdJJju+C4h/ZhiFo2/
+64NZOYDKn4KHUzOJn+lPE32vHEGJ61ApN8OjZ+p5Ue2LDzN3/N8pIgIdRqUBa4ol
+QNXmVJOIi8M3JJ5nwKaHdPPo2B47RXSgElFl8L1YuK+d50s1gyU5+Vw82fG3WUCF
+YKpoUa46x1VTR7DTsTs=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C23:KAS-ECC-CDH_P-521_C23-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C23-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQATziBZoF3EonODLg6Ximhqwb8kfeG
+mUsjcI/wigig9nW4Ca6Z6fmWfrGknxlgV9aeUNbe203S2agcAr3Mj39RhGAAnvsk
+TIuRCH3h7tdmUA8OgVMHUtRpJW73n2uWXYoiMqDC28To4dCSFLqzhIW+bjV8QgDQ
+c7UvBOShb8b1JHGHrss=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C23
+PeerKey=KAS-ECC-CDH_P-521_C23-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00c2bfafcd7fbd3e2fd1c750fdea61e70bd4787a7e68468c574ee99ebc47eedef064e8944a73bcb7913dbab5d93dca660d216c553622362794f7a2acc71022bdb16f
+
+PrivateKey=KAS-ECC-CDH_P-521_C24
+-----BEGIN PRIVATE KEY-----
+MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIA3xSx8UMqew+wU5Zf
+2GQ6/uJrJFHstqilOmVdX74W5MZM6GRyJesR5/3LI2J0cd/8XCUjvSromVfLo6V6
+I5M+WnihgYkDgYYABABOhYO7uy7Nk/BxTDMt/1qzvGOW5i88VgIpZkMpuqUTjDux
+w2Qoq9TiPRf8t6LPzCJLLnNMiUH28SFyLXtrlBVFdgHPCHTyBLA2PwIIZGcvrb+H
+yIEesUd1iyVLdLFPrnQhWfD2caAYISu/JbhRnhJtTK13jP/1DSiP05zrDKxjWxde
+wA==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_P-521_C24-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAToWDu7suzZPwcUwzLf9as7xjluYv
+PFYCKWZDKbqlE4w7scNkKKvU4j0X/Leiz8wiSy5zTIlB9vEhci17a5QVRXYBzwh0
+8gSwNj8CCGRnL62/h8iBHrFHdYslS3SxT650IVnw9nGgGCErvyW4UZ4SbUytd4z/
+9Q0oj9Oc6wysY1sXXsA=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_P-521_C24:KAS-ECC-CDH_P-521_C24-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_P-521_C24-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBoyCZsCwL2FNx9gsN0giQ5sevBIyB
+eYkP2jCLNZ27wreoMruMZSbEr5mn6j8LPLlq4et2hBMnlcR4rW+WLkpvRG0Bdic1
+eznp12MqE3Cz6Twa+1yFG5EOtOrQydOH32fN6FAD4OQnVS8c0JBZqtAmLiNczl+6
+jO3E/cFGPadtzUttGkY=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_P-521_C24
+PeerKey=KAS-ECC-CDH_P-521_C24-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01aaf24e5d47e4080c18c55ea35581cd8da30f1a079565045d2008d51b12d0abb4411cda7a0785b15d149ed301a3697062f42da237aa7f07e0af3fd00eb1800d9c41
+
+PrivateKey=KAS-ECC-CDH_K-163_C0
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUAZlO2B3OY+tx79eYBWBcB
+SMPcRSehLgMsAAQHH4sod9YCfZwa3kJE8t6hJpLvI9UFwV7ndiIccrhLNHzjg/OA
+Z7icPpo=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C0-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBx+LKHfWAn2cGt5CRPLeoSaS7yPVBcFe
+53YiHHK4SzR844PzgGe4nD6a
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C0:KAS-ECC-CDH_K-163_C0-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C0-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBXQjbxQoxDITCUZ4Ols6q7bCfqXWB5CM
+JRuNoCHLrCgfEj969PrFs9u4
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C0
+PeerKey=KAS-ECC-CDH_K-163_C0-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=04325bff38f1b0c83c27f554a6c972a80f14bc23bc
+
+PrivateKey=KAS-ECC-CDH_K-163_C1
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUDrvRHVNDKl9QrTpeqkhVi
+Y8DgePahLgMsAAQBsBCMeGv000DwUFvfx9RbUUYRrZQCLJw51fuUVriiIhzqTwWP
+ao0s2Eo=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C1-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEAbAQjHhr9NNA8FBb38fUW1FGEa2UAiyc
+OdX7lFa4oiIc6k8Fj2qNLNhK
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C1:KAS-ECC-CDH_K-163_C1-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C1-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEAWmXRAkv4rX+fsv2mHt66goG/SywA13k
+Qd+UCNkfDgId+PBSa4BjAxSV
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C1
+PeerKey=KAS-ECC-CDH_K-163_C1-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=05f9ac3a3dd88429600958386c55bef4b1aa5f0c24
+
+PrivateKey=KAS-ECC-CDH_K-163_C2
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUDEXI0Lm03zB4GKkSUw5y6
+SPmtmoyhLgMsAAQDon7K7Ctm/qwgQPaJASi9AFjTGSQBQAfjIJttcSew85Pl5YsV
+kLn0C+I=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C2-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEA6J+yuwrZv6sIED2iQEovQBY0xkkAUAH
+4yCbbXEnsPOT5eWLFZC59Avi
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C2:KAS-ECC-CDH_K-163_C2-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C2-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEApZdsVkXH1y356G8xhYRrqyoxSybBocd
+Hpwf6EUmgHaplYA6bUnNB1VU
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C2
+PeerKey=KAS-ECC-CDH_K-163_C2-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=022e0290eda5d348894129f7455d1c766d32d5c2c2
+
+PrivateKey=KAS-ECC-CDH_K-163_C3
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUDKlEc3NS/xWfOrIwk7QTo
+iU33jd+hLgMsAAQGl42sqkfY87yQtB7H9Piseaht3QcH+LDvQnB2A3a8LV+u2D2n
+hyYx0J8=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C3-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBpeNrKpH2PO8kLQex/T4rHmobd0HB/iw
+70JwdgN2vC1frtg9p4cmMdCf
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C3:KAS-ECC-CDH_K-163_C3-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C3-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBVtowMLCRv4PLNVIS1iBTGUhPqVBBTnB
+HSWSovY5O26GxU35Cblf4NWo
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C3
+PeerKey=KAS-ECC-CDH_K-163_C3-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=037f659f430009fcdae4e9f6e6316b0f5dbb268212
+
+PrivateKey=KAS-ECC-CDH_K-163_C4
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUCxvZP5gnrjutbU/q2MIiY
+5j/y4/ahLgMsAAQFSeGoLsKEv3fVKGJ+Utgy4jbJKtMBmIOqm0WLNb1UTWiCgSFQ
+wUl9MdQ=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C4-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBUnhqC7ChL931ShiflLYMuI2ySrTAZiD
+qptFizW9VE1ogoEhUMFJfTHU
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C4:KAS-ECC-CDH_K-163_C4-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C4-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBrjvWmLTtjalp2v+se+P9Niz2eL8BnWn
+VyZnGDmNivZtKXF5hHji830o
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C4
+PeerKey=KAS-ECC-CDH_K-163_C4-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00503bbb9b62f50ae7a8dfd74a1741826f09290651
+
+PrivateKey=KAS-ECC-CDH_K-163_C5
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUCalaGdRPd2MqU15I7qh9/
+sA2qOPqhLgMsAAQGwopA3E5VA9LEuKsLa3BG6OJawJ8BIZEWVKWDYAXYA22XZYX/
+HYMeWHs=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C5-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBsKKQNxOVQPSxLirC2twRujiWsCfASGR
+FlSlg2AF2ANtl2WF/x2DHlh7
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C5:KAS-ECC-CDH_K-163_C5-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C5-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBWxKNYassDCZ1Sss1KxZJpz1G4cwAkJl
+YcvZ2hsjpgA94OX3xKBlpcK4
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C5
+PeerKey=KAS-ECC-CDH_K-163_C5-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=012cf17799fdefa2940b18d56e80d44414c5b13884
+
+PrivateKey=KAS-ECC-CDH_K-163_C6
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUDhoEQecgCHC159N6VLLLl
+mcQuGe2hLgMsAAQGCqQqYuIe6jfjYrTT3oN/DEnTrBMGmyDW/RbROxiD3wVimsfR
+uCOGs0Q=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C6-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBgqkKmLiHuo342K0096DfwxJ06wTBpsg
+1v0W0TsYg98FYprH0bgjhrNE
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C6:KAS-ECC-CDH_K-163_C6-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C6-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEB0HGmk7bOGyU+BnRtd3QKB5P8pdlANMv
+lyq6yRvoWnCeugf10WIVrmAt
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C6
+PeerKey=KAS-ECC-CDH_K-163_C6-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=062a2f926ab435ac14e05d44c27b46b6820b713aee
+
+PrivateKey=KAS-ECC-CDH_K-163_C7
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUA5G6cllJoZH8gSEdMexpU
+3/5yjx+hLgMsAAQHqYTq1EAxDO8uEziXL/Ld22XKw9IDM8GpNCf+asUCdgt3eImK
+i7akCtk=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C7-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEB6mE6tRAMQzvLhM4ly/y3dtlysPSAzPB
+qTQn/mrFAnYLd3iJiou2pArZ
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C7:KAS-ECC-CDH_K-163_C7-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C7-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEAe9HeV+w44BAWrXoje/DztmpJRSmAL5h
+gdf8A8qL/fEYac6ijPoOX19k
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C7
+PeerKey=KAS-ECC-CDH_K-163_C7-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0399b9294e895486bdefbaad7a729353ce09586357
+
+PrivateKey=KAS-ECC-CDH_K-163_C8
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUCczSXFAWwRhw+3mfyujNn
+NEUag3ihLgMsAAQHZ8Me6TA7GyzTBZ+BUH7zBOvTECwCUeDUMNw/Y/Oje6seepV2
+Us9n4iw=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C8-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEB2fDHukwOxss0wWfgVB+8wTr0xAsAlHg
+1DDcP2Pzo3urHnqVdlLPZ+Is
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C8:KAS-ECC-CDH_K-163_C8-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C8-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEA3TX+bqM2opo3nJ50/+GdAMv1HwCA+3p
+lcOk6Kb+Ic0eTNTKOBLA1pKl
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C8
+PeerKey=KAS-ECC-CDH_K-163_C8-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=022325a9a769a902c2e64c80a1d35429ced42ae0a4
+
+PrivateKey=KAS-ECC-CDH_K-163_C9
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUBm7SAc5ARI1xtXG501qe7
+TyD2G3qhLgMsAAQAk1SQdXBNedrncjF91lJE+nclaesCqKKCHdOdfnZTynHPwant
+hXgBo5s=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C9-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEAJNUkHVwTXna53IxfdZSRPp3JWnrAqii
+gh3TnX52U8pxz8Gp7YV4AaOb
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C9:KAS-ECC-CDH_K-163_C9-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C9-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBld99U4Rx+diAvlPVk5hN7I85uRBBok2
+YAqtyyX9QCTtPoRbK7+AcoDm
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C9
+PeerKey=KAS-ECC-CDH_K-163_C9-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=051392d5377016358405030b48744003db66440a2d
+
+PrivateKey=KAS-ECC-CDH_K-163_C10
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUA9O21i8w9bp0xcilCCnMy
+gezP8c+hLgMsAAQCcYNgm3WTsYRTZcCB1F/2bJq143AGm5gSNv6TCUe2t383QoKh
+jkvpk8s=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C10-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEAnGDYJt1k7GEU2XAgdRf9myateNwBpuY
+Ejb+kwlHtrd/N0KCoY5L6ZPL
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C10:KAS-ECC-CDH_K-163_C10-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C10-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEAmHRU0XOtJIimo10WX59/RmutoSKARSh
+Is4oyhViD3tAofJrQjTJVr3B
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C10
+PeerKey=KAS-ECC-CDH_K-163_C10-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=045dac076e79de2fc631315465d3ef6245f26647e5
+
+PrivateKey=KAS-ECC-CDH_K-163_C11
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUBuZBJGhL97iMaoqEW4ePB
+yR0P1HihLgMsAAQD2oadCcTkVFrBaJ/HIxYBJjLQq9kCyCD0AxDl/9L4v0Ofuoeb
+su9iGyo=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C11-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEA9qGnQnE5FRawWifxyMWASYy0KvZAsgg
+9AMQ5f/S+L9Dn7qHm7LvYhsq
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C11:KAS-ECC-CDH_K-163_C11-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C11-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBw44D0k3CgAnlUpOqIC8GSmyjFMpBG/j
+tFSvlCCoEfHhX3dNpa4aQLRZ
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C11
+PeerKey=KAS-ECC-CDH_K-163_C11-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=014f7a46847ed6a7ff605b0e52c616e4ad3f0d5029
+
+PrivateKey=KAS-ECC-CDH_K-163_C12
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUA6Cm5lC/ZZIf2ASkI/gT2
+2OqvGWahLgMsAAQFqyB0wE31cWAWdzX3/C2PYp00/xgBLp2m0Fuz4qy+W6SvtKDd
+ctsH1qw=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C12-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBasgdMBN9XFgFnc19/wtj2KdNP8YAS6d
+ptBbs+Ksvlukr7Sg3XLbB9as
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C12:KAS-ECC-CDH_K-163_C12-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C12-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBuYK93QZuf4PxcecoaIqEBFAJAW2BpvK
+NABbV4zXp6aSm9P2zimUO17Z
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C12
+PeerKey=KAS-ECC-CDH_K-163_C12-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00eacabc34555956995623e60482e5c118e34e2094
+
+PrivateKey=KAS-ECC-CDH_K-163_C13
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUBV86PC2zpLkJuyZ8iOtgn
+Y+S9P/OhLgMsAAQF05icykrnMt6TZyslySYIYbTA3OMENqMx6tJPKAe1UmD53D3m
+aM+/67c=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C13-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBdOYnMpK5zLek2crJckmCGG0wNzjBDaj
+MerSTygHtVJg+dw95mjPv+u3
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C13:KAS-ECC-CDH_K-163_C13-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C13-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBPdQ4nUA4Q8KF2uD8UvCbWvXHr10A55Q
+CQZ8DuLI9Vt+hNp6OR8Ir3UE
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C13
+PeerKey=KAS-ECC-CDH_K-163_C13-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0414a622645107f115576f51cdf39d1393a2d7851f
+
+PrivateKey=KAS-ECC-CDH_K-163_C14
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUDeYhfRfLXB74cEdhsQbra
+STsqVgOhLgMsAAQFrjHLKbMdJPX5TDDpwC8H84v/CsgE2Njjm/h/BYVD3ImQqRIU
+2kFsxVg=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C14-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBa4xyymzHST1+Uww6cAvB/OL/wrIBNjY
+45v4fwWFQ9yJkKkSFNpBbMVY
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C14:KAS-ECC-CDH_K-163_C14-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C14-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEAqufW6lBAtIacGdh6sAJIZDxza0EBK3d
+d+GZwTLRisVBsRd0jSMZ23/l
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C14
+PeerKey=KAS-ECC-CDH_K-163_C14-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=056be002daff11c4066e10acd046a85e170fa4c122
+
+PrivateKey=KAS-ECC-CDH_K-163_C15
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUAuoxYZNs+/XaLk3b8K2wf
+hfRvavKhLgMsAAQGL2IhSYI/JVtPhpBmZvOjVWrwgOoCdMoywQ+a3WGgJtIK061W
+sX+wakY=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C15-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBi9iIUmCPyVbT4aQZmbzo1Vq8IDqAnTK
+MsEPmt1hoCbSCtOtVrF/sGpG
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C15:KAS-ECC-CDH_K-163_C15-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C15-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBD0l0t6Sk7hNNRozyxpS9ZMKTIt2A9JZ
+2CNunI1kN/QebVRhHFIjj+LV
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C15
+PeerKey=KAS-ECC-CDH_K-163_C15-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=021fef8e473daeda8ef6bf07814d7b9b613e3076a3
+
+PrivateKey=KAS-ECC-CDH_K-163_C16
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUD5QgEhNNzCyJIzMSCYNS9
+GFdgWtGhLgMsAAQFiupuQLjLJeZiKnvk/wG3nJLecqUEP2d2tt7/PSm0xwOJnXBc
+f+z1JcQ=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C16-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBYrqbkC4yyXmYip75P8Bt5yS3nKlBD9n
+drbe/z0ptMcDiZ1wXH/s9SXE
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C16:KAS-ECC-CDH_K-163_C16-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C16-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEAFYOGkIYZRGL6hbNrWtnq6OE7zh7BYsh
+PsKrOUL49q1gqVaVW1iQZrhW
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C16
+PeerKey=KAS-ECC-CDH_K-163_C16-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=03a287fd1cca68db47a3c74c12627fc3728568dd66
+
+PrivateKey=KAS-ECC-CDH_K-163_C17
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUAXQUroavqckl4yu8YeSRW
+ctWu+JGhLgMsAAQDa4Snczep3lwd1648iZOBOC8P/6QFbUrDn+iB/bjmDUVZZYqq
+3kVmPuU=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C17-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEA2uEp3M3qd5cHdeuPImTgTgvD/+kBW1K
+w5/ogf245g1FWWWKqt5FZj7l
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C17:KAS-ECC-CDH_K-163_C17-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C17-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEA45IXekuQfHKymwOudgRpayom/NFAzGh
+Z3xGpo6WSBGpzF5OU+px4jEp
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C17
+PeerKey=KAS-ECC-CDH_K-163_C17-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=029558b41b8b92387bc22c868f51bb7acb6e4ee2e3
+
+PrivateKey=KAS-ECC-CDH_K-163_C18
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUDkYAYep7dzzjcJk8FWwfS
+C5+ai8ShLgMsAAQEspLR+gnfxeajrZn9Av63TUgONPIG4YiACaCgSRwL5qv6yUPT
+d/C0hjs=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C18-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBLKS0foJ38Xmo62Z/QL+t01IDjTyBuGI
+gAmgoEkcC+ar+slD03fwtIY7
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C18:KAS-ECC-CDH_K-163_C18-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C18-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBkJZ5QBHbdo+l+JeSR1GbCt5WL1JA8Ll
+MoE5NkGlGNHc7/q+6LKb3hQC
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C18
+PeerKey=KAS-ECC-CDH_K-163_C18-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0530020c8f6362312bfbe5c1c605b40dc2e032e81c
+
+PrivateKey=KAS-ECC-CDH_K-163_C19
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUBbTeGKxlXY8agHV45uUWa
+MlB8KyGhLgMsAAQDNEDkYMR18gWKdn7EZsoYvOQfgw4Dcq7jI9Bj+omsv/v1UCSu
+JOSSnxk=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C19-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEAzRA5GDEdfIFinZ+xGbKGLzkH4MOA3Ku
+4yPQY/qJrL/79VAkriTkkp8Z
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C19:KAS-ECC-CDH_K-163_C19-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C19-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEA3FCdpl7RHji2LWa9fLmPiK8TDHkBnPy
+jZYqv+3uYuq0fDtFeaHlFoM2
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C19
+PeerKey=KAS-ECC-CDH_K-163_C19-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0521673006a1d9608911d54536e122d809e919d804
+
+PrivateKey=KAS-ECC-CDH_K-163_C20
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUAbGWHlLA5yCCosDMAj6is
+dVa8rsOhLgMsAAQEy/soZpHkFQgaF4Xsawqs2x0jHR0F3WrP6R1oqOwjaGR4wO6M
+iSd67xQ=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C20-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBMv7KGaR5BUIGheF7GsKrNsdIx0dBd1q
+z+kdaKjsI2hkeMDujIkneu8U
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C20:KAS-ECC-CDH_K-163_C20-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C20-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEAnXsFfJ90tpuRN/mI1Ry1b06JQL4BY/Q
+ImKyfBhd3iayx31aT01Q3Jko
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C20
+PeerKey=KAS-ECC-CDH_K-163_C20-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0460579beca16cccce314ff3040de4785336fc358c
+
+PrivateKey=KAS-ECC-CDH_K-163_C21
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUBacjaIsNahVSVBHoQS+AL
+FXW2UquhLgMsAAQEXv7ZyL0qTkKViPNE9J0eY+ZovQECXRr4WsIdWYItffjw5L66
+3ztdRAE=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C21-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBF7+2ci9Kk5ClYjzRPSdHmPmaL0BAl0a
++FrCHVmCLX348OS+ut87XUQB
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C21:KAS-ECC-CDH_K-163_C21-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C21-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEAjOvNhAwOSJvQW3SLhomtz+Qk9OKBzQl
+ihdcl3aKn3K4JLmakfXPjj2W
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C21
+PeerKey=KAS-ECC-CDH_K-163_C21-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=05ba66964483fe473ccbd00c37ad3ba40cc5969f62
+
+PrivateKey=KAS-ECC-CDH_K-163_C22
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUAAy/HkIZGMmMMSaKemtD7
+bRDytYyhLgMsAAQHec+z4XyQKiWE7TOCqL7YJi25hCQASvJzh1+KKrmpSsDR5KIz
+kLK7UFw=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C22-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEB3nPs+F8kColhO0zgqi+2CYtuYQkAEry
+c4dfiiq5qUrA0eSiM5Cyu1Bc
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C22:KAS-ECC-CDH_K-163_C22-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C22-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBtAyFSJA8ovn90349tKkUMEimlqVB6ra
+x3zERImF0XlGNrwdWC89EBoz
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C22
+PeerKey=KAS-ECC-CDH_K-163_C22-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0277c4a76e1613b2ede699a675c1645a786075009e
+
+PrivateKey=KAS-ECC-CDH_K-163_C23
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUDwd5btA5wkz7X24TOLLRo
+y7opmzqhLgMsAAQF/+DxYBi9S97l9zv9rQTXE/Ihb1AEI2HIgfAIHLBUTvqww7NP
+Weqt7sQ=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C23-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBf/g8WAYvUve5fc7/a0E1xPyIW9QBCNh
+yIHwCBywVE76sMOzT1nqre7E
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C23:KAS-ECC-CDH_K-163_C23-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C23-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEAfhYHsYd8UCSJ6q3oBXyxx0p43FsAcH1
+HMQYW2iiYOMbSwDAOkQD9lwl
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C23
+PeerKey=KAS-ECC-CDH_K-163_C23-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=03c6481dac387af39e8c09a553068ac496eea03691
+
+PrivateKey=KAS-ECC-CDH_K-163_C24
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAAEETDBKAgEBBBUDiBJ1uki+oL7MAhGQNGf1
+0KrjIaqhLgMsAAQHduQP5xSZhTN+8bbJuDDLNgh1KqYFjm7LsnsLLTzQ46e6U43j
+V2/VufY=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-163_C24-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEB3bkD+cUmYUzfvG2ybgwyzYIdSqmBY5u
+y7J7Cy080OOnulON41dv1bn2
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-163_C24:KAS-ECC-CDH_K-163_C24-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-163_C24-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEAroi+9qqqAbIVw8UrUyIKmEMy42EBtRD
+jlKMqIewW9JWTfk775v2YNp4
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-163_C24
+PeerKey=KAS-ECC-CDH_K-163_C24-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=07b5d096d06d41c3ad6458cc93417e6facc99bc7b8
+
+PrivateKey=KAS-ECC-CDH_K-233_C0
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB0TWluMPOBH+8XfJid9O/g6
+wz3a21z0oFDKgr5I8KFAAz4ABAGlPlwTiz2DkF1WOqHbASdGM8mGtS94IlqS4z55
+UgDsq9Pi4mcpqWVgTlYO1EmKIrMcOWQuHPmbHd4+xw==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C0-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAaU+XBOLPYOQXVY6odsBJ0YzyYa1L3gi
+WpLjPnlSAOyr0+LiZympZWBOVg7USYoisxw5ZC4c+Zsd3j7H
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C0:KAS-ECC-CDH_K-233_C0-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C0-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAfQONLPtShstQMBW+3XyrVQ8iXz9gvVC
+z3RqDyAvAMEwoavpK8TJd8gAd3mWzMULkN+ZGi6B3VFcGIWZ
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C0
+PeerKey=KAS-ECC-CDH_K-233_C0-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00a822b141ca1f5ad32899e68c54d1fec3df8100df485ebf1c5868a9ac89
+
+PrivateKey=KAS-ECC-CDH_K-233_C1
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB1Rvm+81IeMVUObC8u+Xqjo
+S8nbiecKjo6/NHgtqKFAAz4ABAHFoeXT7lFuPt5yP6LVzTRWsRYyYwPF7kknOlYE
+xABWjQ/nEwKVVBv6JlB0FHVG6XM3NroAdVnXFtjglA==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C1-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAcWh5dPuUW4+3nI/otXNNFaxFjJjA8Xu
+SSc6VgTEAFaND+cTApVUG/omUHQUdUbpczc2ugB1WdcW2OCU
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C1:KAS-ECC-CDH_K-233_C1-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C1-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAMhkwqRiqTY6SsPYGCEbygNpRy0YYoii
+dWdDO9pFAGidTQAG66BU3Gn8wHhngPtfdNOYkhNQTi9uZmmA
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C1
+PeerKey=KAS-ECC-CDH_K-233_C1-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01662682bec2dfae05e38587c8e6a4d18aef4cb3416989c47c11bbe2810f
+
+PrivateKey=KAS-ECC-CDH_K-233_C2
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB0uzKWV5V5shcWveMWVQP23
+SQA/9Ow2HDi0jn2mvKFAAz4ABABaSPrEdsMcrQxo5k5l5oeuRBj7XTtLsqu5kN0N
+5AAtmt1wZibyhZ7OEQ3y3eifrz6KrEM+JZXiPCdAgg==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C2-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAFpI+sR2wxytDGjmTmXmh65EGPtdO0uy
+q7mQ3Q3kAC2a3XBmJvKFns4RDfLd6J+vPoqsQz4lleI8J0CC
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C2:KAS-ECC-CDH_K-233_C2-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C2-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAXgtgvzSEcAkfIfmV+/MXS/2sF65NTMK
+U5A/s7+jAMzoMKUV1pCrmBSVea00gThIWeVl0H+mH1Dr1mmi
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C2
+PeerKey=KAS-ECC-CDH_K-233_C2-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00215d511cb95e0e073ee999908a7a844afd75c9acb7a9d724f7fd322b01
+
+PrivateKey=KAS-ECC-CDH_K-233_C3
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB1qfAOJLfGE1Wzcy51emhZI
+OmyTiK4hKqkmyP37XqFAAz4ABAFKr4gOgdtpq6K0A7vafzYeMzm0g84mmfML9Sge
+rQG3FVm9fZOE5Re4fxE4ppb7zrNRDYxBwhWNSqPlsg==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C3-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAUqviA6B22mrorQDu9p/Nh4zObSDziaZ
+8wv1KB6tAbcVWb19k4TlF7h/ETimlvvOs1ENjEHCFY1Ko+Wy
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C3:KAS-ECC-CDH_K-233_C3-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C3-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAI2ADTdnq/VzFpV1TuiCm4WP9OtgSkSK
+1mSQtJwZAbwPAzlkmtTXt8/z/KnpZaOGJej0W8lgKjPAeYoz
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C3
+PeerKey=KAS-ECC-CDH_K-233_C3-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01394e02c70104f2a5308b2d101b02c70ef2d13540602b8e8f82dc6d569f
+
+PrivateKey=KAS-ECC-CDH_K-233_C4
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB0uL/h5G8ZMAPOw8dXVz7nd
+s7GTgUWZ99vd7e/Po6FAAz4ABAGARcyeZfbideMipiwY7+LQDPk5lf61NWEnOj8T
+BgFk4Ac8DUs+EuIvg3vT/sQh47sJ4MDdmXQigw9kAw==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C4-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAYBFzJ5l9uJ14yKmLBjv4tAM+TmV/rU1
+YSc6PxMGAWTgBzwNSz4S4i+De9P+xCHjuwngwN2ZdCKDD2QD
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C4:KAS-ECC-CDH_K-233_C4-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C4-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAUo+EhrdelJn9crSBLP0khUIR4ayP42U
+2f2gLg8ZADlP6hddrZs01SVDRlTQyGY3kmysOjKSouSlFLX1
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C4
+PeerKey=KAS-ECC-CDH_K-233_C4-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=008556a4c3a8906ddbcb946099ca5dbe7bdb6cd8f37fbb50c96fcefed32d
+
+PrivateKey=KAS-ECC-CDH_K-233_C5
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB1mly5xVmdG8vdsh3k3dAVO
+onXip+J6t8LQXF8kEqFAAz4ABAAgIm3XPjGOT8jUndQ+WeJgGT0bskjL5MBrTWuD
+iQDtEqTziWlqsxyT6j7E2Orxi+CX/JFS4sQrc/9FKA==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C5-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEACAibdc+MY5PyNSd1D5Z4mAZPRuySMvk
+wGtNa4OJAO0SpPOJaWqzHJPqPsTY6vGL4Jf8kVLixCtz/0Uo
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C5:KAS-ECC-CDH_K-233_C5-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C5-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAIlmeIj4QlxaYjE0Yi8eqdmvNt+XcsQQ
+1uMfK024AIRDD6RxZNHA65cEKkTL70ALu1RfrqTvSbpeO+9C
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C5
+PeerKey=KAS-ECC-CDH_K-233_C5-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=004ea6e0e34ec7c9bbad47f0f6f8ec0608e736d91e0e56cf3e5cffe8c370
+
+PrivateKey=KAS-ECC-CDH_K-233_C6
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB0eU7qha8AmK1MppxGw6xiK
+G8p+9LXIUGEiXUHUqaFAAz4ABAB9bXhfoyMXTrnN5bcFQo5AGSRINbyUcC8oDCX/
+5QGaoO9DMHTEhNFOYRNy8D74kS8agkbOsekMgX2z2w==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C6-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAH1teF+jIxdOuc3ltwVCjkAZJEg1vJRw
+LygMJf/lAZqg70MwdMSE0U5hE3LwPviRLxqCRs6x6QyBfbPb
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C6:KAS-ECC-CDH_K-233_C6-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C6-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAWTaCZIl6zxkH8g8dyBKOW6rlJWxKiL2
+jnpLg5nVAM2Y8nBMdJTm0gN150UoyPVvhn6d12MpgULqAXJL
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C6
+PeerKey=KAS-ECC-CDH_K-233_C6-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0160d0b9b92a4acd089738fd489ae39734551e888fd05a020ce26498270a
+
+PrivateKey=KAS-ECC-CDH_K-233_C7
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB1CqAMqEdFld1XEnkdwM7DT
+Qdov6ZOkV3tBpAzuGqFAAz4ABAH2YpaX2mINWX/B9RyDN0IT836VL8EX7mWp52au
++wArNt7ceHrJUdKHnXJBTaLnV1ps18QuD6ILMtRh9w==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C7-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAfZilpfaYg1Zf8H1HIM3QhPzfpUvwRfu
+ZannZq77ACs23tx4eslR0oedckFNoudXWmzXxC4Pogsy1GH3
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C7:KAS-ECC-CDH_K-233_C7-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C7-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEADOosIo8M8NDAyztHA9egm+TLe6HnsFg
+eir11GKYAGxPJ6SbUaifbQlgFguluP7AjdLNS8kJpJCuvk97
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C7
+PeerKey=KAS-ECC-CDH_K-233_C7-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0038381b342efaa70bb79adb76ceb775de5f45f863559ecaee1ddbbd0313
+
+PrivateKey=KAS-ECC-CDH_K-233_C8
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB1D5XcJeBlfkXFS8Fe6H7AV
+bYlNMui7VMf2L3NApqFAAz4ABAFIfR/avM19idolaFsEKYCrFwruPBHzEYDjt8UK
+SgF+OD3WWh7IpAkAf3UDXlsWEzXZx3Vu2XBJD70XGg==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C8-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAUh9H9q8zX2J2iVoWwQpgKsXCu48EfMR
+gOO3xQpKAX44PdZaHsikCQB/dQNeWxYTNdnHdW7ZcEkPvRca
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C8:KAS-ECC-CDH_K-233_C8-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C8-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAM/hX4YaoBU0hfOKwDPfnI2BKv3hZ7iR
+i7lKCNljAb6/Bn+FEm0RSTIWIWQgGxN0vxhAqhHV4lBjnQYI
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C8
+PeerKey=KAS-ECC-CDH_K-233_C8-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0122169f1dff445ec663270375dfe914016c38ce6c2d40d0b8098abc60ac
+
+PrivateKey=KAS-ECC-CDH_K-233_C9
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB1MZ8YQPmISRgCg2ekj3CF6
+Ai9Xxv6yGccDM0/zOaFAAz4ABAAjUv6TQeYsYJ/BU44CcEBecAHXR7h1AOZEoRLF
+2QBB87FbcUpvfvZH4jZl6lMO/L4ZsHQENs2oEug5OQ==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C9-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEACNS/pNB5ixgn8FTjgJwQF5wAddHuHUA
+5kShEsXZAEHzsVtxSm9+9kfiNmXqUw78vhmwdAQ2zagS6Dk5
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C9:KAS-ECC-CDH_K-233_C9-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C9-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAHY+KGvlB0C3+L14+nC8rIgN89c3HrM/
+2iRTs+0jAFe+bF99mQt1Q5hoM5rjJ68EoEmzi5IzK5y4yyfZ
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C9
+PeerKey=KAS-ECC-CDH_K-233_C9-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0054d47c9d0a9fee258122326be25daf35f0ba0b8449e16b4623a8c0fd7e
+
+PrivateKey=KAS-ECC-CDH_K-233_C10
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB0Z5U2ocples9zczFBBjsNR
+QAiJ+udaC6Tc/yXx+aFAAz4ABAFeZ+rr5Sujf1tzoZnZUIEs7BAS/UEFgURLvyPg
+yAAiBV74Id8zBC+4MW3a12SF29JZDi9UmKkU5PCtOQ==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C10-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAV5n6uvlK6N/W3OhmdlQgSzsEBL9QQWB
+REu/I+DIACIFXvgh3zMEL7gxbdrXZIXb0lkOL1SYqRTk8K05
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C10:KAS-ECC-CDH_K-233_C10-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C10-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEALyKca1METTe8Cbkcj4xAiP7LFhZvHWU
+BUyJTaVSAMNlBWNQVTUDPHpsRI1zv6CPuDcCNMf9usGzTaoi
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C10
+PeerKey=KAS-ECC-CDH_K-233_C10-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0071aed39f5c44a7ff72db3e0f8284da39dfb2d894f278d2006f9d2686e3
+
+PrivateKey=KAS-ECC-CDH_K-233_C11
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB0Tpf/JoPcGnBxmFIaZYS5c
++rfiv3syVfGBoCJxkqFAAz4ABAGN5NxPak3lw2OOu6JNxwZJg7FZ9VsTnHaAocuQ
+0QE1Uy2BSK8+In1KiWDnaMVl9ywawKHJp70YXPmU0A==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C11-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAY3k3E9qTeXDY467ok3HBkmDsVn1WxOc
+doChy5DRATVTLYFIrz4ifUqJYOdoxWX3LBrAocmnvRhc+ZTQ
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C11:KAS-ECC-CDH_K-233_C11-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C11-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAWzBrhP7NIJSSTAhzWFG1THwtyKEKkTH
+l5aJ8f84AYwJY/8Oo3BIyfb0dkTyp8jFA4Y8J88h7m4KMiTq
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C11
+PeerKey=KAS-ECC-CDH_K-233_C11-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01ca68ead4eddc8847a3a661cc6628e076bdd4b45047ece72245d094dd3b
+
+PrivateKey=KAS-ECC-CDH_K-233_C12
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB0vXSp+CHekyZBzcyOG6NWX
+NKI91/Dff81U2UHnYKFAAz4ABAFHmAlGgMvTL7HuncqmuHOaVWMFI1kz+ycVfTGe
+VwHIVfDUU8H/tfZosyqLPjCeDoEBvDm22+feIUAV4w==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C12-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAUeYCUaAy9Mvse6dyqa4c5pVYwUjWTP7
+JxV9MZ5XAchV8NRTwf+19mizKos+MJ4OgQG8Obbb594hQBXj
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C12:KAS-ECC-CDH_K-233_C12-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C12-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAOSeGCrF2TK+iwX+NA6Mty3zVkfezWea
+jFm12Pv6AYG5WpZavRbsJDDCbdBxmE6FSpZ/8RTueDG9MUsq
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C12
+PeerKey=KAS-ECC-CDH_K-233_C12-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=017a893b2e090780ff8daaf3588f9dfc0ac4dfe1f1e263697a9d1f398ab3
+
+PrivateKey=KAS-ECC-CDH_K-233_C13
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB1lKhH2wxF/Eyb6aHdAXOxz
+McTxRql/dKsMRN4Bt6FAAz4ABAAs1tTB0sxeNCBerblPTP01u1adpyLE2bGbjVzC
+3gDqMATlsJMN9/i9oxTIvBFFRj62ACLNLc9sDIJOUA==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C13-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEACzW1MHSzF40IF6tuU9M/TW7Vp2nIsTZ
+sZuNXMLeAOowBOWwkw33+L2jFMi8EUVGPrYAIs0tz2wMgk5Q
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C13:KAS-ECC-CDH_K-233_C13-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C13-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAVmLL9tb8aOVH7nsAW7LTSj2bC6dE1ln
+hlk1hdcZAe9lyvFXldFKC+icrHxoAyO8WYA7qHTLKWhnLLip
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C13
+PeerKey=KAS-ECC-CDH_K-233_C13-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0041fa5fdf495b885699249b7746334b76c59e1c917bfc1ae371b96941f4
+
+PrivateKey=KAS-ECC-CDH_K-233_C14
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB0q1fccY4SvYmibNcJMTd+z
+Ws+BBssMGVAsLKGEr6FAAz4ABAD+G1JAinEoQb1i8O5RMH8mMx1AK8w6WrBAXRxe
+gAEKcxp9ampPW0Cy6qgQwZAtsnso0pe8BfNxTKyvwA==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C14-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAP4bUkCKcShBvWLw7lEwfyYzHUArzDpa
+sEBdHF6AAQpzGn1qak9bQLLqqBDBkC2yeyjSl7wF83FMrK/A
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C14:KAS-ECC-CDH_K-233_C14-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C14-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAbbP87f6IV43hgXJP4b1zThF9F+96L4H
+newpvIhiAWYiLvpdup6FjCRdu12maCOatbpyhhj7hakN3HYK
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C14
+PeerKey=KAS-ECC-CDH_K-233_C14-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=015f5adba59d1ee01696cecce4b63e78e68508303ee496ff5abcea25ad3b
+
+PrivateKey=KAS-ECC-CDH_K-233_C15
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB1vActUeBy9ptiN61mEOuCD
+axr2g+/HVlC+hPIIp6FAAz4ABABNAKjwgg2pCX/lDo5979rClgfdTLHdiB1OYfHn
+iwCKSo6cgRtEQ2eVJ1KrjCpRmO+yj77b8/vXAahXqQ==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C15-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAE0AqPCCDakJf+UOjn3v2sKWB91Msd2I
+HU5h8eeLAIpKjpyBG0RDZ5UnUquMKlGY77KPvtvz+9cBqFep
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C15:KAS-ECC-CDH_K-233_C15-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C15-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAM9AKuvD5CR6mrQ9qXVRdqgQ4BH5/Zd9
+4b4v1TT7AbrEX6QtYFrTR5x8Q+ckkQcWc3lTzIUErxTzMdNP
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C15
+PeerKey=KAS-ECC-CDH_K-233_C15-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=003d5c29b3753e89ce5064575393392b377ca657a0b73872c82165fc43ae
+
+PrivateKey=KAS-ECC-CDH_K-233_C16
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB1dwboYOfXR/qhas2FMVanF
+/mAIU8caYZg8fcgt4qFAAz4ABAC2y2/6Ti6rz3uYfrtSAWWo7Joipvn/sQDzgXKg
++wDTmBThhSR25W6JzozdZDcoQMAVcKhpQKziS7nPag==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C16-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEALbLb/pOLqvPe5h+u1IBZajsmiKm+f+x
+APOBcqD7ANOYFOGFJHblbonOjN1kNyhAwBVwqGlArOJLuc9q
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C16:KAS-ECC-CDH_K-233_C16-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C16-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAPOMzM8I5b3/O7NffnW9ztaNN5Hc94Q8
+qI/wkhNtAV7XaXpLjJnQFHgo9shh/8nPsPM9zp0UsHMeHaJi
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C16
+PeerKey=KAS-ECC-CDH_K-233_C16-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=007c01f906caa590898a09f46b6f5383658e7fee656aca0f111f22939960
+
+PrivateKey=KAS-ECC-CDH_K-233_C17
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB0kHh31WHAx3drhlokcKIIc
+x4ea01gyrnGPbnkuZqFAAz4ABAHBcs7it2UD602Qs53azoJbI8Mjdcto6uzXNISQ
+owDCRu+cbi+trHfHPundWt7oKLeRhBc5W1mXvhoCeA==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C17-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAcFyzuK3ZQPrTZCzndrOglsjwyN1y2jq
+7Nc0hJCjAMJG75xuL62sd8c+6d1a3ugot5GEFzlbWZe+GgJ4
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C17:KAS-ECC-CDH_K-233_C17-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C17-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAeMoVx35M6z9TJbzxL3nHpF1y81iruzX
+Y4R0Sg8/AZ/0iq4MJS7ajTQLJcTdoBovIaqjXTm68DZpahEB
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C17
+PeerKey=KAS-ECC-CDH_K-233_C17-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=019eece7d3fafc9274d361c6fafd9efd9ee485cbacb3baaf6834feb4df6a
+
+PrivateKey=KAS-ECC-CDH_K-233_C18
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB0ESsVakTqMf37X/FZ59S9H
+y7lzAyW+IbeZN3nRh6FAAz4ABACXlIYQF7Pevv8wLkJTJ/4mnXh1O3O8G/s6d/cW
+3AACWBpJwSafXsho3G1/XC2OdJYy1Hq22eaNutmF8A==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C18-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAJeUhhAXs96+/zAuQlMn/iadeHU7c7wb
++zp39xbcAAJYGknBJp9eyGjcbX9cLY50ljLUerbZ5o262YXw
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C18:KAS-ECC-CDH_K-233_C18-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C18-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAPSqf5NAqdpGxPBnKHU6Stxa9TpNy0Z/
+cLSHPaeFAH8yHivE4pporCPHfO3Tu83gv3uSon/6dklpiJgd
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C18
+PeerKey=KAS-ECC-CDH_K-233_C18-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01e4b7e89fb1b51179b8792f5cd581c3917e11246d3846f6344ee82eed66
+
+PrivateKey=KAS-ECC-CDH_K-233_C19
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB0rwTZ3hTEInaXC+rPK7sJW
+xUsLNfwsZfe47mFhw6FAAz4ABAH7JYox0Wa++c1mTNe2bNjBhucCXHfwuucxWH6e
+9gBg39TkdekoBdGTXQOC3BdnBnkVzADtOyT2U4LSGg==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C19-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAfslijHRZr75zWZM17Zs2MGG5wJcd/C6
+5zFYfp72AGDf1OR16SgF0ZNdA4LcF2cGeRXMAO07JPZTgtIa
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C19:KAS-ECC-CDH_K-233_C19-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C19-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAGjZ5V56EFt7tEsh1mm7DvZXqRQ3rYS/
+bVhTJwyYABQ8i+21TbB9+PZwg8WaCqfNig76QvQv1i5ELgti
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C19
+PeerKey=KAS-ECC-CDH_K-233_C19-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0145710c3ab0780ec233424d4e28b38d29f886965bbcac49fa300e1ed886
+
+PrivateKey=KAS-ECC-CDH_K-233_C20
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB0NVllUcUNdlf7DffYi8Y7n
+2rskN5yCu/cUxavF46FAAz4ABAGlKUCkUqr0ILN7XzLCwzcwaJSogv7qet2twBkn
+7gB3G59ioqb6iSUDIlJ1SQOIuL/C33ffPoBr7bp9iA==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C20-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAaUpQKRSqvQgs3tfMsLDNzBolKiC/up6
+3a3AGSfuAHcbn2KipvqJJQMiUnVJA4i4v8Lfd98+gGvtun2I
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C20:KAS-ECC-CDH_K-233_C20-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C20-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAJnrkc2phiAQPDIF1kieaK1+V9ClHcUC
+1uMFiPQYAD+/gpkp7dKOkG9Y+Hq+1tbRd/Q28N2UDdol6vGI
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C20
+PeerKey=KAS-ECC-CDH_K-233_C20-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=006941a2a531083563dd886b06c0860770a4724bb04a4ebb2afb1ba2636b
+
+PrivateKey=KAS-ECC-CDH_K-233_C21
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB0ZyKsrMvLuk78v9rxEN4tg
+hyva62ula1FMjziLp6FAAz4ABACDUw+j3zFah0CsUvTTlLgMSl8hC6ugttwiBeEk
+kwA3udAu1D6dQdDbuEA7kCG00sG9Ng7lPDHCe0kgBQ==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C21-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAINTD6PfMVqHQKxS9NOUuAxKXyELq6C2
+3CIF4SSTADe50C7UPp1B0Nu4QDuQIbTSwb02DuU8McJ7SSAF
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C21:KAS-ECC-CDH_K-233_C21-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C21-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEANzKoitDOR3AUll6470HxuXwIfOemHdW
+9lSBce6UASjv1JrzprMtwWeXqXjwrUqw22arq9atVnL0+BLJ
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C21
+PeerKey=KAS-ECC-CDH_K-233_C21-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=001d754ee5351d4582974734072abac23376e24348370934e7b864db0f52
+
+PrivateKey=KAS-ECC-CDH_K-233_C22
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB1QMWAQTYigwPY5VufDu6cC
+lj+fG1P8EZpZLu6k9aFAAz4ABAFGPHjkmKvzQDPsPh2XPcElCeLSNPuRQDcV5C9h
+9wCt56u5igMIiGaWNTqtM8Bbq1zzwNTpacv0xM7skw==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C22-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAUY8eOSYq/NAM+w+HZc9wSUJ4tI0+5FA
+NxXkL2H3AK3nq7mKAwiIZpY1Oq0zwFurXPPA1Olpy/TEzuyT
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C22:KAS-ECC-CDH_K-233_C22-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C22-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAXCRezOze46v8kYeX5648Hl7E6q9kVpg
+cGzU8yy2AHZR4HQsDYPUtoVS6ber7DZEupdVz/5tTlaUOmub
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C22
+PeerKey=KAS-ECC-CDH_K-233_C22-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=011346b83791e4bea7f6ba6b1265e5050895d84027c106f77353418f75d7
+
+PrivateKey=KAS-ECC-CDH_K-233_C23
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB1FR+r5vhzlrxOG4xEEbsgy
+YLhKLKkQVfYGaLlG4KFAAz4ABAFQSTjBZ2gK+4ttWFjPqhkcQBlvxOUAxmLFNG7M
+kAE30bqUIija5oxFCxoDOiyBCplZcfAcJAieSm/cxQ==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C23-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAVBJOMFnaAr7i21YWM+qGRxAGW/E5QDG
+YsU0bsyQATfRupQiKNrmjEULGgM6LIEKmVlx8BwkCJ5Kb9zF
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C23:KAS-ECC-CDH_K-233_C23-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C23-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEANjtMYOCuFwlJaAsIsZ/W/NmM12Udn61
+y0VzlmTFAX2P3nu8Vo/cgCo+NFXzzzVgLfcGhMis3aFloCZW
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C23
+PeerKey=KAS-ECC-CDH_K-233_C23-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00b4938ed1ed012a9a53892ed9949397cdc4e4a612d54dcf80cdb039f47b
+
+PrivateKey=KAS-ECC-CDH_K-233_C24
+-----BEGIN PRIVATE KEY-----
+MH0CAQAwEAYHKoZIzj0CAQYFK4EEABoEZjBkAgEBBB1C++VUhi81lRhKRVEMpT35
+fEUXVYS10t4EJyM1jqFAAz4ABAExuNYbnPsFNsWIIU5FiI6+SDke7stNf7W+jv9K
+zwFl2klVegqp1F3TeNX4mScsxpdoInaukdLAtnXEaQ==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-233_C24-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEATG41huc+wU2xYghTkWIjr5IOR7uy01/
+tb6O/0rPAWXaSVV6CqnUXdN41fiZJyzGl2gidq6R0sC2dcRp
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-233_C24:KAS-ECC-CDH_K-233_C24-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-233_C24-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAX+H8T9t/uYIG7XMpTL+JownHSdWsxvf
+ZDKXz2lbAPOnRpVeEt0LcZGe2/I7IyLKsyjdCb34e8r9zSiE
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-233_C24
+PeerKey=KAS-ECC-CDH_K-233_C24-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01b3d2578bde3066a253db5322c85cf9487ce77b67ece955e281b0d7d0e7
+
+PrivateKey=KAS-ECC-CDH_K-283_C0
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAV/eSbgCVCpSxwsjoLF4
+Tl+HgLVoU/ml+MOlJm6HJ9zpfUoXoUwDSgAEBhHtwEXb5D7MTvazJM1R9w/j1934
+d+xot5iQnDxFYXVqow5fAIM7JVEXBK8Jti2ffLrFmBTnW7ucc19VU4SR2/pgweAR
+Xv5C
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C0-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBhHtwEXb5D7MTvazJM1R9w/j1934d+xo
+t5iQnDxFYXVqow5fAIM7JVEXBK8Jti2ffLrFmBTnW7ucc19VU4SR2/pgweARXv5C
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C0:KAS-ECC-CDH_K-283_C0-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C0-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEA/B1wkw1qdyZUr5v0yt2Hc5j9HIKIkCO
+OhS70JfgErVpTCKgBnWCW0AgLpW+fatagmFH4EuMUaCbADRXfB8x+MFqcMjhyFuJ
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C0
+PeerKey=KAS-ECC-CDH_K-283_C0-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0745552817b5d729310b7dbebae687648714a9ae695dad20ca1ab6111c3d054670f21132
+
+PrivateKey=KAS-ECC-CDH_K-283_C1
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkATuRH2LzqohDVGNFR+5i
+KAfV0QYCAzCuK5eYwMTNDq2xC6lIoUwDSgAEB40uzU2QIzK2s8e9S6fSAPw0xF7a
+MJmLYCXtR7H0+OaPMoYkBNXlNkfd3y/MyIFtrIvHDCmAdiLMlVOacqo6myMModJe
+57UW
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C1-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEB40uzU2QIzK2s8e9S6fSAPw0xF7aMJmL
+YCXtR7H0+OaPMoYkBNXlNkfd3y/MyIFtrIvHDCmAdiLMlVOacqo6myMModJe57UW
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C1:KAS-ECC-CDH_K-283_C1-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C1-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEB5m0MOkjIP/qvy1syHOZ4wwKqEQg/466
+Iwm5lIe3Qtci6LelAhc2KAH9bS0oblzfN1zQrlabcAAFMS436ONbFZLvubXq9Hs6
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C1
+PeerKey=KAS-ECC-CDH_K-283_C1-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=02eb0c1ceb6179232e91cff91fc8a30553c6ed7e0a71deb1bda0a10735a84593dd903636
+
+PrivateKey=KAS-ECC-CDH_K-283_C2
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAXdjK2nn7do88AcwdQQ0
+PMIWIyb2IBfL3fNgqHbck7gfBMWOoUwDSgAEA4FatkgOStJKZignXvLuDOfVhpkj
+nbziMziEK8WMQsypTSQSAt6DPMZkyskNMPvqxgPvu86SdtTxarHEbn4RyBqaqeJc
+gpaa
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C2-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEA4FatkgOStJKZignXvLuDOfVhpkjnbzi
+MziEK8WMQsypTSQSAt6DPMZkyskNMPvqxgPvu86SdtTxarHEbn4RyBqaqeJcgpaa
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C2:KAS-ECC-CDH_K-283_C2-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C2-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAM5Hp0PUi4b+/WtcAvKpeydiov5X4L34
+XB1qKd6IYsTJntU6AyLllgafkWVoyiSM7Vfv6QU0r0qfkKT0D3l+RSlnAxcmv0HX
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C2
+PeerKey=KAS-ECC-CDH_K-283_C2-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=04a9dd2cf5076814e5329c518c4f27b429dbe01d46682d476e7e78880de368b064236ba9
+
+PrivateKey=KAS-ECC-CDH_K-283_C3
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkADv+mhyYU4bluisxVTpV
+FR543cOPB0MrXEKhzS2ieP0LaOBHoUwDSgAEAdnDM32pXsblpL/xzJJ4OYm2bJIw
+EHhw1KV4aZM4446y2S7/AM2q19DrD0Rap2Ol37jzj1U1V3fOJPdTta09PLqxJfSR
+aY1W
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C3-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAdnDM32pXsblpL/xzJJ4OYm2bJIwEHhw
+1KV4aZM4446y2S7/AM2q19DrD0Rap2Ol37jzj1U1V3fOJPdTta09PLqxJfSRaY1W
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C3:KAS-ECC-CDH_K-283_C3-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C3-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEByiXWDm0LGIDanr/+t3vwwJLclhAe+1W
+XK6pOb4z0WrJREXHB3EmMHkLBa4E2NfZ8jZdrprSTExhs+sgwKeYfmpMSw9ZjDcf
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C3
+PeerKey=KAS-ECC-CDH_K-283_C3-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=044e2cd2bc164d21cf4b9833c0aa62ed059282e62b82f4500aeb422d17e1f6e7e8bbd500
+
+PrivateKey=KAS-ECC-CDH_K-283_C4
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkANla9SpwjmktAmd7IQMv
+eurWAD8STnIBPzfAbgu8IONTKzzqoUwDSgAEBuSH+R5zvdNE+4vI9MH0ducn+yZx
+6dbI+9d18aqiTK8umjb1BmPhz/gJl1e7n/G4eJAoOqSc/w97Ev4YTtKkKDddJ5bN
+gd6R
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C4-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBuSH+R5zvdNE+4vI9MH0ducn+yZx6dbI
++9d18aqiTK8umjb1BmPhz/gJl1e7n/G4eJAoOqSc/w97Ev4YTtKkKDddJ5bNgd6R
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C4:KAS-ECC-CDH_K-283_C4-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C4-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBVZy1zmYRRCJ4rfHEEtCJH3d0TLUCtCH
+tYjWo4XaZPWi9Gg4ArTLFYH54rN463pPZPWn1DILLKPTR0cm9nDDiDu42kfz10W+
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C4
+PeerKey=KAS-ECC-CDH_K-283_C4-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=04d4f04d2fcf1bcd8150eaded90e467d3d38f753b6fb54eed8f9d29cd3dcc7be2c83de11
+
+PrivateKey=KAS-ECC-CDH_K-283_C5
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAMcz2QlAMsx67WxUqM7X
+U+rypIiCKFo7TH5gIfJr7OByKECtoUwDSgAEAmiWsDnXBo2YoyZxDrt6l4vUdmEV
+RkWuMM2D1gU1Bn4FFRzLANg6Jjvb2Mir8DEL+/yDkXqGsNjEvgsVWre54scFYFYo
+u83Z
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C5-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAmiWsDnXBo2YoyZxDrt6l4vUdmEVRkWu
+MM2D1gU1Bn4FFRzLANg6Jjvb2Mir8DEL+/yDkXqGsNjEvgsVWre54scFYFYou83Z
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C5:KAS-ECC-CDH_K-283_C5-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C5-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAswopMt20UfZjfpnfcoU4XcTR7loHGXN
+tUDyLJB2E/3MsMjaB9QGX5kMj8N9EA7OOPv1dM5ETcNzVeBwK4DR6xvdZwmX6PJx
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C5
+PeerKey=KAS-ECC-CDH_K-283_C5-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01c343540541604f68ddbd63c483760d824ded5c18be7e56e6d36a9ac6d25772afb0a90a
+
+PrivateKey=KAS-ECC-CDH_K-283_C6
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkANs511Ngctw0SM19IWDl
+DIEfZINY6w2x1UKOgap6aGt4Za39oUwDSgAEA6chkGrRPcFcMR/U5VLzvIe32Szu
+7bsMMWqVJ4W6Ron8C6JwApUU84c7vDueIXBh96YmH9xiaGhfllbx1e6kcswttajB
+Yubp
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C6-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEA6chkGrRPcFcMR/U5VLzvIe32Szu7bsM
+MWqVJ4W6Ron8C6JwApUU84c7vDueIXBh96YmH9xiaGhfllbx1e6kcswttajBYubp
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C6:KAS-ECC-CDH_K-283_C6-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C6-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBjiA61OMcnXsuk21PZtowof7N3i+9RSX
+TR5+MamuNlohgUFfBK+fLPklQuH/j/KPjnyOgJWE4kOkkClJp2WihJhsdQsbBsia
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C6
+PeerKey=KAS-ECC-CDH_K-283_C6-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=05e38079815477b8a79096ce339c4a255f8b213be74715ea61ef7dd0c0b5f161d9de7521
+
+PrivateKey=KAS-ECC-CDH_K-283_C7
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAGZJv9ZB2r8bnUmdT7BL
+6wmUddCqFdXvaEi3NNLUEwCLYEMIoUwDSgAEAI9ldtYq/8cYNtGa27w9UEIQ8S77
+YcQgV4JFFSkMUC8uCbbYACFkO+h65uVJsNX7tVjBMD0UsczXdwPsdPlgLzXKjXpR
+Obzn
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C7-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAI9ldtYq/8cYNtGa27w9UEIQ8S77YcQg
+V4JFFSkMUC8uCbbYACFkO+h65uVJsNX7tVjBMD0UsczXdwPsdPlgLzXKjXpRObzn
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C7:KAS-ECC-CDH_K-283_C7-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C7-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBb/SiVouZjZtt6g3iMcrzkj3m1yVJKCK
+4nPHjOs5rpdVnVrDBKKwpV+AFVoaMw/ebLbZft2wqdy2bEmzkpBKvos4H5EJDbsh
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C7
+PeerKey=KAS-ECC-CDH_K-283_C7-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0531ccf51d1096982f7c2ec513a92bf51c7ac5069cb15c5e2a053ceae7e5550908a19101
+
+PrivateKey=KAS-ECC-CDH_K-283_C8
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAIGGCmU9bZREbXdmFk/5
+LGxcFUXHNTBLOtTVF4yLFNAYHpRxoUwDSgAEBraIFbuDaR0WdJxL4WEl4qbW2ulC
+UnObp78NsNUBmOov5D3fA54NkwGKRhJWIPb/rKWgZoNDxXAlpgwxqdblEZHKsziZ
+O0a1
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C8-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBraIFbuDaR0WdJxL4WEl4qbW2ulCUnOb
+p78NsNUBmOov5D3fA54NkwGKRhJWIPb/rKWgZoNDxXAlpgwxqdblEZHKsziZO0a1
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C8:KAS-ECC-CDH_K-283_C8-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C8-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBjVH91cL1pWXM8A9LmxMiJcfMUrc8ovI
+UdxS7U6MGk6gb4cCASLTdzsJNOkA+6fr/hrV7VvsD7Gp3c9O62HL7QQAdDE8CzFw
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C8
+PeerKey=KAS-ECC-CDH_K-283_C8-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=06ffe79d2b7664ee2d8303ffe0ceca8c49a581fcdb49c4af6a060ff204eea74f4cf39cef
+
+PrivateKey=KAS-ECC-CDH_K-283_C9
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkACJD6JGb16l87w6c3mPH
+bU4QcVApT8+N12dkUco7+lxe25ZMoUwDSgAEA+Q54+vfp6I6nesJ3hQZBcZTxPIC
+7fLPXwn674i6MRNwHknwBx0HG4btD0aPxgGd4j/kuiyztQAyvjXpLS5a9A3nBqtS
+ToKr
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C9-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEA+Q54+vfp6I6nesJ3hQZBcZTxPIC7fLP
+Xwn674i6MRNwHknwBx0HG4btD0aPxgGd4j/kuiyztQAyvjXpLS5a9A3nBqtSToKr
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C9:KAS-ECC-CDH_K-283_C9-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C9-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAJBH99dzl9tw45/p5Lqdl6mVp+4Gbs9T
+gXnpN6yGys2sUQlQAHzYdRZ/BqL7moGeLL2s78Fsrg7vLLsLLUm+rhCdt1PJUGFw
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C9
+PeerKey=KAS-ECC-CDH_K-283_C9-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0311c430db78b6203e27b52988e1e9dae890c655dac4acefa7ee9612bec32e3e5f52be55
+
+PrivateKey=KAS-ECC-CDH_K-283_C10
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAFEqQoQeEif8n+1RwiaH
+MWhBNvIlz79FZImH4kU6cYb2p+3voUwDSgAEAi925atxT994Vx6EwrbqOhfxKZm+
+SDvGfhuEPSCb3+wDR6Q+Au7B/A6F8zDFPa17/0hi2K//iqFPlHVulbjwH9fuuPxU
+UneH
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C10-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAi925atxT994Vx6EwrbqOhfxKZm+SDvG
+fhuEPSCb3+wDR6Q+Au7B/A6F8zDFPa17/0hi2K//iqFPlHVulbjwH9fuuPxUUneH
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C10:KAS-ECC-CDH_K-283_C10-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C10-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBL3sGTAMiv3u2GSZ0nA5It9Xsv/sN+Rc
+A6XikJ3jwzO9BqXhAapPQIRPJBPx/L3tADsdFcnx33VI3iorv3G1FmV62NjHfPct
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C10
+PeerKey=KAS-ECC-CDH_K-283_C10-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0701d92ed8687138014b4379f1c34677e1744f6ae8c89958a5962f14408d587b95472db3
+
+PrivateKey=KAS-ECC-CDH_K-283_C11
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkACqK9JfRo9rAcyo5Pe33
+U5Sj9RnOB/rtP3fcDmafOhscbdrboUwDSgAEBXHwyH+IiI7Ac4lhg0AhdlzE9cjb
+Kx+eqbj+mEf4lkNJ/cRPBO98gESmCWlHRsyq/of8f58aeNAPg1T12n7i9dpyNawa
+1LV8
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C11-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBXHwyH+IiI7Ac4lhg0AhdlzE9cjbKx+e
+qbj+mEf4lkNJ/cRPBO98gESmCWlHRsyq/of8f58aeNAPg1T12n7i9dpyNawa1LV8
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C11:KAS-ECC-CDH_K-283_C11-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C11-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBhH1OvS0iJkOelLlxzhWoedCebsPNtOr
+GYmyzNmTkbbGs6E9BU6pWiNPZYlxlbyXsD+m0kbqWrX0HaIsCO2BeqfASt83KYKz
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C11
+PeerKey=KAS-ECC-CDH_K-283_C11-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=04f2301ed85a5c91c31a7fd125854904340a55e34976a20743bd33d95e476450f301ee62
+
+PrivateKey=KAS-ECC-CDH_K-283_C12
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAd6fukqyTQbnSuWtNq4Z
+XCNgxyjrOMUO9TMynnDFrhn0ibbVoUwDSgAEBI1h4Lm4BkvMqM5A1PnmiyNoQTdy
+akTqdcjy+IUPAzP76YXmBfyro41R4hEra5805necEMDFWcPs0VYCKWbPkqjH9lAg
+p569
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C12-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBI1h4Lm4BkvMqM5A1PnmiyNoQTdyakTq
+dcjy+IUPAzP76YXmBfyro41R4hEra5805necEMDFWcPs0VYCKWbPkqjH9lAgp569
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C12:KAS-ECC-CDH_K-283_C12-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C12-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAScG7AoOdkJdirTg1VkwpEFuTdChr22X
+mHJSmI2grJYnV3y+BCFehxUSnMdjAXkXAdxf4avNZytqoZukx+Uy7nqRPupg28nQ
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C12
+PeerKey=KAS-ECC-CDH_K-283_C12-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0643900f337ed362815f181e0628ed5184dad3e66a1f030e947f116696312d835f7f6e7b
+
+PrivateKey=KAS-ECC-CDH_K-283_C13
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAV06Ii1XCcsznZPNKWUG
+ZPOb8yAcXR6G067495W5/d9H2MSooUwDSgAEAeK4jeN3KwnGPQNuDbukNSRph0l7
+YoPauMzxACSG3gcwJ3tDA84YK38M6iGgah1N6HIsv8WbnZ15vHYLnRfYVnFWGuqt
+1UlB
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C13-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAeK4jeN3KwnGPQNuDbukNSRph0l7YoPa
+uMzxACSG3gcwJ3tDA84YK38M6iGgah1N6HIsv8WbnZ15vHYLnRfYVnFWGuqt1UlB
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C13:KAS-ECC-CDH_K-283_C13-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C13-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBbsgvqT9hdAWJonFUAVAAUCbbHEtNWpS
+95PXiqLYJhpDxbbeAxvlyvyKrvGbhhUDQTp7c7YLN7AYBJPYLpQm9Htlhzk9CN4I
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C13
+PeerKey=KAS-ECC-CDH_K-283_C13-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=063b1a3db331f91abd0af837db9d5f040620d1ddd7fccf8b58e0df43698351ea1942548e
+
+PrivateKey=KAS-ECC-CDH_K-283_C14
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAJjFcGZnku/aZfyeeQmT
+EVjf1Ed76TMy5JPWmGa2YCxJUd5voUwDSgAEBNxndP5Gqw7Sdo03nnVko3xrsd0b
+/FVXJ62Uwg9HMsq/KiyCBsbPD0IfkfyiK0hxIWqfH+OHjweRTpaulKx3C2di+dzg
+j/ot
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C14-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBNxndP5Gqw7Sdo03nnVko3xrsd0b/FVX
+J62Uwg9HMsq/KiyCBsbPD0IfkfyiK0hxIWqfH+OHjweRTpaulKx3C2di+dzgj/ot
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C14:KAS-ECC-CDH_K-283_C14-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C14-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAQo8okNbE1/+oIeSt/GbTuGBIHwpvhzh
+/erNtppmn5zd6RgaAkkIJ0semMbRl+0ng8PJU8Gzs0+kOosvV0JYTjf+pAcmm0O/
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C14
+PeerKey=KAS-ECC-CDH_K-283_C14-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0516da1d64bc4b25ce4763e6438257d62fb1ffdeae16d68701d63b603ad53e8587927669
+
+PrivateKey=KAS-ECC-CDH_K-283_C15
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAPS220qHzdMAKcw76J5A
+ubywFNAQqRolLFbLKGcfNUqATLTYoUwDSgAEBm3fBIMf0ccrxItwkGHBrqqtGcna
+PYwVBvp3XU9aVBLu4ChtA6odExRv8ZJ5K3SlxkrTFQ+uNE+oMOD0RzPYZ/TgrgU1
+JsYr
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C15-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBm3fBIMf0ccrxItwkGHBrqqtGcnaPYwV
+Bvp3XU9aVBLu4ChtA6odExRv8ZJ5K3SlxkrTFQ+uNE+oMOD0RzPYZ/TgrgU1JsYr
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C15:KAS-ECC-CDH_K-283_C15-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C15-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBToN1hNeQ6EU5QAK7EC6JwmzphNzDxzC
+AGtEaTXiN7/Mw5TYA7Zs5s8BUH1GLu7/9iEb1MVgcBFsaQdGj3x2/gEUC/DV+3t5
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C15
+PeerKey=KAS-ECC-CDH_K-283_C15-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=049c68c333b96705eee4a3def0d568b0d4faf24df2fc2f1bf40da0af0946240c38e97f74
+
+PrivateKey=KAS-ECC-CDH_K-283_C16
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAauCxaYq5H7LzPZmzDMj
+s1EoxS0XvhG68721YAbl1Wi6rYu8oUwDSgAEAKBK16WDZmpAQ3+WiwLKx5RnRbTK
+lJAhxUQ963AYP4jhd4/gArtZHDLw2zQwNC8ON8RUScKTxU9rffb3l8CZLCgphYto
+Dyvc
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C16-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAKBK16WDZmpAQ3+WiwLKx5RnRbTKlJAh
+xUQ963AYP4jhd4/gArtZHDLw2zQwNC8ON8RUScKTxU9rffb3l8CZLCgphYtoDyvc
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C16:KAS-ECC-CDH_K-283_C16-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C16-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBtSm8+h7bYxJy+UXqXXSq4xjORNVltaz
+DMZcyAwShFCPSXibApY7NW8kNOwkm8tlie3k3jbOzTRQ5vXkd7/NwpraSu8PRaxT
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C16
+PeerKey=KAS-ECC-CDH_K-283_C16-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=04dd44c1a30edac2e39a5bc9902625880a18516385c90a9cc6b94c4f111e0260863ccab2
+
+PrivateKey=KAS-ECC-CDH_K-283_C17
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkABJUrxeRzHVpTOWQu1GK
+dwp1BEYXGjDt1sA4KhfmiAoa6luBoUwDSgAEArdmyZOzmNJCanoKSenQAQedD8Mh
+lxgcVurBgF5Ph8nfBV3qA257vTvpE51NQ6hlXvfVGgYtmUfRpIAQ7x6hDu3rJ/DR
+/+dl
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C17-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEArdmyZOzmNJCanoKSenQAQedD8Mhlxgc
+VurBgF5Ph8nfBV3qA257vTvpE51NQ6hlXvfVGgYtmUfRpIAQ7x6hDu3rJ/DR/+dl
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C17:KAS-ECC-CDH_K-283_C17-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C17-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEB2RS4Z16ELiFEj1QP10EM+Fj3xNP/7hV
+j4rCbPswYp+M+wk+BrOiSypLB3dw05a78VSvQe7jUDVzpt6a/g9tGLAvyXYcoWQ9
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C17
+PeerKey=KAS-ECC-CDH_K-283_C17-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0049c165339e9aeb2b516684b442921f1fef3091cf781e03fb3f56e93af1f3d6e500c81f
+
+PrivateKey=KAS-ECC-CDH_K-283_C18
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkASAXuaBZn78TzuEIUKj4
+vQbMwAvSmsZ3nxvZM0ayLJgyfg+noUwDSgAEBCHGLcq1S6gA6vrCMvxzDOcPbVzF
+P/U9NxJpzwRtrq9FGzPnA9Y19VIz2jxJCpWcbmOpT82+Rx+/yhnSxaP9ErBNs4DD
+yJXM
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C18-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBCHGLcq1S6gA6vrCMvxzDOcPbVzFP/U9
+NxJpzwRtrq9FGzPnA9Y19VIz2jxJCpWcbmOpT82+Rx+/yhnSxaP9ErBNs4DDyJXM
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C18:KAS-ECC-CDH_K-283_C18-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C18-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAY4Lt1FtLELp3ZbKr/XyC/3fPoYj/JR9
+TXBJFTZ5C4dBzdNyAywP/72i+oY8udFcNlRQINW7JNkw2vL+pFVffCTWrvuywB2S
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C18
+PeerKey=KAS-ECC-CDH_K-283_C18-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0645d7f4c5479baff5bc0cba654a3dcfda56c0e9d19f50f9d8d8c6357c09a140effbf223
+
+PrivateKey=KAS-ECC-CDH_K-283_C19
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAE8ZfIVDLLQqF3ckmuQR
+70uyZXukutNa5ThjWhUcjWpWT5zKoUwDSgAEBAyIkk1aJKhT+uQIrqWzvIJ9cxX7
+tY5uofamVnfdTE0wS9dfBUuChpraRDP3II+FcPJPBstkBG6KwIasV9Nwf8iCxjUn
+M9/2
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C19-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBAyIkk1aJKhT+uQIrqWzvIJ9cxX7tY5u
+ofamVnfdTE0wS9dfBUuChpraRDP3II+FcPJPBstkBG6KwIasV9Nwf8iCxjUnM9/2
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C19:KAS-ECC-CDH_K-283_C19-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C19-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAkq7FV5JEkKC6jLltURiGum1E6oEdto7
+3bdSYNX1+i57iYmHAb37CgeaVbz84cqLzjAZy8rmFkADOEFm67sLtzNTlWWtxEbz
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C19
+PeerKey=KAS-ECC-CDH_K-283_C19-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=028017c2a0240fd746ee72a0bcae1e53e05b7af254298094c381e735523854ea5fdd4f5c
+
+PrivateKey=KAS-ECC-CDH_K-283_C20
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAU6JNIPR2LdiHPSL0kvI
+oblbtAoIwWwyh0plK1miJSE5Qo2soUwDSgAEAVdOF84mMRxAq/MkP0iJournSoNB
+qng4VRBW9DlbjwK9wye+AIbln5hTSPP415U4ALHXXhQVISScQ/4GFpE9tdHUvVQA
+q85V
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C20-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAVdOF84mMRxAq/MkP0iJournSoNBqng4
+VRBW9DlbjwK9wye+AIbln5hTSPP415U4ALHXXhQVISScQ/4GFpE9tdHUvVQAq85V
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C20:KAS-ECC-CDH_K-283_C20-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C20-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEB1J1EryTSTjMUkDOcO9lIi24XBPJYcHz
+H5FCBQZ9ZLGkyFMUAqq9uB/+0sABrLtNC3vlOTBOMuQx4C34sZKtdO0bSwYGv8kL
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C20
+PeerKey=KAS-ECC-CDH_K-283_C20-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=02603c00998deba52db12814b1f77b2120cbc1dca59009c0d6ea40dcbcabca32c50380d8
+
+PrivateKey=KAS-ECC-CDH_K-283_C21
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAetvbJGogKVGIYXGpwDo
+Y3uPRH0J0bJRRg/lfxv0Yu/d3a7AoUwDSgAEAxswJhBDiDdM+3x7TvZCEaR+ILlW
+Gju8pTUWBAt72ig3MJRUAk+K6yOjXhwiIllnx5EYaMhO/dhz27zLx2Pq1n5yojJK
+pMby
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C21-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAxswJhBDiDdM+3x7TvZCEaR+ILlWGju8
+pTUWBAt72ig3MJRUAk+K6yOjXhwiIllnx5EYaMhO/dhz27zLx2Pq1n5yojJKpMby
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C21:KAS-ECC-CDH_K-283_C21-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C21-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEB+wp2i8wTOuo1eJJ62BUpOT1lTTuWdJc
+HcDhLMOPdouD2v/uARLH1KN/7IQicaCoItN2N+btVRkHEwAa7+EbBvfh004A/N7L
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C21
+PeerKey=KAS-ECC-CDH_K-283_C21-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=026a719bff31da4b4ebaed7bd043064f9c3930b5774c4a99809332c808aacba4b9e3733a
+
+PrivateKey=KAS-ECC-CDH_K-283_C22
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAUe+TjhmfjKmphq5gM7Z
+LkJpWSWxE8aUp5YK7eouHVcaQtPeoUwDSgAEBvWZ8MFJRXoy8aL/q9Tf+RYlk4KR
+K2QCtQzfXCNf3Rt5Dl6vBMzx2KS/63f/MpDmWsYB7luX/BsYaaLrnwt2J36AZsCG
+d2xA
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C22-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBvWZ8MFJRXoy8aL/q9Tf+RYlk4KRK2QC
+tQzfXCNf3Rt5Dl6vBMzx2KS/63f/MpDmWsYB7luX/BsYaaLrnwt2J36AZsCGd2xA
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C22:KAS-ECC-CDH_K-283_C22-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C22-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBh71k4nt+PgnOmYqQZVBHpRIuxt3+wgA
+vlJetaagOxlmVxmpApaG+Ed/tcdp77CCyz8aDHnbVcsmTiESwOd557VY9wBFgWoQ
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C22
+PeerKey=KAS-ECC-CDH_K-283_C22-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=048c48c993040619536f45482c494a39b32e75fe69e478ba06e376228b79eb83d3ff9168
+
+PrivateKey=KAS-ECC-CDH_K-283_C23
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAeGQC+Ya235VVZ2ZoLfZ
+NURW9RUeL9e4PABbELFgBOvodsBooUwDSgAEBC7Mmf9ItT9mGbSEr4+lmyNKmByc
+PpEHu9HNqszoGIXQbgKpAYPaDX/ufz5w4Rfw6KSnQsrRCu/NxKq5uzFFgjdoavtP
+rPOp
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C23-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBC7Mmf9ItT9mGbSEr4+lmyNKmBycPpEH
+u9HNqszoGIXQbgKpAYPaDX/ufz5w4Rfw6KSnQsrRCu/NxKq5uzFFgjdoavtPrPOp
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C23:KAS-ECC-CDH_K-283_C23-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C23-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEB51XYO5u+XhRi7zlNrAxxlWorPVgRJe6
+Q94L62h3pUfD7dRYBCGzBR3TY5bSD/zXzzT8oCJRbdS/+sc/yZWunqgUzg5AJ/fG
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C23
+PeerKey=KAS-ECC-CDH_K-283_C23-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=05d85b16bb2a0d32c73d1402838bdfa512d744fa88c74d3d90cf714c2480e03363d5c6ec
+
+PrivateKey=KAS-ECC-CDH_K-283_C24
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAHfkGrLQnDTFiKvHbUMS
+YC5x9gAZAnuYbg3tNyU1wrapM6UzoUwDSgAEApIzI/FwB0Ii06aih62v09H+EnFd
+V7kbH/R2orT8w4XeJh7MBMxJjWfGJnzHxMLUClbNwqbnFe3YsqlhTusz0Lb9Fiy7
+hacU
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-283_C24-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEApIzI/FwB0Ii06aih62v09H+EnFdV7kb
+H/R2orT8w4XeJh7MBMxJjWfGJnzHxMLUClbNwqbnFe3YsqlhTusz0Lb9Fiy7hacU
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-283_C24:KAS-ECC-CDH_K-283_C24-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-283_C24-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAkeE09PV6AIf/tiicJqfVNU5XZj6RCpl
+WgXdlCYrYDWW+L/xA+jjngjM5V4b7S3+DS+MFBsGQB26A37LOEdEkwyBeNFGQWMk
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-283_C24
+PeerKey=KAS-ECC-CDH_K-283_C24-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=066abb838b5f12b6fc15ceb745600686bc2d5773e53469c2ee920cfba5459a1cab20d153
+
+PrivateKey=KAS-ECC-CDH_K-409_C0
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDMIS3EePGCCLnD6aCi1
+q/sORIiIs1sMi7CfgGYW3B7PIt2GI32TfBv95it1rmVZU/xrL36hbANqAAQAaKP4
+sS4C0Q4vUglVJrxASLj2rDqEUxdyhweJk48a7/gT4F5QnqlYfSt+SqFDRLrD7Ebw
+ANHOtAx9XzKX4pVfDz6xQis+a7v79+tRi5wXro1A/rhKrzb15b2WB1srTb5TisAR
+lirHBQ==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C0-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAGij+LEuAtEOL1IJVSa8QEi49qw6hFMX
+cocHiZOPGu/4E+BeUJ6pWH0rfkqhQ0S6w+xG8ADRzrQMfV8yl+KVXw8+sUIrPmu7
++/frUYucF66NQP64Sq829eW9lgdbK02+U4rAEZYqxwU=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C0:KAS-ECC-CDH_K-409_C0-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C0-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAXf3NvYRYyDK+7W03sIC1AUIGC/gERib
+geHzmY9UCGB6RrsVCsR7yqr95HuKe3L0eLwi0gHfTvSzfgEk5Vtn81ht4kqIpsXZ
+iFQAfUsMS0zNaNUfr6dji75VXWC3Te8hfGpjxbQGj7c=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C0
+PeerKey=KAS-ECC-CDH_K-409_C0-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0176bc5c4036ce5125493a58dd265f04d190f028366f7799f70aedf29ac67b5b37c37238593377a47944f5b639f43856dbd560ec
+
+PrivateKey=KAS-ECC-CDH_K-409_C1
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDNlGIu3eW5FH0RyehoG
+dEQN0z0litL9x7mPr2SxHn6M5ejCHnmfH/L9KdTJSqFYliBopZ+hbANqAAQAMsV2
+hFLzwfO8VIeTea1CCJEmd0Kzf7CW7nuMIc7tAEHpRwzsO+3LeZ6QvbsxGSCD/wNE
+APnGEikn+4JCRtHcHOD95xpoSagtQQZdodhSVqmxl5v38oY2b8izJIk+vjTlnARg
+BzmUFA==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C1-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEADLFdoRS88HzvFSHk3mtQgiRJndCs3+w
+lu57jCHO7QBB6UcM7Dvty3mekL27MRkgg/8DRAD5xhIpJ/uCQkbR3Bzg/ecaaEmo
+LUEGXaHYUlapsZeb9/KGNm/IsySJPr405ZwEYAc5lBQ=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C1:KAS-ECC-CDH_K-409_C1-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C1-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAQxMaKnxpioyZVa22XennNnER2wFsa3U
+os/TBoJJo8OSOCJCjTUsXXTl1krM7tvapu++TACGaulA3TG15uPyCztNh6agLHgX
+PICqUQpu3/hSxinmBk3118YA/Zjljo6MZiu0uWyLqQU=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C1
+PeerKey=KAS-ECC-CDH_K-409_C1-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00575d9e7f70a4a1c5c807b6b5d6b7330bdd764db2aa60f3bfe497e6bfe90f038fb4f6acf7ac06efc3d157c3dc907b2ae093c6a2
+
+PrivateKey=KAS-ECC-CDH_K-409_C2
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDNssXw/whq0jlw3F8eR
+EY1HYeLFGYa/FHlCVU3FoYv5u2xnvbupCKHouo53kPWaOXE09oOhbANqAAQAK4kE
+GK/FeXyXRqRMoFk2euBmO88FgVaGDGE+4F4R2j8veZxwpo/nL9XawkadqhgQcCne
+ATVpBLGXv54GV/Q0nSUruzdcZiBvwNgxJZm9vv7oYI7JSNzkhoB7qlNe0GrayceX
+Y0cRqw==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C2-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEACuJBBivxXl8l0akTKBZNnrgZjvPBYFW
+hgxhPuBeEdo/L3mccKaP5y/V2sJGnaoYEHAp3gE1aQSxl7+eBlf0NJ0lK7s3XGYg
+b8DYMSWZvb7+6GCOyUjc5IaAe6pTXtBq2snHl2NHEas=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C2:KAS-ECC-CDH_K-409_C2-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C2-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAeTVgNXprYFnHGzWYtVWm6/k11qk9Emu
+1WvYAGGVIMnzLE4jDE2RscQR+QhtUpG6E3AUogAMj/tCOS/zl7vUZ5cvPtJR1aB5
+ll2gsdKjzBbDHSVdzpiGk3styUHqsNi+i7zRWqbtltY=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C2
+PeerKey=KAS-ECC-CDH_K-409_C2-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00ce87aa5e7700384df59d3f1075d282c1aa511391c42ef609b8de1264eca8f7737df91565c73ee884ea882d47c56d979141f0f2
+
+PrivateKey=KAS-ECC-CDH_K-409_C3
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDMR1DvAjanOXe/JS075
+DZMk3ggDR/9N+GZF0yVgOi3/0o7K8HdexTyvWlVOr4toSH34hlShbANqAAQBJXtq
+vUcNKUtZ3a7azVRdz0OAiviQ9XYoiAM0L8Yes5b1YK90NC4Qu5TSJMJNjlkA5bly
+AdzK2X7O9Dh6HPUSsW3VvHq2FfvFCHrBnV/Cdi9hW0kE6jk0O7sYXbZKGff3Ds8N
+VXsV6A==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C3-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEASV7ar1HDSlLWd2u2s1UXc9DgIr4kPV2
+KIgDNC/GHrOW9WCvdDQuELuU0iTCTY5ZAOW5cgHcytl+zvQ4ehz1ErFt1bx6thX7
+xQh6wZ1fwnYvYVtJBOo5NDu7GF22Shn39w7PDVV7Feg=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C3:KAS-ECC-CDH_K-409_C3-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C3-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEALfRk1TK3MlHCCZ67Ysj5ITjKgOBSwJq
+gA9boB6SBMQwUuTUfG/NkjKWVODpAVsBL3k0SgF5lcFXlsWuk+CiB6JwcAT7saSa
+DUf9QE8S1XhJ2Dl81NLG0rS5D4ZEA9Ss0Woyt/9Id7Q=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C3
+PeerKey=KAS-ECC-CDH_K-409_C3-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00691dd6b5177702d6a0b1f8b07f3b018478680de7ee079272ff75659335c96afcea7650caa01f996aa37946b78e14a83e579fb4
+
+PrivateKey=KAS-ECC-CDH_K-409_C4
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDMNayWWVtUmd33ttSRq
+GS8MBccnCjtOZKnWyHfNBtKWKhrITsLYl2X5Z/YETy36VpAxB/OhbANqAAQBk6+h
+O9Hggc7l3xKG/kSik7fRsQwpCl8q574tAnNgCaJtg6qqkBeoyL9g76Ffzq0Hdn1I
+AdAv1mp4BsTIRF+mFSVP8yu5wdhaOQT5OcEGHiUNPrZBMTCipVcJlHlTEOltw6/z
+uCGK0w==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C4-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAZOvoTvR4IHO5d8Shv5EopO30bEMKQpf
+Kue+LQJzYAmibYOqqpAXqMi/YO+hX86tB3Z9SAHQL9ZqeAbEyERfphUlT/MrucHY
+WjkE+TnBBh4lDT62QTEwoqVXCZR5UxDpbcOv87ghitM=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C4:KAS-ECC-CDH_K-409_C4-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C4-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAPKhHM06U8leqY8xRPt31KaE+aH0I+uB
+46i/viK2gPIYcPWMrraUbGs7hzaZz/0xQGP0CAD98m7t5sunJIJAcgkGzgdsxDIt
+GLx2g9IkC6aEds55AieAsvpU4PfHZSi3f6Yx/lq7W5U=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C4
+PeerKey=KAS-ECC-CDH_K-409_C4-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0136f5c04cf9a56db24ad99bd286feb800aea38d44f819be1c2a9dba15c635c4e122893570233a4c5754a41499eafa39a35aa57e
+
+PrivateKey=KAS-ECC-CDH_K-409_C5
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDNL9zUbGVh10B9jBsoS
+fbihpfWXcZwNEOHWj11IVb8HYFeQaR/NDYtdsTfT/CZ53nWgZ4GhbANqAAQB04Zk
+WqpI4v0JUOaprOnf9iyPXpTNukW9c8a+a/e3Y6LJqAeEYxLaOrghwEmsCGH4Izfw
+ACpkNu+KEmGuzDjIIdp3Sjkf3Md1DJQ32d/mTIIzUIE5mfD9Twfx1tmAdAmGErxS
+BEJJ1A==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C5-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAdOGZFqqSOL9CVDmqazp3/Ysj16UzbpF
+vXPGvmv3t2OiyagHhGMS2jq4IcBJrAhh+CM38AAqZDbvihJhrsw4yCHad0o5H9zH
+dQyUN9nf5kyCM1CBOZnw/U8H8dbZgHQJhhK8UgRCSdQ=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C5:KAS-ECC-CDH_K-409_C5-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C5-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEARdEn76mstX06OTTmnIoQkzwb0Vr8645
+vB+yqZ5Bg7cW4ZT8UHRlZk0AnVvO46QmupMsEAEUbTK3DwnmX89p65rmYWLRC9BD
+ad6OgYf6nD0bXdom8QtGnNSSXKN+CZRBV1fmiV5YgUU=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C5
+PeerKey=KAS-ECC-CDH_K-409_C5-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=004f684f9d559d16485f0023bf012006265ed81f06fbc1441334a559e5500a3f77603565013694023e0d8f44fd12dcf69eb8d654
+
+PrivateKey=KAS-ECC-CDH_K-409_C6
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDNp2mWQEDRcaQD97LMd
++bq+2+QlM5gpCzQBL7E0vFkUdXLmKmD1yszth7D40f98BJ3+lpKhbANqAAQAOGhw
+GffCGd3ZVnsg9eoeilBFHdQL9bZfey4TPebzbko/j6L5d+/pIPhF0XbIpXAjzFXC
+AUk5f7xCus+FxZ4EU13x1ScVdh7qmX1P+HIEhmzcPUpUwkJa0hSnoN1ZL0qZGrdo
+yPQEvg==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C6-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEADhocBn3whnd2VZ7IPXqHopQRR3UC/W2
+X3suEz3m825KP4+i+Xfv6SD4RdF2yKVwI8xVwgFJOX+8QrrPhcWeBFNd8dUnFXYe
+6pl9T/hyBIZs3D1KVMJCWtIUp6DdWS9KmRq3aMj0BL4=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C6:KAS-ECC-CDH_K-409_C6-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C6-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEARmYDxEUne5eLC0AVh08JqQqWkTodHZd
+3aTYGOpwTtu6I6vtXgi+ktZV155VxbxUeHtN1AE2az3aPph5xEgd3DZ+UcHAVBlF
+lkY21QIWh8KFxH1A55/38LtWqTrFYL6Ny5cPWLI7EKc=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C6
+PeerKey=KAS-ECC-CDH_K-409_C6-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00137894f637460a63576824536944cddb42dfe63169c84040a0345ad7516ec4f1ad00bb4de20ea6ea43824b9b0f74dfa6881cfc
+
+PrivateKey=KAS-ECC-CDH_K-409_C7
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDMG39qzyhsqKCHO/bWH
+K7lfAjFhrk4tVJ0PsfOCVjQTWESRZX2xAcMjUUgyw2P2NqnmnoOhbANqAAQAPpqb
+XyggZuIzhw3LAMSu0tc6Mx951JyNXC2TkIsO9ecrdIgU0biEBkLXW3qaVTAbHnyC
+AQhfV2keBK+sbohOL9vY34AvTUNbzmESMasydHYerV4uajRKU/M8D6FW4xMgYvcr
+zaP8DA==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C7-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAD6am18oIGbiM4cNywDErtLXOjMfedSc
+jVwtk5CLDvXnK3SIFNG4hAZC11t6mlUwGx58ggEIX1dpHgSvrG6ITi/b2N+AL01D
+W85hEjGrMnR2Hq1eLmo0SlPzPA+hVuMTIGL3K82j/Aw=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C7:KAS-ECC-CDH_K-409_C7-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C7-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAfo5tdM3XUMkeslQAGHr/3oMFbjF3+nH
+UXhDhsmBhg3m4blYTaD0IRlBfzIzgpCRCpolngAr3s1QK6ZKbyHQj6QlA4nUJwMk
+RW6UQWV0lccq12D7NIMl+Jt6VASiwhwqoHcRvPXzBBI=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C7
+PeerKey=KAS-ECC-CDH_K-409_C7-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00f03b0b43a351311689eb1d3fc457013f294a7d02ad850c72e4ff9b64ce68a47beb49bc5bcbdc828534f8c8a5e13de5fe522eb0
+
+PrivateKey=KAS-ECC-CDH_K-409_C8
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDMpsvyzCFlql1xbTNHn
+UmfFQk4Ad0EU7CBRpXGymXZhifrSTpL5bj1SdzbqSANnvb3QUw6hbANqAAQBTHVz
+mb4gHgiv2LSmcefTttf4hESYq1kuG/aTFTR86C29eF1FkiZg1NDSf6KwrGLnB/zs
+AJjwdz0+/pwpCpkuygWHXTRj8HNrLf70r/2f8A+WreUzmZF96gdMeY/FNXOPDFaJ
+okR/hg==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C8-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAUx1c5m+IB4Ir9i0pnHn07bX+IREmKtZ
+Lhv2kxU0fOgtvXhdRZImYNTQ0n+isKxi5wf87ACY8Hc9Pv6cKQqZLsoFh100Y/Bz
+ay3+9K/9n/APlq3lM5mRfeoHTHmPxTVzjwxWiaJEf4Y=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C8:KAS-ECC-CDH_K-409_C8-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C8-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAbJV1bt10llwMB3p4OOVmhIgXVEfjmTw
+QqAclQ20cbHW1YR/dWae6wvxh/FVnbOyKu7AlgF+WQz6hVNJE2GYwt3YpSEIgkc8
+ndWRwC4gLKBAS7yfY5HXOuAR2smWUVXSZQE5/i5U7Gc=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C8
+PeerKey=KAS-ECC-CDH_K-409_C8-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=018f55b81f15f862aed042f37433050ac61718c9939d432b2a20e12d647f99753b8dd5127cf8963247fe7e1d5ade1442229bc646
+
+PrivateKey=KAS-ECC-CDH_K-409_C9
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDMbmAFcAgLqFkF5caNz
+BCUIOb1qbl2DSX9/k/D3Ryoh/OS+W+d26QlZ28QaDoXtIlg36NWhbANqAAQB/sCf
+lFcWFOfNjpWOvNei/NjCSNQIzbo1ljBUXDE4OSJ3TTsk4gWR2LQelU4WZU/oXLrK
+ADHg6x3RzkZ6i3jRDSW53pLP3Cdzgx5uKKFS0CripaUQmUzAEEYiVEQepBEhwGd/
+tBeL2g==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C9-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAf7An5RXFhTnzY6VjrzXovzYwkjUCM26
+NZYwVFwxODkid007JOIFkdi0HpVOFmVP6Fy6ygAx4Osd0c5Geot40Q0lud6Sz9wn
+c4MebiihUtAq4qWlEJlMwBBGIlREHqQRIcBnf7QXi9o=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C9:KAS-ECC-CDH_K-409_C9-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C9-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAOz3Bk9Sj62uOAyzgphIEQR6DX3ZqN6O
+dvgXiqYAaed6lIrPp00sd6doUWWamBlwVNqNRAC5jhNJf3dgcnEcQsGNv8jrjIUj
+/2M6+Yih8kLtPDxWXRjPIk+HUfKULjYLoW4PWDCVKRk=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C9
+PeerKey=KAS-ECC-CDH_K-409_C9-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=002b560d1949297dc7e1bbe8ce49a595762924afcf0271e9c493c18ad5cbfcea5f3900c7b793ae5dd44f48884b0bc3b52c66e05a
+
+PrivateKey=KAS-ECC-CDH_K-409_C10
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDNHO87LE3cR5eiXY6QP
+d9vi6owlCdIJBk45z5Ba+qkBCF+OeVybgBfJpdChuWgSwSSj/7+hbANqAAQByOmt
+xIFuZgb//14afUinhUw1qvBV0xgz8Mq96LvE0kWOPNPIKkr4B0X1lbO6Evi1wM6Q
+APxD8ZO1WJruYphXNeNig3TdRahqYbqveMIfpueHhW6muLiDFlQFcYJYZc5rhXit
+1fqmnw==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C10-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAcjprcSBbmYG//9eGn1Ip4VMNarwVdMY
+M/DKvei7xNJFjjzTyCpK+AdF9ZWzuhL4tcDOkAD8Q/GTtVia7mKYVzXjYoN03UWo
+amG6r3jCH6bnh4Vupri4gxZUBXGCWGXOa4V4rdX6pp8=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C10:KAS-ECC-CDH_K-409_C10-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C10-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAE4Fw02sRObhsIzfrmNXwg23pUTcJT3/
+HCPU26hxuWeBtqYWONc4Zdr+CpRDw+wyiFfSPgEibEJ3eLsiRiTNIVST16TzKk8U
+GXkjZAlQXYz1jYHf08eT5ZVDp4AxTzzY7hdmTcLkY54=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C10
+PeerKey=KAS-ECC-CDH_K-409_C10-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=000b43cb539bb4bb42f195ffdbcdeb482b69301c0155a840cd381f55c465a8e57ec51d6555871537b56bf84a1544cae2b2b8eb38
+
+PrivateKey=KAS-ECC-CDH_K-409_C11
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDMg3d1nE0pBg3i6oN38
+kRHAou1JKyiVad0AYb8SJtI1vapSA9Pvor0BQdKs4nw66Oba8R+hbANqAAQBZ9V3
+sqQ8wafYimvog8KNv0jD4fvyGtg+en49dT+wttP4DNE3b9mL4mD0lHV83AYyVtWy
+AV7XADt9K9XgNZMDZgrdCQBJA5z33zlpieoYxwL3BMRc9v3nrQctMSU9HVKV6cXR
+1cYsOw==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C11-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAWfVd7KkPMGn2Ipr6IPCjb9Iw+H78hrY
+Pnp+PXU/sLbT+AzRN2/Zi+Jg9JR1fNwGMlbVsgFe1wA7fSvV4DWTA2YK3QkASQOc
+9985aYnqGMcC9wTEXPb9560HLTElPR1SlenF0dXGLDs=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C11:KAS-ECC-CDH_K-409_C11-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C11-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAW9pYP0jV9L3C193i+XgqnFVa50vTM6x
+T3gS2oWKuHKBi0YQ1BqPZiALQ0NCIifZ/d9xLgCq9ZKnJedzg4iJa5vp94wcPWly
+ufmQNNAswPl3ap9sL5t9UB91vhhZmwiMTFiBxmFG5bk=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C11
+PeerKey=KAS-ECC-CDH_K-409_C11-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0113dd2cf8732ceb8a893e149f13d52026e5d829322d0f1233a624fd6b74d56e7e6374d70942a25152ce5073831660333fb3e070
+
+PrivateKey=KAS-ECC-CDH_K-409_C12
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDNgelplMhd7UvI0knF9
+0Keyr5jgSIT3cHXkYEQQxQRKCEYezzfE76PtwstmfIS4ZBWTa3ChbANqAAQAClZ3
+rGwA0mRgVNvr/FNtsKmzUaJAinPgg61i0YL7h8uAMixTlVPs28ITzoTGbd+NwdI0
+ATJ6CjdpJA/aRflLsHNhx0qoyNEZQUp7VmbiWjq2iBl1OWMlp39UGhuiaAEqgsUR
+DSpJ4g==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C12-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAApWd6xsANJkYFTb6/xTbbCps1GiQIpz
+4IOtYtGC+4fLgDIsU5VT7NvCE86Exm3fjcHSNAEyego3aSQP2kX5S7BzYcdKqMjR
+GUFKe1Zm4lo6togZdTljJad/VBobomgBKoLFEQ0qSeI=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C12:KAS-ECC-CDH_K-409_C12-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C12-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAPVJxH3I6S/s04tXUIlYgORJ8eMavgux
+6syEKY+DYQjlowjMuVeNy9S+YXd1LrIx548BHACTZj7D/LVNZ2iXv8ldteVK1u6h
+7HtGykvz0lNYOfEByz5tXxG2o2v0A2PDHJ+IE3hiZ08=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C12
+PeerKey=KAS-ECC-CDH_K-409_C12-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00c8e62ac25c11e86b98642e4ec7adde9d9436f9337369fb065abc9ea784f90b8b8bebae35da92185486191dd9f49370b1148ce6
+
+PrivateKey=KAS-ECC-CDH_K-409_C13
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDM02ppFNxHwSgseobmv
+cB4Nw6Vc3VheQ+Ps9B6TTsr4gP8WFNzlzJkqaa3fxAja4bCbjQWhbANqAAQB97/0
+NVR6iVFtAX0b2sTNo2BBoNPf0DJYVisuKPQM1k9q4rcEV3c/lnXP/EDAIeRwKwjW
+ABPFmnLwyD9buQoL/ueYlS+5HuMpyYxLWRT0Ra58hIN2cFK19SmXRiFUXdzWN39e
+OH1XPA==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C13-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAfe/9DVUeolRbQF9G9rEzaNgQaDT39Ay
+WFYrLij0DNZPauK3BFd3P5Z1z/xAwCHkcCsI1gATxZpy8Mg/W7kKC/7nmJUvuR7j
+KcmMS1kU9EWufISDdnBStfUpl0YhVF3c1jd/Xjh9Vzw=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C13:KAS-ECC-CDH_K-409_C13-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C13-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAEEeXUyW413ptUHaX6xpEzZGLIgtjozk
+1utxIUF+cJUMTZUC9kVl1abPpzXJDu+Dx7hh4gCWuQTjfKHC21mlRhVifhwzVhYP
+4XUoSq3DsvoGugswqqB8hOZOSGUuX+swNZUGbg+EaPc=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C13
+PeerKey=KAS-ECC-CDH_K-409_C13-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=012505746f1a40ef75f950595211ce04f87f1daffffdf8c12600a9e2994c8c1d8b19c0e0559adf9a94762cb983569de6d0d8baca
+
+PrivateKey=KAS-ECC-CDH_K-409_C14
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDMxQa+7qLTZ8MvoKX82
+WHMZZzlGXj4gqJr5/fiwHRlaoQUuYXa1+thWE2trMg7r/AjBzQGhbANqAAQBgF/8
+V26KRfBil7IzXQOryK39Fa03522A07QYDV9y78kPPysDas2Bf0D9SQZKol6jg8gu
+AfItprUKxWKJQ/BbFBSTyswPArzfO//bQ1gjQ7aGFXYaGAvX0asd3BX1N0qPZl0T
+tLkScg==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C14-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAYBf/FduikXwYpeyM10Dq8it/RWtN+dt
+gNO0GA1fcu/JDz8rA2rNgX9A/UkGSqJeo4PILgHyLaa1CsViiUPwWxQUk8rMDwK8
+3zv/20NYI0O2hhV2GhgL19GrHdwV9TdKj2ZdE7S5EnI=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C14:KAS-ECC-CDH_K-409_C14-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C14-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAA+oJD8ACjOYgIofiP/Fo0KWj+5ceyap
+4f+ibvqIXnThxWICfZXbCMwVvSWj/BGrTcE8ogD+1ofHGX/xrrmA5yo6fDGBQgUs
+I4mwhm2zuH5cgCXnm7T0+Zb6Y1KrnLIBcu941v/KkG8=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C14
+PeerKey=KAS-ECC-CDH_K-409_C14-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=019a71ab576546e2351aa92b6075e8229813e6a2cb3647147b192b4597f1217223e7197d846c0d65ea0d4aa4c503bd000ba312ba
+
+PrivateKey=KAS-ECC-CDH_K-409_C15
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDNOUXeWysnXx1MW615o
+lj/mMkeB+rmG6UAgDnEd2/mILZmmIKl2NS4klnSM+2Hcy/bWWcyhbANqAAQAVqRS
++x1VgHnD6RvyL4aITKiXiIBv59bWykC1SFB5133EPkZqcSWXksZf9qtyBAZsDmeo
+AfKbcj2ffU3mzML5cIB5xdMK5dlg5ip8T23Ji/yVtPUx8ZfDlIZwVDJZQgPCUUcV
+bf1bXA==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C15-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAFakUvsdVYB5w+kb8i+GiEyol4iAb+fW
+1spAtUhQedd9xD5GanEll5LGX/arcgQGbA5nqAHym3I9n31N5szC+XCAecXTCuXZ
+YOYqfE9tyYv8lbT1MfGXw5SGcFQyWUIDwlFHFW39W1w=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C15:KAS-ECC-CDH_K-409_C15-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C15-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAL59WAQyY6svQiUtQbWC2GLCskPOGFdg
+gb1u3S9j8BZPNlyuZyaNIn85RGd+HBRq+GS4rgGkvLxkFthll6FIyk1hDuZWoAAm
+zmBHvZ+9QNiVMBlqRpOuWV1plWUDudKrSqvnyVihTGk=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C15
+PeerKey=KAS-ECC-CDH_K-409_C15-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=014f4b7ea93c9dd846d2228c2b6a8dfe616057232b7af845a570cb6cacf9feef2d8ef4fafb285b38e63cce0a09b4d82dbe43a390
+
+PrivateKey=KAS-ECC-CDH_K-409_C16
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDMcgLZNUegCVpnnvixL
+mDz6S36RsRLi7KX50Mt+PU+Fr/ezOpIeqhJMtwAuq2KXPWXha8mhbANqAAQB/Q5O
+r7JsCMn450fUmR9GjHa0hkFm43ZCtYPbKFpLxMM5eZF9kSmpHLCnXBrufNT7q3PO
+AEaO+rz0SPzOgh896B6ZTXmn2Z6piayB+hNfesiLFUx2eQnGgffkjACy5mu664+G
+iPRGcg==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C16-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAf0OTq+ybAjJ+OdH1JkfRox2tIZBZuN2
+QrWD2yhaS8TDOXmRfZEpqRywp1wa7nzU+6tzzgBGjvq89Ej8zoIfPegemU15p9me
+qYmsgfoTX3rIixVMdnkJxoH35IwAsuZruuuPhoj0RnI=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C16:KAS-ECC-CDH_K-409_C16-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C16-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAR/qWNnjbPjtTvO0L3fM6pO/VCrJIUHc
+LAlAYZhfPfeG0ZKle+4HJVCzAlg/D5QoMBsbdgGz3MG4o1RSZEJzhjKeuB/pkmVA
+QGlHgcDYsnweSUQrmbq5Pvlmb+oU1IQ+5LxbBFrFDBE=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C16
+PeerKey=KAS-ECC-CDH_K-409_C16-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=001fe2ed30ad4143c5eeb0b7622e6aa49e4e4d51c1ddc467b3fc54215dae931be0b6b6443e716895acb6570cdc21fcbdae46e5d6
+
+PrivateKey=KAS-ECC-CDH_K-409_C17
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDNDyWwyz2SLA2ESQhrb
+qpJc1UF1q6055Wgb/J60sbZJrsHIduwexGEPGzsGUUpI5up6SiWhbANqAAQA3hge
+gbnnd21HRpSi0STQuHbZVI8g7jOGMElF2RMfkEV9m5ON8JiwNb7ar4DtbZeUBPxw
+AYGjUW2+qdqX1uzs2xD5bVRGnSc6s2bomkD9ztzxvag31cFL0QwLaiqcikeBASXH
+ZN017w==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C17-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAN4YHoG553dtR0aUotEk0Lh22VSPIO4z
+hjBJRdkTH5BFfZuTjfCYsDW+2q+A7W2XlAT8cAGBo1Ftvqnal9bs7NsQ+W1URp0n
+OrNm6JpA/c7c8b2oN9XBS9EMC2oqnIpHgQElx2TdNe8=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C17:KAS-ECC-CDH_K-409_C17-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C17-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAMqAk0C9EzVLYHHQc+Zbmw0rrILiKr/K
+x+cK/Z0iSFLw4hKXbl7II+uJUOArx1ns9W95qAAxKB6JdkAaq1j6jq+GNv6wExcL
+yrV4G+CijScznpRw4WbH9oXy6pFDMQ3KGzq44cjmBZI=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C17
+PeerKey=KAS-ECC-CDH_K-409_C17-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01610efb48fd22261921f7484ed6382fceb6bdf28f3bc2340a175b7971b93ed5ff357ed55e5307bbf42e40a5b3fabdaed0ce19a2
+
+PrivateKey=KAS-ECC-CDH_K-409_C18
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDM2NoVLjuAlS7LQ6+3H
+ILZrIBKaIfGk/jkRjP3U0Tfb5eVw6+LEin+awhz/PlrfR0NGl9uhbANqAAQB78DN
+GobOdUTyX0TmOgkTwR/WsIvAmtjNgvOvfjKnp+ys1W4lUmWJMTh51Kf9Q4LUEU5K
+AFo073QDWZwvg/PoMplSSJPyQY/5XWwv3Ao9uXDmL93PTNoYKqeLVP2MLoGPse4t
+0ndnYw==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C18-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAe/AzRqGznVE8l9E5joJE8Ef1rCLwJrY
+zYLzr34yp6fsrNVuJVJliTE4edSn/UOC1BFOSgBaNO90A1mcL4Pz6DKZUkiT8kGP
++V1sL9wKPblw5i/dz0zaGCqni1T9jC6Bj7HuLdJ3Z2M=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C18:KAS-ECC-CDH_K-409_C18-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C18-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAHR5WwqcoHBJH7VKO8JJmB3vvsA35AQP
+dmVkKLFTi5eFA/gfgK2e+XxeEnulHsBAWEuaIAA+zifz2u/nvf/fpyeyr5WvhZGv
+lGzd/jfoVkO40XnKi5UpEG+cXzqVqIGSJfnX1Kcw/SI=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C18
+PeerKey=KAS-ECC-CDH_K-409_C18-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=008d990982aac8d5371b867de21e09064fef30e73321337dc24f19ad5ddb6c4ad217136b7c61e360a73fa7571d526c8f514a06d4
+
+PrivateKey=KAS-ECC-CDH_K-409_C19
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDNJmKBioyFwuzWJVNLC
+SW2ohiAIJ/oTVmg2ribjjVGSbKPSAlife/on6iLTmZc9tvn96fShbANqAAQA9xWQ
+sEKQtfPNm6DjlKO+WhUU9F5TSX9s3tv4OXKOAogTXXaeSyiTLIdYI/4lbokZl8R2
+AJ0WunJqWp4JEDvJSgnYB5rI7fI0EMhGn3n1XzNVz7OtcDYk7G117OrjiB2iCQPH
+HeH1rA==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C19-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAPcVkLBCkLXzzZug45SjvloVFPReU0l/
+bN7b+DlyjgKIE112nksokyyHWCP+JW6JGZfEdgCdFrpyalqeCRA7yUoJ2AeayO3y
+NBDIRp959V8zVc+zrXA2JOxtdezq44gdogkDxx3h9aw=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C19:KAS-ECC-CDH_K-409_C19-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C19-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAR62TtQknhGVstEwejWlFNZtKbpvkET5
+wCtLLTyz49TAzcVInN37liJsnOPjb7j/Lu8gjACZiAsNDUPFxXmtd92uaPLJF/Sw
+YuqNd3uc30Zcu1kQfnCZJxToy/rHYpbV7emcSNOKiXM=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C19
+PeerKey=KAS-ECC-CDH_K-409_C19-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0155dc98729c8c1bc65eb8a3ec09135f46bfa313bf56aa3169e312db8991abda338f8ac7a75bce42884068efb7e6e625939d2b88
+
+PrivateKey=KAS-ECC-CDH_K-409_C20
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDNaP4Bf48Mmb+s+C7fa
+Z2G7EXYYvFevNXtT8Znm5MvBKBl1MhQD6m3mGOwy6GuMoeENfEOhbANqAAQBrkYO
+EkhQTTPWftdQ8dYY5Tco1V45DfwY2UtW27PTwL3JbJLKHsqfRPuKWM823PzAWIy+
+APcBH8Mh72JY3Pwf3CwKTlTIbsk5vJzspsKRdQwf9UCzSkGHk4QqLFyrYGHbvptb
+4/phFQ==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C20-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAa5GDhJIUE0z1n7XUPHWGOU3KNVeOQ38
+GNlLVtuz08C9yWySyh7Kn0T7iljPNtz8wFiMvgD3AR/DIe9iWNz8H9wsCk5UyG7J
+Obyc7KbCkXUMH/VAs0pBh5OEKixcq2Bh276bW+P6YRU=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C20:KAS-ECC-CDH_K-409_C20-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C20-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAKFelqd26tuPigthNgM1y1AX19lxFkiT
+QemVFX8a3xeOVii60+gwvuVEMxGRZIhttcNGVABVHKVgXkrgU0U0oKs0PQOaO6eh
+zOgyxNZeJrrnq45fnHSz1CGlKOVZd4qye1mq4akW1Os=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C20
+PeerKey=KAS-ECC-CDH_K-409_C20-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0109e85c684d027a625ec5e6df952e2f20a14ed5b092d1b1b38435251303844d230fffc53d84b923555e1e1cbebe20b5d68c3bc6
+
+PrivateKey=KAS-ECC-CDH_K-409_C21
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDNVkB6bZYa38zcmYOvP
+6QJJkAyQLXxjKo0X+uIdP94wNzJbV3XqxaF0oe4rP/K8XOadjMGhbANqAAQAupUi
+M1Mbamx63m8zjST8ZXd7XTBSl+ZtMssbxQbFvKIofTrNM/4ZZT1siKBuyjcSzpyq
+AHFr6xTwIjNjDzRgPjCb9uJXLwt5HfpMWCr2o3q83WTo14WpXd/1m7xvvht/xzVy
+Xvzwug==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C21-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEALqVIjNTG2pset5vM40k/GV3e10wUpfm
+bTLLG8UGxbyiKH06zTP+GWU9bIigbso3Es6cqgBxa+sU8CIzYw80YD4wm/biVy8L
+eR36TFgq9qN6vN1k6NeFqV3f9Zu8b74bf8c1cl788Lo=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C21:KAS-ECC-CDH_K-409_C21-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C21-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAWQn5yvFfSapEKZyLqwsePuoq//MvBGp
++Dd7/iE+2a1kveKuhof4/x39sptdzs0CJpgowgCtT5q8IdoNMfGWWc07DBhVgUNq
+wIsVwLSKesOe7QPg7pfhZM+qWrx3RBLL//lKnqKpY2o=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C21
+PeerKey=KAS-ECC-CDH_K-409_C21-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01ae814e02c4684c21dd7e58a65ec51ec68c37e59e299ce65608186c0acce08e41c8320b1941a611fe66b1921b558d7f402d0eb0
+
+PrivateKey=KAS-ECC-CDH_K-409_C22
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDMESuQ70kfnWvp72Nwo
+51vbnd2Z31ZmjIMUVNwo8+mkTs/Ue6hCCihvHvNy/SmzZd+bgvGhbANqAAQAICaU
+83jXCWXUKCitXzcTe/i2POwsDRWOW6lMqx+OYeWjAJhro0mzrfPvwF5lZwr4jNPW
+ALrw2krtuXL4iiFd+/9k5CkPrcJdo/DYPzXmW8QXfTAl1x2O65xBRw88cZ4A7x+3
+VS5qiQ==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C22-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEACAmlPN41wll1CgorV83E3v4tjzsLA0V
+jlupTKsfjmHlowCYa6NJs63z78BeZWcK+IzT1gC68NpK7bly+IohXfv/ZOQpD63C
+XaPw2D815lvEF30wJdcdjuucQUcPPHGeAO8ft1Uuaok=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C22:KAS-ECC-CDH_K-409_C22-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C22-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAS6J3M35dYUazPApTPS94SWckHptOs72
+nxk5tVjE0hFSLk6qxhPjrISRyT3rbTRKn4esvgGlJgjq0J0tsSOg3Hgqsg3beT1b
+twrJXFjmIUa+tiu2aP1X+SA45Fhc3h+R7oxSUmr+sbU=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C22
+PeerKey=KAS-ECC-CDH_K-409_C22-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0140e7db3f6415d884822ccc7316a329dfed177b76c0117abd722feca889bee4e14e65d26c6cc935c0e94205f05fc1a7abfb0348
+
+PrivateKey=KAS-ECC-CDH_K-409_C23
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDNW1zcwdTracP2AHHSc
+Lx8aYe9b1uy3lqnhXv6bvmFY9mlUJ4c1D01kO9pvPoxkI7gXtTChbANqAAQAJaBr
+caCuJS8vkFIhmD6/ziGtlhIaXA3MXvDQ/sMB7HfvS5FYGP7c2n8/1zPH+eUpB5y2
+AAJokNUwO2Gcf4H2D7grJrC5jY8kxFyrQaRO6zo6MSlE6Im0A14ENgswUEPjDQy5
+BBqJ3g==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C23-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEACWga3GgriUvL5BSIZg+v84hrZYSGlwN
+zF7w0P7DAex370uRWBj+3Np/P9czx/nlKQectgACaJDVMDthnH+B9g+4KyawuY2P
+JMRcq0GkTus6OjEpROiJtANeBDYLMFBD4w0MuQQaid4=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C23:KAS-ECC-CDH_K-409_C23-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C23-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAKupOuHRVSiAsx9QP8S+n5HRAkfxTIFg
+Ff+yutKauBgOe1CicUTgHCHmPD2vzSUTCLrHaADkq2blFL0Cq+rhxxI3iKaSWE3b
+SpCaIX+zXeZliCM9re9wNv+dnyTro3cuL6MDe7rmPP4=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C23
+PeerKey=KAS-ECC-CDH_K-409_C23-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=002ec4deac3e83d60ad39969f2f93b49f31875831ecd51ea5c37ca48de081c0c8cc660edc53a222f3043447f9cb752763be7494a
+
+PrivateKey=KAS-ECC-CDH_K-409_C24
+-----BEGIN PRIVATE KEY-----
+MIHBAgEAMBAGByqGSM49AgEGBSuBBAAkBIGpMIGmAgEBBDNisCbUlyBmDPak9Wm+
+mN+hCMjroII0rpqH88iLbGWTS5loFTIqFvmqvtEzF793Jb6lgI6hbANqAAQAD1KS
+U5TLUrwzDgY5DAwKLhDtl5cUn7zIjYD7yuwXPiSgXa75hAHV5H87dlvtu4JGMShW
+AT2ZwXEIBdX8fbclmsnhNLQR0A1z+wdi49IRzcVr9/cUUS0EpjDIcyVR7nNCh0ds
+9RHoNg==
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-409_C24-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAA9SklOUy1K8Mw4GOQwMCi4Q7ZeXFJ+8
+yI2A+8rsFz4koF2u+YQB1eR/O3Zb7buCRjEoVgE9mcFxCAXV/H23JZrJ4TS0EdAN
+c/sHYuPSEc3Fa/f3FFEtBKYwyHMlUe5zQodHbPUR6DY=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-409_C24:KAS-ECC-CDH_K-409_C24-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-409_C24-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAKpOuJhEPM4+0sBy2Fh3WsIhwk4z7Kbz
+FXlmNUS7M6SgaKhtE/FntlMExffyX4lfZbL0KACDze0wIRtm8a3xcxi23lDXckwF
+hJleBotyRwOuCO1xoyszSYensx1sJjcVKRcyfTeszTM=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-409_C24
+PeerKey=KAS-ECC-CDH_K-409_C24-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01c9cc05d19f96c4d233039cfbc43ab68d657bb507f46a353091fe98fc0f422a8e7593c195d326977a2be6bbd2cb44eb1fe81650
+
+PrivateKey=KAS-ECC-CDH_K-571_C0
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAXPNFjHhjs4Btzs1
+cv+qdJXEvIH0B4rlDWnLHjOKzxNGkRcRKSEWbd8tKfOp+OEMZ+iMmpkgOoNFZb52
+rFkSZDZzmmr6ApzFoYGVA4GSAAQD+/u8+6YJFX9oojEm2AX3x177Gb77WV46l14I
+/0a9NMi4e5ZFwOhuoK2RVGXVyFbGm7m3IrDRe/l62VxGAt6hfGtRIFTLItgHHBbf
+ceG3G0vT2ZOIJ9OVkJO52x/4a+1zlEpC3LZ8wzEC4owdDpgEpkUGVvS/M61y7Pe7
+g70oLN5LwV1OSAZKqK0vApefXz8=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C0-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQD+/u8+6YJFX9oojEm2AX3x177Gb77
+WV46l14I/0a9NMi4e5ZFwOhuoK2RVGXVyFbGm7m3IrDRe/l62VxGAt6hfGtRIFTL
+ItgHHBbfceG3G0vT2ZOIJ9OVkJO52x/4a+1zlEpC3LZ8wzEC4owdDpgEpkUGVvS/
+M61y7Pe7g70oLN5LwV1OSAZKqK0vApefXz8=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C0:KAS-ECC-CDH_K-571_C0-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C0-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQDEGpcHZI6CZDqjGAIw2w2a1PlYiuY
+RkBEdB+8eEAoTbi79gKGbDDMv1+bflnMHZv8xblw+mJNqbFfbLM29d2n5rmSTV3O
+RUMAXFx7vVp4msTGKD3rDQ03xIUrqlfWvCsKxjN/6wlwTETRs4W3DMOU+iNdg+bn
+EReH5X0JAsDLEyoZCm5i85hRHAwsTNUNRXA=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C0
+PeerKey=KAS-ECC-CDH_K-571_C0-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=003198a6b5d6cce847e24348a6a6ceff7a89ed3794d7acedc4e858c80ad04a74dbc02c7038e05ab26b2a299ec92ee0d2c7e66a81872a5157fbc5d4d37ad598d6ddee995ed28a2d74
+
+PrivateKey=KAS-ECC-CDH_K-571_C1
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAJN+2zqilWPSJIWR
+yftEiYUJX5E6dFgxVZPPzofmj7DxpSW3MQoQEXbjTUXBAEU4lU4gRFQ4F8qw1WPf
+bLDV6GF7u6FQ51XhoYGVA4GSAAQCNjzFYksG3xlWvvpZfUx1fMKxABo+FUTSRAgp
+D2lId0VbqS5WCIRi8P+svTk8+DW1a3BGoV1Lck3Gw1c8sVbA3ymKqLElXLgECfdz
+uY1e3Cc02DWVMoG4KsDhXZAtiHp8a6dWKaN2cbEB0Y3f3EGT2YsYVRQUxJFzAEUw
+95dtJ8Jzpz3buJj8tfrenAu3iD8=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C1-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQCNjzFYksG3xlWvvpZfUx1fMKxABo+
+FUTSRAgpD2lId0VbqS5WCIRi8P+svTk8+DW1a3BGoV1Lck3Gw1c8sVbA3ymKqLEl
+XLgECfdzuY1e3Cc02DWVMoG4KsDhXZAtiHp8a6dWKaN2cbEB0Y3f3EGT2YsYVRQU
+xJFzAEUw95dtJ8Jzpz3buJj8tfrenAu3iD8=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C1:KAS-ECC-CDH_K-571_C1-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C1-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQCESI8S3KbIGvgH4CFqZfh3eXNsnwE
+iSWic2m8ymo+L7/GVjfx7OsTO+dJZ5oXsc5Ygh9GvRhEqJzwBCyAQ8sQXgGj/JSN
+JmMCsewubiwjdbRksKUCxQU7WzSL0IF4xyxgMQXQRoGWpGldwmfW4QnxsSdEU7bv
+8U3fN4OWnoglZI3rwhav/5JY9kTXfs2ZEc8=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C1
+PeerKey=KAS-ECC-CDH_K-571_C1-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00577147459262e5ad42f222827f20ed574b2118924205bcdbd339ce20cfb085d072fd70f4ca1f5768fafaeb5710f7ccbea4fc2ae5377b0cff20a889a2201739139bf788a9bf2d7d
+
+PrivateKey=KAS-ECC-CDH_K-571_C2
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIADQJmwdz8CHuDT3R
+hccEtRWKlDKNqgl2j61YBN8dovwGcZDPECjDAje/KkjaE6uuNaJcPmOH05k/m1aD
+Bbi/CBj/Un3YIF30oYGVA4GSAAQGdNzE91XET9q9wHhIgQe7ZKRgupMsfhhUhMzS
+f6hwAxEH6ZVSBLBjC5tNNgjZqpMdfHZswuRYeOttjNlr33EbL+i0e40jPtUF2Wvm
+t+K6dMgDKvGcovKznS/U6MibFWtrJcLqT3H3SgLKfaKkY6zXYF1TUP0WqckFJTTn
+6B1kjkBgorAcRZwmDLZWfaH8UxQ=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C2-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQGdNzE91XET9q9wHhIgQe7ZKRgupMs
+fhhUhMzSf6hwAxEH6ZVSBLBjC5tNNgjZqpMdfHZswuRYeOttjNlr33EbL+i0e40j
+PtUF2Wvmt+K6dMgDKvGcovKznS/U6MibFWtrJcLqT3H3SgLKfaKkY6zXYF1TUP0W
+qckFJTTn6B1kjkBgorAcRZwmDLZWfaH8UxQ=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C2:KAS-ECC-CDH_K-571_C2-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C2-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQATUi+WZ67HtYCRy16h/TNIID0TsKI
+Vf7MOpzd4lVReHq9J8wdp+d4F+lMnAKJwAWg4247z7DTgejMloS2990FF38W9j+H
+IcoGLPca8KL441xNf5MSvTSoRqOA9j8NxylMGIdxAzV+INHw7v8xKpk96yoez8gK
+6galtx5Pi5zvrrzTJiaRkGT4ivQW2G4+evM=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C2
+PeerKey=KAS-ECC-CDH_K-571_C2-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=014662b261d0bc2168642bfa4f80c4b3fe8176f604ad3703f443ec7aaa3dcf3c5465b869a8fcea60b8f55ce7118806c5d28a04848bd961db0061209b59bc02979acce9324d7c0c31
+
+PrivateKey=KAS-ECC-CDH_K-571_C3
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIABVHQ433b8teKuaS
+WEW7+wO0++glVhbsf72XtI8RJpIhn08SdebSRT1bzzusQQbwFhuBGfSH2ItfjI4I
+s6oXuD/gEQLXY5LToYGVA4GSAAQEJ+LcEe5SI72cPZQYx5EUaC+R3aBufYjDOafl
+bg37Y2tuY/3oo4EUbstwXKIC0rc99AhFF2PFFmBmqX/05PMvC0zJQjRLCy0HYMij
+iOLuon72g4x9RQUuOMvuIJbL6J93R3QTQHZljfkMYsfcDj/emV16mQkJkwCatsU1
+Z329s3bxg+tQktLLaog3tr6jXc0=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C3-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQEJ+LcEe5SI72cPZQYx5EUaC+R3aBu
+fYjDOaflbg37Y2tuY/3oo4EUbstwXKIC0rc99AhFF2PFFmBmqX/05PMvC0zJQjRL
+Cy0HYMijiOLuon72g4x9RQUuOMvuIJbL6J93R3QTQHZljfkMYsfcDj/emV16mQkJ
+kwCatsU1Z329s3bxg+tQktLLaog3tr6jXc0=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C3:KAS-ECC-CDH_K-571_C3-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C3-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQGvyUuYsmWkXGpcXZx2g9wMulSCkl+
+yDH03HdqyH4BlK+ZVGxB0IBI6gbakjXPE2nD6lPmuMu3p/1CljVFSNRO30Y/d600
+GwIClNX35zbc2JkBmOTg8LOYuKxqh3ZK9gFZYjSi4WLJxmfkfrPZh++66wO142ma
+OO+VPHT7KP19ik7Fo2MZzMRKGaqIIB3ay/g=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C3
+PeerKey=KAS-ECC-CDH_K-571_C3-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=051ec4db0622b7b1c798366453c70f959376ea3942aed2e931ff62a4019eb12ba5ff119214c8bfd8bdb66e62b562400f2d3d48a84b1b3baad3667f735ad4d0f183bdb91aaedcf1f1
+
+PrivateKey=KAS-ECC-CDH_K-571_C4
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAMe0JSypsZLF/qqa
+IQ/YTi5IMgJx8Q9n6p6zCw3oCG1Z2uBCWf0SsIbYkOItRdJ9fIRV3Petp5bjXjox
+ODQsxza8PtN4HEEZoYGVA4GSAAQDJWI4OOixjYG2gGBzQlTrArjrsiZFVvyYUMNt
+MDVEmqdk81Hbr3u8qbmtsR8nzIihrG+3GqEO+NDQk5Kwyn6qelzBQHjMGLsAmPx2
+VtneOlGSPbopDsvkE++NlR8k6SSMtVIwn5cSf7lCns9t0Htt6JTharYOM7TucwJM
+y+hm3l4X8bR43HcnobtCNxggsS0=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C4-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQDJWI4OOixjYG2gGBzQlTrArjrsiZF
+VvyYUMNtMDVEmqdk81Hbr3u8qbmtsR8nzIihrG+3GqEO+NDQk5Kwyn6qelzBQHjM
+GLsAmPx2VtneOlGSPbopDsvkE++NlR8k6SSMtVIwn5cSf7lCns9t0Htt6JTharYO
+M7TucwJMy+hm3l4X8bR43HcnobtCNxggsS0=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C4:KAS-ECC-CDH_K-571_C4-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C4-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQFcB5jsBwWxOsZk4JluhNMrHMWJ44v
+HrQKBHdUSL3tl+ejfQH+2KTgtD/026IaR3WczUW/lnHdIu7GW0r/i424nf4+SQwK
+ydYC3Ze2QVruKwHP6zzSoDV4q/7Zyoe+mibYmVlah7y9lydI+moL5OtVfmnG0o4r
+uhWA3HTidR18zZGMRrS+aHWk5MKQ2VnCPBI=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C4
+PeerKey=KAS-ECC-CDH_K-571_C4-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=05b355eb5c47d8027b6c5301d2463b99c636db207792e2975ab1a53c1cbb131280288432a79a3b47271d6a2bd777298baf8a675f66be9dc72c3588d299df8b52e7840322b43c2071
+
+PrivateKey=KAS-ECC-CDH_K-571_C5
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAGbMUZgNOFG0iMLB
+gUlsg1BfuVex7EqE3x4QXjDQAry5eLbQvcO3ZE7T37wzymv+Q2LNjMVBdAsN6M8u
+3M5FkuNPoRrCbskioYGVA4GSAAQHcfop5ZMNbf0206nnFZZ1/SPQteH9muZFSsqe
+gSfx5+P1MitcFrCVVzsyZtCPDcMwQ/+z17COTgUu0/A0mjKQJepv8+FmhUcCL5lP
+mXRpLbtuWMx65fkGUu4jHgo5YVadxkbRFFIqN3dBDBs1LWaAefgAELtUDkwoQIZl
+gQ/mH9YOcNMMaI6rj94ENk3uXJs=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C5-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQHcfop5ZMNbf0206nnFZZ1/SPQteH9
+muZFSsqegSfx5+P1MitcFrCVVzsyZtCPDcMwQ/+z17COTgUu0/A0mjKQJepv8+Fm
+hUcCL5lPmXRpLbtuWMx65fkGUu4jHgo5YVadxkbRFFIqN3dBDBs1LWaAefgAELtU
+DkwoQIZlgQ/mH9YOcNMMaI6rj94ENk3uXJs=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C5:KAS-ECC-CDH_K-571_C5-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C5-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQDL6GBb9IxfBa1sZol1G+l5FqxXuny
+sdEnTCoGAjmU2zCfrVb2CzzlfzLfx9BFqEt9gFIyvjTH51lRTDCiUge6gAIVsgYP
+BMIEFGlZPVdIByuayP3gIwlSibzfZasb/AhW+D6a4GyJcwO9FvXkWCPWX+yDEP1D
+MrZc/0enma9PfIY44tf4WUjEPxBTTJgMy2I=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C5
+PeerKey=KAS-ECC-CDH_K-571_C5-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=052bd78bf1326c6d91840a351d4874d36b147139882356c595b8607f9998773092a99adf70adeed19e122d4d2fec16285f000161145135d96355cba039a96335e7716724c249f88b
+
+PrivateKey=KAS-ECC-CDH_K-571_C6
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAZkNFfosyQ54PUMi
+AXhLq1a20p0fJmWnbNAT65b2MA7Y92K3ilWWrH6MHnYWfxB8IEQ7GscyEB6fCsoS
+VRpTbRUt8rPbDyDeoYGVA4GSAAQHbD1y8OcV8kkbydmSeKjvPDkLOpbpmXs35be9
+il8Hr2j44O44krY/8RKnOoSfDoSngtT7Qm618vFa2szp5UdqbazPOn+popEFQKdj
+gjWZ4MhgJ7rMjLsw46JGcnb8T35f1O04XfxviD/te8pp3yGgZotV69KS2o/WNWo+
+xc0cdiwBRzqgZwBMrO2tVk/gaRA=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C6-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQHbD1y8OcV8kkbydmSeKjvPDkLOpbp
+mXs35be9il8Hr2j44O44krY/8RKnOoSfDoSngtT7Qm618vFa2szp5UdqbazPOn+p
+opEFQKdjgjWZ4MhgJ7rMjLsw46JGcnb8T35f1O04XfxviD/te8pp3yGgZotV69KS
+2o/WNWo+xc0cdiwBRzqgZwBMrO2tVk/gaRA=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C6:KAS-ECC-CDH_K-571_C6-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C6-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQD5j3UyYwVE2HJkCt2OuMvLW3nWVP6
+PWg4wdYT1Ej8pzvzAtMCEqltMrlUnhfFzzlcVlGR9qItrE2nweGp2brobr+3LILq
+GZoEFgmrnBLBXlEnAF6+/2/R9ztpEu0HCvh/X/wh35A93h1xVYLdL2mQQCAARc26
+ns11isTQhNTI14IZ9vrZTTQa132szau1Sis=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C6
+PeerKey=KAS-ECC-CDH_K-571_C6-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0226c28e5a6bc735935f9df2c1b02d096d4dee41ffb95a67905aab8de1b2d8c66e2bb471293091438d3f05df7e48003e58a958b72f839f7f2e2c54287fa3cadcd41a2542ae4ec03a
+
+PrivateKey=KAS-ECC-CDH_K-571_C7
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIACsJN+cx9Z3d3w6U
++6krsabOuBnnZZvPbt1LSvScLvJcW2A5JW+Sg2PhhASxZT05mAVMLCWj+DoMVUih
+OePmoYB1Z0bNNO4poYGVA4GSAAQCcMTADeJwkBDHzwR6DOabh/QdykjTW3H7pLJY
+iG1zrkLe+4ZTlRwb0+tM4OYXWpRsZ6+md1NHXFH9UlsP2fWiba/KMZ+qXhUGaAu9
+woFQX10/vil0SpmeB/9hJXaZP2+L4xE9se5s8jeZhnu8gKFAN2qbYydFH5i/j9Hb
+RvnZzAXohwTVcS1FZ+HfQNOeme8=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C7-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQCcMTADeJwkBDHzwR6DOabh/QdykjT
+W3H7pLJYiG1zrkLe+4ZTlRwb0+tM4OYXWpRsZ6+md1NHXFH9UlsP2fWiba/KMZ+q
+XhUGaAu9woFQX10/vil0SpmeB/9hJXaZP2+L4xE9se5s8jeZhnu8gKFAN2qbYydF
+H5i/j9HbRvnZzAXohwTVcS1FZ+HfQNOeme8=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C7:KAS-ECC-CDH_K-571_C7-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C7-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQG+Rp84Rupvy3h/gcPnchDu3F8MG2c
+Y7UHjSoRMj8gycDXt3Q9MR3azc9d0A9JixmWcseK4l5oZNYr3BaTXW+42tIILTZ2
+6/MEWTxbrRLD1lXGYRx8qXEfnjKij+5Us7gkOWKjxV1B8sGF5MWLeimY6XgCG5W3
+JGNdrMvX/DDSByB5e8KRNixVsCSssr3PPVk=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C7
+PeerKey=KAS-ECC-CDH_K-571_C7-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=051a3deb052d3e99bb6ab6c6b284db2c998e9bee543e02e57f1b13fe9fafbfe53a89658c58eb947dbd178aea2f6cb28e305c9867bd65bb26f71793f90c984ca11113e1a8dbc8f7d1
+
+PrivateKey=KAS-ECC-CDH_K-571_C8
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAc1Bz/diQCqDTn4K
+uQj8VJQPaXtQAipN/tjPCxPX4O5SP78z7paTiV+RjZThWwhGVdYbIpTKUcQSP+Xg
+ho6dDRysITjwV3oXoYGVA4GSAAQGEHl7vG2RMRgK5Uq2bmeAhJJYNpdBRw4HbPBe
+B4W7TnkAuQjTjY2rO5QnuVKt0g77dYz/gK62QcTd4e7aVQnzhtVlhVlgnO8GjSUV
+9CWg4wN1RzQvG2/5MXY/UFLlNupPeDd7XJQUWcjCIBSCr8882nOQ6eXTGUUYZMoD
+aDVBqyzXep2I/XphDKhF7lzT1Jg=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C8-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQGEHl7vG2RMRgK5Uq2bmeAhJJYNpdB
+Rw4HbPBeB4W7TnkAuQjTjY2rO5QnuVKt0g77dYz/gK62QcTd4e7aVQnzhtVlhVlg
+nO8GjSUV9CWg4wN1RzQvG2/5MXY/UFLlNupPeDd7XJQUWcjCIBSCr8882nOQ6eXT
+GUUYZMoDaDVBqyzXep2I/XphDKhF7lzT1Jg=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C8:KAS-ECC-CDH_K-571_C8-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C8-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQFqyp/EKyJ+YxAlYCrwRrZDJM2Dmqy
+gpILWdMWyp8rI661CHbLG8vo7prmtVM/3NEa1PhtiRjWY4nah8mL8dYyO9CUfYCZ
+CDsGieGUcnZ5HcuVJxg+MqCAcrfgPcrRdf48/Xvu/ISNzvSDOAxgBUEThccCfJpS
+tgpuU3qHU4DSW8R8e/I2TdaKZvIdD1eGakI=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C8
+PeerKey=KAS-ECC-CDH_K-571_C8-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00697c751ddbca7034fb4d3fc1b2618daf78cdae464e8332d1215020c8f896f4864c7a6f2c61a363f730f58fd3bdb4f78a90b40aeb83b4fbc1d8d37cf6a27a6f722c68a82979fa16
+
+PrivateKey=KAS-ECC-CDH_K-571_C9
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAZ3/DXKosELE6S8d
+rnQHv0oQbNpWTbdQjlp2sDEwyR1eXLzy9XjC6d7kOEn5Edd3PUwmfigsJ3tzH4im
+7w7t3VIPV+dD6/lloYGVA4GSAAQFu2Cl/o47Fzz4QT6vQToyhqWnqjePIURsYQV2
+lgEnRtAtEKgx94XJyWVh/8atT57N9JN//9jmmECOZg/olvftRK9rO0LqhJ8Dfjo1
+5Iqma9hRxZ+FHUof8zTg5YnawwmGrNBtbrjOI28qlojyeKFNz+BmC1+g6X7Pzrv1
+tA09P1FQpVRay6YjnABBmsctwsw=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C9-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQFu2Cl/o47Fzz4QT6vQToyhqWnqjeP
+IURsYQV2lgEnRtAtEKgx94XJyWVh/8atT57N9JN//9jmmECOZg/olvftRK9rO0Lq
+hJ8Dfjo15Iqma9hRxZ+FHUof8zTg5YnawwmGrNBtbrjOI28qlojyeKFNz+BmC1+g
+6X7Pzrv1tA09P1FQpVRay6YjnABBmsctwsw=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C9:KAS-ECC-CDH_K-571_C9-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C9-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQANAkcOsb8UpnfGPFi6veiB/wVQ6pJ
+jnJy4VqSdy9XdyIpBpRW4hnJwocr1TeDsPsTRfXoRnTENEEpoxQUa3Aw/HUZeiDF
+iKoEnjo/XuZYdeFAEImXBji4B9+XVopZlcj+L1Akc7g/WMVWxfIU7W8D747OAUAa
+ITS8BB9mki/MTjk44MbTAutCIAZ4qXE58pE=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C9
+PeerKey=KAS-ECC-CDH_K-571_C9-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0322517da30e010aeaa2ec9bad2745d8e67f906294ecd6b1d16808be3837f79070d0e1bbbd617f4b8b031d3b51ea2acc59de408a130138c78571f8800fa907caf550d23323d1c818
+
+PrivateKey=KAS-ECC-CDH_K-571_C10
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAeFBbUKZJsq+pUe7
+J3ZxClL3EwOTCBAgMSs5Yhletu0XxtQ2vEaltHp6qs+PgRf+o8r6FmZcwYRbDslP
+r2h1ebHBFroYPoJfoYGVA4GSAAQGVmClhoihZYipwWuCcgQKMK/jFQYwZ2Aj/hZW
+ht+9pk/IWZXdwYycWwKb/71N/6j2KYnGOaaGI+yngAnLCI7hy0LEhVt50wIEksOG
+fxN78nh6erBWjTB5uNmh4LC6XSnQx7phbQuydyXaLKa8Z78IT6tSWZ7UKw70h0NC
+PLxvQTVpLDCa4mMMxKU5C+k/J0s=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C10-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQGVmClhoihZYipwWuCcgQKMK/jFQYw
+Z2Aj/hZWht+9pk/IWZXdwYycWwKb/71N/6j2KYnGOaaGI+yngAnLCI7hy0LEhVt5
+0wIEksOGfxN78nh6erBWjTB5uNmh4LC6XSnQx7phbQuydyXaLKa8Z78IT6tSWZ7U
+Kw70h0NCPLxvQTVpLDCa4mMMxKU5C+k/J0s=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C10:KAS-ECC-CDH_K-571_C10-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C10-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQFe3xlvFHoe9rTfCtNrmf7AIznH9MH
+LkG3fFYtfEF0iHKiC++FF7pL6JY33emOK6GzsB9jlAcT4oI9jatopcx4Vh3hQIXk
+z4cAundDClVgCJ36xPaLTzSTejhN1ge8u1+rVnen+uCe0Hz63jmeh86f3ZOXxoGq
+M3jOO8grAH9t5PfLltrfVaTIc0o385pcLyU=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C10
+PeerKey=KAS-ECC-CDH_K-571_C10-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=000911ec1cf82a22c849b401dfe56453a06f4af32644ea8b63135b68a979236d05968eeadca7f0cd339d295cc58967a7f38cfad6e947a71295733e42ca3c1ba9b4ff6195607bb530
+
+PrivateKey=KAS-ECC-CDH_K-571_C11
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAZY2Pu8aDlvpfY92
+Af5A/0AQ9JSfAWkIqQbtXNrxIh06WTs6Rna+r9H6FLwPfFM7FwhvIH+cSEz8L7w9
+sr5BI6jobztJEczjoYGVA4GSAAQBsS44kU7gB1qIjW1hzcdXDFEdkKnjoOJzjDqZ
+gauauppsYUYLrQeaKEKaUgfSyAGvL9zto2ZEChFoZ2Xpunf3prxVAS1MlRAHDt5Y
+d2Zf1jatz9ByINdF7XrAqbAgIVn0UMn2wbg3GSpp7mrZVTJ+uc0yagWItZcj206P
+0lixHbiIpT6xTyvghRJogykFmJI=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C11-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQBsS44kU7gB1qIjW1hzcdXDFEdkKnj
+oOJzjDqZgauauppsYUYLrQeaKEKaUgfSyAGvL9zto2ZEChFoZ2Xpunf3prxVAS1M
+lRAHDt5Yd2Zf1jatz9ByINdF7XrAqbAgIVn0UMn2wbg3GSpp7mrZVTJ+uc0yagWI
+tZcj206P0lixHbiIpT6xTyvghRJogykFmJI=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C11:KAS-ECC-CDH_K-571_C11-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C11-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQG+nR37exfHnQogfjXsq9WN1ET6ZK3
+l/04frW1PDPGunI2QXssfm40YmfxuMbXhX1uCPmmDobeI9pLNoQk+wA/lrTIn10k
+SnQHPh/t9i6MgSg2IrU+ss2ye2TDwd142gyQ3Ww8d2rRRjAuQ6ulQTebyPO93C4Z
+/xXZZmTOLQnrb7WxOEioKzG0UtjoTaO4Uxg=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C11
+PeerKey=KAS-ECC-CDH_K-571_C11-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0724c979affb3ab8d307529759bae5fa67319d441851e5817fef014350e3014e068428c9dac395c5e7b9e5b8877457b3e4625ef49ede4ae3626755eefc3fb3cf09c23e8a5a9f8c25
+
+PrivateKey=KAS-ECC-CDH_K-571_C12
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAKGaDt9Qg0f0QCzs
+vOEn3GQQsZZ9P4nms7oItIqtCM1speXRIozcxBocOA8q6QUtc9t1UOejwdhXBWyY
+lH9bLHHDPE7rwSEMoYGVA4GSAAQGKfcFWDCHCOaSmxrQ/jEoqK9/llkbR8uOosNF
+QSCm05PtmJ0TIxxmGWajeLln76ZNPAk46cC4sWyZ1zSb3Vni1EgE+P7h+0cGpeUP
+1QJNiVPjIkKCMlDpmMpgK1JZlAUSlzWodOgzs71z16ncU63qCSuo0kIH9epWV6KZ
+GbiKbWP9CpQ7Vt3kyEeEgbV3I+Q=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C12-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQGKfcFWDCHCOaSmxrQ/jEoqK9/llkb
+R8uOosNFQSCm05PtmJ0TIxxmGWajeLln76ZNPAk46cC4sWyZ1zSb3Vni1EgE+P7h
++0cGpeUP1QJNiVPjIkKCMlDpmMpgK1JZlAUSlzWodOgzs71z16ncU63qCSuo0kIH
+9epWV6KZGbiKbWP9CpQ7Vt3kyEeEgbV3I+Q=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C12:KAS-ECC-CDH_K-571_C12-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C12-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQBi7bL/L+67UaFZLNo8LCrw/vKR9zB
+nyyEa/ooc3DhuRL2tw4IUZ9XfwysMlt5/Wa2sjqh4q4mK80ueossLZjZ7XelTHKV
++Y0Fvpu9kXcrtCJmq6nIk+VmcM+2bK++RAHKLLV2W0aVBISFl8f0RumYFHRnhxWK
+g+v443loVzY6jgT4dCoJ1+yhY4bWD9fIWN8=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C12
+PeerKey=KAS-ECC-CDH_K-571_C12-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=005a526588a3a2ce08b20925e83987eb0a1e68f997102df7f9af83823ac8e06abbd29c04cb1f974ba9c9ac49b48b5af37679a39b532d359cdec3d41b3f80a1ee12c80276256b738d
+
+PrivateKey=KAS-ECC-CDH_K-571_C13
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAEysP8wAc0RCzdgO
+r4JEEsIOqe6wPUO5mdSd5hhzYCAgorPEeWX29FO5G3osHZPhOolURTPjWhIs/IYS
+yGkLabt6VXh1+WCyoYGVA4GSAAQD4hHDtJhpJ8Q4jRaAy0dw3ubHgmZyRYLGbMxQ
+xssoI5R01SH6zHIGr2uynM7XM+27wNILkmTOY9lDcYjj0xwOC8Pp+diEKeQDenxZ
+ASqC1ZzB4vD9T9dR5XN6y3fyoHmeCvOJlqteEQkKY5bMSA5vKqvY+tRGEWkeWCIR
+X9SdKgAMm0nR9JZOJNQ/u4H6h58=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C13-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQD4hHDtJhpJ8Q4jRaAy0dw3ubHgmZy
+RYLGbMxQxssoI5R01SH6zHIGr2uynM7XM+27wNILkmTOY9lDcYjj0xwOC8Pp+diE
+KeQDenxZASqC1ZzB4vD9T9dR5XN6y3fyoHmeCvOJlqteEQkKY5bMSA5vKqvY+tRG
+EWkeWCIRX9SdKgAMm0nR9JZOJNQ/u4H6h58=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C13:KAS-ECC-CDH_K-571_C13-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C13-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQDIYS2hj4stbxxuv9ba1ehBZSDHMEa
+nl7t7EgE4gFuPdBkz/0Soe6g9pMpEd7TRazlwf8lC5ZI2TuVM4ba6bVijDxiUnuJ
+BRkH94PgNBqHHmJW2jSeu1OfiHZ9fawVEePD5NQ7D9MdXdLC8PF26sVEqHH0K5g/
+j7pN9nq2ojm335lyJjBLcxZdli9OHS0Y3p8=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C13
+PeerKey=KAS-ECC-CDH_K-571_C13-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=049db68dc9fb4cfbad8247ca4fe7c573c0640abead8f319194d665ecaf4f04b61f84f5df0d8a6386f6df04ca1a685a7394567eba5deb9f739b1e623ed6507021593f0e22e2dfc3f6
+
+PrivateKey=KAS-ECC-CDH_K-571_C14
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIANUUFE1FSLz8vPVw
+Cffo7hBLFUVvSRgmvf2bpn6HH9vY/ISQ7LyyaQkfx1KeXlVxOoHeIMDtAeyzFZrm
+FCS9vFZTcyWH0elPoYGVA4GSAAQD7l+He3N9rkC6+R4MxYHf6NKR+MRR1b/AtpDf
+cCWHXZVp1SAhs7aJDgGiupWJnikoqQLNXcgUPAfqJnSanJQGi1w0xZawlD4Fjhul
+FqgYyumzcIYofgiAg+K0If7wtZuoFqsDE3XQnXr31XhmdEaHvju0HOInbTo4+Xu7
+n7WfJKkvAIWwTuXtGsDvpnE5T3M=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C14-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQD7l+He3N9rkC6+R4MxYHf6NKR+MRR
+1b/AtpDfcCWHXZVp1SAhs7aJDgGiupWJnikoqQLNXcgUPAfqJnSanJQGi1w0xZaw
+lD4FjhulFqgYyumzcIYofgiAg+K0If7wtZuoFqsDE3XQnXr31XhmdEaHvju0HOIn
+bTo4+Xu7n7WfJKkvAIWwTuXtGsDvpnE5T3M=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C14:KAS-ECC-CDH_K-571_C14-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C14-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQHHhZ+WeKnCev0vj2D+53GntdJ46uK
+VOICw1+NRd6qK9qGwq+hsKBHVNGImPzdmxhfHYui4YCkesKRu0qtj5l/c7FCO81+
+m5IFcRkIW8fLICPSP4gQFCD59Qjw25T4377dXL6IzsgKnccI32zM34FddbFGKA18
+0uuXzxp91VC+Ujgk+TKnd2efLun2bUJY3aY=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C14
+PeerKey=KAS-ECC-CDH_K-571_C14-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0343c45daab4f91e02ef9bd6e1cd157b00ab0ab0a3e0d9734918a1d896cdf7cc1212bf74d7bb9bf96bd4abf42df325756c407217f44a5950c2b66af820692742ed7ebe14e48d2d88
+
+PrivateKey=KAS-ECC-CDH_K-571_C15
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAMzG3KWphVg84AgS
+w9B4IvY0HHnXjBay565Lv1v/rBrNneq2eBk/j4mw4qrlLjAxFETdESU/ltYts6v7
+F+Qj8N3w6ZEIEVTDoYGVA4GSAAQDgmIVNDz9Stlo1XK6st7iJ5+ejv+g/4Cw313S
+6oIrUCJ05QfIfSQp3Yu9um64q0M7HuHK06l8fSRBlP2aQ/Ph/zMUTi24CGQHD0UI
+rjkc4kFUs4hzrwCC2ViVrJL9GqMhupO+70BKY/exr6H+7Jl4hVI6ZoitqU3UXrMs
+p/G7h+Y8Tel0kxlsO1PPg9IY3Dc=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C15-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQDgmIVNDz9Stlo1XK6st7iJ5+ejv+g
+/4Cw313S6oIrUCJ05QfIfSQp3Yu9um64q0M7HuHK06l8fSRBlP2aQ/Ph/zMUTi24
+CGQHD0UIrjkc4kFUs4hzrwCC2ViVrJL9GqMhupO+70BKY/exr6H+7Jl4hVI6Zoit
+qU3UXrMsp/G7h+Y8Tel0kxlsO1PPg9IY3Dc=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C15:KAS-ECC-CDH_K-571_C15-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C15-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQHTxp7XPsO7vHhXmNRLHMYja++iOjp
+xCBzsrZSufAoIU8L7HkULYiJQWq/eoPin0eee8PKZX7woQwuo63jEXwNNp2swjOd
+HBIA6JkqVAdnUwKfLA6djBZua6hIlqR4X//1mMSCPlRh/wBUkLt/tth4rDT0J/2d
+tIy98S65gm1o/SzxcdTWHD8nXUSUfU30x1I=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C15
+PeerKey=KAS-ECC-CDH_K-571_C15-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=04a565cb3e15236a7f6c413afeb419c082427b10a6d07ff87e81740716433c06b3254414381e4ff9860340dd6201ab6621d162cd12047a5515ab1d65f20c97eb3d7132642f8ad58a
+
+PrivateKey=KAS-ECC-CDH_K-571_C16
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAYhiE2WL0X59wzTd
+gAOSakR8NKGX7l1tC7xG6F7Bz6aAKFjRw2cnbKVyuieqel0eIWkCQWtIr25Cd5Re
+Rl19hA3/FDhUPKpGoYGVA4GSAAQEf2zEIQfEDBaNxnmoZPlptT91YlcRO3UCeW76
+VM3M5wS5NE7kv5ZHUtaJECYr0mq2s0cIRASygwbKNCXymJTOb9QpPFlzUi8GDP21
+RnZ1p4mSO+lzxmRdvibQCjnU6BJVIXKRo4gs+o+R9KqCFNNSTJXvaiTkezudDvVf
+ZwdWrkpNnGXwdfQXCy0YqvvKAmU=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C16-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQEf2zEIQfEDBaNxnmoZPlptT91YlcR
+O3UCeW76VM3M5wS5NE7kv5ZHUtaJECYr0mq2s0cIRASygwbKNCXymJTOb9QpPFlz
+Ui8GDP21RnZ1p4mSO+lzxmRdvibQCjnU6BJVIXKRo4gs+o+R9KqCFNNSTJXvaiTk
+ezudDvVfZwdWrkpNnGXwdfQXCy0YqvvKAmU=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C16:KAS-ECC-CDH_K-571_C16-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C16-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQAS1Szzv1BX16qykrk5drPvOIMuhky
+ovUFSbzTFjABetIUdd8VT/N74TymGkxgM2sz0P/HYqqenp/G5v0XJQteQCK1UUHS
+P78Fb3yNZcVo3pW9FmT/9xQp7HOJh2l/IX3lrfNtFKgLb+WF5GheA8gYOKvt/cBa
+HgFAevSrmJ/B0Sc7qKGCxGGFbV7/5wXX3+U=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C16
+PeerKey=KAS-ECC-CDH_K-571_C16-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=047265831f1f589b5f30806e2fb80aa7844cbf32b6993384beaac7d992b327b97dfd0bb89ca09e711507e846ed4ad003e7115fa8843b23d38f320e43b5eb506bde48fbd7af4983b9
+
+PrivateKey=KAS-ECC-CDH_K-571_C17
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAEwN03FeiIjcIiIG
+nn9hGAFoUUAwPha4tENDPV4YpLGAPVaAQWrr2nrn6USRVL40an3LNsHbInRGc/s7
+JF5YRAeH7T3sbT21oYGVA4GSAAQC+yQessKKGwZ1tXYP5WY++mA+sFkIQvRVlz8F
+c+FIpH5j+X6N+aVwsGVdWvxCAZ/pX+RP2wKmgnHYLfWAAQ+R3/DLPZvaiZIDP5Op
+3DnYdAO2qU3AYy3sZ1eELQqvitjEHrtjcFi/wRwZo6mr3fIEIB70+W/pYpIzpQcK
+CHlNFEcAkeMM3Ydqr2VAdicjMjQ=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C17-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQC+yQessKKGwZ1tXYP5WY++mA+sFkI
+QvRVlz8Fc+FIpH5j+X6N+aVwsGVdWvxCAZ/pX+RP2wKmgnHYLfWAAQ+R3/DLPZva
+iZIDP5Op3DnYdAO2qU3AYy3sZ1eELQqvitjEHrtjcFi/wRwZo6mr3fIEIB70+W/p
+YpIzpQcKCHlNFEcAkeMM3Ydqr2VAdicjMjQ=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C17:KAS-ECC-CDH_K-571_C17-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C17-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQH7HG+oIEZCpxM3/gJ7Stlp3gAzRs7
+7/0eQATRJqw1LSQjXHl6WlZ9rvc5PSdmOBMup/D2HlUNwlHTQfZhAvlsKr9+43wP
+ye0A78KshwWy+cnAapEKMExCsa1TEBrrDRRjGdwkgVx8wZg7HK2R1fnG1e7xZ3of
+LSvddaH7TFeWpMVpZKo+Q/PaJsc37dnLCRA=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C17
+PeerKey=KAS-ECC-CDH_K-571_C17-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=059b62c25c96955b8fb4deddcf90ebe6845ee71ea357739273d6d67f21a0c47d154add9d5d4d2b657fe1988ad614b0b4902faa92fe999abd754ad33cd6b92fe2f6a68a6f2c1eeb27
+
+PrivateKey=KAS-ECC-CDH_K-571_C18
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAH1UGU/CJsw59kDT
+0XublbcLUfmK1coZkVZhCNg543fiG6SMv0QVMLM0HdxhsKWBQaqmZTAkH6UpUF1w
+gEslYMW+SBMQuZYtoYGVA4GSAAQC7V86LvpKsPnbX87XsTAN5NRXqa0IJ0V+XhxL
+wV69GDd13ktzwfgg3UAzNmEA5ItBZNBOn7bPGkvbVRIqhgBfvQvSzdvJX6cDJ/5l
+TvaFY8yIiKzKhRY8KxVPtwsPSitYw2OIoMJfgKTIh5d9RgANxNhulc/Y+QZcAOso
+ZTyPtHe7tcY91HuDyl4Phx6e7T0=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C18-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQC7V86LvpKsPnbX87XsTAN5NRXqa0I
+J0V+XhxLwV69GDd13ktzwfgg3UAzNmEA5ItBZNBOn7bPGkvbVRIqhgBfvQvSzdvJ
+X6cDJ/5lTvaFY8yIiKzKhRY8KxVPtwsPSitYw2OIoMJfgKTIh5d9RgANxNhulc/Y
++QZcAOsoZTyPtHe7tcY91HuDyl4Phx6e7T0=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C18:KAS-ECC-CDH_K-571_C18-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C18-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQGcIaGtPWtL+xFeq1axKPcSGekd+tU
+/A1JNRG1Vh6hUd1Mr11DEZg1ALSMgEOvCeP0BC1aB+vwUKToAdru8zF74JOVUCBF
+KykFJchoJYO1X37OxZuSCEb3XRHQIen/sgAYY59quTAiRywZLTmOFQzcYwoR/PlC
+5dI4zWwUsw9Eok0vhD7F0TXdx6vaVgR6vCE=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C18
+PeerKey=KAS-ECC-CDH_K-571_C18-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=02777c72853b76b29f69d3aa27a1659789a025af0633d833b22b57bf328d231ebd128bf96a4c8a7ffd2ee7a51e5ebb7a8e5bca20e4ad49671a2123dfbc0d6c40594e04765186de06
+
+PrivateKey=KAS-ECC-CDH_K-571_C19
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAQdAuVgoUkIEXNU1
+jX/5Iyt9fUE69+IFwoX4hJLvJ6L7hQ4FZ+wkxIDHWtMvcDQgJchiZ9vk/4CixQnl
+uaRRMOmefHzIzG7OoYGVA4GSAAQD8/WFyv1GpmO2z4uDI++RWdUZXTEY8+3zhzLK
+D/c7LQZdnmmuHjl4ss5txhUA97i79vanC0e7ZMxP0ZW7pqyTK3C+r+F0FIoAsVZv
+5hnyzACroF4kpszLyRM4su71U9oNR31sjArExlbhNNvPMf+xXGfVib0pGPEXSQnl
+QoxxyQ44xOEbViNqv6HeaoV5600=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C19-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQD8/WFyv1GpmO2z4uDI++RWdUZXTEY
+8+3zhzLKD/c7LQZdnmmuHjl4ss5txhUA97i79vanC0e7ZMxP0ZW7pqyTK3C+r+F0
+FIoAsVZv5hnyzACroF4kpszLyRM4su71U9oNR31sjArExlbhNNvPMf+xXGfVib0p
+GPEXSQnlQoxxyQ44xOEbViNqv6HeaoV5600=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C19:KAS-ECC-CDH_K-571_C19-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C19-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQHznZ0QD38YoldceKrWHznNfJ58S99
+8xYTNb5D/CkI6nNvb1i5MteTr/ZvMyc11NOPBcsDzydcoOANofVzgeCL/rUBeHc0
+InIH1mSfPZHnv1+N5hG9lxgYEG3y43k1u0ZM2edGlinGrn5/KyJAJ2yw7tt6JtDH
+03f0AJod1Ip5PMmT+w1KBNsdutRJMwS8XA4=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C19
+PeerKey=KAS-ECC-CDH_K-571_C19-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=02c2ec1632e83416182a9a438f7360b88061bab84f5bded3dd8a0c87baf44507df94fdcf99353b107e61cfcfc8af071b3aa8cec7b34a542bf2ab8ea0bd9db67d66b428c9a6c14458
+
+PrivateKey=KAS-ECC-CDH_K-571_C20
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAMheXS3tW8O2tVP+
+CgIxG3K8XNyOlt8XnOV1EcJqyehz/B92zd6afY5Sp+m+XHdTYgMx6Jd6mJArSK6Y
+mc6KamY2YRJ2riODoYGVA4GSAAQCiapSCf57Gte5xeDmMLpeApKeobHxFNMKBkgB
+K/Ap4GZFPy0o4dUDZl3Qgz8Lo35Fg7Q03ZlWEAoa5uVPltk0fYBnQdOnbjEDOv6H
+sp7e9Ef/WgLmP2SQW19TrIVs/XdVrVQoEuzdVo6K4fnTL+oPAgGNz9DhbWpqJ5e3
+49yFW/22sNCyUl4UNnjVOb+MBnI=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C20-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQCiapSCf57Gte5xeDmMLpeApKeobHx
+FNMKBkgBK/Ap4GZFPy0o4dUDZl3Qgz8Lo35Fg7Q03ZlWEAoa5uVPltk0fYBnQdOn
+bjEDOv6Hsp7e9Ef/WgLmP2SQW19TrIVs/XdVrVQoEuzdVo6K4fnTL+oPAgGNz9Dh
+bWpqJ5e349yFW/22sNCyUl4UNnjVOb+MBnI=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C20:KAS-ECC-CDH_K-571_C20-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C20-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQEg61zguNIr8fycdUNjTm4FLfW3AxW
+KmulVlaARb0tYgkGqxEG+RN/9yWJLoQ2qM17iIkqMvGasmnirTDX8OwA46BS+7xG
+YwcEHMSw8ZXcc8So4QYF8qOCkjq9I4HyTkq71AHgh8UNGPbasBol236J3/9oxmNJ
+T7TQh6gWuFRE2IK+wqwl5C/eeOvMp5pv3fA=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C20
+PeerKey=KAS-ECC-CDH_K-571_C20-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=07e1d202a54d34020939f7aed56931f21b206761e4fc79b9a7b320f81077be322ae7809446b5b3ea701618ecdb0a1796ab80407a281bdbcb4d580131b61f8743bfef7a4d9c5941f1
+
+PrivateKey=KAS-ECC-CDH_K-571_C21
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAFOkjP2o7iMs6jVJ
+knsi83XWCWVgAl4hMWHUPu0C0HNl2e3nyT1FfqUeojaeh0Y+3b8loGux8ID7R2MH
+SoKD3T1p8d6GUpXjoYGVA4GSAAQEeQ+dtgC5oKV+A9J0o9I6VaoNhrLW+gf6/jyd
+TDOTdx3eiccKZHCjG60QXCHUhEzXv8O1lzj51sUoxBTVJPiODIYuThev9FQF3BLb
+BOJInbikbN7/n42dLgDQJPZWx4HrTS2xZ2JLOnCt2qoVjKAGAdTK0GWRe+vnZpEv
+q6mYf8xfyKeN0hZDqmUOakp+IGE=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C21-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQEeQ+dtgC5oKV+A9J0o9I6VaoNhrLW
++gf6/jydTDOTdx3eiccKZHCjG60QXCHUhEzXv8O1lzj51sUoxBTVJPiODIYuThev
+9FQF3BLbBOJInbikbN7/n42dLgDQJPZWx4HrTS2xZ2JLOnCt2qoVjKAGAdTK0GWR
+e+vnZpEvq6mYf8xfyKeN0hZDqmUOakp+IGE=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C21:KAS-ECC-CDH_K-571_C21-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C21-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQHpejrSWhJehG5DGDhPV88YcaGhXOm
+ttt8IIqFbVTnT0No4oEAueC/SfwxBOFG+9p4RiOjbZ8B8j6636sE1/SP9mUGxpi+
+3REBPblo/HzTOMuOMEKhcfowb5q29shl3cW6X+mUow2PwfoScZHwjk4UuaoIalL7
+yqRtIhB/1t9TEItT/gu5a8l0wDqMZSj5eS0=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C21
+PeerKey=KAS-ECC-CDH_K-571_C21-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=07f49ee5d822b17e3f1ec9946fad8d0a0a6b327242afe675806b3e6b7541745e21cd1b70df926af057a9f8deae4cb9a1edc782014426152e8aa4cf6a4080dad4678dc8ff0d9e1af9
+
+PrivateKey=KAS-ECC-CDH_K-571_C22
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAVpeWUb+LJyubUEs
+YYwb0HckQysvHe2xMn2Kmc6DDmsDD0AlwUtOPRkS6pp4KQoc/H0BiaMMYUAQyHMU
+ahgvY5GTopEu3NBKoYGVA4GSAAQDFAiH6HA5eXhp9dnbUNkbpp0L/cWmd8cAYQVi
+9oDZUaXgUXyy+WY2fUjkI7BG205ovBxLMYPcgL7hJuiQFJlM34PEMSo+XqcHuNcG
+liyxkvDtFMTacQ0bGwc/2MpJepQ3mnRUycPUzm5f0uY4aFKnfFQ1q7I1NtzIOYbO
+3UUSdS8pXKUA8FX0YnY8KftnjKo=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C22-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQDFAiH6HA5eXhp9dnbUNkbpp0L/cWm
+d8cAYQVi9oDZUaXgUXyy+WY2fUjkI7BG205ovBxLMYPcgL7hJuiQFJlM34PEMSo+
+XqcHuNcGliyxkvDtFMTacQ0bGwc/2MpJepQ3mnRUycPUzm5f0uY4aFKnfFQ1q7I1
+NtzIOYbO3UUSdS8pXKUA8FX0YnY8KftnjKo=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C22:KAS-ECC-CDH_K-571_C22-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C22-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQBPKr4zi4jIc8lbytkqomt1paMKYYk
+oivTjvlN6zpw6kTOh6lI6la/DulAcTT4yXsXsfVFYf93R+P2tlb4DWB3jQW4xMu7
+zzwAR6Lco+tnVLCp/Rawgfykl7Kd0uyeanWW0GsFnCqxiQD8xYcVJHJ245DfHbqy
+a6gSNaTcZzgjf879OBK3q0NskmxQxgDm6Qc=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C22
+PeerKey=KAS-ECC-CDH_K-571_C22-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=058cd5608dd9d64d4d822baeca123358a4d7e56d3777ecdf569a149c2f85ed35479eaeaababd0b026dc3b56aedafedfc8491040413f85b669d8512a3ef7bc8fe8706b5c7585370aa
+
+PrivateKey=KAS-ECC-CDH_K-571_C23
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIAL1Y4ZwF336ZvZYg
+cOC0x1dgQoWER+AjtBuyl0Womkh03+MloV040vuehw9BndFfSqrGXbvFrCxUD1fN
+sORbyGYhcm2SLRSqoYGVA4GSAAQB5LKid93Xjy8RnAW2rh6noqdElh4IlA9lae6I
+CMU7x6EhOAZO1cjCIu7yd05wwovOOmwF86ZU4SEAarYryUOB0Byg0bCCNNYH7tjN
+eoo1SbDZ74eGh579ycD0zpCzmRozy7sdNwTbk1ExOLGaUOysiA5XjeIQRvA6IABI
+GAiEvELPmq/ljMHq9TbW0l8VQdg=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C23-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQB5LKid93Xjy8RnAW2rh6noqdElh4I
+lA9lae6ICMU7x6EhOAZO1cjCIu7yd05wwovOOmwF86ZU4SEAarYryUOB0Byg0bCC
+NNYH7tjNeoo1SbDZ74eGh579ycD0zpCzmRozy7sdNwTbk1ExOLGaUOysiA5XjeIQ
+RvA6IABIGAiEvELPmq/ljMHq9TbW0l8VQdg=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C23:KAS-ECC-CDH_K-571_C23-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C23-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQHQ7PJZag+6fa9uZAaHcwfeBllRKiL
+nPgRf4ntFXTlxdgE/EUREsJXh34SsKZsaTxmVcErukU12Z1iQF9Knc68BW2LfLut
+oSAD76WKo6jGok9DxVgf7AQUQq6VUnXbwdRtEBVgWdJje5qCmUsCSiR9KmZyS6kN
+Anh7FosfofS2dJZFQGxDj40xbWcPHg2LAwE=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C23
+PeerKey=KAS-ECC-CDH_K-571_C23-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=03bf7a59bbdd688682c45664d20c19cb2d24fcca6772120cbeed1cde762d449ebf22855627eb6b2be6e7f7c0f0034d02686f2a4488549f8cb198e02b46972bcb88914bea66dd6400
+
+PrivateKey=KAS-ECC-CDH_K-571_C24
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJgSB6DCB5QIBAQRIARRjBw/LSii+Tipn
+wpx/pIpMWFowdAXQahoGeOkJ3W6vuJhmLN2LzAGd6xTl2S0XK6HEOO8PZNgBB8fo
+5oAp9OCqgUoQmco4oYGVA4GSAAQAk5OY5GOIbw27SKdPVzoSFQAGaOELV5idwwCy
++ajAjNQ9bLt/Rux3wcKUsj+GKZAn0rk/1usYIQqCML9G45IfGCySYMMIR6sD1I7G
+M7naFlDqdiZWs+MfJq7Afnymqvwe18tGbqrzmT4EZwSMlnux6bSuBzojDB4vdOLm
+GGZs9WoG8rZew5Vbb/uwapCM9hY=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_K-571_C24-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQAk5OY5GOIbw27SKdPVzoSFQAGaOEL
+V5idwwCy+ajAjNQ9bLt/Rux3wcKUsj+GKZAn0rk/1usYIQqCML9G45IfGCySYMMI
+R6sD1I7GM7naFlDqdiZWs+MfJq7Afnymqvwe18tGbqrzmT4EZwSMlnux6bSuBzoj
+DB4vdOLmGGZs9WoG8rZew5Vbb/uwapCM9hY=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_K-571_C24:KAS-ECC-CDH_K-571_C24-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_K-571_C24-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQHIvHnoGB3UNri1ixdPUcPAGwyVFWO
+qqKU7u28qNML9Ku5Vd62LkF5kl9sut87+HdvFdyuNVat33lxBad7f29xIGyg5uqR
+4YgDXRCMoNYgyrlrfL9hfRtawG43eSYpiGVk/RR8WOVeQjNE/08fukrw/jQVKzhL
+doXKrRXTvCcOQ0Iq2HTnHkCKcabIqQ0q2Xg=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_K-571_C24
+PeerKey=KAS-ECC-CDH_K-571_C24-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=06d410e9ba6b8b87b00d0f676de8ba27f6afe7e308c2e992f318fc14cba0a447316ad86e8e6c1d3345d8e4035735232c2c597e760b8800a89a521567b09408f9c7be279c137c963f
+
+PrivateKey=KAS-ECC-CDH_B-163_C0
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUD7a4XPej6DPBBLWp73IH9
+vQYXrfihLgMsAAQDVGZwHQsAMNCYtu0jQ9NVwkyQcnEA2LwC80HSYYYN+2Xwy38L
+SI2Clsw=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C0-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEA1RmcB0LADDQmLbtI0PTVcJMkHJxANi8
+AvNB0mGGDftl8Mt/C0iNgpbM
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C0:KAS-ECC-CDH_B-163_C0-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C0-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEA6ZHujLaxx7GeAsGOKcM0k/DvUyOAuae
+lhVBhEpKozdpp7znEPZkClYM
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C0
+PeerKey=KAS-ECC-CDH_B-163_C0-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0100fb42d177ffe6c31378e2e04e0da7376ffe8765
+
+PrivateKey=KAS-ECC-CDH_B-163_C1
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUBeNzIIWQl1L9xyPKSXdGv
+htwEomihLgMsAAQBHklDDN0G8udluPLMBnzUJOLnVIUAg68VsizX39Hf9zlr8/MD
+j1BSSZE=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C1-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEAR5JQwzdBvLnZbjyzAZ81CTi51SFAIOv
+FbIs19/R3/c5a/PzA49QUkmR
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C1:KAS-ECC-CDH_B-163_C1-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C1-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEASgomJNkhtwuPNFYXzLVVEJk4ZHkBenp
+i7dJm/iV93+PyDAdbhx6n2GR
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C1
+PeerKey=KAS-ECC-CDH_B-163_C1-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0681c9e59eb7eba769f5b6f2b06ddf1efd12997995
+
+PrivateKey=KAS-ECC-CDH_B-163_C2
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUD6h555SoHCJjWo8TnSOla
+yHENd/ahLgMsAAQBN4YLo0WK8Twir4Il9WHgEzHNh6gHcgNW4V3HP5/uehwCH+yp
+fNQSBOM=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C2-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEATeGC6NFivE8Iq+CJfVh4BMxzYeoB3ID
+VuFdxz+f7nocAh/sqXzUEgTj
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C2:KAS-ECC-CDH_B-163_C2-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C2-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBYdPzIxITAFBcxAty3DGJO5hCNMdAElp
+P07ccUsNC6pb/F2LxqwECJ3k
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C2
+PeerKey=KAS-ECC-CDH_B-163_C2-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01e0749a21fc508f76dade85435bbbe12c448bd8c4
+
+PrivateKey=KAS-ECC-CDH_B-163_C3
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUBrVypq8i83MSCmVrRqXfk
+cnFQuzahLgMsAAQCWueDEbD882lWajGfiYSVRq6uwwUGQOsP31IEgK++ufJnT+sd
+bfSC1/U=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C3-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEAlrngxGw/PNpVmoxn4mElUaursMFBkDr
+D99SBICvvrnyZ0/rHW30gtf1
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C3:KAS-ECC-CDH_B-163_C3-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C3-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEADdI15jxQCaPHnGLOyOqKswDM8B0AMQq
+knq1eWlhIwlVdayUmwen0dS8
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C3
+PeerKey=KAS-ECC-CDH_B-163_C3-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0320398f7acf791e0d602d7b94742cce58e9fddbac
+
+PrivateKey=KAS-ECC-CDH_B-163_C4
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUC0oqKodifo+Xllv/RgIJU
+7heg0PqhLgMsAAQG5sUklKtjyJyXiFVvcWZ387SAQqAE6YJYucVvAtPttMpbCu6q
+naqm/g8=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C4-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBubFJJSrY8icl4hVb3Fmd/O0gEKgBOmC
+WLnFbwLT7bTKWwruqp2qpv4P
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C4:KAS-ECC-CDH_B-163_C4-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C4-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEA4DbPfKxwBVKjoyzBK7NWB018xXNBxU0
+7C6LNX2eBp1/H6mL1E7YsGgm
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C4
+PeerKey=KAS-ECC-CDH_B-163_C4-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=03e4de43de85223d818e5be6549c29cdfa1afe1782
+
+PrivateKey=KAS-ECC-CDH_B-163_C5
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUC4XD39NwVL+Rwb5nZviKe
+ExfYK72hLgMsAAQHkA2sJR3oqUTPChvy6y7+7hRnbpsAkeffZ/d2InKdWbfjS5Rx
+J+f6Ll0=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C5-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEB5ANrCUd6KlEzwob8usu/u4UZ26bAJHn
+32f3diJynVm340uUcSfn+i5d
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C5:KAS-ECC-CDH_B-163_C5-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C5-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEATbg0FtPOYuCfhmARhSLL0FXP8B8BzmT
+TOwQVyhS4fYZIi4vXsTg+lqm
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C5
+PeerKey=KAS-ECC-CDH_B-163_C5-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=037b178aab014d5abab305e37deed7f4798cdb862c
+
+PrivateKey=KAS-ECC-CDH_B-163_C6
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUCkj0sgCzsQt7yYz3r3KdZ
+1ZdE0+ihLgMsAAQCzctPke19F3aNuAvis6yeCVax2XEDJDP0VabNJT6RWC0vb1px
+JlXaHWk=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C6-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEAs3LT5HtfRd2jbgL4rOsnglWsdlxAyQz
+9FWmzSU+kVgtL29acSZV2h1p
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C6:KAS-ECC-CDH_B-163_C6-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C6-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEB2w65KeBZzYn0Om8thX2JqFgpV3aBYwO
+yPJknC3c2cJLZDQzsU2QfFkD
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C6
+PeerKey=KAS-ECC-CDH_B-163_C6-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00958b2aaa6061222dd248a6b9700fb6839dacdc99
+
+PrivateKey=KAS-ECC-CDH_B-163_C7
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUCWxe9bkIH2fsaOvAv1dsm
+r4NIrrChLgMsAAQG9vWx87GPRdtPs3d+aED7WlthqRQHN84UrrJOBZFYWnQXuJJW
+dJ9GHeY=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C7-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBvb1sfOxj0XbT7N3fmhA+1pbYakUBzfO
+FK6yTgWRWFp0F7iSVnSfRh3m
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C7:KAS-ECC-CDH_B-163_C7-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C7-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEANZfBRbBs+7ZIg5Zs9BJ3RFTF5rFAgv+
+EHqJpzYM0uIXU01t8pjMS8RY
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C7
+PeerKey=KAS-ECC-CDH_B-163_C7-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0393387e1dab35748f20d506a0e2b4dc0ee6c3ff39
+
+PrivateKey=KAS-ECC-CDH_B-163_C8
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUAE36BMq0oiSPmSBHpIpj1
+wNzJVwWhLgMsAAQG8s3R1jDdcx7Xf5Acew5zVRXibU4BBi8vcVxNKvl7sb6LbPou
+PuMUJT4=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C8-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBvLN0dYw3XMe13+QHHsOc1UV4m1OAQYv
+L3FcTSr5e7G+i2z6Lj7jFCU+
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C8:KAS-ECC-CDH_B-163_C8-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C8-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBA2QPOKzD3CmoDhJsOF1j++Ih70xBKvY
+vbfBMnyZszgg2+GK4RT7Q1lJ
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C8
+PeerKey=KAS-ECC-CDH_B-163_C8-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0212358d3f8bce69b662447333b3edbbc9b2f7e805
+
+PrivateKey=KAS-ECC-CDH_B-163_C9
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUBxIxQt9Ps3zuQG60O78Pj
+gm486p+hLgMsAAQBkXVXMRfdhR5u6/2fseWohOv+/uUDrfN+Te1SVz+lfIyyv8ps
+ZcNnRGI=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C9-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEAZF1VzEX3YUebuv9n7HlqITr/v7lA63z
+fk3tUlc/pXyMsr/KbGXDZ0Ri
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C9:KAS-ECC-CDH_B-163_C9-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C9-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEAi7SRkPwzsaMjkrRqixDadiqA/WUBczK
+YrbdHTFt7b0PHVML7W5VazrY
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C9
+PeerKey=KAS-ECC-CDH_B-163_C9-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=023472fa59846f7be07cf060cdd69a9fbb27d4fe44
+
+PrivateKey=KAS-ECC-CDH_B-163_C10
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUBFi2e06ZgRV6MAV0eRdFR
+V0mj3NKhLgMsAAQEKD6w5QhdGYs3j8lfb7TDGYtNPHgBB6EWjy9HuWPks6kCTgw1
+el69+Sw=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C10-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBCg+sOUIXRmLN4/JX2+0wxmLTTx4AQeh
+Fo8vR7lj5LOpAk4MNXpevfks
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C10:KAS-ECC-CDH_B-163_C10-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C10-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEB5P0sxFy7uZvJ2nrMF0DtcP3z/+LAfPs
+7Gu9qb3opNoU2z5f+TS5g1sX
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C10
+PeerKey=KAS-ECC-CDH_B-163_C10-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0173a056c4c9ef6707cd23928999c4680f42b71f7c
+
+PrivateKey=KAS-ECC-CDH_B-163_C11
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUBmh0W9KVy88G1HqKs5pKA
+5xN7j4yhLgMsAAQFzt6Wpw9xTNaJY/LWyiNiaak48xEGza3VS29zPICTR4fijCzP
+WLEie8A=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C11-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBc7elqcPcUzWiWPy1sojYmmpOPMRBs2t
+1UtvczyAk0eH4owsz1ixInvA
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C11:KAS-ECC-CDH_B-163_C11-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C11-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEAup6UINGAvES9t0ObSXwZPnQXv8mAb8/
+adFKzIMzUzqIwuiCSGOkeuAn
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C11
+PeerKey=KAS-ECC-CDH_B-163_C11-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=03d34f411a297d7c990fa4a83b5f54759607f9d33f
+
+PrivateKey=KAS-ECC-CDH_B-163_C12
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUC79RADa08+tjRY3+pKQxL
+dYowFbahLgMsAAQFExMbS8ty72irBD7oT8jLA7bY8YcBILfVdyu7F+yxyegMNvgI
+/VSpOq4=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C12-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBRMTG0vLcu9oqwQ+6E/IywO22PGHASC3
+1XcruxfsscnoDDb4CP1UqTqu
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C12:KAS-ECC-CDH_B-163_C12-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C12-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBt0TBTSeiqCAIAc6DeWvxdwbamLTA0l+
+t79Aie8CzQpd0Phr2HmKRMVs
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C12
+PeerKey=KAS-ECC-CDH_B-163_C12-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=06120aed8d4c1e506710e2cfb98ca2022e642ca89f
+
+PrivateKey=KAS-ECC-CDH_B-163_C13
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUBKw1kl3z8E7SDRe9wctGj
+iQ6vuVuhLgMsAAQBuTY89Ic1Z2h42AzhSBuFiGg/dEQHaPpzJ81yUsj2lu1JR4aJ
+Fa2h+10=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C13-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEAbk2PPSHNWdoeNgM4UgbhYhoP3REB2j6
+cyfNclLI9pbtSUeGiRWtoftd
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C13:KAS-ECC-CDH_B-163_C13-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C13-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBaDjQRGOaYJ9an+CgvvwuUQA8IJABCO5
+k9Q2f79PZQTZ4JpkEjo7U9Eo
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C13
+PeerKey=KAS-ECC-CDH_B-163_C13-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=021a58087968c5df57afd7c343a4cfa2ee8e7073f1
+
+PrivateKey=KAS-ECC-CDH_B-163_C14
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUDOslTgD0ERrPNpOvQcbTr
+AnwRv9ihLgMsAAQFxEbpiWykTMpzPp9OW2Sv3cBTchEGutGyUiaS+XCzi+aTXcfR
+wJ3NIG8=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C14-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBcRG6YlspEzKcz6fTltkr93AU3IRBrrR
+slImkvlws4vmk13H0cCdzSBv
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C14:KAS-ECC-CDH_B-163_C14-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C14-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEABqSPWGRY0MGEkweJnMJsH26Mt7LBaNR
+f1Qmo0Eacn7dwpo+wilVg2jR
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C14
+PeerKey=KAS-ECC-CDH_B-163_C14-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=03da9c0879219e48c3df56174898fab9ee5b0a6bcd
+
+PrivateKey=KAS-ECC-CDH_B-163_C15
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUBvXkUWuf0LGsl0cOJZewI
+/SdTOnqhLgMsAAQA6dj8OgJpJcit1Qj5IPouX/UoJogFt79jElmsfTaTbBMP8gbY
+ILE73oE=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C15-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEAOnY/DoCaSXIrdUI+SD6Ll/1KCaIBbe/
+YxJZrH02k2wTD/IG2CCxO96B
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C15:KAS-ECC-CDH_B-163_C15-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C15-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEAvqLrw1hKK3ZuQKqGByB4kKYRR4uArk9
+H2kTkU/+FVnHwRTGMbtrKWF+
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C15
+PeerKey=KAS-ECC-CDH_B-163_C15-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=05b33fe3874d32aed99919265cc0074902e538fe54
+
+PrivateKey=KAS-ECC-CDH_B-163_C16
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUDMMofWtd9embYdCMygCDJ
+HsefN2ShLgMsAAQFujfTaZfE8qvmA9/gQiMnOOgrCzoHPIzZUARJcqAFxvGvjkMG
+4MzvuUY=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C16-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBbo302mXxPKr5gPf4EIjJzjoKws6BzyM
+2VAESXKgBcbxr45DBuDM77lG
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C16:KAS-ECC-CDH_B-163_C16-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C16-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEA1Pi2kWrfEkwKAw+20upABLVbfYvAmkx
+4wuX/173uswN5NlJBwhSLjsr
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C16
+PeerKey=KAS-ECC-CDH_B-163_C16-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=053dbce9826af4d290036feb46875e975b7848a9c4
+
+PrivateKey=KAS-ECC-CDH_B-163_C17
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUC0jFAB01u3dW8CZsX3hKv
+ud3y7L6hLgMsAAQG4GzHww9e1+aGw6daHUQld3BgHLIDDcQUxK+zkO1GevRxqpvS
+t18y39g=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C17-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBuBsx8MPXtfmhsOnWh1EJXdwYByyAw3E
+FMSvs5DtRnr0caqb0rdfMt/Y
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C17:KAS-ECC-CDH_B-163_C17-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C17-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEByFnCITaqM1idjjskPNEjvsPJIm6BPhK
+mDvsayiJyCEb8jEUm1vrzHXg
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C17
+PeerKey=KAS-ECC-CDH_B-163_C17-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00d49b971cab937f40908913fe259849679ca076d9
+
+PrivateKey=KAS-ECC-CDH_B-163_C18
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUCRJwbn/CeepoDsX9f9GER
+X18/Gn+hLgMsAAQHP53d3EZQkz3szJVG05KjXbvGanYE3nVY3eZJ9yMis54xyOKc
+5vWZSF4=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C18-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBz+d3dxGUJM97MyVRtOSo127xmp2BN51
+WN3mSfcjIrOeMcjinOb1mUhe
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C18:KAS-ECC-CDH_B-163_C18-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C18-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEAdYxnsLcXAjwJhrtAjFBjW3D0M2nA45k
+lT982scdBS5VhVdGtD1EGBuR
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C18
+PeerKey=KAS-ECC-CDH_B-163_C18-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0483ad0b7f8a716273f624b8979c19126705266e4b
+
+PrivateKey=KAS-ECC-CDH_B-163_C19
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUA0IuV2aTOck7EYszhJwH9
+jD1T/c2hLgMsAAQAJqdw2G4cibp6hq72Sbp+qG/H1bIB2xAg4Pdk31SlPCPJOM7J
+jZp3rR0=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C19-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEACancNhuHIm6eoau9km6fqhvx9WyAdsQ
+IOD3ZN9UpTwjyTjOyY2ad60d
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C19:KAS-ECC-CDH_B-163_C19-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C19-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBPFnkHv0uY6Gltgdp9LBBW76DcFMBsua
+tlFDgyuc79XZzmnsTbLt0Geq
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C19
+PeerKey=KAS-ECC-CDH_B-163_C19-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00f69dcb547119fc9b8c454335aab184c3ada5f1c6
+
+PrivateKey=KAS-ECC-CDH_B-163_C20
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUDgI7+atUNJQ2HGS4WSZzj
+JZQo87ihLgMsAAQAE6AuJfySeHWvpVe9Zz9lhwRZ5nEEA4265cXlQIRwiiS8P9By
+52nBI3c=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C20-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEABOgLiX8knh1r6VXvWc/ZYcEWeZxBAON
+uuXF5UCEcIokvD/QcudpwSN3
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C20:KAS-ECC-CDH_B-163_C20-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C20-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEB5ttFMdDJxQC0TI2AyFf6zxosURVBOOQ
+VoalOMJaAr6pL0IYQCG16iWT
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C20
+PeerKey=KAS-ECC-CDH_B-163_C20-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01bc5ee5261b2bba55b10cbaa6cc3c97b98d00ffea
+
+PrivateKey=KAS-ECC-CDH_B-163_C21
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUCrSMqekHmzCSVU42HsCPN
+7HtuHyOhLgMsAAQFSeMHgNk/eW/c9pGQVXXYXGZFO9sCFiqIW+oxNEVD9dBhkTad
+7G5w6Wc=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C21-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBUnjB4DZP3lv3PaRkFV12FxmRTvbAhYq
+iFvqMTRFQ/XQYZE2nexucOln
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C21:KAS-ECC-CDH_B-163_C21-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C21-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEB3L0LScqBX3g/5Jsn5RgXGZ10hUmBgLn
+5TJV3pv1jAV+77ebzkMbXDgI
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C21
+PeerKey=KAS-ECC-CDH_B-163_C21-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=008574d838d3de87965fc1b4343fe4f078588c4ea1
+
+PrivateKey=KAS-ECC-CDH_B-163_C22
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUA3Jmxnz2IR4dRkOlYiyu9
+gw29OpWhLgMsAAQA9l2YTXHcwYvxcqvk05k84PfPMkwAG0nmos8Rc6raw69sCelm
+8xFBq9k=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C22-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEAPZdmE1x3MGL8XKr5NOZPOD3zzJMABtJ
+5qLPEXOq2sOvbAnpZvMRQavZ
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C22:KAS-ECC-CDH_B-163_C22-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C22-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBQskKUYJcXOanW1WcLxtdZ5WVnaLBJK8
+LT9jjUl45MpYylpO8ZxezOqN
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C22
+PeerKey=KAS-ECC-CDH_B-163_C22-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=04579b477a92ed961cfdb2014407e88e7716452a4b
+
+PrivateKey=KAS-ECC-CDH_B-163_C23
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUDVquFsE0IUbj2a0p5ZSbT
+8+OIKEShLgMsAAQHdqLhr5MtdFGQcL+pQeqpPp/16XoFq+ntRiRf0BRiUNKlY8Ru
+v3rNI0I=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C23-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEB3ai4a+TLXRRkHC/qUHqqT6f9el6Bavp
+7UYkX9AUYlDSpWPEbr96zSNC
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C23:KAS-ECC-CDH_B-163_C23-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C23-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEAX1SEW8MlVh/G3sGx26Y2ZyC3PIMAk6i
+K92ZC9eeY+c1shKCrhtepmZI
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C23
+PeerKey=KAS-ECC-CDH_B-163_C23-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=035a8c10e64403c52ef8d17c5f4dead0df81fb1f21
+
+PrivateKey=KAS-ECC-CDH_B-163_C24
+-----BEGIN PRIVATE KEY-----
+MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUAentUdVDHWKnefwbi845V
+9enkTOahLgMsAAQEWVLAtRfmhcqwlHAyf51LISdRsEkESkKabvsEvOoCQKtYBd50
+CqYfmU4=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-163_C24-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBFlSwLUX5oXKsJRwMn+dSyEnUbBJBEpC
+mm77BLzqAkCrWAXedAqmH5lO
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-163_C24:KAS-ECC-CDH_B-163_C24-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-163_C24-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEA6fqELodaqVFcAtAtzeVGp5zbfoMBPk1
+L7KsJETpKHVONlX9YuOkJWTo
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-163_C24
+PeerKey=KAS-ECC-CDH_B-163_C24-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=000142615e3607ac148c4de8f334be849235d01cdb
+
+PrivateKey=KAS-ECC-CDH_B-233_C0
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4APD7kdKwNC8HfVn48NfX3
+ZsUzKy1nMP8OTY51rtuhQAM+AAQAYeiptRf9BaAm7DdmFiKf2GOaH6dt7+U5gCL5
+2cgAcGtcsIc4qUVS/uWEsTcv6tSveQQJCfz29QCEu/o=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C0-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAGHoqbUX/QWgJuw3ZhYin9hjmh+nbe/l
+OYAi+dnIAHBrXLCHOKlFUv7lhLE3L+rUr3kECQn89vUAhLv6
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C0:KAS-ECC-CDH_B-233_C0-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C0-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAEdWut3vw9wzerJ7VFLrEK/9njH1tVwz
+DpDw9oaiASp59lIyMIohyYwBVVzK/H3OFcj+0wJadgy9bCMn
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C0
+PeerKey=KAS-ECC-CDH_B-233_C0-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00e9f3d8c4f1bec0f920e763ea1bb7415899f01734609e7547dc425ec946
+
+PrivateKey=KAS-ECC-CDH_B-233_C1
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4AqkGloBpOZqZ5l7C+FvVr
+FgsFYa0H868pZDhkYdChQAM+AAQALZFAJEZVcGjED8B13uk5FrDxqTkuR+VrdHEl
+rh8BOrCRXkrPd5UWgm+h3BiFoGq8XQgJySJAzPnD2KQ=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C1-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAC2RQCRGVXBoxA/Add7pORaw8ak5Lkfl
+a3RxJa4fATqwkV5Kz3eVFoJvodwYhaBqvF0ICckiQMz5w9ik
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C1:KAS-ECC-CDH_B-233_C1-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C1-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEARhqAo+aGNuSf2MlPCA+smqjq6DUCxo6
+vGTkeiKtAMvYuV+J5CESi8c6Q8XMJU44ZwlquJ14iy7TuQqW
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C1
+PeerKey=KAS-ECC-CDH_B-233_C1-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00f1fbecfadb158d62eb1109c085124fad67a8795b58815eb396c95db4b9
+
+PrivateKey=KAS-ECC-CDH_B-233_C2
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4Axmd8KAaLRi40hizmydit
+jBs8fv6Ay6tB2kGSeOShQAM+AAQAQssxHc/ySCos7OaWwetkxprCqlmSCaXBh2Oj
+FQoBsDKfNsE10ALwi+Pj/6naGMXWpww2D0+HHxK/P5U=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C2-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAELLMR3P8kgqLOzmlsHrZMaawqpZkgml
+wYdjoxUKAbAynzbBNdAC8Ivj4/+p2hjF1qcMNg9Phx8Svz+V
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C2:KAS-ECC-CDH_B-233_C2-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C2-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAJO/hWIWAiOOmNCcmIKNUaSUYDYsI8UU
+HT0bI1KWAISXFSGHqLOylYodCi7s/0SSJRgHy/0D1fJoW8o3
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C2
+PeerKey=KAS-ECC-CDH_B-233_C2-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=019ea831c51d88a7cf754495a1c474082ed481c8eb83190a77defb09d479
+
+PrivateKey=KAS-ECC-CDH_B-233_C3
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4AnGECSz3/IZs38b5nAYBK
+3yR0FESN0PDcUSk6yROhQAM+AAQAEkEg2ECYUOceM8ni2cQOoyvtEdd4BHhumwdo
+kqsAba4bpIFylv9jBzusnOBl1DMboaXImcwcB0Bdrj4=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C3-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEABJBINhAmFDnHjPJ4tnEDqMr7RHXeAR4
+bpsHaJKrAG2uG6SBcpb/Ywc7rJzgZdQzG6GlyJnMHAdAXa4+
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C3:KAS-ECC-CDH_B-233_C3-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C3-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAEVJZIaSr5XYjk4dSRTYyXaaraxaD3V4
+MmXz65ZXAbCUtIAvOXZj0OaC+r8clMTiFOSDJ7le78uSt3H9
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C3
+PeerKey=KAS-ECC-CDH_B-233_C3-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00088425fb04c2ce408f08d81385a322703a077bf00ba0791e4e79b80419
+
+PrivateKey=KAS-ECC-CDH_B-233_C4
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4AbmnQZNvZp5T2jmmaDpQb
+3aalOhzso7PbgpJbb4uhQAM+AAQAxX1h/LH+6Q1djJfL8YjI74JZsK4lh+zx/4zS
+4voAuK2GxoBaSrRFE9u6L1CYuenB4Ftnn1KTeuzisYI=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C4-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAMV9Yfyx/ukNXYyXy/GIyO+CWbCuJYfs
+8f+M0uL6ALithsaAWkq0RRPbui9QmLnpweBbZ59Sk3rs4rGC
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C4:KAS-ECC-CDH_B-233_C4-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C4-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAHPFz0oB0J47QbXnd4xrm6Utr4j8QE+O
+L9CdtAJ+AHA5Htqnbw45cDlMrAM4BhBYhYw8c9XLUS5TJjBP
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C4
+PeerKey=KAS-ECC-CDH_B-233_C4-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=019b5efb23bc18a4f18c22fe2fd5cdbd02372cabde5e5c9f4b4f9a49438f
+
+PrivateKey=KAS-ECC-CDH_B-233_C5
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4AWuXeMMfDFxgTot0+PqLF
+zqoEc8OUV+mSkHHhpCChQAM+AAQBfPn8oF1KVeS2j+56O9Q/BHMD8qJm2Bu14ex+
+JVgAOwr0PeBQAzl94dSyeCetL81nXL9hpEWh7EClabY=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C5-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAXz5/KBdSlXkto/uejvUPwRzA/KiZtgb
+teHsfiVYADsK9D3gUAM5feHUsngnrS/NZ1y/YaRFoexApWm2
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C5:KAS-ECC-CDH_B-233_C5-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C5-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEASOmsIGnYehsBC4ZFK9H8JOyZVVD5WRY
+S2BkJTmpAFGO48GuVGQE3x7M1pqmhWQx0ciIHPBXjP9OuMEb
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C5
+PeerKey=KAS-ECC-CDH_B-233_C5-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01f36d9519c3d47f030eeac3338db583b96fefa551a4b56cc5567f2d9d7a
+
+PrivateKey=KAS-ECC-CDH_B-233_C6
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4AxoeWlVtotfiCfjisB4Kx
+rCxFUsrvDGCVhGfNhcGhQAM+AAQANHifvGDxCGA0yPLOhv1KozUZTJFGiQNX3EdW
+meQB0395Yyf3HsMVEEaEY9CykFSIpKYCZ4cN/uVnwlA=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C6-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEADR4n7xg8QhgNMjyzob9SqM1GUyRRokD
+V9xHVpnkAdN/eWMn9x7DFRBGhGPQspBUiKSmAmeHDf7lZ8JQ
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C6:KAS-ECC-CDH_B-233_C6-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C6-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAUH7vys2HCyM5e2r+iKqR1VYHlsaZmAD
+YqDue8V0Aa6jysID+MeAR1omCbKXDMhvlupAEcNI2oJiszSq
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C6
+PeerKey=KAS-ECC-CDH_B-233_C6-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00e54b1c916ff3ba1aa0b2b99f0ebde4f1a4cc6a10d959bb2f7f4c777b84
+
+PrivateKey=KAS-ECC-CDH_B-233_C7
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4AdCRcyX3UUJNWieo/ynsL
+MMHWfObovhfLEZJXXK+hQAM+AAQB4cVwrMZTxwb9d0AZSlVN5/N5mhK4INapQRl/
+dh0B4iJejQ1ByAj26tevMg+yX+0pqZCYoPDhHNhp5Tw=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C7-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAeHFcKzGU8cG/XdAGUpVTefzeZoSuCDW
+qUEZf3YdAeIiXo0NQcgI9urXrzIPsl/tKamQmKDw4RzYaeU8
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C7:KAS-ECC-CDH_B-233_C7-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C7-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAJag0/Nuj3U3kQdM6ml7JHFifgyeeilK
+ApqdO5QpALdnF0opILYvHwL6eQl4RdUdk+DIEEQQgxot1Vw8
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C7
+PeerKey=KAS-ECC-CDH_B-233_C7-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00bc0dcf7585753cc79aa412d2740b4b2d1c644fc9755cb0550286bcf68e
+
+PrivateKey=KAS-ECC-CDH_B-233_C8
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4Al77tS3OKYgXMnqBGtEi1
+IxKLkxAaAtlkQ16xeAahQAM+AAQBg1jalAeacAoQsgojJdM9gOletPxKmBAcMSY1
+k5wADE9ELQBxx70dIXzyNf0DHewwnoXqIBTmi1D8K6A=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C8-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAYNY2pQHmnAKELIKIyXTPYDpXrT8SpgQ
+HDEmNZOcAAxPRC0Acce9HSF88jX9Ax3sMJ6F6iAU5otQ/Cug
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C8:KAS-ECC-CDH_B-233_C8-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C8-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAWa+JCazv45tBaJNfR8sDjKeQSDPyOb/
+UkhvCVWGAHNx4ogUX8JaWpy18qOGA08vMoxuqiTIsJboqx8M
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C8
+PeerKey=KAS-ECC-CDH_B-233_C8-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01b7ef3148be331115321b1c2a68832fdfb991b26224a60dddce3e060d27
+
+PrivateKey=KAS-ECC-CDH_B-233_C9
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4AdZxV2lXh/bW6f4uJOrqu
+WSW5sIGEo9VUlXrPPsChQAM+AAQAKvJfgQ4YqBtp2iVKZbimx6uA3cJ8hWIuI0it
+0TIBKLdT5LIajDrPhaq5Kpqmp7M/LLadcCS6+OiwcUI=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C9-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEACryX4EOGKgbadolSmW4psergN3CfIVi
+LiNIrdEyASi3U+SyGow6z4WquSqapqezPyy2nXAkuvjosHFC
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C9:KAS-ECC-CDH_B-233_C9-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C9-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAYHzuwsJdxMnfF87Rs7wKqnL4pq5XHbp
+tgofelHlAC4vtnLXK/ePfP7cQNNybGtPtYVBfHR2tlXjK707
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C9
+PeerKey=KAS-ECC-CDH_B-233_C9-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0041249865c913b287a253150b207e2682efd96057cb0709e9bbb48c0fc9
+
+PrivateKey=KAS-ECC-CDH_B-233_C10
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4A7mOdifDkM8B14u9XzCQ1
+gelbJh+Kk7jvb16/gBWhQAM+AAQABmOPa82FBDOV0B12f/d+nWd/N+9ADy4W/uht
+uvIAbBJJYmbeux2DQ7loTifF9xKcFwJKjmcEZypfPWM=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C10-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAAZjj2vNhQQzldAddn/3fp1nfzfvQA8u
+Fv7obbryAGwSSWJm3rsdg0O5aE4nxfcSnBcCSo5nBGcqXz1j
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C10:KAS-ECC-CDH_B-233_C10-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C10-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAGWqQRXlnmBFqvme4b7KH6uSO73JGSBu
+CTFiC6mWASjQC3dYmaWKWbyyq3nWCeLc2pjmUju2cWhVT4Tm
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C10
+PeerKey=KAS-ECC-CDH_B-233_C10-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01cf480fbc2be2c2c4448c88890972c7ff9cbe08a75e26c3809596b8b5c0
+
+PrivateKey=KAS-ECC-CDH_B-233_C11
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4AkpsJtnspqk/xXWd5oXMw
+ZQSfrrLCJwEsSfJ37VGhQAM+AAQAygQD2V2F8MsK5NKurhjhh7ecIB7WjBStJO0A
+OSIAz2sKUCspDQru6CBmGsz26ll2h8Rcf5Onc9JfYqY=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C11-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAMoEA9ldhfDLCuTSrq4Y4Ye3nCAe1owU
+rSTtADkiAM9rClArKQ0K7uggZhrM9upZdofEXH+Tp3PSX2Km
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C11:KAS-ECC-CDH_B-233_C11-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C11-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEATV25wDzY2f7dBhC8jGInzaCKqspM8JF
+7tV7naytAXkQ6QcaPkLn8hs2Pw5ofSiYEKTsKcNuzhSFTh3R
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C11
+PeerKey=KAS-ECC-CDH_B-233_C11-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01ce8abf3c8ccfa30e5f35ddb75f5e106aab1e67086156a1ededa1717b77
+
+PrivateKey=KAS-ECC-CDH_B-233_C12
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4A4nrwTv4thv/tbs33GPwL
+jgSe0iLnYAw84xzk6XqhQAM+AAQBRewNtf5iuSVHeSASJoryG6koqP2Y0KHe49j7
+JVkBCgMc6laxg+kwkwCKtwXMkJnltlxctEBzJLlv7pA=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C12-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAUXsDbX+YrklR3kgEiaK8hupKKj9mNCh
+3uPY+yVZAQoDHOpWsYPpMJMAircFzJCZ5bZcXLRAcyS5b+6Q
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C12:KAS-ECC-CDH_B-233_C12-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C12-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAOn7pxpkq7F3+kNsuXOcn2jAFVrciXE5
+wb89+ZpTAZrxExvkfeCIcINdoUlG/tcwNBefgJKY0BSbFt02
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C12
+PeerKey=KAS-ECC-CDH_B-233_C12-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0025df759a20312361b9f6767efe8e8d69979e34639469a91fed9fce04f8
+
+PrivateKey=KAS-ECC-CDH_B-233_C13
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4AGnJte5koaR6wFJyo8O3u
+R70Mc0ETq2ADJB7hk96hQAM+AAQAdCa/qIeP5ZsWqbjGORCh4vvGsHuplboEwxQC
+ES4AlE6WFmdssvx/oPnhuHo1h0gkPoD7YiZChGRaak0=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C13-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAHQmv6iHj+WbFqm4xjkQoeL7xrB7qZW6
+BMMUAhEuAJROlhZnbLL8f6D54bh6NYdIJD6A+2ImQoRkWmpN
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C13:KAS-ECC-CDH_B-233_C13-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C13-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAR+ZSkFswZkLjGF2ej1o++pzr3tItlXk
+dHD8zHkfAV3piINdaBLwvdcAeolZceGgb00izhMDyfVe/mR8
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C13
+PeerKey=KAS-ECC-CDH_B-233_C13-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00437ab4a53756ff678a1f580c0fd1f33b23021d62060808453b4aabe627
+
+PrivateKey=KAS-ECC-CDH_B-233_C14
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4A9FnHZyFpwSWeThmTM5ZM
+H/+851rTDd4SZPXLhtGhQAM+AAQBtEqBiV0hBfoWpuCVJsCa5/bL284hCHD04z24
+tvQAseByxiomQpdfBsaHxkZ9opXvk/BNHFSUpiRoPIA=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C14-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAbRKgYldIQX6FqbglSbAmuf2y9vOIQhw
+9OM9uLb0ALHgcsYqJkKXXwbGh8ZGfaKV75PwTRxUlKYkaDyA
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C14:KAS-ECC-CDH_B-233_C14-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C14-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAQUTYgruDQR4hyQ46Zsj6kkAFT+TZusX
+1hvfNaoZARNt+8hAG72g1nXKBqDP9r3UZ8CsmpeCkzAHKOfc
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C14
+PeerKey=KAS-ECC-CDH_B-233_C14-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01ebd55823c57d1fc7b36cf1ed2051ead64db6d114014d3407186f50d957
+
+PrivateKey=KAS-ECC-CDH_B-233_C15
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4AZWpHuHcrCLHZB8gj+2xF
+xl+fGPi0Pzph5sdGEeGhQAM+AAQBU8262S640g2gwceq1G0IM2y8l26Nb4OUfk9N
+ZhYByXe5el4SBcpmVF3zpSa24yXgh8DgcIOf5+we54g=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C15-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAVPNutkuuNINoMHHqtRtCDNsvJdujW+D
+lH5PTWYWAcl3uXpeEgXKZlRd86UmtuMl4IfA4HCDn+fsHueI
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C15:KAS-ECC-CDH_B-233_C15-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C15-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEADXf/skRftcWdieiSj693Umj9F2RrRhA
+HT1Emy/vAZMXVM5c9Vehwazt/l6aewuR+BZD2oWGpoZYhfBC
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C15
+PeerKey=KAS-ECC-CDH_B-233_C15-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=006d07f6e08b11a060ccec43b07ca7d9eaf6c3ece06f4785519284bf6f0a
+
+PrivateKey=KAS-ECC-CDH_B-233_C16
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4A8U9exO+vhuQ/7OZfF/+R
+sajWG+NBbu64hPTi0U6hQAM+AAQB2fjAHpwg9hUOx2IKdeOelvkke+zhN7A2W+xU
+JUwAYAg3O54IeAUpTa2uAIlGZ/259rik0WKV5bnSGm0=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C16-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAdn4wB6cIPYVDsdiCnXjnpb5JHvs4Tew
+NlvsVCVMAGAINzueCHgFKU2trgCJRmf9ufa4pNFileW50hpt
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C16:KAS-ECC-CDH_B-233_C16-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C16-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAEhFzmYbHq40wWmfG/443IfvKLiwp3cf
+82bcIdhjAQlrGVSwbqpwc+2TmAGqKXTaHWDWbpfDHfD2h2+v
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C16
+PeerKey=KAS-ECC-CDH_B-233_C16-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00aea594f092b4052f7564b2e5651bcf43ef7e336a064d6bfb1a89cf5e51
+
+PrivateKey=KAS-ECC-CDH_B-233_C17
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4AH6XL2IoUb2zPX3nfvHCG
+j9m7TIEVl2yWJw/3vF6hQAM+AAQBTSdvQoHLUKJrKeyB/O2W0OkJmUsihUM4VSVt
+WNsArEeSr2Kg3E/U7sOE+/P7uCyDR0hrwesTOLx/OrA=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C17-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAU0nb0KBy1CiaynsgfztltDpCZlLIoVD
+OFUlbVjbAKxHkq9ioNxP1O7DhPvz+7gsg0dIa8HrEzi8fzqw
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C17:KAS-ECC-CDH_B-233_C17-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C17-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAUc0GSFlyW+9t5TKseLR7xEeGiCnIF2w
+GqgDoDKiAezfw5QLfQYYzWMVRBdR9mPfdNNWSS75NLS6KyrR
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C17
+PeerKey=KAS-ECC-CDH_B-233_C17-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0099d6d076e14ccfee15ed7e7ef384bfee12deba8c9ae8f6cca3486a1494
+
+PrivateKey=KAS-ECC-CDH_B-233_C18
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4A9YaE6hSmj++4zCayZ6E0
+GcYtcmG60U5TaKmBmhihQAM+AAQAmmWoU5QHD+DloQgWTrKJzD137QhI/VfzhOYs
+qiAA5/VvLCe+T66yDidMJgTG3C2IWXAwrSFk+tA8uQQ=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C18-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAJplqFOUBw/g5aEIFk6yicw9d+0ISP1X
+84TmLKogAOf1bywnvk+usg4nTCYExtwtiFlwMK0hZPrQPLkE
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C18:KAS-ECC-CDH_B-233_C18-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C18-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAH4fMlHioKpt4fjfhrhe2dEdpetxNq3U
+XqfSXIZ8ANligeB1benapV0u9lc7sv4t0Jtx2RGRpaBDuuDz
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C18
+PeerKey=KAS-ECC-CDH_B-233_C18-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01b1e977c43afd203132c085b95db0e2046a4b6ac2c046ee9ad665050578
+
+PrivateKey=KAS-ECC-CDH_B-233_C19
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4A7vskeJsytDbOOWIsEUw5
+ps0eWOyUQ8iHDl7i+AGhQAM+AAQBP7HKntcJuzhvugLMeGL9bGThCHvl9h6nM5Rs
+FjQBy0CX5EpzBwDev+gUP7+byjo9bEaYWifNUEOyylo=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C19-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAT+xyp7XCbs4b7oCzHhi/Wxk4Qh75fYe
+pzOUbBY0ActAl+RKcwcA3r/oFD+/m8o6PWxGmFonzVBDsspa
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C19:KAS-ECC-CDH_B-233_C19-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C19-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAL4e51DycSsqyyDEXpc1fFDbO+iVsz+D
+DHG8n089AV/sgQzbF5/NHOjk3BokmeQN6KSkmpQg8A5WEQz0
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C19
+PeerKey=KAS-ECC-CDH_B-233_C19-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=000e4cb704355cba1b40cee3da102cb048519a91b4c789b3757cfdd933aa
+
+PrivateKey=KAS-ECC-CDH_B-233_C20
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4AF1JNUGYWvSBcs5eLx146
+NHYjPkm23CBvlxFpdVehQAM+AAQBUKFzJ4Ree8edjs4Skw3Ct3ZUyqEIK1ewz44F
+sawAFRx2gi2N9e/9jGlDOVtqjVOEMdQuhG6f+N5+ruY=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C20-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAVChcyeEXnvHnY7OEpMNwrd2VMqhCCtX
+sM+OBbGsABUcdoItjfXv/YxpQzlbao1ThDHULoRun/jefq7m
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C20:KAS-ECC-CDH_B-233_C20-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C20-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAVwuLOC8cizqTLx8M1LL4NKLWwAuRNk3
+BYldeRr8AU9haYOtCOdFMVxHZ7CuIab9imKcJYznrvpMF6jg
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C20
+PeerKey=KAS-ECC-CDH_B-233_C20-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00d8c13bc5e819c6101daef3f6fb5be6bccecf233c4b7fc65054e8e8d3bc
+
+PrivateKey=KAS-ECC-CDH_B-233_C21
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4AprBdMKcD8ReagPioZLNM
+oVxFPoKAihCV5DXpusuhQAM+AAQAk7MlIlH9nW2cgdeM8fE0zdVU1jwqHi8a+hTi
+1OQAiusKirP/Xk+wI/fhkX8BCIkK8Rq8p9oCf62sw7Q=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C21-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAJOzJSJR/Z1tnIHXjPHxNM3VVNY8Kh4v
+GvoU4tTkAIrrCoqz/15PsCP34ZF/AQiJCvEavKfaAn+trMO0
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C21:KAS-ECC-CDH_B-233_C21-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C21-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEALr6m7qScl7vDEoK/L1CY+VfUVVkW1xY
+qWvD6ellANGz0ONdYX4J4HjFcaX0HqIt/REtZ6lNjfu6Zump
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C21
+PeerKey=KAS-ECC-CDH_B-233_C21-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0129af50fa085133771753f297a313bba0d2f5882e7634b7ef5adce760ff
+
+PrivateKey=KAS-ECC-CDH_B-233_C22
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4AFo0JgJ659qzzETTrXrGv
+lm4hK5tr5oz9IkAUJemhQAM+AAQBcQoF8CtVBXKVFrGsc9RfPPCPHFE00vc9ElcC
+Q8kBhhGxDatQdYPyvhD9Qpb1N9SvCVdvlpefHq3+KRw=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C22-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAXEKBfArVQVylRaxrHPUXzzwjxxRNNL3
+PRJXAkPJAYYRsQ2rUHWD8r4Q/UKW9TfUrwlXb5aXnx6t/ikc
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C22:KAS-ECC-CDH_B-233_C22-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C22-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAHmL9at2G7as/tDO8c1xs+9G8lBDI8r8
+QIFZLdb2AWJ3rrPhysASGwfZN4o6DLxlZ7SEI5KeNtyFXp0a
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C22
+PeerKey=KAS-ECC-CDH_B-233_C22-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0077c4ea1095fadc4cb4190a3fd530c7d15325e5d79b8e8a2b708e2344cf
+
+PrivateKey=KAS-ECC-CDH_B-233_C23
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4AOCT3HsMlW70DZC14LMZ5
+Th5Uqo+l8qMx7hP3hFChQAM+AAQBpONajDJxfyqqPu7xd4SOWA4P7WyAloaPasxO
+HAkBNydgToHTqdk9JD/nni24pEIzSo6hhSufg8rhvD4=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C23-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAaTjWowycX8qqj7u8XeEjlgOD+1sgJaG
+j2rMThwJATcnYE6B06nZPSQ/554tuKRCM0qOoYUrn4PK4bw+
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C23:KAS-ECC-CDH_B-233_C23-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C23-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAV9yPamjjC2lBiwX0Lg3Ui98aceT95wX
++2ll1EoDATKxd2CsLiu5+BPtd5DFzTqg04q2Ti4nLd9KTCwa
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C23
+PeerKey=KAS-ECC-CDH_B-233_C23-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00d9eb3c79cf442595dad03ed4a38daf358b97d5dfc01cb61ff200a47958
+
+PrivateKey=KAS-ECC-CDH_B-233_C24
+-----BEGIN PRIVATE KEY-----
+MH4CAQAwEAYHKoZIzj0CAQYFK4EEABsEZzBlAgEBBB4AkK3Asgfa44FiLPkuBLzn
+R5GA7G4XcWYvXDF5vZmhQAM+AAQBBq2/m7/bMINZin9tsukdLnwXT3BfwhZjG30F
+7fIBkNhMpvRpX9vKQNJqdJmKBcPXYdvwiYG2RcDqI54=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-233_C24-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAQatv5u/2zCDWYp/bbLpHS58F09wX8IW
+Yxt9Be3yAZDYTKb0aV/bykDSanSZigXD12Hb8ImBtkXA6iOe
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-233_C24:KAS-ECC-CDH_B-233_C24-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-233_C24-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAFG3C7i44jQbhoIdVLl0tpa9pEOst+pl
+ll0n0qxwAMd4Tu+InEccnSaz4N4krStL+Lu6b+GPUaQSGIBY
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-233_C24
+PeerKey=KAS-ECC-CDH_B-233_C24-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0124c19cffc0b9549bfa378a548e8ce11ee7fca28d2d898de49ae1f2ff61
+
+PrivateKey=KAS-ECC-CDH_B-283_C0
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkAvQ0VYQiRqLMjsBo6dbG
+5BYPa6Tjtdgx2Twdqo/T1almDHuxoUwDSgAEBWHklVYwGBaYBNTI4kNbSv2F2jdt
+kUtp05JG+OBhE6oy5kLSB4Gn9Z3n9C9fnWw0gfM/xd6zV8bs9MdY43DSQ13j2O5z
+dwP0
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C0-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBWHklVYwGBaYBNTI4kNbSv2F2jdtkUtp
+05JG+OBhE6oy5kLSB4Gn9Z3n9C9fnWw0gfM/xd6zV8bs9MdY43DSQ13j2O5zdwP0
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C0:KAS-ECC-CDH_B-283_C0-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C0-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAlBOGheBnTnwEKSmmgVoKZQCtY+USjhM
+fRpiyck+pNH/MA4TAmUTL3tMZLdLkXntDy4hH0Mo1iVAUCL1VBcNqTK4D998GqsS
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C0
+PeerKey=KAS-ECC-CDH_B-283_C0-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=065194e26090e74047ee75f13f9769d20e1b52189650011e283daa090732cc53755dc366
+
+PrivateKey=KAS-ECC-CDH_B-283_C1
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkArlB5pLgqYTF/6iDyfn4
+JWpDqx/RrZeCpC5CmpTpEOSCuRwjoUwDSgAEB7kK8Ra3N9kAjkwY9q1TnSnuF5AA
+ih2vLoVvpnLspKr8lspjBqr3jQ8gZXt3uXzKMOq3m2eaOqqQsQkH+XnN6YjOcYSR
+AQwq
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C1-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEB7kK8Ra3N9kAjkwY9q1TnSnuF5AAih2v
+LoVvpnLspKr8lspjBqr3jQ8gZXt3uXzKMOq3m2eaOqqQsQkH+XnN6YjOcYSRAQwq
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C1:KAS-ECC-CDH_B-283_C1-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C1-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAWI6lnXoxANm4mEx5Hsa8GyLM6z16S9U
+ZEgW3LhEOCyUTMIfAp0oD01MDF/XD34kCVlQEovqPK48pG9qX3C3Of4amQJogE44
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C1
+PeerKey=KAS-ECC-CDH_B-283_C1-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=075c535cc70de19c92d7314afa2f33200903431f6990ad40ac31dadaf4e492a799b75b05
+
+PrivateKey=KAS-ECC-CDH_B-283_C2
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkAofeFyulDzJ7/H1ajAFW
+0lofC59x04mFLy47WHQGy3TvO9BBoUwDSgAEAKA0kHZfyQwjVTwOK3nfojK1GnPy
+FVTl6xjaTJlNkl+O0rvvAwT/1BxbCrKnC4IYjo8VeNarfTzjzjT6RdzDIgfxY+kc
+XWgU
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C2-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAKA0kHZfyQwjVTwOK3nfojK1GnPyFVTl
+6xjaTJlNkl+O0rvvAwT/1BxbCrKnC4IYjo8VeNarfTzjzjT6RdzDIgfxY+kcXWgU
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C2:KAS-ECC-CDH_B-283_C2-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C2-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEB7g2lyhDL3Uo0+7IpniOac0uuIFixHUS
+dC7g8CfMtBV6KKIjBZhut/EJqh+FVuuivciOSRO2Xv+5ROrmOWNsun4B3DcYvLNh
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C2
+PeerKey=KAS-ECC-CDH_B-283_C2-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=02956f63d48a49a330e2068955cc2886dbfd5bf72a81b10ed83f2d758dd315eca172927d
+
+PrivateKey=KAS-ECC-CDH_B-283_C3
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkAVO7uKPOShuZlg9WGGq1
+Agf1iPMMlL7vKECEI7pE/IdfrzjYoUwDSgAEBPLCRUiZYjrxO2WCCroUVzhAf3cY
+arr6UtJLNb/fWAj/6uB2ARH0SEYK0kMKrseI3ikVSEdaHlg22sUg2OSTyfYBJ15w
+6inS
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C3-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBPLCRUiZYjrxO2WCCroUVzhAf3cYarr6
+UtJLNb/fWAj/6uB2ARH0SEYK0kMKrseI3ikVSEdaHlg22sUg2OSTyfYBJ15w6inS
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C3:KAS-ECC-CDH_B-283_C3-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C3-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBzsJKipNfJoXu4jnW0Cp5OQ7mYE89haC
+1JuSkFwt1gZ5Cu05BWatRSotjvCjJ86OKFYUb+yvCeRDHMwEJWoHf2BwHORHa22s
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C3
+PeerKey=KAS-ECC-CDH_B-283_C3-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=068a3f6938c44b797524377508585842c6a7f1af5ffe9131dd3ff786ae56e1739345d3d7
+
+PrivateKey=KAS-ECC-CDH_B-283_C4
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkAyrA3LmqOXJAH59YhF7X
+Zdo2t9b3c1V3m/skOYJ/81VqdXgcoUwDSgAEBxWchrnGrbIWDCjYYRj4RWSpDBSe
+3igylGNnekyHcp+JfC+YAIp4Fn4WkGJZkrDvwuDvb21h6Bg3yOzf2rUdFTQON+fY
+0FEg
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C4-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBxWchrnGrbIWDCjYYRj4RWSpDBSe3igy
+lGNnekyHcp+JfC+YAIp4Fn4WkGJZkrDvwuDvb21h6Bg3yOzf2rUdFTQON+fY0FEg
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C4:KAS-ECC-CDH_B-283_C4-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C4-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBFXoe8Iwzn/FhjEt0gfFKeR+PHTMDOXQ
+c/v0sclX+Mu9kRO8Ah/79i+yUx2znvLQvc4NnBQckunNymJ8qjm1k/xKAhDo7kgf
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C4
+PeerKey=KAS-ECC-CDH_B-283_C4-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=019b48d5eeaeb05b58801ae8f345ad9bacb91daac885e506949b849ebc67bcbfa308aab7
+
+PrivateKey=KAS-ECC-CDH_B-283_C5
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkAmib8hR10y/nGnNV79mn
+eHyqlUXr64U+UYTOQhUkKQUfQMvEoUwDSgAEANflvPrFePzXKBgGRRdtfgiLaNMw
+ognxi5aGYv7RY0KzkhogBvdQs7XpjgCZtpWWWqHRZHXRB0+SMRJ+1wPiaW1LVq/e
+u86q
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C5-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEANflvPrFePzXKBgGRRdtfgiLaNMwognx
+i5aGYv7RY0KzkhogBvdQs7XpjgCZtpWWWqHRZHXRB0+SMRJ+1wPiaW1LVq/eu86q
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C5:KAS-ECC-CDH_B-283_C5-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C5-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBlLMyJIfQ5r0KiMBI2tYQ6QvH9mez+G0
+E0w94BTNx2A1NHzAAzQdgHSfGl7J96xiUjhP79OLbyu83Bj+vobBYPXnjAA/Bm4G
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C5
+PeerKey=KAS-ECC-CDH_B-283_C5-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=061b3bef1766460f6296ed47d39ebf5a710d202d2b7e7cac0f0d3b235405eece99aa30d7
+
+PrivateKey=KAS-ECC-CDH_B-283_C6
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkAQUgQpiN3fRw0KLjb/9b
+k+xp9NJAqON8BkzE1ZlGe6J688nxoUwDSgAEAMfJ/3fgGLiAG934hnAlVrEmptmh
+gxofYPNYcuUkwTTVU+SkADXXZ7WLSZ2ftUViw4MEEa9Z5wiKSjMz1dx/5bD38eHF
+46wr
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C6-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAMfJ/3fgGLiAG934hnAlVrEmptmhgxof
+YPNYcuUkwTTVU+SkADXXZ7WLSZ2ftUViw4MEEa9Z5wiKSjMz1dx/5bD38eHF46wr
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C6:KAS-ECC-CDH_B-283_C6-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C6-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBiMxuTOvtDhPo6TSJFUa6BILxV/H6nPy
+vnSeIXr8ThunnnYPAr9RxE+DYcMFTK1kD5JEb+OCCwY89LsiyhfAonT9RvUFBPvs
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C6
+PeerKey=KAS-ECC-CDH_B-283_C6-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=055d579458860a3dd92ac6570847632f04460755c22a4c432cf4dde9611d2ce1608ca185
+
+PrivateKey=KAS-ECC-CDH_B-283_C7
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkA7ua1fpVLTjRp3y1U8Yx
+4tCUDbawTwvXAR6nNb5Q0EXampwdoUwDSgAEBocHGAXCWn0LFzn3z2gbLylcT52J
+NzUdIdHUP2NOmlcQW/EnBjO6IYcuN5xQ5Eg3KxwOZehdB+3XEtfcBvppopn2A33s
+5mDc
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C7-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBocHGAXCWn0LFzn3z2gbLylcT52JNzUd
+IdHUP2NOmlcQW/EnBjO6IYcuN5xQ5Eg3KxwOZehdB+3XEtfcBvppopn2A33s5mDc
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C7:KAS-ECC-CDH_B-283_C7-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C7-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAh6C1q9tMhGYF2/4mGwrx4agCBMmzIXw
+JrcbMqwGwLrmtMuiAelzP6nSmWEmlCDbJO3A1a4oXXjJrhSzixAZ8TZS8ZAnfcR/
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C7
+PeerKey=KAS-ECC-CDH_B-283_C7-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=054fa7c6c84fb89e5892d9194540860ea31ae2b6e37a86971344230ea512a3f6c0569216
+
+PrivateKey=KAS-ECC-CDH_B-283_C8
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkATOqRF3IDX1aCX0doR1R
+DmVxp4O0+yNUAnF9aLqP0UVOazGfoUwDSgAEAtJuRqbtn88dL4nGPYDgFy3ttPWu
+3f8JKDaqyFmQlIhVV+rZB9ZxOXRwHBYK7eyPlOZEa/fTx5DL/4cCzHhAp4GOW2Ji
+cfcj
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C8-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAtJuRqbtn88dL4nGPYDgFy3ttPWu3f8J
+KDaqyFmQlIhVV+rZB9ZxOXRwHBYK7eyPlOZEa/fTx5DL/4cCzHhAp4GOW2Jicfcj
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C8:KAS-ECC-CDH_B-283_C8-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C8-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBF1i0B217xc9DP8xWpKpoQXRrXhP+bCO
+ch81gOBiZf9TihlLBrdkwf92mFSWuURRt1bE8w/fxjjYmQMSu+zL+9c+jFqFWtt1
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C8
+PeerKey=KAS-ECC-CDH_B-283_C8-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0353ff03afda3772984aadc4000e1275656607154b06c3a59c664945fa6fde1c255ffa86
+
+PrivateKey=KAS-ECC-CDH_B-283_C9
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkAEZh8QeptXAEXduwc4q2
+mxwXqazBHaXax/2GSz38NqJSgtaqoUwDSgAEBhurvv7lIRxJF1Bs5fn549HlKyUG
+84ygluG2U8qftp9GEFcCABS/0u8ii1oD4mIwweiXrQgacEATzuVRZspG3jlfxS9d
+ISA6
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C9-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBhurvv7lIRxJF1Bs5fn549HlKyUG84yg
+luG2U8qftp9GEFcCABS/0u8ii1oD4mIwweiXrQgacEATzuVRZspG3jlfxS9dISA6
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C9:KAS-ECC-CDH_B-283_C9-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C9-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBKVhtRhK3tnHvZho8wQ7Xi3lGQj5wD1e
+awijCIvMUO4yA+JjBYFbV5/13sb6yXe6cIizM79MAjHaAhh07gDXH+JdP01QpXrD
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C9
+PeerKey=KAS-ECC-CDH_B-283_C9-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=050795ba093d2e02398c358951f20c9e3b4f60628a96a4d0c46cb8fc0005e5331b38a09a
+
+PrivateKey=KAS-ECC-CDH_B-283_C10
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkADa9IfhKudtvS93JRjXx
+n4CssoE9pTmeB3eDLC/r3HGGKr4zoUwDSgAEBo7jJFdU1R33eABGrzmstAfEmYxi
+C/+U+zdPr0tJgAbuoM+IA2akSfCez7rsxJ2IAwf1ckbBHFvqAK9CcYZ3qN7xXlkm
+2hgi
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C10-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBo7jJFdU1R33eABGrzmstAfEmYxiC/+U
++zdPr0tJgAbuoM+IA2akSfCez7rsxJ2IAwf1ckbBHFvqAK9CcYZ3qN7xXlkm2hgi
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C10:KAS-ECC-CDH_B-283_C10-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C10-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAdfXU2zYOD4cCxuKrgK6qf0sTmiyGAjB
+dU0LFRNhFX+BJFkwBzA02kFnl9qVo4Nu7yex+icfWaQ0hI6YC60v3VP/0eNm/2kX
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C10
+PeerKey=KAS-ECC-CDH_B-283_C10-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=02ab08d63cdb4be2502558e67eab27570f2d029e7f981d153b973080585d01e42f7187d9
+
+PrivateKey=KAS-ECC-CDH_B-283_C11
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkAWWXrm5J550GkDSXKmNS
+Wjw+LSwlO54d0/N4FoEs9UrWXFRqoUwDSgAEBQ6gc1ItvlFAj4Xwpghr1Mjv5XL4
+Cq2t1+cOu0tyi/2/1PG8B9pSABfHrSkWonGbhViVj3fHEtNSz/nArZn7yYoOBl63
+rH/r
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C11-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBQ6gc1ItvlFAj4Xwpghr1Mjv5XL4Cq2t
+1+cOu0tyi/2/1PG8B9pSABfHrSkWonGbhViVj3fHEtNSz/nArZn7yYoOBl63rH/r
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C11:KAS-ECC-CDH_B-283_C11-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C11-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAgQvWj/l49MzW7e8253L2HFu0Y1/wv9C
+l7wf63zKMQAi4iE9B767bA4EbVr9v6h+qYyn9V6c27BV0MxUm0RY1pmL27NFF3OI
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C11
+PeerKey=KAS-ECC-CDH_B-283_C11-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0599757e3ffeb484b32d3b47828b6823d46786d35477082ceacf3a5a11552394fe58f53b
+
+PrivateKey=KAS-ECC-CDH_B-283_C12
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkAV6oVnx7grSD+jZejmgc
+CmNfVjocgUcLTf5E8ZT6ket4QhgeoUwDSgAEB6/isitU/olcJCwgwFSYn6gE5ZGX
+DdqKfOEJ1r0xttqo8vx0BgczvVpOqbXqcJCs/ukYEGt/JScvP3yzbto4us0hN1YQ
+zeko
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C12-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEB6/isitU/olcJCwgwFSYn6gE5ZGXDdqK
+fOEJ1r0xttqo8vx0BgczvVpOqbXqcJCs/ukYEGt/JScvP3yzbto4us0hN1YQzeko
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C12:KAS-ECC-CDH_B-283_C12-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C12-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBnr994j49IMcPH12BNB6W9xZ2kLZMnMf
+r16vB1MoCWaraTeQABs50dhytl4xJRwfWE5P4+111TrZDoNv6QyNuU/nfO8LynIE
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C12
+PeerKey=KAS-ECC-CDH_B-283_C12-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=005e331af55e96153d8a7b906a4a19016a26381977b49f80b9d70db099053c6a3b8e80d5
+
+PrivateKey=KAS-ECC-CDH_B-283_C13
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkACkR2TjZUIrsy5h34SfR
+sUYaza7QNfIOD3RMd08ccnA7XEtJoUwDSgAEA4a/3+YDc74RS0F8Tc60QyI/3mfA
+/vKe0PhntaFfXqDMtNzKAvrDjshJTPdXYjPsgoLeOEtn8MqASAhCAQOdGUyL2k9u
+Cv8+
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C13-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEA4a/3+YDc74RS0F8Tc60QyI/3mfA/vKe
+0PhntaFfXqDMtNzKAvrDjshJTPdXYjPsgoLeOEtn8MqASAhCAQOdGUyL2k9uCv8+
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C13:KAS-ECC-CDH_B-283_C13-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C13-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAYhmpPovfCU05WOikd6HGoswUqZ09dvC
+O53qDozv2garwyyPBY3Ezxv5hdG1ZpcIR8umuKT0DH5ipYCLByC7uM3ztFMeOAvn
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C13
+PeerKey=KAS-ECC-CDH_B-283_C13-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=07e132ea71a16c7cc261b9d6ff6fc52cc490da616b07d92f9e591fc1e630d3442572338f
+
+PrivateKey=KAS-ECC-CDH_B-283_C14
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkAWYvVUhWwCCKMbGVFI+C
+jgtckqTqTAMySL6/lXtYa0Ce1ZhQoUwDSgAEBwVSZMPeOmItJv561wC96gRdSzzn
+GPTmrkTPN2w6lqJlCzIhAPRcwROGaK3IFQ03wHK7QkVmDBh4VoPHsXqh+4WRumza
+I2V6
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C14-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBwVSZMPeOmItJv561wC96gRdSzznGPTm
+rkTPN2w6lqJlCzIhAPRcwROGaK3IFQ03wHK7QkVmDBh4VoPHsXqh+4WRumzaI2V6
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C14:KAS-ECC-CDH_B-283_C14-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C14-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAAVx177wVgiRcvE0I6WFq5efS49351LA
+QsDGUmO0dpgeXzFXBEvKaT6dOxp/pq1C2382saZXEtCe87txXiZAoYL0NmIGhsCk
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C14
+PeerKey=KAS-ECC-CDH_B-283_C14-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=010f26817098ce1bbd6743784d6fb65e60699c14933a2c8d854027aa58b58db9e66a53a7
+
+PrivateKey=KAS-ECC-CDH_B-283_C15
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkASwBAKmWPuF9es9N344C
+2K5187mRFPU2avtKAK3po8DuOaiHoUwDSgAEB3lPoZxrENOZ4PUtNvSDx4UYSOYr
+rPlbWvUeygmtRF7hnvNNBhQNLuFs0KbLGWBQmnzMZkvpdkSpWuFvShc9moZwFfCD
+fwVg
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C15-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEB3lPoZxrENOZ4PUtNvSDx4UYSOYrrPlb
+WvUeygmtRF7hnvNNBhQNLuFs0KbLGWBQmnzMZkvpdkSpWuFvShc9moZwFfCDfwVg
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C15:KAS-ECC-CDH_B-283_C15-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C15-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAW60u7PDhuD0L7A3vuR4xMDb++Vcxo4z
+/bApueXnJK/0/Yv2AlFDL4RWikSXHoarcV04eeYU4Qclc174+2ZS0HnHkI8RvR8B
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C15
+PeerKey=KAS-ECC-CDH_B-283_C15-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00bdd8ccd1b40c5bc2efc1c105999350fefaf784710914ff639582f1277678699491140c
+
+PrivateKey=KAS-ECC-CDH_B-283_C16
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkA0XCdrBezp58hoEfjIr0
+iyLbQdQGYnUAlhG4gNfSzvMpxQ6CoUwDSgAEAHr//PoxwRCqs7s5RTCkHEFq9Wa/
+uo8Vn5hEN+eZ3dqvjN/SBl+zxoRGp0BourfjargOmEcH45pKFD9aRtZGNC+fEvJq
+Mikb
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C16-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAHr//PoxwRCqs7s5RTCkHEFq9Wa/uo8V
+n5hEN+eZ3dqvjN/SBl+zxoRGp0BourfjargOmEcH45pKFD9aRtZGNC+fEvJqMikb
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C16:KAS-ECC-CDH_B-283_C16-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C16-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAkF8ZWlNhQx8hm9+EWOaX4cYypqrs5L6
+hhDi1dfdozdaYH+bBRM5ONyZFE0W6nUlw/5OMuMg7QdbllJ+E7KpnJ8nrenvnty2
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C16
+PeerKey=KAS-ECC-CDH_B-283_C16-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=014a83e747c90aec6101c0a752d92eef7475b00051ecad3d7c2e50cf4eba1ef3c80b8c94
+
+PrivateKey=KAS-ECC-CDH_B-283_C17
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkA6/Vr/o0a1JZaX2SF5Uq
+/NA93+wEYxvZlcEKwlg7DKjSRh9doUwDSgAEBrTCw2FbJmVD3hiciWz/d7VVfHgs
+IVlhrHMkGF/JqBCY8uvqBH/vGWBzmuCu45o//bguiQ1CNvwi2tOV1JC8Ol7qWOjN
+A+27
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C17-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBrTCw2FbJmVD3hiciWz/d7VVfHgsIVlh
+rHMkGF/JqBCY8uvqBH/vGWBzmuCu45o//bguiQ1CNvwi2tOV1JC8Ol7qWOjNA+27
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C17:KAS-ECC-CDH_B-283_C17-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C17-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAMXWFJ+HF0ujf0wcb2f2kFq7MZ9Sa3qh
+vh3SBd+TCrHJG7H4AMLiHhIGzUu1tiKr6Xyj8lLLxo0FSnf466utWT+xhjMGkov3
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C17
+PeerKey=KAS-ECC-CDH_B-283_C17-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00afd29e352779a39021536ea50c24fa264c599f8f8fe8f2ccf0615a6547a064d7c1a150
+
+PrivateKey=KAS-ECC-CDH_B-283_C18
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkA9V3H4SFw7i+YqVvOTZR
+PjtjGlYalCYT35UUD0cyFN9hfExOoUwDSgAEBZBsxFKbIgIo77sFRb9V7APIb4fi
+9OOjy/QE4HtzpbGl9SjNAWWI5IDEhWzS7pqvHjAoEvvAsz9SfCm3fOD0h46gidAl
+pEDA
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C18-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBZBsxFKbIgIo77sFRb9V7APIb4fi9OOj
+y/QE4HtzpbGl9SjNAWWI5IDEhWzS7pqvHjAoEvvAsz9SfCm3fOD0h46gidAlpEDA
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C18:KAS-ECC-CDH_B-283_C18-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C18-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAXMETlvmOZfXkl5DG78ATPDwuoWqKVo0
+Ho9YV6EgvonXdlPpBzfMBJaQ+XCCSnsMICJDloLJ2C9PI+SOXwf+qWJnyjvU1zCl
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C18
+PeerKey=KAS-ECC-CDH_B-283_C18-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0477990f17d65589289c28e54a56a83bc05ef4ea6863c5ebe840925c9fbef64ccd6e69a4
+
+PrivateKey=KAS-ECC-CDH_B-283_C19
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkAOLAxgL7EyOZ7p8xAINl
+6iLMEmD3n+OuYQibim+kVZyska7IoUwDSgAEBubjGMDEwLZh39PnIgkOzTL9yco9
+Fo2ccXTB1Arbss5nLZJSBAvcHbx7Fj98lVH0faqClKwtxP4NRyxOLyz+/JXVI/9Z
+4OiA
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C19-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBubjGMDEwLZh39PnIgkOzTL9yco9Fo2c
+cXTB1Arbss5nLZJSBAvcHbx7Fj98lVH0faqClKwtxP4NRyxOLyz+/JXVI/9Z4OiA
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C19:KAS-ECC-CDH_B-283_C19-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C19-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBoWH5p3t30tVrFHyoX3Yv9b5TnIQAyFC
+Fb+ySySCgedaPGWUBE7unHArxMHiEMfMIUUkWSVorA+f1n1uoCtNw++0LPuyJj2s
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C19
+PeerKey=KAS-ECC-CDH_B-283_C19-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=067a661346fe052ca27f3f03e75bbdfc8fe6d0d85c62c8f79525252aa241ae9de97d56c3
+
+PrivateKey=KAS-ECC-CDH_B-283_C20
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkAy1XP964Wk2iKXiWYxQU
+UY1LoH3E3XL3MXKIkNC0TTbyMJwOoUwDSgAEBvb/6gqHvZ7rU5xIo/y/OIFZhiJZ
+x/eEDmSAn77bAag4EsDGB8eVuPKEf8OfpWwt4ebLv0lFCHyy47kZ3HdrTMHIPksc
+ebi6
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C20-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBvb/6gqHvZ7rU5xIo/y/OIFZhiJZx/eE
+DmSAn77bAag4EsDGB8eVuPKEf8OfpWwt4ebLv0lFCHyy47kZ3HdrTMHIPkscebi6
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C20:KAS-ECC-CDH_B-283_C20-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C20-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEA/EibYAsV1+HGiE7gVD3gYu9YlZjtz5y
+CnN/BxiWCG2gsUzZB9HLDOGcmKY6r3sxTx9XIOMohwUzhKwPXrabbEcajj09Fudv
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C20
+PeerKey=KAS-ECC-CDH_B-283_C20-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=06476b0620eef165941a4507e6d798d6f150ab29333c0552281b629170d3291b2f9b3f41
+
+PrivateKey=KAS-ECC-CDH_B-283_C21
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkAKaqy13T6DWBT0UtggfR
+WlM2OPcOlPh8Bhlu/4g41I7tLiZ0oUwDSgAEAt0Ak6jUGYMfNLrGxgpXDFHQjmmb
+GByWS2Z9DRftcqSRGazZAakZdr5dXgN/IjUNZ6t7+rUbvE+mAm00fSj7RAe8zEDd
+EKAO
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C21-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAt0Ak6jUGYMfNLrGxgpXDFHQjmmbGByW
+S2Z9DRftcqSRGazZAakZdr5dXgN/IjUNZ6t7+rUbvE+mAm00fSj7RAe8zEDdEKAO
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C21:KAS-ECC-CDH_B-283_C21-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C21-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAqkR5+bS/HcNHqvH33AbsRkISmhZANIt
+UtWY/h0o/IkbMbSHAbjcZxPKRT6RsuxOTR+DSwjuvH6IhsOkWOcJJSQsSyK/CyBT
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C21
+PeerKey=KAS-ECC-CDH_B-283_C21-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0746719f2ad08f8a8d6d6fbf15723f336285ce75d3a2fcbd5a0c54c577517a22bc264161
+
+PrivateKey=KAS-ECC-CDH_B-283_C22
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkABEvsqtWRDdlZ2oeQbPL
+kesaZ5DpZO6QDPySlWNrpMb6h6rSoUwDSgAEA/UH2ZzCSY4sf1T7PJwDLzglSOLj
+Fo+hQBJaUmBIVo87s+WhBScN9378fWxV+SWbyCJzyba982duE8NgGxswIrli3hEp
+yzsU
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C22-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEA/UH2ZzCSY4sf1T7PJwDLzglSOLjFo+h
+QBJaUmBIVo87s+WhBScN9378fWxV+SWbyCJzyba982duE8NgGxswIrli3hEpyzsU
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C22:KAS-ECC-CDH_B-283_C22-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C22-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEB1QapR1zAuK7VXwn7BXX+cOuO3bsL4bL
+lejerX+ga1eDl/HxAX6iL2tUdPD18PTq1UFyBkBRU40+IypTDfyl8qDcZ3Rsi7Ha
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C22
+PeerKey=KAS-ECC-CDH_B-283_C22-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=03cda4b5f44b5d3dc248310f994419fbcbd665115d1876046652251ad4aeeb1dcf184288
+
+PrivateKey=KAS-ECC-CDH_B-283_C23
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkA+TxxPMOKo1v1Vn3/ogg
+6IaUneh8AdjrZMe0DxVIy2F6kmAzoUwDSgAEBeP8VuwWKIXBKR5K6cGcjrK7VZ63
+7NWBdUm1ouo6ZtlRiAqmBMAE8q5NtPdItDe8EV4G6iAXqHeYKY3WAEYW/P/cx+wt
+/W25
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C23-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBeP8VuwWKIXBKR5K6cGcjrK7VZ637NWB
+dUm1ouo6ZtlRiAqmBMAE8q5NtPdItDe8EV4G6iAXqHeYKY3WAEYW/P/cx+wt/W25
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C23:KAS-ECC-CDH_B-283_C23-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C23-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAh+xTlLNQkOlIPYwIpsd1pYcSb2W9D+p
+yuN63YTaeuctwweOAN1ji/kFP61qpP8tMwuKSiC/4wIPQLlpIwLQsKPC2HeFbsRq
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C23
+PeerKey=KAS-ECC-CDH_B-283_C23-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=015c892f95768a96ab5a4f9523b7fd466e101f63b88ad8f1fecb3027cd70aa00735dcc90
+
+PrivateKey=KAS-ECC-CDH_B-283_C24
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAARBHkwdwIBAQQkAK5+s9QDVPn4/tGPIWLe
+44FWyuBTW1U3DaNjjwFmiuz5cIvmoUwDSgAEBh6IWONo2ckX8SnZMt3EzKUh/0Gf
+HXQjDoqlsbPpzmf0HEtMArDX+9xjajvDS73SqJKRtWew+yrzI4OGi9QNS6TKyYgM
+JUC4
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-283_C24-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBh6IWONo2ckX8SnZMt3EzKUh/0GfHXQj
+DoqlsbPpzmf0HEtMArDX+9xjajvDS73SqJKRtWew+yrzI4OGi9QNS6TKyYgMJUC4
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-283_C24:KAS-ECC-CDH_B-283_C24-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-283_C24-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEANCO04VqvvfUpiJDyS1uZwzrOvMjV/25
+05wZF1oQ0curNs54BdufrX/Ir+eci5zkjmL/oNRrgFqeWCHidhwlwO26krEgsGPy
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-283_C24
+PeerKey=KAS-ECC-CDH_B-283_C24-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01adf5a96358e18d69fd383b4dc7b20dd646b68a5c9f1417bcf426240ca22b8f32bdf1a4
+
+PrivateKey=KAS-ECC-CDH_B-409_C0
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQArOkhA//iYqwXrUKk
+bUNm9MtMWA7/OrHd5r3f27c3SBHVKx+pkyC0r11OkgjBTrjvqJFsoWwDagAEAE68
+TUrPm0BNq8OvPoy+qLiLMpmdPst/NnsS6zpigLhAA44iaBY3p9FkNuAU9pYWq/cu
+RQCeJBCVQcgCQhfpqyyWP6njc2QAlabCWibu+sWOQ0LAyFRIsnCVkqEkAv4raKeT
+xVjOjNY=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C0-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAE68TUrPm0BNq8OvPoy+qLiLMpmdPst/
+NnsS6zpigLhAA44iaBY3p9FkNuAU9pYWq/cuRQCeJBCVQcgCQhfpqyyWP6njc2QA
+labCWibu+sWOQ0LAyFRIsnCVkqEkAv4raKeTxVjOjNY=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C0:KAS-ECC-CDH_B-409_C0-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C0-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAUaYmlApe+Nz3WZcRUVaKuTCIdpc1CQA
+e9l/no6Eb5Z0Dz+ljDyUEpZxzdTX6mUKKq3p1wG0K//ahDlGoUrWCA+VuPxrfhc1
+KNCO02/mQKr4WqAPte3VkFo4s8eWG3cit3uNy0S7JfU=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C0
+PeerKey=KAS-ECC-CDH_B-409_C0-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01d48a586be9285fa38dd3e70b0330b0ffebd327ceefef88fdc1521ef2fd61cbc9124e03b0c926e70fa56acb3edb54c3c48fab2b
+
+PrivateKey=KAS-ECC-CDH_B-409_C1
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAP/IvfXwEmYmkPg6j
+9dYXmBWcF4qnktedH/6/+Ntw7h/eBApLXx7TP7P/I8ROfGshsGI7oWwDagAEAdXJ
+Jg5z6jbk3qqkuPRUH2eAZraQdxqG8NrcWA/biVmB5t0C3SZO2fnBdjvVSmBSotPb
+pwEacGgmNl7OKOOLM2ILygFtLZM4UY39aGg3BHbay0HjuUdGV2nr6BtiBzFnNXb3
+dFHQ/hQ=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C1-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAdXJJg5z6jbk3qqkuPRUH2eAZraQdxqG
+8NrcWA/biVmB5t0C3SZO2fnBdjvVSmBSotPbpwEacGgmNl7OKOOLM2ILygFtLZM4
+UY39aGg3BHbay0HjuUdGV2nr6BtiBzFnNXb3dFHQ/hQ=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C1:KAS-ECC-CDH_B-409_C1-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C1-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAX6fAbHW5XAjKDMNIyod0/LFksxAn2yu
+8HCEQIN/NZdRDxEZVKpR5WRsz0fv8fB6T4rhywA3FPbqH9FDznUeLYW69UxVI5dh
+CO1IL9auEDdDExynFgJrFqHkliMfmRzcj220R/X5X44=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C1
+PeerKey=KAS-ECC-CDH_B-409_C1-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01856c92b46d671d8a7f6cc468efb60a61093d006c95bb931c1fccc336d4a8490fe17fe163c972bac39fe728f24534a0c34d2d21
+
+PrivateKey=KAS-ECC-CDH_B-409_C2
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAlt4sOSnECF+cwdN3
+jC2/Pbfw9357p7vE5AjH1l4si4iwdV8WC621JOdpfFDmDI2Z5W2koWwDagAEAZxH
+15kUyL2udU7F7B6ByP8ympOOaXHu48lFxOv0ieFLFeYTVhbImMgLewa4r2cGHHaa
+tQAAiAIrT7DnVOxPq4z0/GNiVUJnVfqZtWgFwV6sBDJRVdzL+kFF4WHEDxib26o9
+0+DD1sk=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C2-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAZxH15kUyL2udU7F7B6ByP8ympOOaXHu
+48lFxOv0ieFLFeYTVhbImMgLewa4r2cGHHaatQAAiAIrT7DnVOxPq4z0/GNiVUJn
+VfqZtWgFwV6sBDJRVdzL+kFF4WHEDxib26o90+DD1sk=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C2:KAS-ECC-CDH_B-409_C2-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C2-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAYPuNVqTzROv8XVqCOWOIZWoJimNQ/bQ
+e7HDgrTlaNAICTkmAAnGr8vtDyMlLgHW0UxtjwGyMJs4GcJFSkitJTrJe848ebUf
+UO1oA88FRkt0paHeIhE+I8AYxc7ZGG3bmBxini6ds+4=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C2
+PeerKey=KAS-ECC-CDH_B-409_C2-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01972e225e08b47512e92c0da9a1bdddb1802be402222cac5788b322e101feeb06b66b2fe726c1cd8aec92e02f37d15f4c97e64d
+
+PrivateKey=KAS-ECC-CDH_B-409_C3
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAq9XWHN4xGAMBwmnV
+KvhWuqObifXvRTZ/VRkhDHHXezGNBT7AwvSb9G3gXKvyPH0r19I/oWwDagAEAafv
+PRfDAehmG6ZsHN7oKptE1xaQnjZjtCPcBu9r5PYWzReTIc56Vy2kvKLom3aO3IRZ
+swDfdDhJogvDAmBitCDTlC8Y4tbFMH5uGVXjOwnVlR3FmzGisdWMIz4siW4tnMqo
+7rjo8RM=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C3-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAafvPRfDAehmG6ZsHN7oKptE1xaQnjZj
+tCPcBu9r5PYWzReTIc56Vy2kvKLom3aO3IRZswDfdDhJogvDAmBitCDTlC8Y4tbF
+MH5uGVXjOwnVlR3FmzGisdWMIz4siW4tnMqo7rjo8RM=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C3:KAS-ECC-CDH_B-409_C3-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C3-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAOhd6dY+NOXHu6b/mxb0yE2V8R3+khB7
+H77K6Yzm7/PblthpAL/SLNQj284eVya+jll5MwC3FBdx98gW1V7IxTgi0uehkvpU
+oX5bmbLZCWG1Spn+1Tq6S9oaQHStPSP5yREgV5W1RQs=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C3
+PeerKey=KAS-ECC-CDH_B-409_C3-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00b6661a866abbf1843dea8f220e360fe7cd7d9e85c316138fd2532a57d7d2a6bfe6e5518019c603a2d0e338ac6a8690093c2883
+
+PrivateKey=KAS-ECC-CDH_B-409_C4
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQA8yPI7kM8m6FdNwgG
+mDSsxNk3vlAX4dGC7HZGarooLHO14+lv4QYUNkFALHLGJIS6HxLyoWwDagAEALdP
+UlIBGfwIU2zqWEIg3psGJAHmT/Y1kwXC5rDASpX3e69T4jwyau52IRSVwwssFQuS
+dQFUBYji/VaI0bNXY5CMH4I+7sqJQvYhbOBM72btaZHfaiL7dEEbE9BlE6ZbZOYo
+Fe4CBpc=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C4-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEALdPUlIBGfwIU2zqWEIg3psGJAHmT/Y1
+kwXC5rDASpX3e69T4jwyau52IRSVwwssFQuSdQFUBYji/VaI0bNXY5CMH4I+7sqJ
+QvYhbOBM72btaZHfaiL7dEEbE9BlE6ZbZOYoFe4CBpc=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C4:KAS-ECC-CDH_B-409_C4-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C4-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAMqHCsvk6zrmXt2V1pROsJDg5VBxK+Ox
+Np5HMgP1Kxg4ZU96Q0K9gwlwT+1pM66dFizNfQF5bMKGvz1TrWNpdzdPg1bkVzC3
+qkOAX7UoAfc74+mzKAiYSq677Xvl455RM1sN/zR4KUg=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C4
+PeerKey=KAS-ECC-CDH_B-409_C4-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=010889037c707d90b833d03256ff2e8a5ffce16fb3613486221494a4fee82e74625a93d966c2028d0930115494f9456cec4d2b6d
+
+PrivateKey=KAS-ECC-CDH_B-409_C5
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAEz2iulSzYkTIBC8O
+LaNxjlbb0oSO9Ce92yQXf2JEdbU0AK/csYh56P5rRgmk97vCFSsToWwDagAEAOOi
+9OY8+8HuhEdFqz4eW+VzIEYJrs5eKLj7iriuBomEZ6lae1nAiYpBSr/ycDzLzcCS
+CQENc8Q7YwFwOVEErK1sGlY9MpZjIzKhSB3cLDGDa9Gj7hpzZNf1uClduVo3RbS7
+vrgJW8I=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C5-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAOOi9OY8+8HuhEdFqz4eW+VzIEYJrs5e
+KLj7iriuBomEZ6lae1nAiYpBSr/ycDzLzcCSCQENc8Q7YwFwOVEErK1sGlY9MpZj
+IzKhSB3cLDGDa9Gj7hpzZNf1uClduVo3RbS7vrgJW8I=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C5:KAS-ECC-CDH_B-409_C5-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C5-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAH62Hf3fw8DQg/4iE5Z5hjgdnjDmhK/f
+K6yPGjYujG1jWN+VkwYAQn38HrFBGP0SObZ7aQFbqH+YEUzsiyy0W7o9zwBrKH4H
+477x2ifOCNqeT0i9JB9ZofnJPIN4hHFXUPQIX5E/T3o=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C5
+PeerKey=KAS-ECC-CDH_B-409_C5-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=010a8aafbb243fc9466bf381eae173c01be95d88a9c131b07ed54d2f117cd3af4019ffb196ebe8290b1269622f9df26763ffa211
+
+PrivateKey=KAS-ECC-CDH_B-409_C6
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQA33VUwBMv1OSiuSF4
+dfmSSlXKsxm3anwXnPAiKTdXmZbPlJILr9RT5S9dL8SAATKfvXjEoWwDagAEAWCF
+HP+UfOcqEYqrTa1M4sPOm8Mwzh0G761/Yw5Fu883CX2UBR2dMQq/+o2W7SKoR8vm
+kwB5o93eY2vGKvQebsDgc/5kYuOK1Lnjo27MgROixjlM7SGr3I7Flp5Y4AnqE9vp
+KalnCco=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C6-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAWCFHP+UfOcqEYqrTa1M4sPOm8Mwzh0G
+761/Yw5Fu883CX2UBR2dMQq/+o2W7SKoR8vmkwB5o93eY2vGKvQebsDgc/5kYuOK
+1Lnjo27MgROixjlM7SGr3I7Flp5Y4AnqE9vpKalnCco=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C6:KAS-ECC-CDH_B-409_C6-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C6-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAILxSOw00dCLJueeN3LhLWWVmLc7b/8L
+qxhF6aW1BxRJ7ydZ/tY6qAYkuDprLp1zm4P22wEJzqBIpyC6dJ/FIsha9f54N1HD
+n+jQUVug8NPc0Z8Ywi2jkJ8C14c1qhGy/roPjTMMVwM=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C6
+PeerKey=KAS-ECC-CDH_B-409_C6-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01e17b8844c4c757553a628d6f4c48f3a337ed2bbb6e4047dbfcfbfd02bb81c6e096f8ccbb7f2e5d10ee9cbcc960e3a99e79bd09
+
+PrivateKey=KAS-ECC-CDH_B-409_C7
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAMnNd1/EY0p+fPKs6
+By24yIbUL6Xee+plA27TyNRKEej5b04abyVIiMqyFDBRkaJt0drRoWwDagAEAC05
+4PifuHUVHuOzVPjqFZ5/um8j+Kdk1J4H70PxjTz4bhuqrgrXnUAAcJpQJS8c42Ax
+NQDORKm3dbA89CsxAklmB5TCXgQisDrZurqiNhBhMlH+DlQEbgT5IQQ23TdgA9GP
+mN/a4Yk=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C7-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAC054PifuHUVHuOzVPjqFZ5/um8j+Kdk
+1J4H70PxjTz4bhuqrgrXnUAAcJpQJS8c42AxNQDORKm3dbA89CsxAklmB5TCXgQi
+sDrZurqiNhBhMlH+DlQEbgT5IQQ23TdgA9GPmN/a4Yk=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C7:KAS-ECC-CDH_B-409_C7-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C7-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAIPKBN+EWOXmzm4TuTfatJhSHYJvuVQS
+NFZ+mV8Gg8gPQ4UW7v8M+JGKX4tSYszco5l0FwBfizwg4/4lWe/g6FoSJ235Iu8P
+Qlf+cDviUp9u/7bymaGiUcAeONQ8pspXbvHgvrbJEh4=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C7
+PeerKey=KAS-ECC-CDH_B-409_C7-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01167edf7a3c50e13be126eb2caf6b5f8f761cc8dba413246423b877df74a3aa3f48144b44cd133ad9f2d05ef97a08f7ca511d7f
+
+PrivateKey=KAS-ECC-CDH_B-409_C8
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAsE8ztoeZYw1i9EM3
+x3xaa24Pdga1yHJEqk59ppjMj/HTMRtI7nyaaBK6+QVDea62HAwToWwDagAEAcWU
+DC3is3NYJK4plMFQhvqVh1Dk2DEjrwR+mzwmR0bJtdkZ2iFTVdjCiygIo30MxfL2
+oQAKv+bxUQoYLv943YAum6IeZorqVzLHMt38XfkwH1iZ8CuugPgoJgHvPu/kFO8s
+cm/gAlg=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C8-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAcWUDC3is3NYJK4plMFQhvqVh1Dk2DEj
+rwR+mzwmR0bJtdkZ2iFTVdjCiygIo30MxfL2oQAKv+bxUQoYLv943YAum6IeZorq
+VzLHMt38XfkwH1iZ8CuugPgoJgHvPu/kFO8scm/gAlg=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C8:KAS-ECC-CDH_B-409_C8-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C8-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEATEVNql0W3R15sL9ckwj2epmgDoTm0fj
+riY7D7fkLjMWJ5u/YiriYlMbLiKD7MGmEnybCQHUjMx4HwvewxMJEARLdpCamr1/
+yxhAfcQvY5EvomZyCAA6stKBAq3PuT3cBTdg5Twtqng=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C8
+PeerKey=KAS-ECC-CDH_B-409_C8-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=015c0d202bfdee2dfbd4be91625171992e6c6b1a1d06cc1b2b66ed64c9d928bd4f062912900d3f89045c7190f513d3b019a634f5
+
+PrivateKey=KAS-ECC-CDH_B-409_C9
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQA1OvDHJpl7jsavZ1u
+ZJV4DFTmM/WiqfYchAjXZ9CRbZHLVM/Nk3U435LPxFk44zt31yTyoWwDagAEAU36
+qnBRjzZ838qJeVoNs3S7e0B6WMqsJLpGgk3OeFAQZ9fgRn0wueH9uwp+rOFfsMII
+zwGdYr4rEqF6ePbJ9+cDZpdl92PGI1/nr3jyUETpnEsbkGU2QLPwrkgaVdR9HrF7
+hsW62hs=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C9-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAU36qnBRjzZ838qJeVoNs3S7e0B6WMqs
+JLpGgk3OeFAQZ9fgRn0wueH9uwp+rOFfsMIIzwGdYr4rEqF6ePbJ9+cDZpdl92PG
+I1/nr3jyUETpnEsbkGU2QLPwrkgaVdR9HrF7hsW62hs=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C9:KAS-ECC-CDH_B-409_C9-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C9-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAQwnNTD1T+F0u71cJ3GlWkLmQFDDvyUj
+5ggq9HbrAleHaW7fbkON0Fa1mPUABjPCZP17pQBEPnLak7DHgl9CI8eWgm/RMiNF
+6iWt898aLGlYkIwP2bE+k8wAX07LFVov/3rFT6gYB4U=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C9
+PeerKey=KAS-ECC-CDH_B-409_C9-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=007c32383aae80e1111207894c8cc5be66fe538af4a19195742a94a4c3f5c765d9776a56177c485ddb53c038b70478959d374627
+
+PrivateKey=KAS-ECC-CDH_B-409_C10
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAJhdqr5imQzVm8dzB
+kZ6URT6cvzyX4Gm0oXQmRJFn9qEImsFqECpLPkMql4v7RiVdxD0aoWwDagAEAVNf
+yUm0kDAwi8Dal5PVcIh2asjPIujWwnbY8/dlDzATXh9sADAME0Ti8DBuoOJwsJqA
+rwC4/D+mHcIsVVAfKmspRJRtmfe7/vvses9PsgDBAC4yLDkXLsCits4IB/Hj67Hq
+NAA1MUM=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C10-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAVNfyUm0kDAwi8Dal5PVcIh2asjPIujW
+wnbY8/dlDzATXh9sADAME0Ti8DBuoOJwsJqArwC4/D+mHcIsVVAfKmspRJRtmfe7
+/vvses9PsgDBAC4yLDkXLsCits4IB/Hj67HqNAA1MUM=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C10:KAS-ECC-CDH_B-409_C10-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C10-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEATvrjTbR5/U9gL7qM+/D4AmN6uqheXfa
+j5qunFdueSDo9tpVogkwzmD9SQtPsBVNSSd9mQEdwdh/NS4SvbQaG3ofHlFmKe0y
+PF1bJj/wNvAj8P9fci0FbCSkEfU7NH0HhthPe+h5EFo=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C10
+PeerKey=KAS-ECC-CDH_B-409_C10-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01166107ab98db1dbe22c5888a70c992af4faf4623ef593802aedfe433809c53ef4ab0b2dc4dc2546488b356ef3265356055d8f5
+
+PrivateKey=KAS-ECC-CDH_B-409_C11
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAvz5zlccqqEwJYOXG
+kCLOOQZ0BFNEc8THgpQk+B8dRLMfIOK5guJRz5/7Mnp9g09Z0ZSKoWwDagAEARy8
+TtkDaifv/In/1V+h4+rQ+5O6z6Cni8r+ORSrGpeGD+wTNMqroHJDWRYD5neRrqS8
+twEBB0xERidjCtClJY4kQ41x8mq5TQW7R9Grl4WMS5LG/xy5vma5hP6OFuRPOT5j
++dZCgcg=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C11-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEARy8TtkDaifv/In/1V+h4+rQ+5O6z6Cn
+i8r+ORSrGpeGD+wTNMqroHJDWRYD5neRrqS8twEBB0xERidjCtClJY4kQ41x8mq5
+TQW7R9Grl4WMS5LG/xy5vma5hP6OFuRPOT5j+dZCgcg=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C11:KAS-ECC-CDH_B-409_C11-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C11-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAWkMdGSekuHBAE9D/W5GkL5ZWQTFbSrN
+haSa8KF9NDaMh2jQOe3pySrSayYwa1/973v9GQCBJ19+L/BopsG5LdOMA0JW7XMi
+sCdwKZTHT1uBgSTTShkJh/1liJL8meesuYd71v6UaRk=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C11
+PeerKey=KAS-ECC-CDH_B-409_C11-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=007e7a249094eb52bee0115b8bd5545f81bf0b7d66998fe124c9a3dd3c5715d03b2f973d47c19af5108a2ae005fcca65e61f337d
+
+PrivateKey=KAS-ECC-CDH_B-409_C12
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAltQDsPpgHJp1qn3p
+/p4R1C76k9lt01EC2gXTrIB+RBlOGOeci1vhHF+znIvU4xIyWvryoWwDagAEAAmD
+OUYpTUruzbb3JUykicD/E68txuLKViaDXV3SIkFEDDemNpDNEYZ1gf9htyUtB6+4
+/wBhg/7m9NbvW3I8U8lsXB7N2EZS43nJN4eNdm+DNwUAQSNZwi1HeL34B7PITluD
+NQkQoak=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C12-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAAmDOUYpTUruzbb3JUykicD/E68txuLK
+ViaDXV3SIkFEDDemNpDNEYZ1gf9htyUtB6+4/wBhg/7m9NbvW3I8U8lsXB7N2EZS
+43nJN4eNdm+DNwUAQSNZwi1HeL34B7PITluDNQkQoak=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C12:KAS-ECC-CDH_B-409_C12-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C12-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAFwk9K2b3LFGBoWiLaVNvd0VB+9t5Gna
+QXDOMBR1eaVJRduxvOnwLkcAM7sV/Bpw+DHnmwF8qTK5CgjKLj9VxQzA4T0nnXvJ
+EZxXPD90FBC7fBytEHbDukKu0c5p1WIosIL7beDu+2g=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C12
+PeerKey=KAS-ECC-CDH_B-409_C12-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00b9d8b68642b2729340d8b7c5ed3b3a8913c4a3f6b947473017c0e105bc7edc60daa9b0732772220f93eca4878085f756e3adad
+
+PrivateKey=KAS-ECC-CDH_B-409_C13
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAZxJewwmrXcfqVo+I
+FaKzDPrDNmu08BYNU3OKuZXOdWgfzV5JLzqXJbTPdbpDAaeGBJNCoWwDagAEAfHR
+ruX8WUykoiuButcH2CG+8yU5ZvXXeVYVdIOWFpb0xgR2pCtFK4nB7LNhVHXsnJbc
+hwB1XF71WIm0Fc76DogaPvyb6G82xnYVQjtFLqtM1WEa70GY3bMa7LQ07u7BLt0F
+kTrxn8Q=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C13-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAfHRruX8WUykoiuButcH2CG+8yU5ZvXX
+eVYVdIOWFpb0xgR2pCtFK4nB7LNhVHXsnJbchwB1XF71WIm0Fc76DogaPvyb6G82
+xnYVQjtFLqtM1WEa70GY3bMa7LQ07u7BLt0FkTrxn8Q=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C13:KAS-ECC-CDH_B-409_C13-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C13-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAKq/aquz6Q+VbXAE/8iTxw+OkM3DH8DH
+qI8WMgVB1YRDrzlAXYiNlnZVfN05SyfcVEn5RQEn8m26BsM/j7RdlVz9tc7dqT3Y
+pF20LuC5JkoFTBaoe+2tRcDZoPNbvGqnoSlWIug+vos=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C13
+PeerKey=KAS-ECC-CDH_B-409_C13-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=017d60394c7ee64ba73db91484713370daa821255807349c237e5849411bf0bab3a1b353be3cd07eeddc5c2ffc74336225dae6f7
+
+PrivateKey=KAS-ECC-CDH_B-409_C14
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAayzCOH9pr9Q5eLf2
+a9F2ZiVwgbpNZu5qmoK3yHxKxfDrprwtmByh2p/yArpyy3/pwGzwoWwDagAEAIak
+TW7k6MUNHhDX0dETqWEHUCEGeeDkyrjGImeEKTitXZM8mA7vnUZEeRu/01u6xknS
+EwEdpjISYxYF/qDpP1gmsZKbK9HblQYV/LBetHvZy2nq4DscM9ep5HszWkBJgjj+
+24mZsE0=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C14-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAIakTW7k6MUNHhDX0dETqWEHUCEGeeDk
+yrjGImeEKTitXZM8mA7vnUZEeRu/01u6xknSEwEdpjISYxYF/qDpP1gmsZKbK9Hb
+lQYV/LBetHvZy2nq4DscM9ep5HszWkBJgjj+24mZsE0=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C14:KAS-ECC-CDH_B-409_C14-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C14-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAB9P+/IvZ8FZGwp3DlY8Crpm/gFWHF4i
+flIrXd4jx0jKz49KAikN4mtHdn04ilyDbT7/SwAtJz8uhRblCDiPjtIBXsn+Z8Zv
+gyzysmHfrVhWEoBC+0phqRo3s0HeQpbUv2O/Z6NFinQ=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C14
+PeerKey=KAS-ECC-CDH_B-409_C14-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00b19e052edd44421ee2f5ba845911fed9183d885da85d51dc819ca565ce574f7db257509876377b40c5a08349019563b60e13e9
+
+PrivateKey=KAS-ECC-CDH_B-409_C15
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAPgmPPxleidpx1jZw
+APgEB5rcoydbLnk+jTEsjkAs8NDOUzF0L4dRX03ZzGaCRhlLlXK2oWwDagAEAQr0
+rjNLpAvWU44PCVqlb2GivStfOOlUt2F9kroQYDzcyoNlVNAkLds31eFXawvmnw7s
+5wGzNVIa7DBfMU1/I+0ozAxNI/M6Z4X8bG3pPl+rzicTAvlVf20q53xScg7aWi4V
+Q2RD39I=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C15-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAQr0rjNLpAvWU44PCVqlb2GivStfOOlU
+t2F9kroQYDzcyoNlVNAkLds31eFXawvmnw7s5wGzNVIa7DBfMU1/I+0ozAxNI/M6
+Z4X8bG3pPl+rzicTAvlVf20q53xScg7aWi4VQ2RD39I=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C15:KAS-ECC-CDH_B-409_C15-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C15-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAbCDPrNEBFDj+lFIwlwt8uACBibyQHQi
+IX5Oy4vYp1GnK6suxWQq6Q/SnYxNeenMGRtbpQAjB4kFtqMwCf/qGhl325Q1ea++
+uHGXAFlpaynvkN2EYXdrNDoJyFOlOOTyL9+FT8vztzQ=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C15
+PeerKey=KAS-ECC-CDH_B-409_C15-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01697512676ae56ff5ab778c411042d217ad24a24ea05bbc253e4395fecc8a07fe77ae0ca4ed977459f1a14d9b83931bccf46107
+
+PrivateKey=KAS-ECC-CDH_B-409_C16
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAfYSTE8ZJna5HKwvd
+t23sRYBvguCYcjMB3zO2u7l/eUvyaHn8M8KXP4bBVRVJZBqBm1cRoWwDagAEAEgS
+rxk3YwuOp9D/cjy7BbeidA/Eyb55LbIE+SlnTDLkfYXkdwuQPTKQptYsJ0yyV7do
+NwCMb2FxF4a/XFTrDBsxJtZBskpmYrZ7JXMCqaYaqM1QOEa8uxsU+lyXRUNotsJ9
+0t4q6As=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C16-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAEgSrxk3YwuOp9D/cjy7BbeidA/Eyb55
+LbIE+SlnTDLkfYXkdwuQPTKQptYsJ0yyV7doNwCMb2FxF4a/XFTrDBsxJtZBskpm
+YrZ7JXMCqaYaqM1QOEa8uxsU+lyXRUNotsJ90t4q6As=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C16:KAS-ECC-CDH_B-409_C16-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C16-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAXS9Iz+GHHuFPMqPWjg1dISe8s127yK8
+DhWfcTodBzh8QgOxH0wzm2aWdPzx2sGZcDvrBwHix3jMpklj2HMp5XyLyW0PZzcE
+H9CH2vwH3WcOLOclVH4aJhxD+8VOFMNHPr27Mf2oRzo=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C16
+PeerKey=KAS-ECC-CDH_B-409_C16-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=015960ea8b92bd77d52874e3ea82ed1763440189d68728d3974d4c01d6aafdbb5274648f6f3eaa4faf3fc72d09892ab038cb2fb7
+
+PrivateKey=KAS-ECC-CDH_B-409_C17
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAv6WUhWxnwoNrf7Fx
+tnx6Qa5D7zRQiYAkqTE2VPzzHh4fusetUrK8Q1iXWlxhq59OPk6eoWwDagAEAOG1
+MJpEgAqRatik0ZuCpYsA7gSCSAUKbtbDPOG8lwFUfpPXyQQvhJBlS3OizX1z9zPA
+vwGAsgM4dGNR+sz7mjcRpOE4RXVQu/WDFgNMbyFqU3SSY9/+I1m93NyJ7GRGqaSp
+9O+QyG0=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C17-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAOG1MJpEgAqRatik0ZuCpYsA7gSCSAUK
+btbDPOG8lwFUfpPXyQQvhJBlS3OizX1z9zPAvwGAsgM4dGNR+sz7mjcRpOE4RXVQ
+u/WDFgNMbyFqU3SSY9/+I1m93NyJ7GRGqaSp9O+QyG0=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C17:KAS-ECC-CDH_B-409_C17-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C17-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAMHctzfSUwNbuR0qSoXzfQAUK+gfySeM
+sjpNHXnSfI08RECyyEK8HiH2kk4U3IMbCr+4RQAMc9VoewSQzMB/ZUEBrN2zbNDC
+7szhZd8nb4O+IR0B0w/1wkPwkAVy7m3wf1Od9qRomws=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C17
+PeerKey=KAS-ECC-CDH_B-409_C17-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01127491ff33a67ffc4757416cd02a081cafb723aff52af35b069b89963e8e3ef5bc19c5a093ccf511e3c3c19be789280e986809
+
+PrivateKey=KAS-ECC-CDH_B-409_C18
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQASgIOBsQA7ySYwRHN
+4VCHzaSKb7LswB2YW1fw05IZIOksQ/OraIEp3AGtKfwx1o6WIjGboWwDagAEAWci
+f2KElZTtY/JH94Cy0R3ZosLHG9a3EpTPi1nOaQv+ANqbwduNHarJv/jADnvfBx/g
+0wE2w+p30JPZc5++aJExixSVl3hZm9Hn1al7/IL/6F/VqaAbgvcuEfrZbS9ctXmP
+We/qFe0=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C18-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAWcif2KElZTtY/JH94Cy0R3ZosLHG9a3
+EpTPi1nOaQv+ANqbwduNHarJv/jADnvfBx/g0wE2w+p30JPZc5++aJExixSVl3hZ
+m9Hn1al7/IL/6F/VqaAbgvcuEfrZbS9ctXmPWe/qFe0=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C18:KAS-ECC-CDH_B-409_C18-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C18-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAT2WomfRoqnqg66xsB2KziLiUcgvX1/D
+71mXowEadKEBFd9g6Y0TnN02DnTXb6Ui7rVvSwFrZVq3zQ059Yj77+xU5PRQR2ZM
+izvo5XqxE3cPX+DGIwD0oJ+iiZ5zu8mCMmX1XVz0rhg=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C18
+PeerKey=KAS-ECC-CDH_B-409_C18-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01254508553eab09fbc2fafe13fa9b324d9217d7d0ba4cedbe5dc869ad68de4f87774dd17d6428ed242c71956f252969e6bd5837
+
+PrivateKey=KAS-ECC-CDH_B-409_C19
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAwZs5FmX1A1NUf8cs
+ntAZ9TEWkO5B58iVqn75LGD7nzRU36xXUkWmhp8f3sdF1j6lbIkioWwDagAEAFOn
+piqLQES2Cvdu+ltEQpv2X2WYfWoGIWPdVfCNyakbi7m2Jw+KAmEj+Z65NyzL3SfK
+OwCt1G9+pwkvSN2qL+uWyyS/ktJij7bk983fUj5fhAEc+Kq6vWAJoT8ppjtrfuZk
+xm84KfM=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C19-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAFOnpiqLQES2Cvdu+ltEQpv2X2WYfWoG
+IWPdVfCNyakbi7m2Jw+KAmEj+Z65NyzL3SfKOwCt1G9+pwkvSN2qL+uWyyS/ktJi
+j7bk983fUj5fhAEc+Kq6vWAJoT8ppjtrfuZkxm84KfM=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C19:KAS-ECC-CDH_B-409_C19-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C19-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAXh7MLOyBOKYaQudcR/+7xZ63FeSBotc
+jUIuyQ+Uwr3ShM2/i+5kL3C9e+LakGue27ws0QBDB4+RIRApChPZAWDw5xWC+jnA
+512BkOuBHUUCIARMxtaA2VapiGDm/IW7htZZkKFgxbg=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C19
+PeerKey=KAS-ECC-CDH_B-409_C19-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=004b9accc21d7122835fc21410ed1d83767c47a54ffee5f0c180fc55f3d0e8484af3ad38020294be92f02f0ba7e2b4f4eb1db07f
+
+PrivateKey=KAS-ECC-CDH_B-409_C20
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAbJCYtT0Q8qwChKmZ
+AmWPZn6kyrKGmK8/oHAGobtGNjsQPEqkySwcP+dTkJf6cLik+kbFoWwDagAEANPt
+9lL0P5yakqLk00uoP11+lQwoNGoqaFG/dVRwUBQKTpwcG1AOHSrTZMMGuaRK9QOm
+IQCZsmxkNn8ZA9qV31FWLSUELAGhrdp1u6WL2w2KqzULUuz76YSIwmGd4BzXD14A
+iVO8pUc=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C20-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEANPt9lL0P5yakqLk00uoP11+lQwoNGoq
+aFG/dVRwUBQKTpwcG1AOHSrTZMMGuaRK9QOmIQCZsmxkNn8ZA9qV31FWLSUELAGh
+rdp1u6WL2w2KqzULUuz76YSIwmGd4BzXD14AiVO8pUc=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C20:KAS-ECC-CDH_B-409_C20-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C20-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAenaCtGhWsPEMfIglU7S5QKve3RsP9V7
+Ls63dIZYAgoJVmSHg1TfCqGB5X5erSyYWtMCPQCcznOlRwg0i0j48/Z0u3ZU9EHy
+g9TopOyPhZLvUjlfJMES1ZQtOuCP/o2Znv3jmYiKfPM=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C20
+PeerKey=KAS-ECC-CDH_B-409_C20-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0093e2581c159d74d11f8667ee03399208b5c1a4ee5b20070ce8d97d251ef1236dc81dd688b2f07a730e6b8aeca0c193a28b178f
+
+PrivateKey=KAS-ECC-CDH_B-409_C21
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAp/o4qKuAMNa0l6I7
+3l5QB+OdFNqfgtxWSuPNtK9fz0G8/vetrbWRcebX09PDrGf3vnBzoWwDagAEABO7
+O6kdXSSIr1ctmVzvj/+x/YXRE0IejSwMOql824qTP8DT8F9GRs6EHr3PGphgS/+j
+3wHy4E6hagEtSGTPLKdWSEbec6M/JFeNxNIhNZxPL4bKgjywWWv+R2Dp6ty0rVCK
+saFx7L0=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C21-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEABO7O6kdXSSIr1ctmVzvj/+x/YXRE0Ie
+jSwMOql824qTP8DT8F9GRs6EHr3PGphgS/+j3wHy4E6hagEtSGTPLKdWSEbec6M/
+JFeNxNIhNZxPL4bKgjywWWv+R2Dp6ty0rVCKsaFx7L0=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C21:KAS-ECC-CDH_B-409_C21-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C21-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAMSSlPtxKUIiGiUAMkr3vYx+wc0bgJTe
+0brAAQqGlgg/fvrsqlED1nYkmeG+SFfTIAMCgQBWT6ERCzk5Jd+7JLqaazNz9GJO
+y8PhL5cG86sFQpktjbbI2Lsl+gYU1Ib20ayfPZi57f4=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C21
+PeerKey=KAS-ECC-CDH_B-409_C21-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=008e2f1c4bad19c46a5134afccf7f4ec14ab591c8b8ea48d9c3d1e7354ab43ba20aa39a65fd92cdc176cf3dedecbf9da49a8d855
+
+PrivateKey=KAS-ECC-CDH_B-409_C22
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQAzp+Ce9JMAUw+5Z7e
+90cXjWwDDBlmmtjnGLoTAr70ta0sEjNEj1J1spqJbAsuew2pIGi+oWwDagAEAXbj
+EBLZxgSy0aGSKijYpXTwYMw2OIsoFtL4EX2iDAaZqwoI92+6pHbwqcQkv0yVK0dU
+/QEf7cPo+Ogo4P+/Av2F0pwCAf0PU78mFMEK5RzLWMvEkAw4zEyaUthtifm4wt5O
+In9OIo4=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C22-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAXbjEBLZxgSy0aGSKijYpXTwYMw2OIso
+FtL4EX2iDAaZqwoI92+6pHbwqcQkv0yVK0dU/QEf7cPo+Ogo4P+/Av2F0pwCAf0P
+U78mFMEK5RzLWMvEkAw4zEyaUthtifm4wt5OIn9OIo4=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C22:KAS-ECC-CDH_B-409_C22-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C22-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEATSt0sSZFy33ktlKmziV4kW4QHPDJSY6
+hYwen3zzCkTyaNP4NYQR3AqcqrUFwKvAFhML9QAxwjaxQ8oDbIg2Qff5uVf095ij
+FmfEFWA0Ann84JYqIb2LtS+iPbcahPNaV5TvXgdZct0=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C22
+PeerKey=KAS-ECC-CDH_B-409_C22-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0190a1693eebe287ec980236d8762804d23fdb6f222763a0efc364f9280fdd53394c2badcc51ff09557f3b97cae7f70d790bf9df
+
+PrivateKey=KAS-ECC-CDH_B-409_C23
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQA4287mhNBmVsT/nC8
+VF0nnm2xSCySsTzozA2hwQDqL6qAOmSljMfrHP0WdXCDXFIvZZNHoWwDagAEANHK
+gjk7jVC9GJipCb85Mz7KO96YsLDc7Wb4KGMOaebrEot87CPwcmAEcHMmCnZTMd1v
+VwBsU1/5Q6D+dQ/Gw5kEppEroevA9GwbCCPkATx3R16imz8ySBlm8bFlvtumwXoU
+lPttTz0=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C23-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEANHKgjk7jVC9GJipCb85Mz7KO96YsLDc
+7Wb4KGMOaebrEot87CPwcmAEcHMmCnZTMd1vVwBsU1/5Q6D+dQ/Gw5kEppEroevA
+9GwbCCPkATx3R16imz8ySBlm8bFlvtumwXoUlPttTz0=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C23:KAS-ECC-CDH_B-409_C23-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C23-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAPDsly3J/f0IzY38unKYtN8tvYDCCyiJ
+5mOsWMw0jL+Pn/0x/7UGGNbDjXKpnVxdLqzAAQC7C0iJPNuRXmXNXXl4BIAgF6KV
+NDZUJGo3/jpg196YfmqaEKrwY9lrEBhGEszSZAfX4D4=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C23
+PeerKey=KAS-ECC-CDH_B-409_C23-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=001469dabcf2210aa7de0040b201221eb4d1a4725431fb5a93212a66ddea4187e078f5e3d82606f6cdfc0ffe6b69574d1d0ba643
+
+PrivateKey=KAS-ECC-CDH_B-409_C24
+-----BEGIN PRIVATE KEY-----
+MIHCAgEAMBAGByqGSM49AgEGBSuBBAAlBIGqMIGnAgEBBDQACKBnFu1vTPco+QGZ
+KPNnx3qQUkkLmouoelnNyoTnfGopmFP1SW/r5lL0ujM1AcT88rovoWwDagAEAKBF
+tea7t5UElfbV1kWit9cgBnJdAiPH/3VTQCLJJgqw0tjTM3iaPcz8OolQLKUAvQwf
+YQHsVW4bFiHsGJNlThmNWSPjEUeKi9L//ygMkJL/wHNyiamXSStunr+TGUdjTvf0
+O0Kc82o=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-409_C24-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAKBFtea7t5UElfbV1kWit9cgBnJdAiPH
+/3VTQCLJJgqw0tjTM3iaPcz8OolQLKUAvQwfYQHsVW4bFiHsGJNlThmNWSPjEUeK
+i9L//ygMkJL/wHNyiamXSStunr+TGUdjTvf0O0Kc82o=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-409_C24:KAS-ECC-CDH_B-409_C24-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-409_C24-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEATeERODe7P867Fq2506BI7qY2LkaUHz8
+oNhQl6rZRMFbT9icjL4sdFHY7GQQRUIbS/aXiwFkR8ITyQNd57zCm91h1u5u1Vec
+Nr7Fa8a0T5KGv56Z+sl/NWcIzQMQ2/Yzj5r417E1kQI=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-409_C24
+PeerKey=KAS-ECC-CDH_B-409_C24-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=005c701a93d7790322aa7c67440fdd9ee8057a0dae86d1e856ae89e7893da178bd67777f86db2be5c8e31dc50ed8a440aabc342d
+
+PrivateKey=KAS-ECC-CDH_B-571_C0
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIA0TyK+h5mblbIof2
+dDDqj+ZGxi/ji3zmHx+VZZfCe93ZkC4g1ENqvzvr2CQ+wpoASBqKLBn1UOmWQbXx
+Sq+7W9qVOnVZ+GU6oYGVA4GSAAQGr3H87BopBBFv4Uh4Zjdkwex0hw5dLVORnwtj
+WRLbgN1UYNnmmUWP+ElMW/x0+6jTsS9l8BXo3vEN4z8YABkfTLUC0hk4uVEBlYQX
+exicZkH/tni214M9jUuyXe5QGN2k5MDSGQSMAc0Nqer/40bVPPGgezOz291Lw6yr
+5IMvmYHv8mYJkarIUhR5he6jpR4=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C0-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQGr3H87BopBBFv4Uh4Zjdkwex0hw5d
+LVORnwtjWRLbgN1UYNnmmUWP+ElMW/x0+6jTsS9l8BXo3vEN4z8YABkfTLUC0hk4
+uVEBlYQXexicZkH/tni214M9jUuyXe5QGN2k5MDSGQSMAc0Nqer/40bVPPGgezOz
+291Lw6yr5IMvmYHv8mYJkarIUhR5he6jpR4=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C0:KAS-ECC-CDH_B-571_C0-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C0-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQDtj9foRKua18RPHZRRP5MvWAg4m1A
+DBFgmjpjS5oyX0FrDj0yFXNMaKHCyPrR0Lues5OaQa8iQh9oeB5+sGZLnfXOpEje
+qjsAjmzHe83cgW6Ez8H2JoJPok09X9M9gJPL/h/E2IG2O0lBI7x1lnDtyxiHuzud
+WotRa8UDgoFjcJ1NrLWU0nehWpLAZOV3DRs=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C0
+PeerKey=KAS-ECC-CDH_B-571_C0-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=06775e1b99a236e02b020bc73666e5751c1210dcb6e9b02a69f4075376e49f7a1476d2209e861abb73f5e3ad189d268e035b1de93d47b3a64de5783c9a09bc223e1cc612f26dcdf1
+
+PrivateKey=KAS-ECC-CDH_B-571_C1
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAvTSt+Y2YObCCUng
+bcZwvoqvglMOC26v4hAR/p0PRAfIVJUVc0UozaKZ6fz3OKl/v0PEu6JnRLMnUxtA
+FD4Vi8hkWQnqiIRWoYGVA4GSAAQG6nEYJ62O1Ym3Ce819qnNRiV5i9iH5f5ZxR8P
+QcMot+zfhHNsQ/tw45hu5eX5huAJ9kEVinXM5rOfU6i/BoKDAZTkAHFI3u8Exrny
+pgmfwDZ/qWCTlMMiGtjG+xEdK9xDBQU4BHiNMur3ZDFAbnaKRIy1yONMgSJe7JAV
+q72SclwAJxLtMZLYB7Nq/qhT9yI=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C1-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQG6nEYJ62O1Ym3Ce819qnNRiV5i9iH
+5f5ZxR8PQcMot+zfhHNsQ/tw45hu5eX5huAJ9kEVinXM5rOfU6i/BoKDAZTkAHFI
+3u8ExrnypgmfwDZ/qWCTlMMiGtjG+xEdK9xDBQU4BHiNMur3ZDFAbnaKRIy1yONM
+gSJe7JAVq72SclwAJxLtMZLYB7Nq/qhT9yI=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C1:KAS-ECC-CDH_B-571_C1-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C1-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQFdcuwWfQjMJ+ZO2wGrHHXvMXR5qGa
+/nKBHLYSpiOMnMwzHmfaDBC4jMKl8e8v9ta3RAZdJC9ZjaLWM11MO+z1w5U5QMYO
+/McGtDNlLjo2oHAYqorT0v8x7Xhc5WAXFu/3cQ/BPG/5/3XH83AdRZ/Y/nDAtK/O
+2ghoFxfbmCHYyFj9OeJ0/zd3L46EhW5wZ0U=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C1
+PeerKey=KAS-ECC-CDH_B-571_C1-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=03a80ea8cfecb858f9b77bdb46b6cda26320ee8c561a2fd6b7e0a2b62201fbfe60f577780c75a98a11a69de4c4ee911930d2200b6972bc3123d7f278615ecc65984a59fe352a1cec
+
+PrivateKey=KAS-ECC-CDH_B-571_C2
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAStjE7VoU8+NAnME
+nPftKrjmMuWSVu0EM2aFdkjz8qlnTK62+w/NX7qwu6u84XoPxKeBSEmcOJr1dIY3
+RkFpWw6FLzFS7sckoYGVA4GSAAQECnh2PRcEWd00tcBOx4LmmMvpA6WjSFUcUkjZ
+2s8ZvLmkmOoF6A4tbMHz6lujpDhVuAHIwDVv4+Ke4iS7kfTtDIVng3m3JUIB/0nO
+CmLp7a5qpjqYSORPGFQS0P60a4f5FCS9r/7VFoMh7XbyNfddM2Z/bX1qnIV7tPhU
+QvxA+aIMBK4GNipG7O6hXEXWm+s=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C2-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQECnh2PRcEWd00tcBOx4LmmMvpA6Wj
+SFUcUkjZ2s8ZvLmkmOoF6A4tbMHz6lujpDhVuAHIwDVv4+Ke4iS7kfTtDIVng3m3
+JUIB/0nOCmLp7a5qpjqYSORPGFQS0P60a4f5FCS9r/7VFoMh7XbyNfddM2Z/bX1q
+nIV7tPhUQvxA+aIMBK4GNipG7O6hXEXWm+s=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C2:KAS-ECC-CDH_B-571_C2-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C2-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQGSqZoMP9EMkpnroqQeJaJe1B1Zs9S
+3+E+Otux55NmXStxg1h1Tv6AnkSWIYUC/rVgTb+8BKEQfKnsTq3H0QqdbRR0zt9X
+gUUG9j9p+MGLZ/EQUbPTAjahokkIiyvKtc/4MM256z51wehyUuXY5huxpmNI+2ge
+li1lq8VNXeot1yxVRZB0AHT3xmxLjf0wdWE=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C2
+PeerKey=KAS-ECC-CDH_B-571_C2-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=03edea7e47ded7c2ab1115f4ebcbb42677c7fba6e0cfd811602896251ada1d5a0b461aaf4e000f4d4231b96d8dee7630d9f1b7860e6418dac8c3b07b66af6fd1acdb44b2683b29b4
+
+PrivateKey=KAS-ECC-CDH_B-571_C3
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAhmXtUgcDPbPQ2v+
+Ngw7EZueTdVvPChHr/sgIcusS1fcGPUHXWeK8rpunu+8QTjYGAU/LfMqEOiuXWQJ
+9bLx88q/NvgI/cB8oYGVA4GSAAQFYM+RMowmu6E/ccm13d0FwYWWnYi9Dp00o2B6
+kjsjpbZ1RSFnADri8K3VFB6kvkHrrpHTpqoVw5Pb9YWtbJIUsmnoa08FS/UC4y7C
+QEGKmk+QF+Yy+Kd4l6IjPW8fRbj3qoGPhH3bPOq1paEsdU/OjVewMgoHa1NEHc+f
+Ze8yBOCJGR7xVv92IpSJenL8qTI=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C3-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQFYM+RMowmu6E/ccm13d0FwYWWnYi9
+Dp00o2B6kjsjpbZ1RSFnADri8K3VFB6kvkHrrpHTpqoVw5Pb9YWtbJIUsmnoa08F
+S/UC4y7CQEGKmk+QF+Yy+Kd4l6IjPW8fRbj3qoGPhH3bPOq1paEsdU/OjVewMgoH
+a1NEHc+fZe8yBOCJGR7xVv92IpSJenL8qTI=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C3:KAS-ECC-CDH_B-571_C3-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C3-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQFBnGvZcvvkvMF5frLQojMBKTGl4o7
+eK/kBJxqmV/ow8C7YJq+SdFSse7WxxTSVP5u/xWanr0krRaRnvdvRHAFfrfCZaS9
+lugFHQjiHSZNjk28c0CIQqtXzXjTI+fetiWzdBmUuK/+Aa9EYWIttBmv7q0EWEX2
+w9ttmC9FtpK+oRzyXRiso8g77IQMdYKnBi0=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C3
+PeerKey=KAS-ECC-CDH_B-571_C3-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=005b640015330f8416f2bbbf8b5660e01a7abba8b0197a29e52bb535d62f89ad0443e08b6e0d1d15f4eb03c0fe35e3e43bd7739cb692092698a2cd13126cee4432831ec7423b3434
+
+PrivateKey=KAS-ECC-CDH_B-571_C4
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIArU5rMdwdYeZ9Dln
+Dq6Fubo0qLTzccyTWiDOjFZlIe7NjE9a/xFq4Nsq1urhozhENMWZN5ghrQXYGtoF
+SCmd/ZjP1tPxVzUkoYGVA4GSAAQG2uU4yCBEOXdBXO9OeZdLp2K2m0NIECAMxv/z
+JqI0TNIb4ZwVNkLfgqPlelUxqL8Zdn4ZldJyj8tmHVjsVh7yOjTYYHlxSQ0FBCQ8
+eSuQMYTqclqUfKiSGMqcj6Hgmn3WjeiOrpD5vSqN9BTdaaiysaLe0sbX9RTIkHmX
+Yk6wvJ6pM6LUdO+Pg7rqMkODTeI=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C4-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQG2uU4yCBEOXdBXO9OeZdLp2K2m0NI
+ECAMxv/zJqI0TNIb4ZwVNkLfgqPlelUxqL8Zdn4ZldJyj8tmHVjsVh7yOjTYYHlx
+SQ0FBCQ8eSuQMYTqclqUfKiSGMqcj6Hgmn3WjeiOrpD5vSqN9BTdaaiysaLe0sbX
+9RTIkHmXYk6wvJ6pM6LUdO+Pg7rqMkODTeI=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C4:KAS-ECC-CDH_B-571_C4-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C4-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQDmsnpGvWUB03NM42k9SQFdPAeQTpJ
+uSJGuj1t6FXj3t9uf97amrf3+Edudwzpu8OppeuYRUPcw39fEb5uKKHRCQkx9cW1
+o1EHgNMtuxNImb2i6YhIlBh4OHq6ZmX9JCUhYM4xI/aPm1vY8lSji4TsU2Ul/gB6
+hjtvzEifk3oFpf2UbWKCUyign4Ony6J/6l4=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C4
+PeerKey=KAS-ECC-CDH_B-571_C4-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=027af05ecd0332784d64b0b1bdb45c310fd445c5a6d6b34f35f4eaa3fa3e171ab98763d243a1dedf46aa29864620a47d05eeaefd748186bcbcf187c01e7ce36e2a53ded071036b59
+
+PrivateKey=KAS-ECC-CDH_B-571_C5
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAxipbjgngtRHbxvr
+9pehB28i4dLshHR/n8QlBdVUfaqgjYFHIXWWWZWGhc9OpLuhL/+2avCfZpRSHxHA
+m2YmyK5S+/szalKhoYGVA4GSAAQGdw8vzS6bf4vFwpLSg6uthRVQcf4373zoTzTH
+YW2j2+G9zpqwTOp7xLwljF0qt3I509CEVost/3eZiCiNn8a7Nk9RnQ6FWtME9qH0
+5f4A/pol2EWbiIA5iO8r8v71oj8T56fn80Wav8PVwAMDq8xQgPq4GwnVvgMg75kF
+GaBq8TwpVi7pVXFagswNrvLF4Os=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C5-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQGdw8vzS6bf4vFwpLSg6uthRVQcf43
+73zoTzTHYW2j2+G9zpqwTOp7xLwljF0qt3I509CEVost/3eZiCiNn8a7Nk9RnQ6F
+WtME9qH05f4A/pol2EWbiIA5iO8r8v71oj8T56fn80Wav8PVwAMDq8xQgPq4GwnV
+vgMg75kFGaBq8TwpVi7pVXFagswNrvLF4Os=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C5:KAS-ECC-CDH_B-571_C5-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C5-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQG9liEkQYKHogUjkve44vGdHE/44TX
+z9v1vZDJ27bhWH5Fnc5uDWm4ss/rUFW+5WpzwTQ2BgGYrUdQ2uglPqg5ouJG1UFF
+l3UFthuPfY1sgWKiJp5yh9RZA0uPqsA2D8+Z+yHaNKMU5nNTGbnQNia5JoNpNF86
+YkrK2yGbIHGI0OlFy8Z8mCBo0yYT/CH4sPQ=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C5
+PeerKey=KAS-ECC-CDH_B-571_C5-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0763c0d659a7c080912005a2afd60ce57e610619b388ef3d5dd3c9386ab12069c6ef3a8e72eb741cba2da5c6f9267f6c09fada6459690ed4e432445d6f0f72dbcb059c87df36f665
+
+PrivateKey=KAS-ECC-CDH_B-571_C6
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAotDGetwVM/2OCgg
+xS+cMy6uZw0fB8/I8UcukmD15Ho4V2gBbNIAZwDKe9xdHVZ9kkYK98KkJd0NeK7u
+PRX7KNcRZ+ZIa4HEoYGVA4GSAAQFsbEUzvE6pd8wbOdBl9aA+bjJ2PZ1OgnbiEZq
+a7BOrx64c4NgItdQT0X66FqOSlQX7dfOOg5eueeSZIhO14NXez/FLYJfC1cBjjIm
+42tLM2eZxGhLulBemE3IgZFm8XzrhA42ElsoOoyGNd3353BAbZhW2Cs3z/H7zF0/
+XPS1XspB7hMfIep7yxnOBfZWQkU=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C6-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQFsbEUzvE6pd8wbOdBl9aA+bjJ2PZ1
+OgnbiEZqa7BOrx64c4NgItdQT0X66FqOSlQX7dfOOg5eueeSZIhO14NXez/FLYJf
+C1cBjjIm42tLM2eZxGhLulBemE3IgZFm8XzrhA42ElsoOoyGNd3353BAbZhW2Cs3
+z/H7zF0/XPS1XspB7hMfIep7yxnOBfZWQkU=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C6:KAS-ECC-CDH_B-571_C6-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C6-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQFpSzr9oEDyrAmbPLGicSPCAVJ//xw
+25gJwqRvkItyib5ZcynznuHkzKOYZk/6m9zwEpP0NZPRiOEkEdV+VZs/ajDpVUhp
+8EkBThNxZfsNUw6GU9fLKoRhjdOvz6PwhWAXkUKq6XJ5DOdGov1EadQVWHRDeMZA
+rnOkibt/gc3KaxuxZ8eUwm1iOKDSVq/DuiE=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C6
+PeerKey=KAS-ECC-CDH_B-571_C6-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0428413f2d2aad4d5288885c2edc8b976321ae1dd4fc6b41275fb88b8c5e7776165effce79025163538a0e83c919220a407ead6cefd616b4b05294488c2ef5d30ab8caa55ccbd1b1
+
+PrivateKey=KAS-ECC-CDH_B-571_C7
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAgEV0X5B4TF4tCoA
+TAHV5O8cdiQQScfTG/DqhdbgcKLiuSCA5h3lRvzL1NmRI2uzYO8/IG7hbYhDoN3I
+A0Y2ZKjM3C2HoQJ3oYGVA4GSAAQGyKw0NkrK4148QXFgMz5IZBho/MoEwNV3vgb1
+irClX9fbd5/nN3edoz0An1e1utSXAurPV1rLryffgzBwzYk6eSR3DJLv86AGG4Ll
+RdQcYv7waLNM2/ATlhFdKhQX+XGUg9JphrbVL49t4Gg3eV9tndfNCVdBEUMYxuim
+IGs97u8BTw5EsNxmhOEA5Kw2FlA=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C7-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQGyKw0NkrK4148QXFgMz5IZBho/MoE
+wNV3vgb1irClX9fbd5/nN3edoz0An1e1utSXAurPV1rLryffgzBwzYk6eSR3DJLv
+86AGG4LlRdQcYv7waLNM2/ATlhFdKhQX+XGUg9JphrbVL49t4Gg3eV9tndfNCVdB
+EUMYxuimIGs97u8BTw5EsNxmhOEA5Kw2FlA=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C7:KAS-ECC-CDH_B-571_C7-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C7-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQCbi8e5k55WOkCVHp9sKHhSGbz0sAS
+fCu5sJ7iMtPZUY7kSuj1u0M6CIBp+jhs1ciQJxG3YqwNo6ejQgRyxH6FD5iN1gpj
+bX0Gd/9RAFLU9GCEn7jvDU81Gc0jjk4caItzbPbjdZVQ0TSh5so8tHnWi03F0Luh
+ruF4vW/hXsGW+x9ifYcHk5T294VOBTIo3uU=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C7
+PeerKey=KAS-ECC-CDH_B-571_C7-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=031bd2a84369e93dfa00581446d52762100d985cc7bb91c4fa8be7472e2e8e9781c52b19a54330442441bacae23f4bdc76486eb475d51f26aafbfb272a5ab5db184a4d3c3006e5d1
+
+PrivateKey=KAS-ECC-CDH_B-571_C8
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAIR7VF70lhVnHwi+
+c6SRRwYxhEkzQBEepNzhPC+SHwe/rP/IRB9MfJ0EefV/OhP0wzxj7UfDpD+y8G0G
+qXgOXAs6wwQQrcSRoYGVA4GSAAQGmU3cWuLFtvRdwytxDxpJORpH86D4wteEZVL+
+SH7wHMoEMRVbtUUzsGeinoNnNzr5XWp/C/mNhptwj0j5XxuIoVMP4iVH6X4E9iiN
+TXBPM6iYAx59AEb78eNKcsivGQ9NMxYzQ8iXugwNivioYjahw7ZVuXncRSLTPWam
+ZbO2UBVw8HYyKvCtK7qqBOoumV0=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C8-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQGmU3cWuLFtvRdwytxDxpJORpH86D4
+wteEZVL+SH7wHMoEMRVbtUUzsGeinoNnNzr5XWp/C/mNhptwj0j5XxuIoVMP4iVH
+6X4E9iiNTXBPM6iYAx59AEb78eNKcsivGQ9NMxYzQ8iXugwNivioYjahw7ZVuXnc
+RSLTPWamZbO2UBVw8HYyKvCtK7qqBOoumV0=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C8:KAS-ECC-CDH_B-571_C8-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C8-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQCPuT57CTe4gOs+2WGMTE8etQ5TEfx
+eU0ItZn/wV8OXaspEdl+Aw3ffLS7rfilvOBcNTWPvQz5XT1cf/PNjua1TjedjQEj
+k5sGBr4j58V0bb04QE/WB/t/J47iSdyOJ0DPG7mxwHsc9+ClCkMlZ9GGl5moAxIl
+ENtDeYGiqhJuuarzx74FqA+sFJXhxAyhwQY=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C8
+PeerKey=KAS-ECC-CDH_B-571_C8-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=04df20154fa49a1d6e04dc2ba6e55a7f2ae575de5e2c6e4091a4d2c36aa93ca9699b890f0ee4df53aa75d0d9babad68605bc027ec67c187a6826aac0f4bc596baae788b376110216
+
+PrivateKey=KAS-ECC-CDH_B-571_C9
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIA0wkWDArQ4V/Eq2L
+2ah1I3ZBoh4hyjz5oJVtPP7e2WpeH1M9gntSj7tYbak+77tm0HeLGbGn+28Xu/nn
+m5rO/N17lgXniY8moYGVA4GSAAQDLTp6QJnwif6pGJIR9zZvLtxKv7MWxcBZSNje
+V/ygI7+2oRsQLqQSC6YhksDfYQvY0vY/xXcn9Ka2QKv40pn6xWxMeviDSeoE5jmf
+HO0madOlUG016ivr/M8M7IS8lzg6rcO0g0f2KWJuYJb4kENeWTNnUEj9zvze3j7W
+FuZWDULp4XxUkuMLwt5GicBZLss=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C9-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQDLTp6QJnwif6pGJIR9zZvLtxKv7MW
+xcBZSNjeV/ygI7+2oRsQLqQSC6YhksDfYQvY0vY/xXcn9Ka2QKv40pn6xWxMeviD
+SeoE5jmfHO0madOlUG016ivr/M8M7IS8lzg6rcO0g0f2KWJuYJb4kENeWTNnUEj9
+zvze3j7WFuZWDULp4XxUkuMLwt5GicBZLss=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C9:KAS-ECC-CDH_B-571_C9-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C9-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQA1KCxHBc5vtCU5y16aSODaDbZIVdG
+xyzGgARaNtga314lOU8mmiraHZQ568M7uTHW+llaJSYcJEoeF7BG+xD7VLsxIojP
+Lo0HUgT1DTKrimq7/5gtH+NyuMVBW7W3JrNGqk8IvjL4yigsHvbhUkIzYNl7cooH
+Tms887kScYsWks2YMBl0GiVBgkI0vcjDI/k=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C9
+PeerKey=KAS-ECC-CDH_B-571_C9-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=037a380f525590582658e2dd272a32de67fc0cf5390b37f4d33c1359f075d4461ea38a55027317892a3d1d22f5ea333ad437667d2f3eb8781c39504036ae33e4b0a26b6894722f0b
+
+PrivateKey=KAS-ECC-CDH_B-571_C10
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAS23haA8Jr46bppY
+LlwyqJVwrUMItxPOVHHqGT3sHzLWi0/N+xYA/bHstnaeJqDgV4Etu/DtSVWSZl5r
+jpqXN4owtcZg+63BoYGVA4GSAAQH7ffuDsd/Wmw8nsTtj9PLgUo0LpzGRwtUeB7W
+wUHiEVyG29e6J5k+t+vteji+SI+W/d+pgvNpGqHCppf3cGv/PRrdc5YGYZQHs4JL
+f3smb6Qv5Tatwqx5udHltAjnIXs6md3rmS8xI/8tFod00wCoGKMmkuJlr8b29XjZ
+vTEhEytZeYQfei0GDolIkB1lfBw=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C10-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQH7ffuDsd/Wmw8nsTtj9PLgUo0LpzG
+RwtUeB7WwUHiEVyG29e6J5k+t+vteji+SI+W/d+pgvNpGqHCppf3cGv/PRrdc5YG
+YZQHs4JLf3smb6Qv5Tatwqx5udHltAjnIXs6md3rmS8xI/8tFod00wCoGKMmkuJl
+r8b29XjZvTEhEytZeYQfei0GDolIkB1lfBw=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C10:KAS-ECC-CDH_B-571_C10-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C10-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQDu4QDK3//zieszzVLid3fZGzctWY0
+3w+FIKdzD4q+sF+ZM9ikNS0cd2fMP5uAzv/N0Ms6l7WSg/0KZ03E/SQDM/AgyCtI
+BMUHRJkzasOoBUMHiZAnaCUgJrUm7OVKwo6MyHjxi6+fq0K6TONOSWiqwe5qC7Fc
+mnCYgqU3KvVuoLNoFzhfu/6sS5BgaeU/v7o=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C10
+PeerKey=KAS-ECC-CDH_B-571_C10-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0420de313bddce87d07321e3f0af404d9d13e5369b79506e807178711153c9b1837cd055562eff3aadfc5954a221eeebb1bec1696d3df1cccfb8b61172a50d83cee95f4140ba070b
+
+PrivateKey=KAS-ECC-CDH_B-571_C11
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAgJgana2oT1uKSgL
+wWE+EVAldwskX1Vh1Yg+E14VnMQ3sck1Wy7uKzur7yKf5UWqsrzKFV6JcklfGXS9
+sewOYMTmx5xI8mpGoYGVA4GSAAQG5026TgcC8YbTNNPEniV44e36xWRkXdqMSliB
+WPjXo+9jJDZTwNUHQnc0+0zIet9KNr1avKH5ILm9bjv6UckW1XEIhFlOlIUFuSFH
+ottIo4MMz6KJUaK36OuEMTuZsKmQMceDTGM/hlovmESVJSiuXe4CQoqCTN+34gko
+/8U0IN846tC0JA0GWdWtsf8uLcs=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C11-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQG5026TgcC8YbTNNPEniV44e36xWRk
+XdqMSliBWPjXo+9jJDZTwNUHQnc0+0zIet9KNr1avKH5ILm9bjv6UckW1XEIhFlO
+lIUFuSFHottIo4MMz6KJUaK36OuEMTuZsKmQMceDTGM/hlovmESVJSiuXe4CQoqC
+TN+34gko/8U0IN846tC0JA0GWdWtsf8uLcs=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C11:KAS-ECC-CDH_B-571_C11-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C11-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQGVWpMyYRmeUqT0DOIU2d296SzNEw9
+xOuWCkpkWPx4ac1ORbLxQMRop9TruoTJSCM3oqitqsiKmmKdoD3SR1JmQrCrcft6
+jHAFS5fZUrGfdChW2s9OUN8MMQO68lP03mWj2crOY/6CkG0sjoozEvtTXgD5tcpp
++H28f6P32H/gJFNmBKr+RkBZPMz+9vrAKKY=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C11
+PeerKey=KAS-ECC-CDH_B-571_C11-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0606228f5a05077aeefbefac23c0d5bac7a6062bfc2b02ce8bba6698ea96b456b1f0d32c6e05dbb9be61a83090428eedea18c74f41238edede9e3a12e28722d2f314613c2e84d6db
+
+PrivateKey=KAS-ECC-CDH_B-571_C12
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAEhng0isM7kvLFln
+cQPqQJlGtVk9EF/EmDNRxO3pKcS5O/xpWHZVXjrOQXuCrAW4Mmdqwj4pVaCe5kog
+pfmOYkmfQ7p/f8jhoYGVA4GSAAQDHdSAjSs0G4iB9eUKLczjjfg5AJ+SGFl439mm
+DNruAFzbqCZVZHc21AevuQxnzdsTuisBYY9F6KJ0MX4C93D4Dvh7u8GxEFYFCgZx
+ycDOV6SU5pEfE3bPH8M5OIW6jCb23cu1Nhh2hgo1r8H0Vg8pcMMNs/HIF9vIrysC
+Xa7TqdoS0vrp1xTOrYBEXmoKCBM=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C12-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQDHdSAjSs0G4iB9eUKLczjjfg5AJ+S
+GFl439mmDNruAFzbqCZVZHc21AevuQxnzdsTuisBYY9F6KJ0MX4C93D4Dvh7u8Gx
+EFYFCgZxycDOV6SU5pEfE3bPH8M5OIW6jCb23cu1Nhh2hgo1r8H0Vg8pcMMNs/HI
+F9vIrysCXa7TqdoS0vrp1xTOrYBEXmoKCBM=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C12:KAS-ECC-CDH_B-571_C12-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C12-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQBAFGCsCmkhSju9f/QIhrYcIWrrGpy
+cFIDo8Fomru8DhKSel6Ds1Khutl3BhAfRKECLMwNVSLcXRyhQz3gOiuh34ZIdfUi
+vmEBiwKpjws+TM9EqWk5ogg6sfKgTa/Vvc7jz/Q4uwi/8SBDqhksX8804TtcKXQs
+XYZLnKxGvqbpbfKxvkSTrPlQIk1xc3+ZBlg=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C12
+PeerKey=KAS-ECC-CDH_B-571_C12-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=052669336019db5eddef5eab2336abeb60bbc7295e4bb663ab43e373fb6d888d7433ec89a487a91d4a59c289a9509ddd1bab33cd02a7bf37aaad78dbedf0b4ae5f2f35d15cb4e628
+
+PrivateKey=KAS-ECC-CDH_B-571_C13
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIABe6ty14j4t4ub/E
+kShjxaSJIv5p6KTPXm6Rdj79VHehzUOd7dCv6lBOOzr2gj6jCJwDdO2a7iSohRbI
+zzr6vplbm5Z187WroYGVA4GSAAQBYcFLvITkLsdneow3cAZezR8PROrIJCpxWmGX
+Hn5P//eP9Xob8blcv8LtlX0RlfnqUICXFcJDnHVD5XNSATVCbUdTW4v8hTMBJTYz
+0CJRRk7cxT7Z6KntkykyDvXurzXWTFm5c1yW4H8aYuwXvO5PBM2ahaPrUEqvN7s4
+jGx9CNkKoLaFVrXAaOy/ClmERg0=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C13-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQBYcFLvITkLsdneow3cAZezR8PROrI
+JCpxWmGXHn5P//eP9Xob8blcv8LtlX0RlfnqUICXFcJDnHVD5XNSATVCbUdTW4v8
+hTMBJTYz0CJRRk7cxT7Z6KntkykyDvXurzXWTFm5c1yW4H8aYuwXvO5PBM2ahaPr
+UEqvN7s4jGx9CNkKoLaFVrXAaOy/ClmERg0=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C13:KAS-ECC-CDH_B-571_C13-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C13-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQH+rTlkyjHAPdGSb2Qp9Uf8olY/nIN
+qqsyjPybACqnBs6zmTTbnM+B3uyVaJzox3a0/GVCqCNYzFHrvG2OUyLLP6bkaV4X
+D8EFrNRc/6Kd2zTuQudBACZ5jjeo0anOn5KU2lGYFktpAQxoxTKBzL/EB9FBCX2h
+N+eEnyKP3BoHqimL4myncfR6xP6ycj1aZmY=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C13
+PeerKey=KAS-ECC-CDH_B-571_C13-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=062de5aa98b440c6cb7a1428f6b5e47452b30454eec4d651982b531121febbd5a3833b180017f7ddb5ce38d7bb1c842de1a8a8fc7fc981e24733b7662813fd010a4e757ca4ea5c28
+
+PrivateKey=KAS-ECC-CDH_B-571_C14
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAqstQwJ7CPir+jWY
+7wFEOZpgtgN7F6OuQT1CLvohZ+nqTxnX7KmNhcZ8H+hfvLwfErr6MKhdvfVCRmiJ
+MV8VMt78XRgVCfAIoYGVA4GSAAQDKMDWf9VS6hDlvfe4fVC/TcujTcpWmuuGnFx9
+x9gyzjD+7TLiWnI3k/l8VX4vl4xeE0nmm3PvmRYAH/sNbNssY0PjRTg4bm4B0VG0
+btAEJjzZpcDUaoQNAyImMfkv+SgOlaNXRs28r9n+1oEcdhS51Qqigo3HonWznT1B
+ijSd0eK3MhH03po0tC/KEbl2Dso=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C14-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQDKMDWf9VS6hDlvfe4fVC/TcujTcpW
+muuGnFx9x9gyzjD+7TLiWnI3k/l8VX4vl4xeE0nmm3PvmRYAH/sNbNssY0PjRTg4
+bm4B0VG0btAEJjzZpcDUaoQNAyImMfkv+SgOlaNXRs28r9n+1oEcdhS51Qqigo3H
+onWznT1BijSd0eK3MhH03po0tC/KEbl2Dso=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C14:KAS-ECC-CDH_B-571_C14-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C14-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQHJnYwKtGHMbdiArxRQp6/fsz2Ml9O
+CEwvkuMojtKQSIueNnIOKdqi2xmTp9F86O+djM7GHeikBxduJnTCXVe/8sRlljWL
+NgUDwAItUyKQkeFK8PdFDeyhy124IecVkGCP4Jhtc+iMkV5e6N/ryJVZE9kWT5kv
+VjlKZi7xHIIU6K2oXfGxewuXQUzdZi0Yi10=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C14
+PeerKey=KAS-ECC-CDH_B-571_C14-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=07c7eb4892816cc3388ebcdfb412984e05910c112dd15b8e5481719401701aceba22fcf35aab0c3b040096161011f6177097c505395d9d6d8a713f6a5100fb476adbe7b9cdf4b68b
+
+PrivateKey=KAS-ECC-CDH_B-571_C15
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAEnG5MBaGXskr9Jw
+ckP/v9VbAIj9M9h9rk0hBI918rhiVjB1JB0vNv3Q6UBatCqlXL8gldq8Pa7frp3r
+kiIgeD6Fkc/WdgCxoYGVA4GSAAQAH+KaTC3QALvtEpEhuI7btcObNAA/FwrBn6mo
+XF/lh6q4ITYfSWNEDyWstJdYgQVS8Gtxmp60O3IOm3rW751BJI1fM1+ZUVoBSZ25
+WAjHGdJOsFxjPbiwXPlpygv2VkNbH98bCSgpD2pr+ICtuf1TyG7Hbg9izonL60wm
+b2Sodtd4IxoAMMOKoA1mxr1oB4U=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C15-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQAH+KaTC3QALvtEpEhuI7btcObNAA/
+FwrBn6moXF/lh6q4ITYfSWNEDyWstJdYgQVS8Gtxmp60O3IOm3rW751BJI1fM1+Z
+UVoBSZ25WAjHGdJOsFxjPbiwXPlpygv2VkNbH98bCSgpD2pr+ICtuf1TyG7Hbg9i
+zonL60wmb2Sodtd4IxoAMMOKoA1mxr1oB4U=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C15:KAS-ECC-CDH_B-571_C15-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C15-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQGzXkx/PGTX4HzAUee2a0Mb5oFvs9O
+Vzov9Am6/EQuwZX34/39COWBYdTg/Tf2KpaUIbGc1I/oSKXX90uBN6fHJqnL03os
+87QEtbLNg7J4lXUcNNOsW5YKEz7BiwOcLhKNNEHbT3bot1BkCUYZsSLl+y8cJ5ZV
+mtlTxxHjMNx79V7fKfCVyuRVV7fI1YQ9ib0=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C15
+PeerKey=KAS-ECC-CDH_B-571_C15-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=05c638349000ec30881cd190c067e7f12b6b42d5842a8285a8ff0dc7e9c9eaf483309e48314fdc2ce7f9da6a468e549c8e70a50b68d07aee29708a98172209e5cd2e8c09cb66d982
+
+PrivateKey=KAS-ECC-CDH_B-571_C16
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAYazHOSQx/KPJ5MH
+WkrmRayznnH/6UTuYr+CWH8cPL4ojOYCTY0DXxB9mk+u1Xp7Ie4dbnEpoJgATyLM
+1SdAwDSm3ze1PQcyoYGVA4GSAAQGsV8ahZ49gJJGEbIMG5Tf9r0FdP74GTfx5U0U
+jS0x+MIbDqnOAxyUVXBvCFpp/UkkGFWMfemq3CyamW5+0f7aMpx9dgm7ayIDKRBU
+TLE24sKaozVyqmw0caUuvKayKL7nSfqf/ikpakpbaqDG3J8JUhbnsVE9gcugB5Sj
+9Vj3ShtUHHOyMI9PjnQCi1wrzfM=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C16-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQGsV8ahZ49gJJGEbIMG5Tf9r0FdP74
+GTfx5U0UjS0x+MIbDqnOAxyUVXBvCFpp/UkkGFWMfemq3CyamW5+0f7aMpx9dgm7
+ayIDKRBUTLE24sKaozVyqmw0caUuvKayKL7nSfqf/ikpakpbaqDG3J8JUhbnsVE9
+gcugB5Sj9Vj3ShtUHHOyMI9PjnQCi1wrzfM=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C16:KAS-ECC-CDH_B-571_C16-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C16-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQCmEtlMHTDaiWa2VbVVWUSwscx+lDy
+AF0ASanZd95cALegVMlgzdcHiWMhSQvkM71e/9RMVk6qLVAhF1BQxb/BY82x6B3x
+M1oBp4bSkJizNPXBxK6GpBvydcxnh9pyBpFlV6T0MxkhQQNFZ+BB1V15SncHx6ry
+iELVyPWQN1pDZWkYqoDlWwKFNHzOj/4fFeg=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C16
+PeerKey=KAS-ECC-CDH_B-571_C16-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=007a40a59b6632156a43158565a4eeaf80618e501c5ac5afdab4ce3cb76ac99a0bcd17e9eec549373ace8c96aac78e2af6600483a2c49ec81298a083d5237118de96a953999beb26
+
+PrivateKey=KAS-ECC-CDH_B-571_C17
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIA0H46GGC3k/D9DhX
+JQqSmkGZTTMdoVTAJJ+g0cJqbeDoNfoIqMxSTj2sKGOD+QvS9NLHUULx04EI2cBi
+FDyObtu9oK+Hp2rVoYGVA4GSAAQCxcXrcydAJnJXPDe0kokDQ6tCK1G8ZbYAdm7B
+0HkI/wO8/edpTYMrzeUpRjOd8Kq0B0rgeon4IfWhEw0rc9sMQjrnoCOuLBgEdu09
+vZNtHDaYekNRLI8FYuMWEi0Fp+3U5CSJhMEfbrhSFdWqoCYqlfIGZsnb9FJIrhd9
+Lf/6OmqVBTMpi1w/Shti2h6vzVE=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C17-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQCxcXrcydAJnJXPDe0kokDQ6tCK1G8
+ZbYAdm7B0HkI/wO8/edpTYMrzeUpRjOd8Kq0B0rgeon4IfWhEw0rc9sMQjrnoCOu
+LBgEdu09vZNtHDaYekNRLI8FYuMWEi0Fp+3U5CSJhMEfbrhSFdWqoCYqlfIGZsnb
+9FJIrhd9Lf/6OmqVBTMpi1w/Shti2h6vzVE=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C17:KAS-ECC-CDH_B-571_C17-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C17-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQBqGguCezNGGjaICkWpWHuhRPA1zRw
+zTQa7nntk1VqOm58eyAwLsdKDFFwqON9eKm10N45AOsqZjpyR895Q/04HZWzqv0V
+YWcFL+zGj3aV1OQaCAxHZQ0gKHTaFjoXSOVQNzlY4xvQquUgmW0w84RzD0hU9eVO
+aMwklYrcUuKkxAc1ZRTz6nFmBW3Gfk0Rj6g=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C17
+PeerKey=KAS-ECC-CDH_B-571_C17-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=021fd2726973405fc30d2a1f2115907cbd0de90bb6bcb0496452e389b1b10ccf38e2400617040cf0dbb188f345337678b0ad8603dcfe926582d4321f384daec0943e2cd267f48343
+
+PrivateKey=KAS-ECC-CDH_B-571_C18
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAgenOC2KIlcSJuDA
+bCaB0JvKGbXbfnu/wTrCCDid+BaNd2FeMMqGEDk25T3ZrwHN/iT1COxgk5l3XOhM
+hon41flvZS4BTg3ooYGVA4GSAAQEYI3AUSvFXHNM1WKsWCX3yji3k/js6bmBzBxA
+Mt3YA5Fk0MZGtCsv1FO1odOnSuI8MsfVhAB948004zEhuQ+rOtpmIbOsl4UGqp/7
+/WXFCTcIRnB2dKxyPawkpvM6Hgu834skujLPe97I/ckjO3V7wHPWTe30hMb6Ae8o
+6HT7DTT1iw4ysYZFwwvctRbuOEE=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C18-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQEYI3AUSvFXHNM1WKsWCX3yji3k/js
+6bmBzBxAMt3YA5Fk0MZGtCsv1FO1odOnSuI8MsfVhAB948004zEhuQ+rOtpmIbOs
+l4UGqp/7/WXFCTcIRnB2dKxyPawkpvM6Hgu834skujLPe97I/ckjO3V7wHPWTe30
+hMb6Ae8o6HT7DTT1iw4ysYZFwwvctRbuOEE=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C18:KAS-ECC-CDH_B-571_C18-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C18-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQCza8TmgzaKADWESj/5NcyOzSg/PSM
+lABHn/TIKRy/RvFsQeRAmq7fFLxgpkKy17qs3o4AUd2K4Bv1rS5uZJDHfNQGqZnF
+ZeYHjt0p22o7h6EVBbV8VD/7dGpbQPuD1yBhgPOun8siLFQRp3R2Zgx7MRtkYxCQ
+WImpWg8v3DXTD8YcxVYKKRQjLWKtNjhrkXk=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C18
+PeerKey=KAS-ECC-CDH_B-571_C18-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=07a47bdc7d54ecd391672f131b3214d0efc4d40195db1ec993a62fe9da875efff5403bd708fa491a01a94f4bddc7d516baffff9fbdd213ca1a4905f9aa679d65da25c0f1fd2afb0a
+
+PrivateKey=KAS-ECC-CDH_B-571_C19
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAGuo8SzG4OeN+Mxi
+mISKdAAl5yxi0JnpJYSsdvWVrB/HJMsGqFoH8NRED6893qLyZfIBXdBZoWoDopkV
+uHMdYEUSzu8iuEHzoYGVA4GSAAQGNvQ16AYAZmEIc3MAdzqO1v+o6/gwfIH/X0Q1
+PpG60IYzG4/v8/HNuG4GG95fccX7k48RfiImqX0rZrCY6f9SUYLIFucCxqkBwb2K
++uapQQj8LHVdXeP6Kks0cfwqXN9K3aaFKb8YD/KNsVSrQxEkezkuk6M1u+h5Zgi7
+1gE/Q83MhG7CImdCPDz9os6KPZY=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C19-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQGNvQ16AYAZmEIc3MAdzqO1v+o6/gw
+fIH/X0Q1PpG60IYzG4/v8/HNuG4GG95fccX7k48RfiImqX0rZrCY6f9SUYLIFucC
+xqkBwb2K+uapQQj8LHVdXeP6Kks0cfwqXN9K3aaFKb8YD/KNsVSrQxEkezkuk6M1
+u+h5Zgi71gE/Q83MhG7CImdCPDz9os6KPZY=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C19:KAS-ECC-CDH_B-571_C19-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C19-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQABRUS5KDbxTXJe+EP+nQldYOCiDBA
+RmYB1TkbyzWCwRUlKTJJ8kSXzIByFrNMksHgdXgcg5HD9tPRT4ih1Q6p/HX/jVHM
++TMDnaRsrIZqs0dhesWotPFlcDTjuN22a8QnPi4c4BZB7OY2l53oskktxp6IU3w2
+scOtDTUif4Z+Q9+ciRfc6fjB7zujy1youlI=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C19
+PeerKey=KAS-ECC-CDH_B-571_C19-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=07326196a7decc92c81ae5a0779c9a42f53d94cfa4c3a13f19dbb554138e0e864eee6bc93e39214e2f74705a4b172aab510444c93b5b3e62517bbb7279337102db1c61de349d9747
+
+PrivateKey=KAS-ECC-CDH_B-571_C20
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAQcW8ud08n9C3j9s
+lpTY7KIXmCMJHSAvK6FikZOhyYcAaTOY/8gxV/fOSFjnU145kNIZvCSd4WRVjKyA
+fuFZd4oBLaGeUBK/oYGVA4GSAAQBULOt3hYqfwk1Daz0YEGf6GuZ3NlPRCg/uj5D
+0oG5O7VCgoEs5SJlqUg4lo1nqdbs3BtstkzxWUUhxHSepD2OTsBF5kX/I4sHtDMh
+thGLh8Rse1IojfXdHPfaYYPs5WM7TBfK42LYIRkffVeSOSgzmq332F9/Gd6UhnCe
+TS3e9CxVu012o8tQytKgmOrVlSo=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C20-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQBULOt3hYqfwk1Daz0YEGf6GuZ3NlP
+RCg/uj5D0oG5O7VCgoEs5SJlqUg4lo1nqdbs3BtstkzxWUUhxHSepD2OTsBF5kX/
+I4sHtDMhthGLh8Rse1IojfXdHPfaYYPs5WM7TBfK42LYIRkffVeSOSgzmq332F9/
+Gd6UhnCeTS3e9CxVu012o8tQytKgmOrVlSo=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C20:KAS-ECC-CDH_B-571_C20-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C20-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQATC3lZCQxvMbrgu/UNVVAqLXSOxKw
+330xrWlCW5RUmHdEPujdfAnPu+2G8TZlkx1LKiF1nDPhC0rPxjuh72GsqqGMlOPP
+yTMBdlt6N+uAbUMZbSkx2hoZU3QtPg2nzLZ+Df26XgNJFMzj7mOTv95AZw9AYZYG
+faiyk8aENZPdIhyJv5eWNna9BE6MirjnF60=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C20
+PeerKey=KAS-ECC-CDH_B-571_C20-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=059052d3e1c66efa4b7dd39e74299e886367d8fe49d7cab90e4f051bec10316438fb29b1290dfdaec169decd622a1010cf0a0275008814f4861b4d83ba78515a8768d978be430011
+
+PrivateKey=KAS-ECC-CDH_B-571_C21
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAdAQP8eUivEH5R9N
+LMA5K2aAgFnR8my6Bb5qOB9SLUy4VBN5NKzNHOozYJSOQG0xCMlDdp3HALTJzAzB
+2EurWKNeJ+skBHXwoYGVA4GSAAQBK9qN7T7X6LbTm1hVpY1yW2XjhXwqZ0mW6zk6
+Pj+RWVu/qHJTpW66wrEO1Aavnb/1OyImX761p2nKzitgtF2/l87tKwoE21ACZFSC
+fv4psySuPy1MDco6OpVJFRHFMWRaz1RbRe9qxKUMCdPSHyE8p2uW+xgkLsvgivaH
+Vd5OEHcXNHWCbqq+0mp1w2nNew8=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C21-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQBK9qN7T7X6LbTm1hVpY1yW2XjhXwq
+Z0mW6zk6Pj+RWVu/qHJTpW66wrEO1Aavnb/1OyImX761p2nKzitgtF2/l87tKwoE
+21ACZFSCfv4psySuPy1MDco6OpVJFRHFMWRaz1RbRe9qxKUMCdPSHyE8p2uW+xgk
+LsvgivaHVd5OEHcXNHWCbqq+0mp1w2nNew8=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C21:KAS-ECC-CDH_B-571_C21-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C21-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQCUDig5yrowW424+O1BO1zQe9wm5/s
+i+kBdzRtdsp7xxM9DsKArPBmAFxcwQtSqmVDNf6CCmYX5WDicJA/8cLMivE5jyTf
+4rADEHTKOTGAGmrLdltukUQXLtgdmZ7Z6DW9NVJrA+8qE/eDdgMrDrgUbCMTI2X8
+4Xany9ykSzWqN5hZ9oisJtxkyBSaQyLQg9E=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C21
+PeerKey=KAS-ECC-CDH_B-571_C21-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=03acfa4b3d1c2a6b62af23bdff6a215a416d4437ce6cc114d17dc4201195987a5d7301da11b913254702d7172e31d64e59b24deaa3270f20445e51dc484f7a2b8c3cbeb0bb9efb28
+
+PrivateKey=KAS-ECC-CDH_B-571_C22
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAy0vVX/ke40oD2gu
+JP2mJ916WOmwCCKjqvbregFPR2wXlBrcXiI4owgNcG8eFqRRt+kpQneZMMVnCkcy
+gcrHi4WNHxzJmwr/oYGVA4GSAAQEDzEw50scjrJl58TmkhQR65cUGCZ+jeqHnC6L
+Vjhk8jphsjQiyaBvoXiooVXj54RXWXWH8+NbefGdDC4YWu9G25WBnL4SexAByR0n
+wq5xE+sDvpjpTTrW3seR+sL+DSyMmLcTcbBYpkn6nD+jzNu6kyOVwnr/og2VrAQb
+yZeOP1MIKaLGTImxvM6sBoVPuQM=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C22-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQEDzEw50scjrJl58TmkhQR65cUGCZ+
+jeqHnC6LVjhk8jphsjQiyaBvoXiooVXj54RXWXWH8+NbefGdDC4YWu9G25WBnL4S
+exAByR0nwq5xE+sDvpjpTTrW3seR+sL+DSyMmLcTcbBYpkn6nD+jzNu6kyOVwnr/
+og2VrAQbyZeOP1MIKaLGTImxvM6sBoVPuQM=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C22:KAS-ECC-CDH_B-571_C22-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C22-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQBvf/9acLgj7A8hT7y69CI5o0jP9uV
+8LJG3nlV1hUHff0LD/AsZNAd55M1kJa4XgV7G3+fWSYtwnV/GCQ+GC4aC/6dy7An
+1osCGL59lWAp8TnBnS2jRnc7FtevyFirjctg1+SErs7DCcs/6pavOQNjfl2022eL
+tdubCxjYPPnrwbGq8k9DZ+xTNoTOnVZYLUM=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C22
+PeerKey=KAS-ECC-CDH_B-571_C22-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=067a58e5b3287bb9aa83ed9ca2d718cf7165fb574b6a446c3019849cd1584673d561b574bc8f68419437c5e8113e060847cad3b5ddc2f67ad75bc1e3f04554e63a5e4945cfcb65f5
+
+PrivateKey=KAS-ECC-CDH_B-571_C23
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIA+7ikZaovnDrOjEE
+ZAWcwMTELxNIerGgdiwsvjBOvmNQPmxwaKf0vBl/gfZbQpXBSyEPPLI3i2dAH89S
+vsAsE7YbbeFOG35boYGVA4GSAAQBd6zF/p9C9N4tJ6ub9vfg6s4wPCZv+LNGkIKr
+qTZ+ZkQL1rG9i24a7JK2XjWuqPAH8J1M1n7qXWAAc2yru53MyUPrtWVqBYYHFvGJ
+jiqMJzGd56JpjyHV3likuLjdArXkMxENOXf+6OxcCJ0XCvAqStPB+rRLDR4qO+up
+4HGc2L+DZEeNaGxONfdFfSTQIdY=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C23-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQBd6zF/p9C9N4tJ6ub9vfg6s4wPCZv
++LNGkIKrqTZ+ZkQL1rG9i24a7JK2XjWuqPAH8J1M1n7qXWAAc2yru53MyUPrtWVq
+BYYHFvGJjiqMJzGd56JpjyHV3likuLjdArXkMxENOXf+6OxcCJ0XCvAqStPB+rRL
+DR4qO+up4HGc2L+DZEeNaGxONfdFfSTQIdY=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C23:KAS-ECC-CDH_B-571_C23-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C23-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQAj8O0FPNBK0A/AcJTvSImFQIl3aqz
+TSAQifSdeeXcwuO2ghb6pm2sRFKcf+O6TSjYFbCII1lVcTu3chODUztdlCIbTtHh
+YrgCsyIB3icrGzK2pqWOoiQRxI9dxc8PlYcuZ1HtYizuzqIqVWl13mADhpriCvOb
+QrqIcXicgujzrTz2AG9DvEx9QQIDLEP495c=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C23
+PeerKey=KAS-ECC-CDH_B-571_C23-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=06b272ca3330c0cdfbe60a1746bc0ddea6257536cdd8e976f2517eb541460a3f0e6ea7fec2b495e0f57712c8cac35e8a7d64d876c29851bbfeb6fe726d57e0be43dc76a584ef9c93
+
+PrivateKey=KAS-ECC-CDH_B-571_C24
+-----BEGIN PRIVATE KEY-----
+MIIBAAIBADAQBgcqhkjOPQIBBgUrgQQAJwSB6DCB5QIBAQRIAWmi2HWGlEwxc7+a
+InXjCAAD22SMLR4cVuLDfODXzZ+Bjqa3u6ND93TvDzNOpcEu8L51k9BO2UVFjXHh
+cRLrAdkEHSEzsTRzoYGVA4GSAAQFHlIXZCZa9/AbzZw/0CLf2y1KLFizsj0uVQMC
+xCqt1X0d9vwY5GW9mEQkle7SLz/WcAKEyfp4M7UWUUm44akeDgmaClcy1cIBmOfn
+0JTiB1KMWDhl0mKpGPwqOSYelcB9y9BE79OYGJkHivPrlzmCAaRlDw3Mvxn5Isjb
+w4Ob9r4AU/hFMccYQ6nmoQKrWNY=
+-----END PRIVATE KEY-----
+
+PublicKey=KAS-ECC-CDH_B-571_C24-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQFHlIXZCZa9/AbzZw/0CLf2y1KLFiz
+sj0uVQMCxCqt1X0d9vwY5GW9mEQkle7SLz/WcAKEyfp4M7UWUUm44akeDgmaClcy
+1cIBmOfn0JTiB1KMWDhl0mKpGPwqOSYelcB9y9BE79OYGJkHivPrlzmCAaRlDw3M
+vxn5Isjbw4Ob9r4AU/hFMccYQ6nmoQKrWNY=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = KAS-ECC-CDH_B-571_C24:KAS-ECC-CDH_B-571_C24-PUBLIC
+
+
+PublicKey=KAS-ECC-CDH_B-571_C24-Peer-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQFZagplNfm9T7ra/Z1I+5oD/t3ARhn
+PD4VwyAObI0fJsq68AwdpI5jdDFkl8ul8Z8XQg8mdjP0DlsGNieJv/Ea31ltWxz3
+aO8Bay1Nqsqca+2XayBk71Q1KliuNDZ4NaYhDhV4KRwd6NZ8ILw9b/piDIezCYor
+nzq7jSys1bLuK2g5nqxOj2XOvdZjAP0Em1s=
+-----END PUBLIC KEY-----
+
+
+Derive=KAS-ECC-CDH_B-571_C24
+PeerKey=KAS-ECC-CDH_B-571_C24-Peer-PUBLIC
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=02da266a269bdc8d8b2a0c6bb5762f102fc801c8d5394a9271539136bd81d4b69cfbb7525cd0a983fb7f7e9deec583b8f8e574c6184b2d79831ec770649e484dc006fa35b0bffd0b
+
+# for cofactor-order points, ECC CDH (co-factor ECDH) should fail. Test that.
+
+PrivateKey=ALICE_cf_sect283k1
+-----BEGIN PRIVATE KEY-----
+MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAHtPwRfQZ9pWgSctyHdt
+xt3pd8ESMI3ugVx8MDLkiVB8GkCRoUwDSgAEA+xpY5sDcgM2yYxoWOrzH7WUH+b3
+n68A32kODgcKu8PXRYEKBH8Xzbr974982ZJW1sGrDs+P81sIFH8tdp45Jkr+OtfM
+8uKr
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect283k1_PUB
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEA+xpY5sDcgM2yYxoWOrzH7WUH+b3n68A
+32kODgcKu8PXRYEKBH8Xzbr974982ZJW1sGrDs+P81sIFH8tdp45Jkr+OtfM8uKr
+-----END PUBLIC KEY-----
+
+PublicKey=BOB_cf_sect283k1_PUB
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = ALICE_cf_sect283k1:ALICE_cf_sect283k1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect283k1
+PeerKey=BOB_cf_sect283k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result = DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title = Test keypair mismatches
+
+PrivPubKeyPair = Alice-25519:Bob-25519-PUBLIC
+Result = KEYPAIR_MISMATCH
+
+PrivPubKeyPair = Bob-25519:Alice-25519-PUBLIC
+Result = KEYPAIR_MISMATCH
+
+PrivPubKeyPair = Alice-448:Bob-448-PUBLIC
+Result = KEYPAIR_MISMATCH
+
+PrivPubKeyPair = Bob-448:Alice-448-PUBLIC
+Result = KEYPAIR_MISMATCH
+
+PrivPubKeyPair = Alice-25519:P-256-PUBLIC
+Result = KEYPAIR_TYPE_MISMATCH
+
+PrivPubKeyPair = Alice-448:P-256-PUBLIC
+Result = KEYPAIR_TYPE_MISMATCH
+
+PrivPubKeyPair = RSA-2048:P-256-PUBLIC
+Result = KEYPAIR_TYPE_MISMATCH
+
+PrivPubKeyPair = RSA-2048:KAS-ECC-CDH_K-163_C0-PUBLIC
+Result = KEYPAIR_TYPE_MISMATCH
+
+PrivPubKeyPair = Alice-25519:KAS-ECC-CDH_K-163_C0-PUBLIC
+Result = KEYPAIR_TYPE_MISMATCH
+
+PrivateKey = RSA-2048-BIS
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCytEHg4qzeBrqu
+1haSf0xOttQeyburRKC4N4KJIbtQbooYS6M7C9mvXdz4vA7PtgXS6L4gDTH2Bpa5
+qvbAYQ7CbmssmkciN/bqxMqecsuN49uMRF2Yy40UYCKv+wv6fGbCsrczDc5kfRu2
+XzKHewAKF9EZYkKLNfLjT+jQAogdfmnShDQPWus7t+9RbuZPrg/iz/urQGfTEarW
+8yFl6jJd88cjASrGCCxTCL2BLuimLrSauF/Na9K1Jmxst+lqXKhf4YYtf5ARgDBn
+oOfZl24ts9twBXD6hjfhVh3wOPJL3+EKOORBclHixQ47Kx9ermb6hQDv0AyRoXyp
+6Jy7gkLxAgMBAAECggEAeDWjXxh7+nqCV5ux4Wf6N7Tqqa9AK6xlhKXqjD6Bl1BU
+WpV+vvhwvXOhcjxmpjimYEKpqjvWEM5L06d6htyDJi1KsN0y3oTQ9wnb1owX+2F8
+TTWr1F2QkFU+4Cw62YuXQH8hlxlBbf1uh9Yv0kzeMOvmf3HGm4h104zsaghZ8aP4
+Tmmeqnc+ty3iQkjDLIXEaHYIZ1AZ7fzc/rc6kbkWGkVAgCP1CDIm3q586OZDQz0E
+hgLhWHgJQ5Z2m9Qw/hROJeesKHtq19GFafIBANDelB/yG8p+dCqPQsg6nm24jAHO
+pT1EipOWwLnsTBsa9BlcCYeBpqNIPV4ST+X4Que59QKBgQDjublne/+/i7dQLpCT
+01fzbkDEIV2s7jVpEz0imzT6HXIeHBpOmS7GHlurN7WLUcbB5QUEgzNxA08x80o1
+oU9b/jUpFBJRudyIKX8aSBVSInOXw1eQNjkqBZdUVN1ADeS/HYRYnPhIB4w31XgJ
+ujc9udPtn2GqWfKXrG5abfXfdwKBgQDI5GJ/8kh4nxtC7SvcJNfbRtC/03f0vJQj
+600vCU8X+wkk1EMtnHU/A/oOhZey/zdc03h3UuwznOER8KWLB8/XidRZnT9NgMGb
+sO7sNPyTfMep+jLcolv1SAThjQxAVxCkvl87GFGvGnBCTtLWMEWpazl8XH+aHgyn
+1NU/VJqa1wKBgD5Nb6YaTKwRA4QSWUe4SJW3Ek0We9R2D3LB6rXvFJ1hNPl74s6i
+JiPZ5mZ/hVGqe+BMUgUcCBThPOeDkkf97AJVGCI29ZQab3VpNPbxxbOE7W8V6Hzx
++M3AXdiapzWBF5YZ8z1zJJJATmJwKrkukzJ2Br86HbRHi5FngYGIF/6dAoGAE/32
+d3krESX0VpK3vK7F9IJ1n8FxvJ9Ptsth4P5yKpbG8C1XiiB54o2Iww00bZHMdqZs
+5KMR8oj4NQrXzqA2ZOLIiSqG9DWODupqvIMBZ8QRMq89hIt7z0sdgTzCLVz8wQhY
+/c6LwntFFLQ3cy1WoWeUTvX9lN7Mr58UobrPr/0CgYEA31WYhr/TH7sBG5tlUvuK
+1KYMRwh1HR3lMnuCzAFOEtIJhSG/GtWyPtlYzYWvYGEukBO5+QSoB9K+jNEm6tNw
+mRsMet399ylSQMkmPIfXldQvDF/9AvXBCR+EttZDr2Dw0Haeu4PGwT3WgqGHDWz5
+vOpxAsEe+k0AI8MnJvlO8uw=
+-----END PRIVATE KEY-----
+
+PublicKey = RSA-2048-BIS-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsrRB4OKs3ga6rtYWkn9M
+TrbUHsm7q0SguDeCiSG7UG6KGEujOwvZr13c+LwOz7YF0ui+IA0x9gaWuar2wGEO
+wm5rLJpHIjf26sTKnnLLjePbjERdmMuNFGAir/sL+nxmwrK3Mw3OZH0btl8yh3sA
+ChfRGWJCizXy40/o0AKIHX5p0oQ0D1rrO7fvUW7mT64P4s/7q0Bn0xGq1vMhZeoy
+XfPHIwEqxggsUwi9gS7opi60mrhfzWvStSZsbLfpalyoX+GGLX+QEYAwZ6Dn2Zdu
+LbPbcAVw+oY34VYd8DjyS9/hCjjkQXJR4sUOOysfXq5m+oUA79AMkaF8qeicu4JC
+8QIDAQAB
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = RSA-2048-BIS:RSA-2048-BIS-PUBLIC
+
+PrivPubKeyPair = RSA-2048-BIS:RSA-2048-PUBLIC
+Result = KEYPAIR_MISMATCH
+
+PrivateKey = DSA-1024-BIS
+-----BEGIN PRIVATE KEY-----
+MIIBSwIBADCCASwGByqGSM44BAEwggEfAoGBAO0SwRpkAeM21qSM5ch4CLEHpFk419R5ve1UUr42
+1y3HEUURsrVpxYKvyx8aOBQC/akz95cYxNN3y1JnJJMxPklhdJrJf/WDYPxjMk8BqNJmeZtLuCVL
+KGwQomuo7ZkG955WRyLHYEdQ6uC7K2QTPKpW6psFYFaDYjAjSEKk2MFxAhUAykDkKLZdhPWzwM8/
+qYaE31VmWz0CgYEApNVF8oFK41ezQci9XbSZJHyPB+3jML1YQkHxiiInaIz6GEFtjUbIUEYA/ovY
++6ECNI1aIDHTd7CHwoS0mp33oQYs43nt29B6UwbtMmbzCOQ9vGGwWVho+JtHyyPWrDuLmkvLtoQP
+axYt6PVa3gncr2v3njcVuH+EQ6DuFR93zksEFgIUFQFshP0hj7i6ClXkSPYoFW6KrIY=
+-----END PRIVATE KEY-----
+
+PublicKey = DSA-1024-BIS-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MIIBtzCCASwGByqGSM44BAEwggEfAoGBAO0SwRpkAeM21qSM5ch4CLEHpFk419R5
+ve1UUr421y3HEUURsrVpxYKvyx8aOBQC/akz95cYxNN3y1JnJJMxPklhdJrJf/WD
+YPxjMk8BqNJmeZtLuCVLKGwQomuo7ZkG955WRyLHYEdQ6uC7K2QTPKpW6psFYFaD
+YjAjSEKk2MFxAhUAykDkKLZdhPWzwM8/qYaE31VmWz0CgYEApNVF8oFK41ezQci9
+XbSZJHyPB+3jML1YQkHxiiInaIz6GEFtjUbIUEYA/ovY+6ECNI1aIDHTd7CHwoS0
+mp33oQYs43nt29B6UwbtMmbzCOQ9vGGwWVho+JtHyyPWrDuLmkvLtoQPaxYt6PVa
+3gncr2v3njcVuH+EQ6DuFR93zksDgYQAAoGAdZCPYZ9WvtKW7dFvbEjl0HHBxLNX
+8kV1/FAxsDrQd+c8mWdruNzcmwsZJklJuTK9czKnXgLmkRHR20I4oNrJ/bptV8lV
+iDvJBJlmZ1aGh6yLIHzYBbgbgia3lBrFlO5qUxNmbNeiC+HIqUvlVBmQOLN6+Xjn
+Q4A0wDK8dmF2dFI=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair = DSA-1024-BIS:DSA-1024-BIS-PUBLIC
+
+PrivPubKeyPair = DSA-1024:DSA-1024-BIS-PUBLIC
+Result = KEYPAIR_MISMATCH
+
+PrivPubKeyPair = DSA-1024-BIS:DSA-1024-PUBLIC
+Result = KEYPAIR_MISMATCH
+
+Title = DigestSign and DigestVerify
+
+DigestSign = SHA1
+Key = RSA-2048
+Input = "Hello World"
+Output = 3da3ca2bdd1b23a231b0e3c49d95d5959f9398c27a1e534c7e6baf1d2682304d3b6b229385b1edf483f5ef6f9b35bf10c519a302bb2f79c564e1a59ba71aa2fa36df96c942c43e8d9bd4702b5f61c12a078ae2b34d0de221fc8f9f936b79a67c89d11ba5da8c63a1370d0e824c6b661123e9b58b143ff533cf362cbdad70e65b419a6d45723bf22db3c76bb8f5337c5c5c93cb6f38b30d0c835b54c23405ca4217dd0b755f3712ebad285d9e0c02655f6ce5ce6fed78f3c81843de325f628055eef57f280dee0c3170050137ee599b9ab7f2b5d3c5f831777ea05a5eb097c70bad1a7214dadae12d7960bb9425390c7d25a79985e1e3c28ad422ff93c808f4b5
+
+DigestSign = SHA256
+Key = RSA-2048
+Input = "Hello World"
+Output = ba8c24b86f18633767ed1778ef12d283a508d0bef32dd50b4a67cbd6b75df0f4ef6e69bfafbc809b01b93ab34aad9a33908644efca6eca04db1afda1016d1c1603183d2263597cf85ce5b7acd6a4872cbcc401b90b221d85aa0a2d0e1f159fc0843e0a55c47dc108c3f207d000e954605fabbb8c938050f280e29653aa1438109d02e53dfbdcb8cb9b46d372dd39ba7317a3f4c0020dba1ddd247b3d58addb1df7208785a62a8e3e4372c1fa6d24a17cd6413f7f5c046ba40a881c21875fde848b3b56fea7264430eca15b27c5c3b72fedcbcc124f8d939ffc11e6d3172c7eb491d378902093fcc3bf3a2835a1fcfabf457c13abf7b37f08595ed72332e27034
+
+DigestSign = SHA256
+Key = RSA-2048
+Input = "Hello "
+Input = "World"
+Output = ba8c24b86f18633767ed1778ef12d283a508d0bef32dd50b4a67cbd6b75df0f4ef6e69bfafbc809b01b93ab34aad9a33908644efca6eca04db1afda1016d1c1603183d2263597cf85ce5b7acd6a4872cbcc401b90b221d85aa0a2d0e1f159fc0843e0a55c47dc108c3f207d000e954605fabbb8c938050f280e29653aa1438109d02e53dfbdcb8cb9b46d372dd39ba7317a3f4c0020dba1ddd247b3d58addb1df7208785a62a8e3e4372c1fa6d24a17cd6413f7f5c046ba40a881c21875fde848b3b56fea7264430eca15b27c5c3b72fedcbcc124f8d939ffc11e6d3172c7eb491d378902093fcc3bf3a2835a1fcfabf457c13abf7b37f08595ed72332e27034
+
+DigestSign = SHA256
+Key = RSA-2048
+Input = "Hello "
+Input = "World"
+Ctrl = rsa_padding_mode:pss
+Ctrl = rsa_pss_saltlen:0
+Output = 4a35cc7623f176c997696213045024f1b1121a6ec4a5755d206c20fc4a7c5259566d19730f6f1a75ac00878c6290e6757510588d740da3633b09a1d899c7dfba2031cfcae6a490e995c87f4750ea88948009cbed6c80cebb9ebfab7d04805e7a2140373fb888b5e6151d1c4eb7f505c4e0a584c17c6ca71e552ba13e1f20101796fe0d1af0cde661fc47d904b5d3f127073471fe6dc7e78f5cd2a049d67e0c7c92184e2bf97f8e16b50b8385daa1f8882e8f6c8683720903454b35356058f2f0136cad7689105167bacbe0dbad466ff2a298e41e5a65caecac4cde08529b7ea8717258e19b0732c966b34f5d52e4ec3073da78757471086553a3ff6c5460bcda
+
+DigestVerify = SHA256
+Key = RSA-2048-PUBLIC
+Input = "Hello "
+Input = "World"
+Output = ba8c24b86f18633767ed1778ef12d283a508d0bef32dd50b4a67cbd6b75df0f4ef6e69bfafbc809b01b93ab34aad9a33908644efca6eca04db1afda1016d1c1603183d2263597cf85ce5b7acd6a4872cbcc401b90b221d85aa0a2d0e1f159fc0843e0a55c47dc108c3f207d000e954605fabbb8c938050f280e29653aa1438109d02e53dfbdcb8cb9b46d372dd39ba7317a3f4c0020dba1ddd247b3d58addb1df7208785a62a8e3e4372c1fa6d24a17cd6413f7f5c046ba40a881c21875fde848b3b56fea7264430eca15b27c5c3b72fedcbcc124f8d939ffc11e6d3172c7eb491d378902093fcc3bf3a2835a1fcfabf457c13abf7b37f08595ed72332e27034
+
+DigestVerify = SHA256
+Key = RSA-2048-PUBLIC
+Input = "Hello"
+Input = "World"
+Output = ba8c24b86f18633767ed1778ef12d283a508d0bef32dd50b4a67cbd6b75df0f4ef6e69bfafbc809b01b93ab34aad9a33908644efca6eca04db1afda1016d1c1603183d2263597cf85ce5b7acd6a4872cbcc401b90b221d85aa0a2d0e1f159fc0843e0a55c47dc108c3f207d000e954605fabbb8c938050f280e29653aa1438109d02e53dfbdcb8cb9b46d372dd39ba7317a3f4c0020dba1ddd247b3d58addb1df7208785a62a8e3e4372c1fa6d24a17cd6413f7f5c046ba40a881c21875fde848b3b56fea7264430eca15b27c5c3b72fedcbcc124f8d939ffc11e6d3172c7eb491d378902093fcc3bf3a2835a1fcfabf457c13abf7b37f08595ed72332e27034
+Result = VERIFY_ERROR
+
+DigestVerify = SHA256
+Key = P-256-PUBLIC
+Input = "Hello World"
+Output = 3046022100e7515177ec3817b77a4a94066ab3070817b7aa9d44a8a09f040da250116e8972022100ba59b0f631258e59a9026be5d84f60685f4cf22b9165a0c2736d5c21c8ec1862
+
+# Invalid digest
+DigestVerify = MD5
+Key = P-256-PUBLIC
+Result = DIGESTVERIFYINIT_ERROR
+
+# Oneshot tests
+OneShotDigestVerify = SHA256
+Key = P-256-PUBLIC
+Input = "Hello World"
+Output = 3046022100e7515177ec3817b77a4a94066ab3070817b7aa9d44a8a09f040da250116e8972022100ba59b0f631258e59a9026be5d84f60685f4cf22b9165a0c2736d5c21c8ec1862
+
+OneShotDigestSign = SHA1
+Key = RSA-2048
+Input = "Hello World"
+Output = 3da3ca2bdd1b23a231b0e3c49d95d5959f9398c27a1e534c7e6baf1d2682304d3b6b229385b1edf483f5ef6f9b35bf10c519a302bb2f79c564e1a59ba71aa2fa36df96c942c43e8d9bd4702b5f61c12a078ae2b34d0de221fc8f9f936b79a67c89d11ba5da8c63a1370d0e824c6b661123e9b58b143ff533cf362cbdad70e65b419a6d45723bf22db3c76bb8f5337c5c5c93cb6f38b30d0c835b54c23405ca4217dd0b755f3712ebad285d9e0c02655f6ce5ce6fed78f3c81843de325f628055eef57f280dee0c3170050137ee599b9ab7f2b5d3c5f831777ea05a5eb097c70bad1a7214dadae12d7960bb9425390c7d25a79985e1e3c28ad422ff93c808f4b5
+
+Title = ED25519 tests from RFC8032
+
+PrivateKey=ED25519-1
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwBQYDK2VwBCIEIJ1hsZ3v/VpguoRK9JLsLMREScVpezJpGXA7rAMcrn9g
+-----END PRIVATE KEY-----
+
+PrivateKey=ED25519-2
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwBQYDK2VwBCIEIEzNCJso/5banbbDRuwRTg9bijGfNaumJNqM9u1PuKb7
+-----END PRIVATE KEY-----
+
+PrivateKey=ED25519-3
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwBQYDK2VwBCIEIMWqjfQ/n4N77bdELzHct7Fm04U1B28JS4XOOi4LRFj3
+-----END PRIVATE KEY-----
+
+PrivateKey=ED25519-4
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwBQYDK2VwBCIEIPXldnzxUzGVF2MPImh2uGyBYMxYO8ATdExr8lX1zA7l
+-----END PRIVATE KEY-----
+
+PrivateKey=ED25519-5
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwBQYDK2VwBCIEIIM/5iQJI3udYux3WHUgkR6adZzsHRl1W32pAbltyj1C
+-----END PRIVATE KEY-----
+
+PublicKey=ED25519-1-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MCowBQYDK2VwAyEA11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo=
+-----END PUBLIC KEY-----
+
+PublicKey=ED25519-2-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MCowBQYDK2VwAyEAPUAXw+hDiVqStwqnTRt+vJyYLM8uxJaMwM1V8Sr0Zgw=
+-----END PUBLIC KEY-----
+
+PublicKey=ED25519-3-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MCowBQYDK2VwAyEA/FHNjmIYoaONpH7QAjDwWAgW7RO6MwOsXeuRFUiQgCU=
+-----END PUBLIC KEY-----
+
+PublicKey=ED25519-4-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MCowBQYDK2VwAyEAJ4EX/BRMcjQPZ9DyMW6Dhs7/vyskKMnFH+98WX8dQm4=
+-----END PUBLIC KEY-----
+
+PublicKey=ED25519-5-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MCowBQYDK2VwAyEA7Bcrk61eVjv0kyxw4SRQNMNUZ+8u/U1k6/gZaDRn4r8=
+-----END PUBLIC KEY-----
+
+#Raw versions of the ED25519-1 keys
+PrivateKeyRaw=ED25519-1-Raw:ED25519:9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60
+
+PublicKeyRaw=ED25519-1-PUBLIC-Raw:ED25519:d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a
+
+PrivPubKeyPair = ED25519-1:ED25519-1-PUBLIC
+
+PrivPubKeyPair = ED25519-1-Raw:ED25519-1-PUBLIC-Raw
+
+OneShotDigestSign = NULL
+Key = ED25519-1
+Input = ""
+Output = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b
+
+PrivPubKeyPair = ED25519-2:ED25519-2-PUBLIC
+
+OneShotDigestSign = NULL
+Key = ED25519-2
+Input = 72
+Output = 92a009a9f0d4cab8720e820b5f642540a2b27b5416503f8fb3762223ebdb69da085ac1e43e15996e458f3613d0f11d8c387b2eaeb4302aeeb00d291612bb0c00
+
+PrivPubKeyPair = ED25519-3:ED25519-3-PUBLIC
+
+OneShotDigestSign = NULL
+Key = ED25519-3
+Input = af82
+Output = 6291d657deec24024827e69c3abe01a30ce548a284743a445e3680d7db5ac3ac18ff9b538d16f290ae67f760984dc6594a7c15e9716ed28dc027beceea1ec40a
+
+PrivPubKeyPair = ED25519-4:ED25519-4-PUBLIC
+
+OneShotDigestSign = NULL
+Key = ED25519-4
+Input = 08b8b2b733424243760fe426a4b54908632110a66c2f6591eabd3345e3e4eb98fa6e264bf09efe12ee50f8f54e9f77b1e355f6c50544e23fb1433ddf73be84d879de7c0046dc4996d9e773f4bc9efe5738829adb26c81b37c93a1b270b20329d658675fc6ea534e0810a4432826bf58c941efb65d57a338bbd2e26640f89ffbc1a858efcb8550ee3a5e1998bd177e93a7363c344fe6b199ee5d02e82d522c4feba15452f80288a821a579116ec6dad2b3b310da903401aa62100ab5d1a36553e06203b33890cc9b832f79ef80560ccb9a39ce767967ed628c6ad573cb116dbefefd75499da96bd68a8a97b928a8bbc103b6621fcde2beca1231d206be6cd9ec7aff6f6c94fcd7204ed3455c68c83f4a41da4af2b74ef5c53f1d8ac70bdcb7ed185ce81bd84359d44254d95629e9855a94a7c1958d1f8ada5d0532ed8a5aa3fb2d17ba70eb6248e594e1a2297acbbb39d502f1a8c6eb6f1ce22b3de1a1f40cc24554119a831a9aad6079cad88425de6bde1a9187ebb6092cf67bf2b13fd65f27088d78b7e883c8759d2c4f5c65adb7553878ad575f9fad878e80a0c9ba63bcbcc2732e69485bbc9c90bfbd62481d9089beccf80cfe2df16a2cf65bd92dd597b0707e0917af48bbb75fed413d238f5555a7a569d80c3414a8d0859dc65a46128bab27af87a71314f318c782b23ebfe808b82b0ce26401d2e22f04d83d1255dc51addd3b75a2b1ae0784504df543af8969be3ea7082ff7fc9888c144da2af58429ec96031dbcad3dad9af0dcbaaaf268cb8fcffead94f3c7ca495e056a9b47acdb751fb73e666c6c655ade8297297d07ad1ba5e43f1bca32301651339e22904cc8c42f58c30c04aafdb038dda0847dd988dcda6f3bfd15c4b4c4525004aa06eeff8ca61783aacec57fb3d1f92b0fe2fd1a85f6724517b65e614ad6808d6f6ee34dff7310fdc82aebfd904b01e1dc54b2927094b2db68d6f903b68401adebf5a7e08d78ff4ef5d63653a65040cf9bfd4aca7984a74d37145986780fc0b16ac451649de6188a7dbdf191f64b5fc5e2ab47b57f7f7276cd419c17a3ca8e1b939ae49e488acba6b965610b5480109c8b17b80e1b7b750dfc7598d5d5011fd2dcc5600a32ef5b52a1ecc820e308aa342721aac0943bf6686b64b2579376504ccc493d97e6aed3fb0f9cd71a43dd497f01f17c0e2cb3797aa2a2f256656168e6c496afc5fb93246f6b1116398a346f1a641f3b041e989f7914f90cc2c7fff357876e506b50d334ba77c225bc307ba537152f3f1610e4eafe595f6d9d90d11faa933a15ef1369546868a7f3a45a96768d40fd9d03412c091c6315cf4fde7cb68606937380db2eaaa707b4c4185c32eddcdd306705e4dc1ffc872eeee475a64dfac86aba41c0618983f8741c5ef68d3a101e8a3b8cac60c905c15fc910840b94c00a0b9d0
+Output = 0aab4c900501b3e24d7cdf4663326a3a87df5e4843b2cbdb67cbf6e460fec350aa5371b1508f9f4528ecea23c436d94b5e8fcd4f681e30a6ac00a9704a188a03
+
+PrivPubKeyPair = ED25519-5:ED25519-5-PUBLIC
+
+OneShotDigestSign = NULL
+Key = ED25519-5
+Input = ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f
+Output = dc2a4459e7369633a52b1bf277839a00201009a3efbf3ecb69bea2186c26b58909351fc9ac90b3ecfdfbc7c66431e0303dca179c138ac17ad9bef1177331a704
+
+# Verify test
+OneShotDigestVerify = NULL
+Key = ED25519-1-PUBLIC
+Input = ""
+Output = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b
+
+# Corrupted input
+OneShotDigestVerify = NULL
+Key = ED25519-1-PUBLIC
+Input = "bad"
+Output = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b
+Result = VERIFY_ERROR
+
+# Corrupted signature
+OneShotDigestVerify = NULL
+Key = ED25519-1-PUBLIC
+Input = ""
+Output = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100c
+Result = VERIFY_ERROR
+
+PrivPubKeyPair = ED25519-1:ED25519-2-PUBLIC
+Result = KEYPAIR_MISMATCH
+
+# Make sure update calls return an error
+DigestSign = NULL
+Key = ED25519-1
+Input = "Test"
+Result = DIGESTUPDATE_ERROR
+
+DigestVerify = NULL
+Key = ED25519-1-PUBLIC
+Input = "Test"
+Result = DIGESTUPDATE_ERROR
+
+# Attempt to set invalid digest
+DigestSign = SHA256
+Key = ED25519-1
+Result = DIGESTSIGNINIT_ERROR
+
+# Raw tests
+
+OneShotDigestSign = NULL
+Key = ED25519-1-Raw
+Input = ""
+Output = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b
+
+OneShotDigestVerify = NULL
+Key = ED25519-1-PUBLIC-Raw
+Input = ""
+Output = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b
+
+#Signature maleability test.
+#Same as the verify operation above but with the order added to s
+OneShotDigestVerify = NULL
+Key = ED25519-1-PUBLIC-Raw
+Input = ""
+Output = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901554c8c7872aa064e049dbb3013fbf29380d25bf5f0595bbe24655141438e7a101b
+Result = VERIFY_ERROR
+
+Title = ED448 tests from RFC8032
+
+PrivateKey=ED448-1
+-----BEGIN PRIVATE KEY-----
+MEcCAQAwBQYDK2VxBDsEOWyCpWLLgI0Q1jK+ichRPr9skp803fqMn2PJlg7240ij
+UoyKP8wvBE45o/xblEkvjwMudUmiAJj5Ww==
+-----END PRIVATE KEY-----
+
+PrivateKey=ED448-2
+-----BEGIN PRIVATE KEY-----
+MEcCAQAwBQYDK2VxBDsEOcTqsF01cAfGMvPbtISJkk1VKwj+DDU6DUofAKzaLEY6
+++pnxejSh3xeO8OXplmUnvgCHpVOChInTg==
+-----END PRIVATE KEY-----
+
+PrivateKey=ED448-3
+-----BEGIN PRIVATE KEY-----
+MEcCAQAwBQYDK2VxBDsEOc0j0k9xQnTnRDQyN7kykPUR9kJfmOZEWf8gPomFCD/9
+9gUAVTq8DgXNAhhL24nEzNZ+GHlRJn6zKA==
+-----END PRIVATE KEY-----
+
+PrivateKey=ED448-4
+-----BEGIN PRIVATE KEY-----
+MEcCAQAwBQYDK2VxBDsEOSWM3UraMu2cn/VOY3Vq5YL7j6sqxyHyyOZ2pydoUT2T
+n2Pd21VgkTPymt+G7Jkp3MtSwcX9L/fiGw==
+-----END PRIVATE KEY-----
+
+PrivateKey=ED448-5
+-----BEGIN PRIVATE KEY-----
+MEcCAQAwBQYDK2VxBDsEOX706EVEI2dS+7VrjzGiOhDkKBT19VygN83MEcZMmjsp
+ScG7YHADFGEXMqbC/qmO68AmahGpOXAQDg==
+-----END PRIVATE KEY-----
+
+PrivateKey=ED448-6
+-----BEGIN PRIVATE KEY-----
+MEcCAQAwBQYDK2VxBDsEOdZd80GtE+AIVnaIuu3ajp3NwX3AJJdOpbQie2Uw4zm/
+8h+Z5oymlo88ym3+D7n0+rT6E11VQuo/AQ==
+-----END PRIVATE KEY-----
+
+PrivateKey=ED448-7
+-----BEGIN PRIVATE KEY-----
+MEcCAQAwBQYDK2VxBDsEOS7F/jwXBFq9sTal5qkT4yq3WuaLU9L8FJt35QQTLTdW
+m352a6dKGb1hYjQ6IchZCqnOvKkBTGNt9Q==
+-----END PRIVATE KEY-----
+
+PrivateKey=ED448-8
+-----BEGIN PRIVATE KEY-----
+MEcCAQAwBQYDK2VxBDsEOYctCTeA9dNzDffCEmZLN7ig8k9WgQ2qg4LNT6P3djTs
+RNxU8cLtm+qG+vt2Mti+GZ6hZfWtVd2c6A==
+-----END PRIVATE KEY-----
+
+PublicKey=ED448-1-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEMwBQYDK2VxAzoAX9dEm1m0Yf0s54fsYWrUah2hNCSFpw4fig6nXYDpZ3jt8SR2
+m0bHBhvWeD3x5Q9s0foavq/oJWGA
+-----END PUBLIC KEY-----
+
+PublicKey=ED448-2-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEMwBQYDK2VxAzoAQ7oo9DDN/0Vq5TFUX37NCsg0pV2TWMA3K/oMbGeYwIZq6gHr
+AHQoArhDjqTLghacI1FgYntMOpSA
+-----END PUBLIC KEY-----
+
+PublicKey=ED448-3-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEMwBQYDK2VxAzoA3OqeePNaG/NJmoMbELhskKrAHNhLZ6AQm1WjbpMoseNl/OFh
+1xznExpUPqTLX36fHYsAaWRHABQA
+-----END PUBLIC KEY-----
+
+PublicKey=ED448-4-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEMwBQYDK2VxAzoAO6FtoMbyzB8wGHdAdW9eeY1rxfwBXXxjzJUQ7j/UStwk2Olo
+tuRub5TRm5RTYXJr114UnvCYF/WA
+-----END PUBLIC KEY-----
+
+PublicKey=ED448-5-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEMwBQYDK2VxAzoAs9oHmwqkk6V3ICnwRnuuvuWoES2dOiJTI2HaKU97s4FcXcWe
+F2tNnzgcoJOOE8bAexdL5l36V46A
+-----END PUBLIC KEY-----
+
+PublicKey=ED448-6-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEMwBQYDK2VxAzoA35cF9Y7bq4Asf4Njz+VWCrHGEywgqfHdFjSDom+KxTo51oCL
+9KHfvSYbCZuwOz+1CQbLKL2KCB8A
+-----END PUBLIC KEY-----
+
+PublicKey=ED448-7-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEMwBQYDK2VxAzoAeXVvAU3P4gefXdnnGL5BceLvJIagjyUYb2v/Q6mTa5v+EkAr
+CK5leYo9geIunsgOdpCGLvPU7ToA
+-----END PUBLIC KEY-----
+
+PublicKey=ED448-8-PUBLIC
+-----BEGIN PUBLIC KEY-----
+MEMwBQYDK2VxAzoAqBsuinClrJT/28ybrfw/6wgB8lhXi7EUrUTs4ewOeZ2gjv+4
+HF1oXAxW9k7srvjN8RzDhzeDjPQA
+-----END PUBLIC KEY-----
+
+#Raw versions of the ED448-1 keys
+PrivateKeyRaw=ED448-1-Raw:ED448:6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b
+
+PublicKeyRaw=ED448-1-PUBLIC-Raw:ED448:5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180
+
+PrivPubKeyPair = ED448-1:ED448-1-PUBLIC
+
+PrivPubKeyPair = ED448-2:ED448-2-PUBLIC
+
+PrivPubKeyPair = ED448-3:ED448-3-PUBLIC
+
+PrivPubKeyPair = ED448-4:ED448-4-PUBLIC
+
+PrivPubKeyPair = ED448-5:ED448-5-PUBLIC
+
+PrivPubKeyPair = ED448-6:ED448-6-PUBLIC
+
+PrivPubKeyPair = ED448-7:ED448-7-PUBLIC
+
+PrivPubKeyPair = ED448-8:ED448-8-PUBLIC
+
+PrivPubKeyPair = ED448-1-Raw:ED448-1-PUBLIC-Raw
+
+OneShotDigestSign = NULL
+Key = ED448-1
+Input = ""
+Output = 533a37f6bbe457251f023c0d88f976ae2dfb504a843e34d2074fd823d41a591f2b233f034f628281f2fd7a22ddd47d7828c59bd0a21bfd3980ff0d2028d4b18a9df63e006c5d1c2d345b925d8dc00b4104852db99ac5c7cdda8530a113a0f4dbb61149f05a7363268c71d95808ff2e652600
+
+OneShotDigestSign = NULL
+Key = ED448-2
+Input = 03
+Output = 26b8f91727bd62897af15e41eb43c377efb9c610d48f2335cb0bd0087810f4352541b143c4b981b7e18f62de8ccdf633fc1bf037ab7cd779805e0dbcc0aae1cbcee1afb2e027df36bc04dcecbf154336c19f0af7e0a6472905e799f1953d2a0ff3348ab21aa4adafd1d234441cf807c03a00
+
+OneShotDigestSign = NULL
+Key = ED448-3
+Input = 0c3e544074ec63b0265e0c
+Output = 1f0a8888ce25e8d458a21130879b840a9089d999aaba039eaf3e3afa090a09d389dba82c4ff2ae8ac5cdfb7c55e94d5d961a29fe0109941e00b8dbdeea6d3b051068df7254c0cdc129cbe62db2dc957dbb47b51fd3f213fb8698f064774250a5028961c9bf8ffd973fe5d5c206492b140e00
+
+OneShotDigestSign = NULL
+Key = ED448-4
+Input = 64a65f3cdedcdd66811e2915
+Output = 7eeeab7c4e50fb799b418ee5e3197ff6bf15d43a14c34389b59dd1a7b1b85b4ae90438aca634bea45e3a2695f1270f07fdcdf7c62b8efeaf00b45c2c96ba457eb1a8bf075a3db28e5c24f6b923ed4ad747c3c9e03c7079efb87cb110d3a99861e72003cbae6d6b8b827e4e6c143064ff3c00
+
+OneShotDigestSign = NULL
+Key = ED448-5
+Input = 64a65f3cdedcdd66811e2915e7
+Output = 6a12066f55331b6c22acd5d5bfc5d71228fbda80ae8dec26bdd306743c5027cb4890810c162c027468675ecf645a83176c0d7323a2ccde2d80efe5a1268e8aca1d6fbc194d3f77c44986eb4ab4177919ad8bec33eb47bbb5fc6e28196fd1caf56b4e7e0ba5519234d047155ac727a1053100
+
+OneShotDigestSign = NULL
+Key = ED448-6
+Input = bd0f6a3747cd561bdddf4640a332461a4a30a12a434cd0bf40d766d9c6d458e5512204a30c17d1f50b5079631f64eb3112182da3005835461113718d1a5ef944
+Output = 554bc2480860b49eab8532d2a533b7d578ef473eeb58c98bb2d0e1ce488a98b18dfde9b9b90775e67f47d4a1c3482058efc9f40d2ca033a0801b63d45b3b722ef552bad3b4ccb667da350192b61c508cf7b6b5adadc2c8d9a446ef003fb05cba5f30e88e36ec2703b349ca229c2670833900
+
+OneShotDigestSign = NULL
+Key = ED448-7
+Input = 15777532b0bdd0d1389f636c5f6b9ba734c90af572877e2d272dd078aa1e567cfa80e12928bb542330e8409f3174504107ecd5efac61ae7504dabe2a602ede89e5cca6257a7c77e27a702b3ae39fc769fc54f2395ae6a1178cab4738e543072fc1c177fe71e92e25bf03e4ecb72f47b64d0465aaea4c7fad372536c8ba516a6039c3c2a39f0e4d832be432dfa9a706a6e5c7e19f397964ca4258002f7c0541b590316dbc5622b6b2a6fe7a4abffd96105eca76ea7b98816af0748c10df048ce012d901015a51f189f3888145c03650aa23ce894c3bd889e030d565071c59f409a9981b51878fd6fc110624dcbcde0bf7a69ccce38fabdf86f3bef6044819de11
+Output = c650ddbb0601c19ca11439e1640dd931f43c518ea5bea70d3dcde5f4191fe53f00cf966546b72bcc7d58be2b9badef28743954e3a44a23f880e8d4f1cfce2d7a61452d26da05896f0a50da66a239a8a188b6d825b3305ad77b73fbac0836ecc60987fd08527c1a8e80d5823e65cafe2a3d00
+
+OneShotDigestSign = NULL
+Key = ED448-8
+Input = 6ddf802e1aae4986935f7f981ba3f0351d6273c0a0c22c9c0e8339168e675412a3debfaf435ed651558007db4384b650fcc07e3b586a27a4f7a00ac8a6fec2cd86ae4bf1570c41e6a40c931db27b2faa15a8cedd52cff7362c4e6e23daec0fbc3a79b6806e316efcc7b68119bf46bc76a26067a53f296dafdbdc11c77f7777e972660cf4b6a9b369a6665f02e0cc9b6edfad136b4fabe723d2813db3136cfde9b6d044322fee2947952e031b73ab5c603349b307bdc27bc6cb8b8bbd7bd323219b8033a581b59eadebb09b3c4f3d2277d4f0343624acc817804728b25ab797172b4c5c21a22f9c7839d64300232eb66e53f31c723fa37fe387c7d3e50bdf9813a30e5bb12cf4cd930c40cfb4e1fc622592a49588794494d56d24ea4b40c89fc0596cc9ebb961c8cb10adde976a5d602b1c3f85b9b9a001ed3c6a4d3b1437f52096cd1956d042a597d561a596ecd3d1735a8d570ea0ec27225a2c4aaff26306d1526c1af3ca6d9cf5a2c98f47e1c46db9a33234cfd4d81f2c98538a09ebe76998d0d8fd25997c7d255c6d66ece6fa56f11144950f027795e653008f4bd7ca2dee85d8e90f3dc315130ce2a00375a318c7c3d97be2c8ce5b6db41a6254ff264fa6155baee3b0773c0f497c573f19bb4f4240281f0b1f4f7be857a4e59d416c06b4c50fa09e1810ddc6b1467baeac5a3668d11b6ecaa901440016f389f80acc4db977025e7f5924388c7e340a732e554440e76570f8dd71b7d640b3450d1fd5f0410a18f9a3494f707c717b79b4bf75c98400b096b21653b5d217cf3565c9597456f70703497a078763829bc01bb1cbc8fa04eadc9a6e3f6699587a9e75c94e5bab0036e0b2e711392cff0047d0d6b05bd2a588bc109718954259f1d86678a579a3120f19cfb2963f177aeb70f2d4844826262e51b80271272068ef5b3856fa8535aa2a88b2d41f2a0e2fda7624c2850272ac4a2f561f8f2f7a318bfd5caf9696149e4ac824ad3460538fdc25421beec2cc6818162d06bbed0c40a387192349db67a118bada6cd5ab0140ee273204f628aad1c135f770279a651e24d8c14d75a6059d76b96a6fd857def5e0b354b27ab937a5815d16b5fae407ff18222c6d1ed263be68c95f32d908bd895cd76207ae726487567f9a67dad79abec316f683b17f2d02bf07e0ac8b5bc6162cf94697b3c27cd1fea49b27f23ba2901871962506520c392da8b6ad0d99f7013fbc06c2c17a569500c8a7696481c1cd33e9b14e40b82e79a5f5db82571ba97bae3ad3e0479515bb0e2b0f3bfcd1fd33034efc6245eddd7ee2086ddae2600d8ca73e214e8c2b0bdb2b047c6a464a562ed77b73d2d841c4b34973551257713b753632efba348169abc90a68f42611a40126d7cb21b58695568186f7e569d2ff0f9e745d0487dd2eb997cafc5abf9dd102e62ff66cba87
+Output = e301345a41a39a4d72fff8df69c98075a0cc082b802fc9b2b6bc503f926b65bddf7f4c8f1cb49f6396afc8a70abe6d8aef0db478d4c6b2970076c6a0484fe76d76b3a97625d79f1ce240e7c576750d295528286f719b413de9ada3e8eb78ed573603ce30d8bb761785dc30dbc320869e1a00
+
+# Verify test
+OneShotDigestVerify = NULL
+Key = ED448-1-PUBLIC
+Input = ""
+Output = 533a37f6bbe457251f023c0d88f976ae2dfb504a843e34d2074fd823d41a591f2b233f034f628281f2fd7a22ddd47d7828c59bd0a21bfd3980ff0d2028d4b18a9df63e006c5d1c2d345b925d8dc00b4104852db99ac5c7cdda8530a113a0f4dbb61149f05a7363268c71d95808ff2e652600
+
+# Corrupted input
+OneShotDigestVerify = NULL
+Key = ED448-1-PUBLIC
+Input = "bad"
+Output = 533a37f6bbe457251f023c0d88f976ae2dfb504a843e34d2074fd823d41a591f2b233f034f628281f2fd7a22ddd47d7828c59bd0a21bfd3980ff0d2028d4b18a9df63e006c5d1c2d345b925d8dc00b4104852db99ac5c7cdda8530a113a0f4dbb61149f05a7363268c71d95808ff2e652600
+Result = VERIFY_ERROR
+
+# Corrupted signature
+OneShotDigestVerify = NULL
+Key = ED448-1-PUBLIC
+Input = ""
+Output = 533a37f6bbe457251f023c0d88f976ae2dfb504a843e34d2074fd823d41a591f2b233f034f628281f2fd7a22ddd47d7828c59bd0a21bfd3980ff0d2028d4b18a9df63e006c5d1c2d345b925d8dc00b4104852db99ac5c7cdda8530a113a0f4dbb61149f05a7363268c71d95808ff2e652601
+Result = VERIFY_ERROR
+
+# Make sure update calls return an error
+DigestSign = NULL
+Key = ED448-1
+Input = "Test"
+Result = DIGESTUPDATE_ERROR
+
+DigestVerify = NULL
+Key = ED448-1-PUBLIC
+Input = "Test"
+Result = DIGESTUPDATE_ERROR
+
+# Attempt to set invalid digest
+DigestSign = SHA256
+Key = ED448-1
+Result = DIGESTSIGNINIT_ERROR
+
+# Raw keys
+OneShotDigestSign = NULL
+Key = ED448-1-Raw
+Input = ""
+Output = 533a37f6bbe457251f023c0d88f976ae2dfb504a843e34d2074fd823d41a591f2b233f034f628281f2fd7a22ddd47d7828c59bd0a21bfd3980ff0d2028d4b18a9df63e006c5d1c2d345b925d8dc00b4104852db99ac5c7cdda8530a113a0f4dbb61149f05a7363268c71d95808ff2e652600
+
+OneShotDigestVerify = NULL
+Key = ED448-1-PUBLIC-Raw
+Input = ""
+Output = 533a37f6bbe457251f023c0d88f976ae2dfb504a843e34d2074fd823d41a591f2b233f034f628281f2fd7a22ddd47d7828c59bd0a21bfd3980ff0d2028d4b18a9df63e006c5d1c2d345b925d8dc00b4104852db99ac5c7cdda8530a113a0f4dbb61149f05a7363268c71d95808ff2e652600
+
+#Signature malelability test.
+#Same as the verify operation above but with the order added to s
+OneShotDigestVerify = NULL
+Key = ED448-1-PUBLIC-Raw
+Input = ""
+Output = 533a37f6bbe457251f023c0d88f976ae2dfb504a843e34d2074fd823d41a591f2b233f034f628281f2fd7a22ddd47d7828c59bd0a21bfd3980f25278d3667403c14bcec5f9cfde9955ebc8333c0ae78fc86e518317c5c7cdda8530a113a0f4dbb61149f05a7363268c71d95808ff2e656600
+Result = VERIFY_ERROR
+
+# Key generation tests
+KeyGen = rsaEncryption
+Ctrl = rsa_keygen_bits:128
+KeyName = tmprsa
+Result = PKEY_CTRL_INVALID
+Function = pkey_rsa_ctrl
+Reason = key size too small
+
+# RSA-PSS with restrictions, should succeed.
+KeyGen = RSASSA-PSS
+KeyName = tmppss
+Ctrl = rsa_pss_keygen_md:sha256
+Ctrl = rsa_pss_keygen_mgf1_md:sha512
+
+# Check MGF1 restrictions
+DigestVerify = SHA256
+Key = tmppss
+Ctrl = rsa_mgf1_md:sha256
+Result = PKEY_CTRL_ERROR
+
+# Test valid digest and MGF1 parameters. Verify will fail
+DigestVerify = SHA256
+Key = tmppss
+Ctrl = rsa_mgf1_md:sha512
+Input = ""
+Output = ""
+Result = VERIFY_ERROR
+
+# Check caching of key MGF1 digest restriction
+DigestVerify = SHA256
+Key = tmppss
+Ctrl = rsa_mgf1_md:sha1
+Result = PKEY_CTRL_ERROR
+
+Title = RFC7919 DH tests
+
+# Key generation test
+KeyGen = dhKeyAgreement
+Ctrl = dh_param:ffdhe2048
+KeyName = tmpdh
+
+# ffdhe2048-1 and ffdhe2048-2 were randomly generated and have a shared secret
+# less than 256 bytes in length (to test padding) other keys have no special
+# properties
+PrivateKey=ffdhe2048-1
+-----BEGIN PRIVATE KEY-----
+MIIBQwIBADCCARsGCSqGSIb3DQEDATCCAQwCggEBAP//////////rfhUWKK7Spqv
+3FYgJz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT
+3x7V1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId
+8VihNq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSu
+Vu3nY3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD
+/jsbTG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhKFyX//////////8C
+AQICAgDhBB8CHQGUa5iGUF9rGvDjv9PDFGIvtS9OIqbbi8rqm4b6
+-----END PRIVATE KEY-----
+
+PrivateKey=ffdhe2048-2
+-----BEGIN PRIVATE KEY-----
+MIIBQwIBADCCARsGCSqGSIb3DQEDATCCAQwCggEBAP//////////rfhUWKK7Spqv
+3FYgJz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT
+3x7V1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId
+8VihNq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSu
+Vu3nY3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD
+/jsbTG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhKFyX//////////8C
+AQICAgDhBB8CHQEYNZIth+/EaIgKK2gcxFutVjUTWYCaReyTKMvP
+-----END PRIVATE KEY-----
+
+PublicKey=ffdhe2048-1-pub
+-----BEGIN PUBLIC KEY-----
+MIICKTCCARsGCSqGSIb3DQEDATCCAQwCggEBAP//////////rfhUWKK7Spqv3FYg
+Jz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT3x7V
+1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId8Vih
+Nq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSuVu3n
+Y3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD/jsb
+TG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhKFyX//////////8CAQIC
+AgDhA4IBBgACggEBAOYRygvHGUKaIXLfUatc2YkYcm9Ew65H0hwpiDXG6XHAYAjJ
+bjKNJxdFRjjeCwtJEAGlyUtjSHrka6dHDfzkQfDK6u13Z+3Xmh+nCMZwPOHDNR3I
+Ep5vy3quU7suD3ADDrjwX3sVfsXensgh+JpexbrR+leHATf8aX1g8jQofFdi1Wn7
+CbE6VciU4b32L8HPwO1ePpJGib70Em45VurmUfCwNXgEUnu1N6LYRAjH9vnjB529
+C3BSp58rJnA2aslacC0CFY6YVCQfLTdN7y+F5QlGrdGd6wQmf3FXPLf9iYSiuLrm
+jW/WDFmPnwAn5A7TEgiNeNu8pwsSKPgZqdW+lyw=
+-----END PUBLIC KEY-----
+
+PublicKey=ffdhe2048-2-pub
+-----BEGIN PUBLIC KEY-----
+MIICKTCCARsGCSqGSIb3DQEDATCCAQwCggEBAP//////////rfhUWKK7Spqv3FYg
+Jz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT3x7V
+1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId8Vih
+Nq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSuVu3n
+Y3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD/jsb
+TG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhKFyX//////////8CAQIC
+AgDhA4IBBgACggEBAN5LAdrzTwa7nT7855NJQLNum5Yr1O8XZupjvwtVIrJgORvh
+L8VMKJoerEwOZ38snTsh9tuKnAWrmdIyFhnOjaHm40GlvInQGff5Lwb1itf7ib3U
+ELPOO29PajwY1RocWKX7Wfdj8n6Kd9gHhdoO5v8MyZMCkUU6Rz6y1VzaVwykdsqA
+kbMdZfK8Dkpd5PBZ8SJpJF02IEzvh5OYfjcbMN2K0lDO5ZvoMYQku7yXr6PfJebC
+CpoVOaoqH19n3g8Xni8IFi7znI83UqxKuYhyYCuMwtE+HS+9WkmkQ1coo512Gw2f
+TcY3pf9gGZ41xLFxCOdrUbR3QlieI+zl+TttLzM=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ffdhe2048-1:ffdhe2048-1-pub
+
+PrivPubKeyPair=ffdhe2048-2:ffdhe2048-2-pub
+
+Derive=ffdhe2048-1
+PeerKey=ffdhe2048-2-pub
+SharedSecret=6620DD85B56EE8540C8040CAC46B7385344A164E4DBDF521F7D99F88FA68EDD295A45E36E0BBD5FF5DE84598824E2CA52ED82ACA918CAECC6B22846D0FC6F0203E8B6963964D11E9E704F83AF1D60E9B1931139E9E9967C4665A831A75D99359A8BA80DD5921E74379AF4CA8DB453EDBC5E669AB17A5254CA6C96794CD5196BE90AF37742C8F6812515FFCC45B08F4158EFF9559F1AEF3665B3D91519DCBC6DF22CD6DA521B86613558602E73D2CA4666972F7D2CB6B46299B1DF2DA29A2A2D99D105E10CB553D6738A9B1DB2A0314C3CF30642D5C44695623D8B95C4426BEA830FB51816B4F086945E9B12A445F42DD68610E3F378A6E69A383D13D85BF
+
+Derive=ffdhe2048-2
+PeerKey=ffdhe2048-1-pub
+SharedSecret=6620DD85B56EE8540C8040CAC46B7385344A164E4DBDF521F7D99F88FA68EDD295A45E36E0BBD5FF5DE84598824E2CA52ED82ACA918CAECC6B22846D0FC6F0203E8B6963964D11E9E704F83AF1D60E9B1931139E9E9967C4665A831A75D99359A8BA80DD5921E74379AF4CA8DB453EDBC5E669AB17A5254CA6C96794CD5196BE90AF37742C8F6812515FFCC45B08F4158EFF9559F1AEF3665B3D91519DCBC6DF22CD6DA521B86613558602E73D2CA4666972F7D2CB6B46299B1DF2DA29A2A2D99D105E10CB553D6738A9B1DB2A0314C3CF30642D5C44695623D8B95C4426BEA830FB51816B4F086945E9B12A445F42DD68610E3F378A6E69A383D13D85BF
+
+Derive=ffdhe2048-1
+PeerKey=ffdhe2048-2-pub
+Ctrl = dh_pad:1
+SharedSecret=00006620DD85B56EE8540C8040CAC46B7385344A164E4DBDF521F7D99F88FA68EDD295A45E36E0BBD5FF5DE84598824E2CA52ED82ACA918CAECC6B22846D0FC6F0203E8B6963964D11E9E704F83AF1D60E9B1931139E9E9967C4665A831A75D99359A8BA80DD5921E74379AF4CA8DB453EDBC5E669AB17A5254CA6C96794CD5196BE90AF37742C8F6812515FFCC45B08F4158EFF9559F1AEF3665B3D91519DCBC6DF22CD6DA521B86613558602E73D2CA4666972F7D2CB6B46299B1DF2DA29A2A2D99D105E10CB553D6738A9B1DB2A0314C3CF30642D5C44695623D8B95C4426BEA830FB51816B4F086945E9B12A445F42DD68610E3F378A6E69A383D13D85BF
+
+PrivateKey=ffdhe3072-1
+-----BEGIN PRIVATE KEY-----
+MIIByQIBADCCAZsGCSqGSIb3DQEDATCCAYwCggGBAP//////////rfhUWKK7Spqv
+3FYgJz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT
+3x7V1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId
+8VihNq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSu
+Vu3nY3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD
+/jsbTG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhH8/c3jVbO2UZA1u8
+NPTe+ZwCOGG0b8nW5skHetkdJpH39+5ZjLD6wYbZHK7+EwmFE5JwtBMMk7xDeUT0
+/URS4tdN02Ty4h5x9Uv/XK6Cq5yd9p7obSvFIjY6DavFIZebDeraHb+aQtXESE4K
+vNBr+lPd7zwbIO4/1Z18JeQdK2bGLjf//////////wIBAgICARMEJQIjB8TRLx6q
+XYQJ0RAM+5ztVLhy9EXNdjY0EYODS7TFi5RZLE4=
+-----END PRIVATE KEY-----
+
+PrivateKey=ffdhe3072-2
+-----BEGIN PRIVATE KEY-----
+MIIByQIBADCCAZsGCSqGSIb3DQEDATCCAYwCggGBAP//////////rfhUWKK7Spqv
+3FYgJz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT
+3x7V1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId
+8VihNq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSu
+Vu3nY3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD
+/jsbTG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhH8/c3jVbO2UZA1u8
+NPTe+ZwCOGG0b8nW5skHetkdJpH39+5ZjLD6wYbZHK7+EwmFE5JwtBMMk7xDeUT0
+/URS4tdN02Ty4h5x9Uv/XK6Cq5yd9p7obSvFIjY6DavFIZebDeraHb+aQtXESE4K
+vNBr+lPd7zwbIO4/1Z18JeQdK2bGLjf//////////wIBAgICARMEJQIjBG9DysbR
+qsyURRygCXP6Z6CsUGaQR9/JD+RxbZ8P13po5PM=
+-----END PRIVATE KEY-----
+
+PublicKey=ffdhe3072-1-pub
+-----BEGIN PUBLIC KEY-----
+MIIDKTCCAZsGCSqGSIb3DQEDATCCAYwCggGBAP//////////rfhUWKK7Spqv3FYg
+Jz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT3x7V
+1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId8Vih
+Nq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSuVu3n
+Y3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD/jsb
+TG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhH8/c3jVbO2UZA1u8NPTe
++ZwCOGG0b8nW5skHetkdJpH39+5ZjLD6wYbZHK7+EwmFE5JwtBMMk7xDeUT0/URS
+4tdN02Ty4h5x9Uv/XK6Cq5yd9p7obSvFIjY6DavFIZebDeraHb+aQtXESE4KvNBr
++lPd7zwbIO4/1Z18JeQdK2bGLjf//////////wIBAgICARMDggGGAAKCAYEAmPK9
+gPzxh69NyUdmvd76E2VjitXRFhA6mZvTD9zh9Isbl66yezKJcYROUv4HK81LNonz
+RaP5je7LXA/Vj4KkQEfjP/W00gZ/uMmi2hSQ0KbBuwRd/ECYwoigs+p9bjN4ZGra
+rYmQLiX2uJz2KSkx3YpM9cMH9Q41qdskGnK0QnMntwTysZ7Sdk7yeNaKUdZ3G4sA
+lUCEUAOr7lD8tV1fPjgMLL4EVsiZEF1v3TY5mY7ydcYPIrvrKXUKqrr7UsAdxt+r
+BATWe3V+JUGpsVjDLYUgaB95PkdSQtdNa094nanx+evI3vYZE9Vm/A/DNBTJuTlV
+rogeIx+Lq3foVUsW6nuJiGKYhbwI5xqFw+WEPMqa5QiIdoUqDExXkCi1mqxyivZ0
+VW5yVac/67e9od3oMlWGU2tXvJwxIzhCBpjK8oBFxd2jFZ0BdTwBlI+Jpx5AW7oE
+la7P7Rxy1rkGTFs8ZSWM2cUdzBxsbwdWrmSZ6JjQstr8ST++TXC5F7ZBKaOu
+-----END PUBLIC KEY-----
+
+PublicKey=ffdhe3072-2-pub
+-----BEGIN PUBLIC KEY-----
+MIIDKDCCAZsGCSqGSIb3DQEDATCCAYwCggGBAP//////////rfhUWKK7Spqv3FYg
+Jz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT3x7V
+1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId8Vih
+Nq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSuVu3n
+Y3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD/jsb
+TG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhH8/c3jVbO2UZA1u8NPTe
++ZwCOGG0b8nW5skHetkdJpH39+5ZjLD6wYbZHK7+EwmFE5JwtBMMk7xDeUT0/URS
+4tdN02Ty4h5x9Uv/XK6Cq5yd9p7obSvFIjY6DavFIZebDeraHb+aQtXESE4KvNBr
++lPd7zwbIO4/1Z18JeQdK2bGLjf//////////wIBAgICARMDggGFAAKCAYAWP0Ft
+61TNzHfeUEGhr1gjw9cs3GfCGvx9Rbhql6oUA3tQdSOODxQCnLBv7KFnhRwhhh/Z
+6BRRC3rX4HYeRsLxlFeOmOzv0Ty6vhnpJnhf8648ujLXdT1r/0G53OR5v5QFTzLq
+eAIYDV86EYL1/ffONV3P+OKQqpPx/kgmtKPsmr+U01KbfJk44uFkyR3bUnHq3cXj
+wrNCxdazibp3Iqt2jZblWdsUvBzj8VGNOQmTvxySjbJHJVtLAEZsboZQzvdV9n9f
+xC4/PxxI45s9/NT6JjN2+At3CPMSup1Dr9P98NYFh01bvWcIzUVUznUkNj732M3V
+IsPpUEq6WJR8bISdnc+HTWhjULxjbAN/ptz1K1aU3JwI2aG2sHt6r0m8ug9V1y2X
+Yr2hU7ohBoHhJxxmSbcqjzoQ9wdEvenfFjY+IydQ6j09AAPvBkNYwOVFOKp8TIr4
+VZwIwf1eFAzs8mbbl+sFZENEM2aTpQL56AUv9FnGcg3AnVKs5/UJ8W0FYZw=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ffdhe3072-1:ffdhe3072-1-pub
+
+PrivPubKeyPair=ffdhe3072-2:ffdhe3072-2-pub
+
+Derive=ffdhe3072-1
+PeerKey=ffdhe3072-2-pub
+SharedSecret=59C4B72684E68BC02148DF19FE6BECE40885AD037EE83F28C6E353C87026DAD66BB469C3F252BDC7ADA9271B6AD900620ECA15696B4E85561794A26259D61CAC7B56DDAED27BE2759A4C4BED5F8940784A255635D24E0D7B2BC796142CAF256D7A979240E9C8DD7230562B5D687971C4582A488E7BCA827FA32C4068C3C8B27ACA83E43EE9D7EAB3192F0DD877BA9C25D6334D233FC5752BEFE625B3D5DAE8589122B6C7E76538619E90AF1BD8D078496214C8F740F7BB5BFA284C811BEF5F9C6C1326E396DE17FDD47BE9D979643F2141FABB8950C3CECEEECFD0BB763F4D143A5AE284535F5E29B05E7DAC609D7080B5D1325F8D9242C67AC44482F5AA51131A763C370842D757EC16DE1988DF5BB4E4B6191A03F9E200DB491906871442FA98985DC976D5007C22FD491F49B8F0AB2AFDE0BDEFA18E56A686C712F4EDE53D924AA39CFED6C827CE0AD553132A474009203421F0A9373646200D8BA75725964079CF82D8C0C50AF6EEA4ECB607C02E7DD55C7998B4F849D79BE8867C69C62A
+
+Derive=ffdhe3072-2
+PeerKey=ffdhe3072-1-pub
+SharedSecret=59C4B72684E68BC02148DF19FE6BECE40885AD037EE83F28C6E353C87026DAD66BB469C3F252BDC7ADA9271B6AD900620ECA15696B4E85561794A26259D61CAC7B56DDAED27BE2759A4C4BED5F8940784A255635D24E0D7B2BC796142CAF256D7A979240E9C8DD7230562B5D687971C4582A488E7BCA827FA32C4068C3C8B27ACA83E43EE9D7EAB3192F0DD877BA9C25D6334D233FC5752BEFE625B3D5DAE8589122B6C7E76538619E90AF1BD8D078496214C8F740F7BB5BFA284C811BEF5F9C6C1326E396DE17FDD47BE9D979643F2141FABB8950C3CECEEECFD0BB763F4D143A5AE284535F5E29B05E7DAC609D7080B5D1325F8D9242C67AC44482F5AA51131A763C370842D757EC16DE1988DF5BB4E4B6191A03F9E200DB491906871442FA98985DC976D5007C22FD491F49B8F0AB2AFDE0BDEFA18E56A686C712F4EDE53D924AA39CFED6C827CE0AD553132A474009203421F0A9373646200D8BA75725964079CF82D8C0C50AF6EEA4ECB607C02E7DD55C7998B4F849D79BE8867C69C62A
+
+PrivateKey=ffdhe4096-1
+-----BEGIN PRIVATE KEY-----
+MIICTwIBADCCAhsGCSqGSIb3DQEDATCCAgwCggIBAP//////////rfhUWKK7Spqv
+3FYgJz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT
+3x7V1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId
+8VihNq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSu
+Vu3nY3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD
+/jsbTG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhH8/c3jVbO2UZA1u8
+NPTe+ZwCOGG0b8nW5skHetkdJpH39+5ZjLD6wYbZHK7+EwmFE5JwtBMMk7xDeUT0
+/URS4tdN02Ty4h5x9Uv/XK6Cq5yd9p7obSvFIjY6DavFIZebDeraHb+aQtXESE4K
+vNBr+lPd7zwbIO4/1Z18JeQdK2aeHvFub1LDFk30+3kw6eTliFe2rH1fQtafbRh3
+Y88dVQNABIf1W6V+Mcx6cTXIhu+0MYrtah4BLZ5oMqkHYAqRgTDEbcd4+XGtADgJ
+KZmjM8uLehoduT1xQAA8Kk7OqfmNCswKgpHNzsl9z47JtVp/iKRrTbWoUfRBguHG
+igB+XmVfav//////////AgECAgIBRQQrAikf6HJGrPpToTmXJq6x8ZlcUpBK/RDk
+5e93wdj9M96Bp6CK5KDTX91DPg==
+-----END PRIVATE KEY-----
+
+PrivateKey=ffdhe4096-2
+-----BEGIN PRIVATE KEY-----
+MIICTwIBADCCAhsGCSqGSIb3DQEDATCCAgwCggIBAP//////////rfhUWKK7Spqv
+3FYgJz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT
+3x7V1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId
+8VihNq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSu
+Vu3nY3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD
+/jsbTG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhH8/c3jVbO2UZA1u8
+NPTe+ZwCOGG0b8nW5skHetkdJpH39+5ZjLD6wYbZHK7+EwmFE5JwtBMMk7xDeUT0
+/URS4tdN02Ty4h5x9Uv/XK6Cq5yd9p7obSvFIjY6DavFIZebDeraHb+aQtXESE4K
+vNBr+lPd7zwbIO4/1Z18JeQdK2aeHvFub1LDFk30+3kw6eTliFe2rH1fQtafbRh3
+Y88dVQNABIf1W6V+Mcx6cTXIhu+0MYrtah4BLZ5oMqkHYAqRgTDEbcd4+XGtADgJ
+KZmjM8uLehoduT1xQAA8Kk7OqfmNCswKgpHNzsl9z47JtVp/iKRrTbWoUfRBguHG
+igB+XmVfav//////////AgECAgIBRQQrAikaMtvYLrkftmq+ryrWoSoyH8fA0OXp
+jwrNxAPiOZFBxvPImUEi3lOoxA==
+-----END PRIVATE KEY-----
+
+PublicKey=ffdhe4096-1-pub
+-----BEGIN PUBLIC KEY-----
+MIIEKDCCAhsGCSqGSIb3DQEDATCCAgwCggIBAP//////////rfhUWKK7Spqv3FYg
+Jz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT3x7V
+1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId8Vih
+Nq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSuVu3n
+Y3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD/jsb
+TG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhH8/c3jVbO2UZA1u8NPTe
++ZwCOGG0b8nW5skHetkdJpH39+5ZjLD6wYbZHK7+EwmFE5JwtBMMk7xDeUT0/URS
+4tdN02Ty4h5x9Uv/XK6Cq5yd9p7obSvFIjY6DavFIZebDeraHb+aQtXESE4KvNBr
++lPd7zwbIO4/1Z18JeQdK2aeHvFub1LDFk30+3kw6eTliFe2rH1fQtafbRh3Y88d
+VQNABIf1W6V+Mcx6cTXIhu+0MYrtah4BLZ5oMqkHYAqRgTDEbcd4+XGtADgJKZmj
+M8uLehoduT1xQAA8Kk7OqfmNCswKgpHNzsl9z47JtVp/iKRrTbWoUfRBguHGigB+
+XmVfav//////////AgECAgIBRQOCAgUAAoICAFmvIlVGC+VP3rxxLYMoEM3h0yvn
+pO086y+sRkf97FRppQxCbHaDwz64f0Bopzq8YbJE/OM7nhwAVH/L+6iFKsdENj5l
+LLaYIy1q/GR5SGC9yWjfkHKQaeVR2gCqn8IpKj/1JK1Km+rZE5UNF1v4zxurjNYw
+FKaPDF1dTtvfEzABQmf8ZX9vNSYJmbvCAzjNArcFwypuHZCFaoTAJHxwD4grWt2m
+EJ7FCigRt3sE+o5L6ZfgdOwj2V23JANMuDPIb7F/n1TOjSChMJA+Dg0e2WMO00Et
+19ce7MWMMwpPx7/vYukIaIQXcxFVJluwJf+qXu3oplAGe+8WuIzI1OBN9SEFO2PH
+s9TG33rUeSTU0jVtJS6qSsaLWKT0QRHv7hQCtCtH0l0vDuH/WhzSJmf68adZSiRI
+RSeJgYLocyOOXleP9/+iZOJ0n5617AbR1nBLOsh82tN4H0CsMi+TeNIlLA8RbFGu
+A442i70xx5YJaccV9YwEQJzIOpBd8DuGIvzXCuyf8756cn5KKTTtKTM4Cy50DH7z
+8URTx3+0uOodKOtIYyFSMYzTQCQFluPXfelR3t1aP2uRXqfC0bziw1OYb794xYx6
+cIlLbC0e0hiBpzTXWUJHb6rjtDfh+HnHlSUGWCGFoV0H5Cx6my9t/WBEnMlbjSMW
+DMW1av+3Na95903x
+-----END PUBLIC KEY-----
+
+PublicKey=ffdhe4096-2-pub
+-----BEGIN PUBLIC KEY-----
+MIIEKTCCAhsGCSqGSIb3DQEDATCCAgwCggIBAP//////////rfhUWKK7Spqv3FYg
+Jz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT3x7V
+1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId8Vih
+Nq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSuVu3n
+Y3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD/jsb
+TG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhH8/c3jVbO2UZA1u8NPTe
++ZwCOGG0b8nW5skHetkdJpH39+5ZjLD6wYbZHK7+EwmFE5JwtBMMk7xDeUT0/URS
+4tdN02Ty4h5x9Uv/XK6Cq5yd9p7obSvFIjY6DavFIZebDeraHb+aQtXESE4KvNBr
++lPd7zwbIO4/1Z18JeQdK2aeHvFub1LDFk30+3kw6eTliFe2rH1fQtafbRh3Y88d
+VQNABIf1W6V+Mcx6cTXIhu+0MYrtah4BLZ5oMqkHYAqRgTDEbcd4+XGtADgJKZmj
+M8uLehoduT1xQAA8Kk7OqfmNCswKgpHNzsl9z47JtVp/iKRrTbWoUfRBguHGigB+
+XmVfav//////////AgECAgIBRQOCAgYAAoICAQCdwSzypLeaeUauw2sV4oo1aTj3
+211HYCdPsP7qdyv7u08MD6HA2LIfbsi98J9B53v+LpIITbW5axwinYahc09lbf2Q
+Dwy5AiETXKQZqhJkbypMLax1N5TDwzXzM1JxBzmATGcX6CXfrWQ7XzKHDLvjI7W4
+WEOz+OMeV8F85B8dxf/p+hbOiIrv98iG1S15PGUDsx3r1ischqfJpQ3mNEP0qF+L
+904D5S1Y7KI/jHCZlo95HgrjHOSg73cnj4VKGhnStKatscWiMgh5rWC81vYpQDZx
+mqDyJEaz2XgrU4vlJT0zd/gWdDIqPpnhcE7vjO1e5hvdOhn75hIUNZejxw7/oT81
+59jLolbd+xpX4aIwqC+Gn4jgm8c8Z+QO7vQzlgbtSBFV9srDHvagmIWqr3lDDXgQ
+Tf3G0UV3EsxGKj3OGTIw4DAe22W2d2LDUlBp3N+lFrt6OEFtcLbnXoi1b7ig0gPn
+30p6bW9AZ/qL5SCfAYbtKDcRIyaqZ6MeG9qTzUIt/V4RQfaOuD3KrAj0jjCDKS7u
+pPxWYrb9jR0O9hDLnKfZr0zAI3X+X1JdXJpW8JFU6Av2LufYpoq3V5tXHdduwJwM
+ycc1F1F0Eu3KNknFa0SsQRhNWtMVDpPe2/gfd0DmastSkCieE0QtAVd0xb360mO+
+g9yTcM3iUEcuz/oz4w==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ffdhe4096-1:ffdhe4096-1-pub
+
+PrivPubKeyPair=ffdhe4096-2:ffdhe4096-2-pub
+
+Derive=ffdhe4096-1
+PeerKey=ffdhe4096-2-pub
+SharedSecret=B92DCFD06BA13D2E740CE295BA5748F0A8BC7F2AA23E6E9CC8D5FE01A783DA5F12C2B190B77D6A3CD69FE2B340C98AA2F612CE5A3FA34C168C2B1A3067B143043F46D354C5FFD79DDAC0097A5A1375B1F41A95918D49499116CA6D39377548FF23AC2248CFDE2064106F426FB45D9A626B614C5DF54872DB3216857472406C83449BED15385839D01B6F67CC8EC7F7DA35389B01333E6E8AD2F366BA56B6DB1F3FD726AB4C7F99E2D0AB9BABC6D4B8F6244B9706D4942984E2DD046831E05C51571E3EA9B1E665D5419E89378F7315BB2DEFD258A8FF44242D6908EC2E15A48D2F61820616935A72BF18309903A492F2646DA91AE5ABD3A4B3D934FF3811415B5385A276E082B4DE960CFE82FE3EE4909C2C8847EE2D839F419365B7B2EF38646EE182EF3531CCBEEE4115E57D71BFF808C0379057805D82317176CC913F058635F2B30705F456CCB3C518905F18A0902F6A74DECC48BCCDAF0C3004FE233D2FAFB60EB79204DDA7B791F911D763A3A0FBDD0926644F7004D5AD57EFF787DD54C81C4E9828B8501B44468ABCA6189A8DC00E666F813D7EF21A472F36E5F3338405C3FF4433FFBEF867677791C848E0B62D0099EE59E3A8ACDCCA4ABDB2CD6C58A8C7E76BE37FD922BB29DCA0F5B70714BDAF3183C09982EE4716BC656A3A8D63F7B26201C5D803923D1CE7BCE2843376F02E580D91B63B2B7480BBF32E9551ED
+
+Derive=ffdhe4096-2
+PeerKey=ffdhe4096-1-pub
+SharedSecret=B92DCFD06BA13D2E740CE295BA5748F0A8BC7F2AA23E6E9CC8D5FE01A783DA5F12C2B190B77D6A3CD69FE2B340C98AA2F612CE5A3FA34C168C2B1A3067B143043F46D354C5FFD79DDAC0097A5A1375B1F41A95918D49499116CA6D39377548FF23AC2248CFDE2064106F426FB45D9A626B614C5DF54872DB3216857472406C83449BED15385839D01B6F67CC8EC7F7DA35389B01333E6E8AD2F366BA56B6DB1F3FD726AB4C7F99E2D0AB9BABC6D4B8F6244B9706D4942984E2DD046831E05C51571E3EA9B1E665D5419E89378F7315BB2DEFD258A8FF44242D6908EC2E15A48D2F61820616935A72BF18309903A492F2646DA91AE5ABD3A4B3D934FF3811415B5385A276E082B4DE960CFE82FE3EE4909C2C8847EE2D839F419365B7B2EF38646EE182EF3531CCBEEE4115E57D71BFF808C0379057805D82317176CC913F058635F2B30705F456CCB3C518905F18A0902F6A74DECC48BCCDAF0C3004FE233D2FAFB60EB79204DDA7B791F911D763A3A0FBDD0926644F7004D5AD57EFF787DD54C81C4E9828B8501B44468ABCA6189A8DC00E666F813D7EF21A472F36E5F3338405C3FF4433FFBEF867677791C848E0B62D0099EE59E3A8ACDCCA4ABDB2CD6C58A8C7E76BE37FD922BB29DCA0F5B70714BDAF3183C09982EE4716BC656A3A8D63F7B26201C5D803923D1CE7BCE2843376F02E580D91B63B2B7480BBF32E9551ED
+
+PrivateKey=ffdhe6144-1
+-----BEGIN PRIVATE KEY-----
+MIIDVQIBADCCAxsGCSqGSIb3DQEDATCCAwwCggMBAP//////////rfhUWKK7Spqv
+3FYgJz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT
+3x7V1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId
+8VihNq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSu
+Vu3nY3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD
+/jsbTG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhH8/c3jVbO2UZA1u8
+NPTe+ZwCOGG0b8nW5skHetkdJpH39+5ZjLD6wYbZHK7+EwmFE5JwtBMMk7xDeUT0
+/URS4tdN02Ty4h5x9Uv/XK6Cq5yd9p7obSvFIjY6DavFIZebDeraHb+aQtXESE4K
+vNBr+lPd7zwbIO4/1Z18JeQdK2aeHvFub1LDFk30+3kw6eTliFe2rH1fQtafbRh3
+Y88dVQNABIf1W6V+Mcx6cTXIhu+0MYrtah4BLZ5oMqkHYAqRgTDEbcd4+XGtADgJ
+KZmjM8uLehoduT1xQAA8Kk7OqfmNCswKgpHNzsl9z47JtVp/iKRrTbWoUfRBguHG
+igB+Xg3ZAgv9ZLZFA2x6Tmd9LDhTKjojukRCyvU+pju0VDKbdiTIkXvdZLHA/Uyz
+jowzTHAcOs2tBlf8z+xxmx9cPk5GBB84gUf7TP20d6UkcfepqWkQuFUyLttjQNig
+DvCSNQUR4wq+wf/546Juf7KfjBgwI8NYfjjaAHfZtHY+TkuUsrvBlMZlHnfK+ZLu
+qsAjKigb9rOnOcEiYRaCCujbWEemfL75yQkbRi1TjNcrA3Rq539eYiksMRViqEZQ
+XcgtuFQziuSfUjXJW5EXjM8t1crO9APsnRgQxicrBFs7cfnca4DWP91KjprbHmli
+ppUm1DFhwaQdVw15ONrUpA4ynNDkDmX//////////wIBAgICAXcEMQIvSAtU6kL4
+Q04G+z7VkF75A9mRrvM+4UWu9+nOPeAWZfTLU5OqNFUuupM+ZXHNGs8=
+-----END PRIVATE KEY-----
+
+PrivateKey=ffdhe6144-2
+-----BEGIN PRIVATE KEY-----
+MIIDVQIBADCCAxsGCSqGSIb3DQEDATCCAwwCggMBAP//////////rfhUWKK7Spqv
+3FYgJz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT
+3x7V1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId
+8VihNq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSu
+Vu3nY3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD
+/jsbTG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhH8/c3jVbO2UZA1u8
+NPTe+ZwCOGG0b8nW5skHetkdJpH39+5ZjLD6wYbZHK7+EwmFE5JwtBMMk7xDeUT0
+/URS4tdN02Ty4h5x9Uv/XK6Cq5yd9p7obSvFIjY6DavFIZebDeraHb+aQtXESE4K
+vNBr+lPd7zwbIO4/1Z18JeQdK2aeHvFub1LDFk30+3kw6eTliFe2rH1fQtafbRh3
+Y88dVQNABIf1W6V+Mcx6cTXIhu+0MYrtah4BLZ5oMqkHYAqRgTDEbcd4+XGtADgJ
+KZmjM8uLehoduT1xQAA8Kk7OqfmNCswKgpHNzsl9z47JtVp/iKRrTbWoUfRBguHG
+igB+Xg3ZAgv9ZLZFA2x6Tmd9LDhTKjojukRCyvU+pju0VDKbdiTIkXvdZLHA/Uyz
+jowzTHAcOs2tBlf8z+xxmx9cPk5GBB84gUf7TP20d6UkcfepqWkQuFUyLttjQNig
+DvCSNQUR4wq+wf/546Juf7KfjBgwI8NYfjjaAHfZtHY+TkuUsrvBlMZlHnfK+ZLu
+qsAjKigb9rOnOcEiYRaCCujbWEemfL75yQkbRi1TjNcrA3Rq539eYiksMRViqEZQ
+XcgtuFQziuSfUjXJW5EXjM8t1crO9APsnRgQxicrBFs7cfnca4DWP91KjprbHmli
+ppUm1DFhwaQdVw15ONrUpA4ynNDkDmX//////////wIBAgICAXcEMQIvQJ+3F7o/
+XE6oeVRpsU2/uXFpNvtD8s2NMEZqecJQLHVJetCYm1TgrIW1T9WH8Mg=
+-----END PRIVATE KEY-----
+
+PublicKey=ffdhe6144-1-pub
+-----BEGIN PUBLIC KEY-----
+MIIGKDCCAxsGCSqGSIb3DQEDATCCAwwCggMBAP//////////rfhUWKK7Spqv3FYg
+Jz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT3x7V
+1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId8Vih
+Nq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSuVu3n
+Y3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD/jsb
+TG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhH8/c3jVbO2UZA1u8NPTe
++ZwCOGG0b8nW5skHetkdJpH39+5ZjLD6wYbZHK7+EwmFE5JwtBMMk7xDeUT0/URS
+4tdN02Ty4h5x9Uv/XK6Cq5yd9p7obSvFIjY6DavFIZebDeraHb+aQtXESE4KvNBr
++lPd7zwbIO4/1Z18JeQdK2aeHvFub1LDFk30+3kw6eTliFe2rH1fQtafbRh3Y88d
+VQNABIf1W6V+Mcx6cTXIhu+0MYrtah4BLZ5oMqkHYAqRgTDEbcd4+XGtADgJKZmj
+M8uLehoduT1xQAA8Kk7OqfmNCswKgpHNzsl9z47JtVp/iKRrTbWoUfRBguHGigB+
+Xg3ZAgv9ZLZFA2x6Tmd9LDhTKjojukRCyvU+pju0VDKbdiTIkXvdZLHA/Uyzjowz
+THAcOs2tBlf8z+xxmx9cPk5GBB84gUf7TP20d6UkcfepqWkQuFUyLttjQNigDvCS
+NQUR4wq+wf/546Juf7KfjBgwI8NYfjjaAHfZtHY+TkuUsrvBlMZlHnfK+ZLuqsAj
+Kigb9rOnOcEiYRaCCujbWEemfL75yQkbRi1TjNcrA3Rq539eYiksMRViqEZQXcgt
+uFQziuSfUjXJW5EXjM8t1crO9APsnRgQxicrBFs7cfnca4DWP91KjprbHmlippUm
+1DFhwaQdVw15ONrUpA4ynNDkDmX//////////wIBAgICAXcDggMFAAKCAwBzyuwl
+M1Ob9DJTGZFXugtmiHnnrC1Fuct0huyPoASXtbCo95FNnOqUe6VNfcMwagTmiD/t
+h3NRki3CvzchadgeJgQAJlyFzbRQr/NhwPNFkSKT08fMNe+InrVqvpz13tN6vJ7Y
+nSPJZXIwX1dHp7TgNatEFKc6sIYO2yy7WUNPVRokRtRH0F4ceXO/eMdQtjJ3coR5
+HPflfNJxPOlonygJ9Blk4tO7ngqAyifqVUVgVXqvUx1Wkpzo1t91HrG6YExrok9V
+92D8LXXS2qMfKvI66sF6avpBowyOoTj9pTvRW/z3umEmPLKzpVURzrzEa7MwDsmc
+sdNz9QWWHFCW5Jd2pPzuJnH55amZsKoEl2Bel62SrbzzjGKZBn1sxT6LyPrnJdZX
+fjiThE9E2fObPRA5A4dgxlmHsjbmMn3ERSQJdnQqaMme0PBzcZgZqLzULR3wWCh8
+r2dMoce4972VA6KvVSkxv0RfltrGhfCT+ERoaFg5Rcn/Sa2rXQEPT2wmhc1McjyU
+KMdYjstamKNurZPdfMU8pL9t/DUmWlr4ruDmgK1T9ODxyyGQHAf6/2JlCXv6cbks
+r+ZtEF3nBJ8cwLyiqaCEgMtXfoP64a/AcXeCvEnQgssq3Zot6pGRaUF162d1d+7R
+ekQ5ZIvEIVqhg/4OWhjK45jJw+MoA+tXRmXCpTyDq2sq3GMLQntWzDSns5WGBHY3
+oC7hQUSEQF3GjBiAkOgFGgSR/N4V8iL/DeRRodB/Sbo7lbJlFL8wdiZhZN0bAVyB
+bdsCUNBtCCK8gMqv4+wJBlQnZFX8XWVGahqQ3ph5WZce0IDvhOoCilLGP9PQLLHD
+sLLOfYgMB/h/UnEF+5Nmsn17EF6R48+JcBkAlfnCK5zFXlK6T9wJE2MuaBatbDLf
+TeSmUtWtEBNADNoVZHzEt0sxQimu+U8LAbuvkBmCqkZZLhlKNtEgNQYsZeOa1PSF
+Xf4grDcL+jWdbCohl06eB8gADPMFzkTxGNxf7PDNUD0qR76Y657h58CeRSw=
+-----END PUBLIC KEY-----
+
+PublicKey=ffdhe6144-2-pub
+-----BEGIN PUBLIC KEY-----
+MIIGKTCCAxsGCSqGSIb3DQEDATCCAwwCggMBAP//////////rfhUWKK7Spqv3FYg
+Jz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT3x7V
+1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId8Vih
+Nq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSuVu3n
+Y3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD/jsb
+TG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhH8/c3jVbO2UZA1u8NPTe
++ZwCOGG0b8nW5skHetkdJpH39+5ZjLD6wYbZHK7+EwmFE5JwtBMMk7xDeUT0/URS
+4tdN02Ty4h5x9Uv/XK6Cq5yd9p7obSvFIjY6DavFIZebDeraHb+aQtXESE4KvNBr
++lPd7zwbIO4/1Z18JeQdK2aeHvFub1LDFk30+3kw6eTliFe2rH1fQtafbRh3Y88d
+VQNABIf1W6V+Mcx6cTXIhu+0MYrtah4BLZ5oMqkHYAqRgTDEbcd4+XGtADgJKZmj
+M8uLehoduT1xQAA8Kk7OqfmNCswKgpHNzsl9z47JtVp/iKRrTbWoUfRBguHGigB+
+Xg3ZAgv9ZLZFA2x6Tmd9LDhTKjojukRCyvU+pju0VDKbdiTIkXvdZLHA/Uyzjowz
+THAcOs2tBlf8z+xxmx9cPk5GBB84gUf7TP20d6UkcfepqWkQuFUyLttjQNigDvCS
+NQUR4wq+wf/546Juf7KfjBgwI8NYfjjaAHfZtHY+TkuUsrvBlMZlHnfK+ZLuqsAj
+Kigb9rOnOcEiYRaCCujbWEemfL75yQkbRi1TjNcrA3Rq539eYiksMRViqEZQXcgt
+uFQziuSfUjXJW5EXjM8t1crO9APsnRgQxicrBFs7cfnca4DWP91KjprbHmlippUm
+1DFhwaQdVw15ONrUpA4ynNDkDmX//////////wIBAgICAXcDggMGAAKCAwEApE+s
+hUrveNP2zEv2CVJjLd4J58258c5kZDsMZmWE8k2LEJ04atl0Xa0G4ftlf8A3rDEu
+r22KJNZB+F6WBqpk/rzB6RDKC276ulE9+Aa3v2KXjQZAyLimro41T+mAVh15Anb4
+1ivcwCuL70BGT4wg6+bsgwfm1x7Q63DkqARk0FrNMO9dMibI6Y7Pg1gpU0cz975G
+VsxWvFeA8EfS/eC8KaBGHiSSWwKofDz2Y5pYZOnmjgh+8b2zEuVHdyOQ8fnoreDg
+nTnvkjjYH/4Gw5Y/XtmN7slbHywGCs51ujGiIqZf0U3/1IBnA/ir2FKSfbFZYySX
+Y/i8bSx9orvz9xEmOfUmoxil0TjWpaOx+T9e1IqWijmLqnt2zleBu6FSB9/F+2RG
+f6sPqLAs7lGBsby/uIpXNwuUkYHNc1tVdGyX+9dcQWTTMD88WyC33MIPOuiU5Svu
+nGx2VSX8wtsxDp4MxkVMxBleJHzDmdBkpJZDlWb6u1Fxrok5KktLCxN1wtLpJPEB
++ZNLnI98QXYpII2sXJWebB/EpD9OCj6J0gXJ6E+jXEkzZVGPvt+7betdP8Dzpg2i
+URC/uYcwpK9cWuCnwo9jnXAlLwDLpOhSCYxileW6kDLCWDh4b/LduZnDNX/ycdcH
+zTarTiYELHBzGAhhMt/SWB8bfVIhoEY2MOHl50ipMsmw2h27LqSNSW7RTreWziTR
+uxhvz7Z+aQODz/DfnWbh3tuaNBpxr7Z93K1jdaMUcbe2pjqDhd6vK9Ez4xPxeM2V
+ELjEQ2iTT1EDr4fjhzdbIBL58rbaTK7/Q513Iq4gXDSgrf7YlXzvxlHKA/M4vYLX
+Ymd+ih12vdfj4ZF09eZJgkY9WmdrHeLEJWqAj2G9UONZFsDgXrwU9gIcmiwGaEDk
+58C/g5aQb2XPJE08E2pmeXJJTqROWHXNrkTOnJfWoHsxTHwpmjzDUkZ2jUowDhEA
+MUudIw1y4BTPvz7EIlEY+Lz9loyuGQwgMYGg8tsxvyFuOA9IsdF4DHHcjQ6W
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ffdhe6144-1:ffdhe6144-1-pub
+
+PrivPubKeyPair=ffdhe6144-2:ffdhe6144-2-pub
+
+Derive=ffdhe6144-1
+PeerKey=ffdhe6144-2-pub
+SharedSecret=02B4252E4F0F659E78A58223DE9044AD90A0CC22DB5DE4F4815BF7226B7E663AE1B548A1ADB4ED81E9AF0B62FF985BF1E9893E39BA56FD843B6A134923156DD7D51DE9811B14ABA4494EAA95DA2AF8ACAD6AB2480A96A5DB99B46456FDEBDF1083220566F5DD3EC52DD06E72558B4701B528C989C06CE245EEF6215F487CFD1580615E6FE7D036985782E9BCC7ED62D2AA5A869FBF668391A0E601C2EC7A9A2E0DB57736C54ACA751E1085ABD4A55D506EFAB6FFC51AEEA33DD5EA651AA613E5F77BC81D2489FABABC8AEEF1DE5B65C3584F4080E4324EF3722AB4BF67A8FCABAE430996E454CA985B886D1B6BB5FF2C5246A8C001D953751EB59C47DAC678EE890DE817D9A06877E86516291A170ABE2273C4ADCF638713D98283F90DA17478759537C58A5D7D6AAC54C0485CAC2407A76079625ED285444ECA18127FF42419FADBDA2EDD5300CCB5F69543BCB74005BECE1FED763B06766B05EF2E20B685B92910C16B70165D111B2F8C59C6C79E5BCAC96FD2A6A969061C6D8626E605DA70E247630CF8A1D419C0E4910A72C164117B92B651CA8C8842E79C06E0E12BF8B67C218FB7FEB0F787EBBD2562E5C88A38013133753AECA5B03ECB54328765F61A6D3B901C38EC8F6582D717C688049893129DCAE597F3888E8E8BBCD9AAC9BDBD087926EAA63592DA66C085CBC408A5EC787CF0E3CE3070918B65B089A23457D0408B626B449221B460D1FD8DCCB280744B322760A53945DCD8FAA03DB4844F27496DA00B30ACC8619679D0AD28CE4464094C6DB2F68332BAD17348637E4D72B0C1EBCBBDDE514691C744F709083A76044AC85AF1B18ACD0B1716773DDB82ED94E02B0DB26205BD683A1F4E390881D556AAC305FCEB7E00AF0E3EC80AF2CD46769ED4F471DC71B60BEF36F6361B4A82C7A7F473F61C566D5206C9EFDC112A48BDDC58691830F64C91F4FB150DC61A334B7D5C3770BDBDC91A5E14C6FB02A369A0A7D2D7B008070289EFBDBB2AFD4D62BCC095E9FF81CB8E0B4F139EFD3CF5EDF243FCC08A8FA7577AEF0548436B589C4A221BE1FCE223024619F99DC66557598F
+
+Derive=ffdhe6144-2
+PeerKey=ffdhe6144-1-pub
+SharedSecret=02B4252E4F0F659E78A58223DE9044AD90A0CC22DB5DE4F4815BF7226B7E663AE1B548A1ADB4ED81E9AF0B62FF985BF1E9893E39BA56FD843B6A134923156DD7D51DE9811B14ABA4494EAA95DA2AF8ACAD6AB2480A96A5DB99B46456FDEBDF1083220566F5DD3EC52DD06E72558B4701B528C989C06CE245EEF6215F487CFD1580615E6FE7D036985782E9BCC7ED62D2AA5A869FBF668391A0E601C2EC7A9A2E0DB57736C54ACA751E1085ABD4A55D506EFAB6FFC51AEEA33DD5EA651AA613E5F77BC81D2489FABABC8AEEF1DE5B65C3584F4080E4324EF3722AB4BF67A8FCABAE430996E454CA985B886D1B6BB5FF2C5246A8C001D953751EB59C47DAC678EE890DE817D9A06877E86516291A170ABE2273C4ADCF638713D98283F90DA17478759537C58A5D7D6AAC54C0485CAC2407A76079625ED285444ECA18127FF42419FADBDA2EDD5300CCB5F69543BCB74005BECE1FED763B06766B05EF2E20B685B92910C16B70165D111B2F8C59C6C79E5BCAC96FD2A6A969061C6D8626E605DA70E247630CF8A1D419C0E4910A72C164117B92B651CA8C8842E79C06E0E12BF8B67C218FB7FEB0F787EBBD2562E5C88A38013133753AECA5B03ECB54328765F61A6D3B901C38EC8F6582D717C688049893129DCAE597F3888E8E8BBCD9AAC9BDBD087926EAA63592DA66C085CBC408A5EC787CF0E3CE3070918B65B089A23457D0408B626B449221B460D1FD8DCCB280744B322760A53945DCD8FAA03DB4844F27496DA00B30ACC8619679D0AD28CE4464094C6DB2F68332BAD17348637E4D72B0C1EBCBBDDE514691C744F709083A76044AC85AF1B18ACD0B1716773DDB82ED94E02B0DB26205BD683A1F4E390881D556AAC305FCEB7E00AF0E3EC80AF2CD46769ED4F471DC71B60BEF36F6361B4A82C7A7F473F61C566D5206C9EFDC112A48BDDC58691830F64C91F4FB150DC61A334B7D5C3770BDBDC91A5E14C6FB02A369A0A7D2D7B008070289EFBDBB2AFD4D62BCC095E9FF81CB8E0B4F139EFD3CF5EDF243FCC08A8FA7577AEF0548436B589C4A221BE1FCE223024619F99DC66557598F
+
+PrivateKey=ffdhe8192-1
+-----BEGIN PRIVATE KEY-----
+MIIEWQIBADCCBBsGCSqGSIb3DQEDATCCBAwCggQBAP//////////rfhUWKK7Spqv
+3FYgJz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT
+3x7V1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId
+8VihNq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSu
+Vu3nY3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD
+/jsbTG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhH8/c3jVbO2UZA1u8
+NPTe+ZwCOGG0b8nW5skHetkdJpH39+5ZjLD6wYbZHK7+EwmFE5JwtBMMk7xDeUT0
+/URS4tdN02Ty4h5x9Uv/XK6Cq5yd9p7obSvFIjY6DavFIZebDeraHb+aQtXESE4K
+vNBr+lPd7zwbIO4/1Z18JeQdK2aeHvFub1LDFk30+3kw6eTliFe2rH1fQtafbRh3
+Y88dVQNABIf1W6V+Mcx6cTXIhu+0MYrtah4BLZ5oMqkHYAqRgTDEbcd4+XGtADgJ
+KZmjM8uLehoduT1xQAA8Kk7OqfmNCswKgpHNzsl9z47JtVp/iKRrTbWoUfRBguHG
+igB+Xg3ZAgv9ZLZFA2x6Tmd9LDhTKjojukRCyvU+pju0VDKbdiTIkXvdZLHA/Uyz
+jowzTHAcOs2tBlf8z+xxmx9cPk5GBB84gUf7TP20d6UkcfepqWkQuFUyLttjQNig
+DvCSNQUR4wq+wf/546Juf7KfjBgwI8NYfjjaAHfZtHY+TkuUsrvBlMZlHnfK+ZLu
+qsAjKigb9rOnOcEiYRaCCujbWEemfL75yQkbRi1TjNcrA3Rq539eYiksMRViqEZQ
+XcgtuFQziuSfUjXJW5EXjM8t1crO9APsnRgQxicrBFs7cfnca4DWP91KjprbHmli
+ppUm1DFhwaQdVw15ONrUpA4ynM/0aqo2rQBM9gDIOB5CWjHZUa5k/bI/zslQnUNo
+f+tp7dHMXguMw732SxDvhrYxQqOriClVWy90fJMmZcssDxzAG9cCKTiIOdKvBeRU
+UErHi3WCgihGwLo1w19cWRYMwEb9glFUH8aMnIawIrtwmYdqRg50UaipMQlwP+4c
+IX5sOCblLFGqaR4OQjz8menjFlDBIXtiSBbNrZqV+dW4AZSI2cCgof4wdaV34jGD
++B1KPy+kVx78jOC6ik/otoVd/nKwpm7e0vur++WKMPr6vhxdcah+L3Qe+MH+hv6m
+u/3lMGd/DZfRHUn3qEQ9CCLlBqn0YU4BHiqUg4/4jNaMi7fFxkJM//////////8C
+AQICAgGQBDUCMwCmIsCXuloAz6Y+lwiHSiQDK3YRde+rRZ2K2pj6HFytJCsjVp88
+9fLrPJUuRBScbgYaCQ==
+-----END PRIVATE KEY-----
+
+PrivateKey=ffdhe8192-2
+-----BEGIN PRIVATE KEY-----
+MIIEWQIBADCCBBsGCSqGSIb3DQEDATCCBAwCggQBAP//////////rfhUWKK7Spqv
+3FYgJz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT
+3x7V1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId
+8VihNq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSu
+Vu3nY3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD
+/jsbTG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhH8/c3jVbO2UZA1u8
+NPTe+ZwCOGG0b8nW5skHetkdJpH39+5ZjLD6wYbZHK7+EwmFE5JwtBMMk7xDeUT0
+/URS4tdN02Ty4h5x9Uv/XK6Cq5yd9p7obSvFIjY6DavFIZebDeraHb+aQtXESE4K
+vNBr+lPd7zwbIO4/1Z18JeQdK2aeHvFub1LDFk30+3kw6eTliFe2rH1fQtafbRh3
+Y88dVQNABIf1W6V+Mcx6cTXIhu+0MYrtah4BLZ5oMqkHYAqRgTDEbcd4+XGtADgJ
+KZmjM8uLehoduT1xQAA8Kk7OqfmNCswKgpHNzsl9z47JtVp/iKRrTbWoUfRBguHG
+igB+Xg3ZAgv9ZLZFA2x6Tmd9LDhTKjojukRCyvU+pju0VDKbdiTIkXvdZLHA/Uyz
+jowzTHAcOs2tBlf8z+xxmx9cPk5GBB84gUf7TP20d6UkcfepqWkQuFUyLttjQNig
+DvCSNQUR4wq+wf/546Juf7KfjBgwI8NYfjjaAHfZtHY+TkuUsrvBlMZlHnfK+ZLu
+qsAjKigb9rOnOcEiYRaCCujbWEemfL75yQkbRi1TjNcrA3Rq539eYiksMRViqEZQ
+XcgtuFQziuSfUjXJW5EXjM8t1crO9APsnRgQxicrBFs7cfnca4DWP91KjprbHmli
+ppUm1DFhwaQdVw15ONrUpA4ynM/0aqo2rQBM9gDIOB5CWjHZUa5k/bI/zslQnUNo
+f+tp7dHMXguMw732SxDvhrYxQqOriClVWy90fJMmZcssDxzAG9cCKTiIOdKvBeRU
+UErHi3WCgihGwLo1w19cWRYMwEb9glFUH8aMnIawIrtwmYdqRg50UaipMQlwP+4c
+IX5sOCblLFGqaR4OQjz8menjFlDBIXtiSBbNrZqV+dW4AZSI2cCgof4wdaV34jGD
++B1KPy+kVx78jOC6ik/otoVd/nKwpm7e0vur++WKMPr6vhxdcah+L3Qe+MH+hv6m
+u/3lMGd/DZfRHUn3qEQ9CCLlBqn0YU4BHiqUg4/4jNaMi7fFxkJM//////////8C
+AQICAgGQBDUCMwCJ64IxAZbrPx6XmQG5Jliud12CCXsepFzxQaLdGqV4VtiHzZBl
+O47nScNTRN7Ol2e1Og==
+-----END PRIVATE KEY-----
+
+PublicKey=ffdhe8192-1-pub
+-----BEGIN PUBLIC KEY-----
+MIIIKDCCBBsGCSqGSIb3DQEDATCCBAwCggQBAP//////////rfhUWKK7Spqv3FYg
+Jz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT3x7V
+1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId8Vih
+Nq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSuVu3n
+Y3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD/jsb
+TG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhH8/c3jVbO2UZA1u8NPTe
++ZwCOGG0b8nW5skHetkdJpH39+5ZjLD6wYbZHK7+EwmFE5JwtBMMk7xDeUT0/URS
+4tdN02Ty4h5x9Uv/XK6Cq5yd9p7obSvFIjY6DavFIZebDeraHb+aQtXESE4KvNBr
++lPd7zwbIO4/1Z18JeQdK2aeHvFub1LDFk30+3kw6eTliFe2rH1fQtafbRh3Y88d
+VQNABIf1W6V+Mcx6cTXIhu+0MYrtah4BLZ5oMqkHYAqRgTDEbcd4+XGtADgJKZmj
+M8uLehoduT1xQAA8Kk7OqfmNCswKgpHNzsl9z47JtVp/iKRrTbWoUfRBguHGigB+
+Xg3ZAgv9ZLZFA2x6Tmd9LDhTKjojukRCyvU+pju0VDKbdiTIkXvdZLHA/Uyzjowz
+THAcOs2tBlf8z+xxmx9cPk5GBB84gUf7TP20d6UkcfepqWkQuFUyLttjQNigDvCS
+NQUR4wq+wf/546Juf7KfjBgwI8NYfjjaAHfZtHY+TkuUsrvBlMZlHnfK+ZLuqsAj
+Kigb9rOnOcEiYRaCCujbWEemfL75yQkbRi1TjNcrA3Rq539eYiksMRViqEZQXcgt
+uFQziuSfUjXJW5EXjM8t1crO9APsnRgQxicrBFs7cfnca4DWP91KjprbHmlippUm
+1DFhwaQdVw15ONrUpA4ynM/0aqo2rQBM9gDIOB5CWjHZUa5k/bI/zslQnUNof+tp
+7dHMXguMw732SxDvhrYxQqOriClVWy90fJMmZcssDxzAG9cCKTiIOdKvBeRUUErH
+i3WCgihGwLo1w19cWRYMwEb9glFUH8aMnIawIrtwmYdqRg50UaipMQlwP+4cIX5s
+OCblLFGqaR4OQjz8menjFlDBIXtiSBbNrZqV+dW4AZSI2cCgof4wdaV34jGD+B1K
+Py+kVx78jOC6ik/otoVd/nKwpm7e0vur++WKMPr6vhxdcah+L3Qe+MH+hv6mu/3l
+MGd/DZfRHUn3qEQ9CCLlBqn0YU4BHiqUg4/4jNaMi7fFxkJM//////////8CAQIC
+AgGQA4IEBQACggQAYZTSEWGhvKQeJkBdr/GN4zoD8oGuXpS8nxQctcjzIQfg25dA
+vl/bDaCM+PMEe47H3q6qyWN4VuAlXmnE52hqebVlUiQ/H5dfmaRE1UMxQNLfmTYW
+qpJaN1YFqbCQpng8nmVtqZBtgC6L8nRc9MkOWKgZC95e/sMyPOt0w3LvTZ6Uz9Tw
+w5PuVX6sUC8jOLiJCHFypVeTmZQtfB9+OHxUe7fYN+XYEGeZBfFt4f1b05AjH2/C
+vXO0i6tw0RG96H/nMt1OXGPEEoC6BiWZsXYFghG+n34wRGJ/0R3GVbhmLSlBxPum
+r8urHjf3lopKXVXE761YPX/pYBCWIpGiEmYdg1SQ3vd+a7qkFOR5qUfQkS0zsGAD
+ghn+9vuniOXbKBBlU6zN7qJ3+TKaGXgJWKI1d9b6DZsYmU+3x5flW78kHr+tQz3d
+/wU9qHQ/Ow5EO/CZrxntxryPrXvLOjeAMlBbxaloHKwcnWav3soqLtASZ0r1px6A
+JAjxPLEdhpWKeVhCHNum++YD2uW9IeO/IBRLyKakFzoSc5I6yLNX4pywrQi/DPa5
+1Qr5Jg1wJODCAFChLdX0+BwMz5HTSx2gseGzcsNSuTBE5VwJ9zKYxe0mpl0MPXt2
+eXf1DxmH16LvVGm4m9KJ/xPf6x2fN/+MJyGHN7DUSVt5Ke8X70KsWJj4SD5c5aN9
+JEQiPswgCiOO/L9cA3RyXV3wdn++92m0LUp8nTvQ7XP0F1DZp75JlX9B6JAVkQ4s
+1lgNPzKU3OspkRsUtihK7MD4e3Cqz11SjVQqtJLc1Lw8L7QtWFflh6rMk8U2iHgx
+eEOyVkJMa9YACuo6OFcZheobhmYvsm1R/9D766foehL4P2Q2FqijHYMg6cD9fPkB
+8ie2O+DIvo0oms/69q888J71GncJ6eE88P9ipSQKpBd1PALIDMgUKZQsmBYHyLXC
+XgGtrdspQ1sHEk/2XOaGcx11okLGv98+LkdElZtqM/48eDm5Lw58BF3R9t6druEF
+/dbsBTgNfeoWkBJaakxOUxMKXg1rxpxi1xo9+yohN0htYZeSj5NDEFn4DixuCagj
+/WP9bkB5f5LY44Z9JPF1LnI69ndlT2lc4henwZLY7kBMb3CvvjUDkE5v9gEBJA8u
+ZTpZ/VhX65+L5PLNca45BeUzq4kA72IwvP4+z0gY77/mRwtxuDSKXu5381ULKNIQ
+TY7siPrDaDCNNz5WqjaLOrQPqfopeVr4fjoXsCiGWWdIV1Q0RX5Y2uNbX4SjVvEb
+Risp2sTjgPCg1ox61zX+lD3JHvopO46qCvYHsCEgK80R3KY6MOBkdDn6XE5pN+Br
+uBBxf1k6qpOXmJ34OL4QpZBO0FHldrpRFjShtg==
+-----END PUBLIC KEY-----
+
+PublicKey=ffdhe8192-2-pub
+-----BEGIN PUBLIC KEY-----
+MIIIKDCCBBsGCSqGSIb3DQEDATCCBAwCggQBAP//////////rfhUWKK7Spqv3FYg
+Jz088di5xYPOLTaVqeE2QRRkM/vMk53OJJs++X0v42NjDHXY9oGyAq7EYXrT3x7V
+1f1lYSQz9R9fBm7QhWNlVT3tGvO1VxNef1fJNZhPDHDg5ot34qaJ2vPv6HId8Vih
+Nq3nNTCsyk9IOnl6vAqxgrMk+2HRCKlLssjj+7lq2rdg1/RoHU9Co945TfSuVu3n
+Y3K7GQsHp8juCm1wngL84c334uzANATNKDQvYZFy/pzphYP/jk8SMu7ygYPD/jsb
+TG+tczu1/LwuwiAFxY7xg30Wg7LG80omwbLv+ohrQjhhH8/c3jVbO2UZA1u8NPTe
++ZwCOGG0b8nW5skHetkdJpH39+5ZjLD6wYbZHK7+EwmFE5JwtBMMk7xDeUT0/URS
+4tdN02Ty4h5x9Uv/XK6Cq5yd9p7obSvFIjY6DavFIZebDeraHb+aQtXESE4KvNBr
++lPd7zwbIO4/1Z18JeQdK2aeHvFub1LDFk30+3kw6eTliFe2rH1fQtafbRh3Y88d
+VQNABIf1W6V+Mcx6cTXIhu+0MYrtah4BLZ5oMqkHYAqRgTDEbcd4+XGtADgJKZmj
+M8uLehoduT1xQAA8Kk7OqfmNCswKgpHNzsl9z47JtVp/iKRrTbWoUfRBguHGigB+
+Xg3ZAgv9ZLZFA2x6Tmd9LDhTKjojukRCyvU+pju0VDKbdiTIkXvdZLHA/Uyzjowz
+THAcOs2tBlf8z+xxmx9cPk5GBB84gUf7TP20d6UkcfepqWkQuFUyLttjQNigDvCS
+NQUR4wq+wf/546Juf7KfjBgwI8NYfjjaAHfZtHY+TkuUsrvBlMZlHnfK+ZLuqsAj
+Kigb9rOnOcEiYRaCCujbWEemfL75yQkbRi1TjNcrA3Rq539eYiksMRViqEZQXcgt
+uFQziuSfUjXJW5EXjM8t1crO9APsnRgQxicrBFs7cfnca4DWP91KjprbHmlippUm
+1DFhwaQdVw15ONrUpA4ynM/0aqo2rQBM9gDIOB5CWjHZUa5k/bI/zslQnUNof+tp
+7dHMXguMw732SxDvhrYxQqOriClVWy90fJMmZcssDxzAG9cCKTiIOdKvBeRUUErH
+i3WCgihGwLo1w19cWRYMwEb9glFUH8aMnIawIrtwmYdqRg50UaipMQlwP+4cIX5s
+OCblLFGqaR4OQjz8menjFlDBIXtiSBbNrZqV+dW4AZSI2cCgof4wdaV34jGD+B1K
+Py+kVx78jOC6ik/otoVd/nKwpm7e0vur++WKMPr6vhxdcah+L3Qe+MH+hv6mu/3l
+MGd/DZfRHUn3qEQ9CCLlBqn0YU4BHiqUg4/4jNaMi7fFxkJM//////////8CAQIC
+AgGQA4IEBQACggQADNgThA6Ha+5i9Zm9ZCNDLMbsyzoLdM0uK3sJ+jsTn2tw+kBG
+FJo5EEk6ojw0VGasoC8e9ThX78YHiCG18vPbLteE/CD4g+jGo/KcOUfrZV3uHBwv
+Y9F9fIcZi9XTBa9Np6yntpYh/fXxClWybWscdRXVXTv9AJ0GMCGa6ebV7++AwVee
+1C3U47omYwVET7adSmqzbcjNF42dConPlB7tTMCtJR92xYHCFK07kRT17OAdVJyf
+KDdzLeW1VJBzbkdrGCAJSx3iwRp6d6ldeFdDhcUEzgQZnB/JnVmEoZDXK4i2KYc4
+b78VivuOAuZFdokC1g+RsGgWkGhDxnsGPWvPWACTzm+zTjMyENygkEyzp3moBjMm
+doXE4z11V6zm7ZoNxJ7ouzTEpLMvu7XcavKv/uVbsW7uAJqbosIsqWLdcxaDEFzG
+W54Se2EaybZj/gr2tQHGAfE01+ulSJ57fuhSPLVgtpDcS98meWgKS4ddHr9dLFe6
+886fZvAvswW1ZlND7UZihtKIl3Nx0Myn+B+YG2oJQp0vsmMh1sCGD0g007TGUe82
+3/xgRXlUjwmCDikpXCSTagm3ZKF6GqJNwJN2sxCqy6wp2LX/KM3oSErXxCBTSCZt
+/wAzGd3tDcH4D79kbzIRtCCcfLI/TqC95OW3ANR6obd3ongV2rW1HyN3mLOgzuDv
+phVP0XX4fIGGGGmz76AJdpcIhXzlzQcY1fDjH59WOuOFZylxAmfNziM6ORL/FyMZ
+YxZLSx7TrHEiiRAT431hpx4f9qE5SePhg1HXqzBPA8YJtV1WiJWjO/u4LP9H7iIl
+4eubdVZqV6k2Kaw3WB7ZgST4Jc9ybiVT/kz0nTA7AF0TXSNL/BsBrEwZz8wrKlHu
+rj5MOUpAPwRlLUln11w7gTz98lvEBSyInMSjOr+0NmW77D+IWoAwWBdrcuRE2Dod
+rjhZeWrHWdgNqPOaYKkUS+CexH01aEdX3YHFmGPyXrwOkmX0zjBns3RjRzA9Dyjk
+qgG/mKQ243smQPIUDHvbfgmdLNHOg0iOyDq1nKWk5K6X3tEgUnmxkcONQ66QXyEB
+BpXtyD1NFg0op0p0/7jNpQUsNeKx9gRsTfUC7TDS4bYnJT+vNOFYiKClVC6lgrYT
+4dBvQQx44OY4VIwrXOl5H3Z5DR3D4Gg/yMtqizXmiCffVG3I8NJSrAm3QVS/xxxv
+fj2ITAUI3nmvKJD1IGXo4T/+N5GGexEWMu1IuDO4vkcKhYWIHlyAEC1paJjOslbU
+vbRjLQvAYe0P1TBk+2mal5Agh0UQHyYsDlxMDmortsKhLDXOVjAx2AS9VV2tBbpZ
+pEt4opfkapIwZaJV+5MgtHyWMFQ6w2QF/CdUAg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ffdhe8192-1:ffdhe8192-1-pub
+
+PrivPubKeyPair=ffdhe8192-2:ffdhe8192-2-pub
+
+Derive=ffdhe8192-1
+PeerKey=ffdhe8192-2-pub
+SharedSecret=4E48335CB2A508C3481729F42C49CFC0A9DA673F9FA4FBD968B3C5B78DBFA8695295642D1337C54229370B33068481F6A6E1B021F8B09B7C6B3E4DB581AD4C7ACF5C230A1FD4107EAE55530A8376856A65E079DE1BDA41B050E9B53A088ACADB879CCBC683A13BB925D48497BF7021FEB9DA214DD77FCBB6D0D46EC2BB9C7A9AFB93FC236E4EB61CB0F0C8E025D8CF4AF8B3B0F28B3E2CFAE6E760DC7877C71046179154FBE1A50A315C4DBA6D9E06406D389B614B1FC422C72FBB958C0A2EE21694CD32136F9CF0A1205E0D3A4B10CC9C98B3B4524A0CDC9455D3021AC44057CEF4A97E85166068769E9E644CC447095243BB90368A1CE6F0E3C69CA180F5B9D51F590A812B1375460CF10A7E718A83A2F6B00D8E28BAB45CEAB8AF0EB02988ED9221416EC061C1C4081552D3D0849D243DB473EC7B90180C3891E768DD2D7002CF505D369700CAF02A4B9DD1F2828C4ACC1F2EB47100DC2DB5620ADA971D1B0B0FAC9F9E3492B591FC85AC3DCB3826A8DA5842F4AE145FE33BFCDD0B6CD15C9836A5862EDB3D87A0CDBD724AE19A79A55D4F0BFF7870019926181933C840EACFB70FBC0EF182057DC09E06798EB4C9AAC2285F22F5D907A432C6D00CC44D07D77E77D1ACC183A174146ECFBDA26FF922CEBD2FA288EF2D23F65C0AAAD0F05DBFB6CA12446082D1F5774877483C3858442E305CF2A9637CE0EBB702DB70FF336E5B0413F3E8791960F1F0A9877C9076213D40657283D546AE52B73FF4449E60F8B6FE30D4CC0BA1ACA7A7DC155EC73C48B21477983D004261267D710D8A5E8CBD0656F1A963F248E887E8C2BF87BCAE7A0D4891BF21FCF35893584B29E18E842A23EA329ADD3D6AD994B5CBFBBFAB5A26932E8F799B2B0FA7789DE7A4A5C4B7FA81971819EA7F33B5BF6577F917BDE9C3680BCC5B15F1EAB4524A1B6DEE96B9F108A77344269A1757685D0404C832E4E0C5A29F808CFA6290316C0EBB2EF0A7431F62A5FBCDC66527AD8A04C0F10AF88C7CE1F1F22C41B71CE278BB704E88145608C28AD78402487031F6B13604CC6687161EBB78E7AF7AA0BC3CCB9AD8B00D7C01980599904B71F5DBC06A691E5638566BE36522B7FED69E24C28F8EA798BA3E9CCEB8AB8CF5651379A21A38315B05C66205616BBC6A3DD5573C9C6FBA2E3488E055E5F36857016D9300BFCE9F38D7C7CCD07FCF1EF41F8347CADCB12C400536374CF269613B05069B6D94CADA3B1F4ACBB68FA1ED175B01D840D871B3B0CDB918CDF15C79169A398C189AEA78860081DB423C89D350587E26D6D77B4C762B4F2A030345679F724CFBB08DB03E8CEB4FF0B91422BD2EB5C1C356D209049CFA2D6447F69B1E1DF0850FFBB6BB9F8D5B147765C023F76524A808456DEBF6A9134E3364DF462D4807FE6D4D036A4E59A4D56F8A30D8A27F4DFA174940B713A7E4
+
+Derive=ffdhe8192-2
+PeerKey=ffdhe8192-1-pub
+SharedSecret=4E48335CB2A508C3481729F42C49CFC0A9DA673F9FA4FBD968B3C5B78DBFA8695295642D1337C54229370B33068481F6A6E1B021F8B09B7C6B3E4DB581AD4C7ACF5C230A1FD4107EAE55530A8376856A65E079DE1BDA41B050E9B53A088ACADB879CCBC683A13BB925D48497BF7021FEB9DA214DD77FCBB6D0D46EC2BB9C7A9AFB93FC236E4EB61CB0F0C8E025D8CF4AF8B3B0F28B3E2CFAE6E760DC7877C71046179154FBE1A50A315C4DBA6D9E06406D389B614B1FC422C72FBB958C0A2EE21694CD32136F9CF0A1205E0D3A4B10CC9C98B3B4524A0CDC9455D3021AC44057CEF4A97E85166068769E9E644CC447095243BB90368A1CE6F0E3C69CA180F5B9D51F590A812B1375460CF10A7E718A83A2F6B00D8E28BAB45CEAB8AF0EB02988ED9221416EC061C1C4081552D3D0849D243DB473EC7B90180C3891E768DD2D7002CF505D369700CAF02A4B9DD1F2828C4ACC1F2EB47100DC2DB5620ADA971D1B0B0FAC9F9E3492B591FC85AC3DCB3826A8DA5842F4AE145FE33BFCDD0B6CD15C9836A5862EDB3D87A0CDBD724AE19A79A55D4F0BFF7870019926181933C840EACFB70FBC0EF182057DC09E06798EB4C9AAC2285F22F5D907A432C6D00CC44D07D77E77D1ACC183A174146ECFBDA26FF922CEBD2FA288EF2D23F65C0AAAD0F05DBFB6CA12446082D1F5774877483C3858442E305CF2A9637CE0EBB702DB70FF336E5B0413F3E8791960F1F0A9877C9076213D40657283D546AE52B73FF4449E60F8B6FE30D4CC0BA1ACA7A7DC155EC73C48B21477983D004261267D710D8A5E8CBD0656F1A963F248E887E8C2BF87BCAE7A0D4891BF21FCF35893584B29E18E842A23EA329ADD3D6AD994B5CBFBBFAB5A26932E8F799B2B0FA7789DE7A4A5C4B7FA81971819EA7F33B5BF6577F917BDE9C3680BCC5B15F1EAB4524A1B6DEE96B9F108A77344269A1757685D0404C832E4E0C5A29F808CFA6290316C0EBB2EF0A7431F62A5FBCDC66527AD8A04C0F10AF88C7CE1F1F22C41B71CE278BB704E88145608C28AD78402487031F6B13604CC6687161EBB78E7AF7AA0BC3CCB9AD8B00D7C01980599904B71F5DBC06A691E5638566BE36522B7FED69E24C28F8EA798BA3E9CCEB8AB8CF5651379A21A38315B05C66205616BBC6A3DD5573C9C6FBA2E3488E055E5F36857016D9300BFCE9F38D7C7CCD07FCF1EF41F8347CADCB12C400536374CF269613B05069B6D94CADA3B1F4ACBB68FA1ED175B01D840D871B3B0CDB918CDF15C79169A398C189AEA78860081DB423C89D350587E26D6D77B4C762B4F2A030345679F724CFBB08DB03E8CEB4FF0B91422BD2EB5C1C356D209049CFA2D6447F69B1E1DF0850FFBB6BB9F8D5B147765C023F76524A808456DEBF6A9134E3364DF462D4807FE6D4D036A4E59A4D56F8A30D8A27F4DFA174940B713A7E4
+
+Title = SM2 tests
+
+PrivateKey=SM2_key1
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBG0wawIBAQQg0JFWczAXva2An9m7
+2MaT9gIwWTFptvlKrxyO4TjMmbWhRANCAAQ5OirZ4n5DrKqrhaGdO4VZHhRAYVcX
+Wt3Te/d/8Mr57Tf886i09VwDhSMmH8pmNq/mp6+ioUgqYG9cs6GLLioe
+-----END PRIVATE KEY-----
+
+Verify = SM2_key1
+Ctrl = digest:SM3
+Input = D7AD397F6FFA5D4F7F11E7217F241607DC30618C236D2C09C1B9EA8FDADEE2E8
+Output = 3046022100AB1DB64DE7C40EDBDE6651C9B8EBDB804673DB836E5D5C7FE15DCF9ED2725037022100EBA714451FF69B0BB930B379E192E7CD5FA6E3C41C7FBD8303B799AB54A54621
+
+Verify = SM2_key1
+Ctrl = digest:SM3
+Input = B1139602C6ECC9E15E2F3F9C635A1AFE737058BC15387479C1EA0D0B3D90E9E5
+Output = 3045022100E6E0414EBD3A656C35602AF14AB20287DBF30D57AF75C49A188ED4B42391F22402202F54F277C606F4605E1CE9514947FFDDF94C67A539804A4ED17F852288BDBE2E
+
+Verify = SM2_key1
+Ctrl = digest:SHA512
+Input = 40AA1B203C9D8EE150B21C3C7CDA8261492E5420C5F2B9F7380700E094C303B48E62F319C1DA0E32EB40D113C5F1749CC61AEB499167890AB82F2CC9BB706971
+Output = 3046022100AE018933B9BA041784380069F2DDF609694DCD299FDBF23D09F4B711FBC103EC0221008440BB1A48C132DE4FB91BE9F43B958142FDD29FB9DABE01B17514023A2F638C
+
+Decrypt = SM2_key1
+Input = 30818A0220466BE2EF5C11782EC77864A0055417F407A5AFC11D653C6BCE69E417BB1D05B6022062B572E21FF0DDF5C726BD3F9FF2EAE56E6294713A607E9B9525628965F62CC804203C1B5713B5DB2728EB7BF775E44F4689FC32668BDC564F52EA45B09E8DF2A5F40422084A9D0CC2997092B7D3C404FCE95956EB604D732B2307A8E5B8900ED6608CA5B197
+Output = "The floofy bunnies hop at midnight"
+
+# This is a "fake" test as it does only verify that the SM2 EVP_PKEY interface
+# is capable of creating a signature without failing, but it does not say
+# anything about the generated signature being valid, nor does it test the
+# correct implementation of the cryptosystem.
+Sign = SM2_key1
+Ctrl = digest:SM3
+Input = D7AD397F6FFA5D4F7F11E7217F241607DC30618C236D2C09C1B9EA8FDADEE2E8
+Output = 3045022100f11bf36e75bb304f094fb42a4ca22377d0cc768637c5011cd59fb9ed4b130c98022035545ffe2c2efb3abee4fee661468946d886004fae8ea5311593e48f7fe21b91
+Result = KEYOP_MISMATCH
+
+Title = Chosen Wycheproof vectors
+
+PrivateKeyRaw = WychePRIVATE0:X25519:288796bc5aff4b81a37501757bc0753a3c21964790d38699308debc17a6eaf8d
+
+PublicKeyRaw = WychePUBLIC0:X25519:f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f
+
+Derive=WychePRIVATE0
+PeerKey=WychePUBLIC0
+SharedSecret=b4e0dd76da7b071728b61f856771aa356e57eda78a5b1655cc3820fb5f854c5c
+
+PrivateKeyRaw = WychePRIVATE1:X25519:60887b3dc72443026ebedbbbb70665f42b87add1440e7768fbd7e8e2ce5f639d
+
+PublicKeyRaw = WychePUBLIC1:X25519:f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+Derive=WychePRIVATE1
+PeerKey=WychePUBLIC1
+SharedSecret=38d6304c4a7e6d9f7959334fb5245bd2c754525d4c91db950206926234c1f633
+
+PrivateKeyRaw = WychePRIVATE2:X25519:a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63
+
+PublicKeyRaw = WychePUBLIC2:X25519:0ab4e76380d84dde4f6833c58f2a9fb8f83bb0169b172be4b6e0592887741a36
+
+Derive=WychePRIVATE2
+PeerKey=WychePUBLIC2
+SharedSecret=0200000000000000000000000000000000000000000000000000000000000000
+
+PublicKeyRaw = WychePUBLIC3:X25519:89e10d5701b4337d2d032181538b1064bd4084401ceca1fd12663a1959388000
+
+Derive=WychePRIVATE2
+PeerKey=WychePUBLIC3
+SharedSecret=0900000000000000000000000000000000000000000000000000000000000000
+
+PublicKeyRaw = WychePUBLIC4:X25519:2b55d3aa4a8f80c8c0b2ae5f933e85af49beac36c2fa7394bab76c8933f8f81d
+
+Derive=WychePRIVATE2
+PeerKey=WychePUBLIC4
+SharedSecret=1000000000000000000000000000000000000000000000000000000000000000
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evppkey_ecc.txt b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evppkey_ecc.txt
new file mode 100644
index 000000000..8e618c83f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_data/evppkey_ecc.txt
@@ -0,0 +1,4771 @@
+Title=brainpoolP160r1 curve tests
+
+PrivateKey=ALICE_cf_brainpoolP160r1
+-----BEGIN PRIVATE KEY-----
+MDYCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEBBBswGQIBAQQUo0UiM85512uHsr2DkIOYgyxSQxk=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_brainpoolP160r1_PUB
+-----BEGIN PUBLIC KEY-----
+MEIwFAYHKoZIzj0CAQYJKyQDAwIIAQEBAyoABI7OZhLqr+8c3D9Tn6++CqQtc9jG5a1COb1okeZb
+wKJUkmWn6NvNCQQ=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_brainpoolP160r1:ALICE_cf_brainpoolP160r1_PUB
+
+PrivateKey=BOB_cf_brainpoolP160r1
+-----BEGIN PRIVATE KEY-----
+MDYCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEBBBswGQIBAQQUmr0Vq3Z/feXq9tg9s8dxJXne1dU=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_brainpoolP160r1_PUB
+-----BEGIN PUBLIC KEY-----
+MEIwFAYHKoZIzj0CAQYJKyQDAwIIAQEBAyoABAu+ovBXBFQuw3Rt9qeImT6mLh9rerLFnTRL0+LH
+sptS1Mbd0R4+5HM=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_brainpoolP160r1:BOB_cf_brainpoolP160r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_brainpoolP160r1
+PeerKey=BOB_cf_brainpoolP160r1_PUB
+SharedSecret=2e75cb6a8f13951b437e04a0ed1d714a610036cc
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_brainpoolP160r1
+PeerKey=ALICE_cf_brainpoolP160r1_PUB
+SharedSecret=2e75cb6a8f13951b437e04a0ed1d714a610036cc
+
+Title=brainpoolP160t1 curve tests
+
+PrivateKey=ALICE_cf_brainpoolP160t1
+-----BEGIN PRIVATE KEY-----
+MDYCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQECBBswGQIBAQQU1P/o5GQx5PA0kQoiwUtaXBUASUY=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_brainpoolP160t1_PUB
+-----BEGIN PUBLIC KEY-----
+MEIwFAYHKoZIzj0CAQYJKyQDAwIIAQECAyoABANetsUNsxVmDo7X4LQ9yPYTcjN1HvLTo9GEEQtV
+lG71NyzLPQwPDwM=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_brainpoolP160t1:ALICE_cf_brainpoolP160t1_PUB
+
+PrivateKey=BOB_cf_brainpoolP160t1
+-----BEGIN PRIVATE KEY-----
+MDYCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQECBBswGQIBAQQUck4Sh9X3JjSUIRoxxKv8qLM6Ijc=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_brainpoolP160t1_PUB
+-----BEGIN PUBLIC KEY-----
+MEIwFAYHKoZIzj0CAQYJKyQDAwIIAQECAyoABEtd7DRUMYXeoxhxpWgPz/esQkXtoTAAune8CAAo
+HqNNlR11VDctfkw=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_brainpoolP160t1:BOB_cf_brainpoolP160t1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_brainpoolP160t1
+PeerKey=BOB_cf_brainpoolP160t1_PUB
+SharedSecret=6ea603a6a1a83812b967c83ef1867bd807be761e
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_brainpoolP160t1
+PeerKey=ALICE_cf_brainpoolP160t1_PUB
+SharedSecret=6ea603a6a1a83812b967c83ef1867bd807be761e
+
+Title=brainpoolP192r1 curve tests
+
+PrivateKey=ALICE_cf_brainpoolP192r1
+-----BEGIN PRIVATE KEY-----
+MDoCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEDBB8wHQIBAQQYlF5JxzV9Doezn3hLoiidvy5TnIA7
+aR+j
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_brainpoolP192r1_PUB
+-----BEGIN PUBLIC KEY-----
+MEowFAYHKoZIzj0CAQYJKyQDAwIIAQEDAzIABELUMqBZrH66DIJ1a3a42k86THdH1DevigK0dc57
+8XEZ3HcuSQ+ycrMmit1PUQItbg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_brainpoolP192r1:ALICE_cf_brainpoolP192r1_PUB
+
+PrivateKey=BOB_cf_brainpoolP192r1
+-----BEGIN PRIVATE KEY-----
+MDoCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEDBB8wHQIBAQQYjdu95CL1DQMGpsOmsfYOAjF5cW99
+bQie
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_brainpoolP192r1_PUB
+-----BEGIN PUBLIC KEY-----
+MEowFAYHKoZIzj0CAQYJKyQDAwIIAQEDAzIABInqyC1mAfyF7LU5tX/dRF5S/S9uPlQjNAhTRP6/
+/kAbKsXmABQXFeM0+P3hMw4UxQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_brainpoolP192r1:BOB_cf_brainpoolP192r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_brainpoolP192r1
+PeerKey=BOB_cf_brainpoolP192r1_PUB
+SharedSecret=2b34396d02a40df0b9f8f9c0b8623be05b41249fbd69e02a
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_brainpoolP192r1
+PeerKey=ALICE_cf_brainpoolP192r1_PUB
+SharedSecret=2b34396d02a40df0b9f8f9c0b8623be05b41249fbd69e02a
+
+Title=brainpoolP192t1 curve tests
+
+PrivateKey=ALICE_cf_brainpoolP192t1
+-----BEGIN PRIVATE KEY-----
+MDoCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEEBB8wHQIBAQQYKkFNgJ5sJKNIyYPK1h+gdPw04bxa
+zIV7
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_brainpoolP192t1_PUB
+-----BEGIN PUBLIC KEY-----
+MEowFAYHKoZIzj0CAQYJKyQDAwIIAQEEAzIABAzDb+niXBQFn9f0zXf8z+kfdBIYTws8FSfdWFdU
+NGo4haY9+fL8D40kNNShgBnlKw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_brainpoolP192t1:ALICE_cf_brainpoolP192t1_PUB
+
+PrivateKey=BOB_cf_brainpoolP192t1
+-----BEGIN PRIVATE KEY-----
+MDoCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEEBB8wHQIBAQQYFpxTrRJBEpyCePM20Fmw0uYPoxTm
+T/sq
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_brainpoolP192t1_PUB
+-----BEGIN PUBLIC KEY-----
+MEowFAYHKoZIzj0CAQYJKyQDAwIIAQEEAzIABC6CPE1t5PwHpXSS1u4R0JTs1IeDW8hiqarIn3pM
+I9wh+oCRjVcqvB4WDaql1bHCYg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_brainpoolP192t1:BOB_cf_brainpoolP192t1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_brainpoolP192t1
+PeerKey=BOB_cf_brainpoolP192t1_PUB
+SharedSecret=84049068441a342d7c2951ff159cdc9d05c4bddf2a6e6309
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_brainpoolP192t1
+PeerKey=ALICE_cf_brainpoolP192t1_PUB
+SharedSecret=84049068441a342d7c2951ff159cdc9d05c4bddf2a6e6309
+
+Title=brainpoolP224r1 curve tests
+
+PrivateKey=ALICE_cf_brainpoolP224r1
+-----BEGIN PRIVATE KEY-----
+MD4CAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEFBCMwIQIBAQQcHhlSkNTFJbZSy79CADDwo855nH2+
+cWxwSl6BpQ==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_brainpoolP224r1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwFAYHKoZIzj0CAQYJKyQDAwIIAQEFAzoABBF4+KObaB0yJTPHPrCN6EOnr5M8zKb5CHa7SSyL
+4L9nRjgA8TfoU03LQsrtE9beREkxK3EHc25Z
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_brainpoolP224r1:ALICE_cf_brainpoolP224r1_PUB
+
+PrivateKey=BOB_cf_brainpoolP224r1
+-----BEGIN PRIVATE KEY-----
+MD4CAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEFBCMwIQIBAQQczslMgGENRTriMWvDfGrM/ilLpzy0
+Js79UiVzLA==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_brainpoolP224r1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwFAYHKoZIzj0CAQYJKyQDAwIIAQEFAzoABIGGu4+PPMwOihplm2tLO7dLcDqXZB1MQHloOU8a
+taeDvYHIck4z08+1DATvPqpIDzyn9WtXRqmG
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_brainpoolP224r1:BOB_cf_brainpoolP224r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_brainpoolP224r1
+PeerKey=BOB_cf_brainpoolP224r1_PUB
+SharedSecret=477240c0587dea6aecfcac5a154d7ba3a5d4eb1ab30a69012d4401de
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_brainpoolP224r1
+PeerKey=ALICE_cf_brainpoolP224r1_PUB
+SharedSecret=477240c0587dea6aecfcac5a154d7ba3a5d4eb1ab30a69012d4401de
+
+Title=brainpoolP224t1 curve tests
+
+PrivateKey=ALICE_cf_brainpoolP224t1
+-----BEGIN PRIVATE KEY-----
+MD4CAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEGBCMwIQIBAQQca9rhmcgHV6etILVB9ccK2jIFXw4N
+YrvlljcGFw==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_brainpoolP224t1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwFAYHKoZIzj0CAQYJKyQDAwIIAQEGAzoABHA9XoULjM967710RPgT1ICW0b+y9pFpm2yCUq2m
+kSiy/JZvuWXhTJ+KmXGnAOTIlyiOUG8tZm39
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_brainpoolP224t1:ALICE_cf_brainpoolP224t1_PUB
+
+PrivateKey=BOB_cf_brainpoolP224t1
+-----BEGIN PRIVATE KEY-----
+MD4CAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEGBCMwIQIBAQQcFaiqaheY0xBo5lUY8hOXMUICdOAu
+NWP/Uw3l+Q==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_brainpoolP224t1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwFAYHKoZIzj0CAQYJKyQDAwIIAQEGAzoABLvPkrvyCeS/QdTX5D/AFfF0lTuPpXhSRPKocViS
+nUIZAEziCuOsgx+BqAOxNg+CN/tNzHsG1srf
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_brainpoolP224t1:BOB_cf_brainpoolP224t1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_brainpoolP224t1
+PeerKey=BOB_cf_brainpoolP224t1_PUB
+SharedSecret=2c8dd0dbf3a62a202150e12443461d348be57bc58db0f2f7d8938933
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_brainpoolP224t1
+PeerKey=ALICE_cf_brainpoolP224t1_PUB
+SharedSecret=2c8dd0dbf3a62a202150e12443461d348be57bc58db0f2f7d8938933
+
+Title=brainpoolP256r1 curve tests
+
+PrivateKey=ALICE_cf_brainpoolP256r1
+-----BEGIN PRIVATE KEY-----
+MEICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEHBCcwJQIBAQQgcH7I5THTXm+bu+vwtyNt+XBxk/uJ
+R5V/zzRyMoXjuek=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_brainpoolP256r1_PUB
+-----BEGIN PUBLIC KEY-----
+MFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABDFYVAzLX03nHXeFY7aJspsp525bbgzfnT68kJXB
+HhChZmPaa5BAV5Cn4DXJ5HQ5N/V8Z8Dz0aux0SWtl6ctENM=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_brainpoolP256r1:ALICE_cf_brainpoolP256r1_PUB
+
+PrivateKey=BOB_cf_brainpoolP256r1
+-----BEGIN PRIVATE KEY-----
+MEICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEHBCcwJQIBAQQgDEj/wLk/4z4Wcv8rOc9lNnRQ6hpr
+XfiuUSRqgedZkRU=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_brainpoolP256r1_PUB
+-----BEGIN PUBLIC KEY-----
+MFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABHJdRWXtaxwI0AdvDXEk+a6XuQp72Zi+wxCrxFFW
+NgJbmH0yr4jDklp4oiC2UHkapvT6XanGMKFo2ZSziltas0A=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_brainpoolP256r1:BOB_cf_brainpoolP256r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_brainpoolP256r1
+PeerKey=BOB_cf_brainpoolP256r1_PUB
+SharedSecret=2fdd9d97efdcba3f5b181df53331db0ee42a3b1072147325ce8521dbaeafc3e4
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_brainpoolP256r1
+PeerKey=ALICE_cf_brainpoolP256r1_PUB
+SharedSecret=2fdd9d97efdcba3f5b181df53331db0ee42a3b1072147325ce8521dbaeafc3e4
+
+Title=brainpoolP256t1 curve tests
+
+PrivateKey=ALICE_cf_brainpoolP256t1
+-----BEGIN PRIVATE KEY-----
+MEICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEIBCcwJQIBAQQgBDlYKiUEsm+tEN/DDQBhlWKJhF4J
+We+4fqVSaPNT3VY=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_brainpoolP256t1_PUB
+-----BEGIN PUBLIC KEY-----
+MFowFAYHKoZIzj0CAQYJKyQDAwIIAQEIA0IABE6XKfvmlGKrXKN/FHhW9cMThPFUIq6Au3cCujPI
+rHejQQJnsz9mSRBtzRkMM1abUc4Mf9xhkWbrT+QuJ3FcLWI=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_brainpoolP256t1:ALICE_cf_brainpoolP256t1_PUB
+
+PrivateKey=BOB_cf_brainpoolP256t1
+-----BEGIN PRIVATE KEY-----
+MEICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEIBCcwJQIBAQQgDUCTqTrVwouIU3hFoO3hwiME17PF
+X7ntzOWKS2ebqGs=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_brainpoolP256t1_PUB
+-----BEGIN PUBLIC KEY-----
+MFowFAYHKoZIzj0CAQYJKyQDAwIIAQEIA0IABBwxGpomQmgqgsUYHmpYt3qGKRVT/pJfyU+lpLXi
+/XAibEp/IvX3oFMEolSoy39poO6Zkq6npAniBqer+bS9Jpw=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_brainpoolP256t1:BOB_cf_brainpoolP256t1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_brainpoolP256t1
+PeerKey=BOB_cf_brainpoolP256t1_PUB
+SharedSecret=7f177af329a4b377aea6e80bddf14f09c17c4fe81598703898fb62c929cbff04
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_brainpoolP256t1
+PeerKey=ALICE_cf_brainpoolP256t1_PUB
+SharedSecret=7f177af329a4b377aea6e80bddf14f09c17c4fe81598703898fb62c929cbff04
+
+Title=brainpoolP320r1 curve tests
+
+PrivateKey=ALICE_cf_brainpoolP320r1
+-----BEGIN PRIVATE KEY-----
+MEoCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEJBC8wLQIBAQQophG1zB+U2lRdetiZlk9C4+q7APJ9
+xqGQ0+GPq68+WmyZon1lDRQ5/g==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_brainpoolP320r1_PUB
+-----BEGIN PUBLIC KEY-----
+MGowFAYHKoZIzj0CAQYJKyQDAwIIAQEJA1IABM9TaT9Q2j+VTlQ1pfcXx9SjlU1fEk0RvEbaY1O8
+pq8OgkQeulcgSXiI1rJI0wjV/qJoi0coZUHhsJ7bXmdO8vSTdgCMbavZScCkN6iFsALm
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_brainpoolP320r1:ALICE_cf_brainpoolP320r1_PUB
+
+PrivateKey=BOB_cf_brainpoolP320r1
+-----BEGIN PRIVATE KEY-----
+MEoCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEJBC8wLQIBAQQoO6MtFhs8dwul0iRbyfssxtFF6Ubt
+q2oHlzvkFL5q4uLSY7pRcDz4vw==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_brainpoolP320r1_PUB
+-----BEGIN PUBLIC KEY-----
+MGowFAYHKoZIzj0CAQYJKyQDAwIIAQEJA1IABM50yDpoBMhirlHQqjMmVj/KZR0dfvmudoDt02qY
+3lKei94evfTHmPG/9BjMYQGQcRM4CDGHR0iUIUJa99e/rxj9IguPkkNiAmDZQaKsqmKB
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_brainpoolP320r1:BOB_cf_brainpoolP320r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_brainpoolP320r1
+PeerKey=BOB_cf_brainpoolP320r1_PUB
+SharedSecret=4ee386c231d0a7c9bb6dc05362f56ca70bf7ba5dcb66d8c4574c0497fdab6a5b79818a64ff5dc87e
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_brainpoolP320r1
+PeerKey=ALICE_cf_brainpoolP320r1_PUB
+SharedSecret=4ee386c231d0a7c9bb6dc05362f56ca70bf7ba5dcb66d8c4574c0497fdab6a5b79818a64ff5dc87e
+
+Title=brainpoolP320t1 curve tests
+
+PrivateKey=ALICE_cf_brainpoolP320t1
+-----BEGIN PRIVATE KEY-----
+MEoCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEKBC8wLQIBAQQoMsI2lsl5Sj0I4A3J0I5XStMSLT4P
+hMxwrbFdtKQh+At6RN2s12W4Kg==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_brainpoolP320t1_PUB
+-----BEGIN PUBLIC KEY-----
+MGowFAYHKoZIzj0CAQYJKyQDAwIIAQEKA1IABAvtZgehjOIdjsYKMcK08LaS8zVb6znYb6Qa9Fzf
+LhLUSH5S728KJHWXMh7RqZMI3yTC5I0ESqB0CvG5N0hR+3y8L3eQJisCNdnzAgMyy0ab
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_brainpoolP320t1:ALICE_cf_brainpoolP320t1_PUB
+
+PrivateKey=BOB_cf_brainpoolP320t1
+-----BEGIN PRIVATE KEY-----
+MEoCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEKBC8wLQIBAQQoNtZiGbwSl0NNHBmTaJKf7/VMqZjo
+yWavjg6CPa6ZgpKRR7vIQt5d9Q==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_brainpoolP320t1_PUB
+-----BEGIN PUBLIC KEY-----
+MGowFAYHKoZIzj0CAQYJKyQDAwIIAQEKA1IABHlS/OtqhHctabDCsDexScvQ2DGXhBuypaEeKOUq
+vbLUovatBoreEj1j5YrOl9mKpd9Hj6YqYGWH+7KKjua+5DBn9rlxlmmkst+gb+vm3UE/
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_brainpoolP320t1:BOB_cf_brainpoolP320t1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_brainpoolP320t1
+PeerKey=BOB_cf_brainpoolP320t1_PUB
+SharedSecret=079d62bad81ceeab9f213818faf249f7b29b87a81b56a33b774b2631860f90a25f5377da504cb619
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_brainpoolP320t1
+PeerKey=ALICE_cf_brainpoolP320t1_PUB
+SharedSecret=079d62bad81ceeab9f213818faf249f7b29b87a81b56a33b774b2631860f90a25f5377da504cb619
+
+Title=brainpoolP384r1 curve tests
+
+PrivateKey=ALICE_cf_brainpoolP384r1
+-----BEGIN PRIVATE KEY-----
+MFICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQELBDcwNQIBAQQwUW3EKrK8Rr80Jn5wwvTLC+HDTApA
+ndycbRYiQkew7SgijhNO+cV0pE0sNpMZY+Wo
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_brainpoolP384r1_PUB
+-----BEGIN PUBLIC KEY-----
+MHowFAYHKoZIzj0CAQYJKyQDAwIIAQELA2IABBvE/fg0tIrsrIiAL07MlREd5zYk52mW7oQ+jPky
+PmGeUoZq1LtpEzQCE1uuruOuyQH1M2c7flVA8Gh3IbSCupwVBCR2QObolwk1w5qK/l/KR26tMeXI
+qL2Sy85NCUpMDw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_brainpoolP384r1:ALICE_cf_brainpoolP384r1_PUB
+
+PrivateKey=BOB_cf_brainpoolP384r1
+-----BEGIN PRIVATE KEY-----
+MFICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQELBDcwNQIBAQQwdG7bSygpM2GpxDPAb4hOTtFZrP2n
+qbyf7v3jFe8/ERpzREPcSntkNDyu/iAsmQKj
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_brainpoolP384r1_PUB
+-----BEGIN PUBLIC KEY-----
+MHowFAYHKoZIzj0CAQYJKyQDAwIIAQELA2IABIIxQfeqZ+uWNKAwZtxAt4ieZW7lCg7Bezpn1dG/
+VDvy/Dd5YpAuDtVxFCLfCUVH+gXfC2wUpWj8j8lgPhP1wBat/hu/PN/AQPg9C/J2EcQRVQXwyZvQ
+PzgiZeo1aWw2+w==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_brainpoolP384r1:BOB_cf_brainpoolP384r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_brainpoolP384r1
+PeerKey=BOB_cf_brainpoolP384r1_PUB
+SharedSecret=35e9a3f86a38888d183cc343801dcdaecb664d5b37f7fbc0459fd4612da6b29831bd2d8e5b599376ca510fcc3ac78be6
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_brainpoolP384r1
+PeerKey=ALICE_cf_brainpoolP384r1_PUB
+SharedSecret=35e9a3f86a38888d183cc343801dcdaecb664d5b37f7fbc0459fd4612da6b29831bd2d8e5b599376ca510fcc3ac78be6
+
+Title=brainpoolP384t1 curve tests
+
+PrivateKey=ALICE_cf_brainpoolP384t1
+-----BEGIN PRIVATE KEY-----
+MFICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEMBDcwNQIBAQQwGyCfuKlQDK4EflGVc01hBKW+OB/L
+ojNz6kgnAWMuWoCyOM8SOkSTbOCimaVqZrlq
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_brainpoolP384t1_PUB
+-----BEGIN PUBLIC KEY-----
+MHowFAYHKoZIzj0CAQYJKyQDAwIIAQEMA2IABE1O0qNzgozAxaQC7qX2wS+HNfKIAMc7eX4G4Z0w
+M30kgGyCn4CtWCBFgG15laf6OnYcdJgC8284B2smZiqHuvssw12SZwOlaXoLGyIsqygTitCO3Ebd
+k2dmuYdWzxj5/g==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_brainpoolP384t1:ALICE_cf_brainpoolP384t1_PUB
+
+PrivateKey=BOB_cf_brainpoolP384t1
+-----BEGIN PRIVATE KEY-----
+MFICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEMBDcwNQIBAQQwbpabbL6g9HZUZ4VusnNGHsHujUsA
+cDuviAZTBaHWJsCd5jA64hVFZXlZ9Jj/nSLs
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_brainpoolP384t1_PUB
+-----BEGIN PUBLIC KEY-----
+MHowFAYHKoZIzj0CAQYJKyQDAwIIAQEMA2IABAyawWqAcNlcwOauu2b93XXqpZQeRM26AYcDcHIf
+tZahQrwFpLgt6Tn7tzA2CgRGvSvBGZTxkzuHasxJn+dBDGLraias3U/sLD3P4TQuP9v8cO6i7g4x
+T+DZbNUQQ3ePDQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_brainpoolP384t1:BOB_cf_brainpoolP384t1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_brainpoolP384t1
+PeerKey=BOB_cf_brainpoolP384t1_PUB
+SharedSecret=030113dd1662230f1e47418c3044a0852dcd74fa508dbabb02d1fe5d788aa49d8047d02a802f796af21473ab17f6f85f
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_brainpoolP384t1
+PeerKey=ALICE_cf_brainpoolP384t1_PUB
+SharedSecret=030113dd1662230f1e47418c3044a0852dcd74fa508dbabb02d1fe5d788aa49d8047d02a802f796af21473ab17f6f85f
+
+Title=brainpoolP512r1 curve tests
+
+PrivateKey=ALICE_cf_brainpoolP512r1
+-----BEGIN PRIVATE KEY-----
+MGICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQENBEcwRQIBAQRAagAsEAU5t/T4yI0MvyTWuPcrQfaa
+1xZr99hRfeY7+pDV4yooxTIXUESqk/dBQlFSrVUkdvMQHq/8vm5V/w97LQ==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_brainpoolP512r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGbMBQGByqGSM49AgEGCSskAwMCCAEBDQOBggAEJLmN88iMClNBtyLHzmSgIE9d+v/GRtBr1+r+
+Wvz5XOwsiHWWFTRO5Um+3HUVZH+S3nky6n/3Yjn4DFA4lhxV+y40g8p+kkXYKwpXTByQhERcPPPS
+wKh/S7Y3k3KSLkphjiBExzlBcj9r3gLww9+0nVer/fnUgRz7YwWldv4PR2E=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_brainpoolP512r1:ALICE_cf_brainpoolP512r1_PUB
+
+PrivateKey=BOB_cf_brainpoolP512r1
+-----BEGIN PRIVATE KEY-----
+MGICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQENBEcwRQIBAQRAgHKjBCUMVJTF41vKv+Lp2xVz6bsF
+P1Aqc+2ehlxlEoYL4H8CbUBh89F1QPjGjIOLEebJcN/KnnpyRGVdx4UV2g==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_brainpoolP512r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGbMBQGByqGSM49AgEGCSskAwMCCAEBDQOBggAElWuk6uPxVgBSLSK9Zfqbid/ipXbIFKVaetCI
+YsYOdzkbjGIWLd2MFZIjZ9r7ePEcHXqQiwGvW+8itGM/xwLpA4qZ2QYazqtAbT187d5cdyZf4PQT
+/kv/ZTvXTl7xHDtaujQ1re00Z3liEKgKstI80BkA6eA4Jfy4G2F7CX/WuSQ=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_brainpoolP512r1:BOB_cf_brainpoolP512r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_brainpoolP512r1
+PeerKey=BOB_cf_brainpoolP512r1_PUB
+SharedSecret=84269a8f2932b7e09b23deabaeab26eda6bbdee8846153b0c62b7d2663506a9e71d32cf0cc127ec130f6880612f4e054bc79adb57ddbee97949508ce1eda0bb1
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_brainpoolP512r1
+PeerKey=ALICE_cf_brainpoolP512r1_PUB
+SharedSecret=84269a8f2932b7e09b23deabaeab26eda6bbdee8846153b0c62b7d2663506a9e71d32cf0cc127ec130f6880612f4e054bc79adb57ddbee97949508ce1eda0bb1
+
+Title=brainpoolP512t1 curve tests
+
+PrivateKey=ALICE_cf_brainpoolP512t1
+-----BEGIN PRIVATE KEY-----
+MGICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEOBEcwRQIBAQRAd92o2JLX5lk2v6fGr1pH5TT8KUKR
+6FaCm6CRk0dC/xK6h0rpONjx+37VuH3uS+HoRlru83maSoeHQneWCc32XA==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_brainpoolP512t1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGbMBQGByqGSM49AgEGCSskAwMCCAEBDgOBggAEob+TJkhNP6D+HoQtlWcLITI3MM25Axi++awv
+HnMoclRLLur7CjQsKd0v6aEzmG2+4WZSZFGLA9L8Z5sh9L916p5CD5nk1pNfy5QKNi2H5R3QC/oc
+RfNNxhXdVVekfTaAiqhe8UF3aMngmDAc7sq794DVZvCf1sqq8v5cHrnqRcQ=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_brainpoolP512t1:ALICE_cf_brainpoolP512t1_PUB
+
+PrivateKey=BOB_cf_brainpoolP512t1
+-----BEGIN PRIVATE KEY-----
+MGICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEOBEcwRQIBAQRAVW4ZQKgDeHAkubwYYlp2JKklrbpp
+gvez/prOdyHJXJbVriU4lCH/MpH2I+nXjaZ9zLcl9JbnrUOJ6xGPHfZJrw==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_brainpoolP512t1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGbMBQGByqGSM49AgEGCSskAwMCCAEBDgOBggAEJbQFKxq27CuY7/mgNwEnH3GSYGXy9s6n48qq
+gbMrp5uREi8JXZ+BuLQmzZuF15ZPOOmh+EJFjbD8i9NDiUkYLnm1oy/EuE1f5VUNoXFeFFIa21vZ
+2kzPYYKYyUNOdG8p/s4rPBFyCMf6Tizt0D4XA4oLptKUUIX2SC1Sd+qakKA=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_brainpoolP512t1:BOB_cf_brainpoolP512t1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_brainpoolP512t1
+PeerKey=BOB_cf_brainpoolP512t1_PUB
+SharedSecret=48bc4ebdb9a88ca38bed58f5e547eb11d803fd01b6eadff1761ecb48c54525cba43bdb0ee4a4d7aa6701985e0bc12fd32382c035d80acc7ec26adfcb108a07cb
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_brainpoolP512t1
+PeerKey=ALICE_cf_brainpoolP512t1_PUB
+SharedSecret=48bc4ebdb9a88ca38bed58f5e547eb11d803fd01b6eadff1761ecb48c54525cba43bdb0ee4a4d7aa6701985e0bc12fd32382c035d80acc7ec26adfcb108a07cb
+
+Title=c2pnb163v1 curve tests
+
+PrivateKey=ALICE_cf_c2pnb163v1
+-----BEGIN PRIVATE KEY-----
+MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAEEHDAaAgEBBBUD1JfG8cLNP9418YW+hVhriqH6O5Y=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_c2pnb163v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAEDLAAEBXgoOgVlWTLQnrQZXgQuSBcIS3bQAlXQ+yJhS03B
+4G8rKQXbrc0mvWsF
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_c2pnb163v1:ALICE_cf_c2pnb163v1_PUB
+
+PrivateKey=BOB_cf_c2pnb163v1
+-----BEGIN PRIVATE KEY-----
+MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAEEHDAaAgEBBBUAc3EaoMmMORTzQhMkhPIXY+/jUSI=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_c2pnb163v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAEDLAAEBn9J0jo39aFVZqhBsAKZ6bViAu6zBC8WaFGExnpZ
+KuBh8tP8VSTHPCHF
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_c2pnb163v1:BOB_cf_c2pnb163v1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_c2pnb163v1
+PeerKey=BOB_cf_c2pnb163v1_PUB
+SharedSecret=065dd38fb6de7f394778e1bf65d840a2c0e7219acd
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_c2pnb163v1
+PeerKey=ALICE_cf_c2pnb163v1_PUB
+SharedSecret=065dd38fb6de7f394778e1bf65d840a2c0e7219acd
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_c2pnb163v1
+PeerKey=BOB_cf_c2pnb163v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=066fc46e8cc4327634dd127748020f2de6aab67585
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_c2pnb163v1
+PeerKey=ALICE_cf_c2pnb163v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=066fc46e8cc4327634dd127748020f2de6aab67585
+
+PublicKey=MALICE_cf_c2pnb163v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAEDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8JxepS05nN
+/piKdhDD3dDKXUih
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_c2pnb163v1
+PeerKey=MALICE_cf_c2pnb163v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_c2pnb163v1
+PeerKey=MALICE_cf_c2pnb163v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=c2pnb163v2 curve tests
+
+PrivateKey=ALICE_cf_c2pnb163v2
+-----BEGIN PRIVATE KEY-----
+MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAIEHDAaAgEBBBUA4KFv7c1dygtVbdp/g2z2TqLAHkI=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_c2pnb163v2_PUB
+-----BEGIN PUBLIC KEY-----
+MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAIDLAAEAVnlL7lMBaASwCIJaf9x2LgNPVmEAb43huHQlo3Q
+4PzawHXQoYm/qgDd
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_c2pnb163v2:ALICE_cf_c2pnb163v2_PUB
+
+PrivateKey=BOB_cf_c2pnb163v2
+-----BEGIN PRIVATE KEY-----
+MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAIEHDAaAgEBBBUCEdYqClRWIl2m+X34e+DB2iZSxmQ=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_c2pnb163v2_PUB
+-----BEGIN PUBLIC KEY-----
+MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAIDLAAEAVWNIKn7/WMfzuNnd5ws9J0DI2CfBkEJizZHAFqy
+kBF3juAQuARgxuT6
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_c2pnb163v2:BOB_cf_c2pnb163v2_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_c2pnb163v2
+PeerKey=BOB_cf_c2pnb163v2_PUB
+SharedSecret=0078ebb986d4f9b0aa0bc4af99e82c2bd24130f3f4
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_c2pnb163v2
+PeerKey=ALICE_cf_c2pnb163v2_PUB
+SharedSecret=0078ebb986d4f9b0aa0bc4af99e82c2bd24130f3f4
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_c2pnb163v2
+PeerKey=BOB_cf_c2pnb163v2_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=069a80bcd45987fd1c874cd9dc5453207a09b61d41
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_c2pnb163v2
+PeerKey=ALICE_cf_c2pnb163v2_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=069a80bcd45987fd1c874cd9dc5453207a09b61d41
+
+PublicKey=MALICE_cf_c2pnb163v2_PUB
+-----BEGIN PUBLIC KEY-----
+MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAIDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAABuVBl1V5uysY
+n6HANPEoMoK+7Sv0
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_c2pnb163v2
+PeerKey=MALICE_cf_c2pnb163v2_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_c2pnb163v2
+PeerKey=MALICE_cf_c2pnb163v2_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=c2pnb163v3 curve tests
+
+PrivateKey=ALICE_cf_c2pnb163v3
+-----BEGIN PRIVATE KEY-----
+MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAMEHDAaAgEBBBUBItB0y/QeJ+cCh9yoHf0zqLVyMZc=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_c2pnb163v3_PUB
+-----BEGIN PUBLIC KEY-----
+MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAMDLAAEBx1HRyjuBMjt+vlbWaQbKOpNvWKFAslzEbPv6MpK
+YnObLnq34LRuWznb
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_c2pnb163v3:ALICE_cf_c2pnb163v3_PUB
+
+PrivateKey=BOB_cf_c2pnb163v3
+-----BEGIN PRIVATE KEY-----
+MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAMEHDAaAgEBBBUAXVHUHeP8Ioz7IqXOWbjaUXEHE5M=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_c2pnb163v3_PUB
+-----BEGIN PUBLIC KEY-----
+MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAMDLAAEAqXF7rsAZ40Z1PT4TeeC45RKTxP4AJBAdfuknJ/J
+DZnBLhxBwtqnfUpA
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_c2pnb163v3:BOB_cf_c2pnb163v3_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_c2pnb163v3
+PeerKey=BOB_cf_c2pnb163v3_PUB
+SharedSecret=07fd2ffe9b18973c51caeadbc2154b97a9a0390be9
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_c2pnb163v3
+PeerKey=ALICE_cf_c2pnb163v3_PUB
+SharedSecret=07fd2ffe9b18973c51caeadbc2154b97a9a0390be9
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_c2pnb163v3
+PeerKey=BOB_cf_c2pnb163v3_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=06f7daf1c963594e1a13f9f17b62aaab2934872c16
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_c2pnb163v3
+PeerKey=ALICE_cf_c2pnb163v3_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=06f7daf1c963594e1a13f9f17b62aaab2934872c16
+
+PublicKey=MALICE_cf_c2pnb163v3_PUB
+-----BEGIN PUBLIC KEY-----
+MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAMDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7jRlUg9oaLK
+LwAuHF8g5Y0JjJnI
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_c2pnb163v3
+PeerKey=MALICE_cf_c2pnb163v3_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_c2pnb163v3
+PeerKey=MALICE_cf_c2pnb163v3_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=c2pnb176v1 curve tests
+
+PrivateKey=ALICE_cf_c2pnb176v1
+-----BEGIN PRIVATE KEY-----
+MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAQEHDAaAgEBBBUAaZ1jV1jM9meV5iiNGPU/WMSfWOM=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_c2pnb176v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEUwEwYHKoZIzj0CAQYIKoZIzj0DAAQDLgAEPjME7IV6Tuz2P++wIT60hRxTkk0M0PNgvqYcUoCI
+iw3girDLhNzOu3IQ8Ac=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_c2pnb176v1:ALICE_cf_c2pnb176v1_PUB
+
+PrivateKey=BOB_cf_c2pnb176v1
+-----BEGIN PRIVATE KEY-----
+MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAQEHDAaAgEBBBUAreyYbcF+ONIf64KmeSzV82OI/50=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_c2pnb176v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEUwEwYHKoZIzj0CAQYIKoZIzj0DAAQDLgAEpJn1IDmFj5LceLGfY2wlhI1VHq5vJ+qNIAOXVZhX
+uMtp6pzy63rCEK53bgs=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_c2pnb176v1:BOB_cf_c2pnb176v1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_c2pnb176v1
+PeerKey=BOB_cf_c2pnb176v1_PUB
+SharedSecret=3a8021848ee0b2c1c377404267a515225781c181e6ab
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_c2pnb176v1
+PeerKey=ALICE_cf_c2pnb176v1_PUB
+SharedSecret=3a8021848ee0b2c1c377404267a515225781c181e6ab
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_c2pnb176v1
+PeerKey=BOB_cf_c2pnb176v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=b06cdc633b56e813d63326c69d2cfa335352279540ac
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_c2pnb176v1
+PeerKey=ALICE_cf_c2pnb176v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=b06cdc633b56e813d63326c69d2cfa335352279540ac
+
+PublicKey=MALICE_cf_c2pnb176v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEUwEwYHKoZIzj0CAQYIKoZIzj0DAAQDLgAE4ePri2opCoAUJIUQnaQlvDaxZd9bsdKnjWSvh+FL
+zXV3l5j8K3pow+GJBE4=
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_c2pnb176v1
+PeerKey=MALICE_cf_c2pnb176v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_c2pnb176v1
+PeerKey=MALICE_cf_c2pnb176v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=c2pnb208w1 curve tests
+
+PrivateKey=ALICE_cf_c2pnb208w1
+-----BEGIN PRIVATE KEY-----
+MDoCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAoEIDAeAgEBBBkAiENroXMYNbK/7DQQwCpbXk00gnVd
+XF2k
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_c2pnb208w1_PUB
+-----BEGIN PUBLIC KEY-----
+ME0wEwYHKoZIzj0CAQYIKoZIzj0DAAoDNgAEL+IHOL2IfeLRiE6Wqsc0Frqjq7t/JnBmhN1lMB9Y
+Yj3+Btcne4CPWf8KvfGjAdMs6JKP4A==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_c2pnb208w1:ALICE_cf_c2pnb208w1_PUB
+
+PrivateKey=BOB_cf_c2pnb208w1
+-----BEGIN PRIVATE KEY-----
+MDoCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAoEIDAeAgEBBBkAY1GZLynO/IDWwOOjEWUE7k+I/MkP
+cJot
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_c2pnb208w1_PUB
+-----BEGIN PUBLIC KEY-----
+ME0wEwYHKoZIzj0CAQYIKoZIzj0DAAoDNgAENBvdzCDOIvu9zo7reJq1ummhR+0jaDc+EoSlW984
+cl9FTi/JJznwC+RNgwVfJ1WKJun1YA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_c2pnb208w1:BOB_cf_c2pnb208w1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_c2pnb208w1
+PeerKey=BOB_cf_c2pnb208w1_PUB
+SharedSecret=ba32bf80c0f7ab53cb083f267a902a1ad6396eb283237fad91cd
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_c2pnb208w1
+PeerKey=ALICE_cf_c2pnb208w1_PUB
+SharedSecret=ba32bf80c0f7ab53cb083f267a902a1ad6396eb283237fad91cd
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_c2pnb208w1
+PeerKey=BOB_cf_c2pnb208w1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=f09f5fc8bf20677558bc65939bf1b7fbbbe2579702729304258b
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_c2pnb208w1
+PeerKey=ALICE_cf_c2pnb208w1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=f09f5fc8bf20677558bc65939bf1b7fbbbe2579702729304258b
+
+PublicKey=MALICE_cf_c2pnb208w1_PUB
+-----BEGIN PUBLIC KEY-----
+ME0wEwYHKoZIzj0CAQYIKoZIzj0DAAoDNgAEfuWB9pBZQin+VnmqgYVpbUpKxSQsnXxNqiDtVwqJ
+oPkHxRWnu5e7qI2idMcqaKDeeniUaA==
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_c2pnb208w1
+PeerKey=MALICE_cf_c2pnb208w1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_c2pnb208w1
+PeerKey=MALICE_cf_c2pnb208w1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=c2pnb272w1 curve tests
+
+PrivateKey=ALICE_cf_c2pnb272w1
+-----BEGIN PRIVATE KEY-----
+MEICAQAwEwYHKoZIzj0CAQYIKoZIzj0DABAEKDAmAgEBBCEA0SoHwKAgKb7WQ+s0w1iNBemDZ3+f
+StHU67fpP7YoF8U=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_c2pnb272w1_PUB
+-----BEGIN PUBLIC KEY-----
+MF0wEwYHKoZIzj0CAQYIKoZIzj0DABADRgAE0IH60bGi46FDzEprGZ8EBK5uMMcVke/txeBRNGHQ
+DzG68r3EMLZkOfE1+g04MN7HgY7zt3jMYb8ImyLRmvqR2abjs6c=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_c2pnb272w1:ALICE_cf_c2pnb272w1_PUB
+
+PrivateKey=BOB_cf_c2pnb272w1
+-----BEGIN PRIVATE KEY-----
+MEICAQAwEwYHKoZIzj0CAQYIKoZIzj0DABAEKDAmAgEBBCEAFqB5GbPJ4d+X7ye7m05l/OirDqfn
+MOsOJ6xObBph3zQ=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_c2pnb272w1_PUB
+-----BEGIN PUBLIC KEY-----
+MF0wEwYHKoZIzj0CAQYIKoZIzj0DABADRgAEIeIkcMHAuOgvHt2Wp52vVe0DYPNnUX79t/mLSx03
+cUlDmcxL7vIXdx9hB4OmQBYbm+YLDNfTFGAIlDfr2tELpVVPWPo=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_c2pnb272w1:BOB_cf_c2pnb272w1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_c2pnb272w1
+PeerKey=BOB_cf_c2pnb272w1_PUB
+SharedSecret=cfebd65006520a40f081d8940edf0ebb8e54491ba1499d9f3c63deecee84ddc07142
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_c2pnb272w1
+PeerKey=ALICE_cf_c2pnb272w1_PUB
+SharedSecret=cfebd65006520a40f081d8940edf0ebb8e54491ba1499d9f3c63deecee84ddc07142
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_c2pnb272w1
+PeerKey=BOB_cf_c2pnb272w1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=756fc20b27352ac74e5135359c63d375d2732c6d02f25cd526155bac0882a9211dd4
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_c2pnb272w1
+PeerKey=ALICE_cf_c2pnb272w1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=756fc20b27352ac74e5135359c63d375d2732c6d02f25cd526155bac0882a9211dd4
+
+PublicKey=MALICE_cf_c2pnb272w1_PUB
+-----BEGIN PUBLIC KEY-----
+MF0wEwYHKoZIzj0CAQYIKoZIzj0DABADRgAEvID3AM7qzpKDnOLFY00+E7EKZz/vS/pXgsUA3bWN
+oJF8ElXFXv59s/SykQBCTHPqzmUbVmrXmtD44Kt1wUBRJfuwxy4=
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_c2pnb272w1
+PeerKey=MALICE_cf_c2pnb272w1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_c2pnb272w1
+PeerKey=MALICE_cf_c2pnb272w1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=c2pnb304w1 curve tests
+
+PrivateKey=ALICE_cf_c2pnb304w1
+-----BEGIN PRIVATE KEY-----
+MEYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DABEELDAqAgEBBCUAqJxh50ZIUXOJ1HE3cVkech9OTTPJ
+8jy/v5cFcO0X6dykHgnZ
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_c2pnb304w1_PUB
+-----BEGIN PUBLIC KEY-----
+MGUwEwYHKoZIzj0CAQYIKoZIzj0DABEDTgAEvoaqRX6qiNQiFH1BhgLCPTpYszoRhmlLirkvlw/Q
+iXBlfQ7U4g+iRR/kmu2RlwwOHgNNL+mWcvLkFfS8Kr4jzv1EY1Ecx96n21l0YQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_c2pnb304w1:ALICE_cf_c2pnb304w1_PUB
+
+PrivateKey=BOB_cf_c2pnb304w1
+-----BEGIN PRIVATE KEY-----
+MEYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DABEELDAqAgEBBCUAOScHepX+IwqC8TjyAJI1bkR3cYYt
+X9BbqYM9GQfVNSLHntTg
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_c2pnb304w1_PUB
+-----BEGIN PUBLIC KEY-----
+MGUwEwYHKoZIzj0CAQYIKoZIzj0DABEDTgAEYuAq/6Yw5HxMeMohlWmwl+ZK4ZQucfr1tWDKwhDb
+kAOUO2P/Q/H+uelM3VVwxeu6A1kaX7K0UZpNa96NRBwI4aevc+vOxCgYkGt9BA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_c2pnb304w1:BOB_cf_c2pnb304w1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_c2pnb304w1
+PeerKey=BOB_cf_c2pnb304w1_PUB
+SharedSecret=bfddf9f923210e8231a702e3a1c987cf27661de1bc243c1890e437d67d9f49c6ccfadc035d9d
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_c2pnb304w1
+PeerKey=ALICE_cf_c2pnb304w1_PUB
+SharedSecret=bfddf9f923210e8231a702e3a1c987cf27661de1bc243c1890e437d67d9f49c6ccfadc035d9d
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_c2pnb304w1
+PeerKey=BOB_cf_c2pnb304w1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0c7afb3143f93ef2166c05437a1757a62c916ff1751c6d456dd7f2356dcbc75df48015eb5ce8
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_c2pnb304w1
+PeerKey=ALICE_cf_c2pnb304w1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0c7afb3143f93ef2166c05437a1757a62c916ff1751c6d456dd7f2356dcbc75df48015eb5ce8
+
+PublicKey=MALICE_cf_c2pnb304w1_PUB
+-----BEGIN PUBLIC KEY-----
+MGUwEwYHKoZIzj0CAQYIKoZIzj0DABEDTgAEBZ5FuthQt0mxTJ8NQWN2J37kYT8ySD893IXEmXYP
+fMTr+CSNkf/sfF/13GEdVGnHmBgCH61sPWG69RgzdjRPprZFZxXjubIWYkp0DQ==
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_c2pnb304w1
+PeerKey=MALICE_cf_c2pnb304w1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_c2pnb304w1
+PeerKey=MALICE_cf_c2pnb304w1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=c2pnb368w1 curve tests
+
+PrivateKey=ALICE_cf_c2pnb368w1
+-----BEGIN PRIVATE KEY-----
+ME4CAQAwEwYHKoZIzj0CAQYIKoZIzj0DABMENDAyAgEBBC0AXeSTXsHb2PEH12tZL8w2q6evA2mi
+KfLLIa1c29BTmM//oWdKpqeuvwMIBto=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_c2pnb368w1_PUB
+-----BEGIN PUBLIC KEY-----
+MHUwEwYHKoZIzj0CAQYIKoZIzj0DABMDXgAEmEBXcvMgnHwJW7wAKM4cqboco6zF01J9ntUwoACI
+euvf3cpPXBvxUawJXfO9FwFRQabDRagGP99Walidd2JW8nWDWZgZMKj15Wh+4bp2dZHc2tPIIHHd
+3makbwQ=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_c2pnb368w1:ALICE_cf_c2pnb368w1_PUB
+
+PrivateKey=BOB_cf_c2pnb368w1
+-----BEGIN PRIVATE KEY-----
+ME4CAQAwEwYHKoZIzj0CAQYIKoZIzj0DABMENDAyAgEBBC0Aq1R9M/mCMbJMj6VBUpBkS4HXywEz
+Qun6d6uXgyU4LZRszA7Dz9+eKbXEMsk=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_c2pnb368w1_PUB
+-----BEGIN PUBLIC KEY-----
+MHUwEwYHKoZIzj0CAQYIKoZIzj0DABMDXgAEJOSnsaXA9wb5p8CGLPvYI47Yf3IdZSbWQ3Sn6G2v
+At+zYlpzGax1oJ1CW8fGA0Gu0RnvAfDeW9vgrtzshH1Vy/Ni6a7LPho99PtUP2nzUBnv+hfhFSra
+gqfRaOs=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_c2pnb368w1:BOB_cf_c2pnb368w1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_c2pnb368w1
+PeerKey=BOB_cf_c2pnb368w1_PUB
+SharedSecret=008d20ede3961be3b01051d6fdae63db43865664804d432293a2edb13dcc8be0fe5b0c655297a84b9067a29c2a6f
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_c2pnb368w1
+PeerKey=ALICE_cf_c2pnb368w1_PUB
+SharedSecret=008d20ede3961be3b01051d6fdae63db43865664804d432293a2edb13dcc8be0fe5b0c655297a84b9067a29c2a6f
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_c2pnb368w1
+PeerKey=BOB_cf_c2pnb368w1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=df32ddeeffa029aeadabad000a79c3154a0ddd0aeacf4e3de426f5c10096eff8912038c64d4c899131dcd4df2561
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_c2pnb368w1
+PeerKey=ALICE_cf_c2pnb368w1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=df32ddeeffa029aeadabad000a79c3154a0ddd0aeacf4e3de426f5c10096eff8912038c64d4c899131dcd4df2561
+
+PublicKey=MALICE_cf_c2pnb368w1_PUB
+-----BEGIN PUBLIC KEY-----
+MHUwEwYHKoZIzj0CAQYIKoZIzj0DABMDXgAEWDn/U9rymClM/a0Q1mawHjQjvpxSehRWstSE+2Sd
+ubcZowJ+rw5LsEZteQyeVrCpKYUiIBmIVuFb2LDjtNLIJD1lr8C+vdco24ciLS9RzF/Dc9X+tcIj
+726e1BE=
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_c2pnb368w1
+PeerKey=MALICE_cf_c2pnb368w1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_c2pnb368w1
+PeerKey=MALICE_cf_c2pnb368w1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=c2tnb191v1 curve tests
+
+PrivateKey=ALICE_cf_c2tnb191v1
+-----BEGIN PRIVATE KEY-----
+MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAUEHzAdAgEBBBgXyG7A4BvSmjKEl3aU+FQUt02p9U7x
+Jk4=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_c2tnb191v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAUDMgAEG9iuZmnhz2H/YQKmVUaO//fm7hvV+CP5c2iszpR3
+7lRimqLWHPyvKgcP+PRCIUom
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_c2tnb191v1:ALICE_cf_c2tnb191v1_PUB
+
+PrivateKey=BOB_cf_c2tnb191v1
+-----BEGIN PRIVATE KEY-----
+MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAUEHzAdAgEBBBg4+2hv9x9HxFy0c2c1XESDdgOamHu0
+MTU=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_c2tnb191v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAUDMgAEdO/4ii8gi8eQfBrv3XmsOETwIfT8OIpBW/kUoHD+
+adqalcB6SIWOfoJReDLcpxAD
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_c2tnb191v1:BOB_cf_c2tnb191v1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_c2tnb191v1
+PeerKey=BOB_cf_c2tnb191v1_PUB
+SharedSecret=2ee8a85151c397600984285307c14f0ea0e4c2071d753a99
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_c2tnb191v1
+PeerKey=ALICE_cf_c2tnb191v1_PUB
+SharedSecret=2ee8a85151c397600984285307c14f0ea0e4c2071d753a99
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_c2tnb191v1
+PeerKey=BOB_cf_c2tnb191v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=334051dfd62237e69e280ce2fab979bd77260f8dfe4df989
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_c2tnb191v1
+PeerKey=ALICE_cf_c2tnb191v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=334051dfd62237e69e280ce2fab979bd77260f8dfe4df989
+
+PublicKey=MALICE_cf_c2tnb191v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAUDMgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcPEwZ1wj
+iNoFyzyANZl8IDB0fF1RmZD6
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_c2tnb191v1
+PeerKey=MALICE_cf_c2tnb191v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_c2tnb191v1
+PeerKey=MALICE_cf_c2tnb191v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=c2tnb191v2 curve tests
+
+PrivateKey=ALICE_cf_c2tnb191v2
+-----BEGIN PRIVATE KEY-----
+MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAYEHzAdAgEBBBgQZHIQIPrAsbJqq4ZX3JdMrZAkaIGP
+jbo=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_c2tnb191v2_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAYDMgAEAyQdwZYRIiv7O4/WRLDKJ249TM8dr2Y+Oz8rSxCI
+UVvJT/Jv9m462J6Iz1XOohhP
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_c2tnb191v2:ALICE_cf_c2tnb191v2_PUB
+
+PrivateKey=BOB_cf_c2tnb191v2
+-----BEGIN PRIVATE KEY-----
+MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAYEHzAdAgEBBBgThhW6d5QDaqM8yhm16q6Pu/VFBpf7
+wcs=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_c2tnb191v2_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAYDMgAEBVkB4O6fFvGzMHv4BF51muFA0npOGKoOdKbIIMQY
+JBIoz1RNNXTcgdpguLcrvcPJ
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_c2tnb191v2:BOB_cf_c2tnb191v2_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_c2tnb191v2
+PeerKey=BOB_cf_c2tnb191v2_PUB
+SharedSecret=711f90cb2aaea65e939065cbd1896affe1d490ba14571400
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_c2tnb191v2
+PeerKey=ALICE_cf_c2tnb191v2_PUB
+SharedSecret=711f90cb2aaea65e939065cbd1896affe1d490ba14571400
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_c2tnb191v2
+PeerKey=BOB_cf_c2tnb191v2_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=1740db5b771fa2889d3ec7c1ba8eeffa7741f0ee62433dce
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_c2tnb191v2
+PeerKey=ALICE_cf_c2tnb191v2_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=1740db5b771fa2889d3ec7c1ba8eeffa7741f0ee62433dce
+
+PublicKey=MALICE_cf_c2tnb191v2_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAYDMgAEA3yPV6Ilx7PU7dWIDzgKzFV07LNsn1EhMyLQaa5U
+2vqunpWef+/CaO2pFBcwwW+x
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_c2tnb191v2
+PeerKey=MALICE_cf_c2tnb191v2_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_c2tnb191v2
+PeerKey=MALICE_cf_c2tnb191v2_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=c2tnb191v3 curve tests
+
+PrivateKey=ALICE_cf_c2tnb191v3
+-----BEGIN PRIVATE KEY-----
+MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAcEHzAdAgEBBBgTPjf06B01Jq59qU1iczNuA29WfW+b
+erU=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_c2tnb191v3_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAcDMgAEL4NGEUX2CXY18MyoH1inKq5kde9RGr25ODm/0BEX
+HWsGvDE2HC+6pL2BMl3MRCty
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_c2tnb191v3:ALICE_cf_c2tnb191v3_PUB
+
+PrivateKey=BOB_cf_c2tnb191v3
+-----BEGIN PRIVATE KEY-----
+MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAcEHzAdAgEBBBgUC2bC465JTXYLUaaET/r5n7X85gRH
+iSQ=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_c2tnb191v3_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAcDMgAEPKekNkT9mQ8KRCTR2RwCFkhNvsjL+/mLHYzbMrYe
+QFIb5QwXAdbg2tEOl7yj9qkk
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_c2tnb191v3:BOB_cf_c2tnb191v3_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_c2tnb191v3
+PeerKey=BOB_cf_c2tnb191v3_PUB
+SharedSecret=196200f7ea06c43c35516b995cf4a4dd4151dbd0ed998561
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_c2tnb191v3
+PeerKey=ALICE_cf_c2tnb191v3_PUB
+SharedSecret=196200f7ea06c43c35516b995cf4a4dd4151dbd0ed998561
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_c2tnb191v3
+PeerKey=BOB_cf_c2tnb191v3_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=311939377670a8a1ed1ee17f9dd182167da00c5a19e2e109
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_c2tnb191v3
+PeerKey=ALICE_cf_c2tnb191v3_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=311939377670a8a1ed1ee17f9dd182167da00c5a19e2e109
+
+PublicKey=MALICE_cf_c2tnb191v3_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAcDMgAESvPjWlLnANK2j38hHZ0uqueaniovkhwwdJZjrmUk
+n5vQBTxUzkIkMjL33v6Lr3z7
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_c2tnb191v3
+PeerKey=MALICE_cf_c2tnb191v3_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_c2tnb191v3
+PeerKey=MALICE_cf_c2tnb191v3_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=c2tnb239v1 curve tests
+
+PrivateKey=ALICE_cf_c2tnb239v1
+-----BEGIN PRIVATE KEY-----
+MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAsEJTAjAgEBBB4fMJDhCEiuEf/RF6oGjHVcNwN+wCYG
+rJMnJLIXiCI=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_c2tnb239v1_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAsDPgAEUgG/uMWy4k0R/kbVJEapF6r5ik4Q9WPsDXAd0856
+dVL8PvBXgixk2tKfyY1xUVebcEVlgdZP1pN1Xyvi
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_c2tnb239v1:ALICE_cf_c2tnb239v1_PUB
+
+PrivateKey=BOB_cf_c2tnb239v1
+-----BEGIN PRIVATE KEY-----
+MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAsEJTAjAgEBBB4JLDwVJQw3+00FiZBDWFErd7PXnchH
+sfpZeV3i5FM=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_c2tnb239v1_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAsDPgAEcwKt31cWaoFUd7QxYSdwgMDOqEhjPbD3Z9AfR3tc
+G77/MY5z1oQegqImBog645vtPWI8lZd1zcl6QYRS
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_c2tnb239v1:BOB_cf_c2tnb239v1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_c2tnb239v1
+PeerKey=BOB_cf_c2tnb239v1_PUB
+SharedSecret=413ea943cdf40c45795c77aeea7099b81cc42566067924d1fdbae42ddf99
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_c2tnb239v1
+PeerKey=ALICE_cf_c2tnb239v1_PUB
+SharedSecret=413ea943cdf40c45795c77aeea7099b81cc42566067924d1fdbae42ddf99
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_c2tnb239v1
+PeerKey=BOB_cf_c2tnb239v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=1f1e5a6084492e895c35d76a5d2b4a3fafbd96c4b2230ea71cc1c711fa38
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_c2tnb239v1
+PeerKey=ALICE_cf_c2tnb239v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=1f1e5a6084492e895c35d76a5d2b4a3fafbd96c4b2230ea71cc1c711fa38
+
+PublicKey=MALICE_cf_c2tnb239v1_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAsDPgAEJFn89FF7xaa5m+XGxWKFwCH+Mu4rbxwi6lvhuEuT
+Itl/OAosALFh8xpt+N5gmKtUdhpjyok2udC4B/mY
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_c2tnb239v1
+PeerKey=MALICE_cf_c2tnb239v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_c2tnb239v1
+PeerKey=MALICE_cf_c2tnb239v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=c2tnb239v2 curve tests
+
+PrivateKey=ALICE_cf_c2tnb239v2
+-----BEGIN PRIVATE KEY-----
+MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAwEJTAjAgEBBB4KU4YKdzFOkl6M1biHkxtVGD2uNXr6
+GbEcp4PbJKU=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_c2tnb239v2_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAwDPgAEKzpycflUrsyqVV/+fzvC2+AuX3r0b0Syn8acvn78
+VnKA9mZKwPLWhnMJcLyzarIzc/6/UcfYGNmTyUlG
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_c2tnb239v2:ALICE_cf_c2tnb239v2_PUB
+
+PrivateKey=BOB_cf_c2tnb239v2
+-----BEGIN PRIVATE KEY-----
+MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAwEJTAjAgEBBB4HZQLKGKBpIKiyTq6XYZWQNph1oGP+
+JLwCwn7lYx0=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_c2tnb239v2_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAwDPgAETPSkhMs3JW3BG66FSfCov76JKdcRiBhMCW453Wku
+N7yBxBmWjeclHhnXIzfc4qM4qf9n3KzMSXejPVYg
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_c2tnb239v2:BOB_cf_c2tnb239v2_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_c2tnb239v2
+PeerKey=BOB_cf_c2tnb239v2_PUB
+SharedSecret=2e738f14795b2e19ee791c1bf30c5e462ca6c6ed0ec5c6c6402d0730cf4c
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_c2tnb239v2
+PeerKey=ALICE_cf_c2tnb239v2_PUB
+SharedSecret=2e738f14795b2e19ee791c1bf30c5e462ca6c6ed0ec5c6c6402d0730cf4c
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_c2tnb239v2
+PeerKey=BOB_cf_c2tnb239v2_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=7662d8b94d3f0d20eb8e112ca8b7d5699d81f35902df5b77561977df3946
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_c2tnb239v2
+PeerKey=ALICE_cf_c2tnb239v2_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=7662d8b94d3f0d20eb8e112ca8b7d5699d81f35902df5b77561977df3946
+
+PublicKey=MALICE_cf_c2tnb239v2_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAwDPgAES8fLc5mtVI0HqgKRJ7mN8MU1B0FBkiim6jCHYJf3
+JYUX3Gn3Ai11cHie+nVb3z51jSkpDQENHESTv5K2
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_c2tnb239v2
+PeerKey=MALICE_cf_c2tnb239v2_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_c2tnb239v2
+PeerKey=MALICE_cf_c2tnb239v2_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=c2tnb239v3 curve tests
+
+PrivateKey=ALICE_cf_c2tnb239v3
+-----BEGIN PRIVATE KEY-----
+MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAA0EJTAjAgEBBB4BZZXtcMw5GrpgHJLx4D8z7M6ocWdv
+rDl2fV9ObC8=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_c2tnb239v3_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAA0DPgAEOu2HIAUX+r6IbRlrPUJUBDL814dR++maVAAkUIjD
+H33ewqcI9ZLtpvuR8P8hgRNUTXlh1GWgrB6F21Eo
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_c2tnb239v3:ALICE_cf_c2tnb239v3_PUB
+
+PrivateKey=BOB_cf_c2tnb239v3
+-----BEGIN PRIVATE KEY-----
+MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAA0EJTAjAgEBBB4BDxw3SA54y6uYOW1n4yZaUK22J9ef
+XG3HcQX+4i0=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_c2tnb239v3_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAA0DPgAEVaEi76wyzlpzkkSElf4SmGZ7kf1ghHMP82HkGk7K
+BC10zUyppoSOAr0eX4pHAkDUF1m/KGoJa7QcJJww
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_c2tnb239v3:BOB_cf_c2tnb239v3_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_c2tnb239v3
+PeerKey=BOB_cf_c2tnb239v3_PUB
+SharedSecret=6a756022ec2ea89b0fa757824909707102acf3b7da39dc625c6252eb4c48
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_c2tnb239v3
+PeerKey=ALICE_cf_c2tnb239v3_PUB
+SharedSecret=6a756022ec2ea89b0fa757824909707102acf3b7da39dc625c6252eb4c48
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_c2tnb239v3
+PeerKey=BOB_cf_c2tnb239v3_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=3240e19dd8c290e5e1749df60ad0166dd9dbfad645e518b4948e14f774ce
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_c2tnb239v3
+PeerKey=ALICE_cf_c2tnb239v3_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=3240e19dd8c290e5e1749df60ad0166dd9dbfad645e518b4948e14f774ce
+
+PublicKey=MALICE_cf_c2tnb239v3_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAA0DPgAELe/znC87/2ucKX7mXUUyiUvg67slWRdH+WHDct9d
+LcXDyB342ZN1nm0NCAmBMcLjohX0Zza0ji3YNjT1
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_c2tnb239v3
+PeerKey=MALICE_cf_c2tnb239v3_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_c2tnb239v3
+PeerKey=MALICE_cf_c2tnb239v3_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=c2tnb359v1 curve tests
+
+PrivateKey=ALICE_cf_c2tnb359v1
+-----BEGIN PRIVATE KEY-----
+ME4CAQAwEwYHKoZIzj0CAQYIKoZIzj0DABIENDAyAgEBBC0Afea/a1NrRf6rRRr/UDsI559ADTFP
+Bd5HaS33laTZkCdNLITw1UUrESUIOiU=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_c2tnb359v1_PUB
+-----BEGIN PUBLIC KEY-----
+MHMwEwYHKoZIzj0CAQYIKoZIzj0DABIDXAAEZMJU3QF9UJJp2m6qyCnhPuVlPKPHtav3DCgH27SY
+RLMN7C4rRmqiJakD11QtOforOgbPW5r/v7t4TUWIlq8jV7kapJNtxQtg/S87L0NQGgHBq/lnJL8x
+fN3Y
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_c2tnb359v1:ALICE_cf_c2tnb359v1_PUB
+
+PrivateKey=BOB_cf_c2tnb359v1
+-----BEGIN PRIVATE KEY-----
+ME4CAQAwEwYHKoZIzj0CAQYIKoZIzj0DABIENDAyAgEBBC0Aaw+yr7Atz8CXjLsbI5msXLqxFoMr
+esHVfU53i6ucCsnPTWSDWSb5CePtI9g=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_c2tnb359v1_PUB
+-----BEGIN PUBLIC KEY-----
+MHMwEwYHKoZIzj0CAQYIKoZIzj0DABIDXAAEUQde0iyDHbsFJZ459d4zUhsrJYAkqndmEBRwSlg5
+ZNX8SSS79Zf2HsQl+LWIZyzeYzoHobKXufChw9/H4ThS58VwV5/0hoE929PIgJ1MSEqr5LvJXi+b
+R8fe
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_c2tnb359v1:BOB_cf_c2tnb359v1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_c2tnb359v1
+PeerKey=BOB_cf_c2tnb359v1_PUB
+SharedSecret=623a71122b5acad467d40d97ef8d8fd46541d8c41d7de6ba181c24e2714c1bc35bcefcf089af69c406eedecc12
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_c2tnb359v1
+PeerKey=ALICE_cf_c2tnb359v1_PUB
+SharedSecret=623a71122b5acad467d40d97ef8d8fd46541d8c41d7de6ba181c24e2714c1bc35bcefcf089af69c406eedecc12
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_c2tnb359v1
+PeerKey=BOB_cf_c2tnb359v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=1c9c4cea3251dace2cb763eabf60f106cc1b03f2491e6f20d7bea78e062f8f14c4e82e4d43786eefa44d33f7e9
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_c2tnb359v1
+PeerKey=ALICE_cf_c2tnb359v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=1c9c4cea3251dace2cb763eabf60f106cc1b03f2491e6f20d7bea78e062f8f14c4e82e4d43786eefa44d33f7e9
+
+PublicKey=MALICE_cf_c2tnb359v1_PUB
+-----BEGIN PUBLIC KEY-----
+MHMwEwYHKoZIzj0CAQYIKoZIzj0DABIDXAAEDW1DxeJfyPPnxX4WiLM5ZnX9AypqqeKj7FTHxanl
+++A6FgVFjUCatt8Sr4xnSc3zDE0kh6f/wS9SbtCAi74i8HAX5SJiccCMPRkw6kBuHZgiG8EmFJ53
+OEQw
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_c2tnb359v1
+PeerKey=MALICE_cf_c2tnb359v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_c2tnb359v1
+PeerKey=MALICE_cf_c2tnb359v1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=c2tnb431r1 curve tests
+
+PrivateKey=ALICE_cf_c2tnb431r1
+-----BEGIN PRIVATE KEY-----
+MFYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DABQEPDA6AgEBBDUAG1rgUnH3+PSxqlzt9+QTWv7PrYxz
+Qgqj5A2Mqi0LbdixVDciVSSgrU6keVu72oCmHVP+OQ==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_c2tnb431r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGFMBMGByqGSM49AgEGCCqGSM49AwAUA24ABFcQEDic9pYxtxStk/oBxafqyUux1kvEOOwR4FxJ
+pGEMTh8B+YfkWuq+IDY5zSqNKtg7cRlAFX2dlHhRSvNxrN3DJCrhe/TQq8SIYawcqEQnM39F8hHM
+7VQJLEsBpJ/WUonwMJXknjgfONP7GA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_c2tnb431r1:ALICE_cf_c2tnb431r1_PUB
+
+PrivateKey=BOB_cf_c2tnb431r1
+-----BEGIN PRIVATE KEY-----
+MFYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DABQEPDA6AgEBBDUBOsZrpI6hTgImR8DBhKOOrh2SvcT/
+VwmzYnbuCRrtr/zwIQcqKKI1ztlrl+kxFxJfk5L7UQ==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_c2tnb431r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGFMBMGByqGSM49AgEGCCqGSM49AwAUA24ABHeTG6xjbsKKxn4oYQt9qUM9LrSPZfY11XsBmROc
+fb9kEbBLU+QixSbYZOrqPasesDV9dApDXF+w6EfIeNyJEK5Lk+aXamrn7fRMUAQ2m7+Odp87GgA+
+8Cg6YpgbK314SK5STziqoZwzEISJ9w==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_c2tnb431r1:BOB_cf_c2tnb431r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_c2tnb431r1
+PeerKey=BOB_cf_c2tnb431r1_PUB
+SharedSecret=1c9a64de0b706f0e562d5144ceeb4806ce8782865dc0e3fab694967955bd40afc79bf9241ef4a173fbf9baeac0d416392fb13bdc6978
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_c2tnb431r1
+PeerKey=ALICE_cf_c2tnb431r1_PUB
+SharedSecret=1c9a64de0b706f0e562d5144ceeb4806ce8782865dc0e3fab694967955bd40afc79bf9241ef4a173fbf9baeac0d416392fb13bdc6978
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_c2tnb431r1
+PeerKey=BOB_cf_c2tnb431r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=059e2ea2d0d8bad5005a9401196ebb1633377c7ded8ec58a0398cf1d0f42ea82614f68cb836ecfc33612b8a705b4c3b7b4ed12eb6e22
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_c2tnb431r1
+PeerKey=ALICE_cf_c2tnb431r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=059e2ea2d0d8bad5005a9401196ebb1633377c7ded8ec58a0398cf1d0f42ea82614f68cb836ecfc33612b8a705b4c3b7b4ed12eb6e22
+
+PublicKey=MALICE_cf_c2tnb431r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGFMBMGByqGSM49AgEGCCqGSM49AwAUA24ABA/cHJ1bNJ2l3GcrT67WEoU0w/Ajy28T9X4XLv8a
+5EpnkembeFlRG8ILplDcZimE8kjNQWynAk+NbJRsIU/XLzcm7VXkkqEkx/yCQ/TOcbeB3qrpzWYr
+F3Cls9x60wuFYNc9d6eIe4B+puz9IQ==
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_c2tnb431r1
+PeerKey=MALICE_cf_c2tnb431r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_c2tnb431r1
+PeerKey=MALICE_cf_c2tnb431r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=prime192v1 curve tests
+
+PrivateKey=ALICE_cf_prime192v1
+-----BEGIN PRIVATE KEY-----
+MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEHzAdAgEBBBhQFYLaobJ47BVWWZv/ByY8Ti69m/U9
+TeI=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_prime192v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEHYbt14KzucSpmKMrlDx1IGz/a28nDs21OjKgx3BK
+PZ78UrllIr69kgrYUKsRg4sd
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_prime192v1:ALICE_cf_prime192v1_PUB
+
+PrivateKey=BOB_cf_prime192v1
+-----BEGIN PRIVATE KEY-----
+MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEHzAdAgEBBBhsbmKHAtygIqirkmUXSbniDJOx0/fI
+CWM=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_prime192v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEJA+FQcXq5Axzv8pLDslxq1QVt1hjN2i0TgoO6Yxp
+bAekMot69VorE8ibSzgJixXJ
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_prime192v1:BOB_cf_prime192v1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_prime192v1
+PeerKey=BOB_cf_prime192v1_PUB
+SharedSecret=e36cad3b0f8d00f60f090440a76df47896713ae61421c354
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_prime192v1
+PeerKey=ALICE_cf_prime192v1_PUB
+SharedSecret=e36cad3b0f8d00f60f090440a76df47896713ae61421c354
+
+Title=prime192v2 curve tests
+
+PrivateKey=ALICE_cf_prime192v2
+-----BEGIN PRIVATE KEY-----
+MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQIEHzAdAgEBBBh6rcgPFDmA2P4CGSrC7ii9DAjepljX
+sMM=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_prime192v2_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQIDMgAET6wOPoDU3BeU7VKozsGEvDeJs//9Z/aNEcbbLQ0d
+g5IzsS/XMJzifjCJZgNsb7mi
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_prime192v2:ALICE_cf_prime192v2_PUB
+
+PrivateKey=BOB_cf_prime192v2
+-----BEGIN PRIVATE KEY-----
+MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQIEHzAdAgEBBBja4R9iZuiu95XEuM1558ArTwNnAl7M
+xqI=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_prime192v2_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQIDMgAEcgWNAOL4pZCmouZl+be+rC0yLAJkm2YuPWs+FX2u
+Y6OU1aHkkspZTC1uUVWjchy5
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_prime192v2:BOB_cf_prime192v2_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_prime192v2
+PeerKey=BOB_cf_prime192v2_PUB
+SharedSecret=ae2ff9f1f9f24e6d281dc78993d9f71913e1e105965000a1
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_prime192v2
+PeerKey=ALICE_cf_prime192v2_PUB
+SharedSecret=ae2ff9f1f9f24e6d281dc78993d9f71913e1e105965000a1
+
+Title=prime192v3 curve tests
+
+PrivateKey=ALICE_cf_prime192v3
+-----BEGIN PRIVATE KEY-----
+MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQMEHzAdAgEBBBij5blPQRKM1/9c57YDZXIIue80MDqx
+Igw=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_prime192v3_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAE1+mLeiT/jjHO71IL/C/ZcnF6+yj9FV6eqfuPdHAi
+MsDRFCB6/h8TcCUFuospu5l0
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_prime192v3:ALICE_cf_prime192v3_PUB
+
+PrivateKey=BOB_cf_prime192v3
+-----BEGIN PRIVATE KEY-----
+MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQMEHzAdAgEBBBhgFP4fFLtm/yk5tsosBUBKTg370FOu
+92g=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_prime192v3_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAEv35bOz0xqLeJqpZdZ8LyiUgsJMBEtN2UMJm8blX2
+vMWAgEeLhzar86BUlS7dZwS7
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_prime192v3:BOB_cf_prime192v3_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_prime192v3
+PeerKey=BOB_cf_prime192v3_PUB
+SharedSecret=9e562ecbe29c510a13b0daea822ec864c2a9684d2a382812
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_prime192v3
+PeerKey=ALICE_cf_prime192v3_PUB
+SharedSecret=9e562ecbe29c510a13b0daea822ec864c2a9684d2a382812
+
+Title=prime239v1 curve tests
+
+PrivateKey=ALICE_cf_prime239v1
+-----BEGIN PRIVATE KEY-----
+MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQQEJTAjAgEBBB5nH2mt/GUx+I/60NlcuQlrdupDXwMY
+SF/w+SUTNqY=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_prime239v1_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQQDPgAEMqQLCgDR9njkq9QELuOu+J/9YGcxJHULdvxHImLW
+RXqBUM5Xea+Qk2SKIpWcogxr2zFeQyeLj2bQysuo
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_prime239v1:ALICE_cf_prime239v1_PUB
+
+PrivateKey=BOB_cf_prime239v1
+-----BEGIN PRIVATE KEY-----
+MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQQEJTAjAgEBBB5RZgYV+j+zhwI12zCzB+mdPofMx0kB
+jZ9gplgXxzk=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_prime239v1_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQQDPgAEBR5m/kllh025oO4GvqALkjRliVv7q4x8ro/tkYnT
+L2U4hkT6xUeRu9QC4KOz7KUVH+nBbQASL4XQg/3C
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_prime239v1:BOB_cf_prime239v1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_prime239v1
+PeerKey=BOB_cf_prime239v1_PUB
+SharedSecret=196b1d0206d4f87c313c266bfb12c90dd1f1f64b89bfc16518086b9801b8
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_prime239v1
+PeerKey=ALICE_cf_prime239v1_PUB
+SharedSecret=196b1d0206d4f87c313c266bfb12c90dd1f1f64b89bfc16518086b9801b8
+
+Title=prime239v2 curve tests
+
+PrivateKey=ALICE_cf_prime239v2
+-----BEGIN PRIVATE KEY-----
+MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQUEJTAjAgEBBB5uLCwofbD2Suc/iIRhXJsPqZ4me87h
++tFevsg1pPE=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_prime239v2_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQUDPgAETH77jXHBItV673gTNK/HTFldo4VxPiscbideUgKd
+CWjdVsXebgAZbqQwf0h9QWcIgM7K7ODdW5kCuZ1G
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_prime239v2:ALICE_cf_prime239v2_PUB
+
+PrivateKey=BOB_cf_prime239v2
+-----BEGIN PRIVATE KEY-----
+MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQUEJTAjAgEBBB5nlF+ouuw3Ljkgy3pHkCN+/JoHAMyT
+KY0wlvJdo/w=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_prime239v2_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQUDPgAELUQYo0UH8HbK/RMD2jVphBU+iB4OTOfvaaTlHq06
+dcJ8a9a+mAQKhb1OZVEq1n4nQsgRiI1rPxugVERM
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_prime239v2:BOB_cf_prime239v2_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_prime239v2
+PeerKey=BOB_cf_prime239v2_PUB
+SharedSecret=1d18ca6366bceba3c1477daa0e08202088abcf14fc2b8fbf98ba95858fcf
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_prime239v2
+PeerKey=ALICE_cf_prime239v2_PUB
+SharedSecret=1d18ca6366bceba3c1477daa0e08202088abcf14fc2b8fbf98ba95858fcf
+
+Title=prime239v3 curve tests
+
+PrivateKey=ALICE_cf_prime239v3
+-----BEGIN PRIVATE KEY-----
+MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQYEJTAjAgEBBB5J95JRhBDTzlyAPAfu6T2Pb9vK0NKu
+Y9AfhA2G+mI=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_prime239v3_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQYDPgAEZEN48pqgLF08Yjj/8BLM2Nr5ZhpYxyBurbzKRuBb
+GLpzZLteJN9vZjN7ouNpMxLVUFQxTOwpsvUw86Lk
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_prime239v3:ALICE_cf_prime239v3_PUB
+
+PrivateKey=BOB_cf_prime239v3
+-----BEGIN PRIVATE KEY-----
+MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQYEJTAjAgEBBB5Z7rMZML1xeryBaYYr+QuMiQxHT44I
+d9bmIVvG3dM=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_prime239v3_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQYDPgAEQUWKqohAPAoIYEZOvc1QwSlcB+gW0febaNxGOy47
+LaIWdsNM7GJVP9xpdSwm/L+Dip/oH4E59f3SiOAd
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_prime239v3:BOB_cf_prime239v3_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_prime239v3
+PeerKey=BOB_cf_prime239v3_PUB
+SharedSecret=4dcc2c67c5993162ed71ebb33077bbb85395b0d3eec2311aa404e45901a0
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_prime239v3
+PeerKey=ALICE_cf_prime239v3_PUB
+SharedSecret=4dcc2c67c5993162ed71ebb33077bbb85395b0d3eec2311aa404e45901a0
+
+Title=prime256v1 curve tests
+
+PrivateKey=ALICE_cf_prime256v1
+-----BEGIN PRIVATE KEY-----
+MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCDZE0NZiGAFJX6JQxumKTFRT+XFCQqJ
+gHCUxmU2fRcn9Q==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_prime256v1_PUB
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5kDOrX6kmk1/jHfEdMBluFos6dyCbzKVOX3v2aa2
+y5IhlhTKtCJdydX+XWLDXWW9sbtIRNP94R3iOOpRPBqpGg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_prime256v1:ALICE_cf_prime256v1_PUB
+
+PrivateKey=BOB_cf_prime256v1
+-----BEGIN PRIVATE KEY-----
+MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCAxJgV1dLJw/o2Dmh1fIY1KpBd88WCP
+23wZzR8DzhyCrA==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_prime256v1_PUB
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5J6yA+j0zrGi6RilUhjrcL7OUMzYTwpnw5DdRXr0
+creHgE03EFV//7xqadB4BDwFIGM9MV2sE6qREEomWhZFeg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_prime256v1:BOB_cf_prime256v1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_prime256v1
+PeerKey=BOB_cf_prime256v1_PUB
+SharedSecret=ee63690b553dcd9bccb066137725f0489395a83f4d280f309339d606c969734a
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_prime256v1
+PeerKey=ALICE_cf_prime256v1_PUB
+SharedSecret=ee63690b553dcd9bccb066137725f0489395a83f4d280f309339d606c969734a
+
+Title=secp112r1 curve tests
+
+PrivateKey=ALICE_cf_secp112r1
+-----BEGIN PRIVATE KEY-----
+MCwCAQAwEAYHKoZIzj0CAQYFK4EEAAYEFTATAgEBBA6zC5ZzEIIdvY4Q7DS0uw==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_secp112r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDIwEAYHKoZIzj0CAQYFK4EEAAYDHgAEYIawfjH3qRrJJWwuG3Ys5ZhDJsmdWi34aHgKAA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_secp112r1:ALICE_cf_secp112r1_PUB
+
+PrivateKey=BOB_cf_secp112r1
+-----BEGIN PRIVATE KEY-----
+MCwCAQAwEAYHKoZIzj0CAQYFK4EEAAYEFTATAgEBBA6WPx4YxBODium8BKDw0A==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_secp112r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDIwEAYHKoZIzj0CAQYFK4EEAAYDHgAEchh3iQdPN1rrzrpdZRQ95G6tvdwEBQ+gfu1tvA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_secp112r1:BOB_cf_secp112r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_secp112r1
+PeerKey=BOB_cf_secp112r1_PUB
+SharedSecret=4ddd1d504b444d4be67ba2e4610a
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_secp112r1
+PeerKey=ALICE_cf_secp112r1_PUB
+SharedSecret=4ddd1d504b444d4be67ba2e4610a
+
+Title=secp112r2 curve tests
+
+PrivateKey=ALICE_cf_secp112r2
+-----BEGIN PRIVATE KEY-----
+MCwCAQAwEAYHKoZIzj0CAQYFK4EEAAcEFTATAgEBBA4GcvIx97ePHdAiH0Z9EA==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_secp112r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDIwEAYHKoZIzj0CAQYFK4EEAAcDHgAEHK9uNAILHBmPZdKKh79/nzYE0HbvC//rA7i0Xw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_secp112r2:ALICE_cf_secp112r2_PUB
+
+PrivateKey=BOB_cf_secp112r2
+-----BEGIN PRIVATE KEY-----
+MCwCAQAwEAYHKoZIzj0CAQYFK4EEAAcEFTATAgEBBA4WzpVFZnZv9mvtpnYNyw==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_secp112r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDIwEAYHKoZIzj0CAQYFK4EEAAcDHgAEUzBLNQupqUpGgmZl9JVjKBpwusl52rFg5OVFJA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_secp112r2:BOB_cf_secp112r2_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_secp112r2
+PeerKey=BOB_cf_secp112r2_PUB
+SharedSecret=a6d05c7ba5128a9685c705b5030b
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_secp112r2
+PeerKey=ALICE_cf_secp112r2_PUB
+SharedSecret=a6d05c7ba5128a9685c705b5030b
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_secp112r2
+PeerKey=BOB_cf_secp112r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=04f3280e92c269d794aa779efcef
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_secp112r2
+PeerKey=ALICE_cf_secp112r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=04f3280e92c269d794aa779efcef
+
+PublicKey=MALICE_cf_secp112r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDIwEAYHKoZIzj0CAQYFK4EEAAcDHgAEsf2N4SfUZWtXPrUTmEyr71I/JSn8VtzQsFHuqQ==
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_secp112r2
+PeerKey=MALICE_cf_secp112r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_secp112r2
+PeerKey=MALICE_cf_secp112r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=secp128r1 curve tests
+
+PrivateKey=ALICE_cf_secp128r1
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwEAYHKoZIzj0CAQYFK4EEABwEFzAVAgEBBBB+RX18d0+gKpdcKbJJTrEZ
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_secp128r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDYwEAYHKoZIzj0CAQYFK4EEABwDIgAEG0XMAdrAZOPUW6L9ADU8XK8sZr7dtIcDinSWU1zSV9s=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_secp128r1:ALICE_cf_secp128r1_PUB
+
+PrivateKey=BOB_cf_secp128r1
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwEAYHKoZIzj0CAQYFK4EEABwEFzAVAgEBBBB/J9/eClt9mimGwOcOsjJF
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_secp128r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDYwEAYHKoZIzj0CAQYFK4EEABwDIgAE82nknsOS+u8mybP0KJqQhvm83gbPNTZOcvm0ZDVR5sU=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_secp128r1:BOB_cf_secp128r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_secp128r1
+PeerKey=BOB_cf_secp128r1_PUB
+SharedSecret=5020f1b759da1f737a61a29a268d7669
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_secp128r1
+PeerKey=ALICE_cf_secp128r1_PUB
+SharedSecret=5020f1b759da1f737a61a29a268d7669
+
+Title=secp128r2 curve tests
+
+PrivateKey=ALICE_cf_secp128r2
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwEAYHKoZIzj0CAQYFK4EEAB0EFzAVAgEBBBALPaUYCnPgNiLhez93Z1Gi
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_secp128r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDYwEAYHKoZIzj0CAQYFK4EEAB0DIgAEOKiPRGtZXwxmvTr35NmUkNsAGGk9RKNA4D5BE9ZrjZQ=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_secp128r2:ALICE_cf_secp128r2_PUB
+
+PrivateKey=BOB_cf_secp128r2
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwEAYHKoZIzj0CAQYFK4EEAB0EFzAVAgEBBBARg3vb436QgyHdyt6l/b6G
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_secp128r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDYwEAYHKoZIzj0CAQYFK4EEAB0DIgAELph7h27BYjIINC2EddcpIOxKbdz8Xe7h3Az1ZuR9bAI=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_secp128r2:BOB_cf_secp128r2_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_secp128r2
+PeerKey=BOB_cf_secp128r2_PUB
+SharedSecret=8f4d8c75141e9b084328222440eb5dfa
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_secp128r2
+PeerKey=ALICE_cf_secp128r2_PUB
+SharedSecret=8f4d8c75141e9b084328222440eb5dfa
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_secp128r2
+PeerKey=BOB_cf_secp128r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=baaa0c16e16eef291001475d638e4830
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_secp128r2
+PeerKey=ALICE_cf_secp128r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=baaa0c16e16eef291001475d638e4830
+
+PublicKey=MALICE_cf_secp128r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDYwEAYHKoZIzj0CAQYFK4EEAB0DIgAE6h6RzJIp6HLR6RDOPtyzGDurkuE9aAaZqHosPTnkLxQ=
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_secp128r2
+PeerKey=MALICE_cf_secp128r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_secp128r2
+PeerKey=MALICE_cf_secp128r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=secp160k1 curve tests
+
+PrivateKey=ALICE_cf_secp160k1
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAkEHDAaAgEBBBUAlxTBO50KwFwWKPtk1rutu68m+zI=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_secp160k1_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFK4EEAAkDKgAEcVWIjtPZn1cHckclpn5jKDCphQUVHxFN5tSeFG9wsJZT
+EvqPyLS64w==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_secp160k1:ALICE_cf_secp160k1_PUB
+
+PrivateKey=BOB_cf_secp160k1
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAkEHDAaAgEBBBUAdrPkoNkRVUloiuwzruQszSUuwpY=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_secp160k1_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFK4EEAAkDKgAESGN41cAj8Fg4pAJM7FUKHiawbCR0b9unMpZWxqOKeW1/
+bxT/CqEkyw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_secp160k1:BOB_cf_secp160k1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_secp160k1
+PeerKey=BOB_cf_secp160k1_PUB
+SharedSecret=b738a0bf17f3271a9a155bfdfe2f0f1d51494d42
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_secp160k1
+PeerKey=ALICE_cf_secp160k1_PUB
+SharedSecret=b738a0bf17f3271a9a155bfdfe2f0f1d51494d42
+
+Title=secp160r1 curve tests
+
+PrivateKey=ALICE_cf_secp160r1
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAgEHDAaAgEBBBUAR6m1+jIBuJnSKx9fHmyAYhsnYe8=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_secp160r1_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFK4EEAAgDKgAEO78GZuBaCfJjHK97c9N21z+4mm37b5x7/Hr3Xc4pUbtb
+OoNj/A+W9w==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_secp160r1:ALICE_cf_secp160r1_PUB
+
+PrivateKey=BOB_cf_secp160r1
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAgEHDAaAgEBBBUATqvd54Jj7TbnrLAd2dMYCpExLws=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_secp160r1_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFK4EEAAgDKgAEBKDbBSPTwmb00MFvMtJMxQ2YDmcPOZHE8YbVr5hp8s5J
+Jwy17FaNNg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_secp160r1:BOB_cf_secp160r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_secp160r1
+PeerKey=BOB_cf_secp160r1_PUB
+SharedSecret=1912ea7b9bb1de5b8d3cef83e7a6e7a917816541
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_secp160r1
+PeerKey=ALICE_cf_secp160r1_PUB
+SharedSecret=1912ea7b9bb1de5b8d3cef83e7a6e7a917816541
+
+Title=secp160r2 curve tests
+
+PrivateKey=ALICE_cf_secp160r2
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFK4EEAB4EHDAaAgEBBBUA3IsVg4R4paXaPATDHvzfnvM+vjQ=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_secp160r2_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFK4EEAB4DKgAE4V+25YCpVkKF6NF/UPc1SYxohYWcf3qT3JDoPRhnm/rj
+mSqCCA6gUw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_secp160r2:ALICE_cf_secp160r2_PUB
+
+PrivateKey=BOB_cf_secp160r2
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFK4EEAB4EHDAaAgEBBBUAYT/5C7UpD17DnZm4ObswmGFMI1Q=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_secp160r2_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFK4EEAB4DKgAEB7YVzBmzhnIdouvN/nb8VMXCqO8dkhmebyVzoD0oAzuH
+nN+SfWr6aQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_secp160r2:BOB_cf_secp160r2_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_secp160r2
+PeerKey=BOB_cf_secp160r2_PUB
+SharedSecret=ccb9cae5c9487ff60c487bd1b39a62eb4680e9b6
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_secp160r2
+PeerKey=ALICE_cf_secp160r2_PUB
+SharedSecret=ccb9cae5c9487ff60c487bd1b39a62eb4680e9b6
+
+Title=secp192k1 curve tests
+
+PrivateKey=ALICE_cf_secp192k1
+-----BEGIN PRIVATE KEY-----
+MDYCAQAwEAYHKoZIzj0CAQYFK4EEAB8EHzAdAgEBBBikVZrCZQB7ZtkhNfQYpjKHZ9KxXgooJ90=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_secp192k1_PUB
+-----BEGIN PUBLIC KEY-----
+MEYwEAYHKoZIzj0CAQYFK4EEAB8DMgAEyV4EzMZglBXtYdn38hNTrCGflAsJprMkxkOlw58chZ25
+6EAu7gVvYDTpnRkymKyH
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_secp192k1:ALICE_cf_secp192k1_PUB
+
+PrivateKey=BOB_cf_secp192k1
+-----BEGIN PRIVATE KEY-----
+MDYCAQAwEAYHKoZIzj0CAQYFK4EEAB8EHzAdAgEBBBiJQ/PunKGk9QPUyqIBGMgHKKg+yxJr5io=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_secp192k1_PUB
+-----BEGIN PUBLIC KEY-----
+MEYwEAYHKoZIzj0CAQYFK4EEAB8DMgAE990Tnmh9QQQHVHuLpfrAsgjvB9R2MJXzhBZN1WvtxLqF
+OZ2oFMP0Kfcr7HbI7a5j
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_secp192k1:BOB_cf_secp192k1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_secp192k1
+PeerKey=BOB_cf_secp192k1_PUB
+SharedSecret=a46a6bfb279d4dc30cffac585d1fbec905dbe46aca5e3c9d
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_secp192k1
+PeerKey=ALICE_cf_secp192k1_PUB
+SharedSecret=a46a6bfb279d4dc30cffac585d1fbec905dbe46aca5e3c9d
+
+Title=secp224k1 curve tests
+
+PrivateKey=ALICE_cf_secp224k1
+-----BEGIN PRIVATE KEY-----
+MDsCAQAwEAYHKoZIzj0CAQYFK4EEACAEJDAiAgEBBB0AZPk3TzxGhX7TljBBhJDLBfulAMp6Bh3W
+w40Qyg==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_secp224k1_PUB
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACADOgAE4o7LGdJDixqJZ5imnqaX4IeE55NG4W0HEe72LVC7pmn2
+e3m7uC92ZQhduF9lJli4dXD5en/1wkE=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_secp224k1:ALICE_cf_secp224k1_PUB
+
+PrivateKey=BOB_cf_secp224k1
+-----BEGIN PRIVATE KEY-----
+MDsCAQAwEAYHKoZIzj0CAQYFK4EEACAEJDAiAgEBBB0AdQ02GguRy3yHOjLkpoWb27QA/L1abfWe
+q2xUfA==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_secp224k1_PUB
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACADOgAEzp00m0DaADn1mGiDCT7K1LZnoj/vCxHPowUDC9yQd17K
+KpJM5sGILrTkkgxqtt5pBeYE1NC1QUQ=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_secp224k1:BOB_cf_secp224k1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_secp224k1
+PeerKey=BOB_cf_secp224k1_PUB
+SharedSecret=6f7b9d16c9c1d3a5c84b6028f2a4fed9ae8e02455e678a27243bcc48
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_secp224k1
+PeerKey=ALICE_cf_secp224k1_PUB
+SharedSecret=6f7b9d16c9c1d3a5c84b6028f2a4fed9ae8e02455e678a27243bcc48
+
+Title=secp224r1 curve tests
+
+PrivateKey=ALICE_cf_secp224r1
+-----BEGIN PRIVATE KEY-----
+MDoCAQAwEAYHKoZIzj0CAQYFK4EEACEEIzAhAgEBBBzeo7Y0HMfrIqKNm3r997jcfVAa4osa0AR2
+JA28
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_secp224r1_PUB
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAExZc6o84XjBGLOosGj2t0QctgiyzF3NcVgy+DeW7stkVs
+yS2tRzMPBpwnApRzoRsdJR99sb3eM2s=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_secp224r1:ALICE_cf_secp224r1_PUB
+
+PrivateKey=BOB_cf_secp224r1
+-----BEGIN PRIVATE KEY-----
+MDoCAQAwEAYHKoZIzj0CAQYFK4EEACEEIzAhAgEBBBy2LsqxHhdlSiAmMYKQAEmjJWT22T42GYKo
+ZvXM
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_secp224r1_PUB
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAE71Eh6hwTKUrmyl2PdkY787GwxiohIcaqB4eK2Mwg6tU4
+LeJHWcgY18CgPKCaeldUgnkMcJzKj20=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_secp224r1:BOB_cf_secp224r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_secp224r1
+PeerKey=BOB_cf_secp224r1_PUB
+SharedSecret=29d8b75934d74d5153bbb94e0370437c63ecc30bf3d2800ed1cb7eb5
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_secp224r1
+PeerKey=ALICE_cf_secp224r1_PUB
+SharedSecret=29d8b75934d74d5153bbb94e0370437c63ecc30bf3d2800ed1cb7eb5
+
+Title=secp256k1 curve tests
+
+PrivateKey=ALICE_cf_secp256k1
+-----BEGIN PRIVATE KEY-----
+MD4CAQAwEAYHKoZIzj0CAQYFK4EEAAoEJzAlAgEBBCDV8jMZ/aJfiMEkW7HsYqbT57Y7vmvm5KN/
+QEXqsNCSpw==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_secp256k1_PUB
+-----BEGIN PUBLIC KEY-----
+MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAElytZZZHc9CelGzZkNGpzY2CHQ+3z6tUnfsQxUmtiZnUg
+7oKfQC5BV8pZ5WYNPWnbT0RRg5kyBtzry9oQIhO5Lw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_secp256k1:ALICE_cf_secp256k1_PUB
+
+PrivateKey=BOB_cf_secp256k1
+-----BEGIN PRIVATE KEY-----
+MD4CAQAwEAYHKoZIzj0CAQYFK4EEAAoEJzAlAgEBBCBh7awFyPey/w4pKBycpAlhvT4DlLQsi1TT
+BxJPHrAjrA==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_secp256k1_PUB
+-----BEGIN PUBLIC KEY-----
+MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAE2BQeSJOa7kJAQsAPUbLseHjHhMe3tUOAl3bqoDqtrfO+
+2m2MP/IC/R9Kof2nmaiQ6DostdbS8kB+CnnprK375w==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_secp256k1:BOB_cf_secp256k1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_secp256k1
+PeerKey=BOB_cf_secp256k1_PUB
+SharedSecret=a4745cc4d19cabb9e5cb0abdd5c604cab2846a4638ad844ed9175f3cadda2da1
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_secp256k1
+PeerKey=ALICE_cf_secp256k1_PUB
+SharedSecret=a4745cc4d19cabb9e5cb0abdd5c604cab2846a4638ad844ed9175f3cadda2da1
+
+Title=secp384r1 curve tests
+
+PrivateKey=ALICE_cf_secp384r1
+-----BEGIN PRIVATE KEY-----
+ME4CAQAwEAYHKoZIzj0CAQYFK4EEACIENzA1AgEBBDAp1ErG6wVjuJs90qVbUBxNpQK1wtV4ieX1
+bIU/4HssZK6WjOOTyYguyEBCOf/rUnw=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_secp384r1_PUB
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEx5rt+yujIuPoIXpHGmExKSi/P+58sGYoqgdpdOJUXzn2
+Rc4alCpSxVJeC55xvwaFHc3pzNyRGwnhPmN6oU/KMP6XjBvR4wq35mr/Sym5s0B2blAzkJU37idq
+nTi3xGHx
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_secp384r1:ALICE_cf_secp384r1_PUB
+
+PrivateKey=BOB_cf_secp384r1
+-----BEGIN PRIVATE KEY-----
+ME4CAQAwEAYHKoZIzj0CAQYFK4EEACIENzA1AgEBBDAUjVgPpiI+xXye0nfRhc8+12hLdWY4fpsO
+Jq2MCp+W85xJwtXsEPrHj1XFnKVpM4c=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_secp384r1_PUB
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE+JUBXRSHixH0TrcvYvIzep7+/WNpEhWdCPsLMygigW5j
+pzP30MF41GnQYgfJu5wI/gu1C/jFTv1X6Dgmla3JxBYlPeD+1L0lEMT3evmHKMM/BFe3WKBuXyhP
+ilrNtfee
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_secp384r1:BOB_cf_secp384r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_secp384r1
+PeerKey=BOB_cf_secp384r1_PUB
+SharedSecret=b3cfe488126e2731fb7c19f82e94fcc05e1dd303649a9257e858030b795c2d344a054b0c44a24fd7f5821f531a9b8cfb
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_secp384r1
+PeerKey=ALICE_cf_secp384r1_PUB
+SharedSecret=b3cfe488126e2731fb7c19f82e94fcc05e1dd303649a9257e858030b795c2d344a054b0c44a24fd7f5821f531a9b8cfb
+
+Title=secp521r1 curve tests
+
+PrivateKey=ALICE_cf_secp521r1
+-----BEGIN PRIVATE KEY-----
+MGACAQAwEAYHKoZIzj0CAQYFK4EEACMESTBHAgEBBEIBsYIcUKeN2evB626LCdYWH/xzUiEDCdRP
+rEENsC8//dowKnOCtlLtawh0DXTIZ/HhpUREuaoffdsmYb6+Oq1TRjc=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_secp521r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBufYxJf/4Ds6g7LlFRVS62ljm3xApV2T79hfWH8Lv
+iroIaCFjLBIfOVDF8jvj2PO1ar3yCLiSA2RiLZz1Y+tv/tcATHE0nS7l3SfGiGmEnVycEnhgqlKM
+UM3kpdd7eNkQn5/GO8KAPQqA/sOnvTavg5S01t0ub+PY/w0Y6oBgthaUAW0=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_secp521r1:ALICE_cf_secp521r1_PUB
+
+PrivateKey=BOB_cf_secp521r1
+-----BEGIN PRIVATE KEY-----
+MGACAQAwEAYHKoZIzj0CAQYFK4EEACMESTBHAgEBBEIB+3/adZnNwr6GFUzZpi8So7pC/5FYQ0+0
+lMmoUjGvy8DNADcHaPpW68hX/M+z7LrK0Jpnonb9JSEXlgjOPVe4Ea8=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_secp521r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBLq2fjyCalnvr24tjaz87ijIWlLMoCH7Hmyq1t2l8
+PFbyBIZbngDC0gwFM5ZI582QSWlW79G3clJP9VxlJOsms50BYBYgd6o2JF4w8AnShVXxFSJU1py4
+klCDNhTFybRHFXpujfuUeNnFxAGIUb4edJ0fAqqc7kkERhYe8EPEZYMKp3Q=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_secp521r1:BOB_cf_secp521r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_secp521r1
+PeerKey=BOB_cf_secp521r1_PUB
+SharedSecret=01dd4aa9037bb4ad298b420998dcd32b3a9af1cda8b7919e372aeb4e54ccfb4d2409a340ed896bfbc5dd462f8d96b8784bc17b29db3ca04700e6ec752f9bec777695
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_secp521r1
+PeerKey=ALICE_cf_secp521r1_PUB
+SharedSecret=01dd4aa9037bb4ad298b420998dcd32b3a9af1cda8b7919e372aeb4e54ccfb4d2409a340ed896bfbc5dd462f8d96b8784bc17b29db3ca04700e6ec752f9bec777695
+
+Title=sect113r1 curve tests
+
+PrivateKey=ALICE_cf_sect113r1
+-----BEGIN PRIVATE KEY-----
+MC0CAQAwEAYHKoZIzj0CAQYFK4EEAAQEFjAUAgEBBA8ALw9CgsuNBkkhhUHE8bQ=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect113r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFK4EEAAQDIAAEASO9jcamlg1pRE7JffrTAe9kyRZO2xrymHXoGdnA
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_sect113r1:ALICE_cf_sect113r1_PUB
+
+PrivateKey=BOB_cf_sect113r1
+-----BEGIN PRIVATE KEY-----
+MC0CAQAwEAYHKoZIzj0CAQYFK4EEAAQEFjAUAgEBBA8A/9qbs8sTFNkjS9/4CuM=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_sect113r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFK4EEAAQDIAAEATykaf/cvJzLOUto1EbbAEz/3++nut6q0dcJOQeV
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_sect113r1:BOB_cf_sect113r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect113r1
+PeerKey=BOB_cf_sect113r1_PUB
+SharedSecret=01ed16f1948dcb368a54004237842d
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_sect113r1
+PeerKey=ALICE_cf_sect113r1_PUB
+SharedSecret=01ed16f1948dcb368a54004237842d
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_sect113r1
+PeerKey=BOB_cf_sect113r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=012e5f3e348c2a8a88d9590a639219
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_sect113r1
+PeerKey=ALICE_cf_sect113r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=012e5f3e348c2a8a88d9590a639219
+
+PublicKey=MALICE_cf_sect113r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFK4EEAAQDIAAEAAAAAAAAAAAAAAAAAAAAAd+TqiBXnTd/lyA/OFsR
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_sect113r1
+PeerKey=MALICE_cf_sect113r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_sect113r1
+PeerKey=MALICE_cf_sect113r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=sect113r2 curve tests
+
+PrivateKey=ALICE_cf_sect113r2
+-----BEGIN PRIVATE KEY-----
+MC0CAQAwEAYHKoZIzj0CAQYFK4EEAAUEFjAUAgEBBA8AvovirHrqTxoKJ3l+7y0=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect113r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFK4EEAAUDIAAEAFvQ4JgQTS8kjGeVfuITAS81qNcOQvt3PYa1HuCk
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_sect113r2:ALICE_cf_sect113r2_PUB
+
+PrivateKey=BOB_cf_sect113r2
+-----BEGIN PRIVATE KEY-----
+MC0CAQAwEAYHKoZIzj0CAQYFK4EEAAUEFjAUAgEBBA8ArUjgvp/goxRYb4WuQ80=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_sect113r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFK4EEAAUDIAAEAUoS3of8y28meYu/NoI5AVdhJZCuDjMqFHTriWY4
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_sect113r2:BOB_cf_sect113r2_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect113r2
+PeerKey=BOB_cf_sect113r2_PUB
+SharedSecret=0057a287ba1ea05cb4735e673647e1
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_sect113r2
+PeerKey=ALICE_cf_sect113r2_PUB
+SharedSecret=0057a287ba1ea05cb4735e673647e1
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_sect113r2
+PeerKey=BOB_cf_sect113r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00fec2454e46732aca42b22b6d4f13
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_sect113r2
+PeerKey=ALICE_cf_sect113r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00fec2454e46732aca42b22b6d4f13
+
+PublicKey=MALICE_cf_sect113r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFK4EEAAUDIAAEAAAAAAAAAAAAAAAAAAAAAR3dbPHrhFekzJ7Azskr
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_sect113r2
+PeerKey=MALICE_cf_sect113r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_sect113r2
+PeerKey=MALICE_cf_sect113r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=sect131r1 curve tests
+
+PrivateKey=ALICE_cf_sect131r1
+-----BEGIN PRIVATE KEY-----
+MC8CAQAwEAYHKoZIzj0CAQYFK4EEABYEGDAWAgEBBBEA5C6zHMQM7pXPZ6cJz72Niw==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect131r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDgwEAYHKoZIzj0CAQYFK4EEABYDJAAEBXCuXD6wOOif91GUlJNKXf8FBNw8crgqi5aEJEZbCdBJ
+Ag==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_sect131r1:ALICE_cf_sect131r1_PUB
+
+PrivateKey=BOB_cf_sect131r1
+-----BEGIN PRIVATE KEY-----
+MC8CAQAwEAYHKoZIzj0CAQYFK4EEABYEGDAWAgEBBBEDYZmjiokBJ/SnTv8sskBR3A==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_sect131r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDgwEAYHKoZIzj0CAQYFK4EEABYDJAAEB8vGy3OQXwWKcJUSSJbCtpMBjFgJeZxzAaI420+B1B+1
+5A==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_sect131r1:BOB_cf_sect131r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect131r1
+PeerKey=BOB_cf_sect131r1_PUB
+SharedSecret=05346248f77f81fff50cc656e119976871
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_sect131r1
+PeerKey=ALICE_cf_sect131r1_PUB
+SharedSecret=05346248f77f81fff50cc656e119976871
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_sect131r1
+PeerKey=BOB_cf_sect131r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01f151ae26efa507acc2597356baf7e8ab
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_sect131r1
+PeerKey=ALICE_cf_sect131r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01f151ae26efa507acc2597356baf7e8ab
+
+PublicKey=MALICE_cf_sect131r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDgwEAYHKoZIzj0CAQYFK4EEABYDJAAEAAAAAAAAAAAAAAAAAAAAAAABfiJEFG0vRzEGxk2BxjmK
+zw==
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_sect131r1
+PeerKey=MALICE_cf_sect131r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_sect131r1
+PeerKey=MALICE_cf_sect131r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=sect131r2 curve tests
+
+PrivateKey=ALICE_cf_sect131r2
+-----BEGIN PRIVATE KEY-----
+MC8CAQAwEAYHKoZIzj0CAQYFK4EEABcEGDAWAgEBBBEBnZRUKAQetk5kyUwhIaAyxg==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect131r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDgwEAYHKoZIzj0CAQYFK4EEABcDJAAEA5+Y20L8q989I4jnKknZ7hcGlQ6RUIGni9RahT88kB/d
+dw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_sect131r2:ALICE_cf_sect131r2_PUB
+
+PrivateKey=BOB_cf_sect131r2
+-----BEGIN PRIVATE KEY-----
+MC8CAQAwEAYHKoZIzj0CAQYFK4EEABcEGDAWAgEBBBEBnafx9vcMeoCqj/1YNuflzw==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_sect131r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDgwEAYHKoZIzj0CAQYFK4EEABcDJAAEB2G2uNkhQNjjl0/Ov6UYpxoFaWNXO+qy7poV6cdrFN7z
+pA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_sect131r2:BOB_cf_sect131r2_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect131r2
+PeerKey=BOB_cf_sect131r2_PUB
+SharedSecret=058d8a8be33068ed8c1dc9f551ef2c3f3c
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_sect131r2
+PeerKey=ALICE_cf_sect131r2_PUB
+SharedSecret=058d8a8be33068ed8c1dc9f551ef2c3f3c
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_sect131r2
+PeerKey=BOB_cf_sect131r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=037b16d85f27c2c878ef96c79a536f89a5
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_sect131r2
+PeerKey=ALICE_cf_sect131r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=037b16d85f27c2c878ef96c79a536f89a5
+
+PublicKey=MALICE_cf_sect131r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDgwEAYHKoZIzj0CAQYFK4EEABcDJAAEAAAAAAAAAAAAAAAAAAAAAAAGG5fiIbgziwBZHVzTYqCY
+1w==
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_sect131r2
+PeerKey=MALICE_cf_sect131r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_sect131r2
+PeerKey=MALICE_cf_sect131r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=sect163k1 curve tests
+
+PrivateKey=ALICE_cf_sect163k1
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAEEHDAaAgEBBBUB905PYfmej8LzbzX6Bg51GJzXQjQ=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect163k1_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBfvs5A1hD8YySP9O2ub8GEUfotVuBpfRx4GIHdAfx8wV
+1UVeTRnyAlWU
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_sect163k1:ALICE_cf_sect163k1_PUB
+
+PrivateKey=BOB_cf_sect163k1
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAEEHDAaAgEBBBUCHPtCjJ4/K8ylQBcLlb5VE0bkaUE=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_sect163k1_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBvgfX1mTRlt6Z4TE1D1MNWo4loH4AoeYa6oowK104LKk
+nsdg7isQ8XBD
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_sect163k1:BOB_cf_sect163k1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect163k1
+PeerKey=BOB_cf_sect163k1_PUB
+SharedSecret=04d0e40788c5ce5220818055277cae53eac55c1e6b
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_sect163k1
+PeerKey=ALICE_cf_sect163k1_PUB
+SharedSecret=04d0e40788c5ce5220818055277cae53eac55c1e6b
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_sect163k1
+PeerKey=BOB_cf_sect163k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=04c902a91110244d89110034dd2b099c49cbab6c77
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_sect163k1
+PeerKey=ALICE_cf_sect163k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=04c902a91110244d89110034dd2b099c49cbab6c77
+
+PublicKey=MALICE_cf_sect163k1_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAB
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_sect163k1
+PeerKey=MALICE_cf_sect163k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_sect163k1
+PeerKey=MALICE_cf_sect163k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=sect163r1 curve tests
+
+PrivateKey=ALICE_cf_sect163r1
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAIEHDAaAgEBBBUAlbn4x1UGJnAimsXufB/UvUaxU5U=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect163r1_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAIDLAAEA0f195HCcD4D+7wWyl3QuPkRovG/ATy5l7fpMl4BNIg/
+sbtEXluCzANF
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_sect163r1:ALICE_cf_sect163r1_PUB
+
+PrivateKey=BOB_cf_sect163r1
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAIEHDAaAgEBBBUAoStq6Fjb7nB2PNL6WrzKKqhCGdE=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_sect163r1_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAIDLAAEAul/oBKr9B5MsPHWGF+q07j0JC+WAxj1JzfcIXR98n+r
+9FHWU5LC5pDM
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_sect163r1:BOB_cf_sect163r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect163r1
+PeerKey=BOB_cf_sect163r1_PUB
+SharedSecret=06135eef489fe613c0d8bd522a2a640ff7ae6fb73d
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_sect163r1
+PeerKey=ALICE_cf_sect163r1_PUB
+SharedSecret=06135eef489fe613c0d8bd522a2a640ff7ae6fb73d
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_sect163r1
+PeerKey=BOB_cf_sect163r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0580f5e8efb242a19ae1023acbcab8702c799751e7
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_sect163r1
+PeerKey=ALICE_cf_sect163r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0580f5e8efb242a19ae1023acbcab8702c799751e7
+
+PublicKey=MALICE_cf_sect163r1_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAAIDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkXolVuGFa8fqmk
+cs0Bv7iJuVg1
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_sect163r1
+PeerKey=MALICE_cf_sect163r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_sect163r1
+PeerKey=MALICE_cf_sect163r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=sect163r2 curve tests
+
+PrivateKey=ALICE_cf_sect163r2
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFK4EEAA8EHDAaAgEBBBUBjCs/M3N31jsAueYrOq21vdETwAI=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect163r2_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBd8Z1/HpA+89hF4I98EST3svWns3BAEbhWmL/fgxk2uu
+YwVrmqhgqH/C
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_sect163r2:ALICE_cf_sect163r2_PUB
+
+PrivateKey=BOB_cf_sect163r2
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFK4EEAA8EHDAaAgEBBBUBsiouT9Df+mwHWrpPg1JSrY9nqlI=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_sect163r2_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBULqBZ+nhLhDEMYY8NEEzZ126MdxAcFXWv8zmPEH9505
+8vT5zU3aq6HV
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_sect163r2:BOB_cf_sect163r2_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect163r2
+PeerKey=BOB_cf_sect163r2_PUB
+SharedSecret=019f829a53c4e6544bdec1395a23082169efaf369d
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_sect163r2
+PeerKey=ALICE_cf_sect163r2_PUB
+SharedSecret=019f829a53c4e6544bdec1395a23082169efaf369d
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_sect163r2
+PeerKey=BOB_cf_sect163r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=048870d39235ecbc16a000ee478833509b9318a53f
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_sect163r2
+PeerKey=ALICE_cf_sect163r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=048870d39235ecbc16a000ee478833509b9318a53f
+
+PublicKey=MALICE_cf_sect163r2_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsJbhbrfiSdZPSHD
+ZtqJwDlp802l
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_sect163r2
+PeerKey=MALICE_cf_sect163r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_sect163r2
+PeerKey=MALICE_cf_sect163r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=sect193r1 curve tests
+
+PrivateKey=ALICE_cf_sect193r1
+-----BEGIN PRIVATE KEY-----
+MDcCAQAwEAYHKoZIzj0CAQYFK4EEABgEIDAeAgEBBBkACmcvidKWLtPFB2xqg76F8VhM1Njzrkgo
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect193r1_PUB
+-----BEGIN PUBLIC KEY-----
+MEgwEAYHKoZIzj0CAQYFK4EEABgDNAAEAeqP0VQobenduwtf4MPmlYQVDjUmxKq50QFHnaBfzwXY
+1TYShZZgBr0R6a5dUGCbiF0=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_sect193r1:ALICE_cf_sect193r1_PUB
+
+PrivateKey=BOB_cf_sect193r1
+-----BEGIN PRIVATE KEY-----
+MDcCAQAwEAYHKoZIzj0CAQYFK4EEABgEIDAeAgEBBBkAKlSknQ66vpuLjC1mbQyfHOTdJ5Kw5jMh
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_sect193r1_PUB
+-----BEGIN PUBLIC KEY-----
+MEgwEAYHKoZIzj0CAQYFK4EEABgDNAAEAaFZVIeqfV9wbPydaBSJKSWJjVyFVSB/QQB5rHonYQmK
+f40zok8PJS6ratIcZwk/n20=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_sect193r1:BOB_cf_sect193r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect193r1
+PeerKey=BOB_cf_sect193r1_PUB
+SharedSecret=012b8849991814f8c7ed9d40cf9dc204c3a83e0b10675543a5
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_sect193r1
+PeerKey=ALICE_cf_sect193r1_PUB
+SharedSecret=012b8849991814f8c7ed9d40cf9dc204c3a83e0b10675543a5
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_sect193r1
+PeerKey=BOB_cf_sect193r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0110180a18844859c52f6f012909522a2d87b5ab143bc80a55
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_sect193r1
+PeerKey=ALICE_cf_sect193r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0110180a18844859c52f6f012909522a2d87b5ab143bc80a55
+
+PublicKey=MALICE_cf_sect193r1_PUB
+-----BEGIN PUBLIC KEY-----
+MEgwEAYHKoZIzj0CAQYFK4EEABgDNAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeX7PX3e5n
+zROUg6/STkLp1D+L51L9+wY=
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_sect193r1
+PeerKey=MALICE_cf_sect193r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_sect193r1
+PeerKey=MALICE_cf_sect193r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=sect193r2 curve tests
+
+PrivateKey=ALICE_cf_sect193r2
+-----BEGIN PRIVATE KEY-----
+MDcCAQAwEAYHKoZIzj0CAQYFK4EEABkEIDAeAgEBBBkAhjkv8lXK/nPp3Qc4IwL/29JUKWi2VBMp
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect193r2_PUB
+-----BEGIN PUBLIC KEY-----
+MEgwEAYHKoZIzj0CAQYFK4EEABkDNAAEAIn7oSu3adu4ChNXniHKkMIv9gT24rpzzwAeCTDPIkUT
+kJ+Tit6e4RpgkB/dph4V+uI=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_sect193r2:ALICE_cf_sect193r2_PUB
+
+PrivateKey=BOB_cf_sect193r2
+-----BEGIN PRIVATE KEY-----
+MDcCAQAwEAYHKoZIzj0CAQYFK4EEABkEIDAeAgEBBBkAwGkR3qSQdfh7Q6KbJ4lH5FShGsX8o/jD
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_sect193r2_PUB
+-----BEGIN PUBLIC KEY-----
+MEgwEAYHKoZIzj0CAQYFK4EEABkDNAAEAFdSLKI0tlwZDpkndutOLsnHii1aJO8snwEJ0m/AZgMp
+xiDevOQ/xE9SpMX25W7YqkU=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_sect193r2:BOB_cf_sect193r2_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect193r2
+PeerKey=BOB_cf_sect193r2_PUB
+SharedSecret=01e2f66a63c24c1de8a399c484228a5ad5b6d911c6e5e83ae3
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_sect193r2
+PeerKey=ALICE_cf_sect193r2_PUB
+SharedSecret=01e2f66a63c24c1de8a399c484228a5ad5b6d911c6e5e83ae3
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_sect193r2
+PeerKey=BOB_cf_sect193r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00bc82d393bd74406683aea003977a86a109f444a833652e43
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_sect193r2
+PeerKey=ALICE_cf_sect193r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00bc82d393bd74406683aea003977a86a109f444a833652e43
+
+PublicKey=MALICE_cf_sect193r2_PUB
+-----BEGIN PUBLIC KEY-----
+MEgwEAYHKoZIzj0CAQYFK4EEABkDNAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFfdLEkrvsO
+Y7+6QpEvOay9A4MJCUZfZmI=
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_sect193r2
+PeerKey=MALICE_cf_sect193r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_sect193r2
+PeerKey=MALICE_cf_sect193r2_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=sect233k1 curve tests
+
+PrivateKey=ALICE_cf_sect233k1
+-----BEGIN PRIVATE KEY-----
+MDsCAQAwEAYHKoZIzj0CAQYFK4EEABoEJDAiAgEBBB0z/3heNFjJL+2sAT/38yRsN3kt2iXz7u+y
+Gua8Kw==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect233k1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEALQyn0zJmOrHm4S2EIjxRe899PadBnfpYjLKWGvpAIzf
+MEG861Nv1IYJkmkO1xlfNHeeRtqFgsQVFKZh
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_sect233k1:ALICE_cf_sect233k1_PUB
+
+PrivateKey=BOB_cf_sect233k1
+-----BEGIN PRIVATE KEY-----
+MDsCAQAwEAYHKoZIzj0CAQYFK4EEABoEJDAiAgEBBB1I0ucrC4d9i6Z+0cbar5r7uKpF5iiQkSJA
+DFMTUA==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_sect233k1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAatdqazxSghJ568CBFyMXhEvVeAiLewOY/jk9H5DAOB4
+ufNGbdd131KLaKPivB38a6n5Y+2BVSJangow
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_sect233k1:BOB_cf_sect233k1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect233k1
+PeerKey=BOB_cf_sect233k1_PUB
+SharedSecret=012145026e8de65973c154e085456fc5539ba9e25663e7f5816abfcab310
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_sect233k1
+PeerKey=ALICE_cf_sect233k1_PUB
+SharedSecret=012145026e8de65973c154e085456fc5539ba9e25663e7f5816abfcab310
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_sect233k1
+PeerKey=BOB_cf_sect233k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00ff7d6c6b80f39d2ae68fbd00adbcd75fa599ed0bc1aac0e3f49c1c164d
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_sect233k1
+PeerKey=ALICE_cf_sect233k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00ff7d6c6b80f39d2ae68fbd00adbcd75fa599ed0bc1aac0e3f49c1c164d
+
+PublicKey=MALICE_cf_sect233k1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_sect233k1
+PeerKey=MALICE_cf_sect233k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_sect233k1
+PeerKey=MALICE_cf_sect233k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=sect233r1 curve tests
+
+PrivateKey=ALICE_cf_sect233r1
+-----BEGIN PRIVATE KEY-----
+MDwCAQAwEAYHKoZIzj0CAQYFK4EEABsEJTAjAgEBBB4ATcy7zVpIsJ9rl5EIDmzRz5wxjrDIQyDm
+HP3Pt8Y=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect233r1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAQMQHiJ44LiCnZkEg1zyww1h+idTbsw8E07P33WUAUfD
+NeQ4hWEhTXPnytIbEhFKpnd3j/FbyZnJqxh8
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_sect233r1:ALICE_cf_sect233r1_PUB
+
+PrivateKey=BOB_cf_sect233r1
+-----BEGIN PRIVATE KEY-----
+MDwCAQAwEAYHKoZIzj0CAQYFK4EEABsEJTAjAgEBBB4ALpOlFn4OfiIAkRAZGOsn7L6W3XoQBSV8
+mQVC2pw=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_sect233r1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAJQw+NWqFJXYw4dVMovzvw76OYnYOTaDaEPNW8ECAQbl
+TzzbBSTp5iqM13mP0/Bo4OO66NS3lA9e/GTO
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_sect233r1:BOB_cf_sect233r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect233r1
+PeerKey=BOB_cf_sect233r1_PUB
+SharedSecret=00209d2995a63f1e8b7a5c33dee5abb602e32e1835ae8bb57eb264d8d795
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_sect233r1
+PeerKey=ALICE_cf_sect233r1_PUB
+SharedSecret=00209d2995a63f1e8b7a5c33dee5abb602e32e1835ae8bb57eb264d8d795
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_sect233r1
+PeerKey=BOB_cf_sect233r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00c3cd1d38a65f5e421399409a76cec1136bc84149f054a7f55e7980c612
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_sect233r1
+PeerKey=ALICE_cf_sect233r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00c3cd1d38a65f5e421399409a76cec1136bc84149f054a7f55e7980c612
+
+PublicKey=MALICE_cf_sect233r1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYf4
+Vie5eHTnR+4x4G1xyq7qUvISU+X5RtBh2pE4
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_sect233r1
+PeerKey=MALICE_cf_sect233r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_sect233r1
+PeerKey=MALICE_cf_sect233r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=sect239k1 curve tests
+
+PrivateKey=ALICE_cf_sect239k1
+-----BEGIN PRIVATE KEY-----
+MDwCAQAwEAYHKoZIzj0CAQYFK4EEAAMEJTAjAgEBBB4G4nbQDUtTnkrPOvDGIlhH9XdjirUSbTI5
+5z6lf7o=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect239k1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEAAMDPgAEf5paOMjzcnpVAPMQnIkikE4K2jne3ubX2TD1P3aedknF
+lUr6tOU4BsiUQJACF90rQ9/KdeR5mYvYHzvI
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_sect239k1:ALICE_cf_sect239k1_PUB
+
+PrivateKey=BOB_cf_sect239k1
+-----BEGIN PRIVATE KEY-----
+MDwCAQAwEAYHKoZIzj0CAQYFK4EEAAMEJTAjAgEBBB4e0F0NpepAF+iNrEtoZeo4TrQFspkUNLcx
+Ly4Klfg=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_sect239k1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEAAMDPgAEKnjJ4RHe+EiElXMrF4ou7VGy1pn0ZiO17FouF31Zbvjc
+TcbhfE6ziXM8sekQJBwcwRKQ9+G/Qzq/2A9x
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_sect239k1:BOB_cf_sect239k1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect239k1
+PeerKey=BOB_cf_sect239k1_PUB
+SharedSecret=0ef54c7b7dbf55d4278e7a6924dc4833c63ec708e820d501cacdfb4935d5
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_sect239k1
+PeerKey=ALICE_cf_sect239k1_PUB
+SharedSecret=0ef54c7b7dbf55d4278e7a6924dc4833c63ec708e820d501cacdfb4935d5
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_sect239k1
+PeerKey=BOB_cf_sect239k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=592e4b33ac99624fe7f2f879cf52f12a70f189c5d90785db26a12e0a46c0
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_sect239k1
+PeerKey=ALICE_cf_sect239k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=592e4b33ac99624fe7f2f879cf52f12a70f189c5d90785db26a12e0a46c0
+
+PublicKey=MALICE_cf_sect239k1_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFK4EEAAMDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_sect239k1
+PeerKey=MALICE_cf_sect239k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_sect239k1
+PeerKey=MALICE_cf_sect239k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=sect283k1 curve tests
+
+PrivateKey=ALICE_cf_sect283k1
+-----BEGIN PRIVATE KEY-----
+MEICAQAwEAYHKoZIzj0CAQYFK4EEABAEKzApAgEBBCQAY1Mi9rST7PiP1t03qYRczV/kSZ+VjQu8
+5EFCgxyvkaLManw=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect283k1_PUB
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBMjBO8WoxHS/vz8po52WZGxS+RK5yolrUe6tfbAMA3Sd
+5/JjBDVjOz95vM4gUnqzUWHN5nKBQtj6HiU9Q/R+zqg98OiQKTyA
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_sect283k1:ALICE_cf_sect283k1_PUB
+
+PrivateKey=BOB_cf_sect283k1
+-----BEGIN PRIVATE KEY-----
+MEICAQAwEAYHKoZIzj0CAQYFK4EEABAEKzApAgEBBCQBCZC8Is+YSjgXJBBDioEl6gu14QpGHllD
+1J6957vBTPSQdH0=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_sect283k1_PUB
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAGEQKZVHYAlvtjHrFyZVm12qUb5j+T5/WNoC962+kwUM
+QkBYA5BpuG8Knlugq1iB31whPAgRCZfdLKHpHRPJSfXvKyUIdeUm
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_sect283k1:BOB_cf_sect283k1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect283k1
+PeerKey=BOB_cf_sect283k1_PUB
+SharedSecret=03f67c88bdc230b43773d17fdb4d0a980556d074ceccee726932160e4ed965e3be72803c
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_sect283k1
+PeerKey=ALICE_cf_sect283k1_PUB
+SharedSecret=03f67c88bdc230b43773d17fdb4d0a980556d074ceccee726932160e4ed965e3be72803c
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_sect283k1
+PeerKey=BOB_cf_sect283k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0677ba01c84d139609ca145cb5b6079fc9ca67f59c9c913e47cad1073f1d1dfaddde0169
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_sect283k1
+PeerKey=ALICE_cf_sect283k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0677ba01c84d139609ca145cb5b6079fc9ca67f59c9c913e47cad1073f1d1dfaddde0169
+
+PublicKey=MALICE_cf_sect283k1_PUB
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_sect283k1
+PeerKey=MALICE_cf_sect283k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_sect283k1
+PeerKey=MALICE_cf_sect283k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=sect283r1 curve tests
+
+PrivateKey=ALICE_cf_sect283r1
+-----BEGIN PRIVATE KEY-----
+MEICAQAwEAYHKoZIzj0CAQYFK4EEABEEKzApAgEBBCQCQ5pqKvPxDysd1pi2Bv8Z11cFhsRZfuaf
+4Pi0hpGr4ubZcHE=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect283r1_PUB
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBcsrGDgO7pbGybQX/00gRHtQq3+X9XrGb7Uzv9Nabwc/
+kntnBMF0I2KU+aaTjQx1GVtmNf7CvFwPLEBnfKjJAjekjsGyIqoq
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_sect283r1:ALICE_cf_sect283r1_PUB
+
+PrivateKey=BOB_cf_sect283r1
+-----BEGIN PRIVATE KEY-----
+MEICAQAwEAYHKoZIzj0CAQYFK4EEABEEKzApAgEBBCQDxItnY3cDCrX/jGnVuAKDPaySZCr3E83Q
+UdFnP6YIykt7+Pg=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_sect283r1_PUB
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBJ2C9BCkX0YRfs2ufgUKvreUXFWp2AGK+iHlZB4N3LqO
+PKpmAkrAeCMty6mw2mEnOR5HA1d4Ee+z7/NJgJJ80Ra9bFnreOW3
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_sect283r1:BOB_cf_sect283r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect283r1
+PeerKey=BOB_cf_sect283r1_PUB
+SharedSecret=0424259cf09727574fb863cab7c27d8fe3835e96433110a45a951f94347fc81939ec4773
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_sect283r1
+PeerKey=ALICE_cf_sect283r1_PUB
+SharedSecret=0424259cf09727574fb863cab7c27d8fe3835e96433110a45a951f94347fc81939ec4773
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_sect283r1
+PeerKey=BOB_cf_sect283r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01c2a542654ce85b17456ed75b6bca6b6eb761580913670debc426a3525f236df0e875c8
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_sect283r1
+PeerKey=ALICE_cf_sect283r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01c2a542654ce85b17456ed75b6bca6b6eb761580913670debc426a3525f236df0e875c8
+
+PublicKey=MALICE_cf_sect283r1_PUB
+-----BEGIN PUBLIC KEY-----
+MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAByvMnFeSsevoGYMIn7b4NaL9IgowRCTKF8CCrhdEKu3pubP2
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_sect283r1
+PeerKey=MALICE_cf_sect283r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_sect283r1
+PeerKey=MALICE_cf_sect283r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=sect409k1 curve tests
+
+PrivateKey=ALICE_cf_sect409k1
+-----BEGIN PRIVATE KEY-----
+MFECAQAwEAYHKoZIzj0CAQYFK4EEACQEOjA4AgEBBDMOthcLahkXFgM0wjOzm767D1A72sFRGlhb
+bVH+EB7z2WpIcPX4OD+M4Y1pf/a7wSaoSAo=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect409k1_PUB
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAbiYYpeFgCMsZFMzQaiwMJDrC+mCMT7KmhYtD5EMMgLW
+5OvhaqYdpRf49A8LOtVcRT7J5gGcMrXQgmQeS3FenA5owWnB2NIgrTNf5d8AAEtrOupsJ4c3kL6e
+aAzayZ1+UCEj8skbC9U=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_sect409k1:ALICE_cf_sect409k1_PUB
+
+PrivateKey=BOB_cf_sect409k1
+-----BEGIN PRIVATE KEY-----
+MFECAQAwEAYHKoZIzj0CAQYFK4EEACQEOjA4AgEBBDMO43ldQllTewdZwffH4OEXdzBrLwabKsn4
+6/hjgIAaYda/pt4yCEQLMp18QgtfMey5ENI=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_sect409k1_PUB
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAVTQj6hRizVmOx4Z6vroN/zMkmAY+QhkQ0CnFeJ0AydY
+Fv+f+/420vMC1Mhqsc9VzPMmIAH6ZrgGKDsd4Ce9JUtYE0rVhGeiG2RaN1U5RlhVK4avkWhFlyQ5
+vuu4aApQiWE3yQd9v/I=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_sect409k1:BOB_cf_sect409k1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect409k1
+PeerKey=BOB_cf_sect409k1_PUB
+SharedSecret=01fbe13188588c9d1ac3a8a2680ea9a009b28e4b7d7fa4efcb1a22553876fb7973616819fd87c75e5b8ce6e3628595e4ce12edb0
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_sect409k1
+PeerKey=ALICE_cf_sect409k1_PUB
+SharedSecret=01fbe13188588c9d1ac3a8a2680ea9a009b28e4b7d7fa4efcb1a22553876fb7973616819fd87c75e5b8ce6e3628595e4ce12edb0
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_sect409k1
+PeerKey=BOB_cf_sect409k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=007e9485f7234bb2255bb40e51f4be867cb0ef31f8e489a697b31b51c4d5346daaee51e96ae6f9636e6e3af56095fe28755325ee
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_sect409k1
+PeerKey=ALICE_cf_sect409k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=007e9485f7234bb2255bb40e51f4be867cb0ef31f8e489a697b31b51c4d5346daaee51e96ae6f9636e6e3af56095fe28755325ee
+
+PublicKey=MALICE_cf_sect409k1_PUB
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAA=
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_sect409k1
+PeerKey=MALICE_cf_sect409k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_sect409k1
+PeerKey=MALICE_cf_sect409k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=sect409r1 curve tests
+
+PrivateKey=ALICE_cf_sect409r1
+-----BEGIN PRIVATE KEY-----
+MFICAQAwEAYHKoZIzj0CAQYFK4EEACUEOzA5AgEBBDQAxSC9lST5dtfXQI1Ug9VMMoue3GGni5ON
++gieyXK2KKbd29KAPs4/AOd8kX2wQDsZPO7E
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect409r1_PUB
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEASAvXAM15DJerAu1JttpBuMJK1/fEfFohu2iEpt3r7Ui
+iQoER6HUsWiw1hhcJyTv7WzpJQHFWrOlJMe/KjmQa/CygSc65YHDzG27oUL+KGdQUGc79ZRSwl/q
+fGZqa3D+bDVMwrhmZto=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_sect409r1:ALICE_cf_sect409r1_PUB
+
+PrivateKey=BOB_cf_sect409r1
+-----BEGIN PRIVATE KEY-----
+MFICAQAwEAYHKoZIzj0CAQYFK4EEACUEOzA5AgEBBDQARen+1P3JQzBgOv0pUYwsZTPRVLpqqDAU
+7mKL2lk9eH7zSGmtNoMvP2m1S2dBnXxFY/bV
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_sect409r1_PUB
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAbDUw066TtdfOpDvrlKosEyqUNEG7rY+AKvDqKw+HOzf
+sUTYee6cEf71oqJ1sCKPQiYzlwCu/HLQeWPxISE6Uo+53kkeJml2xpMBwoE25Gq/DSS61dR7SRTZ
++sUmumbIuGzbrjtMRmw=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_sect409r1:BOB_cf_sect409r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect409r1
+PeerKey=BOB_cf_sect409r1_PUB
+SharedSecret=00a751259cdb3b445ce71a40a01a2189dfce70226111190505fc6eabe4e5a05bff7af55f2015e1ffcab6aea7ea9a6e74905da2a1
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_sect409r1
+PeerKey=ALICE_cf_sect409r1_PUB
+SharedSecret=00a751259cdb3b445ce71a40a01a2189dfce70226111190505fc6eabe4e5a05bff7af55f2015e1ffcab6aea7ea9a6e74905da2a1
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_sect409r1
+PeerKey=BOB_cf_sect409r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0115a31aed416c5089d74a263ec300aff13a5329c6ad27de950ae0b0917b40a3464fccf5691ac9633a51e5177a82b15cfc434aad
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_sect409r1
+PeerKey=ALICE_cf_sect409r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=0115a31aed416c5089d74a263ec300aff13a5329c6ad27de950ae0b0917b40a3464fccf5691ac9633a51e5177a82b15cfc434aad
+
+PublicKey=MALICE_cf_sect409r1_PUB
+-----BEGIN PUBLIC KEY-----
+MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAACZNffkdo7i7yL5tKKfU8tdk6su0K185XwbJkn96JWVDPZXZ3My
+bFKKSOJ7hyrM8Lwl1e8=
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_sect409r1
+PeerKey=MALICE_cf_sect409r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_sect409r1
+PeerKey=MALICE_cf_sect409r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=sect571k1 curve tests
+
+PrivateKey=ALICE_cf_sect571k1
+-----BEGIN PRIVATE KEY-----
+MGYCAQAwEAYHKoZIzj0CAQYFK4EEACYETzBNAgEBBEgB4agvk7Qdf9bVb9aMVdtXL0MuVw6dTleB
+zrpPMYty/piI5GWkQEGVp4OJSjF1BGgWmtYSYlV0oI8jJ7hfWTjVGfVWix4ipb8=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect571k1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQDUZq0ZrgYpTXNpOptjExaur0K9FAYHv1j9cvAptwX
+dcmQf3VqekMkGZCfNdqNeqCajG3QHRkBHe4FZhWr3FXi8whvvr463lUDf+t46un1kE6FTYfhILGa
+sBZm7OdfkarYd9TXBbmnkFA+XkyPlkM1+6daM3/WmnegK+TYghFDXLgwiyF8s0ElllF7z38Gmc4=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_sect571k1:ALICE_cf_sect571k1_PUB
+
+PrivateKey=BOB_cf_sect571k1
+-----BEGIN PRIVATE KEY-----
+MGYCAQAwEAYHKoZIzj0CAQYFK4EEACYETzBNAgEBBEgA3pINxGOI7L9M+Mil+bm/udPwI4xu7ubJ
+p3aoOepTXW94laf8wjFLcQnRUwH87Vbq9VLQEfCAFvr2vZoBc+5asnNuDhRNNeQ=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_sect571k1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQDZRr5GCSq2uzGxmWNB+bED7zye18Rr/KehwXrbn1r
+rKtR8fe+dg2V15FieC3qZe/wCpMtyp79VmEabGi6iGLlAN/rUE81URsA/K7GVpmklslV5gmwryR0
+3E7jGKPFesun9iNtmpgM18P9y3aJd4Qr4hMlwW2Nyw187l6QB/W2e/i+8vKXFTLHlz5WLAyAcpA=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_sect571k1:BOB_cf_sect571k1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect571k1
+PeerKey=BOB_cf_sect571k1_PUB
+SharedSecret=02b79c92cee50dc5b9fdddce36d4fa2e28d7d178cd74e575961f39429496305b38815c840c2e66327435c044ed885ec964068531251a2112717602532e8b6d5411db2fe05c1ac18c
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_sect571k1
+PeerKey=ALICE_cf_sect571k1_PUB
+SharedSecret=02b79c92cee50dc5b9fdddce36d4fa2e28d7d178cd74e575961f39429496305b38815c840c2e66327435c044ed885ec964068531251a2112717602532e8b6d5411db2fe05c1ac18c
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_sect571k1
+PeerKey=BOB_cf_sect571k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=063aea789492c9727a5a6b7f24e8d3d377c70ee8e86b13664e191a53b1905e90e78b85960b1881db5160c7c5cacca0d686d9e104140d565eeeec17426f93d3a7ba639ecd716b43d2
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_sect571k1
+PeerKey=ALICE_cf_sect571k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=063aea789492c9727a5a6b7f24e8d3d377c70ee8e86b13664e191a53b1905e90e78b85960b1881db5160c7c5cacca0d686d9e104140d565eeeec17426f93d3a7ba639ecd716b43d2
+
+PublicKey=MALICE_cf_sect571k1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_sect571k1
+PeerKey=MALICE_cf_sect571k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_sect571k1
+PeerKey=MALICE_cf_sect571k1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=sect571r1 curve tests
+
+PrivateKey=ALICE_cf_sect571r1
+-----BEGIN PRIVATE KEY-----
+MGYCAQAwEAYHKoZIzj0CAQYFK4EEACcETzBNAgEBBEgAxfL2/gUsmJonvDMR95Azq1ySgXMlKSRk
++PL+WaS92ZyOo45HaC7RpH5sdkf4b948u6y1BXOxGZuORXy6lgbgZ1Zx2UgL3cI=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_sect571r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQBK5L9ccIWacU2A1srZ35opPu6kcbEOsBPmvj/rlMS
+fFrdMOcagOYfcD0/ouYHPhvkHbr9k87IlQJfnV6ZNRA4PmWSp/FjkNwETm/fqTCUQHti/qqnKH7R
+Ed4fYROLFGvz+PX6E20SryOt1vrmoRyC7Z5FVmgMVOQQ1AaBNAHi3+IPtKx41YdXdbqHJxuI5jE=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_sect571r1:ALICE_cf_sect571r1_PUB
+
+PrivateKey=BOB_cf_sect571r1
+-----BEGIN PRIVATE KEY-----
+MGYCAQAwEAYHKoZIzj0CAQYFK4EEACcETzBNAgEBBEgAzcRvASPpWi0ybpOGlj0Lozz01C2a5oDA
+G5alib1EmZKcpVULxJXn75FQlTKpkUEuWUgA4yk5X5DTiScUuh4LDhaF3AFhsEY=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_sect571r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQH3dnL22NajtqDWTX6qD14w1BOlpHFBUPTr24VySlh
+kiiBlOF95u7hFr/hSb7gm/3f+IVKyE18Sh2kR4KaxWcPWKY5xKTiqiICT7hCistuzNRt8gR+kNOT
+c1rETMV6ZruZinwzEWWWjwJf6612oy2HG3CX3B8Rm+a3sS0q6IzowEwqmDv6v9bMTFk8bsCv0Fk=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_sect571r1:BOB_cf_sect571r1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_sect571r1
+PeerKey=BOB_cf_sect571r1_PUB
+SharedSecret=0031f9879fa75b8c67ba81ee861be634e2b53aa79f834e9a8ca4df7f4461bcb02f083d9fa5b4767f881a710caa6524b58eb626623ba394961d46535204c26d165089e7d4f7be1827
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_sect571r1
+PeerKey=ALICE_cf_sect571r1_PUB
+SharedSecret=0031f9879fa75b8c67ba81ee861be634e2b53aa79f834e9a8ca4df7f4461bcb02f083d9fa5b4767f881a710caa6524b58eb626623ba394961d46535204c26d165089e7d4f7be1827
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_sect571r1
+PeerKey=BOB_cf_sect571r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=012e8c2c1554988fe20c5ae7d11cdcfe15c7c6e8d2b6f46a43a45d724bfc7b415ea7594d5c16f770a95d6e65bbcb1f34619db95e89f4fecbcb0bc6a3f92d52df6a49b0e7773e0ac0
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_sect571r1
+PeerKey=ALICE_cf_sect571r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=012e8c2c1554988fe20c5ae7d11cdcfe15c7c6e8d2b6f46a43a45d724bfc7b415ea7594d5c16f770a95d6e65bbcb1f34619db95e89f4fecbcb0bc6a3f92d52df6a49b0e7773e0ac0
+
+PublicKey=MALICE_cf_sect571r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHMtVWZAwgtd1zmgWN/9WC
+aNQcWRNUKesEHXqhJVkC5jYsSACodKsLYFNrWEYM0gwG8DQONZSn93G+38EM45tkaZsIRDt2HEM=
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_sect571r1
+PeerKey=MALICE_cf_sect571r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_sect571r1
+PeerKey=MALICE_cf_sect571r1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=wap-wsg-idm-ecid-wtls10 curve tests
+
+PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls10
+-----BEGIN PRIVATE KEY-----
+MDsCAQAwEAYHKoZIzj0CAQYFZysBBAoEJDAiAgEBBB1zvDMHGgcytka5KvlvQvJzTA4l2ts2NzBp
+SJiGyw==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls10_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFZysBBAoDPgAEAZkrhWBz/Q4GB8DY4Ia114ew6H7Eg7ri2uxwxd3rAZs5
+/ShvunNyndjCt3Qaq8sulBM0nUyERSDakyD+
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls10:ALICE_cf_wap-wsg-idm-ecid-wtls10_PUB
+
+PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls10
+-----BEGIN PRIVATE KEY-----
+MDsCAQAwEAYHKoZIzj0CAQYFZysBBAoEJDAiAgEBBB1SowkHU79PqokOfgllN53rNS8a3h1wFBY0
+dKPkQg==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls10_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFZysBBAoDPgAEAGavw4ChHCoWplAumMEBwJgJ2aYtw+utu4vhWnscAPIT
+IJ4IiIGj18rCFBap1sgVbpXjhEBLYg6Itwv2
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls10:BOB_cf_wap-wsg-idm-ecid-wtls10_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls10
+PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls10_PUB
+SharedSecret=0194ef5d80fdfe9df366b2273b983c3dbd440faf76964fcfc06c509f289d
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls10
+PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls10_PUB
+SharedSecret=0194ef5d80fdfe9df366b2273b983c3dbd440faf76964fcfc06c509f289d
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls10
+PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls10_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01bedc5cdf63fbf18c3e2bc9765e12f7990c0c0c64f0267ae7c37b9f49f0
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls10
+PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls10_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01bedc5cdf63fbf18c3e2bc9765e12f7990c0c0c64f0267ae7c37b9f49f0
+
+PublicKey=MALICE_cf_wap-wsg-idm-ecid-wtls10_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFZysBBAoDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls10
+PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls10_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls10
+PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls10_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=wap-wsg-idm-ecid-wtls11 curve tests
+
+PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls11
+-----BEGIN PRIVATE KEY-----
+MDwCAQAwEAYHKoZIzj0CAQYFZysBBAsEJTAjAgEBBB4AkzS3zoqHNCLug/nwoYMQW3UigmZ9t56k
+5jp+FiY=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls11_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFZysBBAsDPgAEABttgKKYeGZRmcH/5UZR56lOSgbU4TH2AuIhvj88AL6H
+zTCX9elzXpck+u22bnmkuvL2A8XKB5+fabMR
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls11:ALICE_cf_wap-wsg-idm-ecid-wtls11_PUB
+
+PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls11
+-----BEGIN PRIVATE KEY-----
+MDwCAQAwEAYHKoZIzj0CAQYFZysBBAsEJTAjAgEBBB4AWU05mbqPxsB749llNON1//l0w8RJJ3z5
+h/kzfNM=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls11_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFZysBBAsDPgAEAL6Xj/KCmXAQAAo847t0bl0wqBrteWRg93OvIJsPAAOE
+ehdIgJyruc3KsH0RFlipu5QD8pnGSIXvif19
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls11:BOB_cf_wap-wsg-idm-ecid-wtls11_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls11
+PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls11_PUB
+SharedSecret=01ac8a23ddeeafb4d3bb243fe409f2f9c8b1a3fc11d4690da583f2e21637
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls11
+PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls11_PUB
+SharedSecret=01ac8a23ddeeafb4d3bb243fe409f2f9c8b1a3fc11d4690da583f2e21637
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls11
+PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls11_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01b9992992572d3a59d424f8c9cc195576461ed6c1dadf6fb523717fab19
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls11
+PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls11_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=01b9992992572d3a59d424f8c9cc195576461ed6c1dadf6fb523717fab19
+
+PublicKey=MALICE_cf_wap-wsg-idm-ecid-wtls11_PUB
+-----BEGIN PUBLIC KEY-----
+MFIwEAYHKoZIzj0CAQYFZysBBAsDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYf4
+Vie5eHTnR+4x4G1xyq7qUvISU+X5RtBh2pE4
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls11
+PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls11_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls11
+PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls11_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=wap-wsg-idm-ecid-wtls12 curve tests
+
+PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls12
+-----BEGIN PRIVATE KEY-----
+MDoCAQAwEAYHKoZIzj0CAQYFZysBBAwEIzAhAgEBBBxwvll9Eb9mm2Xadq1evIi1zIK+6u0Nv8bP
+LI9a
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls12_PUB
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFZysBBAwDOgAE0t0WqG/pFsiCt6agmebw3FCEWAzf9BpNLuzoCkPEe0Li
+bqn5udrckL6s3stwCTVFaZUfY2qS9QE=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls12:ALICE_cf_wap-wsg-idm-ecid-wtls12_PUB
+
+PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls12
+-----BEGIN PRIVATE KEY-----
+MDoCAQAwEAYHKoZIzj0CAQYFZysBBAwEIzAhAgEBBBz+5P6gpqXxbeXvvaD5W9Ft69BTxcn7zc6q
+K3Ax
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls12_PUB
+-----BEGIN PUBLIC KEY-----
+ME4wEAYHKoZIzj0CAQYFZysBBAwDOgAEvyxedqaWkoAOMjaV5W3/tJpheiHAR0zV6BlIeUuGP2mx
++xsOK9/QB7hzipq9cXx1K/dXu58EoSY=
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls12:BOB_cf_wap-wsg-idm-ecid-wtls12_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls12
+PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls12_PUB
+SharedSecret=a3b3f20af8c33a0f5c246b4b9d9dda1cd40c294d1f53365d18a8b54b
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls12
+PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls12_PUB
+SharedSecret=a3b3f20af8c33a0f5c246b4b9d9dda1cd40c294d1f53365d18a8b54b
+
+Title=wap-wsg-idm-ecid-wtls1 curve tests
+
+PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls1
+-----BEGIN PRIVATE KEY-----
+MCwCAQAwEAYHKoZIzj0CAQYFZysBBAEEFTATAgEBBA5ZNASTt4/g6XPQwRiQ0Q==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls1_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFZysBBAEDIAAEACBNPI48xxsPVQBy07jRAAcWzbIkMo8BQotxpfGJ
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls1:ALICE_cf_wap-wsg-idm-ecid-wtls1_PUB
+
+PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls1
+-----BEGIN PRIVATE KEY-----
+MCwCAQAwEAYHKoZIzj0CAQYFZysBBAEEFTATAgEBBA6+0x9qk0NIKHSRvlTemQ==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls1_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFZysBBAEDIAAEAEeHMSBTx/EtOu+bjBinALHSkQuJyiP3mg1tu+I2
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls1:BOB_cf_wap-wsg-idm-ecid-wtls1_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls1
+PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls1_PUB
+SharedSecret=0040ba2fadc1da97c973e5e59ade31
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls1
+PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls1_PUB
+SharedSecret=0040ba2fadc1da97c973e5e59ade31
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls1
+PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=008919696215a89e03d6c4c9265d6b
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls1
+PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls1_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=008919696215a89e03d6c4c9265d6b
+
+PublicKey=MALICE_cf_wap-wsg-idm-ecid-wtls1_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFZysBBAEDIAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls1
+PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls1
+PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls1_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=wap-wsg-idm-ecid-wtls3 curve tests
+
+PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls3
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFZysBBAMEHDAaAgEBBBUDO2cHbqQBUxuJBl6UT9UrasuRVrI=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls3_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFZysBBAMDLAAEBRIzvK9o7eO2NGmtPFV/zo9/1mlvBwjG7+e6hbPG1KdI
+01f8oGBuXMQH
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls3:ALICE_cf_wap-wsg-idm-ecid-wtls3_PUB
+
+PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls3
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFZysBBAMEHDAaAgEBBBUAhZv9WZ00bDnU9MOaqEegP771nes=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls3_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFZysBBAMDLAAEAYOspjEbzyZw61jCtUrxARr+w66nBH+73QIvlaRVSG/4
+hlBUf5kmG4Yn
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls3:BOB_cf_wap-wsg-idm-ecid-wtls3_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls3
+PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls3_PUB
+SharedSecret=0311924428a839b7dcada662722945e62bf1131f4f
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls3
+PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls3_PUB
+SharedSecret=0311924428a839b7dcada662722945e62bf1131f4f
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls3
+PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls3_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=047f1aee6a1a1d7c9c1f0e8dce4349429f737aa658
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls3
+PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls3_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=047f1aee6a1a1d7c9c1f0e8dce4349429f737aa658
+
+PublicKey=MALICE_cf_wap-wsg-idm-ecid-wtls3_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFZysBBAMDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAB
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls3
+PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls3_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls3
+PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls3_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=wap-wsg-idm-ecid-wtls4 curve tests
+
+PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls4
+-----BEGIN PRIVATE KEY-----
+MC0CAQAwEAYHKoZIzj0CAQYFZysBBAQEFjAUAgEBBA8ACFOrBbOh5LjNtJQCuEE=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls4_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFZysBBAQDIAAEAW3K4Mus5+KAJVGLzEYrAYuCJSEYXFTo17aW0TwN
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls4:ALICE_cf_wap-wsg-idm-ecid-wtls4_PUB
+
+PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls4
+-----BEGIN PRIVATE KEY-----
+MC0CAQAwEAYHKoZIzj0CAQYFZysBBAQEFjAUAgEBBA8Auz4XRc3Rg0bNcbrray8=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls4_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFZysBBAQDIAAEAI0F7ixGqOhnYpsuR80nAdTdSXM+YbcUbLe/U/xG
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls4:BOB_cf_wap-wsg-idm-ecid-wtls4_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls4
+PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls4_PUB
+SharedSecret=0077378ddfdadff704a0b6646949e7
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls4
+PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls4_PUB
+SharedSecret=0077378ddfdadff704a0b6646949e7
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls4
+PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls4_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=008f3713fe1ff1fa5d5041899817d1
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls4
+PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls4_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=008f3713fe1ff1fa5d5041899817d1
+
+PublicKey=MALICE_cf_wap-wsg-idm-ecid-wtls4_PUB
+-----BEGIN PUBLIC KEY-----
+MDQwEAYHKoZIzj0CAQYFZysBBAQDIAAEAAAAAAAAAAAAAAAAAAAAAd+TqiBXnTd/lyA/OFsR
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls4
+PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls4_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls4
+PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls4_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=wap-wsg-idm-ecid-wtls5 curve tests
+
+PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls5
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFZysBBAUEHDAaAgEBBBUD9gVh3zbLTA7BuRVVi9T8QKZ1uco=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls5_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFZysBBAUDLAAEAH5xyUrvbuN+tWmRhwqrQfFHPHNUBKtAGvJuvSFVwTKk
+uFzn9fPvIDe6
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls5:ALICE_cf_wap-wsg-idm-ecid-wtls5_PUB
+
+PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls5
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFZysBBAUEHDAaAgEBBBUAr9ZlmuO7bNfqB42xUivJXyVHKNI=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls5_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFZysBBAUDLAAEBdXxEk0L2XAVzRNLPcnMxGXXyDfZAoA1Qw2XpOfVWIVR
+jdoMGRgUuJmO
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls5:BOB_cf_wap-wsg-idm-ecid-wtls5_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls5
+PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls5_PUB
+SharedSecret=0190c68d80e94fbe9f193ae7d9a156bf0b8d097c23
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls5
+PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls5_PUB
+SharedSecret=0190c68d80e94fbe9f193ae7d9a156bf0b8d097c23
+
+# ECC CDH Alice with Bob peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls5
+PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls5_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00aabc9b45c200e41294aa922ab06da6655731e0ea
+
+# ECC CDH Bob with Alice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls5
+PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls5_PUB
+Ctrl=ecdh_cofactor_mode:1
+SharedSecret=00aabc9b45c200e41294aa922ab06da6655731e0ea
+
+PublicKey=MALICE_cf_wap-wsg-idm-ecid-wtls5_PUB
+-----BEGIN PUBLIC KEY-----
+MEAwEAYHKoZIzj0CAQYFZysBBAUDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8JxepS05nN/piK
+dhDD3dDKXUih
+-----END PUBLIC KEY-----
+
+# ECC CDH Bob with Malice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls5
+PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls5_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+# ECC CDH Alice with Malice peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls5
+PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls5_PUB
+Ctrl=ecdh_cofactor_mode:1
+Result=DERIVE_ERROR
+Function=EC_POINT_get_affine_coordinates
+Reason=point at infinity
+
+Title=wap-wsg-idm-ecid-wtls6 curve tests
+
+PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls6
+-----BEGIN PRIVATE KEY-----
+MCwCAQAwEAYHKoZIzj0CAQYFZysBBAYEFTATAgEBBA4ayMbswPbvYMwpwo80jA==
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls6_PUB
+-----BEGIN PUBLIC KEY-----
+MDIwEAYHKoZIzj0CAQYFZysBBAYDHgAERPw/8Ip/RrXr0gMgLGRQeiQ4Qd6W+Li0ylGKzg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls6:ALICE_cf_wap-wsg-idm-ecid-wtls6_PUB
+
+PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls6
+-----BEGIN PRIVATE KEY-----
+MCwCAQAwEAYHKoZIzj0CAQYFZysBBAYEFTATAgEBBA6kbCpFt3tX2hYBQHMXbg==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls6_PUB
+-----BEGIN PUBLIC KEY-----
+MDIwEAYHKoZIzj0CAQYFZysBBAYDHgAEhJXqpYGxE/l1X/LiBeyRbIcyzqPxUP5Tkv3U3w==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls6:BOB_cf_wap-wsg-idm-ecid-wtls6_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls6
+PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls6_PUB
+SharedSecret=b4cae255268f11a1e46fecad04c2
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls6
+PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls6_PUB
+SharedSecret=b4cae255268f11a1e46fecad04c2
+
+Title=wap-wsg-idm-ecid-wtls7 curve tests
+
+PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls7
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFZysBBAcEHDAaAgEBBBUABcyzh4ot9ck/j4/3ehK0aYngYoM=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls7_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFZysBBAcDKgAEwQLnZ70n45RLqRtAGNzEa3Rl/9nwyjqYUtw2eeHhnNLT
+feGY4CNH0w==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls7:ALICE_cf_wap-wsg-idm-ecid-wtls7_PUB
+
+PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls7
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFZysBBAcEHDAaAgEBBBUAPyrGRY1SR13hKQswS6yXs8w8PUQ=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls7_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFZysBBAcDKgAEZGN44YbN5r3zcNtOHrvbQLt8/lE7BHp4D/9eKLmwFDn1
+QneRu3xwPA==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls7:BOB_cf_wap-wsg-idm-ecid-wtls7_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls7
+PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls7_PUB
+SharedSecret=ae9f5bcc6457c0422866bf855921eabc42b7121a
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls7
+PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls7_PUB
+SharedSecret=ae9f5bcc6457c0422866bf855921eabc42b7121a
+
+Title=wap-wsg-idm-ecid-wtls8 curve tests
+
+PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls8
+-----BEGIN PRIVATE KEY-----
+MC0CAQAwEAYHKoZIzj0CAQYFZysBBAgEFjAUAgEBBA8AnkC18b3pH2O5TIYIqAQ=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls8_PUB
+-----BEGIN PUBLIC KEY-----
+MDIwEAYHKoZIzj0CAQYFZysBBAgDHgAEJD0h4HEfchwxqhp9eMHh9gczQKHX4MtWVoAxKQ==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls8:ALICE_cf_wap-wsg-idm-ecid-wtls8_PUB
+
+PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls8
+-----BEGIN PRIVATE KEY-----
+MC0CAQAwEAYHKoZIzj0CAQYFZysBBAgEFjAUAgEBBA8AXxPMnqbl3rOuIM5nsvc=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls8_PUB
+-----BEGIN PUBLIC KEY-----
+MDIwEAYHKoZIzj0CAQYFZysBBAgDHgAEZawmRmzr9P+jihImUi6ykOzaSH484JhMKNdrgw==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls8:BOB_cf_wap-wsg-idm-ecid-wtls8_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls8
+PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls8_PUB
+SharedSecret=48baf4f1f5e8a0eb5dae28ef6290
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls8
+PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls8_PUB
+SharedSecret=48baf4f1f5e8a0eb5dae28ef6290
+
+Title=wap-wsg-idm-ecid-wtls9 curve tests
+
+PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls9
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFZysBBAkEHDAaAgEBBBUALwvuKs3RLthMAsChbqKjXw6vTYo=
+-----END PRIVATE KEY-----
+
+PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls9_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFZysBBAkDKgAET0ppOvd9DU4v+tkKDQ5wRBrN1FwD9+F9t5l3Im+mz3rw
+DB/RYdZuUg==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls9:ALICE_cf_wap-wsg-idm-ecid-wtls9_PUB
+
+PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls9
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFZysBBAkEHDAaAgEBBBUAgeb/vqEM7X5AAAxyBu3M+C8pWLM=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls9_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFZysBBAkDKgAEWc37LGt6lt90iF4lhtDYNFdjAqoczebuNgzGff/Uq8ov
+a3EVJ9yK1A==
+-----END PUBLIC KEY-----
+
+PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls9:BOB_cf_wap-wsg-idm-ecid-wtls9_PUB
+
+# ECDH Alice with Bob peer
+Derive=ALICE_cf_wap-wsg-idm-ecid-wtls9
+PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls9_PUB
+SharedSecret=948d3030e95cead39a1bb3d8a01c2be178517ba7
+
+# ECDH Bob with Alice peer
+Derive=BOB_cf_wap-wsg-idm-ecid-wtls9
+PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls9_PUB
+SharedSecret=948d3030e95cead39a1bb3d8a01c2be178517ba7
+
+# tests: 484
+
+Title=zero x-coord regression tests
+
+PrivateKey=ALICE_zero_prime192v1
+-----BEGIN PRIVATE KEY-----
+MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEHzAdAgEBBBhaPNk8jG5hSG6y8tUqUoOaNNsZ3APU
+pps=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_zero_prime192v1_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe2hWBe5g
+DLNj216pEvK7XjoKLg5gNg8S
+-----END PUBLIC KEY-----
+
+# ECDH Alice with Bob peer
+Derive=ALICE_zero_prime192v1
+PeerKey=BOB_zero_prime192v1_PUB
+SharedSecret=baaffd49a8399d2ad52cbbe24d47b67afb4b3cf436f1cd65
+
+PrivateKey=ALICE_zero_prime192v2
+-----BEGIN PRIVATE KEY-----
+MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQIEHzAdAgEBBBj1AIQMJ7jqYIKCvxYAS+qKMmKmH0to
+41k=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_zero_prime192v2_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQIDMgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4Gj7Qqt
+2wx/jwFlKgvE4rnd50LspdMk
+-----END PUBLIC KEY-----
+
+# ECDH Alice with Bob peer
+Derive=ALICE_zero_prime192v2
+PeerKey=BOB_zero_prime192v2_PUB
+SharedSecret=b8f200a4b87064f2e8600685ca3e69b8e661a117aabc770b
+
+PrivateKey=ALICE_zero_prime192v3
+-----BEGIN PRIVATE KEY-----
+MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQMEHzAdAgEBBBh/maLQMSlea9BfLqGy5NPuK0YAH/cz
+GqI=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_zero_prime192v3_PUB
+-----BEGIN PUBLIC KEY-----
+MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZEzb63e2
+3MKatRLR9Y1M5JEdI9jwMocI
+-----END PUBLIC KEY-----
+
+# ECDH Alice with Bob peer
+Derive=ALICE_zero_prime192v3
+PeerKey=BOB_zero_prime192v3_PUB
+SharedSecret=b5de857d355bc5b9e270a4c290ea9728d764d8b243ff5d8d
+
+PrivateKey=ALICE_zero_prime239v1
+-----BEGIN PRIVATE KEY-----
+MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQQEJTAjAgEBBB5pYWzRYI+c6O7NXCt0H2kw8XRL3rhe
+4MrJT8j++CI=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_zero_prime239v1_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQQDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+Ox02uwNNLFuvDRn5ip8TxvW0W22R7UzJa9Av6/nh
+-----END PUBLIC KEY-----
+
+# ECDH Alice with Bob peer
+Derive=ALICE_zero_prime239v1
+PeerKey=BOB_zero_prime239v1_PUB
+SharedSecret=6b6206408bd05d42daa2cd224c401a1230b44e184f17b82f385f22dac215
+
+PrivateKey=ALICE_zero_prime239v2
+-----BEGIN PRIVATE KEY-----
+MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQUEJTAjAgEBBB5l8bB7Cpmr7vyx9FiOT2wEF3YOFbDG
+bmRr3Vi/xr4=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_zero_prime239v2_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQUDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+IOg3VJGQ89d1GWg4Igxcj5xpDmJiP8tv+e4mxt5U
+-----END PUBLIC KEY-----
+
+# ECDH Alice with Bob peer
+Derive=ALICE_zero_prime239v2
+PeerKey=BOB_zero_prime239v2_PUB
+SharedSecret=772c2819c960c78f28f21f6542b7409294fad1f84567c44c4b7678dc0e42
+
+PrivateKey=ALICE_zero_prime239v3
+-----BEGIN PRIVATE KEY-----
+MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQYEJTAjAgEBBB5HF5FABzUOTYMZg9UdZTx/oRERm/fU
+M/+otKzpLjA=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_zero_prime239v3_PUB
+-----BEGIN PUBLIC KEY-----
+MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQYDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AsZ4u6r3qQI78EYBpiSgWjqNpoeShjr5piecMBWj
+-----END PUBLIC KEY-----
+
+# ECDH Alice with Bob peer
+Derive=ALICE_zero_prime239v3
+PeerKey=BOB_zero_prime239v3_PUB
+SharedSecret=56a71f5dd1611e8032c3e2d8224d86e5e8c2fc6480d74c0e282282decd43
+
+PrivateKey=ALICE_zero_prime256v1
+-----BEGIN PRIVATE KEY-----
+MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCDXhMb6aR4JR2+l2tmgYqP0r8S4jtym
+yH++awvF2nGhhg==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_zero_prime256v1_PUB
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AABmSFx4Di+D1yQzvV2EoGu2VBwq8x2uhxcov4VqF0+T9A==
+-----END PUBLIC KEY-----
+
+# ECDH Alice with Bob peer
+Derive=ALICE_zero_prime256v1
+PeerKey=BOB_zero_prime256v1_PUB
+SharedSecret=c4f5607deb8501f1a4ba23fce4122a4343a17ada2c86a9c8e0d03d92d4a4c84c
+
+PrivateKey=ALICE_zero_secp112r2
+-----BEGIN PRIVATE KEY-----
+MCwCAQAwEAYHKoZIzj0CAQYFK4EEAAcEFTATAgEBBA4hh3tRkG3tnA0496ffMw==
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_zero_secp112r2_PUB
+-----BEGIN PUBLIC KEY-----
+MDIwEAYHKoZIzj0CAQYFK4EEAAcDHgAEAAAAAAAAAAAAAAAAAAAS5eEOWDV/Wk7w4djyDQ==
+-----END PUBLIC KEY-----
+
+# ECDH Alice with Bob peer
+Derive=ALICE_zero_secp112r2
+PeerKey=BOB_zero_secp112r2_PUB
+SharedSecret=958cc1cb425713678830a4d7d95e
+
+PrivateKey=ALICE_zero_secp128r1
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwEAYHKoZIzj0CAQYFK4EEABwEFzAVAgEBBBCykSzic/h3T2K6SkSP1SGt
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_zero_secp128r1_PUB
+-----BEGIN PUBLIC KEY-----
+MDYwEAYHKoZIzj0CAQYFK4EEABwDIgAEAAAAAAAAAAAAAAAAAAAAAABya8M5aeOpNG3z799IdHc=
+-----END PUBLIC KEY-----
+
+# ECDH Alice with Bob peer
+Derive=ALICE_zero_secp128r1
+PeerKey=BOB_zero_secp128r1_PUB
+SharedSecret=5235d452066f126cd7e99eea00fd3068
+
+PrivateKey=ALICE_zero_secp160r1
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAgEHDAaAgEBBBUACoRnbig69XLlh5VcRexpbbn5zwA=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_zero_secp160r1_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFK4EEAAgDKgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAG/w1po29wYlxlygXs
+MGfbiGg5ng==
+-----END PUBLIC KEY-----
+
+# ECDH Alice with Bob peer
+Derive=ALICE_zero_secp160r1
+PeerKey=BOB_zero_secp160r1_PUB
+SharedSecret=9ccd0ab8d093b6acdb3fe14c3736a0dfe61a4666
+
+PrivateKey=ALICE_zero_secp160r2
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFK4EEAB4EHDAaAgEBBBUAQFGxInSw1eAvd45E9TUdbXtJGnA=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_zero_secp160r2_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFK4EEAB4DKgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAZtSBSZqfmXp47v5z2
+ZZZl2JFxDg==
+-----END PUBLIC KEY-----
+
+# ECDH Alice with Bob peer
+Derive=ALICE_zero_secp160r2
+PeerKey=BOB_zero_secp160r2_PUB
+SharedSecret=303e0a282ac86f463fe834cb51b0057be42ed5ab
+
+PrivateKey=ALICE_zero_secp384r1
+-----BEGIN PRIVATE KEY-----
+ME4CAQAwEAYHKoZIzj0CAQYFK4EEACIENzA1AgEBBDD6kgzKbg28zbQyVTdC0IdHbm0UCQt2Rdbi
+VVHJeYRSnNpFOiFLaOsGOmwoeZzj6jc=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_zero_secp384r1_PUB
+-----BEGIN PUBLIC KEY-----
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAPPme8E9RpepjC6P5+WDdWToUyb45/SvSFdO0sIqq+Gu/kn8sRuUqsG+3
+QriFDlIe
+-----END PUBLIC KEY-----
+
+# ECDH Alice with Bob peer
+Derive=ALICE_zero_secp384r1
+PeerKey=BOB_zero_secp384r1_PUB
+SharedSecret=b1cfeaeef51dfd487d3a8b2849f1592e04d63f2d2c88b310a6290ebfe5399f5ffe954eabd0619231393e56c35b242986
+
+PrivateKey=ALICE_zero_secp521r1
+-----BEGIN PRIVATE KEY-----
+MGACAQAwEAYHKoZIzj0CAQYFK4EEACMESTBHAgEBBEIAbddDLMUWbAsY7l3vbNDmntXuAUcDYPg5
+w/cgUwSCIvrV9MBeSG8AWqT16riHmHlsn+XI5PAJM6eij3JDahnu9Mo=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_zero_secp521r1_PUB
+-----BEGIN PUBLIC KEY-----
+MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0g7J/qa1d8ENJsobtEb0CymeZIsa
+1Qiq0GiJb+4/jmFLxjBU1Xcr8Bpl1BLgvKqOll0vXTMtfzn4RtRArgAfT4c=
+-----END PUBLIC KEY-----
+
+# ECDH Alice with Bob peer
+Derive=ALICE_zero_secp521r1
+PeerKey=BOB_zero_secp521r1_PUB
+SharedSecret=003fc3028f61db94b20c7cd177923b6e73f12f0ab067c9ce8866755e3c82abb39c9863cde74fa80b32520bd7dd0eb156c30c08911503b67b2661f1264d09bb231423
+
+PrivateKey=ALICE_zero_wap-wsg-idm-ecid-wtls7
+-----BEGIN PRIVATE KEY-----
+MDMCAQAwEAYHKoZIzj0CAQYFZysBBAcEHDAaAgEBBBUAoGng7WzYr4P9vtdc3BS/UiNWmc0=
+-----END PRIVATE KEY-----
+
+PublicKey=BOB_zero_wap-wsg-idm-ecid-wtls7_PUB
+-----BEGIN PUBLIC KEY-----
+MD4wEAYHKoZIzj0CAQYFZysBBAcDKgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAZtSBSZqfmXp47v5z2
+ZZZl2JFxDg==
+-----END PUBLIC KEY-----
+
+# ECDH Alice with Bob peer
+Derive=ALICE_zero_wap-wsg-idm-ecid-wtls7
+PeerKey=BOB_zero_wap-wsg-idm-ecid-wtls7_PUB
+SharedSecret=6582fc03bbb340fcf24a5fe8fcdf722655efa8b9
+
+# tests: 14
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_extra.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_extra.t
new file mode 100644
index 000000000..9a656b0bc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_evp_extra.t
@@ -0,0 +1,18 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use OpenSSL::Test;
+
+setup("test_evp_extra");
+
+plan tests => 1;
+ok(run(test(["evp_extra_test"])), "running evp_extra_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_pbelu.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_pbelu.t
new file mode 100644
index 000000000..38b2d4837
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_pbelu.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_pbelu", "pbelutest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_pkey_meth.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_pkey_meth.t
new file mode 100644
index 000000000..1b78c257e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_pkey_meth.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_pkey_meth", "pkey_meth_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_pkey_meth_kdf.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_pkey_meth_kdf.t
new file mode 100644
index 000000000..9289df2ba
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/30-test_pkey_meth_kdf.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_pkey_meth_kdf", "pkey_meth_kdf_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/40-test_rehash.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/40-test_rehash.t
new file mode 100644
index 000000000..191897e8c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/40-test_rehash.t
@@ -0,0 +1,98 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Spec::Functions;
+use File::Copy;
+use File::Basename;
+use OpenSSL::Glob;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_rehash");
+
+#If "openssl rehash -help" fails it's most likely because we're on a platform
+#that doesn't support the rehash command (e.g. Windows)
+plan skip_all => "test_rehash is not available on this platform"
+ unless run(app(["openssl", "rehash", "-help"]));
+
+plan tests => 4;
+
+indir "rehash.$$" => sub {
+ prepare();
+ ok(run(app(["openssl", "rehash", curdir()])),
+ 'Testing normal rehash operations');
+}, create => 1, cleanup => 1;
+
+indir "rehash.$$" => sub {
+ prepare(sub { chmod 400, $_ foreach (@_); });
+ ok(run(app(["openssl", "rehash", curdir()])),
+ 'Testing rehash operations on readonly files');
+}, create => 1, cleanup => 1;
+
+indir "rehash.$$" => sub {
+ ok(run(app(["openssl", "rehash", curdir()])),
+ 'Testing rehash operations on empty directory');
+}, create => 1, cleanup => 1;
+
+indir "rehash.$$" => sub {
+ prepare();
+ chmod 0500, curdir();
+ SKIP: {
+ if (open(FOO, ">unwritable.txt")) {
+ close FOO;
+ skip "It's pointless to run the next test as root", 1;
+ }
+ isnt(run(app(["openssl", "rehash", curdir()])), 1,
+ 'Testing rehash operations on readonly directory');
+ }
+ chmod 0700, curdir(); # make it writable again, so cleanup works
+}, create => 1, cleanup => 1;
+
+sub prepare {
+ my @pemsourcefiles = sort glob(srctop_file('test', "*.pem"));
+ my @destfiles = ();
+
+ die "There are no source files\n" if scalar @pemsourcefiles == 0;
+
+ my $cnt = 0;
+ foreach (@pemsourcefiles) {
+ my $basename = basename($_, ".pem");
+ my $writing = 0;
+
+ open PEM, $_ or die "Can't read $_: $!\n";
+ while (my $line = <PEM>) {
+ if ($line =~ m{^-----BEGIN (?:CERTIFICATE|X509 CRL)-----}) {
+ die "New start in a PEM blob?\n" if $writing;
+ $cnt++;
+ my $destfile =
+ catfile(curdir(),
+ $basename . sprintf("-%02d", $cnt) . ".pem");
+ push @destfiles, $destfile;
+ open OUT, '>', $destfile
+ or die "Can't write $destfile\n";
+ $writing = 1;
+ }
+ print OUT $line if $writing;
+ if ($line =~ m|^-----END |) {
+ close OUT if $writing;
+ $writing = 0;
+ }
+ }
+ die "No end marker in $basename\n" if $writing;
+ }
+ die "No test PEM files produced\n" if $cnt == 0;
+
+ foreach (@_) {
+ die "Internal error, argument is not CODE"
+ unless (ref($_) eq 'CODE');
+ $_->(@destfiles);
+ }
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/60-test_x509_check_cert_pkey.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/60-test_x509_check_cert_pkey.t
new file mode 100644
index 000000000..d7ee64264
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/60-test_x509_check_cert_pkey.t
@@ -0,0 +1,46 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_x509_check_cert_pkey");
+
+plan tests => 6;
+
+# rsa
+ok(run(test(["x509_check_cert_pkey_test",
+ srctop_file("test", "certs", "servercert.pem"),
+ srctop_file("test", "certs", "serverkey.pem"), "cert", "ok"])));
+# mismatched rsa
+ok(run(test(["x509_check_cert_pkey_test",
+ srctop_file("test", "certs", "servercert.pem"),
+ srctop_file("test", "certs", "wrongkey.pem"), "cert", "failed"])));
+SKIP: {
+ skip "DSA disabled", 1, if disabled("dsa");
+ # dsa
+ ok(run(test(["x509_check_cert_pkey_test",
+ srctop_file("test", "certs", "server-dsa-cert.pem"),
+ srctop_file("test", "certs", "server-dsa-key.pem"), "cert", "ok"])));
+}
+# ecc
+SKIP: {
+ skip "EC disabled", 1 if disabled("ec");
+ ok(run(test(["x509_check_cert_pkey_test",
+ srctop_file("test", "certs", "server-ecdsa-cert.pem"),
+ srctop_file("test", "certs", "server-ecdsa-key.pem"), "cert", "ok"])));
+}
+# certificate request (rsa)
+ok(run(test(["x509_check_cert_pkey_test",
+ srctop_file("test", "certs", "x509-check.csr"),
+ srctop_file("test", "certs", "x509-check-key.pem"), "req", "ok"])));
+# mismatched certificate request (rsa)
+ok(run(test(["x509_check_cert_pkey_test",
+ srctop_file("test", "certs", "x509-check.csr"),
+ srctop_file("test", "certs", "wrongkey.pem"), "req", "failed"])));
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/60-test_x509_dup_cert.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/60-test_x509_dup_cert.t
new file mode 100644
index 000000000..7cae05c6e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/60-test_x509_dup_cert.t
@@ -0,0 +1,17 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_x509_dup_cert");
+
+plan tests => 1;
+
+ok(run(test(["x509_dup_cert_test", srctop_file("test", "certs", "leaf.pem")])));
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/60-test_x509_store.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/60-test_x509_store.t
new file mode 100644
index 000000000..041aa097d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/60-test_x509_store.t
@@ -0,0 +1,53 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Copy;
+use File::Spec::Functions qw/:DEFAULT canonpath/;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_x509_store");
+
+#If "openssl rehash -help" fails it's most likely because we're on a platform
+#that doesn't support the rehash command (e.g. Windows)
+plan skip_all => "test_rehash is not available on this platform"
+ unless run(app(["openssl", "rehash", "-help"]));
+
+# We use 'openssl verify' for these tests, as it contains everything
+# we need to conduct these tests. The tests here are a subset of the
+# ones found in 25-test_verify.t
+
+sub verify {
+ my ($cert, $purpose, $trustedpath, $untrusted, @opts) = @_;
+ my @args = qw(openssl verify -auth_level 1 -purpose);
+ my @path = qw(test certs);
+ push(@args, "$purpose", @opts);
+ push(@args, "-CApath", $trustedpath);
+ for (@$untrusted) { push(@args, "-untrusted", srctop_file(@path, "$_.pem")) }
+ push(@args, srctop_file(@path, "$cert.pem"));
+ run(app([@args]));
+}
+
+plan tests => 3;
+
+indir "60-test_x509_store" => sub {
+ for (("root-cert")) {
+ copy(srctop_file("test", "certs", "$_.pem"), curdir());
+ }
+ ok(run(app([qw(openssl rehash), curdir()])), "Rehashing");
+
+ # Canonical success
+ ok(verify("ee-cert", "sslserver", curdir(), ["ca-cert"], "-show_chain"),
+ "verify ee-cert");
+
+ # Failure because root cert not present in CApath
+ ok(!verify("ca-root2", "any", curdir(), [], "-show_chain"));
+}, create => 1, cleanup => 1;
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/60-test_x509_time.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/60-test_x509_time.t
new file mode 100644
index 000000000..8b311ad31
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/60-test_x509_time.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_x509_time", "x509_time_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_asyncio.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_asyncio.t
new file mode 100644
index 000000000..3c15c3d7b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_asyncio.t
@@ -0,0 +1,21 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Utils;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_asyncio");
+
+plan skip_all => "No TLS/SSL protocols are supported by this OpenSSL build"
+ if alldisabled(grep { $_ ne "ssl3" } available_protocols("tls"));
+
+plan tests => 1;
+
+ok(run(test(["asynciotest", srctop_file("apps", "server.pem"),
+ srctop_file("apps", "server.pem")])), "running asynciotest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_bad_dtls.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_bad_dtls.t
new file mode 100644
index 000000000..a20db77ad
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_bad_dtls.t
@@ -0,0 +1,20 @@
+#! /usr/bin/env perl
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test;
+use OpenSSL::Test::Utils;
+
+setup("test_bad_dtls");
+
+plan skip_all => "DTLSv1 is not supported by this OpenSSL build"
+ if disabled("dtls1");
+
+plan tests => 1;
+
+ok(run(test(["bad_dtls_test"])), "running bad_dtls_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_clienthello.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_clienthello.t
new file mode 100644
index 000000000..ccb3a5a1e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_clienthello.t
@@ -0,0 +1,21 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_clienthello");
+
+plan skip_all => "No TLS/SSL protocols are supported by this OpenSSL build"
+ if alldisabled(grep { $_ ne "ssl3" } available_protocols("tls"));
+
+plan tests => 1;
+
+ok(run(test(["clienthellotest", srctop_file("test", "session.pem")])),
+ "running clienthellotest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_comp.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_comp.t
new file mode 100644
index 000000000..d11ba39e0
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_comp.t
@@ -0,0 +1,110 @@
+#! /usr/bin/env perl
+# Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file srctop_dir bldtop_dir/;
+use OpenSSL::Test::Utils;
+use File::Temp qw(tempfile);
+use TLSProxy::Proxy;
+
+my $test_name = "test_comp";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLSv1.3 or TLSv1.2 enabled"
+ if disabled("tls1_3") && disabled("tls1_2");
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+$ENV{CTLOG_FILE} = srctop_file("test", "ct", "log_list.conf");
+
+use constant {
+ MULTIPLE_COMPRESSIONS => 0,
+ NON_NULL_COMPRESSION => 1
+};
+my $testtype;
+
+my $proxy = TLSProxy::Proxy->new(
+ undef,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 4;
+
+SKIP: {
+ skip "TLSv1.2 disabled", 2 if disabled("tls1_2");
+ #Test 1: Check that sending multiple compression methods in a TLSv1.2
+ # ClientHello succeeds
+ $proxy->clear();
+ $proxy->filter(\&add_comp_filter);
+ $proxy->clientflags("-no_tls1_3");
+ $testtype = MULTIPLE_COMPRESSIONS;
+ $proxy->start();
+ ok(TLSProxy::Message->success(), "Non null compression");
+
+ #Test 2: NULL compression method must be present in TLSv1.2
+ $proxy->clear();
+ $proxy->clientflags("-no_tls1_3");
+ $testtype = NON_NULL_COMPRESSION;
+ $proxy->start();
+ ok(TLSProxy::Message->fail(), "NULL compression missing");
+}
+
+SKIP: {
+ skip "TLSv1.3 disabled", 2 if disabled("tls1_3");
+ #Test 3: Check that sending multiple compression methods in a TLSv1.3
+ # ClientHello fails
+ $proxy->clear();
+ $proxy->filter(\&add_comp_filter);
+ $testtype = MULTIPLE_COMPRESSIONS;
+ $proxy->start();
+ ok(TLSProxy::Message->fail(), "Non null compression (TLSv1.3)");
+
+ #Test 4: NULL compression method must be present in TLSv1.3
+ $proxy->clear();
+ $testtype = NON_NULL_COMPRESSION;
+ $proxy->start();
+ ok(TLSProxy::Message->fail(), "NULL compression missing (TLSv1.3)");
+}
+
+sub add_comp_filter
+{
+ my $proxy = shift;
+ my $flight;
+ my $message;
+ my @comp;
+
+ # Only look at the ClientHello
+ return if $proxy->flight != 0;
+
+ $message = ${$proxy->message_list}[0];
+
+ return if (!defined $message
+ || $message->mt != TLSProxy::Message::MT_CLIENT_HELLO);
+
+ if ($testtype == MULTIPLE_COMPRESSIONS) {
+ @comp = (
+ 0x00, #Null compression method
+ 0xff); #Unknown compression
+ } elsif ($testtype == NON_NULL_COMPRESSION) {
+ @comp = (0xff); #Unknown compression
+ }
+ $message->comp_meths(\@comp);
+ $message->comp_meth_len(scalar @comp);
+ $message->repack();
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_key_share.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_key_share.t
new file mode 100644
index 000000000..46370c560
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_key_share.t
@@ -0,0 +1,388 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file bldtop_dir/;
+use OpenSSL::Test::Utils;
+use TLSProxy::Proxy;
+use File::Temp qw(tempfile);
+
+use constant {
+ LOOK_ONLY => 0,
+ EMPTY_EXTENSION => 1,
+ MISSING_EXTENSION => 2,
+ NO_ACCEPTABLE_KEY_SHARES => 3,
+ NON_PREFERRED_KEY_SHARE => 4,
+ ACCEPTABLE_AT_END => 5,
+ NOT_IN_SUPPORTED_GROUPS => 6,
+ GROUP_ID_TOO_SHORT => 7,
+ KEX_LEN_MISMATCH => 8,
+ ZERO_LEN_KEX_DATA => 9,
+ TRAILING_DATA => 10,
+ SELECT_X25519 => 11,
+ NO_KEY_SHARES_IN_HRR => 12
+};
+
+use constant {
+ CLIENT_TO_SERVER => 1,
+ SERVER_TO_CLIENT => 2
+};
+
+
+use constant {
+ X25519 => 0x1d,
+ P_256 => 0x17
+};
+
+my $testtype;
+my $direction;
+my $selectedgroupid;
+
+my $test_name = "test_key_share";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLS1.3 enabled"
+ if disabled("tls1_3");
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+
+my $proxy = TLSProxy::Proxy->new(
+ undef,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+#We assume that test_ssl_new and friends will test the happy path for this,
+#so we concentrate on the less common scenarios
+
+#Test 1: An empty key_shares extension should succeed after a HelloRetryRequest
+$testtype = EMPTY_EXTENSION;
+$direction = CLIENT_TO_SERVER;
+$proxy->filter(\&modify_key_shares_filter);
+$proxy->serverflags("-curves P-256");
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 22;
+ok(TLSProxy::Message->success(), "Success after HRR");
+
+#Test 2: The server sending an HRR requesting a group the client already sent
+# should fail
+$proxy->clear();
+$proxy->start();
+ok(TLSProxy::Message->fail(), "Server asks for group already provided");
+
+#Test 3: A missing key_shares extension should not succeed
+$proxy->clear();
+$testtype = MISSING_EXTENSION;
+$proxy->start();
+ok(TLSProxy::Message->fail(), "Missing key_shares extension");
+
+#Test 4: No initial acceptable key_shares should succeed after a
+# HelloRetryRequest
+$proxy->clear();
+$proxy->filter(undef);
+$proxy->serverflags("-curves P-256");
+$proxy->start();
+ok(TLSProxy::Message->success(), "No initial acceptable key_shares");
+
+#Test 5: No acceptable key_shares and no shared groups should fail
+$proxy->clear();
+$proxy->filter(undef);
+$proxy->serverflags("-curves P-256");
+$proxy->clientflags("-curves P-384");
+$proxy->start();
+ok(TLSProxy::Message->fail(), "No acceptable key_shares");
+
+#Test 6: A non preferred but acceptable key_share should succeed
+$proxy->clear();
+$proxy->clientflags("-curves P-256");
+$proxy->start();
+ok(TLSProxy::Message->success(), "Non preferred key_share");
+$proxy->filter(\&modify_key_shares_filter);
+
+#Test 7: An acceptable key_share after a list of non-acceptable ones should
+#succeed
+$proxy->clear();
+$testtype = ACCEPTABLE_AT_END;
+$proxy->start();
+ok(TLSProxy::Message->success(), "Acceptable key_share at end of list");
+
+#Test 8: An acceptable key_share but for a group not in supported_groups should
+#fail
+$proxy->clear();
+$testtype = NOT_IN_SUPPORTED_GROUPS;
+$proxy->start();
+ok(TLSProxy::Message->fail(), "Acceptable key_share not in supported_groups");
+
+#Test 9: Too short group_id should fail
+$proxy->clear();
+$testtype = GROUP_ID_TOO_SHORT;
+$proxy->start();
+ok(TLSProxy::Message->fail(), "Group id too short");
+
+#Test 10: key_exchange length mismatch should fail
+$proxy->clear();
+$testtype = KEX_LEN_MISMATCH;
+$proxy->start();
+ok(TLSProxy::Message->fail(), "key_exchange length mismatch");
+
+#Test 11: Zero length key_exchange should fail
+$proxy->clear();
+$testtype = ZERO_LEN_KEX_DATA;
+$proxy->start();
+ok(TLSProxy::Message->fail(), "zero length key_exchange data");
+
+#Test 12: Trailing data on key_share list should fail
+$proxy->clear();
+$testtype = TRAILING_DATA;
+$proxy->start();
+ok(TLSProxy::Message->fail(), "key_share list trailing data");
+
+#Test 13: Multiple acceptable key_shares - we choose the first one
+$proxy->clear();
+$direction = SERVER_TO_CLIENT;
+$testtype = LOOK_ONLY;
+$proxy->clientflags("-curves P-256:X25519");
+$proxy->start();
+ok(TLSProxy::Message->success() && ($selectedgroupid == P_256),
+ "Multiple acceptable key_shares");
+
+#Test 14: Multiple acceptable key_shares - we choose the first one (part 2)
+$proxy->clear();
+$proxy->clientflags("-curves X25519:P-256");
+$proxy->start();
+ok(TLSProxy::Message->success() && ($selectedgroupid == X25519),
+ "Multiple acceptable key_shares (part 2)");
+
+#Test 15: Server sends key_share that wasn't offered should fail
+$proxy->clear();
+$testtype = SELECT_X25519;
+$proxy->clientflags("-curves P-256");
+$proxy->start();
+ok(TLSProxy::Message->fail(), "Non offered key_share");
+
+#Test 16: Too short group_id in ServerHello should fail
+$proxy->clear();
+$testtype = GROUP_ID_TOO_SHORT;
+$proxy->start();
+ok(TLSProxy::Message->fail(), "Group id too short in ServerHello");
+
+#Test 17: key_exchange length mismatch in ServerHello should fail
+$proxy->clear();
+$testtype = KEX_LEN_MISMATCH;
+$proxy->start();
+ok(TLSProxy::Message->fail(), "key_exchange length mismatch in ServerHello");
+
+#Test 18: Zero length key_exchange in ServerHello should fail
+$proxy->clear();
+$testtype = ZERO_LEN_KEX_DATA;
+$proxy->start();
+ok(TLSProxy::Message->fail(), "zero length key_exchange data in ServerHello");
+
+#Test 19: Trailing data on key_share in ServerHello should fail
+$proxy->clear();
+$testtype = TRAILING_DATA;
+$proxy->start();
+ok(TLSProxy::Message->fail(), "key_share trailing data in ServerHello");
+
+SKIP: {
+ skip "No TLSv1.2 support in this OpenSSL build", 2 if disabled("tls1_2");
+
+ #Test 20: key_share should not be sent if the client is not capable of
+ # negotiating TLSv1.3
+ $proxy->clear();
+ $proxy->filter(undef);
+ $proxy->clientflags("-no_tls1_3");
+ $proxy->start();
+ my $clienthello = $proxy->message_list->[0];
+ ok(TLSProxy::Message->success()
+ && !defined $clienthello->extension_data->{TLSProxy::Message::EXT_KEY_SHARE},
+ "No key_share for TLS<=1.2 client");
+ $proxy->filter(\&modify_key_shares_filter);
+
+ #Test 21: A server not capable of negotiating TLSv1.3 should not attempt to
+ # process a key_share
+ $proxy->clear();
+ $direction = CLIENT_TO_SERVER;
+ $testtype = NO_ACCEPTABLE_KEY_SHARES;
+ $proxy->serverflags("-no_tls1_3");
+ $proxy->start();
+ ok(TLSProxy::Message->success(), "Ignore key_share for TLS<=1.2 server");
+}
+
+#Test 22: The server sending an HRR but not requesting a new key_share should
+# fail
+$proxy->clear();
+$direction = SERVER_TO_CLIENT;
+$testtype = NO_KEY_SHARES_IN_HRR;
+$proxy->serverflags("-curves X25519");
+$proxy->start();
+ok(TLSProxy::Message->fail(), "Server sends HRR with no key_shares");
+
+sub modify_key_shares_filter
+{
+ my $proxy = shift;
+
+ # We're only interested in the initial ClientHello
+ if (($direction == CLIENT_TO_SERVER && $proxy->flight != 0
+ && ($proxy->flight != 1 || $testtype != NO_KEY_SHARES_IN_HRR))
+ || ($direction == SERVER_TO_CLIENT && $proxy->flight != 1)) {
+ return;
+ }
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == TLSProxy::Message::MT_CLIENT_HELLO
+ && $direction == CLIENT_TO_SERVER) {
+ my $ext;
+ my $suppgroups;
+
+ #Setup supported groups to include some unrecognised groups
+ $suppgroups = pack "C8",
+ 0x00, 0x06, #List Length
+ 0xff, 0xfe, #Non existing group 1
+ 0xff, 0xff, #Non existing group 2
+ 0x00, 0x1d; #x25519
+
+ if ($testtype == EMPTY_EXTENSION) {
+ $ext = pack "C2",
+ 0x00, 0x00;
+ } elsif ($testtype == NO_ACCEPTABLE_KEY_SHARES) {
+ $ext = pack "C12",
+ 0x00, 0x0a, #List Length
+ 0xff, 0xfe, #Non existing group 1
+ 0x00, 0x01, 0xff, #key_exchange data
+ 0xff, 0xff, #Non existing group 2
+ 0x00, 0x01, 0xff; #key_exchange data
+ } elsif ($testtype == ACCEPTABLE_AT_END) {
+ $ext = pack "C11H64",
+ 0x00, 0x29, #List Length
+ 0xff, 0xfe, #Non existing group 1
+ 0x00, 0x01, 0xff, #key_exchange data
+ 0x00, 0x1d, #x25519
+ 0x00, 0x20, #key_exchange data length
+ "155155B95269ED5C87EAA99C2EF5A593".
+ "EDF83495E80380089F831B94D14B1421"; #key_exchange data
+ } elsif ($testtype == NOT_IN_SUPPORTED_GROUPS) {
+ $suppgroups = pack "C4",
+ 0x00, 0x02, #List Length
+ 0x00, 0xfe; #Non existing group 1
+ } elsif ($testtype == GROUP_ID_TOO_SHORT) {
+ $ext = pack "C6H64C1",
+ 0x00, 0x25, #List Length
+ 0x00, 0x1d, #x25519
+ 0x00, 0x20, #key_exchange data length
+ "155155B95269ED5C87EAA99C2EF5A593".
+ "EDF83495E80380089F831B94D14B1421"; #key_exchange data
+ 0x00; #Group id too short
+ } elsif ($testtype == KEX_LEN_MISMATCH) {
+ $ext = pack "C8",
+ 0x00, 0x06, #List Length
+ 0x00, 0x1d, #x25519
+ 0x00, 0x20, #key_exchange data length
+ 0x15, 0x51; #Only two bytes of data, but length should be 32
+ } elsif ($testtype == ZERO_LEN_KEX_DATA) {
+ $ext = pack "C10H64",
+ 0x00, 0x28, #List Length
+ 0xff, 0xfe, #Non existing group 1
+ 0x00, 0x00, #zero length key_exchange data is invalid
+ 0x00, 0x1d, #x25519
+ 0x00, 0x20, #key_exchange data length
+ "155155B95269ED5C87EAA99C2EF5A593".
+ "EDF83495E80380089F831B94D14B1421"; #key_exchange data
+ } elsif ($testtype == TRAILING_DATA) {
+ $ext = pack "C6H64C1",
+ 0x00, 0x24, #List Length
+ 0x00, 0x1d, #x25519
+ 0x00, 0x20, #key_exchange data length
+ "155155B95269ED5C87EAA99C2EF5A593".
+ "EDF83495E80380089F831B94D14B1421", #key_exchange data
+ 0x00; #Trailing garbage
+ } elsif ($testtype == NO_KEY_SHARES_IN_HRR) {
+ #We trick the server into thinking we sent a P-256 key_share -
+ #but the client actually sent X25519
+ $ext = pack "C7",
+ 0x00, 0x05, #List Length
+ 0x00, 0x17, #P-256
+ 0x00, 0x01, #key_exchange data length
+ 0xff; #Dummy key_share data
+ }
+
+ if ($testtype != EMPTY_EXTENSION
+ && $testtype != NO_KEY_SHARES_IN_HRR) {
+ $message->set_extension(
+ TLSProxy::Message::EXT_SUPPORTED_GROUPS, $suppgroups);
+ }
+
+ if ($testtype == MISSING_EXTENSION) {
+ $message->delete_extension(
+ TLSProxy::Message::EXT_KEY_SHARE);
+ } elsif ($testtype != NOT_IN_SUPPORTED_GROUPS) {
+ $message->set_extension(
+ TLSProxy::Message::EXT_KEY_SHARE, $ext);
+ }
+
+ $message->repack();
+ } elsif ($message->mt == TLSProxy::Message::MT_SERVER_HELLO
+ && $direction == SERVER_TO_CLIENT) {
+ my $ext;
+ my $key_share =
+ $message->extension_data->{TLSProxy::Message::EXT_KEY_SHARE};
+ $selectedgroupid = unpack("n", $key_share);
+
+ if ($testtype == LOOK_ONLY) {
+ return;
+ }
+ if ($testtype == NO_KEY_SHARES_IN_HRR) {
+ $message->delete_extension(TLSProxy::Message::EXT_KEY_SHARE);
+ $message->set_extension(TLSProxy::Message::EXT_UNKNOWN, "");
+ $message->repack();
+ return;
+ }
+ if ($testtype == SELECT_X25519) {
+ $ext = pack "C4H64",
+ 0x00, 0x1d, #x25519
+ 0x00, 0x20, #key_exchange data length
+ "155155B95269ED5C87EAA99C2EF5A593".
+ "EDF83495E80380089F831B94D14B1421"; #key_exchange data
+ } elsif ($testtype == GROUP_ID_TOO_SHORT) {
+ $ext = pack "C1",
+ 0x00;
+ } elsif ($testtype == KEX_LEN_MISMATCH) {
+ $ext = pack "C6",
+ 0x00, 0x1d, #x25519
+ 0x00, 0x20, #key_exchange data length
+ 0x15, 0x51; #Only two bytes of data, but length should be 32
+ } elsif ($testtype == ZERO_LEN_KEX_DATA) {
+ $ext = pack "C4",
+ 0x00, 0x1d, #x25519
+ 0x00, 0x00, #zero length key_exchange data is invalid
+ } elsif ($testtype == TRAILING_DATA) {
+ $ext = pack "C4H64C1",
+ 0x00, 0x1d, #x25519
+ 0x00, 0x20, #key_exchange data length
+ "155155B95269ED5C87EAA99C2EF5A593".
+ "EDF83495E80380089F831B94D14B1421", #key_exchange data
+ 0x00; #Trailing garbage
+ }
+ $message->set_extension(TLSProxy::Message::EXT_KEY_SHARE, $ext);
+
+ $message->repack();
+ }
+ }
+}
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_packet.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_packet.t
new file mode 100644
index 000000000..9bc6515e5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_packet.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_packet", "packettest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_recordlen.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_recordlen.t
new file mode 100644
index 000000000..12647a212
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_recordlen.t
@@ -0,0 +1,21 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Utils;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_recordlen");
+
+plan skip_all => "No TLS/SSL protocols are supported by this OpenSSL build"
+ if alldisabled(grep { $_ ne "ssl3" } available_protocols("tls"));
+
+plan tests => 1;
+
+ok(run(test(["recordlentest", srctop_file("apps", "server.pem"),
+ srctop_file("apps", "server.pem")])), "running recordlentest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_renegotiation.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_renegotiation.t
new file mode 100644
index 000000000..734f1cd21
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_renegotiation.t
@@ -0,0 +1,98 @@
+#! /usr/bin/env perl
+# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file bldtop_dir/;
+use OpenSSL::Test::Utils;
+use TLSProxy::Proxy;
+
+my $test_name = "test_renegotiation";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLS <= 1.2 enabled"
+ if alldisabled(("ssl3", "tls1", "tls1_1", "tls1_2"));
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+my $proxy = TLSProxy::Proxy->new(
+ undef,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+#Test 1: A basic renegotiation test
+$proxy->clientflags("-no_tls1_3");
+$proxy->reneg(1);
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 3;
+ok(TLSProxy::Message->success(), "Basic renegotiation");
+
+#Test 2: Client does not send the Reneg SCSV. Reneg should fail
+$proxy->clear();
+$proxy->filter(\&reneg_filter);
+$proxy->clientflags("-no_tls1_3");
+$proxy->reneg(1);
+$proxy->start();
+ok(TLSProxy::Message->fail(), "No client SCSV");
+
+SKIP: {
+ skip "TLSv1.2 or TLSv1.1 disabled", 1
+ if disabled("tls1_2") || disabled("tls1_1");
+ #Test 3: Check that the ClientHello version remains the same in the reneg
+ # handshake
+ $proxy->clear();
+ $proxy->filter(undef);
+ $proxy->clientflags("-no_tls1_3");
+ $proxy->serverflags("-no_tls1_3 -no_tls1_2");
+ $proxy->reneg(1);
+ $proxy->start();
+ my $chversion;
+ my $chmatch = 0;
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == TLSProxy::Message::MT_CLIENT_HELLO) {
+ if (!defined $chversion) {
+ $chversion = $message->client_version;
+ } else {
+ if ($chversion == $message->client_version) {
+ $chmatch = 1;
+ }
+ }
+ }
+ }
+ ok(TLSProxy::Message->success() && $chmatch,
+ "Check ClientHello version is the same");
+}
+
+sub reneg_filter
+{
+ my $proxy = shift;
+
+ # We're only interested in the initial ClientHello message
+ if ($proxy->flight != 0) {
+ return;
+ }
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == TLSProxy::Message::MT_CLIENT_HELLO) {
+ #Remove any SCSV ciphersuites - just leave AES128-SHA (0x002f)
+ my @ciphersuite = (0x002f);
+ $message->ciphersuites(\@ciphersuite);
+ $message->ciphersuite_len(2);
+ $message->repack();
+ }
+ }
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_servername.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_servername.t
new file mode 100644
index 000000000..2eff92aa5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_servername.t
@@ -0,0 +1,26 @@
+#! /usr/bin/env perl
+# Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright 2017 BaishanCloud. All rights reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use warnings;
+
+use OpenSSL::Test::Simple;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+use OpenSSL::Test::Utils qw(alldisabled available_protocols);
+
+setup("test_servername");
+
+plan skip_all => "No TLS/SSL protocols are supported by this OpenSSL build"
+ if alldisabled(grep { $_ ne "ssl3" } available_protocols("tls"));
+
+plan tests => 1;
+
+ok(run(test(["servername_test", srctop_file("apps", "server.pem"),
+ srctop_file("apps", "server.pem")])),
+ "running servername_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslcbcpadding.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslcbcpadding.t
new file mode 100644
index 000000000..55943764b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslcbcpadding.t
@@ -0,0 +1,131 @@
+#! /usr/bin/env perl
+# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use feature 'state';
+
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file bldtop_dir/;
+use OpenSSL::Test::Utils;
+use TLSProxy::Proxy;
+
+my $test_name = "test_sslcbcpadding";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLSv1.2 enabled"
+ if disabled("tls1_2");
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+my $proxy = TLSProxy::Proxy->new(
+ \&add_maximal_padding_filter,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+# TODO: We could test all 256 values, but then the log file gets too large for
+# CI. See https://github.com/openssl/openssl/issues/1440.
+my @test_offsets = (0, 128, 254, 255);
+
+# Test that maximally-padded records are accepted.
+my $bad_padding_offset = -1;
+$proxy->serverflags("-tls1_2");
+$proxy->serverconnects(1 + scalar(@test_offsets));
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 1 + scalar(@test_offsets);
+ok(TLSProxy::Message->success(), "Maximally-padded record test");
+
+# Test that invalid padding is rejected.
+my $fatal_alert; # set by add_maximal_padding_filter on client's fatal alert
+
+foreach my $offset (@test_offsets) {
+ $bad_padding_offset = $offset;
+ $fatal_alert = 0;
+ $proxy->clearClient();
+ $proxy->clientstart();
+ ok($fatal_alert, "Invalid padding byte $bad_padding_offset");
+}
+
+sub add_maximal_padding_filter
+{
+ my $proxy = shift;
+ my $messages = $proxy->message_list;
+ state $sent_corrupted_payload;
+
+ if ($proxy->flight == 0) {
+ # Disable Encrypt-then-MAC.
+ foreach my $message (@{$messages}) {
+ if ($message->mt != TLSProxy::Message::MT_CLIENT_HELLO) {
+ next;
+ }
+
+ $message->delete_extension(TLSProxy::Message::EXT_ENCRYPT_THEN_MAC);
+ $message->process_extensions();
+ $message->repack();
+ }
+ $sent_corrupted_payload = 0;
+ return;
+ }
+
+ my $last_message = @{$messages}[-1];
+ if (defined($last_message)
+ && $last_message->server
+ && $last_message->mt == TLSProxy::Message::MT_FINISHED
+ && !@{$last_message->records}[0]->{sent}) {
+
+ # Insert a maximally-padded record. Assume a block size of 16 (AES) and
+ # a MAC length of 20 (SHA-1).
+ my $block_size = 16;
+ my $mac_len = 20;
+
+ # Size the plaintext so that 256 is a valid padding.
+ my $plaintext_len = $block_size - ($mac_len % $block_size);
+ my $plaintext = "A" x $plaintext_len;
+
+ my $data = "B" x $block_size; # Explicit IV.
+ $data .= $plaintext;
+ $data .= TLSProxy::Proxy::fill_known_data($mac_len); # MAC.
+
+ # Add padding.
+ for (my $i = 0; $i < 256; $i++) {
+ if ($i == $bad_padding_offset) {
+ $sent_corrupted_payload = 1;
+ $data .= "\xfe";
+ } else {
+ $data .= "\xff";
+ }
+ }
+
+ my $record = TLSProxy::Record->new(
+ $proxy->flight,
+ TLSProxy::Record::RT_APPLICATION_DATA,
+ TLSProxy::Record::VERS_TLS_1_2,
+ length($data),
+ 0,
+ length($data),
+ $plaintext_len,
+ $data,
+ $plaintext,
+ );
+
+ # Send the record immediately after the server Finished.
+ push @{$proxy->record_list}, $record;
+ } elsif ($sent_corrupted_payload) {
+ # Check for bad_record_mac from client
+ my $last_record = @{$proxy->record_list}[-1];
+ $fatal_alert = 1 if $last_record->is_fatal_alert(0) == 20;
+ }
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslcertstatus.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslcertstatus.t
new file mode 100644
index 000000000..6fd89feaf
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslcertstatus.t
@@ -0,0 +1,67 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file bldtop_dir/;
+use OpenSSL::Test::Utils;
+use TLSProxy::Proxy;
+
+my $test_name = "test_sslcertstatus";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs the ocsp feature enabled"
+ if disabled("ocsp");
+
+plan skip_all => "$test_name needs TLS enabled"
+ if alldisabled(available_protocols("tls"))
+ || (!disabled("tls1_3") && disabled("tls1_2"));
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+my $proxy = TLSProxy::Proxy->new(
+ \&certstatus_filter,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+#Test 1: Sending a status_request extension in both ClientHello and
+#ServerHello but then omitting the CertificateStatus message is valid
+$proxy->clientflags("-status -no_tls1_3");
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 1;
+ok(TLSProxy::Message->success, "Missing CertificateStatus message");
+
+sub certstatus_filter
+{
+ my $proxy = shift;
+
+ # We're only interested in the initial ServerHello
+ if ($proxy->flight != 1) {
+ return;
+ }
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == TLSProxy::Message::MT_SERVER_HELLO) {
+ #Add the status_request to the ServerHello even though we are not
+ #going to send a CertificateStatus message
+ $message->set_extension(TLSProxy::Message::EXT_STATUS_REQUEST,
+ "");
+
+ $message->repack();
+ }
+ }
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslextension.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslextension.t
new file mode 100644
index 000000000..469567cb7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslextension.t
@@ -0,0 +1,260 @@
+#! /usr/bin/env perl
+# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use feature 'state';
+
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file bldtop_dir/;
+use OpenSSL::Test::Utils;
+use TLSProxy::Proxy;
+
+my $test_name = "test_sslextension";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLS enabled"
+ if alldisabled(available_protocols("tls"));
+
+my $no_below_tls13 = alldisabled(("tls1", "tls1_1", "tls1_2"))
+ || (!disabled("tls1_3") && disabled("tls1_2"));
+
+use constant {
+ UNSOLICITED_SERVER_NAME => 0,
+ UNSOLICITED_SERVER_NAME_TLS13 => 1,
+ UNSOLICITED_SCT => 2,
+ NONCOMPLIANT_SUPPORTED_GROUPS => 3
+};
+
+my $testtype;
+my $fatal_alert = 0; # set by filter on fatal alert
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+my $proxy = TLSProxy::Proxy->new(
+ \&inject_duplicate_extension_clienthello,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+
+sub extension_filter
+{
+ my $proxy = shift;
+
+ if ($proxy->flight == 1) {
+ # Change the ServerRandom so that the downgrade sentinel doesn't cause
+ # the connection to fail
+ my $message = ${$proxy->message_list}[1];
+ $message->random("\0"x32);
+ $message->repack();
+ return;
+ }
+
+ # We're only interested in the initial ClientHello
+ if ($proxy->flight != 0) {
+ return;
+ }
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == TLSProxy::Message::MT_CLIENT_HELLO) {
+ # Remove all extensions and set the extension len to zero
+ $message->extension_data({});
+ $message->extensions_len(0);
+ # Extensions have been removed so make sure we don't try to use them
+ $message->process_extensions();
+
+ $message->repack();
+ }
+ }
+}
+
+sub inject_duplicate_extension
+{
+ my ($proxy, $message_type) = @_;
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == $message_type) {
+ my %extensions = %{$message->extension_data};
+ # Add a duplicate extension. We use cryptopro_bug since we never
+ # normally write that one, and it is allowed as unsolicited in the
+ # ServerHello
+ $message->set_extension(TLSProxy::Message::EXT_CRYPTOPRO_BUG_EXTENSION, "");
+ $message->dupext(TLSProxy::Message::EXT_CRYPTOPRO_BUG_EXTENSION);
+ $message->repack();
+ }
+ }
+}
+
+sub inject_duplicate_extension_clienthello
+{
+ my $proxy = shift;
+
+ # We're only interested in the initial ClientHello
+ if ($proxy->flight == 0) {
+ inject_duplicate_extension($proxy, TLSProxy::Message::MT_CLIENT_HELLO);
+ return;
+ }
+
+ my $last_record = @{$proxy->{record_list}}[-1];
+ $fatal_alert = 1 if $last_record->is_fatal_alert(1);
+}
+
+sub inject_duplicate_extension_serverhello
+{
+ my $proxy = shift;
+
+ # We're only interested in the initial ServerHello
+ if ($proxy->flight == 0) {
+ return;
+ } elsif ($proxy->flight == 1) {
+ inject_duplicate_extension($proxy, TLSProxy::Message::MT_SERVER_HELLO);
+ return;
+ }
+
+ my $last_record = @{$proxy->{record_list}}[-1];
+ $fatal_alert = 1 if $last_record->is_fatal_alert(0);
+}
+
+sub inject_unsolicited_extension
+{
+ my $proxy = shift;
+ my $message;
+ state $sent_unsolisited_extension;
+
+ if ($proxy->flight == 0) {
+ $sent_unsolisited_extension = 0;
+ return;
+ }
+
+ # We're only interested in the initial ServerHello/EncryptedExtensions
+ if ($proxy->flight != 1) {
+ if ($sent_unsolisited_extension) {
+ my $last_record = @{$proxy->record_list}[-1];
+ $fatal_alert = 1 if $last_record->is_fatal_alert(0);
+ }
+ return;
+ }
+
+ if ($testtype == UNSOLICITED_SERVER_NAME_TLS13) {
+ return if (!defined($message = ${$proxy->message_list}[2]));
+ die "Expecting EE message ".($message->mt).","
+ .${$proxy->message_list}[1]->mt.", "
+ .${$proxy->message_list}[3]->mt
+ if $message->mt != TLSProxy::Message::MT_ENCRYPTED_EXTENSIONS;
+ } else {
+ $message = ${$proxy->message_list}[1];
+ }
+
+ my $ext = pack "C2",
+ 0x00, 0x00; #Extension length
+
+ my $type;
+ if ($testtype == UNSOLICITED_SERVER_NAME
+ || $testtype == UNSOLICITED_SERVER_NAME_TLS13) {
+ $type = TLSProxy::Message::EXT_SERVER_NAME;
+ } elsif ($testtype == UNSOLICITED_SCT) {
+ $type = TLSProxy::Message::EXT_SCT;
+ } elsif ($testtype == NONCOMPLIANT_SUPPORTED_GROUPS) {
+ $type = TLSProxy::Message::EXT_SUPPORTED_GROUPS;
+ }
+ $message->set_extension($type, $ext);
+ $message->repack();
+ $sent_unsolisited_extension = 1;
+}
+
+sub inject_cryptopro_extension
+{
+ my $proxy = shift;
+
+ # We're only interested in the initial ClientHello
+ if ($proxy->flight != 0) {
+ return;
+ }
+
+ my $message = ${$proxy->message_list}[0];
+ $message->set_extension(TLSProxy::Message::EXT_CRYPTOPRO_BUG_EXTENSION, "");
+ $message->repack();
+}
+
+# Test 1-2: Sending a duplicate extension should fail.
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 8;
+ok($fatal_alert, "Duplicate ClientHello extension");
+
+$fatal_alert = 0;
+$proxy->clear();
+$proxy->filter(\&inject_duplicate_extension_serverhello);
+$proxy->start();
+ok($fatal_alert, "Duplicate ServerHello extension");
+
+SKIP: {
+ skip "TLS <= 1.2 disabled", 3 if $no_below_tls13;
+
+ #Test 3: Sending a zero length extension block should pass
+ $proxy->clear();
+ $proxy->filter(\&extension_filter);
+ $proxy->start();
+ ok(TLSProxy::Message->success, "Zero extension length test");
+
+ #Test 4: Inject an unsolicited extension (<= TLSv1.2)
+ $fatal_alert = 0;
+ $proxy->clear();
+ $proxy->filter(\&inject_unsolicited_extension);
+ $testtype = UNSOLICITED_SERVER_NAME;
+ $proxy->clientflags("-no_tls1_3 -noservername");
+ $proxy->start();
+ ok($fatal_alert, "Unsolicited server name extension");
+
+ #Test 5: Inject a noncompliant supported_groups extension (<= TLSv1.2)
+ $proxy->clear();
+ $proxy->filter(\&inject_unsolicited_extension);
+ $testtype = NONCOMPLIANT_SUPPORTED_GROUPS;
+ $proxy->clientflags("-no_tls1_3");
+ $proxy->start();
+ ok(TLSProxy::Message->success(), "Noncompliant supported_groups extension");
+}
+
+SKIP: {
+ skip "TLS <= 1.2 or CT disabled", 1
+ if $no_below_tls13 || disabled("ct");
+ #Test 6: Same as above for the SCT extension which has special handling
+ $fatal_alert = 0;
+ $proxy->clear();
+ $testtype = UNSOLICITED_SCT;
+ $proxy->clientflags("-no_tls1_3");
+ $proxy->start();
+ ok($fatal_alert, "Unsolicited sct extension");
+}
+
+SKIP: {
+ skip "TLS 1.3 disabled", 1 if disabled("tls1_3");
+ #Test 7: Inject an unsolicited extension (TLSv1.3)
+ $fatal_alert = 0;
+ $proxy->clear();
+ $proxy->filter(\&inject_unsolicited_extension);
+ $testtype = UNSOLICITED_SERVER_NAME_TLS13;
+ $proxy->clientflags("-noservername");
+ $proxy->start();
+ ok($fatal_alert, "Unsolicited server name extension (TLSv1.3)");
+}
+
+#Test 8: Send the cryptopro extension in a ClientHello. Normally this is an
+# unsolicited extension only ever seen in the ServerHello. We should
+# ignore it in a ClientHello
+$proxy->clear();
+$proxy->filter(\&inject_cryptopro_extension);
+$proxy->start();
+ok(TLSProxy::Message->success(), "Cryptopro extension in ClientHello");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslmessages.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslmessages.t
new file mode 100644
index 000000000..212791fc0
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslmessages.t
@@ -0,0 +1,430 @@
+#! /usr/bin/env perl
+# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file srctop_dir bldtop_dir/;
+use OpenSSL::Test::Utils;
+use File::Temp qw(tempfile);
+use TLSProxy::Proxy;
+use checkhandshake qw(checkhandshake @handmessages @extensions);
+
+my $test_name = "test_sslmessages";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLS enabled"
+ if alldisabled(available_protocols("tls"))
+ || (!disabled("tls1_3") && disabled("tls1_2"));
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+$ENV{CTLOG_FILE} = srctop_file("test", "ct", "log_list.conf");
+
+my $proxy = TLSProxy::Proxy->new(
+ undef,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+@handmessages = (
+ [TLSProxy::Message::MT_CLIENT_HELLO,
+ checkhandshake::ALL_HANDSHAKES],
+ [TLSProxy::Message::MT_SERVER_HELLO,
+ checkhandshake::ALL_HANDSHAKES],
+ [TLSProxy::Message::MT_CERTIFICATE,
+ checkhandshake::ALL_HANDSHAKES
+ & ~checkhandshake::RESUME_HANDSHAKE],
+ (disabled("ec") ? () :
+ [TLSProxy::Message::MT_SERVER_KEY_EXCHANGE,
+ checkhandshake::EC_HANDSHAKE]),
+ [TLSProxy::Message::MT_CERTIFICATE_STATUS,
+ checkhandshake::OCSP_HANDSHAKE],
+ #ServerKeyExchange handshakes not currently supported by TLSProxy
+ [TLSProxy::Message::MT_CERTIFICATE_REQUEST,
+ checkhandshake::CLIENT_AUTH_HANDSHAKE],
+ [TLSProxy::Message::MT_SERVER_HELLO_DONE,
+ checkhandshake::ALL_HANDSHAKES
+ & ~checkhandshake::RESUME_HANDSHAKE],
+ [TLSProxy::Message::MT_CERTIFICATE,
+ checkhandshake::CLIENT_AUTH_HANDSHAKE],
+ [TLSProxy::Message::MT_CLIENT_KEY_EXCHANGE,
+ checkhandshake::ALL_HANDSHAKES
+ & ~checkhandshake::RESUME_HANDSHAKE],
+ [TLSProxy::Message::MT_CERTIFICATE_VERIFY,
+ checkhandshake::CLIENT_AUTH_HANDSHAKE],
+ [TLSProxy::Message::MT_NEXT_PROTO,
+ checkhandshake::NPN_HANDSHAKE],
+ [TLSProxy::Message::MT_FINISHED,
+ checkhandshake::ALL_HANDSHAKES],
+ [TLSProxy::Message::MT_NEW_SESSION_TICKET,
+ checkhandshake::ALL_HANDSHAKES
+ & ~checkhandshake::RESUME_HANDSHAKE],
+ [TLSProxy::Message::MT_FINISHED,
+ checkhandshake::ALL_HANDSHAKES],
+ [TLSProxy::Message::MT_CLIENT_HELLO,
+ checkhandshake::RENEG_HANDSHAKE],
+ [TLSProxy::Message::MT_SERVER_HELLO,
+ checkhandshake::RENEG_HANDSHAKE],
+ [TLSProxy::Message::MT_CERTIFICATE,
+ checkhandshake::RENEG_HANDSHAKE],
+ [TLSProxy::Message::MT_SERVER_HELLO_DONE,
+ checkhandshake::RENEG_HANDSHAKE],
+ [TLSProxy::Message::MT_CLIENT_KEY_EXCHANGE,
+ checkhandshake::RENEG_HANDSHAKE],
+ [TLSProxy::Message::MT_FINISHED,
+ checkhandshake::RENEG_HANDSHAKE],
+ [TLSProxy::Message::MT_NEW_SESSION_TICKET,
+ checkhandshake::RENEG_HANDSHAKE],
+ [TLSProxy::Message::MT_FINISHED,
+ checkhandshake::RENEG_HANDSHAKE],
+ [0, 0]
+);
+
+@extensions = (
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SERVER_NAME,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::SERVER_NAME_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_STATUS_REQUEST,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::STATUS_REQUEST_CLI_EXTENSION],
+ (disabled("ec") ? () :
+ [TLSProxy::Message::MT_CLIENT_HELLO,
+ TLSProxy::Message::EXT_SUPPORTED_GROUPS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS]),
+ (disabled("ec") ? () :
+ [TLSProxy::Message::MT_CLIENT_HELLO,
+ TLSProxy::Message::EXT_EC_POINT_FORMATS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS]),
+ (disabled("tls1_2") ? () :
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SIG_ALGS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS]),
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_ALPN,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::ALPN_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SCT,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::SCT_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_ENCRYPT_THEN_MAC,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_EXTENDED_MASTER_SECRET,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SESSION_TICKET,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_RENEGOTIATE,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::RENEGOTIATE_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_NPN,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::NPN_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SRP,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::SRP_CLI_EXTENSION],
+
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_RENEGOTIATE,
+ TLSProxy::Message::SERVER,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_ENCRYPT_THEN_MAC,
+ TLSProxy::Message::SERVER,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_EXTENDED_MASTER_SECRET,
+ TLSProxy::Message::SERVER,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_SESSION_TICKET,
+ TLSProxy::Message::SERVER,
+ checkhandshake::SESSION_TICKET_SRV_EXTENSION],
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_SERVER_NAME,
+ TLSProxy::Message::SERVER,
+ checkhandshake::SERVER_NAME_SRV_EXTENSION],
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_STATUS_REQUEST,
+ TLSProxy::Message::SERVER,
+ checkhandshake::STATUS_REQUEST_SRV_EXTENSION],
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_ALPN,
+ TLSProxy::Message::SERVER,
+ checkhandshake::ALPN_SRV_EXTENSION],
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_SCT,
+ TLSProxy::Message::SERVER,
+ checkhandshake::SCT_SRV_EXTENSION],
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_NPN,
+ TLSProxy::Message::SERVER,
+ checkhandshake::NPN_SRV_EXTENSION],
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_EC_POINT_FORMATS,
+ TLSProxy::Message::SERVER,
+ checkhandshake::EC_POINT_FORMAT_SRV_EXTENSION],
+ [0,0,0,0]
+);
+
+#Test 1: Check we get all the right messages for a default handshake
+(undef, my $session) = tempfile();
+$proxy->serverconnects(2);
+$proxy->clientflags("-no_tls1_3 -sess_out ".$session);
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 21;
+checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS,
+ "Default handshake test");
+
+#Test 2: Resumption handshake
+$proxy->clearClient();
+$proxy->clientflags("-no_tls1_3 -sess_in ".$session);
+$proxy->clientstart();
+checkhandshake($proxy, checkhandshake::RESUME_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ & ~checkhandshake::SESSION_TICKET_SRV_EXTENSION,
+ "Resumption handshake test");
+unlink $session;
+
+SKIP: {
+ skip "No OCSP support in this OpenSSL build", 3
+ if disabled("ocsp");
+
+ #Test 3: A status_request handshake (client request only)
+ $proxy->clear();
+ $proxy->clientflags("-no_tls1_3 -status");
+ $proxy->start();
+ checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::STATUS_REQUEST_CLI_EXTENSION,
+ "status_request handshake test (client)");
+
+ #Test 4: A status_request handshake (server support only)
+ $proxy->clear();
+ $proxy->clientflags("-no_tls1_3");
+ $proxy->serverflags("-status_file "
+ .srctop_file("test", "recipes", "ocsp-response.der"));
+ $proxy->start();
+ checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS,
+ "status_request handshake test (server)");
+
+ #Test 5: A status_request handshake (client and server)
+ $proxy->clear();
+ $proxy->clientflags("-no_tls1_3 -status");
+ $proxy->serverflags("-status_file "
+ .srctop_file("test", "recipes", "ocsp-response.der"));
+ $proxy->start();
+ checkhandshake($proxy, checkhandshake::OCSP_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::STATUS_REQUEST_CLI_EXTENSION
+ | checkhandshake::STATUS_REQUEST_SRV_EXTENSION,
+ "status_request handshake test");
+}
+
+#Test 6: A client auth handshake
+$proxy->clear();
+$proxy->clientflags("-no_tls1_3 -cert ".srctop_file("apps", "server.pem"));
+$proxy->serverflags("-Verify 5");
+$proxy->start();
+checkhandshake($proxy, checkhandshake::CLIENT_AUTH_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS,
+ "Client auth handshake test");
+
+#Test 7: A handshake with a renegotiation
+$proxy->clear();
+$proxy->clientflags("-no_tls1_3");
+$proxy->reneg(1);
+$proxy->start();
+checkhandshake($proxy, checkhandshake::RENEG_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS,
+ "Renegotiation handshake test");
+
+#Test 8: Server name handshake (no client request)
+$proxy->clear();
+$proxy->clientflags("-no_tls1_3 -noservername");
+$proxy->start();
+checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ & ~checkhandshake::SERVER_NAME_CLI_EXTENSION,
+ "Server name handshake test (client)");
+
+#Test 9: Server name handshake (server support only)
+$proxy->clear();
+$proxy->clientflags("-no_tls1_3 -noservername");
+$proxy->serverflags("-servername testhost");
+$proxy->start();
+checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ & ~checkhandshake::SERVER_NAME_CLI_EXTENSION,
+ "Server name handshake test (server)");
+
+#Test 10: Server name handshake (client and server)
+$proxy->clear();
+$proxy->clientflags("-no_tls1_3 -servername testhost");
+$proxy->serverflags("-servername testhost");
+$proxy->start();
+checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::SERVER_NAME_SRV_EXTENSION,
+ "Server name handshake test");
+
+#Test 11: ALPN handshake (client request only)
+$proxy->clear();
+$proxy->clientflags("-no_tls1_3 -alpn test");
+$proxy->start();
+checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::ALPN_CLI_EXTENSION,
+ "ALPN handshake test (client)");
+
+#Test 12: ALPN handshake (server support only)
+$proxy->clear();
+$proxy->clientflags("-no_tls1_3");
+$proxy->serverflags("-alpn test");
+$proxy->start();
+checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS,
+ "ALPN handshake test (server)");
+
+#Test 13: ALPN handshake (client and server)
+$proxy->clear();
+$proxy->clientflags("-no_tls1_3 -alpn test");
+$proxy->serverflags("-alpn test");
+$proxy->start();
+checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::ALPN_CLI_EXTENSION
+ | checkhandshake::ALPN_SRV_EXTENSION,
+ "ALPN handshake test");
+
+SKIP: {
+ skip "No CT, EC or OCSP support in this OpenSSL build", 1
+ if disabled("ct") || disabled("ec") || disabled("ocsp");
+
+ #Test 14: SCT handshake (client request only)
+ $proxy->clear();
+ #Note: -ct also sends status_request
+ $proxy->clientflags("-no_tls1_3 -ct");
+ $proxy->serverflags("-status_file "
+ .srctop_file("test", "recipes", "ocsp-response.der"));
+ $proxy->start();
+ checkhandshake($proxy, checkhandshake::OCSP_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::SCT_CLI_EXTENSION
+ | checkhandshake::STATUS_REQUEST_CLI_EXTENSION
+ | checkhandshake::STATUS_REQUEST_SRV_EXTENSION,
+ "SCT handshake test (client)");
+}
+
+SKIP: {
+ skip "No OCSP support in this OpenSSL build", 1
+ if disabled("ocsp");
+
+ #Test 15: SCT handshake (server support only)
+ $proxy->clear();
+ #Note: -ct also sends status_request
+ $proxy->clientflags("-no_tls1_3");
+ $proxy->serverflags("-status_file "
+ .srctop_file("test", "recipes", "ocsp-response.der"));
+ $proxy->start();
+ checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS,
+ "SCT handshake test (server)");
+}
+
+SKIP: {
+ skip "No CT, EC or OCSP support in this OpenSSL build", 1
+ if disabled("ct") || disabled("ec") || disabled("ocsp");
+
+ #Test 16: SCT handshake (client and server)
+ #There is no built-in server side support for this so we are actually also
+ #testing custom extensions here
+ $proxy->clear();
+ #Note: -ct also sends status_request
+ $proxy->clientflags("-no_tls1_3 -ct");
+ $proxy->serverflags("-status_file "
+ .srctop_file("test", "recipes", "ocsp-response.der")
+ ." -serverinfo ".srctop_file("test", "serverinfo.pem"));
+ $proxy->start();
+ checkhandshake($proxy, checkhandshake::OCSP_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::SCT_CLI_EXTENSION
+ | checkhandshake::SCT_SRV_EXTENSION
+ | checkhandshake::STATUS_REQUEST_CLI_EXTENSION
+ | checkhandshake::STATUS_REQUEST_SRV_EXTENSION,
+ "SCT handshake test");
+}
+
+
+SKIP: {
+ skip "No NPN support in this OpenSSL build", 3
+ if disabled("nextprotoneg");
+
+ #Test 17: NPN handshake (client request only)
+ $proxy->clear();
+ $proxy->clientflags("-no_tls1_3 -nextprotoneg test");
+ $proxy->start();
+ checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::NPN_CLI_EXTENSION,
+ "NPN handshake test (client)");
+
+ #Test 18: NPN handshake (server support only)
+ $proxy->clear();
+ $proxy->clientflags("-no_tls1_3");
+ $proxy->serverflags("-nextprotoneg test");
+ $proxy->start();
+ checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS,
+ "NPN handshake test (server)");
+
+ #Test 19: NPN handshake (client and server)
+ $proxy->clear();
+ $proxy->clientflags("-no_tls1_3 -nextprotoneg test");
+ $proxy->serverflags("-nextprotoneg test");
+ $proxy->start();
+ checkhandshake($proxy, checkhandshake::NPN_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::NPN_CLI_EXTENSION
+ | checkhandshake::NPN_SRV_EXTENSION,
+ "NPN handshake test");
+}
+
+SKIP: {
+ skip "No SRP support in this OpenSSL build", 1
+ if disabled("srp");
+
+ #Test 20: SRP extension
+ #Note: We are not actually going to perform an SRP handshake (TLSProxy
+ #does not support it). However it is sufficient for us to check that the
+ #SRP extension gets added on the client side. There is no SRP extension
+ #generated on the server side anyway.
+ $proxy->clear();
+ $proxy->clientflags("-no_tls1_3 -srpuser user -srppass pass:pass");
+ $proxy->start();
+ checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::SRP_CLI_EXTENSION,
+ "SRP extension test");
+}
+
+#Test 21: EC handshake
+SKIP: {
+ skip "No EC support in this OpenSSL build", 1 if disabled("ec");
+ $proxy->clear();
+ $proxy->clientflags("-no_tls1_3");
+ $proxy->serverflags("-no_tls1_3");
+ $proxy->ciphers("ECDHE-RSA-AES128-SHA");
+ $proxy->start();
+ checkhandshake($proxy, checkhandshake::EC_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::EC_POINT_FORMAT_SRV_EXTENSION,
+ "EC handshake test");
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslrecords.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslrecords.t
new file mode 100644
index 000000000..bb4e3543a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslrecords.t
@@ -0,0 +1,699 @@
+#! /usr/bin/env perl
+# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use feature 'state';
+
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file bldtop_dir/;
+use OpenSSL::Test::Utils;
+use TLSProxy::Proxy;
+
+my $test_name = "test_sslrecords";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLSv1.2 enabled"
+ if disabled("tls1_2");
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+my $proxy = TLSProxy::Proxy->new(
+ \&add_empty_recs_filter,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+my $boundary_test_type;
+my $fatal_alert = 0; # set by filters at expected fatal alerts
+
+#Test 1: Injecting out of context empty records should fail
+my $content_type = TLSProxy::Record::RT_APPLICATION_DATA;
+my $inject_recs_num = 1;
+$proxy->serverflags("-tls1_2");
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 20;
+ok($fatal_alert, "Out of context empty records test");
+
+#Test 2: Injecting in context empty records should succeed
+$proxy->clear();
+$content_type = TLSProxy::Record::RT_HANDSHAKE;
+$proxy->serverflags("-tls1_2");
+$proxy->start();
+ok(TLSProxy::Message->success(), "In context empty records test");
+
+#Test 3: Injecting too many in context empty records should fail
+$fatal_alert = 0;
+$proxy->clear();
+#We allow 32 consecutive in context empty records
+$inject_recs_num = 33;
+$proxy->serverflags("-tls1_2");
+$proxy->start();
+ok($fatal_alert, "Too many in context empty records test");
+
+#Test 4: Injecting a fragmented fatal alert should fail. We expect the server to
+# send back an alert of its own because it cannot handle fragmented
+# alerts
+$fatal_alert = 0;
+$proxy->clear();
+$proxy->filter(\&add_frag_alert_filter);
+$proxy->serverflags("-tls1_2");
+$proxy->start();
+ok($fatal_alert, "Fragmented alert records test");
+
+#Run some SSLv2 ClientHello tests
+
+use constant {
+ TLSV1_2_IN_SSLV2 => 0,
+ SSLV2_IN_SSLV2 => 1,
+ FRAGMENTED_IN_TLSV1_2 => 2,
+ FRAGMENTED_IN_SSLV2 => 3,
+ ALERT_BEFORE_SSLV2 => 4
+};
+#Test 5: Inject an SSLv2 style record format for a TLSv1.2 ClientHello
+my $sslv2testtype = TLSV1_2_IN_SSLV2;
+$proxy->clear();
+$proxy->filter(\&add_sslv2_filter);
+$proxy->serverflags("-tls1_2");
+$proxy->start();
+ok(TLSProxy::Message->success(), "TLSv1.2 in SSLv2 ClientHello test");
+
+#Test 6: Inject an SSLv2 style record format for an SSLv2 ClientHello. We don't
+# support this so it should fail. We actually treat it as an unknown
+# protocol so we don't even send an alert in this case.
+$sslv2testtype = SSLV2_IN_SSLV2;
+$proxy->clear();
+$proxy->serverflags("-tls1_2");
+$proxy->start();
+ok(TLSProxy::Message->fail(), "SSLv2 in SSLv2 ClientHello test");
+
+#Test 7: Sanity check ClientHello fragmentation. This isn't really an SSLv2 test
+# at all, but it gives us confidence that Test 8 fails for the right
+# reasons
+$sslv2testtype = FRAGMENTED_IN_TLSV1_2;
+$proxy->clear();
+$proxy->serverflags("-tls1_2");
+$proxy->start();
+ok(TLSProxy::Message->success(), "Fragmented ClientHello in TLSv1.2 test");
+
+#Test 8: Fragment a TLSv1.2 ClientHello across a TLS1.2 record; an SSLv2
+# record; and another TLS1.2 record. This isn't allowed so should fail
+$sslv2testtype = FRAGMENTED_IN_SSLV2;
+$proxy->clear();
+$proxy->serverflags("-tls1_2");
+$proxy->start();
+ok(TLSProxy::Message->fail(), "Fragmented ClientHello in TLSv1.2/SSLv2 test");
+
+#Test 9: Send a TLS warning alert before an SSLv2 ClientHello. This should
+# fail because an SSLv2 ClientHello must be the first record.
+$sslv2testtype = ALERT_BEFORE_SSLV2;
+$proxy->clear();
+$proxy->serverflags("-tls1_2");
+$proxy->start();
+ok(TLSProxy::Message->fail(), "Alert before SSLv2 ClientHello test");
+
+#Unrecognised record type tests
+
+#Test 10: Sending an unrecognised record type in TLS1.2 should fail
+$fatal_alert = 0;
+$proxy->clear();
+$proxy->serverflags("-tls1_2");
+$proxy->filter(\&add_unknown_record_type);
+$proxy->start();
+ok($fatal_alert, "Unrecognised record type in TLS1.2");
+
+SKIP: {
+ skip "TLSv1.1 disabled", 1 if disabled("tls1_1");
+
+ #Test 11: Sending an unrecognised record type in TLS1.1 should fail
+ $fatal_alert = 0;
+ $proxy->clear();
+ $proxy->clientflags("-tls1_1");
+ $proxy->start();
+ ok($fatal_alert, "Unrecognised record type in TLS1.1");
+}
+
+#Test 12: Sending a different record version in TLS1.2 should fail
+$fatal_alert = 0;
+$proxy->clear();
+$proxy->clientflags("-tls1_2");
+$proxy->filter(\&change_version);
+$proxy->start();
+ok($fatal_alert, "Changed record version in TLS1.2");
+
+#TLS1.3 specific tests
+SKIP: {
+ skip "TLSv1.3 disabled", 8 if disabled("tls1_3");
+
+ #Test 13: Sending a different record version in TLS1.3 should fail
+ $proxy->clear();
+ $proxy->filter(\&change_version);
+ $proxy->start();
+ ok(TLSProxy::Message->fail(), "Changed record version in TLS1.3");
+
+ #Test 14: Sending an unrecognised record type in TLS1.3 should fail
+ $fatal_alert = 0;
+ $proxy->clear();
+ $proxy->filter(\&add_unknown_record_type);
+ $proxy->start();
+ ok($fatal_alert, "Unrecognised record type in TLS1.3");
+
+ #Test 15: Sending an outer record type other than app data once encrypted
+ #should fail
+ $fatal_alert = 0;
+ $proxy->clear();
+ $proxy->filter(\&change_outer_record_type);
+ $proxy->start();
+ ok($fatal_alert, "Wrong outer record type in TLS1.3");
+
+ use constant {
+ DATA_AFTER_SERVER_HELLO => 0,
+ DATA_AFTER_FINISHED => 1,
+ DATA_AFTER_KEY_UPDATE => 2,
+ DATA_BETWEEN_KEY_UPDATE => 3,
+ NO_DATA_BETWEEN_KEY_UPDATE => 4,
+ };
+
+ #Test 16: Sending a ServerHello which doesn't end on a record boundary
+ # should fail
+ $fatal_alert = 0;
+ $proxy->clear();
+ $boundary_test_type = DATA_AFTER_SERVER_HELLO;
+ $proxy->filter(\&not_on_record_boundary);
+ $proxy->start();
+ ok($fatal_alert, "Record not on boundary in TLS1.3 (ServerHello)");
+
+ #Test 17: Sending a Finished which doesn't end on a record boundary
+ # should fail
+ $fatal_alert = 0;
+ $proxy->clear();
+ $boundary_test_type = DATA_AFTER_FINISHED;
+ $proxy->start();
+ ok($fatal_alert, "Record not on boundary in TLS1.3 (Finished)");
+
+ #Test 18: Sending a KeyUpdate which doesn't end on a record boundary
+ # should fail
+ $fatal_alert = 0;
+ $proxy->clear();
+ $boundary_test_type = DATA_AFTER_KEY_UPDATE;
+ $proxy->start();
+ ok($fatal_alert, "Record not on boundary in TLS1.3 (KeyUpdate)");
+
+ #Test 19: Sending application data in the middle of a fragmented KeyUpdate
+ # should fail. Strictly speaking this is not a record boundary test
+ # but we use the same filter.
+ $fatal_alert = 0;
+ $proxy->clear();
+ $boundary_test_type = DATA_BETWEEN_KEY_UPDATE;
+ $proxy->start();
+ ok($fatal_alert, "Data between KeyUpdate");
+
+ #Test 20: Fragmented KeyUpdate. This should succeed. Strictly speaking this
+ # is not a record boundary test but we use the same filter.
+ $proxy->clear();
+ $boundary_test_type = NO_DATA_BETWEEN_KEY_UPDATE;
+ $proxy->start();
+ ok(TLSProxy::Message->success(), "No data between KeyUpdate");
+ }
+
+
+sub add_empty_recs_filter
+{
+ my $proxy = shift;
+ my $records = $proxy->record_list;
+
+ # We're only interested in the initial ClientHello
+ if ($proxy->flight != 0) {
+ $fatal_alert = 1 if @{$records}[-1]->is_fatal_alert(1) == 10;
+ return;
+ }
+
+ for (my $i = 0; $i < $inject_recs_num; $i++) {
+ my $record = TLSProxy::Record->new(
+ 0,
+ $content_type,
+ TLSProxy::Record::VERS_TLS_1_2,
+ 0,
+ 0,
+ 0,
+ 0,
+ "",
+ ""
+ );
+ push @{$records}, $record;
+ }
+}
+
+sub add_frag_alert_filter
+{
+ my $proxy = shift;
+ my $records = $proxy->record_list;
+ my $byte;
+
+ # We're only interested in the initial ClientHello
+ if ($proxy->flight != 0) {
+ $fatal_alert = 1 if @{$records}[-1]->is_fatal_alert(1) == 10;
+ return;
+ }
+
+ # Add a zero length fragment first
+ #my $record = TLSProxy::Record->new(
+ # 0,
+ # TLSProxy::Record::RT_ALERT,
+ # TLSProxy::Record::VERS_TLS_1_2,
+ # 0,
+ # 0,
+ # 0,
+ # "",
+ # ""
+ #);
+ #push @{$proxy->record_list}, $record;
+
+ # Now add the alert level (Fatal) as a separate record
+ $byte = pack('C', TLSProxy::Message::AL_LEVEL_FATAL);
+ my $record = TLSProxy::Record->new(
+ 0,
+ TLSProxy::Record::RT_ALERT,
+ TLSProxy::Record::VERS_TLS_1_2,
+ 1,
+ 0,
+ 1,
+ 1,
+ $byte,
+ $byte
+ );
+ push @{$records}, $record;
+
+ # And finally the description (Unexpected message) in a third record
+ $byte = pack('C', TLSProxy::Message::AL_DESC_UNEXPECTED_MESSAGE);
+ $record = TLSProxy::Record->new(
+ 0,
+ TLSProxy::Record::RT_ALERT,
+ TLSProxy::Record::VERS_TLS_1_2,
+ 1,
+ 0,
+ 1,
+ 1,
+ $byte,
+ $byte
+ );
+ push @{$records}, $record;
+}
+
+sub add_sslv2_filter
+{
+ my $proxy = shift;
+ my $clienthello;
+ my $record;
+
+ # We're only interested in the initial ClientHello
+ if ($proxy->flight != 0) {
+ return;
+ }
+
+ # Ditch the real ClientHello - we're going to replace it with our own
+ shift @{$proxy->record_list};
+
+ if ($sslv2testtype == ALERT_BEFORE_SSLV2) {
+ my $alert = pack('CC', TLSProxy::Message::AL_LEVEL_FATAL,
+ TLSProxy::Message::AL_DESC_NO_RENEGOTIATION);
+ my $alertlen = length $alert;
+ $record = TLSProxy::Record->new(
+ 0,
+ TLSProxy::Record::RT_ALERT,
+ TLSProxy::Record::VERS_TLS_1_2,
+ $alertlen,
+ 0,
+ $alertlen,
+ $alertlen,
+ $alert,
+ $alert
+ );
+
+ push @{$proxy->record_list}, $record;
+ }
+
+ if ($sslv2testtype == ALERT_BEFORE_SSLV2
+ || $sslv2testtype == TLSV1_2_IN_SSLV2
+ || $sslv2testtype == SSLV2_IN_SSLV2) {
+ # This is an SSLv2 format ClientHello
+ $clienthello =
+ pack "C44",
+ 0x01, # ClientHello
+ 0x03, 0x03, #TLSv1.2
+ 0x00, 0x03, # Ciphersuites len
+ 0x00, 0x00, # Session id len
+ 0x00, 0x20, # Challenge len
+ 0x00, 0x00, 0x2f, #AES128-SHA
+ 0x01, 0x18, 0x9F, 0x76, 0xEC, 0x57, 0xCE, 0xE5, 0xB3, 0xAB, 0x79, 0x90,
+ 0xAD, 0xAC, 0x6E, 0xD1, 0x58, 0x35, 0x03, 0x97, 0x16, 0x10, 0x82, 0x56,
+ 0xD8, 0x55, 0xFF, 0xE1, 0x8A, 0xA3, 0x2E, 0xF6; # Challenge
+
+ if ($sslv2testtype == SSLV2_IN_SSLV2) {
+ # Set the version to "real" SSLv2
+ vec($clienthello, 1, 8) = 0x00;
+ vec($clienthello, 2, 8) = 0x02;
+ }
+
+ my $chlen = length $clienthello;
+
+ $record = TLSProxy::Record->new(
+ 0,
+ TLSProxy::Record::RT_HANDSHAKE,
+ TLSProxy::Record::VERS_TLS_1_2,
+ $chlen,
+ 1, #SSLv2
+ $chlen,
+ $chlen,
+ $clienthello,
+ $clienthello
+ );
+
+ push @{$proxy->record_list}, $record;
+ } else {
+ # For this test we're using a real TLS ClientHello
+ $clienthello =
+ pack "C49",
+ 0x01, # ClientHello
+ 0x00, 0x00, 0x2D, # Message length
+ 0x03, 0x03, # TLSv1.2
+ 0x01, 0x18, 0x9F, 0x76, 0xEC, 0x57, 0xCE, 0xE5, 0xB3, 0xAB, 0x79, 0x90,
+ 0xAD, 0xAC, 0x6E, 0xD1, 0x58, 0x35, 0x03, 0x97, 0x16, 0x10, 0x82, 0x56,
+ 0xD8, 0x55, 0xFF, 0xE1, 0x8A, 0xA3, 0x2E, 0xF6, # Random
+ 0x00, # Session id len
+ 0x00, 0x04, # Ciphersuites len
+ 0x00, 0x2f, # AES128-SHA
+ 0x00, 0xff, # Empty reneg info SCSV
+ 0x01, # Compression methods len
+ 0x00, # Null compression
+ 0x00, 0x00; # Extensions len
+
+ # Split this into 3: A TLS record; a SSLv2 record and a TLS record.
+ # We deliberately split the second record prior to the Challenge/Random
+ # and set the first byte of the random to 1. This makes the second SSLv2
+ # record look like an SSLv2 ClientHello
+ my $frag1 = substr $clienthello, 0, 6;
+ my $frag2 = substr $clienthello, 6, 32;
+ my $frag3 = substr $clienthello, 38;
+
+ my $fraglen = length $frag1;
+ $record = TLSProxy::Record->new(
+ 0,
+ TLSProxy::Record::RT_HANDSHAKE,
+ TLSProxy::Record::VERS_TLS_1_2,
+ $fraglen,
+ 0,
+ $fraglen,
+ $fraglen,
+ $frag1,
+ $frag1
+ );
+ push @{$proxy->record_list}, $record;
+
+ $fraglen = length $frag2;
+ my $recvers;
+ if ($sslv2testtype == FRAGMENTED_IN_SSLV2) {
+ $recvers = 1;
+ } else {
+ $recvers = 0;
+ }
+ $record = TLSProxy::Record->new(
+ 0,
+ TLSProxy::Record::RT_HANDSHAKE,
+ TLSProxy::Record::VERS_TLS_1_2,
+ $fraglen,
+ $recvers,
+ $fraglen,
+ $fraglen,
+ $frag2,
+ $frag2
+ );
+ push @{$proxy->record_list}, $record;
+
+ $fraglen = length $frag3;
+ $record = TLSProxy::Record->new(
+ 0,
+ TLSProxy::Record::RT_HANDSHAKE,
+ TLSProxy::Record::VERS_TLS_1_2,
+ $fraglen,
+ 0,
+ $fraglen,
+ $fraglen,
+ $frag3,
+ $frag3
+ );
+ push @{$proxy->record_list}, $record;
+ }
+
+}
+
+sub add_unknown_record_type
+{
+ my $proxy = shift;
+ my $records = $proxy->record_list;
+ state $added_record;
+
+ # We'll change a record after the initial version neg has taken place
+ if ($proxy->flight == 0) {
+ $added_record = 0;
+ return;
+ } elsif ($proxy->flight != 1 || $added_record) {
+ $fatal_alert = 1 if @{$records}[-1]->is_fatal_alert(0) == 10;
+ return;
+ }
+
+ my $record = TLSProxy::Record->new(
+ 1,
+ TLSProxy::Record::RT_UNKNOWN,
+ @{$records}[-1]->version(),
+ 1,
+ 0,
+ 1,
+ 1,
+ "X",
+ "X"
+ );
+
+ #Find ServerHello record and insert after that
+ my $i;
+ for ($i = 0; ${$proxy->record_list}[$i]->flight() < 1; $i++) {
+ next;
+ }
+ $i++;
+
+ splice @{$proxy->record_list}, $i, 0, $record;
+ $added_record = 1;
+}
+
+sub change_version
+{
+ my $proxy = shift;
+ my $records = $proxy->record_list;
+
+ # We'll change a version after the initial version neg has taken place
+ if ($proxy->flight != 1) {
+ $fatal_alert = 1 if @{$records}[-1]->is_fatal_alert(0) == 70;
+ return;
+ }
+
+ if ($#{$records} > 1) {
+ # ... typically in ServerHelloDone
+ @{$records}[-1]->version(TLSProxy::Record::VERS_TLS_1_1);
+ }
+}
+
+sub change_outer_record_type
+{
+ my $proxy = shift;
+ my $records = $proxy->record_list;
+
+ # We'll change a record after the initial version neg has taken place
+ if ($proxy->flight != 1) {
+ $fatal_alert = 1 if @{$records}[-1]->is_fatal_alert(0) == 10;
+ return;
+ }
+
+ # Find CCS record and change record after that
+ my $i = 0;
+ foreach my $record (@{$records}) {
+ last if $record->content_type == TLSProxy::Record::RT_CCS;
+ $i++;
+ }
+ if (defined(${$records}[++$i])) {
+ ${$records}[$i]->outer_content_type(TLSProxy::Record::RT_HANDSHAKE);
+ }
+}
+
+sub not_on_record_boundary
+{
+ my $proxy = shift;
+ my $records = $proxy->record_list;
+ my $data;
+
+ #Find server's first flight
+ if ($proxy->flight != 1) {
+ $fatal_alert = 1 if @{$records}[-1]->is_fatal_alert(0) == 10;
+ return;
+ }
+
+ if ($boundary_test_type == DATA_AFTER_SERVER_HELLO) {
+ #Merge the ServerHello and EncryptedExtensions records into one
+ my $i = 0;
+ foreach my $record (@{$records}) {
+ if ($record->content_type == TLSProxy::Record::RT_HANDSHAKE) {
+ $record->{sent} = 1; # pretend it's sent already
+ last;
+ }
+ $i++;
+ }
+
+ if (defined(${$records}[$i+1])) {
+ $data = ${$records}[$i]->data();
+ $data .= ${$records}[$i+1]->decrypt_data();
+ ${$records}[$i+1]->data($data);
+ ${$records}[$i+1]->len(length $data);
+
+ #Delete the old ServerHello record
+ splice @{$records}, $i, 1;
+ }
+ } elsif ($boundary_test_type == DATA_AFTER_FINISHED) {
+ return if @{$proxy->{message_list}}[-1]->{mt}
+ != TLSProxy::Message::MT_FINISHED;
+
+ my $last_record = @{$records}[-1];
+ $data = $last_record->decrypt_data;
+
+ #Add a KeyUpdate message onto the end of the Finished record
+ my $keyupdate = pack "C5",
+ 0x18, # KeyUpdate
+ 0x00, 0x00, 0x01, # Message length
+ 0x00; # Update not requested
+
+ $data .= $keyupdate;
+
+ #Add content type and tag
+ $data .= pack("C", TLSProxy::Record::RT_HANDSHAKE).("\0"x16);
+
+ #Update the record
+ $last_record->data($data);
+ $last_record->len(length $data);
+ } elsif ($boundary_test_type == DATA_AFTER_KEY_UPDATE) {
+ return if @{$proxy->{message_list}}[-1]->{mt}
+ != TLSProxy::Message::MT_FINISHED;
+
+ #KeyUpdates must end on a record boundary
+
+ my $record = TLSProxy::Record->new(
+ 1,
+ TLSProxy::Record::RT_APPLICATION_DATA,
+ TLSProxy::Record::VERS_TLS_1_2,
+ 0,
+ 0,
+ 0,
+ 0,
+ "",
+ ""
+ );
+
+ #Add two KeyUpdate messages into a single record
+ my $keyupdate = pack "C5",
+ 0x18, # KeyUpdate
+ 0x00, 0x00, 0x01, # Message length
+ 0x00; # Update not requested
+
+ $data = $keyupdate.$keyupdate;
+
+ #Add content type and tag
+ $data .= pack("C", TLSProxy::Record::RT_HANDSHAKE).("\0"x16);
+
+ $record->data($data);
+ $record->len(length $data);
+ push @{$records}, $record;
+ } else {
+ return if @{$proxy->{message_list}}[-1]->{mt}
+ != TLSProxy::Message::MT_FINISHED;
+
+ my $record = TLSProxy::Record->new(
+ 1,
+ TLSProxy::Record::RT_APPLICATION_DATA,
+ TLSProxy::Record::VERS_TLS_1_2,
+ 0,
+ 0,
+ 0,
+ 0,
+ "",
+ ""
+ );
+
+ #Add a partial KeyUpdate message into the record
+ $data = pack "C1",
+ 0x18; # KeyUpdate message type. Omit the rest of the message header
+
+ #Add content type and tag
+ $data .= pack("C", TLSProxy::Record::RT_HANDSHAKE).("\0"x16);
+
+ $record->data($data);
+ $record->len(length $data);
+ push @{$records}, $record;
+
+ if ($boundary_test_type == DATA_BETWEEN_KEY_UPDATE) {
+ #Now add an app data record
+ $record = TLSProxy::Record->new(
+ 1,
+ TLSProxy::Record::RT_APPLICATION_DATA,
+ TLSProxy::Record::VERS_TLS_1_2,
+ 0,
+ 0,
+ 0,
+ 0,
+ "",
+ ""
+ );
+
+ #Add an empty app data record (just content type and tag)
+ $data = pack("C", TLSProxy::Record::RT_APPLICATION_DATA).("\0"x16);
+
+ $record->data($data);
+ $record->len(length $data);
+ push @{$records}, $record;
+ }
+
+ #Now add the rest of the KeyUpdate message
+ $record = TLSProxy::Record->new(
+ 1,
+ TLSProxy::Record::RT_APPLICATION_DATA,
+ TLSProxy::Record::VERS_TLS_1_2,
+ 0,
+ 0,
+ 0,
+ 0,
+ "",
+ ""
+ );
+
+ #Add the last 4 bytes of the KeyUpdate record
+ $data = pack "C4",
+ 0x00, 0x00, 0x01, # Message length
+ 0x00; # Update not requested
+
+ #Add content type and tag
+ $data .= pack("C", TLSProxy::Record::RT_HANDSHAKE).("\0"x16);
+
+ $record->data($data);
+ $record->len(length $data);
+ push @{$records}, $record;
+
+ }
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslsessiontick.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslsessiontick.t
new file mode 100644
index 000000000..cbf197db2
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslsessiontick.t
@@ -0,0 +1,273 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file bldtop_dir/;
+use OpenSSL::Test::Utils;
+use TLSProxy::Proxy;
+use File::Temp qw(tempfile);
+
+my $test_name = "test_sslsessiontick";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs SSLv3, TLSv1, TLSv1.1 or TLSv1.2 enabled"
+ if alldisabled(("ssl3", "tls1", "tls1_1", "tls1_2"));
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+
+sub checkmessages($$$$$$);
+sub clearclient();
+sub clearall();
+
+my $chellotickext = 0;
+my $shellotickext = 0;
+my $fullhand = 0;
+my $ticketseen = 0;
+
+my $proxy = TLSProxy::Proxy->new(
+ undef,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+#Test 1: By default with no existing session we should get a session ticket
+#Expected result: ClientHello extension seen; ServerHello extension seen
+# NewSessionTicket message seen; Full handshake
+$proxy->clientflags("-no_tls1_3");
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 10;
+checkmessages(1, "Default session ticket test", 1, 1, 1, 1);
+
+#Test 2: If the server does not accept tickets we should get a normal handshake
+#with no session tickets
+#Expected result: ClientHello extension seen; ServerHello extension not seen
+# NewSessionTicket message not seen; Full handshake
+clearall();
+$proxy->clientflags("-no_tls1_3");
+$proxy->serverflags("-no_ticket");
+$proxy->start();
+checkmessages(2, "No server support session ticket test", 1, 0, 0, 1);
+
+#Test 3: If the client does not accept tickets we should get a normal handshake
+#with no session tickets
+#Expected result: ClientHello extension not seen; ServerHello extension not seen
+# NewSessionTicket message not seen; Full handshake
+clearall();
+$proxy->clientflags("-no_tls1_3 -no_ticket");
+$proxy->start();
+checkmessages(3, "No client support session ticket test", 0, 0, 0, 1);
+
+#Test 4: Test session resumption with session ticket
+#Expected result: ClientHello extension seen; ServerHello extension not seen
+# NewSessionTicket message not seen; Abbreviated handshake
+clearall();
+(undef, my $session) = tempfile();
+$proxy->serverconnects(2);
+$proxy->clientflags("-no_tls1_3 -sess_out ".$session);
+$proxy->start();
+$proxy->clearClient();
+$proxy->clientflags("-no_tls1_3 -sess_in ".$session);
+$proxy->clientstart();
+checkmessages(4, "Session resumption session ticket test", 1, 0, 0, 0);
+unlink $session;
+
+#Test 5: Test session resumption with ticket capable client without a ticket
+#Expected result: ClientHello extension seen; ServerHello extension seen
+# NewSessionTicket message seen; Abbreviated handshake
+clearall();
+(undef, $session) = tempfile();
+$proxy->serverconnects(2);
+$proxy->clientflags("-no_tls1_3 -sess_out ".$session." -no_ticket");
+$proxy->start();
+$proxy->clearClient();
+$proxy->clientflags("-no_tls1_3 -sess_in ".$session);
+$proxy->clientstart();
+checkmessages(5, "Session resumption with ticket capable client without a "
+ ."ticket", 1, 1, 1, 0);
+unlink $session;
+
+#Test 6: Client accepts empty ticket.
+#Expected result: ClientHello extension seen; ServerHello extension seen;
+# NewSessionTicket message seen; Full handshake.
+clearall();
+$proxy->filter(\&ticket_filter);
+$proxy->clientflags("-no_tls1_3");
+$proxy->start();
+checkmessages(6, "Empty ticket test", 1, 1, 1, 1);
+
+#Test 7-8: Client keeps existing ticket on empty ticket.
+clearall();
+(undef, $session) = tempfile();
+$proxy->serverconnects(3);
+$proxy->filter(undef);
+$proxy->clientflags("-no_tls1_3 -sess_out ".$session);
+$proxy->start();
+$proxy->clearClient();
+$proxy->clientflags("-no_tls1_3 -sess_in ".$session." -sess_out ".$session);
+$proxy->filter(\&inject_empty_ticket_filter);
+$proxy->clientstart();
+#Expected result: ClientHello extension seen; ServerHello extension seen;
+# NewSessionTicket message seen; Abbreviated handshake.
+checkmessages(7, "Empty ticket resumption test", 1, 1, 1, 0);
+clearclient();
+$proxy->clientflags("-no_tls1_3 -sess_in ".$session);
+$proxy->filter(undef);
+$proxy->clientstart();
+#Expected result: ClientHello extension seen; ServerHello extension not seen;
+# NewSessionTicket message not seen; Abbreviated handshake.
+checkmessages(8, "Empty ticket resumption test", 1, 0, 0, 0);
+unlink $session;
+
+#Test 9: Bad server sends the ServerHello extension but does not send a
+#NewSessionTicket
+#Expected result: Connection failure
+clearall();
+$proxy->clientflags("-no_tls1_3");
+$proxy->serverflags("-no_ticket");
+$proxy->filter(\&inject_ticket_extension_filter);
+$proxy->start();
+ok(TLSProxy::Message->fail, "Server sends ticket extension but no ticket test");
+
+#Test10: Bad server does not send the ServerHello extension but does send a
+#NewSessionTicket
+#Expected result: Connection failure
+clearall();
+$proxy->clientflags("-no_tls1_3");
+$proxy->serverflags("-no_ticket");
+$proxy->filter(\&inject_empty_ticket_filter);
+$proxy->start();
+ok(TLSProxy::Message->fail, "No server ticket extension but ticket sent test");
+
+sub ticket_filter
+{
+ my $proxy = shift;
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == TLSProxy::Message::MT_NEW_SESSION_TICKET) {
+ $message->ticket("");
+ $message->repack();
+ }
+ }
+}
+
+sub inject_empty_ticket_filter {
+ my $proxy = shift;
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == TLSProxy::Message::MT_NEW_SESSION_TICKET) {
+ # Only inject the message first time we're called.
+ return;
+ }
+ }
+
+ my @new_message_list = ();
+ foreach my $message (@{$proxy->message_list}) {
+ push @new_message_list, $message;
+ if ($message->mt == TLSProxy::Message::MT_SERVER_HELLO) {
+ $message->set_extension(TLSProxy::Message::EXT_SESSION_TICKET, "");
+ $message->repack();
+ # Tack NewSessionTicket onto the ServerHello record.
+ # This only works if the ServerHello is exactly one record.
+ my $record = ${$message->records}[0];
+
+ my $offset = $message->startoffset + $message->encoded_length;
+ my $newsessionticket = TLSProxy::NewSessionTicket->new(
+ 1, "", [$record], $offset, []);
+ $newsessionticket->repack();
+ push @new_message_list, $newsessionticket;
+ }
+ }
+ $proxy->message_list([@new_message_list]);
+}
+
+sub inject_ticket_extension_filter
+{
+ my $proxy = shift;
+
+ # We're only interested in the initial ServerHello
+ if ($proxy->flight != 1) {
+ return;
+ }
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == TLSProxy::Message::MT_SERVER_HELLO) {
+ #Add the session ticket extension to the ServerHello even though
+ #we are not going to send a NewSessionTicket message
+ $message->set_extension(TLSProxy::Message::EXT_SESSION_TICKET, "");
+
+ $message->repack();
+ }
+ }
+}
+
+sub checkmessages($$$$$$)
+{
+ my ($testno, $testname, $testch, $testsh, $testtickseen, $testhand) = @_;
+
+ subtest $testname => sub {
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == TLSProxy::Message::MT_CLIENT_HELLO
+ || $message->mt == TLSProxy::Message::MT_SERVER_HELLO) {
+ #Get the extensions data
+ my %extensions = %{$message->extension_data};
+ if (defined
+ $extensions{TLSProxy::Message::EXT_SESSION_TICKET}) {
+ if ($message->mt == TLSProxy::Message::MT_CLIENT_HELLO) {
+ $chellotickext = 1;
+ } else {
+ $shellotickext = 1;
+ }
+ }
+ } elsif ($message->mt == TLSProxy::Message::MT_CERTIFICATE) {
+ #Must be doing a full handshake
+ $fullhand = 1;
+ } elsif ($message->mt == TLSProxy::Message::MT_NEW_SESSION_TICKET) {
+ $ticketseen = 1;
+ }
+ }
+
+ plan tests => 5;
+
+ ok(TLSProxy::Message->success, "Handshake");
+ ok(($testch && $chellotickext) || (!$testch && !$chellotickext),
+ "ClientHello extension Session Ticket check");
+ ok(($testsh && $shellotickext) || (!$testsh && !$shellotickext),
+ "ServerHello extension Session Ticket check");
+ ok(($testtickseen && $ticketseen) || (!$testtickseen && !$ticketseen),
+ "Session Ticket message presence check");
+ ok(($testhand && $fullhand) || (!$testhand && !$fullhand),
+ "Session Ticket full handshake check");
+ }
+}
+
+
+sub clearclient()
+{
+ $chellotickext = 0;
+ $shellotickext = 0;
+ $fullhand = 0;
+ $ticketseen = 0;
+ $proxy->clearClient();
+}
+
+sub clearall()
+{
+ clearclient();
+ $proxy->clear();
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslsigalgs.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslsigalgs.t
new file mode 100644
index 000000000..9ea9d0521
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslsigalgs.t
@@ -0,0 +1,491 @@
+#! /usr/bin/env perl
+# Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file bldtop_dir/;
+use OpenSSL::Test::Utils;
+use TLSProxy::Proxy;
+
+my $test_name = "test_sslsigalgs";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLS1.2 or TLS1.3 enabled"
+ if disabled("tls1_2") && disabled("tls1_3");
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+my $proxy = TLSProxy::Proxy->new(
+ undef,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+use constant {
+ NO_SIG_ALGS_EXT => 0,
+ EMPTY_SIG_ALGS_EXT => 1,
+ NO_KNOWN_SIG_ALGS => 2,
+ NO_PSS_SIG_ALGS => 3,
+ PSS_ONLY_SIG_ALGS => 4,
+ PURE_SIGALGS => 5,
+ COMPAT_SIGALGS => 6,
+ SIGALGS_CERT_ALL => 7,
+ SIGALGS_CERT_PKCS => 8,
+ SIGALGS_CERT_INVALID => 9,
+ UNRECOGNIZED_SIGALGS_CERT => 10,
+ UNRECOGNIZED_SIGALG => 11
+};
+
+#Note: Throughout this test we override the default ciphersuites where TLSv1.2
+# is expected to ensure that a ServerKeyExchange message is sent that uses
+# the sigalgs
+
+#Test 1: Default sig algs should succeed
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 26;
+ok(TLSProxy::Message->success, "Default sigalgs");
+my $testtype;
+
+SKIP: {
+ skip "TLSv1.3 disabled", 6 if disabled("tls1_3");
+
+ $proxy->filter(\&sigalgs_filter);
+
+ #Test 2: Sending no sig algs extension in TLSv1.3 should fail
+ $proxy->clear();
+ $testtype = NO_SIG_ALGS_EXT;
+ $proxy->start();
+ ok(TLSProxy::Message->fail, "No TLSv1.3 sigalgs");
+
+ #Test 3: Sending an empty sig algs extension in TLSv1.3 should fail
+ $proxy->clear();
+ $testtype = EMPTY_SIG_ALGS_EXT;
+ $proxy->start();
+ ok(TLSProxy::Message->fail, "Empty TLSv1.3 sigalgs");
+
+ #Test 4: Sending a list with no recognised sig algs in TLSv1.3 should fail
+ $proxy->clear();
+ $testtype = NO_KNOWN_SIG_ALGS;
+ $proxy->start();
+ ok(TLSProxy::Message->fail, "No known TLSv1.3 sigalgs");
+
+ #Test 5: Sending a sig algs list without pss for an RSA cert in TLSv1.3
+ # should fail
+ $proxy->clear();
+ $testtype = NO_PSS_SIG_ALGS;
+ $proxy->start();
+ ok(TLSProxy::Message->fail, "No PSS TLSv1.3 sigalgs");
+
+ #Test 6: Sending only TLSv1.3 PSS sig algs in TLSv1.3 should succeed
+ #TODO(TLS1.3): Do we need to verify the cert to make sure its a PSS only
+ #cert in this case?
+ $proxy->clear();
+ $testtype = PSS_ONLY_SIG_ALGS;
+ $proxy->start();
+ ok(TLSProxy::Message->success, "PSS only sigalgs in TLSv1.3");
+
+ #Test 7: Modify the CertificateVerify sigalg from rsa_pss_rsae_sha256 to
+ # rsa_pss_pss_sha256. This should fail because the public key OID
+ # in the certificate is rsaEncryption and not rsassaPss
+ $proxy->filter(\&modify_cert_verify_sigalg);
+ $proxy->clear();
+ $proxy->start();
+ ok(TLSProxy::Message->fail,
+ "Mismatch between CertVerify sigalg and public key OID");
+}
+
+SKIP: {
+ skip "EC or TLSv1.3 disabled", 1
+ if disabled("tls1_3") || disabled("ec");
+ #Test 8: Sending a valid sig algs list but not including a sig type that
+ # matches the certificate should fail in TLSv1.3.
+ $proxy->clear();
+ $proxy->clientflags("-sigalgs ECDSA+SHA256");
+ $proxy->filter(undef);
+ $proxy->start();
+ ok(TLSProxy::Message->fail, "No matching TLSv1.3 sigalgs");
+}
+
+SKIP: {
+ skip "EC, TLSv1.3 or TLSv1.2 disabled", 1
+ if disabled("tls1_2") || disabled("tls1_3") || disabled("ec");
+
+ #Test 9: Sending a full list of TLSv1.3 sig algs but negotiating TLSv1.2
+ # should succeed
+ $proxy->clear();
+ $proxy->serverflags("-no_tls1_3");
+ $proxy->ciphers("ECDHE-RSA-AES128-SHA");
+ $proxy->filter(undef);
+ $proxy->start();
+ ok(TLSProxy::Message->success, "TLSv1.3 client TLSv1.2 server");
+}
+
+SKIP: {
+ skip "EC or TLSv1.2 disabled", 10 if disabled("tls1_2") || disabled("ec");
+
+ $proxy->filter(\&sigalgs_filter);
+
+ #Test 10: Sending no sig algs extension in TLSv1.2 should succeed at
+ # security level 1
+ $proxy->clear();
+ $testtype = NO_SIG_ALGS_EXT;
+ $proxy->clientflags("-no_tls1_3 -cipher DEFAULT\@SECLEVEL=1");
+ $proxy->ciphers("ECDHE-RSA-AES128-SHA\@SECLEVEL=1");
+ $proxy->start();
+ ok(TLSProxy::Message->success, "No TLSv1.2 sigalgs seclevel 1");
+
+ #Test 11: Sending no sig algs extension in TLSv1.2 should fail at security
+ # level 2 since it will try to use SHA1. Testing client at level 1,
+ # server level 2.
+ $proxy->clear();
+ $testtype = NO_SIG_ALGS_EXT;
+ $proxy->clientflags("-tls1_2 -cipher DEFAULT\@SECLEVEL=1");
+ $proxy->ciphers("DEFAULT\@SECLEVEL=2");
+ $proxy->start();
+ ok(TLSProxy::Message->fail, "No TLSv1.2 sigalgs server seclevel 2");
+
+ #Test 12: Sending no sig algs extension in TLSv1.2 should fail at security
+ # level 2 since it will try to use SHA1. Testing client at level 2,
+ # server level 1.
+ $proxy->clear();
+ $testtype = NO_SIG_ALGS_EXT;
+ $proxy->clientflags("-tls1_2 -cipher DEFAULT\@SECLEVEL=2");
+ $proxy->ciphers("DEFAULT\@SECLEVEL=1");
+ $proxy->start();
+ ok(TLSProxy::Message->fail, "No TLSv1.2 sigalgs client seclevel 2");
+
+ #Test 13: Sending an empty sig algs extension in TLSv1.2 should fail
+ $proxy->clear();
+ $testtype = EMPTY_SIG_ALGS_EXT;
+ $proxy->clientflags("-no_tls1_3");
+ $proxy->ciphers("ECDHE-RSA-AES128-SHA");
+ $proxy->start();
+ ok(TLSProxy::Message->fail, "Empty TLSv1.2 sigalgs");
+
+ #Test 14: Sending a list with no recognised sig algs in TLSv1.2 should fail
+ $proxy->clear();
+ $testtype = NO_KNOWN_SIG_ALGS;
+ $proxy->clientflags("-no_tls1_3");
+ $proxy->ciphers("ECDHE-RSA-AES128-SHA");
+ $proxy->start();
+ ok(TLSProxy::Message->fail, "No known TLSv1.3 sigalgs");
+
+ #Test 15: Sending a sig algs list without pss for an RSA cert in TLSv1.2
+ # should succeed
+ $proxy->clear();
+ $testtype = NO_PSS_SIG_ALGS;
+ $proxy->clientflags("-no_tls1_3");
+ $proxy->ciphers("ECDHE-RSA-AES128-SHA");
+ $proxy->start();
+ ok(TLSProxy::Message->success, "No PSS TLSv1.2 sigalgs");
+
+ #Test 16: Sending only TLSv1.3 PSS sig algs in TLSv1.2 should succeed
+ $proxy->clear();
+ $testtype = PSS_ONLY_SIG_ALGS;
+ $proxy->serverflags("-no_tls1_3");
+ $proxy->ciphers("ECDHE-RSA-AES128-SHA");
+ $proxy->start();
+ ok(TLSProxy::Message->success, "PSS only sigalgs in TLSv1.2");
+
+ #Test 17: Responding with a sig alg we did not send in TLSv1.2 should fail
+ # We send rsa_pkcs1_sha256 and respond with rsa_pss_rsae_sha256
+ # TODO(TLS1.3): Add a similar test to the TLSv1.3 section above
+ # when we have an API capable of configuring the TLSv1.3 sig algs
+ $proxy->clear();
+ $testtype = PSS_ONLY_SIG_ALGS;
+ $proxy->clientflags("-no_tls1_3 -sigalgs RSA+SHA256");
+ $proxy->ciphers("ECDHE-RSA-AES128-SHA");
+ $proxy->start();
+ ok(TLSProxy::Message->fail, "Sigalg we did not send in TLSv1.2");
+
+ #Test 18: Sending a valid sig algs list but not including a sig type that
+ # matches the certificate should fail in TLSv1.2
+ $proxy->clear();
+ $proxy->clientflags("-no_tls1_3 -sigalgs ECDSA+SHA256");
+ $proxy->ciphers("ECDHE-RSA-AES128-SHA");
+ $proxy->filter(undef);
+ $proxy->start();
+ ok(TLSProxy::Message->fail, "No matching TLSv1.2 sigalgs");
+ $proxy->filter(\&sigalgs_filter);
+
+ #Test 19: No sig algs extension, ECDSA cert, TLSv1.2 should succeed
+ $proxy->clear();
+ $testtype = NO_SIG_ALGS_EXT;
+ $proxy->clientflags("-no_tls1_3");
+ $proxy->serverflags("-cert " . srctop_file("test", "certs",
+ "server-ecdsa-cert.pem") .
+ " -key " . srctop_file("test", "certs",
+ "server-ecdsa-key.pem")),
+ $proxy->ciphers("ECDHE-ECDSA-AES128-SHA");
+ $proxy->start();
+ ok(TLSProxy::Message->success, "No TLSv1.2 sigalgs, ECDSA");
+}
+
+my ($dsa_status, $sha1_status, $sha224_status);
+SKIP: {
+ skip "TLSv1.3 disabled", 2 if disabled("tls1_3") || disabled("dsa");
+ #Test 20: signature_algorithms with 1.3-only ClientHello
+ $testtype = PURE_SIGALGS;
+ $dsa_status = $sha1_status = $sha224_status = 0;
+ $proxy->clear();
+ $proxy->clientflags("-tls1_3");
+ $proxy->filter(\&modify_sigalgs_filter);
+ $proxy->start();
+ ok($dsa_status && $sha1_status && $sha224_status,
+ "DSA/SHA2 sigalg sent for 1.3-only ClientHello");
+
+ #Test 21: signature_algorithms with backwards compatible ClientHello
+ SKIP: {
+ skip "TLSv1.2 disabled", 1 if disabled("tls1_2");
+ $testtype = COMPAT_SIGALGS;
+ $dsa_status = $sha1_status = $sha224_status = 0;
+ $proxy->clear();
+ $proxy->filter(\&modify_sigalgs_filter);
+ $proxy->start();
+ ok($dsa_status && $sha1_status && $sha224_status,
+ "DSA sigalg not sent for compat ClientHello");
+ }
+}
+
+SKIP: {
+ skip "TLSv1.3 disabled", 3 if disabled("tls1_3");
+ #Test 22: Insert signature_algorithms_cert that match normal sigalgs
+ $testtype = SIGALGS_CERT_ALL;
+ $proxy->clear();
+ $proxy->filter(\&modify_sigalgs_cert_filter);
+ $proxy->start();
+ ok(TLSProxy::Message->success, "sigalgs_cert in TLSv1.3");
+
+ #Test 23: Insert signature_algorithms_cert that forces PKCS#1 cert
+ $testtype = SIGALGS_CERT_PKCS;
+ $proxy->clear();
+ $proxy->filter(\&modify_sigalgs_cert_filter);
+ $proxy->start();
+ ok(TLSProxy::Message->success, "sigalgs_cert in TLSv1.3 with PKCS#1 cert");
+
+ #Test 24: Insert signature_algorithms_cert that fails
+ $testtype = SIGALGS_CERT_INVALID;
+ $proxy->clear();
+ $proxy->filter(\&modify_sigalgs_cert_filter);
+ $proxy->start();
+ ok(TLSProxy::Message->fail, "No matching certificate for sigalgs_cert");
+}
+
+SKIP: {
+ skip "TLS 1.3 disabled", 2 if disabled("tls1_3");
+ #Test 25: Send an unrecognized signature_algorithms_cert
+ # We should be able to skip over the unrecognized value and use a
+ # valid one that appears later in the list.
+ $proxy->clear();
+ $proxy->filter(\&inject_unrecognized_sigalg);
+ $proxy->clientflags("-tls1_3");
+ # Use -xcert to get SSL_check_chain() to run in the cert_cb. This is
+ # needed to trigger (e.g.) CVE-2020-1967
+ $proxy->serverflags("" .
+ " -xcert " . srctop_file("test", "certs", "servercert.pem") .
+ " -xkey " . srctop_file("test", "certs", "serverkey.pem") .
+ " -xchain " . srctop_file("test", "certs", "rootcert.pem"));
+ $testtype = UNRECOGNIZED_SIGALGS_CERT;
+ $proxy->start();
+ ok(TLSProxy::Message->success(), "Unrecognized sigalg_cert in ClientHello");
+
+ #Test 26: Send an unrecognized signature_algorithms
+ # We should be able to skip over the unrecognized value and use a
+ # valid one that appears later in the list.
+ $proxy->clear();
+ $proxy->filter(\&inject_unrecognized_sigalg);
+ $proxy->clientflags("-tls1_3");
+ $proxy->serverflags("" .
+ " -xcert " . srctop_file("test", "certs", "servercert.pem") .
+ " -xkey " . srctop_file("test", "certs", "serverkey.pem") .
+ " -xchain " . srctop_file("test", "certs", "rootcert.pem"));
+ $testtype = UNRECOGNIZED_SIGALG;
+ $proxy->start();
+ ok(TLSProxy::Message->success(), "Unrecognized sigalg in ClientHello");
+}
+
+
+
+sub sigalgs_filter
+{
+ my $proxy = shift;
+
+ # We're only interested in the initial ClientHello
+ if ($proxy->flight != 0) {
+ return;
+ }
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == TLSProxy::Message::MT_CLIENT_HELLO) {
+ if ($testtype == NO_SIG_ALGS_EXT) {
+ $message->delete_extension(TLSProxy::Message::EXT_SIG_ALGS);
+ } else {
+ my $sigalg;
+ if ($testtype == EMPTY_SIG_ALGS_EXT) {
+ $sigalg = pack "C2", 0x00, 0x00;
+ } elsif ($testtype == NO_KNOWN_SIG_ALGS) {
+ $sigalg = pack "C4", 0x00, 0x02, 0xff, 0xff;
+ } elsif ($testtype == NO_PSS_SIG_ALGS) {
+ #No PSS sig algs - just send rsa_pkcs1_sha256
+ $sigalg = pack "C4", 0x00, 0x02, 0x04, 0x01;
+ } else {
+ #PSS sig algs only - just send rsa_pss_rsae_sha256
+ $sigalg = pack "C4", 0x00, 0x02, 0x08, 0x04;
+ }
+ $message->set_extension(TLSProxy::Message::EXT_SIG_ALGS, $sigalg);
+ }
+
+ $message->repack();
+ }
+ }
+}
+
+sub modify_sigalgs_filter
+{
+ my $proxy = shift;
+
+ # We're only interested in the initial ClientHello
+ return if ($proxy->flight != 0);
+
+ foreach my $message (@{$proxy->message_list}) {
+ my $ext;
+ my @algs;
+
+ if ($message->mt == TLSProxy::Message::MT_CLIENT_HELLO) {
+ if ($testtype == PURE_SIGALGS) {
+ my $ok = 1;
+ $ext = $message->extension_data->{TLSProxy::Message::EXT_SIG_ALGS};
+ @algs = unpack('S>*', $ext);
+ # unpack will unpack the length as well
+ shift @algs;
+ foreach (@algs) {
+ if ($_ == TLSProxy::Message::SIG_ALG_DSA_SHA256
+ || $_ == TLSProxy::Message::SIG_ALG_DSA_SHA384
+ || $_ == TLSProxy::Message::SIG_ALG_DSA_SHA512
+ || $_ == TLSProxy::Message::OSSL_SIG_ALG_DSA_SHA224
+ || $_ == TLSProxy::Message::SIG_ALG_RSA_PKCS1_SHA1
+ || $_ == TLSProxy::Message::SIG_ALG_DSA_SHA1
+ || $_ == TLSProxy::Message::SIG_ALG_ECDSA_SHA1) {
+ $ok = 0;
+ }
+ }
+ $sha1_status = $dsa_status = $sha224_status = 1 if ($ok);
+ } elsif ($testtype == COMPAT_SIGALGS) {
+ $ext = $message->extension_data->{TLSProxy::Message::EXT_SIG_ALGS};
+ @algs = unpack('S>*', $ext);
+ # unpack will unpack the length as well
+ shift @algs;
+ foreach (@algs) {
+ if ($_ == TLSProxy::Message::SIG_ALG_DSA_SHA256
+ || $_ == TLSProxy::Message::SIG_ALG_DSA_SHA384
+ || $_ == TLSProxy::Message::SIG_ALG_DSA_SHA512) {
+ $dsa_status = 1;
+ }
+ if ($_ == TLSProxy::Message::SIG_ALG_RSA_PKCS1_SHA1
+ || $_ == TLSProxy::Message::SIG_ALG_DSA_SHA1
+ || $_ == TLSProxy::Message::SIG_ALG_ECDSA_SHA1) {
+ $sha1_status = 1;
+ }
+ if ($_ == TLSProxy::Message::OSSL_SIG_ALG_RSA_PKCS1_SHA224
+ || $_ == TLSProxy::Message::OSSL_SIG_ALG_DSA_SHA224
+ || $_ == TLSProxy::Message::OSSL_SIG_ALG_ECDSA_SHA224) {
+ $sha224_status = 1;
+ }
+ }
+ }
+ }
+ }
+}
+
+sub modify_sigalgs_cert_filter
+{
+ my $proxy = shift;
+
+ # We're only interested in the initial ClientHello
+ if ($proxy->flight != 0) {
+ return;
+ }
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == TLSProxy::Message::MT_CLIENT_HELLO) {
+ my $sigs;
+ # two byte length at front of sigs, then two-byte sigschemes
+ if ($testtype == SIGALGS_CERT_ALL) {
+ $sigs = pack "C26", 0x00, 0x18,
+ # rsa_pkcs_sha{256,512} rsa_pss_rsae_sha{256,512}
+ 0x04, 0x01, 0x06, 0x01, 0x08, 0x04, 0x08, 0x06,
+ # ed25518 ed448 rsa_pss_pss_sha{256,512}
+ 0x08, 0x07, 0x08, 0x08, 0x08, 0x09, 0x08, 0x0b,
+ # ecdsa_secp{256,512} rsa+sha1 ecdsa+sha1
+ 0x04, 0x03, 0x06, 0x03, 0x02, 0x01, 0x02, 0x03;
+ } elsif ($testtype == SIGALGS_CERT_PKCS) {
+ $sigs = pack "C10", 0x00, 0x08,
+ # rsa_pkcs_sha{256,384,512,1}
+ 0x04, 0x01, 0x05, 0x01, 0x06, 0x01, 0x02, 0x01;
+ } elsif ($testtype == SIGALGS_CERT_INVALID) {
+ $sigs = pack "C4", 0x00, 0x02,
+ # unregistered codepoint
+ 0xb2, 0x6f;
+ }
+ $message->set_extension(TLSProxy::Message::EXT_SIG_ALGS_CERT, $sigs);
+ $message->repack();
+ }
+ }
+}
+
+sub modify_cert_verify_sigalg
+{
+ my $proxy = shift;
+
+ # We're only interested in the CertificateVerify
+ if ($proxy->flight != 1) {
+ return;
+ }
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == TLSProxy::Message::MT_CERTIFICATE_VERIFY) {
+ $message->sigalg(TLSProxy::Message::SIG_ALG_RSA_PSS_PSS_SHA256);
+ $message->repack();
+ }
+ }
+}
+
+sub inject_unrecognized_sigalg
+{
+ my $proxy = shift;
+ my $type;
+
+ # We're only interested in the initial ClientHello
+ if ($proxy->flight != 0) {
+ return;
+ }
+ if ($testtype == UNRECOGNIZED_SIGALGS_CERT) {
+ $type = TLSProxy::Message::EXT_SIG_ALGS_CERT;
+ } elsif ($testtype == UNRECOGNIZED_SIGALG) {
+ $type = TLSProxy::Message::EXT_SIG_ALGS;
+ } else {
+ return;
+ }
+
+ my $ext = pack "C8",
+ 0x00, 0x06, #Extension length
+ 0xfe, 0x18, #private use
+ 0x04, 0x01, #rsa_pkcs1_sha256
+ 0x08, 0x04; #rsa_pss_rsae_sha256;
+ my $message = ${$proxy->message_list}[0];
+ $message->set_extension($type, $ext);
+ $message->repack;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslsignature.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslsignature.t
new file mode 100644
index 000000000..034950e26
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslsignature.t
@@ -0,0 +1,144 @@
+#! /usr/bin/env perl
+# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file bldtop_dir/;
+use OpenSSL::Test::Utils;
+use TLSProxy::Proxy;
+
+my $test_name = "test_sslsignature";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLS enabled"
+ if alldisabled(available_protocols("tls"));
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+my $proxy = TLSProxy::Proxy->new(
+ undef,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+use constant {
+ NO_CORRUPTION => 0,
+ CORRUPT_SERVER_CERT_VERIFY => 1,
+ CORRUPT_CLIENT_CERT_VERIFY => 2,
+ CORRUPT_TLS1_2_SERVER_KEY_EXCHANGE => 3,
+};
+
+$proxy->filter(\&signature_filter);
+
+#Test 1: No corruption should succeed
+my $testtype = NO_CORRUPTION;
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 4;
+ok(TLSProxy::Message->success, "No corruption");
+
+SKIP: {
+ skip "TLSv1.3 disabled", 1 if disabled("tls1_3");
+
+ #Test 2: Corrupting a server CertVerify signature in TLSv1.3 should fail
+ $proxy->clear();
+ $testtype = CORRUPT_SERVER_CERT_VERIFY;
+ $proxy->start();
+ ok(TLSProxy::Message->fail, "Corrupt server TLSv1.3 CertVerify");
+
+ #Test x: Corrupting a client CertVerify signature in TLSv1.3 should fail
+ #$proxy->clear();
+ #$testtype = CORRUPT_CLIENT_CERT_VERIFY;
+ #$proxy->serverflags("-Verify 5");
+ #$proxy->clientflags("-cert ".srctop_file("apps", "server.pem"));
+ #$proxy->start();
+ #ok(TLSProxy::Message->fail, "Corrupt client TLSv1.3 CertVerify");
+ #TODO(TLS1.3): This test fails due to a problem in s_server/TLSProxy.
+ #Currently a connection is counted as "successful" if the client ends it
+ #with a close_notify. In TLSProxy the client initiates the closure of the
+ #connection so really we should not count it as successful until s_server
+ #has also responded with a close_notify. However s_server never sends a
+ #close_notify - it just closes the connection. Fixing this would be a
+ #significant change to the long established behaviour of s_server.
+ #Unfortunately in this test, it is the server that notices the incorrect
+ #signature and responds with an appropriate alert. However s_client never
+ #sees that because it occurs after the server Finished has been sent.
+ #Therefore s_client just continues to send its application data and sends
+ #its close_notify regardless. TLSProxy sees this and thinks that the
+ #connection was successful when in fact it was not. There isn't an easy fix
+ #for this, so leaving this test commented out for now.
+}
+
+SKIP: {
+ skip "TLS <= 1.2 disabled", 2
+ if alldisabled(("ssl3", "tls1", "tls1_1", "tls1_2"));
+
+ #Test 3: Corrupting a CertVerify signature in <=TLSv1.2 should fail
+ $proxy->clear();
+ $testtype = CORRUPT_CLIENT_CERT_VERIFY;
+ $proxy->serverflags("-Verify 5");
+ $proxy->clientflags("-no_tls1_3 -cert ".srctop_file("apps", "server.pem"));
+ $proxy->start();
+ ok(TLSProxy::Message->fail, "Corrupt <=TLSv1.2 CertVerify");
+
+ SKIP: {
+ skip "DH disabled", 1 if disabled("dh");
+
+ #Test 4: Corrupting a ServerKeyExchange signature in <=TLSv1.2 should
+ #fail
+ $proxy->clear();
+ $testtype = CORRUPT_TLS1_2_SERVER_KEY_EXCHANGE;
+ $proxy->clientflags("-no_tls1_3");
+ $proxy->cipherc('DHE-RSA-AES128-SHA');
+ $proxy->ciphers('DHE-RSA-AES128-SHA');
+ $proxy->start();
+ ok(TLSProxy::Message->fail, "Corrupt <=TLSv1.2 ServerKeyExchange");
+ }
+}
+
+sub signature_filter
+{
+ my $proxy = shift;
+ my $flight;
+ my $mt = TLSProxy::Message::MT_CERTIFICATE_VERIFY;
+
+ if ($testtype == CORRUPT_SERVER_CERT_VERIFY
+ || $testtype == CORRUPT_TLS1_2_SERVER_KEY_EXCHANGE
+ || (!disabled("tls1_3") && $testtype == NO_CORRUPTION)) {
+ $flight = 1;
+ } else {
+ $flight = 2;
+ }
+
+ # We're only interested in the initial server flight
+ return if ($proxy->flight != $flight);
+
+ $mt = TLSProxy::Message::MT_SERVER_KEY_EXCHANGE
+ if ($testtype == CORRUPT_TLS1_2_SERVER_KEY_EXCHANGE);
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == $mt) {
+ my $sig = $message->signature();
+ my $sigbase = substr($sig, 0, -1);
+ my $sigend = unpack("C", substr($sig, -1));
+
+ #Flip bits in final byte of signature to corrupt the sig
+ $sigend ^= 0xff unless $testtype == NO_CORRUPTION;
+
+ $message->signature($sigbase.pack("C", $sigend));
+ $message->repack();
+ }
+ }
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslskewith0p.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslskewith0p.t
new file mode 100644
index 000000000..53a8b5185
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslskewith0p.t
@@ -0,0 +1,66 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file bldtop_dir/;
+use OpenSSL::Test::Utils;
+use TLSProxy::Proxy;
+
+my $test_name = "test_sslskewith0p";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "dh is not supported by this OpenSSL build"
+ if disabled("dh");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLS enabled"
+ if alldisabled(available_protocols("tls"));
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+my $proxy = TLSProxy::Proxy->new(
+ \&ske_0_p_filter,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+#We must use an anon DHE cipher for this test
+$proxy->cipherc('ADH-AES128-SHA:@SECLEVEL=0');
+$proxy->ciphers('ADH-AES128-SHA:@SECLEVEL=0');
+
+$proxy->clientflags("-no_tls1_3");
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 1;
+ok(TLSProxy::Message->fail, "ServerKeyExchange with 0 p");
+
+sub ske_0_p_filter
+{
+ my $proxy = shift;
+
+ # We're only interested in the SKE - always in flight 1
+ if ($proxy->flight != 1) {
+ return;
+ }
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == TLSProxy::Message::MT_SERVER_KEY_EXCHANGE) {
+ #Set p to a value of 0
+ $message->p(pack('C', 0));
+
+ $message->repack();
+ }
+ }
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslversions.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslversions.t
new file mode 100644
index 000000000..c2d76239d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslversions.t
@@ -0,0 +1,185 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file bldtop_dir/;
+use OpenSSL::Test::Utils;
+use TLSProxy::Proxy;
+use File::Temp qw(tempfile);
+
+use constant {
+ REVERSE_ORDER_VERSIONS => 1,
+ UNRECOGNISED_VERSIONS => 2,
+ NO_EXTENSION => 3,
+ EMPTY_EXTENSION => 4,
+ TLS1_1_AND_1_0_ONLY => 5,
+ WITH_TLS1_4 => 6,
+ BAD_LEGACY_VERSION => 7
+};
+
+my $testtype;
+
+my $test_name = "test_sslversions";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLS1.3, TLS1.2 and TLS1.1 enabled"
+ if disabled("tls1_3") || disabled("tls1_2") || disabled("tls1_1");
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+
+my $proxy = TLSProxy::Proxy->new(
+ undef,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+#We're just testing various negative and unusual scenarios here. ssltest with
+#02-protocol-version.conf should check all the various combinations of normal
+#version neg
+
+#Test 1: An empty supported_versions extension should not succeed
+$testtype = EMPTY_EXTENSION;
+$proxy->filter(\&modify_supported_versions_filter);
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 8;
+ok(TLSProxy::Message->fail(), "Empty supported versions");
+
+#Test 2: supported_versions extension with no recognised versions should not
+#succeed
+$proxy->clear();
+$testtype = UNRECOGNISED_VERSIONS;
+$proxy->start();
+ok(TLSProxy::Message->fail(), "No recognised versions");
+
+#Test 3: No supported versions extensions should succeed and select TLSv1.2
+$proxy->clear();
+$testtype = NO_EXTENSION;
+$proxy->start();
+my $record = pop @{$proxy->record_list};
+ok(TLSProxy::Message->success()
+ && $record->version() == TLSProxy::Record::VERS_TLS_1_2,
+ "No supported versions extension");
+
+#Test 4: No supported versions extensions should fail if only TLS1.3 available
+$proxy->clear();
+$proxy->serverflags("-tls1_3");
+$proxy->start();
+ok(TLSProxy::Message->fail(), "No supported versions extension (only TLS1.3)");
+
+#Test 5: supported versions extension with best version last should succeed
+#and select TLSv1.3
+$proxy->clear();
+$testtype = REVERSE_ORDER_VERSIONS;
+$proxy->start();
+$record = pop @{$proxy->record_list};
+ok(TLSProxy::Message->success()
+ && $record->version() == TLSProxy::Record::VERS_TLS_1_2
+ && TLSProxy::Proxy->is_tls13(),
+ "Reverse order versions");
+
+#Test 6: no TLSv1.3 or TLSv1.2 version in supported versions extension, but
+#TLSv1.1 and TLSv1.0 are present. Should just use TLSv1.1 and succeed
+$proxy->clear();
+$testtype = TLS1_1_AND_1_0_ONLY;
+$proxy->start();
+$record = pop @{$proxy->record_list};
+ok(TLSProxy::Message->success()
+ && $record->version() == TLSProxy::Record::VERS_TLS_1_1,
+ "TLS1.1 and TLS1.0 in supported versions extension only");
+
+#Test 7: TLS1.4 and TLS1.3 in supported versions. Should succeed and use TLS1.3
+$proxy->clear();
+$testtype = WITH_TLS1_4;
+$proxy->start();
+$record = pop @{$proxy->record_list};
+ok(TLSProxy::Message->success()
+ && $record->version() == TLSProxy::Record::VERS_TLS_1_2
+ && TLSProxy::Proxy->is_tls13(),
+ "TLS1.4 in supported versions extension");
+
+#Test 8: Set the legacy version to SSLv3 with supported versions. Should fail
+$proxy->clear();
+$testtype = BAD_LEGACY_VERSION;
+$proxy->start();
+ok(TLSProxy::Message->fail(), "Legacy version is SSLv3 with supported versions");
+
+sub modify_supported_versions_filter
+{
+ my $proxy = shift;
+
+ if ($proxy->flight == 1) {
+ # Change the ServerRandom so that the downgrade sentinel doesn't cause
+ # the connection to fail
+ my $message = ${$proxy->message_list}[1];
+ return if (!defined $message);
+
+ $message->random("\0"x32);
+ $message->repack();
+ return;
+ }
+
+ # We're only interested in the initial ClientHello
+ if ($proxy->flight != 0) {
+ return;
+ }
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == TLSProxy::Message::MT_CLIENT_HELLO) {
+ my $ext;
+ if ($testtype == REVERSE_ORDER_VERSIONS) {
+ $ext = pack "C5",
+ 0x04, # Length
+ 0x03, 0x03, #TLSv1.2
+ 0x03, 0x04; #TLSv1.3
+ } elsif ($testtype == UNRECOGNISED_VERSIONS) {
+ $ext = pack "C5",
+ 0x04, # Length
+ 0x04, 0x04, #Some unrecognised version
+ 0x04, 0x03; #Another unrecognised version
+ } elsif ($testtype == TLS1_1_AND_1_0_ONLY) {
+ $ext = pack "C5",
+ 0x04, # Length
+ 0x03, 0x02, #TLSv1.1
+ 0x03, 0x01; #TLSv1.0
+ } elsif ($testtype == WITH_TLS1_4) {
+ $ext = pack "C5",
+ 0x04, # Length
+ 0x03, 0x05, #TLSv1.4
+ 0x03, 0x04; #TLSv1.3
+ }
+ if ($testtype == REVERSE_ORDER_VERSIONS
+ || $testtype == UNRECOGNISED_VERSIONS
+ || $testtype == TLS1_1_AND_1_0_ONLY
+ || $testtype == WITH_TLS1_4) {
+ $message->set_extension(
+ TLSProxy::Message::EXT_SUPPORTED_VERSIONS, $ext);
+ } elsif ($testtype == EMPTY_EXTENSION) {
+ $message->set_extension(
+ TLSProxy::Message::EXT_SUPPORTED_VERSIONS, "");
+ } elsif ($testtype == NO_EXTENSION) {
+ $message->delete_extension(
+ TLSProxy::Message::EXT_SUPPORTED_VERSIONS);
+ } else {
+ # BAD_LEGACY_VERSION
+ $message->client_version(TLSProxy::Record::VERS_SSL_3_0);
+ }
+
+ $message->repack();
+ }
+ }
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslvertol.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslvertol.t
new file mode 100644
index 000000000..02d845712
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_sslvertol.t
@@ -0,0 +1,138 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file bldtop_dir/;
+use OpenSSL::Test::Utils;
+use TLSProxy::Proxy;
+
+my $test_name = "test_sslextension";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLS enabled"
+ if alldisabled(available_protocols("tls"));
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+my $proxy = TLSProxy::Proxy->new(
+ \&vers_tolerance_filter,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+my @available_tls_versions = ();
+foreach (available_protocols("tls")) {
+ unless (disabled($_)) {
+ note("Checking enabled protocol $_");
+ m|^([a-z]+)(\d)(_\d)?|;
+ my $versionname;
+ if (defined $3) {
+ $versionname = 'TLSProxy::Record::VERS_'.uc($1).'_'.$2.$3;
+ note("'$1', '$2', '$3' => $versionname");
+ } else {
+ $versionname = 'TLSProxy::Record::VERS_'.uc($1).'_'.$2.'_0';
+ note("'$1', '$2' => $versionname");
+ }
+ push @available_tls_versions, eval $versionname;
+ }
+}
+note("TLS versions we can expect: ", join(", ", @available_tls_versions));
+
+#This file does tests without the supported_versions extension.
+#See 70-test_sslversions.t for tests with supported versions.
+
+#Test 1: Asking for TLS1.4 should pass and negotiate the maximum
+#available TLS version according to configuration below TLS1.3
+my $client_version = TLSProxy::Record::VERS_TLS_1_4;
+my $previous_version = tls_version_below(TLSProxy::Record::VERS_TLS_1_3);
+$proxy->clientflags("-no_tls1_3");
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 3;
+SKIP: {
+ skip "There are too few protocols enabled for test 1", 1
+ unless defined $previous_version;
+
+ my $record = pop @{$proxy->record_list};
+ ok((note("Record version received: ".$record->version()),
+ TLSProxy::Message->success())
+ && $record->version() == $previous_version,
+ "Version tolerance test, below TLS 1.4 and not TLS 1.3");
+}
+
+#Test 2: Asking for TLS1.3 with that disabled should succeed and negotiate
+#the highest configured TLS version below that.
+$client_version = TLSProxy::Record::VERS_TLS_1_3;
+$previous_version = tls_version_below($client_version);
+SKIP: {
+ skip "There are too few protocols enabled for test 2", 1
+ unless defined $previous_version;
+
+ $proxy->clear();
+ $proxy->clientflags("-no_tls1_3");
+ $proxy->start();
+ my $record = pop @{$proxy->record_list};
+ ok((note("Record version received: ".$record->version()),
+ TLSProxy::Message->success())
+ && $record->version() == $previous_version,
+ "Version tolerance test, max version but not TLS 1.3");
+}
+
+#Test 3: Testing something below SSLv3 should fail. We must disable TLS 1.3
+#to avoid having the 'supported_versions' extension kick in and override our
+#desires.
+$client_version = TLSProxy::Record::VERS_SSL_3_0 - 1;
+$proxy->clear();
+$proxy->clientflags("-no_tls1_3");
+$proxy->start();
+my $record = pop @{$proxy->record_list};
+ok((note("Record version received: ".
+ (defined $record ? $record->version() : "none")),
+ TLSProxy::Message->fail()),
+ "Version tolerance test, SSL < 3.0");
+
+sub vers_tolerance_filter
+{
+ my $proxy = shift;
+
+ # We're only interested in the initial ClientHello
+ if ($proxy->flight != 0) {
+ return;
+ }
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == TLSProxy::Message::MT_CLIENT_HELLO) {
+ #Set the client version
+ #Anything above the max supported version should succeed
+ #Anything below SSLv3 should fail
+ $message->client_version($client_version);
+ $message->repack();
+ }
+ }
+}
+
+sub tls_version_below {
+ if (@_) {
+ my $term = shift;
+ my $res = undef;
+
+ foreach (@available_tls_versions) {
+ $res = $_ if $_ < $term;
+ }
+ return $res;
+ }
+ return $available_tls_versions[-1];
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13alerts.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13alerts.t
new file mode 100644
index 000000000..7111d404d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13alerts.t
@@ -0,0 +1,56 @@
+#! /usr/bin/env perl
+# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file bldtop_dir/;
+use OpenSSL::Test::Utils;
+use TLSProxy::Proxy;
+
+my $test_name = "test_tls13alerts";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLS1.3 enabled"
+ if disabled("tls1_3");
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+
+my $proxy = TLSProxy::Proxy->new(
+ undef,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+#Test 1: We test that a server can handle an unencrypted alert when normally the
+# next message is encrypted
+$proxy->filter(\&alert_filter);
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 1;
+my $alert = TLSProxy::Message->alert();
+ok(TLSProxy::Message->fail() && !$alert->server() && !$alert->encrypted(), "Client sends an unecrypted alert");
+
+sub alert_filter
+{
+ my $proxy = shift;
+
+ if ($proxy->flight != 1) {
+ return;
+ }
+
+ ${$proxy->message_list}[1]->session_id_len(1);
+ ${$proxy->message_list}[1]->repack();
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13cookie.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13cookie.t
new file mode 100644
index 000000000..c1afb864e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13cookie.t
@@ -0,0 +1,111 @@
+#! /usr/bin/env perl
+# Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file bldtop_dir/;
+use OpenSSL::Test::Utils;
+use TLSProxy::Proxy;
+
+my $test_name = "test_tls13cookie";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLS1.3 enabled"
+ if disabled("tls1_3");
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+
+use constant {
+ COOKIE_ONLY => 0,
+ COOKIE_AND_KEY_SHARE => 1
+};
+
+my $proxy = TLSProxy::Proxy->new(
+ undef,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+my $cookieseen = 0;
+my $testtype;
+
+#Test 1: Inserting a cookie into an HRR should see it echoed in the ClientHello
+$testtype = COOKIE_ONLY;
+$proxy->filter(\&cookie_filter);
+$proxy->serverflags("-curves X25519");
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 2;
+ok(TLSProxy::Message->success() && $cookieseen == 1, "Cookie seen");
+
+#Test 2: Same as test 1 but should also work where a new key_share is also
+# required
+$testtype = COOKIE_AND_KEY_SHARE;
+$proxy->clear();
+$proxy->clientflags("-curves P-256:X25519");
+$proxy->serverflags("-curves X25519");
+$proxy->start();
+ok(TLSProxy::Message->success() && $cookieseen == 1, "Cookie seen");
+
+sub cookie_filter
+{
+ my $proxy = shift;
+
+ # We're only interested in the HRR and both ClientHellos
+ return if ($proxy->flight > 2);
+
+ my $ext = pack "C8",
+ 0x00, 0x06, #Cookie Length
+ 0x00, 0x01, #Dummy cookie data (6 bytes)
+ 0x02, 0x03,
+ 0x04, 0x05;
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == TLSProxy::Message::MT_SERVER_HELLO
+ && ${$message->records}[0]->flight == 1) {
+ $message->delete_extension(TLSProxy::Message::EXT_KEY_SHARE)
+ if ($testtype == COOKIE_ONLY);
+ $message->set_extension(TLSProxy::Message::EXT_COOKIE, $ext);
+ $message->repack();
+ } elsif ($message->mt == TLSProxy::Message::MT_CLIENT_HELLO) {
+ if (${$message->records}[0]->flight == 0) {
+ if ($testtype == COOKIE_ONLY) {
+ my $ext = pack "C7",
+ 0x00, 0x05, #List Length
+ 0x00, 0x17, #P-256
+ 0x00, 0x01, #key_exchange data length
+ 0xff; #Dummy key_share data
+ # Trick the server into thinking we got an unacceptable
+ # key_share
+ $message->set_extension(
+ TLSProxy::Message::EXT_KEY_SHARE, $ext);
+ $message->repack();
+ }
+ } else {
+ #cmp can behave differently dependent on locale
+ no locale;
+ my $cookie =
+ $message->extension_data->{TLSProxy::Message::EXT_COOKIE};
+
+ return if !defined($cookie);
+
+ return if ($cookie cmp $ext) != 0;
+
+ $cookieseen = 1;
+ }
+ }
+ }
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13downgrade.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13downgrade.t
new file mode 100644
index 000000000..bdb360a7d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13downgrade.t
@@ -0,0 +1,126 @@
+#! /usr/bin/env perl
+# Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file bldtop_dir/;
+use OpenSSL::Test::Utils;
+use TLSProxy::Proxy;
+
+my $test_name = "test_tls13downgrade";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLS1.3 and TLS1.2 enabled"
+ if disabled("tls1_3") || disabled("tls1_2");
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+
+my $proxy = TLSProxy::Proxy->new(
+ undef,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+use constant {
+ DOWNGRADE_TO_TLS_1_2 => 0,
+ DOWNGRADE_TO_TLS_1_1 => 1,
+ FALLBACK_FROM_TLS_1_3 => 2,
+};
+
+#Test 1: Downgrade from TLSv1.3 to TLSv1.2
+$proxy->filter(\&downgrade_filter);
+my $testtype = DOWNGRADE_TO_TLS_1_2;
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 6;
+ok(TLSProxy::Message->fail(), "Downgrade TLSv1.3 to TLSv1.2");
+
+#Test 2: Downgrade from TLSv1.3 to TLSv1.1
+$proxy->clear();
+$testtype = DOWNGRADE_TO_TLS_1_1;
+$proxy->start();
+ok(TLSProxy::Message->fail(), "Downgrade TLSv1.3 to TLSv1.1");
+
+#Test 3: Downgrade from TLSv1.2 to TLSv1.1
+$proxy->clear();
+$proxy->clientflags("-no_tls1_3");
+$proxy->serverflags("-no_tls1_3");
+$proxy->start();
+ok(TLSProxy::Message->fail(), "Downgrade TLSv1.2 to TLSv1.1");
+
+#Test 4: Client falls back from TLSv1.3 (server does not support the fallback
+# SCSV)
+$proxy->clear();
+$testtype = FALLBACK_FROM_TLS_1_3;
+$proxy->clientflags("-fallback_scsv -no_tls1_3");
+$proxy->start();
+my $alert = TLSProxy::Message->alert();
+ok(TLSProxy::Message->fail()
+ && !$alert->server()
+ && $alert->description() == TLSProxy::Message::AL_DESC_ILLEGAL_PARAMETER,
+ "Fallback from TLSv1.3");
+
+SKIP: {
+ skip "TLSv1.1 disabled", 2 if disabled("tls1_1");
+ #Test 5: A client side protocol "hole" should not be detected as a downgrade
+ $proxy->clear();
+ $proxy->filter(undef);
+ $proxy->clientflags("-no_tls1_2");
+ $proxy->start();
+ ok(TLSProxy::Message->success(), "TLSv1.2 client-side protocol hole");
+
+ #Test 6: A server side protocol "hole" should not be detected as a downgrade
+ $proxy->clear();
+ $proxy->filter(undef);
+ $proxy->serverflags("-no_tls1_2");
+ $proxy->start();
+ ok(TLSProxy::Message->success(), "TLSv1.2 server-side protocol hole");
+}
+
+sub downgrade_filter
+{
+ my $proxy = shift;
+
+ # We're only interested in the initial ClientHello
+ if ($proxy->flight != 0) {
+ return;
+ }
+
+ my $message = ${$proxy->message_list}[0];
+
+ my $ext;
+ if ($testtype == FALLBACK_FROM_TLS_1_3) {
+ #The default ciphersuite we use for TLSv1.2 without any SCSV
+ my @ciphersuites = (TLSProxy::Message::CIPHER_RSA_WITH_AES_128_CBC_SHA);
+ $message->ciphersuite_len(2 * scalar @ciphersuites);
+ $message->ciphersuites(\@ciphersuites);
+ } else {
+ if ($testtype == DOWNGRADE_TO_TLS_1_2) {
+ $ext = pack "C3",
+ 0x02, # Length
+ 0x03, 0x03; #TLSv1.2
+ } else {
+ $ext = pack "C3",
+ 0x02, # Length
+ 0x03, 0x02; #TLSv1.1
+ }
+
+ $message->set_extension(TLSProxy::Message::EXT_SUPPORTED_VERSIONS, $ext);
+ }
+
+ $message->repack();
+}
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13hrr.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13hrr.t
new file mode 100644
index 000000000..e0b47ed35
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13hrr.t
@@ -0,0 +1,93 @@
+#! /usr/bin/env perl
+# Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file bldtop_dir/;
+use OpenSSL::Test::Utils;
+use TLSProxy::Proxy;
+
+my $test_name = "test_tls13hrr";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLS1.3 enabled"
+ if disabled("tls1_3");
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+
+my $proxy = TLSProxy::Proxy->new(
+ undef,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+use constant {
+ CHANGE_HRR_CIPHERSUITE => 0,
+ CHANGE_CH1_CIPHERSUITE => 1
+};
+
+#Test 1: A client should fail if the server changes the ciphersuite between the
+# HRR and the SH
+$proxy->filter(\&hrr_filter);
+$proxy->serverflags("-curves P-256");
+my $testtype = CHANGE_HRR_CIPHERSUITE;
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 2;
+ok(TLSProxy::Message->fail(), "Server ciphersuite changes");
+
+#Test 2: It is an error if the client changes the offered ciphersuites so that
+# we end up selecting a different ciphersuite between HRR and the SH
+$proxy->clear();
+$proxy->serverflags("-curves P-256");
+$proxy->ciphersuitess("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384");
+$testtype = CHANGE_CH1_CIPHERSUITE;
+$proxy->start();
+ok(TLSProxy::Message->fail(), "Client ciphersuite changes");
+
+sub hrr_filter
+{
+ my $proxy = shift;
+
+ if ($testtype == CHANGE_HRR_CIPHERSUITE) {
+ # We're only interested in the HRR
+ if ($proxy->flight != 1) {
+ return;
+ }
+
+ my $hrr = ${$proxy->message_list}[1];
+
+ # We will normally only ever select CIPHER_TLS13_AES_128_GCM_SHA256
+ # because that's what Proxy tells s_server to do. Setting as below means
+ # the ciphersuite will change will we get the ServerHello
+ $hrr->ciphersuite(TLSProxy::Message::CIPHER_TLS13_AES_256_GCM_SHA384);
+ $hrr->repack();
+ return;
+ }
+
+ # CHANGE_CH1_CIPHERSUITE
+ if ($proxy->flight != 0) {
+ return;
+ }
+
+ my $ch1 = ${$proxy->message_list}[0];
+
+ # The server will always pick TLS_AES_256_GCM_SHA384
+ my @ciphersuites = (TLSProxy::Message::CIPHER_TLS13_AES_128_GCM_SHA256);
+ $ch1->ciphersuite_len(2 * scalar @ciphersuites);
+ $ch1->ciphersuites(\@ciphersuites);
+ $ch1->repack();
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13kexmodes.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13kexmodes.t
new file mode 100644
index 000000000..98989b470
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13kexmodes.t
@@ -0,0 +1,375 @@
+#! /usr/bin/env perl
+# Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file srctop_dir bldtop_dir/;
+use OpenSSL::Test::Utils;
+use File::Temp qw(tempfile);
+use TLSProxy::Proxy;
+use checkhandshake qw(checkhandshake @handmessages @extensions);
+
+my $test_name = "test_tls13kexmodes";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLSv1.3 enabled"
+ if disabled("tls1_3");
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+$ENV{CTLOG_FILE} = srctop_file("test", "ct", "log_list.conf");
+
+
+@handmessages = (
+ [TLSProxy::Message::MT_CLIENT_HELLO,
+ checkhandshake::ALL_HANDSHAKES],
+ [TLSProxy::Message::MT_SERVER_HELLO,
+ checkhandshake::HRR_HANDSHAKE | checkhandshake::HRR_RESUME_HANDSHAKE],
+ [TLSProxy::Message::MT_CLIENT_HELLO,
+ checkhandshake::HRR_HANDSHAKE | checkhandshake::HRR_RESUME_HANDSHAKE],
+ [TLSProxy::Message::MT_SERVER_HELLO,
+ checkhandshake::ALL_HANDSHAKES],
+ [TLSProxy::Message::MT_ENCRYPTED_EXTENSIONS,
+ checkhandshake::ALL_HANDSHAKES],
+ [TLSProxy::Message::MT_CERTIFICATE_REQUEST,
+ checkhandshake::CLIENT_AUTH_HANDSHAKE],
+ [TLSProxy::Message::MT_CERTIFICATE,
+ checkhandshake::ALL_HANDSHAKES & ~(checkhandshake::RESUME_HANDSHAKE | checkhandshake::HRR_RESUME_HANDSHAKE)],
+ [TLSProxy::Message::MT_CERTIFICATE_VERIFY,
+ checkhandshake::ALL_HANDSHAKES & ~(checkhandshake::RESUME_HANDSHAKE | checkhandshake::HRR_RESUME_HANDSHAKE)],
+ [TLSProxy::Message::MT_FINISHED,
+ checkhandshake::ALL_HANDSHAKES],
+ [TLSProxy::Message::MT_CERTIFICATE,
+ checkhandshake::CLIENT_AUTH_HANDSHAKE],
+ [TLSProxy::Message::MT_CERTIFICATE_VERIFY,
+ checkhandshake::CLIENT_AUTH_HANDSHAKE],
+ [TLSProxy::Message::MT_FINISHED,
+ checkhandshake::ALL_HANDSHAKES],
+ [0, 0]
+);
+
+@extensions = (
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SERVER_NAME,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::SERVER_NAME_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_STATUS_REQUEST,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::STATUS_REQUEST_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SUPPORTED_GROUPS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_EC_POINT_FORMATS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SIG_ALGS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_ALPN,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::ALPN_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SCT,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::SCT_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_ENCRYPT_THEN_MAC,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_EXTENDED_MASTER_SECRET,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SESSION_TICKET,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_KEY_SHARE,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SUPPORTED_VERSIONS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_PSK_KEX_MODES,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::PSK_KEX_MODES_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_PSK,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::PSK_CLI_EXTENSION],
+
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_SUPPORTED_VERSIONS,
+ TLSProxy::Message::SERVER,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_KEY_SHARE,
+ TLSProxy::Message::SERVER,
+ checkhandshake::KEY_SHARE_HRR_EXTENSION],
+
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SERVER_NAME,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::SERVER_NAME_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_STATUS_REQUEST,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::STATUS_REQUEST_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SUPPORTED_GROUPS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_EC_POINT_FORMATS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SIG_ALGS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_ALPN,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::ALPN_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SCT,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::SCT_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_ENCRYPT_THEN_MAC,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_EXTENDED_MASTER_SECRET,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SESSION_TICKET,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_KEY_SHARE,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SUPPORTED_VERSIONS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_PSK_KEX_MODES,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::PSK_KEX_MODES_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_PSK,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::PSK_CLI_EXTENSION],
+
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_SUPPORTED_VERSIONS,
+ TLSProxy::Message::SERVER,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_KEY_SHARE,
+ TLSProxy::Message::SERVER,
+ checkhandshake::KEY_SHARE_SRV_EXTENSION],
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_PSK,
+ TLSProxy::Message::SERVER,
+ checkhandshake::PSK_SRV_EXTENSION],
+
+ [TLSProxy::Message::MT_CERTIFICATE, TLSProxy::Message::EXT_STATUS_REQUEST,
+ TLSProxy::Message::SERVER,
+ checkhandshake::STATUS_REQUEST_SRV_EXTENSION],
+ [0,0,0,0]
+);
+
+use constant {
+ DELETE_EXTENSION => 0,
+ EMPTY_EXTENSION => 1,
+ NON_DHE_KEX_MODE_ONLY => 2,
+ DHE_KEX_MODE_ONLY => 3,
+ UNKNOWN_KEX_MODES => 4,
+ BOTH_KEX_MODES => 5
+};
+
+my $proxy = TLSProxy::Proxy->new(
+ undef,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+#Test 1: First get a session
+(undef, my $session) = tempfile();
+$proxy->clientflags("-sess_out ".$session);
+$proxy->serverflags("-servername localhost");
+$proxy->sessionfile($session);
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 11;
+ok(TLSProxy::Message->success(), "Initial connection");
+
+#Test 2: Attempt a resume with no kex modes extension. Should not resume
+$proxy->clear();
+$proxy->clientflags("-sess_in ".$session);
+my $testtype = DELETE_EXTENSION;
+$proxy->filter(\&modify_kex_modes_filter);
+$proxy->start();
+checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::KEY_SHARE_SRV_EXTENSION
+ | checkhandshake::PSK_CLI_EXTENSION,
+ "Resume with no kex modes");
+
+#Test 3: Attempt a resume with empty kex modes extension. Should fail (empty
+# extension is invalid)
+$proxy->clear();
+$proxy->clientflags("-sess_in ".$session);
+$testtype = EMPTY_EXTENSION;
+$proxy->start();
+ok(TLSProxy::Message->fail(), "Resume with empty kex modes");
+
+#Test 4: Attempt a resume with non-dhe kex mode only. Should resume without a
+# key_share
+$proxy->clear();
+$proxy->clientflags("-allow_no_dhe_kex -sess_in ".$session);
+$proxy->serverflags("-allow_no_dhe_kex");
+$testtype = NON_DHE_KEX_MODE_ONLY;
+$proxy->start();
+checkhandshake($proxy, checkhandshake::RESUME_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::PSK_KEX_MODES_EXTENSION
+ | checkhandshake::PSK_CLI_EXTENSION
+ | checkhandshake::PSK_SRV_EXTENSION,
+ "Resume with non-dhe kex mode");
+
+#Test 5: Attempt a resume with dhe kex mode only. Should resume with a key_share
+$proxy->clear();
+$proxy->clientflags("-sess_in ".$session);
+$testtype = DHE_KEX_MODE_ONLY;
+$proxy->start();
+checkhandshake($proxy, checkhandshake::RESUME_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::PSK_KEX_MODES_EXTENSION
+ | checkhandshake::KEY_SHARE_SRV_EXTENSION
+ | checkhandshake::PSK_CLI_EXTENSION
+ | checkhandshake::PSK_SRV_EXTENSION,
+ "Resume with non-dhe kex mode");
+
+#Test 6: Attempt a resume with only unrecognised kex modes. Should not resume
+$proxy->clear();
+$proxy->clientflags("-sess_in ".$session);
+$testtype = UNKNOWN_KEX_MODES;
+$proxy->start();
+checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::PSK_KEX_MODES_EXTENSION
+ | checkhandshake::KEY_SHARE_SRV_EXTENSION
+ | checkhandshake::PSK_CLI_EXTENSION,
+ "Resume with empty kex modes");
+
+#Test 7: Attempt a resume with both non-dhe and dhe kex mode. Should resume with
+# a key_share
+$proxy->clear();
+$proxy->clientflags("-sess_in ".$session);
+$testtype = BOTH_KEX_MODES;
+$proxy->start();
+checkhandshake($proxy, checkhandshake::RESUME_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::PSK_KEX_MODES_EXTENSION
+ | checkhandshake::KEY_SHARE_SRV_EXTENSION
+ | checkhandshake::PSK_CLI_EXTENSION
+ | checkhandshake::PSK_SRV_EXTENSION,
+ "Resume with non-dhe kex mode");
+
+#Test 8: Attempt a resume with both non-dhe and dhe kex mode, but unacceptable
+# initial key_share. Should resume with a key_share following an HRR
+$proxy->clear();
+$proxy->clientflags("-sess_in ".$session);
+$proxy->serverflags("-curves P-256");
+$testtype = BOTH_KEX_MODES;
+$proxy->start();
+checkhandshake($proxy, checkhandshake::HRR_RESUME_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::PSK_KEX_MODES_EXTENSION
+ | checkhandshake::KEY_SHARE_SRV_EXTENSION
+ | checkhandshake::KEY_SHARE_HRR_EXTENSION
+ | checkhandshake::PSK_CLI_EXTENSION
+ | checkhandshake::PSK_SRV_EXTENSION,
+ "Resume with both kex modes and HRR");
+
+#Test 9: Attempt a resume with dhe kex mode only and an unacceptable initial
+# key_share. Should resume with a key_share following an HRR
+$proxy->clear();
+$proxy->clientflags("-sess_in ".$session);
+$proxy->serverflags("-curves P-256");
+$testtype = DHE_KEX_MODE_ONLY;
+$proxy->start();
+checkhandshake($proxy, checkhandshake::HRR_RESUME_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::PSK_KEX_MODES_EXTENSION
+ | checkhandshake::KEY_SHARE_SRV_EXTENSION
+ | checkhandshake::KEY_SHARE_HRR_EXTENSION
+ | checkhandshake::PSK_CLI_EXTENSION
+ | checkhandshake::PSK_SRV_EXTENSION,
+ "Resume with dhe kex mode and HRR");
+
+#Test 10: Attempt a resume with both non-dhe and dhe kex mode, unacceptable
+# initial key_share and no overlapping groups. Should resume without a
+# key_share
+$proxy->clear();
+$proxy->clientflags("-allow_no_dhe_kex -curves P-384 -sess_in ".$session);
+$proxy->serverflags("-allow_no_dhe_kex -curves P-256");
+$testtype = BOTH_KEX_MODES;
+$proxy->start();
+checkhandshake($proxy, checkhandshake::RESUME_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::PSK_KEX_MODES_EXTENSION
+ | checkhandshake::PSK_CLI_EXTENSION
+ | checkhandshake::PSK_SRV_EXTENSION,
+ "Resume with both kex modes, no overlapping groups");
+
+#Test 11: Attempt a resume with dhe kex mode only, unacceptable
+# initial key_share and no overlapping groups. Should fail
+$proxy->clear();
+$proxy->clientflags("-curves P-384 -sess_in ".$session);
+$proxy->serverflags("-curves P-256");
+$testtype = DHE_KEX_MODE_ONLY;
+$proxy->start();
+ok(TLSProxy::Message->fail(), "Resume with dhe kex mode, no overlapping groups");
+
+unlink $session;
+
+sub modify_kex_modes_filter
+{
+ my $proxy = shift;
+
+ # We're only interested in the initial ClientHello
+ return if ($proxy->flight != 0);
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == TLSProxy::Message::MT_CLIENT_HELLO) {
+ my $ext;
+
+ if ($testtype == EMPTY_EXTENSION) {
+ $ext = pack "C",
+ 0x00; #List length
+ } elsif ($testtype == NON_DHE_KEX_MODE_ONLY) {
+ $ext = pack "C2",
+ 0x01, #List length
+ 0x00; #psk_ke
+ } elsif ($testtype == DHE_KEX_MODE_ONLY) {
+ $ext = pack "C2",
+ 0x01, #List length
+ 0x01; #psk_dhe_ke
+ } elsif ($testtype == UNKNOWN_KEX_MODES) {
+ $ext = pack "C3",
+ 0x02, #List length
+ 0xfe, #unknown
+ 0xff; #unknown
+ } elsif ($testtype == BOTH_KEX_MODES) {
+ #We deliberately list psk_ke first...should still use psk_dhe_ke
+ $ext = pack "C3",
+ 0x02, #List length
+ 0x00, #psk_ke
+ 0x01; #psk_dhe_ke
+ }
+
+ if ($testtype == DELETE_EXTENSION) {
+ $message->delete_extension(
+ TLSProxy::Message::EXT_PSK_KEX_MODES);
+ } else {
+ $message->set_extension(
+ TLSProxy::Message::EXT_PSK_KEX_MODES, $ext);
+ }
+
+ $message->repack();
+ }
+ }
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13messages.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13messages.t
new file mode 100644
index 000000000..171a12fa1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13messages.t
@@ -0,0 +1,391 @@
+#! /usr/bin/env perl
+# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file srctop_dir bldtop_dir/;
+use OpenSSL::Test::Utils;
+use File::Temp qw(tempfile);
+use TLSProxy::Proxy;
+use checkhandshake qw(checkhandshake @handmessages @extensions);
+
+my $test_name = "test_tls13messages";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLSv1.3 enabled"
+ if disabled("tls1_3");
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+$ENV{CTLOG_FILE} = srctop_file("test", "ct", "log_list.conf");
+
+
+@handmessages = (
+ [TLSProxy::Message::MT_CLIENT_HELLO,
+ checkhandshake::ALL_HANDSHAKES],
+ [TLSProxy::Message::MT_SERVER_HELLO,
+ checkhandshake::HRR_HANDSHAKE | checkhandshake::HRR_RESUME_HANDSHAKE],
+ [TLSProxy::Message::MT_CLIENT_HELLO,
+ checkhandshake::HRR_HANDSHAKE | checkhandshake::HRR_RESUME_HANDSHAKE],
+ [TLSProxy::Message::MT_SERVER_HELLO,
+ checkhandshake::ALL_HANDSHAKES],
+ [TLSProxy::Message::MT_ENCRYPTED_EXTENSIONS,
+ checkhandshake::ALL_HANDSHAKES],
+ [TLSProxy::Message::MT_CERTIFICATE_REQUEST,
+ checkhandshake::CLIENT_AUTH_HANDSHAKE],
+ [TLSProxy::Message::MT_CERTIFICATE,
+ checkhandshake::ALL_HANDSHAKES & ~(checkhandshake::RESUME_HANDSHAKE | checkhandshake::HRR_RESUME_HANDSHAKE)],
+ [TLSProxy::Message::MT_CERTIFICATE_VERIFY,
+ checkhandshake::ALL_HANDSHAKES & ~(checkhandshake::RESUME_HANDSHAKE | checkhandshake::HRR_RESUME_HANDSHAKE)],
+ [TLSProxy::Message::MT_FINISHED,
+ checkhandshake::ALL_HANDSHAKES],
+ [TLSProxy::Message::MT_CERTIFICATE,
+ checkhandshake::CLIENT_AUTH_HANDSHAKE],
+ [TLSProxy::Message::MT_CERTIFICATE_VERIFY,
+ checkhandshake::CLIENT_AUTH_HANDSHAKE],
+ [TLSProxy::Message::MT_FINISHED,
+ checkhandshake::ALL_HANDSHAKES],
+ [0, 0]
+);
+
+@extensions = (
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SERVER_NAME,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::SERVER_NAME_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_STATUS_REQUEST,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::STATUS_REQUEST_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SUPPORTED_GROUPS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_EC_POINT_FORMATS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SIG_ALGS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_ALPN,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::ALPN_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SCT,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::SCT_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_ENCRYPT_THEN_MAC,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_EXTENDED_MASTER_SECRET,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SESSION_TICKET,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_KEY_SHARE,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SUPPORTED_VERSIONS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_PSK_KEX_MODES,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_PSK,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::PSK_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_POST_HANDSHAKE_AUTH,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::POST_HANDSHAKE_AUTH_CLI_EXTENSION],
+
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_SUPPORTED_VERSIONS,
+ TLSProxy::Message::SERVER,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_KEY_SHARE,
+ TLSProxy::Message::SERVER,
+ checkhandshake::KEY_SHARE_HRR_EXTENSION],
+
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SERVER_NAME,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::SERVER_NAME_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_STATUS_REQUEST,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::STATUS_REQUEST_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SUPPORTED_GROUPS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_EC_POINT_FORMATS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SIG_ALGS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_ALPN,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::ALPN_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SCT,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::SCT_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_ENCRYPT_THEN_MAC,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_EXTENDED_MASTER_SECRET,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SESSION_TICKET,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_KEY_SHARE,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_SUPPORTED_VERSIONS,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_PSK_KEX_MODES,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_PSK,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::PSK_CLI_EXTENSION],
+ [TLSProxy::Message::MT_CLIENT_HELLO, TLSProxy::Message::EXT_POST_HANDSHAKE_AUTH,
+ TLSProxy::Message::CLIENT,
+ checkhandshake::POST_HANDSHAKE_AUTH_CLI_EXTENSION],
+
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_SUPPORTED_VERSIONS,
+ TLSProxy::Message::SERVER,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_KEY_SHARE,
+ TLSProxy::Message::SERVER,
+ checkhandshake::DEFAULT_EXTENSIONS],
+ [TLSProxy::Message::MT_SERVER_HELLO, TLSProxy::Message::EXT_PSK,
+ TLSProxy::Message::SERVER,
+ checkhandshake::PSK_SRV_EXTENSION],
+
+ [TLSProxy::Message::MT_ENCRYPTED_EXTENSIONS, TLSProxy::Message::EXT_SERVER_NAME,
+ TLSProxy::Message::SERVER,
+ checkhandshake::SERVER_NAME_SRV_EXTENSION],
+ [TLSProxy::Message::MT_ENCRYPTED_EXTENSIONS, TLSProxy::Message::EXT_ALPN,
+ TLSProxy::Message::SERVER,
+ checkhandshake::ALPN_SRV_EXTENSION],
+ [TLSProxy::Message::MT_ENCRYPTED_EXTENSIONS, TLSProxy::Message::EXT_SUPPORTED_GROUPS,
+ TLSProxy::Message::SERVER,
+ checkhandshake::SUPPORTED_GROUPS_SRV_EXTENSION],
+
+ [TLSProxy::Message::MT_CERTIFICATE_REQUEST, TLSProxy::Message::EXT_SIG_ALGS,
+ TLSProxy::Message::SERVER,
+ checkhandshake::DEFAULT_EXTENSIONS],
+
+ [TLSProxy::Message::MT_CERTIFICATE, TLSProxy::Message::EXT_STATUS_REQUEST,
+ TLSProxy::Message::SERVER,
+ checkhandshake::STATUS_REQUEST_SRV_EXTENSION],
+ [TLSProxy::Message::MT_CERTIFICATE, TLSProxy::Message::EXT_SCT,
+ TLSProxy::Message::SERVER,
+ checkhandshake::SCT_SRV_EXTENSION],
+
+ [0,0,0,0]
+);
+
+my $proxy = TLSProxy::Proxy->new(
+ undef,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+#Test 1: Check we get all the right messages for a default handshake
+(undef, my $session) = tempfile();
+$proxy->serverconnects(2);
+$proxy->clientflags("-sess_out ".$session);
+$proxy->sessionfile($session);
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 17;
+checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS,
+ "Default handshake test");
+
+#Test 2: Resumption handshake
+$proxy->clearClient();
+$proxy->clientflags("-sess_in ".$session);
+$proxy->clientstart();
+checkhandshake($proxy, checkhandshake::RESUME_HANDSHAKE,
+ (checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::PSK_CLI_EXTENSION
+ | checkhandshake::PSK_SRV_EXTENSION),
+ "Resumption handshake test");
+
+SKIP: {
+ skip "No OCSP support in this OpenSSL build", 4
+ if disabled("ct") || disabled("ec") || disabled("ocsp");
+ #Test 3: A status_request handshake (client request only)
+ $proxy->clear();
+ $proxy->clientflags("-status");
+ $proxy->start();
+ checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::STATUS_REQUEST_CLI_EXTENSION,
+ "status_request handshake test (client)");
+
+ #Test 4: A status_request handshake (server support only)
+ $proxy->clear();
+ $proxy->serverflags("-status_file "
+ .srctop_file("test", "recipes", "ocsp-response.der"));
+ $proxy->start();
+ checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS,
+ "status_request handshake test (server)");
+
+ #Test 5: A status_request handshake (client and server)
+ $proxy->clear();
+ $proxy->clientflags("-status");
+ $proxy->serverflags("-status_file "
+ .srctop_file("test", "recipes", "ocsp-response.der"));
+ $proxy->start();
+ checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::STATUS_REQUEST_CLI_EXTENSION
+ | checkhandshake::STATUS_REQUEST_SRV_EXTENSION,
+ "status_request handshake test");
+
+ #Test 6: A status_request handshake (client and server) with client auth
+ $proxy->clear();
+ $proxy->clientflags("-status -enable_pha -cert "
+ .srctop_file("apps", "server.pem"));
+ $proxy->serverflags("-Verify 5 -status_file "
+ .srctop_file("test", "recipes", "ocsp-response.der"));
+ $proxy->start();
+ checkhandshake($proxy, checkhandshake::CLIENT_AUTH_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::STATUS_REQUEST_CLI_EXTENSION
+ | checkhandshake::STATUS_REQUEST_SRV_EXTENSION
+ | checkhandshake::POST_HANDSHAKE_AUTH_CLI_EXTENSION,
+ "status_request handshake with client auth test");
+}
+
+#Test 7: A client auth handshake
+$proxy->clear();
+$proxy->clientflags("-enable_pha -cert ".srctop_file("apps", "server.pem"));
+$proxy->serverflags("-Verify 5");
+$proxy->start();
+checkhandshake($proxy, checkhandshake::CLIENT_AUTH_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS |
+ checkhandshake::POST_HANDSHAKE_AUTH_CLI_EXTENSION,
+ "Client auth handshake test");
+
+#Test 8: Server name handshake (no client request)
+$proxy->clear();
+$proxy->clientflags("-noservername");
+$proxy->start();
+checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ & ~checkhandshake::SERVER_NAME_CLI_EXTENSION,
+ "Server name handshake test (client)");
+
+#Test 9: Server name handshake (server support only)
+$proxy->clear();
+$proxy->clientflags("-noservername");
+$proxy->serverflags("-servername testhost");
+$proxy->start();
+checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ & ~checkhandshake::SERVER_NAME_CLI_EXTENSION,
+ "Server name handshake test (server)");
+
+#Test 10: Server name handshake (client and server)
+$proxy->clear();
+$proxy->clientflags("-servername testhost");
+$proxy->serverflags("-servername testhost");
+$proxy->start();
+checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::SERVER_NAME_SRV_EXTENSION,
+ "Server name handshake test");
+
+#Test 11: ALPN handshake (client request only)
+$proxy->clear();
+$proxy->clientflags("-alpn test");
+$proxy->start();
+checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::ALPN_CLI_EXTENSION,
+ "ALPN handshake test (client)");
+
+#Test 12: ALPN handshake (server support only)
+$proxy->clear();
+$proxy->serverflags("-alpn test");
+$proxy->start();
+checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS,
+ "ALPN handshake test (server)");
+
+#Test 13: ALPN handshake (client and server)
+$proxy->clear();
+$proxy->clientflags("-alpn test");
+$proxy->serverflags("-alpn test");
+$proxy->start();
+checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::ALPN_CLI_EXTENSION
+ | checkhandshake::ALPN_SRV_EXTENSION,
+ "ALPN handshake test");
+
+SKIP: {
+ skip "No CT, EC or OCSP support in this OpenSSL build", 1
+ if disabled("ct") || disabled("ec") || disabled("ocsp");
+
+ #Test 14: SCT handshake (client request only)
+ $proxy->clear();
+ #Note: -ct also sends status_request
+ $proxy->clientflags("-ct");
+ $proxy->serverflags("-status_file "
+ .srctop_file("test", "recipes", "ocsp-response.der")
+ ." -serverinfo ".srctop_file("test", "serverinfo2.pem"));
+ $proxy->start();
+ checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::SCT_CLI_EXTENSION
+ | checkhandshake::SCT_SRV_EXTENSION
+ | checkhandshake::STATUS_REQUEST_CLI_EXTENSION
+ | checkhandshake::STATUS_REQUEST_SRV_EXTENSION,
+ "SCT handshake test");
+}
+
+#Test 15: HRR Handshake
+$proxy->clear();
+$proxy->serverflags("-curves P-256");
+$proxy->start();
+checkhandshake($proxy, checkhandshake::HRR_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::KEY_SHARE_HRR_EXTENSION,
+ "HRR handshake test");
+
+#Test 16: Resumption handshake with HRR
+$proxy->clear();
+$proxy->clientflags("-sess_in ".$session);
+$proxy->serverflags("-curves P-256");
+$proxy->start();
+checkhandshake($proxy, checkhandshake::HRR_RESUME_HANDSHAKE,
+ (checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::KEY_SHARE_HRR_EXTENSION
+ | checkhandshake::PSK_CLI_EXTENSION
+ | checkhandshake::PSK_SRV_EXTENSION),
+ "Resumption handshake with HRR test");
+
+#Test 17: Acceptable but non preferred key_share
+$proxy->clear();
+$proxy->clientflags("-curves P-256");
+$proxy->start();
+checkhandshake($proxy, checkhandshake::DEFAULT_HANDSHAKE,
+ checkhandshake::DEFAULT_EXTENSIONS
+ | checkhandshake::SUPPORTED_GROUPS_SRV_EXTENSION,
+ "Acceptable but non preferred key_share");
+
+unlink $session;
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13psk.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13psk.t
new file mode 100644
index 000000000..fedc52789
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tls13psk.t
@@ -0,0 +1,152 @@
+#! /usr/bin/env perl
+# Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file srctop_dir bldtop_dir/;
+use OpenSSL::Test::Utils;
+use File::Temp qw(tempfile);
+use TLSProxy::Proxy;
+
+my $test_name = "test_tls13psk";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLSv1.3 enabled"
+ if disabled("tls1_3");
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+$ENV{CTLOG_FILE} = srctop_file("test", "ct", "log_list.conf");
+
+my $proxy = TLSProxy::Proxy->new(
+ undef,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+use constant {
+ PSK_LAST_FIRST_CH => 0,
+ ILLEGAL_EXT_SECOND_CH => 1
+};
+
+#Most PSK tests are done in test_ssl_new. This tests various failure scenarios
+#around PSK
+
+#Test 1: First get a session
+(undef, my $session) = tempfile();
+$proxy->clientflags("-sess_out ".$session);
+$proxy->serverflags("-servername localhost");
+$proxy->sessionfile($session);
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+plan tests => 5;
+ok(TLSProxy::Message->success(), "Initial connection");
+
+#Test 2: Attempt a resume with PSK not in last place. Should fail
+$proxy->clear();
+$proxy->clientflags("-sess_in ".$session);
+$proxy->filter(\&modify_psk_filter);
+my $testtype = PSK_LAST_FIRST_CH;
+$proxy->start();
+ok(TLSProxy::Message->fail(), "PSK not last");
+
+#Test 3: Attempt a resume after an HRR where PSK hash matches selected
+# ciphersuite. Should see PSK on second ClientHello
+$proxy->clear();
+$proxy->clientflags("-sess_in ".$session);
+$proxy->serverflags("-curves P-256");
+$proxy->filter(undef);
+$proxy->start();
+#Check if the PSK is present in the second ClientHello
+my $ch2 = ${$proxy->message_list}[2];
+my $ch2seen = defined $ch2 && $ch2->mt() == TLSProxy::Message::MT_CLIENT_HELLO;
+my $pskseen = $ch2seen
+ && defined ${$ch2->{extension_data}}{TLSProxy::Message::EXT_PSK};
+ok($pskseen, "PSK hash matches");
+
+#Test 4: Attempt a resume after an HRR where PSK hash does not match selected
+# ciphersuite. Should not see PSK on second ClientHello
+$proxy->clear();
+$proxy->clientflags("-sess_in ".$session);
+$proxy->filter(\&modify_psk_filter);
+$proxy->serverflags("-curves P-256");
+$proxy->ciphersuitesc("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384");
+$proxy->ciphersuitess("TLS_AES_256_GCM_SHA384");
+#We force an early failure because TLS Proxy doesn't actually support
+#TLS_AES_256_GCM_SHA384. That doesn't matter for this test though.
+$testtype = ILLEGAL_EXT_SECOND_CH;
+$proxy->start();
+#Check if the PSK is present in the second ClientHello
+$ch2 = ${$proxy->message_list}[2];
+$ch2seen = defined $ch2 && $ch2->mt() == TLSProxy::Message::MT_CLIENT_HELLO;
+$pskseen = $ch2seen
+ && defined ${$ch2->extension_data}{TLSProxy::Message::EXT_PSK};
+ok($ch2seen && !$pskseen, "PSK hash does not match");
+
+#Test 5: Attempt a resume without a sig agls extension. Should succeed because
+# sig algs is not needed in a resumption.
+$proxy->clear();
+$proxy->clientflags("-sess_in ".$session);
+$proxy->filter(\&remove_sig_algs_filter);
+$proxy->start();
+ok(TLSProxy::Message->success(), "Remove sig algs");
+
+unlink $session;
+
+sub modify_psk_filter
+{
+ my $proxy = shift;
+ my $flight;
+ my $message;
+
+ if ($testtype == PSK_LAST_FIRST_CH) {
+ $flight = 0;
+ } else {
+ $flight = 2;
+ }
+
+ # Only look at the first or second ClientHello
+ return if $proxy->flight != $flight;
+
+ if ($testtype == PSK_LAST_FIRST_CH) {
+ $message = ${$proxy->message_list}[0];
+ } else {
+ $message = ${$proxy->message_list}[2];
+ }
+
+ return if (!defined $message
+ || $message->mt != TLSProxy::Message::MT_CLIENT_HELLO);
+
+ if ($testtype == PSK_LAST_FIRST_CH) {
+ $message->set_extension(TLSProxy::Message::EXT_FORCE_LAST, "");
+ } else {
+ #Deliberately break the connection
+ $message->set_extension(TLSProxy::Message::EXT_SUPPORTED_GROUPS, "");
+ }
+ $message->repack();
+}
+
+sub remove_sig_algs_filter
+{
+ my $proxy = shift;
+ my $message;
+
+ # Only look at the first ClientHello
+ return if $proxy->flight != 0;
+
+ $message = ${$proxy->message_list}[0];
+ $message->delete_extension(TLSProxy::Message::EXT_SIG_ALGS);
+ $message->repack();
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tlsextms.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tlsextms.t
new file mode 100644
index 000000000..547a2fca2
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_tlsextms.t
@@ -0,0 +1,256 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file bldtop_dir/;
+use OpenSSL::Test::Utils;
+use TLSProxy::Proxy;
+use File::Temp qw(tempfile);
+
+my $test_name = "test_tlsextms";
+setup($test_name);
+
+plan skip_all => "TLSProxy isn't usable on $^O"
+ if $^O =~ /^(VMS)$/;
+
+plan skip_all => "$test_name needs the dynamic engine feature enabled"
+ if disabled("engine") || disabled("dynamic-engine");
+
+plan skip_all => "$test_name needs the sock feature enabled"
+ if disabled("sock");
+
+plan skip_all => "$test_name needs TLSv1.0, TLSv1.1 or TLSv1.2 enabled"
+ if disabled("tls1") && disabled("tls1_1") && disabled("tls1_2");
+
+$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
+
+sub checkmessages($$$$$);
+sub setrmextms($$);
+sub clearall();
+
+my $crmextms = 0;
+my $srmextms = 0;
+my $cextms = 0;
+my $sextms = 0;
+my $fullhand = 0;
+
+my $proxy = TLSProxy::Proxy->new(
+ \&extms_filter,
+ cmdstr(app(["openssl"]), display => 1),
+ srctop_file("apps", "server.pem"),
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+);
+
+#Note that EXTMS is only relevant for <TLS1.3
+
+#Test 1: By default server and client should send extended master secret
+# extension.
+#Expected result: ClientHello extension seen; ServerHello extension seen
+# Full handshake
+
+setrmextms(0, 0);
+$proxy->clientflags("-no_tls1_3");
+$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
+my $numtests = 9;
+$numtests++ if (!disabled("tls1_3"));
+plan tests => $numtests;
+checkmessages(1, "Default extended master secret test", 1, 1, 1);
+
+#Test 2: If client omits extended master secret extension, server should too.
+#Expected result: ClientHello extension not seen; ServerHello extension not seen
+# Full handshake
+
+clearall();
+setrmextms(1, 0);
+$proxy->clientflags("-no_tls1_3");
+$proxy->start();
+checkmessages(2, "No client extension extended master secret test", 0, 0, 1);
+
+# Test 3: same as 1 but with session tickets disabled.
+# Expected result: same as test 1.
+
+clearall();
+$proxy->clientflags("-no_ticket -no_tls1_3");
+setrmextms(0, 0);
+$proxy->start();
+checkmessages(3, "No ticket extended master secret test", 1, 1, 1);
+
+# Test 4: same as 2 but with session tickets disabled.
+# Expected result: same as test 2.
+
+clearall();
+$proxy->clientflags("-no_ticket -no_tls1_3");
+setrmextms(1, 0);
+$proxy->start();
+checkmessages(4, "No ticket, no client extension extended master secret test", 0, 0, 1);
+
+#Test 5: Session resumption extended master secret test
+#
+#Expected result: ClientHello extension seen; ServerHello extension seen
+# Abbreviated handshake
+
+clearall();
+setrmextms(0, 0);
+(undef, my $session) = tempfile();
+$proxy->serverconnects(2);
+$proxy->clientflags("-no_tls1_3 -sess_out ".$session);
+$proxy->start();
+$proxy->clearClient();
+$proxy->clientflags("-no_tls1_3 -sess_in ".$session);
+$proxy->clientstart();
+checkmessages(5, "Session resumption extended master secret test", 1, 1, 0);
+unlink $session;
+
+#Test 6: Session resumption extended master secret test original session
+# omits extension. Server must not resume session.
+#Expected result: ClientHello extension seen; ServerHello extension seen
+# Full handshake
+
+clearall();
+setrmextms(1, 0);
+(undef, $session) = tempfile();
+$proxy->serverconnects(2);
+$proxy->clientflags("-no_tls1_3 -sess_out ".$session);
+$proxy->start();
+$proxy->clearClient();
+$proxy->clientflags("-no_tls1_3 -sess_in ".$session);
+setrmextms(0, 0);
+$proxy->clientstart();
+checkmessages(6, "Session resumption extended master secret test", 1, 1, 1);
+unlink $session;
+
+#Test 7: Session resumption extended master secret test resumed session
+# omits client extension. Server must abort connection.
+#Expected result: aborted connection.
+
+clearall();
+setrmextms(0, 0);
+(undef, $session) = tempfile();
+$proxy->serverconnects(2);
+$proxy->clientflags("-no_tls1_3 -sess_out ".$session);
+$proxy->start();
+$proxy->clearClient();
+$proxy->clientflags("-no_tls1_3 -sess_in ".$session);
+setrmextms(1, 0);
+$proxy->clientstart();
+ok(TLSProxy::Message->fail(), "Client inconsistent session resumption");
+unlink $session;
+
+#Test 8: Session resumption extended master secret test resumed session
+# omits server extension. Client must abort connection.
+#Expected result: aborted connection.
+
+clearall();
+setrmextms(0, 0);
+(undef, $session) = tempfile();
+$proxy->serverconnects(2);
+$proxy->clientflags("-no_tls1_3 -sess_out ".$session);
+$proxy->start();
+$proxy->clearClient();
+$proxy->clientflags("-no_tls1_3 -sess_in ".$session);
+setrmextms(0, 1);
+$proxy->clientstart();
+ok(TLSProxy::Message->fail(), "Server inconsistent session resumption 1");
+unlink $session;
+
+#Test 9: Session resumption extended master secret test initial session
+# omits server extension. Client must abort connection.
+#Expected result: aborted connection.
+
+clearall();
+setrmextms(0, 1);
+(undef, $session) = tempfile();
+$proxy->serverconnects(2);
+$proxy->clientflags("-no_tls1_3 -sess_out ".$session);
+$proxy->start();
+$proxy->clearClient();
+$proxy->clientflags("-no_tls1_3 -sess_in ".$session);
+setrmextms(0, 0);
+$proxy->clientstart();
+ok(TLSProxy::Message->fail(), "Server inconsistent session resumption 2");
+unlink $session;
+
+#Test 10: In TLS1.3 we should not negotiate extended master secret
+#Expected result: ClientHello extension seen; ServerHello extension not seen
+# TLS1.3 handshake (will appear as abbreviated handshake
+# because of no CKE message)
+if (!disabled("tls1_3")) {
+ clearall();
+ setrmextms(0, 0);
+ $proxy->start();
+ checkmessages(10, "TLS1.3 extended master secret test", 1, 0, 0);
+}
+
+
+sub extms_filter
+{
+ my $proxy = shift;
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($crmextms && $message->mt == TLSProxy::Message::MT_CLIENT_HELLO) {
+ $message->delete_extension(TLSProxy::Message::EXT_EXTENDED_MASTER_SECRET);
+ $message->repack();
+ }
+ if ($srmextms && $message->mt == TLSProxy::Message::MT_SERVER_HELLO) {
+ $message->delete_extension(TLSProxy::Message::EXT_EXTENDED_MASTER_SECRET);
+ $message->repack();
+ }
+ }
+}
+
+sub checkmessages($$$$$)
+{
+ my ($testno, $testname, $testcextms, $testsextms, $testhand) = @_;
+
+ subtest $testname => sub {
+
+ foreach my $message (@{$proxy->message_list}) {
+ if ($message->mt == TLSProxy::Message::MT_CLIENT_HELLO
+ || $message->mt == TLSProxy::Message::MT_SERVER_HELLO) {
+ #Get the extensions data
+ my %extensions = %{$message->extension_data};
+ if (defined
+ $extensions{TLSProxy::Message::EXT_EXTENDED_MASTER_SECRET}) {
+ if ($message->mt == TLSProxy::Message::MT_CLIENT_HELLO) {
+ $cextms = 1;
+ } else {
+ $sextms = 1;
+ }
+ }
+ } elsif ($message->mt == TLSProxy::Message::MT_CLIENT_KEY_EXCHANGE) {
+ #Must be doing a full handshake
+ $fullhand = 1;
+ }
+ }
+
+ plan tests => 4;
+
+ ok(TLSProxy::Message->success, "Handshake");
+
+ ok($testcextms == $cextms,
+ "ClientHello extension extended master secret check");
+ ok($testsextms == $sextms,
+ "ServerHello extension extended master secret check");
+ ok($testhand == $fullhand,
+ "Extended master secret full handshake check");
+
+ }
+}
+
+sub setrmextms($$)
+{
+ ($crmextms, $srmextms) = @_;
+}
+
+sub clearall()
+{
+ $cextms = 0;
+ $sextms = 0;
+ $fullhand = 0;
+ $proxy->clear();
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_verify_extra.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_verify_extra.t
new file mode 100644
index 000000000..79a33cd01
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_verify_extra.t
@@ -0,0 +1,19 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_verify_extra");
+
+plan tests => 1;
+
+ok(run(test(["verify_extra_test",
+ srctop_file("test", "certs", "roots.pem"),
+ srctop_file("test", "certs", "untrusted.pem"),
+ srctop_file("test", "certs", "bad.pem")])));
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_wpacket.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_wpacket.t
new file mode 100644
index 000000000..6d50b9f80
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/70-test_wpacket.t
@@ -0,0 +1,20 @@
+#! /usr/bin/env perl
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test;
+use OpenSSL::Test::Utils;
+
+setup("test_wpacket");
+
+plan skip_all => "Test disabled in this configuration"
+ if $^O eq 'MSWin32' && !disabled("shared");
+
+plan tests => 1;
+
+ok(run(test(["wpackettest"])));
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ca.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ca.t
new file mode 100644
index 000000000..557777e19
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ca.t
@@ -0,0 +1,67 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use POSIX;
+use File::Path 2.00 qw/rmtree/;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_ca");
+
+$ENV{OPENSSL} = cmdstr(app(["openssl"]), display => 1);
+my $std_openssl_cnf =
+ srctop_file("apps", $^O eq "VMS" ? "openssl-vms.cnf" : "openssl.cnf");
+
+rmtree("demoCA", { safe => 0 });
+
+plan tests => 5;
+ SKIP: {
+ $ENV{OPENSSL_CONFIG} = '-config "'.srctop_file("test", "CAss.cnf").'"';
+ skip "failed creating CA structure", 4
+ if !ok(run(perlapp(["CA.pl","-newca"], stdin => undef)),
+ 'creating CA structure');
+
+ $ENV{OPENSSL_CONFIG} = '-config "'.srctop_file("test", "Uss.cnf").'"';
+ skip "failed creating new certificate request", 3
+ if !ok(run(perlapp(["CA.pl","-newreq"])),
+ 'creating certificate request');
+
+ $ENV{OPENSSL_CONFIG} = '-rand_serial -config "'.$std_openssl_cnf.'"';
+ skip "failed to sign certificate request", 2
+ if !is(yes(cmdstr(perlapp(["CA.pl", "-sign"]))), 0,
+ 'signing certificate request');
+
+ ok(run(perlapp(["CA.pl", "-verify", "newcert.pem"])),
+ 'verifying new certificate');
+
+ skip "CT not configured, can't use -precert", 1
+ if disabled("ct");
+
+ $ENV{OPENSSL_CONFIG} = '-config "'.srctop_file("test", "Uss.cnf").'"';
+ ok(run(perlapp(["CA.pl", "-precert"], stderr => undef)),
+ 'creating new pre-certificate');
+}
+
+
+rmtree("demoCA", { safe => 0 });
+unlink "newcert.pem", "newreq.pem", "newkey.pem";
+
+
+sub yes {
+ my $cntr = 10;
+ open(PIPE, "|-", join(" ",@_));
+ local $SIG{PIPE} = "IGNORE";
+ 1 while $cntr-- > 0 && print PIPE "y\n";
+ close PIPE;
+ return 0;
+}
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cipherbytes.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cipherbytes.t
new file mode 100644
index 000000000..27d627ea8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cipherbytes.t
@@ -0,0 +1,26 @@
+#! /usr/bin/perl
+#
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use OpenSSL::Test::Simple;
+use OpenSSL::Test;
+use OpenSSL::Test::Utils qw(alldisabled available_protocols);
+
+setup("test_cipherbytes");
+
+my $no_anytls = alldisabled(available_protocols("tls"));
+
+# If we have no protocols, then we also have no supported ciphers.
+plan skip_all => "No SSL/TLS protocol is supported by this OpenSSL build."
+ if $no_anytls;
+
+simple_test("test_cipherbytes", "cipherbytes_test", "bytes_to_cipherlist");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cipherlist.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cipherlist.t
new file mode 100644
index 000000000..5c1b1d454
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cipherlist.t
@@ -0,0 +1,31 @@
+#! /usr/bin/perl
+#
+# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use OpenSSL::Test::Simple;
+use OpenSSL::Test qw(:DEFAULT openssl_versions);
+use OpenSSL::Test::Utils qw(alldisabled available_protocols);
+
+setup("test_cipherlist");
+
+my ($build_version, $library_version) = openssl_versions();
+plan skip_all =>
+ "This test recipe isn't supported when doing regression testing"
+ if $build_version != $library_version;
+
+my $no_anytls = alldisabled(available_protocols("tls"));
+
+# If we have no protocols, then we also have no supported ciphers.
+plan skip_all => "No SSL/TLS protocol is supported by this OpenSSL build."
+ if $no_anytls;
+
+simple_test("test_cipherlist", "cipherlist_test", "cipherlist");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ciphername.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ciphername.t
new file mode 100644
index 000000000..33c3d6ee7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ciphername.t
@@ -0,0 +1,27 @@
+#! /usr/bin/perl
+#
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright 2017 BaishanCloud. All rights reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use OpenSSL::Test::Simple;
+use OpenSSL::Test;
+use OpenSSL::Test::Utils qw(alldisabled available_protocols);
+
+setup("test_ciphername");
+
+my $no_anytls = alldisabled(available_protocols("tls"));
+
+# If we have no protocols, then we also have no supported ciphers.
+plan skip_all => "No SSL/TLS protocol is supported by this OpenSSL build."
+ if $no_anytls;
+
+simple_test("test_ciphername", "ciphername_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms.t
new file mode 100644
index 000000000..5dc6a3aeb
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms.t
@@ -0,0 +1,586 @@
+#! /usr/bin/env perl
+# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use POSIX;
+use File::Spec::Functions qw/catfile/;
+use File::Compare qw/compare_text/;
+use OpenSSL::Test qw/:DEFAULT srctop_dir srctop_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_cms");
+
+plan skip_all => "CMS is not supported by this OpenSSL build"
+ if disabled("cms");
+
+my $datadir = srctop_dir("test", "recipes", "80-test_cms_data");
+my $smdir = srctop_dir("test", "smime-certs");
+my $smcont = srctop_file("test", "smcont.txt");
+my ($no_des, $no_dh, $no_dsa, $no_ec, $no_ec2m, $no_rc2, $no_zlib)
+ = disabled qw/des dh dsa ec ec2m rc2 zlib/;
+
+plan tests => 6;
+
+my @smime_pkcs7_tests = (
+
+ [ "signed content DER format, RSA key",
+ [ "-sign", "-in", $smcont, "-outform", "DER", "-nodetach",
+ "-certfile", catfile($smdir, "smroot.pem"),
+ "-signer", catfile($smdir, "smrsa1.pem"), "-out", "test.cms" ],
+ [ "-verify", "-in", "test.cms", "-inform", "DER",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
+ ],
+
+ [ "signed detached content DER format, RSA key",
+ [ "-sign", "-in", $smcont, "-outform", "DER",
+ "-signer", catfile($smdir, "smrsa1.pem"), "-out", "test.cms" ],
+ [ "-verify", "-in", "test.cms", "-inform", "DER",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt",
+ "-content", $smcont ]
+ ],
+
+ [ "signed content test streaming BER format, RSA",
+ [ "-sign", "-in", $smcont, "-outform", "DER", "-nodetach",
+ "-stream",
+ "-signer", catfile($smdir, "smrsa1.pem"), "-out", "test.cms" ],
+ [ "-verify", "-in", "test.cms", "-inform", "DER",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
+ ],
+
+ [ "signed content DER format, DSA key",
+ [ "-sign", "-in", $smcont, "-outform", "DER", "-nodetach",
+ "-signer", catfile($smdir, "smdsa1.pem"), "-out", "test.cms" ],
+ [ "-verify", "-in", "test.cms", "-inform", "DER",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
+ ],
+
+ [ "signed detached content DER format, DSA key",
+ [ "-sign", "-in", $smcont, "-outform", "DER",
+ "-signer", catfile($smdir, "smdsa1.pem"), "-out", "test.cms" ],
+ [ "-verify", "-in", "test.cms", "-inform", "DER",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt",
+ "-content", $smcont ]
+ ],
+
+ [ "signed detached content DER format, add RSA signer (with DSA existing)",
+ [ "-resign", "-inform", "DER", "-in", "test.cms", "-outform", "DER",
+ "-signer", catfile($smdir, "smrsa1.pem"), "-out", "test2.cms" ],
+ [ "-verify", "-in", "test2.cms", "-inform", "DER",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt",
+ "-content", $smcont ]
+ ],
+
+ [ "signed content test streaming BER format, DSA key",
+ [ "-sign", "-in", $smcont, "-outform", "DER", "-nodetach",
+ "-stream",
+ "-signer", catfile($smdir, "smdsa1.pem"), "-out", "test.cms" ],
+ [ "-verify", "-in", "test.cms", "-inform", "DER",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
+ ],
+
+ [ "signed content test streaming BER format, 2 DSA and 2 RSA keys",
+ [ "-sign", "-in", $smcont, "-outform", "DER", "-nodetach",
+ "-signer", catfile($smdir, "smrsa1.pem"),
+ "-signer", catfile($smdir, "smrsa2.pem"),
+ "-signer", catfile($smdir, "smdsa1.pem"),
+ "-signer", catfile($smdir, "smdsa2.pem"),
+ "-stream", "-out", "test.cms" ],
+ [ "-verify", "-in", "test.cms", "-inform", "DER",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
+ ],
+
+ [ "signed content test streaming BER format, 2 DSA and 2 RSA keys, no attributes",
+ [ "-sign", "-in", $smcont, "-outform", "DER", "-noattr", "-nodetach",
+ "-signer", catfile($smdir, "smrsa1.pem"),
+ "-signer", catfile($smdir, "smrsa2.pem"),
+ "-signer", catfile($smdir, "smdsa1.pem"),
+ "-signer", catfile($smdir, "smdsa2.pem"),
+ "-stream", "-out", "test.cms" ],
+ [ "-verify", "-in", "test.cms", "-inform", "DER",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
+ ],
+
+ [ "signed content S/MIME format, RSA key SHA1",
+ [ "-sign", "-in", $smcont, "-md", "sha1",
+ "-certfile", catfile($smdir, "smroot.pem"),
+ "-signer", catfile($smdir, "smrsa1.pem"), "-out", "test.cms" ],
+ [ "-verify", "-in", "test.cms",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
+ ],
+
+ [ "signed content test streaming S/MIME format, 2 DSA and 2 RSA keys",
+ [ "-sign", "-in", $smcont, "-nodetach",
+ "-signer", catfile($smdir, "smrsa1.pem"),
+ "-signer", catfile($smdir, "smrsa2.pem"),
+ "-signer", catfile($smdir, "smdsa1.pem"),
+ "-signer", catfile($smdir, "smdsa2.pem"),
+ "-stream", "-out", "test.cms" ],
+ [ "-verify", "-in", "test.cms",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
+ ],
+
+ [ "signed content test streaming multipart S/MIME format, 2 DSA and 2 RSA keys",
+ [ "-sign", "-in", $smcont,
+ "-signer", catfile($smdir, "smrsa1.pem"),
+ "-signer", catfile($smdir, "smrsa2.pem"),
+ "-signer", catfile($smdir, "smdsa1.pem"),
+ "-signer", catfile($smdir, "smdsa2.pem"),
+ "-stream", "-out", "test.cms" ],
+ [ "-verify", "-in", "test.cms",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
+ ],
+
+ [ "enveloped content test streaming S/MIME format, DES, 3 recipients",
+ [ "-encrypt", "-in", $smcont,
+ "-stream", "-out", "test.cms",
+ catfile($smdir, "smrsa1.pem"),
+ catfile($smdir, "smrsa2.pem"),
+ catfile($smdir, "smrsa3.pem") ],
+ [ "-decrypt", "-recip", catfile($smdir, "smrsa1.pem"),
+ "-in", "test.cms", "-out", "smtst.txt" ]
+ ],
+
+ [ "enveloped content test streaming S/MIME format, DES, 3 recipients, 3rd used",
+ [ "-encrypt", "-in", $smcont,
+ "-stream", "-out", "test.cms",
+ catfile($smdir, "smrsa1.pem"),
+ catfile($smdir, "smrsa2.pem"),
+ catfile($smdir, "smrsa3.pem") ],
+ [ "-decrypt", "-recip", catfile($smdir, "smrsa3.pem"),
+ "-in", "test.cms", "-out", "smtst.txt" ]
+ ],
+
+ [ "enveloped content test streaming S/MIME format, DES, 3 recipients, key only used",
+ [ "-encrypt", "-in", $smcont,
+ "-stream", "-out", "test.cms",
+ catfile($smdir, "smrsa1.pem"),
+ catfile($smdir, "smrsa2.pem"),
+ catfile($smdir, "smrsa3.pem") ],
+ [ "-decrypt", "-inkey", catfile($smdir, "smrsa3.pem"),
+ "-in", "test.cms", "-out", "smtst.txt" ]
+ ],
+
+ [ "enveloped content test streaming S/MIME format, AES-256 cipher, 3 recipients",
+ [ "-encrypt", "-in", $smcont,
+ "-aes256", "-stream", "-out", "test.cms",
+ catfile($smdir, "smrsa1.pem"),
+ catfile($smdir, "smrsa2.pem"),
+ catfile($smdir, "smrsa3.pem") ],
+ [ "-decrypt", "-recip", catfile($smdir, "smrsa1.pem"),
+ "-in", "test.cms", "-out", "smtst.txt" ]
+ ],
+
+);
+
+my @smime_cms_tests = (
+
+ [ "signed content test streaming BER format, 2 DSA and 2 RSA keys, keyid",
+ [ "-sign", "-in", $smcont, "-outform", "DER", "-nodetach", "-keyid",
+ "-signer", catfile($smdir, "smrsa1.pem"),
+ "-signer", catfile($smdir, "smrsa2.pem"),
+ "-signer", catfile($smdir, "smdsa1.pem"),
+ "-signer", catfile($smdir, "smdsa2.pem"),
+ "-stream", "-out", "test.cms" ],
+ [ "-verify", "-in", "test.cms", "-inform", "DER",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
+ ],
+
+ [ "signed content test streaming PEM format, 2 DSA and 2 RSA keys",
+ [ "-sign", "-in", $smcont, "-outform", "PEM", "-nodetach",
+ "-signer", catfile($smdir, "smrsa1.pem"),
+ "-signer", catfile($smdir, "smrsa2.pem"),
+ "-signer", catfile($smdir, "smdsa1.pem"),
+ "-signer", catfile($smdir, "smdsa2.pem"),
+ "-stream", "-out", "test.cms" ],
+ [ "-verify", "-in", "test.cms", "-inform", "PEM",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
+ ],
+
+ [ "signed content MIME format, RSA key, signed receipt request",
+ [ "-sign", "-in", $smcont, "-signer", catfile($smdir, "smrsa1.pem"), "-nodetach",
+ "-receipt_request_to", "test\@openssl.org", "-receipt_request_all",
+ "-out", "test.cms" ],
+ [ "-verify", "-in", "test.cms",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
+ ],
+
+ [ "signed receipt MIME format, RSA key",
+ [ "-sign_receipt", "-in", "test.cms",
+ "-signer", catfile($smdir, "smrsa2.pem"),
+ "-out", "test2.cms" ],
+ [ "-verify_receipt", "test2.cms", "-in", "test.cms",
+ "-CAfile", catfile($smdir, "smroot.pem") ]
+ ],
+
+ [ "enveloped content test streaming S/MIME format, DES, 3 recipients, keyid",
+ [ "-encrypt", "-in", $smcont,
+ "-stream", "-out", "test.cms", "-keyid",
+ catfile($smdir, "smrsa1.pem"),
+ catfile($smdir, "smrsa2.pem"),
+ catfile($smdir, "smrsa3.pem") ],
+ [ "-decrypt", "-recip", catfile($smdir, "smrsa1.pem"),
+ "-in", "test.cms", "-out", "smtst.txt" ]
+ ],
+
+ [ "enveloped content test streaming PEM format, KEK",
+ [ "-encrypt", "-in", $smcont, "-outform", "PEM", "-aes128",
+ "-stream", "-out", "test.cms",
+ "-secretkey", "000102030405060708090A0B0C0D0E0F",
+ "-secretkeyid", "C0FEE0" ],
+ [ "-decrypt", "-in", "test.cms", "-out", "smtst.txt", "-inform", "PEM",
+ "-secretkey", "000102030405060708090A0B0C0D0E0F",
+ "-secretkeyid", "C0FEE0" ]
+ ],
+
+ [ "enveloped content test streaming PEM format, KEK, key only",
+ [ "-encrypt", "-in", $smcont, "-outform", "PEM", "-aes128",
+ "-stream", "-out", "test.cms",
+ "-secretkey", "000102030405060708090A0B0C0D0E0F",
+ "-secretkeyid", "C0FEE0" ],
+ [ "-decrypt", "-in", "test.cms", "-out", "smtst.txt", "-inform", "PEM",
+ "-secretkey", "000102030405060708090A0B0C0D0E0F" ]
+ ],
+
+ [ "data content test streaming PEM format",
+ [ "-data_create", "-in", $smcont, "-outform", "PEM", "-nodetach",
+ "-stream", "-out", "test.cms" ],
+ [ "-data_out", "-in", "test.cms", "-inform", "PEM", "-out", "smtst.txt" ]
+ ],
+
+ [ "encrypted content test streaming PEM format, 128 bit RC2 key",
+ [ "-EncryptedData_encrypt", "-in", $smcont, "-outform", "PEM",
+ "-rc2", "-secretkey", "000102030405060708090A0B0C0D0E0F",
+ "-stream", "-out", "test.cms" ],
+ [ "-EncryptedData_decrypt", "-in", "test.cms", "-inform", "PEM",
+ "-secretkey", "000102030405060708090A0B0C0D0E0F", "-out", "smtst.txt" ]
+ ],
+
+ [ "encrypted content test streaming PEM format, 40 bit RC2 key",
+ [ "-EncryptedData_encrypt", "-in", $smcont, "-outform", "PEM",
+ "-rc2", "-secretkey", "0001020304",
+ "-stream", "-out", "test.cms" ],
+ [ "-EncryptedData_decrypt", "-in", "test.cms", "-inform", "PEM",
+ "-secretkey", "0001020304", "-out", "smtst.txt" ]
+ ],
+
+ [ "encrypted content test streaming PEM format, triple DES key",
+ [ "-EncryptedData_encrypt", "-in", $smcont, "-outform", "PEM",
+ "-des3", "-secretkey", "000102030405060708090A0B0C0D0E0F1011121314151617",
+ "-stream", "-out", "test.cms" ],
+ [ "-EncryptedData_decrypt", "-in", "test.cms", "-inform", "PEM",
+ "-secretkey", "000102030405060708090A0B0C0D0E0F1011121314151617",
+ "-out", "smtst.txt" ]
+ ],
+
+ [ "encrypted content test streaming PEM format, 128 bit AES key",
+ [ "-EncryptedData_encrypt", "-in", $smcont, "-outform", "PEM",
+ "-aes128", "-secretkey", "000102030405060708090A0B0C0D0E0F",
+ "-stream", "-out", "test.cms" ],
+ [ "-EncryptedData_decrypt", "-in", "test.cms", "-inform", "PEM",
+ "-secretkey", "000102030405060708090A0B0C0D0E0F", "-out", "smtst.txt" ]
+ ],
+
+);
+
+my @smime_cms_comp_tests = (
+
+ [ "compressed content test streaming PEM format",
+ [ "-compress", "-in", $smcont, "-outform", "PEM", "-nodetach",
+ "-stream", "-out", "test.cms" ],
+ [ "-uncompress", "-in", "test.cms", "-inform", "PEM", "-out", "smtst.txt" ]
+ ]
+
+);
+
+my @smime_cms_param_tests = (
+ [ "signed content test streaming PEM format, RSA keys, PSS signature",
+ [ "-sign", "-in", $smcont, "-outform", "PEM", "-nodetach",
+ "-signer", catfile($smdir, "smrsa1.pem"), "-keyopt", "rsa_padding_mode:pss",
+ "-out", "test.cms" ],
+ [ "-verify", "-in", "test.cms", "-inform", "PEM",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
+ ],
+
+ [ "signed content test streaming PEM format, RSA keys, PSS signature, saltlen=max",
+ [ "-sign", "-in", $smcont, "-outform", "PEM", "-nodetach",
+ "-signer", catfile($smdir, "smrsa1.pem"), "-keyopt", "rsa_padding_mode:pss",
+ "-keyopt", "rsa_pss_saltlen:max", "-out", "test.cms" ],
+ [ "-verify", "-in", "test.cms", "-inform", "PEM",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
+ ],
+
+ [ "signed content test streaming PEM format, RSA keys, PSS signature, no attributes",
+ [ "-sign", "-in", $smcont, "-outform", "PEM", "-nodetach", "-noattr",
+ "-signer", catfile($smdir, "smrsa1.pem"), "-keyopt", "rsa_padding_mode:pss",
+ "-out", "test.cms" ],
+ [ "-verify", "-in", "test.cms", "-inform", "PEM",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
+ ],
+
+ [ "signed content test streaming PEM format, RSA keys, PSS signature, SHA384 MGF1",
+ [ "-sign", "-in", $smcont, "-outform", "PEM", "-nodetach",
+ "-signer", catfile($smdir, "smrsa1.pem"), "-keyopt", "rsa_padding_mode:pss",
+ "-keyopt", "rsa_mgf1_md:sha384", "-out", "test.cms" ],
+ [ "-verify", "-in", "test.cms", "-inform", "PEM",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
+ ],
+
+ [ "enveloped content test streaming S/MIME format, DES, OAEP default parameters",
+ [ "-encrypt", "-in", $smcont,
+ "-stream", "-out", "test.cms",
+ "-recip", catfile($smdir, "smrsa1.pem"), "-keyopt", "rsa_padding_mode:oaep" ],
+ [ "-decrypt", "-recip", catfile($smdir, "smrsa1.pem"),
+ "-in", "test.cms", "-out", "smtst.txt" ]
+ ],
+
+ [ "enveloped content test streaming S/MIME format, DES, OAEP SHA256",
+ [ "-encrypt", "-in", $smcont,
+ "-stream", "-out", "test.cms",
+ "-recip", catfile($smdir, "smrsa1.pem"), "-keyopt", "rsa_padding_mode:oaep",
+ "-keyopt", "rsa_oaep_md:sha256" ],
+ [ "-decrypt", "-recip", catfile($smdir, "smrsa1.pem"),
+ "-in", "test.cms", "-out", "smtst.txt" ]
+ ],
+
+ [ "enveloped content test streaming S/MIME format, DES, ECDH",
+ [ "-encrypt", "-in", $smcont,
+ "-stream", "-out", "test.cms",
+ "-recip", catfile($smdir, "smec1.pem") ],
+ [ "-decrypt", "-recip", catfile($smdir, "smec1.pem"),
+ "-in", "test.cms", "-out", "smtst.txt" ]
+ ],
+
+ [ "enveloped content test streaming S/MIME format, DES, ECDH, 2 recipients, key only used",
+ [ "-encrypt", "-in", $smcont,
+ "-stream", "-out", "test.cms",
+ catfile($smdir, "smec1.pem"),
+ catfile($smdir, "smec3.pem") ],
+ [ "-decrypt", "-inkey", catfile($smdir, "smec3.pem"),
+ "-in", "test.cms", "-out", "smtst.txt" ]
+ ],
+
+ [ "enveloped content test streaming S/MIME format, ECDH, DES, key identifier",
+ [ "-encrypt", "-keyid", "-in", $smcont,
+ "-stream", "-out", "test.cms",
+ "-recip", catfile($smdir, "smec1.pem") ],
+ [ "-decrypt", "-recip", catfile($smdir, "smec1.pem"),
+ "-in", "test.cms", "-out", "smtst.txt" ]
+ ],
+
+ [ "enveloped content test streaming S/MIME format, ECDH, AES128, SHA256 KDF",
+ [ "-encrypt", "-in", $smcont,
+ "-stream", "-out", "test.cms",
+ "-recip", catfile($smdir, "smec1.pem"), "-aes128", "-keyopt", "ecdh_kdf_md:sha256" ],
+ [ "-decrypt", "-recip", catfile($smdir, "smec1.pem"),
+ "-in", "test.cms", "-out", "smtst.txt" ]
+ ],
+
+ [ "enveloped content test streaming S/MIME format, ECDH, K-283, cofactor DH",
+ [ "-encrypt", "-in", $smcont,
+ "-stream", "-out", "test.cms",
+ "-recip", catfile($smdir, "smec2.pem"), "-aes128",
+ "-keyopt", "ecdh_kdf_md:sha256", "-keyopt", "ecdh_cofactor_mode:1" ],
+ [ "-decrypt", "-recip", catfile($smdir, "smec2.pem"),
+ "-in", "test.cms", "-out", "smtst.txt" ]
+ ],
+
+ [ "enveloped content test streaming S/MIME format, X9.42 DH",
+ [ "-encrypt", "-in", $smcont,
+ "-stream", "-out", "test.cms",
+ "-recip", catfile($smdir, "smdh.pem"), "-aes128" ],
+ [ "-decrypt", "-recip", catfile($smdir, "smdh.pem"),
+ "-in", "test.cms", "-out", "smtst.txt" ]
+ ]
+ );
+
+my @contenttype_cms_test = (
+ [ "signed content test - check that content type is added to additional signerinfo, RSA keys",
+ [ "-sign", "-binary", "-nodetach", "-stream", "-in", $smcont, "-outform", "DER",
+ "-signer", catfile($smdir, "smrsa1.pem"), "-md", "SHA256",
+ "-out", "test.cms" ],
+ [ "-resign", "-binary", "-nodetach", "-in", "test.cms", "-inform", "DER", "-outform", "DER",
+ "-signer", catfile($smdir, "smrsa2.pem"), "-md", "SHA256",
+ "-out", "test2.cms" ],
+ [ "-verify", "-in", "test2.cms", "-inform", "DER",
+ "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ]
+ ],
+);
+
+my @incorrect_attribute_cms_test = (
+ "bad_signtime_attr.cms",
+ "no_ct_attr.cms",
+ "no_md_attr.cms",
+ "ct_multiple_attr.cms"
+);
+
+subtest "CMS => PKCS#7 compatibility tests\n" => sub {
+ plan tests => scalar @smime_pkcs7_tests;
+
+ foreach (@smime_pkcs7_tests) {
+ SKIP: {
+ my $skip_reason = check_availability($$_[0]);
+ skip $skip_reason, 1 if $skip_reason;
+
+ ok(run(app(["openssl", "cms", @{$$_[1]}]))
+ && run(app(["openssl", "smime", @{$$_[2]}]))
+ && compare_text($smcont, "smtst.txt") == 0,
+ $$_[0]);
+ }
+ }
+};
+subtest "CMS <= PKCS#7 compatibility tests\n" => sub {
+ plan tests => scalar @smime_pkcs7_tests;
+
+ foreach (@smime_pkcs7_tests) {
+ SKIP: {
+ my $skip_reason = check_availability($$_[0]);
+ skip $skip_reason, 1 if $skip_reason;
+
+ ok(run(app(["openssl", "smime", @{$$_[1]}]))
+ && run(app(["openssl", "cms", @{$$_[2]}]))
+ && compare_text($smcont, "smtst.txt") == 0,
+ $$_[0]);
+ }
+ }
+};
+
+subtest "CMS <=> CMS consistency tests\n" => sub {
+ plan tests => (scalar @smime_pkcs7_tests) + (scalar @smime_cms_tests);
+
+ foreach (@smime_pkcs7_tests) {
+ SKIP: {
+ my $skip_reason = check_availability($$_[0]);
+ skip $skip_reason, 1 if $skip_reason;
+
+ ok(run(app(["openssl", "cms", @{$$_[1]}]))
+ && run(app(["openssl", "cms", @{$$_[2]}]))
+ && compare_text($smcont, "smtst.txt") == 0,
+ $$_[0]);
+ }
+ }
+ foreach (@smime_cms_tests) {
+ SKIP: {
+ my $skip_reason = check_availability($$_[0]);
+ skip $skip_reason, 1 if $skip_reason;
+
+ ok(run(app(["openssl", "cms", @{$$_[1]}]))
+ && run(app(["openssl", "cms", @{$$_[2]}]))
+ && compare_text($smcont, "smtst.txt") == 0,
+ $$_[0]);
+ }
+ }
+};
+
+subtest "CMS <=> CMS consistency tests, modified key parameters\n" => sub {
+ plan tests =>
+ (scalar @smime_cms_param_tests) + (scalar @smime_cms_comp_tests);
+
+ foreach (@smime_cms_param_tests) {
+ SKIP: {
+ my $skip_reason = check_availability($$_[0]);
+ skip $skip_reason, 1 if $skip_reason;
+
+ ok(run(app(["openssl", "cms", @{$$_[1]}]))
+ && run(app(["openssl", "cms", @{$$_[2]}]))
+ && compare_text($smcont, "smtst.txt") == 0,
+ $$_[0]);
+ }
+ }
+
+ SKIP: {
+ skip("Zlib not supported: compression tests skipped",
+ scalar @smime_cms_comp_tests)
+ if $no_zlib;
+
+ foreach (@smime_cms_comp_tests) {
+ SKIP: {
+ my $skip_reason = check_availability($$_[0]);
+ skip $skip_reason, 1 if $skip_reason;
+
+ ok(run(app(["openssl", "cms", @{$$_[1]}]))
+ && run(app(["openssl", "cms", @{$$_[2]}]))
+ && compare_text($smcont, "smtst.txt") == 0,
+ $$_[0]);
+ }
+ }
+ }
+};
+
+# Returns the number of matches of a Content Type Attribute in a binary file.
+sub contentType_matches {
+ # Read in a binary file
+ my ($in) = @_;
+ open (HEX_IN, "$in") or die("open failed for $in : $!");
+ binmode(HEX_IN);
+ local $/;
+ my $str = <HEX_IN>;
+
+ # Find ASN1 data for a Content Type Attribute (with a OID of PKCS7 data)
+ my @c = $str =~ /\x30\x18\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x09\x03\x31\x0B\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x07\x01/gs;
+
+ close(HEX_IN);
+ return scalar(@c);
+}
+
+subtest "CMS Check the content type attribute is added for additional signers\n" => sub {
+ plan tests =>
+ (scalar @contenttype_cms_test);
+
+ foreach (@contenttype_cms_test) {
+ SKIP: {
+ my $skip_reason = check_availability($$_[0]);
+ skip $skip_reason, 1 if $skip_reason;
+
+ ok(run(app(["openssl", "cms", @{$$_[1]}]))
+ && run(app(["openssl", "cms", @{$$_[2]}]))
+ && contentType_matches("test2.cms") == 2
+ && run(app(["openssl", "cms", @{$$_[3]}])),
+ $$_[0]);
+ }
+ }
+};
+
+subtest "CMS Check that bad attributes fail when verifying signers\n" => sub {
+ plan tests =>
+ (scalar @incorrect_attribute_cms_test);
+
+ foreach my $name (@incorrect_attribute_cms_test) {
+ ok(!run(app(["openssl", "cms", "-verify", "-in",
+ catfile($datadir, $name), "-inform", "DER", "-CAfile",
+ catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ])),
+ $name);
+ }
+};
+
+unlink "test.cms";
+unlink "test2.cms";
+unlink "smtst.txt";
+
+sub check_availability {
+ my $tnam = shift;
+
+ return "$tnam: skipped, EC disabled\n"
+ if ($no_ec && $tnam =~ /ECDH/);
+ return "$tnam: skipped, ECDH disabled\n"
+ if ($no_ec && $tnam =~ /ECDH/);
+ return "$tnam: skipped, EC2M disabled\n"
+ if ($no_ec2m && $tnam =~ /K-283/);
+ return "$tnam: skipped, DH disabled\n"
+ if ($no_dh && $tnam =~ /X9\.42/);
+ return "$tnam: skipped, RC2 disabled\n"
+ if ($no_rc2 && $tnam =~ /RC2/);
+ return "$tnam: skipped, DES disabled\n"
+ if ($no_des && $tnam =~ /DES/);
+ return "$tnam: skipped, DSA disabled\n"
+ if ($no_dsa && $tnam =~ / DSA/);
+
+ return "";
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms_data/bad_signtime_attr.cms b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms_data/bad_signtime_attr.cms
new file mode 100644
index 000000000..048a49358
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms_data/bad_signtime_attr.cms
Binary files differ
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms_data/ct_multiple_attr.cms b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms_data/ct_multiple_attr.cms
new file mode 100644
index 000000000..974db6ef9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms_data/ct_multiple_attr.cms
Binary files differ
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms_data/no_ct_attr.cms b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms_data/no_ct_attr.cms
new file mode 100644
index 000000000..64b688b91
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms_data/no_ct_attr.cms
Binary files differ
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms_data/no_md_attr.cms b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms_data/no_md_attr.cms
new file mode 100644
index 000000000..d0a3afa52
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cms_data/no_md_attr.cms
Binary files differ
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cmsapi.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cmsapi.t
new file mode 100644
index 000000000..990f8a72b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_cmsapi.t
@@ -0,0 +1,21 @@
+#! /usr/bin/env perl
+# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Utils;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_cmsapi");
+
+plan skip_all => "CMS is disabled in this build" if disabled("cms");
+
+plan tests => 1;
+
+ok(run(test(["cmsapitest", srctop_file("test", "certs", "servercert.pem"),
+ srctop_file("test", "certs", "serverkey.pem")])),
+ "running cmsapitest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ct.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ct.t
new file mode 100644
index 000000000..9c717b2ef
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ct.t
@@ -0,0 +1,17 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test qw/:DEFAULT srctop_file srctop_dir/;
+use OpenSSL::Test::Simple;
+
+setup("test_ct");
+$ENV{CTLOG_FILE} = srctop_file("test", "ct", "log_list.conf");
+$ENV{CT_DIR} = srctop_dir("test", "ct");
+$ENV{CERTS_DIR} = srctop_dir("test", "certs");
+simple_test("test_ct", "ct_test", "ct", "ec");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_dane.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_dane.t
new file mode 100644
index 000000000..527e66345
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_dane.t
@@ -0,0 +1,24 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_dane");
+
+plan skip_all => "test_dane uses ec which is not supported by this OpenSSL build"
+ if disabled("ec");
+
+plan tests => 1; # The number of tests being performed
+
+ok(run(test(["danetest", "example.com",
+ srctop_file("test", "danetest.pem"),
+ srctop_file("test", "danetest.in")])), "dane tests");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_dtls.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_dtls.t
new file mode 100644
index 000000000..f4a2dc034
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_dtls.t
@@ -0,0 +1,20 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use OpenSSL::Test::Utils;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_dtls");
+
+plan skip_all => "No DTLS protocols are supported by this OpenSSL build"
+ if alldisabled(available_protocols("dtls"));
+
+plan tests => 1;
+
+ok(run(test(["dtlstest", srctop_file("apps", "server.pem"),
+ srctop_file("apps", "server.pem")])), "running dtlstest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_dtls_mtu.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_dtls_mtu.t
new file mode 100644
index 000000000..86d7de075
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_dtls_mtu.t
@@ -0,0 +1,21 @@
+#! /usr/bin/env perl
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test;
+use OpenSSL::Test::Utils;
+
+my $test_name = "test_dtls_mtu";
+setup($test_name);
+
+plan skip_all => "$test_name needs DTLS and PSK support enabled"
+ if disabled("dtls1_2") || disabled("psk");
+
+plan tests => 1;
+
+ok(run(test(["dtls_mtu_test"])), "running dtls_mtu_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_dtlsv1listen.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_dtlsv1listen.t
new file mode 100644
index 000000000..dd1bb35b6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_dtlsv1listen.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_dtlsv1listen", "dtlsv1listentest", "dh");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ocsp.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ocsp.t
new file mode 100644
index 000000000..e9ed7b4d5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ocsp.t
@@ -0,0 +1,219 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use POSIX;
+use File::Spec::Functions qw/devnull catfile/;
+use File::Copy;
+use OpenSSL::Test qw/:DEFAULT with pipe srctop_dir data_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_ocsp");
+
+plan skip_all => "OCSP is not supported by this OpenSSL build"
+ if disabled("ocsp");
+
+my $ocspdir=srctop_dir("test", "ocsp-tests");
+# 17 December 2012 so we don't get certificate expiry errors.
+my @check_time=("-attime", "1355875200");
+
+sub test_ocsp {
+ my $title = shift;
+ my $inputfile = shift;
+ my $CAfile = shift;
+ my $untrusted = shift;
+ if ($untrusted eq "") {
+ $untrusted = $CAfile;
+ }
+ my $expected_exit = shift;
+
+ run(app(["openssl", "base64", "-d",
+ "-in", catfile($ocspdir,$inputfile),
+ "-out", "ocsp-resp-fff.dat"]));
+ with({ exit_checker => sub { return shift == $expected_exit; } },
+ sub { ok(run(app(["openssl", "ocsp", "-respin", "ocsp-resp-fff.dat",
+ "-partial_chain", @check_time,
+ "-CAfile", catfile($ocspdir, $CAfile),
+ "-verify_other", catfile($ocspdir, $untrusted),
+ "-no-CApath"])),
+ $title); });
+ unlink "ocsp-resp-fff.dat";
+}
+
+plan tests => 11;
+
+subtest "=== VALID OCSP RESPONSES ===" => sub {
+ plan tests => 7;
+
+ test_ocsp("NON-DELEGATED; Intermediate CA -> EE",
+ "ND1.ors", "ND1_Issuer_ICA.pem", "", 0);
+ test_ocsp("NON-DELEGATED; Root CA -> Intermediate CA",
+ "ND2.ors", "ND2_Issuer_Root.pem", "", 0);
+ test_ocsp("NON-DELEGATED; Root CA -> EE",
+ "ND3.ors", "ND3_Issuer_Root.pem", "", 0);
+ test_ocsp("NON-DELEGATED; 3-level CA hierarchy",
+ "ND1.ors", "ND1_Cross_Root.pem", "ND1_Issuer_ICA-Cross.pem", 0);
+ test_ocsp("DELEGATED; Intermediate CA -> EE",
+ "D1.ors", "D1_Issuer_ICA.pem", "", 0);
+ test_ocsp("DELEGATED; Root CA -> Intermediate CA",
+ "D2.ors", "D2_Issuer_Root.pem", "", 0);
+ test_ocsp("DELEGATED; Root CA -> EE",
+ "D3.ors", "D3_Issuer_Root.pem", "", 0);
+};
+
+subtest "=== INVALID SIGNATURE on the OCSP RESPONSE ===" => sub {
+ plan tests => 6;
+
+ test_ocsp("NON-DELEGATED; Intermediate CA -> EE",
+ "ISOP_ND1.ors", "ND1_Issuer_ICA.pem", "", 1);
+ test_ocsp("NON-DELEGATED; Root CA -> Intermediate CA",
+ "ISOP_ND2.ors", "ND2_Issuer_Root.pem", "", 1);
+ test_ocsp("NON-DELEGATED; Root CA -> EE",
+ "ISOP_ND3.ors", "ND3_Issuer_Root.pem", "", 1);
+ test_ocsp("DELEGATED; Intermediate CA -> EE",
+ "ISOP_D1.ors", "D1_Issuer_ICA.pem", "", 1);
+ test_ocsp("DELEGATED; Root CA -> Intermediate CA",
+ "ISOP_D2.ors", "D2_Issuer_Root.pem", "", 1);
+ test_ocsp("DELEGATED; Root CA -> EE",
+ "ISOP_D3.ors", "D3_Issuer_Root.pem", "", 1);
+};
+
+subtest "=== WRONG RESPONDERID in the OCSP RESPONSE ===" => sub {
+ plan tests => 6;
+
+ test_ocsp("NON-DELEGATED; Intermediate CA -> EE",
+ "WRID_ND1.ors", "ND1_Issuer_ICA.pem", "", 1);
+ test_ocsp("NON-DELEGATED; Root CA -> Intermediate CA",
+ "WRID_ND2.ors", "ND2_Issuer_Root.pem", "", 1);
+ test_ocsp("NON-DELEGATED; Root CA -> EE",
+ "WRID_ND3.ors", "ND3_Issuer_Root.pem", "", 1);
+ test_ocsp("DELEGATED; Intermediate CA -> EE",
+ "WRID_D1.ors", "D1_Issuer_ICA.pem", "", 1);
+ test_ocsp("DELEGATED; Root CA -> Intermediate CA",
+ "WRID_D2.ors", "D2_Issuer_Root.pem", "", 1);
+ test_ocsp("DELEGATED; Root CA -> EE",
+ "WRID_D3.ors", "D3_Issuer_Root.pem", "", 1);
+};
+
+subtest "=== WRONG ISSUERNAMEHASH in the OCSP RESPONSE ===" => sub {
+ plan tests => 6;
+
+ test_ocsp("NON-DELEGATED; Intermediate CA -> EE",
+ "WINH_ND1.ors", "ND1_Issuer_ICA.pem", "", 1);
+ test_ocsp("NON-DELEGATED; Root CA -> Intermediate CA",
+ "WINH_ND2.ors", "ND2_Issuer_Root.pem", "", 1);
+ test_ocsp("NON-DELEGATED; Root CA -> EE",
+ "WINH_ND3.ors", "ND3_Issuer_Root.pem", "", 1);
+ test_ocsp("DELEGATED; Intermediate CA -> EE",
+ "WINH_D1.ors", "D1_Issuer_ICA.pem", "", 1);
+ test_ocsp("DELEGATED; Root CA -> Intermediate CA",
+ "WINH_D2.ors", "D2_Issuer_Root.pem", "", 1);
+ test_ocsp("DELEGATED; Root CA -> EE",
+ "WINH_D3.ors", "D3_Issuer_Root.pem", "", 1);
+};
+
+subtest "=== WRONG ISSUERKEYHASH in the OCSP RESPONSE ===" => sub {
+ plan tests => 6;
+
+ test_ocsp("NON-DELEGATED; Intermediate CA -> EE",
+ "WIKH_ND1.ors", "ND1_Issuer_ICA.pem", "", 1);
+ test_ocsp("NON-DELEGATED; Root CA -> Intermediate CA",
+ "WIKH_ND2.ors", "ND2_Issuer_Root.pem", "", 1);
+ test_ocsp("NON-DELEGATED; Root CA -> EE",
+ "WIKH_ND3.ors", "ND3_Issuer_Root.pem", "", 1);
+ test_ocsp("DELEGATED; Intermediate CA -> EE",
+ "WIKH_D1.ors", "D1_Issuer_ICA.pem", "", 1);
+ test_ocsp("DELEGATED; Root CA -> Intermediate CA",
+ "WIKH_D2.ors", "D2_Issuer_Root.pem", "", 1);
+ test_ocsp("DELEGATED; Root CA -> EE",
+ "WIKH_D3.ors", "D3_Issuer_Root.pem", "", 1);
+};
+
+subtest "=== WRONG KEY in the DELEGATED OCSP SIGNING CERTIFICATE ===" => sub {
+ plan tests => 3;
+
+ test_ocsp("DELEGATED; Intermediate CA -> EE",
+ "WKDOSC_D1.ors", "D1_Issuer_ICA.pem", "", 1);
+ test_ocsp("DELEGATED; Root CA -> Intermediate CA",
+ "WKDOSC_D2.ors", "D2_Issuer_Root.pem", "", 1);
+ test_ocsp("DELEGATED; Root CA -> EE",
+ "WKDOSC_D3.ors", "D3_Issuer_Root.pem", "", 1);
+};
+
+subtest "=== INVALID SIGNATURE on the DELEGATED OCSP SIGNING CERTIFICATE ===" => sub {
+ plan tests => 3;
+
+ test_ocsp("DELEGATED; Intermediate CA -> EE",
+ "ISDOSC_D1.ors", "D1_Issuer_ICA.pem", "", 1);
+ test_ocsp("DELEGATED; Root CA -> Intermediate CA",
+ "ISDOSC_D2.ors", "D2_Issuer_Root.pem", "", 1);
+ test_ocsp("DELEGATED; Root CA -> EE",
+ "ISDOSC_D3.ors", "D3_Issuer_Root.pem", "", 1);
+};
+
+subtest "=== WRONG SUBJECT NAME in the ISSUER CERTIFICATE ===" => sub {
+ plan tests => 6;
+
+ test_ocsp("NON-DELEGATED; Intermediate CA -> EE",
+ "ND1.ors", "WSNIC_ND1_Issuer_ICA.pem", "", 1);
+ test_ocsp("NON-DELEGATED; Root CA -> Intermediate CA",
+ "ND2.ors", "WSNIC_ND2_Issuer_Root.pem", "", 1);
+ test_ocsp("NON-DELEGATED; Root CA -> EE",
+ "ND3.ors", "WSNIC_ND3_Issuer_Root.pem", "", 1);
+ test_ocsp("DELEGATED; Intermediate CA -> EE",
+ "D1.ors", "WSNIC_D1_Issuer_ICA.pem", "", 1);
+ test_ocsp("DELEGATED; Root CA -> Intermediate CA",
+ "D2.ors", "WSNIC_D2_Issuer_Root.pem", "", 1);
+ test_ocsp("DELEGATED; Root CA -> EE",
+ "D3.ors", "WSNIC_D3_Issuer_Root.pem", "", 1);
+};
+
+subtest "=== WRONG KEY in the ISSUER CERTIFICATE ===" => sub {
+ plan tests => 6;
+
+ test_ocsp("NON-DELEGATED; Intermediate CA -> EE",
+ "ND1.ors", "WKIC_ND1_Issuer_ICA.pem", "", 1);
+ test_ocsp("NON-DELEGATED; Root CA -> Intermediate CA",
+ "ND2.ors", "WKIC_ND2_Issuer_Root.pem", "", 1);
+ test_ocsp("NON-DELEGATED; Root CA -> EE",
+ "ND3.ors", "WKIC_ND3_Issuer_Root.pem", "", 1);
+ test_ocsp("DELEGATED; Intermediate CA -> EE",
+ "D1.ors", "WKIC_D1_Issuer_ICA.pem", "", 1);
+ test_ocsp("DELEGATED; Root CA -> Intermediate CA",
+ "D2.ors", "WKIC_D2_Issuer_Root.pem", "", 1);
+ test_ocsp("DELEGATED; Root CA -> EE",
+ "D3.ors", "WKIC_D3_Issuer_Root.pem", "", 1);
+};
+
+subtest "=== INVALID SIGNATURE on the ISSUER CERTIFICATE ===" => sub {
+ plan tests => 6;
+
+ # Expect success, because we're explicitly trusting the issuer certificate.
+ test_ocsp("NON-DELEGATED; Intermediate CA -> EE",
+ "ND1.ors", "ISIC_ND1_Issuer_ICA.pem", "", 0);
+ test_ocsp("NON-DELEGATED; Root CA -> Intermediate CA",
+ "ND2.ors", "ISIC_ND2_Issuer_Root.pem", "", 0);
+ test_ocsp("NON-DELEGATED; Root CA -> EE",
+ "ND3.ors", "ISIC_ND3_Issuer_Root.pem", "", 0);
+ test_ocsp("DELEGATED; Intermediate CA -> EE",
+ "D1.ors", "ISIC_D1_Issuer_ICA.pem", "", 0);
+ test_ocsp("DELEGATED; Root CA -> Intermediate CA",
+ "D2.ors", "ISIC_D2_Issuer_Root.pem", "", 0);
+ test_ocsp("DELEGATED; Root CA -> EE",
+ "D3.ors", "ISIC_D3_Issuer_Root.pem", "", 0);
+};
+
+subtest "=== OCSP API TESTS===" => sub {
+ plan tests => 1;
+
+ ok(run(test(["ocspapitest", data_file("cert.pem"), data_file("key.pem")])),
+ "running ocspapitest");
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ocsp_data/cert.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ocsp_data/cert.pem
new file mode 100644
index 000000000..f70e7925e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ocsp_data/cert.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDLDCCAhSgAwIBAgICFs8wDQYJKoZIhvcNAQELBQAwSzEQMA4GA1UECgwHT3Bl
+blNTTDETMBEGA1UECwwKVGVzdCBTdWl0ZTEiMCAGA1UEAwwZVGVzdCBPQ1NQIHJl
+c3BvbnNlIHNpZ25lcjAeFw0xNzEwMjMxNDA4MDlaFw0yNjAxMDkxNDA4MDlaMEsx
+EDAOBgNVBAoMB09wZW5TU0wxEzARBgNVBAsMClRlc3QgU3VpdGUxIjAgBgNVBAMM
+GVRlc3QgT0NTUCByZXNwb25zZSBzaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQC81prq23FY2YDuwiXetb/NCs/cSm/afVnPsdSseRKi/GHi9d7b
+EEgWnQOJmz4zTuU+Bw2duHZ1X2WUR/Pjy4CvWNRq417aJ3IfyQHf8cxEplk9Ifd0
+5VEq6WzWVWAX6ki/CZIJUihzj3AAn/SYfvXw2wd319OQGvwYiQVt3Is5k4E4rAI2
+zXf5BdE9XkayM3jq6Ewc/VZ05EA/LaBLy5ujQljjfAFEy/qopYx3AJ4G8t2a5rvM
+dbNOyJCx9NNeryZMv2wRzEaYp6jYao+xxqbm5lgnwfE3jJ4aA9/oC1sUM8FokOGW
+9KAK3UEptoxux8JHH9R8X5bTVE7HADHhG5s7AgMBAAGjGjAYMAkGA1UdEwQCMAAw
+CwYDVR0PBAQDAgXgMA0GCSqGSIb3DQEBCwUAA4IBAQCPkojVPBFNT9DGpLq9Y/Hl
+XhcA+vSdt83EFzPD/nxIMp/QYSnZ9w2SWL21AH4C+HWd4JuKX5Zlsd6qYobYZLcT
+TyVfw0OMwwPUI6Mxbz395EAnVLmtddN2RDsEYvThSMMoSfhtUwyANpA0Q6M8RcGt
+LwnaC69iXhBh1xcTVVg97yEJ22yIrwQ1GhX4F1PRJIAQ/QmQhnoTGlhl2VAQ3LIk
+lNFxkWbx0rqPIcor27QDNa2DPqioyvHMlkjC1h5EPhL9Ynu011r4Dn9A34+vFxeu
+Q+emRwl/JjCNZX4l/AripU/Cy/+J2YGKilKzRcB1QMMVSl0VaeLSCwkNDQtdlwWO
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ocsp_data/key.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ocsp_data/key.pem
new file mode 100644
index 000000000..cd211dc31
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ocsp_data/key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC81prq23FY2YDu
+wiXetb/NCs/cSm/afVnPsdSseRKi/GHi9d7bEEgWnQOJmz4zTuU+Bw2duHZ1X2WU
+R/Pjy4CvWNRq417aJ3IfyQHf8cxEplk9Ifd05VEq6WzWVWAX6ki/CZIJUihzj3AA
+n/SYfvXw2wd319OQGvwYiQVt3Is5k4E4rAI2zXf5BdE9XkayM3jq6Ewc/VZ05EA/
+LaBLy5ujQljjfAFEy/qopYx3AJ4G8t2a5rvMdbNOyJCx9NNeryZMv2wRzEaYp6jY
+ao+xxqbm5lgnwfE3jJ4aA9/oC1sUM8FokOGW9KAK3UEptoxux8JHH9R8X5bTVE7H
+ADHhG5s7AgMBAAECggEBAJLp946eeVmhpiCa5XGWPwlbzwlY1BrNCRGADbC9ZRVu
+ew1jMiWGTj9hmr31DHhIeis+u4YoW+jG9jVdoU5pJc3Fs0URbdsVc0FtVcsPyFbk
+gGsCQQ4t1m8nOaiqtV8Fw+D0piwgQh5dysqBp374z4i6Lt47CHqFs/m2qIWnXp3E
+YF3xX2Zz9rIgejERRxrUnp5998NqxSYHPF7Ts4VQ/+UezUqEpA2jBs6cJ2tWVNR9
+uf+3Fklpo7Uau+xG5xkiRYxx4mSIg6EREz5+XMPkSOcXi6tyinoKsafxTNQDil0q
+pdurVlHNgZb2QdJjHugVmbalydHIQ5c0CU1RO5CP97kCgYEA7RqrRooniil0iAKR
+6scFct0juVBW1Uw05Ejt97RtwQRf/m9SU5mSs0PfFx/l3PeNDSWnpmwunL1igYQb
++tVqDQQ9xR4owyl6/qDJSP2bS84jb+3MCR4UE/b2YR2rCDBllXeyQsDT7KMoW8lX
+gliWmYd6HYddRDOKNM/tzccFG1cCgYEAy+M6yv0ublrpTj4o8DcOi6JJrQbPSAWx
+R7zKDXSvSq5lLjfXmqX4s/jgZWgQ+kYoYZrIOqIygcZ2U6tBMCP2LAhbf86I6r27
+loMyQg7lhC5GCztpGes4/JmUvnvjTUIFspB6ReaXlBFAstzzJirgI1wmoO6+GiG/
+OUDmvCjFdL0CgYALQGa8VDYIImt7QNP31jX1+3SEiMF2IcWox6UzSgajUDfV9SZs
+/S6u/xuJF2RrFfxFkXHhPeUAXyRbjQ9e2d3MfFUKE6JPkJpblvm2UwKZmFCqMRir
+nhfJ0sBiX2wMWW+YpjN5Y3krE5sIsAdNEjMjWgB7gj70y5VVaECasUUWxQKBgQDB
+aauqSIc1VLSh7sGzLudzet5db2pPLmdAYE1kel6Xf9yn/X1gTTYitGNaj2Abq1Y/
+US/Ev30eMwCo2nqaimLK3pq+IVUtKhO78nVIyQzdWXBE03Uei0+iAKdkE+5Kqejx
+vbDggqEka0Fu678VY/MAWDikzhY0f/MBAxpfQGYgGQKBgC0tR1ymvCLkk6J5e4/G
+OD1D9m2JJjcK4eWUS4rAiEH61sI5CKQRU2pQ3f3cIGekDZZt3XzHLYwc9W2UnN2J
+glMmKXp0qqt2HoE/XKLrIc1dEDXsZxFnMZ6nmWKsl4AHxM/gyXqfDo/AUXyEGcVu
+8TbVs3nlISUy7vwjpaW1KOs1
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_pkcs12.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_pkcs12.t
new file mode 100644
index 000000000..430df6708
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_pkcs12.t
@@ -0,0 +1,68 @@
+#! /usr/bin/env perl
+# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use warnings;
+
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+use OpenSSL::Test::Utils;
+
+use Encode;
+
+setup("test_pkcs12");
+
+plan skip_all => "The PKCS12 command line utility is not supported by this OpenSSL build"
+ if disabled("des");
+
+my $pass = "σÏνθημα γνώÏισμα";
+
+my $savedcp;
+if (eval { require Win32::API; 1; }) {
+ # Trouble is that Win32 perl uses CreateProcessA, which
+ # makes it problematic to pass non-ASCII arguments, from perl[!]
+ # that is. This is because CreateProcessA is just a wrapper for
+ # CreateProcessW and will call MultiByteToWideChar and use
+ # system default locale. Since we attempt Greek pass-phrase
+ # conversion can be done only with Greek locale.
+
+ Win32::API->Import("kernel32","UINT GetSystemDefaultLCID()");
+ if (GetSystemDefaultLCID() != 0x408) {
+ plan skip_all => "Non-Greek system locale";
+ } else {
+ # Ensure correct code page so that VERBOSE output is right.
+ Win32::API->Import("kernel32","UINT GetConsoleOutputCP()");
+ Win32::API->Import("kernel32","BOOL SetConsoleOutputCP(UINT cp)");
+ $savedcp = GetConsoleOutputCP();
+ SetConsoleOutputCP(1253);
+ $pass = Encode::encode("cp1253",Encode::decode("utf-8",$pass));
+ }
+} elsif ($^O eq "MSWin32") {
+ plan skip_all => "Win32::API unavailable";
+} else {
+ # Running MinGW tests transparently under Wine apparently requires
+ # UTF-8 locale...
+
+ foreach(`locale -a`) {
+ s/\R$//;
+ if ($_ =~ m/^C\.UTF\-?8/i) {
+ $ENV{LC_ALL} = $_;
+ last;
+ }
+ }
+}
+$ENV{OPENSSL_WIN32_UTF8}=1;
+
+plan tests => 1;
+
+# just see that we can read shibboleth.pfx protected with $pass
+ok(run(app(["openssl", "pkcs12", "-noout",
+ "-password", "pass:$pass",
+ "-in", srctop_file("test", "shibboleth.pfx")])),
+ "test_pkcs12");
+
+SetConsoleOutputCP($savedcp) if (defined($savedcp));
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ssl_new.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ssl_new.t
new file mode 100644
index 000000000..81d8f59a7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ssl_new.t
@@ -0,0 +1,160 @@
+#! /usr/bin/env perl
+# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Basename;
+use File::Compare qw/compare_text/;
+use OpenSSL::Glob;
+use OpenSSL::Test qw/:DEFAULT srctop_dir srctop_file/;
+use OpenSSL::Test::Utils qw/disabled alldisabled available_protocols/;
+
+setup("test_ssl_new");
+
+$ENV{TEST_CERTS_DIR} = srctop_dir("test", "certs");
+$ENV{CTLOG_FILE} = srctop_file("test", "ct", "log_list.conf");
+
+my @conf_srcs = glob(srctop_file("test", "ssl-tests", "*.conf.in"));
+map { s/;.*// } @conf_srcs if $^O eq "VMS";
+my @conf_files = map { basename($_, ".in") } @conf_srcs;
+map { s/\^// } @conf_files if $^O eq "VMS";
+
+# We hard-code the number of tests to double-check that the globbing above
+# finds all files as expected.
+plan tests => 29; # = scalar @conf_srcs
+
+# Some test results depend on the configuration of enabled protocols. We only
+# verify generated sources in the default configuration.
+my $is_default_tls = (disabled("ssl3") && !disabled("tls1") &&
+ !disabled("tls1_1") && !disabled("tls1_2") &&
+ !disabled("tls1_3"));
+
+my $is_default_dtls = (!disabled("dtls1") && !disabled("dtls1_2"));
+
+my @all_pre_tls1_3 = ("ssl3", "tls1", "tls1_1", "tls1_2");
+my $no_tls = alldisabled(available_protocols("tls"));
+my $no_tls_below1_3 = $no_tls || (disabled("tls1_2") && !disabled("tls1_3"));
+my $no_pre_tls1_3 = alldisabled(@all_pre_tls1_3);
+my $no_dtls = alldisabled(available_protocols("dtls"));
+my $no_npn = disabled("nextprotoneg");
+my $no_ct = disabled("ct");
+my $no_ec = disabled("ec");
+my $no_dh = disabled("dh");
+my $no_dsa = disabled("dsa");
+my $no_ec2m = disabled("ec2m");
+my $no_ocsp = disabled("ocsp");
+
+# Add your test here if the test conf.in generates test cases and/or
+# expectations dynamically based on the OpenSSL compile-time config.
+my %conf_dependent_tests = (
+ "02-protocol-version.conf" => !$is_default_tls,
+ "04-client_auth.conf" => !$is_default_tls || !$is_default_dtls
+ || !disabled("sctp"),
+ "05-sni.conf" => disabled("tls1_1"),
+ "07-dtls-protocol-version.conf" => !$is_default_dtls || !disabled("sctp"),
+ "10-resumption.conf" => !$is_default_tls,
+ "11-dtls_resumption.conf" => !$is_default_dtls || !disabled("sctp"),
+ "16-dtls-certstatus.conf" => !$is_default_dtls || !disabled("sctp"),
+ "17-renegotiate.conf" => disabled("tls1_2"),
+ "18-dtls-renegotiate.conf" => disabled("dtls1_2") || !disabled("sctp"),
+ "19-mac-then-encrypt.conf" => !$is_default_tls,
+ "20-cert-select.conf" => !$is_default_tls || $no_dh || $no_dsa,
+ "22-compression.conf" => !$is_default_tls,
+ "25-cipher.conf" => disabled("poly1305") || disabled("chacha"),
+ "27-ticket-appdata.conf" => !$is_default_tls,
+ "28-seclevel.conf" => disabled("tls1_2") || $no_ec,
+);
+
+# Add your test here if it should be skipped for some compile-time
+# configurations. Default is $no_tls but some tests have different skip
+# conditions.
+my %skip = (
+ "06-sni-ticket.conf" => $no_tls_below1_3,
+ "07-dtls-protocol-version.conf" => $no_dtls,
+ "08-npn.conf" => (disabled("tls1") && disabled("tls1_1")
+ && disabled("tls1_2")) || $no_npn,
+ "10-resumption.conf" => disabled("tls1_1") || disabled("tls1_2"),
+ "11-dtls_resumption.conf" => disabled("dtls1") || disabled("dtls1_2"),
+ "12-ct.conf" => $no_tls || $no_ct || $no_ec,
+ # We could run some of these tests without TLS 1.2 if we had a per-test
+ # disable instruction but that's a bizarre configuration not worth
+ # special-casing for.
+ # TODO(TLS 1.3): We should review this once we have TLS 1.3.
+ "13-fragmentation.conf" => disabled("tls1_2"),
+ "14-curves.conf" => disabled("tls1_2") || $no_ec || $no_ec2m,
+ "15-certstatus.conf" => $no_tls || $no_ocsp,
+ "16-dtls-certstatus.conf" => $no_dtls || $no_ocsp,
+ "17-renegotiate.conf" => $no_tls_below1_3,
+ "18-dtls-renegotiate.conf" => $no_dtls,
+ "19-mac-then-encrypt.conf" => $no_pre_tls1_3,
+ "20-cert-select.conf" => disabled("tls1_2") || $no_ec,
+ "21-key-update.conf" => disabled("tls1_3"),
+ "22-compression.conf" => disabled("zlib") || $no_tls,
+ "23-srp.conf" => (disabled("tls1") && disabled ("tls1_1")
+ && disabled("tls1_2")) || disabled("srp"),
+ "24-padding.conf" => disabled("tls1_3"),
+ "25-cipher.conf" => disabled("ec") || disabled("tls1_2"),
+ "26-tls13_client_auth.conf" => disabled("tls1_3"),
+ "29-dtls-sctp-label-bug.conf" => disabled("sctp") || disabled("sock"),
+);
+
+foreach my $conf (@conf_files) {
+ subtest "Test configuration $conf" => sub {
+ test_conf($conf,
+ $conf_dependent_tests{$conf} || $^O eq "VMS" ? 0 : 1,
+ defined($skip{$conf}) ? $skip{$conf} : $no_tls);
+ }
+}
+
+sub test_conf {
+ plan tests => 3;
+
+ my ($conf, $check_source, $skip) = @_;
+
+ my $conf_file = srctop_file("test", "ssl-tests", $conf);
+ my $tmp_file = "${conf}.$$.tmp";
+ my $run_test = 1;
+
+ SKIP: {
+ # "Test" 1. Generate the source.
+ my $input_file = $conf_file . ".in";
+
+ skip 'failure', 2 unless
+ ok(run(perltest(["generate_ssl_tests.pl", $input_file],
+ interpreter_args => [ "-I", srctop_dir("util", "perl")],
+ stdout => $tmp_file)),
+ "Getting output from generate_ssl_tests.pl.");
+
+ SKIP: {
+ # Test 2. Compare against existing output in test/ssl_tests.conf.
+ skip "Skipping generated source test for $conf", 1
+ if !$check_source;
+
+ $run_test = is(cmp_text($tmp_file, $conf_file), 0,
+ "Comparing generated sources.");
+ }
+
+ # Test 3. Run the test.
+ skip "No tests available; skipping tests", 1 if $skip;
+ skip "Stale sources; skipping tests", 1 if !$run_test;
+
+ ok(run(test(["ssl_test", $tmp_file])), "running ssl_test $conf");
+ }
+
+ unlink glob $tmp_file;
+}
+
+sub cmp_text {
+ return compare_text(@_, sub {
+ $_[0] =~ s/\R//g;
+ $_[1] =~ s/\R//g;
+ return $_[0] ne $_[1];
+ });
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ssl_old.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ssl_old.t
new file mode 100644
index 000000000..377bf090b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ssl_old.t
@@ -0,0 +1,590 @@
+#! /usr/bin/env perl
+# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use POSIX;
+use File::Basename;
+use File::Copy;
+use OpenSSL::Test qw/:DEFAULT with bldtop_file srctop_file cmdstr/;
+use OpenSSL::Test::Utils;
+
+setup("test_ssl");
+
+$ENV{CTLOG_FILE} = srctop_file("test", "ct", "log_list.conf");
+
+my ($no_rsa, $no_dsa, $no_dh, $no_ec, $no_psk,
+ $no_ssl3, $no_tls1, $no_tls1_1, $no_tls1_2, $no_tls1_3,
+ $no_dtls, $no_dtls1, $no_dtls1_2, $no_ct) =
+ anydisabled qw/rsa dsa dh ec psk
+ ssl3 tls1 tls1_1 tls1_2 tls1_3
+ dtls dtls1 dtls1_2 ct/;
+my $no_anytls = alldisabled(available_protocols("tls"));
+my $no_anydtls = alldisabled(available_protocols("dtls"));
+
+plan skip_all => "No SSL/TLS/DTLS protocol is support by this OpenSSL build"
+ if $no_anytls && $no_anydtls;
+
+my $digest = "-sha1";
+my @reqcmd = ("openssl", "req");
+my @x509cmd = ("openssl", "x509", $digest);
+my @verifycmd = ("openssl", "verify");
+my @gendsacmd = ("openssl", "gendsa");
+my $dummycnf = srctop_file("apps", "openssl.cnf");
+
+my $CAkey = "keyCA.ss";
+my $CAcert="certCA.ss";
+my $CAserial="certCA.srl";
+my $CAreq="reqCA.ss";
+my $CAconf=srctop_file("test","CAss.cnf");
+my $CAreq2="req2CA.ss"; # temp
+
+my $Uconf=srctop_file("test","Uss.cnf");
+my $Ukey="keyU.ss";
+my $Ureq="reqU.ss";
+my $Ucert="certU.ss";
+
+my $Dkey="keyD.ss";
+my $Dreq="reqD.ss";
+my $Dcert="certD.ss";
+
+my $Ekey="keyE.ss";
+my $Ereq="reqE.ss";
+my $Ecert="certE.ss";
+
+my $P1conf=srctop_file("test","P1ss.cnf");
+my $P1key="keyP1.ss";
+my $P1req="reqP1.ss";
+my $P1cert="certP1.ss";
+my $P1intermediate="tmp_intP1.ss";
+
+my $P2conf=srctop_file("test","P2ss.cnf");
+my $P2key="keyP2.ss";
+my $P2req="reqP2.ss";
+my $P2cert="certP2.ss";
+my $P2intermediate="tmp_intP2.ss";
+
+my $server_sess="server.ss";
+my $client_sess="client.ss";
+
+# ssltest_old.c is deprecated in favour of the new framework in ssl_test.c
+# If you're adding tests here, you probably want to convert them to the
+# new format in ssl_test.c and add recipes to 80-test_ssl_new.t instead.
+plan tests =>
+ 1 # For testss
+ +5 # For the first testssl
+ ;
+
+subtest 'test_ss' => sub {
+ if (testss()) {
+ open OUT, ">", "intP1.ss";
+ copy($CAcert, \*OUT); copy($Ucert, \*OUT);
+ close OUT;
+
+ open OUT, ">", "intP2.ss";
+ copy($CAcert, \*OUT); copy($Ucert, \*OUT); copy($P1cert, \*OUT);
+ close OUT;
+ }
+};
+
+note('test_ssl -- key U');
+testssl("keyU.ss", $Ucert, $CAcert);
+
+# -----------
+# subtest functions
+sub testss {
+ open RND, ">>", ".rnd";
+ print RND "string to make the random number generator think it has randomness";
+ close RND;
+
+ my @req_dsa = ("-newkey",
+ "dsa:".srctop_file("apps", "dsa1024.pem"));
+ my $dsaparams = srctop_file("apps", "dsa1024.pem");
+ my @req_new;
+ if ($no_rsa) {
+ @req_new = @req_dsa;
+ } else {
+ @req_new = ("-new");
+ }
+
+ plan tests => 17;
+
+ SKIP: {
+ skip 'failure', 16 unless
+ ok(run(app([@reqcmd, "-config", $CAconf,
+ "-out", $CAreq, "-keyout", $CAkey,
+ @req_new])),
+ 'make cert request');
+
+ skip 'failure', 15 unless
+ ok(run(app([@x509cmd, "-CAcreateserial", "-in", $CAreq, "-days", "30",
+ "-req", "-out", $CAcert, "-signkey", $CAkey,
+ "-extfile", $CAconf, "-extensions", "v3_ca"],
+ stdout => "err.ss")),
+ 'convert request into self-signed cert');
+
+ skip 'failure', 14 unless
+ ok(run(app([@x509cmd, "-in", $CAcert,
+ "-x509toreq", "-signkey", $CAkey, "-out", $CAreq2],
+ stdout => "err.ss")),
+ 'convert cert into a cert request');
+
+ skip 'failure', 13 unless
+ ok(run(app([@reqcmd, "-config", $dummycnf,
+ "-verify", "-in", $CAreq, "-noout"])),
+ 'verify request 1');
+
+
+ skip 'failure', 12 unless
+ ok(run(app([@reqcmd, "-config", $dummycnf,
+ "-verify", "-in", $CAreq2, "-noout"])),
+ 'verify request 2');
+
+ skip 'failure', 11 unless
+ ok(run(app([@verifycmd, "-CAfile", $CAcert, $CAcert])),
+ 'verify signature');
+
+ skip 'failure', 10 unless
+ ok(run(app([@reqcmd, "-config", $Uconf,
+ "-out", $Ureq, "-keyout", $Ukey, @req_new],
+ stdout => "err.ss")),
+ 'make a user cert request');
+
+ skip 'failure', 9 unless
+ ok(run(app([@x509cmd, "-CAcreateserial", "-in", $Ureq, "-days", "30",
+ "-req", "-out", $Ucert,
+ "-CA", $CAcert, "-CAkey", $CAkey, "-CAserial", $CAserial,
+ "-extfile", $Uconf, "-extensions", "v3_ee"],
+ stdout => "err.ss"))
+ && run(app([@verifycmd, "-CAfile", $CAcert, $Ucert])),
+ 'sign user cert request');
+
+ skip 'failure', 8 unless
+ ok(run(app([@x509cmd,
+ "-subject", "-issuer", "-startdate", "-enddate",
+ "-noout", "-in", $Ucert])),
+ 'Certificate details');
+
+ skip 'failure', 7 unless
+ subtest 'DSA certificate creation' => sub {
+ plan skip_all => "skipping DSA certificate creation"
+ if $no_dsa;
+
+ plan tests => 5;
+
+ SKIP: {
+ $ENV{CN2} = "DSA Certificate";
+ skip 'failure', 4 unless
+ ok(run(app([@gendsacmd, "-out", $Dkey,
+ $dsaparams],
+ stdout => "err.ss")),
+ "make a DSA key");
+ skip 'failure', 3 unless
+ ok(run(app([@reqcmd, "-new", "-config", $Uconf,
+ "-out", $Dreq, "-key", $Dkey],
+ stdout => "err.ss")),
+ "make a DSA user cert request");
+ skip 'failure', 2 unless
+ ok(run(app([@x509cmd, "-CAcreateserial",
+ "-in", $Dreq,
+ "-days", "30",
+ "-req",
+ "-out", $Dcert,
+ "-CA", $CAcert, "-CAkey", $CAkey,
+ "-CAserial", $CAserial,
+ "-extfile", $Uconf,
+ "-extensions", "v3_ee_dsa"],
+ stdout => "err.ss")),
+ "sign DSA user cert request");
+ skip 'failure', 1 unless
+ ok(run(app([@verifycmd, "-CAfile", $CAcert, $Dcert])),
+ "verify DSA user cert");
+ skip 'failure', 0 unless
+ ok(run(app([@x509cmd,
+ "-subject", "-issuer",
+ "-startdate", "-enddate", "-noout",
+ "-in", $Dcert])),
+ "DSA Certificate details");
+ }
+ };
+
+ skip 'failure', 6 unless
+ subtest 'ECDSA/ECDH certificate creation' => sub {
+ plan skip_all => "skipping ECDSA/ECDH certificate creation"
+ if $no_ec;
+
+ plan tests => 5;
+
+ SKIP: {
+ $ENV{CN2} = "ECDSA Certificate";
+ skip 'failure', 4 unless
+ ok(run(app(["openssl", "ecparam", "-name", "P-256",
+ "-out", "ecp.ss"])),
+ "make EC parameters");
+ skip 'failure', 3 unless
+ ok(run(app([@reqcmd, "-config", $Uconf,
+ "-out", $Ereq, "-keyout", $Ekey,
+ "-newkey", "ec:ecp.ss"],
+ stdout => "err.ss")),
+ "make a ECDSA/ECDH user cert request");
+ skip 'failure', 2 unless
+ ok(run(app([@x509cmd, "-CAcreateserial",
+ "-in", $Ereq,
+ "-days", "30",
+ "-req",
+ "-out", $Ecert,
+ "-CA", $CAcert, "-CAkey", $CAkey,
+ "-CAserial", $CAserial,
+ "-extfile", $Uconf,
+ "-extensions", "v3_ee_ec"],
+ stdout => "err.ss")),
+ "sign ECDSA/ECDH user cert request");
+ skip 'failure', 1 unless
+ ok(run(app([@verifycmd, "-CAfile", $CAcert, $Ecert])),
+ "verify ECDSA/ECDH user cert");
+ skip 'failure', 0 unless
+ ok(run(app([@x509cmd,
+ "-subject", "-issuer",
+ "-startdate", "-enddate", "-noout",
+ "-in", $Ecert])),
+ "ECDSA Certificate details");
+ }
+ };
+
+ skip 'failure', 5 unless
+ ok(run(app([@reqcmd, "-config", $P1conf,
+ "-out", $P1req, "-keyout", $P1key, @req_new],
+ stdout => "err.ss")),
+ 'make a proxy cert request');
+
+
+ skip 'failure', 4 unless
+ ok(run(app([@x509cmd, "-CAcreateserial", "-in", $P1req, "-days", "30",
+ "-req", "-out", $P1cert,
+ "-CA", $Ucert, "-CAkey", $Ukey,
+ "-extfile", $P1conf, "-extensions", "v3_proxy"],
+ stdout => "err.ss")),
+ 'sign proxy with user cert');
+
+ copy($Ucert, $P1intermediate);
+ run(app([@verifycmd, "-CAfile", $CAcert,
+ "-untrusted", $P1intermediate, $P1cert]));
+ ok(run(app([@x509cmd,
+ "-subject", "-issuer", "-startdate", "-enddate",
+ "-noout", "-in", $P1cert])),
+ 'Certificate details');
+
+ skip 'failure', 2 unless
+ ok(run(app([@reqcmd, "-config", $P2conf,
+ "-out", $P2req, "-keyout", $P2key,
+ @req_new],
+ stdout => "err.ss")),
+ 'make another proxy cert request');
+
+
+ skip 'failure', 1 unless
+ ok(run(app([@x509cmd, "-CAcreateserial", "-in", $P2req, "-days", "30",
+ "-req", "-out", $P2cert,
+ "-CA", $P1cert, "-CAkey", $P1key,
+ "-extfile", $P2conf, "-extensions", "v3_proxy"],
+ stdout => "err.ss")),
+ 'sign second proxy cert request with the first proxy cert');
+
+
+ open OUT, ">", $P2intermediate;
+ copy($Ucert, \*OUT); copy($P1cert, \*OUT);
+ close OUT;
+ run(app([@verifycmd, "-CAfile", $CAcert,
+ "-untrusted", $P2intermediate, $P2cert]));
+ ok(run(app([@x509cmd,
+ "-subject", "-issuer", "-startdate", "-enddate",
+ "-noout", "-in", $P2cert])),
+ 'Certificate details');
+ }
+}
+
+sub testssl {
+ my ($key, $cert, $CAtmp) = @_;
+ my @CA = $CAtmp ? ("-CAfile", $CAtmp) : ("-CApath", bldtop_dir("certs"));
+
+ my @ssltest = ("ssltest_old",
+ "-s_key", $key, "-s_cert", $cert,
+ "-c_key", $key, "-c_cert", $cert);
+
+ my $serverinfo = srctop_file("test","serverinfo.pem");
+
+ my $dsa_cert = 0;
+ if (grep /DSA Public Key/, run(app(["openssl", "x509", "-in", $cert,
+ "-text", "-noout"]), capture => 1)) {
+ $dsa_cert = 1;
+ }
+
+
+ # plan tests => 11;
+
+ subtest 'standard SSL tests' => sub {
+ ######################################################################
+ plan tests => 13;
+
+ SKIP: {
+ skip "SSLv3 is not supported by this OpenSSL build", 4
+ if disabled("ssl3");
+
+ ok(run(test([@ssltest, "-bio_pair", "-ssl3"])),
+ 'test sslv3 via BIO pair');
+ ok(run(test([@ssltest, "-bio_pair", "-ssl3", "-server_auth", @CA])),
+ 'test sslv3 with server authentication via BIO pair');
+ ok(run(test([@ssltest, "-bio_pair", "-ssl3", "-client_auth", @CA])),
+ 'test sslv3 with client authentication via BIO pair');
+ ok(run(test([@ssltest, "-bio_pair", "-ssl3", "-server_auth", "-client_auth", @CA])),
+ 'test sslv3 with both server and client authentication via BIO pair');
+ }
+
+ SKIP: {
+ skip "Neither SSLv3 nor any TLS version are supported by this OpenSSL build", 1
+ if $no_anytls;
+
+ ok(run(test([@ssltest, "-bio_pair"])),
+ 'test sslv2/sslv3 via BIO pair');
+ }
+
+ SKIP: {
+ skip "Neither SSLv3 nor any TLS version are supported by this OpenSSL build", 8
+ if $no_anytls;
+
+ SKIP: {
+ skip "skipping test of sslv2/sslv3 w/o (EC)DHE test", 1 if $dsa_cert;
+
+ ok(run(test([@ssltest, "-bio_pair", "-no_dhe", "-no_ecdhe"])),
+ 'test sslv2/sslv3 w/o (EC)DHE via BIO pair');
+ }
+
+ ok(run(test([@ssltest, "-bio_pair", "-dhe1024dsa", "-v"])),
+ 'test sslv2/sslv3 with 1024bit DHE via BIO pair');
+ ok(run(test([@ssltest, "-bio_pair", "-server_auth", @CA])),
+ 'test sslv2/sslv3 with server authentication');
+ ok(run(test([@ssltest, "-bio_pair", "-client_auth", @CA])),
+ 'test sslv2/sslv3 with client authentication via BIO pair');
+ ok(run(test([@ssltest, "-bio_pair", "-server_auth", "-client_auth", @CA])),
+ 'test sslv2/sslv3 with both client and server authentication via BIO pair');
+ ok(run(test([@ssltest, "-bio_pair", "-server_auth", "-client_auth", "-app_verify", @CA])),
+ 'test sslv2/sslv3 with both client and server authentication via BIO pair and app verify');
+
+ SKIP: {
+ skip "No IPv4 available on this machine", 1
+ unless !disabled("sock") && have_IPv4();
+ ok(run(test([@ssltest, "-ipv4"])),
+ 'test TLS via IPv4');
+ }
+
+ SKIP: {
+ skip "No IPv6 available on this machine", 1
+ unless !disabled("sock") && have_IPv6();
+ ok(run(test([@ssltest, "-ipv6"])),
+ 'test TLS via IPv6');
+ }
+ }
+ };
+
+ subtest "Testing ciphersuites" => sub {
+
+ my @exkeys = ();
+ my $ciphers = "-PSK:-SRP";
+
+ if (!$no_dsa) {
+ push @exkeys, "-s_cert", "certD.ss", "-s_key", "keyD.ss";
+ }
+
+ if (!$no_ec) {
+ push @exkeys, "-s_cert", "certE.ss", "-s_key", "keyE.ss";
+ }
+
+ my @protocols = ();
+ # We only use the flags that ssltest_old understands
+ push @protocols, "-tls1_3" unless $no_tls1_3;
+ push @protocols, "-tls1_2" unless $no_tls1_2;
+ push @protocols, "-tls1" unless $no_tls1;
+ push @protocols, "-ssl3" unless $no_ssl3;
+ my $protocolciphersuitecount = 0;
+ my %ciphersuites = ();
+ my %ciphersstatus = ();
+ foreach my $protocol (@protocols) {
+ my $ciphersstatus = undef;
+ my @ciphers = run(app(["openssl", "ciphers", "-s", $protocol,
+ "ALL:$ciphers"]),
+ capture => 1, statusvar => \$ciphersstatus);
+ $ciphersstatus{$protocol} = $ciphersstatus;
+ if ($ciphersstatus) {
+ $ciphersuites{$protocol} = [ map { s|\R||; split(/:/, $_) }
+ @ciphers ];
+ $protocolciphersuitecount += scalar @{$ciphersuites{$protocol}};
+ }
+ }
+
+ plan skip_all => "None of the ciphersuites to test are available in this OpenSSL build"
+ if $protocolciphersuitecount + scalar(keys %ciphersuites) == 0;
+
+ # The count of protocols is because in addition to the ciphersuites
+ # we got above, we're running a weak DH test for each protocol (except
+ # TLSv1.3)
+ my $testcount = scalar(@protocols) + $protocolciphersuitecount
+ + scalar(keys %ciphersuites);
+ $testcount-- unless $no_tls1_3;
+ plan tests => $testcount;
+
+ foreach my $protocol (@protocols) {
+ ok($ciphersstatus{$protocol}, "Getting ciphers for $protocol");
+ }
+
+ foreach my $protocol (sort keys %ciphersuites) {
+ note "Testing ciphersuites for $protocol";
+ # ssltest_old doesn't know -tls1_3, but that's fine, since that's
+ # the default choice if TLSv1.3 enabled
+ my $flag = $protocol eq "-tls1_3" ? "" : $protocol;
+ my $ciphersuites = "";
+ foreach my $cipher (@{$ciphersuites{$protocol}}) {
+ if ($protocol eq "-ssl3" && $cipher =~ /ECDH/ ) {
+ note "*****SKIPPING $protocol $cipher";
+ ok(1);
+ } else {
+ if ($protocol eq "-tls1_3") {
+ $ciphersuites = $cipher;
+ $cipher = "";
+ }
+ ok(run(test([@ssltest, @exkeys, "-cipher", $cipher,
+ "-ciphersuites", $ciphersuites, $flag || ()])),
+ "Testing $cipher");
+ }
+ }
+ next if $protocol eq "-tls1_3";
+ is(run(test([@ssltest,
+ "-s_cipher", "EDH",
+ "-c_cipher", 'EDH:@SECLEVEL=1',
+ "-dhe512",
+ $protocol])), 0,
+ "testing connection with weak DH, expecting failure");
+ }
+ };
+
+ subtest 'RSA/(EC)DHE/PSK tests' => sub {
+ ######################################################################
+
+ plan tests => 5;
+
+ SKIP: {
+ skip "TLSv1.0 is not supported by this OpenSSL build", 5
+ if $no_tls1;
+
+ SKIP: {
+ skip "skipping anonymous DH tests", 1
+ if ($no_dh);
+
+ ok(run(test([@ssltest, "-v", "-bio_pair", "-tls1", "-cipher", "ADH", "-dhe1024dsa", "-num", "10", "-f", "-time"])),
+ 'test tlsv1 with 1024bit anonymous DH, multiple handshakes');
+ }
+
+ SKIP: {
+ skip "skipping RSA tests", 2
+ if $no_rsa;
+
+ ok(run(test(["ssltest_old", "-v", "-bio_pair", "-tls1", "-s_cert", srctop_file("apps","server2.pem"), "-no_dhe", "-no_ecdhe", "-num", "10", "-f", "-time"])),
+ 'test tlsv1 with 1024bit RSA, no (EC)DHE, multiple handshakes');
+
+ skip "skipping RSA+DHE tests", 1
+ if $no_dh;
+
+ ok(run(test(["ssltest_old", "-v", "-bio_pair", "-tls1", "-s_cert", srctop_file("apps","server2.pem"), "-dhe1024dsa", "-num", "10", "-f", "-time"])),
+ 'test tlsv1 with 1024bit RSA, 1024bit DHE, multiple handshakes');
+ }
+
+ SKIP: {
+ skip "skipping PSK tests", 2
+ if ($no_psk);
+
+ ok(run(test([@ssltest, "-tls1", "-cipher", "PSK", "-psk", "abc123"])),
+ 'test tls1 with PSK');
+
+ ok(run(test([@ssltest, "-bio_pair", "-tls1", "-cipher", "PSK", "-psk", "abc123"])),
+ 'test tls1 with PSK via BIO pair');
+ }
+ }
+
+ };
+
+ subtest 'Custom Extension tests' => sub {
+ ######################################################################
+
+ plan tests => 1;
+
+ SKIP: {
+ skip "TLSv1.0 is not supported by this OpenSSL build", 1
+ if $no_tls1;
+
+ ok(run(test([@ssltest, "-bio_pair", "-tls1", "-custom_ext"])),
+ 'test tls1 with custom extensions');
+ }
+ };
+
+ subtest 'Serverinfo tests' => sub {
+ ######################################################################
+
+ plan tests => 5;
+
+ SKIP: {
+ skip "TLSv1.0 is not supported by this OpenSSL build", 5
+ if $no_tls1;
+
+ note('echo test tls1 with serverinfo');
+ ok(run(test([@ssltest, "-bio_pair", "-tls1", "-serverinfo_file", $serverinfo])));
+ ok(run(test([@ssltest, "-bio_pair", "-tls1", "-serverinfo_file", $serverinfo, "-serverinfo_sct"])));
+ ok(run(test([@ssltest, "-bio_pair", "-tls1", "-serverinfo_file", $serverinfo, "-serverinfo_tack"])));
+ ok(run(test([@ssltest, "-bio_pair", "-tls1", "-serverinfo_file", $serverinfo, "-serverinfo_sct", "-serverinfo_tack"])));
+ ok(run(test([@ssltest, "-bio_pair", "-tls1", "-custom_ext", "-serverinfo_file", $serverinfo, "-serverinfo_sct", "-serverinfo_tack"])));
+ }
+ };
+}
+
+unlink $CAkey;
+unlink $CAcert;
+unlink $CAserial;
+unlink $CAreq;
+unlink $CAreq2;
+
+unlink $Ukey;
+unlink $Ureq;
+unlink $Ucert;
+unlink basename($Ucert, '.ss').'.srl';
+
+unlink $Dkey;
+unlink $Dreq;
+unlink $Dcert;
+
+unlink $Ekey;
+unlink $Ereq;
+unlink $Ecert;
+
+unlink $P1key;
+unlink $P1req;
+unlink $P1cert;
+unlink basename($P1cert, '.ss').'.srl';
+unlink $P1intermediate;
+unlink "intP1.ss";
+
+unlink $P2key;
+unlink $P2req;
+unlink $P2cert;
+unlink $P2intermediate;
+unlink "intP2.ss";
+
+unlink "ecp.ss";
+unlink "err.ss";
+
+unlink $server_sess;
+unlink $client_sess;
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ssl_test_ctx.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ssl_test_ctx.t
new file mode 100644
index 000000000..c5934910e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_ssl_test_ctx.t
@@ -0,0 +1,19 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_ssl_test_ctx");
+
+plan tests => 1;
+ok(run(test(["ssl_test_ctx_test", srctop_file("test", "ssl_test_ctx_test.conf")])),
+ "running ssl_test_ctx_test ssl_test_ctx_test.conf");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_sslcorrupt.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_sslcorrupt.t
new file mode 100644
index 000000000..53f8a822e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_sslcorrupt.t
@@ -0,0 +1,20 @@
+#! /usr/bin/env perl
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use OpenSSL::Test::Utils;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_sslcorrupt");
+
+plan skip_all => "No TLS protocols are supported by this OpenSSL build"
+ if alldisabled(available_protocols("tls"));
+
+plan tests => 1;
+
+ok(run(test(["sslcorrupttest", srctop_file("apps", "server.pem"),
+ srctop_file("apps", "server.pem")])), "running sslcorrupttest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_tsa.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_tsa.t
new file mode 100644
index 000000000..3ba14d46e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_tsa.t
@@ -0,0 +1,207 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use POSIX;
+use File::Spec::Functions qw/splitdir curdir catfile/;
+use File::Compare;
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_tsa");
+
+plan skip_all => "TS is not supported by this OpenSSL build"
+ if disabled("ts");
+
+# All these are modified inside indir further down. They need to exist
+# here, however, to be available in all subroutines.
+my $openssl_conf;
+my $testtsa;
+my $CAtsa;
+my @RUN;
+
+sub create_tsa_cert {
+ my $INDEX = shift;
+ my $EXT = shift;
+ my $r = 1;
+ $ENV{TSDNSECT} = "ts_cert_dn";
+
+ ok(run(app(["openssl", "req", "-config", $openssl_conf, "-new",
+ "-out", "tsa_req${INDEX}.pem",
+ "-keyout", "tsa_key${INDEX}.pem"])));
+ note "using extension $EXT";
+ ok(run(app(["openssl", "x509", "-req",
+ "-in", "tsa_req${INDEX}.pem",
+ "-out", "tsa_cert${INDEX}.pem",
+ "-CA", "tsaca.pem", "-CAkey", "tsacakey.pem",
+ "-CAcreateserial",
+ "-extfile", $openssl_conf, "-extensions", $EXT])));
+}
+
+sub create_time_stamp_response {
+ my $queryfile = shift;
+ my $outputfile = shift;
+ my $datafile = shift;
+
+ ok(run(app([@RUN, "-reply", "-section", "$datafile",
+ "-queryfile", "$queryfile", "-out", "$outputfile"])));
+}
+
+sub verify_time_stamp_response {
+ my $queryfile = shift;
+ my $inputfile = shift;
+ my $datafile = shift;
+
+ ok(run(app([@RUN, "-verify", "-queryfile", "$queryfile",
+ "-in", "$inputfile", "-CAfile", "tsaca.pem",
+ "-untrusted", "tsa_cert1.pem"])));
+ ok(run(app([@RUN, "-verify", "-data", "$datafile",
+ "-in", "$inputfile", "-CAfile", "tsaca.pem",
+ "-untrusted", "tsa_cert1.pem"])));
+}
+
+sub verify_time_stamp_response_fail {
+ my $queryfile = shift;
+ my $inputfile = shift;
+
+ ok(!run(app([@RUN, "-verify", "-queryfile", "$queryfile",
+ "-in", "$inputfile", "-CAfile", "tsaca.pem",
+ "-untrusted", "tsa_cert1.pem"])));
+}
+
+# main functions
+
+plan tests => 20;
+
+note "setting up TSA test directory";
+indir "tsa" => sub
+{
+ $openssl_conf = srctop_file("test", "CAtsa.cnf");
+ $testtsa = srctop_file("test", "recipes", "80-test_tsa.t");
+ $CAtsa = srctop_file("test", "CAtsa.cnf");
+ @RUN = ("openssl", "ts", "-config", $openssl_conf);
+
+ # ../apps/CA.pl needs these
+ $ENV{OPENSSL_CONFIG} = "-config $openssl_conf";
+ $ENV{OPENSSL} = cmdstr(app(["openssl"]), display => 1);
+
+ SKIP: {
+ $ENV{TSDNSECT} = "ts_ca_dn";
+ skip "failed", 19
+ unless ok(run(app(["openssl", "req", "-config", $openssl_conf,
+ "-new", "-x509", "-nodes",
+ "-out", "tsaca.pem", "-keyout", "tsacakey.pem"])),
+ 'creating a new CA for the TSA tests');
+
+ skip "failed", 18
+ unless subtest 'creating tsa_cert1.pem TSA server cert' => sub {
+ create_tsa_cert("1", "tsa_cert")
+ };
+
+ skip "failed", 17
+ unless subtest 'creating tsa_cert2.pem non-TSA server cert' => sub {
+ create_tsa_cert("2", "non_tsa_cert")
+ };
+
+ skip "failed", 16
+ unless ok(run(app([@RUN, "-query", "-data", $testtsa,
+ "-tspolicy", "tsa_policy1", "-cert",
+ "-out", "req1.tsq"])),
+ 'creating req1.req time stamp request for file testtsa');
+
+ ok(run(app([@RUN, "-query", "-in", "req1.tsq", "-text"])),
+ 'printing req1.req');
+
+ subtest 'generating valid response for req1.req' => sub {
+ create_time_stamp_response("req1.tsq", "resp1.tsr", "tsa_config1")
+ };
+
+ ok(run(app([@RUN, "-reply", "-in", "resp1.tsr", "-text"])),
+ 'printing response');
+
+ subtest 'verifying valid response' => sub {
+ verify_time_stamp_response("req1.tsq", "resp1.tsr", $testtsa)
+ };
+
+ skip "failed", 11
+ unless subtest 'verifying valid token' => sub {
+ ok(run(app([@RUN, "-reply", "-in", "resp1.tsr",
+ "-out", "resp1.tsr.token", "-token_out"])));
+ ok(run(app([@RUN, "-verify", "-queryfile", "req1.tsq",
+ "-in", "resp1.tsr.token", "-token_in",
+ "-CAfile", "tsaca.pem",
+ "-untrusted", "tsa_cert1.pem"])));
+ ok(run(app([@RUN, "-verify", "-data", $testtsa,
+ "-in", "resp1.tsr.token", "-token_in",
+ "-CAfile", "tsaca.pem",
+ "-untrusted", "tsa_cert1.pem"])));
+ };
+
+ skip "failed", 10
+ unless ok(run(app([@RUN, "-query", "-data", $testtsa,
+ "-tspolicy", "tsa_policy2", "-no_nonce",
+ "-out", "req2.tsq"])),
+ 'creating req2.req time stamp request for file testtsa');
+
+ ok(run(app([@RUN, "-query", "-in", "req2.tsq", "-text"])),
+ 'printing req2.req');
+
+ skip "failed", 8
+ unless subtest 'generating valid response for req2.req' => sub {
+ create_time_stamp_response("req2.tsq", "resp2.tsr", "tsa_config1")
+ };
+
+ skip "failed", 7
+ unless subtest 'checking -token_in and -token_out options with -reply' => sub {
+ my $RESPONSE2="resp2.tsr.copy.tsr";
+ my $TOKEN_DER="resp2.tsr.token.der";
+
+ ok(run(app([@RUN, "-reply", "-in", "resp2.tsr",
+ "-out", "$TOKEN_DER", "-token_out"])));
+ ok(run(app([@RUN, "-reply", "-in", "$TOKEN_DER",
+ "-token_in", "-out", "$RESPONSE2"])));
+ is(compare($RESPONSE2, "resp2.tsr"), 0);
+ ok(run(app([@RUN, "-reply", "-in", "resp2.tsr",
+ "-text", "-token_out"])));
+ ok(run(app([@RUN, "-reply", "-in", "$TOKEN_DER",
+ "-token_in", "-text", "-token_out"])));
+ ok(run(app([@RUN, "-reply", "-queryfile", "req2.tsq",
+ "-text", "-token_out"])));
+ };
+
+ ok(run(app([@RUN, "-reply", "-in", "resp2.tsr", "-text"])),
+ 'printing response');
+
+ subtest 'verifying valid response' => sub {
+ verify_time_stamp_response("req2.tsq", "resp2.tsr", $testtsa)
+ };
+
+ subtest 'verifying response against wrong request, it should fail' => sub {
+ verify_time_stamp_response_fail("req1.tsq", "resp2.tsr")
+ };
+
+ subtest 'verifying response against wrong request, it should fail' => sub {
+ verify_time_stamp_response_fail("req2.tsq", "resp1.tsr")
+ };
+
+ skip "failure", 2
+ unless ok(run(app([@RUN, "-query", "-data", $CAtsa,
+ "-no_nonce", "-out", "req3.tsq"])),
+ "creating req3.req time stamp request for file CAtsa.cnf");
+
+ ok(run(app([@RUN, "-query", "-in", "req3.tsq", "-text"])),
+ 'printing req3.req');
+
+ subtest 'verifying response against wrong request, it should fail' => sub {
+ verify_time_stamp_response_fail("req3.tsq", "resp1.tsr")
+ };
+ }
+}, create => 1, cleanup => 1
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_x509aux.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_x509aux.t
new file mode 100644
index 000000000..65ba5fcf5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/80-test_x509aux.t
@@ -0,0 +1,27 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_x509aux");
+
+plan skip_all => "test_dane uses ec which is not supported by this OpenSSL build"
+ if disabled("ec");
+
+plan tests => 1; # The number of tests being performed
+
+ok(run(test(["x509aux",
+ srctop_file("test", "certs", "roots.pem"),
+ srctop_file("test", "certs", "root+anyEKU.pem"),
+ srctop_file("test", "certs", "root-anyEKU.pem"),
+ srctop_file("test", "certs", "root-cert.pem")]
+ )), "x509aux tests");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_asn1_time.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_asn1_time.t
new file mode 100644
index 000000000..d685eea62
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_asn1_time.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_asn1_time", "asn1_time_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_async.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_async.t
new file mode 100644
index 000000000..e0f187063
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_async.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_async", "asynctest", "async");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_bio_enc.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_bio_enc.t
new file mode 100644
index 000000000..aa7e42a86
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_bio_enc.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_bio_enc", "bio_enc_test", "bio_enc");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_bio_memleak.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_bio_memleak.t
new file mode 100644
index 000000000..1e063ed03
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_bio_memleak.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_bio_memleak", "bio_memleak_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_constant_time.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_constant_time.t
new file mode 100644
index 000000000..6fa73bf14
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_constant_time.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_constant_time", "constant_time_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_fatalerr.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_fatalerr.t
new file mode 100644
index 000000000..361bc1f3c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_fatalerr.t
@@ -0,0 +1,21 @@
+#! /usr/bin/env perl
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Utils;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_fatalerr");
+
+plan skip_all => "No TLS/SSL protocols are supported by this OpenSSL build"
+ if alldisabled(grep { $_ ne "ssl3" } available_protocols("tls"));
+
+plan tests => 1;
+
+ok(run(test(["fatalerrtest", srctop_file("apps", "server.pem"),
+ srctop_file("apps", "server.pem")])), "running fatalerrtest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gmdiff.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gmdiff.t
new file mode 100644
index 000000000..f2cce41a6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gmdiff.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_gmdiff", "gmdifftest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost.t
new file mode 100644
index 000000000..de9b0bfa0
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost.t
@@ -0,0 +1,41 @@
+#! /usr/bin/env perl
+# Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use OpenSSL::Test::Utils;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_gost");
+
+# The GOST ciphers are dynamically loaded via the GOST engine, so we must be
+# able to support that. The engine also uses DSA, CMS and CMAC symbols, so we
+# skip this test on no-dsa, no-cms or no-cmac.
+plan skip_all => "GOST support is disabled in this OpenSSL build"
+ if disabled("gost") || disabled("engine") || disabled("dynamic-engine")
+ || disabled("dsa") || disabled("cms") || disabled("cmac");
+
+plan skip_all => "TLSv1.3 or TLSv1.2 are disabled in this OpenSSL build"
+ if disabled("tls1_3") || disabled("tls1_2");
+
+plan skip_all => "No test GOST engine found"
+ if !$ENV{OPENSSL_GOST_ENGINE_SO};
+
+plan tests => 1;
+
+$ENV{OPENSSL_CONF} = srctop_file("test", "recipes", "90-test_gost_data",
+ "gost.conf");
+
+ok(run(test(["gosttest",
+ srctop_file("test", "recipes", "90-test_gost_data",
+ "server-cert2001.pem"),
+ srctop_file("test", "recipes", "90-test_gost_data",
+ "server-key2001.pem"),
+ srctop_file("test", "recipes", "90-test_gost_data",
+ "server-cert2012.pem"),
+ srctop_file("test", "recipes", "90-test_gost_data",
+ "server-key2012.pem")])),
+ "running gosttest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/gost.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/gost.conf
new file mode 100644
index 000000000..1f42b9d87
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/gost.conf
@@ -0,0 +1,13 @@
+openssl_conf = openssl_def
+[openssl_def]
+engines = engine_section
+
+[engine_section]
+gost = gost_section
+
+[gost_section]
+engine_id = gost
+dynamic_path = $ENV::OPENSSL_GOST_ENGINE_SO
+default_algorithms = ALL
+CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/server-cert2001.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/server-cert2001.pem
new file mode 100644
index 000000000..e287821f8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/server-cert2001.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4jCCAY+gAwIBAgIUNKO10+LkPoYGkOqNJ2wv1YI8RpQwCgYGKoUDAgIDBQAw
+RTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGElu
+dGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0xODA3MTMxNTAzMDFaFw0yODA3MTAx
+NTAzMDFaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD
+VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwYzAcBgYqhQMCAhMwEgYHKoUD
+AgIjAQYHKoUDAgIeAQNDAARAyDUhXsZP1JSLkvZ3xaU4aHXxAGKDwpawJ89+3B+N
+lD7FS48QUIeoQrv9hn1B/kVuVxJwU4CeZRQohLvc5IkzJ6NTMFEwHQYDVR0OBBYE
+FEz6BbScOOWYqklNGMTbyikZG/cRMB8GA1UdIwQYMBaAFEz6BbScOOWYqklNGMTb
+yikZG/cRMA8GA1UdEwEB/wQFMAMBAf8wCgYGKoUDAgIDBQADQQAbkdWo441FqSbB
+13JTW498NOzHZn69wnjYsOmMHLCdEHBTHVCa/g1wHPc4CyYk4UfMRWz5awzb6zNB
+TncjMl2a
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/server-cert2012.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/server-cert2012.pem
new file mode 100644
index 000000000..85d13c638
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/server-cert2012.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB6TCCAZSgAwIBAgIUVF/ajykAyHqQm1n6K1JdMFX/O6owDAYIKoUDBwEBAwIF
+ADBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwY
+SW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMB4XDTE4MDcxMzE0MzcxNVoXDTI4MDcx
+MDE0MzcxNVowRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAf
+BgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDBmMB8GCCqFAwcBAQEBMBMG
+ByqFAwICIwEGCCqFAwcBAQICA0MABEDIj2JgFybRexBIdkG7bI//Z8woXbpC/hpg
+62qflBE/dHnWVnbzpJUVeSd5sAkP7Ta0qrrs5YdW4MBIM/VPbDVOo1MwUTAdBgNV
+HQ4EFgQUFZtRh6plQ3nHf1A+7ayjYw9B1X0wHwYDVR0jBBgwFoAUFZtRh6plQ3nH
+f1A+7ayjYw9B1X0wDwYDVR0TAQH/BAUwAwEB/zAMBggqhQMHAQEDAgUAA0EAMttA
+fMPa3YFO9db/xIS9wMB7ntbtibeZEJlngaPu5gvfdNmCY0uzjY2c3yPr9dDq84j7
+gSqY1VwVBLuKrpLC+w==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/server-key2001.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/server-key2001.pem
new file mode 100644
index 000000000..92a59d8e6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/server-key2001.pem
@@ -0,0 +1,4 @@
+-----BEGIN PRIVATE KEY-----
+MEMCAQAwHAYGKoUDAgITMBIGByqFAwICIwEGByqFAwICHgEEIJgoLqJR/05zND0f
+8Wnma1MFMxE7ezisZhkS/DL4DXb6
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/server-key2012.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/server-key2012.pem
new file mode 100644
index 000000000..e932f0dd7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_gost_data/server-key2012.pem
@@ -0,0 +1,4 @@
+-----BEGIN PRIVATE KEY-----
+MEYCAQAwHwYIKoUDBwEBAQEwEwYHKoUDAgIjAQYIKoUDBwEBAgIEILemtIak5CeX
+Jd75HfVqAMi1MfhxW7kGvGDj8l1/nF45
+-----END PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_ige.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_ige.t
new file mode 100644
index 000000000..2ab4bd255
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_ige.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_ige", "igetest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes.t
new file mode 100644
index 000000000..c6a86fc00
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes.t
@@ -0,0 +1,27 @@
+#! /usr/bin/perl
+
+use strict;
+use warnings;
+use OpenSSL::Test qw/:DEFAULT data_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_includes");
+
+plan skip_all => "test_includes doesn't work without posix-io"
+ if disabled("posix-io");
+
+plan tests => # The number of tests being performed
+ 5
+ + ($^O eq "VMS" ? 2 : 0);
+
+ok(run(test(["conf_include_test", data_file("includes.cnf")])), "test directory includes");
+ok(run(test(["conf_include_test", data_file("includes-file.cnf")])), "test file includes");
+ok(run(test(["conf_include_test", data_file("includes-eq.cnf")])), "test includes with equal character");
+ok(run(test(["conf_include_test", data_file("includes-eq-ws.cnf")])), "test includes with equal and whitespaces");
+if ($^O eq "VMS") {
+ ok(run(test(["conf_include_test", data_file("vms-includes.cnf")])),
+ "test directory includes, VMS syntax");
+ ok(run(test(["conf_include_test", data_file("vms-includes-file.cnf")])),
+ "test file includes, VMS syntax");
+}
+ok(run(test(["conf_include_test", data_file("includes-broken.cnf"), "f"])), "test broken includes");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/conf-includes/includes1.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/conf-includes/includes1.cnf
new file mode 100644
index 000000000..66c89006d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/conf-includes/includes1.cnf
@@ -0,0 +1,36 @@
+[ default ]
+#
+# SSLeay example configuration file.
+# This is mostly being used for generation of certificate requests.
+#
+
+RANDFILE = ./.rnd
+
+####################################################################
+[ ca ]
+default_ca = CA_default # The default ca section
+
+####################################################################
+[ CA_default ]
+
+dir = ./demoCA # Where everything is kept
+certs = $dir/certs # Where the issued certs are kept
+crl_dir = $dir/crl # Where the issued crl are kept
+database = $dir/index.txt # database index file.
+new_certs_dir = $dir/new_certs # default place for new certs.
+
+certificate = $dir/CAcert.pem # The CA certificate
+serial = $dir/serial # The current serial number
+crl = $dir/crl.pem # The current CRL
+private_key = $dir/private/CAkey.pem# The private key
+RANDFILE = $dir/private/.rand # private random number file
+
+default_days = 365 # how long to certify for
+default_crl_days= 30 # how long before next CRL
+default_md = md5 # which md to use.
+
+# A few difference way of specifying how similar the request should look
+# For type CA, the listed attributes must be the same, and the optional
+# and supplied fields are just that :-)
+policy = policy_match
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/conf-includes/includes2.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/conf-includes/includes2.cnf
new file mode 100644
index 000000000..aa5e67c06
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/conf-includes/includes2.cnf
@@ -0,0 +1,53 @@
+# For the CA policy
+[ policy_match ]
+countryName = match
+stateOrProvinceName = match
+organizationName = match
+organizationalUnitName = optional
+commonName = supplied
+emailAddress = optional
+
+# For the 'anything' policy
+# At this point in time, you must list all acceptable 'object'
+# types.
+[ policy_anything ]
+countryName = optional
+stateOrProvinceName = optional
+localityName = optional
+organizationName = optional
+organizationalUnitName = optional
+commonName = supplied
+emailAddress = optional
+
+####################################################################
+[ req ]
+default_bits = 2048
+default_keyfile = testkey.pem
+distinguished_name = req_distinguished_name
+encrypt_rsa_key = no
+
+[ req_distinguished_name ]
+countryName = Country Name (2 letter code)
+countryName_default = AU
+countryName_value = AU
+
+stateOrProvinceName = State or Province Name (full name)
+stateOrProvinceName_default = Queensland
+stateOrProvinceName_value =
+
+localityName = Locality Name (eg, city)
+localityName_value = Brisbane
+
+organizationName = Organization Name (eg, company)
+organizationName_default =
+organizationName_value = CryptSoft Pty Ltd
+
+organizationalUnitName = Organizational Unit Name (eg, section)
+organizationalUnitName_default =
+organizationalUnitName_value = .
+
+commonName = Common Name (eg, YOUR name)
+commonName_value = Eric Young
+
+emailAddress = Email Address
+emailAddress_value = eay@mincom.oz.au
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes-broken.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes-broken.cnf
new file mode 100644
index 000000000..d38e18c5e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes-broken.cnf
@@ -0,0 +1,5 @@
+#
+# Example configuration file using includes.
+#
+
+.include includes-broken3.cnf
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes-eq-ws.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes-eq-ws.cnf
new file mode 100644
index 000000000..38109a7ab
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes-eq-ws.cnf
@@ -0,0 +1,5 @@
+#
+# Example configuration file using includes.
+#
+
+.include = conf-includes
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes-eq.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes-eq.cnf
new file mode 100644
index 000000000..9d3715854
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes-eq.cnf
@@ -0,0 +1,5 @@
+#
+# Example configuration file using includes.
+#
+
+.include=conf-includes
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes-file.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes-file.cnf
new file mode 100644
index 000000000..1737b70d1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes-file.cnf
@@ -0,0 +1,5 @@
+#
+# Example configuration file using includes.
+#
+
+.include includes.cnf
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes.cnf
new file mode 100644
index 000000000..345eeb988
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/includes.cnf
@@ -0,0 +1,5 @@
+#
+# Example configuration file using includes.
+#
+
+.include conf-includes
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/vms-includes-file.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/vms-includes-file.cnf
new file mode 100644
index 000000000..f3b72e709
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/vms-includes-file.cnf
@@ -0,0 +1,5 @@
+#
+# Example configuration file using includes.
+#
+
+.include vms-includes.cnf
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/vms-includes.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/vms-includes.cnf
new file mode 100644
index 000000000..ed4367bcf
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_includes_data/vms-includes.cnf
@@ -0,0 +1,5 @@
+#
+# Example configuration file using includes.
+#
+
+.include [.conf-includes]
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_memleak.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_memleak.t
new file mode 100644
index 000000000..52357c749
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_memleak.t
@@ -0,0 +1,15 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test;
+
+setup("test_memleak");
+plan tests => 2;
+ok(run(test(["memleaktest"])), "running leak test");
+ok(run(test(["memleaktest", "freeit"])), "running no leak test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_overhead.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_overhead.t
new file mode 100644
index 000000000..a9311bf49
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_overhead.t
@@ -0,0 +1,20 @@
+#! /usr/bin/env perl
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test;
+use OpenSSL::Test::Utils;
+
+setup("test_overhead");
+
+plan skip_all => "Only supported in no-shared builds"
+ if !disabled("shared");
+
+plan tests => 1;
+
+ok(run(test(["cipher_overhead_test"])), "running cipher_overhead_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_secmem.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_secmem.t
new file mode 100644
index 000000000..d197c48a7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_secmem.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_secmem", "secmemtest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_shlibload.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_shlibload.t
new file mode 100644
index 000000000..8372a61e8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_shlibload.t
@@ -0,0 +1,81 @@
+#! /usr/bin/env perl
+# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use OpenSSL::Test qw/:DEFAULT bldtop_dir bldtop_file/;
+use OpenSSL::Test::Utils;
+use File::Temp qw(tempfile);
+
+#Load configdata.pm
+
+BEGIN {
+ setup("test_shlibload");
+}
+use lib bldtop_dir('.');
+use configdata;
+
+plan skip_all => "Test only supported in a shared build" if disabled("shared");
+plan skip_all => "Test is disabled on AIX" if config('target') =~ m|^aix|;
+plan skip_all => "Test is disabled on VMS" if config('target') =~ m|^vms|;
+plan skip_all => "Test only supported in a dso build" if disabled("dso");
+
+plan tests => 10;
+
+# When libssl and libcrypto are compiled on Linux with "-rpath", but not
+# "--enable-new-dtags", the RPATH takes precedence over LD_LIBRARY_PATH,
+# and we end up running with the wrong libraries. This is resolved by
+# using paths to the shared objects, not just the names.
+
+my $libcrypto = bldtop_file(shlib('libcrypto'));
+my $libssl = bldtop_file(shlib('libssl'));
+
+(my $fh, my $filename) = tempfile();
+ok(run(test(["shlibloadtest", "-crypto_first", $libcrypto, $libssl, $filename])),
+ "running shlibloadtest -crypto_first $filename");
+ok(check_atexit($fh));
+unlink $filename;
+($fh, $filename) = tempfile();
+ok(run(test(["shlibloadtest", "-ssl_first", $libcrypto, $libssl, $filename])),
+ "running shlibloadtest -ssl_first $filename");
+ok(check_atexit($fh));
+unlink $filename;
+($fh, $filename) = tempfile();
+ok(run(test(["shlibloadtest", "-just_crypto", $libcrypto, $libssl, $filename])),
+ "running shlibloadtest -just_crypto $filename");
+ok(check_atexit($fh));
+unlink $filename;
+($fh, $filename) = tempfile();
+ok(run(test(["shlibloadtest", "-dso_ref", $libcrypto, $libssl, $filename])),
+ "running shlibloadtest -dso_ref $filename");
+ok(check_atexit($fh));
+unlink $filename;
+($fh, $filename) = tempfile();
+ok(run(test(["shlibloadtest", "-no_atexit", $libcrypto, $libssl, $filename])),
+ "running shlibloadtest -no_atexit $filename");
+ok(!check_atexit($fh));
+unlink $filename;
+
+sub shlib {
+ my $lib = shift;
+ $lib = $unified_info{rename}->{$lib}
+ if defined $unified_info{rename}->{$lib};
+ $lib = $unified_info{sharednames}->{$lib}
+ . ($target{shlib_variant} || "")
+ . ($target{shared_extension} || ".so");
+ $lib =~ s|\.\$\(SHLIB_VERSION_NUMBER\)
+ |.$config{shlib_version_number}|x;
+ return $lib;
+}
+
+sub check_atexit {
+ my $fh = shift;
+ my $data = <$fh>;
+
+ return 1 if (defined $data && $data =~ m/atexit\(\) run/);
+
+ return 0;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_srp.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_srp.t
new file mode 100644
index 000000000..7026c358a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_srp.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_srp", "srptest", "srp");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_sslapi.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_sslapi.t
new file mode 100644
index 000000000..adbcb4fe6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_sslapi.t
@@ -0,0 +1,28 @@
+#! /usr/bin/env perl
+# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Utils;
+use OpenSSL::Test qw/:DEFAULT srctop_file srctop_dir/;
+use File::Temp qw(tempfile);
+
+setup("test_sslapi");
+
+plan skip_all => "No TLS/SSL protocols are supported by this OpenSSL build"
+ if alldisabled(grep { $_ ne "ssl3" } available_protocols("tls"));
+
+plan tests => 1;
+
+(undef, my $tmpfilename) = tempfile();
+
+ok(run(test(["sslapitest", srctop_dir("test", "certs"),
+ srctop_file("test", "recipes", "90-test_sslapi_data",
+ "passwd.txt"), $tmpfilename])),
+ "running sslapitest");
+
+unlink $tmpfilename;
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_sslapi_data/passwd.txt b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_sslapi_data/passwd.txt
new file mode 100644
index 000000000..b611aed2a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_sslapi_data/passwd.txt
@@ -0,0 +1 @@
+V 1auIY/NQXwKWVeWaYg.YV0AaU.mpHSsZw8PWfrYT0oMTPYekTqGXu6ElyTN64DmK03V3P2yVRdhN0UBxMBujLnTauROkuEep/vp7S5xhW1VK8zg1gtJslTqOp4l.GTJF9x0WYmS6VNRnj5AVi3mgfVJ3nmzlMJUMm7niQxm5awLZZ8xykox1j6MFRa80y02Ub87A88DwqA5wrIM/Uojx9VBxUhTHC.353aBA/rL4O/179rgIBbhID08RA6uLv7pIJQVl5OjYsRu/XzQsgFFW6Wog7PaB.AATqArzXZieZxs/teOiFKPSgKI.76vvVEMQIifSj3hRuVK/immK.9hBCTHYjAv96MUmitb0ErPYJRl2MeBC8M6aHJ8FaMmak.Qv.bwyiqpEjlX1a9KjdBAKIaAswECjeP6G0Gk5v1g5D7ZmP5JUK7Wp/X9sKuZZYOsDwEGfXNmmJG6Y3TETx105HT2QMJ5ti5QCbrd71VWABmVWpHJc03YLUExw6WtYdUW0YHTbRKVntgVe2hOQD.XPtFPn2SwxbGonq1bwEvdCp22uTb5HFSC3I7amCUTZteVmMgqJAcx.x.2yfliESVvpmG.dnDFkp6vsQxch6Q1dV5rDmR4GGSy8FoPSFXc7NS0kCSs.qsTqLSmHN1XMzwrwYuVbItXBwetwxcIcdi.sFG6OLuwRUGaNOXiMwhlDHyQtVfEm3L/KIjPpzLlYRAJWF9M40FIcNsI6xiMNhvUGNO7LaBHKSV3oHlwUWWUnL7Uo/ePH8lBpGadYPxObXZ1/wOcWdJ1Rb5dB9orSSTSvoNrZyALKO.swl7pP7beYq6bUx8qtBJLaqI2zQzr1tnmJi8azVicuFtsDs363ntCRtd1LLT3CX3EBVXMbEy6xgAKWI2GL3HO6v8k3Gv96UeGFN/w5yAz61mbajDrSeJekUaKgfucV8h9tgHNlTA1kGowd2Yn/EQdVc/qSETddySqNC0mXlPW1tgb2ixV6sWbYrb5TLBUdztdw5L2D62Aal.9IjpTEKc4F/gMjYsazIX6nzpXZtWnYP7dIOpSi4c.48B2RIeDrZVMzUF.9QOF9Dk1fy5Z2X91z8J2I0GuqIWKKfwnx4xA3RbGUds1Cv2XvUA1tP7eqtvs/mTsC8KWApNSpL6K.U.Pt0ee6F76CV.ZcBXTbXl9zJZ0H1peiehzZpbuIPLZPtzIHClRQovjqdrlEUzS5VdSgCfNhEUr3ZOpG3cCKO4Lk25jZuQtoFmyxUuRAIXejLizCd727hO7rHZoD.GGm4HiNaH2jgZaftoFhfSBXvPRGYfcj.ZkiLyurNlumMXTduHImB1ZMkZ1af5dggKaQG4bJe9WbF6KYxmeRwV 1oFJIzMwXA0RFKXCGcSV0nAToL5 test 8192 A test user
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_sslbuffers.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_sslbuffers.t
new file mode 100644
index 000000000..934eef90b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_sslbuffers.t
@@ -0,0 +1,21 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Utils;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_sslbuffers");
+
+plan skip_all => "No suitable TLS/SSL protocol is supported by this OpenSSL build"
+ if alldisabled(available_protocols("tls"));
+
+plan tests => 1;
+
+ok(run(test(["sslbuffertest", srctop_file("apps", "server.pem"),
+ srctop_file("apps", "server.pem")])), "running sslbuffertest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_store.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_store.t
new file mode 100644
index 000000000..888213e4a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_store.t
@@ -0,0 +1,494 @@
+#! /usr/bin/env perl
+# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use File::Spec::Functions;
+use File::Copy;
+use MIME::Base64;
+use OpenSSL::Test qw(:DEFAULT srctop_file srctop_dir bldtop_file data_file);
+use OpenSSL::Test::Utils;
+
+my $test_name = "test_store";
+setup($test_name);
+
+my $mingw = config('target') =~ m|^mingw|;
+
+my @noexist_files =
+ ( "test/blahdiblah.pem",
+ "test/blahdibleh.der" );
+my @src_files =
+ ( "test/testx509.pem",
+ "test/testrsa.pem",
+ "test/testrsapub.pem",
+ "test/testcrl.pem",
+ "apps/server.pem" );
+my @generated_files =
+ (
+ ### generated from the source files
+
+ "testx509.der",
+ "testrsa.der",
+ "testrsapub.der",
+ "testcrl.der",
+
+ ### generated locally
+
+ "rsa-key-pkcs1.pem", "rsa-key-pkcs1.der",
+ "rsa-key-pkcs1-aes128.pem",
+ "rsa-key-pkcs8.pem", "rsa-key-pkcs8.der",
+ "rsa-key-pkcs8-pbes1-sha1-3des.pem", "rsa-key-pkcs8-pbes1-sha1-3des.der",
+ "rsa-key-pkcs8-pbes2-sha1.pem", "rsa-key-pkcs8-pbes2-sha1.der",
+ "rsa-key-sha1-3des-sha1.p12", "rsa-key-sha1-3des-sha256.p12",
+ "rsa-key-aes256-cbc-sha256.p12",
+ "rsa-key-md5-des-sha1.p12",
+ "rsa-key-aes256-cbc-md5-des-sha256.p12",
+ "rsa-key-pkcs8-pbes2-sha256.pem", "rsa-key-pkcs8-pbes2-sha256.der",
+ "rsa-key-pkcs8-pbes1-md5-des.pem", "rsa-key-pkcs8-pbes1-md5-des.der",
+ "dsa-key-pkcs1.pem", "dsa-key-pkcs1.der",
+ "dsa-key-pkcs1-aes128.pem",
+ "dsa-key-pkcs8.pem", "dsa-key-pkcs8.der",
+ "dsa-key-pkcs8-pbes2-sha1.pem", "dsa-key-pkcs8-pbes2-sha1.der",
+ "dsa-key-aes256-cbc-sha256.p12",
+ "ec-key-pkcs1.pem", "ec-key-pkcs1.der",
+ "ec-key-pkcs1-aes128.pem",
+ "ec-key-pkcs8.pem", "ec-key-pkcs8.der",
+ "ec-key-pkcs8-pbes2-sha1.pem", "ec-key-pkcs8-pbes2-sha1.der",
+ "ec-key-aes256-cbc-sha256.p12",
+ );
+my %generated_file_files =
+ $^O eq 'linux'
+ ? ( "test/testx509.pem" => "file:testx509.pem",
+ "test/testrsa.pem" => "file:testrsa.pem",
+ "test/testrsapub.pem" => "file:testrsapub.pem",
+ "test/testcrl.pem" => "file:testcrl.pem",
+ "apps/server.pem" => "file:server.pem" )
+ : ();
+my @noexist_file_files =
+ ( "file:blahdiblah.pem",
+ "file:test/blahdibleh.der" );
+
+my $n = (3 * scalar @noexist_files)
+ + (6 * scalar @src_files)
+ + (4 * scalar @generated_files)
+ + (scalar keys %generated_file_files)
+ + (scalar @noexist_file_files)
+ + 3
+ + 11;
+
+plan tests => $n;
+
+indir "store_$$" => sub {
+ SKIP:
+ {
+ skip "failed initialisation", $n unless init();
+
+ my $rehash = init_rehash();
+
+ foreach (@noexist_files) {
+ my $file = srctop_file($_);
+
+ ok(!run(app(["openssl", "storeutl", "-noout", $file])));
+ ok(!run(app(["openssl", "storeutl", "-noout",
+ to_abs_file($file)])));
+ {
+ local $ENV{MSYS2_ARG_CONV_EXCL} = "file:";
+
+ ok(!run(app(["openssl", "storeutl", "-noout",
+ to_abs_file_uri($file)])));
+ }
+ }
+ foreach (@src_files) {
+ my $file = srctop_file($_);
+
+ ok(run(app(["openssl", "storeutl", "-noout", $file])));
+ ok(run(app(["openssl", "storeutl", "-noout", to_abs_file($file)])));
+ SKIP:
+ {
+ skip "file: tests disabled on MingW", 4 if $mingw;
+
+ ok(run(app(["openssl", "storeutl", "-noout",
+ to_abs_file_uri($file)])));
+ ok(run(app(["openssl", "storeutl", "-noout",
+ to_abs_file_uri($file, 0, "")])));
+ ok(run(app(["openssl", "storeutl", "-noout",
+ to_abs_file_uri($file, 0, "localhost")])));
+ ok(!run(app(["openssl", "storeutl", "-noout",
+ to_abs_file_uri($file, 0, "dummy")])));
+ }
+ }
+ foreach (@generated_files) {
+ ok(run(app(["openssl", "storeutl", "-noout", "-passin",
+ "pass:password", $_])));
+ ok(run(app(["openssl", "storeutl", "-noout", "-passin",
+ "pass:password", to_abs_file($_)])));
+
+ SKIP:
+ {
+ skip "file: tests disabled on MingW", 2 if $mingw;
+
+ ok(run(app(["openssl", "storeutl", "-noout", "-passin",
+ "pass:password", to_abs_file_uri($_)])));
+ ok(!run(app(["openssl", "storeutl", "-noout", "-passin",
+ "pass:password", to_file_uri($_)])));
+ }
+ }
+ foreach (values %generated_file_files) {
+ SKIP:
+ {
+ skip "file: tests disabled on MingW", 1 if $mingw;
+
+ ok(run(app(["openssl", "storeutl", "-noout", $_])));
+ }
+ }
+ foreach (@noexist_file_files) {
+ SKIP:
+ {
+ skip "file: tests disabled on MingW", 1 if $mingw;
+
+ ok(!run(app(["openssl", "storeutl", "-noout", $_])));
+ }
+ }
+ {
+ my $dir = srctop_dir("test", "certs");
+
+ ok(run(app(["openssl", "storeutl", "-noout", $dir])));
+ ok(run(app(["openssl", "storeutl", "-noout",
+ to_abs_file($dir, 1)])));
+ SKIP:
+ {
+ skip "file: tests disabled on MingW", 1 if $mingw;
+
+ ok(run(app(["openssl", "storeutl", "-noout",
+ to_abs_file_uri($dir, 1)])));
+ }
+ }
+
+ ok(!run(app(['openssl', 'storeutl', '-noout',
+ '-subject', '/C=AU/ST=QLD/CN=SSLeay\/rsa test cert',
+ srctop_file('test', 'testx509.pem')])),
+ "Checking that -subject can't be used with a single file");
+
+ ok(run(app(['openssl', 'storeutl', '-certs', '-noout',
+ srctop_file('test', 'testx509.pem')])),
+ "Checking that -certs returns 1 object on a certificate file");
+ ok(run(app(['openssl', 'storeutl', '-certs', '-noout',
+ srctop_file('test', 'testcrl.pem')])),
+ "Checking that -certs returns 0 objects on a CRL file");
+
+ ok(run(app(['openssl', 'storeutl', '-crls', '-noout',
+ srctop_file('test', 'testx509.pem')])),
+ "Checking that -crls returns 0 objects on a certificate file");
+ ok(run(app(['openssl', 'storeutl', '-crls', '-noout',
+ srctop_file('test', 'testcrl.pem')])),
+ "Checking that -crls returns 1 object on a CRL file");
+
+ SKIP: {
+ skip "failed rehash initialisation", 6 unless $rehash;
+
+ # subject from testx509.pem:
+ # '/C=AU/ST=QLD/CN=SSLeay\/rsa test cert'
+ # issuer from testcrl.pem:
+ # '/C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority'
+ ok(run(app(['openssl', 'storeutl', '-noout',
+ '-subject', '/C=AU/ST=QLD/CN=SSLeay\/rsa test cert',
+ catdir(curdir(), 'rehash')])));
+ ok(run(app(['openssl', 'storeutl', '-noout',
+ '-subject',
+ '/C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority',
+ catdir(curdir(), 'rehash')])));
+ ok(run(app(['openssl', 'storeutl', '-noout', '-certs',
+ '-subject', '/C=AU/ST=QLD/CN=SSLeay\/rsa test cert',
+ catdir(curdir(), 'rehash')])));
+ ok(run(app(['openssl', 'storeutl', '-noout', '-crls',
+ '-subject', '/C=AU/ST=QLD/CN=SSLeay\/rsa test cert',
+ catdir(curdir(), 'rehash')])));
+ ok(run(app(['openssl', 'storeutl', '-noout', '-certs',
+ '-subject',
+ '/C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority',
+ catdir(curdir(), 'rehash')])));
+ ok(run(app(['openssl', 'storeutl', '-noout', '-crls',
+ '-subject',
+ '/C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority',
+ catdir(curdir(), 'rehash')])));
+ }
+ }
+}, create => 1, cleanup => 1;
+
+sub init {
+ return (
+ # rsa-key-pkcs1.pem
+ run(app(["openssl", "genrsa",
+ "-out", "rsa-key-pkcs1.pem", "2432"]))
+ # dsa-key-pkcs1.pem
+ && run(app(["openssl", "dsaparam", "-genkey",
+ "-out", "dsa-key-pkcs1.pem", "1024"]))
+ # ec-key-pkcs1.pem (one might think that 'genec' would be practical)
+ && run(app(["openssl", "ecparam", "-genkey", "-name", "prime256v1",
+ "-out", "ec-key-pkcs1.pem"]))
+ # rsa-key-pkcs1-aes128.pem
+ && run(app(["openssl", "rsa", "-passout", "pass:password", "-aes128",
+ "-in", "rsa-key-pkcs1.pem",
+ "-out", "rsa-key-pkcs1-aes128.pem"]))
+ # dsa-key-pkcs1-aes128.pem
+ && run(app(["openssl", "dsa", "-passout", "pass:password", "-aes128",
+ "-in", "dsa-key-pkcs1.pem",
+ "-out", "dsa-key-pkcs1-aes128.pem"]))
+ # ec-key-pkcs1-aes128.pem
+ && run(app(["openssl", "ec", "-passout", "pass:password", "-aes128",
+ "-in", "ec-key-pkcs1.pem",
+ "-out", "ec-key-pkcs1-aes128.pem"]))
+ # *-key-pkcs8.pem
+ && runall(sub {
+ my $dstfile = shift;
+ (my $srcfile = $dstfile)
+ =~ s/-key-pkcs8\.pem$/-key-pkcs1.pem/i;
+ run(app(["openssl", "pkcs8", "-topk8", "-nocrypt",
+ "-in", $srcfile, "-out", $dstfile]));
+ }, grep(/-key-pkcs8\.pem$/, @generated_files))
+ # *-key-pkcs8-pbes1-sha1-3des.pem
+ && runall(sub {
+ my $dstfile = shift;
+ (my $srcfile = $dstfile)
+ =~ s/-key-pkcs8-pbes1-sha1-3des\.pem$
+ /-key-pkcs8.pem/ix;
+ run(app(["openssl", "pkcs8", "-topk8",
+ "-passout", "pass:password",
+ "-v1", "pbeWithSHA1And3-KeyTripleDES-CBC",
+ "-in", $srcfile, "-out", $dstfile]));
+ }, grep(/-key-pkcs8-pbes1-sha1-3des\.pem$/, @generated_files))
+ # *-key-pkcs8-pbes1-md5-des.pem
+ && runall(sub {
+ my $dstfile = shift;
+ (my $srcfile = $dstfile)
+ =~ s/-key-pkcs8-pbes1-md5-des\.pem$
+ /-key-pkcs8.pem/ix;
+ run(app(["openssl", "pkcs8", "-topk8",
+ "-passout", "pass:password",
+ "-v1", "pbeWithSHA1And3-KeyTripleDES-CBC",
+ "-in", $srcfile, "-out", $dstfile]));
+ }, grep(/-key-pkcs8-pbes1-md5-des\.pem$/, @generated_files))
+ # *-key-pkcs8-pbes2-sha1.pem
+ && runall(sub {
+ my $dstfile = shift;
+ (my $srcfile = $dstfile)
+ =~ s/-key-pkcs8-pbes2-sha1\.pem$
+ /-key-pkcs8.pem/ix;
+ run(app(["openssl", "pkcs8", "-topk8",
+ "-passout", "pass:password",
+ "-v2", "aes256", "-v2prf", "hmacWithSHA1",
+ "-in", $srcfile, "-out", $dstfile]));
+ }, grep(/-key-pkcs8-pbes2-sha1\.pem$/, @generated_files))
+ # *-key-pkcs8-pbes2-sha1.pem
+ && runall(sub {
+ my $dstfile = shift;
+ (my $srcfile = $dstfile)
+ =~ s/-key-pkcs8-pbes2-sha256\.pem$
+ /-key-pkcs8.pem/ix;
+ run(app(["openssl", "pkcs8", "-topk8",
+ "-passout", "pass:password",
+ "-v2", "aes256", "-v2prf", "hmacWithSHA256",
+ "-in", $srcfile, "-out", $dstfile]));
+ }, grep(/-key-pkcs8-pbes2-sha256\.pem$/, @generated_files))
+ # *-cert.pem (intermediary for the .p12 inits)
+ && run(app(["openssl", "req", "-x509",
+ "-config", data_file("ca.cnf"), "-nodes",
+ "-out", "cacert.pem", "-keyout", "cakey.pem"]))
+ && runall(sub {
+ my $srckey = shift;
+ (my $dstfile = $srckey) =~ s|-key-pkcs8\.|-cert.|;
+ (my $csr = $dstfile) =~ s|\.pem|.csr|;
+
+ (run(app(["openssl", "req", "-new",
+ "-config", data_file("user.cnf"),
+ "-key", $srckey, "-out", $csr]))
+ &&
+ run(app(["openssl", "x509", "-days", "3650",
+ "-CA", "cacert.pem",
+ "-CAkey", "cakey.pem",
+ "-set_serial", time(), "-req",
+ "-in", $csr, "-out", $dstfile])));
+ }, grep(/-key-pkcs8\.pem$/, @generated_files))
+ # *.p12
+ && runall(sub {
+ my $dstfile = shift;
+ my ($type, $certpbe_index, $keypbe_index,
+ $macalg_index) =
+ $dstfile =~ m{^(.*)-key-(?|
+ # cert and key PBE are same
+ () #
+ ([^-]*-[^-]*)- # key & cert PBE
+ ([^-]*) # MACalg
+ |
+ # cert and key PBE are not same
+ ([^-]*-[^-]*)- # cert PBE
+ ([^-]*-[^-]*)- # key PBE
+ ([^-]*) # MACalg
+ )\.}x;
+ if (!$certpbe_index) {
+ $certpbe_index = $keypbe_index;
+ }
+ my $srckey = "$type-key-pkcs8.pem";
+ my $srccert = "$type-cert.pem";
+ my %pbes =
+ (
+ "sha1-3des" => "pbeWithSHA1And3-KeyTripleDES-CBC",
+ "md5-des" => "pbeWithMD5AndDES-CBC",
+ "aes256-cbc" => "AES-256-CBC",
+ );
+ my %macalgs =
+ (
+ "sha1" => "SHA1",
+ "sha256" => "SHA256",
+ );
+ my $certpbe = $pbes{$certpbe_index};
+ my $keypbe = $pbes{$keypbe_index};
+ my $macalg = $macalgs{$macalg_index};
+ if (!defined($certpbe) || !defined($keypbe)
+ || !defined($macalg)) {
+ print STDERR "Cert PBE for $pbe_index not defined\n"
+ unless defined $certpbe;
+ print STDERR "Key PBE for $pbe_index not defined\n"
+ unless defined $keypbe;
+ print STDERR "MACALG for $macalg_index not defined\n"
+ unless defined $macalg;
+ print STDERR "(destination file was $dstfile)\n";
+ return 0;
+ }
+ run(app(["openssl", "pkcs12", "-inkey", $srckey,
+ "-in", $srccert, "-passout", "pass:password",
+ "-export", "-macalg", $macalg,
+ "-certpbe", $certpbe, "-keypbe", $keypbe,
+ "-out", $dstfile]));
+ }, grep(/\.p12/, @generated_files))
+ # *.der (the end all init)
+ && runall(sub {
+ my $dstfile = shift;
+ (my $srcfile = $dstfile) =~ s/\.der$/.pem/i;
+ if (! -f $srcfile) {
+ $srcfile = srctop_file("test", $srcfile);
+ }
+ my $infh;
+ unless (open $infh, $srcfile) {
+ return 0;
+ }
+ my $l;
+ while (($l = <$infh>) !~ /^-----BEGIN\s/
+ || $l =~ /^-----BEGIN.*PARAMETERS-----/) {
+ }
+ my $b64 = "";
+ while (($l = <$infh>) !~ /^-----END\s/) {
+ $l =~ s|\R$||;
+ $b64 .= $l unless $l =~ /:/;
+ }
+ close $infh;
+ my $der = decode_base64($b64);
+ unless (length($b64) / 4 * 3 - length($der) < 3) {
+ print STDERR "Length error, ",length($b64),
+ " bytes of base64 became ",length($der),
+ " bytes of der? ($srcfile => $dstfile)\n";
+ return 0;
+ }
+ my $outfh;
+ unless (open $outfh, ">:raw", $dstfile) {
+ return 0;
+ }
+ print $outfh $der;
+ close $outfh;
+ return 1;
+ }, grep(/\.der$/, @generated_files))
+ && runall(sub {
+ my $srcfile = shift;
+ my $dstfile = $generated_file_files{$srcfile};
+
+ unless (copy srctop_file($srcfile), $dstfile) {
+ warn "$!\n";
+ return 0;
+ }
+ return 1;
+ }, keys %generated_file_files)
+ );
+}
+
+sub init_rehash {
+ return (
+ mkdir(catdir(curdir(), 'rehash'))
+ && copy(srctop_file('test', 'testx509.pem'),
+ catdir(curdir(), 'rehash'))
+ && copy(srctop_file('test', 'testcrl.pem'),
+ catdir(curdir(), 'rehash'))
+ && run(app(['openssl', 'rehash', catdir(curdir(), 'rehash')]))
+ );
+}
+
+sub runall {
+ my ($function, @items) = @_;
+
+ foreach (@items) {
+ return 0 unless $function->($_);
+ }
+ return 1;
+}
+
+# According to RFC8089, a relative file: path is invalid. We still produce
+# them for testing purposes.
+sub to_file_uri {
+ my ($file, $isdir, $authority) = @_;
+ my $vol;
+ my $dir;
+
+ die "to_file_uri: No file given\n" if !defined($file) || $file eq '';
+
+ ($vol, $dir, $file) = File::Spec->splitpath($file, $isdir // 0);
+
+ # Make sure we have a Unix style directory.
+ $dir = join('/', File::Spec->splitdir($dir));
+ # Canonicalise it (note: it seems to be only needed on Unix)
+ while (1) {
+ my $newdir = $dir;
+ $newdir =~ s|/[^/]*[^/\.]+[^/]*/\.\./|/|g;
+ last if $newdir eq $dir;
+ $dir = $newdir;
+ }
+ # Take care of the corner cases the loop can't handle, and that $dir
+ # ends with a / unless it's empty
+ $dir =~ s|/[^/]*[^/\.]+[^/]*/\.\.$|/|;
+ $dir =~ s|^[^/]*[^/\.]+[^/]*/\.\./|/|;
+ $dir =~ s|^[^/]*[^/\.]+[^/]*/\.\.$||;
+ if ($isdir // 0) {
+ $dir =~ s|/$|| if $dir ne '/';
+ } else {
+ $dir .= '/' if $dir ne '' && $dir !~ m|/$|;
+ }
+
+ # If the file system has separate volumes (at present, Windows and VMS)
+ # we need to handle them. In URIs, they are invariably the first
+ # component of the path, which is always absolute.
+ # On VMS, user:[foo.bar] translates to /user/foo/bar
+ # On Windows, c:\Users\Foo translates to /c:/Users/Foo
+ if ($vol ne '') {
+ $vol =~ s|:||g if ($^O eq "VMS");
+ $dir = '/' . $dir if $dir ne '' && $dir !~ m|^/|;
+ $dir = '/' . $vol . $dir;
+ }
+ $file = $dir . $file;
+
+ return "file://$authority$file" if defined $authority;
+ return "file:$file";
+}
+
+sub to_abs_file {
+ my ($file) = @_;
+
+ return File::Spec->rel2abs($file);
+}
+
+sub to_abs_file_uri {
+ my ($file, $isdir, $authority) = @_;
+
+ die "to_abs_file_uri: No file given\n" if !defined($file) || $file eq '';
+ return to_file_uri(to_abs_file($file), $isdir, $authority);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_store_data/ca.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_store_data/ca.cnf
new file mode 100644
index 000000000..bda6eec4b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_store_data/ca.cnf
@@ -0,0 +1,56 @@
+####################################################################
+[ req ]
+default_bits = 2432
+default_keyfile = cakey.pem
+default_md = sha256
+distinguished_name = req_DN
+string_mask = utf8only
+x509_extensions = v3_selfsign
+
+[ req_DN ]
+commonName = "Common Name"
+commonName_value = "CA"
+
+[ v3_selfsign ]
+basicConstraints = critical,CA:true
+keyUsage = keyCertSign
+subjectKeyIdentifier=hash
+
+####################################################################
+[ ca ]
+default_ca = CA_default # The default ca section
+
+####################################################################
+[ CA_default ]
+
+dir = ./demoCA
+certificate = ./demoCA/cacert.pem
+serial = ./demoCA/serial
+private_key = ./demoCA/private/cakey.pem
+new_certs_dir = ./demoCA/newcerts
+
+certificate = cacert.pem
+private_key = cakey.pem
+
+x509_extensions = v3_user
+
+name_opt = ca_default # Subject Name options
+cert_opt = ca_default # Certificate field options
+
+policy = policy_anything
+
+[ policy_anything ]
+countryName = optional
+stateOrProvinceName = optional
+localityName = optional
+organizationName = optional
+organizationalUnitName = optional
+commonName = supplied
+emailAddress = optional
+
+[ v3_user ]
+basicConstraints=critical,CA:FALSE
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid,issuer
+issuerAltName=issuer:copy
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_store_data/user.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_store_data/user.cnf
new file mode 100644
index 000000000..91f796947
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_store_data/user.cnf
@@ -0,0 +1,19 @@
+####################################################################
+[ req ]
+default_bits = 2432
+default_md = sha256
+distinguished_name = req_DN
+string_mask = utf8only
+
+req_extensions = v3_req # The extensions to add to a certificate request
+
+[ req_DN ]
+commonName = "Common Name"
+commonName_value = "A user"
+userId = "User ID"
+userId_value = "test"
+
+[ v3_req ]
+extendedKeyUsage = clientAuth
+subjectKeyIdentifier = hash
+basicConstraints = CA:false
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_sysdefault.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_sysdefault.t
new file mode 100644
index 000000000..a34888c15
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_sysdefault.t
@@ -0,0 +1,23 @@
+#! /usr/bin/env perl
+# Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Utils;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+my $test_name = "test_sysdefault";
+setup($test_name);
+
+plan skip_all => "$test_name is not supported in this build"
+ if disabled("tls1_2") || disabled("rsa");
+
+plan tests => 1;
+
+$ENV{OPENSSL_CONF} = srctop_file("test", "sysdefault.cnf");
+
+ok(run(test(["sysdefaulttest"])), "sysdefaulttest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_threads.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_threads.t
new file mode 100644
index 000000000..56d533864
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_threads.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_threads", "threadstest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_time_offset.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_time_offset.t
new file mode 100644
index 000000000..a032d9b40
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_time_offset.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_time_offset", "time_offset_test");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_tls13ccs.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_tls13ccs.t
new file mode 100644
index 000000000..2ec28ce5f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_tls13ccs.t
@@ -0,0 +1,22 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Utils;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+my $test_name = "test_tls13ccs";
+setup($test_name);
+
+plan skip_all => "$test_name is not supported in this build"
+ if disabled("tls1_3");
+
+plan tests => 1;
+
+ok(run(test(["tls13ccstest", srctop_file("apps", "server.pem"),
+ srctop_file("apps", "server.pem")])), "tls13ccstest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_tls13encryption.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_tls13encryption.t
new file mode 100644
index 000000000..e6ca97a13
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_tls13encryption.t
@@ -0,0 +1,20 @@
+#! /usr/bin/env perl
+# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use OpenSSL::Test;
+use OpenSSL::Test::Utils;
+
+my $test_name = "tls13encryption";
+setup($test_name);
+
+plan skip_all => "$test_name is not supported in this build"
+ if disabled("tls1_3");
+
+plan tests => 1;
+
+ok(run(test(["tls13encryptiontest"])), "running tls13encryptiontest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_tls13secrets.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_tls13secrets.t
new file mode 100644
index 000000000..549088530
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_tls13secrets.t
@@ -0,0 +1,20 @@
+#! /usr/bin/env perl
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use OpenSSL::Test;
+use OpenSSL::Test::Utils;
+
+my $test_name = "tls13secrets";
+setup($test_name);
+
+plan skip_all => "$test_name is not supported in this build"
+ if disabled("tls1_3") || disabled("shared");
+
+plan tests => 1;
+
+ok(run(test(["tls13secretstest"])), "running tls13secretstest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_v3name.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_v3name.t
new file mode 100644
index 000000000..2e144e5a2
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/90-test_v3name.t
@@ -0,0 +1,12 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test::Simple;
+
+simple_test("test_v3name", "v3nametest");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_boringssl.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_boringssl.t
new file mode 100644
index 000000000..5e3f67edb
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_boringssl.t
@@ -0,0 +1,30 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test;
+use OpenSSL::Test::Utils;
+use OpenSSL::Test qw/:DEFAULT bldtop_file srctop_file cmdstr/;
+
+setup("test_external_boringssl");
+
+plan skip_all => "No external tests in this configuration"
+ if disabled("external-tests");
+plan skip_all => "BoringSSL runner not detected"
+ if !$ENV{BORING_RUNNER_DIR};
+
+plan tests => 1;
+
+indir $ENV{BORING_RUNNER_DIR} => sub {
+ ok(run(cmd(["go", "test", "-shim-path",
+ bldtop_file("test", "ossl_shim", "ossl_shim"),
+ "-shim-config",
+ srctop_file("test", "ossl_shim", "ossl_config.json"),
+ "-pipe", "-allow-unimplemented"]), prefix => "go test: "),
+ "running BoringSSL tests");
+}, create => 0, cleanup => 0;
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_krb5.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_krb5.t
new file mode 100644
index 000000000..6cc4d2681
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_krb5.t
@@ -0,0 +1,23 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test;
+use OpenSSL::Test::Utils;
+use OpenSSL::Test qw/:DEFAULT data_file srctop_file/;
+
+setup("test_external_krb5");
+
+plan skip_all => "No external tests in this configuration"
+ if disabled("external-tests");
+plan skip_all => "krb5 not available"
+ if ! -f srctop_file("krb5", "README");
+
+plan tests => 1;
+
+ok(run(cmd([data_file("krb5.sh")])), "running krb5 tests");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_krb5_data/krb5.sh b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_krb5_data/krb5.sh
new file mode 100755
index 000000000..39c6592f9
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_krb5_data/krb5.sh
@@ -0,0 +1,23 @@
+#!/bin/sh -ex
+#
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# krb5's test suite clears LD_LIBRARY_PATH
+LDFLAGS="-L`pwd`/$BLDTOP -Wl,-rpath,`pwd`/$BLDTOP"
+CFLAGS="-I`pwd`/$BLDTOP/include -I`pwd`/$SRCTOP/include"
+
+cd $SRCTOP/krb5/src
+autoreconf
+./configure --with-ldap --with-prng-alg=os --enable-pkinit \
+ --with-crypto-impl=openssl --with-tls-impl=openssl \
+ CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS"
+
+# quiet make so that Travis doesn't overflow
+make -s
+
+make check
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_pyca.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_pyca.t
new file mode 100644
index 000000000..c1ada9941
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_pyca.t
@@ -0,0 +1,28 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test;
+use OpenSSL::Test::Utils;
+use OpenSSL::Test qw/:DEFAULT bldtop_file data_file srctop_file cmdstr/;
+
+setup("test_external");
+
+plan skip_all => "No external tests in this configuration"
+ if disabled("external-tests");
+plan skip_all => "PYCA tests not available on Windows or VMS"
+ if $^O =~ /^(VMS|MSWin32)$/;
+plan skip_all => "PYCA Cryptography not available"
+ if ! -f srctop_file("pyca-cryptography", "setup.py");
+plan skip_all => "PYCA tests only available in a shared build"
+ if disabled("shared");
+
+plan tests => 1;
+
+ok(run(cmd(["sh", data_file("cryptography.sh")])),
+ "running Python Cryptography tests");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_pyca_data/cryptography.sh b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_pyca_data/cryptography.sh
new file mode 100755
index 000000000..e1616914a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/95-test_external_pyca_data/cryptography.sh
@@ -0,0 +1,64 @@
+#!/bin/sh
+#
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+#
+# OpenSSL external testing using the Python Cryptography module
+#
+set -e
+
+O_EXE=`pwd`/$BLDTOP/apps
+O_BINC=`pwd`/$BLDTOP/include
+O_SINC=`pwd`/$SRCTOP/include
+O_LIB=`pwd`/$BLDTOP
+
+export PATH=$O_EXE:$PATH
+export LD_LIBRARY_PATH=$O_LIB:$LD_LIBRARY_PATH
+
+# Check/Set openssl version
+OPENSSL_VERSION=`openssl version | cut -f 2 -d ' '`
+
+echo "------------------------------------------------------------------"
+echo "Testing OpenSSL using Python Cryptography:"
+echo " CWD: $PWD"
+echo " SRCTOP: $SRCTOP"
+echo " BLDTOP: $BLDTOP"
+echo " OpenSSL version: $OPENSSL_VERSION"
+echo "------------------------------------------------------------------"
+
+cd $SRCTOP
+
+# Create a python virtual env and activate
+rm -rf venv-pycrypto
+virtualenv venv-pycrypto
+. ./venv-pycrypto/bin/activate
+
+cd pyca-cryptography
+
+pip install .[test]
+
+echo "------------------------------------------------------------------"
+echo "Building cryptography"
+echo "------------------------------------------------------------------"
+python ./setup.py clean
+
+CFLAGS="-I$O_BINC -I$O_SINC -L$O_LIB" python ./setup.py build
+
+echo "------------------------------------------------------------------"
+echo "Running tests"
+echo "------------------------------------------------------------------"
+
+CFLAGS="-I$O_BINC -I$O_SINC -L$O_LIB" python ./setup.py test
+
+cd ../
+deactivate
+rm -rf venv-pycrypto
+
+exit 0
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/99-test_ecstress.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/99-test_ecstress.t
new file mode 100644
index 000000000..f95a5443a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/99-test_ecstress.t
@@ -0,0 +1,23 @@
+#! /usr/bin/env perl
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use warnings;
+
+use OpenSSL::Test;
+use OpenSSL::Test::Utils;
+
+setup("test_ecstress");
+
+plan tests => 1;
+
+SKIP: {
+ skip "Skipping EC stress test", 1
+ if ! exists $ENV{'ECSTRESS'};
+ ok(run(test(["ecstresstest"])), "running ecstresstest");
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/99-test_fuzz.t b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/99-test_fuzz.t
new file mode 100644
index 000000000..99970e392
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/99-test_fuzz.t
@@ -0,0 +1,40 @@
+#!/usr/bin/env perl
+# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use warnings;
+
+use OpenSSL::Glob;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+use OpenSSL::Test::Utils;
+
+setup("test_fuzz");
+
+my @fuzzers = ('asn1', 'asn1parse', 'bignum', 'bndiv', 'client', 'conf', 'crl', 'server', 'x509');
+if (!disabled("cms")) {
+ push @fuzzers, 'cms';
+}
+if (!disabled("ct")) {
+ push @fuzzers, 'ct';
+}
+plan tests => scalar @fuzzers;
+
+foreach my $f (@fuzzers) {
+ subtest "Fuzzing $f" => sub {
+ my @dirs = glob(srctop_file('fuzz', 'corpora', $f));
+ push @dirs, glob(srctop_file('fuzz', 'corpora', "$f-*"));
+
+ plan skip_all => "No corpora for $f-test" unless @dirs;
+
+ plan tests => scalar @dirs;
+
+ foreach (@dirs) {
+ ok(run(fuzz(["$f-test", $_])));
+ }
+ }
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/ocsp-response.der b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/ocsp-response.der
new file mode 100644
index 000000000..31351a0e3
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/ocsp-response.der
Binary files differ
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/tconversion.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/tconversion.pl
new file mode 100644
index 000000000..fb0b766ce
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recipes/tconversion.pl
@@ -0,0 +1,105 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Compare qw/compare_text/;
+use File::Copy;
+use OpenSSL::Test qw/:DEFAULT/;
+
+my %conversionforms = (
+ # Default conversion forms. Other series may be added with
+ # specific test types as key.
+ "*" => [ "d", "p" ],
+ "msb" => [ "d", "p", "msblob" ],
+ );
+sub tconversion {
+ my $testtype = shift;
+ my $t = shift;
+ my @conversionforms =
+ defined($conversionforms{$testtype}) ?
+ @{$conversionforms{$testtype}} :
+ @{$conversionforms{"*"}};
+ my @openssl_args = @_;
+ if (!@openssl_args) { @openssl_args = ($testtype); }
+
+ my $n = scalar @conversionforms;
+ my $totaltests =
+ 1 # for initializing
+ + $n # initial conversions from p to all forms (A)
+ + $n*$n # conversion from result of A to all forms (B)
+ + 1 # comparing original test file to p form of A
+ + $n*($n-1); # comparing first conversion to each fom in A with B
+ $totaltests-- if ($testtype eq "p7d"); # no comparison of original test file
+ plan tests => $totaltests;
+
+ my @cmd = ("openssl", @openssl_args);
+
+ my $init;
+ if (scalar @openssl_args > 0 && $openssl_args[0] eq "pkey") {
+ $init = ok(run(app([@cmd, "-in", $t, "-out", "$testtype-fff.p"])),
+ 'initializing');
+ } else {
+ $init = ok(copy($t, "$testtype-fff.p"), 'initializing');
+ }
+ if (!$init) {
+ diag("Trying to copy $t to $testtype-fff.p : $!");
+ }
+
+ SKIP: {
+ skip "Not initialized, skipping...", 22 unless $init;
+
+ foreach my $to (@conversionforms) {
+ ok(run(app([@cmd,
+ "-in", "$testtype-fff.p",
+ "-inform", "p",
+ "-out", "$testtype-f.$to",
+ "-outform", $to])),
+ "p -> $to");
+ }
+
+ foreach my $to (@conversionforms) {
+ foreach my $from (@conversionforms) {
+ ok(run(app([@cmd,
+ "-in", "$testtype-f.$from",
+ "-inform", $from,
+ "-out", "$testtype-ff.$from$to",
+ "-outform", $to])),
+ "$from -> $to");
+ }
+ }
+
+ if ($testtype ne "p7d") {
+ is(cmp_text("$testtype-fff.p", "$testtype-f.p"), 0,
+ 'comparing orig to p');
+ }
+
+ foreach my $to (@conversionforms) {
+ next if $to eq "d";
+ foreach my $from (@conversionforms) {
+ is(cmp_text("$testtype-f.$to", "$testtype-ff.$from$to"), 0,
+ "comparing $to to $from$to");
+ }
+ }
+ }
+ unlink glob "$testtype-f.*";
+ unlink glob "$testtype-ff.*";
+ unlink glob "$testtype-fff.*";
+}
+
+sub cmp_text {
+ return compare_text(@_, sub {
+ $_[0] =~ s/\R//g;
+ $_[1] =~ s/\R//g;
+ return $_[0] ne $_[1];
+ });
+}
+
+1;
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recordlentest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recordlentest.c
new file mode 100644
index 000000000..457335d30
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/recordlentest.c
@@ -0,0 +1,197 @@
+/*
+ * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+
+#include "ssltestlib.h"
+#include "testutil.h"
+
+static char *cert = NULL;
+static char *privkey = NULL;
+
+#define TEST_PLAINTEXT_OVERFLOW_OK 0
+#define TEST_PLAINTEXT_OVERFLOW_NOT_OK 1
+#define TEST_ENCRYPTED_OVERFLOW_TLS1_3_OK 2
+#define TEST_ENCRYPTED_OVERFLOW_TLS1_3_NOT_OK 3
+#define TEST_ENCRYPTED_OVERFLOW_TLS1_2_OK 4
+#define TEST_ENCRYPTED_OVERFLOW_TLS1_2_NOT_OK 5
+
+#define TOTAL_RECORD_OVERFLOW_TESTS 6
+
+static int write_record(BIO *b, size_t len, int rectype, int recversion)
+{
+ unsigned char header[SSL3_RT_HEADER_LENGTH];
+ size_t written;
+ unsigned char buf[256];
+
+ memset(buf, 0, sizeof(buf));
+
+ header[0] = rectype;
+ header[1] = (recversion >> 8) & 0xff;
+ header[2] = recversion & 0xff;
+ header[3] = (len >> 8) & 0xff;
+ header[4] = len & 0xff;
+
+ if (!BIO_write_ex(b, header, SSL3_RT_HEADER_LENGTH, &written)
+ || written != SSL3_RT_HEADER_LENGTH)
+ return 0;
+
+ while (len > 0) {
+ size_t outlen;
+
+ if (len > sizeof(buf))
+ outlen = sizeof(buf);
+ else
+ outlen = len;
+
+ if (!BIO_write_ex(b, buf, outlen, &written)
+ || written != outlen)
+ return 0;
+
+ len -= outlen;
+ }
+
+ return 1;
+}
+
+static int fail_due_to_record_overflow(int enc)
+{
+ long err = ERR_peek_error();
+ int reason;
+
+ if (enc)
+ reason = SSL_R_ENCRYPTED_LENGTH_TOO_LONG;
+ else
+ reason = SSL_R_DATA_LENGTH_TOO_LONG;
+
+ if (ERR_GET_LIB(err) == ERR_LIB_SSL
+ && ERR_GET_REASON(err) == reason)
+ return 1;
+
+ return 0;
+}
+
+static int test_record_overflow(int idx)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ size_t len = 0;
+ size_t written;
+ int overf_expected;
+ unsigned char buf;
+ BIO *serverbio;
+ int recversion;
+
+#ifdef OPENSSL_NO_TLS1_2
+ if (idx == TEST_ENCRYPTED_OVERFLOW_TLS1_2_OK
+ || idx == TEST_ENCRYPTED_OVERFLOW_TLS1_2_NOT_OK)
+ return 1;
+#endif
+#ifdef OPENSSL_NO_TLS1_3
+ if (idx == TEST_ENCRYPTED_OVERFLOW_TLS1_3_OK
+ || idx == TEST_ENCRYPTED_OVERFLOW_TLS1_3_NOT_OK)
+ return 1;
+#endif
+
+ ERR_clear_error();
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ goto end;
+
+ if (idx == TEST_ENCRYPTED_OVERFLOW_TLS1_2_OK
+ || idx == TEST_ENCRYPTED_OVERFLOW_TLS1_2_NOT_OK) {
+ len = SSL3_RT_MAX_ENCRYPTED_LENGTH;
+#ifndef OPENSSL_NO_COMP
+ len -= SSL3_RT_MAX_COMPRESSED_OVERHEAD;
+#endif
+ SSL_CTX_set_max_proto_version(sctx, TLS1_2_VERSION);
+ } else if (idx == TEST_ENCRYPTED_OVERFLOW_TLS1_3_OK
+ || idx == TEST_ENCRYPTED_OVERFLOW_TLS1_3_NOT_OK) {
+ len = SSL3_RT_MAX_TLS13_ENCRYPTED_LENGTH;
+ }
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL)))
+ goto end;
+
+ serverbio = SSL_get_rbio(serverssl);
+
+ if (idx == TEST_PLAINTEXT_OVERFLOW_OK
+ || idx == TEST_PLAINTEXT_OVERFLOW_NOT_OK) {
+ len = SSL3_RT_MAX_PLAIN_LENGTH;
+
+ if (idx == TEST_PLAINTEXT_OVERFLOW_NOT_OK)
+ len++;
+
+ if (!TEST_true(write_record(serverbio, len,
+ SSL3_RT_HANDSHAKE, TLS1_VERSION)))
+ goto end;
+
+ if (!TEST_int_le(SSL_accept(serverssl), 0))
+ goto end;
+
+ overf_expected = (idx == TEST_PLAINTEXT_OVERFLOW_OK) ? 0 : 1;
+ if (!TEST_int_eq(fail_due_to_record_overflow(0), overf_expected))
+ goto end;
+
+ goto success;
+ }
+
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ if (idx == TEST_ENCRYPTED_OVERFLOW_TLS1_2_NOT_OK
+ || idx == TEST_ENCRYPTED_OVERFLOW_TLS1_3_NOT_OK) {
+ overf_expected = 1;
+ len++;
+ } else {
+ overf_expected = 0;
+ }
+
+ recversion = TLS1_2_VERSION;
+
+ if (!TEST_true(write_record(serverbio, len, SSL3_RT_APPLICATION_DATA,
+ recversion)))
+ goto end;
+
+ if (!TEST_false(SSL_read_ex(serverssl, &buf, sizeof(buf), &written)))
+ goto end;
+
+ if (!TEST_int_eq(fail_due_to_record_overflow(1), overf_expected))
+ goto end;
+
+ success:
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ return testresult;
+}
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(cert = test_get_argument(0))
+ || !TEST_ptr(privkey = test_get_argument(1)))
+ return 0;
+
+ ADD_ALL_TESTS(test_record_overflow, TOTAL_RECORD_OVERFLOW_TESTS);
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+ bio_s_mempacket_test_free();
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rsa_complex.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rsa_complex.c
new file mode 100644
index 000000000..fac581254
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rsa_complex.c
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/*
+ * Check to see if there is a conflict between complex.h and openssl/rsa.h.
+ * The former defines "I" as a macro and earlier versions of the latter use
+ * for function arguments.
+ */
+#if defined(__STDC_VERSION__)
+# if __STDC_VERSION__ >= 199901L
+# include <complex.h>
+# endif
+#endif
+#include <openssl/rsa.h>
+#include <stdlib.h>
+
+int main(int argc, char *argv[])
+{
+ /* There are explicitly no run time checks for this one */
+ return EXIT_SUCCESS;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rsa_mp_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rsa_mp_test.c
new file mode 100644
index 000000000..a7d4c589e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rsa_mp_test.c
@@ -0,0 +1,230 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2017 BaishanCloud. All rights reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/* This aims to test the setting functions */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/crypto.h>
+#include <openssl/err.h>
+#include <openssl/rand.h>
+#include <openssl/bn.h>
+
+#include "testutil.h"
+
+#ifndef OPENSSL_NO_RSA
+# include <openssl/rsa.h>
+
+#define NUM_EXTRA_PRIMES 1
+
+static int key2048p3(RSA *key)
+{
+ /* C90 requires string should <= 509 bytes */
+ static const unsigned char n[] =
+ "\x92\x60\xd0\x75\x0a\xe1\x17\xee\xe5\x5c\x3f\x3d\xea\xba\x74\x91"
+ "\x75\x21\xa2\x62\xee\x76\x00\x7c\xdf\x8a\x56\x75\x5a\xd7\x3a\x15"
+ "\x98\xa1\x40\x84\x10\xa0\x14\x34\xc3\xf5\xbc\x54\xa8\x8b\x57\xfa"
+ "\x19\xfc\x43\x28\xda\xea\x07\x50\xa4\xc4\x4e\x88\xcf\xf3\xb2\x38"
+ "\x26\x21\xb8\x0f\x67\x04\x64\x43\x3e\x43\x36\xe6\xd0\x03\xe8\xcd"
+ "\x65\xbf\xf2\x11\xda\x14\x4b\x88\x29\x1c\x22\x59\xa0\x0a\x72\xb7"
+ "\x11\xc1\x16\xef\x76\x86\xe8\xfe\xe3\x4e\x4d\x93\x3c\x86\x81\x87"
+ "\xbd\xc2\x6f\x7b\xe0\x71\x49\x3c\x86\xf7\xa5\x94\x1c\x35\x10\x80"
+ "\x6a\xd6\x7b\x0f\x94\xd8\x8f\x5c\xf5\xc0\x2a\x09\x28\x21\xd8\x62"
+ "\x6e\x89\x32\xb6\x5c\x5b\xd8\xc9\x20\x49\xc2\x10\x93\x2b\x7a\xfa"
+ "\x7a\xc5\x9c\x0e\x88\x6a\xe5\xc1\xed\xb0\x0d\x8c\xe2\xc5\x76\x33"
+ "\xdb\x26\xbd\x66\x39\xbf\xf7\x3c\xee\x82\xbe\x92\x75\xc4\x02\xb4"
+ "\xcf\x2a\x43\x88\xda\x8c\xf8\xc6\x4e\xef\xe1\xc5\xa0\xf5\xab\x80"
+ "\x57\xc3\x9f\xa5\xc0\x58\x9c\x3e\x25\x3f\x09\x60\x33\x23\x00\xf9"
+ "\x4b\xea\x44\x87\x7b\x58\x8e\x1e\xdb\xde\x97\xcf\x23\x60\x72\x7a"
+ "\x09\xb7\x75\x26\x2d\x7e\xe5\x52\xb3\x31\x9b\x92\x66\xf0\x5a\x25";
+
+ static const unsigned char e[] = "\x01\x00\x01";
+
+ static const unsigned char d[] =
+ "\x6a\x7d\xf2\xca\x63\xea\xd4\xdd\xa1\x91\xd6\x14\xb6\xb3\x85\xe0"
+ "\xd9\x05\x6a\x3d\x6d\x5c\xfe\x07\xdb\x1d\xaa\xbe\xe0\x22\xdb\x08"
+ "\x21\x2d\x97\x61\x3d\x33\x28\xe0\x26\x7c\x9d\xd2\x3d\x78\x7a\xbd"
+ "\xe2\xaf\xcb\x30\x6a\xeb\x7d\xfc\xe6\x92\x46\xcc\x73\xf5\xc8\x7f"
+ "\xdf\x06\x03\x01\x79\xa2\x11\x4b\x76\x7d\xb1\xf0\x83\xff\x84\x1c"
+ "\x02\x5d\x7d\xc0\x0c\xd8\x24\x35\xb9\xa9\x0f\x69\x53\x69\xe9\x4d"
+ "\xf2\x3d\x2c\xe4\x58\xbc\x3b\x32\x83\xad\x8b\xba\x2b\x8f\xa1\xba"
+ "\x62\xe2\xdc\xe9\xac\xcf\xf3\x79\x9a\xae\x7c\x84\x00\x16\xf3\xba"
+ "\x8e\x00\x48\xc0\xb6\xcc\x43\x39\xaf\x71\x61\x00\x3a\x5b\xeb\x86"
+ "\x4a\x01\x64\xb2\xc1\xc9\x23\x7b\x64\xbc\x87\x55\x69\x94\x35\x1b"
+ "\x27\x50\x6c\x33\xd4\xbc\xdf\xce\x0f\x9c\x49\x1a\x7d\x6b\x06\x28"
+ "\xc7\xc8\x52\xbe\x4f\x0a\x9c\x31\x32\xb2\xed\x3a\x2c\x88\x81\xe9"
+ "\xaa\xb0\x7e\x20\xe1\x7d\xeb\x07\x46\x91\xbe\x67\x77\x76\xa7\x8b"
+ "\x5c\x50\x2e\x05\xd9\xbd\xde\x72\x12\x6b\x37\x38\x69\x5e\x2d\xd1"
+ "\xa0\xa9\x8a\x14\x24\x7c\x65\xd8\xa7\xee\x79\x43\x2a\x09\x2c\xb0"
+ "\x72\x1a\x12\xdf\x79\x8e\x44\xf7\xcf\xce\x0c\x49\x81\x47\xa9\xb1";
+
+ static const unsigned char p[] =
+ "\x06\x77\xcd\xd5\x46\x9b\xc1\xd5\x58\x00\x81\xe2\xf3\x0a\x36\xb1"
+ "\x6e\x29\x89\xd5\x2f\x31\x5f\x92\x22\x3b\x9b\x75\x30\x82\xfa\xc5"
+ "\xf5\xde\x8a\x36\xdb\xc6\xe5\x8f\xef\x14\x37\xd6\x00\xf9\xab\x90"
+ "\x9b\x5d\x57\x4c\xf5\x1f\x77\xc4\xbb\x8b\xdd\x9b\x67\x11\x45\xb2"
+ "\x64\xe8\xac\xa8\x03\x0f\x16\x0d\x5d\x2d\x53\x07\x23\xfb\x62\x0d"
+ "\xe6\x16\xd3\x23\xe8\xb3";
+
+ static const unsigned char q[] =
+ "\x06\x66\x9a\x70\x53\xd6\x72\x74\xfd\xea\x45\xc3\xc0\x17\xae\xde"
+ "\x79\x17\xae\x79\xde\xfc\x0e\xf7\xa4\x3a\x8c\x43\x8f\xc7\x8a\xa2"
+ "\x2c\x51\xc4\xd0\x72\x89\x73\x5c\x61\xbe\xfd\x54\x3f\x92\x65\xde"
+ "\x4d\x65\x71\x70\xf6\xf2\xe5\x98\xb9\x0f\xd1\x0b\xe6\x95\x09\x4a"
+ "\x7a\xdf\xf3\x10\x16\xd0\x60\xfc\xa5\x10\x34\x97\x37\x6f\x0a\xd5"
+ "\x5d\x8f\xd4\xc3\xa0\x5b";
+
+ static const unsigned char dmp1[] =
+ "\x05\x7c\x9e\x1c\xbd\x90\x25\xe7\x40\x86\xf5\xa8\x3b\x7a\x3f\x99"
+ "\x56\x95\x60\x3a\x7b\x95\x4b\xb8\xa0\xd7\xa5\xf1\xcc\xdc\x5f\xb5"
+ "\x8c\xf4\x62\x95\x54\xed\x2e\x12\x62\xc2\xe8\xf6\xde\xce\xed\x8e"
+ "\x77\x6d\xc0\x40\x25\x74\xb3\x5a\x2d\xaa\xe1\xac\x11\xcb\xe2\x2f"
+ "\x0a\x51\x23\x1e\x47\xb2\x05\x88\x02\xb2\x0f\x4b\xf0\x67\x30\xf0"
+ "\x0f\x6e\xef\x5f\xf7\xe7";
+
+ static const unsigned char dmq1[] =
+ "\x01\xa5\x6b\xbc\xcd\xe3\x0e\x46\xc6\x72\xf5\x04\x56\x28\x01\x22"
+ "\x58\x74\x5d\xbc\x1c\x3c\x29\x41\x49\x6c\x81\x5c\x72\xe2\xf7\xe5"
+ "\xa3\x8e\x58\x16\xe0\x0e\x37\xac\x1f\xbb\x75\xfd\xaf\xe7\xdf\xe9"
+ "\x1f\x70\xa2\x8f\x52\x03\xc0\x46\xd9\xf9\x96\x63\x00\x27\x7e\x5f"
+ "\x38\x60\xd6\x6b\x61\xe2\xaf\xbe\xea\x58\xd3\x9d\xbc\x75\x03\x8d"
+ "\x42\x65\xd6\x6b\x85\x97";
+
+ static const unsigned char iqmp[] =
+ "\x03\xa1\x8b\x80\xe4\xd8\x87\x25\x17\x5d\xcc\x8d\xa9\x8a\x22\x2b"
+ "\x6c\x15\x34\x6f\x80\xcc\x1c\x44\x04\x68\xbc\x03\xcd\x95\xbb\x69"
+ "\x37\x61\x48\xb4\x23\x13\x08\x16\x54\x6a\xa1\x7c\xf5\xd4\x3a\xe1"
+ "\x4f\xa4\x0c\xf5\xaf\x80\x85\x27\x06\x0d\x70\xc0\xc5\x19\x28\xfe"
+ "\xee\x8e\x86\x21\x98\x8a\x37\xb7\xe5\x30\x25\x70\x93\x51\x2d\x49"
+ "\x85\x56\xb3\x0c\x2b\x96";
+
+ static const unsigned char ex_prime[] =
+ "\x03\x89\x22\xa0\xb7\x3a\x91\xcb\x5e\x0c\xfd\x73\xde\xa7\x38\xa9"
+ "\x47\x43\xd6\x02\xbf\x2a\xb9\x3c\x48\xf3\x06\xd6\x58\x35\x50\x56"
+ "\x16\x5c\x34\x9b\x61\x87\xc8\xaa\x0a\x5d\x8a\x0a\xcd\x9c\x41\xd9"
+ "\x96\x24\xe0\xa9\x9b\x26\xb7\xa8\x08\xc9\xea\xdc\xa7\x15\xfb\x62"
+ "\xa0\x2d\x90\xe6\xa7\x55\x6e\xc6\x6c\xff\xd6\x10\x6d\xfa\x2e\x04"
+ "\x50\xec\x5c\x66\xe4\x05";
+
+ static const unsigned char ex_exponent[] =
+ "\x02\x0a\xcd\xc3\x82\xd2\x03\xb0\x31\xac\xd3\x20\x80\x34\x9a\x57"
+ "\xbc\x60\x04\x57\x25\xd0\x29\x9a\x16\x90\xb9\x1c\x49\x6a\xd1\xf2"
+ "\x47\x8c\x0e\x9e\xc9\x20\xc2\xd8\xe4\x8f\xce\xd2\x1a\x9c\xec\xb4"
+ "\x1f\x33\x41\xc8\xf5\x62\xd1\xa5\xef\x1d\xa1\xd8\xbd\x71\xc6\xf7"
+ "\xda\x89\x37\x2e\xe2\xec\x47\xc5\xb8\xe3\xb4\xe3\x5c\x82\xaa\xdd"
+ "\xb7\x58\x2e\xaf\x07\x79";
+
+ static const unsigned char ex_coefficient[] =
+ "\x00\x9c\x09\x88\x9b\xc8\x57\x08\x69\x69\xab\x2d\x9e\x29\x1c\x3c"
+ "\x6d\x59\x33\x12\x0d\x2b\x09\x2e\xaf\x01\x2c\x27\x01\xfc\xbd\x26"
+ "\x13\xf9\x2d\x09\x22\x4e\x49\x11\x03\x82\x88\x87\xf4\x43\x1d\xac"
+ "\xca\xec\x86\xf7\x23\xf1\x64\xf3\xf5\x81\xf0\x37\x36\xcf\x67\xff"
+ "\x1a\xff\x7a\xc7\xf9\xf9\x67\x2d\xa0\x9d\x61\xf8\xf6\x47\x5c\x2f"
+ "\xe7\x66\xe8\x3c\x3a\xe8";
+
+ BIGNUM **pris = NULL, **exps = NULL, **coeffs = NULL;
+ int rv = 256; /* public key length */
+
+ if (!TEST_int_eq(RSA_set0_key(key,
+ BN_bin2bn(n, sizeof(n) - 1, NULL),
+ BN_bin2bn(e, sizeof(e) - 1, NULL),
+ BN_bin2bn(d, sizeof(d) - 1, NULL)), 1))
+ goto err;
+
+ if (!TEST_int_eq(RSA_set0_factors(key,
+ BN_bin2bn(p, sizeof(p) - 1, NULL),
+ BN_bin2bn(q, sizeof(q) - 1, NULL)), 1))
+ goto err;
+
+ if (!TEST_int_eq(RSA_set0_crt_params(key,
+ BN_bin2bn(dmp1, sizeof(dmp1) - 1, NULL),
+ BN_bin2bn(dmq1, sizeof(dmq1) - 1, NULL),
+ BN_bin2bn(iqmp, sizeof(iqmp) - 1,
+ NULL)), 1))
+ return 0;
+
+ pris = OPENSSL_zalloc(sizeof(BIGNUM *));
+ exps = OPENSSL_zalloc(sizeof(BIGNUM *));
+ coeffs = OPENSSL_zalloc(sizeof(BIGNUM *));
+ if (!TEST_ptr(pris) || !TEST_ptr(exps) || !TEST_ptr(coeffs))
+ goto err;
+
+ pris[0] = BN_bin2bn(ex_prime, sizeof(ex_prime) - 1, NULL);
+ exps[0] = BN_bin2bn(ex_exponent, sizeof(ex_exponent) - 1, NULL);
+ coeffs[0] = BN_bin2bn(ex_coefficient, sizeof(ex_coefficient) - 1, NULL);
+ if (!TEST_ptr(pris[0]) || !TEST_ptr(exps[0]) || !TEST_ptr(coeffs[0]))
+ goto err;
+
+ if (!TEST_true(RSA_set0_multi_prime_params(key, pris, exps,
+ coeffs, NUM_EXTRA_PRIMES)))
+ goto err;
+
+ ret:
+ OPENSSL_free(pris);
+ OPENSSL_free(exps);
+ OPENSSL_free(coeffs);
+ return rv;
+ err:
+ if (pris != NULL)
+ BN_free(pris[0]);
+ if (exps != NULL)
+ BN_free(exps[0]);
+ if (coeffs != NULL)
+ BN_free(coeffs[0]);
+ rv = 0;
+ goto ret;
+}
+
+static int test_rsa_mp(void)
+{
+ int ret = 0;
+ RSA *key;
+ unsigned char ptext[256];
+ unsigned char ctext[256];
+ static unsigned char ptext_ex[] = "\x54\x85\x9b\x34\x2c\x49\xea\x2a";
+ int plen;
+ int clen = 0;
+ int num;
+
+ plen = sizeof(ptext_ex) - 1;
+ key = RSA_new();
+ if (!TEST_ptr(key))
+ goto err;
+ clen = key2048p3(key);
+ if (!TEST_int_eq(clen, 256))
+ goto err;
+
+ if (!TEST_true(RSA_check_key_ex(key, NULL)))
+ goto err;
+
+ num = RSA_public_encrypt(plen, ptext_ex, ctext, key,
+ RSA_PKCS1_PADDING);
+ if (!TEST_int_eq(num, clen))
+ goto err;
+
+ num = RSA_private_decrypt(num, ctext, ptext, key, RSA_PKCS1_PADDING);
+ if (!TEST_mem_eq(ptext, num, ptext_ex, plen))
+ goto err;
+
+ ret = 1;
+err:
+ RSA_free(key);
+ return ret;
+}
+#endif
+
+int setup_tests(void)
+{
+#ifndef OPENSSL_NO_RSA
+ ADD_TEST(test_rsa_mp);
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rsa_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rsa_test.c
new file mode 100644
index 000000000..3820785ed
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/rsa_test.c
@@ -0,0 +1,369 @@
+/*
+ * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/* test vectors from p1ovect1.txt */
+
+#include <stdio.h>
+#include <string.h>
+
+#include "internal/nelem.h"
+
+#include <openssl/crypto.h>
+#include <openssl/err.h>
+#include <openssl/rand.h>
+#include <openssl/bn.h>
+
+#include "testutil.h"
+
+#ifdef OPENSSL_NO_RSA
+int setup_tests(void)
+{
+ /* No tests */
+ return 1;
+}
+#else
+# include <openssl/rsa.h>
+
+# define SetKey \
+ RSA_set0_key(key, \
+ BN_bin2bn(n, sizeof(n)-1, NULL), \
+ BN_bin2bn(e, sizeof(e)-1, NULL), \
+ BN_bin2bn(d, sizeof(d)-1, NULL)); \
+ RSA_set0_factors(key, \
+ BN_bin2bn(p, sizeof(p)-1, NULL), \
+ BN_bin2bn(q, sizeof(q)-1, NULL)); \
+ RSA_set0_crt_params(key, \
+ BN_bin2bn(dmp1, sizeof(dmp1)-1, NULL), \
+ BN_bin2bn(dmq1, sizeof(dmq1)-1, NULL), \
+ BN_bin2bn(iqmp, sizeof(iqmp)-1, NULL)); \
+ memcpy(c, ctext_ex, sizeof(ctext_ex) - 1); \
+ return sizeof(ctext_ex) - 1;
+
+static int key1(RSA *key, unsigned char *c)
+{
+ static unsigned char n[] =
+ "\x00\xAA\x36\xAB\xCE\x88\xAC\xFD\xFF\x55\x52\x3C\x7F\xC4\x52\x3F"
+ "\x90\xEF\xA0\x0D\xF3\x77\x4A\x25\x9F\x2E\x62\xB4\xC5\xD9\x9C\xB5"
+ "\xAD\xB3\x00\xA0\x28\x5E\x53\x01\x93\x0E\x0C\x70\xFB\x68\x76\x93"
+ "\x9C\xE6\x16\xCE\x62\x4A\x11\xE0\x08\x6D\x34\x1E\xBC\xAC\xA0\xA1"
+ "\xF5";
+
+ static unsigned char e[] = "\x11";
+
+ static unsigned char d[] =
+ "\x0A\x03\x37\x48\x62\x64\x87\x69\x5F\x5F\x30\xBC\x38\xB9\x8B\x44"
+ "\xC2\xCD\x2D\xFF\x43\x40\x98\xCD\x20\xD8\xA1\x38\xD0\x90\xBF\x64"
+ "\x79\x7C\x3F\xA7\xA2\xCD\xCB\x3C\xD1\xE0\xBD\xBA\x26\x54\xB4\xF9"
+ "\xDF\x8E\x8A\xE5\x9D\x73\x3D\x9F\x33\xB3\x01\x62\x4A\xFD\x1D\x51";
+
+ static unsigned char p[] =
+ "\x00\xD8\x40\xB4\x16\x66\xB4\x2E\x92\xEA\x0D\xA3\xB4\x32\x04\xB5"
+ "\xCF\xCE\x33\x52\x52\x4D\x04\x16\xA5\xA4\x41\xE7\x00\xAF\x46\x12"
+ "\x0D";
+
+ static unsigned char q[] =
+ "\x00\xC9\x7F\xB1\xF0\x27\xF4\x53\xF6\x34\x12\x33\xEA\xAA\xD1\xD9"
+ "\x35\x3F\x6C\x42\xD0\x88\x66\xB1\xD0\x5A\x0F\x20\x35\x02\x8B\x9D"
+ "\x89";
+
+ static unsigned char dmp1[] =
+ "\x59\x0B\x95\x72\xA2\xC2\xA9\xC4\x06\x05\x9D\xC2\xAB\x2F\x1D\xAF"
+ "\xEB\x7E\x8B\x4F\x10\xA7\x54\x9E\x8E\xED\xF5\xB4\xFC\xE0\x9E\x05";
+
+ static unsigned char dmq1[] =
+ "\x00\x8E\x3C\x05\x21\xFE\x15\xE0\xEA\x06\xA3\x6F\xF0\xF1\x0C\x99"
+ "\x52\xC3\x5B\x7A\x75\x14\xFD\x32\x38\xB8\x0A\xAD\x52\x98\x62\x8D"
+ "\x51";
+
+ static unsigned char iqmp[] =
+ "\x36\x3F\xF7\x18\x9D\xA8\xE9\x0B\x1D\x34\x1F\x71\xD0\x9B\x76\xA8"
+ "\xA9\x43\xE1\x1D\x10\xB2\x4D\x24\x9F\x2D\xEA\xFE\xF8\x0C\x18\x26";
+
+ static unsigned char ctext_ex[] =
+ "\x1b\x8f\x05\xf9\xca\x1a\x79\x52\x6e\x53\xf3\xcc\x51\x4f\xdb\x89"
+ "\x2b\xfb\x91\x93\x23\x1e\x78\xb9\x92\xe6\x8d\x50\xa4\x80\xcb\x52"
+ "\x33\x89\x5c\x74\x95\x8d\x5d\x02\xab\x8c\x0f\xd0\x40\xeb\x58\x44"
+ "\xb0\x05\xc3\x9e\xd8\x27\x4a\x9d\xbf\xa8\x06\x71\x40\x94\x39\xd2";
+
+ SetKey;
+}
+
+static int key2(RSA *key, unsigned char *c)
+{
+ static unsigned char n[] =
+ "\x00\xA3\x07\x9A\x90\xDF\x0D\xFD\x72\xAC\x09\x0C\xCC\x2A\x78\xB8"
+ "\x74\x13\x13\x3E\x40\x75\x9C\x98\xFA\xF8\x20\x4F\x35\x8A\x0B\x26"
+ "\x3C\x67\x70\xE7\x83\xA9\x3B\x69\x71\xB7\x37\x79\xD2\x71\x7B\xE8"
+ "\x34\x77\xCF";
+
+ static unsigned char e[] = "\x3";
+
+ static unsigned char d[] =
+ "\x6C\xAF\xBC\x60\x94\xB3\xFE\x4C\x72\xB0\xB3\x32\xC6\xFB\x25\xA2"
+ "\xB7\x62\x29\x80\x4E\x68\x65\xFC\xA4\x5A\x74\xDF\x0F\x8F\xB8\x41"
+ "\x3B\x52\xC0\xD0\xE5\x3D\x9B\x59\x0F\xF1\x9B\xE7\x9F\x49\xDD\x21"
+ "\xE5\xEB";
+
+ static unsigned char p[] =
+ "\x00\xCF\x20\x35\x02\x8B\x9D\x86\x98\x40\xB4\x16\x66\xB4\x2E\x92"
+ "\xEA\x0D\xA3\xB4\x32\x04\xB5\xCF\xCE\x91";
+
+ static unsigned char q[] =
+ "\x00\xC9\x7F\xB1\xF0\x27\xF4\x53\xF6\x34\x12\x33\xEA\xAA\xD1\xD9"
+ "\x35\x3F\x6C\x42\xD0\x88\x66\xB1\xD0\x5F";
+
+ static unsigned char dmp1[] =
+ "\x00\x8A\x15\x78\xAC\x5D\x13\xAF\x10\x2B\x22\xB9\x99\xCD\x74\x61"
+ "\xF1\x5E\x6D\x22\xCC\x03\x23\xDF\xDF\x0B";
+
+ static unsigned char dmq1[] =
+ "\x00\x86\x55\x21\x4A\xC5\x4D\x8D\x4E\xCD\x61\x77\xF1\xC7\x36\x90"
+ "\xCE\x2A\x48\x2C\x8B\x05\x99\xCB\xE0\x3F";
+
+ static unsigned char iqmp[] =
+ "\x00\x83\xEF\xEF\xB8\xA9\xA4\x0D\x1D\xB6\xED\x98\xAD\x84\xED\x13"
+ "\x35\xDC\xC1\x08\xF3\x22\xD0\x57\xCF\x8D";
+
+ static unsigned char ctext_ex[] =
+ "\x14\xbd\xdd\x28\xc9\x83\x35\x19\x23\x80\xe8\xe5\x49\xb1\x58\x2a"
+ "\x8b\x40\xb4\x48\x6d\x03\xa6\xa5\x31\x1f\x1f\xd5\xf0\xa1\x80\xe4"
+ "\x17\x53\x03\x29\xa9\x34\x90\x74\xb1\x52\x13\x54\x29\x08\x24\x52"
+ "\x62\x51";
+
+ SetKey;
+}
+
+static int key3(RSA *key, unsigned char *c)
+{
+ static unsigned char n[] =
+ "\x00\xBB\xF8\x2F\x09\x06\x82\xCE\x9C\x23\x38\xAC\x2B\x9D\xA8\x71"
+ "\xF7\x36\x8D\x07\xEE\xD4\x10\x43\xA4\x40\xD6\xB6\xF0\x74\x54\xF5"
+ "\x1F\xB8\xDF\xBA\xAF\x03\x5C\x02\xAB\x61\xEA\x48\xCE\xEB\x6F\xCD"
+ "\x48\x76\xED\x52\x0D\x60\xE1\xEC\x46\x19\x71\x9D\x8A\x5B\x8B\x80"
+ "\x7F\xAF\xB8\xE0\xA3\xDF\xC7\x37\x72\x3E\xE6\xB4\xB7\xD9\x3A\x25"
+ "\x84\xEE\x6A\x64\x9D\x06\x09\x53\x74\x88\x34\xB2\x45\x45\x98\x39"
+ "\x4E\xE0\xAA\xB1\x2D\x7B\x61\xA5\x1F\x52\x7A\x9A\x41\xF6\xC1\x68"
+ "\x7F\xE2\x53\x72\x98\xCA\x2A\x8F\x59\x46\xF8\xE5\xFD\x09\x1D\xBD"
+ "\xCB";
+
+ static unsigned char e[] = "\x11";
+
+ static unsigned char d[] =
+ "\x00\xA5\xDA\xFC\x53\x41\xFA\xF2\x89\xC4\xB9\x88\xDB\x30\xC1\xCD"
+ "\xF8\x3F\x31\x25\x1E\x06\x68\xB4\x27\x84\x81\x38\x01\x57\x96\x41"
+ "\xB2\x94\x10\xB3\xC7\x99\x8D\x6B\xC4\x65\x74\x5E\x5C\x39\x26\x69"
+ "\xD6\x87\x0D\xA2\xC0\x82\xA9\x39\xE3\x7F\xDC\xB8\x2E\xC9\x3E\xDA"
+ "\xC9\x7F\xF3\xAD\x59\x50\xAC\xCF\xBC\x11\x1C\x76\xF1\xA9\x52\x94"
+ "\x44\xE5\x6A\xAF\x68\xC5\x6C\x09\x2C\xD3\x8D\xC3\xBE\xF5\xD2\x0A"
+ "\x93\x99\x26\xED\x4F\x74\xA1\x3E\xDD\xFB\xE1\xA1\xCE\xCC\x48\x94"
+ "\xAF\x94\x28\xC2\xB7\xB8\x88\x3F\xE4\x46\x3A\x4B\xC8\x5B\x1C\xB3"
+ "\xC1";
+
+ static unsigned char p[] =
+ "\x00\xEE\xCF\xAE\x81\xB1\xB9\xB3\xC9\x08\x81\x0B\x10\xA1\xB5\x60"
+ "\x01\x99\xEB\x9F\x44\xAE\xF4\xFD\xA4\x93\xB8\x1A\x9E\x3D\x84\xF6"
+ "\x32\x12\x4E\xF0\x23\x6E\x5D\x1E\x3B\x7E\x28\xFA\xE7\xAA\x04\x0A"
+ "\x2D\x5B\x25\x21\x76\x45\x9D\x1F\x39\x75\x41\xBA\x2A\x58\xFB\x65"
+ "\x99";
+
+ static unsigned char q[] =
+ "\x00\xC9\x7F\xB1\xF0\x27\xF4\x53\xF6\x34\x12\x33\xEA\xAA\xD1\xD9"
+ "\x35\x3F\x6C\x42\xD0\x88\x66\xB1\xD0\x5A\x0F\x20\x35\x02\x8B\x9D"
+ "\x86\x98\x40\xB4\x16\x66\xB4\x2E\x92\xEA\x0D\xA3\xB4\x32\x04\xB5"
+ "\xCF\xCE\x33\x52\x52\x4D\x04\x16\xA5\xA4\x41\xE7\x00\xAF\x46\x15"
+ "\x03";
+
+ static unsigned char dmp1[] =
+ "\x54\x49\x4C\xA6\x3E\xBA\x03\x37\xE4\xE2\x40\x23\xFC\xD6\x9A\x5A"
+ "\xEB\x07\xDD\xDC\x01\x83\xA4\xD0\xAC\x9B\x54\xB0\x51\xF2\xB1\x3E"
+ "\xD9\x49\x09\x75\xEA\xB7\x74\x14\xFF\x59\xC1\xF7\x69\x2E\x9A\x2E"
+ "\x20\x2B\x38\xFC\x91\x0A\x47\x41\x74\xAD\xC9\x3C\x1F\x67\xC9\x81";
+
+ static unsigned char dmq1[] =
+ "\x47\x1E\x02\x90\xFF\x0A\xF0\x75\x03\x51\xB7\xF8\x78\x86\x4C\xA9"
+ "\x61\xAD\xBD\x3A\x8A\x7E\x99\x1C\x5C\x05\x56\xA9\x4C\x31\x46\xA7"
+ "\xF9\x80\x3F\x8F\x6F\x8A\xE3\x42\xE9\x31\xFD\x8A\xE4\x7A\x22\x0D"
+ "\x1B\x99\xA4\x95\x84\x98\x07\xFE\x39\xF9\x24\x5A\x98\x36\xDA\x3D";
+
+ static unsigned char iqmp[] =
+ "\x00\xB0\x6C\x4F\xDA\xBB\x63\x01\x19\x8D\x26\x5B\xDB\xAE\x94\x23"
+ "\xB3\x80\xF2\x71\xF7\x34\x53\x88\x50\x93\x07\x7F\xCD\x39\xE2\x11"
+ "\x9F\xC9\x86\x32\x15\x4F\x58\x83\xB1\x67\xA9\x67\xBF\x40\x2B\x4E"
+ "\x9E\x2E\x0F\x96\x56\xE6\x98\xEA\x36\x66\xED\xFB\x25\x79\x80\x39"
+ "\xF7";
+
+ static unsigned char ctext_ex[] =
+ "\xb8\x24\x6b\x56\xa6\xed\x58\x81\xae\xb5\x85\xd9\xa2\x5b\x2a\xd7"
+ "\x90\xc4\x17\xe0\x80\x68\x1b\xf1\xac\x2b\xc3\xde\xb6\x9d\x8b\xce"
+ "\xf0\xc4\x36\x6f\xec\x40\x0a\xf0\x52\xa7\x2e\x9b\x0e\xff\xb5\xb3"
+ "\xf2\xf1\x92\xdb\xea\xca\x03\xc1\x27\x40\x05\x71\x13\xbf\x1f\x06"
+ "\x69\xac\x22\xe9\xf3\xa7\x85\x2e\x3c\x15\xd9\x13\xca\xb0\xb8\x86"
+ "\x3a\x95\xc9\x92\x94\xce\x86\x74\x21\x49\x54\x61\x03\x46\xf4\xd4"
+ "\x74\xb2\x6f\x7c\x48\xb4\x2e\xe6\x8e\x1f\x57\x2a\x1f\xc4\x02\x6a"
+ "\xc4\x56\xb4\xf5\x9f\x7b\x62\x1e\xa1\xb9\xd8\x8f\x64\x20\x2f\xb1";
+
+ SetKey;
+}
+
+static int pad_unknown(void)
+{
+ unsigned long l;
+ while ((l = ERR_get_error()) != 0)
+ if (ERR_GET_REASON(l) == RSA_R_UNKNOWN_PADDING_TYPE)
+ return 1;
+ return 0;
+}
+
+static int rsa_setkey(RSA** key, unsigned char* ctext, int idx)
+{
+ int clen = 0;
+ *key = RSA_new();
+ switch (idx) {
+ case 0:
+ clen = key1(*key, ctext);
+ break;
+ case 1:
+ clen = key2(*key, ctext);
+ break;
+ case 2:
+ clen = key3(*key, ctext);
+ break;
+ }
+ return clen;
+}
+
+static int test_rsa_pkcs1(int idx)
+{
+ int ret = 0;
+ RSA *key;
+ unsigned char ptext[256];
+ unsigned char ctext[256];
+ static unsigned char ptext_ex[] = "\x54\x85\x9b\x34\x2c\x49\xea\x2a";
+ unsigned char ctext_ex[256];
+ int plen;
+ int clen = 0;
+ int num;
+
+ plen = sizeof(ptext_ex) - 1;
+ clen = rsa_setkey(&key, ctext_ex, idx);
+
+ num = RSA_public_encrypt(plen, ptext_ex, ctext, key,
+ RSA_PKCS1_PADDING);
+ if (!TEST_int_eq(num, clen))
+ goto err;
+
+ num = RSA_private_decrypt(num, ctext, ptext, key, RSA_PKCS1_PADDING);
+ if (!TEST_mem_eq(ptext, num, ptext_ex, plen))
+ goto err;
+
+ ret = 1;
+err:
+ RSA_free(key);
+ return ret;
+}
+
+static int test_rsa_sslv23(int idx)
+{
+ int ret = 0;
+ RSA *key;
+ unsigned char ptext[256];
+ unsigned char ctext[256];
+ static unsigned char ptext_ex[] = "\x54\x85\x9b\x34\x2c\x49\xea\x2a";
+ unsigned char ctext_ex[256];
+ int plen;
+ int clen = 0;
+ int num;
+
+ plen = sizeof(ptext_ex) - 1;
+ clen = rsa_setkey(&key, ctext_ex, idx);
+
+ num = RSA_public_encrypt(plen, ptext_ex, ctext, key,
+ RSA_SSLV23_PADDING);
+ if (!TEST_int_eq(num, clen))
+ goto err;
+
+ num = RSA_private_decrypt(num, ctext, ptext, key, RSA_SSLV23_PADDING);
+ if (!TEST_mem_eq(ptext, num, ptext_ex, plen))
+ goto err;
+
+ ret = 1;
+err:
+ RSA_free(key);
+ return ret;
+}
+
+static int test_rsa_oaep(int idx)
+{
+ int ret = 0;
+ RSA *key;
+ unsigned char ptext[256];
+ unsigned char ctext[256];
+ static unsigned char ptext_ex[] = "\x54\x85\x9b\x34\x2c\x49\xea\x2a";
+ unsigned char ctext_ex[256];
+ int plen;
+ int clen = 0;
+ int num;
+ int n;
+
+ plen = sizeof(ptext_ex) - 1;
+ clen = rsa_setkey(&key, ctext_ex, idx);
+
+ num = RSA_public_encrypt(plen, ptext_ex, ctext, key,
+ RSA_PKCS1_OAEP_PADDING);
+ if (num == -1 && pad_unknown()) {
+ TEST_info("Skipping: No OAEP support");
+ ret = 1;
+ goto err;
+ }
+ if (!TEST_int_eq(num, clen))
+ goto err;
+
+ num = RSA_private_decrypt(num, ctext, ptext, key,
+ RSA_PKCS1_OAEP_PADDING);
+ if (!TEST_mem_eq(ptext, num, ptext_ex, plen))
+ goto err;
+
+ /* Different ciphertexts. Try decrypting ctext_ex */
+ num = RSA_private_decrypt(clen, ctext_ex, ptext, key,
+ RSA_PKCS1_OAEP_PADDING);
+ if (!TEST_mem_eq(ptext, num, ptext_ex, plen))
+ goto err;
+
+ /* Try decrypting corrupted ciphertexts. */
+ for (n = 0; n < clen; ++n) {
+ ctext[n] ^= 1;
+ num = RSA_private_decrypt(clen, ctext, ptext, key,
+ RSA_PKCS1_OAEP_PADDING);
+ if (!TEST_int_le(num, 0))
+ goto err;
+ ctext[n] ^= 1;
+ }
+
+ /* Test truncated ciphertexts, as well as negative length. */
+ for (n = -1; n < clen; ++n) {
+ num = RSA_private_decrypt(n, ctext, ptext, key,
+ RSA_PKCS1_OAEP_PADDING);
+ if (!TEST_int_le(num, 0))
+ goto err;
+ }
+
+ ret = 1;
+err:
+ RSA_free(key);
+ return ret;
+}
+
+int setup_tests(void)
+{
+ ADD_ALL_TESTS(test_rsa_pkcs1, 3);
+ ADD_ALL_TESTS(test_rsa_sslv23, 3);
+ ADD_ALL_TESTS(test_rsa_oaep, 3);
+ return 1;
+}
+#endif
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/run_tests.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/run_tests.pl
new file mode 100644
index 000000000..117864022
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/run_tests.pl
@@ -0,0 +1,143 @@
+#! /usr/bin/env perl
+# Copyright 2015-2020 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use warnings;
+
+# Recognise VERBOSE and V which is common on other projects.
+BEGIN {
+ $ENV{HARNESS_VERBOSE} = "yes" if $ENV{VERBOSE} || $ENV{V};
+}
+
+use File::Spec::Functions qw/catdir catfile curdir abs2rel rel2abs/;
+use File::Basename;
+use FindBin;
+use lib "$FindBin::Bin/../util/perl";
+use OpenSSL::Glob;
+
+my $TAP_Harness = eval { require TAP::Harness } ? "TAP::Harness"
+ : "OpenSSL::TAP::Harness";
+
+my $srctop = $ENV{SRCTOP} || $ENV{TOP};
+my $bldtop = $ENV{BLDTOP} || $ENV{TOP};
+my $recipesdir = catdir($srctop, "test", "recipes");
+my $libdir = rel2abs(catdir($srctop, "util", "perl"));
+
+$ENV{OPENSSL_CONF} = catdir($srctop, "apps", "openssl.cnf");
+
+my %tapargs =
+ ( verbosity => $ENV{VERBOSE} || $ENV{V} || $ENV{HARNESS_VERBOSE} ? 1 : 0,
+ lib => [ $libdir ],
+ switches => '-w',
+ merge => 1
+ );
+
+my @alltests = find_matching_tests("*");
+my %tests = ();
+
+my $initial_arg = 1;
+foreach my $arg (@ARGV ? @ARGV : ('alltests')) {
+ if ($arg eq 'list') {
+ foreach (@alltests) {
+ (my $x = basename($_)) =~ s|^[0-9][0-9]-(.*)\.t$|$1|;
+ print $x,"\n";
+ }
+ exit 0;
+ }
+ if ($arg eq 'alltests') {
+ warn "'alltests' encountered, ignoring everything before that...\n"
+ unless $initial_arg;
+ %tests = map { $_ => 1 } @alltests;
+ } elsif ($arg =~ m/^(-?)(.*)/) {
+ my $sign = $1;
+ my $test = $2;
+ my @matches = find_matching_tests($test);
+
+ # If '-foo' is the first arg, it's short for 'alltests -foo'
+ if ($sign eq '-' && $initial_arg) {
+ %tests = map { $_ => 1 } @alltests;
+ }
+
+ if (scalar @matches == 0) {
+ warn "Test $test found no match, skipping ",
+ ($sign eq '-' ? "removal" : "addition"),
+ "...\n";
+ } else {
+ foreach $test (@matches) {
+ if ($sign eq '-') {
+ delete $tests{$test};
+ } else {
+ $tests{$test} = 1;
+ }
+ }
+ }
+ } else {
+ warn "I don't know what '$arg' is about, ignoring...\n";
+ }
+
+ $initial_arg = 0;
+}
+
+my $harness = $TAP_Harness->new(\%tapargs);
+my $ret = $harness->runtests(map { abs2rel($_, rel2abs(curdir())); }
+ sort keys %tests);
+
+# $ret->has_errors may be any number, not just 0 or 1. On VMS, numbers
+# from 2 and on are used as is as VMS statuses, which has severity encoded
+# in the lower 3 bits. 0 and 1, on the other hand, generate SUCCESS and
+# FAILURE, so for correct reporting on all platforms, we make sure the only
+# exit codes are 0 and 1. Double-bang is the trick to do so.
+exit !!$ret->has_errors if (ref($ret) eq "TAP::Parser::Aggregator");
+
+# If this isn't a TAP::Parser::Aggregator, it's the pre-TAP test harness,
+# which simply dies at the end if any test failed, so we don't need to bother
+# with any exit code in that case.
+
+sub find_matching_tests {
+ my ($glob) = @_;
+
+ if ($glob =~ m|^[\d\[\]\?\-]+$|) {
+ return glob(catfile($recipesdir,"$glob-*.t"));
+ }
+ return glob(catfile($recipesdir,"*-$glob.t"));
+}
+
+
+# Fake TAP::Harness in case it's not loaded
+use Test::Harness;
+package OpenSSL::TAP::Harness;
+
+sub new {
+ my $class = shift;
+ my %args = %{ shift() };
+
+ return bless { %args }, $class;
+}
+
+sub runtests {
+ my $self = shift;
+
+ my @switches = ();
+ if ($self->{switches}) {
+ push @switches, $self->{switches};
+ }
+ if ($self->{lib}) {
+ foreach (@{$self->{lib}}) {
+ my $l = $_;
+
+ # It seems that $switches is getting interpreted with 'eval' or
+ # something like that, and that we need to take care of backslashes
+ # or they will disappear along the way.
+ $l =~ s|\\|\\\\|g if $^O eq "MSWin32";
+ push @switches, "-I$l";
+ }
+ }
+
+ $Test::Harness::switches = join(' ', @switches);
+ Test::Harness::runtests(@_);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sanitytest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sanitytest.c
new file mode 100644
index 000000000..204c01c24
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sanitytest.c
@@ -0,0 +1,103 @@
+/*
+ * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+#include "testutil.h"
+#include "internal/numbers.h"
+
+static int test_sanity_null_zero(void)
+{
+ char *p;
+ char bytes[sizeof(p)];
+
+ /* Is NULL equivalent to all-bytes-zero? */
+ p = NULL;
+ memset(bytes, 0, sizeof(bytes));
+ return TEST_mem_eq(&p, sizeof(p), bytes, sizeof(bytes));
+}
+
+static int test_sanity_enum_size(void)
+{
+ enum smallchoices { sa, sb, sc };
+ enum medchoices { ma, mb, mc, md, me, mf, mg, mh, mi, mj, mk, ml };
+ enum largechoices {
+ a01, b01, c01, d01, e01, f01, g01, h01, i01, j01,
+ a02, b02, c02, d02, e02, f02, g02, h02, i02, j02,
+ a03, b03, c03, d03, e03, f03, g03, h03, i03, j03,
+ a04, b04, c04, d04, e04, f04, g04, h04, i04, j04,
+ a05, b05, c05, d05, e05, f05, g05, h05, i05, j05,
+ a06, b06, c06, d06, e06, f06, g06, h06, i06, j06,
+ a07, b07, c07, d07, e07, f07, g07, h07, i07, j07,
+ a08, b08, c08, d08, e08, f08, g08, h08, i08, j08,
+ a09, b09, c09, d09, e09, f09, g09, h09, i09, j09,
+ a10, b10, c10, d10, e10, f10, g10, h10, i10, j10,
+ xxx };
+
+ /* Enum size */
+ if (!TEST_size_t_eq(sizeof(enum smallchoices), sizeof(int))
+ || !TEST_size_t_eq(sizeof(enum medchoices), sizeof(int))
+ || !TEST_size_t_eq(sizeof(enum largechoices), sizeof(int)))
+ return 0;
+ return 1;
+}
+
+static int test_sanity_twos_complement(void)
+{
+ /* Basic two's complement checks. */
+ if (!TEST_int_eq(~(-1), 0)
+ || !TEST_long_eq(~(-1L), 0L))
+ return 0;
+ return 1;
+}
+
+static int test_sanity_sign(void)
+{
+ /* Check that values with sign bit 1 and value bits 0 are valid */
+ if (!TEST_int_eq(-(INT_MIN + 1), INT_MAX)
+ || !TEST_long_eq(-(LONG_MIN + 1), LONG_MAX))
+ return 0;
+ return 1;
+}
+
+static int test_sanity_unsigned_conversion(void)
+{
+ /* Check that unsigned-to-signed conversions preserve bit patterns */
+ if (!TEST_int_eq((int)((unsigned int)INT_MAX + 1), INT_MIN)
+ || !TEST_long_eq((long)((unsigned long)LONG_MAX + 1), LONG_MIN))
+ return 0;
+ return 1;
+}
+
+static int test_sanity_range(void)
+{
+ /* This isn't possible to check using the framework functions */
+ if (SIZE_MAX < INT_MAX) {
+ TEST_error("int must not be wider than size_t");
+ return 0;
+ }
+ return 1;
+}
+
+static int test_sanity_memcmp(void)
+{
+ return CRYPTO_memcmp("ab","cd",2);
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_sanity_null_zero);
+ ADD_TEST(test_sanity_enum_size);
+ ADD_TEST(test_sanity_twos_complement);
+ ADD_TEST(test_sanity_sign);
+ ADD_TEST(test_sanity_unsigned_conversion);
+ ADD_TEST(test_sanity_range);
+ ADD_TEST(test_sanity_memcmp);
+ return 1;
+}
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/secmemtest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/secmemtest.c
new file mode 100644
index 000000000..42aeb5d0c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/secmemtest.c
@@ -0,0 +1,183 @@
+/*
+ * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <openssl/crypto.h>
+
+#include "testutil.h"
+#include "../e_os.h"
+
+static int test_sec_mem(void)
+{
+#ifdef OPENSSL_SECURE_MEMORY
+ int testresult = 0;
+ char *p = NULL, *q = NULL, *r = NULL, *s = NULL;
+
+ TEST_info("Secure memory is implemented.");
+
+ s = OPENSSL_secure_malloc(20);
+ /* s = non-secure 20 */
+ if (!TEST_ptr(s)
+ || !TEST_false(CRYPTO_secure_allocated(s)))
+ goto end;
+ r = OPENSSL_secure_malloc(20);
+ /* r = non-secure 20, s = non-secure 20 */
+ if (!TEST_ptr(r)
+ || !TEST_true(CRYPTO_secure_malloc_init(4096, 32))
+ || !TEST_false(CRYPTO_secure_allocated(r)))
+ goto end;
+ p = OPENSSL_secure_malloc(20);
+ if (!TEST_ptr(p)
+ /* r = non-secure 20, p = secure 20, s = non-secure 20 */
+ || !TEST_true(CRYPTO_secure_allocated(p))
+ /* 20 secure -> 32-byte minimum allocation unit */
+ || !TEST_size_t_eq(CRYPTO_secure_used(), 32))
+ goto end;
+ q = OPENSSL_malloc(20);
+ if (!TEST_ptr(q))
+ goto end;
+ /* r = non-secure 20, p = secure 20, q = non-secure 20, s = non-secure 20 */
+ if (!TEST_false(CRYPTO_secure_allocated(q)))
+ goto end;
+ OPENSSL_secure_clear_free(s, 20);
+ s = OPENSSL_secure_malloc(20);
+ if (!TEST_ptr(s)
+ /* r = non-secure 20, p = secure 20, q = non-secure 20, s = secure 20 */
+ || !TEST_true(CRYPTO_secure_allocated(s))
+ /* 2 * 20 secure -> 64 bytes allocated */
+ || !TEST_size_t_eq(CRYPTO_secure_used(), 64))
+ goto end;
+ OPENSSL_secure_clear_free(p, 20);
+ p = NULL;
+ /* 20 secure -> 32 bytes allocated */
+ if (!TEST_size_t_eq(CRYPTO_secure_used(), 32))
+ goto end;
+ OPENSSL_free(q);
+ q = NULL;
+ /* should not complete, as secure memory is still allocated */
+ if (!TEST_false(CRYPTO_secure_malloc_done())
+ || !TEST_true(CRYPTO_secure_malloc_initialized()))
+ goto end;
+ OPENSSL_secure_free(s);
+ s = NULL;
+ /* secure memory should now be 0, so done should complete */
+ if (!TEST_size_t_eq(CRYPTO_secure_used(), 0)
+ || !TEST_true(CRYPTO_secure_malloc_done())
+ || !TEST_false(CRYPTO_secure_malloc_initialized()))
+ goto end;
+
+ TEST_info("Possible infinite loop: allocate more than available");
+ if (!TEST_true(CRYPTO_secure_malloc_init(32768, 16)))
+ goto end;
+ TEST_ptr_null(OPENSSL_secure_malloc((size_t)-1));
+ TEST_true(CRYPTO_secure_malloc_done());
+
+ /*
+ * If init fails, then initialized should be false, if not, this
+ * could cause an infinite loop secure_malloc, but we don't test it
+ */
+ if (TEST_false(CRYPTO_secure_malloc_init(16, 16)) &&
+ !TEST_false(CRYPTO_secure_malloc_initialized())) {
+ TEST_true(CRYPTO_secure_malloc_done());
+ goto end;
+ }
+
+ /*-
+ * There was also a possible infinite loop when the number of
+ * elements was 1<<31, as |int i| was set to that, which is a
+ * negative number. However, it requires minimum input values:
+ *
+ * CRYPTO_secure_malloc_init((size_t)1<<34, (size_t)1<<4);
+ *
+ * Which really only works on 64-bit systems, since it took 16 GB
+ * secure memory arena to trigger the problem. It naturally takes
+ * corresponding amount of available virtual and physical memory
+ * for test to be feasible/representative. Since we can't assume
+ * that every system is equipped with that much memory, the test
+ * remains disabled. If the reader of this comment really wants
+ * to make sure that infinite loop is fixed, they can enable the
+ * code below.
+ */
+# if 0
+ /*-
+ * On Linux and BSD this test has a chance to complete in minimal
+ * time and with minimum side effects, because mlock is likely to
+ * fail because of RLIMIT_MEMLOCK, which is customarily [much]
+ * smaller than 16GB. In other words Linux and BSD users can be
+ * limited by virtual space alone...
+ */
+ if (sizeof(size_t) > 4) {
+ TEST_info("Possible infinite loop: 1<<31 limit");
+ if (TEST_true(CRYPTO_secure_malloc_init((size_t)1<<34, (size_t)1<<4) != 0))
+ TEST_true(CRYPTO_secure_malloc_done());
+ }
+# endif
+
+ /* this can complete - it was not really secure */
+ testresult = 1;
+ end:
+ OPENSSL_secure_free(p);
+ OPENSSL_free(q);
+ OPENSSL_secure_free(r);
+ OPENSSL_secure_free(s);
+ return testresult;
+#else
+ TEST_info("Secure memory is *not* implemented.");
+ /* Should fail. */
+ return TEST_false(CRYPTO_secure_malloc_init(4096, 32));
+#endif
+}
+
+static int test_sec_mem_clear(void)
+{
+#ifdef OPENSSL_SECURE_MEMORY
+ const int size = 64;
+ unsigned char *p = NULL;
+ int i, res = 0;
+
+ if (!TEST_true(CRYPTO_secure_malloc_init(4096, 32))
+ || !TEST_ptr(p = OPENSSL_secure_malloc(size)))
+ goto err;
+
+ for (i = 0; i < size; i++)
+ if (!TEST_uchar_eq(p[i], 0))
+ goto err;
+
+ for (i = 0; i < size; i++)
+ p[i] = (unsigned char)(i + ' ' + 1);
+
+ OPENSSL_secure_free(p);
+
+ /*
+ * A deliberate use after free here to verify that the memory has been
+ * cleared properly. Since secure free doesn't return the memory to
+ * libc's memory pool, it technically isn't freed. However, the header
+ * bytes have to be skipped and these consist of two pointers in the
+ * current implementation.
+ */
+ for (i = sizeof(void *) * 2; i < size; i++)
+ if (!TEST_uchar_eq(p[i], 0))
+ return 0;
+
+ res = 1;
+ p = NULL;
+err:
+ OPENSSL_secure_free(p);
+ CRYPTO_secure_malloc_done();
+ return res;
+#else
+ return 1;
+#endif
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_sec_mem);
+ ADD_TEST(test_sec_mem_clear);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/serverinfo.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/serverinfo.pem
new file mode 100644
index 000000000..cd3020e3b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/serverinfo.pem
@@ -0,0 +1,16 @@
+-----BEGIN SERVERINFO FOR CT-----
+ABIAZMevsj4TC5rgwjZNciLGwh15YXoIK9t5aypGJIG4QzyMowmwwDdqxudkUcGa
+DvuqlYL7psO5j4/BIHTe677CAZBBH3Ho2NOM5q1zub4AbfUMlKeufuQgeQ2Tj1oe
+LJLRzrwDnPs=
+-----END SERVERINFO FOR CT-----
+
+-----BEGIN SERVERINFO FOR TACK-----
+8wABTwFMh1Dz+3W6zULWJKjav5TNaFEXL1h98YtCXeyZnORYg4mbKpxH5CMbjpgx
+To3amSqUPF4Ntjc/i9+poutxebYkbgAAAkMcxb8+RaM9YEywaJEGViKJJmpYG/gJ
+HgfGaefI9kKbXSDmP9ntg8dLvDzuyYw14ktM2850Q9WvBiltpekilZxVuT2bFtfs
+cmS++SAK9YOM8RrKhL1TLmrktoBEJZ6z5GTukYdQ8/t1us1C1iSo2r+UzWhRFy9Y
+ffGLQl3smZzkWIOJmyqcR+QjG46YMU6N2pkqlDxeDbY3P4vfqaLrcXm2JG4AAAGN
+xXQJPbdniI9rEydVXb1Cu1yT/t7FBEx6hLxuoypXjCI1wCGpXsd8zEnloR0Ank5h
+VO/874E/BZlItzSPpcmDKl5Def6BrAJTErQlE9npo52S05YWORxJw1+VYBdqQ09A
+x3wA
+-----END SERVERINFO FOR TACK-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/serverinfo2.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/serverinfo2.pem
new file mode 100644
index 000000000..792d5c031
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/serverinfo2.pem
@@ -0,0 +1,8 @@
+-----BEGIN SERVERINFOV2 FOR CT-----
+AAARgAASAPIA8AB2AO5Lvbd1zmC64UJpH6vhnmajD35fsHLYgwDEe4l6qP3LAAAB
+Wxp+yVkAAAQDAEcwRQIhAMhZ7Se2olZ35Mqze2NlDsW35ttyIrRuHyi6F0KlzsSp
+AiBDT8YLjNCUByVrD9jhoRbUy+t38fx9WbOWgRVxZ5xk2wB2AN3rHSt6DU+mIIuB
+rYFocH4ujp0B1VyIjT0RxM227L7MAAABWxp+x80AAAQDAEcwRQIgEz/5SC+JA5Ko
+0ivxGYf5XBCqjfcIrp2BpCVxyYA2ys0CIQC1kcCeihwwbiVFTjR8UecLaCd1l1ix
+nopZ9ljhG018+g==
+-----END SERVERINFOV2 FOR CT-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/servername_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/servername_test.c
new file mode 100644
index 000000000..39f6b2002
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/servername_test.c
@@ -0,0 +1,242 @@
+/*
+ * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2017 BaishanCloud. All rights reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+
+#include <openssl/opensslconf.h>
+#include <openssl/bio.h>
+#include <openssl/crypto.h>
+#include <openssl/evp.h>
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+#include <time.h>
+
+#include "../ssl/packet_local.h"
+
+#include "testutil.h"
+#include "internal/nelem.h"
+#include "ssltestlib.h"
+
+#define CLIENT_VERSION_LEN 2
+
+static const char *host = "dummy-host";
+
+static char *cert = NULL;
+static char *privkey = NULL;
+
+static int get_sni_from_client_hello(BIO *bio, char **sni)
+{
+ long len;
+ unsigned char *data;
+ PACKET pkt = {0}, pkt2 = {0}, pkt3 = {0}, pkt4 = {0}, pkt5 = {0};
+ unsigned int servname_type = 0, type = 0;
+ int ret = 0;
+
+ len = BIO_get_mem_data(bio, (char **)&data);
+ if (!TEST_true(PACKET_buf_init(&pkt, data, len))
+ /* Skip the record header */
+ || !PACKET_forward(&pkt, SSL3_RT_HEADER_LENGTH)
+ /* Skip the handshake message header */
+ || !TEST_true(PACKET_forward(&pkt, SSL3_HM_HEADER_LENGTH))
+ /* Skip client version and random */
+ || !TEST_true(PACKET_forward(&pkt, CLIENT_VERSION_LEN
+ + SSL3_RANDOM_SIZE))
+ /* Skip session id */
+ || !TEST_true(PACKET_get_length_prefixed_1(&pkt, &pkt2))
+ /* Skip ciphers */
+ || !TEST_true(PACKET_get_length_prefixed_2(&pkt, &pkt2))
+ /* Skip compression */
+ || !TEST_true(PACKET_get_length_prefixed_1(&pkt, &pkt2))
+ /* Extensions len */
+ || !TEST_true(PACKET_as_length_prefixed_2(&pkt, &pkt2)))
+ goto end;
+
+ /* Loop through all extensions for SNI */
+ while (PACKET_remaining(&pkt2)) {
+ if (!TEST_true(PACKET_get_net_2(&pkt2, &type))
+ || !TEST_true(PACKET_get_length_prefixed_2(&pkt2, &pkt3)))
+ goto end;
+ if (type == TLSEXT_TYPE_server_name) {
+ if (!TEST_true(PACKET_get_length_prefixed_2(&pkt3, &pkt4))
+ || !TEST_uint_ne(PACKET_remaining(&pkt4), 0)
+ || !TEST_true(PACKET_get_1(&pkt4, &servname_type))
+ || !TEST_uint_eq(servname_type, TLSEXT_NAMETYPE_host_name)
+ || !TEST_true(PACKET_get_length_prefixed_2(&pkt4, &pkt5))
+ || !TEST_uint_le(PACKET_remaining(&pkt5), TLSEXT_MAXLEN_host_name)
+ || !TEST_false(PACKET_contains_zero_byte(&pkt5))
+ || !TEST_true(PACKET_strndup(&pkt5, sni)))
+ goto end;
+ ret = 1;
+ goto end;
+ }
+ }
+end:
+ return ret;
+}
+
+static int client_setup_sni_before_state(void)
+{
+ SSL_CTX *ctx;
+ SSL *con = NULL;
+ BIO *rbio;
+ BIO *wbio;
+ char *hostname = NULL;
+ int ret = 0;
+
+ /* use TLS_method to blur 'side' */
+ ctx = SSL_CTX_new(TLS_method());
+ if (!TEST_ptr(ctx))
+ goto end;
+
+ con = SSL_new(ctx);
+ if (!TEST_ptr(con))
+ goto end;
+
+ /* set SNI before 'client side' is set */
+ SSL_set_tlsext_host_name(con, host);
+
+ rbio = BIO_new(BIO_s_mem());
+ wbio = BIO_new(BIO_s_mem());
+ if (!TEST_ptr(rbio)|| !TEST_ptr(wbio)) {
+ BIO_free(rbio);
+ BIO_free(wbio);
+ goto end;
+ }
+
+ SSL_set_bio(con, rbio, wbio);
+
+ if (!TEST_int_le(SSL_connect(con), 0))
+ /* This shouldn't succeed because we don't have a server! */
+ goto end;
+ if (!TEST_true(get_sni_from_client_hello(wbio, &hostname)))
+ /* no SNI in client hello */
+ goto end;
+ if (!TEST_str_eq(hostname, host))
+ /* incorrect SNI value */
+ goto end;
+ ret = 1;
+end:
+ OPENSSL_free(hostname);
+ SSL_free(con);
+ SSL_CTX_free(ctx);
+ return ret;
+}
+
+static int client_setup_sni_after_state(void)
+{
+ SSL_CTX *ctx;
+ SSL *con = NULL;
+ BIO *rbio;
+ BIO *wbio;
+ char *hostname = NULL;
+ int ret = 0;
+
+ /* use TLS_method to blur 'side' */
+ ctx = SSL_CTX_new(TLS_method());
+ if (!TEST_ptr(ctx))
+ goto end;
+
+ con = SSL_new(ctx);
+ if (!TEST_ptr(con))
+ goto end;
+
+ rbio = BIO_new(BIO_s_mem());
+ wbio = BIO_new(BIO_s_mem());
+ if (!TEST_ptr(rbio)|| !TEST_ptr(wbio)) {
+ BIO_free(rbio);
+ BIO_free(wbio);
+ goto end;
+ }
+
+ SSL_set_bio(con, rbio, wbio);
+ SSL_set_connect_state(con);
+
+ /* set SNI after 'client side' is set */
+ SSL_set_tlsext_host_name(con, host);
+
+ if (!TEST_int_le(SSL_connect(con), 0))
+ /* This shouldn't succeed because we don't have a server! */
+ goto end;
+ if (!TEST_true(get_sni_from_client_hello(wbio, &hostname)))
+ /* no SNI in client hello */
+ goto end;
+ if (!TEST_str_eq(hostname, host))
+ /* incorrect SNI value */
+ goto end;
+ ret = 1;
+end:
+ OPENSSL_free(hostname);
+ SSL_free(con);
+ SSL_CTX_free(ctx);
+ return ret;
+}
+
+static int server_setup_sni(void)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(),
+ TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey))
+ || !TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL)))
+ goto end;
+
+ /* set SNI at server side */
+ SSL_set_tlsext_host_name(serverssl, host);
+
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl, SSL_ERROR_NONE)))
+ goto end;
+
+ if (!TEST_ptr_null(SSL_get_servername(serverssl,
+ TLSEXT_NAMETYPE_host_name))) {
+ /* SNI should have been cleared during handshake */
+ goto end;
+ }
+
+ testresult = 1;
+end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+typedef int (*sni_test_fn)(void);
+
+static sni_test_fn sni_test_fns[3] = {
+ client_setup_sni_before_state,
+ client_setup_sni_after_state,
+ server_setup_sni
+};
+
+static int test_servername(int test)
+{
+ /*
+ * For each test set up an SSL_CTX and SSL and see
+ * what SNI behaves.
+ */
+ return sni_test_fns[test]();
+}
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(cert = test_get_argument(0))
+ || !TEST_ptr(privkey = test_get_argument(1)))
+ return 0;
+
+ ADD_ALL_TESTS(test_servername, OSSL_NELEM(sni_test_fns));
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/session.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/session.pem
new file mode 100644
index 000000000..ea0b0bcec
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/session.pem
@@ -0,0 +1,31 @@
+-----BEGIN SSL SESSION PARAMETERS-----
+MIIFSgIBAQICAwQEAhMCBCAUv8MKab5ruWM6I8xtEH++u+bb2B1OznYnDrRcpLll
+6AQwzwJoGXOQ3uCa7bCy07owBiH4Bf13MiDtwaHSnNTEyfLEZBy3SgCE06wa5TJk
+Fx8aoQYCBFsWdRqiBAICHCCjggPrMIID5zCCAs+gAwIBAgIJALnu1NlVpZ6zMA0G
+CSqGSIb3DQEBBQUAMHAxCzAJBgNVBAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdy
+b3VwMSIwIAYDVQQLDBlGT1IgVEVTVElORyBQVVJQT1NFUyBPTkxZMSUwIwYDVQQD
+DBxPcGVuU1NMIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTExMTIwODE0MDE0OFoX
+DTIxMTAxNjE0MDE0OFowZDELMAkGA1UEBhMCVUsxFjAUBgNVBAoMDU9wZW5TU0wg
+R3JvdXAxIjAgBgNVBAsMGUZPUiBURVNUSU5HIFBVUlBPU0VTIE9OTFkxGTAXBgNV
+BAMMEFRlc3QgU2VydmVyIENlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQDzhPOSNtyyRspmeuUpxfNJKCLTuf7g3uQ4zu4iHOmRO5TQci+HhVlLZrHF
+9XqFXcIP0y4pWDbMSGuiorUmzmfiR7bfSdI/+qIQt8KXRH6HNG1t8ou0VSvWId5T
+S5Dq/er5ODUr9OaaDva7EquHIcMvvPQGuI+OEAcnleVCy9HVEIySrO4P3CNIicnG
+kwwiAud05yUAq/gPXBC1hTtmlPD7TVcGVSEiJdvzqqlgv02qedGrkki6GY4S7GjZ
+xrrf7Foc2EP+51LJzwLQx3/JfrCU41NEWAsu/Sl0tQabXESN+zJ1pDqoZ3uHMgpQ
+jeGiE0olr+YcsSW/tJmiU9OiAr8RAgMBAAGjgY8wgYwwDAYDVR0TAQH/BAIwADAO
+BgNVHQ8BAf8EBAMCBeAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVk
+IENlcnRpZmljYXRlMB0GA1UdDgQWBBSCvM8AABPR9zklmifnr9LvIBturDAfBgNV
+HSMEGDAWgBQ2w2yI55X+sL3szj49hqshgYfa2jANBgkqhkiG9w0BAQUFAAOCAQEA
+qb1NV0B0/pbpK9Z4/bNjzPQLTRLKWnSNm/Jh5v0GEUOE/Beg7GNjNrmeNmqxAlpq
+Wz9qoeoFZax+QBpIZYjROU3TS3fpyLsrnlr0CDQ5R7kCCDGa8dkXxemmpZZLbUCp
+W2Uoy8sAA4JjN9OtsZY7dvUXFgJ7vVNTRnI01ghknbtD+2SxSQd3CWF6QhcRMAzZ
+J1z1cbbwGDDzfvGFPzJ+Sq+zEPdsxoVLLSetCiBc+40ZcDS5dV98h9XD7JMTQfxz
+A7mNGv73JoZJA6nFgj+ADSlJsY/tJBv+z1iQRueoh9Qeee+ZbRifPouCB8FDx+Al
+tvHTANdAq0t/K3o+pplMVKQCBAClAwIBFakEAgIcIKqB0wSB0EMQ5938LY/ASVsV
+0kStjTVOps9p3VT071bTjD3RR211+gLzBwGCk8gWNH1glJXjLAenh9E2ivDK1tYQ
+3ODRdB3V46t9E78r0uAmSG/WMJ9OvkFlXyIhseYwvWW0P1cAYPI/j3Evgcyu9GIs
+HSDVEKbBy9CJYCkW/SrT+2A3ouqp+wSW0XgDLFFB+mBte2Hg7wv2uILrYZ4Y0fNe
+CUcTq8B+0EFEiq7p0KRGXwpSKYxNw7qZgg/Us3W85BYMnzYjfDzN0KHf+BI28VRT
+Rjxuud2uBwIFANHVD/k=
+-----END SSL SESSION PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/shibboleth.pfx b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/shibboleth.pfx
new file mode 100644
index 000000000..9c5cc546b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/shibboleth.pfx
Binary files differ
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/shlibloadtest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/shlibloadtest.c
new file mode 100644
index 000000000..9649a941a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/shlibloadtest.c
@@ -0,0 +1,335 @@
+/*
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <openssl/opensslv.h>
+#include <openssl/ssl.h>
+#include <openssl/ossl_typ.h>
+#include "crypto/dso_conf.h"
+
+typedef void DSO;
+
+typedef const SSL_METHOD * (*TLS_method_t)(void);
+typedef SSL_CTX * (*SSL_CTX_new_t)(const SSL_METHOD *meth);
+typedef void (*SSL_CTX_free_t)(SSL_CTX *);
+typedef int (*OPENSSL_init_crypto_t)(uint64_t, void *);
+typedef int (*OPENSSL_atexit_t)(void (*handler)(void));
+typedef unsigned long (*ERR_get_error_t)(void);
+typedef unsigned long (*OpenSSL_version_num_t)(void);
+typedef DSO * (*DSO_dsobyaddr_t)(void (*addr)(void), int flags);
+typedef int (*DSO_free_t)(DSO *dso);
+
+typedef enum test_types_en {
+ CRYPTO_FIRST,
+ SSL_FIRST,
+ JUST_CRYPTO,
+ DSO_REFTEST,
+ NO_ATEXIT
+} TEST_TYPE;
+
+static TEST_TYPE test_type;
+static const char *path_crypto;
+static const char *path_ssl;
+static const char *path_atexit;
+
+#ifdef DSO_DLFCN
+
+# include <dlfcn.h>
+
+# define SHLIB_INIT NULL
+
+typedef void *SHLIB;
+typedef void *SHLIB_SYM;
+
+static int shlib_load(const char *filename, SHLIB *lib)
+{
+ int dl_flags = (RTLD_GLOBAL|RTLD_LAZY);
+#ifdef _AIX
+ if (filename[strlen(filename) - 1] == ')')
+ dl_flags |= RTLD_MEMBER;
+#endif
+ *lib = dlopen(filename, dl_flags);
+ return *lib == NULL ? 0 : 1;
+}
+
+static int shlib_sym(SHLIB lib, const char *symname, SHLIB_SYM *sym)
+{
+ *sym = dlsym(lib, symname);
+ return *sym != NULL;
+}
+
+static int shlib_close(SHLIB lib)
+{
+ return dlclose(lib) != 0 ? 0 : 1;
+}
+#endif
+
+#ifdef DSO_WIN32
+
+# include <windows.h>
+
+# define SHLIB_INIT 0
+
+typedef HINSTANCE SHLIB;
+typedef void *SHLIB_SYM;
+
+static int shlib_load(const char *filename, SHLIB *lib)
+{
+ *lib = LoadLibraryA(filename);
+ return *lib == NULL ? 0 : 1;
+}
+
+static int shlib_sym(SHLIB lib, const char *symname, SHLIB_SYM *sym)
+{
+ *sym = (SHLIB_SYM)GetProcAddress(lib, symname);
+ return *sym != NULL;
+}
+
+static int shlib_close(SHLIB lib)
+{
+ return FreeLibrary(lib) == 0 ? 0 : 1;
+}
+#endif
+
+
+#if defined(DSO_DLFCN) || defined(DSO_WIN32)
+
+static int atexit_handler_done = 0;
+
+static void atexit_handler(void)
+{
+ FILE *atexit_file = fopen(path_atexit, "w");
+
+ if (atexit_file == NULL)
+ return;
+
+ fprintf(atexit_file, "atexit() run\n");
+ fclose(atexit_file);
+ atexit_handler_done++;
+}
+
+static int test_lib(void)
+{
+ SHLIB ssllib = SHLIB_INIT;
+ SHLIB cryptolib = SHLIB_INIT;
+ SSL_CTX *ctx;
+ union {
+ void (*func)(void);
+ SHLIB_SYM sym;
+ } symbols[3];
+ TLS_method_t myTLS_method;
+ SSL_CTX_new_t mySSL_CTX_new;
+ SSL_CTX_free_t mySSL_CTX_free;
+ ERR_get_error_t myERR_get_error;
+ OpenSSL_version_num_t myOpenSSL_version_num;
+ OPENSSL_atexit_t myOPENSSL_atexit;
+ int result = 0;
+
+ switch (test_type) {
+ case JUST_CRYPTO:
+ case DSO_REFTEST:
+ case NO_ATEXIT:
+ case CRYPTO_FIRST:
+ if (!shlib_load(path_crypto, &cryptolib)) {
+ fprintf(stderr, "Failed to load libcrypto\n");
+ goto end;
+ }
+ if (test_type != CRYPTO_FIRST)
+ break;
+ /* Fall through */
+
+ case SSL_FIRST:
+ if (!shlib_load(path_ssl, &ssllib)) {
+ fprintf(stderr, "Failed to load libssl\n");
+ goto end;
+ }
+ if (test_type != SSL_FIRST)
+ break;
+ if (!shlib_load(path_crypto, &cryptolib)) {
+ fprintf(stderr, "Failed to load libcrypto\n");
+ goto end;
+ }
+ break;
+ }
+
+ if (test_type == NO_ATEXIT) {
+ OPENSSL_init_crypto_t myOPENSSL_init_crypto;
+
+ if (!shlib_sym(cryptolib, "OPENSSL_init_crypto", &symbols[0].sym)) {
+ fprintf(stderr, "Failed to load OPENSSL_init_crypto symbol\n");
+ goto end;
+ }
+ myOPENSSL_init_crypto = (OPENSSL_init_crypto_t)symbols[0].func;
+ if (!myOPENSSL_init_crypto(OPENSSL_INIT_NO_ATEXIT, NULL)) {
+ fprintf(stderr, "Failed to initialise libcrypto\n");
+ goto end;
+ }
+ }
+
+ if (test_type != JUST_CRYPTO
+ && test_type != DSO_REFTEST
+ && test_type != NO_ATEXIT) {
+ if (!shlib_sym(ssllib, "TLS_method", &symbols[0].sym)
+ || !shlib_sym(ssllib, "SSL_CTX_new", &symbols[1].sym)
+ || !shlib_sym(ssllib, "SSL_CTX_free", &symbols[2].sym)) {
+ fprintf(stderr, "Failed to load libssl symbols\n");
+ goto end;
+ }
+ myTLS_method = (TLS_method_t)symbols[0].func;
+ mySSL_CTX_new = (SSL_CTX_new_t)symbols[1].func;
+ mySSL_CTX_free = (SSL_CTX_free_t)symbols[2].func;
+ ctx = mySSL_CTX_new(myTLS_method());
+ if (ctx == NULL) {
+ fprintf(stderr, "Failed to create SSL_CTX\n");
+ goto end;
+ }
+ mySSL_CTX_free(ctx);
+ }
+
+ if (!shlib_sym(cryptolib, "ERR_get_error", &symbols[0].sym)
+ || !shlib_sym(cryptolib, "OpenSSL_version_num", &symbols[1].sym)
+ || !shlib_sym(cryptolib, "OPENSSL_atexit", &symbols[2].sym)) {
+ fprintf(stderr, "Failed to load libcrypto symbols\n");
+ goto end;
+ }
+ myERR_get_error = (ERR_get_error_t)symbols[0].func;
+ if (myERR_get_error() != 0) {
+ fprintf(stderr, "Unexpected ERR_get_error() response\n");
+ goto end;
+ }
+
+ myOpenSSL_version_num = (OpenSSL_version_num_t)symbols[1].func;
+ if (myOpenSSL_version_num() != OPENSSL_VERSION_NUMBER) {
+ fprintf(stderr, "Invalid library version number\n");
+ goto end;
+ }
+
+ myOPENSSL_atexit = (OPENSSL_atexit_t)symbols[2].func;
+ if (!myOPENSSL_atexit(atexit_handler)) {
+ fprintf(stderr, "Failed to register atexit handler\n");
+ goto end;
+ }
+
+ if (test_type == DSO_REFTEST) {
+# ifdef DSO_DLFCN
+ DSO_dsobyaddr_t myDSO_dsobyaddr;
+ DSO_free_t myDSO_free;
+
+ /*
+ * This is resembling the code used in ossl_init_base() and
+ * OPENSSL_atexit() to block unloading the library after dlclose().
+ * We are not testing this on Windows, because it is done there in a
+ * completely different way. Especially as a call to DSO_dsobyaddr()
+ * will always return an error, because DSO_pathbyaddr() is not
+ * implemented there.
+ */
+ if (!shlib_sym(cryptolib, "DSO_dsobyaddr", &symbols[0].sym)
+ || !shlib_sym(cryptolib, "DSO_free", &symbols[1].sym)) {
+ fprintf(stderr, "Unable to load DSO symbols\n");
+ goto end;
+ }
+
+ myDSO_dsobyaddr = (DSO_dsobyaddr_t)symbols[0].func;
+ myDSO_free = (DSO_free_t)symbols[1].func;
+
+ {
+ DSO *hndl;
+ /* use known symbol from crypto module */
+ hndl = myDSO_dsobyaddr((void (*)(void))myERR_get_error, 0);
+ if (hndl == NULL) {
+ fprintf(stderr, "DSO_dsobyaddr() failed\n");
+ goto end;
+ }
+ myDSO_free(hndl);
+ }
+# endif /* DSO_DLFCN */
+ }
+
+ if (!shlib_close(cryptolib)) {
+ fprintf(stderr, "Failed to close libcrypto\n");
+ goto end;
+ }
+
+ if (test_type == CRYPTO_FIRST || test_type == SSL_FIRST) {
+ if (!shlib_close(ssllib)) {
+ fprintf(stderr, "Failed to close libssl\n");
+ goto end;
+ }
+ }
+
+# if defined(OPENSSL_NO_PINSHARED) \
+ && defined(__GLIBC__) \
+ && defined(__GLIBC_PREREQ) \
+ && defined(OPENSSL_SYS_LINUX)
+# if __GLIBC_PREREQ(2, 3)
+ /*
+ * If we didn't pin the so then we are hopefully on a platform that supports
+ * running atexit() on so unload. If not we might crash. We know this is
+ * true on linux since glibc 2.2.3
+ */
+ if (test_type != NO_ATEXIT && atexit_handler_done != 1) {
+ fprintf(stderr, "atexit() handler did not run\n");
+ goto end;
+ }
+# endif
+# endif
+
+ result = 1;
+end:
+ return result;
+}
+#endif
+
+
+/*
+ * shlibloadtest should not use the normal test framework because we don't want
+ * it to link against libcrypto (which the framework uses). The point of the
+ * test is to check dynamic loading and unloading of libcrypto/libssl.
+ */
+int main(int argc, char *argv[])
+{
+ const char *p;
+
+ if (argc != 5) {
+ fprintf(stderr, "Incorrect number of arguments\n");
+ return 1;
+ }
+
+ p = argv[1];
+
+ if (strcmp(p, "-crypto_first") == 0) {
+ test_type = CRYPTO_FIRST;
+ } else if (strcmp(p, "-ssl_first") == 0) {
+ test_type = SSL_FIRST;
+ } else if (strcmp(p, "-just_crypto") == 0) {
+ test_type = JUST_CRYPTO;
+ } else if (strcmp(p, "-dso_ref") == 0) {
+ test_type = DSO_REFTEST;
+ } else if (strcmp(p, "-no_atexit") == 0) {
+ test_type = NO_ATEXIT;
+ } else {
+ fprintf(stderr, "Unrecognised argument\n");
+ return 1;
+ }
+ path_crypto = argv[2];
+ path_ssl = argv[3];
+ path_atexit = argv[4];
+ if (path_crypto == NULL || path_ssl == NULL) {
+ fprintf(stderr, "Invalid libcrypto/libssl path\n");
+ return 1;
+ }
+
+#if defined(DSO_DLFCN) || defined(DSO_WIN32)
+ if (!test_lib())
+ return 1;
+#endif
+ return 0;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/siphash_internal_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/siphash_internal_test.c
new file mode 100644
index 000000000..be86ee119
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/siphash_internal_test.c
@@ -0,0 +1,290 @@
+/*
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/* Internal tests for the siphash module */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/bio.h>
+#include "testutil.h"
+#include "crypto/siphash.h"
+#include "../crypto/siphash/siphash_local.h"
+#include "internal/nelem.h"
+
+typedef struct {
+ size_t size;
+ unsigned char data[64];
+} SIZED_DATA;
+
+typedef struct {
+ int idx;
+ SIZED_DATA expected;
+} TESTDATA;
+
+/**********************************************************************
+ *
+ * Test of siphash internal functions
+ *
+ ***/
+
+/* From C reference: https://131002.net/siphash/ */
+
+static TESTDATA tests[] = {
+ { 0, { 8, { 0x31, 0x0e, 0x0e, 0xdd, 0x47, 0xdb, 0x6f, 0x72, } } },
+ { 1, { 8, { 0xfd, 0x67, 0xdc, 0x93, 0xc5, 0x39, 0xf8, 0x74, } } },
+ { 2, { 8, { 0x5a, 0x4f, 0xa9, 0xd9, 0x09, 0x80, 0x6c, 0x0d, } } },
+ { 3, { 8, { 0x2d, 0x7e, 0xfb, 0xd7, 0x96, 0x66, 0x67, 0x85, } } },
+ { 4, { 8, { 0xb7, 0x87, 0x71, 0x27, 0xe0, 0x94, 0x27, 0xcf, } } },
+ { 5, { 8, { 0x8d, 0xa6, 0x99, 0xcd, 0x64, 0x55, 0x76, 0x18, } } },
+ { 6, { 8, { 0xce, 0xe3, 0xfe, 0x58, 0x6e, 0x46, 0xc9, 0xcb, } } },
+ { 7, { 8, { 0x37, 0xd1, 0x01, 0x8b, 0xf5, 0x00, 0x02, 0xab, } } },
+ { 8, { 8, { 0x62, 0x24, 0x93, 0x9a, 0x79, 0xf5, 0xf5, 0x93, } } },
+ { 9, { 8, { 0xb0, 0xe4, 0xa9, 0x0b, 0xdf, 0x82, 0x00, 0x9e, } } },
+ { 10, { 8, { 0xf3, 0xb9, 0xdd, 0x94, 0xc5, 0xbb, 0x5d, 0x7a, } } },
+ { 11, { 8, { 0xa7, 0xad, 0x6b, 0x22, 0x46, 0x2f, 0xb3, 0xf4, } } },
+ { 12, { 8, { 0xfb, 0xe5, 0x0e, 0x86, 0xbc, 0x8f, 0x1e, 0x75, } } },
+ { 13, { 8, { 0x90, 0x3d, 0x84, 0xc0, 0x27, 0x56, 0xea, 0x14, } } },
+ { 14, { 8, { 0xee, 0xf2, 0x7a, 0x8e, 0x90, 0xca, 0x23, 0xf7, } } },
+ { 15, { 8, { 0xe5, 0x45, 0xbe, 0x49, 0x61, 0xca, 0x29, 0xa1, } } },
+ { 16, { 8, { 0xdb, 0x9b, 0xc2, 0x57, 0x7f, 0xcc, 0x2a, 0x3f, } } },
+ { 17, { 8, { 0x94, 0x47, 0xbe, 0x2c, 0xf5, 0xe9, 0x9a, 0x69, } } },
+ { 18, { 8, { 0x9c, 0xd3, 0x8d, 0x96, 0xf0, 0xb3, 0xc1, 0x4b, } } },
+ { 19, { 8, { 0xbd, 0x61, 0x79, 0xa7, 0x1d, 0xc9, 0x6d, 0xbb, } } },
+ { 20, { 8, { 0x98, 0xee, 0xa2, 0x1a, 0xf2, 0x5c, 0xd6, 0xbe, } } },
+ { 21, { 8, { 0xc7, 0x67, 0x3b, 0x2e, 0xb0, 0xcb, 0xf2, 0xd0, } } },
+ { 22, { 8, { 0x88, 0x3e, 0xa3, 0xe3, 0x95, 0x67, 0x53, 0x93, } } },
+ { 23, { 8, { 0xc8, 0xce, 0x5c, 0xcd, 0x8c, 0x03, 0x0c, 0xa8, } } },
+ { 24, { 8, { 0x94, 0xaf, 0x49, 0xf6, 0xc6, 0x50, 0xad, 0xb8, } } },
+ { 25, { 8, { 0xea, 0xb8, 0x85, 0x8a, 0xde, 0x92, 0xe1, 0xbc, } } },
+ { 26, { 8, { 0xf3, 0x15, 0xbb, 0x5b, 0xb8, 0x35, 0xd8, 0x17, } } },
+ { 27, { 8, { 0xad, 0xcf, 0x6b, 0x07, 0x63, 0x61, 0x2e, 0x2f, } } },
+ { 28, { 8, { 0xa5, 0xc9, 0x1d, 0xa7, 0xac, 0xaa, 0x4d, 0xde, } } },
+ { 29, { 8, { 0x71, 0x65, 0x95, 0x87, 0x66, 0x50, 0xa2, 0xa6, } } },
+ { 30, { 8, { 0x28, 0xef, 0x49, 0x5c, 0x53, 0xa3, 0x87, 0xad, } } },
+ { 31, { 8, { 0x42, 0xc3, 0x41, 0xd8, 0xfa, 0x92, 0xd8, 0x32, } } },
+ { 32, { 8, { 0xce, 0x7c, 0xf2, 0x72, 0x2f, 0x51, 0x27, 0x71, } } },
+ { 33, { 8, { 0xe3, 0x78, 0x59, 0xf9, 0x46, 0x23, 0xf3, 0xa7, } } },
+ { 34, { 8, { 0x38, 0x12, 0x05, 0xbb, 0x1a, 0xb0, 0xe0, 0x12, } } },
+ { 35, { 8, { 0xae, 0x97, 0xa1, 0x0f, 0xd4, 0x34, 0xe0, 0x15, } } },
+ { 36, { 8, { 0xb4, 0xa3, 0x15, 0x08, 0xbe, 0xff, 0x4d, 0x31, } } },
+ { 37, { 8, { 0x81, 0x39, 0x62, 0x29, 0xf0, 0x90, 0x79, 0x02, } } },
+ { 38, { 8, { 0x4d, 0x0c, 0xf4, 0x9e, 0xe5, 0xd4, 0xdc, 0xca, } } },
+ { 39, { 8, { 0x5c, 0x73, 0x33, 0x6a, 0x76, 0xd8, 0xbf, 0x9a, } } },
+ { 40, { 8, { 0xd0, 0xa7, 0x04, 0x53, 0x6b, 0xa9, 0x3e, 0x0e, } } },
+ { 41, { 8, { 0x92, 0x59, 0x58, 0xfc, 0xd6, 0x42, 0x0c, 0xad, } } },
+ { 42, { 8, { 0xa9, 0x15, 0xc2, 0x9b, 0xc8, 0x06, 0x73, 0x18, } } },
+ { 43, { 8, { 0x95, 0x2b, 0x79, 0xf3, 0xbc, 0x0a, 0xa6, 0xd4, } } },
+ { 44, { 8, { 0xf2, 0x1d, 0xf2, 0xe4, 0x1d, 0x45, 0x35, 0xf9, } } },
+ { 45, { 8, { 0x87, 0x57, 0x75, 0x19, 0x04, 0x8f, 0x53, 0xa9, } } },
+ { 46, { 8, { 0x10, 0xa5, 0x6c, 0xf5, 0xdf, 0xcd, 0x9a, 0xdb, } } },
+ { 47, { 8, { 0xeb, 0x75, 0x09, 0x5c, 0xcd, 0x98, 0x6c, 0xd0, } } },
+ { 48, { 8, { 0x51, 0xa9, 0xcb, 0x9e, 0xcb, 0xa3, 0x12, 0xe6, } } },
+ { 49, { 8, { 0x96, 0xaf, 0xad, 0xfc, 0x2c, 0xe6, 0x66, 0xc7, } } },
+ { 50, { 8, { 0x72, 0xfe, 0x52, 0x97, 0x5a, 0x43, 0x64, 0xee, } } },
+ { 51, { 8, { 0x5a, 0x16, 0x45, 0xb2, 0x76, 0xd5, 0x92, 0xa1, } } },
+ { 52, { 8, { 0xb2, 0x74, 0xcb, 0x8e, 0xbf, 0x87, 0x87, 0x0a, } } },
+ { 53, { 8, { 0x6f, 0x9b, 0xb4, 0x20, 0x3d, 0xe7, 0xb3, 0x81, } } },
+ { 54, { 8, { 0xea, 0xec, 0xb2, 0xa3, 0x0b, 0x22, 0xa8, 0x7f, } } },
+ { 55, { 8, { 0x99, 0x24, 0xa4, 0x3c, 0xc1, 0x31, 0x57, 0x24, } } },
+ { 56, { 8, { 0xbd, 0x83, 0x8d, 0x3a, 0xaf, 0xbf, 0x8d, 0xb7, } } },
+ { 57, { 8, { 0x0b, 0x1a, 0x2a, 0x32, 0x65, 0xd5, 0x1a, 0xea, } } },
+ { 58, { 8, { 0x13, 0x50, 0x79, 0xa3, 0x23, 0x1c, 0xe6, 0x60, } } },
+ { 59, { 8, { 0x93, 0x2b, 0x28, 0x46, 0xe4, 0xd7, 0x06, 0x66, } } },
+ { 60, { 8, { 0xe1, 0x91, 0x5f, 0x5c, 0xb1, 0xec, 0xa4, 0x6c, } } },
+ { 61, { 8, { 0xf3, 0x25, 0x96, 0x5c, 0xa1, 0x6d, 0x62, 0x9f, } } },
+ { 62, { 8, { 0x57, 0x5f, 0xf2, 0x8e, 0x60, 0x38, 0x1b, 0xe5, } } },
+ { 63, { 8, { 0x72, 0x45, 0x06, 0xeb, 0x4c, 0x32, 0x8a, 0x95, } } },
+ { 0, { 16, { 0xa3, 0x81, 0x7f, 0x04, 0xba, 0x25, 0xa8, 0xe6, 0x6d, 0xf6, 0x72, 0x14, 0xc7, 0x55, 0x02, 0x93, } } },
+ { 1, { 16, { 0xda, 0x87, 0xc1, 0xd8, 0x6b, 0x99, 0xaf, 0x44, 0x34, 0x76, 0x59, 0x11, 0x9b, 0x22, 0xfc, 0x45, } } },
+ { 2, { 16, { 0x81, 0x77, 0x22, 0x8d, 0xa4, 0xa4, 0x5d, 0xc7, 0xfc, 0xa3, 0x8b, 0xde, 0xf6, 0x0a, 0xff, 0xe4, } } },
+ { 3, { 16, { 0x9c, 0x70, 0xb6, 0x0c, 0x52, 0x67, 0xa9, 0x4e, 0x5f, 0x33, 0xb6, 0xb0, 0x29, 0x85, 0xed, 0x51, } } },
+ { 4, { 16, { 0xf8, 0x81, 0x64, 0xc1, 0x2d, 0x9c, 0x8f, 0xaf, 0x7d, 0x0f, 0x6e, 0x7c, 0x7b, 0xcd, 0x55, 0x79, } } },
+ { 5, { 16, { 0x13, 0x68, 0x87, 0x59, 0x80, 0x77, 0x6f, 0x88, 0x54, 0x52, 0x7a, 0x07, 0x69, 0x0e, 0x96, 0x27, } } },
+ { 6, { 16, { 0x14, 0xee, 0xca, 0x33, 0x8b, 0x20, 0x86, 0x13, 0x48, 0x5e, 0xa0, 0x30, 0x8f, 0xd7, 0xa1, 0x5e, } } },
+ { 7, { 16, { 0xa1, 0xf1, 0xeb, 0xbe, 0xd8, 0xdb, 0xc1, 0x53, 0xc0, 0xb8, 0x4a, 0xa6, 0x1f, 0xf0, 0x82, 0x39, } } },
+ { 8, { 16, { 0x3b, 0x62, 0xa9, 0xba, 0x62, 0x58, 0xf5, 0x61, 0x0f, 0x83, 0xe2, 0x64, 0xf3, 0x14, 0x97, 0xb4, } } },
+ { 9, { 16, { 0x26, 0x44, 0x99, 0x06, 0x0a, 0xd9, 0xba, 0xab, 0xc4, 0x7f, 0x8b, 0x02, 0xbb, 0x6d, 0x71, 0xed, } } },
+ { 10, { 16, { 0x00, 0x11, 0x0d, 0xc3, 0x78, 0x14, 0x69, 0x56, 0xc9, 0x54, 0x47, 0xd3, 0xf3, 0xd0, 0xfb, 0xba, } } },
+ { 11, { 16, { 0x01, 0x51, 0xc5, 0x68, 0x38, 0x6b, 0x66, 0x77, 0xa2, 0xb4, 0xdc, 0x6f, 0x81, 0xe5, 0xdc, 0x18, } } },
+ { 12, { 16, { 0xd6, 0x26, 0xb2, 0x66, 0x90, 0x5e, 0xf3, 0x58, 0x82, 0x63, 0x4d, 0xf6, 0x85, 0x32, 0xc1, 0x25, } } },
+ { 13, { 16, { 0x98, 0x69, 0xe2, 0x47, 0xe9, 0xc0, 0x8b, 0x10, 0xd0, 0x29, 0x93, 0x4f, 0xc4, 0xb9, 0x52, 0xf7, } } },
+ { 14, { 16, { 0x31, 0xfc, 0xef, 0xac, 0x66, 0xd7, 0xde, 0x9c, 0x7e, 0xc7, 0x48, 0x5f, 0xe4, 0x49, 0x49, 0x02, } } },
+ { 15, { 16, { 0x54, 0x93, 0xe9, 0x99, 0x33, 0xb0, 0xa8, 0x11, 0x7e, 0x08, 0xec, 0x0f, 0x97, 0xcf, 0xc3, 0xd9, } } },
+ { 16, { 16, { 0x6e, 0xe2, 0xa4, 0xca, 0x67, 0xb0, 0x54, 0xbb, 0xfd, 0x33, 0x15, 0xbf, 0x85, 0x23, 0x05, 0x77, } } },
+ { 17, { 16, { 0x47, 0x3d, 0x06, 0xe8, 0x73, 0x8d, 0xb8, 0x98, 0x54, 0xc0, 0x66, 0xc4, 0x7a, 0xe4, 0x77, 0x40, } } },
+ { 18, { 16, { 0xa4, 0x26, 0xe5, 0xe4, 0x23, 0xbf, 0x48, 0x85, 0x29, 0x4d, 0xa4, 0x81, 0xfe, 0xae, 0xf7, 0x23, } } },
+ { 19, { 16, { 0x78, 0x01, 0x77, 0x31, 0xcf, 0x65, 0xfa, 0xb0, 0x74, 0xd5, 0x20, 0x89, 0x52, 0x51, 0x2e, 0xb1, } } },
+ { 20, { 16, { 0x9e, 0x25, 0xfc, 0x83, 0x3f, 0x22, 0x90, 0x73, 0x3e, 0x93, 0x44, 0xa5, 0xe8, 0x38, 0x39, 0xeb, } } },
+ { 21, { 16, { 0x56, 0x8e, 0x49, 0x5a, 0xbe, 0x52, 0x5a, 0x21, 0x8a, 0x22, 0x14, 0xcd, 0x3e, 0x07, 0x1d, 0x12, } } },
+ { 22, { 16, { 0x4a, 0x29, 0xb5, 0x45, 0x52, 0xd1, 0x6b, 0x9a, 0x46, 0x9c, 0x10, 0x52, 0x8e, 0xff, 0x0a, 0xae, } } },
+ { 23, { 16, { 0xc9, 0xd1, 0x84, 0xdd, 0xd5, 0xa9, 0xf5, 0xe0, 0xcf, 0x8c, 0xe2, 0x9a, 0x9a, 0xbf, 0x69, 0x1c, } } },
+ { 24, { 16, { 0x2d, 0xb4, 0x79, 0xae, 0x78, 0xbd, 0x50, 0xd8, 0x88, 0x2a, 0x8a, 0x17, 0x8a, 0x61, 0x32, 0xad, } } },
+ { 25, { 16, { 0x8e, 0xce, 0x5f, 0x04, 0x2d, 0x5e, 0x44, 0x7b, 0x50, 0x51, 0xb9, 0xea, 0xcb, 0x8d, 0x8f, 0x6f, } } },
+ { 26, { 16, { 0x9c, 0x0b, 0x53, 0xb4, 0xb3, 0xc3, 0x07, 0xe8, 0x7e, 0xae, 0xe0, 0x86, 0x78, 0x14, 0x1f, 0x66, } } },
+ { 27, { 16, { 0xab, 0xf2, 0x48, 0xaf, 0x69, 0xa6, 0xea, 0xe4, 0xbf, 0xd3, 0xeb, 0x2f, 0x12, 0x9e, 0xeb, 0x94, } } },
+ { 28, { 16, { 0x06, 0x64, 0xda, 0x16, 0x68, 0x57, 0x4b, 0x88, 0xb9, 0x35, 0xf3, 0x02, 0x73, 0x58, 0xae, 0xf4, } } },
+ { 29, { 16, { 0xaa, 0x4b, 0x9d, 0xc4, 0xbf, 0x33, 0x7d, 0xe9, 0x0c, 0xd4, 0xfd, 0x3c, 0x46, 0x7c, 0x6a, 0xb7, } } },
+ { 30, { 16, { 0xea, 0x5c, 0x7f, 0x47, 0x1f, 0xaf, 0x6b, 0xde, 0x2b, 0x1a, 0xd7, 0xd4, 0x68, 0x6d, 0x22, 0x87, } } },
+ { 31, { 16, { 0x29, 0x39, 0xb0, 0x18, 0x32, 0x23, 0xfa, 0xfc, 0x17, 0x23, 0xde, 0x4f, 0x52, 0xc4, 0x3d, 0x35, } } },
+ { 32, { 16, { 0x7c, 0x39, 0x56, 0xca, 0x5e, 0xea, 0xfc, 0x3e, 0x36, 0x3e, 0x9d, 0x55, 0x65, 0x46, 0xeb, 0x68, } } },
+ { 33, { 16, { 0x77, 0xc6, 0x07, 0x71, 0x46, 0xf0, 0x1c, 0x32, 0xb6, 0xb6, 0x9d, 0x5f, 0x4e, 0xa9, 0xff, 0xcf, } } },
+ { 34, { 16, { 0x37, 0xa6, 0x98, 0x6c, 0xb8, 0x84, 0x7e, 0xdf, 0x09, 0x25, 0xf0, 0xf1, 0x30, 0x9b, 0x54, 0xde, } } },
+ { 35, { 16, { 0xa7, 0x05, 0xf0, 0xe6, 0x9d, 0xa9, 0xa8, 0xf9, 0x07, 0x24, 0x1a, 0x2e, 0x92, 0x3c, 0x8c, 0xc8, } } },
+ { 36, { 16, { 0x3d, 0xc4, 0x7d, 0x1f, 0x29, 0xc4, 0x48, 0x46, 0x1e, 0x9e, 0x76, 0xed, 0x90, 0x4f, 0x67, 0x11, } } },
+ { 37, { 16, { 0x0d, 0x62, 0xbf, 0x01, 0xe6, 0xfc, 0x0e, 0x1a, 0x0d, 0x3c, 0x47, 0x51, 0xc5, 0xd3, 0x69, 0x2b, } } },
+ { 38, { 16, { 0x8c, 0x03, 0x46, 0x8b, 0xca, 0x7c, 0x66, 0x9e, 0xe4, 0xfd, 0x5e, 0x08, 0x4b, 0xbe, 0xe7, 0xb5, } } },
+ { 39, { 16, { 0x52, 0x8a, 0x5b, 0xb9, 0x3b, 0xaf, 0x2c, 0x9c, 0x44, 0x73, 0xcc, 0xe5, 0xd0, 0xd2, 0x2b, 0xd9, } } },
+ { 40, { 16, { 0xdf, 0x6a, 0x30, 0x1e, 0x95, 0xc9, 0x5d, 0xad, 0x97, 0xae, 0x0c, 0xc8, 0xc6, 0x91, 0x3b, 0xd8, } } },
+ { 41, { 16, { 0x80, 0x11, 0x89, 0x90, 0x2c, 0x85, 0x7f, 0x39, 0xe7, 0x35, 0x91, 0x28, 0x5e, 0x70, 0xb6, 0xdb, } } },
+ { 42, { 16, { 0xe6, 0x17, 0x34, 0x6a, 0xc9, 0xc2, 0x31, 0xbb, 0x36, 0x50, 0xae, 0x34, 0xcc, 0xca, 0x0c, 0x5b, } } },
+ { 43, { 16, { 0x27, 0xd9, 0x34, 0x37, 0xef, 0xb7, 0x21, 0xaa, 0x40, 0x18, 0x21, 0xdc, 0xec, 0x5a, 0xdf, 0x89, } } },
+ { 44, { 16, { 0x89, 0x23, 0x7d, 0x9d, 0xed, 0x9c, 0x5e, 0x78, 0xd8, 0xb1, 0xc9, 0xb1, 0x66, 0xcc, 0x73, 0x42, } } },
+ { 45, { 16, { 0x4a, 0x6d, 0x80, 0x91, 0xbf, 0x5e, 0x7d, 0x65, 0x11, 0x89, 0xfa, 0x94, 0xa2, 0x50, 0xb1, 0x4c, } } },
+ { 46, { 16, { 0x0e, 0x33, 0xf9, 0x60, 0x55, 0xe7, 0xae, 0x89, 0x3f, 0xfc, 0x0e, 0x3d, 0xcf, 0x49, 0x29, 0x02, } } },
+ { 47, { 16, { 0xe6, 0x1c, 0x43, 0x2b, 0x72, 0x0b, 0x19, 0xd1, 0x8e, 0xc8, 0xd8, 0x4b, 0xdc, 0x63, 0x15, 0x1b, } } },
+ { 48, { 16, { 0xf7, 0xe5, 0xae, 0xf5, 0x49, 0xf7, 0x82, 0xcf, 0x37, 0x90, 0x55, 0xa6, 0x08, 0x26, 0x9b, 0x16, } } },
+ { 49, { 16, { 0x43, 0x8d, 0x03, 0x0f, 0xd0, 0xb7, 0xa5, 0x4f, 0xa8, 0x37, 0xf2, 0xad, 0x20, 0x1a, 0x64, 0x03, } } },
+ { 50, { 16, { 0xa5, 0x90, 0xd3, 0xee, 0x4f, 0xbf, 0x04, 0xe3, 0x24, 0x7e, 0x0d, 0x27, 0xf2, 0x86, 0x42, 0x3f, } } },
+ { 51, { 16, { 0x5f, 0xe2, 0xc1, 0xa1, 0x72, 0xfe, 0x93, 0xc4, 0xb1, 0x5c, 0xd3, 0x7c, 0xae, 0xf9, 0xf5, 0x38, } } },
+ { 52, { 16, { 0x2c, 0x97, 0x32, 0x5c, 0xbd, 0x06, 0xb3, 0x6e, 0xb2, 0x13, 0x3d, 0xd0, 0x8b, 0x3a, 0x01, 0x7c, } } },
+ { 53, { 16, { 0x92, 0xc8, 0x14, 0x22, 0x7a, 0x6b, 0xca, 0x94, 0x9f, 0xf0, 0x65, 0x9f, 0x00, 0x2a, 0xd3, 0x9e, } } },
+ { 54, { 16, { 0xdc, 0xe8, 0x50, 0x11, 0x0b, 0xd8, 0x32, 0x8c, 0xfb, 0xd5, 0x08, 0x41, 0xd6, 0x91, 0x1d, 0x87, } } },
+ { 55, { 16, { 0x67, 0xf1, 0x49, 0x84, 0xc7, 0xda, 0x79, 0x12, 0x48, 0xe3, 0x2b, 0xb5, 0x92, 0x25, 0x83, 0xda, } } },
+ { 56, { 16, { 0x19, 0x38, 0xf2, 0xcf, 0x72, 0xd5, 0x4e, 0xe9, 0x7e, 0x94, 0x16, 0x6f, 0xa9, 0x1d, 0x2a, 0x36, } } },
+ { 57, { 16, { 0x74, 0x48, 0x1e, 0x96, 0x46, 0xed, 0x49, 0xfe, 0x0f, 0x62, 0x24, 0x30, 0x16, 0x04, 0x69, 0x8e, } } },
+ { 58, { 16, { 0x57, 0xfc, 0xa5, 0xde, 0x98, 0xa9, 0xd6, 0xd8, 0x00, 0x64, 0x38, 0xd0, 0x58, 0x3d, 0x8a, 0x1d, } } },
+ { 59, { 16, { 0x9f, 0xec, 0xde, 0x1c, 0xef, 0xdc, 0x1c, 0xbe, 0xd4, 0x76, 0x36, 0x74, 0xd9, 0x57, 0x53, 0x59, } } },
+ { 60, { 16, { 0xe3, 0x04, 0x0c, 0x00, 0xeb, 0x28, 0xf1, 0x53, 0x66, 0xca, 0x73, 0xcb, 0xd8, 0x72, 0xe7, 0x40, } } },
+ { 61, { 16, { 0x76, 0x97, 0x00, 0x9a, 0x6a, 0x83, 0x1d, 0xfe, 0xcc, 0xa9, 0x1c, 0x59, 0x93, 0x67, 0x0f, 0x7a, } } },
+ { 62, { 16, { 0x58, 0x53, 0x54, 0x23, 0x21, 0xf5, 0x67, 0xa0, 0x05, 0xd5, 0x47, 0xa4, 0xf0, 0x47, 0x59, 0xbd, } } },
+ { 63, { 16, { 0x51, 0x50, 0xd1, 0x77, 0x2f, 0x50, 0x83, 0x4a, 0x50, 0x3e, 0x06, 0x9a, 0x97, 0x3f, 0xbd, 0x7c, } } }
+};
+
+static int test_siphash(int idx)
+{
+ SIPHASH siphash = { 0, };
+ TESTDATA test = tests[idx];
+ unsigned char key[SIPHASH_KEY_SIZE];
+ unsigned char in[64];
+ size_t inlen = test.idx;
+ unsigned char *expected = test.expected.data;
+ size_t expectedlen = test.expected.size;
+ unsigned char out[SIPHASH_MAX_DIGEST_SIZE];
+ size_t i;
+
+ if (expectedlen != SIPHASH_MIN_DIGEST_SIZE &&
+ expectedlen != SIPHASH_MAX_DIGEST_SIZE) {
+ TEST_info("size %zu vs %d and %d", expectedlen,
+ SIPHASH_MIN_DIGEST_SIZE, SIPHASH_MAX_DIGEST_SIZE);
+ return 0;
+ }
+
+ if (!TEST_int_le(inlen, sizeof(in)))
+ return 0;
+
+ /* key and in data are 00 01 02 ... */
+ for (i = 0; i < sizeof(key); i++)
+ key[i] = (unsigned char)i;
+
+ for (i = 0; i < inlen; i++)
+ in[i] = (unsigned char)i;
+
+ if (!TEST_true(SipHash_set_hash_size(&siphash, expectedlen))
+ || !TEST_true(SipHash_Init(&siphash, key, 0, 0)))
+ return 0;
+ SipHash_Update(&siphash, in, inlen);
+ if (!TEST_true(SipHash_Final(&siphash, out, expectedlen))
+ || !TEST_mem_eq(out, expectedlen, expected, expectedlen))
+ return 0;
+
+ if (inlen > 16) {
+ if (!TEST_true(SipHash_set_hash_size(&siphash, expectedlen))
+ || !TEST_true(SipHash_Init(&siphash, key, 0, 0)))
+ return 0;
+ SipHash_Update(&siphash, in, 1);
+ SipHash_Update(&siphash, in+1, inlen-1);
+ if (!TEST_true(SipHash_Final(&siphash, out, expectedlen)))
+ return 0;
+
+ if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) {
+ TEST_info("SipHash test #%d/1+(N-1) failed.", idx);
+ return 0;
+ }
+ }
+
+ if (inlen > 32) {
+ size_t half = inlen / 2;
+
+ if (!TEST_true(SipHash_set_hash_size(&siphash, expectedlen))
+ || !TEST_true(SipHash_Init(&siphash, key, 0, 0)))
+ return 0;
+ SipHash_Update(&siphash, in, half);
+ SipHash_Update(&siphash, in+half, inlen-half);
+ if (!TEST_true(SipHash_Final(&siphash, out, expectedlen)))
+ return 0;
+
+ if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) {
+ TEST_info("SipHash test #%d/2 failed.", idx);
+ return 0;
+ }
+
+ for (half = 16; half < inlen; half += 16) {
+ if (!TEST_true(SipHash_set_hash_size(&siphash, expectedlen))
+ || !TEST_true(SipHash_Init(&siphash, key, 0, 0)))
+ return 0;
+ SipHash_Update(&siphash, in, half);
+ SipHash_Update(&siphash, in+half, inlen-half);
+ if (!TEST_true(SipHash_Final(&siphash, out, expectedlen)))
+ return 0;
+
+ if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) {
+ TEST_info("SipHash test #%d/%zu+%zu failed.",
+ idx, half, inlen-half);
+ return 0;
+ }
+ }
+ }
+
+ return 1;
+}
+
+static int test_siphash_basic(void)
+{
+ SIPHASH siphash = { 0, };
+ unsigned char key[SIPHASH_KEY_SIZE];
+ unsigned char output[SIPHASH_MAX_DIGEST_SIZE];
+
+ /* Use invalid hash size */
+ return TEST_int_eq(SipHash_set_hash_size(&siphash, 4), 0)
+ /* Use hash size = 8 */
+ && TEST_true(SipHash_set_hash_size(&siphash, 8))
+ && TEST_true(SipHash_Init(&siphash, key, 0, 0))
+ && TEST_true(SipHash_Final(&siphash, output, 8))
+ && TEST_int_eq(SipHash_Final(&siphash, output, 16), 0)
+
+ /* Use hash size = 16 */
+ && TEST_true(SipHash_set_hash_size(&siphash, 16))
+ && TEST_true(SipHash_Init(&siphash, key, 0, 0))
+ && TEST_int_eq(SipHash_Final(&siphash, output, 8), 0)
+ && TEST_true(SipHash_Final(&siphash, output, 16))
+
+ /* Use hash size = 0 (default = 16) */
+ && TEST_true(SipHash_set_hash_size(&siphash, 0))
+ && TEST_true(SipHash_Init(&siphash, key, 0, 0))
+ && TEST_int_eq(SipHash_Final(&siphash, output, 8), 0)
+ && TEST_true(SipHash_Final(&siphash, output, 16));
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_siphash_basic);
+ ADD_ALL_TESTS(test_siphash, OSSL_NELEM(tests));
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sm2_internal_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sm2_internal_test.c
new file mode 100644
index 000000000..2bb73947f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sm2_internal_test.c
@@ -0,0 +1,377 @@
+/*
+ * Copyright 2017-2020 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <openssl/bio.h>
+#include <openssl/evp.h>
+#include <openssl/bn.h>
+#include <openssl/crypto.h>
+#include <openssl/err.h>
+#include <openssl/rand.h>
+#include "testutil.h"
+
+#ifndef OPENSSL_NO_SM2
+
+# include "crypto/sm2.h"
+
+static RAND_METHOD fake_rand;
+static const RAND_METHOD *saved_rand;
+
+static uint8_t *fake_rand_bytes = NULL;
+static size_t fake_rand_bytes_offset = 0;
+static size_t fake_rand_size = 0;
+
+static int get_faked_bytes(unsigned char *buf, int num)
+{
+ if (fake_rand_bytes == NULL)
+ return saved_rand->bytes(buf, num);
+
+ if (!TEST_size_t_gt(fake_rand_size, 0))
+ return 0;
+
+ while (num-- > 0) {
+ if (fake_rand_bytes_offset >= fake_rand_size)
+ fake_rand_bytes_offset = 0;
+ *buf++ = fake_rand_bytes[fake_rand_bytes_offset++];
+ }
+
+ return 1;
+}
+
+static int start_fake_rand(const char *hex_bytes)
+{
+ /* save old rand method */
+ if (!TEST_ptr(saved_rand = RAND_get_rand_method()))
+ return 0;
+
+ fake_rand = *saved_rand;
+ /* use own random function */
+ fake_rand.bytes = get_faked_bytes;
+
+ fake_rand_bytes = OPENSSL_hexstr2buf(hex_bytes, NULL);
+ fake_rand_bytes_offset = 0;
+ fake_rand_size = strlen(hex_bytes) / 2;
+
+ /* set new RAND_METHOD */
+ if (!TEST_true(RAND_set_rand_method(&fake_rand)))
+ return 0;
+ return 1;
+}
+
+static int restore_rand(void)
+{
+ OPENSSL_free(fake_rand_bytes);
+ fake_rand_bytes = NULL;
+ fake_rand_bytes_offset = 0;
+ if (!TEST_true(RAND_set_rand_method(saved_rand)))
+ return 0;
+ return 1;
+}
+
+static EC_GROUP *create_EC_group(const char *p_hex, const char *a_hex,
+ const char *b_hex, const char *x_hex,
+ const char *y_hex, const char *order_hex,
+ const char *cof_hex)
+{
+ BIGNUM *p = NULL;
+ BIGNUM *a = NULL;
+ BIGNUM *b = NULL;
+ BIGNUM *g_x = NULL;
+ BIGNUM *g_y = NULL;
+ BIGNUM *order = NULL;
+ BIGNUM *cof = NULL;
+ EC_POINT *generator = NULL;
+ EC_GROUP *group = NULL;
+ int ok = 0;
+
+ if (!TEST_true(BN_hex2bn(&p, p_hex))
+ || !TEST_true(BN_hex2bn(&a, a_hex))
+ || !TEST_true(BN_hex2bn(&b, b_hex)))
+ goto done;
+
+ group = EC_GROUP_new_curve_GFp(p, a, b, NULL);
+ if (!TEST_ptr(group))
+ goto done;
+
+ generator = EC_POINT_new(group);
+ if (!TEST_ptr(generator))
+ goto done;
+
+ if (!TEST_true(BN_hex2bn(&g_x, x_hex))
+ || !TEST_true(BN_hex2bn(&g_y, y_hex))
+ || !TEST_true(EC_POINT_set_affine_coordinates(group, generator, g_x,
+ g_y, NULL)))
+ goto done;
+
+ if (!TEST_true(BN_hex2bn(&order, order_hex))
+ || !TEST_true(BN_hex2bn(&cof, cof_hex))
+ || !TEST_true(EC_GROUP_set_generator(group, generator, order, cof)))
+ goto done;
+
+ ok = 1;
+done:
+ BN_free(p);
+ BN_free(a);
+ BN_free(b);
+ BN_free(g_x);
+ BN_free(g_y);
+ EC_POINT_free(generator);
+ BN_free(order);
+ BN_free(cof);
+ if (!ok) {
+ EC_GROUP_free(group);
+ group = NULL;
+ }
+
+ return group;
+}
+
+static int test_sm2_crypt(const EC_GROUP *group,
+ const EVP_MD *digest,
+ const char *privkey_hex,
+ const char *message,
+ const char *k_hex, const char *ctext_hex)
+{
+ const size_t msg_len = strlen(message);
+ BIGNUM *priv = NULL;
+ EC_KEY *key = NULL;
+ EC_POINT *pt = NULL;
+ unsigned char *expected = OPENSSL_hexstr2buf(ctext_hex, NULL);
+ size_t ctext_len = 0;
+ size_t ptext_len = 0;
+ uint8_t *ctext = NULL;
+ uint8_t *recovered = NULL;
+ size_t recovered_len = msg_len;
+ int rc = 0;
+
+ if (!TEST_ptr(expected)
+ || !TEST_true(BN_hex2bn(&priv, privkey_hex)))
+ goto done;
+
+ key = EC_KEY_new();
+ if (!TEST_ptr(key)
+ || !TEST_true(EC_KEY_set_group(key, group))
+ || !TEST_true(EC_KEY_set_private_key(key, priv)))
+ goto done;
+
+ pt = EC_POINT_new(group);
+ if (!TEST_ptr(pt)
+ || !TEST_true(EC_POINT_mul(group, pt, priv, NULL, NULL, NULL))
+ || !TEST_true(EC_KEY_set_public_key(key, pt))
+ || !TEST_true(sm2_ciphertext_size(key, digest, msg_len, &ctext_len)))
+ goto done;
+
+ ctext = OPENSSL_zalloc(ctext_len);
+ if (!TEST_ptr(ctext))
+ goto done;
+
+ start_fake_rand(k_hex);
+ if (!TEST_true(sm2_encrypt(key, digest, (const uint8_t *)message, msg_len,
+ ctext, &ctext_len))) {
+ restore_rand();
+ goto done;
+ }
+ restore_rand();
+
+ if (!TEST_mem_eq(ctext, ctext_len, expected, ctext_len))
+ goto done;
+
+ if (!TEST_true(sm2_plaintext_size(key, digest, ctext_len, &ptext_len))
+ || !TEST_int_eq(ptext_len, msg_len))
+ goto done;
+
+ recovered = OPENSSL_zalloc(ptext_len);
+ if (!TEST_ptr(recovered)
+ || !TEST_true(sm2_decrypt(key, digest, ctext, ctext_len, recovered, &recovered_len))
+ || !TEST_int_eq(recovered_len, msg_len)
+ || !TEST_mem_eq(recovered, recovered_len, message, msg_len))
+ goto done;
+
+ rc = 1;
+ done:
+ BN_free(priv);
+ EC_POINT_free(pt);
+ OPENSSL_free(ctext);
+ OPENSSL_free(recovered);
+ OPENSSL_free(expected);
+ EC_KEY_free(key);
+ return rc;
+}
+
+static int sm2_crypt_test(void)
+{
+ int testresult = 0;
+ EC_GROUP *test_group =
+ create_EC_group
+ ("8542D69E4C044F18E8B92435BF6FF7DE457283915C45517D722EDB8B08F1DFC3",
+ "787968B4FA32C3FD2417842E73BBFEFF2F3C848B6831D7E0EC65228B3937E498",
+ "63E4C6D3B23B0C849CF84241484BFE48F61D59A5B16BA06E6E12D1DA27C5249A",
+ "421DEBD61B62EAB6746434EBC3CC315E32220B3BADD50BDC4C4E6C147FEDD43D",
+ "0680512BCBB42C07D47349D2153B70C4E5D7FDFCBFA36EA1A85841B9E46E09A2",
+ "8542D69E4C044F18E8B92435BF6FF7DD297720630485628D5AE74EE7C32E79B7",
+ "1");
+
+ if (!TEST_ptr(test_group))
+ goto done;
+
+ if (!test_sm2_crypt(
+ test_group,
+ EVP_sm3(),
+ "1649AB77A00637BD5E2EFE283FBF353534AA7F7CB89463F208DDBC2920BB0DA0",
+ "encryption standard",
+ "004C62EEFD6ECFC2B95B92FD6C3D9575148AFA17425546D49018E5388D49DD7B4F"
+ "0092e8ff62146873c258557548500ab2df2a365e0609ab67640a1f6d57d7b17820"
+ "008349312695a3e1d2f46905f39a766487f2432e95d6be0cb009fe8c69fd8825a7",
+ "307B0220245C26FB68B1DDDDB12C4B6BF9F2B6D5FE60A383B0D18D1C4144ABF1"
+ "7F6252E7022076CB9264C2A7E88E52B19903FDC47378F605E36811F5C07423A2"
+ "4B84400F01B804209C3D7360C30156FAB7C80A0276712DA9D8094A634B766D3A"
+ "285E07480653426D0413650053A89B41C418B0C3AAD00D886C00286467"))
+ goto done;
+
+ /* Same test as above except using SHA-256 instead of SM3 */
+ if (!test_sm2_crypt(
+ test_group,
+ EVP_sha256(),
+ "1649AB77A00637BD5E2EFE283FBF353534AA7F7CB89463F208DDBC2920BB0DA0",
+ "encryption standard",
+ "004C62EEFD6ECFC2B95B92FD6C3D9575148AFA17425546D49018E5388D49DD7B4F"
+ "003da18008784352192d70f22c26c243174a447ba272fec64163dd4742bae8bc98"
+ "00df17605cf304e9dd1dfeb90c015e93b393a6f046792f790a6fa4228af67d9588",
+ "307B0220245C26FB68B1DDDDB12C4B6BF9F2B6D5FE60A383B0D18D1C4144ABF17F"
+ "6252E7022076CB9264C2A7E88E52B19903FDC47378F605E36811F5C07423A24B84"
+ "400F01B80420BE89139D07853100EFA763F60CBE30099EA3DF7F8F364F9D10A5E9"
+ "88E3C5AAFC0413229E6C9AEE2BB92CAD649FE2C035689785DA33"))
+ goto done;
+
+ testresult = 1;
+ done:
+ EC_GROUP_free(test_group);
+
+ return testresult;
+}
+
+static int test_sm2_sign(const EC_GROUP *group,
+ const char *userid,
+ const char *privkey_hex,
+ const char *message,
+ const char *k_hex,
+ const char *r_hex,
+ const char *s_hex)
+{
+ const size_t msg_len = strlen(message);
+ int ok = 0;
+ BIGNUM *priv = NULL;
+ EC_POINT *pt = NULL;
+ EC_KEY *key = NULL;
+ ECDSA_SIG *sig = NULL;
+ const BIGNUM *sig_r = NULL;
+ const BIGNUM *sig_s = NULL;
+ BIGNUM *r = NULL;
+ BIGNUM *s = NULL;
+
+ if (!TEST_true(BN_hex2bn(&priv, privkey_hex)))
+ goto done;
+
+ key = EC_KEY_new();
+ if (!TEST_ptr(key)
+ || !TEST_true(EC_KEY_set_group(key, group))
+ || !TEST_true(EC_KEY_set_private_key(key, priv)))
+ goto done;
+
+ pt = EC_POINT_new(group);
+ if (!TEST_ptr(pt)
+ || !TEST_true(EC_POINT_mul(group, pt, priv, NULL, NULL, NULL))
+ || !TEST_true(EC_KEY_set_public_key(key, pt)))
+ goto done;
+
+ start_fake_rand(k_hex);
+ sig = sm2_do_sign(key, EVP_sm3(), (const uint8_t *)userid, strlen(userid),
+ (const uint8_t *)message, msg_len);
+ if (!TEST_ptr(sig)) {
+ restore_rand();
+ goto done;
+ }
+ restore_rand();
+
+ ECDSA_SIG_get0(sig, &sig_r, &sig_s);
+
+ if (!TEST_true(BN_hex2bn(&r, r_hex))
+ || !TEST_true(BN_hex2bn(&s, s_hex))
+ || !TEST_BN_eq(r, sig_r)
+ || !TEST_BN_eq(s, sig_s))
+ goto done;
+
+ ok = sm2_do_verify(key, EVP_sm3(), sig, (const uint8_t *)userid,
+ strlen(userid), (const uint8_t *)message, msg_len);
+
+ /* We goto done whether this passes or fails */
+ TEST_true(ok);
+
+ done:
+ ECDSA_SIG_free(sig);
+ EC_POINT_free(pt);
+ EC_KEY_free(key);
+ BN_free(priv);
+ BN_free(r);
+ BN_free(s);
+
+ return ok;
+}
+
+static int sm2_sig_test(void)
+{
+ int testresult = 0;
+ /* From draft-shen-sm2-ecdsa-02 */
+ EC_GROUP *test_group =
+ create_EC_group
+ ("8542D69E4C044F18E8B92435BF6FF7DE457283915C45517D722EDB8B08F1DFC3",
+ "787968B4FA32C3FD2417842E73BBFEFF2F3C848B6831D7E0EC65228B3937E498",
+ "63E4C6D3B23B0C849CF84241484BFE48F61D59A5B16BA06E6E12D1DA27C5249A",
+ "421DEBD61B62EAB6746434EBC3CC315E32220B3BADD50BDC4C4E6C147FEDD43D",
+ "0680512BCBB42C07D47349D2153B70C4E5D7FDFCBFA36EA1A85841B9E46E09A2",
+ "8542D69E4C044F18E8B92435BF6FF7DD297720630485628D5AE74EE7C32E79B7",
+ "1");
+
+ if (!TEST_ptr(test_group))
+ goto done;
+
+ if (!TEST_true(test_sm2_sign(
+ test_group,
+ "ALICE123@YAHOO.COM",
+ "128B2FA8BD433C6C068C8D803DFF79792A519A55171B1B650C23661D15897263",
+ "message digest",
+ "006CB28D99385C175C94F94E934817663FC176D925DD72B727260DBAAE1FB2F96F"
+ "007c47811054c6f99613a578eb8453706ccb96384fe7df5c171671e760bfa8be3a",
+ "40F1EC59F793D9F49E09DCEF49130D4194F79FB1EED2CAA55BACDB49C4E755D1",
+ "6FC6DAC32C5D5CF10C77DFB20F7C2EB667A457872FB09EC56327A67EC7DEEBE7")))
+ goto done;
+
+ testresult = 1;
+
+ done:
+ EC_GROUP_free(test_group);
+
+ return testresult;
+}
+
+#endif
+
+int setup_tests(void)
+{
+#ifdef OPENSSL_NO_SM2
+ TEST_note("SM2 is disabled.");
+#else
+ ADD_TEST(sm2_crypt_test);
+ ADD_TEST(sm2_sig_test);
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sm4_internal_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sm4_internal_test.c
new file mode 100644
index 000000000..ce61b5642
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sm4_internal_test.c
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2017 Ribose Inc. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/*
+ * Internal tests for the SM4 module.
+ */
+
+#include <string.h>
+#include <openssl/opensslconf.h>
+#include "testutil.h"
+
+#ifndef OPENSSL_NO_SM4
+# include "crypto/sm4.h"
+
+static int test_sm4_ecb(void)
+{
+ static const uint8_t k[SM4_BLOCK_SIZE] = {
+ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
+ 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10
+ };
+
+ static const uint8_t input[SM4_BLOCK_SIZE] = {
+ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
+ 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10
+ };
+
+ /*
+ * This test vector comes from Example 1 of GB/T 32907-2016,
+ * and described in Internet Draft draft-ribose-cfrg-sm4-02.
+ */
+ static const uint8_t expected[SM4_BLOCK_SIZE] = {
+ 0x68, 0x1e, 0xdf, 0x34, 0xd2, 0x06, 0x96, 0x5e,
+ 0x86, 0xb3, 0xe9, 0x4f, 0x53, 0x6e, 0x42, 0x46
+ };
+
+ /*
+ * This test vector comes from Example 2 from GB/T 32907-2016,
+ * and described in Internet Draft draft-ribose-cfrg-sm4-02.
+ * After 1,000,000 iterations.
+ */
+ static const uint8_t expected_iter[SM4_BLOCK_SIZE] = {
+ 0x59, 0x52, 0x98, 0xc7, 0xc6, 0xfd, 0x27, 0x1f,
+ 0x04, 0x02, 0xf8, 0x04, 0xc3, 0x3d, 0x3f, 0x66
+ };
+
+ int i;
+ SM4_KEY key;
+ uint8_t block[SM4_BLOCK_SIZE];
+
+ SM4_set_key(k, &key);
+ memcpy(block, input, SM4_BLOCK_SIZE);
+
+ SM4_encrypt(block, block, &key);
+ if (!TEST_mem_eq(block, SM4_BLOCK_SIZE, expected, SM4_BLOCK_SIZE))
+ return 0;
+
+ for (i = 0; i != 999999; ++i)
+ SM4_encrypt(block, block, &key);
+
+ if (!TEST_mem_eq(block, SM4_BLOCK_SIZE, expected_iter, SM4_BLOCK_SIZE))
+ return 0;
+
+ for (i = 0; i != 1000000; ++i)
+ SM4_decrypt(block, block, &key);
+
+ if (!TEST_mem_eq(block, SM4_BLOCK_SIZE, input, SM4_BLOCK_SIZE))
+ return 0;
+
+ return 1;
+}
+#endif
+
+int setup_tests(void)
+{
+#ifndef OPENSSL_NO_SM4
+ ADD_TEST(test_sm4_ecb);
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smcont.txt b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smcont.txt
new file mode 100644
index 000000000..9b0974621
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smcont.txt
@@ -0,0 +1 @@
+Somewhat longer test content for OpenSSL CMS utility to handle, and a bit longer... \ No newline at end of file
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/ca.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/ca.cnf
new file mode 100644
index 000000000..835b2c672
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/ca.cnf
@@ -0,0 +1,66 @@
+#
+# OpenSSL example configuration file for automated certificate creation.
+#
+
+# This definition stops the following lines choking if HOME or CN
+# is undefined.
+HOME = .
+RANDFILE = $ENV::HOME/.rnd
+CN = "Not Defined"
+default_ca = ca
+
+####################################################################
+[ req ]
+default_bits = 2048
+default_keyfile = privkey.pem
+# Don't prompt for fields: use those in section directly
+prompt = no
+distinguished_name = req_distinguished_name
+x509_extensions = v3_ca # The extensions to add to the self signed cert
+string_mask = utf8only
+
+# req_extensions = v3_req # The extensions to add to a certificate request
+
+[ req_distinguished_name ]
+countryName = UK
+
+organizationName = OpenSSL Group
+# Take CN from environment so it can come from a script.
+commonName = $ENV::CN
+
+[ usr_cert ]
+
+# These extensions are added when 'ca' signs a request for an end entity
+# certificate
+
+basicConstraints=critical, CA:FALSE
+keyUsage=critical, nonRepudiation, digitalSignature, keyEncipherment
+
+# PKIX recommendations harmless if included in all certificates.
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid
+
+[ dh_cert ]
+
+# These extensions are added when 'ca' signs a request for an end entity
+# DH certificate
+
+basicConstraints=critical, CA:FALSE
+keyUsage=critical, keyAgreement
+
+# PKIX recommendations harmless if included in all certificates.
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid
+
+[ v3_ca ]
+
+
+# Extensions for a typical CA
+
+# PKIX recommendation.
+
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid:always
+basicConstraints = critical,CA:true
+keyUsage = critical, cRLSign, keyCertSign
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/mksmime-certs.sh b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/mksmime-certs.sh
new file mode 100644
index 000000000..c98e164b1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/mksmime-certs.sh
@@ -0,0 +1,85 @@
+#!/bin/sh
+# Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+# Utility to recreate S/MIME certificates
+
+OPENSSL=../../apps/openssl
+OPENSSL_CONF=./ca.cnf
+export OPENSSL_CONF
+
+# Root CA: create certificate directly
+CN="Test S/MIME RSA Root" $OPENSSL req -config ca.cnf -x509 -nodes \
+ -keyout smroot.pem -out smroot.pem -newkey rsa:2048 -days 3650
+
+# EE RSA certificates: create request first
+CN="Test S/MIME EE RSA #1" $OPENSSL req -config ca.cnf -nodes \
+ -keyout smrsa1.pem -out req.pem -newkey rsa:2048
+# Sign request: end entity extensions
+$OPENSSL x509 -req -in req.pem -CA smroot.pem -days 3600 \
+ -extfile ca.cnf -extensions usr_cert -CAcreateserial >>smrsa1.pem
+
+CN="Test S/MIME EE RSA #2" $OPENSSL req -config ca.cnf -nodes \
+ -keyout smrsa2.pem -out req.pem -newkey rsa:2048
+$OPENSSL x509 -req -in req.pem -CA smroot.pem -days 3600 \
+ -extfile ca.cnf -extensions usr_cert -CAcreateserial >>smrsa2.pem
+
+CN="Test S/MIME EE RSA #3" $OPENSSL req -config ca.cnf -nodes \
+ -keyout smrsa3.pem -out req.pem -newkey rsa:2048
+$OPENSSL x509 -req -in req.pem -CA smroot.pem -days 3600 \
+ -extfile ca.cnf -extensions usr_cert -CAcreateserial >>smrsa3.pem
+
+# Create DSA parameters
+
+$OPENSSL dsaparam -out dsap.pem 2048
+
+CN="Test S/MIME EE DSA #1" $OPENSSL req -config ca.cnf -nodes \
+ -keyout smdsa1.pem -out req.pem -newkey dsa:dsap.pem
+$OPENSSL x509 -req -in req.pem -CA smroot.pem -days 3600 \
+ -extfile ca.cnf -extensions usr_cert -CAcreateserial >>smdsa1.pem
+CN="Test S/MIME EE DSA #2" $OPENSSL req -config ca.cnf -nodes \
+ -keyout smdsa2.pem -out req.pem -newkey dsa:dsap.pem
+$OPENSSL x509 -req -in req.pem -CA smroot.pem -days 3600 \
+ -extfile ca.cnf -extensions usr_cert -CAcreateserial >>smdsa2.pem
+CN="Test S/MIME EE DSA #3" $OPENSSL req -config ca.cnf -nodes \
+ -keyout smdsa3.pem -out req.pem -newkey dsa:dsap.pem
+$OPENSSL x509 -req -in req.pem -CA smroot.pem -days 3600 \
+ -extfile ca.cnf -extensions usr_cert -CAcreateserial >>smdsa3.pem
+
+# Create EC parameters
+
+$OPENSSL ecparam -out ecp.pem -name P-256
+$OPENSSL ecparam -out ecp2.pem -name K-283
+
+CN="Test S/MIME EE EC #1" $OPENSSL req -config ca.cnf -nodes \
+ -keyout smec1.pem -out req.pem -newkey ec:ecp.pem
+$OPENSSL x509 -req -in req.pem -CA smroot.pem -days 3600 \
+ -extfile ca.cnf -extensions usr_cert -CAcreateserial >>smec1.pem
+CN="Test S/MIME EE EC #2" $OPENSSL req -config ca.cnf -nodes \
+ -keyout smec2.pem -out req.pem -newkey ec:ecp2.pem
+$OPENSSL x509 -req -in req.pem -CA smroot.pem -days 3600 \
+ -extfile ca.cnf -extensions usr_cert -CAcreateserial >>smec2.pem
+CN="Test S/MIME EE EC #3" $OPENSSL req -config ca.cnf -nodes \
+ -keyout smec3.pem -out req.pem -newkey ec:ecp.pem
+$OPENSSL x509 -req -in req.pem -CA smroot.pem -days 3600 \
+ -extfile ca.cnf -extensions usr_cert -CAcreateserial >>smec3.pem
+# Create X9.42 DH parameters.
+$OPENSSL genpkey -genparam -algorithm DH -pkeyopt dh_paramgen_type:2 \
+ -out dhp.pem
+# Generate X9.42 DH key.
+$OPENSSL genpkey -paramfile dhp.pem -out smdh.pem
+$OPENSSL pkey -pubout -in smdh.pem -out dhpub.pem
+# Generate dummy request.
+CN="Test S/MIME EE DH #1" $OPENSSL req -config ca.cnf -nodes \
+ -keyout smtmp.pem -out req.pem -newkey rsa:2048
+# Sign request but force public key to DH
+$OPENSSL x509 -req -in req.pem -CA smroot.pem -days 3600 \
+ -force_pubkey dhpub.pem \
+ -extfile ca.cnf -extensions usr_cert -CAcreateserial >>smdh.pem
+# Remove temp files.
+rm -f req.pem ecp.pem ecp2.pem dsap.pem dhp.pem dhpub.pem smtmp.pem smroot.srl
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdh.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdh.pem
new file mode 100644
index 000000000..f831b0713
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdh.pem
@@ -0,0 +1,33 @@
+-----BEGIN PRIVATE KEY-----
+MIIBSgIBADCCASsGByqGSM4+AgEwggEeAoGBANQMSgwEcnEZ31kZxa9Ef8qOK/AJ
+9dMlsXMWVYnf/QevGdN/0Aei/j9a8QHG+CvvTm0DOEKhN9QUtABKsYZag865CA7B
+mSdHjQuFqILtzA25sDJ+3+jk9vbss+56ETRll/wasJVLGbmmHNkBMvc1fC1d/sGF
+cEn4zJnQvvFaeMgDAoGAaQD9ZvL8FYsJuNxN6qp5VfnfRqYvyi2PWSqtRKPGGC+V
+thYg49PRjwPOcXzvOsdEOQ7iH9jTiSvnUdwSSEwYTZkSBuQXAgOMJAWOpoXyaRvh
+atziBDoBnWS+/kX5RBhxvS0+em9yfRqAQleuGG+R1mEDihyJc8dWQQPT+O1l4oUC
+FQCJlKsQZ0VBrWPGcUCNa54ZW6TH9QQWAhRR2NMZrQSfWthXDO8Lj5WZ34zQrA==
+-----END PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIID/zCCAuegAwIBAgIJANv1TSKgememMA0GCSqGSIb3DQEBBQUAMEQxCzAJBgNV
+BAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR0wGwYDVQQDDBRUZXN0IFMv
+TUlNRSBSU0EgUm9vdDAeFw0xMzA4MDIxNDQ5MjlaFw0yMzA2MTExNDQ5MjlaMEQx
+CzAJBgNVBAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR0wGwYDVQQDDBRU
+ZXN0IFMvTUlNRSBFRSBESCAjMTCCAbYwggErBgcqhkjOPgIBMIIBHgKBgQDUDEoM
+BHJxGd9ZGcWvRH/KjivwCfXTJbFzFlWJ3/0HrxnTf9AHov4/WvEBxvgr705tAzhC
+oTfUFLQASrGGWoPOuQgOwZknR40LhaiC7cwNubAyft/o5Pb27LPuehE0ZZf8GrCV
+Sxm5phzZATL3NXwtXf7BhXBJ+MyZ0L7xWnjIAwKBgGkA/Wby/BWLCbjcTeqqeVX5
+30amL8otj1kqrUSjxhgvlbYWIOPT0Y8DznF87zrHRDkO4h/Y04kr51HcEkhMGE2Z
+EgbkFwIDjCQFjqaF8mkb4Wrc4gQ6AZ1kvv5F+UQYcb0tPnpvcn0agEJXrhhvkdZh
+A4ociXPHVkED0/jtZeKFAhUAiZSrEGdFQa1jxnFAjWueGVukx/UDgYQAAoGAL1ve
+cgI2awBeJH8ULBhSQpdL224VUDxFPiXzt8Vu5VLnxPv0pfA5En+8VByTuV7u6RSw
+3/78NuTyr/sTyN8YlB1AuXHdTJynA1ICte1xgD4j2ijlq+dv8goOAFt9xkvXx7LD
+umJ/cCignXETcNGfMi8+0s0bpMZyoHRdce8DQ26jYDBeMAwGA1UdEwEB/wQCMAAw
+DgYDVR0PAQH/BAQDAgXgMB0GA1UdDgQWBBQLWk1ffSXH8p3Bqrdjgi/6jzLnwDAf
+BgNVHSMEGDAWgBTffl6IBSQzCN0igQKXzJq3sTMnMDANBgkqhkiG9w0BAQUFAAOC
+AQEAWvJj79MW1/Wq3RIANgAhonsI1jufYqxTH+1M0RU0ZXHulgem77Le2Ls1bizi
+0SbvfpTiiFGkbKonKtO2wvfqwwuptSg3omMI5IjAGxYbyv2KBzIpp1O1LTDk9RbD
+48JMMF01gByi2+NLUQ1MYF+5RqyoRqcyp5x2+Om1GeIM4Q/GRuI4p4dybWy8iC+d
+LeXQfR7HXfh+tAum+WzjfLJwbnWbHmPhTbKB01U4lBp6+r8BGHAtNdPjEHqap4/z
+vVZVXti9ThZ20EhM+VFU3y2wyapeQjhQvw/A2YRES0Ik7BSj3hHfWH/CTbLVQnhu
+Uj6tw18ExOYxqoEGixNLPA5qsQ==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdsa1.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdsa1.pem
new file mode 100644
index 000000000..b424f6704
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdsa1.pem
@@ -0,0 +1,47 @@
+-----BEGIN PRIVATE KEY-----
+MIICZQIBADCCAjkGByqGSM44BAEwggIsAoIBAQCQfLlNdehPnTrGIMhw4rk0uua6
+k1nCG3zcyfXli17BdB2k0HBPaTA3a3ZHfOt1Awy0Uu0wZ3gdPr9z0I64hnJXIGou
+zIanZ7nYRImHtX5JMFbXeyxo1Owd2Zs3oEk9nQUoUsMxvmYC/ghPL5Zx1pPxcHCO
+wzWxoG4yZMjimXOc1/W7zvK/4/g/Cz9fItD3zdcydfgM/hK0/CeYQ21xfhqf4mjK
+v9plnCcWgToGI+7H8VK80MFbkO2QKRz3vP1/TjK6PRm9sEeB5b10+SvGv2j2w+CC
+0fXL4s6n7PtBlm/bww8xL1/Az8kwejUcII1Dc8uNwwISwGbwaGBvl7IHpm21AiEA
+rodZi+nCKZdTL8IgCjX3n0DuhPRkVQPjz/B6VweLW9MCggEAfimkUNwnsGFp7mKM
+zJKhHoQkMB1qJzyIHjDzQ/J1xjfoF6i27afw1/WKboND5eseZhlhA2TO5ZJB6nGx
+DOE9lVQxYVml++cQj6foHh1TVJAgGl4mWuveW/Rz+NEhpK4zVeEsfMrbkBypPByy
+xzF1Z49t568xdIo+e8jLI8FjEdXOIUg4ehB3NY6SL8r4oJ49j/sJWfHcDoWH/LK9
+ZaBF8NpflJe3F40S8RDvM8j2HC+y2Q4QyKk1DXGiH+7yQLGWzr3M73kC3UBnnH0h
+Hxb7ISDCT7dCw/lH1nCbVFBOM0ASI26SSsFSXQrvD2kryRcTZ0KkyyhhoPODWpU+
+TQMsxQQjAiEAkolGvb/76X3vm5Ov09ezqyBYt9cdj/FLH7DyMkxO7X0=
+-----END PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIIFkDCCBHigAwIBAgIJANk5lu6mSyBDMA0GCSqGSIb3DQEBBQUAMEQxCzAJBgNV
+BAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR0wGwYDVQQDDBRUZXN0IFMv
+TUlNRSBSU0EgUm9vdDAeFw0xMzA3MTcxNzI4MzFaFw0yMzA1MjYxNzI4MzFaMEUx
+CzAJBgNVBAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR4wHAYDVQQDDBVU
+ZXN0IFMvTUlNRSBFRSBEU0EgIzEwggNGMIICOQYHKoZIzjgEATCCAiwCggEBAJB8
+uU116E+dOsYgyHDiuTS65rqTWcIbfNzJ9eWLXsF0HaTQcE9pMDdrdkd863UDDLRS
+7TBneB0+v3PQjriGclcgai7MhqdnudhEiYe1fkkwVtd7LGjU7B3ZmzegST2dBShS
+wzG+ZgL+CE8vlnHWk/FwcI7DNbGgbjJkyOKZc5zX9bvO8r/j+D8LP18i0PfN1zJ1
++Az+ErT8J5hDbXF+Gp/iaMq/2mWcJxaBOgYj7sfxUrzQwVuQ7ZApHPe8/X9OMro9
+Gb2wR4HlvXT5K8a/aPbD4ILR9cvizqfs+0GWb9vDDzEvX8DPyTB6NRwgjUNzy43D
+AhLAZvBoYG+XsgembbUCIQCuh1mL6cIpl1MvwiAKNfefQO6E9GRVA+PP8HpXB4tb
+0wKCAQB+KaRQ3CewYWnuYozMkqEehCQwHWonPIgeMPND8nXGN+gXqLbtp/DX9Ypu
+g0Pl6x5mGWEDZM7lkkHqcbEM4T2VVDFhWaX75xCPp+geHVNUkCAaXiZa695b9HP4
+0SGkrjNV4Sx8ytuQHKk8HLLHMXVnj23nrzF0ij57yMsjwWMR1c4hSDh6EHc1jpIv
+yvignj2P+wlZ8dwOhYf8sr1loEXw2l+Ul7cXjRLxEO8zyPYcL7LZDhDIqTUNcaIf
+7vJAsZbOvczveQLdQGecfSEfFvshIMJPt0LD+UfWcJtUUE4zQBIjbpJKwVJdCu8P
+aSvJFxNnQqTLKGGg84NalT5NAyzFA4IBBQACggEAGXSQADbuRIZBjiQ6NikwZl+x
+EDEffIE0RWbvwf1tfWxw4ZvanO/djyz5FePO0AIJDBCLUjr9D32nkmIG1Hu3dWgV
+86knQsM6uFiMSzY9nkJGZOlH3w4NHLE78pk75xR1sg1MEZr4x/t+a/ea9Y4AXklE
+DCcaHtpMGeAx3ZAqSKec+zQOOA73JWP1/gYHGdYyTQpQtwRTsh0Gi5mOOdpoJ0vp
+O83xYbFCZ+ZZKX1RWOjJe2OQBRtw739q1nRga1VMLAT/LFSQsSE3IOp8hiWbjnit
+1SE6q3II2a/aHZH/x4OzszfmtQfmerty3eQSq3bgajfxCsccnRjSbLeNiazRSKNg
+MF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBeAwHQYDVR0OBBYEFNHQYTOO
+xaZ/N68OpxqjHKuatw6sMB8GA1UdIwQYMBaAFMmRUwpjexZbi71E8HaIqSTm5bZs
+MA0GCSqGSIb3DQEBBQUAA4IBAQAAiLociMMXcLkO/uKjAjCIQMrsghrOrxn4ZGBx
+d/mCTeqPxhcrX2UorwxVCKI2+Dmz5dTC2xKprtvkiIadJamJmxYYzeF1pgRriFN3
+MkmMMkTbe/ekSvSeMtHQ2nHDCAJIaA/k9akWfA0+26Ec25/JKMrl3LttllsJMK1z
+Xj7TcQpAIWORKWSNxY/ezM34+9ABHDZB2waubFqS+irlZsn38aZRuUI0K67fuuIt
+17vMUBqQpe2hfNAjpZ8dIpEdAGjQ6izV2uwP1lXbiaK9U4dvUqmwyCIPniX7Hpaf
+0VnX0mEViXMT6vWZTjLBUv0oKmO7xBkWHIaaX6oyF32pK5AO
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdsa2.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdsa2.pem
new file mode 100644
index 000000000..648447fc8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdsa2.pem
@@ -0,0 +1,47 @@
+-----BEGIN PRIVATE KEY-----
+MIICZAIBADCCAjkGByqGSM44BAEwggIsAoIBAQCQfLlNdehPnTrGIMhw4rk0uua6
+k1nCG3zcyfXli17BdB2k0HBPaTA3a3ZHfOt1Awy0Uu0wZ3gdPr9z0I64hnJXIGou
+zIanZ7nYRImHtX5JMFbXeyxo1Owd2Zs3oEk9nQUoUsMxvmYC/ghPL5Zx1pPxcHCO
+wzWxoG4yZMjimXOc1/W7zvK/4/g/Cz9fItD3zdcydfgM/hK0/CeYQ21xfhqf4mjK
+v9plnCcWgToGI+7H8VK80MFbkO2QKRz3vP1/TjK6PRm9sEeB5b10+SvGv2j2w+CC
+0fXL4s6n7PtBlm/bww8xL1/Az8kwejUcII1Dc8uNwwISwGbwaGBvl7IHpm21AiEA
+rodZi+nCKZdTL8IgCjX3n0DuhPRkVQPjz/B6VweLW9MCggEAfimkUNwnsGFp7mKM
+zJKhHoQkMB1qJzyIHjDzQ/J1xjfoF6i27afw1/WKboND5eseZhlhA2TO5ZJB6nGx
+DOE9lVQxYVml++cQj6foHh1TVJAgGl4mWuveW/Rz+NEhpK4zVeEsfMrbkBypPByy
+xzF1Z49t568xdIo+e8jLI8FjEdXOIUg4ehB3NY6SL8r4oJ49j/sJWfHcDoWH/LK9
+ZaBF8NpflJe3F40S8RDvM8j2HC+y2Q4QyKk1DXGiH+7yQLGWzr3M73kC3UBnnH0h
+Hxb7ISDCT7dCw/lH1nCbVFBOM0ASI26SSsFSXQrvD2kryRcTZ0KkyyhhoPODWpU+
+TQMsxQQiAiAdCUJ5n2Q9hIynN8BMpnRcdfH696BKejGx+2Mr2kfnnA==
+-----END PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIIFkDCCBHigAwIBAgIJANk5lu6mSyBEMA0GCSqGSIb3DQEBBQUAMEQxCzAJBgNV
+BAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR0wGwYDVQQDDBRUZXN0IFMv
+TUlNRSBSU0EgUm9vdDAeFw0xMzA3MTcxNzI4MzFaFw0yMzA1MjYxNzI4MzFaMEUx
+CzAJBgNVBAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR4wHAYDVQQDDBVU
+ZXN0IFMvTUlNRSBFRSBEU0EgIzIwggNGMIICOQYHKoZIzjgEATCCAiwCggEBAJB8
+uU116E+dOsYgyHDiuTS65rqTWcIbfNzJ9eWLXsF0HaTQcE9pMDdrdkd863UDDLRS
+7TBneB0+v3PQjriGclcgai7MhqdnudhEiYe1fkkwVtd7LGjU7B3ZmzegST2dBShS
+wzG+ZgL+CE8vlnHWk/FwcI7DNbGgbjJkyOKZc5zX9bvO8r/j+D8LP18i0PfN1zJ1
++Az+ErT8J5hDbXF+Gp/iaMq/2mWcJxaBOgYj7sfxUrzQwVuQ7ZApHPe8/X9OMro9
+Gb2wR4HlvXT5K8a/aPbD4ILR9cvizqfs+0GWb9vDDzEvX8DPyTB6NRwgjUNzy43D
+AhLAZvBoYG+XsgembbUCIQCuh1mL6cIpl1MvwiAKNfefQO6E9GRVA+PP8HpXB4tb
+0wKCAQB+KaRQ3CewYWnuYozMkqEehCQwHWonPIgeMPND8nXGN+gXqLbtp/DX9Ypu
+g0Pl6x5mGWEDZM7lkkHqcbEM4T2VVDFhWaX75xCPp+geHVNUkCAaXiZa695b9HP4
+0SGkrjNV4Sx8ytuQHKk8HLLHMXVnj23nrzF0ij57yMsjwWMR1c4hSDh6EHc1jpIv
+yvignj2P+wlZ8dwOhYf8sr1loEXw2l+Ul7cXjRLxEO8zyPYcL7LZDhDIqTUNcaIf
+7vJAsZbOvczveQLdQGecfSEfFvshIMJPt0LD+UfWcJtUUE4zQBIjbpJKwVJdCu8P
+aSvJFxNnQqTLKGGg84NalT5NAyzFA4IBBQACggEAItQlFu0t7Mw1HHROuuwKLS+E
+h2WNNZP96MLQTygOVlqgaJY+1mJLzvl/51LLH6YezX0t89Z2Dm/3SOJEdNrdbIEt
+tbu5rzymXxFhc8uaIYZFhST38oQwJOjM8wFitAQESe6/9HZjkexMqSqx/r5aEKTa
+LBinqA1BJRI72So1/1dv8P99FavPADdj8V7fAccReKEQKnfnwA7mrnD+OlIqFKFn
+3wCGk8Sw7tSJ9g6jgCI+zFwrKn2w+w+iot/Ogxl9yMAtKmAd689IAZr5GPPvV2y0
+KOogCiUYgSTSawZhr+rjyFavfI5dBWzMq4tKx/zAi6MJ+6hGJjJ8jHoT9JAPmaNg
+MF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBeAwHQYDVR0OBBYEFGaxw04k
+qpufeGZC+TTBq8oMnXyrMB8GA1UdIwQYMBaAFMmRUwpjexZbi71E8HaIqSTm5bZs
+MA0GCSqGSIb3DQEBBQUAA4IBAQCk2Xob1ICsdHYx/YsBzY6E1eEwcI4RZbZ3hEXp
+VA72/Mbz60gjv1OwE5Ay4j+xG7IpTio6y2A9ZNepGpzidYcsL/Lx9Sv1LlN0Ukzb
+uk6Czd2sZJp+PFMTTrgCd5rXKnZs/0D84Vci611vGMA1hnUnbAnBBmgLXe9pDNRV
+6mhmCLLjJ4GOr5Wxt/hhknr7V2e1VMx3Q47GZhc0o/gExfhxXA8+gicM0nEYNakD
+2A1F0qDhQGakjuofANHhjdUDqKJ1sxurAy80fqb0ddzJt2el89iXKN+aXx/zEX96
+GI5ON7z/bkVwIi549lUOpWb2Mved61NBzCLKVP7HSuEIsC/I
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdsa3.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdsa3.pem
new file mode 100644
index 000000000..77acc5e46
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdsa3.pem
@@ -0,0 +1,47 @@
+-----BEGIN PRIVATE KEY-----
+MIICZQIBADCCAjkGByqGSM44BAEwggIsAoIBAQCQfLlNdehPnTrGIMhw4rk0uua6
+k1nCG3zcyfXli17BdB2k0HBPaTA3a3ZHfOt1Awy0Uu0wZ3gdPr9z0I64hnJXIGou
+zIanZ7nYRImHtX5JMFbXeyxo1Owd2Zs3oEk9nQUoUsMxvmYC/ghPL5Zx1pPxcHCO
+wzWxoG4yZMjimXOc1/W7zvK/4/g/Cz9fItD3zdcydfgM/hK0/CeYQ21xfhqf4mjK
+v9plnCcWgToGI+7H8VK80MFbkO2QKRz3vP1/TjK6PRm9sEeB5b10+SvGv2j2w+CC
+0fXL4s6n7PtBlm/bww8xL1/Az8kwejUcII1Dc8uNwwISwGbwaGBvl7IHpm21AiEA
+rodZi+nCKZdTL8IgCjX3n0DuhPRkVQPjz/B6VweLW9MCggEAfimkUNwnsGFp7mKM
+zJKhHoQkMB1qJzyIHjDzQ/J1xjfoF6i27afw1/WKboND5eseZhlhA2TO5ZJB6nGx
+DOE9lVQxYVml++cQj6foHh1TVJAgGl4mWuveW/Rz+NEhpK4zVeEsfMrbkBypPByy
+xzF1Z49t568xdIo+e8jLI8FjEdXOIUg4ehB3NY6SL8r4oJ49j/sJWfHcDoWH/LK9
+ZaBF8NpflJe3F40S8RDvM8j2HC+y2Q4QyKk1DXGiH+7yQLGWzr3M73kC3UBnnH0h
+Hxb7ISDCT7dCw/lH1nCbVFBOM0ASI26SSsFSXQrvD2kryRcTZ0KkyyhhoPODWpU+
+TQMsxQQjAiEArJr6p2zTbhRppQurHGTdmdYHqrDdZH4MCsD9tQCw1xY=
+-----END PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIIFkDCCBHigAwIBAgIJANk5lu6mSyBFMA0GCSqGSIb3DQEBBQUAMEQxCzAJBgNV
+BAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR0wGwYDVQQDDBRUZXN0IFMv
+TUlNRSBSU0EgUm9vdDAeFw0xMzA3MTcxNzI4MzFaFw0yMzA1MjYxNzI4MzFaMEUx
+CzAJBgNVBAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR4wHAYDVQQDDBVU
+ZXN0IFMvTUlNRSBFRSBEU0EgIzMwggNGMIICOQYHKoZIzjgEATCCAiwCggEBAJB8
+uU116E+dOsYgyHDiuTS65rqTWcIbfNzJ9eWLXsF0HaTQcE9pMDdrdkd863UDDLRS
+7TBneB0+v3PQjriGclcgai7MhqdnudhEiYe1fkkwVtd7LGjU7B3ZmzegST2dBShS
+wzG+ZgL+CE8vlnHWk/FwcI7DNbGgbjJkyOKZc5zX9bvO8r/j+D8LP18i0PfN1zJ1
++Az+ErT8J5hDbXF+Gp/iaMq/2mWcJxaBOgYj7sfxUrzQwVuQ7ZApHPe8/X9OMro9
+Gb2wR4HlvXT5K8a/aPbD4ILR9cvizqfs+0GWb9vDDzEvX8DPyTB6NRwgjUNzy43D
+AhLAZvBoYG+XsgembbUCIQCuh1mL6cIpl1MvwiAKNfefQO6E9GRVA+PP8HpXB4tb
+0wKCAQB+KaRQ3CewYWnuYozMkqEehCQwHWonPIgeMPND8nXGN+gXqLbtp/DX9Ypu
+g0Pl6x5mGWEDZM7lkkHqcbEM4T2VVDFhWaX75xCPp+geHVNUkCAaXiZa695b9HP4
+0SGkrjNV4Sx8ytuQHKk8HLLHMXVnj23nrzF0ij57yMsjwWMR1c4hSDh6EHc1jpIv
+yvignj2P+wlZ8dwOhYf8sr1loEXw2l+Ul7cXjRLxEO8zyPYcL7LZDhDIqTUNcaIf
+7vJAsZbOvczveQLdQGecfSEfFvshIMJPt0LD+UfWcJtUUE4zQBIjbpJKwVJdCu8P
+aSvJFxNnQqTLKGGg84NalT5NAyzFA4IBBQACggEAcXvtfiJfIZ0wgGpN72ZeGrJ9
+msUXOxow7w3fDbP8r8nfVkBNbfha8rx0eY6fURFVZzIOd8EHGKypcH1gS6eZNucf
+zgsH1g5r5cRahMZmgGXBEBsWrh2IaDG7VSKt+9ghz27EKgjAQCzyHQL5FCJgR2p7
+cv0V4SRqgiAGYlJ191k2WtLOsVd8kX//jj1l8TUgE7TqpuSEpaSyQ4nzJROpZWZp
+N1RwFmCURReykABU/Nzin/+rZnvZrp8WoXSXEqxeB4mShRSaH57xFnJCpRwKJ4qS
+2uhATzJaKH7vu63k3DjftbSBVh+32YXwtHc+BGjs8S2aDtCW3FtDA7Z6J8BIxaNg
+MF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBeAwHQYDVR0OBBYEFMJxatDE
+FCEFGl4uoiQQ1050Ju9RMB8GA1UdIwQYMBaAFMmRUwpjexZbi71E8HaIqSTm5bZs
+MA0GCSqGSIb3DQEBBQUAA4IBAQBGZD1JnMep39KMOhD0iBTmyjhtcnRemckvRask
+pS/CqPwo+M+lPNdxpLU2w9b0QhPnj0yAS/BS1yBjsLGY4DP156k4Q3QOhwsrTmrK
+YOxg0w7DOpkv5g11YLJpHsjSOwg5uIMoefL8mjQK6XOFOmQXHJrUtGulu+fs6FlM
+khGJcW4xYVPK0x/mHvTT8tQaTTkgTdVHObHF5Dyx/F9NMpB3RFguQPk2kT4lJc4i
+Up8T9mLzaxz6xc4wwh8h70Zw81lkGYhX+LRk3sfd/REq9x4QXQNP9t9qU1CgrBzv
+4orzt9cda4r+rleSg2XjWnXzMydE6DuwPVPZlqnLbSYUy660
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdsap.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdsap.pem
new file mode 100644
index 000000000..249706c8c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smdsap.pem
@@ -0,0 +1,9 @@
+-----BEGIN DSA PARAMETERS-----
+MIIBHwKBgQDFJfsIPOIawMO5biw+AoYUhNVxReBOLQosU3Qv4B8krac0BNr3OjSG
+Lh1wZxHqhlAE0QmasTaKojuk20nNWeFnczSz6vDl0IVJEhS8VYor5kt9gLqtGcoA
+gsf4gRDIutJyQDaNn3IVY89uXUVIoexvQeLQDBCgQPC5O8rJdqBwtwIVAK2Jjt+d
+qk07eQUE59koYUEKyNorAoGBAI4IEpusf8G14kCHmRtnHXM2tG5EWJDmW6Qtwjqv
+Wp1GKUx5WFy1tVWR9nl5rL0Di+kNdENo+SkKj7h3uDulGOI6T0mQYbV2h1IK+FMO
+GnOqvZ8eNTE2n4PGTo5puZ63LBm+QYrQsrNiUY4vakLFQ2rEK/SLwdsDFK4ZSJCB
+Qw5z
+-----END DSA PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smec1.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smec1.pem
new file mode 100644
index 000000000..75a862666
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smec1.pem
@@ -0,0 +1,22 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgXzBRX9Z5Ib4LAVAS
+DMlYvkj0SmLmYvWULe2LfyXRmpWhRANCAAS+SIj2FY2DouPRuNDp9WVpsqef58tV
+3gIwV0EOV/xyYTzZhufZi/aBcXugWR1x758x4nHus2uEuEFi3Mr3K3+x
+-----END PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIICoDCCAYigAwIBAgIJANk5lu6mSyBGMA0GCSqGSIb3DQEBBQUAMEQxCzAJBgNV
+BAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR0wGwYDVQQDDBRUZXN0IFMv
+TUlNRSBSU0EgUm9vdDAeFw0xMzA3MTcxNzI4MzFaFw0yMzA1MjYxNzI4MzFaMEQx
+CzAJBgNVBAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR0wGwYDVQQDDBRU
+ZXN0IFMvTUlNRSBFRSBFQyAjMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABL5I
+iPYVjYOi49G40On1ZWmyp5/ny1XeAjBXQQ5X/HJhPNmG59mL9oFxe6BZHXHvnzHi
+ce6za4S4QWLcyvcrf7GjYDBeMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgXg
+MB0GA1UdDgQWBBR/ybxC2DI+Jydhx1FMgPbMTmLzRzAfBgNVHSMEGDAWgBTJkVMK
+Y3sWW4u9RPB2iKkk5uW2bDANBgkqhkiG9w0BAQUFAAOCAQEAdk9si83JjtgHHHGy
+WcgWDfM0jzlWBsgFNQ9DwAuB7gJd/LG+5Ocajg5XdA5FXAdKkfwI6be3PdcVs3Bt
+7f/fdKfBxfr9/SvFHnK7PVAX2x1wwS4HglX1lfoyq1boSvsiJOnAX3jsqXJ9TJiV
+FlgRVnhnrw6zz3Xs/9ZDMTENUrqDHPNsDkKEi+9SqIsqDXpMCrGHP4ic+S8Rov1y
+S+0XioMxVyXDp6XcL4PQ/NgHbw5/+UcS0me0atZ6pW68C0vi6xeU5vxojyuZxMI1
+DXXwMhOXWaKff7KNhXDUN0g58iWlnyaCz4XQwFsbbFs88TQ1+e/aj3bbwTxUeyN7
+qtcHJA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smec2.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smec2.pem
new file mode 100644
index 000000000..457297a76
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smec2.pem
@@ -0,0 +1,23 @@
+-----BEGIN PRIVATE KEY-----
+MIGPAgEAMBAGByqGSM49AgEGBSuBBAAQBHgwdgIBAQQjhHaq507MOBznelrLG/pl
+brnnJi/iEJUUp+Pm3PEiteXqckmhTANKAAQF2zs6vobmoT+M+P2+9LZ7asvFBNi7
+uCzLYF/8j1Scn/spczoC9vNzVhNw+Lg7dnjNL4EDIyYZLl7E0v69luzbvy+q44/8
+6bQ=
+-----END PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIICpTCCAY2gAwIBAgIJANk5lu6mSyBHMA0GCSqGSIb3DQEBBQUAMEQxCzAJBgNV
+BAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR0wGwYDVQQDDBRUZXN0IFMv
+TUlNRSBSU0EgUm9vdDAeFw0xMzA3MTcxNzI4MzFaFw0yMzA1MjYxNzI4MzFaMEQx
+CzAJBgNVBAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR0wGwYDVQQDDBRU
+ZXN0IFMvTUlNRSBFRSBFQyAjMjBeMBAGByqGSM49AgEGBSuBBAAQA0oABAXbOzq+
+huahP4z4/b70tntqy8UE2Lu4LMtgX/yPVJyf+ylzOgL283NWE3D4uDt2eM0vgQMj
+JhkuXsTS/r2W7Nu/L6rjj/zptKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8E
+BAMCBeAwHQYDVR0OBBYEFGf+QSQlkN20PsNN7x+jmQIJBDcXMB8GA1UdIwQYMBaA
+FMmRUwpjexZbi71E8HaIqSTm5bZsMA0GCSqGSIb3DQEBBQUAA4IBAQBaBBryl2Ez
+ftBrGENXMKQP3bBEw4n9ely6HvYQi9IC7HyK0ktz7B2FcJ4z96q38JN3cLxV0DhK
+xT/72pFmQwZVJngvRaol0k1B+bdmM03llxCw/uNNZejixDjHUI9gEfbigehd7QY0
+uYDu4k4O35/z/XPQ6O5Kzw+J2vdzU8GXlMBbWeZWAmEfLGbk3Ux0ouITnSz0ty5P
+rkHTo0uprlFcZAsrsNY5v5iuomYT7ZXAR3sqGZL1zPOKBnyfXeNFUfnKsZW7Fnlq
+IlYBQIjqR1HGxxgCSy66f1oplhxSch4PUpk5tqrs6LeOqc2+xROy1T5YrB3yjVs0
+4ZdCllHZkhop
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smec3.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smec3.pem
new file mode 100644
index 000000000..90eac867d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smec3.pem
@@ -0,0 +1,22 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQga03Rl+2K38wgwVyJ
+zSy+knGorGWZBGG5p//ke0WUSbqhRANCAARH8uHBHkuOfuyXgJj7V3lNqUEPiQNo
+xG8ntGjVmKRHfywdUoQJ1PgfbkCEsBk334rRFmja1r+MYyqn/A9ARiGB
+-----END PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIICoDCCAYigAwIBAgIJAPaEOllWs/pjMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNV
+BAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR0wGwYDVQQDDBRUZXN0IFMv
+TUlNRSBSU0EgUm9vdDAeFw0xNzA4MTAxNTQyMDhaFw0yNzA2MTkxNTQyMDhaMEQx
+CzAJBgNVBAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR0wGwYDVQQDDBRU
+ZXN0IFMvTUlNRSBFRSBFQyAjMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEfy
+4cEeS45+7JeAmPtXeU2pQQ+JA2jEbye0aNWYpEd/LB1ShAnU+B9uQISwGTffitEW
+aNrWv4xjKqf8D0BGIYGjYDBeMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgXg
+MB0GA1UdDgQWBBQLR+H9CmAY/KDyXWdVUM9FP766WzAfBgNVHSMEGDAWgBT3YQTy
+KJTdSIrnOcPj3pm5oVNtazANBgkqhkiG9w0BAQsFAAOCAQEAmMRuf8Iz5fr9f0GA
+HaNiOM5S7AIfZ6W7zzdeF63EF1j9HqP1DJsUW4y5b9azWmpp62kKuNaM4CGPUVvm
+diLKJVlrDcc+6lW9oROpnBsskhjqFMTjTANPQSAKZeKiG2W3U8Q103VQpuYvE4Nj
+OU9JT+5e4RZS7wxYk/IsvnyF/DkoF1FTMHo9/3Wiw4V4KRhpJIPnqojWNcfipmhM
+UDpbw0Oyj5fE7x6wvaoOUr8GNJE5NudtV/5QDh9REkjyKUdVYsuUrWwKqn3NT8EI
+OLl8wx3RqA8htRg/W+SoESx87rvW1saPGvfypBp4cl18B1IzTlC+FMbHFJvZqQn8
+Ci1l4Q==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smroot.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smroot.pem
new file mode 100644
index 000000000..d1a253f40
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smroot.pem
@@ -0,0 +1,49 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCyyQXED5HyVWwq
+nXyzmY317yMUJrIfsKvREG2C691dJNHgNg+oq5sjt/fzkyS84AvdOiicAsao4cYL
+DulthaLpbC7msEBhvwAil0FNb5g3ERupe1KuTdUV1UuD/i6S2VoaNXUBBn1rD9Wc
+BBc0lnx/4Wt92eQTI6925pt7ZHPQw2Olp7TQDElyi5qPxCem4uT0g3zbZsWqmmsI
+MXbu+K3dEprzqA1ucKXbxUmZNkMwVs2XCmlLxrRUj8C3/zENtH17HWCznhR/IVcV
+kgIuklkeiDsEhbWvUQumVXR7oPh/CPZAbjGqq5mVueHSHrp7brBVZKHZvoUka28Q
+LWitq1W5AgMBAAECggEASkRnOMKfBeOmQy2Yl6K57eeg0sYgSDnDpd0FINWJ5x9c
+b58FcjOXBodtYKlHIY6QXx3BsM0WaSEge4d+QBi7S+u8r+eXVwNYswXSArDQsk9R
+Bl5MQkvisGciL3pvLmFLpIeASyS/BLJXMbAhU58PqK+jT2wr6idwxBuXivJ3ichu
+ISdT1s2aMmnD86ulCD2DruZ4g0mmk5ffV+Cdj+WWkyvEaJW2GRYov2qdaqwSOxV4
+Yve9qStvEIWAf2cISQjbnw2Ww6Z5ebrqlOz9etkmwIly6DTbrIneBnoqJlFFWGlF
+ghuzc5RE2w1GbcKSOt0qXH44MTf/j0r86dlu7UIxgQKBgQDq0pEaiZuXHi9OQAOp
+PsDEIznCU1bcTDJewANHag5DPEnMKLltTNyLaBRulMypI+CrDbou0nDr29VOzfXx
+mNvi/c7RttOBOx7kXKvu0JUFKe2oIWRsg0KsyMX7UFMVaHFgrW+8DhQc7HK7URiw
+nitOnA7YwIHRF9BMmcWcLFEYBQKBgQDC6LPbXV8COKO0YCfGXPnE7EZGD/p0Q92Z
+8CoSefphEScSdO1IpxFXG7fOZ4x2GQb9q7D3IvaeKAqNjUjkuyxdB30lIWDBwSWw
+fFgsa2SZwD5P60G/ar50YJr6LiF333aUMDVmC9swFfZERAEmGUz2NTrPWQdIx/lu
+PyDtUR75JQKBgHaoCCJ8vl5SJl1IA5GV4Bo8IoeLTSzsY9d09zMy6BoZcMD1Ix2T
+5S2cXhayoegl9PT6bsYSGHVWFCdJ86ktMI826TcXRzDaCvYhzc9THroJQcnfdbtP
+aHWezkv7fsAmkoPjn75K7ubeo+r7Q5qbkg6a1PW58N8TRXIvkackzaVxAoGBALAq
+qh3U+AHG9dgbrPeyo6KkuCOtX39ks8/mbfCDRZYkbb9V5f5r2tVz3R93IlK/7jyr
+yWimtmde46Lrl33922w+T5OW5qBZllo9GWkUrDn3s5qClcuQjJIdmxYTSfbSCJiK
+NkmE39lHkG5FVRB9f71tgTlWS6ox7TYDYxx83NTtAoGAUJPAkGt4yGAN4Pdebv53
+bSEpAAULBHntiqDEOu3lVColHuZIucml/gbTpQDruE4ww4wE7dOhY8Q4wEBVYbRI
+vHkSiWpJUvZCuKG8Foh5pm9hU0qb+rbQV7NhLJ02qn1AMGO3F/WKrHPPY8/b9YhQ
+KfvPCYimQwBjVrEnSntLPR0=
+-----END PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIIDbjCCAlagAwIBAgIJAMc+8VKBJ/S9MA0GCSqGSIb3DQEBBQUAMEQxCzAJBgNV
+BAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR0wGwYDVQQDDBRUZXN0IFMv
+TUlNRSBSU0EgUm9vdDAeFw0xMzA3MTcxNzI4MjlaFw0yMzA3MTUxNzI4MjlaMEQx
+CzAJBgNVBAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR0wGwYDVQQDDBRU
+ZXN0IFMvTUlNRSBSU0EgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBALLJBcQPkfJVbCqdfLOZjfXvIxQmsh+wq9EQbYLr3V0k0eA2D6irmyO39/OT
+JLzgC906KJwCxqjhxgsO6W2FoulsLuawQGG/ACKXQU1vmDcRG6l7Uq5N1RXVS4P+
+LpLZWho1dQEGfWsP1ZwEFzSWfH/ha33Z5BMjr3bmm3tkc9DDY6WntNAMSXKLmo/E
+J6bi5PSDfNtmxaqaawgxdu74rd0SmvOoDW5wpdvFSZk2QzBWzZcKaUvGtFSPwLf/
+MQ20fXsdYLOeFH8hVxWSAi6SWR6IOwSFta9RC6ZVdHug+H8I9kBuMaqrmZW54dIe
+untusFVkodm+hSRrbxAtaK2rVbkCAwEAAaNjMGEwHQYDVR0OBBYEFMmRUwpjexZb
+i71E8HaIqSTm5bZsMB8GA1UdIwQYMBaAFMmRUwpjexZbi71E8HaIqSTm5bZsMA8G
+A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IB
+AQAwpIVWQey2u/XoQSMSu0jd0EZvU+lhLaFrDy/AHQeG3yX1+SAOM6f6w+efPvyb
+Op1NPI9UkMPb4PCg9YC7jgYokBkvAcI7J4FcuDKMVhyCD3cljp0ouuKruvEf4FBl
+zyQ9pLqA97TuG8g1hLTl8G90NzTRcmKpmhs18BmCxiqHcTfoIpb3QvPkDX8R7LVt
+9BUGgPY+8ELCgw868TuHh/Cnc67gBtRjBp0sCYVzGZmKsO5f1XdHrAZKYN5mEp0C
+7/OqcDoFqORTquLeycg1At/9GqhDEgxNrqA+YEsPbLGAfsNuXUsXs2ubpGsOZxKt
+Emsny2ah6fU2z7PztrUy/A80
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smrsa1.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smrsa1.pem
new file mode 100644
index 000000000..d0d0b9e66
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smrsa1.pem
@@ -0,0 +1,49 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDXr9uzB/20QXKC
+xhkfNnJvl2xl1hzdOcrQmAqo+AAAcA/D49ImuJDVQRaK2bcj54XB26i1kXuOrxID
+3/etUb8yudfx8OAVwh8G0xVA4zhr8uXW85W2tBr4v0Lt+W6lSd6Hmfrk4GmE9LTU
+/vzl9HUPW6SZShN1G0nY6oeUXvLi0vasEUKv3a51T6JFYg4c7qt5RCk/w8kwrQ0D
+orQwCdkOPEIiC4b+nPStF12SVm5bx8rbYzioxuY/PdSebvt0APeqgRxSpCxqYnHs
+CoNeHzSrGXcP0COzFeUOz2tdrhmH09JLbGZs4nbojPxMkjpJSv3/ekDG2CHYxXSH
+XxpJstxZAgMBAAECggEASY4xsJaTEPwY3zxLqPdag2/yibBBW7ivz/9p80HQTlXp
+KnbxXj8nNXLjCytAZ8A3P2t316PrrTdLP4ML5lGwkM4MNPhek00GY79syhozTa0i
+cPHVJt+5Kwee/aVI9JmCiGAczh0yHyOM3+6ttIZvvXMVaSl4BUHvJ0ikQBc5YdzL
+s6VM2gCOR6K6n+39QHDI/T7WwO9FFSNnpWFOCHwAWtyBMlleVj+xeZX8OZ/aT+35
+27yjsGNBftWKku29VDineiQC+o+fZGJs6w4JZHoBSP8TfxP8fRCFVNA281G78Xak
+cEnKXwZ54bpoSa3ThKl+56J6NHkkfRGb8Rgt/ipJYQKBgQD5DKb82mLw85iReqsT
+8bkp408nPOBGz7KYnQsZqAVNGfehM02+dcN5z+w0jOj6GMPLPg5whlEo/O+rt9ze
+j6c2+8/+B4Bt5oqCKoOCIndH68jl65+oUxFkcHYxa3zYKGC9Uvb+x2BtBmYgvDRG
+ew6I2Q3Zyd2ThZhJygUZpsjsbQKBgQDdtNiGTkgWOm+WuqBI1LT5cQfoPfgI7/da
+ZA+37NBUQRe0cM7ddEcNqx7E3uUa1JJOoOYv65VyGI33Ul+evI8h5WE5bupcCEFk
+LolzbMc4YQUlsySY9eUXM8jQtfVtaWhuQaABt97l+9oADkrhA+YNdEu2yiz3T6W+
+msI5AnvkHQKBgDEjuPMdF/aY6dqSjJzjzfgg3KZOUaZHJuML4XvPdjRPUlfhKo7Q
+55/qUZ3Qy8tFBaTderXjGrJurc+A+LiFOaYUq2ZhDosguOWUA9yydjyfnkUXZ6or
+sbvSoM+BeOGhnezdKNT+e90nLRF6cQoTD7war6vwM6L+8hxlGvqDuRNFAoGAD4K8
+d0D4yB1Uez4ZQp8m/iCLRhM3zCBFtNw1QU/fD1Xye5w8zL96zRkAsRNLAgKHLdsR
+355iuTXAkOIBcJCOjveGQsdgvAmT0Zdz5FBi663V91o+IDlryqDD1t40CnCKbtRG
+hng/ruVczg4x7OYh7SUKuwIP/UlkNh6LogNreX0CgYBQF9troLex6X94VTi1V5hu
+iCwzDT6AJj63cS3VRO2ait3ZiLdpKdSNNW2WrlZs8FZr/mVutGEcWho8BugGMWST
+1iZkYwly9Xfjnpd0I00ZIlr2/B3+ZsK8w5cOW5Lpb7frol6+BkDnBjbNZI5kQndn
+zQpuMJliRlrq/5JkIbH6SA==
+-----END PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIIDbDCCAlSgAwIBAgIJANk5lu6mSyBAMA0GCSqGSIb3DQEBBQUAMEQxCzAJBgNV
+BAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR0wGwYDVQQDDBRUZXN0IFMv
+TUlNRSBSU0EgUm9vdDAeFw0xMzA3MTcxNzI4MzBaFw0yMzA1MjYxNzI4MzBaMEUx
+CzAJBgNVBAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR4wHAYDVQQDDBVU
+ZXN0IFMvTUlNRSBFRSBSU0EgIzEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQDXr9uzB/20QXKCxhkfNnJvl2xl1hzdOcrQmAqo+AAAcA/D49ImuJDVQRaK
+2bcj54XB26i1kXuOrxID3/etUb8yudfx8OAVwh8G0xVA4zhr8uXW85W2tBr4v0Lt
++W6lSd6Hmfrk4GmE9LTU/vzl9HUPW6SZShN1G0nY6oeUXvLi0vasEUKv3a51T6JF
+Yg4c7qt5RCk/w8kwrQ0DorQwCdkOPEIiC4b+nPStF12SVm5bx8rbYzioxuY/PdSe
+bvt0APeqgRxSpCxqYnHsCoNeHzSrGXcP0COzFeUOz2tdrhmH09JLbGZs4nbojPxM
+kjpJSv3/ekDG2CHYxXSHXxpJstxZAgMBAAGjYDBeMAwGA1UdEwEB/wQCMAAwDgYD
+VR0PAQH/BAQDAgXgMB0GA1UdDgQWBBTmjc+lrTQuYx/VBOBGjMvufajvhDAfBgNV
+HSMEGDAWgBTJkVMKY3sWW4u9RPB2iKkk5uW2bDANBgkqhkiG9w0BAQUFAAOCAQEA
+dr2IRXcFtlF16kKWs1VTaFIHHNQrfSVHBkhKblPX3f/0s/i3eXgwKUu7Hnb6T3/o
+E8L+e4ioQNhahTLt9ruJNHWA/QDwOfkqM3tshCs2xOD1Cpy7Bd3Dn0YBrHKyNXRK
+WelGp+HetSXJGW4IZJP7iES7Um0DGktLabhZbe25EnthRDBjNnaAmcofHECWESZp
+lEHczGZfS9tRbzOCofxvgLbF64H7wYSyjAe6R8aain0VRbIusiD4tCHX/lOMh9xT
+GNBW8zTL+tV9H1unjPMORLnT0YQ3oAyEND0jCu0ACA1qGl+rzxhF6bQcTUNEbRMu
+9Hjq6s316fk4Ne0EUF3PbA==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smrsa2.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smrsa2.pem
new file mode 100644
index 000000000..2f17cb297
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smrsa2.pem
@@ -0,0 +1,49 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDcYC4tS2Uvn1Z2
+iDgtfkJA5tAqgbN6X4yK02RtVH5xekV9+6+eTt/9S+iFAzAnwqR/UB1R67ETrsWq
+V8u9xLg5fHIwIkmu9/6P31UU9cghO7J1lcrhHvooHaFpcXepPWQacpuBq2VvcKRD
+lDfVmdM5z6eS3dSZPTOMMP/xk4nhZB8mcw27qiccPieS0PZ9EZB63T1gmwaK1Rd5
+U94Pl0+zpDqhViuXmBfiIDWjjz0BzHnHSz5Rg4S3oXF1NcojhptIWyI0r7dgn5J3
+NxC4kgKdjzysxo6iWd0nLgz7h0jUdj79EOis4fg9G4f0EFWyQf7iDxGaA93Y9ePB
+Jv5iFZVZAgMBAAECggEBAILIPX856EHb0KclbhlpfY4grFcdg9LS04grrcTISQW1
+J3p9nBpZ+snKe6I8Yx6lf5PiipPsSLlCliHiWpIzJZVQCkAQiSPiHttpEYgP2IYI
+dH8dtznkdVbLRthZs0bnnPmpHCpW+iqpcYJ9eqkz0cvUNUGOjjWmwWmoRqwp/8CW
+3S1qbkQiCh0Mk2fQeGar76R06kXQ9MKDEj14zyS3rJX+cokjEoMSlH8Sbmdh2mJz
+XlNZcvqmeGJZwQWgbVVHOMUuZaKJiFa+lqvOdppbqSx0AsCRq6vjmjEYQEoOefYK
+3IJM9IvqW5UNx0Cy4kQdjhZFFwMO/ALD3QyF21iP4gECgYEA+isQiaWdaY4UYxwK
+Dg+pnSCKD7UGZUaCUIv9ds3CbntMOONFe0FxPsgcc4jRYQYj1rpQiFB8F11+qXGa
+P/IHcnjr2+mTrNY4I9Bt1Lg+pHSS8QCgzeueFybYMLaSsXUo7tGwpvw6UUb6/YWI
+LNCzZbrCLg1KZjGODhhxtvN45ZkCgYEA4YNSe+GMZlxgsvxbLs86WOm6DzJUPvxN
+bWmni0+Oe0cbevgGEUjDVc895uMFnpvlgO49/C0AYJ+VVbStjIMgAeMnWj6OZoSX
+q49rI8KmKUxKgORZiiaMqGWQ7Rxv68+4S8WANsjFxoUrE6dNV3uYDIUsiSLbZeI8
+38KVTcLohcECgYEAiOdyWHGq0G4xl/9rPUCzCMsa4velNV09yYiiwBZgVgfhsawm
+hQpOSBZJA60XMGqkyEkT81VgY4UF4QLLcD0qeCnWoXWVHFvrQyY4RNZDacpl87/t
+QGO2E2NtolL3umesa+2TJ/8Whw46Iu2llSjtVDm9NGiPk5eA7xPPf1iEi9kCgYAb
+0EmVE91wJoaarLtGS7LDkpgrFacEWbPnAbfzW62UENIX2Y1OBm5pH/Vfi7J+vHWS
+8E9e0eIRCL2vY2hgQy/oa67H151SkZnvQ/IP6Ar8Xvd1bDSK8HQ6tMQqKm63Y9g0
+KDjHCP4znOsSMnk8h/bZ3HcAtvbeWwftBR/LBnYNQQKBgA1leIXLLHRoX0VtS/7e
+y7Xmn7gepj+gDbSuCs5wGtgw0RB/1z/S3QoS2TCbZzKPBo20+ivoRP7gcuFhduFR
+hT8V87esr/QzLVpjLedQDW8Xb7GiO3BsU/gVC9VcngenbL7JObl3NgvdreIYo6+n
+yrLyf+8hjm6H6zkjqiOkHAl+
+-----END PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIIDbDCCAlSgAwIBAgIJANk5lu6mSyBBMA0GCSqGSIb3DQEBBQUAMEQxCzAJBgNV
+BAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR0wGwYDVQQDDBRUZXN0IFMv
+TUlNRSBSU0EgUm9vdDAeFw0xMzA3MTcxNzI4MzBaFw0yMzA1MjYxNzI4MzBaMEUx
+CzAJBgNVBAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR4wHAYDVQQDDBVU
+ZXN0IFMvTUlNRSBFRSBSU0EgIzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQDcYC4tS2Uvn1Z2iDgtfkJA5tAqgbN6X4yK02RtVH5xekV9+6+eTt/9S+iF
+AzAnwqR/UB1R67ETrsWqV8u9xLg5fHIwIkmu9/6P31UU9cghO7J1lcrhHvooHaFp
+cXepPWQacpuBq2VvcKRDlDfVmdM5z6eS3dSZPTOMMP/xk4nhZB8mcw27qiccPieS
+0PZ9EZB63T1gmwaK1Rd5U94Pl0+zpDqhViuXmBfiIDWjjz0BzHnHSz5Rg4S3oXF1
+NcojhptIWyI0r7dgn5J3NxC4kgKdjzysxo6iWd0nLgz7h0jUdj79EOis4fg9G4f0
+EFWyQf7iDxGaA93Y9ePBJv5iFZVZAgMBAAGjYDBeMAwGA1UdEwEB/wQCMAAwDgYD
+VR0PAQH/BAQDAgXgMB0GA1UdDgQWBBT0arpyYMHXDPVL7MvzE+lx71L7sjAfBgNV
+HSMEGDAWgBTJkVMKY3sWW4u9RPB2iKkk5uW2bDANBgkqhkiG9w0BAQUFAAOCAQEA
+I8nM42am3aImkZyrw8iGkaGhKyi/dfajSWx6B9izBUh+3FleBnUxxOA+mn7M8C47
+Ne18iaaWK8vEux9KYTIY8BzXQZL1AuZ896cXEc6bGKsME37JSsocfuB5BIGWlYLv
+/ON5/SJ0iVFj4fAp8z7Vn5qxRJj9BhZDxaO1Raa6cz6pm0imJy9v8y01TI6HsK8c
+XJQLs7/U4Qb91K+IDNX/lgW3hzWjifNpIpT5JyY3DUgbkD595LFV5DDMZd0UOqcv
+6cyN42zkX8a0TWr3i5wu7pw4k1oD19RbUyljyleEp0DBauIct4GARdBGgi5y1H2i
+NzYzLAPBkHCMY0Is3KKIBw==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smrsa3.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smrsa3.pem
new file mode 100644
index 000000000..14c27f64a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/smime-certs/smrsa3.pem
@@ -0,0 +1,49 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCyK+BTAOJKJjji
+OhY60NeZjzGGZxEBfCm62n0mwkzusW/V/e63uwj6uOVCFoVBz5doMf3M6QIS2jL3
+Aw6Qs5+vcuLA0gHrqIwjYQz1UZ5ETLKLKbQw6YOIVfsFSTxytUVpfcByrubWiLKX
+63theG1/IVokDK/9/k52Kyt+wcCjuRb7AJQFj2OLDRuWm/gavozkK103gQ+dUq4H
+XamZMtTq1EhQOfc0IUeCOEL6xz4jzlHHfzLdkvb7Enhav2sXDfOmZp/DYf9IqS7l
+vFkkINPVbYFBTexaPZlFwmpGRjkmoyH/w+Jlcpzs+w6p1diWRpaSn62bbkRN49j6
+L2dVb+DfAgMBAAECggEAciwDl6zdVT6g/PbT/+SMA+7qgYHSN+1koEQaJpgjzGEP
+lUUfj8TewCtzXaIoyj9IepBuXryBg6snNXpT/w3bqgYon/7zFBvxkUpDj4A5tvKf
+BuY2fZFlpBvUu1Ju1eKrFCptBBBoA9mc+BUB/ze4ktrAdJFcxZoMlVScjqGB3GdR
+OHw2x9BdWGCJBhiu9VHhAAb/LVWi6xgDumYSWZwN2yovg+7J91t5bsENeBRHycK+
+i5dNFh1umIK9N0SH6bpHPnLHrCRchrQ6ZRRxL4ZBKA9jFRDeI7OOsJuCvhGyJ1se
+snsLjr/Ahg00aiHCcC1SPQ6pmXAVBCG7hf4AX82V4QKBgQDaFDE+Fcpv84mFo4s9
+wn4CZ8ymoNIaf5zPl/gpH7MGots4NT5+Ns+6zzJQ6TEpDjTPx+vDaabP7QGXwVZn
+8NAHYvCQK37b+u9HrOt256YYRDOmnJFSbsJdmqzMEzpTNmQ8GuI37cZCS9CmSMv+
+ab/plcwuv0cJRSC83NN2AFyu1QKBgQDRJzKIBQlpprF9rA0D5ZjLVW4OH18A0Mmm
+oanw7qVutBaM4taFN4M851WnNIROyYIlkk2fNgW57Y4M8LER4zLrjU5HY4lB0BMX
+LQWDbyz4Y7L4lVnnEKfQxWFt9avNZwiCxCxEKy/n/icmVCzc91j9uwKcupdzrN6E
+yzPd1s5y4wKBgQCkJvzmAdsOp9/Fg1RFWcgmIWHvrzBXl+U+ceLveZf1j9K5nYJ7
+2OBGer4iH1XM1I+2M4No5XcWHg3L4FEdDixY0wXHT6Y/CcThS+015Kqmq3fBmyrc
+RNjzQoF9X5/QkSmkAIx1kvpgXtcgw70htRIrToGSUpKzDKDW6NYXhbA+PQKBgDJK
+KH5IJ8E9kYPUMLT1Kc4KVpISvPcnPLVSPdhuqVx69MkfadFSTb4BKbkwiXegQCjk
+isFzbeEM25EE9q6EYKP+sAm+RyyJ6W0zKBY4TynSXyAiWSGUAaXTL+AOqCaVVZiL
+rtEdSUGQ/LzclIT0/HLV2oTw4KWxtTdc3LXEhpNdAoGBAM3LckiHENqtoeK2gVNw
+IPeEuruEqoN4n+XltbEEv6Ymhxrs6T6HSKsEsLhqsUiIvIzH43KMm45SNYTn5eZh
+yzYMXLmervN7c1jJe2Y2MYv6hE+Ypj1xGW4w7s8WNKmVzLv97beisD9AZrS7sXfF
+RvOAi5wVkYylDxV4238MAZIq
+-----END PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIIDbDCCAlSgAwIBAgIJANk5lu6mSyBCMA0GCSqGSIb3DQEBBQUAMEQxCzAJBgNV
+BAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR0wGwYDVQQDDBRUZXN0IFMv
+TUlNRSBSU0EgUm9vdDAeFw0xMzA3MTcxNzI4MzBaFw0yMzA1MjYxNzI4MzBaMEUx
+CzAJBgNVBAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMR4wHAYDVQQDDBVU
+ZXN0IFMvTUlNRSBFRSBSU0EgIzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCyK+BTAOJKJjjiOhY60NeZjzGGZxEBfCm62n0mwkzusW/V/e63uwj6uOVC
+FoVBz5doMf3M6QIS2jL3Aw6Qs5+vcuLA0gHrqIwjYQz1UZ5ETLKLKbQw6YOIVfsF
+STxytUVpfcByrubWiLKX63theG1/IVokDK/9/k52Kyt+wcCjuRb7AJQFj2OLDRuW
+m/gavozkK103gQ+dUq4HXamZMtTq1EhQOfc0IUeCOEL6xz4jzlHHfzLdkvb7Enha
+v2sXDfOmZp/DYf9IqS7lvFkkINPVbYFBTexaPZlFwmpGRjkmoyH/w+Jlcpzs+w6p
+1diWRpaSn62bbkRN49j6L2dVb+DfAgMBAAGjYDBeMAwGA1UdEwEB/wQCMAAwDgYD
+VR0PAQH/BAQDAgXgMB0GA1UdDgQWBBQ6CkW5sa6HrBsWvuPOvMjyL5AnsDAfBgNV
+HSMEGDAWgBTJkVMKY3sWW4u9RPB2iKkk5uW2bDANBgkqhkiG9w0BAQUFAAOCAQEA
+JhcrD7AKafVzlncA3cZ6epAruj1xwcfiE+EbuAaeWEGjoSltmevcjgoIxvijRVcp
+sCbNmHJZ/siQlqzWjjf3yoERvLDqngJZZpQeocMIbLRQf4wgLAuiBcvT52wTE+sa
+VexeETDy5J1OW3wE4A3rkdBp6hLaymlijFNnd5z/bP6w3AcIMWm45yPm0skM8RVr
+O3UstEFYD/iy+p+Y/YZDoxYQSW5Vl+NkpGmc5bzet8gQz4JeXtH3z5zUGoDM4XK7
+tXP3yUi2eecCbyjh/wgaQiVdylr1Kv3mxXcTl+cFO22asDkh0R/y72nTCu5fSILY
+CscFo2Z2pYROGtZDmYqhRw==
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/srptest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/srptest.c
new file mode 100644
index 000000000..bb1682e71
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/srptest.c
@@ -0,0 +1,276 @@
+/*
+ * Copyright 2011-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <openssl/opensslconf.h>
+# include "testutil.h"
+
+#ifdef OPENSSL_NO_SRP
+# include <stdio.h>
+#else
+
+# include <openssl/srp.h>
+# include <openssl/rand.h>
+# include <openssl/err.h>
+
+# define RANDOM_SIZE 32 /* use 256 bits on each side */
+
+static int run_srp(const char *username, const char *client_pass,
+ const char *server_pass)
+{
+ int ret = 0;
+ BIGNUM *s = NULL;
+ BIGNUM *v = NULL;
+ BIGNUM *a = NULL;
+ BIGNUM *b = NULL;
+ BIGNUM *u = NULL;
+ BIGNUM *x = NULL;
+ BIGNUM *Apub = NULL;
+ BIGNUM *Bpub = NULL;
+ BIGNUM *Kclient = NULL;
+ BIGNUM *Kserver = NULL;
+ unsigned char rand_tmp[RANDOM_SIZE];
+ /* use builtin 1024-bit params */
+ const SRP_gN *GN;
+
+ if (!TEST_ptr(GN = SRP_get_default_gN("1024")))
+ return 0;
+
+ /* Set up server's password entry */
+ if (!TEST_true(SRP_create_verifier_BN(username, server_pass,
+ &s, &v, GN->N, GN->g)))
+ goto end;
+
+ test_output_bignum("N", GN->N);
+ test_output_bignum("g", GN->g);
+ test_output_bignum("Salt", s);
+ test_output_bignum("Verifier", v);
+
+ /* Server random */
+ RAND_bytes(rand_tmp, sizeof(rand_tmp));
+ b = BN_bin2bn(rand_tmp, sizeof(rand_tmp), NULL);
+ if (!TEST_BN_ne_zero(b))
+ goto end;
+ test_output_bignum("b", b);
+
+ /* Server's first message */
+ Bpub = SRP_Calc_B(b, GN->N, GN->g, v);
+ test_output_bignum("B", Bpub);
+
+ if (!TEST_true(SRP_Verify_B_mod_N(Bpub, GN->N)))
+ goto end;
+
+ /* Client random */
+ RAND_bytes(rand_tmp, sizeof(rand_tmp));
+ a = BN_bin2bn(rand_tmp, sizeof(rand_tmp), NULL);
+ if (!TEST_BN_ne_zero(a))
+ goto end;
+ test_output_bignum("a", a);
+
+ /* Client's response */
+ Apub = SRP_Calc_A(a, GN->N, GN->g);
+ test_output_bignum("A", Apub);
+
+ if (!TEST_true(SRP_Verify_A_mod_N(Apub, GN->N)))
+ goto end;
+
+ /* Both sides calculate u */
+ u = SRP_Calc_u(Apub, Bpub, GN->N);
+
+ /* Client's key */
+ x = SRP_Calc_x(s, username, client_pass);
+ Kclient = SRP_Calc_client_key(GN->N, Bpub, GN->g, x, a, u);
+ test_output_bignum("Client's key", Kclient);
+
+ /* Server's key */
+ Kserver = SRP_Calc_server_key(Apub, v, u, b, GN->N);
+ test_output_bignum("Server's key", Kserver);
+
+ if (!TEST_BN_eq(Kclient, Kserver))
+ goto end;
+
+ ret = 1;
+
+end:
+ BN_clear_free(Kclient);
+ BN_clear_free(Kserver);
+ BN_clear_free(x);
+ BN_free(u);
+ BN_free(Apub);
+ BN_clear_free(a);
+ BN_free(Bpub);
+ BN_clear_free(b);
+ BN_free(s);
+ BN_clear_free(v);
+
+ return ret;
+}
+
+static int check_bn(const char *name, const BIGNUM *bn, const char *hexbn)
+{
+ BIGNUM *tmp = NULL;
+ int r;
+
+ if (!TEST_true(BN_hex2bn(&tmp, hexbn)))
+ return 0;
+
+ if (BN_cmp(bn, tmp) != 0)
+ TEST_error("unexpected %s value", name);
+ r = TEST_BN_eq(bn, tmp);
+ BN_free(tmp);
+ return r;
+}
+
+/* SRP test vectors from RFC5054 */
+static int run_srp_kat(void)
+{
+ int ret = 0;
+ BIGNUM *s = NULL;
+ BIGNUM *v = NULL;
+ BIGNUM *a = NULL;
+ BIGNUM *b = NULL;
+ BIGNUM *u = NULL;
+ BIGNUM *x = NULL;
+ BIGNUM *Apub = NULL;
+ BIGNUM *Bpub = NULL;
+ BIGNUM *Kclient = NULL;
+ BIGNUM *Kserver = NULL;
+ /* use builtin 1024-bit params */
+ const SRP_gN *GN;
+
+ if (!TEST_ptr(GN = SRP_get_default_gN("1024")))
+ goto err;
+ BN_hex2bn(&s, "BEB25379D1A8581EB5A727673A2441EE");
+ /* Set up server's password entry */
+ if (!TEST_true(SRP_create_verifier_BN("alice", "password123", &s, &v, GN->N,
+ GN->g)))
+ goto err;
+
+ TEST_info("checking v");
+ if (!TEST_true(check_bn("v", v,
+ "7E273DE8696FFC4F4E337D05B4B375BEB0DDE1569E8FA00A9886D812"
+ "9BADA1F1822223CA1A605B530E379BA4729FDC59F105B4787E5186F5"
+ "C671085A1447B52A48CF1970B4FB6F8400BBF4CEBFBB168152E08AB5"
+ "EA53D15C1AFF87B2B9DA6E04E058AD51CC72BFC9033B564E26480D78"
+ "E955A5E29E7AB245DB2BE315E2099AFB")))
+ goto err;
+ TEST_note(" okay");
+
+ /* Server random */
+ BN_hex2bn(&b, "E487CB59D31AC550471E81F00F6928E01DDA08E974A004F49E61F5D1"
+ "05284D20");
+
+ /* Server's first message */
+ Bpub = SRP_Calc_B(b, GN->N, GN->g, v);
+ if (!TEST_true(SRP_Verify_B_mod_N(Bpub, GN->N)))
+ goto err;
+
+ TEST_info("checking B");
+ if (!TEST_true(check_bn("B", Bpub,
+ "BD0C61512C692C0CB6D041FA01BB152D4916A1E77AF46AE105393011"
+ "BAF38964DC46A0670DD125B95A981652236F99D9B681CBF87837EC99"
+ "6C6DA04453728610D0C6DDB58B318885D7D82C7F8DEB75CE7BD4FBAA"
+ "37089E6F9C6059F388838E7A00030B331EB76840910440B1B27AAEAE"
+ "EB4012B7D7665238A8E3FB004B117B58")))
+ goto err;
+ TEST_note(" okay");
+
+ /* Client random */
+ BN_hex2bn(&a, "60975527035CF2AD1989806F0407210BC81EDC04E2762A56AFD529DD"
+ "DA2D4393");
+
+ /* Client's response */
+ Apub = SRP_Calc_A(a, GN->N, GN->g);
+ if (!TEST_true(SRP_Verify_A_mod_N(Apub, GN->N)))
+ goto err;
+
+ TEST_info("checking A");
+ if (!TEST_true(check_bn("A", Apub,
+ "61D5E490F6F1B79547B0704C436F523DD0E560F0C64115BB72557EC4"
+ "4352E8903211C04692272D8B2D1A5358A2CF1B6E0BFCF99F921530EC"
+ "8E39356179EAE45E42BA92AEACED825171E1E8B9AF6D9C03E1327F44"
+ "BE087EF06530E69F66615261EEF54073CA11CF5858F0EDFDFE15EFEA"
+ "B349EF5D76988A3672FAC47B0769447B")))
+ goto err;
+ TEST_note(" okay");
+
+ /* Both sides calculate u */
+ u = SRP_Calc_u(Apub, Bpub, GN->N);
+
+ if (!TEST_true(check_bn("u", u,
+ "CE38B9593487DA98554ED47D70A7AE5F462EF019")))
+ goto err;
+
+ /* Client's key */
+ x = SRP_Calc_x(s, "alice", "password123");
+ Kclient = SRP_Calc_client_key(GN->N, Bpub, GN->g, x, a, u);
+ TEST_info("checking client's key");
+ if (!TEST_true(check_bn("Client's key", Kclient,
+ "B0DC82BABCF30674AE450C0287745E7990A3381F63B387AAF271A10D"
+ "233861E359B48220F7C4693C9AE12B0A6F67809F0876E2D013800D6C"
+ "41BB59B6D5979B5C00A172B4A2A5903A0BDCAF8A709585EB2AFAFA8F"
+ "3499B200210DCC1F10EB33943CD67FC88A2F39A4BE5BEC4EC0A3212D"
+ "C346D7E474B29EDE8A469FFECA686E5A")))
+ goto err;
+ TEST_note(" okay");
+
+ /* Server's key */
+ Kserver = SRP_Calc_server_key(Apub, v, u, b, GN->N);
+ TEST_info("checking server's key");
+ if (!TEST_true(check_bn("Server's key", Kserver,
+ "B0DC82BABCF30674AE450C0287745E7990A3381F63B387AAF271A10D"
+ "233861E359B48220F7C4693C9AE12B0A6F67809F0876E2D013800D6C"
+ "41BB59B6D5979B5C00A172B4A2A5903A0BDCAF8A709585EB2AFAFA8F"
+ "3499B200210DCC1F10EB33943CD67FC88A2F39A4BE5BEC4EC0A3212D"
+ "C346D7E474B29EDE8A469FFECA686E5A")))
+ goto err;
+ TEST_note(" okay");
+
+ ret = 1;
+
+err:
+ BN_clear_free(Kclient);
+ BN_clear_free(Kserver);
+ BN_clear_free(x);
+ BN_free(u);
+ BN_free(Apub);
+ BN_clear_free(a);
+ BN_free(Bpub);
+ BN_clear_free(b);
+ BN_free(s);
+ BN_clear_free(v);
+
+ return ret;
+}
+
+static int run_srp_tests(void)
+{
+ /* "Negative" test, expect a mismatch */
+ TEST_info("run_srp: expecting a mismatch");
+ if (!TEST_false(run_srp("alice", "password1", "password2")))
+ return 0;
+
+ /* "Positive" test, should pass */
+ TEST_info("run_srp: expecting a match");
+ if (!TEST_true(run_srp("alice", "password", "password")))
+ return 0;
+
+ return 1;
+}
+#endif
+
+int setup_tests(void)
+{
+#ifdef OPENSSL_NO_SRP
+ printf("No SRP support\n");
+#else
+ ADD_TEST(run_srp_tests);
+ ADD_TEST(run_srp_kat);
+#endif
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/01-simple.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/01-simple.conf
new file mode 100644
index 000000000..7fc23f0b6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/01-simple.conf
@@ -0,0 +1,78 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 3
+
+test-0 = 0-default
+test-1 = 1-Server signature algorithms bug
+test-2 = 2-verify-cert
+# ===========================================================
+
+[0-default]
+ssl_conf = 0-default-ssl
+
+[0-default-ssl]
+server = 0-default-server
+client = 0-default-client
+
+[0-default-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-default-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[1-Server signature algorithms bug]
+ssl_conf = 1-Server signature algorithms bug-ssl
+
+[1-Server signature algorithms bug-ssl]
+server = 1-Server signature algorithms bug-server
+client = 1-Server signature algorithms bug-client
+
+[1-Server signature algorithms bug-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ClientSignatureAlgorithms = PSS+SHA512:RSA+SHA512
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-Server signature algorithms bug-client]
+CipherString = DEFAULT
+SignatureAlgorithms = PSS+SHA256:RSA+SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[2-verify-cert]
+ssl_conf = 2-verify-cert-ssl
+
+[2-verify-cert-ssl]
+server = 2-verify-cert-server
+client = 2-verify-cert-client
+
+[2-verify-cert-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-verify-cert-client]
+CipherString = DEFAULT
+VerifyMode = Peer
+
+[test-2]
+ExpectedClientAlert = UnknownCA
+ExpectedResult = ClientFail
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/01-simple.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/01-simple.conf.in
new file mode 100644
index 000000000..54dc451f3
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/01-simple.conf.in
@@ -0,0 +1,42 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## SSL test configurations
+
+package ssltests;
+
+our @tests = (
+ {
+ name => "default",
+ server => { },
+ client => { },
+ test => { "ExpectedResult" => "Success" },
+ },
+
+ {
+ name => "Server signature algorithms bug",
+ # Should have no effect as we aren't doing client auth
+ server => { "ClientSignatureAlgorithms" => "PSS+SHA512:RSA+SHA512" },
+ client => { "SignatureAlgorithms" => "PSS+SHA256:RSA+SHA256" },
+ test => { "ExpectedResult" => "Success" },
+ },
+
+ {
+ name => "verify-cert",
+ server => { },
+ client => {
+ # Don't set up the client root file.
+ "VerifyCAFile" => undef,
+ },
+ test => {
+ "ExpectedResult" => "ClientFail",
+ "ExpectedClientAlert" => "UnknownCA",
+ },
+ },
+);
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/02-protocol-version.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/02-protocol-version.conf
new file mode 100644
index 000000000..4b7d7df21
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/02-protocol-version.conf
@@ -0,0 +1,18822 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 678
+
+test-0 = 0-version-negotiation
+test-1 = 1-version-negotiation
+test-2 = 2-version-negotiation
+test-3 = 3-version-negotiation
+test-4 = 4-version-negotiation
+test-5 = 5-version-negotiation
+test-6 = 6-version-negotiation
+test-7 = 7-version-negotiation
+test-8 = 8-version-negotiation
+test-9 = 9-version-negotiation
+test-10 = 10-version-negotiation
+test-11 = 11-version-negotiation
+test-12 = 12-version-negotiation
+test-13 = 13-version-negotiation
+test-14 = 14-version-negotiation
+test-15 = 15-version-negotiation
+test-16 = 16-version-negotiation
+test-17 = 17-version-negotiation
+test-18 = 18-version-negotiation
+test-19 = 19-version-negotiation
+test-20 = 20-version-negotiation
+test-21 = 21-version-negotiation
+test-22 = 22-version-negotiation
+test-23 = 23-version-negotiation
+test-24 = 24-version-negotiation
+test-25 = 25-version-negotiation
+test-26 = 26-version-negotiation
+test-27 = 27-version-negotiation
+test-28 = 28-version-negotiation
+test-29 = 29-version-negotiation
+test-30 = 30-version-negotiation
+test-31 = 31-version-negotiation
+test-32 = 32-version-negotiation
+test-33 = 33-version-negotiation
+test-34 = 34-version-negotiation
+test-35 = 35-version-negotiation
+test-36 = 36-version-negotiation
+test-37 = 37-version-negotiation
+test-38 = 38-version-negotiation
+test-39 = 39-version-negotiation
+test-40 = 40-version-negotiation
+test-41 = 41-version-negotiation
+test-42 = 42-version-negotiation
+test-43 = 43-version-negotiation
+test-44 = 44-version-negotiation
+test-45 = 45-version-negotiation
+test-46 = 46-version-negotiation
+test-47 = 47-version-negotiation
+test-48 = 48-version-negotiation
+test-49 = 49-version-negotiation
+test-50 = 50-version-negotiation
+test-51 = 51-version-negotiation
+test-52 = 52-version-negotiation
+test-53 = 53-version-negotiation
+test-54 = 54-version-negotiation
+test-55 = 55-version-negotiation
+test-56 = 56-version-negotiation
+test-57 = 57-version-negotiation
+test-58 = 58-version-negotiation
+test-59 = 59-version-negotiation
+test-60 = 60-version-negotiation
+test-61 = 61-version-negotiation
+test-62 = 62-version-negotiation
+test-63 = 63-version-negotiation
+test-64 = 64-version-negotiation
+test-65 = 65-version-negotiation
+test-66 = 66-version-negotiation
+test-67 = 67-version-negotiation
+test-68 = 68-version-negotiation
+test-69 = 69-version-negotiation
+test-70 = 70-version-negotiation
+test-71 = 71-version-negotiation
+test-72 = 72-version-negotiation
+test-73 = 73-version-negotiation
+test-74 = 74-version-negotiation
+test-75 = 75-version-negotiation
+test-76 = 76-version-negotiation
+test-77 = 77-version-negotiation
+test-78 = 78-version-negotiation
+test-79 = 79-version-negotiation
+test-80 = 80-version-negotiation
+test-81 = 81-version-negotiation
+test-82 = 82-version-negotiation
+test-83 = 83-version-negotiation
+test-84 = 84-version-negotiation
+test-85 = 85-version-negotiation
+test-86 = 86-version-negotiation
+test-87 = 87-version-negotiation
+test-88 = 88-version-negotiation
+test-89 = 89-version-negotiation
+test-90 = 90-version-negotiation
+test-91 = 91-version-negotiation
+test-92 = 92-version-negotiation
+test-93 = 93-version-negotiation
+test-94 = 94-version-negotiation
+test-95 = 95-version-negotiation
+test-96 = 96-version-negotiation
+test-97 = 97-version-negotiation
+test-98 = 98-version-negotiation
+test-99 = 99-version-negotiation
+test-100 = 100-version-negotiation
+test-101 = 101-version-negotiation
+test-102 = 102-version-negotiation
+test-103 = 103-version-negotiation
+test-104 = 104-version-negotiation
+test-105 = 105-version-negotiation
+test-106 = 106-version-negotiation
+test-107 = 107-version-negotiation
+test-108 = 108-version-negotiation
+test-109 = 109-version-negotiation
+test-110 = 110-version-negotiation
+test-111 = 111-version-negotiation
+test-112 = 112-version-negotiation
+test-113 = 113-version-negotiation
+test-114 = 114-version-negotiation
+test-115 = 115-version-negotiation
+test-116 = 116-version-negotiation
+test-117 = 117-version-negotiation
+test-118 = 118-version-negotiation
+test-119 = 119-version-negotiation
+test-120 = 120-version-negotiation
+test-121 = 121-version-negotiation
+test-122 = 122-version-negotiation
+test-123 = 123-version-negotiation
+test-124 = 124-version-negotiation
+test-125 = 125-version-negotiation
+test-126 = 126-version-negotiation
+test-127 = 127-version-negotiation
+test-128 = 128-version-negotiation
+test-129 = 129-version-negotiation
+test-130 = 130-version-negotiation
+test-131 = 131-version-negotiation
+test-132 = 132-version-negotiation
+test-133 = 133-version-negotiation
+test-134 = 134-version-negotiation
+test-135 = 135-version-negotiation
+test-136 = 136-version-negotiation
+test-137 = 137-version-negotiation
+test-138 = 138-version-negotiation
+test-139 = 139-version-negotiation
+test-140 = 140-version-negotiation
+test-141 = 141-version-negotiation
+test-142 = 142-version-negotiation
+test-143 = 143-version-negotiation
+test-144 = 144-version-negotiation
+test-145 = 145-version-negotiation
+test-146 = 146-version-negotiation
+test-147 = 147-version-negotiation
+test-148 = 148-version-negotiation
+test-149 = 149-version-negotiation
+test-150 = 150-version-negotiation
+test-151 = 151-version-negotiation
+test-152 = 152-version-negotiation
+test-153 = 153-version-negotiation
+test-154 = 154-version-negotiation
+test-155 = 155-version-negotiation
+test-156 = 156-version-negotiation
+test-157 = 157-version-negotiation
+test-158 = 158-version-negotiation
+test-159 = 159-version-negotiation
+test-160 = 160-version-negotiation
+test-161 = 161-version-negotiation
+test-162 = 162-version-negotiation
+test-163 = 163-version-negotiation
+test-164 = 164-version-negotiation
+test-165 = 165-version-negotiation
+test-166 = 166-version-negotiation
+test-167 = 167-version-negotiation
+test-168 = 168-version-negotiation
+test-169 = 169-version-negotiation
+test-170 = 170-version-negotiation
+test-171 = 171-version-negotiation
+test-172 = 172-version-negotiation
+test-173 = 173-version-negotiation
+test-174 = 174-version-negotiation
+test-175 = 175-version-negotiation
+test-176 = 176-version-negotiation
+test-177 = 177-version-negotiation
+test-178 = 178-version-negotiation
+test-179 = 179-version-negotiation
+test-180 = 180-version-negotiation
+test-181 = 181-version-negotiation
+test-182 = 182-version-negotiation
+test-183 = 183-version-negotiation
+test-184 = 184-version-negotiation
+test-185 = 185-version-negotiation
+test-186 = 186-version-negotiation
+test-187 = 187-version-negotiation
+test-188 = 188-version-negotiation
+test-189 = 189-version-negotiation
+test-190 = 190-version-negotiation
+test-191 = 191-version-negotiation
+test-192 = 192-version-negotiation
+test-193 = 193-version-negotiation
+test-194 = 194-version-negotiation
+test-195 = 195-version-negotiation
+test-196 = 196-version-negotiation
+test-197 = 197-version-negotiation
+test-198 = 198-version-negotiation
+test-199 = 199-version-negotiation
+test-200 = 200-version-negotiation
+test-201 = 201-version-negotiation
+test-202 = 202-version-negotiation
+test-203 = 203-version-negotiation
+test-204 = 204-version-negotiation
+test-205 = 205-version-negotiation
+test-206 = 206-version-negotiation
+test-207 = 207-version-negotiation
+test-208 = 208-version-negotiation
+test-209 = 209-version-negotiation
+test-210 = 210-version-negotiation
+test-211 = 211-version-negotiation
+test-212 = 212-version-negotiation
+test-213 = 213-version-negotiation
+test-214 = 214-version-negotiation
+test-215 = 215-version-negotiation
+test-216 = 216-version-negotiation
+test-217 = 217-version-negotiation
+test-218 = 218-version-negotiation
+test-219 = 219-version-negotiation
+test-220 = 220-version-negotiation
+test-221 = 221-version-negotiation
+test-222 = 222-version-negotiation
+test-223 = 223-version-negotiation
+test-224 = 224-version-negotiation
+test-225 = 225-version-negotiation
+test-226 = 226-version-negotiation
+test-227 = 227-version-negotiation
+test-228 = 228-version-negotiation
+test-229 = 229-version-negotiation
+test-230 = 230-version-negotiation
+test-231 = 231-version-negotiation
+test-232 = 232-version-negotiation
+test-233 = 233-version-negotiation
+test-234 = 234-version-negotiation
+test-235 = 235-version-negotiation
+test-236 = 236-version-negotiation
+test-237 = 237-version-negotiation
+test-238 = 238-version-negotiation
+test-239 = 239-version-negotiation
+test-240 = 240-version-negotiation
+test-241 = 241-version-negotiation
+test-242 = 242-version-negotiation
+test-243 = 243-version-negotiation
+test-244 = 244-version-negotiation
+test-245 = 245-version-negotiation
+test-246 = 246-version-negotiation
+test-247 = 247-version-negotiation
+test-248 = 248-version-negotiation
+test-249 = 249-version-negotiation
+test-250 = 250-version-negotiation
+test-251 = 251-version-negotiation
+test-252 = 252-version-negotiation
+test-253 = 253-version-negotiation
+test-254 = 254-version-negotiation
+test-255 = 255-version-negotiation
+test-256 = 256-version-negotiation
+test-257 = 257-version-negotiation
+test-258 = 258-version-negotiation
+test-259 = 259-version-negotiation
+test-260 = 260-version-negotiation
+test-261 = 261-version-negotiation
+test-262 = 262-version-negotiation
+test-263 = 263-version-negotiation
+test-264 = 264-version-negotiation
+test-265 = 265-version-negotiation
+test-266 = 266-version-negotiation
+test-267 = 267-version-negotiation
+test-268 = 268-version-negotiation
+test-269 = 269-version-negotiation
+test-270 = 270-version-negotiation
+test-271 = 271-version-negotiation
+test-272 = 272-version-negotiation
+test-273 = 273-version-negotiation
+test-274 = 274-version-negotiation
+test-275 = 275-version-negotiation
+test-276 = 276-version-negotiation
+test-277 = 277-version-negotiation
+test-278 = 278-version-negotiation
+test-279 = 279-version-negotiation
+test-280 = 280-version-negotiation
+test-281 = 281-version-negotiation
+test-282 = 282-version-negotiation
+test-283 = 283-version-negotiation
+test-284 = 284-version-negotiation
+test-285 = 285-version-negotiation
+test-286 = 286-version-negotiation
+test-287 = 287-version-negotiation
+test-288 = 288-version-negotiation
+test-289 = 289-version-negotiation
+test-290 = 290-version-negotiation
+test-291 = 291-version-negotiation
+test-292 = 292-version-negotiation
+test-293 = 293-version-negotiation
+test-294 = 294-version-negotiation
+test-295 = 295-version-negotiation
+test-296 = 296-version-negotiation
+test-297 = 297-version-negotiation
+test-298 = 298-version-negotiation
+test-299 = 299-version-negotiation
+test-300 = 300-version-negotiation
+test-301 = 301-version-negotiation
+test-302 = 302-version-negotiation
+test-303 = 303-version-negotiation
+test-304 = 304-version-negotiation
+test-305 = 305-version-negotiation
+test-306 = 306-version-negotiation
+test-307 = 307-version-negotiation
+test-308 = 308-version-negotiation
+test-309 = 309-version-negotiation
+test-310 = 310-version-negotiation
+test-311 = 311-version-negotiation
+test-312 = 312-version-negotiation
+test-313 = 313-version-negotiation
+test-314 = 314-version-negotiation
+test-315 = 315-version-negotiation
+test-316 = 316-version-negotiation
+test-317 = 317-version-negotiation
+test-318 = 318-version-negotiation
+test-319 = 319-version-negotiation
+test-320 = 320-version-negotiation
+test-321 = 321-version-negotiation
+test-322 = 322-version-negotiation
+test-323 = 323-version-negotiation
+test-324 = 324-version-negotiation
+test-325 = 325-version-negotiation
+test-326 = 326-version-negotiation
+test-327 = 327-version-negotiation
+test-328 = 328-version-negotiation
+test-329 = 329-version-negotiation
+test-330 = 330-version-negotiation
+test-331 = 331-version-negotiation
+test-332 = 332-version-negotiation
+test-333 = 333-version-negotiation
+test-334 = 334-version-negotiation
+test-335 = 335-version-negotiation
+test-336 = 336-version-negotiation
+test-337 = 337-version-negotiation
+test-338 = 338-version-negotiation
+test-339 = 339-version-negotiation
+test-340 = 340-version-negotiation
+test-341 = 341-version-negotiation
+test-342 = 342-version-negotiation
+test-343 = 343-version-negotiation
+test-344 = 344-version-negotiation
+test-345 = 345-version-negotiation
+test-346 = 346-version-negotiation
+test-347 = 347-version-negotiation
+test-348 = 348-version-negotiation
+test-349 = 349-version-negotiation
+test-350 = 350-version-negotiation
+test-351 = 351-version-negotiation
+test-352 = 352-version-negotiation
+test-353 = 353-version-negotiation
+test-354 = 354-version-negotiation
+test-355 = 355-version-negotiation
+test-356 = 356-version-negotiation
+test-357 = 357-version-negotiation
+test-358 = 358-version-negotiation
+test-359 = 359-version-negotiation
+test-360 = 360-version-negotiation
+test-361 = 361-version-negotiation
+test-362 = 362-version-negotiation
+test-363 = 363-version-negotiation
+test-364 = 364-version-negotiation
+test-365 = 365-version-negotiation
+test-366 = 366-version-negotiation
+test-367 = 367-version-negotiation
+test-368 = 368-version-negotiation
+test-369 = 369-version-negotiation
+test-370 = 370-version-negotiation
+test-371 = 371-version-negotiation
+test-372 = 372-version-negotiation
+test-373 = 373-version-negotiation
+test-374 = 374-version-negotiation
+test-375 = 375-version-negotiation
+test-376 = 376-version-negotiation
+test-377 = 377-version-negotiation
+test-378 = 378-version-negotiation
+test-379 = 379-version-negotiation
+test-380 = 380-version-negotiation
+test-381 = 381-version-negotiation
+test-382 = 382-version-negotiation
+test-383 = 383-version-negotiation
+test-384 = 384-version-negotiation
+test-385 = 385-version-negotiation
+test-386 = 386-version-negotiation
+test-387 = 387-version-negotiation
+test-388 = 388-version-negotiation
+test-389 = 389-version-negotiation
+test-390 = 390-version-negotiation
+test-391 = 391-version-negotiation
+test-392 = 392-version-negotiation
+test-393 = 393-version-negotiation
+test-394 = 394-version-negotiation
+test-395 = 395-version-negotiation
+test-396 = 396-version-negotiation
+test-397 = 397-version-negotiation
+test-398 = 398-version-negotiation
+test-399 = 399-version-negotiation
+test-400 = 400-version-negotiation
+test-401 = 401-version-negotiation
+test-402 = 402-version-negotiation
+test-403 = 403-version-negotiation
+test-404 = 404-version-negotiation
+test-405 = 405-version-negotiation
+test-406 = 406-version-negotiation
+test-407 = 407-version-negotiation
+test-408 = 408-version-negotiation
+test-409 = 409-version-negotiation
+test-410 = 410-version-negotiation
+test-411 = 411-version-negotiation
+test-412 = 412-version-negotiation
+test-413 = 413-version-negotiation
+test-414 = 414-version-negotiation
+test-415 = 415-version-negotiation
+test-416 = 416-version-negotiation
+test-417 = 417-version-negotiation
+test-418 = 418-version-negotiation
+test-419 = 419-version-negotiation
+test-420 = 420-version-negotiation
+test-421 = 421-version-negotiation
+test-422 = 422-version-negotiation
+test-423 = 423-version-negotiation
+test-424 = 424-version-negotiation
+test-425 = 425-version-negotiation
+test-426 = 426-version-negotiation
+test-427 = 427-version-negotiation
+test-428 = 428-version-negotiation
+test-429 = 429-version-negotiation
+test-430 = 430-version-negotiation
+test-431 = 431-version-negotiation
+test-432 = 432-version-negotiation
+test-433 = 433-version-negotiation
+test-434 = 434-version-negotiation
+test-435 = 435-version-negotiation
+test-436 = 436-version-negotiation
+test-437 = 437-version-negotiation
+test-438 = 438-version-negotiation
+test-439 = 439-version-negotiation
+test-440 = 440-version-negotiation
+test-441 = 441-version-negotiation
+test-442 = 442-version-negotiation
+test-443 = 443-version-negotiation
+test-444 = 444-version-negotiation
+test-445 = 445-version-negotiation
+test-446 = 446-version-negotiation
+test-447 = 447-version-negotiation
+test-448 = 448-version-negotiation
+test-449 = 449-version-negotiation
+test-450 = 450-version-negotiation
+test-451 = 451-version-negotiation
+test-452 = 452-version-negotiation
+test-453 = 453-version-negotiation
+test-454 = 454-version-negotiation
+test-455 = 455-version-negotiation
+test-456 = 456-version-negotiation
+test-457 = 457-version-negotiation
+test-458 = 458-version-negotiation
+test-459 = 459-version-negotiation
+test-460 = 460-version-negotiation
+test-461 = 461-version-negotiation
+test-462 = 462-version-negotiation
+test-463 = 463-version-negotiation
+test-464 = 464-version-negotiation
+test-465 = 465-version-negotiation
+test-466 = 466-version-negotiation
+test-467 = 467-version-negotiation
+test-468 = 468-version-negotiation
+test-469 = 469-version-negotiation
+test-470 = 470-version-negotiation
+test-471 = 471-version-negotiation
+test-472 = 472-version-negotiation
+test-473 = 473-version-negotiation
+test-474 = 474-version-negotiation
+test-475 = 475-version-negotiation
+test-476 = 476-version-negotiation
+test-477 = 477-version-negotiation
+test-478 = 478-version-negotiation
+test-479 = 479-version-negotiation
+test-480 = 480-version-negotiation
+test-481 = 481-version-negotiation
+test-482 = 482-version-negotiation
+test-483 = 483-version-negotiation
+test-484 = 484-version-negotiation
+test-485 = 485-version-negotiation
+test-486 = 486-version-negotiation
+test-487 = 487-version-negotiation
+test-488 = 488-version-negotiation
+test-489 = 489-version-negotiation
+test-490 = 490-version-negotiation
+test-491 = 491-version-negotiation
+test-492 = 492-version-negotiation
+test-493 = 493-version-negotiation
+test-494 = 494-version-negotiation
+test-495 = 495-version-negotiation
+test-496 = 496-version-negotiation
+test-497 = 497-version-negotiation
+test-498 = 498-version-negotiation
+test-499 = 499-version-negotiation
+test-500 = 500-version-negotiation
+test-501 = 501-version-negotiation
+test-502 = 502-version-negotiation
+test-503 = 503-version-negotiation
+test-504 = 504-version-negotiation
+test-505 = 505-version-negotiation
+test-506 = 506-version-negotiation
+test-507 = 507-version-negotiation
+test-508 = 508-version-negotiation
+test-509 = 509-version-negotiation
+test-510 = 510-version-negotiation
+test-511 = 511-version-negotiation
+test-512 = 512-version-negotiation
+test-513 = 513-version-negotiation
+test-514 = 514-version-negotiation
+test-515 = 515-version-negotiation
+test-516 = 516-version-negotiation
+test-517 = 517-version-negotiation
+test-518 = 518-version-negotiation
+test-519 = 519-version-negotiation
+test-520 = 520-version-negotiation
+test-521 = 521-version-negotiation
+test-522 = 522-version-negotiation
+test-523 = 523-version-negotiation
+test-524 = 524-version-negotiation
+test-525 = 525-version-negotiation
+test-526 = 526-version-negotiation
+test-527 = 527-version-negotiation
+test-528 = 528-version-negotiation
+test-529 = 529-version-negotiation
+test-530 = 530-version-negotiation
+test-531 = 531-version-negotiation
+test-532 = 532-version-negotiation
+test-533 = 533-version-negotiation
+test-534 = 534-version-negotiation
+test-535 = 535-version-negotiation
+test-536 = 536-version-negotiation
+test-537 = 537-version-negotiation
+test-538 = 538-version-negotiation
+test-539 = 539-version-negotiation
+test-540 = 540-version-negotiation
+test-541 = 541-version-negotiation
+test-542 = 542-version-negotiation
+test-543 = 543-version-negotiation
+test-544 = 544-version-negotiation
+test-545 = 545-version-negotiation
+test-546 = 546-version-negotiation
+test-547 = 547-version-negotiation
+test-548 = 548-version-negotiation
+test-549 = 549-version-negotiation
+test-550 = 550-version-negotiation
+test-551 = 551-version-negotiation
+test-552 = 552-version-negotiation
+test-553 = 553-version-negotiation
+test-554 = 554-version-negotiation
+test-555 = 555-version-negotiation
+test-556 = 556-version-negotiation
+test-557 = 557-version-negotiation
+test-558 = 558-version-negotiation
+test-559 = 559-version-negotiation
+test-560 = 560-version-negotiation
+test-561 = 561-version-negotiation
+test-562 = 562-version-negotiation
+test-563 = 563-version-negotiation
+test-564 = 564-version-negotiation
+test-565 = 565-version-negotiation
+test-566 = 566-version-negotiation
+test-567 = 567-version-negotiation
+test-568 = 568-version-negotiation
+test-569 = 569-version-negotiation
+test-570 = 570-version-negotiation
+test-571 = 571-version-negotiation
+test-572 = 572-version-negotiation
+test-573 = 573-version-negotiation
+test-574 = 574-version-negotiation
+test-575 = 575-version-negotiation
+test-576 = 576-version-negotiation
+test-577 = 577-version-negotiation
+test-578 = 578-version-negotiation
+test-579 = 579-version-negotiation
+test-580 = 580-version-negotiation
+test-581 = 581-version-negotiation
+test-582 = 582-version-negotiation
+test-583 = 583-version-negotiation
+test-584 = 584-version-negotiation
+test-585 = 585-version-negotiation
+test-586 = 586-version-negotiation
+test-587 = 587-version-negotiation
+test-588 = 588-version-negotiation
+test-589 = 589-version-negotiation
+test-590 = 590-version-negotiation
+test-591 = 591-version-negotiation
+test-592 = 592-version-negotiation
+test-593 = 593-version-negotiation
+test-594 = 594-version-negotiation
+test-595 = 595-version-negotiation
+test-596 = 596-version-negotiation
+test-597 = 597-version-negotiation
+test-598 = 598-version-negotiation
+test-599 = 599-version-negotiation
+test-600 = 600-version-negotiation
+test-601 = 601-version-negotiation
+test-602 = 602-version-negotiation
+test-603 = 603-version-negotiation
+test-604 = 604-version-negotiation
+test-605 = 605-version-negotiation
+test-606 = 606-version-negotiation
+test-607 = 607-version-negotiation
+test-608 = 608-version-negotiation
+test-609 = 609-version-negotiation
+test-610 = 610-version-negotiation
+test-611 = 611-version-negotiation
+test-612 = 612-version-negotiation
+test-613 = 613-version-negotiation
+test-614 = 614-version-negotiation
+test-615 = 615-version-negotiation
+test-616 = 616-version-negotiation
+test-617 = 617-version-negotiation
+test-618 = 618-version-negotiation
+test-619 = 619-version-negotiation
+test-620 = 620-version-negotiation
+test-621 = 621-version-negotiation
+test-622 = 622-version-negotiation
+test-623 = 623-version-negotiation
+test-624 = 624-version-negotiation
+test-625 = 625-version-negotiation
+test-626 = 626-version-negotiation
+test-627 = 627-version-negotiation
+test-628 = 628-version-negotiation
+test-629 = 629-version-negotiation
+test-630 = 630-version-negotiation
+test-631 = 631-version-negotiation
+test-632 = 632-version-negotiation
+test-633 = 633-version-negotiation
+test-634 = 634-version-negotiation
+test-635 = 635-version-negotiation
+test-636 = 636-version-negotiation
+test-637 = 637-version-negotiation
+test-638 = 638-version-negotiation
+test-639 = 639-version-negotiation
+test-640 = 640-version-negotiation
+test-641 = 641-version-negotiation
+test-642 = 642-version-negotiation
+test-643 = 643-version-negotiation
+test-644 = 644-version-negotiation
+test-645 = 645-version-negotiation
+test-646 = 646-version-negotiation
+test-647 = 647-version-negotiation
+test-648 = 648-version-negotiation
+test-649 = 649-version-negotiation
+test-650 = 650-version-negotiation
+test-651 = 651-version-negotiation
+test-652 = 652-version-negotiation
+test-653 = 653-version-negotiation
+test-654 = 654-version-negotiation
+test-655 = 655-version-negotiation
+test-656 = 656-version-negotiation
+test-657 = 657-version-negotiation
+test-658 = 658-version-negotiation
+test-659 = 659-version-negotiation
+test-660 = 660-version-negotiation
+test-661 = 661-version-negotiation
+test-662 = 662-version-negotiation
+test-663 = 663-version-negotiation
+test-664 = 664-version-negotiation
+test-665 = 665-version-negotiation
+test-666 = 666-version-negotiation
+test-667 = 667-version-negotiation
+test-668 = 668-version-negotiation
+test-669 = 669-version-negotiation
+test-670 = 670-version-negotiation
+test-671 = 671-version-negotiation
+test-672 = 672-version-negotiation
+test-673 = 673-version-negotiation
+test-674 = 674-version-negotiation
+test-675 = 675-version-negotiation
+test-676 = 676-ciphersuite-sanity-check-client
+test-677 = 677-ciphersuite-sanity-check-server
+# ===========================================================
+
+[0-version-negotiation]
+ssl_conf = 0-version-negotiation-ssl
+
+[0-version-negotiation-ssl]
+server = 0-version-negotiation-server
+client = 0-version-negotiation-client
+
+[0-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[1-version-negotiation]
+ssl_conf = 1-version-negotiation-ssl
+
+[1-version-negotiation-ssl]
+server = 1-version-negotiation-server
+client = 1-version-negotiation-client
+
+[1-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[2-version-negotiation]
+ssl_conf = 2-version-negotiation-ssl
+
+[2-version-negotiation-ssl]
+server = 2-version-negotiation-server
+client = 2-version-negotiation-client
+
+[2-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[3-version-negotiation]
+ssl_conf = 3-version-negotiation-ssl
+
+[3-version-negotiation-ssl]
+server = 3-version-negotiation-server
+client = 3-version-negotiation-client
+
+[3-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[4-version-negotiation]
+ssl_conf = 4-version-negotiation-ssl
+
+[4-version-negotiation-ssl]
+server = 4-version-negotiation-server
+client = 4-version-negotiation-client
+
+[4-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[4-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-4]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[5-version-negotiation]
+ssl_conf = 5-version-negotiation-ssl
+
+[5-version-negotiation-ssl]
+server = 5-version-negotiation-server
+client = 5-version-negotiation-client
+
+[5-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[5-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[6-version-negotiation]
+ssl_conf = 6-version-negotiation-ssl
+
+[6-version-negotiation-ssl]
+server = 6-version-negotiation-server
+client = 6-version-negotiation-client
+
+[6-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-6]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[7-version-negotiation]
+ssl_conf = 7-version-negotiation-ssl
+
+[7-version-negotiation-ssl]
+server = 7-version-negotiation-server
+client = 7-version-negotiation-client
+
+[7-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-7]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[8-version-negotiation]
+ssl_conf = 8-version-negotiation-ssl
+
+[8-version-negotiation-ssl]
+server = 8-version-negotiation-server
+client = 8-version-negotiation-client
+
+[8-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-8]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[9-version-negotiation]
+ssl_conf = 9-version-negotiation-ssl
+
+[9-version-negotiation-ssl]
+server = 9-version-negotiation-server
+client = 9-version-negotiation-client
+
+[9-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[9-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-9]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[10-version-negotiation]
+ssl_conf = 10-version-negotiation-ssl
+
+[10-version-negotiation-ssl]
+server = 10-version-negotiation-server
+client = 10-version-negotiation-client
+
+[10-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[10-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-10]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[11-version-negotiation]
+ssl_conf = 11-version-negotiation-ssl
+
+[11-version-negotiation-ssl]
+server = 11-version-negotiation-server
+client = 11-version-negotiation-client
+
+[11-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[11-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-11]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[12-version-negotiation]
+ssl_conf = 12-version-negotiation-ssl
+
+[12-version-negotiation-ssl]
+server = 12-version-negotiation-server
+client = 12-version-negotiation-client
+
+[12-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[12-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-12]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[13-version-negotiation]
+ssl_conf = 13-version-negotiation-ssl
+
+[13-version-negotiation-ssl]
+server = 13-version-negotiation-server
+client = 13-version-negotiation-client
+
+[13-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[13-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-13]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[14-version-negotiation]
+ssl_conf = 14-version-negotiation-ssl
+
+[14-version-negotiation-ssl]
+server = 14-version-negotiation-server
+client = 14-version-negotiation-client
+
+[14-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[14-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-14]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[15-version-negotiation]
+ssl_conf = 15-version-negotiation-ssl
+
+[15-version-negotiation-ssl]
+server = 15-version-negotiation-server
+client = 15-version-negotiation-client
+
+[15-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[15-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-15]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[16-version-negotiation]
+ssl_conf = 16-version-negotiation-ssl
+
+[16-version-negotiation-ssl]
+server = 16-version-negotiation-server
+client = 16-version-negotiation-client
+
+[16-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[16-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-16]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[17-version-negotiation]
+ssl_conf = 17-version-negotiation-ssl
+
+[17-version-negotiation-ssl]
+server = 17-version-negotiation-server
+client = 17-version-negotiation-client
+
+[17-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[17-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-17]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[18-version-negotiation]
+ssl_conf = 18-version-negotiation-ssl
+
+[18-version-negotiation-ssl]
+server = 18-version-negotiation-server
+client = 18-version-negotiation-client
+
+[18-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[18-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-18]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[19-version-negotiation]
+ssl_conf = 19-version-negotiation-ssl
+
+[19-version-negotiation-ssl]
+server = 19-version-negotiation-server
+client = 19-version-negotiation-client
+
+[19-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[19-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-19]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[20-version-negotiation]
+ssl_conf = 20-version-negotiation-ssl
+
+[20-version-negotiation-ssl]
+server = 20-version-negotiation-server
+client = 20-version-negotiation-client
+
+[20-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[20-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-20]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[21-version-negotiation]
+ssl_conf = 21-version-negotiation-ssl
+
+[21-version-negotiation-ssl]
+server = 21-version-negotiation-server
+client = 21-version-negotiation-client
+
+[21-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[21-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-21]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[22-version-negotiation]
+ssl_conf = 22-version-negotiation-ssl
+
+[22-version-negotiation-ssl]
+server = 22-version-negotiation-server
+client = 22-version-negotiation-client
+
+[22-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[22-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-22]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[23-version-negotiation]
+ssl_conf = 23-version-negotiation-ssl
+
+[23-version-negotiation-ssl]
+server = 23-version-negotiation-server
+client = 23-version-negotiation-client
+
+[23-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[23-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-23]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[24-version-negotiation]
+ssl_conf = 24-version-negotiation-ssl
+
+[24-version-negotiation-ssl]
+server = 24-version-negotiation-server
+client = 24-version-negotiation-client
+
+[24-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[24-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-24]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[25-version-negotiation]
+ssl_conf = 25-version-negotiation-ssl
+
+[25-version-negotiation-ssl]
+server = 25-version-negotiation-server
+client = 25-version-negotiation-client
+
+[25-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[25-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-25]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[26-version-negotiation]
+ssl_conf = 26-version-negotiation-ssl
+
+[26-version-negotiation-ssl]
+server = 26-version-negotiation-server
+client = 26-version-negotiation-client
+
+[26-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[26-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-26]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[27-version-negotiation]
+ssl_conf = 27-version-negotiation-ssl
+
+[27-version-negotiation-ssl]
+server = 27-version-negotiation-server
+client = 27-version-negotiation-client
+
+[27-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[27-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-27]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[28-version-negotiation]
+ssl_conf = 28-version-negotiation-ssl
+
+[28-version-negotiation-ssl]
+server = 28-version-negotiation-server
+client = 28-version-negotiation-client
+
+[28-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[28-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-28]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[29-version-negotiation]
+ssl_conf = 29-version-negotiation-ssl
+
+[29-version-negotiation-ssl]
+server = 29-version-negotiation-server
+client = 29-version-negotiation-client
+
+[29-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[29-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-29]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[30-version-negotiation]
+ssl_conf = 30-version-negotiation-ssl
+
+[30-version-negotiation-ssl]
+server = 30-version-negotiation-server
+client = 30-version-negotiation-client
+
+[30-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[30-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-30]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[31-version-negotiation]
+ssl_conf = 31-version-negotiation-ssl
+
+[31-version-negotiation-ssl]
+server = 31-version-negotiation-server
+client = 31-version-negotiation-client
+
+[31-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[31-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-31]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[32-version-negotiation]
+ssl_conf = 32-version-negotiation-ssl
+
+[32-version-negotiation-ssl]
+server = 32-version-negotiation-server
+client = 32-version-negotiation-client
+
+[32-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[32-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-32]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[33-version-negotiation]
+ssl_conf = 33-version-negotiation-ssl
+
+[33-version-negotiation-ssl]
+server = 33-version-negotiation-server
+client = 33-version-negotiation-client
+
+[33-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[33-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-33]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[34-version-negotiation]
+ssl_conf = 34-version-negotiation-ssl
+
+[34-version-negotiation-ssl]
+server = 34-version-negotiation-server
+client = 34-version-negotiation-client
+
+[34-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[34-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-34]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[35-version-negotiation]
+ssl_conf = 35-version-negotiation-ssl
+
+[35-version-negotiation-ssl]
+server = 35-version-negotiation-server
+client = 35-version-negotiation-client
+
+[35-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[35-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-35]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[36-version-negotiation]
+ssl_conf = 36-version-negotiation-ssl
+
+[36-version-negotiation-ssl]
+server = 36-version-negotiation-server
+client = 36-version-negotiation-client
+
+[36-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[36-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-36]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[37-version-negotiation]
+ssl_conf = 37-version-negotiation-ssl
+
+[37-version-negotiation-ssl]
+server = 37-version-negotiation-server
+client = 37-version-negotiation-client
+
+[37-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[37-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-37]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[38-version-negotiation]
+ssl_conf = 38-version-negotiation-ssl
+
+[38-version-negotiation-ssl]
+server = 38-version-negotiation-server
+client = 38-version-negotiation-client
+
+[38-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[38-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-38]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[39-version-negotiation]
+ssl_conf = 39-version-negotiation-ssl
+
+[39-version-negotiation-ssl]
+server = 39-version-negotiation-server
+client = 39-version-negotiation-client
+
+[39-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[39-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-39]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[40-version-negotiation]
+ssl_conf = 40-version-negotiation-ssl
+
+[40-version-negotiation-ssl]
+server = 40-version-negotiation-server
+client = 40-version-negotiation-client
+
+[40-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[40-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-40]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[41-version-negotiation]
+ssl_conf = 41-version-negotiation-ssl
+
+[41-version-negotiation-ssl]
+server = 41-version-negotiation-server
+client = 41-version-negotiation-client
+
+[41-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[41-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-41]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[42-version-negotiation]
+ssl_conf = 42-version-negotiation-ssl
+
+[42-version-negotiation-ssl]
+server = 42-version-negotiation-server
+client = 42-version-negotiation-client
+
+[42-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[42-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-42]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[43-version-negotiation]
+ssl_conf = 43-version-negotiation-ssl
+
+[43-version-negotiation-ssl]
+server = 43-version-negotiation-server
+client = 43-version-negotiation-client
+
+[43-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[43-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-43]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[44-version-negotiation]
+ssl_conf = 44-version-negotiation-ssl
+
+[44-version-negotiation-ssl]
+server = 44-version-negotiation-server
+client = 44-version-negotiation-client
+
+[44-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[44-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-44]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[45-version-negotiation]
+ssl_conf = 45-version-negotiation-ssl
+
+[45-version-negotiation-ssl]
+server = 45-version-negotiation-server
+client = 45-version-negotiation-client
+
+[45-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[45-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-45]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[46-version-negotiation]
+ssl_conf = 46-version-negotiation-ssl
+
+[46-version-negotiation-ssl]
+server = 46-version-negotiation-server
+client = 46-version-negotiation-client
+
+[46-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[46-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-46]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[47-version-negotiation]
+ssl_conf = 47-version-negotiation-ssl
+
+[47-version-negotiation-ssl]
+server = 47-version-negotiation-server
+client = 47-version-negotiation-client
+
+[47-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[47-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-47]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[48-version-negotiation]
+ssl_conf = 48-version-negotiation-ssl
+
+[48-version-negotiation-ssl]
+server = 48-version-negotiation-server
+client = 48-version-negotiation-client
+
+[48-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[48-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-48]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[49-version-negotiation]
+ssl_conf = 49-version-negotiation-ssl
+
+[49-version-negotiation-ssl]
+server = 49-version-negotiation-server
+client = 49-version-negotiation-client
+
+[49-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[49-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-49]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[50-version-negotiation]
+ssl_conf = 50-version-negotiation-ssl
+
+[50-version-negotiation-ssl]
+server = 50-version-negotiation-server
+client = 50-version-negotiation-client
+
+[50-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[50-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-50]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[51-version-negotiation]
+ssl_conf = 51-version-negotiation-ssl
+
+[51-version-negotiation-ssl]
+server = 51-version-negotiation-server
+client = 51-version-negotiation-client
+
+[51-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[51-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-51]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[52-version-negotiation]
+ssl_conf = 52-version-negotiation-ssl
+
+[52-version-negotiation-ssl]
+server = 52-version-negotiation-server
+client = 52-version-negotiation-client
+
+[52-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[52-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-52]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[53-version-negotiation]
+ssl_conf = 53-version-negotiation-ssl
+
+[53-version-negotiation-ssl]
+server = 53-version-negotiation-server
+client = 53-version-negotiation-client
+
+[53-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[53-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-53]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[54-version-negotiation]
+ssl_conf = 54-version-negotiation-ssl
+
+[54-version-negotiation-ssl]
+server = 54-version-negotiation-server
+client = 54-version-negotiation-client
+
+[54-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[54-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-54]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[55-version-negotiation]
+ssl_conf = 55-version-negotiation-ssl
+
+[55-version-negotiation-ssl]
+server = 55-version-negotiation-server
+client = 55-version-negotiation-client
+
+[55-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[55-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-55]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[56-version-negotiation]
+ssl_conf = 56-version-negotiation-ssl
+
+[56-version-negotiation-ssl]
+server = 56-version-negotiation-server
+client = 56-version-negotiation-client
+
+[56-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[56-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-56]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[57-version-negotiation]
+ssl_conf = 57-version-negotiation-ssl
+
+[57-version-negotiation-ssl]
+server = 57-version-negotiation-server
+client = 57-version-negotiation-client
+
+[57-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[57-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-57]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[58-version-negotiation]
+ssl_conf = 58-version-negotiation-ssl
+
+[58-version-negotiation-ssl]
+server = 58-version-negotiation-server
+client = 58-version-negotiation-client
+
+[58-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[58-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-58]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[59-version-negotiation]
+ssl_conf = 59-version-negotiation-ssl
+
+[59-version-negotiation-ssl]
+server = 59-version-negotiation-server
+client = 59-version-negotiation-client
+
+[59-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[59-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-59]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[60-version-negotiation]
+ssl_conf = 60-version-negotiation-ssl
+
+[60-version-negotiation-ssl]
+server = 60-version-negotiation-server
+client = 60-version-negotiation-client
+
+[60-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[60-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-60]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[61-version-negotiation]
+ssl_conf = 61-version-negotiation-ssl
+
+[61-version-negotiation-ssl]
+server = 61-version-negotiation-server
+client = 61-version-negotiation-client
+
+[61-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[61-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-61]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[62-version-negotiation]
+ssl_conf = 62-version-negotiation-ssl
+
+[62-version-negotiation-ssl]
+server = 62-version-negotiation-server
+client = 62-version-negotiation-client
+
+[62-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[62-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-62]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[63-version-negotiation]
+ssl_conf = 63-version-negotiation-ssl
+
+[63-version-negotiation-ssl]
+server = 63-version-negotiation-server
+client = 63-version-negotiation-client
+
+[63-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[63-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-63]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[64-version-negotiation]
+ssl_conf = 64-version-negotiation-ssl
+
+[64-version-negotiation-ssl]
+server = 64-version-negotiation-server
+client = 64-version-negotiation-client
+
+[64-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[64-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-64]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[65-version-negotiation]
+ssl_conf = 65-version-negotiation-ssl
+
+[65-version-negotiation-ssl]
+server = 65-version-negotiation-server
+client = 65-version-negotiation-client
+
+[65-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[65-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-65]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[66-version-negotiation]
+ssl_conf = 66-version-negotiation-ssl
+
+[66-version-negotiation-ssl]
+server = 66-version-negotiation-server
+client = 66-version-negotiation-client
+
+[66-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[66-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-66]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[67-version-negotiation]
+ssl_conf = 67-version-negotiation-ssl
+
+[67-version-negotiation-ssl]
+server = 67-version-negotiation-server
+client = 67-version-negotiation-client
+
+[67-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[67-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-67]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[68-version-negotiation]
+ssl_conf = 68-version-negotiation-ssl
+
+[68-version-negotiation-ssl]
+server = 68-version-negotiation-server
+client = 68-version-negotiation-client
+
+[68-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[68-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-68]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[69-version-negotiation]
+ssl_conf = 69-version-negotiation-ssl
+
+[69-version-negotiation-ssl]
+server = 69-version-negotiation-server
+client = 69-version-negotiation-client
+
+[69-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[69-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-69]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[70-version-negotiation]
+ssl_conf = 70-version-negotiation-ssl
+
+[70-version-negotiation-ssl]
+server = 70-version-negotiation-server
+client = 70-version-negotiation-client
+
+[70-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[70-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-70]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[71-version-negotiation]
+ssl_conf = 71-version-negotiation-ssl
+
+[71-version-negotiation-ssl]
+server = 71-version-negotiation-server
+client = 71-version-negotiation-client
+
+[71-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[71-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-71]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[72-version-negotiation]
+ssl_conf = 72-version-negotiation-ssl
+
+[72-version-negotiation-ssl]
+server = 72-version-negotiation-server
+client = 72-version-negotiation-client
+
+[72-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[72-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-72]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[73-version-negotiation]
+ssl_conf = 73-version-negotiation-ssl
+
+[73-version-negotiation-ssl]
+server = 73-version-negotiation-server
+client = 73-version-negotiation-client
+
+[73-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[73-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-73]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[74-version-negotiation]
+ssl_conf = 74-version-negotiation-ssl
+
+[74-version-negotiation-ssl]
+server = 74-version-negotiation-server
+client = 74-version-negotiation-client
+
+[74-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[74-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-74]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[75-version-negotiation]
+ssl_conf = 75-version-negotiation-ssl
+
+[75-version-negotiation-ssl]
+server = 75-version-negotiation-server
+client = 75-version-negotiation-client
+
+[75-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[75-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-75]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[76-version-negotiation]
+ssl_conf = 76-version-negotiation-ssl
+
+[76-version-negotiation-ssl]
+server = 76-version-negotiation-server
+client = 76-version-negotiation-client
+
+[76-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[76-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-76]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[77-version-negotiation]
+ssl_conf = 77-version-negotiation-ssl
+
+[77-version-negotiation-ssl]
+server = 77-version-negotiation-server
+client = 77-version-negotiation-client
+
+[77-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[77-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-77]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[78-version-negotiation]
+ssl_conf = 78-version-negotiation-ssl
+
+[78-version-negotiation-ssl]
+server = 78-version-negotiation-server
+client = 78-version-negotiation-client
+
+[78-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[78-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-78]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[79-version-negotiation]
+ssl_conf = 79-version-negotiation-ssl
+
+[79-version-negotiation-ssl]
+server = 79-version-negotiation-server
+client = 79-version-negotiation-client
+
+[79-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[79-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-79]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[80-version-negotiation]
+ssl_conf = 80-version-negotiation-ssl
+
+[80-version-negotiation-ssl]
+server = 80-version-negotiation-server
+client = 80-version-negotiation-client
+
+[80-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[80-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-80]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[81-version-negotiation]
+ssl_conf = 81-version-negotiation-ssl
+
+[81-version-negotiation-ssl]
+server = 81-version-negotiation-server
+client = 81-version-negotiation-client
+
+[81-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[81-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-81]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[82-version-negotiation]
+ssl_conf = 82-version-negotiation-ssl
+
+[82-version-negotiation-ssl]
+server = 82-version-negotiation-server
+client = 82-version-negotiation-client
+
+[82-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[82-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-82]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[83-version-negotiation]
+ssl_conf = 83-version-negotiation-ssl
+
+[83-version-negotiation-ssl]
+server = 83-version-negotiation-server
+client = 83-version-negotiation-client
+
+[83-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[83-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-83]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[84-version-negotiation]
+ssl_conf = 84-version-negotiation-ssl
+
+[84-version-negotiation-ssl]
+server = 84-version-negotiation-server
+client = 84-version-negotiation-client
+
+[84-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[84-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-84]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[85-version-negotiation]
+ssl_conf = 85-version-negotiation-ssl
+
+[85-version-negotiation-ssl]
+server = 85-version-negotiation-server
+client = 85-version-negotiation-client
+
+[85-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[85-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-85]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[86-version-negotiation]
+ssl_conf = 86-version-negotiation-ssl
+
+[86-version-negotiation-ssl]
+server = 86-version-negotiation-server
+client = 86-version-negotiation-client
+
+[86-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[86-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-86]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[87-version-negotiation]
+ssl_conf = 87-version-negotiation-ssl
+
+[87-version-negotiation-ssl]
+server = 87-version-negotiation-server
+client = 87-version-negotiation-client
+
+[87-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[87-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-87]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[88-version-negotiation]
+ssl_conf = 88-version-negotiation-ssl
+
+[88-version-negotiation-ssl]
+server = 88-version-negotiation-server
+client = 88-version-negotiation-client
+
+[88-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[88-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-88]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[89-version-negotiation]
+ssl_conf = 89-version-negotiation-ssl
+
+[89-version-negotiation-ssl]
+server = 89-version-negotiation-server
+client = 89-version-negotiation-client
+
+[89-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[89-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-89]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[90-version-negotiation]
+ssl_conf = 90-version-negotiation-ssl
+
+[90-version-negotiation-ssl]
+server = 90-version-negotiation-server
+client = 90-version-negotiation-client
+
+[90-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[90-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-90]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[91-version-negotiation]
+ssl_conf = 91-version-negotiation-ssl
+
+[91-version-negotiation-ssl]
+server = 91-version-negotiation-server
+client = 91-version-negotiation-client
+
+[91-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[91-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-91]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[92-version-negotiation]
+ssl_conf = 92-version-negotiation-ssl
+
+[92-version-negotiation-ssl]
+server = 92-version-negotiation-server
+client = 92-version-negotiation-client
+
+[92-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[92-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-92]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[93-version-negotiation]
+ssl_conf = 93-version-negotiation-ssl
+
+[93-version-negotiation-ssl]
+server = 93-version-negotiation-server
+client = 93-version-negotiation-client
+
+[93-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[93-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-93]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[94-version-negotiation]
+ssl_conf = 94-version-negotiation-ssl
+
+[94-version-negotiation-ssl]
+server = 94-version-negotiation-server
+client = 94-version-negotiation-client
+
+[94-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[94-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-94]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[95-version-negotiation]
+ssl_conf = 95-version-negotiation-ssl
+
+[95-version-negotiation-ssl]
+server = 95-version-negotiation-server
+client = 95-version-negotiation-client
+
+[95-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[95-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-95]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[96-version-negotiation]
+ssl_conf = 96-version-negotiation-ssl
+
+[96-version-negotiation-ssl]
+server = 96-version-negotiation-server
+client = 96-version-negotiation-client
+
+[96-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[96-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-96]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[97-version-negotiation]
+ssl_conf = 97-version-negotiation-ssl
+
+[97-version-negotiation-ssl]
+server = 97-version-negotiation-server
+client = 97-version-negotiation-client
+
+[97-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[97-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-97]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[98-version-negotiation]
+ssl_conf = 98-version-negotiation-ssl
+
+[98-version-negotiation-ssl]
+server = 98-version-negotiation-server
+client = 98-version-negotiation-client
+
+[98-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[98-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-98]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[99-version-negotiation]
+ssl_conf = 99-version-negotiation-ssl
+
+[99-version-negotiation-ssl]
+server = 99-version-negotiation-server
+client = 99-version-negotiation-client
+
+[99-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[99-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-99]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[100-version-negotiation]
+ssl_conf = 100-version-negotiation-ssl
+
+[100-version-negotiation-ssl]
+server = 100-version-negotiation-server
+client = 100-version-negotiation-client
+
+[100-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[100-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-100]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[101-version-negotiation]
+ssl_conf = 101-version-negotiation-ssl
+
+[101-version-negotiation-ssl]
+server = 101-version-negotiation-server
+client = 101-version-negotiation-client
+
+[101-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[101-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-101]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[102-version-negotiation]
+ssl_conf = 102-version-negotiation-ssl
+
+[102-version-negotiation-ssl]
+server = 102-version-negotiation-server
+client = 102-version-negotiation-client
+
+[102-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[102-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-102]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[103-version-negotiation]
+ssl_conf = 103-version-negotiation-ssl
+
+[103-version-negotiation-ssl]
+server = 103-version-negotiation-server
+client = 103-version-negotiation-client
+
+[103-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[103-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-103]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[104-version-negotiation]
+ssl_conf = 104-version-negotiation-ssl
+
+[104-version-negotiation-ssl]
+server = 104-version-negotiation-server
+client = 104-version-negotiation-client
+
+[104-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[104-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-104]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[105-version-negotiation]
+ssl_conf = 105-version-negotiation-ssl
+
+[105-version-negotiation-ssl]
+server = 105-version-negotiation-server
+client = 105-version-negotiation-client
+
+[105-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[105-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-105]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[106-version-negotiation]
+ssl_conf = 106-version-negotiation-ssl
+
+[106-version-negotiation-ssl]
+server = 106-version-negotiation-server
+client = 106-version-negotiation-client
+
+[106-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[106-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-106]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[107-version-negotiation]
+ssl_conf = 107-version-negotiation-ssl
+
+[107-version-negotiation-ssl]
+server = 107-version-negotiation-server
+client = 107-version-negotiation-client
+
+[107-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[107-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-107]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[108-version-negotiation]
+ssl_conf = 108-version-negotiation-ssl
+
+[108-version-negotiation-ssl]
+server = 108-version-negotiation-server
+client = 108-version-negotiation-client
+
+[108-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[108-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-108]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[109-version-negotiation]
+ssl_conf = 109-version-negotiation-ssl
+
+[109-version-negotiation-ssl]
+server = 109-version-negotiation-server
+client = 109-version-negotiation-client
+
+[109-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[109-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-109]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[110-version-negotiation]
+ssl_conf = 110-version-negotiation-ssl
+
+[110-version-negotiation-ssl]
+server = 110-version-negotiation-server
+client = 110-version-negotiation-client
+
+[110-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[110-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-110]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[111-version-negotiation]
+ssl_conf = 111-version-negotiation-ssl
+
+[111-version-negotiation-ssl]
+server = 111-version-negotiation-server
+client = 111-version-negotiation-client
+
+[111-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[111-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-111]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[112-version-negotiation]
+ssl_conf = 112-version-negotiation-ssl
+
+[112-version-negotiation-ssl]
+server = 112-version-negotiation-server
+client = 112-version-negotiation-client
+
+[112-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[112-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-112]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[113-version-negotiation]
+ssl_conf = 113-version-negotiation-ssl
+
+[113-version-negotiation-ssl]
+server = 113-version-negotiation-server
+client = 113-version-negotiation-client
+
+[113-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[113-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-113]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[114-version-negotiation]
+ssl_conf = 114-version-negotiation-ssl
+
+[114-version-negotiation-ssl]
+server = 114-version-negotiation-server
+client = 114-version-negotiation-client
+
+[114-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[114-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-114]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[115-version-negotiation]
+ssl_conf = 115-version-negotiation-ssl
+
+[115-version-negotiation-ssl]
+server = 115-version-negotiation-server
+client = 115-version-negotiation-client
+
+[115-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[115-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-115]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[116-version-negotiation]
+ssl_conf = 116-version-negotiation-ssl
+
+[116-version-negotiation-ssl]
+server = 116-version-negotiation-server
+client = 116-version-negotiation-client
+
+[116-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[116-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-116]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[117-version-negotiation]
+ssl_conf = 117-version-negotiation-ssl
+
+[117-version-negotiation-ssl]
+server = 117-version-negotiation-server
+client = 117-version-negotiation-client
+
+[117-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[117-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-117]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[118-version-negotiation]
+ssl_conf = 118-version-negotiation-ssl
+
+[118-version-negotiation-ssl]
+server = 118-version-negotiation-server
+client = 118-version-negotiation-client
+
+[118-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[118-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-118]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[119-version-negotiation]
+ssl_conf = 119-version-negotiation-ssl
+
+[119-version-negotiation-ssl]
+server = 119-version-negotiation-server
+client = 119-version-negotiation-client
+
+[119-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[119-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-119]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[120-version-negotiation]
+ssl_conf = 120-version-negotiation-ssl
+
+[120-version-negotiation-ssl]
+server = 120-version-negotiation-server
+client = 120-version-negotiation-client
+
+[120-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[120-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-120]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[121-version-negotiation]
+ssl_conf = 121-version-negotiation-ssl
+
+[121-version-negotiation-ssl]
+server = 121-version-negotiation-server
+client = 121-version-negotiation-client
+
+[121-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[121-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-121]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[122-version-negotiation]
+ssl_conf = 122-version-negotiation-ssl
+
+[122-version-negotiation-ssl]
+server = 122-version-negotiation-server
+client = 122-version-negotiation-client
+
+[122-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[122-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-122]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[123-version-negotiation]
+ssl_conf = 123-version-negotiation-ssl
+
+[123-version-negotiation-ssl]
+server = 123-version-negotiation-server
+client = 123-version-negotiation-client
+
+[123-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[123-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-123]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[124-version-negotiation]
+ssl_conf = 124-version-negotiation-ssl
+
+[124-version-negotiation-ssl]
+server = 124-version-negotiation-server
+client = 124-version-negotiation-client
+
+[124-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[124-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-124]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[125-version-negotiation]
+ssl_conf = 125-version-negotiation-ssl
+
+[125-version-negotiation-ssl]
+server = 125-version-negotiation-server
+client = 125-version-negotiation-client
+
+[125-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[125-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-125]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[126-version-negotiation]
+ssl_conf = 126-version-negotiation-ssl
+
+[126-version-negotiation-ssl]
+server = 126-version-negotiation-server
+client = 126-version-negotiation-client
+
+[126-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[126-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-126]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[127-version-negotiation]
+ssl_conf = 127-version-negotiation-ssl
+
+[127-version-negotiation-ssl]
+server = 127-version-negotiation-server
+client = 127-version-negotiation-client
+
+[127-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[127-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-127]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[128-version-negotiation]
+ssl_conf = 128-version-negotiation-ssl
+
+[128-version-negotiation-ssl]
+server = 128-version-negotiation-server
+client = 128-version-negotiation-client
+
+[128-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[128-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-128]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[129-version-negotiation]
+ssl_conf = 129-version-negotiation-ssl
+
+[129-version-negotiation-ssl]
+server = 129-version-negotiation-server
+client = 129-version-negotiation-client
+
+[129-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[129-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-129]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[130-version-negotiation]
+ssl_conf = 130-version-negotiation-ssl
+
+[130-version-negotiation-ssl]
+server = 130-version-negotiation-server
+client = 130-version-negotiation-client
+
+[130-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[130-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-130]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[131-version-negotiation]
+ssl_conf = 131-version-negotiation-ssl
+
+[131-version-negotiation-ssl]
+server = 131-version-negotiation-server
+client = 131-version-negotiation-client
+
+[131-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[131-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-131]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[132-version-negotiation]
+ssl_conf = 132-version-negotiation-ssl
+
+[132-version-negotiation-ssl]
+server = 132-version-negotiation-server
+client = 132-version-negotiation-client
+
+[132-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[132-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-132]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[133-version-negotiation]
+ssl_conf = 133-version-negotiation-ssl
+
+[133-version-negotiation-ssl]
+server = 133-version-negotiation-server
+client = 133-version-negotiation-client
+
+[133-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[133-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-133]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[134-version-negotiation]
+ssl_conf = 134-version-negotiation-ssl
+
+[134-version-negotiation-ssl]
+server = 134-version-negotiation-server
+client = 134-version-negotiation-client
+
+[134-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[134-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-134]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[135-version-negotiation]
+ssl_conf = 135-version-negotiation-ssl
+
+[135-version-negotiation-ssl]
+server = 135-version-negotiation-server
+client = 135-version-negotiation-client
+
+[135-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[135-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-135]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[136-version-negotiation]
+ssl_conf = 136-version-negotiation-ssl
+
+[136-version-negotiation-ssl]
+server = 136-version-negotiation-server
+client = 136-version-negotiation-client
+
+[136-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[136-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-136]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[137-version-negotiation]
+ssl_conf = 137-version-negotiation-ssl
+
+[137-version-negotiation-ssl]
+server = 137-version-negotiation-server
+client = 137-version-negotiation-client
+
+[137-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[137-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-137]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[138-version-negotiation]
+ssl_conf = 138-version-negotiation-ssl
+
+[138-version-negotiation-ssl]
+server = 138-version-negotiation-server
+client = 138-version-negotiation-client
+
+[138-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[138-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-138]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[139-version-negotiation]
+ssl_conf = 139-version-negotiation-ssl
+
+[139-version-negotiation-ssl]
+server = 139-version-negotiation-server
+client = 139-version-negotiation-client
+
+[139-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[139-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-139]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[140-version-negotiation]
+ssl_conf = 140-version-negotiation-ssl
+
+[140-version-negotiation-ssl]
+server = 140-version-negotiation-server
+client = 140-version-negotiation-client
+
+[140-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[140-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-140]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[141-version-negotiation]
+ssl_conf = 141-version-negotiation-ssl
+
+[141-version-negotiation-ssl]
+server = 141-version-negotiation-server
+client = 141-version-negotiation-client
+
+[141-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[141-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-141]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[142-version-negotiation]
+ssl_conf = 142-version-negotiation-ssl
+
+[142-version-negotiation-ssl]
+server = 142-version-negotiation-server
+client = 142-version-negotiation-client
+
+[142-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[142-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-142]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[143-version-negotiation]
+ssl_conf = 143-version-negotiation-ssl
+
+[143-version-negotiation-ssl]
+server = 143-version-negotiation-server
+client = 143-version-negotiation-client
+
+[143-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[143-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-143]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[144-version-negotiation]
+ssl_conf = 144-version-negotiation-ssl
+
+[144-version-negotiation-ssl]
+server = 144-version-negotiation-server
+client = 144-version-negotiation-client
+
+[144-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[144-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-144]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[145-version-negotiation]
+ssl_conf = 145-version-negotiation-ssl
+
+[145-version-negotiation-ssl]
+server = 145-version-negotiation-server
+client = 145-version-negotiation-client
+
+[145-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[145-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-145]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[146-version-negotiation]
+ssl_conf = 146-version-negotiation-ssl
+
+[146-version-negotiation-ssl]
+server = 146-version-negotiation-server
+client = 146-version-negotiation-client
+
+[146-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[146-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-146]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[147-version-negotiation]
+ssl_conf = 147-version-negotiation-ssl
+
+[147-version-negotiation-ssl]
+server = 147-version-negotiation-server
+client = 147-version-negotiation-client
+
+[147-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[147-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-147]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[148-version-negotiation]
+ssl_conf = 148-version-negotiation-ssl
+
+[148-version-negotiation-ssl]
+server = 148-version-negotiation-server
+client = 148-version-negotiation-client
+
+[148-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[148-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-148]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[149-version-negotiation]
+ssl_conf = 149-version-negotiation-ssl
+
+[149-version-negotiation-ssl]
+server = 149-version-negotiation-server
+client = 149-version-negotiation-client
+
+[149-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[149-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-149]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[150-version-negotiation]
+ssl_conf = 150-version-negotiation-ssl
+
+[150-version-negotiation-ssl]
+server = 150-version-negotiation-server
+client = 150-version-negotiation-client
+
+[150-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[150-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-150]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[151-version-negotiation]
+ssl_conf = 151-version-negotiation-ssl
+
+[151-version-negotiation-ssl]
+server = 151-version-negotiation-server
+client = 151-version-negotiation-client
+
+[151-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[151-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-151]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[152-version-negotiation]
+ssl_conf = 152-version-negotiation-ssl
+
+[152-version-negotiation-ssl]
+server = 152-version-negotiation-server
+client = 152-version-negotiation-client
+
+[152-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[152-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-152]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[153-version-negotiation]
+ssl_conf = 153-version-negotiation-ssl
+
+[153-version-negotiation-ssl]
+server = 153-version-negotiation-server
+client = 153-version-negotiation-client
+
+[153-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[153-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-153]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[154-version-negotiation]
+ssl_conf = 154-version-negotiation-ssl
+
+[154-version-negotiation-ssl]
+server = 154-version-negotiation-server
+client = 154-version-negotiation-client
+
+[154-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[154-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-154]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[155-version-negotiation]
+ssl_conf = 155-version-negotiation-ssl
+
+[155-version-negotiation-ssl]
+server = 155-version-negotiation-server
+client = 155-version-negotiation-client
+
+[155-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[155-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-155]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[156-version-negotiation]
+ssl_conf = 156-version-negotiation-ssl
+
+[156-version-negotiation-ssl]
+server = 156-version-negotiation-server
+client = 156-version-negotiation-client
+
+[156-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[156-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-156]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[157-version-negotiation]
+ssl_conf = 157-version-negotiation-ssl
+
+[157-version-negotiation-ssl]
+server = 157-version-negotiation-server
+client = 157-version-negotiation-client
+
+[157-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[157-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-157]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[158-version-negotiation]
+ssl_conf = 158-version-negotiation-ssl
+
+[158-version-negotiation-ssl]
+server = 158-version-negotiation-server
+client = 158-version-negotiation-client
+
+[158-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[158-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-158]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[159-version-negotiation]
+ssl_conf = 159-version-negotiation-ssl
+
+[159-version-negotiation-ssl]
+server = 159-version-negotiation-server
+client = 159-version-negotiation-client
+
+[159-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[159-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-159]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[160-version-negotiation]
+ssl_conf = 160-version-negotiation-ssl
+
+[160-version-negotiation-ssl]
+server = 160-version-negotiation-server
+client = 160-version-negotiation-client
+
+[160-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[160-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-160]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[161-version-negotiation]
+ssl_conf = 161-version-negotiation-ssl
+
+[161-version-negotiation-ssl]
+server = 161-version-negotiation-server
+client = 161-version-negotiation-client
+
+[161-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[161-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-161]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[162-version-negotiation]
+ssl_conf = 162-version-negotiation-ssl
+
+[162-version-negotiation-ssl]
+server = 162-version-negotiation-server
+client = 162-version-negotiation-client
+
+[162-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[162-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-162]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[163-version-negotiation]
+ssl_conf = 163-version-negotiation-ssl
+
+[163-version-negotiation-ssl]
+server = 163-version-negotiation-server
+client = 163-version-negotiation-client
+
+[163-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[163-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-163]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[164-version-negotiation]
+ssl_conf = 164-version-negotiation-ssl
+
+[164-version-negotiation-ssl]
+server = 164-version-negotiation-server
+client = 164-version-negotiation-client
+
+[164-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[164-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-164]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[165-version-negotiation]
+ssl_conf = 165-version-negotiation-ssl
+
+[165-version-negotiation-ssl]
+server = 165-version-negotiation-server
+client = 165-version-negotiation-client
+
+[165-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[165-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-165]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[166-version-negotiation]
+ssl_conf = 166-version-negotiation-ssl
+
+[166-version-negotiation-ssl]
+server = 166-version-negotiation-server
+client = 166-version-negotiation-client
+
+[166-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[166-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-166]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[167-version-negotiation]
+ssl_conf = 167-version-negotiation-ssl
+
+[167-version-negotiation-ssl]
+server = 167-version-negotiation-server
+client = 167-version-negotiation-client
+
+[167-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[167-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-167]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[168-version-negotiation]
+ssl_conf = 168-version-negotiation-ssl
+
+[168-version-negotiation-ssl]
+server = 168-version-negotiation-server
+client = 168-version-negotiation-client
+
+[168-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[168-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-168]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[169-version-negotiation]
+ssl_conf = 169-version-negotiation-ssl
+
+[169-version-negotiation-ssl]
+server = 169-version-negotiation-server
+client = 169-version-negotiation-client
+
+[169-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[169-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-169]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[170-version-negotiation]
+ssl_conf = 170-version-negotiation-ssl
+
+[170-version-negotiation-ssl]
+server = 170-version-negotiation-server
+client = 170-version-negotiation-client
+
+[170-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[170-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-170]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[171-version-negotiation]
+ssl_conf = 171-version-negotiation-ssl
+
+[171-version-negotiation-ssl]
+server = 171-version-negotiation-server
+client = 171-version-negotiation-client
+
+[171-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[171-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-171]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[172-version-negotiation]
+ssl_conf = 172-version-negotiation-ssl
+
+[172-version-negotiation-ssl]
+server = 172-version-negotiation-server
+client = 172-version-negotiation-client
+
+[172-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[172-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-172]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[173-version-negotiation]
+ssl_conf = 173-version-negotiation-ssl
+
+[173-version-negotiation-ssl]
+server = 173-version-negotiation-server
+client = 173-version-negotiation-client
+
+[173-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[173-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-173]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[174-version-negotiation]
+ssl_conf = 174-version-negotiation-ssl
+
+[174-version-negotiation-ssl]
+server = 174-version-negotiation-server
+client = 174-version-negotiation-client
+
+[174-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[174-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-174]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[175-version-negotiation]
+ssl_conf = 175-version-negotiation-ssl
+
+[175-version-negotiation-ssl]
+server = 175-version-negotiation-server
+client = 175-version-negotiation-client
+
+[175-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[175-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-175]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[176-version-negotiation]
+ssl_conf = 176-version-negotiation-ssl
+
+[176-version-negotiation-ssl]
+server = 176-version-negotiation-server
+client = 176-version-negotiation-client
+
+[176-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[176-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-176]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[177-version-negotiation]
+ssl_conf = 177-version-negotiation-ssl
+
+[177-version-negotiation-ssl]
+server = 177-version-negotiation-server
+client = 177-version-negotiation-client
+
+[177-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[177-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-177]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[178-version-negotiation]
+ssl_conf = 178-version-negotiation-ssl
+
+[178-version-negotiation-ssl]
+server = 178-version-negotiation-server
+client = 178-version-negotiation-client
+
+[178-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[178-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-178]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[179-version-negotiation]
+ssl_conf = 179-version-negotiation-ssl
+
+[179-version-negotiation-ssl]
+server = 179-version-negotiation-server
+client = 179-version-negotiation-client
+
+[179-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[179-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-179]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[180-version-negotiation]
+ssl_conf = 180-version-negotiation-ssl
+
+[180-version-negotiation-ssl]
+server = 180-version-negotiation-server
+client = 180-version-negotiation-client
+
+[180-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[180-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-180]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[181-version-negotiation]
+ssl_conf = 181-version-negotiation-ssl
+
+[181-version-negotiation-ssl]
+server = 181-version-negotiation-server
+client = 181-version-negotiation-client
+
+[181-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[181-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-181]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[182-version-negotiation]
+ssl_conf = 182-version-negotiation-ssl
+
+[182-version-negotiation-ssl]
+server = 182-version-negotiation-server
+client = 182-version-negotiation-client
+
+[182-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[182-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-182]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[183-version-negotiation]
+ssl_conf = 183-version-negotiation-ssl
+
+[183-version-negotiation-ssl]
+server = 183-version-negotiation-server
+client = 183-version-negotiation-client
+
+[183-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[183-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-183]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[184-version-negotiation]
+ssl_conf = 184-version-negotiation-ssl
+
+[184-version-negotiation-ssl]
+server = 184-version-negotiation-server
+client = 184-version-negotiation-client
+
+[184-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[184-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-184]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[185-version-negotiation]
+ssl_conf = 185-version-negotiation-ssl
+
+[185-version-negotiation-ssl]
+server = 185-version-negotiation-server
+client = 185-version-negotiation-client
+
+[185-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[185-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-185]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[186-version-negotiation]
+ssl_conf = 186-version-negotiation-ssl
+
+[186-version-negotiation-ssl]
+server = 186-version-negotiation-server
+client = 186-version-negotiation-client
+
+[186-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[186-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-186]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[187-version-negotiation]
+ssl_conf = 187-version-negotiation-ssl
+
+[187-version-negotiation-ssl]
+server = 187-version-negotiation-server
+client = 187-version-negotiation-client
+
+[187-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[187-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-187]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[188-version-negotiation]
+ssl_conf = 188-version-negotiation-ssl
+
+[188-version-negotiation-ssl]
+server = 188-version-negotiation-server
+client = 188-version-negotiation-client
+
+[188-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[188-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-188]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[189-version-negotiation]
+ssl_conf = 189-version-negotiation-ssl
+
+[189-version-negotiation-ssl]
+server = 189-version-negotiation-server
+client = 189-version-negotiation-client
+
+[189-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[189-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-189]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[190-version-negotiation]
+ssl_conf = 190-version-negotiation-ssl
+
+[190-version-negotiation-ssl]
+server = 190-version-negotiation-server
+client = 190-version-negotiation-client
+
+[190-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[190-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-190]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[191-version-negotiation]
+ssl_conf = 191-version-negotiation-ssl
+
+[191-version-negotiation-ssl]
+server = 191-version-negotiation-server
+client = 191-version-negotiation-client
+
+[191-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[191-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-191]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[192-version-negotiation]
+ssl_conf = 192-version-negotiation-ssl
+
+[192-version-negotiation-ssl]
+server = 192-version-negotiation-server
+client = 192-version-negotiation-client
+
+[192-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[192-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-192]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[193-version-negotiation]
+ssl_conf = 193-version-negotiation-ssl
+
+[193-version-negotiation-ssl]
+server = 193-version-negotiation-server
+client = 193-version-negotiation-client
+
+[193-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[193-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-193]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[194-version-negotiation]
+ssl_conf = 194-version-negotiation-ssl
+
+[194-version-negotiation-ssl]
+server = 194-version-negotiation-server
+client = 194-version-negotiation-client
+
+[194-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[194-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-194]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[195-version-negotiation]
+ssl_conf = 195-version-negotiation-ssl
+
+[195-version-negotiation-ssl]
+server = 195-version-negotiation-server
+client = 195-version-negotiation-client
+
+[195-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[195-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-195]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[196-version-negotiation]
+ssl_conf = 196-version-negotiation-ssl
+
+[196-version-negotiation-ssl]
+server = 196-version-negotiation-server
+client = 196-version-negotiation-client
+
+[196-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[196-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-196]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[197-version-negotiation]
+ssl_conf = 197-version-negotiation-ssl
+
+[197-version-negotiation-ssl]
+server = 197-version-negotiation-server
+client = 197-version-negotiation-client
+
+[197-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[197-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-197]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[198-version-negotiation]
+ssl_conf = 198-version-negotiation-ssl
+
+[198-version-negotiation-ssl]
+server = 198-version-negotiation-server
+client = 198-version-negotiation-client
+
+[198-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[198-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-198]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[199-version-negotiation]
+ssl_conf = 199-version-negotiation-ssl
+
+[199-version-negotiation-ssl]
+server = 199-version-negotiation-server
+client = 199-version-negotiation-client
+
+[199-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[199-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-199]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[200-version-negotiation]
+ssl_conf = 200-version-negotiation-ssl
+
+[200-version-negotiation-ssl]
+server = 200-version-negotiation-server
+client = 200-version-negotiation-client
+
+[200-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[200-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-200]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[201-version-negotiation]
+ssl_conf = 201-version-negotiation-ssl
+
+[201-version-negotiation-ssl]
+server = 201-version-negotiation-server
+client = 201-version-negotiation-client
+
+[201-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[201-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-201]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[202-version-negotiation]
+ssl_conf = 202-version-negotiation-ssl
+
+[202-version-negotiation-ssl]
+server = 202-version-negotiation-server
+client = 202-version-negotiation-client
+
+[202-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[202-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-202]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[203-version-negotiation]
+ssl_conf = 203-version-negotiation-ssl
+
+[203-version-negotiation-ssl]
+server = 203-version-negotiation-server
+client = 203-version-negotiation-client
+
+[203-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[203-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-203]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[204-version-negotiation]
+ssl_conf = 204-version-negotiation-ssl
+
+[204-version-negotiation-ssl]
+server = 204-version-negotiation-server
+client = 204-version-negotiation-client
+
+[204-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[204-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-204]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[205-version-negotiation]
+ssl_conf = 205-version-negotiation-ssl
+
+[205-version-negotiation-ssl]
+server = 205-version-negotiation-server
+client = 205-version-negotiation-client
+
+[205-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[205-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-205]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[206-version-negotiation]
+ssl_conf = 206-version-negotiation-ssl
+
+[206-version-negotiation-ssl]
+server = 206-version-negotiation-server
+client = 206-version-negotiation-client
+
+[206-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[206-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-206]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[207-version-negotiation]
+ssl_conf = 207-version-negotiation-ssl
+
+[207-version-negotiation-ssl]
+server = 207-version-negotiation-server
+client = 207-version-negotiation-client
+
+[207-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[207-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-207]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[208-version-negotiation]
+ssl_conf = 208-version-negotiation-ssl
+
+[208-version-negotiation-ssl]
+server = 208-version-negotiation-server
+client = 208-version-negotiation-client
+
+[208-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[208-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-208]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[209-version-negotiation]
+ssl_conf = 209-version-negotiation-ssl
+
+[209-version-negotiation-ssl]
+server = 209-version-negotiation-server
+client = 209-version-negotiation-client
+
+[209-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[209-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-209]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[210-version-negotiation]
+ssl_conf = 210-version-negotiation-ssl
+
+[210-version-negotiation-ssl]
+server = 210-version-negotiation-server
+client = 210-version-negotiation-client
+
+[210-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[210-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-210]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[211-version-negotiation]
+ssl_conf = 211-version-negotiation-ssl
+
+[211-version-negotiation-ssl]
+server = 211-version-negotiation-server
+client = 211-version-negotiation-client
+
+[211-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[211-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-211]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[212-version-negotiation]
+ssl_conf = 212-version-negotiation-ssl
+
+[212-version-negotiation-ssl]
+server = 212-version-negotiation-server
+client = 212-version-negotiation-client
+
+[212-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[212-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-212]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[213-version-negotiation]
+ssl_conf = 213-version-negotiation-ssl
+
+[213-version-negotiation-ssl]
+server = 213-version-negotiation-server
+client = 213-version-negotiation-client
+
+[213-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[213-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-213]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[214-version-negotiation]
+ssl_conf = 214-version-negotiation-ssl
+
+[214-version-negotiation-ssl]
+server = 214-version-negotiation-server
+client = 214-version-negotiation-client
+
+[214-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[214-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-214]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[215-version-negotiation]
+ssl_conf = 215-version-negotiation-ssl
+
+[215-version-negotiation-ssl]
+server = 215-version-negotiation-server
+client = 215-version-negotiation-client
+
+[215-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[215-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-215]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[216-version-negotiation]
+ssl_conf = 216-version-negotiation-ssl
+
+[216-version-negotiation-ssl]
+server = 216-version-negotiation-server
+client = 216-version-negotiation-client
+
+[216-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[216-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-216]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[217-version-negotiation]
+ssl_conf = 217-version-negotiation-ssl
+
+[217-version-negotiation-ssl]
+server = 217-version-negotiation-server
+client = 217-version-negotiation-client
+
+[217-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[217-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-217]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[218-version-negotiation]
+ssl_conf = 218-version-negotiation-ssl
+
+[218-version-negotiation-ssl]
+server = 218-version-negotiation-server
+client = 218-version-negotiation-client
+
+[218-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[218-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-218]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[219-version-negotiation]
+ssl_conf = 219-version-negotiation-ssl
+
+[219-version-negotiation-ssl]
+server = 219-version-negotiation-server
+client = 219-version-negotiation-client
+
+[219-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[219-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-219]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[220-version-negotiation]
+ssl_conf = 220-version-negotiation-ssl
+
+[220-version-negotiation-ssl]
+server = 220-version-negotiation-server
+client = 220-version-negotiation-client
+
+[220-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[220-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-220]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[221-version-negotiation]
+ssl_conf = 221-version-negotiation-ssl
+
+[221-version-negotiation-ssl]
+server = 221-version-negotiation-server
+client = 221-version-negotiation-client
+
+[221-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[221-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-221]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[222-version-negotiation]
+ssl_conf = 222-version-negotiation-ssl
+
+[222-version-negotiation-ssl]
+server = 222-version-negotiation-server
+client = 222-version-negotiation-client
+
+[222-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[222-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-222]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[223-version-negotiation]
+ssl_conf = 223-version-negotiation-ssl
+
+[223-version-negotiation-ssl]
+server = 223-version-negotiation-server
+client = 223-version-negotiation-client
+
+[223-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[223-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-223]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[224-version-negotiation]
+ssl_conf = 224-version-negotiation-ssl
+
+[224-version-negotiation-ssl]
+server = 224-version-negotiation-server
+client = 224-version-negotiation-client
+
+[224-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[224-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-224]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[225-version-negotiation]
+ssl_conf = 225-version-negotiation-ssl
+
+[225-version-negotiation-ssl]
+server = 225-version-negotiation-server
+client = 225-version-negotiation-client
+
+[225-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[225-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-225]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[226-version-negotiation]
+ssl_conf = 226-version-negotiation-ssl
+
+[226-version-negotiation-ssl]
+server = 226-version-negotiation-server
+client = 226-version-negotiation-client
+
+[226-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[226-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-226]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[227-version-negotiation]
+ssl_conf = 227-version-negotiation-ssl
+
+[227-version-negotiation-ssl]
+server = 227-version-negotiation-server
+client = 227-version-negotiation-client
+
+[227-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[227-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-227]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[228-version-negotiation]
+ssl_conf = 228-version-negotiation-ssl
+
+[228-version-negotiation-ssl]
+server = 228-version-negotiation-server
+client = 228-version-negotiation-client
+
+[228-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[228-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-228]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[229-version-negotiation]
+ssl_conf = 229-version-negotiation-ssl
+
+[229-version-negotiation-ssl]
+server = 229-version-negotiation-server
+client = 229-version-negotiation-client
+
+[229-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[229-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-229]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[230-version-negotiation]
+ssl_conf = 230-version-negotiation-ssl
+
+[230-version-negotiation-ssl]
+server = 230-version-negotiation-server
+client = 230-version-negotiation-client
+
+[230-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[230-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-230]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[231-version-negotiation]
+ssl_conf = 231-version-negotiation-ssl
+
+[231-version-negotiation-ssl]
+server = 231-version-negotiation-server
+client = 231-version-negotiation-client
+
+[231-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[231-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-231]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[232-version-negotiation]
+ssl_conf = 232-version-negotiation-ssl
+
+[232-version-negotiation-ssl]
+server = 232-version-negotiation-server
+client = 232-version-negotiation-client
+
+[232-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[232-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-232]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[233-version-negotiation]
+ssl_conf = 233-version-negotiation-ssl
+
+[233-version-negotiation-ssl]
+server = 233-version-negotiation-server
+client = 233-version-negotiation-client
+
+[233-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[233-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-233]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[234-version-negotiation]
+ssl_conf = 234-version-negotiation-ssl
+
+[234-version-negotiation-ssl]
+server = 234-version-negotiation-server
+client = 234-version-negotiation-client
+
+[234-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[234-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-234]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[235-version-negotiation]
+ssl_conf = 235-version-negotiation-ssl
+
+[235-version-negotiation-ssl]
+server = 235-version-negotiation-server
+client = 235-version-negotiation-client
+
+[235-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[235-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-235]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[236-version-negotiation]
+ssl_conf = 236-version-negotiation-ssl
+
+[236-version-negotiation-ssl]
+server = 236-version-negotiation-server
+client = 236-version-negotiation-client
+
+[236-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[236-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-236]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[237-version-negotiation]
+ssl_conf = 237-version-negotiation-ssl
+
+[237-version-negotiation-ssl]
+server = 237-version-negotiation-server
+client = 237-version-negotiation-client
+
+[237-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[237-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-237]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[238-version-negotiation]
+ssl_conf = 238-version-negotiation-ssl
+
+[238-version-negotiation-ssl]
+server = 238-version-negotiation-server
+client = 238-version-negotiation-client
+
+[238-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[238-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-238]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[239-version-negotiation]
+ssl_conf = 239-version-negotiation-ssl
+
+[239-version-negotiation-ssl]
+server = 239-version-negotiation-server
+client = 239-version-negotiation-client
+
+[239-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[239-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-239]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[240-version-negotiation]
+ssl_conf = 240-version-negotiation-ssl
+
+[240-version-negotiation-ssl]
+server = 240-version-negotiation-server
+client = 240-version-negotiation-client
+
+[240-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[240-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-240]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[241-version-negotiation]
+ssl_conf = 241-version-negotiation-ssl
+
+[241-version-negotiation-ssl]
+server = 241-version-negotiation-server
+client = 241-version-negotiation-client
+
+[241-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[241-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-241]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[242-version-negotiation]
+ssl_conf = 242-version-negotiation-ssl
+
+[242-version-negotiation-ssl]
+server = 242-version-negotiation-server
+client = 242-version-negotiation-client
+
+[242-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[242-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-242]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[243-version-negotiation]
+ssl_conf = 243-version-negotiation-ssl
+
+[243-version-negotiation-ssl]
+server = 243-version-negotiation-server
+client = 243-version-negotiation-client
+
+[243-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[243-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-243]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[244-version-negotiation]
+ssl_conf = 244-version-negotiation-ssl
+
+[244-version-negotiation-ssl]
+server = 244-version-negotiation-server
+client = 244-version-negotiation-client
+
+[244-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[244-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-244]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[245-version-negotiation]
+ssl_conf = 245-version-negotiation-ssl
+
+[245-version-negotiation-ssl]
+server = 245-version-negotiation-server
+client = 245-version-negotiation-client
+
+[245-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[245-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-245]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[246-version-negotiation]
+ssl_conf = 246-version-negotiation-ssl
+
+[246-version-negotiation-ssl]
+server = 246-version-negotiation-server
+client = 246-version-negotiation-client
+
+[246-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[246-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-246]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[247-version-negotiation]
+ssl_conf = 247-version-negotiation-ssl
+
+[247-version-negotiation-ssl]
+server = 247-version-negotiation-server
+client = 247-version-negotiation-client
+
+[247-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[247-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-247]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[248-version-negotiation]
+ssl_conf = 248-version-negotiation-ssl
+
+[248-version-negotiation-ssl]
+server = 248-version-negotiation-server
+client = 248-version-negotiation-client
+
+[248-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[248-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-248]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[249-version-negotiation]
+ssl_conf = 249-version-negotiation-ssl
+
+[249-version-negotiation-ssl]
+server = 249-version-negotiation-server
+client = 249-version-negotiation-client
+
+[249-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[249-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-249]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[250-version-negotiation]
+ssl_conf = 250-version-negotiation-ssl
+
+[250-version-negotiation-ssl]
+server = 250-version-negotiation-server
+client = 250-version-negotiation-client
+
+[250-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[250-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-250]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[251-version-negotiation]
+ssl_conf = 251-version-negotiation-ssl
+
+[251-version-negotiation-ssl]
+server = 251-version-negotiation-server
+client = 251-version-negotiation-client
+
+[251-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[251-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-251]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[252-version-negotiation]
+ssl_conf = 252-version-negotiation-ssl
+
+[252-version-negotiation-ssl]
+server = 252-version-negotiation-server
+client = 252-version-negotiation-client
+
+[252-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[252-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-252]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[253-version-negotiation]
+ssl_conf = 253-version-negotiation-ssl
+
+[253-version-negotiation-ssl]
+server = 253-version-negotiation-server
+client = 253-version-negotiation-client
+
+[253-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[253-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-253]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[254-version-negotiation]
+ssl_conf = 254-version-negotiation-ssl
+
+[254-version-negotiation-ssl]
+server = 254-version-negotiation-server
+client = 254-version-negotiation-client
+
+[254-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[254-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-254]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[255-version-negotiation]
+ssl_conf = 255-version-negotiation-ssl
+
+[255-version-negotiation-ssl]
+server = 255-version-negotiation-server
+client = 255-version-negotiation-client
+
+[255-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[255-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-255]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[256-version-negotiation]
+ssl_conf = 256-version-negotiation-ssl
+
+[256-version-negotiation-ssl]
+server = 256-version-negotiation-server
+client = 256-version-negotiation-client
+
+[256-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[256-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-256]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[257-version-negotiation]
+ssl_conf = 257-version-negotiation-ssl
+
+[257-version-negotiation-ssl]
+server = 257-version-negotiation-server
+client = 257-version-negotiation-client
+
+[257-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[257-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-257]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[258-version-negotiation]
+ssl_conf = 258-version-negotiation-ssl
+
+[258-version-negotiation-ssl]
+server = 258-version-negotiation-server
+client = 258-version-negotiation-client
+
+[258-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[258-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-258]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[259-version-negotiation]
+ssl_conf = 259-version-negotiation-ssl
+
+[259-version-negotiation-ssl]
+server = 259-version-negotiation-server
+client = 259-version-negotiation-client
+
+[259-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[259-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-259]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[260-version-negotiation]
+ssl_conf = 260-version-negotiation-ssl
+
+[260-version-negotiation-ssl]
+server = 260-version-negotiation-server
+client = 260-version-negotiation-client
+
+[260-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[260-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-260]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[261-version-negotiation]
+ssl_conf = 261-version-negotiation-ssl
+
+[261-version-negotiation-ssl]
+server = 261-version-negotiation-server
+client = 261-version-negotiation-client
+
+[261-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[261-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-261]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[262-version-negotiation]
+ssl_conf = 262-version-negotiation-ssl
+
+[262-version-negotiation-ssl]
+server = 262-version-negotiation-server
+client = 262-version-negotiation-client
+
+[262-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[262-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-262]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[263-version-negotiation]
+ssl_conf = 263-version-negotiation-ssl
+
+[263-version-negotiation-ssl]
+server = 263-version-negotiation-server
+client = 263-version-negotiation-client
+
+[263-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[263-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-263]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[264-version-negotiation]
+ssl_conf = 264-version-negotiation-ssl
+
+[264-version-negotiation-ssl]
+server = 264-version-negotiation-server
+client = 264-version-negotiation-client
+
+[264-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[264-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-264]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[265-version-negotiation]
+ssl_conf = 265-version-negotiation-ssl
+
+[265-version-negotiation-ssl]
+server = 265-version-negotiation-server
+client = 265-version-negotiation-client
+
+[265-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[265-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-265]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[266-version-negotiation]
+ssl_conf = 266-version-negotiation-ssl
+
+[266-version-negotiation-ssl]
+server = 266-version-negotiation-server
+client = 266-version-negotiation-client
+
+[266-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[266-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-266]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[267-version-negotiation]
+ssl_conf = 267-version-negotiation-ssl
+
+[267-version-negotiation-ssl]
+server = 267-version-negotiation-server
+client = 267-version-negotiation-client
+
+[267-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[267-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-267]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[268-version-negotiation]
+ssl_conf = 268-version-negotiation-ssl
+
+[268-version-negotiation-ssl]
+server = 268-version-negotiation-server
+client = 268-version-negotiation-client
+
+[268-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[268-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-268]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[269-version-negotiation]
+ssl_conf = 269-version-negotiation-ssl
+
+[269-version-negotiation-ssl]
+server = 269-version-negotiation-server
+client = 269-version-negotiation-client
+
+[269-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[269-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-269]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[270-version-negotiation]
+ssl_conf = 270-version-negotiation-ssl
+
+[270-version-negotiation-ssl]
+server = 270-version-negotiation-server
+client = 270-version-negotiation-client
+
+[270-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[270-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-270]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[271-version-negotiation]
+ssl_conf = 271-version-negotiation-ssl
+
+[271-version-negotiation-ssl]
+server = 271-version-negotiation-server
+client = 271-version-negotiation-client
+
+[271-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[271-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-271]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[272-version-negotiation]
+ssl_conf = 272-version-negotiation-ssl
+
+[272-version-negotiation-ssl]
+server = 272-version-negotiation-server
+client = 272-version-negotiation-client
+
+[272-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[272-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-272]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[273-version-negotiation]
+ssl_conf = 273-version-negotiation-ssl
+
+[273-version-negotiation-ssl]
+server = 273-version-negotiation-server
+client = 273-version-negotiation-client
+
+[273-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[273-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-273]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[274-version-negotiation]
+ssl_conf = 274-version-negotiation-ssl
+
+[274-version-negotiation-ssl]
+server = 274-version-negotiation-server
+client = 274-version-negotiation-client
+
+[274-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[274-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-274]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[275-version-negotiation]
+ssl_conf = 275-version-negotiation-ssl
+
+[275-version-negotiation-ssl]
+server = 275-version-negotiation-server
+client = 275-version-negotiation-client
+
+[275-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[275-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-275]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[276-version-negotiation]
+ssl_conf = 276-version-negotiation-ssl
+
+[276-version-negotiation-ssl]
+server = 276-version-negotiation-server
+client = 276-version-negotiation-client
+
+[276-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[276-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-276]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[277-version-negotiation]
+ssl_conf = 277-version-negotiation-ssl
+
+[277-version-negotiation-ssl]
+server = 277-version-negotiation-server
+client = 277-version-negotiation-client
+
+[277-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[277-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-277]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[278-version-negotiation]
+ssl_conf = 278-version-negotiation-ssl
+
+[278-version-negotiation-ssl]
+server = 278-version-negotiation-server
+client = 278-version-negotiation-client
+
+[278-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[278-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-278]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[279-version-negotiation]
+ssl_conf = 279-version-negotiation-ssl
+
+[279-version-negotiation-ssl]
+server = 279-version-negotiation-server
+client = 279-version-negotiation-client
+
+[279-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[279-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-279]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[280-version-negotiation]
+ssl_conf = 280-version-negotiation-ssl
+
+[280-version-negotiation-ssl]
+server = 280-version-negotiation-server
+client = 280-version-negotiation-client
+
+[280-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[280-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-280]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[281-version-negotiation]
+ssl_conf = 281-version-negotiation-ssl
+
+[281-version-negotiation-ssl]
+server = 281-version-negotiation-server
+client = 281-version-negotiation-client
+
+[281-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[281-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-281]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[282-version-negotiation]
+ssl_conf = 282-version-negotiation-ssl
+
+[282-version-negotiation-ssl]
+server = 282-version-negotiation-server
+client = 282-version-negotiation-client
+
+[282-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[282-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-282]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[283-version-negotiation]
+ssl_conf = 283-version-negotiation-ssl
+
+[283-version-negotiation-ssl]
+server = 283-version-negotiation-server
+client = 283-version-negotiation-client
+
+[283-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[283-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-283]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[284-version-negotiation]
+ssl_conf = 284-version-negotiation-ssl
+
+[284-version-negotiation-ssl]
+server = 284-version-negotiation-server
+client = 284-version-negotiation-client
+
+[284-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[284-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-284]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[285-version-negotiation]
+ssl_conf = 285-version-negotiation-ssl
+
+[285-version-negotiation-ssl]
+server = 285-version-negotiation-server
+client = 285-version-negotiation-client
+
+[285-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[285-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-285]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[286-version-negotiation]
+ssl_conf = 286-version-negotiation-ssl
+
+[286-version-negotiation-ssl]
+server = 286-version-negotiation-server
+client = 286-version-negotiation-client
+
+[286-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[286-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-286]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[287-version-negotiation]
+ssl_conf = 287-version-negotiation-ssl
+
+[287-version-negotiation-ssl]
+server = 287-version-negotiation-server
+client = 287-version-negotiation-client
+
+[287-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[287-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-287]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[288-version-negotiation]
+ssl_conf = 288-version-negotiation-ssl
+
+[288-version-negotiation-ssl]
+server = 288-version-negotiation-server
+client = 288-version-negotiation-client
+
+[288-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[288-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-288]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[289-version-negotiation]
+ssl_conf = 289-version-negotiation-ssl
+
+[289-version-negotiation-ssl]
+server = 289-version-negotiation-server
+client = 289-version-negotiation-client
+
+[289-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[289-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-289]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[290-version-negotiation]
+ssl_conf = 290-version-negotiation-ssl
+
+[290-version-negotiation-ssl]
+server = 290-version-negotiation-server
+client = 290-version-negotiation-client
+
+[290-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[290-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-290]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[291-version-negotiation]
+ssl_conf = 291-version-negotiation-ssl
+
+[291-version-negotiation-ssl]
+server = 291-version-negotiation-server
+client = 291-version-negotiation-client
+
+[291-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[291-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-291]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[292-version-negotiation]
+ssl_conf = 292-version-negotiation-ssl
+
+[292-version-negotiation-ssl]
+server = 292-version-negotiation-server
+client = 292-version-negotiation-client
+
+[292-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[292-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-292]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[293-version-negotiation]
+ssl_conf = 293-version-negotiation-ssl
+
+[293-version-negotiation-ssl]
+server = 293-version-negotiation-server
+client = 293-version-negotiation-client
+
+[293-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[293-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-293]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[294-version-negotiation]
+ssl_conf = 294-version-negotiation-ssl
+
+[294-version-negotiation-ssl]
+server = 294-version-negotiation-server
+client = 294-version-negotiation-client
+
+[294-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[294-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-294]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[295-version-negotiation]
+ssl_conf = 295-version-negotiation-ssl
+
+[295-version-negotiation-ssl]
+server = 295-version-negotiation-server
+client = 295-version-negotiation-client
+
+[295-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[295-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-295]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[296-version-negotiation]
+ssl_conf = 296-version-negotiation-ssl
+
+[296-version-negotiation-ssl]
+server = 296-version-negotiation-server
+client = 296-version-negotiation-client
+
+[296-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[296-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-296]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[297-version-negotiation]
+ssl_conf = 297-version-negotiation-ssl
+
+[297-version-negotiation-ssl]
+server = 297-version-negotiation-server
+client = 297-version-negotiation-client
+
+[297-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[297-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-297]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[298-version-negotiation]
+ssl_conf = 298-version-negotiation-ssl
+
+[298-version-negotiation-ssl]
+server = 298-version-negotiation-server
+client = 298-version-negotiation-client
+
+[298-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[298-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-298]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[299-version-negotiation]
+ssl_conf = 299-version-negotiation-ssl
+
+[299-version-negotiation-ssl]
+server = 299-version-negotiation-server
+client = 299-version-negotiation-client
+
+[299-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[299-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-299]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[300-version-negotiation]
+ssl_conf = 300-version-negotiation-ssl
+
+[300-version-negotiation-ssl]
+server = 300-version-negotiation-server
+client = 300-version-negotiation-client
+
+[300-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[300-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-300]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[301-version-negotiation]
+ssl_conf = 301-version-negotiation-ssl
+
+[301-version-negotiation-ssl]
+server = 301-version-negotiation-server
+client = 301-version-negotiation-client
+
+[301-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[301-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-301]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[302-version-negotiation]
+ssl_conf = 302-version-negotiation-ssl
+
+[302-version-negotiation-ssl]
+server = 302-version-negotiation-server
+client = 302-version-negotiation-client
+
+[302-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[302-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-302]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[303-version-negotiation]
+ssl_conf = 303-version-negotiation-ssl
+
+[303-version-negotiation-ssl]
+server = 303-version-negotiation-server
+client = 303-version-negotiation-client
+
+[303-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[303-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-303]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[304-version-negotiation]
+ssl_conf = 304-version-negotiation-ssl
+
+[304-version-negotiation-ssl]
+server = 304-version-negotiation-server
+client = 304-version-negotiation-client
+
+[304-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[304-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-304]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[305-version-negotiation]
+ssl_conf = 305-version-negotiation-ssl
+
+[305-version-negotiation-ssl]
+server = 305-version-negotiation-server
+client = 305-version-negotiation-client
+
+[305-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[305-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-305]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[306-version-negotiation]
+ssl_conf = 306-version-negotiation-ssl
+
+[306-version-negotiation-ssl]
+server = 306-version-negotiation-server
+client = 306-version-negotiation-client
+
+[306-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[306-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-306]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[307-version-negotiation]
+ssl_conf = 307-version-negotiation-ssl
+
+[307-version-negotiation-ssl]
+server = 307-version-negotiation-server
+client = 307-version-negotiation-client
+
+[307-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[307-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-307]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[308-version-negotiation]
+ssl_conf = 308-version-negotiation-ssl
+
+[308-version-negotiation-ssl]
+server = 308-version-negotiation-server
+client = 308-version-negotiation-client
+
+[308-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[308-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-308]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[309-version-negotiation]
+ssl_conf = 309-version-negotiation-ssl
+
+[309-version-negotiation-ssl]
+server = 309-version-negotiation-server
+client = 309-version-negotiation-client
+
+[309-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[309-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-309]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[310-version-negotiation]
+ssl_conf = 310-version-negotiation-ssl
+
+[310-version-negotiation-ssl]
+server = 310-version-negotiation-server
+client = 310-version-negotiation-client
+
+[310-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[310-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-310]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[311-version-negotiation]
+ssl_conf = 311-version-negotiation-ssl
+
+[311-version-negotiation-ssl]
+server = 311-version-negotiation-server
+client = 311-version-negotiation-client
+
+[311-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[311-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = SSLv3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-311]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[312-version-negotiation]
+ssl_conf = 312-version-negotiation-ssl
+
+[312-version-negotiation-ssl]
+server = 312-version-negotiation-server
+client = 312-version-negotiation-client
+
+[312-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[312-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-312]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[313-version-negotiation]
+ssl_conf = 313-version-negotiation-ssl
+
+[313-version-negotiation-ssl]
+server = 313-version-negotiation-server
+client = 313-version-negotiation-client
+
+[313-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[313-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-313]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[314-version-negotiation]
+ssl_conf = 314-version-negotiation-ssl
+
+[314-version-negotiation-ssl]
+server = 314-version-negotiation-server
+client = 314-version-negotiation-client
+
+[314-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[314-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-314]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[315-version-negotiation]
+ssl_conf = 315-version-negotiation-ssl
+
+[315-version-negotiation-ssl]
+server = 315-version-negotiation-server
+client = 315-version-negotiation-client
+
+[315-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[315-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-315]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[316-version-negotiation]
+ssl_conf = 316-version-negotiation-ssl
+
+[316-version-negotiation-ssl]
+server = 316-version-negotiation-server
+client = 316-version-negotiation-client
+
+[316-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[316-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-316]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[317-version-negotiation]
+ssl_conf = 317-version-negotiation-ssl
+
+[317-version-negotiation-ssl]
+server = 317-version-negotiation-server
+client = 317-version-negotiation-client
+
+[317-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[317-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-317]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[318-version-negotiation]
+ssl_conf = 318-version-negotiation-ssl
+
+[318-version-negotiation-ssl]
+server = 318-version-negotiation-server
+client = 318-version-negotiation-client
+
+[318-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[318-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-318]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[319-version-negotiation]
+ssl_conf = 319-version-negotiation-ssl
+
+[319-version-negotiation-ssl]
+server = 319-version-negotiation-server
+client = 319-version-negotiation-client
+
+[319-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[319-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-319]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[320-version-negotiation]
+ssl_conf = 320-version-negotiation-ssl
+
+[320-version-negotiation-ssl]
+server = 320-version-negotiation-server
+client = 320-version-negotiation-client
+
+[320-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[320-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-320]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[321-version-negotiation]
+ssl_conf = 321-version-negotiation-ssl
+
+[321-version-negotiation-ssl]
+server = 321-version-negotiation-server
+client = 321-version-negotiation-client
+
+[321-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[321-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-321]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[322-version-negotiation]
+ssl_conf = 322-version-negotiation-ssl
+
+[322-version-negotiation-ssl]
+server = 322-version-negotiation-server
+client = 322-version-negotiation-client
+
+[322-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[322-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-322]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[323-version-negotiation]
+ssl_conf = 323-version-negotiation-ssl
+
+[323-version-negotiation-ssl]
+server = 323-version-negotiation-server
+client = 323-version-negotiation-client
+
+[323-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[323-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-323]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[324-version-negotiation]
+ssl_conf = 324-version-negotiation-ssl
+
+[324-version-negotiation-ssl]
+server = 324-version-negotiation-server
+client = 324-version-negotiation-client
+
+[324-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[324-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-324]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[325-version-negotiation]
+ssl_conf = 325-version-negotiation-ssl
+
+[325-version-negotiation-ssl]
+server = 325-version-negotiation-server
+client = 325-version-negotiation-client
+
+[325-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[325-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-325]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[326-version-negotiation]
+ssl_conf = 326-version-negotiation-ssl
+
+[326-version-negotiation-ssl]
+server = 326-version-negotiation-server
+client = 326-version-negotiation-client
+
+[326-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[326-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-326]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[327-version-negotiation]
+ssl_conf = 327-version-negotiation-ssl
+
+[327-version-negotiation-ssl]
+server = 327-version-negotiation-server
+client = 327-version-negotiation-client
+
+[327-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[327-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-327]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[328-version-negotiation]
+ssl_conf = 328-version-negotiation-ssl
+
+[328-version-negotiation-ssl]
+server = 328-version-negotiation-server
+client = 328-version-negotiation-client
+
+[328-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[328-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-328]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[329-version-negotiation]
+ssl_conf = 329-version-negotiation-ssl
+
+[329-version-negotiation-ssl]
+server = 329-version-negotiation-server
+client = 329-version-negotiation-client
+
+[329-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[329-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-329]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[330-version-negotiation]
+ssl_conf = 330-version-negotiation-ssl
+
+[330-version-negotiation-ssl]
+server = 330-version-negotiation-server
+client = 330-version-negotiation-client
+
+[330-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[330-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-330]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[331-version-negotiation]
+ssl_conf = 331-version-negotiation-ssl
+
+[331-version-negotiation-ssl]
+server = 331-version-negotiation-server
+client = 331-version-negotiation-client
+
+[331-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[331-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-331]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[332-version-negotiation]
+ssl_conf = 332-version-negotiation-ssl
+
+[332-version-negotiation-ssl]
+server = 332-version-negotiation-server
+client = 332-version-negotiation-client
+
+[332-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[332-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-332]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[333-version-negotiation]
+ssl_conf = 333-version-negotiation-ssl
+
+[333-version-negotiation-ssl]
+server = 333-version-negotiation-server
+client = 333-version-negotiation-client
+
+[333-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[333-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-333]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[334-version-negotiation]
+ssl_conf = 334-version-negotiation-ssl
+
+[334-version-negotiation-ssl]
+server = 334-version-negotiation-server
+client = 334-version-negotiation-client
+
+[334-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[334-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-334]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[335-version-negotiation]
+ssl_conf = 335-version-negotiation-ssl
+
+[335-version-negotiation-ssl]
+server = 335-version-negotiation-server
+client = 335-version-negotiation-client
+
+[335-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[335-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-335]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[336-version-negotiation]
+ssl_conf = 336-version-negotiation-ssl
+
+[336-version-negotiation-ssl]
+server = 336-version-negotiation-server
+client = 336-version-negotiation-client
+
+[336-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[336-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-336]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[337-version-negotiation]
+ssl_conf = 337-version-negotiation-ssl
+
+[337-version-negotiation-ssl]
+server = 337-version-negotiation-server
+client = 337-version-negotiation-client
+
+[337-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[337-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-337]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[338-version-negotiation]
+ssl_conf = 338-version-negotiation-ssl
+
+[338-version-negotiation-ssl]
+server = 338-version-negotiation-server
+client = 338-version-negotiation-client
+
+[338-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[338-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-338]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[339-version-negotiation]
+ssl_conf = 339-version-negotiation-ssl
+
+[339-version-negotiation-ssl]
+server = 339-version-negotiation-server
+client = 339-version-negotiation-client
+
+[339-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[339-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-339]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[340-version-negotiation]
+ssl_conf = 340-version-negotiation-ssl
+
+[340-version-negotiation-ssl]
+server = 340-version-negotiation-server
+client = 340-version-negotiation-client
+
+[340-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[340-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-340]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[341-version-negotiation]
+ssl_conf = 341-version-negotiation-ssl
+
+[341-version-negotiation-ssl]
+server = 341-version-negotiation-server
+client = 341-version-negotiation-client
+
+[341-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[341-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-341]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[342-version-negotiation]
+ssl_conf = 342-version-negotiation-ssl
+
+[342-version-negotiation-ssl]
+server = 342-version-negotiation-server
+client = 342-version-negotiation-client
+
+[342-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[342-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-342]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[343-version-negotiation]
+ssl_conf = 343-version-negotiation-ssl
+
+[343-version-negotiation-ssl]
+server = 343-version-negotiation-server
+client = 343-version-negotiation-client
+
+[343-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[343-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-343]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[344-version-negotiation]
+ssl_conf = 344-version-negotiation-ssl
+
+[344-version-negotiation-ssl]
+server = 344-version-negotiation-server
+client = 344-version-negotiation-client
+
+[344-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[344-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-344]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[345-version-negotiation]
+ssl_conf = 345-version-negotiation-ssl
+
+[345-version-negotiation-ssl]
+server = 345-version-negotiation-server
+client = 345-version-negotiation-client
+
+[345-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[345-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-345]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[346-version-negotiation]
+ssl_conf = 346-version-negotiation-ssl
+
+[346-version-negotiation-ssl]
+server = 346-version-negotiation-server
+client = 346-version-negotiation-client
+
+[346-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[346-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-346]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[347-version-negotiation]
+ssl_conf = 347-version-negotiation-ssl
+
+[347-version-negotiation-ssl]
+server = 347-version-negotiation-server
+client = 347-version-negotiation-client
+
+[347-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[347-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-347]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[348-version-negotiation]
+ssl_conf = 348-version-negotiation-ssl
+
+[348-version-negotiation-ssl]
+server = 348-version-negotiation-server
+client = 348-version-negotiation-client
+
+[348-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[348-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-348]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[349-version-negotiation]
+ssl_conf = 349-version-negotiation-ssl
+
+[349-version-negotiation-ssl]
+server = 349-version-negotiation-server
+client = 349-version-negotiation-client
+
+[349-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[349-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-349]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[350-version-negotiation]
+ssl_conf = 350-version-negotiation-ssl
+
+[350-version-negotiation-ssl]
+server = 350-version-negotiation-server
+client = 350-version-negotiation-client
+
+[350-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[350-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-350]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[351-version-negotiation]
+ssl_conf = 351-version-negotiation-ssl
+
+[351-version-negotiation-ssl]
+server = 351-version-negotiation-server
+client = 351-version-negotiation-client
+
+[351-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[351-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-351]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[352-version-negotiation]
+ssl_conf = 352-version-negotiation-ssl
+
+[352-version-negotiation-ssl]
+server = 352-version-negotiation-server
+client = 352-version-negotiation-client
+
+[352-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[352-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-352]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[353-version-negotiation]
+ssl_conf = 353-version-negotiation-ssl
+
+[353-version-negotiation-ssl]
+server = 353-version-negotiation-server
+client = 353-version-negotiation-client
+
+[353-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[353-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-353]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[354-version-negotiation]
+ssl_conf = 354-version-negotiation-ssl
+
+[354-version-negotiation-ssl]
+server = 354-version-negotiation-server
+client = 354-version-negotiation-client
+
+[354-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[354-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-354]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[355-version-negotiation]
+ssl_conf = 355-version-negotiation-ssl
+
+[355-version-negotiation-ssl]
+server = 355-version-negotiation-server
+client = 355-version-negotiation-client
+
+[355-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[355-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-355]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[356-version-negotiation]
+ssl_conf = 356-version-negotiation-ssl
+
+[356-version-negotiation-ssl]
+server = 356-version-negotiation-server
+client = 356-version-negotiation-client
+
+[356-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[356-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-356]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[357-version-negotiation]
+ssl_conf = 357-version-negotiation-ssl
+
+[357-version-negotiation-ssl]
+server = 357-version-negotiation-server
+client = 357-version-negotiation-client
+
+[357-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[357-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-357]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[358-version-negotiation]
+ssl_conf = 358-version-negotiation-ssl
+
+[358-version-negotiation-ssl]
+server = 358-version-negotiation-server
+client = 358-version-negotiation-client
+
+[358-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[358-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-358]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[359-version-negotiation]
+ssl_conf = 359-version-negotiation-ssl
+
+[359-version-negotiation-ssl]
+server = 359-version-negotiation-server
+client = 359-version-negotiation-client
+
+[359-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[359-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-359]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[360-version-negotiation]
+ssl_conf = 360-version-negotiation-ssl
+
+[360-version-negotiation-ssl]
+server = 360-version-negotiation-server
+client = 360-version-negotiation-client
+
+[360-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[360-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-360]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[361-version-negotiation]
+ssl_conf = 361-version-negotiation-ssl
+
+[361-version-negotiation-ssl]
+server = 361-version-negotiation-server
+client = 361-version-negotiation-client
+
+[361-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[361-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-361]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[362-version-negotiation]
+ssl_conf = 362-version-negotiation-ssl
+
+[362-version-negotiation-ssl]
+server = 362-version-negotiation-server
+client = 362-version-negotiation-client
+
+[362-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[362-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-362]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[363-version-negotiation]
+ssl_conf = 363-version-negotiation-ssl
+
+[363-version-negotiation-ssl]
+server = 363-version-negotiation-server
+client = 363-version-negotiation-client
+
+[363-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[363-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-363]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[364-version-negotiation]
+ssl_conf = 364-version-negotiation-ssl
+
+[364-version-negotiation-ssl]
+server = 364-version-negotiation-server
+client = 364-version-negotiation-client
+
+[364-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[364-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-364]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[365-version-negotiation]
+ssl_conf = 365-version-negotiation-ssl
+
+[365-version-negotiation-ssl]
+server = 365-version-negotiation-server
+client = 365-version-negotiation-client
+
+[365-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[365-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-365]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[366-version-negotiation]
+ssl_conf = 366-version-negotiation-ssl
+
+[366-version-negotiation-ssl]
+server = 366-version-negotiation-server
+client = 366-version-negotiation-client
+
+[366-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[366-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-366]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[367-version-negotiation]
+ssl_conf = 367-version-negotiation-ssl
+
+[367-version-negotiation-ssl]
+server = 367-version-negotiation-server
+client = 367-version-negotiation-client
+
+[367-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[367-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-367]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[368-version-negotiation]
+ssl_conf = 368-version-negotiation-ssl
+
+[368-version-negotiation-ssl]
+server = 368-version-negotiation-server
+client = 368-version-negotiation-client
+
+[368-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[368-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-368]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[369-version-negotiation]
+ssl_conf = 369-version-negotiation-ssl
+
+[369-version-negotiation-ssl]
+server = 369-version-negotiation-server
+client = 369-version-negotiation-client
+
+[369-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[369-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-369]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[370-version-negotiation]
+ssl_conf = 370-version-negotiation-ssl
+
+[370-version-negotiation-ssl]
+server = 370-version-negotiation-server
+client = 370-version-negotiation-client
+
+[370-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[370-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-370]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[371-version-negotiation]
+ssl_conf = 371-version-negotiation-ssl
+
+[371-version-negotiation-ssl]
+server = 371-version-negotiation-server
+client = 371-version-negotiation-client
+
+[371-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[371-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-371]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[372-version-negotiation]
+ssl_conf = 372-version-negotiation-ssl
+
+[372-version-negotiation-ssl]
+server = 372-version-negotiation-server
+client = 372-version-negotiation-client
+
+[372-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[372-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-372]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[373-version-negotiation]
+ssl_conf = 373-version-negotiation-ssl
+
+[373-version-negotiation-ssl]
+server = 373-version-negotiation-server
+client = 373-version-negotiation-client
+
+[373-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[373-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-373]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[374-version-negotiation]
+ssl_conf = 374-version-negotiation-ssl
+
+[374-version-negotiation-ssl]
+server = 374-version-negotiation-server
+client = 374-version-negotiation-client
+
+[374-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[374-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-374]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[375-version-negotiation]
+ssl_conf = 375-version-negotiation-ssl
+
+[375-version-negotiation-ssl]
+server = 375-version-negotiation-server
+client = 375-version-negotiation-client
+
+[375-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[375-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-375]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[376-version-negotiation]
+ssl_conf = 376-version-negotiation-ssl
+
+[376-version-negotiation-ssl]
+server = 376-version-negotiation-server
+client = 376-version-negotiation-client
+
+[376-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[376-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-376]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[377-version-negotiation]
+ssl_conf = 377-version-negotiation-ssl
+
+[377-version-negotiation-ssl]
+server = 377-version-negotiation-server
+client = 377-version-negotiation-client
+
+[377-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[377-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-377]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[378-version-negotiation]
+ssl_conf = 378-version-negotiation-ssl
+
+[378-version-negotiation-ssl]
+server = 378-version-negotiation-server
+client = 378-version-negotiation-client
+
+[378-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[378-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-378]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[379-version-negotiation]
+ssl_conf = 379-version-negotiation-ssl
+
+[379-version-negotiation-ssl]
+server = 379-version-negotiation-server
+client = 379-version-negotiation-client
+
+[379-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[379-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-379]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[380-version-negotiation]
+ssl_conf = 380-version-negotiation-ssl
+
+[380-version-negotiation-ssl]
+server = 380-version-negotiation-server
+client = 380-version-negotiation-client
+
+[380-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[380-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-380]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[381-version-negotiation]
+ssl_conf = 381-version-negotiation-ssl
+
+[381-version-negotiation-ssl]
+server = 381-version-negotiation-server
+client = 381-version-negotiation-client
+
+[381-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[381-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-381]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[382-version-negotiation]
+ssl_conf = 382-version-negotiation-ssl
+
+[382-version-negotiation-ssl]
+server = 382-version-negotiation-server
+client = 382-version-negotiation-client
+
+[382-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[382-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-382]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[383-version-negotiation]
+ssl_conf = 383-version-negotiation-ssl
+
+[383-version-negotiation-ssl]
+server = 383-version-negotiation-server
+client = 383-version-negotiation-client
+
+[383-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[383-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-383]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[384-version-negotiation]
+ssl_conf = 384-version-negotiation-ssl
+
+[384-version-negotiation-ssl]
+server = 384-version-negotiation-server
+client = 384-version-negotiation-client
+
+[384-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[384-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-384]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[385-version-negotiation]
+ssl_conf = 385-version-negotiation-ssl
+
+[385-version-negotiation-ssl]
+server = 385-version-negotiation-server
+client = 385-version-negotiation-client
+
+[385-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[385-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-385]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[386-version-negotiation]
+ssl_conf = 386-version-negotiation-ssl
+
+[386-version-negotiation-ssl]
+server = 386-version-negotiation-server
+client = 386-version-negotiation-client
+
+[386-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[386-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-386]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[387-version-negotiation]
+ssl_conf = 387-version-negotiation-ssl
+
+[387-version-negotiation-ssl]
+server = 387-version-negotiation-server
+client = 387-version-negotiation-client
+
+[387-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[387-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-387]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[388-version-negotiation]
+ssl_conf = 388-version-negotiation-ssl
+
+[388-version-negotiation-ssl]
+server = 388-version-negotiation-server
+client = 388-version-negotiation-client
+
+[388-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[388-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-388]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[389-version-negotiation]
+ssl_conf = 389-version-negotiation-ssl
+
+[389-version-negotiation-ssl]
+server = 389-version-negotiation-server
+client = 389-version-negotiation-client
+
+[389-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[389-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-389]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[390-version-negotiation]
+ssl_conf = 390-version-negotiation-ssl
+
+[390-version-negotiation-ssl]
+server = 390-version-negotiation-server
+client = 390-version-negotiation-client
+
+[390-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[390-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-390]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[391-version-negotiation]
+ssl_conf = 391-version-negotiation-ssl
+
+[391-version-negotiation-ssl]
+server = 391-version-negotiation-server
+client = 391-version-negotiation-client
+
+[391-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[391-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-391]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[392-version-negotiation]
+ssl_conf = 392-version-negotiation-ssl
+
+[392-version-negotiation-ssl]
+server = 392-version-negotiation-server
+client = 392-version-negotiation-client
+
+[392-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[392-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-392]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[393-version-negotiation]
+ssl_conf = 393-version-negotiation-ssl
+
+[393-version-negotiation-ssl]
+server = 393-version-negotiation-server
+client = 393-version-negotiation-client
+
+[393-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[393-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-393]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[394-version-negotiation]
+ssl_conf = 394-version-negotiation-ssl
+
+[394-version-negotiation-ssl]
+server = 394-version-negotiation-server
+client = 394-version-negotiation-client
+
+[394-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[394-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-394]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[395-version-negotiation]
+ssl_conf = 395-version-negotiation-ssl
+
+[395-version-negotiation-ssl]
+server = 395-version-negotiation-server
+client = 395-version-negotiation-client
+
+[395-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[395-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-395]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[396-version-negotiation]
+ssl_conf = 396-version-negotiation-ssl
+
+[396-version-negotiation-ssl]
+server = 396-version-negotiation-server
+client = 396-version-negotiation-client
+
+[396-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[396-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-396]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[397-version-negotiation]
+ssl_conf = 397-version-negotiation-ssl
+
+[397-version-negotiation-ssl]
+server = 397-version-negotiation-server
+client = 397-version-negotiation-client
+
+[397-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[397-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-397]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[398-version-negotiation]
+ssl_conf = 398-version-negotiation-ssl
+
+[398-version-negotiation-ssl]
+server = 398-version-negotiation-server
+client = 398-version-negotiation-client
+
+[398-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[398-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-398]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[399-version-negotiation]
+ssl_conf = 399-version-negotiation-ssl
+
+[399-version-negotiation-ssl]
+server = 399-version-negotiation-server
+client = 399-version-negotiation-client
+
+[399-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[399-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-399]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[400-version-negotiation]
+ssl_conf = 400-version-negotiation-ssl
+
+[400-version-negotiation-ssl]
+server = 400-version-negotiation-server
+client = 400-version-negotiation-client
+
+[400-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[400-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-400]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[401-version-negotiation]
+ssl_conf = 401-version-negotiation-ssl
+
+[401-version-negotiation-ssl]
+server = 401-version-negotiation-server
+client = 401-version-negotiation-client
+
+[401-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[401-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-401]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[402-version-negotiation]
+ssl_conf = 402-version-negotiation-ssl
+
+[402-version-negotiation-ssl]
+server = 402-version-negotiation-server
+client = 402-version-negotiation-client
+
+[402-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[402-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-402]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[403-version-negotiation]
+ssl_conf = 403-version-negotiation-ssl
+
+[403-version-negotiation-ssl]
+server = 403-version-negotiation-server
+client = 403-version-negotiation-client
+
+[403-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[403-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-403]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[404-version-negotiation]
+ssl_conf = 404-version-negotiation-ssl
+
+[404-version-negotiation-ssl]
+server = 404-version-negotiation-server
+client = 404-version-negotiation-client
+
+[404-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[404-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-404]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[405-version-negotiation]
+ssl_conf = 405-version-negotiation-ssl
+
+[405-version-negotiation-ssl]
+server = 405-version-negotiation-server
+client = 405-version-negotiation-client
+
+[405-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[405-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-405]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[406-version-negotiation]
+ssl_conf = 406-version-negotiation-ssl
+
+[406-version-negotiation-ssl]
+server = 406-version-negotiation-server
+client = 406-version-negotiation-client
+
+[406-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[406-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-406]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[407-version-negotiation]
+ssl_conf = 407-version-negotiation-ssl
+
+[407-version-negotiation-ssl]
+server = 407-version-negotiation-server
+client = 407-version-negotiation-client
+
+[407-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[407-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-407]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[408-version-negotiation]
+ssl_conf = 408-version-negotiation-ssl
+
+[408-version-negotiation-ssl]
+server = 408-version-negotiation-server
+client = 408-version-negotiation-client
+
+[408-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[408-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-408]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[409-version-negotiation]
+ssl_conf = 409-version-negotiation-ssl
+
+[409-version-negotiation-ssl]
+server = 409-version-negotiation-server
+client = 409-version-negotiation-client
+
+[409-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[409-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-409]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[410-version-negotiation]
+ssl_conf = 410-version-negotiation-ssl
+
+[410-version-negotiation-ssl]
+server = 410-version-negotiation-server
+client = 410-version-negotiation-client
+
+[410-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[410-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-410]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[411-version-negotiation]
+ssl_conf = 411-version-negotiation-ssl
+
+[411-version-negotiation-ssl]
+server = 411-version-negotiation-server
+client = 411-version-negotiation-client
+
+[411-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[411-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-411]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[412-version-negotiation]
+ssl_conf = 412-version-negotiation-ssl
+
+[412-version-negotiation-ssl]
+server = 412-version-negotiation-server
+client = 412-version-negotiation-client
+
+[412-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[412-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-412]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[413-version-negotiation]
+ssl_conf = 413-version-negotiation-ssl
+
+[413-version-negotiation-ssl]
+server = 413-version-negotiation-server
+client = 413-version-negotiation-client
+
+[413-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[413-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-413]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[414-version-negotiation]
+ssl_conf = 414-version-negotiation-ssl
+
+[414-version-negotiation-ssl]
+server = 414-version-negotiation-server
+client = 414-version-negotiation-client
+
+[414-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[414-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-414]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[415-version-negotiation]
+ssl_conf = 415-version-negotiation-ssl
+
+[415-version-negotiation-ssl]
+server = 415-version-negotiation-server
+client = 415-version-negotiation-client
+
+[415-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[415-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-415]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[416-version-negotiation]
+ssl_conf = 416-version-negotiation-ssl
+
+[416-version-negotiation-ssl]
+server = 416-version-negotiation-server
+client = 416-version-negotiation-client
+
+[416-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[416-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-416]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[417-version-negotiation]
+ssl_conf = 417-version-negotiation-ssl
+
+[417-version-negotiation-ssl]
+server = 417-version-negotiation-server
+client = 417-version-negotiation-client
+
+[417-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[417-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-417]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[418-version-negotiation]
+ssl_conf = 418-version-negotiation-ssl
+
+[418-version-negotiation-ssl]
+server = 418-version-negotiation-server
+client = 418-version-negotiation-client
+
+[418-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[418-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-418]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[419-version-negotiation]
+ssl_conf = 419-version-negotiation-ssl
+
+[419-version-negotiation-ssl]
+server = 419-version-negotiation-server
+client = 419-version-negotiation-client
+
+[419-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[419-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-419]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[420-version-negotiation]
+ssl_conf = 420-version-negotiation-ssl
+
+[420-version-negotiation-ssl]
+server = 420-version-negotiation-server
+client = 420-version-negotiation-client
+
+[420-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[420-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-420]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[421-version-negotiation]
+ssl_conf = 421-version-negotiation-ssl
+
+[421-version-negotiation-ssl]
+server = 421-version-negotiation-server
+client = 421-version-negotiation-client
+
+[421-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[421-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-421]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[422-version-negotiation]
+ssl_conf = 422-version-negotiation-ssl
+
+[422-version-negotiation-ssl]
+server = 422-version-negotiation-server
+client = 422-version-negotiation-client
+
+[422-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[422-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-422]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[423-version-negotiation]
+ssl_conf = 423-version-negotiation-ssl
+
+[423-version-negotiation-ssl]
+server = 423-version-negotiation-server
+client = 423-version-negotiation-client
+
+[423-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[423-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-423]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[424-version-negotiation]
+ssl_conf = 424-version-negotiation-ssl
+
+[424-version-negotiation-ssl]
+server = 424-version-negotiation-server
+client = 424-version-negotiation-client
+
+[424-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[424-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-424]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[425-version-negotiation]
+ssl_conf = 425-version-negotiation-ssl
+
+[425-version-negotiation-ssl]
+server = 425-version-negotiation-server
+client = 425-version-negotiation-client
+
+[425-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[425-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-425]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[426-version-negotiation]
+ssl_conf = 426-version-negotiation-ssl
+
+[426-version-negotiation-ssl]
+server = 426-version-negotiation-server
+client = 426-version-negotiation-client
+
+[426-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[426-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-426]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[427-version-negotiation]
+ssl_conf = 427-version-negotiation-ssl
+
+[427-version-negotiation-ssl]
+server = 427-version-negotiation-server
+client = 427-version-negotiation-client
+
+[427-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[427-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-427]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[428-version-negotiation]
+ssl_conf = 428-version-negotiation-ssl
+
+[428-version-negotiation-ssl]
+server = 428-version-negotiation-server
+client = 428-version-negotiation-client
+
+[428-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[428-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-428]
+ExpectedProtocol = TLSv1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[429-version-negotiation]
+ssl_conf = 429-version-negotiation-ssl
+
+[429-version-negotiation-ssl]
+server = 429-version-negotiation-server
+client = 429-version-negotiation-client
+
+[429-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[429-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-429]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[430-version-negotiation]
+ssl_conf = 430-version-negotiation-ssl
+
+[430-version-negotiation-ssl]
+server = 430-version-negotiation-server
+client = 430-version-negotiation-client
+
+[430-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[430-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-430]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[431-version-negotiation]
+ssl_conf = 431-version-negotiation-ssl
+
+[431-version-negotiation-ssl]
+server = 431-version-negotiation-server
+client = 431-version-negotiation-client
+
+[431-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[431-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-431]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[432-version-negotiation]
+ssl_conf = 432-version-negotiation-ssl
+
+[432-version-negotiation-ssl]
+server = 432-version-negotiation-server
+client = 432-version-negotiation-client
+
+[432-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[432-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-432]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[433-version-negotiation]
+ssl_conf = 433-version-negotiation-ssl
+
+[433-version-negotiation-ssl]
+server = 433-version-negotiation-server
+client = 433-version-negotiation-client
+
+[433-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[433-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-433]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[434-version-negotiation]
+ssl_conf = 434-version-negotiation-ssl
+
+[434-version-negotiation-ssl]
+server = 434-version-negotiation-server
+client = 434-version-negotiation-client
+
+[434-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[434-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-434]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[435-version-negotiation]
+ssl_conf = 435-version-negotiation-ssl
+
+[435-version-negotiation-ssl]
+server = 435-version-negotiation-server
+client = 435-version-negotiation-client
+
+[435-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[435-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-435]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[436-version-negotiation]
+ssl_conf = 436-version-negotiation-ssl
+
+[436-version-negotiation-ssl]
+server = 436-version-negotiation-server
+client = 436-version-negotiation-client
+
+[436-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[436-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-436]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[437-version-negotiation]
+ssl_conf = 437-version-negotiation-ssl
+
+[437-version-negotiation-ssl]
+server = 437-version-negotiation-server
+client = 437-version-negotiation-client
+
+[437-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[437-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-437]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[438-version-negotiation]
+ssl_conf = 438-version-negotiation-ssl
+
+[438-version-negotiation-ssl]
+server = 438-version-negotiation-server
+client = 438-version-negotiation-client
+
+[438-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[438-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-438]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[439-version-negotiation]
+ssl_conf = 439-version-negotiation-ssl
+
+[439-version-negotiation-ssl]
+server = 439-version-negotiation-server
+client = 439-version-negotiation-client
+
+[439-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[439-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-439]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[440-version-negotiation]
+ssl_conf = 440-version-negotiation-ssl
+
+[440-version-negotiation-ssl]
+server = 440-version-negotiation-server
+client = 440-version-negotiation-client
+
+[440-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[440-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-440]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[441-version-negotiation]
+ssl_conf = 441-version-negotiation-ssl
+
+[441-version-negotiation-ssl]
+server = 441-version-negotiation-server
+client = 441-version-negotiation-client
+
+[441-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[441-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-441]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[442-version-negotiation]
+ssl_conf = 442-version-negotiation-ssl
+
+[442-version-negotiation-ssl]
+server = 442-version-negotiation-server
+client = 442-version-negotiation-client
+
+[442-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[442-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-442]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[443-version-negotiation]
+ssl_conf = 443-version-negotiation-ssl
+
+[443-version-negotiation-ssl]
+server = 443-version-negotiation-server
+client = 443-version-negotiation-client
+
+[443-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[443-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-443]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[444-version-negotiation]
+ssl_conf = 444-version-negotiation-ssl
+
+[444-version-negotiation-ssl]
+server = 444-version-negotiation-server
+client = 444-version-negotiation-client
+
+[444-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[444-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-444]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[445-version-negotiation]
+ssl_conf = 445-version-negotiation-ssl
+
+[445-version-negotiation-ssl]
+server = 445-version-negotiation-server
+client = 445-version-negotiation-client
+
+[445-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[445-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-445]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[446-version-negotiation]
+ssl_conf = 446-version-negotiation-ssl
+
+[446-version-negotiation-ssl]
+server = 446-version-negotiation-server
+client = 446-version-negotiation-client
+
+[446-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[446-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-446]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[447-version-negotiation]
+ssl_conf = 447-version-negotiation-ssl
+
+[447-version-negotiation-ssl]
+server = 447-version-negotiation-server
+client = 447-version-negotiation-client
+
+[447-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[447-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-447]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[448-version-negotiation]
+ssl_conf = 448-version-negotiation-ssl
+
+[448-version-negotiation-ssl]
+server = 448-version-negotiation-server
+client = 448-version-negotiation-client
+
+[448-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[448-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-448]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[449-version-negotiation]
+ssl_conf = 449-version-negotiation-ssl
+
+[449-version-negotiation-ssl]
+server = 449-version-negotiation-server
+client = 449-version-negotiation-client
+
+[449-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[449-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-449]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[450-version-negotiation]
+ssl_conf = 450-version-negotiation-ssl
+
+[450-version-negotiation-ssl]
+server = 450-version-negotiation-server
+client = 450-version-negotiation-client
+
+[450-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[450-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-450]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[451-version-negotiation]
+ssl_conf = 451-version-negotiation-ssl
+
+[451-version-negotiation-ssl]
+server = 451-version-negotiation-server
+client = 451-version-negotiation-client
+
+[451-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[451-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-451]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[452-version-negotiation]
+ssl_conf = 452-version-negotiation-ssl
+
+[452-version-negotiation-ssl]
+server = 452-version-negotiation-server
+client = 452-version-negotiation-client
+
+[452-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[452-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-452]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[453-version-negotiation]
+ssl_conf = 453-version-negotiation-ssl
+
+[453-version-negotiation-ssl]
+server = 453-version-negotiation-server
+client = 453-version-negotiation-client
+
+[453-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[453-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-453]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[454-version-negotiation]
+ssl_conf = 454-version-negotiation-ssl
+
+[454-version-negotiation-ssl]
+server = 454-version-negotiation-server
+client = 454-version-negotiation-client
+
+[454-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[454-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-454]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[455-version-negotiation]
+ssl_conf = 455-version-negotiation-ssl
+
+[455-version-negotiation-ssl]
+server = 455-version-negotiation-server
+client = 455-version-negotiation-client
+
+[455-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[455-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-455]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[456-version-negotiation]
+ssl_conf = 456-version-negotiation-ssl
+
+[456-version-negotiation-ssl]
+server = 456-version-negotiation-server
+client = 456-version-negotiation-client
+
+[456-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[456-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-456]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[457-version-negotiation]
+ssl_conf = 457-version-negotiation-ssl
+
+[457-version-negotiation-ssl]
+server = 457-version-negotiation-server
+client = 457-version-negotiation-client
+
+[457-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[457-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-457]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[458-version-negotiation]
+ssl_conf = 458-version-negotiation-ssl
+
+[458-version-negotiation-ssl]
+server = 458-version-negotiation-server
+client = 458-version-negotiation-client
+
+[458-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[458-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-458]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[459-version-negotiation]
+ssl_conf = 459-version-negotiation-ssl
+
+[459-version-negotiation-ssl]
+server = 459-version-negotiation-server
+client = 459-version-negotiation-client
+
+[459-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[459-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-459]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[460-version-negotiation]
+ssl_conf = 460-version-negotiation-ssl
+
+[460-version-negotiation-ssl]
+server = 460-version-negotiation-server
+client = 460-version-negotiation-client
+
+[460-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[460-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-460]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[461-version-negotiation]
+ssl_conf = 461-version-negotiation-ssl
+
+[461-version-negotiation-ssl]
+server = 461-version-negotiation-server
+client = 461-version-negotiation-client
+
+[461-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[461-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-461]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[462-version-negotiation]
+ssl_conf = 462-version-negotiation-ssl
+
+[462-version-negotiation-ssl]
+server = 462-version-negotiation-server
+client = 462-version-negotiation-client
+
+[462-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[462-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-462]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[463-version-negotiation]
+ssl_conf = 463-version-negotiation-ssl
+
+[463-version-negotiation-ssl]
+server = 463-version-negotiation-server
+client = 463-version-negotiation-client
+
+[463-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[463-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-463]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[464-version-negotiation]
+ssl_conf = 464-version-negotiation-ssl
+
+[464-version-negotiation-ssl]
+server = 464-version-negotiation-server
+client = 464-version-negotiation-client
+
+[464-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[464-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-464]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[465-version-negotiation]
+ssl_conf = 465-version-negotiation-ssl
+
+[465-version-negotiation-ssl]
+server = 465-version-negotiation-server
+client = 465-version-negotiation-client
+
+[465-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[465-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-465]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[466-version-negotiation]
+ssl_conf = 466-version-negotiation-ssl
+
+[466-version-negotiation-ssl]
+server = 466-version-negotiation-server
+client = 466-version-negotiation-client
+
+[466-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[466-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-466]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[467-version-negotiation]
+ssl_conf = 467-version-negotiation-ssl
+
+[467-version-negotiation-ssl]
+server = 467-version-negotiation-server
+client = 467-version-negotiation-client
+
+[467-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[467-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-467]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[468-version-negotiation]
+ssl_conf = 468-version-negotiation-ssl
+
+[468-version-negotiation-ssl]
+server = 468-version-negotiation-server
+client = 468-version-negotiation-client
+
+[468-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[468-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-468]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[469-version-negotiation]
+ssl_conf = 469-version-negotiation-ssl
+
+[469-version-negotiation-ssl]
+server = 469-version-negotiation-server
+client = 469-version-negotiation-client
+
+[469-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[469-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-469]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[470-version-negotiation]
+ssl_conf = 470-version-negotiation-ssl
+
+[470-version-negotiation-ssl]
+server = 470-version-negotiation-server
+client = 470-version-negotiation-client
+
+[470-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[470-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-470]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[471-version-negotiation]
+ssl_conf = 471-version-negotiation-ssl
+
+[471-version-negotiation-ssl]
+server = 471-version-negotiation-server
+client = 471-version-negotiation-client
+
+[471-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[471-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-471]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[472-version-negotiation]
+ssl_conf = 472-version-negotiation-ssl
+
+[472-version-negotiation-ssl]
+server = 472-version-negotiation-server
+client = 472-version-negotiation-client
+
+[472-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[472-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-472]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[473-version-negotiation]
+ssl_conf = 473-version-negotiation-ssl
+
+[473-version-negotiation-ssl]
+server = 473-version-negotiation-server
+client = 473-version-negotiation-client
+
+[473-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[473-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-473]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[474-version-negotiation]
+ssl_conf = 474-version-negotiation-ssl
+
+[474-version-negotiation-ssl]
+server = 474-version-negotiation-server
+client = 474-version-negotiation-client
+
+[474-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[474-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-474]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[475-version-negotiation]
+ssl_conf = 475-version-negotiation-ssl
+
+[475-version-negotiation-ssl]
+server = 475-version-negotiation-server
+client = 475-version-negotiation-client
+
+[475-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[475-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-475]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[476-version-negotiation]
+ssl_conf = 476-version-negotiation-ssl
+
+[476-version-negotiation-ssl]
+server = 476-version-negotiation-server
+client = 476-version-negotiation-client
+
+[476-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[476-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-476]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[477-version-negotiation]
+ssl_conf = 477-version-negotiation-ssl
+
+[477-version-negotiation-ssl]
+server = 477-version-negotiation-server
+client = 477-version-negotiation-client
+
+[477-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[477-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-477]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[478-version-negotiation]
+ssl_conf = 478-version-negotiation-ssl
+
+[478-version-negotiation-ssl]
+server = 478-version-negotiation-server
+client = 478-version-negotiation-client
+
+[478-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[478-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-478]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[479-version-negotiation]
+ssl_conf = 479-version-negotiation-ssl
+
+[479-version-negotiation-ssl]
+server = 479-version-negotiation-server
+client = 479-version-negotiation-client
+
+[479-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[479-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-479]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[480-version-negotiation]
+ssl_conf = 480-version-negotiation-ssl
+
+[480-version-negotiation-ssl]
+server = 480-version-negotiation-server
+client = 480-version-negotiation-client
+
+[480-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[480-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-480]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[481-version-negotiation]
+ssl_conf = 481-version-negotiation-ssl
+
+[481-version-negotiation-ssl]
+server = 481-version-negotiation-server
+client = 481-version-negotiation-client
+
+[481-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[481-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-481]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[482-version-negotiation]
+ssl_conf = 482-version-negotiation-ssl
+
+[482-version-negotiation-ssl]
+server = 482-version-negotiation-server
+client = 482-version-negotiation-client
+
+[482-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[482-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-482]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[483-version-negotiation]
+ssl_conf = 483-version-negotiation-ssl
+
+[483-version-negotiation-ssl]
+server = 483-version-negotiation-server
+client = 483-version-negotiation-client
+
+[483-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[483-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-483]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[484-version-negotiation]
+ssl_conf = 484-version-negotiation-ssl
+
+[484-version-negotiation-ssl]
+server = 484-version-negotiation-server
+client = 484-version-negotiation-client
+
+[484-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[484-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-484]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[485-version-negotiation]
+ssl_conf = 485-version-negotiation-ssl
+
+[485-version-negotiation-ssl]
+server = 485-version-negotiation-server
+client = 485-version-negotiation-client
+
+[485-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[485-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-485]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[486-version-negotiation]
+ssl_conf = 486-version-negotiation-ssl
+
+[486-version-negotiation-ssl]
+server = 486-version-negotiation-server
+client = 486-version-negotiation-client
+
+[486-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[486-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-486]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[487-version-negotiation]
+ssl_conf = 487-version-negotiation-ssl
+
+[487-version-negotiation-ssl]
+server = 487-version-negotiation-server
+client = 487-version-negotiation-client
+
+[487-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[487-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-487]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[488-version-negotiation]
+ssl_conf = 488-version-negotiation-ssl
+
+[488-version-negotiation-ssl]
+server = 488-version-negotiation-server
+client = 488-version-negotiation-client
+
+[488-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[488-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-488]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[489-version-negotiation]
+ssl_conf = 489-version-negotiation-ssl
+
+[489-version-negotiation-ssl]
+server = 489-version-negotiation-server
+client = 489-version-negotiation-client
+
+[489-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[489-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-489]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[490-version-negotiation]
+ssl_conf = 490-version-negotiation-ssl
+
+[490-version-negotiation-ssl]
+server = 490-version-negotiation-server
+client = 490-version-negotiation-client
+
+[490-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[490-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-490]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[491-version-negotiation]
+ssl_conf = 491-version-negotiation-ssl
+
+[491-version-negotiation-ssl]
+server = 491-version-negotiation-server
+client = 491-version-negotiation-client
+
+[491-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[491-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-491]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[492-version-negotiation]
+ssl_conf = 492-version-negotiation-ssl
+
+[492-version-negotiation-ssl]
+server = 492-version-negotiation-server
+client = 492-version-negotiation-client
+
+[492-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[492-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-492]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[493-version-negotiation]
+ssl_conf = 493-version-negotiation-ssl
+
+[493-version-negotiation-ssl]
+server = 493-version-negotiation-server
+client = 493-version-negotiation-client
+
+[493-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[493-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-493]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[494-version-negotiation]
+ssl_conf = 494-version-negotiation-ssl
+
+[494-version-negotiation-ssl]
+server = 494-version-negotiation-server
+client = 494-version-negotiation-client
+
+[494-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[494-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-494]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[495-version-negotiation]
+ssl_conf = 495-version-negotiation-ssl
+
+[495-version-negotiation-ssl]
+server = 495-version-negotiation-server
+client = 495-version-negotiation-client
+
+[495-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[495-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-495]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[496-version-negotiation]
+ssl_conf = 496-version-negotiation-ssl
+
+[496-version-negotiation-ssl]
+server = 496-version-negotiation-server
+client = 496-version-negotiation-client
+
+[496-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[496-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-496]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[497-version-negotiation]
+ssl_conf = 497-version-negotiation-ssl
+
+[497-version-negotiation-ssl]
+server = 497-version-negotiation-server
+client = 497-version-negotiation-client
+
+[497-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[497-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-497]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[498-version-negotiation]
+ssl_conf = 498-version-negotiation-ssl
+
+[498-version-negotiation-ssl]
+server = 498-version-negotiation-server
+client = 498-version-negotiation-client
+
+[498-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[498-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-498]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[499-version-negotiation]
+ssl_conf = 499-version-negotiation-ssl
+
+[499-version-negotiation-ssl]
+server = 499-version-negotiation-server
+client = 499-version-negotiation-client
+
+[499-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[499-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-499]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[500-version-negotiation]
+ssl_conf = 500-version-negotiation-ssl
+
+[500-version-negotiation-ssl]
+server = 500-version-negotiation-server
+client = 500-version-negotiation-client
+
+[500-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[500-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-500]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[501-version-negotiation]
+ssl_conf = 501-version-negotiation-ssl
+
+[501-version-negotiation-ssl]
+server = 501-version-negotiation-server
+client = 501-version-negotiation-client
+
+[501-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[501-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-501]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[502-version-negotiation]
+ssl_conf = 502-version-negotiation-ssl
+
+[502-version-negotiation-ssl]
+server = 502-version-negotiation-server
+client = 502-version-negotiation-client
+
+[502-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[502-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-502]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[503-version-negotiation]
+ssl_conf = 503-version-negotiation-ssl
+
+[503-version-negotiation-ssl]
+server = 503-version-negotiation-server
+client = 503-version-negotiation-client
+
+[503-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[503-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-503]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[504-version-negotiation]
+ssl_conf = 504-version-negotiation-ssl
+
+[504-version-negotiation-ssl]
+server = 504-version-negotiation-server
+client = 504-version-negotiation-client
+
+[504-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[504-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-504]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[505-version-negotiation]
+ssl_conf = 505-version-negotiation-ssl
+
+[505-version-negotiation-ssl]
+server = 505-version-negotiation-server
+client = 505-version-negotiation-client
+
+[505-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[505-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-505]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[506-version-negotiation]
+ssl_conf = 506-version-negotiation-ssl
+
+[506-version-negotiation-ssl]
+server = 506-version-negotiation-server
+client = 506-version-negotiation-client
+
+[506-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[506-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-506]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[507-version-negotiation]
+ssl_conf = 507-version-negotiation-ssl
+
+[507-version-negotiation-ssl]
+server = 507-version-negotiation-server
+client = 507-version-negotiation-client
+
+[507-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[507-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-507]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[508-version-negotiation]
+ssl_conf = 508-version-negotiation-ssl
+
+[508-version-negotiation-ssl]
+server = 508-version-negotiation-server
+client = 508-version-negotiation-client
+
+[508-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[508-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-508]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[509-version-negotiation]
+ssl_conf = 509-version-negotiation-ssl
+
+[509-version-negotiation-ssl]
+server = 509-version-negotiation-server
+client = 509-version-negotiation-client
+
+[509-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[509-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-509]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[510-version-negotiation]
+ssl_conf = 510-version-negotiation-ssl
+
+[510-version-negotiation-ssl]
+server = 510-version-negotiation-server
+client = 510-version-negotiation-client
+
+[510-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[510-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-510]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[511-version-negotiation]
+ssl_conf = 511-version-negotiation-ssl
+
+[511-version-negotiation-ssl]
+server = 511-version-negotiation-server
+client = 511-version-negotiation-client
+
+[511-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[511-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-511]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[512-version-negotiation]
+ssl_conf = 512-version-negotiation-ssl
+
+[512-version-negotiation-ssl]
+server = 512-version-negotiation-server
+client = 512-version-negotiation-client
+
+[512-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[512-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-512]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[513-version-negotiation]
+ssl_conf = 513-version-negotiation-ssl
+
+[513-version-negotiation-ssl]
+server = 513-version-negotiation-server
+client = 513-version-negotiation-client
+
+[513-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[513-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-513]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[514-version-negotiation]
+ssl_conf = 514-version-negotiation-ssl
+
+[514-version-negotiation-ssl]
+server = 514-version-negotiation-server
+client = 514-version-negotiation-client
+
+[514-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[514-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-514]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[515-version-negotiation]
+ssl_conf = 515-version-negotiation-ssl
+
+[515-version-negotiation-ssl]
+server = 515-version-negotiation-server
+client = 515-version-negotiation-client
+
+[515-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[515-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-515]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[516-version-negotiation]
+ssl_conf = 516-version-negotiation-ssl
+
+[516-version-negotiation-ssl]
+server = 516-version-negotiation-server
+client = 516-version-negotiation-client
+
+[516-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[516-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-516]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[517-version-negotiation]
+ssl_conf = 517-version-negotiation-ssl
+
+[517-version-negotiation-ssl]
+server = 517-version-negotiation-server
+client = 517-version-negotiation-client
+
+[517-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[517-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-517]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[518-version-negotiation]
+ssl_conf = 518-version-negotiation-ssl
+
+[518-version-negotiation-ssl]
+server = 518-version-negotiation-server
+client = 518-version-negotiation-client
+
+[518-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[518-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-518]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[519-version-negotiation]
+ssl_conf = 519-version-negotiation-ssl
+
+[519-version-negotiation-ssl]
+server = 519-version-negotiation-server
+client = 519-version-negotiation-client
+
+[519-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[519-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-519]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[520-version-negotiation]
+ssl_conf = 520-version-negotiation-ssl
+
+[520-version-negotiation-ssl]
+server = 520-version-negotiation-server
+client = 520-version-negotiation-client
+
+[520-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[520-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-520]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[521-version-negotiation]
+ssl_conf = 521-version-negotiation-ssl
+
+[521-version-negotiation-ssl]
+server = 521-version-negotiation-server
+client = 521-version-negotiation-client
+
+[521-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[521-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-521]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[522-version-negotiation]
+ssl_conf = 522-version-negotiation-ssl
+
+[522-version-negotiation-ssl]
+server = 522-version-negotiation-server
+client = 522-version-negotiation-client
+
+[522-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[522-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-522]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[523-version-negotiation]
+ssl_conf = 523-version-negotiation-ssl
+
+[523-version-negotiation-ssl]
+server = 523-version-negotiation-server
+client = 523-version-negotiation-client
+
+[523-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[523-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-523]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[524-version-negotiation]
+ssl_conf = 524-version-negotiation-ssl
+
+[524-version-negotiation-ssl]
+server = 524-version-negotiation-server
+client = 524-version-negotiation-client
+
+[524-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[524-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-524]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[525-version-negotiation]
+ssl_conf = 525-version-negotiation-ssl
+
+[525-version-negotiation-ssl]
+server = 525-version-negotiation-server
+client = 525-version-negotiation-client
+
+[525-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[525-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-525]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[526-version-negotiation]
+ssl_conf = 526-version-negotiation-ssl
+
+[526-version-negotiation-ssl]
+server = 526-version-negotiation-server
+client = 526-version-negotiation-client
+
+[526-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[526-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-526]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[527-version-negotiation]
+ssl_conf = 527-version-negotiation-ssl
+
+[527-version-negotiation-ssl]
+server = 527-version-negotiation-server
+client = 527-version-negotiation-client
+
+[527-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[527-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-527]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[528-version-negotiation]
+ssl_conf = 528-version-negotiation-ssl
+
+[528-version-negotiation-ssl]
+server = 528-version-negotiation-server
+client = 528-version-negotiation-client
+
+[528-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[528-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-528]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[529-version-negotiation]
+ssl_conf = 529-version-negotiation-ssl
+
+[529-version-negotiation-ssl]
+server = 529-version-negotiation-server
+client = 529-version-negotiation-client
+
+[529-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[529-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-529]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[530-version-negotiation]
+ssl_conf = 530-version-negotiation-ssl
+
+[530-version-negotiation-ssl]
+server = 530-version-negotiation-server
+client = 530-version-negotiation-client
+
+[530-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[530-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-530]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[531-version-negotiation]
+ssl_conf = 531-version-negotiation-ssl
+
+[531-version-negotiation-ssl]
+server = 531-version-negotiation-server
+client = 531-version-negotiation-client
+
+[531-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[531-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-531]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[532-version-negotiation]
+ssl_conf = 532-version-negotiation-ssl
+
+[532-version-negotiation-ssl]
+server = 532-version-negotiation-server
+client = 532-version-negotiation-client
+
+[532-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[532-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-532]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[533-version-negotiation]
+ssl_conf = 533-version-negotiation-ssl
+
+[533-version-negotiation-ssl]
+server = 533-version-negotiation-server
+client = 533-version-negotiation-client
+
+[533-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[533-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-533]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[534-version-negotiation]
+ssl_conf = 534-version-negotiation-ssl
+
+[534-version-negotiation-ssl]
+server = 534-version-negotiation-server
+client = 534-version-negotiation-client
+
+[534-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[534-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-534]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[535-version-negotiation]
+ssl_conf = 535-version-negotiation-ssl
+
+[535-version-negotiation-ssl]
+server = 535-version-negotiation-server
+client = 535-version-negotiation-client
+
+[535-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[535-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-535]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[536-version-negotiation]
+ssl_conf = 536-version-negotiation-ssl
+
+[536-version-negotiation-ssl]
+server = 536-version-negotiation-server
+client = 536-version-negotiation-client
+
+[536-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[536-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-536]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[537-version-negotiation]
+ssl_conf = 537-version-negotiation-ssl
+
+[537-version-negotiation-ssl]
+server = 537-version-negotiation-server
+client = 537-version-negotiation-client
+
+[537-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[537-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-537]
+ExpectedProtocol = TLSv1.1
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[538-version-negotiation]
+ssl_conf = 538-version-negotiation-ssl
+
+[538-version-negotiation-ssl]
+server = 538-version-negotiation-server
+client = 538-version-negotiation-client
+
+[538-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[538-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-538]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[539-version-negotiation]
+ssl_conf = 539-version-negotiation-ssl
+
+[539-version-negotiation-ssl]
+server = 539-version-negotiation-server
+client = 539-version-negotiation-client
+
+[539-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[539-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-539]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[540-version-negotiation]
+ssl_conf = 540-version-negotiation-ssl
+
+[540-version-negotiation-ssl]
+server = 540-version-negotiation-server
+client = 540-version-negotiation-client
+
+[540-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[540-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-540]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[541-version-negotiation]
+ssl_conf = 541-version-negotiation-ssl
+
+[541-version-negotiation-ssl]
+server = 541-version-negotiation-server
+client = 541-version-negotiation-client
+
+[541-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[541-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-541]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[542-version-negotiation]
+ssl_conf = 542-version-negotiation-ssl
+
+[542-version-negotiation-ssl]
+server = 542-version-negotiation-server
+client = 542-version-negotiation-client
+
+[542-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[542-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-542]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[543-version-negotiation]
+ssl_conf = 543-version-negotiation-ssl
+
+[543-version-negotiation-ssl]
+server = 543-version-negotiation-server
+client = 543-version-negotiation-client
+
+[543-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[543-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-543]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[544-version-negotiation]
+ssl_conf = 544-version-negotiation-ssl
+
+[544-version-negotiation-ssl]
+server = 544-version-negotiation-server
+client = 544-version-negotiation-client
+
+[544-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[544-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-544]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[545-version-negotiation]
+ssl_conf = 545-version-negotiation-ssl
+
+[545-version-negotiation-ssl]
+server = 545-version-negotiation-server
+client = 545-version-negotiation-client
+
+[545-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[545-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-545]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[546-version-negotiation]
+ssl_conf = 546-version-negotiation-ssl
+
+[546-version-negotiation-ssl]
+server = 546-version-negotiation-server
+client = 546-version-negotiation-client
+
+[546-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[546-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-546]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[547-version-negotiation]
+ssl_conf = 547-version-negotiation-ssl
+
+[547-version-negotiation-ssl]
+server = 547-version-negotiation-server
+client = 547-version-negotiation-client
+
+[547-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[547-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-547]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[548-version-negotiation]
+ssl_conf = 548-version-negotiation-ssl
+
+[548-version-negotiation-ssl]
+server = 548-version-negotiation-server
+client = 548-version-negotiation-client
+
+[548-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[548-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-548]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[549-version-negotiation]
+ssl_conf = 549-version-negotiation-ssl
+
+[549-version-negotiation-ssl]
+server = 549-version-negotiation-server
+client = 549-version-negotiation-client
+
+[549-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[549-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-549]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[550-version-negotiation]
+ssl_conf = 550-version-negotiation-ssl
+
+[550-version-negotiation-ssl]
+server = 550-version-negotiation-server
+client = 550-version-negotiation-client
+
+[550-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[550-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-550]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[551-version-negotiation]
+ssl_conf = 551-version-negotiation-ssl
+
+[551-version-negotiation-ssl]
+server = 551-version-negotiation-server
+client = 551-version-negotiation-client
+
+[551-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[551-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-551]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[552-version-negotiation]
+ssl_conf = 552-version-negotiation-ssl
+
+[552-version-negotiation-ssl]
+server = 552-version-negotiation-server
+client = 552-version-negotiation-client
+
+[552-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[552-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-552]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[553-version-negotiation]
+ssl_conf = 553-version-negotiation-ssl
+
+[553-version-negotiation-ssl]
+server = 553-version-negotiation-server
+client = 553-version-negotiation-client
+
+[553-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[553-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-553]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[554-version-negotiation]
+ssl_conf = 554-version-negotiation-ssl
+
+[554-version-negotiation-ssl]
+server = 554-version-negotiation-server
+client = 554-version-negotiation-client
+
+[554-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[554-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-554]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[555-version-negotiation]
+ssl_conf = 555-version-negotiation-ssl
+
+[555-version-negotiation-ssl]
+server = 555-version-negotiation-server
+client = 555-version-negotiation-client
+
+[555-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[555-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-555]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[556-version-negotiation]
+ssl_conf = 556-version-negotiation-ssl
+
+[556-version-negotiation-ssl]
+server = 556-version-negotiation-server
+client = 556-version-negotiation-client
+
+[556-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[556-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-556]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[557-version-negotiation]
+ssl_conf = 557-version-negotiation-ssl
+
+[557-version-negotiation-ssl]
+server = 557-version-negotiation-server
+client = 557-version-negotiation-client
+
+[557-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[557-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-557]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[558-version-negotiation]
+ssl_conf = 558-version-negotiation-ssl
+
+[558-version-negotiation-ssl]
+server = 558-version-negotiation-server
+client = 558-version-negotiation-client
+
+[558-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[558-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-558]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[559-version-negotiation]
+ssl_conf = 559-version-negotiation-ssl
+
+[559-version-negotiation-ssl]
+server = 559-version-negotiation-server
+client = 559-version-negotiation-client
+
+[559-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[559-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-559]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[560-version-negotiation]
+ssl_conf = 560-version-negotiation-ssl
+
+[560-version-negotiation-ssl]
+server = 560-version-negotiation-server
+client = 560-version-negotiation-client
+
+[560-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[560-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-560]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[561-version-negotiation]
+ssl_conf = 561-version-negotiation-ssl
+
+[561-version-negotiation-ssl]
+server = 561-version-negotiation-server
+client = 561-version-negotiation-client
+
+[561-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[561-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-561]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[562-version-negotiation]
+ssl_conf = 562-version-negotiation-ssl
+
+[562-version-negotiation-ssl]
+server = 562-version-negotiation-server
+client = 562-version-negotiation-client
+
+[562-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[562-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-562]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[563-version-negotiation]
+ssl_conf = 563-version-negotiation-ssl
+
+[563-version-negotiation-ssl]
+server = 563-version-negotiation-server
+client = 563-version-negotiation-client
+
+[563-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[563-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-563]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[564-version-negotiation]
+ssl_conf = 564-version-negotiation-ssl
+
+[564-version-negotiation-ssl]
+server = 564-version-negotiation-server
+client = 564-version-negotiation-client
+
+[564-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[564-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-564]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[565-version-negotiation]
+ssl_conf = 565-version-negotiation-ssl
+
+[565-version-negotiation-ssl]
+server = 565-version-negotiation-server
+client = 565-version-negotiation-client
+
+[565-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[565-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-565]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[566-version-negotiation]
+ssl_conf = 566-version-negotiation-ssl
+
+[566-version-negotiation-ssl]
+server = 566-version-negotiation-server
+client = 566-version-negotiation-client
+
+[566-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[566-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-566]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[567-version-negotiation]
+ssl_conf = 567-version-negotiation-ssl
+
+[567-version-negotiation-ssl]
+server = 567-version-negotiation-server
+client = 567-version-negotiation-client
+
+[567-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[567-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-567]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[568-version-negotiation]
+ssl_conf = 568-version-negotiation-ssl
+
+[568-version-negotiation-ssl]
+server = 568-version-negotiation-server
+client = 568-version-negotiation-client
+
+[568-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[568-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-568]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[569-version-negotiation]
+ssl_conf = 569-version-negotiation-ssl
+
+[569-version-negotiation-ssl]
+server = 569-version-negotiation-server
+client = 569-version-negotiation-client
+
+[569-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[569-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-569]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[570-version-negotiation]
+ssl_conf = 570-version-negotiation-ssl
+
+[570-version-negotiation-ssl]
+server = 570-version-negotiation-server
+client = 570-version-negotiation-client
+
+[570-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[570-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-570]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[571-version-negotiation]
+ssl_conf = 571-version-negotiation-ssl
+
+[571-version-negotiation-ssl]
+server = 571-version-negotiation-server
+client = 571-version-negotiation-client
+
+[571-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[571-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-571]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[572-version-negotiation]
+ssl_conf = 572-version-negotiation-ssl
+
+[572-version-negotiation-ssl]
+server = 572-version-negotiation-server
+client = 572-version-negotiation-client
+
+[572-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[572-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-572]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[573-version-negotiation]
+ssl_conf = 573-version-negotiation-ssl
+
+[573-version-negotiation-ssl]
+server = 573-version-negotiation-server
+client = 573-version-negotiation-client
+
+[573-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[573-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-573]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[574-version-negotiation]
+ssl_conf = 574-version-negotiation-ssl
+
+[574-version-negotiation-ssl]
+server = 574-version-negotiation-server
+client = 574-version-negotiation-client
+
+[574-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[574-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-574]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[575-version-negotiation]
+ssl_conf = 575-version-negotiation-ssl
+
+[575-version-negotiation-ssl]
+server = 575-version-negotiation-server
+client = 575-version-negotiation-client
+
+[575-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[575-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-575]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[576-version-negotiation]
+ssl_conf = 576-version-negotiation-ssl
+
+[576-version-negotiation-ssl]
+server = 576-version-negotiation-server
+client = 576-version-negotiation-client
+
+[576-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[576-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-576]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[577-version-negotiation]
+ssl_conf = 577-version-negotiation-ssl
+
+[577-version-negotiation-ssl]
+server = 577-version-negotiation-server
+client = 577-version-negotiation-client
+
+[577-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[577-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-577]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[578-version-negotiation]
+ssl_conf = 578-version-negotiation-ssl
+
+[578-version-negotiation-ssl]
+server = 578-version-negotiation-server
+client = 578-version-negotiation-client
+
+[578-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[578-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-578]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[579-version-negotiation]
+ssl_conf = 579-version-negotiation-ssl
+
+[579-version-negotiation-ssl]
+server = 579-version-negotiation-server
+client = 579-version-negotiation-client
+
+[579-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[579-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-579]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[580-version-negotiation]
+ssl_conf = 580-version-negotiation-ssl
+
+[580-version-negotiation-ssl]
+server = 580-version-negotiation-server
+client = 580-version-negotiation-client
+
+[580-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[580-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-580]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[581-version-negotiation]
+ssl_conf = 581-version-negotiation-ssl
+
+[581-version-negotiation-ssl]
+server = 581-version-negotiation-server
+client = 581-version-negotiation-client
+
+[581-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[581-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-581]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[582-version-negotiation]
+ssl_conf = 582-version-negotiation-ssl
+
+[582-version-negotiation-ssl]
+server = 582-version-negotiation-server
+client = 582-version-negotiation-client
+
+[582-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[582-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-582]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[583-version-negotiation]
+ssl_conf = 583-version-negotiation-ssl
+
+[583-version-negotiation-ssl]
+server = 583-version-negotiation-server
+client = 583-version-negotiation-client
+
+[583-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[583-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-583]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[584-version-negotiation]
+ssl_conf = 584-version-negotiation-ssl
+
+[584-version-negotiation-ssl]
+server = 584-version-negotiation-server
+client = 584-version-negotiation-client
+
+[584-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[584-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-584]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[585-version-negotiation]
+ssl_conf = 585-version-negotiation-ssl
+
+[585-version-negotiation-ssl]
+server = 585-version-negotiation-server
+client = 585-version-negotiation-client
+
+[585-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[585-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-585]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[586-version-negotiation]
+ssl_conf = 586-version-negotiation-ssl
+
+[586-version-negotiation-ssl]
+server = 586-version-negotiation-server
+client = 586-version-negotiation-client
+
+[586-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[586-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-586]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[587-version-negotiation]
+ssl_conf = 587-version-negotiation-ssl
+
+[587-version-negotiation-ssl]
+server = 587-version-negotiation-server
+client = 587-version-negotiation-client
+
+[587-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[587-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-587]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[588-version-negotiation]
+ssl_conf = 588-version-negotiation-ssl
+
+[588-version-negotiation-ssl]
+server = 588-version-negotiation-server
+client = 588-version-negotiation-client
+
+[588-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[588-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-588]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[589-version-negotiation]
+ssl_conf = 589-version-negotiation-ssl
+
+[589-version-negotiation-ssl]
+server = 589-version-negotiation-server
+client = 589-version-negotiation-client
+
+[589-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[589-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-589]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[590-version-negotiation]
+ssl_conf = 590-version-negotiation-ssl
+
+[590-version-negotiation-ssl]
+server = 590-version-negotiation-server
+client = 590-version-negotiation-client
+
+[590-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[590-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-590]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[591-version-negotiation]
+ssl_conf = 591-version-negotiation-ssl
+
+[591-version-negotiation-ssl]
+server = 591-version-negotiation-server
+client = 591-version-negotiation-client
+
+[591-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[591-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-591]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[592-version-negotiation]
+ssl_conf = 592-version-negotiation-ssl
+
+[592-version-negotiation-ssl]
+server = 592-version-negotiation-server
+client = 592-version-negotiation-client
+
+[592-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[592-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-592]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[593-version-negotiation]
+ssl_conf = 593-version-negotiation-ssl
+
+[593-version-negotiation-ssl]
+server = 593-version-negotiation-server
+client = 593-version-negotiation-client
+
+[593-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[593-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-593]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[594-version-negotiation]
+ssl_conf = 594-version-negotiation-ssl
+
+[594-version-negotiation-ssl]
+server = 594-version-negotiation-server
+client = 594-version-negotiation-client
+
+[594-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[594-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-594]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[595-version-negotiation]
+ssl_conf = 595-version-negotiation-ssl
+
+[595-version-negotiation-ssl]
+server = 595-version-negotiation-server
+client = 595-version-negotiation-client
+
+[595-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[595-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-595]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[596-version-negotiation]
+ssl_conf = 596-version-negotiation-ssl
+
+[596-version-negotiation-ssl]
+server = 596-version-negotiation-server
+client = 596-version-negotiation-client
+
+[596-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[596-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-596]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[597-version-negotiation]
+ssl_conf = 597-version-negotiation-ssl
+
+[597-version-negotiation-ssl]
+server = 597-version-negotiation-server
+client = 597-version-negotiation-client
+
+[597-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[597-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-597]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[598-version-negotiation]
+ssl_conf = 598-version-negotiation-ssl
+
+[598-version-negotiation-ssl]
+server = 598-version-negotiation-server
+client = 598-version-negotiation-client
+
+[598-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[598-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-598]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[599-version-negotiation]
+ssl_conf = 599-version-negotiation-ssl
+
+[599-version-negotiation-ssl]
+server = 599-version-negotiation-server
+client = 599-version-negotiation-client
+
+[599-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[599-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-599]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[600-version-negotiation]
+ssl_conf = 600-version-negotiation-ssl
+
+[600-version-negotiation-ssl]
+server = 600-version-negotiation-server
+client = 600-version-negotiation-client
+
+[600-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[600-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-600]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[601-version-negotiation]
+ssl_conf = 601-version-negotiation-ssl
+
+[601-version-negotiation-ssl]
+server = 601-version-negotiation-server
+client = 601-version-negotiation-client
+
+[601-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[601-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-601]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[602-version-negotiation]
+ssl_conf = 602-version-negotiation-ssl
+
+[602-version-negotiation-ssl]
+server = 602-version-negotiation-server
+client = 602-version-negotiation-client
+
+[602-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[602-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-602]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[603-version-negotiation]
+ssl_conf = 603-version-negotiation-ssl
+
+[603-version-negotiation-ssl]
+server = 603-version-negotiation-server
+client = 603-version-negotiation-client
+
+[603-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[603-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-603]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[604-version-negotiation]
+ssl_conf = 604-version-negotiation-ssl
+
+[604-version-negotiation-ssl]
+server = 604-version-negotiation-server
+client = 604-version-negotiation-client
+
+[604-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[604-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-604]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[605-version-negotiation]
+ssl_conf = 605-version-negotiation-ssl
+
+[605-version-negotiation-ssl]
+server = 605-version-negotiation-server
+client = 605-version-negotiation-client
+
+[605-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[605-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-605]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[606-version-negotiation]
+ssl_conf = 606-version-negotiation-ssl
+
+[606-version-negotiation-ssl]
+server = 606-version-negotiation-server
+client = 606-version-negotiation-client
+
+[606-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[606-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-606]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[607-version-negotiation]
+ssl_conf = 607-version-negotiation-ssl
+
+[607-version-negotiation-ssl]
+server = 607-version-negotiation-server
+client = 607-version-negotiation-client
+
+[607-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[607-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-607]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[608-version-negotiation]
+ssl_conf = 608-version-negotiation-ssl
+
+[608-version-negotiation-ssl]
+server = 608-version-negotiation-server
+client = 608-version-negotiation-client
+
+[608-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[608-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-608]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[609-version-negotiation]
+ssl_conf = 609-version-negotiation-ssl
+
+[609-version-negotiation-ssl]
+server = 609-version-negotiation-server
+client = 609-version-negotiation-client
+
+[609-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[609-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-609]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[610-version-negotiation]
+ssl_conf = 610-version-negotiation-ssl
+
+[610-version-negotiation-ssl]
+server = 610-version-negotiation-server
+client = 610-version-negotiation-client
+
+[610-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[610-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-610]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[611-version-negotiation]
+ssl_conf = 611-version-negotiation-ssl
+
+[611-version-negotiation-ssl]
+server = 611-version-negotiation-server
+client = 611-version-negotiation-client
+
+[611-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[611-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-611]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[612-version-negotiation]
+ssl_conf = 612-version-negotiation-ssl
+
+[612-version-negotiation-ssl]
+server = 612-version-negotiation-server
+client = 612-version-negotiation-client
+
+[612-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[612-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-612]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[613-version-negotiation]
+ssl_conf = 613-version-negotiation-ssl
+
+[613-version-negotiation-ssl]
+server = 613-version-negotiation-server
+client = 613-version-negotiation-client
+
+[613-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[613-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-613]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[614-version-negotiation]
+ssl_conf = 614-version-negotiation-ssl
+
+[614-version-negotiation-ssl]
+server = 614-version-negotiation-server
+client = 614-version-negotiation-client
+
+[614-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[614-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-614]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[615-version-negotiation]
+ssl_conf = 615-version-negotiation-ssl
+
+[615-version-negotiation-ssl]
+server = 615-version-negotiation-server
+client = 615-version-negotiation-client
+
+[615-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[615-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-615]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[616-version-negotiation]
+ssl_conf = 616-version-negotiation-ssl
+
+[616-version-negotiation-ssl]
+server = 616-version-negotiation-server
+client = 616-version-negotiation-client
+
+[616-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[616-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-616]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[617-version-negotiation]
+ssl_conf = 617-version-negotiation-ssl
+
+[617-version-negotiation-ssl]
+server = 617-version-negotiation-server
+client = 617-version-negotiation-client
+
+[617-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[617-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-617]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[618-version-negotiation]
+ssl_conf = 618-version-negotiation-ssl
+
+[618-version-negotiation-ssl]
+server = 618-version-negotiation-server
+client = 618-version-negotiation-client
+
+[618-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[618-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-618]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[619-version-negotiation]
+ssl_conf = 619-version-negotiation-ssl
+
+[619-version-negotiation-ssl]
+server = 619-version-negotiation-server
+client = 619-version-negotiation-client
+
+[619-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[619-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-619]
+ExpectedProtocol = TLSv1.2
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[620-version-negotiation]
+ssl_conf = 620-version-negotiation-ssl
+
+[620-version-negotiation-ssl]
+server = 620-version-negotiation-server
+client = 620-version-negotiation-client
+
+[620-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[620-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-620]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[621-version-negotiation]
+ssl_conf = 621-version-negotiation-ssl
+
+[621-version-negotiation-ssl]
+server = 621-version-negotiation-server
+client = 621-version-negotiation-client
+
+[621-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[621-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-621]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[622-version-negotiation]
+ssl_conf = 622-version-negotiation-ssl
+
+[622-version-negotiation-ssl]
+server = 622-version-negotiation-server
+client = 622-version-negotiation-client
+
+[622-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[622-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-622]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[623-version-negotiation]
+ssl_conf = 623-version-negotiation-ssl
+
+[623-version-negotiation-ssl]
+server = 623-version-negotiation-server
+client = 623-version-negotiation-client
+
+[623-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[623-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-623]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[624-version-negotiation]
+ssl_conf = 624-version-negotiation-ssl
+
+[624-version-negotiation-ssl]
+server = 624-version-negotiation-server
+client = 624-version-negotiation-client
+
+[624-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[624-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-624]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[625-version-negotiation]
+ssl_conf = 625-version-negotiation-ssl
+
+[625-version-negotiation-ssl]
+server = 625-version-negotiation-server
+client = 625-version-negotiation-client
+
+[625-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[625-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-625]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[626-version-negotiation]
+ssl_conf = 626-version-negotiation-ssl
+
+[626-version-negotiation-ssl]
+server = 626-version-negotiation-server
+client = 626-version-negotiation-client
+
+[626-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[626-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-626]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[627-version-negotiation]
+ssl_conf = 627-version-negotiation-ssl
+
+[627-version-negotiation-ssl]
+server = 627-version-negotiation-server
+client = 627-version-negotiation-client
+
+[627-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[627-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-627]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[628-version-negotiation]
+ssl_conf = 628-version-negotiation-ssl
+
+[628-version-negotiation-ssl]
+server = 628-version-negotiation-server
+client = 628-version-negotiation-client
+
+[628-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[628-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-628]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[629-version-negotiation]
+ssl_conf = 629-version-negotiation-ssl
+
+[629-version-negotiation-ssl]
+server = 629-version-negotiation-server
+client = 629-version-negotiation-client
+
+[629-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[629-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-629]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[630-version-negotiation]
+ssl_conf = 630-version-negotiation-ssl
+
+[630-version-negotiation-ssl]
+server = 630-version-negotiation-server
+client = 630-version-negotiation-client
+
+[630-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[630-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-630]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[631-version-negotiation]
+ssl_conf = 631-version-negotiation-ssl
+
+[631-version-negotiation-ssl]
+server = 631-version-negotiation-server
+client = 631-version-negotiation-client
+
+[631-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[631-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-631]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[632-version-negotiation]
+ssl_conf = 632-version-negotiation-ssl
+
+[632-version-negotiation-ssl]
+server = 632-version-negotiation-server
+client = 632-version-negotiation-client
+
+[632-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[632-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-632]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[633-version-negotiation]
+ssl_conf = 633-version-negotiation-ssl
+
+[633-version-negotiation-ssl]
+server = 633-version-negotiation-server
+client = 633-version-negotiation-client
+
+[633-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[633-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-633]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[634-version-negotiation]
+ssl_conf = 634-version-negotiation-ssl
+
+[634-version-negotiation-ssl]
+server = 634-version-negotiation-server
+client = 634-version-negotiation-client
+
+[634-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[634-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-634]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[635-version-negotiation]
+ssl_conf = 635-version-negotiation-ssl
+
+[635-version-negotiation-ssl]
+server = 635-version-negotiation-server
+client = 635-version-negotiation-client
+
+[635-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[635-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-635]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[636-version-negotiation]
+ssl_conf = 636-version-negotiation-ssl
+
+[636-version-negotiation-ssl]
+server = 636-version-negotiation-server
+client = 636-version-negotiation-client
+
+[636-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[636-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-636]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[637-version-negotiation]
+ssl_conf = 637-version-negotiation-ssl
+
+[637-version-negotiation-ssl]
+server = 637-version-negotiation-server
+client = 637-version-negotiation-client
+
+[637-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[637-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-637]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[638-version-negotiation]
+ssl_conf = 638-version-negotiation-ssl
+
+[638-version-negotiation-ssl]
+server = 638-version-negotiation-server
+client = 638-version-negotiation-client
+
+[638-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[638-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-638]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[639-version-negotiation]
+ssl_conf = 639-version-negotiation-ssl
+
+[639-version-negotiation-ssl]
+server = 639-version-negotiation-server
+client = 639-version-negotiation-client
+
+[639-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[639-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-639]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[640-version-negotiation]
+ssl_conf = 640-version-negotiation-ssl
+
+[640-version-negotiation-ssl]
+server = 640-version-negotiation-server
+client = 640-version-negotiation-client
+
+[640-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[640-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-640]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[641-version-negotiation]
+ssl_conf = 641-version-negotiation-ssl
+
+[641-version-negotiation-ssl]
+server = 641-version-negotiation-server
+client = 641-version-negotiation-client
+
+[641-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[641-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-641]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[642-version-negotiation]
+ssl_conf = 642-version-negotiation-ssl
+
+[642-version-negotiation-ssl]
+server = 642-version-negotiation-server
+client = 642-version-negotiation-client
+
+[642-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[642-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-642]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[643-version-negotiation]
+ssl_conf = 643-version-negotiation-ssl
+
+[643-version-negotiation-ssl]
+server = 643-version-negotiation-server
+client = 643-version-negotiation-client
+
+[643-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[643-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-643]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[644-version-negotiation]
+ssl_conf = 644-version-negotiation-ssl
+
+[644-version-negotiation-ssl]
+server = 644-version-negotiation-server
+client = 644-version-negotiation-client
+
+[644-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[644-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-644]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[645-version-negotiation]
+ssl_conf = 645-version-negotiation-ssl
+
+[645-version-negotiation-ssl]
+server = 645-version-negotiation-server
+client = 645-version-negotiation-client
+
+[645-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[645-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-645]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[646-version-negotiation]
+ssl_conf = 646-version-negotiation-ssl
+
+[646-version-negotiation-ssl]
+server = 646-version-negotiation-server
+client = 646-version-negotiation-client
+
+[646-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[646-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-646]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[647-version-negotiation]
+ssl_conf = 647-version-negotiation-ssl
+
+[647-version-negotiation-ssl]
+server = 647-version-negotiation-server
+client = 647-version-negotiation-client
+
+[647-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[647-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-647]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[648-version-negotiation]
+ssl_conf = 648-version-negotiation-ssl
+
+[648-version-negotiation-ssl]
+server = 648-version-negotiation-server
+client = 648-version-negotiation-client
+
+[648-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[648-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-648]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[649-version-negotiation]
+ssl_conf = 649-version-negotiation-ssl
+
+[649-version-negotiation-ssl]
+server = 649-version-negotiation-server
+client = 649-version-negotiation-client
+
+[649-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[649-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-649]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[650-version-negotiation]
+ssl_conf = 650-version-negotiation-ssl
+
+[650-version-negotiation-ssl]
+server = 650-version-negotiation-server
+client = 650-version-negotiation-client
+
+[650-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[650-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-650]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[651-version-negotiation]
+ssl_conf = 651-version-negotiation-ssl
+
+[651-version-negotiation-ssl]
+server = 651-version-negotiation-server
+client = 651-version-negotiation-client
+
+[651-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[651-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-651]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[652-version-negotiation]
+ssl_conf = 652-version-negotiation-ssl
+
+[652-version-negotiation-ssl]
+server = 652-version-negotiation-server
+client = 652-version-negotiation-client
+
+[652-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[652-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-652]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[653-version-negotiation]
+ssl_conf = 653-version-negotiation-ssl
+
+[653-version-negotiation-ssl]
+server = 653-version-negotiation-server
+client = 653-version-negotiation-client
+
+[653-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[653-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-653]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[654-version-negotiation]
+ssl_conf = 654-version-negotiation-ssl
+
+[654-version-negotiation-ssl]
+server = 654-version-negotiation-server
+client = 654-version-negotiation-client
+
+[654-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[654-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-654]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[655-version-negotiation]
+ssl_conf = 655-version-negotiation-ssl
+
+[655-version-negotiation-ssl]
+server = 655-version-negotiation-server
+client = 655-version-negotiation-client
+
+[655-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[655-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-655]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[656-version-negotiation]
+ssl_conf = 656-version-negotiation-ssl
+
+[656-version-negotiation-ssl]
+server = 656-version-negotiation-server
+client = 656-version-negotiation-client
+
+[656-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = SSLv3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[656-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-656]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[657-version-negotiation]
+ssl_conf = 657-version-negotiation-ssl
+
+[657-version-negotiation-ssl]
+server = 657-version-negotiation-server
+client = 657-version-negotiation-client
+
+[657-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[657-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-657]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[658-version-negotiation]
+ssl_conf = 658-version-negotiation-ssl
+
+[658-version-negotiation-ssl]
+server = 658-version-negotiation-server
+client = 658-version-negotiation-client
+
+[658-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[658-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-658]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[659-version-negotiation]
+ssl_conf = 659-version-negotiation-ssl
+
+[659-version-negotiation-ssl]
+server = 659-version-negotiation-server
+client = 659-version-negotiation-client
+
+[659-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[659-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-659]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[660-version-negotiation]
+ssl_conf = 660-version-negotiation-ssl
+
+[660-version-negotiation-ssl]
+server = 660-version-negotiation-server
+client = 660-version-negotiation-client
+
+[660-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[660-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-660]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[661-version-negotiation]
+ssl_conf = 661-version-negotiation-ssl
+
+[661-version-negotiation-ssl]
+server = 661-version-negotiation-server
+client = 661-version-negotiation-client
+
+[661-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = SSLv3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[661-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-661]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[662-version-negotiation]
+ssl_conf = 662-version-negotiation-ssl
+
+[662-version-negotiation-ssl]
+server = 662-version-negotiation-server
+client = 662-version-negotiation-client
+
+[662-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[662-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-662]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[663-version-negotiation]
+ssl_conf = 663-version-negotiation-ssl
+
+[663-version-negotiation-ssl]
+server = 663-version-negotiation-server
+client = 663-version-negotiation-client
+
+[663-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[663-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-663]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[664-version-negotiation]
+ssl_conf = 664-version-negotiation-ssl
+
+[664-version-negotiation-ssl]
+server = 664-version-negotiation-server
+client = 664-version-negotiation-client
+
+[664-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[664-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-664]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[665-version-negotiation]
+ssl_conf = 665-version-negotiation-ssl
+
+[665-version-negotiation-ssl]
+server = 665-version-negotiation-server
+client = 665-version-negotiation-client
+
+[665-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[665-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-665]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[666-version-negotiation]
+ssl_conf = 666-version-negotiation-ssl
+
+[666-version-negotiation-ssl]
+server = 666-version-negotiation-server
+client = 666-version-negotiation-client
+
+[666-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[666-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-666]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[667-version-negotiation]
+ssl_conf = 667-version-negotiation-ssl
+
+[667-version-negotiation-ssl]
+server = 667-version-negotiation-server
+client = 667-version-negotiation-client
+
+[667-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[667-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-667]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[668-version-negotiation]
+ssl_conf = 668-version-negotiation-ssl
+
+[668-version-negotiation-ssl]
+server = 668-version-negotiation-server
+client = 668-version-negotiation-client
+
+[668-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[668-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-668]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[669-version-negotiation]
+ssl_conf = 669-version-negotiation-ssl
+
+[669-version-negotiation-ssl]
+server = 669-version-negotiation-server
+client = 669-version-negotiation-client
+
+[669-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[669-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-669]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[670-version-negotiation]
+ssl_conf = 670-version-negotiation-ssl
+
+[670-version-negotiation-ssl]
+server = 670-version-negotiation-server
+client = 670-version-negotiation-client
+
+[670-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[670-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-670]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[671-version-negotiation]
+ssl_conf = 671-version-negotiation-ssl
+
+[671-version-negotiation-ssl]
+server = 671-version-negotiation-server
+client = 671-version-negotiation-client
+
+[671-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[671-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-671]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[672-version-negotiation]
+ssl_conf = 672-version-negotiation-ssl
+
+[672-version-negotiation-ssl]
+server = 672-version-negotiation-server
+client = 672-version-negotiation-client
+
+[672-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[672-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-672]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[673-version-negotiation]
+ssl_conf = 673-version-negotiation-ssl
+
+[673-version-negotiation-ssl]
+server = 673-version-negotiation-server
+client = 673-version-negotiation-client
+
+[673-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[673-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-673]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[674-version-negotiation]
+ssl_conf = 674-version-negotiation-ssl
+
+[674-version-negotiation-ssl]
+server = 674-version-negotiation-server
+client = 674-version-negotiation-client
+
+[674-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[674-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-674]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[675-version-negotiation]
+ssl_conf = 675-version-negotiation-ssl
+
+[675-version-negotiation-ssl]
+server = 675-version-negotiation-server
+client = 675-version-negotiation-client
+
+[675-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[675-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-675]
+ExpectedProtocol = TLSv1.3
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[676-ciphersuite-sanity-check-client]
+ssl_conf = 676-ciphersuite-sanity-check-client-ssl
+
+[676-ciphersuite-sanity-check-client-ssl]
+server = 676-ciphersuite-sanity-check-client-server
+client = 676-ciphersuite-sanity-check-client-client
+
+[676-ciphersuite-sanity-check-client-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[676-ciphersuite-sanity-check-client-client]
+CipherString = AES128-SHA
+Ciphersuites =
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-676]
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[677-ciphersuite-sanity-check-server]
+ssl_conf = 677-ciphersuite-sanity-check-server-ssl
+
+[677-ciphersuite-sanity-check-server-ssl]
+server = 677-ciphersuite-sanity-check-server-server
+client = 677-ciphersuite-sanity-check-server-client
+
+[677-ciphersuite-sanity-check-server-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = AES128-SHA
+Ciphersuites =
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[677-ciphersuite-sanity-check-server-client]
+CipherString = AES128-SHA
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-677]
+ExpectedResult = ServerFail
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/02-protocol-version.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/02-protocol-version.conf.in
new file mode 100644
index 000000000..26d64b5f8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/02-protocol-version.conf.in
@@ -0,0 +1,19 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test TLS version negotiation
+
+package ssltests;
+
+use strict;
+use warnings;
+
+use protocol_version;
+
+our @tests = generate_version_tests("TLS");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/03-custom_verify.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/03-custom_verify.conf
new file mode 100644
index 000000000..8dca715e7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/03-custom_verify.conf
@@ -0,0 +1,238 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 9
+
+test-0 = 0-verify-success
+test-1 = 1-verify-custom-reject
+test-2 = 2-verify-custom-allow
+test-3 = 3-noverify-success
+test-4 = 4-noverify-ignore-custom-reject
+test-5 = 5-noverify-accept-custom-allow
+test-6 = 6-verify-fail-no-root
+test-7 = 7-verify-custom-success-no-root
+test-8 = 8-verify-custom-fail-no-root
+# ===========================================================
+
+[0-verify-success]
+ssl_conf = 0-verify-success-ssl
+
+[0-verify-success-ssl]
+server = 0-verify-success-server
+client = 0-verify-success-client
+
+[0-verify-success-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-verify-success-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[1-verify-custom-reject]
+ssl_conf = 1-verify-custom-reject-ssl
+
+[1-verify-custom-reject-ssl]
+server = 1-verify-custom-reject-server
+client = 1-verify-custom-reject-client
+
+[1-verify-custom-reject-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-verify-custom-reject-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedClientAlert = HandshakeFailure
+ExpectedResult = ClientFail
+client = 1-verify-custom-reject-client-extra
+
+[1-verify-custom-reject-client-extra]
+VerifyCallback = RejectAll
+
+
+# ===========================================================
+
+[2-verify-custom-allow]
+ssl_conf = 2-verify-custom-allow-ssl
+
+[2-verify-custom-allow-ssl]
+server = 2-verify-custom-allow-server
+client = 2-verify-custom-allow-client
+
+[2-verify-custom-allow-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-verify-custom-allow-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedResult = Success
+client = 2-verify-custom-allow-client-extra
+
+[2-verify-custom-allow-client-extra]
+VerifyCallback = AcceptAll
+
+
+# ===========================================================
+
+[3-noverify-success]
+ssl_conf = 3-noverify-success-ssl
+
+[3-noverify-success-ssl]
+server = 3-noverify-success-server
+client = 3-noverify-success-client
+
+[3-noverify-success-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-noverify-success-client]
+CipherString = DEFAULT
+
+[test-3]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[4-noverify-ignore-custom-reject]
+ssl_conf = 4-noverify-ignore-custom-reject-ssl
+
+[4-noverify-ignore-custom-reject-ssl]
+server = 4-noverify-ignore-custom-reject-server
+client = 4-noverify-ignore-custom-reject-client
+
+[4-noverify-ignore-custom-reject-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[4-noverify-ignore-custom-reject-client]
+CipherString = DEFAULT
+
+[test-4]
+ExpectedResult = Success
+client = 4-noverify-ignore-custom-reject-client-extra
+
+[4-noverify-ignore-custom-reject-client-extra]
+VerifyCallback = RejectAll
+
+
+# ===========================================================
+
+[5-noverify-accept-custom-allow]
+ssl_conf = 5-noverify-accept-custom-allow-ssl
+
+[5-noverify-accept-custom-allow-ssl]
+server = 5-noverify-accept-custom-allow-server
+client = 5-noverify-accept-custom-allow-client
+
+[5-noverify-accept-custom-allow-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[5-noverify-accept-custom-allow-client]
+CipherString = DEFAULT
+
+[test-5]
+ExpectedResult = Success
+client = 5-noverify-accept-custom-allow-client-extra
+
+[5-noverify-accept-custom-allow-client-extra]
+VerifyCallback = AcceptAll
+
+
+# ===========================================================
+
+[6-verify-fail-no-root]
+ssl_conf = 6-verify-fail-no-root-ssl
+
+[6-verify-fail-no-root-ssl]
+server = 6-verify-fail-no-root-server
+client = 6-verify-fail-no-root-client
+
+[6-verify-fail-no-root-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-verify-fail-no-root-client]
+CipherString = DEFAULT
+VerifyMode = Peer
+
+[test-6]
+ExpectedClientAlert = UnknownCA
+ExpectedResult = ClientFail
+
+
+# ===========================================================
+
+[7-verify-custom-success-no-root]
+ssl_conf = 7-verify-custom-success-no-root-ssl
+
+[7-verify-custom-success-no-root-ssl]
+server = 7-verify-custom-success-no-root-server
+client = 7-verify-custom-success-no-root-client
+
+[7-verify-custom-success-no-root-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-verify-custom-success-no-root-client]
+CipherString = DEFAULT
+VerifyMode = Peer
+
+[test-7]
+ExpectedResult = Success
+client = 7-verify-custom-success-no-root-client-extra
+
+[7-verify-custom-success-no-root-client-extra]
+VerifyCallback = AcceptAll
+
+
+# ===========================================================
+
+[8-verify-custom-fail-no-root]
+ssl_conf = 8-verify-custom-fail-no-root-ssl
+
+[8-verify-custom-fail-no-root-ssl]
+server = 8-verify-custom-fail-no-root-server
+client = 8-verify-custom-fail-no-root-client
+
+[8-verify-custom-fail-no-root-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-verify-custom-fail-no-root-client]
+CipherString = DEFAULT
+VerifyMode = Peer
+
+[test-8]
+ExpectedClientAlert = HandshakeFailure
+ExpectedResult = ClientFail
+client = 8-verify-custom-fail-no-root-client-extra
+
+[8-verify-custom-fail-no-root-client-extra]
+VerifyCallback = RejectAll
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/03-custom_verify.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/03-custom_verify.conf.in
new file mode 100644
index 000000000..287ca9bc8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/03-custom_verify.conf.in
@@ -0,0 +1,145 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## SSL test configurations
+
+package ssltests;
+
+our @tests = (
+
+ # Sanity-check that verification indeed succeeds without the
+ # restrictive callback.
+ {
+ name => "verify-success",
+ server => { },
+ client => { },
+ test => { "ExpectedResult" => "Success" },
+ },
+
+ # Same test as above but with a custom callback that always fails.
+ {
+ name => "verify-custom-reject",
+ server => { },
+ client => {
+ extra => {
+ "VerifyCallback" => "RejectAll",
+ },
+ },
+ test => {
+ "ExpectedResult" => "ClientFail",
+ "ExpectedClientAlert" => "HandshakeFailure",
+ },
+ },
+
+ # Same test as above but with a custom callback that always succeeds.
+ {
+ name => "verify-custom-allow",
+ server => { },
+ client => {
+ extra => {
+ "VerifyCallback" => "AcceptAll",
+ },
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ },
+ },
+
+ # Sanity-check that verification indeed succeeds if peer verification
+ # is not requested.
+ {
+ name => "noverify-success",
+ server => { },
+ client => {
+ "VerifyMode" => undef,
+ "VerifyCAFile" => undef,
+ },
+ test => { "ExpectedResult" => "Success" },
+ },
+
+ # Same test as above but with a custom callback that always fails.
+ # The callback return has no impact on handshake success in this mode.
+ {
+ name => "noverify-ignore-custom-reject",
+ server => { },
+ client => {
+ "VerifyMode" => undef,
+ "VerifyCAFile" => undef,
+ extra => {
+ "VerifyCallback" => "RejectAll",
+ },
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ },
+ },
+
+ # Same test as above but with a custom callback that always succeeds.
+ # The callback return has no impact on handshake success in this mode.
+ {
+ name => "noverify-accept-custom-allow",
+ server => { },
+ client => {
+ "VerifyMode" => undef,
+ "VerifyCAFile" => undef,
+ extra => {
+ "VerifyCallback" => "AcceptAll",
+ },
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ },
+ },
+
+ # Sanity-check that verification indeed fails without the
+ # permissive callback.
+ {
+ name => "verify-fail-no-root",
+ server => { },
+ client => {
+ # Don't set up the client root file.
+ "VerifyCAFile" => undef,
+ },
+ test => {
+ "ExpectedResult" => "ClientFail",
+ "ExpectedClientAlert" => "UnknownCA",
+ },
+ },
+
+ # Same test as above but with a custom callback that always succeeds.
+ {
+ name => "verify-custom-success-no-root",
+ server => { },
+ client => {
+ "VerifyCAFile" => undef,
+ extra => {
+ "VerifyCallback" => "AcceptAll",
+ },
+ },
+ test => {
+ "ExpectedResult" => "Success"
+ },
+ },
+
+ # Same test as above but with a custom callback that always fails.
+ {
+ name => "verify-custom-fail-no-root",
+ server => { },
+ client => {
+ "VerifyCAFile" => undef,
+ extra => {
+ "VerifyCallback" => "RejectAll",
+ },
+ },
+ test => {
+ "ExpectedResult" => "ClientFail",
+ "ExpectedClientAlert" => "HandshakeFailure",
+ },
+ },
+);
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/04-client_auth.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/04-client_auth.conf
new file mode 100644
index 000000000..8debb66fd
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/04-client_auth.conf
@@ -0,0 +1,1132 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 36
+
+test-0 = 0-server-auth-flex
+test-1 = 1-client-auth-flex-request
+test-2 = 2-client-auth-flex-require-fail
+test-3 = 3-client-auth-flex-require
+test-4 = 4-client-auth-flex-require-non-empty-names
+test-5 = 5-client-auth-flex-noroot
+test-6 = 6-server-auth-TLSv1
+test-7 = 7-client-auth-TLSv1-request
+test-8 = 8-client-auth-TLSv1-require-fail
+test-9 = 9-client-auth-TLSv1-require
+test-10 = 10-client-auth-TLSv1-require-non-empty-names
+test-11 = 11-client-auth-TLSv1-noroot
+test-12 = 12-server-auth-TLSv1.1
+test-13 = 13-client-auth-TLSv1.1-request
+test-14 = 14-client-auth-TLSv1.1-require-fail
+test-15 = 15-client-auth-TLSv1.1-require
+test-16 = 16-client-auth-TLSv1.1-require-non-empty-names
+test-17 = 17-client-auth-TLSv1.1-noroot
+test-18 = 18-server-auth-TLSv1.2
+test-19 = 19-client-auth-TLSv1.2-request
+test-20 = 20-client-auth-TLSv1.2-require-fail
+test-21 = 21-client-auth-TLSv1.2-require
+test-22 = 22-client-auth-TLSv1.2-require-non-empty-names
+test-23 = 23-client-auth-TLSv1.2-noroot
+test-24 = 24-server-auth-DTLSv1
+test-25 = 25-client-auth-DTLSv1-request
+test-26 = 26-client-auth-DTLSv1-require-fail
+test-27 = 27-client-auth-DTLSv1-require
+test-28 = 28-client-auth-DTLSv1-require-non-empty-names
+test-29 = 29-client-auth-DTLSv1-noroot
+test-30 = 30-server-auth-DTLSv1.2
+test-31 = 31-client-auth-DTLSv1.2-request
+test-32 = 32-client-auth-DTLSv1.2-require-fail
+test-33 = 33-client-auth-DTLSv1.2-require
+test-34 = 34-client-auth-DTLSv1.2-require-non-empty-names
+test-35 = 35-client-auth-DTLSv1.2-noroot
+# ===========================================================
+
+[0-server-auth-flex]
+ssl_conf = 0-server-auth-flex-ssl
+
+[0-server-auth-flex-ssl]
+server = 0-server-auth-flex-server
+client = 0-server-auth-flex-client
+
+[0-server-auth-flex-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-server-auth-flex-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[1-client-auth-flex-request]
+ssl_conf = 1-client-auth-flex-request-ssl
+
+[1-client-auth-flex-request-ssl]
+server = 1-client-auth-flex-request-server
+client = 1-client-auth-flex-request-client
+
+[1-client-auth-flex-request-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = Request
+
+[1-client-auth-flex-request-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[2-client-auth-flex-require-fail]
+ssl_conf = 2-client-auth-flex-require-fail-ssl
+
+[2-client-auth-flex-require-fail-ssl]
+server = 2-client-auth-flex-require-fail-server
+client = 2-client-auth-flex-require-fail-client
+
+[2-client-auth-flex-require-fail-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Require
+
+[2-client-auth-flex-require-fail-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedResult = ServerFail
+ExpectedServerAlert = CertificateRequired
+
+
+# ===========================================================
+
+[3-client-auth-flex-require]
+ssl_conf = 3-client-auth-flex-require-ssl
+
+[3-client-auth-flex-require-ssl]
+server = 3-client-auth-flex-require-server
+client = 3-client-auth-flex-require-client
+
+[3-client-auth-flex-require-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Request
+
+[3-client-auth-flex-require-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedClientCANames = empty
+ExpectedClientCertType = RSA
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[4-client-auth-flex-require-non-empty-names]
+ssl_conf = 4-client-auth-flex-require-non-empty-names-ssl
+
+[4-client-auth-flex-require-non-empty-names-ssl]
+server = 4-client-auth-flex-require-non-empty-names-server
+client = 4-client-auth-flex-require-non-empty-names-client
+
+[4-client-auth-flex-require-non-empty-names-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ClientCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Request
+
+[4-client-auth-flex-require-non-empty-names-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-4]
+ExpectedClientCANames = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+ExpectedClientCertType = RSA
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[5-client-auth-flex-noroot]
+ssl_conf = 5-client-auth-flex-noroot-ssl
+
+[5-client-auth-flex-noroot-ssl]
+server = 5-client-auth-flex-noroot-server
+client = 5-client-auth-flex-noroot-client
+
+[5-client-auth-flex-noroot-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = Require
+
+[5-client-auth-flex-noroot-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+ExpectedResult = ServerFail
+ExpectedServerAlert = UnknownCA
+
+
+# ===========================================================
+
+[6-server-auth-TLSv1]
+ssl_conf = 6-server-auth-TLSv1-ssl
+
+[6-server-auth-TLSv1-ssl]
+server = 6-server-auth-TLSv1-server
+client = 6-server-auth-TLSv1-client
+
+[6-server-auth-TLSv1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-server-auth-TLSv1-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-6]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[7-client-auth-TLSv1-request]
+ssl_conf = 7-client-auth-TLSv1-request-ssl
+
+[7-client-auth-TLSv1-request-ssl]
+server = 7-client-auth-TLSv1-request-server
+client = 7-client-auth-TLSv1-request-client
+
+[7-client-auth-TLSv1-request-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = Request
+
+[7-client-auth-TLSv1-request-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-7]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[8-client-auth-TLSv1-require-fail]
+ssl_conf = 8-client-auth-TLSv1-require-fail-ssl
+
+[8-client-auth-TLSv1-require-fail-ssl]
+server = 8-client-auth-TLSv1-require-fail-server
+client = 8-client-auth-TLSv1-require-fail-client
+
+[8-client-auth-TLSv1-require-fail-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Require
+
+[8-client-auth-TLSv1-require-fail-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-8]
+ExpectedResult = ServerFail
+ExpectedServerAlert = HandshakeFailure
+
+
+# ===========================================================
+
+[9-client-auth-TLSv1-require]
+ssl_conf = 9-client-auth-TLSv1-require-ssl
+
+[9-client-auth-TLSv1-require-ssl]
+server = 9-client-auth-TLSv1-require-server
+client = 9-client-auth-TLSv1-require-client
+
+[9-client-auth-TLSv1-require-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Request
+
+[9-client-auth-TLSv1-require-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-9]
+ExpectedClientCANames = empty
+ExpectedClientCertType = RSA
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[10-client-auth-TLSv1-require-non-empty-names]
+ssl_conf = 10-client-auth-TLSv1-require-non-empty-names-ssl
+
+[10-client-auth-TLSv1-require-non-empty-names-ssl]
+server = 10-client-auth-TLSv1-require-non-empty-names-server
+client = 10-client-auth-TLSv1-require-non-empty-names-client
+
+[10-client-auth-TLSv1-require-non-empty-names-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ClientCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Request
+
+[10-client-auth-TLSv1-require-non-empty-names-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-10]
+ExpectedClientCANames = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+ExpectedClientCertType = RSA
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[11-client-auth-TLSv1-noroot]
+ssl_conf = 11-client-auth-TLSv1-noroot-ssl
+
+[11-client-auth-TLSv1-noroot-ssl]
+server = 11-client-auth-TLSv1-noroot-server
+client = 11-client-auth-TLSv1-noroot-client
+
+[11-client-auth-TLSv1-noroot-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = Require
+
+[11-client-auth-TLSv1-noroot-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-11]
+ExpectedResult = ServerFail
+ExpectedServerAlert = UnknownCA
+
+
+# ===========================================================
+
+[12-server-auth-TLSv1.1]
+ssl_conf = 12-server-auth-TLSv1.1-ssl
+
+[12-server-auth-TLSv1.1-ssl]
+server = 12-server-auth-TLSv1.1-server
+client = 12-server-auth-TLSv1.1-client
+
+[12-server-auth-TLSv1.1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[12-server-auth-TLSv1.1-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-12]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[13-client-auth-TLSv1.1-request]
+ssl_conf = 13-client-auth-TLSv1.1-request-ssl
+
+[13-client-auth-TLSv1.1-request-ssl]
+server = 13-client-auth-TLSv1.1-request-server
+client = 13-client-auth-TLSv1.1-request-client
+
+[13-client-auth-TLSv1.1-request-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = Request
+
+[13-client-auth-TLSv1.1-request-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-13]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[14-client-auth-TLSv1.1-require-fail]
+ssl_conf = 14-client-auth-TLSv1.1-require-fail-ssl
+
+[14-client-auth-TLSv1.1-require-fail-ssl]
+server = 14-client-auth-TLSv1.1-require-fail-server
+client = 14-client-auth-TLSv1.1-require-fail-client
+
+[14-client-auth-TLSv1.1-require-fail-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Require
+
+[14-client-auth-TLSv1.1-require-fail-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-14]
+ExpectedResult = ServerFail
+ExpectedServerAlert = HandshakeFailure
+
+
+# ===========================================================
+
+[15-client-auth-TLSv1.1-require]
+ssl_conf = 15-client-auth-TLSv1.1-require-ssl
+
+[15-client-auth-TLSv1.1-require-ssl]
+server = 15-client-auth-TLSv1.1-require-server
+client = 15-client-auth-TLSv1.1-require-client
+
+[15-client-auth-TLSv1.1-require-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Request
+
+[15-client-auth-TLSv1.1-require-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-15]
+ExpectedClientCANames = empty
+ExpectedClientCertType = RSA
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[16-client-auth-TLSv1.1-require-non-empty-names]
+ssl_conf = 16-client-auth-TLSv1.1-require-non-empty-names-ssl
+
+[16-client-auth-TLSv1.1-require-non-empty-names-ssl]
+server = 16-client-auth-TLSv1.1-require-non-empty-names-server
+client = 16-client-auth-TLSv1.1-require-non-empty-names-client
+
+[16-client-auth-TLSv1.1-require-non-empty-names-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ClientCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Request
+
+[16-client-auth-TLSv1.1-require-non-empty-names-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-16]
+ExpectedClientCANames = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+ExpectedClientCertType = RSA
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[17-client-auth-TLSv1.1-noroot]
+ssl_conf = 17-client-auth-TLSv1.1-noroot-ssl
+
+[17-client-auth-TLSv1.1-noroot-ssl]
+server = 17-client-auth-TLSv1.1-noroot-server
+client = 17-client-auth-TLSv1.1-noroot-client
+
+[17-client-auth-TLSv1.1-noroot-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = Require
+
+[17-client-auth-TLSv1.1-noroot-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-17]
+ExpectedResult = ServerFail
+ExpectedServerAlert = UnknownCA
+
+
+# ===========================================================
+
+[18-server-auth-TLSv1.2]
+ssl_conf = 18-server-auth-TLSv1.2-ssl
+
+[18-server-auth-TLSv1.2-ssl]
+server = 18-server-auth-TLSv1.2-server
+client = 18-server-auth-TLSv1.2-client
+
+[18-server-auth-TLSv1.2-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[18-server-auth-TLSv1.2-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-18]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[19-client-auth-TLSv1.2-request]
+ssl_conf = 19-client-auth-TLSv1.2-request-ssl
+
+[19-client-auth-TLSv1.2-request-ssl]
+server = 19-client-auth-TLSv1.2-request-server
+client = 19-client-auth-TLSv1.2-request-client
+
+[19-client-auth-TLSv1.2-request-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = Request
+
+[19-client-auth-TLSv1.2-request-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-19]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[20-client-auth-TLSv1.2-require-fail]
+ssl_conf = 20-client-auth-TLSv1.2-require-fail-ssl
+
+[20-client-auth-TLSv1.2-require-fail-ssl]
+server = 20-client-auth-TLSv1.2-require-fail-server
+client = 20-client-auth-TLSv1.2-require-fail-client
+
+[20-client-auth-TLSv1.2-require-fail-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Require
+
+[20-client-auth-TLSv1.2-require-fail-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-20]
+ExpectedResult = ServerFail
+ExpectedServerAlert = HandshakeFailure
+
+
+# ===========================================================
+
+[21-client-auth-TLSv1.2-require]
+ssl_conf = 21-client-auth-TLSv1.2-require-ssl
+
+[21-client-auth-TLSv1.2-require-ssl]
+server = 21-client-auth-TLSv1.2-require-server
+client = 21-client-auth-TLSv1.2-require-client
+
+[21-client-auth-TLSv1.2-require-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ClientSignatureAlgorithms = SHA256+RSA
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Request
+
+[21-client-auth-TLSv1.2-require-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-21]
+ExpectedClientCANames = empty
+ExpectedClientCertType = RSA
+ExpectedClientSignHash = SHA256
+ExpectedClientSignType = RSA
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[22-client-auth-TLSv1.2-require-non-empty-names]
+ssl_conf = 22-client-auth-TLSv1.2-require-non-empty-names-ssl
+
+[22-client-auth-TLSv1.2-require-non-empty-names-ssl]
+server = 22-client-auth-TLSv1.2-require-non-empty-names-server
+client = 22-client-auth-TLSv1.2-require-non-empty-names-client
+
+[22-client-auth-TLSv1.2-require-non-empty-names-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ClientCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+ClientSignatureAlgorithms = SHA256+RSA
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Request
+
+[22-client-auth-TLSv1.2-require-non-empty-names-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-22]
+ExpectedClientCANames = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+ExpectedClientCertType = RSA
+ExpectedClientSignHash = SHA256
+ExpectedClientSignType = RSA
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[23-client-auth-TLSv1.2-noroot]
+ssl_conf = 23-client-auth-TLSv1.2-noroot-ssl
+
+[23-client-auth-TLSv1.2-noroot-ssl]
+server = 23-client-auth-TLSv1.2-noroot-server
+client = 23-client-auth-TLSv1.2-noroot-client
+
+[23-client-auth-TLSv1.2-noroot-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = Require
+
+[23-client-auth-TLSv1.2-noroot-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-23]
+ExpectedResult = ServerFail
+ExpectedServerAlert = UnknownCA
+
+
+# ===========================================================
+
+[24-server-auth-DTLSv1]
+ssl_conf = 24-server-auth-DTLSv1-ssl
+
+[24-server-auth-DTLSv1-ssl]
+server = 24-server-auth-DTLSv1-server
+client = 24-server-auth-DTLSv1-client
+
+[24-server-auth-DTLSv1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[24-server-auth-DTLSv1-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-24]
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[25-client-auth-DTLSv1-request]
+ssl_conf = 25-client-auth-DTLSv1-request-ssl
+
+[25-client-auth-DTLSv1-request-ssl]
+server = 25-client-auth-DTLSv1-request-server
+client = 25-client-auth-DTLSv1-request-client
+
+[25-client-auth-DTLSv1-request-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = Request
+
+[25-client-auth-DTLSv1-request-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-25]
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[26-client-auth-DTLSv1-require-fail]
+ssl_conf = 26-client-auth-DTLSv1-require-fail-ssl
+
+[26-client-auth-DTLSv1-require-fail-ssl]
+server = 26-client-auth-DTLSv1-require-fail-server
+client = 26-client-auth-DTLSv1-require-fail-client
+
+[26-client-auth-DTLSv1-require-fail-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Require
+
+[26-client-auth-DTLSv1-require-fail-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-26]
+ExpectedResult = ServerFail
+ExpectedServerAlert = HandshakeFailure
+Method = DTLS
+
+
+# ===========================================================
+
+[27-client-auth-DTLSv1-require]
+ssl_conf = 27-client-auth-DTLSv1-require-ssl
+
+[27-client-auth-DTLSv1-require-ssl]
+server = 27-client-auth-DTLSv1-require-server
+client = 27-client-auth-DTLSv1-require-client
+
+[27-client-auth-DTLSv1-require-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Request
+
+[27-client-auth-DTLSv1-require-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-27]
+ExpectedClientCANames = empty
+ExpectedClientCertType = RSA
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[28-client-auth-DTLSv1-require-non-empty-names]
+ssl_conf = 28-client-auth-DTLSv1-require-non-empty-names-ssl
+
+[28-client-auth-DTLSv1-require-non-empty-names-ssl]
+server = 28-client-auth-DTLSv1-require-non-empty-names-server
+client = 28-client-auth-DTLSv1-require-non-empty-names-client
+
+[28-client-auth-DTLSv1-require-non-empty-names-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ClientCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Request
+
+[28-client-auth-DTLSv1-require-non-empty-names-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-28]
+ExpectedClientCANames = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+ExpectedClientCertType = RSA
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[29-client-auth-DTLSv1-noroot]
+ssl_conf = 29-client-auth-DTLSv1-noroot-ssl
+
+[29-client-auth-DTLSv1-noroot-ssl]
+server = 29-client-auth-DTLSv1-noroot-server
+client = 29-client-auth-DTLSv1-noroot-client
+
+[29-client-auth-DTLSv1-noroot-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = Require
+
+[29-client-auth-DTLSv1-noroot-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-29]
+ExpectedResult = ServerFail
+ExpectedServerAlert = UnknownCA
+Method = DTLS
+
+
+# ===========================================================
+
+[30-server-auth-DTLSv1.2]
+ssl_conf = 30-server-auth-DTLSv1.2-ssl
+
+[30-server-auth-DTLSv1.2-ssl]
+server = 30-server-auth-DTLSv1.2-server
+client = 30-server-auth-DTLSv1.2-client
+
+[30-server-auth-DTLSv1.2-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[30-server-auth-DTLSv1.2-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-30]
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[31-client-auth-DTLSv1.2-request]
+ssl_conf = 31-client-auth-DTLSv1.2-request-ssl
+
+[31-client-auth-DTLSv1.2-request-ssl]
+server = 31-client-auth-DTLSv1.2-request-server
+client = 31-client-auth-DTLSv1.2-request-client
+
+[31-client-auth-DTLSv1.2-request-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = Request
+
+[31-client-auth-DTLSv1.2-request-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-31]
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[32-client-auth-DTLSv1.2-require-fail]
+ssl_conf = 32-client-auth-DTLSv1.2-require-fail-ssl
+
+[32-client-auth-DTLSv1.2-require-fail-ssl]
+server = 32-client-auth-DTLSv1.2-require-fail-server
+client = 32-client-auth-DTLSv1.2-require-fail-client
+
+[32-client-auth-DTLSv1.2-require-fail-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Require
+
+[32-client-auth-DTLSv1.2-require-fail-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-32]
+ExpectedResult = ServerFail
+ExpectedServerAlert = HandshakeFailure
+Method = DTLS
+
+
+# ===========================================================
+
+[33-client-auth-DTLSv1.2-require]
+ssl_conf = 33-client-auth-DTLSv1.2-require-ssl
+
+[33-client-auth-DTLSv1.2-require-ssl]
+server = 33-client-auth-DTLSv1.2-require-server
+client = 33-client-auth-DTLSv1.2-require-client
+
+[33-client-auth-DTLSv1.2-require-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Request
+
+[33-client-auth-DTLSv1.2-require-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-33]
+ExpectedClientCANames = empty
+ExpectedClientCertType = RSA
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[34-client-auth-DTLSv1.2-require-non-empty-names]
+ssl_conf = 34-client-auth-DTLSv1.2-require-non-empty-names-ssl
+
+[34-client-auth-DTLSv1.2-require-non-empty-names-ssl]
+server = 34-client-auth-DTLSv1.2-require-non-empty-names-server
+client = 34-client-auth-DTLSv1.2-require-non-empty-names-client
+
+[34-client-auth-DTLSv1.2-require-non-empty-names-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ClientCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Request
+
+[34-client-auth-DTLSv1.2-require-non-empty-names-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-34]
+ExpectedClientCANames = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+ExpectedClientCertType = RSA
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[35-client-auth-DTLSv1.2-noroot]
+ssl_conf = 35-client-auth-DTLSv1.2-noroot-ssl
+
+[35-client-auth-DTLSv1.2-noroot-ssl]
+server = 35-client-auth-DTLSv1.2-noroot-server
+client = 35-client-auth-DTLSv1.2-noroot-client
+
+[35-client-auth-DTLSv1.2-noroot-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = Require
+
+[35-client-auth-DTLSv1.2-noroot-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-35]
+ExpectedResult = ServerFail
+ExpectedServerAlert = UnknownCA
+Method = DTLS
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/04-client_auth.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/04-client_auth.conf.in
new file mode 100644
index 000000000..b9c014d2c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/04-client_auth.conf.in
@@ -0,0 +1,196 @@
+# -*- mode: perl; -*-
+
+## SSL test configurations
+
+package ssltests;
+
+use strict;
+use warnings;
+
+use OpenSSL::Test;
+use OpenSSL::Test::Utils qw(anydisabled disabled);
+setup("no_test_here");
+
+# We test version-flexible negotiation (undef) and each protocol version.
+my @protocols = (undef, "SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2", "DTLSv1", "DTLSv1.2");
+
+my @is_disabled = (0);
+push @is_disabled, anydisabled("ssl3", "tls1", "tls1_1", "tls1_2", "dtls1", "dtls1_2");
+
+our @tests = ();
+
+sub generate_tests() {
+ foreach (0..$#protocols) {
+ my $protocol = $protocols[$_];
+ my $protocol_name = $protocol || "flex";
+ my $caalert;
+ my $method;
+ my $sctpenabled = 0;
+ if (!$is_disabled[$_]) {
+ if ($protocol_name eq "SSLv3") {
+ $caalert = "BadCertificate";
+ } else {
+ $caalert = "UnknownCA";
+ }
+ if ($protocol_name =~ m/^DTLS/) {
+ $method = "DTLS";
+ $sctpenabled = 1 if !disabled("sctp");
+ }
+ my $clihash;
+ my $clisigtype;
+ my $clisigalgs;
+ # TODO(TLS1.3) add TLSv1.3 versions
+ if ($protocol_name eq "TLSv1.2") {
+ $clihash = "SHA256";
+ $clisigtype = "RSA";
+ $clisigalgs = "SHA256+RSA";
+ }
+ for (my $sctp = 0; $sctp <= $sctpenabled; $sctp++) {
+ # Sanity-check simple handshake.
+ push @tests, {
+ name => "server-auth-${protocol_name}"
+ .($sctp ? "-sctp" : ""),
+ server => {
+ "MinProtocol" => $protocol,
+ "MaxProtocol" => $protocol
+ },
+ client => {
+ "MinProtocol" => $protocol,
+ "MaxProtocol" => $protocol
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ "Method" => $method,
+ },
+ };
+ $tests[-1]{"test"}{"UseSCTP"} = "Yes" if $sctp;
+
+ # Handshake with client cert requested but not required or received.
+ push @tests, {
+ name => "client-auth-${protocol_name}-request"
+ .($sctp ? "-sctp" : ""),
+ server => {
+ "MinProtocol" => $protocol,
+ "MaxProtocol" => $protocol,
+ "VerifyMode" => "Request"
+ },
+ client => {
+ "MinProtocol" => $protocol,
+ "MaxProtocol" => $protocol
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ "Method" => $method,
+ },
+ };
+ $tests[-1]{"test"}{"UseSCTP"} = "Yes" if $sctp;
+
+ # Handshake with client cert required but not present.
+ push @tests, {
+ name => "client-auth-${protocol_name}-require-fail"
+ .($sctp ? "-sctp" : ""),
+ server => {
+ "MinProtocol" => $protocol,
+ "MaxProtocol" => $protocol,
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "Require",
+ },
+ client => {
+ "MinProtocol" => $protocol,
+ "MaxProtocol" => $protocol
+ },
+ test => {
+ "ExpectedResult" => "ServerFail",
+ "ExpectedServerAlert" =>
+ ($protocol_name eq "flex" && !disabled("tls1_3"))
+ ? "CertificateRequired" : "HandshakeFailure",
+ "Method" => $method,
+ },
+ };
+ $tests[-1]{"test"}{"UseSCTP"} = "Yes" if $sctp;
+
+ # Successful handshake with client authentication.
+ push @tests, {
+ name => "client-auth-${protocol_name}-require"
+ .($sctp ? "-sctp" : ""),
+ server => {
+ "MinProtocol" => $protocol,
+ "MaxProtocol" => $protocol,
+ "ClientSignatureAlgorithms" => $clisigalgs,
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "Request",
+ },
+ client => {
+ "MinProtocol" => $protocol,
+ "MaxProtocol" => $protocol,
+ "Certificate" => test_pem("ee-client-chain.pem"),
+ "PrivateKey" => test_pem("ee-key.pem"),
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ "ExpectedClientCertType" => "RSA",
+ "ExpectedClientSignType" => $clisigtype,
+ "ExpectedClientSignHash" => $clihash,
+ "ExpectedClientCANames" => "empty",
+ "Method" => $method,
+ },
+ };
+ $tests[-1]{"test"}{"UseSCTP"} = "Yes" if $sctp;
+
+ # Successful handshake with client authentication non-empty names
+ push @tests, {
+ name => "client-auth-${protocol_name}-require-non-empty-names"
+ .($sctp ? "-sctp" : ""),
+ server => {
+ "MinProtocol" => $protocol,
+ "MaxProtocol" => $protocol,
+ "ClientSignatureAlgorithms" => $clisigalgs,
+ "ClientCAFile" => test_pem("root-cert.pem"),
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "Request",
+ },
+ client => {
+ "MinProtocol" => $protocol,
+ "MaxProtocol" => $protocol,
+ "Certificate" => test_pem("ee-client-chain.pem"),
+ "PrivateKey" => test_pem("ee-key.pem"),
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ "ExpectedClientCertType" => "RSA",
+ "ExpectedClientSignType" => $clisigtype,
+ "ExpectedClientSignHash" => $clihash,
+ "ExpectedClientCANames" => test_pem("root-cert.pem"),
+ "Method" => $method,
+ },
+ };
+ $tests[-1]{"test"}{"UseSCTP"} = "Yes" if $sctp;
+
+ # Handshake with client authentication but without the root certificate.
+ push @tests, {
+ name => "client-auth-${protocol_name}-noroot"
+ .($sctp ? "-sctp" : ""),
+ server => {
+ "MinProtocol" => $protocol,
+ "MaxProtocol" => $protocol,
+ "VerifyMode" => "Require",
+ },
+ client => {
+ "MinProtocol" => $protocol,
+ "MaxProtocol" => $protocol,
+ "Certificate" => test_pem("ee-client-chain.pem"),
+ "PrivateKey" => test_pem("ee-key.pem"),
+ },
+ test => {
+ "ExpectedResult" => "ServerFail",
+ "ExpectedServerAlert" => $caalert,
+ "Method" => $method,
+ },
+ };
+ $tests[-1]{"test"}{"UseSCTP"} = "Yes" if $sctp;
+ }
+ }
+ }
+}
+
+generate_tests();
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/05-sni.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/05-sni.conf
new file mode 100644
index 000000000..a6c7f4391
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/05-sni.conf
@@ -0,0 +1,308 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 9
+
+test-0 = 0-SNI-switch-context
+test-1 = 1-SNI-keep-context
+test-2 = 2-SNI-no-server-support
+test-3 = 3-SNI-no-client-support
+test-4 = 4-SNI-bad-sni-ignore-mismatch
+test-5 = 5-SNI-bad-sni-reject-mismatch
+test-6 = 6-SNI-bad-clienthello-sni-ignore-mismatch
+test-7 = 7-SNI-bad-clienthello-sni-reject-mismatch
+test-8 = 8-SNI-clienthello-disable-v12
+# ===========================================================
+
+[0-SNI-switch-context]
+ssl_conf = 0-SNI-switch-context-ssl
+
+[0-SNI-switch-context-ssl]
+server = 0-SNI-switch-context-server
+client = 0-SNI-switch-context-client
+server2 = 0-SNI-switch-context-server
+
+[0-SNI-switch-context-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-SNI-switch-context-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = Success
+ExpectedServerName = server2
+server = 0-SNI-switch-context-server-extra
+server2 = 0-SNI-switch-context-server-extra
+client = 0-SNI-switch-context-client-extra
+
+[0-SNI-switch-context-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[0-SNI-switch-context-client-extra]
+ServerName = server2
+
+
+# ===========================================================
+
+[1-SNI-keep-context]
+ssl_conf = 1-SNI-keep-context-ssl
+
+[1-SNI-keep-context-ssl]
+server = 1-SNI-keep-context-server
+client = 1-SNI-keep-context-client
+server2 = 1-SNI-keep-context-server
+
+[1-SNI-keep-context-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-SNI-keep-context-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedResult = Success
+ExpectedServerName = server1
+server = 1-SNI-keep-context-server-extra
+server2 = 1-SNI-keep-context-server-extra
+client = 1-SNI-keep-context-client-extra
+
+[1-SNI-keep-context-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[1-SNI-keep-context-client-extra]
+ServerName = server1
+
+
+# ===========================================================
+
+[2-SNI-no-server-support]
+ssl_conf = 2-SNI-no-server-support-ssl
+
+[2-SNI-no-server-support-ssl]
+server = 2-SNI-no-server-support-server
+client = 2-SNI-no-server-support-client
+
+[2-SNI-no-server-support-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-SNI-no-server-support-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedResult = Success
+client = 2-SNI-no-server-support-client-extra
+
+[2-SNI-no-server-support-client-extra]
+ServerName = server1
+
+
+# ===========================================================
+
+[3-SNI-no-client-support]
+ssl_conf = 3-SNI-no-client-support-ssl
+
+[3-SNI-no-client-support-ssl]
+server = 3-SNI-no-client-support-server
+client = 3-SNI-no-client-support-client
+server2 = 3-SNI-no-client-support-server
+
+[3-SNI-no-client-support-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-SNI-no-client-support-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedResult = Success
+ExpectedServerName = server1
+server = 3-SNI-no-client-support-server-extra
+server2 = 3-SNI-no-client-support-server-extra
+
+[3-SNI-no-client-support-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+
+# ===========================================================
+
+[4-SNI-bad-sni-ignore-mismatch]
+ssl_conf = 4-SNI-bad-sni-ignore-mismatch-ssl
+
+[4-SNI-bad-sni-ignore-mismatch-ssl]
+server = 4-SNI-bad-sni-ignore-mismatch-server
+client = 4-SNI-bad-sni-ignore-mismatch-client
+server2 = 4-SNI-bad-sni-ignore-mismatch-server
+
+[4-SNI-bad-sni-ignore-mismatch-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[4-SNI-bad-sni-ignore-mismatch-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-4]
+ExpectedResult = Success
+ExpectedServerName = server1
+server = 4-SNI-bad-sni-ignore-mismatch-server-extra
+server2 = 4-SNI-bad-sni-ignore-mismatch-server-extra
+client = 4-SNI-bad-sni-ignore-mismatch-client-extra
+
+[4-SNI-bad-sni-ignore-mismatch-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[4-SNI-bad-sni-ignore-mismatch-client-extra]
+ServerName = invalid
+
+
+# ===========================================================
+
+[5-SNI-bad-sni-reject-mismatch]
+ssl_conf = 5-SNI-bad-sni-reject-mismatch-ssl
+
+[5-SNI-bad-sni-reject-mismatch-ssl]
+server = 5-SNI-bad-sni-reject-mismatch-server
+client = 5-SNI-bad-sni-reject-mismatch-client
+server2 = 5-SNI-bad-sni-reject-mismatch-server
+
+[5-SNI-bad-sni-reject-mismatch-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[5-SNI-bad-sni-reject-mismatch-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+ExpectedResult = ServerFail
+ExpectedServerAlert = UnrecognizedName
+server = 5-SNI-bad-sni-reject-mismatch-server-extra
+server2 = 5-SNI-bad-sni-reject-mismatch-server-extra
+client = 5-SNI-bad-sni-reject-mismatch-client-extra
+
+[5-SNI-bad-sni-reject-mismatch-server-extra]
+ServerNameCallback = RejectMismatch
+
+[5-SNI-bad-sni-reject-mismatch-client-extra]
+ServerName = invalid
+
+
+# ===========================================================
+
+[6-SNI-bad-clienthello-sni-ignore-mismatch]
+ssl_conf = 6-SNI-bad-clienthello-sni-ignore-mismatch-ssl
+
+[6-SNI-bad-clienthello-sni-ignore-mismatch-ssl]
+server = 6-SNI-bad-clienthello-sni-ignore-mismatch-server
+client = 6-SNI-bad-clienthello-sni-ignore-mismatch-client
+server2 = 6-SNI-bad-clienthello-sni-ignore-mismatch-server
+
+[6-SNI-bad-clienthello-sni-ignore-mismatch-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-SNI-bad-clienthello-sni-ignore-mismatch-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-6]
+ExpectedResult = Success
+ExpectedServerName = server1
+server = 6-SNI-bad-clienthello-sni-ignore-mismatch-server-extra
+server2 = 6-SNI-bad-clienthello-sni-ignore-mismatch-server-extra
+client = 6-SNI-bad-clienthello-sni-ignore-mismatch-client-extra
+
+[6-SNI-bad-clienthello-sni-ignore-mismatch-server-extra]
+ServerNameCallback = ClientHelloIgnoreMismatch
+
+[6-SNI-bad-clienthello-sni-ignore-mismatch-client-extra]
+ServerName = invalid
+
+
+# ===========================================================
+
+[7-SNI-bad-clienthello-sni-reject-mismatch]
+ssl_conf = 7-SNI-bad-clienthello-sni-reject-mismatch-ssl
+
+[7-SNI-bad-clienthello-sni-reject-mismatch-ssl]
+server = 7-SNI-bad-clienthello-sni-reject-mismatch-server
+client = 7-SNI-bad-clienthello-sni-reject-mismatch-client
+server2 = 7-SNI-bad-clienthello-sni-reject-mismatch-server
+
+[7-SNI-bad-clienthello-sni-reject-mismatch-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-SNI-bad-clienthello-sni-reject-mismatch-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-7]
+ExpectedResult = ServerFail
+ExpectedServerAlert = UnrecognizedName
+server = 7-SNI-bad-clienthello-sni-reject-mismatch-server-extra
+server2 = 7-SNI-bad-clienthello-sni-reject-mismatch-server-extra
+client = 7-SNI-bad-clienthello-sni-reject-mismatch-client-extra
+
+[7-SNI-bad-clienthello-sni-reject-mismatch-server-extra]
+ServerNameCallback = ClientHelloRejectMismatch
+
+[7-SNI-bad-clienthello-sni-reject-mismatch-client-extra]
+ServerName = invalid
+
+
+# ===========================================================
+
+[8-SNI-clienthello-disable-v12]
+ssl_conf = 8-SNI-clienthello-disable-v12-ssl
+
+[8-SNI-clienthello-disable-v12-ssl]
+server = 8-SNI-clienthello-disable-v12-server
+client = 8-SNI-clienthello-disable-v12-client
+server2 = 8-SNI-clienthello-disable-v12-server
+
+[8-SNI-clienthello-disable-v12-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-SNI-clienthello-disable-v12-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-8]
+ExpectedProtocol = TLSv1.1
+ExpectedServerName = server2
+server = 8-SNI-clienthello-disable-v12-server-extra
+server2 = 8-SNI-clienthello-disable-v12-server-extra
+client = 8-SNI-clienthello-disable-v12-client-extra
+
+[8-SNI-clienthello-disable-v12-server-extra]
+ServerNameCallback = ClientHelloNoV12
+
+[8-SNI-clienthello-disable-v12-client-extra]
+ServerName = server2
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/05-sni.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/05-sni.conf.in
new file mode 100644
index 000000000..a993a3421
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/05-sni.conf.in
@@ -0,0 +1,169 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## SSL test configurations
+
+use strict;
+use warnings;
+
+package ssltests;
+use OpenSSL::Test::Utils;
+
+our @tests = (
+ {
+ name => "SNI-switch-context",
+ server => {
+ extra => {
+ "ServerNameCallback" => "IgnoreMismatch",
+ },
+ },
+ client => {
+ extra => {
+ "ServerName" => "server2",
+ },
+ },
+ test => {
+ "ExpectedServerName" => "server2",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "SNI-keep-context",
+ server => {
+ extra => {
+ "ServerNameCallback" => "IgnoreMismatch",
+ },
+ },
+ client => {
+ extra => {
+ "ServerName" => "server1",
+ },
+ },
+ test => {
+ "ExpectedServerName" => "server1",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "SNI-no-server-support",
+ server => { },
+ client => {
+ extra => {
+ "ServerName" => "server1",
+ },
+ },
+ test => { "ExpectedResult" => "Success" },
+ },
+ {
+ name => "SNI-no-client-support",
+ server => {
+ extra => {
+ "ServerNameCallback" => "IgnoreMismatch",
+ },
+ },
+ client => { },
+ test => {
+ # We expect that the callback is still called
+ # to let the application decide whether they tolerate
+ # missing SNI (as our test callback does).
+ "ExpectedServerName" => "server1",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "SNI-bad-sni-ignore-mismatch",
+ server => {
+ extra => {
+ "ServerNameCallback" => "IgnoreMismatch",
+ },
+ },
+ client => {
+ extra => {
+ "ServerName" => "invalid",
+ },
+ },
+ test => {
+ "ExpectedServerName" => "server1",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "SNI-bad-sni-reject-mismatch",
+ server => {
+ extra => {
+ "ServerNameCallback" => "RejectMismatch",
+ },
+ },
+ client => {
+ extra => {
+ "ServerName" => "invalid",
+ },
+ },
+ test => {
+ "ExpectedResult" => "ServerFail",
+ "ExpectedServerAlert" => "UnrecognizedName"
+ },
+ },
+ {
+ name => "SNI-bad-clienthello-sni-ignore-mismatch",
+ server => {
+ extra => {
+ "ServerNameCallback" => "ClientHelloIgnoreMismatch",
+ },
+ },
+ client => {
+ extra => {
+ "ServerName" => "invalid",
+ },
+ },
+ test => {
+ "ExpectedServerName" => "server1",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "SNI-bad-clienthello-sni-reject-mismatch",
+ server => {
+ extra => {
+ "ServerNameCallback" => "ClientHelloRejectMismatch",
+ },
+ },
+ client => {
+ extra => {
+ "ServerName" => "invalid",
+ },
+ },
+ test => {
+ "ExpectedResult" => "ServerFail",
+ "ExpectedServerAlert" => "UnrecognizedName"
+ },
+ },
+);
+
+our @tests_tls_1_1 = (
+ {
+ name => "SNI-clienthello-disable-v12",
+ server => {
+ extra => {
+ "ServerNameCallback" => "ClientHelloNoV12",
+ },
+ },
+ client => {
+ extra => {
+ "ServerName" => "server2",
+ },
+ },
+ test => {
+ "ExpectedProtocol" => "TLSv1.1",
+ "ExpectedServerName" => "server2",
+ },
+ },
+);
+
+push @tests, @tests_tls_1_1 unless disabled("tls1_1");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/06-sni-ticket.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/06-sni-ticket.conf
new file mode 100644
index 000000000..a3a9c78f0
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/06-sni-ticket.conf
@@ -0,0 +1,767 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 17
+
+test-0 = 0-sni-session-ticket
+test-1 = 1-sni-session-ticket
+test-2 = 2-sni-session-ticket
+test-3 = 3-sni-session-ticket
+test-4 = 4-sni-session-ticket
+test-5 = 5-sni-session-ticket
+test-6 = 6-sni-session-ticket
+test-7 = 7-sni-session-ticket
+test-8 = 8-sni-session-ticket
+test-9 = 9-sni-session-ticket
+test-10 = 10-sni-session-ticket
+test-11 = 11-sni-session-ticket
+test-12 = 12-sni-session-ticket
+test-13 = 13-sni-session-ticket
+test-14 = 14-sni-session-ticket
+test-15 = 15-sni-session-ticket
+test-16 = 16-sni-session-ticket
+# ===========================================================
+
+[0-sni-session-ticket]
+ssl_conf = 0-sni-session-ticket-ssl
+
+[0-sni-session-ticket-ssl]
+server = 0-sni-session-ticket-server
+client = 0-sni-session-ticket-client
+server2 = 0-sni-session-ticket-server2
+
+[0-sni-session-ticket-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-sni-session-ticket-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-sni-session-ticket-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = Success
+SessionTicketExpected = No
+server = 0-sni-session-ticket-server-extra
+client = 0-sni-session-ticket-client-extra
+
+[0-sni-session-ticket-server-extra]
+BrokenSessionTicket = Yes
+
+[0-sni-session-ticket-client-extra]
+ServerName = server1
+
+
+# ===========================================================
+
+[1-sni-session-ticket]
+ssl_conf = 1-sni-session-ticket-ssl
+
+[1-sni-session-ticket-ssl]
+server = 1-sni-session-ticket-server
+client = 1-sni-session-ticket-client
+server2 = 1-sni-session-ticket-server2
+
+[1-sni-session-ticket-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-sni-session-ticket-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-sni-session-ticket-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedResult = Success
+ExpectedServerName = server1
+SessionIdExpected = Yes
+SessionTicketExpected = Yes
+server = 1-sni-session-ticket-server-extra
+client = 1-sni-session-ticket-client-extra
+
+[1-sni-session-ticket-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[1-sni-session-ticket-client-extra]
+ServerName = server1
+
+
+# ===========================================================
+
+[2-sni-session-ticket]
+ssl_conf = 2-sni-session-ticket-ssl
+
+[2-sni-session-ticket-ssl]
+server = 2-sni-session-ticket-server
+client = 2-sni-session-ticket-client
+server2 = 2-sni-session-ticket-server2
+
+[2-sni-session-ticket-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-sni-session-ticket-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-sni-session-ticket-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedResult = Success
+ExpectedServerName = server2
+SessionIdExpected = Yes
+SessionTicketExpected = Yes
+server = 2-sni-session-ticket-server-extra
+client = 2-sni-session-ticket-client-extra
+
+[2-sni-session-ticket-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[2-sni-session-ticket-client-extra]
+ServerName = server2
+
+
+# ===========================================================
+
+[3-sni-session-ticket]
+ssl_conf = 3-sni-session-ticket-ssl
+
+[3-sni-session-ticket-ssl]
+server = 3-sni-session-ticket-server
+client = 3-sni-session-ticket-client
+server2 = 3-sni-session-ticket-server2
+
+[3-sni-session-ticket-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-sni-session-ticket-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-sni-session-ticket-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedResult = Success
+ExpectedServerName = server1
+SessionIdExpected = Yes
+SessionTicketExpected = Yes
+server = 3-sni-session-ticket-server-extra
+client = 3-sni-session-ticket-client-extra
+
+[3-sni-session-ticket-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[3-sni-session-ticket-client-extra]
+ServerName = server1
+
+
+# ===========================================================
+
+[4-sni-session-ticket]
+ssl_conf = 4-sni-session-ticket-ssl
+
+[4-sni-session-ticket-ssl]
+server = 4-sni-session-ticket-server
+client = 4-sni-session-ticket-client
+server2 = 4-sni-session-ticket-server2
+
+[4-sni-session-ticket-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[4-sni-session-ticket-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[4-sni-session-ticket-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-4]
+ExpectedResult = Success
+ExpectedServerName = server2
+SessionIdExpected = Yes
+SessionTicketExpected = No
+server = 4-sni-session-ticket-server-extra
+client = 4-sni-session-ticket-client-extra
+
+[4-sni-session-ticket-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[4-sni-session-ticket-client-extra]
+ServerName = server2
+
+
+# ===========================================================
+
+[5-sni-session-ticket]
+ssl_conf = 5-sni-session-ticket-ssl
+
+[5-sni-session-ticket-ssl]
+server = 5-sni-session-ticket-server
+client = 5-sni-session-ticket-client
+server2 = 5-sni-session-ticket-server2
+
+[5-sni-session-ticket-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[5-sni-session-ticket-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[5-sni-session-ticket-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+ExpectedResult = Success
+ExpectedServerName = server1
+SessionIdExpected = Yes
+SessionTicketExpected = No
+server = 5-sni-session-ticket-server-extra
+client = 5-sni-session-ticket-client-extra
+
+[5-sni-session-ticket-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[5-sni-session-ticket-client-extra]
+ServerName = server1
+
+
+# ===========================================================
+
+[6-sni-session-ticket]
+ssl_conf = 6-sni-session-ticket-ssl
+
+[6-sni-session-ticket-ssl]
+server = 6-sni-session-ticket-server
+client = 6-sni-session-ticket-client
+server2 = 6-sni-session-ticket-server2
+
+[6-sni-session-ticket-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-sni-session-ticket-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-sni-session-ticket-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-6]
+ExpectedResult = Success
+ExpectedServerName = server2
+SessionIdExpected = Yes
+SessionTicketExpected = No
+server = 6-sni-session-ticket-server-extra
+client = 6-sni-session-ticket-client-extra
+
+[6-sni-session-ticket-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[6-sni-session-ticket-client-extra]
+ServerName = server2
+
+
+# ===========================================================
+
+[7-sni-session-ticket]
+ssl_conf = 7-sni-session-ticket-ssl
+
+[7-sni-session-ticket-ssl]
+server = 7-sni-session-ticket-server
+client = 7-sni-session-ticket-client
+server2 = 7-sni-session-ticket-server2
+
+[7-sni-session-ticket-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-sni-session-ticket-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-sni-session-ticket-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-7]
+ExpectedResult = Success
+ExpectedServerName = server1
+SessionIdExpected = Yes
+SessionTicketExpected = No
+server = 7-sni-session-ticket-server-extra
+client = 7-sni-session-ticket-client-extra
+
+[7-sni-session-ticket-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[7-sni-session-ticket-client-extra]
+ServerName = server1
+
+
+# ===========================================================
+
+[8-sni-session-ticket]
+ssl_conf = 8-sni-session-ticket-ssl
+
+[8-sni-session-ticket-ssl]
+server = 8-sni-session-ticket-server
+client = 8-sni-session-ticket-client
+server2 = 8-sni-session-ticket-server2
+
+[8-sni-session-ticket-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-sni-session-ticket-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-sni-session-ticket-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-8]
+ExpectedResult = Success
+ExpectedServerName = server2
+SessionIdExpected = Yes
+SessionTicketExpected = No
+server = 8-sni-session-ticket-server-extra
+client = 8-sni-session-ticket-client-extra
+
+[8-sni-session-ticket-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[8-sni-session-ticket-client-extra]
+ServerName = server2
+
+
+# ===========================================================
+
+[9-sni-session-ticket]
+ssl_conf = 9-sni-session-ticket-ssl
+
+[9-sni-session-ticket-ssl]
+server = 9-sni-session-ticket-server
+client = 9-sni-session-ticket-client
+server2 = 9-sni-session-ticket-server2
+
+[9-sni-session-ticket-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[9-sni-session-ticket-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[9-sni-session-ticket-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = -SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-9]
+ExpectedResult = Success
+ExpectedServerName = server1
+SessionIdExpected = Yes
+SessionTicketExpected = No
+server = 9-sni-session-ticket-server-extra
+client = 9-sni-session-ticket-client-extra
+
+[9-sni-session-ticket-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[9-sni-session-ticket-client-extra]
+ServerName = server1
+
+
+# ===========================================================
+
+[10-sni-session-ticket]
+ssl_conf = 10-sni-session-ticket-ssl
+
+[10-sni-session-ticket-ssl]
+server = 10-sni-session-ticket-server
+client = 10-sni-session-ticket-client
+server2 = 10-sni-session-ticket-server2
+
+[10-sni-session-ticket-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[10-sni-session-ticket-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[10-sni-session-ticket-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = -SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-10]
+ExpectedResult = Success
+ExpectedServerName = server2
+SessionIdExpected = Yes
+SessionTicketExpected = No
+server = 10-sni-session-ticket-server-extra
+client = 10-sni-session-ticket-client-extra
+
+[10-sni-session-ticket-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[10-sni-session-ticket-client-extra]
+ServerName = server2
+
+
+# ===========================================================
+
+[11-sni-session-ticket]
+ssl_conf = 11-sni-session-ticket-ssl
+
+[11-sni-session-ticket-ssl]
+server = 11-sni-session-ticket-server
+client = 11-sni-session-ticket-client
+server2 = 11-sni-session-ticket-server2
+
+[11-sni-session-ticket-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[11-sni-session-ticket-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[11-sni-session-ticket-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = -SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-11]
+ExpectedResult = Success
+ExpectedServerName = server1
+SessionIdExpected = Yes
+SessionTicketExpected = No
+server = 11-sni-session-ticket-server-extra
+client = 11-sni-session-ticket-client-extra
+
+[11-sni-session-ticket-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[11-sni-session-ticket-client-extra]
+ServerName = server1
+
+
+# ===========================================================
+
+[12-sni-session-ticket]
+ssl_conf = 12-sni-session-ticket-ssl
+
+[12-sni-session-ticket-ssl]
+server = 12-sni-session-ticket-server
+client = 12-sni-session-ticket-client
+server2 = 12-sni-session-ticket-server2
+
+[12-sni-session-ticket-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[12-sni-session-ticket-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[12-sni-session-ticket-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = -SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-12]
+ExpectedResult = Success
+ExpectedServerName = server2
+SessionIdExpected = Yes
+SessionTicketExpected = No
+server = 12-sni-session-ticket-server-extra
+client = 12-sni-session-ticket-client-extra
+
+[12-sni-session-ticket-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[12-sni-session-ticket-client-extra]
+ServerName = server2
+
+
+# ===========================================================
+
+[13-sni-session-ticket]
+ssl_conf = 13-sni-session-ticket-ssl
+
+[13-sni-session-ticket-ssl]
+server = 13-sni-session-ticket-server
+client = 13-sni-session-ticket-client
+server2 = 13-sni-session-ticket-server2
+
+[13-sni-session-ticket-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[13-sni-session-ticket-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[13-sni-session-ticket-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = -SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-13]
+ExpectedResult = Success
+ExpectedServerName = server1
+SessionIdExpected = Yes
+SessionTicketExpected = No
+server = 13-sni-session-ticket-server-extra
+client = 13-sni-session-ticket-client-extra
+
+[13-sni-session-ticket-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[13-sni-session-ticket-client-extra]
+ServerName = server1
+
+
+# ===========================================================
+
+[14-sni-session-ticket]
+ssl_conf = 14-sni-session-ticket-ssl
+
+[14-sni-session-ticket-ssl]
+server = 14-sni-session-ticket-server
+client = 14-sni-session-ticket-client
+server2 = 14-sni-session-ticket-server2
+
+[14-sni-session-ticket-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[14-sni-session-ticket-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[14-sni-session-ticket-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = -SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-14]
+ExpectedResult = Success
+ExpectedServerName = server2
+SessionIdExpected = Yes
+SessionTicketExpected = No
+server = 14-sni-session-ticket-server-extra
+client = 14-sni-session-ticket-client-extra
+
+[14-sni-session-ticket-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[14-sni-session-ticket-client-extra]
+ServerName = server2
+
+
+# ===========================================================
+
+[15-sni-session-ticket]
+ssl_conf = 15-sni-session-ticket-ssl
+
+[15-sni-session-ticket-ssl]
+server = 15-sni-session-ticket-server
+client = 15-sni-session-ticket-client
+server2 = 15-sni-session-ticket-server2
+
+[15-sni-session-ticket-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[15-sni-session-ticket-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[15-sni-session-ticket-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = -SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-15]
+ExpectedResult = Success
+ExpectedServerName = server1
+SessionIdExpected = Yes
+SessionTicketExpected = No
+server = 15-sni-session-ticket-server-extra
+client = 15-sni-session-ticket-client-extra
+
+[15-sni-session-ticket-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[15-sni-session-ticket-client-extra]
+ServerName = server1
+
+
+# ===========================================================
+
+[16-sni-session-ticket]
+ssl_conf = 16-sni-session-ticket-ssl
+
+[16-sni-session-ticket-ssl]
+server = 16-sni-session-ticket-server
+client = 16-sni-session-ticket-client
+server2 = 16-sni-session-ticket-server2
+
+[16-sni-session-ticket-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[16-sni-session-ticket-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[16-sni-session-ticket-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = -SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-16]
+ExpectedResult = Success
+ExpectedServerName = server2
+SessionIdExpected = Yes
+SessionTicketExpected = No
+server = 16-sni-session-ticket-server-extra
+client = 16-sni-session-ticket-client-extra
+
+[16-sni-session-ticket-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[16-sni-session-ticket-client-extra]
+ServerName = server2
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/06-sni-ticket.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/06-sni-ticket.conf.in
new file mode 100644
index 000000000..b4f4ffc29
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/06-sni-ticket.conf.in
@@ -0,0 +1,101 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test SNI/Session tickets
+
+use strict;
+use warnings;
+
+package ssltests;
+
+
+our @tests = ();
+
+#Note: MaxProtocol is set to TLSv1.2 as session tickets work differently in
+#TLSv1.3.
+sub generate_tests() {
+ foreach my $c ("SessionTicket", "-SessionTicket") {
+ foreach my $s1 ("SessionTicket", "-SessionTicket") {
+ foreach my $s2 ("SessionTicket", "-SessionTicket") {
+ foreach my $n ("server1", "server2") {
+ my $ticket_result = expected_result($c, $s1, $s2, $n);
+ my $session_id_result = "Yes"; # always, even with a ticket
+ push @tests, {
+ "name" => "sni-session-ticket",
+ "client" => {
+ "Options" => $c,
+ "extra" => {
+ "ServerName" => $n,
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ "server" => {
+ "Options" => $s1,
+ "extra" => {
+ # We don't test mismatch here.
+ "ServerNameCallback" => "IgnoreMismatch",
+ },
+ },
+ "server2" => {
+ "Options" => $s2,
+ },
+ "test" => {
+ "ExpectedServerName" => $n,
+ "ExpectedResult" => "Success",
+ "SessionIdExpected" => $session_id_result,
+ "SessionTicketExpected" => $ticket_result,
+ }
+ };
+ }
+ }
+ }
+ }
+}
+
+# If the client has session tickets disabled, then No support
+# If the server initial_ctx has session tickets disabled, then No support
+# If SNI is in use, then if the "switched-to" context has session tickets disabled,
+# then No support
+sub expected_result {
+ my ($c, $s1, $s2, $n) = @_;
+
+ return "No" if $c eq "-SessionTicket";
+ return "No" if $s1 eq "-SessionTicket";
+ return "No" if ($s2 eq "-SessionTicket" && $n eq "server2");
+
+ return "Yes";
+
+}
+
+# Add a "Broken" case.
+push @tests, {
+ "name" => "sni-session-ticket",
+ "client" => {
+ "MaxProtocol" => "TLSv1.2",
+ "Options" => "SessionTicket",
+ "extra" => {
+ "ServerName" => "server1",
+ }
+ },
+ "server" => {
+ "Options" => "SessionTicket",
+ "extra" => {
+ "BrokenSessionTicket" => "Yes",
+ },
+ },
+ "server2" => {
+ "Options" => "SessionTicket",
+ },
+ "test" => {
+ "ExpectedResult" => "Success",
+ "SessionTicketExpected" => "No",
+ }
+};
+
+generate_tests();
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/07-dtls-protocol-version.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/07-dtls-protocol-version.conf
new file mode 100644
index 000000000..3304a3bba
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/07-dtls-protocol-version.conf
@@ -0,0 +1,1820 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 64
+
+test-0 = 0-version-negotiation
+test-1 = 1-version-negotiation
+test-2 = 2-version-negotiation
+test-3 = 3-version-negotiation
+test-4 = 4-version-negotiation
+test-5 = 5-version-negotiation
+test-6 = 6-version-negotiation
+test-7 = 7-version-negotiation
+test-8 = 8-version-negotiation
+test-9 = 9-version-negotiation
+test-10 = 10-version-negotiation
+test-11 = 11-version-negotiation
+test-12 = 12-version-negotiation
+test-13 = 13-version-negotiation
+test-14 = 14-version-negotiation
+test-15 = 15-version-negotiation
+test-16 = 16-version-negotiation
+test-17 = 17-version-negotiation
+test-18 = 18-version-negotiation
+test-19 = 19-version-negotiation
+test-20 = 20-version-negotiation
+test-21 = 21-version-negotiation
+test-22 = 22-version-negotiation
+test-23 = 23-version-negotiation
+test-24 = 24-version-negotiation
+test-25 = 25-version-negotiation
+test-26 = 26-version-negotiation
+test-27 = 27-version-negotiation
+test-28 = 28-version-negotiation
+test-29 = 29-version-negotiation
+test-30 = 30-version-negotiation
+test-31 = 31-version-negotiation
+test-32 = 32-version-negotiation
+test-33 = 33-version-negotiation
+test-34 = 34-version-negotiation
+test-35 = 35-version-negotiation
+test-36 = 36-version-negotiation
+test-37 = 37-version-negotiation
+test-38 = 38-version-negotiation
+test-39 = 39-version-negotiation
+test-40 = 40-version-negotiation
+test-41 = 41-version-negotiation
+test-42 = 42-version-negotiation
+test-43 = 43-version-negotiation
+test-44 = 44-version-negotiation
+test-45 = 45-version-negotiation
+test-46 = 46-version-negotiation
+test-47 = 47-version-negotiation
+test-48 = 48-version-negotiation
+test-49 = 49-version-negotiation
+test-50 = 50-version-negotiation
+test-51 = 51-version-negotiation
+test-52 = 52-version-negotiation
+test-53 = 53-version-negotiation
+test-54 = 54-version-negotiation
+test-55 = 55-version-negotiation
+test-56 = 56-version-negotiation
+test-57 = 57-version-negotiation
+test-58 = 58-version-negotiation
+test-59 = 59-version-negotiation
+test-60 = 60-version-negotiation
+test-61 = 61-version-negotiation
+test-62 = 62-version-negotiation
+test-63 = 63-version-negotiation
+# ===========================================================
+
+[0-version-negotiation]
+ssl_conf = 0-version-negotiation-ssl
+
+[0-version-negotiation-ssl]
+server = 0-version-negotiation-server
+client = 0-version-negotiation-client
+
+[0-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[1-version-negotiation]
+ssl_conf = 1-version-negotiation-ssl
+
+[1-version-negotiation-ssl]
+server = 1-version-negotiation-server
+client = 1-version-negotiation-client
+
+[1-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[2-version-negotiation]
+ssl_conf = 2-version-negotiation-ssl
+
+[2-version-negotiation-ssl]
+server = 2-version-negotiation-server
+client = 2-version-negotiation-client
+
+[2-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[3-version-negotiation]
+ssl_conf = 3-version-negotiation-ssl
+
+[3-version-negotiation-ssl]
+server = 3-version-negotiation-server
+client = 3-version-negotiation-client
+
+[3-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[4-version-negotiation]
+ssl_conf = 4-version-negotiation-ssl
+
+[4-version-negotiation-ssl]
+server = 4-version-negotiation-server
+client = 4-version-negotiation-client
+
+[4-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[4-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-4]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[5-version-negotiation]
+ssl_conf = 5-version-negotiation-ssl
+
+[5-version-negotiation-ssl]
+server = 5-version-negotiation-server
+client = 5-version-negotiation-client
+
+[5-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[5-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[6-version-negotiation]
+ssl_conf = 6-version-negotiation-ssl
+
+[6-version-negotiation-ssl]
+server = 6-version-negotiation-server
+client = 6-version-negotiation-client
+
+[6-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-6]
+ExpectedResult = ServerFail
+Method = DTLS
+
+
+# ===========================================================
+
+[7-version-negotiation]
+ssl_conf = 7-version-negotiation-ssl
+
+[7-version-negotiation-ssl]
+server = 7-version-negotiation-server
+client = 7-version-negotiation-client
+
+[7-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-7]
+ExpectedResult = ServerFail
+Method = DTLS
+
+
+# ===========================================================
+
+[8-version-negotiation]
+ssl_conf = 8-version-negotiation-ssl
+
+[8-version-negotiation-ssl]
+server = 8-version-negotiation-server
+client = 8-version-negotiation-client
+
+[8-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-8]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[9-version-negotiation]
+ssl_conf = 9-version-negotiation-ssl
+
+[9-version-negotiation-ssl]
+server = 9-version-negotiation-server
+client = 9-version-negotiation-client
+
+[9-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[9-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-9]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[10-version-negotiation]
+ssl_conf = 10-version-negotiation-ssl
+
+[10-version-negotiation-ssl]
+server = 10-version-negotiation-server
+client = 10-version-negotiation-client
+
+[10-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[10-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-10]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[11-version-negotiation]
+ssl_conf = 11-version-negotiation-ssl
+
+[11-version-negotiation-ssl]
+server = 11-version-negotiation-server
+client = 11-version-negotiation-client
+
+[11-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[11-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-11]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[12-version-negotiation]
+ssl_conf = 12-version-negotiation-ssl
+
+[12-version-negotiation-ssl]
+server = 12-version-negotiation-server
+client = 12-version-negotiation-client
+
+[12-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[12-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-12]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[13-version-negotiation]
+ssl_conf = 13-version-negotiation-ssl
+
+[13-version-negotiation-ssl]
+server = 13-version-negotiation-server
+client = 13-version-negotiation-client
+
+[13-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[13-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-13]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[14-version-negotiation]
+ssl_conf = 14-version-negotiation-ssl
+
+[14-version-negotiation-ssl]
+server = 14-version-negotiation-server
+client = 14-version-negotiation-client
+
+[14-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[14-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-14]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[15-version-negotiation]
+ssl_conf = 15-version-negotiation-ssl
+
+[15-version-negotiation-ssl]
+server = 15-version-negotiation-server
+client = 15-version-negotiation-client
+
+[15-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[15-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-15]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[16-version-negotiation]
+ssl_conf = 16-version-negotiation-ssl
+
+[16-version-negotiation-ssl]
+server = 16-version-negotiation-server
+client = 16-version-negotiation-client
+
+[16-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[16-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-16]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[17-version-negotiation]
+ssl_conf = 17-version-negotiation-ssl
+
+[17-version-negotiation-ssl]
+server = 17-version-negotiation-server
+client = 17-version-negotiation-client
+
+[17-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[17-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-17]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[18-version-negotiation]
+ssl_conf = 18-version-negotiation-ssl
+
+[18-version-negotiation-ssl]
+server = 18-version-negotiation-server
+client = 18-version-negotiation-client
+
+[18-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[18-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-18]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[19-version-negotiation]
+ssl_conf = 19-version-negotiation-ssl
+
+[19-version-negotiation-ssl]
+server = 19-version-negotiation-server
+client = 19-version-negotiation-client
+
+[19-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[19-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-19]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[20-version-negotiation]
+ssl_conf = 20-version-negotiation-ssl
+
+[20-version-negotiation-ssl]
+server = 20-version-negotiation-server
+client = 20-version-negotiation-client
+
+[20-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[20-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-20]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[21-version-negotiation]
+ssl_conf = 21-version-negotiation-ssl
+
+[21-version-negotiation-ssl]
+server = 21-version-negotiation-server
+client = 21-version-negotiation-client
+
+[21-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[21-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-21]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[22-version-negotiation]
+ssl_conf = 22-version-negotiation-ssl
+
+[22-version-negotiation-ssl]
+server = 22-version-negotiation-server
+client = 22-version-negotiation-client
+
+[22-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[22-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-22]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[23-version-negotiation]
+ssl_conf = 23-version-negotiation-ssl
+
+[23-version-negotiation-ssl]
+server = 23-version-negotiation-server
+client = 23-version-negotiation-client
+
+[23-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[23-version-negotiation-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-23]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[24-version-negotiation]
+ssl_conf = 24-version-negotiation-ssl
+
+[24-version-negotiation-ssl]
+server = 24-version-negotiation-server
+client = 24-version-negotiation-client
+
+[24-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[24-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-24]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[25-version-negotiation]
+ssl_conf = 25-version-negotiation-ssl
+
+[25-version-negotiation-ssl]
+server = 25-version-negotiation-server
+client = 25-version-negotiation-client
+
+[25-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[25-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-25]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[26-version-negotiation]
+ssl_conf = 26-version-negotiation-ssl
+
+[26-version-negotiation-ssl]
+server = 26-version-negotiation-server
+client = 26-version-negotiation-client
+
+[26-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[26-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-26]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[27-version-negotiation]
+ssl_conf = 27-version-negotiation-ssl
+
+[27-version-negotiation-ssl]
+server = 27-version-negotiation-server
+client = 27-version-negotiation-client
+
+[27-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[27-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-27]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[28-version-negotiation]
+ssl_conf = 28-version-negotiation-ssl
+
+[28-version-negotiation-ssl]
+server = 28-version-negotiation-server
+client = 28-version-negotiation-client
+
+[28-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[28-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-28]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[29-version-negotiation]
+ssl_conf = 29-version-negotiation-ssl
+
+[29-version-negotiation-ssl]
+server = 29-version-negotiation-server
+client = 29-version-negotiation-client
+
+[29-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[29-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-29]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[30-version-negotiation]
+ssl_conf = 30-version-negotiation-ssl
+
+[30-version-negotiation-ssl]
+server = 30-version-negotiation-server
+client = 30-version-negotiation-client
+
+[30-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[30-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-30]
+ExpectedResult = ServerFail
+Method = DTLS
+
+
+# ===========================================================
+
+[31-version-negotiation]
+ssl_conf = 31-version-negotiation-ssl
+
+[31-version-negotiation-ssl]
+server = 31-version-negotiation-server
+client = 31-version-negotiation-client
+
+[31-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[31-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-31]
+ExpectedResult = ServerFail
+Method = DTLS
+
+
+# ===========================================================
+
+[32-version-negotiation]
+ssl_conf = 32-version-negotiation-ssl
+
+[32-version-negotiation-ssl]
+server = 32-version-negotiation-server
+client = 32-version-negotiation-client
+
+[32-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[32-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-32]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[33-version-negotiation]
+ssl_conf = 33-version-negotiation-ssl
+
+[33-version-negotiation-ssl]
+server = 33-version-negotiation-server
+client = 33-version-negotiation-client
+
+[33-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[33-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-33]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[34-version-negotiation]
+ssl_conf = 34-version-negotiation-ssl
+
+[34-version-negotiation-ssl]
+server = 34-version-negotiation-server
+client = 34-version-negotiation-client
+
+[34-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[34-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-34]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[35-version-negotiation]
+ssl_conf = 35-version-negotiation-ssl
+
+[35-version-negotiation-ssl]
+server = 35-version-negotiation-server
+client = 35-version-negotiation-client
+
+[35-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[35-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-35]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[36-version-negotiation]
+ssl_conf = 36-version-negotiation-ssl
+
+[36-version-negotiation-ssl]
+server = 36-version-negotiation-server
+client = 36-version-negotiation-client
+
+[36-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[36-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-36]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[37-version-negotiation]
+ssl_conf = 37-version-negotiation-ssl
+
+[37-version-negotiation-ssl]
+server = 37-version-negotiation-server
+client = 37-version-negotiation-client
+
+[37-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[37-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-37]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[38-version-negotiation]
+ssl_conf = 38-version-negotiation-ssl
+
+[38-version-negotiation-ssl]
+server = 38-version-negotiation-server
+client = 38-version-negotiation-client
+
+[38-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[38-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-38]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[39-version-negotiation]
+ssl_conf = 39-version-negotiation-ssl
+
+[39-version-negotiation-ssl]
+server = 39-version-negotiation-server
+client = 39-version-negotiation-client
+
+[39-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[39-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-39]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[40-version-negotiation]
+ssl_conf = 40-version-negotiation-ssl
+
+[40-version-negotiation-ssl]
+server = 40-version-negotiation-server
+client = 40-version-negotiation-client
+
+[40-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[40-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-40]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[41-version-negotiation]
+ssl_conf = 41-version-negotiation-ssl
+
+[41-version-negotiation-ssl]
+server = 41-version-negotiation-server
+client = 41-version-negotiation-client
+
+[41-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[41-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-41]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[42-version-negotiation]
+ssl_conf = 42-version-negotiation-ssl
+
+[42-version-negotiation-ssl]
+server = 42-version-negotiation-server
+client = 42-version-negotiation-client
+
+[42-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[42-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-42]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[43-version-negotiation]
+ssl_conf = 43-version-negotiation-ssl
+
+[43-version-negotiation-ssl]
+server = 43-version-negotiation-server
+client = 43-version-negotiation-client
+
+[43-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[43-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-43]
+ExpectedProtocol = DTLSv1
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[44-version-negotiation]
+ssl_conf = 44-version-negotiation-ssl
+
+[44-version-negotiation-ssl]
+server = 44-version-negotiation-server
+client = 44-version-negotiation-client
+
+[44-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[44-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-44]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[45-version-negotiation]
+ssl_conf = 45-version-negotiation-ssl
+
+[45-version-negotiation-ssl]
+server = 45-version-negotiation-server
+client = 45-version-negotiation-client
+
+[45-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[45-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-45]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[46-version-negotiation]
+ssl_conf = 46-version-negotiation-ssl
+
+[46-version-negotiation-ssl]
+server = 46-version-negotiation-server
+client = 46-version-negotiation-client
+
+[46-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[46-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-46]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[47-version-negotiation]
+ssl_conf = 47-version-negotiation-ssl
+
+[47-version-negotiation-ssl]
+server = 47-version-negotiation-server
+client = 47-version-negotiation-client
+
+[47-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[47-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-47]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[48-version-negotiation]
+ssl_conf = 48-version-negotiation-ssl
+
+[48-version-negotiation-ssl]
+server = 48-version-negotiation-server
+client = 48-version-negotiation-client
+
+[48-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[48-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-48]
+ExpectedResult = ClientFail
+Method = DTLS
+
+
+# ===========================================================
+
+[49-version-negotiation]
+ssl_conf = 49-version-negotiation-ssl
+
+[49-version-negotiation-ssl]
+server = 49-version-negotiation-server
+client = 49-version-negotiation-client
+
+[49-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[49-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-49]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[50-version-negotiation]
+ssl_conf = 50-version-negotiation-ssl
+
+[50-version-negotiation-ssl]
+server = 50-version-negotiation-server
+client = 50-version-negotiation-client
+
+[50-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[50-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-50]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[51-version-negotiation]
+ssl_conf = 51-version-negotiation-ssl
+
+[51-version-negotiation-ssl]
+server = 51-version-negotiation-server
+client = 51-version-negotiation-client
+
+[51-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[51-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-51]
+ExpectedResult = ClientFail
+Method = DTLS
+
+
+# ===========================================================
+
+[52-version-negotiation]
+ssl_conf = 52-version-negotiation-ssl
+
+[52-version-negotiation-ssl]
+server = 52-version-negotiation-server
+client = 52-version-negotiation-client
+
+[52-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[52-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-52]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[53-version-negotiation]
+ssl_conf = 53-version-negotiation-ssl
+
+[53-version-negotiation-ssl]
+server = 53-version-negotiation-server
+client = 53-version-negotiation-client
+
+[53-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[53-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-53]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[54-version-negotiation]
+ssl_conf = 54-version-negotiation-ssl
+
+[54-version-negotiation-ssl]
+server = 54-version-negotiation-server
+client = 54-version-negotiation-client
+
+[54-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[54-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-54]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[55-version-negotiation]
+ssl_conf = 55-version-negotiation-ssl
+
+[55-version-negotiation-ssl]
+server = 55-version-negotiation-server
+client = 55-version-negotiation-client
+
+[55-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[55-version-negotiation-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-55]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[56-version-negotiation]
+ssl_conf = 56-version-negotiation-ssl
+
+[56-version-negotiation-ssl]
+server = 56-version-negotiation-server
+client = 56-version-negotiation-client
+
+[56-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[56-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-56]
+ExpectedResult = ClientFail
+Method = DTLS
+
+
+# ===========================================================
+
+[57-version-negotiation]
+ssl_conf = 57-version-negotiation-ssl
+
+[57-version-negotiation-ssl]
+server = 57-version-negotiation-server
+client = 57-version-negotiation-client
+
+[57-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[57-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-57]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[58-version-negotiation]
+ssl_conf = 58-version-negotiation-ssl
+
+[58-version-negotiation-ssl]
+server = 58-version-negotiation-server
+client = 58-version-negotiation-client
+
+[58-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[58-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-58]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[59-version-negotiation]
+ssl_conf = 59-version-negotiation-ssl
+
+[59-version-negotiation-ssl]
+server = 59-version-negotiation-server
+client = 59-version-negotiation-client
+
+[59-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[59-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-59]
+ExpectedResult = ClientFail
+Method = DTLS
+
+
+# ===========================================================
+
+[60-version-negotiation]
+ssl_conf = 60-version-negotiation-ssl
+
+[60-version-negotiation-ssl]
+server = 60-version-negotiation-server
+client = 60-version-negotiation-client
+
+[60-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[60-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-60]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[61-version-negotiation]
+ssl_conf = 61-version-negotiation-ssl
+
+[61-version-negotiation-ssl]
+server = 61-version-negotiation-server
+client = 61-version-negotiation-client
+
+[61-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = DTLSv1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[61-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-61]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[62-version-negotiation]
+ssl_conf = 62-version-negotiation-ssl
+
+[62-version-negotiation-ssl]
+server = 62-version-negotiation-server
+client = 62-version-negotiation-client
+
+[62-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[62-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-62]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
+# ===========================================================
+
+[63-version-negotiation]
+ssl_conf = 63-version-negotiation-ssl
+
+[63-version-negotiation-ssl]
+server = 63-version-negotiation-server
+client = 63-version-negotiation-client
+
+[63-version-negotiation-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MinProtocol = DTLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[63-version-negotiation-client]
+CipherString = DEFAULT
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-63]
+ExpectedProtocol = DTLSv1.2
+ExpectedResult = Success
+Method = DTLS
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/07-dtls-protocol-version.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/07-dtls-protocol-version.conf.in
new file mode 100644
index 000000000..fb3c44a53
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/07-dtls-protocol-version.conf.in
@@ -0,0 +1,19 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test DTLS version negotiation
+
+package ssltests;
+
+use strict;
+use warnings;
+
+use protocol_version;
+
+our @tests = generate_version_tests("DTLS");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/08-npn.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/08-npn.conf
new file mode 100644
index 000000000..f38b3f697
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/08-npn.conf
@@ -0,0 +1,816 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 20
+
+test-0 = 0-npn-simple
+test-1 = 1-npn-client-finds-match
+test-2 = 2-npn-client-honours-server-pref
+test-3 = 3-npn-client-first-pref-on-mismatch
+test-4 = 4-npn-no-server-support
+test-5 = 5-npn-no-client-support
+test-6 = 6-npn-with-sni-no-context-switch
+test-7 = 7-npn-with-sni-context-switch
+test-8 = 8-npn-selected-sni-server-supports-npn
+test-9 = 9-npn-selected-sni-server-does-not-support-npn
+test-10 = 10-alpn-preferred-over-npn
+test-11 = 11-sni-npn-preferred-over-alpn
+test-12 = 12-npn-simple-resumption
+test-13 = 13-npn-server-switch-resumption
+test-14 = 14-npn-client-switch-resumption
+test-15 = 15-npn-client-first-pref-on-mismatch-resumption
+test-16 = 16-npn-no-server-support-resumption
+test-17 = 17-npn-no-client-support-resumption
+test-18 = 18-alpn-preferred-over-npn-resumption
+test-19 = 19-npn-used-if-alpn-not-supported-resumption
+# ===========================================================
+
+[0-npn-simple]
+ssl_conf = 0-npn-simple-ssl
+
+[0-npn-simple-ssl]
+server = 0-npn-simple-server
+client = 0-npn-simple-client
+
+[0-npn-simple-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-npn-simple-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedNPNProtocol = foo
+server = 0-npn-simple-server-extra
+client = 0-npn-simple-client-extra
+
+[0-npn-simple-server-extra]
+NPNProtocols = foo
+
+[0-npn-simple-client-extra]
+NPNProtocols = foo
+
+
+# ===========================================================
+
+[1-npn-client-finds-match]
+ssl_conf = 1-npn-client-finds-match-ssl
+
+[1-npn-client-finds-match-ssl]
+server = 1-npn-client-finds-match-server
+client = 1-npn-client-finds-match-client
+
+[1-npn-client-finds-match-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-npn-client-finds-match-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedNPNProtocol = bar
+server = 1-npn-client-finds-match-server-extra
+client = 1-npn-client-finds-match-client-extra
+
+[1-npn-client-finds-match-server-extra]
+NPNProtocols = baz,bar
+
+[1-npn-client-finds-match-client-extra]
+NPNProtocols = foo,bar
+
+
+# ===========================================================
+
+[2-npn-client-honours-server-pref]
+ssl_conf = 2-npn-client-honours-server-pref-ssl
+
+[2-npn-client-honours-server-pref-ssl]
+server = 2-npn-client-honours-server-pref-server
+client = 2-npn-client-honours-server-pref-client
+
+[2-npn-client-honours-server-pref-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-npn-client-honours-server-pref-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedNPNProtocol = bar
+server = 2-npn-client-honours-server-pref-server-extra
+client = 2-npn-client-honours-server-pref-client-extra
+
+[2-npn-client-honours-server-pref-server-extra]
+NPNProtocols = bar,foo
+
+[2-npn-client-honours-server-pref-client-extra]
+NPNProtocols = foo,bar
+
+
+# ===========================================================
+
+[3-npn-client-first-pref-on-mismatch]
+ssl_conf = 3-npn-client-first-pref-on-mismatch-ssl
+
+[3-npn-client-first-pref-on-mismatch-ssl]
+server = 3-npn-client-first-pref-on-mismatch-server
+client = 3-npn-client-first-pref-on-mismatch-client
+
+[3-npn-client-first-pref-on-mismatch-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-npn-client-first-pref-on-mismatch-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedNPNProtocol = foo
+server = 3-npn-client-first-pref-on-mismatch-server-extra
+client = 3-npn-client-first-pref-on-mismatch-client-extra
+
+[3-npn-client-first-pref-on-mismatch-server-extra]
+NPNProtocols = baz
+
+[3-npn-client-first-pref-on-mismatch-client-extra]
+NPNProtocols = foo,bar
+
+
+# ===========================================================
+
+[4-npn-no-server-support]
+ssl_conf = 4-npn-no-server-support-ssl
+
+[4-npn-no-server-support-ssl]
+server = 4-npn-no-server-support-server
+client = 4-npn-no-server-support-client
+
+[4-npn-no-server-support-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[4-npn-no-server-support-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-4]
+client = 4-npn-no-server-support-client-extra
+
+[4-npn-no-server-support-client-extra]
+NPNProtocols = foo
+
+
+# ===========================================================
+
+[5-npn-no-client-support]
+ssl_conf = 5-npn-no-client-support-ssl
+
+[5-npn-no-client-support-ssl]
+server = 5-npn-no-client-support-server
+client = 5-npn-no-client-support-client
+
+[5-npn-no-client-support-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[5-npn-no-client-support-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+server = 5-npn-no-client-support-server-extra
+
+[5-npn-no-client-support-server-extra]
+NPNProtocols = foo
+
+
+# ===========================================================
+
+[6-npn-with-sni-no-context-switch]
+ssl_conf = 6-npn-with-sni-no-context-switch-ssl
+
+[6-npn-with-sni-no-context-switch-ssl]
+server = 6-npn-with-sni-no-context-switch-server
+client = 6-npn-with-sni-no-context-switch-client
+server2 = 6-npn-with-sni-no-context-switch-server2
+
+[6-npn-with-sni-no-context-switch-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-npn-with-sni-no-context-switch-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-npn-with-sni-no-context-switch-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-6]
+ExpectedNPNProtocol = foo
+ExpectedServerName = server1
+server = 6-npn-with-sni-no-context-switch-server-extra
+server2 = 6-npn-with-sni-no-context-switch-server2-extra
+client = 6-npn-with-sni-no-context-switch-client-extra
+
+[6-npn-with-sni-no-context-switch-server-extra]
+NPNProtocols = foo
+ServerNameCallback = IgnoreMismatch
+
+[6-npn-with-sni-no-context-switch-server2-extra]
+NPNProtocols = bar
+
+[6-npn-with-sni-no-context-switch-client-extra]
+NPNProtocols = foo,bar
+ServerName = server1
+
+
+# ===========================================================
+
+[7-npn-with-sni-context-switch]
+ssl_conf = 7-npn-with-sni-context-switch-ssl
+
+[7-npn-with-sni-context-switch-ssl]
+server = 7-npn-with-sni-context-switch-server
+client = 7-npn-with-sni-context-switch-client
+server2 = 7-npn-with-sni-context-switch-server2
+
+[7-npn-with-sni-context-switch-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-npn-with-sni-context-switch-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-npn-with-sni-context-switch-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-7]
+ExpectedNPNProtocol = bar
+ExpectedServerName = server2
+server = 7-npn-with-sni-context-switch-server-extra
+server2 = 7-npn-with-sni-context-switch-server2-extra
+client = 7-npn-with-sni-context-switch-client-extra
+
+[7-npn-with-sni-context-switch-server-extra]
+NPNProtocols = foo
+ServerNameCallback = IgnoreMismatch
+
+[7-npn-with-sni-context-switch-server2-extra]
+NPNProtocols = bar
+
+[7-npn-with-sni-context-switch-client-extra]
+NPNProtocols = foo,bar
+ServerName = server2
+
+
+# ===========================================================
+
+[8-npn-selected-sni-server-supports-npn]
+ssl_conf = 8-npn-selected-sni-server-supports-npn-ssl
+
+[8-npn-selected-sni-server-supports-npn-ssl]
+server = 8-npn-selected-sni-server-supports-npn-server
+client = 8-npn-selected-sni-server-supports-npn-client
+server2 = 8-npn-selected-sni-server-supports-npn-server2
+
+[8-npn-selected-sni-server-supports-npn-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-npn-selected-sni-server-supports-npn-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-npn-selected-sni-server-supports-npn-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-8]
+ExpectedNPNProtocol = bar
+ExpectedServerName = server2
+server = 8-npn-selected-sni-server-supports-npn-server-extra
+server2 = 8-npn-selected-sni-server-supports-npn-server2-extra
+client = 8-npn-selected-sni-server-supports-npn-client-extra
+
+[8-npn-selected-sni-server-supports-npn-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[8-npn-selected-sni-server-supports-npn-server2-extra]
+NPNProtocols = bar
+
+[8-npn-selected-sni-server-supports-npn-client-extra]
+NPNProtocols = foo,bar
+ServerName = server2
+
+
+# ===========================================================
+
+[9-npn-selected-sni-server-does-not-support-npn]
+ssl_conf = 9-npn-selected-sni-server-does-not-support-npn-ssl
+
+[9-npn-selected-sni-server-does-not-support-npn-ssl]
+server = 9-npn-selected-sni-server-does-not-support-npn-server
+client = 9-npn-selected-sni-server-does-not-support-npn-client
+server2 = 9-npn-selected-sni-server-does-not-support-npn-server2
+
+[9-npn-selected-sni-server-does-not-support-npn-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[9-npn-selected-sni-server-does-not-support-npn-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[9-npn-selected-sni-server-does-not-support-npn-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-9]
+ExpectedServerName = server2
+server = 9-npn-selected-sni-server-does-not-support-npn-server-extra
+client = 9-npn-selected-sni-server-does-not-support-npn-client-extra
+
+[9-npn-selected-sni-server-does-not-support-npn-server-extra]
+NPNProtocols = bar
+ServerNameCallback = IgnoreMismatch
+
+[9-npn-selected-sni-server-does-not-support-npn-client-extra]
+NPNProtocols = foo,bar
+ServerName = server2
+
+
+# ===========================================================
+
+[10-alpn-preferred-over-npn]
+ssl_conf = 10-alpn-preferred-over-npn-ssl
+
+[10-alpn-preferred-over-npn-ssl]
+server = 10-alpn-preferred-over-npn-server
+client = 10-alpn-preferred-over-npn-client
+
+[10-alpn-preferred-over-npn-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[10-alpn-preferred-over-npn-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-10]
+ExpectedALPNProtocol = foo
+server = 10-alpn-preferred-over-npn-server-extra
+client = 10-alpn-preferred-over-npn-client-extra
+
+[10-alpn-preferred-over-npn-server-extra]
+ALPNProtocols = foo
+NPNProtocols = bar
+
+[10-alpn-preferred-over-npn-client-extra]
+ALPNProtocols = foo
+NPNProtocols = bar
+
+
+# ===========================================================
+
+[11-sni-npn-preferred-over-alpn]
+ssl_conf = 11-sni-npn-preferred-over-alpn-ssl
+
+[11-sni-npn-preferred-over-alpn-ssl]
+server = 11-sni-npn-preferred-over-alpn-server
+client = 11-sni-npn-preferred-over-alpn-client
+server2 = 11-sni-npn-preferred-over-alpn-server2
+
+[11-sni-npn-preferred-over-alpn-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[11-sni-npn-preferred-over-alpn-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[11-sni-npn-preferred-over-alpn-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-11]
+ExpectedNPNProtocol = bar
+ExpectedServerName = server2
+server = 11-sni-npn-preferred-over-alpn-server-extra
+server2 = 11-sni-npn-preferred-over-alpn-server2-extra
+client = 11-sni-npn-preferred-over-alpn-client-extra
+
+[11-sni-npn-preferred-over-alpn-server-extra]
+ALPNProtocols = foo
+ServerNameCallback = IgnoreMismatch
+
+[11-sni-npn-preferred-over-alpn-server2-extra]
+NPNProtocols = bar
+
+[11-sni-npn-preferred-over-alpn-client-extra]
+ALPNProtocols = foo
+NPNProtocols = bar
+ServerName = server2
+
+
+# ===========================================================
+
+[12-npn-simple-resumption]
+ssl_conf = 12-npn-simple-resumption-ssl
+
+[12-npn-simple-resumption-ssl]
+server = 12-npn-simple-resumption-server
+client = 12-npn-simple-resumption-client
+resume-server = 12-npn-simple-resumption-server
+resume-client = 12-npn-simple-resumption-client
+
+[12-npn-simple-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[12-npn-simple-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-12]
+ExpectedNPNProtocol = foo
+HandshakeMode = Resume
+ResumptionExpected = Yes
+server = 12-npn-simple-resumption-server-extra
+resume-server = 12-npn-simple-resumption-server-extra
+client = 12-npn-simple-resumption-client-extra
+resume-client = 12-npn-simple-resumption-client-extra
+
+[12-npn-simple-resumption-server-extra]
+NPNProtocols = foo
+
+[12-npn-simple-resumption-client-extra]
+NPNProtocols = foo
+
+
+# ===========================================================
+
+[13-npn-server-switch-resumption]
+ssl_conf = 13-npn-server-switch-resumption-ssl
+
+[13-npn-server-switch-resumption-ssl]
+server = 13-npn-server-switch-resumption-server
+client = 13-npn-server-switch-resumption-client
+resume-server = 13-npn-server-switch-resumption-resume-server
+resume-client = 13-npn-server-switch-resumption-client
+
+[13-npn-server-switch-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[13-npn-server-switch-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[13-npn-server-switch-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-13]
+ExpectedNPNProtocol = baz
+HandshakeMode = Resume
+ResumptionExpected = Yes
+server = 13-npn-server-switch-resumption-server-extra
+resume-server = 13-npn-server-switch-resumption-resume-server-extra
+client = 13-npn-server-switch-resumption-client-extra
+resume-client = 13-npn-server-switch-resumption-client-extra
+
+[13-npn-server-switch-resumption-server-extra]
+NPNProtocols = bar,foo
+
+[13-npn-server-switch-resumption-resume-server-extra]
+NPNProtocols = baz,foo
+
+[13-npn-server-switch-resumption-client-extra]
+NPNProtocols = foo,bar,baz
+
+
+# ===========================================================
+
+[14-npn-client-switch-resumption]
+ssl_conf = 14-npn-client-switch-resumption-ssl
+
+[14-npn-client-switch-resumption-ssl]
+server = 14-npn-client-switch-resumption-server
+client = 14-npn-client-switch-resumption-client
+resume-server = 14-npn-client-switch-resumption-server
+resume-client = 14-npn-client-switch-resumption-resume-client
+
+[14-npn-client-switch-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[14-npn-client-switch-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[14-npn-client-switch-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-14]
+ExpectedNPNProtocol = bar
+HandshakeMode = Resume
+ResumptionExpected = Yes
+server = 14-npn-client-switch-resumption-server-extra
+resume-server = 14-npn-client-switch-resumption-server-extra
+client = 14-npn-client-switch-resumption-client-extra
+resume-client = 14-npn-client-switch-resumption-resume-client-extra
+
+[14-npn-client-switch-resumption-server-extra]
+NPNProtocols = foo,bar,baz
+
+[14-npn-client-switch-resumption-client-extra]
+NPNProtocols = foo,baz
+
+[14-npn-client-switch-resumption-resume-client-extra]
+NPNProtocols = bar,baz
+
+
+# ===========================================================
+
+[15-npn-client-first-pref-on-mismatch-resumption]
+ssl_conf = 15-npn-client-first-pref-on-mismatch-resumption-ssl
+
+[15-npn-client-first-pref-on-mismatch-resumption-ssl]
+server = 15-npn-client-first-pref-on-mismatch-resumption-server
+client = 15-npn-client-first-pref-on-mismatch-resumption-client
+resume-server = 15-npn-client-first-pref-on-mismatch-resumption-resume-server
+resume-client = 15-npn-client-first-pref-on-mismatch-resumption-client
+
+[15-npn-client-first-pref-on-mismatch-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[15-npn-client-first-pref-on-mismatch-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[15-npn-client-first-pref-on-mismatch-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-15]
+ExpectedNPNProtocol = foo
+HandshakeMode = Resume
+ResumptionExpected = Yes
+server = 15-npn-client-first-pref-on-mismatch-resumption-server-extra
+resume-server = 15-npn-client-first-pref-on-mismatch-resumption-resume-server-extra
+client = 15-npn-client-first-pref-on-mismatch-resumption-client-extra
+resume-client = 15-npn-client-first-pref-on-mismatch-resumption-client-extra
+
+[15-npn-client-first-pref-on-mismatch-resumption-server-extra]
+NPNProtocols = bar
+
+[15-npn-client-first-pref-on-mismatch-resumption-resume-server-extra]
+NPNProtocols = baz
+
+[15-npn-client-first-pref-on-mismatch-resumption-client-extra]
+NPNProtocols = foo,bar
+
+
+# ===========================================================
+
+[16-npn-no-server-support-resumption]
+ssl_conf = 16-npn-no-server-support-resumption-ssl
+
+[16-npn-no-server-support-resumption-ssl]
+server = 16-npn-no-server-support-resumption-server
+client = 16-npn-no-server-support-resumption-client
+resume-server = 16-npn-no-server-support-resumption-resume-server
+resume-client = 16-npn-no-server-support-resumption-client
+
+[16-npn-no-server-support-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[16-npn-no-server-support-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[16-npn-no-server-support-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-16]
+HandshakeMode = Resume
+ResumptionExpected = Yes
+server = 16-npn-no-server-support-resumption-server-extra
+client = 16-npn-no-server-support-resumption-client-extra
+resume-client = 16-npn-no-server-support-resumption-client-extra
+
+[16-npn-no-server-support-resumption-server-extra]
+NPNProtocols = foo
+
+[16-npn-no-server-support-resumption-client-extra]
+NPNProtocols = foo
+
+
+# ===========================================================
+
+[17-npn-no-client-support-resumption]
+ssl_conf = 17-npn-no-client-support-resumption-ssl
+
+[17-npn-no-client-support-resumption-ssl]
+server = 17-npn-no-client-support-resumption-server
+client = 17-npn-no-client-support-resumption-client
+resume-server = 17-npn-no-client-support-resumption-server
+resume-client = 17-npn-no-client-support-resumption-resume-client
+
+[17-npn-no-client-support-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[17-npn-no-client-support-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[17-npn-no-client-support-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-17]
+HandshakeMode = Resume
+ResumptionExpected = Yes
+server = 17-npn-no-client-support-resumption-server-extra
+resume-server = 17-npn-no-client-support-resumption-server-extra
+client = 17-npn-no-client-support-resumption-client-extra
+
+[17-npn-no-client-support-resumption-server-extra]
+NPNProtocols = foo
+
+[17-npn-no-client-support-resumption-client-extra]
+NPNProtocols = foo
+
+
+# ===========================================================
+
+[18-alpn-preferred-over-npn-resumption]
+ssl_conf = 18-alpn-preferred-over-npn-resumption-ssl
+
+[18-alpn-preferred-over-npn-resumption-ssl]
+server = 18-alpn-preferred-over-npn-resumption-server
+client = 18-alpn-preferred-over-npn-resumption-client
+resume-server = 18-alpn-preferred-over-npn-resumption-resume-server
+resume-client = 18-alpn-preferred-over-npn-resumption-client
+
+[18-alpn-preferred-over-npn-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[18-alpn-preferred-over-npn-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[18-alpn-preferred-over-npn-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-18]
+ExpectedALPNProtocol = foo
+HandshakeMode = Resume
+ResumptionExpected = Yes
+server = 18-alpn-preferred-over-npn-resumption-server-extra
+resume-server = 18-alpn-preferred-over-npn-resumption-resume-server-extra
+client = 18-alpn-preferred-over-npn-resumption-client-extra
+resume-client = 18-alpn-preferred-over-npn-resumption-client-extra
+
+[18-alpn-preferred-over-npn-resumption-server-extra]
+NPNProtocols = bar
+
+[18-alpn-preferred-over-npn-resumption-resume-server-extra]
+ALPNProtocols = foo
+NPNProtocols = baz
+
+[18-alpn-preferred-over-npn-resumption-client-extra]
+ALPNProtocols = foo
+NPNProtocols = bar,baz
+
+
+# ===========================================================
+
+[19-npn-used-if-alpn-not-supported-resumption]
+ssl_conf = 19-npn-used-if-alpn-not-supported-resumption-ssl
+
+[19-npn-used-if-alpn-not-supported-resumption-ssl]
+server = 19-npn-used-if-alpn-not-supported-resumption-server
+client = 19-npn-used-if-alpn-not-supported-resumption-client
+resume-server = 19-npn-used-if-alpn-not-supported-resumption-resume-server
+resume-client = 19-npn-used-if-alpn-not-supported-resumption-client
+
+[19-npn-used-if-alpn-not-supported-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[19-npn-used-if-alpn-not-supported-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[19-npn-used-if-alpn-not-supported-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-19]
+ExpectedNPNProtocol = baz
+HandshakeMode = Resume
+ResumptionExpected = Yes
+server = 19-npn-used-if-alpn-not-supported-resumption-server-extra
+resume-server = 19-npn-used-if-alpn-not-supported-resumption-resume-server-extra
+client = 19-npn-used-if-alpn-not-supported-resumption-client-extra
+resume-client = 19-npn-used-if-alpn-not-supported-resumption-client-extra
+
+[19-npn-used-if-alpn-not-supported-resumption-server-extra]
+ALPNProtocols = foo
+NPNProtocols = bar
+
+[19-npn-used-if-alpn-not-supported-resumption-resume-server-extra]
+NPNProtocols = baz
+
+[19-npn-used-if-alpn-not-supported-resumption-client-extra]
+ALPNProtocols = foo
+NPNProtocols = bar,baz
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/08-npn.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/08-npn.conf.in
new file mode 100644
index 000000000..b5df13d5a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/08-npn.conf.in
@@ -0,0 +1,443 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test NPN. Note that NPN is only supported up to TLSv1.2
+
+use strict;
+use warnings;
+
+package ssltests;
+
+our @tests = (
+ {
+ name => "npn-simple",
+ server => {
+ extra => {
+ "NPNProtocols" => "foo",
+ },
+ },
+ client => {
+ extra => {
+ "NPNProtocols" => "foo",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedNPNProtocol" => "foo",
+ },
+ },
+ {
+ name => "npn-client-finds-match",
+ server => {
+ extra => {
+ "NPNProtocols" => "baz,bar",
+ },
+ },
+ client => {
+ extra => {
+ "NPNProtocols" => "foo,bar",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedNPNProtocol" => "bar",
+ },
+ },
+ {
+ name => "npn-client-honours-server-pref",
+ server => {
+ extra => {
+ "NPNProtocols" => "bar,foo",
+ },
+ },
+ client => {
+ extra => {
+ "NPNProtocols" => "foo,bar",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedNPNProtocol" => "bar",
+ },
+ },
+ {
+ name => "npn-client-first-pref-on-mismatch",
+ server => {
+ extra => {
+ "NPNProtocols" => "baz",
+ },
+ },
+ client => {
+ extra => {
+ "NPNProtocols" => "foo,bar",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedNPNProtocol" => "foo",
+ },
+ },
+ {
+ name => "npn-no-server-support",
+ server => {},
+ client => {
+ extra => {
+ "NPNProtocols" => "foo",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedNPNProtocol" => undef,
+ },
+ },
+ {
+ name => "npn-no-client-support",
+ server => {
+ extra => {
+ "NPNProtocols" => "foo",
+ },
+ },
+ client => {
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedNPNProtocol" => undef,
+ },
+ },
+ {
+ name => "npn-with-sni-no-context-switch",
+ server => {
+ extra => {
+ "NPNProtocols" => "foo",
+ "ServerNameCallback" => "IgnoreMismatch",
+ },
+ },
+ server2 => {
+ extra => {
+ "NPNProtocols" => "bar",
+ },
+ },
+ client => {
+ extra => {
+ "NPNProtocols" => "foo,bar",
+ "ServerName" => "server1",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedServerName" => "server1",
+ "ExpectedNPNProtocol" => "foo",
+ },
+ },
+ {
+ name => "npn-with-sni-context-switch",
+ server => {
+ extra => {
+ "NPNProtocols" => "foo",
+ "ServerNameCallback" => "IgnoreMismatch",
+ },
+ },
+ server2 => {
+ extra => {
+ "NPNProtocols" => "bar",
+ },
+ },
+ client => {
+ extra => {
+ "NPNProtocols" => "foo,bar",
+ "ServerName" => "server2",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedServerName" => "server2",
+ "ExpectedNPNProtocol" => "bar",
+ },
+ },
+ {
+ name => "npn-selected-sni-server-supports-npn",
+ server => {
+ extra => {
+ "ServerNameCallback" => "IgnoreMismatch",
+ },
+ },
+ server2 => {
+ extra => {
+ "NPNProtocols" => "bar",
+ },
+ },
+ client => {
+ extra => {
+ "NPNProtocols" => "foo,bar",
+ "ServerName" => "server2",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedServerName" => "server2",
+ "ExpectedNPNProtocol" => "bar",
+ },
+ },
+ {
+ name => "npn-selected-sni-server-does-not-support-npn",
+ server => {
+ extra => {
+ "NPNProtocols" => "bar",
+ "ServerNameCallback" => "IgnoreMismatch",
+ },
+ },
+ server2 => { },
+ client => {
+ extra => {
+ "NPNProtocols" => "foo,bar",
+ "ServerName" => "server2",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedServerName" => "server2",
+ "ExpectedNPNProtocol" => undef,
+ },
+ },
+ {
+ name => "alpn-preferred-over-npn",
+ server => {
+ extra => {
+ "ALPNProtocols" => "foo",
+ "NPNProtocols" => "bar",
+ },
+ },
+ client => {
+ extra => {
+ "ALPNProtocols" => "foo",
+ "NPNProtocols" => "bar",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedALPNProtocol" => "foo",
+ "ExpectedNPNProtocol" => undef,
+ },
+ },
+ {
+ name => "sni-npn-preferred-over-alpn",
+ server => {
+ extra => {
+ "ServerNameCallback" => "IgnoreMismatch",
+ "ALPNProtocols" => "foo",
+ },
+ },
+ server2 => {
+ extra => {
+ "NPNProtocols" => "bar",
+ },
+ },
+ client => {
+ extra => {
+ "ServerName" => "server2",
+ "ALPNProtocols" => "foo",
+ "NPNProtocols" => "bar",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedALPNProtocol" => undef,
+ "ExpectedNPNProtocol" => "bar",
+ "ExpectedServerName" => "server2",
+ },
+ },
+ {
+ name => "npn-simple-resumption",
+ server => {
+ extra => {
+ "NPNProtocols" => "foo",
+ },
+ },
+ client => {
+ extra => {
+ "NPNProtocols" => "foo",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "HandshakeMode" => "Resume",
+ "ResumptionExpected" => "Yes",
+ "ExpectedNPNProtocol" => "foo",
+ },
+ },
+ {
+ name => "npn-server-switch-resumption",
+ server => {
+ extra => {
+ "NPNProtocols" => "bar,foo",
+ },
+ },
+ resume_server => {
+ extra => {
+ "NPNProtocols" => "baz,foo",
+ },
+ },
+ client => {
+ extra => {
+ "NPNProtocols" => "foo,bar,baz",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "HandshakeMode" => "Resume",
+ "ResumptionExpected" => "Yes",
+ "ExpectedNPNProtocol" => "baz",
+ },
+ },
+ {
+ name => "npn-client-switch-resumption",
+ server => {
+ extra => {
+ "NPNProtocols" => "foo,bar,baz",
+ },
+ },
+ client => {
+ extra => {
+ "NPNProtocols" => "foo,baz",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ resume_client => {
+ extra => {
+ "NPNProtocols" => "bar,baz",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "HandshakeMode" => "Resume",
+ "ResumptionExpected" => "Yes",
+ "ExpectedNPNProtocol" => "bar",
+ },
+ },
+ {
+ name => "npn-client-first-pref-on-mismatch-resumption",
+ server => {
+ extra => {
+ "NPNProtocols" => "bar",
+ },
+ },
+ resume_server => {
+ extra => {
+ "NPNProtocols" => "baz",
+ },
+ },
+ client => {
+ extra => {
+ "NPNProtocols" => "foo,bar",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "HandshakeMode" => "Resume",
+ "ResumptionExpected" => "Yes",
+ "ExpectedNPNProtocol" => "foo",
+ },
+ },
+ {
+ name => "npn-no-server-support-resumption",
+ server => {
+ extra => {
+ "NPNProtocols" => "foo",
+ },
+ },
+ resume_server => { },
+ client => {
+ extra => {
+ "NPNProtocols" => "foo",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "HandshakeMode" => "Resume",
+ "ResumptionExpected" => "Yes",
+ "ExpectedNPNProtocol" => undef,
+ },
+ },
+ {
+ name => "npn-no-client-support-resumption",
+ server => {
+ extra => {
+ "NPNProtocols" => "foo",
+ },
+ },
+ client => {
+ extra => {
+ "NPNProtocols" => "foo",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ resume_client => {
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "HandshakeMode" => "Resume",
+ "ResumptionExpected" => "Yes",
+ "ExpectedNPNProtocol" => undef,
+ },
+ },
+ {
+ name => "alpn-preferred-over-npn-resumption",
+ server => {
+ extra => {
+ "NPNProtocols" => "bar",
+ },
+ },
+ resume_server => {
+ extra => {
+ "ALPNProtocols" => "foo",
+ "NPNProtocols" => "baz",
+ },
+ },
+ client => {
+ extra => {
+ "ALPNProtocols" => "foo",
+ "NPNProtocols" => "bar,baz",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "HandshakeMode" => "Resume",
+ "ResumptionExpected" => "Yes",
+ "ExpectedALPNProtocol" => "foo",
+ "ExpectedNPNProtocol" => undef,
+ },
+ },
+ {
+ name => "npn-used-if-alpn-not-supported-resumption",
+ server => {
+ extra => {
+ "ALPNProtocols" => "foo",
+ "NPNProtocols" => "bar",
+ },
+ },
+ resume_server => {
+ extra => {
+ "NPNProtocols" => "baz",
+ },
+ },
+ client => {
+ extra => {
+ "ALPNProtocols" => "foo",
+ "NPNProtocols" => "bar,baz",
+ },
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "HandshakeMode" => "Resume",
+ "ResumptionExpected" => "Yes",
+ "ExpectedALPNProtocol" => undef,
+ "ExpectedNPNProtocol" => "baz",
+ },
+ },
+);
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/09-alpn.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/09-alpn.conf
new file mode 100644
index 000000000..e7e6cb953
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/09-alpn.conf
@@ -0,0 +1,619 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 16
+
+test-0 = 0-alpn-simple
+test-1 = 1-alpn-server-finds-match
+test-2 = 2-alpn-server-honours-server-pref
+test-3 = 3-alpn-alert-on-mismatch
+test-4 = 4-alpn-no-server-support
+test-5 = 5-alpn-no-client-support
+test-6 = 6-alpn-with-sni-no-context-switch
+test-7 = 7-alpn-with-sni-context-switch
+test-8 = 8-alpn-selected-sni-server-supports-alpn
+test-9 = 9-alpn-selected-sni-server-does-not-support-alpn
+test-10 = 10-alpn-simple-resumption
+test-11 = 11-alpn-server-switch-resumption
+test-12 = 12-alpn-client-switch-resumption
+test-13 = 13-alpn-alert-on-mismatch-resumption
+test-14 = 14-alpn-no-server-support-resumption
+test-15 = 15-alpn-no-client-support-resumption
+# ===========================================================
+
+[0-alpn-simple]
+ssl_conf = 0-alpn-simple-ssl
+
+[0-alpn-simple-ssl]
+server = 0-alpn-simple-server
+client = 0-alpn-simple-client
+
+[0-alpn-simple-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-alpn-simple-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedALPNProtocol = foo
+server = 0-alpn-simple-server-extra
+client = 0-alpn-simple-client-extra
+
+[0-alpn-simple-server-extra]
+ALPNProtocols = foo
+
+[0-alpn-simple-client-extra]
+ALPNProtocols = foo
+
+
+# ===========================================================
+
+[1-alpn-server-finds-match]
+ssl_conf = 1-alpn-server-finds-match-ssl
+
+[1-alpn-server-finds-match-ssl]
+server = 1-alpn-server-finds-match-server
+client = 1-alpn-server-finds-match-client
+
+[1-alpn-server-finds-match-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-alpn-server-finds-match-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedALPNProtocol = bar
+server = 1-alpn-server-finds-match-server-extra
+client = 1-alpn-server-finds-match-client-extra
+
+[1-alpn-server-finds-match-server-extra]
+ALPNProtocols = baz,bar
+
+[1-alpn-server-finds-match-client-extra]
+ALPNProtocols = foo,bar
+
+
+# ===========================================================
+
+[2-alpn-server-honours-server-pref]
+ssl_conf = 2-alpn-server-honours-server-pref-ssl
+
+[2-alpn-server-honours-server-pref-ssl]
+server = 2-alpn-server-honours-server-pref-server
+client = 2-alpn-server-honours-server-pref-client
+
+[2-alpn-server-honours-server-pref-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-alpn-server-honours-server-pref-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedALPNProtocol = bar
+server = 2-alpn-server-honours-server-pref-server-extra
+client = 2-alpn-server-honours-server-pref-client-extra
+
+[2-alpn-server-honours-server-pref-server-extra]
+ALPNProtocols = bar,foo
+
+[2-alpn-server-honours-server-pref-client-extra]
+ALPNProtocols = foo,bar
+
+
+# ===========================================================
+
+[3-alpn-alert-on-mismatch]
+ssl_conf = 3-alpn-alert-on-mismatch-ssl
+
+[3-alpn-alert-on-mismatch-ssl]
+server = 3-alpn-alert-on-mismatch-server
+client = 3-alpn-alert-on-mismatch-client
+
+[3-alpn-alert-on-mismatch-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-alpn-alert-on-mismatch-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedResult = ServerFail
+ExpectedServerAlert = NoApplicationProtocol
+server = 3-alpn-alert-on-mismatch-server-extra
+client = 3-alpn-alert-on-mismatch-client-extra
+
+[3-alpn-alert-on-mismatch-server-extra]
+ALPNProtocols = baz
+
+[3-alpn-alert-on-mismatch-client-extra]
+ALPNProtocols = foo,bar
+
+
+# ===========================================================
+
+[4-alpn-no-server-support]
+ssl_conf = 4-alpn-no-server-support-ssl
+
+[4-alpn-no-server-support-ssl]
+server = 4-alpn-no-server-support-server
+client = 4-alpn-no-server-support-client
+
+[4-alpn-no-server-support-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[4-alpn-no-server-support-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-4]
+client = 4-alpn-no-server-support-client-extra
+
+[4-alpn-no-server-support-client-extra]
+ALPNProtocols = foo
+
+
+# ===========================================================
+
+[5-alpn-no-client-support]
+ssl_conf = 5-alpn-no-client-support-ssl
+
+[5-alpn-no-client-support-ssl]
+server = 5-alpn-no-client-support-server
+client = 5-alpn-no-client-support-client
+
+[5-alpn-no-client-support-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[5-alpn-no-client-support-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+server = 5-alpn-no-client-support-server-extra
+
+[5-alpn-no-client-support-server-extra]
+ALPNProtocols = foo
+
+
+# ===========================================================
+
+[6-alpn-with-sni-no-context-switch]
+ssl_conf = 6-alpn-with-sni-no-context-switch-ssl
+
+[6-alpn-with-sni-no-context-switch-ssl]
+server = 6-alpn-with-sni-no-context-switch-server
+client = 6-alpn-with-sni-no-context-switch-client
+server2 = 6-alpn-with-sni-no-context-switch-server2
+
+[6-alpn-with-sni-no-context-switch-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-alpn-with-sni-no-context-switch-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-alpn-with-sni-no-context-switch-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-6]
+ExpectedALPNProtocol = foo
+ExpectedServerName = server1
+server = 6-alpn-with-sni-no-context-switch-server-extra
+server2 = 6-alpn-with-sni-no-context-switch-server2-extra
+client = 6-alpn-with-sni-no-context-switch-client-extra
+
+[6-alpn-with-sni-no-context-switch-server-extra]
+ALPNProtocols = foo
+ServerNameCallback = IgnoreMismatch
+
+[6-alpn-with-sni-no-context-switch-server2-extra]
+ALPNProtocols = bar
+
+[6-alpn-with-sni-no-context-switch-client-extra]
+ALPNProtocols = foo,bar
+ServerName = server1
+
+
+# ===========================================================
+
+[7-alpn-with-sni-context-switch]
+ssl_conf = 7-alpn-with-sni-context-switch-ssl
+
+[7-alpn-with-sni-context-switch-ssl]
+server = 7-alpn-with-sni-context-switch-server
+client = 7-alpn-with-sni-context-switch-client
+server2 = 7-alpn-with-sni-context-switch-server2
+
+[7-alpn-with-sni-context-switch-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-alpn-with-sni-context-switch-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-alpn-with-sni-context-switch-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-7]
+ExpectedALPNProtocol = bar
+ExpectedServerName = server2
+server = 7-alpn-with-sni-context-switch-server-extra
+server2 = 7-alpn-with-sni-context-switch-server2-extra
+client = 7-alpn-with-sni-context-switch-client-extra
+
+[7-alpn-with-sni-context-switch-server-extra]
+ALPNProtocols = foo
+ServerNameCallback = IgnoreMismatch
+
+[7-alpn-with-sni-context-switch-server2-extra]
+ALPNProtocols = bar
+
+[7-alpn-with-sni-context-switch-client-extra]
+ALPNProtocols = foo,bar
+ServerName = server2
+
+
+# ===========================================================
+
+[8-alpn-selected-sni-server-supports-alpn]
+ssl_conf = 8-alpn-selected-sni-server-supports-alpn-ssl
+
+[8-alpn-selected-sni-server-supports-alpn-ssl]
+server = 8-alpn-selected-sni-server-supports-alpn-server
+client = 8-alpn-selected-sni-server-supports-alpn-client
+server2 = 8-alpn-selected-sni-server-supports-alpn-server2
+
+[8-alpn-selected-sni-server-supports-alpn-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-alpn-selected-sni-server-supports-alpn-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-alpn-selected-sni-server-supports-alpn-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-8]
+ExpectedALPNProtocol = bar
+ExpectedServerName = server2
+server = 8-alpn-selected-sni-server-supports-alpn-server-extra
+server2 = 8-alpn-selected-sni-server-supports-alpn-server2-extra
+client = 8-alpn-selected-sni-server-supports-alpn-client-extra
+
+[8-alpn-selected-sni-server-supports-alpn-server-extra]
+ServerNameCallback = IgnoreMismatch
+
+[8-alpn-selected-sni-server-supports-alpn-server2-extra]
+ALPNProtocols = bar
+
+[8-alpn-selected-sni-server-supports-alpn-client-extra]
+ALPNProtocols = foo,bar
+ServerName = server2
+
+
+# ===========================================================
+
+[9-alpn-selected-sni-server-does-not-support-alpn]
+ssl_conf = 9-alpn-selected-sni-server-does-not-support-alpn-ssl
+
+[9-alpn-selected-sni-server-does-not-support-alpn-ssl]
+server = 9-alpn-selected-sni-server-does-not-support-alpn-server
+client = 9-alpn-selected-sni-server-does-not-support-alpn-client
+server2 = 9-alpn-selected-sni-server-does-not-support-alpn-server2
+
+[9-alpn-selected-sni-server-does-not-support-alpn-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[9-alpn-selected-sni-server-does-not-support-alpn-server2]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[9-alpn-selected-sni-server-does-not-support-alpn-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-9]
+ExpectedServerName = server2
+server = 9-alpn-selected-sni-server-does-not-support-alpn-server-extra
+client = 9-alpn-selected-sni-server-does-not-support-alpn-client-extra
+
+[9-alpn-selected-sni-server-does-not-support-alpn-server-extra]
+ALPNProtocols = bar
+ServerNameCallback = IgnoreMismatch
+
+[9-alpn-selected-sni-server-does-not-support-alpn-client-extra]
+ALPNProtocols = foo,bar
+ServerName = server2
+
+
+# ===========================================================
+
+[10-alpn-simple-resumption]
+ssl_conf = 10-alpn-simple-resumption-ssl
+
+[10-alpn-simple-resumption-ssl]
+server = 10-alpn-simple-resumption-server
+client = 10-alpn-simple-resumption-client
+resume-server = 10-alpn-simple-resumption-server
+resume-client = 10-alpn-simple-resumption-client
+
+[10-alpn-simple-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[10-alpn-simple-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-10]
+ExpectedALPNProtocol = foo
+HandshakeMode = Resume
+ResumptionExpected = Yes
+server = 10-alpn-simple-resumption-server-extra
+resume-server = 10-alpn-simple-resumption-server-extra
+client = 10-alpn-simple-resumption-client-extra
+resume-client = 10-alpn-simple-resumption-client-extra
+
+[10-alpn-simple-resumption-server-extra]
+ALPNProtocols = foo
+
+[10-alpn-simple-resumption-client-extra]
+ALPNProtocols = foo
+
+
+# ===========================================================
+
+[11-alpn-server-switch-resumption]
+ssl_conf = 11-alpn-server-switch-resumption-ssl
+
+[11-alpn-server-switch-resumption-ssl]
+server = 11-alpn-server-switch-resumption-server
+client = 11-alpn-server-switch-resumption-client
+resume-server = 11-alpn-server-switch-resumption-resume-server
+resume-client = 11-alpn-server-switch-resumption-client
+
+[11-alpn-server-switch-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[11-alpn-server-switch-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[11-alpn-server-switch-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-11]
+ExpectedALPNProtocol = baz
+HandshakeMode = Resume
+ResumptionExpected = Yes
+server = 11-alpn-server-switch-resumption-server-extra
+resume-server = 11-alpn-server-switch-resumption-resume-server-extra
+client = 11-alpn-server-switch-resumption-client-extra
+resume-client = 11-alpn-server-switch-resumption-client-extra
+
+[11-alpn-server-switch-resumption-server-extra]
+ALPNProtocols = bar,foo
+
+[11-alpn-server-switch-resumption-resume-server-extra]
+ALPNProtocols = baz,foo
+
+[11-alpn-server-switch-resumption-client-extra]
+ALPNProtocols = foo,bar,baz
+
+
+# ===========================================================
+
+[12-alpn-client-switch-resumption]
+ssl_conf = 12-alpn-client-switch-resumption-ssl
+
+[12-alpn-client-switch-resumption-ssl]
+server = 12-alpn-client-switch-resumption-server
+client = 12-alpn-client-switch-resumption-client
+resume-server = 12-alpn-client-switch-resumption-server
+resume-client = 12-alpn-client-switch-resumption-resume-client
+
+[12-alpn-client-switch-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[12-alpn-client-switch-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[12-alpn-client-switch-resumption-resume-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-12]
+ExpectedALPNProtocol = bar
+HandshakeMode = Resume
+ResumptionExpected = Yes
+server = 12-alpn-client-switch-resumption-server-extra
+resume-server = 12-alpn-client-switch-resumption-server-extra
+client = 12-alpn-client-switch-resumption-client-extra
+resume-client = 12-alpn-client-switch-resumption-resume-client-extra
+
+[12-alpn-client-switch-resumption-server-extra]
+ALPNProtocols = foo,bar,baz
+
+[12-alpn-client-switch-resumption-client-extra]
+ALPNProtocols = foo,baz
+
+[12-alpn-client-switch-resumption-resume-client-extra]
+ALPNProtocols = bar,baz
+
+
+# ===========================================================
+
+[13-alpn-alert-on-mismatch-resumption]
+ssl_conf = 13-alpn-alert-on-mismatch-resumption-ssl
+
+[13-alpn-alert-on-mismatch-resumption-ssl]
+server = 13-alpn-alert-on-mismatch-resumption-server
+client = 13-alpn-alert-on-mismatch-resumption-client
+resume-server = 13-alpn-alert-on-mismatch-resumption-resume-server
+resume-client = 13-alpn-alert-on-mismatch-resumption-client
+
+[13-alpn-alert-on-mismatch-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[13-alpn-alert-on-mismatch-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[13-alpn-alert-on-mismatch-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-13]
+ExpectedResult = ServerFail
+ExpectedServerAlert = NoApplicationProtocol
+HandshakeMode = Resume
+server = 13-alpn-alert-on-mismatch-resumption-server-extra
+resume-server = 13-alpn-alert-on-mismatch-resumption-resume-server-extra
+client = 13-alpn-alert-on-mismatch-resumption-client-extra
+resume-client = 13-alpn-alert-on-mismatch-resumption-client-extra
+
+[13-alpn-alert-on-mismatch-resumption-server-extra]
+ALPNProtocols = bar
+
+[13-alpn-alert-on-mismatch-resumption-resume-server-extra]
+ALPNProtocols = baz
+
+[13-alpn-alert-on-mismatch-resumption-client-extra]
+ALPNProtocols = foo,bar
+
+
+# ===========================================================
+
+[14-alpn-no-server-support-resumption]
+ssl_conf = 14-alpn-no-server-support-resumption-ssl
+
+[14-alpn-no-server-support-resumption-ssl]
+server = 14-alpn-no-server-support-resumption-server
+client = 14-alpn-no-server-support-resumption-client
+resume-server = 14-alpn-no-server-support-resumption-resume-server
+resume-client = 14-alpn-no-server-support-resumption-client
+
+[14-alpn-no-server-support-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[14-alpn-no-server-support-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[14-alpn-no-server-support-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-14]
+HandshakeMode = Resume
+ResumptionExpected = Yes
+server = 14-alpn-no-server-support-resumption-server-extra
+client = 14-alpn-no-server-support-resumption-client-extra
+resume-client = 14-alpn-no-server-support-resumption-client-extra
+
+[14-alpn-no-server-support-resumption-server-extra]
+ALPNProtocols = foo
+
+[14-alpn-no-server-support-resumption-client-extra]
+ALPNProtocols = foo
+
+
+# ===========================================================
+
+[15-alpn-no-client-support-resumption]
+ssl_conf = 15-alpn-no-client-support-resumption-ssl
+
+[15-alpn-no-client-support-resumption-ssl]
+server = 15-alpn-no-client-support-resumption-server
+client = 15-alpn-no-client-support-resumption-client
+resume-server = 15-alpn-no-client-support-resumption-server
+resume-client = 15-alpn-no-client-support-resumption-resume-client
+
+[15-alpn-no-client-support-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[15-alpn-no-client-support-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[15-alpn-no-client-support-resumption-resume-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-15]
+HandshakeMode = Resume
+ResumptionExpected = Yes
+server = 15-alpn-no-client-support-resumption-server-extra
+resume-server = 15-alpn-no-client-support-resumption-server-extra
+client = 15-alpn-no-client-support-resumption-client-extra
+
+[15-alpn-no-client-support-resumption-server-extra]
+ALPNProtocols = foo
+
+[15-alpn-no-client-support-resumption-client-extra]
+ALPNProtocols = foo
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/09-alpn.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/09-alpn.conf.in
new file mode 100644
index 000000000..6e86375af
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/09-alpn.conf.in
@@ -0,0 +1,325 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test version negotiation
+
+use strict;
+use warnings;
+
+package ssltests;
+
+
+our @tests = (
+ {
+ name => "alpn-simple",
+ server => {
+ extra => {
+ "ALPNProtocols" => "foo",
+ },
+ },
+ client => {
+ extra => {
+ "ALPNProtocols" => "foo",
+ },
+ },
+ test => {
+ "ExpectedALPNProtocol" => "foo",
+ },
+ },
+ {
+ name => "alpn-server-finds-match",
+ server => {
+ extra => {
+ "ALPNProtocols" => "baz,bar",
+ },
+ },
+ client => {
+ extra => {
+ "ALPNProtocols" => "foo,bar",
+ },
+ },
+ test => {
+ "ExpectedALPNProtocol" => "bar",
+ },
+ },
+ {
+ name => "alpn-server-honours-server-pref",
+ server => {
+ extra => {
+ "ALPNProtocols" => "bar,foo",
+ },
+ },
+ client => {
+ extra => {
+ "ALPNProtocols" => "foo,bar",
+ },
+ },
+ test => {
+ "ExpectedALPNProtocol" => "bar",
+ },
+ },
+ {
+ name => "alpn-alert-on-mismatch",
+ server => {
+ extra => {
+ "ALPNProtocols" => "baz",
+ },
+ },
+ client => {
+ extra => {
+ "ALPNProtocols" => "foo,bar",
+ },
+ },
+ test => {
+ "ExpectedResult" => "ServerFail",
+ "ExpectedServerAlert" => "NoApplicationProtocol",
+ },
+ },
+ {
+ name => "alpn-no-server-support",
+ server => { },
+ client => {
+ extra => {
+ "ALPNProtocols" => "foo",
+ },
+ },
+ test => {
+ "ExpectedALPNProtocol" => undef,
+ },
+ },
+ {
+ name => "alpn-no-client-support",
+ server => {
+ extra => {
+ "ALPNProtocols" => "foo",
+ },
+ },
+ client => { },
+ test => {
+ "ExpectedALPNProtocol" => undef,
+ },
+ },
+ {
+ name => "alpn-with-sni-no-context-switch",
+ server => {
+ extra => {
+ "ALPNProtocols" => "foo",
+ "ServerNameCallback" => "IgnoreMismatch",
+ },
+ },
+ server2 => {
+ extra => {
+ "ALPNProtocols" => "bar",
+ },
+ },
+ client => {
+ extra => {
+ "ALPNProtocols" => "foo,bar",
+ "ServerName" => "server1",
+ },
+ },
+ test => {
+ "ExpectedServerName" => "server1",
+ "ExpectedALPNProtocol" => "foo",
+ },
+ },
+ {
+ name => "alpn-with-sni-context-switch",
+ server => {
+ extra => {
+ "ALPNProtocols" => "foo",
+ "ServerNameCallback" => "IgnoreMismatch",
+ },
+ },
+ server2 => {
+ extra => {
+ "ALPNProtocols" => "bar",
+ },
+ },
+ client => {
+ extra => {
+ "ALPNProtocols" => "foo,bar",
+ "ServerName" => "server2",
+ },
+ },
+ test => {
+ "ExpectedServerName" => "server2",
+ "ExpectedALPNProtocol" => "bar",
+ },
+ },
+ {
+ name => "alpn-selected-sni-server-supports-alpn",
+ server => {
+ extra => {
+ "ServerNameCallback" => "IgnoreMismatch",
+ },
+ },
+ server2 => {
+ extra => {
+ "ALPNProtocols" => "bar",
+ },
+ },
+ client => {
+ extra => {
+ "ALPNProtocols" => "foo,bar",
+ "ServerName" => "server2",
+ },
+ },
+ test => {
+ "ExpectedServerName" => "server2",
+ "ExpectedALPNProtocol" => "bar",
+ },
+ },
+ {
+ name => "alpn-selected-sni-server-does-not-support-alpn",
+ server => {
+ extra => {
+ "ALPNProtocols" => "bar",
+ "ServerNameCallback" => "IgnoreMismatch",
+ },
+ },
+ server2 => { },
+ client => {
+ extra => {
+ "ALPNProtocols" => "foo,bar",
+ "ServerName" => "server2",
+ },
+ },
+ test => {
+ "ExpectedServerName" => "server2",
+ "ExpectedALPNProtocol" => undef,
+ },
+ },
+ {
+ name => "alpn-simple-resumption",
+ server => {
+ extra => {
+ "ALPNProtocols" => "foo",
+ },
+ },
+ client => {
+ extra => {
+ "ALPNProtocols" => "foo",
+ },
+ },
+ test => {
+ "HandshakeMode" => "Resume",
+ "ResumptionExpected" => "Yes",
+ "ExpectedALPNProtocol" => "foo",
+ },
+ },
+ {
+ name => "alpn-server-switch-resumption",
+ server => {
+ extra => {
+ "ALPNProtocols" => "bar,foo",
+ },
+ },
+ resume_server => {
+ extra => {
+ "ALPNProtocols" => "baz,foo",
+ },
+ },
+ client => {
+ extra => {
+ "ALPNProtocols" => "foo,bar,baz",
+ },
+ },
+ test => {
+ "HandshakeMode" => "Resume",
+ "ResumptionExpected" => "Yes",
+ "ExpectedALPNProtocol" => "baz",
+ },
+ },
+ {
+ name => "alpn-client-switch-resumption",
+ server => {
+ extra => {
+ "ALPNProtocols" => "foo,bar,baz",
+ },
+ },
+ client => {
+ extra => {
+ "ALPNProtocols" => "foo,baz",
+ },
+ },
+ resume_client => {
+ extra => {
+ "ALPNProtocols" => "bar,baz",
+ },
+ },
+ test => {
+ "HandshakeMode" => "Resume",
+ "ResumptionExpected" => "Yes",
+ "ExpectedALPNProtocol" => "bar",
+ },
+ },
+ {
+ name => "alpn-alert-on-mismatch-resumption",
+ server => {
+ extra => {
+ "ALPNProtocols" => "bar",
+ },
+ },
+ resume_server => {
+ extra => {
+ "ALPNProtocols" => "baz",
+ },
+ },
+ client => {
+ extra => {
+ "ALPNProtocols" => "foo,bar",
+ },
+ },
+ test => {
+ "HandshakeMode" => "Resume",
+ "ExpectedResult" => "ServerFail",
+ "ExpectedServerAlert" => "NoApplicationProtocol",
+ },
+ },
+ {
+ name => "alpn-no-server-support-resumption",
+ server => {
+ extra => {
+ "ALPNProtocols" => "foo",
+ },
+ },
+ resume_server => { },
+ client => {
+ extra => {
+ "ALPNProtocols" => "foo",
+ },
+ },
+ test => {
+ "HandshakeMode" => "Resume",
+ "ResumptionExpected" => "Yes",
+ "ExpectedALPNProtocol" => undef,
+ },
+ },
+ {
+ name => "alpn-no-client-support-resumption",
+ server => {
+ extra => {
+ "ALPNProtocols" => "foo",
+ },
+ },
+ client => {
+ extra => {
+ "ALPNProtocols" => "foo",
+ },
+ },
+ resume_client => {
+ },
+ test => {
+ "HandshakeMode" => "Resume",
+ "ResumptionExpected" => "Yes",
+ "ExpectedALPNProtocol" => undef,
+ },
+ },
+);
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/10-resumption.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/10-resumption.conf
new file mode 100644
index 000000000..73de974ab
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/10-resumption.conf
@@ -0,0 +1,2439 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 65
+
+test-0 = 0-resumption
+test-1 = 1-resumption
+test-2 = 2-resumption
+test-3 = 3-resumption
+test-4 = 4-resumption
+test-5 = 5-resumption
+test-6 = 6-resumption
+test-7 = 7-resumption
+test-8 = 8-resumption
+test-9 = 9-resumption
+test-10 = 10-resumption
+test-11 = 11-resumption
+test-12 = 12-resumption
+test-13 = 13-resumption
+test-14 = 14-resumption
+test-15 = 15-resumption
+test-16 = 16-resumption
+test-17 = 17-resumption
+test-18 = 18-resumption
+test-19 = 19-resumption
+test-20 = 20-resumption
+test-21 = 21-resumption
+test-22 = 22-resumption
+test-23 = 23-resumption
+test-24 = 24-resumption
+test-25 = 25-resumption
+test-26 = 26-resumption
+test-27 = 27-resumption
+test-28 = 28-resumption
+test-29 = 29-resumption
+test-30 = 30-resumption
+test-31 = 31-resumption
+test-32 = 32-resumption
+test-33 = 33-resumption
+test-34 = 34-resumption
+test-35 = 35-resumption
+test-36 = 36-resumption
+test-37 = 37-resumption
+test-38 = 38-resumption
+test-39 = 39-resumption
+test-40 = 40-resumption
+test-41 = 41-resumption
+test-42 = 42-resumption
+test-43 = 43-resumption
+test-44 = 44-resumption
+test-45 = 45-resumption
+test-46 = 46-resumption
+test-47 = 47-resumption
+test-48 = 48-resumption
+test-49 = 49-resumption
+test-50 = 50-resumption
+test-51 = 51-resumption
+test-52 = 52-resumption
+test-53 = 53-resumption
+test-54 = 54-resumption
+test-55 = 55-resumption
+test-56 = 56-resumption
+test-57 = 57-resumption
+test-58 = 58-resumption
+test-59 = 59-resumption
+test-60 = 60-resumption
+test-61 = 61-resumption
+test-62 = 62-resumption
+test-63 = 63-resumption
+test-64 = 64-resumption-with-hrr
+# ===========================================================
+
+[0-resumption]
+ssl_conf = 0-resumption-ssl
+
+[0-resumption-ssl]
+server = 0-resumption-server
+client = 0-resumption-client
+resume-server = 0-resumption-resume-server
+resume-client = 0-resumption-client
+
+[0-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedProtocol = TLSv1
+HandshakeMode = Resume
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[1-resumption]
+ssl_conf = 1-resumption-ssl
+
+[1-resumption-ssl]
+server = 1-resumption-server
+client = 1-resumption-client
+resume-server = 1-resumption-resume-server
+resume-client = 1-resumption-client
+
+[1-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedProtocol = TLSv1
+HandshakeMode = Resume
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[2-resumption]
+ssl_conf = 2-resumption-ssl
+
+[2-resumption-ssl]
+server = 2-resumption-server
+client = 2-resumption-client
+resume-server = 2-resumption-resume-server
+resume-client = 2-resumption-client
+
+[2-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedProtocol = TLSv1.1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[3-resumption]
+ssl_conf = 3-resumption-ssl
+
+[3-resumption-ssl]
+server = 3-resumption-server
+client = 3-resumption-client
+resume-server = 3-resumption-resume-server
+resume-client = 3-resumption-client
+
+[3-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedProtocol = TLSv1.1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[4-resumption]
+ssl_conf = 4-resumption-ssl
+
+[4-resumption-ssl]
+server = 4-resumption-server
+client = 4-resumption-client
+resume-server = 4-resumption-resume-server
+resume-client = 4-resumption-client
+
+[4-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[4-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[4-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-4]
+ExpectedProtocol = TLSv1.2
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[5-resumption]
+ssl_conf = 5-resumption-ssl
+
+[5-resumption-ssl]
+server = 5-resumption-server
+client = 5-resumption-client
+resume-server = 5-resumption-resume-server
+resume-client = 5-resumption-client
+
+[5-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[5-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[5-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+ExpectedProtocol = TLSv1.2
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[6-resumption]
+ssl_conf = 6-resumption-ssl
+
+[6-resumption-ssl]
+server = 6-resumption-server
+client = 6-resumption-client
+resume-server = 6-resumption-resume-server
+resume-client = 6-resumption-client
+
+[6-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-6]
+ExpectedProtocol = TLSv1.3
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[7-resumption]
+ssl_conf = 7-resumption-ssl
+
+[7-resumption-ssl]
+server = 7-resumption-server
+client = 7-resumption-client
+resume-server = 7-resumption-resume-server
+resume-client = 7-resumption-client
+
+[7-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-7]
+ExpectedProtocol = TLSv1.3
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[8-resumption]
+ssl_conf = 8-resumption-ssl
+
+[8-resumption-ssl]
+server = 8-resumption-server
+client = 8-resumption-client
+resume-server = 8-resumption-resume-server
+resume-client = 8-resumption-client
+
+[8-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-8]
+ExpectedProtocol = TLSv1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[9-resumption]
+ssl_conf = 9-resumption-ssl
+
+[9-resumption-ssl]
+server = 9-resumption-server
+client = 9-resumption-client
+resume-server = 9-resumption-resume-server
+resume-client = 9-resumption-client
+
+[9-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[9-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[9-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-9]
+ExpectedProtocol = TLSv1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[10-resumption]
+ssl_conf = 10-resumption-ssl
+
+[10-resumption-ssl]
+server = 10-resumption-server
+client = 10-resumption-client
+resume-server = 10-resumption-resume-server
+resume-client = 10-resumption-client
+
+[10-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[10-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[10-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-10]
+ExpectedProtocol = TLSv1.1
+HandshakeMode = Resume
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[11-resumption]
+ssl_conf = 11-resumption-ssl
+
+[11-resumption-ssl]
+server = 11-resumption-server
+client = 11-resumption-client
+resume-server = 11-resumption-resume-server
+resume-client = 11-resumption-client
+
+[11-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[11-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[11-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-11]
+ExpectedProtocol = TLSv1.1
+HandshakeMode = Resume
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[12-resumption]
+ssl_conf = 12-resumption-ssl
+
+[12-resumption-ssl]
+server = 12-resumption-server
+client = 12-resumption-client
+resume-server = 12-resumption-resume-server
+resume-client = 12-resumption-client
+
+[12-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[12-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[12-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-12]
+ExpectedProtocol = TLSv1.2
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[13-resumption]
+ssl_conf = 13-resumption-ssl
+
+[13-resumption-ssl]
+server = 13-resumption-server
+client = 13-resumption-client
+resume-server = 13-resumption-resume-server
+resume-client = 13-resumption-client
+
+[13-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[13-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[13-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-13]
+ExpectedProtocol = TLSv1.2
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[14-resumption]
+ssl_conf = 14-resumption-ssl
+
+[14-resumption-ssl]
+server = 14-resumption-server
+client = 14-resumption-client
+resume-server = 14-resumption-resume-server
+resume-client = 14-resumption-client
+
+[14-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[14-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[14-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-14]
+ExpectedProtocol = TLSv1.3
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[15-resumption]
+ssl_conf = 15-resumption-ssl
+
+[15-resumption-ssl]
+server = 15-resumption-server
+client = 15-resumption-client
+resume-server = 15-resumption-resume-server
+resume-client = 15-resumption-client
+
+[15-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[15-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[15-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-15]
+ExpectedProtocol = TLSv1.3
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[16-resumption]
+ssl_conf = 16-resumption-ssl
+
+[16-resumption-ssl]
+server = 16-resumption-server
+client = 16-resumption-client
+resume-server = 16-resumption-resume-server
+resume-client = 16-resumption-client
+
+[16-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[16-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[16-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-16]
+ExpectedProtocol = TLSv1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[17-resumption]
+ssl_conf = 17-resumption-ssl
+
+[17-resumption-ssl]
+server = 17-resumption-server
+client = 17-resumption-client
+resume-server = 17-resumption-resume-server
+resume-client = 17-resumption-client
+
+[17-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[17-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[17-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-17]
+ExpectedProtocol = TLSv1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[18-resumption]
+ssl_conf = 18-resumption-ssl
+
+[18-resumption-ssl]
+server = 18-resumption-server
+client = 18-resumption-client
+resume-server = 18-resumption-resume-server
+resume-client = 18-resumption-client
+
+[18-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[18-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[18-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-18]
+ExpectedProtocol = TLSv1.1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[19-resumption]
+ssl_conf = 19-resumption-ssl
+
+[19-resumption-ssl]
+server = 19-resumption-server
+client = 19-resumption-client
+resume-server = 19-resumption-resume-server
+resume-client = 19-resumption-client
+
+[19-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[19-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[19-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-19]
+ExpectedProtocol = TLSv1.1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[20-resumption]
+ssl_conf = 20-resumption-ssl
+
+[20-resumption-ssl]
+server = 20-resumption-server
+client = 20-resumption-client
+resume-server = 20-resumption-resume-server
+resume-client = 20-resumption-client
+
+[20-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[20-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[20-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-20]
+ExpectedProtocol = TLSv1.2
+HandshakeMode = Resume
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[21-resumption]
+ssl_conf = 21-resumption-ssl
+
+[21-resumption-ssl]
+server = 21-resumption-server
+client = 21-resumption-client
+resume-server = 21-resumption-resume-server
+resume-client = 21-resumption-client
+
+[21-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[21-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[21-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-21]
+ExpectedProtocol = TLSv1.2
+HandshakeMode = Resume
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[22-resumption]
+ssl_conf = 22-resumption-ssl
+
+[22-resumption-ssl]
+server = 22-resumption-server
+client = 22-resumption-client
+resume-server = 22-resumption-resume-server
+resume-client = 22-resumption-client
+
+[22-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[22-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[22-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-22]
+ExpectedProtocol = TLSv1.3
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[23-resumption]
+ssl_conf = 23-resumption-ssl
+
+[23-resumption-ssl]
+server = 23-resumption-server
+client = 23-resumption-client
+resume-server = 23-resumption-resume-server
+resume-client = 23-resumption-client
+
+[23-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[23-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[23-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-23]
+ExpectedProtocol = TLSv1.3
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[24-resumption]
+ssl_conf = 24-resumption-ssl
+
+[24-resumption-ssl]
+server = 24-resumption-server
+client = 24-resumption-client
+resume-server = 24-resumption-resume-server
+resume-client = 24-resumption-client
+
+[24-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[24-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[24-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-24]
+ExpectedProtocol = TLSv1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[25-resumption]
+ssl_conf = 25-resumption-ssl
+
+[25-resumption-ssl]
+server = 25-resumption-server
+client = 25-resumption-client
+resume-server = 25-resumption-resume-server
+resume-client = 25-resumption-client
+
+[25-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[25-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[25-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-25]
+ExpectedProtocol = TLSv1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[26-resumption]
+ssl_conf = 26-resumption-ssl
+
+[26-resumption-ssl]
+server = 26-resumption-server
+client = 26-resumption-client
+resume-server = 26-resumption-resume-server
+resume-client = 26-resumption-client
+
+[26-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[26-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[26-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-26]
+ExpectedProtocol = TLSv1.1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[27-resumption]
+ssl_conf = 27-resumption-ssl
+
+[27-resumption-ssl]
+server = 27-resumption-server
+client = 27-resumption-client
+resume-server = 27-resumption-resume-server
+resume-client = 27-resumption-client
+
+[27-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[27-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[27-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-27]
+ExpectedProtocol = TLSv1.1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[28-resumption]
+ssl_conf = 28-resumption-ssl
+
+[28-resumption-ssl]
+server = 28-resumption-server
+client = 28-resumption-client
+resume-server = 28-resumption-resume-server
+resume-client = 28-resumption-client
+
+[28-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[28-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[28-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-28]
+ExpectedProtocol = TLSv1.2
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[29-resumption]
+ssl_conf = 29-resumption-ssl
+
+[29-resumption-ssl]
+server = 29-resumption-server
+client = 29-resumption-client
+resume-server = 29-resumption-resume-server
+resume-client = 29-resumption-client
+
+[29-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[29-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[29-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-29]
+ExpectedProtocol = TLSv1.2
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[30-resumption]
+ssl_conf = 30-resumption-ssl
+
+[30-resumption-ssl]
+server = 30-resumption-server
+client = 30-resumption-client
+resume-server = 30-resumption-resume-server
+resume-client = 30-resumption-client
+
+[30-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[30-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[30-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-30]
+ExpectedProtocol = TLSv1.3
+HandshakeMode = Resume
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[31-resumption]
+ssl_conf = 31-resumption-ssl
+
+[31-resumption-ssl]
+server = 31-resumption-server
+client = 31-resumption-client
+resume-server = 31-resumption-resume-server
+resume-client = 31-resumption-client
+
+[31-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[31-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[31-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-31]
+ExpectedProtocol = TLSv1.3
+HandshakeMode = Resume
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[32-resumption]
+ssl_conf = 32-resumption-ssl
+
+[32-resumption-ssl]
+server = 32-resumption-server
+client = 32-resumption-client
+resume-server = 32-resumption-server
+resume-client = 32-resumption-resume-client
+
+[32-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[32-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[32-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-32]
+ExpectedProtocol = TLSv1
+HandshakeMode = Resume
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[33-resumption]
+ssl_conf = 33-resumption-ssl
+
+[33-resumption-ssl]
+server = 33-resumption-server
+client = 33-resumption-client
+resume-server = 33-resumption-server
+resume-client = 33-resumption-resume-client
+
+[33-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[33-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[33-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-33]
+ExpectedProtocol = TLSv1
+HandshakeMode = Resume
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[34-resumption]
+ssl_conf = 34-resumption-ssl
+
+[34-resumption-ssl]
+server = 34-resumption-server
+client = 34-resumption-client
+resume-server = 34-resumption-server
+resume-client = 34-resumption-resume-client
+
+[34-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[34-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[34-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-34]
+ExpectedProtocol = TLSv1.1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[35-resumption]
+ssl_conf = 35-resumption-ssl
+
+[35-resumption-ssl]
+server = 35-resumption-server
+client = 35-resumption-client
+resume-server = 35-resumption-server
+resume-client = 35-resumption-resume-client
+
+[35-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[35-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[35-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-35]
+ExpectedProtocol = TLSv1.1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[36-resumption]
+ssl_conf = 36-resumption-ssl
+
+[36-resumption-ssl]
+server = 36-resumption-server
+client = 36-resumption-client
+resume-server = 36-resumption-server
+resume-client = 36-resumption-resume-client
+
+[36-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[36-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[36-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-36]
+ExpectedProtocol = TLSv1.2
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[37-resumption]
+ssl_conf = 37-resumption-ssl
+
+[37-resumption-ssl]
+server = 37-resumption-server
+client = 37-resumption-client
+resume-server = 37-resumption-server
+resume-client = 37-resumption-resume-client
+
+[37-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[37-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[37-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-37]
+ExpectedProtocol = TLSv1.2
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[38-resumption]
+ssl_conf = 38-resumption-ssl
+
+[38-resumption-ssl]
+server = 38-resumption-server
+client = 38-resumption-client
+resume-server = 38-resumption-server
+resume-client = 38-resumption-resume-client
+
+[38-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[38-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[38-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-38]
+ExpectedProtocol = TLSv1.3
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[39-resumption]
+ssl_conf = 39-resumption-ssl
+
+[39-resumption-ssl]
+server = 39-resumption-server
+client = 39-resumption-client
+resume-server = 39-resumption-server
+resume-client = 39-resumption-resume-client
+
+[39-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[39-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+MinProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[39-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-39]
+ExpectedProtocol = TLSv1.3
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[40-resumption]
+ssl_conf = 40-resumption-ssl
+
+[40-resumption-ssl]
+server = 40-resumption-server
+client = 40-resumption-client
+resume-server = 40-resumption-server
+resume-client = 40-resumption-resume-client
+
+[40-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[40-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[40-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-40]
+ExpectedProtocol = TLSv1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[41-resumption]
+ssl_conf = 41-resumption-ssl
+
+[41-resumption-ssl]
+server = 41-resumption-server
+client = 41-resumption-client
+resume-server = 41-resumption-server
+resume-client = 41-resumption-resume-client
+
+[41-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[41-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[41-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-41]
+ExpectedProtocol = TLSv1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[42-resumption]
+ssl_conf = 42-resumption-ssl
+
+[42-resumption-ssl]
+server = 42-resumption-server
+client = 42-resumption-client
+resume-server = 42-resumption-server
+resume-client = 42-resumption-resume-client
+
+[42-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[42-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[42-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-42]
+ExpectedProtocol = TLSv1.1
+HandshakeMode = Resume
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[43-resumption]
+ssl_conf = 43-resumption-ssl
+
+[43-resumption-ssl]
+server = 43-resumption-server
+client = 43-resumption-client
+resume-server = 43-resumption-server
+resume-client = 43-resumption-resume-client
+
+[43-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[43-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[43-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-43]
+ExpectedProtocol = TLSv1.1
+HandshakeMode = Resume
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[44-resumption]
+ssl_conf = 44-resumption-ssl
+
+[44-resumption-ssl]
+server = 44-resumption-server
+client = 44-resumption-client
+resume-server = 44-resumption-server
+resume-client = 44-resumption-resume-client
+
+[44-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[44-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[44-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-44]
+ExpectedProtocol = TLSv1.2
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[45-resumption]
+ssl_conf = 45-resumption-ssl
+
+[45-resumption-ssl]
+server = 45-resumption-server
+client = 45-resumption-client
+resume-server = 45-resumption-server
+resume-client = 45-resumption-resume-client
+
+[45-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[45-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[45-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-45]
+ExpectedProtocol = TLSv1.2
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[46-resumption]
+ssl_conf = 46-resumption-ssl
+
+[46-resumption-ssl]
+server = 46-resumption-server
+client = 46-resumption-client
+resume-server = 46-resumption-server
+resume-client = 46-resumption-resume-client
+
+[46-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[46-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[46-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-46]
+ExpectedProtocol = TLSv1.3
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[47-resumption]
+ssl_conf = 47-resumption-ssl
+
+[47-resumption-ssl]
+server = 47-resumption-server
+client = 47-resumption-client
+resume-server = 47-resumption-server
+resume-client = 47-resumption-resume-client
+
+[47-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[47-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+MinProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[47-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-47]
+ExpectedProtocol = TLSv1.3
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[48-resumption]
+ssl_conf = 48-resumption-ssl
+
+[48-resumption-ssl]
+server = 48-resumption-server
+client = 48-resumption-client
+resume-server = 48-resumption-server
+resume-client = 48-resumption-resume-client
+
+[48-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[48-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[48-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-48]
+ExpectedProtocol = TLSv1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[49-resumption]
+ssl_conf = 49-resumption-ssl
+
+[49-resumption-ssl]
+server = 49-resumption-server
+client = 49-resumption-client
+resume-server = 49-resumption-server
+resume-client = 49-resumption-resume-client
+
+[49-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[49-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[49-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-49]
+ExpectedProtocol = TLSv1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[50-resumption]
+ssl_conf = 50-resumption-ssl
+
+[50-resumption-ssl]
+server = 50-resumption-server
+client = 50-resumption-client
+resume-server = 50-resumption-server
+resume-client = 50-resumption-resume-client
+
+[50-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[50-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[50-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-50]
+ExpectedProtocol = TLSv1.1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[51-resumption]
+ssl_conf = 51-resumption-ssl
+
+[51-resumption-ssl]
+server = 51-resumption-server
+client = 51-resumption-client
+resume-server = 51-resumption-server
+resume-client = 51-resumption-resume-client
+
+[51-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[51-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[51-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-51]
+ExpectedProtocol = TLSv1.1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[52-resumption]
+ssl_conf = 52-resumption-ssl
+
+[52-resumption-ssl]
+server = 52-resumption-server
+client = 52-resumption-client
+resume-server = 52-resumption-server
+resume-client = 52-resumption-resume-client
+
+[52-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[52-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[52-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-52]
+ExpectedProtocol = TLSv1.2
+HandshakeMode = Resume
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[53-resumption]
+ssl_conf = 53-resumption-ssl
+
+[53-resumption-ssl]
+server = 53-resumption-server
+client = 53-resumption-client
+resume-server = 53-resumption-server
+resume-client = 53-resumption-resume-client
+
+[53-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[53-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[53-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-53]
+ExpectedProtocol = TLSv1.2
+HandshakeMode = Resume
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[54-resumption]
+ssl_conf = 54-resumption-ssl
+
+[54-resumption-ssl]
+server = 54-resumption-server
+client = 54-resumption-client
+resume-server = 54-resumption-server
+resume-client = 54-resumption-resume-client
+
+[54-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[54-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[54-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-54]
+ExpectedProtocol = TLSv1.3
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[55-resumption]
+ssl_conf = 55-resumption-ssl
+
+[55-resumption-ssl]
+server = 55-resumption-server
+client = 55-resumption-client
+resume-server = 55-resumption-server
+resume-client = 55-resumption-resume-client
+
+[55-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[55-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[55-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-55]
+ExpectedProtocol = TLSv1.3
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[56-resumption]
+ssl_conf = 56-resumption-ssl
+
+[56-resumption-ssl]
+server = 56-resumption-server
+client = 56-resumption-client
+resume-server = 56-resumption-server
+resume-client = 56-resumption-resume-client
+
+[56-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[56-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[56-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-56]
+ExpectedProtocol = TLSv1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[57-resumption]
+ssl_conf = 57-resumption-ssl
+
+[57-resumption-ssl]
+server = 57-resumption-server
+client = 57-resumption-client
+resume-server = 57-resumption-server
+resume-client = 57-resumption-resume-client
+
+[57-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[57-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[57-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-57]
+ExpectedProtocol = TLSv1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[58-resumption]
+ssl_conf = 58-resumption-ssl
+
+[58-resumption-ssl]
+server = 58-resumption-server
+client = 58-resumption-client
+resume-server = 58-resumption-server
+resume-client = 58-resumption-resume-client
+
+[58-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[58-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[58-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-58]
+ExpectedProtocol = TLSv1.1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[59-resumption]
+ssl_conf = 59-resumption-ssl
+
+[59-resumption-ssl]
+server = 59-resumption-server
+client = 59-resumption-client
+resume-server = 59-resumption-server
+resume-client = 59-resumption-resume-client
+
+[59-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[59-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[59-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-59]
+ExpectedProtocol = TLSv1.1
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[60-resumption]
+ssl_conf = 60-resumption-ssl
+
+[60-resumption-ssl]
+server = 60-resumption-server
+client = 60-resumption-client
+resume-server = 60-resumption-server
+resume-client = 60-resumption-resume-client
+
+[60-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[60-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[60-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-60]
+ExpectedProtocol = TLSv1.2
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[61-resumption]
+ssl_conf = 61-resumption-ssl
+
+[61-resumption-ssl]
+server = 61-resumption-server
+client = 61-resumption-client
+resume-server = 61-resumption-server
+resume-client = 61-resumption-resume-client
+
+[61-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[61-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[61-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-61]
+ExpectedProtocol = TLSv1.2
+HandshakeMode = Resume
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[62-resumption]
+ssl_conf = 62-resumption-ssl
+
+[62-resumption-ssl]
+server = 62-resumption-server
+client = 62-resumption-client
+resume-server = 62-resumption-server
+resume-client = 62-resumption-resume-client
+
+[62-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[62-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[62-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-62]
+ExpectedProtocol = TLSv1.3
+HandshakeMode = Resume
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[63-resumption]
+ssl_conf = 63-resumption-ssl
+
+[63-resumption-ssl]
+server = 63-resumption-server
+client = 63-resumption-client
+resume-server = 63-resumption-server
+resume-client = 63-resumption-resume-client
+
+[63-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[63-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[63-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-63]
+ExpectedProtocol = TLSv1.3
+HandshakeMode = Resume
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[64-resumption-with-hrr]
+ssl_conf = 64-resumption-with-hrr-ssl
+
+[64-resumption-with-hrr-ssl]
+server = 64-resumption-with-hrr-server
+client = 64-resumption-with-hrr-client
+resume-server = 64-resumption-with-hrr-server
+resume-client = 64-resumption-with-hrr-resume-client
+
+[64-resumption-with-hrr-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = P-256
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[64-resumption-with-hrr-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[64-resumption-with-hrr-resume-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-64]
+ExpectedProtocol = TLSv1.3
+HandshakeMode = Resume
+Method = TLS
+ResumptionExpected = Yes
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/10-resumption.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/10-resumption.conf.in
new file mode 100644
index 000000000..989135f2f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/10-resumption.conf.in
@@ -0,0 +1,19 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test version negotiation upon resumption.
+
+use strict;
+use warnings;
+
+package ssltests;
+
+use protocol_version;
+
+our @tests = generate_resumption_tests("TLS");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/11-dtls_resumption.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/11-dtls_resumption.conf
new file mode 100644
index 000000000..a981fa51d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/11-dtls_resumption.conf
@@ -0,0 +1,620 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 16
+
+test-0 = 0-resumption
+test-1 = 1-resumption
+test-2 = 2-resumption
+test-3 = 3-resumption
+test-4 = 4-resumption
+test-5 = 5-resumption
+test-6 = 6-resumption
+test-7 = 7-resumption
+test-8 = 8-resumption
+test-9 = 9-resumption
+test-10 = 10-resumption
+test-11 = 11-resumption
+test-12 = 12-resumption
+test-13 = 13-resumption
+test-14 = 14-resumption
+test-15 = 15-resumption
+# ===========================================================
+
+[0-resumption]
+ssl_conf = 0-resumption-ssl
+
+[0-resumption-ssl]
+server = 0-resumption-server
+client = 0-resumption-client
+resume-server = 0-resumption-resume-server
+resume-client = 0-resumption-client
+
+[0-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedProtocol = DTLSv1
+HandshakeMode = Resume
+Method = DTLS
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[1-resumption]
+ssl_conf = 1-resumption-ssl
+
+[1-resumption-ssl]
+server = 1-resumption-server
+client = 1-resumption-client
+resume-server = 1-resumption-resume-server
+resume-client = 1-resumption-client
+
+[1-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedProtocol = DTLSv1
+HandshakeMode = Resume
+Method = DTLS
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[2-resumption]
+ssl_conf = 2-resumption-ssl
+
+[2-resumption-ssl]
+server = 2-resumption-server
+client = 2-resumption-client
+resume-server = 2-resumption-resume-server
+resume-client = 2-resumption-client
+
+[2-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedProtocol = DTLSv1.2
+HandshakeMode = Resume
+Method = DTLS
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[3-resumption]
+ssl_conf = 3-resumption-ssl
+
+[3-resumption-ssl]
+server = 3-resumption-server
+client = 3-resumption-client
+resume-server = 3-resumption-resume-server
+resume-client = 3-resumption-client
+
+[3-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedProtocol = DTLSv1.2
+HandshakeMode = Resume
+Method = DTLS
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[4-resumption]
+ssl_conf = 4-resumption-ssl
+
+[4-resumption-ssl]
+server = 4-resumption-server
+client = 4-resumption-client
+resume-server = 4-resumption-resume-server
+resume-client = 4-resumption-client
+
+[4-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[4-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[4-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-4]
+ExpectedProtocol = DTLSv1
+HandshakeMode = Resume
+Method = DTLS
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[5-resumption]
+ssl_conf = 5-resumption-ssl
+
+[5-resumption-ssl]
+server = 5-resumption-server
+client = 5-resumption-client
+resume-server = 5-resumption-resume-server
+resume-client = 5-resumption-client
+
+[5-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[5-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[5-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+ExpectedProtocol = DTLSv1
+HandshakeMode = Resume
+Method = DTLS
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[6-resumption]
+ssl_conf = 6-resumption-ssl
+
+[6-resumption-ssl]
+server = 6-resumption-server
+client = 6-resumption-client
+resume-server = 6-resumption-resume-server
+resume-client = 6-resumption-client
+
+[6-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-6]
+ExpectedProtocol = DTLSv1.2
+HandshakeMode = Resume
+Method = DTLS
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[7-resumption]
+ssl_conf = 7-resumption-ssl
+
+[7-resumption-ssl]
+server = 7-resumption-server
+client = 7-resumption-client
+resume-server = 7-resumption-resume-server
+resume-client = 7-resumption-client
+
+[7-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-resumption-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-7]
+ExpectedProtocol = DTLSv1.2
+HandshakeMode = Resume
+Method = DTLS
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[8-resumption]
+ssl_conf = 8-resumption-ssl
+
+[8-resumption-ssl]
+server = 8-resumption-server
+client = 8-resumption-client
+resume-server = 8-resumption-server
+resume-client = 8-resumption-resume-client
+
+[8-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[8-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-8]
+ExpectedProtocol = DTLSv1
+HandshakeMode = Resume
+Method = DTLS
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[9-resumption]
+ssl_conf = 9-resumption-ssl
+
+[9-resumption-ssl]
+server = 9-resumption-server
+client = 9-resumption-client
+resume-server = 9-resumption-server
+resume-client = 9-resumption-resume-client
+
+[9-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[9-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[9-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-9]
+ExpectedProtocol = DTLSv1
+HandshakeMode = Resume
+Method = DTLS
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[10-resumption]
+ssl_conf = 10-resumption-ssl
+
+[10-resumption-ssl]
+server = 10-resumption-server
+client = 10-resumption-client
+resume-server = 10-resumption-server
+resume-client = 10-resumption-resume-client
+
+[10-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[10-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[10-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-10]
+ExpectedProtocol = DTLSv1.2
+HandshakeMode = Resume
+Method = DTLS
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[11-resumption]
+ssl_conf = 11-resumption-ssl
+
+[11-resumption-ssl]
+server = 11-resumption-server
+client = 11-resumption-client
+resume-server = 11-resumption-server
+resume-client = 11-resumption-resume-client
+
+[11-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[11-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+MinProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[11-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-11]
+ExpectedProtocol = DTLSv1.2
+HandshakeMode = Resume
+Method = DTLS
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[12-resumption]
+ssl_conf = 12-resumption-ssl
+
+[12-resumption-ssl]
+server = 12-resumption-server
+client = 12-resumption-client
+resume-server = 12-resumption-server
+resume-client = 12-resumption-resume-client
+
+[12-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[12-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[12-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-12]
+ExpectedProtocol = DTLSv1
+HandshakeMode = Resume
+Method = DTLS
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[13-resumption]
+ssl_conf = 13-resumption-ssl
+
+[13-resumption-ssl]
+server = 13-resumption-server
+client = 13-resumption-client
+resume-server = 13-resumption-server
+resume-client = 13-resumption-resume-client
+
+[13-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[13-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[13-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-13]
+ExpectedProtocol = DTLSv1
+HandshakeMode = Resume
+Method = DTLS
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[14-resumption]
+ssl_conf = 14-resumption-ssl
+
+[14-resumption-ssl]
+server = 14-resumption-server
+client = 14-resumption-client
+resume-server = 14-resumption-server
+resume-client = 14-resumption-resume-client
+
+[14-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[14-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[14-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-14]
+ExpectedProtocol = DTLSv1.2
+HandshakeMode = Resume
+Method = DTLS
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[15-resumption]
+ssl_conf = 15-resumption-ssl
+
+[15-resumption-ssl]
+server = 15-resumption-server
+client = 15-resumption-client
+resume-server = 15-resumption-server
+resume-client = 15-resumption-resume-client
+
+[15-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[15-resumption-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+MinProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[15-resumption-resume-client]
+CipherString = DEFAULT
+MaxProtocol = DTLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-15]
+ExpectedProtocol = DTLSv1.2
+HandshakeMode = Resume
+Method = DTLS
+ResumptionExpected = Yes
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/11-dtls_resumption.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/11-dtls_resumption.conf.in
new file mode 100644
index 000000000..16dec1d56
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/11-dtls_resumption.conf.in
@@ -0,0 +1,19 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test version negotiation upon resumption.
+
+use strict;
+use warnings;
+
+package ssltests;
+
+use protocol_version;
+
+our @tests = generate_resumption_tests("DTLS");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/12-ct.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/12-ct.conf
new file mode 100644
index 000000000..2e6e9dea6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/12-ct.conf
@@ -0,0 +1,191 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 6
+
+test-0 = 0-ct-permissive-without-scts
+test-1 = 1-ct-permissive-with-scts
+test-2 = 2-ct-strict-without-scts
+test-3 = 3-ct-strict-with-scts
+test-4 = 4-ct-permissive-resumption
+test-5 = 5-ct-strict-resumption
+# ===========================================================
+
+[0-ct-permissive-without-scts]
+ssl_conf = 0-ct-permissive-without-scts-ssl
+
+[0-ct-permissive-without-scts-ssl]
+server = 0-ct-permissive-without-scts-server
+client = 0-ct-permissive-without-scts-client
+
+[0-ct-permissive-without-scts-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-ct-permissive-without-scts-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = Success
+client = 0-ct-permissive-without-scts-client-extra
+
+[0-ct-permissive-without-scts-client-extra]
+CTValidation = Permissive
+
+
+# ===========================================================
+
+[1-ct-permissive-with-scts]
+ssl_conf = 1-ct-permissive-with-scts-ssl
+
+[1-ct-permissive-with-scts-ssl]
+server = 1-ct-permissive-with-scts-server
+client = 1-ct-permissive-with-scts-client
+
+[1-ct-permissive-with-scts-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/embeddedSCTs1.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/embeddedSCTs1-key.pem
+
+[1-ct-permissive-with-scts-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/embeddedSCTs1_issuer.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedResult = Success
+client = 1-ct-permissive-with-scts-client-extra
+
+[1-ct-permissive-with-scts-client-extra]
+CTValidation = Permissive
+
+
+# ===========================================================
+
+[2-ct-strict-without-scts]
+ssl_conf = 2-ct-strict-without-scts-ssl
+
+[2-ct-strict-without-scts-ssl]
+server = 2-ct-strict-without-scts-server
+client = 2-ct-strict-without-scts-client
+
+[2-ct-strict-without-scts-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-ct-strict-without-scts-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedClientAlert = HandshakeFailure
+ExpectedResult = ClientFail
+client = 2-ct-strict-without-scts-client-extra
+
+[2-ct-strict-without-scts-client-extra]
+CTValidation = Strict
+
+
+# ===========================================================
+
+[3-ct-strict-with-scts]
+ssl_conf = 3-ct-strict-with-scts-ssl
+
+[3-ct-strict-with-scts-ssl]
+server = 3-ct-strict-with-scts-server
+client = 3-ct-strict-with-scts-client
+
+[3-ct-strict-with-scts-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/embeddedSCTs1.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/embeddedSCTs1-key.pem
+
+[3-ct-strict-with-scts-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/embeddedSCTs1_issuer.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedResult = Success
+client = 3-ct-strict-with-scts-client-extra
+
+[3-ct-strict-with-scts-client-extra]
+CTValidation = Strict
+
+
+# ===========================================================
+
+[4-ct-permissive-resumption]
+ssl_conf = 4-ct-permissive-resumption-ssl
+
+[4-ct-permissive-resumption-ssl]
+server = 4-ct-permissive-resumption-server
+client = 4-ct-permissive-resumption-client
+resume-server = 4-ct-permissive-resumption-server
+resume-client = 4-ct-permissive-resumption-client
+
+[4-ct-permissive-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/embeddedSCTs1.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/embeddedSCTs1-key.pem
+
+[4-ct-permissive-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/embeddedSCTs1_issuer.pem
+VerifyMode = Peer
+
+[test-4]
+ExpectedResult = Success
+HandshakeMode = Resume
+ResumptionExpected = Yes
+client = 4-ct-permissive-resumption-client-extra
+resume-client = 4-ct-permissive-resumption-client-extra
+
+[4-ct-permissive-resumption-client-extra]
+CTValidation = Permissive
+
+
+# ===========================================================
+
+[5-ct-strict-resumption]
+ssl_conf = 5-ct-strict-resumption-ssl
+
+[5-ct-strict-resumption-ssl]
+server = 5-ct-strict-resumption-server
+client = 5-ct-strict-resumption-client
+resume-server = 5-ct-strict-resumption-server
+resume-client = 5-ct-strict-resumption-resume-client
+
+[5-ct-strict-resumption-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/embeddedSCTs1.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/embeddedSCTs1-key.pem
+
+[5-ct-strict-resumption-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/embeddedSCTs1_issuer.pem
+VerifyMode = Peer
+
+[5-ct-strict-resumption-resume-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+ExpectedResult = Success
+HandshakeMode = Resume
+ResumptionExpected = Yes
+client = 5-ct-strict-resumption-client-extra
+resume-client = 5-ct-strict-resumption-resume-client-extra
+
+[5-ct-strict-resumption-client-extra]
+CTValidation = Strict
+
+[5-ct-strict-resumption-resume-client-extra]
+CTValidation = Strict
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/12-ct.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/12-ct.conf.in
new file mode 100644
index 000000000..7c0304995
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/12-ct.conf.in
@@ -0,0 +1,119 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test version negotiation
+
+use strict;
+use warnings;
+
+package ssltests;
+
+
+our @tests = (
+ {
+ name => "ct-permissive-without-scts",
+ server => { },
+ client => {
+ extra => {
+ "CTValidation" => "Permissive",
+ },
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ },
+ },
+ {
+ name => "ct-permissive-with-scts",
+ server => {
+ "Certificate" => test_pem("embeddedSCTs1.pem"),
+ "PrivateKey" => test_pem("embeddedSCTs1-key.pem"),
+ },
+ client => {
+ "VerifyCAFile" => test_pem("embeddedSCTs1_issuer.pem"),
+ extra => {
+ "CTValidation" => "Permissive",
+ },
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ },
+ },
+ {
+ name => "ct-strict-without-scts",
+ server => { },
+ client => {
+ extra => {
+ "CTValidation" => "Strict",
+ },
+ },
+ test => {
+ "ExpectedResult" => "ClientFail",
+ "ExpectedClientAlert" => "HandshakeFailure",
+ },
+ },
+ {
+ name => "ct-strict-with-scts",
+ server => {
+ "Certificate" => test_pem("embeddedSCTs1.pem"),
+ "PrivateKey" => test_pem("embeddedSCTs1-key.pem"),
+ },
+ client => {
+ "VerifyCAFile" => test_pem("embeddedSCTs1_issuer.pem"),
+ extra => {
+ "CTValidation" => "Strict",
+ },
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ },
+ },
+ {
+ name => "ct-permissive-resumption",
+ server => {
+ "Certificate" => test_pem("embeddedSCTs1.pem"),
+ "PrivateKey" => test_pem("embeddedSCTs1-key.pem"),
+ },
+ client => {
+ "VerifyCAFile" => test_pem("embeddedSCTs1_issuer.pem"),
+ extra => {
+ "CTValidation" => "Permissive",
+ },
+ },
+ test => {
+ "HandshakeMode" => "Resume",
+ "ResumptionExpected" => "Yes",
+ "ExpectedResult" => "Success",
+ },
+ },
+ {
+ name => "ct-strict-resumption",
+ server => {
+ "Certificate" => test_pem("embeddedSCTs1.pem"),
+ "PrivateKey" => test_pem("embeddedSCTs1-key.pem"),
+ },
+ client => {
+ "VerifyCAFile" => test_pem("embeddedSCTs1_issuer.pem"),
+ extra => {
+ "CTValidation" => "Strict",
+ },
+ },
+ # SCTs are not present during resumption, so the resumption
+ # should succeed.
+ resume_client => {
+ extra => {
+ "CTValidation" => "Strict",
+ },
+ },
+ test => {
+ "HandshakeMode" => "Resume",
+ "ResumptionExpected" => "Yes",
+ "ExpectedResult" => "Success",
+ },
+ },
+);
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/13-fragmentation.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/13-fragmentation.conf
new file mode 100644
index 000000000..649387c7b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/13-fragmentation.conf
@@ -0,0 +1,577 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 22
+
+test-0 = 0-one-fragment-minus-app-data
+test-1 = 1-one-fragment-app-data
+test-2 = 2-one-fragment-plus-app-data
+test-3 = 3-small-app-data
+test-4 = 4-small-app-data-large-fragment-size
+test-5 = 5-medium-app-data
+test-6 = 6-medium-plus-app-data
+test-7 = 7-large-app-data
+test-8 = 8-large-app-data-large-fragment-size
+test-9 = 9-large-app-data-odd-fragment-size
+test-10 = 10-large-app-data-aes-sha1-multibuffer
+test-11 = 11-large-app-data-aes-sha2-multibuffer
+test-12 = 12-large-app-data-aes-sha1-multibuffer-odd-fragment
+test-13 = 13-large-app-data-aes-sha2-multibuffer-odd-fragment
+test-14 = 14-small-app-data-aes-sha1-multibuffer
+test-15 = 15-small-app-data-aes-sha2-multibuffer
+test-16 = 16-Maximum Fragment Len extension set to 1024 w. FragmentSize disabled
+test-17 = 17-Maximum Fragment Len extension equal FragmentSize to 2048
+test-18 = 18-Maximum Fragment Len extension 512 lower than FragmentSize 1024
+test-19 = 19-Maximum Fragment Len extension 1024 lower than FragmentSize 1024
+test-20 = 20-Maximum Fragment Len extension 4096 greater than FragmentSize 2048
+test-21 = 21-Maximum Fragment Len extension 2048 greater than FragmentSize 1024
+# ===========================================================
+
+[0-one-fragment-minus-app-data]
+ssl_conf = 0-one-fragment-minus-app-data-ssl
+
+[0-one-fragment-minus-app-data-ssl]
+server = 0-one-fragment-minus-app-data-server
+client = 0-one-fragment-minus-app-data-client
+
+[0-one-fragment-minus-app-data-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-one-fragment-minus-app-data-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ApplicationData = 511
+
+
+# ===========================================================
+
+[1-one-fragment-app-data]
+ssl_conf = 1-one-fragment-app-data-ssl
+
+[1-one-fragment-app-data-ssl]
+server = 1-one-fragment-app-data-server
+client = 1-one-fragment-app-data-client
+
+[1-one-fragment-app-data-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-one-fragment-app-data-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ApplicationData = 512
+
+
+# ===========================================================
+
+[2-one-fragment-plus-app-data]
+ssl_conf = 2-one-fragment-plus-app-data-ssl
+
+[2-one-fragment-plus-app-data-ssl]
+server = 2-one-fragment-plus-app-data-server
+client = 2-one-fragment-plus-app-data-client
+
+[2-one-fragment-plus-app-data-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-one-fragment-plus-app-data-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ApplicationData = 513
+
+
+# ===========================================================
+
+[3-small-app-data]
+ssl_conf = 3-small-app-data-ssl
+
+[3-small-app-data-ssl]
+server = 3-small-app-data-server
+client = 3-small-app-data-client
+
+[3-small-app-data-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-small-app-data-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ApplicationData = 4097
+
+
+# ===========================================================
+
+[4-small-app-data-large-fragment-size]
+ssl_conf = 4-small-app-data-large-fragment-size-ssl
+
+[4-small-app-data-large-fragment-size-ssl]
+server = 4-small-app-data-large-fragment-size-server
+client = 4-small-app-data-large-fragment-size-client
+
+[4-small-app-data-large-fragment-size-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[4-small-app-data-large-fragment-size-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-4]
+ApplicationData = 4097
+MaxFragmentSize = 16384
+
+
+# ===========================================================
+
+[5-medium-app-data]
+ssl_conf = 5-medium-app-data-ssl
+
+[5-medium-app-data-ssl]
+server = 5-medium-app-data-server
+client = 5-medium-app-data-client
+
+[5-medium-app-data-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[5-medium-app-data-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+ApplicationData = 32775
+
+
+# ===========================================================
+
+[6-medium-plus-app-data]
+ssl_conf = 6-medium-plus-app-data-ssl
+
+[6-medium-plus-app-data-ssl]
+server = 6-medium-plus-app-data-server
+client = 6-medium-plus-app-data-client
+
+[6-medium-plus-app-data-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-medium-plus-app-data-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-6]
+ApplicationData = 131069
+
+
+# ===========================================================
+
+[7-large-app-data]
+ssl_conf = 7-large-app-data-ssl
+
+[7-large-app-data-ssl]
+server = 7-large-app-data-server
+client = 7-large-app-data-client
+
+[7-large-app-data-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-large-app-data-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-7]
+ApplicationData = 1048576
+
+
+# ===========================================================
+
+[8-large-app-data-large-fragment-size]
+ssl_conf = 8-large-app-data-large-fragment-size-ssl
+
+[8-large-app-data-large-fragment-size-ssl]
+server = 8-large-app-data-large-fragment-size-server
+client = 8-large-app-data-large-fragment-size-client
+
+[8-large-app-data-large-fragment-size-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-large-app-data-large-fragment-size-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-8]
+ApplicationData = 1048576
+MaxFragmentSize = 16384
+
+
+# ===========================================================
+
+[9-large-app-data-odd-fragment-size]
+ssl_conf = 9-large-app-data-odd-fragment-size-ssl
+
+[9-large-app-data-odd-fragment-size-ssl]
+server = 9-large-app-data-odd-fragment-size-server
+client = 9-large-app-data-odd-fragment-size-client
+
+[9-large-app-data-odd-fragment-size-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[9-large-app-data-odd-fragment-size-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-9]
+ApplicationData = 1048576
+MaxFragmentSize = 5115
+
+
+# ===========================================================
+
+[10-large-app-data-aes-sha1-multibuffer]
+ssl_conf = 10-large-app-data-aes-sha1-multibuffer-ssl
+
+[10-large-app-data-aes-sha1-multibuffer-ssl]
+server = 10-large-app-data-aes-sha1-multibuffer-server
+client = 10-large-app-data-aes-sha1-multibuffer-client
+
+[10-large-app-data-aes-sha1-multibuffer-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[10-large-app-data-aes-sha1-multibuffer-client]
+CipherString = AES128-SHA
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-10]
+ApplicationData = 1048576
+MaxFragmentSize = 4096
+
+
+# ===========================================================
+
+[11-large-app-data-aes-sha2-multibuffer]
+ssl_conf = 11-large-app-data-aes-sha2-multibuffer-ssl
+
+[11-large-app-data-aes-sha2-multibuffer-ssl]
+server = 11-large-app-data-aes-sha2-multibuffer-server
+client = 11-large-app-data-aes-sha2-multibuffer-client
+
+[11-large-app-data-aes-sha2-multibuffer-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[11-large-app-data-aes-sha2-multibuffer-client]
+CipherString = AES128-SHA256
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-11]
+ApplicationData = 1048576
+MaxFragmentSize = 4096
+
+
+# ===========================================================
+
+[12-large-app-data-aes-sha1-multibuffer-odd-fragment]
+ssl_conf = 12-large-app-data-aes-sha1-multibuffer-odd-fragment-ssl
+
+[12-large-app-data-aes-sha1-multibuffer-odd-fragment-ssl]
+server = 12-large-app-data-aes-sha1-multibuffer-odd-fragment-server
+client = 12-large-app-data-aes-sha1-multibuffer-odd-fragment-client
+
+[12-large-app-data-aes-sha1-multibuffer-odd-fragment-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[12-large-app-data-aes-sha1-multibuffer-odd-fragment-client]
+CipherString = AES128-SHA
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-12]
+ApplicationData = 1048579
+MaxFragmentSize = 5115
+
+
+# ===========================================================
+
+[13-large-app-data-aes-sha2-multibuffer-odd-fragment]
+ssl_conf = 13-large-app-data-aes-sha2-multibuffer-odd-fragment-ssl
+
+[13-large-app-data-aes-sha2-multibuffer-odd-fragment-ssl]
+server = 13-large-app-data-aes-sha2-multibuffer-odd-fragment-server
+client = 13-large-app-data-aes-sha2-multibuffer-odd-fragment-client
+
+[13-large-app-data-aes-sha2-multibuffer-odd-fragment-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[13-large-app-data-aes-sha2-multibuffer-odd-fragment-client]
+CipherString = AES128-SHA256
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-13]
+ApplicationData = 1048573
+MaxFragmentSize = 5125
+
+
+# ===========================================================
+
+[14-small-app-data-aes-sha1-multibuffer]
+ssl_conf = 14-small-app-data-aes-sha1-multibuffer-ssl
+
+[14-small-app-data-aes-sha1-multibuffer-ssl]
+server = 14-small-app-data-aes-sha1-multibuffer-server
+client = 14-small-app-data-aes-sha1-multibuffer-client
+
+[14-small-app-data-aes-sha1-multibuffer-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[14-small-app-data-aes-sha1-multibuffer-client]
+CipherString = AES128-SHA
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-14]
+ApplicationData = 4096
+MaxFragmentSize = 4096
+
+
+# ===========================================================
+
+[15-small-app-data-aes-sha2-multibuffer]
+ssl_conf = 15-small-app-data-aes-sha2-multibuffer-ssl
+
+[15-small-app-data-aes-sha2-multibuffer-ssl]
+server = 15-small-app-data-aes-sha2-multibuffer-server
+client = 15-small-app-data-aes-sha2-multibuffer-client
+
+[15-small-app-data-aes-sha2-multibuffer-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[15-small-app-data-aes-sha2-multibuffer-client]
+CipherString = AES128-SHA256
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-15]
+ApplicationData = 4096
+MaxFragmentSize = 4096
+
+
+# ===========================================================
+
+[16-Maximum Fragment Len extension set to 1024 w. FragmentSize disabled]
+ssl_conf = 16-Maximum Fragment Len extension set to 1024 w. FragmentSize disabled-ssl
+
+[16-Maximum Fragment Len extension set to 1024 w. FragmentSize disabled-ssl]
+server = 16-Maximum Fragment Len extension set to 1024 w. FragmentSize disabled-server
+client = 16-Maximum Fragment Len extension set to 1024 w. FragmentSize disabled-client
+
+[16-Maximum Fragment Len extension set to 1024 w. FragmentSize disabled-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[16-Maximum Fragment Len extension set to 1024 w. FragmentSize disabled-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-16]
+ApplicationData = 3072
+MaxFragmentSize = 16384
+client = 16-Maximum Fragment Len extension set to 1024 w. FragmentSize disabled-client-extra
+
+[16-Maximum Fragment Len extension set to 1024 w. FragmentSize disabled-client-extra]
+MaxFragmentLenExt = 1024
+
+
+# ===========================================================
+
+[17-Maximum Fragment Len extension equal FragmentSize to 2048]
+ssl_conf = 17-Maximum Fragment Len extension equal FragmentSize to 2048-ssl
+
+[17-Maximum Fragment Len extension equal FragmentSize to 2048-ssl]
+server = 17-Maximum Fragment Len extension equal FragmentSize to 2048-server
+client = 17-Maximum Fragment Len extension equal FragmentSize to 2048-client
+
+[17-Maximum Fragment Len extension equal FragmentSize to 2048-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[17-Maximum Fragment Len extension equal FragmentSize to 2048-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-17]
+ApplicationData = 3072
+MaxFragmentSize = 2048
+client = 17-Maximum Fragment Len extension equal FragmentSize to 2048-client-extra
+
+[17-Maximum Fragment Len extension equal FragmentSize to 2048-client-extra]
+MaxFragmentLenExt = 2048
+
+
+# ===========================================================
+
+[18-Maximum Fragment Len extension 512 lower than FragmentSize 1024]
+ssl_conf = 18-Maximum Fragment Len extension 512 lower than FragmentSize 1024-ssl
+
+[18-Maximum Fragment Len extension 512 lower than FragmentSize 1024-ssl]
+server = 18-Maximum Fragment Len extension 512 lower than FragmentSize 1024-server
+client = 18-Maximum Fragment Len extension 512 lower than FragmentSize 1024-client
+
+[18-Maximum Fragment Len extension 512 lower than FragmentSize 1024-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[18-Maximum Fragment Len extension 512 lower than FragmentSize 1024-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-18]
+ApplicationData = 3072
+MaxFragmentSize = 1024
+client = 18-Maximum Fragment Len extension 512 lower than FragmentSize 1024-client-extra
+
+[18-Maximum Fragment Len extension 512 lower than FragmentSize 1024-client-extra]
+MaxFragmentLenExt = 512
+
+
+# ===========================================================
+
+[19-Maximum Fragment Len extension 1024 lower than FragmentSize 1024]
+ssl_conf = 19-Maximum Fragment Len extension 1024 lower than FragmentSize 1024-ssl
+
+[19-Maximum Fragment Len extension 1024 lower than FragmentSize 1024-ssl]
+server = 19-Maximum Fragment Len extension 1024 lower than FragmentSize 1024-server
+client = 19-Maximum Fragment Len extension 1024 lower than FragmentSize 1024-client
+
+[19-Maximum Fragment Len extension 1024 lower than FragmentSize 1024-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[19-Maximum Fragment Len extension 1024 lower than FragmentSize 1024-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-19]
+ApplicationData = 3072
+MaxFragmentSize = 1024
+client = 19-Maximum Fragment Len extension 1024 lower than FragmentSize 1024-client-extra
+
+[19-Maximum Fragment Len extension 1024 lower than FragmentSize 1024-client-extra]
+MaxFragmentLenExt = 2048
+
+
+# ===========================================================
+
+[20-Maximum Fragment Len extension 4096 greater than FragmentSize 2048]
+ssl_conf = 20-Maximum Fragment Len extension 4096 greater than FragmentSize 2048-ssl
+
+[20-Maximum Fragment Len extension 4096 greater than FragmentSize 2048-ssl]
+server = 20-Maximum Fragment Len extension 4096 greater than FragmentSize 2048-server
+client = 20-Maximum Fragment Len extension 4096 greater than FragmentSize 2048-client
+
+[20-Maximum Fragment Len extension 4096 greater than FragmentSize 2048-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[20-Maximum Fragment Len extension 4096 greater than FragmentSize 2048-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-20]
+ApplicationData = 8196
+MaxFragmentSize = 2048
+client = 20-Maximum Fragment Len extension 4096 greater than FragmentSize 2048-client-extra
+
+[20-Maximum Fragment Len extension 4096 greater than FragmentSize 2048-client-extra]
+MaxFragmentLenExt = 4096
+
+
+# ===========================================================
+
+[21-Maximum Fragment Len extension 2048 greater than FragmentSize 1024]
+ssl_conf = 21-Maximum Fragment Len extension 2048 greater than FragmentSize 1024-ssl
+
+[21-Maximum Fragment Len extension 2048 greater than FragmentSize 1024-ssl]
+server = 21-Maximum Fragment Len extension 2048 greater than FragmentSize 1024-server
+client = 21-Maximum Fragment Len extension 2048 greater than FragmentSize 1024-client
+
+[21-Maximum Fragment Len extension 2048 greater than FragmentSize 1024-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[21-Maximum Fragment Len extension 2048 greater than FragmentSize 1024-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-21]
+ApplicationData = 3072
+MaxFragmentSize = 1024
+client = 21-Maximum Fragment Len extension 2048 greater than FragmentSize 1024-client-extra
+
+[21-Maximum Fragment Len extension 2048 greater than FragmentSize 1024-client-extra]
+MaxFragmentLenExt = 2048
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/13-fragmentation.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/13-fragmentation.conf.in
new file mode 100644
index 000000000..7c80c431c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/13-fragmentation.conf.in
@@ -0,0 +1,268 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test packet fragmentation
+
+use strict;
+use warnings;
+
+package ssltests;
+
+
+our @tests = (
+ # Default fragment size is 512.
+ {
+ name => "one-fragment-minus-app-data",
+ server => { },
+ client => { },
+ test => {
+ ApplicationData => 511,
+ }
+ },
+ {
+ name => "one-fragment-app-data",
+ server => { },
+ client => { },
+ test => {
+ ApplicationData => 512,
+ }
+ },
+ {
+ name => "one-fragment-plus-app-data",
+ server => { },
+ client => { },
+ test => {
+ ApplicationData => 513,
+ }
+ },
+ {
+ name => "small-app-data",
+ server => { },
+ client => { },
+ test => {
+ ApplicationData => 4 * 1024 + 1,
+ }
+ },
+ {
+ name => "small-app-data-large-fragment-size",
+ server => { },
+ client => { },
+ test => {
+ ApplicationData => 4 * 1024 + 1,
+ MaxFragmentSize => 16384,
+ }
+ },
+ {
+ name => "medium-app-data",
+ server => { },
+ client => { },
+ test => {
+ ApplicationData => 32 * 1024 + 7,
+ }
+ },
+ # Exceeds the 64kB write buffer size.
+ {
+ name => "medium-plus-app-data",
+ server => { },
+ client => { },
+ test => {
+ ApplicationData => 128 * 1024 - 3,
+ }
+ },
+ {
+ name => "large-app-data",
+ server => { },
+ client => { },
+ test => {
+ ApplicationData => 1024 * 1024,
+ }
+ },
+ {
+ name => "large-app-data-large-fragment-size",
+ server => { },
+ client => { },
+ test => {
+ ApplicationData => 1024 * 1024,
+ MaxFragmentSize => 16384,
+ }
+ },
+ {
+ name => "large-app-data-odd-fragment-size",
+ server => { },
+ client => { },
+ test => {
+ ApplicationData => 1024 * 1024,
+ MaxFragmentSize => 5 * 1024 - 5,
+ }
+ },
+ # When the buffer / fragment size ratio is sufficiently large,
+ # multi-buffer code kicks in on some platforms for AES-SHA. The
+ # exact minimum ratio depends on the platform, and is usually
+ # around 4. Since the test buffer is 64kB, a 4kB fragment is
+ # easily sufficient.
+ #
+ # (We run this test on all platforms though it's only true multibuffer
+ # on some of them.)
+ {
+ name => "large-app-data-aes-sha1-multibuffer",
+ server => { },
+ client => {
+ CipherString => "AES128-SHA",
+ MaxProtocol => "TLSv1.2"
+ },
+ test => {
+ ApplicationData => 1024 * 1024,
+ MaxFragmentSize => 4 * 1024,
+ }
+ },
+ {
+ name => "large-app-data-aes-sha2-multibuffer",
+ server => { },
+ client => {
+ CipherString => "AES128-SHA256",
+ MaxProtocol => "TLSv1.2"
+ },
+ test => {
+ ApplicationData => 1024 * 1024,
+ MaxFragmentSize => 4 * 1024,
+ }
+ },
+ {
+ name => "large-app-data-aes-sha1-multibuffer-odd-fragment",
+ server => { },
+ client => {
+ CipherString => "AES128-SHA",
+ MaxProtocol => "TLSv1.2"
+ },
+ test => {
+ ApplicationData => 1024 * 1024 + 3,
+ MaxFragmentSize => 5 * 1024 - 5,
+ }
+ },
+ {
+ name => "large-app-data-aes-sha2-multibuffer-odd-fragment",
+ server => { },
+ client => {
+ CipherString => "AES128-SHA256",
+ MaxProtocol => "TLSv1.2"
+ },
+ test => {
+ ApplicationData => 1024 * 1024 - 3,
+ MaxFragmentSize => 5 * 1024 + 5,
+ }
+ },
+ # Test that multibuffer-capable code also handles small data correctly.
+ # Here fragment size == app data size < buffer size,
+ # so no multibuffering should happen.
+ {
+ name => "small-app-data-aes-sha1-multibuffer",
+ server => { },
+ client => {
+ CipherString => "AES128-SHA",
+ MaxProtocol => "TLSv1.2"
+ },
+ test => {
+ ApplicationData => 4 * 1024,
+ MaxFragmentSize => 4 * 1024,
+ }
+ },
+ {
+ name => "small-app-data-aes-sha2-multibuffer",
+ server => { },
+ client => {
+ CipherString => "AES128-SHA256",
+ MaxProtocol => "TLSv1.2"
+ },
+ test => {
+ ApplicationData => 4 * 1024,
+ MaxFragmentSize => 4 * 1024,
+ }
+ },
+ ############################################
+ # Default (Max) Fragment Size is 512.
+ # Default Application data size is 256.
+ {
+ name => "Maximum Fragment Len extension set to 1024 w. FragmentSize disabled",
+ server => { },
+ client => {
+ extra => {
+ MaxFragmentLenExt => 1024,
+ },
+ },
+ test => {
+ ApplicationData => 3072,
+ MaxFragmentSize => 16384,
+ }
+ },
+ {
+ name => "Maximum Fragment Len extension equal FragmentSize to 2048",
+ server => { },
+ client => {
+ extra => {
+ MaxFragmentLenExt => 2048,
+ },
+ },
+ test => {
+ ApplicationData => 3072,
+ MaxFragmentSize => 2048,
+ }
+ },
+ {
+ name => "Maximum Fragment Len extension 512 lower than FragmentSize 1024",
+ server => { },
+ client => {
+ extra => {
+ MaxFragmentLenExt => 512,
+ },
+ },
+ test => {
+ ApplicationData => 3072,
+ MaxFragmentSize => 1024,
+ }
+ },
+ {
+ name => "Maximum Fragment Len extension 1024 lower than FragmentSize 1024",
+ server => { },
+ client => {
+ extra => {
+ MaxFragmentLenExt => 2048,
+ },
+ },
+ test => {
+ ApplicationData => 3072,
+ MaxFragmentSize => 1024,
+ }
+ },
+ {
+ name => "Maximum Fragment Len extension 4096 greater than FragmentSize 2048",
+ server => { },
+ client => {
+ extra => {
+ MaxFragmentLenExt => 4096,
+ },
+ },
+ test => {
+ ApplicationData => 8196,
+ MaxFragmentSize => 2048,
+ }
+ },
+ {
+ name => "Maximum Fragment Len extension 2048 greater than FragmentSize 1024",
+ server => { },
+ client => {
+ extra => {
+ MaxFragmentLenExt => 2048,
+ },
+ },
+ test => {
+ ApplicationData => 3072,
+ MaxFragmentSize => 1024,
+ }
+ },
+);
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/14-curves.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/14-curves.conf
new file mode 100644
index 000000000..f76f08fd7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/14-curves.conf
@@ -0,0 +1,874 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 30
+
+test-0 = 0-curve-sect163k1
+test-1 = 1-curve-sect163r1
+test-2 = 2-curve-sect163r2
+test-3 = 3-curve-sect193r1
+test-4 = 4-curve-sect193r2
+test-5 = 5-curve-sect233k1
+test-6 = 6-curve-sect233r1
+test-7 = 7-curve-sect239k1
+test-8 = 8-curve-sect283k1
+test-9 = 9-curve-sect283r1
+test-10 = 10-curve-sect409k1
+test-11 = 11-curve-sect409r1
+test-12 = 12-curve-sect571k1
+test-13 = 13-curve-sect571r1
+test-14 = 14-curve-secp160k1
+test-15 = 15-curve-secp160r1
+test-16 = 16-curve-secp160r2
+test-17 = 17-curve-secp192k1
+test-18 = 18-curve-prime192v1
+test-19 = 19-curve-secp224k1
+test-20 = 20-curve-secp224r1
+test-21 = 21-curve-secp256k1
+test-22 = 22-curve-prime256v1
+test-23 = 23-curve-secp384r1
+test-24 = 24-curve-secp521r1
+test-25 = 25-curve-brainpoolP256r1
+test-26 = 26-curve-brainpoolP384r1
+test-27 = 27-curve-brainpoolP512r1
+test-28 = 28-curve-X25519
+test-29 = 29-curve-X448
+# ===========================================================
+
+[0-curve-sect163k1]
+ssl_conf = 0-curve-sect163k1-ssl
+
+[0-curve-sect163k1-ssl]
+server = 0-curve-sect163k1-server
+client = 0-curve-sect163k1-client
+
+[0-curve-sect163k1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = sect163k1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-curve-sect163k1-client]
+CipherString = ECDHE
+Curves = sect163k1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = Success
+ExpectedTmpKeyType = sect163k1
+
+
+# ===========================================================
+
+[1-curve-sect163r1]
+ssl_conf = 1-curve-sect163r1-ssl
+
+[1-curve-sect163r1-ssl]
+server = 1-curve-sect163r1-server
+client = 1-curve-sect163r1-client
+
+[1-curve-sect163r1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = sect163r1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-curve-sect163r1-client]
+CipherString = ECDHE
+Curves = sect163r1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedResult = Success
+ExpectedTmpKeyType = sect163r1
+
+
+# ===========================================================
+
+[2-curve-sect163r2]
+ssl_conf = 2-curve-sect163r2-ssl
+
+[2-curve-sect163r2-ssl]
+server = 2-curve-sect163r2-server
+client = 2-curve-sect163r2-client
+
+[2-curve-sect163r2-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = sect163r2
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-curve-sect163r2-client]
+CipherString = ECDHE
+Curves = sect163r2
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedResult = Success
+ExpectedTmpKeyType = sect163r2
+
+
+# ===========================================================
+
+[3-curve-sect193r1]
+ssl_conf = 3-curve-sect193r1-ssl
+
+[3-curve-sect193r1-ssl]
+server = 3-curve-sect193r1-server
+client = 3-curve-sect193r1-client
+
+[3-curve-sect193r1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = sect193r1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-curve-sect193r1-client]
+CipherString = ECDHE
+Curves = sect193r1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedResult = Success
+ExpectedTmpKeyType = sect193r1
+
+
+# ===========================================================
+
+[4-curve-sect193r2]
+ssl_conf = 4-curve-sect193r2-ssl
+
+[4-curve-sect193r2-ssl]
+server = 4-curve-sect193r2-server
+client = 4-curve-sect193r2-client
+
+[4-curve-sect193r2-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = sect193r2
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[4-curve-sect193r2-client]
+CipherString = ECDHE
+Curves = sect193r2
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-4]
+ExpectedResult = Success
+ExpectedTmpKeyType = sect193r2
+
+
+# ===========================================================
+
+[5-curve-sect233k1]
+ssl_conf = 5-curve-sect233k1-ssl
+
+[5-curve-sect233k1-ssl]
+server = 5-curve-sect233k1-server
+client = 5-curve-sect233k1-client
+
+[5-curve-sect233k1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = sect233k1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[5-curve-sect233k1-client]
+CipherString = ECDHE
+Curves = sect233k1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+ExpectedResult = Success
+ExpectedTmpKeyType = sect233k1
+
+
+# ===========================================================
+
+[6-curve-sect233r1]
+ssl_conf = 6-curve-sect233r1-ssl
+
+[6-curve-sect233r1-ssl]
+server = 6-curve-sect233r1-server
+client = 6-curve-sect233r1-client
+
+[6-curve-sect233r1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = sect233r1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-curve-sect233r1-client]
+CipherString = ECDHE
+Curves = sect233r1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-6]
+ExpectedResult = Success
+ExpectedTmpKeyType = sect233r1
+
+
+# ===========================================================
+
+[7-curve-sect239k1]
+ssl_conf = 7-curve-sect239k1-ssl
+
+[7-curve-sect239k1-ssl]
+server = 7-curve-sect239k1-server
+client = 7-curve-sect239k1-client
+
+[7-curve-sect239k1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = sect239k1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-curve-sect239k1-client]
+CipherString = ECDHE
+Curves = sect239k1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-7]
+ExpectedResult = Success
+ExpectedTmpKeyType = sect239k1
+
+
+# ===========================================================
+
+[8-curve-sect283k1]
+ssl_conf = 8-curve-sect283k1-ssl
+
+[8-curve-sect283k1-ssl]
+server = 8-curve-sect283k1-server
+client = 8-curve-sect283k1-client
+
+[8-curve-sect283k1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = sect283k1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-curve-sect283k1-client]
+CipherString = ECDHE
+Curves = sect283k1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-8]
+ExpectedResult = Success
+ExpectedTmpKeyType = sect283k1
+
+
+# ===========================================================
+
+[9-curve-sect283r1]
+ssl_conf = 9-curve-sect283r1-ssl
+
+[9-curve-sect283r1-ssl]
+server = 9-curve-sect283r1-server
+client = 9-curve-sect283r1-client
+
+[9-curve-sect283r1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = sect283r1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[9-curve-sect283r1-client]
+CipherString = ECDHE
+Curves = sect283r1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-9]
+ExpectedResult = Success
+ExpectedTmpKeyType = sect283r1
+
+
+# ===========================================================
+
+[10-curve-sect409k1]
+ssl_conf = 10-curve-sect409k1-ssl
+
+[10-curve-sect409k1-ssl]
+server = 10-curve-sect409k1-server
+client = 10-curve-sect409k1-client
+
+[10-curve-sect409k1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = sect409k1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[10-curve-sect409k1-client]
+CipherString = ECDHE
+Curves = sect409k1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-10]
+ExpectedResult = Success
+ExpectedTmpKeyType = sect409k1
+
+
+# ===========================================================
+
+[11-curve-sect409r1]
+ssl_conf = 11-curve-sect409r1-ssl
+
+[11-curve-sect409r1-ssl]
+server = 11-curve-sect409r1-server
+client = 11-curve-sect409r1-client
+
+[11-curve-sect409r1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = sect409r1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[11-curve-sect409r1-client]
+CipherString = ECDHE
+Curves = sect409r1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-11]
+ExpectedResult = Success
+ExpectedTmpKeyType = sect409r1
+
+
+# ===========================================================
+
+[12-curve-sect571k1]
+ssl_conf = 12-curve-sect571k1-ssl
+
+[12-curve-sect571k1-ssl]
+server = 12-curve-sect571k1-server
+client = 12-curve-sect571k1-client
+
+[12-curve-sect571k1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = sect571k1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[12-curve-sect571k1-client]
+CipherString = ECDHE
+Curves = sect571k1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-12]
+ExpectedResult = Success
+ExpectedTmpKeyType = sect571k1
+
+
+# ===========================================================
+
+[13-curve-sect571r1]
+ssl_conf = 13-curve-sect571r1-ssl
+
+[13-curve-sect571r1-ssl]
+server = 13-curve-sect571r1-server
+client = 13-curve-sect571r1-client
+
+[13-curve-sect571r1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = sect571r1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[13-curve-sect571r1-client]
+CipherString = ECDHE
+Curves = sect571r1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-13]
+ExpectedResult = Success
+ExpectedTmpKeyType = sect571r1
+
+
+# ===========================================================
+
+[14-curve-secp160k1]
+ssl_conf = 14-curve-secp160k1-ssl
+
+[14-curve-secp160k1-ssl]
+server = 14-curve-secp160k1-server
+client = 14-curve-secp160k1-client
+
+[14-curve-secp160k1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = secp160k1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[14-curve-secp160k1-client]
+CipherString = ECDHE
+Curves = secp160k1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-14]
+ExpectedResult = Success
+ExpectedTmpKeyType = secp160k1
+
+
+# ===========================================================
+
+[15-curve-secp160r1]
+ssl_conf = 15-curve-secp160r1-ssl
+
+[15-curve-secp160r1-ssl]
+server = 15-curve-secp160r1-server
+client = 15-curve-secp160r1-client
+
+[15-curve-secp160r1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = secp160r1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[15-curve-secp160r1-client]
+CipherString = ECDHE
+Curves = secp160r1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-15]
+ExpectedResult = Success
+ExpectedTmpKeyType = secp160r1
+
+
+# ===========================================================
+
+[16-curve-secp160r2]
+ssl_conf = 16-curve-secp160r2-ssl
+
+[16-curve-secp160r2-ssl]
+server = 16-curve-secp160r2-server
+client = 16-curve-secp160r2-client
+
+[16-curve-secp160r2-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = secp160r2
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[16-curve-secp160r2-client]
+CipherString = ECDHE
+Curves = secp160r2
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-16]
+ExpectedResult = Success
+ExpectedTmpKeyType = secp160r2
+
+
+# ===========================================================
+
+[17-curve-secp192k1]
+ssl_conf = 17-curve-secp192k1-ssl
+
+[17-curve-secp192k1-ssl]
+server = 17-curve-secp192k1-server
+client = 17-curve-secp192k1-client
+
+[17-curve-secp192k1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = secp192k1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[17-curve-secp192k1-client]
+CipherString = ECDHE
+Curves = secp192k1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-17]
+ExpectedResult = Success
+ExpectedTmpKeyType = secp192k1
+
+
+# ===========================================================
+
+[18-curve-prime192v1]
+ssl_conf = 18-curve-prime192v1-ssl
+
+[18-curve-prime192v1-ssl]
+server = 18-curve-prime192v1-server
+client = 18-curve-prime192v1-client
+
+[18-curve-prime192v1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = prime192v1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[18-curve-prime192v1-client]
+CipherString = ECDHE
+Curves = prime192v1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-18]
+ExpectedResult = Success
+ExpectedTmpKeyType = prime192v1
+
+
+# ===========================================================
+
+[19-curve-secp224k1]
+ssl_conf = 19-curve-secp224k1-ssl
+
+[19-curve-secp224k1-ssl]
+server = 19-curve-secp224k1-server
+client = 19-curve-secp224k1-client
+
+[19-curve-secp224k1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = secp224k1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[19-curve-secp224k1-client]
+CipherString = ECDHE
+Curves = secp224k1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-19]
+ExpectedResult = Success
+ExpectedTmpKeyType = secp224k1
+
+
+# ===========================================================
+
+[20-curve-secp224r1]
+ssl_conf = 20-curve-secp224r1-ssl
+
+[20-curve-secp224r1-ssl]
+server = 20-curve-secp224r1-server
+client = 20-curve-secp224r1-client
+
+[20-curve-secp224r1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = secp224r1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[20-curve-secp224r1-client]
+CipherString = ECDHE
+Curves = secp224r1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-20]
+ExpectedResult = Success
+ExpectedTmpKeyType = secp224r1
+
+
+# ===========================================================
+
+[21-curve-secp256k1]
+ssl_conf = 21-curve-secp256k1-ssl
+
+[21-curve-secp256k1-ssl]
+server = 21-curve-secp256k1-server
+client = 21-curve-secp256k1-client
+
+[21-curve-secp256k1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = secp256k1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[21-curve-secp256k1-client]
+CipherString = ECDHE
+Curves = secp256k1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-21]
+ExpectedResult = Success
+ExpectedTmpKeyType = secp256k1
+
+
+# ===========================================================
+
+[22-curve-prime256v1]
+ssl_conf = 22-curve-prime256v1-ssl
+
+[22-curve-prime256v1-ssl]
+server = 22-curve-prime256v1-server
+client = 22-curve-prime256v1-client
+
+[22-curve-prime256v1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = prime256v1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[22-curve-prime256v1-client]
+CipherString = ECDHE
+Curves = prime256v1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-22]
+ExpectedResult = Success
+ExpectedTmpKeyType = prime256v1
+
+
+# ===========================================================
+
+[23-curve-secp384r1]
+ssl_conf = 23-curve-secp384r1-ssl
+
+[23-curve-secp384r1-ssl]
+server = 23-curve-secp384r1-server
+client = 23-curve-secp384r1-client
+
+[23-curve-secp384r1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = secp384r1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[23-curve-secp384r1-client]
+CipherString = ECDHE
+Curves = secp384r1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-23]
+ExpectedResult = Success
+ExpectedTmpKeyType = secp384r1
+
+
+# ===========================================================
+
+[24-curve-secp521r1]
+ssl_conf = 24-curve-secp521r1-ssl
+
+[24-curve-secp521r1-ssl]
+server = 24-curve-secp521r1-server
+client = 24-curve-secp521r1-client
+
+[24-curve-secp521r1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = secp521r1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[24-curve-secp521r1-client]
+CipherString = ECDHE
+Curves = secp521r1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-24]
+ExpectedResult = Success
+ExpectedTmpKeyType = secp521r1
+
+
+# ===========================================================
+
+[25-curve-brainpoolP256r1]
+ssl_conf = 25-curve-brainpoolP256r1-ssl
+
+[25-curve-brainpoolP256r1-ssl]
+server = 25-curve-brainpoolP256r1-server
+client = 25-curve-brainpoolP256r1-client
+
+[25-curve-brainpoolP256r1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = brainpoolP256r1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[25-curve-brainpoolP256r1-client]
+CipherString = ECDHE
+Curves = brainpoolP256r1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-25]
+ExpectedResult = Success
+ExpectedTmpKeyType = brainpoolP256r1
+
+
+# ===========================================================
+
+[26-curve-brainpoolP384r1]
+ssl_conf = 26-curve-brainpoolP384r1-ssl
+
+[26-curve-brainpoolP384r1-ssl]
+server = 26-curve-brainpoolP384r1-server
+client = 26-curve-brainpoolP384r1-client
+
+[26-curve-brainpoolP384r1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = brainpoolP384r1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[26-curve-brainpoolP384r1-client]
+CipherString = ECDHE
+Curves = brainpoolP384r1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-26]
+ExpectedResult = Success
+ExpectedTmpKeyType = brainpoolP384r1
+
+
+# ===========================================================
+
+[27-curve-brainpoolP512r1]
+ssl_conf = 27-curve-brainpoolP512r1-ssl
+
+[27-curve-brainpoolP512r1-ssl]
+server = 27-curve-brainpoolP512r1-server
+client = 27-curve-brainpoolP512r1-client
+
+[27-curve-brainpoolP512r1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = brainpoolP512r1
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[27-curve-brainpoolP512r1-client]
+CipherString = ECDHE
+Curves = brainpoolP512r1
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-27]
+ExpectedResult = Success
+ExpectedTmpKeyType = brainpoolP512r1
+
+
+# ===========================================================
+
+[28-curve-X25519]
+ssl_conf = 28-curve-X25519-ssl
+
+[28-curve-X25519-ssl]
+server = 28-curve-X25519-server
+client = 28-curve-X25519-client
+
+[28-curve-X25519-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = X25519
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[28-curve-X25519-client]
+CipherString = ECDHE
+Curves = X25519
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-28]
+ExpectedResult = Success
+ExpectedTmpKeyType = X25519
+
+
+# ===========================================================
+
+[29-curve-X448]
+ssl_conf = 29-curve-X448-ssl
+
+[29-curve-X448-ssl]
+server = 29-curve-X448-server
+client = 29-curve-X448-client
+
+[29-curve-X448-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = X448
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[29-curve-X448-client]
+CipherString = ECDHE
+Curves = X448
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-29]
+ExpectedResult = Success
+ExpectedTmpKeyType = X448
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/14-curves.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/14-curves.conf.in
new file mode 100644
index 000000000..2f8077c44
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/14-curves.conf.in
@@ -0,0 +1,47 @@
+# -*- mode: perl; -*-
+
+## SSL test configurations
+
+package ssltests;
+
+use strict;
+use warnings;
+
+use OpenSSL::Test;
+use OpenSSL::Test::Utils qw(anydisabled);
+
+my @curves = ("sect163k1", "sect163r1", "sect163r2", "sect193r1",
+ "sect193r2", "sect233k1", "sect233r1", "sect239k1",
+ "sect283k1", "sect283r1", "sect409k1", "sect409r1",
+ "sect571k1", "sect571r1", "secp160k1", "secp160r1",
+ "secp160r2", "secp192k1", "prime192v1", "secp224k1",
+ "secp224r1", "secp256k1", "prime256v1", "secp384r1",
+ "secp521r1", "brainpoolP256r1", "brainpoolP384r1",
+ "brainpoolP512r1", "X25519", "X448");
+
+our @tests = ();
+
+sub generate_tests() {
+ foreach (0..$#curves) {
+ my $curve = $curves[$_];
+ push @tests, {
+ name => "curve-${curve}",
+ server => {
+ "Curves" => $curve,
+ # TODO(TLS1.3): Can we get this to work for TLSv1.3?
+ "MaxProtocol" => "TLSv1.2"
+ },
+ client => {
+ "CipherString" => "ECDHE",
+ "MaxProtocol" => "TLSv1.2",
+ "Curves" => $curve
+ },
+ test => {
+ "ExpectedTmpKeyType" => $curve,
+ "ExpectedResult" => "Success"
+ },
+ };
+ }
+}
+
+generate_tests();
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/15-certstatus.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/15-certstatus.conf
new file mode 100644
index 000000000..bf6c41cda
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/15-certstatus.conf
@@ -0,0 +1,62 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 2
+
+test-0 = 0-certstatus-good
+test-1 = 1-certstatus-bad
+# ===========================================================
+
+[0-certstatus-good]
+ssl_conf = 0-certstatus-good-ssl
+
+[0-certstatus-good-ssl]
+server = 0-certstatus-good-server
+client = 0-certstatus-good-client
+
+[0-certstatus-good-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-certstatus-good-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = Success
+Method = TLS
+server = 0-certstatus-good-server-extra
+
+[0-certstatus-good-server-extra]
+CertStatus = GoodResponse
+
+
+# ===========================================================
+
+[1-certstatus-bad]
+ssl_conf = 1-certstatus-bad-ssl
+
+[1-certstatus-bad-ssl]
+server = 1-certstatus-bad-server
+client = 1-certstatus-bad-client
+
+[1-certstatus-bad-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-certstatus-bad-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedResult = ClientFail
+Method = TLS
+server = 1-certstatus-bad-server-extra
+
+[1-certstatus-bad-server-extra]
+CertStatus = BadResponse
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/15-certstatus.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/15-certstatus.conf.in
new file mode 100644
index 000000000..074602dc3
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/15-certstatus.conf.in
@@ -0,0 +1,45 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test CertStatus messages
+
+use strict;
+use warnings;
+
+package ssltests;
+
+
+our @tests = (
+ {
+ name => "certstatus-good",
+ server => {
+ extra => {
+ "CertStatus" => "GoodResponse",
+ },
+ },
+ client => {},
+ test => {
+ "Method" => "TLS",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "certstatus-bad",
+ server => {
+ extra => {
+ "CertStatus" => "BadResponse",
+ },
+ },
+ client => {},
+ test => {
+ "Method" => "TLS",
+ "ExpectedResult" => "ClientFail"
+ }
+ },
+);
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/16-certstatus.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/16-certstatus.conf
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/16-certstatus.conf
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/16-dtls-certstatus.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/16-dtls-certstatus.conf
new file mode 100644
index 000000000..a561803a5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/16-dtls-certstatus.conf
@@ -0,0 +1,62 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 2
+
+test-0 = 0-certstatus-good
+test-1 = 1-certstatus-bad
+# ===========================================================
+
+[0-certstatus-good]
+ssl_conf = 0-certstatus-good-ssl
+
+[0-certstatus-good-ssl]
+server = 0-certstatus-good-server
+client = 0-certstatus-good-client
+
+[0-certstatus-good-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-certstatus-good-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = Success
+Method = DTLS
+server = 0-certstatus-good-server-extra
+
+[0-certstatus-good-server-extra]
+CertStatus = GoodResponse
+
+
+# ===========================================================
+
+[1-certstatus-bad]
+ssl_conf = 1-certstatus-bad-ssl
+
+[1-certstatus-bad-ssl]
+server = 1-certstatus-bad-server
+client = 1-certstatus-bad-client
+
+[1-certstatus-bad-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-certstatus-bad-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedResult = ClientFail
+Method = DTLS
+server = 1-certstatus-bad-server-extra
+
+[1-certstatus-bad-server-extra]
+CertStatus = BadResponse
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/16-dtls-certstatus.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/16-dtls-certstatus.conf.in
new file mode 100644
index 000000000..2d1766d5e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/16-dtls-certstatus.conf.in
@@ -0,0 +1,78 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test DTLS CertStatus messages
+
+use strict;
+use warnings;
+
+package ssltests;
+use OpenSSL::Test::Utils;
+
+our @tests = (
+ {
+ name => "certstatus-good",
+ server => {
+ extra => {
+ "CertStatus" => "GoodResponse",
+ },
+ },
+ client => {},
+ test => {
+ "Method" => "DTLS",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "certstatus-bad",
+ server => {
+ extra => {
+ "CertStatus" => "BadResponse",
+ },
+ },
+ client => {},
+ test => {
+ "Method" => "DTLS",
+ "ExpectedResult" => "ClientFail"
+ }
+ }
+);
+
+our @tests_sctp = (
+ {
+ name => "certstatus-good",
+ server => {
+ extra => {
+ "CertStatus" => "GoodResponse",
+ },
+ },
+ client => {},
+ test => {
+ "Method" => "DTLS",
+ "UseSCTP" => "Yes",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "certstatus-bad",
+ server => {
+ extra => {
+ "CertStatus" => "BadResponse",
+ },
+ },
+ client => {},
+ test => {
+ "Method" => "DTLS",
+ "UseSCTP" => "Yes",
+ "ExpectedResult" => "ClientFail"
+ }
+ },
+);
+
+push @tests, @tests_sctp unless disabled("sctp") || disabled("sock");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/17-renegotiate.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/17-renegotiate.conf
new file mode 100644
index 000000000..12cf79131
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/17-renegotiate.conf
@@ -0,0 +1,432 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 14
+
+test-0 = 0-renegotiate-client-no-resume
+test-1 = 1-renegotiate-client-resume
+test-2 = 2-renegotiate-server-no-resume
+test-3 = 3-renegotiate-server-resume
+test-4 = 4-renegotiate-client-auth-require
+test-5 = 5-renegotiate-client-auth-once
+test-6 = 6-renegotiate-aead-to-non-aead
+test-7 = 7-renegotiate-non-aead-to-aead
+test-8 = 8-renegotiate-non-aead-to-non-aead
+test-9 = 9-renegotiate-aead-to-aead
+test-10 = 10-no-renegotiation-server-by-client
+test-11 = 11-no-renegotiation-server-by-server
+test-12 = 12-no-renegotiation-client-by-server
+test-13 = 13-no-renegotiation-client-by-client
+# ===========================================================
+
+[0-renegotiate-client-no-resume]
+ssl_conf = 0-renegotiate-client-no-resume-ssl
+
+[0-renegotiate-client-no-resume-ssl]
+server = 0-renegotiate-client-no-resume-server
+client = 0-renegotiate-client-no-resume-client
+
+[0-renegotiate-client-no-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = NoResumptionOnRenegotiation
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-renegotiate-client-no-resume-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = Success
+HandshakeMode = RenegotiateClient
+Method = TLS
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[1-renegotiate-client-resume]
+ssl_conf = 1-renegotiate-client-resume-ssl
+
+[1-renegotiate-client-resume-ssl]
+server = 1-renegotiate-client-resume-server
+client = 1-renegotiate-client-resume-client
+
+[1-renegotiate-client-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-renegotiate-client-resume-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedResult = Success
+HandshakeMode = RenegotiateClient
+Method = TLS
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[2-renegotiate-server-no-resume]
+ssl_conf = 2-renegotiate-server-no-resume-ssl
+
+[2-renegotiate-server-no-resume-ssl]
+server = 2-renegotiate-server-no-resume-server
+client = 2-renegotiate-server-no-resume-client
+
+[2-renegotiate-server-no-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = NoResumptionOnRenegotiation
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-renegotiate-server-no-resume-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedResult = Success
+HandshakeMode = RenegotiateServer
+Method = TLS
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[3-renegotiate-server-resume]
+ssl_conf = 3-renegotiate-server-resume-ssl
+
+[3-renegotiate-server-resume-ssl]
+server = 3-renegotiate-server-resume-server
+client = 3-renegotiate-server-resume-client
+
+[3-renegotiate-server-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-renegotiate-server-resume-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedResult = Success
+HandshakeMode = RenegotiateServer
+Method = TLS
+ResumptionExpected = Yes
+
+
+# ===========================================================
+
+[4-renegotiate-client-auth-require]
+ssl_conf = 4-renegotiate-client-auth-require-ssl
+
+[4-renegotiate-client-auth-require-ssl]
+server = 4-renegotiate-client-auth-require-server
+client = 4-renegotiate-client-auth-require-client
+
+[4-renegotiate-client-auth-require-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = NoResumptionOnRenegotiation
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Require
+
+[4-renegotiate-client-auth-require-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-4]
+ExpectedResult = Success
+HandshakeMode = RenegotiateServer
+Method = TLS
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[5-renegotiate-client-auth-once]
+ssl_conf = 5-renegotiate-client-auth-once-ssl
+
+[5-renegotiate-client-auth-once-ssl]
+server = 5-renegotiate-client-auth-once-server
+client = 5-renegotiate-client-auth-once-client
+
+[5-renegotiate-client-auth-once-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = NoResumptionOnRenegotiation
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Once
+
+[5-renegotiate-client-auth-once-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+ExpectedResult = Success
+HandshakeMode = RenegotiateServer
+Method = TLS
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[6-renegotiate-aead-to-non-aead]
+ssl_conf = 6-renegotiate-aead-to-non-aead-ssl
+
+[6-renegotiate-aead-to-non-aead-ssl]
+server = 6-renegotiate-aead-to-non-aead-server
+client = 6-renegotiate-aead-to-non-aead-client
+
+[6-renegotiate-aead-to-non-aead-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = NoResumptionOnRenegotiation
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-renegotiate-aead-to-non-aead-client]
+CipherString = AES128-GCM-SHA256
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-6]
+ExpectedResult = Success
+HandshakeMode = RenegotiateClient
+Method = TLS
+ResumptionExpected = No
+client = 6-renegotiate-aead-to-non-aead-client-extra
+
+[6-renegotiate-aead-to-non-aead-client-extra]
+RenegotiateCiphers = AES128-SHA
+
+
+# ===========================================================
+
+[7-renegotiate-non-aead-to-aead]
+ssl_conf = 7-renegotiate-non-aead-to-aead-ssl
+
+[7-renegotiate-non-aead-to-aead-ssl]
+server = 7-renegotiate-non-aead-to-aead-server
+client = 7-renegotiate-non-aead-to-aead-client
+
+[7-renegotiate-non-aead-to-aead-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = NoResumptionOnRenegotiation
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-renegotiate-non-aead-to-aead-client]
+CipherString = AES128-SHA
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-7]
+ExpectedResult = Success
+HandshakeMode = RenegotiateClient
+Method = TLS
+ResumptionExpected = No
+client = 7-renegotiate-non-aead-to-aead-client-extra
+
+[7-renegotiate-non-aead-to-aead-client-extra]
+RenegotiateCiphers = AES128-GCM-SHA256
+
+
+# ===========================================================
+
+[8-renegotiate-non-aead-to-non-aead]
+ssl_conf = 8-renegotiate-non-aead-to-non-aead-ssl
+
+[8-renegotiate-non-aead-to-non-aead-ssl]
+server = 8-renegotiate-non-aead-to-non-aead-server
+client = 8-renegotiate-non-aead-to-non-aead-client
+
+[8-renegotiate-non-aead-to-non-aead-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = NoResumptionOnRenegotiation
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-renegotiate-non-aead-to-non-aead-client]
+CipherString = AES128-SHA
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-8]
+ExpectedResult = Success
+HandshakeMode = RenegotiateClient
+Method = TLS
+ResumptionExpected = No
+client = 8-renegotiate-non-aead-to-non-aead-client-extra
+
+[8-renegotiate-non-aead-to-non-aead-client-extra]
+RenegotiateCiphers = AES256-SHA
+
+
+# ===========================================================
+
+[9-renegotiate-aead-to-aead]
+ssl_conf = 9-renegotiate-aead-to-aead-ssl
+
+[9-renegotiate-aead-to-aead-ssl]
+server = 9-renegotiate-aead-to-aead-server
+client = 9-renegotiate-aead-to-aead-client
+
+[9-renegotiate-aead-to-aead-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = NoResumptionOnRenegotiation
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[9-renegotiate-aead-to-aead-client]
+CipherString = AES128-GCM-SHA256
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-9]
+ExpectedResult = Success
+HandshakeMode = RenegotiateClient
+Method = TLS
+ResumptionExpected = No
+client = 9-renegotiate-aead-to-aead-client-extra
+
+[9-renegotiate-aead-to-aead-client-extra]
+RenegotiateCiphers = AES256-GCM-SHA384
+
+
+# ===========================================================
+
+[10-no-renegotiation-server-by-client]
+ssl_conf = 10-no-renegotiation-server-by-client-ssl
+
+[10-no-renegotiation-server-by-client-ssl]
+server = 10-no-renegotiation-server-by-client-server
+client = 10-no-renegotiation-server-by-client-client
+
+[10-no-renegotiation-server-by-client-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = NoRenegotiation
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[10-no-renegotiation-server-by-client-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-10]
+ExpectedResult = ClientFail
+HandshakeMode = RenegotiateClient
+Method = TLS
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[11-no-renegotiation-server-by-server]
+ssl_conf = 11-no-renegotiation-server-by-server-ssl
+
+[11-no-renegotiation-server-by-server-ssl]
+server = 11-no-renegotiation-server-by-server-server
+client = 11-no-renegotiation-server-by-server-client
+
+[11-no-renegotiation-server-by-server-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = NoRenegotiation
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[11-no-renegotiation-server-by-server-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-11]
+ExpectedResult = ServerFail
+HandshakeMode = RenegotiateServer
+Method = TLS
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[12-no-renegotiation-client-by-server]
+ssl_conf = 12-no-renegotiation-client-by-server-ssl
+
+[12-no-renegotiation-client-by-server-ssl]
+server = 12-no-renegotiation-client-by-server-server
+client = 12-no-renegotiation-client-by-server-client
+
+[12-no-renegotiation-client-by-server-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[12-no-renegotiation-client-by-server-client]
+CipherString = DEFAULT
+Options = NoRenegotiation
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-12]
+ExpectedResult = ServerFail
+HandshakeMode = RenegotiateServer
+Method = TLS
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[13-no-renegotiation-client-by-client]
+ssl_conf = 13-no-renegotiation-client-by-client-ssl
+
+[13-no-renegotiation-client-by-client-ssl]
+server = 13-no-renegotiation-client-by-client-server
+client = 13-no-renegotiation-client-by-client-client
+
+[13-no-renegotiation-client-by-client-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[13-no-renegotiation-client-by-client-client]
+CipherString = DEFAULT
+Options = NoRenegotiation
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-13]
+ExpectedResult = ClientFail
+HandshakeMode = RenegotiateClient
+Method = TLS
+ResumptionExpected = No
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/17-renegotiate.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/17-renegotiate.conf.in
new file mode 100644
index 000000000..35175dce5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/17-renegotiate.conf.in
@@ -0,0 +1,249 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test Renegotiation
+
+use strict;
+use warnings;
+
+package ssltests;
+use OpenSSL::Test::Utils;
+
+our @tests = (
+ {
+ name => "renegotiate-client-no-resume",
+ server => {
+ "Options" => "NoResumptionOnRenegotiation",
+ "MaxProtocol" => "TLSv1.2"
+ },
+ client => {},
+ test => {
+ "Method" => "TLS",
+ "HandshakeMode" => "RenegotiateClient",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "renegotiate-client-resume",
+ server => {
+ "MaxProtocol" => "TLSv1.2"
+ },
+ client => {},
+ test => {
+ "Method" => "TLS",
+ "HandshakeMode" => "RenegotiateClient",
+ "ResumptionExpected" => "Yes",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "renegotiate-server-no-resume",
+ server => {
+ "Options" => "NoResumptionOnRenegotiation",
+ "MaxProtocol" => "TLSv1.2"
+ },
+ client => {},
+ test => {
+ "Method" => "TLS",
+ "HandshakeMode" => "RenegotiateServer",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "renegotiate-server-resume",
+ server => {
+ "MaxProtocol" => "TLSv1.2"
+ },
+ client => {},
+ test => {
+ "Method" => "TLS",
+ "HandshakeMode" => "RenegotiateServer",
+ "ResumptionExpected" => "Yes",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "renegotiate-client-auth-require",
+ server => {
+ "Options" => "NoResumptionOnRenegotiation",
+ "MaxProtocol" => "TLSv1.2",
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "Require",
+ },
+ client => {
+ "Certificate" => test_pem("ee-client-chain.pem"),
+ "PrivateKey" => test_pem("ee-key.pem"),
+ },
+ test => {
+ "Method" => "TLS",
+ "HandshakeMode" => "RenegotiateServer",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "renegotiate-client-auth-once",
+ server => {
+ "Options" => "NoResumptionOnRenegotiation",
+ "MaxProtocol" => "TLSv1.2",
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "Once",
+ },
+ client => {
+ "Certificate" => test_pem("ee-client-chain.pem"),
+ "PrivateKey" => test_pem("ee-key.pem"),
+ },
+ test => {
+ "Method" => "TLS",
+ "HandshakeMode" => "RenegotiateServer",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ }
+);
+our @tests_tls1_2 = (
+ {
+ name => "renegotiate-aead-to-non-aead",
+ server => {
+ "Options" => "NoResumptionOnRenegotiation",
+ },
+ client => {
+ "CipherString" => "AES128-GCM-SHA256",
+ "MaxProtocol" => "TLSv1.2",
+ extra => {
+ "RenegotiateCiphers" => "AES128-SHA"
+ }
+ },
+ test => {
+ "Method" => "TLS",
+ "HandshakeMode" => "RenegotiateClient",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "renegotiate-non-aead-to-aead",
+ server => {
+ "Options" => "NoResumptionOnRenegotiation",
+ },
+ client => {
+ "CipherString" => "AES128-SHA",
+ "MaxProtocol" => "TLSv1.2",
+ extra => {
+ "RenegotiateCiphers" => "AES128-GCM-SHA256"
+ }
+ },
+ test => {
+ "Method" => "TLS",
+ "HandshakeMode" => "RenegotiateClient",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "renegotiate-non-aead-to-non-aead",
+ server => {
+ "Options" => "NoResumptionOnRenegotiation",
+ },
+ client => {
+ "CipherString" => "AES128-SHA",
+ "MaxProtocol" => "TLSv1.2",
+ extra => {
+ "RenegotiateCiphers" => "AES256-SHA"
+ }
+ },
+ test => {
+ "Method" => "TLS",
+ "HandshakeMode" => "RenegotiateClient",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "renegotiate-aead-to-aead",
+ server => {
+ "Options" => "NoResumptionOnRenegotiation",
+ },
+ client => {
+ "CipherString" => "AES128-GCM-SHA256",
+ "MaxProtocol" => "TLSv1.2",
+ extra => {
+ "RenegotiateCiphers" => "AES256-GCM-SHA384"
+ }
+ },
+ test => {
+ "Method" => "TLS",
+ "HandshakeMode" => "RenegotiateClient",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "no-renegotiation-server-by-client",
+ server => {
+ "Options" => "NoRenegotiation",
+ "MaxProtocol" => "TLSv1.2"
+ },
+ client => { },
+ test => {
+ "Method" => "TLS",
+ "HandshakeMode" => "RenegotiateClient",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "ClientFail"
+ }
+ },
+ {
+ name => "no-renegotiation-server-by-server",
+ server => {
+ "Options" => "NoRenegotiation",
+ "MaxProtocol" => "TLSv1.2"
+ },
+ client => { },
+ test => {
+ "Method" => "TLS",
+ "HandshakeMode" => "RenegotiateServer",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "ServerFail"
+ }
+ },
+ {
+ name => "no-renegotiation-client-by-server",
+ server => {
+ "MaxProtocol" => "TLSv1.2"
+ },
+ client => {
+ "Options" => "NoRenegotiation",
+ },
+ test => {
+ "Method" => "TLS",
+ "HandshakeMode" => "RenegotiateServer",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "ServerFail"
+ }
+ },
+ {
+ name => "no-renegotiation-client-by-client",
+ server => {
+ "MaxProtocol" => "TLSv1.2"
+ },
+ client => {
+ "Options" => "NoRenegotiation",
+ },
+ test => {
+ "Method" => "TLS",
+ "HandshakeMode" => "RenegotiateClient",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "ClientFail"
+ }
+ }
+);
+
+push @tests, @tests_tls1_2 unless disabled("tls1_2");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/18-dtls-renegotiate.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/18-dtls-renegotiate.conf
new file mode 100644
index 000000000..9204dd2c5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/18-dtls-renegotiate.conf
@@ -0,0 +1,285 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 9
+
+test-0 = 0-renegotiate-client-no-resume
+test-1 = 1-renegotiate-client-resume
+test-2 = 2-renegotiate-server-resume
+test-3 = 3-renegotiate-client-auth-require
+test-4 = 4-renegotiate-client-auth-once
+test-5 = 5-renegotiate-aead-to-non-aead
+test-6 = 6-renegotiate-non-aead-to-aead
+test-7 = 7-renegotiate-non-aead-to-non-aead
+test-8 = 8-renegotiate-aead-to-aead
+# ===========================================================
+
+[0-renegotiate-client-no-resume]
+ssl_conf = 0-renegotiate-client-no-resume-ssl
+
+[0-renegotiate-client-no-resume-ssl]
+server = 0-renegotiate-client-no-resume-server
+client = 0-renegotiate-client-no-resume-client
+
+[0-renegotiate-client-no-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = NoResumptionOnRenegotiation
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-renegotiate-client-no-resume-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = Success
+HandshakeMode = RenegotiateClient
+Method = DTLS
+ResumptionExpected = No
+UseSCTP = No
+
+
+# ===========================================================
+
+[1-renegotiate-client-resume]
+ssl_conf = 1-renegotiate-client-resume-ssl
+
+[1-renegotiate-client-resume-ssl]
+server = 1-renegotiate-client-resume-server
+client = 1-renegotiate-client-resume-client
+
+[1-renegotiate-client-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-renegotiate-client-resume-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedResult = Success
+HandshakeMode = RenegotiateClient
+Method = DTLS
+ResumptionExpected = Yes
+UseSCTP = No
+
+
+# ===========================================================
+
+[2-renegotiate-server-resume]
+ssl_conf = 2-renegotiate-server-resume-ssl
+
+[2-renegotiate-server-resume-ssl]
+server = 2-renegotiate-server-resume-server
+client = 2-renegotiate-server-resume-client
+
+[2-renegotiate-server-resume-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-renegotiate-server-resume-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedResult = Success
+HandshakeMode = RenegotiateServer
+Method = DTLS
+ResumptionExpected = No
+UseSCTP = No
+
+
+# ===========================================================
+
+[3-renegotiate-client-auth-require]
+ssl_conf = 3-renegotiate-client-auth-require-ssl
+
+[3-renegotiate-client-auth-require-ssl]
+server = 3-renegotiate-client-auth-require-server
+client = 3-renegotiate-client-auth-require-client
+
+[3-renegotiate-client-auth-require-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Require
+
+[3-renegotiate-client-auth-require-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedResult = Success
+HandshakeMode = RenegotiateServer
+Method = DTLS
+ResumptionExpected = No
+UseSCTP = No
+
+
+# ===========================================================
+
+[4-renegotiate-client-auth-once]
+ssl_conf = 4-renegotiate-client-auth-once-ssl
+
+[4-renegotiate-client-auth-once-ssl]
+server = 4-renegotiate-client-auth-once-server
+client = 4-renegotiate-client-auth-once-client
+
+[4-renegotiate-client-auth-once-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Once
+
+[4-renegotiate-client-auth-once-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-4]
+ExpectedResult = Success
+HandshakeMode = RenegotiateServer
+Method = DTLS
+ResumptionExpected = No
+UseSCTP = No
+
+
+# ===========================================================
+
+[5-renegotiate-aead-to-non-aead]
+ssl_conf = 5-renegotiate-aead-to-non-aead-ssl
+
+[5-renegotiate-aead-to-non-aead-ssl]
+server = 5-renegotiate-aead-to-non-aead-server
+client = 5-renegotiate-aead-to-non-aead-client
+
+[5-renegotiate-aead-to-non-aead-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = NoResumptionOnRenegotiation
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[5-renegotiate-aead-to-non-aead-client]
+CipherString = AES128-GCM-SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+ExpectedResult = Success
+HandshakeMode = RenegotiateClient
+Method = DTLS
+ResumptionExpected = No
+UseSCTP = No
+client = 5-renegotiate-aead-to-non-aead-client-extra
+
+[5-renegotiate-aead-to-non-aead-client-extra]
+RenegotiateCiphers = AES128-SHA
+
+
+# ===========================================================
+
+[6-renegotiate-non-aead-to-aead]
+ssl_conf = 6-renegotiate-non-aead-to-aead-ssl
+
+[6-renegotiate-non-aead-to-aead-ssl]
+server = 6-renegotiate-non-aead-to-aead-server
+client = 6-renegotiate-non-aead-to-aead-client
+
+[6-renegotiate-non-aead-to-aead-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = NoResumptionOnRenegotiation
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-renegotiate-non-aead-to-aead-client]
+CipherString = AES128-SHA
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-6]
+ExpectedResult = Success
+HandshakeMode = RenegotiateClient
+Method = DTLS
+ResumptionExpected = No
+UseSCTP = No
+client = 6-renegotiate-non-aead-to-aead-client-extra
+
+[6-renegotiate-non-aead-to-aead-client-extra]
+RenegotiateCiphers = AES128-GCM-SHA256
+
+
+# ===========================================================
+
+[7-renegotiate-non-aead-to-non-aead]
+ssl_conf = 7-renegotiate-non-aead-to-non-aead-ssl
+
+[7-renegotiate-non-aead-to-non-aead-ssl]
+server = 7-renegotiate-non-aead-to-non-aead-server
+client = 7-renegotiate-non-aead-to-non-aead-client
+
+[7-renegotiate-non-aead-to-non-aead-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = NoResumptionOnRenegotiation
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-renegotiate-non-aead-to-non-aead-client]
+CipherString = AES128-SHA
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-7]
+ExpectedResult = Success
+HandshakeMode = RenegotiateClient
+Method = DTLS
+ResumptionExpected = No
+UseSCTP = No
+client = 7-renegotiate-non-aead-to-non-aead-client-extra
+
+[7-renegotiate-non-aead-to-non-aead-client-extra]
+RenegotiateCiphers = AES256-SHA
+
+
+# ===========================================================
+
+[8-renegotiate-aead-to-aead]
+ssl_conf = 8-renegotiate-aead-to-aead-ssl
+
+[8-renegotiate-aead-to-aead-ssl]
+server = 8-renegotiate-aead-to-aead-server
+client = 8-renegotiate-aead-to-aead-client
+
+[8-renegotiate-aead-to-aead-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = NoResumptionOnRenegotiation
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-renegotiate-aead-to-aead-client]
+CipherString = AES128-GCM-SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-8]
+ExpectedResult = Success
+HandshakeMode = RenegotiateClient
+Method = DTLS
+ResumptionExpected = No
+UseSCTP = No
+client = 8-renegotiate-aead-to-aead-client-extra
+
+[8-renegotiate-aead-to-aead-client-extra]
+RenegotiateCiphers = AES256-GCM-SHA384
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/18-dtls-renegotiate.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/18-dtls-renegotiate.conf.in
new file mode 100644
index 000000000..467d6f26c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/18-dtls-renegotiate.conf.in
@@ -0,0 +1,192 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test Renegotiation
+
+use strict;
+use warnings;
+
+package ssltests;
+use OpenSSL::Test::Utils;
+
+our @tests = ();
+
+foreach my $sctp ("No", "Yes")
+{
+ next if disabled("sctp") && $sctp eq "Yes";
+
+ my $suffix = ($sctp eq "No") ? "" : "-sctp";
+ our @tests_basic = (
+ {
+ name => "renegotiate-client-no-resume".$suffix,
+ server => {
+ "Options" => "NoResumptionOnRenegotiation"
+ },
+ client => {},
+ test => {
+ "Method" => "DTLS",
+ "UseSCTP" => $sctp,
+ "HandshakeMode" => "RenegotiateClient",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "renegotiate-client-resume".$suffix,
+ server => {},
+ client => {},
+ test => {
+ "Method" => "DTLS",
+ "UseSCTP" => $sctp,
+ "HandshakeMode" => "RenegotiateClient",
+ "ResumptionExpected" => "Yes",
+ "ExpectedResult" => "Success"
+ }
+ },
+ # Note: Unlike the TLS tests, we will never do resumption with server
+ # initiated reneg. This is because an OpenSSL DTLS client will always do a full
+ # handshake (i.e. it doesn't supply a session id) when it receives a
+ # HelloRequest. This is different to the OpenSSL TLS implementation where an
+ # OpenSSL client will always try an abbreviated handshake (i.e. it will supply
+ # the session id). This goes all the way to commit 48ae85b6f when abbreviated
+ # handshake support was first added. Neither behaviour is wrong, but the
+ # discrepancy is strange. TODO: Should we harmonise the TLS and DTLS behaviour,
+ # and if so, what to?
+ {
+ name => "renegotiate-server-resume".$suffix,
+ server => {},
+ client => {},
+ test => {
+ "Method" => "DTLS",
+ "UseSCTP" => $sctp,
+ "HandshakeMode" => "RenegotiateServer",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "renegotiate-client-auth-require".$suffix,
+ server => {
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "Require",
+ },
+ client => {
+ "Certificate" => test_pem("ee-client-chain.pem"),
+ "PrivateKey" => test_pem("ee-key.pem"),
+ },
+ test => {
+ "Method" => "DTLS",
+ "UseSCTP" => $sctp,
+ "HandshakeMode" => "RenegotiateServer",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "renegotiate-client-auth-once".$suffix,
+ server => {
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "Once",
+ },
+ client => {
+ "Certificate" => test_pem("ee-client-chain.pem"),
+ "PrivateKey" => test_pem("ee-key.pem"),
+ },
+ test => {
+ "Method" => "DTLS",
+ "UseSCTP" => $sctp,
+ "HandshakeMode" => "RenegotiateServer",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ }
+ );
+ push @tests, @tests_basic;
+
+ next if disabled("dtls1_2");
+ our @tests_dtls1_2 = (
+ {
+ name => "renegotiate-aead-to-non-aead".$suffix,
+ server => {
+ "Options" => "NoResumptionOnRenegotiation"
+ },
+ client => {
+ "CipherString" => "AES128-GCM-SHA256",
+ extra => {
+ "RenegotiateCiphers" => "AES128-SHA"
+ }
+ },
+ test => {
+ "Method" => "DTLS",
+ "UseSCTP" => $sctp,
+ "HandshakeMode" => "RenegotiateClient",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "renegotiate-non-aead-to-aead".$suffix,
+ server => {
+ "Options" => "NoResumptionOnRenegotiation"
+ },
+ client => {
+ "CipherString" => "AES128-SHA",
+ extra => {
+ "RenegotiateCiphers" => "AES128-GCM-SHA256"
+ }
+ },
+ test => {
+ "Method" => "DTLS",
+ "UseSCTP" => $sctp,
+ "HandshakeMode" => "RenegotiateClient",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "renegotiate-non-aead-to-non-aead".$suffix,
+ server => {
+ "Options" => "NoResumptionOnRenegotiation"
+ },
+ client => {
+ "CipherString" => "AES128-SHA",
+ extra => {
+ "RenegotiateCiphers" => "AES256-SHA"
+ }
+ },
+ test => {
+ "Method" => "DTLS",
+ "UseSCTP" => $sctp,
+ "HandshakeMode" => "RenegotiateClient",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "renegotiate-aead-to-aead".$suffix,
+ server => {
+ "Options" => "NoResumptionOnRenegotiation"
+ },
+ client => {
+ "CipherString" => "AES128-GCM-SHA256",
+ extra => {
+ "RenegotiateCiphers" => "AES256-GCM-SHA384"
+ }
+ },
+ test => {
+ "Method" => "DTLS",
+ "UseSCTP" => $sctp,
+ "HandshakeMode" => "RenegotiateClient",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ );
+ push @tests, @tests_dtls1_2;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/19-mac-then-encrypt.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/19-mac-then-encrypt.conf
new file mode 100644
index 000000000..0dd384ea6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/19-mac-then-encrypt.conf
@@ -0,0 +1,162 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 6
+
+test-0 = 0-disable-encrypt-then-mac-server-sha
+test-1 = 1-disable-encrypt-then-mac-client-sha
+test-2 = 2-disable-encrypt-then-mac-both-sha
+test-3 = 3-disable-encrypt-then-mac-server-sha2
+test-4 = 4-disable-encrypt-then-mac-client-sha2
+test-5 = 5-disable-encrypt-then-mac-both-sha2
+# ===========================================================
+
+[0-disable-encrypt-then-mac-server-sha]
+ssl_conf = 0-disable-encrypt-then-mac-server-sha-ssl
+
+[0-disable-encrypt-then-mac-server-sha-ssl]
+server = 0-disable-encrypt-then-mac-server-sha-server
+client = 0-disable-encrypt-then-mac-server-sha-client
+
+[0-disable-encrypt-then-mac-server-sha-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -EncryptThenMac
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-disable-encrypt-then-mac-server-sha-client]
+CipherString = AES128-SHA
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[1-disable-encrypt-then-mac-client-sha]
+ssl_conf = 1-disable-encrypt-then-mac-client-sha-ssl
+
+[1-disable-encrypt-then-mac-client-sha-ssl]
+server = 1-disable-encrypt-then-mac-client-sha-server
+client = 1-disable-encrypt-then-mac-client-sha-client
+
+[1-disable-encrypt-then-mac-client-sha-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-disable-encrypt-then-mac-client-sha-client]
+CipherString = AES128-SHA
+MaxProtocol = TLSv1.2
+Options = -EncryptThenMac
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[2-disable-encrypt-then-mac-both-sha]
+ssl_conf = 2-disable-encrypt-then-mac-both-sha-ssl
+
+[2-disable-encrypt-then-mac-both-sha-ssl]
+server = 2-disable-encrypt-then-mac-both-sha-server
+client = 2-disable-encrypt-then-mac-both-sha-client
+
+[2-disable-encrypt-then-mac-both-sha-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -EncryptThenMac
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-disable-encrypt-then-mac-both-sha-client]
+CipherString = AES128-SHA
+MaxProtocol = TLSv1.2
+Options = -EncryptThenMac
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[3-disable-encrypt-then-mac-server-sha2]
+ssl_conf = 3-disable-encrypt-then-mac-server-sha2-ssl
+
+[3-disable-encrypt-then-mac-server-sha2-ssl]
+server = 3-disable-encrypt-then-mac-server-sha2-server
+client = 3-disable-encrypt-then-mac-server-sha2-client
+
+[3-disable-encrypt-then-mac-server-sha2-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -EncryptThenMac
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-disable-encrypt-then-mac-server-sha2-client]
+CipherString = AES128-SHA256
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[4-disable-encrypt-then-mac-client-sha2]
+ssl_conf = 4-disable-encrypt-then-mac-client-sha2-ssl
+
+[4-disable-encrypt-then-mac-client-sha2-ssl]
+server = 4-disable-encrypt-then-mac-client-sha2-server
+client = 4-disable-encrypt-then-mac-client-sha2-client
+
+[4-disable-encrypt-then-mac-client-sha2-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[4-disable-encrypt-then-mac-client-sha2-client]
+CipherString = AES128-SHA256
+MaxProtocol = TLSv1.2
+Options = -EncryptThenMac
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-4]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[5-disable-encrypt-then-mac-both-sha2]
+ssl_conf = 5-disable-encrypt-then-mac-both-sha2-ssl
+
+[5-disable-encrypt-then-mac-both-sha2-ssl]
+server = 5-disable-encrypt-then-mac-both-sha2-server
+client = 5-disable-encrypt-then-mac-both-sha2-client
+
+[5-disable-encrypt-then-mac-both-sha2-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = -EncryptThenMac
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[5-disable-encrypt-then-mac-both-sha2-client]
+CipherString = AES128-SHA256
+MaxProtocol = TLSv1.2
+Options = -EncryptThenMac
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+ExpectedResult = Success
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/19-mac-then-encrypt.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/19-mac-then-encrypt.conf.in
new file mode 100644
index 000000000..dfe529c9c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/19-mac-then-encrypt.conf.in
@@ -0,0 +1,102 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## SSL test configurations
+
+package ssltests;
+
+use OpenSSL::Test::Utils;
+
+our @tests = (
+ {
+ name => "disable-encrypt-then-mac-server-sha",
+ server => {
+ "Options" => "-EncryptThenMac",
+ },
+ client => {
+ "CipherString" => "AES128-SHA",
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ },
+ },
+ {
+ name => "disable-encrypt-then-mac-client-sha",
+ server => {
+ },
+ client => {
+ "CipherString" => "AES128-SHA",
+ "Options" => "-EncryptThenMac",
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ },
+ },
+ {
+ name => "disable-encrypt-then-mac-both-sha",
+ server => {
+ "Options" => "-EncryptThenMac",
+ },
+ client => {
+ "CipherString" => "AES128-SHA",
+ "Options" => "-EncryptThenMac",
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ },
+ },
+);
+
+my @tests_tls1_2 = (
+ {
+ name => "disable-encrypt-then-mac-server-sha2",
+ server => {
+ "Options" => "-EncryptThenMac",
+ },
+ client => {
+ "CipherString" => "AES128-SHA256",
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ },
+ },
+ {
+ name => "disable-encrypt-then-mac-client-sha2",
+ server => {
+ },
+ client => {
+ "CipherString" => "AES128-SHA256",
+ "Options" => "-EncryptThenMac",
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ },
+ },
+ {
+ name => "disable-encrypt-then-mac-both-sha2",
+ server => {
+ "Options" => "-EncryptThenMac",
+ },
+ client => {
+ "CipherString" => "AES128-SHA256",
+ "Options" => "-EncryptThenMac",
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ },
+ },
+);
+
+push @tests, @tests_tls1_2 unless disabled("tls1_2");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/20-cert-select.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/20-cert-select.conf
new file mode 100644
index 000000000..757b973e5
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/20-cert-select.conf
@@ -0,0 +1,1816 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 56
+
+test-0 = 0-ECDSA CipherString Selection
+test-1 = 1-ECDSA CipherString Selection
+test-2 = 2-ECDSA CipherString Selection
+test-3 = 3-Ed25519 CipherString and Signature Algorithm Selection
+test-4 = 4-Ed448 CipherString and Signature Algorithm Selection
+test-5 = 5-ECDSA with brainpool
+test-6 = 6-RSA CipherString Selection
+test-7 = 7-RSA-PSS Certificate CipherString Selection
+test-8 = 8-P-256 CipherString and Signature Algorithm Selection
+test-9 = 9-Ed25519 CipherString and Curves Selection
+test-10 = 10-Ed448 CipherString and Curves Selection
+test-11 = 11-ECDSA CipherString Selection, no ECDSA certificate
+test-12 = 12-ECDSA Signature Algorithm Selection
+test-13 = 13-ECDSA Signature Algorithm Selection SHA384
+test-14 = 14-ECDSA Signature Algorithm Selection SHA1
+test-15 = 15-ECDSA Signature Algorithm Selection compressed point
+test-16 = 16-ECDSA Signature Algorithm Selection, no ECDSA certificate
+test-17 = 17-RSA Signature Algorithm Selection
+test-18 = 18-RSA-PSS Signature Algorithm Selection
+test-19 = 19-RSA-PSS Certificate Legacy Signature Algorithm Selection
+test-20 = 20-RSA-PSS Certificate Unified Signature Algorithm Selection
+test-21 = 21-Only RSA-PSS Certificate
+test-22 = 22-Only RSA-PSS Certificate Valid Signature Algorithms
+test-23 = 23-RSA-PSS Certificate, no PSS signature algorithms
+test-24 = 24-Only RSA-PSS Restricted Certificate
+test-25 = 25-RSA-PSS Restricted Certificate Valid Signature Algorithms
+test-26 = 26-RSA-PSS Restricted Cert client prefers invalid Signature Algorithm
+test-27 = 27-RSA-PSS Restricted Certificate Invalid Signature Algorithms
+test-28 = 28-RSA key exchange with all RSA certificate types
+test-29 = 29-RSA key exchange with only RSA-PSS certificate
+test-30 = 30-Suite B P-256 Hash Algorithm Selection
+test-31 = 31-Suite B P-384 Hash Algorithm Selection
+test-32 = 32-TLS 1.2 Ed25519 Client Auth
+test-33 = 33-TLS 1.2 Ed448 Client Auth
+test-34 = 34-Only RSA-PSS Certificate, TLS v1.1
+test-35 = 35-TLS 1.3 ECDSA Signature Algorithm Selection
+test-36 = 36-TLS 1.3 ECDSA Signature Algorithm Selection compressed point
+test-37 = 37-TLS 1.3 ECDSA Signature Algorithm Selection SHA1
+test-38 = 38-TLS 1.3 ECDSA Signature Algorithm Selection with PSS
+test-39 = 39-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS
+test-40 = 40-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate
+test-41 = 41-TLS 1.3 RSA Signature Algorithm Selection, no PSS
+test-42 = 42-TLS 1.3 RSA-PSS Signature Algorithm Selection
+test-43 = 43-TLS 1.3 Ed25519 Signature Algorithm Selection
+test-44 = 44-TLS 1.3 Ed448 Signature Algorithm Selection
+test-45 = 45-TLS 1.3 Ed25519 CipherString and Groups Selection
+test-46 = 46-TLS 1.3 Ed448 CipherString and Groups Selection
+test-47 = 47-TLS 1.3 RSA Client Auth Signature Algorithm Selection
+test-48 = 48-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names
+test-49 = 49-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection
+test-50 = 50-TLS 1.3 Ed25519 Client Auth
+test-51 = 51-TLS 1.3 Ed448 Client Auth
+test-52 = 52-TLS 1.3 ECDSA with brainpool
+test-53 = 53-TLS 1.2 DSA Certificate Test
+test-54 = 54-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms
+test-55 = 55-TLS 1.3 DSA Certificate Test
+# ===========================================================
+
+[0-ECDSA CipherString Selection]
+ssl_conf = 0-ECDSA CipherString Selection-ssl
+
+[0-ECDSA CipherString Selection-ssl]
+server = 0-ECDSA CipherString Selection-server
+client = 0-ECDSA CipherString Selection-client
+
+[0-ECDSA CipherString Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-ECDSA CipherString Selection-client]
+CipherString = aECDSA
+MaxProtocol = TLSv1.2
+RequestCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = Success
+ExpectedServerCANames = empty
+ExpectedServerCertType = P-256
+ExpectedServerSignType = EC
+
+
+# ===========================================================
+
+[1-ECDSA CipherString Selection]
+ssl_conf = 1-ECDSA CipherString Selection-ssl
+
+[1-ECDSA CipherString Selection-ssl]
+server = 1-ECDSA CipherString Selection-server
+client = 1-ECDSA CipherString Selection-client
+
+[1-ECDSA CipherString Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Groups = P-384
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-ECDSA CipherString Selection-client]
+CipherString = aECDSA
+Groups = P-256:P-384
+MaxProtocol = TLSv1.2
+RequestCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedResult = Success
+ExpectedServerCANames = empty
+ExpectedServerCertType = P-256
+ExpectedServerSignType = EC
+
+
+# ===========================================================
+
+[2-ECDSA CipherString Selection]
+ssl_conf = 2-ECDSA CipherString Selection-ssl
+
+[2-ECDSA CipherString Selection-ssl]
+server = 2-ECDSA CipherString Selection-server
+client = 2-ECDSA CipherString Selection-client
+
+[2-ECDSA CipherString Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Groups = P-256:P-384
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-ECDSA CipherString Selection-client]
+CipherString = aECDSA
+Groups = P-384
+MaxProtocol = TLSv1.2
+RequestCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[3-Ed25519 CipherString and Signature Algorithm Selection]
+ssl_conf = 3-Ed25519 CipherString and Signature Algorithm Selection-ssl
+
+[3-Ed25519 CipherString and Signature Algorithm Selection-ssl]
+server = 3-Ed25519 CipherString and Signature Algorithm Selection-server
+client = 3-Ed25519 CipherString and Signature Algorithm Selection-client
+
+[3-Ed25519 CipherString and Signature Algorithm Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-Ed25519 CipherString and Signature Algorithm Selection-client]
+CipherString = aECDSA
+MaxProtocol = TLSv1.2
+RequestCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+SignatureAlgorithms = ed25519:ECDSA+SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedResult = Success
+ExpectedServerCANames = empty
+ExpectedServerCertType = Ed25519
+ExpectedServerSignType = Ed25519
+
+
+# ===========================================================
+
+[4-Ed448 CipherString and Signature Algorithm Selection]
+ssl_conf = 4-Ed448 CipherString and Signature Algorithm Selection-ssl
+
+[4-Ed448 CipherString and Signature Algorithm Selection-ssl]
+server = 4-Ed448 CipherString and Signature Algorithm Selection-server
+client = 4-Ed448 CipherString and Signature Algorithm Selection-client
+
+[4-Ed448 CipherString and Signature Algorithm Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[4-Ed448 CipherString and Signature Algorithm Selection-client]
+CipherString = aECDSA
+MaxProtocol = TLSv1.2
+RequestCAFile = ${ENV::TEST_CERTS_DIR}/root-ed448-cert.pem
+SignatureAlgorithms = ed448:ECDSA+SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-ed448-cert.pem
+VerifyMode = Peer
+
+[test-4]
+ExpectedResult = Success
+ExpectedServerCANames = empty
+ExpectedServerCertType = Ed448
+ExpectedServerSignType = Ed448
+
+
+# ===========================================================
+
+[5-ECDSA with brainpool]
+ssl_conf = 5-ECDSA with brainpool-ssl
+
+[5-ECDSA with brainpool-ssl]
+server = 5-ECDSA with brainpool-server
+client = 5-ECDSA with brainpool-client
+
+[5-ECDSA with brainpool-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-brainpoolP256r1-cert.pem
+CipherString = DEFAULT
+Groups = brainpoolP256r1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-brainpoolP256r1-key.pem
+
+[5-ECDSA with brainpool-client]
+CipherString = aECDSA
+Groups = brainpoolP256r1
+RequestCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+ExpectedResult = Success
+ExpectedServerCANames = empty
+ExpectedServerCertType = brainpoolP256r1
+ExpectedServerSignType = EC
+
+
+# ===========================================================
+
+[6-RSA CipherString Selection]
+ssl_conf = 6-RSA CipherString Selection-ssl
+
+[6-RSA CipherString Selection-ssl]
+server = 6-RSA CipherString Selection-server
+client = 6-RSA CipherString Selection-client
+
+[6-RSA CipherString Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-RSA CipherString Selection-client]
+CipherString = aRSA
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-6]
+ExpectedResult = Success
+ExpectedServerCertType = RSA
+ExpectedServerSignType = RSA-PSS
+
+
+# ===========================================================
+
+[7-RSA-PSS Certificate CipherString Selection]
+ssl_conf = 7-RSA-PSS Certificate CipherString Selection-ssl
+
+[7-RSA-PSS Certificate CipherString Selection-ssl]
+server = 7-RSA-PSS Certificate CipherString Selection-server
+client = 7-RSA-PSS Certificate CipherString Selection-client
+
+[7-RSA-PSS Certificate CipherString Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.2
+PSS.Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-cert.pem
+PSS.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-key.pem
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-RSA-PSS Certificate CipherString Selection-client]
+CipherString = aRSA
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-7]
+ExpectedResult = Success
+ExpectedServerCertType = RSA-PSS
+ExpectedServerSignType = RSA-PSS
+
+
+# ===========================================================
+
+[8-P-256 CipherString and Signature Algorithm Selection]
+ssl_conf = 8-P-256 CipherString and Signature Algorithm Selection-ssl
+
+[8-P-256 CipherString and Signature Algorithm Selection-ssl]
+server = 8-P-256 CipherString and Signature Algorithm Selection-server
+client = 8-P-256 CipherString and Signature Algorithm Selection-client
+
+[8-P-256 CipherString and Signature Algorithm Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-P-256 CipherString and Signature Algorithm Selection-client]
+CipherString = aECDSA
+MaxProtocol = TLSv1.2
+SignatureAlgorithms = ECDSA+SHA256:ed25519
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-8]
+ExpectedResult = Success
+ExpectedServerCertType = P-256
+ExpectedServerSignHash = SHA256
+ExpectedServerSignType = EC
+
+
+# ===========================================================
+
+[9-Ed25519 CipherString and Curves Selection]
+ssl_conf = 9-Ed25519 CipherString and Curves Selection-ssl
+
+[9-Ed25519 CipherString and Curves Selection-ssl]
+server = 9-Ed25519 CipherString and Curves Selection-server
+client = 9-Ed25519 CipherString and Curves Selection-client
+
+[9-Ed25519 CipherString and Curves Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[9-Ed25519 CipherString and Curves Selection-client]
+CipherString = aECDSA
+Curves = X25519
+MaxProtocol = TLSv1.2
+SignatureAlgorithms = ECDSA+SHA256:ed25519
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-9]
+ExpectedResult = Success
+ExpectedServerCertType = Ed25519
+ExpectedServerSignType = Ed25519
+
+
+# ===========================================================
+
+[10-Ed448 CipherString and Curves Selection]
+ssl_conf = 10-Ed448 CipherString and Curves Selection-ssl
+
+[10-Ed448 CipherString and Curves Selection-ssl]
+server = 10-Ed448 CipherString and Curves Selection-server
+client = 10-Ed448 CipherString and Curves Selection-client
+
+[10-Ed448 CipherString and Curves Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[10-Ed448 CipherString and Curves Selection-client]
+CipherString = aECDSA
+Curves = X448
+MaxProtocol = TLSv1.2
+SignatureAlgorithms = ECDSA+SHA256:ed448
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-ed448-cert.pem
+VerifyMode = Peer
+
+[test-10]
+ExpectedResult = Success
+ExpectedServerCertType = Ed448
+ExpectedServerSignType = Ed448
+
+
+# ===========================================================
+
+[11-ECDSA CipherString Selection, no ECDSA certificate]
+ssl_conf = 11-ECDSA CipherString Selection, no ECDSA certificate-ssl
+
+[11-ECDSA CipherString Selection, no ECDSA certificate-ssl]
+server = 11-ECDSA CipherString Selection, no ECDSA certificate-server
+client = 11-ECDSA CipherString Selection, no ECDSA certificate-client
+
+[11-ECDSA CipherString Selection, no ECDSA certificate-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[11-ECDSA CipherString Selection, no ECDSA certificate-client]
+CipherString = aECDSA
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-11]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[12-ECDSA Signature Algorithm Selection]
+ssl_conf = 12-ECDSA Signature Algorithm Selection-ssl
+
+[12-ECDSA Signature Algorithm Selection-ssl]
+server = 12-ECDSA Signature Algorithm Selection-server
+client = 12-ECDSA Signature Algorithm Selection-client
+
+[12-ECDSA Signature Algorithm Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[12-ECDSA Signature Algorithm Selection-client]
+CipherString = DEFAULT
+SignatureAlgorithms = ECDSA+SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-12]
+ExpectedResult = Success
+ExpectedServerCertType = P-256
+ExpectedServerSignHash = SHA256
+ExpectedServerSignType = EC
+
+
+# ===========================================================
+
+[13-ECDSA Signature Algorithm Selection SHA384]
+ssl_conf = 13-ECDSA Signature Algorithm Selection SHA384-ssl
+
+[13-ECDSA Signature Algorithm Selection SHA384-ssl]
+server = 13-ECDSA Signature Algorithm Selection SHA384-server
+client = 13-ECDSA Signature Algorithm Selection SHA384-client
+
+[13-ECDSA Signature Algorithm Selection SHA384-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[13-ECDSA Signature Algorithm Selection SHA384-client]
+CipherString = DEFAULT
+SignatureAlgorithms = ECDSA+SHA384
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-13]
+ExpectedResult = Success
+ExpectedServerCertType = P-256
+ExpectedServerSignHash = SHA384
+ExpectedServerSignType = EC
+
+
+# ===========================================================
+
+[14-ECDSA Signature Algorithm Selection SHA1]
+ssl_conf = 14-ECDSA Signature Algorithm Selection SHA1-ssl
+
+[14-ECDSA Signature Algorithm Selection SHA1-ssl]
+server = 14-ECDSA Signature Algorithm Selection SHA1-server
+client = 14-ECDSA Signature Algorithm Selection SHA1-client
+
+[14-ECDSA Signature Algorithm Selection SHA1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[14-ECDSA Signature Algorithm Selection SHA1-client]
+CipherString = DEFAULT
+SignatureAlgorithms = ECDSA+SHA1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-14]
+ExpectedResult = Success
+ExpectedServerCertType = P-256
+ExpectedServerSignHash = SHA1
+ExpectedServerSignType = EC
+
+
+# ===========================================================
+
+[15-ECDSA Signature Algorithm Selection compressed point]
+ssl_conf = 15-ECDSA Signature Algorithm Selection compressed point-ssl
+
+[15-ECDSA Signature Algorithm Selection compressed point-ssl]
+server = 15-ECDSA Signature Algorithm Selection compressed point-server
+client = 15-ECDSA Signature Algorithm Selection compressed point-client
+
+[15-ECDSA Signature Algorithm Selection compressed point-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-cecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-cecdsa-key.pem
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[15-ECDSA Signature Algorithm Selection compressed point-client]
+CipherString = DEFAULT
+SignatureAlgorithms = ECDSA+SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-15]
+ExpectedResult = Success
+ExpectedServerCertType = P-256
+ExpectedServerSignHash = SHA256
+ExpectedServerSignType = EC
+
+
+# ===========================================================
+
+[16-ECDSA Signature Algorithm Selection, no ECDSA certificate]
+ssl_conf = 16-ECDSA Signature Algorithm Selection, no ECDSA certificate-ssl
+
+[16-ECDSA Signature Algorithm Selection, no ECDSA certificate-ssl]
+server = 16-ECDSA Signature Algorithm Selection, no ECDSA certificate-server
+client = 16-ECDSA Signature Algorithm Selection, no ECDSA certificate-client
+
+[16-ECDSA Signature Algorithm Selection, no ECDSA certificate-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[16-ECDSA Signature Algorithm Selection, no ECDSA certificate-client]
+CipherString = DEFAULT
+SignatureAlgorithms = ECDSA+SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-16]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[17-RSA Signature Algorithm Selection]
+ssl_conf = 17-RSA Signature Algorithm Selection-ssl
+
+[17-RSA Signature Algorithm Selection-ssl]
+server = 17-RSA Signature Algorithm Selection-server
+client = 17-RSA Signature Algorithm Selection-client
+
+[17-RSA Signature Algorithm Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[17-RSA Signature Algorithm Selection-client]
+CipherString = DEFAULT
+SignatureAlgorithms = RSA+SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-17]
+ExpectedResult = Success
+ExpectedServerCertType = RSA
+ExpectedServerSignHash = SHA256
+ExpectedServerSignType = RSA
+
+
+# ===========================================================
+
+[18-RSA-PSS Signature Algorithm Selection]
+ssl_conf = 18-RSA-PSS Signature Algorithm Selection-ssl
+
+[18-RSA-PSS Signature Algorithm Selection-ssl]
+server = 18-RSA-PSS Signature Algorithm Selection-server
+client = 18-RSA-PSS Signature Algorithm Selection-client
+
+[18-RSA-PSS Signature Algorithm Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[18-RSA-PSS Signature Algorithm Selection-client]
+CipherString = DEFAULT
+SignatureAlgorithms = RSA-PSS+SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-18]
+ExpectedResult = Success
+ExpectedServerCertType = RSA
+ExpectedServerSignHash = SHA256
+ExpectedServerSignType = RSA-PSS
+
+
+# ===========================================================
+
+[19-RSA-PSS Certificate Legacy Signature Algorithm Selection]
+ssl_conf = 19-RSA-PSS Certificate Legacy Signature Algorithm Selection-ssl
+
+[19-RSA-PSS Certificate Legacy Signature Algorithm Selection-ssl]
+server = 19-RSA-PSS Certificate Legacy Signature Algorithm Selection-server
+client = 19-RSA-PSS Certificate Legacy Signature Algorithm Selection-client
+
+[19-RSA-PSS Certificate Legacy Signature Algorithm Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.2
+PSS.Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-cert.pem
+PSS.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-key.pem
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[19-RSA-PSS Certificate Legacy Signature Algorithm Selection-client]
+CipherString = DEFAULT
+SignatureAlgorithms = RSA-PSS+SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-19]
+ExpectedResult = Success
+ExpectedServerCertType = RSA
+ExpectedServerSignHash = SHA256
+ExpectedServerSignType = RSA-PSS
+
+
+# ===========================================================
+
+[20-RSA-PSS Certificate Unified Signature Algorithm Selection]
+ssl_conf = 20-RSA-PSS Certificate Unified Signature Algorithm Selection-ssl
+
+[20-RSA-PSS Certificate Unified Signature Algorithm Selection-ssl]
+server = 20-RSA-PSS Certificate Unified Signature Algorithm Selection-server
+client = 20-RSA-PSS Certificate Unified Signature Algorithm Selection-client
+
+[20-RSA-PSS Certificate Unified Signature Algorithm Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.2
+PSS.Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-cert.pem
+PSS.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-key.pem
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[20-RSA-PSS Certificate Unified Signature Algorithm Selection-client]
+CipherString = DEFAULT
+SignatureAlgorithms = rsa_pss_pss_sha256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-20]
+ExpectedResult = Success
+ExpectedServerCertType = RSA-PSS
+ExpectedServerSignHash = SHA256
+ExpectedServerSignType = RSA-PSS
+
+
+# ===========================================================
+
+[21-Only RSA-PSS Certificate]
+ssl_conf = 21-Only RSA-PSS Certificate-ssl
+
+[21-Only RSA-PSS Certificate-ssl]
+server = 21-Only RSA-PSS Certificate-server
+client = 21-Only RSA-PSS Certificate-client
+
+[21-Only RSA-PSS Certificate-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-cert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-key.pem
+
+[21-Only RSA-PSS Certificate-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-21]
+ExpectedResult = Success
+ExpectedServerCertType = RSA-PSS
+ExpectedServerSignHash = SHA256
+ExpectedServerSignType = RSA-PSS
+
+
+# ===========================================================
+
+[22-Only RSA-PSS Certificate Valid Signature Algorithms]
+ssl_conf = 22-Only RSA-PSS Certificate Valid Signature Algorithms-ssl
+
+[22-Only RSA-PSS Certificate Valid Signature Algorithms-ssl]
+server = 22-Only RSA-PSS Certificate Valid Signature Algorithms-server
+client = 22-Only RSA-PSS Certificate Valid Signature Algorithms-client
+
+[22-Only RSA-PSS Certificate Valid Signature Algorithms-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-cert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-key.pem
+
+[22-Only RSA-PSS Certificate Valid Signature Algorithms-client]
+CipherString = DEFAULT
+SignatureAlgorithms = rsa_pss_pss_sha512
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-22]
+ExpectedResult = Success
+ExpectedServerCertType = RSA-PSS
+ExpectedServerSignHash = SHA512
+ExpectedServerSignType = RSA-PSS
+
+
+# ===========================================================
+
+[23-RSA-PSS Certificate, no PSS signature algorithms]
+ssl_conf = 23-RSA-PSS Certificate, no PSS signature algorithms-ssl
+
+[23-RSA-PSS Certificate, no PSS signature algorithms-ssl]
+server = 23-RSA-PSS Certificate, no PSS signature algorithms-server
+client = 23-RSA-PSS Certificate, no PSS signature algorithms-client
+
+[23-RSA-PSS Certificate, no PSS signature algorithms-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-cert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-key.pem
+
+[23-RSA-PSS Certificate, no PSS signature algorithms-client]
+CipherString = DEFAULT
+SignatureAlgorithms = RSA+SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-23]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[24-Only RSA-PSS Restricted Certificate]
+ssl_conf = 24-Only RSA-PSS Restricted Certificate-ssl
+
+[24-Only RSA-PSS Restricted Certificate-ssl]
+server = 24-Only RSA-PSS Restricted Certificate-server
+client = 24-Only RSA-PSS Restricted Certificate-client
+
+[24-Only RSA-PSS Restricted Certificate-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-restrict-cert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-restrict-key.pem
+
+[24-Only RSA-PSS Restricted Certificate-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-24]
+ExpectedResult = Success
+ExpectedServerCertType = RSA-PSS
+ExpectedServerSignHash = SHA256
+ExpectedServerSignType = RSA-PSS
+
+
+# ===========================================================
+
+[25-RSA-PSS Restricted Certificate Valid Signature Algorithms]
+ssl_conf = 25-RSA-PSS Restricted Certificate Valid Signature Algorithms-ssl
+
+[25-RSA-PSS Restricted Certificate Valid Signature Algorithms-ssl]
+server = 25-RSA-PSS Restricted Certificate Valid Signature Algorithms-server
+client = 25-RSA-PSS Restricted Certificate Valid Signature Algorithms-client
+
+[25-RSA-PSS Restricted Certificate Valid Signature Algorithms-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-restrict-cert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-restrict-key.pem
+
+[25-RSA-PSS Restricted Certificate Valid Signature Algorithms-client]
+CipherString = DEFAULT
+SignatureAlgorithms = rsa_pss_pss_sha256:rsa_pss_pss_sha512
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-25]
+ExpectedResult = Success
+ExpectedServerCertType = RSA-PSS
+ExpectedServerSignHash = SHA256
+ExpectedServerSignType = RSA-PSS
+
+
+# ===========================================================
+
+[26-RSA-PSS Restricted Cert client prefers invalid Signature Algorithm]
+ssl_conf = 26-RSA-PSS Restricted Cert client prefers invalid Signature Algorithm-ssl
+
+[26-RSA-PSS Restricted Cert client prefers invalid Signature Algorithm-ssl]
+server = 26-RSA-PSS Restricted Cert client prefers invalid Signature Algorithm-server
+client = 26-RSA-PSS Restricted Cert client prefers invalid Signature Algorithm-client
+
+[26-RSA-PSS Restricted Cert client prefers invalid Signature Algorithm-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-restrict-cert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-restrict-key.pem
+
+[26-RSA-PSS Restricted Cert client prefers invalid Signature Algorithm-client]
+CipherString = DEFAULT
+SignatureAlgorithms = rsa_pss_pss_sha512:rsa_pss_pss_sha256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-26]
+ExpectedResult = Success
+ExpectedServerCertType = RSA-PSS
+ExpectedServerSignHash = SHA256
+ExpectedServerSignType = RSA-PSS
+
+
+# ===========================================================
+
+[27-RSA-PSS Restricted Certificate Invalid Signature Algorithms]
+ssl_conf = 27-RSA-PSS Restricted Certificate Invalid Signature Algorithms-ssl
+
+[27-RSA-PSS Restricted Certificate Invalid Signature Algorithms-ssl]
+server = 27-RSA-PSS Restricted Certificate Invalid Signature Algorithms-server
+client = 27-RSA-PSS Restricted Certificate Invalid Signature Algorithms-client
+
+[27-RSA-PSS Restricted Certificate Invalid Signature Algorithms-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-restrict-cert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-restrict-key.pem
+
+[27-RSA-PSS Restricted Certificate Invalid Signature Algorithms-client]
+CipherString = DEFAULT
+SignatureAlgorithms = rsa_pss_pss_sha512
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-27]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[28-RSA key exchange with all RSA certificate types]
+ssl_conf = 28-RSA key exchange with all RSA certificate types-ssl
+
+[28-RSA key exchange with all RSA certificate types-ssl]
+server = 28-RSA key exchange with all RSA certificate types-server
+client = 28-RSA key exchange with all RSA certificate types-client
+
+[28-RSA key exchange with all RSA certificate types-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PSS.Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-cert.pem
+PSS.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-key.pem
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[28-RSA key exchange with all RSA certificate types-client]
+CipherString = kRSA
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-28]
+ExpectedResult = Success
+ExpectedServerCertType = RSA
+
+
+# ===========================================================
+
+[29-RSA key exchange with only RSA-PSS certificate]
+ssl_conf = 29-RSA key exchange with only RSA-PSS certificate-ssl
+
+[29-RSA key exchange with only RSA-PSS certificate-ssl]
+server = 29-RSA key exchange with only RSA-PSS certificate-server
+client = 29-RSA key exchange with only RSA-PSS certificate-client
+
+[29-RSA key exchange with only RSA-PSS certificate-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-cert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-key.pem
+
+[29-RSA key exchange with only RSA-PSS certificate-client]
+CipherString = kRSA
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-29]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[30-Suite B P-256 Hash Algorithm Selection]
+ssl_conf = 30-Suite B P-256 Hash Algorithm Selection-ssl
+
+[30-Suite B P-256 Hash Algorithm Selection-ssl]
+server = 30-Suite B P-256 Hash Algorithm Selection-server
+client = 30-Suite B P-256 Hash Algorithm Selection-client
+
+[30-Suite B P-256 Hash Algorithm Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = SUITEB128
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/p256-server-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/p256-server-key.pem
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[30-Suite B P-256 Hash Algorithm Selection-client]
+CipherString = DEFAULT
+SignatureAlgorithms = ECDSA+SHA384:ECDSA+SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/p384-root.pem
+VerifyMode = Peer
+
+[test-30]
+ExpectedResult = Success
+ExpectedServerCertType = P-256
+ExpectedServerSignHash = SHA256
+ExpectedServerSignType = EC
+
+
+# ===========================================================
+
+[31-Suite B P-384 Hash Algorithm Selection]
+ssl_conf = 31-Suite B P-384 Hash Algorithm Selection-ssl
+
+[31-Suite B P-384 Hash Algorithm Selection-ssl]
+server = 31-Suite B P-384 Hash Algorithm Selection-server
+client = 31-Suite B P-384 Hash Algorithm Selection-client
+
+[31-Suite B P-384 Hash Algorithm Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = SUITEB128
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/p384-server-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/p384-server-key.pem
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[31-Suite B P-384 Hash Algorithm Selection-client]
+CipherString = DEFAULT
+SignatureAlgorithms = ECDSA+SHA256:ECDSA+SHA384
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/p384-root.pem
+VerifyMode = Peer
+
+[test-31]
+ExpectedResult = Success
+ExpectedServerCertType = P-384
+ExpectedServerSignHash = SHA384
+ExpectedServerSignType = EC
+
+
+# ===========================================================
+
+[32-TLS 1.2 Ed25519 Client Auth]
+ssl_conf = 32-TLS 1.2 Ed25519 Client Auth-ssl
+
+[32-TLS 1.2 Ed25519 Client Auth-ssl]
+server = 32-TLS 1.2 Ed25519 Client Auth-server
+client = 32-TLS 1.2 Ed25519 Client Auth-client
+
+[32-TLS 1.2 Ed25519 Client Auth-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Require
+
+[32-TLS 1.2 Ed25519 Client Auth-client]
+CipherString = DEFAULT
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/client-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/client-ed25519-key.pem
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-32]
+ExpectedClientCertType = Ed25519
+ExpectedClientSignType = Ed25519
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[33-TLS 1.2 Ed448 Client Auth]
+ssl_conf = 33-TLS 1.2 Ed448 Client Auth-ssl
+
+[33-TLS 1.2 Ed448 Client Auth-ssl]
+server = 33-TLS 1.2 Ed448 Client Auth-server
+client = 33-TLS 1.2 Ed448 Client Auth-client
+
+[33-TLS 1.2 Ed448 Client Auth-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Require
+
+[33-TLS 1.2 Ed448 Client Auth-client]
+CipherString = DEFAULT
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/client-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/client-ed448-key.pem
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-33]
+ExpectedClientCertType = Ed448
+ExpectedClientSignType = Ed448
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[34-Only RSA-PSS Certificate, TLS v1.1]
+ssl_conf = 34-Only RSA-PSS Certificate, TLS v1.1-ssl
+
+[34-Only RSA-PSS Certificate, TLS v1.1-ssl]
+server = 34-Only RSA-PSS Certificate, TLS v1.1-server
+client = 34-Only RSA-PSS Certificate, TLS v1.1-client
+
+[34-Only RSA-PSS Certificate, TLS v1.1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-cert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-key.pem
+
+[34-Only RSA-PSS Certificate, TLS v1.1-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-34]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[35-TLS 1.3 ECDSA Signature Algorithm Selection]
+ssl_conf = 35-TLS 1.3 ECDSA Signature Algorithm Selection-ssl
+
+[35-TLS 1.3 ECDSA Signature Algorithm Selection-ssl]
+server = 35-TLS 1.3 ECDSA Signature Algorithm Selection-server
+client = 35-TLS 1.3 ECDSA Signature Algorithm Selection-client
+
+[35-TLS 1.3 ECDSA Signature Algorithm Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[35-TLS 1.3 ECDSA Signature Algorithm Selection-client]
+CipherString = DEFAULT
+SignatureAlgorithms = ECDSA+SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-35]
+ExpectedResult = Success
+ExpectedServerCANames = empty
+ExpectedServerCertType = P-256
+ExpectedServerSignHash = SHA256
+ExpectedServerSignType = EC
+
+
+# ===========================================================
+
+[36-TLS 1.3 ECDSA Signature Algorithm Selection compressed point]
+ssl_conf = 36-TLS 1.3 ECDSA Signature Algorithm Selection compressed point-ssl
+
+[36-TLS 1.3 ECDSA Signature Algorithm Selection compressed point-ssl]
+server = 36-TLS 1.3 ECDSA Signature Algorithm Selection compressed point-server
+client = 36-TLS 1.3 ECDSA Signature Algorithm Selection compressed point-client
+
+[36-TLS 1.3 ECDSA Signature Algorithm Selection compressed point-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-cecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-cecdsa-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[36-TLS 1.3 ECDSA Signature Algorithm Selection compressed point-client]
+CipherString = DEFAULT
+SignatureAlgorithms = ECDSA+SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-36]
+ExpectedResult = Success
+ExpectedServerCANames = empty
+ExpectedServerCertType = P-256
+ExpectedServerSignHash = SHA256
+ExpectedServerSignType = EC
+
+
+# ===========================================================
+
+[37-TLS 1.3 ECDSA Signature Algorithm Selection SHA1]
+ssl_conf = 37-TLS 1.3 ECDSA Signature Algorithm Selection SHA1-ssl
+
+[37-TLS 1.3 ECDSA Signature Algorithm Selection SHA1-ssl]
+server = 37-TLS 1.3 ECDSA Signature Algorithm Selection SHA1-server
+client = 37-TLS 1.3 ECDSA Signature Algorithm Selection SHA1-client
+
+[37-TLS 1.3 ECDSA Signature Algorithm Selection SHA1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[37-TLS 1.3 ECDSA Signature Algorithm Selection SHA1-client]
+CipherString = DEFAULT
+SignatureAlgorithms = ECDSA+SHA1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-37]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[38-TLS 1.3 ECDSA Signature Algorithm Selection with PSS]
+ssl_conf = 38-TLS 1.3 ECDSA Signature Algorithm Selection with PSS-ssl
+
+[38-TLS 1.3 ECDSA Signature Algorithm Selection with PSS-ssl]
+server = 38-TLS 1.3 ECDSA Signature Algorithm Selection with PSS-server
+client = 38-TLS 1.3 ECDSA Signature Algorithm Selection with PSS-client
+
+[38-TLS 1.3 ECDSA Signature Algorithm Selection with PSS-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[38-TLS 1.3 ECDSA Signature Algorithm Selection with PSS-client]
+CipherString = DEFAULT
+RequestCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+SignatureAlgorithms = ECDSA+SHA256:RSA-PSS+SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-38]
+ExpectedResult = Success
+ExpectedServerCANames = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+ExpectedServerCertType = P-256
+ExpectedServerSignHash = SHA256
+ExpectedServerSignType = EC
+
+
+# ===========================================================
+
+[39-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS]
+ssl_conf = 39-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS-ssl
+
+[39-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS-ssl]
+server = 39-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS-server
+client = 39-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS-client
+
+[39-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[39-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS-client]
+CipherString = DEFAULT
+SignatureAlgorithms = ECDSA+SHA384:RSA-PSS+SHA384
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-39]
+ExpectedResult = Success
+ExpectedServerCertType = RSA
+ExpectedServerSignHash = SHA384
+ExpectedServerSignType = RSA-PSS
+
+
+# ===========================================================
+
+[40-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate]
+ssl_conf = 40-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate-ssl
+
+[40-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate-ssl]
+server = 40-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate-server
+client = 40-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate-client
+
+[40-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[40-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate-client]
+CipherString = DEFAULT
+SignatureAlgorithms = ECDSA+SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-40]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[41-TLS 1.3 RSA Signature Algorithm Selection, no PSS]
+ssl_conf = 41-TLS 1.3 RSA Signature Algorithm Selection, no PSS-ssl
+
+[41-TLS 1.3 RSA Signature Algorithm Selection, no PSS-ssl]
+server = 41-TLS 1.3 RSA Signature Algorithm Selection, no PSS-server
+client = 41-TLS 1.3 RSA Signature Algorithm Selection, no PSS-client
+
+[41-TLS 1.3 RSA Signature Algorithm Selection, no PSS-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[41-TLS 1.3 RSA Signature Algorithm Selection, no PSS-client]
+CipherString = DEFAULT
+SignatureAlgorithms = RSA+SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-41]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[42-TLS 1.3 RSA-PSS Signature Algorithm Selection]
+ssl_conf = 42-TLS 1.3 RSA-PSS Signature Algorithm Selection-ssl
+
+[42-TLS 1.3 RSA-PSS Signature Algorithm Selection-ssl]
+server = 42-TLS 1.3 RSA-PSS Signature Algorithm Selection-server
+client = 42-TLS 1.3 RSA-PSS Signature Algorithm Selection-client
+
+[42-TLS 1.3 RSA-PSS Signature Algorithm Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[42-TLS 1.3 RSA-PSS Signature Algorithm Selection-client]
+CipherString = DEFAULT
+SignatureAlgorithms = RSA-PSS+SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-42]
+ExpectedResult = Success
+ExpectedServerCertType = RSA
+ExpectedServerSignHash = SHA256
+ExpectedServerSignType = RSA-PSS
+
+
+# ===========================================================
+
+[43-TLS 1.3 Ed25519 Signature Algorithm Selection]
+ssl_conf = 43-TLS 1.3 Ed25519 Signature Algorithm Selection-ssl
+
+[43-TLS 1.3 Ed25519 Signature Algorithm Selection-ssl]
+server = 43-TLS 1.3 Ed25519 Signature Algorithm Selection-server
+client = 43-TLS 1.3 Ed25519 Signature Algorithm Selection-client
+
+[43-TLS 1.3 Ed25519 Signature Algorithm Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[43-TLS 1.3 Ed25519 Signature Algorithm Selection-client]
+CipherString = DEFAULT
+SignatureAlgorithms = ed25519
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-43]
+ExpectedResult = Success
+ExpectedServerCertType = Ed25519
+ExpectedServerSignType = Ed25519
+
+
+# ===========================================================
+
+[44-TLS 1.3 Ed448 Signature Algorithm Selection]
+ssl_conf = 44-TLS 1.3 Ed448 Signature Algorithm Selection-ssl
+
+[44-TLS 1.3 Ed448 Signature Algorithm Selection-ssl]
+server = 44-TLS 1.3 Ed448 Signature Algorithm Selection-server
+client = 44-TLS 1.3 Ed448 Signature Algorithm Selection-client
+
+[44-TLS 1.3 Ed448 Signature Algorithm Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[44-TLS 1.3 Ed448 Signature Algorithm Selection-client]
+CipherString = DEFAULT
+SignatureAlgorithms = ed448
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-ed448-cert.pem
+VerifyMode = Peer
+
+[test-44]
+ExpectedResult = Success
+ExpectedServerCertType = Ed448
+ExpectedServerSignType = Ed448
+
+
+# ===========================================================
+
+[45-TLS 1.3 Ed25519 CipherString and Groups Selection]
+ssl_conf = 45-TLS 1.3 Ed25519 CipherString and Groups Selection-ssl
+
+[45-TLS 1.3 Ed25519 CipherString and Groups Selection-ssl]
+server = 45-TLS 1.3 Ed25519 CipherString and Groups Selection-server
+client = 45-TLS 1.3 Ed25519 CipherString and Groups Selection-client
+
+[45-TLS 1.3 Ed25519 CipherString and Groups Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[45-TLS 1.3 Ed25519 CipherString and Groups Selection-client]
+CipherString = DEFAULT
+Groups = X25519
+SignatureAlgorithms = ECDSA+SHA256:ed25519
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-45]
+ExpectedResult = Success
+ExpectedServerCertType = P-256
+ExpectedServerSignType = EC
+
+
+# ===========================================================
+
+[46-TLS 1.3 Ed448 CipherString and Groups Selection]
+ssl_conf = 46-TLS 1.3 Ed448 CipherString and Groups Selection-ssl
+
+[46-TLS 1.3 Ed448 CipherString and Groups Selection-ssl]
+server = 46-TLS 1.3 Ed448 CipherString and Groups Selection-server
+client = 46-TLS 1.3 Ed448 CipherString and Groups Selection-client
+
+[46-TLS 1.3 Ed448 CipherString and Groups Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[46-TLS 1.3 Ed448 CipherString and Groups Selection-client]
+CipherString = DEFAULT
+Groups = X448
+SignatureAlgorithms = ECDSA+SHA256:ed448
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-46]
+ExpectedResult = Success
+ExpectedServerCertType = P-256
+ExpectedServerSignType = EC
+
+
+# ===========================================================
+
+[47-TLS 1.3 RSA Client Auth Signature Algorithm Selection]
+ssl_conf = 47-TLS 1.3 RSA Client Auth Signature Algorithm Selection-ssl
+
+[47-TLS 1.3 RSA Client Auth Signature Algorithm Selection-ssl]
+server = 47-TLS 1.3 RSA Client Auth Signature Algorithm Selection-server
+client = 47-TLS 1.3 RSA Client Auth Signature Algorithm Selection-client
+
+[47-TLS 1.3 RSA Client Auth Signature Algorithm Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ClientSignatureAlgorithms = PSS+SHA256
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Require
+
+[47-TLS 1.3 RSA Client Auth Signature Algorithm Selection-client]
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/ee-ecdsa-client-chain.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-ecdsa-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+RSA.Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+RSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-47]
+ExpectedClientCANames = empty
+ExpectedClientCertType = RSA
+ExpectedClientSignHash = SHA256
+ExpectedClientSignType = RSA-PSS
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[48-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names]
+ssl_conf = 48-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names-ssl
+
+[48-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names-ssl]
+server = 48-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names-server
+client = 48-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names-client
+
+[48-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ClientSignatureAlgorithms = PSS+SHA256
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+RequestCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Require
+
+[48-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names-client]
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/ee-ecdsa-client-chain.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-ecdsa-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+RSA.Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+RSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-48]
+ExpectedClientCANames = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+ExpectedClientCertType = RSA
+ExpectedClientSignHash = SHA256
+ExpectedClientSignType = RSA-PSS
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[49-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection]
+ssl_conf = 49-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection-ssl
+
+[49-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection-ssl]
+server = 49-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection-server
+client = 49-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection-client
+
+[49-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ClientSignatureAlgorithms = ECDSA+SHA256
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Require
+
+[49-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection-client]
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/ee-ecdsa-client-chain.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-ecdsa-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+RSA.Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+RSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-49]
+ExpectedClientCertType = P-256
+ExpectedClientSignHash = SHA256
+ExpectedClientSignType = EC
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[50-TLS 1.3 Ed25519 Client Auth]
+ssl_conf = 50-TLS 1.3 Ed25519 Client Auth-ssl
+
+[50-TLS 1.3 Ed25519 Client Auth-ssl]
+server = 50-TLS 1.3 Ed25519 Client Auth-server
+client = 50-TLS 1.3 Ed25519 Client Auth-client
+
+[50-TLS 1.3 Ed25519 Client Auth-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Require
+
+[50-TLS 1.3 Ed25519 Client Auth-client]
+CipherString = DEFAULT
+EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/client-ed25519-cert.pem
+EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/client-ed25519-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-50]
+ExpectedClientCertType = Ed25519
+ExpectedClientSignType = Ed25519
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[51-TLS 1.3 Ed448 Client Auth]
+ssl_conf = 51-TLS 1.3 Ed448 Client Auth-ssl
+
+[51-TLS 1.3 Ed448 Client Auth-ssl]
+server = 51-TLS 1.3 Ed448 Client Auth-server
+client = 51-TLS 1.3 Ed448 Client Auth-client
+
+[51-TLS 1.3 Ed448 Client Auth-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Require
+
+[51-TLS 1.3 Ed448 Client Auth-client]
+CipherString = DEFAULT
+EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/client-ed448-cert.pem
+EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/client-ed448-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-51]
+ExpectedClientCertType = Ed448
+ExpectedClientSignType = Ed448
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[52-TLS 1.3 ECDSA with brainpool]
+ssl_conf = 52-TLS 1.3 ECDSA with brainpool-ssl
+
+[52-TLS 1.3 ECDSA with brainpool-ssl]
+server = 52-TLS 1.3 ECDSA with brainpool-server
+client = 52-TLS 1.3 ECDSA with brainpool-client
+
+[52-TLS 1.3 ECDSA with brainpool-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-brainpoolP256r1-cert.pem
+CipherString = DEFAULT
+Groups = brainpoolP256r1
+PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-brainpoolP256r1-key.pem
+
+[52-TLS 1.3 ECDSA with brainpool-client]
+CipherString = DEFAULT
+Groups = brainpoolP256r1
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+RequestCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-52]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[53-TLS 1.2 DSA Certificate Test]
+ssl_conf = 53-TLS 1.2 DSA Certificate Test-ssl
+
+[53-TLS 1.2 DSA Certificate Test-ssl]
+server = 53-TLS 1.2 DSA Certificate Test-server
+client = 53-TLS 1.2 DSA Certificate Test-client
+
+[53-TLS 1.2 DSA Certificate Test-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = ALL
+DHParameters = ${ENV::TEST_CERTS_DIR}/dhp2048.pem
+DSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-dsa-cert.pem
+DSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-dsa-key.pem
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[53-TLS 1.2 DSA Certificate Test-client]
+CipherString = ALL
+SignatureAlgorithms = DSA+SHA256:DSA+SHA1
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-53]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[54-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms]
+ssl_conf = 54-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms-ssl
+
+[54-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms-ssl]
+server = 54-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms-server
+client = 54-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms-client
+
+[54-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ClientSignatureAlgorithms = ECDSA+SHA1:DSA+SHA256:RSA+SHA256
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Request
+
+[54-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-54]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[55-TLS 1.3 DSA Certificate Test]
+ssl_conf = 55-TLS 1.3 DSA Certificate Test-ssl
+
+[55-TLS 1.3 DSA Certificate Test-ssl]
+server = 55-TLS 1.3 DSA Certificate Test-server
+client = 55-TLS 1.3 DSA Certificate Test-client
+
+[55-TLS 1.3 DSA Certificate Test-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = ALL
+DSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-dsa-cert.pem
+DSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-dsa-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[55-TLS 1.3 DSA Certificate Test-client]
+CipherString = ALL
+SignatureAlgorithms = DSA+SHA1:DSA+SHA256:ECDSA+SHA256
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-55]
+ExpectedResult = ServerFail
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/20-cert-select.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/20-cert-select.conf.in
new file mode 100644
index 000000000..24093548c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/20-cert-select.conf.in
@@ -0,0 +1,933 @@
+# -*- mode: perl; -*-
+
+## SSL test configurations
+
+
+use strict;
+use warnings;
+
+package ssltests;
+use OpenSSL::Test::Utils;
+
+my $server = {
+ "ECDSA.Certificate" => test_pem("server-ecdsa-cert.pem"),
+ "ECDSA.PrivateKey" => test_pem("server-ecdsa-key.pem"),
+ "Ed25519.Certificate" => test_pem("server-ed25519-cert.pem"),
+ "Ed25519.PrivateKey" => test_pem("server-ed25519-key.pem"),
+ "Ed448.Certificate" => test_pem("server-ed448-cert.pem"),
+ "Ed448.PrivateKey" => test_pem("server-ed448-key.pem"),
+ "MaxProtocol" => "TLSv1.2"
+};
+
+my $server_pss = {
+ "PSS.Certificate" => test_pem("server-pss-cert.pem"),
+ "PSS.PrivateKey" => test_pem("server-pss-key.pem"),
+ "ECDSA.Certificate" => test_pem("server-ecdsa-cert.pem"),
+ "ECDSA.PrivateKey" => test_pem("server-ecdsa-key.pem"),
+ "Ed25519.Certificate" => test_pem("server-ed25519-cert.pem"),
+ "Ed25519.PrivateKey" => test_pem("server-ed25519-key.pem"),
+ "Ed448.Certificate" => test_pem("server-ed448-cert.pem"),
+ "Ed448.PrivateKey" => test_pem("server-ed448-key.pem"),
+ "MaxProtocol" => "TLSv1.2"
+};
+
+my $server_pss_only = {
+ "Certificate" => test_pem("server-pss-cert.pem"),
+ "PrivateKey" => test_pem("server-pss-key.pem"),
+};
+
+my $server_pss_restrict_only = {
+ "Certificate" => test_pem("server-pss-restrict-cert.pem"),
+ "PrivateKey" => test_pem("server-pss-restrict-key.pem"),
+};
+
+
+my $server_rsa_all = {
+ "PSS.Certificate" => test_pem("server-pss-cert.pem"),
+ "PSS.PrivateKey" => test_pem("server-pss-key.pem"),
+ "Certificate" => test_pem("servercert.pem"),
+ "PrivateKey" => test_pem("serverkey.pem"),
+};
+
+our @tests = (
+ {
+ name => "ECDSA CipherString Selection",
+ server => $server,
+ client => {
+ "CipherString" => "aECDSA",
+ "MaxProtocol" => "TLSv1.2",
+ "RequestCAFile" => test_pem("root-cert.pem"),
+ },
+ test => {
+ "ExpectedServerCertType" =>, "P-256",
+ "ExpectedServerSignType" =>, "EC",
+ # Note: certificate_authorities not sent for TLS < 1.3
+ "ExpectedServerCANames" =>, "empty",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "ECDSA CipherString Selection",
+ server => {
+ "ECDSA.Certificate" => test_pem("server-ecdsa-cert.pem"),
+ "ECDSA.PrivateKey" => test_pem("server-ecdsa-key.pem"),
+ "MaxProtocol" => "TLSv1.2",
+ #Deliberately set supported_groups to one not in the cert. This
+ #should be tolerated
+ "Groups" => "P-384"
+ },
+ client => {
+ "CipherString" => "aECDSA",
+ "MaxProtocol" => "TLSv1.2",
+ "Groups" => "P-256:P-384",
+ "RequestCAFile" => test_pem("root-cert.pem"),
+ },
+ test => {
+ "ExpectedServerCertType" =>, "P-256",
+ "ExpectedServerSignType" =>, "EC",
+ # Note: certificate_authorities not sent for TLS < 1.3
+ "ExpectedServerCANames" =>, "empty",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "ECDSA CipherString Selection",
+ server => {
+ "ECDSA.Certificate" => test_pem("server-ecdsa-cert.pem"),
+ "ECDSA.PrivateKey" => test_pem("server-ecdsa-key.pem"),
+ "MaxProtocol" => "TLSv1.2",
+ "Groups" => "P-256:P-384"
+ },
+ client => {
+ "CipherString" => "aECDSA",
+ "MaxProtocol" => "TLSv1.2",
+ #Deliberately set groups to not include the certificate group. This
+ #should fail
+ "Groups" => "P-384",
+ "RequestCAFile" => test_pem("root-cert.pem"),
+ },
+ test => {
+ "ExpectedResult" => "ServerFail"
+ },
+ },
+ {
+ name => "Ed25519 CipherString and Signature Algorithm Selection",
+ server => $server,
+ client => {
+ "CipherString" => "aECDSA",
+ "MaxProtocol" => "TLSv1.2",
+ "SignatureAlgorithms" => "ed25519:ECDSA+SHA256",
+ "RequestCAFile" => test_pem("root-cert.pem"),
+ },
+ test => {
+ "ExpectedServerCertType" =>, "Ed25519",
+ "ExpectedServerSignType" =>, "Ed25519",
+ # Note: certificate_authorities not sent for TLS < 1.3
+ "ExpectedServerCANames" =>, "empty",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "Ed448 CipherString and Signature Algorithm Selection",
+ server => $server,
+ client => {
+ "CipherString" => "aECDSA",
+ "MaxProtocol" => "TLSv1.2",
+ "SignatureAlgorithms" => "ed448:ECDSA+SHA256",
+ "RequestCAFile" => test_pem("root-ed448-cert.pem"),
+ "VerifyCAFile" => test_pem("root-ed448-cert.pem"),
+ },
+ test => {
+ "ExpectedServerCertType" =>, "Ed448",
+ "ExpectedServerSignType" =>, "Ed448",
+ # Note: certificate_authorities not sent for TLS < 1.3
+ "ExpectedServerCANames" =>, "empty",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "ECDSA with brainpool",
+ server => {
+ "Certificate" => test_pem("server-ecdsa-brainpoolP256r1-cert.pem"),
+ "PrivateKey" => test_pem("server-ecdsa-brainpoolP256r1-key.pem"),
+ "Groups" => "brainpoolP256r1",
+ },
+ client => {
+ #We don't restrict this to TLSv1.2, although use of brainpool
+ #should force this anyway so that this should succeed
+ "CipherString" => "aECDSA",
+ "RequestCAFile" => test_pem("root-cert.pem"),
+ "Groups" => "brainpoolP256r1",
+ },
+ test => {
+ "ExpectedServerCertType" =>, "brainpoolP256r1",
+ "ExpectedServerSignType" =>, "EC",
+ # Note: certificate_authorities not sent for TLS < 1.3
+ "ExpectedServerCANames" =>, "empty",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "RSA CipherString Selection",
+ server => $server,
+ client => {
+ "CipherString" => "aRSA",
+ "MaxProtocol" => "TLSv1.2",
+ },
+ test => {
+ "ExpectedServerCertType" =>, "RSA",
+ "ExpectedServerSignType" =>, "RSA-PSS",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "RSA-PSS Certificate CipherString Selection",
+ server => $server_pss,
+ client => {
+ "CipherString" => "aRSA",
+ "MaxProtocol" => "TLSv1.2",
+ },
+ test => {
+ "ExpectedServerCertType" =>, "RSA-PSS",
+ "ExpectedServerSignType" =>, "RSA-PSS",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "P-256 CipherString and Signature Algorithm Selection",
+ server => $server,
+ client => {
+ "CipherString" => "aECDSA",
+ "MaxProtocol" => "TLSv1.2",
+ "SignatureAlgorithms" => "ECDSA+SHA256:ed25519",
+ },
+ test => {
+ "ExpectedServerCertType" => "P-256",
+ "ExpectedServerSignHash" => "SHA256",
+ "ExpectedServerSignType" => "EC",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "Ed25519 CipherString and Curves Selection",
+ server => $server,
+ client => {
+ "CipherString" => "aECDSA",
+ "MaxProtocol" => "TLSv1.2",
+ "SignatureAlgorithms" => "ECDSA+SHA256:ed25519",
+ # Excluding P-256 from the supported curves list means server
+ # certificate should be Ed25519 and not P-256
+ "Curves" => "X25519"
+ },
+ test => {
+ "ExpectedServerCertType" =>, "Ed25519",
+ "ExpectedServerSignType" =>, "Ed25519",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "Ed448 CipherString and Curves Selection",
+ server => $server,
+ client => {
+ "CipherString" => "aECDSA",
+ "MaxProtocol" => "TLSv1.2",
+ "SignatureAlgorithms" => "ECDSA+SHA256:ed448",
+ "VerifyCAFile" => test_pem("root-ed448-cert.pem"),
+ # Excluding P-256 from the supported curves list means server
+ # certificate should be Ed25519 and not P-256
+ "Curves" => "X448"
+ },
+ test => {
+ "ExpectedServerCertType" =>, "Ed448",
+ "ExpectedServerSignType" =>, "Ed448",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "ECDSA CipherString Selection, no ECDSA certificate",
+ server => {
+ "MaxProtocol" => "TLSv1.2"
+ },
+ client => {
+ "CipherString" => "aECDSA",
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedResult" => "ServerFail"
+ },
+ },
+ {
+ name => "ECDSA Signature Algorithm Selection",
+ server => $server,
+ client => {
+ "SignatureAlgorithms" => "ECDSA+SHA256",
+ },
+ test => {
+ "ExpectedServerCertType" => "P-256",
+ "ExpectedServerSignHash" => "SHA256",
+ "ExpectedServerSignType" => "EC",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "ECDSA Signature Algorithm Selection SHA384",
+ server => $server,
+ client => {
+ "SignatureAlgorithms" => "ECDSA+SHA384",
+ },
+ test => {
+ "ExpectedServerCertType" => "P-256",
+ "ExpectedServerSignHash" => "SHA384",
+ "ExpectedServerSignType" => "EC",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "ECDSA Signature Algorithm Selection SHA1",
+ server => $server,
+ client => {
+ "SignatureAlgorithms" => "ECDSA+SHA1",
+ },
+ test => {
+ "ExpectedServerCertType" => "P-256",
+ "ExpectedServerSignHash" => "SHA1",
+ "ExpectedServerSignType" => "EC",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "ECDSA Signature Algorithm Selection compressed point",
+ server => {
+ "ECDSA.Certificate" => test_pem("server-cecdsa-cert.pem"),
+ "ECDSA.PrivateKey" => test_pem("server-cecdsa-key.pem"),
+ "MaxProtocol" => "TLSv1.2"
+ },
+ client => {
+ "SignatureAlgorithms" => "ECDSA+SHA256",
+ },
+ test => {
+ "ExpectedServerCertType" => "P-256",
+ "ExpectedServerSignHash" => "SHA256",
+ "ExpectedServerSignType" => "EC",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "ECDSA Signature Algorithm Selection, no ECDSA certificate",
+ server => {
+ "MaxProtocol" => "TLSv1.2"
+ },
+ client => {
+ "SignatureAlgorithms" => "ECDSA+SHA256",
+ },
+ test => {
+ "ExpectedResult" => "ServerFail"
+ },
+ },
+ {
+ name => "RSA Signature Algorithm Selection",
+ server => $server,
+ client => {
+ "SignatureAlgorithms" => "RSA+SHA256",
+ },
+ test => {
+ "ExpectedServerCertType" => "RSA",
+ "ExpectedServerSignHash" => "SHA256",
+ "ExpectedServerSignType" => "RSA",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "RSA-PSS Signature Algorithm Selection",
+ server => $server,
+ client => {
+ "SignatureAlgorithms" => "RSA-PSS+SHA256",
+ },
+ test => {
+ "ExpectedServerCertType" => "RSA",
+ "ExpectedServerSignHash" => "SHA256",
+ "ExpectedServerSignType" => "RSA-PSS",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "RSA-PSS Certificate Legacy Signature Algorithm Selection",
+ server => $server_pss,
+ client => {
+ "SignatureAlgorithms" => "RSA-PSS+SHA256",
+ },
+ test => {
+ "ExpectedServerCertType" => "RSA",
+ "ExpectedServerSignHash" => "SHA256",
+ "ExpectedServerSignType" => "RSA-PSS",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "RSA-PSS Certificate Unified Signature Algorithm Selection",
+ server => $server_pss,
+ client => {
+ "SignatureAlgorithms" => "rsa_pss_pss_sha256",
+ },
+ test => {
+ "ExpectedServerCertType" => "RSA-PSS",
+ "ExpectedServerSignHash" => "SHA256",
+ "ExpectedServerSignType" => "RSA-PSS",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "Only RSA-PSS Certificate",
+ server => $server_pss_only,
+ client => {},
+ test => {
+ "ExpectedServerCertType" => "RSA-PSS",
+ "ExpectedServerSignHash" => "SHA256",
+ "ExpectedServerSignType" => "RSA-PSS",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "Only RSA-PSS Certificate Valid Signature Algorithms",
+ server => $server_pss_only,
+ client => {
+ "SignatureAlgorithms" => "rsa_pss_pss_sha512",
+ },
+ test => {
+ "ExpectedServerCertType" => "RSA-PSS",
+ "ExpectedServerSignHash" => "SHA512",
+ "ExpectedServerSignType" => "RSA-PSS",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "RSA-PSS Certificate, no PSS signature algorithms",
+ server => $server_pss_only,
+ client => {
+ "SignatureAlgorithms" => "RSA+SHA256",
+ },
+ test => {
+ "ExpectedResult" => "ServerFail"
+ },
+ },
+ {
+ name => "Only RSA-PSS Restricted Certificate",
+ server => $server_pss_restrict_only,
+ client => {},
+ test => {
+ "ExpectedServerCertType" => "RSA-PSS",
+ "ExpectedServerSignHash" => "SHA256",
+ "ExpectedServerSignType" => "RSA-PSS",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "RSA-PSS Restricted Certificate Valid Signature Algorithms",
+ server => $server_pss_restrict_only,
+ client => {
+ "SignatureAlgorithms" => "rsa_pss_pss_sha256:rsa_pss_pss_sha512",
+ },
+ test => {
+ "ExpectedServerCertType" => "RSA-PSS",
+ "ExpectedServerSignHash" => "SHA256",
+ "ExpectedServerSignType" => "RSA-PSS",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "RSA-PSS Restricted Cert client prefers invalid Signature Algorithm",
+ server => $server_pss_restrict_only,
+ client => {
+ "SignatureAlgorithms" => "rsa_pss_pss_sha512:rsa_pss_pss_sha256",
+ },
+ test => {
+ "ExpectedServerCertType" => "RSA-PSS",
+ "ExpectedServerSignHash" => "SHA256",
+ "ExpectedServerSignType" => "RSA-PSS",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "RSA-PSS Restricted Certificate Invalid Signature Algorithms",
+ server => $server_pss_restrict_only,
+ client => {
+ "SignatureAlgorithms" => "rsa_pss_pss_sha512",
+ },
+ test => {
+ "ExpectedResult" => "ServerFail"
+ },
+ },
+ {
+ name => "RSA key exchange with all RSA certificate types",
+ server => $server_rsa_all,
+ client => {
+ "CipherString" => "kRSA",
+ "MaxProtocol" => "TLSv1.2",
+ },
+ test => {
+ "ExpectedServerCertType" =>, "RSA",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "RSA key exchange with only RSA-PSS certificate",
+ server => $server_pss_only,
+ client => {
+ "CipherString" => "kRSA",
+ "MaxProtocol" => "TLSv1.2",
+ },
+ test => {
+ "ExpectedResult" => "ServerFail"
+ },
+ },
+ {
+ name => "Suite B P-256 Hash Algorithm Selection",
+ server => {
+ "ECDSA.Certificate" => test_pem("p256-server-cert.pem"),
+ "ECDSA.PrivateKey" => test_pem("p256-server-key.pem"),
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "SUITEB128"
+ },
+ client => {
+ "VerifyCAFile" => test_pem("p384-root.pem"),
+ "SignatureAlgorithms" => "ECDSA+SHA384:ECDSA+SHA256"
+ },
+ test => {
+ "ExpectedServerCertType" => "P-256",
+ "ExpectedServerSignHash" => "SHA256",
+ "ExpectedServerSignType" => "EC",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "Suite B P-384 Hash Algorithm Selection",
+ server => {
+ "ECDSA.Certificate" => test_pem("p384-server-cert.pem"),
+ "ECDSA.PrivateKey" => test_pem("p384-server-key.pem"),
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "SUITEB128"
+ },
+ client => {
+ "VerifyCAFile" => test_pem("p384-root.pem"),
+ "SignatureAlgorithms" => "ECDSA+SHA256:ECDSA+SHA384"
+ },
+ test => {
+ "ExpectedServerCertType" => "P-384",
+ "ExpectedServerSignHash" => "SHA384",
+ "ExpectedServerSignType" => "EC",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "TLS 1.2 Ed25519 Client Auth",
+ server => {
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "Require"
+ },
+ client => {
+ "Ed25519.Certificate" => test_pem("client-ed25519-cert.pem"),
+ "Ed25519.PrivateKey" => test_pem("client-ed25519-key.pem"),
+ "MinProtocol" => "TLSv1.2",
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedClientCertType" => "Ed25519",
+ "ExpectedClientSignType" => "Ed25519",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "TLS 1.2 Ed448 Client Auth",
+ server => {
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "Require"
+ },
+ client => {
+ "Ed448.Certificate" => test_pem("client-ed448-cert.pem"),
+ "Ed448.PrivateKey" => test_pem("client-ed448-key.pem"),
+ "MinProtocol" => "TLSv1.2",
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "ExpectedClientCertType" => "Ed448",
+ "ExpectedClientSignType" => "Ed448",
+ "ExpectedResult" => "Success"
+ },
+ },
+);
+
+my @tests_tls_1_1 = (
+ {
+ name => "Only RSA-PSS Certificate, TLS v1.1",
+ server => $server_pss_only,
+ client => {
+ "MaxProtocol" => "TLSv1.1",
+ },
+ test => {
+ "ExpectedResult" => "ServerFail"
+ },
+ },
+);
+
+push @tests, @tests_tls_1_1 unless disabled("tls1_1");
+
+my $server_tls_1_3 = {
+ "ECDSA.Certificate" => test_pem("server-ecdsa-cert.pem"),
+ "ECDSA.PrivateKey" => test_pem("server-ecdsa-key.pem"),
+ "Ed25519.Certificate" => test_pem("server-ed25519-cert.pem"),
+ "Ed25519.PrivateKey" => test_pem("server-ed25519-key.pem"),
+ "Ed448.Certificate" => test_pem("server-ed448-cert.pem"),
+ "Ed448.PrivateKey" => test_pem("server-ed448-key.pem"),
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3"
+};
+
+my $server_tls_1_3_pss = {
+ "PSS.Certificate" => test_pem("server-pss-cert.pem"),
+ "PSS.PrivateKey" => test_pem("server-pss-key.pem"),
+ "ECDSA.Certificate" => test_pem("server-ecdsa-cert.pem"),
+ "ECDSA.PrivateKey" => test_pem("server-ecdsa-key.pem"),
+ "Ed25519.Certificate" => test_pem("server-ed25519-cert.pem"),
+ "Ed25519.PrivateKey" => test_pem("server-ed25519-key.pem"),
+ "Ed448.Certificate" => test_pem("server-ed448-cert.pem"),
+ "Ed448.PrivateKey" => test_pem("server-ed449-key.pem"),
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3"
+};
+
+my $client_tls_1_3 = {
+ "RSA.Certificate" => test_pem("ee-client-chain.pem"),
+ "RSA.PrivateKey" => test_pem("ee-key.pem"),
+ "ECDSA.Certificate" => test_pem("ee-ecdsa-client-chain.pem"),
+ "ECDSA.PrivateKey" => test_pem("ee-ecdsa-key.pem"),
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3"
+};
+
+my @tests_tls_1_3 = (
+ {
+ name => "TLS 1.3 ECDSA Signature Algorithm Selection",
+ server => $server_tls_1_3,
+ client => {
+ "SignatureAlgorithms" => "ECDSA+SHA256",
+ },
+ test => {
+ "ExpectedServerCertType" => "P-256",
+ "ExpectedServerSignHash" => "SHA256",
+ "ExpectedServerSignType" => "EC",
+ "ExpectedServerCANames" => "empty",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "TLS 1.3 ECDSA Signature Algorithm Selection compressed point",
+ server => {
+ "ECDSA.Certificate" => test_pem("server-cecdsa-cert.pem"),
+ "ECDSA.PrivateKey" => test_pem("server-cecdsa-key.pem"),
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3"
+ },
+ client => {
+ "SignatureAlgorithms" => "ECDSA+SHA256",
+ },
+ test => {
+ "ExpectedServerCertType" => "P-256",
+ "ExpectedServerSignHash" => "SHA256",
+ "ExpectedServerSignType" => "EC",
+ "ExpectedServerCANames" => "empty",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "TLS 1.3 ECDSA Signature Algorithm Selection SHA1",
+ server => $server_tls_1_3,
+ client => {
+ "SignatureAlgorithms" => "ECDSA+SHA1",
+ },
+ test => {
+ "ExpectedResult" => "ServerFail"
+ },
+ },
+ {
+ name => "TLS 1.3 ECDSA Signature Algorithm Selection with PSS",
+ server => $server_tls_1_3,
+ client => {
+ "SignatureAlgorithms" => "ECDSA+SHA256:RSA-PSS+SHA256",
+ "RequestCAFile" => test_pem("root-cert.pem"),
+ },
+ test => {
+ "ExpectedServerCertType" => "P-256",
+ "ExpectedServerSignHash" => "SHA256",
+ "ExpectedServerSignType" => "EC",
+ "ExpectedServerCANames" => test_pem("root-cert.pem"),
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS",
+ server => $server_tls_1_3,
+ client => {
+ "SignatureAlgorithms" => "ECDSA+SHA384:RSA-PSS+SHA384",
+ },
+ test => {
+ "ExpectedServerCertType" => "RSA",
+ "ExpectedServerSignHash" => "SHA384",
+ "ExpectedServerSignType" => "RSA-PSS",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate",
+ server => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3"
+ },
+ client => {
+ "SignatureAlgorithms" => "ECDSA+SHA256",
+ },
+ test => {
+ "ExpectedResult" => "ServerFail"
+ },
+ },
+ {
+ name => "TLS 1.3 RSA Signature Algorithm Selection, no PSS",
+ server => $server_tls_1_3,
+ client => {
+ "SignatureAlgorithms" => "RSA+SHA256",
+ },
+ test => {
+ "ExpectedResult" => "ServerFail"
+ },
+ },
+ {
+ name => "TLS 1.3 RSA-PSS Signature Algorithm Selection",
+ server => $server_tls_1_3,
+ client => {
+ "SignatureAlgorithms" => "RSA-PSS+SHA256",
+ },
+ test => {
+ "ExpectedServerCertType" => "RSA",
+ "ExpectedServerSignHash" => "SHA256",
+ "ExpectedServerSignType" => "RSA-PSS",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "TLS 1.3 Ed25519 Signature Algorithm Selection",
+ server => $server_tls_1_3,
+ client => {
+ "SignatureAlgorithms" => "ed25519",
+ },
+ test => {
+ "ExpectedServerCertType" => "Ed25519",
+ "ExpectedServerSignType" => "Ed25519",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "TLS 1.3 Ed448 Signature Algorithm Selection",
+ server => $server_tls_1_3,
+ client => {
+ "SignatureAlgorithms" => "ed448",
+ "VerifyCAFile" => test_pem("root-ed448-cert.pem"),
+ },
+ test => {
+ "ExpectedServerCertType" => "Ed448",
+ "ExpectedServerSignType" => "Ed448",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "TLS 1.3 Ed25519 CipherString and Groups Selection",
+ server => $server_tls_1_3,
+ client => {
+ "SignatureAlgorithms" => "ECDSA+SHA256:ed25519",
+ # Excluding P-256 from the supported groups list should
+ # mean server still uses a P-256 certificate because supported
+ # groups is not used in signature selection for TLS 1.3
+ "Groups" => "X25519"
+ },
+ test => {
+ "ExpectedServerCertType" =>, "P-256",
+ "ExpectedServerSignType" =>, "EC",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "TLS 1.3 Ed448 CipherString and Groups Selection",
+ server => $server_tls_1_3,
+ client => {
+ "SignatureAlgorithms" => "ECDSA+SHA256:ed448",
+ # Excluding P-256 from the supported groups list should
+ # mean server still uses a P-256 certificate because supported
+ # groups is not used in signature selection for TLS 1.3
+ "Groups" => "X448"
+ },
+ test => {
+ "ExpectedServerCertType" =>, "P-256",
+ "ExpectedServerSignType" =>, "EC",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "TLS 1.3 RSA Client Auth Signature Algorithm Selection",
+ server => {
+ "ClientSignatureAlgorithms" => "PSS+SHA256",
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "Require"
+ },
+ client => $client_tls_1_3,
+ test => {
+ "ExpectedClientCertType" => "RSA",
+ "ExpectedClientSignHash" => "SHA256",
+ "ExpectedClientSignType" => "RSA-PSS",
+ "ExpectedClientCANames" => "empty",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names",
+ server => {
+ "ClientSignatureAlgorithms" => "PSS+SHA256",
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "RequestCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "Require"
+ },
+ client => $client_tls_1_3,
+ test => {
+ "ExpectedClientCertType" => "RSA",
+ "ExpectedClientSignHash" => "SHA256",
+ "ExpectedClientSignType" => "RSA-PSS",
+ "ExpectedClientCANames" => test_pem("root-cert.pem"),
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "TLS 1.3 ECDSA Client Auth Signature Algorithm Selection",
+ server => {
+ "ClientSignatureAlgorithms" => "ECDSA+SHA256",
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "Require"
+ },
+ client => $client_tls_1_3,
+ test => {
+ "ExpectedClientCertType" => "P-256",
+ "ExpectedClientSignHash" => "SHA256",
+ "ExpectedClientSignType" => "EC",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "TLS 1.3 Ed25519 Client Auth",
+ server => {
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "Require"
+ },
+ client => {
+ "EdDSA.Certificate" => test_pem("client-ed25519-cert.pem"),
+ "EdDSA.PrivateKey" => test_pem("client-ed25519-key.pem"),
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3"
+ },
+ test => {
+ "ExpectedClientCertType" => "Ed25519",
+ "ExpectedClientSignType" => "Ed25519",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "TLS 1.3 Ed448 Client Auth",
+ server => {
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "Require"
+ },
+ client => {
+ "EdDSA.Certificate" => test_pem("client-ed448-cert.pem"),
+ "EdDSA.PrivateKey" => test_pem("client-ed448-key.pem"),
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3"
+ },
+ test => {
+ "ExpectedClientCertType" => "Ed448",
+ "ExpectedClientSignType" => "Ed448",
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "TLS 1.3 ECDSA with brainpool",
+ server => {
+ "Certificate" => test_pem("server-ecdsa-brainpoolP256r1-cert.pem"),
+ "PrivateKey" => test_pem("server-ecdsa-brainpoolP256r1-key.pem"),
+ "Groups" => "brainpoolP256r1",
+ },
+ client => {
+ "RequestCAFile" => test_pem("root-cert.pem"),
+ "Groups" => "brainpoolP256r1",
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3"
+ },
+ test => {
+ "ExpectedResult" => "ServerFail"
+ },
+ },
+);
+
+push @tests, @tests_tls_1_3 unless disabled("tls1_3");
+
+my @tests_dsa_tls_1_2 = (
+ {
+ name => "TLS 1.2 DSA Certificate Test",
+ server => {
+ "DSA.Certificate" => test_pem("server-dsa-cert.pem"),
+ "DSA.PrivateKey" => test_pem("server-dsa-key.pem"),
+ "DHParameters" => test_pem("dhp2048.pem"),
+ "MinProtocol" => "TLSv1.2",
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ALL",
+ },
+ client => {
+ "SignatureAlgorithms" => "DSA+SHA256:DSA+SHA1",
+ "CipherString" => "ALL",
+ },
+ test => {
+ "ExpectedResult" => "Success"
+ },
+ },
+);
+
+my @tests_dsa_tls_1_3 = (
+ {
+ name => "TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms",
+ server => {
+ "ClientSignatureAlgorithms" => "ECDSA+SHA1:DSA+SHA256:RSA+SHA256",
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "Request"
+ },
+ client => {},
+ test => {
+ "ExpectedResult" => "ServerFail"
+ },
+ },
+ {
+ name => "TLS 1.3 DSA Certificate Test",
+ server => {
+ "DSA.Certificate" => test_pem("server-dsa-cert.pem"),
+ "DSA.PrivateKey" => test_pem("server-dsa-key.pem"),
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "CipherString" => "ALL",
+ },
+ client => {
+ "SignatureAlgorithms" => "DSA+SHA1:DSA+SHA256:ECDSA+SHA256",
+ "CipherString" => "ALL",
+ },
+ test => {
+ "ExpectedResult" => "ServerFail"
+ },
+ },
+);
+
+if (!disabled("dsa")) {
+ push @tests, @tests_dsa_tls_1_2 unless disabled("dh");
+ push @tests, @tests_dsa_tls_1_3 unless disabled("tls1_3");
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/21-key-update.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/21-key-update.conf
new file mode 100644
index 000000000..b79eb4449
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/21-key-update.conf
@@ -0,0 +1,112 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 4
+
+test-0 = 0-update-key-client-update-not-requested
+test-1 = 1-update-key-server-update-not-requested
+test-2 = 2-update-key-client-update-requested
+test-3 = 3-update-key-server-update-requested
+# ===========================================================
+
+[0-update-key-client-update-not-requested]
+ssl_conf = 0-update-key-client-update-not-requested-ssl
+
+[0-update-key-client-update-not-requested-ssl]
+server = 0-update-key-client-update-not-requested-server
+client = 0-update-key-client-update-not-requested-client
+
+[0-update-key-client-update-not-requested-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-update-key-client-update-not-requested-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = Success
+HandshakeMode = KeyUpdateClient
+KeyUpdateType = KeyUpdateNotRequested
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[1-update-key-server-update-not-requested]
+ssl_conf = 1-update-key-server-update-not-requested-ssl
+
+[1-update-key-server-update-not-requested-ssl]
+server = 1-update-key-server-update-not-requested-server
+client = 1-update-key-server-update-not-requested-client
+
+[1-update-key-server-update-not-requested-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-update-key-server-update-not-requested-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedResult = Success
+HandshakeMode = KeyUpdateServer
+KeyUpdateType = KeyUpdateNotRequested
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[2-update-key-client-update-requested]
+ssl_conf = 2-update-key-client-update-requested-ssl
+
+[2-update-key-client-update-requested-ssl]
+server = 2-update-key-client-update-requested-server
+client = 2-update-key-client-update-requested-client
+
+[2-update-key-client-update-requested-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-update-key-client-update-requested-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedResult = Success
+HandshakeMode = KeyUpdateClient
+KeyUpdateType = KeyUpdateRequested
+ResumptionExpected = No
+
+
+# ===========================================================
+
+[3-update-key-server-update-requested]
+ssl_conf = 3-update-key-server-update-requested-ssl
+
+[3-update-key-server-update-requested-ssl]
+server = 3-update-key-server-update-requested-server
+client = 3-update-key-server-update-requested-client
+
+[3-update-key-server-update-requested-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-update-key-server-update-requested-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedResult = Success
+HandshakeMode = KeyUpdateServer
+KeyUpdateType = KeyUpdateRequested
+ResumptionExpected = No
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/21-key-update.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/21-key-update.conf.in
new file mode 100644
index 000000000..4bebb487d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/21-key-update.conf.in
@@ -0,0 +1,62 @@
+# -*- mode: perl; -*-
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test KeyUpdate
+
+use strict;
+use warnings;
+
+package ssltests;
+
+our @tests = (
+ {
+ name => "update-key-client-update-not-requested",
+ server => {},
+ client => {},
+ test => {
+ "HandshakeMode" => "KeyUpdateClient",
+ "KeyUpdateType" => "KeyUpdateNotRequested",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "update-key-server-update-not-requested",
+ server => {},
+ client => {},
+ test => {
+ "HandshakeMode" => "KeyUpdateServer",
+ "KeyUpdateType" => "KeyUpdateNotRequested",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "update-key-client-update-requested",
+ server => {},
+ client => {},
+ test => {
+ "HandshakeMode" => "KeyUpdateClient",
+ "KeyUpdateType" => "KeyUpdateRequested",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "update-key-server-update-requested",
+ server => {},
+ client => {},
+ test => {
+ "HandshakeMode" => "KeyUpdateServer",
+ "KeyUpdateType" => "KeyUpdateRequested",
+ "ResumptionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ }
+);
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/22-compression.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/22-compression.conf
new file mode 100644
index 000000000..c85d3129a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/22-compression.conf
@@ -0,0 +1,216 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 8
+
+test-0 = 0-tlsv1_3-both-compress
+test-1 = 1-tlsv1_3-client-compress
+test-2 = 2-tlsv1_3-server-compress
+test-3 = 3-tlsv1_3-neither-compress
+test-4 = 4-tlsv1_2-both-compress
+test-5 = 5-tlsv1_2-client-compress
+test-6 = 6-tlsv1_2-server-compress
+test-7 = 7-tlsv1_2-neither-compress
+# ===========================================================
+
+[0-tlsv1_3-both-compress]
+ssl_conf = 0-tlsv1_3-both-compress-ssl
+
+[0-tlsv1_3-both-compress-ssl]
+server = 0-tlsv1_3-both-compress-server
+client = 0-tlsv1_3-both-compress-client
+
+[0-tlsv1_3-both-compress-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = Compression
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-tlsv1_3-both-compress-client]
+CipherString = DEFAULT
+Options = Compression
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+CompressionExpected = No
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[1-tlsv1_3-client-compress]
+ssl_conf = 1-tlsv1_3-client-compress-ssl
+
+[1-tlsv1_3-client-compress-ssl]
+server = 1-tlsv1_3-client-compress-server
+client = 1-tlsv1_3-client-compress-client
+
+[1-tlsv1_3-client-compress-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-tlsv1_3-client-compress-client]
+CipherString = DEFAULT
+Options = Compression
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+CompressionExpected = No
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[2-tlsv1_3-server-compress]
+ssl_conf = 2-tlsv1_3-server-compress-ssl
+
+[2-tlsv1_3-server-compress-ssl]
+server = 2-tlsv1_3-server-compress-server
+client = 2-tlsv1_3-server-compress-client
+
+[2-tlsv1_3-server-compress-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = Compression
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-tlsv1_3-server-compress-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+CompressionExpected = No
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[3-tlsv1_3-neither-compress]
+ssl_conf = 3-tlsv1_3-neither-compress-ssl
+
+[3-tlsv1_3-neither-compress-ssl]
+server = 3-tlsv1_3-neither-compress-server
+client = 3-tlsv1_3-neither-compress-client
+
+[3-tlsv1_3-neither-compress-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-tlsv1_3-neither-compress-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+CompressionExpected = No
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[4-tlsv1_2-both-compress]
+ssl_conf = 4-tlsv1_2-both-compress-ssl
+
+[4-tlsv1_2-both-compress-ssl]
+server = 4-tlsv1_2-both-compress-server
+client = 4-tlsv1_2-both-compress-client
+
+[4-tlsv1_2-both-compress-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = Compression
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[4-tlsv1_2-both-compress-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = Compression
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-4]
+CompressionExpected = Yes
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[5-tlsv1_2-client-compress]
+ssl_conf = 5-tlsv1_2-client-compress-ssl
+
+[5-tlsv1_2-client-compress-ssl]
+server = 5-tlsv1_2-client-compress-server
+client = 5-tlsv1_2-client-compress-client
+
+[5-tlsv1_2-client-compress-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[5-tlsv1_2-client-compress-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = Compression
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+CompressionExpected = No
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[6-tlsv1_2-server-compress]
+ssl_conf = 6-tlsv1_2-server-compress-ssl
+
+[6-tlsv1_2-server-compress-ssl]
+server = 6-tlsv1_2-server-compress-server
+client = 6-tlsv1_2-server-compress-client
+
+[6-tlsv1_2-server-compress-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = Compression
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-tlsv1_2-server-compress-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-6]
+CompressionExpected = No
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[7-tlsv1_2-neither-compress]
+ssl_conf = 7-tlsv1_2-neither-compress-ssl
+
+[7-tlsv1_2-neither-compress-ssl]
+server = 7-tlsv1_2-neither-compress-server
+client = 7-tlsv1_2-neither-compress-client
+
+[7-tlsv1_2-neither-compress-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-tlsv1_2-neither-compress-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-7]
+CompressionExpected = No
+ExpectedResult = Success
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/22-compression.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/22-compression.conf.in
new file mode 100644
index 000000000..8d4d82334
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/22-compression.conf.in
@@ -0,0 +1,127 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test Compression
+
+use strict;
+use warnings;
+
+package ssltests;
+use OpenSSL::Test::Utils;
+
+our @tests = ();
+
+our @tests_tls1_3 = (
+ {
+ name => "tlsv1_3-both-compress",
+ server => {
+ "Options" => "Compression"
+ },
+ client => {
+ "Options" => "Compression"
+ },
+ test => {
+ "CompressionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "tlsv1_3-client-compress",
+ server => {
+ },
+ client => {
+ "Options" => "Compression"
+ },
+ test => {
+ "CompressionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "tlsv1_3-server-compress",
+ server => {
+ "Options" => "Compression"
+ },
+ client => {
+ },
+ test => {
+ "CompressionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "tlsv1_3-neither-compress",
+ server => {
+ },
+ client => {
+ },
+ test => {
+ "CompressionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+);
+our @tests_tls1_2 = (
+ {
+ name => "tlsv1_2-both-compress",
+ server => {
+ "Options" => "Compression"
+ },
+ client => {
+ "Options" => "Compression",
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "CompressionExpected" => "Yes",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "tlsv1_2-client-compress",
+ server => {
+ },
+ client => {
+ "Options" => "Compression",
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "CompressionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "tlsv1_2-server-compress",
+ server => {
+ "Options" => "Compression"
+ },
+ client => {
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "CompressionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "tlsv1_2-neither-compress",
+ server => {
+ },
+ client => {
+ "MaxProtocol" => "TLSv1.2"
+ },
+ test => {
+ "CompressionExpected" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+);
+
+push @tests, @tests_tls1_3 unless disabled("tls1_3");
+push @tests, @tests_tls1_2 unless alldisabled(("tls1_2", "tls1_1", "tls1",
+ "ssl3"));
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/23-srp.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/23-srp.conf
new file mode 100644
index 000000000..610a0bb08
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/23-srp.conf
@@ -0,0 +1,148 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 4
+
+test-0 = 0-srp
+test-1 = 1-srp-bad-password
+test-2 = 2-srp-auth
+test-3 = 3-srp-auth-bad-password
+# ===========================================================
+
+[0-srp]
+ssl_conf = 0-srp-ssl
+
+[0-srp-ssl]
+server = 0-srp-server
+client = 0-srp-client
+
+[0-srp-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = SRP
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-srp-client]
+CipherString = SRP
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = Success
+server = 0-srp-server-extra
+client = 0-srp-client-extra
+
+[0-srp-server-extra]
+SRPPassword = password
+SRPUser = user
+
+[0-srp-client-extra]
+SRPPassword = password
+SRPUser = user
+
+
+# ===========================================================
+
+[1-srp-bad-password]
+ssl_conf = 1-srp-bad-password-ssl
+
+[1-srp-bad-password-ssl]
+server = 1-srp-bad-password-server
+client = 1-srp-bad-password-client
+
+[1-srp-bad-password-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = SRP
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-srp-bad-password-client]
+CipherString = SRP
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedResult = ServerFail
+server = 1-srp-bad-password-server-extra
+client = 1-srp-bad-password-client-extra
+
+[1-srp-bad-password-server-extra]
+SRPPassword = password
+SRPUser = user
+
+[1-srp-bad-password-client-extra]
+SRPPassword = passw0rd
+SRPUser = user
+
+
+# ===========================================================
+
+[2-srp-auth]
+ssl_conf = 2-srp-auth-ssl
+
+[2-srp-auth-ssl]
+server = 2-srp-auth-server
+client = 2-srp-auth-client
+
+[2-srp-auth-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = aSRP
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-srp-auth-client]
+CipherString = aSRP
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedResult = Success
+server = 2-srp-auth-server-extra
+client = 2-srp-auth-client-extra
+
+[2-srp-auth-server-extra]
+SRPPassword = password
+SRPUser = user
+
+[2-srp-auth-client-extra]
+SRPPassword = password
+SRPUser = user
+
+
+# ===========================================================
+
+[3-srp-auth-bad-password]
+ssl_conf = 3-srp-auth-bad-password-ssl
+
+[3-srp-auth-bad-password-ssl]
+server = 3-srp-auth-bad-password-server
+client = 3-srp-auth-bad-password-client
+
+[3-srp-auth-bad-password-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = aSRP
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-srp-auth-bad-password-client]
+CipherString = aSRP
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedResult = ServerFail
+server = 3-srp-auth-bad-password-server-extra
+client = 3-srp-auth-bad-password-client-extra
+
+[3-srp-auth-bad-password-server-extra]
+SRPPassword = password
+SRPUser = user
+
+[3-srp-auth-bad-password-client-extra]
+SRPPassword = passw0rd
+SRPUser = user
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/23-srp.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/23-srp.conf.in
new file mode 100644
index 000000000..dcbd9f4ff
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/23-srp.conf.in
@@ -0,0 +1,107 @@
+# -*- mode: perl; -*-
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use warnings;
+
+package ssltests;
+
+# SRP is only supported up to TLSv1.2
+
+our @tests = (
+ {
+ name => "srp",
+ server => {
+ "CipherString" => "SRP",
+ "MaxProtocol" => "TLSv1.2",
+ extra => {
+ "SRPUser" => "user",
+ "SRPPassword" => "password",
+ },
+ },
+ client => {
+ "CipherString" => "SRP",
+ "MaxProtocol" => "TLSv1.2",
+ extra => {
+ "SRPUser" => "user",
+ "SRPPassword" => "password",
+ },
+ },
+ test => {
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "srp-bad-password",
+ server => {
+ "CipherString" => "SRP",
+ "MaxProtocol" => "TLSv1.2",
+ extra => {
+ "SRPUser" => "user",
+ "SRPPassword" => "password",
+ },
+ },
+ client => {
+ "CipherString" => "SRP",
+ "MaxProtocol" => "TLSv1.2",
+ extra => {
+ "SRPUser" => "user",
+ "SRPPassword" => "passw0rd",
+ },
+ },
+ test => {
+ # Server fails first with bad client Finished.
+ "ExpectedResult" => "ServerFail"
+ },
+ },
+ {
+ name => "srp-auth",
+ server => {
+ "CipherString" => "aSRP",
+ "MaxProtocol" => "TLSv1.2",
+ extra => {
+ "SRPUser" => "user",
+ "SRPPassword" => "password",
+ },
+ },
+ client => {
+ "CipherString" => "aSRP",
+ "MaxProtocol" => "TLSv1.2",
+ extra => {
+ "SRPUser" => "user",
+ "SRPPassword" => "password",
+ },
+ },
+ test => {
+ "ExpectedResult" => "Success"
+ },
+ },
+ {
+ name => "srp-auth-bad-password",
+ server => {
+ "CipherString" => "aSRP",
+ "MaxProtocol" => "TLSv1.2",
+ extra => {
+ "SRPUser" => "user",
+ "SRPPassword" => "password",
+ },
+ },
+ client => {
+ "CipherString" => "aSRP",
+ "MaxProtocol" => "TLSv1.2",
+ extra => {
+ "SRPUser" => "user",
+ "SRPPassword" => "passw0rd",
+ },
+ },
+ test => {
+ # Server fails first with bad client Finished.
+ "ExpectedResult" => "ServerFail"
+ },
+ },
+);
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/24-padding.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/24-padding.conf
new file mode 100644
index 000000000..3c9f45010
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/24-padding.conf
@@ -0,0 +1,34 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 1
+
+test-0 = 0-default
+# ===========================================================
+
+[0-default]
+ssl_conf = 0-default-ssl
+
+[0-default-ssl]
+server = 0-default-server
+client = 0-default-client
+
+[0-default-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+RecordPadding = 64
+
+[0-default-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+RecordPadding = 11
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = Success
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/24-padding.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/24-padding.conf.in
new file mode 100644
index 000000000..7bf256c8d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/24-padding.conf.in
@@ -0,0 +1,25 @@
+# -*- mode: perl; -*-
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## SSL test configurations
+
+package ssltests;
+
+our @tests = (
+ {
+ name => "default",
+ server => { "RecordPadding" => 64,
+ "MaxProtocol" => "TLSv1.3",
+ "MinProtocol" => "TLSv1.3" },
+ client => { "RecordPadding" => 11,
+ "MaxProtocol" => "TLSv1.3",
+ "MinProtocol" => "TLSv1.3" },
+ test => { "ExpectedResult" => "Success" },
+ },
+);
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/25-cipher.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/25-cipher.conf
new file mode 100644
index 000000000..a28c1f7be
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/25-cipher.conf
@@ -0,0 +1,244 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 9
+
+test-0 = 0-cipher-server-1
+test-1 = 1-cipher-server-2
+test-2 = 2-cipher-server-client-list
+test-3 = 3-cipher-server-pref-1
+test-4 = 4-cipher-server-pref-2
+test-5 = 5-cipher-server-pref-client-list
+test-6 = 6-cipher-server-pref-not-mobile
+test-7 = 7-cipher-server-pref-mobile
+test-8 = 8-cipher-server-pref-mobile2
+# ===========================================================
+
+[0-cipher-server-1]
+ssl_conf = 0-cipher-server-1-ssl
+
+[0-cipher-server-1-ssl]
+server = 0-cipher-server-1-server
+client = 0-cipher-server-1-client
+
+[0-cipher-server-1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-cipher-server-1-client]
+CipherString = ECDHE-RSA-AES256-SHA384
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedCipher = ECDHE-RSA-AES256-SHA384
+
+
+# ===========================================================
+
+[1-cipher-server-2]
+ssl_conf = 1-cipher-server-2-ssl
+
+[1-cipher-server-2-ssl]
+server = 1-cipher-server-2-server
+client = 1-cipher-server-2-client
+
+[1-cipher-server-2-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-cipher-server-2-client]
+CipherString = ECDHE-RSA-AES128-SHA256
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedCipher = ECDHE-RSA-AES128-SHA256
+
+
+# ===========================================================
+
+[2-cipher-server-client-list]
+ssl_conf = 2-cipher-server-client-list-ssl
+
+[2-cipher-server-client-list-ssl]
+server = 2-cipher-server-client-list-server
+client = 2-cipher-server-client-list-client
+
+[2-cipher-server-client-list-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-cipher-server-client-list-client]
+CipherString = ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedCipher = ECDHE-RSA-AES128-SHA256
+
+
+# ===========================================================
+
+[3-cipher-server-pref-1]
+ssl_conf = 3-cipher-server-pref-1-ssl
+
+[3-cipher-server-pref-1-ssl]
+server = 3-cipher-server-pref-1-server
+client = 3-cipher-server-pref-1-client
+
+[3-cipher-server-pref-1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256
+MaxProtocol = TLSv1.2
+Options = ServerPreference
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-cipher-server-pref-1-client]
+CipherString = ECDHE-RSA-AES256-SHA384
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedCipher = ECDHE-RSA-AES256-SHA384
+
+
+# ===========================================================
+
+[4-cipher-server-pref-2]
+ssl_conf = 4-cipher-server-pref-2-ssl
+
+[4-cipher-server-pref-2-ssl]
+server = 4-cipher-server-pref-2-server
+client = 4-cipher-server-pref-2-client
+
+[4-cipher-server-pref-2-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256
+MaxProtocol = TLSv1.2
+Options = ServerPreference
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[4-cipher-server-pref-2-client]
+CipherString = ECDHE-RSA-AES128-SHA256
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-4]
+ExpectedCipher = ECDHE-RSA-AES128-SHA256
+
+
+# ===========================================================
+
+[5-cipher-server-pref-client-list]
+ssl_conf = 5-cipher-server-pref-client-list-ssl
+
+[5-cipher-server-pref-client-list-ssl]
+server = 5-cipher-server-pref-client-list-server
+client = 5-cipher-server-pref-client-list-client
+
+[5-cipher-server-pref-client-list-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256
+MaxProtocol = TLSv1.2
+Options = ServerPreference
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[5-cipher-server-pref-client-list-client]
+CipherString = ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+ExpectedCipher = ECDHE-RSA-AES256-SHA384
+
+
+# ===========================================================
+
+[6-cipher-server-pref-not-mobile]
+ssl_conf = 6-cipher-server-pref-not-mobile-ssl
+
+[6-cipher-server-pref-not-mobile-ssl]
+server = 6-cipher-server-pref-not-mobile-server
+client = 6-cipher-server-pref-not-mobile-client
+
+[6-cipher-server-pref-not-mobile-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-CHACHA20-POLY1305
+MaxProtocol = TLSv1.2
+Options = ServerPreference
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[6-cipher-server-pref-not-mobile-client]
+CipherString = ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-6]
+ExpectedCipher = ECDHE-RSA-AES256-SHA384
+
+
+# ===========================================================
+
+[7-cipher-server-pref-mobile]
+ssl_conf = 7-cipher-server-pref-mobile-ssl
+
+[7-cipher-server-pref-mobile-ssl]
+server = 7-cipher-server-pref-mobile-server
+client = 7-cipher-server-pref-mobile-client
+
+[7-cipher-server-pref-mobile-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-CHACHA20-POLY1305
+MaxProtocol = TLSv1.2
+Options = ServerPreference,PrioritizeChaCha
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[7-cipher-server-pref-mobile-client]
+CipherString = ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-CHACHA20-POLY1305
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-7]
+ExpectedCipher = ECDHE-RSA-AES256-SHA384
+
+
+# ===========================================================
+
+[8-cipher-server-pref-mobile2]
+ssl_conf = 8-cipher-server-pref-mobile2-ssl
+
+[8-cipher-server-pref-mobile2-ssl]
+server = 8-cipher-server-pref-mobile2-server
+client = 8-cipher-server-pref-mobile2-client
+
+[8-cipher-server-pref-mobile2-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-CHACHA20-POLY1305
+MaxProtocol = TLSv1.2
+Options = ServerPreference,PrioritizeChaCha
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-cipher-server-pref-mobile2-client]
+CipherString = ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-8]
+ExpectedCipher = ECDHE-RSA-CHACHA20-POLY1305
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/25-cipher.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/25-cipher.conf.in
new file mode 100644
index 000000000..8d3917e12
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/25-cipher.conf.in
@@ -0,0 +1,156 @@
+# -*- mode: perl; -*-
+# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test version negotiation
+
+use strict;
+use warnings;
+
+package ssltests;
+use OpenSSL::Test::Utils;
+
+our @tests = (
+ {
+ name => "cipher-server-1",
+ server => {
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256",
+ },
+ client => {
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ECDHE-RSA-AES256-SHA384"
+ },
+ test => {
+ "ExpectedCipher" => "ECDHE-RSA-AES256-SHA384",
+ },
+ },
+ {
+ name => "cipher-server-2",
+ server => {
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256",
+ },
+ client => {
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ECDHE-RSA-AES128-SHA256"
+ },
+ test => {
+ "ExpectedCipher" => "ECDHE-RSA-AES128-SHA256",
+ },
+ },
+ {
+ name => "cipher-server-client-list",
+ server => {
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256",
+ },
+ client => {
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384",
+ },
+ test => {
+ "ExpectedCipher" => "ECDHE-RSA-AES128-SHA256",
+ },
+ },
+ {
+ name => "cipher-server-pref-1",
+ server => {
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256",
+ "Options" => "ServerPreference",
+ },
+ client => {
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ECDHE-RSA-AES256-SHA384"
+ },
+ test => {
+ "ExpectedCipher" => "ECDHE-RSA-AES256-SHA384",
+ },
+ },
+ {
+ name => "cipher-server-pref-2",
+ server => {
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256",
+ "Options" => "ServerPreference",
+ },
+ client => {
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ECDHE-RSA-AES128-SHA256"
+ },
+ test => {
+ "ExpectedCipher" => "ECDHE-RSA-AES128-SHA256",
+ },
+ },
+ {
+ name => "cipher-server-pref-client-list",
+ server => {
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256",
+ "Options" => "ServerPreference",
+ },
+ client => {
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384",
+ },
+ test => {
+ "ExpectedCipher" => "ECDHE-RSA-AES256-SHA384",
+ },
+ },
+ {
+ name => "cipher-server-pref-not-mobile",
+ server => {
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-CHACHA20-POLY1305",
+ "Options" => "ServerPreference",
+ },
+ client => {
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384",
+ },
+ test => {
+ "ExpectedCipher" => "ECDHE-RSA-AES256-SHA384",
+ },
+ },
+ {
+ name => "cipher-server-pref-mobile",
+ server => {
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-CHACHA20-POLY1305",
+ "Options" => "ServerPreference,PrioritizeChaCha",
+ },
+ client => {
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-CHACHA20-POLY1305",
+ },
+ test => {
+ "ExpectedCipher" => "ECDHE-RSA-AES256-SHA384",
+ },
+ },
+);
+
+my @tests_poly1305 = (
+ {
+ name => "cipher-server-pref-mobile2",
+ server => {
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-CHACHA20-POLY1305",
+ "Options" => "ServerPreference,PrioritizeChaCha",
+ },
+ client => {
+ "MaxProtocol" => "TLSv1.2",
+ "CipherString" => "ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384",
+ },
+ test => {
+ "ExpectedCipher" => "ECDHE-RSA-CHACHA20-POLY1305",
+ },
+ },
+);
+
+push @tests, @tests_poly1305 unless disabled("poly1305") || disabled("chacha");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/26-tls13_client_auth.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/26-tls13_client_auth.conf
new file mode 100644
index 000000000..9c4239190
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/26-tls13_client_auth.conf
@@ -0,0 +1,488 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 14
+
+test-0 = 0-server-auth-TLSv1.3
+test-1 = 1-client-auth-TLSv1.3-request
+test-2 = 2-client-auth-TLSv1.3-require-fail
+test-3 = 3-client-auth-TLSv1.3-require
+test-4 = 4-client-auth-TLSv1.3-require-non-empty-names
+test-5 = 5-client-auth-TLSv1.3-noroot
+test-6 = 6-client-auth-TLSv1.3-request-post-handshake
+test-7 = 7-client-auth-TLSv1.3-require-fail-post-handshake
+test-8 = 8-client-auth-TLSv1.3-require-post-handshake
+test-9 = 9-client-auth-TLSv1.3-require-non-empty-names-post-handshake
+test-10 = 10-client-auth-TLSv1.3-noroot-post-handshake
+test-11 = 11-client-auth-TLSv1.3-request-force-client-post-handshake
+test-12 = 12-client-auth-TLSv1.3-request-force-server-post-handshake
+test-13 = 13-client-auth-TLSv1.3-request-force-both-post-handshake
+# ===========================================================
+
+[0-server-auth-TLSv1.3]
+ssl_conf = 0-server-auth-TLSv1.3-ssl
+
+[0-server-auth-TLSv1.3-ssl]
+server = 0-server-auth-TLSv1.3-server
+client = 0-server-auth-TLSv1.3-client
+
+[0-server-auth-TLSv1.3-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-server-auth-TLSv1.3-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[1-client-auth-TLSv1.3-request]
+ssl_conf = 1-client-auth-TLSv1.3-request-ssl
+
+[1-client-auth-TLSv1.3-request-ssl]
+server = 1-client-auth-TLSv1.3-request-server
+client = 1-client-auth-TLSv1.3-request-client
+
+[1-client-auth-TLSv1.3-request-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = Request
+
+[1-client-auth-TLSv1.3-request-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[2-client-auth-TLSv1.3-require-fail]
+ssl_conf = 2-client-auth-TLSv1.3-require-fail-ssl
+
+[2-client-auth-TLSv1.3-require-fail-ssl]
+server = 2-client-auth-TLSv1.3-require-fail-server
+client = 2-client-auth-TLSv1.3-require-fail-client
+
+[2-client-auth-TLSv1.3-require-fail-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Require
+
+[2-client-auth-TLSv1.3-require-fail-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedResult = ServerFail
+ExpectedServerAlert = CertificateRequired
+
+
+# ===========================================================
+
+[3-client-auth-TLSv1.3-require]
+ssl_conf = 3-client-auth-TLSv1.3-require-ssl
+
+[3-client-auth-TLSv1.3-require-ssl]
+server = 3-client-auth-TLSv1.3-require-server
+client = 3-client-auth-TLSv1.3-require-client
+
+[3-client-auth-TLSv1.3-require-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ClientSignatureAlgorithms = PSS+SHA256
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Request
+
+[3-client-auth-TLSv1.3-require-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedClientCANames = empty
+ExpectedClientCertType = RSA
+ExpectedClientSignHash = SHA256
+ExpectedClientSignType = RSA-PSS
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[4-client-auth-TLSv1.3-require-non-empty-names]
+ssl_conf = 4-client-auth-TLSv1.3-require-non-empty-names-ssl
+
+[4-client-auth-TLSv1.3-require-non-empty-names-ssl]
+server = 4-client-auth-TLSv1.3-require-non-empty-names-server
+client = 4-client-auth-TLSv1.3-require-non-empty-names-client
+
+[4-client-auth-TLSv1.3-require-non-empty-names-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ClientCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+ClientSignatureAlgorithms = PSS+SHA256
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Request
+
+[4-client-auth-TLSv1.3-require-non-empty-names-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-4]
+ExpectedClientCANames = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+ExpectedClientCertType = RSA
+ExpectedClientSignHash = SHA256
+ExpectedClientSignType = RSA-PSS
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[5-client-auth-TLSv1.3-noroot]
+ssl_conf = 5-client-auth-TLSv1.3-noroot-ssl
+
+[5-client-auth-TLSv1.3-noroot-ssl]
+server = 5-client-auth-TLSv1.3-noroot-server
+client = 5-client-auth-TLSv1.3-noroot-client
+
+[5-client-auth-TLSv1.3-noroot-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = Require
+
+[5-client-auth-TLSv1.3-noroot-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-5]
+ExpectedResult = ServerFail
+ExpectedServerAlert = UnknownCA
+
+
+# ===========================================================
+
+[6-client-auth-TLSv1.3-request-post-handshake]
+ssl_conf = 6-client-auth-TLSv1.3-request-post-handshake-ssl
+
+[6-client-auth-TLSv1.3-request-post-handshake-ssl]
+server = 6-client-auth-TLSv1.3-request-post-handshake-server
+client = 6-client-auth-TLSv1.3-request-post-handshake-client
+
+[6-client-auth-TLSv1.3-request-post-handshake-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = RequestPostHandshake
+
+[6-client-auth-TLSv1.3-request-post-handshake-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-6]
+ExpectedResult = ServerFail
+HandshakeMode = PostHandshakeAuth
+
+
+# ===========================================================
+
+[7-client-auth-TLSv1.3-require-fail-post-handshake]
+ssl_conf = 7-client-auth-TLSv1.3-require-fail-post-handshake-ssl
+
+[7-client-auth-TLSv1.3-require-fail-post-handshake-ssl]
+server = 7-client-auth-TLSv1.3-require-fail-post-handshake-server
+client = 7-client-auth-TLSv1.3-require-fail-post-handshake-client
+
+[7-client-auth-TLSv1.3-require-fail-post-handshake-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = RequirePostHandshake
+
+[7-client-auth-TLSv1.3-require-fail-post-handshake-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-7]
+ExpectedResult = ServerFail
+HandshakeMode = PostHandshakeAuth
+
+
+# ===========================================================
+
+[8-client-auth-TLSv1.3-require-post-handshake]
+ssl_conf = 8-client-auth-TLSv1.3-require-post-handshake-ssl
+
+[8-client-auth-TLSv1.3-require-post-handshake-ssl]
+server = 8-client-auth-TLSv1.3-require-post-handshake-server
+client = 8-client-auth-TLSv1.3-require-post-handshake-client
+
+[8-client-auth-TLSv1.3-require-post-handshake-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ClientSignatureAlgorithms = PSS+SHA256
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = RequestPostHandshake
+
+[8-client-auth-TLSv1.3-require-post-handshake-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-8]
+ExpectedClientCANames = empty
+ExpectedClientCertType = RSA
+ExpectedClientSignHash = SHA256
+ExpectedClientSignType = RSA-PSS
+ExpectedResult = Success
+HandshakeMode = PostHandshakeAuth
+client = 8-client-auth-TLSv1.3-require-post-handshake-client-extra
+
+[8-client-auth-TLSv1.3-require-post-handshake-client-extra]
+EnablePHA = Yes
+
+
+# ===========================================================
+
+[9-client-auth-TLSv1.3-require-non-empty-names-post-handshake]
+ssl_conf = 9-client-auth-TLSv1.3-require-non-empty-names-post-handshake-ssl
+
+[9-client-auth-TLSv1.3-require-non-empty-names-post-handshake-ssl]
+server = 9-client-auth-TLSv1.3-require-non-empty-names-post-handshake-server
+client = 9-client-auth-TLSv1.3-require-non-empty-names-post-handshake-client
+
+[9-client-auth-TLSv1.3-require-non-empty-names-post-handshake-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ClientCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+ClientSignatureAlgorithms = PSS+SHA256
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = RequestPostHandshake
+
+[9-client-auth-TLSv1.3-require-non-empty-names-post-handshake-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-9]
+ExpectedClientCANames = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+ExpectedClientCertType = RSA
+ExpectedClientSignHash = SHA256
+ExpectedClientSignType = RSA-PSS
+ExpectedResult = Success
+HandshakeMode = PostHandshakeAuth
+client = 9-client-auth-TLSv1.3-require-non-empty-names-post-handshake-client-extra
+
+[9-client-auth-TLSv1.3-require-non-empty-names-post-handshake-client-extra]
+EnablePHA = Yes
+
+
+# ===========================================================
+
+[10-client-auth-TLSv1.3-noroot-post-handshake]
+ssl_conf = 10-client-auth-TLSv1.3-noroot-post-handshake-ssl
+
+[10-client-auth-TLSv1.3-noroot-post-handshake-ssl]
+server = 10-client-auth-TLSv1.3-noroot-post-handshake-server
+client = 10-client-auth-TLSv1.3-noroot-post-handshake-client
+
+[10-client-auth-TLSv1.3-noroot-post-handshake-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = RequirePostHandshake
+
+[10-client-auth-TLSv1.3-noroot-post-handshake-client]
+Certificate = ${ENV::TEST_CERTS_DIR}/ee-client-chain.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-10]
+ExpectedResult = ServerFail
+ExpectedServerAlert = UnknownCA
+HandshakeMode = PostHandshakeAuth
+client = 10-client-auth-TLSv1.3-noroot-post-handshake-client-extra
+
+[10-client-auth-TLSv1.3-noroot-post-handshake-client-extra]
+EnablePHA = Yes
+
+
+# ===========================================================
+
+[11-client-auth-TLSv1.3-request-force-client-post-handshake]
+ssl_conf = 11-client-auth-TLSv1.3-request-force-client-post-handshake-ssl
+
+[11-client-auth-TLSv1.3-request-force-client-post-handshake-ssl]
+server = 11-client-auth-TLSv1.3-request-force-client-post-handshake-server
+client = 11-client-auth-TLSv1.3-request-force-client-post-handshake-client
+
+[11-client-auth-TLSv1.3-request-force-client-post-handshake-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = RequestPostHandshake
+
+[11-client-auth-TLSv1.3-request-force-client-post-handshake-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-11]
+ExpectedResult = Success
+HandshakeMode = PostHandshakeAuth
+client = 11-client-auth-TLSv1.3-request-force-client-post-handshake-client-extra
+
+[11-client-auth-TLSv1.3-request-force-client-post-handshake-client-extra]
+EnablePHA = Yes
+
+
+# ===========================================================
+
+[12-client-auth-TLSv1.3-request-force-server-post-handshake]
+ssl_conf = 12-client-auth-TLSv1.3-request-force-server-post-handshake-ssl
+
+[12-client-auth-TLSv1.3-request-force-server-post-handshake-ssl]
+server = 12-client-auth-TLSv1.3-request-force-server-post-handshake-server
+client = 12-client-auth-TLSv1.3-request-force-server-post-handshake-client
+
+[12-client-auth-TLSv1.3-request-force-server-post-handshake-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = RequestPostHandshake
+
+[12-client-auth-TLSv1.3-request-force-server-post-handshake-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-12]
+ExpectedResult = ClientFail
+HandshakeMode = PostHandshakeAuth
+server = 12-client-auth-TLSv1.3-request-force-server-post-handshake-server-extra
+
+[12-client-auth-TLSv1.3-request-force-server-post-handshake-server-extra]
+ForcePHA = Yes
+
+
+# ===========================================================
+
+[13-client-auth-TLSv1.3-request-force-both-post-handshake]
+ssl_conf = 13-client-auth-TLSv1.3-request-force-both-post-handshake-ssl
+
+[13-client-auth-TLSv1.3-request-force-both-post-handshake-ssl]
+server = 13-client-auth-TLSv1.3-request-force-both-post-handshake-server
+client = 13-client-auth-TLSv1.3-request-force-both-post-handshake-client
+
+[13-client-auth-TLSv1.3-request-force-both-post-handshake-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyMode = RequestPostHandshake
+
+[13-client-auth-TLSv1.3-request-force-both-post-handshake-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-13]
+ExpectedResult = Success
+HandshakeMode = PostHandshakeAuth
+server = 13-client-auth-TLSv1.3-request-force-both-post-handshake-server-extra
+client = 13-client-auth-TLSv1.3-request-force-both-post-handshake-client-extra
+
+[13-client-auth-TLSv1.3-request-force-both-post-handshake-server-extra]
+ForcePHA = Yes
+
+[13-client-auth-TLSv1.3-request-force-both-post-handshake-client-extra]
+EnablePHA = Yes
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/26-tls13_client_auth.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/26-tls13_client_auth.conf.in
new file mode 100644
index 000000000..018dd825b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/26-tls13_client_auth.conf.in
@@ -0,0 +1,302 @@
+# -*- mode: perl; -*-
+# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test TLSv1.3 certificate authentication
+## Similar to 04-client_auth.conf.in output, but specific for
+## TLSv1.3 and post-handshake authentication
+
+use strict;
+use warnings;
+
+package ssltests;
+use OpenSSL::Test::Utils;
+
+our @tests = (
+ {
+ name => "server-auth-TLSv1.3",
+ server => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ },
+ client => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ },
+ },
+ {
+ name => "client-auth-TLSv1.3-request",
+ server => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "VerifyMode" => "Request",
+ },
+ client => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ },
+ },
+ {
+ name => "client-auth-TLSv1.3-require-fail",
+ server => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "Require",
+ },
+ client => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ },
+ test => {
+ "ExpectedResult" => "ServerFail",
+ "ExpectedServerAlert" => "CertificateRequired",
+ },
+ },
+ {
+ name => "client-auth-TLSv1.3-require",
+ server => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "ClientSignatureAlgorithms" => "PSS+SHA256",
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "Request",
+ },
+ client => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "Certificate" => test_pem("ee-client-chain.pem"),
+ "PrivateKey" => test_pem("ee-key.pem"),
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ "ExpectedClientCertType" => "RSA",
+ "ExpectedClientSignType" => "RSA-PSS",
+ "ExpectedClientSignHash" => "SHA256",
+ "ExpectedClientCANames" => "empty"
+ },
+ },
+ {
+ name => "client-auth-TLSv1.3-require-non-empty-names",
+ server => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "ClientSignatureAlgorithms" => "PSS+SHA256",
+ "ClientCAFile" => test_pem("root-cert.pem"),
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "Request",
+ },
+ client => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "Certificate" => test_pem("ee-client-chain.pem"),
+ "PrivateKey" => test_pem("ee-key.pem"),
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ "ExpectedClientCertType" => "RSA",
+ "ExpectedClientSignType" => "RSA-PSS",
+ "ExpectedClientSignHash" => "SHA256",
+ "ExpectedClientCANames" => test_pem("root-cert.pem"),
+ },
+ },
+ {
+ name => "client-auth-TLSv1.3-noroot",
+ server => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "VerifyMode" => "Require",
+ },
+ client => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "Certificate" => test_pem("ee-client-chain.pem"),
+ "PrivateKey" => test_pem("ee-key.pem"),
+ },
+ test => {
+ "ExpectedResult" => "ServerFail",
+ "ExpectedServerAlert" => "UnknownCA",
+ },
+ },
+ {
+ name => "client-auth-TLSv1.3-request-post-handshake",
+ server => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "VerifyMode" => "RequestPostHandshake",
+ },
+ client => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ },
+ test => {
+ "ExpectedResult" => "ServerFail",
+ "HandshakeMode" => "PostHandshakeAuth",
+ },
+ },
+ {
+ name => "client-auth-TLSv1.3-require-fail-post-handshake",
+ server => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "RequirePostHandshake",
+ },
+ client => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ },
+ test => {
+ "ExpectedResult" => "ServerFail",
+ "HandshakeMode" => "PostHandshakeAuth",
+ },
+ },
+ {
+ name => "client-auth-TLSv1.3-require-post-handshake",
+ server => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "ClientSignatureAlgorithms" => "PSS+SHA256",
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "RequestPostHandshake",
+ },
+ client => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "Certificate" => test_pem("ee-client-chain.pem"),
+ "PrivateKey" => test_pem("ee-key.pem"),
+ extra => {
+ "EnablePHA" => "Yes",
+ },
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ "HandshakeMode" => "PostHandshakeAuth",
+ "ExpectedClientCertType" => "RSA",
+ "ExpectedClientSignType" => "RSA-PSS",
+ "ExpectedClientSignHash" => "SHA256",
+ "ExpectedClientCANames" => "empty"
+ },
+ },
+ {
+ name => "client-auth-TLSv1.3-require-non-empty-names-post-handshake",
+ server => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "ClientSignatureAlgorithms" => "PSS+SHA256",
+ "ClientCAFile" => test_pem("root-cert.pem"),
+ "VerifyCAFile" => test_pem("root-cert.pem"),
+ "VerifyMode" => "RequestPostHandshake",
+ },
+ client => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "Certificate" => test_pem("ee-client-chain.pem"),
+ "PrivateKey" => test_pem("ee-key.pem"),
+ extra => {
+ "EnablePHA" => "Yes",
+ },
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ "HandshakeMode" => "PostHandshakeAuth",
+ "ExpectedClientCertType" => "RSA",
+ "ExpectedClientSignType" => "RSA-PSS",
+ "ExpectedClientSignHash" => "SHA256",
+ "ExpectedClientCANames" => test_pem("root-cert.pem"),
+ },
+ },
+ {
+ name => "client-auth-TLSv1.3-noroot-post-handshake",
+ server => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "VerifyMode" => "RequirePostHandshake",
+ },
+ client => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "Certificate" => test_pem("ee-client-chain.pem"),
+ "PrivateKey" => test_pem("ee-key.pem"),
+ extra => {
+ "EnablePHA" => "Yes",
+ },
+ },
+ test => {
+ "ExpectedResult" => "ServerFail",
+ "HandshakeMode" => "PostHandshakeAuth",
+ "ExpectedServerAlert" => "UnknownCA",
+ },
+ },
+ {
+ name => "client-auth-TLSv1.3-request-force-client-post-handshake",
+ server => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "VerifyMode" => "RequestPostHandshake",
+ },
+ client => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ extra => {
+ "EnablePHA" => "Yes",
+ },
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ "HandshakeMode" => "PostHandshakeAuth",
+ },
+ },
+ {
+ name => "client-auth-TLSv1.3-request-force-server-post-handshake",
+ server => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "VerifyMode" => "RequestPostHandshake",
+ extra => {
+ "ForcePHA" => "Yes",
+ },
+ },
+ client => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ },
+ test => {
+ "ExpectedResult" => "ClientFail",
+ "HandshakeMode" => "PostHandshakeAuth",
+ },
+ },
+ {
+ name => "client-auth-TLSv1.3-request-force-both-post-handshake",
+ server => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ "VerifyMode" => "RequestPostHandshake",
+ extra => {
+ "ForcePHA" => "Yes",
+ },
+ },
+ client => {
+ "MinProtocol" => "TLSv1.3",
+ "MaxProtocol" => "TLSv1.3",
+ extra => {
+ "EnablePHA" => "Yes",
+ },
+ },
+ test => {
+ "ExpectedResult" => "Success",
+ "HandshakeMode" => "PostHandshakeAuth",
+ },
+ },
+);
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/27-ticket-appdata.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/27-ticket-appdata.conf
new file mode 100644
index 000000000..863ca7a90
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/27-ticket-appdata.conf
@@ -0,0 +1,146 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 4
+
+test-0 = 0-session-ticket-app-data12
+test-1 = 1-session-ticket-app-data12
+test-2 = 2-session-ticket-app-data13
+test-3 = 3-session-ticket-app-data13
+# ===========================================================
+
+[0-session-ticket-app-data12]
+ssl_conf = 0-session-ticket-app-data12-ssl
+
+[0-session-ticket-app-data12-ssl]
+server = 0-session-ticket-app-data12-server
+client = 0-session-ticket-app-data12-client
+resume-server = 0-session-ticket-app-data12-server
+resume-client = 0-session-ticket-app-data12-client
+
+[0-session-ticket-app-data12-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-session-ticket-app-data12-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = Success
+ExpectedSessionTicketAppData = HelloWorld
+HandshakeMode = Resume
+ResumptionExpected = Yes
+SessionTicketExpected = Yes
+server = 0-session-ticket-app-data12-server-extra
+resume-server = 0-session-ticket-app-data12-server-extra
+
+[0-session-ticket-app-data12-server-extra]
+SessionTicketAppData = HelloWorld
+
+
+# ===========================================================
+
+[1-session-ticket-app-data12]
+ssl_conf = 1-session-ticket-app-data12-ssl
+
+[1-session-ticket-app-data12-ssl]
+server = 1-session-ticket-app-data12-server
+client = 1-session-ticket-app-data12-client
+resume-server = 1-session-ticket-app-data12-server
+resume-client = 1-session-ticket-app-data12-client
+
+[1-session-ticket-app-data12-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-session-ticket-app-data12-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+Options = SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedResult = Success
+ExpectedSessionTicketAppData =
+HandshakeMode = Resume
+ResumptionExpected = Yes
+SessionTicketExpected = Yes
+
+
+# ===========================================================
+
+[2-session-ticket-app-data13]
+ssl_conf = 2-session-ticket-app-data13-ssl
+
+[2-session-ticket-app-data13-ssl]
+server = 2-session-ticket-app-data13-server
+client = 2-session-ticket-app-data13-client
+resume-server = 2-session-ticket-app-data13-server
+resume-client = 2-session-ticket-app-data13-client
+
+[2-session-ticket-app-data13-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-session-ticket-app-data13-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+Options = SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedResult = Success
+ExpectedSessionTicketAppData = HelloWorld
+HandshakeMode = Resume
+ResumptionExpected = Yes
+SessionTicketExpected = Yes
+server = 2-session-ticket-app-data13-server-extra
+resume-server = 2-session-ticket-app-data13-server-extra
+
+[2-session-ticket-app-data13-server-extra]
+SessionTicketAppData = HelloWorld
+
+
+# ===========================================================
+
+[3-session-ticket-app-data13]
+ssl_conf = 3-session-ticket-app-data13-ssl
+
+[3-session-ticket-app-data13-ssl]
+server = 3-session-ticket-app-data13-server
+client = 3-session-ticket-app-data13-client
+resume-server = 3-session-ticket-app-data13-server
+resume-client = 3-session-ticket-app-data13-client
+
+[3-session-ticket-app-data13-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Options = SessionTicket
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-session-ticket-app-data13-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+Options = SessionTicket
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedResult = Success
+ExpectedSessionTicketAppData =
+HandshakeMode = Resume
+ResumptionExpected = Yes
+SessionTicketExpected = Yes
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/27-ticket-appdata.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/27-ticket-appdata.conf.in
new file mode 100644
index 000000000..ed919d9ba
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/27-ticket-appdata.conf.in
@@ -0,0 +1,99 @@
+# -*- mode: perl; -*-
+# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test session ticket app data
+
+use strict;
+use warnings;
+
+package ssltests;
+use OpenSSL::Test::Utils;
+
+our @tests12 = (
+ {
+ "name" => "session-ticket-app-data12",
+ "client" => {
+ "MaxProtocol" => "TLSv1.2",
+ "Options" => "SessionTicket",
+ },
+ "server" => {
+ "Options" => "SessionTicket",
+ "extra" => {
+ "SessionTicketAppData" => "HelloWorld",
+ },
+ },
+ "test" => {
+ "HandshakeMode" => "Resume",
+ "ExpectedResult" => "Success",
+ "SessionTicketExpected" => "Yes",
+ "ResumptionExpected" => "Yes",
+ "ExpectedSessionTicketAppData" => "HelloWorld",
+ }
+ },
+ {
+ "name" => "session-ticket-app-data12",
+ "client" => {
+ "MaxProtocol" => "TLSv1.2",
+ "Options" => "SessionTicket",
+ },
+ "server" => {
+ "Options" => "SessionTicket",
+ },
+ "test" => {
+ "HandshakeMode" => "Resume",
+ "ExpectedResult" => "Success",
+ "SessionTicketExpected" => "Yes",
+ "ResumptionExpected" => "Yes",
+ "ExpectedSessionTicketAppData" => "",
+ }
+ }
+);
+our @tests13 = (
+ {
+ "name" => "session-ticket-app-data13",
+ "client" => {
+ "MaxProtocol" => "TLSv1.3",
+ "Options" => "SessionTicket",
+ },
+ "server" => {
+ "Options" => "SessionTicket",
+ "extra" => {
+ "SessionTicketAppData" => "HelloWorld",
+ },
+ },
+ "test" => {
+ "HandshakeMode" => "Resume",
+ "ExpectedResult" => "Success",
+ "SessionTicketExpected" => "Yes",
+ "ResumptionExpected" => "Yes",
+ "ExpectedSessionTicketAppData" => "HelloWorld",
+ }
+ },
+ {
+ "name" => "session-ticket-app-data13",
+ "client" => {
+ "MaxProtocol" => "TLSv1.3",
+ "Options" => "SessionTicket",
+ },
+ "server" => {
+ "Options" => "SessionTicket",
+ },
+ "test" => {
+ "HandshakeMode" => "Resume",
+ "ExpectedResult" => "Success",
+ "SessionTicketExpected" => "Yes",
+ "ResumptionExpected" => "Yes",
+ "ExpectedSessionTicketAppData" => "",
+ }
+ }
+);
+
+our @tests = ();
+push @tests, @tests12 unless disabled("tls1_2");
+push @tests, @tests13 unless disabled("tls1_3");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/28-seclevel.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/28-seclevel.conf
new file mode 100644
index 000000000..99fa8109c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/28-seclevel.conf
@@ -0,0 +1,150 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 6
+
+test-0 = 0-SECLEVEL 3 with default key
+test-1 = 1-SECLEVEL 4 with ED448 key
+test-2 = 2-SECLEVEL 5 server with ED448 key
+test-3 = 3-SECLEVEL 5 client with ED448 key
+test-4 = 4-SECLEVEL 3 with P-384 key, X25519 ECDHE
+test-5 = 5-SECLEVEL 3 with ED448 key, TLSv1.2
+# ===========================================================
+
+[0-SECLEVEL 3 with default key]
+ssl_conf = 0-SECLEVEL 3 with default key-ssl
+
+[0-SECLEVEL 3 with default key-ssl]
+server = 0-SECLEVEL 3 with default key-server
+client = 0-SECLEVEL 3 with default key-client
+
+[0-SECLEVEL 3 with default key-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT:@SECLEVEL=3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-SECLEVEL 3 with default key-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[1-SECLEVEL 4 with ED448 key]
+ssl_conf = 1-SECLEVEL 4 with ED448 key-ssl
+
+[1-SECLEVEL 4 with ED448 key-ssl]
+server = 1-SECLEVEL 4 with ED448 key-server
+client = 1-SECLEVEL 4 with ED448 key-client
+
+[1-SECLEVEL 4 with ED448 key-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+CipherString = DEFAULT:@SECLEVEL=4
+PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+
+[1-SECLEVEL 4 with ED448 key-client]
+CipherString = DEFAULT:@SECLEVEL=4
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-ed448-cert.pem
+VerifyMode = Peer
+
+[test-1]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[2-SECLEVEL 5 server with ED448 key]
+ssl_conf = 2-SECLEVEL 5 server with ED448 key-ssl
+
+[2-SECLEVEL 5 server with ED448 key-ssl]
+server = 2-SECLEVEL 5 server with ED448 key-server
+client = 2-SECLEVEL 5 server with ED448 key-client
+
+[2-SECLEVEL 5 server with ED448 key-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+CipherString = DEFAULT:@SECLEVEL=5
+PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+
+[2-SECLEVEL 5 server with ED448 key-client]
+CipherString = DEFAULT:@SECLEVEL=4
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-ed448-cert.pem
+VerifyMode = Peer
+
+[test-2]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[3-SECLEVEL 5 client with ED448 key]
+ssl_conf = 3-SECLEVEL 5 client with ED448 key-ssl
+
+[3-SECLEVEL 5 client with ED448 key-ssl]
+server = 3-SECLEVEL 5 client with ED448 key-server
+client = 3-SECLEVEL 5 client with ED448 key-client
+
+[3-SECLEVEL 5 client with ED448 key-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+CipherString = DEFAULT:@SECLEVEL=4
+PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+
+[3-SECLEVEL 5 client with ED448 key-client]
+CipherString = DEFAULT:@SECLEVEL=5
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-ed448-cert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedResult = ServerFail
+
+
+# ===========================================================
+
+[4-SECLEVEL 3 with P-384 key, X25519 ECDHE]
+ssl_conf = 4-SECLEVEL 3 with P-384 key, X25519 ECDHE-ssl
+
+[4-SECLEVEL 3 with P-384 key, X25519 ECDHE-ssl]
+server = 4-SECLEVEL 3 with P-384 key, X25519 ECDHE-server
+client = 4-SECLEVEL 3 with P-384 key, X25519 ECDHE-client
+
+[4-SECLEVEL 3 with P-384 key, X25519 ECDHE-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/p384-server-cert.pem
+CipherString = DEFAULT:@SECLEVEL=3
+Groups = X25519
+PrivateKey = ${ENV::TEST_CERTS_DIR}/p384-server-key.pem
+
+[4-SECLEVEL 3 with P-384 key, X25519 ECDHE-client]
+CipherString = ECDHE:@SECLEVEL=3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/p384-root.pem
+VerifyMode = Peer
+
+[test-4]
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[5-SECLEVEL 3 with ED448 key, TLSv1.2]
+ssl_conf = 5-SECLEVEL 3 with ED448 key, TLSv1.2-ssl
+
+[5-SECLEVEL 3 with ED448 key, TLSv1.2-ssl]
+server = 5-SECLEVEL 3 with ED448 key, TLSv1.2-server
+client = 5-SECLEVEL 3 with ED448 key, TLSv1.2-client
+
+[5-SECLEVEL 3 with ED448 key, TLSv1.2-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+CipherString = DEFAULT:@SECLEVEL=3
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+
+[5-SECLEVEL 3 with ED448 key, TLSv1.2-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-ed448-cert.pem
+VerifyMode = Peer
+
+[test-5]
+ExpectedResult = Success
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/28-seclevel.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/28-seclevel.conf.in
new file mode 100644
index 000000000..2c12de792
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/28-seclevel.conf.in
@@ -0,0 +1,83 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## SSL test configurations
+
+package ssltests;
+use OpenSSL::Test::Utils;
+
+our @tests = (
+ {
+ name => "SECLEVEL 3 with default key",
+ server => { "CipherString" => "DEFAULT:\@SECLEVEL=3" },
+ client => { },
+ test => { "ExpectedResult" => "ServerFail" },
+ },
+);
+
+our @tests_ec = (
+ {
+ name => "SECLEVEL 4 with ED448 key",
+ server => { "CipherString" => "DEFAULT:\@SECLEVEL=4",
+ "Certificate" => test_pem("server-ed448-cert.pem"),
+ "PrivateKey" => test_pem("server-ed448-key.pem") },
+ client => { "CipherString" => "DEFAULT:\@SECLEVEL=4",
+ "VerifyCAFile" => test_pem("root-ed448-cert.pem") },
+ test => { "ExpectedResult" => "Success" },
+ },
+ {
+ # The Ed488 signature algorithm will not be enabled.
+ # Because of the config order, the certificate is first loaded, and
+ # then the security level is chaged. If you try this with s_server
+ # the order will be reversed and it will instead fail to load the key.
+ name => "SECLEVEL 5 server with ED448 key",
+ server => { "CipherString" => "DEFAULT:\@SECLEVEL=5",
+ "Certificate" => test_pem("server-ed448-cert.pem"),
+ "PrivateKey" => test_pem("server-ed448-key.pem") },
+ client => { "CipherString" => "DEFAULT:\@SECLEVEL=4",
+ "VerifyCAFile" => test_pem("root-ed448-cert.pem") },
+ test => { "ExpectedResult" => "ServerFail" },
+ },
+ {
+ # The client will not sent the Ed488 signature algorithm, so the server
+ # doesn't have a useable signature algorithm for the certificate.
+ name => "SECLEVEL 5 client with ED448 key",
+ server => { "CipherString" => "DEFAULT:\@SECLEVEL=4",
+ "Certificate" => test_pem("server-ed448-cert.pem"),
+ "PrivateKey" => test_pem("server-ed448-key.pem") },
+ client => { "CipherString" => "DEFAULT:\@SECLEVEL=5",
+ "VerifyCAFile" => test_pem("root-ed448-cert.pem") },
+ test => { "ExpectedResult" => "ServerFail" },
+ },
+ {
+ name => "SECLEVEL 3 with P-384 key, X25519 ECDHE",
+ server => { "CipherString" => "DEFAULT:\@SECLEVEL=3",
+ "Certificate" => test_pem("p384-server-cert.pem"),
+ "PrivateKey" => test_pem("p384-server-key.pem"),
+ "Groups" => "X25519" },
+ client => { "CipherString" => "ECDHE:\@SECLEVEL=3",
+ "VerifyCAFile" => test_pem("p384-root.pem") },
+ test => { "ExpectedResult" => "Success" },
+ },
+);
+
+our @tests_tls1_2 = (
+ {
+ name => "SECLEVEL 3 with ED448 key, TLSv1.2",
+ server => { "CipherString" => "DEFAULT:\@SECLEVEL=3",
+ "Certificate" => test_pem("server-ed448-cert.pem"),
+ "PrivateKey" => test_pem("server-ed448-key.pem"),
+ "MaxProtocol" => "TLSv1.2" },
+ client => { "VerifyCAFile" => test_pem("root-ed448-cert.pem") },
+ test => { "ExpectedResult" => "Success" },
+ },
+);
+
+push @tests, @tests_ec unless disabled("ec");
+push @tests, @tests_tls1_2 unless disabled("tls1_2") || disabled("ec");
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/29-dtls-sctp-label-bug.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/29-dtls-sctp-label-bug.conf
new file mode 100644
index 000000000..24f9e04f1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/29-dtls-sctp-label-bug.conf
@@ -0,0 +1,116 @@
+# Generated with generate_ssl_tests.pl
+
+num_tests = 4
+
+test-0 = 0-SCTPLabelBug-good1
+test-1 = 1-SCTPLabelBug-good2
+test-2 = 2-SCTPLabelBug-bad1
+test-3 = 3-SCTPLabelBug-bad2
+# ===========================================================
+
+[0-SCTPLabelBug-good1]
+ssl_conf = 0-SCTPLabelBug-good1-ssl
+
+[0-SCTPLabelBug-good1-ssl]
+server = 0-SCTPLabelBug-good1-server
+client = 0-SCTPLabelBug-good1-client
+
+[0-SCTPLabelBug-good1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[0-SCTPLabelBug-good1-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-0]
+EnableClientSCTPLabelBug = No
+EnableServerSCTPLabelBug = No
+ExpectedResult = Success
+Method = DTLS
+UseSCTP = Yes
+
+
+# ===========================================================
+
+[1-SCTPLabelBug-good2]
+ssl_conf = 1-SCTPLabelBug-good2-ssl
+
+[1-SCTPLabelBug-good2-ssl]
+server = 1-SCTPLabelBug-good2-server
+client = 1-SCTPLabelBug-good2-client
+
+[1-SCTPLabelBug-good2-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[1-SCTPLabelBug-good2-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-1]
+EnableClientSCTPLabelBug = Yes
+EnableServerSCTPLabelBug = Yes
+ExpectedResult = Success
+Method = DTLS
+UseSCTP = Yes
+
+
+# ===========================================================
+
+[2-SCTPLabelBug-bad1]
+ssl_conf = 2-SCTPLabelBug-bad1-ssl
+
+[2-SCTPLabelBug-bad1-ssl]
+server = 2-SCTPLabelBug-bad1-server
+client = 2-SCTPLabelBug-bad1-client
+
+[2-SCTPLabelBug-bad1-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[2-SCTPLabelBug-bad1-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-2]
+EnableClientSCTPLabelBug = Yes
+EnableServerSCTPLabelBug = No
+ExpectedResult = ClientFail
+Method = DTLS
+UseSCTP = Yes
+
+
+# ===========================================================
+
+[3-SCTPLabelBug-bad2]
+ssl_conf = 3-SCTPLabelBug-bad2-ssl
+
+[3-SCTPLabelBug-bad2-ssl]
+server = 3-SCTPLabelBug-bad2-server
+client = 3-SCTPLabelBug-bad2-client
+
+[3-SCTPLabelBug-bad2-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-SCTPLabelBug-bad2-client]
+CipherString = DEFAULT
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+EnableClientSCTPLabelBug = No
+EnableServerSCTPLabelBug = Yes
+ExpectedResult = ClientFail
+Method = DTLS
+UseSCTP = Yes
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/29-dtls-sctp-label-bug.conf.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/29-dtls-sctp-label-bug.conf.in
new file mode 100644
index 000000000..97476999b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/29-dtls-sctp-label-bug.conf.in
@@ -0,0 +1,67 @@
+# -*- mode: perl; -*-
+# Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG handling
+
+use strict;
+use warnings;
+
+package ssltests;
+use OpenSSL::Test::Utils;
+
+our @tests = (
+ {
+ name => "SCTPLabelBug-good1",
+ server => {},
+ client => {},
+ test => {
+ "Method" => "DTLS",
+ "UseSCTP" => "Yes",
+ "EnableClientSCTPLabelBug" => "No",
+ "EnableServerSCTPLabelBug" => "No",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "SCTPLabelBug-good2",
+ server => {},
+ client => {},
+ test => {
+ "Method" => "DTLS",
+ "UseSCTP" => "Yes",
+ "EnableClientSCTPLabelBug" => "Yes",
+ "EnableServerSCTPLabelBug" => "Yes",
+ "ExpectedResult" => "Success"
+ }
+ },
+ {
+ name => "SCTPLabelBug-bad1",
+ server => {},
+ client => {},
+ test => {
+ "Method" => "DTLS",
+ "UseSCTP" => "Yes",
+ "EnableClientSCTPLabelBug" => "Yes",
+ "EnableServerSCTPLabelBug" => "No",
+ "ExpectedResult" => "ClientFail"
+ }
+ },
+ {
+ name => "SCTPLabelBug-bad2",
+ server => {},
+ client => {},
+ test => {
+ "Method" => "DTLS",
+ "UseSCTP" => "Yes",
+ "EnableClientSCTPLabelBug" => "No",
+ "EnableServerSCTPLabelBug" => "Yes",
+ "ExpectedResult" => "ClientFail"
+ }
+ },
+);
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/protocol_version.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/protocol_version.pm
new file mode 100644
index 000000000..943719e84
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/protocol_version.pm
@@ -0,0 +1,315 @@
+# -*- mode: perl; -*-
+# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+## Test version negotiation
+
+package ssltests;
+
+use strict;
+use warnings;
+
+use List::Util qw/max min/;
+
+use OpenSSL::Test;
+use OpenSSL::Test::Utils qw/anydisabled alldisabled disabled/;
+setup("no_test_here");
+
+my @tls_protocols = ("SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2", "TLSv1.3");
+# undef stands for "no limit".
+my @min_tls_protocols = (undef, "SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2", "TLSv1.3");
+my @max_tls_protocols = ("SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2", "TLSv1.3", undef);
+
+my @is_tls_disabled = anydisabled("ssl3", "tls1", "tls1_1", "tls1_2", "tls1_3");
+
+my $min_tls_enabled; my $max_tls_enabled;
+
+# Protocol configuration works in cascades, i.e.,
+# $no_tls1_1 disables TLSv1.1 and below.
+#
+# $min_enabled and $max_enabled will be correct if there is at least one
+# protocol enabled.
+foreach my $i (0..$#tls_protocols) {
+ if (!$is_tls_disabled[$i]) {
+ $min_tls_enabled = $i;
+ last;
+ }
+}
+
+foreach my $i (0..$#tls_protocols) {
+ if (!$is_tls_disabled[$i]) {
+ $max_tls_enabled = $i;
+ }
+}
+
+my @dtls_protocols = ("DTLSv1", "DTLSv1.2");
+# undef stands for "no limit".
+my @min_dtls_protocols = (undef, "DTLSv1", "DTLSv1.2");
+my @max_dtls_protocols = ("DTLSv1", "DTLSv1.2", undef);
+
+my @is_dtls_disabled = anydisabled("dtls1", "dtls1_2");
+
+my $min_dtls_enabled; my $max_dtls_enabled;
+
+# $min_enabled and $max_enabled will be correct if there is at least one
+# protocol enabled.
+foreach my $i (0..$#dtls_protocols) {
+ if (!$is_dtls_disabled[$i]) {
+ $min_dtls_enabled = $i;
+ last;
+ }
+}
+
+foreach my $i (0..$#dtls_protocols) {
+ if (!$is_dtls_disabled[$i]) {
+ $max_dtls_enabled = $i;
+ }
+}
+
+sub no_tests {
+ my ($dtls) = @_;
+ return $dtls ? alldisabled("dtls1", "dtls1_2") :
+ alldisabled("ssl3", "tls1", "tls1_1", "tls1_2", "tls1_3");
+}
+
+sub generate_version_tests {
+ my ($method) = @_;
+
+ my $dtls = $method eq "DTLS";
+ # Don't write the redundant "Method = TLS" into the configuration.
+ undef $method if !$dtls;
+
+ my @protocols = $dtls ? @dtls_protocols : @tls_protocols;
+ my @min_protocols = $dtls ? @min_dtls_protocols : @min_tls_protocols;
+ my @max_protocols = $dtls ? @max_dtls_protocols : @max_tls_protocols;
+ my $min_enabled = $dtls ? $min_dtls_enabled : $min_tls_enabled;
+ my $max_enabled = $dtls ? $max_dtls_enabled : $max_tls_enabled;
+
+ if (no_tests($dtls)) {
+ return;
+ }
+
+ my @tests = ();
+
+ for (my $sctp = 0; $sctp < ($dtls && !disabled("sctp") ? 2 : 1); $sctp++) {
+ foreach my $c_min (0..$#min_protocols) {
+ my $c_max_min = $c_min == 0 ? 0 : $c_min - 1;
+ foreach my $c_max ($c_max_min..$#max_protocols) {
+ foreach my $s_min (0..$#min_protocols) {
+ my $s_max_min = $s_min == 0 ? 0 : $s_min - 1;
+ foreach my $s_max ($s_max_min..$#max_protocols) {
+ my ($result, $protocol) =
+ expected_result($c_min, $c_max, $s_min, $s_max,
+ $min_enabled, $max_enabled,
+ \@protocols);
+ push @tests, {
+ "name" => "version-negotiation",
+ "client" => {
+ "MinProtocol" => $min_protocols[$c_min],
+ "MaxProtocol" => $max_protocols[$c_max],
+ },
+ "server" => {
+ "MinProtocol" => $min_protocols[$s_min],
+ "MaxProtocol" => $max_protocols[$s_max],
+ },
+ "test" => {
+ "ExpectedResult" => $result,
+ "ExpectedProtocol" => $protocol,
+ "Method" => $method,
+ }
+ };
+ $tests[-1]{"test"}{"UseSCTP"} = "Yes" if $sctp;
+ }
+ }
+ }
+ }
+ }
+ return @tests if disabled("tls1_3") || disabled("tls1_2") || $dtls;
+
+ #Add some version/ciphersuite sanity check tests
+ push @tests, {
+ "name" => "ciphersuite-sanity-check-client",
+ "client" => {
+ #Offering only <=TLSv1.2 ciphersuites with TLSv1.3 should fail
+ "CipherString" => "AES128-SHA",
+ "Ciphersuites" => "",
+ },
+ "server" => {
+ "MaxProtocol" => "TLSv1.2"
+ },
+ "test" => {
+ "ExpectedResult" => "ClientFail",
+ }
+ };
+ push @tests, {
+ "name" => "ciphersuite-sanity-check-server",
+ "client" => {
+ "CipherString" => "AES128-SHA",
+ "MaxProtocol" => "TLSv1.2"
+ },
+ "server" => {
+ #Allowing only <=TLSv1.2 ciphersuites with TLSv1.3 should fail
+ "CipherString" => "AES128-SHA",
+ "Ciphersuites" => "",
+ },
+ "test" => {
+ "ExpectedResult" => "ServerFail",
+ }
+ };
+
+ return @tests;
+}
+
+sub generate_resumption_tests {
+ my ($method) = @_;
+
+ my $dtls = $method eq "DTLS";
+ # Don't write the redundant "Method = TLS" into the configuration.
+ undef $method if !$dtls;
+
+ my @protocols = $dtls ? @dtls_protocols : @tls_protocols;
+ my $min_enabled = $dtls ? $min_dtls_enabled : $min_tls_enabled;
+ my $max_enabled = $dtls ? $max_dtls_enabled : $max_tls_enabled;
+
+ if (no_tests($dtls)) {
+ return;
+ }
+
+ my @server_tests = ();
+ my @client_tests = ();
+
+ # Obtain the first session against a fixed-version server/client.
+ foreach my $original_protocol($min_enabled..$max_enabled) {
+ # Upgrade or downgrade the server/client max version support and test
+ # that it upgrades, downgrades or resumes the session as well.
+ foreach my $resume_protocol($min_enabled..$max_enabled) {
+ my $resumption_expected;
+ # We should only resume on exact version match.
+ if ($original_protocol eq $resume_protocol) {
+ $resumption_expected = "Yes";
+ } else {
+ $resumption_expected = "No";
+ }
+
+ for (my $sctp = 0; $sctp < ($dtls && !disabled("sctp") ? 2 : 1);
+ $sctp++) {
+ foreach my $ticket ("SessionTicket", "-SessionTicket") {
+ # Client is flexible, server upgrades/downgrades.
+ push @server_tests, {
+ "name" => "resumption",
+ "client" => { },
+ "server" => {
+ "MinProtocol" => $protocols[$original_protocol],
+ "MaxProtocol" => $protocols[$original_protocol],
+ "Options" => $ticket,
+ },
+ "resume_server" => {
+ "MaxProtocol" => $protocols[$resume_protocol],
+ "Options" => $ticket,
+ },
+ "test" => {
+ "ExpectedProtocol" => $protocols[$resume_protocol],
+ "Method" => $method,
+ "HandshakeMode" => "Resume",
+ "ResumptionExpected" => $resumption_expected,
+ }
+ };
+ $server_tests[-1]{"test"}{"UseSCTP"} = "Yes" if $sctp;
+ # Server is flexible, client upgrades/downgrades.
+ push @client_tests, {
+ "name" => "resumption",
+ "client" => {
+ "MinProtocol" => $protocols[$original_protocol],
+ "MaxProtocol" => $protocols[$original_protocol],
+ },
+ "server" => {
+ "Options" => $ticket,
+ },
+ "resume_client" => {
+ "MaxProtocol" => $protocols[$resume_protocol],
+ },
+ "test" => {
+ "ExpectedProtocol" => $protocols[$resume_protocol],
+ "Method" => $method,
+ "HandshakeMode" => "Resume",
+ "ResumptionExpected" => $resumption_expected,
+ }
+ };
+ $client_tests[-1]{"test"}{"UseSCTP"} = "Yes" if $sctp;
+ }
+ }
+ }
+ }
+
+ if (!disabled("tls1_3") && !$dtls) {
+ push @client_tests, {
+ "name" => "resumption-with-hrr",
+ "client" => {
+ },
+ "server" => {
+ "Curves" => "P-256"
+ },
+ "resume_client" => {
+ },
+ "test" => {
+ "ExpectedProtocol" => "TLSv1.3",
+ "Method" => "TLS",
+ "HandshakeMode" => "Resume",
+ "ResumptionExpected" => "Yes",
+ }
+ };
+ }
+
+ return (@server_tests, @client_tests);
+}
+
+sub expected_result {
+ my ($c_min, $c_max, $s_min, $s_max, $min_enabled, $max_enabled,
+ $protocols) = @_;
+
+ # Adjust for "undef" (no limit).
+ $c_min = $c_min == 0 ? 0 : $c_min - 1;
+ $c_max = $c_max == scalar @$protocols ? $c_max - 1 : $c_max;
+ $s_min = $s_min == 0 ? 0 : $s_min - 1;
+ $s_max = $s_max == scalar @$protocols ? $s_max - 1 : $s_max;
+
+ # We now have at least one protocol enabled, so $min_enabled and
+ # $max_enabled are well-defined.
+ $c_min = max $c_min, $min_enabled;
+ $s_min = max $s_min, $min_enabled;
+ $c_max = min $c_max, $max_enabled;
+ $s_max = min $s_max, $max_enabled;
+
+ if ($c_min > $c_max) {
+ # Client should fail to even send a hello.
+ return ("ClientFail", undef);
+ } elsif ($s_min > $s_max) {
+ # Server has no protocols, should always fail.
+ return ("ServerFail", undef);
+ } elsif ($s_min > $c_max) {
+ # Server doesn't support the client range.
+ return ("ServerFail", undef);
+ } elsif ($c_min > $s_max) {
+ my @prots = @$protocols;
+ if ($prots[$c_max] eq "TLSv1.3") {
+ # Client will have sent supported_versions, so server will know
+ # that there are no overlapping versions.
+ return ("ServerFail", undef);
+ } else {
+ # Server will try with a version that is lower than the lowest
+ # supported client version.
+ return ("ClientFail", undef);
+ }
+ } else {
+ # Server and client ranges overlap.
+ my $max_common = $s_max < $c_max ? $s_max : $c_max;
+ return ("Success", $protocols->[$max_common]);
+ }
+}
+
+1;
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/ssltests_base.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/ssltests_base.pm
new file mode 100644
index 000000000..dc816429b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl-tests/ssltests_base.pm
@@ -0,0 +1,30 @@
+# -*- mode: perl; -*-
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+## SSL test configurations
+
+package ssltests;
+
+sub test_pem
+{
+ my ($file) = @_;
+ my $dir_sep = $^O ne "VMS" ? "/" : "";
+ return "\${ENV::TEST_CERTS_DIR}" . $dir_sep . $file,
+}
+
+our %base_server = (
+ "Certificate" => test_pem("servercert.pem"),
+ "PrivateKey" => test_pem("serverkey.pem"),
+ "CipherString" => "DEFAULT",
+);
+
+our %base_client = (
+ "VerifyCAFile" => test_pem("rootcert.pem"),
+ "VerifyMode" => "Peer",
+ "CipherString" => "DEFAULT",
+);
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_cert_table_internal_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_cert_table_internal_test.c
new file mode 100644
index 000000000..cb1e076bc
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_cert_table_internal_test.c
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/* Internal tests for the x509 and x509v3 modules */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/ssl.h>
+#include "testutil.h"
+#include "internal/nelem.h"
+
+#ifdef __VMS
+# pragma names save
+# pragma names as_is,shortened
+#endif
+
+#include "../ssl/ssl_local.h"
+#include "../ssl/ssl_cert_table.h"
+
+#ifdef __VMS
+# pragma names restore
+#endif
+
+#define test_cert_table(nid, amask, idx) \
+ do_test_cert_table(nid, amask, idx, #idx)
+
+static int do_test_cert_table(int nid, uint32_t amask, size_t idx,
+ const char *idxname)
+{
+ const SSL_CERT_LOOKUP *clu = &ssl_cert_info[idx];
+
+ if (clu->nid == nid && clu->amask == amask)
+ return 1;
+
+ TEST_error("Invalid table entry for certificate type %s, index %zu",
+ idxname, idx);
+ if (clu->nid != nid)
+ TEST_note("Expected %s, got %s\n", OBJ_nid2sn(nid),
+ OBJ_nid2sn(clu->nid));
+ if (clu->amask != amask)
+ TEST_note("Expected auth mask 0x%x, got 0x%x\n", amask, clu->amask);
+ return 0;
+}
+
+/* Sanity check of ssl_cert_table */
+
+static int test_ssl_cert_table(void)
+{
+ TEST_size_t_eq(OSSL_NELEM(ssl_cert_info), SSL_PKEY_NUM);
+ if (!test_cert_table(EVP_PKEY_RSA, SSL_aRSA, SSL_PKEY_RSA))
+ return 0;
+ if (!test_cert_table(EVP_PKEY_DSA, SSL_aDSS, SSL_PKEY_DSA_SIGN))
+ return 0;
+ if (!test_cert_table(EVP_PKEY_EC, SSL_aECDSA, SSL_PKEY_ECC))
+ return 0;
+ if (!test_cert_table(NID_id_GostR3410_2001, SSL_aGOST01, SSL_PKEY_GOST01))
+ return 0;
+ if (!test_cert_table(NID_id_GostR3410_2012_256, SSL_aGOST12,
+ SSL_PKEY_GOST12_256))
+ return 0;
+ if (!test_cert_table(NID_id_GostR3410_2012_512, SSL_aGOST12,
+ SSL_PKEY_GOST12_512))
+ return 0;
+ if (!test_cert_table(EVP_PKEY_ED25519, SSL_aECDSA, SSL_PKEY_ED25519))
+ return 0;
+ if (!test_cert_table(EVP_PKEY_ED448, SSL_aECDSA, SSL_PKEY_ED448))
+ return 0;
+
+ return 1;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_ssl_cert_table);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_ctx_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_ctx_test.c
new file mode 100644
index 000000000..87d476d9e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_ctx_test.c
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "testutil.h"
+#include <openssl/ssl.h>
+
+typedef struct {
+ int min_version;
+ int max_version;
+ int min_ok;
+ int max_ok;
+ int expected_min;
+ int expected_max;
+} version_test;
+
+static const version_test version_testdata[] = {
+ /* min max ok expected min expected max */
+ {0, 0, 1, 1, 0, 0},
+ {TLS1_VERSION, TLS1_2_VERSION, 1, 1, TLS1_VERSION, TLS1_2_VERSION},
+ {TLS1_2_VERSION, TLS1_2_VERSION, 1, 1, TLS1_2_VERSION, TLS1_2_VERSION},
+ {TLS1_2_VERSION, TLS1_1_VERSION, 1, 0, TLS1_2_VERSION, 0},
+ {7, 42, 0, 0, 0, 0},
+};
+
+static int test_set_min_max_version(int idx_tst)
+{
+ SSL_CTX *ctx = NULL;
+ SSL *ssl = NULL;
+ int testresult = 0;
+ version_test t = version_testdata[idx_tst];
+
+ ctx = SSL_CTX_new(TLS_server_method());
+ if (ctx == NULL)
+ goto end;
+
+ ssl = SSL_new(ctx);
+ if (ssl == NULL)
+ goto end;
+
+ if (!TEST_int_eq(SSL_CTX_set_min_proto_version(ctx, t.min_version), t.min_ok))
+ goto end;
+ if (!TEST_int_eq(SSL_CTX_set_max_proto_version(ctx, t.max_version), t.max_ok))
+ goto end;
+ if (!TEST_int_eq(SSL_CTX_get_min_proto_version(ctx), t.expected_min))
+ goto end;
+ if (!TEST_int_eq(SSL_CTX_get_max_proto_version(ctx), t.expected_max))
+ goto end;
+
+ if (!TEST_int_eq(SSL_set_min_proto_version(ssl, t.min_version), t.min_ok))
+ goto end;
+ if (!TEST_int_eq(SSL_set_max_proto_version(ssl, t.max_version), t.max_ok))
+ goto end;
+ if (!TEST_int_eq(SSL_get_min_proto_version(ssl), t.expected_min))
+ goto end;
+ if (!TEST_int_eq(SSL_get_max_proto_version(ssl), t.expected_max))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_free(ssl);
+ SSL_CTX_free(ctx);
+ return testresult;
+}
+
+int setup_tests(void)
+{
+ ADD_ALL_TESTS(test_set_min_max_version, sizeof(version_testdata) / sizeof(version_test));
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test.c
new file mode 100644
index 000000000..7453a9d10
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test.c
@@ -0,0 +1,530 @@
+/*
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/conf.h>
+#include <openssl/err.h>
+#include <openssl/ssl.h>
+
+#include "handshake_helper.h"
+#include "ssl_test_ctx.h"
+#include "testutil.h"
+
+static CONF *conf = NULL;
+
+/* Currently the section names are of the form test-<number>, e.g. test-15. */
+#define MAX_TESTCASE_NAME_LENGTH 100
+
+static const char *print_alert(int alert)
+{
+ return alert ? SSL_alert_desc_string_long(alert) : "no alert";
+}
+
+static int check_result(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ if (!TEST_int_eq(result->result, test_ctx->expected_result)) {
+ TEST_info("ExpectedResult mismatch: expected %s, got %s.",
+ ssl_test_result_name(test_ctx->expected_result),
+ ssl_test_result_name(result->result));
+ return 0;
+ }
+ return 1;
+}
+
+static int check_alerts(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ if (!TEST_int_eq(result->client_alert_sent,
+ result->client_alert_received)) {
+ TEST_info("Client sent alert %s but server received %s.",
+ print_alert(result->client_alert_sent),
+ print_alert(result->client_alert_received));
+ /*
+ * We can't bail here because the peer doesn't always get far enough
+ * to process a received alert. Specifically, in protocol version
+ * negotiation tests, we have the following scenario.
+ * Client supports TLS v1.2 only; Server supports TLS v1.1.
+ * Client proposes TLS v1.2; server responds with 1.1;
+ * Client now sends a protocol alert, using TLS v1.2 in the header.
+ * The server, however, rejects the alert because of version mismatch
+ * in the record layer; therefore, the server appears to never
+ * receive the alert.
+ */
+ /* return 0; */
+ }
+
+ if (!TEST_int_eq(result->server_alert_sent,
+ result->server_alert_received)) {
+ TEST_info("Server sent alert %s but client received %s.",
+ print_alert(result->server_alert_sent),
+ print_alert(result->server_alert_received));
+ /* return 0; */
+ }
+
+ /* Tolerate an alert if one wasn't explicitly specified in the test. */
+ if (test_ctx->expected_client_alert
+ /*
+ * The info callback alert value is computed as
+ * (s->s3->send_alert[0] << 8) | s->s3->send_alert[1]
+ * where the low byte is the alert code and the high byte is other stuff.
+ */
+ && (result->client_alert_sent & 0xff) != test_ctx->expected_client_alert) {
+ TEST_error("ClientAlert mismatch: expected %s, got %s.",
+ print_alert(test_ctx->expected_client_alert),
+ print_alert(result->client_alert_sent));
+ return 0;
+ }
+
+ if (test_ctx->expected_server_alert
+ && (result->server_alert_sent & 0xff) != test_ctx->expected_server_alert) {
+ TEST_error("ServerAlert mismatch: expected %s, got %s.",
+ print_alert(test_ctx->expected_server_alert),
+ print_alert(result->server_alert_sent));
+ return 0;
+ }
+
+ if (!TEST_int_le(result->client_num_fatal_alerts_sent, 1))
+ return 0;
+ if (!TEST_int_le(result->server_num_fatal_alerts_sent, 1))
+ return 0;
+ return 1;
+}
+
+static int check_protocol(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ if (!TEST_int_eq(result->client_protocol, result->server_protocol)) {
+ TEST_info("Client has protocol %s but server has %s.",
+ ssl_protocol_name(result->client_protocol),
+ ssl_protocol_name(result->server_protocol));
+ return 0;
+ }
+
+ if (test_ctx->expected_protocol) {
+ if (!TEST_int_eq(result->client_protocol,
+ test_ctx->expected_protocol)) {
+ TEST_info("Protocol mismatch: expected %s, got %s.\n",
+ ssl_protocol_name(test_ctx->expected_protocol),
+ ssl_protocol_name(result->client_protocol));
+ return 0;
+ }
+ }
+ return 1;
+}
+
+static int check_servername(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ if (!TEST_int_eq(result->servername, test_ctx->expected_servername)) {
+ TEST_info("Client ServerName mismatch, expected %s, got %s.",
+ ssl_servername_name(test_ctx->expected_servername),
+ ssl_servername_name(result->servername));
+ return 0;
+ }
+ return 1;
+}
+
+static int check_session_ticket(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ if (test_ctx->session_ticket_expected == SSL_TEST_SESSION_TICKET_IGNORE)
+ return 1;
+ if (!TEST_int_eq(result->session_ticket,
+ test_ctx->session_ticket_expected)) {
+ TEST_info("Client SessionTicketExpected mismatch, expected %s, got %s.",
+ ssl_session_ticket_name(test_ctx->session_ticket_expected),
+ ssl_session_ticket_name(result->session_ticket));
+ return 0;
+ }
+ return 1;
+}
+
+static int check_session_id(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ if (test_ctx->session_id_expected == SSL_TEST_SESSION_ID_IGNORE)
+ return 1;
+ if (!TEST_int_eq(result->session_id, test_ctx->session_id_expected)) {
+ TEST_info("Client SessionIdExpected mismatch, expected %s, got %s\n.",
+ ssl_session_id_name(test_ctx->session_id_expected),
+ ssl_session_id_name(result->session_id));
+ return 0;
+ }
+ return 1;
+}
+
+static int check_compression(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ if (!TEST_int_eq(result->compression, test_ctx->compression_expected))
+ return 0;
+ return 1;
+}
+#ifndef OPENSSL_NO_NEXTPROTONEG
+static int check_npn(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ int ret = 1;
+ if (!TEST_str_eq(result->client_npn_negotiated,
+ result->server_npn_negotiated))
+ ret = 0;
+ if (!TEST_str_eq(test_ctx->expected_npn_protocol,
+ result->client_npn_negotiated))
+ ret = 0;
+ return ret;
+}
+#endif
+
+static int check_alpn(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ int ret = 1;
+ if (!TEST_str_eq(result->client_alpn_negotiated,
+ result->server_alpn_negotiated))
+ ret = 0;
+ if (!TEST_str_eq(test_ctx->expected_alpn_protocol,
+ result->client_alpn_negotiated))
+ ret = 0;
+ return ret;
+}
+
+static int check_session_ticket_app_data(HANDSHAKE_RESULT *result,
+ SSL_TEST_CTX *test_ctx)
+{
+ size_t result_len = 0;
+ size_t expected_len = 0;
+
+ /* consider empty and NULL strings to be the same */
+ if (result->result_session_ticket_app_data != NULL)
+ result_len = strlen(result->result_session_ticket_app_data);
+ if (test_ctx->expected_session_ticket_app_data != NULL)
+ expected_len = strlen(test_ctx->expected_session_ticket_app_data);
+ if (result_len == 0 && expected_len == 0)
+ return 1;
+
+ if (!TEST_str_eq(result->result_session_ticket_app_data,
+ test_ctx->expected_session_ticket_app_data))
+ return 0;
+
+ return 1;
+}
+
+static int check_resumption(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ if (!TEST_int_eq(result->client_resumed, result->server_resumed))
+ return 0;
+ if (!TEST_int_eq(result->client_resumed, test_ctx->resumption_expected))
+ return 0;
+ return 1;
+}
+
+static int check_nid(const char *name, int expected_nid, int nid)
+{
+ if (expected_nid == 0 || expected_nid == nid)
+ return 1;
+ TEST_error("%s type mismatch, %s vs %s\n",
+ name, OBJ_nid2ln(expected_nid),
+ nid == NID_undef ? "absent" : OBJ_nid2ln(nid));
+ return 0;
+}
+
+static void print_ca_names(STACK_OF(X509_NAME) *names)
+{
+ int i;
+
+ if (names == NULL || sk_X509_NAME_num(names) == 0) {
+ TEST_note(" <empty>");
+ return;
+ }
+ for (i = 0; i < sk_X509_NAME_num(names); i++) {
+ X509_NAME_print_ex(bio_err, sk_X509_NAME_value(names, i), 4,
+ XN_FLAG_ONELINE);
+ BIO_puts(bio_err, "\n");
+ }
+}
+
+static int check_ca_names(const char *name,
+ STACK_OF(X509_NAME) *expected_names,
+ STACK_OF(X509_NAME) *names)
+{
+ int i;
+
+ if (expected_names == NULL)
+ return 1;
+ if (names == NULL || sk_X509_NAME_num(names) == 0) {
+ if (TEST_int_eq(sk_X509_NAME_num(expected_names), 0))
+ return 1;
+ goto err;
+ }
+ if (sk_X509_NAME_num(names) != sk_X509_NAME_num(expected_names))
+ goto err;
+ for (i = 0; i < sk_X509_NAME_num(names); i++) {
+ if (!TEST_int_eq(X509_NAME_cmp(sk_X509_NAME_value(names, i),
+ sk_X509_NAME_value(expected_names, i)),
+ 0)) {
+ goto err;
+ }
+ }
+ return 1;
+err:
+ TEST_info("%s: list mismatch", name);
+ TEST_note("Expected Names:");
+ print_ca_names(expected_names);
+ TEST_note("Received Names:");
+ print_ca_names(names);
+ return 0;
+}
+
+static int check_tmp_key(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ return check_nid("Tmp key", test_ctx->expected_tmp_key_type,
+ result->tmp_key_type);
+}
+
+static int check_server_cert_type(HANDSHAKE_RESULT *result,
+ SSL_TEST_CTX *test_ctx)
+{
+ return check_nid("Server certificate", test_ctx->expected_server_cert_type,
+ result->server_cert_type);
+}
+
+static int check_server_sign_hash(HANDSHAKE_RESULT *result,
+ SSL_TEST_CTX *test_ctx)
+{
+ return check_nid("Server signing hash", test_ctx->expected_server_sign_hash,
+ result->server_sign_hash);
+}
+
+static int check_server_sign_type(HANDSHAKE_RESULT *result,
+ SSL_TEST_CTX *test_ctx)
+{
+ return check_nid("Server signing", test_ctx->expected_server_sign_type,
+ result->server_sign_type);
+}
+
+static int check_server_ca_names(HANDSHAKE_RESULT *result,
+ SSL_TEST_CTX *test_ctx)
+{
+ return check_ca_names("Server CA names",
+ test_ctx->expected_server_ca_names,
+ result->server_ca_names);
+}
+
+static int check_client_cert_type(HANDSHAKE_RESULT *result,
+ SSL_TEST_CTX *test_ctx)
+{
+ return check_nid("Client certificate", test_ctx->expected_client_cert_type,
+ result->client_cert_type);
+}
+
+static int check_client_sign_hash(HANDSHAKE_RESULT *result,
+ SSL_TEST_CTX *test_ctx)
+{
+ return check_nid("Client signing hash", test_ctx->expected_client_sign_hash,
+ result->client_sign_hash);
+}
+
+static int check_client_sign_type(HANDSHAKE_RESULT *result,
+ SSL_TEST_CTX *test_ctx)
+{
+ return check_nid("Client signing", test_ctx->expected_client_sign_type,
+ result->client_sign_type);
+}
+
+static int check_client_ca_names(HANDSHAKE_RESULT *result,
+ SSL_TEST_CTX *test_ctx)
+{
+ return check_ca_names("Client CA names",
+ test_ctx->expected_client_ca_names,
+ result->client_ca_names);
+}
+
+static int check_cipher(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ if (test_ctx->expected_cipher == NULL)
+ return 1;
+ if (!TEST_ptr(result->cipher))
+ return 0;
+ if (!TEST_str_eq(test_ctx->expected_cipher,
+ result->cipher))
+ return 0;
+ return 1;
+}
+
+/*
+ * This could be further simplified by constructing an expected
+ * HANDSHAKE_RESULT, and implementing comparison methods for
+ * its fields.
+ */
+static int check_test(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ int ret = 1;
+ ret &= check_result(result, test_ctx);
+ ret &= check_alerts(result, test_ctx);
+ if (result->result == SSL_TEST_SUCCESS) {
+ ret &= check_protocol(result, test_ctx);
+ ret &= check_servername(result, test_ctx);
+ ret &= check_session_ticket(result, test_ctx);
+ ret &= check_compression(result, test_ctx);
+ ret &= check_session_id(result, test_ctx);
+ ret &= (result->session_ticket_do_not_call == 0);
+#ifndef OPENSSL_NO_NEXTPROTONEG
+ ret &= check_npn(result, test_ctx);
+#endif
+ ret &= check_cipher(result, test_ctx);
+ ret &= check_alpn(result, test_ctx);
+ ret &= check_session_ticket_app_data(result, test_ctx);
+ ret &= check_resumption(result, test_ctx);
+ ret &= check_tmp_key(result, test_ctx);
+ ret &= check_server_cert_type(result, test_ctx);
+ ret &= check_server_sign_hash(result, test_ctx);
+ ret &= check_server_sign_type(result, test_ctx);
+ ret &= check_server_ca_names(result, test_ctx);
+ ret &= check_client_cert_type(result, test_ctx);
+ ret &= check_client_sign_hash(result, test_ctx);
+ ret &= check_client_sign_type(result, test_ctx);
+ ret &= check_client_ca_names(result, test_ctx);
+ }
+ return ret;
+}
+
+static int test_handshake(int idx)
+{
+ int ret = 0;
+ SSL_CTX *server_ctx = NULL, *server2_ctx = NULL, *client_ctx = NULL,
+ *resume_server_ctx = NULL, *resume_client_ctx = NULL;
+ SSL_TEST_CTX *test_ctx = NULL;
+ HANDSHAKE_RESULT *result = NULL;
+ char test_app[MAX_TESTCASE_NAME_LENGTH];
+
+ BIO_snprintf(test_app, sizeof(test_app), "test-%d", idx);
+
+ test_ctx = SSL_TEST_CTX_create(conf, test_app);
+ if (!TEST_ptr(test_ctx))
+ goto err;
+
+#ifndef OPENSSL_NO_DTLS
+ if (test_ctx->method == SSL_TEST_METHOD_DTLS) {
+ server_ctx = SSL_CTX_new(DTLS_server_method());
+ if (!TEST_true(SSL_CTX_set_max_proto_version(server_ctx,
+ DTLS_MAX_VERSION)))
+ goto err;
+ if (test_ctx->extra.server.servername_callback !=
+ SSL_TEST_SERVERNAME_CB_NONE) {
+ if (!TEST_ptr(server2_ctx = SSL_CTX_new(DTLS_server_method())))
+ goto err;
+ }
+ client_ctx = SSL_CTX_new(DTLS_client_method());
+ if (!TEST_true(SSL_CTX_set_max_proto_version(client_ctx,
+ DTLS_MAX_VERSION)))
+ goto err;
+ if (test_ctx->handshake_mode == SSL_TEST_HANDSHAKE_RESUME) {
+ resume_server_ctx = SSL_CTX_new(DTLS_server_method());
+ if (!TEST_true(SSL_CTX_set_max_proto_version(resume_server_ctx,
+ DTLS_MAX_VERSION)))
+ goto err;
+ resume_client_ctx = SSL_CTX_new(DTLS_client_method());
+ if (!TEST_true(SSL_CTX_set_max_proto_version(resume_client_ctx,
+ DTLS_MAX_VERSION)))
+ goto err;
+ if (!TEST_ptr(resume_server_ctx)
+ || !TEST_ptr(resume_client_ctx))
+ goto err;
+ }
+ }
+#endif
+ if (test_ctx->method == SSL_TEST_METHOD_TLS) {
+ server_ctx = SSL_CTX_new(TLS_server_method());
+ if (!TEST_true(SSL_CTX_set_max_proto_version(server_ctx,
+ TLS_MAX_VERSION)))
+ goto err;
+ /* SNI on resumption isn't supported/tested yet. */
+ if (test_ctx->extra.server.servername_callback !=
+ SSL_TEST_SERVERNAME_CB_NONE) {
+ if (!TEST_ptr(server2_ctx = SSL_CTX_new(TLS_server_method())))
+ goto err;
+ if (!TEST_true(SSL_CTX_set_max_proto_version(server2_ctx,
+ TLS_MAX_VERSION)))
+ goto err;
+ }
+ client_ctx = SSL_CTX_new(TLS_client_method());
+ if (!TEST_true(SSL_CTX_set_max_proto_version(client_ctx,
+ TLS_MAX_VERSION)))
+ goto err;
+
+ if (test_ctx->handshake_mode == SSL_TEST_HANDSHAKE_RESUME) {
+ resume_server_ctx = SSL_CTX_new(TLS_server_method());
+ if (!TEST_true(SSL_CTX_set_max_proto_version(resume_server_ctx,
+ TLS_MAX_VERSION)))
+ goto err;
+ resume_client_ctx = SSL_CTX_new(TLS_client_method());
+ if (!TEST_true(SSL_CTX_set_max_proto_version(resume_client_ctx,
+ TLS_MAX_VERSION)))
+ goto err;
+ if (!TEST_ptr(resume_server_ctx)
+ || !TEST_ptr(resume_client_ctx))
+ goto err;
+ }
+ }
+
+#ifdef OPENSSL_NO_AUTOLOAD_CONFIG
+ if (!TEST_true(OPENSSL_init_ssl(OPENSSL_INIT_LOAD_CONFIG, NULL)))
+ goto err;
+#endif
+
+ if (!TEST_ptr(server_ctx)
+ || !TEST_ptr(client_ctx)
+ || !TEST_int_gt(CONF_modules_load(conf, test_app, 0), 0))
+ goto err;
+
+ if (!SSL_CTX_config(server_ctx, "server")
+ || !SSL_CTX_config(client_ctx, "client")) {
+ goto err;
+ }
+
+ if (server2_ctx != NULL && !SSL_CTX_config(server2_ctx, "server2"))
+ goto err;
+ if (resume_server_ctx != NULL
+ && !SSL_CTX_config(resume_server_ctx, "resume-server"))
+ goto err;
+ if (resume_client_ctx != NULL
+ && !SSL_CTX_config(resume_client_ctx, "resume-client"))
+ goto err;
+
+ result = do_handshake(server_ctx, server2_ctx, client_ctx,
+ resume_server_ctx, resume_client_ctx, test_ctx);
+
+ if (result != NULL)
+ ret = check_test(result, test_ctx);
+
+err:
+ CONF_modules_unload(0);
+ SSL_CTX_free(server_ctx);
+ SSL_CTX_free(server2_ctx);
+ SSL_CTX_free(client_ctx);
+ SSL_CTX_free(resume_server_ctx);
+ SSL_CTX_free(resume_client_ctx);
+ SSL_TEST_CTX_free(test_ctx);
+ HANDSHAKE_RESULT_free(result);
+ return ret;
+}
+
+int setup_tests(void)
+{
+ long num_tests;
+
+ if (!TEST_ptr(conf = NCONF_new(NULL))
+ /* argv[1] should point to the test conf file */
+ || !TEST_int_gt(NCONF_load(conf, test_get_argument(0), NULL), 0)
+ || !TEST_int_ne(NCONF_get_number_e(conf, NULL, "num_tests",
+ &num_tests), 0))
+ return 0;
+
+ ADD_ALL_TESTS(test_handshake, (int)num_tests);
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+ NCONF_free(conf);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test.tmpl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test.tmpl
new file mode 100644
index 000000000..9506837f8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test.tmpl
@@ -0,0 +1,126 @@
+[{-$testname-}]
+ssl_conf = {-$testname-}-ssl
+
+[{-$testname-}-ssl]
+server = {-$testname-}-server
+client = {-$testname-}-client{-
+ # The following sections are optional.
+ $OUT = "";
+ if (%server2) {
+ $OUT .= "\nserver2 = $testname-server2";
+ } elsif ($reuse_server2) {
+ $OUT .= "\nserver2 = $testname-server";
+ }
+ if (%resume_server) {
+ $OUT .= "\nresume-server = $testname-resume-server";
+ } elsif ($reuse_resume_server) {
+ $OUT .= "\nresume-server = $testname-server";
+ }
+ if (%resume_client) {
+ $OUT .= "\nresume-client = $testname-resume-client";
+ } elsif ($reuse_resume_client) {
+ $OUT .= "\nresume-client = $testname-client";
+ }
+-}
+
+[{-$testname-}-server]
+{-
+ foreach my $key (sort keys %server) {
+ # Emitted in the test section.
+ next if ($key eq "extra");
+ $OUT .= qq{$key} . " = " . qq{$server{$key}\n} if defined $server{$key};
+ }
+ if (%server2) {
+ $OUT .= "\n[$testname-server2]\n";
+ foreach my $key (sort keys %server2) {
+ next if ($key eq "extra");
+ $OUT .= qq{$key} . " = " . qq{$server2{$key}\n} if defined $server2{$key};
+ }
+ }
+ if (%resume_server) {
+ $OUT .= "\n[$testname-resume-server]\n";
+ foreach my $key (sort keys %resume_server) {
+ next if ($key eq "extra");
+ $OUT .= qq{$key} . " = " . qq{$resume_server{$key}\n} if defined $resume_server{$key};
+ }
+ }
+-}
+[{-$testname-}-client]
+{-
+ foreach my $key (sort keys %client) {
+ next if ($key eq "extra");
+ $OUT .= qq{$key} . " = " . qq{$client{$key}\n} if defined $client{$key};
+ }
+ if (%resume_client) {
+ $OUT .= "\n[$testname-resume-client]\n";
+ foreach my $key (sort keys %resume_client) {
+ next if ($key eq "extra");
+ $OUT .= qq{$key} . " = " . qq{$resume_client{$key}\n} if defined $resume_client{$key};
+ }
+ }
+-}
+[test-{-$idx-}]
+{-
+ foreach my $key (sort keys %test) {
+ $OUT .= qq{$key} ." = " . qq{$test{$key}\n} if defined $test{$key};
+ }
+
+ # The extra server/client configuration sections.
+ if ($server{"extra"}) {
+ $OUT .= "server = $testname-server-extra\n";
+ }
+ if (%server2 && $server2{"extra"}) {
+ $OUT .= "server2 = $testname-server2-extra\n";
+ } elsif ($reuse_server2 && $server{"extra"}) {
+ $OUT .= "server2 = $testname-server-extra\n";
+ }
+ if (%resume_server && $resume_server{"extra"}) {
+ $OUT .= "resume-server = $testname-resume-server-extra\n";
+ } elsif ($reuse_resume_server && $server{"extra"}) {
+ $OUT .= "resume-server = $testname-server-extra\n";
+ }
+ if ($client{"extra"}) {
+ $OUT .= "client = $testname-client-extra\n";
+ }
+ if (%resume_client && $resume_client{"extra"}) {
+ $OUT .= "resume-client = $testname-resume-client-extra\n";
+ } elsif ($reuse_resume_client && $client{"extra"}) {
+ $OUT .= "resume-client = $testname-client-extra\n";
+ }
+
+ if ($server{"extra"}) {
+ $OUT .= "\n[$testname-server-extra]\n";
+ foreach my $key (sort keys %{$server{"extra"}}) {
+ $OUT .= qq{$key} . " = " . qq{$server{"extra"}{$key}\n}
+ if defined $server{"extra"}{$key};
+ }
+ }
+ if (%server2 && $server2{"extra"}) {
+ $OUT .= "\n[$testname-server2-extra]\n";
+ foreach my $key (sort keys %{$server2{"extra"}}) {
+ $OUT .= qq{$key} . " = " . qq{$server2{"extra"}{$key}\n}
+ if defined $server2{"extra"}{$key};
+ }
+ }
+ if (%resume_server && $resume_server{"extra"}) {
+ $OUT .= "\n[$testname-resume-server-extra]\n";
+ foreach my $key (sort keys %{$resume_server{"extra"}}) {
+ $OUT .= qq{$key} . " = " . qq{$resume_server{"extra"}{$key}\n}
+ if defined $resume_server{"extra"}{$key};
+ }
+ }
+ if ($client{"extra"}) {
+ $OUT .= "\n[$testname-client-extra]\n";
+ foreach my $key (sort keys %{$client{"extra"}}) {
+ $OUT .= qq{$key} . " = " . qq{$client{"extra"}{$key}\n}
+ if defined $client{"extra"}{$key};
+ }
+ }
+ if (%resume_client && $resume_client{"extra"}) {
+ $OUT .= "\n[$testname-resume-client-extra]\n";
+ foreach my $key (sort keys %{$resume_client{"extra"}}) {
+ $OUT .= qq{$key} . " = " . qq{$resume_client{"extra"}{$key}\n}
+ if defined $resume_client{"extra"}{$key};
+ }
+ }
+-}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test_ctx.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test_ctx.c
new file mode 100644
index 000000000..6cdced5a1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test_ctx.c
@@ -0,0 +1,895 @@
+/*
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+
+#include <openssl/e_os2.h>
+#include <openssl/crypto.h>
+
+#include "internal/nelem.h"
+#include "ssl_test_ctx.h"
+#include "testutil.h"
+
+#ifdef OPENSSL_SYS_WINDOWS
+# define strcasecmp _stricmp
+#endif
+
+static const int default_app_data_size = 256;
+/* Default set to be as small as possible to exercise fragmentation. */
+static const int default_max_fragment_size = 512;
+
+static int parse_boolean(const char *value, int *result)
+{
+ if (strcasecmp(value, "Yes") == 0) {
+ *result = 1;
+ return 1;
+ }
+ else if (strcasecmp(value, "No") == 0) {
+ *result = 0;
+ return 1;
+ }
+ TEST_error("parse_boolean given: '%s'", value);
+ return 0;
+}
+
+#define IMPLEMENT_SSL_TEST_BOOL_OPTION(struct_type, name, field) \
+ static int parse_##name##_##field(struct_type *ctx, const char *value) \
+ { \
+ return parse_boolean(value, &ctx->field); \
+ }
+
+#define IMPLEMENT_SSL_TEST_STRING_OPTION(struct_type, name, field) \
+ static int parse_##name##_##field(struct_type *ctx, const char *value) \
+ { \
+ OPENSSL_free(ctx->field); \
+ ctx->field = OPENSSL_strdup(value); \
+ return TEST_ptr(ctx->field); \
+ }
+
+#define IMPLEMENT_SSL_TEST_INT_OPTION(struct_type, name, field) \
+ static int parse_##name##_##field(struct_type *ctx, const char *value) \
+ { \
+ ctx->field = atoi(value); \
+ return 1; \
+ }
+
+/* True enums and other test configuration values that map to an int. */
+typedef struct {
+ const char *name;
+ int value;
+} test_enum;
+
+
+__owur static int parse_enum(const test_enum *enums, size_t num_enums,
+ int *value, const char *name)
+{
+ size_t i;
+ for (i = 0; i < num_enums; i++) {
+ if (strcmp(enums[i].name, name) == 0) {
+ *value = enums[i].value;
+ return 1;
+ }
+ }
+ return 0;
+}
+
+static const char *enum_name(const test_enum *enums, size_t num_enums,
+ int value)
+{
+ size_t i;
+ for (i = 0; i < num_enums; i++) {
+ if (enums[i].value == value) {
+ return enums[i].name;
+ }
+ }
+ return "InvalidValue";
+}
+
+
+/* ExpectedResult */
+
+static const test_enum ssl_test_results[] = {
+ {"Success", SSL_TEST_SUCCESS},
+ {"ServerFail", SSL_TEST_SERVER_FAIL},
+ {"ClientFail", SSL_TEST_CLIENT_FAIL},
+ {"InternalError", SSL_TEST_INTERNAL_ERROR},
+ {"FirstHandshakeFailed", SSL_TEST_FIRST_HANDSHAKE_FAILED},
+};
+
+__owur static int parse_expected_result(SSL_TEST_CTX *test_ctx, const char *value)
+{
+ int ret_value;
+ if (!parse_enum(ssl_test_results, OSSL_NELEM(ssl_test_results),
+ &ret_value, value)) {
+ return 0;
+ }
+ test_ctx->expected_result = ret_value;
+ return 1;
+}
+
+const char *ssl_test_result_name(ssl_test_result_t result)
+{
+ return enum_name(ssl_test_results, OSSL_NELEM(ssl_test_results), result);
+}
+
+/* ExpectedClientAlert / ExpectedServerAlert */
+
+static const test_enum ssl_alerts[] = {
+ {"UnknownCA", SSL_AD_UNKNOWN_CA},
+ {"HandshakeFailure", SSL_AD_HANDSHAKE_FAILURE},
+ {"UnrecognizedName", SSL_AD_UNRECOGNIZED_NAME},
+ {"BadCertificate", SSL_AD_BAD_CERTIFICATE},
+ {"NoApplicationProtocol", SSL_AD_NO_APPLICATION_PROTOCOL},
+ {"CertificateRequired", SSL_AD_CERTIFICATE_REQUIRED},
+};
+
+__owur static int parse_alert(int *alert, const char *value)
+{
+ return parse_enum(ssl_alerts, OSSL_NELEM(ssl_alerts), alert, value);
+}
+
+__owur static int parse_client_alert(SSL_TEST_CTX *test_ctx, const char *value)
+{
+ return parse_alert(&test_ctx->expected_client_alert, value);
+}
+
+__owur static int parse_server_alert(SSL_TEST_CTX *test_ctx, const char *value)
+{
+ return parse_alert(&test_ctx->expected_server_alert, value);
+}
+
+const char *ssl_alert_name(int alert)
+{
+ return enum_name(ssl_alerts, OSSL_NELEM(ssl_alerts), alert);
+}
+
+/* ExpectedProtocol */
+
+static const test_enum ssl_protocols[] = {
+ {"TLSv1.3", TLS1_3_VERSION},
+ {"TLSv1.2", TLS1_2_VERSION},
+ {"TLSv1.1", TLS1_1_VERSION},
+ {"TLSv1", TLS1_VERSION},
+ {"SSLv3", SSL3_VERSION},
+ {"DTLSv1", DTLS1_VERSION},
+ {"DTLSv1.2", DTLS1_2_VERSION},
+};
+
+__owur static int parse_protocol(SSL_TEST_CTX *test_ctx, const char *value)
+{
+ return parse_enum(ssl_protocols, OSSL_NELEM(ssl_protocols),
+ &test_ctx->expected_protocol, value);
+}
+
+const char *ssl_protocol_name(int protocol)
+{
+ return enum_name(ssl_protocols, OSSL_NELEM(ssl_protocols), protocol);
+}
+
+/* VerifyCallback */
+
+static const test_enum ssl_verify_callbacks[] = {
+ {"None", SSL_TEST_VERIFY_NONE},
+ {"AcceptAll", SSL_TEST_VERIFY_ACCEPT_ALL},
+ {"RejectAll", SSL_TEST_VERIFY_REJECT_ALL},
+};
+
+__owur static int parse_client_verify_callback(SSL_TEST_CLIENT_CONF *client_conf,
+ const char *value)
+{
+ int ret_value;
+ if (!parse_enum(ssl_verify_callbacks, OSSL_NELEM(ssl_verify_callbacks),
+ &ret_value, value)) {
+ return 0;
+ }
+ client_conf->verify_callback = ret_value;
+ return 1;
+}
+
+const char *ssl_verify_callback_name(ssl_verify_callback_t callback)
+{
+ return enum_name(ssl_verify_callbacks, OSSL_NELEM(ssl_verify_callbacks),
+ callback);
+}
+
+/* ServerName */
+
+static const test_enum ssl_servername[] = {
+ {"None", SSL_TEST_SERVERNAME_NONE},
+ {"server1", SSL_TEST_SERVERNAME_SERVER1},
+ {"server2", SSL_TEST_SERVERNAME_SERVER2},
+ {"invalid", SSL_TEST_SERVERNAME_INVALID},
+};
+
+__owur static int parse_servername(SSL_TEST_CLIENT_CONF *client_conf,
+ const char *value)
+{
+ int ret_value;
+ if (!parse_enum(ssl_servername, OSSL_NELEM(ssl_servername),
+ &ret_value, value)) {
+ return 0;
+ }
+ client_conf->servername = ret_value;
+ return 1;
+}
+
+__owur static int parse_expected_servername(SSL_TEST_CTX *test_ctx,
+ const char *value)
+{
+ int ret_value;
+ if (!parse_enum(ssl_servername, OSSL_NELEM(ssl_servername),
+ &ret_value, value)) {
+ return 0;
+ }
+ test_ctx->expected_servername = ret_value;
+ return 1;
+}
+
+const char *ssl_servername_name(ssl_servername_t server)
+{
+ return enum_name(ssl_servername, OSSL_NELEM(ssl_servername),
+ server);
+}
+
+/* ServerNameCallback */
+
+static const test_enum ssl_servername_callbacks[] = {
+ {"None", SSL_TEST_SERVERNAME_CB_NONE},
+ {"IgnoreMismatch", SSL_TEST_SERVERNAME_IGNORE_MISMATCH},
+ {"RejectMismatch", SSL_TEST_SERVERNAME_REJECT_MISMATCH},
+ {"ClientHelloIgnoreMismatch",
+ SSL_TEST_SERVERNAME_CLIENT_HELLO_IGNORE_MISMATCH},
+ {"ClientHelloRejectMismatch",
+ SSL_TEST_SERVERNAME_CLIENT_HELLO_REJECT_MISMATCH},
+ {"ClientHelloNoV12", SSL_TEST_SERVERNAME_CLIENT_HELLO_NO_V12},
+};
+
+__owur static int parse_servername_callback(SSL_TEST_SERVER_CONF *server_conf,
+ const char *value)
+{
+ int ret_value;
+ if (!parse_enum(ssl_servername_callbacks,
+ OSSL_NELEM(ssl_servername_callbacks), &ret_value, value)) {
+ return 0;
+ }
+ server_conf->servername_callback = ret_value;
+ return 1;
+}
+
+const char *ssl_servername_callback_name(ssl_servername_callback_t callback)
+{
+ return enum_name(ssl_servername_callbacks,
+ OSSL_NELEM(ssl_servername_callbacks), callback);
+}
+
+/* SessionTicketExpected */
+
+static const test_enum ssl_session_ticket[] = {
+ {"Ignore", SSL_TEST_SESSION_TICKET_IGNORE},
+ {"Yes", SSL_TEST_SESSION_TICKET_YES},
+ {"No", SSL_TEST_SESSION_TICKET_NO},
+};
+
+__owur static int parse_session_ticket(SSL_TEST_CTX *test_ctx, const char *value)
+{
+ int ret_value;
+ if (!parse_enum(ssl_session_ticket, OSSL_NELEM(ssl_session_ticket),
+ &ret_value, value)) {
+ return 0;
+ }
+ test_ctx->session_ticket_expected = ret_value;
+ return 1;
+}
+
+const char *ssl_session_ticket_name(ssl_session_ticket_t server)
+{
+ return enum_name(ssl_session_ticket,
+ OSSL_NELEM(ssl_session_ticket),
+ server);
+}
+
+/* CompressionExpected */
+
+IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CTX, test, compression_expected)
+
+/* SessionIdExpected */
+
+static const test_enum ssl_session_id[] = {
+ {"Ignore", SSL_TEST_SESSION_ID_IGNORE},
+ {"Yes", SSL_TEST_SESSION_ID_YES},
+ {"No", SSL_TEST_SESSION_ID_NO},
+};
+
+__owur static int parse_session_id(SSL_TEST_CTX *test_ctx, const char *value)
+{
+ int ret_value;
+ if (!parse_enum(ssl_session_id, OSSL_NELEM(ssl_session_id),
+ &ret_value, value)) {
+ return 0;
+ }
+ test_ctx->session_id_expected = ret_value;
+ return 1;
+}
+
+const char *ssl_session_id_name(ssl_session_id_t server)
+{
+ return enum_name(ssl_session_id,
+ OSSL_NELEM(ssl_session_id),
+ server);
+}
+
+/* Method */
+
+static const test_enum ssl_test_methods[] = {
+ {"TLS", SSL_TEST_METHOD_TLS},
+ {"DTLS", SSL_TEST_METHOD_DTLS},
+};
+
+__owur static int parse_test_method(SSL_TEST_CTX *test_ctx, const char *value)
+{
+ int ret_value;
+ if (!parse_enum(ssl_test_methods, OSSL_NELEM(ssl_test_methods),
+ &ret_value, value)) {
+ return 0;
+ }
+ test_ctx->method = ret_value;
+ return 1;
+}
+
+const char *ssl_test_method_name(ssl_test_method_t method)
+{
+ return enum_name(ssl_test_methods, OSSL_NELEM(ssl_test_methods), method);
+}
+
+/* NPN and ALPN options */
+
+IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CLIENT_CONF, client, npn_protocols)
+IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_SERVER_CONF, server, npn_protocols)
+IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CTX, test, expected_npn_protocol)
+IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CLIENT_CONF, client, alpn_protocols)
+IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_SERVER_CONF, server, alpn_protocols)
+IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CTX, test, expected_alpn_protocol)
+
+/* SRP options */
+IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CLIENT_CONF, client, srp_user)
+IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_SERVER_CONF, server, srp_user)
+IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CLIENT_CONF, client, srp_password)
+IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_SERVER_CONF, server, srp_password)
+
+/* Session Ticket App Data options */
+IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CTX, test, expected_session_ticket_app_data)
+IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_SERVER_CONF, server, session_ticket_app_data)
+
+/* Handshake mode */
+
+static const test_enum ssl_handshake_modes[] = {
+ {"Simple", SSL_TEST_HANDSHAKE_SIMPLE},
+ {"Resume", SSL_TEST_HANDSHAKE_RESUME},
+ {"RenegotiateServer", SSL_TEST_HANDSHAKE_RENEG_SERVER},
+ {"RenegotiateClient", SSL_TEST_HANDSHAKE_RENEG_CLIENT},
+ {"KeyUpdateServer", SSL_TEST_HANDSHAKE_KEY_UPDATE_SERVER},
+ {"KeyUpdateClient", SSL_TEST_HANDSHAKE_KEY_UPDATE_CLIENT},
+ {"PostHandshakeAuth", SSL_TEST_HANDSHAKE_POST_HANDSHAKE_AUTH},
+};
+
+__owur static int parse_handshake_mode(SSL_TEST_CTX *test_ctx, const char *value)
+{
+ int ret_value;
+ if (!parse_enum(ssl_handshake_modes, OSSL_NELEM(ssl_handshake_modes),
+ &ret_value, value)) {
+ return 0;
+ }
+ test_ctx->handshake_mode = ret_value;
+ return 1;
+}
+
+const char *ssl_handshake_mode_name(ssl_handshake_mode_t mode)
+{
+ return enum_name(ssl_handshake_modes, OSSL_NELEM(ssl_handshake_modes),
+ mode);
+}
+
+/* Renegotiation Ciphersuites */
+
+IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CLIENT_CONF, client, reneg_ciphers)
+
+/* KeyUpdateType */
+
+static const test_enum ssl_key_update_types[] = {
+ {"KeyUpdateRequested", SSL_KEY_UPDATE_REQUESTED},
+ {"KeyUpdateNotRequested", SSL_KEY_UPDATE_NOT_REQUESTED},
+};
+
+__owur static int parse_key_update_type(SSL_TEST_CTX *test_ctx, const char *value)
+{
+ int ret_value;
+ if (!parse_enum(ssl_key_update_types, OSSL_NELEM(ssl_key_update_types),
+ &ret_value, value)) {
+ return 0;
+ }
+ test_ctx->key_update_type = ret_value;
+ return 1;
+}
+
+/* CT Validation */
+
+static const test_enum ssl_ct_validation_modes[] = {
+ {"None", SSL_TEST_CT_VALIDATION_NONE},
+ {"Permissive", SSL_TEST_CT_VALIDATION_PERMISSIVE},
+ {"Strict", SSL_TEST_CT_VALIDATION_STRICT},
+};
+
+__owur static int parse_ct_validation(SSL_TEST_CLIENT_CONF *client_conf,
+ const char *value)
+{
+ int ret_value;
+ if (!parse_enum(ssl_ct_validation_modes, OSSL_NELEM(ssl_ct_validation_modes),
+ &ret_value, value)) {
+ return 0;
+ }
+ client_conf->ct_validation = ret_value;
+ return 1;
+}
+
+const char *ssl_ct_validation_name(ssl_ct_validation_t mode)
+{
+ return enum_name(ssl_ct_validation_modes, OSSL_NELEM(ssl_ct_validation_modes),
+ mode);
+}
+
+IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CTX, test, resumption_expected)
+IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_SERVER_CONF, server, broken_session_ticket)
+IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CTX, test, use_sctp)
+IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CTX, test, enable_client_sctp_label_bug)
+IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CTX, test, enable_server_sctp_label_bug)
+
+/* CertStatus */
+
+static const test_enum ssl_certstatus[] = {
+ {"None", SSL_TEST_CERT_STATUS_NONE},
+ {"GoodResponse", SSL_TEST_CERT_STATUS_GOOD_RESPONSE},
+ {"BadResponse", SSL_TEST_CERT_STATUS_BAD_RESPONSE}
+};
+
+__owur static int parse_certstatus(SSL_TEST_SERVER_CONF *server_conf,
+ const char *value)
+{
+ int ret_value;
+ if (!parse_enum(ssl_certstatus, OSSL_NELEM(ssl_certstatus), &ret_value,
+ value)) {
+ return 0;
+ }
+ server_conf->cert_status = ret_value;
+ return 1;
+}
+
+const char *ssl_certstatus_name(ssl_cert_status_t cert_status)
+{
+ return enum_name(ssl_certstatus,
+ OSSL_NELEM(ssl_certstatus), cert_status);
+}
+
+/* ApplicationData */
+
+IMPLEMENT_SSL_TEST_INT_OPTION(SSL_TEST_CTX, test, app_data_size)
+
+
+/* MaxFragmentSize */
+
+IMPLEMENT_SSL_TEST_INT_OPTION(SSL_TEST_CTX, test, max_fragment_size)
+
+/* Maximum-Fragment-Length TLS extension mode */
+static const test_enum ssl_max_fragment_len_mode[] = {
+ {"None", TLSEXT_max_fragment_length_DISABLED},
+ { "512", TLSEXT_max_fragment_length_512},
+ {"1024", TLSEXT_max_fragment_length_1024},
+ {"2048", TLSEXT_max_fragment_length_2048},
+ {"4096", TLSEXT_max_fragment_length_4096}
+};
+
+__owur static int parse_max_fragment_len_mode(SSL_TEST_CLIENT_CONF *client_conf,
+ const char *value)
+{
+ int ret_value;
+
+ if (!parse_enum(ssl_max_fragment_len_mode,
+ OSSL_NELEM(ssl_max_fragment_len_mode), &ret_value, value)) {
+ return 0;
+ }
+ client_conf->max_fragment_len_mode = ret_value;
+ return 1;
+}
+
+const char *ssl_max_fragment_len_name(int MFL_mode)
+{
+ return enum_name(ssl_max_fragment_len_mode,
+ OSSL_NELEM(ssl_max_fragment_len_mode), MFL_mode);
+}
+
+
+/* Expected key and signature types */
+
+__owur static int parse_expected_key_type(int *ptype, const char *value)
+{
+ int nid;
+ const EVP_PKEY_ASN1_METHOD *ameth;
+
+ if (value == NULL)
+ return 0;
+ ameth = EVP_PKEY_asn1_find_str(NULL, value, -1);
+ if (ameth != NULL)
+ EVP_PKEY_asn1_get0_info(&nid, NULL, NULL, NULL, NULL, ameth);
+ else
+ nid = OBJ_sn2nid(value);
+ if (nid == NID_undef)
+ nid = OBJ_ln2nid(value);
+#ifndef OPENSSL_NO_EC
+ if (nid == NID_undef)
+ nid = EC_curve_nist2nid(value);
+#endif
+ if (nid == NID_undef)
+ return 0;
+ *ptype = nid;
+ return 1;
+}
+
+__owur static int parse_expected_tmp_key_type(SSL_TEST_CTX *test_ctx,
+ const char *value)
+{
+ return parse_expected_key_type(&test_ctx->expected_tmp_key_type, value);
+}
+
+__owur static int parse_expected_server_cert_type(SSL_TEST_CTX *test_ctx,
+ const char *value)
+{
+ return parse_expected_key_type(&test_ctx->expected_server_cert_type,
+ value);
+}
+
+__owur static int parse_expected_server_sign_type(SSL_TEST_CTX *test_ctx,
+ const char *value)
+{
+ return parse_expected_key_type(&test_ctx->expected_server_sign_type,
+ value);
+}
+
+__owur static int parse_expected_client_cert_type(SSL_TEST_CTX *test_ctx,
+ const char *value)
+{
+ return parse_expected_key_type(&test_ctx->expected_client_cert_type,
+ value);
+}
+
+__owur static int parse_expected_client_sign_type(SSL_TEST_CTX *test_ctx,
+ const char *value)
+{
+ return parse_expected_key_type(&test_ctx->expected_client_sign_type,
+ value);
+}
+
+
+/* Expected signing hash */
+
+__owur static int parse_expected_sign_hash(int *ptype, const char *value)
+{
+ int nid;
+
+ if (value == NULL)
+ return 0;
+ nid = OBJ_sn2nid(value);
+ if (nid == NID_undef)
+ nid = OBJ_ln2nid(value);
+ if (nid == NID_undef)
+ return 0;
+ *ptype = nid;
+ return 1;
+}
+
+__owur static int parse_expected_server_sign_hash(SSL_TEST_CTX *test_ctx,
+ const char *value)
+{
+ return parse_expected_sign_hash(&test_ctx->expected_server_sign_hash,
+ value);
+}
+
+__owur static int parse_expected_client_sign_hash(SSL_TEST_CTX *test_ctx,
+ const char *value)
+{
+ return parse_expected_sign_hash(&test_ctx->expected_client_sign_hash,
+ value);
+}
+
+__owur static int parse_expected_ca_names(STACK_OF(X509_NAME) **pnames,
+ const char *value)
+{
+ if (value == NULL)
+ return 0;
+ if (!strcmp(value, "empty"))
+ *pnames = sk_X509_NAME_new_null();
+ else
+ *pnames = SSL_load_client_CA_file(value);
+ return *pnames != NULL;
+}
+__owur static int parse_expected_server_ca_names(SSL_TEST_CTX *test_ctx,
+ const char *value)
+{
+ return parse_expected_ca_names(&test_ctx->expected_server_ca_names, value);
+}
+__owur static int parse_expected_client_ca_names(SSL_TEST_CTX *test_ctx,
+ const char *value)
+{
+ return parse_expected_ca_names(&test_ctx->expected_client_ca_names, value);
+}
+
+/* ExpectedCipher */
+
+IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CTX, test, expected_cipher)
+
+/* Client and Server PHA */
+
+IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CLIENT_CONF, client, enable_pha)
+IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_SERVER_CONF, server, force_pha)
+
+/* Known test options and their corresponding parse methods. */
+
+/* Top-level options. */
+typedef struct {
+ const char *name;
+ int (*parse)(SSL_TEST_CTX *test_ctx, const char *value);
+} ssl_test_ctx_option;
+
+static const ssl_test_ctx_option ssl_test_ctx_options[] = {
+ { "ExpectedResult", &parse_expected_result },
+ { "ExpectedClientAlert", &parse_client_alert },
+ { "ExpectedServerAlert", &parse_server_alert },
+ { "ExpectedProtocol", &parse_protocol },
+ { "ExpectedServerName", &parse_expected_servername },
+ { "SessionTicketExpected", &parse_session_ticket },
+ { "CompressionExpected", &parse_test_compression_expected },
+ { "SessionIdExpected", &parse_session_id },
+ { "Method", &parse_test_method },
+ { "ExpectedNPNProtocol", &parse_test_expected_npn_protocol },
+ { "ExpectedALPNProtocol", &parse_test_expected_alpn_protocol },
+ { "HandshakeMode", &parse_handshake_mode },
+ { "KeyUpdateType", &parse_key_update_type },
+ { "ResumptionExpected", &parse_test_resumption_expected },
+ { "ApplicationData", &parse_test_app_data_size },
+ { "MaxFragmentSize", &parse_test_max_fragment_size },
+ { "ExpectedTmpKeyType", &parse_expected_tmp_key_type },
+ { "ExpectedServerCertType", &parse_expected_server_cert_type },
+ { "ExpectedServerSignHash", &parse_expected_server_sign_hash },
+ { "ExpectedServerSignType", &parse_expected_server_sign_type },
+ { "ExpectedServerCANames", &parse_expected_server_ca_names },
+ { "ExpectedClientCertType", &parse_expected_client_cert_type },
+ { "ExpectedClientSignHash", &parse_expected_client_sign_hash },
+ { "ExpectedClientSignType", &parse_expected_client_sign_type },
+ { "ExpectedClientCANames", &parse_expected_client_ca_names },
+ { "UseSCTP", &parse_test_use_sctp },
+ { "EnableClientSCTPLabelBug", &parse_test_enable_client_sctp_label_bug },
+ { "EnableServerSCTPLabelBug", &parse_test_enable_server_sctp_label_bug },
+ { "ExpectedCipher", &parse_test_expected_cipher },
+ { "ExpectedSessionTicketAppData", &parse_test_expected_session_ticket_app_data },
+};
+
+/* Nested client options. */
+typedef struct {
+ const char *name;
+ int (*parse)(SSL_TEST_CLIENT_CONF *conf, const char *value);
+} ssl_test_client_option;
+
+static const ssl_test_client_option ssl_test_client_options[] = {
+ { "VerifyCallback", &parse_client_verify_callback },
+ { "ServerName", &parse_servername },
+ { "NPNProtocols", &parse_client_npn_protocols },
+ { "ALPNProtocols", &parse_client_alpn_protocols },
+ { "CTValidation", &parse_ct_validation },
+ { "RenegotiateCiphers", &parse_client_reneg_ciphers},
+ { "SRPUser", &parse_client_srp_user },
+ { "SRPPassword", &parse_client_srp_password },
+ { "MaxFragmentLenExt", &parse_max_fragment_len_mode },
+ { "EnablePHA", &parse_client_enable_pha },
+};
+
+/* Nested server options. */
+typedef struct {
+ const char *name;
+ int (*parse)(SSL_TEST_SERVER_CONF *conf, const char *value);
+} ssl_test_server_option;
+
+static const ssl_test_server_option ssl_test_server_options[] = {
+ { "ServerNameCallback", &parse_servername_callback },
+ { "NPNProtocols", &parse_server_npn_protocols },
+ { "ALPNProtocols", &parse_server_alpn_protocols },
+ { "BrokenSessionTicket", &parse_server_broken_session_ticket },
+ { "CertStatus", &parse_certstatus },
+ { "SRPUser", &parse_server_srp_user },
+ { "SRPPassword", &parse_server_srp_password },
+ { "ForcePHA", &parse_server_force_pha },
+ { "SessionTicketAppData", &parse_server_session_ticket_app_data },
+};
+
+SSL_TEST_CTX *SSL_TEST_CTX_new(void)
+{
+ SSL_TEST_CTX *ret;
+
+ /* The return code is checked by caller */
+ if ((ret = OPENSSL_zalloc(sizeof(*ret))) != NULL) {
+ ret->app_data_size = default_app_data_size;
+ ret->max_fragment_size = default_max_fragment_size;
+ }
+ return ret;
+}
+
+static void ssl_test_extra_conf_free_data(SSL_TEST_EXTRA_CONF *conf)
+{
+ OPENSSL_free(conf->client.npn_protocols);
+ OPENSSL_free(conf->server.npn_protocols);
+ OPENSSL_free(conf->server2.npn_protocols);
+ OPENSSL_free(conf->client.alpn_protocols);
+ OPENSSL_free(conf->server.alpn_protocols);
+ OPENSSL_free(conf->server2.alpn_protocols);
+ OPENSSL_free(conf->client.reneg_ciphers);
+ OPENSSL_free(conf->server.srp_user);
+ OPENSSL_free(conf->server.srp_password);
+ OPENSSL_free(conf->server2.srp_user);
+ OPENSSL_free(conf->server2.srp_password);
+ OPENSSL_free(conf->client.srp_user);
+ OPENSSL_free(conf->client.srp_password);
+ OPENSSL_free(conf->server.session_ticket_app_data);
+ OPENSSL_free(conf->server2.session_ticket_app_data);
+}
+
+static void ssl_test_ctx_free_extra_data(SSL_TEST_CTX *ctx)
+{
+ ssl_test_extra_conf_free_data(&ctx->extra);
+ ssl_test_extra_conf_free_data(&ctx->resume_extra);
+}
+
+void SSL_TEST_CTX_free(SSL_TEST_CTX *ctx)
+{
+ ssl_test_ctx_free_extra_data(ctx);
+ OPENSSL_free(ctx->expected_npn_protocol);
+ OPENSSL_free(ctx->expected_alpn_protocol);
+ OPENSSL_free(ctx->expected_session_ticket_app_data);
+ sk_X509_NAME_pop_free(ctx->expected_server_ca_names, X509_NAME_free);
+ sk_X509_NAME_pop_free(ctx->expected_client_ca_names, X509_NAME_free);
+ OPENSSL_free(ctx->expected_cipher);
+ OPENSSL_free(ctx);
+}
+
+static int parse_client_options(SSL_TEST_CLIENT_CONF *client, const CONF *conf,
+ const char *client_section)
+{
+ STACK_OF(CONF_VALUE) *sk_conf;
+ int i;
+ size_t j;
+
+ if (!TEST_ptr(sk_conf = NCONF_get_section(conf, client_section)))
+ return 0;
+
+ for (i = 0; i < sk_CONF_VALUE_num(sk_conf); i++) {
+ int found = 0;
+ const CONF_VALUE *option = sk_CONF_VALUE_value(sk_conf, i);
+ for (j = 0; j < OSSL_NELEM(ssl_test_client_options); j++) {
+ if (strcmp(option->name, ssl_test_client_options[j].name) == 0) {
+ if (!ssl_test_client_options[j].parse(client, option->value)) {
+ TEST_info("Bad value %s for option %s",
+ option->value, option->name);
+ return 0;
+ }
+ found = 1;
+ break;
+ }
+ }
+ if (!found) {
+ TEST_info("Unknown test option: %s", option->name);
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
+static int parse_server_options(SSL_TEST_SERVER_CONF *server, const CONF *conf,
+ const char *server_section)
+{
+ STACK_OF(CONF_VALUE) *sk_conf;
+ int i;
+ size_t j;
+
+ if (!TEST_ptr(sk_conf = NCONF_get_section(conf, server_section)))
+ return 0;
+
+ for (i = 0; i < sk_CONF_VALUE_num(sk_conf); i++) {
+ int found = 0;
+ const CONF_VALUE *option = sk_CONF_VALUE_value(sk_conf, i);
+ for (j = 0; j < OSSL_NELEM(ssl_test_server_options); j++) {
+ if (strcmp(option->name, ssl_test_server_options[j].name) == 0) {
+ if (!ssl_test_server_options[j].parse(server, option->value)) {
+ TEST_info("Bad value %s for option %s",
+ option->value, option->name);
+ return 0;
+ }
+ found = 1;
+ break;
+ }
+ }
+ if (!found) {
+ TEST_info("Unknown test option: %s", option->name);
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
+SSL_TEST_CTX *SSL_TEST_CTX_create(const CONF *conf, const char *test_section)
+{
+ STACK_OF(CONF_VALUE) *sk_conf = NULL;
+ SSL_TEST_CTX *ctx = NULL;
+ int i;
+ size_t j;
+
+ if (!TEST_ptr(sk_conf = NCONF_get_section(conf, test_section))
+ || !TEST_ptr(ctx = SSL_TEST_CTX_new()))
+ goto err;
+
+ for (i = 0; i < sk_CONF_VALUE_num(sk_conf); i++) {
+ int found = 0;
+ const CONF_VALUE *option = sk_CONF_VALUE_value(sk_conf, i);
+
+ /* Subsections */
+ if (strcmp(option->name, "client") == 0) {
+ if (!parse_client_options(&ctx->extra.client, conf, option->value))
+ goto err;
+ } else if (strcmp(option->name, "server") == 0) {
+ if (!parse_server_options(&ctx->extra.server, conf, option->value))
+ goto err;
+ } else if (strcmp(option->name, "server2") == 0) {
+ if (!parse_server_options(&ctx->extra.server2, conf, option->value))
+ goto err;
+ } else if (strcmp(option->name, "resume-client") == 0) {
+ if (!parse_client_options(&ctx->resume_extra.client, conf,
+ option->value))
+ goto err;
+ } else if (strcmp(option->name, "resume-server") == 0) {
+ if (!parse_server_options(&ctx->resume_extra.server, conf,
+ option->value))
+ goto err;
+ } else if (strcmp(option->name, "resume-server2") == 0) {
+ if (!parse_server_options(&ctx->resume_extra.server2, conf,
+ option->value))
+ goto err;
+ } else {
+ for (j = 0; j < OSSL_NELEM(ssl_test_ctx_options); j++) {
+ if (strcmp(option->name, ssl_test_ctx_options[j].name) == 0) {
+ if (!ssl_test_ctx_options[j].parse(ctx, option->value)) {
+ TEST_info("Bad value %s for option %s",
+ option->value, option->name);
+ goto err;
+ }
+ found = 1;
+ break;
+ }
+ }
+ if (!found) {
+ TEST_info("Unknown test option: %s", option->name);
+ goto err;
+ }
+ }
+ }
+
+ goto done;
+
+ err:
+ SSL_TEST_CTX_free(ctx);
+ ctx = NULL;
+ done:
+ return ctx;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test_ctx.h b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test_ctx.h
new file mode 100644
index 000000000..7e670c946
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test_ctx.h
@@ -0,0 +1,253 @@
+/*
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#ifndef OSSL_TEST_SSL_TEST_CTX_H
+#define OSSL_TEST_SSL_TEST_CTX_H
+
+#include <openssl/conf.h>
+#include <openssl/ssl.h>
+
+typedef enum {
+ SSL_TEST_SUCCESS = 0, /* Default */
+ SSL_TEST_SERVER_FAIL,
+ SSL_TEST_CLIENT_FAIL,
+ SSL_TEST_INTERNAL_ERROR,
+ /* Couldn't test resumption/renegotiation: original handshake failed. */
+ SSL_TEST_FIRST_HANDSHAKE_FAILED
+} ssl_test_result_t;
+
+typedef enum {
+ SSL_TEST_VERIFY_NONE = 0, /* Default */
+ SSL_TEST_VERIFY_ACCEPT_ALL,
+ SSL_TEST_VERIFY_REJECT_ALL
+} ssl_verify_callback_t;
+
+typedef enum {
+ SSL_TEST_SERVERNAME_NONE = 0, /* Default */
+ SSL_TEST_SERVERNAME_SERVER1,
+ SSL_TEST_SERVERNAME_SERVER2,
+ SSL_TEST_SERVERNAME_INVALID
+} ssl_servername_t;
+
+typedef enum {
+ SSL_TEST_SERVERNAME_CB_NONE = 0, /* Default */
+ SSL_TEST_SERVERNAME_IGNORE_MISMATCH,
+ SSL_TEST_SERVERNAME_REJECT_MISMATCH,
+ SSL_TEST_SERVERNAME_CLIENT_HELLO_IGNORE_MISMATCH,
+ SSL_TEST_SERVERNAME_CLIENT_HELLO_REJECT_MISMATCH,
+ SSL_TEST_SERVERNAME_CLIENT_HELLO_NO_V12
+} ssl_servername_callback_t;
+
+typedef enum {
+ SSL_TEST_SESSION_TICKET_IGNORE = 0, /* Default */
+ SSL_TEST_SESSION_TICKET_YES,
+ SSL_TEST_SESSION_TICKET_NO,
+ SSL_TEST_SESSION_TICKET_BROKEN /* Special test */
+} ssl_session_ticket_t;
+
+typedef enum {
+ SSL_TEST_COMPRESSION_NO = 0, /* Default */
+ SSL_TEST_COMPRESSION_YES
+} ssl_compression_t;
+
+typedef enum {
+ SSL_TEST_SESSION_ID_IGNORE = 0, /* Default */
+ SSL_TEST_SESSION_ID_YES,
+ SSL_TEST_SESSION_ID_NO
+} ssl_session_id_t;
+
+typedef enum {
+ SSL_TEST_METHOD_TLS = 0, /* Default */
+ SSL_TEST_METHOD_DTLS
+} ssl_test_method_t;
+
+typedef enum {
+ SSL_TEST_HANDSHAKE_SIMPLE = 0, /* Default */
+ SSL_TEST_HANDSHAKE_RESUME,
+ SSL_TEST_HANDSHAKE_RENEG_SERVER,
+ SSL_TEST_HANDSHAKE_RENEG_CLIENT,
+ SSL_TEST_HANDSHAKE_KEY_UPDATE_SERVER,
+ SSL_TEST_HANDSHAKE_KEY_UPDATE_CLIENT,
+ SSL_TEST_HANDSHAKE_POST_HANDSHAKE_AUTH
+} ssl_handshake_mode_t;
+
+typedef enum {
+ SSL_TEST_CT_VALIDATION_NONE = 0, /* Default */
+ SSL_TEST_CT_VALIDATION_PERMISSIVE,
+ SSL_TEST_CT_VALIDATION_STRICT
+} ssl_ct_validation_t;
+
+typedef enum {
+ SSL_TEST_CERT_STATUS_NONE = 0, /* Default */
+ SSL_TEST_CERT_STATUS_GOOD_RESPONSE,
+ SSL_TEST_CERT_STATUS_BAD_RESPONSE
+} ssl_cert_status_t;
+
+/*
+ * Server/client settings that aren't supported by the SSL CONF library,
+ * such as callbacks.
+ */
+typedef struct {
+ /* One of a number of predefined custom callbacks. */
+ ssl_verify_callback_t verify_callback;
+ /* One of a number of predefined server names use by the client */
+ ssl_servername_t servername;
+ /* Maximum Fragment Length extension mode */
+ int max_fragment_len_mode;
+ /* Supported NPN and ALPN protocols. A comma-separated list. */
+ char *npn_protocols;
+ char *alpn_protocols;
+ ssl_ct_validation_t ct_validation;
+ /* Ciphersuites to set on a renegotiation */
+ char *reneg_ciphers;
+ char *srp_user;
+ char *srp_password;
+ /* PHA enabled */
+ int enable_pha;
+} SSL_TEST_CLIENT_CONF;
+
+typedef struct {
+ /* SNI callback (server-side). */
+ ssl_servername_callback_t servername_callback;
+ /* Supported NPN and ALPN protocols. A comma-separated list. */
+ char *npn_protocols;
+ char *alpn_protocols;
+ /* Whether to set a broken session ticket callback. */
+ int broken_session_ticket;
+ /* Should we send a CertStatus message? */
+ ssl_cert_status_t cert_status;
+ /* An SRP user known to the server. */
+ char *srp_user;
+ char *srp_password;
+ /* Forced PHA */
+ int force_pha;
+ char *session_ticket_app_data;
+} SSL_TEST_SERVER_CONF;
+
+typedef struct {
+ SSL_TEST_CLIENT_CONF client;
+ SSL_TEST_SERVER_CONF server;
+ SSL_TEST_SERVER_CONF server2;
+} SSL_TEST_EXTRA_CONF;
+
+typedef struct {
+ /*
+ * Global test configuration. Does not change between handshakes.
+ */
+ /* Whether the server/client CTX should use DTLS or TLS. */
+ ssl_test_method_t method;
+ /* Whether to test a resumed/renegotiated handshake. */
+ ssl_handshake_mode_t handshake_mode;
+ /*
+ * How much application data to exchange (default is 256 bytes).
+ * Both peers will send |app_data_size| bytes interleaved.
+ */
+ int app_data_size;
+ /* Maximum send fragment size. */
+ int max_fragment_size;
+ /* KeyUpdate type */
+ int key_update_type;
+
+ /*
+ * Extra server/client configurations. Per-handshake.
+ */
+ /* First handshake. */
+ SSL_TEST_EXTRA_CONF extra;
+ /* Resumed handshake. */
+ SSL_TEST_EXTRA_CONF resume_extra;
+
+ /*
+ * Test expectations. These apply to the LAST handshake.
+ */
+ /* Defaults to SUCCESS. */
+ ssl_test_result_t expected_result;
+ /* Alerts. 0 if no expectation. */
+ /* See ssl.h for alert codes. */
+ /* Alert sent by the client / received by the server. */
+ int expected_client_alert;
+ /* Alert sent by the server / received by the client. */
+ int expected_server_alert;
+ /* Negotiated protocol version. 0 if no expectation. */
+ /* See ssl.h for protocol versions. */
+ int expected_protocol;
+ /*
+ * The expected SNI context to use.
+ * We test server-side that the server switched to the expected context.
+ * Set by the callback upon success, so if the callback wasn't called or
+ * terminated with an alert, the servername will match with
+ * SSL_TEST_SERVERNAME_NONE.
+ * Note: in the event that the servername was accepted, the client should
+ * also receive an empty SNI extension back but we have no way of probing
+ * client-side via the API that this was the case.
+ */
+ ssl_servername_t expected_servername;
+ ssl_session_ticket_t session_ticket_expected;
+ int compression_expected;
+ /* The expected NPN/ALPN protocol to negotiate. */
+ char *expected_npn_protocol;
+ char *expected_alpn_protocol;
+ /* Whether the second handshake is resumed or a full handshake (boolean). */
+ int resumption_expected;
+ /* Expected temporary key type */
+ int expected_tmp_key_type;
+ /* Expected server certificate key type */
+ int expected_server_cert_type;
+ /* Expected server signing hash */
+ int expected_server_sign_hash;
+ /* Expected server signature type */
+ int expected_server_sign_type;
+ /* Expected server CA names */
+ STACK_OF(X509_NAME) *expected_server_ca_names;
+ /* Expected client certificate key type */
+ int expected_client_cert_type;
+ /* Expected client signing hash */
+ int expected_client_sign_hash;
+ /* Expected client signature type */
+ int expected_client_sign_type;
+ /* Expected CA names for client auth */
+ STACK_OF(X509_NAME) *expected_client_ca_names;
+ /* Whether to use SCTP for the transport */
+ int use_sctp;
+ /* Enable SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG on client side */
+ int enable_client_sctp_label_bug;
+ /* Enable SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG on server side */
+ int enable_server_sctp_label_bug;
+ /* Whether to expect a session id from the server */
+ ssl_session_id_t session_id_expected;
+ char *expected_cipher;
+ /* Expected Session Ticket Application Data */
+ char *expected_session_ticket_app_data;
+} SSL_TEST_CTX;
+
+const char *ssl_test_result_name(ssl_test_result_t result);
+const char *ssl_alert_name(int alert);
+const char *ssl_protocol_name(int protocol);
+const char *ssl_verify_callback_name(ssl_verify_callback_t verify_callback);
+const char *ssl_servername_name(ssl_servername_t server);
+const char *ssl_servername_callback_name(ssl_servername_callback_t
+ servername_callback);
+const char *ssl_session_ticket_name(ssl_session_ticket_t server);
+const char *ssl_session_id_name(ssl_session_id_t server);
+const char *ssl_test_method_name(ssl_test_method_t method);
+const char *ssl_handshake_mode_name(ssl_handshake_mode_t mode);
+const char *ssl_ct_validation_name(ssl_ct_validation_t mode);
+const char *ssl_certstatus_name(ssl_cert_status_t cert_status);
+const char *ssl_max_fragment_len_name(int MFL_mode);
+
+/*
+ * Load the test case context from |conf|.
+ * See test/README.ssltest.md for details on the conf file format.
+ */
+SSL_TEST_CTX *SSL_TEST_CTX_create(const CONF *conf, const char *test_section);
+
+SSL_TEST_CTX *SSL_TEST_CTX_new(void);
+
+void SSL_TEST_CTX_free(SSL_TEST_CTX *ctx);
+
+#endif /* OSSL_TEST_SSL_TEST_CTX_H */
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test_ctx_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test_ctx_test.c
new file mode 100644
index 000000000..ffbbfbc12
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test_ctx_test.c
@@ -0,0 +1,262 @@
+/*
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/*
+ * Ideally, CONF should offer standard parsing methods and cover them
+ * in tests. But since we have no CONF tests, we use a custom test for now.
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+#include "internal/nelem.h"
+#include "ssl_test_ctx.h"
+#include "testutil.h"
+#include <openssl/e_os2.h>
+#include <openssl/err.h>
+#include <openssl/conf.h>
+#include <openssl/ssl.h>
+
+static CONF *conf = NULL;
+
+typedef struct ssl_test_ctx_test_fixture {
+ const char *test_case_name;
+ const char *test_section;
+ /* Expected parsed configuration. */
+ SSL_TEST_CTX *expected_ctx;
+} SSL_TEST_CTX_TEST_FIXTURE;
+
+
+static int clientconf_eq(SSL_TEST_CLIENT_CONF *conf1,
+ SSL_TEST_CLIENT_CONF *conf2)
+{
+ if (!TEST_int_eq(conf1->verify_callback, conf2->verify_callback)
+ || !TEST_int_eq(conf1->servername, conf2->servername)
+ || !TEST_str_eq(conf1->npn_protocols, conf2->npn_protocols)
+ || !TEST_str_eq(conf1->alpn_protocols, conf2->alpn_protocols)
+ || !TEST_int_eq(conf1->ct_validation, conf2->ct_validation)
+ || !TEST_int_eq(conf1->max_fragment_len_mode,
+ conf2->max_fragment_len_mode))
+ return 0;
+ return 1;
+}
+
+static int serverconf_eq(SSL_TEST_SERVER_CONF *serv,
+ SSL_TEST_SERVER_CONF *serv2)
+{
+ if (!TEST_int_eq(serv->servername_callback, serv2->servername_callback)
+ || !TEST_str_eq(serv->npn_protocols, serv2->npn_protocols)
+ || !TEST_str_eq(serv->alpn_protocols, serv2->alpn_protocols)
+ || !TEST_int_eq(serv->broken_session_ticket,
+ serv2->broken_session_ticket)
+ || !TEST_str_eq(serv->session_ticket_app_data,
+ serv2->session_ticket_app_data)
+ || !TEST_int_eq(serv->cert_status, serv2->cert_status))
+ return 0;
+ return 1;
+}
+
+static int extraconf_eq(SSL_TEST_EXTRA_CONF *extra,
+ SSL_TEST_EXTRA_CONF *extra2)
+{
+ if (!TEST_true(clientconf_eq(&extra->client, &extra2->client))
+ || !TEST_true(serverconf_eq(&extra->server, &extra2->server))
+ || !TEST_true(serverconf_eq(&extra->server2, &extra2->server2)))
+ return 0;
+ return 1;
+}
+
+static int testctx_eq(SSL_TEST_CTX *ctx, SSL_TEST_CTX *ctx2)
+{
+ if (!TEST_int_eq(ctx->method, ctx2->method)
+ || !TEST_int_eq(ctx->handshake_mode, ctx2->handshake_mode)
+ || !TEST_int_eq(ctx->app_data_size, ctx2->app_data_size)
+ || !TEST_int_eq(ctx->max_fragment_size, ctx2->max_fragment_size)
+ || !extraconf_eq(&ctx->extra, &ctx2->extra)
+ || !extraconf_eq(&ctx->resume_extra, &ctx2->resume_extra)
+ || !TEST_int_eq(ctx->expected_result, ctx2->expected_result)
+ || !TEST_int_eq(ctx->expected_client_alert,
+ ctx2->expected_client_alert)
+ || !TEST_int_eq(ctx->expected_server_alert,
+ ctx2->expected_server_alert)
+ || !TEST_int_eq(ctx->expected_protocol, ctx2->expected_protocol)
+ || !TEST_int_eq(ctx->expected_servername, ctx2->expected_servername)
+ || !TEST_int_eq(ctx->session_ticket_expected,
+ ctx2->session_ticket_expected)
+ || !TEST_int_eq(ctx->compression_expected,
+ ctx2->compression_expected)
+ || !TEST_str_eq(ctx->expected_npn_protocol,
+ ctx2->expected_npn_protocol)
+ || !TEST_str_eq(ctx->expected_alpn_protocol,
+ ctx2->expected_alpn_protocol)
+ || !TEST_str_eq(ctx->expected_cipher,
+ ctx2->expected_cipher)
+ || !TEST_str_eq(ctx->expected_session_ticket_app_data,
+ ctx2->expected_session_ticket_app_data)
+ || !TEST_int_eq(ctx->resumption_expected,
+ ctx2->resumption_expected)
+ || !TEST_int_eq(ctx->session_id_expected,
+ ctx2->session_id_expected))
+ return 0;
+ return 1;
+}
+
+static SSL_TEST_CTX_TEST_FIXTURE *set_up(const char *const test_case_name)
+{
+ SSL_TEST_CTX_TEST_FIXTURE *fixture;
+
+ if (!TEST_ptr(fixture = OPENSSL_zalloc(sizeof(*fixture))))
+ return NULL;
+ fixture->test_case_name = test_case_name;
+ if (!TEST_ptr(fixture->expected_ctx = SSL_TEST_CTX_new())) {
+ OPENSSL_free(fixture);
+ return NULL;
+ }
+ return fixture;
+}
+
+static int execute_test(SSL_TEST_CTX_TEST_FIXTURE *fixture)
+{
+ int success = 0;
+ SSL_TEST_CTX *ctx;
+
+ if (!TEST_ptr(ctx = SSL_TEST_CTX_create(conf, fixture->test_section))
+ || !testctx_eq(ctx, fixture->expected_ctx))
+ goto err;
+
+ success = 1;
+ err:
+ SSL_TEST_CTX_free(ctx);
+ return success;
+}
+
+static void tear_down(SSL_TEST_CTX_TEST_FIXTURE *fixture)
+{
+ SSL_TEST_CTX_free(fixture->expected_ctx);
+ OPENSSL_free(fixture);
+}
+
+#define SETUP_SSL_TEST_CTX_TEST_FIXTURE() \
+ SETUP_TEST_FIXTURE(SSL_TEST_CTX_TEST_FIXTURE, set_up);
+#define EXECUTE_SSL_TEST_CTX_TEST() \
+ EXECUTE_TEST(execute_test, tear_down)
+
+static int test_empty_configuration(void)
+{
+ SETUP_SSL_TEST_CTX_TEST_FIXTURE();
+ if (fixture == NULL)
+ return 0;
+ fixture->test_section = "ssltest_default";
+ fixture->expected_ctx->expected_result = SSL_TEST_SUCCESS;
+ EXECUTE_SSL_TEST_CTX_TEST();
+ return result;
+}
+
+static int test_good_configuration(void)
+{
+ SETUP_SSL_TEST_CTX_TEST_FIXTURE();
+ if (fixture == NULL)
+ return 0;
+ fixture->test_section = "ssltest_good";
+ fixture->expected_ctx->method = SSL_TEST_METHOD_DTLS;
+ fixture->expected_ctx->handshake_mode = SSL_TEST_HANDSHAKE_RESUME;
+ fixture->expected_ctx->app_data_size = 1024;
+ fixture->expected_ctx->max_fragment_size = 2048;
+
+ fixture->expected_ctx->expected_result = SSL_TEST_SERVER_FAIL;
+ fixture->expected_ctx->expected_client_alert = SSL_AD_UNKNOWN_CA;
+ fixture->expected_ctx->expected_server_alert = 0; /* No alert. */
+ fixture->expected_ctx->expected_protocol = TLS1_1_VERSION;
+ fixture->expected_ctx->expected_servername = SSL_TEST_SERVERNAME_SERVER2;
+ fixture->expected_ctx->session_ticket_expected = SSL_TEST_SESSION_TICKET_YES;
+ fixture->expected_ctx->compression_expected = SSL_TEST_COMPRESSION_NO;
+ fixture->expected_ctx->session_id_expected = SSL_TEST_SESSION_ID_IGNORE;
+ fixture->expected_ctx->resumption_expected = 1;
+
+ fixture->expected_ctx->extra.client.verify_callback =
+ SSL_TEST_VERIFY_REJECT_ALL;
+ fixture->expected_ctx->extra.client.servername = SSL_TEST_SERVERNAME_SERVER2;
+ fixture->expected_ctx->extra.client.npn_protocols =
+ OPENSSL_strdup("foo,bar");
+ if (!TEST_ptr(fixture->expected_ctx->extra.client.npn_protocols))
+ goto err;
+ fixture->expected_ctx->extra.client.max_fragment_len_mode = 0;
+
+ fixture->expected_ctx->extra.server.servername_callback =
+ SSL_TEST_SERVERNAME_IGNORE_MISMATCH;
+ fixture->expected_ctx->extra.server.broken_session_ticket = 1;
+
+ fixture->expected_ctx->resume_extra.server2.alpn_protocols =
+ OPENSSL_strdup("baz");
+ if (!TEST_ptr(fixture->expected_ctx->resume_extra.server2.alpn_protocols))
+ goto err;
+
+ fixture->expected_ctx->resume_extra.client.ct_validation =
+ SSL_TEST_CT_VALIDATION_STRICT;
+
+ EXECUTE_SSL_TEST_CTX_TEST();
+ return result;
+
+err:
+ tear_down(fixture);
+ return 0;
+}
+
+static const char *bad_configurations[] = {
+ "ssltest_unknown_option",
+ "ssltest_wrong_section",
+ "ssltest_unknown_expected_result",
+ "ssltest_unknown_alert",
+ "ssltest_unknown_protocol",
+ "ssltest_unknown_verify_callback",
+ "ssltest_unknown_servername",
+ "ssltest_unknown_servername_callback",
+ "ssltest_unknown_session_ticket_expected",
+ "ssltest_unknown_compression_expected",
+ "ssltest_unknown_session_id_expected",
+ "ssltest_unknown_method",
+ "ssltest_unknown_handshake_mode",
+ "ssltest_unknown_resumption_expected",
+ "ssltest_unknown_ct_validation",
+ "ssltest_invalid_max_fragment_len",
+};
+
+static int test_bad_configuration(int idx)
+{
+ SSL_TEST_CTX *ctx;
+
+ if (!TEST_ptr_null(ctx = SSL_TEST_CTX_create(conf,
+ bad_configurations[idx]))) {
+ SSL_TEST_CTX_free(ctx);
+ return 0;
+ }
+
+ return 1;
+}
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(conf = NCONF_new(NULL)))
+ return 0;
+ /* argument should point to test/ssl_test_ctx_test.conf */
+ if (!TEST_int_gt(NCONF_load(conf, test_get_argument(0), NULL), 0)) {
+ TEST_note("Missing file argument");
+ return 0;
+ }
+
+ ADD_TEST(test_empty_configuration);
+ ADD_TEST(test_good_configuration);
+ ADD_ALL_TESTS(test_bad_configuration, OSSL_NELEM(bad_configurations));
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+ NCONF_free(conf);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test_ctx_test.conf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test_ctx_test.conf
new file mode 100644
index 000000000..91e1465ff
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssl_test_ctx_test.conf
@@ -0,0 +1,97 @@
+[ssltest_default]
+
+[ssltest_good]
+client = ssltest_good_client_extra
+server = ssltest_good_server_extra
+resume-server2 = ssltest_good_resume_server2_extra
+resume-client = ssltest_good_resume_client_extra
+
+Method = DTLS
+HandshakeMode = Resume
+ApplicationData = 1024
+MaxFragmentSize = 2048
+
+ExpectedResult = ServerFail
+ExpectedClientAlert = UnknownCA
+ExpectedProtocol = TLSv1.1
+ExpectedServerName = server2
+SessionTicketExpected = Yes
+ResumptionExpected = Yes
+
+[ssltest_good_client_extra]
+VerifyCallback = RejectAll
+ServerName = server2
+NPNProtocols = foo,bar
+
+[ssltest_good_resume_client_extra]
+CTValidation = Strict
+
+[ssltest_good_server_extra]
+ServerNameCallback = IgnoreMismatch
+BrokenSessionTicket = Yes
+
+[ssltest_good_resume_server2_extra]
+ALPNProtocols = baz
+
+[ssltest_unknown_option]
+UnknownOption = Foo
+
+[ssltest_wrong_section]
+server = ssltest_wrong_section_server
+
+[ssltest_wrong_section_server]
+VerifyCallback = RejectAll
+
+[ssltest_unknown_expected_result]
+ExpectedResult = Foo
+
+[ssltest_unknown_alert]
+ExpectedServerAlert = Foo
+
+[ssltest_unknown_protocol]
+Protocol = Foo
+
+[ssltest_unknown_verify_callback]
+client = ssltest_unknown_verify_callback_client
+
+[ssltest_unknown_verify_callback_client]
+VerifyCallback = Foo
+
+[ssltest_unknown_servername]
+client = ssltest_unknown_servername_client
+
+[ssltest_unknown_servername_client]
+ServerName = Foo
+
+[ssltest_unknown_servername_callback]
+server = ssltest_unknown_servername_server
+
+[ssltest_unknown_servername_server]
+ServerNameCallback = Foo
+
+[ssltest_unknown_session_ticket_expected]
+SessionTicketExpected = Foo
+
+[ssltest_unknown_compression_expected]
+CompressionExpected = Foo
+
+[ssltest_unknown_session_id_expected]
+SessionIdExpected = Foo
+
+[ssltest_unknown_method]
+Method = TLS2
+
+[ssltest_unknown_handshake_mode]
+HandshakeMode = Foo
+
+[ssltest_unknown_resumption_expected]
+ResumptionExpected = Foo
+
+[ssltest_unknown_ct_validation]
+client = ssltest_unknown_ct_validation_client
+
+[ssltest_unknown_ct_validation_client]
+CTCallback = Foo
+
+[ssltest_invalid_max_fragment_len]
+MaxFragmentLenExt = 421
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sslapitest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sslapitest.c
new file mode 100644
index 000000000..5c118108e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sslapitest.c
@@ -0,0 +1,6602 @@
+/*
+ * Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+
+#include <openssl/opensslconf.h>
+#include <openssl/bio.h>
+#include <openssl/crypto.h>
+#include <openssl/ssl.h>
+#include <openssl/ocsp.h>
+#include <openssl/srp.h>
+#include <openssl/txt_db.h>
+#include <openssl/aes.h>
+
+#include "ssltestlib.h"
+#include "testutil.h"
+#include "testutil/output.h"
+#include "internal/nelem.h"
+#include "../ssl/ssl_local.h"
+
+#ifndef OPENSSL_NO_TLS1_3
+
+static SSL_SESSION *clientpsk = NULL;
+static SSL_SESSION *serverpsk = NULL;
+static const char *pskid = "Identity";
+static const char *srvid;
+
+static int use_session_cb(SSL *ssl, const EVP_MD *md, const unsigned char **id,
+ size_t *idlen, SSL_SESSION **sess);
+static int find_session_cb(SSL *ssl, const unsigned char *identity,
+ size_t identity_len, SSL_SESSION **sess);
+
+static int use_session_cb_cnt = 0;
+static int find_session_cb_cnt = 0;
+
+static SSL_SESSION *create_a_psk(SSL *ssl);
+#endif
+
+static char *certsdir = NULL;
+static char *cert = NULL;
+static char *privkey = NULL;
+static char *srpvfile = NULL;
+static char *tmpfilename = NULL;
+
+#define LOG_BUFFER_SIZE 2048
+static char server_log_buffer[LOG_BUFFER_SIZE + 1] = {0};
+static size_t server_log_buffer_index = 0;
+static char client_log_buffer[LOG_BUFFER_SIZE + 1] = {0};
+static size_t client_log_buffer_index = 0;
+static int error_writing_log = 0;
+
+#ifndef OPENSSL_NO_OCSP
+static const unsigned char orespder[] = "Dummy OCSP Response";
+static int ocsp_server_called = 0;
+static int ocsp_client_called = 0;
+
+static int cdummyarg = 1;
+static X509 *ocspcert = NULL;
+#endif
+
+#define NUM_EXTRA_CERTS 40
+#define CLIENT_VERSION_LEN 2
+
+/*
+ * This structure is used to validate that the correct number of log messages
+ * of various types are emitted when emitting secret logs.
+ */
+struct sslapitest_log_counts {
+ unsigned int rsa_key_exchange_count;
+ unsigned int master_secret_count;
+ unsigned int client_early_secret_count;
+ unsigned int client_handshake_secret_count;
+ unsigned int server_handshake_secret_count;
+ unsigned int client_application_secret_count;
+ unsigned int server_application_secret_count;
+ unsigned int early_exporter_secret_count;
+ unsigned int exporter_secret_count;
+};
+
+
+static unsigned char serverinfov1[] = {
+ 0xff, 0xff, /* Dummy extension type */
+ 0x00, 0x01, /* Extension length is 1 byte */
+ 0xff /* Dummy extension data */
+};
+
+static unsigned char serverinfov2[] = {
+ 0x00, 0x00, 0x00,
+ (unsigned char)(SSL_EXT_CLIENT_HELLO & 0xff), /* Dummy context - 4 bytes */
+ 0xff, 0xff, /* Dummy extension type */
+ 0x00, 0x01, /* Extension length is 1 byte */
+ 0xff /* Dummy extension data */
+};
+
+static int hostname_cb(SSL *s, int *al, void *arg)
+{
+ const char *hostname = SSL_get_servername(s, TLSEXT_NAMETYPE_host_name);
+
+ if (hostname != NULL && (strcmp(hostname, "goodhost") == 0
+ || strcmp(hostname, "altgoodhost") == 0))
+ return SSL_TLSEXT_ERR_OK;
+
+ return SSL_TLSEXT_ERR_NOACK;
+}
+
+static void client_keylog_callback(const SSL *ssl, const char *line)
+{
+ int line_length = strlen(line);
+
+ /* If the log doesn't fit, error out. */
+ if (client_log_buffer_index + line_length > sizeof(client_log_buffer) - 1) {
+ TEST_info("Client log too full");
+ error_writing_log = 1;
+ return;
+ }
+
+ strcat(client_log_buffer, line);
+ client_log_buffer_index += line_length;
+ client_log_buffer[client_log_buffer_index++] = '\n';
+}
+
+static void server_keylog_callback(const SSL *ssl, const char *line)
+{
+ int line_length = strlen(line);
+
+ /* If the log doesn't fit, error out. */
+ if (server_log_buffer_index + line_length > sizeof(server_log_buffer) - 1) {
+ TEST_info("Server log too full");
+ error_writing_log = 1;
+ return;
+ }
+
+ strcat(server_log_buffer, line);
+ server_log_buffer_index += line_length;
+ server_log_buffer[server_log_buffer_index++] = '\n';
+}
+
+static int compare_hex_encoded_buffer(const char *hex_encoded,
+ size_t hex_length,
+ const uint8_t *raw,
+ size_t raw_length)
+{
+ size_t i, j;
+ char hexed[3];
+
+ if (!TEST_size_t_eq(raw_length * 2, hex_length))
+ return 1;
+
+ for (i = j = 0; i < raw_length && j + 1 < hex_length; i++, j += 2) {
+ sprintf(hexed, "%02x", raw[i]);
+ if (!TEST_int_eq(hexed[0], hex_encoded[j])
+ || !TEST_int_eq(hexed[1], hex_encoded[j + 1]))
+ return 1;
+ }
+
+ return 0;
+}
+
+static int test_keylog_output(char *buffer, const SSL *ssl,
+ const SSL_SESSION *session,
+ struct sslapitest_log_counts *expected)
+{
+ char *token = NULL;
+ unsigned char actual_client_random[SSL3_RANDOM_SIZE] = {0};
+ size_t client_random_size = SSL3_RANDOM_SIZE;
+ unsigned char actual_master_key[SSL_MAX_MASTER_KEY_LENGTH] = {0};
+ size_t master_key_size = SSL_MAX_MASTER_KEY_LENGTH;
+ unsigned int rsa_key_exchange_count = 0;
+ unsigned int master_secret_count = 0;
+ unsigned int client_early_secret_count = 0;
+ unsigned int client_handshake_secret_count = 0;
+ unsigned int server_handshake_secret_count = 0;
+ unsigned int client_application_secret_count = 0;
+ unsigned int server_application_secret_count = 0;
+ unsigned int early_exporter_secret_count = 0;
+ unsigned int exporter_secret_count = 0;
+
+ for (token = strtok(buffer, " \n"); token != NULL;
+ token = strtok(NULL, " \n")) {
+ if (strcmp(token, "RSA") == 0) {
+ /*
+ * Premaster secret. Tokens should be: 16 ASCII bytes of
+ * hex-encoded encrypted secret, then the hex-encoded pre-master
+ * secret.
+ */
+ if (!TEST_ptr(token = strtok(NULL, " \n")))
+ return 0;
+ if (!TEST_size_t_eq(strlen(token), 16))
+ return 0;
+ if (!TEST_ptr(token = strtok(NULL, " \n")))
+ return 0;
+ /*
+ * We can't sensibly check the log because the premaster secret is
+ * transient, and OpenSSL doesn't keep hold of it once the master
+ * secret is generated.
+ */
+ rsa_key_exchange_count++;
+ } else if (strcmp(token, "CLIENT_RANDOM") == 0) {
+ /*
+ * Master secret. Tokens should be: 64 ASCII bytes of hex-encoded
+ * client random, then the hex-encoded master secret.
+ */
+ client_random_size = SSL_get_client_random(ssl,
+ actual_client_random,
+ SSL3_RANDOM_SIZE);
+ if (!TEST_size_t_eq(client_random_size, SSL3_RANDOM_SIZE))
+ return 0;
+
+ if (!TEST_ptr(token = strtok(NULL, " \n")))
+ return 0;
+ if (!TEST_size_t_eq(strlen(token), 64))
+ return 0;
+ if (!TEST_false(compare_hex_encoded_buffer(token, 64,
+ actual_client_random,
+ client_random_size)))
+ return 0;
+
+ if (!TEST_ptr(token = strtok(NULL, " \n")))
+ return 0;
+ master_key_size = SSL_SESSION_get_master_key(session,
+ actual_master_key,
+ master_key_size);
+ if (!TEST_size_t_ne(master_key_size, 0))
+ return 0;
+ if (!TEST_false(compare_hex_encoded_buffer(token, strlen(token),
+ actual_master_key,
+ master_key_size)))
+ return 0;
+ master_secret_count++;
+ } else if (strcmp(token, "CLIENT_EARLY_TRAFFIC_SECRET") == 0
+ || strcmp(token, "CLIENT_HANDSHAKE_TRAFFIC_SECRET") == 0
+ || strcmp(token, "SERVER_HANDSHAKE_TRAFFIC_SECRET") == 0
+ || strcmp(token, "CLIENT_TRAFFIC_SECRET_0") == 0
+ || strcmp(token, "SERVER_TRAFFIC_SECRET_0") == 0
+ || strcmp(token, "EARLY_EXPORTER_SECRET") == 0
+ || strcmp(token, "EXPORTER_SECRET") == 0) {
+ /*
+ * TLSv1.3 secret. Tokens should be: 64 ASCII bytes of hex-encoded
+ * client random, and then the hex-encoded secret. In this case,
+ * we treat all of these secrets identically and then just
+ * distinguish between them when counting what we saw.
+ */
+ if (strcmp(token, "CLIENT_EARLY_TRAFFIC_SECRET") == 0)
+ client_early_secret_count++;
+ else if (strcmp(token, "CLIENT_HANDSHAKE_TRAFFIC_SECRET") == 0)
+ client_handshake_secret_count++;
+ else if (strcmp(token, "SERVER_HANDSHAKE_TRAFFIC_SECRET") == 0)
+ server_handshake_secret_count++;
+ else if (strcmp(token, "CLIENT_TRAFFIC_SECRET_0") == 0)
+ client_application_secret_count++;
+ else if (strcmp(token, "SERVER_TRAFFIC_SECRET_0") == 0)
+ server_application_secret_count++;
+ else if (strcmp(token, "EARLY_EXPORTER_SECRET") == 0)
+ early_exporter_secret_count++;
+ else if (strcmp(token, "EXPORTER_SECRET") == 0)
+ exporter_secret_count++;
+
+ client_random_size = SSL_get_client_random(ssl,
+ actual_client_random,
+ SSL3_RANDOM_SIZE);
+ if (!TEST_size_t_eq(client_random_size, SSL3_RANDOM_SIZE))
+ return 0;
+
+ if (!TEST_ptr(token = strtok(NULL, " \n")))
+ return 0;
+ if (!TEST_size_t_eq(strlen(token), 64))
+ return 0;
+ if (!TEST_false(compare_hex_encoded_buffer(token, 64,
+ actual_client_random,
+ client_random_size)))
+ return 0;
+
+ if (!TEST_ptr(token = strtok(NULL, " \n")))
+ return 0;
+
+ /*
+ * TODO(TLS1.3): test that application traffic secrets are what
+ * we expect */
+ } else {
+ TEST_info("Unexpected token %s\n", token);
+ return 0;
+ }
+ }
+
+ /* Got what we expected? */
+ if (!TEST_size_t_eq(rsa_key_exchange_count,
+ expected->rsa_key_exchange_count)
+ || !TEST_size_t_eq(master_secret_count,
+ expected->master_secret_count)
+ || !TEST_size_t_eq(client_early_secret_count,
+ expected->client_early_secret_count)
+ || !TEST_size_t_eq(client_handshake_secret_count,
+ expected->client_handshake_secret_count)
+ || !TEST_size_t_eq(server_handshake_secret_count,
+ expected->server_handshake_secret_count)
+ || !TEST_size_t_eq(client_application_secret_count,
+ expected->client_application_secret_count)
+ || !TEST_size_t_eq(server_application_secret_count,
+ expected->server_application_secret_count)
+ || !TEST_size_t_eq(early_exporter_secret_count,
+ expected->early_exporter_secret_count)
+ || !TEST_size_t_eq(exporter_secret_count,
+ expected->exporter_secret_count))
+ return 0;
+ return 1;
+}
+
+#if !defined(OPENSSL_NO_TLS1_2) || defined(OPENSSL_NO_TLS1_3)
+static int test_keylog(void)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ struct sslapitest_log_counts expected = {0};
+
+ /* Clean up logging space */
+ memset(client_log_buffer, 0, sizeof(client_log_buffer));
+ memset(server_log_buffer, 0, sizeof(server_log_buffer));
+ client_log_buffer_index = 0;
+ server_log_buffer_index = 0;
+ error_writing_log = 0;
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(),
+ TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ return 0;
+
+ /* We cannot log the master secret for TLSv1.3, so we should forbid it. */
+ SSL_CTX_set_options(cctx, SSL_OP_NO_TLSv1_3);
+ SSL_CTX_set_options(sctx, SSL_OP_NO_TLSv1_3);
+
+ /* We also want to ensure that we use RSA-based key exchange. */
+ if (!TEST_true(SSL_CTX_set_cipher_list(cctx, "RSA")))
+ goto end;
+
+ if (!TEST_true(SSL_CTX_get_keylog_callback(cctx) == NULL)
+ || !TEST_true(SSL_CTX_get_keylog_callback(sctx) == NULL))
+ goto end;
+ SSL_CTX_set_keylog_callback(cctx, client_keylog_callback);
+ if (!TEST_true(SSL_CTX_get_keylog_callback(cctx)
+ == client_keylog_callback))
+ goto end;
+ SSL_CTX_set_keylog_callback(sctx, server_keylog_callback);
+ if (!TEST_true(SSL_CTX_get_keylog_callback(sctx)
+ == server_keylog_callback))
+ goto end;
+
+ /* Now do a handshake and check that the logs have been written to. */
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_false(error_writing_log)
+ || !TEST_int_gt(client_log_buffer_index, 0)
+ || !TEST_int_gt(server_log_buffer_index, 0))
+ goto end;
+
+ /*
+ * Now we want to test that our output data was vaguely sensible. We
+ * do that by using strtok and confirming that we have more or less the
+ * data we expect. For both client and server, we expect to see one master
+ * secret. The client should also see a RSA key exchange.
+ */
+ expected.rsa_key_exchange_count = 1;
+ expected.master_secret_count = 1;
+ if (!TEST_true(test_keylog_output(client_log_buffer, clientssl,
+ SSL_get_session(clientssl), &expected)))
+ goto end;
+
+ expected.rsa_key_exchange_count = 0;
+ if (!TEST_true(test_keylog_output(server_log_buffer, serverssl,
+ SSL_get_session(serverssl), &expected)))
+ goto end;
+
+ testresult = 1;
+
+end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+#endif
+
+#ifndef OPENSSL_NO_TLS1_3
+static int test_keylog_no_master_key(void)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ SSL_SESSION *sess = NULL;
+ int testresult = 0;
+ struct sslapitest_log_counts expected = {0};
+ unsigned char buf[1];
+ size_t readbytes, written;
+
+ /* Clean up logging space */
+ memset(client_log_buffer, 0, sizeof(client_log_buffer));
+ memset(server_log_buffer, 0, sizeof(server_log_buffer));
+ client_log_buffer_index = 0;
+ server_log_buffer_index = 0;
+ error_writing_log = 0;
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey))
+ || !TEST_true(SSL_CTX_set_max_early_data(sctx,
+ SSL3_RT_MAX_PLAIN_LENGTH)))
+ return 0;
+
+ if (!TEST_true(SSL_CTX_get_keylog_callback(cctx) == NULL)
+ || !TEST_true(SSL_CTX_get_keylog_callback(sctx) == NULL))
+ goto end;
+
+ SSL_CTX_set_keylog_callback(cctx, client_keylog_callback);
+ if (!TEST_true(SSL_CTX_get_keylog_callback(cctx)
+ == client_keylog_callback))
+ goto end;
+
+ SSL_CTX_set_keylog_callback(sctx, server_keylog_callback);
+ if (!TEST_true(SSL_CTX_get_keylog_callback(sctx)
+ == server_keylog_callback))
+ goto end;
+
+ /* Now do a handshake and check that the logs have been written to. */
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_false(error_writing_log))
+ goto end;
+
+ /*
+ * Now we want to test that our output data was vaguely sensible. For this
+ * test, we expect no CLIENT_RANDOM entry because it doesn't make sense for
+ * TLSv1.3, but we do expect both client and server to emit keys.
+ */
+ expected.client_handshake_secret_count = 1;
+ expected.server_handshake_secret_count = 1;
+ expected.client_application_secret_count = 1;
+ expected.server_application_secret_count = 1;
+ expected.exporter_secret_count = 1;
+ if (!TEST_true(test_keylog_output(client_log_buffer, clientssl,
+ SSL_get_session(clientssl), &expected))
+ || !TEST_true(test_keylog_output(server_log_buffer, serverssl,
+ SSL_get_session(serverssl),
+ &expected)))
+ goto end;
+
+ /* Terminate old session and resume with early data. */
+ sess = SSL_get1_session(clientssl);
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ serverssl = clientssl = NULL;
+
+ /* Reset key log */
+ memset(client_log_buffer, 0, sizeof(client_log_buffer));
+ memset(server_log_buffer, 0, sizeof(server_log_buffer));
+ client_log_buffer_index = 0;
+ server_log_buffer_index = 0;
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL))
+ || !TEST_true(SSL_set_session(clientssl, sess))
+ /* Here writing 0 length early data is enough. */
+ || !TEST_true(SSL_write_early_data(clientssl, NULL, 0, &written))
+ || !TEST_int_eq(SSL_read_early_data(serverssl, buf, sizeof(buf),
+ &readbytes),
+ SSL_READ_EARLY_DATA_ERROR)
+ || !TEST_int_eq(SSL_get_early_data_status(serverssl),
+ SSL_EARLY_DATA_ACCEPTED)
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_true(SSL_session_reused(clientssl)))
+ goto end;
+
+ /* In addition to the previous entries, expect early secrets. */
+ expected.client_early_secret_count = 1;
+ expected.early_exporter_secret_count = 1;
+ if (!TEST_true(test_keylog_output(client_log_buffer, clientssl,
+ SSL_get_session(clientssl), &expected))
+ || !TEST_true(test_keylog_output(server_log_buffer, serverssl,
+ SSL_get_session(serverssl),
+ &expected)))
+ goto end;
+
+ testresult = 1;
+
+end:
+ SSL_SESSION_free(sess);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+#endif
+
+#ifndef OPENSSL_NO_TLS1_2
+static int full_client_hello_callback(SSL *s, int *al, void *arg)
+{
+ int *ctr = arg;
+ const unsigned char *p;
+ int *exts;
+ /* We only configure two ciphers, but the SCSV is added automatically. */
+#ifdef OPENSSL_NO_EC
+ const unsigned char expected_ciphers[] = {0x00, 0x9d, 0x00, 0xff};
+#else
+ const unsigned char expected_ciphers[] = {0x00, 0x9d, 0xc0,
+ 0x2c, 0x00, 0xff};
+#endif
+ const int expected_extensions[] = {
+#ifndef OPENSSL_NO_EC
+ 11, 10,
+#endif
+ 35, 22, 23, 13};
+ size_t len;
+
+ /* Make sure we can defer processing and get called back. */
+ if ((*ctr)++ == 0)
+ return SSL_CLIENT_HELLO_RETRY;
+
+ len = SSL_client_hello_get0_ciphers(s, &p);
+ if (!TEST_mem_eq(p, len, expected_ciphers, sizeof(expected_ciphers))
+ || !TEST_size_t_eq(
+ SSL_client_hello_get0_compression_methods(s, &p), 1)
+ || !TEST_int_eq(*p, 0))
+ return SSL_CLIENT_HELLO_ERROR;
+ if (!SSL_client_hello_get1_extensions_present(s, &exts, &len))
+ return SSL_CLIENT_HELLO_ERROR;
+ if (len != OSSL_NELEM(expected_extensions) ||
+ memcmp(exts, expected_extensions, len * sizeof(*exts)) != 0) {
+ printf("ClientHello callback expected extensions mismatch\n");
+ OPENSSL_free(exts);
+ return SSL_CLIENT_HELLO_ERROR;
+ }
+ OPENSSL_free(exts);
+ return SSL_CLIENT_HELLO_SUCCESS;
+}
+
+static int test_client_hello_cb(void)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testctr = 0, testresult = 0;
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ goto end;
+ SSL_CTX_set_client_hello_cb(sctx, full_client_hello_callback, &testctr);
+
+ /* The gimpy cipher list we configure can't do TLS 1.3. */
+ SSL_CTX_set_max_proto_version(cctx, TLS1_2_VERSION);
+
+ if (!TEST_true(SSL_CTX_set_cipher_list(cctx,
+ "AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384"))
+ || !TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL))
+ || !TEST_false(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_WANT_CLIENT_HELLO_CB))
+ /*
+ * Passing a -1 literal is a hack since
+ * the real value was lost.
+ * */
+ || !TEST_int_eq(SSL_get_error(serverssl, -1),
+ SSL_ERROR_WANT_CLIENT_HELLO_CB)
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ testresult = 1;
+
+end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+#endif
+
+/*
+ * Very focused test to exercise a single case in the server-side state
+ * machine, when the ChangeCipherState message needs to actually change
+ * from one cipher to a different cipher (i.e., not changing from null
+ * encryption to real encryption).
+ */
+static int test_ccs_change_cipher(void)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ SSL_SESSION *sess = NULL, *sesspre, *sesspost;
+ int testresult = 0;
+ int i;
+ unsigned char buf;
+ size_t readbytes;
+
+ /*
+ * Create a conection so we can resume and potentially (but not) use
+ * a different cipher in the second connection.
+ */
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(),
+ TLS_client_method(),
+ TLS1_VERSION, TLS1_2_VERSION,
+ &sctx, &cctx, cert, privkey))
+ || !TEST_true(SSL_CTX_set_options(sctx, SSL_OP_NO_TICKET))
+ || !TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(SSL_set_cipher_list(clientssl, "AES128-GCM-SHA256"))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_ptr(sesspre = SSL_get0_session(serverssl))
+ || !TEST_ptr(sess = SSL_get1_session(clientssl)))
+ goto end;
+
+ shutdown_ssl_connection(serverssl, clientssl);
+ serverssl = clientssl = NULL;
+
+ /* Resume, preferring a different cipher. Our server will force the
+ * same cipher to be used as the initial handshake. */
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(SSL_set_session(clientssl, sess))
+ || !TEST_true(SSL_set_cipher_list(clientssl, "AES256-GCM-SHA384:AES128-GCM-SHA256"))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_true(SSL_session_reused(clientssl))
+ || !TEST_true(SSL_session_reused(serverssl))
+ || !TEST_ptr(sesspost = SSL_get0_session(serverssl))
+ || !TEST_ptr_eq(sesspre, sesspost)
+ || !TEST_int_eq(TLS1_CK_RSA_WITH_AES_128_GCM_SHA256,
+ SSL_CIPHER_get_id(SSL_get_current_cipher(clientssl))))
+ goto end;
+ shutdown_ssl_connection(serverssl, clientssl);
+ serverssl = clientssl = NULL;
+
+ /*
+ * Now create a fresh connection and try to renegotiate a different
+ * cipher on it.
+ */
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(SSL_set_cipher_list(clientssl, "AES128-GCM-SHA256"))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_ptr(sesspre = SSL_get0_session(serverssl))
+ || !TEST_true(SSL_set_cipher_list(clientssl, "AES256-GCM-SHA384"))
+ || !TEST_true(SSL_renegotiate(clientssl))
+ || !TEST_true(SSL_renegotiate_pending(clientssl)))
+ goto end;
+ /* Actually drive the renegotiation. */
+ for (i = 0; i < 3; i++) {
+ if (SSL_read_ex(clientssl, &buf, sizeof(buf), &readbytes) > 0) {
+ if (!TEST_ulong_eq(readbytes, 0))
+ goto end;
+ } else if (!TEST_int_eq(SSL_get_error(clientssl, 0),
+ SSL_ERROR_WANT_READ)) {
+ goto end;
+ }
+ if (SSL_read_ex(serverssl, &buf, sizeof(buf), &readbytes) > 0) {
+ if (!TEST_ulong_eq(readbytes, 0))
+ goto end;
+ } else if (!TEST_int_eq(SSL_get_error(serverssl, 0),
+ SSL_ERROR_WANT_READ)) {
+ goto end;
+ }
+ }
+ /* sesspre and sesspost should be different since the cipher changed. */
+ if (!TEST_false(SSL_renegotiate_pending(clientssl))
+ || !TEST_false(SSL_session_reused(clientssl))
+ || !TEST_false(SSL_session_reused(serverssl))
+ || !TEST_ptr(sesspost = SSL_get0_session(serverssl))
+ || !TEST_ptr_ne(sesspre, sesspost)
+ || !TEST_int_eq(TLS1_CK_RSA_WITH_AES_256_GCM_SHA384,
+ SSL_CIPHER_get_id(SSL_get_current_cipher(clientssl))))
+ goto end;
+
+ shutdown_ssl_connection(serverssl, clientssl);
+ serverssl = clientssl = NULL;
+
+ testresult = 1;
+
+end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ SSL_SESSION_free(sess);
+
+ return testresult;
+}
+
+static int execute_test_large_message(const SSL_METHOD *smeth,
+ const SSL_METHOD *cmeth,
+ int min_version, int max_version,
+ int read_ahead)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ int i;
+ BIO *certbio = NULL;
+ X509 *chaincert = NULL;
+ int certlen;
+
+ if (!TEST_ptr(certbio = BIO_new_file(cert, "r")))
+ goto end;
+ chaincert = PEM_read_bio_X509(certbio, NULL, NULL, NULL);
+ BIO_free(certbio);
+ certbio = NULL;
+ if (!TEST_ptr(chaincert))
+ goto end;
+
+ if (!TEST_true(create_ssl_ctx_pair(smeth, cmeth, min_version, max_version,
+ &sctx, &cctx, cert, privkey)))
+ goto end;
+
+ if (read_ahead) {
+ /*
+ * Test that read_ahead works correctly when dealing with large
+ * records
+ */
+ SSL_CTX_set_read_ahead(cctx, 1);
+ }
+
+ /*
+ * We assume the supplied certificate is big enough so that if we add
+ * NUM_EXTRA_CERTS it will make the overall message large enough. The
+ * default buffer size is requested to be 16k, but due to the way BUF_MEM
+ * works, it ends up allocating a little over 21k (16 * 4/3). So, in this
+ * test we need to have a message larger than that.
+ */
+ certlen = i2d_X509(chaincert, NULL);
+ OPENSSL_assert(certlen * NUM_EXTRA_CERTS >
+ (SSL3_RT_MAX_PLAIN_LENGTH * 4) / 3);
+ for (i = 0; i < NUM_EXTRA_CERTS; i++) {
+ if (!X509_up_ref(chaincert))
+ goto end;
+ if (!SSL_CTX_add_extra_chain_cert(sctx, chaincert)) {
+ X509_free(chaincert);
+ goto end;
+ }
+ }
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ /*
+ * Calling SSL_clear() first is not required but this tests that SSL_clear()
+ * doesn't leak (when using enable-crypto-mdebug).
+ */
+ if (!TEST_true(SSL_clear(serverssl)))
+ goto end;
+
+ testresult = 1;
+ end:
+ X509_free(chaincert);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+static int test_large_message_tls(void)
+{
+ return execute_test_large_message(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ 0);
+}
+
+static int test_large_message_tls_read_ahead(void)
+{
+ return execute_test_large_message(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ 1);
+}
+
+#ifndef OPENSSL_NO_DTLS
+static int test_large_message_dtls(void)
+{
+ /*
+ * read_ahead is not relevant to DTLS because DTLS always acts as if
+ * read_ahead is set.
+ */
+ return execute_test_large_message(DTLS_server_method(),
+ DTLS_client_method(),
+ DTLS1_VERSION, DTLS_MAX_VERSION,
+ 0);
+}
+#endif
+
+#ifndef OPENSSL_NO_OCSP
+static int ocsp_server_cb(SSL *s, void *arg)
+{
+ int *argi = (int *)arg;
+ unsigned char *copy = NULL;
+ STACK_OF(OCSP_RESPID) *ids = NULL;
+ OCSP_RESPID *id = NULL;
+
+ if (*argi == 2) {
+ /* In this test we are expecting exactly 1 OCSP_RESPID */
+ SSL_get_tlsext_status_ids(s, &ids);
+ if (ids == NULL || sk_OCSP_RESPID_num(ids) != 1)
+ return SSL_TLSEXT_ERR_ALERT_FATAL;
+
+ id = sk_OCSP_RESPID_value(ids, 0);
+ if (id == NULL || !OCSP_RESPID_match(id, ocspcert))
+ return SSL_TLSEXT_ERR_ALERT_FATAL;
+ } else if (*argi != 1) {
+ return SSL_TLSEXT_ERR_ALERT_FATAL;
+ }
+
+ if (!TEST_ptr(copy = OPENSSL_memdup(orespder, sizeof(orespder))))
+ return SSL_TLSEXT_ERR_ALERT_FATAL;
+
+ SSL_set_tlsext_status_ocsp_resp(s, copy, sizeof(orespder));
+ ocsp_server_called = 1;
+ return SSL_TLSEXT_ERR_OK;
+}
+
+static int ocsp_client_cb(SSL *s, void *arg)
+{
+ int *argi = (int *)arg;
+ const unsigned char *respderin;
+ size_t len;
+
+ if (*argi != 1 && *argi != 2)
+ return 0;
+
+ len = SSL_get_tlsext_status_ocsp_resp(s, &respderin);
+ if (!TEST_mem_eq(orespder, len, respderin, len))
+ return 0;
+
+ ocsp_client_called = 1;
+ return 1;
+}
+
+static int test_tlsext_status_type(void)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ STACK_OF(OCSP_RESPID) *ids = NULL;
+ OCSP_RESPID *id = NULL;
+ BIO *certbio = NULL;
+
+ if (!create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey))
+ return 0;
+
+ if (SSL_CTX_get_tlsext_status_type(cctx) != -1)
+ goto end;
+
+ /* First just do various checks getting and setting tlsext_status_type */
+
+ clientssl = SSL_new(cctx);
+ if (!TEST_int_eq(SSL_get_tlsext_status_type(clientssl), -1)
+ || !TEST_true(SSL_set_tlsext_status_type(clientssl,
+ TLSEXT_STATUSTYPE_ocsp))
+ || !TEST_int_eq(SSL_get_tlsext_status_type(clientssl),
+ TLSEXT_STATUSTYPE_ocsp))
+ goto end;
+
+ SSL_free(clientssl);
+ clientssl = NULL;
+
+ if (!SSL_CTX_set_tlsext_status_type(cctx, TLSEXT_STATUSTYPE_ocsp)
+ || SSL_CTX_get_tlsext_status_type(cctx) != TLSEXT_STATUSTYPE_ocsp)
+ goto end;
+
+ clientssl = SSL_new(cctx);
+ if (SSL_get_tlsext_status_type(clientssl) != TLSEXT_STATUSTYPE_ocsp)
+ goto end;
+ SSL_free(clientssl);
+ clientssl = NULL;
+
+ /*
+ * Now actually do a handshake and check OCSP information is exchanged and
+ * the callbacks get called
+ */
+ SSL_CTX_set_tlsext_status_cb(cctx, ocsp_client_cb);
+ SSL_CTX_set_tlsext_status_arg(cctx, &cdummyarg);
+ SSL_CTX_set_tlsext_status_cb(sctx, ocsp_server_cb);
+ SSL_CTX_set_tlsext_status_arg(sctx, &cdummyarg);
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_true(ocsp_client_called)
+ || !TEST_true(ocsp_server_called))
+ goto end;
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ serverssl = NULL;
+ clientssl = NULL;
+
+ /* Try again but this time force the server side callback to fail */
+ ocsp_client_called = 0;
+ ocsp_server_called = 0;
+ cdummyarg = 0;
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL))
+ /* This should fail because the callback will fail */
+ || !TEST_false(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_false(ocsp_client_called)
+ || !TEST_false(ocsp_server_called))
+ goto end;
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ serverssl = NULL;
+ clientssl = NULL;
+
+ /*
+ * This time we'll get the client to send an OCSP_RESPID that it will
+ * accept.
+ */
+ ocsp_client_called = 0;
+ ocsp_server_called = 0;
+ cdummyarg = 2;
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL)))
+ goto end;
+
+ /*
+ * We'll just use any old cert for this test - it doesn't have to be an OCSP
+ * specific one. We'll use the server cert.
+ */
+ if (!TEST_ptr(certbio = BIO_new_file(cert, "r"))
+ || !TEST_ptr(id = OCSP_RESPID_new())
+ || !TEST_ptr(ids = sk_OCSP_RESPID_new_null())
+ || !TEST_ptr(ocspcert = PEM_read_bio_X509(certbio,
+ NULL, NULL, NULL))
+ || !TEST_true(OCSP_RESPID_set_by_key(id, ocspcert))
+ || !TEST_true(sk_OCSP_RESPID_push(ids, id)))
+ goto end;
+ id = NULL;
+ SSL_set_tlsext_status_ids(clientssl, ids);
+ /* Control has been transferred */
+ ids = NULL;
+
+ BIO_free(certbio);
+ certbio = NULL;
+
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_true(ocsp_client_called)
+ || !TEST_true(ocsp_server_called))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ sk_OCSP_RESPID_pop_free(ids, OCSP_RESPID_free);
+ OCSP_RESPID_free(id);
+ BIO_free(certbio);
+ X509_free(ocspcert);
+ ocspcert = NULL;
+
+ return testresult;
+}
+#endif
+
+#if !defined(OPENSSL_NO_TLS1_3) || !defined(OPENSSL_NO_TLS1_2)
+static int new_called, remove_called, get_called;
+
+static int new_session_cb(SSL *ssl, SSL_SESSION *sess)
+{
+ new_called++;
+ /*
+ * sess has been up-refed for us, but we don't actually need it so free it
+ * immediately.
+ */
+ SSL_SESSION_free(sess);
+ return 1;
+}
+
+static void remove_session_cb(SSL_CTX *ctx, SSL_SESSION *sess)
+{
+ remove_called++;
+}
+
+static SSL_SESSION *get_sess_val = NULL;
+
+static SSL_SESSION *get_session_cb(SSL *ssl, const unsigned char *id, int len,
+ int *copy)
+{
+ get_called++;
+ *copy = 1;
+ return get_sess_val;
+}
+
+static int execute_test_session(int maxprot, int use_int_cache,
+ int use_ext_cache)
+{
+ SSL_CTX *sctx = NULL, *cctx = NULL;
+ SSL *serverssl1 = NULL, *clientssl1 = NULL;
+ SSL *serverssl2 = NULL, *clientssl2 = NULL;
+# ifndef OPENSSL_NO_TLS1_1
+ SSL *serverssl3 = NULL, *clientssl3 = NULL;
+# endif
+ SSL_SESSION *sess1 = NULL, *sess2 = NULL;
+ int testresult = 0, numnewsesstick = 1;
+
+ new_called = remove_called = 0;
+
+ /* TLSv1.3 sends 2 NewSessionTickets */
+ if (maxprot == TLS1_3_VERSION)
+ numnewsesstick = 2;
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ return 0;
+
+ /*
+ * Only allow the max protocol version so we can force a connection failure
+ * later
+ */
+ SSL_CTX_set_min_proto_version(cctx, maxprot);
+ SSL_CTX_set_max_proto_version(cctx, maxprot);
+
+ /* Set up session cache */
+ if (use_ext_cache) {
+ SSL_CTX_sess_set_new_cb(cctx, new_session_cb);
+ SSL_CTX_sess_set_remove_cb(cctx, remove_session_cb);
+ }
+ if (use_int_cache) {
+ /* Also covers instance where both are set */
+ SSL_CTX_set_session_cache_mode(cctx, SSL_SESS_CACHE_CLIENT);
+ } else {
+ SSL_CTX_set_session_cache_mode(cctx,
+ SSL_SESS_CACHE_CLIENT
+ | SSL_SESS_CACHE_NO_INTERNAL_STORE);
+ }
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl1, &clientssl1,
+ NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl1, clientssl1,
+ SSL_ERROR_NONE))
+ || !TEST_ptr(sess1 = SSL_get1_session(clientssl1)))
+ goto end;
+
+ /* Should fail because it should already be in the cache */
+ if (use_int_cache && !TEST_false(SSL_CTX_add_session(cctx, sess1)))
+ goto end;
+ if (use_ext_cache
+ && (!TEST_int_eq(new_called, numnewsesstick)
+
+ || !TEST_int_eq(remove_called, 0)))
+ goto end;
+
+ new_called = remove_called = 0;
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl2,
+ &clientssl2, NULL, NULL))
+ || !TEST_true(SSL_set_session(clientssl2, sess1))
+ || !TEST_true(create_ssl_connection(serverssl2, clientssl2,
+ SSL_ERROR_NONE))
+ || !TEST_true(SSL_session_reused(clientssl2)))
+ goto end;
+
+ if (maxprot == TLS1_3_VERSION) {
+ /*
+ * In TLSv1.3 we should have created a new session even though we have
+ * resumed. Since we attempted a resume we should also have removed the
+ * old ticket from the cache so that we try to only use tickets once.
+ */
+ if (use_ext_cache
+ && (!TEST_int_eq(new_called, 1)
+ || !TEST_int_eq(remove_called, 1)))
+ goto end;
+ } else {
+ /*
+ * In TLSv1.2 we expect to have resumed so no sessions added or
+ * removed.
+ */
+ if (use_ext_cache
+ && (!TEST_int_eq(new_called, 0)
+ || !TEST_int_eq(remove_called, 0)))
+ goto end;
+ }
+
+ SSL_SESSION_free(sess1);
+ if (!TEST_ptr(sess1 = SSL_get1_session(clientssl2)))
+ goto end;
+ shutdown_ssl_connection(serverssl2, clientssl2);
+ serverssl2 = clientssl2 = NULL;
+
+ new_called = remove_called = 0;
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl2,
+ &clientssl2, NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl2, clientssl2,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ if (!TEST_ptr(sess2 = SSL_get1_session(clientssl2)))
+ goto end;
+
+ if (use_ext_cache
+ && (!TEST_int_eq(new_called, numnewsesstick)
+ || !TEST_int_eq(remove_called, 0)))
+ goto end;
+
+ new_called = remove_called = 0;
+ /*
+ * This should clear sess2 from the cache because it is a "bad" session.
+ * See SSL_set_session() documentation.
+ */
+ if (!TEST_true(SSL_set_session(clientssl2, sess1)))
+ goto end;
+ if (use_ext_cache
+ && (!TEST_int_eq(new_called, 0) || !TEST_int_eq(remove_called, 1)))
+ goto end;
+ if (!TEST_ptr_eq(SSL_get_session(clientssl2), sess1))
+ goto end;
+
+ if (use_int_cache) {
+ /* Should succeeded because it should not already be in the cache */
+ if (!TEST_true(SSL_CTX_add_session(cctx, sess2))
+ || !TEST_true(SSL_CTX_remove_session(cctx, sess2)))
+ goto end;
+ }
+
+ new_called = remove_called = 0;
+ /* This shouldn't be in the cache so should fail */
+ if (!TEST_false(SSL_CTX_remove_session(cctx, sess2)))
+ goto end;
+
+ if (use_ext_cache
+ && (!TEST_int_eq(new_called, 0) || !TEST_int_eq(remove_called, 1)))
+ goto end;
+
+# if !defined(OPENSSL_NO_TLS1_1)
+ new_called = remove_called = 0;
+ /* Force a connection failure */
+ SSL_CTX_set_max_proto_version(sctx, TLS1_1_VERSION);
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl3,
+ &clientssl3, NULL, NULL))
+ || !TEST_true(SSL_set_session(clientssl3, sess1))
+ /* This should fail because of the mismatched protocol versions */
+ || !TEST_false(create_ssl_connection(serverssl3, clientssl3,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ /* We should have automatically removed the session from the cache */
+ if (use_ext_cache
+ && (!TEST_int_eq(new_called, 0) || !TEST_int_eq(remove_called, 1)))
+ goto end;
+
+ /* Should succeed because it should not already be in the cache */
+ if (use_int_cache && !TEST_true(SSL_CTX_add_session(cctx, sess2)))
+ goto end;
+# endif
+
+ /* Now do some tests for server side caching */
+ if (use_ext_cache) {
+ SSL_CTX_sess_set_new_cb(cctx, NULL);
+ SSL_CTX_sess_set_remove_cb(cctx, NULL);
+ SSL_CTX_sess_set_new_cb(sctx, new_session_cb);
+ SSL_CTX_sess_set_remove_cb(sctx, remove_session_cb);
+ SSL_CTX_sess_set_get_cb(sctx, get_session_cb);
+ get_sess_val = NULL;
+ }
+
+ SSL_CTX_set_session_cache_mode(cctx, 0);
+ /* Internal caching is the default on the server side */
+ if (!use_int_cache)
+ SSL_CTX_set_session_cache_mode(sctx,
+ SSL_SESS_CACHE_SERVER
+ | SSL_SESS_CACHE_NO_INTERNAL_STORE);
+
+ SSL_free(serverssl1);
+ SSL_free(clientssl1);
+ serverssl1 = clientssl1 = NULL;
+ SSL_free(serverssl2);
+ SSL_free(clientssl2);
+ serverssl2 = clientssl2 = NULL;
+ SSL_SESSION_free(sess1);
+ sess1 = NULL;
+ SSL_SESSION_free(sess2);
+ sess2 = NULL;
+
+ SSL_CTX_set_max_proto_version(sctx, maxprot);
+ if (maxprot == TLS1_2_VERSION)
+ SSL_CTX_set_options(sctx, SSL_OP_NO_TICKET);
+ new_called = remove_called = get_called = 0;
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl1, &clientssl1,
+ NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl1, clientssl1,
+ SSL_ERROR_NONE))
+ || !TEST_ptr(sess1 = SSL_get1_session(clientssl1))
+ || !TEST_ptr(sess2 = SSL_get1_session(serverssl1)))
+ goto end;
+
+ if (use_int_cache) {
+ if (maxprot == TLS1_3_VERSION && !use_ext_cache) {
+ /*
+ * In TLSv1.3 it should not have been added to the internal cache,
+ * except in the case where we also have an external cache (in that
+ * case it gets added to the cache in order to generate remove
+ * events after timeout).
+ */
+ if (!TEST_false(SSL_CTX_remove_session(sctx, sess2)))
+ goto end;
+ } else {
+ /* Should fail because it should already be in the cache */
+ if (!TEST_false(SSL_CTX_add_session(sctx, sess2)))
+ goto end;
+ }
+ }
+
+ if (use_ext_cache) {
+ SSL_SESSION *tmp = sess2;
+
+ if (!TEST_int_eq(new_called, numnewsesstick)
+ || !TEST_int_eq(remove_called, 0)
+ || !TEST_int_eq(get_called, 0))
+ goto end;
+ /*
+ * Delete the session from the internal cache to force a lookup from
+ * the external cache. We take a copy first because
+ * SSL_CTX_remove_session() also marks the session as non-resumable.
+ */
+ if (use_int_cache && maxprot != TLS1_3_VERSION) {
+ if (!TEST_ptr(tmp = SSL_SESSION_dup(sess2))
+ || !TEST_true(SSL_CTX_remove_session(sctx, sess2)))
+ goto end;
+ SSL_SESSION_free(sess2);
+ }
+ sess2 = tmp;
+ }
+
+ new_called = remove_called = get_called = 0;
+ get_sess_val = sess2;
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl2,
+ &clientssl2, NULL, NULL))
+ || !TEST_true(SSL_set_session(clientssl2, sess1))
+ || !TEST_true(create_ssl_connection(serverssl2, clientssl2,
+ SSL_ERROR_NONE))
+ || !TEST_true(SSL_session_reused(clientssl2)))
+ goto end;
+
+ if (use_ext_cache) {
+ if (!TEST_int_eq(remove_called, 0))
+ goto end;
+
+ if (maxprot == TLS1_3_VERSION) {
+ if (!TEST_int_eq(new_called, 1)
+ || !TEST_int_eq(get_called, 0))
+ goto end;
+ } else {
+ if (!TEST_int_eq(new_called, 0)
+ || !TEST_int_eq(get_called, 1))
+ goto end;
+ }
+ }
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl1);
+ SSL_free(clientssl1);
+ SSL_free(serverssl2);
+ SSL_free(clientssl2);
+# ifndef OPENSSL_NO_TLS1_1
+ SSL_free(serverssl3);
+ SSL_free(clientssl3);
+# endif
+ SSL_SESSION_free(sess1);
+ SSL_SESSION_free(sess2);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+#endif /* !defined(OPENSSL_NO_TLS1_3) || !defined(OPENSSL_NO_TLS1_2) */
+
+static int test_session_with_only_int_cache(void)
+{
+#ifndef OPENSSL_NO_TLS1_3
+ if (!execute_test_session(TLS1_3_VERSION, 1, 0))
+ return 0;
+#endif
+
+#ifndef OPENSSL_NO_TLS1_2
+ return execute_test_session(TLS1_2_VERSION, 1, 0);
+#else
+ return 1;
+#endif
+}
+
+static int test_session_with_only_ext_cache(void)
+{
+#ifndef OPENSSL_NO_TLS1_3
+ if (!execute_test_session(TLS1_3_VERSION, 0, 1))
+ return 0;
+#endif
+
+#ifndef OPENSSL_NO_TLS1_2
+ return execute_test_session(TLS1_2_VERSION, 0, 1);
+#else
+ return 1;
+#endif
+}
+
+static int test_session_with_both_cache(void)
+{
+#ifndef OPENSSL_NO_TLS1_3
+ if (!execute_test_session(TLS1_3_VERSION, 1, 1))
+ return 0;
+#endif
+
+#ifndef OPENSSL_NO_TLS1_2
+ return execute_test_session(TLS1_2_VERSION, 1, 1);
+#else
+ return 1;
+#endif
+}
+
+#ifndef OPENSSL_NO_TLS1_3
+static SSL_SESSION *sesscache[6];
+static int do_cache;
+
+static int new_cachesession_cb(SSL *ssl, SSL_SESSION *sess)
+{
+ if (do_cache) {
+ sesscache[new_called] = sess;
+ } else {
+ /* We don't need the reference to the session, so free it */
+ SSL_SESSION_free(sess);
+ }
+ new_called++;
+
+ return 1;
+}
+
+static int post_handshake_verify(SSL *sssl, SSL *cssl)
+{
+ SSL_set_verify(sssl, SSL_VERIFY_PEER, NULL);
+ if (!TEST_true(SSL_verify_client_post_handshake(sssl)))
+ return 0;
+
+ /* Start handshake on the server and client */
+ if (!TEST_int_eq(SSL_do_handshake(sssl), 1)
+ || !TEST_int_le(SSL_read(cssl, NULL, 0), 0)
+ || !TEST_int_le(SSL_read(sssl, NULL, 0), 0)
+ || !TEST_true(create_ssl_connection(sssl, cssl,
+ SSL_ERROR_NONE)))
+ return 0;
+
+ return 1;
+}
+
+static int setup_ticket_test(int stateful, int idx, SSL_CTX **sctx,
+ SSL_CTX **cctx)
+{
+ int sess_id_ctx = 1;
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION, sctx,
+ cctx, cert, privkey))
+ || !TEST_true(SSL_CTX_set_num_tickets(*sctx, idx))
+ || !TEST_true(SSL_CTX_set_session_id_context(*sctx,
+ (void *)&sess_id_ctx,
+ sizeof(sess_id_ctx))))
+ return 0;
+
+ if (stateful)
+ SSL_CTX_set_options(*sctx, SSL_OP_NO_TICKET);
+
+ SSL_CTX_set_session_cache_mode(*cctx, SSL_SESS_CACHE_CLIENT
+ | SSL_SESS_CACHE_NO_INTERNAL_STORE);
+ SSL_CTX_sess_set_new_cb(*cctx, new_cachesession_cb);
+
+ return 1;
+}
+
+static int check_resumption(int idx, SSL_CTX *sctx, SSL_CTX *cctx, int succ)
+{
+ SSL *serverssl = NULL, *clientssl = NULL;
+ int i;
+
+ /* Test that we can resume with all the tickets we got given */
+ for (i = 0; i < idx * 2; i++) {
+ new_called = 0;
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL))
+ || !TEST_true(SSL_set_session(clientssl, sesscache[i])))
+ goto end;
+
+ SSL_set_post_handshake_auth(clientssl, 1);
+
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ /*
+ * Following a successful resumption we only get 1 ticket. After a
+ * failed one we should get idx tickets.
+ */
+ if (succ) {
+ if (!TEST_true(SSL_session_reused(clientssl))
+ || !TEST_int_eq(new_called, 1))
+ goto end;
+ } else {
+ if (!TEST_false(SSL_session_reused(clientssl))
+ || !TEST_int_eq(new_called, idx))
+ goto end;
+ }
+
+ new_called = 0;
+ /* After a post-handshake authentication we should get 1 new ticket */
+ if (succ
+ && (!post_handshake_verify(serverssl, clientssl)
+ || !TEST_int_eq(new_called, 1)))
+ goto end;
+
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ serverssl = clientssl = NULL;
+ SSL_SESSION_free(sesscache[i]);
+ sesscache[i] = NULL;
+ }
+
+ return 1;
+
+ end:
+ SSL_free(clientssl);
+ SSL_free(serverssl);
+ return 0;
+}
+
+static int test_tickets(int stateful, int idx)
+{
+ SSL_CTX *sctx = NULL, *cctx = NULL;
+ SSL *serverssl = NULL, *clientssl = NULL;
+ int testresult = 0;
+ size_t j;
+
+ /* idx is the test number, but also the number of tickets we want */
+
+ new_called = 0;
+ do_cache = 1;
+
+ if (!setup_ticket_test(stateful, idx, &sctx, &cctx))
+ goto end;
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL)))
+ goto end;
+
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ /* Check we got the number of tickets we were expecting */
+ || !TEST_int_eq(idx, new_called))
+ goto end;
+
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ clientssl = serverssl = NULL;
+ sctx = cctx = NULL;
+
+ /*
+ * Now we try to resume with the tickets we previously created. The
+ * resumption attempt is expected to fail (because we're now using a new
+ * SSL_CTX). We should see idx number of tickets issued again.
+ */
+
+ /* Stop caching sessions - just count them */
+ do_cache = 0;
+
+ if (!setup_ticket_test(stateful, idx, &sctx, &cctx))
+ goto end;
+
+ if (!check_resumption(idx, sctx, cctx, 0))
+ goto end;
+
+ /* Start again with caching sessions */
+ new_called = 0;
+ do_cache = 1;
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ sctx = cctx = NULL;
+
+ if (!setup_ticket_test(stateful, idx, &sctx, &cctx))
+ goto end;
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL)))
+ goto end;
+
+ SSL_set_post_handshake_auth(clientssl, 1);
+
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ /* Check we got the number of tickets we were expecting */
+ || !TEST_int_eq(idx, new_called))
+ goto end;
+
+ /* After a post-handshake authentication we should get new tickets issued */
+ if (!post_handshake_verify(serverssl, clientssl)
+ || !TEST_int_eq(idx * 2, new_called))
+ goto end;
+
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ serverssl = clientssl = NULL;
+
+ /* Stop caching sessions - just count them */
+ do_cache = 0;
+
+ /*
+ * Check we can resume with all the tickets we created. This time around the
+ * resumptions should all be successful.
+ */
+ if (!check_resumption(idx, sctx, cctx, 1))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ for (j = 0; j < OSSL_NELEM(sesscache); j++) {
+ SSL_SESSION_free(sesscache[j]);
+ sesscache[j] = NULL;
+ }
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+static int test_stateless_tickets(int idx)
+{
+ return test_tickets(0, idx);
+}
+
+static int test_stateful_tickets(int idx)
+{
+ return test_tickets(1, idx);
+}
+
+static int test_psk_tickets(void)
+{
+ SSL_CTX *sctx = NULL, *cctx = NULL;
+ SSL *serverssl = NULL, *clientssl = NULL;
+ int testresult = 0;
+ int sess_id_ctx = 1;
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION, &sctx,
+ &cctx, NULL, NULL))
+ || !TEST_true(SSL_CTX_set_session_id_context(sctx,
+ (void *)&sess_id_ctx,
+ sizeof(sess_id_ctx))))
+ goto end;
+
+ SSL_CTX_set_session_cache_mode(cctx, SSL_SESS_CACHE_CLIENT
+ | SSL_SESS_CACHE_NO_INTERNAL_STORE);
+ SSL_CTX_set_psk_use_session_callback(cctx, use_session_cb);
+ SSL_CTX_set_psk_find_session_callback(sctx, find_session_cb);
+ SSL_CTX_sess_set_new_cb(cctx, new_session_cb);
+ use_session_cb_cnt = 0;
+ find_session_cb_cnt = 0;
+ srvid = pskid;
+ new_called = 0;
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL)))
+ goto end;
+ clientpsk = serverpsk = create_a_psk(clientssl);
+ if (!TEST_ptr(clientpsk))
+ goto end;
+ SSL_SESSION_up_ref(clientpsk);
+
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_int_eq(1, find_session_cb_cnt)
+ || !TEST_int_eq(1, use_session_cb_cnt)
+ /* We should always get 1 ticket when using external PSK */
+ || !TEST_int_eq(1, new_called))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ SSL_SESSION_free(clientpsk);
+ SSL_SESSION_free(serverpsk);
+ clientpsk = serverpsk = NULL;
+
+ return testresult;
+}
+#endif
+
+#define USE_NULL 0
+#define USE_BIO_1 1
+#define USE_BIO_2 2
+#define USE_DEFAULT 3
+
+#define CONNTYPE_CONNECTION_SUCCESS 0
+#define CONNTYPE_CONNECTION_FAIL 1
+#define CONNTYPE_NO_CONNECTION 2
+
+#define TOTAL_NO_CONN_SSL_SET_BIO_TESTS (3 * 3 * 3 * 3)
+#define TOTAL_CONN_SUCCESS_SSL_SET_BIO_TESTS (2 * 2)
+#if !defined(OPENSSL_NO_TLS1_3) && !defined(OPENSSL_NO_TLS1_2)
+# define TOTAL_CONN_FAIL_SSL_SET_BIO_TESTS (2 * 2)
+#else
+# define TOTAL_CONN_FAIL_SSL_SET_BIO_TESTS 0
+#endif
+
+#define TOTAL_SSL_SET_BIO_TESTS TOTAL_NO_CONN_SSL_SET_BIO_TESTS \
+ + TOTAL_CONN_SUCCESS_SSL_SET_BIO_TESTS \
+ + TOTAL_CONN_FAIL_SSL_SET_BIO_TESTS
+
+static void setupbio(BIO **res, BIO *bio1, BIO *bio2, int type)
+{
+ switch (type) {
+ case USE_NULL:
+ *res = NULL;
+ break;
+ case USE_BIO_1:
+ *res = bio1;
+ break;
+ case USE_BIO_2:
+ *res = bio2;
+ break;
+ }
+}
+
+
+/*
+ * Tests calls to SSL_set_bio() under various conditions.
+ *
+ * For the first 3 * 3 * 3 * 3 = 81 tests we do 2 calls to SSL_set_bio() with
+ * various combinations of valid BIOs or NULL being set for the rbio/wbio. We
+ * then do more tests where we create a successful connection first using our
+ * standard connection setup functions, and then call SSL_set_bio() with
+ * various combinations of valid BIOs or NULL. We then repeat these tests
+ * following a failed connection. In this last case we are looking to check that
+ * SSL_set_bio() functions correctly in the case where s->bbio is not NULL.
+ */
+static int test_ssl_set_bio(int idx)
+{
+ SSL_CTX *sctx = NULL, *cctx = NULL;
+ BIO *bio1 = NULL;
+ BIO *bio2 = NULL;
+ BIO *irbio = NULL, *iwbio = NULL, *nrbio = NULL, *nwbio = NULL;
+ SSL *serverssl = NULL, *clientssl = NULL;
+ int initrbio, initwbio, newrbio, newwbio, conntype;
+ int testresult = 0;
+
+ if (idx < TOTAL_NO_CONN_SSL_SET_BIO_TESTS) {
+ initrbio = idx % 3;
+ idx /= 3;
+ initwbio = idx % 3;
+ idx /= 3;
+ newrbio = idx % 3;
+ idx /= 3;
+ newwbio = idx % 3;
+ conntype = CONNTYPE_NO_CONNECTION;
+ } else {
+ idx -= TOTAL_NO_CONN_SSL_SET_BIO_TESTS;
+ initrbio = initwbio = USE_DEFAULT;
+ newrbio = idx % 2;
+ idx /= 2;
+ newwbio = idx % 2;
+ idx /= 2;
+ conntype = idx % 2;
+ }
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ goto end;
+
+ if (conntype == CONNTYPE_CONNECTION_FAIL) {
+ /*
+ * We won't ever get here if either TLSv1.3 or TLSv1.2 is disabled
+ * because we reduced the number of tests in the definition of
+ * TOTAL_CONN_FAIL_SSL_SET_BIO_TESTS to avoid this scenario. By setting
+ * mismatched protocol versions we will force a connection failure.
+ */
+ SSL_CTX_set_min_proto_version(sctx, TLS1_3_VERSION);
+ SSL_CTX_set_max_proto_version(cctx, TLS1_2_VERSION);
+ }
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL)))
+ goto end;
+
+ if (initrbio == USE_BIO_1
+ || initwbio == USE_BIO_1
+ || newrbio == USE_BIO_1
+ || newwbio == USE_BIO_1) {
+ if (!TEST_ptr(bio1 = BIO_new(BIO_s_mem())))
+ goto end;
+ }
+
+ if (initrbio == USE_BIO_2
+ || initwbio == USE_BIO_2
+ || newrbio == USE_BIO_2
+ || newwbio == USE_BIO_2) {
+ if (!TEST_ptr(bio2 = BIO_new(BIO_s_mem())))
+ goto end;
+ }
+
+ if (initrbio != USE_DEFAULT) {
+ setupbio(&irbio, bio1, bio2, initrbio);
+ setupbio(&iwbio, bio1, bio2, initwbio);
+ SSL_set_bio(clientssl, irbio, iwbio);
+
+ /*
+ * We want to maintain our own refs to these BIO, so do an up ref for
+ * each BIO that will have ownership transferred in the SSL_set_bio()
+ * call
+ */
+ if (irbio != NULL)
+ BIO_up_ref(irbio);
+ if (iwbio != NULL && iwbio != irbio)
+ BIO_up_ref(iwbio);
+ }
+
+ if (conntype != CONNTYPE_NO_CONNECTION
+ && !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)
+ == (conntype == CONNTYPE_CONNECTION_SUCCESS)))
+ goto end;
+
+ setupbio(&nrbio, bio1, bio2, newrbio);
+ setupbio(&nwbio, bio1, bio2, newwbio);
+
+ /*
+ * We will (maybe) transfer ownership again so do more up refs.
+ * SSL_set_bio() has some really complicated ownership rules where BIOs have
+ * already been set!
+ */
+ if (nrbio != NULL
+ && nrbio != irbio
+ && (nwbio != iwbio || nrbio != nwbio))
+ BIO_up_ref(nrbio);
+ if (nwbio != NULL
+ && nwbio != nrbio
+ && (nwbio != iwbio || (nwbio == iwbio && irbio == iwbio)))
+ BIO_up_ref(nwbio);
+
+ SSL_set_bio(clientssl, nrbio, nwbio);
+
+ testresult = 1;
+
+ end:
+ BIO_free(bio1);
+ BIO_free(bio2);
+
+ /*
+ * This test is checking that the ref counting for SSL_set_bio is correct.
+ * If we get here and we did too many frees then we will fail in the above
+ * functions. If we haven't done enough then this will only be detected in
+ * a crypto-mdebug build
+ */
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ return testresult;
+}
+
+typedef enum { NO_BIO_CHANGE, CHANGE_RBIO, CHANGE_WBIO } bio_change_t;
+
+static int execute_test_ssl_bio(int pop_ssl, bio_change_t change_bio)
+{
+ BIO *sslbio = NULL, *membio1 = NULL, *membio2 = NULL;
+ SSL_CTX *ctx;
+ SSL *ssl = NULL;
+ int testresult = 0;
+
+ if (!TEST_ptr(ctx = SSL_CTX_new(TLS_method()))
+ || !TEST_ptr(ssl = SSL_new(ctx))
+ || !TEST_ptr(sslbio = BIO_new(BIO_f_ssl()))
+ || !TEST_ptr(membio1 = BIO_new(BIO_s_mem())))
+ goto end;
+
+ BIO_set_ssl(sslbio, ssl, BIO_CLOSE);
+
+ /*
+ * If anything goes wrong here then we could leak memory, so this will
+ * be caught in a crypto-mdebug build
+ */
+ BIO_push(sslbio, membio1);
+
+ /* Verify changing the rbio/wbio directly does not cause leaks */
+ if (change_bio != NO_BIO_CHANGE) {
+ if (!TEST_ptr(membio2 = BIO_new(BIO_s_mem())))
+ goto end;
+ if (change_bio == CHANGE_RBIO)
+ SSL_set0_rbio(ssl, membio2);
+ else
+ SSL_set0_wbio(ssl, membio2);
+ }
+ ssl = NULL;
+
+ if (pop_ssl)
+ BIO_pop(sslbio);
+ else
+ BIO_pop(membio1);
+
+ testresult = 1;
+ end:
+ BIO_free(membio1);
+ BIO_free(sslbio);
+ SSL_free(ssl);
+ SSL_CTX_free(ctx);
+
+ return testresult;
+}
+
+static int test_ssl_bio_pop_next_bio(void)
+{
+ return execute_test_ssl_bio(0, NO_BIO_CHANGE);
+}
+
+static int test_ssl_bio_pop_ssl_bio(void)
+{
+ return execute_test_ssl_bio(1, NO_BIO_CHANGE);
+}
+
+static int test_ssl_bio_change_rbio(void)
+{
+ return execute_test_ssl_bio(0, CHANGE_RBIO);
+}
+
+static int test_ssl_bio_change_wbio(void)
+{
+ return execute_test_ssl_bio(0, CHANGE_WBIO);
+}
+
+#if !defined(OPENSSL_NO_TLS1_2) || defined(OPENSSL_NO_TLS1_3)
+typedef struct {
+ /* The list of sig algs */
+ const int *list;
+ /* The length of the list */
+ size_t listlen;
+ /* A sigalgs list in string format */
+ const char *liststr;
+ /* Whether setting the list should succeed */
+ int valid;
+ /* Whether creating a connection with the list should succeed */
+ int connsuccess;
+} sigalgs_list;
+
+static const int validlist1[] = {NID_sha256, EVP_PKEY_RSA};
+# ifndef OPENSSL_NO_EC
+static const int validlist2[] = {NID_sha256, EVP_PKEY_RSA, NID_sha512, EVP_PKEY_EC};
+static const int validlist3[] = {NID_sha512, EVP_PKEY_EC};
+# endif
+static const int invalidlist1[] = {NID_undef, EVP_PKEY_RSA};
+static const int invalidlist2[] = {NID_sha256, NID_undef};
+static const int invalidlist3[] = {NID_sha256, EVP_PKEY_RSA, NID_sha256};
+static const int invalidlist4[] = {NID_sha256};
+static const sigalgs_list testsigalgs[] = {
+ {validlist1, OSSL_NELEM(validlist1), NULL, 1, 1},
+# ifndef OPENSSL_NO_EC
+ {validlist2, OSSL_NELEM(validlist2), NULL, 1, 1},
+ {validlist3, OSSL_NELEM(validlist3), NULL, 1, 0},
+# endif
+ {NULL, 0, "RSA+SHA256", 1, 1},
+# ifndef OPENSSL_NO_EC
+ {NULL, 0, "RSA+SHA256:ECDSA+SHA512", 1, 1},
+ {NULL, 0, "ECDSA+SHA512", 1, 0},
+# endif
+ {invalidlist1, OSSL_NELEM(invalidlist1), NULL, 0, 0},
+ {invalidlist2, OSSL_NELEM(invalidlist2), NULL, 0, 0},
+ {invalidlist3, OSSL_NELEM(invalidlist3), NULL, 0, 0},
+ {invalidlist4, OSSL_NELEM(invalidlist4), NULL, 0, 0},
+ {NULL, 0, "RSA", 0, 0},
+ {NULL, 0, "SHA256", 0, 0},
+ {NULL, 0, "RSA+SHA256:SHA256", 0, 0},
+ {NULL, 0, "Invalid", 0, 0}
+};
+
+static int test_set_sigalgs(int idx)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ const sigalgs_list *curr;
+ int testctx;
+
+ /* Should never happen */
+ if (!TEST_size_t_le((size_t)idx, OSSL_NELEM(testsigalgs) * 2))
+ return 0;
+
+ testctx = ((size_t)idx < OSSL_NELEM(testsigalgs));
+ curr = testctx ? &testsigalgs[idx]
+ : &testsigalgs[idx - OSSL_NELEM(testsigalgs)];
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ return 0;
+
+ /*
+ * TODO(TLS1.3): These APIs cannot set TLSv1.3 sig algs so we just test it
+ * for TLSv1.2 for now until we add a new API.
+ */
+ SSL_CTX_set_max_proto_version(cctx, TLS1_2_VERSION);
+
+ if (testctx) {
+ int ret;
+
+ if (curr->list != NULL)
+ ret = SSL_CTX_set1_sigalgs(cctx, curr->list, curr->listlen);
+ else
+ ret = SSL_CTX_set1_sigalgs_list(cctx, curr->liststr);
+
+ if (!ret) {
+ if (curr->valid)
+ TEST_info("Failure setting sigalgs in SSL_CTX (%d)\n", idx);
+ else
+ testresult = 1;
+ goto end;
+ }
+ if (!curr->valid) {
+ TEST_info("Not-failed setting sigalgs in SSL_CTX (%d)\n", idx);
+ goto end;
+ }
+ }
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL)))
+ goto end;
+
+ if (!testctx) {
+ int ret;
+
+ if (curr->list != NULL)
+ ret = SSL_set1_sigalgs(clientssl, curr->list, curr->listlen);
+ else
+ ret = SSL_set1_sigalgs_list(clientssl, curr->liststr);
+ if (!ret) {
+ if (curr->valid)
+ TEST_info("Failure setting sigalgs in SSL (%d)\n", idx);
+ else
+ testresult = 1;
+ goto end;
+ }
+ if (!curr->valid)
+ goto end;
+ }
+
+ if (!TEST_int_eq(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE),
+ curr->connsuccess))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+#endif
+
+#ifndef OPENSSL_NO_TLS1_3
+static int psk_client_cb_cnt = 0;
+static int psk_server_cb_cnt = 0;
+
+static int use_session_cb(SSL *ssl, const EVP_MD *md, const unsigned char **id,
+ size_t *idlen, SSL_SESSION **sess)
+{
+ switch (++use_session_cb_cnt) {
+ case 1:
+ /* The first call should always have a NULL md */
+ if (md != NULL)
+ return 0;
+ break;
+
+ case 2:
+ /* The second call should always have an md */
+ if (md == NULL)
+ return 0;
+ break;
+
+ default:
+ /* We should only be called a maximum of twice */
+ return 0;
+ }
+
+ if (clientpsk != NULL)
+ SSL_SESSION_up_ref(clientpsk);
+
+ *sess = clientpsk;
+ *id = (const unsigned char *)pskid;
+ *idlen = strlen(pskid);
+
+ return 1;
+}
+
+#ifndef OPENSSL_NO_PSK
+static unsigned int psk_client_cb(SSL *ssl, const char *hint, char *id,
+ unsigned int max_id_len,
+ unsigned char *psk,
+ unsigned int max_psk_len)
+{
+ unsigned int psklen = 0;
+
+ psk_client_cb_cnt++;
+
+ if (strlen(pskid) + 1 > max_id_len)
+ return 0;
+
+ /* We should only ever be called a maximum of twice per connection */
+ if (psk_client_cb_cnt > 2)
+ return 0;
+
+ if (clientpsk == NULL)
+ return 0;
+
+ /* We'll reuse the PSK we set up for TLSv1.3 */
+ if (SSL_SESSION_get_master_key(clientpsk, NULL, 0) > max_psk_len)
+ return 0;
+ psklen = SSL_SESSION_get_master_key(clientpsk, psk, max_psk_len);
+ strncpy(id, pskid, max_id_len);
+
+ return psklen;
+}
+#endif /* OPENSSL_NO_PSK */
+
+static int find_session_cb(SSL *ssl, const unsigned char *identity,
+ size_t identity_len, SSL_SESSION **sess)
+{
+ find_session_cb_cnt++;
+
+ /* We should only ever be called a maximum of twice per connection */
+ if (find_session_cb_cnt > 2)
+ return 0;
+
+ if (serverpsk == NULL)
+ return 0;
+
+ /* Identity should match that set by the client */
+ if (strlen(srvid) != identity_len
+ || strncmp(srvid, (const char *)identity, identity_len) != 0) {
+ /* No PSK found, continue but without a PSK */
+ *sess = NULL;
+ return 1;
+ }
+
+ SSL_SESSION_up_ref(serverpsk);
+ *sess = serverpsk;
+
+ return 1;
+}
+
+#ifndef OPENSSL_NO_PSK
+static unsigned int psk_server_cb(SSL *ssl, const char *identity,
+ unsigned char *psk, unsigned int max_psk_len)
+{
+ unsigned int psklen = 0;
+
+ psk_server_cb_cnt++;
+
+ /* We should only ever be called a maximum of twice per connection */
+ if (find_session_cb_cnt > 2)
+ return 0;
+
+ if (serverpsk == NULL)
+ return 0;
+
+ /* Identity should match that set by the client */
+ if (strcmp(srvid, identity) != 0) {
+ return 0;
+ }
+
+ /* We'll reuse the PSK we set up for TLSv1.3 */
+ if (SSL_SESSION_get_master_key(serverpsk, NULL, 0) > max_psk_len)
+ return 0;
+ psklen = SSL_SESSION_get_master_key(serverpsk, psk, max_psk_len);
+
+ return psklen;
+}
+#endif /* OPENSSL_NO_PSK */
+
+#define MSG1 "Hello"
+#define MSG2 "World."
+#define MSG3 "This"
+#define MSG4 "is"
+#define MSG5 "a"
+#define MSG6 "test"
+#define MSG7 "message."
+
+#define TLS13_AES_256_GCM_SHA384_BYTES ((const unsigned char *)"\x13\x02")
+#define TLS13_AES_128_GCM_SHA256_BYTES ((const unsigned char *)"\x13\x01")
+
+
+static SSL_SESSION *create_a_psk(SSL *ssl)
+{
+ const SSL_CIPHER *cipher = NULL;
+ const unsigned char key[] = {
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a,
+ 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15,
+ 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20,
+ 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b,
+ 0x2c, 0x2d, 0x2e, 0x2f
+ };
+ SSL_SESSION *sess = NULL;
+
+ cipher = SSL_CIPHER_find(ssl, TLS13_AES_256_GCM_SHA384_BYTES);
+ sess = SSL_SESSION_new();
+ if (!TEST_ptr(sess)
+ || !TEST_ptr(cipher)
+ || !TEST_true(SSL_SESSION_set1_master_key(sess, key,
+ sizeof(key)))
+ || !TEST_true(SSL_SESSION_set_cipher(sess, cipher))
+ || !TEST_true(
+ SSL_SESSION_set_protocol_version(sess,
+ TLS1_3_VERSION))) {
+ SSL_SESSION_free(sess);
+ return NULL;
+ }
+ return sess;
+}
+
+/*
+ * Helper method to setup objects for early data test. Caller frees objects on
+ * error.
+ */
+static int setupearly_data_test(SSL_CTX **cctx, SSL_CTX **sctx, SSL **clientssl,
+ SSL **serverssl, SSL_SESSION **sess, int idx)
+{
+ if (*sctx == NULL
+ && !TEST_true(create_ssl_ctx_pair(TLS_server_method(),
+ TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ sctx, cctx, cert, privkey)))
+ return 0;
+
+ if (!TEST_true(SSL_CTX_set_max_early_data(*sctx, SSL3_RT_MAX_PLAIN_LENGTH)))
+ return 0;
+
+ if (idx == 1) {
+ /* When idx == 1 we repeat the tests with read_ahead set */
+ SSL_CTX_set_read_ahead(*cctx, 1);
+ SSL_CTX_set_read_ahead(*sctx, 1);
+ } else if (idx == 2) {
+ /* When idx == 2 we are doing early_data with a PSK. Set up callbacks */
+ SSL_CTX_set_psk_use_session_callback(*cctx, use_session_cb);
+ SSL_CTX_set_psk_find_session_callback(*sctx, find_session_cb);
+ use_session_cb_cnt = 0;
+ find_session_cb_cnt = 0;
+ srvid = pskid;
+ }
+
+ if (!TEST_true(create_ssl_objects(*sctx, *cctx, serverssl, clientssl,
+ NULL, NULL)))
+ return 0;
+
+ /*
+ * For one of the run throughs (doesn't matter which one), we'll try sending
+ * some SNI data in the initial ClientHello. This will be ignored (because
+ * there is no SNI cb set up by the server), so it should not impact
+ * early_data.
+ */
+ if (idx == 1
+ && !TEST_true(SSL_set_tlsext_host_name(*clientssl, "localhost")))
+ return 0;
+
+ if (idx == 2) {
+ clientpsk = create_a_psk(*clientssl);
+ if (!TEST_ptr(clientpsk)
+ /*
+ * We just choose an arbitrary value for max_early_data which
+ * should be big enough for testing purposes.
+ */
+ || !TEST_true(SSL_SESSION_set_max_early_data(clientpsk,
+ 0x100))
+ || !TEST_true(SSL_SESSION_up_ref(clientpsk))) {
+ SSL_SESSION_free(clientpsk);
+ clientpsk = NULL;
+ return 0;
+ }
+ serverpsk = clientpsk;
+
+ if (sess != NULL) {
+ if (!TEST_true(SSL_SESSION_up_ref(clientpsk))) {
+ SSL_SESSION_free(clientpsk);
+ SSL_SESSION_free(serverpsk);
+ clientpsk = serverpsk = NULL;
+ return 0;
+ }
+ *sess = clientpsk;
+ }
+ return 1;
+ }
+
+ if (sess == NULL)
+ return 1;
+
+ if (!TEST_true(create_ssl_connection(*serverssl, *clientssl,
+ SSL_ERROR_NONE)))
+ return 0;
+
+ *sess = SSL_get1_session(*clientssl);
+ SSL_shutdown(*clientssl);
+ SSL_shutdown(*serverssl);
+ SSL_free(*serverssl);
+ SSL_free(*clientssl);
+ *serverssl = *clientssl = NULL;
+
+ if (!TEST_true(create_ssl_objects(*sctx, *cctx, serverssl,
+ clientssl, NULL, NULL))
+ || !TEST_true(SSL_set_session(*clientssl, *sess)))
+ return 0;
+
+ return 1;
+}
+
+static int test_early_data_read_write(int idx)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ SSL_SESSION *sess = NULL;
+ unsigned char buf[20], data[1024];
+ size_t readbytes, written, eoedlen, rawread, rawwritten;
+ BIO *rbio;
+
+ if (!TEST_true(setupearly_data_test(&cctx, &sctx, &clientssl,
+ &serverssl, &sess, idx)))
+ goto end;
+
+ /* Write and read some early data */
+ if (!TEST_true(SSL_write_early_data(clientssl, MSG1, strlen(MSG1),
+ &written))
+ || !TEST_size_t_eq(written, strlen(MSG1))
+ || !TEST_int_eq(SSL_read_early_data(serverssl, buf,
+ sizeof(buf), &readbytes),
+ SSL_READ_EARLY_DATA_SUCCESS)
+ || !TEST_mem_eq(MSG1, readbytes, buf, strlen(MSG1))
+ || !TEST_int_eq(SSL_get_early_data_status(serverssl),
+ SSL_EARLY_DATA_ACCEPTED))
+ goto end;
+
+ /*
+ * Server should be able to write data, and client should be able to
+ * read it.
+ */
+ if (!TEST_true(SSL_write_early_data(serverssl, MSG2, strlen(MSG2),
+ &written))
+ || !TEST_size_t_eq(written, strlen(MSG2))
+ || !TEST_true(SSL_read_ex(clientssl, buf, sizeof(buf), &readbytes))
+ || !TEST_mem_eq(buf, readbytes, MSG2, strlen(MSG2)))
+ goto end;
+
+ /* Even after reading normal data, client should be able write early data */
+ if (!TEST_true(SSL_write_early_data(clientssl, MSG3, strlen(MSG3),
+ &written))
+ || !TEST_size_t_eq(written, strlen(MSG3)))
+ goto end;
+
+ /* Server should still be able read early data after writing data */
+ if (!TEST_int_eq(SSL_read_early_data(serverssl, buf, sizeof(buf),
+ &readbytes),
+ SSL_READ_EARLY_DATA_SUCCESS)
+ || !TEST_mem_eq(buf, readbytes, MSG3, strlen(MSG3)))
+ goto end;
+
+ /* Write more data from server and read it from client */
+ if (!TEST_true(SSL_write_early_data(serverssl, MSG4, strlen(MSG4),
+ &written))
+ || !TEST_size_t_eq(written, strlen(MSG4))
+ || !TEST_true(SSL_read_ex(clientssl, buf, sizeof(buf), &readbytes))
+ || !TEST_mem_eq(buf, readbytes, MSG4, strlen(MSG4)))
+ goto end;
+
+ /*
+ * If client writes normal data it should mean writing early data is no
+ * longer possible.
+ */
+ if (!TEST_true(SSL_write_ex(clientssl, MSG5, strlen(MSG5), &written))
+ || !TEST_size_t_eq(written, strlen(MSG5))
+ || !TEST_int_eq(SSL_get_early_data_status(clientssl),
+ SSL_EARLY_DATA_ACCEPTED))
+ goto end;
+
+ /*
+ * At this point the client has written EndOfEarlyData, ClientFinished and
+ * normal (fully protected) data. We are going to cause a delay between the
+ * arrival of EndOfEarlyData and ClientFinished. We read out all the data
+ * in the read BIO, and then just put back the EndOfEarlyData message.
+ */
+ rbio = SSL_get_rbio(serverssl);
+ if (!TEST_true(BIO_read_ex(rbio, data, sizeof(data), &rawread))
+ || !TEST_size_t_lt(rawread, sizeof(data))
+ || !TEST_size_t_gt(rawread, SSL3_RT_HEADER_LENGTH))
+ goto end;
+
+ /* Record length is in the 4th and 5th bytes of the record header */
+ eoedlen = SSL3_RT_HEADER_LENGTH + (data[3] << 8 | data[4]);
+ if (!TEST_true(BIO_write_ex(rbio, data, eoedlen, &rawwritten))
+ || !TEST_size_t_eq(rawwritten, eoedlen))
+ goto end;
+
+ /* Server should be told that there is no more early data */
+ if (!TEST_int_eq(SSL_read_early_data(serverssl, buf, sizeof(buf),
+ &readbytes),
+ SSL_READ_EARLY_DATA_FINISH)
+ || !TEST_size_t_eq(readbytes, 0))
+ goto end;
+
+ /*
+ * Server has not finished init yet, so should still be able to write early
+ * data.
+ */
+ if (!TEST_true(SSL_write_early_data(serverssl, MSG6, strlen(MSG6),
+ &written))
+ || !TEST_size_t_eq(written, strlen(MSG6)))
+ goto end;
+
+ /* Push the ClientFinished and the normal data back into the server rbio */
+ if (!TEST_true(BIO_write_ex(rbio, data + eoedlen, rawread - eoedlen,
+ &rawwritten))
+ || !TEST_size_t_eq(rawwritten, rawread - eoedlen))
+ goto end;
+
+ /* Server should be able to read normal data */
+ if (!TEST_true(SSL_read_ex(serverssl, buf, sizeof(buf), &readbytes))
+ || !TEST_size_t_eq(readbytes, strlen(MSG5)))
+ goto end;
+
+ /* Client and server should not be able to write/read early data now */
+ if (!TEST_false(SSL_write_early_data(clientssl, MSG6, strlen(MSG6),
+ &written)))
+ goto end;
+ ERR_clear_error();
+ if (!TEST_int_eq(SSL_read_early_data(serverssl, buf, sizeof(buf),
+ &readbytes),
+ SSL_READ_EARLY_DATA_ERROR))
+ goto end;
+ ERR_clear_error();
+
+ /* Client should be able to read the data sent by the server */
+ if (!TEST_true(SSL_read_ex(clientssl, buf, sizeof(buf), &readbytes))
+ || !TEST_mem_eq(buf, readbytes, MSG6, strlen(MSG6)))
+ goto end;
+
+ /*
+ * Make sure we process the two NewSessionTickets. These arrive
+ * post-handshake. We attempt reads which we do not expect to return any
+ * data.
+ */
+ if (!TEST_false(SSL_read_ex(clientssl, buf, sizeof(buf), &readbytes))
+ || !TEST_false(SSL_read_ex(clientssl, buf, sizeof(buf),
+ &readbytes)))
+ goto end;
+
+ /* Server should be able to write normal data */
+ if (!TEST_true(SSL_write_ex(serverssl, MSG7, strlen(MSG7), &written))
+ || !TEST_size_t_eq(written, strlen(MSG7))
+ || !TEST_true(SSL_read_ex(clientssl, buf, sizeof(buf), &readbytes))
+ || !TEST_mem_eq(buf, readbytes, MSG7, strlen(MSG7)))
+ goto end;
+
+ SSL_SESSION_free(sess);
+ sess = SSL_get1_session(clientssl);
+ use_session_cb_cnt = 0;
+ find_session_cb_cnt = 0;
+
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ serverssl = clientssl = NULL;
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL))
+ || !TEST_true(SSL_set_session(clientssl, sess)))
+ goto end;
+
+ /* Write and read some early data */
+ if (!TEST_true(SSL_write_early_data(clientssl, MSG1, strlen(MSG1),
+ &written))
+ || !TEST_size_t_eq(written, strlen(MSG1))
+ || !TEST_int_eq(SSL_read_early_data(serverssl, buf, sizeof(buf),
+ &readbytes),
+ SSL_READ_EARLY_DATA_SUCCESS)
+ || !TEST_mem_eq(buf, readbytes, MSG1, strlen(MSG1)))
+ goto end;
+
+ if (!TEST_int_gt(SSL_connect(clientssl), 0)
+ || !TEST_int_gt(SSL_accept(serverssl), 0))
+ goto end;
+
+ /* Client and server should not be able to write/read early data now */
+ if (!TEST_false(SSL_write_early_data(clientssl, MSG6, strlen(MSG6),
+ &written)))
+ goto end;
+ ERR_clear_error();
+ if (!TEST_int_eq(SSL_read_early_data(serverssl, buf, sizeof(buf),
+ &readbytes),
+ SSL_READ_EARLY_DATA_ERROR))
+ goto end;
+ ERR_clear_error();
+
+ /* Client and server should be able to write/read normal data */
+ if (!TEST_true(SSL_write_ex(clientssl, MSG5, strlen(MSG5), &written))
+ || !TEST_size_t_eq(written, strlen(MSG5))
+ || !TEST_true(SSL_read_ex(serverssl, buf, sizeof(buf), &readbytes))
+ || !TEST_size_t_eq(readbytes, strlen(MSG5)))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_SESSION_free(sess);
+ SSL_SESSION_free(clientpsk);
+ SSL_SESSION_free(serverpsk);
+ clientpsk = serverpsk = NULL;
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ return testresult;
+}
+
+static int allow_ed_cb_called = 0;
+
+static int allow_early_data_cb(SSL *s, void *arg)
+{
+ int *usecb = (int *)arg;
+
+ allow_ed_cb_called++;
+
+ if (*usecb == 1)
+ return 0;
+
+ return 1;
+}
+
+/*
+ * idx == 0: Standard early_data setup
+ * idx == 1: early_data setup using read_ahead
+ * usecb == 0: Don't use a custom early data callback
+ * usecb == 1: Use a custom early data callback and reject the early data
+ * usecb == 2: Use a custom early data callback and accept the early data
+ * confopt == 0: Configure anti-replay directly
+ * confopt == 1: Configure anti-replay using SSL_CONF
+ */
+static int test_early_data_replay_int(int idx, int usecb, int confopt)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ SSL_SESSION *sess = NULL;
+ size_t readbytes, written;
+ unsigned char buf[20];
+
+ allow_ed_cb_called = 0;
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION, &sctx,
+ &cctx, cert, privkey)))
+ return 0;
+
+ if (usecb > 0) {
+ if (confopt == 0) {
+ SSL_CTX_set_options(sctx, SSL_OP_NO_ANTI_REPLAY);
+ } else {
+ SSL_CONF_CTX *confctx = SSL_CONF_CTX_new();
+
+ if (!TEST_ptr(confctx))
+ goto end;
+ SSL_CONF_CTX_set_flags(confctx, SSL_CONF_FLAG_FILE
+ | SSL_CONF_FLAG_SERVER);
+ SSL_CONF_CTX_set_ssl_ctx(confctx, sctx);
+ if (!TEST_int_eq(SSL_CONF_cmd(confctx, "Options", "-AntiReplay"),
+ 2)) {
+ SSL_CONF_CTX_free(confctx);
+ goto end;
+ }
+ SSL_CONF_CTX_free(confctx);
+ }
+ SSL_CTX_set_allow_early_data_cb(sctx, allow_early_data_cb, &usecb);
+ }
+
+ if (!TEST_true(setupearly_data_test(&cctx, &sctx, &clientssl,
+ &serverssl, &sess, idx)))
+ goto end;
+
+ /*
+ * The server is configured to accept early data. Create a connection to
+ * "use up" the ticket
+ */
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl, SSL_ERROR_NONE))
+ || !TEST_true(SSL_session_reused(clientssl)))
+ goto end;
+
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ serverssl = clientssl = NULL;
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL))
+ || !TEST_true(SSL_set_session(clientssl, sess)))
+ goto end;
+
+ /* Write and read some early data */
+ if (!TEST_true(SSL_write_early_data(clientssl, MSG1, strlen(MSG1),
+ &written))
+ || !TEST_size_t_eq(written, strlen(MSG1)))
+ goto end;
+
+ if (usecb <= 1) {
+ if (!TEST_int_eq(SSL_read_early_data(serverssl, buf, sizeof(buf),
+ &readbytes),
+ SSL_READ_EARLY_DATA_FINISH)
+ /*
+ * The ticket was reused, so the we should have rejected the
+ * early data
+ */
+ || !TEST_int_eq(SSL_get_early_data_status(serverssl),
+ SSL_EARLY_DATA_REJECTED))
+ goto end;
+ } else {
+ /* In this case the callback decides to accept the early data */
+ if (!TEST_int_eq(SSL_read_early_data(serverssl, buf, sizeof(buf),
+ &readbytes),
+ SSL_READ_EARLY_DATA_SUCCESS)
+ || !TEST_mem_eq(MSG1, strlen(MSG1), buf, readbytes)
+ /*
+ * Server will have sent its flight so client can now send
+ * end of early data and complete its half of the handshake
+ */
+ || !TEST_int_gt(SSL_connect(clientssl), 0)
+ || !TEST_int_eq(SSL_read_early_data(serverssl, buf, sizeof(buf),
+ &readbytes),
+ SSL_READ_EARLY_DATA_FINISH)
+ || !TEST_int_eq(SSL_get_early_data_status(serverssl),
+ SSL_EARLY_DATA_ACCEPTED))
+ goto end;
+ }
+
+ /* Complete the connection */
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl, SSL_ERROR_NONE))
+ || !TEST_int_eq(SSL_session_reused(clientssl), (usecb > 0) ? 1 : 0)
+ || !TEST_int_eq(allow_ed_cb_called, usecb > 0 ? 1 : 0))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_SESSION_free(sess);
+ SSL_SESSION_free(clientpsk);
+ SSL_SESSION_free(serverpsk);
+ clientpsk = serverpsk = NULL;
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ return testresult;
+}
+
+static int test_early_data_replay(int idx)
+{
+ int ret = 1, usecb, confopt;
+
+ for (usecb = 0; usecb < 3; usecb++) {
+ for (confopt = 0; confopt < 2; confopt++)
+ ret &= test_early_data_replay_int(idx, usecb, confopt);
+ }
+
+ return ret;
+}
+
+/*
+ * Helper function to test that a server attempting to read early data can
+ * handle a connection from a client where the early data should be skipped.
+ * testtype: 0 == No HRR
+ * testtype: 1 == HRR
+ * testtype: 2 == HRR, invalid early_data sent after HRR
+ * testtype: 3 == recv_max_early_data set to 0
+ */
+static int early_data_skip_helper(int testtype, int idx)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ SSL_SESSION *sess = NULL;
+ unsigned char buf[20];
+ size_t readbytes, written;
+
+ if (!TEST_true(setupearly_data_test(&cctx, &sctx, &clientssl,
+ &serverssl, &sess, idx)))
+ goto end;
+
+ if (testtype == 1 || testtype == 2) {
+ /* Force an HRR to occur */
+ if (!TEST_true(SSL_set1_groups_list(serverssl, "P-256")))
+ goto end;
+ } else if (idx == 2) {
+ /*
+ * We force early_data rejection by ensuring the PSK identity is
+ * unrecognised
+ */
+ srvid = "Dummy Identity";
+ } else {
+ /*
+ * Deliberately corrupt the creation time. We take 20 seconds off the
+ * time. It could be any value as long as it is not within tolerance.
+ * This should mean the ticket is rejected.
+ */
+ if (!TEST_true(SSL_SESSION_set_time(sess, (long)(time(NULL) - 20))))
+ goto end;
+ }
+
+ if (testtype == 3
+ && !TEST_true(SSL_set_recv_max_early_data(serverssl, 0)))
+ goto end;
+
+ /* Write some early data */
+ if (!TEST_true(SSL_write_early_data(clientssl, MSG1, strlen(MSG1),
+ &written))
+ || !TEST_size_t_eq(written, strlen(MSG1)))
+ goto end;
+
+ /* Server should reject the early data */
+ if (!TEST_int_eq(SSL_read_early_data(serverssl, buf, sizeof(buf),
+ &readbytes),
+ SSL_READ_EARLY_DATA_FINISH)
+ || !TEST_size_t_eq(readbytes, 0)
+ || !TEST_int_eq(SSL_get_early_data_status(serverssl),
+ SSL_EARLY_DATA_REJECTED))
+ goto end;
+
+ switch (testtype) {
+ case 0:
+ /* Nothing to do */
+ break;
+
+ case 1:
+ /*
+ * Finish off the handshake. We perform the same writes and reads as
+ * further down but we expect them to fail due to the incomplete
+ * handshake.
+ */
+ if (!TEST_false(SSL_write_ex(clientssl, MSG2, strlen(MSG2), &written))
+ || !TEST_false(SSL_read_ex(serverssl, buf, sizeof(buf),
+ &readbytes)))
+ goto end;
+ break;
+
+ case 2:
+ {
+ BIO *wbio = SSL_get_wbio(clientssl);
+ /* A record that will appear as bad early_data */
+ const unsigned char bad_early_data[] = {
+ 0x17, 0x03, 0x03, 0x00, 0x01, 0x00
+ };
+
+ /*
+ * We force the client to attempt a write. This will fail because
+ * we're still in the handshake. It will cause the second
+ * ClientHello to be sent.
+ */
+ if (!TEST_false(SSL_write_ex(clientssl, MSG2, strlen(MSG2),
+ &written)))
+ goto end;
+
+ /*
+ * Inject some early_data after the second ClientHello. This should
+ * cause the server to fail
+ */
+ if (!TEST_true(BIO_write_ex(wbio, bad_early_data,
+ sizeof(bad_early_data), &written)))
+ goto end;
+ }
+ /* fallthrough */
+
+ case 3:
+ /*
+ * This client has sent more early_data than we are willing to skip
+ * (case 3) or sent invalid early_data (case 2) so the connection should
+ * abort.
+ */
+ if (!TEST_false(SSL_read_ex(serverssl, buf, sizeof(buf), &readbytes))
+ || !TEST_int_eq(SSL_get_error(serverssl, 0), SSL_ERROR_SSL))
+ goto end;
+
+ /* Connection has failed - nothing more to do */
+ testresult = 1;
+ goto end;
+
+ default:
+ TEST_error("Invalid test type");
+ goto end;
+ }
+
+ /*
+ * Should be able to send normal data despite rejection of early data. The
+ * early_data should be skipped.
+ */
+ if (!TEST_true(SSL_write_ex(clientssl, MSG2, strlen(MSG2), &written))
+ || !TEST_size_t_eq(written, strlen(MSG2))
+ || !TEST_int_eq(SSL_get_early_data_status(clientssl),
+ SSL_EARLY_DATA_REJECTED)
+ || !TEST_true(SSL_read_ex(serverssl, buf, sizeof(buf), &readbytes))
+ || !TEST_mem_eq(buf, readbytes, MSG2, strlen(MSG2)))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_SESSION_free(clientpsk);
+ SSL_SESSION_free(serverpsk);
+ clientpsk = serverpsk = NULL;
+ SSL_SESSION_free(sess);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ return testresult;
+}
+
+/*
+ * Test that a server attempting to read early data can handle a connection
+ * from a client where the early data is not acceptable.
+ */
+static int test_early_data_skip(int idx)
+{
+ return early_data_skip_helper(0, idx);
+}
+
+/*
+ * Test that a server attempting to read early data can handle a connection
+ * from a client where an HRR occurs.
+ */
+static int test_early_data_skip_hrr(int idx)
+{
+ return early_data_skip_helper(1, idx);
+}
+
+/*
+ * Test that a server attempting to read early data can handle a connection
+ * from a client where an HRR occurs and correctly fails if early_data is sent
+ * after the HRR
+ */
+static int test_early_data_skip_hrr_fail(int idx)
+{
+ return early_data_skip_helper(2, idx);
+}
+
+/*
+ * Test that a server attempting to read early data will abort if it tries to
+ * skip over too much.
+ */
+static int test_early_data_skip_abort(int idx)
+{
+ return early_data_skip_helper(3, idx);
+}
+
+/*
+ * Test that a server attempting to read early data can handle a connection
+ * from a client that doesn't send any.
+ */
+static int test_early_data_not_sent(int idx)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ SSL_SESSION *sess = NULL;
+ unsigned char buf[20];
+ size_t readbytes, written;
+
+ if (!TEST_true(setupearly_data_test(&cctx, &sctx, &clientssl,
+ &serverssl, &sess, idx)))
+ goto end;
+
+ /* Write some data - should block due to handshake with server */
+ SSL_set_connect_state(clientssl);
+ if (!TEST_false(SSL_write_ex(clientssl, MSG1, strlen(MSG1), &written)))
+ goto end;
+
+ /* Server should detect that early data has not been sent */
+ if (!TEST_int_eq(SSL_read_early_data(serverssl, buf, sizeof(buf),
+ &readbytes),
+ SSL_READ_EARLY_DATA_FINISH)
+ || !TEST_size_t_eq(readbytes, 0)
+ || !TEST_int_eq(SSL_get_early_data_status(serverssl),
+ SSL_EARLY_DATA_NOT_SENT)
+ || !TEST_int_eq(SSL_get_early_data_status(clientssl),
+ SSL_EARLY_DATA_NOT_SENT))
+ goto end;
+
+ /* Continue writing the message we started earlier */
+ if (!TEST_true(SSL_write_ex(clientssl, MSG1, strlen(MSG1), &written))
+ || !TEST_size_t_eq(written, strlen(MSG1))
+ || !TEST_true(SSL_read_ex(serverssl, buf, sizeof(buf), &readbytes))
+ || !TEST_mem_eq(buf, readbytes, MSG1, strlen(MSG1))
+ || !SSL_write_ex(serverssl, MSG2, strlen(MSG2), &written)
+ || !TEST_size_t_eq(written, strlen(MSG2)))
+ goto end;
+
+ if (!TEST_true(SSL_read_ex(clientssl, buf, sizeof(buf), &readbytes))
+ || !TEST_mem_eq(buf, readbytes, MSG2, strlen(MSG2)))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_SESSION_free(sess);
+ SSL_SESSION_free(clientpsk);
+ SSL_SESSION_free(serverpsk);
+ clientpsk = serverpsk = NULL;
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ return testresult;
+}
+
+static const char *servalpn;
+
+static int alpn_select_cb(SSL *ssl, const unsigned char **out,
+ unsigned char *outlen, const unsigned char *in,
+ unsigned int inlen, void *arg)
+{
+ unsigned int protlen = 0;
+ const unsigned char *prot;
+
+ for (prot = in; prot < in + inlen; prot += protlen) {
+ protlen = *prot++;
+ if (in + inlen < prot + protlen)
+ return SSL_TLSEXT_ERR_NOACK;
+
+ if (protlen == strlen(servalpn)
+ && memcmp(prot, servalpn, protlen) == 0) {
+ *out = prot;
+ *outlen = protlen;
+ return SSL_TLSEXT_ERR_OK;
+ }
+ }
+
+ return SSL_TLSEXT_ERR_NOACK;
+}
+
+/* Test that a PSK can be used to send early_data */
+static int test_early_data_psk(int idx)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ SSL_SESSION *sess = NULL;
+ unsigned char alpnlist[] = {
+ 0x08, 'g', 'o', 'o', 'd', 'a', 'l', 'p', 'n', 0x07, 'b', 'a', 'd', 'a',
+ 'l', 'p', 'n'
+ };
+#define GOODALPNLEN 9
+#define BADALPNLEN 8
+#define GOODALPN (alpnlist)
+#define BADALPN (alpnlist + GOODALPNLEN)
+ int err = 0;
+ unsigned char buf[20];
+ size_t readbytes, written;
+ int readearlyres = SSL_READ_EARLY_DATA_SUCCESS, connectres = 1;
+ int edstatus = SSL_EARLY_DATA_ACCEPTED;
+
+ /* We always set this up with a final parameter of "2" for PSK */
+ if (!TEST_true(setupearly_data_test(&cctx, &sctx, &clientssl,
+ &serverssl, &sess, 2)))
+ goto end;
+
+ servalpn = "goodalpn";
+
+ /*
+ * Note: There is no test for inconsistent SNI with late client detection.
+ * This is because servers do not acknowledge SNI even if they are using
+ * it in a resumption handshake - so it is not actually possible for a
+ * client to detect a problem.
+ */
+ switch (idx) {
+ case 0:
+ /* Set inconsistent SNI (early client detection) */
+ err = SSL_R_INCONSISTENT_EARLY_DATA_SNI;
+ if (!TEST_true(SSL_SESSION_set1_hostname(sess, "goodhost"))
+ || !TEST_true(SSL_set_tlsext_host_name(clientssl, "badhost")))
+ goto end;
+ break;
+
+ case 1:
+ /* Set inconsistent ALPN (early client detection) */
+ err = SSL_R_INCONSISTENT_EARLY_DATA_ALPN;
+ /* SSL_set_alpn_protos returns 0 for success and 1 for failure */
+ if (!TEST_true(SSL_SESSION_set1_alpn_selected(sess, GOODALPN,
+ GOODALPNLEN))
+ || !TEST_false(SSL_set_alpn_protos(clientssl, BADALPN,
+ BADALPNLEN)))
+ goto end;
+ break;
+
+ case 2:
+ /*
+ * Set invalid protocol version. Technically this affects PSKs without
+ * early_data too, but we test it here because it is similar to the
+ * SNI/ALPN consistency tests.
+ */
+ err = SSL_R_BAD_PSK;
+ if (!TEST_true(SSL_SESSION_set_protocol_version(sess, TLS1_2_VERSION)))
+ goto end;
+ break;
+
+ case 3:
+ /*
+ * Set inconsistent SNI (server side). In this case the connection
+ * will succeed and accept early_data. In TLSv1.3 on the server side SNI
+ * is associated with each handshake - not the session. Therefore it
+ * should not matter that we used a different server name last time.
+ */
+ SSL_SESSION_free(serverpsk);
+ serverpsk = SSL_SESSION_dup(clientpsk);
+ if (!TEST_ptr(serverpsk)
+ || !TEST_true(SSL_SESSION_set1_hostname(serverpsk, "badhost")))
+ goto end;
+ /* Fall through */
+ case 4:
+ /* Set consistent SNI */
+ if (!TEST_true(SSL_SESSION_set1_hostname(sess, "goodhost"))
+ || !TEST_true(SSL_set_tlsext_host_name(clientssl, "goodhost"))
+ || !TEST_true(SSL_CTX_set_tlsext_servername_callback(sctx,
+ hostname_cb)))
+ goto end;
+ break;
+
+ case 5:
+ /*
+ * Set inconsistent ALPN (server detected). In this case the connection
+ * will succeed but reject early_data.
+ */
+ servalpn = "badalpn";
+ edstatus = SSL_EARLY_DATA_REJECTED;
+ readearlyres = SSL_READ_EARLY_DATA_FINISH;
+ /* Fall through */
+ case 6:
+ /*
+ * Set consistent ALPN.
+ * SSL_set_alpn_protos returns 0 for success and 1 for failure. It
+ * accepts a list of protos (each one length prefixed).
+ * SSL_set1_alpn_selected accepts a single protocol (not length
+ * prefixed)
+ */
+ if (!TEST_true(SSL_SESSION_set1_alpn_selected(sess, GOODALPN + 1,
+ GOODALPNLEN - 1))
+ || !TEST_false(SSL_set_alpn_protos(clientssl, GOODALPN,
+ GOODALPNLEN)))
+ goto end;
+
+ SSL_CTX_set_alpn_select_cb(sctx, alpn_select_cb, NULL);
+ break;
+
+ case 7:
+ /* Set inconsistent ALPN (late client detection) */
+ SSL_SESSION_free(serverpsk);
+ serverpsk = SSL_SESSION_dup(clientpsk);
+ if (!TEST_ptr(serverpsk)
+ || !TEST_true(SSL_SESSION_set1_alpn_selected(clientpsk,
+ BADALPN + 1,
+ BADALPNLEN - 1))
+ || !TEST_true(SSL_SESSION_set1_alpn_selected(serverpsk,
+ GOODALPN + 1,
+ GOODALPNLEN - 1))
+ || !TEST_false(SSL_set_alpn_protos(clientssl, alpnlist,
+ sizeof(alpnlist))))
+ goto end;
+ SSL_CTX_set_alpn_select_cb(sctx, alpn_select_cb, NULL);
+ edstatus = SSL_EARLY_DATA_ACCEPTED;
+ readearlyres = SSL_READ_EARLY_DATA_SUCCESS;
+ /* SSL_connect() call should fail */
+ connectres = -1;
+ break;
+
+ default:
+ TEST_error("Bad test index");
+ goto end;
+ }
+
+ SSL_set_connect_state(clientssl);
+ if (err != 0) {
+ if (!TEST_false(SSL_write_early_data(clientssl, MSG1, strlen(MSG1),
+ &written))
+ || !TEST_int_eq(SSL_get_error(clientssl, 0), SSL_ERROR_SSL)
+ || !TEST_int_eq(ERR_GET_REASON(ERR_get_error()), err))
+ goto end;
+ } else {
+ if (!TEST_true(SSL_write_early_data(clientssl, MSG1, strlen(MSG1),
+ &written)))
+ goto end;
+
+ if (!TEST_int_eq(SSL_read_early_data(serverssl, buf, sizeof(buf),
+ &readbytes), readearlyres)
+ || (readearlyres == SSL_READ_EARLY_DATA_SUCCESS
+ && !TEST_mem_eq(buf, readbytes, MSG1, strlen(MSG1)))
+ || !TEST_int_eq(SSL_get_early_data_status(serverssl), edstatus)
+ || !TEST_int_eq(SSL_connect(clientssl), connectres))
+ goto end;
+ }
+
+ testresult = 1;
+
+ end:
+ SSL_SESSION_free(sess);
+ SSL_SESSION_free(clientpsk);
+ SSL_SESSION_free(serverpsk);
+ clientpsk = serverpsk = NULL;
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ return testresult;
+}
+
+/*
+ * Test that a server that doesn't try to read early data can handle a
+ * client sending some.
+ */
+static int test_early_data_not_expected(int idx)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ SSL_SESSION *sess = NULL;
+ unsigned char buf[20];
+ size_t readbytes, written;
+
+ if (!TEST_true(setupearly_data_test(&cctx, &sctx, &clientssl,
+ &serverssl, &sess, idx)))
+ goto end;
+
+ /* Write some early data */
+ if (!TEST_true(SSL_write_early_data(clientssl, MSG1, strlen(MSG1),
+ &written)))
+ goto end;
+
+ /*
+ * Server should skip over early data and then block waiting for client to
+ * continue handshake
+ */
+ if (!TEST_int_le(SSL_accept(serverssl), 0)
+ || !TEST_int_gt(SSL_connect(clientssl), 0)
+ || !TEST_int_eq(SSL_get_early_data_status(serverssl),
+ SSL_EARLY_DATA_REJECTED)
+ || !TEST_int_gt(SSL_accept(serverssl), 0)
+ || !TEST_int_eq(SSL_get_early_data_status(clientssl),
+ SSL_EARLY_DATA_REJECTED))
+ goto end;
+
+ /* Send some normal data from client to server */
+ if (!TEST_true(SSL_write_ex(clientssl, MSG2, strlen(MSG2), &written))
+ || !TEST_size_t_eq(written, strlen(MSG2)))
+ goto end;
+
+ if (!TEST_true(SSL_read_ex(serverssl, buf, sizeof(buf), &readbytes))
+ || !TEST_mem_eq(buf, readbytes, MSG2, strlen(MSG2)))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_SESSION_free(sess);
+ SSL_SESSION_free(clientpsk);
+ SSL_SESSION_free(serverpsk);
+ clientpsk = serverpsk = NULL;
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ return testresult;
+}
+
+
+# ifndef OPENSSL_NO_TLS1_2
+/*
+ * Test that a server attempting to read early data can handle a connection
+ * from a TLSv1.2 client.
+ */
+static int test_early_data_tls1_2(int idx)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ unsigned char buf[20];
+ size_t readbytes, written;
+
+ if (!TEST_true(setupearly_data_test(&cctx, &sctx, &clientssl,
+ &serverssl, NULL, idx)))
+ goto end;
+
+ /* Write some data - should block due to handshake with server */
+ SSL_set_max_proto_version(clientssl, TLS1_2_VERSION);
+ SSL_set_connect_state(clientssl);
+ if (!TEST_false(SSL_write_ex(clientssl, MSG1, strlen(MSG1), &written)))
+ goto end;
+
+ /*
+ * Server should do TLSv1.2 handshake. First it will block waiting for more
+ * messages from client after ServerDone. Then SSL_read_early_data should
+ * finish and detect that early data has not been sent
+ */
+ if (!TEST_int_eq(SSL_read_early_data(serverssl, buf, sizeof(buf),
+ &readbytes),
+ SSL_READ_EARLY_DATA_ERROR))
+ goto end;
+
+ /*
+ * Continue writing the message we started earlier. Will still block waiting
+ * for the CCS/Finished from server
+ */
+ if (!TEST_false(SSL_write_ex(clientssl, MSG1, strlen(MSG1), &written))
+ || !TEST_int_eq(SSL_read_early_data(serverssl, buf, sizeof(buf),
+ &readbytes),
+ SSL_READ_EARLY_DATA_FINISH)
+ || !TEST_size_t_eq(readbytes, 0)
+ || !TEST_int_eq(SSL_get_early_data_status(serverssl),
+ SSL_EARLY_DATA_NOT_SENT))
+ goto end;
+
+ /* Continue writing the message we started earlier */
+ if (!TEST_true(SSL_write_ex(clientssl, MSG1, strlen(MSG1), &written))
+ || !TEST_size_t_eq(written, strlen(MSG1))
+ || !TEST_int_eq(SSL_get_early_data_status(clientssl),
+ SSL_EARLY_DATA_NOT_SENT)
+ || !TEST_true(SSL_read_ex(serverssl, buf, sizeof(buf), &readbytes))
+ || !TEST_mem_eq(buf, readbytes, MSG1, strlen(MSG1))
+ || !TEST_true(SSL_write_ex(serverssl, MSG2, strlen(MSG2), &written))
+ || !TEST_size_t_eq(written, strlen(MSG2))
+ || !SSL_read_ex(clientssl, buf, sizeof(buf), &readbytes)
+ || !TEST_mem_eq(buf, readbytes, MSG2, strlen(MSG2)))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_SESSION_free(clientpsk);
+ SSL_SESSION_free(serverpsk);
+ clientpsk = serverpsk = NULL;
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+# endif /* OPENSSL_NO_TLS1_2 */
+
+/*
+ * Test configuring the TLSv1.3 ciphersuites
+ *
+ * Test 0: Set a default ciphersuite in the SSL_CTX (no explicit cipher_list)
+ * Test 1: Set a non-default ciphersuite in the SSL_CTX (no explicit cipher_list)
+ * Test 2: Set a default ciphersuite in the SSL (no explicit cipher_list)
+ * Test 3: Set a non-default ciphersuite in the SSL (no explicit cipher_list)
+ * Test 4: Set a default ciphersuite in the SSL_CTX (SSL_CTX cipher_list)
+ * Test 5: Set a non-default ciphersuite in the SSL_CTX (SSL_CTX cipher_list)
+ * Test 6: Set a default ciphersuite in the SSL (SSL_CTX cipher_list)
+ * Test 7: Set a non-default ciphersuite in the SSL (SSL_CTX cipher_list)
+ * Test 8: Set a default ciphersuite in the SSL (SSL cipher_list)
+ * Test 9: Set a non-default ciphersuite in the SSL (SSL cipher_list)
+ */
+static int test_set_ciphersuite(int idx)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey))
+ || !TEST_true(SSL_CTX_set_ciphersuites(sctx,
+ "TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_SHA256")))
+ goto end;
+
+ if (idx >=4 && idx <= 7) {
+ /* SSL_CTX explicit cipher list */
+ if (!TEST_true(SSL_CTX_set_cipher_list(cctx, "AES256-GCM-SHA384")))
+ goto end;
+ }
+
+ if (idx == 0 || idx == 4) {
+ /* Default ciphersuite */
+ if (!TEST_true(SSL_CTX_set_ciphersuites(cctx,
+ "TLS_AES_128_GCM_SHA256")))
+ goto end;
+ } else if (idx == 1 || idx == 5) {
+ /* Non default ciphersuite */
+ if (!TEST_true(SSL_CTX_set_ciphersuites(cctx,
+ "TLS_AES_128_CCM_SHA256")))
+ goto end;
+ }
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL)))
+ goto end;
+
+ if (idx == 8 || idx == 9) {
+ /* SSL explicit cipher list */
+ if (!TEST_true(SSL_set_cipher_list(clientssl, "AES256-GCM-SHA384")))
+ goto end;
+ }
+
+ if (idx == 2 || idx == 6 || idx == 8) {
+ /* Default ciphersuite */
+ if (!TEST_true(SSL_set_ciphersuites(clientssl,
+ "TLS_AES_128_GCM_SHA256")))
+ goto end;
+ } else if (idx == 3 || idx == 7 || idx == 9) {
+ /* Non default ciphersuite */
+ if (!TEST_true(SSL_set_ciphersuites(clientssl,
+ "TLS_AES_128_CCM_SHA256")))
+ goto end;
+ }
+
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl, SSL_ERROR_NONE)))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+static int test_ciphersuite_change(void)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ SSL_SESSION *clntsess = NULL;
+ int testresult = 0;
+ const SSL_CIPHER *aes_128_gcm_sha256 = NULL;
+
+ /* Create a session based on SHA-256 */
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey))
+ || !TEST_true(SSL_CTX_set_ciphersuites(cctx,
+ "TLS_AES_128_GCM_SHA256"))
+ || !TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ clntsess = SSL_get1_session(clientssl);
+ /* Save for later */
+ aes_128_gcm_sha256 = SSL_SESSION_get0_cipher(clntsess);
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ serverssl = clientssl = NULL;
+
+# if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305)
+ /* Check we can resume a session with a different SHA-256 ciphersuite */
+ if (!TEST_true(SSL_CTX_set_ciphersuites(cctx,
+ "TLS_CHACHA20_POLY1305_SHA256"))
+ || !TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(SSL_set_session(clientssl, clntsess))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_true(SSL_session_reused(clientssl)))
+ goto end;
+
+ SSL_SESSION_free(clntsess);
+ clntsess = SSL_get1_session(clientssl);
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ serverssl = clientssl = NULL;
+# endif
+
+ /*
+ * Check attempting to resume a SHA-256 session with no SHA-256 ciphersuites
+ * succeeds but does not resume.
+ */
+ if (!TEST_true(SSL_CTX_set_ciphersuites(cctx, "TLS_AES_256_GCM_SHA384"))
+ || !TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(SSL_set_session(clientssl, clntsess))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_SSL))
+ || !TEST_false(SSL_session_reused(clientssl)))
+ goto end;
+
+ SSL_SESSION_free(clntsess);
+ clntsess = NULL;
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ serverssl = clientssl = NULL;
+
+ /* Create a session based on SHA384 */
+ if (!TEST_true(SSL_CTX_set_ciphersuites(cctx, "TLS_AES_256_GCM_SHA384"))
+ || !TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ clntsess = SSL_get1_session(clientssl);
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ serverssl = clientssl = NULL;
+
+ if (!TEST_true(SSL_CTX_set_ciphersuites(cctx,
+ "TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384"))
+ || !TEST_true(SSL_CTX_set_ciphersuites(sctx,
+ "TLS_AES_256_GCM_SHA384"))
+ || !TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(SSL_set_session(clientssl, clntsess))
+ /*
+ * We use SSL_ERROR_WANT_READ below so that we can pause the
+ * connection after the initial ClientHello has been sent to
+ * enable us to make some session changes.
+ */
+ || !TEST_false(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_WANT_READ)))
+ goto end;
+
+ /* Trick the client into thinking this session is for a different digest */
+ clntsess->cipher = aes_128_gcm_sha256;
+ clntsess->cipher_id = clntsess->cipher->id;
+
+ /*
+ * Continue the previously started connection. Server has selected a SHA-384
+ * ciphersuite, but client thinks the session is for SHA-256, so it should
+ * bail out.
+ */
+ if (!TEST_false(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_SSL))
+ || !TEST_int_eq(ERR_GET_REASON(ERR_get_error()),
+ SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_SESSION_free(clntsess);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+/*
+ * Test TLSv1.3 Cipher Suite
+ * Test 0 = Set TLS1.3 cipher on context
+ * Test 1 = Set TLS1.3 cipher on SSL
+ * Test 2 = Set TLS1.3 and TLS1.2 cipher on context
+ * Test 3 = Set TLS1.3 and TLS1.2 cipher on SSL
+ */
+static int test_tls13_ciphersuite(int idx)
+{
+ SSL_CTX *sctx = NULL, *cctx = NULL;
+ SSL *serverssl = NULL, *clientssl = NULL;
+ static const char *t13_ciphers[] = {
+ TLS1_3_RFC_AES_128_GCM_SHA256,
+ TLS1_3_RFC_AES_256_GCM_SHA384,
+ TLS1_3_RFC_AES_128_CCM_SHA256,
+# if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305)
+ TLS1_3_RFC_CHACHA20_POLY1305_SHA256,
+ TLS1_3_RFC_AES_256_GCM_SHA384 ":" TLS1_3_RFC_CHACHA20_POLY1305_SHA256,
+# endif
+ TLS1_3_RFC_AES_128_CCM_8_SHA256 ":" TLS1_3_RFC_AES_128_CCM_SHA256
+ };
+ const char *t13_cipher = NULL;
+ const char *t12_cipher = NULL;
+ const char *negotiated_scipher;
+ const char *negotiated_ccipher;
+ int set_at_ctx = 0;
+ int set_at_ssl = 0;
+ int testresult = 0;
+ int max_ver;
+ size_t i;
+
+ switch (idx) {
+ case 0:
+ set_at_ctx = 1;
+ break;
+ case 1:
+ set_at_ssl = 1;
+ break;
+ case 2:
+ set_at_ctx = 1;
+ t12_cipher = TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256;
+ break;
+ case 3:
+ set_at_ssl = 1;
+ t12_cipher = TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256;
+ break;
+ }
+
+ for (max_ver = TLS1_2_VERSION; max_ver <= TLS1_3_VERSION; max_ver++) {
+# ifdef OPENSSL_NO_TLS1_2
+ if (max_ver == TLS1_2_VERSION)
+ continue;
+# endif
+ for (i = 0; i < OSSL_NELEM(t13_ciphers); i++) {
+ t13_cipher = t13_ciphers[i];
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(),
+ TLS_client_method(),
+ TLS1_VERSION, max_ver,
+ &sctx, &cctx, cert, privkey)))
+ goto end;
+
+ if (set_at_ctx) {
+ if (!TEST_true(SSL_CTX_set_ciphersuites(sctx, t13_cipher))
+ || !TEST_true(SSL_CTX_set_ciphersuites(cctx, t13_cipher)))
+ goto end;
+ if (t12_cipher != NULL) {
+ if (!TEST_true(SSL_CTX_set_cipher_list(sctx, t12_cipher))
+ || !TEST_true(SSL_CTX_set_cipher_list(cctx,
+ t12_cipher)))
+ goto end;
+ }
+ }
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL)))
+ goto end;
+
+ if (set_at_ssl) {
+ if (!TEST_true(SSL_set_ciphersuites(serverssl, t13_cipher))
+ || !TEST_true(SSL_set_ciphersuites(clientssl, t13_cipher)))
+ goto end;
+ if (t12_cipher != NULL) {
+ if (!TEST_true(SSL_set_cipher_list(serverssl, t12_cipher))
+ || !TEST_true(SSL_set_cipher_list(clientssl,
+ t12_cipher)))
+ goto end;
+ }
+ }
+
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ negotiated_scipher = SSL_CIPHER_get_name(SSL_get_current_cipher(
+ serverssl));
+ negotiated_ccipher = SSL_CIPHER_get_name(SSL_get_current_cipher(
+ clientssl));
+ if (!TEST_str_eq(negotiated_scipher, negotiated_ccipher))
+ goto end;
+
+ /*
+ * TEST_strn_eq is used below because t13_cipher can contain
+ * multiple ciphersuites
+ */
+ if (max_ver == TLS1_3_VERSION
+ && !TEST_strn_eq(t13_cipher, negotiated_scipher,
+ strlen(negotiated_scipher)))
+ goto end;
+
+# ifndef OPENSSL_NO_TLS1_2
+ /* Below validation is not done when t12_cipher is NULL */
+ if (max_ver == TLS1_2_VERSION && t12_cipher != NULL
+ && !TEST_str_eq(t12_cipher, negotiated_scipher))
+ goto end;
+# endif
+
+ SSL_free(serverssl);
+ serverssl = NULL;
+ SSL_free(clientssl);
+ clientssl = NULL;
+ SSL_CTX_free(sctx);
+ sctx = NULL;
+ SSL_CTX_free(cctx);
+ cctx = NULL;
+ }
+ }
+
+ testresult = 1;
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ return testresult;
+}
+
+/*
+ * Test TLSv1.3 PSKs
+ * Test 0 = Test new style callbacks
+ * Test 1 = Test both new and old style callbacks
+ * Test 2 = Test old style callbacks
+ * Test 3 = Test old style callbacks with no certificate
+ */
+static int test_tls13_psk(int idx)
+{
+ SSL_CTX *sctx = NULL, *cctx = NULL;
+ SSL *serverssl = NULL, *clientssl = NULL;
+ const SSL_CIPHER *cipher = NULL;
+ const unsigned char key[] = {
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b,
+ 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23,
+ 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f
+ };
+ int testresult = 0;
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, idx == 3 ? NULL : cert,
+ idx == 3 ? NULL : privkey)))
+ goto end;
+
+ if (idx != 3) {
+ /*
+ * We use a ciphersuite with SHA256 to ease testing old style PSK
+ * callbacks which will always default to SHA256. This should not be
+ * necessary if we have no cert/priv key. In that case the server should
+ * prefer SHA256 automatically.
+ */
+ if (!TEST_true(SSL_CTX_set_ciphersuites(cctx,
+ "TLS_AES_128_GCM_SHA256")))
+ goto end;
+ }
+
+ /*
+ * Test 0: New style callbacks only
+ * Test 1: New and old style callbacks (only the new ones should be used)
+ * Test 2: Old style callbacks only
+ */
+ if (idx == 0 || idx == 1) {
+ SSL_CTX_set_psk_use_session_callback(cctx, use_session_cb);
+ SSL_CTX_set_psk_find_session_callback(sctx, find_session_cb);
+ }
+#ifndef OPENSSL_NO_PSK
+ if (idx >= 1) {
+ SSL_CTX_set_psk_client_callback(cctx, psk_client_cb);
+ SSL_CTX_set_psk_server_callback(sctx, psk_server_cb);
+ }
+#endif
+ srvid = pskid;
+ use_session_cb_cnt = 0;
+ find_session_cb_cnt = 0;
+ psk_client_cb_cnt = 0;
+ psk_server_cb_cnt = 0;
+
+ if (idx != 3) {
+ /*
+ * Check we can create a connection if callback decides not to send a
+ * PSK
+ */
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_false(SSL_session_reused(clientssl))
+ || !TEST_false(SSL_session_reused(serverssl)))
+ goto end;
+
+ if (idx == 0 || idx == 1) {
+ if (!TEST_true(use_session_cb_cnt == 1)
+ || !TEST_true(find_session_cb_cnt == 0)
+ /*
+ * If no old style callback then below should be 0
+ * otherwise 1
+ */
+ || !TEST_true(psk_client_cb_cnt == idx)
+ || !TEST_true(psk_server_cb_cnt == 0))
+ goto end;
+ } else {
+ if (!TEST_true(use_session_cb_cnt == 0)
+ || !TEST_true(find_session_cb_cnt == 0)
+ || !TEST_true(psk_client_cb_cnt == 1)
+ || !TEST_true(psk_server_cb_cnt == 0))
+ goto end;
+ }
+
+ shutdown_ssl_connection(serverssl, clientssl);
+ serverssl = clientssl = NULL;
+ use_session_cb_cnt = psk_client_cb_cnt = 0;
+ }
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL)))
+ goto end;
+
+ /* Create the PSK */
+ cipher = SSL_CIPHER_find(clientssl, TLS13_AES_128_GCM_SHA256_BYTES);
+ clientpsk = SSL_SESSION_new();
+ if (!TEST_ptr(clientpsk)
+ || !TEST_ptr(cipher)
+ || !TEST_true(SSL_SESSION_set1_master_key(clientpsk, key,
+ sizeof(key)))
+ || !TEST_true(SSL_SESSION_set_cipher(clientpsk, cipher))
+ || !TEST_true(SSL_SESSION_set_protocol_version(clientpsk,
+ TLS1_3_VERSION))
+ || !TEST_true(SSL_SESSION_up_ref(clientpsk)))
+ goto end;
+ serverpsk = clientpsk;
+
+ /* Check we can create a connection and the PSK is used */
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl, SSL_ERROR_NONE))
+ || !TEST_true(SSL_session_reused(clientssl))
+ || !TEST_true(SSL_session_reused(serverssl)))
+ goto end;
+
+ if (idx == 0 || idx == 1) {
+ if (!TEST_true(use_session_cb_cnt == 1)
+ || !TEST_true(find_session_cb_cnt == 1)
+ || !TEST_true(psk_client_cb_cnt == 0)
+ || !TEST_true(psk_server_cb_cnt == 0))
+ goto end;
+ } else {
+ if (!TEST_true(use_session_cb_cnt == 0)
+ || !TEST_true(find_session_cb_cnt == 0)
+ || !TEST_true(psk_client_cb_cnt == 1)
+ || !TEST_true(psk_server_cb_cnt == 1))
+ goto end;
+ }
+
+ shutdown_ssl_connection(serverssl, clientssl);
+ serverssl = clientssl = NULL;
+ use_session_cb_cnt = find_session_cb_cnt = 0;
+ psk_client_cb_cnt = psk_server_cb_cnt = 0;
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL)))
+ goto end;
+
+ /* Force an HRR */
+ if (!TEST_true(SSL_set1_groups_list(serverssl, "P-256")))
+ goto end;
+
+ /*
+ * Check we can create a connection, the PSK is used and the callbacks are
+ * called twice.
+ */
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl, SSL_ERROR_NONE))
+ || !TEST_true(SSL_session_reused(clientssl))
+ || !TEST_true(SSL_session_reused(serverssl)))
+ goto end;
+
+ if (idx == 0 || idx == 1) {
+ if (!TEST_true(use_session_cb_cnt == 2)
+ || !TEST_true(find_session_cb_cnt == 2)
+ || !TEST_true(psk_client_cb_cnt == 0)
+ || !TEST_true(psk_server_cb_cnt == 0))
+ goto end;
+ } else {
+ if (!TEST_true(use_session_cb_cnt == 0)
+ || !TEST_true(find_session_cb_cnt == 0)
+ || !TEST_true(psk_client_cb_cnt == 2)
+ || !TEST_true(psk_server_cb_cnt == 2))
+ goto end;
+ }
+
+ shutdown_ssl_connection(serverssl, clientssl);
+ serverssl = clientssl = NULL;
+ use_session_cb_cnt = find_session_cb_cnt = 0;
+ psk_client_cb_cnt = psk_server_cb_cnt = 0;
+
+ if (idx != 3) {
+ /*
+ * Check that if the server rejects the PSK we can still connect, but with
+ * a full handshake
+ */
+ srvid = "Dummy Identity";
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_false(SSL_session_reused(clientssl))
+ || !TEST_false(SSL_session_reused(serverssl)))
+ goto end;
+
+ if (idx == 0 || idx == 1) {
+ if (!TEST_true(use_session_cb_cnt == 1)
+ || !TEST_true(find_session_cb_cnt == 1)
+ || !TEST_true(psk_client_cb_cnt == 0)
+ /*
+ * If no old style callback then below should be 0
+ * otherwise 1
+ */
+ || !TEST_true(psk_server_cb_cnt == idx))
+ goto end;
+ } else {
+ if (!TEST_true(use_session_cb_cnt == 0)
+ || !TEST_true(find_session_cb_cnt == 0)
+ || !TEST_true(psk_client_cb_cnt == 1)
+ || !TEST_true(psk_server_cb_cnt == 1))
+ goto end;
+ }
+
+ shutdown_ssl_connection(serverssl, clientssl);
+ serverssl = clientssl = NULL;
+ }
+ testresult = 1;
+
+ end:
+ SSL_SESSION_free(clientpsk);
+ SSL_SESSION_free(serverpsk);
+ clientpsk = serverpsk = NULL;
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ return testresult;
+}
+
+static unsigned char cookie_magic_value[] = "cookie magic";
+
+static int generate_cookie_callback(SSL *ssl, unsigned char *cookie,
+ unsigned int *cookie_len)
+{
+ /*
+ * Not suitable as a real cookie generation function but good enough for
+ * testing!
+ */
+ memcpy(cookie, cookie_magic_value, sizeof(cookie_magic_value) - 1);
+ *cookie_len = sizeof(cookie_magic_value) - 1;
+
+ return 1;
+}
+
+static int verify_cookie_callback(SSL *ssl, const unsigned char *cookie,
+ unsigned int cookie_len)
+{
+ if (cookie_len == sizeof(cookie_magic_value) - 1
+ && memcmp(cookie, cookie_magic_value, cookie_len) == 0)
+ return 1;
+
+ return 0;
+}
+
+static int generate_stateless_cookie_callback(SSL *ssl, unsigned char *cookie,
+ size_t *cookie_len)
+{
+ unsigned int temp;
+ int res = generate_cookie_callback(ssl, cookie, &temp);
+ *cookie_len = temp;
+ return res;
+}
+
+static int verify_stateless_cookie_callback(SSL *ssl, const unsigned char *cookie,
+ size_t cookie_len)
+{
+ return verify_cookie_callback(ssl, cookie, cookie_len);
+}
+
+static int test_stateless(void)
+{
+ SSL_CTX *sctx = NULL, *cctx = NULL;
+ SSL *serverssl = NULL, *clientssl = NULL;
+ int testresult = 0;
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ goto end;
+
+ /* The arrival of CCS messages can confuse the test */
+ SSL_CTX_clear_options(cctx, SSL_OP_ENABLE_MIDDLEBOX_COMPAT);
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ /* Send the first ClientHello */
+ || !TEST_false(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_WANT_READ))
+ /*
+ * This should fail with a -1 return because we have no callbacks
+ * set up
+ */
+ || !TEST_int_eq(SSL_stateless(serverssl), -1))
+ goto end;
+
+ /* Fatal error so abandon the connection from this client */
+ SSL_free(clientssl);
+ clientssl = NULL;
+
+ /* Set up the cookie generation and verification callbacks */
+ SSL_CTX_set_stateless_cookie_generate_cb(sctx, generate_stateless_cookie_callback);
+ SSL_CTX_set_stateless_cookie_verify_cb(sctx, verify_stateless_cookie_callback);
+
+ /*
+ * Create a new connection from the client (we can reuse the server SSL
+ * object).
+ */
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ /* Send the first ClientHello */
+ || !TEST_false(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_WANT_READ))
+ /* This should fail because there is no cookie */
+ || !TEST_int_eq(SSL_stateless(serverssl), 0))
+ goto end;
+
+ /* Abandon the connection from this client */
+ SSL_free(clientssl);
+ clientssl = NULL;
+
+ /*
+ * Now create a connection from a new client but with the same server SSL
+ * object
+ */
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ /* Send the first ClientHello */
+ || !TEST_false(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_WANT_READ))
+ /* This should fail because there is no cookie */
+ || !TEST_int_eq(SSL_stateless(serverssl), 0)
+ /* Send the second ClientHello */
+ || !TEST_false(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_WANT_READ))
+ /* This should succeed because a cookie is now present */
+ || !TEST_int_eq(SSL_stateless(serverssl), 1)
+ /* Complete the connection */
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ shutdown_ssl_connection(serverssl, clientssl);
+ serverssl = clientssl = NULL;
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ return testresult;
+
+}
+#endif /* OPENSSL_NO_TLS1_3 */
+
+static int clntaddoldcb = 0;
+static int clntparseoldcb = 0;
+static int srvaddoldcb = 0;
+static int srvparseoldcb = 0;
+static int clntaddnewcb = 0;
+static int clntparsenewcb = 0;
+static int srvaddnewcb = 0;
+static int srvparsenewcb = 0;
+static int snicb = 0;
+
+#define TEST_EXT_TYPE1 0xff00
+
+static int old_add_cb(SSL *s, unsigned int ext_type, const unsigned char **out,
+ size_t *outlen, int *al, void *add_arg)
+{
+ int *server = (int *)add_arg;
+ unsigned char *data;
+
+ if (SSL_is_server(s))
+ srvaddoldcb++;
+ else
+ clntaddoldcb++;
+
+ if (*server != SSL_is_server(s)
+ || (data = OPENSSL_malloc(sizeof(*data))) == NULL)
+ return -1;
+
+ *data = 1;
+ *out = data;
+ *outlen = sizeof(char);
+ return 1;
+}
+
+static void old_free_cb(SSL *s, unsigned int ext_type, const unsigned char *out,
+ void *add_arg)
+{
+ OPENSSL_free((unsigned char *)out);
+}
+
+static int old_parse_cb(SSL *s, unsigned int ext_type, const unsigned char *in,
+ size_t inlen, int *al, void *parse_arg)
+{
+ int *server = (int *)parse_arg;
+
+ if (SSL_is_server(s))
+ srvparseoldcb++;
+ else
+ clntparseoldcb++;
+
+ if (*server != SSL_is_server(s)
+ || inlen != sizeof(char)
+ || *in != 1)
+ return -1;
+
+ return 1;
+}
+
+static int new_add_cb(SSL *s, unsigned int ext_type, unsigned int context,
+ const unsigned char **out, size_t *outlen, X509 *x,
+ size_t chainidx, int *al, void *add_arg)
+{
+ int *server = (int *)add_arg;
+ unsigned char *data;
+
+ if (SSL_is_server(s))
+ srvaddnewcb++;
+ else
+ clntaddnewcb++;
+
+ if (*server != SSL_is_server(s)
+ || (data = OPENSSL_malloc(sizeof(*data))) == NULL)
+ return -1;
+
+ *data = 1;
+ *out = data;
+ *outlen = sizeof(*data);
+ return 1;
+}
+
+static void new_free_cb(SSL *s, unsigned int ext_type, unsigned int context,
+ const unsigned char *out, void *add_arg)
+{
+ OPENSSL_free((unsigned char *)out);
+}
+
+static int new_parse_cb(SSL *s, unsigned int ext_type, unsigned int context,
+ const unsigned char *in, size_t inlen, X509 *x,
+ size_t chainidx, int *al, void *parse_arg)
+{
+ int *server = (int *)parse_arg;
+
+ if (SSL_is_server(s))
+ srvparsenewcb++;
+ else
+ clntparsenewcb++;
+
+ if (*server != SSL_is_server(s)
+ || inlen != sizeof(char) || *in != 1)
+ return -1;
+
+ return 1;
+}
+
+static int sni_cb(SSL *s, int *al, void *arg)
+{
+ SSL_CTX *ctx = (SSL_CTX *)arg;
+
+ if (SSL_set_SSL_CTX(s, ctx) == NULL) {
+ *al = SSL_AD_INTERNAL_ERROR;
+ return SSL_TLSEXT_ERR_ALERT_FATAL;
+ }
+ snicb++;
+ return SSL_TLSEXT_ERR_OK;
+}
+
+/*
+ * Custom call back tests.
+ * Test 0: Old style callbacks in TLSv1.2
+ * Test 1: New style callbacks in TLSv1.2
+ * Test 2: New style callbacks in TLSv1.2 with SNI
+ * Test 3: New style callbacks in TLSv1.3. Extensions in CH and EE
+ * Test 4: New style callbacks in TLSv1.3. Extensions in CH, SH, EE, Cert + NST
+ */
+static int test_custom_exts(int tst)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL, *sctx2 = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ static int server = 1;
+ static int client = 0;
+ SSL_SESSION *sess = NULL;
+ unsigned int context;
+
+#if defined(OPENSSL_NO_TLS1_2) && !defined(OPENSSL_NO_TLS1_3)
+ /* Skip tests for TLSv1.2 and below in this case */
+ if (tst < 3)
+ return 1;
+#endif
+
+ /* Reset callback counters */
+ clntaddoldcb = clntparseoldcb = srvaddoldcb = srvparseoldcb = 0;
+ clntaddnewcb = clntparsenewcb = srvaddnewcb = srvparsenewcb = 0;
+ snicb = 0;
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ goto end;
+
+ if (tst == 2
+ && !TEST_true(create_ssl_ctx_pair(TLS_server_method(), NULL,
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx2, NULL, cert, privkey)))
+ goto end;
+
+
+ if (tst < 3) {
+ SSL_CTX_set_options(cctx, SSL_OP_NO_TLSv1_3);
+ SSL_CTX_set_options(sctx, SSL_OP_NO_TLSv1_3);
+ if (sctx2 != NULL)
+ SSL_CTX_set_options(sctx2, SSL_OP_NO_TLSv1_3);
+ }
+
+ if (tst == 4) {
+ context = SSL_EXT_CLIENT_HELLO
+ | SSL_EXT_TLS1_2_SERVER_HELLO
+ | SSL_EXT_TLS1_3_SERVER_HELLO
+ | SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS
+ | SSL_EXT_TLS1_3_CERTIFICATE
+ | SSL_EXT_TLS1_3_NEW_SESSION_TICKET;
+ } else {
+ context = SSL_EXT_CLIENT_HELLO
+ | SSL_EXT_TLS1_2_SERVER_HELLO
+ | SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS;
+ }
+
+ /* Create a client side custom extension */
+ if (tst == 0) {
+ if (!TEST_true(SSL_CTX_add_client_custom_ext(cctx, TEST_EXT_TYPE1,
+ old_add_cb, old_free_cb,
+ &client, old_parse_cb,
+ &client)))
+ goto end;
+ } else {
+ if (!TEST_true(SSL_CTX_add_custom_ext(cctx, TEST_EXT_TYPE1, context,
+ new_add_cb, new_free_cb,
+ &client, new_parse_cb, &client)))
+ goto end;
+ }
+
+ /* Should not be able to add duplicates */
+ if (!TEST_false(SSL_CTX_add_client_custom_ext(cctx, TEST_EXT_TYPE1,
+ old_add_cb, old_free_cb,
+ &client, old_parse_cb,
+ &client))
+ || !TEST_false(SSL_CTX_add_custom_ext(cctx, TEST_EXT_TYPE1,
+ context, new_add_cb,
+ new_free_cb, &client,
+ new_parse_cb, &client)))
+ goto end;
+
+ /* Create a server side custom extension */
+ if (tst == 0) {
+ if (!TEST_true(SSL_CTX_add_server_custom_ext(sctx, TEST_EXT_TYPE1,
+ old_add_cb, old_free_cb,
+ &server, old_parse_cb,
+ &server)))
+ goto end;
+ } else {
+ if (!TEST_true(SSL_CTX_add_custom_ext(sctx, TEST_EXT_TYPE1, context,
+ new_add_cb, new_free_cb,
+ &server, new_parse_cb, &server)))
+ goto end;
+ if (sctx2 != NULL
+ && !TEST_true(SSL_CTX_add_custom_ext(sctx2, TEST_EXT_TYPE1,
+ context, new_add_cb,
+ new_free_cb, &server,
+ new_parse_cb, &server)))
+ goto end;
+ }
+
+ /* Should not be able to add duplicates */
+ if (!TEST_false(SSL_CTX_add_server_custom_ext(sctx, TEST_EXT_TYPE1,
+ old_add_cb, old_free_cb,
+ &server, old_parse_cb,
+ &server))
+ || !TEST_false(SSL_CTX_add_custom_ext(sctx, TEST_EXT_TYPE1,
+ context, new_add_cb,
+ new_free_cb, &server,
+ new_parse_cb, &server)))
+ goto end;
+
+ if (tst == 2) {
+ /* Set up SNI */
+ if (!TEST_true(SSL_CTX_set_tlsext_servername_callback(sctx, sni_cb))
+ || !TEST_true(SSL_CTX_set_tlsext_servername_arg(sctx, sctx2)))
+ goto end;
+ }
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ if (tst == 0) {
+ if (clntaddoldcb != 1
+ || clntparseoldcb != 1
+ || srvaddoldcb != 1
+ || srvparseoldcb != 1)
+ goto end;
+ } else if (tst == 1 || tst == 2 || tst == 3) {
+ if (clntaddnewcb != 1
+ || clntparsenewcb != 1
+ || srvaddnewcb != 1
+ || srvparsenewcb != 1
+ || (tst != 2 && snicb != 0)
+ || (tst == 2 && snicb != 1))
+ goto end;
+ } else {
+ /* In this case there 2 NewSessionTicket messages created */
+ if (clntaddnewcb != 1
+ || clntparsenewcb != 5
+ || srvaddnewcb != 5
+ || srvparsenewcb != 1)
+ goto end;
+ }
+
+ sess = SSL_get1_session(clientssl);
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ serverssl = clientssl = NULL;
+
+ if (tst == 3) {
+ /* We don't bother with the resumption aspects for this test */
+ testresult = 1;
+ goto end;
+ }
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(SSL_set_session(clientssl, sess))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ /*
+ * For a resumed session we expect to add the ClientHello extension. For the
+ * old style callbacks we ignore it on the server side because they set
+ * SSL_EXT_IGNORE_ON_RESUMPTION. The new style callbacks do not ignore
+ * them.
+ */
+ if (tst == 0) {
+ if (clntaddoldcb != 2
+ || clntparseoldcb != 1
+ || srvaddoldcb != 1
+ || srvparseoldcb != 1)
+ goto end;
+ } else if (tst == 1 || tst == 2 || tst == 3) {
+ if (clntaddnewcb != 2
+ || clntparsenewcb != 2
+ || srvaddnewcb != 2
+ || srvparsenewcb != 2)
+ goto end;
+ } else {
+ /*
+ * No Certificate message extensions in the resumption handshake,
+ * 2 NewSessionTickets in the initial handshake, 1 in the resumption
+ */
+ if (clntaddnewcb != 2
+ || clntparsenewcb != 8
+ || srvaddnewcb != 8
+ || srvparsenewcb != 2)
+ goto end;
+ }
+
+ testresult = 1;
+
+end:
+ SSL_SESSION_free(sess);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx2);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ return testresult;
+}
+
+/*
+ * Test loading of serverinfo data in various formats. test_sslmessages actually
+ * tests to make sure the extensions appear in the handshake
+ */
+static int test_serverinfo(int tst)
+{
+ unsigned int version;
+ unsigned char *sibuf;
+ size_t sibuflen;
+ int ret, expected, testresult = 0;
+ SSL_CTX *ctx;
+
+ ctx = SSL_CTX_new(TLS_method());
+ if (!TEST_ptr(ctx))
+ goto end;
+
+ if ((tst & 0x01) == 0x01)
+ version = SSL_SERVERINFOV2;
+ else
+ version = SSL_SERVERINFOV1;
+
+ if ((tst & 0x02) == 0x02) {
+ sibuf = serverinfov2;
+ sibuflen = sizeof(serverinfov2);
+ expected = (version == SSL_SERVERINFOV2);
+ } else {
+ sibuf = serverinfov1;
+ sibuflen = sizeof(serverinfov1);
+ expected = (version == SSL_SERVERINFOV1);
+ }
+
+ if ((tst & 0x04) == 0x04) {
+ ret = SSL_CTX_use_serverinfo_ex(ctx, version, sibuf, sibuflen);
+ } else {
+ ret = SSL_CTX_use_serverinfo(ctx, sibuf, sibuflen);
+
+ /*
+ * The version variable is irrelevant in this case - it's what is in the
+ * buffer that matters
+ */
+ if ((tst & 0x02) == 0x02)
+ expected = 0;
+ else
+ expected = 1;
+ }
+
+ if (!TEST_true(ret == expected))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_CTX_free(ctx);
+
+ return testresult;
+}
+
+/*
+ * Test that SSL_export_keying_material() produces expected results. There are
+ * no test vectors so all we do is test that both sides of the communication
+ * produce the same results for different protocol versions.
+ */
+#define SMALL_LABEL_LEN 10
+#define LONG_LABEL_LEN 249
+static int test_export_key_mat(int tst)
+{
+ int testresult = 0;
+ SSL_CTX *cctx = NULL, *sctx = NULL, *sctx2 = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ const char label[LONG_LABEL_LEN + 1] = "test label";
+ const unsigned char context[] = "context";
+ const unsigned char *emptycontext = NULL;
+ unsigned char ckeymat1[80], ckeymat2[80], ckeymat3[80];
+ unsigned char skeymat1[80], skeymat2[80], skeymat3[80];
+ size_t labellen;
+ const int protocols[] = {
+ TLS1_VERSION,
+ TLS1_1_VERSION,
+ TLS1_2_VERSION,
+ TLS1_3_VERSION,
+ TLS1_3_VERSION,
+ TLS1_3_VERSION
+ };
+
+#ifdef OPENSSL_NO_TLS1
+ if (tst == 0)
+ return 1;
+#endif
+#ifdef OPENSSL_NO_TLS1_1
+ if (tst == 1)
+ return 1;
+#endif
+#ifdef OPENSSL_NO_TLS1_2
+ if (tst == 2)
+ return 1;
+#endif
+#ifdef OPENSSL_NO_TLS1_3
+ if (tst >= 3)
+ return 1;
+#endif
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ goto end;
+
+ OPENSSL_assert(tst >= 0 && (size_t)tst < OSSL_NELEM(protocols));
+ SSL_CTX_set_max_proto_version(cctx, protocols[tst]);
+ SSL_CTX_set_min_proto_version(cctx, protocols[tst]);
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl, NULL,
+ NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ if (tst == 5) {
+ /*
+ * TLSv1.3 imposes a maximum label len of 249 bytes. Check we fail if we
+ * go over that.
+ */
+ if (!TEST_int_le(SSL_export_keying_material(clientssl, ckeymat1,
+ sizeof(ckeymat1), label,
+ LONG_LABEL_LEN + 1, context,
+ sizeof(context) - 1, 1), 0))
+ goto end;
+
+ testresult = 1;
+ goto end;
+ } else if (tst == 4) {
+ labellen = LONG_LABEL_LEN;
+ } else {
+ labellen = SMALL_LABEL_LEN;
+ }
+
+ if (!TEST_int_eq(SSL_export_keying_material(clientssl, ckeymat1,
+ sizeof(ckeymat1), label,
+ labellen, context,
+ sizeof(context) - 1, 1), 1)
+ || !TEST_int_eq(SSL_export_keying_material(clientssl, ckeymat2,
+ sizeof(ckeymat2), label,
+ labellen,
+ emptycontext,
+ 0, 1), 1)
+ || !TEST_int_eq(SSL_export_keying_material(clientssl, ckeymat3,
+ sizeof(ckeymat3), label,
+ labellen,
+ NULL, 0, 0), 1)
+ || !TEST_int_eq(SSL_export_keying_material(serverssl, skeymat1,
+ sizeof(skeymat1), label,
+ labellen,
+ context,
+ sizeof(context) -1, 1),
+ 1)
+ || !TEST_int_eq(SSL_export_keying_material(serverssl, skeymat2,
+ sizeof(skeymat2), label,
+ labellen,
+ emptycontext,
+ 0, 1), 1)
+ || !TEST_int_eq(SSL_export_keying_material(serverssl, skeymat3,
+ sizeof(skeymat3), label,
+ labellen,
+ NULL, 0, 0), 1)
+ /*
+ * Check that both sides created the same key material with the
+ * same context.
+ */
+ || !TEST_mem_eq(ckeymat1, sizeof(ckeymat1), skeymat1,
+ sizeof(skeymat1))
+ /*
+ * Check that both sides created the same key material with an
+ * empty context.
+ */
+ || !TEST_mem_eq(ckeymat2, sizeof(ckeymat2), skeymat2,
+ sizeof(skeymat2))
+ /*
+ * Check that both sides created the same key material without a
+ * context.
+ */
+ || !TEST_mem_eq(ckeymat3, sizeof(ckeymat3), skeymat3,
+ sizeof(skeymat3))
+ /* Different contexts should produce different results */
+ || !TEST_mem_ne(ckeymat1, sizeof(ckeymat1), ckeymat2,
+ sizeof(ckeymat2)))
+ goto end;
+
+ /*
+ * Check that an empty context and no context produce different results in
+ * protocols less than TLSv1.3. In TLSv1.3 they should be the same.
+ */
+ if ((tst < 3 && !TEST_mem_ne(ckeymat2, sizeof(ckeymat2), ckeymat3,
+ sizeof(ckeymat3)))
+ || (tst >= 3 && !TEST_mem_eq(ckeymat2, sizeof(ckeymat2), ckeymat3,
+ sizeof(ckeymat3))))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx2);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+#ifndef OPENSSL_NO_TLS1_3
+/*
+ * Test that SSL_export_keying_material_early() produces expected
+ * results. There are no test vectors so all we do is test that both
+ * sides of the communication produce the same results for different
+ * protocol versions.
+ */
+static int test_export_key_mat_early(int idx)
+{
+ static const char label[] = "test label";
+ static const unsigned char context[] = "context";
+ int testresult = 0;
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ SSL_SESSION *sess = NULL;
+ const unsigned char *emptycontext = NULL;
+ unsigned char ckeymat1[80], ckeymat2[80];
+ unsigned char skeymat1[80], skeymat2[80];
+ unsigned char buf[1];
+ size_t readbytes, written;
+
+ if (!TEST_true(setupearly_data_test(&cctx, &sctx, &clientssl, &serverssl,
+ &sess, idx)))
+ goto end;
+
+ /* Here writing 0 length early data is enough. */
+ if (!TEST_true(SSL_write_early_data(clientssl, NULL, 0, &written))
+ || !TEST_int_eq(SSL_read_early_data(serverssl, buf, sizeof(buf),
+ &readbytes),
+ SSL_READ_EARLY_DATA_ERROR)
+ || !TEST_int_eq(SSL_get_early_data_status(serverssl),
+ SSL_EARLY_DATA_ACCEPTED))
+ goto end;
+
+ if (!TEST_int_eq(SSL_export_keying_material_early(
+ clientssl, ckeymat1, sizeof(ckeymat1), label,
+ sizeof(label) - 1, context, sizeof(context) - 1), 1)
+ || !TEST_int_eq(SSL_export_keying_material_early(
+ clientssl, ckeymat2, sizeof(ckeymat2), label,
+ sizeof(label) - 1, emptycontext, 0), 1)
+ || !TEST_int_eq(SSL_export_keying_material_early(
+ serverssl, skeymat1, sizeof(skeymat1), label,
+ sizeof(label) - 1, context, sizeof(context) - 1), 1)
+ || !TEST_int_eq(SSL_export_keying_material_early(
+ serverssl, skeymat2, sizeof(skeymat2), label,
+ sizeof(label) - 1, emptycontext, 0), 1)
+ /*
+ * Check that both sides created the same key material with the
+ * same context.
+ */
+ || !TEST_mem_eq(ckeymat1, sizeof(ckeymat1), skeymat1,
+ sizeof(skeymat1))
+ /*
+ * Check that both sides created the same key material with an
+ * empty context.
+ */
+ || !TEST_mem_eq(ckeymat2, sizeof(ckeymat2), skeymat2,
+ sizeof(skeymat2))
+ /* Different contexts should produce different results */
+ || !TEST_mem_ne(ckeymat1, sizeof(ckeymat1), ckeymat2,
+ sizeof(ckeymat2)))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_SESSION_free(sess);
+ SSL_SESSION_free(clientpsk);
+ SSL_SESSION_free(serverpsk);
+ clientpsk = serverpsk = NULL;
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+#define NUM_KEY_UPDATE_MESSAGES 40
+/*
+ * Test KeyUpdate.
+ */
+static int test_key_update(void)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0, i, j;
+ char buf[20];
+ static char *mess = "A test message";
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(),
+ TLS_client_method(),
+ TLS1_3_VERSION,
+ 0,
+ &sctx, &cctx, cert, privkey))
+ || !TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ for (j = 0; j < 2; j++) {
+ /* Send lots of KeyUpdate messages */
+ for (i = 0; i < NUM_KEY_UPDATE_MESSAGES; i++) {
+ if (!TEST_true(SSL_key_update(clientssl,
+ (j == 0)
+ ? SSL_KEY_UPDATE_NOT_REQUESTED
+ : SSL_KEY_UPDATE_REQUESTED))
+ || !TEST_true(SSL_do_handshake(clientssl)))
+ goto end;
+ }
+
+ /* Check that sending and receiving app data is ok */
+ if (!TEST_int_eq(SSL_write(clientssl, mess, strlen(mess)), strlen(mess))
+ || !TEST_int_eq(SSL_read(serverssl, buf, sizeof(buf)),
+ strlen(mess)))
+ goto end;
+
+ if (!TEST_int_eq(SSL_write(serverssl, mess, strlen(mess)), strlen(mess))
+ || !TEST_int_eq(SSL_read(clientssl, buf, sizeof(buf)),
+ strlen(mess)))
+ goto end;
+ }
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+/*
+ * Test we can handle a KeyUpdate (update requested) message while write data
+ * is pending.
+ * Test 0: Client sends KeyUpdate while Server is writing
+ * Test 1: Server sends KeyUpdate while Client is writing
+ */
+static int test_key_update_in_write(int tst)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ char buf[20];
+ static char *mess = "A test message";
+ BIO *bretry = BIO_new(bio_s_always_retry());
+ BIO *tmp = NULL;
+ SSL *peerupdate = NULL, *peerwrite = NULL;
+
+ if (!TEST_ptr(bretry)
+ || !TEST_true(create_ssl_ctx_pair(TLS_server_method(),
+ TLS_client_method(),
+ TLS1_3_VERSION,
+ 0,
+ &sctx, &cctx, cert, privkey))
+ || !TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ peerupdate = tst == 0 ? clientssl : serverssl;
+ peerwrite = tst == 0 ? serverssl : clientssl;
+
+ if (!TEST_true(SSL_key_update(peerupdate, SSL_KEY_UPDATE_REQUESTED))
+ || !TEST_true(SSL_do_handshake(peerupdate)))
+ goto end;
+
+ /* Swap the writing endpoint's write BIO to force a retry */
+ tmp = SSL_get_wbio(peerwrite);
+ if (!TEST_ptr(tmp) || !TEST_true(BIO_up_ref(tmp))) {
+ tmp = NULL;
+ goto end;
+ }
+ SSL_set0_wbio(peerwrite, bretry);
+ bretry = NULL;
+
+ /* Write data that we know will fail with SSL_ERROR_WANT_WRITE */
+ if (!TEST_int_eq(SSL_write(peerwrite, mess, strlen(mess)), -1)
+ || !TEST_int_eq(SSL_get_error(peerwrite, 0), SSL_ERROR_WANT_WRITE))
+ goto end;
+
+ /* Reinstate the original writing endpoint's write BIO */
+ SSL_set0_wbio(peerwrite, tmp);
+ tmp = NULL;
+
+ /* Now read some data - we will read the key update */
+ if (!TEST_int_eq(SSL_read(peerwrite, buf, sizeof(buf)), -1)
+ || !TEST_int_eq(SSL_get_error(peerwrite, 0), SSL_ERROR_WANT_READ))
+ goto end;
+
+ /*
+ * Complete the write we started previously and read it from the other
+ * endpoint
+ */
+ if (!TEST_int_eq(SSL_write(peerwrite, mess, strlen(mess)), strlen(mess))
+ || !TEST_int_eq(SSL_read(peerupdate, buf, sizeof(buf)), strlen(mess)))
+ goto end;
+
+ /* Write more data to ensure we send the KeyUpdate message back */
+ if (!TEST_int_eq(SSL_write(peerwrite, mess, strlen(mess)), strlen(mess))
+ || !TEST_int_eq(SSL_read(peerupdate, buf, sizeof(buf)), strlen(mess)))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ BIO_free(bretry);
+ BIO_free(tmp);
+
+ return testresult;
+}
+#endif /* OPENSSL_NO_TLS1_3 */
+
+static int test_ssl_clear(int idx)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+
+#ifdef OPENSSL_NO_TLS1_2
+ if (idx == 1)
+ return 1;
+#endif
+
+ /* Create an initial connection */
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey))
+ || (idx == 1
+ && !TEST_true(SSL_CTX_set_max_proto_version(cctx,
+ TLS1_2_VERSION)))
+ || !TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+ SSL_free(serverssl);
+ serverssl = NULL;
+
+ /* Clear clientssl - we're going to reuse the object */
+ if (!TEST_true(SSL_clear(clientssl)))
+ goto end;
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_true(SSL_session_reused(clientssl)))
+ goto end;
+
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+/* Parse CH and retrieve any MFL extension value if present */
+static int get_MFL_from_client_hello(BIO *bio, int *mfl_codemfl_code)
+{
+ long len;
+ unsigned char *data;
+ PACKET pkt = {0}, pkt2 = {0}, pkt3 = {0};
+ unsigned int MFL_code = 0, type = 0;
+
+ if (!TEST_uint_gt( len = BIO_get_mem_data( bio, (char **) &data ), 0 ) )
+ goto end;
+
+ if (!TEST_true( PACKET_buf_init( &pkt, data, len ) )
+ /* Skip the record header */
+ || !PACKET_forward(&pkt, SSL3_RT_HEADER_LENGTH)
+ /* Skip the handshake message header */
+ || !TEST_true(PACKET_forward(&pkt, SSL3_HM_HEADER_LENGTH))
+ /* Skip client version and random */
+ || !TEST_true(PACKET_forward(&pkt, CLIENT_VERSION_LEN
+ + SSL3_RANDOM_SIZE))
+ /* Skip session id */
+ || !TEST_true(PACKET_get_length_prefixed_1(&pkt, &pkt2))
+ /* Skip ciphers */
+ || !TEST_true(PACKET_get_length_prefixed_2(&pkt, &pkt2))
+ /* Skip compression */
+ || !TEST_true(PACKET_get_length_prefixed_1(&pkt, &pkt2))
+ /* Extensions len */
+ || !TEST_true(PACKET_as_length_prefixed_2(&pkt, &pkt2)))
+ goto end;
+
+ /* Loop through all extensions */
+ while (PACKET_remaining(&pkt2)) {
+ if (!TEST_true(PACKET_get_net_2(&pkt2, &type))
+ || !TEST_true(PACKET_get_length_prefixed_2(&pkt2, &pkt3)))
+ goto end;
+
+ if (type == TLSEXT_TYPE_max_fragment_length) {
+ if (!TEST_uint_ne(PACKET_remaining(&pkt3), 0)
+ || !TEST_true(PACKET_get_1(&pkt3, &MFL_code)))
+ goto end;
+
+ *mfl_codemfl_code = MFL_code;
+ return 1;
+ }
+ }
+
+ end:
+ return 0;
+}
+
+/* Maximum-Fragment-Length TLS extension mode to test */
+static const unsigned char max_fragment_len_test[] = {
+ TLSEXT_max_fragment_length_512,
+ TLSEXT_max_fragment_length_1024,
+ TLSEXT_max_fragment_length_2048,
+ TLSEXT_max_fragment_length_4096
+};
+
+static int test_max_fragment_len_ext(int idx_tst)
+{
+ SSL_CTX *ctx;
+ SSL *con = NULL;
+ int testresult = 0, MFL_mode = 0;
+ BIO *rbio, *wbio;
+
+ ctx = SSL_CTX_new(TLS_method());
+ if (!TEST_ptr(ctx))
+ goto end;
+
+ if (!TEST_true(SSL_CTX_set_tlsext_max_fragment_length(
+ ctx, max_fragment_len_test[idx_tst])))
+ goto end;
+
+ con = SSL_new(ctx);
+ if (!TEST_ptr(con))
+ goto end;
+
+ rbio = BIO_new(BIO_s_mem());
+ wbio = BIO_new(BIO_s_mem());
+ if (!TEST_ptr(rbio)|| !TEST_ptr(wbio)) {
+ BIO_free(rbio);
+ BIO_free(wbio);
+ goto end;
+ }
+
+ SSL_set_bio(con, rbio, wbio);
+ SSL_set_connect_state(con);
+
+ if (!TEST_int_le(SSL_connect(con), 0)) {
+ /* This shouldn't succeed because we don't have a server! */
+ goto end;
+ }
+
+ if (!TEST_true(get_MFL_from_client_hello(wbio, &MFL_mode)))
+ /* no MFL in client hello */
+ goto end;
+ if (!TEST_true(max_fragment_len_test[idx_tst] == MFL_mode))
+ goto end;
+
+ testresult = 1;
+
+end:
+ SSL_free(con);
+ SSL_CTX_free(ctx);
+
+ return testresult;
+}
+
+#ifndef OPENSSL_NO_TLS1_3
+static int test_pha_key_update(void)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ return 0;
+
+ if (!TEST_true(SSL_CTX_set_min_proto_version(sctx, TLS1_3_VERSION))
+ || !TEST_true(SSL_CTX_set_max_proto_version(sctx, TLS1_3_VERSION))
+ || !TEST_true(SSL_CTX_set_min_proto_version(cctx, TLS1_3_VERSION))
+ || !TEST_true(SSL_CTX_set_max_proto_version(cctx, TLS1_3_VERSION)))
+ goto end;
+
+ SSL_CTX_set_post_handshake_auth(cctx, 1);
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL)))
+ goto end;
+
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ SSL_set_verify(serverssl, SSL_VERIFY_PEER, NULL);
+ if (!TEST_true(SSL_verify_client_post_handshake(serverssl)))
+ goto end;
+
+ if (!TEST_true(SSL_key_update(clientssl, SSL_KEY_UPDATE_NOT_REQUESTED)))
+ goto end;
+
+ /* Start handshake on the server */
+ if (!TEST_int_eq(SSL_do_handshake(serverssl), 1))
+ goto end;
+
+ /* Starts with SSL_connect(), but it's really just SSL_do_handshake() */
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ return testresult;
+}
+#endif
+
+#if !defined(OPENSSL_NO_SRP) && !defined(OPENSSL_NO_TLS1_2)
+
+static SRP_VBASE *vbase = NULL;
+
+static int ssl_srp_cb(SSL *s, int *ad, void *arg)
+{
+ int ret = SSL3_AL_FATAL;
+ char *username;
+ SRP_user_pwd *user = NULL;
+
+ username = SSL_get_srp_username(s);
+ if (username == NULL) {
+ *ad = SSL_AD_INTERNAL_ERROR;
+ goto err;
+ }
+
+ user = SRP_VBASE_get1_by_user(vbase, username);
+ if (user == NULL) {
+ *ad = SSL_AD_INTERNAL_ERROR;
+ goto err;
+ }
+
+ if (SSL_set_srp_server_param(s, user->N, user->g, user->s, user->v,
+ user->info) <= 0) {
+ *ad = SSL_AD_INTERNAL_ERROR;
+ goto err;
+ }
+
+ ret = 0;
+
+ err:
+ SRP_user_pwd_free(user);
+ return ret;
+}
+
+static int create_new_vfile(char *userid, char *password, const char *filename)
+{
+ char *gNid = NULL;
+ OPENSSL_STRING *row = OPENSSL_zalloc(sizeof(row) * (DB_NUMBER + 1));
+ TXT_DB *db = NULL;
+ int ret = 0;
+ BIO *out = NULL, *dummy = BIO_new_mem_buf("", 0);
+ size_t i;
+
+ if (!TEST_ptr(dummy) || !TEST_ptr(row))
+ goto end;
+
+ gNid = SRP_create_verifier(userid, password, &row[DB_srpsalt],
+ &row[DB_srpverifier], NULL, NULL);
+ if (!TEST_ptr(gNid))
+ goto end;
+
+ /*
+ * The only way to create an empty TXT_DB is to provide a BIO with no data
+ * in it!
+ */
+ db = TXT_DB_read(dummy, DB_NUMBER);
+ if (!TEST_ptr(db))
+ goto end;
+
+ out = BIO_new_file(filename, "w");
+ if (!TEST_ptr(out))
+ goto end;
+
+ row[DB_srpid] = OPENSSL_strdup(userid);
+ row[DB_srptype] = OPENSSL_strdup("V");
+ row[DB_srpgN] = OPENSSL_strdup(gNid);
+
+ if (!TEST_ptr(row[DB_srpid])
+ || !TEST_ptr(row[DB_srptype])
+ || !TEST_ptr(row[DB_srpgN])
+ || !TEST_true(TXT_DB_insert(db, row)))
+ goto end;
+
+ row = NULL;
+
+ if (!TXT_DB_write(out, db))
+ goto end;
+
+ ret = 1;
+ end:
+ if (row != NULL) {
+ for (i = 0; i < DB_NUMBER; i++)
+ OPENSSL_free(row[i]);
+ }
+ OPENSSL_free(row);
+ BIO_free(dummy);
+ BIO_free(out);
+ TXT_DB_free(db);
+
+ return ret;
+}
+
+static int create_new_vbase(char *userid, char *password)
+{
+ BIGNUM *verifier = NULL, *salt = NULL;
+ const SRP_gN *lgN = NULL;
+ SRP_user_pwd *user_pwd = NULL;
+ int ret = 0;
+
+ lgN = SRP_get_default_gN(NULL);
+ if (!TEST_ptr(lgN))
+ goto end;
+
+ if (!TEST_true(SRP_create_verifier_BN(userid, password, &salt, &verifier,
+ lgN->N, lgN->g)))
+ goto end;
+
+ user_pwd = OPENSSL_zalloc(sizeof(*user_pwd));
+ if (!TEST_ptr(user_pwd))
+ goto end;
+
+ user_pwd->N = lgN->N;
+ user_pwd->g = lgN->g;
+ user_pwd->id = OPENSSL_strdup(userid);
+ if (!TEST_ptr(user_pwd->id))
+ goto end;
+
+ user_pwd->v = verifier;
+ user_pwd->s = salt;
+ verifier = salt = NULL;
+
+ if (sk_SRP_user_pwd_insert(vbase->users_pwd, user_pwd, 0) == 0)
+ goto end;
+ user_pwd = NULL;
+
+ ret = 1;
+end:
+ SRP_user_pwd_free(user_pwd);
+ BN_free(salt);
+ BN_free(verifier);
+
+ return ret;
+}
+
+/*
+ * SRP tests
+ *
+ * Test 0: Simple successful SRP connection, new vbase
+ * Test 1: Connection failure due to bad password, new vbase
+ * Test 2: Simple successful SRP connection, vbase loaded from existing file
+ * Test 3: Connection failure due to bad password, vbase loaded from existing
+ * file
+ * Test 4: Simple successful SRP connection, vbase loaded from new file
+ * Test 5: Connection failure due to bad password, vbase loaded from new file
+ */
+static int test_srp(int tst)
+{
+ char *userid = "test", *password = "password", *tstsrpfile;
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int ret, testresult = 0;
+
+ vbase = SRP_VBASE_new(NULL);
+ if (!TEST_ptr(vbase))
+ goto end;
+
+ if (tst == 0 || tst == 1) {
+ if (!TEST_true(create_new_vbase(userid, password)))
+ goto end;
+ } else {
+ if (tst == 4 || tst == 5) {
+ if (!TEST_true(create_new_vfile(userid, password, tmpfilename)))
+ goto end;
+ tstsrpfile = tmpfilename;
+ } else {
+ tstsrpfile = srpvfile;
+ }
+ if (!TEST_int_eq(SRP_VBASE_init(vbase, tstsrpfile), SRP_NO_ERROR))
+ goto end;
+ }
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ goto end;
+
+ if (!TEST_int_gt(SSL_CTX_set_srp_username_callback(sctx, ssl_srp_cb), 0)
+ || !TEST_true(SSL_CTX_set_cipher_list(cctx, "SRP-AES-128-CBC-SHA"))
+ || !TEST_true(SSL_CTX_set_max_proto_version(sctx, TLS1_2_VERSION))
+ || !TEST_true(SSL_CTX_set_max_proto_version(cctx, TLS1_2_VERSION))
+ || !TEST_int_gt(SSL_CTX_set_srp_username(cctx, userid), 0))
+ goto end;
+
+ if (tst % 2 == 1) {
+ if (!TEST_int_gt(SSL_CTX_set_srp_password(cctx, "badpass"), 0))
+ goto end;
+ } else {
+ if (!TEST_int_gt(SSL_CTX_set_srp_password(cctx, password), 0))
+ goto end;
+ }
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL)))
+ goto end;
+
+ ret = create_ssl_connection(serverssl, clientssl, SSL_ERROR_NONE);
+ if (ret) {
+ if (!TEST_true(tst % 2 == 0))
+ goto end;
+ } else {
+ if (!TEST_true(tst % 2 == 1))
+ goto end;
+ }
+
+ testresult = 1;
+
+ end:
+ SRP_VBASE_free(vbase);
+ vbase = NULL;
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+#endif
+
+static int info_cb_failed = 0;
+static int info_cb_offset = 0;
+static int info_cb_this_state = -1;
+
+static struct info_cb_states_st {
+ int where;
+ const char *statestr;
+} info_cb_states[][60] = {
+ {
+ /* TLSv1.2 server followed by resumption */
+ {SSL_CB_HANDSHAKE_START, NULL}, {SSL_CB_LOOP, "PINIT "},
+ {SSL_CB_LOOP, "PINIT "}, {SSL_CB_LOOP, "TRCH"}, {SSL_CB_LOOP, "TWSH"},
+ {SSL_CB_LOOP, "TWSC"}, {SSL_CB_LOOP, "TWSKE"}, {SSL_CB_LOOP, "TWSD"},
+ {SSL_CB_EXIT, NULL}, {SSL_CB_LOOP, "TWSD"}, {SSL_CB_LOOP, "TRCKE"},
+ {SSL_CB_LOOP, "TRCCS"}, {SSL_CB_LOOP, "TRFIN"}, {SSL_CB_LOOP, "TWST"},
+ {SSL_CB_LOOP, "TWCCS"}, {SSL_CB_LOOP, "TWFIN"},
+ {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_EXIT, NULL},
+ {SSL_CB_ALERT, NULL}, {SSL_CB_HANDSHAKE_START, NULL},
+ {SSL_CB_LOOP, "PINIT "}, {SSL_CB_LOOP, "PINIT "}, {SSL_CB_LOOP, "TRCH"},
+ {SSL_CB_LOOP, "TWSH"}, {SSL_CB_LOOP, "TWCCS"}, {SSL_CB_LOOP, "TWFIN"},
+ {SSL_CB_EXIT, NULL}, {SSL_CB_LOOP, "TWFIN"}, {SSL_CB_LOOP, "TRCCS"},
+ {SSL_CB_LOOP, "TRFIN"}, {SSL_CB_HANDSHAKE_DONE, NULL},
+ {SSL_CB_EXIT, NULL}, {0, NULL},
+ }, {
+ /* TLSv1.2 client followed by resumption */
+ {SSL_CB_HANDSHAKE_START, NULL}, {SSL_CB_LOOP, "PINIT "},
+ {SSL_CB_LOOP, "TWCH"}, {SSL_CB_EXIT, NULL}, {SSL_CB_LOOP, "TWCH"},
+ {SSL_CB_LOOP, "TRSH"}, {SSL_CB_LOOP, "TRSC"}, {SSL_CB_LOOP, "TRSKE"},
+ {SSL_CB_LOOP, "TRSD"}, {SSL_CB_LOOP, "TWCKE"}, {SSL_CB_LOOP, "TWCCS"},
+ {SSL_CB_LOOP, "TWFIN"}, {SSL_CB_EXIT, NULL}, {SSL_CB_LOOP, "TWFIN"},
+ {SSL_CB_LOOP, "TRST"}, {SSL_CB_LOOP, "TRCCS"}, {SSL_CB_LOOP, "TRFIN"},
+ {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_EXIT, NULL}, {SSL_CB_ALERT, NULL},
+ {SSL_CB_HANDSHAKE_START, NULL}, {SSL_CB_LOOP, "PINIT "},
+ {SSL_CB_LOOP, "TWCH"}, {SSL_CB_EXIT, NULL}, {SSL_CB_LOOP, "TWCH"},
+ {SSL_CB_LOOP, "TRSH"}, {SSL_CB_LOOP, "TRCCS"}, {SSL_CB_LOOP, "TRFIN"},
+ {SSL_CB_LOOP, "TWCCS"}, {SSL_CB_LOOP, "TWFIN"},
+ {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_EXIT, NULL}, {0, NULL},
+ }, {
+ /* TLSv1.3 server followed by resumption */
+ {SSL_CB_HANDSHAKE_START, NULL}, {SSL_CB_LOOP, "PINIT "},
+ {SSL_CB_LOOP, "PINIT "}, {SSL_CB_LOOP, "TRCH"}, {SSL_CB_LOOP, "TWSH"},
+ {SSL_CB_LOOP, "TWCCS"}, {SSL_CB_LOOP, "TWEE"}, {SSL_CB_LOOP, "TWSC"},
+ {SSL_CB_LOOP, "TRSCV"}, {SSL_CB_LOOP, "TWFIN"}, {SSL_CB_LOOP, "TED"},
+ {SSL_CB_EXIT, NULL}, {SSL_CB_LOOP, "TED"}, {SSL_CB_LOOP, "TRFIN"},
+ {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_LOOP, "TWST"},
+ {SSL_CB_LOOP, "TWST"}, {SSL_CB_EXIT, NULL}, {SSL_CB_ALERT, NULL},
+ {SSL_CB_HANDSHAKE_START, NULL}, {SSL_CB_LOOP, "PINIT "},
+ {SSL_CB_LOOP, "PINIT "}, {SSL_CB_LOOP, "TRCH"}, {SSL_CB_LOOP, "TWSH"},
+ {SSL_CB_LOOP, "TWCCS"}, {SSL_CB_LOOP, "TWEE"}, {SSL_CB_LOOP, "TWFIN"},
+ {SSL_CB_LOOP, "TED"}, {SSL_CB_EXIT, NULL}, {SSL_CB_LOOP, "TED"},
+ {SSL_CB_LOOP, "TRFIN"}, {SSL_CB_HANDSHAKE_DONE, NULL},
+ {SSL_CB_LOOP, "TWST"}, {SSL_CB_EXIT, NULL}, {0, NULL},
+ }, {
+ /* TLSv1.3 client followed by resumption */
+ {SSL_CB_HANDSHAKE_START, NULL}, {SSL_CB_LOOP, "PINIT "},
+ {SSL_CB_LOOP, "TWCH"}, {SSL_CB_EXIT, NULL}, {SSL_CB_LOOP, "TWCH"},
+ {SSL_CB_LOOP, "TRSH"}, {SSL_CB_LOOP, "TREE"}, {SSL_CB_LOOP, "TRSC"},
+ {SSL_CB_LOOP, "TRSCV"}, {SSL_CB_LOOP, "TRFIN"}, {SSL_CB_LOOP, "TWCCS"},
+ {SSL_CB_LOOP, "TWFIN"}, {SSL_CB_HANDSHAKE_DONE, NULL},
+ {SSL_CB_EXIT, NULL}, {SSL_CB_LOOP, "SSLOK "}, {SSL_CB_LOOP, "SSLOK "},
+ {SSL_CB_LOOP, "TRST"}, {SSL_CB_EXIT, NULL}, {SSL_CB_LOOP, "SSLOK "},
+ {SSL_CB_LOOP, "SSLOK "}, {SSL_CB_LOOP, "TRST"}, {SSL_CB_EXIT, NULL},
+ {SSL_CB_ALERT, NULL}, {SSL_CB_HANDSHAKE_START, NULL},
+ {SSL_CB_LOOP, "PINIT "}, {SSL_CB_LOOP, "TWCH"}, {SSL_CB_EXIT, NULL},
+ {SSL_CB_LOOP, "TWCH"}, {SSL_CB_LOOP, "TRSH"}, {SSL_CB_LOOP, "TREE"},
+ {SSL_CB_LOOP, "TRFIN"}, {SSL_CB_LOOP, "TWCCS"}, {SSL_CB_LOOP, "TWFIN"},
+ {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_EXIT, NULL},
+ {SSL_CB_LOOP, "SSLOK "}, {SSL_CB_LOOP, "SSLOK "}, {SSL_CB_LOOP, "TRST"},
+ {SSL_CB_EXIT, NULL}, {0, NULL},
+ }, {
+ /* TLSv1.3 server, early_data */
+ {SSL_CB_HANDSHAKE_START, NULL}, {SSL_CB_LOOP, "PINIT "},
+ {SSL_CB_LOOP, "PINIT "}, {SSL_CB_LOOP, "TRCH"}, {SSL_CB_LOOP, "TWSH"},
+ {SSL_CB_LOOP, "TWCCS"}, {SSL_CB_LOOP, "TWEE"}, {SSL_CB_LOOP, "TWFIN"},
+ {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_EXIT, NULL},
+ {SSL_CB_HANDSHAKE_START, NULL}, {SSL_CB_LOOP, "TED"},
+ {SSL_CB_LOOP, "TED"}, {SSL_CB_LOOP, "TWEOED"}, {SSL_CB_LOOP, "TRFIN"},
+ {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_LOOP, "TWST"},
+ {SSL_CB_EXIT, NULL}, {0, NULL},
+ }, {
+ /* TLSv1.3 client, early_data */
+ {SSL_CB_HANDSHAKE_START, NULL}, {SSL_CB_LOOP, "PINIT "},
+ {SSL_CB_LOOP, "TWCH"}, {SSL_CB_LOOP, "TWCCS"},
+ {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_EXIT, NULL},
+ {SSL_CB_HANDSHAKE_START, NULL}, {SSL_CB_LOOP, "TED"},
+ {SSL_CB_LOOP, "TED"}, {SSL_CB_LOOP, "TRSH"}, {SSL_CB_LOOP, "TREE"},
+ {SSL_CB_LOOP, "TRFIN"}, {SSL_CB_LOOP, "TPEDE"}, {SSL_CB_LOOP, "TWEOED"},
+ {SSL_CB_LOOP, "TWFIN"}, {SSL_CB_HANDSHAKE_DONE, NULL},
+ {SSL_CB_EXIT, NULL}, {SSL_CB_LOOP, "SSLOK "}, {SSL_CB_LOOP, "SSLOK "},
+ {SSL_CB_LOOP, "TRST"}, {SSL_CB_EXIT, NULL}, {0, NULL},
+ }, {
+ {0, NULL},
+ }
+};
+
+static void sslapi_info_callback(const SSL *s, int where, int ret)
+{
+ struct info_cb_states_st *state = info_cb_states[info_cb_offset];
+
+ /* We do not ever expect a connection to fail in this test */
+ if (!TEST_false(ret == 0)) {
+ info_cb_failed = 1;
+ return;
+ }
+
+ /*
+ * Do some sanity checks. We never expect these things to happen in this
+ * test
+ */
+ if (!TEST_false((SSL_is_server(s) && (where & SSL_ST_CONNECT) != 0))
+ || !TEST_false(!SSL_is_server(s) && (where & SSL_ST_ACCEPT) != 0)
+ || !TEST_int_ne(state[++info_cb_this_state].where, 0)) {
+ info_cb_failed = 1;
+ return;
+ }
+
+ /* Now check we're in the right state */
+ if (!TEST_true((where & state[info_cb_this_state].where) != 0)) {
+ info_cb_failed = 1;
+ return;
+ }
+ if ((where & SSL_CB_LOOP) != 0
+ && !TEST_int_eq(strcmp(SSL_state_string(s),
+ state[info_cb_this_state].statestr), 0)) {
+ info_cb_failed = 1;
+ return;
+ }
+
+ /*
+ * Check that, if we've got SSL_CB_HANDSHAKE_DONE we are not in init
+ */
+ if ((where & SSL_CB_HANDSHAKE_DONE)
+ && SSL_in_init((SSL *)s) != 0) {
+ info_cb_failed = 1;
+ return;
+ }
+}
+
+/*
+ * Test the info callback gets called when we expect it to.
+ *
+ * Test 0: TLSv1.2, server
+ * Test 1: TLSv1.2, client
+ * Test 2: TLSv1.3, server
+ * Test 3: TLSv1.3, client
+ * Test 4: TLSv1.3, server, early_data
+ * Test 5: TLSv1.3, client, early_data
+ */
+static int test_info_callback(int tst)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ SSL_SESSION *clntsess = NULL;
+ int testresult = 0;
+ int tlsvers;
+
+ if (tst < 2) {
+/* We need either ECDHE or DHE for the TLSv1.2 test to work */
+#if !defined(OPENSSL_NO_TLS1_2) && (!defined(OPENSSL_NO_EC) \
+ || !defined(OPENSSL_NO_DH))
+ tlsvers = TLS1_2_VERSION;
+#else
+ return 1;
+#endif
+ } else {
+#ifndef OPENSSL_NO_TLS1_3
+ tlsvers = TLS1_3_VERSION;
+#else
+ return 1;
+#endif
+ }
+
+ /* Reset globals */
+ info_cb_failed = 0;
+ info_cb_this_state = -1;
+ info_cb_offset = tst;
+
+#ifndef OPENSSL_NO_TLS1_3
+ if (tst >= 4) {
+ SSL_SESSION *sess = NULL;
+ size_t written, readbytes;
+ unsigned char buf[80];
+
+ /* early_data tests */
+ if (!TEST_true(setupearly_data_test(&cctx, &sctx, &clientssl,
+ &serverssl, &sess, 0)))
+ goto end;
+
+ /* We don't actually need this reference */
+ SSL_SESSION_free(sess);
+
+ SSL_set_info_callback((tst % 2) == 0 ? serverssl : clientssl,
+ sslapi_info_callback);
+
+ /* Write and read some early data and then complete the connection */
+ if (!TEST_true(SSL_write_early_data(clientssl, MSG1, strlen(MSG1),
+ &written))
+ || !TEST_size_t_eq(written, strlen(MSG1))
+ || !TEST_int_eq(SSL_read_early_data(serverssl, buf,
+ sizeof(buf), &readbytes),
+ SSL_READ_EARLY_DATA_SUCCESS)
+ || !TEST_mem_eq(MSG1, readbytes, buf, strlen(MSG1))
+ || !TEST_int_eq(SSL_get_early_data_status(serverssl),
+ SSL_EARLY_DATA_ACCEPTED)
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_false(info_cb_failed))
+ goto end;
+
+ testresult = 1;
+ goto end;
+ }
+#endif
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(),
+ TLS_client_method(),
+ tlsvers, tlsvers, &sctx, &cctx, cert,
+ privkey)))
+ goto end;
+
+ /*
+ * For even numbered tests we check the server callbacks. For odd numbers we
+ * check the client.
+ */
+ SSL_CTX_set_info_callback((tst % 2) == 0 ? sctx : cctx,
+ sslapi_info_callback);
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
+ &clientssl, NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_false(info_cb_failed))
+ goto end;
+
+
+
+ clntsess = SSL_get1_session(clientssl);
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ serverssl = clientssl = NULL;
+
+ /* Now do a resumption */
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl, NULL,
+ NULL))
+ || !TEST_true(SSL_set_session(clientssl, clntsess))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_true(SSL_session_reused(clientssl))
+ || !TEST_false(info_cb_failed))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_SESSION_free(clntsess);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ return testresult;
+}
+
+static int test_ssl_pending(int tst)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ char msg[] = "A test message";
+ char buf[5];
+ size_t written, readbytes;
+
+ if (tst == 0) {
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(),
+ TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ goto end;
+ } else {
+#ifndef OPENSSL_NO_DTLS
+ if (!TEST_true(create_ssl_ctx_pair(DTLS_server_method(),
+ DTLS_client_method(),
+ DTLS1_VERSION, DTLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ goto end;
+#else
+ return 1;
+#endif
+ }
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ if (!TEST_int_eq(SSL_pending(clientssl), 0)
+ || !TEST_false(SSL_has_pending(clientssl))
+ || !TEST_int_eq(SSL_pending(serverssl), 0)
+ || !TEST_false(SSL_has_pending(serverssl))
+ || !TEST_true(SSL_write_ex(serverssl, msg, sizeof(msg), &written))
+ || !TEST_size_t_eq(written, sizeof(msg))
+ || !TEST_true(SSL_read_ex(clientssl, buf, sizeof(buf), &readbytes))
+ || !TEST_size_t_eq(readbytes, sizeof(buf))
+ || !TEST_int_eq(SSL_pending(clientssl), (int)(written - readbytes))
+ || !TEST_true(SSL_has_pending(clientssl)))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+static struct {
+ unsigned int maxprot;
+ const char *clntciphers;
+ const char *clnttls13ciphers;
+ const char *srvrciphers;
+ const char *srvrtls13ciphers;
+ const char *shared;
+} shared_ciphers_data[] = {
+/*
+ * We can't establish a connection (even in TLSv1.1) with these ciphersuites if
+ * TLSv1.3 is enabled but TLSv1.2 is disabled.
+ */
+#if defined(OPENSSL_NO_TLS1_3) || !defined(OPENSSL_NO_TLS1_2)
+ {
+ TLS1_2_VERSION,
+ "AES128-SHA:AES256-SHA",
+ NULL,
+ "AES256-SHA:DHE-RSA-AES128-SHA",
+ NULL,
+ "AES256-SHA"
+ },
+ {
+ TLS1_2_VERSION,
+ "AES128-SHA:DHE-RSA-AES128-SHA:AES256-SHA",
+ NULL,
+ "AES128-SHA:DHE-RSA-AES256-SHA:AES256-SHA",
+ NULL,
+ "AES128-SHA:AES256-SHA"
+ },
+ {
+ TLS1_2_VERSION,
+ "AES128-SHA:AES256-SHA",
+ NULL,
+ "AES128-SHA:DHE-RSA-AES128-SHA",
+ NULL,
+ "AES128-SHA"
+ },
+#endif
+/*
+ * This test combines TLSv1.3 and TLSv1.2 ciphersuites so they must both be
+ * enabled.
+ */
+#if !defined(OPENSSL_NO_TLS1_3) && !defined(OPENSSL_NO_TLS1_2) \
+ && !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305)
+ {
+ TLS1_3_VERSION,
+ "AES128-SHA:AES256-SHA",
+ NULL,
+ "AES256-SHA:AES128-SHA256",
+ NULL,
+ "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:"
+ "TLS_AES_128_GCM_SHA256:AES256-SHA"
+ },
+#endif
+#ifndef OPENSSL_NO_TLS1_3
+ {
+ TLS1_3_VERSION,
+ "AES128-SHA",
+ "TLS_AES_256_GCM_SHA384",
+ "AES256-SHA",
+ "TLS_AES_256_GCM_SHA384",
+ "TLS_AES_256_GCM_SHA384"
+ },
+#endif
+};
+
+static int test_ssl_get_shared_ciphers(int tst)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ char buf[1024];
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(),
+ TLS_client_method(),
+ TLS1_VERSION,
+ shared_ciphers_data[tst].maxprot,
+ &sctx, &cctx, cert, privkey)))
+ goto end;
+
+ if (!TEST_true(SSL_CTX_set_cipher_list(cctx,
+ shared_ciphers_data[tst].clntciphers))
+ || (shared_ciphers_data[tst].clnttls13ciphers != NULL
+ && !TEST_true(SSL_CTX_set_ciphersuites(cctx,
+ shared_ciphers_data[tst].clnttls13ciphers)))
+ || !TEST_true(SSL_CTX_set_cipher_list(sctx,
+ shared_ciphers_data[tst].srvrciphers))
+ || (shared_ciphers_data[tst].srvrtls13ciphers != NULL
+ && !TEST_true(SSL_CTX_set_ciphersuites(sctx,
+ shared_ciphers_data[tst].srvrtls13ciphers))))
+ goto end;
+
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ if (!TEST_ptr(SSL_get_shared_ciphers(serverssl, buf, sizeof(buf)))
+ || !TEST_int_eq(strcmp(buf, shared_ciphers_data[tst].shared), 0)) {
+ TEST_info("Shared ciphers are: %s\n", buf);
+ goto end;
+ }
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+static const char *appdata = "Hello World";
+static int gen_tick_called, dec_tick_called, tick_key_cb_called;
+static int tick_key_renew = 0;
+static SSL_TICKET_RETURN tick_dec_ret = SSL_TICKET_RETURN_ABORT;
+
+static int gen_tick_cb(SSL *s, void *arg)
+{
+ gen_tick_called = 1;
+
+ return SSL_SESSION_set1_ticket_appdata(SSL_get_session(s), appdata,
+ strlen(appdata));
+}
+
+static SSL_TICKET_RETURN dec_tick_cb(SSL *s, SSL_SESSION *ss,
+ const unsigned char *keyname,
+ size_t keyname_length,
+ SSL_TICKET_STATUS status,
+ void *arg)
+{
+ void *tickdata;
+ size_t tickdlen;
+
+ dec_tick_called = 1;
+
+ if (status == SSL_TICKET_EMPTY)
+ return SSL_TICKET_RETURN_IGNORE_RENEW;
+
+ if (!TEST_true(status == SSL_TICKET_SUCCESS
+ || status == SSL_TICKET_SUCCESS_RENEW))
+ return SSL_TICKET_RETURN_ABORT;
+
+ if (!TEST_true(SSL_SESSION_get0_ticket_appdata(ss, &tickdata,
+ &tickdlen))
+ || !TEST_size_t_eq(tickdlen, strlen(appdata))
+ || !TEST_int_eq(memcmp(tickdata, appdata, tickdlen), 0))
+ return SSL_TICKET_RETURN_ABORT;
+
+ if (tick_key_cb_called) {
+ /* Don't change what the ticket key callback wanted to do */
+ switch (status) {
+ case SSL_TICKET_NO_DECRYPT:
+ return SSL_TICKET_RETURN_IGNORE_RENEW;
+
+ case SSL_TICKET_SUCCESS:
+ return SSL_TICKET_RETURN_USE;
+
+ case SSL_TICKET_SUCCESS_RENEW:
+ return SSL_TICKET_RETURN_USE_RENEW;
+
+ default:
+ return SSL_TICKET_RETURN_ABORT;
+ }
+ }
+ return tick_dec_ret;
+
+}
+
+static int tick_key_cb(SSL *s, unsigned char key_name[16],
+ unsigned char iv[EVP_MAX_IV_LENGTH], EVP_CIPHER_CTX *ctx,
+ HMAC_CTX *hctx, int enc)
+{
+ const unsigned char tick_aes_key[16] = "0123456789abcdef";
+ const unsigned char tick_hmac_key[16] = "0123456789abcdef";
+
+ tick_key_cb_called = 1;
+ memset(iv, 0, AES_BLOCK_SIZE);
+ memset(key_name, 0, 16);
+ if (!EVP_CipherInit_ex(ctx, EVP_aes_128_cbc(), NULL, tick_aes_key, iv, enc)
+ || !HMAC_Init_ex(hctx, tick_hmac_key, sizeof(tick_hmac_key),
+ EVP_sha256(), NULL))
+ return -1;
+
+ return tick_key_renew ? 2 : 1;
+}
+
+/*
+ * Test the various ticket callbacks
+ * Test 0: TLSv1.2, no ticket key callback, no ticket, no renewal
+ * Test 1: TLSv1.3, no ticket key callback, no ticket, no renewal
+ * Test 2: TLSv1.2, no ticket key callback, no ticket, renewal
+ * Test 3: TLSv1.3, no ticket key callback, no ticket, renewal
+ * Test 4: TLSv1.2, no ticket key callback, ticket, no renewal
+ * Test 5: TLSv1.3, no ticket key callback, ticket, no renewal
+ * Test 6: TLSv1.2, no ticket key callback, ticket, renewal
+ * Test 7: TLSv1.3, no ticket key callback, ticket, renewal
+ * Test 8: TLSv1.2, ticket key callback, ticket, no renewal
+ * Test 9: TLSv1.3, ticket key callback, ticket, no renewal
+ * Test 10: TLSv1.2, ticket key callback, ticket, renewal
+ * Test 11: TLSv1.3, ticket key callback, ticket, renewal
+ */
+static int test_ticket_callbacks(int tst)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ SSL_SESSION *clntsess = NULL;
+ int testresult = 0;
+
+#ifdef OPENSSL_NO_TLS1_2
+ if (tst % 2 == 0)
+ return 1;
+#endif
+#ifdef OPENSSL_NO_TLS1_3
+ if (tst % 2 == 1)
+ return 1;
+#endif
+
+ gen_tick_called = dec_tick_called = tick_key_cb_called = 0;
+
+ /* Which tests the ticket key callback should request renewal for */
+ if (tst == 10 || tst == 11)
+ tick_key_renew = 1;
+ else
+ tick_key_renew = 0;
+
+ /* Which tests the decrypt ticket callback should request renewal for */
+ switch (tst) {
+ case 0:
+ case 1:
+ tick_dec_ret = SSL_TICKET_RETURN_IGNORE;
+ break;
+
+ case 2:
+ case 3:
+ tick_dec_ret = SSL_TICKET_RETURN_IGNORE_RENEW;
+ break;
+
+ case 4:
+ case 5:
+ tick_dec_ret = SSL_TICKET_RETURN_USE;
+ break;
+
+ case 6:
+ case 7:
+ tick_dec_ret = SSL_TICKET_RETURN_USE_RENEW;
+ break;
+
+ default:
+ tick_dec_ret = SSL_TICKET_RETURN_ABORT;
+ }
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(),
+ TLS_client_method(),
+ TLS1_VERSION,
+ ((tst % 2) == 0) ? TLS1_2_VERSION
+ : TLS1_3_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ goto end;
+
+ /*
+ * We only want sessions to resume from tickets - not the session cache. So
+ * switch the cache off.
+ */
+ if (!TEST_true(SSL_CTX_set_session_cache_mode(sctx, SSL_SESS_CACHE_OFF)))
+ goto end;
+
+ if (!TEST_true(SSL_CTX_set_session_ticket_cb(sctx, gen_tick_cb, dec_tick_cb,
+ NULL)))
+ goto end;
+
+ if (tst >= 8
+ && !TEST_true(SSL_CTX_set_tlsext_ticket_key_cb(sctx, tick_key_cb)))
+ goto end;
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ /*
+ * The decrypt ticket key callback in TLSv1.2 should be called even though
+ * we have no ticket yet, because it gets called with a status of
+ * SSL_TICKET_EMPTY (the client indicates support for tickets but does not
+ * actually send any ticket data). This does not happen in TLSv1.3 because
+ * it is not valid to send empty ticket data in TLSv1.3.
+ */
+ if (!TEST_int_eq(gen_tick_called, 1)
+ || !TEST_int_eq(dec_tick_called, ((tst % 2) == 0) ? 1 : 0))
+ goto end;
+
+ gen_tick_called = dec_tick_called = 0;
+
+ clntsess = SSL_get1_session(clientssl);
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ serverssl = clientssl = NULL;
+
+ /* Now do a resumption */
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl, NULL,
+ NULL))
+ || !TEST_true(SSL_set_session(clientssl, clntsess))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ if (tick_dec_ret == SSL_TICKET_RETURN_IGNORE
+ || tick_dec_ret == SSL_TICKET_RETURN_IGNORE_RENEW) {
+ if (!TEST_false(SSL_session_reused(clientssl)))
+ goto end;
+ } else {
+ if (!TEST_true(SSL_session_reused(clientssl)))
+ goto end;
+ }
+
+ if (!TEST_int_eq(gen_tick_called,
+ (tick_key_renew
+ || tick_dec_ret == SSL_TICKET_RETURN_IGNORE_RENEW
+ || tick_dec_ret == SSL_TICKET_RETURN_USE_RENEW)
+ ? 1 : 0)
+ || !TEST_int_eq(dec_tick_called, 1))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_SESSION_free(clntsess);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+/*
+ * Test bi-directional shutdown.
+ * Test 0: TLSv1.2
+ * Test 1: TLSv1.2, server continues to read/write after client shutdown
+ * Test 2: TLSv1.3, no pending NewSessionTicket messages
+ * Test 3: TLSv1.3, pending NewSessionTicket messages
+ * Test 4: TLSv1.3, server continues to read/write after client shutdown, server
+ * sends key update, client reads it
+ * Test 5: TLSv1.3, server continues to read/write after client shutdown, server
+ * sends CertificateRequest, client reads and ignores it
+ * Test 6: TLSv1.3, server continues to read/write after client shutdown, client
+ * doesn't read it
+ */
+static int test_shutdown(int tst)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ char msg[] = "A test message";
+ char buf[80];
+ size_t written, readbytes;
+ SSL_SESSION *sess;
+
+#ifdef OPENSSL_NO_TLS1_2
+ if (tst <= 1)
+ return 1;
+#endif
+#ifdef OPENSSL_NO_TLS1_3
+ if (tst >= 2)
+ return 1;
+#endif
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(),
+ TLS_client_method(),
+ TLS1_VERSION,
+ (tst <= 1) ? TLS1_2_VERSION
+ : TLS1_3_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ goto end;
+
+ if (tst == 5)
+ SSL_CTX_set_post_handshake_auth(cctx, 1);
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL)))
+ goto end;
+
+ if (tst == 3) {
+ if (!TEST_true(create_bare_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE, 1))
+ || !TEST_ptr_ne(sess = SSL_get_session(clientssl), NULL)
+ || !TEST_false(SSL_SESSION_is_resumable(sess)))
+ goto end;
+ } else if (!TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_ptr_ne(sess = SSL_get_session(clientssl), NULL)
+ || !TEST_true(SSL_SESSION_is_resumable(sess))) {
+ goto end;
+ }
+
+ if (!TEST_int_eq(SSL_shutdown(clientssl), 0))
+ goto end;
+
+ if (tst >= 4) {
+ /*
+ * Reading on the server after the client has sent close_notify should
+ * fail and provide SSL_ERROR_ZERO_RETURN
+ */
+ if (!TEST_false(SSL_read_ex(serverssl, buf, sizeof(buf), &readbytes))
+ || !TEST_int_eq(SSL_get_error(serverssl, 0),
+ SSL_ERROR_ZERO_RETURN)
+ || !TEST_int_eq(SSL_get_shutdown(serverssl),
+ SSL_RECEIVED_SHUTDOWN)
+ /*
+ * Even though we're shutdown on receive we should still be
+ * able to write.
+ */
+ || !TEST_true(SSL_write(serverssl, msg, sizeof(msg))))
+ goto end;
+ if (tst == 4
+ && !TEST_true(SSL_key_update(serverssl,
+ SSL_KEY_UPDATE_REQUESTED)))
+ goto end;
+ if (tst == 5) {
+ SSL_set_verify(serverssl, SSL_VERIFY_PEER, NULL);
+ if (!TEST_true(SSL_verify_client_post_handshake(serverssl)))
+ goto end;
+ }
+ if ((tst == 4 || tst == 5)
+ && !TEST_true(SSL_write(serverssl, msg, sizeof(msg))))
+ goto end;
+ if (!TEST_int_eq(SSL_shutdown(serverssl), 1))
+ goto end;
+ if (tst == 4 || tst == 5) {
+ /* Should still be able to read data from server */
+ if (!TEST_true(SSL_read_ex(clientssl, buf, sizeof(buf),
+ &readbytes))
+ || !TEST_size_t_eq(readbytes, sizeof(msg))
+ || !TEST_int_eq(memcmp(msg, buf, readbytes), 0)
+ || !TEST_true(SSL_read_ex(clientssl, buf, sizeof(buf),
+ &readbytes))
+ || !TEST_size_t_eq(readbytes, sizeof(msg))
+ || !TEST_int_eq(memcmp(msg, buf, readbytes), 0))
+ goto end;
+ }
+ }
+
+ /* Writing on the client after sending close_notify shouldn't be possible */
+ if (!TEST_false(SSL_write_ex(clientssl, msg, sizeof(msg), &written)))
+ goto end;
+
+ if (tst < 4) {
+ /*
+ * For these tests the client has sent close_notify but it has not yet
+ * been received by the server. The server has not sent close_notify
+ * yet.
+ */
+ if (!TEST_int_eq(SSL_shutdown(serverssl), 0)
+ /*
+ * Writing on the server after sending close_notify shouldn't
+ * be possible.
+ */
+ || !TEST_false(SSL_write_ex(serverssl, msg, sizeof(msg), &written))
+ || !TEST_int_eq(SSL_shutdown(clientssl), 1)
+ || !TEST_ptr_ne(sess = SSL_get_session(clientssl), NULL)
+ || !TEST_true(SSL_SESSION_is_resumable(sess))
+ || !TEST_int_eq(SSL_shutdown(serverssl), 1))
+ goto end;
+ } else if (tst == 4 || tst == 5) {
+ /*
+ * In this test the client has sent close_notify and it has been
+ * received by the server which has responded with a close_notify. The
+ * client needs to read the close_notify sent by the server.
+ */
+ if (!TEST_int_eq(SSL_shutdown(clientssl), 1)
+ || !TEST_ptr_ne(sess = SSL_get_session(clientssl), NULL)
+ || !TEST_true(SSL_SESSION_is_resumable(sess)))
+ goto end;
+ } else {
+ /*
+ * tst == 6
+ *
+ * The client has sent close_notify and is expecting a close_notify
+ * back, but instead there is application data first. The shutdown
+ * should fail with a fatal error.
+ */
+ if (!TEST_int_eq(SSL_shutdown(clientssl), -1)
+ || !TEST_int_eq(SSL_get_error(clientssl, -1), SSL_ERROR_SSL))
+ goto end;
+ }
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+#if !defined(OPENSSL_NO_TLS1_2) || !defined(OPENSSL_NO_TLS1_3)
+static int cert_cb_cnt;
+
+static int cert_cb(SSL *s, void *arg)
+{
+ SSL_CTX *ctx = (SSL_CTX *)arg;
+ BIO *in = NULL;
+ EVP_PKEY *pkey = NULL;
+ X509 *x509 = NULL, *rootx = NULL;
+ STACK_OF(X509) *chain = NULL;
+ char *rootfile = NULL, *ecdsacert = NULL, *ecdsakey = NULL;
+ int ret = 0;
+
+ if (cert_cb_cnt == 0) {
+ /* Suspend the handshake */
+ cert_cb_cnt++;
+ return -1;
+ } else if (cert_cb_cnt == 1) {
+ /*
+ * Update the SSL_CTX, set the certificate and private key and then
+ * continue the handshake normally.
+ */
+ if (ctx != NULL && !TEST_ptr(SSL_set_SSL_CTX(s, ctx)))
+ return 0;
+
+ if (!TEST_true(SSL_use_certificate_file(s, cert, SSL_FILETYPE_PEM))
+ || !TEST_true(SSL_use_PrivateKey_file(s, privkey,
+ SSL_FILETYPE_PEM))
+ || !TEST_true(SSL_check_private_key(s)))
+ return 0;
+ cert_cb_cnt++;
+ return 1;
+ } else if (cert_cb_cnt == 3) {
+ int rv;
+
+ rootfile = test_mk_file_path(certsdir, "rootcert.pem");
+ ecdsacert = test_mk_file_path(certsdir, "server-ecdsa-cert.pem");
+ ecdsakey = test_mk_file_path(certsdir, "server-ecdsa-key.pem");
+ if (!TEST_ptr(rootfile) || !TEST_ptr(ecdsacert) || !TEST_ptr(ecdsakey))
+ goto out;
+ chain = sk_X509_new_null();
+ if (!TEST_ptr(chain))
+ goto out;
+ if (!TEST_ptr(in = BIO_new(BIO_s_file()))
+ || !TEST_int_ge(BIO_read_filename(in, rootfile), 0)
+ || !TEST_ptr(rootx = PEM_read_bio_X509(in, NULL, NULL, NULL))
+ || !TEST_true(sk_X509_push(chain, rootx)))
+ goto out;
+ rootx = NULL;
+ BIO_free(in);
+ if (!TEST_ptr(in = BIO_new(BIO_s_file()))
+ || !TEST_int_ge(BIO_read_filename(in, ecdsacert), 0)
+ || !TEST_ptr(x509 = PEM_read_bio_X509(in, NULL, NULL, NULL)))
+ goto out;
+ BIO_free(in);
+ if (!TEST_ptr(in = BIO_new(BIO_s_file()))
+ || !TEST_int_ge(BIO_read_filename(in, ecdsakey), 0)
+ || !TEST_ptr(pkey = PEM_read_bio_PrivateKey(in, NULL, NULL, NULL)))
+ goto out;
+ rv = SSL_check_chain(s, x509, pkey, chain);
+ /*
+ * If the cert doesn't show as valid here (e.g., because we don't
+ * have any shared sigalgs), then we will not set it, and there will
+ * be no certificate at all on the SSL or SSL_CTX. This, in turn,
+ * will cause tls_choose_sigalgs() to fail the connection.
+ */
+ if ((rv & (CERT_PKEY_VALID | CERT_PKEY_CA_SIGNATURE))
+ == (CERT_PKEY_VALID | CERT_PKEY_CA_SIGNATURE)) {
+ if (!SSL_use_cert_and_key(s, x509, pkey, NULL, 1))
+ goto out;
+ }
+
+ ret = 1;
+ }
+
+ /* Abort the handshake */
+ out:
+ OPENSSL_free(ecdsacert);
+ OPENSSL_free(ecdsakey);
+ OPENSSL_free(rootfile);
+ BIO_free(in);
+ EVP_PKEY_free(pkey);
+ X509_free(x509);
+ X509_free(rootx);
+ sk_X509_pop_free(chain, X509_free);
+ return ret;
+}
+
+/*
+ * Test the certificate callback.
+ * Test 0: Callback fails
+ * Test 1: Success - no SSL_set_SSL_CTX() in the callback
+ * Test 2: Success - SSL_set_SSL_CTX() in the callback
+ * Test 3: Success - Call SSL_check_chain from the callback
+ * Test 4: Failure - SSL_check_chain fails from callback due to bad cert in the
+ * chain
+ * Test 5: Failure - SSL_check_chain fails from callback due to bad ee cert
+ */
+static int test_cert_cb_int(int prot, int tst)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL, *snictx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0, ret;
+
+#ifdef OPENSSL_NO_EC
+ /* We use an EC cert in these tests, so we skip in a no-ec build */
+ if (tst >= 3)
+ return 1;
+#endif
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(),
+ TLS_client_method(),
+ TLS1_VERSION,
+ prot,
+ &sctx, &cctx, NULL, NULL)))
+ goto end;
+
+ if (tst == 0)
+ cert_cb_cnt = -1;
+ else if (tst >= 3)
+ cert_cb_cnt = 3;
+ else
+ cert_cb_cnt = 0;
+
+ if (tst == 2)
+ snictx = SSL_CTX_new(TLS_server_method());
+ SSL_CTX_set_cert_cb(sctx, cert_cb, snictx);
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL)))
+ goto end;
+
+ if (tst == 4) {
+ /*
+ * We cause SSL_check_chain() to fail by specifying sig_algs that
+ * the chain doesn't meet (the root uses an RSA cert)
+ */
+ if (!TEST_true(SSL_set1_sigalgs_list(clientssl,
+ "ecdsa_secp256r1_sha256")))
+ goto end;
+ } else if (tst == 5) {
+ /*
+ * We cause SSL_check_chain() to fail by specifying sig_algs that
+ * the ee cert doesn't meet (the ee uses an ECDSA cert)
+ */
+ if (!TEST_true(SSL_set1_sigalgs_list(clientssl,
+ "rsa_pss_rsae_sha256:rsa_pkcs1_sha256")))
+ goto end;
+ }
+
+ ret = create_ssl_connection(serverssl, clientssl, SSL_ERROR_NONE);
+ if (!TEST_true(tst == 0 || tst == 4 || tst == 5 ? !ret : ret)
+ || (tst > 0
+ && !TEST_int_eq((cert_cb_cnt - 2) * (cert_cb_cnt - 3), 0))) {
+ goto end;
+ }
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ SSL_CTX_free(snictx);
+
+ return testresult;
+}
+#endif
+
+static int test_cert_cb(int tst)
+{
+ int testresult = 1;
+
+#ifndef OPENSSL_NO_TLS1_2
+ testresult &= test_cert_cb_int(TLS1_2_VERSION, tst);
+#endif
+#ifndef OPENSSL_NO_TLS1_3
+ testresult &= test_cert_cb_int(TLS1_3_VERSION, tst);
+#endif
+
+ return testresult;
+}
+
+static int client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
+{
+ X509 *xcert, *peer;
+ EVP_PKEY *privpkey;
+ BIO *in = NULL;
+
+ /* Check that SSL_get_peer_certificate() returns something sensible */
+ peer = SSL_get_peer_certificate(ssl);
+ if (!TEST_ptr(peer))
+ return 0;
+ X509_free(peer);
+
+ in = BIO_new_file(cert, "r");
+ if (!TEST_ptr(in))
+ return 0;
+
+ xcert = PEM_read_bio_X509(in, NULL, NULL, NULL);
+ BIO_free(in);
+ if (!TEST_ptr(xcert))
+ return 0;
+
+ in = BIO_new_file(privkey, "r");
+ if (!TEST_ptr(in)) {
+ X509_free(xcert);
+ return 0;
+ }
+
+ privpkey = PEM_read_bio_PrivateKey(in, NULL, NULL, NULL);
+ BIO_free(in);
+ if (!TEST_ptr(privpkey)) {
+ X509_free(xcert);
+ return 0;
+ }
+
+ *x509 = xcert;
+ *pkey = privpkey;
+
+ return 1;
+}
+
+static int verify_cb(int preverify_ok, X509_STORE_CTX *x509_ctx)
+{
+ return 1;
+}
+
+static int test_client_cert_cb(int tst)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+
+#ifdef OPENSSL_NO_TLS1_2
+ if (tst == 0)
+ return 1;
+#endif
+#ifdef OPENSSL_NO_TLS1_3
+ if (tst == 1)
+ return 1;
+#endif
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(),
+ TLS_client_method(),
+ TLS1_VERSION,
+ tst == 0 ? TLS1_2_VERSION
+ : TLS1_3_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ goto end;
+
+ /*
+ * Test that setting a client_cert_cb results in a client certificate being
+ * sent.
+ */
+ SSL_CTX_set_client_cert_cb(cctx, client_cert_cb);
+ SSL_CTX_set_verify(sctx,
+ SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT,
+ verify_cb);
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+#if !defined(OPENSSL_NO_TLS1_2) || !defined(OPENSSL_NO_TLS1_3)
+/*
+ * Test setting certificate authorities on both client and server.
+ *
+ * Test 0: SSL_CTX_set0_CA_list() only
+ * Test 1: Both SSL_CTX_set0_CA_list() and SSL_CTX_set_client_CA_list()
+ * Test 2: Only SSL_CTX_set_client_CA_list()
+ */
+static int test_ca_names_int(int prot, int tst)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ size_t i;
+ X509_NAME *name[] = { NULL, NULL, NULL, NULL };
+ char *strnames[] = { "Jack", "Jill", "John", "Joanne" };
+ STACK_OF(X509_NAME) *sk1 = NULL, *sk2 = NULL;
+ const STACK_OF(X509_NAME) *sktmp = NULL;
+
+ for (i = 0; i < OSSL_NELEM(name); i++) {
+ name[i] = X509_NAME_new();
+ if (!TEST_ptr(name[i])
+ || !TEST_true(X509_NAME_add_entry_by_txt(name[i], "CN",
+ MBSTRING_ASC,
+ (unsigned char *)
+ strnames[i],
+ -1, -1, 0)))
+ goto end;
+ }
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(),
+ TLS_client_method(),
+ TLS1_VERSION,
+ prot,
+ &sctx, &cctx, cert, privkey)))
+ goto end;
+
+ SSL_CTX_set_verify(sctx, SSL_VERIFY_PEER, NULL);
+
+ if (tst == 0 || tst == 1) {
+ if (!TEST_ptr(sk1 = sk_X509_NAME_new_null())
+ || !TEST_true(sk_X509_NAME_push(sk1, X509_NAME_dup(name[0])))
+ || !TEST_true(sk_X509_NAME_push(sk1, X509_NAME_dup(name[1])))
+ || !TEST_ptr(sk2 = sk_X509_NAME_new_null())
+ || !TEST_true(sk_X509_NAME_push(sk2, X509_NAME_dup(name[0])))
+ || !TEST_true(sk_X509_NAME_push(sk2, X509_NAME_dup(name[1]))))
+ goto end;
+
+ SSL_CTX_set0_CA_list(sctx, sk1);
+ SSL_CTX_set0_CA_list(cctx, sk2);
+ sk1 = sk2 = NULL;
+ }
+ if (tst == 1 || tst == 2) {
+ if (!TEST_ptr(sk1 = sk_X509_NAME_new_null())
+ || !TEST_true(sk_X509_NAME_push(sk1, X509_NAME_dup(name[2])))
+ || !TEST_true(sk_X509_NAME_push(sk1, X509_NAME_dup(name[3])))
+ || !TEST_ptr(sk2 = sk_X509_NAME_new_null())
+ || !TEST_true(sk_X509_NAME_push(sk2, X509_NAME_dup(name[2])))
+ || !TEST_true(sk_X509_NAME_push(sk2, X509_NAME_dup(name[3]))))
+ goto end;
+
+ SSL_CTX_set_client_CA_list(sctx, sk1);
+ SSL_CTX_set_client_CA_list(cctx, sk2);
+ sk1 = sk2 = NULL;
+ }
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE)))
+ goto end;
+
+ /*
+ * We only expect certificate authorities to have been sent to the server
+ * if we are using TLSv1.3 and SSL_set0_CA_list() was used
+ */
+ sktmp = SSL_get0_peer_CA_list(serverssl);
+ if (prot == TLS1_3_VERSION
+ && (tst == 0 || tst == 1)) {
+ if (!TEST_ptr(sktmp)
+ || !TEST_int_eq(sk_X509_NAME_num(sktmp), 2)
+ || !TEST_int_eq(X509_NAME_cmp(sk_X509_NAME_value(sktmp, 0),
+ name[0]), 0)
+ || !TEST_int_eq(X509_NAME_cmp(sk_X509_NAME_value(sktmp, 1),
+ name[1]), 0))
+ goto end;
+ } else if (!TEST_ptr_null(sktmp)) {
+ goto end;
+ }
+
+ /*
+ * In all tests we expect certificate authorities to have been sent to the
+ * client. However, SSL_set_client_CA_list() should override
+ * SSL_set0_CA_list()
+ */
+ sktmp = SSL_get0_peer_CA_list(clientssl);
+ if (!TEST_ptr(sktmp)
+ || !TEST_int_eq(sk_X509_NAME_num(sktmp), 2)
+ || !TEST_int_eq(X509_NAME_cmp(sk_X509_NAME_value(sktmp, 0),
+ name[tst == 0 ? 0 : 2]), 0)
+ || !TEST_int_eq(X509_NAME_cmp(sk_X509_NAME_value(sktmp, 1),
+ name[tst == 0 ? 1 : 3]), 0))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ for (i = 0; i < OSSL_NELEM(name); i++)
+ X509_NAME_free(name[i]);
+ sk_X509_NAME_pop_free(sk1, X509_NAME_free);
+ sk_X509_NAME_pop_free(sk2, X509_NAME_free);
+
+ return testresult;
+}
+#endif
+
+static int test_ca_names(int tst)
+{
+ int testresult = 1;
+
+#ifndef OPENSSL_NO_TLS1_2
+ testresult &= test_ca_names_int(TLS1_2_VERSION, tst);
+#endif
+#ifndef OPENSSL_NO_TLS1_3
+ testresult &= test_ca_names_int(TLS1_3_VERSION, tst);
+#endif
+
+ return testresult;
+}
+
+/*
+ * Test 0: Client sets servername and server acknowledges it (TLSv1.2)
+ * Test 1: Client sets servername and server does not acknowledge it (TLSv1.2)
+ * Test 2: Client sets inconsistent servername on resumption (TLSv1.2)
+ * Test 3: Client does not set servername on initial handshake (TLSv1.2)
+ * Test 4: Client does not set servername on resumption handshake (TLSv1.2)
+ * Test 5: Client sets servername and server acknowledges it (TLSv1.3)
+ * Test 6: Client sets servername and server does not acknowledge it (TLSv1.3)
+ * Test 7: Client sets inconsistent servername on resumption (TLSv1.3)
+ * Test 8: Client does not set servername on initial handshake(TLSv1.3)
+ * Test 9: Client does not set servername on resumption handshake (TLSv1.3)
+ */
+static int test_servername(int tst)
+{
+ SSL_CTX *cctx = NULL, *sctx = NULL;
+ SSL *clientssl = NULL, *serverssl = NULL;
+ int testresult = 0;
+ SSL_SESSION *sess = NULL;
+ const char *sexpectedhost = NULL, *cexpectedhost = NULL;
+
+#ifdef OPENSSL_NO_TLS1_2
+ if (tst <= 4)
+ return 1;
+#endif
+#ifdef OPENSSL_NO_TLS1_3
+ if (tst >= 5)
+ return 1;
+#endif
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(),
+ TLS_client_method(),
+ TLS1_VERSION,
+ (tst <= 4) ? TLS1_2_VERSION
+ : TLS1_3_VERSION,
+ &sctx, &cctx, cert, privkey))
+ || !TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL)))
+ goto end;
+
+ if (tst != 1 && tst != 6) {
+ if (!TEST_true(SSL_CTX_set_tlsext_servername_callback(sctx,
+ hostname_cb)))
+ goto end;
+ }
+
+ if (tst != 3 && tst != 8) {
+ if (!TEST_true(SSL_set_tlsext_host_name(clientssl, "goodhost")))
+ goto end;
+ sexpectedhost = cexpectedhost = "goodhost";
+ }
+
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl, SSL_ERROR_NONE)))
+ goto end;
+
+ if (!TEST_str_eq(SSL_get_servername(clientssl, TLSEXT_NAMETYPE_host_name),
+ cexpectedhost)
+ || !TEST_str_eq(SSL_get_servername(serverssl,
+ TLSEXT_NAMETYPE_host_name),
+ sexpectedhost))
+ goto end;
+
+ /* Now repeat with a resumption handshake */
+
+ if (!TEST_int_eq(SSL_shutdown(clientssl), 0)
+ || !TEST_ptr_ne(sess = SSL_get1_session(clientssl), NULL)
+ || !TEST_true(SSL_SESSION_is_resumable(sess))
+ || !TEST_int_eq(SSL_shutdown(serverssl), 0))
+ goto end;
+
+ SSL_free(clientssl);
+ SSL_free(serverssl);
+ clientssl = serverssl = NULL;
+
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl, NULL,
+ NULL)))
+ goto end;
+
+ if (!TEST_true(SSL_set_session(clientssl, sess)))
+ goto end;
+
+ sexpectedhost = cexpectedhost = "goodhost";
+ if (tst == 2 || tst == 7) {
+ /* Set an inconsistent hostname */
+ if (!TEST_true(SSL_set_tlsext_host_name(clientssl, "altgoodhost")))
+ goto end;
+ /*
+ * In TLSv1.2 we expect the hostname from the original handshake, in
+ * TLSv1.3 we expect the hostname from this handshake
+ */
+ if (tst == 7)
+ sexpectedhost = cexpectedhost = "altgoodhost";
+
+ if (!TEST_str_eq(SSL_get_servername(clientssl,
+ TLSEXT_NAMETYPE_host_name),
+ "altgoodhost"))
+ goto end;
+ } else if (tst == 4 || tst == 9) {
+ /*
+ * A TLSv1.3 session does not associate a session with a servername,
+ * but a TLSv1.2 session does.
+ */
+ if (tst == 9)
+ sexpectedhost = cexpectedhost = NULL;
+
+ if (!TEST_str_eq(SSL_get_servername(clientssl,
+ TLSEXT_NAMETYPE_host_name),
+ cexpectedhost))
+ goto end;
+ } else {
+ if (!TEST_true(SSL_set_tlsext_host_name(clientssl, "goodhost")))
+ goto end;
+ /*
+ * In a TLSv1.2 resumption where the hostname was not acknowledged
+ * we expect the hostname on the server to be empty. On the client we
+ * return what was requested in this case.
+ *
+ * Similarly if the client didn't set a hostname on an original TLSv1.2
+ * session but is now, the server hostname will be empty, but the client
+ * is as we set it.
+ */
+ if (tst == 1 || tst == 3)
+ sexpectedhost = NULL;
+
+ if (!TEST_str_eq(SSL_get_servername(clientssl,
+ TLSEXT_NAMETYPE_host_name),
+ "goodhost"))
+ goto end;
+ }
+
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl, SSL_ERROR_NONE)))
+ goto end;
+
+ if (!TEST_true(SSL_session_reused(clientssl))
+ || !TEST_true(SSL_session_reused(serverssl))
+ || !TEST_str_eq(SSL_get_servername(clientssl,
+ TLSEXT_NAMETYPE_host_name),
+ cexpectedhost)
+ || !TEST_str_eq(SSL_get_servername(serverssl,
+ TLSEXT_NAMETYPE_host_name),
+ sexpectedhost))
+ goto end;
+
+ testresult = 1;
+
+ end:
+ SSL_SESSION_free(sess);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return testresult;
+}
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(certsdir = test_get_argument(0))
+ || !TEST_ptr(srpvfile = test_get_argument(1))
+ || !TEST_ptr(tmpfilename = test_get_argument(2)))
+ return 0;
+
+ if (getenv("OPENSSL_TEST_GETCOUNTS") != NULL) {
+#ifdef OPENSSL_NO_CRYPTO_MDEBUG
+ TEST_error("not supported in this build");
+ return 0;
+#else
+ int i, mcount, rcount, fcount;
+
+ for (i = 0; i < 4; i++)
+ test_export_key_mat(i);
+ CRYPTO_get_alloc_counts(&mcount, &rcount, &fcount);
+ test_printf_stdout("malloc %d realloc %d free %d\n",
+ mcount, rcount, fcount);
+ return 1;
+#endif
+ }
+
+ cert = test_mk_file_path(certsdir, "servercert.pem");
+ if (cert == NULL)
+ return 0;
+
+ privkey = test_mk_file_path(certsdir, "serverkey.pem");
+ if (privkey == NULL) {
+ OPENSSL_free(cert);
+ return 0;
+ }
+
+ ADD_TEST(test_large_message_tls);
+ ADD_TEST(test_large_message_tls_read_ahead);
+#ifndef OPENSSL_NO_DTLS
+ ADD_TEST(test_large_message_dtls);
+#endif
+#ifndef OPENSSL_NO_OCSP
+ ADD_TEST(test_tlsext_status_type);
+#endif
+ ADD_TEST(test_session_with_only_int_cache);
+ ADD_TEST(test_session_with_only_ext_cache);
+ ADD_TEST(test_session_with_both_cache);
+#ifndef OPENSSL_NO_TLS1_3
+ ADD_ALL_TESTS(test_stateful_tickets, 3);
+ ADD_ALL_TESTS(test_stateless_tickets, 3);
+ ADD_TEST(test_psk_tickets);
+#endif
+ ADD_ALL_TESTS(test_ssl_set_bio, TOTAL_SSL_SET_BIO_TESTS);
+ ADD_TEST(test_ssl_bio_pop_next_bio);
+ ADD_TEST(test_ssl_bio_pop_ssl_bio);
+ ADD_TEST(test_ssl_bio_change_rbio);
+ ADD_TEST(test_ssl_bio_change_wbio);
+#if !defined(OPENSSL_NO_TLS1_2) || defined(OPENSSL_NO_TLS1_3)
+ ADD_ALL_TESTS(test_set_sigalgs, OSSL_NELEM(testsigalgs) * 2);
+ ADD_TEST(test_keylog);
+#endif
+#ifndef OPENSSL_NO_TLS1_3
+ ADD_TEST(test_keylog_no_master_key);
+#endif
+#ifndef OPENSSL_NO_TLS1_2
+ ADD_TEST(test_client_hello_cb);
+ ADD_TEST(test_ccs_change_cipher);
+#endif
+#ifndef OPENSSL_NO_TLS1_3
+ ADD_ALL_TESTS(test_early_data_read_write, 3);
+ /*
+ * We don't do replay tests for external PSK. Replay protection isn't used
+ * in that scenario.
+ */
+ ADD_ALL_TESTS(test_early_data_replay, 2);
+ ADD_ALL_TESTS(test_early_data_skip, 3);
+ ADD_ALL_TESTS(test_early_data_skip_hrr, 3);
+ ADD_ALL_TESTS(test_early_data_skip_hrr_fail, 3);
+ ADD_ALL_TESTS(test_early_data_skip_abort, 3);
+ ADD_ALL_TESTS(test_early_data_not_sent, 3);
+ ADD_ALL_TESTS(test_early_data_psk, 8);
+ ADD_ALL_TESTS(test_early_data_not_expected, 3);
+# ifndef OPENSSL_NO_TLS1_2
+ ADD_ALL_TESTS(test_early_data_tls1_2, 3);
+# endif
+#endif
+#ifndef OPENSSL_NO_TLS1_3
+ ADD_ALL_TESTS(test_set_ciphersuite, 10);
+ ADD_TEST(test_ciphersuite_change);
+ ADD_ALL_TESTS(test_tls13_ciphersuite, 4);
+#ifdef OPENSSL_NO_PSK
+ ADD_ALL_TESTS(test_tls13_psk, 1);
+#else
+ ADD_ALL_TESTS(test_tls13_psk, 4);
+#endif /* OPENSSL_NO_PSK */
+ ADD_ALL_TESTS(test_custom_exts, 5);
+ ADD_TEST(test_stateless);
+ ADD_TEST(test_pha_key_update);
+#else
+ ADD_ALL_TESTS(test_custom_exts, 3);
+#endif
+ ADD_ALL_TESTS(test_serverinfo, 8);
+ ADD_ALL_TESTS(test_export_key_mat, 6);
+#ifndef OPENSSL_NO_TLS1_3
+ ADD_ALL_TESTS(test_export_key_mat_early, 3);
+ ADD_TEST(test_key_update);
+ ADD_ALL_TESTS(test_key_update_in_write, 2);
+#endif
+ ADD_ALL_TESTS(test_ssl_clear, 2);
+ ADD_ALL_TESTS(test_max_fragment_len_ext, OSSL_NELEM(max_fragment_len_test));
+#if !defined(OPENSSL_NO_SRP) && !defined(OPENSSL_NO_TLS1_2)
+ ADD_ALL_TESTS(test_srp, 6);
+#endif
+ ADD_ALL_TESTS(test_info_callback, 6);
+ ADD_ALL_TESTS(test_ssl_pending, 2);
+ ADD_ALL_TESTS(test_ssl_get_shared_ciphers, OSSL_NELEM(shared_ciphers_data));
+ ADD_ALL_TESTS(test_ticket_callbacks, 12);
+ ADD_ALL_TESTS(test_shutdown, 7);
+ ADD_ALL_TESTS(test_cert_cb, 6);
+ ADD_ALL_TESTS(test_client_cert_cb, 2);
+ ADD_ALL_TESTS(test_ca_names, 3);
+ ADD_ALL_TESTS(test_servername, 10);
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+ OPENSSL_free(cert);
+ OPENSSL_free(privkey);
+ bio_s_mempacket_test_free();
+ bio_s_always_retry_free();
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sslbuffertest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sslbuffertest.c
new file mode 100644
index 000000000..b5f815f7d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sslbuffertest.c
@@ -0,0 +1,183 @@
+/*
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL licenses, (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * https://www.openssl.org/source/license.html
+ * or in the file LICENSE in the source distribution.
+ */
+
+#include <string.h>
+#include <openssl/ssl.h>
+#include <openssl/bio.h>
+#include <openssl/err.h>
+
+#include "../ssl/packet_local.h"
+
+#include "ssltestlib.h"
+#include "testutil.h"
+
+struct async_ctrs {
+ unsigned int rctr;
+ unsigned int wctr;
+};
+
+static SSL_CTX *serverctx = NULL;
+static SSL_CTX *clientctx = NULL;
+
+#define MAX_ATTEMPTS 100
+
+
+/*
+ * There are 9 passes in the tests
+ * 0 = control test
+ * tests during writes
+ * 1 = free buffers
+ * 2 = + allocate buffers after free
+ * 3 = + allocate buffers again
+ * 4 = + free buffers after allocation
+ * tests during reads
+ * 5 = + free buffers
+ * 6 = + free buffers again
+ * 7 = + allocate buffers after free
+ * 8 = + free buffers after allocation
+ */
+static int test_func(int test)
+{
+ int result = 0;
+ SSL *serverssl = NULL, *clientssl = NULL;
+ int ret;
+ size_t i, j;
+ const char testdata[] = "Test data";
+ char buf[sizeof(testdata)];
+
+ if (!TEST_true(create_ssl_objects(serverctx, clientctx, &serverssl, &clientssl,
+ NULL, NULL))) {
+ TEST_error("Test %d failed: Create SSL objects failed\n", test);
+ goto end;
+ }
+
+ if (!TEST_true(create_ssl_connection(serverssl, clientssl, SSL_ERROR_NONE))) {
+ TEST_error("Test %d failed: Create SSL connection failed\n", test);
+ goto end;
+ }
+
+ /*
+ * Send and receive some test data. Do the whole thing twice to ensure
+ * we hit at least one async event in both reading and writing
+ */
+ for (j = 0; j < 2; j++) {
+ int len;
+
+ /*
+
+ * Write some test data. It should never take more than 2 attempts
+ * (the first one might be a retryable fail).
+ */
+ for (ret = -1, i = 0, len = 0; len != sizeof(testdata) && i < 2;
+ i++) {
+ /* test == 0 mean to free/allocate = control */
+ if (test >= 1 && !TEST_true(SSL_free_buffers(clientssl)))
+ goto end;
+ if (test >= 2 && !TEST_true(SSL_alloc_buffers(clientssl)))
+ goto end;
+ /* allocate a second time */
+ if (test >= 3 && !TEST_true(SSL_alloc_buffers(clientssl)))
+ goto end;
+ if (test >= 4 && !TEST_true(SSL_free_buffers(clientssl)))
+ goto end;
+
+ ret = SSL_write(clientssl, testdata + len,
+ sizeof(testdata) - len);
+ if (ret > 0) {
+ len += ret;
+ } else {
+ int ssl_error = SSL_get_error(clientssl, ret);
+
+ if (ssl_error == SSL_ERROR_SYSCALL ||
+ ssl_error == SSL_ERROR_SSL) {
+ TEST_error("Test %d failed: Failed to write app data\n", test);
+ goto end;
+ }
+ }
+ }
+ if (!TEST_size_t_eq(len, sizeof(testdata)))
+ goto end;
+ /*
+ * Now read the test data. It may take more attempts here because
+ * it could fail once for each byte read, including all overhead
+ * bytes from the record header/padding etc.
+ */
+ for (ret = -1, i = 0, len = 0; len != sizeof(testdata) &&
+ i < MAX_ATTEMPTS; i++)
+ {
+ if (test >= 5 && !TEST_true(SSL_free_buffers(serverssl)))
+ goto end;
+ /* free a second time */
+ if (test >= 6 && !TEST_true(SSL_free_buffers(serverssl)))
+ goto end;
+ if (test >= 7 && !TEST_true(SSL_alloc_buffers(serverssl)))
+ goto end;
+ if (test >= 8 && !TEST_true(SSL_free_buffers(serverssl)))
+ goto end;
+
+ ret = SSL_read(serverssl, buf + len, sizeof(buf) - len);
+ if (ret > 0) {
+ len += ret;
+ } else {
+ int ssl_error = SSL_get_error(serverssl, ret);
+
+ if (ssl_error == SSL_ERROR_SYSCALL ||
+ ssl_error == SSL_ERROR_SSL) {
+ TEST_error("Test %d failed: Failed to read app data\n", test);
+ goto end;
+ }
+ }
+ }
+ if (!TEST_mem_eq(buf, len, testdata, sizeof(testdata)))
+ goto end;
+ }
+
+ result = 1;
+ end:
+ if (!result)
+ ERR_print_errors_fp(stderr);
+
+ SSL_free(clientssl);
+ SSL_free(serverssl);
+
+ return result;
+}
+
+int global_init(void)
+{
+ CRYPTO_set_mem_debug(1);
+ CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
+ return 1;
+}
+
+int setup_tests(void)
+{
+ char *cert, *pkey;
+
+ if (!TEST_ptr(cert = test_get_argument(0))
+ || !TEST_ptr(pkey = test_get_argument(1)))
+ return 0;
+
+ if (!create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &serverctx, &clientctx, cert, pkey)) {
+ TEST_error("Failed to create SSL_CTX pair\n");
+ return 0;
+ }
+
+ ADD_ALL_TESTS(test_func, 9);
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+ SSL_CTX_free(clientctx);
+ SSL_CTX_free(serverctx);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sslcorrupttest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sslcorrupttest.c
new file mode 100644
index 000000000..d06c8c729
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sslcorrupttest.c
@@ -0,0 +1,267 @@
+/*
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+#include "ssltestlib.h"
+#include "testutil.h"
+
+static int docorrupt = 0;
+
+static void copy_flags(BIO *bio)
+{
+ int flags;
+ BIO *next = BIO_next(bio);
+
+ flags = BIO_test_flags(next, BIO_FLAGS_SHOULD_RETRY | BIO_FLAGS_RWS);
+ BIO_clear_flags(bio, BIO_FLAGS_SHOULD_RETRY | BIO_FLAGS_RWS);
+ BIO_set_flags(bio, flags);
+}
+
+static int tls_corrupt_read(BIO *bio, char *out, int outl)
+{
+ int ret;
+ BIO *next = BIO_next(bio);
+
+ ret = BIO_read(next, out, outl);
+ copy_flags(bio);
+
+ return ret;
+}
+
+static int tls_corrupt_write(BIO *bio, const char *in, int inl)
+{
+ int ret;
+ BIO *next = BIO_next(bio);
+ char *copy;
+
+ if (docorrupt) {
+ if (!TEST_ptr(copy = BUF_memdup(in, inl)))
+ return 0;
+ /* corrupt last bit of application data */
+ copy[inl-1] ^= 1;
+ ret = BIO_write(next, copy, inl);
+ OPENSSL_free(copy);
+ } else {
+ ret = BIO_write(next, in, inl);
+ }
+ copy_flags(bio);
+
+ return ret;
+}
+
+static long tls_corrupt_ctrl(BIO *bio, int cmd, long num, void *ptr)
+{
+ long ret;
+ BIO *next = BIO_next(bio);
+
+ if (next == NULL)
+ return 0;
+
+ switch (cmd) {
+ case BIO_CTRL_DUP:
+ ret = 0L;
+ break;
+ default:
+ ret = BIO_ctrl(next, cmd, num, ptr);
+ break;
+ }
+ return ret;
+}
+
+static int tls_corrupt_gets(BIO *bio, char *buf, int size)
+{
+ /* We don't support this - not needed anyway */
+ return -1;
+}
+
+static int tls_corrupt_puts(BIO *bio, const char *str)
+{
+ /* We don't support this - not needed anyway */
+ return -1;
+}
+
+static int tls_corrupt_new(BIO *bio)
+{
+ BIO_set_init(bio, 1);
+
+ return 1;
+}
+
+static int tls_corrupt_free(BIO *bio)
+{
+ BIO_set_init(bio, 0);
+
+ return 1;
+}
+
+#define BIO_TYPE_CUSTOM_FILTER (0x80 | BIO_TYPE_FILTER)
+
+static BIO_METHOD *method_tls_corrupt = NULL;
+
+/* Note: Not thread safe! */
+static const BIO_METHOD *bio_f_tls_corrupt_filter(void)
+{
+ if (method_tls_corrupt == NULL) {
+ method_tls_corrupt = BIO_meth_new(BIO_TYPE_CUSTOM_FILTER,
+ "TLS corrupt filter");
+ if ( method_tls_corrupt == NULL
+ || !BIO_meth_set_write(method_tls_corrupt, tls_corrupt_write)
+ || !BIO_meth_set_read(method_tls_corrupt, tls_corrupt_read)
+ || !BIO_meth_set_puts(method_tls_corrupt, tls_corrupt_puts)
+ || !BIO_meth_set_gets(method_tls_corrupt, tls_corrupt_gets)
+ || !BIO_meth_set_ctrl(method_tls_corrupt, tls_corrupt_ctrl)
+ || !BIO_meth_set_create(method_tls_corrupt, tls_corrupt_new)
+ || !BIO_meth_set_destroy(method_tls_corrupt, tls_corrupt_free))
+ return NULL;
+ }
+ return method_tls_corrupt;
+}
+
+static void bio_f_tls_corrupt_filter_free(void)
+{
+ BIO_meth_free(method_tls_corrupt);
+}
+
+/*
+ * The test is supposed to be executed with RSA key, customarily
+ * with apps/server.pem used even in other tests. For this reason
+ * |cipher_list| is initialized with RSA ciphers' names. This
+ * naturally means that if test is to be re-purposed for other
+ * type of key, then NID_auth_* filter below would need adjustment.
+ */
+static const char **cipher_list = NULL;
+
+static int setup_cipher_list(void)
+{
+ SSL_CTX *ctx = NULL;
+ SSL *ssl = NULL;
+ STACK_OF(SSL_CIPHER) *sk_ciphers = NULL;
+ int i, j, numciphers = 0;
+
+ if (!TEST_ptr(ctx = SSL_CTX_new(TLS_server_method()))
+ || !TEST_ptr(ssl = SSL_new(ctx))
+ || !TEST_ptr(sk_ciphers = SSL_get1_supported_ciphers(ssl)))
+ goto err;
+
+ /*
+ * The |cipher_list| will be filled only with names of RSA ciphers,
+ * so that some of the allocated space will be wasted, but the loss
+ * is deemed acceptable...
+ */
+ cipher_list = OPENSSL_malloc(sk_SSL_CIPHER_num(sk_ciphers) *
+ sizeof(cipher_list[0]));
+ if (!TEST_ptr(cipher_list))
+ goto err;
+
+ for (j = 0, i = 0; i < sk_SSL_CIPHER_num(sk_ciphers); i++) {
+ const SSL_CIPHER *cipher = sk_SSL_CIPHER_value(sk_ciphers, i);
+
+ if (SSL_CIPHER_get_auth_nid(cipher) == NID_auth_rsa)
+ cipher_list[j++] = SSL_CIPHER_get_name(cipher);
+ }
+ if (TEST_int_ne(j, 0))
+ numciphers = j;
+
+err:
+ sk_SSL_CIPHER_free(sk_ciphers);
+ SSL_free(ssl);
+ SSL_CTX_free(ctx);
+
+ return numciphers;
+}
+
+static char *cert = NULL;
+static char *privkey = NULL;
+
+static int test_ssl_corrupt(int testidx)
+{
+ static unsigned char junk[16000] = { 0 };
+ SSL_CTX *sctx = NULL, *cctx = NULL;
+ SSL *server = NULL, *client = NULL;
+ BIO *c_to_s_fbio;
+ int testresult = 0;
+ STACK_OF(SSL_CIPHER) *ciphers;
+ const SSL_CIPHER *currcipher;
+
+ docorrupt = 0;
+
+ TEST_info("Starting #%d, %s", testidx, cipher_list[testidx]);
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ return 0;
+
+ if (!TEST_true(SSL_CTX_set_cipher_list(cctx, cipher_list[testidx]))
+ || !TEST_true(SSL_CTX_set_ciphersuites(cctx, ""))
+ || !TEST_ptr(ciphers = SSL_CTX_get_ciphers(cctx))
+ || !TEST_int_eq(sk_SSL_CIPHER_num(ciphers), 1)
+ || !TEST_ptr(currcipher = sk_SSL_CIPHER_value(ciphers, 0)))
+ goto end;
+
+ /*
+ * No ciphers we are using are TLSv1.3 compatible so we should not attempt
+ * to negotiate TLSv1.3
+ */
+ if (!TEST_true(SSL_CTX_set_max_proto_version(cctx, TLS1_2_VERSION)))
+ goto end;
+
+ if (!TEST_ptr(c_to_s_fbio = BIO_new(bio_f_tls_corrupt_filter())))
+ goto end;
+
+ /* BIO is freed by create_ssl_connection on error */
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &server, &client, NULL,
+ c_to_s_fbio)))
+ goto end;
+
+ if (!TEST_true(create_ssl_connection(server, client, SSL_ERROR_NONE)))
+ goto end;
+
+ docorrupt = 1;
+
+ if (!TEST_int_ge(SSL_write(client, junk, sizeof(junk)), 0))
+ goto end;
+
+ if (!TEST_int_lt(SSL_read(server, junk, sizeof(junk)), 0))
+ goto end;
+
+ if (!TEST_int_eq(ERR_GET_REASON(ERR_peek_error()),
+ SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC))
+ goto end;
+
+ testresult = 1;
+ end:
+ SSL_free(server);
+ SSL_free(client);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+ return testresult;
+}
+
+int setup_tests(void)
+{
+ int n;
+
+ if (!TEST_ptr(cert = test_get_argument(0))
+ || !TEST_ptr(privkey = test_get_argument(1))) {
+ TEST_note("Usage error: require cert and private key files");
+ return 0;
+ }
+
+ n = setup_cipher_list();
+ if (n > 0)
+ ADD_ALL_TESTS(test_ssl_corrupt, n);
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+ bio_f_tls_corrupt_filter_free();
+ OPENSSL_free(cipher_list);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssltest_old.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssltest_old.c
new file mode 100644
index 000000000..36e6031f3
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssltest_old.c
@@ -0,0 +1,3087 @@
+/*
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
+ * Copyright 2005 Nokia. All rights reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "e_os.h"
+
+/* Or gethostname won't be declared properly on Linux and GNU platforms. */
+#ifndef _BSD_SOURCE
+# define _BSD_SOURCE 1
+#endif
+#ifndef _DEFAULT_SOURCE
+# define _DEFAULT_SOURCE 1
+#endif
+
+#include <assert.h>
+#include <errno.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+#include "internal/nelem.h"
+
+#ifdef OPENSSL_SYS_VMS
+/*
+ * Or isascii won't be declared properly on VMS (at least with DECompHP C).
+ */
+# define _XOPEN_SOURCE 500
+#endif
+
+#include <ctype.h>
+
+#include <openssl/bio.h>
+#include <openssl/crypto.h>
+#include <openssl/evp.h>
+#include <openssl/x509.h>
+#include <openssl/x509v3.h>
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+#include <openssl/rand.h>
+#ifndef OPENSSL_NO_RSA
+# include <openssl/rsa.h>
+#endif
+#ifndef OPENSSL_NO_DSA
+# include <openssl/dsa.h>
+#endif
+#ifndef OPENSSL_NO_DH
+# include <openssl/dh.h>
+#endif
+#include <openssl/bn.h>
+#ifndef OPENSSL_NO_CT
+# include <openssl/ct.h>
+#endif
+
+/*
+ * Or gethostname won't be declared properly
+ * on Compaq platforms (at least with DEC C).
+ * Do not try to put it earlier, or IPv6 includes
+ * get screwed...
+ */
+#define _XOPEN_SOURCE_EXTENDED 1
+
+#ifdef OPENSSL_SYS_WINDOWS
+# include <winsock.h>
+#else
+# include OPENSSL_UNISTD
+#endif
+
+static SSL_CTX *s_ctx = NULL;
+static SSL_CTX *s_ctx2 = NULL;
+
+/*
+ * There is really no standard for this, so let's assign something
+ * only for this test
+ */
+#define COMP_ZLIB 1
+
+static int verify_callback(int ok, X509_STORE_CTX *ctx);
+static int app_verify_callback(X509_STORE_CTX *ctx, void *arg);
+#define APP_CALLBACK_STRING "Test Callback Argument"
+struct app_verify_arg {
+ char *string;
+ int app_verify;
+};
+
+#ifndef OPENSSL_NO_DH
+static DH *get_dh512(void);
+static DH *get_dh1024(void);
+static DH *get_dh1024dsa(void);
+#endif
+
+static char *psk_key = NULL; /* by default PSK is not used */
+#ifndef OPENSSL_NO_PSK
+static unsigned int psk_client_callback(SSL *ssl, const char *hint,
+ char *identity,
+ unsigned int max_identity_len,
+ unsigned char *psk,
+ unsigned int max_psk_len);
+static unsigned int psk_server_callback(SSL *ssl, const char *identity,
+ unsigned char *psk,
+ unsigned int max_psk_len);
+#endif
+
+static BIO *bio_err = NULL;
+static BIO *bio_stdout = NULL;
+
+#ifndef OPENSSL_NO_NEXTPROTONEG
+/* Note that this code assumes that this is only a one element list: */
+static const char NEXT_PROTO_STRING[] = "\x09testproto";
+static int npn_client = 0;
+static int npn_server = 0;
+static int npn_server_reject = 0;
+
+static int cb_client_npn(SSL *s, unsigned char **out, unsigned char *outlen,
+ const unsigned char *in, unsigned int inlen,
+ void *arg)
+{
+ /*
+ * This callback only returns the protocol string, rather than a length
+ * prefixed set. We assume that NEXT_PROTO_STRING is a one element list
+ * and remove the first byte to chop off the length prefix.
+ */
+ *out = (unsigned char *)NEXT_PROTO_STRING + 1;
+ *outlen = sizeof(NEXT_PROTO_STRING) - 2;
+ return SSL_TLSEXT_ERR_OK;
+}
+
+static int cb_server_npn(SSL *s, const unsigned char **data,
+ unsigned int *len, void *arg)
+{
+ *data = (const unsigned char *)NEXT_PROTO_STRING;
+ *len = sizeof(NEXT_PROTO_STRING) - 1;
+ return SSL_TLSEXT_ERR_OK;
+}
+
+static int cb_server_rejects_npn(SSL *s, const unsigned char **data,
+ unsigned int *len, void *arg)
+{
+ return SSL_TLSEXT_ERR_NOACK;
+}
+
+static int verify_npn(SSL *client, SSL *server)
+{
+ const unsigned char *client_s;
+ unsigned client_len;
+ const unsigned char *server_s;
+ unsigned server_len;
+
+ SSL_get0_next_proto_negotiated(client, &client_s, &client_len);
+ SSL_get0_next_proto_negotiated(server, &server_s, &server_len);
+
+ if (client_len) {
+ BIO_printf(bio_stdout, "Client NPN: ");
+ BIO_write(bio_stdout, client_s, client_len);
+ BIO_printf(bio_stdout, "\n");
+ }
+
+ if (server_len) {
+ BIO_printf(bio_stdout, "Server NPN: ");
+ BIO_write(bio_stdout, server_s, server_len);
+ BIO_printf(bio_stdout, "\n");
+ }
+
+ /*
+ * If an NPN string was returned, it must be the protocol that we
+ * expected to negotiate.
+ */
+ if (client_len && (client_len != sizeof(NEXT_PROTO_STRING) - 2 ||
+ memcmp(client_s, NEXT_PROTO_STRING + 1, client_len)))
+ return -1;
+ if (server_len && (server_len != sizeof(NEXT_PROTO_STRING) - 2 ||
+ memcmp(server_s, NEXT_PROTO_STRING + 1, server_len)))
+ return -1;
+
+ if (!npn_client && client_len)
+ return -1;
+ if (!npn_server && server_len)
+ return -1;
+ if (npn_server_reject && server_len)
+ return -1;
+ if (npn_client && npn_server && (!client_len || !server_len))
+ return -1;
+
+ return 0;
+}
+#endif
+
+static const char *alpn_client;
+static char *alpn_server;
+static char *alpn_server2;
+static const char *alpn_expected;
+static unsigned char *alpn_selected;
+static const char *server_min_proto;
+static const char *server_max_proto;
+static const char *client_min_proto;
+static const char *client_max_proto;
+static const char *should_negotiate;
+static const char *sn_client;
+static const char *sn_server1;
+static const char *sn_server2;
+static int sn_expect = 0;
+static const char *server_sess_out;
+static const char *server_sess_in;
+static const char *client_sess_out;
+static const char *client_sess_in;
+static SSL_SESSION *server_sess;
+static SSL_SESSION *client_sess;
+
+static int servername_cb(SSL *s, int *ad, void *arg)
+{
+ const char *servername = SSL_get_servername(s, TLSEXT_NAMETYPE_host_name);
+ if (sn_server2 == NULL) {
+ BIO_printf(bio_stdout, "Servername 2 is NULL\n");
+ return SSL_TLSEXT_ERR_NOACK;
+ }
+
+ if (servername) {
+ if (s_ctx2 != NULL && sn_server2 != NULL &&
+ !strcasecmp(servername, sn_server2)) {
+ BIO_printf(bio_stdout, "Switching server context.\n");
+ SSL_set_SSL_CTX(s, s_ctx2);
+ }
+ }
+ return SSL_TLSEXT_ERR_OK;
+}
+static int verify_servername(SSL *client, SSL *server)
+{
+ /* just need to see if sn_context is what we expect */
+ SSL_CTX* ctx = SSL_get_SSL_CTX(server);
+ if (sn_expect == 0)
+ return 0;
+ if (sn_expect == 1 && ctx == s_ctx)
+ return 0;
+ if (sn_expect == 2 && ctx == s_ctx2)
+ return 0;
+ BIO_printf(bio_stdout, "Servername: expected context %d\n", sn_expect);
+ if (ctx == s_ctx2)
+ BIO_printf(bio_stdout, "Servername: context is 2\n");
+ else if (ctx == s_ctx)
+ BIO_printf(bio_stdout, "Servername: context is 1\n");
+ else
+ BIO_printf(bio_stdout, "Servername: context is unknown\n");
+ return -1;
+}
+
+
+/*-
+ * next_protos_parse parses a comma separated list of strings into a string
+ * in a format suitable for passing to SSL_CTX_set_next_protos_advertised.
+ * outlen: (output) set to the length of the resulting buffer on success.
+ * in: a NUL terminated string like "abc,def,ghi"
+ *
+ * returns: a malloced buffer or NULL on failure.
+ */
+static unsigned char *next_protos_parse(size_t *outlen,
+ const char *in)
+{
+ size_t len;
+ unsigned char *out;
+ size_t i, start = 0;
+
+ len = strlen(in);
+ if (len >= 65535)
+ return NULL;
+
+ out = OPENSSL_malloc(strlen(in) + 1);
+ if (!out)
+ return NULL;
+
+ for (i = 0; i <= len; ++i) {
+ if (i == len || in[i] == ',') {
+ if (i - start > 255) {
+ OPENSSL_free(out);
+ return NULL;
+ }
+ out[start] = (unsigned char)(i - start);
+ start = i + 1;
+ } else
+ out[i + 1] = in[i];
+ }
+
+ *outlen = len + 1;
+ return out;
+}
+
+static int cb_server_alpn(SSL *s, const unsigned char **out,
+ unsigned char *outlen, const unsigned char *in,
+ unsigned int inlen, void *arg)
+{
+ unsigned char *protos;
+ size_t protos_len;
+ char* alpn_str = arg;
+
+ protos = next_protos_parse(&protos_len, alpn_str);
+ if (protos == NULL) {
+ fprintf(stderr, "failed to parser ALPN server protocol string: %s\n",
+ alpn_str);
+ abort();
+ }
+
+ if (SSL_select_next_proto
+ ((unsigned char **)out, outlen, protos, protos_len, in,
+ inlen) != OPENSSL_NPN_NEGOTIATED) {
+ OPENSSL_free(protos);
+ return SSL_TLSEXT_ERR_NOACK;
+ }
+
+ /*
+ * Make a copy of the selected protocol which will be freed in
+ * verify_alpn.
+ */
+ alpn_selected = OPENSSL_malloc(*outlen);
+ memcpy(alpn_selected, *out, *outlen);
+ *out = alpn_selected;
+
+ OPENSSL_free(protos);
+ return SSL_TLSEXT_ERR_OK;
+}
+
+static int verify_alpn(SSL *client, SSL *server)
+{
+ const unsigned char *client_proto, *server_proto;
+ unsigned int client_proto_len = 0, server_proto_len = 0;
+ SSL_get0_alpn_selected(client, &client_proto, &client_proto_len);
+ SSL_get0_alpn_selected(server, &server_proto, &server_proto_len);
+
+ OPENSSL_free(alpn_selected);
+ alpn_selected = NULL;
+
+ if (client_proto_len != server_proto_len) {
+ BIO_printf(bio_stdout, "ALPN selected protocols differ!\n");
+ goto err;
+ }
+
+ if (client_proto != NULL &&
+ memcmp(client_proto, server_proto, client_proto_len) != 0) {
+ BIO_printf(bio_stdout, "ALPN selected protocols differ!\n");
+ goto err;
+ }
+
+ if (client_proto_len > 0 && alpn_expected == NULL) {
+ BIO_printf(bio_stdout, "ALPN unexpectedly negotiated\n");
+ goto err;
+ }
+
+ if (alpn_expected != NULL &&
+ (client_proto_len != strlen(alpn_expected) ||
+ memcmp(client_proto, alpn_expected, client_proto_len) != 0)) {
+ BIO_printf(bio_stdout,
+ "ALPN selected protocols not equal to expected protocol: %s\n",
+ alpn_expected);
+ goto err;
+ }
+
+ return 0;
+
+ err:
+ BIO_printf(bio_stdout, "ALPN results: client: '");
+ BIO_write(bio_stdout, client_proto, client_proto_len);
+ BIO_printf(bio_stdout, "', server: '");
+ BIO_write(bio_stdout, server_proto, server_proto_len);
+ BIO_printf(bio_stdout, "'\n");
+ BIO_printf(bio_stdout, "ALPN configured: client: '%s', server: '",
+ alpn_client);
+ if (SSL_get_SSL_CTX(server) == s_ctx2) {
+ BIO_printf(bio_stdout, "%s'\n",
+ alpn_server2);
+ } else {
+ BIO_printf(bio_stdout, "%s'\n",
+ alpn_server);
+ }
+ return -1;
+}
+
+/*
+ * WARNING : below extension types are *NOT* IETF assigned, and could
+ * conflict if these types are reassigned and handled specially by OpenSSL
+ * in the future
+ */
+#define TACK_EXT_TYPE 62208
+#define CUSTOM_EXT_TYPE_0 1000
+#define CUSTOM_EXT_TYPE_1 1001
+#define CUSTOM_EXT_TYPE_2 1002
+#define CUSTOM_EXT_TYPE_3 1003
+
+static const char custom_ext_cli_string[] = "abc";
+static const char custom_ext_srv_string[] = "defg";
+
+/* These set from cmdline */
+static char *serverinfo_file = NULL;
+static int serverinfo_sct = 0;
+static int serverinfo_tack = 0;
+
+/* These set based on extension callbacks */
+static int serverinfo_sct_seen = 0;
+static int serverinfo_tack_seen = 0;
+static int serverinfo_other_seen = 0;
+
+/* This set from cmdline */
+static int custom_ext = 0;
+
+/* This set based on extension callbacks */
+static int custom_ext_error = 0;
+
+static int serverinfo_cli_parse_cb(SSL *s, unsigned int ext_type,
+ const unsigned char *in, size_t inlen,
+ int *al, void *arg)
+{
+ if (ext_type == TLSEXT_TYPE_signed_certificate_timestamp)
+ serverinfo_sct_seen++;
+ else if (ext_type == TACK_EXT_TYPE)
+ serverinfo_tack_seen++;
+ else
+ serverinfo_other_seen++;
+ return 1;
+}
+
+static int verify_serverinfo(void)
+{
+ if (serverinfo_sct != serverinfo_sct_seen)
+ return -1;
+ if (serverinfo_tack != serverinfo_tack_seen)
+ return -1;
+ if (serverinfo_other_seen)
+ return -1;
+ return 0;
+}
+
+/*-
+ * Four test cases for custom extensions:
+ * 0 - no ClientHello extension or ServerHello response
+ * 1 - ClientHello with "abc", no response
+ * 2 - ClientHello with "abc", empty response
+ * 3 - ClientHello with "abc", "defg" response
+ */
+
+static int custom_ext_0_cli_add_cb(SSL *s, unsigned int ext_type,
+ const unsigned char **out,
+ size_t *outlen, int *al, void *arg)
+{
+ if (ext_type != CUSTOM_EXT_TYPE_0)
+ custom_ext_error = 1;
+ return 0; /* Don't send an extension */
+}
+
+static int custom_ext_0_cli_parse_cb(SSL *s, unsigned int ext_type,
+ const unsigned char *in,
+ size_t inlen, int *al, void *arg)
+{
+ return 1;
+}
+
+static int custom_ext_1_cli_add_cb(SSL *s, unsigned int ext_type,
+ const unsigned char **out,
+ size_t *outlen, int *al, void *arg)
+{
+ if (ext_type != CUSTOM_EXT_TYPE_1)
+ custom_ext_error = 1;
+ *out = (const unsigned char *)custom_ext_cli_string;
+ *outlen = strlen(custom_ext_cli_string);
+ return 1; /* Send "abc" */
+}
+
+static int custom_ext_1_cli_parse_cb(SSL *s, unsigned int ext_type,
+ const unsigned char *in,
+ size_t inlen, int *al, void *arg)
+{
+ return 1;
+}
+
+static int custom_ext_2_cli_add_cb(SSL *s, unsigned int ext_type,
+ const unsigned char **out,
+ size_t *outlen, int *al, void *arg)
+{
+ if (ext_type != CUSTOM_EXT_TYPE_2)
+ custom_ext_error = 1;
+ *out = (const unsigned char *)custom_ext_cli_string;
+ *outlen = strlen(custom_ext_cli_string);
+ return 1; /* Send "abc" */
+}
+
+static int custom_ext_2_cli_parse_cb(SSL *s, unsigned int ext_type,
+ const unsigned char *in,
+ size_t inlen, int *al, void *arg)
+{
+ if (ext_type != CUSTOM_EXT_TYPE_2)
+ custom_ext_error = 1;
+ if (inlen != 0)
+ custom_ext_error = 1; /* Should be empty response */
+ return 1;
+}
+
+static int custom_ext_3_cli_add_cb(SSL *s, unsigned int ext_type,
+ const unsigned char **out,
+ size_t *outlen, int *al, void *arg)
+{
+ if (ext_type != CUSTOM_EXT_TYPE_3)
+ custom_ext_error = 1;
+ *out = (const unsigned char *)custom_ext_cli_string;
+ *outlen = strlen(custom_ext_cli_string);
+ return 1; /* Send "abc" */
+}
+
+static int custom_ext_3_cli_parse_cb(SSL *s, unsigned int ext_type,
+ const unsigned char *in,
+ size_t inlen, int *al, void *arg)
+{
+ if (ext_type != CUSTOM_EXT_TYPE_3)
+ custom_ext_error = 1;
+ if (inlen != strlen(custom_ext_srv_string))
+ custom_ext_error = 1;
+ if (memcmp(custom_ext_srv_string, in, inlen) != 0)
+ custom_ext_error = 1; /* Check for "defg" */
+ return 1;
+}
+
+/*
+ * custom_ext_0_cli_add_cb returns 0 - the server won't receive a callback
+ * for this extension
+ */
+static int custom_ext_0_srv_parse_cb(SSL *s, unsigned int ext_type,
+ const unsigned char *in,
+ size_t inlen, int *al, void *arg)
+{
+ custom_ext_error = 1;
+ return 1;
+}
+
+/* 'add' callbacks are only called if the 'parse' callback is called */
+static int custom_ext_0_srv_add_cb(SSL *s, unsigned int ext_type,
+ const unsigned char **out,
+ size_t *outlen, int *al, void *arg)
+{
+ /* Error: should not have been called */
+ custom_ext_error = 1;
+ return 0; /* Don't send an extension */
+}
+
+static int custom_ext_1_srv_parse_cb(SSL *s, unsigned int ext_type,
+ const unsigned char *in,
+ size_t inlen, int *al, void *arg)
+{
+ if (ext_type != CUSTOM_EXT_TYPE_1)
+ custom_ext_error = 1;
+ /* Check for "abc" */
+ if (inlen != strlen(custom_ext_cli_string))
+ custom_ext_error = 1;
+ if (memcmp(in, custom_ext_cli_string, inlen) != 0)
+ custom_ext_error = 1;
+ return 1;
+}
+
+static int custom_ext_1_srv_add_cb(SSL *s, unsigned int ext_type,
+ const unsigned char **out,
+ size_t *outlen, int *al, void *arg)
+{
+ return 0; /* Don't send an extension */
+}
+
+static int custom_ext_2_srv_parse_cb(SSL *s, unsigned int ext_type,
+ const unsigned char *in,
+ size_t inlen, int *al, void *arg)
+{
+ if (ext_type != CUSTOM_EXT_TYPE_2)
+ custom_ext_error = 1;
+ /* Check for "abc" */
+ if (inlen != strlen(custom_ext_cli_string))
+ custom_ext_error = 1;
+ if (memcmp(in, custom_ext_cli_string, inlen) != 0)
+ custom_ext_error = 1;
+ return 1;
+}
+
+static int custom_ext_2_srv_add_cb(SSL *s, unsigned int ext_type,
+ const unsigned char **out,
+ size_t *outlen, int *al, void *arg)
+{
+ *out = NULL;
+ *outlen = 0;
+ return 1; /* Send empty extension */
+}
+
+static int custom_ext_3_srv_parse_cb(SSL *s, unsigned int ext_type,
+ const unsigned char *in,
+ size_t inlen, int *al, void *arg)
+{
+ if (ext_type != CUSTOM_EXT_TYPE_3)
+ custom_ext_error = 1;
+ /* Check for "abc" */
+ if (inlen != strlen(custom_ext_cli_string))
+ custom_ext_error = 1;
+ if (memcmp(in, custom_ext_cli_string, inlen) != 0)
+ custom_ext_error = 1;
+ return 1;
+}
+
+static int custom_ext_3_srv_add_cb(SSL *s, unsigned int ext_type,
+ const unsigned char **out,
+ size_t *outlen, int *al, void *arg)
+{
+ *out = (const unsigned char *)custom_ext_srv_string;
+ *outlen = strlen(custom_ext_srv_string);
+ return 1; /* Send "defg" */
+}
+
+static char *cipher = NULL;
+static char *ciphersuites = NULL;
+static int verbose = 0;
+static int debug = 0;
+
+int doit_localhost(SSL *s_ssl, SSL *c_ssl, int family,
+ long bytes, clock_t *s_time, clock_t *c_time);
+int doit_biopair(SSL *s_ssl, SSL *c_ssl, long bytes, clock_t *s_time,
+ clock_t *c_time);
+int doit(SSL *s_ssl, SSL *c_ssl, long bytes);
+
+static void sv_usage(void)
+{
+ fprintf(stderr, "usage: ssltest [args ...]\n");
+ fprintf(stderr, "\n");
+ fprintf(stderr, " -server_auth - check server certificate\n");
+ fprintf(stderr, " -client_auth - do client authentication\n");
+ fprintf(stderr, " -v - more output\n");
+ fprintf(stderr, " -d - debug output\n");
+ fprintf(stderr, " -reuse - use session-id reuse\n");
+ fprintf(stderr, " -num <val> - number of connections to perform\n");
+ fprintf(stderr,
+ " -bytes <val> - number of bytes to swap between client/server\n");
+#ifndef OPENSSL_NO_DH
+ fprintf(stderr,
+ " -dhe512 - use 512 bit key for DHE (to test failure)\n");
+ fprintf(stderr,
+ " -dhe1024 - use 1024 bit key (safe prime) for DHE (default, no-op)\n");
+ fprintf(stderr,
+ " -dhe1024dsa - use 1024 bit key (with 160-bit subprime) for DHE\n");
+ fprintf(stderr, " -no_dhe - disable DHE\n");
+#endif
+#ifndef OPENSSL_NO_EC
+ fprintf(stderr, " -no_ecdhe - disable ECDHE\nTODO(openssl-team): no_ecdhe was broken by auto ecdh. Make this work again.\n");
+#endif
+#ifndef OPENSSL_NO_PSK
+ fprintf(stderr, " -psk arg - PSK in hex (without 0x)\n");
+#endif
+#ifndef OPENSSL_NO_SSL3
+ fprintf(stderr, " -ssl3 - use SSLv3\n");
+#endif
+#ifndef OPENSSL_NO_TLS1
+ fprintf(stderr, " -tls1 - use TLSv1\n");
+#endif
+#ifndef OPENSSL_NO_DTLS
+ fprintf(stderr, " -dtls - use DTLS\n");
+#ifndef OPENSSL_NO_DTLS1
+ fprintf(stderr, " -dtls1 - use DTLSv1\n");
+#endif
+#ifndef OPENSSL_NO_DTLS1_2
+ fprintf(stderr, " -dtls12 - use DTLSv1.2\n");
+#endif
+#endif
+ fprintf(stderr, " -CApath arg - PEM format directory of CA's\n");
+ fprintf(stderr, " -CAfile arg - PEM format file of CA's\n");
+ fprintf(stderr, " -cert arg - Server certificate file\n");
+ fprintf(stderr,
+ " -key arg - Server key file (default: same as -cert)\n");
+ fprintf(stderr, " -c_cert arg - Client certificate file\n");
+ fprintf(stderr,
+ " -c_key arg - Client key file (default: same as -c_cert)\n");
+ fprintf(stderr, " -cipher arg - The TLSv1.2 and below cipher list\n");
+ fprintf(stderr, " -ciphersuites arg - The TLSv1.3 ciphersuites\n");
+ fprintf(stderr, " -bio_pair - Use BIO pairs\n");
+ fprintf(stderr, " -ipv4 - Use IPv4 connection on localhost\n");
+ fprintf(stderr, " -ipv6 - Use IPv6 connection on localhost\n");
+ fprintf(stderr, " -f - Test even cases that can't work\n");
+ fprintf(stderr,
+ " -time - measure processor time used by client and server\n");
+ fprintf(stderr, " -zlib - use zlib compression\n");
+#ifndef OPENSSL_NO_NEXTPROTONEG
+ fprintf(stderr, " -npn_client - have client side offer NPN\n");
+ fprintf(stderr, " -npn_server - have server side offer NPN\n");
+ fprintf(stderr, " -npn_server_reject - have server reject NPN\n");
+#endif
+ fprintf(stderr, " -serverinfo_file file - have server use this file\n");
+ fprintf(stderr, " -serverinfo_sct - have client offer and expect SCT\n");
+ fprintf(stderr,
+ " -serverinfo_tack - have client offer and expect TACK\n");
+ fprintf(stderr,
+ " -custom_ext - try various custom extension callbacks\n");
+ fprintf(stderr, " -alpn_client <string> - have client side offer ALPN\n");
+ fprintf(stderr, " -alpn_server <string> - have server side offer ALPN\n");
+ fprintf(stderr, " -alpn_server1 <string> - alias for -alpn_server\n");
+ fprintf(stderr, " -alpn_server2 <string> - have server side context 2 offer ALPN\n");
+ fprintf(stderr,
+ " -alpn_expected <string> - the ALPN protocol that should be negotiated\n");
+ fprintf(stderr, " -server_min_proto <string> - Minimum version the server should support\n");
+ fprintf(stderr, " -server_max_proto <string> - Maximum version the server should support\n");
+ fprintf(stderr, " -client_min_proto <string> - Minimum version the client should support\n");
+ fprintf(stderr, " -client_max_proto <string> - Maximum version the client should support\n");
+ fprintf(stderr, " -should_negotiate <string> - The version that should be negotiated, fail-client or fail-server\n");
+#ifndef OPENSSL_NO_CT
+ fprintf(stderr, " -noct - no certificate transparency\n");
+ fprintf(stderr, " -requestct - request certificate transparency\n");
+ fprintf(stderr, " -requirect - require certificate transparency\n");
+#endif
+ fprintf(stderr, " -sn_client <string> - have client request this servername\n");
+ fprintf(stderr, " -sn_server1 <string> - have server context 1 respond to this servername\n");
+ fprintf(stderr, " -sn_server2 <string> - have server context 2 respond to this servername\n");
+ fprintf(stderr, " -sn_expect1 - expected server 1\n");
+ fprintf(stderr, " -sn_expect2 - expected server 2\n");
+ fprintf(stderr, " -server_sess_out <file> - Save the server session to a file\n");
+ fprintf(stderr, " -server_sess_in <file> - Read the server session from a file\n");
+ fprintf(stderr, " -client_sess_out <file> - Save the client session to a file\n");
+ fprintf(stderr, " -client_sess_in <file> - Read the client session from a file\n");
+ fprintf(stderr, " -should_reuse <number> - The expected state of reusing the session\n");
+ fprintf(stderr, " -no_ticket - do not issue TLS session ticket\n");
+}
+
+static void print_key_details(BIO *out, EVP_PKEY *key)
+{
+ int keyid = EVP_PKEY_id(key);
+#ifndef OPENSSL_NO_EC
+ if (keyid == EVP_PKEY_EC) {
+ EC_KEY *ec = EVP_PKEY_get1_EC_KEY(key);
+ int nid;
+ const char *cname;
+ nid = EC_GROUP_get_curve_name(EC_KEY_get0_group(ec));
+ EC_KEY_free(ec);
+ cname = EC_curve_nid2nist(nid);
+ if (!cname)
+ cname = OBJ_nid2sn(nid);
+ BIO_printf(out, "%d bits EC (%s)", EVP_PKEY_bits(key), cname);
+ } else
+#endif
+ {
+ const char *algname;
+ switch (keyid) {
+ case EVP_PKEY_RSA:
+ algname = "RSA";
+ break;
+ case EVP_PKEY_DSA:
+ algname = "DSA";
+ break;
+ case EVP_PKEY_DH:
+ algname = "DH";
+ break;
+ default:
+ algname = OBJ_nid2sn(keyid);
+ break;
+ }
+ BIO_printf(out, "%d bits %s", EVP_PKEY_bits(key), algname);
+ }
+}
+
+static void print_details(SSL *c_ssl, const char *prefix)
+{
+ const SSL_CIPHER *ciph;
+ int mdnid;
+ X509 *cert;
+ EVP_PKEY *pkey;
+
+ ciph = SSL_get_current_cipher(c_ssl);
+ BIO_printf(bio_stdout, "%s%s, cipher %s %s",
+ prefix,
+ SSL_get_version(c_ssl),
+ SSL_CIPHER_get_version(ciph), SSL_CIPHER_get_name(ciph));
+ cert = SSL_get_peer_certificate(c_ssl);
+ if (cert != NULL) {
+ EVP_PKEY* pubkey = X509_get0_pubkey(cert);
+
+ if (pubkey != NULL) {
+ BIO_puts(bio_stdout, ", ");
+ print_key_details(bio_stdout, pubkey);
+ }
+ X509_free(cert);
+ }
+ if (SSL_get_peer_tmp_key(c_ssl, &pkey)) {
+ BIO_puts(bio_stdout, ", temp key: ");
+ print_key_details(bio_stdout, pkey);
+ EVP_PKEY_free(pkey);
+ }
+ if (SSL_get_peer_signature_nid(c_ssl, &mdnid))
+ BIO_printf(bio_stdout, ", digest=%s", OBJ_nid2sn(mdnid));
+ BIO_printf(bio_stdout, "\n");
+}
+
+/*
+ * protocol_from_string - converts a protocol version string to a number
+ *
+ * Returns -1 on failure or the version on success
+ */
+static int protocol_from_string(const char *value)
+{
+ struct protocol_versions {
+ const char *name;
+ int version;
+ };
+ static const struct protocol_versions versions[] = {
+ {"ssl3", SSL3_VERSION},
+ {"tls1", TLS1_VERSION},
+ {"tls1.1", TLS1_1_VERSION},
+ {"tls1.2", TLS1_2_VERSION},
+ {"tls1.3", TLS1_3_VERSION},
+ {"dtls1", DTLS1_VERSION},
+ {"dtls1.2", DTLS1_2_VERSION}};
+ size_t i;
+ size_t n = OSSL_NELEM(versions);
+
+ for (i = 0; i < n; i++)
+ if (strcmp(versions[i].name, value) == 0)
+ return versions[i].version;
+ return -1;
+}
+
+static SSL_SESSION *read_session(const char *filename)
+{
+ SSL_SESSION *sess;
+ BIO *f = BIO_new_file(filename, "r");
+
+ if (f == NULL) {
+ BIO_printf(bio_err, "Can't open session file %s\n", filename);
+ ERR_print_errors(bio_err);
+ return NULL;
+ }
+ sess = PEM_read_bio_SSL_SESSION(f, NULL, 0, NULL);
+ if (sess == NULL) {
+ BIO_printf(bio_err, "Can't parse session file %s\n", filename);
+ ERR_print_errors(bio_err);
+ }
+ BIO_free(f);
+ return sess;
+}
+
+static int write_session(const char *filename, SSL_SESSION *sess)
+{
+ BIO *f = BIO_new_file(filename, "w");
+
+ if (sess == NULL) {
+ BIO_printf(bio_err, "No session information\n");
+ return 0;
+ }
+ if (f == NULL) {
+ BIO_printf(bio_err, "Can't open session file %s\n", filename);
+ ERR_print_errors(bio_err);
+ return 0;
+ }
+ PEM_write_bio_SSL_SESSION(f, sess);
+ BIO_free(f);
+ return 1;
+}
+
+/*
+ * set_protocol_version - Sets protocol version minimum or maximum
+ *
+ * Returns 0 on failure and 1 on success
+ */
+static int set_protocol_version(const char *version, SSL *ssl, int setting)
+{
+ if (version != NULL) {
+ int ver = protocol_from_string(version);
+ if (ver < 0) {
+ BIO_printf(bio_err, "Error parsing: %s\n", version);
+ return 0;
+ }
+ return SSL_ctrl(ssl, setting, ver, NULL);
+ }
+ return 1;
+}
+
+int main(int argc, char *argv[])
+{
+ const char *CApath = NULL, *CAfile = NULL;
+ int badop = 0;
+ enum { BIO_MEM, BIO_PAIR, BIO_IPV4, BIO_IPV6 } bio_type = BIO_MEM;
+ int force = 0;
+ int dtls1 = 0, dtls12 = 0, dtls = 0, tls1 = 0, tls1_2 = 0, ssl3 = 0;
+ int ret = EXIT_FAILURE;
+ int client_auth = 0;
+ int server_auth = 0, i;
+ struct app_verify_arg app_verify_arg =
+ { APP_CALLBACK_STRING, 0 };
+ char *p;
+ SSL_CTX *c_ctx = NULL;
+ const SSL_METHOD *meth = NULL;
+ SSL *c_ssl, *s_ssl;
+ int number = 1, reuse = 0;
+ int should_reuse = -1;
+ int no_ticket = 0;
+ long bytes = 256L;
+#ifndef OPENSSL_NO_DH
+ DH *dh;
+ int dhe512 = 0, dhe1024dsa = 0;
+#endif
+ int no_dhe = 0;
+ int no_psk = 0;
+ int print_time = 0;
+ clock_t s_time = 0, c_time = 0;
+#ifndef OPENSSL_NO_COMP
+ int n, comp = 0;
+ COMP_METHOD *cm = NULL;
+ STACK_OF(SSL_COMP) *ssl_comp_methods = NULL;
+#endif
+ int no_protocol;
+ int min_version = 0, max_version = 0;
+#ifndef OPENSSL_NO_CT
+ /*
+ * Disable CT validation by default, because it will interfere with
+ * anything using custom extension handlers to deal with SCT extensions.
+ */
+ int ct_validation = 0;
+#endif
+ SSL_CONF_CTX *s_cctx = NULL, *c_cctx = NULL, *s_cctx2 = NULL;
+ STACK_OF(OPENSSL_STRING) *conf_args = NULL;
+ char *arg = NULL, *argn = NULL;
+
+ verbose = 0;
+ debug = 0;
+
+ bio_err = BIO_new_fp(stderr, BIO_NOCLOSE | BIO_FP_TEXT);
+
+ p = getenv("OPENSSL_DEBUG_MEMORY");
+ if (p != NULL && strcmp(p, "on") == 0)
+ CRYPTO_set_mem_debug(1);
+ CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
+
+ bio_stdout = BIO_new_fp(stdout, BIO_NOCLOSE | BIO_FP_TEXT);
+
+ s_cctx = SSL_CONF_CTX_new();
+ s_cctx2 = SSL_CONF_CTX_new();
+ c_cctx = SSL_CONF_CTX_new();
+
+ if (!s_cctx || !c_cctx || !s_cctx2) {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+
+ SSL_CONF_CTX_set_flags(s_cctx,
+ SSL_CONF_FLAG_CMDLINE | SSL_CONF_FLAG_SERVER |
+ SSL_CONF_FLAG_CERTIFICATE |
+ SSL_CONF_FLAG_REQUIRE_PRIVATE);
+ SSL_CONF_CTX_set_flags(s_cctx2,
+ SSL_CONF_FLAG_CMDLINE | SSL_CONF_FLAG_SERVER |
+ SSL_CONF_FLAG_CERTIFICATE |
+ SSL_CONF_FLAG_REQUIRE_PRIVATE);
+ if (!SSL_CONF_CTX_set1_prefix(s_cctx, "-s_")) {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+ if (!SSL_CONF_CTX_set1_prefix(s_cctx2, "-s_")) {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+
+ SSL_CONF_CTX_set_flags(c_cctx,
+ SSL_CONF_FLAG_CMDLINE | SSL_CONF_FLAG_CLIENT |
+ SSL_CONF_FLAG_CERTIFICATE |
+ SSL_CONF_FLAG_REQUIRE_PRIVATE);
+ if (!SSL_CONF_CTX_set1_prefix(c_cctx, "-c_")) {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+
+ argc--;
+ argv++;
+
+ while (argc >= 1) {
+ if (strcmp(*argv, "-F") == 0) {
+ fprintf(stderr,
+ "not compiled with FIPS support, so exiting without running.\n");
+ EXIT(0);
+ } else if (strcmp(*argv, "-server_auth") == 0)
+ server_auth = 1;
+ else if (strcmp(*argv, "-client_auth") == 0)
+ client_auth = 1;
+ else if (strcmp(*argv, "-v") == 0)
+ verbose = 1;
+ else if (strcmp(*argv, "-d") == 0)
+ debug = 1;
+ else if (strcmp(*argv, "-reuse") == 0)
+ reuse = 1;
+ else if (strcmp(*argv, "-dhe512") == 0) {
+#ifndef OPENSSL_NO_DH
+ dhe512 = 1;
+#else
+ fprintf(stderr,
+ "ignoring -dhe512, since I'm compiled without DH\n");
+#endif
+ } else if (strcmp(*argv, "-dhe1024dsa") == 0) {
+#ifndef OPENSSL_NO_DH
+ dhe1024dsa = 1;
+#else
+ fprintf(stderr,
+ "ignoring -dhe1024dsa, since I'm compiled without DH\n");
+#endif
+ } else if (strcmp(*argv, "-no_dhe") == 0)
+ no_dhe = 1;
+ else if (strcmp(*argv, "-no_ecdhe") == 0)
+ /* obsolete */;
+ else if (strcmp(*argv, "-psk") == 0) {
+ if (--argc < 1)
+ goto bad;
+ psk_key = *(++argv);
+#ifndef OPENSSL_NO_PSK
+ if (strspn(psk_key, "abcdefABCDEF1234567890") != strlen(psk_key)) {
+ BIO_printf(bio_err, "Not a hex number '%s'\n", *argv);
+ goto bad;
+ }
+#else
+ no_psk = 1;
+#endif
+ }
+ else if (strcmp(*argv, "-tls1_2") == 0) {
+ tls1_2 = 1;
+ } else if (strcmp(*argv, "-tls1") == 0) {
+ tls1 = 1;
+ } else if (strcmp(*argv, "-ssl3") == 0) {
+ ssl3 = 1;
+ } else if (strcmp(*argv, "-dtls1") == 0) {
+ dtls1 = 1;
+ } else if (strcmp(*argv, "-dtls12") == 0) {
+ dtls12 = 1;
+ } else if (strcmp(*argv, "-dtls") == 0) {
+ dtls = 1;
+ } else if (strncmp(*argv, "-num", 4) == 0) {
+ if (--argc < 1)
+ goto bad;
+ number = atoi(*(++argv));
+ if (number == 0)
+ number = 1;
+ } else if (strcmp(*argv, "-bytes") == 0) {
+ if (--argc < 1)
+ goto bad;
+ bytes = atol(*(++argv));
+ if (bytes == 0L)
+ bytes = 1L;
+ i = strlen(argv[0]);
+ if (argv[0][i - 1] == 'k')
+ bytes *= 1024L;
+ if (argv[0][i - 1] == 'm')
+ bytes *= 1024L * 1024L;
+ } else if (strcmp(*argv, "-cipher") == 0) {
+ if (--argc < 1)
+ goto bad;
+ cipher = *(++argv);
+ } else if (strcmp(*argv, "-ciphersuites") == 0) {
+ if (--argc < 1)
+ goto bad;
+ ciphersuites = *(++argv);
+ } else if (strcmp(*argv, "-CApath") == 0) {
+ if (--argc < 1)
+ goto bad;
+ CApath = *(++argv);
+ } else if (strcmp(*argv, "-CAfile") == 0) {
+ if (--argc < 1)
+ goto bad;
+ CAfile = *(++argv);
+ } else if (strcmp(*argv, "-bio_pair") == 0) {
+ bio_type = BIO_PAIR;
+ }
+#ifndef OPENSSL_NO_SOCK
+ else if (strcmp(*argv, "-ipv4") == 0) {
+ bio_type = BIO_IPV4;
+ } else if (strcmp(*argv, "-ipv6") == 0) {
+ bio_type = BIO_IPV6;
+ }
+#endif
+ else if (strcmp(*argv, "-f") == 0) {
+ force = 1;
+ } else if (strcmp(*argv, "-time") == 0) {
+ print_time = 1;
+ }
+#ifndef OPENSSL_NO_CT
+ else if (strcmp(*argv, "-noct") == 0) {
+ ct_validation = 0;
+ }
+ else if (strcmp(*argv, "-ct") == 0) {
+ ct_validation = 1;
+ }
+#endif
+#ifndef OPENSSL_NO_COMP
+ else if (strcmp(*argv, "-zlib") == 0) {
+ comp = COMP_ZLIB;
+ }
+#endif
+ else if (strcmp(*argv, "-app_verify") == 0) {
+ app_verify_arg.app_verify = 1;
+ }
+#ifndef OPENSSL_NO_NEXTPROTONEG
+ else if (strcmp(*argv, "-npn_client") == 0) {
+ npn_client = 1;
+ } else if (strcmp(*argv, "-npn_server") == 0) {
+ npn_server = 1;
+ } else if (strcmp(*argv, "-npn_server_reject") == 0) {
+ npn_server_reject = 1;
+ }
+#endif
+ else if (strcmp(*argv, "-serverinfo_sct") == 0) {
+ serverinfo_sct = 1;
+ } else if (strcmp(*argv, "-serverinfo_tack") == 0) {
+ serverinfo_tack = 1;
+ } else if (strcmp(*argv, "-serverinfo_file") == 0) {
+ if (--argc < 1)
+ goto bad;
+ serverinfo_file = *(++argv);
+ } else if (strcmp(*argv, "-custom_ext") == 0) {
+ custom_ext = 1;
+ } else if (strcmp(*argv, "-alpn_client") == 0) {
+ if (--argc < 1)
+ goto bad;
+ alpn_client = *(++argv);
+ } else if (strcmp(*argv, "-alpn_server") == 0 ||
+ strcmp(*argv, "-alpn_server1") == 0) {
+ if (--argc < 1)
+ goto bad;
+ alpn_server = *(++argv);
+ } else if (strcmp(*argv, "-alpn_server2") == 0) {
+ if (--argc < 1)
+ goto bad;
+ alpn_server2 = *(++argv);
+ } else if (strcmp(*argv, "-alpn_expected") == 0) {
+ if (--argc < 1)
+ goto bad;
+ alpn_expected = *(++argv);
+ } else if (strcmp(*argv, "-server_min_proto") == 0) {
+ if (--argc < 1)
+ goto bad;
+ server_min_proto = *(++argv);
+ } else if (strcmp(*argv, "-server_max_proto") == 0) {
+ if (--argc < 1)
+ goto bad;
+ server_max_proto = *(++argv);
+ } else if (strcmp(*argv, "-client_min_proto") == 0) {
+ if (--argc < 1)
+ goto bad;
+ client_min_proto = *(++argv);
+ } else if (strcmp(*argv, "-client_max_proto") == 0) {
+ if (--argc < 1)
+ goto bad;
+ client_max_proto = *(++argv);
+ } else if (strcmp(*argv, "-should_negotiate") == 0) {
+ if (--argc < 1)
+ goto bad;
+ should_negotiate = *(++argv);
+ } else if (strcmp(*argv, "-sn_client") == 0) {
+ if (--argc < 1)
+ goto bad;
+ sn_client = *(++argv);
+ } else if (strcmp(*argv, "-sn_server1") == 0) {
+ if (--argc < 1)
+ goto bad;
+ sn_server1 = *(++argv);
+ } else if (strcmp(*argv, "-sn_server2") == 0) {
+ if (--argc < 1)
+ goto bad;
+ sn_server2 = *(++argv);
+ } else if (strcmp(*argv, "-sn_expect1") == 0) {
+ sn_expect = 1;
+ } else if (strcmp(*argv, "-sn_expect2") == 0) {
+ sn_expect = 2;
+ } else if (strcmp(*argv, "-server_sess_out") == 0) {
+ if (--argc < 1)
+ goto bad;
+ server_sess_out = *(++argv);
+ } else if (strcmp(*argv, "-server_sess_in") == 0) {
+ if (--argc < 1)
+ goto bad;
+ server_sess_in = *(++argv);
+ } else if (strcmp(*argv, "-client_sess_out") == 0) {
+ if (--argc < 1)
+ goto bad;
+ client_sess_out = *(++argv);
+ } else if (strcmp(*argv, "-client_sess_in") == 0) {
+ if (--argc < 1)
+ goto bad;
+ client_sess_in = *(++argv);
+ } else if (strcmp(*argv, "-should_reuse") == 0) {
+ if (--argc < 1)
+ goto bad;
+ should_reuse = !!atoi(*(++argv));
+ } else if (strcmp(*argv, "-no_ticket") == 0) {
+ no_ticket = 1;
+ } else {
+ int rv;
+ arg = argv[0];
+ argn = argv[1];
+ /* Try to process command using SSL_CONF */
+ rv = SSL_CONF_cmd_argv(c_cctx, &argc, &argv);
+ /* If not processed try server */
+ if (rv == 0)
+ rv = SSL_CONF_cmd_argv(s_cctx, &argc, &argv);
+ /* Recognised: store it for later use */
+ if (rv > 0) {
+ if (rv == 1)
+ argn = NULL;
+ if (!conf_args) {
+ conf_args = sk_OPENSSL_STRING_new_null();
+ if (!conf_args)
+ goto end;
+ }
+ if (!sk_OPENSSL_STRING_push(conf_args, arg))
+ goto end;
+ if (!sk_OPENSSL_STRING_push(conf_args, argn))
+ goto end;
+ continue;
+ }
+ if (rv == -3)
+ BIO_printf(bio_err, "Missing argument for %s\n", arg);
+ else if (rv < 0)
+ BIO_printf(bio_err, "Error with command %s\n", arg);
+ else if (rv == 0)
+ BIO_printf(bio_err, "unknown option %s\n", arg);
+ badop = 1;
+ break;
+ }
+ argc--;
+ argv++;
+ }
+ if (badop) {
+ bad:
+ sv_usage();
+ goto end;
+ }
+
+ if (ssl3 + tls1 + tls1_2 + dtls + dtls1 + dtls12 > 1) {
+ fprintf(stderr, "At most one of -ssl3, -tls1, -tls1_2, -dtls, -dtls1 or -dtls12 should "
+ "be requested.\n");
+ EXIT(1);
+ }
+
+#ifdef OPENSSL_NO_SSL3
+ if (ssl3)
+ no_protocol = 1;
+ else
+#endif
+#ifdef OPENSSL_NO_TLS1
+ if (tls1)
+ no_protocol = 1;
+ else
+#endif
+#ifdef OPENSSL_NO_TLS1_2
+ if (tls1_2)
+ no_protocol = 1;
+ else
+#endif
+#if defined(OPENSSL_NO_DTLS) || defined(OPENSSL_NO_DTLS1)
+ if (dtls1)
+ no_protocol = 1;
+ else
+#endif
+#if defined(OPENSSL_NO_DTLS) || defined(OPENSSL_NO_DTLS1_2)
+ if (dtls12)
+ no_protocol = 1;
+ else
+#endif
+ no_protocol = 0;
+
+ /*
+ * Testing was requested for a compiled-out protocol (e.g. SSLv3).
+ * Ideally, we would error out, but the generic test wrapper can't know
+ * when to expect failure. So we do nothing and return success.
+ */
+ if (no_protocol) {
+ fprintf(stderr, "Testing was requested for a disabled protocol. "
+ "Skipping tests.\n");
+ ret = EXIT_SUCCESS;
+ goto end;
+ }
+
+ if (!ssl3 && !tls1 && !tls1_2 && !dtls && !dtls1 && !dtls12 && number > 1
+ && !reuse && !force) {
+ fprintf(stderr, "This case cannot work. Use -f to perform "
+ "the test anyway (and\n-d to see what happens), "
+ "or add one of -ssl3, -tls1, -tls1_2, -dtls, -dtls1, -dtls12, -reuse\n"
+ "to avoid protocol mismatch.\n");
+ EXIT(1);
+ }
+
+ if (print_time) {
+ if (bio_type != BIO_PAIR) {
+ fprintf(stderr, "Using BIO pair (-bio_pair)\n");
+ bio_type = BIO_PAIR;
+ }
+ if (number < 50 && !force)
+ fprintf(stderr,
+ "Warning: For accurate timings, use more connections (e.g. -num 1000)\n");
+ }
+
+#ifndef OPENSSL_NO_COMP
+ if (comp == COMP_ZLIB)
+ cm = COMP_zlib();
+ if (cm != NULL) {
+ if (COMP_get_type(cm) != NID_undef) {
+ if (SSL_COMP_add_compression_method(comp, cm) != 0) {
+ fprintf(stderr, "Failed to add compression method\n");
+ ERR_print_errors_fp(stderr);
+ }
+ } else {
+ fprintf(stderr,
+ "Warning: %s compression not supported\n",
+ comp == COMP_ZLIB ? "zlib" : "unknown");
+ ERR_print_errors_fp(stderr);
+ }
+ }
+ ssl_comp_methods = SSL_COMP_get_compression_methods();
+ n = sk_SSL_COMP_num(ssl_comp_methods);
+ if (n) {
+ int j;
+ printf("Available compression methods:");
+ for (j = 0; j < n; j++) {
+ SSL_COMP *c = sk_SSL_COMP_value(ssl_comp_methods, j);
+ printf(" %s:%d", SSL_COMP_get0_name(c), SSL_COMP_get_id(c));
+ }
+ printf("\n");
+ }
+#endif
+
+#ifndef OPENSSL_NO_TLS
+ meth = TLS_method();
+ if (ssl3) {
+ min_version = SSL3_VERSION;
+ max_version = SSL3_VERSION;
+ } else if (tls1) {
+ min_version = TLS1_VERSION;
+ max_version = TLS1_VERSION;
+ } else if (tls1_2) {
+ min_version = TLS1_2_VERSION;
+ max_version = TLS1_2_VERSION;
+ } else {
+ min_version = SSL3_VERSION;
+ max_version = TLS_MAX_VERSION;
+ }
+#endif
+#ifndef OPENSSL_NO_DTLS
+ if (dtls || dtls1 || dtls12) {
+ meth = DTLS_method();
+ if (dtls1) {
+ min_version = DTLS1_VERSION;
+ max_version = DTLS1_VERSION;
+ } else if (dtls12) {
+ min_version = DTLS1_2_VERSION;
+ max_version = DTLS1_2_VERSION;
+ } else {
+ min_version = DTLS_MIN_VERSION;
+ max_version = DTLS_MAX_VERSION;
+ }
+ }
+#endif
+
+ c_ctx = SSL_CTX_new(meth);
+ s_ctx = SSL_CTX_new(meth);
+ s_ctx2 = SSL_CTX_new(meth); /* no SSL_CTX_dup! */
+ if ((c_ctx == NULL) || (s_ctx == NULL) || (s_ctx2 == NULL)) {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+ /*
+ * Since we will use low security ciphersuites and keys for testing set
+ * security level to zero by default. Tests can override this by adding
+ * "@SECLEVEL=n" to the cipher string.
+ */
+ SSL_CTX_set_security_level(c_ctx, 0);
+ SSL_CTX_set_security_level(s_ctx, 0);
+ SSL_CTX_set_security_level(s_ctx2, 0);
+
+ if (no_ticket) {
+ SSL_CTX_set_options(c_ctx, SSL_OP_NO_TICKET);
+ SSL_CTX_set_options(s_ctx, SSL_OP_NO_TICKET);
+ }
+
+ if (SSL_CTX_set_min_proto_version(c_ctx, min_version) == 0)
+ goto end;
+ if (SSL_CTX_set_max_proto_version(c_ctx, max_version) == 0)
+ goto end;
+ if (SSL_CTX_set_min_proto_version(s_ctx, min_version) == 0)
+ goto end;
+ if (SSL_CTX_set_max_proto_version(s_ctx, max_version) == 0)
+ goto end;
+
+ if (cipher != NULL) {
+ if (strcmp(cipher, "") == 0) {
+ if (!SSL_CTX_set_cipher_list(c_ctx, cipher)) {
+ if (ERR_GET_REASON(ERR_peek_error()) == SSL_R_NO_CIPHER_MATCH) {
+ ERR_clear_error();
+ } else {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+ } else {
+ /* Should have failed when clearing all TLSv1.2 ciphers. */
+ fprintf(stderr, "CLEARING ALL TLSv1.2 CIPHERS SHOULD FAIL\n");
+ goto end;
+ }
+
+ if (!SSL_CTX_set_cipher_list(s_ctx, cipher)) {
+ if (ERR_GET_REASON(ERR_peek_error()) == SSL_R_NO_CIPHER_MATCH) {
+ ERR_clear_error();
+ } else {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+ } else {
+ /* Should have failed when clearing all TLSv1.2 ciphers. */
+ fprintf(stderr, "CLEARING ALL TLSv1.2 CIPHERS SHOULD FAIL\n");
+ goto end;
+ }
+
+ if (!SSL_CTX_set_cipher_list(s_ctx2, cipher)) {
+ if (ERR_GET_REASON(ERR_peek_error()) == SSL_R_NO_CIPHER_MATCH) {
+ ERR_clear_error();
+ } else {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+ } else {
+ /* Should have failed when clearing all TLSv1.2 ciphers. */
+ fprintf(stderr, "CLEARING ALL TLSv1.2 CIPHERS SHOULD FAIL\n");
+ goto end;
+ }
+ } else {
+ if (!SSL_CTX_set_cipher_list(c_ctx, cipher)
+ || !SSL_CTX_set_cipher_list(s_ctx, cipher)
+ || !SSL_CTX_set_cipher_list(s_ctx2, cipher)) {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+ }
+ }
+ if (ciphersuites != NULL) {
+ if (!SSL_CTX_set_ciphersuites(c_ctx, ciphersuites)
+ || !SSL_CTX_set_ciphersuites(s_ctx, ciphersuites)
+ || !SSL_CTX_set_ciphersuites(s_ctx2, ciphersuites)) {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+ }
+
+#ifndef OPENSSL_NO_CT
+ if (ct_validation &&
+ !SSL_CTX_enable_ct(c_ctx, SSL_CT_VALIDATION_STRICT)) {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+#endif
+
+ /* Process SSL_CONF arguments */
+ SSL_CONF_CTX_set_ssl_ctx(c_cctx, c_ctx);
+ SSL_CONF_CTX_set_ssl_ctx(s_cctx, s_ctx);
+ SSL_CONF_CTX_set_ssl_ctx(s_cctx2, s_ctx2);
+
+ for (i = 0; i < sk_OPENSSL_STRING_num(conf_args); i += 2) {
+ int rv;
+ arg = sk_OPENSSL_STRING_value(conf_args, i);
+ argn = sk_OPENSSL_STRING_value(conf_args, i + 1);
+ rv = SSL_CONF_cmd(c_cctx, arg, argn);
+ /* If not recognised use server context */
+ if (rv == -2) {
+ rv = SSL_CONF_cmd(s_cctx2, arg, argn);
+ if (rv > 0)
+ rv = SSL_CONF_cmd(s_cctx, arg, argn);
+ }
+ if (rv <= 0) {
+ BIO_printf(bio_err, "Error processing %s %s\n",
+ arg, argn ? argn : "");
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+ }
+
+ if (!SSL_CONF_CTX_finish(s_cctx) || !SSL_CONF_CTX_finish(c_cctx) || !SSL_CONF_CTX_finish(s_cctx2)) {
+ BIO_puts(bio_err, "Error finishing context\n");
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+#ifndef OPENSSL_NO_DH
+ if (!no_dhe) {
+ if (dhe1024dsa) {
+ dh = get_dh1024dsa();
+ } else if (dhe512)
+ dh = get_dh512();
+ else
+ dh = get_dh1024();
+ SSL_CTX_set_tmp_dh(s_ctx, dh);
+ SSL_CTX_set_tmp_dh(s_ctx2, dh);
+ DH_free(dh);
+ }
+#else
+ (void)no_dhe;
+#endif
+
+ if ((!SSL_CTX_load_verify_locations(s_ctx, CAfile, CApath)) ||
+ (!SSL_CTX_set_default_verify_paths(s_ctx)) ||
+ (!SSL_CTX_load_verify_locations(s_ctx2, CAfile, CApath)) ||
+ (!SSL_CTX_set_default_verify_paths(s_ctx2)) ||
+ (!SSL_CTX_load_verify_locations(c_ctx, CAfile, CApath)) ||
+ (!SSL_CTX_set_default_verify_paths(c_ctx))) {
+ ERR_print_errors(bio_err);
+ }
+
+#ifndef OPENSSL_NO_CT
+ if (!SSL_CTX_set_default_ctlog_list_file(s_ctx) ||
+ !SSL_CTX_set_default_ctlog_list_file(s_ctx2) ||
+ !SSL_CTX_set_default_ctlog_list_file(c_ctx)) {
+ ERR_print_errors(bio_err);
+ }
+#endif
+
+ if (client_auth) {
+ printf("client authentication\n");
+ SSL_CTX_set_verify(s_ctx,
+ SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT,
+ verify_callback);
+ SSL_CTX_set_verify(s_ctx2,
+ SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT,
+ verify_callback);
+ SSL_CTX_set_cert_verify_callback(s_ctx, app_verify_callback,
+ &app_verify_arg);
+ SSL_CTX_set_cert_verify_callback(s_ctx2, app_verify_callback,
+ &app_verify_arg);
+ }
+ if (server_auth) {
+ printf("server authentication\n");
+ SSL_CTX_set_verify(c_ctx, SSL_VERIFY_PEER, verify_callback);
+ SSL_CTX_set_cert_verify_callback(c_ctx, app_verify_callback,
+ &app_verify_arg);
+ }
+
+ {
+ int session_id_context = 0;
+ if (!SSL_CTX_set_session_id_context(s_ctx, (void *)&session_id_context,
+ sizeof(session_id_context)) ||
+ !SSL_CTX_set_session_id_context(s_ctx2, (void *)&session_id_context,
+ sizeof(session_id_context))) {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+ }
+
+ /* Use PSK only if PSK key is given */
+ if (psk_key != NULL) {
+ /*
+ * no_psk is used to avoid putting psk command to openssl tool
+ */
+ if (no_psk) {
+ /*
+ * if PSK is not compiled in and psk key is given, do nothing and
+ * exit successfully
+ */
+ ret = EXIT_SUCCESS;
+ goto end;
+ }
+#ifndef OPENSSL_NO_PSK
+ SSL_CTX_set_psk_client_callback(c_ctx, psk_client_callback);
+ SSL_CTX_set_psk_server_callback(s_ctx, psk_server_callback);
+ SSL_CTX_set_psk_server_callback(s_ctx2, psk_server_callback);
+ if (debug)
+ BIO_printf(bio_err, "setting PSK identity hint to s_ctx\n");
+ if (!SSL_CTX_use_psk_identity_hint(s_ctx, "ctx server identity_hint") ||
+ !SSL_CTX_use_psk_identity_hint(s_ctx2, "ctx server identity_hint")) {
+ BIO_printf(bio_err, "error setting PSK identity hint to s_ctx\n");
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+#endif
+ }
+
+#ifndef OPENSSL_NO_NEXTPROTONEG
+ if (npn_client) {
+ SSL_CTX_set_next_proto_select_cb(c_ctx, cb_client_npn, NULL);
+ }
+ if (npn_server) {
+ if (npn_server_reject) {
+ BIO_printf(bio_err,
+ "Can't have both -npn_server and -npn_server_reject\n");
+ goto end;
+ }
+ SSL_CTX_set_npn_advertised_cb(s_ctx, cb_server_npn, NULL);
+ SSL_CTX_set_npn_advertised_cb(s_ctx2, cb_server_npn, NULL);
+ }
+ if (npn_server_reject) {
+ SSL_CTX_set_npn_advertised_cb(s_ctx, cb_server_rejects_npn, NULL);
+ SSL_CTX_set_npn_advertised_cb(s_ctx2, cb_server_rejects_npn, NULL);
+ }
+#endif
+
+ if (serverinfo_sct) {
+ if (!SSL_CTX_add_client_custom_ext(c_ctx,
+ TLSEXT_TYPE_signed_certificate_timestamp,
+ NULL, NULL, NULL,
+ serverinfo_cli_parse_cb, NULL)) {
+ BIO_printf(bio_err, "Error adding SCT extension\n");
+ goto end;
+ }
+ }
+ if (serverinfo_tack) {
+ if (!SSL_CTX_add_client_custom_ext(c_ctx, TACK_EXT_TYPE,
+ NULL, NULL, NULL,
+ serverinfo_cli_parse_cb, NULL)) {
+ BIO_printf(bio_err, "Error adding TACK extension\n");
+ goto end;
+ }
+ }
+ if (serverinfo_file)
+ if (!SSL_CTX_use_serverinfo_file(s_ctx, serverinfo_file) ||
+ !SSL_CTX_use_serverinfo_file(s_ctx2, serverinfo_file)) {
+ BIO_printf(bio_err, "missing serverinfo file\n");
+ goto end;
+ }
+
+ if (custom_ext) {
+ if (!SSL_CTX_add_client_custom_ext(c_ctx, CUSTOM_EXT_TYPE_0,
+ custom_ext_0_cli_add_cb,
+ NULL, NULL,
+ custom_ext_0_cli_parse_cb, NULL)
+ || !SSL_CTX_add_client_custom_ext(c_ctx, CUSTOM_EXT_TYPE_1,
+ custom_ext_1_cli_add_cb,
+ NULL, NULL,
+ custom_ext_1_cli_parse_cb, NULL)
+ || !SSL_CTX_add_client_custom_ext(c_ctx, CUSTOM_EXT_TYPE_2,
+ custom_ext_2_cli_add_cb,
+ NULL, NULL,
+ custom_ext_2_cli_parse_cb, NULL)
+ || !SSL_CTX_add_client_custom_ext(c_ctx, CUSTOM_EXT_TYPE_3,
+ custom_ext_3_cli_add_cb,
+ NULL, NULL,
+ custom_ext_3_cli_parse_cb, NULL)
+ || !SSL_CTX_add_server_custom_ext(s_ctx, CUSTOM_EXT_TYPE_0,
+ custom_ext_0_srv_add_cb,
+ NULL, NULL,
+ custom_ext_0_srv_parse_cb, NULL)
+ || !SSL_CTX_add_server_custom_ext(s_ctx2, CUSTOM_EXT_TYPE_0,
+ custom_ext_0_srv_add_cb,
+ NULL, NULL,
+ custom_ext_0_srv_parse_cb, NULL)
+ || !SSL_CTX_add_server_custom_ext(s_ctx, CUSTOM_EXT_TYPE_1,
+ custom_ext_1_srv_add_cb,
+ NULL, NULL,
+ custom_ext_1_srv_parse_cb, NULL)
+ || !SSL_CTX_add_server_custom_ext(s_ctx2, CUSTOM_EXT_TYPE_1,
+ custom_ext_1_srv_add_cb,
+ NULL, NULL,
+ custom_ext_1_srv_parse_cb, NULL)
+ || !SSL_CTX_add_server_custom_ext(s_ctx, CUSTOM_EXT_TYPE_2,
+ custom_ext_2_srv_add_cb,
+ NULL, NULL,
+ custom_ext_2_srv_parse_cb, NULL)
+ || !SSL_CTX_add_server_custom_ext(s_ctx2, CUSTOM_EXT_TYPE_2,
+ custom_ext_2_srv_add_cb,
+ NULL, NULL,
+ custom_ext_2_srv_parse_cb, NULL)
+ || !SSL_CTX_add_server_custom_ext(s_ctx, CUSTOM_EXT_TYPE_3,
+ custom_ext_3_srv_add_cb,
+ NULL, NULL,
+ custom_ext_3_srv_parse_cb, NULL)
+ || !SSL_CTX_add_server_custom_ext(s_ctx2, CUSTOM_EXT_TYPE_3,
+ custom_ext_3_srv_add_cb,
+ NULL, NULL,
+ custom_ext_3_srv_parse_cb, NULL)) {
+ BIO_printf(bio_err, "Error setting custom extensions\n");
+ goto end;
+ }
+ }
+
+ if (alpn_server)
+ SSL_CTX_set_alpn_select_cb(s_ctx, cb_server_alpn, alpn_server);
+ if (alpn_server2)
+ SSL_CTX_set_alpn_select_cb(s_ctx2, cb_server_alpn, alpn_server2);
+
+ if (alpn_client) {
+ size_t alpn_len;
+ unsigned char *alpn = next_protos_parse(&alpn_len, alpn_client);
+
+ if (alpn == NULL) {
+ BIO_printf(bio_err, "Error parsing -alpn_client argument\n");
+ goto end;
+ }
+ /* Returns 0 on success!! */
+ if (SSL_CTX_set_alpn_protos(c_ctx, alpn, alpn_len)) {
+ BIO_printf(bio_err, "Error setting ALPN\n");
+ OPENSSL_free(alpn);
+ goto end;
+ }
+ OPENSSL_free(alpn);
+ }
+
+ if (server_sess_in != NULL) {
+ server_sess = read_session(server_sess_in);
+ if (server_sess == NULL)
+ goto end;
+ }
+ if (client_sess_in != NULL) {
+ client_sess = read_session(client_sess_in);
+ if (client_sess == NULL)
+ goto end;
+ }
+
+ if (server_sess_out != NULL || server_sess_in != NULL) {
+ char *keys;
+ long size;
+
+ /* Use a fixed key so that we can decrypt the ticket. */
+ size = SSL_CTX_set_tlsext_ticket_keys(s_ctx, NULL, 0);
+ keys = OPENSSL_zalloc(size);
+ SSL_CTX_set_tlsext_ticket_keys(s_ctx, keys, size);
+ OPENSSL_free(keys);
+ }
+
+ if (sn_server1 != NULL || sn_server2 != NULL)
+ SSL_CTX_set_tlsext_servername_callback(s_ctx, servername_cb);
+
+ c_ssl = SSL_new(c_ctx);
+ s_ssl = SSL_new(s_ctx);
+
+ if (sn_client)
+ SSL_set_tlsext_host_name(c_ssl, sn_client);
+
+ if (!set_protocol_version(server_min_proto, s_ssl, SSL_CTRL_SET_MIN_PROTO_VERSION))
+ goto end;
+ if (!set_protocol_version(server_max_proto, s_ssl, SSL_CTRL_SET_MAX_PROTO_VERSION))
+ goto end;
+ if (!set_protocol_version(client_min_proto, c_ssl, SSL_CTRL_SET_MIN_PROTO_VERSION))
+ goto end;
+ if (!set_protocol_version(client_max_proto, c_ssl, SSL_CTRL_SET_MAX_PROTO_VERSION))
+ goto end;
+
+ if (server_sess) {
+ if (SSL_CTX_add_session(s_ctx, server_sess) == 0) {
+ BIO_printf(bio_err, "Can't add server session\n");
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+ }
+
+ BIO_printf(bio_stdout, "Doing handshakes=%d bytes=%ld\n", number, bytes);
+ for (i = 0; i < number; i++) {
+ if (!reuse) {
+ if (!SSL_set_session(c_ssl, NULL)) {
+ BIO_printf(bio_err, "Failed to set session\n");
+ goto end;
+ }
+ }
+ if (client_sess_in != NULL) {
+ if (SSL_set_session(c_ssl, client_sess) == 0) {
+ BIO_printf(bio_err, "Can't set client session\n");
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+ }
+ switch (bio_type) {
+ case BIO_MEM:
+ ret = doit(s_ssl, c_ssl, bytes);
+ break;
+ case BIO_PAIR:
+ ret = doit_biopair(s_ssl, c_ssl, bytes, &s_time, &c_time);
+ break;
+#ifndef OPENSSL_NO_SOCK
+ case BIO_IPV4:
+ ret = doit_localhost(s_ssl, c_ssl, BIO_FAMILY_IPV4,
+ bytes, &s_time, &c_time);
+ break;
+ case BIO_IPV6:
+ ret = doit_localhost(s_ssl, c_ssl, BIO_FAMILY_IPV6,
+ bytes, &s_time, &c_time);
+ break;
+#else
+ case BIO_IPV4:
+ case BIO_IPV6:
+ ret = EXIT_FAILURE;
+ goto err;
+#endif
+ }
+ if (ret != EXIT_SUCCESS) break;
+ }
+
+ if (should_negotiate && ret == EXIT_SUCCESS &&
+ strcmp(should_negotiate, "fail-server") != 0 &&
+ strcmp(should_negotiate, "fail-client") != 0) {
+ int version = protocol_from_string(should_negotiate);
+ if (version < 0) {
+ BIO_printf(bio_err, "Error parsing: %s\n", should_negotiate);
+ ret = EXIT_FAILURE;
+ goto err;
+ }
+ if (SSL_version(c_ssl) != version) {
+ BIO_printf(bio_err, "Unexpected version negotiated. "
+ "Expected: %s, got %s\n", should_negotiate, SSL_get_version(c_ssl));
+ ret = EXIT_FAILURE;
+ goto err;
+ }
+ }
+
+ if (should_reuse != -1) {
+ if (SSL_session_reused(s_ssl) != should_reuse ||
+ SSL_session_reused(c_ssl) != should_reuse) {
+ BIO_printf(bio_err, "Unexpected session reuse state. "
+ "Expected: %d, server: %d, client: %d\n", should_reuse,
+ SSL_session_reused(s_ssl), SSL_session_reused(c_ssl));
+ ret = EXIT_FAILURE;
+ goto err;
+ }
+ }
+
+ if (server_sess_out != NULL) {
+ if (write_session(server_sess_out, SSL_get_session(s_ssl)) == 0) {
+ ret = EXIT_FAILURE;
+ goto err;
+ }
+ }
+ if (client_sess_out != NULL) {
+ if (write_session(client_sess_out, SSL_get_session(c_ssl)) == 0) {
+ ret = EXIT_FAILURE;
+ goto err;
+ }
+ }
+
+ if (!verbose) {
+ print_details(c_ssl, "");
+ }
+ if (print_time) {
+#ifdef CLOCKS_PER_SEC
+ /*
+ * "To determine the time in seconds, the value returned by the clock
+ * function should be divided by the value of the macro
+ * CLOCKS_PER_SEC." -- ISO/IEC 9899
+ */
+ BIO_printf(bio_stdout, "Approximate total server time: %6.2f s\n"
+ "Approximate total client time: %6.2f s\n",
+ (double)s_time / CLOCKS_PER_SEC,
+ (double)c_time / CLOCKS_PER_SEC);
+#else
+ BIO_printf(bio_stdout,
+ "Approximate total server time: %6.2f units\n"
+ "Approximate total client time: %6.2f units\n",
+ (double)s_time, (double)c_time);
+#endif
+ }
+
+ err:
+ SSL_free(s_ssl);
+ SSL_free(c_ssl);
+
+ end:
+ SSL_CTX_free(s_ctx);
+ SSL_CTX_free(s_ctx2);
+ SSL_CTX_free(c_ctx);
+ SSL_CONF_CTX_free(s_cctx);
+ SSL_CONF_CTX_free(s_cctx2);
+ SSL_CONF_CTX_free(c_cctx);
+ sk_OPENSSL_STRING_free(conf_args);
+
+ BIO_free(bio_stdout);
+
+ SSL_SESSION_free(server_sess);
+ SSL_SESSION_free(client_sess);
+
+#ifndef OPENSSL_NO_CRYPTO_MDEBUG
+ if (CRYPTO_mem_leaks(bio_err) <= 0)
+ ret = EXIT_FAILURE;
+#endif
+ BIO_free(bio_err);
+ EXIT(ret);
+}
+
+#ifndef OPENSSL_NO_SOCK
+int doit_localhost(SSL *s_ssl, SSL *c_ssl, int family, long count,
+ clock_t *s_time, clock_t *c_time)
+{
+ long cw_num = count, cr_num = count, sw_num = count, sr_num = count;
+ BIO *s_ssl_bio = NULL, *c_ssl_bio = NULL;
+ BIO *acpt = NULL, *server = NULL, *client = NULL;
+ char addr_str[40];
+ int ret = EXIT_FAILURE;
+ int err_in_client = 0;
+ int err_in_server = 0;
+
+ acpt = BIO_new_accept(family == BIO_FAMILY_IPV4 ? "127.0.0.1:0"
+ : "[::1]:0");
+ if (acpt == NULL)
+ goto err;
+ BIO_set_accept_ip_family(acpt, family);
+ BIO_set_bind_mode(acpt, BIO_SOCK_NONBLOCK | BIO_SOCK_REUSEADDR);
+ if (BIO_do_accept(acpt) <= 0)
+ goto err;
+
+ BIO_snprintf(addr_str, sizeof(addr_str), ":%s", BIO_get_accept_port(acpt));
+
+ client = BIO_new_connect(addr_str);
+ BIO_set_conn_ip_family(client, family);
+ if (!client)
+ goto err;
+
+ if (BIO_set_nbio(client, 1) <= 0)
+ goto err;
+ if (BIO_set_nbio(acpt, 1) <= 0)
+ goto err;
+
+ {
+ int st_connect = 0, st_accept = 0;
+
+ while(!st_connect || !st_accept) {
+ if (!st_connect) {
+ if (BIO_do_connect(client) <= 0) {
+ if (!BIO_should_retry(client))
+ goto err;
+ } else {
+ st_connect = 1;
+ }
+ }
+ if (!st_accept) {
+ if (BIO_do_accept(acpt) <= 0) {
+ if (!BIO_should_retry(acpt))
+ goto err;
+ } else {
+ st_accept = 1;
+ }
+ }
+ }
+ }
+ /* We're not interested in accepting further connects */
+ server = BIO_pop(acpt);
+ BIO_free_all(acpt);
+ acpt = NULL;
+
+ s_ssl_bio = BIO_new(BIO_f_ssl());
+ if (!s_ssl_bio)
+ goto err;
+
+ c_ssl_bio = BIO_new(BIO_f_ssl());
+ if (!c_ssl_bio)
+ goto err;
+
+ SSL_set_connect_state(c_ssl);
+ SSL_set_bio(c_ssl, client, client);
+ (void)BIO_set_ssl(c_ssl_bio, c_ssl, BIO_NOCLOSE);
+
+ SSL_set_accept_state(s_ssl);
+ SSL_set_bio(s_ssl, server, server);
+ (void)BIO_set_ssl(s_ssl_bio, s_ssl, BIO_NOCLOSE);
+
+ do {
+ /*-
+ * c_ssl_bio: SSL filter BIO
+ *
+ * client: I/O for SSL library
+ *
+ *
+ * server: I/O for SSL library
+ *
+ * s_ssl_bio: SSL filter BIO
+ */
+
+ /*
+ * We have non-blocking behaviour throughout this test program, but
+ * can be sure that there is *some* progress in each iteration; so we
+ * don't have to worry about ..._SHOULD_READ or ..._SHOULD_WRITE --
+ * we just try everything in each iteration
+ */
+
+ {
+ /* CLIENT */
+
+ char cbuf[1024 * 8];
+ int i, r;
+ clock_t c_clock = clock();
+
+ memset(cbuf, 0, sizeof(cbuf));
+
+ if (debug)
+ if (SSL_in_init(c_ssl))
+ printf("client waiting in SSL_connect - %s\n",
+ SSL_state_string_long(c_ssl));
+
+ if (cw_num > 0) {
+ /* Write to server. */
+
+ if (cw_num > (long)sizeof(cbuf))
+ i = sizeof(cbuf);
+ else
+ i = (int)cw_num;
+ r = BIO_write(c_ssl_bio, cbuf, i);
+ if (r < 0) {
+ if (!BIO_should_retry(c_ssl_bio)) {
+ fprintf(stderr, "ERROR in CLIENT\n");
+ err_in_client = 1;
+ goto err;
+ }
+ /*
+ * BIO_should_retry(...) can just be ignored here. The
+ * library expects us to call BIO_write with the same
+ * arguments again, and that's what we will do in the
+ * next iteration.
+ */
+ } else if (r == 0) {
+ fprintf(stderr, "SSL CLIENT STARTUP FAILED\n");
+ goto err;
+ } else {
+ if (debug)
+ printf("client wrote %d\n", r);
+ cw_num -= r;
+ }
+ }
+
+ if (cr_num > 0) {
+ /* Read from server. */
+
+ r = BIO_read(c_ssl_bio, cbuf, sizeof(cbuf));
+ if (r < 0) {
+ if (!BIO_should_retry(c_ssl_bio)) {
+ fprintf(stderr, "ERROR in CLIENT\n");
+ err_in_client = 1;
+ goto err;
+ }
+ /*
+ * Again, "BIO_should_retry" can be ignored.
+ */
+ } else if (r == 0) {
+ fprintf(stderr, "SSL CLIENT STARTUP FAILED\n");
+ goto err;
+ } else {
+ if (debug)
+ printf("client read %d\n", r);
+ cr_num -= r;
+ }
+ }
+
+ /*
+ * c_time and s_time increments will typically be very small
+ * (depending on machine speed and clock tick intervals), but
+ * sampling over a large number of connections should result in
+ * fairly accurate figures. We cannot guarantee a lot, however
+ * -- if each connection lasts for exactly one clock tick, it
+ * will be counted only for the client or only for the server or
+ * even not at all.
+ */
+ *c_time += (clock() - c_clock);
+ }
+
+ {
+ /* SERVER */
+
+ char sbuf[1024 * 8];
+ int i, r;
+ clock_t s_clock = clock();
+
+ memset(sbuf, 0, sizeof(sbuf));
+
+ if (debug)
+ if (SSL_in_init(s_ssl))
+ printf("server waiting in SSL_accept - %s\n",
+ SSL_state_string_long(s_ssl));
+
+ if (sw_num > 0) {
+ /* Write to client. */
+
+ if (sw_num > (long)sizeof(sbuf))
+ i = sizeof(sbuf);
+ else
+ i = (int)sw_num;
+ r = BIO_write(s_ssl_bio, sbuf, i);
+ if (r < 0) {
+ if (!BIO_should_retry(s_ssl_bio)) {
+ fprintf(stderr, "ERROR in SERVER\n");
+ err_in_server = 1;
+ goto err;
+ }
+ /* Ignore "BIO_should_retry". */
+ } else if (r == 0) {
+ fprintf(stderr, "SSL SERVER STARTUP FAILED\n");
+ goto err;
+ } else {
+ if (debug)
+ printf("server wrote %d\n", r);
+ sw_num -= r;
+ }
+ }
+
+ if (sr_num > 0) {
+ /* Read from client. */
+
+ r = BIO_read(s_ssl_bio, sbuf, sizeof(sbuf));
+ if (r < 0) {
+ if (!BIO_should_retry(s_ssl_bio)) {
+ fprintf(stderr, "ERROR in SERVER\n");
+ err_in_server = 1;
+ goto err;
+ }
+ /* blah, blah */
+ } else if (r == 0) {
+ fprintf(stderr, "SSL SERVER STARTUP FAILED\n");
+ goto err;
+ } else {
+ if (debug)
+ printf("server read %d\n", r);
+ sr_num -= r;
+ }
+ }
+
+ *s_time += (clock() - s_clock);
+ }
+ }
+ while (cw_num > 0 || cr_num > 0 || sw_num > 0 || sr_num > 0);
+
+ if (verbose)
+ print_details(c_ssl, "DONE via TCP connect: ");
+# ifndef OPENSSL_NO_NEXTPROTONEG
+ if (verify_npn(c_ssl, s_ssl) < 0)
+ goto end;
+# endif
+ if (verify_serverinfo() < 0) {
+ fprintf(stderr, "Server info verify error\n");
+ goto err;
+ }
+ if (verify_alpn(c_ssl, s_ssl) < 0
+ || verify_servername(c_ssl, s_ssl) < 0)
+ goto err;
+
+ if (custom_ext_error) {
+ fprintf(stderr, "Custom extension error\n");
+ goto err;
+ }
+
+# ifndef OPENSSL_NO_NEXTPROTONEG
+ end:
+# endif
+ ret = EXIT_SUCCESS;
+
+ err:
+ ERR_print_errors(bio_err);
+
+ BIO_free_all(acpt);
+ BIO_free(server);
+ BIO_free(client);
+ BIO_free(s_ssl_bio);
+ BIO_free(c_ssl_bio);
+
+ if (should_negotiate != NULL && strcmp(should_negotiate, "fail-client") == 0)
+ ret = (err_in_client != 0) ? EXIT_SUCCESS : EXIT_FAILURE;
+ else if (should_negotiate != NULL && strcmp(should_negotiate, "fail-server") == 0)
+ ret = (err_in_server != 0) ? EXIT_SUCCESS : EXIT_FAILURE;
+
+ return ret;
+}
+#endif
+
+int doit_biopair(SSL *s_ssl, SSL *c_ssl, long count,
+ clock_t *s_time, clock_t *c_time)
+{
+ long cw_num = count, cr_num = count, sw_num = count, sr_num = count;
+ BIO *s_ssl_bio = NULL, *c_ssl_bio = NULL;
+ BIO *server = NULL, *server_io = NULL, *client = NULL, *client_io = NULL;
+ int ret = EXIT_FAILURE;
+ int err_in_client = 0;
+ int err_in_server = 0;
+
+ size_t bufsiz = 256; /* small buffer for testing */
+
+ if (!BIO_new_bio_pair(&server, bufsiz, &server_io, bufsiz))
+ goto err;
+ if (!BIO_new_bio_pair(&client, bufsiz, &client_io, bufsiz))
+ goto err;
+
+ s_ssl_bio = BIO_new(BIO_f_ssl());
+ if (!s_ssl_bio)
+ goto err;
+
+ c_ssl_bio = BIO_new(BIO_f_ssl());
+ if (!c_ssl_bio)
+ goto err;
+
+ SSL_set_connect_state(c_ssl);
+ SSL_set_bio(c_ssl, client, client);
+ (void)BIO_set_ssl(c_ssl_bio, c_ssl, BIO_NOCLOSE);
+
+ SSL_set_accept_state(s_ssl);
+ SSL_set_bio(s_ssl, server, server);
+ (void)BIO_set_ssl(s_ssl_bio, s_ssl, BIO_NOCLOSE);
+
+ do {
+ /*-
+ * c_ssl_bio: SSL filter BIO
+ *
+ * client: pseudo-I/O for SSL library
+ *
+ * client_io: client's SSL communication; usually to be
+ * relayed over some I/O facility, but in this
+ * test program, we're the server, too:
+ *
+ * server_io: server's SSL communication
+ *
+ * server: pseudo-I/O for SSL library
+ *
+ * s_ssl_bio: SSL filter BIO
+ *
+ * The client and the server each employ a "BIO pair":
+ * client + client_io, server + server_io.
+ * BIO pairs are symmetric. A BIO pair behaves similar
+ * to a non-blocking socketpair (but both endpoints must
+ * be handled by the same thread).
+ * [Here we could connect client and server to the ends
+ * of a single BIO pair, but then this code would be less
+ * suitable as an example for BIO pairs in general.]
+ *
+ * Useful functions for querying the state of BIO pair endpoints:
+ *
+ * BIO_ctrl_pending(bio) number of bytes we can read now
+ * BIO_ctrl_get_read_request(bio) number of bytes needed to fulfill
+ * other side's read attempt
+ * BIO_ctrl_get_write_guarantee(bio) number of bytes we can write now
+ *
+ * ..._read_request is never more than ..._write_guarantee;
+ * it depends on the application which one you should use.
+ */
+
+ /*
+ * We have non-blocking behaviour throughout this test program, but
+ * can be sure that there is *some* progress in each iteration; so we
+ * don't have to worry about ..._SHOULD_READ or ..._SHOULD_WRITE --
+ * we just try everything in each iteration
+ */
+
+ {
+ /* CLIENT */
+
+ char cbuf[1024 * 8];
+ int i, r;
+ clock_t c_clock = clock();
+
+ memset(cbuf, 0, sizeof(cbuf));
+
+ if (debug)
+ if (SSL_in_init(c_ssl))
+ printf("client waiting in SSL_connect - %s\n",
+ SSL_state_string_long(c_ssl));
+
+ if (cw_num > 0) {
+ /* Write to server. */
+
+ if (cw_num > (long)sizeof(cbuf))
+ i = sizeof(cbuf);
+ else
+ i = (int)cw_num;
+ r = BIO_write(c_ssl_bio, cbuf, i);
+ if (r < 0) {
+ if (!BIO_should_retry(c_ssl_bio)) {
+ fprintf(stderr, "ERROR in CLIENT\n");
+ err_in_client = 1;
+ goto err;
+ }
+ /*
+ * BIO_should_retry(...) can just be ignored here. The
+ * library expects us to call BIO_write with the same
+ * arguments again, and that's what we will do in the
+ * next iteration.
+ */
+ } else if (r == 0) {
+ fprintf(stderr, "SSL CLIENT STARTUP FAILED\n");
+ goto err;
+ } else {
+ if (debug)
+ printf("client wrote %d\n", r);
+ cw_num -= r;
+ }
+ }
+
+ if (cr_num > 0) {
+ /* Read from server. */
+
+ r = BIO_read(c_ssl_bio, cbuf, sizeof(cbuf));
+ if (r < 0) {
+ if (!BIO_should_retry(c_ssl_bio)) {
+ fprintf(stderr, "ERROR in CLIENT\n");
+ err_in_client = 1;
+ goto err;
+ }
+ /*
+ * Again, "BIO_should_retry" can be ignored.
+ */
+ } else if (r == 0) {
+ fprintf(stderr, "SSL CLIENT STARTUP FAILED\n");
+ goto err;
+ } else {
+ if (debug)
+ printf("client read %d\n", r);
+ cr_num -= r;
+ }
+ }
+
+ /*
+ * c_time and s_time increments will typically be very small
+ * (depending on machine speed and clock tick intervals), but
+ * sampling over a large number of connections should result in
+ * fairly accurate figures. We cannot guarantee a lot, however
+ * -- if each connection lasts for exactly one clock tick, it
+ * will be counted only for the client or only for the server or
+ * even not at all.
+ */
+ *c_time += (clock() - c_clock);
+ }
+
+ {
+ /* SERVER */
+
+ char sbuf[1024 * 8];
+ int i, r;
+ clock_t s_clock = clock();
+
+ memset(sbuf, 0, sizeof(sbuf));
+
+ if (debug)
+ if (SSL_in_init(s_ssl))
+ printf("server waiting in SSL_accept - %s\n",
+ SSL_state_string_long(s_ssl));
+
+ if (sw_num > 0) {
+ /* Write to client. */
+
+ if (sw_num > (long)sizeof(sbuf))
+ i = sizeof(sbuf);
+ else
+ i = (int)sw_num;
+ r = BIO_write(s_ssl_bio, sbuf, i);
+ if (r < 0) {
+ if (!BIO_should_retry(s_ssl_bio)) {
+ fprintf(stderr, "ERROR in SERVER\n");
+ err_in_server = 1;
+ goto err;
+ }
+ /* Ignore "BIO_should_retry". */
+ } else if (r == 0) {
+ fprintf(stderr, "SSL SERVER STARTUP FAILED\n");
+ goto err;
+ } else {
+ if (debug)
+ printf("server wrote %d\n", r);
+ sw_num -= r;
+ }
+ }
+
+ if (sr_num > 0) {
+ /* Read from client. */
+
+ r = BIO_read(s_ssl_bio, sbuf, sizeof(sbuf));
+ if (r < 0) {
+ if (!BIO_should_retry(s_ssl_bio)) {
+ fprintf(stderr, "ERROR in SERVER\n");
+ err_in_server = 1;
+ goto err;
+ }
+ /* blah, blah */
+ } else if (r == 0) {
+ fprintf(stderr, "SSL SERVER STARTUP FAILED\n");
+ goto err;
+ } else {
+ if (debug)
+ printf("server read %d\n", r);
+ sr_num -= r;
+ }
+ }
+
+ *s_time += (clock() - s_clock);
+ }
+
+ {
+ /* "I/O" BETWEEN CLIENT AND SERVER. */
+
+ size_t r1, r2;
+ BIO *io1 = server_io, *io2 = client_io;
+ /*
+ * we use the non-copying interface for io1 and the standard
+ * BIO_write/BIO_read interface for io2
+ */
+
+ static int prev_progress = 1;
+ int progress = 0;
+
+ /* io1 to io2 */
+ do {
+ size_t num;
+ int r;
+
+ r1 = BIO_ctrl_pending(io1);
+ r2 = BIO_ctrl_get_write_guarantee(io2);
+
+ num = r1;
+ if (r2 < num)
+ num = r2;
+ if (num) {
+ char *dataptr;
+
+ if (INT_MAX < num) /* yeah, right */
+ num = INT_MAX;
+
+ r = BIO_nread(io1, &dataptr, (int)num);
+ assert(r > 0);
+ assert(r <= (int)num);
+ /*
+ * possibly r < num (non-contiguous data)
+ */
+ num = r;
+ r = BIO_write(io2, dataptr, (int)num);
+ if (r != (int)num) { /* can't happen */
+ fprintf(stderr, "ERROR: BIO_write could not write "
+ "BIO_ctrl_get_write_guarantee() bytes");
+ goto err;
+ }
+ progress = 1;
+
+ if (debug)
+ printf((io1 == client_io) ?
+ "C->S relaying: %d bytes\n" :
+ "S->C relaying: %d bytes\n", (int)num);
+ }
+ }
+ while (r1 && r2);
+
+ /* io2 to io1 */
+ {
+ size_t num;
+ int r;
+
+ r1 = BIO_ctrl_pending(io2);
+ r2 = BIO_ctrl_get_read_request(io1);
+ /*
+ * here we could use ..._get_write_guarantee instead of
+ * ..._get_read_request, but by using the latter we test
+ * restartability of the SSL implementation more thoroughly
+ */
+ num = r1;
+ if (r2 < num)
+ num = r2;
+ if (num) {
+ char *dataptr;
+
+ if (INT_MAX < num)
+ num = INT_MAX;
+
+ if (num > 1)
+ --num; /* test restartability even more thoroughly */
+
+ r = BIO_nwrite0(io1, &dataptr);
+ assert(r > 0);
+ if (r < (int)num)
+ num = r;
+ r = BIO_read(io2, dataptr, (int)num);
+ if (r != (int)num) { /* can't happen */
+ fprintf(stderr, "ERROR: BIO_read could not read "
+ "BIO_ctrl_pending() bytes");
+ goto err;
+ }
+ progress = 1;
+ r = BIO_nwrite(io1, &dataptr, (int)num);
+ if (r != (int)num) { /* can't happen */
+ fprintf(stderr, "ERROR: BIO_nwrite() did not accept "
+ "BIO_nwrite0() bytes");
+ goto err;
+ }
+
+ if (debug)
+ printf((io2 == client_io) ?
+ "C->S relaying: %d bytes\n" :
+ "S->C relaying: %d bytes\n", (int)num);
+ }
+ } /* no loop, BIO_ctrl_get_read_request now
+ * returns 0 anyway */
+
+ if (!progress && !prev_progress)
+ if (cw_num > 0 || cr_num > 0 || sw_num > 0 || sr_num > 0) {
+ fprintf(stderr, "ERROR: got stuck\n");
+ fprintf(stderr, " ERROR.\n");
+ goto err;
+ }
+ prev_progress = progress;
+ }
+ }
+ while (cw_num > 0 || cr_num > 0 || sw_num > 0 || sr_num > 0);
+
+ if (verbose)
+ print_details(c_ssl, "DONE via BIO pair: ");
+#ifndef OPENSSL_NO_NEXTPROTONEG
+ if (verify_npn(c_ssl, s_ssl) < 0)
+ goto end;
+#endif
+ if (verify_serverinfo() < 0) {
+ fprintf(stderr, "Server info verify error\n");
+ goto err;
+ }
+ if (verify_alpn(c_ssl, s_ssl) < 0
+ || verify_servername(c_ssl, s_ssl) < 0)
+ goto err;
+
+ if (custom_ext_error) {
+ fprintf(stderr, "Custom extension error\n");
+ goto err;
+ }
+
+#ifndef OPENSSL_NO_NEXTPROTONEG
+ end:
+#endif
+ ret = EXIT_SUCCESS;
+
+ err:
+ ERR_print_errors(bio_err);
+
+ BIO_free(server);
+ BIO_free(server_io);
+ BIO_free(client);
+ BIO_free(client_io);
+ BIO_free(s_ssl_bio);
+ BIO_free(c_ssl_bio);
+
+ if (should_negotiate != NULL && strcmp(should_negotiate, "fail-client") == 0)
+ ret = (err_in_client != 0) ? EXIT_SUCCESS : EXIT_FAILURE;
+ else if (should_negotiate != NULL && strcmp(should_negotiate, "fail-server") == 0)
+ ret = (err_in_server != 0) ? EXIT_SUCCESS : EXIT_FAILURE;
+
+ return ret;
+}
+
+#define W_READ 1
+#define W_WRITE 2
+#define C_DONE 1
+#define S_DONE 2
+
+int doit(SSL *s_ssl, SSL *c_ssl, long count)
+{
+ char *cbuf = NULL, *sbuf = NULL;
+ long bufsiz;
+ long cw_num = count, cr_num = count;
+ long sw_num = count, sr_num = count;
+ int ret = EXIT_FAILURE;
+ BIO *c_to_s = NULL;
+ BIO *s_to_c = NULL;
+ BIO *c_bio = NULL;
+ BIO *s_bio = NULL;
+ int c_r, c_w, s_r, s_w;
+ int i, j;
+ int done = 0;
+ int c_write, s_write;
+ int do_server = 0, do_client = 0;
+ int max_frag = 5 * 1024;
+ int err_in_client = 0;
+ int err_in_server = 0;
+
+ bufsiz = count > 40 * 1024 ? 40 * 1024 : count;
+
+ if ((cbuf = OPENSSL_zalloc(bufsiz)) == NULL)
+ goto err;
+ if ((sbuf = OPENSSL_zalloc(bufsiz)) == NULL)
+ goto err;
+
+ c_to_s = BIO_new(BIO_s_mem());
+ s_to_c = BIO_new(BIO_s_mem());
+ if ((s_to_c == NULL) || (c_to_s == NULL)) {
+ ERR_print_errors(bio_err);
+ goto err;
+ }
+
+ c_bio = BIO_new(BIO_f_ssl());
+ s_bio = BIO_new(BIO_f_ssl());
+ if ((c_bio == NULL) || (s_bio == NULL)) {
+ ERR_print_errors(bio_err);
+ goto err;
+ }
+
+ SSL_set_connect_state(c_ssl);
+ SSL_set_bio(c_ssl, s_to_c, c_to_s);
+ SSL_set_max_send_fragment(c_ssl, max_frag);
+ BIO_set_ssl(c_bio, c_ssl, BIO_NOCLOSE);
+
+ /*
+ * We've just given our ref to these BIOs to c_ssl. We need another one to
+ * give to s_ssl
+ */
+ if (!BIO_up_ref(c_to_s)) {
+ /* c_to_s and s_to_c will get freed when we free c_ssl */
+ c_to_s = NULL;
+ s_to_c = NULL;
+ goto err;
+ }
+ if (!BIO_up_ref(s_to_c)) {
+ /* s_to_c will get freed when we free c_ssl */
+ s_to_c = NULL;
+ goto err;
+ }
+
+ SSL_set_accept_state(s_ssl);
+ SSL_set_bio(s_ssl, c_to_s, s_to_c);
+
+ /* We've used up all our refs to these now */
+ c_to_s = NULL;
+ s_to_c = NULL;
+
+ SSL_set_max_send_fragment(s_ssl, max_frag);
+ BIO_set_ssl(s_bio, s_ssl, BIO_NOCLOSE);
+
+ c_r = 0;
+ s_r = 1;
+ c_w = 1;
+ s_w = 0;
+ c_write = 1, s_write = 0;
+
+ /* We can always do writes */
+ for (;;) {
+ do_server = 0;
+ do_client = 0;
+
+ i = (int)BIO_pending(s_bio);
+ if ((i && s_r) || s_w)
+ do_server = 1;
+
+ i = (int)BIO_pending(c_bio);
+ if ((i && c_r) || c_w)
+ do_client = 1;
+
+ if (do_server && debug) {
+ if (SSL_in_init(s_ssl))
+ printf("server waiting in SSL_accept - %s\n",
+ SSL_state_string_long(s_ssl));
+ }
+
+ if (do_client && debug) {
+ if (SSL_in_init(c_ssl))
+ printf("client waiting in SSL_connect - %s\n",
+ SSL_state_string_long(c_ssl));
+ }
+
+ if (!do_client && !do_server) {
+ fprintf(stdout, "ERROR IN STARTUP\n");
+ ERR_print_errors(bio_err);
+ goto err;
+ }
+ if (do_client && !(done & C_DONE)) {
+ if (c_write) {
+ j = (cw_num > bufsiz) ? (int)bufsiz : (int)cw_num;
+ i = BIO_write(c_bio, cbuf, j);
+ if (i < 0) {
+ c_r = 0;
+ c_w = 0;
+ if (BIO_should_retry(c_bio)) {
+ if (BIO_should_read(c_bio))
+ c_r = 1;
+ if (BIO_should_write(c_bio))
+ c_w = 1;
+ } else {
+ fprintf(stderr, "ERROR in CLIENT\n");
+ err_in_client = 1;
+ ERR_print_errors(bio_err);
+ goto err;
+ }
+ } else if (i == 0) {
+ fprintf(stderr, "SSL CLIENT STARTUP FAILED\n");
+ goto err;
+ } else {
+ if (debug)
+ printf("client wrote %d\n", i);
+ /* ok */
+ s_r = 1;
+ c_write = 0;
+ cw_num -= i;
+ if (max_frag > 1029)
+ SSL_set_max_send_fragment(c_ssl, max_frag -= 5);
+ }
+ } else {
+ i = BIO_read(c_bio, cbuf, bufsiz);
+ if (i < 0) {
+ c_r = 0;
+ c_w = 0;
+ if (BIO_should_retry(c_bio)) {
+ if (BIO_should_read(c_bio))
+ c_r = 1;
+ if (BIO_should_write(c_bio))
+ c_w = 1;
+ } else {
+ fprintf(stderr, "ERROR in CLIENT\n");
+ err_in_client = 1;
+ ERR_print_errors(bio_err);
+ goto err;
+ }
+ } else if (i == 0) {
+ fprintf(stderr, "SSL CLIENT STARTUP FAILED\n");
+ goto err;
+ } else {
+ if (debug)
+ printf("client read %d\n", i);
+ cr_num -= i;
+ if (sw_num > 0) {
+ s_write = 1;
+ s_w = 1;
+ }
+ if (cr_num <= 0) {
+ s_write = 1;
+ s_w = 1;
+ done = S_DONE | C_DONE;
+ }
+ }
+ }
+ }
+
+ if (do_server && !(done & S_DONE)) {
+ if (!s_write) {
+ i = BIO_read(s_bio, sbuf, bufsiz);
+ if (i < 0) {
+ s_r = 0;
+ s_w = 0;
+ if (BIO_should_retry(s_bio)) {
+ if (BIO_should_read(s_bio))
+ s_r = 1;
+ if (BIO_should_write(s_bio))
+ s_w = 1;
+ } else {
+ fprintf(stderr, "ERROR in SERVER\n");
+ err_in_server = 1;
+ ERR_print_errors(bio_err);
+ goto err;
+ }
+ } else if (i == 0) {
+ ERR_print_errors(bio_err);
+ fprintf(stderr,
+ "SSL SERVER STARTUP FAILED in SSL_read\n");
+ goto err;
+ } else {
+ if (debug)
+ printf("server read %d\n", i);
+ sr_num -= i;
+ if (cw_num > 0) {
+ c_write = 1;
+ c_w = 1;
+ }
+ if (sr_num <= 0) {
+ s_write = 1;
+ s_w = 1;
+ c_write = 0;
+ }
+ }
+ } else {
+ j = (sw_num > bufsiz) ? (int)bufsiz : (int)sw_num;
+ i = BIO_write(s_bio, sbuf, j);
+ if (i < 0) {
+ s_r = 0;
+ s_w = 0;
+ if (BIO_should_retry(s_bio)) {
+ if (BIO_should_read(s_bio))
+ s_r = 1;
+ if (BIO_should_write(s_bio))
+ s_w = 1;
+ } else {
+ fprintf(stderr, "ERROR in SERVER\n");
+ err_in_server = 1;
+ ERR_print_errors(bio_err);
+ goto err;
+ }
+ } else if (i == 0) {
+ ERR_print_errors(bio_err);
+ fprintf(stderr,
+ "SSL SERVER STARTUP FAILED in SSL_write\n");
+ goto err;
+ } else {
+ if (debug)
+ printf("server wrote %d\n", i);
+ sw_num -= i;
+ s_write = 0;
+ c_r = 1;
+ if (sw_num <= 0)
+ done |= S_DONE;
+ if (max_frag > 1029)
+ SSL_set_max_send_fragment(s_ssl, max_frag -= 5);
+ }
+ }
+ }
+
+ if ((done & S_DONE) && (done & C_DONE))
+ break;
+ }
+
+ if (verbose)
+ print_details(c_ssl, "DONE: ");
+#ifndef OPENSSL_NO_NEXTPROTONEG
+ if (verify_npn(c_ssl, s_ssl) < 0)
+ goto err;
+#endif
+ if (verify_serverinfo() < 0) {
+ fprintf(stderr, "Server info verify error\n");
+ goto err;
+ }
+ if (custom_ext_error) {
+ fprintf(stderr, "Custom extension error\n");
+ goto err;
+ }
+ ret = EXIT_SUCCESS;
+ err:
+ BIO_free(c_to_s);
+ BIO_free(s_to_c);
+ BIO_free_all(c_bio);
+ BIO_free_all(s_bio);
+ OPENSSL_free(cbuf);
+ OPENSSL_free(sbuf);
+
+ if (should_negotiate != NULL && strcmp(should_negotiate, "fail-client") == 0)
+ ret = (err_in_client != 0) ? EXIT_SUCCESS : EXIT_FAILURE;
+ else if (should_negotiate != NULL && strcmp(should_negotiate, "fail-server") == 0)
+ ret = (err_in_server != 0) ? EXIT_SUCCESS : EXIT_FAILURE;
+
+ return ret;
+}
+
+static int verify_callback(int ok, X509_STORE_CTX *ctx)
+{
+ char *s, buf[256];
+
+ s = X509_NAME_oneline(X509_get_subject_name(X509_STORE_CTX_get_current_cert(ctx)),
+ buf, sizeof(buf));
+ if (s != NULL) {
+ if (ok)
+ printf("depth=%d %s\n", X509_STORE_CTX_get_error_depth(ctx), buf);
+ else {
+ fprintf(stderr, "depth=%d error=%d %s\n",
+ X509_STORE_CTX_get_error_depth(ctx),
+ X509_STORE_CTX_get_error(ctx), buf);
+ }
+ }
+
+ if (ok == 0) {
+ int i = X509_STORE_CTX_get_error(ctx);
+
+ switch (i) {
+ default:
+ fprintf(stderr, "Error string: %s\n",
+ X509_verify_cert_error_string(i));
+ break;
+ case X509_V_ERR_CERT_NOT_YET_VALID:
+ case X509_V_ERR_CERT_HAS_EXPIRED:
+ case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT:
+ ok = 1;
+ break;
+ }
+ }
+
+ return ok;
+}
+
+static int app_verify_callback(X509_STORE_CTX *ctx, void *arg)
+{
+ int ok = 1;
+ struct app_verify_arg *cb_arg = arg;
+
+ if (cb_arg->app_verify) {
+ char *s = NULL, buf[256];
+ X509 *c = X509_STORE_CTX_get0_cert(ctx);
+
+ printf("In app_verify_callback, allowing cert. ");
+ printf("Arg is: %s\n", cb_arg->string);
+ printf("Finished printing do we have a context? 0x%p a cert? 0x%p\n",
+ (void *)ctx, (void *)c);
+ if (c)
+ s = X509_NAME_oneline(X509_get_subject_name(c), buf, 256);
+ if (s != NULL) {
+ printf("cert depth=%d %s\n",
+ X509_STORE_CTX_get_error_depth(ctx), buf);
+ }
+ return 1;
+ }
+
+ ok = X509_verify_cert(ctx);
+
+ return ok;
+}
+
+#ifndef OPENSSL_NO_DH
+/*-
+ * These DH parameters have been generated as follows:
+ * $ openssl dhparam -C -noout 512
+ * $ openssl dhparam -C -noout 1024
+ * $ openssl dhparam -C -noout -dsaparam 1024
+ * (The third function has been renamed to avoid name conflicts.)
+ */
+static DH *get_dh512(void)
+{
+ static unsigned char dh512_p[] = {
+ 0xCB, 0xC8, 0xE1, 0x86, 0xD0, 0x1F, 0x94, 0x17, 0xA6, 0x99, 0xF0,
+ 0xC6,
+ 0x1F, 0x0D, 0xAC, 0xB6, 0x25, 0x3E, 0x06, 0x39, 0xCA, 0x72, 0x04,
+ 0xB0,
+ 0x6E, 0xDA, 0xC0, 0x61, 0xE6, 0x7A, 0x77, 0x25, 0xE8, 0x3B, 0xB9,
+ 0x5F,
+ 0x9A, 0xB6, 0xB5, 0xFE, 0x99, 0x0B, 0xA1, 0x93, 0x4E, 0x35, 0x33,
+ 0xB8,
+ 0xE1, 0xF1, 0x13, 0x4F, 0x59, 0x1A, 0xD2, 0x57, 0xC0, 0x26, 0x21,
+ 0x33,
+ 0x02, 0xC5, 0xAE, 0x23,
+ };
+ static unsigned char dh512_g[] = {
+ 0x02,
+ };
+ DH *dh;
+ BIGNUM *p, *g;
+
+ if ((dh = DH_new()) == NULL)
+ return NULL;
+ p = BN_bin2bn(dh512_p, sizeof(dh512_p), NULL);
+ g = BN_bin2bn(dh512_g, sizeof(dh512_g), NULL);
+ if ((p == NULL) || (g == NULL) || !DH_set0_pqg(dh, p, NULL, g)) {
+ DH_free(dh);
+ BN_free(p);
+ BN_free(g);
+ return NULL;
+ }
+ return dh;
+}
+
+static DH *get_dh1024(void)
+{
+ static unsigned char dh1024_p[] = {
+ 0xF8, 0x81, 0x89, 0x7D, 0x14, 0x24, 0xC5, 0xD1, 0xE6, 0xF7, 0xBF,
+ 0x3A,
+ 0xE4, 0x90, 0xF4, 0xFC, 0x73, 0xFB, 0x34, 0xB5, 0xFA, 0x4C, 0x56,
+ 0xA2,
+ 0xEA, 0xA7, 0xE9, 0xC0, 0xC0, 0xCE, 0x89, 0xE1, 0xFA, 0x63, 0x3F,
+ 0xB0,
+ 0x6B, 0x32, 0x66, 0xF1, 0xD1, 0x7B, 0xB0, 0x00, 0x8F, 0xCA, 0x87,
+ 0xC2,
+ 0xAE, 0x98, 0x89, 0x26, 0x17, 0xC2, 0x05, 0xD2, 0xEC, 0x08, 0xD0,
+ 0x8C,
+ 0xFF, 0x17, 0x52, 0x8C, 0xC5, 0x07, 0x93, 0x03, 0xB1, 0xF6, 0x2F,
+ 0xB8,
+ 0x1C, 0x52, 0x47, 0x27, 0x1B, 0xDB, 0xD1, 0x8D, 0x9D, 0x69, 0x1D,
+ 0x52,
+ 0x4B, 0x32, 0x81, 0xAA, 0x7F, 0x00, 0xC8, 0xDC, 0xE6, 0xD9, 0xCC,
+ 0xC1,
+ 0x11, 0x2D, 0x37, 0x34, 0x6C, 0xEA, 0x02, 0x97, 0x4B, 0x0E, 0xBB,
+ 0xB1,
+ 0x71, 0x33, 0x09, 0x15, 0xFD, 0xDD, 0x23, 0x87, 0x07, 0x5E, 0x89,
+ 0xAB,
+ 0x6B, 0x7C, 0x5F, 0xEC, 0xA6, 0x24, 0xDC, 0x53,
+ };
+ static unsigned char dh1024_g[] = {
+ 0x02,
+ };
+ DH *dh;
+ BIGNUM *p, *g;
+
+ if ((dh = DH_new()) == NULL)
+ return NULL;
+ p = BN_bin2bn(dh1024_p, sizeof(dh1024_p), NULL);
+ g = BN_bin2bn(dh1024_g, sizeof(dh1024_g), NULL);
+ if ((p == NULL) || (g == NULL) || !DH_set0_pqg(dh, p, NULL, g)) {
+ DH_free(dh);
+ BN_free(p);
+ BN_free(g);
+ return NULL;
+ }
+ return dh;
+}
+
+static DH *get_dh1024dsa(void)
+{
+ static unsigned char dh1024_p[] = {
+ 0xC8, 0x00, 0xF7, 0x08, 0x07, 0x89, 0x4D, 0x90, 0x53, 0xF3, 0xD5,
+ 0x00,
+ 0x21, 0x1B, 0xF7, 0x31, 0xA6, 0xA2, 0xDA, 0x23, 0x9A, 0xC7, 0x87,
+ 0x19,
+ 0x3B, 0x47, 0xB6, 0x8C, 0x04, 0x6F, 0xFF, 0xC6, 0x9B, 0xB8, 0x65,
+ 0xD2,
+ 0xC2, 0x5F, 0x31, 0x83, 0x4A, 0xA7, 0x5F, 0x2F, 0x88, 0x38, 0xB6,
+ 0x55,
+ 0xCF, 0xD9, 0x87, 0x6D, 0x6F, 0x9F, 0xDA, 0xAC, 0xA6, 0x48, 0xAF,
+ 0xFC,
+ 0x33, 0x84, 0x37, 0x5B, 0x82, 0x4A, 0x31, 0x5D, 0xE7, 0xBD, 0x52,
+ 0x97,
+ 0xA1, 0x77, 0xBF, 0x10, 0x9E, 0x37, 0xEA, 0x64, 0xFA, 0xCA, 0x28,
+ 0x8D,
+ 0x9D, 0x3B, 0xD2, 0x6E, 0x09, 0x5C, 0x68, 0xC7, 0x45, 0x90, 0xFD,
+ 0xBB,
+ 0x70, 0xC9, 0x3A, 0xBB, 0xDF, 0xD4, 0x21, 0x0F, 0xC4, 0x6A, 0x3C,
+ 0xF6,
+ 0x61, 0xCF, 0x3F, 0xD6, 0x13, 0xF1, 0x5F, 0xBC, 0xCF, 0xBC, 0x26,
+ 0x9E,
+ 0xBC, 0x0B, 0xBD, 0xAB, 0x5D, 0xC9, 0x54, 0x39,
+ };
+ static unsigned char dh1024_g[] = {
+ 0x3B, 0x40, 0x86, 0xE7, 0xF3, 0x6C, 0xDE, 0x67, 0x1C, 0xCC, 0x80,
+ 0x05,
+ 0x5A, 0xDF, 0xFE, 0xBD, 0x20, 0x27, 0x74, 0x6C, 0x24, 0xC9, 0x03,
+ 0xF3,
+ 0xE1, 0x8D, 0xC3, 0x7D, 0x98, 0x27, 0x40, 0x08, 0xB8, 0x8C, 0x6A,
+ 0xE9,
+ 0xBB, 0x1A, 0x3A, 0xD6, 0x86, 0x83, 0x5E, 0x72, 0x41, 0xCE, 0x85,
+ 0x3C,
+ 0xD2, 0xB3, 0xFC, 0x13, 0xCE, 0x37, 0x81, 0x9E, 0x4C, 0x1C, 0x7B,
+ 0x65,
+ 0xD3, 0xE6, 0xA6, 0x00, 0xF5, 0x5A, 0x95, 0x43, 0x5E, 0x81, 0xCF,
+ 0x60,
+ 0xA2, 0x23, 0xFC, 0x36, 0xA7, 0x5D, 0x7A, 0x4C, 0x06, 0x91, 0x6E,
+ 0xF6,
+ 0x57, 0xEE, 0x36, 0xCB, 0x06, 0xEA, 0xF5, 0x3D, 0x95, 0x49, 0xCB,
+ 0xA7,
+ 0xDD, 0x81, 0xDF, 0x80, 0x09, 0x4A, 0x97, 0x4D, 0xA8, 0x22, 0x72,
+ 0xA1,
+ 0x7F, 0xC4, 0x70, 0x56, 0x70, 0xE8, 0x20, 0x10, 0x18, 0x8F, 0x2E,
+ 0x60,
+ 0x07, 0xE7, 0x68, 0x1A, 0x82, 0x5D, 0x32, 0xA2,
+ };
+ DH *dh;
+ BIGNUM *p, *g;
+
+ if ((dh = DH_new()) == NULL)
+ return NULL;
+ p = BN_bin2bn(dh1024_p, sizeof(dh1024_p), NULL);
+ g = BN_bin2bn(dh1024_g, sizeof(dh1024_g), NULL);
+ if ((p == NULL) || (g == NULL) || !DH_set0_pqg(dh, p, NULL, g)) {
+ DH_free(dh);
+ BN_free(p);
+ BN_free(g);
+ return NULL;
+ }
+ DH_set_length(dh, 160);
+ return dh;
+}
+#endif
+
+#ifndef OPENSSL_NO_PSK
+/* convert the PSK key (psk_key) in ascii to binary (psk) */
+static int psk_key2bn(const char *pskkey, unsigned char *psk,
+ unsigned int max_psk_len)
+{
+ int ret;
+ BIGNUM *bn = NULL;
+
+ ret = BN_hex2bn(&bn, pskkey);
+ if (!ret) {
+ BIO_printf(bio_err, "Could not convert PSK key '%s' to BIGNUM\n",
+ pskkey);
+ BN_free(bn);
+ return 0;
+ }
+ if (BN_num_bytes(bn) > (int)max_psk_len) {
+ BIO_printf(bio_err,
+ "psk buffer of callback is too small (%d) for key (%d)\n",
+ max_psk_len, BN_num_bytes(bn));
+ BN_free(bn);
+ return 0;
+ }
+ ret = BN_bn2bin(bn, psk);
+ BN_free(bn);
+ return ret;
+}
+
+static unsigned int psk_client_callback(SSL *ssl, const char *hint,
+ char *identity,
+ unsigned int max_identity_len,
+ unsigned char *psk,
+ unsigned int max_psk_len)
+{
+ int ret;
+ unsigned int psk_len = 0;
+
+ ret = BIO_snprintf(identity, max_identity_len, "Client_identity");
+ if (ret < 0)
+ goto out_err;
+ if (debug)
+ fprintf(stderr, "client: created identity '%s' len=%d\n", identity,
+ ret);
+ ret = psk_key2bn(psk_key, psk, max_psk_len);
+ if (ret < 0)
+ goto out_err;
+ psk_len = ret;
+ out_err:
+ return psk_len;
+}
+
+static unsigned int psk_server_callback(SSL *ssl, const char *identity,
+ unsigned char *psk,
+ unsigned int max_psk_len)
+{
+ unsigned int psk_len = 0;
+
+ if (strcmp(identity, "Client_identity") != 0) {
+ BIO_printf(bio_err, "server: PSK error: client identity not found\n");
+ return 0;
+ }
+ psk_len = psk_key2bn(psk_key, psk, max_psk_len);
+ return psk_len;
+}
+#endif
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssltestlib.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssltestlib.c
new file mode 100644
index 000000000..456afdf47
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssltestlib.c
@@ -0,0 +1,944 @@
+/*
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+
+#include "internal/nelem.h"
+#include "ssltestlib.h"
+#include "testutil.h"
+#include "e_os.h"
+
+#ifdef OPENSSL_SYS_UNIX
+# include <unistd.h>
+
+static ossl_inline void ossl_sleep(unsigned int millis)
+{
+# ifdef OPENSSL_SYS_VXWORKS
+ struct timespec ts;
+ ts.tv_sec = (long int) (millis / 1000);
+ ts.tv_nsec = (long int) (millis % 1000) * 1000000ul;
+ nanosleep(&ts, NULL);
+# else
+ usleep(millis * 1000);
+# endif
+}
+#elif defined(_WIN32)
+# include <windows.h>
+
+static ossl_inline void ossl_sleep(unsigned int millis)
+{
+ Sleep(millis);
+}
+#else
+/* Fallback to a busy wait */
+static ossl_inline void ossl_sleep(unsigned int millis)
+{
+ struct timeval start, now;
+ unsigned int elapsedms;
+
+ gettimeofday(&start, NULL);
+ do {
+ gettimeofday(&now, NULL);
+ elapsedms = (((now.tv_sec - start.tv_sec) * 1000000)
+ + now.tv_usec - start.tv_usec) / 1000;
+ } while (elapsedms < millis);
+}
+#endif
+
+static int tls_dump_new(BIO *bi);
+static int tls_dump_free(BIO *a);
+static int tls_dump_read(BIO *b, char *out, int outl);
+static int tls_dump_write(BIO *b, const char *in, int inl);
+static long tls_dump_ctrl(BIO *b, int cmd, long num, void *ptr);
+static int tls_dump_gets(BIO *bp, char *buf, int size);
+static int tls_dump_puts(BIO *bp, const char *str);
+
+/* Choose a sufficiently large type likely to be unused for this custom BIO */
+#define BIO_TYPE_TLS_DUMP_FILTER (0x80 | BIO_TYPE_FILTER)
+#define BIO_TYPE_MEMPACKET_TEST 0x81
+#define BIO_TYPE_ALWAYS_RETRY 0x82
+
+static BIO_METHOD *method_tls_dump = NULL;
+static BIO_METHOD *meth_mem = NULL;
+static BIO_METHOD *meth_always_retry = NULL;
+
+/* Note: Not thread safe! */
+const BIO_METHOD *bio_f_tls_dump_filter(void)
+{
+ if (method_tls_dump == NULL) {
+ method_tls_dump = BIO_meth_new(BIO_TYPE_TLS_DUMP_FILTER,
+ "TLS dump filter");
+ if ( method_tls_dump == NULL
+ || !BIO_meth_set_write(method_tls_dump, tls_dump_write)
+ || !BIO_meth_set_read(method_tls_dump, tls_dump_read)
+ || !BIO_meth_set_puts(method_tls_dump, tls_dump_puts)
+ || !BIO_meth_set_gets(method_tls_dump, tls_dump_gets)
+ || !BIO_meth_set_ctrl(method_tls_dump, tls_dump_ctrl)
+ || !BIO_meth_set_create(method_tls_dump, tls_dump_new)
+ || !BIO_meth_set_destroy(method_tls_dump, tls_dump_free))
+ return NULL;
+ }
+ return method_tls_dump;
+}
+
+void bio_f_tls_dump_filter_free(void)
+{
+ BIO_meth_free(method_tls_dump);
+}
+
+static int tls_dump_new(BIO *bio)
+{
+ BIO_set_init(bio, 1);
+ return 1;
+}
+
+static int tls_dump_free(BIO *bio)
+{
+ BIO_set_init(bio, 0);
+
+ return 1;
+}
+
+static void copy_flags(BIO *bio)
+{
+ int flags;
+ BIO *next = BIO_next(bio);
+
+ flags = BIO_test_flags(next, BIO_FLAGS_SHOULD_RETRY | BIO_FLAGS_RWS);
+ BIO_clear_flags(bio, BIO_FLAGS_SHOULD_RETRY | BIO_FLAGS_RWS);
+ BIO_set_flags(bio, flags);
+}
+
+#define RECORD_CONTENT_TYPE 0
+#define RECORD_VERSION_HI 1
+#define RECORD_VERSION_LO 2
+#define RECORD_EPOCH_HI 3
+#define RECORD_EPOCH_LO 4
+#define RECORD_SEQUENCE_START 5
+#define RECORD_SEQUENCE_END 10
+#define RECORD_LEN_HI 11
+#define RECORD_LEN_LO 12
+
+#define MSG_TYPE 0
+#define MSG_LEN_HI 1
+#define MSG_LEN_MID 2
+#define MSG_LEN_LO 3
+#define MSG_SEQ_HI 4
+#define MSG_SEQ_LO 5
+#define MSG_FRAG_OFF_HI 6
+#define MSG_FRAG_OFF_MID 7
+#define MSG_FRAG_OFF_LO 8
+#define MSG_FRAG_LEN_HI 9
+#define MSG_FRAG_LEN_MID 10
+#define MSG_FRAG_LEN_LO 11
+
+
+static void dump_data(const char *data, int len)
+{
+ int rem, i, content, reclen, msglen, fragoff, fraglen, epoch;
+ unsigned char *rec;
+
+ printf("---- START OF PACKET ----\n");
+
+ rem = len;
+ rec = (unsigned char *)data;
+
+ while (rem > 0) {
+ if (rem != len)
+ printf("*\n");
+ printf("*---- START OF RECORD ----\n");
+ if (rem < DTLS1_RT_HEADER_LENGTH) {
+ printf("*---- RECORD TRUNCATED ----\n");
+ break;
+ }
+ content = rec[RECORD_CONTENT_TYPE];
+ printf("** Record Content-type: %d\n", content);
+ printf("** Record Version: %02x%02x\n",
+ rec[RECORD_VERSION_HI], rec[RECORD_VERSION_LO]);
+ epoch = (rec[RECORD_EPOCH_HI] << 8) | rec[RECORD_EPOCH_LO];
+ printf("** Record Epoch: %d\n", epoch);
+ printf("** Record Sequence: ");
+ for (i = RECORD_SEQUENCE_START; i <= RECORD_SEQUENCE_END; i++)
+ printf("%02x", rec[i]);
+ reclen = (rec[RECORD_LEN_HI] << 8) | rec[RECORD_LEN_LO];
+ printf("\n** Record Length: %d\n", reclen);
+
+ /* Now look at message */
+ rec += DTLS1_RT_HEADER_LENGTH;
+ rem -= DTLS1_RT_HEADER_LENGTH;
+ if (content == SSL3_RT_HANDSHAKE) {
+ printf("**---- START OF HANDSHAKE MESSAGE FRAGMENT ----\n");
+ if (epoch > 0) {
+ printf("**---- HANDSHAKE MESSAGE FRAGMENT ENCRYPTED ----\n");
+ } else if (rem < DTLS1_HM_HEADER_LENGTH
+ || reclen < DTLS1_HM_HEADER_LENGTH) {
+ printf("**---- HANDSHAKE MESSAGE FRAGMENT TRUNCATED ----\n");
+ } else {
+ printf("*** Message Type: %d\n", rec[MSG_TYPE]);
+ msglen = (rec[MSG_LEN_HI] << 16) | (rec[MSG_LEN_MID] << 8)
+ | rec[MSG_LEN_LO];
+ printf("*** Message Length: %d\n", msglen);
+ printf("*** Message sequence: %d\n",
+ (rec[MSG_SEQ_HI] << 8) | rec[MSG_SEQ_LO]);
+ fragoff = (rec[MSG_FRAG_OFF_HI] << 16)
+ | (rec[MSG_FRAG_OFF_MID] << 8)
+ | rec[MSG_FRAG_OFF_LO];
+ printf("*** Message Fragment offset: %d\n", fragoff);
+ fraglen = (rec[MSG_FRAG_LEN_HI] << 16)
+ | (rec[MSG_FRAG_LEN_MID] << 8)
+ | rec[MSG_FRAG_LEN_LO];
+ printf("*** Message Fragment len: %d\n", fraglen);
+ if (fragoff + fraglen > msglen)
+ printf("***---- HANDSHAKE MESSAGE FRAGMENT INVALID ----\n");
+ else if (reclen < fraglen)
+ printf("**---- HANDSHAKE MESSAGE FRAGMENT TRUNCATED ----\n");
+ else
+ printf("**---- END OF HANDSHAKE MESSAGE FRAGMENT ----\n");
+ }
+ }
+ if (rem < reclen) {
+ printf("*---- RECORD TRUNCATED ----\n");
+ rem = 0;
+ } else {
+ rec += reclen;
+ rem -= reclen;
+ printf("*---- END OF RECORD ----\n");
+ }
+ }
+ printf("---- END OF PACKET ----\n\n");
+ fflush(stdout);
+}
+
+static int tls_dump_read(BIO *bio, char *out, int outl)
+{
+ int ret;
+ BIO *next = BIO_next(bio);
+
+ ret = BIO_read(next, out, outl);
+ copy_flags(bio);
+
+ if (ret > 0) {
+ dump_data(out, ret);
+ }
+
+ return ret;
+}
+
+static int tls_dump_write(BIO *bio, const char *in, int inl)
+{
+ int ret;
+ BIO *next = BIO_next(bio);
+
+ ret = BIO_write(next, in, inl);
+ copy_flags(bio);
+
+ return ret;
+}
+
+static long tls_dump_ctrl(BIO *bio, int cmd, long num, void *ptr)
+{
+ long ret;
+ BIO *next = BIO_next(bio);
+
+ if (next == NULL)
+ return 0;
+
+ switch (cmd) {
+ case BIO_CTRL_DUP:
+ ret = 0L;
+ break;
+ default:
+ ret = BIO_ctrl(next, cmd, num, ptr);
+ break;
+ }
+ return ret;
+}
+
+static int tls_dump_gets(BIO *bio, char *buf, int size)
+{
+ /* We don't support this - not needed anyway */
+ return -1;
+}
+
+static int tls_dump_puts(BIO *bio, const char *str)
+{
+ return tls_dump_write(bio, str, strlen(str));
+}
+
+
+struct mempacket_st {
+ unsigned char *data;
+ int len;
+ unsigned int num;
+ unsigned int type;
+};
+
+static void mempacket_free(MEMPACKET *pkt)
+{
+ if (pkt->data != NULL)
+ OPENSSL_free(pkt->data);
+ OPENSSL_free(pkt);
+}
+
+typedef struct mempacket_test_ctx_st {
+ STACK_OF(MEMPACKET) *pkts;
+ unsigned int epoch;
+ unsigned int currrec;
+ unsigned int currpkt;
+ unsigned int lastpkt;
+ unsigned int injected;
+ unsigned int noinject;
+ unsigned int dropepoch;
+ int droprec;
+ int duprec;
+} MEMPACKET_TEST_CTX;
+
+static int mempacket_test_new(BIO *bi);
+static int mempacket_test_free(BIO *a);
+static int mempacket_test_read(BIO *b, char *out, int outl);
+static int mempacket_test_write(BIO *b, const char *in, int inl);
+static long mempacket_test_ctrl(BIO *b, int cmd, long num, void *ptr);
+static int mempacket_test_gets(BIO *bp, char *buf, int size);
+static int mempacket_test_puts(BIO *bp, const char *str);
+
+const BIO_METHOD *bio_s_mempacket_test(void)
+{
+ if (meth_mem == NULL) {
+ if (!TEST_ptr(meth_mem = BIO_meth_new(BIO_TYPE_MEMPACKET_TEST,
+ "Mem Packet Test"))
+ || !TEST_true(BIO_meth_set_write(meth_mem, mempacket_test_write))
+ || !TEST_true(BIO_meth_set_read(meth_mem, mempacket_test_read))
+ || !TEST_true(BIO_meth_set_puts(meth_mem, mempacket_test_puts))
+ || !TEST_true(BIO_meth_set_gets(meth_mem, mempacket_test_gets))
+ || !TEST_true(BIO_meth_set_ctrl(meth_mem, mempacket_test_ctrl))
+ || !TEST_true(BIO_meth_set_create(meth_mem, mempacket_test_new))
+ || !TEST_true(BIO_meth_set_destroy(meth_mem, mempacket_test_free)))
+ return NULL;
+ }
+ return meth_mem;
+}
+
+void bio_s_mempacket_test_free(void)
+{
+ BIO_meth_free(meth_mem);
+}
+
+static int mempacket_test_new(BIO *bio)
+{
+ MEMPACKET_TEST_CTX *ctx;
+
+ if (!TEST_ptr(ctx = OPENSSL_zalloc(sizeof(*ctx))))
+ return 0;
+ if (!TEST_ptr(ctx->pkts = sk_MEMPACKET_new_null())) {
+ OPENSSL_free(ctx);
+ return 0;
+ }
+ ctx->dropepoch = 0;
+ ctx->droprec = -1;
+ BIO_set_init(bio, 1);
+ BIO_set_data(bio, ctx);
+ return 1;
+}
+
+static int mempacket_test_free(BIO *bio)
+{
+ MEMPACKET_TEST_CTX *ctx = BIO_get_data(bio);
+
+ sk_MEMPACKET_pop_free(ctx->pkts, mempacket_free);
+ OPENSSL_free(ctx);
+ BIO_set_data(bio, NULL);
+ BIO_set_init(bio, 0);
+ return 1;
+}
+
+/* Record Header values */
+#define EPOCH_HI 3
+#define EPOCH_LO 4
+#define RECORD_SEQUENCE 10
+#define RECORD_LEN_HI 11
+#define RECORD_LEN_LO 12
+
+#define STANDARD_PACKET 0
+
+static int mempacket_test_read(BIO *bio, char *out, int outl)
+{
+ MEMPACKET_TEST_CTX *ctx = BIO_get_data(bio);
+ MEMPACKET *thispkt;
+ unsigned char *rec;
+ int rem;
+ unsigned int seq, offset, len, epoch;
+
+ BIO_clear_retry_flags(bio);
+ thispkt = sk_MEMPACKET_value(ctx->pkts, 0);
+ if (thispkt == NULL || thispkt->num != ctx->currpkt) {
+ /* Probably run out of data */
+ BIO_set_retry_read(bio);
+ return -1;
+ }
+ (void)sk_MEMPACKET_shift(ctx->pkts);
+ ctx->currpkt++;
+
+ if (outl > thispkt->len)
+ outl = thispkt->len;
+
+ if (thispkt->type != INJECT_PACKET_IGNORE_REC_SEQ
+ && (ctx->injected || ctx->droprec >= 0)) {
+ /*
+ * Overwrite the record sequence number. We strictly number them in
+ * the order received. Since we are actually a reliable transport
+ * we know that there won't be any re-ordering. We overwrite to deal
+ * with any packets that have been injected
+ */
+ for (rem = thispkt->len, rec = thispkt->data; rem > 0; rem -= len) {
+ if (rem < DTLS1_RT_HEADER_LENGTH)
+ return -1;
+ epoch = (rec[EPOCH_HI] << 8) | rec[EPOCH_LO];
+ if (epoch != ctx->epoch) {
+ ctx->epoch = epoch;
+ ctx->currrec = 0;
+ }
+ seq = ctx->currrec;
+ offset = 0;
+ do {
+ rec[RECORD_SEQUENCE - offset] = seq & 0xFF;
+ seq >>= 8;
+ offset++;
+ } while (seq > 0);
+
+ len = ((rec[RECORD_LEN_HI] << 8) | rec[RECORD_LEN_LO])
+ + DTLS1_RT_HEADER_LENGTH;
+ if (rem < (int)len)
+ return -1;
+ if (ctx->droprec == (int)ctx->currrec && ctx->dropepoch == epoch) {
+ if (rem > (int)len)
+ memmove(rec, rec + len, rem - len);
+ outl -= len;
+ ctx->droprec = -1;
+ if (outl == 0)
+ BIO_set_retry_read(bio);
+ } else {
+ rec += len;
+ }
+
+ ctx->currrec++;
+ }
+ }
+
+ memcpy(out, thispkt->data, outl);
+ mempacket_free(thispkt);
+ return outl;
+}
+
+int mempacket_test_inject(BIO *bio, const char *in, int inl, int pktnum,
+ int type)
+{
+ MEMPACKET_TEST_CTX *ctx = BIO_get_data(bio);
+ MEMPACKET *thispkt = NULL, *looppkt, *nextpkt, *allpkts[3];
+ int i, duprec;
+ const unsigned char *inu = (const unsigned char *)in;
+ size_t len = ((inu[RECORD_LEN_HI] << 8) | inu[RECORD_LEN_LO])
+ + DTLS1_RT_HEADER_LENGTH;
+
+ if (ctx == NULL)
+ return -1;
+
+ if ((size_t)inl < len)
+ return -1;
+
+ if ((size_t)inl == len)
+ duprec = 0;
+ else
+ duprec = ctx->duprec > 0;
+
+ /* We don't support arbitrary injection when duplicating records */
+ if (duprec && pktnum != -1)
+ return -1;
+
+ /* We only allow injection before we've started writing any data */
+ if (pktnum >= 0) {
+ if (ctx->noinject)
+ return -1;
+ ctx->injected = 1;
+ } else {
+ ctx->noinject = 1;
+ }
+
+ for (i = 0; i < (duprec ? 3 : 1); i++) {
+ if (!TEST_ptr(allpkts[i] = OPENSSL_malloc(sizeof(*thispkt))))
+ goto err;
+ thispkt = allpkts[i];
+
+ if (!TEST_ptr(thispkt->data = OPENSSL_malloc(inl)))
+ goto err;
+ /*
+ * If we are duplicating the packet, we duplicate it three times. The
+ * first two times we drop the first record if there are more than one.
+ * In this way we know that libssl will not be able to make progress
+ * until it receives the last packet, and hence will be forced to
+ * buffer these records.
+ */
+ if (duprec && i != 2) {
+ memcpy(thispkt->data, in + len, inl - len);
+ thispkt->len = inl - len;
+ } else {
+ memcpy(thispkt->data, in, inl);
+ thispkt->len = inl;
+ }
+ thispkt->num = (pktnum >= 0) ? (unsigned int)pktnum : ctx->lastpkt + i;
+ thispkt->type = type;
+ }
+
+ for(i = 0; (looppkt = sk_MEMPACKET_value(ctx->pkts, i)) != NULL; i++) {
+ /* Check if we found the right place to insert this packet */
+ if (looppkt->num > thispkt->num) {
+ if (sk_MEMPACKET_insert(ctx->pkts, thispkt, i) == 0)
+ goto err;
+ /* If we're doing up front injection then we're done */
+ if (pktnum >= 0)
+ return inl;
+ /*
+ * We need to do some accounting on lastpkt. We increment it first,
+ * but it might now equal the value of injected packets, so we need
+ * to skip over those
+ */
+ ctx->lastpkt++;
+ do {
+ i++;
+ nextpkt = sk_MEMPACKET_value(ctx->pkts, i);
+ if (nextpkt != NULL && nextpkt->num == ctx->lastpkt)
+ ctx->lastpkt++;
+ else
+ return inl;
+ } while(1);
+ } else if (looppkt->num == thispkt->num) {
+ if (!ctx->noinject) {
+ /* We injected two packets with the same packet number! */
+ goto err;
+ }
+ ctx->lastpkt++;
+ thispkt->num++;
+ }
+ }
+ /*
+ * We didn't find any packets with a packet number equal to or greater than
+ * this one, so we just add it onto the end
+ */
+ for (i = 0; i < (duprec ? 3 : 1); i++) {
+ thispkt = allpkts[i];
+ if (!sk_MEMPACKET_push(ctx->pkts, thispkt))
+ goto err;
+
+ if (pktnum < 0)
+ ctx->lastpkt++;
+ }
+
+ return inl;
+
+ err:
+ for (i = 0; i < (ctx->duprec > 0 ? 3 : 1); i++)
+ mempacket_free(allpkts[i]);
+ return -1;
+}
+
+static int mempacket_test_write(BIO *bio, const char *in, int inl)
+{
+ return mempacket_test_inject(bio, in, inl, -1, STANDARD_PACKET);
+}
+
+static long mempacket_test_ctrl(BIO *bio, int cmd, long num, void *ptr)
+{
+ long ret = 1;
+ MEMPACKET_TEST_CTX *ctx = BIO_get_data(bio);
+ MEMPACKET *thispkt;
+
+ switch (cmd) {
+ case BIO_CTRL_EOF:
+ ret = (long)(sk_MEMPACKET_num(ctx->pkts) == 0);
+ break;
+ case BIO_CTRL_GET_CLOSE:
+ ret = BIO_get_shutdown(bio);
+ break;
+ case BIO_CTRL_SET_CLOSE:
+ BIO_set_shutdown(bio, (int)num);
+ break;
+ case BIO_CTRL_WPENDING:
+ ret = 0L;
+ break;
+ case BIO_CTRL_PENDING:
+ thispkt = sk_MEMPACKET_value(ctx->pkts, 0);
+ if (thispkt == NULL)
+ ret = 0;
+ else
+ ret = thispkt->len;
+ break;
+ case BIO_CTRL_FLUSH:
+ ret = 1;
+ break;
+ case MEMPACKET_CTRL_SET_DROP_EPOCH:
+ ctx->dropepoch = (unsigned int)num;
+ break;
+ case MEMPACKET_CTRL_SET_DROP_REC:
+ ctx->droprec = (int)num;
+ break;
+ case MEMPACKET_CTRL_GET_DROP_REC:
+ ret = ctx->droprec;
+ break;
+ case MEMPACKET_CTRL_SET_DUPLICATE_REC:
+ ctx->duprec = (int)num;
+ break;
+ case BIO_CTRL_RESET:
+ case BIO_CTRL_DUP:
+ case BIO_CTRL_PUSH:
+ case BIO_CTRL_POP:
+ default:
+ ret = 0;
+ break;
+ }
+ return ret;
+}
+
+static int mempacket_test_gets(BIO *bio, char *buf, int size)
+{
+ /* We don't support this - not needed anyway */
+ return -1;
+}
+
+static int mempacket_test_puts(BIO *bio, const char *str)
+{
+ return mempacket_test_write(bio, str, strlen(str));
+}
+
+static int always_retry_new(BIO *bi);
+static int always_retry_free(BIO *a);
+static int always_retry_read(BIO *b, char *out, int outl);
+static int always_retry_write(BIO *b, const char *in, int inl);
+static long always_retry_ctrl(BIO *b, int cmd, long num, void *ptr);
+static int always_retry_gets(BIO *bp, char *buf, int size);
+static int always_retry_puts(BIO *bp, const char *str);
+
+const BIO_METHOD *bio_s_always_retry(void)
+{
+ if (meth_always_retry == NULL) {
+ if (!TEST_ptr(meth_always_retry = BIO_meth_new(BIO_TYPE_ALWAYS_RETRY,
+ "Always Retry"))
+ || !TEST_true(BIO_meth_set_write(meth_always_retry,
+ always_retry_write))
+ || !TEST_true(BIO_meth_set_read(meth_always_retry,
+ always_retry_read))
+ || !TEST_true(BIO_meth_set_puts(meth_always_retry,
+ always_retry_puts))
+ || !TEST_true(BIO_meth_set_gets(meth_always_retry,
+ always_retry_gets))
+ || !TEST_true(BIO_meth_set_ctrl(meth_always_retry,
+ always_retry_ctrl))
+ || !TEST_true(BIO_meth_set_create(meth_always_retry,
+ always_retry_new))
+ || !TEST_true(BIO_meth_set_destroy(meth_always_retry,
+ always_retry_free)))
+ return NULL;
+ }
+ return meth_always_retry;
+}
+
+void bio_s_always_retry_free(void)
+{
+ BIO_meth_free(meth_always_retry);
+}
+
+static int always_retry_new(BIO *bio)
+{
+ BIO_set_init(bio, 1);
+ return 1;
+}
+
+static int always_retry_free(BIO *bio)
+{
+ BIO_set_data(bio, NULL);
+ BIO_set_init(bio, 0);
+ return 1;
+}
+
+static int always_retry_read(BIO *bio, char *out, int outl)
+{
+ BIO_set_retry_read(bio);
+ return -1;
+}
+
+static int always_retry_write(BIO *bio, const char *in, int inl)
+{
+ BIO_set_retry_write(bio);
+ return -1;
+}
+
+static long always_retry_ctrl(BIO *bio, int cmd, long num, void *ptr)
+{
+ long ret = 1;
+
+ switch (cmd) {
+ case BIO_CTRL_FLUSH:
+ BIO_set_retry_write(bio);
+ /* fall through */
+ case BIO_CTRL_EOF:
+ case BIO_CTRL_RESET:
+ case BIO_CTRL_DUP:
+ case BIO_CTRL_PUSH:
+ case BIO_CTRL_POP:
+ default:
+ ret = 0;
+ break;
+ }
+ return ret;
+}
+
+static int always_retry_gets(BIO *bio, char *buf, int size)
+{
+ BIO_set_retry_read(bio);
+ return -1;
+}
+
+static int always_retry_puts(BIO *bio, const char *str)
+{
+ BIO_set_retry_write(bio);
+ return -1;
+}
+
+int create_ssl_ctx_pair(const SSL_METHOD *sm, const SSL_METHOD *cm,
+ int min_proto_version, int max_proto_version,
+ SSL_CTX **sctx, SSL_CTX **cctx, char *certfile,
+ char *privkeyfile)
+{
+ SSL_CTX *serverctx = NULL;
+ SSL_CTX *clientctx = NULL;
+
+ if (!TEST_ptr(serverctx = SSL_CTX_new(sm))
+ || (cctx != NULL && !TEST_ptr(clientctx = SSL_CTX_new(cm))))
+ goto err;
+
+ if ((min_proto_version > 0
+ && !TEST_true(SSL_CTX_set_min_proto_version(serverctx,
+ min_proto_version)))
+ || (max_proto_version > 0
+ && !TEST_true(SSL_CTX_set_max_proto_version(serverctx,
+ max_proto_version))))
+ goto err;
+ if (clientctx != NULL
+ && ((min_proto_version > 0
+ && !TEST_true(SSL_CTX_set_min_proto_version(clientctx,
+ min_proto_version)))
+ || (max_proto_version > 0
+ && !TEST_true(SSL_CTX_set_max_proto_version(clientctx,
+ max_proto_version)))))
+ goto err;
+
+ if (certfile != NULL && privkeyfile != NULL) {
+ if (!TEST_int_eq(SSL_CTX_use_certificate_file(serverctx, certfile,
+ SSL_FILETYPE_PEM), 1)
+ || !TEST_int_eq(SSL_CTX_use_PrivateKey_file(serverctx,
+ privkeyfile,
+ SSL_FILETYPE_PEM), 1)
+ || !TEST_int_eq(SSL_CTX_check_private_key(serverctx), 1))
+ goto err;
+ }
+
+#ifndef OPENSSL_NO_DH
+ SSL_CTX_set_dh_auto(serverctx, 1);
+#endif
+
+ *sctx = serverctx;
+ if (cctx != NULL)
+ *cctx = clientctx;
+ return 1;
+
+ err:
+ SSL_CTX_free(serverctx);
+ SSL_CTX_free(clientctx);
+ return 0;
+}
+
+#define MAXLOOPS 1000000
+
+/*
+ * NOTE: Transfers control of the BIOs - this function will free them on error
+ */
+int create_ssl_objects(SSL_CTX *serverctx, SSL_CTX *clientctx, SSL **sssl,
+ SSL **cssl, BIO *s_to_c_fbio, BIO *c_to_s_fbio)
+{
+ SSL *serverssl = NULL, *clientssl = NULL;
+ BIO *s_to_c_bio = NULL, *c_to_s_bio = NULL;
+
+ if (*sssl != NULL)
+ serverssl = *sssl;
+ else if (!TEST_ptr(serverssl = SSL_new(serverctx)))
+ goto error;
+ if (*cssl != NULL)
+ clientssl = *cssl;
+ else if (!TEST_ptr(clientssl = SSL_new(clientctx)))
+ goto error;
+
+ if (SSL_is_dtls(clientssl)) {
+ if (!TEST_ptr(s_to_c_bio = BIO_new(bio_s_mempacket_test()))
+ || !TEST_ptr(c_to_s_bio = BIO_new(bio_s_mempacket_test())))
+ goto error;
+ } else {
+ if (!TEST_ptr(s_to_c_bio = BIO_new(BIO_s_mem()))
+ || !TEST_ptr(c_to_s_bio = BIO_new(BIO_s_mem())))
+ goto error;
+ }
+
+ if (s_to_c_fbio != NULL
+ && !TEST_ptr(s_to_c_bio = BIO_push(s_to_c_fbio, s_to_c_bio)))
+ goto error;
+ if (c_to_s_fbio != NULL
+ && !TEST_ptr(c_to_s_bio = BIO_push(c_to_s_fbio, c_to_s_bio)))
+ goto error;
+
+ /* Set Non-blocking IO behaviour */
+ BIO_set_mem_eof_return(s_to_c_bio, -1);
+ BIO_set_mem_eof_return(c_to_s_bio, -1);
+
+ /* Up ref these as we are passing them to two SSL objects */
+ SSL_set_bio(serverssl, c_to_s_bio, s_to_c_bio);
+ BIO_up_ref(s_to_c_bio);
+ BIO_up_ref(c_to_s_bio);
+ SSL_set_bio(clientssl, s_to_c_bio, c_to_s_bio);
+ *sssl = serverssl;
+ *cssl = clientssl;
+ return 1;
+
+ error:
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ BIO_free(s_to_c_bio);
+ BIO_free(c_to_s_bio);
+ BIO_free(s_to_c_fbio);
+ BIO_free(c_to_s_fbio);
+
+ return 0;
+}
+
+/*
+ * Create an SSL connection, but does not ready any post-handshake
+ * NewSessionTicket messages.
+ * If |read| is set and we're using DTLS then we will attempt to SSL_read on
+ * the connection once we've completed one half of it, to ensure any retransmits
+ * get triggered.
+ */
+int create_bare_ssl_connection(SSL *serverssl, SSL *clientssl, int want,
+ int read)
+{
+ int retc = -1, rets = -1, err, abortctr = 0;
+ int clienterr = 0, servererr = 0;
+ int isdtls = SSL_is_dtls(serverssl);
+
+ do {
+ err = SSL_ERROR_WANT_WRITE;
+ while (!clienterr && retc <= 0 && err == SSL_ERROR_WANT_WRITE) {
+ retc = SSL_connect(clientssl);
+ if (retc <= 0)
+ err = SSL_get_error(clientssl, retc);
+ }
+
+ if (!clienterr && retc <= 0 && err != SSL_ERROR_WANT_READ) {
+ TEST_info("SSL_connect() failed %d, %d", retc, err);
+ clienterr = 1;
+ }
+ if (want != SSL_ERROR_NONE && err == want)
+ return 0;
+
+ err = SSL_ERROR_WANT_WRITE;
+ while (!servererr && rets <= 0 && err == SSL_ERROR_WANT_WRITE) {
+ rets = SSL_accept(serverssl);
+ if (rets <= 0)
+ err = SSL_get_error(serverssl, rets);
+ }
+
+ if (!servererr && rets <= 0
+ && err != SSL_ERROR_WANT_READ
+ && err != SSL_ERROR_WANT_X509_LOOKUP) {
+ TEST_info("SSL_accept() failed %d, %d", rets, err);
+ servererr = 1;
+ }
+ if (want != SSL_ERROR_NONE && err == want)
+ return 0;
+ if (clienterr && servererr)
+ return 0;
+ if (isdtls && read) {
+ unsigned char buf[20];
+
+ /* Trigger any retransmits that may be appropriate */
+ if (rets > 0 && retc <= 0) {
+ if (SSL_read(serverssl, buf, sizeof(buf)) > 0) {
+ /* We don't expect this to succeed! */
+ TEST_info("Unexpected SSL_read() success!");
+ return 0;
+ }
+ }
+ if (retc > 0 && rets <= 0) {
+ if (SSL_read(clientssl, buf, sizeof(buf)) > 0) {
+ /* We don't expect this to succeed! */
+ TEST_info("Unexpected SSL_read() success!");
+ return 0;
+ }
+ }
+ }
+ if (++abortctr == MAXLOOPS) {
+ TEST_info("No progress made");
+ return 0;
+ }
+ if (isdtls && abortctr <= 50 && (abortctr % 10) == 0) {
+ /*
+ * It looks like we're just spinning. Pause for a short period to
+ * give the DTLS timer a chance to do something. We only do this for
+ * the first few times to prevent hangs.
+ */
+ ossl_sleep(50);
+ }
+ } while (retc <=0 || rets <= 0);
+
+ return 1;
+}
+
+/*
+ * Create an SSL connection including any post handshake NewSessionTicket
+ * messages.
+ */
+int create_ssl_connection(SSL *serverssl, SSL *clientssl, int want)
+{
+ int i;
+ unsigned char buf;
+ size_t readbytes;
+
+ if (!create_bare_ssl_connection(serverssl, clientssl, want, 1))
+ return 0;
+
+ /*
+ * We attempt to read some data on the client side which we expect to fail.
+ * This will ensure we have received the NewSessionTicket in TLSv1.3 where
+ * appropriate. We do this twice because there are 2 NewSessionTickets.
+ */
+ for (i = 0; i < 2; i++) {
+ if (SSL_read_ex(clientssl, &buf, sizeof(buf), &readbytes) > 0) {
+ if (!TEST_ulong_eq(readbytes, 0))
+ return 0;
+ } else if (!TEST_int_eq(SSL_get_error(clientssl, 0),
+ SSL_ERROR_WANT_READ)) {
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
+void shutdown_ssl_connection(SSL *serverssl, SSL *clientssl)
+{
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssltestlib.h b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssltestlib.h
new file mode 100644
index 000000000..17b278219
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/ssltestlib.h
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#ifndef OSSL_TEST_SSLTESTLIB_H
+# define OSSL_TEST_SSLTESTLIB_H
+
+# include <openssl/ssl.h>
+
+int create_ssl_ctx_pair(const SSL_METHOD *sm, const SSL_METHOD *cm,
+ int min_proto_version, int max_proto_version,
+ SSL_CTX **sctx, SSL_CTX **cctx, char *certfile,
+ char *privkeyfile);
+int create_ssl_objects(SSL_CTX *serverctx, SSL_CTX *clientctx, SSL **sssl,
+ SSL **cssl, BIO *s_to_c_fbio, BIO *c_to_s_fbio);
+int create_bare_ssl_connection(SSL *serverssl, SSL *clientssl, int want,
+ int read);
+int create_ssl_connection(SSL *serverssl, SSL *clientssl, int want);
+void shutdown_ssl_connection(SSL *serverssl, SSL *clientssl);
+
+/* Note: Not thread safe! */
+const BIO_METHOD *bio_f_tls_dump_filter(void);
+void bio_f_tls_dump_filter_free(void);
+
+const BIO_METHOD *bio_s_mempacket_test(void);
+void bio_s_mempacket_test_free(void);
+
+const BIO_METHOD *bio_s_always_retry(void);
+void bio_s_always_retry_free(void);
+
+/* Packet types - value 0 is reserved */
+#define INJECT_PACKET 1
+#define INJECT_PACKET_IGNORE_REC_SEQ 2
+
+/*
+ * Mempacket BIO ctrls. We make them large enough to not clash with standard BIO
+ * ctrl codes.
+ */
+#define MEMPACKET_CTRL_SET_DROP_EPOCH (1 << 15)
+#define MEMPACKET_CTRL_SET_DROP_REC (2 << 15)
+#define MEMPACKET_CTRL_GET_DROP_REC (3 << 15)
+#define MEMPACKET_CTRL_SET_DUPLICATE_REC (4 << 15)
+
+int mempacket_test_inject(BIO *bio, const char *in, int inl, int pktnum,
+ int type);
+
+typedef struct mempacket_st MEMPACKET;
+
+DEFINE_STACK_OF(MEMPACKET)
+
+#endif /* OSSL_TEST_SSLTESTLIB_H */
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/stack_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/stack_test.c
new file mode 100644
index 000000000..680f68d60
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/stack_test.c
@@ -0,0 +1,380 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/opensslconf.h>
+#include <openssl/safestack.h>
+#include <openssl/err.h>
+#include <openssl/crypto.h>
+
+#include "internal/nelem.h"
+#include "testutil.h"
+
+/* The macros below generate unused functions which error out one of the clang
+ * builds. We disable this check here.
+ */
+#ifdef __clang__
+#pragma clang diagnostic ignored "-Wunused-function"
+#endif
+
+typedef struct {
+ int n;
+ char c;
+} SS;
+
+typedef union {
+ int n;
+ char c;
+} SU;
+
+DEFINE_SPECIAL_STACK_OF(sint, int)
+DEFINE_SPECIAL_STACK_OF_CONST(uchar, unsigned char)
+DEFINE_STACK_OF(SS)
+DEFINE_STACK_OF_CONST(SU)
+
+static int int_compare(const int *const *a, const int *const *b)
+{
+ if (**a < **b)
+ return -1;
+ if (**a > **b)
+ return 1;
+ return 0;
+}
+
+static int test_int_stack(int reserve)
+{
+ static int v[] = { 1, 2, -4, 16, 999, 1, -173, 1, 9 };
+ static int notpresent = -1;
+ const int n = OSSL_NELEM(v);
+ static struct {
+ int value;
+ int unsorted;
+ int sorted;
+ int ex;
+ } finds[] = {
+ { 2, 1, 5, 5 },
+ { 9, 7, 6, 6 },
+ { -173, 5, 0, 0 },
+ { 999, 3, 8, 8 },
+ { 0, -1, -1, 1 }
+ };
+ const int n_finds = OSSL_NELEM(finds);
+ static struct {
+ int value;
+ int ex;
+ } exfinds[] = {
+ { 3, 5 },
+ { 1000, 8 },
+ { 20, 8 },
+ { -999, 0 },
+ { -5, 0 },
+ { 8, 5 }
+ };
+ const int n_exfinds = OSSL_NELEM(exfinds);
+ STACK_OF(sint) *s = sk_sint_new_null();
+ int i;
+ int testresult = 0;
+
+ if (!TEST_ptr(s)
+ || (reserve > 0 && !TEST_true(sk_sint_reserve(s, 5 * reserve))))
+ goto end;
+
+ /* Check push and num */
+ for (i = 0; i < n; i++) {
+ if (!TEST_int_eq(sk_sint_num(s), i)) {
+ TEST_info("int stack size %d", i);
+ goto end;
+ }
+ sk_sint_push(s, v + i);
+ }
+ if (!TEST_int_eq(sk_sint_num(s), n))
+ goto end;
+
+ /* check the values */
+ for (i = 0; i < n; i++)
+ if (!TEST_ptr_eq(sk_sint_value(s, i), v + i)) {
+ TEST_info("int value %d", i);
+ goto end;
+ }
+
+ /* find unsorted -- the pointers are compared */
+ for (i = 0; i < n_finds; i++) {
+ int *val = (finds[i].unsorted == -1) ? &notpresent
+ : v + finds[i].unsorted;
+
+ if (!TEST_int_eq(sk_sint_find(s, val), finds[i].unsorted)) {
+ TEST_info("int unsorted find %d", i);
+ goto end;
+ }
+ }
+
+ /* find_ex unsorted */
+ for (i = 0; i < n_finds; i++) {
+ int *val = (finds[i].unsorted == -1) ? &notpresent
+ : v + finds[i].unsorted;
+
+ if (!TEST_int_eq(sk_sint_find_ex(s, val), finds[i].unsorted)) {
+ TEST_info("int unsorted find_ex %d", i);
+ goto end;
+ }
+ }
+
+ /* sorting */
+ if (!TEST_false(sk_sint_is_sorted(s)))
+ goto end;
+ sk_sint_set_cmp_func(s, &int_compare);
+ sk_sint_sort(s);
+ if (!TEST_true(sk_sint_is_sorted(s)))
+ goto end;
+
+ /* find sorted -- the value is matched so we don't need to locate it */
+ for (i = 0; i < n_finds; i++)
+ if (!TEST_int_eq(sk_sint_find(s, &finds[i].value), finds[i].sorted)) {
+ TEST_info("int sorted find %d", i);
+ goto end;
+ }
+
+ /* find_ex sorted */
+ for (i = 0; i < n_finds; i++)
+ if (!TEST_int_eq(sk_sint_find_ex(s, &finds[i].value), finds[i].ex)) {
+ TEST_info("int sorted find_ex present %d", i);
+ goto end;
+ }
+ for (i = 0; i < n_exfinds; i++)
+ if (!TEST_int_eq(sk_sint_find_ex(s, &exfinds[i].value), exfinds[i].ex)){
+ TEST_info("int sorted find_ex absent %d", i);
+ goto end;
+ }
+
+ /* shift */
+ if (!TEST_ptr_eq(sk_sint_shift(s), v + 6))
+ goto end;
+
+ testresult = 1;
+end:
+ sk_sint_free(s);
+ return testresult;
+}
+
+static int uchar_compare(const unsigned char *const *a,
+ const unsigned char *const *b)
+{
+ return **a - (signed int)**b;
+}
+
+static int test_uchar_stack(int reserve)
+{
+ static const unsigned char v[] = { 1, 3, 7, 5, 255, 0 };
+ const int n = OSSL_NELEM(v);
+ STACK_OF(uchar) *s = sk_uchar_new(&uchar_compare), *r = NULL;
+ int i;
+ int testresult = 0;
+
+ if (!TEST_ptr(s)
+ || (reserve > 0 && !TEST_true(sk_uchar_reserve(s, 5 * reserve))))
+ goto end;
+
+ /* unshift and num */
+ for (i = 0; i < n; i++) {
+ if (!TEST_int_eq(sk_uchar_num(s), i)) {
+ TEST_info("uchar stack size %d", i);
+ goto end;
+ }
+ sk_uchar_unshift(s, v + i);
+ }
+ if (!TEST_int_eq(sk_uchar_num(s), n))
+ goto end;
+
+ /* dup */
+ r = sk_uchar_dup(s);
+ if (!TEST_int_eq(sk_uchar_num(r), n))
+ goto end;
+ sk_uchar_sort(r);
+
+ /* pop */
+ for (i = 0; i < n; i++)
+ if (!TEST_ptr_eq(sk_uchar_pop(s), v + i)) {
+ TEST_info("uchar pop %d", i);
+ goto end;
+ }
+
+ /* free -- we rely on the debug malloc to detect leakage here */
+ sk_uchar_free(s);
+ s = NULL;
+
+ /* dup again */
+ if (!TEST_int_eq(sk_uchar_num(r), n))
+ goto end;
+
+ /* zero */
+ sk_uchar_zero(r);
+ if (!TEST_int_eq(sk_uchar_num(r), 0))
+ goto end;
+
+ /* insert */
+ sk_uchar_insert(r, v, 0);
+ sk_uchar_insert(r, v + 2, -1);
+ sk_uchar_insert(r, v + 1, 1);
+ for (i = 0; i < 3; i++)
+ if (!TEST_ptr_eq(sk_uchar_value(r, i), v + i)) {
+ TEST_info("uchar insert %d", i);
+ goto end;
+ }
+
+ /* delete */
+ if (!TEST_ptr_null(sk_uchar_delete(r, 12)))
+ goto end;
+ if (!TEST_ptr_eq(sk_uchar_delete(r, 1), v + 1))
+ goto end;
+
+ /* set */
+ sk_uchar_set(r, 1, v + 1);
+ for (i = 0; i < 2; i++)
+ if (!TEST_ptr_eq(sk_uchar_value(r, i), v + i)) {
+ TEST_info("uchar set %d", i);
+ goto end;
+ }
+
+ testresult = 1;
+end:
+ sk_uchar_free(r);
+ sk_uchar_free(s);
+ return testresult;
+}
+
+static SS *SS_copy(const SS *p)
+{
+ SS *q = OPENSSL_malloc(sizeof(*q));
+
+ if (q != NULL)
+ memcpy(q, p, sizeof(*q));
+ return q;
+}
+
+static void SS_free(SS *p) {
+ OPENSSL_free(p);
+}
+
+static int test_SS_stack(void)
+{
+ STACK_OF(SS) *s = sk_SS_new_null();
+ STACK_OF(SS) *r = NULL;
+ SS *v[10], *p;
+ const int n = OSSL_NELEM(v);
+ int i;
+ int testresult = 0;
+
+ /* allocate and push */
+ for (i = 0; i < n; i++) {
+ v[i] = OPENSSL_malloc(sizeof(*v[i]));
+
+ if (!TEST_ptr(v[i]))
+ goto end;
+ v[i]->n = i;
+ v[i]->c = 'A' + i;
+ if (!TEST_int_eq(sk_SS_num(s), i)) {
+ TEST_info("SS stack size %d", i);
+ goto end;
+ }
+ sk_SS_push(s, v[i]);
+ }
+ if (!TEST_int_eq(sk_SS_num(s), n))
+ goto end;
+
+ /* deepcopy */
+ r = sk_SS_deep_copy(s, &SS_copy, &SS_free);
+ if (!TEST_ptr(r))
+ goto end;
+ for (i = 0; i < n; i++) {
+ p = sk_SS_value(r, i);
+ if (!TEST_ptr_ne(p, v[i])) {
+ TEST_info("SS deepcopy non-copy %d", i);
+ goto end;
+ }
+ if (!TEST_int_eq(p->n, v[i]->n)) {
+ TEST_info("test SS deepcopy int %d", i);
+ goto end;
+ }
+ if (!TEST_char_eq(p->c, v[i]->c)) {
+ TEST_info("SS deepcopy char %d", i);
+ goto end;
+ }
+ }
+
+ /* pop_free - we rely on the malloc debug to catch the leak */
+ sk_SS_pop_free(r, &SS_free);
+ r = NULL;
+
+ /* delete_ptr */
+ p = sk_SS_delete_ptr(s, v[3]);
+ if (!TEST_ptr(p))
+ goto end;
+ SS_free(p);
+ if (!TEST_int_eq(sk_SS_num(s), n - 1))
+ goto end;
+ for (i = 0; i < n-1; i++)
+ if (!TEST_ptr_eq(sk_SS_value(s, i), v[i<3 ? i : 1+i])) {
+ TEST_info("SS delete ptr item %d", i);
+ goto end;
+ }
+
+ testresult = 1;
+end:
+ sk_SS_pop_free(r, &SS_free);
+ sk_SS_pop_free(s, &SS_free);
+ return testresult;
+}
+
+static int test_SU_stack(void)
+{
+ STACK_OF(SU) *s = sk_SU_new_null();
+ SU v[10];
+ const int n = OSSL_NELEM(v);
+ int i;
+ int testresult = 0;
+
+ /* allocate and push */
+ for (i = 0; i < n; i++) {
+ if ((i & 1) == 0)
+ v[i].n = i;
+ else
+ v[i].c = 'A' + i;
+ if (!TEST_int_eq(sk_SU_num(s), i)) {
+ TEST_info("SU stack size %d", i);
+ goto end;
+ }
+ sk_SU_push(s, v + i);
+ }
+ if (!TEST_int_eq(sk_SU_num(s), n))
+ goto end;
+
+ /* check the pointers are correct */
+ for (i = 0; i < n; i++)
+ if (!TEST_ptr_eq(sk_SU_value(s, i), v + i)) {
+ TEST_info("SU pointer check %d", i);
+ goto end;
+ }
+
+ testresult = 1;
+end:
+ sk_SU_free(s);
+ return testresult;
+}
+
+int setup_tests(void)
+{
+ ADD_ALL_TESTS(test_int_stack, 4);
+ ADD_ALL_TESTS(test_uchar_stack, 4);
+ ADD_TEST(test_SS_stack);
+ ADD_TEST(test_SU_stack);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sysdefault.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sysdefault.cnf
new file mode 100644
index 000000000..5473d837c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sysdefault.cnf
@@ -0,0 +1,15 @@
+# Configuration file to test system default SSL configuration
+
+openssl_conf = default_conf
+
+[ default_conf ]
+
+ssl_conf = ssl_sect
+
+[ssl_sect]
+
+system_default = ssl_default_sect
+
+[ssl_default_sect]
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sysdefaulttest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sysdefaulttest.c
new file mode 100644
index 000000000..2e2bb8f76
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/sysdefaulttest.c
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <openssl/opensslconf.h>
+
+#include <string.h>
+#include <openssl/evp.h>
+#include <openssl/ssl.h>
+#include <openssl/tls1.h>
+#include "testutil.h"
+
+static SSL_CTX *ctx;
+
+static int test_func(void)
+{
+ if (!TEST_int_eq(SSL_CTX_get_min_proto_version(ctx), TLS1_2_VERSION)
+ && !TEST_int_eq(SSL_CTX_get_max_proto_version(ctx), TLS1_2_VERSION)) {
+ TEST_info("min/max version setting incorrect");
+ return 0;
+ }
+ return 1;
+}
+
+int global_init(void)
+{
+ if (!OPENSSL_init_ssl(OPENSSL_INIT_ENGINE_ALL_BUILTIN
+ | OPENSSL_INIT_LOAD_CONFIG, NULL))
+ return 0;
+ return 1;
+}
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(ctx = SSL_CTX_new(TLS_method())))
+ return 0;
+ ADD_TEST(test_func);
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+ SSL_CTX_free(ctx);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/test.cnf b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/test.cnf
new file mode 100644
index 000000000..718b0bf1f
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/test.cnf
@@ -0,0 +1,88 @@
+#
+# SSLeay example configuration file.
+# This is mostly being used for generation of certificate requests.
+#
+
+RANDFILE = ./.rnd
+
+####################################################################
+[ ca ]
+default_ca = CA_default # The default ca section
+
+####################################################################
+[ CA_default ]
+
+dir = ./demoCA # Where everything is kept
+certs = $dir/certs # Where the issued certs are kept
+crl_dir = $dir/crl # Where the issued crl are kept
+database = $dir/index.txt # database index file.
+new_certs_dir = $dir/new_certs # default place for new certs.
+
+certificate = $dir/CAcert.pem # The CA certificate
+serial = $dir/serial # The current serial number
+crl = $dir/crl.pem # The current CRL
+private_key = $dir/private/CAkey.pem# The private key
+RANDFILE = $dir/private/.rand # private random number file
+
+default_days = 365 # how long to certify for
+default_crl_days= 30 # how long before next CRL
+default_md = md5 # which md to use.
+
+# A few difference way of specifying how similar the request should look
+# For type CA, the listed attributes must be the same, and the optional
+# and supplied fields are just that :-)
+policy = policy_match
+
+# For the CA policy
+[ policy_match ]
+countryName = match
+stateOrProvinceName = match
+organizationName = match
+organizationalUnitName = optional
+commonName = supplied
+emailAddress = optional
+
+# For the 'anything' policy
+# At this point in time, you must list all acceptable 'object'
+# types.
+[ policy_anything ]
+countryName = optional
+stateOrProvinceName = optional
+localityName = optional
+organizationName = optional
+organizationalUnitName = optional
+commonName = supplied
+emailAddress = optional
+
+####################################################################
+[ req ]
+default_bits = 2048
+default_keyfile = testkey.pem
+distinguished_name = req_distinguished_name
+encrypt_rsa_key = no
+
+[ req_distinguished_name ]
+countryName = Country Name (2 letter code)
+countryName_default = AU
+countryName_value = AU
+
+stateOrProvinceName = State or Province Name (full name)
+stateOrProvinceName_default = Queensland
+stateOrProvinceName_value =
+
+localityName = Locality Name (eg, city)
+localityName_value = Brisbane
+
+organizationName = Organization Name (eg, company)
+organizationName_default =
+organizationName_value = CryptSoft Pty Ltd
+
+organizationalUnitName = Organizational Unit Name (eg, section)
+organizationalUnitName_default =
+organizationalUnitName_value = .
+
+commonName = Common Name (eg, YOUR name)
+commonName_value = Eric Young
+
+emailAddress = Email Address
+emailAddress_value = eay@mincom.oz.au
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/test_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/test_test.c
new file mode 100644
index 000000000..74a230c19
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/test_test.c
@@ -0,0 +1,557 @@
+/*
+ * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/opensslconf.h>
+#include <openssl/err.h>
+#include <openssl/crypto.h>
+#include <openssl/bn.h>
+
+#include "internal/nelem.h"
+#include "testutil.h"
+
+#define TEST(expected, test) test_case((expected), #test, (test))
+
+static int test_case(int expected, const char *test, int result)
+{
+ if (result != expected) {
+ fprintf(stderr, "# FATAL: %s != %d\n", test, expected);
+ return 0;
+ }
+ return 1;
+}
+
+static int test_int(void)
+{
+ if (!TEST(1, TEST_int_eq(1, 1))
+ | !TEST(0, TEST_int_eq(1, -1))
+ | !TEST(1, TEST_int_ne(1, 2))
+ | !TEST(0, TEST_int_ne(3, 3))
+ | !TEST(1, TEST_int_lt(4, 9))
+ | !TEST(0, TEST_int_lt(9, 4))
+ | !TEST(1, TEST_int_le(4, 9))
+ | !TEST(1, TEST_int_le(5, 5))
+ | !TEST(0, TEST_int_le(9, 4))
+ | !TEST(1, TEST_int_gt(8, 5))
+ | !TEST(0, TEST_int_gt(5, 8))
+ | !TEST(1, TEST_int_ge(8, 5))
+ | !TEST(1, TEST_int_ge(6, 6))
+ | !TEST(0, TEST_int_ge(5, 8)))
+ goto err;
+ return 1;
+
+err:
+ return 0;
+}
+
+static int test_uint(void)
+{
+ if (!TEST(1, TEST_uint_eq(3u, 3u))
+ | !TEST(0, TEST_uint_eq(3u, 5u))
+ | !TEST(1, TEST_uint_ne(4u, 2u))
+ | !TEST(0, TEST_uint_ne(6u, 6u))
+ | !TEST(1, TEST_uint_lt(5u, 9u))
+ | !TEST(0, TEST_uint_lt(9u, 5u))
+ | !TEST(1, TEST_uint_le(5u, 9u))
+ | !TEST(1, TEST_uint_le(7u, 7u))
+ | !TEST(0, TEST_uint_le(9u, 5u))
+ | !TEST(1, TEST_uint_gt(11u, 1u))
+ | !TEST(0, TEST_uint_gt(1u, 11u))
+ | !TEST(1, TEST_uint_ge(11u, 1u))
+ | !TEST(1, TEST_uint_ge(6u, 6u))
+ | !TEST(0, TEST_uint_ge(1u, 11u)))
+ goto err;
+ return 1;
+
+err:
+ return 0;
+}
+
+static int test_char(void)
+{
+ if (!TEST(1, TEST_char_eq('a', 'a'))
+ | !TEST(0, TEST_char_eq('a', 'A'))
+ | !TEST(1, TEST_char_ne('a', 'c'))
+ | !TEST(0, TEST_char_ne('e', 'e'))
+ | !TEST(1, TEST_char_lt('i', 'x'))
+ | !TEST(0, TEST_char_lt('x', 'i'))
+ | !TEST(1, TEST_char_le('i', 'x'))
+ | !TEST(1, TEST_char_le('n', 'n'))
+ | !TEST(0, TEST_char_le('x', 'i'))
+ | !TEST(1, TEST_char_gt('w', 'n'))
+ | !TEST(0, TEST_char_gt('n', 'w'))
+ | !TEST(1, TEST_char_ge('w', 'n'))
+ | !TEST(1, TEST_char_ge('p', 'p'))
+ | !TEST(0, TEST_char_ge('n', 'w')))
+ goto err;
+ return 1;
+
+err:
+ return 0;
+}
+
+static int test_uchar(void)
+{
+ if (!TEST(1, TEST_uchar_eq(49, 49))
+ | !TEST(0, TEST_uchar_eq(49, 60))
+ | !TEST(1, TEST_uchar_ne(50, 2))
+ | !TEST(0, TEST_uchar_ne(66, 66))
+ | !TEST(1, TEST_uchar_lt(60, 80))
+ | !TEST(0, TEST_uchar_lt(80, 60))
+ | !TEST(1, TEST_uchar_le(60, 80))
+ | !TEST(1, TEST_uchar_le(78, 78))
+ | !TEST(0, TEST_uchar_le(80, 60))
+ | !TEST(1, TEST_uchar_gt(88, 37))
+ | !TEST(0, TEST_uchar_gt(37, 88))
+ | !TEST(1, TEST_uchar_ge(88, 37))
+ | !TEST(1, TEST_uchar_ge(66, 66))
+ | !TEST(0, TEST_uchar_ge(37, 88)))
+ goto err;
+ return 1;
+
+err:
+ return 0;
+}
+
+static int test_long(void)
+{
+ if (!TEST(1, TEST_long_eq(123l, 123l))
+ | !TEST(0, TEST_long_eq(123l, -123l))
+ | !TEST(1, TEST_long_ne(123l, 500l))
+ | !TEST(0, TEST_long_ne(1000l, 1000l))
+ | !TEST(1, TEST_long_lt(-8923l, 102934563l))
+ | !TEST(0, TEST_long_lt(102934563l, -8923l))
+ | !TEST(1, TEST_long_le(-8923l, 102934563l))
+ | !TEST(1, TEST_long_le(12345l, 12345l))
+ | !TEST(0, TEST_long_le(102934563l, -8923l))
+ | !TEST(1, TEST_long_gt(84325677l, 12345l))
+ | !TEST(0, TEST_long_gt(12345l, 84325677l))
+ | !TEST(1, TEST_long_ge(84325677l, 12345l))
+ | !TEST(1, TEST_long_ge(465869l, 465869l))
+ | !TEST(0, TEST_long_ge(12345l, 84325677l)))
+ goto err;
+ return 1;
+
+err:
+ return 0;
+}
+
+static int test_ulong(void)
+{
+ if (!TEST(1, TEST_ulong_eq(919ul, 919ul))
+ | !TEST(0, TEST_ulong_eq(919ul, 10234ul))
+ | !TEST(1, TEST_ulong_ne(8190ul, 66ul))
+ | !TEST(0, TEST_ulong_ne(10555ul, 10555ul))
+ | !TEST(1, TEST_ulong_lt(10234ul, 1000000ul))
+ | !TEST(0, TEST_ulong_lt(1000000ul, 10234ul))
+ | !TEST(1, TEST_ulong_le(10234ul, 1000000ul))
+ | !TEST(1, TEST_ulong_le(100000ul, 100000ul))
+ | !TEST(0, TEST_ulong_le(1000000ul, 10234ul))
+ | !TEST(1, TEST_ulong_gt(100000000ul, 22ul))
+ | !TEST(0, TEST_ulong_gt(22ul, 100000000ul))
+ | !TEST(1, TEST_ulong_ge(100000000ul, 22ul))
+ | !TEST(1, TEST_ulong_ge(10555ul, 10555ul))
+ | !TEST(0, TEST_ulong_ge(22ul, 100000000ul)))
+ goto err;
+ return 1;
+
+err:
+ return 0;
+}
+
+static int test_size_t(void)
+{
+ if (!TEST(1, TEST_size_t_eq((size_t)10, (size_t)10))
+ | !TEST(0, TEST_size_t_eq((size_t)10, (size_t)12))
+ | !TEST(1, TEST_size_t_ne((size_t)10, (size_t)12))
+ | !TEST(0, TEST_size_t_ne((size_t)24, (size_t)24))
+ | !TEST(1, TEST_size_t_lt((size_t)30, (size_t)88))
+ | !TEST(0, TEST_size_t_lt((size_t)88, (size_t)30))
+ | !TEST(1, TEST_size_t_le((size_t)30, (size_t)88))
+ | !TEST(1, TEST_size_t_le((size_t)33, (size_t)33))
+ | !TEST(0, TEST_size_t_le((size_t)88, (size_t)30))
+ | !TEST(1, TEST_size_t_gt((size_t)52, (size_t)33))
+ | !TEST(0, TEST_size_t_gt((size_t)33, (size_t)52))
+ | !TEST(1, TEST_size_t_ge((size_t)52, (size_t)33))
+ | !TEST(1, TEST_size_t_ge((size_t)38, (size_t)38))
+ | !TEST(0, TEST_size_t_ge((size_t)33, (size_t)52)))
+ goto err;
+ return 1;
+
+err:
+ return 0;
+}
+
+static int test_time_t(void)
+{
+ if (!TEST(1, TEST_time_t_eq((time_t)10, (time_t)10))
+ | !TEST(0, TEST_time_t_eq((time_t)10, (time_t)12))
+ | !TEST(1, TEST_time_t_ne((time_t)10, (time_t)12))
+ | !TEST(0, TEST_time_t_ne((time_t)24, (time_t)24))
+ | !TEST(1, TEST_time_t_lt((time_t)30, (time_t)88))
+ | !TEST(0, TEST_time_t_lt((time_t)88, (time_t)30))
+ | !TEST(1, TEST_time_t_le((time_t)30, (time_t)88))
+ | !TEST(1, TEST_time_t_le((time_t)33, (time_t)33))
+ | !TEST(0, TEST_time_t_le((time_t)88, (time_t)30))
+ | !TEST(1, TEST_time_t_gt((time_t)52, (time_t)33))
+ | !TEST(0, TEST_time_t_gt((time_t)33, (time_t)52))
+ | !TEST(1, TEST_time_t_ge((time_t)52, (time_t)33))
+ | !TEST(1, TEST_time_t_ge((time_t)38, (time_t)38))
+ | !TEST(0, TEST_time_t_ge((time_t)33, (time_t)52)))
+ goto err;
+ return 1;
+
+err:
+ return 0;
+}
+
+static int test_pointer(void)
+{
+ int x = 0;
+ char y = 1;
+
+ if (!TEST(1, TEST_ptr(&y))
+ | !TEST(0, TEST_ptr(NULL))
+ | !TEST(0, TEST_ptr_null(&y))
+ | !TEST(1, TEST_ptr_null(NULL))
+ | !TEST(1, TEST_ptr_eq(NULL, NULL))
+ | !TEST(0, TEST_ptr_eq(NULL, &y))
+ | !TEST(0, TEST_ptr_eq(&y, NULL))
+ | !TEST(0, TEST_ptr_eq(&y, &x))
+ | !TEST(1, TEST_ptr_eq(&x, &x))
+ | !TEST(0, TEST_ptr_ne(NULL, NULL))
+ | !TEST(1, TEST_ptr_ne(NULL, &y))
+ | !TEST(1, TEST_ptr_ne(&y, NULL))
+ | !TEST(1, TEST_ptr_ne(&y, &x))
+ | !TEST(0, TEST_ptr_ne(&x, &x)))
+ goto err;
+ return 1;
+
+err:
+ return 0;
+}
+
+static int test_bool(void)
+{
+ if (!TEST(0, TEST_true(0))
+ | !TEST(1, TEST_true(1))
+ | !TEST(1, TEST_false(0))
+ | !TEST(0, TEST_false(1)))
+ goto err;
+ return 1;
+
+err:
+ return 0;
+}
+
+static int test_string(void)
+{
+ static char buf[] = "abc";
+
+ if (!TEST(1, TEST_str_eq(NULL, NULL))
+ | !TEST(1, TEST_str_eq("abc", buf))
+ | !TEST(0, TEST_str_eq("abc", NULL))
+ | !TEST(0, TEST_str_eq("abc", ""))
+ | !TEST(0, TEST_str_eq(NULL, buf))
+ | !TEST(0, TEST_str_ne(NULL, NULL))
+ | !TEST(0, TEST_str_eq("", NULL))
+ | !TEST(0, TEST_str_eq(NULL, ""))
+ | !TEST(0, TEST_str_ne("", ""))
+ | !TEST(0, TEST_str_eq("\1\2\3\4\5", "\1x\3\6\5"))
+ | !TEST(0, TEST_str_ne("abc", buf))
+ | !TEST(1, TEST_str_ne("abc", NULL))
+ | !TEST(1, TEST_str_ne(NULL, buf))
+ | !TEST(0, TEST_str_eq("abcdef", "abcdefghijk")))
+ goto err;
+ return 1;
+
+err:
+ return 0;
+}
+
+static int test_memory(void)
+{
+ static char buf[] = "xyz";
+
+ if (!TEST(1, TEST_mem_eq(NULL, 0, NULL, 0))
+ | !TEST(1, TEST_mem_eq(NULL, 1, NULL, 2))
+ | !TEST(0, TEST_mem_eq(NULL, 0, "xyz", 3))
+ | !TEST(0, TEST_mem_eq(NULL, 7, "abc", 3))
+ | !TEST(0, TEST_mem_ne(NULL, 0, NULL, 0))
+ | !TEST(0, TEST_mem_eq(NULL, 0, "", 0))
+ | !TEST(0, TEST_mem_eq("", 0, NULL, 0))
+ | !TEST(0, TEST_mem_ne("", 0, "", 0))
+ | !TEST(0, TEST_mem_eq("xyz", 3, NULL, 0))
+ | !TEST(0, TEST_mem_eq("xyz", 3, buf, sizeof(buf)))
+ | !TEST(1, TEST_mem_eq("xyz", 4, buf, sizeof(buf))))
+ goto err;
+ return 1;
+
+err:
+ return 0;
+}
+
+static int test_memory_overflow(void)
+{
+ /* Verify that the memory printing overflows without walking the stack */
+ const char *p = "1234567890123456789012345678901234567890123456789012";
+ const char *q = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
+ return TEST(0, TEST_mem_eq(p, strlen(p), q, strlen(q)));
+}
+
+static int test_bignum(void)
+{
+ BIGNUM *a = NULL, *b = NULL, *c = NULL;
+ int r = 0;
+
+ if (!TEST(1, TEST_int_eq(BN_dec2bn(&a, "0"), 1))
+ | !TEST(1, TEST_BN_eq_word(a, 0))
+ | !TEST(0, TEST_BN_eq_word(a, 30))
+ | !TEST(1, TEST_BN_abs_eq_word(a, 0))
+ | !TEST(0, TEST_BN_eq_one(a))
+ | !TEST(1, TEST_BN_eq_zero(a))
+ | !TEST(0, TEST_BN_ne_zero(a))
+ | !TEST(1, TEST_BN_le_zero(a))
+ | !TEST(0, TEST_BN_lt_zero(a))
+ | !TEST(1, TEST_BN_ge_zero(a))
+ | !TEST(0, TEST_BN_gt_zero(a))
+ | !TEST(1, TEST_BN_even(a))
+ | !TEST(0, TEST_BN_odd(a))
+ | !TEST(1, TEST_BN_eq(b, c))
+ | !TEST(0, TEST_BN_eq(a, b))
+ | !TEST(0, TEST_BN_ne(NULL, c))
+ | !TEST(1, TEST_int_eq(BN_dec2bn(&b, "1"), 1))
+ | !TEST(1, TEST_BN_eq_word(b, 1))
+ | !TEST(1, TEST_BN_eq_one(b))
+ | !TEST(0, TEST_BN_abs_eq_word(b, 0))
+ | !TEST(1, TEST_BN_abs_eq_word(b, 1))
+ | !TEST(0, TEST_BN_eq_zero(b))
+ | !TEST(1, TEST_BN_ne_zero(b))
+ | !TEST(0, TEST_BN_le_zero(b))
+ | !TEST(0, TEST_BN_lt_zero(b))
+ | !TEST(1, TEST_BN_ge_zero(b))
+ | !TEST(1, TEST_BN_gt_zero(b))
+ | !TEST(0, TEST_BN_even(b))
+ | !TEST(1, TEST_BN_odd(b))
+ | !TEST(1, TEST_int_eq(BN_dec2bn(&c, "-334739439"), 10))
+ | !TEST(0, TEST_BN_eq_word(c, 334739439))
+ | !TEST(1, TEST_BN_abs_eq_word(c, 334739439))
+ | !TEST(0, TEST_BN_eq_zero(c))
+ | !TEST(1, TEST_BN_ne_zero(c))
+ | !TEST(1, TEST_BN_le_zero(c))
+ | !TEST(1, TEST_BN_lt_zero(c))
+ | !TEST(0, TEST_BN_ge_zero(c))
+ | !TEST(0, TEST_BN_gt_zero(c))
+ | !TEST(0, TEST_BN_even(c))
+ | !TEST(1, TEST_BN_odd(c))
+ | !TEST(1, TEST_BN_eq(a, a))
+ | !TEST(0, TEST_BN_ne(a, a))
+ | !TEST(0, TEST_BN_eq(a, b))
+ | !TEST(1, TEST_BN_ne(a, b))
+ | !TEST(0, TEST_BN_lt(a, c))
+ | !TEST(1, TEST_BN_lt(c, b))
+ | !TEST(0, TEST_BN_lt(b, c))
+ | !TEST(0, TEST_BN_le(a, c))
+ | !TEST(1, TEST_BN_le(c, b))
+ | !TEST(0, TEST_BN_le(b, c))
+ | !TEST(1, TEST_BN_gt(a, c))
+ | !TEST(0, TEST_BN_gt(c, b))
+ | !TEST(1, TEST_BN_gt(b, c))
+ | !TEST(1, TEST_BN_ge(a, c))
+ | !TEST(0, TEST_BN_ge(c, b))
+ | !TEST(1, TEST_BN_ge(b, c)))
+ goto err;
+
+ r = 1;
+err:
+ BN_free(a);
+ BN_free(b);
+ BN_free(c);
+ return r;
+}
+
+static int test_long_output(void)
+{
+ const char *p = "1234567890123456789012345678901234567890123456789012";
+ const char *q = "1234567890klmnopqrs01234567890EFGHIJKLM0123456789XYZ";
+ const char *r = "1234567890123456789012345678901234567890123456789012"
+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY+"
+ "12345678901234567890123ABC78901234567890123456789012";
+ const char *s = "1234567890123456789012345678901234567890123456789012"
+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY-"
+ "1234567890123456789012345678901234567890123456789012"
+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
+ return TEST(0, TEST_str_eq(p, q))
+ & TEST(0, TEST_str_eq(q, r))
+ & TEST(0, TEST_str_eq(r, s))
+ & TEST(0, TEST_mem_eq(r, strlen(r), s, strlen(s)));
+}
+
+static int test_long_bignum(void)
+{
+ int r;
+ BIGNUM *a = NULL, *b = NULL, *c = NULL, *d = NULL;
+ const char as[] = "1234567890123456789012345678901234567890123456789012"
+ "1234567890123456789012345678901234567890123456789012"
+ "1234567890123456789012345678901234567890123456789012"
+ "1234567890123456789012345678901234567890123456789012"
+ "1234567890123456789012345678901234567890123456789012"
+ "1234567890123456789012345678901234567890123456789012"
+ "FFFFFF";
+ const char bs[] = "1234567890123456789012345678901234567890123456789012"
+ "1234567890123456789012345678901234567890123456789013"
+ "987657";
+ const char cs[] = "-" /* 64 characters plus sign */
+ "123456789012345678901234567890"
+ "123456789012345678901234567890"
+ "ABCD";
+ const char ds[] = "-" /* 63 characters plus sign */
+ "23456789A123456789B123456789C"
+ "123456789D123456789E123456789F"
+ "ABCD";
+
+ r = TEST_true(BN_hex2bn(&a, as))
+ && TEST_true(BN_hex2bn(&b, bs))
+ && TEST_true(BN_hex2bn(&c, cs))
+ && TEST_true(BN_hex2bn(&d, ds))
+ && (TEST(0, TEST_BN_eq(a, b))
+ & TEST(0, TEST_BN_eq(b, a))
+ & TEST(0, TEST_BN_eq(b, NULL))
+ & TEST(0, TEST_BN_eq(NULL, a))
+ & TEST(1, TEST_BN_ne(a, NULL))
+ & TEST(0, TEST_BN_eq(c, d)));
+ BN_free(a);
+ BN_free(b);
+ BN_free(c);
+ BN_free(d);
+ return r;
+}
+
+static int test_messages(void)
+{
+ TEST_info("This is an %s message.", "info");
+ TEST_error("This is an %s message.", "error");
+ return 1;
+}
+
+static int test_single_eval(void)
+{
+ int i = 4;
+ long l = -9000;
+ char c = 'd';
+ unsigned char uc = 22;
+ unsigned long ul = 500;
+ size_t st = 1234;
+ char buf[4] = { 0 }, *p = buf;
+
+ /* int */
+ return TEST_int_eq(i++, 4)
+ && TEST_int_eq(i, 5)
+ && TEST_int_gt(++i, 5)
+ && TEST_int_le(5, i++)
+ && TEST_int_ne(--i, 5)
+ && TEST_int_eq(12, i *= 2)
+ /* Long */
+ && TEST_long_eq(l--, -9000L)
+ && TEST_long_eq(++l, -9000L)
+ && TEST_long_ne(-9000L, l /= 2)
+ && TEST_long_lt(--l, -4500L)
+ /* char */
+ && TEST_char_eq(++c, 'e')
+ && TEST_char_eq('e', c--)
+ && TEST_char_ne('d', --c)
+ && TEST_char_le('b', --c)
+ && TEST_char_lt(c++, 'c')
+ /* unsigned char */
+ && TEST_uchar_eq(22, uc++)
+ && TEST_uchar_eq(uc /= 2, 11)
+ && TEST_ulong_eq(ul ^= 1, 501)
+ && TEST_ulong_eq(502, ul ^= 3)
+ && TEST_ulong_eq(ul = ul * 3 - 6, 1500)
+ /* size_t */
+ && TEST_size_t_eq((--i, st++), 1234)
+ && TEST_size_t_eq(st, 1235)
+ && TEST_int_eq(11, i)
+ /* pointers */
+ && TEST_ptr_eq(p++, buf)
+ && TEST_ptr_eq(buf + 2, ++p)
+ && TEST_ptr_eq(buf, p -= 2)
+ && TEST_ptr(++p)
+ && TEST_ptr_eq(p, buf + 1)
+ && TEST_ptr_null(p = NULL)
+ /* strings */
+ && TEST_str_eq(p = &("123456"[1]), "23456")
+ && TEST_str_eq("3456", ++p)
+ && TEST_str_ne(p++, "456")
+ /* memory */
+ && TEST_mem_eq(--p, sizeof("3456"), "3456", sizeof("3456"))
+ && TEST_mem_ne(p++, sizeof("456"), "456", sizeof("456"))
+ && TEST_mem_eq(p--, sizeof("456"), "456", sizeof("456"));
+}
+
+static int test_output(void)
+{
+ const char s[] = "1234567890123456789012345678901234567890123456789012"
+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
+ test_output_string("test", s, sizeof(s) - 1);
+ test_output_memory("test", (const unsigned char *)s, sizeof(s));
+ return 1;
+}
+
+static const char *bn_output_tests[] = {
+ NULL,
+ "0",
+ "-12345678",
+ "1234567890123456789012345678901234567890123456789012"
+ "1234567890123456789012345678901234567890123456789013"
+ "987657"
+};
+
+static int test_bn_output(int n)
+{
+ BIGNUM *b = NULL;
+
+ if (bn_output_tests[n] != NULL
+ && !TEST_true(BN_hex2bn(&b, bn_output_tests[n])))
+ return 0;
+ test_output_bignum(bn_output_tests[n], b);
+ BN_free(b);
+ return 1;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_int);
+ ADD_TEST(test_uint);
+ ADD_TEST(test_char);
+ ADD_TEST(test_uchar);
+ ADD_TEST(test_long);
+ ADD_TEST(test_ulong);
+ ADD_TEST(test_size_t);
+ ADD_TEST(test_time_t);
+ ADD_TEST(test_pointer);
+ ADD_TEST(test_bool);
+ ADD_TEST(test_string);
+ ADD_TEST(test_memory);
+ ADD_TEST(test_memory_overflow);
+ ADD_TEST(test_bignum);
+ ADD_TEST(test_long_bignum);
+ ADD_TEST(test_long_output);
+ ADD_TEST(test_messages);
+ ADD_TEST(test_single_eval);
+ ADD_TEST(test_output);
+ ADD_ALL_TESTS(test_bn_output, OSSL_NELEM(bn_output_tests));
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testcrl.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testcrl.pem
new file mode 100644
index 000000000..098978835
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testcrl.pem
@@ -0,0 +1,16 @@
+-----BEGIN X509 CRL-----
+MIICjTCCAfowDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMxIDAeBgNVBAoT
+F1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2VydmVy
+IENlcnRpZmljYXRpb24gQXV0aG9yaXR5Fw05NTA1MDIwMjEyMjZaFw05NTA2MDEw
+MDAxNDlaMIIBaDAWAgUCQQAABBcNOTUwMjAxMTcyNDI2WjAWAgUCQQAACRcNOTUw
+MjEwMDIxNjM5WjAWAgUCQQAADxcNOTUwMjI0MDAxMjQ5WjAWAgUCQQAADBcNOTUw
+MjI1MDA0NjQ0WjAWAgUCQQAAGxcNOTUwMzEzMTg0MDQ5WjAWAgUCQQAAFhcNOTUw
+MzE1MTkxNjU0WjAWAgUCQQAAGhcNOTUwMzE1MTk0MDQxWjAWAgUCQQAAHxcNOTUw
+MzI0MTk0NDMzWjAWAgUCcgAABRcNOTUwMzI5MjAwNzExWjAWAgUCcgAAERcNOTUw
+MzMwMDIzNDI2WjAWAgUCQQAAIBcNOTUwNDA3MDExMzIxWjAWAgUCcgAAHhcNOTUw
+NDA4MDAwMjU5WjAWAgUCcgAAQRcNOTUwNDI4MTcxNzI0WjAWAgUCcgAAOBcNOTUw
+NDI4MTcyNzIxWjAWAgUCcgAATBcNOTUwNTAyMDIxMjI2WjANBgkqhkiG9w0BAQIF
+AAN+AHqOEJXSDejYy0UwxxrH/9+N2z5xu/if0J6qQmK92W0hW158wpJg+ovV3+wQ
+wvIEPRL2rocL0tKfAsVq1IawSJzSNgxG0lrcla3MrJBnZ4GaZDu4FutZh72MR3Gt
+JaAL3iTJHJD55kK2D/VoyY1djlsPuNh6AEgdVwFAyp0v
+-----END X509 CRL-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testdsa.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testdsa.pem
new file mode 100644
index 000000000..b2ca5ba4d
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testdsa.pem
@@ -0,0 +1,12 @@
+-----BEGIN DSA PRIVATE KEY-----
+MIIBvQIBAAKBgQD9Ko2Ezy2mKeOV4oJsjy8Ves9Av6bPvr5y6iFTVpGQewjzsAHS
+l3eAxwyrvE0cx8cQ4ODieVRnWibZIEoF2NRUBw3l/6o8wo1BZTnF7wtZpNr6QcCQ
+QNC3CaQZ0lw2rOewGxqZpeXmYurfceRnsZBSpQiw8kW+JTgCbRJtVAYF1wIVAN+X
+sK/vqcIQlD6ZV055LoV4qv0jAoGBAL52x3C4paZkU61ZTiIgUKPXBpanQ4a7nsjd
+iSjzgnto+rveVuFkZQKaD7Wts8SLpojBat7supr+qF1pWVpRwxOXofdO72XdKm5u
+3co7sLnqf/WVCmzX9/unlAsGfDG1R6RqA71MnQJ5q56LwAzqK23ZfGt5v1Wpho36
+FY/JnLZ2AoGBAMyZoH2YF7/wO7CbGD6bGet3q+zxksOp+6gz2+ae23Gajpd3u4Jz
+bOxqjk4vrQaTrMPRRWXWJxC5WwLMalzwke75wi8gGT6+EUxFoLXlSmRQN+h4f+Ab
+OHFQiiW9v3xrgUKPiYWPEz/bhYw5DC73vPfkHXxmV495KiSIx4fvfH1BAhUAv3HU
+l7iXVdDF5BKF2B+Vd8w9+MI=
+-----END DSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testdsapub.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testdsapub.pem
new file mode 100644
index 000000000..70e7d5cc6
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testdsapub.pem
@@ -0,0 +1,12 @@
+-----BEGIN PUBLIC KEY-----
+MIIBuDCCASwGByqGSM44BAEwggEfAoGBAP0qjYTPLaYp45XigmyPLxV6z0C/ps++
+vnLqIVNWkZB7CPOwAdKXd4DHDKu8TRzHxxDg4OJ5VGdaJtkgSgXY1FQHDeX/qjzC
+jUFlOcXvC1mk2vpBwJBA0LcJpBnSXDas57AbGpml5eZi6t9x5GexkFKlCLDyRb4l
+OAJtEm1UBgXXAhUA35ewr++pwhCUPplXTnkuhXiq/SMCgYEAvnbHcLilpmRTrVlO
+IiBQo9cGlqdDhrueyN2JKPOCe2j6u95W4WRlApoPta2zxIumiMFq3uy6mv6oXWlZ
+WlHDE5eh907vZd0qbm7dyjuwuep/9ZUKbNf3+6eUCwZ8MbVHpGoDvUydAnmrnovA
+DOorbdl8a3m/VamGjfoVj8mctnYDgYUAAoGBAMyZoH2YF7/wO7CbGD6bGet3q+zx
+ksOp+6gz2+ae23Gajpd3u4JzbOxqjk4vrQaTrMPRRWXWJxC5WwLMalzwke75wi8g
+GT6+EUxFoLXlSmRQN+h4f+AbOHFQiiW9v3xrgUKPiYWPEz/bhYw5DC73vPfkHXxm
+V495KiSIx4fvfH1B
+-----END PUBLIC KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testec-p256.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testec-p256.pem
new file mode 100644
index 000000000..fb79a4c5b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testec-p256.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PRIVATE KEY-----
+MHcCAQEEIDYEX2yQlhJXDIwBEwcfyAn2eICEKJxqsAPGChey1a2toAoGCCqGSM49
+AwEHoUQDQgAEJXwAdITiPFcSUsaRI2nlzTNRn++q6F38XrH8m8sf28DQ+2Oob5SU
+zvgjVS0e70pIqH6bSXDgPc8mKtSs9Zi26Q==
+-----END EC PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testecpub-p256.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testecpub-p256.pem
new file mode 100644
index 000000000..60695b82c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testecpub-p256.pem
@@ -0,0 +1,4 @@
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEJXwAdITiPFcSUsaRI2nlzTNRn++q
+6F38XrH8m8sf28DQ+2Oob5SUzvgjVS0e70pIqH6bSXDgPc8mKtSs9Zi26Q==
+-----END PUBLIC KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testp7.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testp7.pem
new file mode 100644
index 000000000..e5b7866c3
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testp7.pem
@@ -0,0 +1,46 @@
+-----BEGIN PKCS7-----
+MIIIGAYJKoZIhvcNAQcCoIIICTCCCAUCAQExADALBgkqhkiG9w0BBwGgggY8MIIE
+cjCCBBygAwIBAgIQeS+OJfWJUZAx6cX0eAiMjzANBgkqhkiG9w0BAQQFADBiMREw
+DwYDVQQHEwhJbnRlcm5ldDEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNDAyBgNV
+BAsTK1ZlcmlTaWduIENsYXNzIDEgQ0EgLSBJbmRpdmlkdWFsIFN1YnNjcmliZXIw
+HhcNOTYwNzE5MDAwMDAwWhcNOTcwMzMwMjM1OTU5WjCB1TERMA8GA1UEBxMISW50
+ZXJuZXQxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTQwMgYDVQQLEytWZXJpU2ln
+biBDbGFzcyAxIENBIC0gSW5kaXZpZHVhbCBTdWJzY3JpYmVyMSgwJgYDVQQLEx9E
+aWdpdGFsIElEIENsYXNzIDEgLSBTTUlNRSBUZXN0MUcwRQYDVQQLEz53d3cudmVy
+aXNpZ24uY29tL3JlcG9zaXRvcnkvQ1BTLTEuMCBJbmMuIGJ5IFJlZi4sTElBQi5M
+VEQoYyk5NjBbMA0GCSqGSIb3DQEBAQUAA0oAMEcCQA7LvHEIAiQ5+4gDYvJGnGAq
+UM5GXyG11diEXmIEZTHUZhorooX5sr8IIjSXiPY59YYUFSvAaharFM1xaBN8zNEC
+AwEAAaOCAjkwggI1MAkGA1UdEwQCMAAwggImBgNVHQMEggIdMIICGTCCAhUwggIR
+BgtghkgBhvhFAQcBATCCAgAWggGrVGhpcyBjZXJ0aWZpY2F0ZSBpbmNvcnBvcmF0
+ZXMgYnkgcmVmZXJlbmNlLCBhbmQgaXRzIHVzZSBpcyBzdHJpY3RseSBzdWJqZWN0
+IHRvLCB0aGUgVmVyaVNpZ24gQ2VydGlmaWNhdGlvbiBQcmFjdGljZSBTdGF0ZW1l
+bnQgKENQUyksIGF2YWlsYWJsZSBhdDogaHR0cHM6Ly93d3cudmVyaXNpZ24uY29t
+L0NQUy0xLjA7IGJ5IEUtbWFpbCBhdCBDUFMtcmVxdWVzdHNAdmVyaXNpZ24uY29t
+OyBvciBieSBtYWlsIGF0IFZlcmlTaWduLCBJbmMuLCAyNTkzIENvYXN0IEF2ZS4s
+IE1vdW50YWluIFZpZXcsIENBIDk0MDQzIFVTQSBUZWwuICsxICg0MTUpIDk2MS04
+ODMwIENvcHlyaWdodCAoYykgMTk5NiBWZXJpU2lnbiwgSW5jLiAgQWxsIFJpZ2h0
+cyBSZXNlcnZlZC4gQ0VSVEFJTiBXQVJSQU5USUVTIERJU0NMQUlNRUQgYW5kIExJ
+QUJJTElUWSBMSU1JVEVELqAOBgxghkgBhvhFAQcBAQGhDgYMYIZIAYb4RQEHAQEC
+MC8wLRYraHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvQ1BTLTEu
+AzANBgkqhkiG9w0BAQQFAANBAMCYDuSb/eIlYSxY31nZZTaCZkCSfHjlacMofExr
+cF+A2yHoEuT+eCQkqM0pMNHXddUeoQ9RjV+VuMBNmm63DUYwggHCMIIBbKADAgEC
+AhB8CYTq1bkRFJBYOd67cp9JMA0GCSqGSIb3DQEBAgUAMD4xCzAJBgNVBAYTAlVT
+MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEWMBQGA1UECxMNVEVTVCBSb290IFBD
+QTAeFw05NjA3MTcwMDAwMDBaFw05NzA3MTcyMzU5NTlaMGIxETAPBgNVBAcTCElu
+dGVybmV0MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE0MDIGA1UECxMrVmVyaVNp
+Z24gQ2xhc3MgMSBDQSAtIEluZGl2aWR1YWwgU3Vic2NyaWJlcjBcMA0GCSqGSIb3
+DQEBAQUAA0sAMEgCQQDsVzrNgnDhbAJZrWeLd9g1vMZJA2W67D33TTbga6yMt+ES
+TWEywhS6RNP+fzLGg7utinjH4tL60cXa0G27GDsLAgMBAAGjIjAgMAsGA1UdDwQE
+AwIBBjARBglghkgBhvhCAQEEBAMCAgQwDQYJKoZIhvcNAQECBQADQQAUp6bRwkaD
+2d1MBs/mjUcgTI2fXVmW8tTm/Ud6OzUwpC3vYgybiOOA4f6mOC5dbyUHrLOsrihU
+47ZQ0Jo1DUfboYIBrTCBwTBtMA0GCSqGSIb3DQEBAgUAMD4xCzAJBgNVBAYTAlVT
+MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEWMBQGA1UECxMNVEVTVCBSb290IFBD
+QRcNOTYwNzE3MTc0NDA5WhcNOTgwNzE3MDAwMDAwWjANBgkqhkiG9w0BAQIFAANB
+AHitA0/xAukCjHzeh1AMT/l2oC68N+yFb+aJPHBBMxc6gG2MaKjBNwb5hcXUllMl
+ExONA3ju10f7owIq3s3wx10wgeYwgZEwDQYJKoZIhvcNAQECBQAwYjERMA8GA1UE
+BxMISW50ZXJuZXQxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTQwMgYDVQQLEytW
+ZXJpU2lnbiBDbGFzcyAxIENBIC0gSW5kaXZpZHVhbCBTdWJzY3JpYmVyFw05NjA3
+MTcxNzU5MjlaFw05NzA3MTgwMDAwMDBaMA0GCSqGSIb3DQEBAgUAA0EAubVWYTsW
+sQmste9f+UgMw8BkjDlM25fwQLrCfmmnLxjewey10kSROypUaJLb+r4oRALc0fG9
+XfZsaiiIgotQHjEA
+-----END PKCS7-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testreq2.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testreq2.pem
new file mode 100644
index 000000000..c3cdcffcb
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testreq2.pem
@@ -0,0 +1,7 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIHaMIGFAgEAMA4xDDAKBgNVBAMTA2NuNDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC
+QQCQsnkyUGDY2R3mYoeTprFJKgWuJ3f1jUjlIuW5+wfAUoeMt35c4vcFZ2mIBpEG
+DtzkNQN1kr2O9ldm9zYnYhyhAgMBAAGgEjAQBgorBgEEAYI3AgEOMQIwADANBgkq
+hkiG9w0BAQQFAANBAAb2szZgVIxg3vK6kYLjGSBISyuzcXJ6IvuPW6M+yzi1Qgoi
+gQhazHTJp91T8ItZEzUJGZSZl2e5iXlnffWB+/U=
+-----END CERTIFICATE REQUEST-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testrsa.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testrsa.pem
new file mode 100644
index 000000000..aad21067a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testrsa.pem
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBPAIBAAJBAKrbeqkuRk8VcRmWFmtP+LviMB3+6dizWW3DwaffznyHGAFwUJ/I
+Tv0XtbsCyl3QoyKGhrOAy3RvPK5M38iuXT0CAwEAAQJAZ3cnzaHXM/bxGaR5CR1R
+rD1qFBAVfoQFiOH9uPJgMaoAuoQEisPHVcZDKcOv4wEg6/TInAIXBnEigtqvRzuy
+oQIhAPcgZzUq3yVooAaoov8UbXPxqHlwo6GBMqnv20xzkf6ZAiEAsP4BnIaQTM8S
+mvcpHZwQJdmdHHkGKAs37Dfxi67HbkUCIQCeZGliHXFa071Fp06ZeWlR2ADonTZz
+rJBhdTe0v5pCeQIhAIZfkiGgGBX4cIuuckzEm43g9WMUjxP/0GlK39vIyihxAiEA
+mymehFRT0MvqW5xAKAx7Pgkt8HVKwVhc2LwGKHE0DZM=
+-----END RSA PRIVATE KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testrsapub.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testrsapub.pem
new file mode 100644
index 000000000..bee2b95e2
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testrsapub.pem
@@ -0,0 +1,4 @@
+-----BEGIN PUBLIC KEY-----
+MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKrbeqkuRk8VcRmWFmtP+LviMB3+6diz
+WW3DwaffznyHGAFwUJ/ITv0XtbsCyl3QoyKGhrOAy3RvPK5M38iuXT0CAwEAAQ==
+-----END PUBLIC KEY-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testsid.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testsid.pem
new file mode 100644
index 000000000..a90fb6ef1
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testsid.pem
@@ -0,0 +1,38 @@
+-----BEGIN SSL SESSION PARAMETERS-----
+MIIGpAIBAQICAwMEAsAwBCABkpk0q01VEnPtcNWLtYg1xZJLreP0C1r4wPOakiLu
+8AQwi0opOLa+Omt26PqbLUcmI1H7F/n7qRy6TaL9Lxf2/ZBUDgRG3aSuSejO+gki
+F2U9oQYCBFR6XVaiBAICASyjggVjMIIFXzCCBEegAwIBAgIQNdDRF5hINFi7kAeK
+0fP5FjANBgkqhkiG9w0BAQUFADBBMQswCQYDVQQGEwJGUjESMBAGA1UEChMJR0FO
+REkgU0FTMR4wHAYDVQQDExVHYW5kaSBTdGFuZGFyZCBTU0wgQ0EwHhcNMTMxMjMx
+MDAwMDAwWhcNMTQxMjMxMjM1OTU5WjBYMSEwHwYDVQQLExhEb21haW4gQ29udHJv
+bCBWYWxpZGF0ZWQxGzAZBgNVBAsTEkdhbmRpIFN0YW5kYXJkIFNTTDEWMBQGA1UE
+AxMNZGIuZGViaWFuLm9yZzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGB
+AN/7DlZZKR5SELzF7rdn6LWxuebpVyFu1eXltzxi+Mig9cR0ZZD3hp0JcUresABO
+zE66AuhGtcFus/J/88CGM2r39u3n5ac5O/4Ypp57997YJRV725dL4oX75Vpc4p8j
+EI/LyIFteZN22ziv9zW7qCKKahnq1tuqDkV+84BEARpVdIaaWmn/KqsEgxeNKomy
+OLvn96IVCTAF78rudPmJHfSCl++NFmg0yu7DPyuXf8YJfA6j8/kFueanK2B1y/ww
+8MSbL3iAdgLwVtRJkwRYyKn8p5+ybwzX9L36GWgYs9OXUn8x494T5GjbGQVxUNt7
+qJnRtiUwYVoiOARrv1EI0Cq4ANXVaLDckc5y0a2PY3c4NWVlKGYbdxdQC1n6nH93
+mWDIr6vu7JX3CqDDr8FBlNVVtiBiv0q/eiVb9dzBzOntt3hA6GOJFAuwDDf7g7nq
+Gq8qqcr7EIyVB8ytQ5XMgtLCpmJkLzIdRYfdsQMa7cAbl0THAwwXigcotFA0aYIP
+BQIDAQABo4IBujCCAbYwHwYDVR0jBBgwFoAUtqj/oqgv0KbNS7Fo8+dQEDGneSEw
+HQYDVR0OBBYEFDJGWXznCu/+qyFLCmUI4cmXy1DCMA4GA1UdDwEB/wQEAwIFoDAM
+BgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjBgBgNV
+HSAEWTBXMEsGCysGAQQBsjEBAgIaMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cu
+Z2FuZGkubmV0L2NvbnRyYWN0cy9mci9zc2wvY3BzL3BkZi8wCAYGZ4EMAQIBMDwG
+A1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuZ2FuZGkubmV0L0dhbmRpU3RhbmRh
+cmRTU0xDQS5jcmwwagYIKwYBBQUHAQEEXjBcMDcGCCsGAQUFBzAChitodHRwOi8v
+Y3J0LmdhbmRpLm5ldC9HYW5kaVN0YW5kYXJkU1NMQ0EuY3J0MCEGCCsGAQUFBzAB
+hhVodHRwOi8vb2NzcC5nYW5kaS5uZXQwKwYDVR0RBCQwIoINZGIuZGViaWFuLm9y
+Z4IRd3d3LmRiLmRlYmlhbi5vcmcwDQYJKoZIhvcNAQEFBQADggEBAK+ix7EQNPgU
+qDx46gAPifcm6b2FvXq+gtlB9h6UaDDO7fxDzmoU5V4WtdBM5uvIfOmpeNuCxPaj
+18cUlj9PPjL3eK43UCVu6w5hN3p2/2BPvFjQRhtBcIcEWsMal1DCtS/vCBkQt1lS
+gd4/xiMfK4cQYtwRu47gB0HuM2lecYHA42EC5hqupY/2tHo54AdyU46TxgUQcm0e
+icLtYuTjIYQWdUgM92heDw8caey5GKL2/TmYM2iWy/csFLm4tJAwPMtvy1KWdJQE
+iqYIuI9Lb4/xOyjSwVNLIJmbEzE6Sds9sjxqEcU4CconTVJazvHZtnBRV8GiRYKa
+d/xgQ6J+/Z2kAgQAqQQCAgEsqoHDBIHAPGxCacLRMYb3hbL3lRqQIfH3xoufIwKn
+zOAIyjxH7GPZpI87/e93AF1uw6eyy+aWJM6G/71E8Ln1iQtZjrGkGQCjEcIrUhEk
+Bgg93A28zly2zu2aBwi2yT4bUcyHxE3P3Q4R8xkQxrdWSMfCjCy9HKUViOENKET6
+avKXF7lDT1iG/x8RtTHtFGYX4YcFVhdEqcqnZ7tw5sqkHG2D0gLzO2SETF9KPHCq
+zAHQtw5r4Dgl+a+BGLczh6as4yIH+xH+
+-----END SSL SESSION PARAMETERS-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil.h b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil.h
new file mode 100644
index 000000000..575be955b
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil.h
@@ -0,0 +1,468 @@
+/*
+ * Copyright 2014-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#ifndef OSSL_TESTUTIL_H
+# define OSSL_TESTUTIL_H
+
+#include <stdarg.h>
+
+#include <openssl/err.h>
+#include <openssl/e_os2.h>
+#include <openssl/bn.h>
+
+/*-
+ * Simple unit tests should implement setup_tests().
+ * This function should return zero if the registration process fails.
+ * To register tests, call ADD_TEST or ADD_ALL_TESTS:
+ *
+ * int setup_tests(void)
+ * {
+ * ADD_TEST(test_foo);
+ * ADD_ALL_TESTS(test_bar, num_test_bar);
+ * return 1;
+ * }
+ *
+ * Tests that require clean up after execution should implement:
+ *
+ * void cleanup_tests(void);
+ *
+ * The cleanup_tests function will be called even if setup_tests()
+ * returns failure.
+ *
+ * In some cases, early initialization before the framework is set up
+ * may be needed. In such a case, this should be implemented:
+ *
+ * int global_init(void);
+ *
+ * This function should return zero if there is an unrecoverable error and
+ * non-zero if the initialization was successful.
+ */
+
+/* Adds a simple test case. */
+# define ADD_TEST(test_function) add_test(#test_function, test_function)
+
+/*
+ * Simple parameterized tests. Calls test_function(idx) for each 0 <= idx < num.
+ */
+# define ADD_ALL_TESTS(test_function, num) \
+ add_all_tests(#test_function, test_function, num, 1)
+/*
+ * A variant of the same without TAP output.
+ */
+# define ADD_ALL_TESTS_NOSUBTEST(test_function, num) \
+ add_all_tests(#test_function, test_function, num, 0)
+
+/*-
+ * Test cases that share common setup should use the helper
+ * SETUP_TEST_FIXTURE and EXECUTE_TEST macros for test case functions.
+ *
+ * SETUP_TEST_FIXTURE will call set_up() to create a new TEST_FIXTURE_TYPE
+ * object called "fixture". It will also allocate the "result" variable used
+ * by EXECUTE_TEST. set_up() should take a const char* specifying the test
+ * case name and return a TEST_FIXTURE_TYPE by reference.
+ *
+ * EXECUTE_TEST will pass fixture to execute_func() by reference, call
+ * tear_down(), and return the result of execute_func(). execute_func() should
+ * take a TEST_FIXTURE_TYPE by reference and return 1 on success and 0 on
+ * failure. The tear_down function is responsible for deallocation of the
+ * result variable, if required.
+ *
+ * Unit tests can define their own SETUP_TEST_FIXTURE and EXECUTE_TEST
+ * variations like so:
+ *
+ * #define SETUP_FOOBAR_TEST_FIXTURE()\
+ * SETUP_TEST_FIXTURE(FOOBAR_TEST_FIXTURE, set_up_foobar)
+ *
+ * #define EXECUTE_FOOBAR_TEST()\
+ * EXECUTE_TEST(execute_foobar, tear_down_foobar)
+ *
+ * Then test case functions can take the form:
+ *
+ * static int test_foobar_feature()
+ * {
+ * SETUP_FOOBAR_TEST_FIXTURE();
+ * [...set individual members of fixture...]
+ * EXECUTE_FOOBAR_TEST();
+ * }
+ */
+# define SETUP_TEST_FIXTURE(TEST_FIXTURE_TYPE, set_up)\
+ TEST_FIXTURE_TYPE *fixture = set_up(TEST_CASE_NAME); \
+ int result = 0
+
+# define EXECUTE_TEST(execute_func, tear_down)\
+ if (fixture != NULL) {\
+ result = execute_func(fixture);\
+ tear_down(fixture);\
+ }
+
+/*
+ * TEST_CASE_NAME is defined as the name of the test case function where
+ * possible; otherwise we get by with the file name and line number.
+ */
+# if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L
+# if defined(_MSC_VER)
+# define TEST_CASE_NAME __FUNCTION__
+# else
+# define testutil_stringify_helper(s) #s
+# define testutil_stringify(s) testutil_stringify_helper(s)
+# define TEST_CASE_NAME __FILE__ ":" testutil_stringify(__LINE__)
+# endif /* _MSC_VER */
+# else
+# define TEST_CASE_NAME __func__
+# endif /* __STDC_VERSION__ */
+
+/*
+ * Tests that need access to command line arguments should use the functions:
+ * test_get_argument(int n) to get the nth argument, the first argument is
+ * argument 0. This function returns NULL on error.
+ * test_get_argument_count() to get the count of the arguments.
+ * test_has_option(const char *) to check if the specified option was passed.
+ * test_get_option_argument(const char *) to get an option which includes an
+ * argument. NULL is returns if the option is not found.
+ * const char *test_get_program_name(void) returns the name of the test program
+ * being executed.
+ */
+const char *test_get_program_name(void);
+char *test_get_argument(size_t n);
+size_t test_get_argument_count(void);
+int test_has_option(const char *option);
+const char *test_get_option_argument(const char *option);
+
+/*
+ * Internal helpers. Test programs shouldn't use these directly, but should
+ * rather link to one of the helper main() methods.
+ */
+
+void add_test(const char *test_case_name, int (*test_fn) (void));
+void add_all_tests(const char *test_case_name, int (*test_fn)(int idx), int num,
+ int subtest);
+
+/*
+ * Declarations for user defined functions.
+ * The first two return a boolean indicating that the test should not proceed.
+ */
+int global_init(void);
+int setup_tests(void);
+void cleanup_tests(void);
+
+/*
+ * Test assumption verification helpers.
+ */
+
+#define PRINTF_FORMAT(a, b)
+#if defined(__GNUC__) && defined(__STDC_VERSION__)
+ /*
+ * Because we support the 'z' modifier, which made its appearance in C99,
+ * we can't use __attribute__ with pre C99 dialects.
+ */
+# if __STDC_VERSION__ >= 199901L
+# undef PRINTF_FORMAT
+# define PRINTF_FORMAT(a, b) __attribute__ ((format(printf, a, b)))
+# endif
+#endif
+
+# define DECLARE_COMPARISON(type, name, opname) \
+ int test_ ## name ## _ ## opname(const char *, int, \
+ const char *, const char *, \
+ const type, const type);
+
+# define DECLARE_COMPARISONS(type, name) \
+ DECLARE_COMPARISON(type, name, eq) \
+ DECLARE_COMPARISON(type, name, ne) \
+ DECLARE_COMPARISON(type, name, lt) \
+ DECLARE_COMPARISON(type, name, le) \
+ DECLARE_COMPARISON(type, name, gt) \
+ DECLARE_COMPARISON(type, name, ge)
+
+DECLARE_COMPARISONS(int, int)
+DECLARE_COMPARISONS(unsigned int, uint)
+DECLARE_COMPARISONS(char, char)
+DECLARE_COMPARISONS(unsigned char, uchar)
+DECLARE_COMPARISONS(long, long)
+DECLARE_COMPARISONS(unsigned long, ulong)
+DECLARE_COMPARISONS(time_t, time_t)
+/*
+ * Because this comparison uses a printf format specifier that's not
+ * universally known (yet), we provide an option to not have it declared.
+ */
+# ifndef TESTUTIL_NO_size_t_COMPARISON
+DECLARE_COMPARISONS(size_t, size_t)
+# endif
+
+/*
+ * Pointer comparisons against other pointers and null.
+ * These functions return 1 if the test is true.
+ * Otherwise, they return 0 and pretty-print diagnostics.
+ * These should not be called directly, use the TEST_xxx macros below instead.
+ */
+DECLARE_COMPARISON(void *, ptr, eq)
+DECLARE_COMPARISON(void *, ptr, ne)
+int test_ptr(const char *file, int line, const char *s, const void *p);
+int test_ptr_null(const char *file, int line, const char *s, const void *p);
+
+/*
+ * Equality tests for strings where NULL is a legitimate value.
+ * These calls return 1 if the two passed strings compare true.
+ * Otherwise, they return 0 and pretty-print diagnostics.
+ * These should not be called directly, use the TEST_xxx macros below instead.
+ */
+DECLARE_COMPARISON(char *, str, eq)
+DECLARE_COMPARISON(char *, str, ne)
+
+/*
+ * Same as above, but for strncmp.
+ */
+int test_strn_eq(const char *file, int line, const char *, const char *,
+ const char *a, const char *b, size_t s);
+int test_strn_ne(const char *file, int line, const char *, const char *,
+ const char *a, const char *b, size_t s);
+
+/*
+ * Equality test for memory blocks where NULL is a legitimate value.
+ * These calls return 1 if the two memory blocks compare true.
+ * Otherwise, they return 0 and pretty-print diagnostics.
+ * These should not be called directly, use the TEST_xxx macros below instead.
+ */
+int test_mem_eq(const char *, int, const char *, const char *,
+ const void *, size_t, const void *, size_t);
+int test_mem_ne(const char *, int, const char *, const char *,
+ const void *, size_t, const void *, size_t);
+
+/*
+ * Check a boolean result for being true or false.
+ * They return 1 if the condition is true (i.e. the value is non-zero).
+ * Otherwise, they return 0 and pretty-prints diagnostics using |s|.
+ * These should not be called directly, use the TEST_xxx macros below instead.
+ */
+int test_true(const char *file, int line, const char *s, int b);
+int test_false(const char *file, int line, const char *s, int b);
+
+/*
+ * Comparisons between BIGNUMs.
+ * BIGNUMS can be compared against other BIGNUMs or zero.
+ * Some additional equality tests against 1 & specific values are provided.
+ * Tests for parity are included as well.
+ */
+DECLARE_COMPARISONS(BIGNUM *, BN)
+int test_BN_eq_zero(const char *file, int line, const char *s, const BIGNUM *a);
+int test_BN_ne_zero(const char *file, int line, const char *s, const BIGNUM *a);
+int test_BN_lt_zero(const char *file, int line, const char *s, const BIGNUM *a);
+int test_BN_le_zero(const char *file, int line, const char *s, const BIGNUM *a);
+int test_BN_gt_zero(const char *file, int line, const char *s, const BIGNUM *a);
+int test_BN_ge_zero(const char *file, int line, const char *s, const BIGNUM *a);
+int test_BN_eq_one(const char *file, int line, const char *s, const BIGNUM *a);
+int test_BN_odd(const char *file, int line, const char *s, const BIGNUM *a);
+int test_BN_even(const char *file, int line, const char *s, const BIGNUM *a);
+int test_BN_eq_word(const char *file, int line, const char *bns, const char *ws,
+ const BIGNUM *a, BN_ULONG w);
+int test_BN_abs_eq_word(const char *file, int line, const char *bns,
+ const char *ws, const BIGNUM *a, BN_ULONG w);
+
+/*
+ * Pretty print a failure message.
+ * These should not be called directly, use the TEST_xxx macros below instead.
+ */
+void test_error(const char *file, int line, const char *desc, ...)
+ PRINTF_FORMAT(3, 4);
+void test_error_c90(const char *desc, ...) PRINTF_FORMAT(1, 2);
+void test_info(const char *file, int line, const char *desc, ...)
+ PRINTF_FORMAT(3, 4);
+void test_info_c90(const char *desc, ...) PRINTF_FORMAT(1, 2);
+void test_note(const char *desc, ...) PRINTF_FORMAT(1, 2);
+void test_openssl_errors(void);
+void test_perror(const char *s);
+
+/*
+ * The following macros provide wrapper calls to the test functions with
+ * a default description that indicates the file and line number of the error.
+ *
+ * The following macros guarantee to evaluate each argument exactly once.
+ * This allows constructs such as: if (!TEST_ptr(ptr = OPENSSL_malloc(..)))
+ * to produce better contextual output than:
+ * ptr = OPENSSL_malloc(..);
+ * if (!TEST_ptr(ptr))
+ */
+# define TEST_int_eq(a, b) test_int_eq(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_int_ne(a, b) test_int_ne(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_int_lt(a, b) test_int_lt(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_int_le(a, b) test_int_le(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_int_gt(a, b) test_int_gt(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_int_ge(a, b) test_int_ge(__FILE__, __LINE__, #a, #b, a, b)
+
+# define TEST_uint_eq(a, b) test_uint_eq(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_uint_ne(a, b) test_uint_ne(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_uint_lt(a, b) test_uint_lt(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_uint_le(a, b) test_uint_le(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_uint_gt(a, b) test_uint_gt(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_uint_ge(a, b) test_uint_ge(__FILE__, __LINE__, #a, #b, a, b)
+
+# define TEST_char_eq(a, b) test_char_eq(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_char_ne(a, b) test_char_ne(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_char_lt(a, b) test_char_lt(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_char_le(a, b) test_char_le(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_char_gt(a, b) test_char_gt(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_char_ge(a, b) test_char_ge(__FILE__, __LINE__, #a, #b, a, b)
+
+# define TEST_uchar_eq(a, b) test_uchar_eq(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_uchar_ne(a, b) test_uchar_ne(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_uchar_lt(a, b) test_uchar_lt(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_uchar_le(a, b) test_uchar_le(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_uchar_gt(a, b) test_uchar_gt(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_uchar_ge(a, b) test_uchar_ge(__FILE__, __LINE__, #a, #b, a, b)
+
+# define TEST_long_eq(a, b) test_long_eq(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_long_ne(a, b) test_long_ne(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_long_lt(a, b) test_long_lt(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_long_le(a, b) test_long_le(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_long_gt(a, b) test_long_gt(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_long_ge(a, b) test_long_ge(__FILE__, __LINE__, #a, #b, a, b)
+
+# define TEST_ulong_eq(a, b) test_ulong_eq(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_ulong_ne(a, b) test_ulong_ne(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_ulong_lt(a, b) test_ulong_lt(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_ulong_le(a, b) test_ulong_le(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_ulong_gt(a, b) test_ulong_gt(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_ulong_ge(a, b) test_ulong_ge(__FILE__, __LINE__, #a, #b, a, b)
+
+# define TEST_size_t_eq(a, b) test_size_t_eq(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_size_t_ne(a, b) test_size_t_ne(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_size_t_lt(a, b) test_size_t_lt(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_size_t_le(a, b) test_size_t_le(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_size_t_gt(a, b) test_size_t_gt(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_size_t_ge(a, b) test_size_t_ge(__FILE__, __LINE__, #a, #b, a, b)
+
+# define TEST_time_t_eq(a, b) test_time_t_eq(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_time_t_ne(a, b) test_time_t_ne(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_time_t_lt(a, b) test_time_t_lt(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_time_t_le(a, b) test_time_t_le(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_time_t_gt(a, b) test_time_t_gt(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_time_t_ge(a, b) test_time_t_ge(__FILE__, __LINE__, #a, #b, a, b)
+
+# define TEST_ptr_eq(a, b) test_ptr_eq(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_ptr_ne(a, b) test_ptr_ne(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_ptr(a) test_ptr(__FILE__, __LINE__, #a, a)
+# define TEST_ptr_null(a) test_ptr_null(__FILE__, __LINE__, #a, a)
+
+# define TEST_str_eq(a, b) test_str_eq(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_str_ne(a, b) test_str_ne(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_strn_eq(a, b, n) test_strn_eq(__FILE__, __LINE__, #a, #b, a, b, n)
+# define TEST_strn_ne(a, b, n) test_strn_ne(__FILE__, __LINE__, #a, #b, a, b, n)
+
+# define TEST_mem_eq(a, m, b, n) test_mem_eq(__FILE__, __LINE__, #a, #b, a, m, b, n)
+# define TEST_mem_ne(a, m, b, n) test_mem_ne(__FILE__, __LINE__, #a, #b, a, m, b, n)
+
+# define TEST_true(a) test_true(__FILE__, __LINE__, #a, (a) != 0)
+# define TEST_false(a) test_false(__FILE__, __LINE__, #a, (a) != 0)
+
+# define TEST_BN_eq(a, b) test_BN_eq(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_BN_ne(a, b) test_BN_ne(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_BN_lt(a, b) test_BN_lt(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_BN_gt(a, b) test_BN_gt(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_BN_le(a, b) test_BN_le(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_BN_ge(a, b) test_BN_ge(__FILE__, __LINE__, #a, #b, a, b)
+# define TEST_BN_eq_zero(a) test_BN_eq_zero(__FILE__, __LINE__, #a, a)
+# define TEST_BN_ne_zero(a) test_BN_ne_zero(__FILE__, __LINE__, #a, a)
+# define TEST_BN_lt_zero(a) test_BN_lt_zero(__FILE__, __LINE__, #a, a)
+# define TEST_BN_gt_zero(a) test_BN_gt_zero(__FILE__, __LINE__, #a, a)
+# define TEST_BN_le_zero(a) test_BN_le_zero(__FILE__, __LINE__, #a, a)
+# define TEST_BN_ge_zero(a) test_BN_ge_zero(__FILE__, __LINE__, #a, a)
+# define TEST_BN_eq_one(a) test_BN_eq_one(__FILE__, __LINE__, #a, a)
+# define TEST_BN_eq_word(a, w) test_BN_eq_word(__FILE__, __LINE__, #a, #w, a, w)
+# define TEST_BN_abs_eq_word(a, w) test_BN_abs_eq_word(__FILE__, __LINE__, #a, #w, a, w)
+# define TEST_BN_odd(a) test_BN_odd(__FILE__, __LINE__, #a, a)
+# define TEST_BN_even(a) test_BN_even(__FILE__, __LINE__, #a, a)
+
+/*
+ * TEST_error(desc, ...) prints an informative error message in the standard
+ * format. |desc| is a printf format string.
+ */
+# if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L
+# define TEST_error test_error_c90
+# define TEST_info test_info_c90
+# else
+# define TEST_error(...) test_error(__FILE__, __LINE__, __VA_ARGS__)
+# define TEST_info(...) test_info(__FILE__, __LINE__, __VA_ARGS__)
+# endif
+# define TEST_note test_note
+# define TEST_openssl_errors test_openssl_errors
+# define TEST_perror test_perror
+
+extern BIO *bio_out;
+extern BIO *bio_err;
+
+/*
+ * Formatted output for strings, memory and bignums.
+ */
+void test_output_string(const char *name, const char *m, size_t l);
+void test_output_bignum(const char *name, const BIGNUM *bn);
+void test_output_memory(const char *name, const unsigned char *m, size_t l);
+
+
+/*
+ * Utilities to parse a test file.
+ */
+#define TESTMAXPAIRS 20
+
+typedef struct pair_st {
+ char *key;
+ char *value;
+} PAIR;
+
+typedef struct stanza_st {
+ const char *test_file; /* Input file name */
+ BIO *fp; /* Input file */
+ int curr; /* Current line in file */
+ int start; /* Line where test starts */
+ int errors; /* Error count */
+ int numtests; /* Number of tests */
+ int numskip; /* Number of skipped tests */
+ int numpairs;
+ PAIR pairs[TESTMAXPAIRS];
+ BIO *key; /* temp memory BIO for reading in keys */
+ char buff[4096]; /* Input buffer for a single key/value */
+} STANZA;
+
+/*
+ * Prepare to start reading the file |testfile| as input.
+ */
+int test_start_file(STANZA *s, const char *testfile);
+int test_end_file(STANZA *s);
+
+/*
+ * Read a stanza from the test file. A stanza consists of a block
+ * of lines of the form
+ * key = value
+ * The block is terminated by EOF or a blank line.
+ * Return 1 if found, 0 on EOF or error.
+ */
+int test_readstanza(STANZA *s);
+
+/*
+ * Clear a stanza, release all allocated memory.
+ */
+void test_clearstanza(STANZA *s);
+
+/*
+ * Glue an array of strings together and return it as an allocated string.
+ * Optionally return the whole length of this string in |out_len|
+ */
+char *glue_strings(const char *list[], size_t *out_len);
+
+/*
+ * Pseudo random number generator of low quality but having repeatability
+ * across platforms. The two calls are replacements for random(3) and
+ * srandom(3).
+ */
+uint32_t test_random(void);
+void test_random_seed(uint32_t sd);
+
+/* Create a file path from a directory and a filename */
+char *test_mk_file_path(const char *dir, const char *file);
+
+#endif /* OSSL_TESTUTIL_H */
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/basic_output.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/basic_output.c
new file mode 100644
index 000000000..e442da864
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/basic_output.c
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "../testutil.h"
+#include "output.h"
+#include "tu_local.h"
+
+#include <openssl/crypto.h>
+#include <openssl/bio.h>
+
+BIO *bio_out = NULL;
+BIO *bio_err = NULL;
+
+void test_open_streams(void)
+{
+ bio_out = BIO_new_fp(stdout, BIO_NOCLOSE | BIO_FP_TEXT);
+ bio_err = BIO_new_fp(stderr, BIO_NOCLOSE | BIO_FP_TEXT);
+#ifdef __VMS
+ bio_out = BIO_push(BIO_new(BIO_f_linebuffer()), bio_out);
+ bio_err = BIO_push(BIO_new(BIO_f_linebuffer()), bio_err);
+#endif
+ bio_err = BIO_push(BIO_new(BIO_f_tap()), bio_err);
+
+ OPENSSL_assert(bio_out != NULL);
+ OPENSSL_assert(bio_err != NULL);
+}
+
+void test_close_streams(void)
+{
+ BIO_free_all(bio_out);
+ BIO_free_all(bio_err);
+}
+
+int test_vprintf_stdout(const char *fmt, va_list ap)
+{
+ return BIO_vprintf(bio_out, fmt, ap);
+}
+
+int test_vprintf_stderr(const char *fmt, va_list ap)
+{
+ return BIO_vprintf(bio_err, fmt, ap);
+}
+
+int test_flush_stdout(void)
+{
+ return BIO_flush(bio_out);
+}
+
+int test_flush_stderr(void)
+{
+ return BIO_flush(bio_err);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/cb.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/cb.c
new file mode 100644
index 000000000..4f5ba080c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/cb.c
@@ -0,0 +1,16 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "output.h"
+#include "tu_local.h"
+
+int openssl_error_cb(const char *str, size_t len, void *u)
+{
+ return test_printf_stderr("%s", str);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/driver.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/driver.c
new file mode 100644
index 000000000..670f5b80c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/driver.c
@@ -0,0 +1,317 @@
+/*
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "../testutil.h"
+#include "output.h"
+#include "tu_local.h"
+
+#include <string.h>
+#include <assert.h>
+
+#include "internal/nelem.h"
+#include <openssl/bio.h>
+
+#ifdef _WIN32
+# define strdup _strdup
+#endif
+
+/*
+ * Declares the structures needed to register each test case function.
+ */
+typedef struct test_info {
+ const char *test_case_name;
+ int (*test_fn) (void);
+ int (*param_test_fn)(int idx);
+ int num;
+
+ /* flags */
+ int subtest:1;
+} TEST_INFO;
+
+static TEST_INFO all_tests[1024];
+static int num_tests = 0;
+static int seed = 0;
+/*
+ * A parameterised tests runs a loop of test cases.
+ * |num_test_cases| counts the total number of test cases
+ * across all tests.
+ */
+static int num_test_cases = 0;
+
+void add_test(const char *test_case_name, int (*test_fn) (void))
+{
+ assert(num_tests != OSSL_NELEM(all_tests));
+ all_tests[num_tests].test_case_name = test_case_name;
+ all_tests[num_tests].test_fn = test_fn;
+ all_tests[num_tests].num = -1;
+ ++num_tests;
+ ++num_test_cases;
+}
+
+void add_all_tests(const char *test_case_name, int(*test_fn)(int idx),
+ int num, int subtest)
+{
+ assert(num_tests != OSSL_NELEM(all_tests));
+ all_tests[num_tests].test_case_name = test_case_name;
+ all_tests[num_tests].param_test_fn = test_fn;
+ all_tests[num_tests].num = num;
+ all_tests[num_tests].subtest = subtest;
+ ++num_tests;
+ num_test_cases += num;
+}
+
+static int level = 0;
+
+int subtest_level(void)
+{
+ return level;
+}
+
+#ifndef OPENSSL_NO_CRYPTO_MDEBUG
+static int should_report_leaks(void)
+{
+ /*
+ * When compiled with enable-crypto-mdebug, OPENSSL_DEBUG_MEMORY=0
+ * can be used to disable leak checking at runtime.
+ * Note this only works when running the test binary manually;
+ * the test harness always enables OPENSSL_DEBUG_MEMORY.
+ */
+ char *mem_debug_env = getenv("OPENSSL_DEBUG_MEMORY");
+
+ return mem_debug_env == NULL
+ || (strcmp(mem_debug_env, "0") && strcmp(mem_debug_env, ""));
+}
+#endif
+
+static int gcd(int a, int b)
+{
+ while (b != 0) {
+ int t = b;
+ b = a % b;
+ a = t;
+ }
+ return a;
+}
+
+void setup_test_framework()
+{
+ char *TAP_levels = getenv("HARNESS_OSSL_LEVEL");
+ char *test_seed = getenv("OPENSSL_TEST_RAND_ORDER");
+
+ level = TAP_levels != NULL ? 4 * atoi(TAP_levels) : 0;
+
+ if (test_seed != NULL) {
+ seed = atoi(test_seed);
+ if (seed <= 0)
+ seed = (int)time(NULL);
+ test_printf_stdout("%*s# RAND SEED %d\n", subtest_level(), "", seed);
+ test_flush_stdout();
+ test_random_seed(seed);
+ }
+
+#ifndef OPENSSL_NO_CRYPTO_MDEBUG
+ if (should_report_leaks()) {
+ CRYPTO_set_mem_debug(1);
+ CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
+ }
+#endif
+}
+
+int pulldown_test_framework(int ret)
+{
+ set_test_title(NULL);
+#ifndef OPENSSL_NO_CRYPTO_MDEBUG
+ if (should_report_leaks()
+ && CRYPTO_mem_leaks_cb(openssl_error_cb, NULL) <= 0)
+ return EXIT_FAILURE;
+#endif
+
+ return ret;
+}
+
+static void finalize(int success)
+{
+ if (success)
+ ERR_clear_error();
+ else
+ ERR_print_errors_cb(openssl_error_cb, NULL);
+}
+
+static char *test_title = NULL;
+
+void set_test_title(const char *title)
+{
+ free(test_title);
+ test_title = title == NULL ? NULL : strdup(title);
+}
+
+PRINTF_FORMAT(2, 3) static void test_verdict(int pass, const char *extra, ...)
+{
+ va_list ap;
+
+ test_flush_stdout();
+ test_flush_stderr();
+
+ test_printf_stdout("%*s%s", level, "", pass ? "ok" : "not ok");
+ if (extra != NULL) {
+ test_printf_stdout(" ");
+ va_start(ap, extra);
+ test_vprintf_stdout(extra, ap);
+ va_end(ap);
+ }
+ test_printf_stdout("\n");
+ test_flush_stdout();
+}
+
+int run_tests(const char *test_prog_name)
+{
+ int num_failed = 0;
+ int verdict = 1;
+ int ii, i, jj, j, jstep;
+ int permute[OSSL_NELEM(all_tests)];
+
+ if (num_tests < 1) {
+ test_printf_stdout("%*s1..0 # Skipped: %s\n", level, "",
+ test_prog_name);
+ } else {
+ if (level > 0)
+ test_printf_stdout("%*s# Subtest: %s\n", level, "", test_prog_name);
+ test_printf_stdout("%*s1..%d\n", level, "", num_tests);
+ }
+ test_flush_stdout();
+
+ for (i = 0; i < num_tests; i++)
+ permute[i] = i;
+ if (seed != 0)
+ for (i = num_tests - 1; i >= 1; i--) {
+ j = test_random() % (1 + i);
+ ii = permute[j];
+ permute[j] = permute[i];
+ permute[i] = ii;
+ }
+
+ for (ii = 0; ii != num_tests; ++ii) {
+ i = permute[ii];
+ if (all_tests[i].num == -1) {
+ int ret = 0;
+
+ set_test_title(all_tests[i].test_case_name);
+ ret = all_tests[i].test_fn();
+
+ verdict = 1;
+ if (!ret) {
+ verdict = 0;
+ ++num_failed;
+ }
+ test_verdict(verdict, "%d - %s", ii + 1, test_title);
+ finalize(ret);
+ } else {
+ int num_failed_inner = 0;
+
+ level += 4;
+ if (all_tests[i].subtest) {
+ test_printf_stdout("%*s# Subtest: %s\n", level, "",
+ all_tests[i].test_case_name);
+ test_printf_stdout("%*s%d..%d\n", level, "", 1,
+ all_tests[i].num);
+ test_flush_stdout();
+ }
+
+ j = -1;
+ if (seed == 0 || all_tests[i].num < 3)
+ jstep = 1;
+ else
+ do
+ jstep = test_random() % all_tests[i].num;
+ while (jstep == 0 || gcd(all_tests[i].num, jstep) != 1);
+
+ for (jj = 0; jj < all_tests[i].num; jj++) {
+ int ret;
+
+ j = (j + jstep) % all_tests[i].num;
+ set_test_title(NULL);
+ ret = all_tests[i].param_test_fn(j);
+
+ if (!ret)
+ ++num_failed_inner;
+
+ finalize(ret);
+
+ if (all_tests[i].subtest) {
+ verdict = 1;
+ if (!ret) {
+ verdict = 0;
+ ++num_failed_inner;
+ }
+ if (test_title != NULL)
+ test_verdict(verdict, "%d - %s", jj + 1, test_title);
+ else
+ test_verdict(verdict, "%d - iteration %d",
+ jj + 1, j + 1);
+ }
+ }
+
+ level -= 4;
+ verdict = 1;
+ if (num_failed_inner) {
+ verdict = 0;
+ ++num_failed;
+ }
+ test_verdict(verdict, "%d - %s", ii + 1,
+ all_tests[i].test_case_name);
+ }
+ }
+ if (num_failed != 0)
+ return EXIT_FAILURE;
+ return EXIT_SUCCESS;
+}
+
+/*
+ * Glue an array of strings together and return it as an allocated string.
+ * Optionally return the whole length of this string in |out_len|
+ */
+char *glue_strings(const char *list[], size_t *out_len)
+{
+ size_t len = 0;
+ char *p, *ret;
+ int i;
+
+ for (i = 0; list[i] != NULL; i++)
+ len += strlen(list[i]);
+
+ if (out_len != NULL)
+ *out_len = len;
+
+ if (!TEST_ptr(ret = p = OPENSSL_malloc(len + 1)))
+ return NULL;
+
+ for (i = 0; list[i] != NULL; i++)
+ p += strlen(strcpy(p, list[i]));
+
+ return ret;
+}
+
+char *test_mk_file_path(const char *dir, const char *file)
+{
+# ifndef OPENSSL_SYS_VMS
+ const char *sep = "/";
+# else
+ const char *sep = "";
+# endif
+ size_t len = strlen(dir) + strlen(sep) + strlen(file) + 1;
+ char *full_file = OPENSSL_zalloc(len);
+
+ if (full_file != NULL) {
+ OPENSSL_strlcpy(full_file, dir, len);
+ OPENSSL_strlcat(full_file, sep, len);
+ OPENSSL_strlcat(full_file, file, len);
+ }
+
+ return full_file;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/format_output.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/format_output.c
new file mode 100644
index 000000000..6ee2a1d26
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/format_output.c
@@ -0,0 +1,529 @@
+/*
+ * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "../testutil.h"
+#include "output.h"
+#include "tu_local.h"
+
+#include <string.h>
+#include <ctype.h>
+#include "internal/nelem.h"
+
+/* The size of memory buffers to display on failure */
+#define MEM_BUFFER_SIZE (2000)
+#define MAX_STRING_WIDTH (80)
+#define BN_OUTPUT_SIZE (8)
+
+/* Output a diff header */
+static void test_diff_header(const char *left, const char *right)
+{
+ test_printf_stderr("--- %s\n", left);
+ test_printf_stderr("+++ %s\n", right);
+}
+
+/* Formatted string output routines */
+static void test_string_null_empty(const char *m, char c)
+{
+ if (m == NULL)
+ test_printf_stderr("% 4s %c NULL\n", "", c);
+ else
+ test_printf_stderr("% 4u:%c ''\n", 0u, c);
+}
+
+static void test_fail_string_common(const char *prefix, const char *file,
+ int line, const char *type,
+ const char *left, const char *right,
+ const char *op, const char *m1, size_t l1,
+ const char *m2, size_t l2)
+{
+ const size_t width = (MAX_STRING_WIDTH - subtest_level() - 12) / 16 * 16;
+ char b1[MAX_STRING_WIDTH + 1], b2[MAX_STRING_WIDTH + 1];
+ char bdiff[MAX_STRING_WIDTH + 1];
+ size_t n1, n2, i;
+ unsigned int cnt = 0, diff;
+
+ test_fail_message_prefix(prefix, file, line, type, left, right, op);
+ if (m1 == NULL)
+ l1 = 0;
+ if (m2 == NULL)
+ l2 = 0;
+ if (l1 == 0 && l2 == 0) {
+ if ((m1 == NULL) == (m2 == NULL)) {
+ test_string_null_empty(m1, ' ');
+ } else {
+ test_diff_header(left, right);
+ test_string_null_empty(m1, '-');
+ test_string_null_empty(m2, '+');
+ }
+ goto fin;
+ }
+
+ if (l1 != l2 || strcmp(m1, m2) != 0)
+ test_diff_header(left, right);
+
+ while (l1 > 0 || l2 > 0) {
+ n1 = n2 = 0;
+ if (l1 > 0) {
+ b1[n1 = l1 > width ? width : l1] = 0;
+ for (i = 0; i < n1; i++)
+ b1[i] = isprint((unsigned char)m1[i]) ? m1[i] : '.';
+ }
+ if (l2 > 0) {
+ b2[n2 = l2 > width ? width : l2] = 0;
+ for (i = 0; i < n2; i++)
+ b2[i] = isprint((unsigned char)m2[i]) ? m2[i] : '.';
+ }
+ diff = 0;
+ i = 0;
+ if (n1 > 0 && n2 > 0) {
+ const size_t j = n1 < n2 ? n1 : n2;
+
+ for (; i < j; i++)
+ if (m1[i] == m2[i]) {
+ bdiff[i] = ' ';
+ } else {
+ bdiff[i] = '^';
+ diff = 1;
+ }
+ bdiff[i] = '\0';
+ }
+ if (n1 == n2 && !diff) {
+ test_printf_stderr("% 4u: '%s'\n", cnt, n2 > n1 ? b2 : b1);
+ } else {
+ if (cnt == 0 && (m1 == NULL || *m1 == '\0'))
+ test_string_null_empty(m1, '-');
+ else if (n1 > 0)
+ test_printf_stderr("% 4u:- '%s'\n", cnt, b1);
+ if (cnt == 0 && (m2 == NULL || *m2 == '\0'))
+ test_string_null_empty(m2, '+');
+ else if (n2 > 0)
+ test_printf_stderr("% 4u:+ '%s'\n", cnt, b2);
+ if (diff && i > 0)
+ test_printf_stderr("% 4s %s\n", "", bdiff);
+ }
+ m1 += n1;
+ m2 += n2;
+ l1 -= n1;
+ l2 -= n2;
+ cnt += width;
+ }
+fin:
+ test_flush_stderr();
+}
+
+/*
+ * Wrapper routines so that the underlying code can be shared.
+ * The first is the call from inside the test utilities when a conditional
+ * fails. The second is the user's call to dump a string.
+ */
+void test_fail_string_message(const char *prefix, const char *file,
+ int line, const char *type,
+ const char *left, const char *right,
+ const char *op, const char *m1, size_t l1,
+ const char *m2, size_t l2)
+{
+ test_fail_string_common(prefix, file, line, type, left, right, op,
+ m1, l1, m2, l2);
+ test_printf_stderr("\n");
+}
+
+void test_output_string(const char *name, const char *m, size_t l)
+{
+ test_fail_string_common("string", NULL, 0, NULL, NULL, NULL, name,
+ m, l, m, l);
+}
+
+/* BIGNUM formatted output routines */
+
+/*
+ * A basic memory byte to hex digit converter with allowance for spacing
+ * every so often.
+ */
+static void hex_convert_memory(const unsigned char *m, size_t n, char *b,
+ size_t width)
+{
+ size_t i;
+
+ for (i = 0; i < n; i++) {
+ const unsigned char c = *m++;
+
+ *b++ = "0123456789abcdef"[c >> 4];
+ *b++ = "0123456789abcdef"[c & 15];
+ if (i % width == width - 1 && i != n - 1)
+ *b++ = ' ';
+ }
+ *b = '\0';
+}
+
+/*
+ * Constants to define the number of bytes to display per line and the number
+ * of characters these take.
+ */
+static const int bn_bytes = (MAX_STRING_WIDTH - 9) / (BN_OUTPUT_SIZE * 2 + 1)
+ * BN_OUTPUT_SIZE;
+static const int bn_chars = (MAX_STRING_WIDTH - 9) / (BN_OUTPUT_SIZE * 2 + 1)
+ * (BN_OUTPUT_SIZE * 2 + 1) - 1;
+
+/*
+ * Output the header line for the bignum
+ */
+static void test_bignum_header_line(void)
+{
+ test_printf_stderr(" %*s\n", bn_chars + 6, "bit position");
+}
+
+static const char *test_bignum_zero_null(const BIGNUM *bn)
+{
+ if (bn != NULL)
+ return BN_is_negative(bn) ? "-0" : "0";
+ return "NULL";
+}
+
+/*
+ * Print a bignum zero taking care to include the correct sign.
+ * This routine correctly deals with a NULL bignum pointer as input.
+ */
+static void test_bignum_zero_print(const BIGNUM *bn, char sep)
+{
+ const char *v = test_bignum_zero_null(bn);
+ const char *suf = bn != NULL ? ": 0" : "";
+
+ test_printf_stderr("%c%*s%s\n", sep, bn_chars, v, suf);
+}
+
+/*
+ * Convert a section of memory from inside a bignum into a displayable
+ * string with appropriate visual aid spaces inserted.
+ */
+static int convert_bn_memory(const unsigned char *in, size_t bytes,
+ char *out, int *lz, const BIGNUM *bn)
+{
+ int n = bytes * 2, i;
+ char *p = out, *q = NULL;
+
+ if (bn != NULL && !BN_is_zero(bn)) {
+ hex_convert_memory(in, bytes, out, BN_OUTPUT_SIZE);
+ if (*lz) {
+ for (; *p == '0' || *p == ' '; p++)
+ if (*p == '0') {
+ q = p;
+ *p = ' ';
+ n--;
+ }
+ if (*p == '\0') {
+ /*
+ * in[bytes] is defined because we're converting a non-zero
+ * number and we've not seen a non-zero yet.
+ */
+ if ((in[bytes] & 0xf0) != 0 && BN_is_negative(bn)) {
+ *lz = 0;
+ *q = '-';
+ n++;
+ }
+ } else {
+ *lz = 0;
+ if (BN_is_negative(bn)) {
+ /*
+ * This is valid because we always convert more digits than
+ * the number holds.
+ */
+ *q = '-';
+ n++;
+ }
+ }
+ }
+ return n;
+ }
+
+ for (i = 0; i < n; i++) {
+ *p++ = ' ';
+ if (i % (2 * BN_OUTPUT_SIZE) == 2 * BN_OUTPUT_SIZE - 1 && i != n - 1)
+ *p++ = ' ';
+ }
+ *p = '\0';
+ if (bn == NULL)
+ q = "NULL";
+ else
+ q = BN_is_negative(bn) ? "-0" : "0";
+ strcpy(p - strlen(q), q);
+ return 0;
+}
+
+/*
+ * Common code to display either one or two bignums, including the diff
+ * pointers for changes (only when there are two).
+ */
+static void test_fail_bignum_common(const char *prefix, const char *file,
+ int line, const char *type,
+ const char *left, const char *right,
+ const char *op,
+ const BIGNUM *bn1, const BIGNUM *bn2)
+{
+ const size_t bytes = bn_bytes;
+ char b1[MAX_STRING_WIDTH + 1], b2[MAX_STRING_WIDTH + 1];
+ char *p, bdiff[MAX_STRING_WIDTH + 1];
+ size_t l1, l2, n1, n2, i, len;
+ unsigned int cnt, diff, real_diff;
+ unsigned char *m1 = NULL, *m2 = NULL;
+ int lz1 = 1, lz2 = 1;
+ unsigned char buffer[MEM_BUFFER_SIZE * 2], *bufp = buffer;
+
+ test_fail_message_prefix(prefix, file, line, type, left, right, op);
+ l1 = bn1 == NULL ? 0 : (BN_num_bytes(bn1) + (BN_is_negative(bn1) ? 1 : 0));
+ l2 = bn2 == NULL ? 0 : (BN_num_bytes(bn2) + (BN_is_negative(bn2) ? 1 : 0));
+ if (l1 == 0 && l2 == 0) {
+ if ((bn1 == NULL) == (bn2 == NULL)) {
+ test_bignum_header_line();
+ test_bignum_zero_print(bn1, ' ');
+ } else {
+ test_diff_header(left, right);
+ test_bignum_header_line();
+ test_bignum_zero_print(bn1, '-');
+ test_bignum_zero_print(bn2, '+');
+ }
+ goto fin;
+ }
+
+ if (l1 != l2 || bn1 == NULL || bn2 == NULL || BN_cmp(bn1, bn2) != 0)
+ test_diff_header(left, right);
+ test_bignum_header_line();
+
+ len = ((l1 > l2 ? l1 : l2) + bytes - 1) / bytes * bytes;
+
+ if (len > MEM_BUFFER_SIZE && (bufp = OPENSSL_malloc(len * 2)) == NULL) {
+ bufp = buffer;
+ len = MEM_BUFFER_SIZE;
+ test_printf_stderr("WARNING: these BIGNUMs have been truncated\n");
+ }
+
+ if (bn1 != NULL) {
+ m1 = bufp;
+ BN_bn2binpad(bn1, m1, len);
+ }
+ if (bn2 != NULL) {
+ m2 = bufp + len;
+ BN_bn2binpad(bn2, m2, len);
+ }
+
+ while (len > 0) {
+ cnt = 8 * (len - bytes);
+ n1 = convert_bn_memory(m1, bytes, b1, &lz1, bn1);
+ n2 = convert_bn_memory(m2, bytes, b2, &lz2, bn2);
+
+ diff = real_diff = 0;
+ i = 0;
+ p = bdiff;
+ for (i=0; b1[i] != '\0'; i++)
+ if (b1[i] == b2[i] || b1[i] == ' ' || b2[i] == ' ') {
+ *p++ = ' ';
+ diff |= b1[i] != b2[i];
+ } else {
+ *p++ = '^';
+ real_diff = diff = 1;
+ }
+ *p++ = '\0';
+ if (!diff) {
+ test_printf_stderr(" %s:% 5d\n", n2 > n1 ? b2 : b1, cnt);
+ } else {
+ if (cnt == 0 && bn1 == NULL)
+ test_printf_stderr("-%s\n", b1);
+ else if (cnt == 0 || n1 > 0)
+ test_printf_stderr("-%s:% 5d\n", b1, cnt);
+ if (cnt == 0 && bn2 == NULL)
+ test_printf_stderr("+%s\n", b2);
+ else if (cnt == 0 || n2 > 0)
+ test_printf_stderr("+%s:% 5d\n", b2, cnt);
+ if (real_diff && (cnt == 0 || (n1 > 0 && n2 > 0))
+ && bn1 != NULL && bn2 != NULL)
+ test_printf_stderr(" %s\n", bdiff);
+ }
+ if (m1 != NULL)
+ m1 += bytes;
+ if (m2 != NULL)
+ m2 += bytes;
+ len -= bytes;
+ }
+fin:
+ test_flush_stderr();
+ if (bufp != buffer)
+ OPENSSL_free(bufp);
+}
+
+/*
+ * Wrapper routines so that the underlying code can be shared.
+ * The first two are calls from inside the test utilities when a conditional
+ * fails. The third is the user's call to dump a bignum.
+ */
+void test_fail_bignum_message(const char *prefix, const char *file,
+ int line, const char *type,
+ const char *left, const char *right,
+ const char *op,
+ const BIGNUM *bn1, const BIGNUM *bn2)
+{
+ test_fail_bignum_common(prefix, file, line, type, left, right, op, bn1, bn2);
+ test_printf_stderr("\n");
+}
+
+void test_fail_bignum_mono_message(const char *prefix, const char *file,
+ int line, const char *type,
+ const char *left, const char *right,
+ const char *op, const BIGNUM *bn)
+{
+ test_fail_bignum_common(prefix, file, line, type, left, right, op, bn, bn);
+ test_printf_stderr("\n");
+}
+
+void test_output_bignum(const char *name, const BIGNUM *bn)
+{
+ if (bn == NULL || BN_is_zero(bn)) {
+ test_printf_stderr("bignum: '%s' = %s\n", name,
+ test_bignum_zero_null(bn));
+ } else if (BN_num_bytes(bn) <= BN_OUTPUT_SIZE) {
+ unsigned char buf[BN_OUTPUT_SIZE];
+ char out[2 * sizeof(buf) + 1];
+ char *p = out;
+ int n = BN_bn2bin(bn, buf);
+
+ hex_convert_memory(buf, n, p, BN_OUTPUT_SIZE);
+ while (*p == '0' && *++p != '\0')
+ ;
+ test_printf_stderr("bignum: '%s' = %s0x%s\n", name,
+ BN_is_negative(bn) ? "-" : "", p);
+ } else {
+ test_fail_bignum_common("bignum", NULL, 0, NULL, NULL, NULL, name,
+ bn, bn);
+ }
+}
+
+/* Memory output routines */
+
+/*
+ * Handle zero length blocks of memory or NULL pointers to memory
+ */
+static void test_memory_null_empty(const unsigned char *m, char c)
+{
+ if (m == NULL)
+ test_printf_stderr("% 4s %c%s\n", "", c, "NULL");
+ else
+ test_printf_stderr("%04x %c%s\n", 0u, c, "empty");
+}
+
+/*
+ * Common code to display one or two blocks of memory.
+ */
+static void test_fail_memory_common(const char *prefix, const char *file,
+ int line, const char *type,
+ const char *left, const char *right,
+ const char *op,
+ const unsigned char *m1, size_t l1,
+ const unsigned char *m2, size_t l2)
+{
+ const size_t bytes = (MAX_STRING_WIDTH - 9) / 17 * 8;
+ char b1[MAX_STRING_WIDTH + 1], b2[MAX_STRING_WIDTH + 1];
+ char *p, bdiff[MAX_STRING_WIDTH + 1];
+ size_t n1, n2, i;
+ unsigned int cnt = 0, diff;
+
+ test_fail_message_prefix(prefix, file, line, type, left, right, op);
+ if (m1 == NULL)
+ l1 = 0;
+ if (m2 == NULL)
+ l2 = 0;
+ if (l1 == 0 && l2 == 0) {
+ if ((m1 == NULL) == (m2 == NULL)) {
+ test_memory_null_empty(m1, ' ');
+ } else {
+ test_diff_header(left, right);
+ test_memory_null_empty(m1, '-');
+ test_memory_null_empty(m2, '+');
+ }
+ goto fin;
+ }
+
+ if (l1 != l2 || (m1 != m2 && memcmp(m1, m2, l1) != 0))
+ test_diff_header(left, right);
+
+ while (l1 > 0 || l2 > 0) {
+ n1 = n2 = 0;
+ if (l1 > 0) {
+ n1 = l1 > bytes ? bytes : l1;
+ hex_convert_memory(m1, n1, b1, 8);
+ }
+ if (l2 > 0) {
+ n2 = l2 > bytes ? bytes : l2;
+ hex_convert_memory(m2, n2, b2, 8);
+ }
+
+ diff = 0;
+ i = 0;
+ p = bdiff;
+ if (n1 > 0 && n2 > 0) {
+ const size_t j = n1 < n2 ? n1 : n2;
+
+ for (; i < j; i++) {
+ if (m1[i] == m2[i]) {
+ *p++ = ' ';
+ *p++ = ' ';
+ } else {
+ *p++ = '^';
+ *p++ = '^';
+ diff = 1;
+ }
+ if (i % 8 == 7 && i != j - 1)
+ *p++ = ' ';
+ }
+ *p++ = '\0';
+ }
+
+ if (n1 == n2 && !diff) {
+ test_printf_stderr("%04x: %s\n", cnt, b1);
+ } else {
+ if (cnt == 0 && (m1 == NULL || l1 == 0))
+ test_memory_null_empty(m1, '-');
+ else if (n1 > 0)
+ test_printf_stderr("%04x:-%s\n", cnt, b1);
+ if (cnt == 0 && (m2 == NULL || l2 == 0))
+ test_memory_null_empty(m2, '+');
+ else if (n2 > 0)
+ test_printf_stderr("%04x:+%s\n", cnt, b2);
+ if (diff && i > 0)
+ test_printf_stderr("% 4s %s\n", "", bdiff);
+ }
+ m1 += n1;
+ m2 += n2;
+ l1 -= n1;
+ l2 -= n2;
+ cnt += bytes;
+ }
+fin:
+ test_flush_stderr();
+}
+
+/*
+ * Wrapper routines so that the underlying code can be shared.
+ * The first is the call from inside the test utilities when a conditional
+ * fails. The second is the user's call to dump memory.
+ */
+void test_fail_memory_message(const char *prefix, const char *file,
+ int line, const char *type,
+ const char *left, const char *right,
+ const char *op,
+ const unsigned char *m1, size_t l1,
+ const unsigned char *m2, size_t l2)
+{
+ test_fail_memory_common(prefix, file, line, type, left, right, op,
+ m1, l1, m2, l2);
+ test_printf_stderr("\n");
+}
+
+void test_output_memory(const char *name, const unsigned char *m, size_t l)
+{
+ test_fail_memory_common("memory", NULL, 0, NULL, NULL, NULL, name,
+ m, l, m, l);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/main.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/main.c
new file mode 100644
index 000000000..d3ccdda39
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/main.c
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "../testutil.h"
+#include "internal/nelem.h"
+#include "output.h"
+#include "tu_local.h"
+
+#include <string.h>
+
+static size_t arg_count;
+static char **args;
+static unsigned char arg_used[1000];
+
+static void check_arg_usage(void)
+{
+ size_t i, n = arg_count < OSSL_NELEM(arg_used) ? arg_count
+ : OSSL_NELEM(arg_used);
+
+ for (i = 0; i < n; i++)
+ if (!arg_used[i+1])
+ test_printf_stderr("Warning ignored command-line argument %d: %s\n",
+ i, args[i+1]);
+ if (i < arg_count)
+ test_printf_stderr("Warning arguments %zu and later unchecked\n", i);
+}
+
+int main(int argc, char *argv[])
+{
+ int ret = EXIT_FAILURE;
+
+ test_open_streams();
+
+ if (!global_init()) {
+ test_printf_stderr("Global init failed - aborting\n");
+ return ret;
+ }
+
+ arg_count = argc - 1;
+ args = argv;
+
+ setup_test_framework();
+
+ if (setup_tests())
+ ret = run_tests(argv[0]);
+ cleanup_tests();
+ check_arg_usage();
+
+ ret = pulldown_test_framework(ret);
+ test_close_streams();
+ return ret;
+}
+
+const char *test_get_program_name(void)
+{
+ return args[0];
+}
+
+char *test_get_argument(size_t n)
+{
+ if (n > arg_count)
+ return NULL;
+ if (n + 1 < OSSL_NELEM(arg_used))
+ arg_used[n + 1] = 1;
+ return args[n + 1];
+}
+
+size_t test_get_argument_count(void)
+{
+ return arg_count;
+}
+
+int test_has_option(const char *option)
+{
+ size_t i;
+
+ for (i = 1; i <= arg_count; i++)
+ if (strcmp(args[i], option) == 0) {
+ arg_used[i] = 1;
+ return 1;
+ }
+ return 0;
+}
+
+const char *test_get_option_argument(const char *option)
+{
+ size_t i, n = strlen(option);
+
+ for (i = 1; i <= arg_count; i++)
+ if (strncmp(args[i], option, n) == 0) {
+ arg_used[i] = 1;
+ if (args[i][n] == '\0' && i + 1 < arg_count) {
+ arg_used[++i] = 1;
+ return args[i];
+ }
+ return args[i] + n;
+ }
+ return NULL;
+}
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/output.h b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/output.h
new file mode 100644
index 000000000..f5be69e66
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/output.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#ifndef OSSL_TESTUTIL_OUTPUT_H
+# define OSSL_TESTUTIL_OUTPUT_H
+
+#include <stdarg.h>
+
+/*
+ * The basic I/O functions used internally by the test framework. These
+ * can be overridden when needed. Note that if one is, then all must be.
+ */
+void test_open_streams(void);
+void test_close_streams(void);
+/* The following ALL return the number of characters written */
+int test_vprintf_stdout(const char *fmt, va_list ap);
+int test_vprintf_stderr(const char *fmt, va_list ap);
+/* These return failure or success */
+int test_flush_stdout(void);
+int test_flush_stderr(void);
+
+/* Commodity functions. There's no need to override these */
+int test_printf_stdout(const char *fmt, ...);
+int test_printf_stderr(const char *fmt, ...);
+
+#endif /* OSSL_TESTUTIL_OUTPUT_H */
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/output_helpers.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/output_helpers.c
new file mode 100644
index 000000000..93514743e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/output_helpers.c
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "output.h"
+
+int test_printf_stdout(const char *fmt, ...)
+{
+ va_list ap;
+ int ret;
+
+ va_start(ap, fmt);
+ ret = test_vprintf_stdout(fmt, ap);
+ va_end(ap);
+
+ return ret;
+}
+
+int test_printf_stderr(const char *fmt, ...)
+{
+ va_list ap;
+ int ret;
+
+ va_start(ap, fmt);
+ ret = test_vprintf_stderr(fmt, ap);
+ va_end(ap);
+
+ return ret;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/random.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/random.c
new file mode 100644
index 000000000..45d0bb5f0
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/random.c
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "../testutil.h"
+
+/*
+ * This is an implementation of the algorithm used by the GNU C library's
+ * random(3) pseudorandom number generator as described:
+ * https://www.mscs.dal.ca/~selinger/random/
+ */
+static uint32_t test_random_state[31];
+
+uint32_t test_random(void) {
+ static unsigned int pos = 3;
+
+ if (pos == 31)
+ pos = 0;
+ test_random_state[pos] += test_random_state[(pos + 28) % 31];
+ return test_random_state[pos++] / 2;
+}
+
+void test_random_seed(uint32_t sd) {
+ int i;
+ int32_t s;
+ const unsigned int mod = (1u << 31) - 1;
+
+ test_random_state[0] = sd;
+ for (i = 1; i < 31; i++) {
+ s = (int32_t)test_random_state[i - 1];
+ test_random_state[i] = (uint32_t)((16807 * (int64_t)s) % mod);
+ }
+ for (i = 34; i < 344; i++)
+ test_random();
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/stanza.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/stanza.c
new file mode 100644
index 000000000..09fc18108
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/stanza.c
@@ -0,0 +1,158 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+#include <assert.h>
+#include <errno.h>
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+
+#include "internal/nelem.h"
+#include "../testutil.h"
+#include "tu_local.h"
+
+int test_start_file(STANZA *s, const char *testfile)
+{
+ TEST_info("Reading %s", testfile);
+ set_test_title(testfile);
+ memset(s, 0, sizeof(*s));
+ if (!TEST_ptr(s->fp = BIO_new_file(testfile, "r")))
+ return 0;
+ s->test_file = testfile;
+ return 1;
+}
+
+int test_end_file(STANZA *s)
+{
+ TEST_info("Completed %d tests with %d errors and %d skipped",
+ s->numtests, s->errors, s->numskip);
+ BIO_free(s->fp);
+ return 1;
+}
+
+/*
+ * Read a PEM block. Return 1 if okay, 0 on error.
+ */
+static int read_key(STANZA *s)
+{
+ char tmpbuf[128];
+
+ if (s->key == NULL) {
+ if (!TEST_ptr(s->key = BIO_new(BIO_s_mem())))
+ return 0;
+ } else if (!TEST_int_gt(BIO_reset(s->key), 0)) {
+ return 0;
+ }
+
+ /* Read to PEM end line and place content in memory BIO */
+ while (BIO_gets(s->fp, tmpbuf, sizeof(tmpbuf))) {
+ s->curr++;
+ if (!TEST_int_gt(BIO_puts(s->key, tmpbuf), 0))
+ return 0;
+ if (strncmp(tmpbuf, "-----END", 8) == 0)
+ return 1;
+ }
+ TEST_error("Can't find key end");
+ return 0;
+}
+
+
+/*
+ * Delete leading and trailing spaces from a string
+ */
+static char *strip_spaces(char *p)
+{
+ char *q;
+
+ /* Skip over leading spaces */
+ while (*p && isspace((unsigned char)*p))
+ p++;
+ if (!*p)
+ return NULL;
+
+ for (q = p + strlen(p) - 1; q != p && isspace((unsigned char)*q); )
+ *q-- = '\0';
+ return *p ? p : NULL;
+}
+
+/*
+ * Read next test stanza; return 1 if found, 0 on EOF or error.
+ */
+int test_readstanza(STANZA *s)
+{
+ PAIR *pp = s->pairs;
+ char *p, *equals, *key, *value;
+
+ for (s->numpairs = 0; BIO_gets(s->fp, s->buff, sizeof(s->buff)); ) {
+ s->curr++;
+ if (!TEST_ptr(p = strchr(s->buff, '\n'))) {
+ TEST_info("Line %d too long", s->curr);
+ return 0;
+ }
+ *p = '\0';
+
+ /* Blank line marks end of tests. */
+ if (s->buff[0] == '\0')
+ break;
+
+ /* Lines starting with a pound sign are ignored. */
+ if (s->buff[0] == '#')
+ continue;
+
+ /* Parse into key=value */
+ if (!TEST_ptr(equals = strchr(s->buff, '='))) {
+ TEST_info("Missing = at line %d\n", s->curr);
+ return 0;
+ }
+ *equals++ = '\0';
+ if (!TEST_ptr(key = strip_spaces(s->buff))) {
+ TEST_info("Empty field at line %d\n", s->curr);
+ return 0;
+ }
+ if ((value = strip_spaces(equals)) == NULL)
+ value = "";
+
+ if (strcmp(key, "Title") == 0) {
+ TEST_info("Starting \"%s\" tests at line %d", value, s->curr);
+ continue;
+ }
+
+ if (s->numpairs == 0)
+ s->start = s->curr;
+
+ if (strcmp(key, "PrivateKey") == 0) {
+ if (!read_key(s))
+ return 0;
+ }
+ if (strcmp(key, "PublicKey") == 0) {
+ if (!read_key(s))
+ return 0;
+ }
+
+ if (!TEST_int_lt(s->numpairs++, TESTMAXPAIRS)
+ || !TEST_ptr(pp->key = OPENSSL_strdup(key))
+ || !TEST_ptr(pp->value = OPENSSL_strdup(value)))
+ return 0;
+ pp++;
+ }
+
+ /* If we read anything, return ok. */
+ return 1;
+}
+
+void test_clearstanza(STANZA *s)
+{
+ PAIR *pp = s->pairs;
+ int i = s->numpairs;
+
+ for ( ; --i >= 0; pp++) {
+ OPENSSL_free(pp->key);
+ OPENSSL_free(pp->value);
+ }
+ s->numpairs = 0;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/tap_bio.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/tap_bio.c
new file mode 100644
index 000000000..a6c903b5a
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/tap_bio.c
@@ -0,0 +1,154 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+#include "tu_local.h"
+
+static int tap_write_ex(BIO *b, const char *buf, size_t size, size_t *in_size);
+static int tap_read_ex(BIO *b, char *buf, size_t size, size_t *out_size);
+static int tap_puts(BIO *b, const char *str);
+static int tap_gets(BIO *b, char *str, int size);
+static long tap_ctrl(BIO *b, int cmd, long arg1, void *arg2);
+static int tap_new(BIO *b);
+static int tap_free(BIO *b);
+static long tap_callback_ctrl(BIO *h, int cmd, BIO_info_cb *fp);
+
+const BIO_METHOD *BIO_f_tap(void)
+{
+ static BIO_METHOD *tap = NULL;
+
+ if (tap == NULL) {
+ tap = BIO_meth_new(BIO_TYPE_START | BIO_TYPE_FILTER, "tap");
+ if (tap != NULL) {
+ BIO_meth_set_write_ex(tap, tap_write_ex);
+ BIO_meth_set_read_ex(tap, tap_read_ex);
+ BIO_meth_set_puts(tap, tap_puts);
+ BIO_meth_set_gets(tap, tap_gets);
+ BIO_meth_set_ctrl(tap, tap_ctrl);
+ BIO_meth_set_create(tap, tap_new);
+ BIO_meth_set_destroy(tap, tap_free);
+ BIO_meth_set_callback_ctrl(tap, tap_callback_ctrl);
+ }
+ }
+ return tap;
+}
+
+static int tap_new(BIO *b)
+{
+ BIO_set_data(b, NULL);
+ BIO_set_init(b, 1);
+ return 1;
+}
+
+static int tap_free(BIO *b)
+{
+ if (b == NULL)
+ return 0;
+ BIO_set_data(b, NULL);
+ BIO_set_init(b, 0);
+ return 1;
+}
+
+static int tap_read_ex(BIO *b, char *buf, size_t size, size_t *out_size)
+{
+ BIO *next = BIO_next(b);
+ int ret = 0;
+
+ ret = BIO_read_ex(next, buf, size, out_size);
+ BIO_clear_retry_flags(b);
+ BIO_copy_next_retry(b);
+ return ret;
+}
+
+/*
+ * Output a string to the specified bio and return 1 if successful.
+ */
+static int write_string(BIO *b, const char *buf, size_t n)
+{
+ size_t m;
+
+ return BIO_write_ex(b, buf, n, &m) != 0 && m == n;
+}
+
+/*
+ * Write some data.
+ *
+ * This function implements a simple state machine that detects new lines.
+ * It indents the output and prefixes it with a '#' character.
+ *
+ * It returns the number of input characters that were output in in_size.
+ * More characters than this will likely have been output however any calling
+ * code will be unable to correctly assess the actual number of characters
+ * emitted and would be prone to failure if the actual number were returned.
+ *
+ * The BIO_data field is used as our state. If it is NULL, we've just
+ * seen a new line. If it is not NULL, we're processing characters in a line.
+ */
+static int tap_write_ex(BIO *b, const char *buf, size_t size, size_t *in_size)
+{
+ BIO *next = BIO_next(b);
+ size_t i;
+ int j;
+
+ for (i = 0; i < size; i++) {
+ if (BIO_get_data(b) == NULL) {
+ BIO_set_data(b, "");
+ for (j = 0; j < subtest_level(); j++)
+ if (!write_string(next, " ", 1))
+ goto err;
+ if (!write_string(next, "# ", 2))
+ goto err;
+ }
+ if (!write_string(next, buf + i, 1))
+ goto err;
+ if (buf[i] == '\n')
+ BIO_set_data(b, NULL);
+ }
+ *in_size = i;
+ return 1;
+
+err:
+ *in_size = i;
+ return 0;
+}
+
+static long tap_ctrl(BIO *b, int cmd, long num, void *ptr)
+{
+ BIO *next = BIO_next(b);
+
+ switch (cmd) {
+ case BIO_CTRL_RESET:
+ BIO_set_data(b, NULL);
+ break;
+
+ default:
+ break;
+ }
+ return BIO_ctrl(next, cmd, num, ptr);
+}
+
+static long tap_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
+{
+ return BIO_callback_ctrl(BIO_next(b), cmd, fp);
+}
+
+static int tap_gets(BIO *b, char *buf, int size)
+{
+ return BIO_gets(BIO_next(b), buf, size);
+}
+
+static int tap_puts(BIO *b, const char *str)
+{
+ size_t m;
+
+ if (!tap_write_ex(b, str, strlen(str), &m))
+ return 0;
+ return m;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/test_cleanup.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/test_cleanup.c
new file mode 100644
index 000000000..0fdd2e959
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/test_cleanup.c
@@ -0,0 +1,14 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "../testutil.h"
+
+void cleanup_tests(void)
+{
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/tests.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/tests.c
new file mode 100644
index 000000000..a60af0764
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/tests.c
@@ -0,0 +1,448 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "../testutil.h"
+#include "output.h"
+#include "tu_local.h"
+
+#include <errno.h>
+#include <string.h>
+#include <ctype.h>
+#include "internal/nelem.h"
+#include <openssl/asn1.h>
+
+/*
+ * Output a failed test first line.
+ * All items are optional are generally not preinted if passed as NULL.
+ * The special cases are for prefix where "ERROR" is assumed and for left
+ * and right where a non-failure message is produced if either is NULL.
+ */
+void test_fail_message_prefix(const char *prefix, const char *file,
+ int line, const char *type,
+ const char *left, const char *right,
+ const char *op)
+{
+ test_printf_stderr("%s: ", prefix != NULL ? prefix : "ERROR");
+ if (type)
+ test_printf_stderr("(%s) ", type);
+ if (op != NULL) {
+ if (left != NULL && right != NULL)
+ test_printf_stderr("'%s %s %s' failed", left, op, right);
+ else
+ test_printf_stderr("'%s'", op);
+ }
+ if (file != NULL) {
+ test_printf_stderr(" @ %s:%d", file, line);
+ }
+ test_printf_stderr("\n");
+}
+
+/*
+ * A common routine to output test failure messages. Generally this should not
+ * be called directly, rather it should be called by the following functions.
+ *
+ * |desc| is a printf formatted description with arguments |args| that is
+ * supplied by the user and |desc| can be NULL. |type| is the data type
+ * that was tested (int, char, ptr, ...). |fmt| is a system provided
+ * printf format with following arguments that spell out the failure
+ * details i.e. the actual values compared and the operator used.
+ *
+ * The typical use for this is from an utility test function:
+ *
+ * int test6(const char *file, int line, int n) {
+ * if (n != 6) {
+ * test_fail_message(1, file, line, "int", "value %d is not %d", n, 6);
+ * return 0;
+ * }
+ * return 1;
+ * }
+ *
+ * calling test6(3, "oops") will return 0 and produce out along the lines of:
+ * FAIL oops: (int) value 3 is not 6\n
+ */
+static void test_fail_message(const char *prefix, const char *file, int line,
+ const char *type, const char *left,
+ const char *right, const char *op,
+ const char *fmt, ...)
+ PRINTF_FORMAT(8, 9);
+
+static void test_fail_message_va(const char *prefix, const char *file,
+ int line, const char *type,
+ const char *left, const char *right,
+ const char *op, const char *fmt, va_list ap)
+{
+ test_fail_message_prefix(prefix, file, line, type, left, right, op);
+ if (fmt != NULL) {
+ test_vprintf_stderr(fmt, ap);
+ test_printf_stderr("\n");
+ }
+ test_flush_stderr();
+}
+
+static void test_fail_message(const char *prefix, const char *file,
+ int line, const char *type,
+ const char *left, const char *right,
+ const char *op, const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ test_fail_message_va(prefix, file, line, type, left, right, op, fmt, ap);
+ va_end(ap);
+}
+
+void test_info_c90(const char *desc, ...)
+{
+ va_list ap;
+
+ va_start(ap, desc);
+ test_fail_message_va("INFO", NULL, -1, NULL, NULL, NULL, NULL, desc, ap);
+ va_end(ap);
+}
+
+void test_info(const char *file, int line, const char *desc, ...)
+{
+ va_list ap;
+
+ va_start(ap, desc);
+ test_fail_message_va("INFO", file, line, NULL, NULL, NULL, NULL, desc, ap);
+ va_end(ap);
+}
+
+void test_error_c90(const char *desc, ...)
+{
+ va_list ap;
+
+ va_start(ap, desc);
+ test_fail_message_va(NULL, NULL, -1, NULL, NULL, NULL, NULL, desc, ap);
+ va_end(ap);
+ test_printf_stderr("\n");
+}
+
+void test_error(const char *file, int line, const char *desc, ...)
+{
+ va_list ap;
+
+ va_start(ap, desc);
+ test_fail_message_va(NULL, file, line, NULL, NULL, NULL, NULL, desc, ap);
+ va_end(ap);
+ test_printf_stderr("\n");
+}
+
+void test_perror(const char *s)
+{
+ /*
+ * Using openssl_strerror_r causes linking issues since it isn't
+ * exported from libcrypto.so
+ */
+ TEST_error("%s: %s", s, strerror(errno));
+}
+
+void test_note(const char *fmt, ...)
+{
+ if (fmt != NULL) {
+ va_list ap;
+
+ va_start(ap, fmt);
+ test_vprintf_stderr(fmt, ap);
+ va_end(ap);
+ test_printf_stderr("\n");
+ }
+ test_flush_stderr();
+}
+
+void test_openssl_errors(void)
+{
+ ERR_print_errors_cb(openssl_error_cb, NULL);
+ ERR_clear_error();
+}
+
+/*
+ * Define some comparisons between pairs of various types.
+ * These functions return 1 if the test is true.
+ * Otherwise, they return 0 and pretty-print diagnostics.
+ *
+ * In each case the functions produced are:
+ * int test_name_eq(const type t1, const type t2, const char *desc, ...);
+ * int test_name_ne(const type t1, const type t2, const char *desc, ...);
+ * int test_name_lt(const type t1, const type t2, const char *desc, ...);
+ * int test_name_le(const type t1, const type t2, const char *desc, ...);
+ * int test_name_gt(const type t1, const type t2, const char *desc, ...);
+ * int test_name_ge(const type t1, const type t2, const char *desc, ...);
+ *
+ * The t1 and t2 arguments are to be compared for equality, inequality,
+ * less than, less than or equal to, greater than and greater than or
+ * equal to respectively. If the specified condition holds, the functions
+ * return 1. If the condition does not hold, the functions print a diagnostic
+ * message and return 0.
+ *
+ * The desc argument is a printf format string followed by its arguments and
+ * this is included in the output if the condition being tested for is false.
+ */
+#define DEFINE_COMPARISON(type, name, opname, op, fmt) \
+ int test_ ## name ## _ ## opname(const char *file, int line, \
+ const char *s1, const char *s2, \
+ const type t1, const type t2) \
+ { \
+ if (t1 op t2) \
+ return 1; \
+ test_fail_message(NULL, file, line, #type, s1, s2, #op, \
+ "[" fmt "] compared to [" fmt "]", \
+ t1, t2); \
+ return 0; \
+ }
+
+#define DEFINE_COMPARISONS(type, name, fmt) \
+ DEFINE_COMPARISON(type, name, eq, ==, fmt) \
+ DEFINE_COMPARISON(type, name, ne, !=, fmt) \
+ DEFINE_COMPARISON(type, name, lt, <, fmt) \
+ DEFINE_COMPARISON(type, name, le, <=, fmt) \
+ DEFINE_COMPARISON(type, name, gt, >, fmt) \
+ DEFINE_COMPARISON(type, name, ge, >=, fmt)
+
+DEFINE_COMPARISONS(int, int, "%d")
+DEFINE_COMPARISONS(unsigned int, uint, "%u")
+DEFINE_COMPARISONS(char, char, "%c")
+DEFINE_COMPARISONS(unsigned char, uchar, "%u")
+DEFINE_COMPARISONS(long, long, "%ld")
+DEFINE_COMPARISONS(unsigned long, ulong, "%lu")
+DEFINE_COMPARISONS(size_t, size_t, "%zu")
+
+DEFINE_COMPARISON(void *, ptr, eq, ==, "%p")
+DEFINE_COMPARISON(void *, ptr, ne, !=, "%p")
+
+int test_ptr_null(const char *file, int line, const char *s, const void *p)
+{
+ if (p == NULL)
+ return 1;
+ test_fail_message(NULL, file, line, "ptr", s, "NULL", "==", "%p", p);
+ return 0;
+}
+
+int test_ptr(const char *file, int line, const char *s, const void *p)
+{
+ if (p != NULL)
+ return 1;
+ test_fail_message(NULL, file, line, "ptr", s, "NULL", "!=", "%p", p);
+ return 0;
+}
+
+int test_true(const char *file, int line, const char *s, int b)
+{
+ if (b)
+ return 1;
+ test_fail_message(NULL, file, line, "bool", s, "true", "==", "false");
+ return 0;
+}
+
+int test_false(const char *file, int line, const char *s, int b)
+{
+ if (!b)
+ return 1;
+ test_fail_message(NULL, file, line, "bool", s, "false", "==", "true");
+ return 0;
+}
+
+int test_str_eq(const char *file, int line, const char *st1, const char *st2,
+ const char *s1, const char *s2)
+{
+ if (s1 == NULL && s2 == NULL)
+ return 1;
+ if (s1 == NULL || s2 == NULL || strcmp(s1, s2) != 0) {
+ test_fail_string_message(NULL, file, line, "string", st1, st2, "==",
+ s1, s1 == NULL ? 0 : strlen(s1),
+ s2, s2 == NULL ? 0 : strlen(s2));
+ return 0;
+ }
+ return 1;
+}
+
+int test_str_ne(const char *file, int line, const char *st1, const char *st2,
+ const char *s1, const char *s2)
+{
+ if ((s1 == NULL) ^ (s2 == NULL))
+ return 1;
+ if (s1 == NULL || strcmp(s1, s2) == 0) {
+ test_fail_string_message(NULL, file, line, "string", st1, st2, "!=",
+ s1, s1 == NULL ? 0 : strlen(s1),
+ s2, s2 == NULL ? 0 : strlen(s2));
+ return 0;
+ }
+ return 1;
+}
+
+int test_strn_eq(const char *file, int line, const char *st1, const char *st2,
+ const char *s1, const char *s2, size_t len)
+{
+ if (s1 == NULL && s2 == NULL)
+ return 1;
+ if (s1 == NULL || s2 == NULL || strncmp(s1, s2, len) != 0) {
+ test_fail_string_message(NULL, file, line, "string", st1, st2, "==",
+ s1, s1 == NULL ? 0 : OPENSSL_strnlen(s1, len),
+ s2, s2 == NULL ? 0 : OPENSSL_strnlen(s2, len));
+ return 0;
+ }
+ return 1;
+}
+
+int test_strn_ne(const char *file, int line, const char *st1, const char *st2,
+ const char *s1, const char *s2, size_t len)
+{
+ if ((s1 == NULL) ^ (s2 == NULL))
+ return 1;
+ if (s1 == NULL || strncmp(s1, s2, len) == 0) {
+ test_fail_string_message(NULL, file, line, "string", st1, st2, "!=",
+ s1, s1 == NULL ? 0 : OPENSSL_strnlen(s1, len),
+ s2, s2 == NULL ? 0 : OPENSSL_strnlen(s2, len));
+ return 0;
+ }
+ return 1;
+}
+
+int test_mem_eq(const char *file, int line, const char *st1, const char *st2,
+ const void *s1, size_t n1, const void *s2, size_t n2)
+{
+ if (s1 == NULL && s2 == NULL)
+ return 1;
+ if (n1 != n2 || s1 == NULL || s2 == NULL || memcmp(s1, s2, n1) != 0) {
+ test_fail_memory_message(NULL, file, line, "memory", st1, st2, "==",
+ s1, n1, s2, n2);
+ return 0;
+ }
+ return 1;
+}
+
+int test_mem_ne(const char *file, int line, const char *st1, const char *st2,
+ const void *s1, size_t n1, const void *s2, size_t n2)
+{
+ if ((s1 == NULL) ^ (s2 == NULL))
+ return 1;
+ if (n1 != n2)
+ return 1;
+ if (s1 == NULL || memcmp(s1, s2, n1) == 0) {
+ test_fail_memory_message(NULL, file, line, "memory", st1, st2, "!=",
+ s1, n1, s2, n2);
+ return 0;
+ }
+ return 1;
+}
+
+#define DEFINE_BN_COMPARISONS(opname, op, zero_cond) \
+ int test_BN_ ## opname(const char *file, int line, \
+ const char *s1, const char *s2, \
+ const BIGNUM *t1, const BIGNUM *t2) \
+ { \
+ if (BN_cmp(t1, t2) op 0) \
+ return 1; \
+ test_fail_bignum_message(NULL, file, line, "BIGNUM", s1, s2, \
+ #op, t1, t2); \
+ return 0; \
+ } \
+ int test_BN_ ## opname ## _zero(const char *file, int line, \
+ const char *s, const BIGNUM *a) \
+ { \
+ if (a != NULL &&(zero_cond)) \
+ return 1; \
+ test_fail_bignum_mono_message(NULL, file, line, "BIGNUM", \
+ s, "0", #op, a); \
+ return 0; \
+ }
+
+DEFINE_BN_COMPARISONS(eq, ==, BN_is_zero(a))
+DEFINE_BN_COMPARISONS(ne, !=, !BN_is_zero(a))
+DEFINE_BN_COMPARISONS(gt, >, !BN_is_negative(a) && !BN_is_zero(a))
+DEFINE_BN_COMPARISONS(ge, >=, !BN_is_negative(a) || BN_is_zero(a))
+DEFINE_BN_COMPARISONS(lt, <, BN_is_negative(a) && !BN_is_zero(a))
+DEFINE_BN_COMPARISONS(le, <=, BN_is_negative(a) || BN_is_zero(a))
+
+int test_BN_eq_one(const char *file, int line, const char *s, const BIGNUM *a)
+{
+ if (a != NULL && BN_is_one(a))
+ return 1;
+ test_fail_bignum_mono_message(NULL, file, line, "BIGNUM", s, "1", "==", a);
+ return 0;
+}
+
+int test_BN_odd(const char *file, int line, const char *s, const BIGNUM *a)
+{
+ if (a != NULL && BN_is_odd(a))
+ return 1;
+ test_fail_bignum_mono_message(NULL, file, line, "BIGNUM", "ODD(", ")", s, a);
+ return 0;
+}
+
+int test_BN_even(const char *file, int line, const char *s, const BIGNUM *a)
+{
+ if (a != NULL && !BN_is_odd(a))
+ return 1;
+ test_fail_bignum_mono_message(NULL, file, line, "BIGNUM", "EVEN(", ")", s,
+ a);
+ return 0;
+}
+
+int test_BN_eq_word(const char *file, int line, const char *bns, const char *ws,
+ const BIGNUM *a, BN_ULONG w)
+{
+ BIGNUM *bw;
+
+ if (a != NULL && BN_is_word(a, w))
+ return 1;
+ bw = BN_new();
+ BN_set_word(bw, w);
+ test_fail_bignum_message(NULL, file, line, "BIGNUM", bns, ws, "==", a, bw);
+ BN_free(bw);
+ return 0;
+}
+
+int test_BN_abs_eq_word(const char *file, int line, const char *bns,
+ const char *ws, const BIGNUM *a, BN_ULONG w)
+{
+ BIGNUM *bw, *aa;
+
+ if (a != NULL && BN_abs_is_word(a, w))
+ return 1;
+ bw = BN_new();
+ aa = BN_dup(a);
+ BN_set_negative(aa, 0);
+ BN_set_word(bw, w);
+ test_fail_bignum_message(NULL, file, line, "BIGNUM", bns, ws, "abs==",
+ aa, bw);
+ BN_free(bw);
+ BN_free(aa);
+ return 0;
+}
+
+static const char *print_time(const ASN1_TIME *t)
+{
+ return t == NULL ? "<null>" : (char *)ASN1_STRING_get0_data(t);
+}
+
+#define DEFINE_TIME_T_COMPARISON(opname, op) \
+ int test_time_t_ ## opname(const char *file, int line, \
+ const char *s1, const char *s2, \
+ const time_t t1, const time_t t2) \
+ { \
+ ASN1_TIME *at1 = ASN1_TIME_set(NULL, t1); \
+ ASN1_TIME *at2 = ASN1_TIME_set(NULL, t2); \
+ int r = at1 != NULL && at2 != NULL \
+ && ASN1_TIME_compare(at1, at2) op 0; \
+ if (!r) \
+ test_fail_message(NULL, file, line, "time_t", s1, s2, #op, \
+ "[%s] compared to [%s]", \
+ print_time(at1), print_time(at2)); \
+ ASN1_STRING_free(at1); \
+ ASN1_STRING_free(at2); \
+ return r; \
+ }
+DEFINE_TIME_T_COMPARISON(eq, ==)
+DEFINE_TIME_T_COMPARISON(ne, !=)
+DEFINE_TIME_T_COMPARISON(gt, >)
+DEFINE_TIME_T_COMPARISON(ge, >=)
+DEFINE_TIME_T_COMPARISON(lt, <)
+DEFINE_TIME_T_COMPARISON(le, <=)
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/testutil_init.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/testutil_init.c
new file mode 100644
index 000000000..5095c7f7e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/testutil_init.c
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "../testutil.h"
+
+int global_init(void)
+{
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/tu_local.h b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/tu_local.h
new file mode 100644
index 000000000..d2e65b596
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testutil/tu_local.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdlib.h> /* size_t */
+#include <openssl/bn.h>
+#include <openssl/bio.h>
+#include "../testutil.h"
+
+int subtest_level(void);
+int openssl_error_cb(const char *str, size_t len, void *u);
+const BIO_METHOD *BIO_f_tap(void);
+
+void test_fail_message_prefix(const char *prefix, const char *file,
+ int line, const char *type,
+ const char *left, const char *right,
+ const char *op);
+
+void test_fail_string_message(const char *prefix, const char *file,
+ int line, const char *type,
+ const char *left, const char *right,
+ const char *op, const char *m1, size_t l1,
+ const char *m2, size_t l2);
+
+void test_fail_bignum_message(const char *prefix, const char *file,
+ int line, const char *type,
+ const char *left, const char *right,
+ const char *op,
+ const BIGNUM *bn1, const BIGNUM *bn2);
+void test_fail_bignum_mono_message(const char *prefix, const char *file,
+ int line, const char *type,
+ const char *left, const char *right,
+ const char *op, const BIGNUM *bn);
+
+void test_fail_memory_message(const char *prefix, const char *file,
+ int line, const char *type,
+ const char *left, const char *right,
+ const char *op,
+ const unsigned char *m1, size_t l1,
+ const unsigned char *m2, size_t l2);
+
+void setup_test_framework(void);
+__owur int pulldown_test_framework(int ret);
+
+__owur int run_tests(const char *test_prog_name);
+void set_test_title(const char *title);
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testx509.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testx509.pem
new file mode 100644
index 000000000..8a85d1496
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/testx509.pem
@@ -0,0 +1,10 @@
+-----BEGIN CERTIFICATE-----
+MIIBWzCCAQYCARgwDQYJKoZIhvcNAQEEBQAwODELMAkGA1UEBhMCQVUxDDAKBgNV
+BAgTA1FMRDEbMBkGA1UEAxMSU1NMZWF5L3JzYSB0ZXN0IENBMB4XDTk1MDYxOTIz
+MzMxMloXDTk1MDcxNzIzMzMxMlowOjELMAkGA1UEBhMCQVUxDDAKBgNVBAgTA1FM
+RDEdMBsGA1UEAxMUU1NMZWF5L3JzYSB0ZXN0IGNlcnQwXDANBgkqhkiG9w0BAQEF
+AANLADBIAkEAqtt6qS5GTxVxGZYWa0/4u+IwHf7p2LNZbcPBp9/OfIcYAXBQn8hO
+/Re1uwLKXdCjIoaGs4DLdG88rkzfyK5dPQIDAQABMAwGCCqGSIb3DQIFBQADQQAE
+Wc7EcF8po2/ZO6kNCwK/ICH6DobgLekA5lSLr5EvuioZniZp5lFzAw4+YzPQ7XKJ
+zl9HYIMxATFyqSiD9jsx
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/threadstest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/threadstest.c
new file mode 100644
index 000000000..ee09f8693
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/threadstest.c
@@ -0,0 +1,193 @@
+/*
+ * Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#if defined(_WIN32)
+# include <windows.h>
+#endif
+
+#include <openssl/crypto.h>
+#include "testutil.h"
+
+#if !defined(OPENSSL_THREADS) || defined(CRYPTO_TDEBUG)
+
+typedef unsigned int thread_t;
+
+static int run_thread(thread_t *t, void (*f)(void))
+{
+ f();
+ return 1;
+}
+
+static int wait_for_thread(thread_t thread)
+{
+ return 1;
+}
+
+#elif defined(OPENSSL_SYS_WINDOWS)
+
+typedef HANDLE thread_t;
+
+static DWORD WINAPI thread_run(LPVOID arg)
+{
+ void (*f)(void);
+
+ *(void **) (&f) = arg;
+
+ f();
+ return 0;
+}
+
+static int run_thread(thread_t *t, void (*f)(void))
+{
+ *t = CreateThread(NULL, 0, thread_run, *(void **) &f, 0, NULL);
+ return *t != NULL;
+}
+
+static int wait_for_thread(thread_t thread)
+{
+ return WaitForSingleObject(thread, INFINITE) == 0;
+}
+
+#else
+
+typedef pthread_t thread_t;
+
+static void *thread_run(void *arg)
+{
+ void (*f)(void);
+
+ *(void **) (&f) = arg;
+
+ f();
+ return NULL;
+}
+
+static int run_thread(thread_t *t, void (*f)(void))
+{
+ return pthread_create(t, NULL, thread_run, *(void **) &f) == 0;
+}
+
+static int wait_for_thread(thread_t thread)
+{
+ return pthread_join(thread, NULL) == 0;
+}
+
+#endif
+
+static int test_lock(void)
+{
+ CRYPTO_RWLOCK *lock = CRYPTO_THREAD_lock_new();
+
+ if (!TEST_true(CRYPTO_THREAD_read_lock(lock))
+ || !TEST_true(CRYPTO_THREAD_unlock(lock)))
+ return 0;
+
+ CRYPTO_THREAD_lock_free(lock);
+
+ return 1;
+}
+
+static CRYPTO_ONCE once_run = CRYPTO_ONCE_STATIC_INIT;
+static unsigned once_run_count = 0;
+
+static void once_do_run(void)
+{
+ once_run_count++;
+}
+
+static void once_run_thread_cb(void)
+{
+ CRYPTO_THREAD_run_once(&once_run, once_do_run);
+}
+
+static int test_once(void)
+{
+ thread_t thread;
+
+ if (!TEST_true(run_thread(&thread, once_run_thread_cb))
+ || !TEST_true(wait_for_thread(thread))
+ || !CRYPTO_THREAD_run_once(&once_run, once_do_run)
+ || !TEST_int_eq(once_run_count, 1))
+ return 0;
+ return 1;
+}
+
+static CRYPTO_THREAD_LOCAL thread_local_key;
+static unsigned destructor_run_count = 0;
+static int thread_local_thread_cb_ok = 0;
+
+static void thread_local_destructor(void *arg)
+{
+ unsigned *count;
+
+ if (arg == NULL)
+ return;
+
+ count = arg;
+
+ (*count)++;
+}
+
+static void thread_local_thread_cb(void)
+{
+ void *ptr;
+
+ ptr = CRYPTO_THREAD_get_local(&thread_local_key);
+ if (!TEST_ptr_null(ptr)
+ || !TEST_true(CRYPTO_THREAD_set_local(&thread_local_key,
+ &destructor_run_count)))
+ return;
+
+ ptr = CRYPTO_THREAD_get_local(&thread_local_key);
+ if (!TEST_ptr_eq(ptr, &destructor_run_count))
+ return;
+
+ thread_local_thread_cb_ok = 1;
+}
+
+static int test_thread_local(void)
+{
+ thread_t thread;
+ void *ptr = NULL;
+
+ if (!TEST_true(CRYPTO_THREAD_init_local(&thread_local_key,
+ thread_local_destructor)))
+ return 0;
+
+ ptr = CRYPTO_THREAD_get_local(&thread_local_key);
+ if (!TEST_ptr_null(ptr)
+ || !TEST_true(run_thread(&thread, thread_local_thread_cb))
+ || !TEST_true(wait_for_thread(thread))
+ || !TEST_int_eq(thread_local_thread_cb_ok, 1))
+ return 0;
+
+#if defined(OPENSSL_THREADS) && !defined(CRYPTO_TDEBUG)
+
+ ptr = CRYPTO_THREAD_get_local(&thread_local_key);
+ if (!TEST_ptr_null(ptr))
+ return 0;
+
+# if !defined(OPENSSL_SYS_WINDOWS)
+ if (!TEST_int_eq(destructor_run_count, 1))
+ return 0;
+# endif
+#endif
+
+ if (!TEST_true(CRYPTO_THREAD_cleanup_local(&thread_local_key)))
+ return 0;
+ return 1;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_lock);
+ ADD_TEST(test_once);
+ ADD_TEST(test_thread_local);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/time_offset_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/time_offset_test.c
new file mode 100644
index 000000000..740b471af
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/time_offset_test.c
@@ -0,0 +1,113 @@
+/*
+ * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/* time_t/offset (+/-XXXX) tests for ASN1 and X509 */
+
+#include <stdio.h>
+#include <string.h>
+#include <time.h>
+
+#include <openssl/asn1.h>
+#include <openssl/x509.h>
+#include "testutil.h"
+#include "internal/nelem.h"
+
+typedef struct {
+ const char *data;
+ int time_result;
+ int type;
+} TESTDATA;
+
+
+/**********************************************************************
+ *
+ * Test driver
+ *
+ ***/
+
+static TESTDATA tests[] = {
+ { "20001201000000Z", 0, V_ASN1_GENERALIZEDTIME },
+ { "20001201010000+0100", 0, V_ASN1_GENERALIZEDTIME },
+ { "20001201050000+0500", 0, V_ASN1_GENERALIZEDTIME },
+ { "20001130230000-0100", 0, V_ASN1_GENERALIZEDTIME },
+ { "20001130190000-0500", 0, V_ASN1_GENERALIZEDTIME },
+ { "20001130190001-0500", 1, V_ASN1_GENERALIZEDTIME }, /* +1 second */
+ { "20001130185959-0500", -1, V_ASN1_GENERALIZEDTIME }, /* -1 second */
+ { "001201000000Z", 0, V_ASN1_UTCTIME },
+ { "001201010000+0100", 0, V_ASN1_UTCTIME },
+ { "001201050000+0500", 0, V_ASN1_UTCTIME },
+ { "001130230000-0100", 0, V_ASN1_UTCTIME },
+ { "001130190000-0500", 0, V_ASN1_UTCTIME },
+ { "001201000000-0000", 0, V_ASN1_UTCTIME },
+ { "001201000001-0000", 1, V_ASN1_UTCTIME }, /* +1 second */
+ { "001130235959-0000", -1, V_ASN1_UTCTIME }, /* -1 second */
+ { "20001201000000+0000", 0, V_ASN1_GENERALIZEDTIME },
+ { "20001201000000+0100", -1, V_ASN1_GENERALIZEDTIME },
+ { "001201000000+0100", -1, V_ASN1_UTCTIME },
+ { "20001201000000-0100", 1, V_ASN1_GENERALIZEDTIME },
+ { "001201000000-0100", 1, V_ASN1_UTCTIME },
+ { "20001201123400+1234", 0, V_ASN1_GENERALIZEDTIME },
+ { "20001130112600-1234", 0, V_ASN1_GENERALIZEDTIME },
+};
+
+static time_t the_time = 975628800;
+static ASN1_TIME the_asn1_time = {
+ 15,
+ V_ASN1_GENERALIZEDTIME,
+ (unsigned char*)"20001201000000Z",
+ 0
+};
+
+static int test_offset(int idx)
+{
+ ASN1_TIME at;
+ const TESTDATA *testdata = &tests[idx];
+ int ret = -2;
+ int day, sec;
+
+ at.data = (unsigned char*)testdata->data;
+ at.length = strlen(testdata->data);
+ at.type = testdata->type;
+ at.flags = 0;
+
+ if (!TEST_true(ASN1_TIME_diff(&day, &sec, &the_asn1_time, &at))) {
+ TEST_info("ASN1_TIME_diff() failed for %s\n", at.data);
+ return 0;
+ }
+ if (day > 0)
+ ret = 1;
+ else if (day < 0)
+ ret = -1;
+ else if (sec > 0)
+ ret = 1;
+ else if (sec < 0)
+ ret = -1;
+ else
+ ret = 0;
+
+ if (!TEST_int_eq(testdata->time_result, ret)) {
+ TEST_info("ASN1_TIME_diff() test failed for %s day=%d sec=%d\n", at.data, day, sec);
+ return 0;
+ }
+
+ ret = ASN1_TIME_cmp_time_t(&at, the_time);
+
+ if (!TEST_int_eq(testdata->time_result, ret)) {
+ TEST_info("ASN1_UTCTIME_cmp_time_t() test failed for %s\n", at.data);
+ return 0;
+ }
+
+ return 1;
+}
+
+int setup_tests(void)
+{
+ ADD_ALL_TESTS(test_offset, OSSL_NELEM(tests));
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/tls13ccstest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/tls13ccstest.c
new file mode 100644
index 000000000..1633d3afe
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/tls13ccstest.c
@@ -0,0 +1,498 @@
+/*
+ * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <openssl/ssl.h>
+#include <string.h>
+#include "ssltestlib.h"
+#include "testutil.h"
+#include "../ssl/packet_local.h"
+
+static char *cert = NULL;
+static char *privkey = NULL;
+
+static BIO *s_to_c_fbio = NULL, *c_to_s_fbio = NULL;
+static int chseen = 0, shseen = 0, sccsseen = 0, ccsaftersh = 0;
+static int ccsbeforesh = 0, sappdataseen = 0, cappdataseen = 0, badccs = 0;
+static int badvers = 0, badsessid = 0;
+
+static unsigned char chsessid[SSL_MAX_SSL_SESSION_ID_LENGTH];
+static size_t chsessidlen = 0;
+
+static int watchccs_new(BIO *bi);
+static int watchccs_free(BIO *a);
+static int watchccs_read(BIO *b, char *out, int outl);
+static int watchccs_write(BIO *b, const char *in, int inl);
+static long watchccs_ctrl(BIO *b, int cmd, long num, void *ptr);
+static int watchccs_gets(BIO *bp, char *buf, int size);
+static int watchccs_puts(BIO *bp, const char *str);
+
+/* Choose a sufficiently large type likely to be unused for this custom BIO */
+# define BIO_TYPE_WATCHCCS_FILTER (0x80 | BIO_TYPE_FILTER)
+
+static BIO_METHOD *method_watchccs = NULL;
+
+static const BIO_METHOD *bio_f_watchccs_filter(void)
+{
+ if (method_watchccs == NULL) {
+ method_watchccs = BIO_meth_new(BIO_TYPE_WATCHCCS_FILTER,
+ "Watch CCS filter");
+ if ( method_watchccs == NULL
+ || !BIO_meth_set_write(method_watchccs, watchccs_write)
+ || !BIO_meth_set_read(method_watchccs, watchccs_read)
+ || !BIO_meth_set_puts(method_watchccs, watchccs_puts)
+ || !BIO_meth_set_gets(method_watchccs, watchccs_gets)
+ || !BIO_meth_set_ctrl(method_watchccs, watchccs_ctrl)
+ || !BIO_meth_set_create(method_watchccs, watchccs_new)
+ || !BIO_meth_set_destroy(method_watchccs, watchccs_free))
+ return NULL;
+ }
+ return method_watchccs;
+}
+
+static int watchccs_new(BIO *bio)
+{
+ BIO_set_init(bio, 1);
+ return 1;
+}
+
+static int watchccs_free(BIO *bio)
+{
+ BIO_set_init(bio, 0);
+ return 1;
+}
+
+static int watchccs_read(BIO *bio, char *out, int outl)
+{
+ int ret = 0;
+ BIO *next = BIO_next(bio);
+
+ if (outl <= 0)
+ return 0;
+ if (next == NULL)
+ return 0;
+
+ BIO_clear_retry_flags(bio);
+
+ ret = BIO_read(next, out, outl);
+ if (ret <= 0 && BIO_should_read(next))
+ BIO_set_retry_read(bio);
+
+ return ret;
+}
+
+static int watchccs_write(BIO *bio, const char *in, int inl)
+{
+ int ret = 0;
+ BIO *next = BIO_next(bio);
+ PACKET pkt, msg, msgbody, sessionid;
+ unsigned int rectype, recvers, msgtype, expectedrecvers;
+
+ if (inl <= 0)
+ return 0;
+ if (next == NULL)
+ return 0;
+
+ BIO_clear_retry_flags(bio);
+
+ if (!PACKET_buf_init(&pkt, (const unsigned char *)in, inl))
+ return 0;
+
+ /* We assume that we always write complete records each time */
+ while (PACKET_remaining(&pkt)) {
+ if (!PACKET_get_1(&pkt, &rectype)
+ || !PACKET_get_net_2(&pkt, &recvers)
+ || !PACKET_get_length_prefixed_2(&pkt, &msg))
+ return 0;
+
+ expectedrecvers = TLS1_2_VERSION;
+
+ if (rectype == SSL3_RT_HANDSHAKE) {
+ if (!PACKET_get_1(&msg, &msgtype)
+ || !PACKET_get_length_prefixed_3(&msg, &msgbody))
+ return 0;
+ if (msgtype == SSL3_MT_CLIENT_HELLO) {
+ chseen++;
+
+ /*
+ * Skip legacy_version (2 bytes) and Random (32 bytes) to read
+ * session_id.
+ */
+ if (!PACKET_forward(&msgbody, 34)
+ || !PACKET_get_length_prefixed_1(&msgbody, &sessionid))
+ return 0;
+
+ if (chseen == 1) {
+ expectedrecvers = TLS1_VERSION;
+
+ /* Save the session id for later */
+ chsessidlen = PACKET_remaining(&sessionid);
+ if (!PACKET_copy_bytes(&sessionid, chsessid, chsessidlen))
+ return 0;
+ } else {
+ /*
+ * Check the session id for the second ClientHello is the
+ * same as the first one.
+ */
+ if (PACKET_remaining(&sessionid) != chsessidlen
+ || (chsessidlen > 0
+ && memcmp(chsessid, PACKET_data(&sessionid),
+ chsessidlen) != 0))
+ badsessid = 1;
+ }
+ } else if (msgtype == SSL3_MT_SERVER_HELLO) {
+ shseen++;
+ /*
+ * Skip legacy_version (2 bytes) and Random (32 bytes) to read
+ * session_id.
+ */
+ if (!PACKET_forward(&msgbody, 34)
+ || !PACKET_get_length_prefixed_1(&msgbody, &sessionid))
+ return 0;
+
+ /*
+ * Check the session id is the same as the one in the
+ * ClientHello
+ */
+ if (PACKET_remaining(&sessionid) != chsessidlen
+ || (chsessidlen > 0
+ && memcmp(chsessid, PACKET_data(&sessionid),
+ chsessidlen) != 0))
+ badsessid = 1;
+ }
+ } else if (rectype == SSL3_RT_CHANGE_CIPHER_SPEC) {
+ if (bio == s_to_c_fbio) {
+ /*
+ * Server writing. We shouldn't have written any app data
+ * yet, and we should have seen both the ClientHello and the
+ * ServerHello
+ */
+ if (!sappdataseen
+ && chseen == 1
+ && shseen == 1
+ && !sccsseen)
+ sccsseen = 1;
+ else
+ badccs = 1;
+ } else if (!cappdataseen) {
+ /*
+ * Client writing. We shouldn't have written any app data
+ * yet, and we should have seen the ClientHello
+ */
+ if (shseen == 1 && !ccsaftersh)
+ ccsaftersh = 1;
+ else if (shseen == 0 && !ccsbeforesh)
+ ccsbeforesh = 1;
+ else
+ badccs = 1;
+ } else {
+ badccs = 1;
+ }
+ } else if(rectype == SSL3_RT_APPLICATION_DATA) {
+ if (bio == s_to_c_fbio)
+ sappdataseen = 1;
+ else
+ cappdataseen = 1;
+ }
+ if (recvers != expectedrecvers)
+ badvers = 1;
+ }
+
+ ret = BIO_write(next, in, inl);
+ if (ret <= 0 && BIO_should_write(next))
+ BIO_set_retry_write(bio);
+
+ return ret;
+}
+
+static long watchccs_ctrl(BIO *bio, int cmd, long num, void *ptr)
+{
+ long ret;
+ BIO *next = BIO_next(bio);
+
+ if (next == NULL)
+ return 0;
+
+ switch (cmd) {
+ case BIO_CTRL_DUP:
+ ret = 0;
+ break;
+ default:
+ ret = BIO_ctrl(next, cmd, num, ptr);
+ break;
+ }
+ return ret;
+}
+
+static int watchccs_gets(BIO *bio, char *buf, int size)
+{
+ /* We don't support this - not needed anyway */
+ return -1;
+}
+
+static int watchccs_puts(BIO *bio, const char *str)
+{
+ return watchccs_write(bio, str, strlen(str));
+}
+
+static int test_tls13ccs(int tst)
+{
+ SSL_CTX *sctx = NULL, *cctx = NULL;
+ SSL *sssl = NULL, *cssl = NULL;
+ int ret = 0;
+ const char msg[] = "Dummy data";
+ char buf[80];
+ size_t written, readbytes;
+ SSL_SESSION *sess = NULL;
+
+ chseen = shseen = sccsseen = ccsaftersh = ccsbeforesh = 0;
+ sappdataseen = cappdataseen = badccs = badvers = badsessid = 0;
+ chsessidlen = 0;
+
+ if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
+ TLS1_VERSION, TLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey))
+ || !TEST_true(SSL_CTX_set_max_early_data(sctx,
+ SSL3_RT_MAX_PLAIN_LENGTH)))
+ goto err;
+
+ /*
+ * Test 0: Simple Handshake
+ * Test 1: Simple Handshake, client middlebox compat mode disabled
+ * Test 2: Simple Handshake, server middlebox compat mode disabled
+ * Test 3: HRR Handshake
+ * Test 4: HRR Handshake, client middlebox compat mode disabled
+ * Test 5: HRR Handshake, server middlebox compat mode disabled
+ * Test 6: Early data handshake
+ * Test 7: Early data handshake, client middlebox compat mode disabled
+ * Test 8: Early data handshake, server middlebox compat mode disabled
+ * Test 9: Early data then HRR
+ * Test 10: Early data then HRR, client middlebox compat mode disabled
+ * Test 11: Early data then HRR, server middlebox compat mode disabled
+ */
+ switch (tst) {
+ case 0:
+ case 3:
+ case 6:
+ case 9:
+ break;
+ case 1:
+ case 4:
+ case 7:
+ case 10:
+ SSL_CTX_clear_options(cctx, SSL_OP_ENABLE_MIDDLEBOX_COMPAT);
+ break;
+ case 2:
+ case 5:
+ case 8:
+ case 11:
+ SSL_CTX_clear_options(sctx, SSL_OP_ENABLE_MIDDLEBOX_COMPAT);
+ break;
+ default:
+ TEST_error("Invalid test value");
+ goto err;
+ }
+
+ if (tst >= 6) {
+ /* Get a session suitable for early_data */
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &sssl, &cssl, NULL, NULL))
+ || !TEST_true(create_ssl_connection(sssl, cssl, SSL_ERROR_NONE)))
+ goto err;
+ sess = SSL_get1_session(cssl);
+ if (!TEST_ptr(sess))
+ goto err;
+ SSL_shutdown(cssl);
+ SSL_shutdown(sssl);
+ SSL_free(sssl);
+ SSL_free(cssl);
+ sssl = cssl = NULL;
+ }
+
+ if ((tst >= 3 && tst <= 5) || tst >= 9) {
+ /* HRR handshake */
+ if (!TEST_true(SSL_CTX_set1_groups_list(sctx, "P-256")))
+ goto err;
+ }
+
+ s_to_c_fbio = BIO_new(bio_f_watchccs_filter());
+ c_to_s_fbio = BIO_new(bio_f_watchccs_filter());
+ if (!TEST_ptr(s_to_c_fbio)
+ || !TEST_ptr(c_to_s_fbio)) {
+ BIO_free(s_to_c_fbio);
+ BIO_free(c_to_s_fbio);
+ goto err;
+ }
+
+ /* BIOs get freed on error */
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &sssl, &cssl, s_to_c_fbio,
+ c_to_s_fbio)))
+ goto err;
+
+ if (tst >= 6) {
+ /* Early data */
+ if (!TEST_true(SSL_set_session(cssl, sess))
+ || !TEST_true(SSL_write_early_data(cssl, msg, strlen(msg),
+ &written))
+ || (tst <= 8
+ && !TEST_int_eq(SSL_read_early_data(sssl, buf, sizeof(buf),
+ &readbytes),
+ SSL_READ_EARLY_DATA_SUCCESS)))
+ goto err;
+ if (tst <= 8) {
+ if (!TEST_int_gt(SSL_connect(cssl), 0))
+ goto err;
+ } else {
+ if (!TEST_int_le(SSL_connect(cssl), 0))
+ goto err;
+ }
+ if (!TEST_int_eq(SSL_read_early_data(sssl, buf, sizeof(buf),
+ &readbytes),
+ SSL_READ_EARLY_DATA_FINISH))
+ goto err;
+ }
+
+ /* Perform handshake (or complete it if doing early data ) */
+ if (!TEST_true(create_ssl_connection(sssl, cssl, SSL_ERROR_NONE)))
+ goto err;
+
+ /*
+ * Check there were no unexpected CCS messages, all record versions
+ * were as expected, and that the session ids were reflected by the server
+ * correctly.
+ */
+ if (!TEST_false(badccs) || !TEST_false(badvers) || !TEST_false(badsessid))
+ goto err;
+
+ switch (tst) {
+ case 0:
+ if (!TEST_true(sccsseen)
+ || !TEST_true(ccsaftersh)
+ || !TEST_false(ccsbeforesh)
+ || !TEST_size_t_gt(chsessidlen, 0))
+ goto err;
+ break;
+
+ case 1:
+ if (!TEST_true(sccsseen)
+ || !TEST_false(ccsaftersh)
+ || !TEST_false(ccsbeforesh)
+ || !TEST_size_t_eq(chsessidlen, 0))
+ goto err;
+ break;
+
+ case 2:
+ if (!TEST_false(sccsseen)
+ || !TEST_true(ccsaftersh)
+ || !TEST_false(ccsbeforesh)
+ || !TEST_size_t_gt(chsessidlen, 0))
+ goto err;
+ break;
+
+ case 3:
+ if (!TEST_true(sccsseen)
+ || !TEST_true(ccsaftersh)
+ || !TEST_false(ccsbeforesh)
+ || !TEST_size_t_gt(chsessidlen, 0))
+ goto err;
+ break;
+
+ case 4:
+ if (!TEST_true(sccsseen)
+ || !TEST_false(ccsaftersh)
+ || !TEST_false(ccsbeforesh)
+ || !TEST_size_t_eq(chsessidlen, 0))
+ goto err;
+ break;
+
+ case 5:
+ if (!TEST_false(sccsseen)
+ || !TEST_true(ccsaftersh)
+ || !TEST_false(ccsbeforesh)
+ || !TEST_size_t_gt(chsessidlen, 0))
+ goto err;
+ break;
+
+ case 6:
+ if (!TEST_true(sccsseen)
+ || !TEST_false(ccsaftersh)
+ || !TEST_true(ccsbeforesh)
+ || !TEST_size_t_gt(chsessidlen, 0))
+ goto err;
+ break;
+
+ case 7:
+ if (!TEST_true(sccsseen)
+ || !TEST_false(ccsaftersh)
+ || !TEST_false(ccsbeforesh)
+ || !TEST_size_t_eq(chsessidlen, 0))
+ goto err;
+ break;
+
+ case 8:
+ if (!TEST_false(sccsseen)
+ || !TEST_false(ccsaftersh)
+ || !TEST_true(ccsbeforesh)
+ || !TEST_size_t_gt(chsessidlen, 0))
+ goto err;
+ break;
+
+ case 9:
+ if (!TEST_true(sccsseen)
+ || !TEST_false(ccsaftersh)
+ || !TEST_true(ccsbeforesh)
+ || !TEST_size_t_gt(chsessidlen, 0))
+ goto err;
+ break;
+
+ case 10:
+ if (!TEST_true(sccsseen)
+ || !TEST_false(ccsaftersh)
+ || !TEST_false(ccsbeforesh)
+ || !TEST_size_t_eq(chsessidlen, 0))
+ goto err;
+ break;
+
+ case 11:
+ if (!TEST_false(sccsseen)
+ || !TEST_false(ccsaftersh)
+ || !TEST_true(ccsbeforesh)
+ || !TEST_size_t_gt(chsessidlen, 0))
+ goto err;
+ break;
+
+ default:
+ TEST_error("Invalid test value");
+ goto err;
+ }
+
+ ret = 1;
+ err:
+ SSL_SESSION_free(sess);
+ SSL_free(sssl);
+ SSL_free(cssl);
+ SSL_CTX_free(sctx);
+ SSL_CTX_free(cctx);
+
+ return ret;
+}
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(cert = test_get_argument(0))
+ || !TEST_ptr(privkey = test_get_argument(1)))
+ return 0;
+
+ ADD_ALL_TESTS(test_tls13ccs, 12);
+
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+ BIO_meth_free(method_watchccs);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/tls13encryptiontest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/tls13encryptiontest.c
new file mode 100644
index 000000000..479ff4105
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/tls13encryptiontest.c
@@ -0,0 +1,428 @@
+/*
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <openssl/ssl.h>
+#include <openssl/evp.h>
+
+#ifdef __VMS
+# pragma names save
+# pragma names as_is,shortened
+#endif
+
+#include "../ssl/ssl_local.h"
+#include "../ssl/record/record_local.h"
+
+#ifdef __VMS
+# pragma names restore
+#endif
+
+#include "internal/nelem.h"
+#include "testutil.h"
+
+/*
+ * Based on the test vectors provided in:
+ * https://tools.ietf.org/html/draft-ietf-tls-tls13-vectors-06
+ */
+
+typedef struct {
+ /*
+ * We split these into 3 chunks in order to work around the 509 character
+ * limit that the standard specifies for string literals
+ */
+ const char *plaintext[3];
+ const char *ciphertext[3];
+ const char *key;
+ const char *iv;
+ const char *seq;
+} RECORD_DATA;
+
+/*
+ * Note 1: The plaintext values given here have an additional "16" or "17" byte
+ * added to the end when compared to the official vectors. The official vectors
+ * do not include the inner content type, but we require it.
+ *
+ * Note 2: These are the vectors for the "Simple 1-RTT Handshake"
+ */
+static RECORD_DATA refdata[] = {
+ {
+ /*
+ * Server: EncryptedExtensions, Certificate, CertificateVerify and
+ * Finished
+ */
+ {
+ "080000240022000a00140012001d00170018001901000101010201030104001c"
+ "00024001000000000b0001b9000001b50001b0308201ac30820115a003020102"
+ "020102300d06092a864886f70d01010b0500300e310c300a0603550403130372"
+ "7361301e170d3136303733303031323335395a170d3236303733303031323335"
+ "395a300e310c300a0603550403130372736130819f300d06092a864886f70d01"
+ "0101050003818d0030818902818100b4bb498f8279303d980836399b36c6988c"
+ "0c68de55e1bdb826d3901a2461eafd2de49a91d015abbc9a95137ace6c1af19e",
+ "aa6af98c7ced43120998e187a80ee0ccb0524b1b018c3e0b63264d449a6d38e2"
+ "2a5fda430846748030530ef0461c8ca9d9efbfae8ea6d1d03e2bd193eff0ab9a"
+ "8002c47428a6d35a8d88d79f7f1e3f0203010001a31a301830090603551d1304"
+ "023000300b0603551d0f0404030205a0300d06092a864886f70d01010b050003"
+ "81810085aad2a0e5b9276b908c65f73a7267170618a54c5f8a7b337d2df7a594"
+ "365417f2eae8f8a58c8f8172f9319cf36b7fd6c55b80f21a03015156726096fd"
+ "335e5e67f2dbf102702e608ccae6bec1fc63a42a99be5c3eb7107c3c54e9b9eb",
+ "2bd5203b1c3b84e0a8b2f759409ba3eac9d91d402dcc0cc8f8961229ac9187b4"
+ "2b4de100000f00008408040080754040d0ddab8cf0e2da2bc4995b868ad745c8"
+ "e1564e33cde17880a42392cc624aeef6b67bb3f0ae71d9d54a2309731d87dc59"
+ "f642d733be2eb27484ad8a8c8eb3516a7ac57f2625e2b5c0888a8541f4e734f7"
+ "3d054761df1dd02f0e3e9a33cfa10b6e3eb4ebf7ac053b01fdabbddfc54133bc"
+ "d24c8bbdceb223b2aa03452a2914000020ac86acbc9cd25a45b57ad5b64db15d"
+ "4405cf8c80e314583ebf3283ef9a99310c16"
+ },
+ {
+ "f10b26d8fcaf67b5b828f712122216a1cd14187465b77637cbcd78539128bb93"
+ "246dcca1af56f1eaa271666077455bc54965d85f05f9bd36d6996171eb536aff"
+ "613eeddc42bad5a2d2227c4606f1215f980e7afaf56bd3b85a51be130003101a"
+ "758d077b1c891d8e7a22947e5a229851fd42a9dd422608f868272abf92b3d43f"
+ "b46ac420259346067f66322fd708885680f4b4433c29116f2dfa529e09bba53c"
+ "7cd920121724809eaddcc84307ef46fc51a0b33d99d39db337fcd761ce0f2b02"
+ "dc73dedb6fddb77c4f8099bde93d5bee08bcf2131f29a2a37ff07949e8f8bcdd",
+ "3e8310b8bf8b3444c85aaf0d2aeb2d4f36fd14d5cb51fcebff418b3827136ab9"
+ "529e9a3d3f35e4c0ae749ea2dbc94982a1281d3e6daab719aa4460889321a008"
+ "bf10fa06ac0c61cc122cc90d5e22c0030c986ae84a33a0c47df174bcfbd50bf7"
+ "8ffdf24051ab423db63d5815db2f830040f30521131c98c66f16c362addce2fb"
+ "a0602cf0a7dddf22e8def7516cdfee95b4056cc9ad38c95352335421b5b1ffba"
+ "df75e5212fdad7a75f52a2801486a1eec3539580bee0e4b337cda6085ac9eccd"
+ "1a0f1a46cebfbb5cdfa3251ac28c3bc826148c6d8c1eb6a06f77f6ff632c6a83",
+ "e283e8f9df7c6dbabf1c6ea40629a85b43ab0c73d34f9d5072832a104eda3f75"
+ "f5d83da6e14822a18e14099d749eafd823ca2ac7542086501eca206ce7887920"
+ "008573757ce2f230a890782b99cc682377beee812756d04f9025135fb599d746"
+ "fefe7316c922ac265ca0d29021375adb63c1509c3e242dfb92b8dee891f7368c"
+ "4058399b8db9075f2dcc8216194e503b6652d87d2cb41f99adfdcc5be5ec7e1e"
+ "6326ac22d70bd3ba652827532d669aff005173597f8039c3ea4922d3ec757670"
+ "222f6ac29b93e90d7ad3f6dd96328e429cfcfd5cca22707fe2d86ad1dcb0be75"
+ "6e8e"
+ },
+ "c66cb1aec519df44c91e10995511ac8b",
+ "f7f6884c4981716c2d0d29a4",
+ "0000000000000000"
+ },
+ {
+ /* Client: Finished */
+ {
+ "14000020b9027a0204b972b52cdefa58950fa1580d68c9cb124dbe691a7178f2"
+ "5c554b2316", "", ""
+ },
+ {
+ "9539b4ae2f87fd8e616b295628ea953d9e3858db274970d19813ec136cae7d96"
+ "e0417775fcabd3d8858fdc60240912d218f5afb21c", "", ""
+ },
+ "2679a43e1d76784034ea1797d5ad2649",
+ "5482405290dd0d2f81c0d942",
+ "0000000000000000"
+ },
+ {
+ /* Server: NewSessionTicket */
+ {
+ "040000c90000001e2fd3992f02000000b2ff099f9676cdff8b0bf8825d000000"
+ "007905a9d28efeef4a47c6f9b06a0cecdb0070d920b898997c75b79636943ed4"
+ "2046a96142bd084a04acfa0c490f452d756dea02c0f927259f1f3231ac0d541a"
+ "769129b740ce38090842b828c27fd729f59737ba98aa7b42e043c5da28f8dca8"
+ "590b2df410d5134fd6c4cacad8b30370602afa35d265bf4d127976bb36dbda6a"
+ "626f0270e20eebc73d6fcae2b1a0da122ee9042f76be56ebf41aa469c3d2c9da"
+ "9197d80008002a00040000040016", "", ""
+ },
+ {
+ "3680c2b2109d25caa26c3b06eea9fdc5cb31613ba702176596da2e886bf6af93"
+ "507bd68161ad9cb4780653842e1041ecbf0088a65ac4ef438419dd1d95ddd9bd"
+ "2ad4484e7e167d0e6c008448ae58a0418713b6fc6c51e4bb23a537fb75a74f73"
+ "de31fe6aa0bc522515f8b25f8955428b5de5ac06762cec22b0aa78c94385ef8e"
+ "70fa24945b7c1f268510871689bbbbfaf2e7f4a19277024f95f1143ab12a31ec"
+ "63adb128cb390711fd6d06a498df3e98615d8eb102e23353b480efcca5e8e026"
+ "7a6d0fe2441f14c8c9664aefb2cfff6ae9e0442728b6a0940c1e824fda06",
+ "", ""
+
+ },
+ "a688ebb5ac826d6f42d45c0cc44b9b7d",
+ "c1cad4425a438b5de714830a",
+ "0000000000000000"
+ },
+ {
+ /* Client: Application Data */
+ {
+ "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f"
+ "202122232425262728292a2b2c2d2e2f303117", "", ""
+ },
+ {
+ "8c3497da00ae023e53c01b4324b665404c1b49e78fe2bf4d17f6348ae8340551"
+ "e363a0cd05f2179c4fef5ad689b5cae0bae94adc63632e571fb79aa91544c639"
+ "4d28a1", "", ""
+
+ },
+ "88b96ad686c84be55ace18a59cce5c87",
+ "b99dc58cd5ff5ab082fdad19",
+ "0000000000000000"
+ },
+
+
+ {
+ /* Server: Application Data */
+ {
+ "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f"
+ "202122232425262728292a2b2c2d2e2f303117", "", ""
+ },
+ {
+ "f65f49fd2df6cd2347c3d30166e3cfddb6308a5906c076112c6a37ff1dbd406b"
+ "5813c0abd734883017a6b2833186b13c14da5d75f33d8760789994e27d82043a"
+ "b88d65", "", ""
+ },
+ "a688ebb5ac826d6f42d45c0cc44b9b7d",
+ "c1cad4425a438b5de714830a",
+ "0000000000000001"
+ },
+ {
+ /* Client: CloseNotify */
+ {
+ "010015", "", ""
+ },
+ {
+ "2c2148163d7938a35f6acf2a6606f8cbd1d9f2", "", ""
+ },
+ "88b96ad686c84be55ace18a59cce5c87",
+ "b99dc58cd5ff5ab082fdad19",
+ "0000000000000001"
+ },
+ {
+ /* Server: CloseNotify */
+ {
+ "010015", "", ""
+ },
+ {
+ "f8141ebdb5eda511e0bce639a56ff9ea825a21", "", ""
+
+ },
+ "a688ebb5ac826d6f42d45c0cc44b9b7d",
+ "c1cad4425a438b5de714830a",
+ "0000000000000002"
+ }
+};
+
+/*
+ * Same thing as OPENSSL_hexstr2buf() but enables us to pass the string in
+ * 3 chunks
+ */
+static unsigned char *multihexstr2buf(const char *str[3], size_t *len)
+{
+ size_t outer, inner, curr = 0;
+ unsigned char *outbuf;
+ size_t totlen = 0;
+
+ /* Check lengths of all input strings are even */
+ for (outer = 0; outer < 3; outer++) {
+ totlen += strlen(str[outer]);
+ if ((totlen & 1) != 0)
+ return NULL;
+ }
+
+ totlen /= 2;
+ outbuf = OPENSSL_malloc(totlen);
+ if (outbuf == NULL)
+ return NULL;
+
+ for (outer = 0; outer < 3; outer++) {
+ for (inner = 0; str[outer][inner] != 0; inner += 2) {
+ int hi, lo;
+
+ hi = OPENSSL_hexchar2int(str[outer][inner]);
+ lo = OPENSSL_hexchar2int(str[outer][inner + 1]);
+
+ if (hi < 0 || lo < 0) {
+ OPENSSL_free(outbuf);
+ return NULL;
+ }
+ outbuf[curr++] = (hi << 4) | lo;
+ }
+ }
+
+ *len = totlen;
+ return outbuf;
+}
+
+static int load_record(SSL3_RECORD *rec, RECORD_DATA *recd, unsigned char **key,
+ unsigned char *iv, size_t ivlen, unsigned char *seq)
+{
+ unsigned char *pt = NULL, *sq = NULL, *ivtmp = NULL;
+ size_t ptlen;
+
+ *key = OPENSSL_hexstr2buf(recd->key, NULL);
+ ivtmp = OPENSSL_hexstr2buf(recd->iv, NULL);
+ sq = OPENSSL_hexstr2buf(recd->seq, NULL);
+ pt = multihexstr2buf(recd->plaintext, &ptlen);
+
+ if (*key == NULL || ivtmp == NULL || sq == NULL || pt == NULL)
+ goto err;
+
+ rec->data = rec->input = OPENSSL_malloc(ptlen + EVP_GCM_TLS_TAG_LEN);
+
+ if (rec->data == NULL)
+ goto err;
+
+ rec->length = ptlen;
+ memcpy(rec->data, pt, ptlen);
+ OPENSSL_free(pt);
+ memcpy(seq, sq, SEQ_NUM_SIZE);
+ OPENSSL_free(sq);
+ memcpy(iv, ivtmp, ivlen);
+ OPENSSL_free(ivtmp);
+
+ return 1;
+ err:
+ OPENSSL_free(*key);
+ *key = NULL;
+ OPENSSL_free(ivtmp);
+ OPENSSL_free(sq);
+ OPENSSL_free(pt);
+ return 0;
+}
+
+static int test_record(SSL3_RECORD *rec, RECORD_DATA *recd, int enc)
+{
+ int ret = 0;
+ unsigned char *refd;
+ size_t refdatalen;
+
+ if (enc)
+ refd = multihexstr2buf(recd->ciphertext, &refdatalen);
+ else
+ refd = multihexstr2buf(recd->plaintext, &refdatalen);
+
+ if (!TEST_ptr(refd)) {
+ TEST_info("Failed to get reference data");
+ goto err;
+ }
+
+ if (!TEST_mem_eq(rec->data, rec->length, refd, refdatalen))
+ goto err;
+
+ ret = 1;
+
+ err:
+ OPENSSL_free(refd);
+ return ret;
+}
+
+#define TLS13_AES_128_GCM_SHA256_BYTES ((const unsigned char *)"\x13\x01")
+
+static int test_tls13_encryption(void)
+{
+ SSL_CTX *ctx = NULL;
+ SSL *s = NULL;
+ SSL3_RECORD rec;
+ unsigned char *key = NULL, *iv = NULL, *seq = NULL;
+ const EVP_CIPHER *ciph = EVP_aes_128_gcm();
+ int ret = 0;
+ size_t ivlen, ctr;
+
+ /*
+ * Encrypted TLSv1.3 records always have an outer content type of
+ * application data, and a record version of TLSv1.2.
+ */
+ rec.data = NULL;
+ rec.type = SSL3_RT_APPLICATION_DATA;
+ rec.rec_version = TLS1_2_VERSION;
+
+ ctx = SSL_CTX_new(TLS_method());
+ if (!TEST_ptr(ctx)) {
+ TEST_info("Failed creating SSL_CTX");
+ goto err;
+ }
+
+ s = SSL_new(ctx);
+ if (!TEST_ptr(s)) {
+ TEST_info("Failed creating SSL");
+ goto err;
+ }
+
+ s->enc_read_ctx = EVP_CIPHER_CTX_new();
+ if (!TEST_ptr(s->enc_read_ctx))
+ goto err;
+
+ s->enc_write_ctx = EVP_CIPHER_CTX_new();
+ if (!TEST_ptr(s->enc_write_ctx))
+ goto err;
+
+ s->s3->tmp.new_cipher = SSL_CIPHER_find(s, TLS13_AES_128_GCM_SHA256_BYTES);
+ if (!TEST_ptr(s->s3->tmp.new_cipher)) {
+ TEST_info("Failed to find cipher");
+ goto err;
+ }
+
+ for (ctr = 0; ctr < OSSL_NELEM(refdata); ctr++) {
+ /* Load the record */
+ ivlen = EVP_CIPHER_iv_length(ciph);
+ if (!load_record(&rec, &refdata[ctr], &key, s->read_iv, ivlen,
+ RECORD_LAYER_get_read_sequence(&s->rlayer))) {
+ TEST_error("Failed loading key into EVP_CIPHER_CTX");
+ goto err;
+ }
+
+ /* Set up the read/write sequences */
+ memcpy(RECORD_LAYER_get_write_sequence(&s->rlayer),
+ RECORD_LAYER_get_read_sequence(&s->rlayer), SEQ_NUM_SIZE);
+ memcpy(s->write_iv, s->read_iv, ivlen);
+
+ /* Load the key into the EVP_CIPHER_CTXs */
+ if (EVP_CipherInit_ex(s->enc_write_ctx, ciph, NULL, key, NULL, 1) <= 0
+ || EVP_CipherInit_ex(s->enc_read_ctx, ciph, NULL, key, NULL, 0)
+ <= 0) {
+ TEST_error("Failed loading key into EVP_CIPHER_CTX\n");
+ goto err;
+ }
+
+ /* Encrypt it */
+ if (!TEST_size_t_eq(tls13_enc(s, &rec, 1, 1), 1)) {
+ TEST_info("Failed to encrypt record %zu", ctr);
+ goto err;
+ }
+ if (!TEST_true(test_record(&rec, &refdata[ctr], 1))) {
+ TEST_info("Record %zu encryption test failed", ctr);
+ goto err;
+ }
+
+ /* Decrypt it */
+ if (!TEST_int_eq(tls13_enc(s, &rec, 1, 0), 1)) {
+ TEST_info("Failed to decrypt record %zu", ctr);
+ goto err;
+ }
+ if (!TEST_true(test_record(&rec, &refdata[ctr], 0))) {
+ TEST_info("Record %zu decryption test failed", ctr);
+ goto err;
+ }
+
+ OPENSSL_free(rec.data);
+ OPENSSL_free(key);
+ OPENSSL_free(iv);
+ OPENSSL_free(seq);
+ rec.data = NULL;
+ key = NULL;
+ iv = NULL;
+ seq = NULL;
+ }
+
+ TEST_note("PASS: %zu records tested", ctr);
+ ret = 1;
+
+ err:
+ OPENSSL_free(rec.data);
+ OPENSSL_free(key);
+ OPENSSL_free(iv);
+ OPENSSL_free(seq);
+ SSL_free(s);
+ SSL_CTX_free(ctx);
+ return ret;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_tls13_encryption);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/tls13secretstest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/tls13secretstest.c
new file mode 100644
index 000000000..52fc2b667
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/tls13secretstest.c
@@ -0,0 +1,400 @@
+/*
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <openssl/ssl.h>
+#include <openssl/evp.h>
+
+#ifdef __VMS
+# pragma names save
+# pragma names as_is,shortened
+#endif
+
+#include "../ssl/ssl_local.h"
+
+#ifdef __VMS
+# pragma names restore
+#endif
+
+#include "testutil.h"
+
+#define IVLEN 12
+#define KEYLEN 16
+
+/*
+ * Based on the test vectors available in:
+ * https://tools.ietf.org/html/draft-ietf-tls-tls13-vectors-06
+ */
+
+static unsigned char hs_start_hash[] = {
+0xc6, 0xc9, 0x18, 0xad, 0x2f, 0x41, 0x99, 0xd5, 0x59, 0x8e, 0xaf, 0x01, 0x16,
+0xcb, 0x7a, 0x5c, 0x2c, 0x14, 0xcb, 0x54, 0x78, 0x12, 0x18, 0x88, 0x8d, 0xb7,
+0x03, 0x0d, 0xd5, 0x0d, 0x5e, 0x6d
+};
+
+static unsigned char hs_full_hash[] = {
+0xf8, 0xc1, 0x9e, 0x8c, 0x77, 0xc0, 0x38, 0x79, 0xbb, 0xc8, 0xeb, 0x6d, 0x56,
+0xe0, 0x0d, 0xd5, 0xd8, 0x6e, 0xf5, 0x59, 0x27, 0xee, 0xfc, 0x08, 0xe1, 0xb0,
+0x02, 0xb6, 0xec, 0xe0, 0x5d, 0xbf
+};
+
+static unsigned char early_secret[] = {
+0x33, 0xad, 0x0a, 0x1c, 0x60, 0x7e, 0xc0, 0x3b, 0x09, 0xe6, 0xcd, 0x98, 0x93,
+0x68, 0x0c, 0xe2, 0x10, 0xad, 0xf3, 0x00, 0xaa, 0x1f, 0x26, 0x60, 0xe1, 0xb2,
+0x2e, 0x10, 0xf1, 0x70, 0xf9, 0x2a
+};
+
+static unsigned char ecdhe_secret[] = {
+0x81, 0x51, 0xd1, 0x46, 0x4c, 0x1b, 0x55, 0x53, 0x36, 0x23, 0xb9, 0xc2, 0x24,
+0x6a, 0x6a, 0x0e, 0x6e, 0x7e, 0x18, 0x50, 0x63, 0xe1, 0x4a, 0xfd, 0xaf, 0xf0,
+0xb6, 0xe1, 0xc6, 0x1a, 0x86, 0x42
+};
+
+static unsigned char handshake_secret[] = {
+0x5b, 0x4f, 0x96, 0x5d, 0xf0, 0x3c, 0x68, 0x2c, 0x46, 0xe6, 0xee, 0x86, 0xc3,
+0x11, 0x63, 0x66, 0x15, 0xa1, 0xd2, 0xbb, 0xb2, 0x43, 0x45, 0xc2, 0x52, 0x05,
+0x95, 0x3c, 0x87, 0x9e, 0x8d, 0x06
+};
+
+static const char *client_hts_label = "c hs traffic";
+
+static unsigned char client_hts[] = {
+0xe2, 0xe2, 0x32, 0x07, 0xbd, 0x93, 0xfb, 0x7f, 0xe4, 0xfc, 0x2e, 0x29, 0x7a,
+0xfe, 0xab, 0x16, 0x0e, 0x52, 0x2b, 0x5a, 0xb7, 0x5d, 0x64, 0xa8, 0x6e, 0x75,
+0xbc, 0xac, 0x3f, 0x3e, 0x51, 0x03
+};
+
+static unsigned char client_hts_key[] = {
+0x26, 0x79, 0xa4, 0x3e, 0x1d, 0x76, 0x78, 0x40, 0x34, 0xea, 0x17, 0x97, 0xd5,
+0xad, 0x26, 0x49
+};
+
+static unsigned char client_hts_iv[] = {
+0x54, 0x82, 0x40, 0x52, 0x90, 0xdd, 0x0d, 0x2f, 0x81, 0xc0, 0xd9, 0x42
+};
+
+static const char *server_hts_label = "s hs traffic";
+
+static unsigned char server_hts[] = {
+0x3b, 0x7a, 0x83, 0x9c, 0x23, 0x9e, 0xf2, 0xbf, 0x0b, 0x73, 0x05, 0xa0, 0xe0,
+0xc4, 0xe5, 0xa8, 0xc6, 0xc6, 0x93, 0x30, 0xa7, 0x53, 0xb3, 0x08, 0xf5, 0xe3,
+0xa8, 0x3a, 0xa2, 0xef, 0x69, 0x79
+};
+
+static unsigned char server_hts_key[] = {
+0xc6, 0x6c, 0xb1, 0xae, 0xc5, 0x19, 0xdf, 0x44, 0xc9, 0x1e, 0x10, 0x99, 0x55,
+0x11, 0xac, 0x8b
+};
+
+static unsigned char server_hts_iv[] = {
+0xf7, 0xf6, 0x88, 0x4c, 0x49, 0x81, 0x71, 0x6c, 0x2d, 0x0d, 0x29, 0xa4
+};
+
+static unsigned char master_secret[] = {
+0x5c, 0x79, 0xd1, 0x69, 0x42, 0x4e, 0x26, 0x2b, 0x56, 0x32, 0x03, 0x62, 0x7b,
+0xe4, 0xeb, 0x51, 0x03, 0x3f, 0x58, 0x8c, 0x43, 0xc9, 0xce, 0x03, 0x73, 0x37,
+0x2d, 0xbc, 0xbc, 0x01, 0x85, 0xa7
+};
+
+static const char *client_ats_label = "c ap traffic";
+
+static unsigned char client_ats[] = {
+0xe2, 0xf0, 0xdb, 0x6a, 0x82, 0xe8, 0x82, 0x80, 0xfc, 0x26, 0xf7, 0x3c, 0x89,
+0x85, 0x4e, 0xe8, 0x61, 0x5e, 0x25, 0xdf, 0x28, 0xb2, 0x20, 0x79, 0x62, 0xfa,
+0x78, 0x22, 0x26, 0xb2, 0x36, 0x26
+};
+
+static unsigned char client_ats_key[] = {
+0x88, 0xb9, 0x6a, 0xd6, 0x86, 0xc8, 0x4b, 0xe5, 0x5a, 0xce, 0x18, 0xa5, 0x9c,
+0xce, 0x5c, 0x87
+};
+
+static unsigned char client_ats_iv[] = {
+0xb9, 0x9d, 0xc5, 0x8c, 0xd5, 0xff, 0x5a, 0xb0, 0x82, 0xfd, 0xad, 0x19
+};
+
+static const char *server_ats_label = "s ap traffic";
+
+static unsigned char server_ats[] = {
+0x5b, 0x73, 0xb1, 0x08, 0xd9, 0xac, 0x1b, 0x9b, 0x0c, 0x82, 0x48, 0xca, 0x39,
+0x26, 0xec, 0x6e, 0x7b, 0xc4, 0x7e, 0x41, 0x17, 0x06, 0x96, 0x39, 0x87, 0xec,
+0x11, 0x43, 0x5d, 0x30, 0x57, 0x19
+};
+
+static unsigned char server_ats_key[] = {
+0xa6, 0x88, 0xeb, 0xb5, 0xac, 0x82, 0x6d, 0x6f, 0x42, 0xd4, 0x5c, 0x0c, 0xc4,
+0x4b, 0x9b, 0x7d
+};
+
+static unsigned char server_ats_iv[] = {
+0xc1, 0xca, 0xd4, 0x42, 0x5a, 0x43, 0x8b, 0x5d, 0xe7, 0x14, 0x83, 0x0a
+};
+
+/* Mocked out implementations of various functions */
+int ssl3_digest_cached_records(SSL *s, int keep)
+{
+ return 1;
+}
+
+static int full_hash = 0;
+
+/* Give a hash of the currently set handshake */
+int ssl_handshake_hash(SSL *s, unsigned char *out, size_t outlen,
+ size_t *hashlen)
+{
+ if (sizeof(hs_start_hash) > outlen
+ || sizeof(hs_full_hash) != sizeof(hs_start_hash))
+ return 0;
+
+ if (full_hash) {
+ memcpy(out, hs_full_hash, sizeof(hs_full_hash));
+ *hashlen = sizeof(hs_full_hash);
+ } else {
+ memcpy(out, hs_start_hash, sizeof(hs_start_hash));
+ *hashlen = sizeof(hs_start_hash);
+ }
+
+ return 1;
+}
+
+const EVP_MD *ssl_handshake_md(SSL *s)
+{
+ return EVP_sha256();
+}
+
+void RECORD_LAYER_reset_read_sequence(RECORD_LAYER *rl)
+{
+}
+
+void RECORD_LAYER_reset_write_sequence(RECORD_LAYER *rl)
+{
+}
+
+int ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc,
+ const EVP_MD **md, int *mac_pkey_type,
+ size_t *mac_secret_size, SSL_COMP **comp, int use_etm)
+
+{
+ return 0;
+}
+
+int tls1_alert_code(int code)
+{
+ return code;
+}
+
+int ssl_log_secret(SSL *ssl,
+ const char *label,
+ const uint8_t *secret,
+ size_t secret_len)
+{
+ return 1;
+}
+
+const EVP_MD *ssl_md(int idx)
+{
+ return EVP_sha256();
+}
+
+void ossl_statem_fatal(SSL *s, int al, int func, int reason, const char *file,
+ int line)
+{
+}
+
+int ossl_statem_export_allowed(SSL *s)
+{
+ return 1;
+}
+
+int ossl_statem_export_early_allowed(SSL *s)
+{
+ return 1;
+}
+
+/* End of mocked out code */
+
+static int test_secret(SSL *s, unsigned char *prk,
+ const unsigned char *label, size_t labellen,
+ const unsigned char *ref_secret,
+ const unsigned char *ref_key, const unsigned char *ref_iv)
+{
+ size_t hashsize;
+ unsigned char gensecret[EVP_MAX_MD_SIZE];
+ unsigned char hash[EVP_MAX_MD_SIZE];
+ unsigned char key[KEYLEN];
+ unsigned char iv[IVLEN];
+ const EVP_MD *md = ssl_handshake_md(s);
+
+ if (!ssl_handshake_hash(s, hash, sizeof(hash), &hashsize)) {
+ TEST_error("Failed to get hash");
+ return 0;
+ }
+
+ if (!tls13_hkdf_expand(s, md, prk, label, labellen, hash, hashsize,
+ gensecret, hashsize, 1)) {
+ TEST_error("Secret generation failed");
+ return 0;
+ }
+
+ if (!TEST_mem_eq(gensecret, hashsize, ref_secret, hashsize))
+ return 0;
+
+ if (!tls13_derive_key(s, md, gensecret, key, KEYLEN)) {
+ TEST_error("Key generation failed");
+ return 0;
+ }
+
+ if (!TEST_mem_eq(key, KEYLEN, ref_key, KEYLEN))
+ return 0;
+
+ if (!tls13_derive_iv(s, md, gensecret, iv, IVLEN)) {
+ TEST_error("IV generation failed");
+ return 0;
+ }
+
+ if (!TEST_mem_eq(iv, IVLEN, ref_iv, IVLEN))
+ return 0;
+
+ return 1;
+}
+
+static int test_handshake_secrets(void)
+{
+ SSL_CTX *ctx = NULL;
+ SSL *s = NULL;
+ int ret = 0;
+ size_t hashsize;
+ unsigned char out_master_secret[EVP_MAX_MD_SIZE];
+ size_t master_secret_length;
+
+ ctx = SSL_CTX_new(TLS_method());
+ if (!TEST_ptr(ctx))
+ goto err;
+
+ s = SSL_new(ctx);
+ if (!TEST_ptr(s ))
+ goto err;
+
+ s->session = SSL_SESSION_new();
+ if (!TEST_ptr(s->session))
+ goto err;
+
+ if (!TEST_true(tls13_generate_secret(s, ssl_handshake_md(s), NULL, NULL, 0,
+ (unsigned char *)&s->early_secret))) {
+ TEST_info("Early secret generation failed");
+ goto err;
+ }
+
+ if (!TEST_mem_eq(s->early_secret, sizeof(early_secret),
+ early_secret, sizeof(early_secret))) {
+ TEST_info("Early secret does not match");
+ goto err;
+ }
+
+ if (!TEST_true(tls13_generate_handshake_secret(s, ecdhe_secret,
+ sizeof(ecdhe_secret)))) {
+ TEST_info("Handshake secret generation failed");
+ goto err;
+ }
+
+ if (!TEST_mem_eq(s->handshake_secret, sizeof(handshake_secret),
+ handshake_secret, sizeof(handshake_secret)))
+ goto err;
+
+ hashsize = EVP_MD_size(ssl_handshake_md(s));
+ if (!TEST_size_t_eq(sizeof(client_hts), hashsize))
+ goto err;
+ if (!TEST_size_t_eq(sizeof(client_hts_key), KEYLEN))
+ goto err;
+ if (!TEST_size_t_eq(sizeof(client_hts_iv), IVLEN))
+ goto err;
+
+ if (!TEST_true(test_secret(s, s->handshake_secret,
+ (unsigned char *)client_hts_label,
+ strlen(client_hts_label), client_hts,
+ client_hts_key, client_hts_iv))) {
+ TEST_info("Client handshake secret test failed");
+ goto err;
+ }
+
+ if (!TEST_size_t_eq(sizeof(server_hts), hashsize))
+ goto err;
+ if (!TEST_size_t_eq(sizeof(server_hts_key), KEYLEN))
+ goto err;
+ if (!TEST_size_t_eq(sizeof(server_hts_iv), IVLEN))
+ goto err;
+
+ if (!TEST_true(test_secret(s, s->handshake_secret,
+ (unsigned char *)server_hts_label,
+ strlen(server_hts_label), server_hts,
+ server_hts_key, server_hts_iv))) {
+ TEST_info("Server handshake secret test failed");
+ goto err;
+ }
+
+ /*
+ * Ensure the mocked out ssl_handshake_hash() returns the full handshake
+ * hash.
+ */
+ full_hash = 1;
+
+ if (!TEST_true(tls13_generate_master_secret(s, out_master_secret,
+ s->handshake_secret, hashsize,
+ &master_secret_length))) {
+ TEST_info("Master secret generation failed");
+ goto err;
+ }
+
+ if (!TEST_mem_eq(out_master_secret, master_secret_length,
+ master_secret, sizeof(master_secret))) {
+ TEST_info("Master secret does not match");
+ goto err;
+ }
+
+ if (!TEST_size_t_eq(sizeof(client_ats), hashsize))
+ goto err;
+ if (!TEST_size_t_eq(sizeof(client_ats_key), KEYLEN))
+ goto err;
+ if (!TEST_size_t_eq(sizeof(client_ats_iv), IVLEN))
+ goto err;
+
+ if (!TEST_true(test_secret(s, out_master_secret,
+ (unsigned char *)client_ats_label,
+ strlen(client_ats_label), client_ats,
+ client_ats_key, client_ats_iv))) {
+ TEST_info("Client application data secret test failed");
+ goto err;
+ }
+
+ if (!TEST_size_t_eq(sizeof(server_ats), hashsize))
+ goto err;
+ if (!TEST_size_t_eq(sizeof(server_ats_key), KEYLEN))
+ goto err;
+ if (!TEST_size_t_eq(sizeof(server_ats_iv), IVLEN))
+ goto err;
+
+ if (!TEST_true(test_secret(s, out_master_secret,
+ (unsigned char *)server_ats_label,
+ strlen(server_ats_label), server_ats,
+ server_ats_key, server_ats_iv))) {
+ TEST_info("Server application data secret test failed");
+ goto err;
+ }
+
+ ret = 1;
+ err:
+ SSL_free(s);
+ SSL_CTX_free(ctx);
+ return ret;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_handshake_secrets);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/uitest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/uitest.c
new file mode 100644
index 000000000..03db008c7
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/uitest.c
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2002-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <openssl/opensslconf.h>
+#include <openssl/err.h>
+#include "apps.h"
+#include "testutil.h"
+
+/* apps/apps.c depend on these */
+char *default_config_file = NULL;
+
+#include <openssl/ui.h>
+
+/* Old style PEM password callback */
+static int test_pem_password_cb(char *buf, int size, int rwflag, void *userdata)
+{
+ OPENSSL_strlcpy(buf, (char *)userdata, (size_t)size);
+ return strlen(buf);
+}
+
+/*
+ * Test wrapping old style PEM password callback in a UI method through the
+ * use of UI utility functions
+ */
+static int test_old(void)
+{
+ UI_METHOD *ui_method = NULL;
+ UI *ui = NULL;
+ char defpass[] = "password";
+ char pass[16];
+ int ok = 0;
+
+ if (!TEST_ptr(ui_method =
+ UI_UTIL_wrap_read_pem_callback( test_pem_password_cb, 0))
+ || !TEST_ptr(ui = UI_new_method(ui_method)))
+ goto err;
+
+ /* The wrapper passes the UI userdata as the callback userdata param */
+ UI_add_user_data(ui, defpass);
+
+ if (!UI_add_input_string(ui, "prompt", UI_INPUT_FLAG_DEFAULT_PWD,
+ pass, 0, sizeof(pass) - 1))
+ goto err;
+
+ switch (UI_process(ui)) {
+ case -2:
+ TEST_info("test_old: UI process interrupted or cancelled");
+ /* fall through */
+ case -1:
+ goto err;
+ default:
+ break;
+ }
+
+ if (TEST_str_eq(pass, defpass))
+ ok = 1;
+
+ err:
+ UI_free(ui);
+ UI_destroy_method(ui_method);
+
+ return ok;
+}
+
+/* Test of UI. This uses the UI method defined in apps/apps.c */
+static int test_new_ui(void)
+{
+ PW_CB_DATA cb_data = {
+ "password",
+ "prompt"
+ };
+ char pass[16];
+ int ok = 0;
+
+ setup_ui_method();
+ if (TEST_int_gt(password_callback(pass, sizeof(pass), 0, &cb_data), 0)
+ && TEST_str_eq(pass, cb_data.password))
+ ok = 1;
+ destroy_ui_method();
+ return ok;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_old);
+ ADD_TEST(test_new_ui);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/v3-cert1.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/v3-cert1.pem
new file mode 100644
index 000000000..0da253d5c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/v3-cert1.pem
@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE-----
+MIICjTCCAfigAwIBAgIEMaYgRzALBgkqhkiG9w0BAQQwRTELMAkGA1UEBhMCVVMx
+NjA0BgNVBAoTLU5hdGlvbmFsIEFlcm9uYXV0aWNzIGFuZCBTcGFjZSBBZG1pbmlz
+dHJhdGlvbjAmFxE5NjA1MjgxMzQ5MDUrMDgwMBcROTgwNTI4MTM0OTA1KzA4MDAw
+ZzELMAkGA1UEBhMCVVMxNjA0BgNVBAoTLU5hdGlvbmFsIEFlcm9uYXV0aWNzIGFu
+ZCBTcGFjZSBBZG1pbmlzdHJhdGlvbjEgMAkGA1UEBRMCMTYwEwYDVQQDEwxTdGV2
+ZSBTY2hvY2gwWDALBgkqhkiG9w0BAQEDSQAwRgJBALrAwyYdgxmzNP/ts0Uyf6Bp
+miJYktU/w4NG67ULaN4B5CnEz7k57s9o3YY3LecETgQ5iQHmkwlYDTL2fTgVfw0C
+AQOjgaswgagwZAYDVR0ZAQH/BFowWDBWMFQxCzAJBgNVBAYTAlVTMTYwNAYDVQQK
+Ey1OYXRpb25hbCBBZXJvbmF1dGljcyBhbmQgU3BhY2UgQWRtaW5pc3RyYXRpb24x
+DTALBgNVBAMTBENSTDEwFwYDVR0BAQH/BA0wC4AJODMyOTcwODEwMBgGA1UdAgQR
+MA8ECTgzMjk3MDgyM4ACBSAwDQYDVR0KBAYwBAMCBkAwCwYJKoZIhvcNAQEEA4GB
+AH2y1VCEw/A4zaXzSYZJTTUi3uawbbFiS2yxHvgf28+8Js0OHXk1H1w2d6qOHH21
+X82tZXd/0JtG0g1T9usFFBDvYK8O0ebgz/P5ELJnBL2+atObEuJy1ZZ0pBDWINR3
+WkDNLCGiTkCKp0F5EWIrVDwh54NNevkCQRZita+z4IBO
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/v3-cert2.pem b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/v3-cert2.pem
new file mode 100644
index 000000000..de0723ff8
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/v3-cert2.pem
@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE-----
+MIICiTCCAfKgAwIBAgIEMeZfHzANBgkqhkiG9w0BAQQFADB9MQswCQYDVQQGEwJD
+YTEPMA0GA1UEBxMGTmVwZWFuMR4wHAYDVQQLExVObyBMaWFiaWxpdHkgQWNjZXB0
+ZWQxHzAdBgNVBAoTFkZvciBEZW1vIFB1cnBvc2VzIE9ubHkxHDAaBgNVBAMTE0Vu
+dHJ1c3QgRGVtbyBXZWIgQ0EwHhcNOTYwNzEyMTQyMDE1WhcNOTYxMDEyMTQyMDE1
+WjB0MSQwIgYJKoZIhvcNAQkBExVjb29rZUBpc3NsLmF0bC5ocC5jb20xCzAJBgNV
+BAYTAlVTMScwJQYDVQQLEx5IZXdsZXR0IFBhY2thcmQgQ29tcGFueSAoSVNTTCkx
+FjAUBgNVBAMTDVBhdWwgQS4gQ29va2UwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+6ceSq9a9AU6g+zBwaL/yVmW1/9EE8s5you1mgjHnj0wAILuoB3L6rm6jmFRy7QZT
+G43IhVZdDua4e+5/n1ZslwIDAQABo2MwYTARBglghkgBhvhCAQEEBAMCB4AwTAYJ
+YIZIAYb4QgENBD8WPVRoaXMgY2VydGlmaWNhdGUgaXMgb25seSBpbnRlbmRlZCBm
+b3IgZGVtb25zdHJhdGlvbiBwdXJwb3Nlcy4wDQYJKoZIhvcNAQEEBQADgYEAi8qc
+F3zfFqy1sV8NhjwLVwOKuSfhR/Z8mbIEUeSTlnH3QbYt3HWZQ+vXI8mvtZoBc2Fz
+lexKeIkAZXCesqGbs6z6nCt16P6tmdfbZF3I3AWzLquPcOXjPf4HgstkyvVBn0Ap
+jAFN418KF/Cx4qyHB4cjdvLrRjjQLnb2+ibo7QU=
+-----END CERTIFICATE-----
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/v3ext.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/v3ext.c
new file mode 100644
index 000000000..14ae49969
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/v3ext.c
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <openssl/x509.h>
+#include <openssl/x509v3.h>
+#include <openssl/pem.h>
+#include <openssl/err.h>
+
+#include "testutil.h"
+
+static const char *infile;
+
+static int test_pathlen(void)
+{
+ X509 *x = NULL;
+ BIO *b = NULL;
+ long pathlen;
+ int ret = 0;
+
+ if (!TEST_ptr(b = BIO_new_file(infile, "r"))
+ || !TEST_ptr(x = PEM_read_bio_X509(b, NULL, NULL, NULL))
+ || !TEST_int_eq(pathlen = X509_get_pathlen(x), 6))
+ goto end;
+
+ ret = 1;
+
+end:
+ BIO_free(b);
+ X509_free(x);
+ return ret;
+}
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(infile = test_get_argument(0)))
+ return 0;
+
+ ADD_TEST(test_pathlen);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/v3nametest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/v3nametest.c
new file mode 100644
index 000000000..86f3829ae
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/v3nametest.c
@@ -0,0 +1,366 @@
+/*
+ * Copyright 2012-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+
+#include <openssl/e_os2.h>
+#include <openssl/x509.h>
+#include <openssl/x509v3.h>
+#include "internal/nelem.h"
+#include "testutil.h"
+
+#ifdef OPENSSL_SYS_WINDOWS
+# define strcasecmp _stricmp
+#endif
+
+static const char *const names[] = {
+ "a", "b", ".", "*", "@",
+ ".a", "a.", ".b", "b.", ".*", "*.", "*@", "@*", "a@", "@a", "b@", "..",
+ "-example.com", "example-.com",
+ "@@", "**", "*.com", "*com", "*.*.com", "*com", "com*", "*example.com",
+ "*@example.com", "test@*.example.com", "example.com", "www.example.com",
+ "test.www.example.com", "*.example.com", "*.www.example.com",
+ "test.*.example.com", "www.*.com",
+ ".www.example.com", "*www.example.com",
+ "example.net", "xn--rger-koa.example.com",
+ "*.xn--rger-koa.example.com", "www.xn--rger-koa.example.com",
+ "*.good--example.com", "www.good--example.com",
+ "*.xn--bar.com", "xn--foo.xn--bar.com",
+ "a.example.com", "b.example.com",
+ "postmaster@example.com", "Postmaster@example.com",
+ "postmaster@EXAMPLE.COM",
+ NULL
+};
+
+static const char *const exceptions[] = {
+ "set CN: host: [*.example.com] matches [a.example.com]",
+ "set CN: host: [*.example.com] matches [b.example.com]",
+ "set CN: host: [*.example.com] matches [www.example.com]",
+ "set CN: host: [*.example.com] matches [xn--rger-koa.example.com]",
+ "set CN: host: [*.www.example.com] matches [test.www.example.com]",
+ "set CN: host: [*.www.example.com] matches [.www.example.com]",
+ "set CN: host: [*www.example.com] matches [www.example.com]",
+ "set CN: host: [test.www.example.com] matches [.www.example.com]",
+ "set CN: host: [*.xn--rger-koa.example.com] matches [www.xn--rger-koa.example.com]",
+ "set CN: host: [*.xn--bar.com] matches [xn--foo.xn--bar.com]",
+ "set CN: host: [*.good--example.com] matches [www.good--example.com]",
+ "set CN: host-no-wildcards: [*.www.example.com] matches [.www.example.com]",
+ "set CN: host-no-wildcards: [test.www.example.com] matches [.www.example.com]",
+ "set emailAddress: email: [postmaster@example.com] does not match [Postmaster@example.com]",
+ "set emailAddress: email: [postmaster@EXAMPLE.COM] does not match [Postmaster@example.com]",
+ "set emailAddress: email: [Postmaster@example.com] does not match [postmaster@example.com]",
+ "set emailAddress: email: [Postmaster@example.com] does not match [postmaster@EXAMPLE.COM]",
+ "set dnsName: host: [*.example.com] matches [www.example.com]",
+ "set dnsName: host: [*.example.com] matches [a.example.com]",
+ "set dnsName: host: [*.example.com] matches [b.example.com]",
+ "set dnsName: host: [*.example.com] matches [xn--rger-koa.example.com]",
+ "set dnsName: host: [*.www.example.com] matches [test.www.example.com]",
+ "set dnsName: host-no-wildcards: [*.www.example.com] matches [.www.example.com]",
+ "set dnsName: host-no-wildcards: [test.www.example.com] matches [.www.example.com]",
+ "set dnsName: host: [*.www.example.com] matches [.www.example.com]",
+ "set dnsName: host: [*www.example.com] matches [www.example.com]",
+ "set dnsName: host: [test.www.example.com] matches [.www.example.com]",
+ "set dnsName: host: [*.xn--rger-koa.example.com] matches [www.xn--rger-koa.example.com]",
+ "set dnsName: host: [*.xn--bar.com] matches [xn--foo.xn--bar.com]",
+ "set dnsName: host: [*.good--example.com] matches [www.good--example.com]",
+ "set rfc822Name: email: [postmaster@example.com] does not match [Postmaster@example.com]",
+ "set rfc822Name: email: [Postmaster@example.com] does not match [postmaster@example.com]",
+ "set rfc822Name: email: [Postmaster@example.com] does not match [postmaster@EXAMPLE.COM]",
+ "set rfc822Name: email: [postmaster@EXAMPLE.COM] does not match [Postmaster@example.com]",
+ NULL
+};
+
+static int is_exception(const char *msg)
+{
+ const char *const *p;
+
+ for (p = exceptions; *p; ++p)
+ if (strcmp(msg, *p) == 0)
+ return 1;
+ return 0;
+}
+
+static int set_cn(X509 *crt, ...)
+{
+ int ret = 0;
+ X509_NAME *n = NULL;
+ va_list ap;
+
+ va_start(ap, crt);
+ n = X509_NAME_new();
+ if (n == NULL)
+ goto out;
+
+ while (1) {
+ int nid;
+ const char *name;
+
+ nid = va_arg(ap, int);
+ if (nid == 0)
+ break;
+ name = va_arg(ap, const char *);
+ if (!X509_NAME_add_entry_by_NID(n, nid, MBSTRING_ASC,
+ (unsigned char *)name, -1, -1, 1))
+ goto out;
+ }
+ if (!X509_set_subject_name(crt, n))
+ goto out;
+ ret = 1;
+ out:
+ X509_NAME_free(n);
+ va_end(ap);
+ return ret;
+}
+
+/*-
+int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc);
+X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex,
+ int nid, int crit, ASN1_OCTET_STRING *data);
+int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc);
+*/
+
+static int set_altname(X509 *crt, ...)
+{
+ int ret = 0;
+ GENERAL_NAMES *gens = NULL;
+ GENERAL_NAME *gen = NULL;
+ ASN1_IA5STRING *ia5 = NULL;
+ va_list ap;
+ va_start(ap, crt);
+ gens = sk_GENERAL_NAME_new_null();
+ if (gens == NULL)
+ goto out;
+ while (1) {
+ int type;
+ const char *name;
+ type = va_arg(ap, int);
+ if (type == 0)
+ break;
+ name = va_arg(ap, const char *);
+
+ gen = GENERAL_NAME_new();
+ if (gen == NULL)
+ goto out;
+ ia5 = ASN1_IA5STRING_new();
+ if (ia5 == NULL)
+ goto out;
+ if (!ASN1_STRING_set(ia5, name, -1))
+ goto out;
+ switch (type) {
+ case GEN_EMAIL:
+ case GEN_DNS:
+ GENERAL_NAME_set0_value(gen, type, ia5);
+ ia5 = NULL;
+ break;
+ default:
+ abort();
+ }
+ sk_GENERAL_NAME_push(gens, gen);
+ gen = NULL;
+ }
+ if (!X509_add1_ext_i2d(crt, NID_subject_alt_name, gens, 0, 0))
+ goto out;
+ ret = 1;
+ out:
+ ASN1_IA5STRING_free(ia5);
+ GENERAL_NAME_free(gen);
+ GENERAL_NAMES_free(gens);
+ va_end(ap);
+ return ret;
+}
+
+static int set_cn1(X509 *crt, const char *name)
+{
+ return set_cn(crt, NID_commonName, name, 0);
+}
+
+static int set_cn_and_email(X509 *crt, const char *name)
+{
+ return set_cn(crt, NID_commonName, name,
+ NID_pkcs9_emailAddress, "dummy@example.com", 0);
+}
+
+static int set_cn2(X509 *crt, const char *name)
+{
+ return set_cn(crt, NID_commonName, "dummy value",
+ NID_commonName, name, 0);
+}
+
+static int set_cn3(X509 *crt, const char *name)
+{
+ return set_cn(crt, NID_commonName, name,
+ NID_commonName, "dummy value", 0);
+}
+
+static int set_email1(X509 *crt, const char *name)
+{
+ return set_cn(crt, NID_pkcs9_emailAddress, name, 0);
+}
+
+static int set_email2(X509 *crt, const char *name)
+{
+ return set_cn(crt, NID_pkcs9_emailAddress, "dummy@example.com",
+ NID_pkcs9_emailAddress, name, 0);
+}
+
+static int set_email3(X509 *crt, const char *name)
+{
+ return set_cn(crt, NID_pkcs9_emailAddress, name,
+ NID_pkcs9_emailAddress, "dummy@example.com", 0);
+}
+
+static int set_email_and_cn(X509 *crt, const char *name)
+{
+ return set_cn(crt, NID_pkcs9_emailAddress, name,
+ NID_commonName, "www.example.org", 0);
+}
+
+static int set_altname_dns(X509 *crt, const char *name)
+{
+ return set_altname(crt, GEN_DNS, name, 0);
+}
+
+static int set_altname_email(X509 *crt, const char *name)
+{
+ return set_altname(crt, GEN_EMAIL, name, 0);
+}
+
+struct set_name_fn {
+ int (*fn) (X509 *, const char *);
+ const char *name;
+ int host;
+ int email;
+};
+
+static const struct set_name_fn name_fns[] = {
+ {set_cn1, "set CN", 1, 0},
+ {set_cn2, "set CN", 1, 0},
+ {set_cn3, "set CN", 1, 0},
+ {set_cn_and_email, "set CN", 1, 0},
+ {set_email1, "set emailAddress", 0, 1},
+ {set_email2, "set emailAddress", 0, 1},
+ {set_email3, "set emailAddress", 0, 1},
+ {set_email_and_cn, "set emailAddress", 0, 1},
+ {set_altname_dns, "set dnsName", 1, 0},
+ {set_altname_email, "set rfc822Name", 0, 1},
+};
+
+static X509 *make_cert(void)
+{
+ X509 *crt = NULL;
+
+ if (!TEST_ptr(crt = X509_new()))
+ return NULL;
+ if (!TEST_true(X509_set_version(crt, 2))) {
+ X509_free(crt);
+ return NULL;
+ }
+ return crt;
+}
+
+static int check_message(const struct set_name_fn *fn, const char *op,
+ const char *nameincert, int match, const char *name)
+{
+ char msg[1024];
+
+ if (match < 0)
+ return 1;
+ BIO_snprintf(msg, sizeof(msg), "%s: %s: [%s] %s [%s]",
+ fn->name, op, nameincert,
+ match ? "matches" : "does not match", name);
+ if (is_exception(msg))
+ return 1;
+ TEST_error("%s", msg);
+ return 0;
+}
+
+static int run_cert(X509 *crt, const char *nameincert,
+ const struct set_name_fn *fn)
+{
+ const char *const *pname = names;
+ int failed = 0;
+
+ for (; *pname != NULL; ++pname) {
+ int samename = strcasecmp(nameincert, *pname) == 0;
+ size_t namelen = strlen(*pname);
+ char *name = OPENSSL_malloc(namelen);
+ int match, ret;
+
+ memcpy(name, *pname, namelen);
+
+ match = -1;
+ if (!TEST_int_ge(ret = X509_check_host(crt, name, namelen, 0, NULL),
+ 0)) {
+ failed = 1;
+ } else if (fn->host) {
+ if (ret == 1 && !samename)
+ match = 1;
+ if (ret == 0 && samename)
+ match = 0;
+ } else if (ret == 1)
+ match = 1;
+ if (!TEST_true(check_message(fn, "host", nameincert, match, *pname)))
+ failed = 1;
+
+ match = -1;
+ if (!TEST_int_ge(ret = X509_check_host(crt, name, namelen,
+ X509_CHECK_FLAG_NO_WILDCARDS,
+ NULL), 0)) {
+ failed = 1;
+ } else if (fn->host) {
+ if (ret == 1 && !samename)
+ match = 1;
+ if (ret == 0 && samename)
+ match = 0;
+ } else if (ret == 1)
+ match = 1;
+ if (!TEST_true(check_message(fn, "host-no-wildcards",
+ nameincert, match, *pname)))
+ failed = 1;
+
+ match = -1;
+ ret = X509_check_email(crt, name, namelen, 0);
+ if (fn->email) {
+ if (ret && !samename)
+ match = 1;
+ if (!ret && samename && strchr(nameincert, '@') != NULL)
+ match = 0;
+ } else if (ret)
+ match = 1;
+ if (!TEST_true(check_message(fn, "email", nameincert, match, *pname)))
+ failed = 1;
+ OPENSSL_free(name);
+ }
+
+ return failed == 0;
+}
+
+static int call_run_cert(int i)
+{
+ int failed = 0;
+ const struct set_name_fn *pfn = &name_fns[i];
+ X509 *crt;
+ const char *const *pname;
+
+ TEST_info("%s", pfn->name);
+ for (pname = names; *pname != NULL; pname++) {
+ if (!TEST_ptr(crt = make_cert())
+ || !TEST_true(pfn->fn(crt, *pname))
+ || !run_cert(crt, *pname, pfn))
+ failed = 1;
+ X509_free(crt);
+ }
+ return failed == 0;
+}
+
+int setup_tests(void)
+{
+ ADD_ALL_TESTS(call_run_cert, OSSL_NELEM(name_fns));
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/verify_extra_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/verify_extra_test.c
new file mode 100644
index 000000000..d9d149895
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/verify_extra_test.c
@@ -0,0 +1,190 @@
+/*
+ * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <openssl/crypto.h>
+#include <openssl/bio.h>
+#include <openssl/x509.h>
+#include <openssl/pem.h>
+#include <openssl/err.h>
+#include "testutil.h"
+
+static const char *roots_f;
+static const char *untrusted_f;
+static const char *bad_f;
+
+static STACK_OF(X509) *load_certs_from_file(const char *filename)
+{
+ STACK_OF(X509) *certs;
+ BIO *bio;
+ X509 *x;
+
+ bio = BIO_new_file(filename, "r");
+
+ if (bio == NULL) {
+ return NULL;
+ }
+
+ certs = sk_X509_new_null();
+ if (certs == NULL) {
+ BIO_free(bio);
+ return NULL;
+ }
+
+ ERR_set_mark();
+ do {
+ x = PEM_read_bio_X509(bio, NULL, 0, NULL);
+ if (x != NULL && !sk_X509_push(certs, x)) {
+ sk_X509_pop_free(certs, X509_free);
+ BIO_free(bio);
+ return NULL;
+ } else if (x == NULL) {
+ /*
+ * We probably just ran out of certs, so ignore any errors
+ * generated
+ */
+ ERR_pop_to_mark();
+ }
+ } while (x != NULL);
+
+ BIO_free(bio);
+
+ return certs;
+}
+
+/*
+ * Test for CVE-2015-1793 (Alternate Chains Certificate Forgery)
+ *
+ * Chain is as follows:
+ *
+ * rootCA (self-signed)
+ * |
+ * interCA
+ * |
+ * subinterCA subinterCA (self-signed)
+ * | |
+ * leaf ------------------
+ * |
+ * bad
+ *
+ * rootCA, interCA, subinterCA, subinterCA (ss) all have CA=TRUE
+ * leaf and bad have CA=FALSE
+ *
+ * subinterCA and subinterCA (ss) have the same subject name and keys
+ *
+ * interCA (but not rootCA) and subinterCA (ss) are in the trusted store
+ * (roots.pem)
+ * leaf and subinterCA are in the untrusted list (untrusted.pem)
+ * bad is the certificate being verified (bad.pem)
+ *
+ * Versions vulnerable to CVE-2015-1793 will fail to detect that leaf has
+ * CA=FALSE, and will therefore incorrectly verify bad
+ *
+ */
+static int test_alt_chains_cert_forgery(void)
+{
+ int ret = 0;
+ int i;
+ X509 *x = NULL;
+ STACK_OF(X509) *untrusted = NULL;
+ BIO *bio = NULL;
+ X509_STORE_CTX *sctx = NULL;
+ X509_STORE *store = NULL;
+ X509_LOOKUP *lookup = NULL;
+
+ store = X509_STORE_new();
+ if (store == NULL)
+ goto err;
+
+ lookup = X509_STORE_add_lookup(store, X509_LOOKUP_file());
+ if (lookup == NULL)
+ goto err;
+ if (!X509_LOOKUP_load_file(lookup, roots_f, X509_FILETYPE_PEM))
+ goto err;
+
+ untrusted = load_certs_from_file(untrusted_f);
+
+ if ((bio = BIO_new_file(bad_f, "r")) == NULL)
+ goto err;
+
+ if ((x = PEM_read_bio_X509(bio, NULL, 0, NULL)) == NULL)
+ goto err;
+
+ sctx = X509_STORE_CTX_new();
+ if (sctx == NULL)
+ goto err;
+
+ if (!X509_STORE_CTX_init(sctx, store, x, untrusted))
+ goto err;
+
+ i = X509_verify_cert(sctx);
+
+ if (i == 0 && X509_STORE_CTX_get_error(sctx) == X509_V_ERR_INVALID_CA) {
+ /* This is the result we were expecting: Test passed */
+ ret = 1;
+ }
+ err:
+ X509_STORE_CTX_free(sctx);
+ X509_free(x);
+ BIO_free(bio);
+ sk_X509_pop_free(untrusted, X509_free);
+ X509_STORE_free(store);
+ return ret;
+}
+
+static int test_store_ctx(void)
+{
+ X509_STORE_CTX *sctx = NULL;
+ X509 *x = NULL;
+ BIO *bio = NULL;
+ int testresult = 0, ret;
+
+ bio = BIO_new_file(bad_f, "r");
+ if (bio == NULL)
+ goto err;
+
+ x = PEM_read_bio_X509(bio, NULL, 0, NULL);
+ if (x == NULL)
+ goto err;
+
+ sctx = X509_STORE_CTX_new();
+ if (sctx == NULL)
+ goto err;
+
+ if (!X509_STORE_CTX_init(sctx, NULL, x, NULL))
+ goto err;
+
+ /* Verifying a cert where we have no trusted certs should fail */
+ ret = X509_verify_cert(sctx);
+
+ if (ret == 0) {
+ /* This is the result we were expecting: Test passed */
+ testresult = 1;
+ }
+
+ err:
+ X509_STORE_CTX_free(sctx);
+ X509_free(x);
+ BIO_free(bio);
+ return testresult;
+}
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(roots_f = test_get_argument(0))
+ || !TEST_ptr(untrusted_f = test_get_argument(1))
+ || !TEST_ptr(bad_f = test_get_argument(2))) {
+ TEST_error("usage: verify_extra_test roots.pem untrusted.pem bad.pem\n");
+ return 0;
+ }
+
+ ADD_TEST(test_alt_chains_cert_forgery);
+ ADD_TEST(test_store_ctx);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/versions.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/versions.c
new file mode 100644
index 000000000..3ab05ec35
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/versions.c
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <openssl/opensslv.h>
+#include <openssl/crypto.h>
+
+/* A simple helper for the perl function OpenSSL::Test::openssl_versions */
+int main(void)
+{
+ printf("Build version: 0x%08lX\n", OPENSSL_VERSION_NUMBER);
+ printf("Library version: 0x%08lX\n", OpenSSL_version_num());
+ return 0;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/wpackettest.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/wpackettest.c
new file mode 100644
index 000000000..4c779c875
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/wpackettest.c
@@ -0,0 +1,380 @@
+/*
+ * Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <string.h>
+#include <openssl/buffer.h>
+
+#ifdef __VMS
+# pragma names save
+# pragma names as_is,shortened
+#endif
+
+#include "../ssl/packet_local.h"
+
+#ifdef __VMS
+# pragma names restore
+#endif
+
+#include "testutil.h"
+
+static const unsigned char simple1[] = { 0xff };
+static const unsigned char simple2[] = { 0x01, 0xff };
+static const unsigned char simple3[] = { 0x00, 0x00, 0x00, 0x01, 0xff };
+static const unsigned char nestedsub[] = { 0x03, 0xff, 0x01, 0xff };
+static const unsigned char seqsub[] = { 0x01, 0xff, 0x01, 0xff };
+static const unsigned char empty[] = { 0x00 };
+static const unsigned char alloc[] = { 0x02, 0xfe, 0xff };
+static const unsigned char submem[] = { 0x03, 0x02, 0xfe, 0xff };
+static const unsigned char fixed[] = { 0xff, 0xff, 0xff };
+
+static BUF_MEM *buf;
+
+static int cleanup(WPACKET *pkt)
+{
+ WPACKET_cleanup(pkt);
+ return 0;
+}
+
+static int test_WPACKET_init(void)
+{
+ WPACKET pkt;
+ int i;
+ size_t written;
+ unsigned char sbuf[3];
+
+ if (!TEST_true(WPACKET_init(&pkt, buf))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ /* Closing a top level WPACKET should fail */
+ || !TEST_false(WPACKET_close(&pkt))
+ /* Finishing a top level WPACKET should succeed */
+ || !TEST_true(WPACKET_finish(&pkt))
+ /*
+ * Can't call close or finish on a WPACKET that's already
+ * finished.
+ */
+ || !TEST_false(WPACKET_close(&pkt))
+ || !TEST_false(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, simple1, sizeof(simple1)))
+ return cleanup(&pkt);
+
+ /* Now try with a one byte length prefix */
+ if (!TEST_true(WPACKET_init_len(&pkt, buf, 1))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, simple2, sizeof(simple2)))
+ return cleanup(&pkt);
+
+ /* And a longer length prefix */
+ if (!TEST_true(WPACKET_init_len(&pkt, buf, 4))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, simple3, sizeof(simple3)))
+ return cleanup(&pkt);
+
+ if (!TEST_true(WPACKET_init_len(&pkt, buf, 1)))
+ return cleanup(&pkt);
+ for (i = 1; i < 257; i++) {
+ /*
+ * Putting more bytes in than fit for the size of the length prefix
+ * should fail
+ */
+ if (!TEST_int_eq(WPACKET_put_bytes_u8(&pkt, 0xff), i < 256))
+ return cleanup(&pkt);
+ }
+ if (!TEST_true(WPACKET_finish(&pkt)))
+ return cleanup(&pkt);
+
+ /* Test initialising from a fixed size buffer */
+ if (!TEST_true(WPACKET_init_static_len(&pkt, sbuf, sizeof(sbuf), 0))
+ /* Adding 3 bytes should succeed */
+ || !TEST_true(WPACKET_put_bytes_u24(&pkt, 0xffffff))
+ /* Adding 1 more byte should fail */
+ || !TEST_false(WPACKET_put_bytes_u8(&pkt, 0xff))
+ /* Finishing the top level WPACKET should succeed */
+ || !TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(sbuf, written, fixed, sizeof(sbuf))
+ /* Initialise with 1 len byte */
+ || !TEST_true(WPACKET_init_static_len(&pkt, sbuf, sizeof(sbuf), 1))
+ /* Adding 2 bytes should succeed */
+ || !TEST_true(WPACKET_put_bytes_u16(&pkt, 0xfeff))
+ /* Adding 1 more byte should fail */
+ || !TEST_false(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(sbuf, written, alloc, sizeof(alloc)))
+ return cleanup(&pkt);
+
+ return 1;
+}
+
+static int test_WPACKET_set_max_size(void)
+{
+ WPACKET pkt;
+ size_t written;
+
+ if (!TEST_true(WPACKET_init(&pkt, buf))
+ /*
+ * No previous lenbytes set so we should be ok to set the max
+ * possible max size
+ */
+ || !TEST_true(WPACKET_set_max_size(&pkt, SIZE_MAX))
+ /* We should be able to set it smaller too */
+ || !TEST_true(WPACKET_set_max_size(&pkt, SIZE_MAX -1))
+ /* And setting it bigger again should be ok */
+ || !TEST_true(WPACKET_set_max_size(&pkt, SIZE_MAX))
+ || !TEST_true(WPACKET_finish(&pkt)))
+ return cleanup(&pkt);
+
+ if (!TEST_true(WPACKET_init_len(&pkt, buf, 1))
+ /*
+ * Should fail because we already consumed 1 byte with the
+ * length
+ */
+ || !TEST_false(WPACKET_set_max_size(&pkt, 0))
+ /*
+ * Max size can't be bigger than biggest that will fit in
+ * lenbytes
+ */
+ || !TEST_false(WPACKET_set_max_size(&pkt, 0x0101))
+ /* It can be the same as the maximum possible size */
+ || !TEST_true(WPACKET_set_max_size(&pkt, 0x0100))
+ /* Or it can be less */
+ || !TEST_true(WPACKET_set_max_size(&pkt, 0x01))
+ /* Should fail because packet is already filled */
+ || !TEST_false(WPACKET_put_bytes_u8(&pkt, 0xff))
+ /* You can't put in more bytes than max size */
+ || !TEST_true(WPACKET_set_max_size(&pkt, 0x02))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_false(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, simple2, sizeof(simple2)))
+ return cleanup(&pkt);
+
+ return 1;
+}
+
+static int test_WPACKET_start_sub_packet(void)
+{
+ WPACKET pkt;
+ size_t written;
+ size_t len;
+
+ if (!TEST_true(WPACKET_init(&pkt, buf))
+ || !TEST_true(WPACKET_start_sub_packet(&pkt))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ /* Can't finish because we have a sub packet */
+ || !TEST_false(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_close(&pkt))
+ /* Sub packet is closed so can't close again */
+ || !TEST_false(WPACKET_close(&pkt))
+ /* Now a top level so finish should succeed */
+ || !TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, simple1, sizeof(simple1)))
+ return cleanup(&pkt);
+
+ /* Single sub-packet with length prefix */
+ if (!TEST_true(WPACKET_init(&pkt, buf))
+ || !TEST_true(WPACKET_start_sub_packet_u8(&pkt))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_true(WPACKET_close(&pkt))
+ || !TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, simple2, sizeof(simple2)))
+ return cleanup(&pkt);
+
+ /* Nested sub-packets with length prefixes */
+ if (!TEST_true(WPACKET_init(&pkt, buf))
+ || !TEST_true(WPACKET_start_sub_packet_u8(&pkt))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_true(WPACKET_start_sub_packet_u8(&pkt))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_true(WPACKET_get_length(&pkt, &len))
+ || !TEST_size_t_eq(len, 1)
+ || !TEST_true(WPACKET_close(&pkt))
+ || !TEST_true(WPACKET_get_length(&pkt, &len))
+ || !TEST_size_t_eq(len, 3)
+ || !TEST_true(WPACKET_close(&pkt))
+ || !TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, nestedsub, sizeof(nestedsub)))
+ return cleanup(&pkt);
+
+ /* Sequential sub-packets with length prefixes */
+ if (!TEST_true(WPACKET_init(&pkt, buf))
+ || !TEST_true(WPACKET_start_sub_packet_u8(&pkt))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_true(WPACKET_close(&pkt))
+ || !TEST_true(WPACKET_start_sub_packet_u8(&pkt))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_true(WPACKET_close(&pkt))
+ || !TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, seqsub, sizeof(seqsub)))
+ return cleanup(&pkt);
+
+ /* Nested sub-packets with lengths filled before finish */
+ if (!TEST_true(WPACKET_init(&pkt, buf))
+ || !TEST_true(WPACKET_start_sub_packet_u8(&pkt))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_true(WPACKET_start_sub_packet_u8(&pkt))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_true(WPACKET_get_length(&pkt, &len))
+ || !TEST_size_t_eq(len, 1)
+ || !TEST_true(WPACKET_close(&pkt))
+ || !TEST_true(WPACKET_get_length(&pkt, &len))
+ || !TEST_size_t_eq(len, 3)
+ || !TEST_true(WPACKET_close(&pkt))
+ || !TEST_true(WPACKET_fill_lengths(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, nestedsub, sizeof(nestedsub))
+ || !TEST_true(WPACKET_finish(&pkt)))
+ return cleanup(&pkt);
+
+ return 1;
+}
+
+
+static int test_WPACKET_set_flags(void)
+{
+ WPACKET pkt;
+ size_t written;
+
+ /* Set packet to be non-zero length */
+ if (!TEST_true(WPACKET_init(&pkt, buf))
+ || !TEST_true(WPACKET_set_flags(&pkt, WPACKET_FLAGS_NON_ZERO_LENGTH))
+ /* Should fail because of zero length */
+ || !TEST_false(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, simple1, sizeof(simple1)))
+ return cleanup(&pkt);
+
+ /* Repeat above test in a sub-packet */
+ if (!TEST_true(WPACKET_init(&pkt, buf))
+ || !TEST_true(WPACKET_start_sub_packet(&pkt))
+ || !TEST_true(WPACKET_set_flags(&pkt, WPACKET_FLAGS_NON_ZERO_LENGTH))
+ /* Should fail because of zero length */
+ || !TEST_false(WPACKET_close(&pkt))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_true(WPACKET_close(&pkt))
+ || !TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, simple1, sizeof(simple1)))
+ return cleanup(&pkt);
+
+ /* Set packet to abandon non-zero length */
+ if (!TEST_true(WPACKET_init_len(&pkt, buf, 1))
+ || !TEST_true(WPACKET_set_flags(&pkt, WPACKET_FLAGS_ABANDON_ON_ZERO_LENGTH))
+ || !TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_size_t_eq(written, 0))
+ return cleanup(&pkt);
+
+ /* Repeat above test but only abandon a sub-packet */
+ if (!TEST_true(WPACKET_init_len(&pkt, buf, 1))
+ || !TEST_true(WPACKET_start_sub_packet_u8(&pkt))
+ || !TEST_true(WPACKET_set_flags(&pkt, WPACKET_FLAGS_ABANDON_ON_ZERO_LENGTH))
+ || !TEST_true(WPACKET_close(&pkt))
+ || !TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, empty, sizeof(empty)))
+ return cleanup(&pkt);
+
+ /* And repeat with a non empty sub-packet */
+ if (!TEST_true(WPACKET_init(&pkt, buf))
+ || !TEST_true(WPACKET_start_sub_packet_u8(&pkt))
+ || !TEST_true(WPACKET_set_flags(&pkt, WPACKET_FLAGS_ABANDON_ON_ZERO_LENGTH))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_true(WPACKET_close(&pkt))
+ || !TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, simple2, sizeof(simple2)))
+ return cleanup(&pkt);
+ return 1;
+}
+
+static int test_WPACKET_allocate_bytes(void)
+{
+ WPACKET pkt;
+ size_t written;
+ unsigned char *bytes;
+
+ if (!TEST_true(WPACKET_init_len(&pkt, buf, 1))
+ || !TEST_true(WPACKET_allocate_bytes(&pkt, 2, &bytes)))
+ return cleanup(&pkt);
+ bytes[0] = 0xfe;
+ bytes[1] = 0xff;
+ if (!TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, alloc, sizeof(alloc)))
+ return cleanup(&pkt);
+
+ /* Repeat with WPACKET_sub_allocate_bytes */
+ if (!TEST_true(WPACKET_init_len(&pkt, buf, 1))
+ || !TEST_true(WPACKET_sub_allocate_bytes_u8(&pkt, 2, &bytes)))
+ return cleanup(&pkt);
+ bytes[0] = 0xfe;
+ bytes[1] = 0xff;
+ if (!TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, submem, sizeof(submem)))
+ return cleanup(&pkt);
+
+ return 1;
+}
+
+static int test_WPACKET_memcpy(void)
+{
+ WPACKET pkt;
+ size_t written;
+ const unsigned char bytes[] = { 0xfe, 0xff };
+
+ if (!TEST_true(WPACKET_init_len(&pkt, buf, 1))
+ || !TEST_true(WPACKET_memcpy(&pkt, bytes, sizeof(bytes)))
+ || !TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, alloc, sizeof(alloc)))
+ return cleanup(&pkt);
+
+ /* Repeat with WPACKET_sub_memcpy() */
+ if (!TEST_true(WPACKET_init_len(&pkt, buf, 1))
+ || !TEST_true(WPACKET_sub_memcpy_u8(&pkt, bytes, sizeof(bytes)))
+ || !TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, submem, sizeof(submem)))
+ return cleanup(&pkt);
+
+ return 1;
+}
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(buf = BUF_MEM_new()))
+ return 0;
+
+ ADD_TEST(test_WPACKET_init);
+ ADD_TEST(test_WPACKET_set_max_size);
+ ADD_TEST(test_WPACKET_start_sub_packet);
+ ADD_TEST(test_WPACKET_set_flags);
+ ADD_TEST(test_WPACKET_allocate_bytes);
+ ADD_TEST(test_WPACKET_memcpy);
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+ BUF_MEM_free(buf);
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509_check_cert_pkey_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509_check_cert_pkey_test.c
new file mode 100644
index 000000000..1cad49e80
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509_check_cert_pkey_test.c
@@ -0,0 +1,122 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/pem.h>
+#include <openssl/x509.h>
+#include "testutil.h"
+
+/*
+ * c: path of a cert in PEM format
+ * k: path of a key in PEM format
+ * t: API type, "cert" for X509_ and "req" for X509_REQ_ APIs.
+ * e: expected, "ok" for success, "failed" for what should fail.
+ */
+static const char *c;
+static const char *k;
+static const char *t;
+static const char *e;
+
+static int test_x509_check_cert_pkey(void)
+{
+ BIO *bio = NULL;
+ X509 *x509 = NULL;
+ X509_REQ *x509_req = NULL;
+ EVP_PKEY *pkey = NULL;
+ int ret = 0, type = 0, expected = 0, result = 0;
+
+ /*
+ * we check them first thus if fails we don't need to do
+ * those PEM parsing operations.
+ */
+ if (strcmp(t, "cert") == 0) {
+ type = 1;
+ } else if (strcmp(t, "req") == 0) {
+ type = 2;
+ } else {
+ TEST_error("invalid 'type'");
+ goto failed;
+ }
+
+ if (strcmp(e, "ok") == 0) {
+ expected = 1;
+ } else if (strcmp(e, "failed") == 0) {
+ expected = 0;
+ } else {
+ TEST_error("invalid 'expected'");
+ goto failed;
+ }
+
+ /* process private key */
+ if (!TEST_ptr(bio = BIO_new_file(k, "r")))
+ goto failed;
+
+ if (!TEST_ptr(pkey = PEM_read_bio_PrivateKey(bio, NULL, NULL, NULL)))
+ goto failed;
+
+ BIO_free(bio);
+
+ /* process cert or cert request, use the same local var */
+ if (!TEST_ptr(bio = BIO_new_file(c, "r")))
+ goto failed;
+
+ switch (type) {
+ case 1:
+ x509 = PEM_read_bio_X509(bio, NULL, NULL, NULL);
+ if (x509 == NULL) {
+ TEST_error("read PEM x509 failed");
+ goto failed;
+ }
+
+ result = X509_check_private_key(x509, pkey);
+ break;
+ case 2:
+ x509_req = PEM_read_bio_X509_REQ(bio, NULL, NULL, NULL);
+ if (x509_req == NULL) {
+ TEST_error("read PEM x509 req failed");
+ goto failed;
+ }
+
+ result = X509_REQ_check_private_key(x509_req, pkey);
+ break;
+ default:
+ /* should never be here */
+ break;
+ }
+
+ if (!TEST_int_eq(result, expected)) {
+ TEST_error("check private key: expected: %d, got: %d", expected, result);
+ goto failed;
+ }
+
+ ret = 1;
+failed:
+ BIO_free(bio);
+ X509_free(x509);
+ X509_REQ_free(x509_req);
+ EVP_PKEY_free(pkey);
+ return ret;
+}
+
+int setup_tests(void)
+{
+ if (!TEST_ptr(c = test_get_argument(0))
+ || !TEST_ptr(k = test_get_argument(1))
+ || !TEST_ptr(t = test_get_argument(2))
+ || !TEST_ptr(e = test_get_argument(3))) {
+ TEST_note("usage: x509_check_cert_pkey cert.pem|cert.req"
+ " key.pem cert|req <expected>");
+ return 0;
+ }
+
+ ADD_TEST(test_x509_check_cert_pkey);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509_dup_cert_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509_dup_cert_test.c
new file mode 100644
index 000000000..e639c0194
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509_dup_cert_test.c
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <openssl/err.h>
+#include <openssl/x509_vfy.h>
+
+#include "testutil.h"
+
+static int test_509_dup_cert(int n)
+{
+ int ret = 0;
+ X509_STORE_CTX *sctx = NULL;
+ X509_STORE *store = NULL;
+ X509_LOOKUP *lookup = NULL;
+ const char *cert_f = test_get_argument(n);
+
+ if (TEST_ptr(store = X509_STORE_new())
+ && TEST_ptr(lookup = X509_STORE_add_lookup(store, X509_LOOKUP_file()))
+ && TEST_true(X509_load_cert_file(lookup, cert_f, X509_FILETYPE_PEM))
+ && TEST_true(X509_load_cert_file(lookup, cert_f, X509_FILETYPE_PEM)))
+ ret = 1;
+
+ X509_STORE_CTX_free(sctx);
+ X509_STORE_free(store);
+ return ret;
+}
+
+int setup_tests(void)
+{
+ size_t n = test_get_argument_count();
+
+ if (!TEST_int_gt(n, 0)) {
+ TEST_note("usage: x509_dup_cert_test cert.pem...");
+ return 0;
+ }
+
+ ADD_ALL_TESTS(test_509_dup_cert, n);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509_internal_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509_internal_test.c
new file mode 100644
index 000000000..d2f41d708
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509_internal_test.c
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/* Internal tests for the x509 and x509v3 modules */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/x509.h>
+#include <openssl/x509v3.h>
+#include "testutil.h"
+#include "internal/nelem.h"
+
+/**********************************************************************
+ *
+ * Test of x509v3
+ *
+ ***/
+
+#ifdef __VMS
+# pragma names save
+# pragma names as_is,shortened
+#endif
+
+#include "../crypto/x509v3/ext_dat.h"
+#include "../crypto/x509v3/standard_exts.h"
+
+#ifdef __VMS
+# pragma names restore
+#endif
+
+static int test_standard_exts(void)
+{
+ size_t i;
+ int prev = -1, good = 1;
+ const X509V3_EXT_METHOD **tmp;
+
+ tmp = standard_exts;
+ for (i = 0; i < OSSL_NELEM(standard_exts); i++, tmp++) {
+ if ((*tmp)->ext_nid < prev)
+ good = 0;
+ prev = (*tmp)->ext_nid;
+
+ }
+ if (!good) {
+ tmp = standard_exts;
+ TEST_error("Extensions out of order!");
+ for (i = 0; i < STANDARD_EXTENSION_COUNT; i++, tmp++)
+ TEST_note("%d : %s", (*tmp)->ext_nid, OBJ_nid2sn((*tmp)->ext_nid));
+ }
+ return good;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_standard_exts);
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509_time_test.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509_time_test.c
new file mode 100644
index 000000000..b6fd38a5c
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509_time_test.c
@@ -0,0 +1,493 @@
+/*
+ * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/* Tests for X509 time functions */
+
+#include <string.h>
+#include <time.h>
+
+#include <openssl/asn1.h>
+#include <openssl/x509.h>
+#include "testutil.h"
+#include "internal/nelem.h"
+
+typedef struct {
+ const char *data;
+ int type;
+ time_t cmp_time;
+ /* -1 if asn1_time <= cmp_time, 1 if asn1_time > cmp_time, 0 if error. */
+ int expected;
+} TESTDATA;
+
+typedef struct {
+ const char *data;
+ /* 0 for check-only mode, 1 for set-string mode */
+ int set_string;
+ /* 0 for error, 1 if succeed */
+ int expected;
+ /*
+ * The following 2 fields are ignored if set_string field is set to '0'
+ * (in check only mode).
+ *
+ * But they can still be ignored explicitly in set-string mode by:
+ * setting -1 to expected_type and setting NULL to expected_string.
+ *
+ * It's useful in a case of set-string mode but the expected result
+ * is a 'parsing error'.
+ */
+ int expected_type;
+ const char *expected_string;
+} TESTDATA_FORMAT;
+
+/*
+ * Actually, the "loose" mode has been tested in
+ * those time-compare-cases, so we may not test it again.
+ */
+static TESTDATA_FORMAT x509_format_tests[] = {
+ /* GeneralizedTime */
+ {
+ /* good format, check only */
+ "20170217180105Z", 0, 1, -1, NULL,
+ },
+ {
+ /* not leap year, check only */
+ "20170229180105Z", 0, 0, -1, NULL,
+ },
+ {
+ /* leap year, check only */
+ "20160229180105Z", 0, 1, -1, NULL,
+ },
+ {
+ /* SS is missing, check only */
+ "201702171801Z", 0, 0, -1, NULL,
+ },
+ {
+ /* fractional seconds, check only */
+ "20170217180105.001Z", 0, 0, -1, NULL,
+ },
+ {
+ /* time zone, check only */
+ "20170217180105+0800", 0, 0, -1, NULL,
+ },
+ {
+ /* SS is missing, set string */
+ "201702171801Z", 1, 0, -1, NULL,
+ },
+ {
+ /* fractional seconds, set string */
+ "20170217180105.001Z", 1, 0, -1, NULL,
+ },
+ {
+ /* time zone, set string */
+ "20170217180105+0800", 1, 0, -1, NULL,
+ },
+ {
+ /* good format, check returned 'turned' string */
+ "20170217180154Z", 1, 1, V_ASN1_UTCTIME, "170217180154Z",
+ },
+ {
+ /* good format, check returned string */
+ "20510217180154Z", 1, 1, V_ASN1_GENERALIZEDTIME, "20510217180154Z",
+ },
+ {
+ /* good format but out of UTC range, check returned string */
+ "19230419180154Z", 1, 1, V_ASN1_GENERALIZEDTIME, "19230419180154Z",
+ },
+ /* UTC */
+ {
+ /* SS is missing, check only */
+ "1702171801Z", 0, 0, -1, NULL,
+ },
+ {
+ /* not leap year, check only */
+ "050229180101Z", 0, 0, -1, NULL,
+ },
+ {
+ /* leap year, check only */
+ "040229180101Z", 0, 1, -1, NULL,
+ },
+ {
+ /* time zone, check only */
+ "170217180154+0800", 0, 0, -1, NULL,
+ },
+ {
+ /* SS is missing, set string */
+ "1702171801Z", 1, 0, -1, NULL,
+ },
+ {
+ /* time zone, set string */
+ "170217180154+0800", 1, 0, -1, NULL,
+ },
+ {
+ /* 2017, good format, check returned string */
+ "170217180154Z", 1, 1, V_ASN1_UTCTIME, "170217180154Z",
+ },
+ {
+ /* 1998, good format, check returned string */
+ "981223180154Z", 1, 1, V_ASN1_UTCTIME, "981223180154Z",
+ },
+};
+
+static TESTDATA x509_cmp_tests[] = {
+ {
+ "20170217180154Z", V_ASN1_GENERALIZEDTIME,
+ /* The same in seconds since epoch. */
+ 1487354514, -1,
+ },
+ {
+ "20170217180154Z", V_ASN1_GENERALIZEDTIME,
+ /* One second more. */
+ 1487354515, -1,
+ },
+ {
+ "20170217180154Z", V_ASN1_GENERALIZEDTIME,
+ /* One second less. */
+ 1487354513, 1,
+ },
+ /* Same as UTC time. */
+ {
+ "170217180154Z", V_ASN1_UTCTIME,
+ /* The same in seconds since epoch. */
+ 1487354514, -1,
+ },
+ {
+ "170217180154Z", V_ASN1_UTCTIME,
+ /* One second more. */
+ 1487354515, -1,
+ },
+ {
+ "170217180154Z", V_ASN1_UTCTIME,
+ /* One second less. */
+ 1487354513, 1,
+ },
+ /* UTCTime from the 20th century. */
+ {
+ "990217180154Z", V_ASN1_UTCTIME,
+ /* The same in seconds since epoch. */
+ 919274514, -1,
+ },
+ {
+ "990217180154Z", V_ASN1_UTCTIME,
+ /* One second more. */
+ 919274515, -1,
+ },
+ {
+ "990217180154Z", V_ASN1_UTCTIME,
+ /* One second less. */
+ 919274513, 1,
+ },
+ /* Various invalid formats. */
+ {
+ /* No trailing Z. */
+ "20170217180154", V_ASN1_GENERALIZEDTIME, 0, 0,
+ },
+ {
+ /* No trailing Z, UTCTime. */
+ "170217180154", V_ASN1_UTCTIME, 0, 0,
+ },
+ {
+ /* No seconds. */
+ "201702171801Z", V_ASN1_GENERALIZEDTIME, 0, 0,
+ },
+ {
+ /* No seconds, UTCTime. */
+ "1702171801Z", V_ASN1_UTCTIME, 0, 0,
+ },
+ {
+ /* Fractional seconds. */
+ "20170217180154.001Z", V_ASN1_GENERALIZEDTIME, 0, 0,
+ },
+ {
+ /* Fractional seconds, UTCTime. */
+ "170217180154.001Z", V_ASN1_UTCTIME, 0, 0,
+ },
+ {
+ /* Timezone offset. */
+ "20170217180154+0100", V_ASN1_GENERALIZEDTIME, 0, 0,
+ },
+ {
+ /* Timezone offset, UTCTime. */
+ "170217180154+0100", V_ASN1_UTCTIME, 0, 0,
+ },
+ {
+ /* Extra digits. */
+ "2017021718015400Z", V_ASN1_GENERALIZEDTIME, 0, 0,
+ },
+ {
+ /* Extra digits, UTCTime. */
+ "17021718015400Z", V_ASN1_UTCTIME, 0, 0,
+ },
+ {
+ /* Non-digits. */
+ "2017021718015aZ", V_ASN1_GENERALIZEDTIME, 0, 0,
+ },
+ {
+ /* Non-digits, UTCTime. */
+ "17021718015aZ", V_ASN1_UTCTIME, 0, 0,
+ },
+ {
+ /* Trailing garbage. */
+ "20170217180154Zlongtrailinggarbage", V_ASN1_GENERALIZEDTIME, 0, 0,
+ },
+ {
+ /* Trailing garbage, UTCTime. */
+ "170217180154Zlongtrailinggarbage", V_ASN1_UTCTIME, 0, 0,
+ },
+ {
+ /* Swapped type. */
+ "20170217180154Z", V_ASN1_UTCTIME, 0, 0,
+ },
+ {
+ /* Swapped type. */
+ "170217180154Z", V_ASN1_GENERALIZEDTIME, 0, 0,
+ },
+ {
+ /* Bad type. */
+ "20170217180154Z", V_ASN1_OCTET_STRING, 0, 0,
+ },
+};
+
+static int test_x509_cmp_time(int idx)
+{
+ ASN1_TIME t;
+ int result;
+
+ memset(&t, 0, sizeof(t));
+ t.type = x509_cmp_tests[idx].type;
+ t.data = (unsigned char*)(x509_cmp_tests[idx].data);
+ t.length = strlen(x509_cmp_tests[idx].data);
+ t.flags = 0;
+
+ result = X509_cmp_time(&t, &x509_cmp_tests[idx].cmp_time);
+ if (!TEST_int_eq(result, x509_cmp_tests[idx].expected)) {
+ TEST_info("test_x509_cmp_time(%d) failed: expected %d, got %d\n",
+ idx, x509_cmp_tests[idx].expected, result);
+ return 0;
+ }
+ return 1;
+}
+
+static int test_x509_cmp_time_current(void)
+{
+ time_t now = time(NULL);
+ /* Pick a day earlier and later, relative to any system clock. */
+ ASN1_TIME *asn1_before = NULL, *asn1_after = NULL;
+ int cmp_result, failed = 0;
+
+ asn1_before = ASN1_TIME_adj(NULL, now, -1, 0);
+ asn1_after = ASN1_TIME_adj(NULL, now, 1, 0);
+
+ cmp_result = X509_cmp_time(asn1_before, NULL);
+ if (!TEST_int_eq(cmp_result, -1))
+ failed = 1;
+
+ cmp_result = X509_cmp_time(asn1_after, NULL);
+ if (!TEST_int_eq(cmp_result, 1))
+ failed = 1;
+
+ ASN1_TIME_free(asn1_before);
+ ASN1_TIME_free(asn1_after);
+
+ return failed == 0;
+}
+
+static int test_x509_time(int idx)
+{
+ ASN1_TIME *t = NULL;
+ int result, rv = 0;
+
+ if (x509_format_tests[idx].set_string) {
+ /* set-string mode */
+ t = ASN1_TIME_new();
+ if (t == NULL) {
+ TEST_info("test_x509_time(%d) failed: internal error\n", idx);
+ return 0;
+ }
+ }
+
+ result = ASN1_TIME_set_string_X509(t, x509_format_tests[idx].data);
+ /* time string parsing result is always checked against what's expected */
+ if (!TEST_int_eq(result, x509_format_tests[idx].expected)) {
+ TEST_info("test_x509_time(%d) failed: expected %d, got %d\n",
+ idx, x509_format_tests[idx].expected, result);
+ goto out;
+ }
+
+ /* if t is not NULL but expected_type is ignored(-1), it is an 'OK' case */
+ if (t != NULL && x509_format_tests[idx].expected_type != -1) {
+ if (!TEST_int_eq(t->type, x509_format_tests[idx].expected_type)) {
+ TEST_info("test_x509_time(%d) failed: expected_type %d, got %d\n",
+ idx, x509_format_tests[idx].expected_type, t->type);
+ goto out;
+ }
+ }
+
+ /* if t is not NULL but expected_string is NULL, it is an 'OK' case too */
+ if (t != NULL && x509_format_tests[idx].expected_string) {
+ if (!TEST_str_eq((const char *)t->data,
+ x509_format_tests[idx].expected_string)) {
+ TEST_info("test_x509_time(%d) failed: expected_string %s, got %s\n",
+ idx, x509_format_tests[idx].expected_string, t->data);
+ goto out;
+ }
+ }
+
+ rv = 1;
+out:
+ if (t != NULL)
+ ASN1_TIME_free(t);
+ return rv;
+}
+
+static const struct {
+ int y, m, d;
+ int yd, wd;
+} day_of_week_tests[] = {
+ /*YYYY MM DD DoY DoW */
+ { 1900, 1, 1, 0, 1 },
+ { 1900, 2, 28, 58, 3 },
+ { 1900, 3, 1, 59, 4 },
+ { 1900, 12, 31, 364, 1 },
+ { 1901, 1, 1, 0, 2 },
+ { 1970, 1, 1, 0, 4 },
+ { 1999, 1, 10, 9, 0 },
+ { 1999, 12, 31, 364, 5 },
+ { 2000, 1, 1, 0, 6 },
+ { 2000, 2, 28, 58, 1 },
+ { 2000, 2, 29, 59, 2 },
+ { 2000, 3, 1, 60, 3 },
+ { 2000, 12, 31, 365, 0 },
+ { 2001, 1, 1, 0, 1 },
+ { 2008, 1, 1, 0, 2 },
+ { 2008, 2, 28, 58, 4 },
+ { 2008, 2, 29, 59, 5 },
+ { 2008, 3, 1, 60, 6 },
+ { 2008, 12, 31, 365, 3 },
+ { 2009, 1, 1, 0, 4 },
+ { 2011, 1, 1, 0, 6 },
+ { 2011, 2, 28, 58, 1 },
+ { 2011, 3, 1, 59, 2 },
+ { 2011, 12, 31, 364, 6 },
+ { 2012, 1, 1, 0, 0 },
+ { 2019, 1, 2, 1, 3 },
+ { 2019, 2, 2, 32, 6 },
+ { 2019, 3, 2, 60, 6 },
+ { 2019, 4, 2, 91, 2 },
+ { 2019, 5, 2, 121, 4 },
+ { 2019, 6, 2, 152, 0 },
+ { 2019, 7, 2, 182, 2 },
+ { 2019, 8, 2, 213, 5 },
+ { 2019, 9, 2, 244, 1 },
+ { 2019, 10, 2, 274, 3 },
+ { 2019, 11, 2, 305, 6 },
+ { 2019, 12, 2, 335, 1 },
+ { 2020, 1, 2, 1, 4 },
+ { 2020, 2, 2, 32, 0 },
+ { 2020, 3, 2, 61, 1 },
+ { 2020, 4, 2, 92, 4 },
+ { 2020, 5, 2, 122, 6 },
+ { 2020, 6, 2, 153, 2 },
+ { 2020, 7, 2, 183, 4 },
+ { 2020, 8, 2, 214, 0 },
+ { 2020, 9, 2, 245, 3 },
+ { 2020, 10, 2, 275, 5 },
+ { 2020, 11, 2, 306, 1 },
+ { 2020, 12, 2, 336, 3 }
+};
+
+static int test_days(int n)
+{
+ char d[16];
+ ASN1_TIME *a = NULL;
+ struct tm t;
+ int r;
+
+ BIO_snprintf(d, sizeof(d), "%04d%02d%02d050505Z",
+ day_of_week_tests[n].y, day_of_week_tests[n].m,
+ day_of_week_tests[n].d);
+
+ if (!TEST_ptr(a = ASN1_TIME_new()))
+ return 0;
+
+ r = TEST_true(ASN1_TIME_set_string(a, d))
+ && TEST_true(ASN1_TIME_to_tm(a, &t))
+ && TEST_int_eq(t.tm_yday, day_of_week_tests[n].yd)
+ && TEST_int_eq(t.tm_wday, day_of_week_tests[n].wd);
+
+ ASN1_TIME_free(a);
+ return r;
+}
+
+#define construct_asn1_time(s, t, e) \
+ { { sizeof(s) - 1, t, (unsigned char*)s, 0 }, e }
+
+static const struct {
+ ASN1_TIME asn1;
+ const char *readable;
+} x509_print_tests [] = {
+ /* Generalized Time */
+ construct_asn1_time("20170731222050Z", V_ASN1_GENERALIZEDTIME,
+ "Jul 31 22:20:50 2017 GMT"),
+ /* Generalized Time, no seconds */
+ construct_asn1_time("201707312220Z", V_ASN1_GENERALIZEDTIME,
+ "Jul 31 22:20:00 2017 GMT"),
+ /* Generalized Time, fractional seconds (3 digits) */
+ construct_asn1_time("20170731222050.123Z", V_ASN1_GENERALIZEDTIME,
+ "Jul 31 22:20:50.123 2017 GMT"),
+ /* Generalized Time, fractional seconds (1 digit) */
+ construct_asn1_time("20170731222050.1Z", V_ASN1_GENERALIZEDTIME,
+ "Jul 31 22:20:50.1 2017 GMT"),
+ /* Generalized Time, fractional seconds (0 digit) */
+ construct_asn1_time("20170731222050.Z", V_ASN1_GENERALIZEDTIME,
+ "Bad time value"),
+ /* UTC Time */
+ construct_asn1_time("170731222050Z", V_ASN1_UTCTIME,
+ "Jul 31 22:20:50 2017 GMT"),
+ /* UTC Time, no seconds */
+ construct_asn1_time("1707312220Z", V_ASN1_UTCTIME,
+ "Jul 31 22:20:00 2017 GMT"),
+};
+
+static int test_x509_time_print(int idx)
+{
+ BIO *m;
+ int ret = 0, rv;
+ char *pp;
+ const char *readable;
+
+ if (!TEST_ptr(m = BIO_new(BIO_s_mem())))
+ goto err;
+
+ rv = ASN1_TIME_print(m, &x509_print_tests[idx].asn1);
+ readable = x509_print_tests[idx].readable;
+
+ if (rv == 0 && !TEST_str_eq(readable, "Bad time value")) {
+ /* only if the test case intends to fail... */
+ goto err;
+ }
+ if (!TEST_int_ne(rv = BIO_get_mem_data(m, &pp), 0)
+ || !TEST_int_eq(rv, (int)strlen(readable))
+ || !TEST_strn_eq(pp, readable, rv))
+ goto err;
+
+ ret = 1;
+ err:
+ BIO_free(m);
+ return ret;
+}
+
+int setup_tests(void)
+{
+ ADD_TEST(test_x509_cmp_time_current);
+ ADD_ALL_TESTS(test_x509_cmp_time, OSSL_NELEM(x509_cmp_tests));
+ ADD_ALL_TESTS(test_x509_time, OSSL_NELEM(x509_format_tests));
+ ADD_ALL_TESTS(test_days, OSSL_NELEM(day_of_week_tests));
+ ADD_ALL_TESTS(test_x509_time_print, OSSL_NELEM(x509_print_tests));
+ return 1;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509aux.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509aux.c
new file mode 100644
index 000000000..e41f1f680
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/test/x509aux.c
@@ -0,0 +1,175 @@
+/*
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL licenses, (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * https://www.openssl.org/source/license.html
+ * or in the file LICENSE in the source distribution.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+
+#include <openssl/x509.h>
+#include <openssl/pem.h>
+#include <openssl/conf.h>
+#include <openssl/err.h>
+#include "internal/nelem.h"
+#include "testutil.h"
+
+static int test_certs(int num)
+{
+ int c;
+ char *name = 0;
+ char *header = 0;
+ unsigned char *data = 0;
+ long len;
+ typedef X509 *(*d2i_X509_t)(X509 **, const unsigned char **, long);
+ typedef int (*i2d_X509_t)(X509 *, unsigned char **);
+ int err = 0;
+ BIO *fp = BIO_new_file(test_get_argument(num), "r");
+ X509 *reuse = NULL;
+
+ if (!TEST_ptr(fp))
+ return 0;
+
+ for (c = 0; !err && PEM_read_bio(fp, &name, &header, &data, &len); ++c) {
+ const int trusted = (strcmp(name, PEM_STRING_X509_TRUSTED) == 0);
+
+ d2i_X509_t d2i = trusted ? d2i_X509_AUX : d2i_X509;
+ i2d_X509_t i2d = trusted ? i2d_X509_AUX : i2d_X509;
+ X509 *cert = NULL;
+ const unsigned char *p = data;
+ unsigned char *buf = NULL;
+ unsigned char *bufp;
+ long enclen;
+
+ if (!trusted
+ && strcmp(name, PEM_STRING_X509) != 0
+ && strcmp(name, PEM_STRING_X509_OLD) != 0) {
+ TEST_error("unexpected PEM object: %s", name);
+ err = 1;
+ goto next;
+ }
+ cert = d2i(NULL, &p, len);
+
+ if (cert == NULL || (p - data) != len) {
+ TEST_error("error parsing input %s", name);
+ err = 1;
+ goto next;
+ }
+
+ /* Test traditional 2-pass encoding into caller allocated buffer */
+ enclen = i2d(cert, NULL);
+ if (len != enclen) {
+ TEST_error("encoded length %ld of %s != input length %ld",
+ enclen, name, len);
+ err = 1;
+ goto next;
+ }
+ if ((buf = bufp = OPENSSL_malloc(len)) == NULL) {
+ TEST_perror("malloc");
+ err = 1;
+ goto next;
+ }
+ enclen = i2d(cert, &bufp);
+ if (len != enclen) {
+ TEST_error("encoded length %ld of %s != input length %ld",
+ enclen, name, len);
+ err = 1;
+ goto next;
+ }
+ enclen = (long) (bufp - buf);
+ if (enclen != len) {
+ TEST_error("unexpected buffer position after encoding %s", name);
+ err = 1;
+ goto next;
+ }
+ if (memcmp(buf, data, len) != 0) {
+ TEST_error("encoded content of %s does not match input", name);
+ err = 1;
+ goto next;
+ }
+ p = buf;
+ reuse = d2i(&reuse, &p, enclen);
+ if (reuse == NULL || X509_cmp (reuse, cert)) {
+ TEST_error("X509_cmp does not work with %s", name);
+ err = 1;
+ goto next;
+ }
+ OPENSSL_free(buf);
+ buf = NULL;
+
+ /* Test 1-pass encoding into library allocated buffer */
+ enclen = i2d(cert, &buf);
+ if (len != enclen) {
+ TEST_error("encoded length %ld of %s != input length %ld",
+ enclen, name, len);
+ err = 1;
+ goto next;
+ }
+ if (memcmp(buf, data, len) != 0) {
+ TEST_error("encoded content of %s does not match input", name);
+ err = 1;
+ goto next;
+ }
+
+ if (trusted) {
+ /* Encode just the cert and compare with initial encoding */
+ OPENSSL_free(buf);
+ buf = NULL;
+
+ /* Test 1-pass encoding into library allocated buffer */
+ enclen = i2d(cert, &buf);
+ if (enclen > len) {
+ TEST_error("encoded length %ld of %s > input length %ld",
+ enclen, name, len);
+ err = 1;
+ goto next;
+ }
+ if (memcmp(buf, data, enclen) != 0) {
+ TEST_error("encoded cert content does not match input");
+ err = 1;
+ goto next;
+ }
+ }
+
+ /*
+ * If any of these were null, PEM_read() would have failed.
+ */
+ next:
+ X509_free(cert);
+ OPENSSL_free(buf);
+ OPENSSL_free(name);
+ OPENSSL_free(header);
+ OPENSSL_free(data);
+ }
+ BIO_free(fp);
+ X509_free(reuse);
+
+ if (ERR_GET_REASON(ERR_peek_last_error()) == PEM_R_NO_START_LINE) {
+ /* Reached end of PEM file */
+ if (c > 0) {
+ ERR_clear_error();
+ return 1;
+ }
+ }
+
+ /* Some other PEM read error */
+ return 0;
+}
+
+int setup_tests(void)
+{
+ size_t n = test_get_argument_count();
+
+ if (n == 0) {
+ TEST_error("usage: %s certfile...", test_get_program_name());
+ return 0;
+ }
+
+ ADD_ALL_TESTS(test_certs, (int)n);
+ return 1;
+}